diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..60ce3ae65 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +root = true + +[*] +charset = utf-8 +end_of_line = crlf +indent_style = tab +indent_size = tab +insert_final_newline = true +trim_trailing_whitespace = true +max_line_length = off + +[{*.info,*.json,*.mcmeta,*.md,*.cfg,*.yml,*.toml}] +tab_width = 2 + +[{*.info,*.mcmeta,*.cfg}] +end_of_line = lf diff --git a/.gitignore b/.gitignore index 776998c18..1317d0286 100644 --- a/.gitignore +++ b/.gitignore @@ -1,46 +1,31 @@ # eclipse -eclipse -bin -*.launch -.settings -.metadata -.classpath -.project +/eclipse +/bin +/*.launch +/.settings +/.metadata +/.classpath +/.project # idea -out -*.ipr -*.iws -*.iml -.idea +/out +/*.ipr +/*.iws +/*.iml +/.idea # gradle -build -.gradle +/build +/.gradle + +# vscode +/.vscode # other -run +/run # CurseForge configuration /curseforge.properties # Changelog backup /changelog.bak - -screenshots/ - -saves/ - -usernamecache.json - -options.txt - -logs/ - -doc/ - -crash-reports/ - -config/ - -asm/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..e6efdf8c8 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,38 @@ +# NTM Contribution Guidelines, Version 1 + +## Keep it concise + +The best PRs are the ones that are small and to the point. The entire PR should focus on the thing you're trying to do, whether it's a fix or a feature PR. If your PR adds the Super Weldtronic 9000, there's no reason to include changes and tweaks to other things that have nothing to do with the Super Weldtronic 9000. If you think those changes are still necessary, open a new PR. + +## Keep it clean + +While admittedly my own code isn't the cleanest on earth, please try to keep terrible practices at a minimum. Also avoid things like unused variables and imports, mixed indentation styles or changes that have a high likelihood of breaking things. + +Things you should also avoid include: +* new libraries (unless your PR absolutely needs it like for special mod compat) +* duplicate util functions (just use what we have, man) +* unused or half finished util functions (for obvious reasons) +* half finished or obviously broken features (à la "bob will fix it, i'm sure of it", please don't do that) + +## Test your code + +This should go without saying, but please don't PR code that was never actually tested or has obvious compiler errors in it. + +**Addendum:** Because apparently some people think that testing is somehow optional, it is now **mandatory** to test the code both on a client and on a server. If the PR contains compat code, the game has to work **with and without** the mod that the compat is for. + +## Communication + +If you're planning on adding some new thing or doing a grand change, it's best to ask whether that's a good idea before spending 50 hours on a project that won't end up getting merged, due to issues that could have been entirely avoidable with communication. + +## No guarantees + +This ties together with the previous point - there's no guarantees that your PR gets merged no matter how hard or long you've worked on it. However, if you follow these guidelines, there's a good chance that your PR will be accepted. + +## I want to help but don't know where to start + +If you want to help the project, consider getting involved with the [wiki](https://nucleartech.wiki/) first. Writing an article is the easiest and quickest way of helping, and requires no programming knowledge. If you do know Java and want to help, consider these places first: + +* Localization, i.e. translations in different language are always accepted. +* `IConfigurableMachine`, an interface that allows machines to be added to the `hbmMachines.json` config, is still not used by many machines. +* F1 Presentations, also known as "Stare" or "Jar Presentations", is a neat system of creating a short movie explaining functionality. All the relevant code can be found in `com.hbm.wiaj`. +* Adding tooltips to more machines, explaining some of the basics. diff --git a/README.md b/README.md index 2506c1a64..68e85a68e 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,16 @@ [NTM on CurseForge](https://minecraft.curseforge.com/projects/hbms-nuclear-tech-mod?gameCategorySlug=mc-mods&projectID=235439) +[Official NTM Wiki](https://nucleartech.wiki/wiki/Main_Page) + +[Bobcat's Blog (the blag)](https://hbmmods.github.io/), you can find lengthy yapping, upcoming features and some secrets here. + **This is for 1.7.10!** For 1.12, check out these projects: * NTM Reloaded: https://github.com/TheOriginalGolem/Hbm-s-Nuclear-Tech-GIT/releases * NTM Extended Edition (Alcater): https://github.com/Alcatergit/Hbm-s-Nuclear-Tech-GIT/releases -For 1.18, try Martin's remake: https://github.com/MartinTheDragon/Nuclear-Tech-Mod-Remake/releases +For 1.18, try Martin's remake: https://codeberg.org/MartinTheDragon/Nuclear-Tech-Mod-Remake/releases ## Downloading pre-compiled versions from GitHub @@ -91,9 +95,29 @@ If you want to make some changes to the mod, follow this guide: * Click **Add Standard VM**; in the JRE home, navigate to the directory where the JDK is installed, then click finish and select it. 10. Code! +## Contributing animations +Weapon animations in NTM are stored in JSON files, which are used alongside OBJ models to produce high quality animations with reasonable filesizes. Import/Export Blender addons are available for versions 2.79, 3.2, and 4.0 in `tools`, and they should function reasonably well in newer versions as well. See the comments in the header of the export scripts for usage instructions. + ## Compatibility notice NTM has certain behaviors intended to fix vanilla code or to increase compatibility in certain cases where it otherwise would not be possible. These behaviors have the potential of not playing well with other mods, and while no such cases are currently known, here's a list of them. +### Thermos +Thermos servers (along with its forks such as Crucible) have a "performance" feature that causes all tile entity ticking to slow down if there's no player present in the same chunk. For obvious reasons, this will heavily impact machines and cause phantom issues that, not having knowledge of this "performance" feature, are near impossible to diagnose. By default, NTM will crash on servers running the Thermos base code and print a lengthy message informing server owners about this "performance" feature as well as how to fix the issues it causes. The error message is printed in plain English on the top of the crash log, failure to read (as well as understand) it will leave the server inoperable. + +### Shaders +Shaders (loaded by either Optifine, Iris or otherwise) will in all likelihood break when a gun is held. This is because guns need to skip vanilla's first person item setup for the rendering, however shaders apparently use the setup step for setting certain GL states, and skipping that will break rendering. [Shader Fixer](https://modrinth.com/mod/shader-fixer) is a mod with various fixes, among which is explicit compatibility for NTM's guns. + +### Optifine +One of the most common "performance" mods on 1.7.10, Optifine, achieves an increase in performance by breaking small things in spots that are usually hard to notice, although this can cause severe issues with NTM. A short list of problems, along with some solutions, follows: +* Get rid of Optifine and use one of the many [other, less intrusive performance mods](https://gist.github.com/makamys/7cb74cd71d93a4332d2891db2624e17c). +* Blocks with connected textures may become invisible. This can be fixed by toggling triangulation (I do not know what or where this setting is, I just have been told that it exists and that it can fix the problem) or multicore chunk rendering (same here). +* Entity "optimization" has a tendency to break chunkloading, this is especially noticeable with missiles which rely heavily on chunkloading to work, causing them to freeze mid-air. It's unclear what setting might fix this, and analysis of Optifine's source code (or rather, lack thereof) has not proven useful either. + +### Angelica +In older versions, Angelica caused issues regarding model rendering, often times making 3D models transparent. Ever since the switch to VBOs, models work fine. Another issue was blocks with connected textures not rendering at all, but this too was fixed, meaning as of time of writing there are no major incompatibilities known with Angelica. However there a few minor issues that persist, but those can be fixed: +* Often times when making a new world, all items appear as white squares. Somehow, scrolling though the NEI pages fixes this permanently +* Reeds will render weirdly, this is an incompatibility with the "Compact Vertex Format" feature. Disabling it will make reeds look normal. Alternatively, reed rendering can be disabled by using `/ntmclient set RENDER_REEDS false`, which works around the issue by not rendering the underwater portion of reeds at all. + ### Skybox chainloader NTM adds a few small things to the skybox using a custom skybox renderer. Minecraft can only have a single skybox renderer loaded, so setting the skybox to the NTM custom one would break compatibility with other mods' skyboxes. To mend this, NTM employs a **chainloader**. This chainloader will detect if a different skybox is loaded, save a reference to that skybox and then use NTM's skybox, which when used will also make sure to run the previous modded skybox renderer. In the event that NTM's skybox were to cause trouble, it can be disabled with the config option `1.31_enableSkyboxes`. @@ -106,5 +130,14 @@ An often overlooked aspect of Minecraft is its stats, the game keeps track of ho ### Keybind overlap An often annoying aspect of modded Minecraft is its keybinds. Even though multiple binds can be assigned the same key, all but one will show up as "conflicting" and only the non-conflicting one will work. Which one this is is usually arbitrary, and there is no reason to have such limitation. Often times keybinds are only applicable in certain scenarios, and a commonly found degree of overlap is within reason. Therefore, NTM will run its own key handling code which allows conflicting keybinds to work. If there should be any issues with this behavior, it can be disabled with the config option `1.34_enableKeybindOverlap`. +### Render distance capping +There is a common crash caused by Minecraft's render distance slider going out of bounds, this usually happens when uninstalling a mod that extends the render distance (like Optifine) or when downgrading the Minecraft version (newer versions have higher render distance caps). To prevent crashes, the mod will attempt to decrease the render distance if it's above 16 unless Optifine is installed. If this behavior is not desired (for example, because another mod that allows higher render distance is being used), it can be disabled with the config option `1.25_enableRenderDistCheck`. + +### Log spam caused by ComparableStack +In some modpacks (exact mods needed to replicate this are unknown), it's possible that invalid registered items may cause problems for NEI handlers. To prevent crashes, the ComparableStack class used to represent stacks will default to a safe registered item, and print a log message. In certain situations, this may cause dozens of errors to be printed at once, potentially even lagging the game. If that happens, the log message (but not the error handling) can be disabled with the config option `1.28_enableSilentCompStackErrors`. + +### Sound system limit +By default, the sound system only allows a limited amount of sounds to run at once (28 regular sounds and 4 streaming sounds), this causes issues when there's many machines running at once, since their looped sounds will constantly interrupt each other, causing them to immediately restart, which in some isolated cases has proven to cause massive lagspikes. To prevent this, NTM will increase the sound limit to 1000 regular sounds and 50 streaming sounds, this can be disabled with the config option `1.39_enableSoundExtension`. + # License This software is licensed under the GNU Lesser General Public License version 3. In short: This software is free, you may run the software freely, create modified versions, distribute this software and distribute modified versions, as long as the modified software too has a free software license (with an exception for linking to this software, as stated by the "Lesser" part of the LGPL, where this may not be required). You win this round, Stallman. The full license can be found in the `LICENSE` and `LICENSE.LESSER` files. diff --git a/build.gradle b/build.gradle index 8cd9a478d..07cca4635 100644 --- a/build.gradle +++ b/build.gradle @@ -71,6 +71,10 @@ repositories { name = 'ModMaven' url = 'https://modmaven.dev' } + maven { + name = "gt" + url = "https://gregtech.mechaenetia.com/" + } //maven { // name = "CurseForge" // url = "https://minecraft.curseforge.com/api/maven/" @@ -87,7 +91,8 @@ dependencies { implementation 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:dev' compileOnly 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:src' - //compileOnly 'inventory-tweaks:InventoryTweaks:1.62+beta.84:api' + compileOnly "inventorytweaks:InventoryTweaks:1.59-dev:deobf" + implementation "li.cil.oc:OpenComputers:MC1.7.10-1.5.+:api" } diff --git a/changelog b/changelog index 871d564ea..bb5c3f04c 100644 --- a/changelog +++ b/changelog @@ -1,55 +1,40 @@ +## The performance update +* my boy gammawave basically did the entire thing +* packet sending should be more performant now, which affects most machines +* RBMKs are now *much* more performant with their simulation and packets + ## Added -* Glpyhids - * Hives will spawn randomly in the world - * Hives will constantly spawn new glyphids - * If exposed to soot, hives will create glyphid scouts, which when far enough from another hive will explode and generate a new hive - * Higher soot levels create stronger glyphids - * Glyphids possess armor which has a chance of breaking off and fully absorbing damage - * Each glyphid has five armor plates - * Glyphid types include multiple tiers of melee glyphids as well as a few ranged ones, the scout, and a nuclear variant -* Compressor - * Can compress fluids, turning them into higher pressure variants - * Higher pressure fluid can use the same ducts as regular fluids, connections work the same so long as the input tank can accept the higher pressure type - * Can also turn steam into higher pressure types - * Vacuum refining now requires oil at 2 PU - * Some chemical plant recipes also require compressed fluid, TATB requires sour gas at 1 PU and osmiridic solution requires hydrogen peroxide at 5 PU -* A new rocket artillery ammo type that creates volcanic lava on impact -* BDCL - * A type of lubricant that is easy to make and can be used in hydraulic piston and electric press recipes instead of regular lubricant -* FBI drones - * A configurable amount of drones can now spawn during FBI raids - * They will hover over players, dropping bombs +* 10 gauge slug +* Shredder + * A b-side for the autoshotgun + * Fires 12 gauge, accelerated by plasma, which bursts on impact + * Fragments move slowly and have damaging ricochet effects + * Fragments keep the effects of the original shell (e.g. explosive shell will spawn a single explosive fragment) +* Other gun stuff ## Changed -* Updated russian localization -* Fluid traits can now be configured, any fluid can now have any fluid with variable stats assigned to them -* Large explosions now load the central chunk they are in, this can be disabled in the config -* Burning leaded fuels now releases poisonous heavy metals into the atmosphere -* The pollution detector now displays rounded values -* More machines and especially destroyed ones now release soot -* The iGen has been rebalanced again, delete your machine config file for the changes to take effect - * The lubricant power multiplier has been increased from 1.1 to 1.5 - * The fluid divisor has been lowered from 5,000 to 1,000, meaning the iGen now burns flammable liquids at full efficiency -* Removed the config for having an additional keybind for dashing, the keybind is now always active since it no longer conflicts with crouching -* Crucible recipes no longer use foundry scraps to visualize the recipes, instead they use a lava-like texture -* Fusion reactors are now made from welded magnets which are created by welding a cast steel plate onto a magnet - * Due to the cost of the cast plates, fusion reactor magnets are now cheaper to compensate - * Consequently, particle accelerators are now also cheaper due to being made from mostly fusion reactor magnets -* The blowtorch now consumes only 250mB per operation, allowing for up to 16 things to be welded with a single fill -* The page and notebook items have been replaced with more dynamic book items that get their data from NBT -* C4 can now be made by irradiating PVC - * Play stupid games, win stupid prizes -* Gas grenades now use the new gas system which should be a lot more pleasant to look at and less heavy on the TPS -* Leaded fuels now release heavy metal into the air, heavy metal can cause lead poisoning - * Lower heavy metal concentrations can also cause heavy metal poisoning when breaking blocks -* Gas artillery shell now create heavy metal and poisonous pollution -* FBI agents will now target the player from a much larger distance +* Black powder bullets now have 75% base damage instead of 50% +* Ball and powder type rounds no longer have a bonus on headshot +* Shot and powder now does way less damage +* Some secret ammo types are now craftable +* Updated the assault rifle's texture +* Shooting at old CRT screens now breaks them +* Leviathan turbines now have a tooltip showing their buffers +* Fullerene now only uses visible light instead of UV to make, meaning fullerite can be obtained without a fusion or watz reactor (still requiring vacuum oil though) +* Crumb yields from bedrock ore processing has been heavily decreased, all recipes that yield crumbs produce no more than one pile ## Fixed -* Fixed potential crash or logspam regarding the pollution handler -* Fixed missiles leaving behind a 3x3 grid of loaded chunks after being destroyed -* Fixed coal ore yielding coal in the crucible instead of making carbon -* Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter -* Fixed combustion engine sound sometimes continue playing even when turned off -* Fixed large mining drill not properly performing a block check and potentially deleting blocks when placed -* Fixed calcium solution not having a fluid texture \ No newline at end of file +* Fixed `ITEM_TOOLTIP_SHOW_CUSTOM_NUKE` client config overriding `ITEM_TOOLTIP_SHOW_OREDICT` due to name overlap +* Fixed certain secret weapon creation condition not working properly +* Fixed artillery rockets getting stuck in the air when their target is not set to a block +* Fixed potential issue of ABMs getting stuck mid-flight when their target is destroyed prematurely +* Fixed mistakes in the fragment names for de_DE +* Fixed nitra rocket duplication only yielding one rocket +* Fixed rotary furnace not always properly showing the metal pouring effect +* Fixed T45 model not lifting its arms when a new gun is held + * Like previously, due to the archaic nature of the model, the rotations are not very precise, and will most likely break when holding an akimbo gun +* Potentially fixed an issue where cargo planes do not successfully spawn on lower render distances +* Fixed glyphids not calling their `onDeath` function properly, causing them to not drop anything and preventing the appropriate forge events from firing +* Fixed GL state leak caused by plasma blast particles, causing other particles (especially bones) to render weird +* Fixed night vision goggles being constantly disabled due to m1tty's night vision removal out of water +* Fixed armor on test dummies entering the sneaked state in third person view when the player sneaks diff --git a/gradle.properties b/gradle.properties index fa397e559..96abbc59d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,17 +1,62 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4641 +mod_build_number=5202 -credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ - \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ - \ porting), UFFR (RTGs, guns, casings, euphemium capacitor), Pu-238 (Tom impact effects), Bismarck\ - \ (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures,\ - \ various machines, models, weapons), Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ - \ Adam29 (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ - \ (calculator, chunk-based fallout), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ - \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ - \ Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie (reacher radiation function),\ - \ Toshayo (satellite loot system, project settings, gradle curse task), Silly541 (config for safe ME drives),\ - \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ - \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ - \ particle emitter), sdddddf80 (recipe configs, chinese localization), SuperCraftAlex (tooltips) +credits=HbMinecraft,\ + \ rodolphito (explosion algorithms),\ + \ grangerave (explosion algorithms),\ + \ Hoboy (textures, models),\ + \ Drillgon200 (effects, models, porting),\ + \ MartinTheDragon (calculator, chunk-based fallout, bendable cranes, pipe improvements, PWR sounds),\ + \ Alcater (GUI textures, porting),\ + \ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, better particle diodes),\ + \ Pheo (textures, various machines, models, weapons),\ + \ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron, weapon animations),\ + \ LePeep (coilgun model, BDCL QC),\ + \ Adam29 (liquid petroleum, ethanol, electric furnace),\ + \ Pvndols (thorium fuel recipe, gas turbine),\ + \ JamesH2 (blood mechanics, nitric acid, particle emitter),\ + \ PastaBaguette (coal horse decal),\ + \ Doctor17 (russian localization)),\ + \ Pashtet (russian localization),\ + \ Bismarck (chinese localization),\ + \ Creeper-banner (chinese localization),\ + \ 5467864 (chinese localization),\ + \ eeeeee0a (chinese localization),\ + \ hz0909adc (chinese localization),\ + \ LSKLW (chinese localization),\ + \ R-Kaenbyou (chinese localization),\ + \ scp-000000000 (chinese localization),\ + \ UnnameTokiko (chinese localization),\ + \ Herobrine 457985 (chinese localization),\ + \ xxwinhere (chinese localization),\ + \ Maksymisio (polish localization)\ + \ el3ctro4ndre (italian localization),\ + \ Pu-238 (Tom impact effects),\ + \ UFFR (RTG pellets, guns, casings, euphemium capacitor),\ + \ Frooz (gun models),\ + \ VT-6/24 (models, textures),\ + \ Nos (models),\ + \ Minecreep (models),\ + \ 70k (textures, glyphid AI, strand caster, electrolyzer changes),\ + \ haru315 (spiral point algorithm),\ + \ Sten89 (models),\ + \ Pixelguru26 (textures),\ + \ TheBlueHat (textures),\ + \ Burningwater202 (laminate glass),\ + \ TehTemmie (reacher radiation function),\ + \ Silly541 (config for safe ME drives),\ + \ Voxelstice (OpenComputers integration, turbine spinup),\ + \ BallOfEnergy1 (OpenComputers integration),\ + \ sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ + \ Abel1502 (optimization, crate upgrade recipes, strand caster improvements, varous tweaks),\ + \ SuperCraftAlex (tooltips)\ + \ Ice-Arrow (research reactor tweaks),\ + \ 245tt (anvil GUI improvements),\ + \ KoblizekXD (doors),\ + \ FOlkvangrField (custom machine parts),\ + \ RosaTryp (centrifuge config),\ + \ Toshayo (satellite loot system, project settings, gradle curse task),\ + \ martemen (project settings),\ + \ OvermindDL1 (project settings),\ + \ impbk2002 (project settings)\ diff --git a/src/main/java/api/hbm/block/IFuckingExplode.java b/src/main/java/api/hbm/block/IFuckingExplode.java new file mode 100644 index 000000000..95f128e20 --- /dev/null +++ b/src/main/java/api/hbm/block/IFuckingExplode.java @@ -0,0 +1,15 @@ +package api.hbm.block; + +import com.hbm.entity.item.EntityTNTPrimedBase; + +import net.minecraft.world.World; + +public interface IFuckingExplode { + + // Anything that can be detonated by another explosion should implement this and spawn an EntityTNTPrimedBase when hit by an explosion + // This prevents chained explosions causing a stack overflow + // Note that the block can still safely immediately explode, as long as the source isn't another explosion + + public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity); + +} diff --git a/src/main/java/api/hbm/energy/IEnergyConductor.java b/src/main/java/api/hbm/energy/IEnergyConductor.java deleted file mode 100644 index e6195acb8..000000000 --- a/src/main/java/api/hbm/energy/IEnergyConductor.java +++ /dev/null @@ -1,160 +0,0 @@ -package api.hbm.energy; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -/** - * For compatible cables with no buffer, using the IPowertNet. You can make your own cables with IEnergyConnector as well, but they won't join their power network. - * @author hbm - */ -public interface IEnergyConductor extends IEnergyConnector { - - public IPowerNet getPowerNet(); - - public void setPowerNet(IPowerNet network); - - /** - * A unique identifier for every conductor tile. Used to prevent duplicates when loading previously persistent unloaded tiles. - * @return - */ - public default int getIdentity() { - return getIdentityFromTile((TileEntity) this); - } - - public static int getIdentityFromTile(TileEntity te) { - return getIdentityFromPos(te.xCoord, te.yCoord, te.zCoord); - } - - public static int getIdentityFromPos(int x, int y, int z) { - final int prime = 27644437; // must be this large to minimize localized collisions - int result = 1; - result = prime * result + x; - result = prime * result + y; - result = prime * result + z; - return result; - } - - /** - * Whether the link should be part of reeval when the network is changed. - * I.e. if this link should join any of the new networks (FALSE for switches that are turned off for example) - * @return - */ - public default boolean canReevaluate() { - return !((TileEntity) this).isInvalid(); - } - - /** - * When a link leaves the network, the net has to manually calculate the resulting networks. - * Each link has to decide what other links will join the same net. - * @param copy - */ - public default void reevaluate(HashMap copy, HashMap proxies) { - - for(int[] pos : getConnectionPoints()) { - int newX = pos[0]; - int newY = pos[1]; - int newZ = pos[2]; - int id = IEnergyConductor.getIdentityFromPos(newX, newY, newZ); - - IEnergyConductor neighbor = copy.get(id); - - if(neighbor == null) { - Integer newId = proxies.get(id); - - if(newId != null) { - neighbor = copy.get(newId); - } - } - - if(neighbor != null && this.canReevaluate() && neighbor.canReevaluate()) { - - if(neighbor.getPowerNet() != null) { - - //neighbor net and no self net - if(this.getPowerNet() == null) { - neighbor.getPowerNet().joinLink(this); - //neighbor net and self net - } else { - this.getPowerNet().joinNetworks(neighbor.getPowerNet()); - } - - //bidirectional re-eval, experimental and technically optional, only useful as a fallback - } /*else { - - //no neighbor net and no self net - if(this.getPowerNet() == null) { - this.setPowerNet(new PowerNet().joinLink(this)); - neighbor.setPowerNet(this.getPowerNet().joinLink(neighbor)); - //no neighbor net and self net - } else { - neighbor.setPowerNet(this.getPowerNet().joinLink(neighbor)); - } - }*/ - - //extensive debugging has shown that bidirectional re-eval is complete shit - } - } - } - - /** - * Creates a list of positions for the re-eval process. In short - what positions should be considered as connected. - * Also used by pylons to quickly figure out what positions to connect to. - * DEFAULT: Connects to all six neighboring blocks. - * @return - */ - public default List getConnectionPoints() { - - List pos = new ArrayList(); - TileEntity tile = (TileEntity) this; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - int newX = tile.xCoord + dir.offsetX; - int newY = tile.yCoord + dir.offsetY; - int newZ = tile.zCoord + dir.offsetZ; - - pos.add(new int[] {newX, newY, newZ}); - } - - return pos; - } - - /** - * Since isLoaded is only currently used for weeding out unwanted subscribers, and cables shouldn't (although technically can) be - * subscribers, we just default to true because I don't feel like wasting time implementing things that we don't actually need. - * Perhaps this indicates a minor flaw in the new API, but I physically lack the ability to worry about it. - */ - @Override - public default boolean isLoaded() { - return true; - } - - //TODO: check if this standard implementation doesn't break anything (it shouldn't but right now it's a bit redundant) also: remove duplicate implementations - @Override - public default long transferPower(long power) { - - if(this.getPowerNet() == null) - return power; - - return this.getPowerNet().transferPower(power); - } - - /** - * Returns whether the conductor has mutliblock proxies which need to be taken into consideration for re-eval. - * @return - */ - public default boolean hasProxies() { - return false; - } - - /** - * Returns the identities (position-based) of proxies which resolve into the conductor's own identity. - * @return - */ - public default List getProxies() { - return new ArrayList(); - } -} diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java deleted file mode 100644 index e3b21e12c..000000000 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ /dev/null @@ -1,121 +0,0 @@ -package api.hbm.energy; - -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -/** - * For anything that connects to power and can be transferred power to, the bottom-level interface. - * This is mean for TILE ENTITIES - * @author hbm - */ -public interface IEnergyConnector extends ILoadedTile { - - /** - * Returns the amount of power that remains in the source after transfer - * @param power - * @return - */ - public long transferPower(long power); - - /** - * Whether the given side can be connected to - * dir refers to the side of this block, not the connecting block doing the check - * @param dir - * @return - */ - public default boolean canConnect(ForgeDirection dir) { - return dir != ForgeDirection.UNKNOWN; - } - - /** - * The current power of either the machine or an entire network - * @return - */ - public long getPower(); - - /** - * The capacity of either the machine or an entire network - * @return - */ - public long getMaxPower(); - - public default long getTransferWeight() { - return Math.max(getMaxPower() - getPower(), 0); - } - - /** - * Basic implementation of subscribing to a nearby power grid - * @param world - * @param x - * @param y - * @param z - */ - public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) { - - TileEntity te = world.getTileEntity(x, y, z); - boolean red = false; - - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(!con.canConnect(dir.getOpposite())) - return; - - if(con.getPowerNet() != null && !con.getPowerNet().isSubscribed(this)) - con.getPowerNet().subscribe(this); - - if(con.getPowerNet() != null) - red = true; - } - - if(particleDebug) {// - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "network"); - data.setString("mode", "power"); - double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1)); - data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1)); - data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1)); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); - } - } - - public default void tryUnsubscribe(World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); - } - } - - public static final boolean particleDebug = false; - - public default Vec3 getDebugParticlePos() { - TileEntity te = (TileEntity) this; - Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); - return vec; - } - - public default ConnectionPriority getPriority() { - return ConnectionPriority.NORMAL; - } - - public enum ConnectionPriority { - LOW, - NORMAL, - HIGH - } -} diff --git a/src/main/java/api/hbm/energy/IEnergyGenerator.java b/src/main/java/api/hbm/energy/IEnergyGenerator.java deleted file mode 100644 index 37db6370d..000000000 --- a/src/main/java/api/hbm/energy/IEnergyGenerator.java +++ /dev/null @@ -1,19 +0,0 @@ -package api.hbm.energy; - -public interface IEnergyGenerator extends IEnergyUser { - - /** - * Standard implementation for machines that can only send energy but never receive it. - * @param power - */ - @Override - public default long transferPower(long power) { - return power; - } - - /* should stop making non-receivers from interfering by applying their weight which doesn't even matter */ - @Override - public default long getTransferWeight() { - return 0; - } -} diff --git a/src/main/java/api/hbm/energy/IEnergyUser.java b/src/main/java/api/hbm/energy/IEnergyUser.java deleted file mode 100644 index a4a0a4ed5..000000000 --- a/src/main/java/api/hbm/energy/IEnergyUser.java +++ /dev/null @@ -1,112 +0,0 @@ -package api.hbm.energy; - -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -/** - * For machines and things that have an energy buffer and are affected by EMPs - * @author hbm - */ -public interface IEnergyUser extends IEnergyConnector { - - /** - * Not to be used for actual energy transfer, rather special external things like EMPs and sync packets - */ - public void setPower(long power); - - /** - * Standard implementation for power transfer. - * Turns out you can override interfaces to provide a default implementation. Neat. - * @param long power - */ - @Override - public default long transferPower(long power) { - - this.setPower(this.getPower() + power); - - if(this.getPower() > this.getMaxPower()) { - - long overshoot = this.getPower() - this.getMaxPower(); - this.setPower(this.getMaxPower()); - return overshoot; - } - - return 0; - } - - /** - * Standard implementation of sending power - * @param world - * @param x - * @param y - * @param z - * @param dir - */ - public default void sendPower(World world, int x, int y, int z, ForgeDirection dir) { - - TileEntity te = world.getTileEntity(x, y, z); - boolean wasSubscribed = false; - boolean red = false; - - // first we make sure we're not subscribed to the network that we'll be supplying - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.canConnect(dir.getOpposite()) && con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().unsubscribe(this); - wasSubscribed = true; - } - } - - //then we add energy - if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - - if(con.canConnect(dir.getOpposite())) { - long oldPower = this.getPower(); - long transfer = oldPower - con.transferPower(oldPower); - this.setPower(oldPower - transfer); - red = true; - } - } - - //then we subscribe if possible - if(wasSubscribed && te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && !con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().subscribe(this); - } - } - - if(particleDebug) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "network"); - data.setString("mode", "power"); - double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; - data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1)); - data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1)); - data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1)); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); - } - } - - public default void updateStandardConnections(World world, TileEntity te) { - updateStandardConnections(world, te.xCoord, te.yCoord, te.zCoord); - } - - public default void updateStandardConnections(World world, int x, int y, int z) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - this.trySubscribe(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir); - } - } -} diff --git a/src/main/java/api/hbm/energy/ILoadedTile.java b/src/main/java/api/hbm/energy/ILoadedTile.java deleted file mode 100644 index 1f6d0f88b..000000000 --- a/src/main/java/api/hbm/energy/ILoadedTile.java +++ /dev/null @@ -1,6 +0,0 @@ -package api.hbm.energy; - -public interface ILoadedTile { - - public boolean isLoaded(); -} diff --git a/src/main/java/api/hbm/energy/IPowerNet.java b/src/main/java/api/hbm/energy/IPowerNet.java deleted file mode 100644 index eb9848226..000000000 --- a/src/main/java/api/hbm/energy/IPowerNet.java +++ /dev/null @@ -1,37 +0,0 @@ -package api.hbm.energy; - -import java.math.BigInteger; -import java.util.List; - -/** - * Not mandatory to use, but making your cables IPowerNet-compliant will allow them to connect to NTM cables. - * Cables will still work without it as long as they implement IEnergyConductor (or even IEnergyConnector) + self-built network code - * @author hbm - */ -public interface IPowerNet { - - public void joinNetworks(IPowerNet network); - - public IPowerNet joinLink(IEnergyConductor conductor); - public void leaveLink(IEnergyConductor conductor); - - public void subscribe(IEnergyConnector connector); - public void unsubscribe(IEnergyConnector connector); - public boolean isSubscribed(IEnergyConnector connector); - - public void destroy(); - - /** - * When a link is removed, instead of destroying the network, causing it to be recreated from currently loaded conductors, - * we re-evaluate it, creating new nets based on the previous links. - */ - public void reevaluate(); - - public boolean isValid(); - - public List getLinks(); - public List getSubscribers(); - - public long transferPower(long power); - public BigInteger getTotalTransfer(); -} diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java deleted file mode 100644 index 172e22dde..000000000 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ /dev/null @@ -1,241 +0,0 @@ -package api.hbm.energy; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import com.hbm.config.GeneralConfig; - -import api.hbm.energy.IEnergyConnector.ConnectionPriority; -import net.minecraft.tileentity.TileEntity; - -/** - * Basic IPowerNet implementation. The behavior of this demo might change inbetween releases, but the API remains the same. - * For more consistency please implement your own IPowerNet. - * @author hbm - */ -public class PowerNet implements IPowerNet { - - private boolean valid = true; - private HashMap links = new HashMap(); - private HashMap proxies = new HashMap(); - private List subscribers = new ArrayList(); - - public static List trackingInstances = null; - protected BigInteger totalTransfer = BigInteger.ZERO; - - @Override - public void joinNetworks(IPowerNet network) { - - if(network == this) - return; //wtf?! - - for(IEnergyConductor conductor : network.getLinks()) { - joinLink(conductor); - } - network.getLinks().clear(); - - for(IEnergyConnector connector : network.getSubscribers()) { - this.subscribe(connector); - } - - network.destroy(); - } - - @Override - public IPowerNet joinLink(IEnergyConductor conductor) { - - if(conductor.getPowerNet() != null) - conductor.getPowerNet().leaveLink(conductor); - - conductor.setPowerNet(this); - int identity = conductor.getIdentity(); - this.links.put(identity, conductor); - - if(conductor.hasProxies()) { - for(Integer i : conductor.getProxies()) { - this.proxies.put(i, identity); - } - } - - return this; - } - - @Override - public void leaveLink(IEnergyConductor conductor) { - conductor.setPowerNet(null); - int identity = conductor.getIdentity(); - this.links.remove(identity); - - if(conductor.hasProxies()) { - for(Integer i : conductor.getProxies()) { - this.proxies.remove(i); - } - } - } - - @Override - public void subscribe(IEnergyConnector connector) { - this.subscribers.add(connector); - } - - @Override - public void unsubscribe(IEnergyConnector connector) { - this.subscribers.remove(connector); - } - - @Override - public boolean isSubscribed(IEnergyConnector connector) { - return this.subscribers.contains(connector); - } - - @Override - public List getLinks() { - List linkList = new ArrayList(); - linkList.addAll(this.links.values()); - return linkList; - } - - public HashMap getProxies() { - HashMap proxyCopy = new HashMap(proxies); - return proxyCopy; - } - - @Override - public List getSubscribers() { - return this.subscribers; - } - - @Override - public void destroy() { - this.valid = false; - this.subscribers.clear(); - - for(IEnergyConductor link : this.links.values()) { - link.setPowerNet(null); - } - - this.links.clear(); - } - - @Override - public boolean isValid() { - return this.valid; - } - - @Override - public BigInteger getTotalTransfer() { - return this.totalTransfer; - } - - public long lastCleanup = System.currentTimeMillis(); - - @Override - public long transferPower(long power) { - - /*if(lastCleanup + 45 < System.currentTimeMillis()) { - cleanup(this.subscribers); - lastCleanup = System.currentTimeMillis(); - }*/ - - trackingInstances = new ArrayList(); - trackingInstances.add(this); - return fairTransfer(this.subscribers, power); - } - - public static void cleanup(List subscribers) { - - subscribers.removeIf(x -> - x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() || !x.isLoaded() - ); - } - - public static long fairTransfer(List subscribers, long power) { - - if(subscribers.isEmpty()) - return power; - - cleanup(subscribers); - - ConnectionPriority[] priorities = new ConnectionPriority[] {ConnectionPriority.HIGH, ConnectionPriority.NORMAL, ConnectionPriority.LOW}; - - long totalTransfer = 0; - - for(ConnectionPriority p : priorities) { - - List subList = new ArrayList(); - subscribers.forEach(x -> { - if(x.getPriority() == p) { - subList.add(x); - } - }); - - if(subList.isEmpty()) - continue; - - List weight = new ArrayList(); - long totalReq = 0; - - for(IEnergyConnector con : subList) { - long req = con.getTransferWeight(); - weight.add(req); - totalReq += req; - } - - if(totalReq == 0) - continue; - - long totalGiven = 0; - - for(int i = 0; i < subList.size(); i++) { - IEnergyConnector con = subList.get(i); - long req = weight.get(i); - double fraction = (double)req / (double)totalReq; - - long given = (long) Math.floor(fraction * power); - - totalGiven += (given - con.transferPower(given)); - } - - power -= totalGiven; - totalTransfer += totalGiven; - } - - if(trackingInstances != null) { - - for(int i = 0; i < trackingInstances.size(); i++) { - PowerNet net = trackingInstances.get(i); - net.totalTransfer = net.totalTransfer.add(BigInteger.valueOf(totalTransfer)); - } - } - - return power; - } - - @Override - public void reevaluate() { - - if(!GeneralConfig.enableReEval) { - this.destroy(); - return; - } - - HashMap copy = new HashMap(links); - HashMap proxyCopy = new HashMap(proxies); - - for(IEnergyConductor link : copy.values()) { - this.leaveLink(link); - } - - for(IEnergyConductor link : copy.values()) { - - link.setPowerNet(null); - link.reevaluate(copy, proxyCopy); - - if(link.getPowerNet() == null) { - link.setPowerNet(new PowerNet().joinLink(link)); - } - } - } -} diff --git a/src/main/java/api/hbm/energy/IBatteryItem.java b/src/main/java/api/hbm/energymk2/IBatteryItem.java similarity index 95% rename from src/main/java/api/hbm/energy/IBatteryItem.java rename to src/main/java/api/hbm/energymk2/IBatteryItem.java index 827f88a8e..d0d5931b7 100644 --- a/src/main/java/api/hbm/energy/IBatteryItem.java +++ b/src/main/java/api/hbm/energymk2/IBatteryItem.java @@ -1,4 +1,4 @@ -package api.hbm.energy; +package api.hbm.energymk2; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -10,7 +10,7 @@ public interface IBatteryItem { public void setCharge(ItemStack stack, long i); public void dischargeBattery(ItemStack stack, long i); public long getCharge(ItemStack stack); - public long getMaxCharge(); + public long getMaxCharge(ItemStack stack); public long getChargeRate(); public long getDischargeRate(); diff --git a/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java new file mode 100644 index 000000000..96a90bcfd --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyConductorMK2.java @@ -0,0 +1,23 @@ +package api.hbm.energymk2; + +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.Nodespace.PowerNode; +import net.minecraft.tileentity.TileEntity; + +public interface IEnergyConductorMK2 extends IEnergyConnectorMK2 { + + public default PowerNode createNode() { + TileEntity tile = (TileEntity) this; + return new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(tile.xCoord + 1, tile.yCoord, tile.zCoord, Library.POS_X), + new DirPos(tile.xCoord - 1, tile.yCoord, tile.zCoord, Library.NEG_X), + new DirPos(tile.xCoord, tile.yCoord + 1, tile.zCoord, Library.POS_Y), + new DirPos(tile.xCoord, tile.yCoord - 1, tile.zCoord, Library.NEG_Y), + new DirPos(tile.xCoord, tile.yCoord, tile.zCoord + 1, Library.POS_Z), + new DirPos(tile.xCoord, tile.yCoord, tile.zCoord - 1, Library.NEG_Z) + ); + } +} diff --git a/src/main/java/api/hbm/energy/IEnergyConnectorBlock.java b/src/main/java/api/hbm/energymk2/IEnergyConnectorBlock.java similarity index 95% rename from src/main/java/api/hbm/energy/IEnergyConnectorBlock.java rename to src/main/java/api/hbm/energymk2/IEnergyConnectorBlock.java index 8583dcc52..d8de0c379 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnectorBlock.java +++ b/src/main/java/api/hbm/energymk2/IEnergyConnectorBlock.java @@ -1,4 +1,4 @@ -package api.hbm.energy; +package api.hbm.energymk2; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java new file mode 100644 index 000000000..4c2246ee5 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyConnectorMK2.java @@ -0,0 +1,16 @@ +package api.hbm.energymk2; + +import net.minecraftforge.common.util.ForgeDirection; + +public interface IEnergyConnectorMK2 { + + /** + * Whether the given side can be connected to + * dir refers to the side of this block, not the connecting block doing the check + * @param dir + * @return + */ + public default boolean canConnect(ForgeDirection dir) { + return dir != ForgeDirection.UNKNOWN; + } +} diff --git a/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java b/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java new file mode 100644 index 000000000..c79bf3405 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyHandlerMK2.java @@ -0,0 +1,29 @@ +package api.hbm.energymk2; + +import com.hbm.util.CompatEnergyControl; + +import api.hbm.tile.ILoadedTile; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; + +/** DO NOT USE DIRECTLY! This is simply the common ancestor to providers and receivers, because all this behavior has to be excluded from conductors! */ +public interface IEnergyHandlerMK2 extends IEnergyConnectorMK2, ILoadedTile { + + public long getPower(); + public void setPower(long power); + public long getMaxPower(); + + public static final boolean particleDebug = false; + + public default Vec3 getDebugParticlePosMK2() { + TileEntity te = (TileEntity) this; + Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); + return vec; + } + + public default void provideInfoForECMK2(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_ENERGY_HE, this.getPower()); + data.setLong(CompatEnergyControl.L_CAPACITY_HE, this.getMaxPower()); + } +} diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java new file mode 100644 index 000000000..6643e3fcd --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -0,0 +1,68 @@ +package api.hbm.energymk2; + +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.Compat; + +import api.hbm.energymk2.Nodespace.PowerNode; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +/** If it sends energy, use this */ +public interface IEnergyProviderMK2 extends IEnergyHandlerMK2 { + + /** Uses up available power, default implementation has no sanity checking, make sure that the requested power is lequal to the current power */ + public default void usePower(long power) { + this.setPower(this.getPower() - power); + } + + public default long getProviderSpeed() { + return this.getMaxPower(); + } + + public default void tryProvide(World world, int x, int y, int z, ForgeDirection dir) { + + TileEntity te = Compat.getTileStandard(world, x, y, z); + boolean red = false; + + if(te instanceof IEnergyConductorMK2) { + IEnergyConductorMK2 con = (IEnergyConductorMK2) te; + if(con.canConnect(dir.getOpposite())) { + + PowerNode node = Nodespace.getNode(world, x, y, z); + + if(node != null && node.net != null) { + node.net.addProvider(this); + red = true; + } + } + } + + if(te instanceof IEnergyReceiverMK2 && te != this) { + IEnergyReceiverMK2 rec = (IEnergyReceiverMK2) te; + if(rec.canConnect(dir.getOpposite())) { + long provides = Math.min(this.getPower(), this.getProviderSpeed()); + long receives = Math.min(rec.getMaxPower() - rec.getPower(), rec.getReceiverSpeed()); + long toTransfer = Math.min(provides, receives); + toTransfer -= rec.transferPower(toTransfer); + this.usePower(toTransfer); + } + } + + if(particleDebug) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "network"); + data.setString("mode", "power"); + double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); + } + } +} diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java new file mode 100644 index 000000000..6ff96df42 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -0,0 +1,111 @@ +package api.hbm.energymk2; + +import com.hbm.interfaces.NotableComments; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.Compat; + +import api.hbm.energymk2.Nodespace.PowerNode; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +/** If it receives energy, use this */ +@NotableComments +public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2 { + + public default long transferPower(long power) { + if(power + this.getPower() <= this.getMaxPower()) { + this.setPower(power + this.getPower()); + return 0; + } + long capacity = this.getMaxPower() - this.getPower(); + long overshoot = power - capacity; + this.setPower(this.getMaxPower()); + return overshoot; + } + + public default long getReceiverSpeed() { + return this.getMaxPower(); + } + + public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) { + + TileEntity te = Compat.getTileStandard(world, x, y, z); + boolean red = false; + + if(te instanceof IEnergyConductorMK2) { + IEnergyConductorMK2 con = (IEnergyConductorMK2) te; + if(!con.canConnect(dir.getOpposite())) return; + + PowerNode node = Nodespace.getNode(world, x, y, z); + + if(node != null && node.net != null) { + node.net.addReceiver(this); + red = true; + } + } + + if(particleDebug) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "network"); + data.setString("mode", "power"); + double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); + } + } + + public default void tryUnsubscribe(World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof IEnergyConductorMK2) { + IEnergyConductorMK2 con = (IEnergyConductorMK2) te; + PowerNode node = con.createNode(); + + if(node != null && node.net != null) { + node.net.removeReceiver(this); + } + } + } + + /** + * Project MKUltra was an illegal human experiments program designed and undertaken by the U.S. Central Intelligence Agency (CIA) + * to develop procedures and identify drugs that could be used during interrogations to weaken people and force confessions through + * brainwashing and psychological torture. It began in 1953 and was halted in 1973. MKUltra used numerous methods to manipulate + * its subjects' mental states and brain functions, such as the covert administration of high doses of psychoactive drugs (especially LSD) + * and other chemicals without the subjects' consent, electroshocks, hypnosis, sensory deprivation, isolation, verbal and sexual + * abuse, and other forms of torture. + * MKUltra was preceded by Project Artichoke. It was organized through the CIA's Office of Scientific Intelligence and coordinated + * with the United States Army Biological Warfare Laboratories. The program engaged in illegal activities, including the + * use of U.S. and Canadian citizens as unwitting test subjects. MKUltra's scope was broad, with activities carried + * out under the guise of research at more than 80 institutions aside from the military, including colleges and universities, + * hospitals, prisons, and pharmaceutical companies. The CIA operated using front organizations, although some top officials at these + * institutions were aware of the CIA's involvement. + * MKUltra was revealed to the public in 1975 by the Church Committee of the United States Congress and Gerald Ford's United States + * President's Commission on CIA activities within the United States (the Rockefeller Commission). Investigative efforts were hampered + * by CIA Director Richard Helms's order that all MKUltra files be destroyed in 1973; the Church Committee and Rockefeller Commission + * investigations relied on the sworn testimony of direct participants and on the small number of documents that survived Helms's order. + * In 1977, a Freedom of Information Act request uncovered a cache of 20,000 documents relating to MKUltra, which led to Senate hearings. + * Some surviving information about MKUltra was declassified in 2001. + * */ + public default ConnectionPriority getPriority() { + return ConnectionPriority.NORMAL; + } + + /** More is better-er */ + public enum ConnectionPriority { + LOWEST, + LOW, + NORMAL, + HIGH, + HIGHEST + } +} diff --git a/src/main/java/api/hbm/energymk2/Nodespace.java b/src/main/java/api/hbm/energymk2/Nodespace.java new file mode 100644 index 000000000..401664333 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/Nodespace.java @@ -0,0 +1,198 @@ +package api.hbm.energymk2; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map.Entry; +import java.util.Set; + +import com.hbm.interfaces.NotableComments; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.World; + +/** + * The "Nodespace" is an intermediate, "ethereal" layer of abstraction that tracks nodes (i.e. cables) even when they are no longer loaded, allowing continued operation even when unloaded + * @author hbm + * + */ +public class Nodespace { + + /** Contains all "NodeWorld" instances, i.e. lists of nodes existing per world */ + public static HashMap worlds = new HashMap<>(); + public static Set activePowerNets = new HashSet<>(); + + public static PowerNode getNode(World world, int x, int y, int z) { + NodeWorld nodeWorld = worlds.get(world); + if(nodeWorld != null) return nodeWorld.nodes.get(new BlockPos(x, y, z)); + return null; + } + + public static void createNode(World world, PowerNode node) { + NodeWorld nodeWorld = worlds.get(world); + if(nodeWorld == null) { + nodeWorld = new NodeWorld(); + worlds.put(world, nodeWorld); + } + nodeWorld.pushNode(node); + } + + public static void destroyNode(World world, int x, int y, int z) { + PowerNode node = getNode(world, x, y, z); + if(node != null) { + worlds.get(world).popNode(node); + } + } + + /** Goes over each node and manages connections */ + public static void updateNodespace() { + + for(World world : MinecraftServer.getServer().worldServers) { + NodeWorld nodes = worlds.get(world); + + if(nodes == null) + continue; + + for(Entry entry : nodes.nodes.entrySet()) { + PowerNode node = entry.getValue(); + if(!node.hasValidNet() || node.recentlyChanged) { + checkNodeConnection(world, node); + node.recentlyChanged = false; + } + } + } + + updatePowerNets(); + } + + private static void updatePowerNets() { + + for(PowerNetMK2 net : activePowerNets) net.resetEnergyTracker(); //reset has to be done before everything else + for(PowerNetMK2 net : activePowerNets) net.transferPower(); + } + + /** Goes over each connection point of the given node, tries to find neighbor nodes and to join networks with them */ + private static void checkNodeConnection(World world, PowerNode node) { + + for(DirPos con : node.connections) { + + PowerNode conNode = getNode(world, con.getX(), con.getY(), con.getZ()); // get whatever neighbor node intersects with that connection + + if(conNode != null) { // if there is a node at that place + + if(conNode.hasValidNet() && conNode.net == node.net) continue; // if the net is valid and both nodes have the same net, skip + + if(checkConnection(conNode, con, false)) { + connectToNode(node, conNode); + } + } + } + + if(node.net == null || !node.net.isValid()) new PowerNetMK2().joinLink(node); + } + + public static boolean checkConnection(PowerNode connectsTo, DirPos connectFrom, boolean skipSideCheck) { + + for(DirPos revCon : connectsTo.connections) { + + if(revCon.getX() - revCon.getDir().offsetX == connectFrom.getX() && revCon.getY() - revCon.getDir().offsetY == connectFrom.getY() && revCon.getZ() - revCon.getDir().offsetZ == connectFrom.getZ() && (revCon.getDir() == connectFrom.getDir().getOpposite() || skipSideCheck)) { + return true; + } + } + + return false; + } + + /** Links two nodes with different or potentially no networks */ + private static void connectToNode(PowerNode origin, PowerNode connection) { + + if(origin.hasValidNet() && connection.hasValidNet()) { // both nodes have nets, but the nets are different (previous assumption), join networks + if(origin.net.links.size() > connection.net.links.size()) { + origin.net.joinNetworks(connection.net); + } else { + connection.net.joinNetworks(origin.net); + } + } else if(!origin.hasValidNet() && connection.hasValidNet()) { // origin has no net, connection does, have origin join connection's net + connection.net.joinLink(origin); + } else if(origin.hasValidNet() && !connection.hasValidNet()) { // ...and vice versa + origin.net.joinLink(connection); + } + } + + public static class NodeWorld { + + /** Contains a map showing where each node is, a node is every spot that a cable exists at. + * Instead of the old proxy system, things like substation now create multiple nodes at their connection points */ + public HashMap nodes = new HashMap<>(); + + /** Adds a node at all its positions to the nodespace */ + public void pushNode(PowerNode node) { + for(BlockPos pos : node.positions) { + nodes.put(pos, node); + } + } + + /** Removes the specified node from all positions from nodespace */ + public void popNode(PowerNode node) { + if(node.net != null) node.net.destroy(); + for(BlockPos pos : node.positions) { + nodes.remove(pos); + node.expired = true; + } + } + + /** Grabs the node at one position, then removes it from all positions it occupies */ + public void popNode(BlockPos pos) { + PowerNode node = nodes.get(pos); + if(node != null) popNode(node); + } + } + + @NotableComments + public static class PowerNode { + + public BlockPos[] positions; + public DirPos[] connections; + public PowerNetMK2 net; + public boolean expired = false; + /** + * Okay so here's the deal: The code has shit idiot brain fungus. I don't know why. I re-tested every part involved several times. + * I don't know why. But for some reason, during neighbor checks, on certain arbitrary fucking places, the joining operation just fails. + * Disallowing nodes to create new networks fixed the problem completely, which is hardly surprising since they wouldn't be able to make + * a new net anyway and they will re-check neighbors until a net is found, so the solution is tautological in nature. So I tried limiting + * creation of new networks. Didn't work. So what's there left to do? Hand out a mark to any node that has changed networks, and let those + * recently modified nodes do another re-check. This creates a second layer of redundant operations, and in theory doubles (in practice, + * it might be an extra 20% due to break-off section sizes) the amount of CPU time needed for re-building the networks after joining or + * breaking, but it seems to allow those parts to connect back to their neighbor nets as they are supposed to. I am not proud of this solution, + * this issue shouldn't exist to begin with and I am going fucking insane but it is what it is. + */ + public boolean recentlyChanged = true; + + public PowerNode(BlockPos... positions) { + this.positions = positions; + } + + public PowerNode setConnections(DirPos... connections) { + this.connections = connections; + return this; + } + + public PowerNode addConnection(DirPos connection) { + DirPos[] newCons = new DirPos[this.connections.length + 1]; + for(int i = 0; i < this.connections.length; i++) newCons[i] = this.connections[i]; + newCons[newCons.length - 1] = connection; + this.connections = newCons; + return this; + } + + public boolean hasValidNet() { + return this.net != null && this.net.isValid(); + } + + public void setNet(PowerNetMK2 net) { + this.net = net; + this.recentlyChanged = true; + } + } +} diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java new file mode 100644 index 000000000..8afc59890 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -0,0 +1,363 @@ +package api.hbm.energymk2; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import com.hbm.util.Tuple.Pair; + +import java.util.Map.Entry; +import java.util.Random; + +import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; +import api.hbm.energymk2.Nodespace.PowerNode; + +public class PowerNetMK2 { + + public static Random rand = new Random(); + public boolean valid = true; + public Set links = new HashSet(); + + /** Maps all active subscribers to a timestamp, handy for handling timeouts. In a good system this shouldn't be necessary, but the previous system taught me to be cautious anyway */ + public HashMap receiverEntries = new HashMap(); + public HashMap providerEntries = new HashMap(); + + public long energyTracker = 0L; + + public PowerNetMK2() { + Nodespace.activePowerNets.add(this); + } + + /// SUBSCRIBER HANDLING /// + public boolean isSubscribed(IEnergyReceiverMK2 receiver) { + return this.receiverEntries.containsKey(receiver); + } + + public void addReceiver(IEnergyReceiverMK2 receiver) { + this.receiverEntries.put(receiver, System.currentTimeMillis()); + } + + public void removeReceiver(IEnergyReceiverMK2 receiver) { + this.receiverEntries.remove(receiver); + } + + /// PROVIDER HANDLING /// + public boolean isProvider(IEnergyProviderMK2 provider) { + return this.providerEntries.containsKey(provider); + } + + public void addProvider(IEnergyProviderMK2 provider) { + this.providerEntries.put(provider, System.currentTimeMillis()); + } + + public void removeProvider(IEnergyProviderMK2 provider) { + this.providerEntries.remove(provider); + } + + /// LINK JOINING /// + + /** Combines two networks into one */ + public void joinNetworks(PowerNetMK2 network) { + + if(network == this) return; //wtf?! + + List oldNodes = new ArrayList(network.links.size()); + oldNodes.addAll(network.links); // might prevent oddities related to joining - nvm it does nothing + + for(PowerNode conductor : oldNodes) forceJoinLink(conductor); + network.links.clear(); + + for(IEnergyReceiverMK2 connector : network.receiverEntries.keySet()) this.addReceiver(connector); + for(IEnergyProviderMK2 connector : network.providerEntries.keySet()) this.addProvider(connector); + network.destroy(); + } + + /** Adds the power node as part of this network's links */ + public PowerNetMK2 joinLink(PowerNode node) { + if(node.net != null) node.net.leaveLink(node); + return forceJoinLink(node); + } + + /** Adds the power node as part of this network's links, skips the part about removing it from existing networks */ + public PowerNetMK2 forceJoinLink(PowerNode node) { + this.links.add(node); + node.setNet(this); + return this; + } + + /** Removes the specified power node */ + public void leaveLink(PowerNode node) { + node.setNet(null); + this.links.remove(node); + } + + /// GENERAL POWER NET CONTROL /// + public void invalidate() { + this.valid = false; + Nodespace.activePowerNets.remove(this); + } + + public boolean isValid() { + return this.valid; + } + + public void destroy() { + this.invalidate(); + for(PowerNode link : this.links) if(link.net == this) link.setNet(null); + this.links.clear(); + this.receiverEntries.clear(); + this.providerEntries.clear(); + } + + public void resetEnergyTracker() { + this.energyTracker = 0; + } + + protected static int timeout = 3_000; + + public void transferPower() { + + if(providerEntries.isEmpty()) return; + if(receiverEntries.isEmpty()) return; + + long timestamp = System.currentTimeMillis(); + + List> providers = new ArrayList(); + long powerAvailable = 0; + + Iterator> provIt = providerEntries.entrySet().iterator(); + while(provIt.hasNext()) { + Entry entry = provIt.next(); + if(timestamp - entry.getValue() > timeout) { provIt.remove(); continue; } + long src = Math.min(entry.getKey().getPower(), entry.getKey().getProviderSpeed()); + providers.add(new Pair(entry.getKey(), src)); + powerAvailable += src; + } + + List>[] receivers = new ArrayList[ConnectionPriority.values().length]; + for(int i = 0; i < receivers.length; i++) receivers[i] = new ArrayList(); + long[] demand = new long[ConnectionPriority.values().length]; + long totalDemand = 0; + + Iterator> recIt = receiverEntries.entrySet().iterator(); + + while(recIt.hasNext()) { + Entry entry = recIt.next(); + if(timestamp - entry.getValue() > timeout) { recIt.remove(); continue; } + long rec = Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed()); + int p = entry.getKey().getPriority().ordinal(); + receivers[p].add(new Pair(entry.getKey(), rec)); + demand[p] += rec; + totalDemand += rec; + } + + long toTransfer = Math.min(powerAvailable, totalDemand); + long energyUsed = 0; + + for(int i = ConnectionPriority.values().length - 1; i >= 0; i--) { + List> list = receivers[i]; + long priorityDemand = demand[i]; + + for(Pair entry : list) { + double weight = (double) entry.getValue() / (double) (priorityDemand); + long toSend = (long) Math.max(toTransfer * weight, 0D); + energyUsed += (toSend - entry.getKey().transferPower(toSend)); //leftovers are subtracted from the intended amount to use up + } + + toTransfer -= energyUsed; + } + + this.energyTracker += energyUsed; + long leftover = energyUsed; + + for(Pair entry : providers) { + double weight = (double) entry.getValue() / (double) powerAvailable; + long toUse = (long) Math.max(energyUsed * weight, 0D); + entry.getKey().usePower(toUse); + leftover -= toUse; + } + + //rounding error compensation, detects surplus that hasn't been used and removes it from random providers + int iterationsLeft = 100; // whiles without emergency brakes are a bad idea + while(iterationsLeft > 0 && leftover > 0 && providers.size() > 0) { + iterationsLeft--; + + Pair selected = providers.get(rand.nextInt(providers.size())); + IEnergyProviderMK2 scapegoat = selected.getKey(); + + long toUse = Math.min(leftover, scapegoat.getPower()); + scapegoat.usePower(toUse); + leftover -= toUse; + } + } + + @Deprecated public void transferPowerOld() { + + if(providerEntries.isEmpty()) return; + if(receiverEntries.isEmpty()) return; + + long timestamp = System.currentTimeMillis(); + long transferCap = 100_000_000_000_000_00L; // that ought to be enough + + long supply = 0; + long demand = 0; + long[] priorityDemand = new long[ConnectionPriority.values().length]; + + Iterator> provIt = providerEntries.entrySet().iterator(); + while(provIt.hasNext()) { + Entry entry = provIt.next(); + if(timestamp - entry.getValue() > timeout) { provIt.remove(); continue; } + supply += Math.min(entry.getKey().getPower(), entry.getKey().getProviderSpeed()); + } + + if(supply <= 0) return; + + Iterator> recIt = receiverEntries.entrySet().iterator(); + while(recIt.hasNext()) { + Entry entry = recIt.next(); + if(timestamp - entry.getValue() > timeout) { recIt.remove(); continue; } + long rec = Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed()); + demand += rec; + for(int i = 0; i <= entry.getKey().getPriority().ordinal(); i++) priorityDemand[i] += rec; + } + + if(demand <= 0) return; + + long toTransfer = Math.min(supply, demand); + if(toTransfer > transferCap) toTransfer = transferCap; + if(toTransfer <= 0) return; + + List buffers = new ArrayList(); + List providers = new ArrayList(); + Set receiverSet = receiverEntries.keySet(); + for(IEnergyProviderMK2 provider : providerEntries.keySet()) { + if(receiverSet.contains(provider)) { + buffers.add(provider); + } else { + providers.add(provider); + } + } + providers.addAll(buffers); //makes buffers go last + List receivers = new ArrayList() {{ addAll(receiverSet); }}; + + receivers.sort(COMP); + + int maxIteration = 1000; + + //how much the current sender/receiver have already sent/received + long prevSrc = 0; + long prevDest = 0; + + while(!receivers.isEmpty() && !providers.isEmpty() && maxIteration > 0) { + maxIteration--; + + IEnergyProviderMK2 src = providers.get(0); + IEnergyReceiverMK2 dest = receivers.get(0); + + if(src.getPower() <= 0) { providers.remove(0); prevSrc = 0; continue; } + + if(src == dest) { // STALEMATE DETECTED + //if this happens, a buffer will waste both its share of transfer and receiving potential and do effectively nothing, essentially breaking + + //try if placing the conflicting provider at the end of the list does anything + //we do this first because providers have no priority, so we may shuffle those around as much as we want + if(providers.size() > 1) { + providers.add(providers.get(0)); + providers.remove(0); + prevSrc = 0; //this might cause slight issues due to the tracking being effectively lost while there still might be pending operations + continue; + } + //if that didn't work, try shifting the receiver by one place (to minimize priority breakage) + if(receivers.size() > 1) { + receivers.add(2, receivers.get(0)); + receivers.remove(0); + prevDest = 0; //ditto + continue; + } + + //if neither option could be performed, the only conclusion is that this buffer mode battery is alone in the power net, in which case: not my provlem + } + + long pd = priorityDemand[dest.getPriority().ordinal()]; + + long receiverShare = Math.min((long) Math.ceil((double) Math.min(dest.getMaxPower() - dest.getPower(), dest.getReceiverSpeed()) * (double) supply / (double) pd), dest.getReceiverSpeed()) - prevDest; + long providerShare = Math.min((long) Math.ceil((double) Math.min(src.getPower(), src.getProviderSpeed()) * (double) demand / (double) supply), src.getProviderSpeed()) - prevSrc; + + long toDrain = Math.min((long) (src.getPower()), providerShare); + long toFill = Math.min(dest.getMaxPower() - dest.getPower(), receiverShare); + + long finalTransfer = Math.min(toDrain, toFill); + if(toFill <= 0) { receivers.remove(0); prevDest = 0; continue; } + + finalTransfer -= dest.transferPower(finalTransfer); + src.usePower(finalTransfer); + + prevSrc += finalTransfer; + prevDest += finalTransfer; + + if(prevSrc >= src.getProviderSpeed()) { providers.remove(0); prevSrc = 0; continue; } + if(prevDest >= dest.getReceiverSpeed()) { receivers.remove(0); prevDest = 0; continue; } + + toTransfer -= finalTransfer; + this.energyTracker += finalTransfer; + } + } + + public long sendPowerDiode(long power) { + + if(receiverEntries.isEmpty()) return power; + + long timestamp = System.currentTimeMillis(); + + List>[] receivers = new ArrayList[ConnectionPriority.values().length]; + for(int i = 0; i < receivers.length; i++) receivers[i] = new ArrayList(); + long[] demand = new long[ConnectionPriority.values().length]; + long totalDemand = 0; + + Iterator> recIt = receiverEntries.entrySet().iterator(); + + while(recIt.hasNext()) { + Entry entry = recIt.next(); + if(timestamp - entry.getValue() > timeout) { recIt.remove(); continue; } + long rec = Math.min(entry.getKey().getMaxPower() - entry.getKey().getPower(), entry.getKey().getReceiverSpeed()); + int p = entry.getKey().getPriority().ordinal(); + receivers[p].add(new Pair(entry.getKey(), rec)); + demand[p] += rec; + totalDemand += rec; + } + + long toTransfer = Math.min(power, totalDemand); + long energyUsed = 0; + + for(int i = ConnectionPriority.values().length - 1; i >= 0; i--) { + List> list = receivers[i]; + long priorityDemand = demand[i]; + + for(Pair entry : list) { + double weight = (double) entry.getValue() / (double) (priorityDemand); + long toSend = (long) Math.max(toTransfer * weight, 0D); + energyUsed += (toSend - entry.getKey().transferPower(toSend)); //leftovers are subtracted from the intended amount to use up + } + + toTransfer -= energyUsed; + } + + this.energyTracker += energyUsed; + + return power - energyUsed; + } + + public static final ReceiverComparator COMP = new ReceiverComparator(); + + public static class ReceiverComparator implements Comparator { + + @Override + public int compare(IEnergyReceiverMK2 o1, IEnergyReceiverMK2 o2) { + return o2.getPriority().ordinal() - o1.getPriority().ordinal(); + } + } +} diff --git a/src/main/java/api/hbm/energymk2/package-info.java b/src/main/java/api/hbm/energymk2/package-info.java new file mode 100644 index 000000000..8bb153735 --- /dev/null +++ b/src/main/java/api/hbm/energymk2/package-info.java @@ -0,0 +1,33 @@ +/** + * + */ +/** + * @author hbm + * + */ +package api.hbm.energymk2; + +// i have snorted two lines of pure caffeine and taken one large paracetamol laced with even more caffine, let's fucking go + +//most of the new classes are just copy pasted mashed up shit from yesteryear, what a productive segment that was + +/* + +before my caffine high ends entirely and i black out, here's the gist: +* diodes are handled like energy receiver and simply chain-load the power net they output into in a recursive function, this might be a bit laggy compared to the rest of the system, but it's still way less laggy than the old one +* instead of power nets being bound to tile entities directly, tiles spawn ethereal "nodes" similar to the drone waypoints which can be saved using world data, meaning that breaking cables will delete nodes, but unloading them will keep them alive in "node space" which is what's actually used to check for connections +* power nets may cache some positional info in order to limit the amount of nodes, this should prevent horrific freezes in the unlikely event that some retard makes a superflat world out of cables +* general energy transmission will work in a similar fashion as martin explained his, but somewhat simplified; the system will determine supply and demand and then split those evenly if possible, retrying within one operation is only necessary for minor restrictions like priority, any leftovers from rounding don't have to be re-tried because the next tick will already take care of that +* invest funds in more coal mare nudes +* battery "fair share" transfer will most likely no longer work, but that's not really as relevant these days considering there's capacitors and because batteries have transfer speed limits anyway +* most of the machine's functions will be repurposed, the "sendPower" method will no longer send power directly but register the machine to the network as a power source +* if all else fails and martin still hasn't surrendered his code, i will beg greg for his wisdom (but without loss or tiering because fuck that) +* +* | | || +* ____|____ +* | +* || | |_ +* +* ...i said WITHOUT loss + +*/ \ No newline at end of file diff --git a/src/main/java/api/hbm/entity/IRadarDetectable.java b/src/main/java/api/hbm/entity/IRadarDetectable.java index f89fc99d4..0c3700b99 100644 --- a/src/main/java/api/hbm/entity/IRadarDetectable.java +++ b/src/main/java/api/hbm/entity/IRadarDetectable.java @@ -1,5 +1,6 @@ package api.hbm.entity; +@Deprecated //Use IRadarDetectableNT instead, old interface will still work though public interface IRadarDetectable { public static enum RadarTargetType { @@ -15,7 +16,7 @@ public interface IRadarDetectable { MISSILE_20("Size 20 Custom Missile"), //size 20 custom missiles MISSILE_AB("Anti-Ballistic Missile"), //anti ballistic missile PLAYER("Player"), //airborne players - ARTILLERY("Artillery Shell"); //airborne players + ARTILLERY("Artillery Shell"); //artillery shells public String name; diff --git a/src/main/java/api/hbm/entity/IRadarDetectableNT.java b/src/main/java/api/hbm/entity/IRadarDetectableNT.java new file mode 100644 index 000000000..0b327620c --- /dev/null +++ b/src/main/java/api/hbm/entity/IRadarDetectableNT.java @@ -0,0 +1,45 @@ +package api.hbm.entity; + +public interface IRadarDetectableNT { + + public static final int TIER0 = 0; + public static final int TIER1 = 1; + public static final int TIER2 = 2; + public static final int TIER3 = 3; + public static final int TIER4 = 4; + public static final int TIER10 = 5; + public static final int TIER10_15 = 6; + public static final int TIER15 = 7; + public static final int TIER15_20 = 8; + public static final int TIER20 = 9; + public static final int TIER_AB = 10; + public static final int PLAYER = 11; + public static final int ARTY = 12; + /** Reserved type that shows a unique purple blip. Used for when nothing else applies. */ + public static final int SPECIAL = 13; + + /** Name use for radar display, uses I18n for lookup */ + public String getUnlocalizedName(); + /** The type of dot to show on the radar as well as the redstone level in tier mode */ + public int getBlipLevel(); + /** Whether the object can be seen by this type of radar */ + public boolean canBeSeenBy(Object radar); + /** Whether the object is currently visible, as well as whether the radar's setting allow for picking this up */ + public boolean paramsApplicable(RadarScanParams params); + /** Whether this radar entry should be counted for the redstone output */ + public boolean suppliesRedstone(RadarScanParams params); + + public static class RadarScanParams { + public boolean scanMissiles = true; + public boolean scanShells = true; + public boolean scanPlayers = true; + public boolean smartMode = true; + + public RadarScanParams(boolean m, boolean s, boolean p, boolean smart) { + this.scanMissiles = m; + this.scanShells = s; + this.scanPlayers = p; + this.smartMode = smart; + } + } +} diff --git a/src/main/java/api/hbm/entity/IResistanceProvider.java b/src/main/java/api/hbm/entity/IResistanceProvider.java new file mode 100644 index 000000000..73bc9f507 --- /dev/null +++ b/src/main/java/api/hbm/entity/IResistanceProvider.java @@ -0,0 +1,16 @@ +package api.hbm.entity; + +import net.minecraft.util.DamageSource; + +/** + * Allows custom entities to specify threshold and resistance values based on incoming damage, type and piercing values, along with whatever other internal stats + * the entity has (like glyphid armor). Obviously only works for our own custom entities implementing this, everything else will have to work with the less powerful + * (but still very useful) entity stats in the DamageResistanceHandler. + * + * @author hbm + */ +public interface IResistanceProvider { + + public float[] getCurrentDTDR(DamageSource damage, float amount, float pierceDT, float pierce); + public void onDamageDealt(DamageSource damage, float amount); +} diff --git a/src/main/java/api/hbm/entity/RadarEntry.java b/src/main/java/api/hbm/entity/RadarEntry.java new file mode 100644 index 000000000..5dcc56845 --- /dev/null +++ b/src/main/java/api/hbm/entity/RadarEntry.java @@ -0,0 +1,66 @@ +package api.hbm.entity; + +import cpw.mods.fml.common.network.ByteBufUtils; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; + +public class RadarEntry { + + /** Name use for radar display, uses I18n for lookup */ + public String unlocalizedName; + /** The type of dot to show on the radar as well as the redstone level in tier mode */ + public int blipLevel; + public int posX; + public int posY; + public int posZ; + public int dim; + public int entityID; + /** Whether this radar entry should be counted for the redstone output */ + public boolean redstone; + + public RadarEntry() { } //blank ctor for packets + + public RadarEntry(String name, int level, int x, int y, int z, int dim, int entityID, boolean redstone) { + this.unlocalizedName = name; + this.blipLevel = level; + this.posX = x; + this.posY = y; + this.posZ = z; + this.dim = dim; + this.entityID = entityID; + this.redstone = redstone; + } + + public RadarEntry(IRadarDetectableNT detectable, Entity entity, boolean redstone) { + this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.getEntityId(), redstone); + } + + public RadarEntry(IRadarDetectable detectable, Entity entity) { + this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.getEntityId(), entity.motionY < 0); + } + + public RadarEntry(EntityPlayer player) { + this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension, player.getEntityId(), true); + } + + public void fromBytes(ByteBuf buf) { + this.unlocalizedName = ByteBufUtils.readUTF8String(buf); + this.blipLevel = buf.readShort(); + this.posX = buf.readInt(); + this.posY = buf.readInt(); + this.posZ = buf.readInt(); + this.dim = buf.readShort(); + this.entityID = buf.readInt(); + } + + public void toBytes(ByteBuf buf) { + ByteBufUtils.writeUTF8String(buf, this.unlocalizedName); + buf.writeShort(this.blipLevel); + buf.writeInt(this.posX); + buf.writeInt(this.posY); + buf.writeInt(this.posZ); + buf.writeShort(this.dim); + buf.writeInt(this.entityID); + } +} diff --git a/src/main/java/api/hbm/fluid/IFillableItem.java b/src/main/java/api/hbm/fluid/IFillableItem.java index 8818946ce..338b4b7e1 100644 --- a/src/main/java/api/hbm/fluid/IFillableItem.java +++ b/src/main/java/api/hbm/fluid/IFillableItem.java @@ -14,4 +14,8 @@ public interface IFillableItem { public boolean providesFluid(FluidType type, ItemStack stack); /** Provides fluid with the maximum being the requested amount */ public int tryEmpty(FluidType type, int amount, ItemStack stack); + /** Returns the first (or only) corrently held type, may return null. Currently only used for setting bedrock ores */ + public FluidType getFirstFluidType(ItemStack stack); + /** Returns the fillstate for the specified fluid. Currently only used for setting bedrock ores */ + public int getFill(ItemStack stack); } diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index a47b56def..e299938c1 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -1,16 +1,18 @@ package api.hbm.fluid; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.Compat; +import api.hbm.tile.ILoadedTile; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public interface IFluidConnector { +public interface IFluidConnector extends ILoadedTile { /** * Returns the amount of fluid that remains @@ -44,7 +46,7 @@ public interface IFluidConnector { */ public default void trySubscribe(FluidType type, World world, int x, int y, int z, ForgeDirection dir) { - TileEntity te = world.getTileEntity(x, y, z); + TileEntity te = Compat.getTileStandard(world, x, y, z); boolean red = false; if(te instanceof IFluidConductor) { diff --git a/src/main/java/api/hbm/fluid/IFluidUser.java b/src/main/java/api/hbm/fluid/IFluidUser.java index 7c4a36a92..3f5ab4f95 100644 --- a/src/main/java/api/hbm/fluid/IFluidUser.java +++ b/src/main/java/api/hbm/fluid/IFluidUser.java @@ -2,8 +2,9 @@ package api.hbm.fluid; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.Compat; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; @@ -37,8 +38,11 @@ public interface IFluidUser extends IFluidConnector { if(con.canConnect(type, dir.getOpposite())) { long toSend = this.getTotalFluidForSend(type, pressure); - long transfer = toSend - con.transferFluid(type, pressure, toSend); - this.removeFluidForTransfer(type, pressure, transfer); + + if(toSend > 0) { + long transfer = toSend - con.transferFluid(type, pressure, toSend); + this.removeFluidForTransfer(type, pressure, transfer); + } red = true; } } @@ -68,7 +72,7 @@ public interface IFluidUser extends IFluidConnector { public static IPipeNet getPipeNet(World world, int x, int y, int z, FluidType type) { - TileEntity te = world.getTileEntity(x, y, z); + TileEntity te = Compat.getTileStandard(world, x, y, z); if(te instanceof IFluidConductor) { IFluidConductor con = (IFluidConductor) te; diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index 09b63d4f5..d8a219497 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -15,17 +15,18 @@ public class PipeNet implements IPipeNet { private FluidType type; private List links = new ArrayList(); private HashSet subscribers = new HashSet(); - + public static List trackingInstances = null; protected BigInteger totalTransfer = BigInteger.ZERO; - + public List debug = new ArrayList(); + public PipeNet(FluidType type) { this.type = type; } @Override public void joinNetworks(IPipeNet network) { - + if(network == this) return; @@ -34,11 +35,11 @@ public class PipeNet implements IPipeNet { this.getLinks().add(conductor); } network.getLinks().clear(); - + for(IFluidConnector connector : network.getSubscribers()) { this.subscribe(connector); } - + network.destroy(); } @@ -54,10 +55,10 @@ public class PipeNet implements IPipeNet { @Override public IPipeNet joinLink(IFluidConductor conductor) { - + if(conductor.getPipeNet(type) != null) conductor.getPipeNet(type).leaveLink(conductor); - + conductor.setPipeNet(type, this); this.links.add(conductor); return this; @@ -86,54 +87,75 @@ public class PipeNet implements IPipeNet { @Override public long transferFluid(long fill, int pressure) { - - this.subscribers.removeIf(x -> - x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() + + subscribers.removeIf(x -> + x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() || !x.isLoaded() ); - + if(this.subscribers.isEmpty()) return fill; - + trackingInstances = new ArrayList(); trackingInstances.add(this); List subList = new ArrayList(subscribers); return fairTransfer(subList, type, pressure, fill); } - + public static long fairTransfer(List subList, FluidType type, int pressure, long fill) { - + + if(fill <= 0) return 0; + List weight = new ArrayList(); long totalReq = 0; - + for(IFluidConnector con : subList) { long req = con.getDemand(type, pressure); weight.add(req); totalReq += req; } - + if(totalReq == 0) return fill; - + long totalGiven = 0; - + for(int i = 0; i < subList.size(); i++) { IFluidConnector con = subList.get(i); long req = weight.get(i); double fraction = (double)req / (double)totalReq; - + long given = (long) Math.floor(fraction * fill); - - totalGiven += (given - con.transferFluid(type, pressure, given)); + + if(given > 0) { + + totalGiven += (given - con.transferFluid(type, pressure, given)); + + if(con instanceof TileEntity) { + TileEntity tile = (TileEntity) con; + tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + } + + /* debug code + if(trackingInstances != null) { + for(int j = 0; j < trackingInstances.size(); j++) { + PipeNet net = trackingInstances.get(j); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SSS"); + sdf.setTimeZone(TimeZone.getTimeZone("UTC")); + log(net, sdf.format(new Date(System.currentTimeMillis())) + " Sending " + given + "mB to " + conToString(con)); + } + } + */ + } } - + if(trackingInstances != null) { - + for(int i = 0; i < trackingInstances.size(); i++) { PipeNet net = trackingInstances.get(i); net.totalTransfer = net.totalTransfer.add(BigInteger.valueOf(totalGiven)); } } - + return fill - totalGiven; } @@ -146,10 +168,10 @@ public class PipeNet implements IPipeNet { public void destroy() { this.valid = false; this.subscribers.clear(); - + for(IFluidConductor con : this.links) con.setPipeNet(type, null); - + this.links.clear(); } @@ -162,4 +184,22 @@ public class PipeNet implements IPipeNet { public BigInteger getTotalTransfer() { return this.totalTransfer; } + + public static void log(PipeNet net, String msg) { + net.debug.add(msg); + + while(net.debug.size() > 50) { + net.debug.remove(0); + } + } + + public static String conToString(IFluidConnector con) { + + if(con instanceof TileEntity) { + TileEntity tile = (TileEntity) con; + return tile.getClass().getSimpleName() + " @ " + tile.xCoord + "/" + tile.yCoord + "/" + tile.zCoord; + } + + return "" + con; + } } diff --git a/src/main/java/api/hbm/item/IButtonReceiver.java b/src/main/java/api/hbm/item/IButtonReceiver.java deleted file mode 100644 index db1741b55..000000000 --- a/src/main/java/api/hbm/item/IButtonReceiver.java +++ /dev/null @@ -1,17 +0,0 @@ -package api.hbm.item; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IButtonReceiver { - - /** - * Called in ModEventHandlerClient for any keyboard input related to this item - * @param stack - * @param player - */ - @SideOnly(Side.CLIENT) - public void handleKeyboardInput(ItemStack stack, EntityPlayer player); -} diff --git a/src/main/java/api/hbm/item/IClickReceiver.java b/src/main/java/api/hbm/item/IClickReceiver.java deleted file mode 100644 index fd6830410..000000000 --- a/src/main/java/api/hbm/item/IClickReceiver.java +++ /dev/null @@ -1,20 +0,0 @@ -package api.hbm.item; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IClickReceiver { - - /** - * Called in ModEventHandlerClient for any mouse input related to this item - * @param stack - * @param player - * @param button - * @param state - * @return true if the event should be canceled - */ - @SideOnly(Side.CLIENT) - public boolean handleMouseInput(ItemStack stack, EntityPlayer player, int button, boolean state); -} diff --git a/src/main/java/api/hbm/redstoneoverradio/IRORInfo.java b/src/main/java/api/hbm/redstoneoverradio/IRORInfo.java new file mode 100644 index 000000000..cfd18cb81 --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/IRORInfo.java @@ -0,0 +1,9 @@ +package api.hbm.redstoneoverradio; + +public interface IRORInfo { + + public static String PREFIX_VALUE = "VAL:"; + public static String PREFIX_FUNCTION = "FUN:"; + + public String[] getFunctionInfo(); +} diff --git a/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java b/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java new file mode 100644 index 000000000..a05b280c9 --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java @@ -0,0 +1,32 @@ +package api.hbm.redstoneoverradio; + +public interface IRORInteractive extends IRORInfo { + + public static String NAME_SEPARATOR = "!"; + public static String PARAM_SEPARATOR = ":"; + + public static String EX_NULL = "Exception: Null Command"; + public static String EX_NAME = "Exception: Multiple Name Separators"; + + /** Runs a function on the ROR component, usually causing the component to change or do something. Returns are optional. */ + public Object runRORFunction(String name, String[] params); + + /** Extracts the command name from a full command string */ + public static String getCommand(String input) { + if(input == null || input.isEmpty()) throw new RORFunctionException(EX_NULL); + String[] parts = input.split(NAME_SEPARATOR); + if(parts.length <= 0 || parts.length > 2) throw new RORFunctionException(EX_NAME); + return parts[0]; + } + + /** Extracts the param list from a full command string */ + public static String[] getParams(String input) { + if(input == null || input.isEmpty()) throw new RORFunctionException(EX_NULL); + String[] parts = input.split(NAME_SEPARATOR); + if(parts.length <= 0 || parts.length > 2) throw new RORFunctionException(EX_NAME); + if(parts.length == 1) return new String[0]; + String paramList = parts[1]; + String[] params = paramList.split(PARAM_SEPARATOR); + return params; + } +} diff --git a/src/main/java/api/hbm/redstoneoverradio/IRORValueProvider.java b/src/main/java/api/hbm/redstoneoverradio/IRORValueProvider.java new file mode 100644 index 000000000..297882c31 --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/IRORValueProvider.java @@ -0,0 +1,7 @@ +package api.hbm.redstoneoverradio; + +public interface IRORValueProvider extends IRORInfo { + + /** Grabs the specified value from this ROR component, operations should not cause any changes with the component itself */ + public Object provideRORValue(String name); +} diff --git a/src/main/java/api/hbm/redstoneoverradio/RORFunctionException.java b/src/main/java/api/hbm/redstoneoverradio/RORFunctionException.java new file mode 100644 index 000000000..5a6a53d3d --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/RORFunctionException.java @@ -0,0 +1,8 @@ +package api.hbm.redstoneoverradio; + +public class RORFunctionException extends RuntimeException { + + public RORFunctionException(String message) { + super(message); + } +} diff --git a/src/main/java/api/hbm/redstoneoverradio/package-info.java b/src/main/java/api/hbm/redstoneoverradio/package-info.java new file mode 100644 index 000000000..425d8e629 --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/package-info.java @@ -0,0 +1,46 @@ +/** + * @author hbm + * + */ +package api.hbm.redstoneoverradio; + +/* + + __ __ __ _________ ________ __ __ __ __ ______ __ + /_/| /_/\ /_/| /________/\ /_______/| /_/| /_/| /_/|_____ /_/| /_____/| /_/| +| || | \\ | || | ___ \ \ | ______|/ | |\_| || | |/_____| || |___ || | || +| || | \ \\ | || | || \ \/ | ||___ | \/_/ |/ | ______ || /__| || | ||__ +| || | |\ \\| || | || \ || | |/__/| \ // | |/_____| || | ___|/ | |/_/| +| || | ||\ \| || | || | || | ____|/ > bounding = new ArrayList(); @Override public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) { - + if(!this.useDetailedHitbox()) { super.addCollisionBoxesToList(world, x, y, z, entityBounding, list, entity); return; } - + int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return; - + x = pos[0]; y = pos[1]; z = pos[2]; - + for(AxisAlignedBB aabb :this.bounding) { AxisAlignedBB boxlet = getAABBRotationOffset(aabb, x + 0.5, y, z + 0.5, ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - this.offset).getRotation(ForgeDirection.UP)); - + if(entityBounding.intersectsWith(boxlet)) { list.add(boxlet); } } } - + public static AxisAlignedBB getAABBRotationOffset(AxisAlignedBB aabb, double x, double y, double z, ForgeDirection dir) { - + AxisAlignedBB newBox = null; if(dir == ForgeDirection.NORTH) newBox = AxisAlignedBB.getBoundingBox(aabb.minX, aabb.minY, aabb.minZ, aabb.maxX, aabb.maxY, aabb.maxZ); if(dir == ForgeDirection.EAST) newBox = AxisAlignedBB.getBoundingBox(-aabb.maxZ, aabb.minY, aabb.minX, -aabb.minZ, aabb.maxY, aabb.maxX); if(dir == ForgeDirection.SOUTH) newBox = AxisAlignedBB.getBoundingBox(-aabb.maxX, aabb.minY, -aabb.maxZ, -aabb.minX, aabb.maxY, -aabb.minZ); if(dir == ForgeDirection.WEST) newBox = AxisAlignedBB.getBoundingBox(aabb.minZ, aabb.minY, -aabb.maxX, aabb.maxZ, aabb.maxY, -aabb.minX); - + if(newBox != null) { newBox.offset(x, y, z); return newBox; } - + return AxisAlignedBB.getBoundingBox(aabb.minX, aabb.minY, aabb.minZ, aabb.maxX, aabb.maxY, aabb.maxZ).offset(x + 0.5, y + 0.5, z + 0.5); } @@ -477,35 +476,62 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.999F, 1.0F); //for some fucking reason setting maxY to something that isn't 1 magically fixes item collisions } } - + @Override @SideOnly(Side.CLIENT) public boolean shouldDrawHighlight(World world, int x, int y, int z) { return !this.bounding.isEmpty(); } - + @Override @SideOnly(Side.CLIENT) public void drawHighlight(DrawBlockHighlightEvent event, World world, int x, int y, int z) { - + int[] pos = this.findCore(world, x, y, z); if(pos == null) return; - + x = pos[0]; y = pos[1]; z = pos[2]; - + EntityPlayer player = event.player; float interp = event.partialTicks; double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) interp; double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) interp; double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; float exp = 0.002F; - + int meta = world.getBlockMetadata(x, y, z); ICustomBlockHighlight.setup(); for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(meta - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1); ICustomBlockHighlight.cleanup(); } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + int[] pos = findCore(world, x, y, z); + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if (tile instanceof ICopiable) + return ((ICopiable) tile).getSettings(world, pos[0], pos[1], pos[2]); + else + return null; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + int[] pos = findCore(world, x, y, z); + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if (tile instanceof ICopiable) + ((ICopiable) tile).pasteSettings(nbt, index, world, player, pos[0], pos[1], pos[2]); + } + + @Override + public String[] infoForDisplay(World world, int x, int y, int z) { + int[] pos = findCore(world, x, y, z); + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if (tile instanceof ICopiable) + return ((ICopiable) tile).infoForDisplay(world, x, y, z); + return null; + } } diff --git a/src/main/java/com/hbm/blocks/BlockEnumMulti.java b/src/main/java/com/hbm/blocks/BlockEnumMulti.java index d581bfd2d..a79493e26 100644 --- a/src/main/java/com/hbm/blocks/BlockEnumMulti.java +++ b/src/main/java/com/hbm/blocks/BlockEnumMulti.java @@ -1,9 +1,6 @@ package com.hbm.blocks; -import java.util.Locale; - import com.hbm.util.EnumUtil; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; @@ -11,6 +8,8 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; +import java.util.Locale; + public class BlockEnumMulti extends BlockMulti { public Class theEnum; @@ -23,36 +22,44 @@ public class BlockEnumMulti extends BlockMulti { this.multiName = multiName; this.multiTexture = multiTexture; } - + protected IIcon[] icons; @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { - + if(multiTexture) { Enum[] enums = theEnum.getEnumConstants(); this.icons = new IIcon[enums.length]; - + for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US)); + this.icons[i] = reg.registerIcon(this.getTextureMultiName(num)); } } else { this.blockIcon = reg.registerIcon(this.getTextureName()); } } - + public String getUnlocalizedName(ItemStack stack) { - + if(this.multiName) { Enum num = EnumUtil.grabEnumSafely(this.theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); + return getUnlocalizedMultiName(num); } - + return this.getUnlocalizedName(); } - + + public String getTextureMultiName(Enum num) { + return this.getTextureName() + "." + num.name().toLowerCase(Locale.US); + } + + public String getUnlocalizedMultiName(Enum num) { + return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); + } + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index 717ac2639..bf35a4e17 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -11,6 +11,14 @@ public class BlockEnums { BAUXITE } + public static enum EnumMeteorType { + IRON, + COPPER, + ALUMINIUM, + RAREEARTH, + COBALT + } + public static enum EnumBiomeType { DESERT, WOODLAND @@ -20,6 +28,27 @@ public class BlockEnums { SULFUR, ASBESTOS } + + public static enum EnumCMMaterials { + STEEL, + ALLOY, + DESH, + TCALLOY + } + + public static enum EnumCMEngines { + STANDARD, + DESH, + BISMUTH + } + + public static enum EnumCMCircuit { + ALUMINIUM, + COPPER, + RED_COPPER, + GOLD, + SCHRABIDIUM + } /** DECO / STRUCTURE ENUMS */ //i apologize in advance @@ -37,4 +66,10 @@ public class BlockEnums { GREEN, STEEL } + + public static enum LightType { + INCANDESCENT, + FLUORESCENT, + HALOGEN + } } diff --git a/src/main/java/com/hbm/blocks/BlockFallingNT.java b/src/main/java/com/hbm/blocks/BlockFallingNT.java new file mode 100644 index 000000000..8e23cc57c --- /dev/null +++ b/src/main/java/com/hbm/blocks/BlockFallingNT.java @@ -0,0 +1,95 @@ +package com.hbm.blocks; + +import com.hbm.entity.item.EntityFallingBlockNT; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; + +import java.util.Random; + +public class BlockFallingNT extends Block { + + public static boolean fallInstantly; + + public BlockFallingNT() { + super(Material.sand); + this.setCreativeTab(CreativeTabs.tabBlock); + } + + public BlockFallingNT(Material mat) { + super(mat); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + if(!world.isRemote) { + this.fall(world, x, y, z); + } + } + + protected void fall(World world, int x, int y, int z) { + + if(canFallThrough(world, x, y - 1, z) && y >= 0) { + byte range = 32; + + if(!fallInstantly && world.checkChunksExist(x - range, y - range, z - range, x + range, y + range, z + range)) { + if(!world.isRemote) { + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(world, x + 0.5D, y + 0.5D, z + 0.5D, this, world.getBlockMetadata(x, y, z)); + this.modifyFallingBlock(entityfallingblock); + world.spawnEntityInWorld(entityfallingblock); + } + } else { + world.setBlockToAir(x, y, z); + + while(canFallThrough(world, x, y - 1, z) && y > 0) { + --y; + } + + if(y > 0) { + world.setBlock(x, y, z, this); + } + } + } + } + + protected void modifyFallingBlock(EntityFallingBlockNT falling) { } + + @Override + public int tickRate(World world) { + return 2; + } + + public static boolean canFallThrough(World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); + + if(block.isAir(world, x, y, z)) { + return true; + } else if(block == Blocks.fire) { + return true; + } else { + Material material = block.getMaterial(); + return material == Material.water ? true : material == Material.lava; + } + } + + public void onLand(World world, int x, int y, int z, int meta) { } + + @SideOnly(Side.CLIENT) public boolean shouldOverrideRenderer() { return false; } + @SideOnly(Side.CLIENT) public void overrideRenderer(EntityFallingBlockNT falling, RenderBlocks renderBlocks, Tessellator tessellator) { } +} diff --git a/src/main/java/com/hbm/blocks/BlockMulti.java b/src/main/java/com/hbm/blocks/BlockMulti.java index 1741d9316..e676c0b71 100644 --- a/src/main/java/com/hbm/blocks/BlockMulti.java +++ b/src/main/java/com/hbm/blocks/BlockMulti.java @@ -1,7 +1,5 @@ package com.hbm.blocks; -import java.util.List; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; @@ -9,6 +7,8 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import java.util.List; + public abstract class BlockMulti extends BlockBase implements IBlockMulti { public BlockMulti() { @@ -31,8 +31,4 @@ public abstract class BlockMulti extends BlockBase implements IBlockMulti { list.add(new ItemStack(item, 1, i)); } } - - public String getUnlocalizedName(ItemStack stack) { - return this.getUnlocalizedName(); - } } diff --git a/src/main/java/com/hbm/blocks/BlockRemap.java b/src/main/java/com/hbm/blocks/BlockRemap.java index c9d66894f..97c21a6a1 100644 --- a/src/main/java/com/hbm/blocks/BlockRemap.java +++ b/src/main/java/com/hbm/blocks/BlockRemap.java @@ -1,17 +1,19 @@ package com.hbm.blocks; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + import java.util.ArrayList; import java.util.Random; -import com.hbm.lib.RefStrings; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - public class BlockRemap extends Block implements ILookOverlay { - + public Block remapBlock; public int remapMeta; @@ -21,12 +23,16 @@ public class BlockRemap extends Block implements ILookOverlay { this.remapMeta = meta; this.setTickRandomly(true); } - + @Override - public Block setBlockName(String name) { - super.setBlockName(name); - this.setBlockTextureName(RefStrings.MODID + ":" + name); - return this; + @SideOnly(Side.CLIENT) + public IIcon getIcon(int meta, int side) { + return this.remapBlock.getIcon(meta, side); + } + + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + return this.remapBlock.getItemDropped(meta, rand, fortune); } @Override diff --git a/src/main/java/com/hbm/blocks/IAnalyzable.java b/src/main/java/com/hbm/blocks/IAnalyzable.java new file mode 100644 index 000000000..7648183c7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/IAnalyzable.java @@ -0,0 +1,10 @@ +package com.hbm.blocks; + +import net.minecraft.world.World; + +import java.util.List; + +public interface IAnalyzable { + + public List getDebugInfo(World world, int x, int y, int z); +} diff --git a/src/main/java/com/hbm/blocks/IBlockMulti.java b/src/main/java/com/hbm/blocks/IBlockMulti.java index b0bf10ba6..067b2759e 100644 --- a/src/main/java/com/hbm/blocks/IBlockMulti.java +++ b/src/main/java/com/hbm/blocks/IBlockMulti.java @@ -1,9 +1,20 @@ package com.hbm.blocks; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; + public interface IBlockMulti { public int getSubCount(); + public default String getUnlocalizedName(ItemStack stack) { + return ((Block)this).getUnlocalizedName(); + } + + public default String getOverrideDisplayName(ItemStack stack) { + return null; + } + public default int rectify(int meta) { return Math.abs(meta % getSubCount()); } diff --git a/src/main/java/com/hbm/blocks/IBlockMultiPass.java b/src/main/java/com/hbm/blocks/IBlockMultiPass.java index da8739558..c5140f394 100644 --- a/src/main/java/com/hbm/blocks/IBlockMultiPass.java +++ b/src/main/java/com/hbm/blocks/IBlockMultiPass.java @@ -11,4 +11,7 @@ public interface IBlockMultiPass { return renderID; } + public default boolean shouldRenderItemMulti() { + return false; + } } diff --git a/src/main/java/com/hbm/blocks/ICustomBlockHighlight.java b/src/main/java/com/hbm/blocks/ICustomBlockHighlight.java index 509ddab95..507fe8ff5 100644 --- a/src/main/java/com/hbm/blocks/ICustomBlockHighlight.java +++ b/src/main/java/com/hbm/blocks/ICustomBlockHighlight.java @@ -1,18 +1,17 @@ package com.hbm.blocks; -import org.lwjgl.opengl.GL11; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.world.World; import net.minecraftforge.client.event.DrawBlockHighlightEvent; +import org.lwjgl.opengl.GL11; public interface ICustomBlockHighlight { @SideOnly(Side.CLIENT) public boolean shouldDrawHighlight(World world, int x, int y, int z); @SideOnly(Side.CLIENT) public void drawHighlight(DrawBlockHighlightEvent event, World world, int x, int y, int z); - + @SideOnly(Side.CLIENT) public static void setup() { GL11.glEnable(GL11.GL_BLEND); @@ -22,7 +21,7 @@ public interface ICustomBlockHighlight { GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDepthMask(false); } - + @SideOnly(Side.CLIENT) public static void cleanup() { GL11.glDepthMask(true); diff --git a/src/main/java/com/hbm/blocks/ILookOverlay.java b/src/main/java/com/hbm/blocks/ILookOverlay.java index d100ed767..c58c3827b 100644 --- a/src/main/java/com/hbm/blocks/ILookOverlay.java +++ b/src/main/java/com/hbm/blocks/ILookOverlay.java @@ -1,9 +1,5 @@ package com.hbm.blocks; -import java.util.List; - -import org.lwjgl.opengl.GL11; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; @@ -11,6 +7,9 @@ import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent; +import org.lwjgl.opengl.GL11; + +import java.util.List; public interface ILookOverlay { @@ -33,14 +32,14 @@ public interface ILookOverlay { try { for(String line : text) { - + int color = 0xFFFFFF; if(line.startsWith("&[")) { int end = line.lastIndexOf("&]"); color = Integer.parseInt(line.substring(2, end)); line = line.substring(end + 2); } - + mc.fontRenderer.drawStringWithShadow(line, pX, pZ, color); pZ += 10; } diff --git a/src/main/java/com/hbm/blocks/IPersistentInfoProvider.java b/src/main/java/com/hbm/blocks/IPersistentInfoProvider.java index ce033b3cb..4cfb07ad5 100644 --- a/src/main/java/com/hbm/blocks/IPersistentInfoProvider.java +++ b/src/main/java/com/hbm/blocks/IPersistentInfoProvider.java @@ -1,11 +1,11 @@ package com.hbm.blocks; -import java.util.List; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import java.util.List; + public interface IPersistentInfoProvider { public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext); diff --git a/src/main/java/com/hbm/blocks/ISpotlight.java b/src/main/java/com/hbm/blocks/ISpotlight.java new file mode 100644 index 000000000..d6ccba272 --- /dev/null +++ b/src/main/java/com/hbm/blocks/ISpotlight.java @@ -0,0 +1,6 @@ +package com.hbm.blocks; + +public interface ISpotlight { + + public int getBeamLength(); +} diff --git a/src/main/java/com/hbm/blocks/ITooltipProvider.java b/src/main/java/com/hbm/blocks/ITooltipProvider.java index e959db070..5008b1834 100644 --- a/src/main/java/com/hbm/blocks/ITooltipProvider.java +++ b/src/main/java/com/hbm/blocks/ITooltipProvider.java @@ -1,23 +1,21 @@ package com.hbm.blocks; -import java.util.List; - -import org.lwjgl.input.Keyboard; - import com.hbm.util.I18nUtil; - import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import org.lwjgl.input.Keyboard; + +import java.util.List; public interface ITooltipProvider { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext); public default void addStandardInfo(ItemStack stack, EntityPlayer player, List list, boolean ext) { - + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray(((Block)this).getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s); } else { @@ -26,7 +24,7 @@ public interface ITooltipProvider { EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); } } - + public default EnumRarity getRarity(ItemStack stack) { return EnumRarity.common; } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 2daf2defc..4970d4248 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1,3513 +1,3480 @@ -package com.hbm.blocks; - -import com.hbm.blocks.generic.*; -import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect; -import com.hbm.blocks.generic.BlockMotherOfAllOres.ItemRandomOreBlock; -import com.hbm.blocks.BlockEnums.*; -import com.hbm.blocks.bomb.*; -import com.hbm.blocks.fluid.*; -import com.hbm.blocks.gas.*; -import com.hbm.blocks.machine.*; -import com.hbm.blocks.machine.pile.*; -import com.hbm.blocks.machine.rbmk.*; -import com.hbm.blocks.network.*; -import com.hbm.blocks.rail.RailNarrowCurve; -import com.hbm.blocks.rail.RailNarrowStraight; -import com.hbm.blocks.rail.RailStandardBuffer; -import com.hbm.blocks.rail.RailStandardCurve; -import com.hbm.blocks.rail.RailStandardRamp; -import com.hbm.blocks.rail.RailStandardStraight; -import com.hbm.blocks.siege.*; -import com.hbm.blocks.test.*; -import com.hbm.blocks.turret.*; -import com.hbm.items.block.*; -import com.hbm.items.bomb.*; -import com.hbm.items.special.ItemOreBlock; -import com.hbm.lib.ModDamageSource; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.DoorDecl; -import com.hbm.tileentity.machine.storage.TileEntityFileCabinet; - -import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.Block; -import net.minecraft.block.BlockFalling; -import net.minecraft.block.material.*; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemBlock; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; - -public class ModBlocks { - - public static void mainRegistry() - { - initializeBlock(); - registerBlock(); - } - - public static Block test_render; - public static Block test_bomb; - public static Block test_bomb_advanced; - public static Block test_nuke; - public static Block event_tester; - public static Block obj_tester; - public static Block test_core; - public static Block test_charge; - public static Block test_pipe; - public static Block test_ct; - public static Block test_rail; - public static Block structure_anchor; - - public static Block ore_uranium; - public static Block ore_uranium_scorched; - public static Block ore_titanium; - public static Block ore_sulfur; - public static Block ore_thorium; - public static Block ore_niter; - public static Block ore_copper; - public static Block ore_tungsten; - public static Block ore_aluminium; - public static Block ore_fluorite; - public static Block ore_lead; - public static Block ore_schrabidium; - public static Block ore_beryllium; - public static Block ore_australium; - public static Block ore_weidanium; - public static Block ore_reiium; - public static Block ore_unobtainium; - public static Block ore_daffergon; - public static Block ore_verticium; - public static Block ore_rare; - public static Block ore_cobalt; - public static Block ore_cinnebar; - public static Block ore_coltan; - public static Block ore_alexandrite; - - public static Block ore_random; - public static Block ore_bedrock; - public static Block ore_volcano; - - public static Block ore_bedrock_coltan; - - public static Block ore_nether_coal; - public static Block ore_nether_smoldering; - public static Block ore_nether_uranium; - public static Block ore_nether_uranium_scorched; - public static Block ore_nether_plutonium; - public static Block ore_nether_tungsten; - public static Block ore_nether_sulfur; - public static Block ore_nether_fire; - public static Block ore_nether_cobalt; - public static Block ore_nether_schrabidium; - - public static Block ore_meteor_uranium; - public static Block ore_meteor_thorium; - public static Block ore_meteor_titanium; - public static Block ore_meteor_sulfur; - public static Block ore_meteor_copper; - public static Block ore_meteor_tungsten; - public static Block ore_meteor_aluminium; - public static Block ore_meteor_lead; - public static Block ore_meteor_lithium; - public static Block ore_meteor_starmetal; - - public static Block stone_gneiss; - public static Block ore_gneiss_iron; - public static Block ore_gneiss_gold; - public static Block ore_gneiss_uranium; - public static Block ore_gneiss_uranium_scorched; - public static Block ore_gneiss_copper; - public static Block ore_gneiss_asbestos; - public static Block ore_gneiss_lithium; - public static Block ore_gneiss_schrabidium; - public static Block ore_gneiss_rare; - public static Block ore_gneiss_gas; - - public static Block gneiss_brick; - public static Block gneiss_tile; - public static Block gneiss_chiseled; - - public static Block stone_depth; - public static Block ore_depth_cinnebar; - public static Block ore_depth_zirconium; - public static Block ore_depth_borax; - public static Block cluster_depth_iron; - public static Block cluster_depth_titanium; - public static Block cluster_depth_tungsten; - - public static Block stone_depth_nether; - public static Block ore_depth_nether_neodymium; - - public static Block stone_porous; - public static Block stone_resource; - public static Block stalagmite; - public static Block stalactite; - public static Block stone_biome; - public static Block stone_deep_cobble; - - public static Block depth_brick; - public static Block depth_tiles; - public static Block depth_nether_brick; - public static Block depth_nether_tiles; - public static Block depth_dnt; - - public static Block basalt; - public static Block basalt_sulfur; - public static Block basalt_fluorite; - public static Block basalt_asbestos; - public static Block basalt_gem; - public static Block basalt_smooth; - public static Block basalt_brick; - public static Block basalt_polished; - public static Block basalt_tiles; - - public static Block cluster_iron; - public static Block cluster_titanium; - public static Block cluster_aluminium; - public static Block cluster_copper; - - public static Block ore_oil; - public static Block ore_oil_empty; - public static Block ore_oil_sand; - public static Block ore_bedrock_oil; - public static Block ore_lignite; - public static Block ore_asbestos; - public static Block ore_coal_oil; - public static Block ore_coal_oil_burning; - - public static Block ore_tikite; - - public static Block crystal_power; - public static Block crystal_energy; - public static Block crystal_robust; - public static Block crystal_trixite; - - public static Block block_thorium; - public static Block block_thorium_fuel; - public static Block block_uranium; - public static Block block_u233; - public static Block block_u235; - public static Block block_u238; - public static Block block_uranium_fuel; - public static Block block_neptunium; - public static Block block_polonium; - public static Block block_mox_fuel; - public static Block block_plutonium; - public static Block block_pu238; - public static Block block_pu239; - public static Block block_pu240; - public static Block block_pu_mix; - public static Block block_plutonium_fuel; - public static Block block_titanium; - public static Block block_sulfur; - public static Block block_niter; - public static Block block_niter_reinforced; - public static Block block_copper; - public static Block block_red_copper; - public static Block block_tungsten; - public static Block block_aluminium; - public static Block block_fluorite; - public static Block block_steel; - public static Block block_tcalloy; - public static Block block_cdalloy; - public static Block block_lead; - public static Block block_bismuth; - public static Block block_cadmium; - public static Block block_coltan; - public static Block block_tantalium; - public static Block block_niobium; - public static Block block_trinitite; - public static Block block_waste; - public static Block block_waste_painted; - public static Block block_waste_vitrified; - public static Block ancient_scrap; - public static Block block_corium; - public static Block block_corium_cobble; - public static Block block_scrap; - public static Block block_electrical_scrap; - public static Block block_beryllium; - public static Block block_schraranium; - public static Block block_schrabidium; - public static Block block_schrabidate; - public static Block block_solinium; - public static Block block_schrabidium_fuel; - public static Block block_euphemium; - public static Block block_schrabidium_cluster; - public static Block block_euphemium_cluster; - public static Block block_dineutronium; - public static Block block_advanced_alloy; - public static Block block_magnetized_tungsten; - public static Block block_combine_steel; - public static Block block_desh; - public static Block block_dura_steel; - public static Block block_starmetal; - public static Block block_polymer; - public static Block block_bakelite; - public static Block block_rubber; - public static Block block_yellowcake; - public static Block block_insulator; - public static Block block_fiberglass; - public static Block block_asbestos; - public static Block block_cobalt; - public static Block block_lithium; - public static Block block_zirconium; - public static Block block_white_phosphorus; - public static Block block_red_phosphorus; - public static Block block_fallout; - public static Block block_foam; - public static Block block_coke; - public static Block block_graphite; - public static Block block_graphite_drilled; - public static Block block_graphite_fuel; - public static Block block_graphite_plutonium; - public static Block block_graphite_rod; - public static Block block_graphite_source; - public static Block block_graphite_lithium; - public static Block block_graphite_tritium; - public static Block block_graphite_detector; - public static Block block_boron; - public static Block block_lanthanium; - public static Block block_ra226; - public static Block block_actinium; - public static Block block_tritium; - public static Block block_semtex; - public static Block block_c4; - public static Block block_smore; - public static Block block_slag; - - public static Block block_australium; - public static Block block_weidanium; - public static Block block_reiium; - public static Block block_unobtainium; - public static Block block_daffergon; - public static Block block_verticium; - - public static Block block_cap_nuka; - public static Block block_cap_quantum; - public static Block block_cap_rad; - public static Block block_cap_sparkle; - public static Block block_cap_korl; - public static Block block_cap_fritz; - public static Block block_cap_sunset; - public static Block block_cap_star; - - public static Block deco_titanium; - public static Block deco_red_copper; - public static Block deco_tungsten; - public static Block deco_aluminium; - public static Block deco_steel; - public static Block deco_lead; - public static Block deco_beryllium; - public static Block deco_asbestos; - public static Block deco_rbmk; - public static Block deco_rbmk_smooth; - - public static Block deco_emitter; - public static Block part_emitter; - public static Block deco_loot; - public static Block bobblehead; - public static Block snowglobe; - - public static Block hazmat; - - public static Block gravel_obsidian; - public static Block gravel_diamond; - public static Block asphalt; - public static Block asphalt_light; - - public static Block reinforced_brick; - public static Block reinforced_ducrete; - public static Block reinforced_glass; - public static Block reinforced_glass_pane; - public static Block reinforced_light; - public static Block reinforced_sand; - public static Block reinforced_lamp_off; - public static Block reinforced_lamp_on; - public static Block reinforced_laminate; - public static Block reinforced_laminate_pane; - - public static Block lamp_tritium_green_off; - public static Block lamp_tritium_green_on; - public static Block lamp_tritium_blue_off; - public static Block lamp_tritium_blue_on; - - public static Block lamp_uv_off; - public static Block lamp_uv_on; - public static Block lamp_demon; - - public static Block reinforced_stone; - public static Block concrete_smooth; - public static Block concrete_colored; - public static Block concrete_colored_ext; - public static Block concrete; - public static Block concrete_asbestos; - public static Block concrete_super; - public static Block concrete_super_broken; - public static Block ducrete_smooth; - public static Block ducrete; - public static Block concrete_pillar; - public static Block brick_concrete; - public static Block brick_concrete_mossy; - public static Block brick_concrete_cracked; - public static Block brick_concrete_broken; - public static Block brick_concrete_marked; - public static Block brick_ducrete; - public static Block brick_obsidian; - public static Block brick_light; - public static Block brick_compound; - public static Block brick_asbestos; - public static Block brick_fire; - - public static Block concrete_slab; - public static Block concrete_double_slab; - public static Block concrete_brick_slab; - public static Block concrete_brick_double_slab; - public static Block brick_slab; - public static Block brick_double_slab; - - public static Block concrete_smooth_stairs; - public static Block concrete_stairs; - public static Block concrete_asbestos_stairs; - public static Block ducrete_smooth_stairs; - public static Block ducrete_stairs; - public static Block brick_concrete_stairs; - public static Block brick_concrete_mossy_stairs; - public static Block brick_concrete_cracked_stairs; - public static Block brick_concrete_broken_stairs; - public static Block brick_ducrete_stairs; - public static Block reinforced_stone_stairs; - public static Block reinforced_brick_stairs; - public static Block brick_obsidian_stairs; - public static Block brick_light_stairs; - public static Block brick_compound_stairs; - public static Block brick_asbestos_stairs; - public static Block brick_fire_stairs; - - public static Block cmb_brick; - public static Block cmb_brick_reinforced; - - public static Block vinyl_tile; - - public static Block tile_lab; - public static Block tile_lab_cracked; - public static Block tile_lab_broken; - - public static Block siege_shield; - public static Block siege_internal; - public static Block siege_circuit; - public static Block siege_emergency; - public static Block siege_hole; - - public static Block block_meteor; - public static Block block_meteor_cobble; - public static Block block_meteor_broken; - public static Block block_meteor_molten; - public static Block block_meteor_treasure; - public static Block meteor_polished; - public static Block meteor_brick; - public static Block meteor_brick_mossy; - public static Block meteor_brick_cracked; - public static Block meteor_brick_chiseled; - public static Block meteor_pillar; - public static Block meteor_spawner; - public static Block meteor_battery; - - public static Block moon_turf; - - public static Block brick_jungle; - public static Block brick_jungle_cracked; - public static Block brick_jungle_fragile; - public static Block brick_jungle_lava; - public static Block brick_jungle_ooze; - public static Block brick_jungle_mystic; - public static Block brick_jungle_trap; - public static Block brick_jungle_glyph; - public static Block brick_jungle_circle; - - public static Block brick_dungeon; - public static Block brick_dungeon_flat; - public static Block brick_dungeon_tile; - public static Block brick_dungeon_circle; - - public static Block brick_forgotten; - - public static Block deco_computer; - - public static Block filing_cabinet; - - public static Block tape_recorder; - public static Block steel_poles; - public static Block pole_top; - public static Block pole_satellite_receiver; - public static Block steel_wall; - public static Block steel_corner; - public static Block steel_roof; - public static Block steel_beam; - public static Block steel_scaffold; - public static Block steel_grate; - public static Block steel_grate_wide; - - public static Block deco_pipe; - public static Block deco_pipe_rusted; - public static Block deco_pipe_green; - public static Block deco_pipe_green_rusted; - public static Block deco_pipe_red; - public static Block deco_pipe_marked; - public static Block deco_pipe_rim; - public static Block deco_pipe_rim_rusted; - public static Block deco_pipe_rim_green; - public static Block deco_pipe_rim_green_rusted; - public static Block deco_pipe_rim_red; - public static Block deco_pipe_rim_marked; - public static Block deco_pipe_framed; - public static Block deco_pipe_framed_rusted; - public static Block deco_pipe_framed_green; - public static Block deco_pipe_framed_green_rusted; - public static Block deco_pipe_framed_red; - public static Block deco_pipe_framed_marked; - public static Block deco_pipe_quad; - public static Block deco_pipe_quad_rusted; - public static Block deco_pipe_quad_green; - public static Block deco_pipe_quad_green_rusted; - public static Block deco_pipe_quad_red; - public static Block deco_pipe_quad_marked; - - public static Block broadcaster_pc; - public static Block geiger; - public static Block hev_battery; - - public static Block fence_metal; - - public static Block sand_boron; - public static Block sand_lead; - public static Block sand_uranium; - public static Block sand_polonium; - public static Block sand_quartz; - public static Block sand_gold; - public static Block sand_gold198; - public static Block ash_digamma; - public static Block glass_boron; - public static Block glass_lead; - public static Block glass_uranium; - public static Block glass_trinitite; - public static Block glass_polonium; - public static Block glass_ash; - public static Block glass_quartz; - - public static Block mush; - public static Block mush_block; - public static Block mush_block_stem; - - public static Block glyphid_base; - public static Block glyphid_spawner; - - public static Block plant_flower; - public static Block plant_tall; - public static Block plant_dead; - public static Block reeds; - public static Block vine_phosphor; - public static final Material thick_foliage = new MaterialLogic(MapColor.foliageColor) { - @Override public boolean getCanBurn() { return true; } - @Override public boolean isToolNotRequired() { return false; } - @Override public int getMaterialMobility() { return 1; } - }; - - public static Block waste_earth; - public static Block waste_mycelium; - public static Block waste_trinitite; - public static Block waste_trinitite_red; - public static Block waste_log; - public static Block waste_leaves; - public static Block waste_planks; - public static Block frozen_dirt; - public static Block frozen_grass; - public static Block frozen_log; - public static Block frozen_planks; - public static Block dirt_dead; - public static Block dirt_oily; - public static Block sand_dirty; - public static Block sand_dirty_red; - public static Block stone_cracked; - public static Block burning_earth; - public static Block tektite; - public static Block ore_tektite_osmiridium; - public static Block impact_dirt; - - public static Block fallout; - public static Block foam_layer; - public static Block sand_boron_layer; - public static Block leaves_layer; - - public static Block sellafield_slaked; - public static Block sellafield; - /*public static Block sellafield_0; - public static Block sellafield_1; - public static Block sellafield_2; - public static Block sellafield_3; - public static Block sellafield_4; - public static Block sellafield_core;*/ - - public static Block geysir_water; - public static Block geysir_chlorine; - public static Block geysir_vapor; - public static Block geysir_nether; - - public static Block observer_off; - public static Block observer_on; - - public static Block flame_war; - public static Block float_bomb; - public static Block therm_endo; - public static Block therm_exo; - public static Block emp_bomb; - public static Block det_cord; - public static Block det_charge; - public static Block det_nuke; - public static Block det_miner; - public static Block red_barrel; - public static Block pink_barrel; - public static Block yellow_barrel; - public static Block vitrified_barrel; - public static Block lox_barrel; - public static Block taint_barrel; - public static Block crashed_balefire; - public static Block rejuvinator; - public static Block fireworks; - public static Block dynamite; - public static Block tnt; - public static Block semtex; - public static Block c4; - public static Block fissure_bomb; - - public static Block charge_dynamite; - public static Block charge_miner; - public static Block charge_c4; - public static Block charge_semtex; - - public static Block mine_ap; - public static Block mine_he; - public static Block mine_shrap; - public static Block mine_fat; - - public static Block crate; - public static Block crate_weapon; - public static Block crate_lead; - public static Block crate_metal; - public static Block crate_red; - public static Block crate_can; - public static Block crate_ammo; - public static Block crate_jungle; - - public static Block boxcar; - public static Block boat; - public static Block bomber; - - public static Block seal_frame; - public static Block seal_controller; - public static Block seal_hatch; - - public static Block vault_door; - public static Block blast_door; - public static Block fire_door; - public static Block transition_seal; - - public static Block door_metal; - public static Block door_office; - public static Block door_bunker; - - public static Block barbed_wire; - public static Block barbed_wire_fire; - public static Block barbed_wire_poison; - public static Block barbed_wire_acid; - public static Block barbed_wire_wither; - public static Block barbed_wire_ultradeath; - public static Block spikes; - - public static Block charger; - - public static Block tesla; - - public static Block marker_structure; - - public static Block muffler; - - public static Block sat_mapper; - public static Block sat_scanner; - public static Block sat_radar; - public static Block sat_laser; - public static Block sat_foeq; - public static Block sat_resonator; - - public static Block sat_dock; - - public static Block soyuz_capsule; - - public static Block crate_iron; - public static Block crate_steel; - public static Block crate_desh; - public static Block crate_tungsten; - public static Block safe; - public static Block mass_storage; - - public static Block nuke_gadget; - public static Block nuke_boy; - public static Block nuke_man; - public static Block nuke_mike; - public static Block nuke_tsar; - public static Block nuke_fleija; - public static Block nuke_prototype; - public static Block nuke_custom; - public static Block nuke_solinium; - public static Block nuke_n2; - public static Block nuke_n45; - public static Block nuke_fstbmb; - public static Block bomb_multi; - - public static Block heater_firebox; - public static Block heater_oven; - public static Block heater_oilburner; - public static Block heater_electric; - public static Block heater_heatex; - - public static Block furnace_iron; - public static Block furnace_steel; - public static Block furnace_combination; - public static Block machine_stirling; - public static Block machine_stirling_steel; - public static Block machine_sawmill; - public static Block machine_crucible; - public static Block machine_boiler; - - public static Block foundry_mold; - public static Block foundry_basin; - public static Block foundry_channel; - public static Block foundry_tank; - public static Block foundry_outlet; - public static Block foundry_slagtap; - public static Block slag; - - public static Block machine_difurnace_off; - public static Block machine_difurnace_on; - public static Block machine_difurnace_extension; - public static Block machine_difurnace_rtg_off; - public static Block machine_difurnace_rtg_on; - //public static final int guiID_test_difurnace = 1; historical - - public static Block machine_centrifuge; - public static Block machine_gascent; - - public static Block machine_fel; - public static Block machine_silex; - - public static Block machine_crystallizer; - - public static Block machine_uf6_tank; - - public static Block machine_puf6_tank; - - public static Block machine_reactor_breeding; - - public static Block machine_nuke_furnace_off; - public static Block machine_nuke_furnace_on; - - public static Block machine_rtg_furnace_off; - public static Block machine_rtg_furnace_on; - - public static Block machine_generator; - - public static Block machine_industrial_generator; - - public static Block machine_cyclotron; - - public static Block hadron_plating; - public static Block hadron_plating_blue; - public static Block hadron_plating_black; - public static Block hadron_plating_yellow; - public static Block hadron_plating_striped; - public static Block hadron_plating_voltz; - public static Block hadron_plating_glass; - public static Block hadron_coil_alloy; - public static Block hadron_coil_gold; - public static Block hadron_coil_neodymium; - public static Block hadron_coil_magtung; - public static Block hadron_coil_schrabidium; - public static Block hadron_coil_schrabidate; - public static Block hadron_coil_starmetal; - public static Block hadron_coil_chlorophyte; - public static Block hadron_coil_mese; - public static Block hadron_power; - public static Block hadron_power_10m; - public static Block hadron_power_100m; - public static Block hadron_power_1g; - public static Block hadron_power_10g; - public static Block hadron_diode; - public static Block hadron_analysis; - public static Block hadron_analysis_glass; - public static Block hadron_access; - public static Block hadron_core; - - public static Block machine_electric_furnace_off; - public static Block machine_electric_furnace_on; - - public static Block machine_microwave; - - public static Block machine_arc_furnace_off; - public static Block machine_arc_furnace_on; - - //public static Block machine_deuterium; - - public static Block machine_battery_potato; - public static Block machine_battery; - public static Block machine_lithium_battery; - public static Block machine_schrabidium_battery; - public static Block machine_dineutronium_battery; - public static Block machine_fensu; - public static final int guiID_machine_fensu = 99; - - public static Block capacitor_bus; - public static Block capacitor_copper; - public static Block capacitor_gold; - public static Block capacitor_niobium; - public static Block capacitor_tantalium; - - public static Block machine_coal_off; - public static Block machine_coal_on; - - public static Block red_wire_coated; - public static Block red_cable; - public static Block red_cable_classic; - public static Block red_cable_paintable; - public static Block red_connector; - public static Block red_pylon; - public static Block red_pylon_large; - public static Block substation; - public static Block cable_switch; - public static Block cable_detector; - public static Block cable_diode; - public static Block machine_detector; - public static Block oil_duct_solid; - public static Block oil_duct; - public static Block gas_duct_solid; - public static Block gas_duct; - public static Block fluid_duct; - public static Block fluid_duct_solid; - public static Block fluid_duct_neo; - public static Block fluid_duct_box; - public static Block fluid_duct_paintable; - public static Block fluid_duct_gauge; - public static Block radio_torch_sender; - public static Block radio_torch_receiver; - - public static Block conveyor; - //public static Block conveyor_classic; - public static Block conveyor_double; - public static Block conveyor_triple; - public static Block conveyor_chute; - public static Block conveyor_lift; - public static Block crane_extractor; - public static Block crane_inserter; - public static Block crane_grabber; - public static Block crane_router; - public static Block crane_boxer; - public static Block crane_unboxer; - public static Block crane_splitter; - - public static Block fan; - - public static Block piston_inserter; - - public static Block chain; - - public static Block ladder_sturdy; - public static Block ladder_iron; - public static Block ladder_gold; - public static Block ladder_aluminium; - public static Block ladder_copper; - public static Block ladder_titanium; - public static Block ladder_lead; - public static Block ladder_cobalt; - public static Block ladder_steel; - public static Block ladder_tungsten; - - public static Block barrel_plastic; - public static Block barrel_corroded; - public static Block barrel_iron; - public static Block barrel_steel; - public static Block barrel_tcalloy; - public static Block barrel_antimatter; - - public static Block machine_transformer; - public static Block machine_transformer_20; - public static Block machine_transformer_dnt; - public static Block machine_transformer_dnt_20; - - public static Block bomb_multi_large; - public static final int guiID_bomb_multi_large = 18; - - public static Block machine_solar_boiler; - public static final int guiID_solar_boiler = 18; - public static Block solar_mirror; - - public static Block struct_launcher; - public static Block struct_scaffold; - public static Block struct_launcher_core; - public static Block struct_launcher_core_large; - public static Block struct_soyuz_core; - public static Block struct_iter_core; - public static Block struct_plasma_core; - public static Block struct_watz_core; - - public static Block factory_titanium_hull; - @Deprecated public static Block factory_titanium_furnace; - @Deprecated public static Block factory_titanium_conductor; - - public static Block factory_advanced_hull; - @Deprecated public static Block factory_advanced_furnace; - @Deprecated public static Block factory_advanced_conductor; - - public static Block reactor_element; - public static Block reactor_control; - public static Block reactor_hatch; - public static Block reactor_ejector; - public static Block reactor_inserter; - public static Block reactor_conductor; - public static Block reactor_computer; - - public static Block fusion_conductor; - public static Block fusion_center; - public static Block fusion_motor; - public static Block fusion_heater; - public static Block fusion_hatch; - //public static Block fusion_core; - public static Block plasma; - - public static Block iter; - public static Block plasma_heater; - - public static Block watz; - public static Block watz_pump; - - public static Block watz_element; - public static Block watz_control; - public static Block watz_cooler; - public static Block watz_end; - public static Block watz_hatch; - public static Block watz_conductor; - public static Block watz_core; - - public static Block fwatz_conductor; - public static Block fwatz_cooler; - public static Block fwatz_tank; - public static Block fwatz_scaffold; - public static Block fwatz_hatch; - public static Block fwatz_computer; - public static Block fwatz_core; - public static Block fwatz_plasma; - - public static Block balefire; - public static Block fire_digamma; - public static Block digamma_matter; - - public static Block ams_base; - public static Block ams_emitter; - public static Block ams_limiter; - - public static Block dfc_emitter; - public static Block dfc_injector; - public static Block dfc_receiver; - public static Block dfc_stabilizer; - public static Block dfc_core; - - public static Block machine_converter_he_rf; - public static final int guiID_converter_he_rf = 28; - public static Block machine_converter_rf_he; - - public static Block machine_schrabidium_transmutator; - - public static Block machine_diesel; - public static Block machine_combustion_engine; - - public static Block machine_shredder; - - public static Block machine_shredder_large; - public static final int guiID_machine_shredder_large = 76; - - public static Block machine_combine_factory; - - public static Block machine_teleporter; - public static Block teleanchor; - public static Block field_disturber; - - public static Block machine_rtg_grey; - public static Block machine_amgen; - public static Block machine_geo; - public static Block machine_minirtg; - public static Block machine_powerrtg; - public static Block machine_radiolysis; - public static Block machine_hephaestus; - - public static Block machine_well; - public static Block oil_pipe; - public static Block machine_pumpjack; - public static Block machine_fracking_tower; - - public static Block machine_flare; - - public static Block machine_refinery; - public static Block machine_vacuum_distill; - public static Block machine_fraction_tower; - public static Block fraction_spacer; - public static Block machine_catalytic_cracker; - public static Block machine_catalytic_reformer; - public static Block machine_coker; - - public static Block machine_boiler_off; - public static Block machine_boiler_on; - - public static Block machine_boiler_electric_off; - public static Block machine_boiler_electric_on; - - public static Block machine_steam_engine; - public static Block machine_turbine; - public static Block machine_large_turbine; - - public static Block machine_deuterium_extractor; - public static Block machine_deuterium_tower; - - public static Block machine_liquefactor; - public static Block machine_solidifier; - public static Block machine_compressor; - - public static Block machine_chungus; - public static Block machine_condenser; - public static Block machine_tower_small; - public static Block machine_tower_large; - - public static Block machine_electrolyser; - - public static Block machine_deaerator; - public static final int guiID_machine_deaerator = 74; - - public static Block machine_drill; - public static Block drill_pipe; - public static Block machine_excavator; - - public static Block machine_autosaw; - - public static Block machine_mining_laser; - public static Block barricade; // a sand bag that drops nothing, for automated walling purposes - - public static Block machine_assembler; - public static Block machine_assemfac; - - public static Block machine_chemplant; - public static Block machine_chemfac; - public static Block machine_mixer; - - public static Block machine_fluidtank; - public static Block machine_bat9000; - public static Block machine_orbus; - - public static Block launch_pad; - - public static Block machine_missile_assembly; - - public static Block compact_launcher; - - public static Block launch_table; - - public static Block soyuz_launcher; - - public static Block machine_radar; - - public static Block machine_turbofan; - public static Block machine_turbinegas; - - public static Block machine_selenium; - - public static Block press_preheater; - public static Block machine_press; - public static Block machine_epress; - - public static Block machine_siren; - - public static Block machine_radgen; - - public static Block machine_satlinker; - public static Block machine_keyforge; - - public static Block machine_armor_table; - - public static Block reactor_research; - public static Block reactor_zirnox; - public static Block zirnox_destroyed; - - public static Block machine_controller; - - public static Block machine_spp_bottom; - public static Block machine_spp_top; - - public static Block radiobox; - public static Block radiorec; - - public static Block machine_forcefield; - - public static Block machine_waste_drum; - public static Block machine_storage_drum; - - public static Block machine_autocrafter; - - public static Block anvil_iron; - public static Block anvil_lead; - public static Block anvil_steel; - public static Block anvil_meteorite; - public static Block anvil_starmetal; - public static Block anvil_ferrouranium; - public static Block anvil_bismuth; - public static Block anvil_schrabidate; - public static Block anvil_dnt; - public static Block anvil_osmiridium; - public static Block anvil_murky; - - public static Block turret_chekhov; - public static Block turret_friendly; - public static Block turret_jeremy; - public static Block turret_tauon; - public static Block turret_richard; - public static Block turret_howard; - public static Block turret_howard_damaged; - public static Block turret_maxwell; - public static Block turret_fritz; - public static Block turret_brandon; - public static Block turret_arty; - public static Block turret_himars; - public static Block turret_sentry; - - public static Block rbmk_rod; - public static Block rbmk_rod_mod; - public static Block rbmk_rod_reasim; - public static Block rbmk_rod_reasim_mod; - public static Block rbmk_control; - public static Block rbmk_control_mod; - public static Block rbmk_control_auto; - public static Block rbmk_blank; - public static Block rbmk_boiler; - public static Block rbmk_reflector; - public static Block rbmk_absorber; - public static Block rbmk_moderator; - public static Block rbmk_outgasser; - public static Block rbmk_storage; - public static Block rbmk_cooler; - public static Block rbmk_heater; - public static Block rbmk_console; - public static Block rbmk_crane_console; - public static Block rbmk_loader; - public static Block rbmk_steam_inlet; - public static Block rbmk_steam_outlet; - public static Block rbmk_heatex; - public static Block pribris; - public static Block pribris_burning; - public static Block pribris_radiating; - public static Block pribris_digamma; - - public static Block book_guide; - - public static Block rail_wood; - public static Block rail_narrow; - public static Block rail_highspeed; - public static Block rail_booster; - - public static Block rail_narrow_straight; - public static Block rail_narrow_curve; - public static Block rail_large_straight; - public static Block rail_large_curve; - public static Block rail_large_ramp; - public static Block rail_large_buffer; - - public static Block statue_elb; - public static Block statue_elb_g; - public static Block statue_elb_w; - public static Block statue_elb_f; - - public static Block cheater_virus; - public static Block cheater_virus_seed; - public static Block crystal_virus; - public static Block crystal_hardened; - public static Block crystal_pulsar; - public static Block taint; - public static Block residue; - - public static Block vent_chlorine; - public static Block vent_cloud; - public static Block vent_pink_cloud; - public static Block vent_chlorine_seal; - public static Block chlorine_gas; - - public static Block gas_radon; - public static Block gas_radon_dense; - public static Block gas_radon_tomb; - public static Block gas_meltdown; - public static Block gas_monoxide; - public static Block gas_asbestos; - public static Block gas_coal; - public static Block gas_flammable; - public static Block gas_explosive; - public static Block vacuum; - - public static Block absorber; - public static Block absorber_red; - public static Block absorber_green; - public static Block absorber_pink; - public static Block decon; - public static Block transission_hatch; - - public static Block mud_block; - public static Fluid mud_fluid; - public static final Material fluidmud = (new MaterialLiquid(MapColor.adobeColor)); - - public static Block acid_block; - public static Fluid acid_fluid; - public static final Material fluidacid = (new MaterialLiquid(MapColor.purpleColor)); - - public static Block toxic_block; - public static Fluid toxic_fluid; - public static final Material fluidtoxic = (new MaterialLiquid(MapColor.greenColor)); - - public static Block schrabidic_block; - public static Fluid schrabidic_fluid; - public static final Material fluidschrabidic = (new MaterialLiquid(MapColor.cyanColor)); - - public static Block corium_block; - public static Fluid corium_fluid; - public static final Material fluidcorium = (new MaterialLiquid(MapColor.brownColor) { - - @Override - public boolean blocksMovement() { - return true; - } - - @Override - public Material setImmovableMobility() { - return super.setImmovableMobility(); - } - - }.setImmovableMobility()); - - public static Block volcanic_lava_block; - public static Fluid volcanic_lava_fluid; - public static final Material fluidvolcanic = (new MaterialLiquid(MapColor.redColor)); - - public static Block sulfuric_acid_block; - public static Fluid sulfuric_acid_fluid; - - public static Block concrete_liquid; - - public static Block volcano_core; - - public static Block dummy_block_drill; - public static Block dummy_port_drill; - public static Block dummy_block_assembler; - public static Block dummy_port_assembler; - public static Block dummy_block_ams_limiter; - public static Block dummy_port_ams_limiter; - public static Block dummy_block_ams_emitter; - public static Block dummy_port_ams_emitter; - public static Block dummy_block_ams_base; - public static Block dummy_port_ams_base; - public static Block dummy_block_vault; - public static Block dummy_block_blast; - public static Block dummy_block_uf6; - public static Block dummy_block_puf6; - public static Block dummy_plate_compact_launcher; - public static Block dummy_port_compact_launcher; - public static Block dummy_plate_launch_table; - public static Block dummy_port_launch_table; - public static Block dummy_plate_cargo; - - public static Block ntm_dirt; - - public static Block pink_log; - public static Block pink_planks; - public static Block pink_slab; - public static Block pink_double_slab; - public static Block pink_stairs; - - public static Block ff; - - public static Material materialGas = new MaterialGas(); - - public static Block.SoundType soundTypeGrate = new ModSoundType("metalBlock", 0.5F, 1.0F) { - - @Override - public String func_150496_b() { - return Block.soundTypeMetal.func_150496_b(); - } - - @Override - public String getBreakSound() { - return "dig.stone"; - } - }; - - private static void initializeBlock() { - - test_render = new TestRender(Material.rock).setBlockName("test_render").setCreativeTab(null); - test_bomb = new TestBomb(Material.tnt).setBlockName("test_bomb").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":test_bomb"); - test_bomb_advanced = new TestBombAdvanced(Material.tnt).setBlockName("test_bomb_advanced").setCreativeTab(null); - test_nuke = new TestNuke(Material.iron).setBlockName("test_nuke").setCreativeTab(null).setHardness(2.5F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":test_nuke"); - event_tester = new TestEventTester(Material.iron).setBlockName("event_tester").setCreativeTab(null).setHardness(2.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":event_tester"); - obj_tester = new TestObjTester(Material.iron).setBlockName("obj_tester").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F); - test_core = new TestCore(Material.iron).setBlockName("test_core").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_core"); - test_charge = new TestCharge(Material.iron).setBlockName("test_charge").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F); - test_pipe = new TestPipe(Material.iron).setBlockName("test_pipe").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); - test_ct = new TestCT(Material.iron).setBlockName("test_ct").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_ct"); - test_rail = new TestRail(Material.iron).setBlockName("test_rail").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_rail"); - structure_anchor = new BlockGeneric(Material.iron).setBlockName("structure_anchor").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":structure_anchor"); - - ore_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium"); - ore_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium_scorched"); - ore_titanium = new BlockGeneric(Material.rock).setBlockName("ore_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_titanium"); - ore_sulfur = new BlockOre(Material.rock).setBlockName("ore_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_sulfur"); - ore_thorium = new BlockGeneric(Material.rock).setBlockName("ore_thorium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_thorium"); - - ore_niter = new BlockOre(Material.rock).setBlockName("ore_niter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_niter"); - ore_copper = new BlockGeneric(Material.rock).setBlockName("ore_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_copper"); - ore_tungsten = new BlockGeneric(Material.rock).setBlockName("ore_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tungsten"); - ore_aluminium = new BlockGeneric(Material.rock).setBlockName("ore_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_aluminium"); - ore_fluorite = new BlockOre(Material.rock).setBlockName("ore_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_fluorite"); - ore_lead = new BlockGeneric(Material.rock).setBlockName("ore_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_lead"); - ore_schrabidium = new BlockOre(Material.rock, 0.1F, 0.5F).setBlockName("ore_schrabidium").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":ore_schrabidium"); - ore_beryllium = new BlockGeneric(Material.rock).setBlockName("ore_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_beryllium"); - ore_lignite = new BlockOre(Material.rock).setBlockName("ore_lignite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_lignite"); - ore_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_asbestos"); - ore_coal_oil = new BlockCoalOil(Material.rock).setBlockName("ore_coal_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil"); - ore_coal_oil_burning = new BlockCoalBurning(Material.rock).setBlockName("ore_coal_oil_burning").setCreativeTab(MainRegistry.blockTab).setLightLevel(10F/15F).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil_burning"); - - cluster_iron = new BlockCluster(Material.rock).setBlockName("cluster_iron").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_iron"); - cluster_titanium = new BlockCluster(Material.rock).setBlockName("cluster_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_titanium"); - cluster_aluminium = new BlockCluster(Material.rock).setBlockName("cluster_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_aluminium"); - cluster_copper = new BlockCluster(Material.rock).setBlockName("cluster_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_copper"); - - ore_nether_coal = new BlockNetherCoal(Material.rock, false, 5, true).setBlockName("ore_nether_coal").setCreativeTab(MainRegistry.blockTab).setLightLevel(10F/15F).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_coal"); - ore_nether_smoldering = new BlockSmolder(Material.rock).setBlockName("ore_nether_smoldering").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_smoldering"); - ore_nether_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_nether_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_uranium"); - ore_nether_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_nether_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_uranium_scorched"); - ore_nether_plutonium = new BlockGeneric(Material.rock).setBlockName("ore_nether_plutonium").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_plutonium"); - ore_nether_tungsten = new BlockGeneric(Material.rock).setBlockName("ore_nether_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_tungsten"); - ore_nether_sulfur = new BlockOre(Material.rock).setBlockName("ore_nether_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_sulfur"); - ore_nether_fire = new BlockOre(Material.rock).setBlockName("ore_nether_fire").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_fire"); - ore_nether_cobalt = new BlockOre(Material.rock).setBlockName("ore_nether_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_cobalt"); - ore_nether_schrabidium = new BlockGeneric(Material.rock).setBlockName("ore_nether_schrabidium").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_schrabidium"); - - ore_meteor_uranium = new BlockOre(Material.rock).setBlockName("ore_meteor_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_uranium"); - ore_meteor_thorium = new BlockOre(Material.rock).setBlockName("ore_meteor_thorium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_thorium"); - ore_meteor_titanium = new BlockOre(Material.rock).setBlockName("ore_meteor_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_titanium"); - ore_meteor_sulfur = new BlockOre(Material.rock).setBlockName("ore_meteor_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_sulfur"); - ore_meteor_copper = new BlockOre(Material.rock).setBlockName("ore_meteor_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_copper"); - ore_meteor_tungsten = new BlockOre(Material.rock).setBlockName("ore_meteor_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_tungsten"); - ore_meteor_aluminium = new BlockOre(Material.rock).setBlockName("ore_meteor_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_aluminium"); - ore_meteor_lead = new BlockOre(Material.rock).setBlockName("ore_meteor_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_lead"); - ore_meteor_lithium = new BlockOre(Material.rock).setBlockName("ore_meteor_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_lithium"); - ore_meteor_starmetal = new BlockOre(Material.rock).setBlockName("ore_meteor_starmetal").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":ore_meteor_starmetal"); - - stone_gneiss = new BlockGeneric(Material.rock).setBlockName("stone_gneiss").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":stone_gneiss_var"); - ore_gneiss_iron = new BlockOre(Material.rock).setBlockName("ore_gneiss_iron").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_iron"); - ore_gneiss_gold = new BlockOre(Material.rock).setBlockName("ore_gneiss_gold").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_gold"); - ore_gneiss_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_gneiss_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium"); - ore_gneiss_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_gneiss_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium_scorched"); - ore_gneiss_copper = new BlockOre(Material.rock).setBlockName("ore_gneiss_copper").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_copper"); - ore_gneiss_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_gneiss_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_asbestos"); - ore_gneiss_lithium = new BlockOre(Material.rock).setBlockName("ore_gneiss_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_lithium"); - ore_gneiss_schrabidium = new BlockOre(Material.rock).setBlockName("ore_gneiss_schrabidium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_schrabidium"); - ore_gneiss_rare = new BlockOre(Material.rock).setBlockName("ore_gneiss_rare").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_rare"); - ore_gneiss_gas = new BlockOre(Material.rock).setBlockName("ore_gneiss_gas").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_gas"); - - gneiss_brick = new BlockGeneric(Material.rock).setBlockName("gneiss_brick").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":gneiss_brick"); - gneiss_tile = new BlockGeneric(Material.rock).setBlockName("gneiss_tile").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":gneiss_tile"); - gneiss_chiseled = new BlockPillar(Material.rock, RefStrings.MODID + ":gneiss_tile").setBlockName("gneiss_chiseled").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":gneiss_chiseled"); - - stone_depth = new BlockDepth().setBlockName("stone_depth").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":stone_depth"); - ore_depth_cinnebar = new BlockDepthOre().setBlockName("ore_depth_cinnebar").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_depth_cinnebar"); - ore_depth_zirconium = new BlockDepthOre().setBlockName("ore_depth_zirconium").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_depth_zirconium"); - ore_depth_borax = new BlockDepthOre().setBlockName("ore_depth_borax").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_depth_borax"); - cluster_depth_iron = new BlockDepthOre().setBlockName("cluster_depth_iron").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_iron"); - cluster_depth_titanium = new BlockDepthOre().setBlockName("cluster_depth_titanium").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_titanium"); - cluster_depth_tungsten = new BlockDepthOre().setBlockName("cluster_depth_tungsten").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_tungsten"); - ore_alexandrite = new BlockDepthOre().setBlockName("ore_alexandrite").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_alexandrite"); - - ore_random = new BlockMotherOfAllOres().setBlockName("ore_random").setCreativeTab(MainRegistry.blockTab); - ore_bedrock = new BlockBedrockOreTE().setBlockName("ore_bedrock").setCreativeTab(null); - ore_volcano = new BlockFissure().setBlockName("ore_volcano").setLightLevel(1F).setCreativeTab(MainRegistry.blockTab); - - depth_brick = new BlockDepth().setBlockName("depth_brick").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_brick"); - depth_tiles = new BlockDepth().setBlockName("depth_tiles").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_tiles"); - depth_nether_brick = new BlockDepth().setBlockName("depth_nether_brick").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_nether_brick"); - depth_nether_tiles = new BlockDepth().setBlockName("depth_nether_tiles").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_nether_tiles"); - depth_dnt = new BlockDepth().setBlockName("depth_dnt").setCreativeTab(MainRegistry.blockTab).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":depth_dnt"); - - stone_depth_nether = new BlockDepth().setBlockName("stone_depth_nether").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":stone_depth_nether"); - ore_depth_nether_neodymium = new BlockDepthOre().setBlockName("ore_depth_nether_neodymium").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_depth_nether_neodymium"); - - stone_porous = new BlockPorous().setBlockName("stone_porous").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":stone_porous"); - stone_resource = new BlockResourceStone().setBlockName("stone_resource").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); - stalagmite = new BlockStalagmite().setBlockName("stalagmite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F); - stalactite = new BlockStalagmite().setBlockName("stalactite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F); - stone_biome = new BlockBiomeStone().setBlockName("stone_biome").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); - stone_deep_cobble = new BlockDeepCobble().setBlockName("stone_deep_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F); - - basalt = new BlockGeneric(Material.rock).setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt"); - basalt_sulfur = new BlockOre(Material.rock).setBlockName("basalt_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_sulfur"); - basalt_fluorite = new BlockOre(Material.rock).setBlockName("basalt_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_fluorite"); - basalt_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("basalt_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_asbestos"); - basalt_gem = new BlockCluster(Material.rock).setBlockName("basalt_gem").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_gem"); - basalt_smooth = new BlockGeneric(Material.rock).setBlockName("basalt_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_smooth"); - basalt_brick = new BlockGeneric(Material.rock).setBlockName("basalt_brick").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_brick"); - basalt_polished = new BlockGeneric(Material.rock).setBlockName("basalt_polished").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_polished"); - basalt_tiles = new BlockGeneric(Material.rock).setBlockName("basalt_tiles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_tiles"); - - ore_australium = new BlockGeneric(Material.rock).setBlockName("ore_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_australium"); - ore_weidanium = new BlockGeneric(Material.rock).setBlockName("ore_weidanium").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_weidanium"); - ore_reiium = new BlockGeneric(Material.rock).setBlockName("ore_reiium").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_reiium"); - ore_unobtainium = new BlockGeneric(Material.rock).setBlockName("ore_unobtainium").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_unobtainium"); - ore_daffergon = new BlockGeneric(Material.rock).setBlockName("ore_daffergon").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_daffergon"); - ore_verticium = new BlockGeneric(Material.rock).setBlockName("ore_verticium").setCreativeTab(null).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_verticium"); - ore_rare = new BlockOre(Material.rock).setBlockName("ore_rare").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_rare"); - ore_cobalt = new BlockOre(Material.rock).setBlockName("ore_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cobalt"); - ore_cinnebar = new BlockOre(Material.rock).setBlockName("ore_cinnebar").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cinnebar"); - ore_coltan = new BlockOre(Material.rock).setBlockName("ore_coltan").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_coltan"); - - ore_bedrock_coltan = new BlockBedrockOre().setBlockName("ore_bedrock_coltan").setCreativeTab(null).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_coltan"); - - ore_oil = new BlockOre(Material.rock).setBlockName("ore_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil"); - ore_oil_empty = new BlockGeneric(Material.rock).setBlockName("ore_oil_empty").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_empty"); - ore_oil_sand = new BlockFalling(Material.sand).setBlockName("ore_oil_sand").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(0.5F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_sand_alt"); - ore_bedrock_oil = new BlockGeneric(Material.rock).setBlockName("ore_bedrock_oil").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_oil"); - - ore_tikite = new BlockDragonProof(Material.rock).setBlockName("ore_tikite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tikite_alt"); - - crystal_power = new BlockCrystal(Material.glass).setBlockName("crystal_power").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_power"); - crystal_energy = new BlockCrystal(Material.glass).setBlockName("crystal_energy").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_energy"); - crystal_robust = new BlockCrystal(Material.glass).setBlockName("crystal_robust").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":crystal_robust"); - crystal_trixite = new BlockCrystal(Material.glass).setBlockName("crystal_trixite").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_trixite"); - - block_uranium = new BlockHazard().makeBeaconable().setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); - block_u233 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); - block_u235 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u235").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u235"); - block_u238 = new BlockHazard().makeBeaconable().setBlockName("block_u238").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u238"); - block_uranium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_uranium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium_fuel"); - block_thorium = new BlockHazard().makeBeaconable().setBlockName("block_thorium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium"); - block_thorium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_thorium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium_fuel"); - block_neptunium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_neptunium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_neptunium"); - block_polonium = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_polonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polonium"); - block_mox_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_mox_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_mox_fuel"); - block_plutonium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium"); - block_pu238 = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu238").setCreativeTab(MainRegistry.blockTab).setLightLevel(5F/15F).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu238"); - block_pu239 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu239").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu239"); - block_pu240 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu240").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu240"); - block_pu_mix = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu_mix").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu_mix"); - block_plutonium_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium_fuel"); - block_titanium = new BlockBeaconable(Material.iron).setBlockName("block_titanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_titanium"); - block_sulfur = new BlockBeaconable(Material.iron).setBlockName("block_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_sulfur"); - block_niter = new BlockBeaconable(Material.iron).setBlockName("block_niter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_niter"); - block_niter_reinforced = new BlockBeaconable(Material.iron).setBlockName("block_niter_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_niter_reinforced"); - block_copper = new BlockBeaconable(Material.iron).setBlockName("block_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); - block_red_copper = new BlockBeaconable(Material.iron).setBlockName("block_red_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_copper"); - block_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_tungsten"); - block_aluminium = new BlockBeaconable(Material.iron).setBlockName("block_aluminium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); - block_fluorite = new BlockBeaconable(Material.iron).setBlockName("block_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fluorite"); - block_steel = new BlockBeaconable(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); - block_tcalloy = new BlockBeaconable(Material.iron).setBlockName("block_tcalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_tcalloy"); - block_cdalloy = new BlockBeaconable(Material.iron).setBlockName("block_cdalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cdalloy"); - block_lead = new BlockBeaconable(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); - block_bismuth = new BlockBeaconable(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); - block_cadmium = new BlockBeaconable(Material.iron).setBlockName("block_cadmium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_cadmium"); - block_coltan = new BlockBeaconable(Material.iron).setBlockName("block_coltan").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_coltan"); - block_tantalium = new BlockBeaconable(Material.iron).setBlockName("block_tantalium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); - block_niobium = new BlockBeaconable(Material.iron).setBlockName("block_niobium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F); - block_trinitite = new BlockHazard().makeBeaconable().setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); - block_waste = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); - block_waste_painted = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); - block_waste_vitrified = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste_vitrified").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_vitrified"); - ancient_scrap = new BlockOutgas(Material.iron, true, 1, true, true).setBlockName("ancient_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ancient_scrap"); - block_corium = new BlockHazard(Material.iron).setBlockName("block_corium").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium"); - block_corium_cobble = new BlockOutgas(Material.iron, true, 1, true, true).setBlockName("block_corium_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium_cobble"); - block_scrap = new BlockFalling(Material.sand).setBlockName("block_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeGravel).setBlockTextureName(RefStrings.MODID + ":block_scrap"); - block_electrical_scrap = new BlockFalling(Material.iron).setBlockName("block_electrical_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName(RefStrings.MODID + ":electrical_scrap_alt2"); - block_beryllium = new BlockBeaconable(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); - block_schraranium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium"); - block_schrabidium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium"); - block_schrabidate = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidate").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); - block_solinium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_solinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_solinium"); - block_schrabidium_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_fuel"); - block_euphemium = new BlockBeaconable(Material.iron).setBlockName("block_euphemium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium"); - block_dineutronium = new BlockBeaconable(Material.iron).setBlockName("block_dineutronium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_dineutronium"); - block_schrabidium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_schrabidium_cluster_top").setBlockName("block_schrabidium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_cluster_side"); - block_euphemium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_euphemium_cluster_top").setBlockName("block_euphemium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium_cluster_side"); - block_advanced_alloy = new BlockBeaconable(Material.iron).setBlockName("block_advanced_alloy").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_advanced_alloy"); - block_magnetized_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_magnetized_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(35.0F).setBlockTextureName(RefStrings.MODID + ":block_magnetized_tungsten"); - block_combine_steel = new BlockBeaconable(Material.iron).setBlockName("block_combine_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_combine_steel"); - block_desh = new BlockBeaconable(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_desh"); - block_dura_steel = new BlockBeaconable(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel"); - block_starmetal = new BlockBeaconable(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal"); - block_polymer = new BlockBeaconable(Material.rock).setBlockName("block_polymer").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polymer"); - block_bakelite = new BlockBeaconable(Material.rock).setBlockName("block_bakelite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_bakelite"); - block_rubber = new BlockBeaconable(Material.rock).setBlockName("block_rubber").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_rubber"); - block_yellowcake = new BlockHazardFalling().makeBeaconable().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); - block_insulator = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_insulator_top").setBlockName("block_insulator").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_insulator_side"); - block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); - block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); - block_cobalt = new BlockBeaconable(Material.iron).setBlockName("block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cobalt"); - block_lithium = new BlockLithium(Material.iron).setBlockName("block_lithium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lithium"); - block_zirconium = new BlockBeaconable(Material.iron).setBlockName("block_zirconium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_zirconium"); - block_white_phosphorus = new BlockHazard(Material.rock).makeBeaconable().setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus"); - block_red_phosphorus = new BlockHazardFalling().makeBeaconable().setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); - block_fallout = new BlockHazardFalling().setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); - block_foam = new BlockGeneric(Material.craftedSnow).setBlockName("block_foam").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSnow).setHardness(0.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":foam"); - block_coke = new BlockCoke().setBlockName("block_coke").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F); - block_graphite = new BlockGraphite(Material.iron, 30, 5).setBlockName("block_graphite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F); - block_graphite_drilled = new BlockGraphiteDrilled().setBlockName("block_graphite_drilled"); - block_graphite_fuel = new BlockGraphiteFuel().setBlockName("block_graphite_fuel"); - block_graphite_plutonium = new BlockGraphiteSource().setBlockName("block_graphite_plutonium"); - block_graphite_rod = new BlockGraphiteRod().setBlockName("block_graphite_rod").setBlockTextureName(RefStrings.MODID + ":block_graphite_rod_in"); - block_graphite_source = new BlockGraphiteSource().setBlockName("block_graphite_source"); - block_graphite_lithium = new BlockGraphiteBreedingFuel().setBlockName("block_graphite_lithium"); - block_graphite_tritium = new BlockGraphiteBreedingProduct().setBlockName("block_graphite_tritium"); - block_graphite_detector = new BlockGraphiteNeutronDetector().setBlockName("block_graphite_detector"); - block_boron = new BlockBeaconable(Material.iron).setBlockName("block_boron").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_boron"); - block_lanthanium = new BlockBeaconable(Material.iron).setBlockName("block_lanthanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lanthanium"); - block_ra226 = new BlockHazard().makeBeaconable().setBlockName("block_ra226").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_ra226"); - block_actinium = new BlockHazard().makeBeaconable().setBlockName("block_actinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_actinium"); - block_tritium = new BlockRotatablePillar(Material.glass, RefStrings.MODID + ":block_tritium_top").setBlockName("block_tritium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(3.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_tritium_side"); - block_semtex = new BlockPlasticExplosive(Material.tnt).setBlockName("block_semtex").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_semtex"); - block_c4 = new BlockPlasticExplosive(Material.tnt).setBlockName("block_c4").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_c4"); - block_smore = new BlockPillar(Material.rock, RefStrings.MODID + ":block_smore_top").setBlockName("block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":block_smore_side"); - block_slag = new BlockSlag(Material.rock).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeStone).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_slag"); - - block_australium = new BlockBeaconable(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); - block_weidanium = new BlockBeaconable(Material.iron).setBlockName("block_weidanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_weidanium"); - block_reiium = new BlockBeaconable(Material.iron).setBlockName("block_reiium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_reiium"); - block_unobtainium = new BlockBeaconable(Material.iron).setBlockName("block_unobtainium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_unobtainium"); - block_daffergon = new BlockBeaconable(Material.iron).setBlockName("block_daffergon").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_daffergon"); - block_verticium = new BlockBeaconable(Material.iron).setBlockName("block_verticium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_verticium"); - - block_cap_nuka = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_nuka_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_nuka").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_nuka"); - block_cap_quantum = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_quantum_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_quantum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_quantum"); - block_cap_rad = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_rad_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_rad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_rad"); - block_cap_sparkle = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_sparkle_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_sparkle").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_sparkle"); - block_cap_korl = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_korl_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_korl").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_korl"); - block_cap_fritz = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_fritz_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_fritz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_fritz"); - block_cap_sunset = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_sunset_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_sunset").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_sunset"); - block_cap_star = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_star_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_star").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_star"); - - deco_titanium = new BlockOre(Material.iron).noFortune().setBlockName("deco_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_titanium"); - deco_red_copper = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_red_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_red_copper"); - deco_tungsten = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_tungsten"); - deco_aluminium = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_aluminium"); - deco_steel = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_steel").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel"); - deco_lead = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_lead"); - deco_beryllium = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_beryllium"); - deco_asbestos = new BlockOutgas(Material.cloth, true, 5, true).noFortune().setBlockName("deco_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_asbestos"); - deco_rbmk = new BlockGeneric(Material.iron).setBlockName("deco_rbmk").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_side"); - deco_rbmk_smooth = new BlockGeneric(Material.iron).setBlockName("deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top"); - - deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter"); - part_emitter = new PartEmitter().setBlockName("part_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":part_top"); - deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); - bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); - snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); - hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); - - gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); - gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond"); - asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); - asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); - - reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); - reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F); - reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); - reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); - reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); - reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); - reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); - reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock, true).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); - reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane", RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, true).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(1000.0F); - - lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); - lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); - lamp_tritium_blue_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_blue_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_off"); - lamp_tritium_blue_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_blue_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_on"); - - lamp_uv_off = new UVLamp(false).setBlockName("lamp_uv_off").setCreativeTab(MainRegistry.blockTab); - lamp_uv_on = new UVLamp(true).setBlockName("lamp_uv_on").setCreativeTab(null); - lamp_demon = new DemonLamp().setBlockName("lamp_demon").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_demon"); - - reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); - concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); - concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); - concrete_colored_ext = new BlockConcreteColoredExt(Material.rock).setBlockName("concrete_colored_ext").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext"); - concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); - concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); - concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(10000.0F); - concrete_super_broken = new BlockFalling(Material.rock).setBlockName("concrete_super_broken").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":concrete_super_broken"); - concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); - brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); - brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(2000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); - brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); - brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); - brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); - brick_light = new BlockGeneric(Material.rock).setBlockName("brick_light").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_light"); - brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10000.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); - cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); - cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced"); - brick_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("brick_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_asbestos"); - brick_fire = new BlockGeneric(Material.rock).setBlockName("brick_fire").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - - ducrete_smooth = new BlockGeneric(Material.rock).setBlockName("ducrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":ducrete"); - ducrete = new BlockGeneric(Material.rock).setBlockName("ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":ducrete_tile"); - brick_ducrete = new BlockGeneric(Material.rock).setBlockName("brick_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(12000.0F).setBlockTextureName(RefStrings.MODID + ":brick_ducrete"); - reinforced_ducrete = new BlockGeneric(Material.rock).setBlockName("reinforced_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(24000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_ducrete"); - - concrete_slab = new BlockMultiSlab(null, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete).setBlockName("concrete_slab").setCreativeTab(MainRegistry.blockTab); - concrete_double_slab = new BlockMultiSlab(concrete_slab, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete).setBlockName("concrete_double_slab").setCreativeTab(MainRegistry.blockTab); - concrete_brick_slab = new BlockMultiSlab(null, Material.rock, brick_concrete, brick_concrete_mossy, brick_concrete_cracked, brick_concrete_broken, brick_ducrete).setBlockName("concrete_brick_slab").setCreativeTab(MainRegistry.blockTab); - concrete_brick_double_slab = new BlockMultiSlab(concrete_brick_slab, Material.rock, brick_concrete, brick_concrete_mossy, brick_concrete_cracked, brick_concrete_broken, brick_ducrete).setBlockName("concrete_brick_double_slab").setCreativeTab(MainRegistry.blockTab); - brick_slab = new BlockMultiSlab(null, Material.rock, reinforced_stone, reinforced_brick, brick_obsidian, brick_light, brick_compound, brick_asbestos, brick_fire).setBlockName("brick_slab").setCreativeTab(MainRegistry.blockTab); - brick_double_slab = new BlockMultiSlab(brick_slab, Material.rock, reinforced_stone, reinforced_brick, brick_obsidian, brick_light, brick_compound, brick_asbestos, brick_fire).setBlockName("brick_double_slab").setCreativeTab(MainRegistry.blockTab); - - concrete_smooth_stairs = new BlockGenericStairs(concrete_smooth, 0).setBlockName("concrete_smooth_stairs").setCreativeTab(MainRegistry.blockTab); - concrete_stairs = new BlockGenericStairs(concrete, 0).setBlockName("concrete_stairs").setCreativeTab(MainRegistry.blockTab); - concrete_asbestos_stairs = new BlockGenericStairs(concrete_asbestos, 0).setBlockName("concrete_asbestos_stairs").setCreativeTab(MainRegistry.blockTab); - ducrete_smooth_stairs = new BlockGenericStairs(ducrete_smooth, 0).setBlockName("ducrete_smooth_stairs").setCreativeTab(MainRegistry.blockTab); - ducrete_stairs = new BlockGenericStairs(ducrete, 0).setBlockName("ducrete_stairs").setCreativeTab(MainRegistry.blockTab); - brick_concrete_stairs = new BlockGenericStairs(brick_concrete, 0).setBlockName("brick_concrete_stairs").setCreativeTab(MainRegistry.blockTab); - brick_concrete_mossy_stairs = new BlockGenericStairs(brick_concrete_mossy, 0).setBlockName("brick_concrete_mossy_stairs").setCreativeTab(MainRegistry.blockTab); - brick_concrete_cracked_stairs = new BlockGenericStairs(brick_concrete_cracked, 0).setBlockName("brick_concrete_cracked_stairs").setCreativeTab(MainRegistry.blockTab); - brick_concrete_broken_stairs = new BlockGenericStairs(brick_concrete_broken, 0).setBlockName("brick_concrete_broken_stairs").setCreativeTab(MainRegistry.blockTab); - brick_ducrete_stairs = new BlockGenericStairs(brick_ducrete, 0).setBlockName("brick_ducrete_stairs").setCreativeTab(MainRegistry.blockTab); - reinforced_stone_stairs = new BlockGenericStairs(reinforced_stone, 0).setBlockName("reinforced_stone_stairs").setCreativeTab(MainRegistry.blockTab); - reinforced_brick_stairs = new BlockGenericStairs(reinforced_brick, 0).setBlockName("reinforced_brick_stairs").setCreativeTab(MainRegistry.blockTab); - brick_obsidian_stairs = new BlockGenericStairs(brick_obsidian, 0).setBlockName("brick_obsidian_stairs").setCreativeTab(MainRegistry.blockTab); - brick_light_stairs = new BlockGenericStairs(brick_light, 0).setBlockName("brick_light_stairs").setCreativeTab(MainRegistry.blockTab); - brick_compound_stairs = new BlockGenericStairs(brick_compound, 0).setBlockName("brick_compound_stairs").setCreativeTab(MainRegistry.blockTab); - brick_asbestos_stairs = new BlockGenericStairs(brick_asbestos, 0).setBlockName("brick_asbestos_stairs").setCreativeTab(MainRegistry.blockTab); - brick_fire_stairs = new BlockGenericStairs(brick_fire, 0).setBlockName("brick_fire_stairs").setCreativeTab(MainRegistry.blockTab); - - vinyl_tile = new BlockEnumMulti(Material.rock, TileType.class, true, true).setBlockName("vinyl_tile").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":vinyl_tile"); - - tile_lab = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab"); - tile_lab_cracked = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked"); - tile_lab_broken = new BlockOutgas(Material.rock, true, 5, true).setBlockName("tile_lab_broken").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_broken"); - - siege_shield = new SiegeShield(Material.iron).setBlockName("siege_shield").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F); - siege_internal = new SiegeInternal(Material.iron).setBlockName("siege_internal").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(60.0F); - siege_circuit = new SiegeCircuit(Material.iron).setBlockName("siege_circuit").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F); - siege_emergency = new BlockBase(Material.iron).setBlockName("siege_emergency").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(20000.0F).setBlockTextureName(RefStrings.MODID + ":siege_emergency"); - siege_hole = new SiegeHole(Material.iron).setBlockName("siege_hole").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":siege_hole"); - - block_meteor = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); - block_meteor_cobble = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); - block_meteor_broken = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); - block_meteor_molten = new BlockOre(Material.rock, true).noFortune().setBlockName("block_meteor_molten").setLightLevel(0.75F).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble_molten"); - block_meteor_treasure = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_treasure").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_treasure"); - meteor_polished = new BlockGeneric(Material.rock).setBlockName("meteor_polished").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_polished"); - meteor_brick = new BlockGeneric(Material.rock).setBlockName("meteor_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick"); - meteor_brick_mossy = new BlockGeneric(Material.rock).setBlockName("meteor_brick_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_mossy"); - meteor_brick_cracked = new BlockGeneric(Material.rock).setBlockName("meteor_brick_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_cracked"); - meteor_brick_chiseled = new BlockGeneric(Material.rock).setBlockName("meteor_brick_chiseled").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_chiseled"); - meteor_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":meteor_pillar_top").setBlockName("meteor_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_pillar"); - meteor_spawner = new BlockCybercrab(Material.rock).setBlockName("meteor_spawner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); - meteor_battery = new BlockPillar(Material.rock, RefStrings.MODID + ":meteor_power").setBlockName("meteor_battery").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_spawner_side"); - moon_turf = new BlockFalling(Material.sand).setBlockName("moon_turf").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":moon_turf"); - - brick_jungle = new BlockGeneric(Material.rock).setBlockName("brick_jungle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle"); - brick_jungle_cracked = new BlockGeneric(Material.rock).setBlockName("brick_jungle_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_cracked"); - brick_jungle_fragile = new FragileBrick(Material.rock).setBlockName("brick_jungle_fragile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_fragile"); - brick_jungle_lava = new BlockGeneric(Material.rock).setBlockName("brick_jungle_lava").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_lava"); - brick_jungle_ooze = new BlockOre(Material.rock).setBlockName("brick_jungle_ooze").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_ooze"); - brick_jungle_mystic = new BlockOre(Material.rock).setBlockName("brick_jungle_mystic").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_mystic"); - brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); - brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); - brick_jungle_circle = new BlockBallsSpawner(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); - - brick_dungeon = new BlockGeneric(Material.rock).setBlockName("brick_dungeon").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon"); - brick_dungeon_flat = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_flat").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_flat"); - brick_dungeon_tile = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_tile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_tile"); - brick_dungeon_circle = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_circle"); - - brick_forgotten = new BlockGeneric(Material.rock).setBlockName("brick_forgotten").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1000000).setBlockTextureName(RefStrings.MODID + ":brick_forgotten"); - - deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer"); - filing_cabinet = new BlockDecoContainer(Material.iron, DecoCabinetEnum.class, true, false, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - tape_recorder = new DecoTapeRecorder(Material.iron).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder"); - steel_poles = new DecoSteelPoles(Material.iron).setBlockName("steel_poles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); - pole_top = new DecoPoleTop(Material.iron).setBlockName("pole_top").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_pole_top"); - pole_satellite_receiver = new DecoPoleSatelliteReceiver(Material.iron).setBlockName("pole_satellite_receiver").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_satellite_receiver"); - steel_wall = new DecoBlock(Material.iron).setBlockName("steel_wall").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_wall"); - steel_corner = new DecoBlock(Material.iron).setBlockName("steel_corner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_corner"); - steel_roof = new DecoBlock(Material.iron).setBlockName("steel_roof").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_roof"); - steel_beam = new DecoBlock(Material.iron).setBlockName("steel_beam").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); - steel_scaffold = new BlockScaffold().setBlockName("steel_scaffold").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel_orig"); - steel_grate = new BlockGrate(Material.iron).setBlockName("steel_grate").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); - steel_grate_wide = new BlockGrate(Material.iron).setBlockName("steel_grate_wide").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); - - deco_pipe = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 0).setBlockName("deco_pipe").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 0).setBlockName("deco_pipe_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 0).setBlockName("deco_pipe_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_rim_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 1).setBlockName("deco_pipe_rim_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_rim_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 1).setBlockName("deco_pipe_rim_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - deco_pipe_framed = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 3).setBlockName("deco_pipe_framed").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_framed_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 3).setBlockName("deco_pipe_framed_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_framed_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 3).setBlockName("deco_pipe_framed_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_framed_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 3).setBlockName("deco_pipe_framed_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_framed_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 3).setBlockName("deco_pipe_framed_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_framed_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 3).setBlockName("deco_pipe_framed_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_quad_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 2).setBlockName("deco_pipe_quad_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_quad_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 2).setBlockName("deco_pipe_quad_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - - broadcaster_pc = new PinkCloudBroadcaster(Material.iron).setBlockName("broadcaster_pc").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":broadcaster_pc"); - geiger = new GeigerCounter(Material.iron).setBlockName("geiger").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":geiger"); - hev_battery = new HEVBattery(Material.iron).setBlockName("hev_battery").setCreativeTab(MainRegistry.machineTab).setLightLevel(10F/15F).setHardness(0.5F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":hev_battery"); - - fence_metal = new BlockMetalFence(Material.iron).setBlockName("fence_metal").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":fence_metal"); - - ash_digamma = new BlockAshes(Material.sand).setBlockName("ash_digamma").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setResistance(150.0F).setBlockTextureName(RefStrings.MODID + ":ash_digamma"); - sand_boron = new BlockFalling(Material.sand).setBlockName("sand_boron").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_boron"); - sand_lead = new BlockFalling(Material.sand).setBlockName("sand_lead").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_lead"); - sand_uranium = new BlockFalling(Material.sand).setBlockName("sand_uranium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_uranium"); - sand_polonium = new BlockFalling(Material.sand).setBlockName("sand_polonium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_polonium"); - sand_quartz = new BlockFalling(Material.sand).setBlockName("sand_quartz").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_quartz"); - sand_gold = new BlockGoldSand(Material.sand).setBlockName("sand_gold").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_gold"); - sand_gold198 = new BlockGoldSand(Material.sand).setBlockName("sand_gold198").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_gold"); - glass_boron = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_boron", Material.glass).setBlockName("glass_boron").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_lead = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_lead", Material.glass).setBlockName("glass_lead").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_uranium = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_uranium", Material.glass).setBlockName("glass_uranium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_trinitite = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_trinitite", Material.glass).setBlockName("glass_trinitite").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_polonium = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_polonium", Material.glass).setBlockName("glass_polonium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_ash = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_ash", Material.glass).setBlockName("glass_ash").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(3F); - glass_quartz = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_quartz", Material.packedIce, true).setBlockName("glass_quartz").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(1.0F).setResistance(40.0F).setBlockTextureName(RefStrings.MODID + "glass_quartz"); - - mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush"); - mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); - mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem"); - glyphid_base = new BlockBase(Material.coral).setBlockName("glyphid_base").setStepSound(Block.soundTypeCloth).setHardness(0.5F); - glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base"); - - plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); - plant_tall = new BlockTallPlant().setBlockName("plant_tall").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); - plant_dead = new BlockDeadPlant().setBlockName("plant_dead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); - reeds = new BlockReeds().setBlockName("plant_reeds").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); - vine_phosphor = new BlockHangingVine(thick_foliage).setBlockName("vine_phosphor").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.5F); - - waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); - waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); - waste_trinitite = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); - waste_trinitite_red = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); - waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F); - waste_leaves = new WasteLeaves(Material.leaves).setBlockName("waste_leaves").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); - waste_planks = new BlockOre(Material.wood).setBlockName("waste_planks").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_planks"); - frozen_dirt = new BlockOre(Material.ground).setBlockName("frozen_dirt").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_dirt"); - frozen_grass = new WasteEarth(Material.ground, false).setBlockName("frozen_grass").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); - frozen_log = new WasteLog(Material.wood).setBlockName("frozen_log").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); - frozen_planks = new BlockOre(Material.wood).setBlockName("frozen_planks").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_planks"); - fallout = new BlockFallout(Material.snow).setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash"); - foam_layer = new BlockLayering(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); - sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); - leaves_layer = new BlockLayering(Material.leaves).setBlockName("leaves_layer").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); - - burning_earth = new WasteEarth(Material.ground, true).setBlockName("burning_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":burning_earth"); - tektite = new BlockGeneric(Material.sand).setBlockName("tektite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":tektite"); - ore_tektite_osmiridium = new BlockGeneric(Material.sand).setBlockName("ore_tektite_osmiridium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":ore_tektite_osmiridium"); - impact_dirt = new BlockDirt(Material.ground, true).setBlockName("impact_dirt").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":waste_earth_bottom"); - dirt_dead = new BlockFalling(Material.ground).setBlockName("dirt_dead").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_dead"); - dirt_oily = new BlockFalling(Material.ground).setBlockName("dirt_oily").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_oily"); - sand_dirty = new BlockFalling(Material.sand).setBlockName("sand_dirty").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_dirty"); - sand_dirty_red = new BlockFalling(Material.sand).setBlockName("sand_dirty_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_dirty_red"); - stone_cracked = new BlockFalling(Material.rock).setBlockName("stone_cracked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":stone_cracked"); - - sellafield_slaked = new BlockGeneric(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); - sellafield = new BlockSellafield(Material.rock).setBlockName("sellafield").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); - /*sellafield_0 = new BlockHazard(Material.rock).setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); - sellafield_1 = new BlockHazard(Material.rock).setBlockName("sellafield_1").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_1"); - sellafield_2 = new BlockHazard(Material.rock).setBlockName("sellafield_2").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_2"); - sellafield_3 = new BlockHazard(Material.rock).setBlockName("sellafield_3").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_3"); - sellafield_4 = new BlockHazard(Material.rock).setBlockName("sellafield_4").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_4"); - sellafield_core = new BlockHazard(Material.rock).setBlockName("sellafield_core").setStepSound(Block.soundTypeStone).setHardness(10.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_core");*/ - - geysir_water = new BlockGeysir(Material.rock).setBlockName("geysir_water").setStepSound(Block.soundTypeStone).setHardness(5.0F); - geysir_chlorine = new BlockGeysir(Material.rock).setBlockName("geysir_chlorine").setStepSound(Block.soundTypeStone).setHardness(5.0F); - geysir_vapor = new BlockGeysir(Material.rock).setBlockName("geysir_vapor").setStepSound(Block.soundTypeStone).setHardness(5.0F); - geysir_nether = new BlockGeysir(Material.rock).setBlockName("geysir_nether").setLightLevel(1.0F).setStepSound(Block.soundTypeStone).setHardness(2.0F); - - observer_off = new BlockObserver(Material.iron, false).setBlockName("observer_off").setStepSound(Block.soundTypeStone).setHardness(2.0F); - observer_on = new BlockObserver(Material.iron, true).setBlockName("observer_on").setStepSound(Block.soundTypeStone).setHardness(2.0F); - - nuke_gadget = new NukeGadget(Material.iron).setBlockName("nuke_gadget").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":theGadget"); - nuke_boy = new NukeBoy(Material.iron).setBlockName("nuke_boy").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":lilBoy"); - nuke_man = new NukeMan(Material.iron).setBlockName("nuke_man").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":fatMan"); - nuke_mike = new NukeMike(Material.iron).setBlockName("nuke_mike").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ivyMike"); - nuke_tsar = new NukeTsar(Material.iron).setBlockName("nuke_tsar").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":tsarBomba"); - nuke_fleija = new NukeFleija(Material.iron).setBlockName("nuke_fleija").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":fleija"); - nuke_prototype = new NukePrototype(Material.iron).setBlockName("nuke_prototype").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":prototype"); - nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":custom"); - nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); - nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); - nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code"); - nuke_fstbmb = new NukeBalefire(Material.iron).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); - - bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); - //bomb_multi_large = new BombMultiLarge(Material.iron).setBlockName("bomb_multi_large").setCreativeTab(MainRegistry.tabNuke).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi_large"); - - flame_war = new BombFlameWar(Material.iron).setBlockName("flame_war").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":flame_war"); - float_bomb = new BombFloat(Material.iron).setBlockName("float_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - therm_endo = new BombThermo(Material.iron).setBlockName("therm_endo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - therm_exo = new BombThermo(Material.iron).setBlockName("therm_exo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - emp_bomb = new BombFloat(Material.iron).setBlockName("emp_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - det_cord = new DetCord(Material.iron).setBlockName("det_cord").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_cord"); - det_charge = new ExplosiveCharge(Material.iron).setBlockName("det_charge").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_charge"); - det_nuke = new ExplosiveCharge(Material.iron).setBlockName("det_nuke").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_nuke"); - det_miner = new DetMiner(Material.iron, RefStrings.MODID + ":det_miner_top").setBlockName("det_miner").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_miner_side"); - red_barrel = new RedBarrel(Material.iron).setBlockName("red_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_red"); - pink_barrel = new RedBarrel(Material.iron).setBlockName("pink_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_pink"); - yellow_barrel = new YellowBarrel(Material.iron).setBlockName("yellow_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_yellow"); - vitrified_barrel = new YellowBarrel(Material.iron).setBlockName("vitrified_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_vitrified"); - lox_barrel = new RedBarrel(Material.iron).setBlockName("lox_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_lox"); - taint_barrel = new RedBarrel(Material.iron).setBlockName("taint_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_taint"); - crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":crashed_balefire"); - fireworks = new BlockFireworks(Material.iron).setBlockName("fireworks").setCreativeTab(MainRegistry.nukeTab).setResistance(5.0F); - charge_dynamite = new BlockChargeDynamite().setBlockName("charge_dynamite").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); - charge_miner = new BlockChargeMiner().setBlockName("charge_miner").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); - charge_c4 = new BlockChargeC4().setBlockName("charge_c4").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); - charge_semtex = new BlockChargeSemtex().setBlockName("charge_semtex").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); - mine_ap = new Landmine(Material.iron).setBlockName("mine_ap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_ap"); - mine_he = new Landmine(Material.iron).setBlockName("mine_he").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_he"); - mine_shrap = new Landmine(Material.iron).setBlockName("mine_shrap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_shrap"); - mine_fat = new Landmine(Material.iron).setBlockName("mine_fat").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_fat"); - dynamite = new BlockDynamite().setBlockName("dynamite").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":dynamite"); - tnt = new BlockTNT().setBlockName("tnt_ntm").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":tnt"); - semtex = new BlockSemtex().setBlockName("semtex").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":semtex"); - c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4"); - fissure_bomb = new BlockFissureBomb().setBlockName("fissure_bomb").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":fissure_bomb"); - - heater_firebox = new HeaterFirebox().setBlockName("heater_firebox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - heater_oven = new HeaterOven().setBlockName("heater_oven").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - heater_oilburner = new HeaterOilburner().setBlockName("heater_oilburner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - heater_electric = new HeaterElectric().setBlockName("heater_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - heater_heatex = new HeaterHeatex().setBlockName("heater_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); - furnace_steel = new FurnaceSteel().setBlockName("furnace_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - furnace_combination = new FurnaceCombination().setBlockName("furnace_combination").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_light_alt"); - machine_stirling = new MachineStirling().setBlockName("machine_stirling").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_stirling_steel = new MachineStirling().setBlockName("machine_stirling_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); - - foundry_mold = new FoundryMold().setBlockName("foundry_mold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - foundry_basin = new FoundryBasin().setBlockName("foundry_basin").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - foundry_channel = new FoundryChannel().setBlockName("foundry_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - foundry_tank = new FoundryTank().setBlockName("foundry_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - foundry_outlet = new FoundryOutlet().setBlockName("foundry_outlet").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - foundry_slagtap = new FoundrySlagtap().setBlockName("foundry_slagtap").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - slag = new BlockDynamicSlag().setBlockName("slag").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":slag"); - - machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - machine_difurnace_extension = new MachineDiFurnaceExtension().setBlockName("machine_difurnace_extension").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_difurnace_rtg_off = new MachineDiFurnaceRTG(false).setBlockName("machine_difurnace_rtg_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_difurnace_rtg_on = new MachineDiFurnaceRTG(true).setBlockName("machine_difurnace_rtg_on").setHardness(5.0F).setResistance(10.0F).setLightLevel(2.0F).setCreativeTab(null); - - machine_centrifuge = new MachineCentrifuge(Material.iron).setBlockName("machine_centrifuge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_gascent = new MachineGasCent(Material.iron).setBlockName("machine_gascent").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_fel = new MachineFEL(Material.iron).setBlockName("machine_fel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_silex = new MachineSILEX(Material.iron).setBlockName("machine_silex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_crystallizer = new MachineCrystallizer(Material.iron).setBlockName("machine_crystallizer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_crystallizer"); - - machine_uf6_tank = new MachineUF6Tank(Material.iron).setBlockName("machine_uf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - - machine_puf6_tank = new MachinePuF6Tank(Material.iron).setBlockName("machine_puf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - - machine_reactor_breeding = new MachineReactorBreeding(Material.iron).setBlockName("machine_reactor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor"); - - machine_nuke_furnace_off = new MachineNukeFurnace(false).setBlockName("machine_nuke_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_nuke_furnace_on = new MachineNukeFurnace(true).setBlockName("machine_nuke_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - - machine_rtg_furnace_off = new MachineRtgFurnace(false).setBlockName("machine_rtg_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_rtg_furnace_on = new MachineRtgFurnace(true).setBlockName("machine_rtg_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - - machine_generator = new MachineGenerator(Material.iron).setBlockName("machine_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); - machine_industrial_generator = new MachineIGenerator(Material.iron).setBlockName("machine_industrial_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":industrial_generator"); - machine_cyclotron = new MachineCyclotron(Material.iron).setBlockName("machine_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cyclotron"); - machine_radgen = new MachineRadGen(Material.iron).setBlockName("machine_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_radgen"); - - hadron_plating = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating"); - hadron_plating_blue = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_blue").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_blue"); - hadron_plating_black = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_black").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_black"); - hadron_plating_yellow = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_yellow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_yellow"); - hadron_plating_striped = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_striped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_striped"); - hadron_plating_voltz = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_voltz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_voltz"); - hadron_plating_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_plating_glass", Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_glass"); - hadron_coil_alloy = new BlockHadronCoil(Material.iron, 10).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_alloy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_alloy"); - hadron_coil_gold = new BlockHadronCoil(Material.iron, 25).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_gold"); - hadron_coil_neodymium = new BlockHadronCoil(Material.iron, 50).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_neodymium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_neodymium"); - hadron_coil_magtung = new BlockHadronCoil(Material.iron, 100).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_magtung").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_magtung"); - hadron_coil_schrabidium = new BlockHadronCoil(Material.iron, 250).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_schrabidium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_schrabidium"); - hadron_coil_schrabidate = new BlockHadronCoil(Material.iron, 500).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_schrabidate"); - hadron_coil_starmetal = new BlockHadronCoil(Material.iron, 1000).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_starmetal").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_starmetal"); - hadron_coil_chlorophyte = new BlockHadronCoil(Material.iron, 2500).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_chlorophyte").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_chlorophyte"); - hadron_coil_mese = new BlockHadronCoil(Material.iron, 10000).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_mese").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_mese"); - hadron_power = new BlockHadronPower(Material.iron, 1000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); - hadron_power_10m = new BlockHadronPower(Material.iron, 10000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10m").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); - hadron_power_100m = new BlockHadronPower(Material.iron, 100000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_100m").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); - hadron_power_1g = new BlockHadronPower(Material.iron, 1000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_1g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); - hadron_power_10g = new BlockHadronPower(Material.iron, 10000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); - hadron_diode = new BlockHadronDiode(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - hadron_analysis = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis"); - hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass"); - hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_access"); - hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_core"); - - machine_electric_furnace_off = new MachineElectricFurnace(false).setBlockName("machine_electric_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_electric_furnace_on = new MachineElectricFurnace(true).setBlockName("machine_electric_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - machine_arc_furnace_off = new MachineArcFurnace(false).setBlockName("machine_arc_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_arc_furnace_on = new MachineArcFurnace(true).setBlockName("machine_arc_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - machine_microwave = new MachineMicrowave(Material.iron).setBlockName("machine_microwave").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_microwave"); - - //machine_deuterium = new MachineDeuterium(Material.iron).setBlockName("machine_deuterium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - - machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_schrabidium_battery = new MachineBattery(Material.iron, 25_000_000_000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); - - capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); - capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); - capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_niobium"); - capacitor_tantalium = new MachineCapacitor(Material.iron, 100_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); - - machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - - machine_diesel = new MachineDiesel().setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_combustion_engine = new MachineCombustionEngine().setBlockName("machine_combustion_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - machine_shredder = new MachineShredder(Material.iron).setBlockName("machine_shredder").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_shredder_large = new MachineShredderLarge(Material.iron).setBlockName("machine_shredder_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":code"); - - machine_combine_factory = new MachineCMBFactory(Material.iron).setBlockName("machine_combine_factory").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); - - machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - teleanchor = new MachineTeleanchor().setBlockName("teleanchor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - field_disturber = new MachineFieldDisturber().setBlockName("field_disturber").setHardness(5.0F).setResistance(200.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":field_disturber"); - - machine_rtg_grey = new MachineRTG(Material.iron).setBlockName("machine_rtg_grey").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg"); - machine_amgen = new MachineAmgen(Material.iron).setBlockName("machine_amgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_geo = new MachineAmgen(Material.iron).setBlockName("machine_geo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_minirtg = new MachineMiniRTG(Material.iron).setBlockName("machine_minirtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_cell"); - machine_powerrtg = new MachineMiniRTG(Material.iron).setBlockName("machine_powerrtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_polonium"); - machine_radiolysis = new MachineRadiolysis(Material.iron).setBlockName("machine_radiolysis").setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - machine_hephaestus = new MachineHephaestus(Material.iron).setBlockName("machine_hephaestus").setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - - red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_wire_coated"); - red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_neo"); - red_cable_classic = new BlockCable(Material.iron).setBlockName("red_cable_classic").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_cable_classic"); - red_cable_paintable = new BlockCablePaintable().setBlockName("red_cable_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - red_connector = new ConnectorRedWire(Material.iron).setBlockName("red_connector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector"); - red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); - red_pylon_large = new PylonLarge(Material.iron).setBlockName("red_pylon_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon_large"); - substation = new Substation(Material.iron).setBlockName("substation").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":substation"); - cable_switch = new CableSwitch(Material.iron).setBlockName("cable_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - cable_detector = new CableDetector(Material.iron).setBlockName("cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - cable_diode = new CableDiode(Material.iron).setBlockName("cable_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_diode"); - machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); - oil_duct_solid = new OilDuctSolid(Material.iron).setBlockName("oil_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_duct_solid_alt"); - oil_duct = new BlockOilDuct(Material.iron).setBlockName("oil_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_duct_icon_alt"); - gas_duct_solid = new GasDuctSolid(Material.iron).setBlockName("gas_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":gas_duct_solid"); - gas_duct = new BlockGasDuct(Material.iron).setBlockName("gas_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":gas_duct_icon"); - fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); - fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); - fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); - fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); - fluid_duct_paintable = new FluidDuctPaintable().setBlockName("fluid_duct_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - - conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); - //conveyor_classic = new BlockConveyorClassic().setBlockName("conveyor_classic").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); - conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); - conveyor_triple = new BlockConveyorTriple().setBlockName("conveyor_triple").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_triple"); - conveyor_chute = new BlockConveyorChute().setBlockName("conveyor_chute").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); - conveyor_lift = new BlockConveyorLift().setBlockName("conveyor_lift").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); - crane_extractor = new CraneExtractor().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crane_inserter = new CraneInserter().setBlockName("crane_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crane_grabber = new CraneGrabber().setBlockName("crane_grabber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crane_router = new CraneRouter().setBlockName("crane_router").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crane_boxer = new CraneBoxer().setBlockName("crane_boxer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crane_unboxer = new CraneUnboxer().setBlockName("crane_unboxer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crane_splitter = new CraneSplitter().setBlockName("crane_splitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":crane_side"); - fan = new MachineFan().setBlockName("fan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); - - ladder_sturdy = new BlockNTMLadder().setBlockName("ladder_sturdy").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_sturdy"); - ladder_iron = new BlockNTMLadder().setBlockName("ladder_iron").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_iron"); - ladder_gold = new BlockNTMLadder().setBlockName("ladder_gold").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_gold"); - ladder_aluminium = new BlockNTMLadder().setBlockName("ladder_aluminium").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_aluminium"); - ladder_copper = new BlockNTMLadder().setBlockName("ladder_copper").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_copper"); - ladder_titanium = new BlockNTMLadder().setBlockName("ladder_titanium").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_titanium"); - ladder_lead = new BlockNTMLadder().setBlockName("ladder_lead").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_lead"); - ladder_cobalt = new BlockNTMLadder().setBlockName("ladder_cobalt").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_cobalt"); - ladder_steel = new BlockNTMLadder().setBlockName("ladder_steel").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_steel"); - ladder_tungsten = new BlockNTMLadder().setBlockName("ladder_tungsten").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_tungsten"); - - barrel_plastic = new BlockFluidBarrel(Material.iron, 12000).setBlockName("barrel_plastic").setStepSound(Block.soundTypeStone).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_plastic"); - barrel_corroded = new BlockFluidBarrel(Material.iron, 6000).setBlockName("barrel_corroded").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_corroded"); - barrel_iron = new BlockFluidBarrel(Material.iron, 8000).setBlockName("barrel_iron").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_iron"); - barrel_steel = new BlockFluidBarrel(Material.iron, 16000).setBlockName("barrel_steel").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_steel"); - barrel_tcalloy = new BlockFluidBarrel(Material.iron, 24000).setBlockName("barrel_tcalloy").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_tcalloy"); - barrel_antimatter = new BlockFluidBarrel(Material.iron, 16000).setBlockName("barrel_antimatter").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_antimatter"); - - machine_transformer = new MachineTransformer(Material.iron, 10000L, 1).setBlockName("machine_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron"); - machine_transformer_dnt = new MachineTransformer(Material.iron, 1000000000000000L, 1).setBlockName("machine_transformer_dnt").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer"); - machine_transformer_20 = new MachineTransformer(Material.iron, 10000L, 20).setBlockName("machine_transformer_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron"); - machine_transformer_dnt_20 = new MachineTransformer(Material.iron, 1000000000000000L, 20).setBlockName("machine_transformer_dnt_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer"); - - machine_satlinker = new MachineSatLinker(Material.iron).setBlockName("machine_satlinker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_satlinker_side"); - machine_keyforge = new MachineKeyForge(Material.iron).setBlockName("machine_keyforge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":machine_keyforge_side"); - machine_armor_table = new BlockArmorTable(Material.iron).setBlockName("machine_armor_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab); - - machine_solar_boiler = new MachineSolarBoiler(Material.iron).setBlockName("machine_solar_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_solar_boiler"); - solar_mirror = new SolarMirror(Material.iron).setBlockName("solar_mirror").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":solar_mirror"); - - struct_launcher = new BlockGeneric(Material.iron).setBlockName("struct_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher"); - struct_scaffold = new BlockGeneric(Material.iron).setBlockName("struct_scaffold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_scaffold"); - struct_launcher_core = new BlockStruct(Material.iron).setBlockName("struct_launcher_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher_core"); - struct_launcher_core_large = new BlockStruct(Material.iron).setBlockName("struct_launcher_core_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher_core_large"); - struct_soyuz_core = new BlockSoyuzStruct(Material.iron).setBlockName("struct_soyuz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_soyuz_core"); - struct_iter_core = new BlockITERStruct(Material.iron).setBlockName("struct_iter_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_iter_core"); - struct_plasma_core = new BlockPlasmaStruct(Material.iron).setBlockName("struct_plasma_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_plasma_core"); - struct_watz_core = new BlockWatzStruct(Material.iron).setBlockName("struct_watz_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_watz_core"); - - factory_titanium_hull = new BlockGeneric(Material.iron).setBlockName("factory_titanium_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull"); - factory_titanium_furnace = new FactoryHatch(Material.iron).setBlockName("factory_titanium_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_furnace"); - factory_titanium_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":factory_titanium_conductor").setBlockName("factory_titanium_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull"); - factory_advanced_hull = new BlockGeneric(Material.iron).setBlockName("factory_advanced_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_hull"); - factory_advanced_furnace = new FactoryHatch(Material.iron).setBlockName("factory_advanced_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_furnace"); - factory_advanced_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":factory_advanced_conductor").setBlockName("factory_advanced_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_hull"); - - reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); - reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); - reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_ejector = new BlockRotatable(Material.iron).setBlockName("reactor_ejector").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_inserter = new BlockRotatable(Material.iron).setBlockName("reactor_inserter").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_conductor_top").setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); - reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); - - fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); - fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); - fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); - fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); - fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); - //fusion_core = new FusionCore(Material.iron).setBlockName("fusion_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_core_side"); - plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma"); - iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":iter"); - plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); - - watz_element = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_element_top").setBlockName("watz_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_element_side"); - watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side"); - watz_cooler = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_cooler_top").setBlockName("watz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_cooler_side"); - watz_end = new BlockToolConversion(Material.iron).addVariant("_bolted").setBlockName("watz_end").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_casing"); - watz_hatch = new WatzHatch(Material.iron).setBlockName("watz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_hatch"); - watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top"); - watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_computer"); - watz = new Watz().setBlockName("watz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - watz_pump = new WatzPump().setBlockName("watz_pump").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - fwatz_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":block_combine_steel").setBlockName("fwatz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_conductor_side"); - fwatz_cooler = new BlockPillar(Material.iron, RefStrings.MODID + ":fwatz_cooler_top").setBlockName("fwatz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_cooler"); - fwatz_tank = new BlockNTMGlass(0, RefStrings.MODID + ":fwatz_tank", Material.iron).setBlockName("fwatz_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - fwatz_scaffold = new BlockGeneric(Material.iron).setBlockName("fwatz_scaffold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_scaffold"); - fwatz_hatch = new FWatzHatch(Material.iron).setBlockName("fwatz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_computer"); - fwatz_computer = new BlockGeneric(Material.iron).setBlockName("fwatz_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_computer"); - fwatz_core = new FWatzCore(Material.iron).setBlockName("fwatz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_core"); - fwatz_plasma = new BlockPlasma(Material.iron).setBlockName("fwatz_plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_plasma"); - - balefire = new Balefire().setBlockName("balefire").setHardness(0.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":balefire"); - fire_digamma = new DigammaFlame().setBlockName("fire_digamma").setHardness(0.0F).setResistance(150F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fire_digamma"); - digamma_matter = new DigammaMatter().setBlockName("digamma_matter").setBlockUnbreakable().setResistance(18000000).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":digamma_matter"); - - ams_base = new BlockAMSBase(Material.iron).setBlockName("ams_base").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":ams_base"); - ams_emitter = new BlockAMSEmitter(Material.iron).setBlockName("ams_emitter").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":ams_emitter"); - ams_limiter = new BlockAMSLimiter(Material.iron).setBlockName("ams_limiter").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":ams_limiter"); - - machine_converter_he_rf = new BlockConverterHeRf(Material.iron).setBlockName("machine_converter_he_rf").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_converter_he_rf"); - machine_converter_rf_he = new BlockConverterRfHe(Material.iron).setBlockName("machine_converter_rf_he").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_converter_rf_he"); - - dfc_emitter = new CoreComponent(Material.iron).setBlockName("dfc_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_emitter"); - dfc_injector = new CoreComponent(Material.iron).setBlockName("dfc_injector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_injector"); - dfc_receiver = new CoreComponent(Material.iron).setBlockName("dfc_receiver").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_receiver"); - dfc_stabilizer = new CoreComponent(Material.iron).setBlockName("dfc_stabilizer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_stabilizer"); - dfc_core = new CoreCore(Material.iron).setBlockName("dfc_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_core"); - - seal_frame = new BlockGeneric(Material.iron).setBlockName("seal_frame").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":seal_frame"); - seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); - seal_hatch = new BlockHatch(Material.iron).setBlockName("seal_hatch").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":seal_hatch_3"); - - vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door"); - blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door"); - fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); - transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); - - door_metal = new BlockModDoor(Material.iron).setBlockName("door_metal").setHardness(5.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":door_metal"); - door_office = new BlockModDoor(Material.iron).setBlockName("door_office").setHardness(10.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":door_office"); - door_bunker = new BlockModDoor(Material.iron).setBlockName("door_bunker").setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":door_bunker"); - - barbed_wire = new BarbedWire(Material.iron).setBlockName("barbed_wire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_model"); - barbed_wire_fire = new BarbedWire(Material.iron).setBlockName("barbed_wire_fire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_fire_model"); - barbed_wire_poison = new BarbedWire(Material.iron).setBlockName("barbed_wire_poison").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_poison_model"); - barbed_wire_acid = new BarbedWire(Material.iron).setBlockName("barbed_wire_acid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_acid_model"); - barbed_wire_wither = new BarbedWire(Material.iron).setBlockName("barbed_wire_wither").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_wither_model"); - barbed_wire_ultradeath = new BarbedWire(Material.iron).setBlockName("barbed_wire_ultradeath").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_ultradeath_model"); - spikes = new Spikes(Material.iron).setBlockName("spikes").setHardness(2.5F).setResistance(5.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":spikes"); - - charger = new Charger(Material.iron).setBlockName("charger").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); - - marker_structure = new BlockMarker(Material.iron).setBlockName("marker_structure").setHardness(0.1F).setResistance(0.1F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":marker_structure"); - - muffler = new BlockGeneric(Material.cloth).setBlockName("muffler").setHardness(0.8F).setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":muffler"); - - launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); - - machine_missile_assembly = new MachineMissileAssembly(Material.iron).setBlockName("machine_missile_assembly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_missile_assembly"); - compact_launcher = new CompactLauncher(Material.iron).setBlockName("compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":compact_launcher"); - launch_table = new LaunchTable(Material.iron).setBlockName("launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_table"); - soyuz_launcher = new SoyuzLauncher(Material.iron).setBlockName("soyuz_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_launcher"); - - sat_mapper = new DecoBlock(Material.iron).setBlockName("sat_mapper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_mapper"); - sat_radar = new DecoBlock(Material.iron).setBlockName("sat_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_radar"); - sat_scanner = new DecoBlock(Material.iron).setBlockName("sat_scanner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_scanner"); - sat_laser = new DecoBlock(Material.iron).setBlockName("sat_laser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_laser"); - sat_foeq = new DecoBlock(Material.iron).setBlockName("sat_foeq").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_foeq"); - sat_resonator = new DecoBlock(Material.iron).setBlockName("sat_resonator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_resonator"); - - sat_dock = new MachineSatDock(Material.iron).setBlockName("sat_dock").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":sat_dock"); - soyuz_capsule = new SoyuzCapsule(Material.iron).setBlockName("soyuz_capsule").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_capsule"); - - turret_chekhov = new TurretChekhov(Material.iron).setBlockName("turret_chekhov").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_friendly = new TurretFriendly(Material.iron).setBlockName("turret_friendly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_jeremy = new TurretJeremy(Material.iron).setBlockName("turret_jeremy").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_tauon = new TurretTauon(Material.iron).setBlockName("turret_tauon").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_richard = new TurretRichard(Material.iron).setBlockName("turret_richard").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_howard = new TurretHoward(Material.iron).setBlockName("turret_howard").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_howard_damaged = new TurretHowardDamaged(Material.iron).setBlockName("turret_howard_damaged").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_rust"); - turret_maxwell = new TurretMaxwell(Material.iron).setBlockName("turret_maxwell").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_fritz = new TurretFritz(Material.iron).setBlockName("turret_fritz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_brandon = new TurretBrandon(Material.iron).setBlockName("turret_brandon").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_arty = new TurretArty(Material.iron).setBlockName("turret_arty").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_himars = new TurretHIMARS(Material.iron).setBlockName("turret_himars").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_sentry = new TurretSentry().setBlockName("turret_sentry").setHardness(5.0F).setResistance(5.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - rbmk_rod = new RBMKRod(false).setBlockName("rbmk_rod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element"); - rbmk_rod_mod = new RBMKRod(true).setBlockName("rbmk_rod_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_mod"); - rbmk_rod_reasim = new RBMKRodReaSim(false).setBlockName("rbmk_rod_reasim").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_reasim"); - rbmk_rod_reasim_mod = new RBMKRodReaSim(true).setBlockName("rbmk_rod_reasim_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_reasim_mod"); - rbmk_control = new RBMKControl(false).setBlockName("rbmk_control").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control"); - rbmk_control_mod = new RBMKControl(true).setBlockName("rbmk_control_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control_mod"); - rbmk_control_auto = new RBMKControlAuto().setBlockName("rbmk_control_auto").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control_auto"); - rbmk_blank = new RBMKBlank().setBlockName("rbmk_blank").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_blank"); - rbmk_boiler = new RBMKBoiler().setBlockName("rbmk_boiler").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_boiler"); - rbmk_reflector = new RBMKReflector().setBlockName("rbmk_reflector").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_reflector"); - rbmk_absorber = new RBMKAbsorber().setBlockName("rbmk_absorber").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_absorber"); - rbmk_moderator = new RBMKModerator().setBlockName("rbmk_moderator").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_moderator"); - rbmk_outgasser = new RBMKOutgasser().setBlockName("rbmk_outgasser").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_outgasser"); - rbmk_storage = new RBMKStorage().setBlockName("rbmk_storage").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_storage"); - rbmk_cooler = new RBMKCooler().setBlockName("rbmk_cooler").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_cooler"); - rbmk_heater = new RBMKHeater().setBlockName("rbmk_heater").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_heater"); - rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console"); - rbmk_crane_console = new RBMKCraneConsole().setBlockName("rbmk_crane_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_crane_console"); - rbmk_loader = new RBMKLoader(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader"); - rbmk_steam_inlet = new RBMKInlet(Material.iron).setBlockName("rbmk_steam_inlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_inlet"); - rbmk_steam_outlet = new RBMKOutlet(Material.iron).setBlockName("rbmk_steam_outlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_outlet"); - rbmk_heatex = new RBMKHeatex(Material.iron).setBlockName("rbmk_heatex").setCreativeTab(null).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_heatex"); - pribris = new RBMKDebris().setBlockName("pribris").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris"); - pribris_burning = new RBMKDebrisBurning().setBlockName("pribris_burning").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_burning"); - pribris_radiating = new RBMKDebrisRadiating().setBlockName("pribris_radiating").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_radiating"); - pribris_digamma = new RBMKDebrisDigamma().setBlockName("pribris_digamma").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_digamma"); - - book_guide = new Guide(Material.iron).setBlockName("book_guide").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.nukeTab); - - rail_wood = new RailGeneric().setMaxSpeed(0.2F).setBlockName("rail_wood").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_wood"); - rail_narrow = new RailGeneric().setBlockName("rail_narrow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow"); - rail_highspeed = new RailGeneric().setMaxSpeed(1F).setFlexible(false).setBlockName("rail_highspeed").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_highspeed"); - rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); - rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); - - crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); - crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); - crate_lead = new BlockCrate(Material.iron).setBlockName("crate_lead").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_lead"); - crate_metal = new BlockCrate(Material.iron).setBlockName("crate_metal").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_metal"); - crate_red = new BlockCrate(Material.iron).setBlockName("crate_red").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crate_red"); - crate_can = new BlockCanCrate(Material.wood).setBlockName("crate_can").setStepSound(Block.soundTypeWood).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_can"); - crate_ammo = new BlockAmmoCrate(Material.iron).setBlockName("crate_ammo").setStepSound(Block.soundTypeMetal).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.consumableTab); - crate_jungle = new BlockJungleCrate(Material.rock).setBlockName("crate_jungle").setStepSound(Block.soundTypeStone).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_jungle"); - crate_iron = new BlockStorageCrate(Material.iron).setBlockName("crate_iron").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crate_steel = new BlockStorageCrate(Material.iron).setBlockName("crate_steel").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crate_desh = new BlockStorageCrate(Material.iron).setBlockName("crate_desh").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crate_tungsten = new BlockStorageCrate(Material.iron).setBlockName("crate_tungsten").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(300.0F).setCreativeTab(MainRegistry.machineTab); - safe = new BlockStorageCrate(Material.iron).setBlockName("safe").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); - mass_storage = new BlockMassStorage().setBlockName("mass_storage").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - - boxcar = new DecoBlock(Material.iron).setBlockName("boxcar").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boxcar"); - boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat"); - bomber = new DecoBlock(Material.iron).setBlockName("bomber").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":code"); - - machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well"); - machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); - machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); - machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery"); - machine_vacuum_distill = new MachineVacuumDistill(Material.iron).setBlockName("machine_vacuum_distill").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_fraction_tower = new MachineFractionTower(Material.iron).setBlockName("machine_fraction_tower").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - fraction_spacer = new FractionSpacer(Material.iron).setBlockName("fraction_spacer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_catalytic_cracker = new MachineCatalyticCracker(Material.iron).setBlockName("machine_catalytic_cracker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_catalytic_reformer = new MachineCatalyticReformer(Material.iron).setBlockName("machine_catalytic_reformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_coker = new MachineCoker(Material.iron).setBlockName("machine_coker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_autosaw = new MachineAutosaw().setBlockName("machine_autosaw").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_drill"); - machine_excavator = new MachineExcavator().setBlockName("machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - drill_pipe = new BlockNoDrop(Material.iron).setBlockName("drill_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":drill_pipe"); - machine_mining_laser = new MachineMiningLaser(Material.iron).setBlockName("machine_mining_laser").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_mining_laser"); - barricade = new BlockNoDrop(Material.sand).setBlockName("barricade").setHardness(1.0F).setResistance(2.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barricade"); - machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler"); - machine_assemfac = new MachineAssemfac(Material.iron).setBlockName("machine_assemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_chemfac = new MachineChemfac(Material.iron).setBlockName("machine_chemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_mixer = new MachineMixer(Material.iron).setBlockName("machine_mixer").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_fluidtank = new MachineFluidTank(Material.iron).setBlockName("machine_fluidtank").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fluidtank"); - machine_bat9000 = new MachineBigAssTank9000(Material.iron).setBlockName("machine_bat9000").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_orbus = new MachineOrbus(Material.iron).setBlockName("machine_orbus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_turbofan = new MachineTurbofan(Material.iron).setBlockName("machine_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_turbofan"); - machine_turbinegas = new MachineTurbineGas(Material.iron).setBlockName("machine_turbinegas").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - press_preheater = new BlockBase(Material.iron).setBlockName("press_preheater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":press_preheater"); - machine_press = new MachinePress(Material.iron).setBlockName("machine_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_press"); - machine_epress = new MachineEPress(Material.iron).setBlockName("machine_epress").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_epress"); - machine_selenium = new MachineSeleniumEngine(Material.iron).setBlockName("machine_selenium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_selenium"); - reactor_research = new ReactorResearch(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small"); - reactor_zirnox = new ReactorZirnox(Material.iron).setBlockName("machine_zirnox").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - - machine_boiler_off = new MachineBoiler(false).setBlockName("machine_boiler_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_boiler_off"); - machine_boiler_on = new MachineBoiler(true).setBlockName("machine_boiler_on").setHardness(5.0F).setResistance(10.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_boiler_on"); - machine_boiler_electric_off = new MachineBoiler(false).setBlockName("machine_boiler_electric_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_boiler_electric_off"); - machine_boiler_electric_on = new MachineBoiler(true).setBlockName("machine_boiler_electric_on").setHardness(5.0F).setResistance(10.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_boiler_electric_on"); - - machine_steam_engine = new MachineSteamEngine().setBlockName("machine_steam_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_turbine = new MachineTurbine(Material.iron).setBlockName("machine_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_turbine"); - machine_large_turbine = new MachineLargeTurbine(Material.iron).setBlockName("machine_large_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_large_turbine"); - machine_chungus = new MachineChungus(Material.iron).setBlockName("machine_chungus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_chungus"); - machine_condenser = new MachineCondenser(Material.iron).setBlockName("machine_condenser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":condenser"); - machine_tower_small = new MachineTowerSmall(Material.iron).setBlockName("machine_tower_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - machine_tower_large = new MachineTowerLarge(Material.iron).setBlockName("machine_tower_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); - - machine_deuterium_extractor = new MachineDeuteriumExtractor(Material.iron).setBlockName("machine_deuterium_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_deuterium_extractor_side"); - machine_deuterium_tower = new DeuteriumTower(Material.iron).setBlockName("machine_deuterium_tower").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); - - machine_liquefactor = new MachineLiquefactor().setBlockName("machine_liquefactor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - machine_solidifier = new MachineSolidifier().setBlockName("machine_solidifier").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - machine_compressor = new MachineCompressor().setBlockName("machine_compressor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - - machine_electrolyser = new MachineElectrolyser().setBlockName("machine_electrolyser").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - - machine_autocrafter = new MachineAutocrafter().setBlockName("machine_autocrafter").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); - - anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); - anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); - anvil_steel = new NTMAnvil(Material.iron, 2).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); - anvil_meteorite = new NTMAnvil(Material.iron, 3).setBlockName("anvil_meteorite").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_meteorite"); - anvil_starmetal = new NTMAnvil(Material.iron, 3).setBlockName("anvil_starmetal").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_starmetal"); - anvil_ferrouranium = new NTMAnvil(Material.iron, 4).setBlockName("anvil_ferrouranium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_ferrouranium"); - anvil_bismuth = new NTMAnvil(Material.iron, 5).setBlockName("anvil_bismuth").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_bismuth"); - anvil_schrabidate = new NTMAnvil(Material.iron, 6).setBlockName("anvil_schrabidate").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_schrabidate"); - anvil_dnt = new NTMAnvil(Material.iron, 7).setBlockName("anvil_dnt").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_dnt"); - anvil_osmiridium = new NTMAnvil(Material.iron, 8).setBlockName("anvil_osmiridium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_osmiridium"); - anvil_murky = new NTMAnvil(Material.iron, 1916169).setBlockName("anvil_murky").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); - - machine_deaerator = new MachineDeaerator(Material.iron).setBlockName("machine_deaerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - - machine_waste_drum = new WasteDrum(Material.iron).setBlockName("machine_waste_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":waste_drum"); - machine_storage_drum = new StorageDrum(Material.iron).setBlockName("machine_storage_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_storage_drum"); - - machine_schrabidium_transmutator = new MachineSchrabidiumTransmutator(Material.iron).setBlockName("machine_schrabidium_transmutator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); - - machine_siren = new MachineSiren(Material.iron).setBlockName("machine_siren").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_siren"); - - machine_spp_bottom = new SPPBottom(Material.iron).setBlockName("machine_spp_bottom").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_spp_top = new SPPTop(Material.iron).setBlockName("machine_spp_top").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - - radiobox = new Radiobox(Material.iron).setBlockName("radiobox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radiobox"); - radiorec = new RadioRec(Material.iron).setBlockName("radiorec").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radiorec"); - - machine_forcefield = new MachineForceField(Material.iron).setBlockName("machine_forcefield").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_forcefield"); - - cheater_virus = new CheaterVirus(Material.iron).setBlockName("cheater_virus").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus"); - cheater_virus_seed = new CheaterVirusSeed(Material.iron).setBlockName("cheater_virus_seed").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus_seed"); - crystal_virus = new CrystalVirus(Material.iron).setBlockName("crystal_virus").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_virus"); - crystal_hardened = new BlockGeneric(Material.iron).setBlockName("crystal_hardened").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_hardened"); - crystal_pulsar = new CrystalPulsar(Material.iron).setBlockName("crystal_pulsar").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_pulsar"); - taint = new BlockTaint(Material.iron).setBlockName("taint").setHardness(15.0F).setResistance(10.0F).setCreativeTab(null); - residue = new BlockCloudResidue(Material.iron).setBlockName("residue").setHardness(0.5F).setResistance(0.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":residue"); - - vent_chlorine = new BlockVent(Material.iron).setBlockName("vent_chlorine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_chlorine"); - vent_cloud = new BlockVent(Material.iron).setBlockName("vent_cloud").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_cloud"); - vent_pink_cloud = new BlockVent(Material.iron).setBlockName("vent_pink_cloud").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_pink_cloud"); - vent_chlorine_seal = new BlockClorineSeal(Material.iron).setBlockName("vent_chlorine_seal").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - chlorine_gas = new BlockGasClorine().setBlockName("chlorine_gas").setHardness(0.0F).setResistance(0.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":chlorine_gas"); - - gas_radon = new BlockGasRadon().setBlockName("gas_radon").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon"); - gas_radon_dense = new BlockGasRadonDense().setBlockName("gas_radon_dense").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon_dense"); - gas_radon_tomb = new BlockGasRadonTomb().setBlockName("gas_radon_tomb").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon_tomb"); - gas_meltdown = new BlockGasMeltdown().setBlockName("gas_meltdown").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_meltdown"); - gas_monoxide = new BlockGasMonoxide().setBlockName("gas_monoxide").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_monoxide"); - gas_asbestos = new BlockGasAsbestos().setBlockName("gas_asbestos").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_asbestos"); - gas_coal = new BlockGasCoal().setBlockName("gas_coal").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_coal"); - gas_flammable = new BlockGasFlammable().setBlockName("gas_flammable").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_flammable"); - gas_explosive = new BlockGasExplosive().setBlockName("gas_explosive").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_explosive"); - vacuum = new BlockVacuum().setBlockName("vacuum").setResistance(1000000F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vacuum"); - - absorber = new BlockAbsorber(Material.iron, 2.5F).setBlockName("absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber"); - absorber_red = new BlockAbsorber(Material.iron, 10F).setBlockName("absorber_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_red"); - absorber_green = new BlockAbsorber(Material.iron, 100F).setBlockName("absorber_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_green"); - absorber_pink = new BlockAbsorber(Material.iron, 10000F).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_pink"); - decon = new BlockDecon(Material.iron).setBlockName("decon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":decon_side"); - transission_hatch = new BlockTransission(Material.iron).setBlockName("transission_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transission_hatch"); - - volcano_core = new BlockVolcano().setBlockName("volcano_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_core"); - - statue_elb = new DecoBlockAlt(Material.iron).setBlockName("#null").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); - statue_elb_g = new DecoBlockAlt(Material.iron).setBlockName("#void").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); - statue_elb_w = new DecoBlockAlt(Material.iron).setBlockName("#ngtv").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); - statue_elb_f = new DecoBlockAlt(Material.iron).setBlockName("#undef").setHardness(Float.POSITIVE_INFINITY).setLightLevel(1.0F).setResistance(Float.POSITIVE_INFINITY); - - mud_fluid = new MudFluid().setDensity(2500).setViscosity(3000).setLuminosity(5).setTemperature(2773).setUnlocalizedName("mud_fluid"); - FluidRegistry.registerFluid(mud_fluid); - mud_block = new MudBlock(mud_fluid, fluidmud.setReplaceable(), ModDamageSource.mudPoisoning).setBlockName("mud_block").setResistance(500F); - - acid_fluid = new AcidFluid().setDensity(2500).setViscosity(1500).setLuminosity(5).setTemperature(2773).setUnlocalizedName("acid_fluid"); - FluidRegistry.registerFluid(acid_fluid); - acid_block = new AcidBlock(acid_fluid, fluidacid.setReplaceable(), ModDamageSource.acid).setBlockName("acid_block").setResistance(500F); - - toxic_fluid = new ToxicFluid().setDensity(2500).setViscosity(2000).setLuminosity(15).setTemperature(2773).setUnlocalizedName("toxic_fluid"); - FluidRegistry.registerFluid(toxic_fluid); - toxic_block = new ToxicBlock(toxic_fluid, fluidtoxic.setReplaceable(), ModDamageSource.radiation).setBlockName("toxic_block").setResistance(500F); - - schrabidic_fluid = new SchrabidicFluid().setDensity(31200).setViscosity(500).setTemperature(273).setUnlocalizedName("schrabidic_fluid"); - FluidRegistry.registerFluid(schrabidic_fluid); - schrabidic_block = new SchrabidicBlock(schrabidic_fluid, fluidschrabidic.setReplaceable(), ModDamageSource.radiation).setBlockName("schrabidic_block").setResistance(500F); - - corium_fluid = new CoriumFluid().setDensity(600000).setViscosity(12000).setLuminosity(10).setTemperature(1500).setUnlocalizedName("corium_fluid"); - FluidRegistry.registerFluid(corium_fluid); - corium_block = new CoriumBlock(corium_fluid, fluidcorium).setBlockName("corium_block").setResistance(500F); - - volcanic_lava_fluid = new VolcanicFluid().setLuminosity(15).setDensity(3000).setViscosity(3000).setTemperature(1300).setUnlocalizedName("volcanic_lava_fluid"); - FluidRegistry.registerFluid(volcanic_lava_fluid); - volcanic_lava_block = new VolcanicBlock(volcanic_lava_fluid, Material.lava).setBlockName("volcanic_lava_block").setResistance(500F); - - sulfuric_acid_fluid = new GenericFluid("sulfuric_acid_fluid").setDensity(1840).setViscosity(1000).setTemperature(273); - FluidRegistry.registerFluid(sulfuric_acid_fluid); - sulfuric_acid_block = new GenericFluidBlock(sulfuric_acid_fluid, Material.water, "sulfuric_acid_still", "sulfuric_acid_flowing").setDamage(ModDamageSource.acid, 5F).setBlockName("sulfuric_acid_block").setResistance(500F); - - Fluid liquidConcrete = new GenericFluid("concrete_liquid").setViscosity(2000); - concrete_liquid = new GenericFiniteFluid(liquidConcrete, Material.rock, "concrete_liquid", "concrete_liquid_flowing").setQuantaPerBlock(4).setBlockName("concrete_liquid").setResistance(500F); - - dummy_block_drill = new DummyBlockDrill(Material.iron, false).setBlockName("dummy_block_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead"); - dummy_port_drill = new DummyBlockDrill(Material.iron, true).setBlockName("dummy_port_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead"); - dummy_block_assembler = new DummyBlockAssembler(Material.iron, false).setBlockName("dummy_block_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_port_assembler = new DummyBlockAssembler(Material.iron, true).setBlockName("dummy_port_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_block_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_block_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_port_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_port_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_block_ams_emitter = new DummyBlockAMSEmitter(Material.iron).setBlockName("dummy_block_ams_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_port_ams_emitter = new DummyBlockAMSEmitter(Material.iron).setBlockName("dummy_port_ams_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_block_ams_base = new DummyBlockAMSBase(Material.iron).setBlockName("dummy_block_ams_base").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_port_ams_base = new DummyBlockAMSBase(Material.iron).setBlockName("dummy_port_ams_base").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); - dummy_block_vault = new DummyBlockVault(Material.iron).setBlockName("dummy_block_vault").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_block_blast = new DummyBlockBlast(Material.iron).setBlockName("dummy_block_blast").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_block_uf6 = new DummyBlockMachine(Material.iron, machine_uf6_tank, false).setBlockName("dummy_block_uf6").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); - dummy_block_puf6 = new DummyBlockMachine(Material.iron, machine_puf6_tank, false).setBlockName("dummy_block_puf6").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_plate_compact_launcher = new DummyBlockMachine(Material.iron, compact_launcher, false).setBounds(0, 16, 0, 16, 16, 16).setBlockName("dummy_plate_compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_port_compact_launcher = new DummyBlockMachine(Material.iron, compact_launcher, true).setBlockName("dummy_port_compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_plate_launch_table = new DummyBlockMachine(Material.iron, launch_table, false).setBounds(0, 16, 0, 16, 16, 16).setBlockName("dummy_plate_launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_port_launch_table = new DummyBlockMachine(Material.iron, launch_table, true).setBlockName("dummy_port_launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_plate_cargo = new DummyBlockMachine(Material.iron, sat_dock, false).setBounds(0, 0, 0, 16, 8, 16).setBlockName("dummy_plate_cargo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - - ntm_dirt = new BlockNTMDirt().setBlockName("ntm_dirt").setHardness(0.5F).setStepSound(Block.soundTypeGravel).setCreativeTab(null).setBlockTextureName("dirt"); - - pink_log = new BlockPinkLog().setBlockName("pink_log").setHardness(0.5F).setStepSound(Block.soundTypeWood).setCreativeTab(null); - pink_planks = new BlockGeneric(Material.wood).setBlockName("pink_planks").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); - pink_slab = new BlockPinkSlab(false, Material.wood).setBlockName("pink_slab").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); - pink_double_slab = new BlockPinkSlab(true, Material.wood).setBlockName("pink_double_slab").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); - pink_stairs = new BlockGenericStairs(pink_planks, 0).setBlockName("pink_stairs").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); - - ff = new BlockFF(Material.iron).setBlockName("ff").setHardness(0.5F).setStepSound(Block.soundTypeGravel).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":code"); - } - - private static void registerBlock() { - //Test - GameRegistry.registerBlock(test_render, test_render.getUnlocalizedName()); - //GameRegistry.registerBlock(test_container, test_container.getUnlocalizedName()); - GameRegistry.registerBlock(test_bomb, test_bomb.getUnlocalizedName()); - GameRegistry.registerBlock(test_bomb_advanced, test_bomb_advanced.getUnlocalizedName()); - - GameRegistry.registerBlock(test_nuke, test_nuke.getUnlocalizedName()); - - GameRegistry.registerBlock(event_tester, event_tester.getUnlocalizedName()); - GameRegistry.registerBlock(obj_tester, obj_tester.getUnlocalizedName()); - GameRegistry.registerBlock(test_core, test_core.getUnlocalizedName()); - GameRegistry.registerBlock(test_charge, test_charge.getUnlocalizedName()); - GameRegistry.registerBlock(test_pipe, test_pipe.getUnlocalizedName()); - GameRegistry.registerBlock(test_ct, test_ct.getUnlocalizedName()); - GameRegistry.registerBlock(test_rail, test_rail.getUnlocalizedName()); - GameRegistry.registerBlock(structure_anchor, structure_anchor.getUnlocalizedName()); - - //Ores - GameRegistry.registerBlock(ore_uranium, ore_uranium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_uranium_scorched, ore_uranium_scorched.getUnlocalizedName()); - GameRegistry.registerBlock(ore_thorium, ore_thorium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_titanium, ore_titanium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_sulfur, ore_sulfur.getUnlocalizedName()); - GameRegistry.registerBlock(ore_niter, ore_niter.getUnlocalizedName()); - GameRegistry.registerBlock(ore_copper, ore_copper.getUnlocalizedName()); - GameRegistry.registerBlock(ore_tungsten, ore_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(ore_aluminium, ore_aluminium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_fluorite, ore_fluorite.getUnlocalizedName()); - GameRegistry.registerBlock(ore_beryllium, ore_beryllium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_lead, ore_lead.getUnlocalizedName()); - GameRegistry.registerBlock(ore_oil, ItemBlockLore.class, ore_oil.getUnlocalizedName()); - GameRegistry.registerBlock(ore_oil_empty, ore_oil_empty.getUnlocalizedName()); - GameRegistry.registerBlock(ore_oil_sand, ore_oil_sand.getUnlocalizedName()); - GameRegistry.registerBlock(ore_lignite, ore_lignite.getUnlocalizedName()); - GameRegistry.registerBlock(ore_asbestos, ore_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(ore_schrabidium, ItemBlockLore.class, ore_schrabidium.getUnlocalizedName()); - - //Rare Minerals - GameRegistry.registerBlock(ore_australium, ItemOreBlock.class, ore_australium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_weidanium, ItemOreBlock.class, ore_weidanium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_reiium, ItemOreBlock.class, ore_reiium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_unobtainium, ItemOreBlock.class, ore_unobtainium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_daffergon, ItemOreBlock.class, ore_daffergon.getUnlocalizedName()); - GameRegistry.registerBlock(ore_verticium, ItemOreBlock.class, ore_verticium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_rare, ItemOreBlock.class, ore_rare.getUnlocalizedName()); - GameRegistry.registerBlock(ore_cobalt, ore_cobalt.getUnlocalizedName()); - GameRegistry.registerBlock(ore_cinnebar, ore_cinnebar.getUnlocalizedName()); - GameRegistry.registerBlock(ore_coltan, ore_coltan.getUnlocalizedName()); - - //Stone clusters - GameRegistry.registerBlock(cluster_iron, ItemBlockBase.class, cluster_iron.getUnlocalizedName()); - GameRegistry.registerBlock(cluster_titanium, ItemBlockBase.class, cluster_titanium.getUnlocalizedName()); - GameRegistry.registerBlock(cluster_aluminium, ItemBlockBase.class, cluster_aluminium.getUnlocalizedName()); - GameRegistry.registerBlock(cluster_copper, ItemBlockBase.class, cluster_copper.getUnlocalizedName()); - - //Bedrock ores - GameRegistry.registerBlock(ore_bedrock_coltan, ore_bedrock_coltan.getUnlocalizedName()); - GameRegistry.registerBlock(ore_bedrock_oil, ore_bedrock_oil.getUnlocalizedName()); - - //Nice Meme - GameRegistry.registerBlock(ore_coal_oil, ore_coal_oil.getUnlocalizedName()); - GameRegistry.registerBlock(ore_coal_oil_burning, ore_coal_oil_burning.getUnlocalizedName()); - - //Nether Ores - GameRegistry.registerBlock(ore_nether_coal, ore_nether_coal.getUnlocalizedName()); - GameRegistry.registerBlock(ore_nether_smoldering, ore_nether_smoldering.getUnlocalizedName()); - GameRegistry.registerBlock(ore_nether_uranium, ore_nether_uranium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_nether_uranium_scorched, ore_nether_uranium_scorched.getUnlocalizedName()); - GameRegistry.registerBlock(ore_nether_plutonium, ore_nether_plutonium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_nether_tungsten, ore_nether_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(ore_nether_sulfur, ore_nether_sulfur.getUnlocalizedName()); - GameRegistry.registerBlock(ore_nether_fire, ore_nether_fire.getUnlocalizedName()); - GameRegistry.registerBlock(ore_nether_cobalt, ore_nether_cobalt.getUnlocalizedName()); - GameRegistry.registerBlock(ore_nether_schrabidium, ItemBlockLore.class, ore_nether_schrabidium.getUnlocalizedName()); - - //Meteor Ores - GameRegistry.registerBlock(ore_meteor_uranium, ore_meteor_uranium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_thorium, ore_meteor_thorium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_titanium, ore_meteor_titanium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_sulfur, ore_meteor_sulfur.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_copper, ore_meteor_copper.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_tungsten, ore_meteor_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_aluminium, ore_meteor_aluminium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_lead, ore_meteor_lead.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_lithium, ore_meteor_lithium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_meteor_starmetal, ore_meteor_starmetal.getUnlocalizedName()); - - //Gneiss Ores - GameRegistry.registerBlock(ore_gneiss_iron, ore_gneiss_iron.getUnlocalizedName()); - GameRegistry.registerBlock(ore_gneiss_gold, ore_gneiss_gold.getUnlocalizedName()); - GameRegistry.registerBlock(ore_gneiss_uranium, ore_gneiss_uranium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_gneiss_uranium_scorched, ore_gneiss_uranium_scorched.getUnlocalizedName()); - GameRegistry.registerBlock(ore_gneiss_copper, ore_gneiss_copper.getUnlocalizedName()); - GameRegistry.registerBlock(ore_gneiss_asbestos, ore_gneiss_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(ore_gneiss_lithium, ore_gneiss_lithium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_gneiss_schrabidium, ItemBlockLore.class, ore_gneiss_schrabidium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_gneiss_rare, ItemOreBlock.class, ore_gneiss_rare.getUnlocalizedName()); - GameRegistry.registerBlock(ore_gneiss_gas, ore_gneiss_gas.getUnlocalizedName()); - - //Depth ores - GameRegistry.registerBlock(ore_depth_cinnebar, ItemBlockBase.class, ore_depth_cinnebar.getUnlocalizedName()); - GameRegistry.registerBlock(ore_depth_zirconium, ItemBlockBase.class, ore_depth_zirconium.getUnlocalizedName()); - GameRegistry.registerBlock(ore_depth_borax, ItemBlockBase.class, ore_depth_borax.getUnlocalizedName()); - GameRegistry.registerBlock(cluster_depth_iron, ItemBlockBase.class, cluster_depth_iron.getUnlocalizedName()); - GameRegistry.registerBlock(cluster_depth_titanium, ItemBlockBase.class, cluster_depth_titanium.getUnlocalizedName()); - GameRegistry.registerBlock(cluster_depth_tungsten, ItemBlockBase.class, cluster_depth_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(ore_alexandrite, ItemBlockBase.class, ore_alexandrite.getUnlocalizedName()); - - //Nether depth ores - GameRegistry.registerBlock(ore_depth_nether_neodymium, ItemBlockBase.class, ore_depth_nether_neodymium.getUnlocalizedName()); - - //Basalt ores - GameRegistry.registerBlock(basalt_sulfur, basalt_sulfur.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_fluorite, basalt_fluorite.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_asbestos, basalt_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_gem, ItemBlockBase.class, basalt_gem.getUnlocalizedName()); - - //End Ores - GameRegistry.registerBlock(ore_tikite, ore_tikite.getUnlocalizedName()); - - //It's a meme you dip - GameRegistry.registerBlock(ore_random, ItemRandomOreBlock.class, ore_random.getUnlocalizedName()); - - //Bedrock ore - register(ore_bedrock); - register(ore_volcano); - - //Crystals - GameRegistry.registerBlock(crystal_power, crystal_power.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_energy, crystal_energy.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_robust, crystal_robust.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_trixite, crystal_trixite.getUnlocalizedName()); - - //Resource-bearing Stones - register(stone_resource); - register(stalagmite); - register(stalactite); - register(stone_biome); - - //Stone Variants - GameRegistry.registerBlock(stone_porous, stone_porous.getUnlocalizedName()); - GameRegistry.registerBlock(stone_gneiss, stone_gneiss.getUnlocalizedName()); - GameRegistry.registerBlock(gneiss_brick, gneiss_brick.getUnlocalizedName()); - GameRegistry.registerBlock(gneiss_tile, gneiss_tile.getUnlocalizedName()); - GameRegistry.registerBlock(gneiss_chiseled, gneiss_chiseled.getUnlocalizedName()); - GameRegistry.registerBlock(stone_depth, ItemBlockBase.class, stone_depth.getUnlocalizedName()); - GameRegistry.registerBlock(depth_brick, ItemBlockBase.class, depth_brick.getUnlocalizedName()); - GameRegistry.registerBlock(depth_tiles, ItemBlockBase.class, depth_tiles.getUnlocalizedName()); - GameRegistry.registerBlock(stone_depth_nether, ItemBlockBase.class, stone_depth_nether.getUnlocalizedName()); - GameRegistry.registerBlock(depth_nether_brick, ItemBlockBase.class, depth_nether_brick.getUnlocalizedName()); - GameRegistry.registerBlock(depth_nether_tiles, ItemBlockBase.class, depth_nether_tiles.getUnlocalizedName()); - GameRegistry.registerBlock(depth_dnt, ItemBlockBase.class, depth_dnt.getUnlocalizedName()); - GameRegistry.registerBlock(basalt, basalt.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_smooth, basalt_smooth.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_brick, basalt_brick.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_polished, basalt_polished.getUnlocalizedName()); - GameRegistry.registerBlock(basalt_tiles, basalt_tiles.getUnlocalizedName()); - //GameRegistry.registerBlock(stone_deep_cobble, ItemBlockBase.class, stone_deep_cobble.getUnlocalizedName()); - - //Blocks - GameRegistry.registerBlock(block_uranium, block_uranium.getUnlocalizedName()); - GameRegistry.registerBlock(block_u233, block_u233.getUnlocalizedName()); - GameRegistry.registerBlock(block_u235, block_u235.getUnlocalizedName()); - GameRegistry.registerBlock(block_u238, block_u238.getUnlocalizedName()); - GameRegistry.registerBlock(block_uranium_fuel, block_uranium_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(block_neptunium, block_neptunium.getUnlocalizedName()); - GameRegistry.registerBlock(block_polonium, block_polonium.getUnlocalizedName()); - GameRegistry.registerBlock(block_mox_fuel, block_mox_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(block_plutonium, block_plutonium.getUnlocalizedName()); - GameRegistry.registerBlock(block_pu238, block_pu238.getUnlocalizedName()); - GameRegistry.registerBlock(block_pu239, block_pu239.getUnlocalizedName()); - GameRegistry.registerBlock(block_pu240, block_pu240.getUnlocalizedName()); - GameRegistry.registerBlock(block_pu_mix, block_pu_mix.getUnlocalizedName()); - GameRegistry.registerBlock(block_plutonium_fuel, block_plutonium_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(block_thorium, block_thorium.getUnlocalizedName()); - GameRegistry.registerBlock(block_thorium_fuel, block_thorium_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(block_titanium, block_titanium.getUnlocalizedName()); - GameRegistry.registerBlock(block_sulfur, block_sulfur.getUnlocalizedName()); - GameRegistry.registerBlock(block_niter, block_niter.getUnlocalizedName()); - GameRegistry.registerBlock(block_niter_reinforced, block_niter_reinforced.getUnlocalizedName()); - GameRegistry.registerBlock(block_copper, block_copper.getUnlocalizedName()); - GameRegistry.registerBlock(block_red_copper, block_red_copper.getUnlocalizedName()); - GameRegistry.registerBlock(block_advanced_alloy, block_advanced_alloy.getUnlocalizedName()); - GameRegistry.registerBlock(block_tungsten, block_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(block_aluminium, block_aluminium.getUnlocalizedName()); - GameRegistry.registerBlock(block_fluorite, block_fluorite.getUnlocalizedName()); - GameRegistry.registerBlock(block_beryllium, block_beryllium.getUnlocalizedName()); - GameRegistry.registerBlock(block_cobalt, block_cobalt.getUnlocalizedName()); - GameRegistry.registerBlock(block_steel, block_steel.getUnlocalizedName()); - GameRegistry.registerBlock(block_tcalloy, block_tcalloy.getUnlocalizedName()); - GameRegistry.registerBlock(block_cdalloy, block_cdalloy.getUnlocalizedName()); - GameRegistry.registerBlock(block_lead, block_lead.getUnlocalizedName()); - GameRegistry.registerBlock(block_bismuth, block_bismuth.getUnlocalizedName()); - GameRegistry.registerBlock(block_cadmium, block_cadmium.getUnlocalizedName()); - GameRegistry.registerBlock(block_coltan, block_coltan.getUnlocalizedName()); - GameRegistry.registerBlock(block_tantalium, block_tantalium.getUnlocalizedName()); - GameRegistry.registerBlock(block_niobium, block_niobium.getUnlocalizedName()); - GameRegistry.registerBlock(block_lithium, block_lithium.getUnlocalizedName()); - GameRegistry.registerBlock(block_zirconium, block_zirconium.getUnlocalizedName()); - GameRegistry.registerBlock(block_white_phosphorus, block_white_phosphorus.getUnlocalizedName()); - GameRegistry.registerBlock(block_red_phosphorus, block_red_phosphorus.getUnlocalizedName()); - GameRegistry.registerBlock(block_yellowcake, block_yellowcake.getUnlocalizedName()); - GameRegistry.registerBlock(block_scrap, block_scrap.getUnlocalizedName()); - GameRegistry.registerBlock(block_electrical_scrap, block_electrical_scrap.getUnlocalizedName()); - GameRegistry.registerBlock(block_fallout, block_fallout.getUnlocalizedName()); - GameRegistry.registerBlock(block_foam, block_foam.getUnlocalizedName()); - GameRegistry.registerBlock(block_graphite, block_graphite.getUnlocalizedName()); - register(block_coke); - GameRegistry.registerBlock(block_graphite_drilled, block_graphite_drilled.getUnlocalizedName()); - GameRegistry.registerBlock(block_graphite_fuel, block_graphite_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(block_graphite_rod, block_graphite_rod.getUnlocalizedName()); - GameRegistry.registerBlock(block_graphite_plutonium, block_graphite_plutonium.getUnlocalizedName()); - GameRegistry.registerBlock(block_graphite_source, block_graphite_source.getUnlocalizedName()); - GameRegistry.registerBlock(block_graphite_lithium, block_graphite_lithium.getUnlocalizedName()); - GameRegistry.registerBlock(block_graphite_tritium, block_graphite_tritium.getUnlocalizedName()); - GameRegistry.registerBlock(block_graphite_detector, block_graphite_detector.getUnlocalizedName()); - GameRegistry.registerBlock(block_boron, block_boron.getUnlocalizedName()); - GameRegistry.registerBlock(block_insulator, block_insulator.getUnlocalizedName()); - GameRegistry.registerBlock(block_fiberglass, block_fiberglass.getUnlocalizedName()); - GameRegistry.registerBlock(block_asbestos, block_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(block_trinitite, block_trinitite.getUnlocalizedName()); - GameRegistry.registerBlock(block_waste, block_waste.getUnlocalizedName()); - GameRegistry.registerBlock(block_waste_painted, block_waste_painted.getUnlocalizedName()); - GameRegistry.registerBlock(block_waste_vitrified, block_waste_vitrified.getUnlocalizedName()); - GameRegistry.registerBlock(ancient_scrap, ancient_scrap.getUnlocalizedName()); - GameRegistry.registerBlock(block_corium, block_corium.getUnlocalizedName()); - GameRegistry.registerBlock(block_corium_cobble, block_corium_cobble.getUnlocalizedName()); - GameRegistry.registerBlock(block_schraranium, ItemBlockBase.class, block_schraranium.getUnlocalizedName()); - GameRegistry.registerBlock(block_schrabidium, ItemBlockBase.class, block_schrabidium.getUnlocalizedName()); - GameRegistry.registerBlock(block_schrabidate, ItemBlockBase.class, block_schrabidate.getUnlocalizedName()); - GameRegistry.registerBlock(block_solinium, ItemBlockBase.class, block_solinium.getUnlocalizedName()); - GameRegistry.registerBlock(block_schrabidium_fuel, ItemBlockBase.class, block_schrabidium_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(block_euphemium, ItemBlockLore.class, block_euphemium.getUnlocalizedName()); - GameRegistry.registerBlock(block_schrabidium_cluster, ItemBlockBase.class, block_schrabidium_cluster.getUnlocalizedName()); - GameRegistry.registerBlock(block_euphemium_cluster, ItemBlockLore.class, block_euphemium_cluster.getUnlocalizedName()); - GameRegistry.registerBlock(block_dineutronium, block_dineutronium.getUnlocalizedName()); - GameRegistry.registerBlock(block_magnetized_tungsten, block_magnetized_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(block_combine_steel, block_combine_steel.getUnlocalizedName()); - GameRegistry.registerBlock(block_desh, block_desh.getUnlocalizedName()); - GameRegistry.registerBlock(block_dura_steel, block_dura_steel.getUnlocalizedName()); - GameRegistry.registerBlock(block_starmetal, block_starmetal.getUnlocalizedName()); - GameRegistry.registerBlock(block_polymer, block_polymer.getUnlocalizedName()); - GameRegistry.registerBlock(block_bakelite, block_bakelite.getUnlocalizedName()); - GameRegistry.registerBlock(block_rubber, block_rubber.getUnlocalizedName()); - GameRegistry.registerBlock(block_australium, ItemOreBlock.class, block_australium.getUnlocalizedName()); - GameRegistry.registerBlock(block_weidanium, ItemOreBlock.class, block_weidanium.getUnlocalizedName()); - GameRegistry.registerBlock(block_reiium, ItemOreBlock.class, block_reiium.getUnlocalizedName()); - GameRegistry.registerBlock(block_unobtainium, ItemOreBlock.class, block_unobtainium.getUnlocalizedName()); - GameRegistry.registerBlock(block_daffergon, ItemOreBlock.class, block_daffergon.getUnlocalizedName()); - GameRegistry.registerBlock(block_verticium, ItemOreBlock.class, block_verticium.getUnlocalizedName()); - GameRegistry.registerBlock(block_lanthanium, block_lanthanium.getUnlocalizedName()); - GameRegistry.registerBlock(block_ra226, block_ra226.getUnlocalizedName()); - GameRegistry.registerBlock(block_actinium, block_actinium.getUnlocalizedName()); - GameRegistry.registerBlock(block_tritium, block_tritium.getUnlocalizedName()); - GameRegistry.registerBlock(block_semtex, block_semtex.getUnlocalizedName()); - GameRegistry.registerBlock(block_c4, block_c4.getUnlocalizedName()); - GameRegistry.registerBlock(block_smore, block_smore.getUnlocalizedName()); - GameRegistry.registerBlock(block_slag, block_slag.getUnlocalizedName()); - - //Bottlecap Blocks - GameRegistry.registerBlock(block_cap_nuka, block_cap_nuka.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_quantum, block_cap_quantum.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_rad, block_cap_rad.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_sparkle, block_cap_sparkle.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_korl, block_cap_korl.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_fritz, block_cap_fritz.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_sunset, block_cap_sunset.getUnlocalizedName()); - GameRegistry.registerBlock(block_cap_star, block_cap_star.getUnlocalizedName()); - - //Deco Blocks - GameRegistry.registerBlock(deco_titanium, deco_titanium.getUnlocalizedName()); - GameRegistry.registerBlock(deco_red_copper, deco_red_copper.getUnlocalizedName()); - GameRegistry.registerBlock(deco_tungsten, deco_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(deco_aluminium, deco_aluminium.getUnlocalizedName()); - GameRegistry.registerBlock(deco_steel, deco_steel.getUnlocalizedName()); - GameRegistry.registerBlock(deco_lead, deco_lead.getUnlocalizedName()); - GameRegistry.registerBlock(deco_beryllium, deco_beryllium.getUnlocalizedName()); - GameRegistry.registerBlock(deco_asbestos, deco_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(deco_emitter, ItemBlockBase.class, deco_emitter.getUnlocalizedName()); - GameRegistry.registerBlock(part_emitter, ItemBlockBase.class, part_emitter.getUnlocalizedName()); - GameRegistry.registerBlock(deco_loot, deco_loot.getUnlocalizedName()); - GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); - GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName()); - GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName()); - GameRegistry.registerBlock(deco_rbmk, deco_rbmk.getUnlocalizedName()); - GameRegistry.registerBlock(deco_rbmk_smooth, deco_rbmk_smooth.getUnlocalizedName()); - - //Gravel - GameRegistry.registerBlock(gravel_obsidian, ItemBlockBlastInfo.class, gravel_obsidian.getUnlocalizedName()); - GameRegistry.registerBlock(gravel_diamond, ItemBlockLore.class, gravel_diamond.getUnlocalizedName()); - - //Lamps - GameRegistry.registerBlock(lamp_tritium_green_off, lamp_tritium_green_off.getUnlocalizedName()); - GameRegistry.registerBlock(lamp_tritium_green_on, lamp_tritium_green_on.getUnlocalizedName()); - GameRegistry.registerBlock(lamp_tritium_blue_off, lamp_tritium_blue_off.getUnlocalizedName()); - GameRegistry.registerBlock(lamp_tritium_blue_on, lamp_tritium_blue_on.getUnlocalizedName()); - GameRegistry.registerBlock(lamp_uv_off, lamp_uv_off.getUnlocalizedName()); - GameRegistry.registerBlock(lamp_uv_on, lamp_uv_on.getUnlocalizedName()); - GameRegistry.registerBlock(lamp_demon, lamp_demon.getUnlocalizedName()); - - //Reinforced Blocks - GameRegistry.registerBlock(asphalt, ItemBlockBlastInfo.class, asphalt.getUnlocalizedName()); - GameRegistry.registerBlock(asphalt_light, ItemBlockBlastInfo.class, asphalt_light.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_brick, ItemBlockBlastInfo.class, reinforced_brick.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_glass, ItemBlockBlastInfo.class, reinforced_glass.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_glass_pane, ItemBlockBlastInfo.class, reinforced_glass_pane.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_light, ItemBlockBlastInfo.class, reinforced_light.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_sand, ItemBlockBlastInfo.class, reinforced_sand.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_lamp_off, ItemBlockBlastInfo.class, reinforced_lamp_off.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_lamp_on, ItemBlockBlastInfo.class, reinforced_lamp_on.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_laminate, ItemBlockBlastInfo.class, reinforced_laminate.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_laminate_pane,ItemBlockBlastInfo.class, reinforced_laminate_pane.getUnlocalizedName()); - - //Bricks - GameRegistry.registerBlock(reinforced_stone, ItemBlockBlastInfo.class, reinforced_stone.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_ducrete, ItemBlockBlastInfo.class, reinforced_ducrete.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_smooth, ItemBlockBlastInfo.class, concrete_smooth.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_colored, ItemBlockColoredConcrete.class, concrete_colored.getUnlocalizedName()); - register(concrete_colored_ext); - GameRegistry.registerBlock(concrete, ItemBlockBlastInfo.class, concrete.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_asbestos, ItemBlockBlastInfo.class, concrete_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_super, ItemBlockBlastInfo.class, concrete_super.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_super_broken, ItemBlockBlastInfo.class, concrete_super_broken.getUnlocalizedName()); - GameRegistry.registerBlock(ducrete_smooth, ItemBlockBlastInfo.class, ducrete_smooth.getUnlocalizedName()); - GameRegistry.registerBlock(ducrete, ItemBlockBlastInfo.class, ducrete.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_pillar, ItemBlockBlastInfo.class, concrete_pillar.getUnlocalizedName()); - GameRegistry.registerBlock(brick_concrete, ItemBlockBlastInfo.class, brick_concrete.getUnlocalizedName()); - GameRegistry.registerBlock(brick_concrete_mossy, ItemBlockBlastInfo.class, brick_concrete_mossy.getUnlocalizedName()); - GameRegistry.registerBlock(brick_concrete_cracked, ItemBlockBlastInfo.class, brick_concrete_cracked.getUnlocalizedName()); - GameRegistry.registerBlock(brick_concrete_broken, ItemBlockBlastInfo.class, brick_concrete_broken.getUnlocalizedName()); - GameRegistry.registerBlock(brick_concrete_marked, ItemBlockBlastInfo.class, brick_concrete_marked.getUnlocalizedName()); - GameRegistry.registerBlock(brick_ducrete, ItemBlockBlastInfo.class, brick_ducrete.getUnlocalizedName()); - GameRegistry.registerBlock(brick_obsidian, ItemBlockBlastInfo.class, brick_obsidian.getUnlocalizedName()); - GameRegistry.registerBlock(brick_compound, ItemBlockBlastInfo.class, brick_compound.getUnlocalizedName()); - GameRegistry.registerBlock(brick_light, ItemBlockBlastInfo.class, brick_light.getUnlocalizedName()); - GameRegistry.registerBlock(brick_asbestos, brick_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(brick_fire, ItemBlockBlastInfo.class, brick_fire.getUnlocalizedName()); - - GameRegistry.registerBlock(concrete_slab, ItemModSlab.class, concrete_slab.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_double_slab, ItemModSlab.class, concrete_double_slab.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_brick_slab, ItemModSlab.class, concrete_brick_slab.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_brick_double_slab, ItemModSlab.class, concrete_brick_double_slab.getUnlocalizedName()); - GameRegistry.registerBlock(brick_slab, ItemModSlab.class, brick_slab.getUnlocalizedName()); - GameRegistry.registerBlock(brick_double_slab, ItemModSlab.class, brick_double_slab.getUnlocalizedName()); - - GameRegistry.registerBlock(concrete_smooth_stairs, concrete_smooth_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_stairs, concrete_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(concrete_asbestos_stairs, concrete_asbestos_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(ducrete_smooth_stairs, ducrete_smooth_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_concrete_stairs, brick_concrete_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_concrete_mossy_stairs, brick_concrete_mossy_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_concrete_cracked_stairs, brick_concrete_cracked_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_concrete_broken_stairs, brick_concrete_broken_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_ducrete_stairs, brick_ducrete_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_stone_stairs, reinforced_stone_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(reinforced_brick_stairs, reinforced_brick_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_obsidian_stairs, brick_obsidian_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_light_stairs, brick_light_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_compound_stairs, brick_compound_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_asbestos_stairs, brick_asbestos_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(brick_fire_stairs, brick_fire_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(ducrete_stairs, ducrete_stairs.getUnlocalizedName()); - - //CMB Building Elements - GameRegistry.registerBlock(cmb_brick, ItemBlockBlastInfo.class, cmb_brick.getUnlocalizedName()); - GameRegistry.registerBlock(cmb_brick_reinforced, ItemBlockBlastInfo.class, cmb_brick_reinforced.getUnlocalizedName()); - - //Tiles - GameRegistry.registerBlock(vinyl_tile, ItemBlockBlastInfo.class, vinyl_tile.getUnlocalizedName()); //i would rather die than dip into fucking blocks with subtypes again - - GameRegistry.registerBlock(tile_lab, tile_lab.getUnlocalizedName()); - GameRegistry.registerBlock(tile_lab_cracked, tile_lab_cracked.getUnlocalizedName()); - GameRegistry.registerBlock(tile_lab_broken, tile_lab_broken.getUnlocalizedName()); - - //Other defensive stuff - GameRegistry.registerBlock(barbed_wire, barbed_wire.getUnlocalizedName()); - GameRegistry.registerBlock(barbed_wire_fire, barbed_wire_fire.getUnlocalizedName()); - GameRegistry.registerBlock(barbed_wire_poison, barbed_wire_poison.getUnlocalizedName()); - GameRegistry.registerBlock(barbed_wire_acid, barbed_wire_acid.getUnlocalizedName()); - GameRegistry.registerBlock(barbed_wire_wither, barbed_wire_wither.getUnlocalizedName()); - GameRegistry.registerBlock(barbed_wire_ultradeath, barbed_wire_ultradeath.getUnlocalizedName()); - GameRegistry.registerBlock(spikes, spikes.getUnlocalizedName()); - GameRegistry.registerBlock(tesla, tesla.getUnlocalizedName()); - - //Charger - GameRegistry.registerBlock(charger, charger.getUnlocalizedName()); - - //Siege blocks - GameRegistry.registerBlock(siege_shield, ItemBlockLore.class, siege_shield.getUnlocalizedName()); - GameRegistry.registerBlock(siege_internal, ItemBlockLore.class, siege_internal.getUnlocalizedName()); - GameRegistry.registerBlock(siege_circuit, ItemBlockLore.class, siege_circuit.getUnlocalizedName()); - GameRegistry.registerBlock(siege_emergency, siege_emergency.getUnlocalizedName()); - GameRegistry.registerBlock(siege_hole, siege_hole.getUnlocalizedName()); - - //Decoration Blocks - GameRegistry.registerBlock(block_meteor, block_meteor.getUnlocalizedName()); - GameRegistry.registerBlock(block_meteor_cobble, block_meteor_cobble.getUnlocalizedName()); - GameRegistry.registerBlock(block_meteor_broken, block_meteor_broken.getUnlocalizedName()); - GameRegistry.registerBlock(block_meteor_molten, block_meteor_molten.getUnlocalizedName()); - GameRegistry.registerBlock(block_meteor_treasure, block_meteor_treasure.getUnlocalizedName()); - GameRegistry.registerBlock(meteor_polished, meteor_polished.getUnlocalizedName()); - GameRegistry.registerBlock(meteor_brick, meteor_brick.getUnlocalizedName()); - GameRegistry.registerBlock(meteor_brick_mossy, meteor_brick_mossy.getUnlocalizedName()); - GameRegistry.registerBlock(meteor_brick_cracked, meteor_brick_cracked.getUnlocalizedName()); - GameRegistry.registerBlock(meteor_brick_chiseled, meteor_brick_chiseled.getUnlocalizedName()); - GameRegistry.registerBlock(meteor_pillar, meteor_pillar.getUnlocalizedName()); - GameRegistry.registerBlock(meteor_spawner, meteor_spawner.getUnlocalizedName()); - GameRegistry.registerBlock(meteor_battery, ItemBlockLore.class, meteor_battery.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle, brick_jungle.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle_cracked, brick_jungle_cracked.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle_fragile, brick_jungle_fragile.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle_lava, brick_jungle_lava.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle_ooze, brick_jungle_ooze.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle_mystic, brick_jungle_mystic.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle_trap, ItemTrapBlock.class, brick_jungle_trap.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle_glyph, ItemGlyphBlock.class, brick_jungle_glyph.getUnlocalizedName()); - GameRegistry.registerBlock(brick_jungle_circle, brick_jungle_circle.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon, brick_dungeon.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon_flat, brick_dungeon_flat.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon_tile, brick_dungeon_tile.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon_circle, brick_dungeon_circle.getUnlocalizedName()); - GameRegistry.registerBlock(brick_forgotten, brick_forgotten.getUnlocalizedName()); - GameRegistry.registerBlock(deco_computer, ItemBlockBase.class, deco_computer.getUnlocalizedName()); - GameRegistry.registerBlock(filing_cabinet, ItemBlockBase.class, filing_cabinet.getUnlocalizedName()); - GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName()); - GameRegistry.registerBlock(steel_poles, steel_poles.getUnlocalizedName()); - GameRegistry.registerBlock(pole_top, pole_top.getUnlocalizedName()); - GameRegistry.registerBlock(pole_satellite_receiver, pole_satellite_receiver.getUnlocalizedName()); - GameRegistry.registerBlock(steel_wall, steel_wall.getUnlocalizedName()); - GameRegistry.registerBlock(steel_corner, steel_corner.getUnlocalizedName()); - GameRegistry.registerBlock(steel_roof, steel_roof.getUnlocalizedName()); - GameRegistry.registerBlock(steel_beam, steel_beam.getUnlocalizedName()); - register(steel_scaffold); - GameRegistry.registerBlock(steel_grate, steel_grate.getUnlocalizedName()); - register(steel_grate_wide); - GameRegistry.registerBlock(deco_pipe, ItemBlockBase.class, deco_pipe.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rusted, ItemBlockBase.class, deco_pipe_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_green, ItemBlockBase.class, deco_pipe_green.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_green_rusted, ItemBlockBase.class, deco_pipe_green_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_red, ItemBlockBase.class, deco_pipe_red.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_marked, ItemBlockBase.class, deco_pipe_marked.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim, ItemBlockBase.class, deco_pipe_rim.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim_rusted, ItemBlockBase.class, deco_pipe_rim_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim_green, ItemBlockBase.class, deco_pipe_rim_green.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim_green_rusted, ItemBlockBase.class, deco_pipe_rim_green_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim_red, ItemBlockBase.class, deco_pipe_rim_red.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim_marked, ItemBlockBase.class, deco_pipe_rim_marked.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_framed, ItemBlockBase.class, deco_pipe_framed.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_framed_rusted, ItemBlockBase.class, deco_pipe_framed_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_framed_green, ItemBlockBase.class, deco_pipe_framed_green.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_framed_green_rusted, ItemBlockBase.class, deco_pipe_framed_green_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_framed_red, ItemBlockBase.class, deco_pipe_framed_red.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_framed_marked, ItemBlockBase.class, deco_pipe_framed_marked.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad, ItemBlockBase.class, deco_pipe_quad.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad_rusted, ItemBlockBase.class, deco_pipe_quad_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad_green, ItemBlockBase.class, deco_pipe_quad_green.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad_green_rusted, ItemBlockBase.class, deco_pipe_quad_green_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockBase.class, deco_pipe_quad_red.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockBase.class, deco_pipe_quad_marked.getUnlocalizedName()); - register(plant_flower); - register(plant_tall); - register(plant_dead); - register(reeds); - register(vine_phosphor); - GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); - GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); - GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); - GameRegistry.registerBlock(glyphid_base, glyphid_base.getUnlocalizedName()); - GameRegistry.registerBlock(glyphid_spawner, glyphid_spawner.getUnlocalizedName()); - GameRegistry.registerBlock(moon_turf, moon_turf.getUnlocalizedName()); - - //Waste - GameRegistry.registerBlock(waste_earth, waste_earth.getUnlocalizedName()); - GameRegistry.registerBlock(waste_mycelium, waste_mycelium.getUnlocalizedName()); - GameRegistry.registerBlock(waste_trinitite, waste_trinitite.getUnlocalizedName()); - GameRegistry.registerBlock(waste_trinitite_red, waste_trinitite_red.getUnlocalizedName()); - GameRegistry.registerBlock(waste_log, waste_log.getUnlocalizedName()); - GameRegistry.registerBlock(waste_leaves, waste_leaves.getUnlocalizedName()); - GameRegistry.registerBlock(waste_planks, waste_planks.getUnlocalizedName()); - GameRegistry.registerBlock(frozen_grass, frozen_grass.getUnlocalizedName()); - GameRegistry.registerBlock(frozen_dirt, frozen_dirt.getUnlocalizedName()); - GameRegistry.registerBlock(frozen_log, frozen_log.getUnlocalizedName()); - GameRegistry.registerBlock(frozen_planks, frozen_planks.getUnlocalizedName()); - GameRegistry.registerBlock(dirt_dead, dirt_dead.getUnlocalizedName()); - GameRegistry.registerBlock(dirt_oily, dirt_oily.getUnlocalizedName()); - GameRegistry.registerBlock(sand_dirty, sand_dirty.getUnlocalizedName()); - GameRegistry.registerBlock(sand_dirty_red, sand_dirty_red.getUnlocalizedName()); - GameRegistry.registerBlock(stone_cracked, stone_cracked.getUnlocalizedName()); - GameRegistry.registerBlock(fallout, fallout.getUnlocalizedName()); - GameRegistry.registerBlock(foam_layer, foam_layer.getUnlocalizedName()); - GameRegistry.registerBlock(sand_boron_layer, sand_boron_layer.getUnlocalizedName()); - GameRegistry.registerBlock(leaves_layer, leaves_layer.getUnlocalizedName()); - GameRegistry.registerBlock(burning_earth, burning_earth.getUnlocalizedName()); - GameRegistry.registerBlock(tektite, tektite.getUnlocalizedName()); - GameRegistry.registerBlock(ore_tektite_osmiridium, ore_tektite_osmiridium.getUnlocalizedName()); - GameRegistry.registerBlock(impact_dirt, impact_dirt.getUnlocalizedName()); - - //RAD - GameRegistry.registerBlock(sellafield_slaked, sellafield_slaked.getUnlocalizedName()); - GameRegistry.registerBlock(sellafield, ItemBlockNamedMeta.class, sellafield.getUnlocalizedName()); - - //Geysirs - GameRegistry.registerBlock(geysir_water, geysir_water.getUnlocalizedName()); - GameRegistry.registerBlock(geysir_chlorine, geysir_chlorine.getUnlocalizedName()); - GameRegistry.registerBlock(geysir_vapor, geysir_vapor.getUnlocalizedName()); - GameRegistry.registerBlock(geysir_nether, geysir_nether.getUnlocalizedName()); - - //Nukes - GameRegistry.registerBlock(nuke_gadget, nuke_gadget.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_boy, nuke_boy.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_man, nuke_man.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_mike, nuke_mike.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_tsar, nuke_tsar.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_prototype, ItemPrototypeBlock.class, nuke_prototype.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_fleija, nuke_fleija.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_solinium, nuke_solinium.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_n2, nuke_n2.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_n45, nuke_n45.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_fstbmb, nuke_fstbmb.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_custom, nuke_custom.getUnlocalizedName()); - - //Generic Bombs - GameRegistry.registerBlock(bomb_multi, bomb_multi.getUnlocalizedName()); - GameRegistry.registerBlock(crashed_balefire, crashed_balefire.getUnlocalizedName()); - GameRegistry.registerBlock(fireworks, fireworks.getUnlocalizedName()); - GameRegistry.registerBlock(dynamite, dynamite.getUnlocalizedName()); - GameRegistry.registerBlock(tnt, tnt.getUnlocalizedName()); - GameRegistry.registerBlock(semtex, semtex.getUnlocalizedName()); - GameRegistry.registerBlock(c4, c4.getUnlocalizedName()); - register(fissure_bomb); - - //Turrets - GameRegistry.registerBlock(turret_chekhov, turret_chekhov.getUnlocalizedName()); - GameRegistry.registerBlock(turret_friendly, turret_friendly.getUnlocalizedName()); - GameRegistry.registerBlock(turret_jeremy, turret_jeremy.getUnlocalizedName()); - GameRegistry.registerBlock(turret_tauon, turret_tauon.getUnlocalizedName()); - GameRegistry.registerBlock(turret_richard, turret_richard.getUnlocalizedName()); - GameRegistry.registerBlock(turret_howard, turret_howard.getUnlocalizedName()); - GameRegistry.registerBlock(turret_howard_damaged, turret_howard_damaged.getUnlocalizedName()); - GameRegistry.registerBlock(turret_maxwell, turret_maxwell.getUnlocalizedName()); - GameRegistry.registerBlock(turret_fritz, turret_fritz.getUnlocalizedName()); - GameRegistry.registerBlock(turret_brandon, turret_brandon.getUnlocalizedName()); - GameRegistry.registerBlock(turret_arty, turret_arty.getUnlocalizedName()); - GameRegistry.registerBlock(turret_himars, turret_himars.getUnlocalizedName()); - GameRegistry.registerBlock(turret_sentry, turret_sentry.getUnlocalizedName()); - - //Wall-mounted Explosives - GameRegistry.registerBlock(charge_dynamite, ItemBlockBase.class, charge_dynamite.getUnlocalizedName()); - GameRegistry.registerBlock(charge_miner, ItemBlockBase.class, charge_miner.getUnlocalizedName()); - GameRegistry.registerBlock(charge_c4, ItemBlockBase.class, charge_c4.getUnlocalizedName()); - GameRegistry.registerBlock(charge_semtex, ItemBlockBase.class, charge_semtex.getUnlocalizedName()); - - //Mines - GameRegistry.registerBlock(mine_ap, mine_ap.getUnlocalizedName()); - GameRegistry.registerBlock(mine_he, mine_he.getUnlocalizedName()); - GameRegistry.registerBlock(mine_shrap, mine_shrap.getUnlocalizedName()); - GameRegistry.registerBlock(mine_fat, mine_fat.getUnlocalizedName()); - - //Block Bombs - GameRegistry.registerBlock(flame_war, flame_war.getUnlocalizedName()); - GameRegistry.registerBlock(float_bomb, float_bomb.getUnlocalizedName()); - GameRegistry.registerBlock(therm_endo, therm_endo.getUnlocalizedName()); - GameRegistry.registerBlock(therm_exo, therm_exo.getUnlocalizedName()); - GameRegistry.registerBlock(emp_bomb, emp_bomb.getUnlocalizedName()); - //GameRegistry.registerBlock(rejuvinator, rejuvinator.getUnlocalizedName()); - GameRegistry.registerBlock(det_cord, det_cord.getUnlocalizedName()); - GameRegistry.registerBlock(det_charge, det_charge.getUnlocalizedName()); - GameRegistry.registerBlock(det_nuke, det_nuke.getUnlocalizedName()); - GameRegistry.registerBlock(det_miner, det_miner.getUnlocalizedName()); - GameRegistry.registerBlock(red_barrel, ItemBlockLore.class, red_barrel.getUnlocalizedName()); - GameRegistry.registerBlock(pink_barrel, ItemBlockLore.class, pink_barrel.getUnlocalizedName()); - GameRegistry.registerBlock(lox_barrel, ItemBlockLore.class, lox_barrel.getUnlocalizedName()); - GameRegistry.registerBlock(taint_barrel, taint_barrel.getUnlocalizedName()); - GameRegistry.registerBlock(yellow_barrel, yellow_barrel.getUnlocalizedName()); - GameRegistry.registerBlock(vitrified_barrel, vitrified_barrel.getUnlocalizedName()); - - //Siren - GameRegistry.registerBlock(machine_siren, machine_siren.getUnlocalizedName()); - - //This Thing - GameRegistry.registerBlock(broadcaster_pc, broadcaster_pc.getUnlocalizedName()); - - //Geiger Counter - GameRegistry.registerBlock(geiger, geiger.getUnlocalizedName()); - - //HEV Battery - GameRegistry.registerBlock(hev_battery, hev_battery.getUnlocalizedName()); - - //Chainlink Fence - GameRegistry.registerBlock(fence_metal, fence_metal.getUnlocalizedName()); - - //Sands, Glass - GameRegistry.registerBlock(ash_digamma, ash_digamma.getUnlocalizedName()); - GameRegistry.registerBlock(sand_boron, sand_boron.getUnlocalizedName()); - GameRegistry.registerBlock(sand_lead, sand_lead.getUnlocalizedName()); - GameRegistry.registerBlock(sand_uranium, sand_uranium.getUnlocalizedName()); - GameRegistry.registerBlock(sand_polonium, sand_polonium.getUnlocalizedName()); - GameRegistry.registerBlock(sand_quartz, sand_quartz.getUnlocalizedName()); - GameRegistry.registerBlock(sand_gold, sand_gold.getUnlocalizedName()); - GameRegistry.registerBlock(sand_gold198, sand_gold198.getUnlocalizedName()); - GameRegistry.registerBlock(glass_boron, glass_boron.getUnlocalizedName()); - GameRegistry.registerBlock(glass_lead, glass_lead.getUnlocalizedName()); - GameRegistry.registerBlock(glass_uranium, glass_uranium.getUnlocalizedName()); - GameRegistry.registerBlock(glass_trinitite, glass_trinitite.getUnlocalizedName()); - GameRegistry.registerBlock(glass_polonium, glass_polonium.getUnlocalizedName()); - GameRegistry.registerBlock(glass_ash, glass_ash.getUnlocalizedName()); - GameRegistry.registerBlock(glass_quartz, glass_quartz.getUnlocalizedName()); - - //Silo Hatch - GameRegistry.registerBlock(seal_frame, seal_frame.getUnlocalizedName()); - GameRegistry.registerBlock(seal_controller, seal_controller.getUnlocalizedName()); - GameRegistry.registerBlock(seal_hatch, seal_hatch.getUnlocalizedName()); - - //Vault Door - GameRegistry.registerBlock(vault_door, vault_door.getUnlocalizedName()); - GameRegistry.registerBlock(blast_door, blast_door.getUnlocalizedName()); - GameRegistry.registerBlock(fire_door, fire_door.getUnlocalizedName()); - GameRegistry.registerBlock(transition_seal, transition_seal.getUnlocalizedName()); - - //Doors - GameRegistry.registerBlock(door_metal, door_metal.getUnlocalizedName()); - GameRegistry.registerBlock(door_office, door_office.getUnlocalizedName()); - GameRegistry.registerBlock(door_bunker, door_bunker.getUnlocalizedName()); - - //Crates - register(crate_iron); - register(crate_steel); - register(crate_desh); - register(crate_tungsten); - register(safe); - register(mass_storage); - - //Junk - GameRegistry.registerBlock(boxcar, boxcar.getUnlocalizedName()); - GameRegistry.registerBlock(boat, boat.getUnlocalizedName()); - GameRegistry.registerBlock(bomber, bomber.getUnlocalizedName()); - - //Machines - //GameRegistry.registerBlock(observer_off, observer_off.getUnlocalizedName()); - //GameRegistry.registerBlock(observer_on, observer_on.getUnlocalizedName()); - - GameRegistry.registerBlock(machine_autocrafter, ItemBlockBase.class, machine_autocrafter.getUnlocalizedName()); - - GameRegistry.registerBlock(anvil_iron, ItemBlockBase.class, anvil_iron.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_lead, ItemBlockBase.class, anvil_lead.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_steel, ItemBlockBase.class, anvil_steel.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_meteorite, ItemBlockBase.class, anvil_meteorite.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_starmetal, ItemBlockBase.class, anvil_starmetal.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_ferrouranium, ItemBlockBase.class, anvil_ferrouranium.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_bismuth, ItemBlockBase.class, anvil_bismuth.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_schrabidate, ItemBlockBase.class, anvil_schrabidate.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_dnt, ItemBlockBase.class, anvil_dnt.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_osmiridium, ItemBlockBase.class, anvil_osmiridium.getUnlocalizedName()); - GameRegistry.registerBlock(anvil_murky, ItemBlockBase.class, anvil_murky.getUnlocalizedName()); - - GameRegistry.registerBlock(press_preheater, press_preheater.getUnlocalizedName()); - GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); - GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); - register(heater_firebox); - register(heater_oven); - register(heater_oilburner); - register(heater_electric); - register(heater_heatex); - register(furnace_iron); - register(furnace_steel); - register(furnace_combination); - register(machine_stirling); - register(machine_stirling_steel); - register(machine_sawmill); - register(machine_crucible); - register(machine_boiler); - register(foundry_mold); - register(foundry_basin); - register(foundry_channel); - register(foundry_tank); - register(foundry_outlet); - register(foundry_slagtap); - register(slag); - register(machine_difurnace_off); - register(machine_difurnace_on); - register(machine_difurnace_extension); - GameRegistry.registerBlock(machine_difurnace_rtg_off, machine_difurnace_rtg_off.getUnlocalizedName()); - GameRegistry.registerBlock(machine_difurnace_rtg_on, machine_difurnace_rtg_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_centrifuge, machine_centrifuge.getUnlocalizedName()); - GameRegistry.registerBlock(machine_gascent, machine_gascent.getUnlocalizedName()); - GameRegistry.registerBlock(machine_fel, machine_fel.getUnlocalizedName()); - GameRegistry.registerBlock(machine_silex, machine_silex.getUnlocalizedName()); - GameRegistry.registerBlock(machine_crystallizer, machine_crystallizer.getUnlocalizedName()); - GameRegistry.registerBlock(machine_uf6_tank, machine_uf6_tank.getUnlocalizedName()); - GameRegistry.registerBlock(machine_puf6_tank, machine_puf6_tank.getUnlocalizedName()); - GameRegistry.registerBlock(machine_reactor_breeding, machine_reactor_breeding.getUnlocalizedName()); - GameRegistry.registerBlock(machine_nuke_furnace_off, machine_nuke_furnace_off.getUnlocalizedName()); - GameRegistry.registerBlock(machine_nuke_furnace_on, machine_nuke_furnace_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_rtg_furnace_off, machine_rtg_furnace_off.getUnlocalizedName()); - GameRegistry.registerBlock(machine_rtg_furnace_on, machine_rtg_furnace_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_coal_off, machine_coal_off.getUnlocalizedName()); - GameRegistry.registerBlock(machine_coal_on, machine_coal_on.getUnlocalizedName()); - register(machine_diesel); - register(machine_selenium); - register(machine_combustion_engine); - GameRegistry.registerBlock(machine_generator, machine_generator.getUnlocalizedName()); - GameRegistry.registerBlock(machine_controller, machine_controller.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_research, reactor_research.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_zirnox, reactor_zirnox.getUnlocalizedName()); - GameRegistry.registerBlock(zirnox_destroyed, zirnox_destroyed.getUnlocalizedName()); - GameRegistry.registerBlock(machine_industrial_generator, machine_industrial_generator.getUnlocalizedName()); - GameRegistry.registerBlock(machine_radgen, machine_radgen.getUnlocalizedName()); - GameRegistry.registerBlock(machine_cyclotron, machine_cyclotron.getUnlocalizedName()); - GameRegistry.registerBlock(machine_rtg_grey, machine_rtg_grey.getUnlocalizedName()); - GameRegistry.registerBlock(machine_geo, machine_geo.getUnlocalizedName()); - GameRegistry.registerBlock(machine_amgen, machine_amgen.getUnlocalizedName()); - GameRegistry.registerBlock(machine_minirtg, machine_minirtg.getUnlocalizedName()); - GameRegistry.registerBlock(machine_powerrtg, machine_powerrtg.getUnlocalizedName()); - GameRegistry.registerBlock(machine_radiolysis, machine_radiolysis.getUnlocalizedName()); - GameRegistry.registerBlock(machine_hephaestus, machine_hephaestus.getUnlocalizedName()); - GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName()); - GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName()); - - GameRegistry.registerBlock(hadron_plating, hadron_plating.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_plating_blue, hadron_plating_blue.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_plating_black, hadron_plating_black.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_plating_yellow, hadron_plating_yellow.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_plating_striped, hadron_plating_striped.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_plating_glass, hadron_plating_glass.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_plating_voltz, hadron_plating_voltz.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_coil_alloy, ItemBlockBase.class, hadron_coil_alloy.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_coil_gold, ItemBlockBase.class, hadron_coil_gold.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_coil_neodymium, ItemBlockBase.class, hadron_coil_neodymium.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_coil_magtung, ItemBlockBase.class, hadron_coil_magtung.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_coil_schrabidium, ItemBlockBase.class, hadron_coil_schrabidium.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_coil_schrabidate, ItemBlockBase.class, hadron_coil_schrabidate.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_coil_starmetal, ItemBlockBase.class, hadron_coil_starmetal.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_coil_chlorophyte, ItemBlockBase.class, hadron_coil_chlorophyte.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_coil_mese, ItemBlockBase.class, hadron_coil_mese.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_power, hadron_power.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_power_10m, hadron_power_10m.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_power_100m, hadron_power_100m.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_power_1g, hadron_power_1g.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_power_10g, hadron_power_10g.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_diode, hadron_diode.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_analysis, hadron_analysis.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_analysis_glass, hadron_analysis_glass.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_access, hadron_access.getUnlocalizedName()); - GameRegistry.registerBlock(hadron_core, hadron_core.getUnlocalizedName()); - - GameRegistry.registerBlock(rbmk_rod, rbmk_rod.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_rod_mod, rbmk_rod_mod.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_rod_reasim, rbmk_rod_reasim.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_rod_reasim_mod, rbmk_rod_reasim_mod.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_control, rbmk_control.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_control_mod, rbmk_control_mod.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_control_auto, rbmk_control_auto.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_blank, rbmk_blank.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_boiler, rbmk_boiler.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_reflector, rbmk_reflector.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_absorber, rbmk_absorber.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_moderator, rbmk_moderator.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_outgasser, rbmk_outgasser.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_storage, rbmk_storage.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_cooler, rbmk_cooler.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_heater, rbmk_heater.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_crane_console, rbmk_crane_console.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_loader, rbmk_loader.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_steam_inlet, rbmk_steam_inlet.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_steam_outlet, rbmk_steam_outlet.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_heatex, rbmk_heatex.getUnlocalizedName()); - GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName()); - GameRegistry.registerBlock(pribris_burning, pribris_burning.getUnlocalizedName()); - GameRegistry.registerBlock(pribris_radiating, pribris_radiating.getUnlocalizedName()); - GameRegistry.registerBlock(pribris_digamma, pribris_digamma.getUnlocalizedName()); - - GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName()); - GameRegistry.registerBlock(red_cable_classic, red_cable_classic.getUnlocalizedName()); - GameRegistry.registerBlock(red_cable_paintable, red_cable_paintable.getUnlocalizedName()); - GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); - GameRegistry.registerBlock(red_connector, ItemBlockBase.class, red_connector.getUnlocalizedName()); - GameRegistry.registerBlock(red_pylon, ItemBlockBase.class, red_pylon.getUnlocalizedName()); - GameRegistry.registerBlock(red_pylon_large, ItemBlockBase.class, red_pylon_large.getUnlocalizedName()); - GameRegistry.registerBlock(substation, ItemBlockBase.class, substation.getUnlocalizedName()); - GameRegistry.registerBlock(cable_switch, cable_switch.getUnlocalizedName()); - GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName()); - GameRegistry.registerBlock(cable_diode, ItemBlockBase.class, cable_diode.getUnlocalizedName()); - GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); - GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName()); - GameRegistry.registerBlock(oil_duct_solid, oil_duct_solid.getUnlocalizedName()); - GameRegistry.registerBlock(gas_duct, gas_duct.getUnlocalizedName()); - GameRegistry.registerBlock(gas_duct_solid, gas_duct_solid.getUnlocalizedName()); - GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); - register(fluid_duct_neo); - register(fluid_duct_box); - register(fluid_duct_paintable); - register(fluid_duct_gauge); - GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); - register(radio_torch_sender); - register(radio_torch_receiver); - - GameRegistry.registerBlock(crane_extractor, crane_extractor.getUnlocalizedName()); - GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName()); - GameRegistry.registerBlock(crane_grabber, crane_grabber.getUnlocalizedName()); - GameRegistry.registerBlock(crane_router, crane_router.getUnlocalizedName()); - GameRegistry.registerBlock(crane_boxer, crane_boxer.getUnlocalizedName()); - GameRegistry.registerBlock(crane_unboxer, crane_unboxer.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_double, conveyor_double.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_triple, conveyor_triple.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_chute, conveyor_chute.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_lift, conveyor_lift.getUnlocalizedName()); - GameRegistry.registerBlock(crane_splitter, crane_splitter.getUnlocalizedName()); - GameRegistry.registerBlock(fan, fan.getUnlocalizedName()); - - GameRegistry.registerBlock(piston_inserter, piston_inserter.getUnlocalizedName()); - - GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_iron, ladder_iron.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_gold, ladder_gold.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_titanium, ladder_titanium.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_copper, ladder_copper.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_tungsten, ladder_tungsten.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_aluminium, ladder_aluminium.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_steel, ladder_steel.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_lead, ladder_lead.getUnlocalizedName()); - GameRegistry.registerBlock(ladder_cobalt, ladder_cobalt.getUnlocalizedName()); - - register(barrel_plastic); - register(barrel_corroded); - register(barrel_iron); - register(barrel_steel); - register(barrel_tcalloy); - register(barrel_antimatter); - register(machine_battery_potato); - register(machine_battery); - register(machine_lithium_battery); - register(machine_schrabidium_battery); - register(machine_dineutronium_battery); - register(machine_fensu); - register(capacitor_bus); - register(capacitor_copper); - register(capacitor_gold); - register(capacitor_niobium); - register(capacitor_tantalium); - GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); - GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); - GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); - GameRegistry.registerBlock(machine_transformer_dnt_20, machine_transformer_dnt_20.getUnlocalizedName()); - GameRegistry.registerBlock(machine_converter_he_rf, machine_converter_he_rf.getUnlocalizedName()); - GameRegistry.registerBlock(machine_converter_rf_he, machine_converter_rf_he.getUnlocalizedName()); - GameRegistry.registerBlock(machine_electric_furnace_off, machine_electric_furnace_off.getUnlocalizedName()); - GameRegistry.registerBlock(machine_electric_furnace_on, machine_electric_furnace_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_arc_furnace_off, machine_arc_furnace_off.getUnlocalizedName()); - GameRegistry.registerBlock(machine_arc_furnace_on, machine_arc_furnace_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_microwave, machine_microwave.getUnlocalizedName()); - GameRegistry.registerBlock(machine_assembler, machine_assembler.getUnlocalizedName()); - GameRegistry.registerBlock(machine_assemfac, machine_assemfac.getUnlocalizedName()); - GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName()); - GameRegistry.registerBlock(machine_chemfac, machine_chemfac.getUnlocalizedName()); - register(machine_mixer); - register(machine_fluidtank); - register(machine_bat9000); - register(machine_orbus); - GameRegistry.registerBlock(machine_boiler_off, machine_boiler_off.getUnlocalizedName()); - GameRegistry.registerBlock(machine_boiler_on, machine_boiler_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_boiler_electric_on, machine_boiler_electric_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_boiler_electric_off, machine_boiler_electric_off.getUnlocalizedName()); - register(machine_steam_engine); - register(machine_turbine); - register(machine_large_turbine); - register(machine_chungus); - GameRegistry.registerBlock(machine_condenser, machine_condenser.getUnlocalizedName()); - GameRegistry.registerBlock(machine_tower_small, machine_tower_small.getUnlocalizedName()); - GameRegistry.registerBlock(machine_tower_large, machine_tower_large.getUnlocalizedName()); - GameRegistry.registerBlock(machine_deuterium_extractor, machine_deuterium_extractor.getUnlocalizedName()); - GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName()); - GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName()); - GameRegistry.registerBlock(machine_solidifier, ItemBlockBase.class, machine_solidifier.getUnlocalizedName()); - register(machine_compressor); - GameRegistry.registerBlock(machine_electrolyser, machine_electrolyser.getUnlocalizedName()); - GameRegistry.registerBlock(machine_deaerator, machine_deaerator.getUnlocalizedName()); - GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName()); - GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName()); - GameRegistry.registerBlock(machine_shredder, machine_shredder.getUnlocalizedName()); - GameRegistry.registerBlock(machine_shredder_large, machine_shredder_large.getUnlocalizedName()); - register(machine_well); - register(machine_pumpjack); - register(machine_fracking_tower); - register(machine_flare); - register(machine_refinery); - register(machine_vacuum_distill); - register(machine_fraction_tower); - register(fraction_spacer); - register(machine_catalytic_cracker); - register(machine_catalytic_reformer); - register(machine_coker); - register(machine_drill); - register(machine_autosaw); - register(machine_excavator); - register(machine_mining_laser); - register(barricade); - register(machine_turbofan); - register(machine_turbinegas); - GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName()); - GameRegistry.registerBlock(machine_combine_factory, machine_combine_factory.getUnlocalizedName()); - GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName()); - GameRegistry.registerBlock(teleanchor, teleanchor.getUnlocalizedName()); - GameRegistry.registerBlock(field_disturber, field_disturber.getUnlocalizedName()); - GameRegistry.registerBlock(machine_satlinker, machine_satlinker.getUnlocalizedName()); - GameRegistry.registerBlock(machine_keyforge, machine_keyforge.getUnlocalizedName()); - GameRegistry.registerBlock(machine_armor_table, machine_armor_table.getUnlocalizedName()); - GameRegistry.registerBlock(machine_forcefield, machine_forcefield.getUnlocalizedName()); - GameRegistry.registerBlock(radiorec, radiorec.getUnlocalizedName()); - GameRegistry.registerBlock(radiobox, radiobox.getUnlocalizedName()); - - //Multiblock Helpers - GameRegistry.registerBlock(marker_structure, marker_structure.getUnlocalizedName()); - - //The muffler - GameRegistry.registerBlock(muffler, muffler.getUnlocalizedName()); - - //Multiblock Parts - GameRegistry.registerBlock(struct_launcher, struct_launcher.getUnlocalizedName()); - GameRegistry.registerBlock(struct_scaffold, struct_scaffold.getUnlocalizedName()); - GameRegistry.registerBlock(struct_launcher_core, struct_launcher_core.getUnlocalizedName()); - GameRegistry.registerBlock(struct_launcher_core_large, struct_launcher_core_large.getUnlocalizedName()); - GameRegistry.registerBlock(struct_soyuz_core, struct_soyuz_core.getUnlocalizedName()); - GameRegistry.registerBlock(struct_iter_core, struct_iter_core.getUnlocalizedName()); - GameRegistry.registerBlock(struct_plasma_core, struct_plasma_core.getUnlocalizedName()); - GameRegistry.registerBlock(struct_watz_core, struct_watz_core.getUnlocalizedName()); - - //Absorbers - GameRegistry.registerBlock(absorber, absorber.getUnlocalizedName()); - GameRegistry.registerBlock(absorber_red, absorber_red.getUnlocalizedName()); - GameRegistry.registerBlock(absorber_green, absorber_green.getUnlocalizedName()); - GameRegistry.registerBlock(absorber_pink, absorber_pink.getUnlocalizedName()); - GameRegistry.registerBlock(decon, decon.getUnlocalizedName()); - GameRegistry.registerBlock(transission_hatch, transission_hatch.getUnlocalizedName()); - - //Solar Tower Blocks - GameRegistry.registerBlock(machine_solar_boiler, machine_solar_boiler.getUnlocalizedName()); - GameRegistry.registerBlock(solar_mirror, solar_mirror.getUnlocalizedName()); - - //Literal fucking garbage - GameRegistry.registerBlock(factory_titanium_hull, factory_titanium_hull.getUnlocalizedName()); - GameRegistry.registerBlock(factory_advanced_hull, factory_advanced_hull.getUnlocalizedName()); - - //Multiblock Generators - GameRegistry.registerBlock(reactor_element, reactor_element.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_control, reactor_control.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_hatch, reactor_hatch.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_ejector, reactor_ejector.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_inserter, reactor_inserter.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_conductor, reactor_conductor.getUnlocalizedName()); - GameRegistry.registerBlock(reactor_computer, reactor_computer.getUnlocalizedName()); - - register(fusion_conductor); - GameRegistry.registerBlock(fusion_center, fusion_center.getUnlocalizedName()); - GameRegistry.registerBlock(fusion_motor, fusion_motor.getUnlocalizedName()); - GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName()); - GameRegistry.registerBlock(fusion_hatch, fusion_hatch.getUnlocalizedName()); - //GameRegistry.registerBlock(fusion_core, fusion_core.getUnlocalizedName()); - GameRegistry.registerBlock(plasma, ItemBlockLore.class, plasma.getUnlocalizedName()); - GameRegistry.registerBlock(iter, iter.getUnlocalizedName()); - GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); - - GameRegistry.registerBlock(watz_element, watz_element.getUnlocalizedName()); - GameRegistry.registerBlock(watz_control, watz_control.getUnlocalizedName()); - GameRegistry.registerBlock(watz_cooler, watz_cooler.getUnlocalizedName()); - register(watz_end); - GameRegistry.registerBlock(watz_hatch, watz_hatch.getUnlocalizedName()); - GameRegistry.registerBlock(watz_conductor, watz_conductor.getUnlocalizedName()); - GameRegistry.registerBlock(watz_core, watz_core.getUnlocalizedName()); - GameRegistry.registerBlock(watz, watz.getUnlocalizedName()); - GameRegistry.registerBlock(watz_pump, watz_pump.getUnlocalizedName()); - - GameRegistry.registerBlock(fwatz_conductor, fwatz_conductor.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_scaffold, fwatz_scaffold.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_hatch, fwatz_hatch.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_computer, fwatz_computer.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_core, fwatz_core.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_cooler, fwatz_cooler.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_tank, fwatz_tank.getUnlocalizedName()); - GameRegistry.registerBlock(fwatz_plasma, fwatz_plasma.getUnlocalizedName()); - - //E - GameRegistry.registerBlock(balefire, balefire.getUnlocalizedName()); - GameRegistry.registerBlock(fire_digamma, fire_digamma.getUnlocalizedName()); - GameRegistry.registerBlock(digamma_matter, digamma_matter.getUnlocalizedName()); - register(volcano_core); - - //AMS - GameRegistry.registerBlock(ams_base, ams_base.getUnlocalizedName()); - GameRegistry.registerBlock(ams_emitter, ams_emitter.getUnlocalizedName()); - GameRegistry.registerBlock(ams_limiter, ams_limiter.getUnlocalizedName()); - - //Dark Fusion Core - GameRegistry.registerBlock(dfc_emitter, dfc_emitter.getUnlocalizedName()); - GameRegistry.registerBlock(dfc_injector, dfc_injector.getUnlocalizedName()); - GameRegistry.registerBlock(dfc_receiver, dfc_receiver.getUnlocalizedName()); - GameRegistry.registerBlock(dfc_stabilizer, dfc_stabilizer.getUnlocalizedName()); - GameRegistry.registerBlock(dfc_core, dfc_core.getUnlocalizedName()); - - //Missile Blocks - GameRegistry.registerBlock(machine_missile_assembly, machine_missile_assembly.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); - GameRegistry.registerBlock(compact_launcher, compact_launcher.getUnlocalizedName()); - GameRegistry.registerBlock(launch_table, launch_table.getUnlocalizedName()); - GameRegistry.registerBlock(soyuz_launcher, soyuz_launcher.getUnlocalizedName()); - GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); - GameRegistry.registerBlock(soyuz_capsule, soyuz_capsule.getUnlocalizedName()); - GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName()); - - //Guide - GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName()); - - //Sat Blocks - GameRegistry.registerBlock(sat_mapper, sat_mapper.getUnlocalizedName()); - GameRegistry.registerBlock(sat_scanner, sat_scanner.getUnlocalizedName()); - GameRegistry.registerBlock(sat_radar, sat_radar.getUnlocalizedName()); - GameRegistry.registerBlock(sat_laser, sat_laser.getUnlocalizedName()); - GameRegistry.registerBlock(sat_foeq, sat_foeq.getUnlocalizedName()); - GameRegistry.registerBlock(sat_resonator, sat_resonator.getUnlocalizedName()); - - //Rails - GameRegistry.registerBlock(rail_wood, ItemBlockBase.class, rail_wood.getUnlocalizedName()); - GameRegistry.registerBlock(rail_narrow, ItemBlockBase.class, rail_narrow.getUnlocalizedName()); - GameRegistry.registerBlock(rail_highspeed, ItemBlockBase.class, rail_highspeed.getUnlocalizedName()); - GameRegistry.registerBlock(rail_booster, ItemBlockBase.class, rail_booster.getUnlocalizedName()); - register(rail_narrow_straight); - register(rail_narrow_curve); - register(rail_large_straight); - register(rail_large_curve); - register(rail_large_ramp); - register(rail_large_buffer); - - //Crate - GameRegistry.registerBlock(crate, crate.getUnlocalizedName()); - GameRegistry.registerBlock(crate_weapon, crate_weapon.getUnlocalizedName()); - GameRegistry.registerBlock(crate_lead, crate_lead.getUnlocalizedName()); - GameRegistry.registerBlock(crate_metal, crate_metal.getUnlocalizedName()); - GameRegistry.registerBlock(crate_red, crate_red.getUnlocalizedName()); - GameRegistry.registerBlock(crate_can, crate_can.getUnlocalizedName()); - GameRegistry.registerBlock(crate_ammo, crate_ammo.getUnlocalizedName()); - GameRegistry.registerBlock(crate_jungle, crate_jungle.getUnlocalizedName()); - - //ElB - GameRegistry.registerBlock(statue_elb, statue_elb.getUnlocalizedName()); - GameRegistry.registerBlock(statue_elb_g, statue_elb_g.getUnlocalizedName()); - GameRegistry.registerBlock(statue_elb_w, statue_elb_w.getUnlocalizedName()); - GameRegistry.registerBlock(statue_elb_f, statue_elb_f.getUnlocalizedName()); - - //Fluids - GameRegistry.registerBlock(mud_block, mud_block.getUnlocalizedName()); - GameRegistry.registerBlock(acid_block, acid_block.getUnlocalizedName()); - GameRegistry.registerBlock(toxic_block, toxic_block.getUnlocalizedName()); - GameRegistry.registerBlock(schrabidic_block, schrabidic_block.getUnlocalizedName()); - GameRegistry.registerBlock(corium_block, corium_block.getUnlocalizedName()); - GameRegistry.registerBlock(volcanic_lava_block, volcanic_lava_block.getUnlocalizedName()); - GameRegistry.registerBlock(sulfuric_acid_block, sulfuric_acid_block.getUnlocalizedName()); - //GameRegistry.registerBlock(concrete_liquid, concrete_liquid.getUnlocalizedName()); - - //Multiblock Dummy Blocks - GameRegistry.registerBlock(dummy_block_drill, dummy_block_drill.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_drill, dummy_port_drill.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_assembler, dummy_block_assembler.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_assembler, dummy_port_assembler.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_ams_limiter, dummy_block_ams_limiter.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_ams_limiter, dummy_port_ams_limiter.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_ams_emitter, dummy_block_ams_emitter.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_ams_emitter, dummy_port_ams_emitter.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_ams_base, dummy_block_ams_base.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_ams_base, dummy_port_ams_base.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_vault, dummy_block_vault.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_blast, dummy_block_blast.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_uf6, dummy_block_uf6.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_puf6, dummy_block_puf6.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_plate_compact_launcher, dummy_plate_compact_launcher.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_compact_launcher, dummy_port_compact_launcher.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_plate_launch_table, dummy_plate_launch_table.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_launch_table, dummy_port_launch_table.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_plate_cargo, dummy_plate_cargo.getUnlocalizedName()); - - //Other Technical Blocks - GameRegistry.registerBlock(oil_pipe, oil_pipe.getUnlocalizedName()); - GameRegistry.registerBlock(drill_pipe, drill_pipe.getUnlocalizedName()); - GameRegistry.registerBlock(vent_chlorine, vent_chlorine.getUnlocalizedName()); - GameRegistry.registerBlock(vent_cloud, vent_cloud.getUnlocalizedName()); - GameRegistry.registerBlock(vent_pink_cloud, vent_pink_cloud.getUnlocalizedName()); - GameRegistry.registerBlock(vent_chlorine_seal, vent_chlorine_seal.getUnlocalizedName()); - GameRegistry.registerBlock(chlorine_gas, chlorine_gas.getUnlocalizedName()); - GameRegistry.registerBlock(gas_radon, gas_radon.getUnlocalizedName()); - GameRegistry.registerBlock(gas_radon_dense, gas_radon_dense.getUnlocalizedName()); - GameRegistry.registerBlock(gas_radon_tomb, gas_radon_tomb.getUnlocalizedName()); - GameRegistry.registerBlock(gas_meltdown, gas_meltdown.getUnlocalizedName()); - GameRegistry.registerBlock(gas_monoxide, gas_monoxide.getUnlocalizedName()); - GameRegistry.registerBlock(gas_asbestos, gas_asbestos.getUnlocalizedName()); - GameRegistry.registerBlock(gas_coal, gas_coal.getUnlocalizedName()); - GameRegistry.registerBlock(gas_flammable, gas_flammable.getUnlocalizedName()); - GameRegistry.registerBlock(gas_explosive, gas_explosive.getUnlocalizedName()); - GameRegistry.registerBlock(vacuum, vacuum.getUnlocalizedName()); - - //??? - GameRegistry.registerBlock(crystal_virus, crystal_virus.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_hardened, crystal_hardened.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_pulsar, crystal_pulsar.getUnlocalizedName()); - GameRegistry.registerBlock(taint, ItemTaintBlock.class, taint.getUnlocalizedName()); - GameRegistry.registerBlock(residue, residue.getUnlocalizedName()); - GameRegistry.registerBlock(cheater_virus, cheater_virus.getUnlocalizedName()); - GameRegistry.registerBlock(cheater_virus_seed, cheater_virus_seed.getUnlocalizedName()); - GameRegistry.registerBlock(ntm_dirt, ntm_dirt.getUnlocalizedName()); - GameRegistry.registerBlock(pink_log, pink_log.getUnlocalizedName()); - GameRegistry.registerBlock(pink_planks, pink_planks.getUnlocalizedName()); - GameRegistry.registerBlock(pink_slab, pink_slab.getUnlocalizedName()); - GameRegistry.registerBlock(pink_double_slab, pink_double_slab.getUnlocalizedName()); - GameRegistry.registerBlock(pink_stairs, pink_stairs.getUnlocalizedName()); - GameRegistry.registerBlock(ff, ff.getUnlocalizedName()); - } - - private static void register(Block b) { - GameRegistry.registerBlock(b, ItemBlockBase.class, b.getUnlocalizedName()); - } - - private static void register(Block b, Class clazz) { - GameRegistry.registerBlock(b, clazz, b.getUnlocalizedName()); - } - - public static void addRemap(String unloc, Block block, int meta) { - Block remap = new BlockRemap(block, meta).setBlockName(unloc); - register(remap, ItemBlockRemap.class); - } -} +package com.hbm.blocks; + +import com.hbm.blocks.BlockEnums.*; +import com.hbm.blocks.bomb.*; +import com.hbm.blocks.fluid.*; +import com.hbm.blocks.gas.*; +import com.hbm.blocks.generic.*; +import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect; +import com.hbm.blocks.machine.*; +import com.hbm.blocks.machine.pile.*; +import com.hbm.blocks.machine.rbmk.*; +import com.hbm.blocks.network.*; +import com.hbm.blocks.rail.*; +import com.hbm.blocks.test.TestCharge; +import com.hbm.blocks.test.TestCore; +import com.hbm.blocks.test.TestEventTester; +import com.hbm.blocks.test.TestObjTester; +import com.hbm.blocks.turret.*; +import com.hbm.items.block.*; +import com.hbm.items.bomb.ItemPrototypeBlock; +import com.hbm.items.special.ItemOreBlock; +import com.hbm.lib.ModDamageSource; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.DoorDecl; +import com.hbm.tileentity.machine.storage.TileEntityFileCabinet; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFalling; +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; +import net.minecraft.block.material.MaterialLiquid; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; + +import java.util.ArrayList; + +public class ModBlocks { + + public static void mainRegistry() + { + initializeBlock(); + registerBlock(); + } + + public static Block event_tester; + public static Block obj_tester; + public static Block test_core; + public static Block test_charge; + public static Block structure_anchor; + + public static Block ore_uranium; + public static Block ore_uranium_scorched; + public static Block ore_titanium; + public static Block ore_sulfur; + public static Block ore_thorium; + public static Block ore_niter; + public static Block ore_copper; + public static Block ore_tungsten; + public static Block ore_aluminium; + public static Block ore_fluorite; + public static Block ore_lead; + public static Block ore_schrabidium; + public static Block ore_beryllium; + public static Block ore_australium; + public static Block ore_rare; + public static Block ore_cobalt; + public static Block ore_cinnebar; + public static Block ore_coltan; + public static Block ore_alexandrite; + + public static Block ore_bedrock; + public static Block ore_volcano; + + public static Block ore_nether_coal; + public static Block ore_nether_smoldering; + public static Block ore_nether_uranium; + public static Block ore_nether_uranium_scorched; + public static Block ore_nether_plutonium; + public static Block ore_nether_tungsten; + public static Block ore_nether_sulfur; + public static Block ore_nether_fire; + public static Block ore_nether_cobalt; + public static Block ore_nether_schrabidium; + + public static Block ore_meteor; + + public static Block stone_gneiss; + public static Block ore_gneiss_iron; + public static Block ore_gneiss_gold; + public static Block ore_gneiss_uranium; + public static Block ore_gneiss_uranium_scorched; + public static Block ore_gneiss_copper; + public static Block ore_gneiss_asbestos; + public static Block ore_gneiss_lithium; + public static Block ore_gneiss_schrabidium; + public static Block ore_gneiss_rare; + public static Block ore_gneiss_gas; + + public static Block gneiss_brick; + public static Block gneiss_tile; + public static Block gneiss_chiseled; + + public static Block stone_depth; + public static Block ore_depth_cinnebar; + public static Block ore_depth_zirconium; + public static Block ore_depth_borax; + public static Block cluster_depth_iron; + public static Block cluster_depth_titanium; + public static Block cluster_depth_tungsten; + + public static Block stone_keyhole; + public static Block stone_keyhole_meta; + + public static Block stone_depth_nether; + public static Block ore_depth_nether_neodymium; + + public static Block stone_porous; + public static Block stone_resource; + public static Block stalagmite; + public static Block stalactite; + public static Block stone_biome; + + public static Block depth_brick; + public static Block depth_tiles; + public static Block depth_nether_brick; + public static Block depth_nether_tiles; + public static Block depth_dnt; + + public static Block basalt; + public static Block ore_basalt; + public static Block basalt_smooth; + public static Block basalt_brick; + public static Block basalt_polished; + public static Block basalt_tiles; + + public static Block cluster_iron; + public static Block cluster_titanium; + public static Block cluster_aluminium; + public static Block cluster_copper; + + public static Block ore_oil; + public static Block ore_oil_empty; + public static Block ore_oil_sand; + public static Block ore_bedrock_oil; + public static Block ore_lignite; + public static Block ore_asbestos; + @Deprecated public static Block ore_coal_oil; + @Deprecated public static Block ore_coal_oil_burning; + + public static Block ore_tikite; + + public static Block block_thorium; + public static Block block_thorium_fuel; + public static Block block_uranium; + public static Block block_u233; + public static Block block_u235; + public static Block block_u238; + public static Block block_uranium_fuel; + public static Block block_neptunium; + public static Block block_polonium; + public static Block block_mox_fuel; + public static Block block_plutonium; + public static Block block_pu238; + public static Block block_pu239; + public static Block block_pu240; + public static Block block_pu_mix; + public static Block block_plutonium_fuel; + public static Block block_titanium; + public static Block block_sulfur; + public static Block block_niter; + public static Block block_copper; + public static Block block_red_copper; + public static Block block_tungsten; + public static Block block_aluminium; + public static Block block_fluorite; + public static Block block_steel; + public static Block block_tcalloy; + public static Block block_cdalloy; + public static Block block_lead; + public static Block block_bismuth; + public static Block block_cadmium; + public static Block block_coltan; + public static Block block_tantalium; + public static Block block_niobium; + public static Block block_trinitite; + public static Block block_waste; + public static Block block_waste_painted; + public static Block block_waste_vitrified; + public static Block ancient_scrap; + public static Block block_corium; + public static Block block_corium_cobble; + public static Block block_scrap; + public static Block block_electrical_scrap; + public static Block block_beryllium; + public static Block block_schraranium; + public static Block block_schrabidium; + public static Block block_schrabidate; + public static Block block_solinium; + public static Block block_schrabidium_fuel; + public static Block block_euphemium; + public static Block block_schrabidium_cluster; + public static Block block_euphemium_cluster; + public static Block block_dineutronium; + public static Block block_advanced_alloy; + public static Block block_magnetized_tungsten; + public static Block block_combine_steel; + public static Block block_desh; + public static Block block_dura_steel; + public static Block block_starmetal; + public static Block block_polymer; + public static Block block_bakelite; + public static Block block_rubber; + public static Block block_yellowcake; + public static Block block_insulator; + public static Block block_fiberglass; + public static Block block_asbestos; + public static Block block_cobalt; + public static Block block_lithium; + public static Block block_zirconium; + public static Block block_white_phosphorus; + public static Block block_red_phosphorus; + public static Block block_fallout; + public static Block block_foam; + public static Block block_coke; + public static Block block_graphite; + public static Block block_graphite_drilled; + public static Block block_graphite_fuel; + public static Block block_graphite_plutonium; + public static Block block_graphite_rod; + public static Block block_graphite_source; + public static Block block_graphite_lithium; + public static Block block_graphite_tritium; + public static Block block_graphite_detector; + public static Block block_boron; + public static Block block_lanthanium; + public static Block block_ra226; + public static Block block_actinium; + public static Block block_tritium; + public static Block block_semtex; + public static Block block_c4; + public static Block block_smore; + public static Block block_slag; + + public static Block block_australium; + public static Block block_weidanium; + public static Block block_reiium; + public static Block block_unobtainium; + public static Block block_daffergon; + public static Block block_verticium; + + public static Block block_cap; + + public static Block deco_titanium; + public static Block deco_red_copper; + public static Block deco_tungsten; + public static Block deco_aluminium; + public static Block deco_steel; + public static Block deco_lead; + public static Block deco_beryllium; + public static Block deco_asbestos; + public static Block deco_rbmk; + public static Block deco_rbmk_smooth; + + public static Block deco_emitter; + public static Block part_emitter; + public static Block deco_loot; + public static Block pedestal; + public static Block bobblehead; + public static Block snowglobe; + public static Block plushie; + + public static Block gravel_obsidian; + public static Block gravel_diamond; + public static Block asphalt; + public static Block asphalt_light; + + public static Block reinforced_brick; + public static Block reinforced_ducrete; + public static Block reinforced_glass; + public static Block reinforced_glass_pane; + public static Block reinforced_light; + public static Block reinforced_sand; + public static Block reinforced_lamp_off; + public static Block reinforced_lamp_on; + public static Block reinforced_laminate; + public static Block reinforced_laminate_pane; + + public static Block lamp_tritium_green_off; + public static Block lamp_tritium_green_on; + public static Block lamp_tritium_blue_off; + public static Block lamp_tritium_blue_on; + + public static Block lamp_demon; + + public static Block lantern; + public static Block lantern_behemoth; + + public static Block spotlight_incandescent; + public static Block spotlight_incandescent_off; + public static Block spotlight_fluoro; + public static Block spotlight_fluoro_off; + public static Block spotlight_halogen; + public static Block spotlight_halogen_off; + public static Block spotlight_beam; + public static Block floodlight; + public static Block floodlight_beam; + + public static Block reinforced_stone; + public static Block concrete_smooth; + public static Block concrete_colored; + public static Block concrete_colored_ext; + public static Block concrete; + public static Block concrete_asbestos; + public static Block concrete_super; + public static Block concrete_super_broken; + public static Block ducrete_smooth; + public static Block ducrete; + public static Block concrete_pillar; + public static Block brick_concrete; + public static Block brick_concrete_mossy; + public static Block brick_concrete_cracked; + public static Block brick_concrete_broken; + public static Block brick_concrete_marked; + public static Block brick_ducrete; + public static Block brick_obsidian; + public static Block brick_light; + public static Block brick_compound; + public static Block brick_asbestos; + public static Block brick_fire; + + public static Block concrete_slab; + public static Block concrete_double_slab; + public static Block concrete_brick_slab; + public static Block concrete_brick_double_slab; + public static Block brick_slab; + public static Block brick_double_slab; + + public static Block concrete_smooth_stairs; + public static Block concrete_stairs; + public static Block concrete_asbestos_stairs; + public static Block ducrete_smooth_stairs; + public static Block ducrete_stairs; + public static Block brick_concrete_stairs; + public static Block brick_concrete_mossy_stairs; + public static Block brick_concrete_cracked_stairs; + public static Block brick_concrete_broken_stairs; + public static Block brick_ducrete_stairs; + public static Block reinforced_stone_stairs; + public static Block reinforced_brick_stairs; + public static Block brick_obsidian_stairs; + public static Block brick_light_stairs; + public static Block brick_compound_stairs; + public static Block brick_asbestos_stairs; + public static Block brick_fire_stairs; + public static Block asphalt_stairs; + + public static Block cmb_brick; + public static Block cmb_brick_reinforced; + + public static Block vinyl_tile; + + public static Block tile_lab; + public static Block tile_lab_cracked; + public static Block tile_lab_broken; + + public static Block block_meteor; + public static Block block_meteor_cobble; + public static Block block_meteor_broken; + public static Block block_meteor_molten; + public static Block block_meteor_treasure; + public static Block meteor_polished; + public static Block meteor_brick; + public static Block meteor_brick_mossy; + public static Block meteor_brick_cracked; + public static Block meteor_brick_chiseled; + public static Block meteor_pillar; + public static Block meteor_spawner; + public static Block meteor_battery; + + public static Block moon_turf; + + public static Block brick_jungle; + public static Block brick_jungle_cracked; + public static Block brick_jungle_fragile; + public static Block brick_jungle_lava; + public static Block brick_jungle_ooze; + public static Block brick_jungle_mystic; + public static Block brick_jungle_trap; + public static Block brick_jungle_glyph; + public static Block brick_jungle_circle; + + public static Block brick_red; + + public static Block deco_computer; + public static Block deco_crt; + public static Block deco_toaster; + + public static Block filing_cabinet; + + public static Block tape_recorder; + public static Block steel_poles; + public static Block pole_top; + public static Block pole_satellite_receiver; + public static Block steel_wall; + public static Block steel_corner; + public static Block steel_roof; + public static Block steel_beam; + public static Block steel_scaffold; + public static Block steel_grate; + public static Block steel_grate_wide; + + public static Block deco_pipe; + public static Block deco_pipe_rusted; + public static Block deco_pipe_green; + public static Block deco_pipe_green_rusted; + public static Block deco_pipe_red; + public static Block deco_pipe_marked; + public static Block deco_pipe_rim; + public static Block deco_pipe_rim_rusted; + public static Block deco_pipe_rim_green; + public static Block deco_pipe_rim_green_rusted; + public static Block deco_pipe_rim_red; + public static Block deco_pipe_rim_marked; + public static Block deco_pipe_framed; + public static Block deco_pipe_framed_rusted; + public static Block deco_pipe_framed_green; + public static Block deco_pipe_framed_green_rusted; + public static Block deco_pipe_framed_red; + public static Block deco_pipe_framed_marked; + public static Block deco_pipe_quad; + public static Block deco_pipe_quad_rusted; + public static Block deco_pipe_quad_green; + public static Block deco_pipe_quad_green_rusted; + public static Block deco_pipe_quad_red; + public static Block deco_pipe_quad_marked; + + public static Block broadcaster_pc; + public static Block geiger; + public static Block hev_battery; + + public static Block fence_metal; + + public static Block sand_boron; + public static Block sand_lead; + public static Block sand_uranium; + public static Block sand_polonium; + public static Block sand_quartz; + public static Block ash_digamma; + public static Block glass_boron; + public static Block glass_lead; + public static Block glass_uranium; + public static Block glass_trinitite; + public static Block glass_polonium; + public static Block glass_ash; + public static Block glass_quartz; + + public static Block mush; + public static Block mush_block; + public static Block mush_block_stem; + + public static Block glyphid_base; + public static Block glyphid_spawner; + + public static Block plant_flower; + public static Block plant_tall; + public static Block plant_dead; + public static Block reeds; + public static Block vine_phosphor; + public static final Material thick_foliage = new MaterialLogic(MapColor.foliageColor) { + @Override public boolean getCanBurn() { return true; } + @Override public boolean isToolNotRequired() { return false; } + @Override public int getMaterialMobility() { return 1; } + }; + + public static Block waste_earth; + public static Block waste_mycelium; + public static Block waste_trinitite; + public static Block waste_trinitite_red; + public static Block waste_log; + public static Block waste_leaves; + public static Block waste_planks; + public static Block frozen_dirt; + public static Block frozen_grass; + public static Block frozen_log; + public static Block frozen_planks; + public static Block dirt_dead; + public static Block dirt_oily; + public static Block sand_dirty; + public static Block sand_dirty_red; + public static Block stone_cracked; + public static Block burning_earth; + public static Block tektite; + public static Block ore_tektite_osmiridium; + public static Block impact_dirt; + + public static Block fallout; + public static Block foam_layer; + public static Block sand_boron_layer; + public static Block leaves_layer; + public static Block oil_spill; + + public static Block sellafield_slaked; + public static Block sellafield_bedrock; + public static Block sellafield; + public static Block ore_sellafield_diamond; + public static Block ore_sellafield_emerald; + public static Block ore_sellafield_uranium_scorched; + public static Block ore_sellafield_schrabidium; + public static Block ore_sellafield_radgem; + + public static Block geysir_water; + public static Block geysir_chlorine; + public static Block geysir_vapor; + public static Block geysir_nether; + + public static Block flame_war; + public static Block float_bomb; + public static Block therm_endo; + public static Block therm_exo; + public static Block emp_bomb; + public static Block det_cord; + public static Block det_charge; + public static Block det_nuke; + public static Block det_miner; + public static Block red_barrel; + public static Block pink_barrel; + public static Block yellow_barrel; + public static Block vitrified_barrel; + public static Block lox_barrel; + public static Block taint_barrel; + public static Block crashed_balefire; + public static Block fireworks; + public static Block dynamite; + public static Block tnt; + public static Block semtex; + public static Block c4; + public static Block fissure_bomb; + + public static Block charge_dynamite; + public static Block charge_miner; + public static Block charge_c4; + public static Block charge_semtex; + + public static Block mine_ap; + public static Block mine_he; + public static Block mine_shrap; + public static Block mine_fat; + + public static Block crate; + public static Block crate_weapon; + public static Block crate_lead; + public static Block crate_metal; + public static Block crate_red; + public static Block crate_can; + public static Block crate_ammo; + public static Block crate_jungle; + + public static Block boxcar; + public static Block boat; + + public static Block seal_frame; + public static Block seal_controller; + public static Block seal_hatch; + + public static Block vault_door; + public static Block blast_door; + public static Block sliding_blast_door; + public static Block fire_door; + public static Block transition_seal; + public static Block silo_hatch; + public static Block silo_hatch_large; + + // 1.12.2 Doors + public static Block secure_access_door; + public static Block large_vehicle_door; + public static Block qe_containment; + public static Block qe_sliding_door; + public static Block round_airlock_door; + public static Block sliding_seal_door; + public static Block water_door; + + public static Block door_metal; + public static Block door_office; + public static Block door_bunker; + public static Block door_red; + + public static Block barbed_wire; + public static Block barbed_wire_fire; + public static Block barbed_wire_poison; + public static Block barbed_wire_acid; + public static Block barbed_wire_wither; + public static Block barbed_wire_ultradeath; + public static Block spikes; + + public static Block charger; + + public static Block tesla; + + public static Block sat_mapper; + public static Block sat_scanner; + public static Block sat_radar; + public static Block sat_laser; + public static Block sat_foeq; + public static Block sat_resonator; + + public static Block sat_dock; + + public static Block soyuz_capsule; + public static Block crate_supply; + + public static Block crate_iron; + public static Block crate_steel; + public static Block crate_desh; + public static Block crate_tungsten; + public static Block crate_template; + public static Block safe; + public static Block mass_storage; + + public static Block nuke_gadget; + public static Block nuke_boy; + public static Block nuke_man; + public static Block nuke_mike; + public static Block nuke_tsar; + public static Block nuke_fleija; + public static Block nuke_prototype; + public static Block nuke_custom; + public static Block nuke_solinium; + public static Block nuke_n2; + public static Block nuke_fstbmb; + public static Block bomb_multi; + + public static Block pump_steam; + public static Block pump_electric; + + public static Block heater_firebox; + public static Block heater_oven; + public static Block heater_oilburner; + public static Block heater_electric; + public static Block heater_heatex; + public static Block machine_ashpit; + + public static Block furnace_iron; + public static Block furnace_steel; + public static Block furnace_combination; + public static Block machine_stirling; + public static Block machine_stirling_steel; + public static Block machine_stirling_creative; + public static Block machine_sawmill; + public static Block machine_crucible; + public static Block machine_boiler; + public static Block machine_industrial_boiler; + + public static Block foundry_mold; + public static Block foundry_basin; + public static Block foundry_channel; + public static Block foundry_tank; + public static Block foundry_outlet; + public static Block machine_strand_caster; + public static Block foundry_slagtap; + public static Block slag; + + public static Block machine_difurnace_off; + public static Block machine_difurnace_on; + public static Block machine_difurnace_extension; + public static Block machine_difurnace_rtg_off; + public static Block machine_difurnace_rtg_on; + //public static final int guiID_test_difurnace = 1; historical + + public static Block machine_centrifuge; + public static Block machine_gascent; + + public static Block machine_fel; + public static Block machine_silex; + + public static Block machine_rotary_furnace; + public static Block machine_crystallizer; + + public static Block machine_uf6_tank; + public static Block machine_puf6_tank; + + public static Block machine_reactor_breeding; + + public static Block machine_furnace_brick_off; + public static Block machine_furnace_brick_on; + public static Block machine_nuke_furnace_off; + public static Block machine_nuke_furnace_on; + public static Block machine_rtg_furnace_off; + public static Block machine_rtg_furnace_on; + + public static Block machine_industrial_generator; + + public static Block machine_cyclotron; + public static Block machine_exposure_chamber; + + public static Block hadron_plating; + public static Block hadron_plating_blue; + public static Block hadron_plating_black; + public static Block hadron_plating_yellow; + public static Block hadron_plating_striped; + public static Block hadron_plating_voltz; + public static Block hadron_plating_glass; + public static Block hadron_coil_alloy; + public static Block hadron_coil_gold; + public static Block hadron_coil_neodymium; + public static Block hadron_coil_magtung; + public static Block hadron_coil_schrabidium; + public static Block hadron_coil_schrabidate; + public static Block hadron_coil_starmetal; + public static Block hadron_coil_chlorophyte; + public static Block hadron_coil_mese; + public static Block hadron_power; + public static Block hadron_power_10m; + public static Block hadron_power_100m; + public static Block hadron_power_1g; + public static Block hadron_power_10g; + public static Block hadron_diode; + public static Block hadron_analysis; + public static Block hadron_analysis_glass; + public static Block hadron_access; + public static Block hadron_core; + public static Block hadron_cooler; + + public static Block machine_electric_furnace_off; + public static Block machine_electric_furnace_on; + + public static Block machine_microwave; + + public static Block machine_arc_furnace_off; + public static Block machine_arc_furnace_on; + + //public static Block machine_deuterium; + + public static Block machine_battery_potato; + public static Block machine_battery; + public static Block machine_lithium_battery; + public static Block machine_schrabidium_battery; + public static Block machine_dineutronium_battery; + public static Block machine_fensu; + public static final int guiID_machine_fensu = 99; + + public static Block capacitor_bus; + public static Block capacitor_copper; + public static Block capacitor_gold; + public static Block capacitor_niobium; + public static Block capacitor_tantalium; + public static Block capacitor_schrabidate; + + public static Block machine_wood_burner; + + public static Block red_wire_coated; + public static Block red_cable; + public static Block red_cable_classic; + public static Block red_cable_paintable; + public static Block red_cable_gauge; + public static Block red_connector; + public static Block red_pylon; + public static Block red_pylon_medium_wood; + public static Block red_pylon_medium_wood_transformer; + public static Block red_pylon_medium_steel; + public static Block red_pylon_medium_steel_transformer; + public static Block red_pylon_large; + public static Block substation; + public static Block cable_switch; + public static Block cable_detector; + public static Block cable_diode; + public static Block machine_detector; + public static Block fluid_duct_neo; + public static Block fluid_duct_box; + public static Block fluid_duct_paintable; + public static Block fluid_duct_gauge; + public static Block fluid_duct_exhaust; + public static Block fluid_valve; + public static Block fluid_switch; + public static Block machine_drain; + public static Block radio_torch_sender; + public static Block radio_torch_receiver; + public static Block radio_torch_counter; + public static Block radio_torch_logic; + public static Block radio_telex; + + public static Block conveyor; + public static Block conveyor_express; + //public static Block conveyor_classic; + public static Block conveyor_double; + public static Block conveyor_triple; + public static Block conveyor_chute; + public static Block conveyor_lift; + public static Block crane_extractor; + public static Block crane_inserter; + public static Block crane_grabber; + public static Block crane_router; + public static Block crane_boxer; + public static Block crane_unboxer; + public static Block crane_splitter; + public static Block crane_partitioner; + + public static Block drone_waypoint; + public static Block drone_crate; + public static Block drone_waypoint_request; + public static Block drone_dock; + public static Block drone_crate_provider; + public static Block drone_crate_requester; + + public static Block fan; + + public static Block piston_inserter; + + public static Block chain; + + public static Block ladder_sturdy; + public static Block ladder_iron; + public static Block ladder_gold; + public static Block ladder_aluminium; + public static Block ladder_copper; + public static Block ladder_titanium; + public static Block ladder_lead; + public static Block ladder_cobalt; + public static Block ladder_steel; + public static Block ladder_tungsten; + + public static Block barrel_plastic; + public static Block barrel_corroded; + public static Block barrel_iron; + public static Block barrel_steel; + public static Block barrel_tcalloy; + public static Block barrel_antimatter; + + public static Block machine_transformer; + public static Block machine_transformer_20; + public static Block machine_transformer_dnt; + public static Block machine_transformer_dnt_20; + + public static Block bomb_multi_large; + public static final int guiID_bomb_multi_large = 18; + + public static Block machine_solar_boiler; + public static final int guiID_solar_boiler = 18; + public static Block solar_mirror; + + public static Block struct_launcher; + public static Block struct_scaffold; + public static Block struct_launcher_core; + public static Block struct_launcher_core_large; + public static Block struct_soyuz_core; + public static Block struct_iter_core; + public static Block struct_plasma_core; + public static Block struct_watz_core; + public static Block struct_icf_core; + + public static Block factory_titanium_hull; + public static Block factory_advanced_hull; + + public static Block cm_block; + public static Block cm_sheet; + public static Block cm_engine; + public static Block cm_tank; + public static Block cm_circuit; + public static Block cm_port; + public static Block cm_flux; + public static Block cm_heat; + public static Block custom_machine; + public static Block cm_anchor; + + public static Block pwr_fuel; + public static Block pwr_control; + public static Block pwr_channel; + public static Block pwr_heatex; + public static Block pwr_heatsink; + public static Block pwr_neutron_source; + public static Block pwr_reflector; + public static Block pwr_casing; + public static Block pwr_port; + public static Block pwr_controller; + public static Block pwr_block; + + public static Block fusion_conductor; + public static Block fusion_center; + public static Block fusion_motor; + public static Block fusion_heater; + public static Block fusion_hatch; + public static Block plasma; + + public static Block iter; + public static Block plasma_heater; + + public static Block machine_icf_press; + public static Block icf_component; + public static Block icf; + public static Block icf_controller; + public static Block icf_laser_component; + public static Block icf_block; + + public static Block watz; + public static Block watz_pump; + + public static Block watz_element; + public static Block watz_cooler; + public static Block watz_end; + + public static Block balefire; + public static Block fire_digamma; + public static Block digamma_matter; + + public static Block dfc_emitter; + public static Block dfc_injector; + public static Block dfc_receiver; + public static Block dfc_stabilizer; + public static Block dfc_core; + + public static Block machine_converter_he_rf; + public static Block machine_converter_rf_he; + + public static Block machine_schrabidium_transmutator; + + public static Block machine_diesel; + public static Block machine_combustion_engine; + + public static Block machine_shredder; + + public static Block machine_teleporter; + public static Block teleanchor; + public static Block field_disturber; + + public static Block machine_rtg_grey; + public static Block machine_amgen; + public static Block machine_geo; + public static Block machine_minirtg; + public static Block machine_powerrtg; + public static Block machine_radiolysis; + public static Block machine_hephaestus; + + public static Block machine_well; + public static Block oil_pipe; + public static Block machine_pumpjack; + public static Block machine_fracking_tower; + + public static Block machine_flare; + public static Block chimney_brick; + public static Block chimney_industrial; + + public static Block machine_refinery; + public static Block machine_vacuum_distill; + public static Block machine_fraction_tower; + public static Block fraction_spacer; + public static Block machine_catalytic_cracker; + public static Block machine_catalytic_reformer; + public static Block machine_hydrotreater; + public static Block machine_coker; + public static Block machine_pyrooven; + + public static Block machine_boiler_off; + + public static Block machine_steam_engine; + public static Block machine_turbine; + public static Block machine_large_turbine; + + public static Block machine_deuterium_extractor; + public static Block machine_deuterium_tower; + + public static Block machine_liquefactor; + public static Block machine_solidifier; + public static Block machine_compressor; + + public static Block machine_chungus; + public static Block machine_condenser; + public static Block machine_tower_small; + public static Block machine_tower_large; + public static Block machine_condenser_powered; + + public static Block machine_electrolyser; + + public static Block machine_excavator; + public static Block machine_ore_slopper; + public static Block machine_autosaw; + + public static Block machine_mining_laser; + public static Block barricade; // a sand bag that drops nothing, for automated walling purposes + + public static Block machine_assembler; + public static Block machine_assemfac; + public static Block machine_arc_welder; + public static Block machine_soldering_station; + public static Block machine_arc_furnace; + + public static Block machine_chemplant; + public static Block machine_chemfac; + public static Block machine_mixer; + + public static Block machine_fluidtank; + public static Block machine_bat9000; + public static Block machine_orbus; + + public static Block launch_pad; + public static Block launch_pad_rusted; + public static Block launch_pad_large; + + public static Block machine_missile_assembly; + + public static Block compact_launcher; + public static Block launch_table; + + public static Block soyuz_launcher; + + public static Block machine_radar; + public static Block machine_radar_large; + public static Block radar_screen; + + public static Block machine_turbofan; + public static Block machine_turbinegas; + public static Block machine_lpw2; + + public static Block press_preheater; + public static Block machine_press; + public static Block machine_epress; + public static Block machine_conveyor_press; + public static Block machine_ammo_press; + + public static Block machine_siren; + + public static Block machine_radgen; + + public static Block machine_satlinker; + public static Block machine_keyforge; + + public static Block machine_armor_table; + + public static Block reactor_research; + public static Block reactor_zirnox; + public static Block zirnox_destroyed; + + public static Block machine_controller; + + public static Block machine_spp_bottom; + public static Block machine_spp_top; + + public static Block radiobox; + public static Block radiorec; + + public static Block machine_forcefield; + + public static Block machine_waste_drum; + public static Block machine_storage_drum; + + public static Block machine_autocrafter; + public static Block machine_funnel; + + public static Block anvil_iron; + public static Block anvil_lead; + public static Block anvil_steel; + public static Block anvil_desh; + public static Block anvil_ferrouranium; + public static Block anvil_saturnite; + public static Block anvil_bismuth_bronze; + public static Block anvil_arsenic_bronze; + public static Block anvil_schrabidate; + public static Block anvil_dnt; + public static Block anvil_osmiridium; + public static Block anvil_murky; + + public static Block turret_chekhov; + public static Block turret_friendly; + public static Block turret_jeremy; + public static Block turret_tauon; + public static Block turret_richard; + public static Block turret_howard; + public static Block turret_howard_damaged; + public static Block turret_maxwell; + public static Block turret_fritz; + public static Block turret_arty; + public static Block turret_himars; + public static Block turret_sentry; + public static Block turret_sentry_damaged; + + public static Block rbmk_rod; + public static Block rbmk_rod_mod; + public static Block rbmk_rod_reasim; + public static Block rbmk_rod_reasim_mod; + public static Block rbmk_control; + public static Block rbmk_control_mod; + public static Block rbmk_control_auto; + public static Block rbmk_blank; + public static Block rbmk_boiler; + public static Block rbmk_reflector; + public static Block rbmk_absorber; + public static Block rbmk_moderator; + public static Block rbmk_outgasser; + public static Block rbmk_storage; + public static Block rbmk_cooler; + public static Block rbmk_heater; + public static Block rbmk_console; + public static Block rbmk_crane_console; + public static Block rbmk_loader; + public static Block rbmk_steam_inlet; + public static Block rbmk_steam_outlet; + public static Block pribris; + public static Block pribris_burning; + public static Block pribris_radiating; + public static Block pribris_digamma; + + public static Block book_guide; + + public static Block rail_wood; + public static Block rail_narrow; + public static Block rail_highspeed; + public static Block rail_booster; + + public static Block rail_narrow_straight; + public static Block rail_narrow_curve; + public static Block rail_large_straight; + public static Block rail_large_straight_short; + public static Block rail_large_curve; + public static Block rail_large_curve_7; + public static Block rail_large_curve_9; + public static Block rail_large_ramp; + public static Block rail_large_buffer; + public static Block rail_large_switch; + public static Block rail_large_switch_flipped; + + public static Block statue_elb_f; + + public static Block cheater_virus; + public static Block cheater_virus_seed; + public static Block crystal_virus; + public static Block crystal_hardened; + public static Block crystal_pulsar; + public static Block taint; + + public static Block vent_chlorine; + public static Block vent_cloud; + public static Block vent_pink_cloud; + public static Block vent_chlorine_seal; + public static Block chlorine_gas; + + public static Block gas_radon; + public static Block gas_radon_dense; + public static Block gas_radon_tomb; + public static Block gas_meltdown; + public static Block gas_monoxide; + public static Block gas_asbestos; + public static Block gas_coal; + public static Block gas_flammable; + public static Block gas_explosive; + public static Block vacuum; + + public static Block absorber; + public static Block absorber_red; + public static Block absorber_green; + public static Block absorber_pink; + public static Block decon; + public static Block transission_hatch; + + public static Block mud_block; + public static Fluid mud_fluid; + public static final Material fluidmud = (new MaterialLiquid(MapColor.adobeColor)); + + public static Block acid_block; + public static Fluid acid_fluid; + public static final Material fluidacid = (new MaterialLiquid(MapColor.purpleColor)); + + public static Block toxic_block; + public static Fluid toxic_fluid; + public static final Material fluidtoxic = (new MaterialLiquid(MapColor.greenColor)); + + public static Block schrabidic_block; + public static Fluid schrabidic_fluid; + public static final Material fluidschrabidic = (new MaterialLiquid(MapColor.cyanColor)); + + public static Block corium_block; + public static Fluid corium_fluid; + public static final Material fluidcorium = (new MaterialLiquid(MapColor.brownColor) { + + @Override + public boolean blocksMovement() { + return true; + } + + @Override + public Material setImmovableMobility() { //override access modifier + return super.setImmovableMobility(); + } + + }.setImmovableMobility()); + + public static Block volcanic_lava_block; + public static Fluid volcanic_lava_fluid; + public static Block rad_lava_block; + public static Fluid rad_lava_fluid; + + public static Block sulfuric_acid_block; + public static Fluid sulfuric_acid_fluid; + + public static Block concrete_liquid; + + public static Block volcano_core; + public static Block volcano_rad_core; + + public static Block dummy_block_vault; + public static Block dummy_block_blast; + public static Block dummy_plate_compact_launcher; + public static Block dummy_port_compact_launcher; + public static Block dummy_plate_launch_table; + public static Block dummy_port_launch_table; + public static Block dummy_plate_cargo; + + public static Block ntm_dirt; + + public static Block pink_log; + public static Block pink_planks; + public static Block pink_slab; + public static Block pink_double_slab; + public static Block pink_stairs; + + public static Material materialGas = new MaterialGas(); + + private static void initializeBlock() { + + event_tester = new TestEventTester(Material.iron).setBlockName("event_tester").setCreativeTab(null).setHardness(2.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":event_tester"); + obj_tester = new TestObjTester(Material.iron).setBlockName("obj_tester").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F); + test_core = new TestCore(Material.iron).setBlockName("test_core").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_core"); + test_charge = new TestCharge(Material.iron).setBlockName("test_charge").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F); + structure_anchor = new BlockGeneric(Material.iron).setBlockName("structure_anchor").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":structure_anchor"); + + ore_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium"); + ore_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium_scorched"); + ore_titanium = new BlockGeneric(Material.rock).setBlockName("ore_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_titanium"); + ore_sulfur = new BlockOre(Material.rock).setBlockName("ore_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_sulfur"); + ore_thorium = new BlockGeneric(Material.rock).setBlockName("ore_thorium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_thorium"); + + ore_niter = new BlockOre(Material.rock).setBlockName("ore_niter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_niter"); + ore_copper = new BlockGeneric(Material.rock).setBlockName("ore_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_copper"); + ore_tungsten = new BlockGeneric(Material.rock).setBlockName("ore_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tungsten"); + ore_aluminium = new BlockGeneric(Material.rock).setBlockName("ore_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_aluminium"); + ore_fluorite = new BlockOre(Material.rock).setBlockName("ore_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_fluorite"); + ore_lead = new BlockGeneric(Material.rock).setBlockName("ore_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_lead"); + ore_schrabidium = new BlockOre(Material.rock, 0.1F, 0.5F).setBlockName("ore_schrabidium").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":ore_schrabidium"); + ore_beryllium = new BlockGeneric(Material.rock).setBlockName("ore_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_beryllium"); + ore_lignite = new BlockOre(Material.rock).setBlockName("ore_lignite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_lignite"); + ore_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_asbestos"); + ore_coal_oil = new BlockCoalOil(Material.rock).setBlockName("ore_coal_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil"); + ore_coal_oil_burning = new BlockCoalBurning(Material.rock).setBlockName("ore_coal_oil_burning").setCreativeTab(MainRegistry.blockTab).setLightLevel(10F/15F).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil_burning"); + + cluster_iron = new BlockCluster(Material.rock).setBlockName("cluster_iron").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_iron"); + cluster_titanium = new BlockCluster(Material.rock).setBlockName("cluster_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_titanium"); + cluster_aluminium = new BlockCluster(Material.rock).setBlockName("cluster_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_aluminium"); + cluster_copper = new BlockCluster(Material.rock).setBlockName("cluster_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_copper"); + + ore_nether_coal = new BlockNetherCoal(Material.rock, false, 5, true).setBlockName("ore_nether_coal").setCreativeTab(MainRegistry.blockTab).setLightLevel(10F/15F).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_coal"); + ore_nether_smoldering = new BlockSmolder(Material.rock).setBlockName("ore_nether_smoldering").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_smoldering"); + ore_nether_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_nether_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_uranium"); + ore_nether_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_nether_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_uranium_scorched"); + ore_nether_plutonium = new BlockGeneric(Material.rock).setBlockName("ore_nether_plutonium").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_plutonium"); + ore_nether_tungsten = new BlockGeneric(Material.rock).setBlockName("ore_nether_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_tungsten"); + ore_nether_sulfur = new BlockOre(Material.rock).setBlockName("ore_nether_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_sulfur"); + ore_nether_fire = new BlockOre(Material.rock).setBlockName("ore_nether_fire").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_fire"); + ore_nether_cobalt = new BlockOre(Material.rock).setBlockName("ore_nether_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_cobalt"); + ore_nether_schrabidium = new BlockGeneric(Material.rock).setBlockName("ore_nether_schrabidium").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_schrabidium"); + + ore_meteor = new BlockMeteorOre().setBlockName("ore_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + + stone_gneiss = new BlockGeneric(Material.rock).setBlockName("stone_gneiss").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":stone_gneiss_var"); + ore_gneiss_iron = new BlockOre(Material.rock).setBlockName("ore_gneiss_iron").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_iron"); + ore_gneiss_gold = new BlockOre(Material.rock).setBlockName("ore_gneiss_gold").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_gold"); + ore_gneiss_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_gneiss_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium"); + ore_gneiss_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_gneiss_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium_scorched"); + ore_gneiss_copper = new BlockOre(Material.rock).setBlockName("ore_gneiss_copper").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_copper"); + ore_gneiss_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_gneiss_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_asbestos"); + ore_gneiss_lithium = new BlockOre(Material.rock).setBlockName("ore_gneiss_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_lithium"); + ore_gneiss_schrabidium = new BlockOre(Material.rock).setBlockName("ore_gneiss_schrabidium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_schrabidium"); + ore_gneiss_rare = new BlockOre(Material.rock).setBlockName("ore_gneiss_rare").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_rare"); + ore_gneiss_gas = new BlockOre(Material.rock).setBlockName("ore_gneiss_gas").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_gas"); + + gneiss_brick = new BlockGeneric(Material.rock).setBlockName("gneiss_brick").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":gneiss_brick"); + gneiss_tile = new BlockGeneric(Material.rock).setBlockName("gneiss_tile").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":gneiss_tile"); + gneiss_chiseled = new BlockPillar(Material.rock, RefStrings.MODID + ":gneiss_tile").setBlockName("gneiss_chiseled").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":gneiss_chiseled"); + + stone_depth = new BlockDepth().setBlockName("stone_depth").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":stone_depth"); + ore_depth_cinnebar = new BlockDepthOre().setBlockName("ore_depth_cinnebar").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_depth_cinnebar"); + ore_depth_zirconium = new BlockDepthOre().setBlockName("ore_depth_zirconium").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_depth_zirconium"); + ore_depth_borax = new BlockDepthOre().setBlockName("ore_depth_borax").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_depth_borax"); + cluster_depth_iron = new BlockDepthOre().setBlockName("cluster_depth_iron").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_iron"); + cluster_depth_titanium = new BlockDepthOre().setBlockName("cluster_depth_titanium").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_titanium"); + cluster_depth_tungsten = new BlockDepthOre().setBlockName("cluster_depth_tungsten").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_tungsten"); + ore_alexandrite = new BlockDepthOre().setBlockName("ore_alexandrite").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_alexandrite"); + + stone_keyhole = new BlockKeyhole().setBlockName("stone_keyhole").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":stone_keyhole"); + stone_keyhole_meta = new BlockRedBrickKeyhole(Material.rock).setCreativeTab(null).setBlockName("stone_keyhole_meta").setResistance(10_000); + + ore_bedrock = new BlockBedrockOreTE().setBlockName("ore_bedrock").setCreativeTab(null); + ore_volcano = new BlockFissure().setBlockName("ore_volcano").setLightLevel(1F).setCreativeTab(MainRegistry.blockTab); + + depth_brick = new BlockDepth().setBlockName("depth_brick").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_brick"); + depth_tiles = new BlockDepth().setBlockName("depth_tiles").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_tiles"); + depth_nether_brick = new BlockDepth().setBlockName("depth_nether_brick").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_nether_brick"); + depth_nether_tiles = new BlockDepth().setBlockName("depth_nether_tiles").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_nether_tiles"); + depth_dnt = new BlockDepth().setBlockName("depth_dnt").setCreativeTab(MainRegistry.blockTab).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":depth_dnt"); + + stone_depth_nether = new BlockDepth().setBlockName("stone_depth_nether").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":stone_depth_nether"); + ore_depth_nether_neodymium = new BlockDepthOre().setBlockName("ore_depth_nether_neodymium").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_depth_nether_neodymium"); + + stone_porous = new BlockPorous().setBlockName("stone_porous").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":stone_porous"); + stone_resource = new BlockResourceStone().setBlockName("stone_resource").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + stalagmite = new BlockStalagmite().setBlockName("stalagmite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F); + stalactite = new BlockStalagmite().setBlockName("stalactite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F); + stone_biome = new BlockBiomeStone().setBlockName("stone_biome").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + + basalt = new BlockPillar(Material.rock, RefStrings.MODID + ":basalt_top").setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt"); + ore_basalt = new BlockOreBasalt().setBlockName("ore_basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_basalt"); + basalt_smooth = new BlockGeneric(Material.rock).setBlockName("basalt_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_smooth"); + basalt_brick = new BlockGeneric(Material.rock).setBlockName("basalt_brick").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_brick"); + basalt_polished = new BlockGeneric(Material.rock).setBlockName("basalt_polished").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_polished"); + basalt_tiles = new BlockGeneric(Material.rock).setBlockName("basalt_tiles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_tiles"); + + ore_australium = new BlockGeneric(Material.rock).setBlockName("ore_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_australium"); + ore_rare = new BlockOre(Material.rock).setBlockName("ore_rare").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_rare"); + ore_cobalt = new BlockOre(Material.rock).setBlockName("ore_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cobalt"); + ore_cinnebar = new BlockOre(Material.rock).setBlockName("ore_cinnebar").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cinnebar"); + ore_coltan = new BlockOre(Material.rock).setBlockName("ore_coltan").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_coltan"); + + ore_oil = new BlockOre(Material.rock).setBlockName("ore_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil"); + ore_oil_empty = new BlockGeneric(Material.rock).setBlockName("ore_oil_empty").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_empty"); + ore_oil_sand = new BlockFalling(Material.sand).setBlockName("ore_oil_sand").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(0.5F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_sand_alt"); + ore_bedrock_oil = new BlockGeneric(Material.rock).noMobSpawn().setBlockName("ore_bedrock_oil").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_oil"); + + ore_tikite = new BlockDragonProof(Material.rock).setBlockName("ore_tikite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tikite_alt"); + + block_uranium = new BlockHazard().makeBeaconable().setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); + block_u233 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); + block_u235 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u235").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u235"); + block_u238 = new BlockHazard().makeBeaconable().setBlockName("block_u238").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u238"); + block_uranium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_uranium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium_fuel"); + block_thorium = new BlockHazard().makeBeaconable().setBlockName("block_thorium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium"); + block_thorium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_thorium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium_fuel"); + block_neptunium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_neptunium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":block_neptunium"); + block_polonium = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_polonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_polonium"); + block_mox_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_mox_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_mox_fuel"); + block_plutonium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium"); + block_pu238 = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu238").setCreativeTab(MainRegistry.blockTab).setLightLevel(5F/15F).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu238"); + block_pu239 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu239").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu239"); + block_pu240 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu240").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu240"); + block_pu_mix = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu_mix").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu_mix"); + block_plutonium_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium_fuel"); + block_titanium = new BlockBeaconable(Material.iron).setBlockName("block_titanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_titanium"); + block_sulfur = new BlockBeaconable(Material.iron).setBlockName("block_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_sulfur"); + block_niter = new BlockBeaconable(Material.iron).setBlockName("block_niter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_niter"); + block_copper = new BlockBeaconable(Material.iron).setBlockName("block_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); + block_red_copper = new BlockBeaconable(Material.iron).setBlockName("block_red_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(25.0F).setBlockTextureName(RefStrings.MODID + ":block_red_copper"); + block_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_tungsten"); + block_aluminium = new BlockBeaconable(Material.iron).setBlockName("block_aluminium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); + block_fluorite = new BlockBeaconable(Material.iron).setBlockName("block_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fluorite"); + block_steel = new BlockBeaconable(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + block_tcalloy = new BlockBeaconable(Material.iron).setBlockName("block_tcalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(70.0F).setBlockTextureName(RefStrings.MODID + ":block_tcalloy"); + block_cdalloy = new BlockBeaconable(Material.iron).setBlockName("block_cdalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(70.0F).setBlockTextureName(RefStrings.MODID + ":block_cdalloy"); + block_lead = new BlockBeaconable(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); + block_bismuth = new BlockBeaconable(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(90.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); + block_cadmium = new BlockBeaconable(Material.iron).setBlockName("block_cadmium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(90.0F).setBlockTextureName(RefStrings.MODID + ":block_cadmium"); + block_coltan = new BlockBeaconable(Material.iron).setBlockName("block_coltan").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_coltan"); + block_tantalium = new BlockBeaconable(Material.iron).setBlockName("block_tantalium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + block_niobium = new BlockBeaconable(Material.iron).setBlockName("block_niobium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F); + block_trinitite = new BlockHazard().makeBeaconable().setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); + block_waste = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); + block_waste_painted = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); + block_waste_vitrified = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste_vitrified").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_vitrified"); + ancient_scrap = new BlockOutgas(Material.iron, true, 1, true, true).setBlockName("ancient_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ancient_scrap"); + block_corium = new BlockHazard(Material.iron).setBlockName("block_corium").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium"); + block_corium_cobble = new BlockOutgas(Material.iron, true, 1, true, true).setBlockName("block_corium_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium_cobble"); + block_scrap = new BlockFalling(Material.sand).setBlockName("block_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeGravel).setBlockTextureName(RefStrings.MODID + ":block_scrap"); + block_electrical_scrap = new BlockFalling(Material.iron).setBlockName("block_electrical_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName(RefStrings.MODID + ":electrical_scrap_alt2"); + block_beryllium = new BlockBeaconable(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); + block_schraranium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(250.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium"); + block_schrabidium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium"); + block_schrabidate = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidate").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); + block_solinium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_solinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_solinium"); + block_schrabidium_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_fuel"); + block_euphemium = new BlockBeaconable(Material.iron).setBlockName("block_euphemium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium"); + block_dineutronium = new BlockBeaconable(Material.iron).setBlockName("block_dineutronium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_dineutronium"); + block_schrabidium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_schrabidium_cluster_top").setBlockName("block_schrabidium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_cluster_side"); + block_euphemium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_euphemium_cluster_top").setBlockName("block_euphemium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium_cluster_side"); + block_advanced_alloy = new BlockBeaconable(Material.iron).setBlockName("block_advanced_alloy").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":block_advanced_alloy"); + block_magnetized_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_magnetized_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(75.0F).setBlockTextureName(RefStrings.MODID + ":block_magnetized_tungsten"); + block_combine_steel = new BlockBeaconable(Material.iron).setBlockName("block_combine_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_combine_steel"); + block_desh = new BlockBeaconable(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":block_desh"); + block_dura_steel = new BlockBeaconable(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel"); + block_starmetal = new BlockBeaconable(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal"); + block_polymer = new BlockBeaconable(Material.rock).setBlockName("block_polymer").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polymer"); + block_bakelite = new BlockBeaconable(Material.rock).setBlockName("block_bakelite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":block_bakelite"); + block_rubber = new BlockBeaconable(Material.rock).setBlockName("block_rubber").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_rubber"); + block_yellowcake = new BlockHazardFalling().makeBeaconable().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); + block_insulator = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_insulator_top").setBlockName("block_insulator").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_insulator_side"); + block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); + block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); + block_cobalt = new BlockBeaconable(Material.iron).setBlockName("block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_cobalt"); + block_lithium = new BlockLithium(Material.iron).setBlockName("block_lithium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lithium"); + block_zirconium = new BlockBeaconable(Material.iron).setBlockName("block_zirconium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_zirconium"); + block_white_phosphorus = new BlockHazard(Material.rock).makeBeaconable().setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus"); + block_red_phosphorus = new BlockHazardFalling().makeBeaconable().setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); + block_fallout = new BlockHazardFalling().setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); + block_foam = new BlockGeneric(Material.craftedSnow).setBlockName("block_foam").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSnow).setHardness(0.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":foam"); + block_coke = new BlockCoke().setBlockName("block_coke").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F); + block_graphite = new BlockGraphite(Material.iron, 30, 5).setBlockName("block_graphite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F); + block_graphite_drilled = new BlockGraphiteDrilled().setBlockName("block_graphite_drilled"); + block_graphite_fuel = new BlockGraphiteFuel().setBlockName("block_graphite_fuel"); + block_graphite_plutonium = new BlockGraphiteSource().setBlockName("block_graphite_plutonium"); + block_graphite_rod = new BlockGraphiteRod().setBlockName("block_graphite_rod").setBlockTextureName(RefStrings.MODID + ":block_graphite_rod_in"); + block_graphite_source = new BlockGraphiteSource().setBlockName("block_graphite_source"); + block_graphite_lithium = new BlockGraphiteBreedingFuel().setBlockName("block_graphite_lithium"); + block_graphite_tritium = new BlockGraphiteBreedingProduct().setBlockName("block_graphite_tritium"); + block_graphite_detector = new BlockGraphiteNeutronDetector().setBlockName("block_graphite_detector"); + block_boron = new BlockBeaconable(Material.iron).setBlockName("block_boron").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_boron"); + block_lanthanium = new BlockBeaconable(Material.iron).setBlockName("block_lanthanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lanthanium"); + block_ra226 = new BlockHazard().makeBeaconable().setBlockName("block_ra226").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_ra226"); + block_actinium = new BlockHazard().makeBeaconable().setBlockName("block_actinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_actinium"); + block_tritium = new BlockRotatablePillar(Material.glass, RefStrings.MODID + ":block_tritium_top").setBlockName("block_tritium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(3.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_tritium_side"); + block_semtex = new BlockPlasticExplosive(Material.tnt).setBlockName("block_semtex").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_semtex"); + block_c4 = new BlockPlasticExplosive(Material.tnt).setBlockName("block_c4").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_c4"); + block_smore = new BlockPillar(Material.rock, RefStrings.MODID + ":block_smore_top").setBlockName("block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_smore_side"); + block_slag = new BlockSlag(Material.rock).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeStone).setHardness(2.0F).setBlockTextureName(RefStrings.MODID + ":block_slag"); + + block_australium = new BlockBeaconable(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); + block_weidanium = new BlockBeaconable(Material.iron).setBlockName("block_weidanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); + block_reiium = new BlockBeaconable(Material.iron).setBlockName("block_reiium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); + block_unobtainium = new BlockBeaconable(Material.iron).setBlockName("block_unobtainium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); + block_daffergon = new BlockBeaconable(Material.iron).setBlockName("block_daffergon").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); + block_verticium = new BlockBeaconable(Material.iron).setBlockName("block_verticium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); + + block_cap = new BlockCap().setBlockName("block_cap").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + + deco_titanium = new BlockOre(Material.iron).noFortune().setBlockName("deco_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_titanium"); + deco_red_copper = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_red_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_red_copper"); + deco_tungsten = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_tungsten"); + deco_aluminium = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_aluminium"); + deco_steel = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_steel").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel"); + deco_lead = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_lead"); + deco_beryllium = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_beryllium"); + deco_asbestos = new BlockOutgas(Material.cloth, true, 5, true).noFortune().setBlockName("deco_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_asbestos"); + deco_rbmk = new BlockGeneric(Material.iron).setBlockName("deco_rbmk").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_side"); + deco_rbmk_smooth = new BlockGeneric(Material.iron).setBlockName("deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top"); + + deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter"); + part_emitter = new PartEmitter().setBlockName("part_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":part_top"); + deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top"); + bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); + plushie = new BlockPlushie().setBlockName("plushie").setStepSound(Block.soundTypeCloth).setResistance(50_0000.0F).setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); + + gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); + gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond"); + asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); + asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); + + reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); + reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(2.0F).setResistance(25.0F); + reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(2.0F).setResistance(25.0F); + reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); + reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(40.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); + reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); + reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); + reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock, true).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(300.0F); + reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane", RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, true).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(300.0F); + + lamp_tritium_green_off = new TritiumLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); + lamp_tritium_green_on = new TritiumLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); + lamp_tritium_blue_off = new TritiumLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_blue_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_off"); + lamp_tritium_blue_on = new TritiumLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_blue_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_on"); + + lamp_demon = new DemonLamp().setBlockName("lamp_demon").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_demon"); + lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(null).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); + + spotlight_incandescent = new Spotlight(Material.iron, 2, LightType.INCANDESCENT, true).setBlockName("spotlight_incandescent").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cage_lamp"); + spotlight_incandescent_off = new Spotlight(Material.iron, 2, LightType.INCANDESCENT, false).setBlockName("spotlight_incandescent_off").setBlockTextureName(RefStrings.MODID + ":cage_lamp_off"); + spotlight_fluoro = new SpotlightModular(Material.iron, 8, LightType.FLUORESCENT, true).setBlockName("spotlight_fluoro").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":fluorescent_lamp"); + spotlight_fluoro_off = new SpotlightModular(Material.iron, 8, LightType.FLUORESCENT, false).setBlockName("spotlight_fluoro_off").setBlockTextureName(RefStrings.MODID + ":fluorescent_lamp_off"); + spotlight_halogen = new Spotlight(Material.iron, 32, LightType.HALOGEN, true).setBlockName("spotlight_halogen").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":flood_lamp"); + spotlight_halogen_off = new Spotlight(Material.iron, 32, LightType.HALOGEN, false).setBlockName("spotlight_halogen_off").setBlockTextureName(RefStrings.MODID + ":flood_lamp_off"); + spotlight_beam = new SpotlightBeam().setBlockName("spotlight_beam"); + floodlight = new Floodlight(Material.iron).setBlockName("floodlight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + floodlight_beam = new FloodlightBeam().setBlockName("floodlight_beam"); + + reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); + concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete_colored_ext = new BlockConcreteColoredExt(Material.rock).setBlockName("concrete_colored_ext").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext"); + concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); + concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(150.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); + concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(1000.0F); + concrete_super_broken = new BlockFalling(Material.rock).setBlockName("concrete_super_broken").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":concrete_super_broken"); + concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(180.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); + brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); + brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); + brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(45.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); + brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); + brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); + brick_light = new BlockGeneric(Material.rock).setBlockName("brick_light").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":brick_light"); + brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); + cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); + cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(50000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced"); + brick_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("brick_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_asbestos"); + brick_fire = new BlockGeneric(Material.rock).setBlockName("brick_fire").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(35.0F).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + + ducrete_smooth = new BlockGeneric(Material.rock).setBlockName("ducrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(500.0F).setBlockTextureName(RefStrings.MODID + ":ducrete"); + ducrete = new BlockGeneric(Material.rock).setBlockName("ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(500.0F).setBlockTextureName(RefStrings.MODID + ":ducrete_tile"); + brick_ducrete = new BlockGeneric(Material.rock).setBlockName("brick_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(750.0F).setBlockTextureName(RefStrings.MODID + ":brick_ducrete"); + reinforced_ducrete = new BlockGeneric(Material.rock).setBlockName("reinforced_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_ducrete"); + + concrete_slab = new BlockMultiSlab(null, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete, asphalt).setBlockName("concrete_slab").setCreativeTab(MainRegistry.blockTab); + concrete_double_slab = new BlockMultiSlab(concrete_slab, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete, asphalt).setBlockName("concrete_double_slab").setCreativeTab(MainRegistry.blockTab); + concrete_brick_slab = new BlockMultiSlab(null, Material.rock, brick_concrete, brick_concrete_mossy, brick_concrete_cracked, brick_concrete_broken, brick_ducrete).setBlockName("concrete_brick_slab").setCreativeTab(MainRegistry.blockTab); + concrete_brick_double_slab = new BlockMultiSlab(concrete_brick_slab, Material.rock, brick_concrete, brick_concrete_mossy, brick_concrete_cracked, brick_concrete_broken, brick_ducrete).setBlockName("concrete_brick_double_slab").setCreativeTab(MainRegistry.blockTab); + brick_slab = new BlockMultiSlab(null, Material.rock, reinforced_stone, reinforced_brick, brick_obsidian, brick_light, brick_compound, brick_asbestos, brick_fire).setBlockName("brick_slab").setCreativeTab(MainRegistry.blockTab); + brick_double_slab = new BlockMultiSlab(brick_slab, Material.rock, reinforced_stone, reinforced_brick, brick_obsidian, brick_light, brick_compound, brick_asbestos, brick_fire).setBlockName("brick_double_slab").setCreativeTab(MainRegistry.blockTab); + + concrete_smooth_stairs = new BlockGenericStairs(concrete_smooth, 0).setBlockName("concrete_smooth_stairs").setCreativeTab(MainRegistry.blockTab); + concrete_stairs = new BlockGenericStairs(concrete, 0).setBlockName("concrete_stairs").setCreativeTab(MainRegistry.blockTab); + concrete_asbestos_stairs = new BlockGenericStairs(concrete_asbestos, 0).setBlockName("concrete_asbestos_stairs").setCreativeTab(MainRegistry.blockTab); + ducrete_smooth_stairs = new BlockGenericStairs(ducrete_smooth, 0).setBlockName("ducrete_smooth_stairs").setCreativeTab(MainRegistry.blockTab); + ducrete_stairs = new BlockGenericStairs(ducrete, 0).setBlockName("ducrete_stairs").setCreativeTab(MainRegistry.blockTab); + brick_concrete_stairs = new BlockGenericStairs(brick_concrete, 0).setBlockName("brick_concrete_stairs").setCreativeTab(MainRegistry.blockTab); + brick_concrete_mossy_stairs = new BlockGenericStairs(brick_concrete_mossy, 0).setBlockName("brick_concrete_mossy_stairs").setCreativeTab(MainRegistry.blockTab); + brick_concrete_cracked_stairs = new BlockGenericStairs(brick_concrete_cracked, 0).setBlockName("brick_concrete_cracked_stairs").setCreativeTab(MainRegistry.blockTab); + brick_concrete_broken_stairs = new BlockGenericStairs(brick_concrete_broken, 0).setBlockName("brick_concrete_broken_stairs").setCreativeTab(MainRegistry.blockTab); + brick_ducrete_stairs = new BlockGenericStairs(brick_ducrete, 0).setBlockName("brick_ducrete_stairs").setCreativeTab(MainRegistry.blockTab); + reinforced_stone_stairs = new BlockGenericStairs(reinforced_stone, 0).setBlockName("reinforced_stone_stairs").setCreativeTab(MainRegistry.blockTab); + reinforced_brick_stairs = new BlockGenericStairs(reinforced_brick, 0).setBlockName("reinforced_brick_stairs").setCreativeTab(MainRegistry.blockTab); + brick_obsidian_stairs = new BlockGenericStairs(brick_obsidian, 0).setBlockName("brick_obsidian_stairs").setCreativeTab(MainRegistry.blockTab); + brick_light_stairs = new BlockGenericStairs(brick_light, 0).setBlockName("brick_light_stairs").setCreativeTab(MainRegistry.blockTab); + brick_compound_stairs = new BlockGenericStairs(brick_compound, 0).setBlockName("brick_compound_stairs").setCreativeTab(MainRegistry.blockTab); + brick_asbestos_stairs = new BlockGenericStairs(brick_asbestos, 0).setBlockName("brick_asbestos_stairs").setCreativeTab(MainRegistry.blockTab); + brick_fire_stairs = new BlockGenericStairs(brick_fire, 0).setBlockName("brick_fire_stairs").setCreativeTab(MainRegistry.blockTab); + asphalt_stairs = new BlockSpeedyStairs(asphalt, 0, 1.5).setBlockName("asphalt_stairs").setCreativeTab(MainRegistry.blockTab); + + vinyl_tile = new BlockEnumMulti(Material.rock, TileType.class, true, true).setBlockName("vinyl_tile").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":vinyl_tile"); + + tile_lab = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab"); + tile_lab_cracked = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked"); + tile_lab_broken = new BlockOutgas(Material.rock, true, 5, true).setBlockName("tile_lab_broken").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_broken"); + + block_meteor = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); + block_meteor_cobble = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); + block_meteor_broken = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); + block_meteor_molten = new BlockOre(Material.rock, true).noFortune().setBlockName("block_meteor_molten").setLightLevel(0.75F).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble_molten"); + block_meteor_treasure = new BlockMeteoriteTreasure(Material.rock).setBlockName("block_meteor_treasure").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_treasure"); + meteor_polished = new BlockGeneric(Material.rock).setBlockName("meteor_polished").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_polished"); + meteor_brick = new BlockGeneric(Material.rock).setBlockName("meteor_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick"); + meteor_brick_mossy = new BlockGeneric(Material.rock).setBlockName("meteor_brick_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_mossy"); + meteor_brick_cracked = new BlockGeneric(Material.rock).setBlockName("meteor_brick_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_cracked"); + meteor_brick_chiseled = new BlockGeneric(Material.rock).setBlockName("meteor_brick_chiseled").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_chiseled"); + meteor_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":meteor_pillar_top").setBlockName("meteor_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_pillar"); + meteor_spawner = new BlockCybercrab(Material.rock).setBlockName("meteor_spawner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F); + meteor_battery = new BlockPillar(Material.rock, RefStrings.MODID + ":meteor_power").setBlockName("meteor_battery").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_spawner_side"); + moon_turf = new BlockFalling(Material.sand).setBlockName("moon_turf").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":moon_turf"); + + brick_jungle = new BlockGeneric(Material.rock).setBlockName("brick_jungle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle"); + brick_jungle_cracked = new BlockGeneric(Material.rock).setBlockName("brick_jungle_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_cracked"); + brick_jungle_fragile = new FragileBrick(Material.rock).setBlockName("brick_jungle_fragile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_fragile"); + brick_jungle_lava = new BlockGeneric(Material.rock).setBlockName("brick_jungle_lava").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_lava"); + brick_jungle_ooze = new BlockOre(Material.rock).setBlockName("brick_jungle_ooze").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_ooze"); + brick_jungle_mystic = new BlockOre(Material.rock).setBlockName("brick_jungle_mystic").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_mystic"); + brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); + brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F); + brick_jungle_circle = new BlockBallsSpawner(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); + + brick_red = new BlockRedBrick(Material.rock).setBlockName("brick_red").setResistance(10_000); + + deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer"); + deco_crt = new BlockDecoCRT(Material.iron).setBlockName("deco_crt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + deco_toaster = new BlockDecoToaster(Material.iron).setBlockName("deco_toaster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + filing_cabinet = new BlockDecoContainer(Material.iron, DecoCabinetEnum.class, true, false, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + tape_recorder = new DecoTapeRecorder(Material.iron).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder"); + steel_poles = new DecoSteelPoles(Material.iron).setBlockName("steel_poles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); + pole_top = new DecoPoleTop(Material.iron).setBlockName("pole_top").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_pole_top"); + pole_satellite_receiver = new DecoPoleSatelliteReceiver(Material.iron).setBlockName("pole_satellite_receiver").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_satellite_receiver"); + steel_wall = new DecoBlock(Material.iron).setBlockName("steel_wall").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_wall"); + steel_corner = new DecoBlock(Material.iron).setBlockName("steel_corner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_wall"); + steel_roof = new DecoBlock(Material.iron).setBlockName("steel_roof").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_roof"); + steel_beam = new DecoBlock(Material.iron).setBlockName("steel_beam").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); + steel_scaffold = new BlockScaffold().setBlockName("steel_scaffold").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel_orig"); + steel_grate = new BlockGrate(Material.iron).setBlockName("steel_grate").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); + steel_grate_wide = new BlockGrate(Material.iron).setBlockName("steel_grate_wide").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); + + deco_pipe = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 0).setBlockName("deco_pipe").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 0).setBlockName("deco_pipe_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 0).setBlockName("deco_pipe_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_rim_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 1).setBlockName("deco_pipe_rim_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_rim_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 1).setBlockName("deco_pipe_rim_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_framed = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 3).setBlockName("deco_pipe_framed").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_framed_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 3).setBlockName("deco_pipe_framed_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_framed_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 3).setBlockName("deco_pipe_framed_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_framed_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 3).setBlockName("deco_pipe_framed_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_framed_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 3).setBlockName("deco_pipe_framed_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_framed_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 3).setBlockName("deco_pipe_framed_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_quad_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 2).setBlockName("deco_pipe_quad_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_quad_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 2).setBlockName("deco_pipe_quad_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + + broadcaster_pc = new PinkCloudBroadcaster(Material.iron).setBlockName("broadcaster_pc").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":broadcaster_pc"); + geiger = new GeigerCounter(Material.iron).setBlockName("geiger").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":geiger"); + hev_battery = new HEVBattery(Material.iron).setBlockName("hev_battery").setCreativeTab(MainRegistry.machineTab).setLightLevel(10F/15F).setHardness(0.5F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":hev_battery"); + + fence_metal = new BlockMetalFence(Material.iron).setBlockName("fence_metal").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":fence_metal"); + + ash_digamma = new BlockAshes(Material.sand).setBlockName("ash_digamma").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setResistance(150.0F).setBlockTextureName(RefStrings.MODID + ":ash_digamma"); + sand_boron = new BlockFalling(Material.sand).setBlockName("sand_boron").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_boron"); + sand_lead = new BlockFalling(Material.sand).setBlockName("sand_lead").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_lead"); + sand_uranium = new BlockFalling(Material.sand).setBlockName("sand_uranium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_uranium"); + sand_polonium = new BlockFalling(Material.sand).setBlockName("sand_polonium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_polonium"); + sand_quartz = new BlockFalling(Material.sand).setBlockName("sand_quartz").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_quartz"); + glass_boron = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_boron", Material.glass).setBlockName("glass_boron").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_lead = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_lead", Material.glass).setBlockName("glass_lead").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_uranium = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_uranium", Material.glass).setBlockName("glass_uranium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_trinitite = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_trinitite", Material.glass).setBlockName("glass_trinitite").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_polonium = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_polonium", Material.glass).setBlockName("glass_polonium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_ash = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_ash", Material.glass).setBlockName("glass_ash").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(3F); + glass_quartz = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_quartz", Material.packedIce, true).setBlockName("glass_quartz").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(1.0F).setResistance(40.0F).setBlockTextureName(RefStrings.MODID + "glass_quartz"); + + mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush"); + mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); + mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem"); + glyphid_base = new BlockGlyphid(Material.coral).setBlockName("glyphid_base").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base"); + glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_eggs_alt"); + + plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); + plant_tall = new BlockTallPlant().setBlockName("plant_tall").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); + plant_dead = new BlockDeadPlant().setBlockName("plant_dead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); + reeds = new BlockReeds().setBlockName("plant_reeds").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); + vine_phosphor = new BlockHangingVine(thick_foliage).setBlockName("vine_phosphor").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.5F); + + waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); + waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); + waste_trinitite = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); + waste_trinitite_red = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); + waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F); + waste_leaves = new WasteLeaves(Material.leaves).setBlockName("waste_leaves").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); + waste_planks = new BlockOre(Material.wood).setBlockName("waste_planks").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_planks"); + frozen_dirt = new BlockOre(Material.ground).setBlockName("frozen_dirt").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_dirt"); + frozen_grass = new WasteEarth(Material.ground, false).setBlockName("frozen_grass").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); + frozen_log = new WasteLog(Material.wood).setBlockName("frozen_log").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); + frozen_planks = new BlockOre(Material.wood).setBlockName("frozen_planks").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_planks"); + fallout = new BlockFallout(Material.sand).setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash"); + foam_layer = new BlockLayering(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); + sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); + leaves_layer = new BlockLayering(Material.leaves).setBlockName("leaves_layer").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); + oil_spill = new BlockLayering(Material.ground).setBlockName("oil_spill").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":oil_spill"); + + burning_earth = new WasteEarth(Material.ground, true).setBlockName("burning_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":burning_earth"); + tektite = new BlockGeneric(Material.sand).setBlockName("tektite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":tektite"); + ore_tektite_osmiridium = new BlockGeneric(Material.sand).setBlockName("ore_tektite_osmiridium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":ore_tektite_osmiridium"); + impact_dirt = new BlockDirt(Material.ground, true).setBlockName("impact_dirt").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":waste_earth_bottom"); + dirt_dead = new BlockFalling(Material.ground).setBlockName("dirt_dead").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_dead"); + dirt_oily = new BlockFalling(Material.ground).setBlockName("dirt_oily").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_oily"); + sand_dirty = new BlockFalling(Material.sand).setBlockName("sand_dirty").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_dirty"); + sand_dirty_red = new BlockFalling(Material.sand).setBlockName("sand_dirty_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_dirty_red"); + stone_cracked = new BlockFalling(Material.rock).setBlockName("stone_cracked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":stone_cracked"); + + sellafield_slaked = new BlockSellafieldSlaked(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); + sellafield_bedrock = new BlockSellafieldSlaked(Material.rock).setBlockName("sellafield_bedrock").setBlockUnbreakable().setResistance(6000000.0F).setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); + sellafield = new BlockSellafield(Material.rock).setBlockName("sellafield").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); + ore_sellafield_diamond = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_diamond").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_diamond"); + ore_sellafield_emerald = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_emerald").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_emerald"); + ore_sellafield_uranium_scorched = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_uranium_scorched").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_uranium_scorched"); + ore_sellafield_schrabidium = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_schrabidium").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_schrabidium"); + ore_sellafield_radgem = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_radgem").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_radgem"); + + geysir_water = new BlockGeysir(Material.rock).setBlockName("geysir_water").setStepSound(Block.soundTypeStone).setHardness(5.0F); + geysir_chlorine = new BlockGeysir(Material.rock).setBlockName("geysir_chlorine").setStepSound(Block.soundTypeStone).setHardness(5.0F); + geysir_vapor = new BlockGeysir(Material.rock).setBlockName("geysir_vapor").setStepSound(Block.soundTypeStone).setHardness(5.0F); + geysir_nether = new BlockGeysir(Material.rock).setBlockName("geysir_nether").setLightLevel(1.0F).setStepSound(Block.soundTypeStone).setHardness(2.0F); + + nuke_gadget = new NukeGadget(Material.iron).setBlockName("nuke_gadget").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":theGadget"); + nuke_boy = new NukeBoy(Material.iron).setBlockName("nuke_boy").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":lilBoy"); + nuke_man = new NukeMan(Material.iron).setBlockName("nuke_man").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":fatMan"); + nuke_mike = new NukeMike(Material.iron).setBlockName("nuke_mike").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":ivyMike"); + nuke_tsar = new NukeTsar(Material.iron).setBlockName("nuke_tsar").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":tsarBomba"); + nuke_fleija = new NukeFleija(Material.iron).setBlockName("nuke_fleija").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":fleija"); + nuke_prototype = new NukePrototype(Material.iron).setBlockName("nuke_prototype").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200).setBlockTextureName(RefStrings.MODID + ":prototype"); + nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":custom"); + nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); + nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); + nuke_fstbmb = new NukeBalefire(Material.iron).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); + + bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); + + flame_war = new BombFlameWar(Material.iron).setBlockName("flame_war").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":flame_war"); + float_bomb = new BombFloat(Material.iron).setBlockName("float_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + therm_endo = new BombThermo(Material.iron).setBlockName("therm_endo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + therm_exo = new BombThermo(Material.iron).setBlockName("therm_exo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + emp_bomb = new BombFloat(Material.iron).setBlockName("emp_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + det_cord = new DetCord(Material.iron).setBlockName("det_cord").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_cord"); + det_charge = new ExplosiveCharge(Material.iron).setBlockName("det_charge").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_charge"); + det_nuke = new ExplosiveCharge(Material.iron).setBlockName("det_nuke").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_nuke"); + det_miner = new DetMiner(Material.iron, RefStrings.MODID + ":det_miner_top").setBlockName("det_miner").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_miner_side"); + red_barrel = new RedBarrel(Material.iron, true).setBlockName("red_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_red"); + pink_barrel = new RedBarrel(Material.iron, true).setBlockName("pink_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_pink"); + yellow_barrel = new YellowBarrel(Material.iron).setBlockName("yellow_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_yellow"); + vitrified_barrel = new YellowBarrel(Material.iron).setBlockName("vitrified_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_vitrified"); + lox_barrel = new RedBarrel(Material.iron, false).setBlockName("lox_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_lox"); + taint_barrel = new RedBarrel(Material.iron, false).setBlockName("taint_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_taint"); + crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":crashed_balefire"); + fireworks = new BlockFireworks(Material.iron).setBlockName("fireworks").setCreativeTab(MainRegistry.nukeTab).setResistance(5.0F); + charge_dynamite = new BlockChargeDynamite().setBlockName("charge_dynamite").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); + charge_miner = new BlockChargeMiner().setBlockName("charge_miner").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); + charge_c4 = new BlockChargeC4().setBlockName("charge_c4").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); + charge_semtex = new BlockChargeSemtex().setBlockName("charge_semtex").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); + mine_ap = new Landmine(Material.iron, 1.5D, 1D).setBlockName("mine_ap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_ap"); + mine_he = new Landmine(Material.iron, 2D, 5D).setBlockName("mine_he").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_he"); + mine_shrap = new Landmine(Material.iron, 1.5D, 1D).setBlockName("mine_shrap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_shrap"); + mine_fat = new Landmine(Material.iron, 2.5D, 1D).setBlockName("mine_fat").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_fat"); + dynamite = new BlockDynamite().setBlockName("dynamite").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":dynamite"); + tnt = new BlockTNT().setBlockName("tnt_ntm").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":tnt"); + semtex = new BlockSemtex().setBlockName("semtex").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":semtex"); + c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4"); + fissure_bomb = new BlockFissureBomb().setBlockName("fissure_bomb").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":fissure_bomb"); + + pump_steam = new MachinePump().setBlockName("pump_steam").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + pump_electric = new MachinePump().setBlockName("pump_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + heater_firebox = new HeaterFirebox().setBlockName("heater_firebox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + heater_oven = new HeaterOven().setBlockName("heater_oven").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + heater_oilburner = new HeaterOilburner().setBlockName("heater_oilburner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + heater_electric = new HeaterElectric().setBlockName("heater_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + heater_heatex = new HeaterHeatex().setBlockName("heater_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_ashpit = new MachineAshpit().setBlockName("machine_ashpit").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("stonebrick"); + + furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); + furnace_steel = new FurnaceSteel().setBlockName("furnace_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + furnace_combination = new FurnaceCombination().setBlockName("furnace_combination").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_light_alt"); + machine_stirling = new MachineStirling().setBlockName("machine_stirling").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_stirling_steel = new MachineStirling().setBlockName("machine_stirling_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_stirling_creative = new MachineStirling().setBlockName("machine_stirling_creative").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_strand_caster = new MachineStrandCaster().setBlockName("machine_strand_caster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + machine_industrial_boiler = new MachineHeatBoilerIndustrial().setBlockName("machine_industrial_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + foundry_mold = new FoundryMold().setBlockName("foundry_mold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + foundry_basin = new FoundryBasin().setBlockName("foundry_basin").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + foundry_channel = new FoundryChannel().setBlockName("foundry_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + foundry_tank = new FoundryTank().setBlockName("foundry_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + foundry_outlet = new FoundryOutlet().setBlockName("foundry_outlet").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + foundry_slagtap = new FoundrySlagtap().setBlockName("foundry_slagtap").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + slag = new BlockDynamicSlag().setBlockName("slag").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":slag"); + + machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + machine_difurnace_extension = new MachineDiFurnaceExtension().setBlockName("machine_difurnace_extension").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_difurnace_rtg_off = new MachineDiFurnaceRTG(false).setBlockName("machine_difurnace_rtg_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_difurnace_rtg_on = new MachineDiFurnaceRTG(true).setBlockName("machine_difurnace_rtg_on").setHardness(5.0F).setResistance(10.0F).setLightLevel(2.0F).setCreativeTab(null); + + machine_centrifuge = new MachineCentrifuge(Material.iron).setBlockName("machine_centrifuge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_gascent = new MachineGasCent(Material.iron).setBlockName("machine_gascent").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_fel = new MachineFEL(Material.iron).setBlockName("machine_fel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_silex = new MachineSILEX(Material.iron).setBlockName("machine_silex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_rotary_furnace = new MachineRotaryFurnace(Material.iron).setBlockName("machine_rotary_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + machine_crystallizer = new MachineCrystallizer(Material.iron).setBlockName("machine_crystallizer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_crystallizer"); + + machine_uf6_tank = new MachineUF6Tank(Material.iron).setBlockName("machine_uf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + + machine_puf6_tank = new MachinePuF6Tank(Material.iron).setBlockName("machine_puf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + + machine_reactor_breeding = new MachineReactorBreeding(Material.iron).setBlockName("machine_reactor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor"); + + machine_furnace_brick_off = new MachineBrickFurnace(false).setBlockName("machine_furnace_brick_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_furnace_brick_on = new MachineBrickFurnace(true).setBlockName("machine_furnace_brick_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + machine_nuke_furnace_off = new MachineNukeFurnace(false).setBlockName("machine_nuke_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_nuke_furnace_on = new MachineNukeFurnace(true).setBlockName("machine_nuke_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + machine_rtg_furnace_off = new MachineRtgFurnace(false).setBlockName("machine_rtg_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_rtg_furnace_on = new MachineRtgFurnace(true).setBlockName("machine_rtg_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + + machine_industrial_generator = new MachineIGenerator(Material.iron).setBlockName("machine_industrial_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); + machine_cyclotron = new MachineCyclotron(Material.iron).setBlockName("machine_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cyclotron"); + machine_exposure_chamber = new MachineExposureChamber(Material.iron).setBlockName("machine_exposure_chamber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); + machine_radgen = new MachineRadGen(Material.iron).setBlockName("machine_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_radgen"); + + hadron_plating = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating"); + hadron_plating_blue = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_blue").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_blue"); + hadron_plating_black = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_black").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_black"); + hadron_plating_yellow = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_yellow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_yellow"); + hadron_plating_striped = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_striped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_striped"); + hadron_plating_voltz = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_voltz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_voltz"); + hadron_plating_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_plating_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_glass"); + hadron_coil_alloy = new BlockHadronCoil(Material.iron, 10).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_alloy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_alloy"); + hadron_coil_gold = new BlockHadronCoil(Material.iron, 25).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_gold"); + hadron_coil_neodymium = new BlockHadronCoil(Material.iron, 50).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_neodymium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_neodymium"); + hadron_coil_magtung = new BlockHadronCoil(Material.iron, 100).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_magtung").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_magtung"); + hadron_coil_schrabidium = new BlockHadronCoil(Material.iron, 250).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_schrabidium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_schrabidium"); + hadron_coil_schrabidate = new BlockHadronCoil(Material.iron, 500).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_schrabidate"); + hadron_coil_starmetal = new BlockHadronCoil(Material.iron, 1000).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_starmetal").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_starmetal"); + hadron_coil_chlorophyte = new BlockHadronCoil(Material.iron, 2500).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_chlorophyte").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_chlorophyte"); + hadron_coil_mese = new BlockHadronCoil(Material.iron, 10000).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_mese").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_mese"); + hadron_power = new BlockHadronPower(Material.iron, 1000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); + hadron_power_10m = new BlockHadronPower(Material.iron, 10000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10m").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); + hadron_power_100m = new BlockHadronPower(Material.iron, 100000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_100m").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); + hadron_power_1g = new BlockHadronPower(Material.iron, 1000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_1g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); + hadron_power_10g = new BlockHadronPower(Material.iron, 10000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); + hadron_diode = new BlockHadronDiode(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + hadron_analysis = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis"); + hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass"); + hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_access"); + hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_core"); + hadron_cooler = new BlockHadronCooler(Material.iron).setBlockName("hadron_cooler").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + + machine_electric_furnace_off = new MachineElectricFurnace(false).setBlockName("machine_electric_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_electric_furnace_on = new MachineElectricFurnace(true).setBlockName("machine_electric_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + machine_arc_furnace_off = new MachineArcFurnace(false).setBlockName("machine_arc_furnace_off").setHardness(5.0F).setResistance(10.0F); + machine_arc_furnace_on = new MachineArcFurnace(true).setBlockName("machine_arc_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + machine_arc_furnace = new MachineArcFurnaceLarge().setBlockName("machine_arc_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_microwave = new MachineMicrowave(Material.iron).setBlockName("machine_microwave").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_microwave"); + + machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_schrabidium_battery = new MachineBattery(Material.iron, 25_000_000_000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); + + capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); + capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_niobium"); + capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); + + machine_wood_burner = new MachineWoodBurner(Material.iron).setBlockName("machine_wood_burner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_diesel = new MachineDiesel().setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_combustion_engine = new MachineCombustionEngine().setBlockName("machine_combustion_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + machine_shredder = new MachineShredder(Material.iron).setBlockName("machine_shredder").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + + machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + teleanchor = new MachineTeleanchor().setBlockName("teleanchor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + field_disturber = new MachineFieldDisturber().setBlockName("field_disturber").setHardness(5.0F).setResistance(200.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":field_disturber"); + + machine_rtg_grey = new MachineRTG(Material.iron).setBlockName("machine_rtg_grey").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg"); + machine_amgen = new MachineAmgen(Material.iron).setBlockName("machine_amgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_geo = new MachineAmgen(Material.iron).setBlockName("machine_geo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_minirtg = new MachineMiniRTG(Material.iron).setBlockName("machine_minirtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_cell"); + machine_powerrtg = new MachineMiniRTG(Material.iron).setBlockName("machine_powerrtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_polonium"); + machine_radiolysis = new MachineRadiolysis(Material.iron).setBlockName("machine_radiolysis").setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + machine_hephaestus = new MachineHephaestus(Material.iron).setBlockName("machine_hephaestus").setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + + red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_wire_coated"); + red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_neo"); + red_cable_classic = new BlockCable(Material.iron).setBlockName("red_cable_classic").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_cable_classic"); + red_cable_paintable = new BlockCablePaintable().setBlockName("red_cable_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + red_cable_gauge = new BlockCableGauge().setBlockName("red_cable_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + red_connector = new ConnectorRedWire(Material.iron).setBlockName("red_connector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector"); + red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_wood = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_wood_transformer = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_steel = new PylonMedium(Material.iron).setBlockName("red_pylon_medium_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_medium_steel_transformer = new PylonMedium(Material.iron).setBlockName("red_pylon_medium_steel_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); + red_pylon_large = new PylonLarge(Material.iron).setBlockName("red_pylon_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon_large"); + substation = new Substation(Material.iron).setBlockName("substation").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":substation"); + cable_switch = new CableSwitch(Material.iron).setBlockName("cable_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + cable_detector = new CableDetector(Material.iron).setBlockName("cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + cable_diode = new CableDiode(Material.iron).setBlockName("cable_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_diode"); + machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); + fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); + fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + fluid_duct_paintable = new FluidDuctPaintable().setBlockName("fluid_duct_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + fluid_valve = new FluidValve(Material.iron).setBlockName("fluid_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + fluid_switch = new FluidSwitch(Material.iron).setBlockName("fluid_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_drain = new MachineDrain(Material.iron).setBlockName("machine_drain").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); + radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + radio_torch_counter = new RadioTorchCounter().setBlockName("radio_torch_counter").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_counter"); + radio_torch_logic = new RadioTorchLogic().setBlockName("radio_torch_logic").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + radio_telex = new RadioTelex().setBlockName("radio_telex").setHardness(3F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radio_telex"); + + conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor_express = new BlockConveyorExpress().setBlockName("conveyor_express").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_express"); + //conveyor_classic = new BlockConveyorClassic().setBlockName("conveyor_classic").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); + conveyor_triple = new BlockConveyorTriple().setBlockName("conveyor_triple").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_triple"); + conveyor_chute = new BlockConveyorChute().setBlockName("conveyor_chute").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor_lift = new BlockConveyorLift().setBlockName("conveyor_lift").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + crane_extractor = new CraneExtractor().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crane_inserter = new CraneInserter().setBlockName("crane_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crane_grabber = new CraneGrabber().setBlockName("crane_grabber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crane_router = new CraneRouter().setBlockName("crane_router").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crane_boxer = new CraneBoxer().setBlockName("crane_boxer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crane_unboxer = new CraneUnboxer().setBlockName("crane_unboxer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crane_splitter = new CraneSplitter().setBlockName("crane_splitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":crane_side"); + crane_partitioner = new CranePartitioner().setBlockName("crane_partitioner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":crane_partitioner_side"); + fan = new MachineFan().setBlockName("fan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + drone_waypoint = new DroneWaypoint().setBlockName("drone_waypoint").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint"); + drone_crate = new DroneCrate().setBlockName("drone_crate").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + drone_waypoint_request = new DroneWaypointRequest().setBlockName("drone_waypoint_request").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint_request"); + drone_dock = new DroneDock().setBlockName("drone_dock").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_dock"); + drone_crate_provider = new DroneDock().setBlockName("drone_crate_provider").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_provider"); + drone_crate_requester = new DroneDock().setBlockName("drone_crate_requester").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_requester"); + + chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); + + ladder_sturdy = new BlockNTMLadder().setBlockName("ladder_sturdy").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_sturdy"); + ladder_iron = new BlockNTMLadder().setBlockName("ladder_iron").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_iron"); + ladder_gold = new BlockNTMLadder().setBlockName("ladder_gold").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_gold"); + ladder_aluminium = new BlockNTMLadder().setBlockName("ladder_aluminium").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_aluminium"); + ladder_copper = new BlockNTMLadder().setBlockName("ladder_copper").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_copper"); + ladder_titanium = new BlockNTMLadder().setBlockName("ladder_titanium").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_titanium"); + ladder_lead = new BlockNTMLadder().setBlockName("ladder_lead").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_lead"); + ladder_cobalt = new BlockNTMLadder().setBlockName("ladder_cobalt").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_cobalt"); + ladder_steel = new BlockNTMLadder().setBlockName("ladder_steel").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_steel"); + ladder_tungsten = new BlockNTMLadder().setBlockName("ladder_tungsten").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_tungsten"); + + barrel_plastic = new BlockFluidBarrel(Material.iron, 12000).setBlockName("barrel_plastic").setStepSound(Block.soundTypeStone).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_plastic"); + barrel_corroded = new BlockFluidBarrel(Material.iron, 6000).setBlockName("barrel_corroded").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_corroded"); + barrel_iron = new BlockFluidBarrel(Material.iron, 8000).setBlockName("barrel_iron").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_iron"); + barrel_steel = new BlockFluidBarrel(Material.iron, 16000).setBlockName("barrel_steel").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_steel"); + barrel_tcalloy = new BlockFluidBarrel(Material.iron, 24000).setBlockName("barrel_tcalloy").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_tcalloy"); + barrel_antimatter = new BlockFluidBarrel(Material.iron, 16000).setBlockName("barrel_antimatter").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_antimatter"); + + machine_transformer = new MachineTransformer(Material.iron, 10000L, 1).setBlockName("machine_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron"); + machine_transformer_dnt = new MachineTransformer(Material.iron, 1000000000000000L, 1).setBlockName("machine_transformer_dnt").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer"); + machine_transformer_20 = new MachineTransformer(Material.iron, 10000L, 20).setBlockName("machine_transformer_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron"); + machine_transformer_dnt_20 = new MachineTransformer(Material.iron, 1000000000000000L, 20).setBlockName("machine_transformer_dnt_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer"); + + machine_satlinker = new MachineSatLinker(Material.iron).setBlockName("machine_satlinker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_satlinker_side"); + machine_keyforge = new MachineKeyForge(Material.iron).setBlockName("machine_keyforge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":machine_keyforge_side"); + machine_armor_table = new BlockArmorTable(Material.iron).setBlockName("machine_armor_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab); + + machine_solar_boiler = new MachineSolarBoiler(Material.iron).setBlockName("machine_solar_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_solar_boiler"); + solar_mirror = new SolarMirror(Material.iron).setBlockName("solar_mirror").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":solar_mirror"); + + struct_launcher = new BlockGeneric(Material.iron).setBlockName("struct_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher"); + struct_scaffold = new BlockGeneric(Material.iron).setBlockName("struct_scaffold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_scaffold"); + struct_launcher_core = new BlockStruct(Material.iron).setBlockName("struct_launcher_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher_core"); + struct_launcher_core_large = new BlockStruct(Material.iron).setBlockName("struct_launcher_core_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher_core_large"); + struct_soyuz_core = new BlockSoyuzStruct(Material.iron).setBlockName("struct_soyuz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_soyuz_core"); + struct_iter_core = new BlockITERStruct(Material.iron).setBlockName("struct_iter_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_iter_core"); + struct_plasma_core = new BlockPlasmaStruct(Material.iron).setBlockName("struct_plasma_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_plasma_core"); + struct_watz_core = new BlockWatzStruct(Material.iron).setBlockName("struct_watz_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_watz_core"); + struct_icf_core = new BlockICFStruct(Material.iron).setBlockName("struct_icf_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_icf_core"); + + factory_titanium_hull = new BlockGeneric(Material.iron).setBlockName("factory_titanium_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull"); + factory_advanced_hull = new BlockGeneric(Material.iron).setBlockName("factory_advanced_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_hull"); + + cm_block = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_block").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_block"); + cm_sheet = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_sheet").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_sheet"); + cm_engine = new BlockCM(Material.iron, EnumCMEngines.class, true, true).setBlockName("cm_engine").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_engine"); + cm_tank = new BlockCMGlass(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_tank").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_tank"); + cm_circuit = new BlockCM(Material.iron, EnumCMCircuit.class, true, true).setBlockName("cm_circuit").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_circuit"); + cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); + cm_flux = new BlockCMFlux(Material.iron, RefStrings.MODID + ":cm_flux_top").setBlockName("cm_flux").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_flux_side"); + cm_heat = new BlockCMHeat(Material.iron, RefStrings.MODID +":cm_heat_top").setBlockName("cm_heat").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_heat_side"); + custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); + cm_anchor = new BlockCMAnchor().setBlockName("custom_machine_anchor").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F); + + pwr_fuel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); + pwr_control = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); + pwr_channel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_channel_top").setBlockName("pwr_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_channel_side"); + pwr_heatex = new BlockGenericPWR(Material.iron).setBlockName("pwr_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatex"); + pwr_heatsink = new BlockGenericPWR(Material.iron).setBlockName("pwr_heatsink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatsink"); + pwr_neutron_source = new BlockGenericPWR(Material.iron).setBlockName("pwr_neutron_source").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_neutron_source"); + pwr_reflector = new BlockGenericPWR(Material.iron).setBlockName("pwr_reflector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_reflector"); + pwr_casing = new BlockGenericPWR(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); + pwr_port = new BlockGenericPWR(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); + pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); + pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block"); + + fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); + fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); + fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); + fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); + fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); + plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma"); + iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":iter"); + plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); + + machine_icf_press = new MachineICFPress().setBlockName("machine_icf_press").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + icf_component = new BlockICFComponent().setBlockName("icf_component").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":icf_component"); + icf_controller = new MachineICFController().setBlockName("icf_controller").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":icf_casing"); + icf_laser_component = new BlockICFLaserComponent().setBlockName("icf_laser_component").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab); + icf_block = new BlockICF(Material.iron).setBlockName("icf_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":icf_block"); + + watz_element = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_element_top").setBlockName("watz_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_element_side"); + watz_cooler = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_cooler_top").setBlockName("watz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_cooler_side"); + watz_end = new BlockToolConversion(Material.iron).addVariant("_bolted").setBlockName("watz_end").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_casing"); + watz = new Watz().setBlockName("watz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + watz_pump = new WatzPump().setBlockName("watz_pump").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + balefire = new Balefire().setBlockName("balefire").setHardness(0.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":balefire"); + fire_digamma = new DigammaFlame().setBlockName("fire_digamma").setHardness(0.0F).setResistance(150F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fire_digamma"); + digamma_matter = new DigammaMatter().setBlockName("digamma_matter").setBlockUnbreakable().setResistance(18000000).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":digamma_matter"); + + machine_converter_he_rf = new BlockConverterHeRf(Material.iron).setBlockName("machine_converter_he_rf").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_converter_he_rf"); + machine_converter_rf_he = new BlockConverterRfHe(Material.iron).setBlockName("machine_converter_rf_he").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_converter_rf_he"); + + dfc_emitter = new CoreComponent(Material.iron).setBlockName("dfc_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_emitter"); + dfc_injector = new CoreComponent(Material.iron).setBlockName("dfc_injector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_injector"); + dfc_receiver = new CoreComponent(Material.iron).setBlockName("dfc_receiver").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_receiver"); + dfc_stabilizer = new CoreComponent(Material.iron).setBlockName("dfc_stabilizer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_stabilizer"); + dfc_core = new CoreCore(Material.iron).setBlockName("dfc_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_core"); + + seal_frame = new BlockGeneric(Material.iron).setBlockName("seal_frame").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":seal_frame"); + seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); + seal_hatch = new BlockHatch(Material.iron).setBlockName("seal_hatch").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":seal_hatch_3"); + + vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door"); + blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door"); + + sliding_blast_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDE_DOOR).setBlockName("sliding_blast_door").setHardness(10.0F).setResistance(750.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":sliding_blast_door"); + fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); + transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); + silo_hatch = new BlockDoorGeneric(Material.iron, DoorDecl.SILO_HATCH).setBlockName("silo_hatch").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + silo_hatch_large = new BlockDoorGeneric(Material.iron, DoorDecl.SILO_HATCH_LARGE).setBlockName("silo_hatch_large").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + secure_access_door = new BlockDoorGeneric(Material.iron, DoorDecl.SECURE_ACCESS_DOOR).setBlockName("secure_access_door").setHardness(20.0F).setResistance(2_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + large_vehicle_door = new BlockDoorGeneric(Material.iron, DoorDecl.LARGE_VEHICLE_DOOR).setBlockName("large_vehicle_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + qe_containment = new BlockDoorGeneric(Material.iron, DoorDecl.QE_CONTAINMENT).setBlockName("qe_containment").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + qe_sliding_door = new BlockDoorGeneric(Material.iron, DoorDecl.QE_SLIDING).setBlockName("qe_sliding_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + round_airlock_door = new BlockDoorGeneric(Material.iron, DoorDecl.ROUND_AIRLOCK_DOOR).setBlockName("round_airlock_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + sliding_seal_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDING_SEAL_DOOR).setBlockName("sliding_seal_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + water_door = new BlockDoorGeneric(Material.iron, DoorDecl.WATER_DOOR).setBlockName("water_door").setHardness(5.0F).setResistance(50.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + door_metal = new BlockModDoor(Material.iron).setBlockName("door_metal").setHardness(5.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":door_metal"); + door_office = new BlockModDoor(Material.iron).setBlockName("door_office").setHardness(10.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":door_office"); + door_bunker = new BlockModDoor(Material.iron).setBlockName("door_bunker").setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":door_bunker"); + door_red = new BlockModDoor(Material.iron).setBlockName("door_red").setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":door_red"); + + barbed_wire = new BarbedWire(Material.iron).setBlockName("barbed_wire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_model"); + barbed_wire_fire = new BarbedWire(Material.iron).setBlockName("barbed_wire_fire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_fire_model"); + barbed_wire_poison = new BarbedWire(Material.iron).setBlockName("barbed_wire_poison").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_poison_model"); + barbed_wire_acid = new BarbedWire(Material.iron).setBlockName("barbed_wire_acid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_acid_model"); + barbed_wire_wither = new BarbedWire(Material.iron).setBlockName("barbed_wire_wither").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_wither_model"); + barbed_wire_ultradeath = new BarbedWire(Material.iron).setBlockName("barbed_wire_ultradeath").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_ultradeath_model"); + spikes = new Spikes(Material.iron).setBlockName("spikes").setHardness(2.5F).setResistance(5.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":spikes"); + + charger = new Charger(Material.iron).setBlockName("charger").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); + + launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); + launch_pad_rusted = new LaunchPadRusted(Material.iron).setBlockName("launch_pad_rusted").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_rust"); + launch_pad_large = new LaunchPadLarge(Material.iron).setBlockName("launch_pad_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); + machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + radar_screen = new MachineRadarScreen(Material.iron).setBlockName("radar_screen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + machine_missile_assembly = new MachineMissileAssembly(Material.iron).setBlockName("machine_missile_assembly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_missile_assembly"); + compact_launcher = new CompactLauncher(Material.iron).setBlockName("compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":compact_launcher"); + launch_table = new LaunchTable(Material.iron).setBlockName("launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_table"); + soyuz_launcher = new SoyuzLauncher(Material.iron).setBlockName("soyuz_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_launcher"); + + sat_mapper = new DecoBlock(Material.iron).setBlockName("sat_mapper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_mapper"); + sat_radar = new DecoBlock(Material.iron).setBlockName("sat_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_radar"); + sat_scanner = new DecoBlock(Material.iron).setBlockName("sat_scanner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_scanner"); + sat_laser = new DecoBlock(Material.iron).setBlockName("sat_laser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_laser"); + sat_foeq = new DecoBlock(Material.iron).setBlockName("sat_foeq").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_foeq"); + sat_resonator = new DecoBlock(Material.iron).setBlockName("sat_resonator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_resonator"); + + sat_dock = new MachineSatDock(Material.iron).setBlockName("sat_dock").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":sat_dock"); + soyuz_capsule = new SoyuzCapsule(Material.iron).setBlockName("soyuz_capsule").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_capsule"); + crate_supply = new BlockSupplyCrate(Material.wood).setBlockName("crate_supply").setStepSound(Block.soundTypeWood).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":crate_can"); + + turret_chekhov = new TurretChekhov(Material.iron).setBlockName("turret_chekhov").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_friendly = new TurretFriendly(Material.iron).setBlockName("turret_friendly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_jeremy = new TurretJeremy(Material.iron).setBlockName("turret_jeremy").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_tauon = new TurretTauon(Material.iron).setBlockName("turret_tauon").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_richard = new TurretRichard(Material.iron).setBlockName("turret_richard").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_howard = new TurretHoward(Material.iron).setBlockName("turret_howard").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_howard_damaged = new TurretHowardDamaged(Material.iron).setBlockName("turret_howard_damaged").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_rust"); + turret_maxwell = new TurretMaxwell(Material.iron).setBlockName("turret_maxwell").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_fritz = new TurretFritz(Material.iron).setBlockName("turret_fritz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_arty = new TurretArty(Material.iron).setBlockName("turret_arty").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_himars = new TurretHIMARS(Material.iron).setBlockName("turret_himars").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_sentry = new TurretSentry().setBlockName("turret_sentry").setHardness(5.0F).setResistance(5.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_sentry_damaged = new TurretSentryDamaged().setBlockName("turret_sentry_damaged").setHardness(5.0F).setResistance(5.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_rust"); + + rbmk_rod = new RBMKRod(false).setBlockName("rbmk_rod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element"); + rbmk_rod_mod = new RBMKRod(true).setBlockName("rbmk_rod_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_mod"); + rbmk_rod_reasim = new RBMKRodReaSim(false).setBlockName("rbmk_rod_reasim").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_reasim"); + rbmk_rod_reasim_mod = new RBMKRodReaSim(true).setBlockName("rbmk_rod_reasim_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_reasim_mod"); + rbmk_control = new RBMKControl(false).setBlockName("rbmk_control").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control"); + rbmk_control_mod = new RBMKControl(true).setBlockName("rbmk_control_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control_mod"); + rbmk_control_auto = new RBMKControlAuto().setBlockName("rbmk_control_auto").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control_auto"); + rbmk_blank = new RBMKBlank().setBlockName("rbmk_blank").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_blank"); + rbmk_boiler = new RBMKBoiler().setBlockName("rbmk_boiler").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_boiler"); + rbmk_reflector = new RBMKReflector().setBlockName("rbmk_reflector").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_reflector"); + rbmk_absorber = new RBMKAbsorber().setBlockName("rbmk_absorber").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_absorber"); + rbmk_moderator = new RBMKModerator().setBlockName("rbmk_moderator").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_moderator"); + rbmk_outgasser = new RBMKOutgasser().setBlockName("rbmk_outgasser").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_outgasser"); + rbmk_storage = new RBMKStorage().setBlockName("rbmk_storage").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_storage"); + rbmk_cooler = new RBMKCooler().setBlockName("rbmk_cooler").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_cooler"); + rbmk_heater = new RBMKHeater().setBlockName("rbmk_heater").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_heater"); + rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console"); + rbmk_crane_console = new RBMKCraneConsole().setBlockName("rbmk_crane_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_crane_console"); + rbmk_loader = new RBMKLoader(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader"); + rbmk_steam_inlet = new RBMKInlet(Material.iron).setBlockName("rbmk_steam_inlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_inlet"); + rbmk_steam_outlet = new RBMKOutlet(Material.iron).setBlockName("rbmk_steam_outlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_outlet"); + pribris = new RBMKDebris().setBlockName("pribris").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris"); + pribris_burning = new RBMKDebrisBurning().setBlockName("pribris_burning").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_burning"); + pribris_radiating = new RBMKDebrisRadiating().setBlockName("pribris_radiating").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_radiating"); + pribris_digamma = new RBMKDebrisDigamma().setBlockName("pribris_digamma").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_digamma"); + + book_guide = new Guide(Material.iron).setBlockName("book_guide").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.nukeTab); + + rail_wood = new RailGeneric().setMaxSpeed(0.2F).setBlockName("rail_wood").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_wood"); + rail_narrow = new RailGeneric().setBlockName("rail_narrow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow"); + rail_highspeed = new RailGeneric().setMaxSpeed(1F).setFlexible(false).setBlockName("rail_highspeed").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_highspeed"); + rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); + rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); + rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); + rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_straight_short = new RailStandardStraightShort().setBlockName("rail_large_straight_short").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve = new RailStandardCurveBase().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve_7 = new RailStandardCurveWide7().setBlockName("rail_large_curve_7").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve_9 = new RailStandardCurveWide9().setBlockName("rail_large_curve_9").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); + rail_large_switch = new RailStandardSwitch().setBlockName("rail_large_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_switch_flipped = new RailStandardSwitchFlipped().setBlockName("rail_large_switch_flipped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + + crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); + crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); + crate_lead = new BlockCrate(Material.iron).setBlockName("crate_lead").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_lead"); + crate_metal = new BlockCrate(Material.iron).setBlockName("crate_metal").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_metal"); + crate_red = new BlockCrate(Material.iron).setBlockName("crate_red").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crate_red"); + crate_can = new BlockCanCrate(Material.wood).setBlockName("crate_can").setStepSound(Block.soundTypeWood).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_can"); + crate_ammo = new BlockAmmoCrate(Material.iron).setBlockName("crate_ammo").setStepSound(Block.soundTypeMetal).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.consumableTab); + crate_jungle = new BlockJungleCrate(Material.rock).setBlockName("crate_jungle").setStepSound(Block.soundTypeStone).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_jungle"); + crate_iron = new BlockStorageCrate(Material.iron).setBlockName("crate_iron").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crate_steel = new BlockStorageCrate(Material.iron).setBlockName("crate_steel").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crate_desh = new BlockStorageCrate(Material.iron).setBlockName("crate_desh").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crate_tungsten = new BlockStorageCrate(Material.iron).setBlockName("crate_tungsten").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(300.0F).setCreativeTab(MainRegistry.machineTab); + crate_template = new BlockStorageCrate(Material.iron).setBlockName("crate_template").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(300.0F).setCreativeTab(MainRegistry.machineTab); + safe = new BlockStorageCrate(Material.iron).setBlockName("safe").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + mass_storage = new BlockMassStorage().setBlockName("mass_storage").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + + boxcar = new DecoBlock(Material.iron).setBlockName("boxcar").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boxcar"); + boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat"); + + machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well"); + machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); + machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); + machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + chimney_brick = new MachineChimneyBrick(Material.iron).setBlockName("chimney_brick").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + chimney_industrial = new MachineChimneyIndustrial(Material.iron).setBlockName("chimney_industrial").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext.machine"); + machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery"); + machine_vacuum_distill = new MachineVacuumDistill(Material.iron).setBlockName("machine_vacuum_distill").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_fraction_tower = new MachineFractionTower(Material.iron).setBlockName("machine_fraction_tower").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + fraction_spacer = new FractionSpacer(Material.iron).setBlockName("fraction_spacer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_catalytic_cracker = new MachineCatalyticCracker(Material.iron).setBlockName("machine_catalytic_cracker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_catalytic_reformer = new MachineCatalyticReformer(Material.iron).setBlockName("machine_catalytic_reformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_hydrotreater = new MachineHydrotreater(Material.iron).setBlockName("machine_hydrotreater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_coker = new MachineCoker(Material.iron).setBlockName("machine_coker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_pyrooven = new MachinePyroOven(Material.iron).setBlockName("machine_pyrooven").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_autosaw = new MachineAutosaw().setBlockName("machine_autosaw").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_excavator = new MachineExcavator().setBlockName("machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_ore_slopper = new MachineOreSlopper().setBlockName("machine_ore_slopper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_mining_laser = new MachineMiningLaser(Material.iron).setBlockName("machine_mining_laser").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_mining_laser"); + barricade = new BlockNoDrop(Material.sand).setBlockName("barricade").setHardness(1.0F).setResistance(2.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barricade"); + machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler"); + machine_assemfac = new MachineAssemfac(Material.iron).setBlockName("machine_assemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_arc_welder = new MachineArcWelder(Material.iron).setBlockName("machine_arc_welder").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_soldering_station = new MachineSolderingStation(Material.iron).setBlockName("machine_soldering_station").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_chemfac = new MachineChemfac(Material.iron).setBlockName("machine_chemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_mixer = new MachineMixer(Material.iron).setBlockName("machine_mixer").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_fluidtank = new MachineFluidTank(Material.iron).setBlockName("machine_fluidtank").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fluidtank"); + machine_bat9000 = new MachineBigAssTank9000(Material.iron).setBlockName("machine_bat9000").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_orbus = new MachineOrbus(Material.iron).setBlockName("machine_orbus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_turbofan = new MachineTurbofan(Material.iron).setBlockName("machine_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_turbofan"); + machine_turbinegas = new MachineTurbineGas(Material.iron).setBlockName("machine_turbinegas").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_lpw2 = new MachineLPW2().setBlockName("machine_lpw2").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + press_preheater = new BlockBase(Material.iron).setBlockName("press_preheater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":press_preheater"); + machine_press = new MachinePress(Material.iron).setBlockName("machine_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_press"); + machine_epress = new MachineEPress(Material.iron).setBlockName("machine_epress").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_epress"); + machine_conveyor_press = new MachineConveyorPress(Material.iron).setBlockName("machine_conveyor_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_ammo_press = new MachineAmmoPress().setBlockName("machine_ammo_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + reactor_research = new ReactorResearch(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small"); + reactor_zirnox = new ReactorZirnox(Material.iron).setBlockName("machine_zirnox").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); + + machine_boiler_off = new MachineBoiler(false).setBlockName("machine_boiler_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_boiler_off"); + + machine_steam_engine = new MachineSteamEngine().setBlockName("machine_steam_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_turbine = new MachineTurbine(Material.iron).setBlockName("machine_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_turbine"); + machine_large_turbine = new MachineLargeTurbine(Material.iron).setBlockName("machine_large_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_large_turbine"); + machine_chungus = new MachineChungus(Material.iron).setBlockName("machine_chungus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_chungus"); + machine_condenser = new MachineCondenser(Material.iron).setBlockName("machine_condenser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":condenser"); + machine_tower_small = new MachineTowerSmall(Material.iron).setBlockName("machine_tower_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + machine_tower_large = new MachineTowerLarge(Material.iron).setBlockName("machine_tower_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); + machine_condenser_powered = new MachineCondenserPowered(Material.iron).setBlockName("machine_condenser_powered").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + + machine_deuterium_extractor = new MachineDeuteriumExtractor(Material.iron).setBlockName("machine_deuterium_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_deuterium_extractor_side"); + machine_deuterium_tower = new DeuteriumTower(Material.iron).setBlockName("machine_deuterium_tower").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); + + machine_liquefactor = new MachineLiquefactor().setBlockName("machine_liquefactor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + machine_solidifier = new MachineSolidifier().setBlockName("machine_solidifier").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + machine_compressor = new MachineCompressor().setBlockName("machine_compressor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + + machine_electrolyser = new MachineElectrolyser().setBlockName("machine_electrolyser").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + + machine_autocrafter = new MachineAutocrafter().setBlockName("machine_autocrafter").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); + machine_funnel = new MachineFunnel().setBlockName("machine_funnel").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); + + anvil_iron = new NTMAnvil(Material.iron, NTMAnvil.TIER_IRON).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); + anvil_lead = new NTMAnvil(Material.iron, NTMAnvil.TIER_IRON).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); + anvil_steel = new NTMAnvil(Material.iron, NTMAnvil.TIER_STEEL).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); + anvil_desh = new NTMAnvil(Material.iron, NTMAnvil.TIER_OIL).setBlockName("anvil_desh").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_desh"); + anvil_ferrouranium = new NTMAnvil(Material.iron, NTMAnvil.TIER_NUCLEAR).setBlockName("anvil_ferrouranium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_ferrouranium"); + anvil_saturnite = new NTMAnvil(Material.iron, NTMAnvil.TIER_RBMK).setBlockName("anvil_saturnite").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_saturnite"); + anvil_bismuth_bronze = new NTMAnvil(Material.iron, NTMAnvil.TIER_RBMK).setBlockName("anvil_bismuth_bronze").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_bismuth_bronze"); + anvil_arsenic_bronze = new NTMAnvil(Material.iron, NTMAnvil.TIER_RBMK).setBlockName("anvil_arsenic_bronze").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_arsenic_bronze"); + anvil_schrabidate = new NTMAnvil(Material.iron, NTMAnvil.TIER_FUSION).setBlockName("anvil_schrabidate").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_schrabidate"); + anvil_dnt = new NTMAnvil(Material.iron, NTMAnvil.TIER_PARTICLE).setBlockName("anvil_dnt").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_dnt"); + anvil_osmiridium = new NTMAnvil(Material.iron, NTMAnvil.TIER_GERALD).setBlockName("anvil_osmiridium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_osmiridium"); + anvil_murky = new NTMAnvil(Material.iron, 1916169).setBlockName("anvil_murky").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); + + machine_waste_drum = new WasteDrum(Material.iron).setBlockName("machine_waste_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":waste_drum"); + machine_storage_drum = new StorageDrum(Material.iron).setBlockName("machine_storage_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_storage_drum"); + + machine_schrabidium_transmutator = new MachineSchrabidiumTransmutator(Material.iron).setBlockName("machine_schrabidium_transmutator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); + + machine_siren = new MachineSiren(Material.iron).setBlockName("machine_siren").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_siren"); + + machine_spp_bottom = new SPPBottom(Material.iron).setBlockName("machine_spp_bottom").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_spp_top = new SPPTop(Material.iron).setBlockName("machine_spp_top").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + + radiobox = new Radiobox(Material.iron).setBlockName("radiobox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radiobox"); + radiorec = new RadioRec(Material.iron).setBlockName("radiorec").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radiorec"); + + machine_forcefield = new MachineForceField(Material.iron).setBlockName("machine_forcefield").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_forcefield"); + + cheater_virus = new CheaterVirus(Material.iron).setBlockName("cheater_virus").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus"); + cheater_virus_seed = new CheaterVirusSeed(Material.iron).setBlockName("cheater_virus_seed").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus_seed"); + crystal_virus = new CrystalVirus(Material.iron).setBlockName("crystal_virus").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_virus"); + crystal_hardened = new BlockGeneric(Material.iron).setBlockName("crystal_hardened").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_hardened"); + crystal_pulsar = new CrystalPulsar(Material.iron).setBlockName("crystal_pulsar").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_pulsar"); + taint = new BlockTaint(Material.iron).setBlockName("taint").setHardness(15.0F).setResistance(10.0F).setCreativeTab(null); + + vent_chlorine = new BlockVent(Material.iron).setBlockName("vent_chlorine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_chlorine"); + vent_cloud = new BlockVent(Material.iron).setBlockName("vent_cloud").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_cloud"); + vent_pink_cloud = new BlockVent(Material.iron).setBlockName("vent_pink_cloud").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_pink_cloud"); + vent_chlorine_seal = new BlockClorineSeal(Material.iron).setBlockName("vent_chlorine_seal").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + chlorine_gas = new BlockGasClorine().setBlockName("chlorine_gas").setHardness(0.0F).setResistance(0.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":chlorine_gas"); + + gas_radon = new BlockGasRadon().setBlockName("gas_radon").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon"); + gas_radon_dense = new BlockGasRadonDense().setBlockName("gas_radon_dense").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon_dense"); + gas_radon_tomb = new BlockGasRadonTomb().setBlockName("gas_radon_tomb").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon_tomb"); + gas_meltdown = new BlockGasMeltdown().setBlockName("gas_meltdown").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_meltdown"); + gas_monoxide = new BlockGasMonoxide().setBlockName("gas_monoxide").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_monoxide"); + gas_asbestos = new BlockGasAsbestos().setBlockName("gas_asbestos").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_asbestos"); + gas_coal = new BlockGasCoal().setBlockName("gas_coal").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_coal"); + gas_flammable = new BlockGasFlammable().setBlockName("gas_flammable").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_flammable"); + gas_explosive = new BlockGasExplosive().setBlockName("gas_explosive").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_explosive"); + vacuum = new BlockVacuum().setBlockName("vacuum").setResistance(1000000F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vacuum"); + + absorber = new BlockAbsorber(Material.iron, 2.5F).setBlockName("absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber"); + absorber_red = new BlockAbsorber(Material.iron, 10F).setBlockName("absorber_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_red"); + absorber_green = new BlockAbsorber(Material.iron, 100F).setBlockName("absorber_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_green"); + absorber_pink = new BlockAbsorber(Material.iron, 10000F).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_pink"); + decon = new BlockDecon(Material.iron).setBlockName("decon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":decon_side"); + transission_hatch = new BlockTransission(Material.iron).setBlockName("transission_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transission_hatch"); + + volcano_core = new BlockVolcano().setBlockName("volcano_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_core"); + volcano_rad_core = new BlockVolcano().setBlockName("volcano_rad_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_rad_core"); + + statue_elb_f = new DecoBlockAlt(Material.iron).setBlockName("#undef").setHardness(Float.POSITIVE_INFINITY).setLightLevel(1.0F).setResistance(Float.POSITIVE_INFINITY); + + mud_fluid = new MudFluid().setDensity(2500).setViscosity(3000).setLuminosity(5).setTemperature(2773).setUnlocalizedName("mud_fluid"); + FluidRegistry.registerFluid(mud_fluid); + mud_block = new MudBlock(mud_fluid, fluidmud.setReplaceable(), ModDamageSource.mudPoisoning).setBlockName("mud_block").setResistance(500F); + + acid_fluid = new AcidFluid().setDensity(2500).setViscosity(1500).setLuminosity(5).setTemperature(2773).setUnlocalizedName("acid_fluid"); + FluidRegistry.registerFluid(acid_fluid); + acid_block = new AcidBlock(acid_fluid, fluidacid.setReplaceable(), ModDamageSource.acid).setBlockName("acid_block").setResistance(500F); + + toxic_fluid = new ToxicFluid().setDensity(2500).setViscosity(2000).setLuminosity(15).setTemperature(2773).setUnlocalizedName("toxic_fluid"); + FluidRegistry.registerFluid(toxic_fluid); + toxic_block = new ToxicBlock(toxic_fluid, fluidtoxic.setReplaceable(), ModDamageSource.radiation).setBlockName("toxic_block").setResistance(500F); + + schrabidic_fluid = new SchrabidicFluid().setDensity(31200).setViscosity(500).setTemperature(273).setUnlocalizedName("schrabidic_fluid"); + FluidRegistry.registerFluid(schrabidic_fluid); + schrabidic_block = new SchrabidicBlock(schrabidic_fluid, fluidschrabidic.setReplaceable(), ModDamageSource.radiation).setBlockName("schrabidic_block").setResistance(500F); + + corium_fluid = new CoriumFluid().setDensity(600000).setViscosity(12000).setLuminosity(10).setTemperature(1500).setUnlocalizedName("corium_fluid"); + FluidRegistry.registerFluid(corium_fluid); + corium_block = new CoriumFinite(corium_fluid, fluidcorium).setBlockName("corium_block").setResistance(500F); + + volcanic_lava_fluid = new VolcanicFluid().setLuminosity(15).setDensity(3000).setViscosity(3000).setTemperature(1300).setUnlocalizedName("volcanic_lava_fluid"); + FluidRegistry.registerFluid(volcanic_lava_fluid); + volcanic_lava_block = new VolcanicBlock(volcanic_lava_fluid, Material.lava).setBlockName("volcanic_lava_block").setResistance(500F); + + rad_lava_fluid = new RadFluid().setLuminosity(15).setDensity(3000).setViscosity(3000).setTemperature(1300).setUnlocalizedName("rad_lava_fluid"); + FluidRegistry.registerFluid(rad_lava_fluid); + rad_lava_block = new RadBlock(rad_lava_fluid, Material.lava).setBlockName("rad_lava_block").setResistance(500F); + + sulfuric_acid_fluid = new GenericFluid("sulfuric_acid_fluid").setDensity(1840).setViscosity(1000).setTemperature(273); + FluidRegistry.registerFluid(sulfuric_acid_fluid); + sulfuric_acid_block = new GenericFluidBlock(sulfuric_acid_fluid, Material.water, "sulfuric_acid_still", "sulfuric_acid_flowing").setDamage(ModDamageSource.acid, 5F).setBlockName("sulfuric_acid_block").setResistance(500F); + + Fluid liquidConcrete = new GenericFluid("concrete_liquid").setViscosity(2000); + concrete_liquid = new GenericFiniteFluid(liquidConcrete, Material.rock, "concrete_liquid", "concrete_liquid_flowing").setQuantaPerBlock(4).setBlockName("concrete_liquid").setResistance(500F); + + dummy_block_vault = new DummyBlockVault(Material.iron).setBlockName("dummy_block_vault").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_block_blast = new DummyBlockBlast(Material.iron).setBlockName("dummy_block_blast").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_plate_compact_launcher = new DummyBlockMachine(Material.iron, compact_launcher, false).setBounds(0, 16, 0, 16, 16, 16).setBlockName("dummy_plate_compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_port_compact_launcher = new DummyBlockMachine(Material.iron, compact_launcher, true).setBlockName("dummy_port_compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_plate_launch_table = new DummyBlockMachine(Material.iron, launch_table, false).setBounds(0, 16, 0, 16, 16, 16).setBlockName("dummy_plate_launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_port_launch_table = new DummyBlockMachine(Material.iron, launch_table, true).setBlockName("dummy_port_launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_plate_cargo = new DummyBlockMachine(Material.iron, sat_dock, false).setBounds(0, 0, 0, 16, 8, 16).setBlockName("dummy_plate_cargo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + + ntm_dirt = new BlockNTMDirt().setBlockName("ntm_dirt").setHardness(0.5F).setStepSound(Block.soundTypeGravel).setCreativeTab(null).setBlockTextureName("dirt"); + + pink_log = new BlockPinkLog().setBlockName("pink_log").setHardness(0.5F).setStepSound(Block.soundTypeWood).setCreativeTab(null); + pink_planks = new BlockGeneric(Material.wood).setBlockName("pink_planks").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); + pink_slab = new BlockPinkSlab(false, Material.wood).setBlockName("pink_slab").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); + pink_double_slab = new BlockPinkSlab(true, Material.wood).setBlockName("pink_double_slab").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); + pink_stairs = new BlockGenericStairs(pink_planks, 0).setBlockName("pink_stairs").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks"); + } + + private static void registerBlock() { + //Test + GameRegistry.registerBlock(event_tester, event_tester.getUnlocalizedName()); + GameRegistry.registerBlock(obj_tester, obj_tester.getUnlocalizedName()); + GameRegistry.registerBlock(test_core, test_core.getUnlocalizedName()); + GameRegistry.registerBlock(test_charge, test_charge.getUnlocalizedName()); + GameRegistry.registerBlock(structure_anchor, structure_anchor.getUnlocalizedName()); + + //Ores + GameRegistry.registerBlock(ore_uranium, ore_uranium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_uranium_scorched, ore_uranium_scorched.getUnlocalizedName()); + GameRegistry.registerBlock(ore_thorium, ore_thorium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_titanium, ore_titanium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_sulfur, ore_sulfur.getUnlocalizedName()); + GameRegistry.registerBlock(ore_niter, ore_niter.getUnlocalizedName()); + GameRegistry.registerBlock(ore_copper, ore_copper.getUnlocalizedName()); + GameRegistry.registerBlock(ore_tungsten, ore_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(ore_aluminium, ore_aluminium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_fluorite, ore_fluorite.getUnlocalizedName()); + GameRegistry.registerBlock(ore_beryllium, ore_beryllium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_lead, ore_lead.getUnlocalizedName()); + GameRegistry.registerBlock(ore_oil, ItemBlockLore.class, ore_oil.getUnlocalizedName()); + GameRegistry.registerBlock(ore_oil_empty, ore_oil_empty.getUnlocalizedName()); + GameRegistry.registerBlock(ore_oil_sand, ore_oil_sand.getUnlocalizedName()); + GameRegistry.registerBlock(ore_lignite, ore_lignite.getUnlocalizedName()); + GameRegistry.registerBlock(ore_asbestos, ore_asbestos.getUnlocalizedName()); + GameRegistry.registerBlock(ore_schrabidium, ItemBlockLore.class, ore_schrabidium.getUnlocalizedName()); + + //Rare Minerals + GameRegistry.registerBlock(ore_australium, ItemOreBlock.class, ore_australium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_rare, ItemOreBlock.class, ore_rare.getUnlocalizedName()); + GameRegistry.registerBlock(ore_cobalt, ore_cobalt.getUnlocalizedName()); + GameRegistry.registerBlock(ore_cinnebar, ore_cinnebar.getUnlocalizedName()); + GameRegistry.registerBlock(ore_coltan, ore_coltan.getUnlocalizedName()); + + //Stone clusters + GameRegistry.registerBlock(cluster_iron, ItemBlockBase.class, cluster_iron.getUnlocalizedName()); + GameRegistry.registerBlock(cluster_titanium, ItemBlockBase.class, cluster_titanium.getUnlocalizedName()); + GameRegistry.registerBlock(cluster_aluminium, ItemBlockBase.class, cluster_aluminium.getUnlocalizedName()); + GameRegistry.registerBlock(cluster_copper, ItemBlockBase.class, cluster_copper.getUnlocalizedName()); + + //Bedrock ores + GameRegistry.registerBlock(ore_bedrock_oil, ore_bedrock_oil.getUnlocalizedName()); + + //Nice Meme + GameRegistry.registerBlock(ore_coal_oil, ore_coal_oil.getUnlocalizedName()); + GameRegistry.registerBlock(ore_coal_oil_burning, ore_coal_oil_burning.getUnlocalizedName()); + + //Nether Ores + GameRegistry.registerBlock(ore_nether_coal, ore_nether_coal.getUnlocalizedName()); + GameRegistry.registerBlock(ore_nether_smoldering, ore_nether_smoldering.getUnlocalizedName()); + GameRegistry.registerBlock(ore_nether_uranium, ore_nether_uranium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_nether_uranium_scorched, ore_nether_uranium_scorched.getUnlocalizedName()); + GameRegistry.registerBlock(ore_nether_plutonium, ore_nether_plutonium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_nether_tungsten, ore_nether_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(ore_nether_sulfur, ore_nether_sulfur.getUnlocalizedName()); + GameRegistry.registerBlock(ore_nether_fire, ore_nether_fire.getUnlocalizedName()); + GameRegistry.registerBlock(ore_nether_cobalt, ore_nether_cobalt.getUnlocalizedName()); + GameRegistry.registerBlock(ore_nether_schrabidium, ItemBlockLore.class, ore_nether_schrabidium.getUnlocalizedName()); + + //Meteor Ores + register(ore_meteor); + + //Gneiss Ores + GameRegistry.registerBlock(ore_gneiss_iron, ore_gneiss_iron.getUnlocalizedName()); + GameRegistry.registerBlock(ore_gneiss_gold, ore_gneiss_gold.getUnlocalizedName()); + GameRegistry.registerBlock(ore_gneiss_uranium, ore_gneiss_uranium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_gneiss_uranium_scorched, ore_gneiss_uranium_scorched.getUnlocalizedName()); + GameRegistry.registerBlock(ore_gneiss_copper, ore_gneiss_copper.getUnlocalizedName()); + GameRegistry.registerBlock(ore_gneiss_asbestos, ore_gneiss_asbestos.getUnlocalizedName()); + GameRegistry.registerBlock(ore_gneiss_lithium, ore_gneiss_lithium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_gneiss_schrabidium, ItemBlockLore.class, ore_gneiss_schrabidium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_gneiss_rare, ItemOreBlock.class, ore_gneiss_rare.getUnlocalizedName()); + GameRegistry.registerBlock(ore_gneiss_gas, ore_gneiss_gas.getUnlocalizedName()); + + //Depth ores + GameRegistry.registerBlock(ore_depth_cinnebar, ItemBlockBase.class, ore_depth_cinnebar.getUnlocalizedName()); + GameRegistry.registerBlock(ore_depth_zirconium, ItemBlockBase.class, ore_depth_zirconium.getUnlocalizedName()); + GameRegistry.registerBlock(ore_depth_borax, ItemBlockBase.class, ore_depth_borax.getUnlocalizedName()); + GameRegistry.registerBlock(cluster_depth_iron, ItemBlockBase.class, cluster_depth_iron.getUnlocalizedName()); + GameRegistry.registerBlock(cluster_depth_titanium, ItemBlockBase.class, cluster_depth_titanium.getUnlocalizedName()); + GameRegistry.registerBlock(cluster_depth_tungsten, ItemBlockBase.class, cluster_depth_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(ore_alexandrite, ItemBlockBase.class, ore_alexandrite.getUnlocalizedName()); + + //Nether depth ores + GameRegistry.registerBlock(ore_depth_nether_neodymium, ItemBlockBase.class, ore_depth_nether_neodymium.getUnlocalizedName()); + + //Basalt ores + register(ore_basalt); + + //End Ores + GameRegistry.registerBlock(ore_tikite, ore_tikite.getUnlocalizedName()); + + //Bedrock ore + register(ore_bedrock); + register(ore_volcano); + + //Secret + register(stone_keyhole); + register(stone_keyhole_meta); + + //Resource-bearing Stones + register(stone_resource); + register(stalagmite); + register(stalactite); + register(stone_biome); + + //Stone Variants + GameRegistry.registerBlock(stone_porous, stone_porous.getUnlocalizedName()); + GameRegistry.registerBlock(stone_gneiss, stone_gneiss.getUnlocalizedName()); + GameRegistry.registerBlock(gneiss_brick, gneiss_brick.getUnlocalizedName()); + GameRegistry.registerBlock(gneiss_tile, gneiss_tile.getUnlocalizedName()); + GameRegistry.registerBlock(gneiss_chiseled, gneiss_chiseled.getUnlocalizedName()); + GameRegistry.registerBlock(stone_depth, ItemBlockBase.class, stone_depth.getUnlocalizedName()); + GameRegistry.registerBlock(depth_brick, ItemBlockBase.class, depth_brick.getUnlocalizedName()); + GameRegistry.registerBlock(depth_tiles, ItemBlockBase.class, depth_tiles.getUnlocalizedName()); + GameRegistry.registerBlock(stone_depth_nether, ItemBlockBase.class, stone_depth_nether.getUnlocalizedName()); + GameRegistry.registerBlock(depth_nether_brick, ItemBlockBase.class, depth_nether_brick.getUnlocalizedName()); + GameRegistry.registerBlock(depth_nether_tiles, ItemBlockBase.class, depth_nether_tiles.getUnlocalizedName()); + GameRegistry.registerBlock(depth_dnt, ItemBlockBase.class, depth_dnt.getUnlocalizedName()); + GameRegistry.registerBlock(basalt, basalt.getUnlocalizedName()); + GameRegistry.registerBlock(basalt_smooth, basalt_smooth.getUnlocalizedName()); + GameRegistry.registerBlock(basalt_brick, basalt_brick.getUnlocalizedName()); + GameRegistry.registerBlock(basalt_polished, basalt_polished.getUnlocalizedName()); + GameRegistry.registerBlock(basalt_tiles, basalt_tiles.getUnlocalizedName()); + //GameRegistry.registerBlock(stone_deep_cobble, ItemBlockBase.class, stone_deep_cobble.getUnlocalizedName()); + + //Blocks + GameRegistry.registerBlock(block_uranium, block_uranium.getUnlocalizedName()); + GameRegistry.registerBlock(block_u233, block_u233.getUnlocalizedName()); + GameRegistry.registerBlock(block_u235, block_u235.getUnlocalizedName()); + GameRegistry.registerBlock(block_u238, block_u238.getUnlocalizedName()); + GameRegistry.registerBlock(block_uranium_fuel, block_uranium_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_neptunium, block_neptunium.getUnlocalizedName()); + GameRegistry.registerBlock(block_polonium, block_polonium.getUnlocalizedName()); + GameRegistry.registerBlock(block_mox_fuel, block_mox_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_plutonium, block_plutonium.getUnlocalizedName()); + GameRegistry.registerBlock(block_pu238, block_pu238.getUnlocalizedName()); + GameRegistry.registerBlock(block_pu239, block_pu239.getUnlocalizedName()); + GameRegistry.registerBlock(block_pu240, block_pu240.getUnlocalizedName()); + GameRegistry.registerBlock(block_pu_mix, block_pu_mix.getUnlocalizedName()); + GameRegistry.registerBlock(block_plutonium_fuel, block_plutonium_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_thorium, block_thorium.getUnlocalizedName()); + GameRegistry.registerBlock(block_thorium_fuel, block_thorium_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_titanium, block_titanium.getUnlocalizedName()); + GameRegistry.registerBlock(block_sulfur, block_sulfur.getUnlocalizedName()); + GameRegistry.registerBlock(block_niter, block_niter.getUnlocalizedName()); + GameRegistry.registerBlock(block_copper, block_copper.getUnlocalizedName()); + GameRegistry.registerBlock(block_red_copper, block_red_copper.getUnlocalizedName()); + GameRegistry.registerBlock(block_advanced_alloy, block_advanced_alloy.getUnlocalizedName()); + GameRegistry.registerBlock(block_tungsten, block_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(block_aluminium, block_aluminium.getUnlocalizedName()); + GameRegistry.registerBlock(block_fluorite, block_fluorite.getUnlocalizedName()); + GameRegistry.registerBlock(block_beryllium, block_beryllium.getUnlocalizedName()); + GameRegistry.registerBlock(block_cobalt, block_cobalt.getUnlocalizedName()); + GameRegistry.registerBlock(block_steel, block_steel.getUnlocalizedName()); + GameRegistry.registerBlock(block_tcalloy, block_tcalloy.getUnlocalizedName()); + GameRegistry.registerBlock(block_cdalloy, block_cdalloy.getUnlocalizedName()); + GameRegistry.registerBlock(block_lead, block_lead.getUnlocalizedName()); + GameRegistry.registerBlock(block_bismuth, block_bismuth.getUnlocalizedName()); + GameRegistry.registerBlock(block_cadmium, block_cadmium.getUnlocalizedName()); + GameRegistry.registerBlock(block_coltan, block_coltan.getUnlocalizedName()); + GameRegistry.registerBlock(block_tantalium, block_tantalium.getUnlocalizedName()); + GameRegistry.registerBlock(block_niobium, block_niobium.getUnlocalizedName()); + GameRegistry.registerBlock(block_lithium, block_lithium.getUnlocalizedName()); + GameRegistry.registerBlock(block_zirconium, block_zirconium.getUnlocalizedName()); + GameRegistry.registerBlock(block_white_phosphorus, block_white_phosphorus.getUnlocalizedName()); + GameRegistry.registerBlock(block_red_phosphorus, block_red_phosphorus.getUnlocalizedName()); + GameRegistry.registerBlock(block_yellowcake, block_yellowcake.getUnlocalizedName()); + GameRegistry.registerBlock(block_scrap, block_scrap.getUnlocalizedName()); + GameRegistry.registerBlock(block_electrical_scrap, block_electrical_scrap.getUnlocalizedName()); + GameRegistry.registerBlock(block_fallout, block_fallout.getUnlocalizedName()); + GameRegistry.registerBlock(block_foam, block_foam.getUnlocalizedName()); + GameRegistry.registerBlock(block_graphite, block_graphite.getUnlocalizedName()); + register(block_coke); + GameRegistry.registerBlock(block_graphite_drilled, block_graphite_drilled.getUnlocalizedName()); + GameRegistry.registerBlock(block_graphite_fuel, block_graphite_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_graphite_rod, block_graphite_rod.getUnlocalizedName()); + GameRegistry.registerBlock(block_graphite_plutonium, block_graphite_plutonium.getUnlocalizedName()); + GameRegistry.registerBlock(block_graphite_source, block_graphite_source.getUnlocalizedName()); + GameRegistry.registerBlock(block_graphite_lithium, block_graphite_lithium.getUnlocalizedName()); + GameRegistry.registerBlock(block_graphite_tritium, block_graphite_tritium.getUnlocalizedName()); + GameRegistry.registerBlock(block_graphite_detector, block_graphite_detector.getUnlocalizedName()); + GameRegistry.registerBlock(block_boron, block_boron.getUnlocalizedName()); + GameRegistry.registerBlock(block_insulator, block_insulator.getUnlocalizedName()); + GameRegistry.registerBlock(block_fiberglass, block_fiberglass.getUnlocalizedName()); + GameRegistry.registerBlock(block_asbestos, block_asbestos.getUnlocalizedName()); + GameRegistry.registerBlock(block_trinitite, block_trinitite.getUnlocalizedName()); + GameRegistry.registerBlock(block_waste, block_waste.getUnlocalizedName()); + GameRegistry.registerBlock(block_waste_painted, block_waste_painted.getUnlocalizedName()); + GameRegistry.registerBlock(block_waste_vitrified, block_waste_vitrified.getUnlocalizedName()); + GameRegistry.registerBlock(ancient_scrap, ancient_scrap.getUnlocalizedName()); + GameRegistry.registerBlock(block_corium, block_corium.getUnlocalizedName()); + GameRegistry.registerBlock(block_corium_cobble, block_corium_cobble.getUnlocalizedName()); + GameRegistry.registerBlock(block_schraranium, ItemBlockBase.class, block_schraranium.getUnlocalizedName()); + GameRegistry.registerBlock(block_schrabidium, ItemBlockBase.class, block_schrabidium.getUnlocalizedName()); + GameRegistry.registerBlock(block_schrabidate, ItemBlockBase.class, block_schrabidate.getUnlocalizedName()); + GameRegistry.registerBlock(block_solinium, ItemBlockBase.class, block_solinium.getUnlocalizedName()); + GameRegistry.registerBlock(block_schrabidium_fuel, ItemBlockBase.class, block_schrabidium_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(block_euphemium, ItemBlockLore.class, block_euphemium.getUnlocalizedName()); + GameRegistry.registerBlock(block_schrabidium_cluster, ItemBlockBase.class, block_schrabidium_cluster.getUnlocalizedName()); + GameRegistry.registerBlock(block_euphemium_cluster, ItemBlockLore.class, block_euphemium_cluster.getUnlocalizedName()); + GameRegistry.registerBlock(block_dineutronium, block_dineutronium.getUnlocalizedName()); + GameRegistry.registerBlock(block_magnetized_tungsten, block_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(block_combine_steel, block_combine_steel.getUnlocalizedName()); + GameRegistry.registerBlock(block_desh, block_desh.getUnlocalizedName()); + GameRegistry.registerBlock(block_dura_steel, block_dura_steel.getUnlocalizedName()); + GameRegistry.registerBlock(block_starmetal, block_starmetal.getUnlocalizedName()); + GameRegistry.registerBlock(block_polymer, block_polymer.getUnlocalizedName()); + GameRegistry.registerBlock(block_bakelite, block_bakelite.getUnlocalizedName()); + GameRegistry.registerBlock(block_rubber, block_rubber.getUnlocalizedName()); + GameRegistry.registerBlock(block_australium, ItemOreBlock.class, block_australium.getUnlocalizedName()); + GameRegistry.registerBlock(block_weidanium, ItemOreBlock.class, block_weidanium.getUnlocalizedName()); + GameRegistry.registerBlock(block_reiium, ItemOreBlock.class, block_reiium.getUnlocalizedName()); + GameRegistry.registerBlock(block_unobtainium, ItemOreBlock.class, block_unobtainium.getUnlocalizedName()); + GameRegistry.registerBlock(block_daffergon, ItemOreBlock.class, block_daffergon.getUnlocalizedName()); + GameRegistry.registerBlock(block_verticium, ItemOreBlock.class, block_verticium.getUnlocalizedName()); + register(block_cap); + GameRegistry.registerBlock(block_lanthanium, block_lanthanium.getUnlocalizedName()); + GameRegistry.registerBlock(block_ra226, block_ra226.getUnlocalizedName()); + GameRegistry.registerBlock(block_actinium, block_actinium.getUnlocalizedName()); + GameRegistry.registerBlock(block_tritium, block_tritium.getUnlocalizedName()); + GameRegistry.registerBlock(block_semtex, block_semtex.getUnlocalizedName()); + GameRegistry.registerBlock(block_c4, block_c4.getUnlocalizedName()); + GameRegistry.registerBlock(block_smore, block_smore.getUnlocalizedName()); + GameRegistry.registerBlock(block_slag, block_slag.getUnlocalizedName()); + + //Deco Blocks + GameRegistry.registerBlock(deco_titanium, deco_titanium.getUnlocalizedName()); + GameRegistry.registerBlock(deco_red_copper, deco_red_copper.getUnlocalizedName()); + GameRegistry.registerBlock(deco_tungsten, deco_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(deco_aluminium, deco_aluminium.getUnlocalizedName()); + GameRegistry.registerBlock(deco_steel, deco_steel.getUnlocalizedName()); + GameRegistry.registerBlock(deco_lead, deco_lead.getUnlocalizedName()); + GameRegistry.registerBlock(deco_beryllium, deco_beryllium.getUnlocalizedName()); + GameRegistry.registerBlock(deco_asbestos, deco_asbestos.getUnlocalizedName()); + GameRegistry.registerBlock(deco_emitter, ItemBlockBase.class, deco_emitter.getUnlocalizedName()); + GameRegistry.registerBlock(part_emitter, ItemBlockBase.class, part_emitter.getUnlocalizedName()); + GameRegistry.registerBlock(deco_loot, deco_loot.getUnlocalizedName()); + GameRegistry.registerBlock(pedestal, pedestal.getUnlocalizedName()); + GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); + GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName()); + GameRegistry.registerBlock(plushie, ItemBlockBase.class, plushie.getUnlocalizedName()); + GameRegistry.registerBlock(deco_rbmk, deco_rbmk.getUnlocalizedName()); + GameRegistry.registerBlock(deco_rbmk_smooth, deco_rbmk_smooth.getUnlocalizedName()); + + //Gravel + GameRegistry.registerBlock(gravel_obsidian, ItemBlockBlastInfo.class, gravel_obsidian.getUnlocalizedName()); + GameRegistry.registerBlock(gravel_diamond, ItemBlockLore.class, gravel_diamond.getUnlocalizedName()); + + //Lamps + GameRegistry.registerBlock(lamp_tritium_green_off, lamp_tritium_green_off.getUnlocalizedName()); + GameRegistry.registerBlock(lamp_tritium_green_on, lamp_tritium_green_on.getUnlocalizedName()); + GameRegistry.registerBlock(lamp_tritium_blue_off, lamp_tritium_blue_off.getUnlocalizedName()); + GameRegistry.registerBlock(lamp_tritium_blue_on, lamp_tritium_blue_on.getUnlocalizedName()); + GameRegistry.registerBlock(lamp_demon, lamp_demon.getUnlocalizedName()); + GameRegistry.registerBlock(lantern, lantern.getUnlocalizedName()); + GameRegistry.registerBlock(lantern_behemoth, lantern_behemoth.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_incandescent, spotlight_incandescent.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_incandescent_off, spotlight_incandescent_off.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_fluoro, spotlight_fluoro.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_fluoro_off, spotlight_fluoro_off.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_halogen, spotlight_halogen.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_halogen_off, spotlight_halogen_off.getUnlocalizedName()); + GameRegistry.registerBlock(spotlight_beam, spotlight_beam.getUnlocalizedName()); + register(floodlight); + GameRegistry.registerBlock(floodlight_beam, floodlight_beam.getUnlocalizedName()); + + //Reinforced Blocks + GameRegistry.registerBlock(asphalt, ItemBlockBlastInfo.class, asphalt.getUnlocalizedName()); + GameRegistry.registerBlock(asphalt_light, ItemBlockBlastInfo.class, asphalt_light.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_brick, ItemBlockBlastInfo.class, reinforced_brick.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_glass, ItemBlockBlastInfo.class, reinforced_glass.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_glass_pane, ItemBlockBlastInfo.class, reinforced_glass_pane.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_light, ItemBlockBlastInfo.class, reinforced_light.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_sand, ItemBlockBlastInfo.class, reinforced_sand.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_lamp_off, ItemBlockBlastInfo.class, reinforced_lamp_off.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_lamp_on, ItemBlockBlastInfo.class, reinforced_lamp_on.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_laminate, ItemBlockBlastInfo.class, reinforced_laminate.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_laminate_pane,ItemBlockBlastInfo.class, reinforced_laminate_pane.getUnlocalizedName()); + + //Bricks + GameRegistry.registerBlock(reinforced_stone, ItemBlockBlastInfo.class, reinforced_stone.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_ducrete, ItemBlockBlastInfo.class, reinforced_ducrete.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_smooth, ItemBlockBlastInfo.class, concrete_smooth.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_colored, ItemBlockColoredConcrete.class, concrete_colored.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_colored_ext, ItemBlockBlastInfo.class, concrete_colored_ext.getUnlocalizedName()); + GameRegistry.registerBlock(concrete, ItemBlockBlastInfo.class, concrete.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_asbestos, ItemBlockBlastInfo.class, concrete_asbestos.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_super, ItemBlockBlastInfo.class, concrete_super.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_super_broken, ItemBlockBlastInfo.class, concrete_super_broken.getUnlocalizedName()); + GameRegistry.registerBlock(ducrete_smooth, ItemBlockBlastInfo.class, ducrete_smooth.getUnlocalizedName()); + GameRegistry.registerBlock(ducrete, ItemBlockBlastInfo.class, ducrete.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_pillar, ItemBlockBlastInfo.class, concrete_pillar.getUnlocalizedName()); + GameRegistry.registerBlock(brick_concrete, ItemBlockBlastInfo.class, brick_concrete.getUnlocalizedName()); + GameRegistry.registerBlock(brick_concrete_mossy, ItemBlockBlastInfo.class, brick_concrete_mossy.getUnlocalizedName()); + GameRegistry.registerBlock(brick_concrete_cracked, ItemBlockBlastInfo.class, brick_concrete_cracked.getUnlocalizedName()); + GameRegistry.registerBlock(brick_concrete_broken, ItemBlockBlastInfo.class, brick_concrete_broken.getUnlocalizedName()); + GameRegistry.registerBlock(brick_concrete_marked, ItemBlockBlastInfo.class, brick_concrete_marked.getUnlocalizedName()); + GameRegistry.registerBlock(brick_ducrete, ItemBlockBlastInfo.class, brick_ducrete.getUnlocalizedName()); + GameRegistry.registerBlock(brick_obsidian, ItemBlockBlastInfo.class, brick_obsidian.getUnlocalizedName()); + GameRegistry.registerBlock(brick_compound, ItemBlockBlastInfo.class, brick_compound.getUnlocalizedName()); + GameRegistry.registerBlock(brick_light, ItemBlockBlastInfo.class, brick_light.getUnlocalizedName()); + GameRegistry.registerBlock(brick_asbestos, brick_asbestos.getUnlocalizedName()); + GameRegistry.registerBlock(brick_fire, ItemBlockBlastInfo.class, brick_fire.getUnlocalizedName()); + + GameRegistry.registerBlock(concrete_slab, ItemModSlab.class, concrete_slab.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_double_slab, ItemModSlab.class, concrete_double_slab.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_brick_slab, ItemModSlab.class, concrete_brick_slab.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_brick_double_slab, ItemModSlab.class, concrete_brick_double_slab.getUnlocalizedName()); + GameRegistry.registerBlock(brick_slab, ItemModSlab.class, brick_slab.getUnlocalizedName()); + GameRegistry.registerBlock(brick_double_slab, ItemModSlab.class, brick_double_slab.getUnlocalizedName()); + + GameRegistry.registerBlock(concrete_smooth_stairs, concrete_smooth_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_stairs, concrete_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_asbestos_stairs, concrete_asbestos_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(ducrete_smooth_stairs, ducrete_smooth_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_concrete_stairs, brick_concrete_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_concrete_mossy_stairs, brick_concrete_mossy_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_concrete_cracked_stairs, brick_concrete_cracked_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_concrete_broken_stairs, brick_concrete_broken_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_ducrete_stairs, brick_ducrete_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_stone_stairs, reinforced_stone_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_brick_stairs, reinforced_brick_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_obsidian_stairs, brick_obsidian_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_light_stairs, brick_light_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_compound_stairs, brick_compound_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_asbestos_stairs, brick_asbestos_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(brick_fire_stairs, brick_fire_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(ducrete_stairs, ducrete_stairs.getUnlocalizedName()); + GameRegistry.registerBlock(asphalt_stairs, asphalt_stairs.getUnlocalizedName()); + + //CMB Building Elements + GameRegistry.registerBlock(cmb_brick, ItemBlockBlastInfo.class, cmb_brick.getUnlocalizedName()); + GameRegistry.registerBlock(cmb_brick_reinforced, ItemBlockBlastInfo.class, cmb_brick_reinforced.getUnlocalizedName()); + + //Tiles + GameRegistry.registerBlock(vinyl_tile, ItemBlockBlastInfo.class, vinyl_tile.getUnlocalizedName()); //i would rather die than dip into fucking blocks with subtypes again + + GameRegistry.registerBlock(tile_lab, tile_lab.getUnlocalizedName()); + GameRegistry.registerBlock(tile_lab_cracked, tile_lab_cracked.getUnlocalizedName()); + GameRegistry.registerBlock(tile_lab_broken, tile_lab_broken.getUnlocalizedName()); + + //Other defensive stuff + GameRegistry.registerBlock(barbed_wire, barbed_wire.getUnlocalizedName()); + GameRegistry.registerBlock(barbed_wire_fire, barbed_wire_fire.getUnlocalizedName()); + GameRegistry.registerBlock(barbed_wire_poison, barbed_wire_poison.getUnlocalizedName()); + GameRegistry.registerBlock(barbed_wire_acid, barbed_wire_acid.getUnlocalizedName()); + GameRegistry.registerBlock(barbed_wire_wither, barbed_wire_wither.getUnlocalizedName()); + GameRegistry.registerBlock(barbed_wire_ultradeath, barbed_wire_ultradeath.getUnlocalizedName()); + GameRegistry.registerBlock(spikes, spikes.getUnlocalizedName()); + GameRegistry.registerBlock(tesla, tesla.getUnlocalizedName()); + + //Charger + GameRegistry.registerBlock(charger, charger.getUnlocalizedName()); + //GameRegistry.registerBlock(floodlight, floodlight.getUnlocalizedName()); + + //Decoration Blocks + GameRegistry.registerBlock(block_meteor, block_meteor.getUnlocalizedName()); + GameRegistry.registerBlock(block_meteor_cobble, block_meteor_cobble.getUnlocalizedName()); + GameRegistry.registerBlock(block_meteor_broken, block_meteor_broken.getUnlocalizedName()); + GameRegistry.registerBlock(block_meteor_molten, block_meteor_molten.getUnlocalizedName()); + GameRegistry.registerBlock(block_meteor_treasure, block_meteor_treasure.getUnlocalizedName()); + GameRegistry.registerBlock(meteor_polished, meteor_polished.getUnlocalizedName()); + GameRegistry.registerBlock(meteor_brick, meteor_brick.getUnlocalizedName()); + GameRegistry.registerBlock(meteor_brick_mossy, meteor_brick_mossy.getUnlocalizedName()); + GameRegistry.registerBlock(meteor_brick_cracked, meteor_brick_cracked.getUnlocalizedName()); + GameRegistry.registerBlock(meteor_brick_chiseled, meteor_brick_chiseled.getUnlocalizedName()); + GameRegistry.registerBlock(meteor_pillar, meteor_pillar.getUnlocalizedName()); + GameRegistry.registerBlock(meteor_spawner, meteor_spawner.getUnlocalizedName()); + GameRegistry.registerBlock(meteor_battery, ItemBlockLore.class, meteor_battery.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle, brick_jungle.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_cracked, brick_jungle_cracked.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_fragile, brick_jungle_fragile.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_lava, brick_jungle_lava.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_ooze, brick_jungle_ooze.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_mystic, brick_jungle_mystic.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_trap, ItemTrapBlock.class, brick_jungle_trap.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_glyph, ItemGlyphBlock.class, brick_jungle_glyph.getUnlocalizedName()); + GameRegistry.registerBlock(brick_jungle_circle, brick_jungle_circle.getUnlocalizedName()); + GameRegistry.registerBlock(brick_red, brick_red.getUnlocalizedName()); + register(deco_computer); + register(deco_crt); + register(deco_toaster); + GameRegistry.registerBlock(filing_cabinet, ItemBlockBase.class, filing_cabinet.getUnlocalizedName()); + GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName()); + GameRegistry.registerBlock(steel_poles, steel_poles.getUnlocalizedName()); + GameRegistry.registerBlock(pole_top, pole_top.getUnlocalizedName()); + GameRegistry.registerBlock(pole_satellite_receiver, pole_satellite_receiver.getUnlocalizedName()); + GameRegistry.registerBlock(steel_wall, steel_wall.getUnlocalizedName()); + GameRegistry.registerBlock(steel_corner, steel_corner.getUnlocalizedName()); + GameRegistry.registerBlock(steel_roof, steel_roof.getUnlocalizedName()); + GameRegistry.registerBlock(steel_beam, steel_beam.getUnlocalizedName()); + register(steel_scaffold); + GameRegistry.registerBlock(steel_grate, steel_grate.getUnlocalizedName()); + register(steel_grate_wide); + //register(scaffold_dynamic); + GameRegistry.registerBlock(deco_pipe, ItemBlockBase.class, deco_pipe.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rusted, ItemBlockBase.class, deco_pipe_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_green, ItemBlockBase.class, deco_pipe_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_green_rusted, ItemBlockBase.class, deco_pipe_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_red, ItemBlockBase.class, deco_pipe_red.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_marked, ItemBlockBase.class, deco_pipe_marked.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim, ItemBlockBase.class, deco_pipe_rim.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_rusted, ItemBlockBase.class, deco_pipe_rim_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_green, ItemBlockBase.class, deco_pipe_rim_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_green_rusted, ItemBlockBase.class, deco_pipe_rim_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_red, ItemBlockBase.class, deco_pipe_rim_red.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_marked, ItemBlockBase.class, deco_pipe_rim_marked.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed, ItemBlockBase.class, deco_pipe_framed.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_rusted, ItemBlockBase.class, deco_pipe_framed_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_green, ItemBlockBase.class, deco_pipe_framed_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_green_rusted, ItemBlockBase.class, deco_pipe_framed_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_red, ItemBlockBase.class, deco_pipe_framed_red.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_marked, ItemBlockBase.class, deco_pipe_framed_marked.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad, ItemBlockBase.class, deco_pipe_quad.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_rusted, ItemBlockBase.class, deco_pipe_quad_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_green, ItemBlockBase.class, deco_pipe_quad_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_green_rusted, ItemBlockBase.class, deco_pipe_quad_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockBase.class, deco_pipe_quad_red.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockBase.class, deco_pipe_quad_marked.getUnlocalizedName()); + register(plant_flower); + register(plant_tall); + register(plant_dead); + register(reeds); + register(vine_phosphor); + GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); + GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); + GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); + register(glyphid_base); + register(glyphid_spawner); + GameRegistry.registerBlock(moon_turf, moon_turf.getUnlocalizedName()); + + //Waste + GameRegistry.registerBlock(waste_earth, waste_earth.getUnlocalizedName()); + GameRegistry.registerBlock(waste_mycelium, waste_mycelium.getUnlocalizedName()); + GameRegistry.registerBlock(waste_trinitite, waste_trinitite.getUnlocalizedName()); + GameRegistry.registerBlock(waste_trinitite_red, waste_trinitite_red.getUnlocalizedName()); + GameRegistry.registerBlock(waste_log, waste_log.getUnlocalizedName()); + GameRegistry.registerBlock(waste_leaves, waste_leaves.getUnlocalizedName()); + GameRegistry.registerBlock(waste_planks, waste_planks.getUnlocalizedName()); + GameRegistry.registerBlock(frozen_grass, frozen_grass.getUnlocalizedName()); + GameRegistry.registerBlock(frozen_dirt, frozen_dirt.getUnlocalizedName()); + GameRegistry.registerBlock(frozen_log, frozen_log.getUnlocalizedName()); + GameRegistry.registerBlock(frozen_planks, frozen_planks.getUnlocalizedName()); + GameRegistry.registerBlock(dirt_dead, dirt_dead.getUnlocalizedName()); + GameRegistry.registerBlock(dirt_oily, dirt_oily.getUnlocalizedName()); + GameRegistry.registerBlock(sand_dirty, sand_dirty.getUnlocalizedName()); + GameRegistry.registerBlock(sand_dirty_red, sand_dirty_red.getUnlocalizedName()); + GameRegistry.registerBlock(stone_cracked, stone_cracked.getUnlocalizedName()); + GameRegistry.registerBlock(fallout, fallout.getUnlocalizedName()); + GameRegistry.registerBlock(foam_layer, foam_layer.getUnlocalizedName()); + GameRegistry.registerBlock(sand_boron_layer, sand_boron_layer.getUnlocalizedName()); + GameRegistry.registerBlock(leaves_layer, leaves_layer.getUnlocalizedName()); + GameRegistry.registerBlock(oil_spill, oil_spill.getUnlocalizedName()); + GameRegistry.registerBlock(burning_earth, burning_earth.getUnlocalizedName()); + GameRegistry.registerBlock(tektite, tektite.getUnlocalizedName()); + GameRegistry.registerBlock(ore_tektite_osmiridium, ore_tektite_osmiridium.getUnlocalizedName()); + GameRegistry.registerBlock(impact_dirt, impact_dirt.getUnlocalizedName()); + + //RAD + register(sellafield_slaked); + register(sellafield_bedrock); + register(ore_sellafield_diamond); + register(ore_sellafield_emerald); + register(ore_sellafield_uranium_scorched); + register(ore_sellafield_schrabidium); + register(ore_sellafield_radgem); + GameRegistry.registerBlock(sellafield, ItemBlockNamedMeta.class, sellafield.getUnlocalizedName()); + + //Geysirs + GameRegistry.registerBlock(geysir_water, geysir_water.getUnlocalizedName()); + GameRegistry.registerBlock(geysir_chlorine, geysir_chlorine.getUnlocalizedName()); + GameRegistry.registerBlock(geysir_vapor, geysir_vapor.getUnlocalizedName()); + GameRegistry.registerBlock(geysir_nether, geysir_nether.getUnlocalizedName()); + + //Nukes + GameRegistry.registerBlock(nuke_gadget, nuke_gadget.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_boy, nuke_boy.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_man, nuke_man.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_mike, nuke_mike.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_tsar, nuke_tsar.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_prototype, ItemPrototypeBlock.class, nuke_prototype.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_fleija, nuke_fleija.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_solinium, nuke_solinium.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_n2, nuke_n2.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_fstbmb, nuke_fstbmb.getUnlocalizedName()); + GameRegistry.registerBlock(nuke_custom, nuke_custom.getUnlocalizedName()); + + //Generic Bombs + GameRegistry.registerBlock(bomb_multi, bomb_multi.getUnlocalizedName()); + GameRegistry.registerBlock(crashed_balefire, crashed_balefire.getUnlocalizedName()); + GameRegistry.registerBlock(fireworks, fireworks.getUnlocalizedName()); + GameRegistry.registerBlock(dynamite, dynamite.getUnlocalizedName()); + GameRegistry.registerBlock(tnt, tnt.getUnlocalizedName()); + GameRegistry.registerBlock(semtex, semtex.getUnlocalizedName()); + GameRegistry.registerBlock(c4, c4.getUnlocalizedName()); + register(fissure_bomb); + + //Turrets + GameRegistry.registerBlock(turret_chekhov, turret_chekhov.getUnlocalizedName()); + GameRegistry.registerBlock(turret_friendly, turret_friendly.getUnlocalizedName()); + GameRegistry.registerBlock(turret_jeremy, turret_jeremy.getUnlocalizedName()); + GameRegistry.registerBlock(turret_tauon, turret_tauon.getUnlocalizedName()); + GameRegistry.registerBlock(turret_richard, turret_richard.getUnlocalizedName()); + GameRegistry.registerBlock(turret_howard, turret_howard.getUnlocalizedName()); + GameRegistry.registerBlock(turret_howard_damaged, turret_howard_damaged.getUnlocalizedName()); + GameRegistry.registerBlock(turret_maxwell, turret_maxwell.getUnlocalizedName()); + GameRegistry.registerBlock(turret_fritz, turret_fritz.getUnlocalizedName()); + //GameRegistry.registerBlock(turret_brandon, turret_brandon.getUnlocalizedName()); + GameRegistry.registerBlock(turret_arty, turret_arty.getUnlocalizedName()); + GameRegistry.registerBlock(turret_himars, turret_himars.getUnlocalizedName()); + GameRegistry.registerBlock(turret_sentry, turret_sentry.getUnlocalizedName()); + GameRegistry.registerBlock(turret_sentry_damaged, turret_sentry_damaged.getUnlocalizedName()); + + //Wall-mounted Explosives + GameRegistry.registerBlock(charge_dynamite, ItemBlockBase.class, charge_dynamite.getUnlocalizedName()); + GameRegistry.registerBlock(charge_miner, ItemBlockBase.class, charge_miner.getUnlocalizedName()); + GameRegistry.registerBlock(charge_c4, ItemBlockBase.class, charge_c4.getUnlocalizedName()); + GameRegistry.registerBlock(charge_semtex, ItemBlockBase.class, charge_semtex.getUnlocalizedName()); + + //Mines + GameRegistry.registerBlock(mine_ap, mine_ap.getUnlocalizedName()); + GameRegistry.registerBlock(mine_shrap, mine_shrap.getUnlocalizedName()); + GameRegistry.registerBlock(mine_he, mine_he.getUnlocalizedName()); + GameRegistry.registerBlock(mine_fat, mine_fat.getUnlocalizedName()); + + //Block Bombs + GameRegistry.registerBlock(flame_war, flame_war.getUnlocalizedName()); + GameRegistry.registerBlock(float_bomb, float_bomb.getUnlocalizedName()); + GameRegistry.registerBlock(therm_endo, therm_endo.getUnlocalizedName()); + GameRegistry.registerBlock(therm_exo, therm_exo.getUnlocalizedName()); + GameRegistry.registerBlock(emp_bomb, emp_bomb.getUnlocalizedName()); + GameRegistry.registerBlock(det_cord, det_cord.getUnlocalizedName()); + GameRegistry.registerBlock(det_charge, det_charge.getUnlocalizedName()); + GameRegistry.registerBlock(det_nuke, det_nuke.getUnlocalizedName()); + GameRegistry.registerBlock(det_miner, det_miner.getUnlocalizedName()); + GameRegistry.registerBlock(red_barrel, ItemBlockLore.class, red_barrel.getUnlocalizedName()); + GameRegistry.registerBlock(pink_barrel, ItemBlockLore.class, pink_barrel.getUnlocalizedName()); + GameRegistry.registerBlock(lox_barrel, ItemBlockLore.class, lox_barrel.getUnlocalizedName()); + GameRegistry.registerBlock(taint_barrel, taint_barrel.getUnlocalizedName()); + GameRegistry.registerBlock(yellow_barrel, yellow_barrel.getUnlocalizedName()); + GameRegistry.registerBlock(vitrified_barrel, vitrified_barrel.getUnlocalizedName()); + + //Siren + GameRegistry.registerBlock(machine_siren, machine_siren.getUnlocalizedName()); + + //This Thing + GameRegistry.registerBlock(broadcaster_pc, broadcaster_pc.getUnlocalizedName()); + + //Geiger Counter + GameRegistry.registerBlock(geiger, geiger.getUnlocalizedName()); + + //HEV Battery + GameRegistry.registerBlock(hev_battery, hev_battery.getUnlocalizedName()); + + //Chainlink Fence + GameRegistry.registerBlock(fence_metal, ItemBlockBase.class, fence_metal.getUnlocalizedName()); + + //Sands, Glass + GameRegistry.registerBlock(ash_digamma, ash_digamma.getUnlocalizedName()); + GameRegistry.registerBlock(sand_boron, sand_boron.getUnlocalizedName()); + GameRegistry.registerBlock(sand_lead, sand_lead.getUnlocalizedName()); + GameRegistry.registerBlock(sand_uranium, sand_uranium.getUnlocalizedName()); + GameRegistry.registerBlock(sand_polonium, sand_polonium.getUnlocalizedName()); + GameRegistry.registerBlock(sand_quartz, sand_quartz.getUnlocalizedName()); + GameRegistry.registerBlock(glass_boron, glass_boron.getUnlocalizedName()); + GameRegistry.registerBlock(glass_lead, glass_lead.getUnlocalizedName()); + GameRegistry.registerBlock(glass_uranium, glass_uranium.getUnlocalizedName()); + GameRegistry.registerBlock(glass_trinitite, glass_trinitite.getUnlocalizedName()); + GameRegistry.registerBlock(glass_polonium, glass_polonium.getUnlocalizedName()); + GameRegistry.registerBlock(glass_ash, glass_ash.getUnlocalizedName()); + GameRegistry.registerBlock(glass_quartz, glass_quartz.getUnlocalizedName()); + + //Silo Hatch + GameRegistry.registerBlock(seal_frame, seal_frame.getUnlocalizedName()); + GameRegistry.registerBlock(seal_controller, seal_controller.getUnlocalizedName()); + GameRegistry.registerBlock(seal_hatch, seal_hatch.getUnlocalizedName()); + + //Vault Door + GameRegistry.registerBlock(vault_door, vault_door.getUnlocalizedName()); + GameRegistry.registerBlock(blast_door, blast_door.getUnlocalizedName()); + GameRegistry.registerBlock(fire_door, fire_door.getUnlocalizedName()); + GameRegistry.registerBlock(transition_seal, transition_seal.getUnlocalizedName()); + GameRegistry.registerBlock(silo_hatch, silo_hatch.getUnlocalizedName()); + GameRegistry.registerBlock(silo_hatch_large, silo_hatch_large.getUnlocalizedName()); + GameRegistry.registerBlock(sliding_blast_door, sliding_blast_door.getUnlocalizedName()); + + //Doors + GameRegistry.registerBlock(door_metal, door_metal.getUnlocalizedName()); + GameRegistry.registerBlock(door_office, door_office.getUnlocalizedName()); + GameRegistry.registerBlock(door_bunker, door_bunker.getUnlocalizedName()); + GameRegistry.registerBlock(door_red, door_red.getUnlocalizedName()); + GameRegistry.registerBlock(secure_access_door, secure_access_door.getUnlocalizedName()); + GameRegistry.registerBlock(large_vehicle_door, large_vehicle_door.getUnlocalizedName()); + GameRegistry.registerBlock(qe_containment, qe_containment.getUnlocalizedName()); + GameRegistry.registerBlock(qe_sliding_door, qe_sliding_door.getUnlocalizedName()); + GameRegistry.registerBlock(round_airlock_door, round_airlock_door.getUnlocalizedName()); + GameRegistry.registerBlock(sliding_seal_door, sliding_seal_door.getUnlocalizedName()); + GameRegistry.registerBlock(water_door, water_door.getUnlocalizedName()); + + //Crates + register(crate_iron); + register(crate_steel); + register(crate_desh); + register(crate_tungsten); + register(crate_template); + register(safe); + register(mass_storage); + + //Junk + GameRegistry.registerBlock(boxcar, boxcar.getUnlocalizedName()); + GameRegistry.registerBlock(boat, boat.getUnlocalizedName()); + + //Machines + register(machine_autocrafter); + register(machine_funnel); + + register(anvil_iron); + register(anvil_lead); + register(anvil_steel); + register(anvil_desh); + register(anvil_ferrouranium); + register(anvil_saturnite); + register(anvil_bismuth_bronze); + register(anvil_arsenic_bronze); + register(anvil_schrabidate); + register(anvil_dnt); + register(anvil_osmiridium); + register(anvil_murky); + + GameRegistry.registerBlock(press_preheater, press_preheater.getUnlocalizedName()); + GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); + GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); + register(machine_conveyor_press); + register(machine_ammo_press); + register(pump_steam); + register(pump_electric); + register(heater_firebox); + register(heater_oven); + register(machine_ashpit); + register(heater_oilburner); + register(heater_electric); + register(heater_heatex); + register(furnace_iron); + register(furnace_steel); + register(furnace_combination); + register(machine_stirling); + register(machine_stirling_steel); + register(machine_stirling_creative); + register(machine_sawmill); + register(machine_crucible); + register(machine_strand_caster); + register(machine_boiler); + register(machine_industrial_boiler); + register(foundry_mold); + register(foundry_basin); + register(foundry_channel); + register(foundry_tank); + register(foundry_outlet); + register(foundry_slagtap); + register(slag); + register(machine_furnace_brick_off); + register(machine_furnace_brick_on); + register(machine_difurnace_off); + register(machine_difurnace_on); + register(machine_difurnace_extension); + GameRegistry.registerBlock(machine_difurnace_rtg_off, machine_difurnace_rtg_off.getUnlocalizedName()); + GameRegistry.registerBlock(machine_difurnace_rtg_on, machine_difurnace_rtg_on.getUnlocalizedName()); + GameRegistry.registerBlock(machine_centrifuge, machine_centrifuge.getUnlocalizedName()); + GameRegistry.registerBlock(machine_gascent, machine_gascent.getUnlocalizedName()); + GameRegistry.registerBlock(machine_fel, machine_fel.getUnlocalizedName()); + GameRegistry.registerBlock(machine_silex, machine_silex.getUnlocalizedName()); + register(machine_rotary_furnace); + GameRegistry.registerBlock(machine_crystallizer, machine_crystallizer.getUnlocalizedName()); + GameRegistry.registerBlock(machine_uf6_tank, machine_uf6_tank.getUnlocalizedName()); + GameRegistry.registerBlock(machine_puf6_tank, machine_puf6_tank.getUnlocalizedName()); + GameRegistry.registerBlock(machine_reactor_breeding, machine_reactor_breeding.getUnlocalizedName()); + GameRegistry.registerBlock(machine_nuke_furnace_off, machine_nuke_furnace_off.getUnlocalizedName()); + GameRegistry.registerBlock(machine_nuke_furnace_on, machine_nuke_furnace_on.getUnlocalizedName()); + GameRegistry.registerBlock(machine_rtg_furnace_off, machine_rtg_furnace_off.getUnlocalizedName()); + GameRegistry.registerBlock(machine_rtg_furnace_on, machine_rtg_furnace_on.getUnlocalizedName()); + register(machine_wood_burner); + register(machine_diesel); + register(machine_combustion_engine); + GameRegistry.registerBlock(machine_controller, machine_controller.getUnlocalizedName()); + GameRegistry.registerBlock(reactor_research, reactor_research.getUnlocalizedName()); + GameRegistry.registerBlock(reactor_zirnox, reactor_zirnox.getUnlocalizedName()); + GameRegistry.registerBlock(zirnox_destroyed, zirnox_destroyed.getUnlocalizedName()); + GameRegistry.registerBlock(machine_industrial_generator, machine_industrial_generator.getUnlocalizedName()); + GameRegistry.registerBlock(machine_radgen, machine_radgen.getUnlocalizedName()); + GameRegistry.registerBlock(machine_cyclotron, machine_cyclotron.getUnlocalizedName()); + GameRegistry.registerBlock(machine_exposure_chamber, machine_exposure_chamber.getUnlocalizedName()); + GameRegistry.registerBlock(machine_rtg_grey, machine_rtg_grey.getUnlocalizedName()); + GameRegistry.registerBlock(machine_geo, machine_geo.getUnlocalizedName()); + GameRegistry.registerBlock(machine_amgen, machine_amgen.getUnlocalizedName()); + GameRegistry.registerBlock(machine_minirtg, machine_minirtg.getUnlocalizedName()); + GameRegistry.registerBlock(machine_powerrtg, machine_powerrtg.getUnlocalizedName()); + GameRegistry.registerBlock(machine_radiolysis, machine_radiolysis.getUnlocalizedName()); + GameRegistry.registerBlock(machine_hephaestus, machine_hephaestus.getUnlocalizedName()); + GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName()); + GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName()); + + GameRegistry.registerBlock(hadron_plating, hadron_plating.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_blue, hadron_plating_blue.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_black, hadron_plating_black.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_yellow, hadron_plating_yellow.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_striped, hadron_plating_striped.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_glass, hadron_plating_glass.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_voltz, hadron_plating_voltz.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_alloy, ItemBlockBase.class, hadron_coil_alloy.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_gold, ItemBlockBase.class, hadron_coil_gold.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_neodymium, ItemBlockBase.class, hadron_coil_neodymium.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_magtung, ItemBlockBase.class, hadron_coil_magtung.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_schrabidium, ItemBlockBase.class, hadron_coil_schrabidium.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_schrabidate, ItemBlockBase.class, hadron_coil_schrabidate.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_starmetal, ItemBlockBase.class, hadron_coil_starmetal.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_chlorophyte, ItemBlockBase.class, hadron_coil_chlorophyte.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_mese, ItemBlockBase.class, hadron_coil_mese.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_power, hadron_power.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_power_10m, hadron_power_10m.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_power_100m, hadron_power_100m.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_power_1g, hadron_power_1g.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_power_10g, hadron_power_10g.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_diode, hadron_diode.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_analysis, hadron_analysis.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_analysis_glass, hadron_analysis_glass.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_access, hadron_access.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_core, hadron_core.getUnlocalizedName()); + register(hadron_cooler); + + GameRegistry.registerBlock(rbmk_rod, rbmk_rod.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_rod_mod, rbmk_rod_mod.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_rod_reasim, rbmk_rod_reasim.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_rod_reasim_mod, rbmk_rod_reasim_mod.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_control, rbmk_control.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_control_mod, rbmk_control_mod.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_control_auto, rbmk_control_auto.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_blank, rbmk_blank.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_boiler, rbmk_boiler.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_reflector, rbmk_reflector.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_absorber, rbmk_absorber.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_moderator, rbmk_moderator.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_outgasser, rbmk_outgasser.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_storage, rbmk_storage.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_cooler, rbmk_cooler.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_heater, rbmk_heater.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_crane_console, rbmk_crane_console.getUnlocalizedName()); + register(rbmk_loader); + register(rbmk_steam_inlet); + register(rbmk_steam_outlet); + GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName()); + GameRegistry.registerBlock(pribris_burning, pribris_burning.getUnlocalizedName()); + GameRegistry.registerBlock(pribris_radiating, pribris_radiating.getUnlocalizedName()); + GameRegistry.registerBlock(pribris_digamma, pribris_digamma.getUnlocalizedName()); + + GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName()); + GameRegistry.registerBlock(red_cable_classic, red_cable_classic.getUnlocalizedName()); + GameRegistry.registerBlock(red_cable_paintable, red_cable_paintable.getUnlocalizedName()); + register(red_cable_gauge); + GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); + GameRegistry.registerBlock(red_connector, ItemBlockBase.class, red_connector.getUnlocalizedName()); + GameRegistry.registerBlock(red_pylon, ItemBlockBase.class, red_pylon.getUnlocalizedName()); + register(red_pylon_medium_wood); + register(red_pylon_medium_wood_transformer); + register(red_pylon_medium_steel); + register(red_pylon_medium_steel_transformer); + GameRegistry.registerBlock(red_pylon_large, ItemBlockBase.class, red_pylon_large.getUnlocalizedName()); + GameRegistry.registerBlock(substation, ItemBlockBase.class, substation.getUnlocalizedName()); + GameRegistry.registerBlock(cable_switch, cable_switch.getUnlocalizedName()); + GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName()); + GameRegistry.registerBlock(cable_diode, ItemBlockBase.class, cable_diode.getUnlocalizedName()); + GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); + register(fluid_duct_neo); + register(fluid_duct_box); + register(fluid_duct_exhaust); + register(fluid_duct_paintable); + register(fluid_duct_gauge); + register(fluid_valve); + register(fluid_switch); + register(machine_drain); + register(radio_torch_sender); + register(radio_torch_receiver); + register(radio_torch_counter); + register(radio_torch_logic); + register(radio_telex); + + register(crane_extractor); + register(crane_inserter); + register(crane_grabber); + register(crane_router); + register(crane_boxer); + register(crane_unboxer); + register(conveyor); + register(conveyor_express); + register(conveyor_double); + register(conveyor_triple); + register(conveyor_chute); + register(conveyor_lift); + register(crane_splitter); + register(crane_partitioner); + register(drone_waypoint); + register(drone_crate); + register(drone_waypoint_request); + register(drone_dock); + register(drone_crate_provider); + register(drone_crate_requester); + register(fan); + register(piston_inserter); + + GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_iron, ladder_iron.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_gold, ladder_gold.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_titanium, ladder_titanium.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_copper, ladder_copper.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_tungsten, ladder_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_aluminium, ladder_aluminium.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_steel, ladder_steel.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_lead, ladder_lead.getUnlocalizedName()); + GameRegistry.registerBlock(ladder_cobalt, ladder_cobalt.getUnlocalizedName()); + + register(barrel_plastic); + register(barrel_corroded); + register(barrel_iron); + register(barrel_steel); + register(barrel_tcalloy); + register(barrel_antimatter); + register(machine_battery_potato); + register(machine_battery); + register(machine_lithium_battery); + register(machine_schrabidium_battery); + register(machine_dineutronium_battery); + register(machine_fensu); + register(capacitor_bus); + register(capacitor_copper); + register(capacitor_gold); + register(capacitor_niobium); + register(capacitor_tantalium); + register(capacitor_schrabidate); + GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); + GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); + GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); + GameRegistry.registerBlock(machine_transformer_dnt_20, machine_transformer_dnt_20.getUnlocalizedName()); + GameRegistry.registerBlock(machine_converter_he_rf, machine_converter_he_rf.getUnlocalizedName()); + GameRegistry.registerBlock(machine_converter_rf_he, machine_converter_rf_he.getUnlocalizedName()); + GameRegistry.registerBlock(machine_electric_furnace_off, machine_electric_furnace_off.getUnlocalizedName()); + GameRegistry.registerBlock(machine_electric_furnace_on, machine_electric_furnace_on.getUnlocalizedName()); + GameRegistry.registerBlock(machine_arc_furnace_off, machine_arc_furnace_off.getUnlocalizedName()); + GameRegistry.registerBlock(machine_arc_furnace_on, machine_arc_furnace_on.getUnlocalizedName()); + GameRegistry.registerBlock(machine_microwave, machine_microwave.getUnlocalizedName()); + GameRegistry.registerBlock(machine_assembler, machine_assembler.getUnlocalizedName()); + GameRegistry.registerBlock(machine_assemfac, machine_assemfac.getUnlocalizedName()); + GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName()); + GameRegistry.registerBlock(machine_chemfac, machine_chemfac.getUnlocalizedName()); + register(machine_arc_welder); + register(machine_soldering_station); + register(machine_arc_furnace); + register(machine_mixer); + register(machine_fluidtank); + register(machine_bat9000); + register(machine_orbus); + GameRegistry.registerBlock(machine_boiler_off, machine_boiler_off.getUnlocalizedName()); + register(machine_steam_engine); + register(machine_turbine); + register(machine_large_turbine); + register(machine_chungus); + GameRegistry.registerBlock(machine_condenser, machine_condenser.getUnlocalizedName()); + GameRegistry.registerBlock(machine_tower_small, machine_tower_small.getUnlocalizedName()); + GameRegistry.registerBlock(machine_tower_large, machine_tower_large.getUnlocalizedName()); + register(machine_condenser_powered); + GameRegistry.registerBlock(machine_deuterium_extractor, machine_deuterium_extractor.getUnlocalizedName()); + GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName()); + GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName()); + GameRegistry.registerBlock(machine_solidifier, ItemBlockBase.class, machine_solidifier.getUnlocalizedName()); + register(machine_compressor); + GameRegistry.registerBlock(machine_electrolyser, machine_electrolyser.getUnlocalizedName()); + GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName()); + GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName()); + GameRegistry.registerBlock(machine_shredder, machine_shredder.getUnlocalizedName()); + register(machine_well); + register(machine_pumpjack); + register(machine_fracking_tower); + register(machine_flare); + register(chimney_brick); + register(chimney_industrial); + register(machine_refinery); + register(machine_vacuum_distill); + register(machine_fraction_tower); + register(fraction_spacer); + register(machine_catalytic_cracker); + register(machine_catalytic_reformer); + register(machine_hydrotreater); + register(machine_coker); + register(machine_pyrooven); + register(machine_autosaw); + register(machine_excavator); + register(machine_ore_slopper); + register(machine_mining_laser); + register(barricade); + register(machine_turbofan); + register(machine_turbinegas); + register(machine_lpw2); + GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName()); + GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName()); + GameRegistry.registerBlock(teleanchor, teleanchor.getUnlocalizedName()); + GameRegistry.registerBlock(field_disturber, field_disturber.getUnlocalizedName()); + GameRegistry.registerBlock(machine_satlinker, machine_satlinker.getUnlocalizedName()); + GameRegistry.registerBlock(machine_keyforge, machine_keyforge.getUnlocalizedName()); + GameRegistry.registerBlock(machine_armor_table, machine_armor_table.getUnlocalizedName()); + GameRegistry.registerBlock(machine_forcefield, machine_forcefield.getUnlocalizedName()); + GameRegistry.registerBlock(radiorec, radiorec.getUnlocalizedName()); + GameRegistry.registerBlock(radiobox, radiobox.getUnlocalizedName()); + + //Multiblock Parts + GameRegistry.registerBlock(struct_launcher, struct_launcher.getUnlocalizedName()); + GameRegistry.registerBlock(struct_scaffold, struct_scaffold.getUnlocalizedName()); + GameRegistry.registerBlock(struct_launcher_core, struct_launcher_core.getUnlocalizedName()); + GameRegistry.registerBlock(struct_launcher_core_large, struct_launcher_core_large.getUnlocalizedName()); + GameRegistry.registerBlock(struct_soyuz_core, struct_soyuz_core.getUnlocalizedName()); + GameRegistry.registerBlock(struct_iter_core, struct_iter_core.getUnlocalizedName()); + GameRegistry.registerBlock(struct_plasma_core, struct_plasma_core.getUnlocalizedName()); + GameRegistry.registerBlock(struct_watz_core, struct_watz_core.getUnlocalizedName()); + GameRegistry.registerBlock(struct_icf_core, struct_icf_core.getUnlocalizedName()); + + //Absorbers + GameRegistry.registerBlock(absorber, absorber.getUnlocalizedName()); + GameRegistry.registerBlock(absorber_red, absorber_red.getUnlocalizedName()); + GameRegistry.registerBlock(absorber_green, absorber_green.getUnlocalizedName()); + GameRegistry.registerBlock(absorber_pink, absorber_pink.getUnlocalizedName()); + GameRegistry.registerBlock(decon, decon.getUnlocalizedName()); + GameRegistry.registerBlock(transission_hatch, transission_hatch.getUnlocalizedName()); + + //Solar Tower Blocks + GameRegistry.registerBlock(machine_solar_boiler, machine_solar_boiler.getUnlocalizedName()); + GameRegistry.registerBlock(solar_mirror, solar_mirror.getUnlocalizedName()); + + //Literal fucking garbage + GameRegistry.registerBlock(factory_titanium_hull, factory_titanium_hull.getUnlocalizedName()); + GameRegistry.registerBlock(factory_advanced_hull, factory_advanced_hull.getUnlocalizedName()); + + //CM stuff + register(custom_machine, ItemCustomMachine.class); + register(cm_block); + register(cm_sheet); + register(cm_engine); + register(cm_tank); + register(cm_circuit); + register(cm_port); + register(cm_flux); + register(cm_heat); + register(cm_anchor); + + //PWR + register(pwr_fuel); + register(pwr_control); + register(pwr_channel); + register(pwr_heatex); + register(pwr_heatsink); + register(pwr_neutron_source); + register(pwr_reflector); + register(pwr_casing); + register(pwr_port); + register(pwr_controller); + register(pwr_block); + + //Multiblock Generators + register(fusion_conductor); + GameRegistry.registerBlock(fusion_center, fusion_center.getUnlocalizedName()); + GameRegistry.registerBlock(fusion_motor, fusion_motor.getUnlocalizedName()); + GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName()); + GameRegistry.registerBlock(fusion_hatch, fusion_hatch.getUnlocalizedName()); + GameRegistry.registerBlock(plasma, ItemBlockLore.class, plasma.getUnlocalizedName()); + GameRegistry.registerBlock(iter, iter.getUnlocalizedName()); + GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); + + register(watz_element); + register(watz_cooler); + register(watz_end); + register(watz); + register(watz_pump); + + register(machine_icf_press); + register(icf_laser_component); + register(icf_controller); + register(icf_block); + register(icf_component); + register(icf); + + //E + GameRegistry.registerBlock(balefire, balefire.getUnlocalizedName()); + GameRegistry.registerBlock(fire_digamma, fire_digamma.getUnlocalizedName()); + GameRegistry.registerBlock(digamma_matter, digamma_matter.getUnlocalizedName()); + register(volcano_core); + register(volcano_rad_core); + + //Dark Fusion Core + GameRegistry.registerBlock(dfc_emitter, dfc_emitter.getUnlocalizedName()); + GameRegistry.registerBlock(dfc_injector, dfc_injector.getUnlocalizedName()); + GameRegistry.registerBlock(dfc_receiver, dfc_receiver.getUnlocalizedName()); + GameRegistry.registerBlock(dfc_stabilizer, dfc_stabilizer.getUnlocalizedName()); + GameRegistry.registerBlock(dfc_core, dfc_core.getUnlocalizedName()); + + //Missile Blocks + GameRegistry.registerBlock(machine_missile_assembly, machine_missile_assembly.getUnlocalizedName()); + GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); + GameRegistry.registerBlock(launch_pad_rusted, launch_pad_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(launch_pad_large, launch_pad_large.getUnlocalizedName()); + GameRegistry.registerBlock(compact_launcher, compact_launcher.getUnlocalizedName()); + GameRegistry.registerBlock(launch_table, launch_table.getUnlocalizedName()); + GameRegistry.registerBlock(soyuz_launcher, soyuz_launcher.getUnlocalizedName()); + GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); + GameRegistry.registerBlock(soyuz_capsule, soyuz_capsule.getUnlocalizedName()); + GameRegistry.registerBlock(crate_supply, crate_supply.getUnlocalizedName()); + GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName()); + GameRegistry.registerBlock(machine_radar_large, machine_radar_large.getUnlocalizedName()); + GameRegistry.registerBlock(radar_screen, radar_screen.getUnlocalizedName()); + + //Guide + GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName()); + + //Sat Blocks + GameRegistry.registerBlock(sat_mapper, sat_mapper.getUnlocalizedName()); + GameRegistry.registerBlock(sat_scanner, sat_scanner.getUnlocalizedName()); + GameRegistry.registerBlock(sat_radar, sat_radar.getUnlocalizedName()); + GameRegistry.registerBlock(sat_laser, sat_laser.getUnlocalizedName()); + GameRegistry.registerBlock(sat_foeq, sat_foeq.getUnlocalizedName()); + GameRegistry.registerBlock(sat_resonator, sat_resonator.getUnlocalizedName()); + + //Rails + GameRegistry.registerBlock(rail_wood, ItemBlockBase.class, rail_wood.getUnlocalizedName()); + GameRegistry.registerBlock(rail_narrow, ItemBlockBase.class, rail_narrow.getUnlocalizedName()); + GameRegistry.registerBlock(rail_highspeed, ItemBlockBase.class, rail_highspeed.getUnlocalizedName()); + GameRegistry.registerBlock(rail_booster, ItemBlockBase.class, rail_booster.getUnlocalizedName()); + register(rail_narrow_straight); + register(rail_narrow_curve); + register(rail_large_straight); + register(rail_large_straight_short); + register(rail_large_curve); + register(rail_large_curve_7); + register(rail_large_curve_9); + register(rail_large_ramp); + register(rail_large_buffer); + register(rail_large_switch); + register(rail_large_switch_flipped); + + //Crate + GameRegistry.registerBlock(crate, crate.getUnlocalizedName()); + GameRegistry.registerBlock(crate_weapon, crate_weapon.getUnlocalizedName()); + GameRegistry.registerBlock(crate_lead, crate_lead.getUnlocalizedName()); + GameRegistry.registerBlock(crate_metal, crate_metal.getUnlocalizedName()); + GameRegistry.registerBlock(crate_red, crate_red.getUnlocalizedName()); + GameRegistry.registerBlock(crate_can, crate_can.getUnlocalizedName()); + GameRegistry.registerBlock(crate_ammo, crate_ammo.getUnlocalizedName()); + GameRegistry.registerBlock(crate_jungle, crate_jungle.getUnlocalizedName()); + + //ElB + GameRegistry.registerBlock(statue_elb_f, statue_elb_f.getUnlocalizedName()); + + //Fluids + GameRegistry.registerBlock(mud_block, mud_block.getUnlocalizedName()); + GameRegistry.registerBlock(acid_block, acid_block.getUnlocalizedName()); + GameRegistry.registerBlock(toxic_block, toxic_block.getUnlocalizedName()); + GameRegistry.registerBlock(schrabidic_block, schrabidic_block.getUnlocalizedName()); + GameRegistry.registerBlock(corium_block, corium_block.getUnlocalizedName()); + GameRegistry.registerBlock(volcanic_lava_block, volcanic_lava_block.getUnlocalizedName()); + GameRegistry.registerBlock(rad_lava_block, rad_lava_block.getUnlocalizedName()); + GameRegistry.registerBlock(sulfuric_acid_block, sulfuric_acid_block.getUnlocalizedName()); + //GameRegistry.registerBlock(concrete_liquid, concrete_liquid.getUnlocalizedName()); + + //Multiblock Dummy Blocks + GameRegistry.registerBlock(dummy_block_vault, dummy_block_vault.getUnlocalizedName()); + GameRegistry.registerBlock(dummy_block_blast, dummy_block_blast.getUnlocalizedName()); + GameRegistry.registerBlock(dummy_plate_compact_launcher, dummy_plate_compact_launcher.getUnlocalizedName()); + GameRegistry.registerBlock(dummy_port_compact_launcher, dummy_port_compact_launcher.getUnlocalizedName()); + GameRegistry.registerBlock(dummy_plate_launch_table, dummy_plate_launch_table.getUnlocalizedName()); + GameRegistry.registerBlock(dummy_port_launch_table, dummy_port_launch_table.getUnlocalizedName()); + GameRegistry.registerBlock(dummy_plate_cargo, dummy_plate_cargo.getUnlocalizedName()); + + //Other Technical Blocks + GameRegistry.registerBlock(oil_pipe, oil_pipe.getUnlocalizedName()); + GameRegistry.registerBlock(vent_chlorine, vent_chlorine.getUnlocalizedName()); + GameRegistry.registerBlock(vent_cloud, vent_cloud.getUnlocalizedName()); + GameRegistry.registerBlock(vent_pink_cloud, vent_pink_cloud.getUnlocalizedName()); + GameRegistry.registerBlock(vent_chlorine_seal, vent_chlorine_seal.getUnlocalizedName()); + GameRegistry.registerBlock(chlorine_gas, chlorine_gas.getUnlocalizedName()); + GameRegistry.registerBlock(gas_radon, gas_radon.getUnlocalizedName()); + GameRegistry.registerBlock(gas_radon_dense, gas_radon_dense.getUnlocalizedName()); + GameRegistry.registerBlock(gas_radon_tomb, gas_radon_tomb.getUnlocalizedName()); + GameRegistry.registerBlock(gas_meltdown, gas_meltdown.getUnlocalizedName()); + GameRegistry.registerBlock(gas_monoxide, gas_monoxide.getUnlocalizedName()); + GameRegistry.registerBlock(gas_asbestos, gas_asbestos.getUnlocalizedName()); + GameRegistry.registerBlock(gas_coal, gas_coal.getUnlocalizedName()); + GameRegistry.registerBlock(gas_flammable, gas_flammable.getUnlocalizedName()); + GameRegistry.registerBlock(gas_explosive, gas_explosive.getUnlocalizedName()); + GameRegistry.registerBlock(vacuum, vacuum.getUnlocalizedName()); + + //??? + GameRegistry.registerBlock(crystal_virus, crystal_virus.getUnlocalizedName()); + GameRegistry.registerBlock(crystal_hardened, crystal_hardened.getUnlocalizedName()); + GameRegistry.registerBlock(crystal_pulsar, crystal_pulsar.getUnlocalizedName()); + GameRegistry.registerBlock(taint, ItemTaintBlock.class, taint.getUnlocalizedName()); + GameRegistry.registerBlock(cheater_virus, cheater_virus.getUnlocalizedName()); + GameRegistry.registerBlock(cheater_virus_seed, cheater_virus_seed.getUnlocalizedName()); + GameRegistry.registerBlock(ntm_dirt, ntm_dirt.getUnlocalizedName()); + GameRegistry.registerBlock(pink_log, pink_log.getUnlocalizedName()); + GameRegistry.registerBlock(pink_planks, pink_planks.getUnlocalizedName()); + GameRegistry.registerBlock(pink_slab, pink_slab.getUnlocalizedName()); + GameRegistry.registerBlock(pink_double_slab, pink_double_slab.getUnlocalizedName()); + GameRegistry.registerBlock(pink_stairs, pink_stairs.getUnlocalizedName()); + } + + private static void register(Block b) { + GameRegistry.registerBlock(b, ItemBlockBase.class, b.getUnlocalizedName()); + } + + private static void register(Block b, Class clazz) { + GameRegistry.registerBlock(b, clazz, b.getUnlocalizedName()); + } + + public static void addRemap(String unloc, Block block, int meta) { + Block remap = new BlockRemap(block, meta).setBlockName(unloc); + register(remap, ItemBlockRemap.class); + } + + // Pretty much the default getDrops function but with no damage set on the item (fucks with recipes) + // but setting the meta via damageDropped breaks creative middle-click and any WAILA-like overlays + public static ArrayList getDropsWithoutDamage(World world, Block block, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + + int count = block.quantityDropped(metadata, fortune, world.rand); + for(int i = 0; i < count; i++) { + Item item = block.getItemDropped(metadata, world.rand, fortune); + if(item != null) { + ret.add(new ItemStack(item, 1, 0)); + } + } + + return ret; + } +} diff --git a/src/main/java/com/hbm/blocks/ModSoundType.java b/src/main/java/com/hbm/blocks/ModSoundType.java index 331a7e27a..0bd8e8a46 100644 --- a/src/main/java/com/hbm/blocks/ModSoundType.java +++ b/src/main/java/com/hbm/blocks/ModSoundType.java @@ -2,18 +2,168 @@ package com.hbm.blocks; import net.minecraft.block.Block; +import java.util.Random; + public class ModSoundType extends Block.SoundType { + protected final String placeSound; + protected final String breakSound; + protected final String stepSound; - public ModSoundType(String name, float volume, float pitch) { - super(name, volume, pitch); + protected ModSoundType(String placeSound, String breakSound, String stepSound, float volume, float pitch) { + super("", volume, pitch); + this.placeSound = placeSound; + this.breakSound = breakSound; + this.stepSound = stepSound; } + public ModEnvelopedSoundType enveloped() { + return new ModEnvelopedSoundType(placeSound, breakSound, stepSound, volume, frequency); + } + + public ModEnvelopedSoundType enveloped(Random random) { + return new ModEnvelopedSoundType(placeSound, breakSound, stepSound, volume, frequency, random); + } + + @Override + public String func_150496_b() { + return placeSound; + } + + @Override public String getBreakSound() { - return "hbm:" + super.getBreakSound(); + return breakSound; } + @Override public String getStepResourcePath() { - return "hbm:" + super.getStepResourcePath(); + return stepSound; } + // creates a sound type with vanilla-like sound strings name-spaced to the mod + public static ModSoundType mod(String soundName, float volume, float pitch) { + return new ModSoundType(modDig(soundName), modDig(soundName), modStep(soundName), volume, pitch); + } + + // these permutations allow creating a sound type with one of the three sounds being custom + // and the other ones defaulting to vanilla-like sound strings name-spaced to the mod + + public static ModSoundType customPlace(String soundName, String placeSound, float volume, float pitch) { + return new ModSoundType(placeSound, modDig(soundName), modStep(soundName), volume, pitch); + } + + public static ModSoundType customBreak(String soundName, String breakSound, float volume, float pitch) { + return new ModSoundType(modDig(soundName), breakSound, modStep(soundName), volume, pitch); + } + + public static ModSoundType customStep(String soundName, String stepSound, float volume, float pitch) { + return new ModSoundType(modDig(soundName), modDig(soundName), stepSound, volume, pitch); + } + + public static ModSoundType customDig(String soundName, String digSound, float volume, float pitch) { + return new ModSoundType(digSound, digSound, modStep(soundName), volume, pitch); + } + + // these permutations copy sounds from an existing sound type and modify one of the sounds, + // but with a manual path for the custom sound + + public static ModSoundType customPlace(Block.SoundType from, String placeSound, float volume, float pitch) { + return new ModSoundType(placeSound, from.getBreakSound(), from.getStepResourcePath(), volume, pitch); + } + + public static ModSoundType customBreak(Block.SoundType from, String breakSound, float volume, float pitch) { + return new ModSoundType(from.func_150496_b(), breakSound, from.getStepResourcePath(), volume, pitch); + } + + public static ModSoundType customStep(Block.SoundType from, String stepSound, float volume, float pitch) { + return new ModSoundType(from.func_150496_b(), from.getBreakSound(), stepSound, volume, pitch); + } + + public static ModSoundType customDig(Block.SoundType from, String dig, float volume, float pitch) { + return new ModSoundType(dig, dig, from.getStepResourcePath(), volume, pitch); + } + + // customizes all sounds + public static ModSoundType placeBreakStep(String placeSound, String breakSound, String stepSound, float volume, float pitch) { + return new ModSoundType(placeSound, breakSound, stepSound, volume, pitch); + } + + private static String modDig(String soundName) { + return "hbm:dig." + soundName; + } + + private static String modStep(String soundName) { + return "hbm:step." + soundName; + } + + public static class ModEnvelopedSoundType extends ModSoundType { + private final Random random; + + ModEnvelopedSoundType(String placeSound, String breakSound, String stepSound, float volume, float pitch, Random random) { + super(placeSound, breakSound, stepSound, volume, pitch); + this.random = random; + } + + ModEnvelopedSoundType(String placeSound, String breakSound, String stepSound, float volume, float pitch) { + this(placeSound, breakSound, stepSound, volume, pitch, new Random()); + } + + // a bit of a hack, but most of the time, playSound is called with the sound path queried first, and then volume and pitch + private SubType probableSubType = SubType.PLACE; + + @Override + public String func_150496_b() { + probableSubType = SubType.PLACE; + return super.func_150496_b(); + } + + @Override + public String getBreakSound() { + probableSubType = SubType.BREAK; + return super.getBreakSound(); + } + + @Override + public String getStepResourcePath() { + probableSubType = SubType.STEP; + return super.getStepResourcePath(); + } + + private Envelope volumeEnvelope = null; + private Envelope pitchEnvelope = null; + + public ModEnvelopedSoundType volumeFunction(Envelope volumeEnvelope) { + this.volumeEnvelope = volumeEnvelope; + return this; + } + + public ModEnvelopedSoundType pitchFunction(Envelope pitchEnvelope) { + this.pitchEnvelope = pitchEnvelope; + return this; + } + + @Override + public float getVolume() { + if (volumeEnvelope == null) + return super.getVolume(); + else + return volumeEnvelope.compute(super.getVolume(), random, probableSubType); + } + + @Override + public float getPitch() { + if (pitchEnvelope == null) + return super.getPitch(); + else + return pitchEnvelope.compute(super.getPitch(), random, probableSubType); + } + + @FunctionalInterface + public interface Envelope { + float compute(float in, Random rand, SubType type); + } + } + + public enum SubType { + PLACE, BREAK, STEP + } } diff --git a/src/main/java/com/hbm/blocks/ModSoundTypes.java b/src/main/java/com/hbm/blocks/ModSoundTypes.java new file mode 100644 index 000000000..85f42f310 --- /dev/null +++ b/src/main/java/com/hbm/blocks/ModSoundTypes.java @@ -0,0 +1,13 @@ +package com.hbm.blocks; + +import com.hbm.main.MainRegistry; +import net.minecraft.block.Block; + +public class ModSoundTypes { + + public static final ModSoundType grate = ModSoundType.customStep(Block.soundTypeStone, "hbm:step.metalBlock", 0.5F, 1.0F); + public static final ModSoundType pipe = ModSoundType.customDig(Block.soundTypeMetal, "hbm:block.pipePlaced", 0.85F, 0.85F).enveloped(MainRegistry.instance.rand).pitchFunction((in, rand, type) -> { + if(type == ModSoundType.SubType.BREAK) in -= 0.15F; + return in + rand.nextFloat() * 0.2F; + }); +} diff --git a/src/main/java/com/hbm/blocks/bomb/Balefire.java b/src/main/java/com/hbm/blocks/bomb/Balefire.java index 3ad57ad2c..4a282e861 100644 --- a/src/main/java/com/hbm/blocks/bomb/Balefire.java +++ b/src/main/java/com/hbm/blocks/bomb/Balefire.java @@ -7,8 +7,10 @@ import static net.minecraftforge.common.util.ForgeDirection.SOUTH; import static net.minecraftforge.common.util.ForgeDirection.UP; import static net.minecraftforge.common.util.ForgeDirection.WEST; +import java.awt.Color; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.potion.HbmPotion; import cpw.mods.fml.relauncher.Side; @@ -25,193 +27,146 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class Balefire extends BlockFire { + + private IIcon icon; + + public Balefire() { + super(); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister register) { + icon = register.registerIcon(this.getTextureName()); + } + + @SideOnly(Side.CLIENT) + public IIcon getFireIcon(int i) { + return icon; + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icon; + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + if(world.getGameRules().getGameRuleBooleanValue("doFireTick")) { + + if(!this.canPlaceBlockAt(world, x, y, z)) { + world.setBlockToAir(x, y, z); + } + + int meta = world.getBlockMetadata(x, y, z); + + if(meta < 15) world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world) + rand.nextInt(10)); + + if(!this.canNeighborBurn(world, x, y, z) && !World.doesBlockHaveSolidTopSurface(world, x, y - 1, z)) { + world.setBlockToAir(x, y, z); + } else { + if(meta < 15) { + this.tryCatchFire(world, x + 1, y, z, 500, rand, meta, WEST); + this.tryCatchFire(world, x - 1, y, z, 500, rand, meta, EAST); + this.tryCatchFire(world, x, y - 1, z, 300, rand, meta, UP); + this.tryCatchFire(world, x, y + 1, z, 300, rand, meta, DOWN); + this.tryCatchFire(world, x, y, z - 1, 500, rand, meta, SOUTH); + this.tryCatchFire(world, x, y, z + 1, 500, rand, meta, NORTH); + + int h = 3; + + for(int ix = x - h; ix <= x + h; ++ix) { + for(int iz = z - h; iz <= z + h; ++iz) { + for(int iy = y - 1; iy <= y + 4; ++iy) { + + if(ix != x || iy != y || iz != z) { + int fireLimit = 100; + + if(iy > y + 1) { + fireLimit += (iy - (y + 1)) * 100; + } + + if(world.getBlock(ix, iy, iz) == ModBlocks.balefire && world.getBlockMetadata(ix, iy, iz) > meta + 1) { + world.setBlock(ix, iy, iz, this, meta + 1, 3); + continue; + } + + int neighborFireChance = this.getChanceOfNeighborsEncouragingFire(world, ix, iy, iz); + + if(neighborFireChance > 0) { + int adjustedFireChance = (neighborFireChance + 40 + world.difficultySetting.getDifficultyId() * 7) / (meta + 30); + + if(adjustedFireChance > 0 && rand.nextInt(fireLimit) <= adjustedFireChance) { + world.setBlock(ix, iy, iz, this, meta + 1, 3); + } + } + } + } + } + } + } + } + } + } + + private void tryCatchFire(World world, int x, int y, int z, int chance, Random rand, int fireMetadata, ForgeDirection face) { + int flammability = world.getBlock(x, y, z).getFlammability(world, x, y, z, face); + + if(rand.nextInt(chance) < flammability) { + boolean flag = world.getBlock(x, y, z) == Blocks.tnt; + + world.setBlock(x, y, z, this, fireMetadata + 1, 3); + + if(flag) { + Blocks.tnt.onBlockDestroyedByPlayer(world, x, y, z, 1); + } + } + } + + private boolean canNeighborBurn(World world, int x, int y, int z) { + return this.canCatchFire(world, x + 1, y, z, WEST) + || this.canCatchFire(world, x - 1, y, z, EAST) + || this.canCatchFire(world, x, y - 1, z, UP) + || this.canCatchFire(world, x, y + 1, z, DOWN) + || this.canCatchFire(world, x, y, z - 1, SOUTH) + || this.canCatchFire(world, x, y, z + 1, NORTH); + } + + private int getChanceOfNeighborsEncouragingFire(World world, int x, int y, int z) { + + if(!world.isAirBlock(x, y, z)) { + return 0; + } else { + int spread = 0; + spread = this.getChanceToEncourageFire(world, x + 1, y, z, spread, WEST); + spread = this.getChanceToEncourageFire(world, x - 1, y, z, spread, EAST); + spread = this.getChanceToEncourageFire(world, x, y - 1, z, spread, UP); + spread = this.getChanceToEncourageFire(world, x, y + 1, z, spread, DOWN); + spread = this.getChanceToEncourageFire(world, x, y, z - 1, spread, SOUTH); + spread = this.getChanceToEncourageFire(world, x, y, z + 1, spread, NORTH); + return spread; + } + } + + @Override + public boolean canCatchFire(IBlockAccess world, int x, int y, int z, ForgeDirection face) { + return world.getBlock(x, y, z).isFlammable(world, x, y, z, face); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + entity.setFire(10); + + if(entity instanceof EntityLivingBase) ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 5 * 20, 9)); + } - private IIcon field_149850_M; - - public Balefire() - { - super(); - } - - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister p_149651_1_) { - - field_149850_M = p_149651_1_.registerIcon(this.getTextureName()); - } - - @SideOnly(Side.CLIENT) - public IIcon getFireIcon(int p_149840_1_) - { - return field_149850_M; - } - - @SideOnly(Side.CLIENT) - public IIcon getIcon(int p_149691_1_, int p_149691_2_) - { - return field_149850_M; - } - public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_) - { - if (p_149674_1_.getGameRules().getGameRuleBooleanValue("doFireTick")) - { - boolean flag = p_149674_1_.getBlock(p_149674_2_, p_149674_3_ - 1, p_149674_4_).isFireSource(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, UP); - - if (!this.canPlaceBlockAt(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_)) - { - p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); - } - - /*if (!flag && p_149674_1_.isRaining() && (p_149674_1_.canLightningStrikeAt(p_149674_2_, p_149674_3_, p_149674_4_) || p_149674_1_.canLightningStrikeAt(p_149674_2_ - 1, p_149674_3_, p_149674_4_) || p_149674_1_.canLightningStrikeAt(p_149674_2_ + 1, p_149674_3_, p_149674_4_) || p_149674_1_.canLightningStrikeAt(p_149674_2_, p_149674_3_, p_149674_4_ - 1) || p_149674_1_.canLightningStrikeAt(p_149674_2_, p_149674_3_, p_149674_4_ + 1))) - { - p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); - } - else*/ - { - int l = 0; - /*int l = p_149674_1_.getBlockMetadata(p_149674_2_, p_149674_3_, p_149674_4_); - - if (l < 15) - { - p_149674_1_.setBlockMetadataWithNotify(p_149674_2_, p_149674_3_, p_149674_4_, l + p_149674_5_.nextInt(3) / 2, 4); - }*/ - - p_149674_1_.scheduleBlockUpdate(p_149674_2_, p_149674_3_, p_149674_4_, this, this.tickRate(p_149674_1_) + p_149674_5_.nextInt(10)); - - if (!flag && !this.canNeighborBurn(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_)) - { - if (!World.doesBlockHaveSolidTopSurface(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_)/* || l > 3*/) - { - p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); - } - } - /*else if (!flag && !this.canCatchFire(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, UP) && l == 15 && p_149674_5_.nextInt(4) == 0) - { - //p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); - }*/ - else - { - //boolean flag1 = p_149674_1_.isBlockHighHumidity(p_149674_2_, p_149674_3_, p_149674_4_); - byte b0 = 0; - - /*if (flag1) - { - b0 = -50; - }*/ - - this.tryCatchFire(p_149674_1_, p_149674_2_ + 1, p_149674_3_, p_149674_4_, 300 + b0, p_149674_5_, l, WEST ); - this.tryCatchFire(p_149674_1_, p_149674_2_ - 1, p_149674_3_, p_149674_4_, 300 + b0, p_149674_5_, l, EAST ); - this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_ - 1, p_149674_4_, 250 + b0, p_149674_5_, l, UP ); - this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_ + 1, p_149674_4_, 250 + b0, p_149674_5_, l, DOWN ); - this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_ - 1, 300 + b0, p_149674_5_, l, SOUTH); - this.tryCatchFire(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_ + 1, 300 + b0, p_149674_5_, l, NORTH); - - for (int i1 = p_149674_2_ - 1; i1 <= p_149674_2_ + 1; ++i1) - { - for (int j1 = p_149674_4_ - 1; j1 <= p_149674_4_ + 1; ++j1) - { - for (int k1 = p_149674_3_ - 1; k1 <= p_149674_3_ + 4; ++k1) - { - if (i1 != p_149674_2_ || k1 != p_149674_3_ || j1 != p_149674_4_) - { - int l1 = 100; - - if (k1 > p_149674_3_ + 1) - { - l1 += (k1 - (p_149674_3_ + 1)) * 100; - } - - int i2 = this.getChanceOfNeighborsEncouragingFire(p_149674_1_, i1, k1, j1); - - if (i2 > 0) - { - int j2 = (i2 + 40 + p_149674_1_.difficultySetting.getDifficultyId() * 7) / (l + 30); - - /*if (flag1) - { - j2 /= 2; - }*/ - - if (j2 > 0 && p_149674_5_.nextInt(l1) <= j2) - { - int k2 = l + p_149674_5_.nextInt(5) / 4; - - if (k2 > 15) - { - k2 = 15; - } - - p_149674_1_.setBlock(i1, k1, j1, this, k2, 3); - } - } - } - } - } - } - } - } - } - } - - private void tryCatchFire(World p_149841_1_, int p_149841_2_, int p_149841_3_, int p_149841_4_, int p_149841_5_, Random p_149841_6_, int p_149841_7_, ForgeDirection face) - { - int j1 = p_149841_1_.getBlock(p_149841_2_, p_149841_3_, p_149841_4_).getFlammability(p_149841_1_, p_149841_2_, p_149841_3_, p_149841_4_, face); - - if (p_149841_6_.nextInt(p_149841_5_) < j1) - { - boolean flag = p_149841_1_.getBlock(p_149841_2_, p_149841_3_, p_149841_4_) == Blocks.tnt; - - p_149841_1_.setBlock(p_149841_2_, p_149841_3_, p_149841_4_, this, 15, 3); - - if (flag) - { - Blocks.tnt.onBlockDestroyedByPlayer(p_149841_1_, p_149841_2_, p_149841_3_, p_149841_4_, 1); - } - } - } - - private boolean canNeighborBurn(World p_149847_1_, int p_149847_2_, int p_149847_3_, int p_149847_4_) - { - return this.canCatchFire(p_149847_1_, p_149847_2_ + 1, p_149847_3_, p_149847_4_, WEST ) || - this.canCatchFire(p_149847_1_, p_149847_2_ - 1, p_149847_3_, p_149847_4_, EAST ) || - this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_ - 1, p_149847_4_, UP ) || - this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_ + 1, p_149847_4_, DOWN ) || - this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_, p_149847_4_ - 1, SOUTH) || - this.canCatchFire(p_149847_1_, p_149847_2_, p_149847_3_, p_149847_4_ + 1, NORTH); - } - - private int getChanceOfNeighborsEncouragingFire(World p_149845_1_, int p_149845_2_, int p_149845_3_, int p_149845_4_) - { - byte b0 = 0; - - if (!p_149845_1_.isAirBlock(p_149845_2_, p_149845_3_, p_149845_4_)) - { - return 0; - } - else - { - int l = b0; - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_ + 1, p_149845_3_, p_149845_4_, l, WEST ); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_ - 1, p_149845_3_, p_149845_4_, l, EAST ); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_ - 1, p_149845_4_, l, UP ); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_ + 1, p_149845_4_, l, DOWN ); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_, p_149845_4_ - 1, l, SOUTH); - l = this.getChanceToEncourageFire(p_149845_1_, p_149845_2_, p_149845_3_, p_149845_4_ + 1, l, NORTH); - return l; - } - } - - public boolean canCatchFire(IBlockAccess world, int x, int y, int z, ForgeDirection face) - { - return world.getBlock(x, y, z).isFlammable(world, x, y, z, face); - } - - @Override - public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity p_149670_5_) - { - p_149670_5_.setFire(10); - - if(p_149670_5_ instanceof EntityLivingBase) - ((EntityLivingBase)p_149670_5_).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 5 * 20, 9)); - } + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + return Color.HSBtoRGB(0F, 0F, 1F - meta / 30F); + } + @Override + public int getRenderType() { + return 1; + } } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockC4.java b/src/main/java/com/hbm/blocks/bomb/BlockC4.java index 6fd3ce025..9486c40e4 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockC4.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockC4.java @@ -8,6 +8,6 @@ public class BlockC4 extends BlockTNTBase { @Override public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { - world.createExplosion(entity, x, y, z, 26F, true); + world.createExplosion(entity, x, y, z, 15F, true); } } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockChargeBase.java b/src/main/java/com/hbm/blocks/bomb/BlockChargeBase.java index 2002773fe..4ce9a4bc3 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockChargeBase.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockChargeBase.java @@ -12,10 +12,13 @@ import java.util.Random; import com.hbm.blocks.BlockContainerBase; import com.hbm.blocks.ITooltipProvider; +import com.hbm.entity.item.EntityTNTPrimedBase; import com.hbm.interfaces.IBomb; import com.hbm.tileentity.bomb.TileEntityCharge; +import api.hbm.block.IFuckingExplode; import api.hbm.block.IToolable; +import net.minecraft.util.MathHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -29,7 +32,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class BlockChargeBase extends BlockContainerBase implements IBomb, IToolable, ITooltipProvider { +public abstract class BlockChargeBase extends BlockContainerBase implements IBomb, IToolable, ITooltipProvider, IFuckingExplode { public static boolean safe = false; @@ -134,8 +137,18 @@ public abstract class BlockChargeBase extends BlockContainerBase implements IBom } @Override - public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion p_149723_5_) { - this.explode(world, x, y, z); + public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { + if(!world.isRemote) { + EntityTNTPrimedBase tntPrimed = new EntityTNTPrimedBase(world, x + 0.5D, y + 0.5D, z + 0.5D, explosion != null ? explosion.getExplosivePlacedBy() : null, this); + tntPrimed.fuse = 0; + tntPrimed.detonateOnCollision = false; + world.spawnEntityInWorld(tntPrimed); + } + } + + @Override + public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { + explode(world, MathHelper.floor_double(x), MathHelper.floor_double(y), MathHelper.floor_double(z)); } @Override diff --git a/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java b/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java index ef67c63b8..65cca5d17 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockChargeC4.java @@ -5,6 +5,9 @@ import java.util.List; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.particle.helper.ExplosionCreator; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.entity.player.EntityPlayer; @@ -22,10 +25,13 @@ public class BlockChargeC4 extends BlockChargeBase { world.setBlockToAir(x, y, z); safe = false; - ExplosionVNT xnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 15F).makeStandard(); + ExplosionVNT xnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 15F); xnt.setBlockAllocator(new BlockAllocatorStandard(32)); xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setEntityProcessor(new EntityProcessorStandard()); + xnt.setPlayerProcessor(new PlayerProcessorStandard()); xnt.explode(); + ExplosionCreator.composeEffectSmall(world, x + 0.5, y + 1, z + 0.5); return BombReturnCode.DETONATED; } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockChargeDynamite.java b/src/main/java/com/hbm/blocks/bomb/BlockChargeDynamite.java index 9513e3c4d..b7f0b328d 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockChargeDynamite.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockChargeDynamite.java @@ -1,7 +1,7 @@ package com.hbm.blocks.bomb; -import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; +import com.hbm.particle.helper.ExplosionSmallCreator; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.world.World; @@ -17,7 +17,7 @@ public class BlockChargeDynamite extends BlockChargeBase { safe = false; ExplosionNT exp = new ExplosionNT(world, null, x + 0.5, y + 0.5, z + 0.5, 4F); exp.explode(); - ExplosionLarge.spawnParticles(world, x + 0.5, y + 0.5, z + 0.5, 20); + ExplosionSmallCreator.composeEffect(world, x + 0.5, y + 0.5, z + 0.5, 15, 3F, 1.25F); return BombReturnCode.DETONATED; } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockChargeMiner.java b/src/main/java/com/hbm/blocks/bomb/BlockChargeMiner.java index 1470e078c..61903dca3 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockChargeMiner.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockChargeMiner.java @@ -2,9 +2,9 @@ package com.hbm.blocks.bomb; import java.util.List; -import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; +import com.hbm.particle.helper.ExplosionSmallCreator; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -23,7 +23,7 @@ public class BlockChargeMiner extends BlockChargeBase { ExplosionNT exp = new ExplosionNT(world, null, x + 0.5, y + 0.5, z + 0.5, 4F); exp.addAllAttrib(ExAttrib.NOHURT, ExAttrib.ALLDROP); exp.explode(); - ExplosionLarge.spawnParticles(world, x + 0.5, y + 0.5, z + 0.5, 20); + ExplosionSmallCreator.composeEffect(world, x + 0.5, y + 0.5, z + 0.5, 15, 3F, 1.25F); return BombReturnCode.DETONATED; } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockChargeSemtex.java b/src/main/java/com/hbm/blocks/bomb/BlockChargeSemtex.java index f731c7df2..ed880233d 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockChargeSemtex.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockChargeSemtex.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; +import com.hbm.particle.helper.ExplosionCreator; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -27,8 +27,8 @@ public class BlockChargeSemtex extends BlockChargeBase { xnt.setBlockProcessor(new BlockProcessorStandard() .setAllDrop() .setFortune(3)); - xnt.setSFX(new ExplosionEffectStandard()); xnt.explode(); + ExplosionCreator.composeEffectSmall(world, x + 0.5, y + 1, z + 0.5); return BombReturnCode.DETONATED; } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockCloudResidue.java b/src/main/java/com/hbm/blocks/bomb/BlockCloudResidue.java deleted file mode 100644 index 64d813881..000000000 --- a/src/main/java/com/hbm/blocks/bomb/BlockCloudResidue.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.hbm.blocks.bomb; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; - -import net.minecraft.block.Block; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.item.Item; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class BlockCloudResidue extends Block { - - public BlockCloudResidue(Material p_i45386_1_) { - super(p_i45386_1_); - } - - public static int func_150032_b(int p_150032_0_) - { - return func_150031_c(p_150032_0_); - } - - public static int func_150031_c(int p_150031_0_) - { - return p_150031_0_ & 15; - } - - public MapColor getMapColor(int p_149728_1_) - { - return MapColor.redColor; - } - - @Override - public int getRenderType(){ - return ModBlocks.taint.getRenderType(); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return p_149650_2_.nextInt(25) == 0 ? ModItems.powder_cloud : null; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - public void onNeighborBlockChange(World world, int x, int y, int z, Block b) - { - if(!hasPosNeightbour(world, x, y, z) && !world.isRemote) - world.setBlockToAir(x, y, z); - } - - public static boolean hasPosNeightbour(World world, int x, int y, int z) { - Block b0 = world.getBlock(x + 1, y, z); - Block b1 = world.getBlock(x, y + 1, z); - Block b2 = world.getBlock(x, y, z + 1); - Block b3 = world.getBlock(x - 1, y, z); - Block b4 = world.getBlock(x, y - 1, z); - Block b5 = world.getBlock(x, y, z - 1); - boolean b = (b0.renderAsNormalBlock() && b0.getMaterial().isOpaque()) || - (b1.renderAsNormalBlock() && b1.getMaterial().isOpaque()) || - (b2.renderAsNormalBlock() && b2.getMaterial().isOpaque()) || - (b3.renderAsNormalBlock() && b3.getMaterial().isOpaque()) || - (b4.renderAsNormalBlock() && b4.getMaterial().isOpaque()) || - (b5.renderAsNormalBlock() && b5.getMaterial().isOpaque()); - return b; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) - { - return null; - } - - @Override - public AxisAlignedBB getSelectedBoundingBoxFromPool(World par1World, int par2, int par3, int par4) - { - return AxisAlignedBB.getBoundingBox(par2, par3, par4, par2, par3, par4); - } -} diff --git a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java index 730cac10b..f2a3f7783 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java @@ -7,8 +7,8 @@ import com.hbm.config.BombConfig; import com.hbm.entity.logic.EntityBalefire; import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.bomb.TileEntityCrashedBomb; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -98,7 +98,7 @@ public class BlockCrashedBomb extends BlockContainer implements IBomb { if(!world.isRemote) { world.setBlockToAir(x, y, z); - EntityBalefire bf = new EntityBalefire(world).mute(); + EntityBalefire bf = new EntityBalefire(world); bf.posX = x; bf.posY = y; bf.posZ = z; diff --git a/src/main/java/com/hbm/blocks/bomb/BlockDetonatable.java b/src/main/java/com/hbm/blocks/bomb/BlockDetonatable.java new file mode 100644 index 000000000..ceae92120 --- /dev/null +++ b/src/main/java/com/hbm/blocks/bomb/BlockDetonatable.java @@ -0,0 +1,55 @@ +package com.hbm.blocks.bomb; + +import com.hbm.blocks.generic.BlockFlammable; +import com.hbm.entity.item.EntityTNTPrimedBase; + +import api.hbm.block.IFuckingExplode; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.Explosion; +import net.minecraft.world.World; + +public abstract class BlockDetonatable extends BlockFlammable implements IFuckingExplode { + + protected int popFuse; // A shorter fuse for when this explosive is dinked by another + protected boolean detonateOnCollision; + protected boolean detonateOnShot; + + public BlockDetonatable(Material mat, int en, int flam, int popFuse, boolean detonateOnCollision, boolean detonateOnShot) { + super(mat, en, flam); + this.popFuse = popFuse; + this.detonateOnCollision = detonateOnCollision; + this.detonateOnShot = detonateOnShot; + } + + @Override + public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { + if(!world.isRemote) { + EntityTNTPrimedBase tntPrimed = new EntityTNTPrimedBase(world, x + 0.5D, y + 0.5D, z + 0.5D, explosion != null ? explosion.getExplosivePlacedBy() : null, this); + tntPrimed.fuse = popFuse <= 0 ? 0 : world.rand.nextInt(popFuse) + popFuse / 2; + tntPrimed.detonateOnCollision = detonateOnCollision; + world.spawnEntityInWorld(tntPrimed); + } + } + + @Override + public boolean canDropFromExplosion(Explosion explosion) { + return false; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + if(!world.isRemote && shouldIgnite(world, x, y, z)) { + world.setBlockToAir(x, y, z); + onBlockDestroyedByExplosion(world, x, y, z, null); + } + } + + public void onShot(World world, int x, int y, int z) { + if (!detonateOnShot) return; + + world.setBlockToAir(x, y, z); + explodeEntity(world, x, y, z, null); // insta-explod + } + +} diff --git a/src/main/java/com/hbm/blocks/bomb/BlockPlasticExplosive.java b/src/main/java/com/hbm/blocks/bomb/BlockPlasticExplosive.java index b07b65821..a9be990fc 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockPlasticExplosive.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockPlasticExplosive.java @@ -1,7 +1,8 @@ package com.hbm.blocks.bomb; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNT; +import com.hbm.entity.item.EntityTNTPrimedBase; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.interfaces.IBomb; import cpw.mods.fml.relauncher.Side; @@ -13,17 +14,16 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; -import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class BlockPlasticExplosive extends Block implements IBomb { +public class BlockPlasticExplosive extends BlockDetonatable implements IBomb { @SideOnly(Side.CLIENT) private IIcon topIcon; public BlockPlasticExplosive(Material mat) { - super(mat); + super(mat, 0, 0, 0, false, false); } @SideOnly(Side.CLIENT) @@ -68,12 +68,7 @@ public class BlockPlasticExplosive extends Block implements IBomb { } @Override - public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { - this.explode(world, x, y, z); - } - - @Override - public void onNeighborBlockChange(World world, int x, int y, int z, Block p_149695_5_) { + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { if(world.isBlockIndirectlyGettingPowered(x, y, z)) { this.explode(world, x, y, z); } @@ -83,10 +78,14 @@ public class BlockPlasticExplosive extends Block implements IBomb { public BombReturnCode explode(World world, int x, int y, int z) { if(!world.isRemote) { - new ExplosionNT(world, null, x + 0.5, y + 0.5, z + 0.5, 50).overrideResolution(64).explode(); - ExplosionLarge.spawnParticles(world, x, y, z, ExplosionLarge.cloudFunction(15)); + new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 20).makeStandard().setBlockProcessor(new BlockProcessorStandard().setNoDrop()).explode(); } return BombReturnCode.DETONATED; } + + @Override + public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { + explode(world, MathHelper.floor_double(x), MathHelper.floor_double(y), MathHelper.floor_double(z)); + } } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockSemtex.java b/src/main/java/com/hbm/blocks/bomb/BlockSemtex.java index b921891b9..df0b3ba26 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockSemtex.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockSemtex.java @@ -8,6 +8,6 @@ public class BlockSemtex extends BlockTNTBase { @Override public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { - world.createExplosion(entity, x, y, z, 20F, true); + world.createExplosion(entity, x, y, z, 12F, true); } } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockTNT.java b/src/main/java/com/hbm/blocks/bomb/BlockTNT.java index ddb8fdbb5..5dd5219d7 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockTNT.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockTNT.java @@ -8,6 +8,6 @@ public class BlockTNT extends BlockTNTBase { @Override public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { - world.createExplosion(entity, x, y, z, 12F, true); + world.createExplosion(entity, x, y, z, 10F, true); } } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java index cf29f747c..bcc3543b4 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java @@ -2,7 +2,6 @@ package com.hbm.blocks.bomb; import java.util.Random; -import com.hbm.blocks.generic.BlockFlammable; import com.hbm.entity.item.EntityTNTPrimedBase; import com.hbm.util.ChatBuilder; @@ -19,16 +18,15 @@ import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Items; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; -import net.minecraft.world.Explosion; import net.minecraft.world.World; -public abstract class BlockTNTBase extends BlockFlammable implements IToolable { +public abstract class BlockTNTBase extends BlockDetonatable implements IToolable { @SideOnly(Side.CLIENT) private IIcon topIcon; @SideOnly(Side.CLIENT) private IIcon bottomIcon; public BlockTNTBase() { - super(Material.tnt, 15, 100); + super(Material.tnt, 15, 100, 20, false, false); } @Override @@ -44,6 +42,8 @@ public abstract class BlockTNTBase extends BlockFlammable implements IToolable { if(world.isBlockIndirectlyGettingPowered(x, y, z)) { this.onBlockDestroyedByPlayer(world, x, y, z, 1); world.setBlockToAir(x, y, z); + } else { + checkAndIgnite(world, x, y, z); } } @@ -52,6 +52,15 @@ public abstract class BlockTNTBase extends BlockFlammable implements IToolable { if(world.isBlockIndirectlyGettingPowered(x, y, z)) { this.onBlockDestroyedByPlayer(world, x, y, z, 1); world.setBlockToAir(x, y, z); + } else { + checkAndIgnite(world, x, y, z); + } + } + + public void checkAndIgnite(World world, int x, int y, int z) { + if (shouldIgnite(world, x, y, z)) { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + world.setBlockToAir(x, y, z); } } @@ -60,15 +69,6 @@ public abstract class BlockTNTBase extends BlockFlammable implements IToolable { return 1; } - @Override - public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { - if(!world.isRemote) { - EntityTNTPrimedBase entitytntprimed = new EntityTNTPrimedBase(world, x + 0.5D, y + 0.5D, z + 0.5D, explosion.getExplosivePlacedBy(), this); - entitytntprimed.fuse = world.rand.nextInt(entitytntprimed.fuse / 4) + entitytntprimed.fuse / 8; - world.spawnEntityInWorld(entitytntprimed); - } - } - @Override public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta) { this.prime(world, x, y, z, meta, (EntityLivingBase) null); @@ -108,19 +108,12 @@ public abstract class BlockTNTBase extends BlockFlammable implements IToolable { } } - @Override - public boolean canDropFromExplosion(Explosion explosion) { - return false; - } - - public abstract void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity); - @Override @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister p_149651_1_) { - this.blockIcon = p_149651_1_.registerIcon(this.getTextureName() + "_side"); - this.topIcon = p_149651_1_.registerIcon(this.getTextureName() + "_top"); - this.bottomIcon = p_149651_1_.registerIcon(this.getTextureName() + "_bottom"); + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(this.getTextureName() + "_side"); + this.topIcon = iconRegister.registerIcon(this.getTextureName() + "_top"); + this.bottomIcon = iconRegister.registerIcon(this.getTextureName() + "_bottom"); } @Override @@ -128,8 +121,8 @@ public abstract class BlockTNTBase extends BlockFlammable implements IToolable { if(tool == ToolType.DEFUSER) { if(!world.isRemote) { - world.func_147480_a(x, y, z, true); - this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0); + world.func_147480_a(x, y, z, false); + this.dropBlockAsItem(world, x, y, z, 0, 0); } return true; } diff --git a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java index 2766da2ce..8ae9a63a3 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java @@ -9,8 +9,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -81,8 +81,9 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB } public static class TileEntityVolcanoCore extends TileEntity { - + private static List volcanoExplosion = Arrays.asList(new ExAttrib[] {ExAttrib.NODROP, ExAttrib.LAVA_V, ExAttrib.NOSOUND, ExAttrib.ALLMOD, ExAttrib.NOHURT}); + private static List volcanoRadExplosion = Arrays.asList(new ExAttrib[] {ExAttrib.NODROP, ExAttrib.LAVA_R, ExAttrib.NOSOUND, ExAttrib.ALLMOD, ExAttrib.NOHURT}); public int volcanoTimer; @@ -118,15 +119,28 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB if(this.shouldGrow()) { worldObj.setBlock(xCoord, yCoord + 1, zCoord, this.getBlockType(), this.getBlockMetadata(), 3); - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.volcanic_lava_block); + worldObj.setBlock(xCoord, yCoord, zCoord, getLava()); return; } else if(this.isExtinguishing()) { - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.volcanic_lava_block); + worldObj.setBlock(xCoord, yCoord, zCoord, getLava()); return; } } } } + + public boolean isRadioacitve() { + return this.getBlockType() == ModBlocks.volcano_rad_core; + } + + protected Block getLava() { + if(isRadioacitve()) return ModBlocks.rad_lava_block; + return ModBlocks.volcanic_lava_block; + } + + protected List getExpAttrb() { + return this.isRadioacitve() ? this.volcanoRadExplosion : this.volcanoExplosion; + } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -184,21 +198,12 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB } } - /* TODO */ - private boolean doesPyroclastic() { - return false; - } - - private double getPyroclasticRange() { - return 0D; - } - /** Causes two magma explosions, one from bedrock to the core and one from the core to 15 blocks above. */ private void blastMagmaChannel() { ExplosionNT explosion = new ExplosionNT(worldObj, null, xCoord + 0.5, yCoord + worldObj.rand.nextInt(15) + 1.5, zCoord + 0.5, 7); - explosion.addAllAttrib(volcanoExplosion).explode(); + explosion.addAllAttrib(getExpAttrb()).explode(); ExplosionNT explosion2 = new ExplosionNT(worldObj, null, xCoord + 0.5 + worldObj.rand.nextGaussian() * 3, worldObj.rand.nextInt(yCoord + 1), zCoord + 0.5 + worldObj.rand.nextGaussian() * 3, 10); - explosion2.addAllAttrib(volcanoExplosion).explode(); + explosion2.addAllAttrib(getExpAttrb()).explode(); } /** Causes two magma explosions at a random position around the core, one at normal and one at half range. */ @@ -207,7 +212,7 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB for(int i = 0; i < 2; i++) { double dist = size / (double) (i + 1); ExplosionNT explosion = new ExplosionNT(worldObj, null, xCoord + 0.5 + worldObj.rand.nextGaussian() * dist, yCoord + 0.5 + worldObj.rand.nextGaussian() * dist, zCoord + 0.5 + worldObj.rand.nextGaussian() * dist, 7); - explosion.addAllAttrib(volcanoExplosion).explode(); + explosion.addAllAttrib(getExpAttrb()).explode(); } } @@ -224,7 +229,7 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB if(!b.isAir(worldObj, x, y, z) && b.getExplosionResistance(null) < Blocks.obsidian.getExplosionResistance(null)) { //turn into lava if solid block, otherwise just break - worldObj.setBlock(x, y, z, b.isNormalCube() ? ModBlocks.volcanic_lava_block : Blocks.air); + worldObj.setBlock(x, y, z, b.isNormalCube() ? this.getLava() : Blocks.air); } } } @@ -236,8 +241,8 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB int rY = yCoord + worldObj.rand.nextInt(11); int rZ = zCoord - 10 + worldObj.rand.nextInt(21); - if(worldObj.getBlock(rX, rY, rZ) == Blocks.air && worldObj.getBlock(rX, rY - 1, rZ) == ModBlocks.volcanic_lava_block) - worldObj.setBlock(rX, rY, rZ, ModBlocks.volcanic_lava_block); + if(worldObj.getBlock(rX, rY, rZ) == Blocks.air && worldObj.getBlock(rX, rY - 1, rZ) == this.getLava()) + worldObj.setBlock(rX, rY, rZ, this.getLava()); } /** Creates a 3x3x3 lava sphere around the core. */ @@ -248,7 +253,7 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB for(int k = -1; k <= 1; k++) { if(i != 0 || j != 0 || k != 0) { - worldObj.setBlock(xCoord + i, yCoord + j, zCoord + k, ModBlocks.volcanic_lava_block); + worldObj.setBlock(xCoord + i, yCoord + j, zCoord + k, this.getLava()); } } } @@ -264,7 +269,11 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB frag.motionY = 1D + worldObj.rand.nextDouble(); frag.motionX = worldObj.rand.nextGaussian() * 0.2D; frag.motionZ = worldObj.rand.nextGaussian() * 0.2D; - frag.setVolcano(true); + if(this.isRadioacitve()) { + frag.setRadVolcano(true); + } else { + frag.setVolcano(true); + } worldObj.spawnEntityInWorld(frag); } } diff --git a/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java b/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java index 10f7547aa..eb9764411 100644 --- a/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java +++ b/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java @@ -123,7 +123,7 @@ public class CompactLauncher extends BlockContainer implements IMultiblock, IBom TileEntityCompactLauncher entity = (TileEntityCompactLauncher) world.getTileEntity(x, y, z); if(entity.canLaunch()) { - entity.launch(); + entity.launchFromDesignator(); return BombReturnCode.LAUNCHED; } diff --git a/src/main/java/com/hbm/blocks/bomb/DetCord.java b/src/main/java/com/hbm/blocks/bomb/DetCord.java index 4c0017c5b..2a02ed0cc 100644 --- a/src/main/java/com/hbm/blocks/bomb/DetCord.java +++ b/src/main/java/com/hbm/blocks/bomb/DetCord.java @@ -1,16 +1,18 @@ package com.hbm.blocks.bomb; +import com.hbm.entity.item.EntityTNTPrimedBase; + +import net.minecraft.util.MathHelper; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; -import net.minecraft.world.Explosion; import net.minecraft.world.World; -public class DetCord extends Block implements IDetConnectible { +public class DetCord extends BlockDetonatable implements IDetConnectible { - public DetCord(Material p_i45394_1_) { - super(p_i45394_1_); + public DetCord(Material material) { + super(material, 0, 0, 0, false, false); } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @@ -30,16 +32,6 @@ public class DetCord extends Block implements IDetConnectible { return false; } - @Override - public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion p_149723_5_) { - this.explode(world, x, y, z); - } - - @Override - public boolean canDropFromExplosion(Explosion explosion) { - return false; - } - @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block p_149695_5_) { if(world.isBlockIndirectlyGettingPowered(x, y, z)) { @@ -48,10 +40,14 @@ public class DetCord extends Block implements IDetConnectible { } public void explode(World world, int x, int y, int z) { - if(!world.isRemote) { world.setBlock(x, y, z, Blocks.air); world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 1.5F, true); } } + + @Override + public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { + explode(world, MathHelper.floor_double(x), MathHelper.floor_double(y), MathHelper.floor_double(z)); + } } diff --git a/src/main/java/com/hbm/blocks/bomb/DetMiner.java b/src/main/java/com/hbm/blocks/bomb/DetMiner.java index baa130baa..4ec679353 100644 --- a/src/main/java/com/hbm/blocks/bomb/DetMiner.java +++ b/src/main/java/com/hbm/blocks/bomb/DetMiner.java @@ -3,18 +3,21 @@ package com.hbm.blocks.bomb; import java.util.Random; import com.hbm.blocks.machine.BlockPillar; +import com.hbm.entity.item.EntityTNTPrimedBase; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.interfaces.IBomb; +import api.hbm.block.IFuckingExplode; +import net.minecraft.util.MathHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; import net.minecraft.world.Explosion; import net.minecraft.world.World; -public class DetMiner extends BlockPillar implements IBomb { +public class DetMiner extends BlockPillar implements IBomb, IFuckingExplode { public DetMiner(Material mat, String top) { super(mat, top); @@ -44,8 +47,13 @@ public class DetMiner extends BlockPillar implements IBomb { } @Override - public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion p_149723_5_) { - this.explode(world, x, y, z); + public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { + if(!world.isRemote) { + EntityTNTPrimedBase tntPrimed = new EntityTNTPrimedBase(world, x + 0.5D, y + 0.5D, z + 0.5D, explosion != null ? explosion.getExplosivePlacedBy() : null, this); + tntPrimed.fuse = 0; + tntPrimed.detonateOnCollision = false; + world.spawnEntityInWorld(tntPrimed); + } } @Override @@ -54,4 +62,9 @@ public class DetMiner extends BlockPillar implements IBomb { this.explode(world, x, y, z); } } + + @Override + public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { + explode(world, MathHelper.floor_double(x), MathHelper.floor_double(y), MathHelper.floor_double(z)); + } } diff --git a/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java b/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java index f3d5f88e8..dae6e61d4 100644 --- a/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java +++ b/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java @@ -2,13 +2,15 @@ package com.hbm.blocks.bomb; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.item.EntityTNTPrimedBase; import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.interfaces.IBomb; import com.hbm.lib.RefStrings; +import com.hbm.particle.helper.ExplosionCreator; +import net.minecraft.util.MathHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -16,16 +18,15 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; -import net.minecraft.world.Explosion; import net.minecraft.world.World; -public class ExplosiveCharge extends Block implements IBomb, IDetConnectible { +public class ExplosiveCharge extends BlockDetonatable implements IBomb, IDetConnectible { @SideOnly(Side.CLIENT) private IIcon iconTop; - public ExplosiveCharge(Material p_i45394_1_) { - super(p_i45394_1_); + public ExplosiveCharge(Material material) { + super(material, 0, 0, 0, false, false); } @Override @@ -47,16 +48,6 @@ public class ExplosiveCharge extends Block implements IBomb, IDetConnectible { return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); } - @Override - public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion p_149723_5_) { - this.explode(world, x, y, z); - } - - @Override - public boolean canDropFromExplosion(Explosion explosion) { - return false; - } - @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block p_149695_5_) { if(world.isBlockIndirectlyGettingPowered(x, y, z)) { @@ -74,20 +65,20 @@ public class ExplosiveCharge extends Block implements IBomb, IDetConnectible { } if(this == ModBlocks.det_charge) { new ExplosionNT(world, null, x + 0.5, y + 0.5, z + 0.5, 15).overrideResolution(64).explode(); - ExplosionLarge.spawnParticles(world, x, y, z, ExplosionLarge.cloudFunction(15)); + ExplosionCreator.composeEffectStandard(world, x + 0.5, y + 1, z + 0.5); } if(this == ModBlocks.det_nuke) { world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius); } } return BombReturnCode.DETONATED; } + @Override + public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { + explode(world, MathHelper.floor_double(x), MathHelper.floor_double(y), MathHelper.floor_double(z)); + } + } diff --git a/src/main/java/com/hbm/blocks/bomb/Landmine.java b/src/main/java/com/hbm/blocks/bomb/Landmine.java index 85ebdc82c..03a505e55 100644 --- a/src/main/java/com/hbm/blocks/bomb/Landmine.java +++ b/src/main/java/com/hbm/blocks/bomb/Landmine.java @@ -5,6 +5,12 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; import com.hbm.tileentity.bomb.TileEntityLandmine; @@ -26,8 +32,13 @@ public class Landmine extends BlockContainer implements IBomb { public static boolean safeMode = false; - public Landmine(Material p_i45386_1_) { - super(p_i45386_1_); + public double range; + public double height; + + public Landmine(Material mat, double range, double height) { + super(mat); + this.range = range; + this.height = height; } @Override @@ -35,20 +46,9 @@ public class Landmine extends BlockContainer implements IBomb { return new TileEntityLandmine(); } - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } + @Override public int getRenderType() { return -1; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } @Override public Item getItemDropped(int i, Random rand, int j) { @@ -56,29 +56,17 @@ public class Landmine extends BlockContainer implements IBomb { } @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { float f = 0.0625F; - if(this == ModBlocks.mine_ap) - this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 2 * f, 10 * f); - if(this == ModBlocks.mine_he) - this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); - if(this == ModBlocks.mine_shrap) - this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); - if(this == ModBlocks.mine_fat) - this.setBlockBounds(5 * f, 0.0F, 4 * f, 11 * f, 6 * f, 12 * f); + if(this == ModBlocks.mine_ap) this.setBlockBounds(5 * f, 0.0F, 5 * f, 11 * f, 1 * f, 11 * f); + if(this == ModBlocks.mine_he) this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); + if(this == ModBlocks.mine_shrap) this.setBlockBounds(5 * f, 0.0F, 5 * f, 11 * f, 1 * f, 11 * f); + if(this == ModBlocks.mine_fat) this.setBlockBounds(5 * f, 0.0F, 4 * f, 11 * f, 6 * f, 12 * f); } @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - float f = 0.0625F; - if(this == ModBlocks.mine_ap) - this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 2 * f, 10 * f); - if(this == ModBlocks.mine_he) - this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); - if(this == ModBlocks.mine_shrap) - this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); - if(this == ModBlocks.mine_fat) - this.setBlockBounds(5 * f, 0.0F, 4 * f, 11 * f, 6 * f, 12 * f); + setBlockBoundsBasedOnState(world, x, y, z); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } @@ -92,14 +80,7 @@ public class Landmine extends BlockContainer implements IBomb { explode(world, x, y, z); } - boolean flag = false; - if(!World.doesBlockHaveSolidTopSurface(world, x, y - 1, z) && !BlockFence.func_149825_a(world.getBlock(x, y - 1, z))) { - flag = true; - } - - if(flag) { - if(!safeMode) { explode(world, x, y, z); } else { @@ -156,24 +137,33 @@ public class Landmine extends BlockContainer implements IBomb { Landmine.safeMode = false; if(this == ModBlocks.mine_ap) { - world.newExplosion(null, x + 0.5, y + 0.5, z + 0.5, 2.5F, false, false); - } - if(this == ModBlocks.mine_he) { - ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 3F, true, false, false); - world.newExplosion(null, x + 0.5, y + 2, z + 0.5, 15F, false, false); - } - if(this == ModBlocks.mine_shrap) { - ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 1, true, false, false); + ExplosionVNT vnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 3F); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, 10F).setupPiercing(5F, 0.2F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(5, 1F, 0.5F)); + vnt.explode(); + } else if(this == ModBlocks.mine_he) { + ExplosionVNT vnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 4F); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 35).setupPiercing(15F, 0.2F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(15, 3.5F, 1.25F)); + vnt.explode(); + } else if(this == ModBlocks.mine_shrap) { + ExplosionVNT vnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 3F); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, 7.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(5, 1F, 0.5F)); + vnt.explode(); + ExplosionLarge.spawnShrapnelShower(world, x + 0.5, y + 0.5, z + 0.5, 0, 1D, 0, 45, 0.2D); ExplosionLarge.spawnShrapnels(world, x + 0.5, y + 0.5, z + 0.5, 5); - } - if(this == ModBlocks.mine_fat) { - + } else if(this == ModBlocks.mine_fat) { ExplosionNukeSmall.explode(world, x + 0.5, y + 0.5, z + 0.5, ExplosionNukeSmall.PARAMS_MEDIUM); } } return BombReturnCode.DETONATED; } - } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index 675fbfd38..792432630 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -1,317 +1,97 @@ package com.hbm.blocks.bomb; -import java.util.Random; - -import org.apache.logging.log4j.Level; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.GeneralConfig; -import com.hbm.entity.missile.*; +import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IBomb; -import com.hbm.interfaces.Spaghetti; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.bomb.TileEntityLaunchPad; -import api.hbm.item.IDesignatorItem; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class LaunchPad extends BlockContainer implements IBomb { +public class LaunchPad extends BlockDummyable implements IBomb { - public TileEntityLaunchPad tetn = new TileEntityLaunchPad(); - public static boolean keepInventory = false; - private final static Random field_149933_a = new Random(); - - public LaunchPad(Material p_i45386_1_) { - super(p_i45386_1_); + public LaunchPad(Material mat) { + super(mat); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, -0.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, -1.5D, 1.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, 0.5D, -0.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, 0.5D, 1.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5D, 0.5D, -1.5D, 0.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0.5D, -0.5D, 1.5D, 1D, 0.5D)); } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityLaunchPad(); + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLaunchPad(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); + return null; } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.launch_pad); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - if(!keepInventory) { - TileEntityLaunchPad tileentityfurnace = (TileEntityLaunchPad) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if(tileentityfurnace != null) { - for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if(itemstack != null) { - float f = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while(itemstack.stackSize > 0) { - int j1 = LaunchPad.field_149933_a.nextInt(21) + 10; - - if(j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if(itemstack.hasTagCompound()) { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float) LaunchPad.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) LaunchPad.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) LaunchPad.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - TileEntityLaunchPad entity = (TileEntityLaunchPad) world.getTileEntity(x, y, z); - if(entity != null) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } + return this.standardOpenBehavior(world, x, y, z, player, 0); } @Override - public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) { - if(p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z) && !p_149695_1_.isRemote) { - this.explode(p_149695_1_, x, y, z); - } + public int[] getDimensions() { + return new int[] {0, 0, 1, 1, 1, 1}; } @Override - public int getRenderType() { - return -1; + public int getOffset() { + return 1; } - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - if(i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - } - - /* - * @Override public void setBlockBoundsBasedOnState(IBlockAccess - * p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { float f - * = 0.0625F; this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); } - * - * @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World - * world, int x, int y, int z) { float f = 0.0625F; - * this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); return - * AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, - * x + this.maxX, y + this.maxY, z + this.maxZ); } - */ - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) { - return Item.getItemFromBlock(ModBlocks.launch_pad); - } - - @Spaghetti("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA *takes breath* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") @Override public BombReturnCode explode(World world, int x, int y, int z) { - - TileEntityLaunchPad entity = (TileEntityLaunchPad) world.getTileEntity(x, y, z); - if(entity.slots[0] == null || world.isRemote) - return BombReturnCode.ERROR_MISSING_COMPONENT; + if(!world.isRemote) { + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPad){ + TileEntityLaunchPad entity = (TileEntityLaunchPad)core; + return entity.launchFromDesignator(); + } + } + } - if(entity.slots[1] != null && entity.slots[1].getItem() instanceof IDesignatorItem && entity.power >= 75000) { - - if(!((IDesignatorItem)entity.slots[1].getItem()).isReady(world, entity.slots[1], x, y, z)) - return BombReturnCode.ERROR_MISSING_COMPONENT; - - int xCoord = entity.slots[1].stackTagCompound.getInteger("xCoord"); - int zCoord = entity.slots[1].stackTagCompound.getInteger("zCoord"); - - if(xCoord == entity.xCoord && zCoord == entity.zCoord) { - xCoord += 1; - } - - Entity missile = null; - - if(entity.slots[0].getItem() == ModItems.missile_generic) { - missile = new EntityMissileGeneric(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_incendiary) { - missile = new EntityMissileIncendiary(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_cluster) { - missile = new EntityMissileCluster(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_buster) { - missile = new EntityMissileBunkerBuster(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_strong) { - missile = new EntityMissileStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_incendiary_strong) { - missile = new EntityMissileIncendiaryStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_cluster_strong) { - missile = new EntityMissileClusterStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_buster_strong) { - missile = new EntityMissileBusterStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_burst) { - missile = new EntityMissileBurst(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_inferno) { - missile = new EntityMissileInferno(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_rain) { - missile = new EntityMissileRain(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_drill) { - missile = new EntityMissileDrill(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_nuclear) { - missile = new EntityMissileNuclear(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_endo) { - missile = new EntityMissileEndo(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_exo) { - missile = new EntityMissileExo(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_nuclear_cluster) { - missile = new EntityMissileMirv(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_doomsday) { - missile = new EntityMissileDoomsday(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_taint) { - missile = new EntityMissileTaint(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_micro) { - missile = new EntityMissileMicro(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_bhole) { - missile = new EntityMissileBHole(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_schrabidium) { - missile = new EntityMissileSchrabidium(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_emp) { - missile = new EntityMissileEMP(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_emp_strong) { - missile = new EntityMissileEMPStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_volcano) { - missile = new EntityMissileVolcano(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_shuttle) { - missile = new EntityMissileShuttle(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - - if(missile != null) { - world.spawnEntityInWorld(missile); - world.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); - entity.power -= 75000; - entity.slots[0] = null; + return BombReturnCode.UNDEFINED; + } - if(GeneralConfig.enableExtendedLogging) - MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + x + " / " + y + " / " + z + " to " + xCoord + " / " + zCoord + "!"); - return BombReturnCode.LAUNCHED; + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){ + + if(!world.isRemote){ + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPad){ + TileEntityLaunchPad launchpad = (TileEntityLaunchPad)core; + launchpad.updateRedstonePower(x, y, z); + } } } - - if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000) { - EntityCarrier missile = new EntityCarrier(world); - missile.posX = x + 0.5F; - missile.posY = y + 1F; - missile.posZ = z + 0.5F; - - if(entity.slots[1] != null) - missile.setPayload(entity.slots[1]); - - world.spawnEntityInWorld(missile); - entity.power -= 75000; - - entity.slots[0] = null; - entity.slots[1] = null; - world.playSoundEffect(x, y, z, "hbm:entity.rocketTakeoff", 100.0F, 1.0F); - return BombReturnCode.LAUNCHED; - } - - if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_anti_ballistic && entity.power >= 75000) { - EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(world); - missile.posX = x + 0.5F; - missile.posY = y + 0.5F; - missile.posZ = z + 0.5F; - - world.spawnEntityInWorld(missile); - entity.power -= 75000; - - entity.slots[0] = null; - world.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); - return BombReturnCode.LAUNCHED; - } - - return BombReturnCode.ERROR_MISSING_COMPONENT; + super.onNeighborBlockChange( world, x, y, z, blockIn); } + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + this.makeExtra(world, x + 1, y, z + 1); + this.makeExtra(world, x + 1, y, z - 1); + this.makeExtra(world, x - 1, y, z + 1); + this.makeExtra(world, x - 1, y, z - 1); + } } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java new file mode 100644 index 000000000..14ccd1574 --- /dev/null +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadLarge.java @@ -0,0 +1,98 @@ +package com.hbm.blocks.bomb; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IBomb; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class LaunchPadLarge extends BlockDummyable implements IBomb { + + public LaunchPadLarge(Material mat) { + super(mat); + this.bounding.add(AxisAlignedBB.getBoundingBox(-4.5D, 0D, -4.5D, 4.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-4.5D, 0D, 0.5D, 4.5D, 1D, 4.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-4.5D, 0.875D, -0.5D, 4.5D, 1D, 0.5D)); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLaunchPadLarge(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); + return new TileEntityProxyCombo().inventory(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 4, 4, 4, 4}; + } + + @Override + public int getOffset() { + return 4; + } + + @Override + public BombReturnCode explode(World world, int x, int y, int z) { + + if(!world.isRemote) { + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPadLarge){ + TileEntityLaunchPadLarge entity = (TileEntityLaunchPadLarge)core; + return entity.launchFromDesignator(); + } + } + } + + return BombReturnCode.UNDEFINED; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){ + + if(!world.isRemote){ + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPadLarge){ + TileEntityLaunchPadLarge launchpad = (TileEntityLaunchPadLarge)core; + launchpad.updateRedstonePower(x, y, z); + } + } + } + super.onNeighborBlockChange( world, x, y, z, blockIn); + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + this.makeExtra(world, x + 4, y, z + 2); + this.makeExtra(world, x + 4, y, z - 2); + this.makeExtra(world, x - 4, y, z + 2); + this.makeExtra(world, x - 4, y, z - 2); + this.makeExtra(world, x + 2, y, z + 4); + this.makeExtra(world, x - 2, y, z + 4); + this.makeExtra(world, x + 2, y, z - 4); + this.makeExtra(world, x - 2, y, z - 4); + } +} diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java b/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java new file mode 100644 index 000000000..d1bd751c2 --- /dev/null +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java @@ -0,0 +1,89 @@ +package com.hbm.blocks.bomb; + +import java.util.Random; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IBomb; +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class LaunchPadRusted extends BlockDummyable implements IBomb { + + public LaunchPadRusted(Material mat) { + super(mat); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, -0.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, -1.5D, 1.5D, 1D, -0.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, 0.5D, -0.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, 0.5D, 1.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5D, 0.5D, -1.5D, 0.5D, 1D, 1.5D)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0.5D, -0.5D, 1.5D, 1D, 0.5D)); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLaunchPadRusted(); + return null; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public BombReturnCode explode(World world, int x, int y, int z) { + + if(!world.isRemote) { + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPadRusted){ + TileEntityLaunchPadRusted entity = (TileEntityLaunchPadRusted)core; + return entity.launch(); + } + } + } + + return BombReturnCode.UNDEFINED; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){ + + if(!world.isRemote){ + + int[] corePos = findCore(world, x, y, z); + if(corePos != null){ + TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]); + if(core instanceof TileEntityLaunchPadRusted){ + TileEntityLaunchPadRusted launchpad = (TileEntityLaunchPadRusted)core; + launchpad.updateRedstonePower(x, y, z); + } + } + } + super.onNeighborBlockChange( world, x, y, z, blockIn); + } +} diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchTable.java b/src/main/java/com/hbm/blocks/bomb/LaunchTable.java index 3170cea1c..e5f194f59 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchTable.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchTable.java @@ -163,7 +163,7 @@ public class LaunchTable extends BlockContainer implements IMultiblock, IBomb { TileEntityLaunchTable entity = (TileEntityLaunchTable) world.getTileEntity(x, y, z); if(entity.canLaunch()) { - entity.launch(); + entity.launchFromDesignator(); return BombReturnCode.LAUNCHED; } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java index 01673e12d..c6b96a476 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java @@ -4,11 +4,12 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeBoy; +import com.hbm.util.TrackerUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -124,7 +125,13 @@ public class NukeBoy extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.boyRadius, x + 0.5, y + 0.5, z + 0.5)); - world.spawnEntityInWorld(EntityNukeCloudSmall.statFac(world, x, y, z, BombConfig.boyRadius)); + //world.spawnEntityInWorld(EntityNukeCloudSmall.statFac(world, x, y, z, BombConfig.boyRadius)); + + EntityNukeTorex torex = new EntityNukeTorex(world); + torex.setPositionAndRotation(x + 0.5, y + 1, z + 0.5, 0, 0); + torex.getDataWatcher().updateObject(10, 1.5F); + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); } return false; } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java index a00b74d56..ebc21403e 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.grenade.EntityGrenadeZOMG; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK3; @@ -169,7 +169,7 @@ public class NukeCustom extends BlockContainer implements IBomb { bf.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); bf.destructionRange = (int) amat; worldObj.spawnEntityInWorld(bf); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, amat * 1.5F, 1000)); + EntityNukeTorex.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, amat); /// HYDROGEN /// } else if(hydro > 0) { @@ -179,7 +179,7 @@ public class NukeCustom extends BlockContainer implements IBomb { dirty *= 0.25F; worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)hydro, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).moreFallout((int)dirty)); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro)); + EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro); /// NUCLEAR /// } else if(nuke > 0) { @@ -188,7 +188,7 @@ public class NukeCustom extends BlockContainer implements IBomb { nuke = Math.min(nuke, maxNuke); worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)nuke, xCoord + 0.5, yCoord + 5, zCoord + 0.5).moreFallout((int)dirty)); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke)); + EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke); /// NON-NUCLEAR /// } else if(tnt >= 75) { @@ -196,7 +196,7 @@ public class NukeCustom extends BlockContainer implements IBomb { tnt = Math.min(tnt, maxTnt); worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, (int)tnt, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt)); + EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt); } else if(tnt > 0) { ExplosionLarge.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, tnt, true, true, true); diff --git a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java index 9c555b132..a09d7c31f 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -130,13 +130,8 @@ public class NukeGadget extends BlockContainer implements IBomb { tetn.clearSlots(); world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.gadgetRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.gadgetRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMan.java b/src/main/java/com/hbm/blocks/bomb/NukeMan.java index 9f8a8b941..d9fc4f1a5 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMan.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMan.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -124,12 +124,7 @@ public class NukeMan extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.manRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.manRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.manRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMike.java b/src/main/java/com/hbm/blocks/bomb/NukeMike.java index 75216a1eb..84e178758 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMike.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMike.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -131,12 +131,7 @@ public class NukeMike extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.mikeRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.mikeRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeN2.java b/src/main/java/com/hbm/blocks/bomb/NukeN2.java index a01f83d25..c65eef0f7 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeN2.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeN2.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -120,12 +120,7 @@ public class NukeN2 extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, r, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeN45.java b/src/main/java/com/hbm/blocks/bomb/NukeN45.java deleted file mode 100644 index df47fae70..000000000 --- a/src/main/java/com/hbm/blocks/bomb/NukeN45.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.hbm.blocks.bomb; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IBomb; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class NukeN45 extends BlockContainer implements IBomb { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory = false; - - public NukeN45(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityNukeN45(); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - if(!keepInventory) { - ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if(tileentityfurnace != null) { - for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if(itemstack != null) { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while(itemstack.stackSize > 0) { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if(j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if(itemstack.hasTagCompound()) { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - TileEntityNukeN45 entity = (TileEntityNukeN45) world.getTileEntity(x, y, z); - if(entity != null) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.nuke_n45); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public BombReturnCode explode(World world, int x, int y, int z) { - - if(!world.isRemote) { - TileEntityNukeN45 entity = (TileEntityNukeN45) world.getTileEntity(x, y, z); - - if(entity.getType() == 100) { - entity.primed = true; - return BombReturnCode.TRIGGERED; - } else if(!entity.primed && entity.getType() > 0) { - int t = entity.getType(); - entity.clearSlots(); - entity.explode(world, x, y, z, t); - return BombReturnCode.DETONATED; - } - - return BombReturnCode.ERROR_MISSING_COMPONENT; - } - - return BombReturnCode.UNDEFINED; - } -} diff --git a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java index 51514ced2..f064a053a 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -127,18 +127,9 @@ public class NukeTsar extends BlockContainer implements IBomb { public boolean igniteTestBomb(World world, int x, int y, int z, int r) { if(!world.isRemote) { tetn.clearSlots(); - // world.spawnParticle("hugeexplosion", x, y, z, 0, 0, 0); world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, r, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); - - // ExplosionNukeAdvanced.mush(world, x, y, z); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); } return false; diff --git a/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java b/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java index 5c418b60b..ac5fb835f 100644 --- a/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java @@ -62,7 +62,7 @@ public class CoriumBlock extends BlockFluidClassic { return true; Random rand = new Random(); - return b.getMaterial().isLiquid() || rand.nextInt((int) res) == 0; + return b.getMaterial().isLiquid() || rand.nextInt((int) (res * res)) == 0; } @Override diff --git a/src/main/java/com/hbm/blocks/fluid/CoriumFinite.java b/src/main/java/com/hbm/blocks/fluid/CoriumFinite.java new file mode 100644 index 000000000..1861e41b9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/CoriumFinite.java @@ -0,0 +1,84 @@ +package com.hbm.blocks.fluid; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.ModDamageSource; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fluids.Fluid; + +public class CoriumFinite extends GenericFiniteFluid { + + public CoriumFinite(Fluid fluid, Material material) { + super(fluid, material, "corium_still", "corium_flowing"); + setQuantaPerBlock(5); + this.tickRate = 30; + } + + @Override + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + Block b = world.getBlock(x, y, z); + float res = (float) (Math.sqrt(b.getExplosionResistance(null)) * 3); + + if(res < 1) + return true; + Random rand = new Random(); + + return b.getMaterial().isLiquid() || rand.nextInt((int) res) == 0; + } + + @Override + public boolean displaceIfPossible(World world, int x, int y, int z) { + + if(world.getBlock(x, y, z).getMaterial().isLiquid()) { + return false; + } + return canDisplace(world, x, y, z); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + entity.setInWeb(); + entity.setFire(3); + entity.attackEntityFrom(ModDamageSource.radiation, 2F); + + if(entity instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1F); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + super.updateTick(world, x, y, z, rand); + + if(!world.isRemote && rand.nextInt(10) == 0 && world.getBlock(x, y - 1, z) != this) { + + if(rand.nextInt(3) == 0) + world.setBlock(x, y, z, ModBlocks.block_corium); + else + world.setBlock(x, y, z, ModBlocks.block_corium_cobble); + } + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return 0; + } + + @Override + public boolean isReplaceable(IBlockAccess world, int x, int y, int z) { + return false; + } +} diff --git a/src/main/java/com/hbm/blocks/fluid/RadBlock.java b/src/main/java/com/hbm/blocks/fluid/RadBlock.java new file mode 100644 index 000000000..7ab22af70 --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/RadBlock.java @@ -0,0 +1,81 @@ +package com.hbm.blocks.fluid; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.fluids.Fluid; + +public class RadBlock extends VolcanicBlock { + + @SideOnly(Side.CLIENT) public static IIcon stillIconRad; + @SideOnly(Side.CLIENT) public static IIcon flowingIconRad; + + public RadBlock(Fluid fluid, Material material) { + super(fluid, material); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister register) { + stillIconRad = register.registerIcon(RefStrings.MODID + ":rad_lava_still"); + flowingIconRad = register.registerIcon(RefStrings.MODID + ":rad_lava_flowing"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1) ? stillIconRad : flowingIconRad; + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + if(entity instanceof EntityLivingBase) ContaminationUtil.contaminate((EntityLivingBase) entity, HazardType.RADIATION, ContaminationType.CREATIVE, 5F); + } + + @Override + public void onSolidify(World world, int x, int y, int z, int lavaCount, int basaltCount, Random rand) { + int r = rand.nextInt(400); + + Block above = world.getBlock(x, y + 10, z); + boolean canMakeGem = lavaCount + basaltCount == 6 && lavaCount < 3 && (above == ModBlocks.sellafield_slaked || above == ModBlocks.rad_lava_block); + int meta = 5 + rand.nextInt(3); + + if(r < 2) world.setBlock(x, y, z, ModBlocks.ore_sellafield_diamond, meta, 3); + else if(r == 2) world.setBlock(x, y, z, ModBlocks.ore_sellafield_emerald, meta, 3); + else if(r < 20 && canMakeGem) world.setBlock(x, y, z, ModBlocks.ore_sellafield_radgem, meta, 3); + else world.setBlock(x, y, z, ModBlocks.sellafield_slaked, meta, 3); + } + + @Override + public Block getBasaltForCheck() { + return ModBlocks.sellafield_slaked; + } + + @Override + public Block getReaction(World world, int x, int y, int z) { + + Block b = world.getBlock(x, y, z); + if(b.getMaterial() == Material.water) return Blocks.stone; + if(b == Blocks.log || b == Blocks.log2) return ModBlocks.waste_log; + if(b == Blocks.planks) return ModBlocks.waste_planks; + if(b == Blocks.leaves || b == Blocks.leaves2) return Blocks.fire; + if(b == Blocks.diamond_ore) return ModBlocks.ore_sellafield_radgem; + if(b == ModBlocks.ore_uranium || b == ModBlocks.ore_gneiss_uranium) return world.rand.nextInt(5) == 0 ? ModBlocks.ore_sellafield_schrabidium : ModBlocks.ore_sellafield_uranium_scorched; + return null; + } +} diff --git a/src/main/java/com/hbm/blocks/fluid/RadFluid.java b/src/main/java/com/hbm/blocks/fluid/RadFluid.java new file mode 100644 index 000000000..77de22cab --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/RadFluid.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.fluid; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.Fluid; + +public class RadFluid extends Fluid { + + public RadFluid() { + super("rad_lava_fluid"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon() { + return getStillIcon(); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getStillIcon() { + return RadBlock.stillIconRad; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getFlowingIcon() { + return RadBlock.flowingIconRad; + } +} diff --git a/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java b/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java index d81ec02ad..d82d67808 100644 --- a/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java @@ -51,26 +51,18 @@ public class VolcanicBlock extends BlockFluidClassic { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { Block b = getReaction(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - if(b != null) - world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, b); + if(b != null) world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, b, b == ModBlocks.ore_basalt ? 3 : 0, 3); } } public Block getReaction(World world, int x, int y, int z) { Block b = world.getBlock(x, y, z); - if(b.getMaterial() == Material.water) { - return Blocks.stone; - } - if(b == Blocks.log || b == Blocks.log2) { - return ModBlocks.waste_log; - } - if(b == Blocks.planks) { - return ModBlocks.waste_planks; - } - if(b == Blocks.leaves || b == Blocks.leaves2) { - return Blocks.fire; - } + if(b.getMaterial() == Material.water) return Blocks.stone; + if(b == Blocks.log || b == Blocks.log2) return ModBlocks.waste_log; + if(b == Blocks.planks) return ModBlocks.waste_planks; + if(b == Blocks.leaves || b == Blocks.leaves2) return Blocks.fire; + if(b == Blocks.diamond_ore) return ModBlocks.ore_basalt; return null; } @@ -87,30 +79,33 @@ public class VolcanicBlock extends BlockFluidClassic { if(b == this) lavaCount++; - if(b == ModBlocks.basalt) { + if(b == getBasaltForCheck()) { basaltCount++; } } if(!world.isRemote && ((!this.isSourceBlock(world, x, y, z) && lavaCount < 2) || (rand.nextInt(5) == 0) && lavaCount < 5) && world.getBlock(x, y - 1, z) != this) { - - int r = rand.nextInt(200); - - Block above = world.getBlock(x, y + 10, z); - boolean canMakeGem = lavaCount + basaltCount == 6 && lavaCount < 3 && (above == ModBlocks.basalt || above == ModBlocks.volcanic_lava_block); - - if(r < 2) - world.setBlock(x, y, z, ModBlocks.basalt_sulfur); - else if(r == 2) - world.setBlock(x, y, z, ModBlocks.basalt_asbestos); - else if(r == 3) - world.setBlock(x, y, z, ModBlocks.basalt_fluorite); - else if(r < 14 && canMakeGem) - world.setBlock(x, y, z, ModBlocks.basalt_gem); - else - world.setBlock(x, y, z, ModBlocks.basalt); + this.onSolidify(world, x, y, z, lavaCount, basaltCount, rand); } } + + public Block getBasaltForCheck() { + return ModBlocks.basalt; + } + + public void onSolidify(World world, int x, int y, int z, int lavaCount, int basaltCount, Random rand) { + int r = rand.nextInt(200); + + Block above = world.getBlock(x, y + 10, z); + boolean canMakeGem = lavaCount + basaltCount == 6 && lavaCount < 3 && (above == ModBlocks.basalt || above == ModBlocks.volcanic_lava_block); + + if(r < 2) world.setBlock(x, y, z, ModBlocks.ore_basalt, 0, 3); + else if(r == 2) world.setBlock(x, y, z, ModBlocks.ore_basalt, 1, 3); + else if(r == 3) world.setBlock(x, y, z, ModBlocks.ore_basalt, 2, 3); + else if(r == 4) world.setBlock(x, y, z, ModBlocks.ore_basalt, 4, 3); + else if(r < 15 && canMakeGem) world.setBlock(x, y, z, ModBlocks.ore_basalt, 3, 3); + else world.setBlock(x, y, z, ModBlocks.basalt); + } @Override public boolean canDisplace(IBlockAccess world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java b/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java index 19033a933..f35be20f5 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java @@ -40,7 +40,7 @@ public class BlockGasClorine extends BlockGasBase { EntityLivingBase entityLiving = (EntityLivingBase) entity; - if(ArmorRegistry.hasAllProtection(entityLiving, 3, HazardClass.GAS_CHLORINE)) { + if(ArmorRegistry.hasAllProtection(entityLiving, 3, HazardClass.GAS_LUNG)) { ArmorUtil.damageGasMaskFilter(entityLiving, 1); } else { diff --git a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java index f7612ee69..1297da41e 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java @@ -3,8 +3,8 @@ package com.hbm.blocks.generic; import java.util.ArrayList; import java.util.Random; -import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; @@ -12,6 +12,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -38,37 +39,52 @@ public class BlockAmmoCrate extends Block { public IIcon getIcon(int side, int metadata) { return side == 0 ? this.iconBottom : (side == 1 ? this.iconTop : this.blockIcon); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; + } + return false; + } Random rand = new Random(); - @Override - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + public void dropContents(World world, int x, int y, int z) { + ArrayList items = getContents(world, x, y, z); + + for(ItemStack item : items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + + public ArrayList getContents(World world, int x, int y, int z) { ArrayList ret = new ArrayList(); ret.add(new ItemStack(ModItems.cap_nuka, 12 + rand.nextInt(21))); ret.add(new ItemStack(ModItems.syringe_metal_stimpak, 1 + rand.nextInt(3))); + + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.P9_SP.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.P9_FMJ.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.M357_SP.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.M357_FMJ.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.M44_SP.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.M44_FMJ.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.R556_SP.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.R556_FMJ.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.R762_SP.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.R762_FMJ.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.G12.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 16 + rand.nextInt(17), EnumAmmo.G12_SLUG.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 2 + rand.nextInt(3), EnumAmmo.G40_HE.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_standard, 2 + rand.nextInt(3), EnumAmmo.ROCKET_HE.ordinal())); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_22lr, 16 + rand.nextInt(17))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_9mm, 6 + rand.nextInt(13))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_12gauge, 6 + rand.nextInt(4))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_20gauge, 3 + rand.nextInt(4))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_357, 10 + rand.nextInt(11))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_357, 12 + rand.nextInt(15), Ammo357Magnum.IRON.ordinal())); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_50bmg, 2 + rand.nextInt(7))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_rocket, 1)); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_grenade, 1 + rand.nextInt(2))); - - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_12gauge, 3, Ammo12Gauge.INCENDIARY.ordinal())); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_20gauge, 3, Ammo20Gauge.INCENDIARY.ordinal())); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_20gauge, 3, Ammo20Gauge.CAUSTIC.ordinal())); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_20gauge, 3, Ammo20Gauge.FLECHETTE.ordinal())); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_9mm, 7, Ammo9mm.AP.ordinal())); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_rocket, 1, AmmoRocket.INCENDIARY.ordinal())); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_rocket, 1, AmmoRocket.SLEEK.ordinal())); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_grenade, 1, AmmoGrenade.HE.ordinal())); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_grenade, 1, AmmoGrenade.INCENDIARY.ordinal())); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_grenade, 1, AmmoGrenade.SLEEK.ordinal())); if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.syringe_metal_super, 2)); return ret; diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java deleted file mode 100644 index 766f3df31..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.blocks.generic; - -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; - -import api.hbm.block.IDrillInteraction; -import api.hbm.block.IMiningDrill; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class BlockBedrockOre extends Block implements IDrillInteraction { - - public BlockBedrockOre() { - super(Material.rock); - } - - @Override - public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return drill.getDrillRating() > 70; - } - - @Override - public ItemStack extractResource(World world, int x, int y, int z, int meta, IMiningDrill drill) { - - if(drill.getDrillRating() > 70) - return null; - - Item drop = this.getDrop(); - - if(drop == null) - return null; - - return world.rand.nextInt(50) == 0 ? new ItemStack(drop) : null; - } - - @Override - public float getRelativeHardness(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return 30; - } - - private Item getDrop() { - - if(this == ModBlocks.ore_bedrock_coltan) - return ModItems.fragment_coltan; - - return null; - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 6d5b525cc..b48ee9954 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -6,20 +6,27 @@ import java.util.Random; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import com.hbm.render.block.RenderBlockMultipass; +import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; +import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -42,6 +49,11 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I this.setResistance(1_000_000); } + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + @Override public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityBedrockOre(); @@ -57,6 +69,45 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I super.onBlockPlacedBy(world, x, y, z, entity, stack); world.markBlockForUpdate(x, y, z); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float fx, float fy, float fz) { + + ItemStack stack = player.getHeldItem(); + if(stack == null) return false; + if(!player.capabilities.isCreativeMode) return false; + if(world.isRemote) return true; + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityBedrockOre) { + TileEntityBedrockOre ore = (TileEntityBedrockOre) te; + + if(stack.getItem() == ModItems.drillbit) { + EnumDrillType type = EnumUtil.grabEnumSafely(EnumDrillType.class, stack.getItemDamage()); + ore.tier = type.tier; + } else if(FluidContainerRegistry.getFluidType(stack) != Fluids.NONE) { + FluidType type = FluidContainerRegistry.getFluidType(stack); + int amount = FluidContainerRegistry.getFluidContent(stack, type); + ore.acidRequirement = new FluidStack(type, amount); + } else if(stack.getItem() instanceof IFillableItem) { + IFillableItem item = (IFillableItem) stack.getItem(); + FluidType type = item.getFirstFluidType(stack); + if(type != null) { + ore.acidRequirement = new FluidStack(type, item.getFill(stack)); + } + } else { + ore.resource = stack.copy(); + ore.shape = world.rand.nextInt(10); + } + + ore.markDirty(); + } + + world.markBlockForUpdate(x, y, z); + + return true; + } @Override public int getRenderType(){ @@ -145,7 +196,7 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I text.add("Tier: " + ore.tier); if(ore.acidRequirement != null) { - text.add("Requires: " + ore.acidRequirement.fill + "mB " + I18nUtil.resolveKey(ore.acidRequirement.type.getUnlocalizedName())); + text.add("Requires: " + ore.acidRequirement.fill + "mB " + ore.acidRequirement.type.getLocalizedName()); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); @@ -219,6 +270,12 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); + + if(color == 0) { + this.color = MainRegistry.proxy.getStackColor(resource, true); + } + + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 0757002f9..5e5226e6f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -7,10 +7,8 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; @@ -22,6 +20,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; @@ -57,43 +56,51 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { public Item getItemDropped(int i, Random rand, int j) { return null; } - + @Override public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { - + TileEntityBobble entity = (TileEntityBobble) world.getTileEntity(x, y, z); - + if(entity != null) { return new ItemStack(this, 1, entity.type.ordinal()); } - + return super.getPickBlock(target, world, x, y, z, player); } @Override - public void breakBlock(World world, int x, int y, int z, Block block, int meta) { - - if(!world.isRemote) { - TileEntityBobble entity = (TileEntityBobble) world.getTileEntity(x, y, z); - if(entity != null) { - EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); - item.motionX = 0; - item.motionY = 0; - item.motionZ = 0; - world.spawnEntityInWorld(item); + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + if(!world.isRemote) { + TileEntityBobble entity = (TileEntityBobble) world.getTileEntity(x, y, z); + if(entity != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); + item.motionX = 0; + item.motionY = 0; + item.motionZ = 0; + world.spawnEntityInWorld(item); + } } + harvesters.set(null); } - - super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - + if(world.isRemote) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; - + } else { return true; } @@ -102,7 +109,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { - + for(int i = 1; i < BobbleType.values().length; i++) list.add(new ItemStack(item, 1, i)); } @@ -111,12 +118,12 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { int meta = MathHelper.floor_double((double)((player.rotationYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15; world.setBlockMetadataWithNotify(x, y, z, meta, 2); - + TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(x, y, z); bobble.type = BobbleType.values()[Math.abs(stack.getItemDamage()) % BobbleType.values().length]; bobble.markDirty(); } - + @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { float f = 0.0625F; @@ -135,7 +142,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { } public static class TileEntityBobble extends TileEntity { - + public BobbleType type = BobbleType.NONE; @Override @@ -149,7 +156,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { this.writeToNBT(nbt); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); } - + @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); @@ -167,31 +174,33 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { nbt.setByte("type", (byte) type.ordinal()); } } - + public static enum BobbleType { - - NONE( "null", "null", null, null, false, ScrapType.BOARD_BLANK), - STRENGTH( "Strength", "Strength", null, "It's essential to give your arguments impact.", false, ScrapType.BRIDGE_BIOS), - PERCEPTION( "Perception", "Perception", null, "Only through observation will you perceive weakness.", false, ScrapType.BRIDGE_NORTH), - ENDURANCE( "Endurance", "Endurance", null, "Always be ready to take one for the team.", false, ScrapType.BRIDGE_SOUTH), - CHARISMA( "Charisma", "Charisma", null, "Nothing says pizzaz like a winning smile.", false, ScrapType.BRIDGE_IO), - INTELLIGENCE( "Intelligence", "Intelligence", null, "It takes the smartest individuals to realize$there's always more to learn.", false, ScrapType.BRIDGE_BUS), - AGILITY( "Agility", "Agility", null, "Never be afraid to dodge the sensitive issues.", false, ScrapType.BRIDGE_CHIPSET), - LUCK( "Luck", "Luck", null, "There's only one way to give 110%.", false, ScrapType.BRIDGE_CMOS), - BOB( "Robert \"The Bobcat\" Katzinsky", "HbMinecraft", "Hbm's Nuclear Tech Mod", "I know where you live, " + System.getProperty("user.name"), false, ScrapType.CPU_SOCKET), - FRIZZLE( "Frooz", "Frooz", "Weapon models", "BLOOD IS FUEL", true, ScrapType.CPU_CLOCK), - PU238( "Pu-238", "Pu-238", "Improved Tom impact mechanics", null, false, ScrapType.CPU_REGISTER), - VT( "VT-6/24", "VT-6/24", "Balefire warhead model and general texturework", "You cannot unfuck a horse.", true, ScrapType.CPU_EXT), - DOC( "The Doctor", "Doctor17PH", "Russian localization, lunar miner", "Perhaps the moon rocks were too expensive", true, ScrapType.CPU_CACHE), - BLUEHAT( "The Blue Hat", "The Blue Hat", "Textures", "payday 2's deagle freeaim champ of the year 2022", true, ScrapType.MEM_16K_A), - PHEO( "Pheo", "Pheonix", "Deuterium machines, tantalium textures, Reliant Rocket", "RUN TO THE BEDROOM, ON THE SUITCASE ON THE LEFT,$YOU'LL FIND MY FAVORITE AXE", true, ScrapType.MEM_16K_B), - ADAM29( "Adam29", "Adam29", "Ethanol, liquid petroleum gas", "You know, nukes are really quite beatiful.$It's like watching a star be born for a split second.", true, ScrapType.MEM_16K_C), - UFFR( "UFFR", "UFFR", "All sorts of things from his PR", "fried shrimp", false, ScrapType.MEM_SOCKET), - VAER( "vaer", "vaer", "ZIRNOX", "taken de family out to the weekend cigarette festival", true, ScrapType.MEM_16K_D), - NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), - DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), - CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), - MICROWAVE( "Microwave", "Microwave", "adding OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS); + + NONE( "null", "null", null, null, false, ScrapType.BOARD_BLANK), + STRENGTH( "Strength", "Strength", null, "It's essential to give your arguments impact.", false, ScrapType.BRIDGE_BIOS), + PERCEPTION( "Perception", "Perception", null, "Only through observation will you perceive weakness.", false, ScrapType.BRIDGE_NORTH), + ENDURANCE( "Endurance", "Endurance", null, "Always be ready to take one for the team.", false, ScrapType.BRIDGE_SOUTH), + CHARISMA( "Charisma", "Charisma", null, "Nothing says pizzaz like a winning smile.", false, ScrapType.BRIDGE_IO), + INTELLIGENCE( "Intelligence", "Intelligence", null, "It takes the smartest individuals to realize$there's always more to learn.", false, ScrapType.BRIDGE_BUS), + AGILITY( "Agility", "Agility", null, "Never be afraid to dodge the sensitive issues.", false, ScrapType.BRIDGE_CHIPSET), + LUCK( "Luck", "Luck", null, "There's only one way to give 110%.", false, ScrapType.BRIDGE_CMOS), + BOB( "Robert \"The Bobcat\" Katzinsky", "HbMinecraft", "Hbm's Nuclear Tech Mod", "I know where you live, " + System.getProperty("user.name"), false, ScrapType.CPU_SOCKET), + FRIZZLE( "Frooz", "Frooz", "Weapon models", "BLOOD IS FUEL", true, ScrapType.CPU_CLOCK), + PU238( "Pu-238", "Pu-238", "Improved Tom impact mechanics", null, false, ScrapType.CPU_REGISTER), + VT( "VT-6/24", "VT-6/24", "Balefire warhead model and general texturework", "You cannot unfuck a horse.", true, ScrapType.CPU_EXT), + DOC( "The Doctor", "Doctor17PH", "Russian localization, lunar miner", "Perhaps the moon rocks were too expensive", true, ScrapType.CPU_CACHE), + BLUEHAT( "The Blue Hat", "The Blue Hat", "Textures", "payday 2's deagle freeaim champ of the year 2022", true, ScrapType.MEM_16K_A), + PHEO( "Pheo", "Pheonix", "Deuterium machines, tantalium textures, Reliant Rocket", "RUN TO THE BEDROOM, ON THE SUITCASE ON THE LEFT,$YOU'LL FIND MY FAVORITE AXE", true, ScrapType.MEM_16K_B), + ADAM29( "Adam29", "Adam29", "Ethanol, liquid petroleum gas", "You know, nukes are really quite beatiful.$It's like watching a star be born for a split second.", true, ScrapType.MEM_16K_C), + UFFR( "UFFR", "UFFR", "All sorts of things from his PR", "fried shrimp", false, ScrapType.MEM_SOCKET), + VAER( "vaer", "vaer", "ZIRNOX", "taken de family out to the weekend cigarette festival", true, ScrapType.MEM_16K_D), + NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), + DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), + CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), + MICROWAVE( "Microwave", "Microwave", "OC Compatibility and massive RBMK/packet optimizations", "they call me the food heater$john optimization", true, ScrapType.BOARD_CONVERTER), + PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CARD_BOARD), + MELLOW( "MELLOWARPEGGIATION", "Mellow", "Industrial lighting, animation tools", "Make something cool now, ask for permission later.", true, ScrapType.CARD_PROCESSOR); public String name; //the title of the tooltip public String label; //the name engraved in the socket @@ -199,7 +208,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { public String inscription; //the flavor text public boolean skinLayers; public ScrapType scrap; - + private BobbleType(String name, String label, String contribution, String inscription, boolean layers, ScrapType scrap) { this.name = name; this.label = label; @@ -217,7 +226,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIScreenBobble((TileEntityBobble) world.getTileEntity(x, y, z)); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCableConnect.java b/src/main/java/com/hbm/blocks/generic/BlockCableConnect.java index c4215befa..c7999fda1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCableConnect.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCableConnect.java @@ -2,7 +2,7 @@ package com.hbm.blocks.generic; import com.hbm.blocks.BlockBase; -import api.hbm.energy.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorBlock; import net.minecraft.block.material.Material; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java index f9b27c5a8..67e8c5e9b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java @@ -11,9 +11,7 @@ import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class BlockCanCrate extends Block { @@ -21,79 +19,77 @@ public class BlockCanCrate extends Block { public BlockCanCrate(Material p_i45394_1_) { super(p_i45394_1_); } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override - public int getRenderType(){ + public int getRenderType() { return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - @Override + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { - - if(world.isRemote) - { - player.addChatMessage(new ChatComponentText("The one crate you are allowed to smash!")); + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; } - - return true; - } - - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - ArrayList ret = new ArrayList(); - - int count = quantityDropped(metadata, fortune, world.rand); - for(int i = 0; i < count; i++) { - Item item = getItemDropped(metadata, world.rand, fortune); - if(item != null) - ret.add(new ItemStack(item, 1, damageDropped(metadata, world.rand, item))); - } - - return ret; - } - - //pain - public int damageDropped(int meta, Random rand, Item item) { - if(item != ModItems.canned_conserve) - return damageDropped(meta); - else - return Math.abs(rand.nextInt() % EnumFoodType.values().length); - } - - @Override - public Item getItemDropped(int i, Random rand, int j) { - - List items = new ArrayList(); - for(int a = 0; a < EnumFoodType.values().length; a++) - items.add(ModItems.canned_conserve); - items.add(ModItems.can_smart); - items.add(ModItems.can_creature); - items.add(ModItems.can_redbomb); - items.add(ModItems.can_mrsugar); - items.add(ModItems.can_overcharge); - items.add(ModItems.can_luna); - items.add(ModItems.can_breen); - items.add(ModItems.can_bepis); - items.add(ModItems.pudding); - - return items.get(rand.nextInt(items.size())); - } - - @Override - public int quantityDropped(Random rand) { - - return 5 + rand.nextInt(4); - } + return false; + } + Random rand = new Random(); + + public void dropContents(World world, int x, int y, int z) { + ArrayList items = getContents(world, x, y, z); + + for(ItemStack item : items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + + public ArrayList getContents(World world, int x, int y, int z) { + ArrayList ret = new ArrayList(); + + int count = getContentAmount(world.rand); + for(int i = 0; i < count; i++) { + ret.add(getRandomItem(world.rand)); + } + + return ret; + } + + public ItemStack getRandomItem(Random rand) { + + List items = new ArrayList(); + for(int a = 0; a < EnumFoodType.values().length; a++) + items.add(new ItemStack(ModItems.canned_conserve, 1, a)); + items.add(new ItemStack(ModItems.can_smart)); + items.add(new ItemStack(ModItems.can_creature)); + items.add(new ItemStack(ModItems.can_redbomb)); + items.add(new ItemStack(ModItems.can_mrsugar)); + items.add(new ItemStack(ModItems.can_overcharge)); + items.add(new ItemStack(ModItems.can_luna)); + items.add(new ItemStack(ModItems.can_breen)); + items.add(new ItemStack(ModItems.can_bepis)); + items.add(new ItemStack(ModItems.pudding)); + + return items.get(rand.nextInt(items.size())); + } + + public int getContentAmount(Random rand) { + return 5 + rand.nextInt(4); + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCap.java b/src/main/java/com/hbm/blocks/generic/BlockCap.java index 798255f0a..21dd3c74c 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCap.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCap.java @@ -1,45 +1,69 @@ package com.hbm.blocks.generic; +import java.util.Locale; import java.util.Random; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.machine.BlockPillar; +import com.hbm.blocks.BlockEnumMulti; import com.hbm.items.ModItems; +import com.hbm.util.EnumUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.Item; +import net.minecraft.util.IIcon; -public class BlockCap extends BlockPillar { +public class BlockCap extends BlockEnumMulti { + + protected IIcon[] iconsTop; - public BlockCap(Material mat, String tex) { - super(mat, tex); + public BlockCap() { + super(Material.iron, EnumCapBlock.class, true, true); } @Override - public Item getItemDropped(int i, Random rand, int j) { - - if(this == ModBlocks.block_cap_nuka) - return ModItems.cap_nuka; - if(this == ModBlocks.block_cap_quantum) - return ModItems.cap_quantum; - if(this == ModBlocks.block_cap_sparkle) - return ModItems.cap_sparkle; - if(this == ModBlocks.block_cap_rad) - return ModItems.cap_rad; - if(this == ModBlocks.block_cap_korl) - return ModItems.cap_korl; - if(this == ModBlocks.block_cap_fritz) - return ModItems.cap_fritz; - if(this == ModBlocks.block_cap_sunset) - return ModItems.cap_sunset; - if(this == ModBlocks.block_cap_star) - return ModItems.cap_star; + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + this.iconsTop = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + Enum num = enums[i]; + this.icons[i] = reg.registerIcon(this.getTextureMultiName(num)); + this.iconsTop[i] = reg.registerIcon(this.getTextureMultiName(num) + "_top"); + } + } + + @Override public String getTextureMultiName(Enum num) { return this.getTextureName() + "_" + num.name().toLowerCase(Locale.US); } + @Override public String getUnlocalizedMultiName(Enum num) { return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.iconsTop[meta % this.iconsTop.length] : this.icons[meta % this.icons.length]; + } + + @Override + public Item getItemDropped(int meta, Random rand, int j) { + + EnumCapBlock cap = EnumUtil.grabEnumSafely(EnumCapBlock.class, meta); + + if(cap == EnumCapBlock.NUKA) return ModItems.cap_nuka; + if(cap == EnumCapBlock.QUANTUM) return ModItems.cap_quantum; + if(cap == EnumCapBlock.SPARKLE) return ModItems.cap_sparkle; + if(cap == EnumCapBlock.RAD) return ModItems.cap_rad; + if(cap == EnumCapBlock.KORL) return ModItems.cap_korl; + if(cap == EnumCapBlock.FRITZ) return ModItems.cap_fritz; + return null; - } - - @Override - public int quantityDropped(Random rand) { - return 128; - } + } + + @Override public int quantityDropped(Random rand) { return 128; } + + public static enum EnumCapBlock { + NUKA, QUANTUM, SPARKLE, RAD, KORL, FRITZ + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCluster.java b/src/main/java/com/hbm/blocks/generic/BlockCluster.java index da64a6849..03ed4027e 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCluster.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCluster.java @@ -62,7 +62,6 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr if(this == ModBlocks.cluster_titanium) return ModItems.crystal_titanium; if(this == ModBlocks.cluster_aluminium) return ModItems.crystal_aluminium; if(this == ModBlocks.cluster_copper) return ModItems.crystal_copper; - if(this == ModBlocks.basalt_gem) return ModItems.gem_volcanic; return null; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java b/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java index b2de5b355..cb6f4ea7e 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java @@ -3,20 +3,12 @@ package com.hbm.blocks.generic; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.items.tool.ItemToolAbility; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; -import net.minecraft.item.ItemTool; -import net.minecraft.item.Item.ToolMaterial; -import net.minecraft.util.Vec3; -import net.minecraft.world.Explosion; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockCoalOil extends Block { @@ -24,19 +16,6 @@ public class BlockCoalOil extends Block { super(mat); } - @Override - public void onNeighborBlockChange(World world, int x, int y, int z, Block b) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block n = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - if(n == ModBlocks.ore_coal_oil_burning || n == ModBlocks.balefire || n == Blocks.fire || n.getMaterial() == Material.lava) { - world.scheduleBlockUpdate(x, y, z, this, world.rand.nextInt(20) + 2); - } - } - } - @Override public void updateTick(World world, int x, int y, int z, Random rand) { world.setBlock(x, y, z, ModBlocks.ore_coal_oil_burning); @@ -51,58 +30,4 @@ public class BlockCoalOil extends Block { public int quantityDropped(Random rand) { return 2 + rand.nextInt(2); } - - public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { - - if(doesToolIgnite(player)) { - if(world.rand.nextInt(10) == 0) - world.setBlock(x, y, z, Blocks.fire); - } - } - - public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) { - - if(!world.isRemote) - return; - - if(doesToolIgnite(player)) { - - Random rand = world.rand; - for(int i = 0; i < 15; i++) { - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ((float)(Math.PI * rand.nextDouble() * 2D)); - vec.rotateAroundY((float)(Math.PI * rand.nextDouble() * 2D)); - - double dX = vec.xCoord; - double dY = vec.yCoord; - double dZ = vec.zCoord; - - if(Math.abs(dX) > 1) - dX /= Math.abs(dX); - if(Math.abs(dY) > 1) - dY /= Math.abs(dY); - if(Math.abs(dX) > 1) - dZ /= Math.abs(dZ); - - world.spawnParticle("flame", x + 0.5 + dX * 0.75, y + 0.5 + dY * 0.75, z + 0.5 + dZ * 0.75, 0.0, 0.0, 0.0); - } - } - } - - public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { - world.setBlock(x, y, z, Blocks.fire); - } - - private boolean doesToolIgnite(EntityPlayer player) { - - if(player.getHeldItem() == null) - return false; - - if(!(player.getHeldItem().getItem() instanceof ItemTool || player.getHeldItem().getItem() instanceof ItemToolAbility)) - return false; - - ItemTool tool = (ItemTool) player.getHeldItem().getItem(); - - return tool.func_150913_i() != ToolMaterial.WOOD; - } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java b/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java index 929d2281a..5e0e6ced3 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java +++ b/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java @@ -30,6 +30,8 @@ public class BlockConcreteColoredExt extends BlockEnumMulti { INDIGO, PURPLE, PINK, - HAZARD + HAZARD, + SAND, + BRONZE } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index 7921a0e71..a951b93e9 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -5,7 +5,7 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.items.ItemAmmoEnums.Ammo44Magnum; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.items.ModItems; import net.minecraft.block.BlockFalling; @@ -14,7 +14,6 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class BlockCrate extends BlockFalling { @@ -29,25 +28,17 @@ public class BlockCrate extends BlockFalling { super(p_i45394_1_); } - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return null; - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { - dropItems(world, x, y, z); - world.setBlockToAir(x, y, z); - world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); - return true; - } else { - if(world.isRemote) { - player.addChatMessage(new ChatComponentText("I'll need a crate opening device to get the loot, smashing the whole thing won't work...")); + if(!world.isRemote) { + dropItems(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); } + return true; } - - return true; + return false; } public void setDrops() { @@ -61,18 +52,6 @@ public class BlockCrate extends BlockFalling { // Supply Crate BlockCrate.addToListWithWeight(crateList, ModItems.syringe_metal_stimpak, 10); BlockCrate.addToListWithWeight(crateList, ModItems.syringe_antidote, 5); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver_iron, 9); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver, 7); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver_gold, 4); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver_lead, 6); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver_cursed, 5); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_rpg, 5); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_fatman, 1); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_mp40, 7); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_uzi, 7); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_uboinik, 7); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_lever_action, 5); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_bolt_action, 5); BlockCrate.addToListWithWeight(crateList, ModItems.grenade_generic, 8); BlockCrate.addToListWithWeight(crateList, ModItems.grenade_strong, 6); BlockCrate.addToListWithWeight(crateList, ModItems.grenade_mk2, 4); @@ -80,21 +59,13 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(crateList, ModItems.ammo_container, 2); // Weapon Crate - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver, 9); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_gold, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_cursed, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_calamity, 3); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_rpg, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_karl, 4); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_panzerschreck, 6); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_hk69, 8); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_stinger, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_mp40, 9); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uzi, 6); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uzi_silencer, 5); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uboinik, 8); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_lever_action, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_bolt_action, 7); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_light_revolver, 10); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_maresleg, 7); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_heavy_revolver, 5); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_greasegun, 5); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_liberator, 2); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_flaregun, 8); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_panzerschreck, 1); // Lead Crate BlockCrate.addToListWithWeight(leadList, ModItems.ingot_uranium, 10); @@ -133,9 +104,8 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 9); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_reactor_breeding), 6); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 7); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_coal_off), 10); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_wood_burner), 10); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_selenium), 7); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.red_pylon), 9); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_battery), 8); @@ -143,7 +113,6 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembler), 10); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_drill), 4); BlockCrate.addToListWithWeight(metalList, ModItems.centrifuge_element, 6); BlockCrate.addToListWithWeight(metalList, ModItems.motor, 8); BlockCrate.addToListWithWeight(metalList, ModItems.coil_tungsten, 7); @@ -151,17 +120,16 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(metalList, ModItems.coil_copper, 10); BlockCrate.addToListWithWeight(metalList, ModItems.tank_steel, 9); BlockCrate.addToListWithWeight(metalList, ModItems.blade_titanium, 3); - BlockCrate.addToListWithWeight(metalList, ModItems.bolt_compound, 2); BlockCrate.addToListWithWeight(metalList, ModItems.piston_selenium, 6); // Red Crate BlockCrate.addToListWithWeight(redList, ModItems.mysteryshovel, 1); - BlockCrate.addToListWithWeight(redList, ModItems.gun_revolver_pip, 1); - BlockCrate.addToListWithWeight(redList, ModItems.gun_revolver_blackjack, 1); - BlockCrate.addToListWithWeight(redList, ModItems.gun_revolver_silver, 1); - BlockCrate.addToListWithWeight(redList, ModItems.ammo_44.stackFromEnum(Ammo44Magnum.PIP), 1); - BlockCrate.addToListWithWeight(redList, ModItems.ammo_44.stackFromEnum(Ammo44Magnum.BJ), 1); - BlockCrate.addToListWithWeight(redList, ModItems.ammo_44.stackFromEnum(Ammo44Magnum.SILVER), 1); + BlockCrate.addToListWithWeight(redList, ModItems.gun_heavy_revolver_lilmac, 1); + BlockCrate.addToListWithWeight(redList, ModItems.gun_autoshotgun_sexy, 1); + BlockCrate.addToListWithWeight(redList, ModItems.gun_maresleg_broken, 1); + BlockCrate.addToListWithWeight(redList, new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.M44_EQUESTRIAN.ordinal()), 1); + BlockCrate.addToListWithWeight(redList, new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.G12_EQUESTRIAN.ordinal()), 1); + BlockCrate.addToListWithWeight(redList, new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.BMG50_EQUESTRIAN.ordinal()), 1); BlockCrate.addToListWithWeight(redList, ModItems.battery_spark, 1); BlockCrate.addToListWithWeight(redList, ModItems.bottle_sparkle, 1); BlockCrate.addToListWithWeight(redList, ModItems.bottle_rad, 1); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrystal.java b/src/main/java/com/hbm/blocks/generic/BlockCrystal.java deleted file mode 100644 index 0204d0f78..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockCrystal.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.hbm.blocks.generic; - -import cpw.mods.fml.client.registry.RenderingRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class BlockCrystal extends BlockDragonProof { - - public BlockCrystal(Material mat) { - super(mat); - } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - - @Override - public int getRenderType() { - return renderID; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public int onBlockPlaced(World world, int x, int y, int z, int side, float hX, float hY, float hZ, int meta) { - return side; - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoCRT.java b/src/main/java/com/hbm/blocks/generic/BlockDecoCRT.java new file mode 100644 index 000000000..724912ed3 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoCRT.java @@ -0,0 +1,76 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockMulti; +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockDecoCRT extends BlockMulti { + + protected String[] variants = new String[] {"crt_clean", "crt_broken", "crt_blinking", "crt_bsod"}; + @SideOnly(Side.CLIENT) protected IIcon[] icons; + + public BlockDecoCRT(Material mat) { + super(mat); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType(){ + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.icons = new IIcon[variants.length]; + + for(int i = 0; i < variants.length; i++) { + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + variants[i]); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return this.icons[damageDropped(meta)]; + } + + @Override + public int damageDropped(int meta) { + return (Math.abs(meta) % 16) / 4; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + int meta = stack.getItemDamage(); + world.setBlockMetadataWithNotify(x, y, z, meta * 4 + i, 2); + } + + @Override + public int getSubCount() { + return 4; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java b/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java index d98221129..ac7a1cdb5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java @@ -58,9 +58,9 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro } else { TileEntity entity = world.getTileEntity(x, y, z); if(entity instanceof TileEntityLockableBase) { //annoying accommodations for the filing cabinet, but whatever, could potentially be useful - if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) + if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) { return false; - else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) { + } else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; } @@ -99,13 +99,13 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro if(itemstack.hasTagCompound()) { entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - - float f3 = 0.05F; - entityitem.motionX = (float) rand.nextGaussian() * f3; - entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) rand.nextGaussian() * f3; - world.spawnEntityInWorld(entityitem); } + + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoToaster.java b/src/main/java/com/hbm/blocks/generic/BlockDecoToaster.java new file mode 100644 index 000000000..a11061fa0 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoToaster.java @@ -0,0 +1,93 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockMulti; +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockDecoToaster extends BlockMulti { + + protected String[] variants = new String[] {"toaster_iron", "toaster_steel", "toaster_wood"}; + @SideOnly(Side.CLIENT) protected IIcon[] icons; + + public BlockDecoToaster(Material mat) { + super(mat); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType(){ + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.icons = new IIcon[variants.length]; + + for(int i = 0; i < variants.length; i++) { + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + variants[i]); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return this.icons[damageDropped(meta)]; + } + + @Override + public int damageDropped(int meta) { + return (Math.abs(meta) % 12) / 4; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + int meta = stack.getItemDamage(); + world.setBlockMetadataWithNotify(x, y, z, meta * 4 + i, 2); + } + + @Override + public int getSubCount() { + return 3; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + if(meta % 2 == 0) + this.setBlockBounds(0.25F, 0.0F, 0.375F, 0.75F, 0.325F, 0.625F); + else + this.setBlockBounds(0.375F, 0.0F, 0.25F, 0.625F, 0.325F, 0.75F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockDeepCobble.java b/src/main/java/com/hbm/blocks/generic/BlockDeepCobble.java deleted file mode 100644 index 34c894bbb..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockDeepCobble.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hbm.blocks.generic; - -import java.util.Random; - -import com.hbm.blocks.BlockEnumMulti; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class BlockDeepCobble extends BlockEnumMulti { - - public static enum EnumDeepCobbleTypes { - NORMAL, - BURNING, - STEAMING - } - - public BlockDeepCobble() { - super(Material.rock, EnumDeepCobbleTypes.class, true, true); - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(World world, int x, int y, int z, Random rand) { - super.randomDisplayTick(world, x, y, z, rand); - - int meta = world.getBlockMetadata(x, y, z); - Block b = world.getBlock(x, y + 1, z); - - if(!b.isNormalCube()) { - if(meta == EnumDeepCobbleTypes.BURNING.ordinal()) { - world.spawnParticle("flame", x + rand.nextDouble(), y + 1.0625, z + rand.nextDouble(), 0.0, 0.0, 0.0); - } - - if(meta == EnumDeepCobbleTypes.STEAMING.ordinal()) { - world.spawnParticle("cloud", x + 0.25 + rand.nextDouble() * 0.5, y + 1.0625, z + 0.25 + rand.nextDouble() * 0.5, 0.0, 0.05, 0.0); - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index 4dad6a3a9..0e496af45 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -3,6 +3,8 @@ package com.hbm.blocks.generic; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IBomb; +import com.hbm.items.special.ItemDoorSkin; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -19,7 +21,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class BlockDoorGeneric extends BlockDummyable { +public class BlockDoorGeneric extends BlockDummyable implements IBomb { public DoorDecl type; @@ -42,7 +44,23 @@ public class BlockDoorGeneric extends BlockDummyable { @Override public int getOffset(){ - return 0; + return type.getBlockOffset(); + } + + @Override + public BombReturnCode explode(World world, int x, int y, int z) { + int[] pos1 = findCore(world, x, y, z); + if(pos1 == null) return BombReturnCode.ERROR_INCOMPATIBLE; + TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]); + if(door != null) { + DoorDecl decl = door.getDoorType(); + if(!decl.remoteControllable()) return BombReturnCode.ERROR_INCOMPATIBLE; + if(door.tryToggle(null)) { + return BombReturnCode.TRIGGERED; + } + } + + return BombReturnCode.ERROR_INCOMPATIBLE; } @Override @@ -54,12 +72,14 @@ public class BlockDoorGeneric extends BlockDummyable { TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]); if(door != null) { - return door.tryToggle(playerIn); + if(playerIn.getHeldItem() != null && playerIn.getHeldItem().getItem() instanceof ItemDoorSkin) { + return door.setSkinIndex((byte) playerIn.getHeldItem().getItemDamage()); + } else { + return door.tryToggle(playerIn); + } } } - if(!playerIn.isSneaking()) - return true; - return false; + return !playerIn.isSneaking(); } @Override @@ -77,8 +97,8 @@ public class BlockDoorGeneric extends BlockDummyable { Math.min(box.minX, box.maxX), Math.min(box.minY, box.maxY), Math.min(box.minZ, box.maxZ), Math.max(box.minX, box.maxX), Math.max(box.minY, box.maxY), Math.max(box.minZ, box.maxZ)); - if(box.minY == y && box.maxY == y) - return; + if(box.minY == y && box.maxY == y) return; + if(box.minX == box.maxX && box.minY == box.maxY && box.minZ == box.maxZ) return; if(box != null && box.intersectsWith(entityBox)) { collidingBoxes.add(box); @@ -89,6 +109,18 @@ public class BlockDoorGeneric extends BlockDummyable { //super.addCollisionBoxesToList(worldIn, x, y, z, entityBox, collidingBoxes, entityIn); } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + AxisAlignedBB aabb = this.getBoundingBox(world, x, y, z); + if(aabb.minX == aabb.maxX && aabb.minY == aabb.maxY && aabb.minZ == aabb.maxZ) return null; + return aabb; + } + + @Override //should fix AI pathfinding + public boolean getBlocksMovement(IBlockAccess world, int x, int y, int z) { //btw the method name is the exact opposite of that it's doing, check net.minecraft.pathfinding.PathNavigate#512 + return hasExtra(world.getBlockMetadata(x, y, z)); //if it's open + } + @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){ @@ -133,5 +165,4 @@ public class BlockDoorGeneric extends BlockDummyable { } return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java b/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java index fc053c80c..9c8176db1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java @@ -135,7 +135,7 @@ public class BlockDynamicSlag extends BlockContainer { TileEntitySlag self = (TileEntitySlag) s; /* Flow down */ - if(world.getBlock(x, y - 1, z).isReplaceable(world, x, y - 1, z)) { + if(world.getBlock(x, y - 1, z).isReplaceable(world, x, y - 1, z) && y > 0) { world.setBlock(x, y - 1, z, ModBlocks.slag); TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, x, y - 1, z); tile.mat = self.mat; diff --git a/src/main/java/com/hbm/blocks/generic/BlockEmitter.java b/src/main/java/com/hbm/blocks/generic/BlockEmitter.java index 4d6b10199..af2b35e7f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockEmitter.java +++ b/src/main/java/com/hbm/blocks/generic/BlockEmitter.java @@ -4,15 +4,15 @@ import java.awt.Color; import java.util.List; import com.hbm.blocks.ITooltipProvider; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.packet.toclient.AuxParticlePacketNT; import api.hbm.block.IToolable; +import com.hbm.tileentity.TileEntityLoadedBase; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockPistonBase; @@ -41,7 +41,7 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityEmitter(); } - + @Override public boolean isOpaqueCube() { return false; @@ -56,12 +56,12 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float fx, float fy, float fz) { - + if(world.isRemote) return true; - + TileEntityEmitter te = (TileEntityEmitter)world.getTileEntity(x, y, z); - + if(player.getHeldItem() != null) { if(player.getHeldItem().getItem() instanceof ItemDye) { @@ -72,7 +72,7 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP return true; } } - + return false; } @@ -80,31 +80,31 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { TileEntityEmitter te = (TileEntityEmitter)world.getTileEntity(x, y, z); - + if(tool == ToolType.SCREWDRIVER) { te.girth += 0.125F; te.markDirty(); return true; } - + if(tool == ToolType.DEFUSER) { te.girth -= 0.125F; if(te.girth < 0.125F) te.girth = 0.125F; te.markDirty(); return true; } - + if(tool == ToolType.HAND_DRILL) { te.effect = (te.effect + 1) % te.effectCount; te.markDirty(); return true; } - + return false; } - public static class TileEntityEmitter extends TileEntity implements INBTPacketReceiver { - + public static class TileEntityEmitter extends TileEntityLoadedBase { + public static final int range = 100; public int color; public int beam; @@ -114,39 +114,39 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - + if(worldObj.getTotalWorldTime() % 20 == 0) { for(int i = 1; i <= range; i++) { - + beam = i; - + int x = xCoord + dir.offsetX * i; int y = yCoord + dir.offsetY * i; int z = zCoord + dir.offsetZ * i; - + Block b = worldObj.getBlock(x, y, z); if(b.isBlockSolid(worldObj, x, y, z, dir.ordinal())) { break; } } } - + if(effect == 4 && beam > 0) { if(worldObj.getTotalWorldTime() % 5 == 0) { double x = (int) (xCoord + dir.offsetX * (worldObj.getTotalWorldTime() / 5L) % beam) + 0.5; double y = (int) (yCoord + dir.offsetY * (worldObj.getTotalWorldTime() / 5L) % beam) + 0.5; double z = (int) (zCoord + dir.offsetZ * (worldObj.getTotalWorldTime() / 5L) % beam) + 0.5; - + int prevColor = color; if(color == 0) { color = Color.HSBtoRGB(worldObj.getTotalWorldTime() / 50.0F, 0.5F, 0.25F) & 16777215; } - + NBTTagCompound data = new NBTTagCompound(); data.setString("type", "plasmablast"); data.setFloat("r", ((float)((color & 0xff0000) >> 16)) / 256F); @@ -168,20 +168,16 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP data.setFloat("pitch", -90); data.setFloat("yaw", 90); } - + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(worldObj.provider.dimensionId, x, y, z, 100)); - + color = prevColor; } } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("beam", this.beam); - data.setInteger("color", this.color); - data.setFloat("girth", this.girth); - data.setInteger("effect", this.effect); - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); + + networkPackNT(150); + } } @@ -191,7 +187,7 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP this.writeToNBT(nbt); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); } - + @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); @@ -212,7 +208,7 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP nbt.setFloat("girth", this.girth); nbt.setInteger("effect", this.effect); } - + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; @@ -225,11 +221,19 @@ public class BlockEmitter extends BlockContainer implements IToolable, ITooltipP } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.beam = nbt.getInteger("beam"); - this.color = nbt.getInteger("color"); - this.girth = nbt.getFloat("girth"); - this.effect = nbt.getInteger("effect"); + public void serialize(ByteBuf buf) { + buf.writeInt(this.beam); + buf.writeInt(this.color); + buf.writeFloat(this.girth); + buf.writeInt(this.effect); + } + + @Override + public void deserialize(ByteBuf buf) { + this.beam = buf.readInt(); + this.color = buf.readInt(); + this.girth = buf.readFloat(); + this.effect = buf.readInt(); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockFallout.java b/src/main/java/com/hbm/blocks/generic/BlockFallout.java index 0ef093594..175b1dd40 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFallout.java +++ b/src/main/java/com/hbm/blocks/generic/BlockFallout.java @@ -41,13 +41,19 @@ public class BlockFallout extends Block { public boolean canPlaceBlockAt(World world, int x, int y, int z) { Block block = world.getBlock(x, y - 1, z); - return block != Blocks.ice && block != Blocks.packed_ice ? (block.isLeaves(world, x, y - 1, z) ? true : (block == this && (world.getBlockMetadata(x, y - 1, z) & 7) == 7 ? true : block.isOpaqueCube() && block.getMaterial().blocksMovement())) : false; + + if (block == Blocks.ice || block == Blocks.packed_ice) return false; + if (block.isLeaves(world, x, y - 1, z) && !block.isAir(world, x, y - 1, z)) return true; + if (block == this && (world.getBlockMetadata(x, y - 1, z) & 7) == 7) return true; + + return block.isOpaqueCube() && block.getMaterial().blocksMovement(); } @Override public void onEntityWalking(World world, int x, int y, int z, Entity entity) { if(!world.isRemote && entity instanceof EntityLivingBase) { + if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode) return; PotionEffect effect = new PotionEffect(HbmPotion.radiation.id, 10 * 60 * 20, 0); effect.setCurativeItems(new ArrayList()); ((EntityLivingBase) entity).addPotionEffect(effect); diff --git a/src/main/java/com/hbm/blocks/generic/BlockFissure.java b/src/main/java/com/hbm/blocks/generic/BlockFissure.java index 003bd8e23..dac40abf0 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFissure.java +++ b/src/main/java/com/hbm/blocks/generic/BlockFissure.java @@ -1,6 +1,9 @@ package com.hbm.blocks.generic; +import java.util.Random; + import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; @@ -11,6 +14,7 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; +import net.minecraft.world.World; public class BlockFissure extends Block implements IBlockMultiPass { @@ -21,6 +25,7 @@ public class BlockFissure extends Block implements IBlockMultiPass { this.setBlockTextureName("bedrock"); this.setBlockUnbreakable(); this.setResistance(1_000_000); + this.setTickRandomly(true); } @Override @@ -41,6 +46,16 @@ public class BlockFissure extends Block implements IBlockMultiPass { return this.overlay; } + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z)) world.setBlock(x, y + 1, z, ModBlocks.volcanic_lava_block); + } + + @Override + public boolean shouldRenderItemMulti() { + return true; + } + @Override public int getPasses() { return 2; diff --git a/src/main/java/com/hbm/blocks/generic/BlockFlammable.java b/src/main/java/com/hbm/blocks/generic/BlockFlammable.java index 9a43b0bf1..023476012 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFlammable.java +++ b/src/main/java/com/hbm/blocks/generic/BlockFlammable.java @@ -3,7 +3,9 @@ package com.hbm.blocks.generic; import com.hbm.blocks.BlockBase; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class BlockFlammable extends BlockBase { @@ -26,4 +28,17 @@ public class BlockFlammable extends BlockBase { public int getFireSpreadSpeed(IBlockAccess world, int x, int y, int z, ForgeDirection face) { return encouragement; } + + public boolean shouldIgnite(World world, int x, int y, int z) { + if(flammability == 0) return false; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.fire) { + return true; + } + } + + return false; + } + } diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java new file mode 100644 index 000000000..d43e266d4 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java @@ -0,0 +1,81 @@ +package com.hbm.blocks.generic; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.IBlockMulti; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockGlyphid extends Block implements IBlockMulti { + + public IIcon[] iconsStandard = new IIcon[2]; + public IIcon[] iconsInfested = new IIcon[2]; + public IIcon[] iconsRad = new IIcon[2]; + + public BlockGlyphid(Material mat) { + super(mat); + this.setCreativeTab(MainRegistry.blockTab); + } + + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; + l = l * l * 42317861L + l * 11L; + int i = (int)(l >> 16 & 3L); + IIcon[] icons = this.getIconArray(world.getBlockMetadata(x, y, z)); + return icons[(int)(Math.abs(i) % icons.length)]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + IIcon[] icons = this.getIconArray(meta); + return icons[meta % icons.length]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + iconsStandard[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base"); + iconsStandard[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_alt"); + iconsInfested[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_infested"); + iconsInfested[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_infested_alt"); + iconsRad[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_rad"); + iconsRad[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_rad_alt"); + } + + protected IIcon[] getIconArray(int meta) { + if(meta == 1) return this.iconsInfested; + if(meta == 2) return this.iconsRad; + return this.iconsStandard; + } + + @Override + public int getSubCount() { + return 3; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < getSubCount(); ++i) list.add(new ItemStack(item, 1, i)); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index 8de0979ae..5986d6581 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -1,31 +1,97 @@ package com.hbm.blocks.generic; -import java.util.List; -import java.util.Random; +import java.util.*; +import java.util.function.Function; +import com.hbm.blocks.IBlockMulti; import com.hbm.config.MobConfig; -import com.hbm.entity.mob.EntityGlyphid; -import com.hbm.entity.mob.EntityGlyphidBehemoth; -import com.hbm.entity.mob.EntityGlyphidBlaster; -import com.hbm.entity.mob.EntityGlyphidBombardier; -import com.hbm.entity.mob.EntityGlyphidBrawler; -import com.hbm.entity.mob.EntityGlyphidBrenda; -import com.hbm.entity.mob.EntityGlyphidNuclear; -import com.hbm.entity.mob.EntityGlyphidScout; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidBehemoth; +import com.hbm.entity.mob.glyphid.EntityGlyphidBlaster; +import com.hbm.entity.mob.glyphid.EntityGlyphidBombardier; +import com.hbm.entity.mob.glyphid.EntityGlyphidBrawler; +import com.hbm.entity.mob.glyphid.EntityGlyphidBrenda; +import com.hbm.entity.mob.glyphid.EntityGlyphidDigger; +import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; +import com.hbm.entity.mob.glyphid.EntityGlyphidScout; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.util.Tuple.Pair; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; -public class BlockGlyphidSpawner extends BlockContainer { +public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti { + + public IIcon[] icons = new IIcon[3]; - public BlockGlyphidSpawner(Material p_i45386_1_) { - super(p_i45386_1_); + public BlockGlyphidSpawner(Material mat) { + super(mat); + this.setCreativeTab(MainRegistry.blockTab); + } + + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + return ModItems.egg_glyphid; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[meta % icons.length]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_alt"); + icons[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_infested"); + icons[2] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_rad"); + } + + @Override + public int getSubCount() { + return 3; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < getSubCount(); ++i) list.add(new ItemStack(item, 1, i)); + } + + private static final ArrayList, int[]>> spawnMap = new ArrayList<>(); + + static { + // big thanks to martin for the suggestion of using functions + spawnMap.add(new Pair<>(EntityGlyphid::new, MobConfig.glyphidChance)); + spawnMap.add(new Pair<>(EntityGlyphidBombardier::new, MobConfig.bombardierChance)); + spawnMap.add(new Pair<>(EntityGlyphidBrawler::new, MobConfig.brawlerChance)); + spawnMap.add(new Pair<>(EntityGlyphidDigger::new, MobConfig.diggerChance)); + spawnMap.add(new Pair<>(EntityGlyphidBlaster::new, MobConfig.blasterChance)); + spawnMap.add(new Pair<>(EntityGlyphidBehemoth::new, MobConfig.behemothChance)); + spawnMap.add(new Pair<>(EntityGlyphidBrenda::new, MobConfig.brendaChance)); + spawnMap.add(new Pair<>(EntityGlyphidNuclear::new, MobConfig.johnsonChance)); + } + + @Override + public int quantityDropped(int meta, int fortune, Random rand) { + return 1 + rand.nextInt(3) + fortune; } @Override @@ -34,39 +100,96 @@ public class BlockGlyphidSpawner extends BlockContainer { } public static class TileEntityGlpyhidSpawner extends TileEntity { - + + boolean initialSpawn = true; + @Override public void updateEntity() { - - if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 60 == 0 && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { + if(!worldObj.isRemote && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { - float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); - List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 6, yCoord + 1, zCoord - 6, xCoord + 7, yCoord + 9, zCoord + 7)); - - if(list.size() < 3) { - EntityGlyphid glyphid = createGlyphid(soot); - glyphid.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); - this.worldObj.spawnEntityInWorld(glyphid); - } - - if(worldObj.rand.nextInt(20) == 0 && soot >= MobConfig.scoutThreshold) { - EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); - scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); - this.worldObj.spawnEntityInWorld(scout); + if(initialSpawn || worldObj.getTotalWorldTime() % MobConfig.swarmCooldown == 0) { + + initialSpawn = false; + int count = 0; + + for(Object e : worldObj.loadedEntityList) { + if(e instanceof EntityGlyphid) { + count++; + if(count >= MobConfig.spawnMax) return; + } + } + + List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 5, yCoord + 1, zCoord - 5, xCoord + 6, yCoord + 7, zCoord + 6)); + float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); + + int subtype = this.getBlockMetadata(); + if(list.size() <= 3 || subtype == EntityGlyphid.TYPE_RADIOACTIVE) { + + ArrayList currentSwarm = createSwarm(soot, subtype); + + for(EntityGlyphid glyphid : currentSwarm) { + trySpawnEntity(glyphid); + } + + if(!initialSpawn && worldObj.rand.nextInt(MobConfig.scoutSwarmSpawnChance + 1) == 0 && soot >= MobConfig.scoutThreshold && subtype != EntityGlyphid.TYPE_RADIOACTIVE) { + EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); + if(this.getBlockMetadata() == 1) scout.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED); + trySpawnEntity(scout); + } + } } } } - public EntityGlyphid createGlyphid(float soot) { - Random rand = new Random(); - - if(soot < MobConfig.tier2Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); - if(soot < MobConfig.tier3Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphidBrawler(worldObj); - if(soot < MobConfig.tier4Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBehemoth(worldObj); - if(soot < MobConfig.tier5Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrenda(worldObj); + public void trySpawnEntity(EntityGlyphid glyphid) { + double offsetX = glyphid.getRNG().nextGaussian() * 3; + double offsetZ = glyphid.getRNG().nextGaussian() * 3; - return rand.nextInt(3) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidNuclear(worldObj); + for(int i = 0; i < 7; i++) { + glyphid.setLocationAndAngles(xCoord + 0.5 + offsetX, yCoord - 2 + i, zCoord + 0.5 + offsetZ, worldObj.rand.nextFloat() * 360.0F, 0.0F); + if(glyphid.getCanSpawnHere()) { + worldObj.spawnEntityInWorld(glyphid); + return; + } + } + } + + public ArrayList createSwarm(float soot, int meta) { + + Random rand = new Random(); + ArrayList currentSpawns = new ArrayList<>(); + int swarmAmount = (int) Math.min(MobConfig.baseSwarmSize * Math.max(MobConfig.swarmScalingMult * (soot / MobConfig.sootStep), 1), 10); + int cap = 100; + + while(currentSpawns.size() <= swarmAmount && cap >= 0) { + // (dys)functional programing + for(Pair, int[]> glyphid : spawnMap) { + int[] chance = glyphid.getValue(); + int adjustedChance = (int) (chance[0] + (chance[1] - chance[1] / Math.max(((soot + 1) / 3), 1))); + if(soot >= chance[2] && rand.nextInt(100) <= adjustedChance) { + EntityGlyphid entity = glyphid.getKey().apply(worldObj); + if(meta == 1) entity.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED); + if(meta == 2) entity.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_RADIOACTIVE); + currentSpawns.add(entity); + } + } + + cap--; + } + return currentSpawns; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("initialSpawn", initialSpawn); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.initialSpawn = nbt.getBoolean("initialSpawn"); } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockGoldSand.java b/src/main/java/com/hbm/blocks/generic/BlockGoldSand.java deleted file mode 100644 index d8da15f8e..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockGoldSand.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.hbm.blocks.generic; - -import com.hbm.blocks.ModBlocks; -import com.hbm.extprop.HbmLivingProps; -import com.hbm.extprop.HbmLivingProps.ContaminationEffect; - -import net.minecraft.block.BlockFalling; -import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class BlockGoldSand extends BlockFalling { - - public BlockGoldSand(Material mat) { - super(mat); - } - - @Override - public void onEntityWalking(World world, int x, int y, int z, Entity entity) { - - if(entity instanceof EntityLivingBase) { - entity.attackEntityFrom(DamageSource.inFire, 2F); - - if(this == ModBlocks.sand_gold198) { - HbmLivingProps.addCont((EntityLivingBase)entity, new ContaminationEffect(5F, 300, false)); - } - } - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockGrate.java b/src/main/java/com/hbm/blocks/generic/BlockGrate.java index 735c8a89f..892f9f929 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGrate.java @@ -14,6 +14,7 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.player.EntityPlayer; @@ -31,8 +32,6 @@ public class BlockGrate extends Block implements ITooltipProvider { public BlockGrate(Material material) { super(material); - - //this.maxY = 0.999D; } @Override @@ -65,16 +64,23 @@ public class BlockGrate extends Block implements ITooltipProvider { return false; } + public float getY(int meta) { + if(meta == 9) return -0.125F; + return meta * 0.125F; + } + @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { int meta = world.getBlockMetadata(x, y, z); - this.setBlockBounds(0F, meta * 0.125F, 0F, 1F, meta * 0.125F + 0.125F - (this == ModBlocks.steel_grate_wide ? 0.001F : 0), 1F); + float fy = getY(meta); + this.setBlockBounds(0F, fy, 0F, 1F, fy + 0.125F - (this == ModBlocks.steel_grate_wide ? 0.001F : 0), 1F); } @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { int meta = world.getBlockMetadata(x, y, z); - this.setBlockBounds(0F, meta * 0.125F, 0F, 1F, meta * 0.125F + 0.125F - (this == ModBlocks.steel_grate_wide ? 0.001F : 0), 1F); + float fy = getY(meta); + this.setBlockBounds(0F, fy, 0F, 1F, fy + 0.125F - (this == ModBlocks.steel_grate_wide ? 0.001F : 0), 1F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } @@ -96,6 +102,50 @@ public class BlockGrate extends Block implements ITooltipProvider { return (int)Math.floor(hY * 8D); } + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + if(player.isSneaking()) { + int meta = world.getBlockMetadata(x, y, z); + + if(meta == 0) { + // Check that the block below can fit a grate above it + Block block = world.getBlock(x, y - 1, z); + AxisAlignedBB otherBB = block.getCollisionBoundingBoxFromPool(world, x, y - 1, z); + if(!block.isAir(world, x, y + 1, z) && (otherBB == null || otherBB.maxY - (double)y < -0.05)) { + world.setBlockMetadataWithNotify(x, y, z, 9, 3); + } + } else if(meta == 7) { + Block block = world.getBlock(x, y + 1, z); + AxisAlignedBB otherBB = block.getCollisionBoundingBoxFromPool(world, x, y + 1, z); + if(!block.isAir(world, x, y + 1, z) && (otherBB == null || otherBB.minY - (double)(y + 1) > 0.05)) { + world.setBlockMetadataWithNotify(x, y, z, 8, 3); + } + } + } + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block neighborBlock) { + if(world.isRemote) return; + + int meta = world.getBlockMetadata(x, y, z); + + boolean breakIt = false; + + if(meta == 9) { + AxisAlignedBB otherBB = world.getBlock(x, y - 1, z).getCollisionBoundingBoxFromPool(world, x, y - 1, z); + breakIt = !(otherBB == null || otherBB.maxY - (double)y < -0.05); + } else if(meta == 8) { + AxisAlignedBB otherBB = world.getBlock(x, y + 1, z).getCollisionBoundingBoxFromPool(world, x, y + 1, z); + breakIt = !(otherBB == null || otherBB.minY - (double)(y + 1) > 0.05); + } + + if(breakIt) { + dropBlockAsItem(world, x, y, z, 0, 0); + world.setBlockToAir(x, y, z); + } + } + @Override public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) { if(this != ModBlocks.steel_grate_wide || !(entity instanceof EntityItem || entity instanceof EntityXPOrb)) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockHazard.java b/src/main/java/com/hbm/blocks/generic/BlockHazard.java index 94008085f..b3bdfc145 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockHazard.java +++ b/src/main/java/com/hbm/blocks/generic/BlockHazard.java @@ -138,6 +138,7 @@ public class BlockHazard extends Block implements ITooltipProvider { public void onBlockAdded(World world, int x, int y, int z) { super.onBlockAdded(world, x, y, z); + // who wrote this??? rad = HazardSystem.getHazardLevelFromStack(new ItemStack(this), HazardRegistry.RADIATION) * 0.1F; if(this.rad > 0) diff --git a/src/main/java/com/hbm/blocks/generic/BlockJungleCrate.java b/src/main/java/com/hbm/blocks/generic/BlockJungleCrate.java index 8806e3f26..9525900b8 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockJungleCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockJungleCrate.java @@ -3,6 +3,7 @@ package com.hbm.blocks.generic; import java.util.ArrayList; import java.util.Random; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import net.minecraft.block.Block; @@ -16,25 +17,26 @@ public class BlockJungleCrate extends Block { public BlockJungleCrate(Material material) { super(material); } - + Random rand = new Random(); - - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - - ArrayList ret = new ArrayList(); - ret.add(new ItemStack(Items.gold_ingot, 4 + rand.nextInt(4))); - ret.add(new ItemStack(Items.gold_nugget, 8 + rand.nextInt(10))); - ret.add(new ItemStack(ModItems.powder_gold, 2 + rand.nextInt(3))); - ret.add(new ItemStack(ModItems.wire_gold, 2 + rand.nextInt(2))); + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - if(rand.nextInt(2) == 0) - ret.add(new ItemStack(ModItems.plate_gold, 1 + rand.nextInt(2))); - - if(rand.nextInt(3) == 0) - ret.add(new ItemStack(ModItems.crystal_gold)); - - return ret; - } + ArrayList ret = new ArrayList(); + + ret.add(new ItemStack(Items.gold_ingot, 4 + rand.nextInt(4))); + ret.add(new ItemStack(Items.gold_nugget, 8 + rand.nextInt(10))); + ret.add(new ItemStack(ModItems.powder_gold, 2 + rand.nextInt(3))); + ret.add(new ItemStack(ModItems.wire_fine, 4 + rand.nextInt(5), Mats.MAT_GOLD.id)); + ret.add(new ItemStack(ModItems.wire_dense, 1 + rand.nextInt(2), Mats.MAT_GOLD.id)); + + if(rand.nextInt(2) == 0) + ret.add(new ItemStack(ModItems.plate_gold, 1 + rand.nextInt(2))); + + if(rand.nextInt(3) == 0) + ret.add(new ItemStack(ModItems.crystal_gold)); + + return ret; + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java new file mode 100644 index 000000000..f267857fd --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -0,0 +1,227 @@ +package com.hbm.blocks.generic; + +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsRedRoom; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModDoor; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockStone; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.WeightedRandom; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockKeyhole extends BlockStone { + + protected IIcon iconTop; + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconTop = iconRegister.registerIcon("stone"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.iconTop : this.blockIcon; + } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + return new ItemStack(Blocks.stone); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null) { + boolean cracked = player.getHeldItem().getItem() == ModItems.key_red_cracked; + if((player.getHeldItem().getItem() == ModItems.key_red || cracked) && side != 0 && side != 1) { + if(cracked) player.getHeldItem().stackSize--; + if(world.isRemote) return true; + ForgeDirection dir = ForgeDirection.getOrientation(side); + generateRoom(world, x - dir.offsetX * 4, y - 2, z - dir.offsetZ * 4); + int b = 0; + if(side == 2) b = 1; + if(side == 5) b = 2; + if(side == 3) b = 3; + if(side == 4) b = 0; + ItemModDoor.placeDoorBlock(world, x, y - 1, z, b, ModBlocks.door_red); + world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); + player.triggerAchievement(MainRegistry.achRedRoom); + return true; + } + } + + return false; + } + + protected static void generateRoom(World world, int x, int y, int z) { + + int size = 9; + int height = 5; + int width = size / 2; + + //Outer Edges, top and bottom + for(int i = -width; i <= width; i++) { + world.setBlock(x + i, y, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y + height - 1, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y + height - 1, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3); + } + + for(int i = 1; i <= height - 2; i++) { + //Outer edges, sides + world.setBlock(x + width, y + i, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y + i, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + i, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + i, z - width, ModBlocks.brick_red, 6, 3); + + //Walls + for(int j = -width + 1; j <= width - 1; j++) { + world.setBlock(x + width, y + i, z + j, ModBlocks.brick_red, 4, 3); + world.setBlock(x - width, y + i, z + j, ModBlocks.brick_red, 5, 3); + world.setBlock(x + j, y + i, z + width, ModBlocks.brick_red, 2, 3); + world.setBlock(x + j, y + i, z - width, ModBlocks.brick_red, 3, 3); + } + } + + if(world.rand.nextInt(1) == 0) { + int r = world.rand.nextInt(4); + if(r == 0) world.setBlock(x + width, y + 2, z, ModBlocks.stone_keyhole_meta, 4, 3); + if(r == 1) world.setBlock(x - width, y + 2, z, ModBlocks.stone_keyhole_meta, 5, 3); + if(r == 2) world.setBlock(x, y + 2, z + width, ModBlocks.stone_keyhole_meta, 2, 3); + if(r == 3) world.setBlock(x, y + 2, z - width, ModBlocks.stone_keyhole_meta, 3, 3); + } + + for(int i = -width + 1; i <= width - 1; i++) { + for(int j = -width + 1; j <= width - 1; j++) { + //Floor and ceiling + world.setBlock(x + i, y, z + j, ModBlocks.brick_red, 1, 3); + world.setBlock(x + i, y + height - 1, z + j, ModBlocks.brick_red, 0, 3); + + for(int k = 1; k <= height - 2; k++) { + world.setBlock(x + i, y + k, z + j, Blocks.air); + } + } + } + + //Torches + int torchDist = width - 1; + int torchOff = torchDist - 1; + world.setBlock(x + torchDist, y + 2, z + torchOff, Blocks.torch); + world.setBlock(x + torchDist, y + 2, z - torchOff, Blocks.torch); + world.setBlock(x - torchDist, y + 2, z + torchOff, Blocks.torch); + world.setBlock(x - torchDist, y + 2, z - torchOff, Blocks.torch); + world.setBlock(x + torchOff, y + 2, z + torchDist, Blocks.torch); + world.setBlock(x - torchOff, y + 2, z + torchDist, Blocks.torch); + world.setBlock(x + torchOff, y + 2, z - torchDist, Blocks.torch); + world.setBlock(x - torchOff, y + 2, z - torchDist, Blocks.torch); + + //Cobwebs + if(world.rand.nextInt(4) == 0) { + for(int i = -width + 1; i <= width - 1; i++) { + for(int j = -width + 1; j <= width - 1; j++) { + if(world.rand.nextBoolean()) world.setBlock(x + i, y + height - 2, z + j, Blocks.web); + } + } + } + + //Pillars + if(world.rand.nextInt(4) == 0) { + for(int i = 1; i <= height - 2; i++) { + world.setBlock(x + width - 2, y + i, z + width - 2, ModBlocks.concrete_colored, 14, 3); + world.setBlock(x + width - 2, y + i, z - width + 2, ModBlocks.concrete_colored, 14, 3); + world.setBlock(x - width + 2, y + i, z + width - 2, ModBlocks.concrete_colored, 14, 3); + world.setBlock(x - width + 2, y + i, z - width + 2, ModBlocks.concrete_colored, 14, 3); + } + } + + //Fire + if(world.rand.nextInt(4) == 0) { + world.setBlock(x + width - 1, y, z + width - 1, Blocks.netherrack); + world.setBlock(x + width - 1, y, z - width + 1, Blocks.netherrack); + world.setBlock(x - width + 1, y, z + width - 1, Blocks.netherrack); + world.setBlock(x - width + 1, y, z - width + 1, Blocks.netherrack); + world.setBlock(x + width - 1, y + 1, z + width - 1, Blocks.fire); + world.setBlock(x + width - 1, y + 1, z - width + 1, Blocks.fire); + world.setBlock(x - width + 1, y + 1, z + width - 1, Blocks.fire); + world.setBlock(x - width + 1, y + 1, z - width + 1, Blocks.fire); + } + + //Circle + if(world.rand.nextInt(4) == 0) { + for(int i = -1; i <= 1; i++) { + for(int j = -1; j <= 1; j++) { + if(i != 0 || j != 0) world.setBlock(x + i, y, z + j, ModBlocks.concrete_colored, 14, 3); + } + } + } + + //Lava + if(world.rand.nextInt(4) == 0) { + world.setBlock(x + width - 2, y, z + width - 1, Blocks.lava); + world.setBlock(x + width - 3, y, z + width - 1, Blocks.lava); + world.setBlock(x - width + 2, y, z + width - 1, Blocks.lava); + world.setBlock(x - width + 3, y, z + width - 1, Blocks.lava); + world.setBlock(x + width - 2, y, z - width + 1, Blocks.lava); + world.setBlock(x + width - 3, y, z - width + 1, Blocks.lava); + world.setBlock(x - width + 2, y, z - width + 1, Blocks.lava); + world.setBlock(x - width + 3, y, z - width + 1, Blocks.lava); + world.setBlock(x + width - 1, y, z + width - 2, Blocks.lava); + world.setBlock(x + width - 1, y, z + width - 3, Blocks.lava); + world.setBlock(x + width - 1, y, z - width + 2, Blocks.lava); + world.setBlock(x + width - 1, y, z - width + 3, Blocks.lava); + world.setBlock(x - width + 1, y, z + width - 2, Blocks.lava); + world.setBlock(x - width + 1, y, z + width - 3, Blocks.lava); + world.setBlock(x - width + 1, y, z - width + 2, Blocks.lava); + world.setBlock(x - width + 1, y, z - width + 3, Blocks.lava); + } + + int rand = world.rand.nextInt(20); + + if(rand == 0) { + world.setBlock(x, y + 1, z, ModBlocks.deco_loot); + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y + 1, z); + loot.addItem(new ItemStack(ModItems.trenchmaster_helmet), 0, 0, 0); + loot.addItem(new ItemStack(ModItems.trenchmaster_plate), 0, 0, 0); + loot.addItem(new ItemStack(ModItems.trenchmaster_legs), 0, 0, 0); + loot.addItem(new ItemStack(ModItems.trenchmaster_boots), 0, 0, 0); + } else { + spawnPedestalItem(world, x, y + 1, z); + } + + //Clear dropped items + List items = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x + 0.5, y, z + 0.5, x + 0.5, y + height, z + 0.5).expand(size / 2D, 0, size / 2D)); + for(EntityItem item : items) item.setDead(); + } + + public static void spawnPedestalItem(World world, int x, int y, int z) { + world.setBlock(x, y, z, ModBlocks.pedestal); + TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); + WeightedRandomChestContent content = (WeightedRandomChestContent) WeightedRandom.getRandomItem(world.rand, ItemPool.getPool(ItemPoolsRedRoom.POOL_RED_PEDESTAL)); + pedestal.item = content.theItemId.copy(); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockLantern.java b/src/main/java/com/hbm/blocks/generic/BlockLantern.java new file mode 100644 index 000000000..7b725afc9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockLantern.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.deco.TileEntityLantern; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockLantern extends BlockDummyable { + + public BlockLantern() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLantern(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java new file mode 100644 index 000000000..843a7c7b7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java @@ -0,0 +1,67 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.tileentity.IRepairable; +import com.hbm.tileentity.deco.TileEntityLanternBehemoth; + +import api.hbm.block.IToolable; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class BlockLanternBehemoth extends BlockDummyable implements IToolable, ILookOverlay { + + public BlockLanternBehemoth() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLanternBehemoth(); + return null; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool != ToolType.TORCH) return false; + boolean didRepair = IRepairable.tryRepairMultiblock(world, x, y, z, this, player); + + if(didRepair) { + HbmPlayerProps data = HbmPlayerProps.getData(player); + data.reputation++; + } + + return didRepair; + } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(Pre event, World world, int x, int y, int z) { + IRepairable.addGenericOverlay(event, world, x, y, z, this); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockLayering.java b/src/main/java/com/hbm/blocks/generic/BlockLayering.java index 7b45bbe3a..4a131cdc6 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLayering.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLayering.java @@ -2,6 +2,7 @@ package com.hbm.blocks.generic; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.ZirnoxDestroyed; import com.hbm.blocks.machine.rbmk.RBMKDebris; @@ -99,6 +100,9 @@ public class BlockLayering extends Block { } public boolean isReplaceable(IBlockAccess world, int x, int y, int z) { + if(this == ModBlocks.leaves_layer) return true; + if(this == ModBlocks.oil_spill) return true; + if(this == ModBlocks.foam_layer) return true; int meta = world.getBlockMetadata(x, y, z); return meta >= 7 ? false : blockMaterial.isReplaceable(); } diff --git a/src/main/java/com/hbm/blocks/generic/BlockLoot.java b/src/main/java/com/hbm/blocks/generic/BlockLoot.java index db0a966f7..6ce450275 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLoot.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLoot.java @@ -48,19 +48,6 @@ public class BlockLoot extends BlockContainer { return null; } - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - - /*TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); - - if(loot != null && loot.items.isEmpty()) { - loot.addItem(new ItemStack(ModItems.gun_lever_action), 0, 0, 0); - }*/ - - //LootGenerator.lootCapStash(world, x, y, z); - } - @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockMarker.java b/src/main/java/com/hbm/blocks/generic/BlockMarker.java deleted file mode 100644 index 25e70dd8c..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockMarker.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.hbm.blocks.generic; - -import java.util.Random; - -import com.hbm.tileentity.machine.TileEntityStructureMarker; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class BlockMarker extends BlockContainer { - - public BlockMarker(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityStructureMarker(); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) { - return null; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public int getRenderType() { - return 2; - } - - private boolean func_150107_m(World p_150107_1_, int p_150107_2_, int p_150107_3_, int p_150107_4_) { - if(World.doesBlockHaveSolidTopSurface(p_150107_1_, p_150107_2_, p_150107_3_, p_150107_4_)) { - return true; - } else { - Block block = p_150107_1_.getBlock(p_150107_2_, p_150107_3_, p_150107_4_); - return block.canPlaceTorchOnTop(p_150107_1_, p_150107_2_, p_150107_3_, p_150107_4_); - } - } - - @Override - public boolean canPlaceBlockAt(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_) { - return func_150107_m(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 6, 2); - } - if(i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 7, 2); - } - if(i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 8, 2); - } - if(i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 9, 2); - } - } - - @Override - public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_) { - super.updateTick(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, p_149674_5_); - - if(p_149674_1_.getBlockMetadata(p_149674_2_, p_149674_3_, p_149674_4_) == 0) { - this.onBlockAdded(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_); - } - } - - @Override - public void onNeighborBlockChange(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_) { - this.func_150108_b(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_, p_149695_5_); - } - - protected boolean func_150108_b(World p_150108_1_, int p_150108_2_, int p_150108_3_, int p_150108_4_, Block p_150108_5_) { - if(this.func_150109_e(p_150108_1_, p_150108_2_, p_150108_3_, p_150108_4_)) { - boolean flag = false; - - if(!this.func_150107_m(p_150108_1_, p_150108_2_, p_150108_3_ - 1, p_150108_4_)) { - flag = true; - } - - if(flag) { - this.dropBlockAsItem(p_150108_1_, p_150108_2_, p_150108_3_, p_150108_4_, p_150108_1_.getBlockMetadata(p_150108_2_, p_150108_3_, p_150108_4_), 0); - p_150108_1_.setBlockToAir(p_150108_2_, p_150108_3_, p_150108_4_); - return true; - } else { - return false; - } - } else { - return true; - } - } - - protected boolean func_150109_e(World p_150109_1_, int p_150109_2_, int p_150109_3_, int p_150109_4_) { - if(!this.canPlaceBlockAt(p_150109_1_, p_150109_2_, p_150109_3_, p_150109_4_)) { - if(p_150109_1_.getBlock(p_150109_2_, p_150109_3_, p_150109_4_) == this) { - this.dropBlockAsItem(p_150109_1_, p_150109_2_, p_150109_3_, p_150109_4_, p_150109_1_.getBlockMetadata(p_150109_2_, p_150109_3_, p_150109_4_), 0); - p_150109_1_.setBlockToAir(p_150109_2_, p_150109_3_, p_150109_4_); - } - - return false; - } else { - return true; - } - } - - @Override - public MovingObjectPosition collisionRayTrace(World p_149731_1_, int p_149731_2_, int p_149731_3_, int p_149731_4_, Vec3 p_149731_5_, Vec3 p_149731_6_) { - float f = 0.15F; - f = 0.1F; - this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.6F, 0.5F + f); - - return super.collisionRayTrace(p_149731_1_, p_149731_2_, p_149731_3_, p_149731_4_, p_149731_5_, p_149731_6_); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - int i = ((TileEntityStructureMarker) world.getTileEntity(x, y, z)).type + 1; - if(i > 2) i -= 3; - if(i == 0) player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Nuclear Reactor")); - if(i == 1) player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Watz Power Plant")); - if(i == 2) player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Fusionary Watz Plant")); - return true; - } else if(!player.isSneaking()) { - if(world.getTileEntity(x, y, z) != null && world.getTileEntity(x, y, z) instanceof TileEntityStructureMarker) { - ((TileEntityStructureMarker) world.getTileEntity(x, y, z)).type++; - } - return true; - } else { - return false; - } - } - -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java b/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java index 753832e36..ffcea711d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java @@ -2,112 +2,139 @@ package com.hbm.blocks.generic; import java.util.List; +import com.hbm.blocks.IBlockMulti; + import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockFence; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; import net.minecraft.world.World; -public class BlockMetalFence extends BlockFence { - - public BlockMetalFence(Material p_i45406_2_) { - super("", p_i45406_2_); +public class BlockMetalFence extends BlockFence implements IBlockMulti { + + public IIcon postIcon; + + public BlockMetalFence(Material mat) { + super("", mat); } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @Override - public int getRenderType(){ + public int getRenderType() { return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister p_149651_1_) - { - this.blockIcon = p_149651_1_.registerIcon(this.getTextureName()); - } - - public void addCollisionBoxesToList(World p_149743_1_, int p_149743_2_, int p_149743_3_, int p_149743_4_, AxisAlignedBB p_149743_5_, List p_149743_6_, Entity p_149743_7_) - { - boolean flag = this.canConnectFenceTo(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_ - 1); - boolean flag1 = this.canConnectFenceTo(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_ + 1); - boolean flag2 = this.canConnectFenceTo(p_149743_1_, p_149743_2_ - 1, p_149743_3_, p_149743_4_); - boolean flag3 = this.canConnectFenceTo(p_149743_1_, p_149743_2_ + 1, p_149743_3_, p_149743_4_); - float f = 0.375F; - float f1 = 0.625F; - float f2 = 0.375F; - float f3 = 0.625F; + @Override + public int damageDropped(int meta) { + return rectify(meta); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return meta == 0 ? this.blockIcon : this.postIcon; + } - if (flag) - { - f2 = 0.0F; - } + public String getUnlocalizedName(ItemStack stack) { + return stack.getItemDamage() == 1 ? getUnlocalizedName() + "_post" : getUnlocalizedName(); + } - if (flag1) - { - f3 = 1.0F; - } + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(this.getTextureName()); + this.postIcon = iconRegister.registerIcon(this.getTextureName() + "_post"); + } - if (flag || flag1) - { - this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); - addCol(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_, p_149743_5_, p_149743_6_, p_149743_7_); - } + @Override + public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB aabb, List list, Entity entity) { + boolean flag = this.canConnectFenceTo(world, x, y, z - 1); + boolean flag1 = this.canConnectFenceTo(world, x, y, z + 1); + boolean flag2 = this.canConnectFenceTo(world, x - 1, y, z); + boolean flag3 = this.canConnectFenceTo(world, x + 1, y, z); + float f = 0.375F; + float f1 = 0.625F; + float f2 = 0.375F; + float f3 = 0.625F; - f2 = 0.375F; - f3 = 0.625F; + if(flag) { + f2 = 0.0F; + } - if (flag2) - { - f = 0.0F; - } + if(flag1) { + f3 = 1.0F; + } - if (flag3) - { - f1 = 1.0F; - } + if(flag || flag1) { + this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); + addCol(world, x, y, z, aabb, list, entity); + } - if (flag2 || flag3 || !flag && !flag1) - { - this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); - addCol(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_, p_149743_5_, p_149743_6_, p_149743_7_); - } + f2 = 0.375F; + f3 = 0.625F; - if (flag) - { - f2 = 0.0F; - } + if(flag2) { + f = 0.0F; + } - if (flag1) - { - f3 = 1.0F; - } + if(flag3) { + f1 = 1.0F; + } - this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); - } - - public void addCol(World p_149743_1_, int p_149743_2_, int p_149743_3_, int p_149743_4_, AxisAlignedBB p_149743_5_, List p_149743_6_, Entity p_149743_7_) - { - AxisAlignedBB axisalignedbb1 = this.getCollisionBoundingBoxFromPool(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_); + if(flag2 || flag3 || !flag && !flag1) { + this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); + addCol(world, x, y, z, aabb, list, entity); + } - if (axisalignedbb1 != null && p_149743_5_.intersectsWith(axisalignedbb1)) - { - p_149743_6_.add(axisalignedbb1); - } - } + if(flag) { + f2 = 0.0F; + } + + if(flag1) { + f3 = 1.0F; + } + + this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); + } + + private void addCol(World world, int x, int y, int z, AxisAlignedBB aabb, List list, Entity entity) { + AxisAlignedBB axisalignedbb1 = this.getCollisionBoundingBoxFromPool(world, x, y, z); + + if(axisalignedbb1 != null && aabb.intersectsWith(axisalignedbb1)) { + list.add(axisalignedbb1); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < getSubCount(); ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public int getSubCount() { + return 2; + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockMeteorOre.java b/src/main/java/com/hbm/blocks/generic/BlockMeteorOre.java new file mode 100644 index 000000000..b749d830f --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockMeteorOre.java @@ -0,0 +1,13 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.blocks.BlockEnums; + +import net.minecraft.block.material.Material; + +public class BlockMeteorOre extends BlockEnumMulti { + + public BlockMeteorOre() { + super(Material.rock, BlockEnums.EnumMeteorType.class, true, true); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockMeteoriteTreasure.java b/src/main/java/com/hbm/blocks/generic/BlockMeteoriteTreasure.java new file mode 100644 index 000000000..26eac3878 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockMeteoriteTreasure.java @@ -0,0 +1,33 @@ +package com.hbm.blocks.generic; + +import java.util.ArrayList; + +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsSingle; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraft.world.World; + +public class BlockMeteoriteTreasure extends Block { + + public BlockMeteoriteTreasure(Material mat) { + super(mat); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + + int count = 1 + world.rand.nextInt(3); + WeightedRandomChestContent[] pool = ItemPool.getPool(ItemPoolsSingle.POOL_METEORITE_TREASURE); + + for(int i = 0; i < count; i++) { + ret.add(ItemPool.getStack(pool, world.rand)); + } + + return ret; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockModDoor.java b/src/main/java/com/hbm/blocks/generic/BlockModDoor.java index 2d003020c..b0ccc6634 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockModDoor.java +++ b/src/main/java/com/hbm/blocks/generic/BlockModDoor.java @@ -319,6 +319,8 @@ public class BlockModDoor extends Block { return ModItems.door_metal; else if (this == ModBlocks.door_office) return ModItems.door_office; + else if (this == ModBlocks.door_red) + return ModItems.door_red; else return ModItems.door_bunker; } @@ -379,6 +381,8 @@ public class BlockModDoor extends Block { return ModItems.door_metal; else if (this == ModBlocks.door_office) return ModItems.door_office; + else if (this == ModBlocks.door_red) + return ModItems.door_red; else return ModItems.door_bunker; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockMotherOfAllOres.java b/src/main/java/com/hbm/blocks/generic/BlockMotherOfAllOres.java deleted file mode 100644 index bcccfe515..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockMotherOfAllOres.java +++ /dev/null @@ -1,319 +0,0 @@ -package com.hbm.blocks.generic; - -import java.awt.Color; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Random; - -import com.google.common.collect.HashBiMap; -import com.hbm.blocks.IBlockMultiPass; -import com.hbm.config.WorldConfig; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.render.block.RenderBlockMultipass; -import com.hbm.util.ColorUtil; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.StatCollector; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; - -public class BlockMotherOfAllOres extends BlockContainer implements IBlockMultiPass { - - public static int override = -1; - - public static void shuffleOverride(Random rand) { - override = rand.nextInt(uniqueItems.size()); - } - - public static void resetOverride() { - override = -1; - } - - public BlockMotherOfAllOres() { - super(Material.rock); - this.setBlockTextureName("stone"); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityRandomOre(); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item item, CreativeTabs tab, List list) { - - for(int i = 0; i < uniqueItems.size(); i++) - list.add(new ItemStack(item, 1, i)); - } - - @Override - public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityRandomOre) { - TileEntityRandomOre ore = (TileEntityRandomOre) te; - return new ItemStack(this, 1, ore.getStackId()); - } - - return new ItemStack(ModItems.nothing); - } - - @Override - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - ArrayList ret = new ArrayList(); - - if(fortune == 0xFECE00) { - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityRandomOre) { - TileEntityRandomOre ore = (TileEntityRandomOre) te; - ComparableStack item = ore.getCompStack(); - ret.add(item.toStack()); - } - } - - return ret; - } - - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int meta) { - this.dropBlockAsItemWithChance(world, x, y, z, meta, 1, 0xFECE00); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) { - ((TileEntityRandomOre)world.getTileEntity(x, y, z)).setItem(stack.getItemDamage()); - world.markBlockForUpdate(x, y, z); - } - - @Override - public int getRenderType(){ - return IBlockMultiPass.getRenderType(); - } - - @Override - public int getPasses() { - return 2; - } - - private IIcon[] overlays = new IIcon[10]; - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister reg) { - - this.blockIcon = reg.registerIcon("stone"); - for(int i = 0; i < overlays.length; i++) { - overlays[i] = reg.registerIcon(RefStrings.MODID + ":ore_random_" + (i + 1)); - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { - - if(RenderBlockMultipass.currentPass == 0) - return Blocks.stone.getIcon(0, 0); - - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityRandomOre) { - TileEntityRandomOre ore = (TileEntityRandomOre) te; - int index = ore.getStackId() % overlays.length; - return overlays[index]; - } - - return Blocks.stone.getIcon(0, 0); - } - - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - - if(RenderBlockMultipass.currentPass == 0) - return Blocks.stone.getIcon(0, 0); - - int index = meta % overlays.length; - return overlays[index]; - } - - @Override - @SideOnly(Side.CLIENT) - public int colorMultiplier(IBlockAccess world, int x, int y, int z) { - - if(RenderBlockMultipass.currentPass == 0) - return 0xffffff; - - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityRandomOre) { - TileEntityRandomOre ore = (TileEntityRandomOre) te; - ItemStack stack = ore.getStack(); - int color = ColorUtil.getAverageColorFromStack(stack); - color = ColorUtil.amplifyColor(color); - - Color col = new Color(color); - int r = col.getRed(); - int g = col.getGreen(); - int b = col.getBlue(); - - float[] hsb = new Color(color).RGBtoHSB(r, g, b, new float[3]); - - if(hsb[1] > 0F && hsb[1] < 0.75F) - hsb[1] = 0.75F; - - color = Color.HSBtoRGB(hsb[0], hsb[1], hsb[2]); - - return color; - } - - return super.colorMultiplier(world, x, y, z); - } - - public static class TileEntityRandomOre extends TileEntity { - - private ComparableStack stack; - - public TileEntityRandomOre() { - if(override != -1) { - setItem(override); - } - } - - public void setItem(int id) { - ComparableStack comp = itemMap.get(id); - this.stack = comp != null ? ((ComparableStack) comp.copy()) : null; - - if(this.worldObj != null) - this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); - } - - public int getStackId() { - return itemMap.inverse().get(getCompStack()); - } - - public ItemStack getStack() { - return getCompStack().toStack(); - } - - public ComparableStack getCompStack() { - - if(stack == null) { - int rand = worldObj.rand.nextInt(uniqueItems.size()); - stack = (ComparableStack) itemMap.get(rand).copy(); - this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); - } - - return stack != null ? stack : new ComparableStack(ModItems.nothing); - } - - @Override - public boolean canUpdate() { - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - int key = nbt.getInteger("item"); - this.setItem(key); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - try { - Integer key = itemMap.inverse().get(getCompStack()); - nbt.setInteger("item", key != null ? key : 0); - } catch(Exception ex) { } - } - - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - this.writeToNBT(nbt); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); - } - - @Override - public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { - this.readFromNBT(pkt.func_148857_g()); - } - } - - public static class ItemRandomOreBlock extends ItemBlock { - - public ItemRandomOreBlock(Block block) { - super(block); - this.setHasSubtypes(true); - this.setMaxDamage(0); - } - - @Override - public String getItemStackDisplayName(ItemStack stack) { - ComparableStack comp = itemMap.get(stack.getItemDamage()); - ItemStack name = comp != null ? comp.toStack() : new ItemStack(ModItems.nothing); - if(name.getItemDamage() == OreDictionary.WILDCARD_VALUE) { - name.setItemDamage(0); - } - return StatCollector.translateToLocalFormatted(this.getUnlocalizedName() + ".name", name.getItem().getItemStackDisplayName(name)); - } - } - - public static HashSet uniqueItems = new HashSet(); - public static HashBiMap itemMap = HashBiMap.create(); - - public static void init() { - - if(WorldConfig.enableRandom) { - for(Object b : Block.blockRegistry.getKeys()) { - Block block = Block.getBlockFromName((String) b); - if(block != null && Item.getItemFromBlock(block) != null) - uniqueItems.add(new ComparableStack(block)); - } - - for(Object i : Item.itemRegistry.getKeys()) { - Item item = (Item) Item.itemRegistry.getObject((String) i); - uniqueItems.add(new ComparableStack(item)); - } - - for(String i : OreDictionary.getOreNames()) { - for(ItemStack stack : OreDictionary.getOres(i)) { - uniqueItems.add(new ComparableStack(stack)); - } - } - } else { - uniqueItems.add(new ComparableStack(ModItems.nothing)); - } - - int i = 0; - for(ComparableStack stack : uniqueItems) { - itemMap.put(i++, stack); - } - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockMultiSlab.java b/src/main/java/com/hbm/blocks/generic/BlockMultiSlab.java index 0772eb07c..bcc38242d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMultiSlab.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMultiSlab.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; +import com.hbm.blocks.IStepTickReceiver; import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; @@ -13,12 +14,13 @@ import net.minecraft.block.BlockSlab; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; -public class BlockMultiSlab extends BlockSlab { +public class BlockMultiSlab extends BlockSlab implements IStepTickReceiver { public static List recipeGen = new ArrayList(); @@ -100,4 +102,18 @@ public class BlockMultiSlab extends BlockSlab { Block block = slabMaterials[meta]; return block.getBlockHardness(world, x, y, z); //relies on block not assuming that they are at that position } + + @Override + public void onPlayerStep(World world, int x, int y, int z, EntityPlayer player) { + int meta = world.getBlockMetadata(x, y, z); + meta = (meta & 7) % slabMaterials.length; + Block block = slabMaterials[meta]; + if(!world.isRemote || !(block instanceof BlockSpeedy)) + return; + + if(player.moveForward != 0 || player.moveStrafing != 0) { + player.motionX *= 1.5; + player.motionZ *= 1.5; + } + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockMush.java b/src/main/java/com/hbm/blocks/generic/BlockMush.java index 1651682a5..d914992ca 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMush.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMush.java @@ -1,9 +1,9 @@ package com.hbm.blocks.generic; +import java.util.HashSet; import java.util.Random; import java.util.Set; -import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.world.feature.HugeMush; @@ -47,17 +47,19 @@ public class BlockMush extends Block implements IGrowable, IPlantable { } } - private static final Set canGrowOn = Sets.newHashSet(new Block[] { - ModBlocks.waste_earth, - ModBlocks.waste_mycelium, - ModBlocks.waste_trinitite, - ModBlocks.waste_trinitite_red, - ModBlocks.block_waste, - ModBlocks.block_waste_painted, - ModBlocks.block_waste_vitrified - }); + private static final Set canGrowOn = new HashSet(); public boolean canMushGrowHere(World world, int x, int y, int z) { + if(canGrowOn.isEmpty()) { + canGrowOn.add(ModBlocks.waste_earth); + canGrowOn.add(ModBlocks.waste_mycelium); + canGrowOn.add(ModBlocks.waste_trinitite); + canGrowOn.add(ModBlocks.waste_trinitite_red); + canGrowOn.add(ModBlocks.block_waste); + canGrowOn.add(ModBlocks.block_waste_painted); + canGrowOn.add(ModBlocks.block_waste_vitrified); + } + Block block = world.getBlock(x, y - 1, z); return canGrowOn.contains(block); } @@ -75,7 +77,7 @@ public class BlockMush extends Block implements IGrowable, IPlantable { */ @Override public boolean func_149851_a(World world, int x, int y, int z, boolean b) { - return this.canMushGrowHere(world, x, y, z); + return canBlockStay(world, x, y, z); } /** diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index d862c4ea5..36cd4e00c 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.interfaces.Spaghetti; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.potion.HbmPotion; import cpw.mods.fml.relauncher.Side; @@ -43,13 +44,13 @@ public class BlockOre extends Block { @Spaghetti("*throws up*") @Override public Item getItemDropped(int i, Random rand, int j) { - if(this == ModBlocks.ore_fluorite || this == ModBlocks.basalt_fluorite) { + if(this == ModBlocks.ore_fluorite) { return ModItems.fluorite; } if(this == ModBlocks.ore_niter) { return ModItems.niter; } - if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur || this == ModBlocks.basalt_sulfur) { + if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur) { return ModItems.sulfur; } if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) { @@ -76,121 +77,10 @@ public class BlockOre extends Block { if(this == ModBlocks.block_meteor_broken) { return ModItems.fragment_meteorite; } - if(this == ModBlocks.block_meteor_treasure) { - switch(rand.nextInt(36)) { - case 0: - return ModItems.coil_advanced_alloy; - case 1: - return ModItems.plate_advanced_alloy; - case 2: - return ModItems.powder_desh_mix; - case 3: - return ModItems.ingot_desh; - case 4: - return ModItems.battery_advanced; - case 5: - return ModItems.battery_lithium_cell; - case 6: - return ModItems.battery_advanced_cell; - case 7: - return ModItems.nugget_schrabidium; - case 8: - return ModItems.ingot_plutonium; - case 9: - return ModItems.ingot_thorium_fuel; - case 10: - return ModItems.ingot_u233; - case 11: - return ModItems.turbine_tungsten; - case 12: - return ModItems.ingot_dura_steel; - case 13: - return ModItems.ingot_polymer; - case 14: - return ModItems.ingot_tungsten; - case 15: - return ModItems.ingot_combine_steel; - case 16: - return ModItems.ingot_lanthanium; - case 17: - return ModItems.ingot_actinium; - case 18: - return Item.getItemFromBlock(ModBlocks.block_meteor); - case 19: - return Item.getItemFromBlock(ModBlocks.fusion_heater); - case 20: - return ModItems.circuit_red_copper; - case 21: - return Item.getItemFromBlock(ModBlocks.watz_element); - case 22: - return Item.getItemFromBlock(ModBlocks.ore_rare); - case 23: - return Item.getItemFromBlock(ModBlocks.fusion_conductor); - case 24: - return Item.getItemFromBlock(ModBlocks.reactor_computer); - case 25: - return Item.getItemFromBlock(ModBlocks.machine_diesel); - case 26: - return Item.getItemFromBlock(ModBlocks.machine_rtg_grey); - case 27: - return ModItems.pellet_rtg; - case 28: - return ModItems.pellet_rtg_weak; - case 29: - return ModItems.rtg_unit; - case 30: - return ModItems.gun_spark_ammo; - case 31: case 32: - return ModItems.ammo_nuke; - case 33: - return ModItems.gun_defabricator_ammo; - case 34: - return ModItems.gun_osipr_ammo2; - case 35: - return ModItems.glitch; - } - } if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) { - switch(rand.nextInt(6)) { - case 0: - return ModItems.fragment_boron; - case 1: - return ModItems.fragment_cerium; - case 2: - return ModItems.fragment_cobalt; - case 3: - return ModItems.fragment_lanthanium; - case 4: - return ModItems.fragment_neodymium; - case 5: - return ModItems.fragment_niobium; - } + return ModItems.chunk_ore; } - if(this == ModBlocks.deco_aluminium) { - return ModItems.ingot_aluminium; - } - if(this == ModBlocks.deco_beryllium) { - return ModItems.ingot_beryllium; - } - if(this == ModBlocks.deco_lead) { - return ModItems.ingot_lead; - } - if(this == ModBlocks.deco_red_copper) { - return ModItems.ingot_red_copper; - } - if(this == ModBlocks.deco_steel) { - return ModItems.ingot_steel; - } - if(this == ModBlocks.deco_titanium) { - return ModItems.ingot_titanium; - } - if(this == ModBlocks.deco_tungsten) { - return ModItems.ingot_tungsten; - } - if(this == ModBlocks.deco_asbestos) { - return ModItems.ingot_asbestos; - } - if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos || this == ModBlocks.basalt_asbestos) { + if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos) { return ModItems.ingot_asbestos; } if(this == ModBlocks.ore_lignite) { @@ -205,24 +95,24 @@ public class BlockOre extends Block { if(this == ModBlocks.ore_cobalt || this == ModBlocks.ore_nether_cobalt) { return ModItems.fragment_cobalt; } + if(this == ModBlocks.block_meteor_molten) { + return null; + } return Item.getItemFromBlock(this); } @Override public int quantityDropped(Random rand) { - if(this == ModBlocks.ore_fluorite || this == ModBlocks.basalt_fluorite) { + if(this == ModBlocks.ore_fluorite) { return 2 + rand.nextInt(3); } if(this == ModBlocks.ore_niter) { return 2 + rand.nextInt(3); } - if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur || this == ModBlocks.basalt_sulfur) { + if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur) { return 2 + rand.nextInt(3); } - if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) { - return 4 + rand.nextInt(8); - } if(this == ModBlocks.block_meteor_broken) { return 1 + rand.nextInt(3); } @@ -263,7 +153,8 @@ public class BlockOre extends Block { } @Override - public int damageDropped(int p_149692_1_) { + public int damageDropped(int meta) { + if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) return EnumChunkType.RARE.ordinal(); return this == ModBlocks.waste_planks ? 1 : 0; } @@ -345,8 +236,7 @@ public class BlockOre extends Block { public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int i) { if(this == ModBlocks.block_meteor_molten) { - if(!world.isRemote) - world.setBlock(x, y, z, Blocks.lava); + if(!world.isRemote) world.setBlock(x, y, z, Blocks.lava); } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java new file mode 100644 index 000000000..41e4a35c4 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java @@ -0,0 +1,101 @@ +package com.hbm.blocks.generic; + +import java.util.ArrayList; +import java.util.Locale; +import java.util.Random; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockOreBasalt extends BlockEnumMulti { + + protected IIcon[] topIcons; + + public BlockOreBasalt() { + super(Material.rock, EnumBasaltOreType.class, true, true); + } + + public static enum EnumBasaltOreType { + SULFUR, + FLUORITE, + ASBESTOS, + GEM, + MOLYSITE + } + + public String getTextureMultiName(Enum num) { + return this.getTextureName() + "_" + num.name().toLowerCase(Locale.US); + } + + public String getUnlocalizedMultiName(Enum num) { + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); + } + + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + if(meta == EnumBasaltOreType.SULFUR.ordinal()) return ModItems.sulfur; + if(meta == EnumBasaltOreType.FLUORITE.ordinal()) return ModItems.fluorite; + if(meta == EnumBasaltOreType.ASBESTOS.ordinal()) return ModItems.ingot_asbestos; + if(meta == EnumBasaltOreType.GEM.ordinal()) return ModItems.gem_volcanic; + if(meta == EnumBasaltOreType.MOLYSITE.ordinal()) return ModItems.powder_molysite; + return super.getItemDropped(meta, rand, fortune); + } + + @Override + public void onEntityWalking(World world, int x, int y, int z, Entity entity) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == EnumBasaltOreType.ASBESTOS.ordinal() && world.getBlock(x, y + 1, z) == Blocks.air) { + if(world.rand.nextInt(10) == 0) world.setBlock(x, y + 1, z, ModBlocks.gas_asbestos); + for(int i = 0; i < 5; i++) world.spawnParticle("townaura", x + world.rand.nextFloat(), y + 1.1, z + world.rand.nextFloat(), 0.0D, 0.0D, 0.0D); + } + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { } //no more BUD outgassing for you, mister + + @Override + public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float chance, int fortune) { + if(meta == EnumBasaltOreType.ASBESTOS.ordinal()) world.setBlock(x, y, z, ModBlocks.gas_asbestos); + super.dropBlockAsItemWithChance(world, x, y, z, meta, chance, fortune); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + return ModBlocks.getDropsWithoutDamage(world, this, metadata, fortune); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + + Enum[] enums = theEnum.getEnumConstants(); + this.topIcons = new IIcon[enums.length]; + + for(int i = 0; i < topIcons.length; i++) { + Enum num = enums[i]; + this.topIcons[i] = reg.registerIcon(this.getTextureMultiName(num) + "_top"); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + if(side <= 1) return this.topIcons[meta % this.topIcons.length]; + return super.getIcon(side, meta); + } + +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java index 650819005..9fe92c1b9 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java @@ -57,8 +57,7 @@ public class BlockOutgas extends BlockOre { if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos || this == ModBlocks.block_asbestos || this == ModBlocks.deco_asbestos || this == ModBlocks.brick_asbestos || this == ModBlocks.tile_lab || - this == ModBlocks.tile_lab_cracked || this == ModBlocks.tile_lab_broken || - this == ModBlocks.basalt_asbestos) { + this == ModBlocks.tile_lab_cracked || this == ModBlocks.tile_lab_broken) { return ModBlocks.gas_asbestos; } @@ -104,7 +103,7 @@ public class BlockOutgas extends BlockOre { @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { - if(onNeighbour) { + if(onNeighbour && world.rand.nextInt(3) == 0) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java new file mode 100644 index 000000000..c6c865f3c --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java @@ -0,0 +1,220 @@ +package com.hbm.blocks.generic; + +import com.hbm.inventory.recipes.PedestalRecipes; +import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe; +import com.hbm.lib.RefStrings; +import com.hbm.particle.helper.ExplosionSmallCreator; +import com.hbm.util.Compat; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockPedestal extends BlockContainer { + + protected IIcon iconSide; + + public BlockPedestal() { + super(Material.rock); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPedestal(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":pedestal_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.blockIcon : this.iconSide; + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) return true; + if(player.isSneaking()) return false; + + TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); + + if(pedestal.item == null && player.getHeldItem() != null) { + pedestal.item = player.getHeldItem().copy(); + player.inventory.mainInventory[player.inventory.currentItem] = null; + pedestal.markDirty(); + world.markBlockForUpdate(x, y, z); + return true; + } else if(pedestal.item != null && player.getHeldItem() == null) { + player.inventory.mainInventory[player.inventory.currentItem] = pedestal.item.copy(); + pedestal.item = null; + pedestal.markDirty(); + world.markBlockForUpdate(x, y, z); + return true; + } + + return false; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + if(!world.isRemote) { + TileEntityPedestal entity = (TileEntityPedestal) world.getTileEntity(x, y, z); + if(entity != null && entity.item != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, entity.item.copy()); + world.spawnEntityInWorld(item); + } + } + + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block b) { + if(!world.isRemote) { + if(world.isBlockIndirectlyGettingPowered(x, y, z)) { + + TileEntityPedestal nw = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.NORTH.offsetX * 2 + ForgeDirection.WEST.offsetX * 2, y, z + ForgeDirection.NORTH.offsetZ * 2 + ForgeDirection.WEST.offsetZ * 2)); + TileEntityPedestal n = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.NORTH.offsetX * 3, y, z + ForgeDirection.NORTH.offsetZ * 3)); + TileEntityPedestal ne = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.NORTH.offsetX * 2 + ForgeDirection.EAST.offsetX * 2, y, z + ForgeDirection.NORTH.offsetZ * 2 + ForgeDirection.EAST.offsetZ * 2)); + TileEntityPedestal w = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.WEST.offsetX * 3, y, z + ForgeDirection.WEST.offsetZ * 3)); + TileEntityPedestal center = (TileEntityPedestal) world.getTileEntity(x, y, z); + TileEntityPedestal e = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.EAST.offsetX * 3, y, z + ForgeDirection.EAST.offsetZ * 3)); + TileEntityPedestal sw = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 2 + ForgeDirection.WEST.offsetX * 2, y, z + ForgeDirection.SOUTH.offsetZ * 2 + ForgeDirection.WEST.offsetZ * 2)); + TileEntityPedestal s = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 3, y, z + ForgeDirection.SOUTH.offsetZ * 3)); + TileEntityPedestal se = castOrNull(Compat.getTileStandard(world, x + ForgeDirection.SOUTH.offsetX * 2 + ForgeDirection.EAST.offsetX * 2, y, z + ForgeDirection.SOUTH.offsetZ * 2 + ForgeDirection.EAST.offsetZ * 2)); + + TileEntityPedestal[] tileArray = new TileEntityPedestal[] {nw, n, ne, w, center, e, sw, s, se}; + + outer: for(PedestalRecipe recipe : PedestalRecipes.recipes) { + + if(recipe.extra == recipe.extra.FULL_MOON) { + if(world.getCelestialAngle(0) < 0.35 || world.getCelestialAngle(0) > 0.65) continue; + if(world.getMoonPhase() != 0) continue; + } + + if(recipe.extra == recipe.extra.NEW_MOON) { + if(world.getCelestialAngle(0) < 0.35 || world.getCelestialAngle(0) > 0.65) continue; + if(world.getMoonPhase() != 4) continue; + } + + if(recipe.extra == recipe.extra.SUN) { + if(world.getCelestialAngle(0) > 0.15 && world.getCelestialAngle(0) < 0.85) continue; + } + + for(int i = 0; i < 9; i++) { + ItemStack pedestal = tileArray[i] != null ? tileArray[i].item : null; + if(pedestal == null && recipe.input[i] != null) continue outer; + if(pedestal != null && recipe.input[i] == null) continue outer; + if(pedestal == null && recipe.input[i] == null) continue; + + if(!recipe.input[i].matchesRecipe(pedestal, true) || recipe.input[i].stacksize != pedestal.stackSize) continue outer; + } + + for(int i = 0; i < 9; i++) { + if(i == 4) continue; + ItemStack pedestal = tileArray[i] != null ? tileArray[i].item : null; + if(pedestal == null && recipe.input[i] == null) continue; + tileArray[i].item = null; + tileArray[i].markDirty(); + world.markBlockForUpdate(tileArray[i].xCoord, tileArray[i].yCoord, tileArray[i].zCoord); + } + + center.item = recipe.output.copy(); + center.markDirty(); + world.markBlockForUpdate(x, y, z); + ExplosionSmallCreator.composeEffect(world, x + 0.5, y + 1.5, z + 0.5, 10, 2.5F, 1F); + + return; + } + } + } + } + + public static TileEntityPedestal castOrNull(TileEntity tile) { + if(tile instanceof TileEntityPedestal) return (TileEntityPedestal) tile; + return null; + } + + public static class TileEntityPedestal extends TileEntity { + + public ItemStack item; + + @Override + public boolean canUpdate() { + return false; + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.item = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("item")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + if(this.item != null) { + NBTTagCompound stack = new NBTTagCompound(); + this.item.writeToNBT(stack); + nbt.setTag("item", stack); + } + } + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockPlushie.java b/src/main/java/com/hbm/blocks/generic/BlockPlushie.java new file mode 100644 index 000000000..5d4709b72 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockPlushie.java @@ -0,0 +1,173 @@ +package com.hbm.blocks.generic; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.IBlockMulti; +import com.hbm.blocks.ITooltipProvider; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +public class BlockPlushie extends BlockContainer implements IBlockMulti, ITooltipProvider { + + public BlockPlushie() { + super(Material.cloth); + } + + @Override public int getRenderType() { return -1; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + @Override public Item getItemDropped(int i, Random rand, int j) { return null; } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + TileEntityPlushie entity = (TileEntityPlushie) world.getTileEntity(x, y, z); + if(entity != null) return new ItemStack(this, 1, entity.type.ordinal()); + return super.getPickBlock(target, world, x, y, z, player); + } + + @Override + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + if(!world.isRemote) { + TileEntityPlushie entity = (TileEntityPlushie) world.getTileEntity(x, y, z); + if(entity != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); + item.motionX = 0; + item.motionY = 0; + item.motionZ = 0; + world.spawnEntityInWorld(item); + } + } + harvesters.set(null); + } + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 1; i < PlushieType.values().length; i++) list.add(new ItemStack(item, 1, i)); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int meta = MathHelper.floor_double((double)((player.rotationYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15; + world.setBlockMetadataWithNotify(x, y, z, meta, 2); + + TileEntityPlushie plushie = (TileEntityPlushie) world.getTileEntity(x, y, z); + plushie.type = PlushieType.values()[Math.abs(stack.getItemDamage()) % PlushieType.values().length]; + plushie.markDirty(); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPlushie(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + TileEntityPlushie plushie = (TileEntityPlushie) world.getTileEntity(x, y, z); + plushie.squishTimer = 11; + return true; + } else { + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.squeakyToy", 0.25F, 1F); + return true; + } + } + + public static class TileEntityPlushie extends TileEntity { + + public PlushieType type = PlushieType.NONE; + public int squishTimer; + + @Override + public void updateEntity() { + if(squishTimer > 0) squishTimer--; + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.type = PlushieType.values()[Math.abs(nbt.getByte("type")) % PlushieType.values().length]; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setByte("type", (byte) type.ordinal()); + } + } + + public static enum PlushieType { + NONE( "NONE", null), + YOMI( "Yomi", "Hi! Can I be your rabbit friend?"), + NUMBERNINE( "Number Nine", "None of y'all deserve coal."), + POOH( "Winnie the Pooh", "Beloved children's character with no malicious intent."); + + public String label; + public String inscription; + + private PlushieType(String label, String inscription) { + this.label = label; + this.inscription = inscription; + } + } + + @Override + public int getSubCount() { + return PlushieType.values().length; + } + + @Override + public String getOverrideDisplayName(ItemStack stack) { + PlushieType type = PlushieType.values()[Math.abs(stack.getItemDamage()) % PlushieType.values().length]; + return StatCollector.translateToLocalFormatted(this.getUnlocalizedName() + ".name", type == PlushieType.NONE ? "" : type.label).trim(); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + PlushieType type = PlushieType.values()[Math.abs(stack.getItemDamage()) % PlushieType.values().length]; + if(type.inscription != null) list.add(type.inscription); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockRedBrick.java b/src/main/java/com/hbm/blocks/generic/BlockRedBrick.java new file mode 100644 index 000000000..fefb2387d --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockRedBrick.java @@ -0,0 +1,52 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockRedBrick extends Block { + + protected IIcon iconFront; + protected IIcon iconTop; + + public BlockRedBrick(Material material) { + super(material); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":brick_red"); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":brick_red_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_base"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == meta ? (side == 0 || side == 1 ? this.iconTop : this.iconFront) : this.blockIcon; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockRedBrickKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockRedBrickKeyhole.java new file mode 100644 index 000000000..bef78f2f2 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockRedBrickKeyhole.java @@ -0,0 +1,161 @@ +package com.hbm.blocks.generic; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsRedRoom; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModDoor; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockRedBrickKeyhole extends Block { + + protected IIcon iconFront; + protected IIcon iconTop; + + public BlockRedBrickKeyhole(Material material) { + super(material); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":stone_keyhole_meta"); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":brick_red_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_base"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == meta ? (side == 0 || side == 1 ? this.iconTop : this.iconFront) : this.blockIcon; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + return new ItemStack(ModBlocks.brick_red); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null) { + boolean cracked = player.getHeldItem().getItem() == ModItems.key_red_cracked; + if((player.getHeldItem().getItem() == ModItems.key_red || cracked) && side != 0 && side != 1) { + if(cracked) player.getHeldItem().stackSize--; + if(world.isRemote) return true; + ForgeDirection dir = ForgeDirection.getOrientation(side); + generateRoom(world, x - dir.offsetX * 4, y - 2, z - dir.offsetZ * 4, dir); + int b = 0; + if(side == 2) b = 1; + if(side == 5) b = 2; + if(side == 3) b = 3; + if(side == 4) b = 0; + ItemModDoor.placeDoorBlock(world, x, y - 1, z, b, ModBlocks.door_red); + world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); + player.triggerAchievement(MainRegistry.achRedRoom); + return true; + } + } + + return false; + } + + protected static void generateRoom(World world, int x, int y, int z, ForgeDirection dir) { + + int size = 9; + int height = 5; + int width = size / 2; + + //Outer Edges, top and bottom + for(int i = -width; i <= width; i++) { + world.setBlock(x + i, y, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y + height - 1, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y + height - 1, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3); + } + + for(int i = 1; i <= height - 2; i++) { + //Outer edges, sides + world.setBlock(x + width, y + i, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y + i, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + i, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + i, z - width, ModBlocks.brick_red, 6, 3); + + //Walls + for(int j = -width + 1; j <= width - 1; j++) { + if(dir != Library.POS_X) world.setBlock(x + width, y + i, z + j, ModBlocks.brick_red, 6, 3); + if(dir != Library.NEG_X) world.setBlock(x - width, y + i, z + j, ModBlocks.brick_red, 6, 3); + if(dir != Library.POS_Z) world.setBlock(x + j, y + i, z + width, ModBlocks.brick_red, 6, 3); + if(dir != Library.NEG_Z) world.setBlock(x + j, y + i, z - width, ModBlocks.brick_red, 6, 3); + } + } + + for(int i = -width + 1; i <= width - 1; i++) { + for(int j = -width + 1; j <= width - 1; j++) { + //Floor and ceiling + world.setBlock(x + i, y, z + j, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y + height - 1, z + j, ModBlocks.brick_red, 6, 3); + + for(int k = 1; k <= height - 2; k++) { + world.setBlock(x + i, y + k, z + j, Blocks.air); + } + } + } + + spawnPedestalItem(world, x, y + 1, z, ItemPool.getPool(ItemPoolsRedRoom.POOL_BLACK_SLAB)); + if(world.rand.nextBoolean()) spawnPedestalItem(world, x + 2, y + 1, z, ItemPool.getPool(ItemPoolsRedRoom.POOL_BLACK_PART)); + if(world.rand.nextBoolean()) spawnPedestalItem(world, x - 2, y + 1, z, ItemPool.getPool(ItemPoolsRedRoom.POOL_BLACK_PART)); + if(world.rand.nextBoolean()) spawnPedestalItem(world, x, y + 1, z + 2, ItemPool.getPool(ItemPoolsRedRoom.POOL_BLACK_PART)); + if(world.rand.nextBoolean()) spawnPedestalItem(world, x, y + 1, z - 2, ItemPool.getPool(ItemPoolsRedRoom.POOL_BLACK_PART)); + + //Clear dropped items + List items = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x + 0.5, y, z + 0.5, x + 0.5, y + height, z + 0.5).expand(size / 2D, 0, size / 2D)); + for(EntityItem item : items) item.setDead(); + } + + public static void spawnPedestalItem(World world, int x, int y, int z, WeightedRandomChestContent[] pool) { + world.setBlock(x, y, z, ModBlocks.pedestal); + TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); + pedestal.item = ItemPool.getStack(pool, world.rand).copy(); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockScaffold.java b/src/main/java/com/hbm/blocks/generic/BlockScaffold.java index 64a2eb919..1f34d1d84 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockScaffold.java +++ b/src/main/java/com/hbm/blocks/generic/BlockScaffold.java @@ -16,6 +16,7 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class BlockScaffold extends BlockMulti { @@ -59,22 +60,34 @@ public class BlockScaffold extends BlockMulti { public IIcon getIcon(int side, int meta) { return this.icons[this.damageDropped(meta)]; } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fx, float fy, float fz, int meta) { + return side; + } @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + ForgeDirection placed = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); int meta = stack.getItemDamage(); - - if(i % 2 == 0) { - world.setBlockMetadataWithNotify(x, y, z, meta, 2); + + if(placed == ForgeDirection.UP || placed == ForgeDirection.DOWN) { + int rot = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + if(rot % 2 == 0) { + world.setBlockMetadataWithNotify(x, y, z, meta, 2); + } else { + world.setBlockMetadataWithNotify(x, y, z, meta + 8, 2); + } + } else if(placed == ForgeDirection.NORTH || placed == ForgeDirection.SOUTH) { + world.setBlockMetadataWithNotify(x, y, z, meta + 4, 2); } else { - world.setBlockMetadataWithNotify(x, y, z, meta + 8, 2); + world.setBlockMetadataWithNotify(x, y, z, meta + 12, 2); } } @Override public int damageDropped(int meta) { - return rectify(meta) & 7; + return rectify(meta); } @Override @@ -83,27 +96,24 @@ public class BlockScaffold extends BlockMulti { } @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { - int te = p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_); + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); float f = 0.0625F; - if((te & 8) != 0) + if(meta >= 12) { + this.setBlockBounds(0.0F, 2 * f, 0.0F, 1.0F, 14 * f, 1.0F); + } else if(meta >= 8) { this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); - else + } else if(meta >= 4) { + this.setBlockBounds(0.0F, 2 * f, 0.0F, 1.0F, 14 * f, 1.0F); + } else { this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + } } @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - - int te = world.getBlockMetadata(x, y, z); - float f = 0.0625F; - - if((te & 8) != 0) - this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); - else - this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); - + setBlockBoundsBasedOnState(world, x, y, z); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafield.java b/src/main/java/com/hbm/blocks/generic/BlockSellafield.java index 2f4a618c3..aea70d140 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafield.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafield.java @@ -8,11 +8,14 @@ import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; +import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; +import com.hbm.render.icon.TextureAtlasSpriteMutatable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -20,15 +23,22 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockSellafield extends BlockHazard { - //Sellafite blocks should probably be entirely metadata, but removing them now might mess with shit - //...Ah, fuck it! Noone cares anyway. + @SideOnly(Side.CLIENT) + protected IIcon[][] icons; + + public static final int SELLAFITE_LEVELS = 6; + public static final int TEXTURE_VARIANTS = 4; + public BlockSellafield(Material mat) { super(mat); this.setCreativeTab(MainRegistry.blockTab); + this.needsRandomTick = true; + this.rad = 0.5F; } @Override @@ -41,22 +51,19 @@ public class BlockSellafield extends BlockHazard { @Override public void updateTick(World world, int x, int y, int z, Random rand) { - - ChunkRadiationManager.proxy.incrementRad(world, x, y, z, this.rad); - + int meta = world.getBlockMetadata(x, y, z); - if(rand.nextInt(meta == 0 ? 30 * 60 : 15 * 60) == 0) { + ChunkRadiationManager.proxy.incrementRad(world, x, y, z, this.rad * (meta + 1)); + + if(rand.nextInt(meta == 0 ? 25 : 15) == 0) { if(meta > 0) world.setBlockMetadataWithNotify(x, y, z, meta - 1, 2); else world.setBlock(x, y, z, ModBlocks.sellafield_slaked); } - - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); } - - @SideOnly(Side.CLIENT) - protected IIcon[] icons; + + @Override public void onBlockAdded(World world, int x, int y, int z) { } @Override public int damageDropped(int meta) { @@ -66,26 +73,62 @@ public class BlockSellafield extends BlockHazard { @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tabs, List list) { - for(byte i = 0; i < 6; i++) { + for(byte i = 0; i < SELLAFITE_LEVELS; i++) { list.add(new ItemStack(item, 1, i)); } } @Override @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - super.registerBlockIcons(iconRegister); - icons = new IIcon[6]; + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + icons = new IIcon[SELLAFITE_LEVELS][TEXTURE_VARIANTS]; + String[] names = new String[] { + RefStrings.MODID + ":sellafield_slaked", + RefStrings.MODID + ":sellafield_slaked_1", + RefStrings.MODID + ":sellafield_slaked_2", + RefStrings.MODID + ":sellafield_slaked_3" + }; - for(byte i = 0; i < 6; i++) - icons[i] = iconRegister.registerIcon(RefStrings.MODID + ":sellafield_" + i); + if(reg instanceof TextureMap) { + TextureMap map = (TextureMap) reg; + + int[][] colors = new int[][] { + {0x4C7939, 0x41463F}, + {0x418223, 0x3E443B}, + {0x338C0E, 0x3B5431}, + {0x1C9E00, 0x394733}, + {0x02B200, 0x37492F}, + {0x00D300, 0x324C26} + }; + + for(int level = 0; level < SELLAFITE_LEVELS; level++) { + int[] tint = colors[level]; + + for(int subtype = 0; subtype < TEXTURE_VARIANTS; subtype++) { + String texName = names[subtype]; + String placeholderName = texName + "-" + level + "-" + subtype; + TextureAtlasSpriteMutatable mutableIcon = new TextureAtlasSpriteMutatable(placeholderName, new RGBMutatorInterpolatedComponentRemap(0x858384, 0x434343, tint[0], tint[1])).setBlockAtlas(); + map.setTextureEntry(placeholderName, mutableIcon); + icons[level][subtype] = mutableIcon; + } + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; + l = l * l * 42317861L + l * 11L; + int i = (int)(l >> 16 & 3L); + int meta = world.getBlockMetadata(x, y, z); + return icons[(int)(Math.abs(meta) % SELLAFITE_LEVELS)][(int)(Math.abs(i) % TEXTURE_VARIANTS)]; } @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { - return this.icons[meta % this.icons.length]; + return this.icons[(int) Math.abs(meta) % this.icons.length][0]; } - - } diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java new file mode 100644 index 000000000..262b2e60e --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java @@ -0,0 +1,108 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.render.block.RenderBlockMultipass; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; + +public class BlockSellafieldOre extends BlockSellafieldSlaked implements IBlockMultiPass { + + public BlockSellafieldOre(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(this.getTextureName()); + super.registerBlockIcons(reg); + } + + @Override + public int getRenderType() { + return IBlockMultiPass.getRenderType(); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + if(RenderBlockMultipass.currentPass == 1) return this.blockIcon; + return super.getIcon(world, x, y, z, side); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + if(RenderBlockMultipass.currentPass == 1) return this.blockIcon; + return icons[0]; + } + + @Override + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) { + if(RenderBlockMultipass.currentPass == 1) return 0xffffff; + return super.colorMultiplier(world, x, y, z); + } + + @Override + public int getPasses() { + return 2; + } + + @Override + public boolean shouldRenderItemMulti() { + return true; + } + + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + if(this == ModBlocks.ore_sellafield_diamond) return Items.diamond; + if(this == ModBlocks.ore_sellafield_emerald) return Items.emerald; + if(this == ModBlocks.ore_sellafield_radgem) return ModItems.gem_rad; + return Item.getItemFromBlock(this); + } + + @Override + public int quantityDropped(Random rand) { + return 1; + } + + @Override + public int quantityDroppedWithBonus(int fortune, Random rand) { + if(fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(0, rand, fortune)) { + int j = rand.nextInt(fortune + 2) - 1; + if(j < 0) j = 0; + return this.quantityDropped(rand) * (j + 1); + } else { + return this.quantityDropped(rand); + } + } + + private Random rand = new Random(); + + @Override + public int getExpDrop(IBlockAccess world, int meta, int fortune) { + if(this.getItemDropped(meta, rand, fortune) != Item.getItemFromBlock(this)) { + int j1 = 0; + + if(this == ModBlocks.ore_sellafield_diamond) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); + if(this == ModBlocks.ore_sellafield_emerald) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); + if(this == ModBlocks.ore_sellafield_radgem) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); + + return j1; + } + return 0; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java new file mode 100644 index 000000000..be264d979 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java @@ -0,0 +1,60 @@ +package com.hbm.blocks.generic; + +import java.awt.Color; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockSellafieldSlaked extends Block { + + public IIcon[] icons; + + public BlockSellafieldSlaked(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; + l = l * l * 42317861L + l * 11L; + int i = (int)(l >> 16 & 3L); + return icons[(int)(Math.abs(i) % icons.length)]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[0]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons = new IIcon[4]; + icons[0] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked"); + icons[1] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_1"); + icons[2] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_2"); + icons[3] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_3"); + } + + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + return Color.HSBtoRGB(0F, 0F, 1F - meta / 15F); + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return this == ModBlocks.sellafield_bedrock ? false : super.canCreatureSpawn(type, world, x, y, z); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java index d0c8bdb22..c6a4994f3 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java @@ -3,32 +3,35 @@ package com.hbm.blocks.generic; import java.util.List; import java.util.Random; +import com.hbm.inventory.gui.GUIScreenSnowglobe; import com.hbm.main.MainRegistry; -import com.hbm.wiaj.WorldInAJar; +import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; +import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class BlockSnowglobe extends BlockContainer { +public class BlockSnowglobe extends BlockContainer implements IGUIProvider { public BlockSnowglobe() { super(Material.glass); @@ -56,31 +59,34 @@ public class BlockSnowglobe extends BlockContainer { @Override public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { - TileEntitySnowglobe entity = (TileEntitySnowglobe) world.getTileEntity(x, y, z); - - if(entity != null) { - return new ItemStack(this, 1, entity.type.ordinal()); - } - + if(entity != null) return new ItemStack(this, 1, entity.type.ordinal()); return super.getPickBlock(target, world, x, y, z, player); } @Override - public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { - if(!world.isRemote) { - TileEntitySnowglobe entity = (TileEntitySnowglobe) world.getTileEntity(x, y, z); - if(entity != null) { - EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); - item.motionX = 0; - item.motionY = 0; - item.motionZ = 0; - world.spawnEntityInWorld(item); + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + if(!world.isRemote) { + TileEntitySnowglobe entity = (TileEntitySnowglobe) world.getTileEntity(x, y, z); + if(entity != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); + item.motionX = 0; + item.motionY = 0; + item.motionZ = 0; + world.spawnEntityInWorld(item); + } } + harvesters.set(null); } - - super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); } @Override @@ -98,9 +104,7 @@ public class BlockSnowglobe extends BlockContainer { @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { - - for(int i = 1; i < SnowglobeType.values().length; i++) - list.add(new ItemStack(item, 1, i)); + for(int i = 1; i < SnowglobeType.values().length; i++) list.add(new ItemStack(item, 1, i)); } @Override @@ -112,6 +116,18 @@ public class BlockSnowglobe extends BlockContainer { bobble.type = SnowglobeType.values()[Math.abs(stack.getItemDamage()) % SnowglobeType.values().length]; bobble.markDirty(); } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + float f = 0.0625F; + this.setBlockBounds(4F * f, 0.0F, 4F * f, 1.0F - 4F * f, 0.3125F, 1.0F - 4F * f); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } @Override public TileEntity createNewTileEntity(World world, int meta) { @@ -153,23 +169,30 @@ public class BlockSnowglobe extends BlockContainer { } public static enum SnowglobeType { - NONE("NONE", new WorldInAJar(1, 1, 1)), - TEST("Test", getTestJar()); + NONE( "NONE", null), + RIVETCITY( "Rivet City", "Welcome to Rivet City. Please wait while the bridge extends."), + TENPENNYTOWER( "Tenpenny Tower", "Tenpenny Tower is the brainchild of Allistair Tenpenny, a British refugee who came to the Capital Wasteland seeking his fortune."), + LUCKY38( "Lucky 38", "My guess? Leads to a big cashout at some casino - and if the \"38\" on it is any indication... well... Lucky 38 it is."), + SIERRAMADRE( "Sierra Madre", "It's the moment you've been waiting for, the reason we're all here - the Gala Event, the Grand Opening of the Sierra Madre Casino."), + PRYDWEN( "The Prydwen", "People of the Commonwealth. Do not interfere. Our intentions are peaceful. We are the Brotherhood of Steel."); public String label; - public WorldInAJar scene; + public String inscription; - private SnowglobeType(String label, WorldInAJar scene) { + private SnowglobeType(String label, String inscription) { this.label = label; - this.scene = scene; + this.inscription = inscription; } } - - private static WorldInAJar getTestJar() { - WorldInAJar world = new WorldInAJar(3, 3, 3); - for(int x = 0; x < 3; x++) for(int z = 0; z < 3; z++) world.setBlock(x, 0, z, Blocks.brick_block, 0); - world.setBlock(1, 1, 1, Blocks.gold_block, 0); - world.setBlock(1, 2, 1, Blocks.gold_block, 0); - return world; + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIScreenSnowglobe((TileEntitySnowglobe) world.getTileEntity(x, y, z)); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockSpeedyStairs.java b/src/main/java/com/hbm/blocks/generic/BlockSpeedyStairs.java new file mode 100644 index 000000000..2a9bfb8d8 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockSpeedyStairs.java @@ -0,0 +1,39 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.IStepTickReceiver; +import com.hbm.blocks.ITooltipProvider; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import java.util.List; + +public class BlockSpeedyStairs extends BlockGenericStairs implements IStepTickReceiver, ITooltipProvider { + + double speed; + + public BlockSpeedyStairs(Block block, int meta, double speed) { + super(block, meta); + this.speed = speed; + } + + @Override + public void onPlayerStep(World world, int x, int y, int z, EntityPlayer player) { + + if(!world.isRemote) + return; + + if(player.moveForward != 0 || player.moveStrafing != 0) { + player.motionX *= speed; + player.motionZ *= speed; + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.BLUE + "Increases speed by " + (MathHelper.floor_double((speed - 1) * 100)) + "%"); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockStalagmite.java b/src/main/java/com/hbm/blocks/generic/BlockStalagmite.java index f8beed00c..5db100280 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStalagmite.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStalagmite.java @@ -1,5 +1,6 @@ package com.hbm.blocks.generic; +import java.util.ArrayList; import java.util.Random; import com.hbm.blocks.BlockEnumMulti; @@ -10,6 +11,7 @@ import com.hbm.items.ModItems; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -45,11 +47,6 @@ public class BlockStalagmite extends BlockEnumMulti { return null; } - - @Override - public int damageDropped(int meta) { - return 0; - } public static int getMetaFromResource(int meta) { return meta; @@ -75,4 +72,10 @@ public class BlockStalagmite extends BlockEnumMulti { public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { return null; } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + return ModBlocks.getDropsWithoutDamage(world, this, metadata, fortune); + } + } diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 4b5caa4c0..718f26c54 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -1,9 +1,12 @@ package com.hbm.blocks.generic; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Random; import com.hbm.blocks.IBlockMulti; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemLock; @@ -36,7 +39,7 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class BlockStorageCrate extends BlockContainer implements IBlockMulti { +public class BlockStorageCrate extends BlockContainer implements IBlockMulti, ITooltipProvider { @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -72,6 +75,9 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); } + if(this == ModBlocks.crate_template) { + this.iconTop = this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crate_template"); + } } @Override @@ -90,6 +96,7 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti { if(this == ModBlocks.crate_steel) return new TileEntityCrateSteel(); if(this == ModBlocks.crate_desh) return new TileEntityCrateDesh(); if(this == ModBlocks.crate_tungsten) return new TileEntityCrateTungsten(); + if(this == ModBlocks.crate_template) return new TileEntityCrateTemplate(); if(this == ModBlocks.safe) return new TileEntitySafe(); return null; } @@ -278,4 +285,35 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti { public int getComparatorInputOverride(World world, int x, int y, int z, int side) { return Container.calcRedstoneFromInventory((IInventory) world.getTileEntity(x, y, z)); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + if(stack.hasTagCompound()) { + + List contents = new ArrayList(); + int amount = 0; + + for(int i = 0; i < 100; i++) { //whatever the biggest container is, i can't be bothered to check + ItemStack content = ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i)); + + if(content != null) { + amount++; + + if(contents.size() < 10) { + contents.add(EnumChatFormatting.AQUA + " - " + content.getDisplayName() + (content.stackSize > 1 ? (" x" + content.stackSize) : "")); + } + } + } + + if(!contents.isEmpty()) { + list.add(EnumChatFormatting.AQUA + "Contains:"); + list.addAll(contents); + amount -= contents.size(); + + if(amount > 0) { + list.add(EnumChatFormatting.AQUA + "...and " + amount + " more."); + } + } + } + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockSupplyCrate.java b/src/main/java/com/hbm/blocks/generic/BlockSupplyCrate.java new file mode 100644 index 000000000..961032204 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockSupplyCrate.java @@ -0,0 +1,130 @@ +package com.hbm.blocks.generic; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import com.hbm.items.ModItems; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockSupplyCrate extends BlockContainer { + + public BlockSupplyCrate(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntitySupplyCrate(); + } + + @Override public int getRenderType() { return BlockCanCrate.renderID; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override public Item getItemDropped(int i, Random rand, int j) { return null; } + + @Override + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { + + if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest) { + + ItemStack drop = new ItemStack(this); + TileEntitySupplyCrate inv = (TileEntitySupplyCrate) world.getTileEntity(x, y, z); + NBTTagCompound nbt = new NBTTagCompound(); + + if(inv != null) { + for(int i = 0; i < inv.items.size(); i++) { + ItemStack stack = inv.items.get(i); + if(stack == null) continue; + NBTTagCompound slot = new NBTTagCompound(); + stack.writeToNBT(slot); + nbt.setTag("slot" + i, slot); + } + nbt.setInteger("amount", inv.items.size()); + } + + if(!nbt.hasNoTags()) drop.stackTagCompound = nbt; + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, drop)); + } + return world.setBlockToAir(x, y, z); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + + TileEntitySupplyCrate inv = (TileEntitySupplyCrate) world.getTileEntity(x, y, z); + + if(inv != null && stack.hasTagCompound()) { + int amount = stack.stackTagCompound.getInteger("amount"); + for(int i = 0; i < amount; i++) { + inv.items.add(ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i))); + } + } + + super.onBlockPlacedBy(world, x, y, z, player, stack); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.func_147480_a(x, y, z, false); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; + } + return false; + } + + public void dropContents(World world, int x, int y, int z) { + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof TileEntitySupplyCrate) { + TileEntitySupplyCrate crate = (TileEntitySupplyCrate) tile; + + for(ItemStack item : crate.items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + } + + public static class TileEntitySupplyCrate extends TileEntity { + + public List items = new ArrayList(); + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + items.clear(); + NBTTagList list = nbt.getTagList("items", 10); + for(int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + items.add(ItemStack.loadItemStackFromNBT(nbt1)); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + NBTTagList list = new NBTTagList(); + for(int i = 0; i < items.size(); i++) { + NBTTagCompound nbt1 = new NBTTagCompound(); + items.get(i).writeToNBT(nbt1); + list.appendTag(nbt1); + } + nbt.setTag("items", list); + } + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java index a4c146f6a..46bb571e5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java +++ b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java @@ -13,7 +13,6 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.MetaBlock; import com.hbm.inventory.RecipesCommon.OreDictStack; -import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.Tuple.Pair; @@ -135,7 +134,8 @@ public class BlockToolConversion extends BlockMulti implements IToolable, ILookO } if(!materials.isEmpty()) { - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + int meta = world.getBlockMetadata(x, y, z); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName(new ItemStack(this, 1, meta)) + ".name"), 0xffff00, 0x404000, text); } } @@ -151,8 +151,10 @@ public class BlockToolConversion extends BlockMulti implements IToolable, ILookO public static HashMap, Pair> conversions = new HashMap(); public static void registerRecipes() { - conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new ComparableStack(ModItems.bolt_dura_steel, 4)}, new MetaBlock(ModBlocks.watz_end, 1))); + conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.DURA.bolt(), 4)}, new MetaBlock(ModBlocks.watz_end, 1))); conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.fusion_conductor, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast())}, new MetaBlock(ModBlocks.fusion_conductor, 1))); + conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.icf_component, 1)), new Pair(new AStack[] {new OreDictStack(OreDictManager.ANY_BISMOIDBRONZE.plateCast())}, new MetaBlock(ModBlocks.icf_component, 2))); + conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.icf_component, 3)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast()), new OreDictStack(OreDictManager.DURA.bolt(), 4)}, new MetaBlock(ModBlocks.icf_component, 4))); } public static HashMap bufferedRecipes = new HashMap(); diff --git a/src/main/java/com/hbm/blocks/generic/DecoBlock.java b/src/main/java/com/hbm/blocks/generic/DecoBlock.java index ee8dbf8be..9037b4f6a 100644 --- a/src/main/java/com/hbm/blocks/generic/DecoBlock.java +++ b/src/main/java/com/hbm/blocks/generic/DecoBlock.java @@ -1,15 +1,21 @@ package com.hbm.blocks.generic; +import java.util.ArrayList; +import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.tileentity.deco.TileEntityBomber; import com.hbm.tileentity.deco.TileEntityDecoBlock; +import api.hbm.block.IToolable; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -18,7 +24,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class DecoBlock extends BlockContainer { +public class DecoBlock extends BlockContainer implements IToolable { Random rand = new Random(); @@ -26,26 +32,46 @@ public class DecoBlock extends BlockContainer { super(p_i45386_1_); } + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if(tool != ToolType.SCREWDRIVER) return false; + if(this != ModBlocks.steel_wall && this != ModBlocks.steel_corner) return false; + + int meta = world.getBlockMetadata(x, y, z); + + if(!player.isSneaking()) { + if(meta == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 3); + else if(meta == 4) world.setBlockMetadataWithNotify(x, y, z, 2, 3); + else if(meta == 2) world.setBlockMetadataWithNotify(x, y, z, 5, 3); + else if(meta == 5) world.setBlockMetadataWithNotify(x, y, z, 3, 3); + } else { + if(meta == 3) world.setBlockMetadataWithNotify(x, y, z, 5, 3); + else if(meta == 4) world.setBlockMetadataWithNotify(x, y, z, 3, 3); + else if(meta == 2) world.setBlockMetadataWithNotify(x, y, z, 4, 3); + else if(meta == 5) world.setBlockMetadataWithNotify(x, y, z, 2, 3); + } + + return true; + } + + @Override @SideOnly(Side.CLIENT) public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { return true; } + @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - - if(this == ModBlocks.bomber) - return new TileEntityBomber(); - - if(this == ModBlocks.steel_scaffold || this == ModBlocks.steel_beam) - return null; - + if(this == ModBlocks.steel_scaffold || this == ModBlocks.steel_beam || this == ModBlocks.steel_wall || this == ModBlocks.steel_corner) return null; return new TileEntityDecoBlock(); } - public static int renderIDBeam = RenderingRegistry.getNextAvailableRenderId(); + public static int renderIDBeam = RenderingRegistry.getNextAvailableRenderId(); + public static int renderIDWall = RenderingRegistry.getNextAvailableRenderId(); + public static int renderIDCorner = RenderingRegistry.getNextAvailableRenderId(); @Override public int getRenderType(){ - if(this == ModBlocks.steel_beam) - return renderIDBeam; - else - return -1; + if(this == ModBlocks.steel_wall) return renderIDWall; + if(this == ModBlocks.steel_corner) return renderIDCorner; + if(this == ModBlocks.steel_beam) return renderIDBeam; + return -1; } @Override @@ -59,158 +85,100 @@ public class DecoBlock extends BlockContainer { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - if(this == ModBlocks.bomber) - return null; - return Item.getItemFromBlock(this); - } + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return Item.getItemFromBlock(this); + } @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 5, 2); } @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) - { - int te = p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_); - float f = 0.0625F; - - if(this == ModBlocks.steel_wall) - { - switch(te) - { - case 4: - this.setBlockBounds(14*f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - break; - case 2: - this.setBlockBounds(0.0F, 0.0F, 14*f, 1.0F, 1.0F, 1.0F); - break; - case 5: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 2*f, 1.0F, 1.0F); - break; - case 3: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2*f); - break; + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + int te = world.getBlockMetadata(x, y, z); + float f = 0.0625F; + + if(this == ModBlocks.steel_wall) { + switch(te) { + case 4: this.setBlockBounds(14 * f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); break; + case 2: this.setBlockBounds(0.0F, 0.0F, 14 * f, 1.0F, 1.0F, 1.0F); break; + case 5: this.setBlockBounds(0.0F, 0.0F, 0.0F, 2 * f, 1.0F, 1.0F); break; + case 3: this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2 * f); break; } - } - - if(this == ModBlocks.steel_corner) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - - if(this == ModBlocks.steel_roof) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1*f, 1.0F); - } - - if(this == ModBlocks.steel_beam) - { - this.setBlockBounds(7*f, 0.0F, 7*f, 9*f, 1.0F, 9*f); - } - - if(this == ModBlocks.steel_scaffold) - { - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - switch(te) - { - case 4: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; - case 2: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; - case 5: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; - case 3: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; + } + + if(this == ModBlocks.steel_corner) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + if(this == ModBlocks.steel_roof) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1 * f, 1.0F); + } + + if(this == ModBlocks.steel_beam) { + this.setBlockBounds(7 * f, 0.0F, 7 * f, 9 * f, 1.0F, 9 * f); + } + + if(this == ModBlocks.steel_scaffold) { + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + switch(te) { + case 4: this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); break; + case 2: this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); break; + case 5: this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); break; + case 3: this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); break; } - } - - //this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - + } + } + @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - - int te = world.getBlockMetadata(x, y, z); - float f = 0.0625F; - - if(this == ModBlocks.steel_wall) - { - switch(te) - { - case 4: - this.setBlockBounds(14*f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - break; - case 2: - this.setBlockBounds(0.0F, 0.0F, 14*f, 1.0F, 1.0F, 1.0F); - break; - case 5: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 2*f, 1.0F, 1.0F); - break; - case 3: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2*f); - break; - } - } - - if(this == ModBlocks.steel_corner) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - - if(this == ModBlocks.steel_roof) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1*f, 1.0F); - } - - if(this == ModBlocks.steel_beam) - { - this.setBlockBounds(7*f, 0.0F, 7*f, 9*f, 1.0F, 9*f); - } - - if(this == ModBlocks.steel_scaffold) - { - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - switch(te) - { - case 4: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; - case 2: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; - case 5: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; - case 3: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; - } - } - + this.setBlockBoundsBasedOnState(world, x, y, z); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } + + @Override + public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB aabb, List list, Entity collider) { + + if(this == ModBlocks.steel_corner) { + int meta = world.getBlockMetadata(x, y, z); + List bbs = new ArrayList(); + + switch(meta) { + case 2: + bbs.add(AxisAlignedBB.getBoundingBox(x + 0.25D, y + 0D, z + 0.875D, x + 1D, y + 1D, z + 1D)); + bbs.add(AxisAlignedBB.getBoundingBox(x + 0D, y + 0D, z + 0.75D, x + 0.25D, y + 1D, z + 1D)); + bbs.add(AxisAlignedBB.getBoundingBox(x + 0D, y + 0D, z + 0D, x + 0.125D, y + 1D, z + 0.75D)); + break; + case 3: + bbs.add(AxisAlignedBB.getBoundingBox(x + 0D, y + 0D, z + 0D, x + 0.75D, y + 1D, z + 0.125D)); + bbs.add(AxisAlignedBB.getBoundingBox(x + 0.75D, y + 0D, z + 0D, x + 1D, y + 1D, z + 0.25D)); + bbs.add(AxisAlignedBB.getBoundingBox(x + 0.875D, y + 0D, z + 0.25D, x + 1D, y + 1D, z + 1D)); + break; + case 4: + bbs.add(AxisAlignedBB.getBoundingBox(x + 0.875D, y + 0D, z + 0D, x + 1D, y + 1D, z + 0.75D)); + bbs.add(AxisAlignedBB.getBoundingBox(x + 0.75D, y + 0D, z + 0.75D, x + 1D, y + 1D, z + 1D)); + bbs.add(AxisAlignedBB.getBoundingBox(x + 0D, y + 0D, z + 0.875D, x + 0.75D, y + 1D, z + 1D)); + break; + case 5: + bbs.add(AxisAlignedBB.getBoundingBox(x + 0D, y + 0D, z + 0.25D, x + 0.125D, y + 1D, z + 1D)); + bbs.add(AxisAlignedBB.getBoundingBox(x + 0D, y + 0D, z + 0D, x + 0.25D, y + 1D, z + 0.25D)); + bbs.add(AxisAlignedBB.getBoundingBox(x + 0.25D, y + 0D, z + 0D, x + 1D, y + 1D, z + 0.125D)); + break; + } + + for(AxisAlignedBB bb : bbs) { + if(aabb.intersectsWith(bb)) { + list.add(bb); + } + } + } else { + super.addCollisionBoxesToList(world, x, y, z, aabb, list, collider); + } + } } diff --git a/src/main/java/com/hbm/blocks/generic/DecoBlockAlt.java b/src/main/java/com/hbm/blocks/generic/DecoBlockAlt.java index 4e7d7657f..980433dc0 100644 --- a/src/main/java/com/hbm/blocks/generic/DecoBlockAlt.java +++ b/src/main/java/com/hbm/blocks/generic/DecoBlockAlt.java @@ -1,14 +1,9 @@ package com.hbm.blocks.generic; -import java.util.Random; - import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.deco.TileEntityDecoBlockAlt; import com.hbm.tileentity.deco.TileEntityDecoBlockAltF; -import com.hbm.tileentity.deco.TileEntityDecoBlockAltG; -import com.hbm.tileentity.deco.TileEntityDecoBlockAltW; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -17,7 +12,6 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -34,28 +28,14 @@ public class DecoBlockAlt extends BlockContainer { @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - //this.blockIcon = iconRegister.registerIcon("stone"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":code"); } @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - if(this == ModBlocks.statue_elb) - return new TileEntityDecoBlockAlt(); - if(this == ModBlocks.statue_elb_g) - return new TileEntityDecoBlockAltG(); - if(this == ModBlocks.statue_elb_w) - return new TileEntityDecoBlockAltW(); - if(this == ModBlocks.statue_elb_f) - return new TileEntityDecoBlockAltF(); + if(this == ModBlocks.statue_elb_f) return new TileEntityDecoBlockAltF(); return null; } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.statue_elb); - } @Override public int getRenderType(){ @@ -75,83 +55,34 @@ public class DecoBlockAlt extends BlockContainer { @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { - if(player.getCurrentEquippedItem() != null) - { - if(this == ModBlocks.statue_elb) - { - if(player.getCurrentEquippedItem().getItem() == ModItems.gun_revolver_cursed) - { - world.setBlock(x, y, z, ModBlocks.statue_elb_g, world.getBlockMetadata(x, y, z), 2); - - if (!player.capabilities.isCreativeMode) - { - --player.getCurrentEquippedItem().stackSize; - } - return true; - } + } else if(!player.isSneaking()) { + + if(player.getCurrentEquippedItem() != null) { + boolean cracked = player.getHeldItem().getItem() == ModItems.key_red_cracked; - if(player.getCurrentEquippedItem().getItem() == ModItems.watch) - { - world.setBlock(x, y, z, ModBlocks.statue_elb_w, world.getBlockMetadata(x, y, z), 2); - - if (!player.capabilities.isCreativeMode) - { - --player.getCurrentEquippedItem().stackSize; - } - return true; - } - } - if(this == ModBlocks.statue_elb_g) - { - if(player.getCurrentEquippedItem().getItem() == ModItems.watch) - { - world.setBlock(x, y, z, ModBlocks.statue_elb_f, world.getBlockMetadata(x, y, z), 2); - - if (!player.capabilities.isCreativeMode) - { - --player.getCurrentEquippedItem().stackSize; - } - return true; - } - } - if(this == ModBlocks.statue_elb_w) - { - if(player.getCurrentEquippedItem().getItem() == ModItems.gun_revolver_cursed) - { - world.setBlock(x, y, z, ModBlocks.statue_elb_f, world.getBlockMetadata(x, y, z), 2); - - if (!player.capabilities.isCreativeMode) - { - --player.getCurrentEquippedItem().stackSize; - } - return true; - } + if((player.getHeldItem().getItem() == ModItems.key_red || cracked)) { + if(cracked) player.getHeldItem().stackSize--; + world.func_147480_a(x, y, z, true); + return true; } } } @@ -159,17 +90,15 @@ public class DecoBlockAlt extends BlockContainer { } @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) - { - float f = 0.0625F; - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - float f = 0.0625F; - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { + float f = 0.0625F; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8 * f, 1.0F); } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + float f = 0.0625F; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8 * f, 1.0F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } } diff --git a/src/main/java/com/hbm/blocks/generic/Guide.java b/src/main/java/com/hbm/blocks/generic/Guide.java index 744a2d9cd..0a9861157 100644 --- a/src/main/java/com/hbm/blocks/generic/Guide.java +++ b/src/main/java/com/hbm/blocks/generic/Guide.java @@ -120,87 +120,11 @@ public class Guide extends Block implements ILookOverlay { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote && !player.isSneaking()) { - for(int i = 0; i < 10; i++) { - MainRegistry.proxy.openLink(/*"https://ntm.fandom.com/wiki/HBM%27s_Nuclear_Tech_Wiki"*/ "https://www.youtube.com/watch?v=dQw4w9WgXcQ"); - MainRegistry.proxy.openLink("https://gist.githubusercontent.com/HbmMods/ce11ffd908e98d4159f89011aca5c0b1/raw/5cbb1afdca06648319ee4293516f3c5f7cc448ca/go%2520fuck%2520yourself"); - } + MainRegistry.proxy.openLink("https://nucleartech.wiki/wiki/Main_Page"); return true; } return super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ); - - /*if(!player.isSneaking()) - { - - ItemStack book1 = new ItemStack(Items.written_book); - book1.stackTagCompound = new NBTTagCompound(); - book1.stackTagCompound.setString("author", "HbMinecraft"); - book1.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 1: Resources"); - NBTTagList pages1 = new NBTTagList(); - - for(String s : Library.book1) { - pages1.appendTag(new NBTTagString(s)); - } - - book1.stackTagCompound.setTag("pages", pages1); - player.inventory.addItemStackToInventory(book1); - - ItemStack book2 = new ItemStack(Items.written_book); - book2.stackTagCompound = new NBTTagCompound(); - book2.stackTagCompound.setString("author", "HbMinecraft"); - book2.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 2: Machines"); - NBTTagList pages2 = new NBTTagList(); - - for(String s : Library.book2) { - pages2.appendTag(new NBTTagString(s)); - } - - book2.stackTagCompound.setTag("pages", pages2); - player.inventory.addItemStackToInventory(book2); - - ItemStack book3 = new ItemStack(Items.written_book); - book3.stackTagCompound = new NBTTagCompound(); - book3.stackTagCompound.setString("author", "HbMinecraft"); - book3.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 3: Bombs"); - NBTTagList pages3 = new NBTTagList(); - - for(String s : Library.book3) { - pages3.appendTag(new NBTTagString(s)); - } - - book3.stackTagCompound.setTag("pages", pages3); - player.inventory.addItemStackToInventory(book3); - - ItemStack book4 = new ItemStack(Items.written_book); - book4.stackTagCompound = new NBTTagCompound(); - book4.stackTagCompound.setString("author", "HbMinecraft"); - book4.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 4: Missiles"); - NBTTagList pages4 = new NBTTagList(); - - for(String s : Library.book4) { - pages4.appendTag(new NBTTagString(s)); - } - - book4.stackTagCompound.setTag("pages", pages4); - player.inventory.addItemStackToInventory(book4); - - ItemStack book5 = new ItemStack(Items.written_book); - book5.stackTagCompound = new NBTTagCompound(); - book5.stackTagCompound.setString("author", "HbMinecraft"); - book5.stackTagCompound.setString("title", "Hbm's Nuclear Tech Mod Part 5: Misc"); - NBTTagList pages5 = new NBTTagList(); - - for(String s : Library.book5) { - pages5.appendTag(new NBTTagString(s)); - } - - book5.stackTagCompound.setTag("pages", pages5); - player.inventory.addItemStackToInventory(book5); - - return true; - } else { - return false; - }*/ } @Override diff --git a/src/main/java/com/hbm/blocks/generic/HEVBattery.java b/src/main/java/com/hbm/blocks/generic/HEVBattery.java index dbaa4f89d..388728e79 100644 --- a/src/main/java/com/hbm/blocks/generic/HEVBattery.java +++ b/src/main/java/com/hbm/blocks/generic/HEVBattery.java @@ -3,7 +3,7 @@ package com.hbm.blocks.generic; import com.hbm.items.armor.ArmorFSB; import com.hbm.items.armor.ArmorFSBPowered; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -67,7 +67,7 @@ public class HEVBattery extends Block { if(st.getItem() instanceof IBatteryItem) { - long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(); + long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(st); long charge = ((IBatteryItem) st.getItem()).getCharge(st); long newcharge = Math.min(charge + 150000, maxcharge); diff --git a/src/main/java/com/hbm/blocks/generic/PartEmitter.java b/src/main/java/com/hbm/blocks/generic/PartEmitter.java index db823972c..771c9e37d 100644 --- a/src/main/java/com/hbm/blocks/generic/PartEmitter.java +++ b/src/main/java/com/hbm/blocks/generic/PartEmitter.java @@ -3,8 +3,8 @@ package com.hbm.blocks.generic; import java.util.List; import com.hbm.blocks.ITooltipProvider; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ParticleUtil; import api.hbm.block.IToolable; diff --git a/src/main/java/com/hbm/blocks/generic/RedBarrel.java b/src/main/java/com/hbm/blocks/generic/RedBarrel.java index 6e330979e..857cb7b55 100644 --- a/src/main/java/com/hbm/blocks/generic/RedBarrel.java +++ b/src/main/java/com/hbm/blocks/generic/RedBarrel.java @@ -3,65 +3,23 @@ package com.hbm.blocks.generic; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockDetonatable; import com.hbm.blocks.bomb.BlockTaint; import com.hbm.blocks.machine.BlockFluidBarrel; +import com.hbm.entity.item.EntityTNTPrimedBase; import com.hbm.explosion.ExplosionThermo; -import net.minecraft.block.Block; + import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.Explosion; +import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class RedBarrel extends Block { +public class RedBarrel extends BlockDetonatable { - public RedBarrel(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - public void onBlockDestroyedByExplosion(World p_149723_1_, int p_149723_2_, int p_149723_3_, int p_149723_4_, Explosion p_149723_5_) { - if(!p_149723_1_.isRemote) { - explode(p_149723_1_, p_149723_2_, p_149723_3_, p_149723_4_); - } - } - - @Override - public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) { - if((this == ModBlocks.red_barrel || this == ModBlocks.pink_barrel) && p_149695_1_.getBlock(x + 1, y, z) == Blocks.fire || p_149695_1_.getBlock(x - 1, y, z) == Blocks.fire || p_149695_1_.getBlock(x, y + 1, z) == Blocks.fire || p_149695_1_.getBlock(x, y - 1, z) == Blocks.fire || p_149695_1_.getBlock(x, y, z + 1) == Blocks.fire || p_149695_1_.getBlock(x, y, z - 1) == Blocks.fire) { - if(!p_149695_1_.isRemote) - explode(p_149695_1_, x, y, z); - } - } - - public void explode(World p_149695_1_, int x, int y, int z) { - - if(this == ModBlocks.red_barrel || this == ModBlocks.pink_barrel) - p_149695_1_.newExplosion((Entity) null, x + 0.5F, y + 0.5F, z + 0.5F, 2.5F, true, true); - - if(this == ModBlocks.lox_barrel) { - - p_149695_1_.newExplosion(null, x + 0.5F, y + 0.5F, z + 0.5F, 1F, false, false); - - ExplosionThermo.freeze(p_149695_1_, x, y, z, 7); - } - - if(this == ModBlocks.taint_barrel) { - - p_149695_1_.newExplosion(null, x + 0.5F, y + 0.5F, z + 0.5F, 1F, false, false); - - Random rand = p_149695_1_.rand; - for(int i = 0; i < 100; i++) { - int a = rand.nextInt(9) - 4 + x; - int b = rand.nextInt(9) - 4 + y; - int c = rand.nextInt(9) - 4 + z; - if(p_149695_1_.getBlock(a, b, c).isReplaceable(p_149695_1_, a, b, c) && BlockTaint.hasPosNeightbour(p_149695_1_, a, b, c)) { - p_149695_1_.setBlock(a, b, c, ModBlocks.taint, rand.nextInt(3) + 4, 2); - } - } - } + // Flammable barrels also explode when shot + public RedBarrel(Material material, boolean flammable) { + super(material, flammable ? 2 : 0, flammable ? 15 : 0, 100, true, flammable); } @Override @@ -80,7 +38,7 @@ public class RedBarrel extends Block { } @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { + public void setBlockBoundsBasedOnState(IBlockAccess access, int x, int y, int z) { float f = 0.0625F; this.setBlockBounds(2 * f, 0.0F, 2 * f, 14 * f, 1.0F, 14 * f); } @@ -93,8 +51,28 @@ public class RedBarrel extends Block { } @Override - public boolean canDropFromExplosion(Explosion p_149659_1_) { - return false; + public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { + int ix = MathHelper.floor_double(x), iy = MathHelper.floor_double(y), iz = MathHelper.floor_double(z); + + if(this == ModBlocks.red_barrel || this == ModBlocks.pink_barrel) { + world.newExplosion(entity, x, y, z, 2.5F, true, true); + } else if(this == ModBlocks.lox_barrel) { + world.newExplosion(entity, x, y, z, 1F, false, false); + + ExplosionThermo.freeze(world, ix, iy, iz, 7); + } else if(this == ModBlocks.taint_barrel) { + world.newExplosion(entity, x, y, z, 1F, false, false); + + Random rand = world.rand; + for(int i = 0; i < 100; i++) { + int a = rand.nextInt(9) - 4 + ix; + int b = rand.nextInt(9) - 4 + iy; + int c = rand.nextInt(9) - 4 + iz; + if(world.getBlock(a, b, c).isReplaceable(world, a, b, c) && BlockTaint.hasPosNeightbour(world, a, b, c)) { + world.setBlock(a, b, c, ModBlocks.taint, rand.nextInt(3) + 4, 2); + } + } + } } } diff --git a/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java b/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java index b2de460b3..e589e35d8 100644 --- a/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java +++ b/src/main/java/com/hbm/blocks/generic/ReinforcedLamp.java @@ -77,27 +77,13 @@ public class ReinforcedLamp extends Block { return new ItemStack(getOff()); } - private Block getOff() { - - if(this == ModBlocks.reinforced_lamp_on) - return ModBlocks.reinforced_lamp_off; - if(this == ModBlocks.lamp_tritium_green_on) - return ModBlocks.lamp_tritium_green_off; - if(this == ModBlocks.lamp_tritium_blue_on) - return ModBlocks.lamp_tritium_blue_off; - + protected Block getOff() { + if(this == ModBlocks.reinforced_lamp_on) return ModBlocks.reinforced_lamp_off; return this; } - private Block getOn() { - - if(this == ModBlocks.reinforced_lamp_off) - return ModBlocks.reinforced_lamp_on; - if(this == ModBlocks.lamp_tritium_green_off) - return ModBlocks.lamp_tritium_green_on; - if(this == ModBlocks.lamp_tritium_blue_off) - return ModBlocks.lamp_tritium_blue_on; - + protected Block getOn() { + if(this == ModBlocks.reinforced_lamp_off) return ModBlocks.reinforced_lamp_on; return this; } } diff --git a/src/main/java/com/hbm/blocks/generic/TritiumLamp.java b/src/main/java/com/hbm/blocks/generic/TritiumLamp.java new file mode 100644 index 000000000..77118915f --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/TritiumLamp.java @@ -0,0 +1,117 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.blocks.ISpotlight; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.Spotlight; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TritiumLamp extends Block implements ISpotlight { + + private final boolean isOn; + + public TritiumLamp(Material mat, boolean isOn) { + super(mat); + this.isOn = isOn; + + if(isOn) { + this.setLightLevel(1.0F); + } + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + + if(!world.isRemote) { + + if(this.isOn && !world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.scheduleBlockUpdate(x, y, z, this, 4); + + } else if(!this.isOn && world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.setBlock(x, y, z, getOn(), 0, 2); + } + + updateBeam(world, x, y, z); + } + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block b) { + + if(!world.isRemote) { + + if(this.isOn && !world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.scheduleBlockUpdate(x, y, z, this, 4); + + } else if(!this.isOn && world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.setBlock(x, y, z, getOn(), 0, 2); + } + + updateBeam(world, x, y, z); + } + } + + @Override + public void updateTick(World world, int x, int y, int z, Random p_149674_5_) { + + if(!world.isRemote && this.isOn && !world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.setBlock(x, y, z, getOff(), 0, 2); + } + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { + super.breakBlock(world, x, y, z, block, metadata); + if(world.isRemote) return; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) Spotlight.unpropagateBeam(world, x, y, z, dir); + } + + private void updateBeam(World world, int x, int y, int z) { + if(!isOn) return; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) Spotlight.propagateBeam(world, x, y, z, dir, getBeamLength()); + } + + @Override + public Item getItemDropped(int i, Random r, int j) { + return Item.getItemFromBlock(getOff()); + } + + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + return Item.getItemFromBlock(getOff()); + } + + @Override + protected ItemStack createStackedBlock(int e) { + return new ItemStack(getOff()); + } + + protected Block getOff() { + if(this == ModBlocks.lamp_tritium_green_on) return ModBlocks.lamp_tritium_green_off; + if(this == ModBlocks.lamp_tritium_blue_on) return ModBlocks.lamp_tritium_blue_off; + return this; + } + + protected Block getOn() { + if(this == ModBlocks.lamp_tritium_green_off) return ModBlocks.lamp_tritium_green_on; + if(this == ModBlocks.lamp_tritium_blue_off) return ModBlocks.lamp_tritium_blue_on; + return this; + } + + @Override + public int getBeamLength() { + return 8; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/WasteEarth.java b/src/main/java/com/hbm/blocks/generic/WasteEarth.java index 6c2558ece..e38f5d9d2 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteEarth.java +++ b/src/main/java/com/hbm/blocks/generic/WasteEarth.java @@ -129,29 +129,31 @@ public class WasteEarth extends Block { if(this == ModBlocks.burning_earth) { - for(int i = -1; i < 2; i++) { - for(int j = -1; j < 2; j++) { - for(int k = -1; k < 2; k++) { - - if(!world.blockExists(x + i, y + j, z + k)) continue; - - Block b0 = world.getBlock(x + i, y + j, z + k); - Block b1 = world.getBlock(x + i, y + j + 1, z + k); - - if(!b1.isOpaqueCube() && - ((b0 == Blocks.grass || b0 == Blocks.mycelium || b0 == ModBlocks.waste_earth || - b0 == ModBlocks.frozen_grass || b0 == ModBlocks.waste_mycelium) - && !world.canLightningStrikeAt(x, y, z))) { - world.setBlock(x + i, y + j, z + k, ModBlocks.burning_earth); - } - if((b0 instanceof BlockLeaves || b0 instanceof BlockBush)) { - world.setBlockToAir(x + i, y + j, z + k); - } - if(b0 == ModBlocks.frozen_dirt) { - world.setBlock(x + i, y + j, z + k, Blocks.dirt); - } - if(b1.isFlammable(world, x, y, z, ForgeDirection.UP) && !(b1 instanceof BlockLeaves || b1 instanceof BlockBush) && world.getBlock(x, y + 1, z) == Blocks.air) { - world.setBlock(x, y + 1, z, Blocks.fire); + if(rand.nextInt(5) == 0) { + for(int i = -1; i < 2; i++) { + for(int j = -1; j < 2; j++) { + for(int k = -1; k < 2; k++) { + + if(!world.blockExists(x + i, y + j, z + k)) continue; + + Block b0 = world.getBlock(x + i, y + j, z + k); + Block b1 = world.getBlock(x + i, y + j + 1, z + k); + + if(!b1.isOpaqueCube() && + ((b0 == Blocks.grass || b0 == Blocks.mycelium || b0 == ModBlocks.waste_earth || + b0 == ModBlocks.frozen_grass || b0 == ModBlocks.waste_mycelium) + && !world.canLightningStrikeAt(x, y, z))) { + world.setBlock(x + i, y + j, z + k, ModBlocks.burning_earth); + } + if((b0 instanceof BlockLeaves || b0 instanceof BlockBush)) { + world.setBlockToAir(x + i, y + j, z + k); + } + if(b0 == ModBlocks.frozen_dirt) { + world.setBlock(x + i, y + j, z + k, Blocks.dirt); + } + if(b1.isFlammable(world, x, y, z, ForgeDirection.UP) && !(b1 instanceof BlockLeaves || b1 instanceof BlockBush) && world.getBlock(x, y + 1, z) == Blocks.air) { + world.setBlock(x, y + 1, z, Blocks.fire); + } } } } diff --git a/src/main/java/com/hbm/blocks/generic/YellowBarrel.java b/src/main/java/com/hbm/blocks/generic/YellowBarrel.java index 7824939da..bf0d4baf9 100644 --- a/src/main/java/com/hbm/blocks/generic/YellowBarrel.java +++ b/src/main/java/com/hbm/blocks/generic/YellowBarrel.java @@ -3,12 +3,15 @@ package com.hbm.blocks.generic; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockDetonatable; import com.hbm.blocks.machine.BlockFluidBarrel; +import com.hbm.entity.item.EntityTNTPrimedBase; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.handler.radiation.ChunkRadiationManager; + +import net.minecraft.util.MathHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.util.AxisAlignedBB; @@ -16,40 +19,18 @@ import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class YellowBarrel extends Block { +public class YellowBarrel extends BlockDetonatable { Random rand = new Random(); - public YellowBarrel(Material p_i45386_1_) { - super(p_i45386_1_); + public YellowBarrel(Material material) { + super(material, 0, 0, 100, true, false); } @Override - public void onBlockDestroyedByExplosion(World p_149723_1_, int p_149723_2_, int p_149723_3_, int p_149723_4_, Explosion p_149723_5_) { - if(!p_149723_1_.isRemote && this == ModBlocks.yellow_barrel) { - explode(p_149723_1_, p_149723_2_, p_149723_3_, p_149723_4_); - } - } - - public void explode(World world, int x, int y, int z) { - - if(rand.nextInt(3) == 0) { - world.setBlock(x, y, z, ModBlocks.toxic_block); - } else { - world.createExplosion(null, x, y, z, 18.0F, true); - } - ExplosionNukeGeneric.waste(world, x, y, z, 35); - - for(int i = -5; i <= 5; i++) { - for(int j = -5; j <= 5; j++) { - for(int k = -5; k <= 5; k++) { - - if(world.rand.nextInt(5) == 0 && world.getBlock(x + i, y + j, z + k) == Blocks.air) - world.setBlock(x + i, y + j, z + k, ModBlocks.gas_radon_dense); - } - } - } - ChunkRadiationManager.proxy.incrementRad(world, x, y, z, 35); + public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { + if (this != ModBlocks.yellow_barrel) return; + super.onBlockDestroyedByExplosion(world, x, y, z, explosion); } @Override @@ -80,17 +61,12 @@ public class YellowBarrel extends Block { return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - @Override - public boolean canDropFromExplosion(Explosion p_149659_1_) { - return false; - } - @Override @SideOnly(Side.CLIENT) - public void randomDisplayTick(World p_149734_1_, int p_149734_2_, int p_149734_3_, int p_149734_4_, Random p_149734_5_) { - super.randomDisplayTick(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_, p_149734_5_); + public void randomDisplayTick(World world, int x, int y, int z, Random rand) { + super.randomDisplayTick(world, x, y, z, rand); - p_149734_1_.spawnParticle("townaura", p_149734_2_ + p_149734_5_.nextFloat() * 0.5F + 0.25F, p_149734_3_ + 1.1F, p_149734_4_ + p_149734_5_.nextFloat() * 0.5F + 0.25F, 0.0D, 0.0D, 0.0D); + world.spawnParticle("townaura", x + rand.nextFloat() * 0.5F + 0.25F, y + 1.1F, z + rand.nextFloat() * 0.5F + 0.25F, 0.0D, 0.0D, 0.0D); } @Override @@ -115,4 +91,27 @@ public class YellowBarrel extends Block { world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); } + @Override + public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { + int ix = MathHelper.floor_double(x), iy = MathHelper.floor_double(y), iz = MathHelper.floor_double(z); + + if(rand.nextInt(3) == 0) { + world.setBlock(ix, iy, iz, ModBlocks.toxic_block); + } else { + world.createExplosion(entity, x, y, z, 12.0F, true); + } + ExplosionNukeGeneric.waste(world, ix, iy, iz, 35); + + for(int i = -5; i <= 5; i++) { + for(int j = -5; j <= 5; j++) { + for(int k = -5; k <= 5; k++) { + + if(world.rand.nextInt(5) == 0 && world.getBlock(ix + i, iy + j, iz + k) == Blocks.air) + world.setBlock(ix + i, iy + j, iz + k, ModBlocks.gas_radon_dense); + } + } + } + ChunkRadiationManager.proxy.incrementRad(world, ix, iy, iz, 35); + } + } diff --git a/src/main/java/com/hbm/blocks/machine/BlockAMSBase.java b/src/main/java/com/hbm/blocks/machine/BlockAMSBase.java deleted file mode 100644 index 082d0f962..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockAMSBase.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class BlockAMSBase extends BlockContainer implements IMultiblock { - - public BlockAMSBase(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityAMSBase(); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityAMSBase entity = (TileEntityAMSBase) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSBaseDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSBaseDimension, ModBlocks.dummy_block_ams_base); - - DummyBlockAMSBase.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_ams_base); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_ams_base); - TileEntity te2 = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_ams_base); - TileEntity te3 = world.getTileEntity(x - 1, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_ams_base); - TileEntity te4 = world.getTileEntity(x, y , z + 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSBase.safeBreak = false; - - } else - world.func_147480_a(x, y, z, true); - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/BlockAMSEmitter.java b/src/main/java/com/hbm/blocks/machine/BlockAMSEmitter.java deleted file mode 100644 index ae627fa60..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockAMSEmitter.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class BlockAMSEmitter extends BlockContainer implements IMultiblock { - - public BlockAMSEmitter(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityAMSEmitter(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityAMSEmitter entity = (TileEntityAMSEmitter) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSEmitterDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSEmitterDimension, ModBlocks.dummy_block_ams_emitter); - - DummyBlockAMSEmitter.safeBreak = true; - world.setBlock(x, y + 5, z, ModBlocks.dummy_port_ams_emitter); - TileEntity te = world.getTileEntity(x, y + 5, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y + 5, z - 1, ModBlocks.dummy_port_ams_emitter); - TileEntity te2 = world.getTileEntity(x, y + 5, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y + 5, z, ModBlocks.dummy_port_ams_emitter); - TileEntity te3 = world.getTileEntity(x + 1, y + 5, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y + 5, z, ModBlocks.dummy_port_ams_emitter); - TileEntity te4 = world.getTileEntity(x - 1, y + 5, z); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y + 5, z + 1, ModBlocks.dummy_port_ams_emitter); - TileEntity te5 = world.getTileEntity(x, y + 5, z + 1); - if(te5 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te5; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSEmitter.safeBreak = false; - - } else - world.func_147480_a(x, y, z, true); - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/BlockAMSLimiter.java b/src/main/java/com/hbm/blocks/machine/BlockAMSLimiter.java deleted file mode 100644 index 234fc9cfa..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockAMSLimiter.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class BlockAMSLimiter extends BlockContainer implements IMultiblock { - - public BlockAMSLimiter(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityAMSLimiter(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityAMSLimiter entity = (TileEntityAMSLimiter) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if (i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSLimiterDimensionEast)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSLimiterDimensionEast, ModBlocks.dummy_block_ams_limiter); - - // - DummyBlockAMSLimiter.safeBreak = true; - world.setBlock(x + 2, y, z, ModBlocks.dummy_port_ams_limiter); - TileEntity te = world.getTileEntity(x + 2, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z, ModBlocks.dummy_port_ams_limiter); - TileEntity te2 = world.getTileEntity(x - 2, y, z); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSLimiter.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSLimiterDimensionSouth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSLimiterDimensionSouth, ModBlocks.dummy_block_ams_limiter); - - // - DummyBlockAMSLimiter.safeBreak = true; - world.setBlock(x, y, z + 2, ModBlocks.dummy_port_ams_limiter); - TileEntity te = world.getTileEntity(x, y, z + 2); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 2, ModBlocks.dummy_port_ams_limiter); - TileEntity te2 = world.getTileEntity(x, y, z - 2); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSLimiter.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSLimiterDimensionWest)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSLimiterDimensionWest, ModBlocks.dummy_block_ams_limiter); - - // - DummyBlockAMSLimiter.safeBreak = true; - world.setBlock(x + 2, y, z, ModBlocks.dummy_port_ams_limiter); - TileEntity te = world.getTileEntity(x + 2, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z, ModBlocks.dummy_port_ams_limiter); - TileEntity te2 = world.getTileEntity(x - 2, y, z); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSLimiter.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.AMSLimiterDimensionNorth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.AMSLimiterDimensionNorth, ModBlocks.dummy_block_ams_limiter); - - // - DummyBlockAMSLimiter.safeBreak = true; - world.setBlock(x, y, z + 2, ModBlocks.dummy_port_ams_limiter); - TileEntity te = world.getTileEntity(x, y, z + 2); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 2, ModBlocks.dummy_port_ams_limiter); - TileEntity te2 = world.getTileEntity(x, y, z - 2); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAMSLimiter.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/BlockArmorTable.java b/src/main/java/com/hbm/blocks/machine/BlockArmorTable.java index ef92cb244..62146fc24 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockArmorTable.java +++ b/src/main/java/com/hbm/blocks/machine/BlockArmorTable.java @@ -11,7 +11,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -65,7 +64,7 @@ public class BlockArmorTable extends Block implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIArmorTable(player.inventory); } diff --git a/src/main/java/com/hbm/blocks/machine/BlockBeamBase.java b/src/main/java/com/hbm/blocks/machine/BlockBeamBase.java new file mode 100644 index 000000000..c280a103c --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockBeamBase.java @@ -0,0 +1,38 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public abstract class BlockBeamBase extends BlockContainer { + + public BlockBeamBase() { + super(Material.air); + setLightLevel(1.0F); + setLightOpacity(0); + setHardness(-1); + setResistance(1_000_000); + setBlockBounds(0, 0, 0, 0, 0, 0); + } + + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + @Override public int getRenderType() { return -1; } + + @Override public Item getItemDropped(int i, Random rand, int j) { return null; } + @Override public int quantityDropped(Random rand) { return 0; } + + @Override public boolean isAir(IBlockAccess world, int x, int y, int z) { return true; } + @Override public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) { return true; } + @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int x, int y, int z) { return null; } + + // This was taken from GregsLighting (cargo cult behaviour) + // This is a bit screwy, but it's needed so that trees are not prevented from growing + // near a floodlight beam. + @Override public boolean isLeaves(IBlockAccess world, int x, int y, int z) { return true; } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCM.java b/src/main/java/com/hbm/blocks/machine/BlockCM.java new file mode 100644 index 000000000..eb8b23e78 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCM.java @@ -0,0 +1,30 @@ +package com.hbm.blocks.machine; + +import java.util.Locale; + +import com.hbm.blocks.BlockEnumMulti; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class BlockCM extends BlockEnumMulti { + + public BlockCM(Material mat, Class theEnum, boolean multiName, boolean multiTexture) { + super(mat, theEnum, multiName, multiTexture); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + Enum num = enums[i]; + this.icons[i] = reg.registerIcon(this.getTextureName() + "_" + num.name().toLowerCase(Locale.US)); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java b/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java new file mode 100644 index 000000000..44f60003b --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java @@ -0,0 +1,46 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockCMAnchor extends Block { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public BlockCMAnchor() { + super(Material.iron); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":cmt_terminal_front"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cmt_terminal_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java b/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java new file mode 100644 index 000000000..85f0d4725 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java @@ -0,0 +1,9 @@ +package com.hbm.blocks.machine; + +import net.minecraft.block.material.Material; + +public class BlockCMFlux extends BlockPillar{ + public BlockCMFlux(Material mat, String top) { + super(mat, top); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMGlass.java b/src/main/java/com/hbm/blocks/machine/BlockCMGlass.java new file mode 100644 index 000000000..af9a116a9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMGlass.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.machine; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.IBlockAccess; + +public class BlockCMGlass extends BlockCM { + + public BlockCMGlass(Material mat, Class theEnum, boolean multiName, boolean multiTexture) { + super(mat, theEnum, multiName, multiTexture); + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + Block block = world.getBlock(x, y, z); + + return block == this ? false : super.shouldSideBeRendered(world, x, y, z, side); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java b/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java new file mode 100644 index 000000000..f339fbb48 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java @@ -0,0 +1,9 @@ +package com.hbm.blocks.machine; + +import net.minecraft.block.material.Material; + +public class BlockCMHeat extends BlockPillar{ + public BlockCMHeat(Material mat, String top) { + super(mat, top); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMPort.java b/src/main/java/com/hbm/blocks/machine/BlockCMPort.java new file mode 100644 index 000000000..b16528a55 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMPort.java @@ -0,0 +1,32 @@ +package com.hbm.blocks.machine; + +import com.hbm.tileentity.TileEntityProxyCombo; + +import net.minecraft.block.Block; +import net.minecraft.block.ITileEntityProvider; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockCMPort extends BlockCM implements ITileEntityProvider { + + public BlockCMPort(Material mat, Class theEnum, boolean multiName, boolean multiTexture) { + super(mat, theEnum, multiName, multiTexture); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityProxyCombo().inventory().power().fluid(); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block b, int m) { + super.breakBlock(world, x, y, z, b, m); + world.removeTileEntity(x, y, z); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java new file mode 100644 index 000000000..72efa3313 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java @@ -0,0 +1,206 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.Random; + +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityCustomMachine; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class BlockCustomMachine extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public BlockCustomMachine() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCustomMachine(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":cm_terminal_front"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cm_terminal_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + if(metadata >= 100) return side == 3 ? this.iconFront : this.blockIcon; + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + + TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); + + if(tile != null) { + + if(tile.checkStructure()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } else if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.wand_s) { + tile.buildStructure(); + } + } + return true; + } + + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + + TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); + + if(tile != null) { + int id = stack.getItemDamage() - 100; + + if(id >= 0 && id < CustomMachineConfigJSON.customMachines.size()) { + + MachineConfiguration config = CustomMachineConfigJSON.niceList.get(id); + + if(config != null) { + tile.machineType = config.unlocalizedName; + tile.init(); + tile.markChanged(); + } + } + } + } + + @Override + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + this.dropBlockAsItem(world, x, y, z, meta, 0); + harvesters.set(null); + } + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + + ArrayList ret = new ArrayList(); + Item item = getItemDropped(metadata, world.rand, fortune); + if(item != null) { + + TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); + + if(tile != null) { + ItemStack stack = new ItemStack(item, 1, CustomMachineConfigJSON.niceList.indexOf(tile.config) + 100); + ret.add(stack); + } + } + + return ret; + } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) { //using the deprecated one to make NEI happy + + TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); + + if(tile != null && tile.machineType != null && !tile.machineType.isEmpty()) { + ItemStack stack = new ItemStack(this, 1, CustomMachineConfigJSON.niceList.indexOf(tile.config) + 100); + return stack; + } + + return super.getPickBlock(target, world, x, y, z); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + ISidedInventory sided = (ISidedInventory) world.getTileEntity(x, y, z); + Random rand = world.rand; + + if(sided != null) { + for(int i1 = 0; i1 < sided.getSizeInventory(); ++i1) { + + if(i1 >= 10 && i1 <= 15) + continue; // do NOT drop the filters + + ItemStack itemstack = sided.getStackInSlot(i1); + + if(itemstack != null) { + float f = rand.nextFloat() * 0.8F + 0.1F; + float f1 = rand.nextFloat() * 0.8F + 0.1F; + float f2 = rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index c5e6e063a..41ab8cba8 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -7,12 +7,13 @@ import java.util.Random; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; -import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -28,6 +29,9 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -72,7 +76,19 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; - } else { + } else if(player.isSneaking()){ + TileEntityBarrel mileEntity = (TileEntityBarrel) world.getTileEntity(x, y, z); + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, x, y, z, player.getHeldItem()); + + mileEntity.tank.setTankType(type); + mileEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + return true; + + }else { return false; } } @@ -164,11 +180,28 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider player.addExhaustion(0.025F); } + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityBarrel)) + return 0; + + TileEntityBarrel barrel = (TileEntityBarrel) te; + return barrel.getComparatorPower(); + } + @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java b/src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java new file mode 100644 index 000000000..d94d06697 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java @@ -0,0 +1,22 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.generic.BlockGeneric; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class BlockGenericPWR extends BlockGeneric implements ITooltipProvider { + + public BlockGenericPWR(Material material) { + super(material); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java index 20bd9f35a..1cb88488a 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ITooltipProvider; import com.hbm.render.block.ct.CT; @@ -47,12 +48,12 @@ public class BlockHadronCoil extends Block implements IBlockCT, ITooltipProvider } @Override - public boolean canConnect(IBlockAccess world, int x, int y, int z, IBlockCT block) { + public boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { return block instanceof BlockHadronCoil; } @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(I18nUtil.resolveKey("info.coil") + ": " + String.format("%,d", factor)); + list.add(I18nUtil.resolveKey("info.coil") + ": " + String.format(Locale.US, "%,d", factor)); } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java new file mode 100644 index 000000000..a242772e2 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java @@ -0,0 +1,67 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import org.lwjgl.input.Keyboard; + +import com.hbm.blocks.BlockMulti; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; + +public class BlockHadronCooler extends BlockMulti implements ITooltipProvider { + + private IIcon[] icons = new IIcon[getSubCount()]; + + public BlockHadronCooler(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons[0] = reg.registerIcon(RefStrings.MODID + ":hadron_cooler"); + icons[1] = reg.registerIcon(RefStrings.MODID + ":hadron_cooler_mk2"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return icons[this.rectify(metadata)]; + } + + @Override + public int getSubCount() { + return 2; + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + int meta = this.rectify(stack.getItemDamage()); + + if(meta == 1) return this.getUnlocalizedName() + "_mk2"; + + return this.getUnlocalizedName(); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName(stack) + ".desc")) list.add(EnumChatFormatting.YELLOW + s); + } else { + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java b/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java index 11298909e..87aa47822 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java @@ -8,5 +8,4 @@ public class BlockHadronPlating extends Block { public BlockHadronPlating(Material mat) { super(mat); } - } diff --git a/src/main/java/com/hbm/blocks/machine/BlockICF.java b/src/main/java/com/hbm/blocks/machine/BlockICF.java new file mode 100644 index 000000000..442433aba --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockICF.java @@ -0,0 +1,222 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.render.block.ct.CT; +import com.hbm.render.block.ct.CTStitchReceiver; +import com.hbm.render.block.ct.IBlockCT; +import com.hbm.tileentity.machine.TileEntityICFController; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockICF extends BlockContainer implements IBlockCT { + + @SideOnly(Side.CLIENT) protected IIcon iconPort; + + public BlockICF(Material mat) { + super(mat); + } + + @Override + public int getRenderType() { + return CT.renderID; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @SideOnly(Side.CLIENT) public CTStitchReceiver rec; + @SideOnly(Side.CLIENT) public CTStitchReceiver recPort; + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.iconPort = reg.registerIcon(RefStrings.MODID + ":icf_block_port"); + this.rec = IBlockCT.primeReceiver(reg, this.blockIcon.getIconName(), this.blockIcon); + this.recPort = IBlockCT.primeReceiver(reg, this.iconPort.getIconName(), this.iconPort); + } + + @Override + public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == 1) return recPort.fragCache; + return rec.fragCache; + } + + @Override + public boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { + return block == ModBlocks.icf_block || block == ModBlocks.icf_controller; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityBlockICF(); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityBlockICF) { + TileEntityBlockICF icf = (TileEntityBlockICF) tile; + world.removeTileEntity(x, y, z); + if(icf.block != null) { + world.setBlock(x, y, z, icf.block, icf.meta, 3); + TileEntity controller = world.getTileEntity(icf.coreX, icf.coreY, icf.coreZ); + + if(controller instanceof TileEntityICFController) { + ((TileEntityICFController) controller).assembled = false; + } + } + } else { + world.removeTileEntity(x, y, z); + } + super.breakBlock(world, x, y, z, block, meta); + } + + public static class TileEntityBlockICF extends TileEntity implements IEnergyReceiverMK2 { + + public Block block; + public int meta; + public int coreX; + public int coreY; + public int coreZ; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0 && block != null) { + + TileEntityICFController controller = getCore(); + + if(controller != null) { + if(!controller.assembled) { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); + } + } else if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + block = Block.getBlockById(nbt.getInteger("block")); + if(block != Blocks.air) { + meta = nbt.getInteger("meta"); + coreX = nbt.getInteger("cX"); + coreY = nbt.getInteger("cY"); + coreZ = nbt.getInteger("cZ"); + } else { + block = null; + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + if(block != null) { + nbt.setInteger("block", Block.getIdFromBlock(block)); + nbt.setInteger("meta", meta); + nbt.setInteger("cX", coreX); + nbt.setInteger("cY", coreY); + nbt.setInteger("cZ", coreZ); + } + } + + @Override + public void markDirty() { + if(this.worldObj != null) { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + } + + public TileEntityICFController cachedCore; + + protected TileEntityICFController getCore() { + + if(cachedCore != null && !cachedCore.isInvalid()) return cachedCore; + + if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + + TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); + if(tile instanceof TileEntityICFController) { + TileEntityICFController controller = (TileEntityICFController) tile; + cachedCore = controller; + return controller; + } + } + + return null; + } + + @Override public long getPower() { + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityICFController controller = this.getCore(); + if(controller != null) return controller.getPower(); + + return 0; + } + + @Override public void setPower(long power) { + if(this.getBlockMetadata() != 1) return; + if(block == null) return; + TileEntityICFController controller = this.getCore(); + if(controller != null) controller.setPower(power); + } + + @Override public long getMaxPower() { + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityICFController controller = this.getCore(); + if(controller != null) return controller.getMaxPower(); + + return 0; + } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + if(this.getBlockMetadata() != 1) return false; + return dir != ForgeDirection.UNKNOWN; + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockICFComponent.java b/src/main/java/com/hbm/blocks/machine/BlockICFComponent.java new file mode 100644 index 000000000..e2b8ec26c --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockICFComponent.java @@ -0,0 +1,13 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.generic.BlockToolConversion; + +import net.minecraft.block.material.Material; + +public class BlockICFComponent extends BlockToolConversion { + + public BlockICFComponent() { + super(Material.iron); + this.addVariant(".vessel", ".vessel_welded", ".structure", ".structure_bolted"); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java b/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java new file mode 100644 index 000000000..28161bb09 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockICFLaserComponent.java @@ -0,0 +1,55 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.lib.RefStrings; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class BlockICFLaserComponent extends BlockEnumMulti { + + protected IIcon[] iconsTop; + + public BlockICFLaserComponent() { + super(Material.iron, EnumICFPart.class, true, true); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + this.iconsTop = new IIcon[enums.length]; + + this.icons[0] = this.iconsTop[0] = reg.registerIcon(RefStrings.MODID + ":icf_casing"); + this.icons[1] = this.iconsTop[1] = reg.registerIcon(RefStrings.MODID + ":icf_port"); + this.icons[2] = this.iconsTop[2] = reg.registerIcon(RefStrings.MODID + ":icf_cell"); + this.icons[3] = this.iconsTop[3] = reg.registerIcon(RefStrings.MODID + ":icf_emitter"); + this.icons[4] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_side"); + this.icons[5] = reg.registerIcon(RefStrings.MODID + ":icf_turbocharger"); + this.iconsTop[4] = this.iconsTop[5] = reg.registerIcon(RefStrings.MODID + ":icf_capacitor_top"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.iconsTop[meta % this.iconsTop.length] : this.icons[meta % this.icons.length]; + } + + @Override + public int getSubCount() { + return EnumICFPart.values().length; + } + + public static enum EnumICFPart { + CASING, + PORT, + CELL, + EMITTER, + CAPACITOR, + TURBO + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockICFStruct.java b/src/main/java/com/hbm/blocks/machine/BlockICFStruct.java new file mode 100644 index 000000000..b356b570c --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockICFStruct.java @@ -0,0 +1,27 @@ +package com.hbm.blocks.machine; + +import com.hbm.tileentity.machine.TileEntityICFStruct; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockICFStruct extends BlockContainer { + + public BlockICFStruct(Material mat) { super(mat); } + @Override public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityICFStruct(); } + @Override public boolean isOpaqueCube() { return false; } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java index d8e2f6773..03fc8c597 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Random; import com.hbm.blocks.IBlockMulti; @@ -265,7 +266,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo if(full) { title = storage.type.getDisplayName(); - text.add(String.format("%,d", storage.getStockpile()) + " / " + String.format("%,d", storage.getCapacity())); + text.add(String.format(Locale.US, "%,d", storage.getStockpile()) + " / " + String.format(Locale.US, "%,d", storage.getCapacity())); double percent = (double) storage.getStockpile() / (double) storage.getCapacity(); int charge = (int) Math.floor(percent * 10_000D); @@ -286,7 +287,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo if(type != null) { list.add(EnumChatFormatting.GOLD + type.getDisplayName()); - list.add(String.format("%,d", stack.stackTagCompound.getInteger("stack")) + " / " + String.format("%,d", getCapacity(stack.getItemDamage()))); + list.add(String.format(Locale.US, "%,d", stack.stackTagCompound.getInteger("stack")) + " / " + String.format(Locale.US, "%,d", getCapacity(stack.getItemDamage()))); } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockObserver.java b/src/main/java/com/hbm/blocks/machine/BlockObserver.java deleted file mode 100644 index e1dfa027f..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockObserver.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockPistonBase; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class BlockObserver extends Block { - - private boolean isActive; - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - @SideOnly(Side.CLIENT) - private IIcon iconBack; - - public BlockObserver(Material mat, boolean isActive) { - super(mat); - this.isActive = isActive; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconBack = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":observer_back_on" : ":observer_back_off")); - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":observer_front"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":observer_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - ForgeDirection dir = ForgeDirection.getOrientation(metadata); - ForgeDirection opp = dir.getOpposite(); - return side == dir.ordinal() ? iconFront : side == opp.ordinal() ? iconBack : blockIcon; - } - - @Override - public Item getItemDropped(int meta, Random rand, int luck) { - return Item.getItemFromBlock(ModBlocks.observer_off); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { - int l = BlockPistonBase.determineOrientation(world, x, y, z, player); - world.setBlockMetadataWithNotify(x, y, z, l, 2); - - if(this.isActive) - world.scheduleBlockUpdate(x, y, z, this, 2); - } - - @Override - public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { - - if(!this.isActive) { - - } - } - - @Override - public boolean canProvidePower() { - return this.isActive; - } - - @Override - public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int side) { - return this.isActive ? 15 : 0; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/BlockPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPWR.java new file mode 100644 index 000000000..06b650798 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockPWR.java @@ -0,0 +1,333 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.lib.RefStrings; +import com.hbm.render.block.ct.CT; +import com.hbm.render.block.ct.CTStitchReceiver; +import com.hbm.render.block.ct.IBlockCT; +import com.hbm.tileentity.machine.TileEntityPWRController; + +import api.hbm.fluid.IFluidConnector; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockPWR extends BlockContainer implements IBlockCT { + + @SideOnly(Side.CLIENT) protected IIcon iconPort; + + public BlockPWR(Material mat) { + super(mat); + } + + @Override + public int getRenderType() { + return CT.renderID; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @SideOnly(Side.CLIENT) public CTStitchReceiver rec; + @SideOnly(Side.CLIENT) public CTStitchReceiver recPort; + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.iconPort = reg.registerIcon(RefStrings.MODID + ":pwr_casing_port"); + this.rec = IBlockCT.primeReceiver(reg, this.blockIcon.getIconName(), this.blockIcon); + this.recPort = IBlockCT.primeReceiver(reg, this.iconPort.getIconName(), this.iconPort); + } + + @Override + public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == 1) return recPort.fragCache; + return rec.fragCache; + } + + @Override + public boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { + return block == ModBlocks.pwr_block || block == ModBlocks.pwr_controller; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityBlockPWR(); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityBlockPWR) { + TileEntityBlockPWR pwr = (TileEntityBlockPWR) tile; + world.removeTileEntity(x, y, z); + if(pwr.block != null) { + world.setBlock(x, y, z, pwr.block); + TileEntity controller = world.getTileEntity(pwr.coreX, pwr.coreY, pwr.coreZ); + + if(controller instanceof TileEntityPWRController) { + ((TileEntityPWRController) controller).assembled = false; + } + } + } else { + world.removeTileEntity(x, y, z); + } + super.breakBlock(world, x, y, z, block, meta); + } + + public static class TileEntityBlockPWR extends TileEntity implements IFluidConnector, ISidedInventory { + + public Block block; + public int coreX; + public int coreY; + public int coreZ; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0 && block != null) { + + TileEntityPWRController controller = getCore(); + + if(controller != null) { + if(!controller.assembled) { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); + } + } else if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + block = Block.getBlockById(nbt.getInteger("block")); + if(block != Blocks.air) { + coreX = nbt.getInteger("cX"); + coreY = nbt.getInteger("cY"); + coreZ = nbt.getInteger("cZ"); + } else { + block = null; + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + if(block != null) { + nbt.setInteger("block", Block.getIdFromBlock(block)); + nbt.setInteger("cX", coreX); + nbt.setInteger("cY", coreY); + nbt.setInteger("cZ", coreZ); + } + } + + @Override + public void markDirty() { + if(this.worldObj != null) { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + } + + public TileEntityPWRController cachedCore; + + protected TileEntityPWRController getCore() { + + if(cachedCore != null && !cachedCore.isInvalid()) return cachedCore; + + if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + + TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); + if(tile instanceof TileEntityPWRController) { + TileEntityPWRController controller = (TileEntityPWRController) tile; + cachedCore = controller; + return controller; + } + } + + return null; + } + + @Override + public long transferFluid(FluidType type, int pressure, long fluid) { + + if(this.getBlockMetadata() != 1) return fluid; + if(block == null) return fluid; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.transferFluid(type, pressure, fluid); + + return fluid; + } + + @Override + public long getDemand(FluidType type, int pressure) { + + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getDemand(type, pressure); + + return 0; + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return this.getBlockMetadata() == 1; + } + + @Override + public int getSizeInventory() { + + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getSizeInventory(); + + return 0; + } + + @Override + public ItemStack getStackInSlot(int slot) { + + if(this.getBlockMetadata() != 1) return null; + if(block == null) return null; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getStackInSlot(slot); + + return null; + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + + if(this.getBlockMetadata() != 1) return null; + if(block == null) return null; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.decrStackSize(slot, amount); + + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + + if(this.getBlockMetadata() != 1) return null; + if(block == null) return null; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getStackInSlotOnClosing(slot); + + return null; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + + if(this.getBlockMetadata() != 1) return; + if(block == null) return; + TileEntityPWRController controller = this.getCore(); + if(controller != null) controller.setInventorySlotContents(slot, stack); + } + + @Override + public int getInventoryStackLimit() { + + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getInventoryStackLimit(); + + return 0; + } + + @Override public boolean isUseableByPlayer(EntityPlayer player) { return false; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public String getInventoryName() { return ""; } + @Override public boolean hasCustomInventoryName() { return false; } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + + if(this.getBlockMetadata() != 1) return false; + if(block == null) return false; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.isItemValidForSlot(slot, stack); + + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + + if(this.getBlockMetadata() != 1) return new int[0]; + if(block == null) return new int[0]; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getAccessibleSlotsFromSide(side); + + return new int[0]; + } + + @Override + public boolean canInsertItem(int slot, ItemStack stack, int side) { + + if(this.getBlockMetadata() != 1) return false; + if(block == null) return false; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.canInsertItem(slot, stack, side); + + return false; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + + if(this.getBlockMetadata() != 1) return false; + if(block == null) return false; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.canExtractItem(slot, stack, side); + + return false; + } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockPillar.java b/src/main/java/com/hbm/blocks/machine/BlockPillar.java index a030210b0..8158e9416 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockPillar.java +++ b/src/main/java/com/hbm/blocks/machine/BlockPillar.java @@ -1,23 +1,15 @@ package com.hbm.blocks.machine; -import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; -import api.hbm.fluid.IFluidConnectorBlock; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -public class BlockPillar extends Block implements IFluidConnectorBlock { +public class BlockPillar extends Block { @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -37,18 +29,13 @@ public class BlockPillar extends Block implements IFluidConnectorBlock { textureAlt = bottom; } - public Block setBlockTextureName(String name) { - - if(textureTop.isEmpty()) - textureTop = name; - - if(textureAlt.isEmpty()) - textureAlt = name; - - this.textureName = name; - - return this; - } + public Block setBlockTextureName(String name) { + + if(textureTop.isEmpty()) textureTop = name; + if(textureAlt.isEmpty()) textureAlt = name; + this.textureName = name; + return this; + } @Override @SideOnly(Side.CLIENT) @@ -62,37 +49,6 @@ public class BlockPillar extends Block implements IFluidConnectorBlock { @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { - - if(this == ModBlocks.reactor_element && metadata == 1) - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.iconAlt); - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); } - - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - - if(this != ModBlocks.reactor_element) - return super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ); - - if(player.isSneaking()) - { - if(world.getBlockMetadata(x, y, z) == 0) { - world.setBlockMetadataWithNotify(x, y, z, 1, 3); - } else { - world.setBlockMetadataWithNotify(x, y, z, 0, 3); - } - - return true; - } - - return false; - } - - @Override - public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { - if(this != ModBlocks.reactor_conductor) return false; - return type == Fluids.WATER || type == Fluids.COOLANT || type == Fluids.STEAM || type == Fluids.HOTSTEAM || type == Fluids.SUPERHOTSTEAM || type == Fluids.ULTRAHOTSTEAM; - } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java new file mode 100644 index 000000000..691578a45 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java @@ -0,0 +1,21 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class BlockPillarPWR extends BlockPillar implements ITooltipProvider { + + public BlockPillarPWR(Material mat, String top) { + super(mat, top); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockRotatable.java b/src/main/java/com/hbm/blocks/machine/BlockRotatable.java deleted file mode 100644 index d3e7d538e..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockRotatable.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class BlockRotatable extends Block { - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - - public BlockRotatable(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - - if(this == ModBlocks.reactor_ejector) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":reactor_ejector"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_concrete"); - } - if(this == ModBlocks.reactor_inserter) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":reactor_inserter"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_concrete"); - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java index b7530f2d2..85dc20517 100644 --- a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java +++ b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -78,7 +77,7 @@ public class DeuteriumTower extends BlockDummyable implements ILookOverlay { text.add((tower.power < tower.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE"); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSBase.java b/src/main/java/com/hbm/blocks/machine/DummyBlockAMSBase.java deleted file mode 100644 index 92e1ffdc3..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSBase.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockAMSBase extends BlockContainer implements IDummy { - - public static boolean safeBreak = false; - - public DummyBlockAMSBase(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) - { - if(!safeBreak) { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - //world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i); - if(!world.isRemote) - world.func_147480_a(a, b, c, true); - } - } - world.removeTileEntity(x, y, z); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.ams_base); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityAMSBase entity = (TileEntityAMSBase) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c); - } - } - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSEmitter.java b/src/main/java/com/hbm/blocks/machine/DummyBlockAMSEmitter.java deleted file mode 100644 index a6d6f40d6..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSEmitter.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockAMSEmitter extends BlockContainer implements IDummy { - - public static boolean safeBreak = false; - - public DummyBlockAMSEmitter(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) - { - if(!safeBreak) { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - //world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i); - if(!world.isRemote) - world.func_147480_a(a, b, c, true); - } - } - world.removeTileEntity(x, y, z); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.ams_emitter); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityAMSEmitter entity = (TileEntityAMSEmitter) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c); - } - } - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSLimiter.java b/src/main/java/com/hbm/blocks/machine/DummyBlockAMSLimiter.java deleted file mode 100644 index 330756b58..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockAMSLimiter.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; -import com.hbm.tileentity.machine.TileEntityDummy; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockAMSLimiter extends BlockContainer implements IDummy { - - public static boolean safeBreak = false; - - public DummyBlockAMSLimiter(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) - { - if(!safeBreak) { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - //world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i); - if(!world.isRemote) - world.func_147480_a(a, b, c, true); - } - } - world.removeTileEntity(x, y, z); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.ams_limiter); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityAMSLimiter entity = (TileEntityAMSLimiter) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c); - } - } - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockAssembler.java b/src/main/java/com/hbm/blocks/machine/DummyBlockAssembler.java index 18ae7e8d8..005858260 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockAssembler.java +++ b/src/main/java/com/hbm/blocks/machine/DummyBlockAssembler.java @@ -4,7 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntityMachineAssembler; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -26,7 +25,7 @@ public class DummyBlockAssembler extends DummyOldBase { { return Item.getItemFromBlock(ModBlocks.machine_assembler); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -39,7 +38,7 @@ public class DummyBlockAssembler extends DummyOldBase { int a = ((TileEntityDummy)te).targetX; int b = ((TileEntityDummy)te).targetY; int c = ((TileEntityDummy)te).targetZ; - + TileEntityMachineAssembler entity = (TileEntityMachineAssembler) world.getTileEntity(a, b, c); if(entity != null) { diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java b/src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java deleted file mode 100644 index 752120244..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockDrill.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hbm.blocks.machine; - - -import com.hbm.blocks.ModBlocks; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockDrill extends DummyOldBase { - - public DummyBlockDrill(Material p_i45386_1_, boolean port) { - super(p_i45386_1_, port); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.machine_drill); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityMachineMiningDrill entity = (TileEntityMachineMiningDrill) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c); - } - } - return true; - } else { - return false; - } - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockRefinery.java b/src/main/java/com/hbm/blocks/machine/DummyBlockRefinery.java index fbd2c14d1..1230880dd 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockRefinery.java +++ b/src/main/java/com/hbm/blocks/machine/DummyBlockRefinery.java @@ -4,7 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -26,7 +25,7 @@ public class DummyBlockRefinery extends DummyOldBase { { return Item.getItemFromBlock(ModBlocks.machine_refinery); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -39,7 +38,7 @@ public class DummyBlockRefinery extends DummyOldBase { int a = ((TileEntityDummy)te).targetX; int b = ((TileEntityDummy)te).targetY; int c = ((TileEntityDummy)te).targetZ; - + TileEntityMachineRefinery entity = (TileEntityMachineRefinery) world.getTileEntity(a, b, c); if(entity != null) { diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockTurbofan.java b/src/main/java/com/hbm/blocks/machine/DummyBlockTurbofan.java index ecbdf99e1..071b7a529 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockTurbofan.java +++ b/src/main/java/com/hbm/blocks/machine/DummyBlockTurbofan.java @@ -4,7 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -26,7 +25,7 @@ public class DummyBlockTurbofan extends DummyOldBase { { return Item.getItemFromBlock(ModBlocks.machine_turbofan); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -39,7 +38,7 @@ public class DummyBlockTurbofan extends DummyOldBase { int a = ((TileEntityDummy)te).targetX; int b = ((TileEntityDummy)te).targetY; int c = ((TileEntityDummy)te).targetZ; - + TileEntityMachineTurbofan entity = (TileEntityMachineTurbofan) world.getTileEntity(a, b, c); if(entity != null) { diff --git a/src/main/java/com/hbm/blocks/machine/DummyOldBase.java b/src/main/java/com/hbm/blocks/machine/DummyOldBase.java index 4d5c183fd..da688e90f 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyOldBase.java +++ b/src/main/java/com/hbm/blocks/machine/DummyOldBase.java @@ -7,7 +7,7 @@ import com.hbm.interfaces.IMultiblock; import com.hbm.inventory.fluid.FluidType; import com.hbm.tileentity.machine.TileEntityDummy; -import api.hbm.energy.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorBlock; import api.hbm.fluid.IFluidConnectorBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; diff --git a/src/main/java/com/hbm/blocks/machine/FWatzCore.java b/src/main/java/com/hbm/blocks/machine/FWatzCore.java deleted file mode 100644 index 252cbab01..000000000 --- a/src/main/java/com/hbm/blocks/machine/FWatzCore.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.machine.TileEntityFWatzCore; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class FWatzCore extends BlockContainer { - - public FWatzCore(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityFWatzCore(); - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java b/src/main/java/com/hbm/blocks/machine/FWatzHatch.java deleted file mode 100644 index 5b3df59dd..000000000 --- a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityFWatzCore; - -import api.hbm.fluid.IFluidConnectorBlock; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class FWatzHatch extends Block implements IFluidConnectorBlock { - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - private IIcon iconTop; - - public FWatzHatch(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_hatch"); - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_scaffold"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fwatz_scaffold"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : (metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon))); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(this); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - //this.setDefaultDirection(world, x, y, z); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - - //this is fucking atrocious - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - if(world.getBlockMetadata(x, y, z) == 2) - { - if(world.getTileEntity(x, y + 11, z + 9) instanceof TileEntityFWatzCore) - { - if(((TileEntityFWatzCore)world.getTileEntity(x, y + 11, z + 9)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y + 11, z + 9); - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 3) - { - if(world.getTileEntity(x, y + 11, z - 9) instanceof TileEntityFWatzCore) - { - if(((TileEntityFWatzCore)world.getTileEntity(x, y + 11, z - 9)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y + 11, z - 9); - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 4) - { - if(world.getTileEntity(x + 9, y + 11, z) instanceof TileEntityFWatzCore) - { - if(((TileEntityFWatzCore)world.getTileEntity(x + 9, y + 11, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x + 9, y + 11, z); - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 5) - { - if(world.getTileEntity(x - 9, y + 11, z) instanceof TileEntityFWatzCore) - { - if(((TileEntityFWatzCore)world.getTileEntity(x - 9, y + 11, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x - 9, y + 11, z); - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusionary Watz Plant] Error: Reactor Core not found!")); - } - } - return true; - } else { - return false; - } - } - - @Override - public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { - return type == Fluids.AMAT || type == Fluids.ASCHRAB; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/FactoryHatch.java b/src/main/java/com/hbm/blocks/machine/FactoryHatch.java deleted file mode 100644 index b8915a4dc..000000000 --- a/src/main/java/com/hbm/blocks/machine/FactoryHatch.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class FactoryHatch extends Block { - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - - public FactoryHatch(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.factory_titanium_furnace ? ":factory_titanium_furnace" : ":factory_advanced_furnace")); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.factory_titanium_furnace ? ":factory_titanium_hull" : ":factory_advanced_hull")); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/Floodlight.java b/src/main/java/com/hbm/blocks/machine/Floodlight.java new file mode 100644 index 000000000..af04665b7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/Floodlight.java @@ -0,0 +1,297 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.FloodlightBeam.TileEntityFloodlightBeam; +import com.hbm.util.Compat; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.block.IToolable; +import api.hbm.energymk2.IEnergyReceiverMK2; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class Floodlight extends BlockContainer implements IToolable { + + public Floodlight(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityFloodlight(); + } + + @Override public int getRenderType() { return -1; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + //only method that respects sides, called first for orientation + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + return side; + } + + //only method with player param, called second for variable rotation + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + setAngle(world, x, y, z, player, true); + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if(tool != ToolType.SCREWDRIVER) return false; + setAngle(world, x, y, z, player, false); + return true; + } + + public void setAngle(World world, int x, int y, int z, EntityLivingBase player, boolean updateMeta) { + + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + float rotation = player.rotationPitch; + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityFloodlight) { + int meta = world.getBlockMetadata(x, y, z) % 6; + TileEntityFloodlight floodlight = (TileEntityFloodlight) tile; + + if(meta == 0 || meta == 1) { + if(i == 0 || i == 2) if(updateMeta) world.setBlockMetadataWithNotify(x, y, z, meta + 6, 3); + if(meta == 1) if(i == 0 || i == 1) rotation = 180F - rotation; + if(meta == 0) if(i == 0 || i == 3) rotation = 180F - rotation; + } + + floodlight.rotation = -Math.round(rotation / 5F) * 5F; + if(floodlight.isOn) floodlight.destroyLights(); + tile.markDirty(); + } + } + + public static class TileEntityFloodlight extends TileEntity implements IEnergyReceiverMK2 { + + public float rotation; + protected BlockPos[] lightPos = new BlockPos[15]; + public static final long maxPower = 5_000; + public long power; + + public int delay; + public boolean isOn; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() % 6).getOpposite(); + this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + + if(delay > 0) { + delay --; + return; + } + + if(power >= 100) { + power -= 100; + + if(!isOn) { + this.isOn = true; + this.castLights(); + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + + } else { + + long timer = worldObj.getTotalWorldTime(); + if(timer % 5 == 0) { + timer = timer / 5; + this.castLight((int) Math.abs(timer % this.lightPos.length)); + } + } + + } else { + if(isOn) { + this.isOn = false; + this.delay = 60; + this.destroyLights(); + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + } + } + } + + private void castLight(int index) { + BlockPos newPos = this.getRayEndpoint(index); + BlockPos oldPos = this.lightPos[index]; + this.lightPos[index] = null; + + if(newPos == null || !newPos.equals(oldPos)) { //if the new end point is null or not equal to the previous, delete the previous spot + if(oldPos != null) { + TileEntity tile = Compat.getTileStandard(worldObj, oldPos.getX(), oldPos.getY(), oldPos.getZ()); + if(tile instanceof TileEntityFloodlightBeam) { + TileEntityFloodlightBeam beam = (TileEntityFloodlightBeam) tile; + if(beam.cache == this) { + worldObj.setBlock(oldPos.getX(), oldPos.getY(), oldPos.getZ(), Blocks.air, 0, 2); + } + } + } + } + + if(newPos == null) return; + + if(worldObj.getBlock(newPos.getX(), newPos.getY(), newPos.getZ()) == Blocks.air) { + worldObj.setBlock(newPos.getX(), newPos.getY(), newPos.getZ(), ModBlocks.floodlight_beam, 0, 2); + TileEntity tile = Compat.getTileStandard(worldObj, newPos.getX(), newPos.getY(), newPos.getZ()); + if(tile instanceof TileEntityFloodlightBeam) ((TileEntityFloodlightBeam) tile).setSource(this, newPos.getX(), newPos.getY(), newPos.getZ(), index); + this.lightPos[index] = newPos; + } + + if(worldObj.getBlock(newPos.getX(), newPos.getY(), newPos.getZ()) == ModBlocks.floodlight_beam) { + this.lightPos[index] = newPos; + } + } + + public BlockPos getRayEndpoint(int index) { + + if(index < 0 || index >= lightPos.length) return null; + + int meta = this.getBlockMetadata(); + Vec3 dir = Vec3.createVectorHelper(1, 0, 0); + + float[] angles = getVariation(index); + + float rotation = this.rotation; + if(meta == 1 || meta == 7) rotation = 180 - rotation; + if(meta == 6) rotation = 180 - rotation; + dir.rotateAroundZ((float) (rotation / 180D * Math.PI) + angles[0]); + + if(meta == 6) dir.rotateAroundY((float) (Math.PI / 2D)); + if(meta == 7) dir.rotateAroundY((float) (Math.PI / 2D)); + if(meta == 2) dir.rotateAroundY((float) (Math.PI / 2D)); + if(meta == 3) dir.rotateAroundY((float) -(Math.PI / 2D)); + if(meta == 4) dir.rotateAroundY((float) (Math.PI)); + dir.rotateAroundY(angles[1]); + + for(int i = 1; i < 64; i++) { + int iX = (int) Math.floor(xCoord + 0.5 + dir.xCoord * i); + int iY = (int) Math.floor(yCoord + 0.5 + dir.yCoord * i); + int iZ = (int) Math.floor(zCoord + 0.5 + dir.zCoord * i); + + if(iX == xCoord && iY == yCoord && iZ == zCoord) continue; + + Block block = worldObj.getBlock(iX, iY, iZ); + if(block.getLightOpacity(worldObj, iX, iY, iZ) < 127) continue; + + int fX = (int) Math.floor(xCoord + 0.5 + dir.xCoord * (i - 1)); + int fY = (int) Math.floor(yCoord + 0.5 + dir.yCoord * (i - 1)); + int fZ = (int) Math.floor(zCoord + 0.5 + dir.zCoord * (i - 1)); + + if(i > 1) return new BlockPos(fX, fY, fZ); + } + + return null; + } + + private void castLights() { + for(int i = 0; i < this.lightPos.length; i++) this.castLight(i); + } + + private void destroyLight(int index) { + BlockPos pos = lightPos[index]; + if(pos != null) { + if(pos != null && worldObj.getBlock(pos.getX(), pos.getY(), pos.getZ()) == ModBlocks.floodlight_beam) { + worldObj.setBlock(pos.getX(), pos.getY(), pos.getZ(), Blocks.air, 0, 2); + } + } + } + + private void destroyLights() { + for(int i = 0; i < this.lightPos.length; i++) destroyLight(i); + } + + private float[] getVariation(int index) { + return new float[] { + (((index / 3) - 2) * 7.5F) / 180F * (float) Math.PI, + (((index % 3) - 1) * 15F) / 180F * (float) Math.PI + }; + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.rotation = nbt.getFloat("rotation"); + this.power = nbt.getLong("power"); + this.isOn = nbt.getBoolean("isOn"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setFloat("rotation", rotation); + nbt.setLong("power", power); + nbt.setBoolean("isOn", isOn); + } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + + private boolean isLoaded = true; + @Override public boolean isLoaded() { return isLoaded; } + @Override public void onChunkUnload() { this.isLoaded = false; } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord - 1, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/FloodlightBeam.java b/src/main/java/com/hbm/blocks/machine/FloodlightBeam.java new file mode 100644 index 000000000..0627d72e5 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/FloodlightBeam.java @@ -0,0 +1,75 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.machine.Floodlight.TileEntityFloodlight; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class FloodlightBeam extends BlockBeamBase { + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityFloodlightBeam(); + } + + public static class TileEntityFloodlightBeam extends TileEntity { + + public TileEntityFloodlight cache; + public int sourceX; + public int sourceY; + public int sourceZ; + public int index; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 5 == 0) { + + if(cache == null) { + + if(worldObj.getChunkProvider().chunkExists(sourceX >> 4, sourceZ >> 4)) { + TileEntity tile = worldObj.getTileEntity(sourceX, sourceY, sourceZ); + if(tile instanceof TileEntityFloodlight) { + cache = (TileEntityFloodlight) tile; // chunk is loaded, tile exists -> cache + } else { + worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.air, 0, 2); // chunk is loaded, tile does not exist -> delete self + } + } + } + + if((cache != null && (cache.isInvalid() || !cache.isOn || !new BlockPos(xCoord, yCoord, zCoord).equals(cache.lightPos[index]))) || sourceY == 0) { + worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.air, 0, 2); + } + } + } + + public void setSource(TileEntityFloodlight floodlight, int x, int y, int z, int i) { + cache = floodlight; + sourceX = x; + sourceY = y; + sourceZ = z; + index = i; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.sourceX = nbt.getInteger("sourceX"); + this.sourceY = nbt.getInteger("sourceY"); + this.sourceZ = nbt.getInteger("sourceZ"); + this.index = nbt.getInteger("index"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("sourceX", sourceX); + nbt.setInteger("sourceY", sourceY); + nbt.setInteger("sourceZ", sourceZ); + nbt.setInteger("index", index); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/FoundryBasin.java b/src/main/java/com/hbm/blocks/machine/FoundryBasin.java index 59014be8e..d3d014d45 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryBasin.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryBasin.java @@ -67,6 +67,12 @@ public class FoundryBasin extends FoundryCastingBase { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.999F, 1.0F); //for some fucking reason setting maxY to something that isn't 1 magically fixes item collisions } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java b/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java index 1ced99e75..380d4f4bf 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java @@ -1,9 +1,7 @@ package com.hbm.blocks.machine; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - +import api.hbm.block.ICrucibleAcceptor; +import api.hbm.block.IToolable; import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.items.ModItems; @@ -12,9 +10,6 @@ import com.hbm.items.machine.ItemMold.Mold; import com.hbm.items.machine.ItemScraps; import com.hbm.tileentity.machine.TileEntityFoundryCastingBase; import com.hbm.util.I18nUtil; - -import api.hbm.block.ICrucibleAcceptor; -import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -30,6 +25,10 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + public abstract class FoundryCastingBase extends BlockContainer implements ICrucibleAcceptor, IToolable, ILookOverlay { protected FoundryCastingBase() { @@ -55,30 +54,30 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).canAcceptPartialFlow(world, x, y, z, side, stack); } - + @Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).flow(world, x, y, z, side, stack); } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) { return true; } - + TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); - + //remove casted item if(cast.slots[1] != null) { if(!player.inventory.addItemStackToInventory(cast.slots[1].copy())) { @@ -87,17 +86,17 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc } else { player.inventoryContainer.detectAndSendChanges(); } - + cast.slots[1] = null; cast.markDirty(); world.markBlockForUpdate(x, y, z); return true; } - + //insert mold if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) { Mold mold = ((ItemMold) player.getHeldItem().getItem()).getMold(player.getHeldItem()); - + if(mold.size == cast.getMoldSize()) { cast.slots[0] = player.getHeldItem().copy(); cast.slots[0].stackSize = 1; @@ -108,7 +107,7 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc return true; } } - + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && ((ItemTool) player.getHeldItem().getItem()).getToolClasses(player.getHeldItem()).contains("shovel")) { if(cast.amount > 0) { ItemStack scrap = ItemScraps.create(new MaterialStack(cast.type, cast.amount)); @@ -125,13 +124,13 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc } return true; } - + return false; } @Override public void breakBlock(World world, int x, int y, int z, Block b, int i) { - + TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); if(cast.amount > 0) { ItemStack scrap = ItemScraps.create(new MaterialStack(cast.type, cast.amount)); @@ -139,14 +138,14 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc world.spawnEntityInWorld(item); cast.amount = 0; //just for safety } - + for(ItemStack stack : cast.slots) { if(stack != null) { EntityItem drop = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, stack.copy()); world.spawnEntityInWorld(drop); } } - + super.breakBlock(world, x, y, z, b, i); } @@ -154,7 +153,7 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc @SideOnly(Side.CLIENT) public void randomDisplayTick(World world, int x, int y, int z, Random rand) { super.randomDisplayTick(world, x, y, z, rand); - + TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); if(cast.amount > 0 && cast.amount >= cast.getCapacity()) { @@ -164,28 +163,28 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { - + if(tool != ToolType.SCREWDRIVER) return false; - + TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); - - if(cast.slots[0] == null) - return false; - + + if(cast.slots[0] == null) return false; + if(cast.amount > 0) return false; + if(!player.inventory.addItemStackToInventory(cast.slots[0].copy())) { EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, cast.slots[0].copy()); world.spawnEntityInWorld(item); } else { player.inventoryContainer.detectAndSendChanges(); } - + cast.markDirty(); world.markBlockForUpdate(x, y, z); - + cast.slots[0] = null; cast.markDirty(); - + return true; } @@ -193,18 +192,18 @@ public abstract class FoundryCastingBase extends BlockContainer implements ICruc public void printHook(Pre event, World world, int x, int y, int z) { TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z); List text = new ArrayList(); - + if(cast.slots[0] == null) { text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast")); } else if(cast.slots[0].getItem() == ModItems.mold){ Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]); text.add(EnumChatFormatting.BLUE + mold.getTitle()); } - + if(cast.type != null && cast.amount > 0) { text.add(EnumChatFormatting.YELLOW + cast.type.names[0] + ": " + cast.amount + " / " + cast.getCapacity()); } - + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text); } } diff --git a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java index e692c3bf9..8866bfd0f 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java @@ -82,6 +82,12 @@ public class FoundryChannel extends BlockContainer implements ICrucibleAcceptor } } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { @@ -128,10 +134,10 @@ public class FoundryChannel extends BlockContainer implements ICrucibleAcceptor Block b = world.getBlock(x + dir.offsetX, y, z + dir.offsetZ); int meta = world.getBlockMetadata(x + dir.offsetX, y, z + dir.offsetZ); - if(b == ModBlocks.foundry_outlet && meta == dir.ordinal()) + if((b == ModBlocks.foundry_outlet || b == ModBlocks.foundry_slagtap) && meta == dir.ordinal()) return true; - return b == ModBlocks.foundry_channel || b == ModBlocks.foundry_mold || b == ModBlocks.foundry_slagtap; + return b == ModBlocks.foundry_channel || b == ModBlocks.foundry_mold; } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/blocks/machine/FoundryMold.java b/src/main/java/com/hbm/blocks/machine/FoundryMold.java index 1c3182d49..03712d0a2 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryMold.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryMold.java @@ -66,6 +66,11 @@ public class FoundryMold extends FoundryCastingBase { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1D, y + 0.5D, z + 1D); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java index d62f01cb0..dfa51cf3b 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java @@ -96,6 +96,12 @@ public class FoundryOutlet extends BlockContainer implements ICrucibleAcceptor, } } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java index b001d1157..e2543deaf 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java +++ b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java @@ -6,10 +6,8 @@ import com.hbm.tileentity.machine.TileEntityFoundrySlagtap; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; public class FoundrySlagtap extends FoundryOutlet { @@ -28,8 +26,5 @@ public class FoundrySlagtap extends FoundryOutlet { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityFoundrySlagtap(); } - - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return false; } - @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { return false; } - @Override public void printHook(Pre event, World world, int x, int y, int z) { } + } diff --git a/src/main/java/com/hbm/blocks/machine/FurnaceCombination.java b/src/main/java/com/hbm/blocks/machine/FurnaceCombination.java index 83e4b5ce9..4ce96d14d 100644 --- a/src/main/java/com/hbm/blocks/machine/FurnaceCombination.java +++ b/src/main/java/com/hbm/blocks/machine/FurnaceCombination.java @@ -1,18 +1,17 @@ package com.hbm.blocks.machine; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityFurnaceCombination; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import java.util.List; + public class FurnaceCombination extends BlockDummyable implements ITooltipProvider { public FurnaceCombination() { @@ -25,7 +24,7 @@ public class FurnaceCombination extends BlockDummyable implements ITooltipProvid return new TileEntityFurnaceCombination(); return new TileEntityProxyCombo().inventory().fluid(); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return this.standardOpenBehavior(world, x, y, z, player, 0); diff --git a/src/main/java/com/hbm/blocks/machine/GasDuctSolid.java b/src/main/java/com/hbm/blocks/machine/GasDuctSolid.java deleted file mode 100644 index 8351015a7..000000000 --- a/src/main/java/com/hbm/blocks/machine/GasDuctSolid.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.conductor.TileEntityGasDuctSolid; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class GasDuctSolid extends BlockContainer { - - public GasDuctSolid(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityGasDuctSolid(); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/HeaterElectric.java b/src/main/java/com/hbm/blocks/machine/HeaterElectric.java index 7d458daf5..c66fad6b7 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterElectric.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterElectric.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import api.hbm.block.IToolable; import com.hbm.blocks.BlockDummyable; @@ -75,7 +76,7 @@ public class HeaterElectric extends BlockDummyable implements ILookOverlay, IToo TileEntityHeaterElectric heater = (TileEntityHeaterElectric) te; List text = new ArrayList(); - text.add(String.format("%,d", heater.heatEnergy) + " TU"); + text.add(String.format(Locale.US, "%,d", heater.heatEnergy) + " TU"); text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + heater.getConsumption() + " HE/t"); text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + heater.getHeatGen() + " TU/t"); diff --git a/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java b/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java index e502b1a3b..70f1a0b94 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java @@ -29,7 +29,7 @@ public class HeaterFirebox extends BlockDummyable implements ITooltipProvider { /*if(lastCore.getX() == lastBlockSet.getX() && lastCore.getY() + 1 == lastBlockSet.getY() && lastCore.getZ() == lastBlockSet.getZ()) return new TileEntityProxyCombo().inventory().heatSource();*/ - return new TileEntityProxyCombo(true, false, false); + return new TileEntityProxyCombo().inventory().fluid(); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java index fa585caeb..1eb152a67 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java @@ -2,18 +2,27 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityHeaterHeatex; import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; @@ -44,7 +53,34 @@ public class HeaterHeatex extends BlockDummyable implements ILookOverlay, IToolt @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - return this.standardOpenBehavior(world, x, y, z, player, 0); + + if(world.isRemote) { + return true; + } else { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + if(player.isSneaking()) { + TileEntityHeaterHeatex trialEntity = (TileEntityHeaterHeatex) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(trialEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + trialEntity.tanks[0].setTankType(type); + trialEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + return true; + } + } + } else { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + } + + return true; + } } @Override @@ -63,7 +99,7 @@ public class HeaterHeatex extends BlockDummyable implements ILookOverlay, IToolt TileEntityHeaterHeatex heater = (TileEntityHeaterHeatex) te; List text = new ArrayList(); - text.add(String.format("%,d", heater.heatEnergy) + " TU"); + text.add(String.format(Locale.US, "%,d", heater.heatEnergy) + " TU"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java index eb9c13e53..0ddca5005 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -97,7 +98,7 @@ public class HeaterOilburner extends BlockDummyable implements ILookOverlay, ITo FluidType type = heater.tank.getTankType(); if(type.hasTrait(FT_Flammable.class)) { int heat = (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() * heater.setting / 1000); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + String.format("%,d", heat) + " TU/t"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", heat) + " TU/t"); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/HeaterOven.java b/src/main/java/com/hbm/blocks/machine/HeaterOven.java index 1aa60151b..a7373310a 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterOven.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterOven.java @@ -23,7 +23,7 @@ public class HeaterOven extends BlockDummyable implements ITooltipProvider { public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityHeaterOven(); - return new TileEntityProxyCombo(true, false, false); + return new TileEntityProxyCombo().inventory().fluid(); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineAmmoPress.java b/src/main/java/com/hbm/blocks/machine/MachineAmmoPress.java new file mode 100644 index 000000000..b54d34e7f --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineAmmoPress.java @@ -0,0 +1,30 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineAmmoPress; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineAmmoPress extends BlockDummyable { + + public MachineAmmoPress() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return meta >= 12 ? new TileEntityMachineAmmoPress() : new TileEntityProxyCombo().inventory(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override public int[] getDimensions() { return new int[] {1, 0, 0, 0, 1, 1}; } + @Override public int getOffset() { return 0; } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineArcFurnaceLarge.java b/src/main/java/com/hbm/blocks/machine/MachineArcFurnaceLarge.java new file mode 100644 index 000000000..43a767a9b --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineArcFurnaceLarge.java @@ -0,0 +1,100 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.items.machine.ItemScraps; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineArcFurnaceLarge extends BlockDummyable { + + public MachineArcFurnaceLarge() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineArcFurnaceLarge(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 2, 2, 2, 2}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + if(!super.checkRequirement(world, x, y, z, dir, o)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {4, 0, 3, -2, 1, 1}, x, y, z, dir)) return false; + return true; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y, z + dir.offsetZ * o, new int[] {4, 0, 3, -2, 1, 1}, this, dir); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + x += dir.offsetX * o; + z += dir.offsetZ * o; + + this.makeExtra(world, x + dir.offsetX * 2 + rot.offsetX, y, z + dir.offsetZ * 2 + rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 2 - rot.offsetX, y, z + dir.offsetZ * 2 - rot.offsetZ); + this.makeExtra(world, x + rot.offsetX * 2 + dir.offsetX, y, z + rot.offsetZ * 2 + dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 2 - dir.offsetX, y, z + rot.offsetZ * 2 - dir.offsetZ); + this.makeExtra(world, x - rot.offsetX * 2 + dir.offsetX, y, z - rot.offsetZ * 2 + dir.offsetZ); + this.makeExtra(world, x - rot.offsetX * 2 - dir.offsetX, y, z - rot.offsetZ * 2 - dir.offsetZ); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && ((ItemTool) player.getHeldItem().getItem()).getToolClasses(player.getHeldItem()).contains("shovel")) { + TileEntityMachineArcFurnaceLarge crucible = (TileEntityMachineArcFurnaceLarge) world.getTileEntity(pos[0], pos[1], pos[2]); + + for(MaterialStack stack : crucible.liquids) { + ItemStack scrap = ItemScraps.create(new MaterialStack(stack.material, stack.amount)); + if(!player.inventory.addItemStackToInventory(scrap)) { + EntityItem item = new EntityItem(world, x + hitX, y + hitY, z + hitZ, scrap); + world.spawnEntityInWorld(item); + } + } + + player.inventoryContainer.detectAndSendChanges(); + crucible.liquids.clear(); + crucible.markDirty(); + + } else { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + } + return true; + } else { + return true; + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java b/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java new file mode 100644 index 000000000..9cc28da0c --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java @@ -0,0 +1,38 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineArcWelder extends BlockDummyable { + + public MachineArcWelder(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineArcWelder(); + return new TileEntityProxyCombo().inventory().power().fluid(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 0, 1, 1}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineAshpit.java b/src/main/java/com/hbm/blocks/machine/MachineAshpit.java new file mode 100644 index 000000000..578c7c2ce --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineAshpit.java @@ -0,0 +1,47 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineAshpit extends BlockDummyable implements ITooltipProvider { + + public MachineAshpit() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityAshpit(); + return new TileEntityProxyCombo().inventory(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineAssembler.java b/src/main/java/com/hbm/blocks/machine/MachineAssembler.java index 881768570..19b93b840 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAssembler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAssembler.java @@ -1,296 +1,63 @@ package com.hbm.blocks.machine; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.tileentity.machine.TileEntityDummy; +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class MachineAssembler extends BlockContainer implements IMultiblock { +public class MachineAssembler extends BlockDummyable { public MachineAssembler(Material p_i45386_1_) { super(p_i45386_1_); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.0, 0.0, -2.0, 2.0, 2.0, 1.0)); + + this.bounding.add(AxisAlignedBB.getBoundingBox(-0.14375, 0.34375, -2.5, 0.15625, 0.65625, 1.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.85625, 0.34375, -2.5, 1.15625, 0.65625, 1.5)); + + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5, 0.0, -0.5, 0.0, 1.0, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(1.0, 0.0, -1.5, 2.5, 1.0, -0.5)); } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineAssembler(); - + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineAssembler(); + if(meta >= 6) return new TileEntityProxyCombo().power(); + return null; } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.machine_assembler); + public int[] getDimensions() { + return new int[] {1, 0, 2, 1, 2, 1}; } @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if (i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.assemblerDimensionEast)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.assemblerDimensionEast, ModBlocks.dummy_block_assembler); - - // - DummyBlockAssembler.safeBreak = true; - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_assembler); - TileEntity te = world.getTileEntity(x - 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_assembler); - TileEntity te2 = world.getTileEntity(x - 1, y, z + 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 2, y, z, ModBlocks.dummy_port_assembler); - TileEntity te3 = world.getTileEntity(x + 2, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 2, y, z + 1, ModBlocks.dummy_port_assembler); - TileEntity te4 = world.getTileEntity(x + 2, y, z + 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAssembler.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.assemblerDimensionSouth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.assemblerDimensionSouth, ModBlocks.dummy_block_assembler); - - // - DummyBlockAssembler.safeBreak = true; - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_assembler); - TileEntity te = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_assembler); - TileEntity te2 = world.getTileEntity(x - 1, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z + 2, ModBlocks.dummy_port_assembler); - TileEntity te3 = world.getTileEntity(x, y, z + 2); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 2, ModBlocks.dummy_port_assembler); - TileEntity te4 = world.getTileEntity(x - 1, y, z + 2); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAssembler.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.assemblerDimensionWest)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.assemblerDimensionWest, ModBlocks.dummy_block_assembler); - - // - DummyBlockAssembler.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_assembler); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_assembler); - TileEntity te2 = world.getTileEntity(x + 1, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z, ModBlocks.dummy_port_assembler); - TileEntity te3 = world.getTileEntity(x - 2, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z - 1, ModBlocks.dummy_port_assembler); - TileEntity te4 = world.getTileEntity(x - 2, y, z - 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAssembler.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.assemblerDimensionNorth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.assemblerDimensionNorth, ModBlocks.dummy_block_assembler); - - // - DummyBlockAssembler.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_assembler); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_assembler); - TileEntity te2 = world.getTileEntity(x + 1, y, z + 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 2, ModBlocks.dummy_port_assembler); - TileEntity te3 = world.getTileEntity(x, y, z - 2); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z - 2, ModBlocks.dummy_port_assembler); - TileEntity te4 = world.getTileEntity(x + 1, y, z - 2); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAssembler.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } + public int getOffset() { + return 1; } - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x -= dir.offsetX; + z -= dir.offsetZ; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } + this.makeExtra(world, x + rot.offsetX * 2, y, z + rot.offsetZ * 2); + this.makeExtra(world, x - rot.offsetX * 1, y, z - rot.offsetZ * 1); + this.makeExtra(world, x + rot.offsetX * 2 - dir.offsetX, y, z + rot.offsetZ * 2 - dir.offsetZ); + this.makeExtra(world, x - rot.offsetX * 1 - dir.offsetX, y, z - rot.offsetZ * 1 - dir.offsetZ); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java index f4fabf399..7cfde7611 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java @@ -1,11 +1,8 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -22,12 +19,12 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; +import java.util.Random; + public class MachineAutocrafter extends BlockContainer { - @SideOnly(Side.CLIENT) - private IIcon iconTop; - @SideOnly(Side.CLIENT) - private IIcon iconBottom; + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; public MachineAutocrafter() { super(Material.iron); @@ -67,48 +64,48 @@ public class MachineAutocrafter extends BlockContainer { } } - private final Random field_149933_a = new Random(); + private final Random rand = new Random(); @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + ISidedInventory tile = (ISidedInventory) world.getTileEntity(x, y, z); - if(tileentityfurnace != null) { - - for(int i1 = 10; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + if(tile != null) { + + for(int i1 = 10; i1 < tile.getSizeInventory(); ++i1) { + ItemStack itemstack = tile.getStackInSlot(i1); if(itemstack != null) { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; while(itemstack.stackSize > 0) { - int j1 = this.field_149933_a.nextInt(21) + 10; + int j1 = this.rand.nextInt(21) + 10; if(j1 > itemstack.stackSize) { j1 = itemstack.stackSize; } itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); if(itemstack.hasTagCompound()) { entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); } float f3 = 0.05F; - entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); } } } - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); + world.func_147453_f(x, y, z, block); } - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + super.breakBlock(world, x, y, z, block, meta); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java index fe568c409..8e38ba3e7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java @@ -2,19 +2,27 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineAutosaw; import com.hbm.util.I18nUtil; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class MachineAutosaw extends BlockContainer implements ILookOverlay { +public class MachineAutosaw extends BlockContainer implements ILookOverlay, ITooltipProvider { public MachineAutosaw() { super(Material.iron); @@ -39,6 +47,30 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay { public boolean renderAsNormalBlock() { return false; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(!world.isRemote && !player.isSneaking()) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + + TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) world.getTileEntity(x, y, z); + + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, x, y, z, player.getHeldItem()); + if(saw.acceptedFuels.contains(type)) { + saw.tank.setTankType(type); + saw.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + return true; + } + } + + return false; + } + + return true; + } @Override public void printHook(Pre event, World world, int x, int y, int z) { @@ -51,8 +83,13 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay { TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) te; List text = new ArrayList(); - text.add(I18nUtil.resolveKey("hbmfluid." + saw.tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); + text.add(saw.tank.getTankType().getLocalizedName() + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBattery.java b/src/main/java/com/hbm/blocks/machine/MachineBattery.java index 5aa2f11e0..7f4616a5e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBattery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBattery.java @@ -280,6 +280,9 @@ public class MachineBattery extends BlockContainer implements ILookOverlay, IPer @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.GOLD + "Stores up to "+ BobMathUtil.getShortNumber(this.maxPower) + "HE"); + list.add(EnumChatFormatting.GOLD + "Charge speed: "+ BobMathUtil.getShortNumber(this.maxPower / 200) + "HE"); + list.add(EnumChatFormatting.GOLD + "Discharge speed: "+ BobMathUtil.getShortNumber(this.maxPower / 600) + "HE"); list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.getShortNumber(persistentTag.getLong("power")) + "/" + BobMathUtil.getShortNumber(this.maxPower) + "HE"); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index 178d0dbb8..bb8759c0d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -1,29 +1,32 @@ package com.hbm.blocks.machine; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; -import com.hbm.util.I18nUtil; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + public class MachineBigAssTank9000 extends BlockDummyable implements IPersistentInfoProvider { public MachineBigAssTank9000(Material mat) { @@ -32,7 +35,7 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntityMachineBAT9000(); if(meta >= 6) return new TileEntityProxyCombo(false, false, true); return null; @@ -70,38 +73,82 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false; if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, 0, 1, 1, 2, -2}, x, y, z, dir)) return false; if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, 0, 1, 1, -2, 2}, x, y, z, dir)) return false; - + return true; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - + if(world.isRemote) { return true; } else if(!player.isSneaking()) { - + int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return false; - + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); //we can do this because nobody is stopping me from doing this + return true; + } else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineBAT9000 trialEntity = (TileEntityMachineBAT9000) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(trialEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + trialEntity.tank.setTankType(type); + trialEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + return true; } else { return true; } } - + @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { return IPersistentNBT.getDrops(world, x, y, z, this); } + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + + int meta = world.getBlockMetadata(x, y, z); + + if(meta >= 6) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return 0; + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityMachineBAT9000)) + return 0; + + TileEntityMachineBAT9000 tank = (TileEntityMachineBAT9000) te; + return tank.getComparatorPower(); + } + + return 0; + } + @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineBoiler.java index 24bd24f16..b56313064 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBoiler.java @@ -1,38 +1,27 @@ package com.hbm.blocks.machine; -import java.util.Random; +import java.util.ArrayList; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineBoiler; -import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class MachineBoiler extends BlockContainer { +public class MachineBoiler extends Block { - private final Random field_149933_a = new Random(); private final boolean isActive; - private static boolean keepInventory; - + @SideOnly(Side.CLIENT) private IIcon iconFront; @SideOnly(Side.CLIENT) @@ -42,294 +31,82 @@ public class MachineBoiler extends BlockContainer { super(Material.iron); isActive = blockState; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - if(this == ModBlocks.machine_boiler_off || this == ModBlocks.machine_boiler_on) { + if(this == ModBlocks.machine_boiler_off) { this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_boiler_front_lit" : ":machine_boiler_front")); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_boiler_base"); this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":machine_boiler_side"); } - - if(this == ModBlocks.machine_boiler_electric_off || this == ModBlocks.machine_boiler_electric_on) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_boiler_electric_front_lit" : ":machine_boiler_electric_front")); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_boiler_port"); - this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":machine_boiler_side"); - } } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { - + if(side == 0 || side == 1) return this.blockIcon; - + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.iconSide); } - + @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - if(this == ModBlocks.machine_boiler_off || this == ModBlocks.machine_boiler_on) - return Item.getItemFromBlock(ModBlocks.machine_boiler_off); - if(this == ModBlocks.machine_boiler_electric_off || this == ModBlocks.machine_boiler_electric_on) - return Item.getItemFromBlock(ModBlocks.machine_boiler_electric_off); - - return null; - } - + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + ret.add(new ItemStack(ModItems.scraps, 3 + world.rand.nextInt(4), Mats.MAT_STEEL.id)); + return ret; + } + @Override public void onBlockAdded(World world, int x, int y, int z) { super.onBlockAdded(world, x, y, z); this.setDefaultDirection(world, x, y, z); } - + private void setDefaultDirection(World world, int x, int y, int z) { - if(!world.isRemote) - { + if(!world.isRemote) { Block block1 = world.getBlock(x, y, z - 1); Block block2 = world.getBlock(x, y, z + 1); Block block3 = world.getBlock(x - 1, y, z); Block block4 = world.getBlock(x + 1, y, z); - + byte b0 = 3; - - if(block1.func_149730_j() && !block2.func_149730_j()) - { + + if(block1.func_149730_j() && !block2.func_149730_j()) { b0 = 3; } - if(block2.func_149730_j() && !block1.func_149730_j()) - { + if(block2.func_149730_j() && !block1.func_149730_j()) { b0 = 2; } - if(block3.func_149730_j() && !block4.func_149730_j()) - { + if(block3.func_149730_j() && !block4.func_149730_j()) { b0 = 5; } - if(block4.func_149730_j() && !block3.func_149730_j()) - { + if(block4.func_149730_j() && !block3.func_149730_j()) { b0 = 4; } - + world.setBlockMetadataWithNotify(x, y, z, b0, 2); } } - + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - - if(itemStack.hasDisplayName()) - { - ((TileEntityMachineBoiler)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); - } } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityMachineBoiler) { - - TileEntityMachineBoiler entity = (TileEntityMachineBoiler) te; - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - } - - if(te instanceof TileEntityMachineBoilerElectric) { - - TileEntityMachineBoilerElectric entity = (TileEntityMachineBoilerElectric) te; - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - } - return true; - } else { - return false; - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - - if(this == ModBlocks.machine_boiler_off || this == ModBlocks.machine_boiler_on) - return new TileEntityMachineBoiler(); - if(this == ModBlocks.machine_boiler_electric_off || this == ModBlocks.machine_boiler_electric_on) - return new TileEntityMachineBoilerElectric(); - - return null; - } - - public static void updateBlockState(boolean isProcessing, World world, int x, int y, int z) { - int i = world.getBlockMetadata(x, y, z); - Block block = world.getBlock(x, y, z); - TileEntity entity = world.getTileEntity(x, y, z); - keepInventory = true; - - if(block == ModBlocks.machine_boiler_off || block == ModBlocks.machine_boiler_on) - if(isProcessing) - { - world.setBlock(x, y, z, ModBlocks.machine_boiler_on); - } else { - world.setBlock(x, y, z, ModBlocks.machine_boiler_off); - } - - if(block == ModBlocks.machine_boiler_electric_off || block == ModBlocks.machine_boiler_electric_on) - if(isProcessing) - { - world.setBlock(x, y, z, ModBlocks.machine_boiler_electric_on); - } else { - world.setBlock(x, y, z, ModBlocks.machine_boiler_electric_off); - } - - keepInventory = false; - world.setBlockMetadataWithNotify(x, y, z, i, 3); - - if(entity != null) { - entity.validate(); - world.setTileEntity(x, y, z, entity); - } - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(World p_149734_1_, int x, int y, int z, Random rand) - { - if (isActive) { - - if(this == ModBlocks.machine_boiler_on) { - int l = p_149734_1_.getBlockMetadata(x, y, z); - float f = x + 0.5F; - float f1 = y + 0.25F + rand.nextFloat() * 6.0F / 16.0F; - float f2 = z + 0.5F; - float f3 = 0.52F; - float f4 = rand.nextFloat() * 0.6F - 0.3F; - - if (l == 4) - { - p_149734_1_.spawnParticle("smoke", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 5) - { - p_149734_1_.spawnParticle("smoke", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 2) - { - p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - } - else if (l == 3) - { - p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - } - } else { - int l = p_149734_1_.getBlockMetadata(x, y, z); - float f = x + 0.5F; - float f1 = y + 0.25F + rand.nextFloat() * 6.0F / 16.0F; - float f2 = z + 0.5F; - float f3 = 0.52F; - float f4 = rand.nextFloat() * 0.6F - 0.3F; - - if (l == 4) - { - p_149734_1_.spawnParticle("reddust", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 5) - { - p_149734_1_.spawnParticle("reddust", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 2) - { - p_149734_1_.spawnParticle("reddust", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - } - else if (l == 3) - { - p_149734_1_.spawnParticle("reddust", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - } - } - } - } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBrickFurnace.java b/src/main/java/com/hbm/blocks/machine/MachineBrickFurnace.java new file mode 100644 index 000000000..f4164f964 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineBrickFurnace.java @@ -0,0 +1,171 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityFurnaceBrick; +import com.hbm.util.ItemStackUtil; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import java.util.Random; + +public class MachineBrickFurnace extends BlockContainer { + + private final Random rand = new Random(); + private final boolean isActive; + private static boolean keepInventory; + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + @SideOnly(Side.CLIENT) private IIcon iconFront; + + public MachineBrickFurnace(boolean blockState) { + super(Material.iron); + isActive = blockState; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_furnace_brick_top"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_furnace_brick_bottom"); + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_furnace_brick_front_on" : ":machine_furnace_brick_front_off")); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_furnace_brick_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : (side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon))); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityFurnaceBrick(); + } + + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + return Item.getItemFromBlock(ModBlocks.machine_furnace_brick_off); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + this.setDefaultDirection(world, x, y, z); + } + + private void setDefaultDirection(World world, int x, int y, int z) { + if(!world.isRemote) { + Block nZ = world.getBlock(x, y, z - 1); + Block pZ = world.getBlock(x, y, z + 1); + Block nX = world.getBlock(x - 1, y, z); + Block pX = world.getBlock(x + 1, y, z); + + byte meta = 3; + + if(nZ.func_149730_j() && !pZ.func_149730_j()) meta = 3; + if(pZ.func_149730_j() && !nZ.func_149730_j()) meta = 2; + if(nX.func_149730_j() && !pX.func_149730_j()) meta = 5; + if(pX.func_149730_j() && !nX.func_149730_j()) meta = 4; + + world.setBlockMetadataWithNotify(x, y, z, meta, 2); + } + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + + if(itemStack.hasDisplayName()) ((TileEntityFurnaceBrick)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + TileEntityFurnaceBrick entity = (TileEntityFurnaceBrick) world.getTileEntity(x, y, z); + if(entity != null) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + return true; + } else { + return false; + } + } + + public static void updateBlockState(boolean isProcessing, World world, int x, int y, int z) { + int i = world.getBlockMetadata(x, y, z); + TileEntity entity = world.getTileEntity(x, y, z); + keepInventory = true; + + if(isProcessing) { + world.setBlock(x, y, z, ModBlocks.machine_furnace_brick_on); + } else { + world.setBlock(x, y, z, ModBlocks.machine_furnace_brick_off); + } + + keepInventory = false; + world.setBlockMetadataWithNotify(x, y, z, i, 2); + + if(entity != null) { + entity.validate(); + world.setTileEntity(x, y, z, entity); + } + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + if(!keepInventory) ItemStackUtil.spillItems(world, x, y, z, block, rand); + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random rand) { + if(isActive) { + int meta = world.getBlockMetadata(x, y, z); + float cX = x + 0.5F; + float cY = y + rand.nextFloat() * 0.375F; + float cZ = z + 0.5F; + float off = 0.52F; + float var = rand.nextFloat() * 0.6F - 0.3F; + rand.nextFloat(); + rand.nextFloat(); + + if(meta == 4) { + world.spawnParticle("smoke", cX - off, cY, cZ + var, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", cX - off, cY, cZ + var, 0.0D, 0.0D, 0.0D); + } else if(meta == 5) { + world.spawnParticle("smoke", cX + off, cY, cZ + var, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", cX + off, cY, cZ + var, 0.0D, 0.0D, 0.0D); + } else if(meta == 2) { + world.spawnParticle("smoke", cX + var, cY, cZ - off, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", cX + var, cY, cZ - off, 0.0D, 0.0D, 0.0D); + } else if(meta == 3) { + world.spawnParticle("smoke", cX + var, cY, cZ + off, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", cX + var, cY, cZ + off, 0.0D, 0.0D, 0.0D); + } + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCMBFactory.java b/src/main/java/com/hbm/blocks/machine/MachineCMBFactory.java deleted file mode 100644 index 92210dd35..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineCMBFactory.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineCMBFactory; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class MachineCMBFactory extends BlockContainer { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - - @SideOnly(Side.CLIENT) - private IIcon iconTop; - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_cmb_top"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_cmb_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_combine_factory); - } - - public MachineCMBFactory(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineCMBFactory(); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityMachineCMBFactory entity = (TileEntityMachineCMBFactory) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineCMBFactory tileentityfurnace = (TileEntityMachineCMBFactory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index be083f6e3..85bbf4b60 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -10,17 +10,18 @@ import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -43,7 +44,7 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP @SideOnly(Side.CLIENT) public IIcon iconBottom; @SideOnly(Side.CLIENT) public IIcon iconInnerTop; @SideOnly(Side.CLIENT) public IIcon iconInnerSide; - + protected long power; String name; @@ -52,7 +53,7 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP this.power = power; this.name = name; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -82,34 +83,37 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP @Override public void printHook(Pre event, World world, int x, int y, int z) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(!(te instanceof TileEntityCapacitor)) return; - + TileEntityCapacitor battery = (TileEntityCapacitor) te; List text = new ArrayList(); text.add(BobMathUtil.getShortNumber(battery.getPower()) + " / " + BobMathUtil.getShortNumber(battery.getMaxPower()) + "HE"); - + double percent = (double) battery.getPower() / (double) battery.getMaxPower(); int charge = (int) Math.floor(percent * 10_000D); int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); text.add("&[" + color + "&]" + (charge / 100D) + "%"); text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + "+" + BobMathUtil.getShortNumber(battery.powerReceived) + "HE/t"); text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + "-" + BobMathUtil.getShortNumber(battery.powerSent) + "HE/t"); - + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.GOLD + "Stores up to "+ BobMathUtil.getShortNumber(this.power) + "HE"); + list.add(EnumChatFormatting.GOLD + "Charge speed: "+ BobMathUtil.getShortNumber(this.power / 200) + "HE"); + list.add(EnumChatFormatting.GOLD + "Discharge speed: "+ BobMathUtil.getShortNumber(this.power / 600) + "HE"); list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.getShortNumber(persistentTag.getLong("power")) + "/" + BobMathUtil.getShortNumber(persistentTag.getLong("maxPower")) + "HE"); } @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray("tile.capacitor.desc")) list.add(EnumChatFormatting.YELLOW + s); } else { @@ -118,7 +122,7 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); } } - + @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { return IPersistentNBT.getDrops(world, x, y, z, this); @@ -131,88 +135,107 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP @Override public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { - + if(!player.capabilities.isCreativeMode) { harvesters.set(player); this.dropBlockAsItem(world, x, y, z, meta, 0); harvesters.set(null); } } - + @Override public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); player.addExhaustion(0.025F); } - public static class TileEntityCapacitor extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver, IPersistentNBT { - + public static class TileEntityCapacitor extends TileEntityLoadedBase implements IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT { + public long power; protected long maxPower; - public long prevPower; public long powerReceived; public long powerSent; - + public TileEntityCapacitor() { } - + public TileEntityCapacitor(long maxPower) { this.maxPower = maxPower; } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - - long gain = power - prevPower; ForgeDirection opp = ForgeDirection.getOrientation(this.getBlockMetadata()); ForgeDirection dir = opp.getOpposite(); - + BlockPos pos = new BlockPos(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - + boolean didStep = false; ForgeDirection last = null; - + while(worldObj.getBlock(pos.getX(), pos.getY(), pos.getZ()) == ModBlocks.capacitor_bus) { ForgeDirection current = ForgeDirection.getOrientation(worldObj.getBlockMetadata(pos.getX(), pos.getY(), pos.getZ())); if(!didStep) last = current; didStep = true; - + if(last != current) { pos = null; break; } - + pos = pos.offset(current); } - - long preSend = power; + if(pos != null && last != null) { this.tryUnsubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ()); - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), last); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), last); } - long sent = preSend - power; - - this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord+ opp.offsetY, zCoord + opp.offsetZ, opp); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setLong("maxPower", maxPower); - data.setLong("rec", gain); - data.setLong("sent", sent); - INBTPacketReceiver.networkPack(this, data, 15); - - this.prevPower = power; + + this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord + opp.offsetY, zCoord + opp.offsetZ, opp); + + networkPackNT(15); + + this.powerSent = 0; + this.powerReceived = 0; } } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.maxPower = nbt.getLong("maxPower"); - this.powerReceived = nbt.getLong("rec"); - this.powerSent = nbt.getLong("sent"); + public void serialize(ByteBuf buf) { + buf.writeLong(power); + buf.writeLong(maxPower); + buf.writeLong(powerReceived); + buf.writeLong(powerSent); + } + + @Override + public void deserialize(ByteBuf buf) { + power = buf.readLong(); + maxPower = buf.readLong(); + powerReceived = buf.readLong(); + powerSent = buf.readLong(); + } + + @Override + public long transferPower(long power) { + if(power + this.getPower() <= this.getMaxPower()) { + this.setPower(power + this.getPower()); + this.powerReceived += power; + return 0; + } + long capacity = this.getMaxPower() - this.getPower(); + long overshoot = power - capacity; + this.powerReceived += (this.getMaxPower() - this.getPower()); + this.setPower(this.getMaxPower()); + return overshoot; + } + + @Override + public void usePower(long power) { + this.powerSent += Math.min(this.getPower(), power); + this.setPower(this.getPower() - power); } @Override @@ -225,6 +248,14 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP return maxPower; } + @Override public long getProviderSpeed() { + return this.getMaxPower() / 300; + } + + @Override public long getReceiverSpeed() { + return this.getMaxPower() / 100; + } + @Override public ConnectionPriority getPriority() { return ConnectionPriority.LOW; @@ -234,7 +265,7 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP public void setPower(long power) { this.power = power; } - + @Override public boolean canConnect(ForgeDirection dir) { return dir == ForgeDirection.getOrientation(this.getBlockMetadata()); @@ -254,14 +285,14 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP this.power = data.getLong("power"); this.maxPower = data.getLong("maxPower"); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.power = nbt.getLong("power"); this.maxPower = nbt.getLong("maxPower"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java index fa7aa8dbe..1dcac8474 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java @@ -1,11 +1,8 @@ package com.hbm.blocks.machine; -import java.util.List; - +import api.hbm.energymk2.IEnergyConnectorBlock; import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; - -import api.hbm.energy.IEnergyConnectorBlock; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -20,8 +17,10 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock, ITooltipProvider { - + @SideOnly(Side.CLIENT) private IIcon topIcon; public MachineCapacitorBus(Material mat) { @@ -38,7 +37,7 @@ public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock, public IIcon getIcon(int side, int meta) { return side == meta ? topIcon : blockIcon; } - + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { int l = BlockPistonBase.determineOrientation(world, x, y, z, player); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java index 247ee608d..dd10cb3d1 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java @@ -1,9 +1,5 @@ package com.hbm.blocks.machine; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.handler.MultiblockHandlerXR; @@ -12,7 +8,6 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticCracker; import com.hbm.util.I18nUtil; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -24,6 +19,9 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + public class MachineCatalyticCracker extends BlockDummyable implements ILookOverlay { public MachineCatalyticCracker(Material mat) { @@ -32,12 +30,12 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntityMachineCatalyticCracker(); if(meta >= extra) return new TileEntityProxyCombo(false, false, true); - + return null; } @@ -50,33 +48,33 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver public int getOffset() { return 3; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - + if(!world.isRemote && !player.isSneaking()) { - + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return false; - + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); - + if(!(te instanceof TileEntityMachineCatalyticCracker)) return false; - + TileEntityMachineCatalyticCracker cracker = (TileEntityMachineCatalyticCracker) te; FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); cracker.tanks[0].setTankType(type); cracker.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); - + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + return true; } return false; - + } else { return true; } @@ -99,7 +97,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{13, 0, 0, 3, 2, 1}, this, dir); MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{14, -13, -1, 2, 1, 0}, this, dir); MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{3, -1, 2, 3, -1, 3}, this, dir); - + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); this.makeExtra(world, x + dir.offsetX * o + dir.offsetX * 3 + rot.offsetX, y + dir.offsetY * o, z + dir.offsetZ * o + dir.offsetZ * 3 + rot.offsetZ); @@ -116,22 +114,22 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver @Override public void printHook(Pre event, World world, int x, int y, int z) { int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return; - + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); - + if(!(te instanceof TileEntityMachineCatalyticCracker)) return; - + TileEntityMachineCatalyticCracker cracker = (TileEntityMachineCatalyticCracker) te; - + List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); - + text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + cracker.tanks[i].getTankType().getLocalizedName() + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticReformer.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticReformer.java index 9d40aefe7..b8401426a 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticReformer.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticReformer.java @@ -1,17 +1,24 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticReformer; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineCatalyticReformer extends BlockDummyable { +import java.util.List; + +public class MachineCatalyticReformer extends BlockDummyable implements IPersistentInfoProvider { public MachineCatalyticReformer(Material mat) { super(mat); @@ -23,7 +30,7 @@ public class MachineCatalyticReformer extends BlockDummyable { if(meta >= 6) return new TileEntityProxyCombo().fluid().power(); return null; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return standardOpenBehavior(world, x, y, z, player, side); @@ -41,7 +48,7 @@ public class MachineCatalyticReformer extends BlockDummyable { super.fillSpace(world, x, y, z, dir, o); MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -3, 1, 0, -1, 2}, this, dir); MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {6, -3, 1, 1, 2, 0}, this, dir); - + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ + 1); @@ -61,4 +68,14 @@ public class MachineCatalyticReformer extends BlockDummyable { public int getOffset() { return 1; } + + @Override + public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { + + for(int i = 0; i < 4; i++) { + FluidTank tank = new FluidTank(Fluids.NONE, 0); + tank.readFromNBT(persistentTag, "" + i); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); + } + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java b/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java index b1315d224..3cfc64582 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java @@ -19,6 +19,7 @@ public class MachineCentrifuge extends BlockDummyable { super(mat); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5D, 0D, -0.5D, 0.5D, 1D, 0.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.375D, 1D, -0.375D, 0.375D, 4D, 0.375D)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemplant.java b/src/main/java/com/hbm/blocks/machine/MachineChemplant.java index c5c7e1cca..cfe87c0b5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemplant.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemplant.java @@ -7,6 +7,7 @@ import com.hbm.tileentity.machine.TileEntityMachineChemplant; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -14,6 +15,15 @@ public class MachineChemplant extends BlockDummyable { public MachineChemplant(Material p_i45386_1_) { super(p_i45386_1_); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.0, 0.0, -2.0, 2.0, 3.0, 1.0)); + + // some guy once told me not to use magic numbers + // so I turned him into a newt + this.bounding.add(AxisAlignedBB.getBoundingBox(-0.14375, 0.34375, -2.5, 0.15625, 0.65625, 1.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.85625, 0.34375, -2.5, 1.15625, 0.65625, 1.5)); + + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5, 0.0, -0.5, 0.0, 1.0, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(1.0, 0.0, -1.5, 2.5, 1.0, -0.5)); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java b/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java new file mode 100644 index 000000000..f227488c4 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java @@ -0,0 +1,53 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityChimneyBrick; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.List; + +public class MachineChimneyBrick extends BlockDummyable implements ITooltipProvider { + + public MachineChimneyBrick(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityChimneyBrick(); + if(meta >= 6) return new TileEntityProxyCombo().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {12, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java new file mode 100644 index 000000000..f32078e16 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java @@ -0,0 +1,53 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityChimneyIndustrial; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.List; + +public class MachineChimneyIndustrial extends BlockDummyable implements ITooltipProvider { + + public MachineChimneyIndustrial(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityChimneyIndustrial(); + if(meta >= 6) return new TileEntityProxyCombo().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {22, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineChungus.java b/src/main/java/com/hbm/blocks/machine/MachineChungus.java index 957169a40..e545ba4c5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChungus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChungus.java @@ -1,23 +1,31 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityChungus; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineChungus extends BlockDummyable implements ITooltipProvider { +public class MachineChungus extends BlockDummyable implements ITooltipProvider, ILookOverlay { public MachineChungus(Material mat) { super(mat); @@ -135,4 +143,33 @@ public class MachineChungus extends BlockDummyable implements ITooltipProvider { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { this.addStandardInfo(stack, player, list, ext); } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(te instanceof TileEntityChungus)) return; + + TileEntityChungus chungus = (TileEntityChungus) te; + List text = new ArrayList(); + + FluidTank tankInput = chungus.tanks[0]; + FluidTank tankOutput = chungus.tanks[1]; + + FluidType inputType = tankInput.getTankType(); + FluidType outputType = Fluids.NONE; + + if(inputType.hasTrait(FT_Coolable.class)) { + outputType = inputType.getTrait(FT_Coolable.class).coolsTo; + } + + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + inputType.getLocalizedName() + ": " + tankInput.getFill() + "/" + tankInput.getMaxFill() + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + outputType.getLocalizedName() + ": " + tankOutput.getFill() + "/" + tankOutput.getMaxFill() + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(chungus.power) + "/" + BobMathUtil.getShortNumber(chungus.getMaxPower()) + "HE"); + + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCoal.java b/src/main/java/com/hbm/blocks/machine/MachineCoal.java deleted file mode 100644 index 5a56ecf5a..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineCoal.java +++ /dev/null @@ -1,257 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineCoal; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class MachineCoal extends BlockContainer { - - private final Random field_149933_a = new Random(); - private final boolean isActive; - private static boolean keepInventory; - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - - public MachineCoal(boolean blockState) { - super(Material.iron); - isActive = blockState; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_coal_front_on" : ":machine_coal_front_off")); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_coal_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_coal_off); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - this.setDefaultDirection(world, x, y, z); - } - - private void setDefaultDirection(World world, int x, int y, int z) { - if(!world.isRemote) - { - Block block1 = world.getBlock(x, y, z - 1); - Block block2 = world.getBlock(x, y, z + 1); - Block block3 = world.getBlock(x - 1, y, z); - Block block4 = world.getBlock(x + 1, y, z); - - byte b0 = 3; - - if(block1.func_149730_j() && !block2.func_149730_j()) - { - b0 = 3; - } - if(block2.func_149730_j() && !block1.func_149730_j()) - { - b0 = 2; - } - if(block3.func_149730_j() && !block4.func_149730_j()) - { - b0 = 5; - } - if(block4.func_149730_j() && !block3.func_149730_j()) - { - b0 = 4; - } - - world.setBlockMetadataWithNotify(x, y, z, b0, 2); - } - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - - if(itemStack.hasDisplayName()) - { - ((TileEntityMachineCoal)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityMachineCoal entity = (TileEntityMachineCoal) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineCoal(); - } - - public static void updateBlockState(boolean isProcessing, World world, int x, int y, int z) { - int i = world.getBlockMetadata(x, y, z); - TileEntity entity = world.getTileEntity(x, y, z); - keepInventory = true; - - if(isProcessing) - { - world.setBlock(x, y, z, ModBlocks.machine_coal_on); - }else{ - world.setBlock(x, y, z, ModBlocks.machine_coal_off); - } - - keepInventory = false; - world.setBlockMetadataWithNotify(x, y, z, i, 2); - - if(entity != null) { - entity.validate(); - world.setTileEntity(x, y, z, entity); - } - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineCoal tileentityfurnace = (TileEntityMachineCoal)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(World p_149734_1_, int x, int y, int z, Random rand) - { - if (isActive) - { - int l = p_149734_1_.getBlockMetadata(x, y, z); - float f = x + 0.5F; - float f1 = y + 0.0F + rand.nextFloat() * 6.0F / 16.0F; - float f2 = z + 0.5F; - float f3 = 0.52F; - float f4 = rand.nextFloat() * 0.6F - 0.3F; - - if (l == 4) - { - p_149734_1_.spawnParticle("smoke", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 5) - { - p_149734_1_.spawnParticle("smoke", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 2) - { - p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - } - else if (l == 3) - { - p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - } - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCombustionEngine.java b/src/main/java/com/hbm/blocks/machine/MachineCombustionEngine.java index 162841266..47a7f1f27 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCombustionEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCombustionEngine.java @@ -3,7 +3,6 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineCombustionEngine; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -34,15 +33,15 @@ public class MachineCombustionEngine extends BlockDummyable { public int getOffset() { return 0; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return this.standardOpenBehavior(world, x, y, z, player, 0); } - + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java index e498acde6..8bbe97b99 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityCondenser; @@ -39,7 +38,7 @@ public class MachineCondenser extends BlockContainer implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < condenser.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + condenser.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET +condenser.tanks[i].getTankType().getLocalizedName() + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java new file mode 100644 index 000000000..e4918fc42 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java @@ -0,0 +1,80 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityCondenserPowered; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; + +public class MachineCondenserPowered extends BlockDummyable implements ILookOverlay { + + public MachineCondenserPowered(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int meta) { + if(meta >= 12) return new TileEntityCondenserPowered(); + if(meta >= 6) return new TileEntityProxyCombo().power().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {2, 0, 1, 1, 3, 3}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x = x + dir.offsetX * o; + z = z + dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x + rot.offsetX * 3, y + 1, z + rot.offsetZ * 3); + this.makeExtra(world, x - rot.offsetX * 3, y + 1, z - rot.offsetZ * 3); + this.makeExtra(world, x + dir.offsetX + rot.offsetX, y + 1, z + dir.offsetZ + rot.offsetZ); + this.makeExtra(world, x + dir.offsetX - rot.offsetX, y + 1, z + dir.offsetZ - rot.offsetZ); + this.makeExtra(world, x - dir.offsetX + rot.offsetX, y + 1, z - dir.offsetZ + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX - rot.offsetX, y + 1, z - dir.offsetZ - rot.offsetZ); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityCondenserPowered)) return; + + TileEntityCondenserPowered tower = (TileEntityCondenserPowered) te; + List text = new ArrayList(); + + text.add(BobMathUtil.getShortNumber(tower.power) + "HE / " + BobMathUtil.getShortNumber(tower.maxPower) + "HE"); + + for(int i = 0; i < tower.tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java b/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java new file mode 100644 index 000000000..396ee0702 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java @@ -0,0 +1,172 @@ +package com.hbm.blocks.machine; + +import api.hbm.block.IToolable; +import api.hbm.conveyor.IConveyorBelt; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.machine.ItemStamp; +import com.hbm.tileentity.machine.TileEntityConveyorPress; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; + +public class MachineConveyorPress extends BlockDummyable implements IConveyorBelt, ILookOverlay, IToolable, ITooltipProvider { + + public MachineConveyorPress(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityConveyorPress(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {2, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityConveyorPress)) + return false; + + TileEntityConveyorPress press = (TileEntityConveyorPress) te; + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemStamp && press.slots[0] == null) { + press.slots[0] = player.getHeldItem().copy(); + press.slots[0].stackSize = 1; + player.getHeldItem().stackSize--; + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + press.markChanged(); + world.markBlockForUpdate(x, y, z); + return true; + } + } + + return false; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool != ToolType.SCREWDRIVER) return false; + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityConveyorPress)) + return false; + + TileEntityConveyorPress press = (TileEntityConveyorPress) te; + + if(press.slots[0] == null) return false; + + if(!player.inventory.addItemStackToInventory(press.slots[0].copy())) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, press.slots[0].copy()); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } + + press.slots[0] = null; + press.markChanged(); + + return true; + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); + Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); + Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord - dir.offsetY * speed, snap.zCoord - dir.offsetZ * speed); + Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord)); + double len = motion.lengthVector(); + Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed); + return ret; + } + + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) { + int meta = world.getBlockMetadata(x, y - 1, z) - offset; + return ForgeDirection.getOrientation(meta).getRotation(ForgeDirection.UP); + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + double posX = x + 0.5; + double posZ = z + 0.5; + if(dir.offsetX != 0) posX = itemPos.xCoord; + if(dir.offsetZ != 0) posZ = itemPos.zCoord; + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } + + @Override + public boolean canItemStay(World world, int x, int y, int z, Vec3 itemPos) { + return world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y - 1, z) >= 12; + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityConveyorPress)) + return; + + TileEntityConveyorPress press = (TileEntityConveyorPress) te; + List text = new ArrayList(); + + text.add(BobMathUtil.getShortNumber(press.power) + "HE / " + BobMathUtil.getShortNumber(press.maxPower) + "HE"); + text.add("Installed stamp: " + ((press.syncStack == null || press.syncStack.getItem() == null) ? (EnumChatFormatting.RED + "NONE") : press.syncStack.getDisplayName())); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCrucible.java b/src/main/java/com/hbm/blocks/machine/MachineCrucible.java index b2ccf824c..cb9671776 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCrucible.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCrucible.java @@ -37,6 +37,7 @@ public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 0.5D, -1.25D, -1D, 1.5D, 1.25D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 0.5D, 1D, 1.25D, 1.5D, 1.25D)); this.bounding.add(AxisAlignedBB.getBoundingBox(1D, 0.5D, -1.25D, 1.25D, 1.5D, 1.25D)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineCrystallizer.java b/src/main/java/com/hbm/blocks/machine/MachineCrystallizer.java index 25ea1b062..29ed20388 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCrystallizer.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCrystallizer.java @@ -3,9 +3,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.TileEntityProxyInventory; import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -17,7 +15,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class MachineCrystallizer extends BlockDummyable { - + @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -27,34 +25,23 @@ public class MachineCrystallizer extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { - - if(meta >= 12) - return new TileEntityMachineCrystallizer(); - - if(meta >= 8 && meta <= 11) - return new TileEntityProxyInventory(); - - if(meta == 7) - return new TileEntityProxyCombo(false, true, true); - + if(meta >= 12) return new TileEntityMachineCrystallizer(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); return null; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { + } else if(!player.isSneaking()) { int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return false; - + TileEntityMachineCrystallizer entity = (TileEntityMachineCrystallizer) world.getTileEntity(pos[0], pos[1], pos[2]); - if(entity != null) - { + if(entity != null) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); } return true; @@ -65,31 +52,21 @@ public class MachineCrystallizer extends BlockDummyable { @Override public int[] getDimensions() { - return new int[] { 6, 0, 1, 1, 1, 1 }; + return new int[] { 5, 0, 1, 1, 1, 1 }; } @Override public int getOffset() { return 1; } - + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); - this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); - this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); - this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); - - if(dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH) { - this.makeExtra(world, x + dir.offsetX * o + 1, y + 5, z + dir.offsetZ * o); - this.makeExtra(world, x + dir.offsetX * o - 1, y + 5, z + dir.offsetZ * o); - } - - if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { - this.makeExtra(world, x + dir.offsetX * o, y + 5, z + dir.offsetZ * o + 1); - this.makeExtra(world, x + dir.offsetX * o, y + 5, z + dir.offsetZ * o - 1); - } + this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o - 1); + this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o - 1); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java b/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java index 285f2f838..6ace99312 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java @@ -25,7 +25,7 @@ public class MachineCyclotron extends BlockDummyable { return new TileEntityMachineCyclotron(); if(meta >= 6) - return new TileEntityProxyCombo(false, true, true); + return new TileEntityProxyCombo().inventory().power().fluid(); return null; } @@ -93,12 +93,16 @@ public class MachineCyclotron extends BlockDummyable { super.fillSpace(world, x, y, z, dir, o); this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o); this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o - 1); this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o); this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o - 1); this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o + 2); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 2); this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o + 2); this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o - 2); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 2); this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o - 2); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineDeaerator.java b/src/main/java/com/hbm/blocks/machine/MachineDeaerator.java deleted file mode 100644 index e16e85817..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineDeaerator.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.BlockDummyable; -import com.hbm.tileentity.machine.TileEntityDeaerator; - -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class MachineDeaerator extends BlockDummyable { - - public MachineDeaerator(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDeaerator(); - } - - @Override - public int[] getDimensions() { - return new int[] {2, 0, 3, 4, 1, 1}; - } - - @Override - public int getOffset() { - return 4; - } - - @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/blocks/machine/MachineDeuteriumExtractor.java b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java index a8e0dc586..ba472e1d2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java @@ -1,15 +1,10 @@ package com.hbm.blocks.machine; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityDeuteriumExtractor; import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; @@ -21,6 +16,9 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import java.util.ArrayList; +import java.util.List; + public class MachineDeuteriumExtractor extends BlockContainer implements ILookOverlay { public MachineDeuteriumExtractor(Material mat) { @@ -55,20 +53,20 @@ public class MachineDeuteriumExtractor extends BlockContainer implements ILookOv @Override public void printHook(Pre event, World world, int x, int y, int z) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(!(te instanceof TileEntityDeuteriumExtractor)) return; - + TileEntityDeuteriumExtractor extractor = (TileEntityDeuteriumExtractor) te; - + List text = new ArrayList(); text.add((extractor.power < extractor.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE"); for(int i = 0; i < extractor.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); - + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + extractor.tanks[i].getTankType().getLocalizedName() + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } -} \ No newline at end of file +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceExtension.java b/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceExtension.java index 3b8c4208f..74dd3595e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceExtension.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceExtension.java @@ -6,7 +6,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityDiFurnace; import com.hbm.util.Compat; - import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -20,7 +19,7 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; public class MachineDiFurnaceExtension extends BlockContainer implements IProxyController { - + @SideOnly(Side.CLIENT) private IIcon iconTop; @SideOnly(Side.CLIENT) private IIcon iconBottom; @@ -30,9 +29,9 @@ public class MachineDiFurnaceExtension extends BlockContainer implements IProxyC @Override public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityProxyCombo().inventory(); + return new TileEntityProxyCombo().inventory().fluid(); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -40,7 +39,7 @@ public class MachineDiFurnaceExtension extends BlockContainer implements IProxyC this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":difurnace_extension"); this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":brick_fire"); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(!player.isSneaking()) { @@ -52,7 +51,7 @@ public class MachineDiFurnaceExtension extends BlockContainer implements IProxyC } return false; } - + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { return side == 0 ? this.iconBottom : side == 1 ? this.iconTop : this.blockIcon; diff --git a/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceRTG.java b/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceRTG.java index a90699da4..a8f929c81 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceRTG.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceRTG.java @@ -1,12 +1,9 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDiFurnaceRTG; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -25,8 +22,10 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import java.util.Random; + public class MachineDiFurnaceRTG extends BlockContainer { - + private final Random rand = new Random(); private final boolean isActive; private static boolean keepInventory; @@ -116,7 +115,7 @@ public class MachineDiFurnaceRTG extends BlockContainer { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - + if(world.isRemote) { return true; } else if(!player.isSneaking()) { @@ -145,7 +144,7 @@ public class MachineDiFurnaceRTG extends BlockContainer { } else { world.setBlock(x, y, z, ModBlocks.machine_difurnace_rtg_off); } - + keepInventory = false; world.setBlockMetadataWithNotify(x, y, z, i, 2); diff --git a/src/main/java/com/hbm/blocks/machine/MachineDrain.java b/src/main/java/com/hbm/blocks/machine/MachineDrain.java new file mode 100644 index 000000000..46aaf943e --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineDrain.java @@ -0,0 +1,86 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityMachineDrain; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class MachineDrain extends BlockDummyable implements ILookOverlay { + + public MachineDrain(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineDrain(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 2, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(!world.isRemote && !player.isSneaking()) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(te instanceof TileEntityMachineDrain)) return false; + + TileEntityMachineDrain drain = (TileEntityMachineDrain) te; + + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + drain.tank.setTankType(type); + drain.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + + return true; + } + return false; + + } else { + return true; + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(te instanceof TileEntityMachineDrain)) return; + + TileEntityMachineDrain drain = (TileEntityMachineDrain) te; + List text = new ArrayList(); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + drain.tank.getTankType().getLocalizedName() + ": " + drain.tank.getFill() + "/" + drain.tank.getMaxFill() + "mB"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineElectricFurnace.java b/src/main/java/com/hbm/blocks/machine/MachineElectricFurnace.java index ecdd8c59e..b0a987f27 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineElectricFurnace.java +++ b/src/main/java/com/hbm/blocks/machine/MachineElectricFurnace.java @@ -1,12 +1,9 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -25,12 +22,14 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import java.util.Random; + public class MachineElectricFurnace extends BlockContainer { private final Random field_149933_a = new Random(); private final boolean isActive; private static boolean keepInventory; - + @SideOnly(Side.CLIENT) private IIcon iconFront; private IIcon iconTop; @@ -40,7 +39,7 @@ public class MachineElectricFurnace extends BlockContainer { super(Material.iron); isActive = blockState; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -49,7 +48,7 @@ public class MachineElectricFurnace extends BlockContainer { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_electric_furnace_top"); this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_electric_furnace_bottom"); } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { @@ -57,19 +56,19 @@ public class MachineElectricFurnace extends BlockContainer { //return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.iconTop); return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : side == 0 ? this.iconBottom : side == 1 ? this.iconTop : this.blockIcon); } - + @Override public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { return Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off); } - + @Override public void onBlockAdded(World world, int x, int y, int z) { super.onBlockAdded(world, x, y, z); this.setDefaultDirection(world, x, y, z); } - + private void setDefaultDirection(World world, int x, int y, int z) { if(!world.isRemote) { @@ -77,9 +76,9 @@ public class MachineElectricFurnace extends BlockContainer { Block block2 = world.getBlock(x, y, z + 1); Block block3 = world.getBlock(x - 1, y, z); Block block4 = world.getBlock(x + 1, y, z); - + byte b0 = 3; - + if(block1.func_149730_j() && !block2.func_149730_j()) { b0 = 3; @@ -96,15 +95,15 @@ public class MachineElectricFurnace extends BlockContainer { { b0 = 4; } - + world.setBlockMetadataWithNotify(x, y, z, b0, 2); } } - + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); @@ -121,13 +120,13 @@ public class MachineElectricFurnace extends BlockContainer { { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(itemStack.hasDisplayName()) { ((TileEntityMachineElectricFurnace)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); } } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -155,23 +154,23 @@ public class MachineElectricFurnace extends BlockContainer { int i = world.getBlockMetadata(x, y, z); TileEntity entity = world.getTileEntity(x, y, z); keepInventory = true; - + if(isProcessing) { world.setBlock(x, y, z, ModBlocks.machine_electric_furnace_on); }else{ world.setBlock(x, y, z, ModBlocks.machine_electric_furnace_off); } - + keepInventory = false; world.setBlockMetadataWithNotify(x, y, z, i, 2); - + if(entity != null) { entity.validate(); world.setTileEntity(x, y, z, entity); } } - + @Override public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { @@ -223,7 +222,7 @@ public class MachineElectricFurnace extends BlockContainer { super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); } - + @Override @SideOnly(Side.CLIENT) public void randomDisplayTick(World p_149734_1_, int x, int y, int z, Random rand) @@ -265,4 +264,4 @@ public class MachineElectricFurnace extends BlockContainer { public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) { return Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off);} - } \ No newline at end of file + } diff --git a/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java b/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java index fb3ee992f..ab91cbb43 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java @@ -4,7 +4,6 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityElectrolyser; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -20,56 +19,77 @@ public class MachineElectrolyser extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityElectrolyser(); - if(meta >= 6) return new TileEntityProxyCombo(false, true, true); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); return null; } @Override public int[] getDimensions() { - return new int[] {0, 0, 4, 4, 2, 2}; + return new int[] {0, 0, 5, 5, 1, 3}; } @Override public int getOffset() { - return 4; + return 5; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return this.standardOpenBehavior(world, x, y, z, player, 0); } - + @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, 0, 4, 4, 1, 1}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -1, 4, 4, 0, 0}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 1, -1, -2, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 1, -1, -1, 1}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 3, -3, -2, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 3, -3, -1, 1}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -1, 1, -2, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -1, 1, -1, 1}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -3, 3, -2, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -3, 3, -1, 1}, this, dir); + x += dir.offsetX * o; + z += dir.offsetZ * o; + + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {2, -1, 5, 5, 1, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -3, 5, 5, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, 4, -4, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, 2, -2, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, 0, 0, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, -2, 2, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, -4, 4, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world,x + dir.offsetX * 4, y + 3, z + dir.offsetZ * 4, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world,x + dir.offsetX * 2, y + 3, z + dir.offsetZ * 2, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 3, z, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - dir.offsetX * 2, y + 3, z - dir.offsetZ * 2, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - dir.offsetX * 4, y + 3, z - dir.offsetZ * 4, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x - dir.offsetX * 5, y, z - dir.offsetZ * 5); + this.makeExtra(world, x - dir.offsetX * 5 + rot.offsetX, y, z - dir.offsetZ * 5 + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX * 5 - rot.offsetX, y, z - dir.offsetZ * 5 - rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 5, y, z + dir.offsetZ * 5); + this.makeExtra(world, x + dir.offsetX * 5 + rot.offsetX, y, z + dir.offsetZ * 5 + rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 5 - rot.offsetX, y, z + dir.offsetZ * 5 - rot.offsetZ); } @Override protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, 0, 4, 4, 1, 1}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -1, 4, 4, 0, 0}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 1, -1, -2, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 1, -1, -1, 1}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 3, -3, -2, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 3, -3, -1, 1}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -1, 1, -2, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -1, 1, -1, 1}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -3, 3, -2, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -3, 3, -1, 1}, x, y, z, dir)) return false; - + x += dir.offsetX * o; + z += dir.offsetZ * o; + + if(!MultiblockHandlerXR.checkSpace(world, x, y , z, getDimensions(), x, y, z, dir)) return false; + + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {2, -1, 5, 5, 1, 1}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -3, 5, 5, 0, 0}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, 4, -4, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, 2, -2, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, 0, 0, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, -2, 2, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, -4, 4, -3, 3}, x, y, z, dir)) return false; + + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * 4, y + 3, z + dir.offsetZ * 4, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * 2, y + 3, z + dir.offsetZ * 2, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y + 3, z, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x - dir.offsetX * 2, y + 3, z - dir.offsetZ * 2, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x - dir.offsetX * 4, y + 3, z - dir.offsetZ * 4, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + return true; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java b/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java new file mode 100644 index 000000000..e0d906181 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java @@ -0,0 +1,80 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineExposureChamber extends BlockDummyable { + + public MachineExposureChamber(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineExposureChamber(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 2, 2, 2, 2}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP).getOpposite(); + + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, 0, 0, 0, -3, 8}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 2, z, new int[] {0, 0, 1, -1, -3, 6}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 2, z, new int[] {0, 0, -1, 1, -3, 6}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, 1, -1, 0, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, -1, 1, 0, 1}, this, dir); + + this.makeExtra(world, x + rot.offsetX * 7 + dir.offsetX, y, z + rot.offsetZ * 7 + dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 7 - dir.offsetX, y, z + rot.offsetZ * 7 - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 8 + dir.offsetX, y, z + rot.offsetZ * 8 + dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 8 - dir.offsetX, y, z + rot.offsetZ * 8 - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 8, y, z + rot.offsetZ * 8); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP).getOpposite(); + + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, 0, 0, 0, -3, 8}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {0, 0, 1, -1, -3, 6}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {0, 0, -1, 1, -3, 6}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, 1, -1, 0, 1}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, -1, 1, 0, 1}, x, y, z, dir)) return false; + + return true; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return super.standardOpenBehavior(world, x, y, z, player, 0); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineFan.java b/src/main/java/com/hbm/blocks/machine/MachineFan.java index 6a37de202..37a96e5f8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFan.java @@ -2,6 +2,8 @@ package com.hbm.blocks.machine; import java.util.List; +import com.hbm.blocks.ITooltipProvider; + import api.hbm.block.IBlowable; import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; @@ -20,7 +22,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineFan extends BlockContainer implements IToolable { +public class MachineFan extends BlockContainer implements IToolable, ITooltipProvider { public MachineFan() { super(Material.iron); @@ -142,4 +144,9 @@ public class MachineFan extends BlockContainer implements IToolable { return true; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFieldDisturber.java b/src/main/java/com/hbm/blocks/machine/MachineFieldDisturber.java index 4ad885409..751cff978 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFieldDisturber.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFieldDisturber.java @@ -1,20 +1,19 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.entity.logic.EntityNukeExplosionMK3; import com.hbm.entity.logic.EntityNukeExplosionMK3.ATEntry; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; +import java.util.Random; + public class MachineFieldDisturber extends Block { public MachineFieldDisturber() { super(Material.iron); } - + @Override public int tickRate(World world) { return 10; diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index 8b5071525..edf93170f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -7,15 +7,16 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.entity.projectile.EntityBombletZeta; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; -import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -28,6 +29,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.Explosion; import net.minecraft.world.World; @@ -62,7 +66,8 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP if(world.isRemote) { return true; - } else if(!player.isSneaking()) { + } + else if(!player.isSneaking()) { int[] pos = this.findCore(world, x, y, z); if(pos == null) @@ -75,9 +80,30 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); } return true; - } else { + } + else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tank != null) { + if(tank.hasExploded) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + tank.tank.setTankType(type); + tank.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + return true; + }else { return true; } + } @Override @@ -99,7 +125,7 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } @Override @@ -135,6 +161,31 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP } } + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + + int meta = world.getBlockMetadata(x, y, z); + + if(meta >= 6) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return 0; + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityMachineFluidTank)) + return 0; + + TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) te; + return tank.getComparatorPower(); + } + + return 0; + } + @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java b/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java index 9383b3565..761aa10ed 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java @@ -1,8 +1,5 @@ package com.hbm.blocks.machine; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.handler.MultiblockHandlerXR; @@ -13,8 +10,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineFrackingTower; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -25,6 +20,9 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + public class MachineFrackingTower extends BlockDummyable implements IPersistentInfoProvider { public MachineFrackingTower() { @@ -33,7 +31,7 @@ public class MachineFrackingTower extends BlockDummyable implements IPersistentI @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntityMachineFrackingTower(); if(meta >= 6) return new TileEntityProxyCombo(false, true, true); return null; @@ -51,9 +49,9 @@ public class MachineFrackingTower extends BlockDummyable implements IPersistentI @Override protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { - + if(!MultiblockHandlerXR.checkSpace(world, x, y + 2, z, new int[] {1, 0, 3, 3, 3, 3}, x, y, z, dir)) return false; - + if(!MultiblockHandlerXR.checkSpace(world, x - 2, y + 2, z - 2, new int[] {-1, 2, 0, 1, 0, 1}, x, y, z, ForgeDirection.NORTH)) return false; if(!MultiblockHandlerXR.checkSpace(world, x - 2, y + 2, z + 3, new int[] {-1, 2, 0, 1, 0, 1}, x, y, z, ForgeDirection.NORTH)) return false; if(!MultiblockHandlerXR.checkSpace(world, x + 3, y + 2, z - 2, new int[] {-1, 2, 0, 1, 0, 1}, x, y, z, ForgeDirection.NORTH)) return false; @@ -63,7 +61,7 @@ public class MachineFrackingTower extends BlockDummyable implements IPersistentI if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {24, -9, 1, 1, 1, 1}, x, y, z, dir)) return false; if(!MultiblockHandlerXR.checkSpace(world, x, y + 15, z, new int[] {1, 0, 1, 1, -2, 3}, x, y, z, dir)) return false; - + return super.checkRequirement(world, x, y, z, dir, o); } @@ -79,29 +77,29 @@ public class MachineFrackingTower extends BlockDummyable implements IPersistentI MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {10, -4, 2, 2, 2, 2}, this, dir); MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {24, -9, 1, 1, 1, 1}, this, dir); - + MultiblockHandlerXR.fillSpace(world, x, y + 15, z, new int[] {1, 0, 1, 1, -2, 3}, this, ForgeDirection.WEST); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - + if(world.isRemote) { return true; } else if(!player.isSneaking()) { - + int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return false; - + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); return true; } else { return true; } } - + @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { return IPersistentNBT.getDrops(world, x, y, z, this); @@ -113,7 +111,7 @@ public class MachineFrackingTower extends BlockDummyable implements IPersistentI for(int i = 0; i < 2; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "t" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java index af24b1d28..1e1fc1e33 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java @@ -1,9 +1,5 @@ package com.hbm.blocks.machine; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.fluid.FluidType; @@ -11,7 +7,6 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineFractionTower; import com.hbm.util.I18nUtil; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -23,6 +18,9 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + public class MachineFractionTower extends BlockDummyable implements ILookOverlay { public MachineFractionTower(Material mat) { @@ -31,12 +29,12 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntityMachineFractionTower(); if(meta >= extra) return new TileEntityProxyCombo(false, false, true); - + return null; } @@ -49,38 +47,38 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay public int getOffset() { return 1; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - + if(!world.isRemote && !player.isSneaking()) { - + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return false; - + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); - + if(!(te instanceof TileEntityMachineFractionTower)) return false; - + TileEntityMachineFractionTower frac = (TileEntityMachineFractionTower) te; - + if(world.getTileEntity(pos[0], pos[1] - 3, pos[2]) instanceof TileEntityMachineFractionTower) { player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "You can only change the type in the bottom segment!")); } else { FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); frac.tanks[0].setTankType(type); frac.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); } - + return true; } return false; - + } else { return true; } @@ -89,7 +87,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - + x = x + dir.offsetX * o; z = z + dir.offsetZ * o; @@ -102,22 +100,22 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay @Override public void printHook(Pre event, World world, int x, int y, int z) { int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return; - + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); - + if(!(te instanceof TileEntityMachineFractionTower)) return; - + TileEntityMachineFractionTower cracker = (TileEntityMachineFractionTower) te; - + List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); - + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + cracker.tanks[i].getTankType().getLocalizedName() + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFunnel.java b/src/main/java/com/hbm/blocks/machine/MachineFunnel.java new file mode 100644 index 000000000..7506e2218 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineFunnel.java @@ -0,0 +1,138 @@ +package com.hbm.blocks.machine; + +import java.util.List; +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.rail.IRenderBlock; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; +import com.hbm.tileentity.machine.TileEntityMachineFunnel; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class MachineFunnel extends BlockContainer implements ITooltipProvider, IRenderBlock { + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + + public MachineFunnel() { + super(Material.iron); + } + + @Override public int getRenderType() { return renderID; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_funnel_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_funnel_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_funnel_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityMachineFunnel(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + TileEntity entity = world.getTileEntity(x, y, z); + if(entity instanceof TileEntityMachineFunnel) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + return true; + } else { + return false; + } + } + + private final Random rand = new Random(); + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + ISidedInventory tile = (ISidedInventory) world.getTileEntity(x, y, z); + if(tile != null) { + for(int i1 = 0; i1 < tile.getSizeInventory(); ++i1) { + ItemStack itemstack = tile.getStackInSlot(i1); + if(itemstack != null) { + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + while(itemstack.stackSize > 0) { + int j1 = this.rand.nextInt(21) + 10; + if(j1 > itemstack.stackSize) j1 = itemstack.stackSize; + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + float f3 = 0.05F; + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslatef(0F, -0.5F, 0F); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasCent.java b/src/main/java/com/hbm/blocks/machine/MachineGasCent.java index 3c3ebad48..3184452f9 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasCent.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasCent.java @@ -20,6 +20,7 @@ public class MachineGasCent extends BlockDummyable implements IMultiblock { super(mat); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5D, 0D, -0.5D, 0.5D, 1D, 0.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.4375D, 1D, -0.4375D, 0.4375D, 4D, 0.4375D)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java index 4567cf760..b2ae4aac9 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java @@ -25,6 +25,7 @@ public class MachineGasFlare extends BlockDummyable implements ITooltipProvider this.bounding.add(AxisAlignedBB.getBoundingBox(-0.75D, 3.875D, -0.75D, 0.75D, 9, 0.75D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 9D, -1.5D, 1.5D, 9.375D, 1.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.75D, 9.375D, -0.75D, 0.75D, 12, 0.75D)); + this.maxY = 0.999D; //item bounce prevention } @Override @@ -67,7 +68,7 @@ public class MachineGasFlare extends BlockDummyable implements ITooltipProvider list.add(EnumChatFormatting.GOLD + "Vents up to " + EnumChatFormatting.RED + "50mB/t"); list.add(""); list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); - list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: " + EnumChatFormatting.RED + "50%"); + list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: " + EnumChatFormatting.RED + "20%"); list.add(EnumChatFormatting.YELLOW + "-Flammable Liquids: " + EnumChatFormatting.RED + "10%"); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineGenerator.java b/src/main/java/com/hbm/blocks/machine/MachineGenerator.java deleted file mode 100644 index 4efd72f33..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineGenerator.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; - -public class MachineGenerator extends Block { - - @SideOnly(Side.CLIENT) - private IIcon iconSide; - - public MachineGenerator(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":machine_generator_side"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_generator"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 0 ? blockIcon : (side == 1 ? blockIcon : iconSide); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return ModItems.circuit_targeting_tier3; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java index a8779573e..66c2396d0 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java @@ -69,7 +69,7 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) { boiler.tanks[0].setTankType(type); boiler.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); } return true; } @@ -175,9 +175,9 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I if(boiler.hasExploded) return; List text = new ArrayList(); - text.add(String.format("%,d", boiler.heat) + "TU"); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[0].getFill()) + " / " + String.format("%,d", boiler.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[1].getFill()) + " / " + String.format("%,d", boiler.tanks[1].getMaxFill()) + "mB"); + text.add(String.format(Locale.US, "%,d", boiler.heat) + "TU"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + boiler.tanks[0].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + boiler.tanks[1].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java new file mode 100644 index 000000000..a2c411072 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java @@ -0,0 +1,125 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityHeatBoilerIndustrial; +import com.hbm.util.I18nUtil; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +public class MachineHeatBoilerIndustrial extends BlockDummyable implements ILookOverlay, ITooltipProvider { + + public MachineHeatBoilerIndustrial() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityHeatBoilerIndustrial(); + if(meta >= extra) return new TileEntityProxyCombo().fluid(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(!world.isRemote && !player.isSneaking()) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityHeatBoilerIndustrial)) + return false; + + TileEntityHeatBoilerIndustrial boiler = (TileEntityHeatBoilerIndustrial) te; + + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) { + boiler.tanks[0].setTankType(type); + boiler.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + return true; + } + return false; + + } else { + return true; + } + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ + 1); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ - 1); + this.makeExtra(world, x - dir.offsetX, y + 4, z - dir.offsetZ); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityHeatBoilerIndustrial)) + return; + + TileEntityHeatBoilerIndustrial boiler = (TileEntityHeatBoilerIndustrial) te; + + List text = new ArrayList(); + text.add(String.format(Locale.US, "%,d", boiler.heat) + "TU"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + boiler.tanks[0].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + boiler.tanks[1].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java index 6f31472b9..b6a628c78 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java @@ -16,6 +16,9 @@ import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -82,6 +85,8 @@ public class MachineHephaestus extends BlockDummyable implements ILookOverlay { FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); heatex.input.setTankType(type); heatex.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + return true; } @@ -107,11 +112,11 @@ public class MachineHephaestus extends BlockDummyable implements ILookOverlay { TileEntityMachineHephaestus heatex = (TileEntityMachineHephaestus) te; List text = new ArrayList(); - text.add(String.format("%,d", heatex.bufferedHeat) + " TU"); + text.add(String.format(Locale.US, "%,d", heatex.bufferedHeat) + " TU"); for(int i = 0; i < heatex.getAllTanks().length; i++) { FluidTank tank = heatex.getAllTanks()[i]; - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tank.getTankType().getLocalizedName() + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java b/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java new file mode 100644 index 000000000..a0b223a91 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineHydrotreater.java @@ -0,0 +1,60 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.oil.TileEntityMachineHydrotreater; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.List; + +public class MachineHydrotreater extends BlockDummyable implements IPersistentInfoProvider { + + public MachineHydrotreater(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineHydrotreater(); + if(meta >= 6) return new TileEntityProxyCombo().fluid().power(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return standardOpenBehavior(world, x, y, z, player, side); + } + + @Override public int[] getDimensions() { return new int[] {6, 0, 1, 1, 1, 1}; } + @Override public int getOffset() { return 1; } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ + 1); + this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ - 1); + this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ + 1); + this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ - 1); + } + + @Override + public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { + + for(int i = 0; i < 4; i++) { + FluidTank tank = new FluidTank(Fluids.NONE, 0); + tank.readFromNBT(persistentTag, "" + i); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineICF.java b/src/main/java/com/hbm/blocks/machine/MachineICF.java new file mode 100644 index 000000000..29bca9b90 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineICF.java @@ -0,0 +1,67 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityICF; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineICF extends BlockDummyable { + + public MachineICF() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityICF(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {5, 0, 1, 1, 8, 8}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {1, 1, -1, 2, 8, 8}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {1, 1, 2, -1, 8, 8}, this, dir); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + this.makeExtra(world, x , y + 5, z); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + this.makeExtra(world, x + dir.offsetX * 2 + rot.offsetX * 6 , y + 3, z + dir.offsetZ * 2 + rot.offsetZ * 6); + this.makeExtra(world, x + dir.offsetX * 2 - rot.offsetX * 6 , y + 3, z + dir.offsetZ * 2 - rot.offsetZ * 6); + this.makeExtra(world, x - dir.offsetX * 2 + rot.offsetX * 6 , y + 3, z - dir.offsetZ * 2 + rot.offsetZ * 6); + this.makeExtra(world, x - dir.offsetX * 2 - rot.offsetX * 6 , y + 3, z - dir.offsetZ * 2 - rot.offsetZ * 6); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + if(!super.checkRequirement(world, x, y, z, dir, o)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {1, 1, -1, 2, 8, 8}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {1, 1, 2, -1, 8, 8}, x, y, z, dir)) return false; + + return true; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return super.standardOpenBehavior(world, x, y, z, player, 0); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFController.java b/src/main/java/com/hbm/blocks/machine/MachineICFController.java new file mode 100644 index 000000000..83267cec4 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineICFController.java @@ -0,0 +1,225 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; +import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.tileentity.machine.TileEntityICFController; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map.Entry; + +public class MachineICFController extends BlockContainer implements ILookOverlay { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public MachineICFController() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityICFController(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":icf_controller"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + + TileEntityICFController controller = (TileEntityICFController) world.getTileEntity(x, y, z); + + if(!controller.assembled) { + assemble(world, x, y, z, player); + } + + return true; + } else { + return false; + } + } + + private static HashMap assembly = new HashMap(); + private static HashSet casings = new HashSet(); + private static HashSet ports = new HashSet(); + private static HashSet cells = new HashSet(); + private static HashSet emitters = new HashSet(); + private static HashSet capacitors = new HashSet(); + private static HashSet turbochargers = new HashSet(); + private static boolean errored; + private static final int maxSize = 1024; + + public void assemble(World world, int x, int y, int z, EntityPlayer player) { + assembly.clear(); + casings.clear(); + ports.clear(); + cells.clear(); + emitters.clear(); + capacitors.clear(); + turbochargers.clear(); + assembly.put(new BlockPos(x, y, z), 0); + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)).getOpposite(); + + errored = false; + floodFill(world, x + dir.offsetX, y, z + dir.offsetZ, player); + assembly.remove(new BlockPos(x, y, z)); + + TileEntityICFController controller = (TileEntityICFController) world.getTileEntity(x, y, z); + + if(!errored) { + + for(Entry entry : assembly.entrySet()) { + + BlockPos pos = entry.getKey(); + + if(ports.contains(pos)) { + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.icf_block, 1, 3); + } else { + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.icf_block, 0, 3); + } + + TileEntityBlockICF icf = (TileEntityBlockICF) world.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + icf.block = ModBlocks.icf_laser_component; + icf.meta = entry.getValue(); + icf.coreX = x; + icf.coreY = y; + icf.coreZ = z; + icf.markDirty(); + } + + controller.setup(ports, cells, emitters, capacitors, turbochargers); + controller.markDirty(); + } + controller.assembled = !errored; + + assembly.clear(); + casings.clear(); + ports.clear(); + cells.clear(); + emitters.clear(); + capacitors.clear(); + turbochargers.clear(); + } + + private void floodFill(World world, int x, int y, int z, EntityPlayer player) { + + BlockPos pos = new BlockPos(x, y, z); + + if(assembly.containsKey(pos)) return; + if(assembly.size() >= maxSize) { + errored = true; + sendError(world, x, y, z, "Max size exceeded", player); + return; + } + + Block block = world.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + + boolean validCasing = false; + boolean validCore = false; + + if(block == ModBlocks.icf_laser_component) { + if(meta == EnumICFPart.CASING.ordinal()) { casings.add(pos); validCasing = true; } + if(meta == EnumICFPart.PORT.ordinal()) { ports.add(pos); validCasing = true; } + if(meta == EnumICFPart.CELL.ordinal()) { cells.add(pos); validCore = true; } + if(meta == EnumICFPart.EMITTER.ordinal()) { emitters.add(pos); validCore = true; } + if(meta == EnumICFPart.CAPACITOR.ordinal()) { capacitors.add(pos); validCore = true; } + if(meta == EnumICFPart.TURBO.ordinal()) { turbochargers.add(pos); validCore = true; } + } + + if(validCasing) { + assembly.put(pos, meta); + return; + } + + if(validCore) { + assembly.put(pos, meta); + floodFill(world, x + 1, y, z, player); + floodFill(world, x - 1, y, z, player); + floodFill(world, x, y + 1, z, player); + floodFill(world, x, y - 1, z, player); + floodFill(world, x, y, z + 1, player); + floodFill(world, x, y, z - 1, player); + return; + } + + sendError(world, x, y, z, "Non-laser block", player); + errored = true; + } + + private void sendError(World world, int x, int y, int z, String message, EntityPlayer player) { + + if(player instanceof EntityPlayerMP) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "marker"); + data.setInteger("color", 0xff0000); + data.setInteger("expires", 5_000); + data.setDouble("dist", 128D); + if(message != null) data.setString("label", message); + PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(data, x, y, z), (EntityPlayerMP) player); + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + if(!(te instanceof TileEntityICFController)) return; + TileEntityICFController icf = (TileEntityICFController) te; + List text = new ArrayList(); + text.add(BobMathUtil.getShortNumber(icf.getPower()) + "/" + BobMathUtil.getShortNumber(icf.getMaxPower()) + "HE"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFPress.java b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java new file mode 100644 index 000000000..0acf7ff0f --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java @@ -0,0 +1,103 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityICFPress; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class MachineICFPress extends BlockContainer implements ITooltipProvider { + + @SideOnly(Side.CLIENT) private IIcon iconTop; + + public MachineICFPress() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityICFPress(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_icf_press_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_icf_press_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + TileEntity te = world.getTileEntity(x, y, z); + if(!(te instanceof ISidedInventory)) return; + ISidedInventory tileentityfurnace = (ISidedInventory) te; + if(tileentityfurnace != null) { + for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + if(itemstack != null) { + float f = world.rand.nextFloat() * 0.8F + 0.1F; + float f1 = world.rand.nextFloat() * 0.8F + 0.1F; + float f2 = world.rand.nextFloat() * 0.8F + 0.1F; + while(itemstack.stackSize > 0) { + int j1 = world.rand.nextInt(21) + 10; + if(j1 > itemstack.stackSize) j1 = itemstack.stackSize; + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + float f3 = 0.05F; + entityitem.motionX = (float) world.rand.nextGaussian() * f3; + entityitem.motionY = (float) world.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) world.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + for(String s : I18nUtil.resolveKeyArray(((Block)this).getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java index 8c00aeffb..453f1c743 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java @@ -1,18 +1,21 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.BlockDummyable; -import com.hbm.main.MainRegistry; +import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineIGenerator; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineIGenerator extends BlockDummyable { +public class MachineIGenerator extends BlockDummyable implements ILookOverlay { public MachineIGenerator(Material p_i45386_1_) { super(p_i45386_1_); @@ -57,10 +60,9 @@ public class MachineIGenerator extends BlockDummyable { if(pos == null) return false; - TileEntityMachineIGenerator gen = (TileEntityMachineIGenerator)world.getTileEntity(pos[0], pos[1], pos[2]); + //TileEntityMachineIGenerator gen = (TileEntityMachineIGenerator)world.getTileEntity(pos[0], pos[1], pos[2]); - if(gen != null) - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + //if(gen != null) FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); return true; } else { @@ -71,17 +73,28 @@ public class MachineIGenerator extends BlockDummyable { @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - this.makeExtra(world, x + dir.offsetX * (o - 3), y, z + dir.offsetZ * (o - 3)); - this.makeExtra(world, x + dir.offsetX * (o + 2), y, z + dir.offsetZ * (o + 2)); + /*this.makeExtra(world, x + dir.offsetX * (o - 3), y, z + dir.offsetZ * (o - 3)); + this.makeExtra(world, x + dir.offsetX * (o - 2), y, z + dir.offsetZ * (o - 2)); + this.makeExtra(world, x + dir.offsetX * (o - 1), y, z + dir.offsetZ * (o - 1)); + this.makeExtra(world, x + dir.offsetX * (o + 2), y, z + dir.offsetZ * (o + 2));*/ } @Override public int[] getDimensions() { - return new int [] {2, 0, 3, 2, 1, 1}; + //return new int [] {2, 0, 3, 2, 1, 1}; + return new int [] {0, 0, 0, 0, 0, 0}; } @Override public int getOffset() { - return 2; + //return 2; + return 0; + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + List text = new ArrayList(); + text.add("In memory of all that we have lost"); + ILookOverlay.printGeneric(event, "Industrial Generator Memorial", 0xff8000, 0x804000, text); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineLPW2.java b/src/main/java/com/hbm/blocks/machine/MachineLPW2.java new file mode 100644 index 000000000..719edddbc --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineLPW2.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.machine.TileEntityMachineLPW2; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineLPW2 extends BlockDummyable { + + public MachineLPW2() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineLPW2(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {6, 0, 3, 3, 9, 10}; + } + + @Override + public int getOffset() { + return 3; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineLargeTurbine.java b/src/main/java/com/hbm/blocks/machine/MachineLargeTurbine.java index 8150f91e6..cc8328dd3 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineLargeTurbine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineLargeTurbine.java @@ -1,13 +1,10 @@ package com.hbm.blocks.machine; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineLargeTurbine; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -18,6 +15,8 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvider { public MachineLargeTurbine(Material mat) { @@ -26,13 +25,13 @@ public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvi @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntityMachineLargeTurbine(); - + if(meta >= 6) return new TileEntityProxyCombo(false, true, true); - + return null; } @@ -45,7 +44,7 @@ public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvi public int getOffset() { return 1; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -54,20 +53,20 @@ public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvi } else if(!player.isSneaking()) { int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return false; - + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); return true; } else { return true; } } - + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - + super.onBlockPlacedBy(world, x, y, z, player, itemStack); if(world.isRemote) @@ -75,7 +74,7 @@ public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvi int k = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; ForgeDirection dir = ForgeDirection.NORTH; - + if(k == 0) dir = ForgeDirection.getOrientation(2); if(k == 1) @@ -84,9 +83,9 @@ public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvi dir = ForgeDirection.getOrientation(3); if(k == 3) dir = ForgeDirection.getOrientation(4); - + ForgeDirection dir2 = dir.getRotation(ForgeDirection.UP); - + //back connector this.makeExtra(world, x + dir.offsetX * -4, y, z + dir.offsetZ * -4); //front connector @@ -94,7 +93,7 @@ public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvi int xc = x - dir.offsetX; int zc = z - dir.offsetZ; - + //side connectors this.makeExtra(world, xc + dir2.offsetX, y, zc + dir2.offsetZ); this.makeExtra(world, xc - dir2.offsetX, y, zc - dir2.offsetZ); diff --git a/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java b/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java index 48165752b..6348106d6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java @@ -1,12 +1,9 @@ package com.hbm.blocks.machine; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -14,6 +11,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + public class MachineLiquefactor extends BlockDummyable implements ITooltipProvider { public MachineLiquefactor() { @@ -22,13 +21,13 @@ public class MachineLiquefactor extends BlockDummyable implements ITooltipProvid @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntityMachineLiquefactor(); - + if(meta >= extra) return new TileEntityProxyCombo(true, true, true); - + return null; } @@ -36,7 +35,7 @@ public class MachineLiquefactor extends BlockDummyable implements ITooltipProvid public int[] getDimensions() { return new int[] {3, 0, 1, 1, 1, 1}; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return this.standardOpenBehavior(world, x, y, z, player, 0); @@ -50,12 +49,12 @@ public class MachineLiquefactor extends BlockDummyable implements ITooltipProvid @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - + x = x + dir.offsetX * o; z = z + dir.offsetZ * o; this.makeExtra(world, x, y + 3, z); - + this.makeExtra(world, x + 1, y + 1, z); this.makeExtra(world, x - 1, y + 1, z); this.makeExtra(world, x, y + 1, z + 1); diff --git a/src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java b/src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java deleted file mode 100644 index c4aa5e156..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineMiningDrill.java +++ /dev/null @@ -1,232 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class MachineMiningDrill extends BlockContainer implements IMultiblock { - - public MachineMiningDrill(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineMiningDrill(); - - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.machine_drill); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if (i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_drill); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_drill); - TileEntity te2 = world.getTileEntity(x - 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_drill); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_drill); - TileEntity te2 = world.getTileEntity(x, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_drill); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_drill); - TileEntity te2 = world.getTileEntity(x - 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.drillDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.drillDimension, ModBlocks.dummy_block_drill); - - // - DummyBlockDrill.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_drill); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_drill); - TileEntity te2 = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockDrill.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - } - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineMiningLaser.java b/src/main/java/com/hbm/blocks/machine/MachineMiningLaser.java index ada5bff34..b8fd117ec 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineMiningLaser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineMiningLaser.java @@ -1,14 +1,11 @@ package com.hbm.blocks.machine; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyEnergy; import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -17,6 +14,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + public class MachineMiningLaser extends BlockDummyable implements ITooltipProvider { public MachineMiningLaser(Material mat) { @@ -29,7 +28,7 @@ public class MachineMiningLaser extends BlockDummyable implements ITooltipProvid if(meta >= 12) return new TileEntityMachineMiningLaser(); if(meta == 7) return new TileEntityProxyEnergy(); if(meta >= 6) return new TileEntityProxyCombo().inventory().fluid(); - + return null; } @@ -47,26 +46,26 @@ public class MachineMiningLaser extends BlockDummyable implements ITooltipProvid public int getHeightOffset() { return -1; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - + if(world.isRemote) { return true; } else if(!player.isSneaking()) { - + int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return false; - + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); return true; } else { return true; } } - + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); @@ -78,7 +77,7 @@ public class MachineMiningLaser extends BlockDummyable implements ITooltipProvid this.makeExtra(world, x - 1, y, z); this.makeExtra(world, x, y, z + 1); this.makeExtra(world, x, y, z - 1); - + this.makeExtra(world, x, y + 1, z); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineMissileAssembly.java b/src/main/java/com/hbm/blocks/machine/MachineMissileAssembly.java index ef271e773..87f345b66 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineMissileAssembly.java +++ b/src/main/java/com/hbm/blocks/machine/MachineMissileAssembly.java @@ -1,11 +1,8 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.handler.BossSpawnHandler; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -20,6 +17,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import java.util.Random; + public class MachineMissileAssembly extends BlockContainer { public MachineMissileAssembly(Material p_i45386_1_) { @@ -45,7 +44,7 @@ public class MachineMissileAssembly extends BlockContainer { public boolean renderAsNormalBlock() { return false; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) { @@ -65,7 +64,7 @@ public class MachineMissileAssembly extends BlockContainer { } private final Random field_149933_a = new Random(); - + @Override public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { @@ -111,11 +110,11 @@ public class MachineMissileAssembly extends BlockContainer { super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); } - + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); @@ -132,7 +131,7 @@ public class MachineMissileAssembly extends BlockContainer { { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(itemStack.hasDisplayName()) { ((TileEntityMachineMissileAssembly)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineNukeFurnace.java b/src/main/java/com/hbm/blocks/machine/MachineNukeFurnace.java index de87c78ae..94492e91f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineNukeFurnace.java +++ b/src/main/java/com/hbm/blocks/machine/MachineNukeFurnace.java @@ -1,12 +1,9 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityNukeFurnace; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -25,12 +22,14 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import java.util.Random; + public class MachineNukeFurnace extends BlockContainer { private final Random field_149933_a = new Random(); private final boolean isActive; private static boolean keepInventory; - + @SideOnly(Side.CLIENT) private IIcon iconTop; @SideOnly(Side.CLIENT) @@ -40,7 +39,7 @@ public class MachineNukeFurnace extends BlockContainer { super(Material.iron); isActive = blockState; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -48,25 +47,25 @@ public class MachineNukeFurnace extends BlockContainer { this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_nuke_furnace_front_on_alt" : ":machine_nuke_furnace_front_off_alt")); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_nuke_furnace_side_alt"); } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : (side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon))); } - + @Override public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { return Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off); } - + @Override public void onBlockAdded(World world, int x, int y, int z) { super.onBlockAdded(world, x, y, z); this.setDefaultDirection(world, x, y, z); } - + private void setDefaultDirection(World world, int x, int y, int z) { if(!world.isRemote) { @@ -74,9 +73,9 @@ public class MachineNukeFurnace extends BlockContainer { Block block2 = world.getBlock(x, y, z + 1); Block block3 = world.getBlock(x - 1, y, z); Block block4 = world.getBlock(x + 1, y, z); - + byte b0 = 3; - + if(block1.func_149730_j() && !block2.func_149730_j()) { b0 = 3; @@ -93,15 +92,15 @@ public class MachineNukeFurnace extends BlockContainer { { b0 = 4; } - + world.setBlockMetadataWithNotify(x, y, z, b0, 2); } } - + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); @@ -118,13 +117,13 @@ public class MachineNukeFurnace extends BlockContainer { { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(itemStack.hasDisplayName()) { ((TileEntityNukeFurnace)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); } } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -152,23 +151,23 @@ public class MachineNukeFurnace extends BlockContainer { int i = world.getBlockMetadata(x, y, z); TileEntity entity = world.getTileEntity(x, y, z); keepInventory = true; - + if(isProcessing) { world.setBlock(x, y, z, ModBlocks.machine_nuke_furnace_on); }else{ world.setBlock(x, y, z, ModBlocks.machine_nuke_furnace_off); } - + keepInventory = false; world.setBlockMetadataWithNotify(x, y, z, i, 2); - + if(entity != null) { entity.validate(); world.setTileEntity(x, y, z, entity); } } - + @Override public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { @@ -220,7 +219,7 @@ public class MachineNukeFurnace extends BlockContainer { super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); } - + @Override @SideOnly(Side.CLIENT) public void randomDisplayTick(World p_149734_1_, int x, int y, int z, Random rand) diff --git a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java index bdd36a179..b30ccf3e2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java @@ -5,14 +5,19 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.MultiblockHandlerXR; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.main.MainRegistry; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.tileentity.IPersistentNBT; -import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -21,6 +26,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -32,15 +38,13 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro @Override public TileEntity createNewTileEntity(World world, int meta) { - if(meta >= 12) return new TileEntityMachineOilWell(); - if(meta >= 6) return new TileEntityProxyCombo(false, true, true); return null; } @Override public int[] getDimensions() { - return new int[] {5, 0, 1, 1, 1, 1}; + return new int[] {9, 0, 1, 1, 1, 1}; } @Override @@ -48,13 +52,24 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro return 0; } + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {1, -1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x, y + 1, z, new int[] {8, 0, 1, 1, 1, 1}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x - 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x - 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir); + } + @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { - super.fillSpace(world, x, y, z, dir, o); - this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); - this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); - this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); - this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {1, -1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 1, z, new int[] {8, 0, 1, 1, 1, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); } @Override @@ -87,7 +102,34 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro for(int i = 0; i < 2; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "t" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); + } + } + + @Override + public void onBlockExploded(World world, int x, int y, int z, Explosion explosion) { + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return; + TileEntity core = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(core instanceof TileEntityMachineOilWell)) return; + + world.setBlockToAir(x, y, z); + onBlockDestroyedByExplosion(world, x, y, z, explosion); + + TileEntityMachineOilWell well = (TileEntityMachineOilWell) core; + if(well.tanks[0].getFill() > 0 || well.tanks[1].getFill() > 0) { + well.tanks[0].setFill(0); + well.tanks[1].setFill(0); + + ExplosionVNT xnt = new ExplosionVNT(world, pos[0] + 0.5, pos[1] + 0.5, pos[2] + 0.5, 15F); + xnt.setBlockAllocator(new BlockAllocatorStandard(24)); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setEntityProcessor(new EntityProcessorStandard()); + xnt.setPlayerProcessor(new PlayerProcessorStandard()); + xnt.explode(); + + ExplosionCreator.composeEffect(world, pos[0] + 0.5, pos[1] + 0.5, pos[2] + 0.5, 10, 2F, 0.5F, 25F, 5, 8, 20, 0.75F, 1F, -2F, 150); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java index b1ddbb028..445956358 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java @@ -5,13 +5,14 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -19,6 +20,9 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -61,7 +65,26 @@ public class MachineOrbus extends BlockDummyable implements IPersistentInfoProvi FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); return true; - } else { + } else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineOrbus kyleEntity = (TileEntityMachineOrbus) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(kyleEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + kyleEntity.tank.setTankType(type); + kyleEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + + return true; + } else { return true; } } @@ -91,8 +114,8 @@ public class MachineOrbus extends BlockDummyable implements IPersistentInfoProvi @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java b/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java new file mode 100644 index 000000000..cb171d50e --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineOreSlopper.java @@ -0,0 +1,73 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineOreSlopper; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineOreSlopper extends BlockDummyable { + + public MachineOreSlopper() { + super(Material.iron); + + //Base + this.bounding.add(AxisAlignedBB.getBoundingBox(-3.5, 0, -1.5, 3.5, 1, 1.5)); + //Slop bucket + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5, 1, -1.5, 3.5, 3.25, 1.5)); + //Shredder + this.bounding.add(AxisAlignedBB.getBoundingBox(-2.25, 1, -1.5, 0.25, 3.25, -0.75)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-2.25, 1, 0.75, 0.25, 3.25, 1.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-2.25, 1, -1.5, -2, 3.25, 1.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0, 1, -1.5, 0.25, 3.25, 1.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-2, 1, -0.75, 0, 2, 0.75)); + //Outlet + this.bounding.add(AxisAlignedBB.getBoundingBox(-3.25, 1, -1, -2.25, 3, 1)); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineOreSlopper(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {3, 0, 3, 3, 1, 1}; + } + + @Override + public int getOffset() { + return 3; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return standardOpenBehavior(world, x, y, z, player, side); + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x + dir.offsetX * 3, y, z + dir.offsetZ * 3); + this.makeExtra(world, x - dir.offsetX * 3, y, z - dir.offsetZ * 3); + this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ); + this.makeExtra(world, x - rot.offsetX, y, z - rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 2 + rot.offsetX, y, z + dir.offsetZ * 2 + rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 2 - rot.offsetX, y, z + dir.offsetZ * 2 - rot.offsetZ); + this.makeExtra(world, x - dir.offsetX * 2 + rot.offsetX, y, z - dir.offsetZ * 2 + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX * 2 - rot.offsetX, y, z - dir.offsetZ * 2 - rot.offsetZ); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java new file mode 100644 index 000000000..584877d3f --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -0,0 +1,221 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.tileentity.machine.TileEntityPWRController; +import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +public class MachinePWRController extends BlockContainer implements ITooltipProvider { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public MachinePWRController(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPWRController(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":pwr_controller"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + + TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); + + if(!controller.assembled) { + assemble(world, x, y, z, player); + } else { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + + return true; + } else { + return false; + } + } + + private static HashMap assembly = new HashMap(); + private static HashMap fuelRods = new HashMap(); + private static HashMap sources = new HashMap(); + private static boolean errored; + private static final int maxSize = 4096; + + public void assemble(World world, int x, int y, int z, EntityPlayer player) { + assembly.clear(); + fuelRods.clear(); + sources.clear(); + assembly.put(new BlockPos(x, y, z), this); + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)).getOpposite(); + + errored = false; + floodFill(world, x + dir.offsetX, y, z + dir.offsetZ, player); + + if(fuelRods.size() == 0){ + sendError(world, x, y, z, "Fuel rods required", player); + errored = true; + } + + if(sources.size() == 0) { + sendError(world, x, y, z, "Neutron sources required", player); + errored = true; + } + + TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); + + if(!errored) { + for(Entry entry : assembly.entrySet()) { + + BlockPos pos = entry.getKey(); + Block block = entry.getValue(); + + if(block != ModBlocks.pwr_controller) { + + if(block == ModBlocks.pwr_port) { + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.pwr_block, 1, 3); + } else { + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.pwr_block, 0, 3); + } + + TileEntityBlockPWR pwr = (TileEntityBlockPWR) world.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + pwr.block = block; + pwr.coreX = x; + pwr.coreY = y; + pwr.coreZ = z; + pwr.markDirty(); + } + } + + controller.setup(assembly, fuelRods); + } + controller.assembled = !errored; + + assembly.clear(); + fuelRods.clear(); + sources.clear(); + } + + private void floodFill(World world, int x, int y, int z, EntityPlayer player) { + + BlockPos pos = new BlockPos(x, y, z); + + if(assembly.containsKey(pos)) return; + if(assembly.size() >= maxSize) { + errored = true; + sendError(world, x, y, z, "Max size exceeded", player); + return; + } + + Block block = world.getBlock(x, y, z); + + if(isValidCasing(block)) { + assembly.put(pos, block); + return; + } + + if(isValidCore(block)) { + assembly.put(pos, block); + if(block == ModBlocks.pwr_fuel) fuelRods.put(pos, block); + if(block == ModBlocks.pwr_neutron_source) sources.put(pos, block); + floodFill(world, x + 1, y, z, player); + floodFill(world, x - 1, y, z, player); + floodFill(world, x, y + 1, z, player); + floodFill(world, x, y - 1, z, player); + floodFill(world, x, y, z + 1, player); + floodFill(world, x, y, z - 1, player); + return; + } + + sendError(world, x, y, z, "Non-reactor block", player); + errored = true; + } + + private void sendError(World world, int x, int y, int z, String message, EntityPlayer player) { + + if(player instanceof EntityPlayerMP) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "marker"); + data.setInteger("color", 0xff0000); + data.setInteger("expires", 5_000); + data.setDouble("dist", 128D); + if(message != null) data.setString("label", message); + PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(data, x, y, z), (EntityPlayerMP) player); + } + } + + private boolean isValidCore(Block block) { + if(block == ModBlocks.pwr_fuel || + block == ModBlocks.pwr_control || + block == ModBlocks.pwr_channel || + block == ModBlocks.pwr_heatex || + block == ModBlocks.pwr_heatsink || + block == ModBlocks.pwr_neutron_source) + return true; + return false; + } + + private boolean isValidCasing(Block block) { + if(block == ModBlocks.pwr_casing || block == ModBlocks.pwr_reflector || block == ModBlocks.pwr_port) return true; + return false; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePlasmaHeater.java b/src/main/java/com/hbm/blocks/machine/MachinePlasmaHeater.java index 08c7f164f..1c138339a 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePlasmaHeater.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePlasmaHeater.java @@ -1,14 +1,11 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachinePlasmaHeater; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -22,6 +19,8 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.Random; + public class MachinePlasmaHeater extends BlockDummyable { public MachinePlasmaHeater() { @@ -36,7 +35,7 @@ public class MachinePlasmaHeater extends BlockDummyable { if(meta >= 6) return new TileEntityProxyCombo(false, true, true); - + return null; } @@ -44,7 +43,7 @@ public class MachinePlasmaHeater extends BlockDummyable { public Item getItemDropped(int i, Random rand, int j) { return null; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -53,10 +52,10 @@ public class MachinePlasmaHeater extends BlockDummyable { } else if(!player.isSneaking()) { int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return false; - + TileEntityMachinePlasmaHeater entity = (TileEntityMachinePlasmaHeater) world.getTileEntity(pos[0], pos[1], pos[2]); if(entity != null) { @@ -74,21 +73,21 @@ public class MachinePlasmaHeater extends BlockDummyable { MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -3, 2, 1, 1, 1}, this, dir); MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 2, z + dir.offsetZ * o, new int[] {0, 1, 10, -8, 0, 0}, this, dir); - + ForgeDirection side = dir.getRotation(ForgeDirection.UP); - + for(int i = 1; i < 4; i++) { for(int j = -1; j < 2; j++) { - + this.makeExtra(world, x + side.offsetX * j, y + i, z + side.offsetZ * j); } } } - + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - + float f = 0.0625F; - + if(world.getBlockMetadata(x, y, z) == ForgeDirection.UP.ordinal() && world.getBlock(x, y + 1, z) != this) { return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + f * 8F, z + 1); } else if(world.getBlockMetadata(x, y, z) == ForgeDirection.DOWN.ordinal() && world.getBlock(x, y - 1, z) != this) { @@ -97,11 +96,11 @@ public class MachinePlasmaHeater extends BlockDummyable { return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); } } - + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { float f = 0.0625F; - + if(world.getBlockMetadata(x, y, z) == ForgeDirection.UP.ordinal() && world.getBlock(x, y + 1, z) != this) { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, f * 8F, 1.0F); } else if(world.getBlockMetadata(x, y, z) == ForgeDirection.DOWN.ordinal() && world.getBlock(x, y - 1, z) != this) { @@ -110,18 +109,18 @@ public class MachinePlasmaHeater extends BlockDummyable { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } } - + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false; - + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -3, 1, 1, 1, 1}, x, y, z, dir)) return false; - + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 2, z + dir.offsetZ * o, new int[] {0, 1, 10, -8, 0, 0}, x, y, z, dir)) return false; - + return true; } @@ -134,12 +133,12 @@ public class MachinePlasmaHeater extends BlockDummyable { public int getOffset() { return 1; } - + @Override public void breakBlock(World world, int x, int y, int z, Block block, int i) { - + if(i >= 12) { - + for(int l = 0; l < 2; l++) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_heater, 64))); diff --git a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java index 4826057f4..ba671001c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java @@ -2,54 +2,42 @@ package com.hbm.blocks.machine; import java.util.Random; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class MachinePuF6Tank extends BlockContainer implements IMultiblock { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; +public class MachinePuF6Tank extends BlockContainer { public MachinePuF6Tank(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override - public int getRenderType(){ + public int getRenderType() { return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconregister) { @@ -62,106 +50,25 @@ public class MachinePuF6Tank extends BlockContainer implements IMultiblock { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_puf6_tank); - } - + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return null; + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.uf6Dimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.uf6Dimension, ModBlocks.dummy_block_puf6); - - } else - world.func_147480_a(x, y, z, true); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachinePuF6Tank tileentityfurnace = (TileEntityMachinePuF6Tank)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityMachinePuF6Tank entity = (TileEntityMachinePuF6Tank) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachinePump.java b/src/main/java/com/hbm/blocks/machine/MachinePump.java new file mode 100644 index 000000000..1d2198029 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachinePump.java @@ -0,0 +1,108 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachinePumpBase; +import com.hbm.tileentity.machine.TileEntityMachinePumpElectric; +import com.hbm.tileentity.machine.TileEntityMachinePumpSteam; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachinePump extends BlockDummyable implements ITooltipProvider, ILookOverlay { + + public MachinePump() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) { + if(this == ModBlocks.pump_steam) return new TileEntityMachinePumpSteam(); + if(this == ModBlocks.pump_electric) return new TileEntityMachinePumpElectric(); + } + if(meta >= 6) { + if(this == ModBlocks.pump_steam) return new TileEntityProxyCombo().fluid(); + if(this == ModBlocks.pump_electric) return new TileEntityProxyCombo().fluid().power(); + } + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {3, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ + 1); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ - 1); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityMachinePumpBase)) return; + + List text = new ArrayList(); + + if(te instanceof TileEntityMachinePumpSteam) { + TileEntityMachinePumpSteam pump = (TileEntityMachinePumpSteam) te; + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + pump.steam.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.steam.getFill()) + " / " + String.format(Locale.US, "%,d", pump.steam.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + pump.lps.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.lps.getFill()) + " / " + String.format(Locale.US, "%,d", pump.lps.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + pump.water.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); + } + + if(te instanceof TileEntityMachinePumpElectric) { + TileEntityMachinePumpElectric pump = (TileEntityMachinePumpElectric) te; + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", pump.power) + " / " + String.format(Locale.US, "%,d", pump.maxPower) + "HE"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + pump.water.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); + } + + if(pos[1] > 70) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! ALTITUDE ! ! !"); + } + + if(!((TileEntityMachinePumpBase) te).onGround) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! NO VALID GROUND ! ! !"); + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java b/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java index 89169d863..56f05147d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java @@ -13,7 +13,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -100,7 +99,7 @@ public class MachinePumpjack extends BlockDummyable implements IPersistentInfoPr for(int i = 0; i < 2; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "t" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachinePyroOven.java b/src/main/java/com/hbm/blocks/machine/MachinePyroOven.java new file mode 100644 index 000000000..a28eab1a7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachinePyroOven.java @@ -0,0 +1,55 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.oil.TileEntityMachinePyroOven; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachinePyroOven extends BlockDummyable { + + public MachinePyroOven(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachinePyroOven(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {2, 0, 3, 3, 2, 2}; + } + + @Override + public int getOffset() { + return 3; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + for(int i = -2; i <= 2; i++) { + this.makeExtra(world, x + dir.offsetX * i + rot.offsetX * 2, y, z + dir.offsetZ * i + rot.offsetZ * 2); + } + + this.makeExtra(world, x - rot.offsetX, y + 2, z - rot.offsetZ); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineRadar.java b/src/main/java/com/hbm/blocks/machine/MachineRadar.java index 9a7ccb8f6..a06effd14 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineRadar.java +++ b/src/main/java/com/hbm/blocks/machine/MachineRadar.java @@ -1,8 +1,7 @@ package com.hbm.blocks.machine; -import com.hbm.config.WeaponConfig; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineRadar; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.BlockContainer; @@ -10,6 +9,8 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -21,7 +22,7 @@ public class MachineRadar extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineRadar(); + return new TileEntityMachineRadarNT(); } @Override @@ -42,41 +43,35 @@ public class MachineRadar extends BlockContainer { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(y < WeaponConfig.radarAltitude) { + if(y < TileEntityMachineRadarNT.radarAltitude) { if(world.isRemote) - player.addChatMessage(new ChatComponentText("[Radar] Error: Radar altitude not sufficient.")); + player.addChatMessage(new ChatComponentText("[Radar] Error: Radar altitude not sufficient.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); return true; } - if(world.isRemote) - { + if(world.isRemote && !player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; - } else if(!player.isSneaking()) - { - TileEntityMachineRadar entity = (TileEntityMachineRadar) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } + } else if(!player.isSneaking()) { return true; } else { return false; } } - public boolean canProvidePower() - { - return true; - } + @Override + public boolean canProvidePower() { + return true; + } - public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) - { - TileEntityMachineRadar entity = (TileEntityMachineRadar) world.getTileEntity(x, y, z); - return entity.getRedPower(); - } + @Override + public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) { + TileEntityMachineRadarNT entity = (TileEntityMachineRadarNT) world.getTileEntity(x, y, z); + return entity.getRedPower(); + } - public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) - { - return isProvidingWeakPower(world, x, y, z, m); - } + @Override + public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) { + return isProvidingWeakPower(world, x, y, z, m); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineRadarLarge.java b/src/main/java/com/hbm/blocks/machine/MachineRadarLarge.java new file mode 100644 index 000000000..40d42e249 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineRadarLarge.java @@ -0,0 +1,98 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineRadarLarge; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineRadarLarge extends BlockDummyable { + + public MachineRadarLarge(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineRadarLarge(); + if(meta >= 6) return new TileEntityProxyCombo().power(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(y < TileEntityMachineRadarNT.radarAltitude) { + if(world.isRemote) + player.addChatMessage(new ChatComponentText("[Radar] Error: Radar altitude not sufficient.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + return true; + } + + if(world.isRemote && !player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + return true; + } else if(!player.isSneaking()) { + return true; + } else { + return false; + } + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + x += dir.offsetX * o; + z += dir.offsetZ * o; + this.makeExtra(world, x + 1, y, z); + this.makeExtra(world, x - 1, y, z); + this.makeExtra(world, x, y, z + 1); + this.makeExtra(world, x, y, z - 1); + } + + @Override + public boolean canProvidePower() { + return true; + } + + @Override + public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) { + int meta = world.getBlockMetadata(x, y, z); + if(meta >= 6) { + ForgeDirection dir = ForgeDirection.getOrientation(m); + TileEntity tile = world.getTileEntity(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + if(tile instanceof TileEntityMachineRadarNT) { + TileEntityMachineRadarNT entity = (TileEntityMachineRadarNT) tile; + return entity.getRedPower(); + } + } + return 0; + } + + @Override + public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) { + return isProvidingWeakPower(world, x, y, z, m); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java b/src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java new file mode 100644 index 000000000..0f6e63d8e --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java @@ -0,0 +1,55 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineRadarScreen extends BlockDummyable { + + public MachineRadarScreen(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return meta >= 12 ? new TileEntityMachineRadarScreen() : null; + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 0, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote && !player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) return false; + + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(screen.linked && world.getTileEntity(screen.refX, screen.refY, screen.refZ) instanceof TileEntityMachineRadarNT) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, screen.refX, screen.refY, screen.refZ); + } + + return false; + } else if(!player.isSneaking()) { + return true; + } else { + return false; + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineReactorBreeding.java b/src/main/java/com/hbm/blocks/machine/MachineReactorBreeding.java index bde522787..29f5fa213 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineReactorBreeding.java +++ b/src/main/java/com/hbm/blocks/machine/MachineReactorBreeding.java @@ -4,7 +4,6 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyInventory; import com.hbm.tileentity.machine.TileEntityMachineReactorBreeding; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -12,20 +11,20 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class MachineReactorBreeding extends BlockDummyable { - + public MachineReactorBreeding(Material mat) { super(mat); } @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntityMachineReactorBreeding(); - + return new TileEntityProxyInventory(); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -34,10 +33,10 @@ public class MachineReactorBreeding extends BlockDummyable { } else if(!player.isSneaking()) { int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return false; - + TileEntityMachineReactorBreeding entity = (TileEntityMachineReactorBreeding) world.getTileEntity(pos[0], pos[1], pos[2]); if(entity != null) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineReactorControl.java b/src/main/java/com/hbm/blocks/machine/MachineReactorControl.java index 9b7cde970..4f3fc61bf 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineReactorControl.java +++ b/src/main/java/com/hbm/blocks/machine/MachineReactorControl.java @@ -1,11 +1,8 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityReactorControl; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -25,8 +22,10 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import java.util.Random; + public class MachineReactorControl extends BlockContainer { - + @SideOnly(Side.CLIENT) private IIcon iconTop; @SideOnly(Side.CLIENT) @@ -40,7 +39,7 @@ public class MachineReactorControl extends BlockContainer { public MachineReactorControl(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -49,33 +48,33 @@ public class MachineReactorControl extends BlockContainer { this.iconBack = iconRegister.registerIcon(RefStrings.MODID + ":machine_controller_back"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_controller_side"); } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { - + if(metadata == 0) metadata = 3; - + if(metadata == side) return iconFront; - + if(side == 0 || side == 1) return iconTop; - + if(metadata == 2 && side == 3 || metadata == 3 && side == 2 || metadata == 4 && side == 5 || metadata == 5 && side == 4) return iconBack; - + return blockIcon; } - + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); @@ -92,7 +91,7 @@ public class MachineReactorControl extends BlockContainer { { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(itemStack.hasDisplayName()) { ((TileEntityReactorControl)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); @@ -103,13 +102,13 @@ public class MachineReactorControl extends BlockContainer { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityReactorControl(); } - + @Override public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { return Item.getItemFromBlock(this); } - + @Override public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { @@ -161,7 +160,7 @@ public class MachineReactorControl extends BlockContainer { super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -190,12 +189,12 @@ public class MachineReactorControl extends BlockContainer { public int getComparatorInputOverride(World world, int x, int y, int z, int p_149736_5_) { TileEntityReactorControl entity = (TileEntityReactorControl) world.getTileEntity(x, y, z); - + if(entity != null) { return (int)Math.ceil((double)entity.heat * 15D / 50000D); } - + return 0; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineRefinery.java b/src/main/java/com/hbm/blocks/machine/MachineRefinery.java index 10fab37d0..fa7e8e6a6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineRefinery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineRefinery.java @@ -14,7 +14,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; -import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -43,7 +42,7 @@ public class MachineRefinery extends BlockDummyable implements IPersistentInfoPr @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityMachineRefinery(); - if(meta >= 6) return new TileEntityProxyCombo().fluid().power(); + if(meta >= 6) return new TileEntityProxyCombo().fluid().power().inventory(); return null; } @@ -116,7 +115,7 @@ public class MachineRefinery extends BlockDummyable implements IPersistentInfoPr for(int i = 0; i < 5; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineRotaryFurnace.java b/src/main/java/com/hbm/blocks/machine/MachineRotaryFurnace.java new file mode 100644 index 000000000..a438ef38e --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineRotaryFurnace.java @@ -0,0 +1,59 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineRotaryFurnace; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineRotaryFurnace extends BlockDummyable { + + public MachineRotaryFurnace(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineRotaryFurnace(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().fluid(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 1, 1, 2, 2}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + //back + for(int i = -2; i <= 2; i++) { + this.makeExtra(world, x - dir.offsetX + rot.offsetX * i, y, z - dir.offsetZ + rot.offsetZ * i); + } + //side fluid + this.makeExtra(world, x + dir.offsetX - rot.offsetX * 2, y, z + dir.offsetZ - rot.offsetZ * 2); + //exhaust + this.makeExtra(world, x + rot.offsetX, y + 4, z + rot.offsetZ); + //solid fuel + this.makeExtra(world, x + dir.offsetX + rot.offsetX, y, z + dir.offsetZ + rot.offsetZ); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineSawmill.java b/src/main/java/com/hbm/blocks/machine/MachineSawmill.java index 1be748c34..8a112a2b2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSawmill.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSawmill.java @@ -33,6 +33,7 @@ public class MachineSawmill extends BlockDummyable implements ILookOverlay, IToo this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, 1.5D, 1D, 1.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 1D, -0.5D, -0.625D, 1.875D, 0.5D)); this.bounding.add(AxisAlignedBB.getBoundingBox(-0.625D, 1D, -1D, 1.375D, 2D, 1D)); + this.maxY = 0.999D; //item bounce prevention } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/blocks/machine/MachineSchrabidiumTransmutator.java index d89764265..04bc79818 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSchrabidiumTransmutator.java @@ -1,12 +1,9 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -23,16 +20,18 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; +import java.util.Random; + public class MachineSchrabidiumTransmutator extends BlockContainer { private final Random field_149933_a = new Random(); private static boolean keepInventory; - + @SideOnly(Side.CLIENT) //private IIcon iconFront; private IIcon iconTop; private IIcon iconBottom; - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -40,7 +39,7 @@ public class MachineSchrabidiumTransmutator extends BlockContainer { this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (":transmutator_bottom")); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":transmutator_side"); } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { @@ -50,13 +49,13 @@ public class MachineSchrabidiumTransmutator extends BlockContainer { public MachineSchrabidiumTransmutator(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { return Item.getItemFromBlock(ModBlocks.machine_schrabidium_transmutator); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -79,7 +78,7 @@ public class MachineSchrabidiumTransmutator extends BlockContainer { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityMachineSchrabidiumTransmutator(); } - + @Override public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java deleted file mode 100644 index d1d598932..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.List; -import java.util.Random; - -import com.hbm.blocks.ITooltipProvider; -import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class MachineSeleniumEngine extends BlockContainer implements ITooltipProvider { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - - public MachineSeleniumEngine(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineSeleniumEngine(); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - if(!keepInventory) { - TileEntityMachineSeleniumEngine tileentityfurnace = (TileEntityMachineSeleniumEngine) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if(tileentityfurnace != null) { - for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if(itemstack != null) { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while(itemstack.stackSize > 0) { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if(j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if(itemstack.hasTagCompound()) { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - TileEntityMachineSeleniumEngine entity = (TileEntityMachineSeleniumEngine) world.getTileEntity(x, y, z); - if(entity != null) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); - for(FuelGrade grade : FuelGrade.values()) { - Double efficiency = TileEntityMachineSeleniumEngine.fuelEfficiency.get(grade); - - if(efficiency != null) { - int eff = (int) (efficiency * 100); - list.add(EnumChatFormatting.YELLOW + "-" + grade.getGrade() + ": " + EnumChatFormatting.RED + "" + eff + "%"); - } - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java b/src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java deleted file mode 100644 index d66055dd3..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.machine.TileEntityMachineShredderLarge; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class MachineShredderLarge extends BlockContainer { - - public MachineShredderLarge(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineShredderLarge(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineSolarBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineSolarBoiler.java index d3df9c320..6c4a3e29c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSolarBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSolarBoiler.java @@ -1,15 +1,22 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntitySolarBoiler; - +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineSolarBoiler extends BlockDummyable { +import java.util.ArrayList; +import java.util.List; + +public class MachineSolarBoiler extends BlockDummyable implements ILookOverlay { public MachineSolarBoiler(Material mat) { super(mat); @@ -17,12 +24,12 @@ public class MachineSolarBoiler extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntitySolarBoiler(); if(meta >= extra) return new TileEntityProxyCombo(false, false, true); - + return null; } @@ -39,10 +46,34 @@ public class MachineSolarBoiler extends BlockDummyable { @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - + x = x + dir.offsetX * o; z = z + dir.offsetZ * o; - + this.makeExtra(world, x, y + 2, z); } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntitySolarBoiler)) + return; + + TileEntitySolarBoiler boiler = (TileEntitySolarBoiler) te; + + List text = new ArrayList<>(); + + FluidTank[] tanks = boiler.getAllTanks(); + + for(int i = 0; i < tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tanks[i].getTankType().getLocalizedName() + ": " + tanks[i].getFill() + "/" + tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineSolderingStation.java b/src/main/java/com/hbm/blocks/machine/MachineSolderingStation.java new file mode 100644 index 000000000..a3d210b79 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineSolderingStation.java @@ -0,0 +1,37 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineSolderingStation; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineSolderingStation extends BlockDummyable { + + public MachineSolderingStation(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineSolderingStation(); + return new TileEntityProxyCombo().inventory().power().fluid(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 1, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java index 7277b011d..dc7f13426 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java @@ -1,15 +1,11 @@ package com.hbm.blocks.machine; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntitySteamEngine; import com.hbm.util.I18nUtil; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -19,6 +15,10 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + public class MachineSteamEngine extends BlockDummyable implements ILookOverlay, ITooltipProvider { public MachineSteamEngine() { @@ -45,10 +45,10 @@ public class MachineSteamEngine extends BlockDummyable implements ILookOverlay, @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - + x = x + dir.offsetX * o; z = z + dir.offsetZ * o; - + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); this.makeExtra(world, x + rot.offsetX, y + 1, z + rot.offsetZ); @@ -58,23 +58,23 @@ public class MachineSteamEngine extends BlockDummyable implements ILookOverlay, @Override public void printHook(Pre event, World world, int x, int y, int z) { - + int[] pos = this.findCore(world, x, y, z); - + if(pos == null) return; - + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); - + if(!(te instanceof TileEntitySteamEngine)) return; - + TileEntitySteamEngine engine = (TileEntitySteamEngine) te; List text = new ArrayList(); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", engine.tanks[0].getFill()) + " / " + String.format("%,d", engine.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", engine.tanks[1].getFill()) + " / " + String.format("%,d", engine.tanks[1].getMaxFill()) + "mB"); - + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + engine.tanks[0].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", engine.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + engine.tanks[1].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", engine.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[1].getMaxFill()) + "mB"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineStirling.java b/src/main/java/com/hbm/blocks/machine/MachineStirling.java index 800b7f361..3cdfde1e7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStirling.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStirling.java @@ -7,6 +7,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityStirling; @@ -156,26 +157,28 @@ public class MachineStirling extends BlockDummyable implements ILookOverlay, ITo return; TileEntityStirling stirling = (TileEntityStirling) te; - int maxHeat = stirling.maxHeat(); List text = new ArrayList(); text.add(stirling.heat + "TU/t"); text.add((stirling.hasCog ? stirling.powerBuffer : 0) + "HE/t"); - double percent = (double) stirling.heat / (double) maxHeat; - int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); - - if(percent > 1D) - color = 0xff0000; - - text.add("&[" + color + "&]" + ((stirling.heat * 1000 / maxHeat) / 10D) + "%"); - - if(stirling.heat > maxHeat) { - text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! OVERSPEED ! ! !"); - } - - if(!stirling.hasCog) { - text.add("&[" + 0xff0000 + "&]Gear missing!"); + if(this != ModBlocks.machine_stirling_creative) { + int maxHeat = stirling.maxHeat(); + double percent = (double) stirling.heat / (double) maxHeat; + int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); + + if(percent > 1D) + color = 0xff0000; + + text.add("&[" + color + "&]" + ((stirling.heat * 1000 / maxHeat) / 10D) + "%"); + + if(stirling.heat > maxHeat) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! OVERSPEED ! ! !"); + } + + if(!stirling.hasCog) { + text.add("&[" + 0xff0000 + "&]Gear missing!"); + } } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java new file mode 100644 index 000000000..89435b761 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -0,0 +1,227 @@ +package com.hbm.blocks.machine; + +import api.hbm.block.ICrucibleAcceptor; +import api.hbm.block.IToolable; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemScraps; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; +import com.hbm.util.I18nUtil; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; + +public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcceptor, ILookOverlay, IToolable { + + public MachineStrandCaster() { + super(Material.iron); + } + + // reminder, if the machine is a solid brick, get dimensions will already + // handle it without the need to use fillSapce + // the order is up, down, forward, backward, left, right + // x is for left(-)/right(+), z is for forward(+)/backward(-), y you already + // know + @Override + public int[] getDimensions() { + return new int[] { 0, 0, 6, 0, 1, 0 }; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineStrandCaster(); + if(meta >= 6) return new TileEntityProxyCombo(true, false, true).moltenMetal(); + return null; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + // up,down;forward,backward;left,right + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] { 2, 0, 1, 0, 1, 0 }, this, dir); + // Fluid ports + this.makeExtra(world, x + rot.offsetX - dir.offsetX, y, z + rot.offsetZ - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX * 5, y, z - dir.offsetZ * 5); + this.makeExtra(world, x + rot.offsetX - dir.offsetX * 5, y, z + rot.offsetZ - dir.offsetZ * 5); + // Molten slop ports + this.makeExtra(world, x + rot.offsetX - dir.offsetX, y + 2, z + rot.offsetZ - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y + 2, z - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX, y + 2, z + rot.offsetZ); + this.makeExtra(world, x, y + 2, z); + } + + @Override + public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + + TileEntity poured = world.getTileEntity(x, y, z); + if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return false; + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(tile instanceof TileEntityMachineStrandCaster)) return false; + TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; + + return caster.canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack); + } + + @Override + public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + + TileEntity poured = world.getTileEntity(x, y, z); + if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return stack; + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return stack; + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(tile instanceof TileEntityMachineStrandCaster)) return stack; + TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile; + + return caster.pour(world, x, y, z, dX, dY, dZ, side, stack); + } + + @Override + public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + return false; + } + + @Override + public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } + + int[] coords = findCore(world, x, y, z); + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); + if(cast != null) { + // insert mold + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) { + cast.slots[0] = player.getHeldItem().copy(); + cast.slots[0].stackSize = 1; + player.getHeldItem().stackSize--; + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + cast.markDirty(); + return true; + + } + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && player.getHeldItem().getItem().getToolClasses(player.getHeldItem()).contains("shovel")) { + if(cast.amount > 0) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); + if(!player.inventory.addItemStackToInventory(scrap)) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } + cast.amount = 0; + cast.type = null; + cast.markDirty(); + } + return true; + } + } + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block b, int i) { + + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TileEntityMachineStrandCaster) { + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) te; + + if(cast.amount > 0) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(cast.type, cast.amount)); + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap); + world.spawnEntityInWorld(item); + cast.amount = 0; // just for safety + } + } + super.breakBlock(world, x, y, z, b, i); + } + + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + int[] coords = findCore(world, x, y, z); + if(coords == null) + return; + + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); + + List text = new ArrayList(); + if(cast != null) { + if(cast.slots[0] == null) { + text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast")); + } else if(cast.slots[0].getItem() == ModItems.mold) { + text.add(EnumChatFormatting.BLUE + cast.getInstalledMold().getTitle()); + } + } + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + x += dir.offsetX * o; + z += dir.offsetZ * o; + + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir)) + return false; + return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] { 2, 0, 1, 0, 1, 0 }, x, y, z, dir); + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if(tool != ToolType.SCREWDRIVER) + return false; + + int[] coords = findCore(world, x, y, z); + TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]); + + if(cast.slots[0] == null) + return false; + + if(!player.inventory.addItemStackToInventory(cast.slots[0].copy())) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, cast.slots[0].copy()); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } + + cast.slots[0] = null; + cast.markDirty(); + + return true; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java b/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java index 3b5ccd587..f702e0b4f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; @@ -61,7 +62,7 @@ public class MachineTeleporter extends BlockContainer implements ILookOverlay { if(tele.targetY == -1) { text.add(EnumChatFormatting.RED + "No destination set!"); } else { - text.add((tele.power >= tele.consumption ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + String.format("%,d", tele.power) + " / " + String.format("%,d", tele.maxPower)); + text.add((tele.power >= tele.consumption ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + String.format(Locale.US, "%,d", tele.power) + " / " + String.format(Locale.US, "%,d", tele.maxPower)); text.add("Destination: " + tele.targetX + " / " + tele.targetY + " / " + tele.targetZ + " (D: " + tele.targetDim + ")"); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java index b15c2dc74..4279cc746 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -78,7 +77,7 @@ public class MachineTowerLarge extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java index f13cc49df..6b9bc5947 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -75,7 +74,7 @@ public class MachineTowerSmall extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTransformer.java b/src/main/java/com/hbm/blocks/machine/MachineTransformer.java index 5f1980782..1369765fb 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTransformer.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTransformer.java @@ -3,7 +3,6 @@ package com.hbm.blocks.machine; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineTransformer; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; @@ -17,7 +16,7 @@ public class MachineTransformer extends BlockContainer { long buffer; int delay; - + @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -26,11 +25,11 @@ public class MachineTransformer extends BlockContainer { buffer = b; delay = d; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - + if(this == ModBlocks.machine_transformer || this == ModBlocks.machine_transformer_20) { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_top_iron"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_iron"); diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java index f47e6b6c3..a17cf0fcc 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java @@ -6,7 +6,6 @@ import com.hbm.util.I18nUtil; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -86,16 +85,16 @@ public class MachineTurbineGas extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); if(hitCheck(dir, pos[0], pos[1], pos[2], -1, -1, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, -1, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[0].getTankType().getName().toLowerCase(Locale.US))); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[1].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + turbine.tanks[0].getTankType().getLocalizedName()); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + turbine.tanks[1].getTankType().getLocalizedName()); } if(hitCheck(dir, pos[0], pos[1], pos[2], -1, 4, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, 4, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[2].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + turbine.tanks[2].getTankType().getLocalizedName()); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, 5, 1, x, y, z)) { - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[3].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + turbine.tanks[3].getTankType().getLocalizedName()); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, -4, 1, x, y, z)) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java index 5f8e45d39..07fcb7baa 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java @@ -2,54 +2,42 @@ package com.hbm.blocks.machine; import java.util.Random; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class MachineUF6Tank extends BlockContainer implements IMultiblock { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; +public class MachineUF6Tank extends BlockContainer { public MachineUF6Tank(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override - public int getRenderType(){ + public int getRenderType() { return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconregister) { @@ -62,106 +50,25 @@ public class MachineUF6Tank extends BlockContainer implements IMultiblock { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_uf6_tank); - } - + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return null; + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.uf6Dimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.uf6Dimension, ModBlocks.dummy_block_uf6); - - } else - world.func_147480_a(x, y, z, true); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineUF6Tank tileentityfurnace = (TileEntityMachineUF6Tank)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityMachineUF6Tank entity = (TileEntityMachineUF6Tank) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineVacuumDistill.java b/src/main/java/com/hbm/blocks/machine/MachineVacuumDistill.java index 6382054c7..ad06c6e1d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineVacuumDistill.java +++ b/src/main/java/com/hbm/blocks/machine/MachineVacuumDistill.java @@ -3,7 +3,6 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineVacuumDistill; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -22,7 +21,7 @@ public class MachineVacuumDistill extends BlockDummyable { if(meta >= 6) return new TileEntityProxyCombo().fluid().power(); return null; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return standardOpenBehavior(world, x, y, z, player, side); diff --git a/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java b/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java new file mode 100644 index 000000000..246fb20b0 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java @@ -0,0 +1,58 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineWoodBurner extends BlockDummyable implements ITooltipProvider { + + public MachineWoodBurner(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineWoodBurner(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); + return new TileEntityProxyCombo().inventory(); + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX + rot.offsetX, y, z - dir.offsetZ + rot.offsetZ); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java index 099748d19..466c0a02f 100644 --- a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java +++ b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java @@ -4,12 +4,16 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import com.hbm.blocks.BlockFallingNT; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -17,9 +21,9 @@ import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockFalling; import net.minecraft.block.material.Material; -import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -31,8 +35,18 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; -public class NTMAnvil extends BlockFalling implements ITooltipProvider, IGUIProvider { +public class NTMAnvil extends BlockFallingNT implements ITooltipProvider, IGUIProvider { + + public static final int TIER_IRON = 1; + public static final int TIER_STEEL = 2; + public static final int TIER_OIL = 3; + public static final int TIER_NUCLEAR = 4; + public static final int TIER_RBMK = 5; + public static final int TIER_FUSION = 6; + public static final int TIER_PARTICLE = 7; + public static final int TIER_GERALD = 8; public final int tier; @@ -177,7 +191,32 @@ public class NTMAnvil extends BlockFalling implements ITooltipProvider, IGUIProv @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIAnvil(player.inventory, ((NTMAnvil)world.getBlock(x, y, z)).tier); } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldOverrideRenderer() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void overrideRenderer(EntityFallingBlockNT falling, RenderBlocks renderBlocks, Tessellator tessellator) { + + float rotation = 0; + if(falling.getMeta() == 2) rotation = 90F / 180F * (float) Math.PI; + if(falling.getMeta() == 3) rotation = 270F / 180F * (float) Math.PI; + if(falling.getMeta() == 4) rotation = 180F / 180F * (float)Math.PI; + + tessellator.addTranslation(0F, -0.5F, 0F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Top", getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Bottom", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Front", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Back", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Left", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Right", getIcon(0, 0), tessellator, rotation, true); + tessellator.addTranslation(0F, 0.5F, 0F); + } } diff --git a/src/main/java/com/hbm/blocks/machine/OilDuctSolid.java b/src/main/java/com/hbm/blocks/machine/OilDuctSolid.java deleted file mode 100644 index cfec07f2d..000000000 --- a/src/main/java/com/hbm/blocks/machine/OilDuctSolid.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.conductor.TileEntityOilDuctSolid; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class OilDuctSolid extends BlockContainer { - - public OilDuctSolid(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityOilDuctSolid(); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/PinkCloudBroadcaster.java b/src/main/java/com/hbm/blocks/machine/PinkCloudBroadcaster.java index c975e5ae1..eef9a80be 100644 --- a/src/main/java/com/hbm/blocks/machine/PinkCloudBroadcaster.java +++ b/src/main/java/com/hbm/blocks/machine/PinkCloudBroadcaster.java @@ -1,7 +1,6 @@ package com.hbm.blocks.machine; import com.hbm.tileentity.machine.TileEntityBroadcaster; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -22,26 +21,26 @@ public class PinkCloudBroadcaster extends BlockContainer { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityBroadcaster(); } - + @Override public int getRenderType(){ return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); @@ -59,13 +58,13 @@ public class PinkCloudBroadcaster extends BlockContainer { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } } - + @Override public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { int te = p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_); float f = 0.0625F; - + this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); switch(te) { @@ -83,13 +82,13 @@ public class PinkCloudBroadcaster extends BlockContainer { break; } } - + @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { int te = world.getBlockMetadata(x, y, z); float f = 0.0625F; - + this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); switch(te) { @@ -106,7 +105,7 @@ public class PinkCloudBroadcaster extends BlockContainer { this.setBlockBounds(1*f, 0.0F, 4*f, 15*f, 10*f, 12*f); break; } - + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java index 91e3e25b1..bb33d205d 100644 --- a/src/main/java/com/hbm/blocks/machine/PistonInserter.java +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -1,11 +1,16 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockContainerBase; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.blocks.ITooltipProvider; import api.hbm.block.IInsertable; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.BufferUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; @@ -21,7 +26,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class PistonInserter extends BlockContainerBase { +public class PistonInserter extends BlockContainerBase implements ITooltipProvider { public PistonInserter() { super(Material.iron); @@ -31,112 +36,112 @@ public class PistonInserter extends BlockContainerBase { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityPistonInserter(); } - + @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block neighbor) { this.updateState(world, x, y, z); } - + protected void updateState(World world, int x, int y, int z) { if(!world.isRemote) { ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); - + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isNormalCube()) return; //no obstructions allowed! - + boolean flag = checkRedstone(world, x, y, z); TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); - + if(flag && !piston.lastState && piston.extend <= 0) piston.isRetracting = false; - + piston.lastState = flag; } } - + protected boolean checkRedstone(World world, int x, int y, int z) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { if(world.getIndirectPowerOutput(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.ordinal())) return true; } - + return false; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - + if(side != world.getBlockMetadata(x, y, z)) return false; - + if(player.isSneaking()) { if(!world.isRemote) { TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); - + if(piston.slot != null && piston.isRetracting) { ForgeDirection dir = ForgeDirection.getOrientation(piston.getBlockMetadata()); - + EntityItem dust = new EntityItem(world, x + 0.5D + dir.offsetX * 0.75D, y + 0.5D + dir.offsetY * 0.75D, z + 0.5D + dir.offsetZ * 0.75D, piston.slot); piston.slot = null; - + dust.motionX = dir.offsetX * 0.25; dust.motionY = dir.offsetY * 0.25; dust.motionZ = dir.offsetZ * 0.25; world.spawnEntityInWorld(dust); } } - + return true; } else if(player.getHeldItem() != null) { if(!world.isRemote) { TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); - + if(piston.slot == null) { piston.slot = player.inventory.decrStackSize(player.inventory.currentItem, 1); player.inventoryContainer.detectAndSendChanges(); } } - + return true; } - + return false; } - + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { int l = BlockPistonBase.determineOrientation(world, x, y, z, player); world.setBlockMetadataWithNotify(x, y, z, l, 2); } - + @Override public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) { int meta = world.getBlockMetadata(x, y, z); return meta != side.ordinal() && meta != side.getOpposite().ordinal(); } - + @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { IInventory tileentityfurnace = (IInventory) world.getTileEntity(x, y, z); if(tileentityfurnace != null) { - + ItemStack itemstack = tileentityfurnace.getStackInSlot(0); if(itemstack != null) { float f = world.rand.nextFloat() * 0.8F + 0.1F; float f1 = world.rand.nextFloat() * 0.8F + 0.1F; float f2 = world.rand.nextFloat() * 0.8F + 0.1F; - + while(itemstack.stackSize > 0) { int j1 = world.rand.nextInt(21) + 10; - + if(j1 > itemstack.stackSize) { j1 = itemstack.stackSize; } - + itemstack.stackSize -= j1; EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - + if(itemstack.hasTagCompound()) { entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); } @@ -154,22 +159,22 @@ public class PistonInserter extends BlockContainerBase { super.breakBlock(world, x, y, z, block, meta); } - + @Override public int getRenderType(){ return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + // $%&#$& // %$&&@$%%#% //______ $%@--$@@%&$%$ @@ -200,73 +205,65 @@ public class PistonInserter extends BlockContainerBase { // |--' / /| |/ .^ ,^\ \ ) // | |_|| || |(_( ) | | // | \_/`-``-`----'___/_____ | - // |___..---' _|____`-----..-----'\ + // |___..---' _|____`-----..-----'\ // |_____________________| @ | ) // average coding session involving tile entities - public static class TileEntityPistonInserter extends TileEntity implements IInventory, INBTPacketReceiver { - + public static class TileEntityPistonInserter extends TileEntityLoadedBase implements IInventory { + public ItemStack slot; - + public int extend; //why don't we just make all these ones serverside? we're never using them on the client anyway public static final int maxExtend = 25; public boolean isRetracting = true; public int delay; - + //prevents funkies from happening with block updates or loading into a server private boolean lastState; - - //when a fake animatorcel gives you something so 20fps you gotta hit him with the true interpolation stare + + //when a fake animatorcel gives you something so 20fps you gotta hit him with the true interpolation stare @SideOnly(Side.CLIENT) public double renderExtend; @SideOnly(Side.CLIENT) public double lastExtend; @SideOnly(Side.CLIENT) private int syncExtend; //what are these for? @SideOnly(Side.CLIENT) private int turnProgress; - + public TileEntityPistonInserter() { } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(delay <= 0) { - + if(this.isRetracting && this.extend > 0) { this.extend--; } else if(!this.isRetracting) { this.extend++; - + if(this.extend >= this.maxExtend) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.pressOperate", 1.0F, 1.5F); - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); Block b = worldObj.getBlock(xCoord + dir.offsetX * 2, yCoord + dir.offsetY * 2, zCoord + dir.offsetZ * 2); - + if(b instanceof IInsertable && ((IInsertable) b).insertItem(worldObj, xCoord + dir.offsetX * 2, yCoord + dir.offsetY * 2, zCoord + dir.offsetZ * 2, dir, slot)) { this.decrStackSize(0, 1); } - + this.isRetracting = true; this.delay = 5; } } - + } else { delay--; } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("extend", extend); - if(this.slot != null) { - NBTTagCompound stack = new NBTTagCompound(); - slot.writeToNBT(stack); - data.setTag("stack", stack); - } - - INBTPacketReceiver.networkPack(this, data, 25); - + + networkPackNT(25); + } else { this.lastExtend = this.renderExtend; - + if(this.turnProgress > 0) { this.renderExtend += (this.syncExtend - this.renderExtend) / (double) this.turnProgress; this.turnProgress--; @@ -274,24 +271,34 @@ public class PistonInserter extends BlockContainerBase { this.renderExtend = this.syncExtend; } } - + } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.syncExtend = nbt.getInteger("extend"); - - if(nbt.hasKey("stack")) { - NBTTagCompound stack = nbt.getCompoundTag("stack"); + public void serialize(ByteBuf buf) { + buf.writeInt(extend); + + buf.writeBoolean(this.slot != null); + if(this.slot != null) { + BufferUtil.writeNBT(buf, slot.stackTagCompound); + } + + this.turnProgress = 2; + } + + @Override + public void deserialize(ByteBuf buf) { + this.syncExtend = buf.readInt(); + + if(buf.readBoolean()) { + NBTTagCompound stack = BufferUtil.readNBT(buf); this.slot = ItemStack.loadItemStackFromNBT(stack); } else this.slot = null; - + this.turnProgress = 2; } - - /* :3 NBT stuff */ - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -304,7 +311,7 @@ public class PistonInserter extends BlockContainerBase { nbt.setTag("stack", stack); } } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -318,27 +325,27 @@ public class PistonInserter extends BlockContainerBase { this.slot = null; } } - + @SideOnly(Side.CLIENT) private AxisAlignedBB aabb; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(aabb != null) return aabb; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); aabb = AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).addCoord(dir.offsetX, dir.offsetY, dir.offsetZ); return aabb; } - + /* BS inventory stuff */ - + @Override public int getSizeInventory() { return 1; } - + @Override public ItemStack getStackInSlot(int slot) { return this.slot; } - + @Override public ItemStack decrStackSize(int slot, int amount) { if(this.slot != null) { @@ -347,40 +354,45 @@ public class PistonInserter extends BlockContainerBase { this.slot = null; return stack; } - + ItemStack stack = this.slot.splitStack(amount); if(this.slot.stackSize == 0) this.slot = null; - + return stack; } - + return null; } - + @Override public ItemStack getStackInSlotOnClosing(int slot) { return null; } - + @Override public void setInventorySlotContents(int slot, ItemStack stack) { this.slot = stack; if(stack != null && stack.stackSize > this.getInventoryStackLimit()) stack.stackSize = this.getInventoryStackLimit(); } - + @Override public String getInventoryName() { return null; } - + @Override public boolean hasCustomInventoryName() { return false; } - + @Override public int getInventoryStackLimit() { return 1; } - + @Override public boolean isUseableByPlayer(EntityPlayer player) { return false; } - + @Override public void openInventory() {} - + @Override public void closeInventory() {} - + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } - + + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); } } diff --git a/src/main/java/com/hbm/blocks/machine/RadioRec.java b/src/main/java/com/hbm/blocks/machine/RadioRec.java index 53792b48b..d387358b6 100644 --- a/src/main/java/com/hbm/blocks/machine/RadioRec.java +++ b/src/main/java/com/hbm/blocks/machine/RadioRec.java @@ -10,7 +10,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -102,7 +101,7 @@ public class RadioRec extends BlockContainer implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity te = world.getTileEntity(x, y, z); if(te instanceof TileEntityRadioRec) diff --git a/src/main/java/com/hbm/blocks/machine/ReactorCore.java b/src/main/java/com/hbm/blocks/machine/ReactorCore.java deleted file mode 100644 index 2475ec52f..000000000 --- a/src/main/java/com/hbm/blocks/machine/ReactorCore.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class ReactorCore extends BlockContainer { - - public boolean keepInventory = false; - public Random field_149933_a = new Random(); - - public ReactorCore(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineReactorLarge(); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineReactorLarge tileentityfurnace = (TileEntityMachineReactorLarge)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - /*@Override - public void onBlockDestroyedByExplosion(World p_149723_1_, int p_149723_2_, int p_149723_3_, int p_149723_4_, Explosion p_149723_5_) - { - if (!p_149723_1_.isRemote) - { - TileEntityMachineReactorLarge entity = (TileEntityMachineReactorLarge) p_149723_1_.getTileEntity(p_149723_2_, p_149723_3_, p_149723_4_); - if(entity != null && entity.isLoaded) - { - entity.explode(); - } - } - }*/ - -} diff --git a/src/main/java/com/hbm/blocks/machine/ReactorHatch.java b/src/main/java/com/hbm/blocks/machine/ReactorHatch.java deleted file mode 100644 index b83e57aa1..000000000 --- a/src/main/java/com/hbm/blocks/machine/ReactorHatch.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; - -import api.hbm.fluid.IFluidConnectorBlock; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class ReactorHatch extends Block implements IFluidConnectorBlock { - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - - public ReactorHatch(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":reactor_hatch"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_concrete"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(this); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - //this.setDefaultDirection(world, x, y, z); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - if(world.getBlockMetadata(x, y, z) == 2) - { - if(world.getTileEntity(x, y, z + 2) instanceof TileEntityMachineReactorLarge) - { - if(((TileEntityMachineReactorLarge)world.getTileEntity(x, y, z + 2)).checkBody()) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z + 2); - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 3) - { - if(world.getTileEntity(x, y, z - 2) instanceof TileEntityMachineReactorLarge) - { - if(((TileEntityMachineReactorLarge)world.getTileEntity(x, y, z - 2)).checkBody()) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z - 2); - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 4) - { - if(world.getTileEntity(x + 2, y, z) instanceof TileEntityMachineReactorLarge) - { - if(((TileEntityMachineReactorLarge)world.getTileEntity(x + 2, y, z)).checkBody()) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x + 2, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 5) - { - if(world.getTileEntity(x - 2, y, z) instanceof TileEntityMachineReactorLarge) - { - if(((TileEntityMachineReactorLarge)world.getTileEntity(x - 2, y, z)).checkBody()) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x - 2, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Nuclear Reactor Error: Reactor Core not found!")); - } - } - return true; - } else { - return false; - } - } - - @Override - public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { - return type == Fluids.WATER || type == Fluids.COOLANT || type == Fluids.STEAM || type == Fluids.HOTSTEAM || type == Fluids.SUPERHOTSTEAM || type == Fluids.ULTRAHOTSTEAM; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/ReactorZirnox.java b/src/main/java/com/hbm/blocks/machine/ReactorZirnox.java index 409925e53..b9b448ef5 100644 --- a/src/main/java/com/hbm/blocks/machine/ReactorZirnox.java +++ b/src/main/java/com/hbm/blocks/machine/ReactorZirnox.java @@ -62,6 +62,14 @@ public class ReactorZirnox extends BlockDummyable { return 2; } + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return super.checkRequirement(world, x, y, z, dir, o) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -2, 1, 1, 1, 1}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -2, 0, 0, 2, -2}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -2, 0, 0, -2, 2}, x, y, z, dir); + } + @Override protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); diff --git a/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java b/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java index 44aa51658..598f9aef4 100644 --- a/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java +++ b/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java @@ -209,13 +209,16 @@ public class SoyuzLauncher extends BlockDummyable { } } - for(int l = 0; l < 10; l++) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 38))); - for(int l = 0; l < 8; l++) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 41))); + for(int l = 0; l < 6; l++) + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 64))); + for(int l = 0; l < 4; l++) + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 64))); for(int l = 0; l < 6; l++) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 64))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 53))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 30))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 63))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 38))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_soyuz_core, 1))); world.func_147453_f(x, y, z, p_149749_5_); } diff --git a/src/main/java/com/hbm/blocks/machine/Spotlight.java b/src/main/java/com/hbm/blocks/machine/Spotlight.java new file mode 100644 index 000000000..c40a9ef9c --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/Spotlight.java @@ -0,0 +1,316 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; + +import java.util.Random; + +import com.hbm.blocks.BlockEnums.LightType; +import com.hbm.blocks.ISpotlight; +import com.hbm.main.ResourceManager; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockSlab; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class Spotlight extends Block implements ISpotlight { + + // I'd be extending the ReinforcedLamp class if it wasn't for the inverted behaviour of these specific lights + // I want these blocks to be eminently useful, so removing the need for redstone by default is desired, + // these act more like redstone torches, in that applying a signal turns them off + public boolean isOn; + + public int beamLength; + public LightType type; + + public Spotlight(Material mat, int beamLength, LightType type, boolean isOn) { + super(mat); + + this.beamLength = beamLength; + this.type = type; + this.isOn = isOn; + + this.setHardness(1F); + + if(isOn) setLightLevel(1.0F); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + public WavefrontObject getModel() { + switch(type) { + case FLUORESCENT: return (WavefrontObject) ResourceManager.fluorescent_lamp; + case HALOGEN: return (WavefrontObject) ResourceManager.flood_lamp; + default: return (WavefrontObject) ResourceManager.cage_lamp; + } + } + + public String getPartName(int connectionCount) { + switch(type) { + case HALOGEN: return "FloodLamp"; + default: return "CageLamp"; + } + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) { + return null; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + ForgeDirection dir = getDirection(world, x, y, z); + float[] bounds = swizzleBounds(dir); + float[] offset = new float[] { 0.5F - dir.offsetX * (0.5F - bounds[0]), 0.5F - dir.offsetY * (0.5F - bounds[1]), 0.5F - dir.offsetZ * (0.5F - bounds[2]) }; + + setBlockBounds(offset[0] - bounds[0], offset[1] - bounds[1], offset[2] - bounds[2], offset[0] + bounds[0], offset[1] + bounds[1], offset[2] + bounds[2]); + } + + private float[] swizzleBounds(ForgeDirection dir) { + float[] bounds = getBounds(); + switch(dir) { + case EAST: + case WEST: return new float[] { bounds[2], bounds[1], bounds[0] }; + case UP: + case DOWN: return new float[] { bounds[1], bounds[2], bounds[0] }; + default: return bounds; + } + } + + // Returns an xyz (half-)size for a given object type + private float[] getBounds() { + switch(type) { + case FLUORESCENT: return new float[] { 0.5F, 0.5F, 0.1F }; + case HALOGEN: return new float[] { 0.35F, 0.25F, 0.2F }; + default: return new float[] { 0.25F, 0.2F, 0.15F }; + } + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float hx, float hy, float hz, int initData) { + return side << 1; + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + if(world.isRemote) return; + if(updatePower(world, x, y, z)) return; + updateBeam(world, x, y, z); + } + + private boolean updatePower(World world, int x, int y, int z) { + boolean isPowered = world.isBlockIndirectlyGettingPowered(x, y, z); + if(isOn && isPowered) { + world.scheduleBlockUpdate(x, y, z, this, 4); + return true; + } else if(!isOn && !isPowered) { + world.setBlock(x, y, z, getOn(), world.getBlockMetadata(x, y, z), 2); + return true; + } + + return false; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { + ForgeDirection dir = getDirection(metadata); + super.breakBlock(world, x, y, z, block, metadata); + + if(world.isRemote) return; + + unpropagateBeam(world, x, y, z, dir); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random p_149674_5_) { + if (world.isRemote) return; + + if (isOn && world.isBlockIndirectlyGettingPowered(x, y, z)) { + world.setBlock(x, y, z, getOff(), world.getBlockMetadata(x, y, z), 2); + } + } + + // Repropagate the beam if we've become unblocked + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block neighborBlock) { + if(world.isRemote) return; + if(neighborBlock instanceof SpotlightBeam) return; + + ForgeDirection dir = getDirection(world, x, y, z); + + if(!canPlace(world, x, y, z, dir)) { + dropBlockAsItem(world, x, y, z, 0, 0); + world.setBlockToAir(x, y, z); + return; + } + + if(updatePower(world, x, y, z)) return; + + updateBeam(world, x, y, z); + } + + @Override + public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { + if(!super.canPlaceBlockOnSide(world, x, y, z, side)) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(side); + + return canPlace(world, x, y, z, dir); + } + + // BlockSlab doesn't actually properly return isSideSolid, + // probably because MOJANK thought this would only ever be used for torches, + // which can't be placed on ceilings... + private boolean canPlace(World world, int x, int y, int z, ForgeDirection dir) { + x -= dir.offsetX; + y -= dir.offsetY; + z -= dir.offsetZ; + + Block block = world.getBlock(x, y, z); + if(block instanceof BlockSlab) { + int meta = world.getBlockMetadata(x, y, z); + return dir == ((meta & 8) == 8 ? ForgeDirection.UP : ForgeDirection.DOWN) || block.func_149730_j(); + } + + return block.isSideSolid(world, x, y, z, dir); + } + + private void updateBeam(World world, int x, int y, int z) { + if(!isOn) return; + + ForgeDirection dir = getDirection(world, x, y, z); + propagateBeam(world, x, y, z, dir, beamLength); + } + + public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z) { + int metadata = world.getBlockMetadata(x, y, z); + return getDirection(metadata); + } + + public ForgeDirection getDirection(int metadata) { + return ForgeDirection.getOrientation(metadata >> 1); + } + + @Override + public Item getItemDropped(int i, Random r, int j) { + return Item.getItemFromBlock(getOn()); + } + + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + return Item.getItemFromBlock(getOn()); + } + + @Override + protected ItemStack createStackedBlock(int e) { + return new ItemStack(getOn()); + } + + // Recursively add beam blocks, updating any that already exist with new incoming light directions + public static void propagateBeam(World world, int x, int y, int z, ForgeDirection dir, int distance) { + distance--; + if(distance <= 0) + return; + + x += dir.offsetX; + y += dir.offsetY; + z += dir.offsetZ; + + Block block = world.getBlock(x, y, z); + if(!block.isAir(world, x, y, z)) + return; + + if(!(block instanceof SpotlightBeam)) { + world.setBlock(x, y, z, ModBlocks.spotlight_beam); + } + + // If we encounter an existing beam, add a new INCOMING direction to the + // metadata, and cancel propagation if something goes wrong + if (SpotlightBeam.setDirection(world, x, y, z, dir, true) == 0) + return; + + propagateBeam(world, x, y, z, dir, distance); + } + + // Recursively delete beam blocks, if they aren't still illuminated from a different direction + public static void unpropagateBeam(World world, int x, int y, int z, ForgeDirection dir) { + x += dir.offsetX; + y += dir.offsetY; + z += dir.offsetZ; + + Block block = world.getBlock(x, y, z); + if(!(block instanceof SpotlightBeam)) + return; + + // Remove the metadata associated with this direction + // If all directions are set to zero, delete the beam + if(SpotlightBeam.setDirection(world, x, y, z, dir, false) == 0) { + world.setBlockToAir(x, y, z); + } + + unpropagateBeam(world, x, y, z, dir); + } + + // Travels back through a beam to the source, and if found, repropagates the beam + public static void backPropagate(World world, int x, int y, int z, ForgeDirection dir) { + x -= dir.offsetX; + y -= dir.offsetY; + z -= dir.offsetZ; + + Block block = world.getBlock(x, y, z); + if(block instanceof ISpotlight) { + ISpotlight spot = (ISpotlight) block; + propagateBeam(world, x, y, z, dir, spot.getBeamLength()); + } else if(!(block instanceof SpotlightBeam)) { + return; + } + + backPropagate(world, x, y, z, dir); + } + + protected Block getOff() { + if(this == ModBlocks.spotlight_incandescent) return ModBlocks.spotlight_incandescent_off; + if(this == ModBlocks.spotlight_fluoro) return ModBlocks.spotlight_fluoro_off; + if(this == ModBlocks.spotlight_halogen) return ModBlocks.spotlight_halogen_off; + + return this; + } + + protected Block getOn() { + if(this == ModBlocks.spotlight_incandescent_off) return ModBlocks.spotlight_incandescent; + if(this == ModBlocks.spotlight_fluoro_off) return ModBlocks.spotlight_fluoro; + if(this == ModBlocks.spotlight_halogen_off) return ModBlocks.spotlight_halogen; + + return this; + } + + @Override + public int getBeamLength() { + return this.beamLength; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java new file mode 100644 index 000000000..274cdd1e0 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/SpotlightBeam.java @@ -0,0 +1,77 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.tileentity.TileEntityData; + +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class SpotlightBeam extends BlockBeamBase { + + // If a block is placed onto the beam, handle the new cutoff + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int metadata) { + if (!world.isRemote) { + for (ForgeDirection dir : getDirections(world, x, y, z)) { + Spotlight.unpropagateBeam(world, x, y, z, dir); + } + } + super.breakBlock(world, x, y, z, block, metadata); + } + + // If a block in the beam path is removed, repropagate beam + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block neighborBlock) { + if (world.isRemote) return; + if (neighborBlock instanceof SpotlightBeam) return; + + for (ForgeDirection dir : getDirections(world, x, y, z)) { + Spotlight.backPropagate(world, x, y, z, dir); + } + } + + // Directions are stored as a set of 6 bits: + // 000000 -> no incoming light directions are set, will be removed + // 010000 -> UP bit set, at least one direction is providing light + // 111111 -> ALL directions illuminated, all incoming lights need to be disabled to turn off the beam + public static List getDirections(World world, int x, int y, int z) { + TileEntityData te = (TileEntityData) world.getTileEntity(x, y, z); + if(te == null) return new ArrayList(); + return getDirections(te.metadata); + } + + public static List getDirections(int metadata) { + List directions = new ArrayList(6); + for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if ((metadata & dir.flag) == dir.flag) directions.add(dir); + } + return directions; + } + + // Returns the final metadata, so the caller can optionally remove the block + public static int setDirection(World world, int x, int y, int z, ForgeDirection dir, boolean state) { + TileEntityData te = (TileEntityData) world.getTileEntity(x, y, z); + if (te == null) return 0; // This shouldn't happen, and if it does, cancel propagation + int transformedMetadata = applyDirection(te.metadata, dir, state); + te.metadata = transformedMetadata; + return transformedMetadata; + } + + // Sets the metadata bit for a given direction + public static int applyDirection(int metadata, ForgeDirection direction, boolean state) { + if(state) { + return metadata | direction.flag; + } else { + return metadata & ~direction.flag; + } + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityData(); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/SpotlightModular.java b/src/main/java/com/hbm/blocks/machine/SpotlightModular.java new file mode 100644 index 000000000..5a0cddc2b --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/SpotlightModular.java @@ -0,0 +1,25 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockEnums.LightType; + +import net.minecraft.block.material.Material; +import net.minecraft.world.IBlockAccess; + +public class SpotlightModular extends Spotlight { + + public SpotlightModular(Material mat, int beamLength, LightType type, boolean isOn) { + super(mat, beamLength, type, isOn); + } + + @Override + public String getPartName(int connectionCount) { + if (connectionCount == 0) return "FluoroSingle"; + if (connectionCount == 1) return "FluoroCap"; + return "FluoroMid"; + } + + public boolean canConnectTo(IBlockAccess world, int x, int y, int z) { + return world.getBlock(x, y, z) == this; + } + +} diff --git a/src/main/java/com/hbm/blocks/machine/UVLamp.java b/src/main/java/com/hbm/blocks/machine/UVLamp.java deleted file mode 100644 index 482448dad..000000000 --- a/src/main/java/com/hbm/blocks/machine/UVLamp.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.BlockDummyable; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityUVLamp; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class UVLamp extends BlockDummyable { - - public UVLamp(boolean isOn) { - super(Material.iron); - this.setStepSound(Block.soundTypeMetal); - this.setHardness(3.0F); - this.setBlockTextureName(RefStrings.MODID + ":block_steel"); - - if(isOn) this.setLightLevel(5F/15F); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityUVLamp(); - } - - @Override - public int[] getDimensions() { - return new int[] {1, 0, 0, 0, 0, 0}; - } - - @Override - public int getOffset() { - return 0; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/Watz.java b/src/main/java/com/hbm/blocks/machine/Watz.java index 4f195b722..41f6767ed 100644 --- a/src/main/java/com/hbm/blocks/machine/Watz.java +++ b/src/main/java/com/hbm/blocks/machine/Watz.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityWatz; @@ -93,7 +94,7 @@ public class Watz extends BlockDummyable { if(i >= 12 && drop) { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.watz_end, 48))); - for(int j = 0; j < 3; j++) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.bolt_dura_steel, 64))); + for(int j = 0; j < 3; j++) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, Mats.MAT_DURA.make(ModItems.bolt, 64))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.watz_element, 36))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.watz_cooler, 26))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_watz_core, 1))); diff --git a/src/main/java/com/hbm/blocks/machine/WatzCore.java b/src/main/java/com/hbm/blocks/machine/WatzCore.java deleted file mode 100644 index 0289ece20..000000000 --- a/src/main/java/com/hbm/blocks/machine/WatzCore.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.machine.TileEntityWatzCore; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class WatzCore extends BlockContainer { - - public WatzCore(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityWatzCore(); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/WatzHatch.java b/src/main/java/com/hbm/blocks/machine/WatzHatch.java deleted file mode 100644 index 157a02036..000000000 --- a/src/main/java/com/hbm/blocks/machine/WatzHatch.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityWatzCore; - -import api.hbm.fluid.IFluidConnectorBlock; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class WatzHatch extends Block implements IFluidConnectorBlock { - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - - public WatzHatch(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":watz_hatch"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":reinforced_brick"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(this); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - //this.setDefaultDirection(world, x, y, z); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - if(world.getBlockMetadata(x, y, z) == 2) - { - if(world.getTileEntity(x, y, z + 3) instanceof TileEntityWatzCore) - { - if(((TileEntityWatzCore)world.getTileEntity(x, y, z + 3)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z + 3); - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 3) - { - if(world.getTileEntity(x, y, z - 3) instanceof TileEntityWatzCore) - { - if(((TileEntityWatzCore)world.getTileEntity(x, y, z - 3)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z - 3); - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 4) - { - if(world.getTileEntity(x + 3, y, z) instanceof TileEntityWatzCore) - { - if(((TileEntityWatzCore)world.getTileEntity(x + 3, y, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x + 3, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 5) - { - if(world.getTileEntity(x - 3, y, z) instanceof TileEntityWatzCore) - { - if(((TileEntityWatzCore)world.getTileEntity(x - 3, y, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x - 3, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Watz Power Plant] Error: Reactor Core not found!")); - } - } - return true; - } else { - return false; - } - } - - @Override - public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { - return type == Fluids.WATZ; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java index 62f397474..459e958fd 100644 --- a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java +++ b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java @@ -5,10 +5,11 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityZirnoxDestroyed; @@ -106,7 +107,7 @@ public class ZirnoxDestroyed extends BlockDummyable { public ArrayList getDrops(World world, int x, int y, int z, int meta, int fortune) { ArrayList drops = new ArrayList(); drops.add(new ItemStack(ModBlocks.concrete_smooth, 6)); - drops.add(new ItemStack(ModBlocks.deco_pipe_quad, 4)); + drops.add(new ItemStack(ModItems.pipe, 4, Mats.MAT_STEEL.id)); drops.add(new ItemStack(ModBlocks.steel_grate, 2)); drops.add(new ItemStack(ModItems.debris_metal, 6)); drops.add(new ItemStack(ModItems.debris_graphite, 2)); diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java index c5018700a..28ddcd06a 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java @@ -4,7 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockFlammable; import com.hbm.items.ModItems; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.ParticleBurstPacket; +import com.hbm.packet.toclient.ParticleBurstPacket; import api.hbm.block.IToolable; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java index 46d724787..309f8b2d5 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilled.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine.pile; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import api.hbm.block.IToolable; @@ -31,7 +32,7 @@ public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase implements IT if(checkInteraction(world, x, y, z, meta, player, ModItems.cell_tritium, ModBlocks.block_graphite_tritium)) return true; //if you want to i guess? if(checkInteraction(world, x, y, z, meta, player, ModItems.pile_rod_detector, ModBlocks.block_graphite_detector)) return true; if(meta >> 2 != 1) { - if(checkInteraction(world, x, y, z, meta | 4, player, ModItems.hull_small_aluminium, ModBlocks.block_graphite_drilled)) return true; + if(checkInteraction(world, x, y, z, meta | 4, player, ModItems.shell, ModBlocks.block_graphite_drilled)) return true; if(checkInteraction(world, x, y, z, 0, player, ModItems.ingot_graphite, ModBlocks.block_graphite)) return true; } } @@ -43,6 +44,9 @@ public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase implements IT private boolean checkInteraction(World world, int x, int y, int z, int meta, EntityPlayer player, Item item, Block block) { if(player.getHeldItem().getItem() == item) { + + if(item == ModItems.shell && player.getHeldItem().getItemDamage() != Mats.MAT_ALUMINIUM.id) return false; //shitty workaround + player.getHeldItem().stackSize--; world.setBlock(x, y, z, block, meta, 3); @@ -67,7 +71,7 @@ public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase implements IT world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, cfg, 3); world.playSoundEffect(x + 0.5, y + 1.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 0.85F); - BlockGraphiteRod.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.hull_small_aluminium)); + BlockGraphiteRod.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.shell, 1, Mats.MAT_ALUMINIUM.id)); } return true; diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 58ec7bce2..efe9764b6 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockFlammable; import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; @@ -114,7 +115,7 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements ArrayList drops = new ArrayList(); drops.add(new ItemStack(ModItems.ingot_graphite, 8)); if((meta & 4) == 4) - drops.add(new ItemStack(ModItems.hull_small_aluminium, 1)); + drops.add(new ItemStack(ModItems.shell, 1, Mats.MAT_ALUMINIUM.id)); if(getInsertedItem() != null) drops.add(new ItemStack(getInsertedItem(meta), 1)); return drops; diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java index cc98534da..7b3b892ca 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java @@ -47,7 +47,7 @@ public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolab @Override public int getComparatorInputOverride(World world, int x, int y, int z, int side) { TileEntityPileFuel pile = (TileEntityPileFuel)world.getTileEntity(x, y, z); - return MathHelper.clamp_int((pile.progress * 16) / pile.maxProgress, 0, 15); //potentially wip + return MathHelper.clamp_int((pile.progress * 15) / (pile.maxProgress - 1000), 0, 15); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java index 1293874a8..234a2a4b9 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java @@ -3,6 +3,8 @@ package com.hbm.blocks.machine.rbmk; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.handler.neutron.NeutronNodeWorld; +import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKNeutronNode; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRBMKLid; import com.hbm.lib.RefStrings; @@ -11,6 +13,7 @@ import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; import api.hbm.block.IToolable; +import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -170,6 +173,10 @@ public abstract class RBMKBase extends BlockDummyable implements IToolable, ILoo int i = rbmk.getBlockMetadata(); if(rbmk.hasLid() && rbmk.isLidRemovable()) { + + RBMKNeutronNode node = (RBMKNeutronNode) NeutronNodeWorld.getNode(new BlockPos(te)); + if (node != null) + node.removeLid(); if(!world.isRemote) { if(i == DIR_NORMAL_LID.ordinal() + offset) { diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKCraneConsole.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKCraneConsole.java index 21059f59a..680856254 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKCraneConsole.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKCraneConsole.java @@ -4,14 +4,16 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.tileentity.machine.rbmk.TileEntityCraneConsole; +import api.hbm.block.IToolable; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class RBMKCraneConsole extends BlockDummyable { +public class RBMKCraneConsole extends BlockDummyable implements IToolable { public RBMKCraneConsole() { super(Material.iron); @@ -72,4 +74,20 @@ public class RBMKCraneConsole extends BlockDummyable { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool == ToolType.SCREWDRIVER) { + if(world.isRemote) return true; + + int[] pos = findCore(world, x, y, z); + TileEntityCraneConsole tile = (TileEntityCraneConsole) world.getTileEntity(pos[0], pos[1], pos[2]); + tile.cycleCraneRotation(); + tile.markDirty(); + return true; + } + + return false; + } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java index 0480adc74..dc2f70829 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java @@ -4,8 +4,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java index 299cf9f3c..9aef21c0b 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java @@ -5,8 +5,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeatex.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeatex.java deleted file mode 100644 index af1e1eaee..000000000 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeatex.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.hbm.blocks.machine.rbmk; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class RBMKHeatex extends BlockContainer { - - public RBMKHeatex(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return null; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKInlet.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKInlet.java index 7fbc50e7d..87127a718 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKInlet.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKInlet.java @@ -1,13 +1,18 @@ package com.hbm.blocks.machine.rbmk; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKInlet; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class RBMKInlet extends BlockContainer { +public class RBMKInlet extends BlockContainer implements ITooltipProvider { public RBMKInlet(Material mat) { super(mat); @@ -17,4 +22,9 @@ public class RBMKInlet extends BlockContainer { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityRBMKInlet(); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java index 52955a187..da2c58002 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java @@ -1,5 +1,8 @@ package com.hbm.blocks.machine.rbmk; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.generic.BlockGeneric; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.trait.FT_Coolable; @@ -7,10 +10,12 @@ import com.hbm.inventory.fluid.trait.FT_Heatable; import api.hbm.fluid.IFluidConnectorBlock; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; -public class RBMKLoader extends BlockGeneric implements IFluidConnectorBlock { +public class RBMKLoader extends BlockGeneric implements IFluidConnectorBlock, ITooltipProvider { public RBMKLoader(Material material) { super(material); @@ -22,4 +27,9 @@ public class RBMKLoader extends BlockGeneric implements IFluidConnectorBlock { return type.hasTrait(FT_Coolable.class); } + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutlet.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutlet.java index 9a30ea035..6772322f2 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutlet.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutlet.java @@ -1,13 +1,18 @@ package com.hbm.blocks.machine.rbmk; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKOutlet; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class RBMKOutlet extends BlockContainer { +public class RBMKOutlet extends BlockContainer implements ITooltipProvider { public RBMKOutlet(Material mat) { super(mat); @@ -17,4 +22,9 @@ public class RBMKOutlet extends BlockContainer { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityRBMKOutlet(); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockCable.java b/src/main/java/com/hbm/blocks/network/BlockCable.java index 60906e5fd..e0b8418a8 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCable.java +++ b/src/main/java/com/hbm/blocks/network/BlockCable.java @@ -3,7 +3,6 @@ package com.hbm.blocks.network; import com.hbm.blocks.ModBlocks; import com.hbm.lib.Library; import com.hbm.tileentity.network.TileEntityCableBaseNT; - import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -28,26 +27,26 @@ public class BlockCable extends BlockContainer { @Override public int getRenderType() { - + if(this == ModBlocks.red_cable_classic) return renderIDClassic; - + return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - + boolean posX = Library.canConnect(world, x + 1, y, z, Library.POS_X); boolean negX = Library.canConnect(world, x - 1, y, z, Library.NEG_X); boolean posY = Library.canConnect(world, x, y + 1, z, Library.POS_Y); @@ -56,29 +55,29 @@ public class BlockCable extends BlockContainer { boolean negZ = Library.canConnect(world, x, y, z - 1, Library.NEG_Z); setBlockBounds(posX, negX, posY, negY, posZ, negZ); - + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - + @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - + boolean posX = Library.canConnect(world, x + 1, y, z, Library.POS_X); boolean negX = Library.canConnect(world, x - 1, y, z, Library.NEG_X); boolean posY = Library.canConnect(world, x, y + 1, z, Library.POS_Y); boolean negY = Library.canConnect(world, x, y - 1, z, Library.NEG_Y); boolean posZ = Library.canConnect(world, x, y, z + 1, Library.POS_Z); boolean negZ = Library.canConnect(world, x, y, z - 1, Library.NEG_Z); - + setBlockBounds(posX, negX, posY, negY, posZ, negZ); } - + private void setBlockBounds(boolean posX, boolean negX, boolean posY, boolean negY, boolean posZ, boolean negZ) { - + float pixel = 0.0625F; float min = pixel * 5.5F; float max = pixel * 10.5F; - + float minX = negX ? 0F : min; float maxX = posX ? 1F : max; float minY = negY ? 0F : min; diff --git a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java new file mode 100644 index 000000000..e87094830 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java @@ -0,0 +1,164 @@ +package com.hbm.blocks.network; + +import api.hbm.energymk2.PowerNetMK2; +import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.handler.CompatHandler; +import com.hbm.lib.RefStrings; +import com.hbm.render.block.RenderBlockMultipass; +import com.hbm.tileentity.network.TileEntityCableBaseNT; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +import java.util.ArrayList; +import java.util.List; + +public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, ILookOverlay, ITooltipProvider { + + @SideOnly(Side.CLIENT) protected IIcon overlayGauge; + + public BlockCableGauge() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCableGauge(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(RefStrings.MODID + ":deco_red_copper"); + this.overlayGauge = reg.registerIcon(RefStrings.MODID + ":cable_gauge"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + + if(RenderBlockMultipass.currentPass == 0) { + return blockIcon; + } + + return side == world.getBlockMetadata(x, y, z) ? this.overlayGauge : this.blockIcon; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public int getPasses() { + return 2; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityCableGauge)) + return; + + TileEntityCableGauge duct = (TileEntityCableGauge) te; + + List text = new ArrayList(); + text.add(BobMathUtil.getShortNumber(duct.deltaTick) + "HE/t"); + text.add(BobMathUtil.getShortNumber(duct.deltaLastSecond) + "HE/s"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public int getRenderType(){ + return IBlockMultiPass.getRenderType(); + } + + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) + public static class TileEntityCableGauge extends TileEntityCableBaseNT implements SimpleComponent, CompatHandler.OCComponent { + + private long deltaTick = 0; + private long deltaSecond = 0; + private long deltaLastSecond = 0; + + @Override + public void updateEntity() { + super.updateEntity(); + + if(!worldObj.isRemote) { + + if(this.node != null && this.node.net != null) { + + PowerNetMK2 net = this.node.net; + + this.deltaTick = net.energyTracker; + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.deltaLastSecond = this.deltaSecond; + this.deltaSecond = 0; + } + this.deltaSecond += deltaTick; + } + + networkPackNT(25); + } + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeLong(deltaTick); + buf.writeLong(deltaLastSecond); + } + + @Override + public void deserialize(ByteBuf buf) { + this.deltaTick = Math.max(buf.readLong(), 0); + this.deltaLastSecond = Math.max(buf.readLong(), 0); + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_power_gauge"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getTransfer(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond, xCoord, yCoord, zCoord}; + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockCablePaintable.java b/src/main/java/com/hbm/blocks/network/BlockCablePaintable.java index 334654a4d..68a0232ee 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCablePaintable.java +++ b/src/main/java/com/hbm/blocks/network/BlockCablePaintable.java @@ -1,11 +1,10 @@ package com.hbm.blocks.network; +import api.hbm.block.IToolable; import com.hbm.blocks.IBlockMultiPass; import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; import com.hbm.tileentity.network.TileEntityCableBaseNT; - -import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -36,7 +35,7 @@ public class BlockCablePaintable extends BlockContainer implements IToolable, IB public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityCablePaintable(); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { @@ -48,10 +47,10 @@ public class BlockCablePaintable extends BlockContainer implements IToolable, IB @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { TileEntity tile = world.getTileEntity(x, y, z); - + if(tile instanceof TileEntityCablePaintable) { TileEntityCablePaintable pipe = (TileEntityCablePaintable) tile; - + if(pipe.block != null) { if(RenderBlockMultipass.currentPass == 1) { return this.overlay; @@ -60,26 +59,26 @@ public class BlockCablePaintable extends BlockContainer implements IToolable, IB } } } - + return RenderBlockMultipass.currentPass == 1 ? this.overlay : this.blockIcon; } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float fX, float fY, float fZ) { - + ItemStack stack = player.getHeldItem(); - + if(stack != null && stack.getItem() instanceof ItemBlock) { ItemBlock ib = (ItemBlock) stack.getItem(); Block block = ib.field_150939_a; - + if(block.renderAsNormalBlock() && block != this) { - + TileEntity tile = world.getTileEntity(x, y, z); - + if(tile instanceof TileEntityCablePaintable) { TileEntityCablePaintable pipe = (TileEntityCablePaintable) tile; - + if(pipe.block == null) { pipe.block = block; pipe.meta = stack.getItemDamage() & 15; @@ -90,20 +89,20 @@ public class BlockCablePaintable extends BlockContainer implements IToolable, IB } } } - + return super.onBlockActivated(world, x, y, z, player, side, fX, fY, fZ); } @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { - + if(tool != ToolType.SCREWDRIVER) return false; - + TileEntity tile = world.getTileEntity(x, y, z); - + if(tile instanceof TileEntityCablePaintable) { TileEntityCablePaintable pipe = (TileEntityCablePaintable) tile; - + if(pipe.block != null) { pipe.block = null; world.markBlockForUpdate(x, y, z); @@ -111,7 +110,7 @@ public class BlockCablePaintable extends BlockContainer implements IToolable, IB return true; } } - + return false; } @@ -119,7 +118,7 @@ public class BlockCablePaintable extends BlockContainer implements IToolable, IB public int getPasses() { return 2; } - + @Override public int getRenderType(){ return IBlockMultiPass.getRenderType(); @@ -149,7 +148,7 @@ public class BlockCablePaintable extends BlockContainer implements IToolable, IB this.writeToNBT(nbt); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); } - + @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java b/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java index 62a8a2b55..bf816eef1 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java @@ -1,9 +1,9 @@ package com.hbm.blocks.network; +import api.hbm.conveyor.IConveyorBelt; +import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; - -import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -13,6 +13,7 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; @@ -22,7 +23,9 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class BlockConveyorBase extends Block implements IConveyorBelt { +import java.util.List; + +public abstract class BlockConveyorBase extends Block implements IConveyorBelt, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon sideIcon; @@ -30,14 +33,14 @@ public abstract class BlockConveyorBase extends Block implements IConveyorBelt { public BlockConveyorBase() { super(Material.iron); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":conveyor_side"); } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { @@ -46,7 +49,7 @@ public abstract class BlockConveyorBase extends Block implements IConveyorBelt { return this.sideIcon; if((metadata == 4 || metadata == 5) && (side == 2 || side == 3)) return this.sideIcon; - + return super.getIcon(side, metadata); } @@ -57,7 +60,7 @@ public abstract class BlockConveyorBase extends Block implements IConveyorBelt { @Override public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { - + ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); //snapping point Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); @@ -70,7 +73,7 @@ public abstract class BlockConveyorBase extends Block implements IConveyorBelt { Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed); return ret; } - + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) { return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); } @@ -79,10 +82,10 @@ public abstract class BlockConveyorBase extends Block implements IConveyorBelt { public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); - + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); - + double posX = x + 0.5; double posZ = z + 0.5; @@ -92,7 +95,7 @@ public abstract class BlockConveyorBase extends Block implements IConveyorBelt { if(dir.offsetZ != 0) { posZ = itemPos.zCoord; } - + return Vec3.createVectorHelper(posX, y + 0.25, posZ); } @@ -159,4 +162,9 @@ public abstract class BlockConveyorBase extends Block implements IConveyorBelt { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorClassic.java b/src/main/java/com/hbm/blocks/network/BlockConveyorClassic.java index 095615595..7a479c699 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyorClassic.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorClassic.java @@ -1,9 +1,8 @@ package com.hbm.blocks.network; +import api.hbm.conveyor.IConveyorBelt; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; - -import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -29,14 +28,14 @@ public class BlockConveyorClassic extends Block implements IConveyorBelt { public BlockConveyorClassic() { super(Material.iron); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":conveyor_side"); } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { @@ -45,7 +44,7 @@ public class BlockConveyorClassic extends Block implements IConveyorBelt { return this.sideIcon; if((metadata == 4 || metadata == 5) && (side == 2 || side == 3)) return this.sideIcon; - + return super.getIcon(side, metadata); } @@ -56,7 +55,7 @@ public class BlockConveyorClassic extends Block implements IConveyorBelt { @Override public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { - + ForgeDirection dir = getTravelDirection(world, x, y, z, itemPos, speed); //snapping point Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); @@ -69,7 +68,7 @@ public class BlockConveyorClassic extends Block implements IConveyorBelt { Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed); return ret; } - + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) { return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); } @@ -78,10 +77,10 @@ public class BlockConveyorClassic extends Block implements IConveyorBelt { public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); - + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); - + double posX = x + 0.5; double posZ = z + 0.5; @@ -91,7 +90,7 @@ public class BlockConveyorClassic extends Block implements IConveyorBelt { if(dir.offsetZ != 0) { posZ = itemPos.zCoord; } - + return Vec3.createVectorHelper(posX, y + 0.25, posZ); } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java b/src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java new file mode 100644 index 000000000..0041da992 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java @@ -0,0 +1,12 @@ +package com.hbm.blocks.network; + +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class BlockConveyorExpress extends BlockConveyorBendable { + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + return super.getTravelLocation(world, x, y, z, itemPos, speed * 3); + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index 932381c24..ef73c5f4f 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -1,11 +1,12 @@ package com.hbm.blocks.network; -import java.util.Random; - +import api.hbm.block.IToolable; import com.hbm.blocks.IBlockSideRotation; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.tool.ItemTooling; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; - +import com.hbm.tileentity.network.TileEntityCraneBase; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -21,11 +22,16 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation { +import java.util.List; +import java.util.Random; + +public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation, IToolable, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon iconSide; @SideOnly(Side.CLIENT) protected IIcon iconIn; @@ -37,10 +43,24 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid @SideOnly(Side.CLIENT) protected IIcon iconDirectionalUp; @SideOnly(Side.CLIENT) protected IIcon iconDirectionalDown; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalTurnLeft; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalTurnRight; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideLeftTurnUp; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideRightTurnUp; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideLeftTurnDown; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideRightTurnDown; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideUpTurnLeft; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideUpTurnRight; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideDownTurnLeft; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideDownTurnRight; + public BlockCraneBase(Material mat) { super(mat); } - + + @Override + public abstract TileEntityCraneBase createNewTileEntity(World p_149915_1_, int p_149915_2_); + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -54,7 +74,9 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTooling) { + return false; + } else if(world.isRemote) { return true; } else if(!player.isSneaking()) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); @@ -71,8 +93,128 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid } @Override - public IIcon getIcon(int side, int metadata) { + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if (tool != ToolType.SCREWDRIVER) return false; + + TileEntity te = world.getTileEntity(x, y, z); + if (!(te instanceof TileEntityCraneBase)) return false; + + TileEntityCraneBase craneTileEntity = (TileEntityCraneBase) te; + + ForgeDirection newDirection = ForgeDirection.getOrientation(side); + + if (player.isSneaking()) { + craneTileEntity.setOutputOverride(newDirection); + } else { + craneTileEntity.setInput(newDirection); + } + + return true; + } + + public ForgeDirection getInputSide(IBlockAccess world, int x, int y, int z) { + return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + } + + /** + * Returns the player-overridden output direction, or {@link ForgeDirection#UNKNOWN} if unset. + * A return value of {@link ForgeDirection#UNKNOWN} suggests use of default meta behavior. + * Should never return the current input direction. + */ + protected final ForgeDirection getOutputSideOverride(IBlockAccess world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + if (!(te instanceof TileEntityCraneBase)) return ForgeDirection.UNKNOWN; + TileEntityCraneBase craneTileEntity = (TileEntityCraneBase) te; + + return craneTileEntity.getOutputOverride(); + } + + public ForgeDirection getOutputSide(IBlockAccess world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + if (!(te instanceof TileEntityCraneBase)) return ForgeDirection.UNKNOWN; + TileEntityCraneBase craneTileEntity = (TileEntityCraneBase) te; + + return craneTileEntity.getOutputSide(); + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + ForgeDirection inputSide = getInputSide(world, x, y, z); + ForgeDirection outputOverride = getOutputSideOverride(world, x, y, z); + boolean outputSideOverridden = outputOverride != ForgeDirection.UNKNOWN && outputOverride.getOpposite() != inputSide; + ForgeDirection outputSide = outputSideOverridden ? outputOverride : inputSide.getOpposite(); + + // take your left hand, make your thumb the input side and the index finger the output side + // angle your middle finger to make your hand look like coordinate axes + // the direction your middle finger is pointing towards will be the direction returned from this function + ForgeDirection leftHandRotation = outputSide.getRotation(inputSide); + + if(side == 0 || side == 1) { + if(side == outputSide.ordinal()) { + return this.iconOut; + } + if(side == inputSide.ordinal()) { + return this.iconIn; + } + + if (side == 1) { + if (outputSideOverridden) { + if (leftHandRotation == ForgeDirection.UP) { + return this.iconDirectionalTurnLeft; + } + if (leftHandRotation == ForgeDirection.DOWN) { + return this.iconDirectionalTurnRight; + } + } else return iconDirectional; + } + + return this.blockIcon; + } + if(side == outputSide.ordinal()) { + return this.iconSideOut; + } + if(side == inputSide.ordinal()) { + return this.iconSideIn; + } + + if (outputSideOverridden) { + if (leftHandRotation.ordinal() == side) { + if (outputSide == ForgeDirection.UP) + return this.iconDirectionalSideLeftTurnUp; + if (outputSide == ForgeDirection.DOWN) + return this.iconDirectionalSideRightTurnDown; + if (inputSide == ForgeDirection.UP) + return this.iconDirectionalSideUpTurnRight; + if (inputSide == ForgeDirection.DOWN) + return this.iconDirectionalSideDownTurnLeft; + } + if (leftHandRotation.getOpposite().ordinal() == side) { + if (outputSide == ForgeDirection.UP) + return this.iconDirectionalSideRightTurnUp; + if (outputSide == ForgeDirection.DOWN) + return this.iconDirectionalSideLeftTurnDown; + if (inputSide == ForgeDirection.UP) + return this.iconDirectionalSideUpTurnLeft; + if (inputSide == ForgeDirection.DOWN) + return this.iconDirectionalSideDownTurnRight; + } + } else { + if(outputSide == ForgeDirection.UP) { + return this.iconDirectionalUp; + } + if(outputSide == ForgeDirection.DOWN) { + return this.iconDirectionalDown; + } + } + + return this.iconSide; + } + + // kept for inventory rendering + @Override + public IIcon getIcon(int side, int metadata) { + if(side == 0 || side == 1) { if(side == metadata) { return this.iconOut; @@ -80,10 +222,10 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid if(side == ForgeDirection.getOrientation(metadata).getOpposite().ordinal()) { return this.iconIn; } - + return side == 1 ? this.iconDirectional : this.blockIcon; } - + if(side == metadata) { return this.iconSideOut; } @@ -97,9 +239,23 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid if(metadata == 1) { return this.iconDirectionalDown; } - + return this.iconSide; } + + @Override + public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { + int meta = world.getBlockMetadata(x, y, z); + + if(meta > 1 && side == 1) { + if(meta == 2) return 3; + if(meta == 3) return 0; + if(meta == 4) return 1; + if(meta == 5) return 2; + } + + return 0; + } public static int renderIDClassic = RenderingRegistry.getNextAvailableRenderId(); @@ -150,4 +306,9 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid super.breakBlock(world, x, y, z, block, meta); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java deleted file mode 100644 index b14fa899e..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hbm.blocks.network; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ILookOverlay; -import com.hbm.tileentity.conductor.TileEntityFluidDuct; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.util.I18nUtil; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class BlockFluidDuct extends BlockContainer implements ILookOverlay { - - public BlockFluidDuct(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { - TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { - TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityFluidDuct(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void printHook(Pre event, World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } -} diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java deleted file mode 100644 index 08031fe84..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.hbm.blocks.network; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.IBlockMultiPass; -import com.hbm.blocks.ILookOverlay; -import com.hbm.render.block.RenderBlockMultipass; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.util.I18nUtil; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPass, ILookOverlay { - - public BlockFluidDuctSolid(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityFluidDuctSimple(); - } - - @SideOnly(Side.CLIENT) - private IIcon overlay; - - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister p_149651_1_) { - this.blockIcon = p_149651_1_.registerIcon(this.getTextureName()); - this.overlay = p_149651_1_.registerIcon(this.getTextureName() + "_overlay"); - } - - @Override - public int getPasses() { - return 2; - } - - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - return RenderBlockMultipass.currentPass == 0 ? this.blockIcon : this.overlay; - } - - @Override - public int getRenderType(){ - return IBlockMultiPass.getRenderType(); - } - - @Override - @SideOnly(Side.CLIENT) - public int colorMultiplier(IBlockAccess world, int x, int y, int z) { - - if(RenderBlockMultipass.currentPass == 0) - return 0xffffff; - - TileEntityFluidDuctSimple te = (TileEntityFluidDuctSimple) world.getTileEntity(x, y, z); - - if(te != null) { - return te.getType().getColor(); - } - - return 0xffffff; - } - - @Override - public void printHook(Pre event, World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } -} diff --git a/src/main/java/com/hbm/blocks/network/BlockGasDuct.java b/src/main/java/com/hbm/blocks/network/BlockGasDuct.java deleted file mode 100644 index f1b85be7d..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockGasDuct.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.blocks.network; - -import com.hbm.tileentity.conductor.TileEntityGasDuct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockGasDuct extends BlockContainer { - - public BlockGasDuct(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityGasDuct) { - TileEntityGasDuct cable = (TileEntityGasDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityGasDuct) { - TileEntityGasDuct cable = (TileEntityGasDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityGasDuct(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } -} diff --git a/src/main/java/com/hbm/blocks/network/BlockOilDuct.java b/src/main/java/com/hbm/blocks/network/BlockOilDuct.java deleted file mode 100644 index a1b9ca9bd..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockOilDuct.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.blocks.network; - -import com.hbm.tileentity.conductor.TileEntityOilDuct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockOilDuct extends BlockContainer { - - public BlockOilDuct(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityOilDuct) { - TileEntityOilDuct cable = (TileEntityOilDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityOilDuct) { - TileEntityOilDuct cable = (TileEntityOilDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityOilDuct(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } -} diff --git a/src/main/java/com/hbm/blocks/network/BlockRFCable.java b/src/main/java/com/hbm/blocks/network/BlockRFCable.java deleted file mode 100644 index d087a33c4..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockRFCable.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.blocks.network; - -import com.hbm.tileentity.conductor.TileEntityRFDuct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockRFCable extends BlockContainer { - - public BlockRFCable(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityRFDuct) { - TileEntityRFDuct cable = (TileEntityRFDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityRFDuct) { - TileEntityRFDuct cable = (TileEntityRFDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityRFDuct(10000); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } -} diff --git a/src/main/java/com/hbm/blocks/network/CableDetector.java b/src/main/java/com/hbm/blocks/network/CableDetector.java index 7776212ac..18e80c570 100644 --- a/src/main/java/com/hbm/blocks/network/CableDetector.java +++ b/src/main/java/com/hbm/blocks/network/CableDetector.java @@ -2,7 +2,6 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityCableSwitch; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -21,14 +20,14 @@ public class CableDetector extends BlockContainer { public CableDetector(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":cable_detector_on"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cable_detector_off"); } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { @@ -42,18 +41,18 @@ public class CableDetector extends BlockContainer { @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { - + boolean on = world.isBlockIndirectlyGettingPowered(x, y, z); int meta = world.getBlockMetadata(x, y, z); - + boolean update = false; - + if(on && meta == 0) { world.setBlockMetadataWithNotify(x, y, z, 1, 2); world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); update = true; } - + if(!on && meta == 1) { world.setBlockMetadataWithNotify(x, y, z, 0, 2); world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); diff --git a/src/main/java/com/hbm/blocks/network/CableDiode.java b/src/main/java/com/hbm/blocks/network/CableDiode.java index 6771ccf2d..d0f17735b 100644 --- a/src/main/java/com/hbm/blocks/network/CableDiode.java +++ b/src/main/java/com/hbm/blocks/network/CableDiode.java @@ -1,18 +1,18 @@ package com.hbm.blocks.network; -import java.util.ArrayList; -import java.util.List; - +import api.hbm.block.IToolable; +import api.hbm.energymk2.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BobMathUtil; +import com.hbm.util.Compat; import com.hbm.util.I18nUtil; - -import api.hbm.block.IToolable; -import api.hbm.energy.IEnergyUser; -import api.hbm.energy.IEnergyConnector.ConnectionPriority; -import api.hbm.energy.IEnergyConnectorBlock; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -33,8 +33,11 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, ILookOverlay, IToolable, ITooltipProvider { - + public CableDiode(Material mat) { super(mat); } @@ -45,23 +48,23 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, public int getRenderType() { return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) { return true; } - + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { int l = BlockPistonBase.determineOrientation(world, x, y, z, player); world.setBlockMetadataWithNotify(x, y, z, l, 2); @@ -76,10 +79,10 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { TileEntityDiode te = (TileEntityDiode)world.getTileEntity(x, y, z); - + if(world.isRemote) return true; - + if(tool == ToolType.SCREWDRIVER) { if(te.level < 11) te.level++; @@ -87,7 +90,7 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, world.markBlockForUpdate(x, y, z); return true; } - + if(tool == ToolType.HAND_DRILL) { if(te.level > 1) te.level--; @@ -95,16 +98,16 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, world.markBlockForUpdate(x, y, z); return true; } - + if(tool == ToolType.DEFUSER) { int p = te.priority.ordinal() + 1; - if(p > 2) p = 0; + if(p > 4) p = 0; te.priority = ConnectionPriority.values()[p]; te.markDirty(); world.markBlockForUpdate(x, y, z); return true; } - + return false; } @@ -118,18 +121,18 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, @Override public void printHook(Pre event, World world, int x, int y, int z) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(!(te instanceof TileEntityDiode)) return; - + TileEntityDiode diode = (TileEntityDiode) te; - + List text = new ArrayList(); text.add("Max.: " + BobMathUtil.getShortNumber(diode.getMaxPower()) + "HE/t"); text.add("Priority: " + diode.priority.name()); - + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } @@ -137,16 +140,16 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityDiode(); } - - public static class TileEntityDiode extends TileEntityLoadedBase implements IEnergyUser { - + + public static class TileEntityDiode extends TileEntityLoadedBase implements IEnergyReceiverMK2 { + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); level = nbt.getInteger("level"); priority = ConnectionPriority.values()[nbt.getByte("p")]; } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -160,29 +163,32 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, this.writeToNBT(nbt); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); } - + @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); } - + int level = 1; - + private ForgeDirection getDir() { return ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); } @Override public void updateEntity() { - + if(!worldObj.isRemote) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - + if(dir == getDir()) continue; - + this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } + + pulses = 0; + this.setPower(0); //tick is over, reset our allowed transfe } } @@ -190,11 +196,10 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, public boolean canConnect(ForgeDirection dir) { return dir != getDir(); } - + + /** Used as an intra-tick tracker for how much energy has been transmitted, resets to 0 each tick and maxes out based on transfer */ + private long power; private boolean recursionBrake = false; - private long subBuffer; - private long contingent = 0; - private long lastTransfer = 0; private int pulses = 0; public ConnectionPriority priority = ConnectionPriority.NORMAL; @@ -203,38 +208,42 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, if(recursionBrake) return power; - + pulses++; - - if(lastTransfer != worldObj.getTotalWorldTime()) { - lastTransfer = worldObj.getTotalWorldTime(); - contingent = getMaxPower(); - pulses = 0; - } - - if(contingent <= 0 || pulses > 10) - return power; - - //this part turns "maxPower" from a glorified transfer weight into an actual transfer cap - long overShoot = Math.max(0, power - contingent); - power = Math.min(power, contingent); - + if(this.getPower() >= this.getMaxPower() || pulses > 10) return power; //if we have already maxed out transfer or max pulses, abort + recursionBrake = true; - this.subBuffer = power; - + ForgeDirection dir = getDir(); - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - long ret = this.subBuffer; - - long sent = power - ret; - contingent -= sent; - - this.subBuffer = 0; + PowerNode node = Nodespace.getNode(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + TileEntity te = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + if(node != null && !node.expired && node.hasValidNet() && te instanceof IEnergyConnectorMK2 && ((IEnergyConnectorMK2) te).canConnect(dir.getOpposite())) { + long toTransfer = Math.min(power, this.getReceiverSpeed()); + long remainder = node.net.sendPowerDiode(toTransfer); + long transferred = (toTransfer - remainder); + this.power += transferred; + power -= transferred; + + } else if(te instanceof IEnergyReceiverMK2 && te != this) { + IEnergyReceiverMK2 rec = (IEnergyReceiverMK2) te; + if(rec.canConnect(dir.getOpposite())) { + long toTransfer = Math.min(power, rec.getReceiverSpeed()); + long remainder = rec.transferPower(toTransfer); + power -= (toTransfer - remainder); + recursionBrake = false; + return power; + } + } + recursionBrake = false; - - return ret + overShoot; + return power; } + @Override + public long getReceiverSpeed() { + return this.getMaxPower() - this.getPower(); + } @Override public long getMaxPower() { @@ -243,12 +252,12 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, @Override public long getPower() { - return subBuffer; + return Math.min(power, this.getMaxPower()); } - + @Override public void setPower(long power) { - this.subBuffer = power; + this.power = power; } @Override diff --git a/src/main/java/com/hbm/blocks/network/CableSwitch.java b/src/main/java/com/hbm/blocks/network/CableSwitch.java index b419ec28a..f62af26b0 100644 --- a/src/main/java/com/hbm/blocks/network/CableSwitch.java +++ b/src/main/java/com/hbm/blocks/network/CableSwitch.java @@ -2,7 +2,6 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityCableSwitch; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; @@ -21,14 +20,14 @@ public class CableSwitch extends BlockContainer { public CableSwitch(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":cable_switch_on"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cable_switch_off"); } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { @@ -39,7 +38,7 @@ public class CableSwitch extends BlockContainer { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityCableSwitch(); } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) @@ -55,10 +54,10 @@ public class CableSwitch extends BlockContainer { world.setBlockMetadataWithNotify(x, y, z, 0, 2); world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); } - + TileEntityCableSwitch te = (TileEntityCableSwitch) world.getTileEntity(x, y, z); te.updateState(); - + return true; } else { return false; diff --git a/src/main/java/com/hbm/blocks/network/ConnectorRedWire.java b/src/main/java/com/hbm/blocks/network/ConnectorRedWire.java index c60d9e7a8..c97e067b2 100644 --- a/src/main/java/com/hbm/blocks/network/ConnectorRedWire.java +++ b/src/main/java/com/hbm/blocks/network/ConnectorRedWire.java @@ -1,10 +1,7 @@ package com.hbm.blocks.network; -import java.util.List; - import com.hbm.lib.Library; import com.hbm.tileentity.network.TileEntityConnector; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -15,6 +12,8 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + public class ConnectorRedWire extends PylonBase { public ConnectorRedWire(Material mat) { @@ -30,26 +29,26 @@ public class ConnectorRedWire extends PylonBase { public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { return side; } - + @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { setBlockBounds(world.getBlockMetadata(x, y, z)); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - + @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { setBlockBounds(world.getBlockMetadata(x, y, z)); } - + private void setBlockBounds(int meta) { - + float pixel = 0.0625F; float min = pixel * 5F; float max = pixel * 11F; - + ForgeDirection dir = ForgeDirection.getOrientation(meta).getOpposite(); - + float minX = dir == Library.NEG_X ? 0F : min; float maxX = dir == Library.POS_X ? 1F : max; float minY = dir == Library.NEG_Y ? 0F : min; diff --git a/src/main/java/com/hbm/blocks/network/CraneBoxer.java b/src/main/java/com/hbm/blocks/network/CraneBoxer.java index b884bd62f..2498e734c 100644 --- a/src/main/java/com/hbm/blocks/network/CraneBoxer.java +++ b/src/main/java/com/hbm/blocks/network/CraneBoxer.java @@ -1,11 +1,11 @@ package com.hbm.blocks.network; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.network.TileEntityCraneBoxer; - import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IConveyorPackage; import api.hbm.conveyor.IEnterableBlock; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; +import com.hbm.tileentity.network.TileEntityCraneBoxer; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -14,8 +14,6 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -26,7 +24,7 @@ public class CraneBoxer extends BlockCraneBase implements IEnterableBlock { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneBoxer(); } @@ -34,31 +32,26 @@ public class CraneBoxer extends BlockCraneBase implements IEnterableBlock { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); - this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_box"); - this.iconSideIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_box"); + this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_box"); + this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_box"); this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_up"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_down"); + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_top_left"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_top_right"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_left_turn_up"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_right_turn_up"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_left_turn_down"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_right_turn_down"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_up_turn_left"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_up_turn_right"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_down_turn_left"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_down_turn_right"); } - @Override - public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { - int meta = world.getBlockMetadata(x, y, z); - - if(meta > 1 && side == 1) { - if(meta == 2) return 3; - if(meta == 3) return 0; - if(meta == 4) return 1; - if(meta == 5) return 2; - } - - return 0; - } - - @Override + @Override public boolean canItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { - ForgeDirection orientation = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); - return orientation == dir; + return getInputSide(world, x, y, z) == dir; } @Override diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java index 51d754aa4..a50ff756a 100644 --- a/src/main/java/com/hbm/blocks/network/CraneExtractor.java +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -1,16 +1,16 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; import com.hbm.tileentity.network.TileEntityCraneExtractor; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class CraneExtractor extends BlockCraneBase { @@ -19,7 +19,7 @@ public class CraneExtractor extends BlockCraneBase { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneExtractor(); } @@ -30,19 +30,48 @@ public class CraneExtractor extends BlockCraneBase { this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up"); + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top_right"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top_left"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up_turn_left"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up_turn_right"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down_turn_left"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down_turn_right"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_left_turn_up"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_right_turn_up"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_left_turn_down"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_right_turn_down"); } @Override public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { int meta = world.getBlockMetadata(x, y, z); - + if(meta > 1 && side == 1) { + // ok so i've been sitting around for 4-5 hours trying to come up with a + // more elegant way to implement this and i have seriously no clue what + // the guys at mojang did, but the uv rotation makes absolutely no sense + // it's 2:30 am, please just accept this + // - martin + ForgeDirection leftHandDirection = getOutputSide(world, x, y, z).getRotation(getInputSide(world, x, y, z)); + if (leftHandDirection == ForgeDirection.UP) { + if (meta == 2) return 2; + if (meta == 3) return 1; + if (meta == 4) return 3; + if (meta == 5) return 0; + } + if (leftHandDirection == ForgeDirection.DOWN) { + if (meta == 2) return 1; + if (meta == 3) return 2; + if (meta == 4) return 0; + if (meta == 5) return 3; + } + if(meta == 2) return 0; if(meta == 3) return 3; if(meta == 4) return 2; if(meta == 5) return 1; } - + return 0; } diff --git a/src/main/java/com/hbm/blocks/network/CraneGrabber.java b/src/main/java/com/hbm/blocks/network/CraneGrabber.java index 71372467b..b88a707ca 100644 --- a/src/main/java/com/hbm/blocks/network/CraneGrabber.java +++ b/src/main/java/com/hbm/blocks/network/CraneGrabber.java @@ -1,15 +1,13 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; import com.hbm.tileentity.network.TileEntityCraneGrabber; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class CraneGrabber extends BlockCraneBase { @@ -19,7 +17,7 @@ public class CraneGrabber extends BlockCraneBase { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneGrabber(); } @@ -27,30 +25,26 @@ public class CraneGrabber extends BlockCraneBase { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); + this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_pull"); + this.iconSideIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_pull"); this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_up"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_down"); - this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_pull"); - this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_pull"); - } - - @Override - public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { - int meta = world.getBlockMetadata(x, y, z); - - if(meta > 1 && side == 1) { - if(meta == 2) return 3; - if(meta == 3) return 0; - if(meta == 4) return 1; - if(meta == 5) return 2; - } - - return 0; + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_top_left"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_top_right"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_left_turn_up"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_right_turn_up"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_left_turn_down"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_right_turn_down"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_up_turn_left"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_up_turn_right"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_down_turn_left"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_down_turn_right"); } @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { - this.dropContents(world, x, y, z, block, meta, 0, 11); + this.dropContents(world, x, y, z, block, meta, 9, 11); super.breakBlock(world, x, y, z, block, meta); } } diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index cf3917af4..b83da5278 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -1,11 +1,12 @@ package com.hbm.blocks.network; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.network.TileEntityCraneInserter; - import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IConveyorPackage; import api.hbm.conveyor.IEnterableBlock; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; +import com.hbm.tileentity.network.TileEntityCraneInserter; +import com.hbm.util.InventoryUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -17,8 +18,6 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -29,10 +28,10 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneInserter(); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -40,6 +39,16 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_up"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_down"); + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_top_left"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_top_right"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_left_turn_up"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_right_turn_up"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_left_turn_down"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_right_turn_down"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_up_turn_left"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_up_turn_right"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_down_turn_left"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_down_turn_right"); } @Override @@ -50,92 +59,87 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { @Override public void onItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { - TileEntity te = world.getTileEntity(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); - + ForgeDirection outputDirection = getOutputSide(world, x, y, z); + TileEntity te = world.getTileEntity(x + outputDirection.offsetX, y + outputDirection.offsetY, z + outputDirection.offsetZ); + if(entity == null || entity.getItemStack() == null || entity.getItemStack().stackSize <= 0) { return; } - + ItemStack toAdd = entity.getItemStack().copy(); - + int[] access = null; - + if(te instanceof ISidedInventory) { ISidedInventory sided = (ISidedInventory) te; - access = masquerade(sided, dir.ordinal()); + access = InventoryUtil.masquerade(sided, outputDirection.getOpposite().ordinal()); } - + if(te instanceof IInventory) { IInventory inv = (IInventory) te; - - addToInventory(inv, access, toAdd, dir.ordinal()); + + addToInventory(inv, access, toAdd, outputDirection.getOpposite().ordinal()); } - - if(toAdd != null && toAdd.stackSize > 0) { - addToInventory((TileEntityCraneInserter) world.getTileEntity(x, y, z), null, toAdd, dir.ordinal()); + + TileEntityCraneInserter inserter = null; + + if(toAdd.stackSize > 0) { + inserter = (TileEntityCraneInserter) world.getTileEntity(x, y, z); + addToInventory(inserter, null, toAdd, outputDirection.getOpposite().ordinal()); } - if(toAdd != null && toAdd.stackSize > 0) { + if(toAdd.stackSize > 0 && inserter != null && !inserter.destroyer) { EntityItem drop = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, toAdd.copy()); world.spawnEntityInWorld(drop); } } - - public static int[] masquerade(ISidedInventory sided, int side) { - - if(sided instanceof TileEntityFurnace) { - return new int[] {1, 0}; - } - - return sided.getAccessibleSlotsFromSide(side); - } - + public static ItemStack addToInventory(IInventory inv, int[] access, ItemStack toAdd, int side) { - + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; int limit = inv.getInventoryStackLimit(); - + int size = access == null ? inv.getSizeInventory() : access.length; - + for(int i = 0; i < size; i++) { int index = access == null ? i : access[i]; ItemStack stack = inv.getStackInSlot(index); - + if(stack != null && toAdd.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(toAdd, stack) && stack.stackSize < Math.min(stack.getMaxStackSize(), limit) && ((sided == null || sided.canInsertItem(index, toAdd, side)) && inv.isItemValidForSlot(index, toAdd))) { - + int stackLimit = Math.min(stack.getMaxStackSize(), limit); int amount = Math.min(toAdd.stackSize, stackLimit - stack.stackSize); - + stack.stackSize += amount; toAdd.stackSize -= amount; inv.markDirty(); - + if(toAdd.stackSize == 0) { return null; } } } - + for(int i = 0; i < size; i++) { int index = access == null ? i : access[i]; ItemStack stack = inv.getStackInSlot(index); - + if(stack == null && ((sided == null || sided.canInsertItem(index, toAdd, side)) && inv.isItemValidForSlot(index, toAdd))) { - + int amount = Math.min(toAdd.stackSize, limit); - + ItemStack newStack = toAdd.copy(); newStack.stackSize = amount; inv.setInventorySlotContents(index, newStack); toAdd.stackSize -= amount; inv.markDirty(); - + if(toAdd.stackSize == 0) { return null; } } } - + return toAdd; } @@ -147,25 +151,11 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { @Override public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { } - @Override - public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { - int meta = world.getBlockMetadata(x, y, z); - - if(meta > 1 && side == 1) { - if(meta == 2) return 3; - if(meta == 3) return 0; - if(meta == 4) return 1; - if(meta == 5) return 2; - } - - return 0; - } - - @Override + @Override public boolean hasComparatorInputOverride() { return true; } - + @Override public int getComparatorInputOverride(World world, int x, int y, int z, int side) { return Container.calcRedstoneFromInventory((TileEntityCraneInserter)world.getTileEntity(x, y, z)); diff --git a/src/main/java/com/hbm/blocks/network/CranePartitioner.java b/src/main/java/com/hbm/blocks/network/CranePartitioner.java new file mode 100644 index 000000000..f2d0b7cee --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/CranePartitioner.java @@ -0,0 +1,236 @@ +package com.hbm.blocks.network; + +import api.hbm.conveyor.IConveyorBelt; +import api.hbm.conveyor.IConveyorItem; +import api.hbm.conveyor.IConveyorPackage; +import api.hbm.conveyor.IEnterableBlock; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.entity.item.EntityMovingItem; +import com.hbm.inventory.recipes.CrystallizerRecipes; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.InventoryUtil; +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Random; + +public class CranePartitioner extends BlockContainer implements IConveyorBelt, IEnterableBlock, ITooltipProvider { + + @SideOnly(Side.CLIENT) public IIcon iconTop; + @SideOnly(Side.CLIENT) public IIcon iconBack; + @SideOnly(Side.CLIENT) public IIcon iconBelt; + @SideOnly(Side.CLIENT) public IIcon iconInner; + @SideOnly(Side.CLIENT) public IIcon iconInnerSide; + + public CranePartitioner() { + super(Material.iron); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":crane_top"); + this.iconBack = iconRegister.registerIcon(RefStrings.MODID + ":crane_partitioner_back"); + this.iconBelt = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_belt"); + this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_inner"); + this.iconInnerSide = iconRegister.registerIcon(RefStrings.MODID + ":crane_splitter_inner_side"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCranePartitioner(); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.75F, 1.0F); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override public int getRenderType() { return renderID; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override public boolean canItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { return getTravelDirection(world, x, y, z, null) == dir; } + @Override public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { return false; } + @Override public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { } + + @Override + public boolean canItemStay(World world, int x, int y, int z, Vec3 itemPos) { + return true; + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); + Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); + Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord - dir.offsetY * speed, snap.zCoord - dir.offsetZ * speed); + Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord)); + double len = motion.lengthVector(); + Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed); + return ret; + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + double posX = x + 0.5; + double posZ = z + 0.5; + if(dir.offsetX != 0) posX = itemPos.xCoord; + if(dir.offsetZ != 0) posZ = itemPos.zCoord; + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } + + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) { + int meta = world.getBlockMetadata(x, y, z); + return ForgeDirection.getOrientation(meta); + } + + @Override + public void onItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { + TileEntityCranePartitioner partitioner = (TileEntityCranePartitioner) world.getTileEntity(x, y, z); + ItemStack stack = entity.getItemStack(); + ItemStack remainder = null; + if(CrystallizerRecipes.getAmount(stack) > 0) { + remainder = InventoryUtil.tryAddItemToInventory(partitioner, 0, 8, stack); + } else { + remainder = InventoryUtil.tryAddItemToInventory(partitioner, 9, 17, stack); + } + if(remainder != null) { + EntityItem item = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, remainder.copy()); + world.spawnEntityInWorld(item); + } + } + + public static class TileEntityCranePartitioner extends TileEntityMachineBase { + + public TileEntityCranePartitioner() { + super(18); + } + + @Override public String getName() { return "container.partitioner"; } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + List stacks = new ArrayList(); + for(int i = 0; i < 9; i++) if(slots[i] != null) stacks.add(slots[i]); + stacks.sort(stackSizeComparator); + boolean markDirty = false; + + for(ItemStack stack : stacks) { + int amount = CrystallizerRecipes.getAmount(stack); + while(stack.stackSize >= amount) { + ItemStack entityStack = stack.copy(); + entityStack.stackSize = amount; + stack.stackSize -= amount; + EntityMovingItem item = new EntityMovingItem(worldObj); + item.setItemStack(entityStack); + item.setPosition(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5); + worldObj.spawnEntityInWorld(item); + } + } + + for(int i = 0; i < 9; i++) if(slots[i] != null && slots[i].stackSize <= 0) slots[i] = null; + if(markDirty) this.markDirty(); + } + } + + public static Comparator stackSizeComparator = new Comparator() { + + @Override + public int compare(ItemStack o1, ItemStack o2) { + return (int) Math.signum(o1.stackSize - o2.stackSize); + } + }; + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + return slot >= 9; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return i <= 8 && CrystallizerRecipes.getAmount(stack) >= 1; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0, 1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + private final Random dropRandom = new Random(); + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof IInventory) { + IInventory battery = (IInventory) tile; + for(int i = 0; i < battery.getSizeInventory(); ++i) { + ItemStack itemstack = battery.getStackInSlot(i); + if(itemstack != null) { + float f = this.dropRandom.nextFloat() * 0.8F + 0.1F; + float f1 = this.dropRandom.nextFloat() * 0.8F + 0.1F; + float f2 = this.dropRandom.nextFloat() * 0.8F + 0.1F; + while(itemstack.stackSize > 0) { + int j1 = this.dropRandom.nextInt(21) + 10; + if(j1 > itemstack.stackSize) j1 = itemstack.stackSize; + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + float f3 = 0.05F; + entityitem.motionX = (float) this.dropRandom.nextGaussian() * f3; + entityitem.motionY = (float) this.dropRandom.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.dropRandom.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + super.breakBlock(world, x, y, z, block, meta); + } +} diff --git a/src/main/java/com/hbm/blocks/network/CraneRouter.java b/src/main/java/com/hbm/blocks/network/CraneRouter.java index 06dc1769f..d6f663817 100644 --- a/src/main/java/com/hbm/blocks/network/CraneRouter.java +++ b/src/main/java/com/hbm/blocks/network/CraneRouter.java @@ -1,20 +1,17 @@ package com.hbm.blocks.network; -import java.util.ArrayList; -import java.util.List; - +import api.hbm.conveyor.IConveyorBelt; +import api.hbm.conveyor.IConveyorItem; +import api.hbm.conveyor.IConveyorPackage; +import api.hbm.conveyor.IEnterableBlock; import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.module.ModulePatternMatcher; import com.hbm.render.block.RenderBlockMultipass; import com.hbm.tileentity.network.TileEntityCraneRouter; - -import api.hbm.conveyor.IConveyorBelt; -import api.hbm.conveyor.IConveyorItem; -import api.hbm.conveyor.IConveyorPackage; -import api.hbm.conveyor.IEnterableBlock; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -32,7 +29,10 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnterableBlock { +import java.util.ArrayList; +import java.util.List; + +public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnterableBlock, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon iconOverlay; @@ -45,7 +45,7 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityCraneRouter(); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -58,7 +58,7 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt public IIcon getIcon(int side, int metadata) { return RenderBlockMultipass.currentPass == 0 ? this.blockIcon : this.iconOverlay; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote) { @@ -74,10 +74,10 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt @Override @SideOnly(Side.CLIENT) public int colorMultiplier(IBlockAccess world, int x, int y, int z) { - + if(RenderBlockMultipass.currentPass == 0) return 0xffffff; - + switch(RenderBlockMultipass.currentPass - 1) { case 0: return 0xff0000; case 1: return 0xff8000; @@ -88,7 +88,7 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt default: return 0xffffff; } } - + @Override public int getRenderType(){ return IBlockMultiPass.getRenderType(); @@ -100,10 +100,10 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt @Override @SideOnly(Side.CLIENT) public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { - + if(RenderBlockMultipass.currentPass == 0) return true; - + return side == RenderBlockMultipass.currentPass - 1; } @@ -121,40 +121,40 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt public void onItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { TileEntityCraneRouter router = (TileEntityCraneRouter) world.getTileEntity(x, y, z); ItemStack stack = entity.getItemStack(); - + List validDirs = new ArrayList(); - + //check filters for all sides for(int side = 0; side < 6; side++) { - + ModulePatternMatcher matcher = router.patterns[side]; int mode = router.modes[side]; - + //if the side is disabled or wildcard, skip if(mode == router.MODE_NONE || mode == router.MODE_WILDCARD) continue; - + boolean matchesFilter = false; - + for(int slot = 0; slot < 5; slot++) { ItemStack filter = router.slots[side * 5 + slot]; - + if(filter == null) continue; - + //the filter kicks in so long as one entry matches if(matcher.isValidForFilter(filter, slot, stack)) { matchesFilter = true; break; } } - + //add dir if matches with whitelist on or doesn't match with blacklist on if((mode == router.MODE_WHITELIST && matchesFilter) || (mode == router.MODE_BLACKLIST && !matchesFilter)) { validDirs.add(ForgeDirection.getOrientation(side)); } } - + //if no valid dirs have yet been found, use wildcard if(validDirs.isEmpty()) { for(int side = 0; side < 6; side++) { @@ -163,25 +163,25 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt } } } - + if(validDirs.isEmpty()) { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); return; } - + int i = world.rand.nextInt(validDirs.size()); sendOnRoute(world, x, y, z, entity, validDirs.get(i)); } - + protected void sendOnRoute(World world, int x, int y, int z, IConveyorItem item, ForgeDirection dir) { - + IConveyorBelt belt = null; Block block = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - + if(block instanceof IConveyorBelt) { belt = (IConveyorBelt) block; } - + if(belt != null) { EntityMovingItem moving = new EntityMovingItem(world); Vec3 pos = Vec3.createVectorHelper(x + 0.5 + dir.offsetX * 0.55, y + 0.5 + dir.offsetY * 0.55, z + 0.5 + dir.offsetZ * 0.55); @@ -194,11 +194,11 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt } } - @Override - public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { - return false; - } + @Override public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { return false; } + @Override public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { } @Override - public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { } + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneSplitter.java b/src/main/java/com/hbm/blocks/network/CraneSplitter.java index 11de7afda..562c495a2 100644 --- a/src/main/java/com/hbm/blocks/network/CraneSplitter.java +++ b/src/main/java/com/hbm/blocks/network/CraneSplitter.java @@ -1,19 +1,20 @@ package com.hbm.blocks.network; -import com.hbm.blocks.BlockDummyable; -import com.hbm.entity.item.EntityMovingItem; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.network.TileEntityCraneSplitter; - import api.hbm.conveyor.IConveyorBelt; import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IConveyorPackage; import api.hbm.conveyor.IEnterableBlock; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.entity.item.EntityMovingItem; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneSplitter; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; @@ -22,7 +23,9 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnterableBlock { +import java.util.List; + +public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnterableBlock, ITooltipProvider { @SideOnly(Side.CLIENT) public IIcon iconTopLeft; @SideOnly(Side.CLIENT) public IIcon iconTopRight; @@ -35,7 +38,7 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt @SideOnly(Side.CLIENT) public IIcon iconBelt; @SideOnly(Side.CLIENT) public IIcon iconInner; @SideOnly(Side.CLIENT) public IIcon iconInnerSide; - + public CraneSplitter() { super(Material.iron); } @@ -54,7 +57,7 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt public int getOffset() { return 0; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -96,7 +99,7 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt boolean pos = splitter.getPosition(); ItemStack stack = entity.getItemStack(); ForgeDirection rot = ForgeDirection.getOrientation(splitter.getBlockMetadata() - offset).getRotation(ForgeDirection.DOWN); - + if(stack.stackSize % 2 == 0) { stack.stackSize /= 2; spawnMovingItem(world, x, y, z, stack.copy()); @@ -110,7 +113,7 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt splitter.setPosition(!pos); } } - + private void spawnMovingItem(World world, int x, int y, int z, ItemStack stack) { if(stack.stackSize <= 0) return; EntityMovingItem moving = new EntityMovingItem(world); @@ -148,10 +151,15 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt if(dir.offsetZ != 0) posZ = itemPos.zCoord; return Vec3.createVectorHelper(posX, y + 0.25, posZ); } - + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) { int meta = world.getBlockMetadata(x, y, z); if(meta >= 12) return ForgeDirection.getOrientation(meta - offset); return ForgeDirection.getOrientation(meta).getRotation(ForgeDirection.UP); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneUnboxer.java b/src/main/java/com/hbm/blocks/network/CraneUnboxer.java index 558de5654..b9ffd19a2 100644 --- a/src/main/java/com/hbm/blocks/network/CraneUnboxer.java +++ b/src/main/java/com/hbm/blocks/network/CraneUnboxer.java @@ -1,11 +1,11 @@ package com.hbm.blocks.network; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.network.TileEntityCraneUnboxer; - import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IConveyorPackage; import api.hbm.conveyor.IEnterableBlock; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; +import com.hbm.tileentity.network.TileEntityCraneUnboxer; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -14,7 +14,6 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -26,7 +25,7 @@ public class CraneUnboxer extends BlockCraneBase implements IEnterableBlock { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneUnboxer(); } @@ -34,24 +33,53 @@ public class CraneUnboxer extends BlockCraneBase implements IEnterableBlock { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); - this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_box"); - this.iconSideIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_box"); + this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_box"); + this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_box"); this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_down"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_up"); + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_top_right"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_top_left"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_up_turn_left"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_up_turn_right"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_down_turn_left"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_down_turn_right"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_left_turn_up"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_right_turn_up"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_left_turn_down"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_right_turn_down"); } @Override public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { int meta = world.getBlockMetadata(x, y, z); - + if(meta > 1 && side == 1) { + // ok so i've been sitting around for 4-5 hours trying to come up with a + // more elegant way to implement this and i have seriously no clue what + // the guys at mojang did, but the uv rotation makes absolutely no sense + // it's 2:30 am, please just accept this + // - martin + ForgeDirection leftHandDirection = getOutputSide(world, x, y, z).getRotation(getInputSide(world, x, y, z)); + if (leftHandDirection == ForgeDirection.UP) { + if (meta == 2) return 2; + if (meta == 3) return 1; + if (meta == 4) return 3; + if (meta == 5) return 0; + } + if (leftHandDirection == ForgeDirection.DOWN) { + if (meta == 2) return 1; + if (meta == 3) return 2; + if (meta == 4) return 0; + if (meta == 5) return 3; + } + if(meta == 2) return 0; if(meta == 3) return 3; if(meta == 4) return 2; if(meta == 5) return 1; } - + return 0; } @@ -71,15 +99,16 @@ public class CraneUnboxer extends BlockCraneBase implements IEnterableBlock { @Override public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { - return true; + return getOutputSide(world, x, y, z) == dir; } @Override public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { TileEntityCraneUnboxer unboxer = (TileEntityCraneUnboxer) world.getTileEntity(x, y, z); - + ForgeDirection accessedSide = getOutputSide(world, x, y, z).getOpposite(); + for(ItemStack stack : entity.getItemStacks()) { - ItemStack remainder = CraneInserter.addToInventory(unboxer, unboxer.getAccessibleSlotsFromSide(dir.ordinal()), stack, dir.ordinal()); + ItemStack remainder = CraneInserter.addToInventory(unboxer, unboxer.getAccessibleSlotsFromSide(accessedSide.ordinal()), stack, accessedSide.ordinal()); if(remainder != null && remainder.stackSize > 0) { EntityItem drop = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, remainder.copy()); diff --git a/src/main/java/com/hbm/blocks/network/DroneCrate.java b/src/main/java/com/hbm/blocks/network/DroneCrate.java new file mode 100644 index 000000000..78a64be21 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneCrate.java @@ -0,0 +1,132 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.TileEntityDroneCrate; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class DroneCrate extends BlockContainer implements ILookOverlay, ITooltipProvider { + + private static Random rand = new Random(); + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + + public DroneCrate() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityDroneCrate(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(RefStrings.MODID + ":drone_crate_side"); + this.iconTop = reg.registerIcon(RefStrings.MODID + ":drone_crate_top"); + this.iconBottom = reg.registerIcon(RefStrings.MODID + ":drone_crate_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.drone_linker) return false; + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntityDroneCrate tileentityfurnace = (TileEntityDroneCrate) world.getTileEntity(x, y, z); + + if(tileentityfurnace != null) { + for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + + if(itemstack != null) { + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = this.rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntityDroneCrate tile = (TileEntityDroneCrate) world.getTileEntity(x, y, z); + List text = new ArrayList(); + + if(tile.nextY != -1) { + text.add("Next waypoint: " + tile.nextX + " / " + tile.nextY + " / " + tile.nextZ); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/DroneDock.java b/src/main/java/com/hbm/blocks/network/DroneDock.java new file mode 100644 index 000000000..226d3c3f0 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneDock.java @@ -0,0 +1,72 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.TileEntityDroneDock; +import com.hbm.tileentity.network.TileEntityDroneProvider; +import com.hbm.tileentity.network.TileEntityDroneRequester; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import java.util.List; + +public class DroneDock extends BlockContainer implements ITooltipProvider { + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + + public DroneDock() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(this == ModBlocks.drone_dock) return new TileEntityDroneDock(); + if(this == ModBlocks.drone_crate_provider) return new TileEntityDroneProvider(); + if(this == ModBlocks.drone_crate_requester) return new TileEntityDroneRequester(); + + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(this.textureName + "_side"); + this.iconTop = reg.registerIcon(this.textureName + "_top"); + this.iconBottom = reg.registerIcon(this.textureName + "_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/network/DroneWaypoint.java b/src/main/java/com/hbm/blocks/network/DroneWaypoint.java new file mode 100644 index 000000000..16f5c60eb --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneWaypoint.java @@ -0,0 +1,140 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.ModItems; +import com.hbm.tileentity.network.TileEntityDroneWaypoint; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; + +public class DroneWaypoint extends BlockContainer implements ILookOverlay, ITooltipProvider { + + public DroneWaypoint() { + super(Material.circuits); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityDroneWaypoint(); + } + + @Override + public int getRenderType() { + return RadioTorchBase.renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return null; + } + + @Override + public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 vec0, Vec3 vec1) { + + int meta = world.getBlockMetadata(x, y, z) & 7; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + + this.setBlockBounds( + dir.offsetX == 1 ? 0F : 0.375F, + dir.offsetY == 1 ? 0F : 0.375F, + dir.offsetZ == 1 ? 0F : 0.375F, + dir.offsetX == -1 ? 1F : 0.625F, + dir.offsetY == -1 ? 1F : 0.625F, + dir.offsetZ == -1 ? 1F : 0.625F + ); + + return super.collisionRayTrace(world, x, y, z, vec0, vec1); + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + return side; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + int meta = world.getBlockMetadata(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(meta); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + if(!b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) && (!b.renderAsNormalBlock() || b.isAir(world, x, y, z))) { + this.dropBlockAsItem(world, x, y, z, meta, 0); + world.setBlockToAir(x, y, z); + } + } + + @Override + public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { + if(!super.canPlaceBlockOnSide(world, x, y, z, side)) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(side); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + return b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) || (b.renderAsNormalBlock() && !b.isAir(world, x, y, z)); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.drone_linker) return false; + + if(world.isRemote) return true; + + TileEntityDroneWaypoint tile = (TileEntityDroneWaypoint) world.getTileEntity(x, y, z); + tile.addHeight(player.isSneaking() ? - 1 : 1); + return true; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntityDroneWaypoint tile = (TileEntityDroneWaypoint) world.getTileEntity(x, y, z); + List text = new ArrayList(); + + text.add("Waypoint distance: " + tile.height); + + if(tile.nextY != -1) { + text.add("Next waypoint: " + tile.nextX + " / " + tile.nextY + " / " + tile.nextZ); + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java b/src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java new file mode 100644 index 000000000..82318b0a8 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java @@ -0,0 +1,99 @@ +package com.hbm.blocks.network; + +import com.hbm.tileentity.network.TileEntityDroneWaypointRequest; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class DroneWaypointRequest extends BlockContainer { + + public DroneWaypointRequest() { + super(Material.circuits); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityDroneWaypointRequest(); + } + + @Override + public int getRenderType() { + return RadioTorchBase.renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return null; + } + + @Override + public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 vec0, Vec3 vec1) { + + int meta = world.getBlockMetadata(x, y, z) & 7; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + + this.setBlockBounds( + dir.offsetX == 1 ? 0F : 0.375F, + dir.offsetY == 1 ? 0F : 0.375F, + dir.offsetZ == 1 ? 0F : 0.375F, + dir.offsetX == -1 ? 1F : 0.625F, + dir.offsetY == -1 ? 1F : 0.625F, + dir.offsetZ == -1 ? 1F : 0.625F + ); + + return super.collisionRayTrace(world, x, y, z, vec0, vec1); + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + return side; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + int meta = world.getBlockMetadata(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(meta); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + if(!b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) && (!b.renderAsNormalBlock() || b.isAir(world, x, y, z))) { + this.dropBlockAsItem(world, x, y, z, meta, 0); + world.setBlockToAir(x, y, z); + } + } + + @Override + public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { + if(!super.canPlaceBlockOnSide(world, x, y, z, side)) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(side); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + return b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) || (b.renderAsNormalBlock() && !b.isAir(world, x, y, z)); + } +} diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBase.java b/src/main/java/com/hbm/blocks/network/FluidDuctBase.java index 7c17661f1..3016bc287 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBase.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBase.java @@ -1,18 +1,27 @@ package com.hbm.blocks.network; +import api.hbm.fluid.IPipeNet; +import api.hbm.fluid.PipeNet; +import com.hbm.blocks.IAnalyzable; +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.HbmKeybinds; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemFluidIDMulti; import com.hbm.tileentity.network.TileEntityPipeBaseNT; - import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class FluidDuctBase extends BlockContainer implements IBlockFluidDuct { +import java.util.ArrayList; +import java.util.List; + +public class FluidDuctBase extends BlockContainer implements IBlockFluidDuct, IAnalyzable { public FluidDuctBase(Material mat) { super(mat); @@ -25,53 +34,76 @@ public class FluidDuctBase extends BlockContainer implements IBlockFluidDuct { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float fX, float fY, float fZ) { - + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { IItemFluidIdentifier id = (IItemFluidIdentifier) player.getHeldItem().getItem(); FluidType type = id.getType(world, x, y, z, player.getHeldItem()); - - if(!player.isSneaking()) { - + + if(!HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_CTRL) && !player.isSneaking()) { + TileEntity te = world.getTileEntity(x, y, z); - + if(te instanceof TileEntityPipeBaseNT) { TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; - + + if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) { + Item item = player.getHeldItem().getItem(); + if (item instanceof ItemFluidIDMulti) { + if (id.getType(world, x, y, z, player.getHeldItem()) != pipe.getType()) { + ItemFluidIDMulti.setType(player.getHeldItem(), pipe.getType(), true); + world.playSoundAtEntity(player, "random.orb", 0.25F, 0.75F); + return true; + } + } + } + if(pipe.getType() != type) { pipe.setType(type); return true; } } } else { - + TileEntity te = world.getTileEntity(x, y, z); - + if(te instanceof TileEntityPipeBaseNT) { TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; + + if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) { + Item item = player.getHeldItem().getItem(); + if (item instanceof ItemFluidIDMulti) { + if (id.getType(world, x, y, z, player.getHeldItem()) != pipe.getType()) { + ItemFluidIDMulti.setType(player.getHeldItem(), pipe.getType(), true); + world.playSoundAtEntity(player, "random.orb", 0.25F, 0.75F); + return true; + } + } + } + changeTypeRecursively(world, x, y, z, pipe.getType(), type, 64); return true; } } } - + return false; } @Override public void changeTypeRecursively(World world, int x, int y, int z, FluidType prevType, FluidType type, int loopsRemaining) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(te instanceof TileEntityPipeBaseNT) { TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; - + if(pipe.getType() == prevType && pipe.getType() != type) { pipe.setType(type); - + if(loopsRemaining > 0) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { Block b = world.getBlock(x, y, z); - + if(b instanceof IBlockFluidDuct) { ((IBlockFluidDuct) b).changeTypeRecursively(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, prevType, type, loopsRemaining - 1); } @@ -80,4 +112,35 @@ public class FluidDuctBase extends BlockContainer implements IBlockFluidDuct { } } } + + @Override + public List getDebugInfo(World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityPipeBaseNT) { + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; + FluidType type = pipe.getType(); + + if(type != null) { + + IPipeNet net = pipe.getPipeNet(type); + + if(net instanceof PipeNet) { + PipeNet pipeNet = (PipeNet) net; + + List debug = new ArrayList(); + debug.add("=== DEBUG START ==="); + debug.addAll(pipeNet.debug); + debug.add("=== DEBUG END ==="); + debug.add("Links: " + pipeNet.getLinks().size()); + debug.add("Subscribers: " + pipeNet.getSubscribers().size()); + debug.add("Transfer: " + pipeNet.getTotalTransfer()); + return debug; + } + } + } + + return null; + } } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index e8675d146..6d091e422 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -1,17 +1,11 @@ package com.hbm.blocks.network; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.util.I18nUtil; - import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -29,6 +23,9 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOverlay { @SideOnly(Side.CLIENT) public IIcon[] iconStraight; @@ -37,14 +34,14 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve @SideOnly(Side.CLIENT) public IIcon[] iconCurveTR; @SideOnly(Side.CLIENT) public IIcon[] iconCurveBL; @SideOnly(Side.CLIENT) public IIcon[] iconCurveBR; - @SideOnly(Side.CLIENT) public IIcon[] iconJunction; - + @SideOnly(Side.CLIENT) public IIcon[][] iconJunction; + private static final String[] materials = new String[] { "silver", "copper", "white" }; public FluidDuctBox(Material mat) { super(mat); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -57,7 +54,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve iconCurveTR = new IIcon[count]; iconCurveBL = new IIcon[count]; iconCurveBR = new IIcon[count]; - iconJunction = new IIcon[count]; + iconJunction = new IIcon[count][5]; for(int i = 0; i < count; i++) { iconStraight[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_straight"); @@ -66,34 +63,28 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve iconCurveTR[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_tr"); iconCurveBL[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_bl"); iconCurveBR[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_br"); - iconJunction[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_junction"); + for(int j = 0; j < 5; j++) iconJunction[i][j] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_junction_" + j); } } @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { - FluidType type = Fluids.NONE; - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityPipeBaseNT) { - TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; - type = pipe.getType(); - } - - boolean pX = Library.canConnectFluid(world, x + 1, y, z, Library.NEG_X, type); - boolean nX = Library.canConnectFluid(world, x - 1, y, z, Library.POS_X, type); - boolean pY = Library.canConnectFluid(world, x, y + 1, z, Library.NEG_Y, type); - boolean nY = Library.canConnectFluid(world, x, y - 1, z, Library.POS_Y, type); - boolean pZ = Library.canConnectFluid(world, x, y, z + 1, Library.NEG_Z, type); - boolean nZ = Library.canConnectFluid(world, x, y, z - 1, Library.POS_Z, type); - + + boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, te); + boolean pX = canConnectTo(world, x, y, z, Library.POS_X, te); + boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, te); + boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, te); + boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, te); + boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, te); + int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); - - int m = rectify(world.getBlockMetadata(x, y, z)); - + + int meta = world.getBlockMetadata(x, y, z); + int m = rectify(meta); + if((mask & 0b001111) == 0 && mask > 0) { return (side == 4 || side == 5) ? iconEnd[m] : iconStraight[m]; } else if((mask & 0b111100) == 0 && mask > 0) { @@ -120,41 +111,41 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve if(pX && pZ) return side == 0 ? iconCurveBR[m] : iconCurveBR[m]; if(nX && nZ) return side == 0 ? iconCurveTL[m] : iconCurveTL[m]; if(nX && pZ) return side == 0 ? iconCurveBL[m] : iconCurveBL[m]; - - return iconJunction[m]; + + return iconJunction[m][meta / 3]; } - - return iconJunction[m]; + + return iconJunction[m][meta / 3]; } - + @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { for(int i = 0; i < 15; ++i) { list.add(new ItemStack(item, 1, i)); } } - + public int damageDropped(int meta) { return meta % 15; } - + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @Override public int getRenderType() { return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) { @@ -168,64 +159,60 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve @Override public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) { - + List bbs = new ArrayList(); TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityPipeBaseNT) { - TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; - FluidType type = pipe.getType(); - double lower = 0.125D; - double upper = 0.875D; - double jLower = 0.0625D; - double jUpper = 0.9375D; - int meta = world.getBlockMetadata(x, y, z); - - for(int i = 2; i < 13; i += 3) { - - if(meta > i) { - lower += 0.0625D; - upper -= 0.0625D; - jLower += 0.0625D; - jUpper -= 0.0625D; - } - } + double lower = 0.125D; + double upper = 0.875D; + double jLower = 0.0625D; + double jUpper = 0.9375D; + int meta = world.getBlockMetadata(x, y, z); - boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, type); - boolean pX = canConnectTo(world, x, y, z, Library.POS_X, type); - boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, type); - boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, type); - boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, type); - boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, type); - int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); - int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); - - if(mask == 0) { - bbs.add(AxisAlignedBB.getBoundingBox(x + jLower, y + jLower, z + jLower, x + jUpper, y + jUpper, z + jUpper)); - } else if(mask == 0b100000 || mask == 0b010000 || mask == 0b110000) { - bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + lower, z + lower, x + 1.0D, y + upper, z + upper)); - } else if(mask == 0b001000 || mask == 0b000100 || mask == 0b001100) { - bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + 0.0D, z + lower, x + upper, y + 1.0D, z + upper)); - } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { - bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + 0.0D, x + upper, y + upper, z + 1.0D)); - } else { - - if(count != 2) { - bbs.add(AxisAlignedBB.getBoundingBox(x + jLower, y + jLower, z + jLower, x + jUpper, y + jUpper, z + jUpper)); - } else { - bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + lower, x + upper, y + upper, z + upper)); - } - - if(pX) bbs.add(AxisAlignedBB.getBoundingBox(x + upper, y + lower, z + lower, x + 1.0D, y + upper, z + upper)); - if(nX) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + lower, z + lower, x + lower, y + upper, z + upper)); - if(pY) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + upper, z + lower, x + upper, y + 1.0D, z + upper)); - if(nY) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + 0.0D, z + lower, x + upper, y + lower, z + upper)); - if(pZ) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + upper, x + upper, y + upper, z + 1.0D)); - if(nZ) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + 0.0D, x + upper, y + upper, z + lower)); + for(int i = 2; i < 13; i += 3) { + + if(meta > i) { + lower += 0.0625D; + upper -= 0.0625D; + jLower += 0.0625D; + jUpper -= 0.0625D; } } - + + boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, te); + boolean pX = canConnectTo(world, x, y, z, Library.POS_X, te); + boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, te); + boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, te); + boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, te); + boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, te); + int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); + int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); + + if(mask == 0) { + bbs.add(AxisAlignedBB.getBoundingBox(x + jLower, y + jLower, z + jLower, x + jUpper, y + jUpper, z + jUpper)); + } else if(mask == 0b100000 || mask == 0b010000 || mask == 0b110000) { + bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + lower, z + lower, x + 1.0D, y + upper, z + upper)); + } else if(mask == 0b001000 || mask == 0b000100 || mask == 0b001100) { + bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + 0.0D, z + lower, x + upper, y + 1.0D, z + upper)); + } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { + bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + 0.0D, x + upper, y + upper, z + 1.0D)); + } else { + + if(count != 2) { + bbs.add(AxisAlignedBB.getBoundingBox(x + jLower, y + jLower, z + jLower, x + jUpper, y + jUpper, z + jUpper)); + } else { + bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + lower, x + upper, y + upper, z + upper)); + } + + if(pX) bbs.add(AxisAlignedBB.getBoundingBox(x + upper, y + lower, z + lower, x + 1.0D, y + upper, z + upper)); + if(nX) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + lower, z + lower, x + lower, y + upper, z + upper)); + if(pY) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + upper, z + lower, x + upper, y + 1.0D, z + upper)); + if(nY) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + 0.0D, z + lower, x + upper, y + lower, z + upper)); + if(pZ) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + upper, x + upper, y + upper, z + 1.0D)); + if(nZ) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + 0.0D, x + upper, y + upper, z + lower)); + } + for(AxisAlignedBB bb : bbs) { if(entityBounding.intersectsWith(bb)) { list.add(bb); @@ -233,6 +220,12 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve } } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { @@ -244,87 +237,86 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityPipeBaseNT) { - TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; - FluidType type = pipe.getType(); - float lower = 0.125F; - float upper = 0.875F; - float jLower = 0.0625F; - float jUpper = 0.9375F; - int meta = world.getBlockMetadata(x, y, z); - - for(int i = 2; i < 13; i += 3) { - - if(meta > i) { - lower += 0.0625F; - upper -= 0.0625F; - jLower += 0.0625F; - jUpper -= 0.0625F; - } + float lower = 0.125F; + float upper = 0.875F; + float jLower = 0.0625F; + float jUpper = 0.9375F; + int meta = world.getBlockMetadata(x, y, z); + + for(int i = 2; i < 13; i += 3) { + + if(meta > i) { + lower += 0.0625F; + upper -= 0.0625F; + jLower += 0.0625F; + jUpper -= 0.0625F; } + } - boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, type); - boolean pX = canConnectTo(world, x, y, z, Library.POS_X, type); - boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, type); - boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, type); - boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, type); - boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, type); - int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); - int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); - - if(mask == 0) { - this.setBlockBounds(jLower, jLower, jLower, jUpper, jUpper, jUpper); - } else if(mask == 0b100000 || mask == 0b010000 || mask == 0b110000) { - this.setBlockBounds(0F, lower, lower, 1F, upper, upper); - } else if(mask == 0b001000 || mask == 0b000100 || mask == 0b001100) { - this.setBlockBounds(lower, 0F, lower, upper, 1F, upper); - } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { - this.setBlockBounds(lower, lower, 0F, upper, upper, 1F); + boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, te); + boolean pX = canConnectTo(world, x, y, z, Library.POS_X, te); + boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, te); + boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, te); + boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, te); + boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, te); + int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); + int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); + + if(mask == 0) { + this.setBlockBounds(jLower, jLower, jLower, jUpper, jUpper, jUpper); + } else if(mask == 0b100000 || mask == 0b010000 || mask == 0b110000) { + this.setBlockBounds(0F, lower, lower, 1F, upper, upper); + } else if(mask == 0b001000 || mask == 0b000100 || mask == 0b001100) { + this.setBlockBounds(lower, 0F, lower, upper, 1F, upper); + } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { + this.setBlockBounds(lower, lower, 0F, upper, upper, 1F); + } else { + + if(count != 2) { + this.setBlockBounds( + nX ? 0F : jLower, + nY ? 0F : jLower, + nZ ? 0F : jLower, + pX ? 1F : jUpper, + pY ? 1F : jUpper, + pZ ? 1F : jUpper); } else { - - if(count != 2) { - this.setBlockBounds( - nX ? 0F : jLower, - nY ? 0F : jLower, - nZ ? 0F : jLower, - pX ? 1F : jUpper, - pY ? 1F : jUpper, - pZ ? 1F : jUpper); - } else { - this.setBlockBounds( - nX ? 0F : lower, - nY ? 0F : lower, - nZ ? 0F : lower, - pX ? 1F : upper, - pY ? 1F : upper, - pZ ? 1F : upper); - } + this.setBlockBounds( + nX ? 0F : lower, + nY ? 0F : lower, + nZ ? 0F : lower, + pX ? 1F : upper, + pY ? 1F : upper, + pZ ? 1F : upper); } } } - - public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir, FluidType type) { - return Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, type); + + public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir, TileEntity tile) { + if(tile instanceof TileEntityPipeBaseNT) { + return Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, ((TileEntityPipeBaseNT) tile).getType()); + } + return false; } @Override public void printHook(Pre event, World world, int x, int y, int z) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(!(te instanceof TileEntityPipeBaseNT)) return; - + TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; - + List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } - + public static int cachedColor = 0xffffff; - + @Override @SideOnly(Side.CLIENT) public int colorMultiplier(IBlockAccess world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java new file mode 100644 index 000000000..4384b908b --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java @@ -0,0 +1,85 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityPipeExhaust; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; + +public class FluidDuctBoxExhaust extends FluidDuctBox { + + public FluidDuctBoxExhaust(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPipeExhaust(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + + iconStraight = new IIcon[1]; + iconEnd = new IIcon[1]; + iconCurveTL = new IIcon[1]; + iconCurveTR = new IIcon[1]; + iconCurveBL = new IIcon[1]; + iconCurveBR = new IIcon[1]; + iconJunction = new IIcon[1][5]; + + iconStraight[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_straight"); + iconEnd[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_end"); + iconCurveTL[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_tl"); + iconCurveTR[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_tr"); + iconCurveBL[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_bl"); + iconCurveBR[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_br"); + for(int i = 0; i < 5; i++) iconJunction[0][i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_junction_" + i); + } + + public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir, TileEntity tile) { + return Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, Fluids.SMOKE) || + Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, Fluids.SMOKE_LEADED) || + Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, Fluids.SMOKE_POISON); + } + + @Override + public int getSubCount() { + return 1; + } + + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < 15; i += 3) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + List text = new ArrayList(); + text.add(Fluids.SMOKE.getLocalizedName()); + text.add(Fluids.SMOKE_LEADED.getLocalizedName()); + text.add(Fluids.SMOKE_POISON.getLocalizedName()); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index 10e36bf10..44d66e8f8 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -1,35 +1,40 @@ package com.hbm.blocks.network; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.List; - +import api.hbm.fluid.IPipeNet; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; -import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.util.I18nUtil; - -import api.hbm.fluid.IPipeNet; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, ILookOverlay, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon overlay; @@ -43,7 +48,7 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityPipeGauge(); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { @@ -55,11 +60,11 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL @Override @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { - + if(RenderBlockMultipass.currentPass == 0) { return blockIcon; } - + return side == world.getBlockMetadata(x, y, z) ? this.overlayGauge : this.overlay; } @@ -81,33 +86,34 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL @Override public void printHook(Pre event, World world, int x, int y, int z) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(!(te instanceof TileEntityPipeBaseNT)) return; - + TileEntityPipeGauge duct = (TileEntityPipeGauge) te; - + List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); - text.add(String.format("%,d", duct.deltaTick) + " mB/t"); - text.add(String.format("%,d", duct.deltaLastSecond) + " mB/s"); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); + text.add(String.format(Locale.US, "%,d", duct.deltaTick) + " mB/t"); + text.add(String.format(Locale.US, "%,d", duct.deltaLastSecond) + " mB/s"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } - + @Override public int getRenderType(){ return IBlockMultiPass.getRenderType(); } - - public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements INBTPacketReceiver { + + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) + public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements SimpleComponent, CompatHandler.OCComponent { private BigInteger lastMeasurement = BigInteger.valueOf(10); private long deltaTick = 0; private long deltaSecond = 0; private long deltaLastSecond = 0; - + @Override public void updateEntity() { super.updateEntity(); @@ -115,12 +121,12 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL if(!worldObj.isRemote) { IPipeNet net = this.getPipeNet(this.getType()); - + if(net != null && this.getType() != Fluids.NONE) { BigInteger total = net.getTotalTransfer(); BigInteger delta = total.subtract(this.lastMeasurement); this.lastMeasurement = total; - + try { this.deltaTick = delta.longValueExact(); if(worldObj.getTotalWorldTime() % 20 == 0) { @@ -128,21 +134,47 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL this.deltaSecond = 0; } this.deltaSecond += deltaTick; - + } catch(Exception ex) { } } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("deltaT", deltaTick); - data.setLong("deltaS", deltaLastSecond); - INBTPacketReceiver.networkPack(this, data, 25); + + networkPackNT(25); } } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.deltaTick = Math.max(nbt.getLong("deltaT"), 0); - this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); + public void serialize(ByteBuf buf) { + buf.writeLong(deltaTick); + buf.writeLong(deltaLastSecond); + } + + @Override + public void deserialize(ByteBuf buf) { + this.deltaTick = Math.max(buf.readLong(), 0); + this.deltaLastSecond = Math.max(buf.readLong(), 0); + } + + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_fluid_gauge"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getTransfer(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {getType().getName()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond, getType().getName(), xCoord, yCoord, zCoord}; } } } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java b/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java index a9415a219..37599923b 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java @@ -1,16 +1,12 @@ package com.hbm.blocks.network; -import java.util.ArrayList; -import java.util.List; - +import api.hbm.block.IToolable; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.util.I18nUtil; - -import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -26,6 +22,9 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import java.util.ArrayList; +import java.util.List; + public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlockMultiPass, ILookOverlay { @SideOnly(Side.CLIENT) protected IIcon overlay; @@ -39,7 +38,7 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityPipePaintable(); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { @@ -52,10 +51,10 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { TileEntity tile = world.getTileEntity(x, y, z); - + if(tile instanceof TileEntityPipePaintable) { TileEntityPipePaintable pipe = (TileEntityPipePaintable) tile; - + if(pipe.block != null) { if(RenderBlockMultipass.currentPass == 1) { return this.overlay; @@ -64,46 +63,46 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo } } } - + return RenderBlockMultipass.currentPass == 1 ? this.overlayColor : this.blockIcon; } @Override @SideOnly(Side.CLIENT) public int colorMultiplier(IBlockAccess world, int x, int y, int z) { - + if(RenderBlockMultipass.currentPass == 0) return 0xffffff; - + TileEntity tile = world.getTileEntity(x, y, z); - + if(tile instanceof TileEntityPipePaintable) { TileEntityPipePaintable pipe = (TileEntityPipePaintable) tile; - + if(pipe.block == null) { return pipe.getType().getColor(); } } - + return 0xffffff; } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float fX, float fY, float fZ) { - + ItemStack stack = player.getHeldItem(); - + if(stack != null && stack.getItem() instanceof ItemBlock) { ItemBlock ib = (ItemBlock) stack.getItem(); Block block = ib.field_150939_a; - + if(block.renderAsNormalBlock() && block != this) { - + TileEntity tile = world.getTileEntity(x, y, z); - + if(tile instanceof TileEntityPipePaintable) { TileEntityPipePaintable pipe = (TileEntityPipePaintable) tile; - + if(pipe.block == null) { pipe.block = block; pipe.meta = stack.getItemDamage() & 15; @@ -114,20 +113,20 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo } } } - + return super.onBlockActivated(world, x, y, z, player, side, fX, fY, fZ); } @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { - + if(tool != ToolType.SCREWDRIVER) return false; - + TileEntity tile = world.getTileEntity(x, y, z); - + if(tile instanceof TileEntityPipePaintable) { TileEntityPipePaintable pipe = (TileEntityPipePaintable) tile; - + if(pipe.block != null) { pipe.block = null; world.markBlockForUpdate(x, y, z); @@ -135,7 +134,7 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo return true; } } - + return false; } @@ -143,7 +142,7 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo public int getPasses() { return 2; } - + @Override public int getRenderType(){ return IBlockMultiPass.getRenderType(); @@ -151,19 +150,19 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo @Override public void printHook(Pre event, World world, int x, int y, int z) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(!(te instanceof TileEntityPipeBaseNT)) return; - + TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; - + List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } - + public static class TileEntityPipePaintable extends TileEntityPipeBaseNT { private Block block; diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index 485fbc06b..d1b46bc94 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -1,33 +1,35 @@ package com.hbm.blocks.network; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; -import com.hbm.blocks.test.TestPipe; import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.util.I18nUtil; - +import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILookOverlay { @SideOnly(Side.CLIENT) @@ -38,7 +40,7 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo public FluidDuctStandard(Material mat) { super(mat); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -53,34 +55,72 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo this.overlay[1] = iconRegister.registerIcon(RefStrings.MODID + ":pipe_silver_overlay"); this.overlay[2] = iconRegister.registerIcon(RefStrings.MODID + ":pipe_colored_overlay"); } - + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { return side == 0 ? this.icon[rectify(metadata)] : this.overlay[rectify(metadata)]; } - + @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { for(int i = 0; i < 3; ++i) { list.add(new ItemStack(item, 1, i)); } } - + public int damageDropped(int meta) { return rectify(meta); } + /* + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); // Get the block at the specified coordinates + int blockMetadata = world.getBlockMetadata(x, y, z); // Get the metadata of the block at the specified coordinates + TileEntity tileEntity = world.getTileEntity(x, y, z); // Get the tile entity at the specified coordinates + + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; + + // Get the metadata (FluidType) from the pipe + FluidType fluidType = pipe.getType(); + int metadata = fluidType.getID(); + + // Create an ItemStack with the item and metadata + ItemStack itemStack = new ItemStack(ModItems.fluid_duct, 1, metadata); + System.out.println(metadata); + System.out.println(itemStack); + + return new ItemStack(ModItems.fluid_duct, 1, metadata).getItem(); + } + */ + + @Override + @SideOnly(Side.CLIENT) + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + TileEntity tileEntity = world.getTileEntity(x, y, z); + if(tileEntity instanceof TileEntityPipeBaseNT) { + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; + FluidType fluidType = pipe.getType(); + int retadata = fluidType.getID(); // florf + + return new ItemStack(ModItems.fluid_duct, 1, retadata); + } + return super.getPickBlock(target, world, x, y, z, player); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @Override public int getRenderType() { - return TestPipe.renderID; + return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; @@ -93,7 +133,7 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo @Override public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) { - + List bbs = new ArrayList(); TileEntity te = world.getTileEntity(x, y, z); @@ -108,7 +148,7 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, type); boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, type); int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); - + if(mask == 0) { bbs.add(AxisAlignedBB.getBoundingBox(x + 0.6875D, y + 0.3125D, z + 0.3125D, x + 1.0D, y + 0.6875D, z + 0.6875D)); bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + 0.3125D, z + 0.3125D, x + 0.3125D, y + 0.6875D, z + 0.6875D)); @@ -123,9 +163,9 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { bbs.add(AxisAlignedBB.getBoundingBox(x + 0.3125D, y + 0.3125D, z + 0.0D, x + 0.6875D, y + 0.6875D, z + 1.0D)); } else { - + bbs.add(AxisAlignedBB.getBoundingBox(x + 0.3125D, y + 0.3125D, z + 0.3125D, x + 0.6875D, y + 0.6875D, z + 0.6875D)); - + if(pX) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.6875D, y + 0.3125D, z + 0.3125D, x + 1.0D, y + 0.6875D, z + 0.6875D)); if(nX) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + 0.3125D, z + 0.3125D, x + 0.3125D, y + 0.6875D, z + 0.6875D)); if(pY) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.3125D, y + 0.6875D, z + 0.3125D, x + 0.6875D, y + 1.0D, z + 0.6875D)); @@ -134,7 +174,7 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo if(nZ) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.3125D, y + 0.3125D, z + 0.0D, x + 0.6875D, y + 0.6875D, z + 0.3125D)); } } - + for(AxisAlignedBB bb : bbs) { if(entityBounding.intersectsWith(bb)) { list.add(bb); @@ -142,6 +182,12 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo } } + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { @@ -164,7 +210,7 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, type); boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, type); int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); - + if(mask == 0) { this.setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F); } else if(mask == 0b100000 || mask == 0b010000 || mask == 0b110000) { @@ -174,7 +220,7 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { this.setBlockBounds(0.3125F, 0.3125F, 0F, 0.6875F, 0.6875F, 1F); } else { - + this.setBlockBounds( nX ? 0F : 0.3125F, nY ? 0F : 0.3125F, @@ -185,23 +231,23 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo } } } - + public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir, FluidType type) { return Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, type); } @Override public void printHook(Pre event, World world, int x, int y, int z) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(!(te instanceof TileEntityPipeBaseNT)) return; - + TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; - + List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/FluidSwitch.java b/src/main/java/com/hbm/blocks/network/FluidSwitch.java new file mode 100644 index 000000000..77ed6519d --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/FluidSwitch.java @@ -0,0 +1,87 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityFluidValve; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +import java.util.ArrayList; +import java.util.List; + +public class FluidSwitch extends FluidDuctBase implements ILookOverlay { + + @SideOnly(Side.CLIENT) + private IIcon iconOn; + + public FluidSwitch(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_on"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_off"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 1 ? iconOn : blockIcon; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityFluidValve(); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + boolean on = world.isBlockIndirectlyGettingPowered(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + + boolean update = false; + + if(on && meta == 0) { + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); + update = true; + } + + if(!on && meta == 1) { + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); + update = true; + } + + if(update) { + TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); + te.updateState(); + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityFluidValve)) + return; + + TileEntityFluidValve duct = (TileEntityFluidValve) te; + + List text = new ArrayList(); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/network/FluidValve.java b/src/main/java/com/hbm/blocks/network/FluidValve.java new file mode 100644 index 000000000..7c05600e8 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/FluidValve.java @@ -0,0 +1,87 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityFluidValve; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +import java.util.ArrayList; +import java.util.List; + +public class FluidValve extends FluidDuctBase implements ILookOverlay { + + @SideOnly(Side.CLIENT) + private IIcon iconOn; + + public FluidValve(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_on"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_off"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 1 ? iconOn : blockIcon; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityFluidValve(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) return true; + + if(super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ)) return true; + + if(!player.isSneaking()) { + int meta = world.getBlockMetadata(x, y, z); + TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); + if(meta == 0) { + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); + } else { + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); + } + + te.updateState(); + + return true; + } else { + return false; + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityFluidValve)) + return; + + TileEntityFluidValve duct = (TileEntityFluidValve) te; + + List text = new ArrayList(); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/network/IBlockFluidDuct.java b/src/main/java/com/hbm/blocks/network/IBlockFluidDuct.java index c222b595c..c537a374d 100644 --- a/src/main/java/com/hbm/blocks/network/IBlockFluidDuct.java +++ b/src/main/java/com/hbm/blocks/network/IBlockFluidDuct.java @@ -1,7 +1,6 @@ package com.hbm.blocks.network; import com.hbm.inventory.fluid.FluidType; - import net.minecraft.world.World; public interface IBlockFluidDuct { diff --git a/src/main/java/com/hbm/blocks/network/PylonBase.java b/src/main/java/com/hbm/blocks/network/PylonBase.java index f2bf0c675..95a2476f7 100644 --- a/src/main/java/com/hbm/blocks/network/PylonBase.java +++ b/src/main/java/com/hbm/blocks/network/PylonBase.java @@ -2,10 +2,10 @@ package com.hbm.blocks.network; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.network.TileEntityPylonBase; - import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -17,28 +17,40 @@ public abstract class PylonBase extends BlockContainer implements ITooltipProvid @Override public void breakBlock(World world, int x, int y, int z, Block b, int m) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(te instanceof TileEntityPylonBase) { ((TileEntityPylonBase)te).disconnectAll(); } - + super.breakBlock(world, x, y, z, b, m); } - + @Override public int getRenderType(){ return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + TileEntityPylonBase te = (TileEntityPylonBase) world.getTileEntity(x, y, z); + return te.setColor(player.getHeldItem()); + } else { + return false; + } + } } diff --git a/src/main/java/com/hbm/blocks/network/PylonLarge.java b/src/main/java/com/hbm/blocks/network/PylonLarge.java index 395b27dd1..a81a1af5f 100644 --- a/src/main/java/com/hbm/blocks/network/PylonLarge.java +++ b/src/main/java/com/hbm/blocks/network/PylonLarge.java @@ -1,12 +1,9 @@ package com.hbm.blocks.network; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.network.TileEntityPylonBase; import com.hbm.tileentity.network.TileEntityPylonLarge; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -17,6 +14,8 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + public class PylonLarge extends BlockDummyable implements ITooltipProvider { public PylonLarge(Material mat) { @@ -25,7 +24,7 @@ public class PylonLarge extends BlockDummyable implements ITooltipProvider { @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntityPylonLarge(); return null; @@ -50,19 +49,19 @@ public class PylonLarge extends BlockDummyable implements ITooltipProvider { @Override public void breakBlock(World world, int x, int y, int z, Block b, int m) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(te instanceof TileEntityPylonBase) { ((TileEntityPylonBase)te).disconnectAll(); } - + super.breakBlock(world, x, y, z, b, m); } @Override protected int getMetaForCore(World world, int x, int y, int z, EntityPlayer player, int original) { - + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 180.0F + 0.5D) & 3; ForgeDirection dir = ForgeDirection.NORTH; @@ -79,7 +78,20 @@ public class PylonLarge extends BlockDummyable implements ITooltipProvider { if(i == 3) { dir = ForgeDirection.getOrientation(4); } - + return dir.ordinal() + offset; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + TileEntityPylonBase te = (TileEntityPylonBase) world.getTileEntity(pos[0], pos[1], pos[2]); + return te.setColor(player.getHeldItem()); + } else { + return false; + } + } } diff --git a/src/main/java/com/hbm/blocks/network/PylonMedium.java b/src/main/java/com/hbm/blocks/network/PylonMedium.java new file mode 100644 index 000000000..5f4e0957d --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/PylonMedium.java @@ -0,0 +1,65 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.network.TileEntityPylonBase; +import com.hbm.tileentity.network.TileEntityPylonMedium; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +import java.util.List; + +public class PylonMedium extends BlockDummyable implements ITooltipProvider { + + public PylonMedium(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityPylonMedium(); + return null; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Triple"); + list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "45m"); + } + + @Override + public int[] getDimensions() { + return new int[] {6, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block b, int m) { + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TileEntityPylonBase) ((TileEntityPylonBase)te).disconnectAll(); + super.breakBlock(world, x, y, z, b, m); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + TileEntityPylonBase te = (TileEntityPylonBase) world.getTileEntity(pos[0], pos[1], pos[2]); + return te.setColor(player.getHeldItem()); + } else { + return false; + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/PylonRedWire.java b/src/main/java/com/hbm/blocks/network/PylonRedWire.java index 79a44f541..8594cbb72 100644 --- a/src/main/java/com/hbm/blocks/network/PylonRedWire.java +++ b/src/main/java/com/hbm/blocks/network/PylonRedWire.java @@ -1,9 +1,6 @@ package com.hbm.blocks.network; -import java.util.List; - import com.hbm.tileentity.network.TileEntityPylon; - import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -11,6 +8,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import java.util.List; + public class PylonRedWire extends PylonBase { public PylonRedWire(Material material) { diff --git a/src/main/java/com/hbm/blocks/network/RadioTelex.java b/src/main/java/com/hbm/blocks/network/RadioTelex.java new file mode 100644 index 000000000..5d042ff63 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/RadioTelex.java @@ -0,0 +1,45 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.TileEntityRadioTelex; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class RadioTelex extends BlockDummyable { + + public RadioTelex() { + super(Material.wood); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityRadioTelex(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 0, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote && !player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + return true; + } else { + return !player.isSneaking(); + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchBase.java b/src/main/java/com/hbm/blocks/network/RadioTorchBase.java index f6255c271..35e69429c 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchBase.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchBase.java @@ -1,16 +1,9 @@ package com.hbm.blocks.network; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; -import com.hbm.inventory.gui.GUIScreenRadioTorch; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.network.TileEntityRadioTorchBase; -import com.hbm.util.I18nUtil; - import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -18,24 +11,22 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public abstract class RadioTorchBase extends BlockContainer implements IGUIProvider, ILookOverlay, ITooltipProvider { +import java.util.List; - @SideOnly(Side.CLIENT) protected IIcon iconOn; +/** + * Base class for all torch-like RTTY blocks + * @author hbm + */ +public abstract class RadioTorchBase extends BlockContainer implements IGUIProvider, ILookOverlay, ITooltipProvider { public RadioTorchBase() { super(Material.circuits); @@ -47,34 +38,34 @@ public abstract class RadioTorchBase extends BlockContainer implements IGUIProvi public int getRenderType() { return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { return true; } - + @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { return null; } - + @Override public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 vec0, Vec3 vec1) { - + int meta = world.getBlockMetadata(x, y, z) & 7; ForgeDirection dir = ForgeDirection.getOrientation(meta); - + this.setBlockBounds( dir.offsetX == 1 ? 0F : 0.375F, dir.offsetY == 1 ? 0F : 0.375F, @@ -87,12 +78,6 @@ public abstract class RadioTorchBase extends BlockContainer implements IGUIProvi return super.collisionRayTrace(world, x, y, z, vec0, vec1); } - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 0 ? this.blockIcon : this.iconOn; - } - @Override public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { return side; @@ -100,27 +85,31 @@ public abstract class RadioTorchBase extends BlockContainer implements IGUIProvi @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { - + int meta = world.getBlockMetadata(x, y, z); ForgeDirection dir = ForgeDirection.getOrientation(meta); Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); - - if(!b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) && !b.hasComparatorInputOverride() && (!b.renderAsNormalBlock() || b.isAir(world, x, y, z))) { + + if(!canBlockStay(world, x, y, z, dir, b)) { this.dropBlockAsItem(world, x, y, z, meta, 0); world.setBlockToAir(x, y, z); } } - + @Override public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { if(!super.canPlaceBlockOnSide(world, x, y, z, side)) return false; - + ForgeDirection dir = ForgeDirection.getOrientation(side); Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); - - return b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) || b.hasComparatorInputOverride() || (b.renderAsNormalBlock() && !b.isAir(world, x, y, z)); + + return canBlockStay(world, x, y, z, dir, b); } - + + public boolean canBlockStay(World world, int x, int y, int z, ForgeDirection dir, Block b) { + return b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) || b.hasComparatorInputOverride() || b.canProvidePower() || (b.renderAsNormalBlock() && !b.isAir(world, x, y, z)); + } + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote && !player.isSneaking()) { @@ -130,36 +119,9 @@ public abstract class RadioTorchBase extends BlockContainer implements IGUIProvi return !player.isSneaking(); } } - - @Override - @SideOnly(Side.CLIENT) - public void printHook(Pre event, World world, int x, int y, int z) { - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityRadioTorchBase) { - TileEntityRadioTorchBase radio = (TileEntityRadioTorchBase) te; - List text = new ArrayList(); - if(radio.channel != null && !radio.channel.isEmpty()) text.add(EnumChatFormatting.AQUA + "Freq: " + radio.channel); - text.add(EnumChatFormatting.RED + "Signal: " + radio.lastState); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } - } @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { addStandardInfo(stack, player, list, ext); } - - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityRadioTorchBase) - return new GUIScreenRadioTorch((TileEntityRadioTorchBase) te); - - return null; - } } diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java b/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java new file mode 100644 index 000000000..80bacd8c4 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java @@ -0,0 +1,79 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.container.ContainerCounterTorch; +import com.hbm.inventory.gui.GUICounterTorch; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.TileEntityRadioTorchCounter; +import com.hbm.util.Compat; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; + +public class RadioTorchCounter extends RadioTorchBase { + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(!world.isRemote && !player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return !player.isSneaking(); + } + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityRadioTorchCounter(); + } + + @Override + public boolean canBlockStay(World world, int x, int y, int z, ForgeDirection dir, Block b) { + if(b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) || (b.renderAsNormalBlock() && !b.isAir(world, x, y, z))) return true; + TileEntity te = Compat.getTileStandard(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + return te instanceof IInventory; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCounterTorch(player.inventory, (TileEntityRadioTorchCounter) world.getTileEntity(x, y, z)); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICounterTorch(player.inventory, (TileEntityRadioTorchCounter) world.getTileEntity(x, y, z)); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchCounter) { + TileEntityRadioTorchCounter radio = (TileEntityRadioTorchCounter) te; + List text = new ArrayList(); + + for(int i = 0; i < 3; i++) { + if(!radio.channel[i].isEmpty()) { + text.add(EnumChatFormatting.AQUA + "Freq " + (i + 1) + ": " + radio.channel[i]); + text.add(EnumChatFormatting.RED + "Signal " + (i + 1) + ": " + radio.lastCount[i]); + } + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java b/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java new file mode 100644 index 000000000..65d144ef9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java @@ -0,0 +1,83 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.gui.GUIScreenRadioTorchLogic; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityRadioTorchLogic; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +import java.util.ArrayList; +import java.util.List; + +public class RadioTorchLogic extends RadioTorchRWBase { + + public RadioTorchLogic() { + super(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":rtty_logic_off"); + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":rtty_logic_on"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + TileEntityRadioTorchLogic tile = new TileEntityRadioTorchLogic(); + tile.lastUpdate = world.getTotalWorldTime(); + return tile; + } + + @Override + public boolean canProvidePower() { + return true; + } + + @Override + public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int side) { + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityRadioTorchLogic) { + int state = ((TileEntityRadioTorchLogic) tile).lastState; + return state; + } + + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchLogic) { + TileEntityRadioTorchLogic radio = (TileEntityRadioTorchLogic) te; + List text = new ArrayList(); + if(radio.channel != null && !radio.channel.isEmpty()) text.add(EnumChatFormatting.AQUA + "Freq: " + radio.channel); + text.add(EnumChatFormatting.RED + "Signal: " + radio.lastState); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchLogic) + return new GUIScreenRadioTorchLogic((TileEntityRadioTorchLogic) te); + + return null; + } +} diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java b/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java new file mode 100644 index 000000000..c73f7ea5c --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java @@ -0,0 +1,60 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.gui.GUIScreenRadioTorch; +import com.hbm.tileentity.network.TileEntityRadioTorchBase; +import com.hbm.util.I18nUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +import java.util.ArrayList; +import java.util.List; + +/** + * Base class for the basic sender and receiver RTTY torch + * @author hbm + */ +public abstract class RadioTorchRWBase extends RadioTorchBase { + + @SideOnly(Side.CLIENT) protected IIcon iconOn; + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 0 ? this.blockIcon : this.iconOn; + } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchBase) { + TileEntityRadioTorchBase radio = (TileEntityRadioTorchBase) te; + List text = new ArrayList(); + if(radio.channel != null && !radio.channel.isEmpty()) text.add(EnumChatFormatting.AQUA + "Freq: " + radio.channel); + text.add(EnumChatFormatting.RED + "Signal: " + radio.lastState); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchBase) + return new GUIScreenRadioTorch((TileEntityRadioTorchBase) te); + + return null; + } +} diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchReceiver.java b/src/main/java/com/hbm/blocks/network/RadioTorchReceiver.java index 7ce90e43f..cc3c58986 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchReceiver.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchReceiver.java @@ -2,7 +2,6 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityRadioTorchReceiver; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -10,12 +9,12 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class RadioTorchReceiver extends RadioTorchBase { +public class RadioTorchReceiver extends RadioTorchRWBase { public RadioTorchReceiver() { super(); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -29,22 +28,22 @@ public class RadioTorchReceiver extends RadioTorchBase { tile.lastUpdate = world.getTotalWorldTime(); return tile; } - + @Override public boolean canProvidePower() { return true; } - + @Override public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int side) { - + TileEntity tile = world.getTileEntity(x, y, z); - + if(tile instanceof TileEntityRadioTorchReceiver) { int state = ((TileEntityRadioTorchReceiver) tile).lastState; return state; } - + return 0; } } diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchSender.java b/src/main/java/com/hbm/blocks/network/RadioTorchSender.java index 2e5a675d4..1a11b9b0e 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchSender.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchSender.java @@ -2,19 +2,18 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityRadioTorchSender; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class RadioTorchSender extends RadioTorchBase { +public class RadioTorchSender extends RadioTorchRWBase { public RadioTorchSender() { super(); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { diff --git a/src/main/java/com/hbm/blocks/network/Substation.java b/src/main/java/com/hbm/blocks/network/Substation.java index 7499992fd..6affdeb4e 100644 --- a/src/main/java/com/hbm/blocks/network/Substation.java +++ b/src/main/java/com/hbm/blocks/network/Substation.java @@ -1,13 +1,10 @@ package com.hbm.blocks.network; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyConductor; import com.hbm.tileentity.network.TileEntityPylonBase; import com.hbm.tileentity.network.TileEntitySubstation; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -17,6 +14,8 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + public class Substation extends BlockDummyable implements ITooltipProvider { public Substation(Material mat) { @@ -25,13 +24,13 @@ public class Substation extends BlockDummyable implements ITooltipProvider { @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntitySubstation(); - + if(meta >= 6) return new TileEntityProxyConductor(); - + return null; } @@ -43,13 +42,13 @@ public class Substation extends BlockDummyable implements ITooltipProvider { @Override public void breakBlock(World world, int x, int y, int z, Block b, int m) { - + TileEntity te = world.getTileEntity(x, y, z); - + if(te instanceof TileEntityPylonBase) { ((TileEntityPylonBase)te).disconnectAll(); } - + super.breakBlock(world, x, y, z, b, m); } @@ -72,4 +71,17 @@ public class Substation extends BlockDummyable implements ITooltipProvider { this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o + 1); this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o - 1); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + TileEntityPylonBase te = (TileEntityPylonBase) world.getTileEntity(pos[0], pos[1], pos[2]); + return te.setColor(player.getHeldItem()); + } else { + return false; + } + } } diff --git a/src/main/java/com/hbm/blocks/network/WireCoated.java b/src/main/java/com/hbm/blocks/network/WireCoated.java index 3e939327c..c96c68ad5 100644 --- a/src/main/java/com/hbm/blocks/network/WireCoated.java +++ b/src/main/java/com/hbm/blocks/network/WireCoated.java @@ -4,7 +4,6 @@ import com.hbm.render.block.ct.CT; import com.hbm.render.block.ct.CTStitchReceiver; import com.hbm.render.block.ct.IBlockCT; import com.hbm.tileentity.network.TileEntityCableBaseNT; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; diff --git a/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java new file mode 100644 index 000000000..2a5f8b9ff --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java @@ -0,0 +1,196 @@ +package com.hbm.blocks.rail; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.ParticleUtil; +import com.hbm.util.Tuple.Pair; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.block.material.Material; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public abstract class BlockRailWaypointSystem extends BlockDummyable implements IRailNTM { + + public List railDefs = new ArrayList(); + + public BlockRailWaypointSystem(Material mat) { + super(mat); + } + + /** Whether the train at position FROM can move towards the waypoint TO along the supplied railDef, also supplies world and core position */ + public boolean canCross(World world, int x, int y, int z, Vec3 from, Vec3 to, RailDef def) { + return true; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ); + double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; + Vec3 trainPos = Vec3.createVectorHelper(trainX, trainY, trainZ); + + //convert nodes to a list of links with in-world positions + Vec3 train = Vec3.createVectorHelper(trainX, trainY, trainZ); + Vec3 core = Vec3.createVectorHelper(cX + 0.5, cY, cZ + 0.5); + List>> links = new ArrayList(); + + for(RailDef def : railDefs) { + List> linkList = new ArrayList(); + links.add(linkList); + + for(int i = 0; i < def.nodes.size() - 1; i++) { + Vec3 vec1 = getPositionFromNode(world, x, y, z, core, def.nodes.get(i), meta); + Vec3 vec2 = getPositionFromNode(world, x, y, z, core, def.nodes.get(i + 1), meta); + ParticleUtil.spawnDroneLine(world, vec1.xCoord, vec1.yCoord, vec1.zCoord, vec2.xCoord - vec1.xCoord, vec2.yCoord - vec1.yCoord, vec2.zCoord - vec1.zCoord, 0xff0000); + linkList.add(new Pair(new Vec3[] {vec1, vec2}, def)); + } + } + + //find closest node + Pair closest = null; + Vec3 startingPos = null; + /** closest chain of link definitions */ + List> cDef = null; + double angularDiff = 0; + double linkAngle = 0; + double dist = Double.MAX_VALUE; + /** direction */ + boolean d = true; + + for(List> chain : links) { + for(Pair link : chain) { + Vec3[] array = link.getKey(); + Vec3 point = getClosestPointOnLink(array[0], array[1], train); + + if(point != null) { + Vec3 delta = point.subtract(train); + double length = delta.lengthVector(); + + if(!canCross(world, cX, cY, cZ, trainPos, point, link.getValue())) continue; + + linkAngle = EntityRailCarBase.generateYaw(array[1], array[0]); + angularDiff = BobMathUtil.angularDifference(linkAngle, -moveAngle); + if(angularDiff < -180) { angularDiff += 180; linkAngle += 180; d = false; } + if(angularDiff > 0) { angularDiff -= 180; linkAngle -= 180; d = false; } + + if(length < dist) { + closest = link; + startingPos = point; + cDef = chain; + dist = length; + } + } + } + } + + if(closest == null) { + return Vec3.createVectorHelper(trainX, trainY, trainZ); + } + + double distRemaining = speed; + boolean engaged = false; + Vec3 currentPos = startingPos; + for(int i = d ? 0 : cDef.size() - 1; d ? (i < cDef.size()) : (i >= 0); i += d ? 1 : -1) { + + Pair link = cDef.get(i); + Vec3[] array = link.getKey(); + + if(!engaged) { + if(link == closest) { + engaged = true; + } else { + continue; + } + } + + Vec3 nextNode = array[d?1:0]; + Vec3 delta = nextNode.subtract(currentPos); + + if(!canCross(world, cX, cY, cZ, currentPos, nextNode, link.getValue())) break; + + double len = delta.lengthVector(); + if(len >= distRemaining) { + info.overshoot = 0; + double newYaw = EntityRailCarBase.generateYaw(nextNode, currentPos); + if(Math.abs(BobMathUtil.angularDifference(newYaw, moveAngle)) < 45) info.yaw = (float) newYaw; + else info.yaw = (float) moveAngle; + delta.normalize(); + return Vec3.createVectorHelper(currentPos.xCoord - delta.xCoord * distRemaining / len, currentPos.yCoord - delta.yCoord * distRemaining / len, currentPos.zCoord - delta.zCoord * distRemaining / len); + } + + distRemaining -= len; + currentPos = nextNode; + } + + info.overshoot = distRemaining; + info.pos = new BlockPos(currentPos.xCoord, currentPos.yCoord, currentPos.zCoord); + + return currentPos; + } + + public Vec3 getClosestPointOnLink(Vec3 pointA, Vec3 pointB, Vec3 pointP) { + Vec3 ap = Vec3.createVectorHelper(pointP.xCoord - pointA.xCoord, 0, pointP.zCoord - pointA.zCoord); + Vec3 ab = Vec3.createVectorHelper(pointB.xCoord - pointA.xCoord, 0, pointB.zCoord - pointA.zCoord); + + double magAB = ab.xCoord * ab.xCoord + ab.zCoord * ab.zCoord; + double dotProd = ap.xCoord * ab.xCoord + ap.zCoord * ab.zCoord; + double dist = dotProd / magAB; + + if(dist < 0) return pointA; + if(dist > 1) return pointB; + if(dist < 0 || dist > 1) return null; + + return Vec3.createVectorHelper(pointA.xCoord + ab.xCoord * dist, pointA.yCoord + (pointB.yCoord - pointA.yCoord) * dist, pointA.zCoord + ab.zCoord * dist); + } + + /** Creates the in-world position for a node based on the node itself and the core position */ + public Vec3 getPositionFromNode(World world, int x, int y, int z, Vec3 core, Vec3 node, int meta) { + float rotation = 0; + if(meta == 12) rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + Vec3 copy = Vec3.createVectorHelper(node.xCoord, node.yCoord, node.zCoord); + copy.rotateAroundY(rotation); + return core.addVector(copy.xCoord, copy.yCoord, copy.zCoord); + } + + public class RailDef { + String name; + public List nodes = new ArrayList(); + + public RailDef(String name) { + this.name = name; + } + } +} diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 120c3b586..bd1d91f2f 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -17,7 +17,7 @@ public interface IRailNTM { * Inherently safer than simply adding the motion to the position and then snapping, since that may lead to derailing. * The motion has to be calculated from the train's rotation (rotated 180° when going backwards), the scalar doesn't matter since it's only used for determining orientation in a clear way. * Motion ends up being *-1 if the train is going in reverse, still pointing forwards despite the speed being negative. - * Also features a double[] wrapper with size 1 which holds the speed value that overshoots the rail. + * Also features RailContext which determines overshoot and the final yaw rotation * */ public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context); @@ -46,8 +46,10 @@ public interface IRailNTM { public static class MoveContext { public RailCheckType type; public double collisionBogieDistance; - public boolean collision = false; //if a buffer stop or similar applies - public double overshoot; //how much of the travel distance was cut short + /** if a buffer stop or similar applies */ + public boolean collision = false; + /** how much of the travel distance was cut short */ + public double overshoot; public MoveContext(RailCheckType type, double collisionBogieDistance) { this.type = type; diff --git a/src/main/java/com/hbm/blocks/rail/IRenderBlock.java b/src/main/java/com/hbm/blocks/rail/IRenderBlock.java new file mode 100644 index 000000000..7cf90e9fd --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/IRenderBlock.java @@ -0,0 +1,16 @@ +package com.hbm.blocks.rail; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public interface IRenderBlock { + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @SideOnly(Side.CLIENT) public void renderInventory(Tessellator tessellator, Block block, int metadata); + @SideOnly(Side.CLIENT) public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z); +} diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java index ac317b65d..861bda8c0 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -1,20 +1,28 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailNarrowCurve extends BlockDummyable implements IRailNTM { +public class RailNarrowCurve extends BlockDummyable implements IRailNTM, IRenderBlock { public RailNarrowCurve() { super(Material.iron); @@ -25,8 +33,6 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -141,4 +147,27 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM { this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.2, 0.2, 0.2); + GL11.glTranslated(2.5, -0.0625, -1.5); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 12) rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java index 624087974..45bf500c8 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -1,20 +1,28 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailNarrowStraight extends BlockDummyable implements IRailNTM { +public class RailNarrowStraight extends BlockDummyable implements IRailNTM, IRenderBlock { public RailNarrowStraight() { super(Material.iron); @@ -25,8 +33,6 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -112,4 +118,23 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z) { return TrackGauge.NARROW; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + float rotation = 0; + if(meta == 2 || meta == 3 || meta == 12 || meta == 13) rotation = 90F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java index bb503060a..07e07c6b2 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -1,19 +1,27 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardBuffer extends BlockDummyable implements IRailNTM { +public class RailStandardBuffer extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardBuffer() { super(Material.iron); @@ -24,8 +32,6 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -134,4 +140,36 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z) { return TrackGauge.STANDARD; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 12) rotation = (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java deleted file mode 100644 index 10bed1608..000000000 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ /dev/null @@ -1,201 +0,0 @@ -package com.hbm.blocks.rail; - -import com.hbm.blocks.BlockDummyable; -import com.hbm.lib.Library; -import com.hbm.util.fauxpointtwelve.BlockPos; - -import cpw.mods.fml.client.registry.RenderingRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class RailStandardCurve extends BlockDummyable implements IRailNTM { - - public RailStandardCurve() { - super(Material.iron); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return null; - } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - - @Override - public int getRenderType() { - return renderID; - } - - @Override - public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { - return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); - } - - @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { - return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); - } - - /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ - public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { - int[] pos = this.findCore(world, x, y, z); - if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); - int cX = pos[0]; - int cY = pos[1]; - int cZ = pos[2]; - int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; - ForgeDirection dir = ForgeDirection.getOrientation(meta); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - double turnRadius = 4D; - double axisDist = 4.5D; - - Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); - double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * axisDist; - double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * axisDist; - - Vec3 dist = Vec3.createVectorHelper(vec.xCoord - axisX, 0, vec.zCoord - axisZ); - dist = dist.normalize(); - dist.xCoord *= turnRadius; - dist.zCoord *= turnRadius; - - double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; - - if(speed == 0) { - info.dist(0).pos(new BlockPos(x, y, z)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); - } - - double angleDeg = Math.atan2(dist.xCoord, dist.zCoord) * 180D / Math.PI + 90; - if(dir == Library.NEG_X) angleDeg -= 90; - if(dir == Library.POS_X) angleDeg += 90; - if(dir == Library.POS_Z) angleDeg += 180; - angleDeg = MathHelper.wrapAngleTo180_double(angleDeg); - double length90Deg = turnRadius * Math.PI / 2D; - double angularChange = speed / length90Deg * 90D; - - ForgeDirection moveDir = ForgeDirection.UNKNOWN; - - if(Math.abs(motionX) > Math.abs(motionZ)) { - moveDir = motionX > 0 ? Library.POS_X : Library.NEG_X; - } else { - moveDir = motionZ > 0 ? Library.POS_Z : Library.NEG_Z; - } - - if(moveDir == dir || moveDir == rot.getOpposite()) { - angularChange *= -1; - } - - double effAngle = angleDeg + angularChange; - moveAngle += angularChange; - - if(effAngle > 90) { - double angleOvershoot = effAngle - 90D; - moveAngle -= angleOvershoot; - double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y + 0.1875, axisZ - dir.offsetZ * turnRadius); - } - - if(effAngle < 0) { - double angleOvershoot = -effAngle; - moveAngle -= angleOvershoot; - double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y + 0.1875, axisZ -rot.offsetZ * turnRadius); - } - - double radianChange = angularChange * Math.PI / 180D; - dist.rotateAroundY((float) radianChange); - - return Vec3.createVectorHelper(axisX + dist.xCoord, y + 0.1875, axisZ + dist.zCoord); - } - - @Override - public TrackGauge getGauge(World world, int x, int y, int z) { - return TrackGauge.STANDARD; - } - - @Override - public int[] getDimensions() { - return new int[] {0, 0, 4, 0, 4, 0}; - } - - @Override - public int getOffset() { - return 0; - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { - - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - dir = dir.getOpposite(); - - int dX = dir.offsetX; - int dZ = dir.offsetZ; - int rX = rot.offsetX; - int rZ = rot.offsetZ; - - return world.getBlock(x + dX, y, z + dZ).isReplaceable(world, x + dX, y, z + dZ) && - world.getBlock(x + rX, y, z + rZ).isReplaceable(world, x + rX, y, z + rZ) && - world.getBlock(x + dX + rX, y, z + dZ + rZ).isReplaceable(world, x + dX + rX, y, z + dZ + rZ) && - world.getBlock(x + dX + rX * 2, y, z + dZ + rZ * 2).isReplaceable(world, x + dX + rX * 2, y, z + dZ + rZ * 2) && - world.getBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ).isReplaceable(world, x + dX * 2 + rX, y, z + dZ * 2 + rZ) && - world.getBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2).isReplaceable(world, x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2) && - world.getBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ).isReplaceable(world, x + dX * 3 + rX, y, z + dZ * 3 + rZ) && - world.getBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2).isReplaceable(world, x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2) && - world.getBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3).isReplaceable(world, x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3) && - world.getBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3).isReplaceable(world, x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3) && - world.getBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3).isReplaceable(world, x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3) && - world.getBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4).isReplaceable(world, x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4) && - world.getBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4).isReplaceable(world, x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4); - } - - @Override - protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { - - BlockDummyable.safeRem = true; - - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - dir = dir.getOpposite(); - - int dX = dir.offsetX; - int dZ = dir.offsetZ; - int rX = rot.offsetX; - int rZ = rot.offsetZ; - - world.setBlock(x + dX, y, z + dZ, this, dir.ordinal(), 3); - world.setBlock(x + rX, y, z + rZ, this, rot.ordinal(), 3); - world.setBlock(x + dX + rX, y, z + dZ + rZ, this, rot.ordinal(), 3); - world.setBlock(x + dX + rX * 2, y, z + dZ + rZ * 2, this, rot.ordinal(), 3); - world.setBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ, this, dir.ordinal(), 3); - world.setBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2, this, dir.ordinal(), 3); - world.setBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ, this, dir.ordinal(), 3); - world.setBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2, this, dir.ordinal(), 3); - world.setBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3, this, rot.ordinal(), 3); - world.setBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3, this, rot.ordinal(), 3); - world.setBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3, this, dir.ordinal(), 3); - world.setBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4, this, rot.ordinal(), 3); - world.setBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4, this, rot.ordinal(), 3); - - BlockDummyable.safeRem = false; - } -} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java new file mode 100644 index 000000000..101c7801f --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java @@ -0,0 +1,234 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardCurveBase extends BlockDummyable implements IRailNTM, IRenderBlock { + + protected int width = 4; + + public RailStandardCurveBase() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + double turnRadius = width; + double axisDist = width + 0.5D; + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * axisDist; + double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * axisDist; + + Vec3 dist = Vec3.createVectorHelper(vec.xCoord - axisX, 0, vec.zCoord - axisZ); + dist = dist.normalize(); + dist.xCoord *= turnRadius; + dist.zCoord *= turnRadius; + + double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; + + if(speed == 0) { + info.dist(0).pos(new BlockPos(x, y, z)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + } + + double angleDeg = Math.atan2(dist.xCoord, dist.zCoord) * 180D / Math.PI + 90; + if(dir == Library.NEG_X) angleDeg -= 90; + if(dir == Library.POS_X) angleDeg += 90; + if(dir == Library.POS_Z) angleDeg += 180; + angleDeg = MathHelper.wrapAngleTo180_double(angleDeg); + double length90Deg = turnRadius * Math.PI / 2D; + double angularChange = speed / length90Deg * 90D; + + ForgeDirection moveDir = ForgeDirection.UNKNOWN; + + if(Math.abs(motionX) > Math.abs(motionZ)) { + moveDir = motionX > 0 ? Library.POS_X : Library.NEG_X; + } else { + moveDir = motionZ > 0 ? Library.POS_Z : Library.NEG_Z; + } + + if(moveDir == dir || moveDir == rot.getOpposite()) { + angularChange *= -1; + } + + double effAngle = angleDeg + angularChange; + moveAngle += angularChange; + + if(effAngle > 90) { + double angleOvershoot = effAngle - 90D; + moveAngle -= angleOvershoot; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * width + rot.offsetX * (width + 1), y, cZ - dir.offsetZ * width + rot.offsetZ * (width + 1))).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y + 0.1875, axisZ - dir.offsetZ * turnRadius); + } + + if(effAngle < 0) { + double angleOvershoot = -effAngle; + moveAngle -= angleOvershoot; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y + 0.1875, axisZ -rot.offsetZ * turnRadius); + } + + double radianChange = angularChange * Math.PI / 180D; + dist.rotateAroundY((float) radianChange); + + return Vec3.createVectorHelper(axisX + dist.xCoord, y + 0.1875, axisZ + dist.zCoord); + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, width, 0, width, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + return world.getBlock(x + dX, y, z + dZ).isReplaceable(world, x + dX, y, z + dZ) && + world.getBlock(x + rX, y, z + rZ).isReplaceable(world, x + rX, y, z + rZ) && + world.getBlock(x + dX + rX, y, z + dZ + rZ).isReplaceable(world, x + dX + rX, y, z + dZ + rZ) && + world.getBlock(x + dX + rX * 2, y, z + dZ + rZ * 2).isReplaceable(world, x + dX + rX * 2, y, z + dZ + rZ * 2) && + world.getBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ).isReplaceable(world, x + dX * 2 + rX, y, z + dZ * 2 + rZ) && + world.getBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2).isReplaceable(world, x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2) && + world.getBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ).isReplaceable(world, x + dX * 3 + rX, y, z + dZ * 3 + rZ) && + world.getBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2).isReplaceable(world, x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2) && + world.getBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3).isReplaceable(world, x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3).isReplaceable(world, x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3) && + world.getBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3).isReplaceable(world, x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4).isReplaceable(world, x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4) && + world.getBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4).isReplaceable(world, x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4); + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + world.setBlock(x + dX, y, z + dZ, this, dir.ordinal(), 3); + world.setBlock(x + rX, y, z + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX, y, z + dZ + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX * 2, y, z + dZ + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4, this, rot.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.3, 0.3, 0.3); + GL11.glRotated(45, 0, 1, 0); + GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(2, 0, 2); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java new file mode 100644 index 000000000..99c370760 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java @@ -0,0 +1,113 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardCurveWide7 extends RailStandardCurveBase { + + public RailStandardCurveWide7() { + super(); + this.width = 6; + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + return world.getBlock(x + dX, y, z + dZ).isReplaceable(world, x + dX, y, z + dZ) && + world.getBlock(x + rX, y, z + rZ).isReplaceable(world, x + rX, y, z + rZ) && + world.getBlock(x + dX + rX, y, z + dZ + rZ).isReplaceable(world, x + dX + rX, y, z + dZ + rZ) && + world.getBlock(x + dX + rX * 2, y, z + dZ + rZ * 2).isReplaceable(world, x + dX + rX * 2, y, z + dZ + rZ * 2) && + world.getBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ).isReplaceable(world, x + dX * 2 + rX, y, z + dZ * 2 + rZ) && + world.getBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2).isReplaceable(world, x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2) && + world.getBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ).isReplaceable(world, x + dX * 3 + rX, y, z + dZ * 3 + rZ) && + world.getBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2).isReplaceable(world, x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2) && + world.getBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3).isReplaceable(world, x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3).isReplaceable(world, x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3) && + world.getBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3).isReplaceable(world, x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4).isReplaceable(world, x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4) && + world.getBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4).isReplaceable(world, x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4); + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + world.setBlock(x + dX, y, z + dZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2, y, z + dZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + rX, y, z + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX, y, z + dZ + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX, y, z + dZ * 4 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 2, y, z + dZ * 4 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 2, y, z + dZ * 5 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 3, y, z + dZ * 5 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4, this, dir.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 4, y, z + dZ * 6 + rZ * 4, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 5, y, z + dZ * 5 + rZ * 5, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 6, y, z + dZ * 5 + rZ * 6, this, rot.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 5, y, z + dZ * 6 + rZ * 5, this, rot.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 6, y, z + dZ * 6 + rZ * 6, this, rot.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.225, 0.225, 0.225); + GL11.glRotated(45, 0, 1, 0); + GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(3, 0, 3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java new file mode 100644 index 000000000..bb48b111b --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java @@ -0,0 +1,148 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardCurveWide9 extends RailStandardCurveBase { + + public RailStandardCurveWide9() { + super(); + this.width = 8; + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + int[][] dim = new int[][] { + {1, 0}, + {2, 0}, + {0, 1}, + {1, 1}, + {2, 1}, + {3, 1}, + {4, 1}, + {2, 2}, + {3, 2}, + {4, 2}, + {5, 2}, + {4, 3}, + {5, 3}, + {5, 4}, + {6, 3}, + {6, 4}, + {7, 4}, + {6, 5}, + {7, 5}, + {6, 6}, + {7, 6}, + {7, 7}, + {7, 8}, + {8, 6}, + {8, 7}, + {8, 8}, + }; + + for(int[] array : dim) { + if(!world.getBlock(x + dX * array[0] + rX * array[1], y, z + dZ * array[0] + rZ * array[1]).isReplaceable(world, x + dX * array[0] + rX * array[1], y, z + dZ * array[0] + rZ * array[1])) return false; + } + + return true; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + int d = dir.ordinal(); + int r = rot.ordinal(); + + int[][] dim = new int[][] { + {1, 0, d}, + {2, 0, d}, + {0, 1, r}, + {1, 1, d}, + {2, 1, d}, + {3, 1, d}, + {4, 1, d}, + {2, 2, r}, + {3, 2, r}, + {4, 2, r}, + {5, 2, d}, + {4, 3, r}, + {5, 3, r}, + {5, 4, r}, + {6, 3, d}, + {6, 4, d}, + {7, 4, d}, + {6, 5, r}, + {7, 5, r}, + {6, 6, r}, + {7, 6, r}, + {7, 7, r}, + {7, 8, r}, + {8, 6, d}, + {8, 7, d}, + {8, 8, d}, + }; + + for(int[] array : dim) { + world.setBlock(x + dX * array[0] + rX * array[1], y, z + dZ * array[0] + rZ * array[1], this, array[2], 3); + } + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.175, 0.175, 0.175); + GL11.glRotated(45, 0, 1, 0); + GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(4, 0, 4); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java index d6911418c..214aac005 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -1,21 +1,29 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardRamp extends BlockDummyable implements IRailNTM { +public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardRamp() { super(Material.iron); @@ -24,6 +32,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5, 0.0, -1.5, 0.5, 0.5, 0.5)); this.bounding.add(AxisAlignedBB.getBoundingBox(0.5, 0.0, -1.5, 1.5, 0.7, 0.5)); this.bounding.add(AxisAlignedBB.getBoundingBox(1.5, 0.0, -1.5, 2.5, 0.9, 0.5)); + this.maxY = 0.999D; //item bounce prevention } @Override @@ -31,8 +40,6 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -135,4 +142,36 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), this, dir); MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, -1, 2, 2, 1, 0}, this, dir); } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index b68aedd68..3fc0ff745 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -1,20 +1,28 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardStraight extends BlockDummyable implements IRailNTM { +public class RailStandardStraight extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardStraight() { super(Material.iron); @@ -25,8 +33,6 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -117,4 +123,34 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z) { return TrackGauge.STANDARD; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java new file mode 100644 index 000000000..44ed16f6a --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java @@ -0,0 +1,152 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardStraightShort extends BlockDummyable implements IRailNTM, IRenderBlock { + + public RailStandardStraightShort() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 0, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + info.yaw(-90F); + } else { + targetX -= speed; + info.yaw(90F); + } + vec.xCoord = MathHelper.clamp_double(targetX, cX, cX + 1); + vec.yCoord = y + 0.1875; + vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 1 : -1), y, cZ)); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + info.yaw(0F); + } else { + targetZ -= speed; + info.yaw(180F); + } + vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; + vec.yCoord = y + 0.1875; + vec.zCoord = MathHelper.clamp_double(targetZ, cZ,cZ + 1); + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 1 : -1))); + } + + return vec; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.7, 0.7, 0.7); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java new file mode 100644 index 000000000..d35adb57d --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java @@ -0,0 +1,271 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.items.ModItems; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardSwitch extends BlockRailWaypointSystem implements IRenderBlock { + + @SideOnly(Side.CLIENT) private IIcon iconSign; + + public RailStandardSwitch() { + super(Material.iron); + + RailDef main = new RailDef("main"); + RailDef side = new RailDef("side"); + railDefs.add(main); + railDefs.add(side); + + main.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + + side.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-6.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-5.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-4.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-3.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-2.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-1.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-0.5, 0.1875, 4.25)); + side.nodes.add(Vec3.createVectorHelper(0.5, 0.1875, 3.9375)); + side.nodes.add(Vec3.createVectorHelper(1.5, 0.1875, 3.375)); + side.nodes.add(Vec3.createVectorHelper(2.5, 0.1875, 2.4625)); + side.nodes.add(Vec3.createVectorHelper(3.5, 0.1875, 1.75)); + side.nodes.add(Vec3.createVectorHelper(4.5, 0.1875, 1.1875)); + side.nodes.add(Vec3.createVectorHelper(5.5, 0.1875, 0.875)); + side.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.625)); + side.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + side.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconSign = iconRegister.registerIcon(RefStrings.MODID + ":rail_switch_sign"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityRailSwitch(); + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 7, 7, 1, 0}; + } + + @Override + public int getOffset() { + return 7; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + public boolean canCross(World world, int x, int y, int z, Vec3 from, Vec3 to, RailDef def) { + TileEntityRailSwitch tile = (TileEntityRailSwitch) world.getTileEntity(x, y, z); + if(tile == null) return true; + + ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata() - 10); + + if(dir == Library.POS_X) if(from.xCoord < to.xCoord) return true; + if(dir == Library.NEG_X) if(from.xCoord > to.xCoord) return true; + if(dir == Library.POS_Z) if(from.zCoord < to.zCoord) return true; + if(dir == Library.NEG_Z) if(from.zCoord > to.zCoord) return true; + + if(dir == Library.POS_X) if(to.xCoord < x + 0.5 + 7) return true; + if(dir == Library.NEG_X) if(to.xCoord > x + 0.5 - 7) return true; + if(dir == Library.POS_Z) if(to.zCoord < z + 0.5 + 7) return true; + if(dir == Library.NEG_Z) if(to.zCoord > z + 0.5 - 7) return true; + + if(tile.isSwitched) { + if("side".equals(def.name)) return true; + } else { + if("main".equals(def.name)) return true; + } + + return false; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) return true; + if(player.isSneaking()) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.train) return false; + + int[] pos = this.findCore(world, x, y, z); + + if(pos != null) { + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + sw.isSwitched = !sw.isSwitched; + sw.markDirty(); + world.markBlockForUpdate(pos[0], pos[1], pos[2]); + } + } + + return true; + } + + @Override + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return super.snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + if(!super.checkRequirement(world, x, y, z, dir, o)) return false; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) if(!world.getBlock(x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2).isReplaceable(world, x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2)) return false; + for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3).isReplaceable(world, x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3)) return false; + if(!world.getBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4).isReplaceable(world, x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4)) return false; + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i)).isReplaceable(world, x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i))) return false; + if(!world.getBlock(x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5).isReplaceable(world, x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5)) return false; + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i)).isReplaceable(world, x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i))) return false; + + return true; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) world.setBlock(x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2, this, rot.ordinal(), 3); + for(int i = 0; i < 2; i++) world.setBlock(x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4, this, rot.ordinal(), 3); + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i), this, dir.ordinal(), 3); + world.setBlock(x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5, this, rot.ordinal(), 3); + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i), this, dir.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, -0.1875); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.1, 0.1, 0.1); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, rotation, true); + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); + } + + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } + + public static class TileEntityRailSwitch extends TileEntity { + public boolean isSwitched = false; + + @Override public boolean canUpdate() { return false; } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.isSwitched = nbt.getBoolean("isSwitched"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isSwitched", this.isSwitched); + } + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java new file mode 100644 index 000000000..25cc227e1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java @@ -0,0 +1,237 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; +import com.hbm.items.ModItems; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardSwitchFlipped extends BlockRailWaypointSystem implements IRenderBlock { + + @SideOnly(Side.CLIENT) private IIcon iconSign; + + public RailStandardSwitchFlipped() { + super(Material.iron); + + RailDef main = new RailDef("main"); + RailDef side = new RailDef("side"); + railDefs.add(main); + railDefs.add(side); + + main.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + + side.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-6.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-5.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-4.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-3.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-2.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-1.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-0.5, 0.1875, -3.25)); + side.nodes.add(Vec3.createVectorHelper(0.5, 0.1875, -2.9375)); + side.nodes.add(Vec3.createVectorHelper(1.5, 0.1875, -2.375)); + side.nodes.add(Vec3.createVectorHelper(2.5, 0.1875, -1.4625)); + side.nodes.add(Vec3.createVectorHelper(3.5, 0.1875, -0.75)); + side.nodes.add(Vec3.createVectorHelper(4.5, 0.1875, -0.1875)); + side.nodes.add(Vec3.createVectorHelper(5.5, 0.1875, 0.175)); + side.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.375)); + side.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + side.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconSign = iconRegister.registerIcon(RefStrings.MODID + ":rail_switch_sign_flipped"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityRailSwitch(); + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 7, 7, 1, 0}; + } + + @Override + public int getOffset() { + return 7; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + public boolean canCross(World world, int x, int y, int z, Vec3 from, Vec3 to, RailDef def) { + TileEntityRailSwitch tile = (TileEntityRailSwitch) world.getTileEntity(x, y, z); + if(tile == null) return true; + + ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata() - 10); + + if(dir == Library.POS_X) if(from.xCoord < to.xCoord) return true; + if(dir == Library.NEG_X) if(from.xCoord > to.xCoord) return true; + if(dir == Library.POS_Z) if(from.zCoord < to.zCoord) return true; + if(dir == Library.NEG_Z) if(from.zCoord > to.zCoord) return true; + + if(dir == Library.POS_X) if(to.xCoord < x + 0.5 + 7) return true; + if(dir == Library.NEG_X) if(to.xCoord > x + 0.5 - 7) return true; + if(dir == Library.POS_Z) if(to.zCoord < z + 0.5 + 7) return true; + if(dir == Library.NEG_Z) if(to.zCoord > z + 0.5 - 7) return true; + + if(tile.isSwitched) { + if("side".equals(def.name)) return true; + } else { + if("main".equals(def.name)) return true; + } + + return false; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) return true; + if(player.isSneaking()) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.train) return false; + + int[] pos = this.findCore(world, x, y, z); + + if(pos != null) { + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + sw.isSwitched = !sw.isSwitched; + sw.markDirty(); + world.markBlockForUpdate(pos[0], pos[1], pos[2]); + } + } + + return true; + } + + @Override + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return super.snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + if(!super.checkRequirement(world, x, y, z, dir, o)) return false; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) if(!world.getBlock(x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2).isReplaceable(world, x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2)) return false; + for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3).isReplaceable(world, x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3)) return false; + if(!world.getBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4).isReplaceable(world, x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4)) return false; + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i)).isReplaceable(world, x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i))) return false; + if(!world.getBlock(x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5).isReplaceable(world, x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5)) return false; + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i)).isReplaceable(world, x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i))) return false; + + return true; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) world.setBlock(x + dX * (2 + i) + rX * 1, y, z + dZ * (2 + i) + rZ * 1, this, rot.ordinal(), 3); + for(int i = 0; i < 2; i++) world.setBlock(x + dX * (4 + i) + rX * 2, y, z + dZ * (4 + i) + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 3, y, z + dZ * 5 + rZ * 3, this, rot.ordinal(), 3); + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (6 + j) + rX * (2 + i), y, z + dZ * (6 + j) + rZ * (2 + i), this, dir.ordinal(), 3); + world.setBlock(x + dX * 7 + rX * 4, y, z + dZ * 7 + rZ * 4, this, rot.ordinal(), 3); + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (8 + j) + rX * (3 + i), y, z + dZ * (8 + j) + rZ * (3 + i), this, dir.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.1, 0.1, 0.1); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, rotation, true); + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); + } + + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeBase.java b/src/main/java/com/hbm/blocks/siege/SiegeBase.java deleted file mode 100644 index 6a4d4fa23..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeBase.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.blocks.siege; - -import com.hbm.blocks.BlockBase; -import com.hbm.blocks.ModBlocks; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public abstract class SiegeBase extends BlockBase { - - private IIcon[] icons; - - public SiegeBase(Material material, int icons) { - super(material); - this.setTickRandomly(true); - this.icons = new IIcon[icons]; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { - - int h = x; - h *= 433 + y; - h *= 1709 + z; - h = Math.abs(h); - - h = (h >> 6); - - return this.getIcon(h % this.icons.length, 0); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - return icons[side % this.icons.length]; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister reg) { - - for(int i = 0; i < icons.length; i++) { - icons[i] = reg.registerIcon(this.getTextureName() + "_" + i); - } - } - - protected boolean solidNeighbors(World world, int x, int y, int z) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - if(b.getMaterial() == Material.air || !b.isNormalCube()) - return false; - } - - return true; - } - - protected boolean shouldReplace(Block b) { - return b != ModBlocks.siege_circuit && b != ModBlocks.siege_internal && b != ModBlocks.siege_shield; - } -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java b/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java deleted file mode 100644 index 5b6db18d0..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class SiegeCircuit extends SiegeBase { - - public SiegeCircuit(Material material) { - super(material, 2); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - if(!this.solidNeighbors(world, x, y, z)) { - world.setBlock(x, y, z, ModBlocks.siege_emergency); - } - } -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeHole.java b/src/main/java/com/hbm/blocks/siege/SiegeHole.java deleted file mode 100644 index e4edcbe7a..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeHole.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.List; -import java.util.Random; - -import com.hbm.blocks.BlockBase; -import com.hbm.entity.mob.siege.EntitySiegeZombie; -import com.hbm.handler.SiegeOrchestrator; - -import net.minecraft.block.material.Material; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class SiegeHole extends BlockBase { - - public SiegeHole(Material material) { - super(material); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - } - - @Override - public int tickRate(World world) { - return 90 + world.rand.nextInt(20); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - - if(SiegeOrchestrator.spawnThresholdEnabled(world) && SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getSpawnThreshold(world)) - return; - - List list = world.getEntitiesWithinAABB(EntitySiegeZombie.class, AxisAlignedBB.getBoundingBox(x - 5, y - 2, z - 5, x + 6, y + 3, z + 6)); - - if(list.size() < 2) { - EntitySiegeZombie zomb = new EntitySiegeZombie(world); - zomb.setPositionAndRotation(x + 0.5, y + 1, z + 0.5, 0.0F, 0.0F); - zomb.onSpawnWithEgg(null); - world.spawnEntityInWorld(zomb); - } - } -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeInternal.java b/src/main/java/com/hbm/blocks/siege/SiegeInternal.java deleted file mode 100644 index 669d42497..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeInternal.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class SiegeInternal extends SiegeBase { - - public SiegeInternal(Material material) { - super(material, 2); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - //if exposed to air, harden - if(!this.solidNeighbors(world, x, y, z)) { - world.setBlock(x, y, z, ModBlocks.siege_emergency); - return; - } - - int succ = 0; - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - //if the bordering block is either an internal or a circuit, increment - if(b == this || b == ModBlocks.siege_circuit) { - succ++; - } - } - - //all neighbors are internals or circuits? turn into a circuit - if(succ == 6) - world.setBlock(x, y, z, ModBlocks.siege_circuit); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/siege/SiegeShield.java b/src/main/java/com/hbm/blocks/siege/SiegeShield.java deleted file mode 100644 index 3080671bb..000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeShield.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.SiegeOrchestrator; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class SiegeShield extends SiegeBase { - - public SiegeShield(Material material) { - super(material, 4); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - if(SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getExpansionThreshold(world) || !SiegeOrchestrator.enableBaseSpawning(world) || !SiegeOrchestrator.siegeEnabled(world)) - return; - - int succ = 0; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - //if the block is already a siege block, do nothing and increment the success counter - if(!this.shouldReplace(b)) { - succ++; - - //...if not, check if a new shield can be placed, and try to do so - } else if(this.solidNeighbors(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) { - succ++; - world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, this); - } - } - - //if all the blocks are siege blocks now, replace with an internal - if(succ == 6) { - world.setBlock(x, y, z, ModBlocks.siege_internal); - - if(rand.nextInt(10) == 0) { - Block above = world.getBlock(x, y + 2, z); - Block surface = world.getBlock(x, y + 3, z); - - //if the block above the upper shield is solid and *above that* is air, place a hole - if(above.getMaterial() != Material.air && above.isNormalCube() && (surface.getMaterial() == Material.air || !surface.isNormalCube())) { - world.setBlock(x, y + 2, z, ModBlocks.siege_hole); - } - } - } - } -} diff --git a/src/main/java/com/hbm/blocks/test/TestBomb.java b/src/main/java/com/hbm/blocks/test/TestBomb.java deleted file mode 100644 index 377eda42d..000000000 --- a/src/main/java/com/hbm/blocks/test/TestBomb.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.hbm.blocks.test; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; - -public class TestBomb extends Block { - - int bombStartStrength = 40; - int bombStrengthA = 10; - protected int timer1 = 20; - int timer2 = timer1; - - public TestBomb(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) - { - super.onBlockAdded(world, x, y, z); - - if (world.isBlockIndirectlyGettingPowered(x, y, z)) - { - this.onBlockDestroyedByPlayer(world, x, y, z, 1); - world.setBlockToAir(x, y, z); - soos(world, x, y, z, bombStartStrength, bombStrengthA); - } - } - - /** - * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are - * their own) Args: x, y, z, neighbor Block - */ - @Override - public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) - { - if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) - { - this.onBlockDestroyedByPlayer(p_149695_1_, x, y, z, 1); - p_149695_1_.setBlockToAir(x, y, z); - soos(p_149695_1_, x, y, z, bombStartStrength, bombStrengthA); - } - } - - public boolean soos(World world, int x, int y, int z, int bombStartStrength, int bombStrengthA) - { - if (!world.isRemote) - explode(world,x,y,z, bombStartStrength, bombStrengthA); - world.spawnParticle("hugeexplosion", x, y, z, 0, 0, 0); //spawns a huge explosion particle - world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); //x,y,z,sound,volume,pitch - return false; - } - - public void explode(World world, int x, int y, int z, int bombStartStrength, int bombStrengthA) - { - int r = bombStartStrength; //radius of explosion (change this to bigger numbers for more epicness) - int r2 = r*r; //radius^2, for faster distance checks. (No sqrt needed for pythagoras) - int r22 = r2/2; //half of r^2, calculations outside the loop only get called once. Always pull out as many things from the loop as possible. - for (int xx = -r; xx < r; xx++) - { - int X = xx+x; //x coordinate we are working on - int XX = xx*xx; //more stuff for a faster distance check - for (int yy = -r; yy < r; yy++) - { - int Y = yy+y; //y coord - //int YY = XX+yy*yy*3; - int YY = XX+yy*yy*3; - for (int zz = -r; zz < r; zz++) - { - int Z = zz+z; //z coord - int ZZ = YY+zz*zz; //final= x*x+y*y+z*z. remind you of anything? - if (ZZ 0) { diff --git a/src/main/java/com/hbm/blocks/test/TestEventTester.java b/src/main/java/com/hbm/blocks/test/TestEventTester.java index 3491b2fb1..f81fa49ff 100644 --- a/src/main/java/com/hbm/blocks/test/TestEventTester.java +++ b/src/main/java/com/hbm/blocks/test/TestEventTester.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; + import com.hbm.main.MainRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -33,8 +34,16 @@ public class TestEventTester extends Block { public void onNeighborBlockChange(World p_149695_1_, int x1, int y1, int z1, Block p_149695_5_) { this.worldObj = p_149695_1_; + //Levers and buttons for some reason set meta and notify, and *then* notify again, meaning they will always fire this twice. + //Pressure plates, torches, redstone, etc. do not have this issue. if (p_149695_1_.isBlockIndirectlyGettingPowered(x1, y1, z1)) { + /*Component comp = new SiloComponent(this.worldObj.rand, x1, z1); + StructureBoundingBox box = comp.getBoundingBox(); + box.minY = 0; + box.maxY = 512; + comp.addComponentParts(p_149695_1_, this.worldObj.rand, box);*/ + //The laser thread is too dangerous to use right now //ThreadLaser laser = new ThreadLaser(p_149695_1_, x, y, z, "north"); //laser.start(); diff --git a/src/main/java/com/hbm/blocks/test/TestMissile.java b/src/main/java/com/hbm/blocks/test/TestMissile.java deleted file mode 100644 index 9ad7a0a0d..000000000 --- a/src/main/java/com/hbm/blocks/test/TestMissile.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.hbm.blocks.test; - -import com.hbm.entity.missile.EntityTestMissile; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class TestMissile extends Block { - - public TestMissile(Material p_i45394_1_) { - super(p_i45394_1_); - } - - @Override - public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) - { - if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) - { - EntityTestMissile missile = new EntityTestMissile(p_149695_1_, x + 150, z + 150, x + 0.5F, y + 2F, z + 0.5F); - p_149695_1_.spawnEntityInWorld(missile); - } - } - -} diff --git a/src/main/java/com/hbm/blocks/test/TestNuke.java b/src/main/java/com/hbm/blocks/test/TestNuke.java deleted file mode 100644 index f04e8d4b6..000000000 --- a/src/main/java/com/hbm/blocks/test/TestNuke.java +++ /dev/null @@ -1,263 +0,0 @@ -package com.hbm.blocks.test; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.bomb.TileEntityTestNuke; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentProtection; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class TestNuke extends BlockContainer { - - protected int timer1 = 20; - int timer2 = timer1; - public TileEntityTestNuke tetn = new TileEntityTestNuke(); - - private final Random field_149933_a = new Random(); - private static boolean keepInventory = false; - private Map field_77288_k = new HashMap(); - public TestNuke(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityTestNuke(); - - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.test_nuke); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityTestNuke tileentityfurnace = (TileEntityTestNuke)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityTestNuke entity = (TileEntityTestNuke) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) - { - TileEntityTestNuke entity = (TileEntityTestNuke) p_149695_1_.getTileEntity(x, y, z); - if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) - { - if(entity.getNukeTier() > 0) - { - this.onBlockDestroyedByPlayer(p_149695_1_, x, y, z, 1); - int pootis = entity.getNukeTier(); - entity.clearSlots(); - p_149695_1_.setBlockToAir(x, y, z); - switch(pootis) - { - case 1: - igniteTestBomb(p_149695_1_, x, y, z, 20); break; - case 2: - igniteTestBomb(p_149695_1_, x, y, z, 40); break; - case 999: - igniteTestBomb(p_149695_1_, x, y, z, 200); break; - } - } - } - } - - public boolean igniteTestBomb(World world, int x, int y, int z, int bombStartStrength) - { - if (!world.isRemote) - detonateTestBomb(world,x,y,z, bombStartStrength); - world.spawnParticle("hugeexplosion", x, y, z, 0, 0, 0); //spawns a huge explosion particle - world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); //x,y,z,sound,volume,pitch - return false; - } - - public void detonateTestBomb(World world, int x, int y, int z, int bombStartStrength) - { - //Rodol's awesome destruction code - int r = bombStartStrength; //radius of explosion (change this to bigger numbers for more epicness) - int r2 = r*r; //radius^2, for faster distance checks. (No sqrt needed for pythagoras) - int r22 = r2/2; //half of r^2, calculations outside the loop only get called once. Always pull out as many things from the loop as possible. - for (int xx = -r; xx < r; xx++) - { - int X = xx+x; //x coordinate we are working on - int XX = xx*xx; //more stuff for a faster distance check - for (int yy = -r; yy < r; yy++) - { - int Y = yy+y; //y coord - int YY = XX+yy*yy*3; - for (int zz = -r; zz < r; zz++) - { - int Z = zz+z; //z coord - int ZZ = YY+zz*zz; //final= x*x+y*y+z*z. remind you of anything? - if (ZZ 0) { + switch (args[0]) { + case "resetState": + PacketThreading.hasTriggered = false; + PacketThreading.clearCnt = 0; + return; + case "toggleThreadingStatus": + GeneralConfig.enablePacketThreading = !GeneralConfig.enablePacketThreading; // Force toggle. + PacketThreading.init(); // Reinit threads. + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Packet sending status toggled to " + GeneralConfig.enablePacketThreading + ".")); + return; + case "forceLock": + PacketThreading.lock.lock(); // oh my fucking god never do this please unless you really have to + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Packet thread lock acquired, this may freeze the main thread!")); + MainRegistry.logger.error("Packet thread lock acquired by {}, this may freeze the main thread!", sender.getCommandSenderName()); + return; + case "forceUnlock": + PacketThreading.lock.unlock(); + MainRegistry.logger.warn("Packet thread lock released by {}.", sender.getCommandSenderName()); + return; + case "info": + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + "NTM Packet Debugger v1.2")); + + if (PacketThreading.isTriggered() && GeneralConfig.enablePacketThreading) + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Packet Threading Errored, check log.")); + else if (GeneralConfig.enablePacketThreading) + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Packet Threading Active")); + else + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Packet Threading Inactive")); + + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Thread Pool Info")); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "# Threads (total): " + PacketThreading.threadPool.getPoolSize())); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "# Threads (core): " + PacketThreading.threadPool.getCorePoolSize())); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "# Threads (idle): " + (PacketThreading.threadPool.getPoolSize() - PacketThreading.threadPool.getActiveCount()))); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "# Threads (maximum): " + PacketThreading.threadPool.getMaximumPoolSize())); + + for (ThreadInfo thread : ManagementFactory.getThreadMXBean().dumpAllThreads(false, false)) + if (thread.getThreadName().startsWith(PacketThreading.threadPrefix)) { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + "Thread Name: " + thread.getThreadName())); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Thread ID: " + thread.getThreadId())); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Thread state: " + thread.getThreadState())); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Locked by: " + (thread.getLockOwnerName() == null ? "None" : thread.getLockName()))); + } + + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + "Packet Info: ")); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Amount total: " + totalCnt)); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Amount remaining: " + PacketThreading.threadPool.getQueue().size())); + + if (totalCnt != 0) + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "% Remaining to process: " + BobMathUtil.roundDecimal(((double) PacketThreading.threadPool.getQueue().size() / totalCnt) * 100, 2) + "%")); + + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Time spent waiting on thread(s) last tick: " + BobMathUtil.roundDecimal(TimeUnit.MILLISECONDS.convert(PacketThreading.nanoTimeWaited, TimeUnit.NANOSECONDS), 4) + "ms")); + return; + } + } + sender.addChatMessage(new ChatComponentText(getCommandUsage(sender))); + } +} diff --git a/src/main/java/com/hbm/commands/CommandRadiation.java b/src/main/java/com/hbm/commands/CommandRadiation.java new file mode 100644 index 000000000..90b4476d3 --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandRadiation.java @@ -0,0 +1,41 @@ +package com.hbm.commands; + +import com.hbm.handler.radiation.ChunkRadiationManager; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; + +public class CommandRadiation extends CommandBase { + + @Override + public String getCommandName() { + return "ntmrad"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/ntmrad "; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + + if(args.length == 1 && "clear".equals(args[0])) { + ChunkRadiationManager.proxy.clearSystem(sender.getEntityWorld()); + sender.addChatMessage(new ChatComponentText("Cleared radiation data!")); + return; + } + + if(args.length == 2 && "set".equals(args[0])) { + float amount = (float) this.parseDoubleBounded(sender, args[1], 0D, 100_000D); + ChunkRadiationManager.proxy.setRadiation(sender.getEntityWorld(), sender.getPlayerCoordinates().posX, sender.getPlayerCoordinates().posY, sender.getPlayerCoordinates().posZ, amount); + sender.addChatMessage(new ChatComponentText("Radiation set.")); + return; + } + + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + getCommandUsage(sender))); + } + +} diff --git a/src/main/java/com/hbm/commands/CommandReloadClient.java b/src/main/java/com/hbm/commands/CommandReloadClient.java new file mode 100644 index 000000000..6f0c9672a --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandReloadClient.java @@ -0,0 +1,128 @@ +package com.hbm.commands; + +import java.util.Collections; +import java.util.List; +import java.util.Map.Entry; +import java.util.stream.Collectors; + +import com.hbm.config.ClientConfig; +import com.hbm.config.ClientConfig.ConfigWrapper; + +import cpw.mods.fml.relauncher.FMLLaunchHandler; +import cpw.mods.fml.relauncher.Side; +import net.minecraft.command.CommandBase; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.client.ClientCommandHandler; + +public class CommandReloadClient extends CommandBase { + + public static void register() { + if(FMLLaunchHandler.side() != Side.CLIENT) return; + ClientCommandHandler.instance.registerCommand(new CommandReloadClient()); + } + + @Override + public String getCommandName() { + return "ntmclient"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/ntmclient help"; + } + + @Override + public boolean canCommandSenderUseCommand(ICommandSender sender) { + return sender instanceof EntityPlayer; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + + if(args.length < 1) throw new CommandException(getCommandUsage(sender)); + + String operator = args[0]; + + if("help".equals(operator)) { + + if(args.length >= 2) { + String command = args[1]; + if("help".equals(command)) sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Shows usage for /ntmclient subcommands.")); + if("list".equals(command)) sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Shows all client variable names and values.")); + if("reload".equals(command)) sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Reads client variables from the config file.")); + if("get".equals(command)) sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Shows value for the specified variable name.")); + if("set".equals(command)) sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Sets a variable's value and saves it to the config file.")); + } else { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "/ntmclient " + EnumChatFormatting.GOLD + "help " + EnumChatFormatting.RED + "")); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "/ntmclient " + EnumChatFormatting.GOLD + "list")); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "/ntmclient " + EnumChatFormatting.GOLD + "reload")); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "/ntmclient " + EnumChatFormatting.GOLD + "get " + EnumChatFormatting.RED + "")); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "/ntmclient " + EnumChatFormatting.GOLD + "set " + EnumChatFormatting.RED + " ")); + } + return; + } + + if("list".equals(operator)) { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "CLIENT VARIABLES:")); + for(Entry line : ClientConfig.configMap.entrySet()) { + sender.addChatMessage(new ChatComponentText(" " + EnumChatFormatting.GOLD + line.getKey() + ": " + EnumChatFormatting.YELLOW + line.getValue().value)); + } + return; + } + + if("reload".equals(operator)) { + ClientConfig.reload(); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Variables loaded from config file.")); + return; + } + + if(args.length < 2) throw new CommandException(getCommandUsage(sender)); + + String key = args[1]; + + if("get".equals(operator)) { + ConfigWrapper wrapper = ClientConfig.configMap.get(key); + if(wrapper == null) throw new CommandException("Key does not exist."); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + key + ": " + EnumChatFormatting.YELLOW + wrapper.value)); + return; + } + + if(args.length < 3) throw new CommandException(getCommandUsage(sender)); + + String value = args[2]; + + if("set".equals(operator)) { + ConfigWrapper wrapper = ClientConfig.configMap.get(key); + if(wrapper == null) throw new CommandException("Key does not exist."); + + try { + wrapper.update(value); + ClientConfig.refresh(); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Value updated.")); + } catch(Exception ex) { + throw new CommandException("Error parsing type for " + wrapper.value.getClass().getSimpleName() + ": " + ex.getLocalizedMessage()); + } + + return; + } + + throw new CommandException(getCommandUsage(sender)); + } + + @SuppressWarnings("rawtypes") + @Override + public List addTabCompletionOptions(ICommandSender sender, String[] args) { + if(!(sender instanceof EntityPlayer)) return Collections.emptyList(); + if(args.length < 1) return Collections.emptyList(); + if(args.length == 1) return getListOfStringsMatchingLastWord(args, "list", "reload", "get", "set"); + String operator = args[0]; + if(args.length == 2 && ("get".equals(operator) || "set".equals(operator))) { + return getListOfStringsFromIterableMatchingLastWord(args, ClientConfig.configMap.keySet().stream().map(String::valueOf).collect(Collectors.toList())); + } + return Collections.emptyList(); + } +} diff --git a/src/main/java/com/hbm/commands/CommandReloadRecipes.java b/src/main/java/com/hbm/commands/CommandReloadRecipes.java index ea28801d5..9068adb38 100644 --- a/src/main/java/com/hbm/commands/CommandReloadRecipes.java +++ b/src/main/java/com/hbm/commands/CommandReloadRecipes.java @@ -1,7 +1,10 @@ package com.hbm.commands; +import com.hbm.config.ItemPoolConfigJSON; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.util.ChatBuilder; +import com.hbm.util.DamageResistanceHandler; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; @@ -24,6 +27,10 @@ public class CommandReloadRecipes extends CommandBase { public void processCommand(ICommandSender sender, String[] args) { try { SerializableRecipe.initialize(); + ItemPoolConfigJSON.initialize(); + DamageResistanceHandler.init(); + Fluids.reloadFluids(); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Reload complete :)")); } catch(Exception ex) { sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush()); diff --git a/src/main/java/com/hbm/commands/CommandSatellites.java b/src/main/java/com/hbm/commands/CommandSatellites.java new file mode 100644 index 000000000..6b552b6f2 --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandSatellites.java @@ -0,0 +1,95 @@ +package com.hbm.commands; + +import com.hbm.items.ISatChip; +import com.hbm.items.ModItems; +import com.hbm.saveddata.SatelliteSavedData; +import com.hbm.saveddata.satellites.Satellite; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; + +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; + +public class CommandSatellites extends CommandBase { + @Override + public String getCommandName() { + return "ntmsatellites"; + } + + @Override + public String getCommandUsage(ICommandSender iCommandSender) { + return String.format(Locale.US, "%s/%s orbit %s- Launch the held satellite.\n" + "%s/%s descend %s- Deletes satellite by frequency.\n" + "%s/%s list %s- Lists all active satellites.", EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE, EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE, EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE); + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + if(!(sender instanceof EntityPlayer)) { + sender.addChatMessage(new ChatComponentTranslation("commands.satellite.should_be_run_as_player").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + return; + } + switch(args[0]) { + case "orbit": + EntityPlayer player = getCommandSenderAsPlayer(sender); + if(player.getHeldItem().getItem() instanceof ISatChip && player.getHeldItem().getItem() != ModItems.sat_chip) { + Satellite.orbit(player.worldObj, Satellite.getIDFromItem(player.getHeldItem().getItem()), ISatChip.getFreqS(player.getHeldItem()), player.posX, player.posY, player.posZ); + player.getHeldItem().stackSize -= 1; + sender.addChatMessage(new ChatComponentTranslation("commands.satellite.satellite_orbited").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GREEN))); + } else { + sender.addChatMessage(new ChatComponentTranslation("commands.satellite.not_a_satellite").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + } + break; + case "descend": + int freq = parseInt(sender, args[1]); + SatelliteSavedData data = SatelliteSavedData.getData(sender.getEntityWorld()); + if(data.sats.containsKey(freq)) { + data.sats.remove(freq); + data.markDirty(); + sender.addChatMessage(new ChatComponentTranslation("commands.satellite.satellite_descended").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GREEN))); + } else { + sender.addChatMessage(new ChatComponentTranslation("commands.satellite.no_satellite").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + } + break; + case "list": + data = SatelliteSavedData.getData(sender.getEntityWorld()); + if(data.sats.isEmpty()) { + ChatComponentTranslation message = new ChatComponentTranslation("commands.satellite.no_active_satellites"); + message.getChatStyle().setColor(EnumChatFormatting.RED); + sender.addChatMessage(message); + } else { + data.sats.forEach((listFreq, sat) -> { + String messageText = String.valueOf(listFreq) + " - " + sat.getClass().getSimpleName(); + ChatComponentText message = new ChatComponentText(messageText); + message.getChatStyle().setColor(EnumChatFormatting.GREEN); + sender.addChatMessage(message); + }); + } + break; + + } + } + + @SuppressWarnings("rawtypes") + @Override + public List addTabCompletionOptions(ICommandSender sender, String[] args) { + if(!(sender instanceof EntityPlayer)) { + return Collections.emptyList(); + } + if(args.length < 1) { + return Collections.emptyList(); + } + if(args.length == 1) { + return getListOfStringsMatchingLastWord(args, "orbit", "descend", "list"); + } + if(args[0].equals("descend")) { + return getListOfStringsFromIterableMatchingLastWord(args, SatelliteSavedData.getData(sender.getEntityWorld()).sats.keySet().stream().map(String::valueOf).collect(Collectors.toList())); + } + return Collections.emptyList(); + } +} diff --git a/src/main/java/com/hbm/util/SuicideThreadDump.java b/src/main/java/com/hbm/commands/SuicideThreadDump.java similarity index 95% rename from src/main/java/com/hbm/util/SuicideThreadDump.java rename to src/main/java/com/hbm/commands/SuicideThreadDump.java index 39ad116a2..3abb6c77c 100644 --- a/src/main/java/com/hbm/util/SuicideThreadDump.java +++ b/src/main/java/com/hbm/commands/SuicideThreadDump.java @@ -1,4 +1,4 @@ -package com.hbm.util; +package com.hbm.commands; import java.lang.management.ManagementFactory; import java.lang.management.MonitorInfo; @@ -21,8 +21,7 @@ public class SuicideThreadDump extends CommandBase { public static void register() { if(FMLLaunchHandler.side() != Side.CLIENT) return; - ClientCommandHandler handler = ClientCommandHandler.instance; - handler.registerCommand(new SuicideThreadDump()); + ClientCommandHandler.instance.registerCommand(new SuicideThreadDump()); } @Override diff --git a/src/main/java/com/hbm/config/ClientConfig.java b/src/main/java/com/hbm/config/ClientConfig.java new file mode 100644 index 000000000..9165031d4 --- /dev/null +++ b/src/main/java/com/hbm/config/ClientConfig.java @@ -0,0 +1,174 @@ +package com.hbm.config; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.main.MainRegistry; +import com.hbm.util.Compat; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +// https://youtube.com/shorts/XTHZWqZt_AI +public class ClientConfig { + + public static final Gson gson = new Gson(); + public static HashMap configMap = new HashMap(); + + //separate fields because they are a tad faster than using a hashmap and also because using them is less verbose + public static ConfigWrapper GEIGER_OFFSET_HORIZONTAL = new ConfigWrapper(0); + public static ConfigWrapper GEIGER_OFFSET_VERTICAL = new ConfigWrapper(0); + public static ConfigWrapper INFO_OFFSET_HORIZONTAL = new ConfigWrapper(0); + public static ConfigWrapper INFO_OFFSET_VERTICAL = new ConfigWrapper(0); + public static ConfigWrapper INFO_POSITION = new ConfigWrapper(0); + public static ConfigWrapper GUN_ANIMS_LEGACY = new ConfigWrapper(false); + public static ConfigWrapper GUN_MODEL_FOV = new ConfigWrapper(false); + public static ConfigWrapper GUN_VISUAL_RECOIL = new ConfigWrapper(true); + public static ConfigWrapper ITEM_TOOLTIP_SHOW_OREDICT = new ConfigWrapper(true); + public static ConfigWrapper ITEM_TOOLTIP_SHOW_CUSTOM_NUKE = new ConfigWrapper(true); + public static ConfigWrapper MAIN_MENU_WACKY_SPLASHES = new ConfigWrapper(true); + public static ConfigWrapper DODD_RBMK_DIAGNOSTIC = new ConfigWrapper(true); + public static ConfigWrapper RENDER_CABLE_HANG = new ConfigWrapper(true); + public static ConfigWrapper NUKE_HUD_FLASH = new ConfigWrapper(true); + public static ConfigWrapper NUKE_HUD_SHAKE = new ConfigWrapper(true); + public static ConfigWrapper RENDER_REEDS = new ConfigWrapper(!Compat.isModLoaded(Compat.MOD_ANG)); + + private static void initDefaults() { + configMap.put("GEIGER_OFFSET_HORIZONTAL", GEIGER_OFFSET_HORIZONTAL); + configMap.put("GEIGER_OFFSET_VERTICAL", GEIGER_OFFSET_VERTICAL); + configMap.put("INFO_OFFSET_HORIZONTAL", INFO_OFFSET_HORIZONTAL); + configMap.put("INFO_OFFSET_VERTICAL", INFO_OFFSET_VERTICAL); + configMap.put("INFO_POSITION", INFO_POSITION); + configMap.put("GUN_ANIMS_LEGACY", GUN_ANIMS_LEGACY); + configMap.put("GUN_MODEL_FOV", GUN_MODEL_FOV); + configMap.put("GUN_VISUAL_RECOIL", GUN_VISUAL_RECOIL); + configMap.put("ITEM_TOOLTIP_SHOW_OREDICT", ITEM_TOOLTIP_SHOW_OREDICT); + configMap.put("ITEM_TOOLTIP_SHOW_CUSTOM_NUKE", ITEM_TOOLTIP_SHOW_CUSTOM_NUKE); + configMap.put("MAIN_MENU_WACKY_SPLASHES", MAIN_MENU_WACKY_SPLASHES); + configMap.put("DODD_RBMK_DIAGNOSTIC", DODD_RBMK_DIAGNOSTIC); + configMap.put("RENDER_CABLE_HANG", RENDER_CABLE_HANG); + configMap.put("NUKE_HUD_FLASH", NUKE_HUD_FLASH); + configMap.put("NUKE_HUD_SHAKE", NUKE_HUD_SHAKE); + configMap.put("RENDER_REEDS", RENDER_REEDS); + } + + /** Initializes defaults, then reads the config file if it exists, then writes the config file. */ + public static void initConfig() { + initDefaults(); + File folder = MainRegistry.configHbmDir; + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmClient.json"); + if(config.exists()) readConfig(config); + refresh(); + } + + /** Writes over the config file using the running config. */ + public static void refresh() { + File folder = MainRegistry.configHbmDir; + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmClient.json"); + writeConfig(config); + } + + /** Writes over the running config using the config file. */ + public static void reload() { + File folder = MainRegistry.configHbmDir; + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmClient.json"); + if(config.exists()) readConfig(config); + } + + private static void readConfig(File config) { + + try { + JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); + + for(Entry line : configMap.entrySet()) { + + if(json.has(line.getKey())) { + JsonElement value = json.get(line.getKey()); + + try { + + //world's shittiest dynamic type parser + if(configMap.containsKey(line.getKey())) { + if(line.getValue().value instanceof String) configMap.get(line.getKey()).set(value.getAsString()); + if(line.getValue().value instanceof Float) configMap.get(line.getKey()).set(value.getAsFloat()); + if(line.getValue().value instanceof Double) configMap.get(line.getKey()).set(value.getAsDouble()); + if(line.getValue().value instanceof Integer) configMap.get(line.getKey()).set(value.getAsInt()); + if(line.getValue().value instanceof Boolean) configMap.get(line.getKey()).set(value.getAsBoolean()); + } + + //gson doesn't give me the option to read the raw value of a JsonPrimitive so we have to this shit effectively twice + //once to make sure that the parsed data matches with what's determined by the default, + //and a second time in the ConfigWrapper to add ease of reading the data without needing manual casts + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + } + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + + private static void writeConfig(File config) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(config)); + writer.setIndent(" "); + writer.beginObject(); + + writer.name("info").value("This file can be edited ingame using the /ntmclient command."); + + List keys = new ArrayList(); + keys.addAll(configMap.keySet()); + Collections.sort(keys); //readability is cool + + for(String key : keys) { + + ConfigWrapper wrapper = configMap.get(key); + Object value = wrapper.value; + //this sucks and i am too stupid to come up with something better + if(value instanceof String) writer.name(key).value((String) value); + if(value instanceof Float) writer.name(key).value((Float) value); + if(value instanceof Double) writer.name(key).value((Double) value); + if(value instanceof Integer) writer.name(key).value((Integer) value); + if(value instanceof Boolean) writer.name(key).value((Boolean) value); + } + + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + public static class ConfigWrapper { + public T value; + + public ConfigWrapper(T o) { + this.value = o; + } + + public T get() { return value; } + public void set(T value) { this.value = value; } + + public void update(String param) { + Object stupidBufferObject = null; // wahh wahh can't cast Float to T wahh wahh shut the fuck up + if(value instanceof String) stupidBufferObject = param; + if(value instanceof Float) stupidBufferObject = Float.parseFloat(param); + if(value instanceof Double) stupidBufferObject = Double.parseDouble(param); + if(value instanceof Integer) stupidBufferObject = Integer.parseInt(param); + if(value instanceof Boolean) stupidBufferObject = Boolean.parseBoolean(param); + if(stupidBufferObject != null) this.value = (T) stupidBufferObject; + } + } +} diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index 57495b68a..7fce253e8 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -1,5 +1,7 @@ package com.hbm.config; +import java.util.Locale; + import com.hbm.main.MainRegistry; import net.minecraftforge.common.config.Configuration; @@ -22,6 +24,9 @@ public class CommonConfig { public static final String CATEGORY_RADIATION = "13_radiation"; public static final String CATEGORY_HAZARD = "14_hazard"; public static final String CATEGORY_STRUCTURES = "15_structures"; + public static final String CATEGORY_POLLUTION = "16_pollution"; + public static final String CATEGORY_BIOMES = "17_biomes"; + public static final String CATEGORY_WEAPONS = "18_weapons"; public static final String CATEGORY_528 = "528"; public static final String CATEGORY_LBSM = "LESS BULLSHIT MODE"; @@ -30,7 +35,7 @@ public class CommonConfig { if(value < 0) { MainRegistry.logger.error("Fatal error config: Randomizer value has been below zero, despite bound having to be positive integer!"); - MainRegistry.logger.error(String.format("Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); + MainRegistry.logger.error(String.format(Locale.US, "Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); return def; } @@ -41,7 +46,7 @@ public class CommonConfig { if(value <= 0) { MainRegistry.logger.error("Fatal error config: Randomizer value has been set to zero, despite bound having to be positive integer!"); - MainRegistry.logger.error(String.format("Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); + MainRegistry.logger.error(String.format(Locale.US, "Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); return def; } @@ -71,11 +76,32 @@ public class CommonConfig { prop.comment = comment; return prop.getString(); } - + public static int[] createConfigIntList(Configuration config, String category, String name, String comment, int[] def){ + Property prop = config.get(category, name, def); + prop.comment = comment; + return prop.getIntList(); + } public static String[] createConfigStringList(Configuration config, String category, String name, String comment) { Property prop = config.get(category, name, new String[] { "PLACEHOLDER" }); prop.comment = comment; return prop.getStringList(); } + public static int parseStructureFlag(String flag) { + if(flag == null) flag = ""; + + switch(flag.toLowerCase(Locale.US)) { + case "true": + case "on": + case "yes": + return 1; + case "false": + case "off": + case "no": + return 0; + default: + return 2; + } + } + } diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java new file mode 100644 index 000000000..87c67dfd3 --- /dev/null +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -0,0 +1,285 @@ +package com.hbm.config; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map.Entry; +import java.util.Set; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import com.hbm.main.CraftingManager; +import com.hbm.main.MainRegistry; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class CustomMachineConfigJSON { + + public static final Gson gson = new Gson(); + public static HashMap customMachines = new HashMap(); + public static List niceList = new ArrayList(); + + public static void initialize() { + File folder = MainRegistry.configHbmDir; + + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmCustomMachines.json"); + + if(!config.exists()) { + writeDefault(config); + } + + readConfig(config); + } + + public static void writeDefault(File config) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(config)); + writer.setIndent(" "); + writer.beginObject(); + writer.name("machines").beginArray(); + + writer.beginObject(); + writer.name("recipeKey").value("paperPress"); + writer.name("unlocalizedName").value("paperPress"); + writer.name("localization").beginObject(); + writer.name("de_DE").value("Papierpresse"); + writer.endObject(); + writer.name("localizedName").value("Paper Press"); + writer.name("fluidInCount").value(1); + writer.name("fluidInCap").value(1_000); + writer.name("itemInCount").value(1); + writer.name("fluidOutCount").value(0); + writer.name("fluidOutCap").value(0); + writer.name("itemOutCount").value(1); + writer.name("generatorMode").value(false); + writer.name("maxPollutionCap").value(100); + writer.name("fluxMode").value(false); + writer.name("recipeSpeedMult").value(1.0D); + writer.name("recipeConsumptionMult").value(1.0D); + writer.name("maxPower").value(10_000L); + writer.name("maxHeat").value(0); + + writer.name("recipeShape").beginArray(); + writer.value("IPI").value("PCP").value("IPI"); + writer.endArray(); + + writer.name("recipeParts").beginArray().setIndent(""); + writer.value("I"); + SerializableRecipe.writeAStack(new OreDictStack(OreDictManager.STEEL.ingot()), writer); + writer.setIndent(""); + writer.value("P"); + SerializableRecipe.writeAStack(new OreDictStack(OreDictManager.STEEL.plate()), writer); + writer.setIndent(""); + writer.value("C"); + SerializableRecipe.writeAStack(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), writer); + writer.endArray().setIndent(" "); + + writer.name("components").beginArray(); + + for(int x = -1; x <= 1; x++) { + for(int y = -1; y <= 1; y++) { + for(int z = 0; z <= 2; z++) { + if(!(x == 0 && y == 0 && z == 1) && !(x == 0 && z == 0)) { + writer.beginObject().setIndent(""); + writer.name("block").value(y == 0 ? "hbm:tile.cm_sheet" : "hbm:tile.cm_block"); + writer.name("x").value(x); + writer.name("y").value(y); + writer.name("z").value(z); + writer.name("metas").beginArray(); + writer.value(0); + writer.endArray(); + writer.endObject().setIndent(" "); + } + } + } + } + + writer.beginObject().setIndent(""); + writer.name("block").value("hbm:tile.cm_port"); + writer.name("x").value(0); + writer.name("y").value(-1); + writer.name("z").value(0); + writer.name("metas").beginArray(); + writer.value(0); + writer.endArray(); + writer.endObject().setIndent(" "); + + writer.beginObject().setIndent(""); + writer.name("block").value("hbm:tile.cm_port"); + writer.name("x").value(0); + writer.name("y").value(1); + writer.name("z").value(0); + writer.name("metas").beginArray(); + writer.value(0); + writer.endArray(); + writer.endObject().setIndent(" "); + + writer.endArray(); + writer.endObject(); + + writer.endArray(); + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + public static void readConfig(File config) { + + try { + JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); + JsonArray machines = json.get("machines").getAsJsonArray(); + + for(int i = 0; i < machines.size(); i++) { + JsonObject machineObject = machines.get(i).getAsJsonObject(); + + MachineConfiguration configuration = new MachineConfiguration(); + configuration.recipeKey = machineObject.get("recipeKey").getAsString(); + configuration.unlocalizedName = machineObject.get("unlocalizedName").getAsString(); + configuration.localizedName = machineObject.get("localizedName").getAsString(); + if(machineObject.has("localization")) { + JsonObject localization = machineObject.get("localization").getAsJsonObject(); + for(Entry entry : localization.entrySet()) { + configuration.localization.put(entry.getKey(), entry.getValue().getAsString()); + } + } + configuration.fluidInCount = machineObject.get("fluidInCount").getAsInt(); + configuration.fluidInCap = machineObject.get("fluidInCap").getAsInt(); + configuration.itemInCount = machineObject.get("itemInCount").getAsInt(); + configuration.fluidOutCount = machineObject.get("fluidOutCount").getAsInt(); + configuration.fluidOutCap = machineObject.get("fluidOutCap").getAsInt(); + configuration.itemOutCount = machineObject.get("itemOutCount").getAsInt(); + configuration.generatorMode = machineObject.get("generatorMode").getAsBoolean(); + if(machineObject.has("maxPollutionCap")) configuration.maxPollutionCap = machineObject.get("maxPollutionCap").getAsInt(); + if(machineObject.has("fluxMode")) configuration.fluxMode = machineObject.get("fluxMode").getAsBoolean(); + configuration.recipeSpeedMult = machineObject.get("recipeSpeedMult").getAsDouble(); + configuration.recipeConsumptionMult = machineObject.get("recipeConsumptionMult").getAsDouble(); + configuration.maxPower = machineObject.get("maxPower").getAsLong(); + if(machineObject.has("maxHeat")) configuration.maxHeat = machineObject.get("maxHeat").getAsInt(); + + if(machineObject.has("recipeShape") && machineObject.has("recipeParts")) { + try { + JsonArray recipeShape = machineObject.get("recipeShape").getAsJsonArray(); + JsonArray recipeParts = machineObject.get("recipeParts").getAsJsonArray(); + + Object[] parts = new Object[recipeShape.size() + recipeParts.size()]; + + for(int j = 0; j < recipeShape.size(); j++) { + parts[j] = recipeShape.get(j).getAsString(); + } + + for(int j = 0; j < recipeParts.size(); j++) { + Object o = null; + + if(j % 2 == 0) { + o = recipeParts.get(j).getAsString().charAt(0); //god is dead and we killed him + } else { + AStack a = SerializableRecipe.readAStack(recipeParts.get(j).getAsJsonArray()); + + if(a instanceof ComparableStack) o = ((ComparableStack) a).toStack(); + if(a instanceof OreDictStack) o = ((OreDictStack) a).name; + } + + parts[j + recipeShape.size()] = o; + } + + ItemStack stack = new ItemStack(ModBlocks.custom_machine, 1, i + 100); + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setString("machineType", configuration.unlocalizedName); + + CraftingManager.addRecipeAuto(stack, parts); + } catch(Exception ex) { + MainRegistry.logger.error("Caught exception trying to parse core recipe for custom machine " + configuration.unlocalizedName); + MainRegistry.logger.error("recipeShape was" + machineObject.get("recipeShape").toString()); + MainRegistry.logger.error("recipeParts was" + machineObject.get("recipeParts").toString()); + } + } + + JsonArray components = machineObject.get("components").getAsJsonArray(); + configuration.components = new ArrayList(); + + for(int j = 0; j < components.size(); j++) { + JsonObject compObject = components.get(j).getAsJsonObject(); + ComponentDefinition compDef = new ComponentDefinition(); + compDef.block = (Block) Block.blockRegistry.getObject(compObject.get("block").getAsString()); + compDef.x = compObject.get("x").getAsInt(); + compDef.y = compObject.get("y").getAsInt(); + compDef.z = compObject.get("z").getAsInt(); + compDef.allowedMetas = new HashSet(); + compDef.metas = compObject.get("metas").getAsJsonArray(); + for(int k = 0; k < compDef.metas.size(); k++) { + compDef.allowedMetas.add(compDef.metas.get(k).getAsInt()); + } + + configuration.components.add(compDef); + } + + customMachines.put(configuration.unlocalizedName, configuration); + niceList.add(configuration); + } + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + + public static class MachineConfiguration { + + /** The name of the recipe set that this machine can handle */ + public String recipeKey; + /** The internal name of this machine */ + public String unlocalizedName; + /** The display name of this machine */ + public String localizedName; + public HashMap localization = new HashMap();; + + public int fluidInCount; + public int fluidInCap; + public int itemInCount; + public int fluidOutCount; + public int fluidOutCap; + public int itemOutCount; + /** Whether inputs should be used up when the process begins */ + public boolean generatorMode; + public int maxPollutionCap; + public boolean fluxMode; + public double recipeSpeedMult = 1D; + public double recipeConsumptionMult = 1D; + public long maxPower; + public int maxHeat; + + + /** Definitions of blocks that this machine is composed of */ + public List components; + + public static class ComponentDefinition { + public Block block; + public Set allowedMetas; + public JsonArray metas; + public int x; + public int y; + public int z; + } + } +} diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index eba732a84..65636f402 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -1,13 +1,5 @@ package com.hbm.config; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - import com.google.common.collect.HashBiMap; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -19,12 +11,19 @@ import com.hbm.inventory.RecipesCommon.MetaBlock; import com.hbm.main.MainRegistry; import com.hbm.util.Compat; import com.hbm.util.Tuple.Triplet; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.world.World; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + public class FalloutConfigJSON { public static final List entries = new ArrayList(); @@ -55,38 +54,56 @@ public class FalloutConfigJSON { private static void initDefault() { double woodEffectRange = 65D; - /* destroy all leaves within the radios, kill all leaves outside of it */ - entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); - entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); - entries.add(new FalloutEntry() .mB(ModBlocks.waste_leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); - entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); - entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange)); + /* petrify all wooden things possible */ entries.add(new FalloutEntry() .mB(Blocks.log) .prim(new Triplet(ModBlocks.waste_log, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.log2) .prim(new Triplet(ModBlocks.waste_log, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.red_mushroom_block).mM(10) .prim(new Triplet(ModBlocks.waste_log, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.brown_mushroom_block).mM(10) .prim(new Triplet(ModBlocks.waste_log, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.red_mushroom_block) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.brown_mushroom_block) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mB(Blocks.snow_layer) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.planks) .prim(new Triplet(ModBlocks.waste_planks, 0, 1)) .max(woodEffectRange)); + /* if it can't be petrified, destroy it */ + entries.add(new FalloutEntry() .mMa(Material.wood) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + /* destroy all leaves within the radios, kill all leaves outside of it */ + entries.add(new FalloutEntry() .mMa(Material.leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mMa(Material.plants) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mMa(Material.vine) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mB(ModBlocks.waste_leaves) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mB(Blocks.leaves) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange - 5D)); + entries.add(new FalloutEntry() .mB(Blocks.leaves2) .prim(new Triplet(ModBlocks.waste_leaves, 0, 1)) .min(woodEffectRange - 5D)); + + entries.add(new FalloutEntry() .mB(ModBlocks.glyphid_base) .prim(new Triplet(ModBlocks.glyphid_base, 2, 1))); + entries.add(new FalloutEntry() .mB(ModBlocks.glyphid_spawner) .prim(new Triplet(ModBlocks.glyphid_spawner, 2, 1))); - FalloutEntry stoneCore = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield, 1, 1)).max(5).sol(true); - FalloutEntry stoneInner = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield, 0, 1)).min(5).max(15).sol(true); - FalloutEntry stoneOuter = new FalloutEntry().prim(new Triplet(ModBlocks.sellafield_slaked, 0, 1)).min(15).max(50).sol(true); + entries.add(new FalloutEntry().mB(Blocks.mossy_cobblestone).prim(new Triplet(Blocks.coal_ore, 0, 1))); + entries.add(new FalloutEntry().mB(ModBlocks.ore_nether_uranium).prim(new Triplet(ModBlocks.ore_nether_schrabidium, 0, 1), new Triplet(ModBlocks.ore_nether_uranium_scorched, 0, 99))); - entries.add(stoneCore.clone().mB(Blocks.stone)); - entries.add(stoneInner.clone().mB(Blocks.stone)); - entries.add(stoneOuter.clone().mB(Blocks.stone)); - entries.add(stoneCore.clone().mB(Blocks.gravel)); - entries.add(stoneInner.clone().mB(Blocks.gravel)); - entries.add(stoneOuter.clone().mB(Blocks.gravel)); - /* recontaminate slaked sellafield */ - entries.add(stoneCore.clone().mB(ModBlocks.sellafield_slaked)); - entries.add(stoneInner.clone().mB(ModBlocks.sellafield_slaked)); + Block deepslate = Compat.tryLoadBlock(Compat.MOD_EF, "deepslate"); + Block stone = Compat.tryLoadBlock(Compat.MOD_EF, "stone"); + + for(int i = 1; i <= 10; i++) { + int m = 10 - i; + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 3), new Triplet(ModBlocks.ore_sellafield_emerald, m, 2)) .c(0.5) .max(i * 5).sol(true).mB(Blocks.coal_ore)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_diamond, m, 1)) .c(0.2) .max(i * 5).sol(true).mB(ModBlocks.ore_lignite)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_emerald, m, 1)) .max(i * 5).sol(true).mB(ModBlocks.ore_beryllium)); + if(m > 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); + if(m > 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_radgem, m, 1)) .max(i * 5).sol(true).mB(Blocks.diamond_ore)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(Blocks.bedrock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(ModBlocks.ore_bedrock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(ModBlocks.ore_bedrock_oil)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(ModBlocks.sellafield_bedrock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.iron)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.rock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.sand)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.ground)); + if(i <= 9) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.grass)); + if(deepslate != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mB(deepslate)); + if(stone != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mB(stone)); + } - entries.add(new FalloutEntry() - .mB(Blocks.grass) - .prim(new Triplet(ModBlocks.waste_earth, 0, 1))); entries.add(new FalloutEntry() .mB(Blocks.mycelium) .prim(new Triplet(ModBlocks.waste_mycelium, 0, 1))); @@ -101,40 +118,6 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry() .mB(Blocks.clay) .prim(new Triplet(Blocks.hardened_clay, 0, 1))); - entries.add(new FalloutEntry() - .mB(Blocks.mossy_cobblestone) - .prim(new Triplet(Blocks.coal_ore, 0, 1))); - entries.add(new FalloutEntry() - .mB(Blocks.coal_ore) - .prim(new Triplet(Blocks.diamond_ore, 0, 3), new Triplet(Blocks.emerald_ore, 0, 2)) - .c(0.5)); - entries.add(new FalloutEntry() - .mB(ModBlocks.ore_lignite) - .prim(new Triplet(Blocks.diamond_ore, 0, 1)) - .c(0.2)); - entries.add(new FalloutEntry() - .mB(ModBlocks.ore_uranium) - .prim(new Triplet(ModBlocks.ore_schrabidium, 0, 1), new Triplet(ModBlocks.ore_uranium_scorched, 0, 99))); - entries.add(new FalloutEntry() - .mB(ModBlocks.ore_nether_uranium) - .prim(new Triplet(ModBlocks.ore_nether_schrabidium, 0, 1), new Triplet(ModBlocks.ore_nether_uranium_scorched, 0, 99))); - entries.add(new FalloutEntry() - .mB(ModBlocks.ore_gneiss_uranium) - .prim(new Triplet(ModBlocks.ore_gneiss_schrabidium, 0, 1), new Triplet(ModBlocks.ore_gneiss_uranium_scorched, 0, 99))); - - /// COMPAT /// - Block deepslate = Compat.tryLoadBlock(Compat.MOD_EF, "deepslate"); - if(deepslate != null) { //identical to stone - entries.add(stoneCore.clone().mB(deepslate)); - entries.add(stoneInner.clone().mB(deepslate)); - entries.add(stoneOuter.clone().mB(deepslate)); - } - Block stone = Compat.tryLoadBlock(Compat.MOD_EF, "stone"); - if(stone != null) { //identical to stone - entries.add(stoneCore.clone().mB(stone)); - entries.add(stoneInner.clone().mB(stone)); - entries.add(stoneOuter.clone().mB(stone)); - } } private static void writeDefault(File file) { @@ -190,7 +173,9 @@ public class FalloutConfigJSON { private double primaryChance = 1.0D; private double minDist = 0.0D; private double maxDist = 100.0D; + private double falloffStart = 0.9D; + /** Whether the depth value should be decremented when this block is converted */ private boolean isSolid = false; public FalloutEntry clone() { @@ -203,6 +188,7 @@ public class FalloutConfigJSON { entry.sec(secondaryBlocks); entry.min(minDist); entry.max(maxDist); + entry.fo(falloffStart); entry.sol(isSolid); return entry; @@ -218,35 +204,35 @@ public class FalloutConfigJSON { public FalloutEntry c(double chance) { this.primaryChance = chance; return this; } public FalloutEntry min(double min) { this.minDist = min; return this; } public FalloutEntry max(double max) { this.maxDist = max; return this; } + public FalloutEntry fo(double falloffStart) { this.falloffStart = falloffStart; return this; } public FalloutEntry sol(boolean solid) { this.isSolid = solid; return this; } - public boolean eval(World world, int x, int y, int z, Block b, int meta, double dist) { - + public boolean eval(World world, int x, int y, int z, Block b, int meta, double dist, Block originalBlock, int originalMeta) { + + if(dist > maxDist || dist < minDist) return false; if(matchesBlock != null && b != matchesBlock) return false; if(matchesMaterial != null && b.getMaterial() != matchesMaterial) return false; if(matchesMeta != -1 && meta != matchesMeta) return false; if(matchesOpaque && !b.isOpaqueCube()) return false; - if(dist > maxDist || dist < minDist) return false; + if(dist > maxDist * falloffStart && Math.abs(world.rand.nextGaussian()) < Math.pow((dist - maxDist * falloffStart) / (maxDist - maxDist * falloffStart), 2D) * 3D) return false; + + MetaBlock conversion = chooseRandomOutcome((primaryChance == 1D || rand.nextDouble() < primaryChance) ? primaryBlocks : secondaryBlocks); - if(primaryChance == 1D || rand.nextDouble() < primaryChance) { + if(conversion != null) { + if(conversion.block == ModBlocks.sellafield_slaked && originalBlock == ModBlocks.sellafield_slaked && conversion.meta <= originalMeta) return false; + if(conversion.block == ModBlocks.sellafield_bedrock && originalBlock == ModBlocks.sellafield_bedrock && conversion.meta <= originalMeta) return false; + if(originalBlock == ModBlocks.sellafield_bedrock && conversion.block != ModBlocks.sellafield_bedrock) return false; + if(y == 0 && conversion.block != ModBlocks.sellafield_bedrock) return false; - if(primaryBlocks == null) return false; - - MetaBlock block = chooseRandomOutcome(primaryBlocks); - world.setBlock(x, y, z, block.block, block.meta, 3); - return true; - - } else { - - if(secondaryBlocks == null) return false; - - MetaBlock block = chooseRandomOutcome(secondaryBlocks); - world.setBlock(x, y, z, block.block, block.meta, 3); + world.setBlock(x, y, z, conversion.block, conversion.meta, 3); return true; } + + return false; } private MetaBlock chooseRandomOutcome(Triplet[] blocks) { + if(blocks == null) return null; int weight = 0; @@ -291,7 +277,7 @@ public class FalloutConfigJSON { if(minDist != 0.0D) writer.name("minimumDistancePercent").value(minDist); if(maxDist != 100.0D) writer.name("maximumDistancePercent").value(maxDist); - + if(falloffStart != 0.9D) writer.name("falloffStartFactor").value(falloffStart); } private static FalloutEntry readEntry(JsonElement recipe) { @@ -313,6 +299,7 @@ public class FalloutConfigJSON { if(obj.has("minimumDistancePercent")) entry.min(obj.get("minimumDistancePercent").getAsDouble()); if(obj.has("maximumDistancePercent")) entry.max(obj.get("maximumDistancePercent").getAsDouble()); + if(obj.has("falloffStartFactor")) entry.fo(obj.get("falloffStartFactor").getAsDouble()); return entry; } diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 97bdee342..916bd9e9c 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -5,11 +5,16 @@ import net.minecraftforge.common.config.Configuration; public class GeneralConfig { public static boolean enableThermosPreventer = true; - + + public static boolean enablePacketThreading = true; + public static int packetThreadingCoreCount = 1; + public static int packetThreadingMaxCount = 1; + public static boolean packetThreadingErrorBypass = false; + public static boolean enableDebugMode = true; public static boolean enableMycelium = false; public static boolean enablePlutoniumOre = false; - public static boolean enableDungeons = true; + public static int enableDungeons = 2; public static boolean enableMDOres = true; public static boolean enableMines = true; public static boolean enableRad = true; @@ -26,13 +31,21 @@ public class GeneralConfig { public static boolean enableRenderDistCheck = true; public static boolean enableReEval = true; public static boolean enableSilentCompStackErrors = true; - public static boolean enableChunkyNEIHandler = true; public static boolean enableSkyboxes = true; public static boolean enableImpactWorldProvider = true; public static boolean enableStatReRegistering = true; public static boolean enableKeybindOverlap = true; + public static boolean enableFluidContainerCompat = true; + public static boolean enableMOTD = true; + public static boolean enableGuideBook = true; + public static boolean enableSteamParticles = true; + public static boolean enableSoundExtension = true; + public static boolean enableMekanismChanges = true; + public static int normalSoundChannels = 200; public static int hintPos = 0; + public static boolean enableExpensiveMode = false; + public static boolean enable528 = false; public static boolean enable528ReasimBoilers = true; public static boolean enable528ColtanDeposit = true; @@ -40,6 +53,8 @@ public class GeneralConfig { public static boolean enable528BedrockDeposit = true; public static boolean enable528BedrockSpawn = false; public static boolean enable528BosniaSimulator = true; + public static boolean enable528BedrockReplacement = true; + public static boolean enable528NetherBurn = true; public static int coltanRate = 2; public static int bedrockRate = 50; @@ -58,15 +73,25 @@ public class GeneralConfig { public static boolean enableLBSMSafeMEDrives = true; public static boolean enableLBSMIGen = true; public static int schrabRate = 20; - + public static void loadFromConfig(Configuration config) { final String CATEGORY_GENERAL = CommonConfig.CATEGORY_GENERAL; enableThermosPreventer = config.get(CATEGORY_GENERAL, "0.00_crashOnThermos", true, "When set to true, will prevent the mod to launch on Thermos servers. Only disable this if you understand what \"tileentities.yml\" is, and how it severely cripples the mod.").getBoolean(true); + + enablePacketThreading = config.get(CATEGORY_GENERAL, "0.01_enablePacketThreading", true, "Enables creation of a separate thread to increase packet processing speed on servers. Disable this if you are having anomalous crashes related to memory connections.").getBoolean(true); + + packetThreadingCoreCount = config.get(CATEGORY_GENERAL, "0.02_packetThreadingCoreCount", 1, "Number of core threads to create for packets (recommended 1).").getInt(1); + packetThreadingMaxCount = config.get(CATEGORY_GENERAL, "0.03_packetThreadingMaxCount", 1, "Maximum number of threads to create for packet threading. Must be greater than or equal to 0.02_packetThreadingCoreCount.").getInt(1); + packetThreadingErrorBypass = config.get(CATEGORY_GENERAL, "0.04_packetThreadingErrorBypass", false, "Forces the bypassing of most packet threading errors, only enable this if directed to or if you know what you're doing.").getBoolean(false); + enableDebugMode = config.get(CATEGORY_GENERAL, "1.00_enableDebugMode", false, "Enable debugging mode").getBoolean(false); enableMycelium = config.get(CATEGORY_GENERAL, "1.01_enableMyceliumSpread", false, "Allows glowing mycelium to spread").getBoolean(false); enablePlutoniumOre = config.get(CATEGORY_GENERAL, "1.02_enablePlutoniumNetherOre", false, "Enables plutonium ore generation in the nether").getBoolean(false); - enableDungeons = config.get(CATEGORY_GENERAL, "1.03_enableDungeonSpawn", true, "Allows structures and dungeons to spawn").getBoolean(true); + + String unparsedDungeonFlag = config.get(CATEGORY_GENERAL, "1.03_enableDungeonSpawn", "flag", "Allows structures and dungeons to spawn. Valid values are true|false|flag - flag will respect the \"Generate Structures\" world flag.").getString(); + enableDungeons = CommonConfig.parseStructureFlag(unparsedDungeonFlag); + enableMDOres = config.get(CATEGORY_GENERAL, "1.04_enableOresInModdedDimensions", true, "Allows NTM ores to generate in modded dimensions").getBoolean(true); enableMines = config.get(CATEGORY_GENERAL, "1.05_enableLandmineSpawn", true, "Allows landmines to generate").getBoolean(true); enableRad = config.get(CATEGORY_GENERAL, "1.06_enableRadHotspotSpawn", true, "Allows radiation hotspots to generate").getBoolean(true); @@ -84,19 +109,29 @@ public class GeneralConfig { enableReEval = config.get(CATEGORY_GENERAL, "1.27_enableReEval", true, "Allows re-evaluating power networks on link remove instead of destroying and recreating").getBoolean(true); enableSilentCompStackErrors = config.get(CATEGORY_GENERAL, "1.28_enableSilentCompStackErrors", false, "Enabling this will disable log spam created by unregistered items in ComparableStack instances.").getBoolean(false); hintPos = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.29_hudOverlayPosition", "0: Top left\n1: Top right\n2: Center right\n3: Center Left", 0); - enableChunkyNEIHandler = config.get(CATEGORY_GENERAL, "1.30_enableChunkyNEIHandler", true, "If enabled, registers a NEI handler that will show the chosen item in a larger view.").getBoolean(true); enableSkyboxes = config.get(CATEGORY_GENERAL, "1.31_enableSkyboxes", true, "If enabled, will try to use NTM's custom skyboxes.").getBoolean(true); enableImpactWorldProvider = config.get(CATEGORY_GENERAL, "1.32_enableImpactWorldProvider", true, "If enabled, registers custom world provider which modifies lighting and sky colors for post impact effects.").getBoolean(true); enableStatReRegistering = config.get(CATEGORY_GENERAL, "1.33_enableStatReRegistering", true, "If enabled, will re-register item crafting/breaking/usage stats in order to fix a forge bug where modded items just won't show up.").getBoolean(true); enableKeybindOverlap = config.get(CATEGORY_GENERAL, "1.34_enableKeybindOverlap", true, "If enabled, will handle keybinds that would otherwise be ignored due to overlapping.").getBoolean(true); - + enableFluidContainerCompat = config.get(CATEGORY_GENERAL, "1.35_enableFluidContainerCompat", true, "If enabled, fluid containers will be oredicted and interchangable in recipes with other mods' containers, as well as TrainCraft's diesel being considered a valid diesel canister.").getBoolean(true); + enableMOTD = config.get(CATEGORY_GENERAL, "1.36_enableMOTD", true, "If enabled, shows the 'Loaded mod!' chat message as well as update notifications when joining a world").getBoolean(true); + enableGuideBook = config.get(CATEGORY_GENERAL, "1.37_enableGuideBook", true, "If enabled, gives players the guide book when joining the world for the first time").getBoolean(true); + enableSteamParticles = config.get(CATEGORY_GENERAL, "1.38_enableSteamParticles", true, "If disabled, auxiliary cooling towers and large cooling towers will not emit steam particles when in use.").getBoolean(true); + enableSoundExtension = config.get(CATEGORY_GENERAL, "1.39_enableSoundExtension", true, "If enabled, will change the limit for how many sounds can play at once.").getBoolean(true); + enableMekanismChanges = config.get(CATEGORY_GENERAL, "1.40_enableMekanismChanges", true, "If enabled, will change some of Mekanism's recipes.").getBoolean(true); + normalSoundChannels = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.41_normalSoundChannels", + "The amount of channels to create while 1.39_enableSoundExtension is enabled.\n" + + "Note that a value below 28 or above 200 can cause buggy sounds and issues with other mods running out of sound memory.", 100); + + enableExpensiveMode = config.get(CATEGORY_GENERAL, "1.99_enableExpensiveMode", false, "It does what the name implies.").getBoolean(false); + final String CATEGORY_528 = CommonConfig.CATEGORY_528; config.addCustomCategoryComment(CATEGORY_528, "CAUTION\n" + "528 Mode: Please proceed with caution!\n" + "528-Modus: Lassen Sie Vorsicht walten!\n" + "спПсПб-528: ЎействПвать с ПстПрПжМПстью!"); - + enable528 = CommonConfig.createConfigBool(config, CATEGORY_528, "enable528Mode", "The central toggle for 528 mode.", false); enable528ReasimBoilers = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_forceReasimBoilers", "Keeps the RBMK dial for ReaSim boilers on, preventing use of non-ReaSim boiler columns and forcing the use of steam in-/outlets", true); enable528ColtanDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableColtanDepsoit", "Enables the coltan deposit. A large amount of coltan will spawn around a single random location in the world.", true); @@ -104,17 +139,19 @@ public class GeneralConfig { enable528BedrockDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBedrockDepsoit", "Enables bedrock coltan ores in the coltan deposit. These ores can be drilled to extract infinite coltan, albeit slowly.", true); enable528BedrockSpawn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBedrockSpawning", "Enables the bedrock coltan ores as a rare spawn. These will be rarely found anywhere in the world.", false); enable528BosniaSimulator = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBosniaSimulator", "Enables anti tank mines spawning all over the world.", true); + enable528BedrockReplacement = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528BedrockReplacement", "Replaces certain bedrock ores with ones that require additional processing.", true); + enable528NetherBurn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528NetherBurn", "Whether players burn in the nether", true); coltanRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_oreColtanFrequency", "Determines how many coltan ore veins are to be expected in a chunk. These values do not affect the frequency in deposits, and only apply if random coltan spanwing is enabled.", 2); bedrockRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_bedrockColtanFrequency", "Determines how often (1 in X) bedrock coltan ores spawn. Applies for both the bedrock ores in the coltan deposit (if applicable) and the random bedrock ores (if applicable)", 50); - - + + final String CATEGORY_LBSM = CommonConfig.CATEGORY_LBSM; config.addCustomCategoryComment(CATEGORY_LBSM, "Will most likely break standard progression!\n" + "However, the game gets generally easier and more enjoyable for casual players.\n" + "Progression-braking recipes are usually not too severe, so the mode is generally server-friendly!"); - + enableLBSM = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "enableLessBullshitMode", "The central toggle for LBS mode. Forced OFF when 528 is enabled!", false); enableLBSMFullSchrab = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_fullSchrab", "When enabled, this will replace schraranium with full schrabidium ingots in the transmutator's output", true); enableLBSMShorterDecay = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_shortDecay", "When enabled, this will highly accelerate the speed at which nuclear waste disposal drums decay their contents. 60x faster than 528 mode and 5-12x faster than on normal mode.", true); @@ -125,12 +162,12 @@ public class GeneralConfig { enableLBSMSimpleCentrifuge = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeSimpleCentrifuge", "When enabled, enhances centrifuge outputs to make rare materials more common", true); enableLBSMUnlockAnvil = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeUnlockAnvil", "When enabled, all anvil recipes are available at tier 1", true); enableLBSMSimpleCrafting = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeSimpleCrafting", "When enabled, some uncraftable or more expansive items get simple crafting recipes. Scorched uranium also becomes washable", true); - enableLBSMSimpleMedicineRecipes = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeSimpleMedicine", "When enabled, makes some medicine recipes (line ones that require bismuth) much more affordable", true); + enableLBSMSimpleMedicineRecipes = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeSimpleMedicine", "When enabled, makes some medicine recipes (like ones that require bismuth) much more affordable", true); enableLBSMSafeCrates = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_safeCrates", "When enabled, prevents crates from becoming radioactive", true); enableLBSMSafeMEDrives = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_safeMEDrives", "When enabled, prevents ME Drives and Portable Cells from becoming radioactive", true); enableLBSMIGen = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_iGen", "When enabled, restores the industrial generator to pre-nerf power", true); schrabRate = CommonConfig.createConfigInt(config, CATEGORY_LBSM, "LBSM_schrabOreRate", "Changes the amount of uranium ore needed on average to create one schrabidium ore using nukes. Standard mode value is 100", 20); - + if(enable528) enableLBSM = false; } } diff --git a/src/main/java/com/hbm/config/ItemPoolConfigJSON.java b/src/main/java/com/hbm/config/ItemPoolConfigJSON.java new file mode 100644 index 000000000..986444511 --- /dev/null +++ b/src/main/java/com/hbm/config/ItemPoolConfigJSON.java @@ -0,0 +1,146 @@ +package com.hbm.config; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map.Entry; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.itempool.ItemPool; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.JsonToNBT; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolConfigJSON { + + public static final Gson gson = new Gson(); + + public static void initialize() { + + //writes the defaults + ItemPool.initialize(); + + File folder = MainRegistry.configHbmDir; + + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmItemPools.json"); + File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmItemPools.json"); + + if(!config.exists()) { + writeDefault(template); + } else { + readConfig(config); + } + } + + private static void writeDefault(File file) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(file)); + writer.setIndent(" "); + writer.beginObject(); + writer.name("description").value("Format is as follows: First object is an array representing the itemstack in question, same rules apply here as they do for recipe configs but with one difference: Stacks accept NBT. NBT is contained in {curly brackets}, the format is the same as it is for the /give command. After the stack comes the minimum amount of items, then the maximum (the stack's own stacksize value is ignored). The final number is the weight, an item with a weight of 3 is 3x as likely to appear than an item with a weight of 1."); + writer.name("pools").beginObject(); + + for(Entry entry : ItemPool.pools.entrySet()) { + writer.name(entry.getKey()).beginArray(); + + for(WeightedRandomChestContent content : entry.getValue().pool) { + writer.setIndent(" "); + writer.beginArray(); + writer.setIndent(""); + writeItemStack(content.theItemId, writer); + writer.setIndent(""); + writer.value(content.theMinimumChanceToGenerateItem); + writer.value(content.theMaximumChanceToGenerateItem); + writer.value(content.itemWeight); + writer.endArray(); + } + + writer.setIndent(" "); + writer.endArray(); + } + + writer.endObject(); + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + private static void readConfig(File file) { + HashMap newPools = new HashMap(); + try { + JsonObject json = gson.fromJson(new FileReader(file), JsonObject.class); + JsonObject pools = json.get("pools").getAsJsonObject(); + + for(Entry entry : pools.entrySet()) { + + String poolName = entry.getKey(); + ItemPool pool = new ItemPool(); + pool.name = poolName; + + for(JsonElement poolEntry : entry.getValue().getAsJsonArray()) { + JsonArray array = poolEntry.getAsJsonArray(); + ItemStack stack = readItemStack(array.get(0).getAsJsonArray()); + int min = array.get(1).getAsInt(); + int max = array.get(2).getAsInt(); + int weight = array.get(3).getAsInt(); + pool.add(stack, min, max, weight); + } + + pool.build(); + newPools.put(poolName, pool); + } + + ItemPool.pools = newPools; + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + + public static void writeItemStack(ItemStack stack, JsonWriter writer) throws IOException { + writer.beginArray(); + writer.setIndent(""); + writer.value(Item.itemRegistry.getNameForObject(stack.getItem())); + if(stack.stackSize != 1 || stack.getItemDamage() != 0 || stack.hasTagCompound()) writer.value(stack.stackSize); + if(stack.getItemDamage() != 0 || stack.hasTagCompound()) writer.value(stack.getItemDamage()); + if(stack.hasTagCompound()) writer.value(stack.stackTagCompound.toString()); + writer.endArray(); + writer.setIndent(" "); + } + + public static ItemStack readItemStack(JsonArray array) { + try { + Item item = (Item) Item.itemRegistry.getObject(array.get(0).getAsString()); + int stacksize = array.size() > 1 ? array.get(1).getAsInt() : 1; + int meta = array.size() > 2 ? array.get(2).getAsInt() : 0; + if(item != null) { + ItemStack stack = new ItemStack(item, stacksize, meta); + if(array.size() > 3) { + String tag = array.get(3).getAsString(); + NBTBase nbt = JsonToNBT.func_150315_a(tag); + if(nbt instanceof NBTTagCompound) { + stack.stackTagCompound = (NBTTagCompound) nbt; + } + } + return stack; + } + } catch(Exception ex) { } + MainRegistry.logger.error("Error reading stack array " + array.toString() + " - defaulting to NOTHING item!"); + return new ItemStack(ModItems.nothing); + } +} diff --git a/src/main/java/com/hbm/config/MachineDynConfig.java b/src/main/java/com/hbm/config/MachineDynConfig.java index f88432905..beda03517 100644 --- a/src/main/java/com/hbm/config/MachineDynConfig.java +++ b/src/main/java/com/hbm/config/MachineDynConfig.java @@ -10,6 +10,7 @@ import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.interfaces.NotableComments; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.TileMappings; @@ -20,6 +21,7 @@ import com.hbm.tileentity.TileMappings; * tile entities from the registry automatically and generate config options. * @author hbm */ +@NotableComments public class MachineDynConfig { public static final Gson gson = new Gson(); diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 1fce6249f..4828ae781 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -27,15 +27,46 @@ public class MobConfig { public static boolean enableDucks = true; public static boolean enableMobGear = true; + public static boolean enableMobWeapons = true; public static boolean enableHives = true; - public static int hiveSpawn = 128; - public static double scoutThreshold = 0.1; - public static double tier2Threshold = 1; - public static double tier3Threshold = 10; - public static double tier4Threshold = 50; - public static double tier5Threshold = 100; - + public static int hiveSpawn = 256; + public static double scoutThreshold = 5; + public static int scoutSwarmSpawnChance = 2; + public static boolean waypointDebug = false; + public static int largeHiveChance = 5; + public static int largeHiveThreshold = 30; + + public static int swarmCooldown = 120 * 20; + + public static int baseSwarmSize = 5; + public static double swarmScalingMult = 1.2; + public static int sootStep = 50; + + public static int[] glyphidChance = {50, -40, 0}; + public static int[] brawlerChance = {5, 35, 1}; + public static int[] bombardierChance = {20, -15, 1}; + public static int[] blasterChance = {-15, 40, 5}; + public static int[] diggerChance = {-15, 25, 5}; + public static int[] behemothChance = {-30, 45, 10}; + public static int[] brendaChance = {-50, 60, 20}; + public static int[] johnsonChance = {-50, 60, 50}; + + public static double spawnMax = 50; + public static boolean enableInfestation = true; + public static double baseInfestChance = 5; + public static double targetingThreshold = 1; + + public static boolean rampantMode = false; + public static boolean rampantNaturalScoutSpawn = false; + public static double rampantScoutSpawnThresh = 14; + public static int rampantScoutSpawnChance = 1400; + public static boolean scoutInitialSpawn = false; + public static boolean rampantExtendedTargetting = false; + public static boolean rampantDig = false; + public static boolean rampantGlyphidGuidance = false; + public static double rampantSmokeStackOverride = 0.4; + public static double pollutionMult = 3; public static void loadFromConfig(Configuration config) { @@ -64,13 +95,90 @@ public class MobConfig { enableDucks = CommonConfig.createConfigBool(config, CATEGORY, "12.D00_enableDucks", "Whether pressing O should allow the player to duck", true); enableMobGear = CommonConfig.createConfigBool(config, CATEGORY, "12.D01_enableMobGear", "Whether zombies and skeletons should have additional gear when spawning", true); + enableMobWeapons = CommonConfig.createConfigBool(config, CATEGORY, "12.D02_enableMobWeapons", "Whether skeletons should have bows replaced with guns when spawning at higher soot levels", true); enableHives = CommonConfig.createConfigBool(config, CATEGORY, "12.G00_enableHives", "Whether glyphid hives should spawn", true); - hiveSpawn = CommonConfig.createConfigInt(config, CATEGORY, "12.G01_hiveSpawn", "The average amount of chunks per hive", 128); - scoutThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G02_scoutThreshold", "Minimum amount of soot for scouts to spawn", 0.1); - tier2Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G03_tier2Threshold", "Minimum amount of soot for tier 2 glyphids to spawn", 1); - tier3Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G04_tier3Threshold", "Minimum amount of soot for tier 3 glyphids to spawn", 10); - tier4Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G05_tier4Threshold", "Minimum amount of soot for tier 4 glyphids to spawn", 50); - tier5Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G06_tier5Threshold", "Minimum amount of soot for tier 5 glyphids to spawn", 100); + hiveSpawn = CommonConfig.createConfigInt(config, CATEGORY, "12.G01_hiveSpawn", "The average amount of chunks per hive", 256); + scoutThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G02_scoutThreshold", "Minimum amount of soot for scouts to spawn", 1); + spawnMax = CommonConfig.createConfigDouble(config, CATEGORY, "12.G07_spawnMax", "Maximum amount of glyphids being able to exist at once through natural spawning", 50); + targetingThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G08_targetingThreshold", "Minimum amount of soot required for glyphids' extended targeting range to activate", 1D); + + scoutSwarmSpawnChance = CommonConfig.createConfigInt(config, CATEGORY,"12.G10_scoutSwarmSpawn", "How likely are scouts to spawn in swarms, 1 in x chance format", 3); + + largeHiveChance = CommonConfig.createConfigInt(config, CATEGORY,"12.G11_largeHiveChance", "The chance for a large hive to spawn, formula: 1/x", 5); + largeHiveThreshold = CommonConfig.createConfigInt(config, CATEGORY,"12.G12_largeHiveThreshold", "The soot threshold for a large hive to spawn", 20); + + waypointDebug = CommonConfig.createConfigBool(config, CATEGORY,"12.G13_waypointDebug", "Allows glyphid waypoints to be seen, mainly used for debugging, also useful as an aid against them", false); + + //Infested structures + enableInfestation= CommonConfig.createConfigBool(config, CATEGORY, "12.I01_enableInfestation", "Whether structures infested with glyphids should spawn", true); + baseInfestChance = CommonConfig.createConfigDouble(config, CATEGORY, "12.I02_baseInfestChance", "The chance for infested structures to spawn", 5); + + //Glyphid spawn stuff + config.addCustomCategoryComment(CATEGORY, + "General Glyphid spawn logic configuration\n" + + "\n" + + "The first number is the base chance which applies at 0 soot,\n" + + "the second number is the modifier that applies with soot based on the formular below,\n" + + "the third number is a hard minimum of soot for this type to spawn.\n" + + "Negative base chances mean that glyphids won't spawn outright, negative modifiers mean that the type becomes less likely with higher soot.\n" + + "The formula for glyphid spawning chance is: (base chance + (modifier - modifier / max( (soot + 1)/3, 3 )))\n" + + "The formula for glyphid swarm scaling is: (baseSwarmSize * Math.max(swarmScalingMult * soot/sootStep, 1))"); + + + baseSwarmSize = CommonConfig.createConfigInt(config, CATEGORY, "12.GS01_baseSwarmSize", "The basic, soot-less swarm size", 5); + swarmScalingMult = CommonConfig.createConfigDouble(config, CATEGORY, "12.GS02_swarmScalingMult", "By how much should swarm size scale by per soot amount determined below", 1.2); + sootStep = CommonConfig.createConfigInt(config, CATEGORY, "12.GS03_sootStep", "The soot amount the above multiplier applies to the swarm size", 50); + swarmCooldown = CommonConfig.createConfigInt(config, CATEGORY, "12.GS04_swarmCooldown", "How often do glyphid swarms spawn, in seconds", 120) * 20; + + glyphidChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC01_glyphidChance", "Base Spawn chance and soot modifier for a glyphid grunt", new int[]{50, -45, 0}); + brawlerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC02_brawlerChance", "Base Spawn chance and soot modifier for a glyphid brawler", new int[]{10, 30, 1}); + bombardierChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC03_bombardierChance", "Base Spawn chance and soot modifier for a glyphid bombardier", new int[]{20, -15, 1}); + blasterChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC04_blasterChance", "Base Spawn chance and soot modifier for a glyphid blaster", new int[]{-5, 40, 5}); + diggerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC05_diggerChance", "Base Spawn chance and soot modifier for a glyphid digger", new int[]{-15, 25, 5}); + behemothChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC06_behemothChance", "Base Spawn chance and soot modifier for a glyphid behemoth", new int[]{-30, 45, 10}); + brendaChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC07_brendaChance", "Base Spawn chance and soot modifier for a glyphid brenda", new int[]{-50, 60, 20}); + johnsonChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC08_johnsonChance", "Base Spawn chance and soot modifier for Big Man Johnson", new int[]{-50, 60, 50}); + + String rampantDesc = "Rampant Mode changes glyphid behavior and spawning to be more aggressive, changes include:\n" + + "\n" + + "Glyphid Scouts will naturally spawn alongside normal mobs if soot levels are above a certain threshold\n" + + "Glyphids will always have the extended targetting enabled\n" + + "Glyphids can dig to waypoints\n" + + "The Glyphids will expand always toward your base\n" + + "Scouts will spawn from the start, making glyphids start expanding off the bat\n" + + "Smokestacks have reduced efficiency, only reducing soot by 40%\n"; + + config.addCustomCategoryComment(CATEGORY,rampantDesc); + + rampantMode = CommonConfig.createConfigBool(config, CATEGORY, "12.R01_rampantMode", "The main rampant mode toggle, enables all other features associated with it", false); + + config.addCustomCategoryComment(CATEGORY, "The individual features of rampant can be used regardless of whether the main rampant toggle is enabled or not"); + + rampantNaturalScoutSpawn = CommonConfig.createConfigBool(config, CATEGORY,"12.R02_rampantScoutSpawn", "Whether scouts should spawn natually in highly polluted chunks", false); + rampantScoutSpawnThresh = CommonConfig.createConfigDouble(config, CATEGORY, "12.R02.1_rampantScoutSpawnThresh", "How much soot is needed for scouts to naturally spawn", 13); + rampantScoutSpawnChance = CommonConfig.createConfigInt(config, CATEGORY, "12.R02.2_rampantScoutSpawnChance", "How often scouts naturally spawn per mob population, 1/x format, the bigger the number, the more uncommon the scouts", 1400); + rampantExtendedTargetting = CommonConfig.createConfigBool(config, CATEGORY,"12.R03_rampantExtendedTargeting", "Whether Glyphids should have the extended targetting always enabled", false); + rampantDig = CommonConfig.createConfigBool(config, CATEGORY,"12.R04_rampantDig", "Whether Glyphids should be able to dig to waypoints", false); + rampantGlyphidGuidance = CommonConfig.createConfigBool(config, CATEGORY,"12.R05_rampantGlyphidGuidance", "Whether Glyphids should always expand toward a player's spawnpoint", false); + rampantSmokeStackOverride = CommonConfig.createConfigDouble(config, CATEGORY, "12.R06_rampantSmokeStackOverride", "How much should the smokestack multiply soot by when on rampant mode", 0.4); + scoutInitialSpawn = CommonConfig.createConfigBool(config, CATEGORY,"12.R07_scoutInitialSpawn", "Whether glyphid scouts should be able to spawn on the first swarm of a hive, causes glyphids to expand significantly faster", false); + pollutionMult = CommonConfig.createConfigDouble(config, CATEGORY, "12.R08_pollutionMult", "A multiplier for soot emitted, whether you want to increase or decrease it", 1); + + if(rampantMode){ + rampantNaturalScoutSpawn = true; + rampantExtendedTargetting = true; + rampantDig = true; + rampantGlyphidGuidance = true; + scoutSwarmSpawnChance = 1; + scoutThreshold = 0.1; + if(pollutionMult == 1) { + pollutionMult = 3; + } + if (bombardierChance[2] == 1){ + bombardierChance[2] = 0; + } + RadiationConfig.sootFogThreshold *= pollutionMult; + } } } diff --git a/src/main/java/com/hbm/config/RadiationConfig.java b/src/main/java/com/hbm/config/RadiationConfig.java index ad7b0acd7..0129c534f 100644 --- a/src/main/java/com/hbm/config/RadiationConfig.java +++ b/src/main/java/com/hbm/config/RadiationConfig.java @@ -1,5 +1,8 @@ package com.hbm.config; +import com.hbm.handler.radiation.ChunkRadiationHandlerPRISM; +import com.hbm.handler.radiation.ChunkRadiationManager; + import net.minecraftforge.common.config.Configuration; public class RadiationConfig { @@ -14,6 +17,7 @@ public class RadiationConfig { public static boolean enableContamination = true; public static boolean enableChunkRads = true; + public static boolean enablePRISM = false; public static boolean disableAsbestos = false; public static boolean disableCoal = false; @@ -22,6 +26,16 @@ public class RadiationConfig { public static boolean disableHydro = false; public static boolean disableBlinding = false; public static boolean disableFibrosis = false; + + public static boolean enablePollution = true; + public static boolean enableLeadFromBlocks = true; + public static boolean enableLeadPoisoning = true; + public static boolean enableSootFog = true; + public static boolean enablePoison = true; + public static double buffMobThreshold = 15D; + public static double sootFogThreshold = 35D; + public static double sootFogDivisor = 120D; + public static double smokeStackSootMult = 0.8; public static void loadFromConfig(Configuration config) { @@ -37,6 +51,8 @@ public class RadiationConfig { enableContamination = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_00_enableContamination", "Toggles player contamination (and negative effects from radiation poisoning)", true); enableChunkRads = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_01_enableChunkRads", "Toggles the world radiation system (chunk radiation only, some blocks use an AoE!)", true); + enablePRISM = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_99_enablePRISM", "Enables the new 3D resistance-aware PRISM radiation system", false); + if(enablePRISM) ChunkRadiationManager.proxy = new ChunkRadiationHandlerPRISM(); fogCh = CommonConfig.setDef(fogCh, 20); @@ -49,5 +65,16 @@ public class RadiationConfig { disableHydro = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_04_disableHydroactive", "When turned off, all hydroactive hazards are disabled", false); disableBlinding = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_05_disableBlinding", "When turned off, all blinding hazards are disabled", false); disableFibrosis = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_06_disableFibrosis", "When turned off, all fibrosis hazards are disabled", false); + + final String CATEGORY_POL = CommonConfig.CATEGORY_POLLUTION; + enablePollution = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_00_enablePollution", "If disabled, none of the polltuion related things will work", true); + enableLeadFromBlocks = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_01_enableLeadFromBlocks", "Whether breaking blocks in heavy metal polluted areas will poison the player", true); + enableLeadPoisoning = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_02_enableLeadPoisoning", "Whether being in a heavy metal polluted area will poison the player", true); + enableSootFog = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_03_enableSootFog", "Whether smog should be visible", true); + enablePoison = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_04_enablePoison", "Whether being in a poisoned area will affect the player", true); + buffMobThreshold = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_05_buffMobThreshold", "The amount of soot required to buff naturally spawning mobs", 15D); + sootFogThreshold = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_06_sootFogThreshold", "How much soot is required for smog to become visible", 35D); + sootFogDivisor = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_07_sootFogDivisor", "The divisor for smog, higher numbers will require more soot for the same smog density", 120D); + smokeStackSootMult = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_08_smokeStackSootMult", "How much does smokestack multiply soot by, with decimal values reducing the soot", 0.8); } } diff --git a/src/main/java/com/hbm/config/StructureConfig.java b/src/main/java/com/hbm/config/StructureConfig.java index 2f22d7281..944a7cbb0 100644 --- a/src/main/java/com/hbm/config/StructureConfig.java +++ b/src/main/java/com/hbm/config/StructureConfig.java @@ -1,12 +1,14 @@ package com.hbm.config; +import java.util.Locale; + import com.hbm.main.MainRegistry; import net.minecraftforge.common.config.Configuration; public class StructureConfig { - public static boolean enableStructures = true; + public static int enableStructures = 2; public static int structureMinChunks = 8; public static int structureMaxChunks = 24; @@ -16,7 +18,10 @@ public class StructureConfig { public static void loadFromConfig(Configuration config) { final String CATEGORY_STRUCTURES = CommonConfig.CATEGORY_STRUCTURES; - enableStructures = CommonConfig.createConfigBool(config, CATEGORY_STRUCTURES, "5.00_enableStructures", "Switch for whether structures using the MapGenStructure system spawn.", true); + + String unparsedStructureFlag = CommonConfig.createConfigString(config, CATEGORY_STRUCTURES, "5.00_enableStructures", "Flag for whether modern NTM structures will spawn. Valid values are true|false|flag - flag will respect the \"Generate Structures\" world flag.", "flag"); + + enableStructures = CommonConfig.parseStructureFlag(unparsedStructureFlag); structureMinChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.01_structureMinChunks", "Minimum non-zero distance between structures in chunks (Settings lower than 8 may be problematic).", 8); structureMaxChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.02_structureMaxChunks", "Maximum non-zero distance between structures in chunks.", 24); @@ -28,7 +33,7 @@ public class StructureConfig { if(structureMinChunks > structureMaxChunks) { MainRegistry.logger.error("Fatal error config: Minimum value has been set higher than the maximum value!"); - MainRegistry.logger.error(String.format("Errored values will default back to %1$d and %2$d respectively, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", 8, 24)); + MainRegistry.logger.error(String.format(Locale.US, "Errored values will default back to %1$d and %2$d respectively, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", 8, 24)); structureMinChunks = 8; structureMaxChunks = 24; } diff --git a/src/main/java/com/hbm/config/WeaponConfig.java b/src/main/java/com/hbm/config/WeaponConfig.java index 88c3dbdae..290641f86 100644 --- a/src/main/java/com/hbm/config/WeaponConfig.java +++ b/src/main/java/com/hbm/config/WeaponConfig.java @@ -15,6 +15,8 @@ public class WeaponConfig { public static boolean dropStar = true; public static boolean dropCrys = true; public static boolean dropDead = true; + + public static boolean linearAnimations = false; public static void loadFromConfig(Configuration config) { @@ -38,5 +40,9 @@ public class WeaponConfig { 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); + + final String CATEGORY_WEAPONS = CommonConfig.CATEGORY_WEAPONS; + linearAnimations = CommonConfig.createConfigBool(config, CATEGORY_WEAPONS, "18.00_linearAnimations", "Should heavily stylised weapon animations be replaced with more conventional ones?", false); + } } diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index cf0f08a67..63b9d13b0 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -24,21 +24,22 @@ public class WorldConfig { public static int rareSpawn = 6; public static int lithiumSpawn = 6; public static int cinnebarSpawn = 1; - public static int oilcoalSpawn = 128; public static int gassshaleSpawn = 5; - public static int gasbubbleSpawn = 4; - public static int explosivebubbleSpawn = 8; + public static int gasbubbleSpawn = 12; + public static int explosivebubbleSpawn = 0; public static int cobaltSpawn = 2; public static int oilSpawn = 100; public static int bedrockOilSpawn = 200; public static int meteoriteSpawn = 500; + public static boolean newBedrockOres = true; public static int bedrockIronSpawn = 100; public static int bedrockCopperSpawn = 200; public static int bedrockBoraxSpawn = 50; public static int bedrockChlorocalciteSpawn = 35; public static int bedrockAsbestosSpawn = 50; public static int bedrockNiobiumSpawn = 50; + public static int bedrockNeodymiumSpawn = 50; public static int bedrockTitaniumSpawn = 100; public static int bedrockTungstenSpawn = 100; public static int bedrockGoldSpawn = 50; @@ -48,6 +49,12 @@ public class WorldConfig { public static int bedrockNiterSpawn = 50; public static int bedrockFluoriteSpawn = 50; public static int bedrockRedstoneSpawn = 50; + public static int bedrockRareEarthSpawn = 50; + public static int bedrockBauxiteSpawn = 100; + public static int bedrockEmeraldSpawn = 50; + public static int bedrockGlowstoneSpawn = 100; + public static int bedrockPhosphorusSpawn = 50; + public static int bedrockQuartzSpawn = 100; public static int ironClusterSpawn = 4; public static int titaniumClusterSpawn = 2; @@ -68,9 +75,6 @@ public class WorldConfig { public static int endTikiteSpawn = 8; - public static boolean enableRandom = false; - public static int randomSpawn = 0; - public static int radioStructure = 500; public static int antennaStructure = 250; public static int atomStructure = 500; @@ -78,7 +82,6 @@ public class WorldConfig { public static int dungeonStructure = 64; public static int relayStructure = 500; public static int satelliteStructure = 500; - public static int siloStructure = 1000; public static int factoryStructure = 1000; public static int dudStructure = 500; public static int spaceshipStructure = 1000; @@ -104,6 +107,15 @@ public class WorldConfig { public static int meteorStrikeChance = 20 * 60 * 180; public static int meteorShowerChance = 20 * 60 * 5; public static int meteorShowerDuration = 6000; + + public static boolean enableCraterBiomes = true; + public static int craterBiomeId = 80; + public static int craterBiomeInnerId = 81; + public static int craterBiomeOuterId = 82; + public static float craterBiomeRad = 5F; + public static float craterBiomeInnerRad = 25F; + public static float craterBiomeOuterRad = 0.5F; + public static float craterBiomeWaterMult = 5F; public static void loadFromConfig(Configuration config) { @@ -128,17 +140,17 @@ public class WorldConfig { asbestosSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.12_asbestosSpawnRate", "Amount of asbestos ore veins per chunk", 2); lithiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.13_lithiumSpawnRate", "Amount of schist lithium ore veins per chunk", 6); rareSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.14_rareEarthSpawnRate", "Amount of rare earth ore veins per chunk", 6); - oilcoalSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.15_oilCoalSpawnRate", "Spawns an oily coal vein every nTH chunk", 128); gassshaleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.16_gasShaleSpawnRate", "Amount of oil shale veins per chunk", 5); - gasbubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.17_gasBubbleSpawnRate", "Spawns a gas bubble every nTH chunk", 4); + gasbubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.17_gasBubbleSpawnRate", "Spawns a gas bubble every nTH chunk", 12); cinnebarSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cinnebarSpawnRate", "Amount of cinnebar ore veins per chunk", 1); cobaltSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cobaltSpawnRate", "Amount of cobalt ore veins per chunk", 2); - explosivebubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.19_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk", 8); + explosivebubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.19_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk", 0); alexandriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.20_alexandriteSpawnRate", "Spawns an alexandrite vein every nTH chunk", 100); oilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.21_oilSpawnRate", "Spawns an oil bubble every nTH chunk", 100); bedrockOilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.22_bedrockOilSpawnRate", "Spawns a bedrock oil node every nTH chunk", 200); meteoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.23_meteoriteSpawnRate", "Spawns a fallen meteorite every nTH chunk", 200); + newBedrockOres = CommonConfig.createConfigBool(config, CATEGORY_OREGEN, "2.NB_newBedrockOres", "Enables the newer genreric bedrock ores", true); bedrockIronSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B00_bedrockIronWeight", "Spawn weight for iron bedrock ore", 100); bedrockCopperSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B01_bedrockCopperWeight", "Spawn weight for copper bedrock ore", 200); bedrockBoraxSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B02_bedrockBoraxWeight", "Spawn weight for borax bedrock ore", 50); @@ -153,7 +165,15 @@ public class WorldConfig { bedrockNiterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B11_bedrockNiterWeight", "Spawn weight for niter bedrock ore", 50); bedrockFluoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B12_bedrockFluoriteWeight", "Spawn weight for fluorite bedrock ore", 50); bedrockRedstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B13_bedrockRedstoneWeight", "Spawn weight for redstone bedrock ore", 50); - bedrockChlorocalciteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B14_bedrockbChlorocalciteWeight", "Spawn weight for chlorocalcite bedrock ore", 35); + bedrockChlorocalciteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B14_bedrockChlorocalciteWeight", "Spawn weight for chlorocalcite bedrock ore", 35); + bedrockNeodymiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B15_bedrockNeodymiumWeight", "Spawn weight for neodymium bedrock ore", 50); + bedrockRareEarthSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B16_bedrockRareEarthWeight", "Spawn weight for rare earth bedrock ore", 50); + bedrockBauxiteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B17_bedrockBauxiteWeight", "Spawn weight for bauxite bedrock ore", 100); + bedrockEmeraldSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B18_bedrockEmeraldWeight", "Spawn weight for emerald bedrock ore", 50); + + bedrockGlowstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN00_bedrockGlowstoneWeight", "Spawn weight for glowstone bedrock ore", 100); + bedrockPhosphorusSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN01_bedrockPhosphorusWeight", "Spawn weight for phosphorus bedrock ore", 50); + bedrockQuartzSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN01_bedrockQuartzWeight", "Spawn weight for quartz bedrock ore", 100); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); @@ -173,9 +193,6 @@ public class WorldConfig { endTikiteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.E00_tikiteSpawnrate", "Amount of end trixite per chunk", 8); - enableRandom = CommonConfig.createConfigBool(config, CATEGORY_OREGEN, "2.R00_enableRandomOre", "Amount of random ore per chunk", false); - randomSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.R01_randomOreSpawnrate", "Amount of random ore per chunk", 0); - final String CATEGORY_DUNGEON = CommonConfig.CATEGORY_DUNGEONS; radioStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.00_radioSpawn", "Spawn radio station on every nTH chunk", 500); antennaStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.01_antennaSpawn", "Spawn antenna on every nTH chunk", 250); @@ -184,7 +201,6 @@ public class WorldConfig { dungeonStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.04_dungeonSpawn", "Spawn library dungeon on every nTH chunk", 64); relayStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.05_relaySpawn", "Spawn relay on every nTH chunk", 500); satelliteStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.06_satelliteSpawn", "Spawn satellite dish on every nTH chunk", 500); - siloStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.08_siloSpawn", "Spawn missile silo on every nTH chunk", 1000); factoryStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.09_factorySpawn", "Spawn factory on every nTH chunk", 1000); dudStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.10_dudSpawn", "Spawn dud on every nTH chunk", 500); spaceshipStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.11_spaceshipSpawn", "Spawn spaceship on every nTH chunk", 1000); @@ -211,6 +227,16 @@ public class WorldConfig { meteorShowerChance = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.04_meteorShowerChance", "The probability of a meteor spawning during meteor shower (an average of once every nTH ticks)", 20 * 60 * 15); meteorShowerDuration = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.05_meteorShowerDuration", "Max duration of meteor shower in ticks", 20 * 60 * 30); + final String CATEGORY_BIOMES = CommonConfig.CATEGORY_BIOMES; + enableCraterBiomes = CommonConfig.createConfigBool(config, CATEGORY_BIOMES, "17.B_toggle", "Enables the biome change caused by nuclear explosions", true); + craterBiomeId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B00_craterBiomeId", "The numeric ID for the crater biome", 80); + craterBiomeInnerId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B01_craterBiomeInnerId", "The numeric ID for the inner crater biome", 81); + craterBiomeOuterId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B02_craterBiomeOuterId", "The numeric ID for the outer crater biome", 82); + craterBiomeRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R00_craterBiomeRad", "RAD/s for the crater biome", 5D); + craterBiomeInnerRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R01_craterBiomeInnerRad", "RAD/s for the inner crater biome", 25D); + craterBiomeOuterRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R02_craterBiomeOuterRad", "RAD/s for the outer crater biome", 0.5D); + craterBiomeWaterMult = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R03_craterBiomeWaterMult", "Multiplier for RAD/s in crater biomes when in water", 5D); + radioStructure = CommonConfig.setDefZero(radioStructure, 1000); antennaStructure = CommonConfig.setDefZero(antennaStructure, 1000); atomStructure = CommonConfig.setDefZero(atomStructure, 1000); @@ -218,7 +244,6 @@ public class WorldConfig { dungeonStructure = CommonConfig.setDefZero(dungeonStructure, 1000); relayStructure = CommonConfig.setDefZero(relayStructure, 1000); satelliteStructure = CommonConfig.setDefZero(satelliteStructure, 1000); - siloStructure = CommonConfig.setDefZero(siloStructure, 1000); factoryStructure = CommonConfig.setDefZero(factoryStructure, 1000); dudStructure = CommonConfig.setDefZero(dudStructure, 1000); spaceshipStructure = CommonConfig.setDefZero(spaceshipStructure, 1000); diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 96b9543b8..d8c87323d 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -8,6 +8,7 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumLegendaryType; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.main.CraftingManager; import net.minecraft.init.Blocks; @@ -44,19 +45,18 @@ public class ArmorRecipes { addChest( CMB.ingot(), ModItems.cmb_plate); addLegs( CMB.ingot(), ModItems.cmb_legs); addBoots( CMB.ingot(), ModItems.cmb_boots); - addHelmet( CO.ingot(), ModItems.cobalt_helmet); - addChest( CO.ingot(), ModItems.cobalt_plate); - addLegs( CO.ingot(), ModItems.cobalt_legs); - addBoots( CO.ingot(), ModItems.cobalt_boots); addHelmet( ModItems.rag, ModItems.robes_helmet); addChest( ModItems.rag, ModItems.robes_plate); addLegs( ModItems.rag, ModItems.robes_legs); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ModItems.plate_polymer }); - - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_helmet, 1), new Object[] {"ECE", 'E', CO.billet(), 'C', ModItems.steel_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_plate, 1), new Object[] { " E ", "ECE"," E ", 'E', CO.billet(), 'C', ModItems.steel_plate }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_legs, 1), new Object[] { "ECE", "E E", 'E', CO.billet(), 'C', ModItems.steel_legs }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_boots, 1), new Object[] {"ECE", 'E', CO.billet(), 'C', ModItems.steel_boots }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'G', KEY_ANYPANE }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_boots, 1), new Object[] { "P P", "I I", 'P', STEEL.plate(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_boots, 1), new Object[] { "P P", "I I", 'P', STEEL.plate(), 'I', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_helmet, 1), new Object[] { "EEE", "EE ", 'E', DNT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_plate, 1), new Object[] { "EE ", "EEE", "EEE", 'E', DNT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_legs, 1), new Object[] { "EE ", "EEE", "E E", 'E', DNT.ingot() }); @@ -64,11 +64,11 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.zirconium_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ZR.ingot() }); //Power armor - CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', ModItems.circuit_targeting_tier3, 'I', ModItems.plate_polymer, 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'I', ANY_RUBBER.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_empty, 'B', ModItems.titanium_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', ModItems.circuit_targeting_tier4, 'I', ANY_PLASTIC.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'I', ANY_PLASTIC.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'T', ModItems.gas_empty, 'B', ModItems.alloy_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_boots }); @@ -76,20 +76,20 @@ public class ArmorRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.ajro_plate, 1), new Object[] { ModItems.ajr_plate, KEY_RED, KEY_BLACK }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ajro_legs, 1), new Object[] { ModItems.ajr_legs, KEY_RED, KEY_BLACK }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ajro_boots, 1), new Object[] { ModItems.ajr_boots, KEY_RED, KEY_BLACK }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_helmet, 1), new Object[] { "SBS", " C ", " I ", 'S', Items.string, 'B', new ItemStack(Blocks.wool, 1, 15), 'C', ModItems.circuit_targeting_tier4, 'I', STAR.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate, 1), new Object[] { "N N", "MSM", "NCN", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_plate, 'C', ModItems.circuit_targeting_tier5 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_helmet, 1), new Object[] { "SBS", " C ", " I ", 'S', Items.string, 'B', new ItemStack(Blocks.wool, 1, 15), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', STAR.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate, 1), new Object[] { "N N", "MSM", "NCN", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_plate, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate_jetpack, 1), new Object[] { "NFN", "TPT", "ICI", 'N', ModItems.plate_armor_lunar, 'F', ModItems.fins_quad_titanium, 'T', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.XENON.getID()), 'P', ModItems.bj_plate, 'I', ModItems.mp_thruster_10_xenon, 'C', ModItems.crystal_phosphorus }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_legs, 1), new Object[] { "MBM", "NSN", "N N", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_legs, 'B', ModBlocks.block_starmetal }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_boots, 1), new Object[] { "N N", "BSB", 'N', ModItems.plate_armor_lunar, 'S', ModItems.starmetal_boots, 'B', ModBlocks.block_starmetal }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ANY_PLASTIC.ingot(), 'F', ModItems.gas_mask_filter }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModItems.titanium_helmet, 'I', ANY_PLASTIC.ingot(), 'F', ModItems.gas_mask_filter }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_plate, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_legs, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_helmet, 1), new Object[] { "PWP", "PBP", "FSF", 'P', ModItems.plate_armor_fau, 'W', new ItemStack(Blocks.wool, 1, 14), 'B', ModItems.starmetal_helmet, 'F', ModItems.gas_mask_filter, 'S', ModItems.pipes_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_helmet, 1), new Object[] { "PWP", "PBP", "FSF", 'P', ModItems.plate_armor_fau, 'W', new ItemStack(Blocks.wool, 1, 14), 'B', ModItems.starmetal_helmet, 'F', ModItems.gas_mask_filter, 'S', STEEL.pipe() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_plate, 1), new Object[] { "MCM", "PBP", "PSP", 'M', ModItems.motor_desh, 'C', ModItems.demon_core_closed, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_plate, 'S', ModBlocks.ancient_scrap }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_legs, 1), new Object[] { "MPM", "PBP", "PDP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_legs, 'D', ModItems.billet_polonium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_boots, 1), new Object[] { "PDP", "PBP", 'P', ModItems.plate_armor_fau, 'D', ModItems.billet_polonium, 'B', ModItems.starmetal_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_helmet, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_helmet, 'C', ModItems.circuit_targeting_tier6 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_helmet, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_helmet, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_plate, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_plate_jetpack, 'C', ModItems.singularity_spark }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_legs, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_legs, 'C', ModItems.coin_worm }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dns_boots, 1), new Object[] { "PCP", "PBP", "PSP", 'P', ModItems.plate_armor_dnt, 'S', ModItems.ingot_chainsteel, 'B', ModItems.bj_boots, 'C', ModItems.demon_core_closed }); @@ -101,16 +101,20 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_plate, 1), new Object[] { "C C", "DXD", "CFC", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_plate, 'F', ModItems.tank_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_legs, 1), new Object[] { "CCC", "DXD", "C C", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_boots, 1), new Object[] { "C C", "DXD", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_helmet, 1), new Object[] { "W W", "W W", "SCS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', ModItems.circuit_targeting_tier3 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_plate, 1), new Object[] { "W W", "CDC", "SWS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', ModItems.circuit_targeting_tier3, 'D', ModBlocks.machine_diesel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_helmet, 1), new Object[] { "W W", "W W", "SCS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_plate, 1), new Object[] { "W W", "CDC", "SWS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'D', ModBlocks.machine_diesel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_legs, 1), new Object[] { "M M", "S S", "W W", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_boots, 1), new Object[] { "W W", "S S", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_helmet, 1), new Object[] { "TCT", "TGT", "RRR", 'T', TI.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'G', KEY_ANYPANE, 'R', RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_plate, 1), new Object[] { "T T", "TCT", "RRR", 'T', TI.plate(), 'C', TI.plateCast(), 'R', RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_legs, 1), new Object[] { "TCT", "R R", "T T", 'T', TI.plate(), 'C', TI.plateCast(), 'R', RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_boots, 1), new Object[] { "R R", "T T", 'T', TI.plate(), 'R', RUBBER.ingot() }); //Bismuth fursui- I mean armor CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_helmet, 1), new Object[] { "GPP", "P ", "FPP", 'G', Items.gold_ingot, 'P', ModItems.plate_bismuth, 'F', ModItems.rag }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_plate, 1), new Object[] { "RWR", "PCP", "SFS", 'R', ModItems.crystal_rare, 'W', ModItems.wire_gold, 'P', ModItems.plate_bismuth, 'C', ModItems.laser_crystal_bismuth, 'S', ModItems.ring_starmetal, 'F', ModItems.rag }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_plate, 1), new Object[] { "RWR", "PCP", "SFS", 'R', ModItems.crystal_rare, 'W', GOLD.wireFine(), 'P', ModItems.plate_bismuth, 'C', ModItems.laser_crystal_bismuth, 'S', ModItems.ring_starmetal, 'F', ModItems.rag }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_legs, 1), new Object[] { "FSF", " ", "FSF", 'F', ModItems.rag, 'S', ModItems.ring_starmetal }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_boots, 1), new Object[] { "W W", "P P", 'W', ModItems.wire_gold, 'P', ModItems.plate_bismuth }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_boots, 1), new Object[] { "W W", "P P", 'W', GOLD.wireFine(), 'P', ModItems.plate_bismuth }); //Euphemium armor CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_helmet, 1), new Object[] { "EEE", "E E", 'E', ModItems.plate_euphemium }); @@ -119,10 +123,10 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_boots, 1), new Object[] { "E E", "E E", 'E', ModItems.plate_euphemium }); //Jetpacks - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_fly, 1), new Object[] { "ACA", "TLT", "D D", 'A', AL.plate(), 'C', ModItems.circuit_targeting_tier1, 'T', ModItems.tank_steel, 'L', Items.leather, 'D', ModItems.thruster_small }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_break, 1), new Object[] { "ICI", "TJT", "I I", 'C', ModItems.circuit_targeting_tier2, 'T', ModItems.ingot_dura_steel, 'J', ModItems.jetpack_fly, 'I', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_vector, 1), new Object[] { "TCT", "MJM", "B B", 'C', ModItems.circuit_targeting_tier3, 'T', ModItems.tank_steel, 'J', ModItems.jetpack_break, 'M', ModItems.motor, 'B', ModItems.bolt_dura_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_boost, 1), new Object[] { "PCP", "DJD", "PAP", 'C', ModItems.circuit_targeting_tier4, 'P', BIGMT.plate(), 'D', DESH.ingot(), 'J', ModItems.jetpack_vector, 'A', ModItems.board_copper }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_fly, 1), new Object[] { "ACA", "TLT", "D D", 'A', AL.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'T', ModItems.tank_steel, 'L', Items.leather, 'D', ModItems.thruster_small }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_break, 1), new Object[] { "ICI", "TJT", "I I", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'T', ModItems.ingot_dura_steel, 'J', ModItems.jetpack_fly, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_vector, 1), new Object[] { "TCT", "MJM", "B B", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'T', ModItems.tank_steel, 'J', ModItems.jetpack_break, 'M', ModItems.motor, 'B', DURA.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_boost, 1), new Object[] { "PCP", "DJD", "PAP", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'P', BIGMT.plate(), 'D', DESH.ingot(), 'J', ModItems.jetpack_vector, 'A', CU.plateCast() }); //Hazmat CraftingManager.addRecipeAuto(new ItemStack(ModItems.hazmat_helmet, 1), new Object[] { "EEE", "EIE", " P ", 'E', ModItems.hazmat_cloth, 'I', KEY_ANYPANE, 'P', IRON.plate() }); @@ -150,26 +154,26 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.paa_boots, 1), new Object[] { "E E", "N N", 'E', ModItems.plate_paa, 'N', OreDictManager.getReflector() }); //Liquidator Suit - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_helmet, 1), new Object[] { "III", "CBC", "III", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_helmet_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_plate, 1), new Object[] { "ICI", "TBT", "ICI", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_plate_grey, 'T', ModItems.gas_empty }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_legs, 1), new Object[] { "III", "CBC", "I I", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_legs_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_boots, 1), new Object[] { "ICI", "IBI", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_boots_grey }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_helmet, 1), new Object[] { "III", "CBC", "III", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_helmet_grey }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_plate, 1), new Object[] { "ICI", "TBT", "ICI", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_plate_grey, 'T', ModItems.gas_empty }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_legs, 1), new Object[] { "III", "CBC", "I I", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_legs_grey }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_boots, 1), new Object[] { "ICI", "IBI", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_boots_grey }); //Masks CraftingManager.addRecipeAuto(new ItemStack(ModItems.goggles, 1), new Object[] { "P P", "GPG", 'G', KEY_ANYPANE, 'P', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', STEEL.plate(), 'F', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_m65, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', ModItems.plate_polymer, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_m65, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', ANY_RUBBER.ingot(), 'F', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_olde, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', Items.leather, 'F', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ModItems.plate_polymer, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ANY_RUBBER.ingot(), 'F', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_of_infamy, 1), new Object[] { "III", "III", " I ", 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ModItems.plate_polymer, 'G', ModBlocks.glass_ash, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ANY_RUBBER.ingot(), 'G', ModBlocks.glass_ash, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_rag, 1), new Object[] { "RRR", 'R', ModItems.rag_damp }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_piss, 1), new Object[] { "RRR", 'R', ModItems.rag_piss }); //Capes CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_radiation, 1), new Object[] { "W W", "WIW", "WDW", 'W', new ItemStack(Blocks.wool, 1, 11), 'D', KEY_YELLOW, 'I', ModItems.nuclear_waste }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_gasmask, 1), new Object[] { "W W", "WIW", "WDW", 'W', new ItemStack(Blocks.wool, 1, 4), 'D', KEY_BLACK, 'I', ModItems.gas_mask }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_schrabidium, 1), new Object[] { "W W", "WIW", "WDW", 'W', SA326.ingot(), 'D', KEY_BLACK, 'I', ModItems.circuit_red_copper }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_schrabidium, 1), new Object[] { "W W", "WIW", "WDW", 'W', SA326.ingot(), 'D', KEY_BLACK, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); //Configged if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleArmorRecipes) { diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index d4dd9d69c..6cd44bb5b 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -2,8 +2,10 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.ItemEnums; import com.hbm.items.ModItems; import com.hbm.main.CraftingManager; @@ -29,7 +31,7 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 1), new Object[] { "TTT", "TRT", "TTT", 'T', ModItems.grenade_gascan, 'R', ModItems.detonator_laser }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 2), new Object[] { "TTT", "TRT", "TTT", 'T', ModItems.pellet_gas, 'R', ModItems.detonator_laser }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 3), new Object[] { "TRT", 'T', ModItems.grenade_cloud, 'R', ModItems.detonator_laser }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 4), new Object[] { "TR", 'T', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), 'R', ModItems.detonator_laser }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 4), new Object[] { "TR", 'T', DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_HIGH), 'R', ModItems.detonator_laser }); //Food CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_waffle, 1), new Object[] { "WEW", "MPM", "WEW", 'W', Items.wheat, 'E', Items.egg, 'M', Items.milk_bucket, 'P', ModItems.man_core }); @@ -50,9 +52,9 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.balefire_and_ham, 1), new Object[] { ModItems.balefire_scrambled, Items.cooked_beef }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.med_ipecac, 1), new Object[] { Items.glass_bottle, Items.nether_wart }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.med_ptsd, 1), new Object[] { ModItems.med_ipecac }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), DIAMOND.dust(), Items.wheat, ModItems.bolt_tungsten, ModItems.wire_copper, STEEL.plate() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), EMERALD.dust(), Items.wheat, ModItems.bolt_tungsten, ModItems.wire_copper, STEEL.plate() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.chocolate_milk, 1), new Object[] { KEY_ANYPANE, new ItemStack(Items.dye, 1, 3), Items.milk_bucket, KNO.block(), S.dust(), S.dust(), S.dust(), P_RED.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), DIAMOND.dust(), Items.wheat, STEEL.bolt(), CU.wireFine(), STEEL.plate() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), EMERALD.dust(), Items.wheat, STEEL.bolt(), CU.wireFine(), STEEL.plate() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.chocolate_milk, 1), new Object[] { KEY_ANYPANE, new ItemStack(Items.dye, 1, 3), Items.milk_bucket, Fluids.NITROGLYCERIN.getDict(1_000) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.loops), new Object[] { ModItems.flame_pony, Items.wheat, Items.sugar }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.loop_stew), new Object[] { ModItems.loops, ModItems.can_smart, Items.bowl }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.coffee), new Object[] { COAL.dust(), Items.milk_bucket, Items.potionitem, Items.sugar }); @@ -75,7 +77,6 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.mucho_mango, 1), new Object[] { Items.potionitem, Items.sugar, Items.sugar, KEY_ORANGE }); //Canteens - CraftingManager.addRecipeAuto(new ItemStack(ModItems.canteen_13, 1), new Object[] { "O", "P", 'O', Items.potionitem, 'P', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.canteen_vodka, 1), new Object[] { "O", "P", 'O', Items.potato, 'P', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.canteen_fab, 1), new Object[] { "VMV", "MVM", "VMV", 'V', ModItems.canteen_vodka, 'M', ModItems.powder_magic }); @@ -91,7 +92,6 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.bottle2_fritz, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, W.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.bottle2_korl_special, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, CU.dust(), ST.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.bottle2_fritz_special, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, W.dust(), TH232.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.bottle2_sunset, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, GOLD.dust() }); //Syringes CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_empty, 6), new Object[] { "P", "C", "B", 'B', Item.getItemFromBlock(Blocks.iron_bars), 'C', ModItems.cell_empty, 'P', IRON.plate() }); @@ -105,12 +105,13 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_awesome, 1), new Object[] { "SNS", "PCP", "SNS", 'C', ModItems.syringe_empty, 'S', S.dust(), 'P', PU239.nugget(), 'N', PU238.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_empty, 6), new Object[] { "P", "C", "B", 'B', Blocks.iron_bars, 'C', ModItems.rod_empty, 'P', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_stimpak, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.nether_wart, 'S', ModItems.syringe_metal_empty }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.syringe_metal_stimpak, 1), new Object[] { ModItems.nitra_small, ModItems.nitra_small, ModItems.nitra_small, ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_medx, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.quartz, 'S', ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_psycho, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.glowstone_dust, 'S', ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', Items.leather }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', Items.leather }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ANY_RUBBER.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.syringe_taint), new Object[] { ModItems.bottle2_empty, ModItems.syringe_metal_empty, ModItems.ducttape, ModItems.powder_magic, SA326.nugget(), Items.potionitem }); //Medicine @@ -134,12 +135,12 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', Items.leather, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); //IV Bags - CraftingManager.addRecipeAuto(new ItemStack(ModItems.iv_empty, 4), new Object[] { "S", "I", "S", 'S', ModItems.plate_polymer, 'I', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.iv_empty, 4), new Object[] { "S", "I", "S", 'S', ANY_RUBBER.ingot(), 'I', IRON.plate() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.iv_xp_empty, 1), new Object[] { ModItems.iv_empty, ModItems.powder_magic }); //Radaway @@ -149,7 +150,7 @@ public class ConsumableRecipes { //Cladding CraftingManager.addShapelessAuto(new ItemStack(ModItems.cladding_paint, 1), new Object[] { PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget(), Items.clay_ball, Items.glass_bottle }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ModItems.plate_polymer, 'C', COAL.dust(), 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ANY_RUBBER.ingot(), 'C', COAL.dust(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_lead, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_rubber, 'P', PB.plate(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_desh, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_lead, 'P', ModItems.plate_desh, 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_ghiorsium, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_desh, 'P', ModItems.ingot_gh336, 'D', ModItems.ducttape }); @@ -162,24 +163,30 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_ghiorsium, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', GH336.ingot(), 'S', U238.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_polonium, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', PO210.block() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_era, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', ModItems.ingot_semtex }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ModItems.plate_polymer, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_sapi, 1), new Object[] { "PKP", "DPD", "PKP", 'P', POLYMER.ingot(), 'K', ModItems.insert_kevlar, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', POLYMER.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ASBESTOS.ingot(), 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', ModItems.ingot_meteorite_forged }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ANY_RUBBER.ingot(), 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_sapi, 1), new Object[] { "PKP", "DPD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_kevlar, 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', WEAPONSTEEL.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ASBESTOS.ingot(), 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_yharonite, 1), new Object[] { "YIY", "IYI", "YIY", 'Y', ModItems.billet_yharonite, 'I', ModItems.insert_du }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.australium_iii, 1), new Object[] { "WSW", "PAP", "SPS", 'S', STEEL.plateWelded(), 'P', ANY_PLASTIC.ingot(), 'A', AUSTRALIUM.ingot(), 'W', GOLD.wireDense() }); //Servos - CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set, 1), new Object[] { "MBM", "PBP", "MBM", 'M', ModItems.motor, 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set_desh, 1), new Object[] { "MBM", "PSP", "MBM", 'M', ModItems.motor_desh, 'B', ModItems.bolt_dura_steel, 'P', ALLOY.plate(), 'S', ModItems.servo_set }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set, 1), new Object[] { "MBM", "PBP", "MBM", 'M', ModItems.motor, 'B', STEEL.bolt(), 'P', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set_desh, 1), new Object[] { "MBM", "PSP", "MBM", 'M', ModItems.motor_desh, 'B', DURA.bolt(), 'P', ALLOY.plate(), 'S', ModItems.servo_set }); //Helmet Mods - CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'F', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask_mono, 1), new Object[] { " D ", "DID", " F ", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'G', KEY_ANYPANE, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask_mono, 1), new Object[] { " D ", "DID", " F ", 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'F', IRON.plate() }); //Boot Mods - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_rubber, 1), new Object[] { "P P", "IDI", "P P", 'P', ModItems.plate_polymer, 'I', IRON.plate(), 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_rubber, 1), new Object[] { "P P", "IDI", "P P", 'P', ANY_RUBBER.ingot(), 'I', IRON.plate(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_slime, 1), new Object[] { "SPS", "DSD", "SPS", 'S', KEY_SLIME, 'P', ModItems.pads_rubber, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'S', ModItems.pads_slime }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'S', ModItems.pads_slime }); + + //Batteries + CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery, 1), new Object[] { "PCP", "PCP", "PCP", 'P', STEEL.plate(), 'C', ModBlocks.capacitor_gold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk2, 1), new Object[] { "PCP", "PCP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.capacitor_niobium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk3, 1), new Object[] { "PCP", "PCP", "PCP", 'P', GOLD.plate(), 'C', ModBlocks.capacitor_tantalium }); //Special Mods CraftingManager.addRecipeAuto(new ItemStack(ModItems.horseshoe_magnet, 1), new Object[] { "L L", "I I", "ILI", 'L', ModItems.lodestone, 'I', IRON.ingot() }); @@ -189,21 +196,22 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_fab, 1), new Object[] { "GHG", "MCM", "GHG", 'G', PO210.billet(), 'H', ModItems.heart_booster, 'M', ModItems.canteen_fab, 'C', ModItems.coin_worm }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ink, 1), new Object[] { "FPF", "PIP", "FPF", 'F', new ItemStack(Blocks.red_flower, 1, OreDictionary.WILDCARD_VALUE), 'P', ModItems.armor_polish, 'I', KEY_BLACK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bathwater_mk2, 1), new Object[] { "MWM", "WBW", "MWM", 'M', ModItems.bottle_mercury, 'W', ModItems.nuclear_waste, 'B', ModItems.bathwater }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.back_tesla, 1), new Object[] { "DGD", "GTG", "DGD", 'D', ModItems.ducttape, 'G', ModItems.wire_gold, 'T', ModBlocks.tesla }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.back_tesla, 1), new Object[] { "DGD", "GTG", "DGD", 'D', ModItems.ducttape, 'G', GOLD.wireFine(), 'T', ModBlocks.tesla }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.medal_liquidator, 1), new Object[] { "GBG", "BFB", "GBG", 'G', AU198.nugget(), 'B', B.ingot(), 'F', ModItems.debris_fuel }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.injector_5htp, 1), new Object[] { ModItems.five_htp, ModItems.circuit_targeting_tier1, BIGMT.plate() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.injector_5htp, 1), new Object[] { ModItems.five_htp, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), BIGMT.plate() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.injector_knife, 1), new Object[] { ModItems.injector_5htp, Items.iron_sword }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.shackles, 1), new Object[] { "CIC", "C C", "I I", 'I', ModItems.ingot_chainsteel, 'C', ModBlocks.chain }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.black_diamond, 1), new Object[] { "NIN", "IGI", "NIN", 'N', AU198.nugget(), 'I', ModItems.ink, 'G', VOLCANIC.gem() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.protection_charm, 1), new Object[] { " M ", "MDM", " M ", 'M', ModItems.fragment_meteorite, 'D', DIAMOND.gem() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteor_charm, 1), new Object[] { " M ", "MDM", " M ", 'M', ModItems.fragment_meteorite, 'D', VOLCANIC.gem() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.neutrino_lens, 1), new Object[] { "PSP", "SCS", "PSP", 'P', ANY_PLASTIC.ingot(), 'S', STAR.ingot(), 'C', KEY_CIRCUIT_BISMUTH }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_tester, 1), new Object[] { "G", "C", "I", 'G', GOLD.plate(), 'C', ModItems.circuit_aluminium, 'I', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.neutrino_lens, 1), new Object[] { "PSP", "SCS", "PSP", 'P', ANY_PLASTIC.ingot(), 'S', STAR.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_tester, 1), new Object[] { "G", "C", "I", 'G', GOLD.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'I', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser_gold, 1), new Object[] { "GPG", "PRP", "GPG", 'G', Items.gunpowder, 'P', GOLD.plate(), 'R', "record" }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ballistic_gauntlet, 1), new Object[] { " WS", "WRS", " RS", 'W', ModItems.wire_copper, 'R', ModItems.ring_starmetal, 'S', STEEL.plate() }); - + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ballistic_gauntlet, 1), new Object[] { " WS", "WRS", " RS", 'W', CU.wireFine(), 'R', ModItems.ring_starmetal, 'S', STEEL.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.night_vision, 1), "P P", "GCG", 'P', ANY_PLASTIC.ingot(), 'G', KEY_ANYGLASS, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC)); + //Stealth boy - CraftingManager.addRecipeAuto(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Blocks.stone_button, 'L', Items.leather, 'I', STEEL.ingot(), 'C', ModItems.circuit_red_copper }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Blocks.stone_button, 'L', Items.leather, 'I', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); //RD40 Filters CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_filter, 1), new Object[] { "I", "F", 'F', ModItems.filter_coal, 'I', IRON.plate() }); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 039644891..6ab5ea10b 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -1,6 +1,8 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.BlockEnums.EnumStoneType; +import com.hbm.inventory.material.MaterialShapes; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; @@ -31,9 +33,6 @@ public class MineralRecipes { add1To9Pair(ModItems.dust, ModItems.dust_tiny); add1To9Pair(ModItems.powder_coal, ModItems.powder_coal_tiny); add1To9Pair(ModItems.ingot_mercury, ModItems.nugget_mercury); - - add1To9Pair(ModBlocks.sand_gold, ModItems.powder_gold); - add1To9Pair(ModBlocks.sand_gold198, ModItems.powder_au198); add1To9Pair(ModBlocks.block_aluminium, ModItems.ingot_aluminium); add1To9Pair(ModBlocks.block_graphite, ModItems.ingot_graphite); @@ -45,7 +44,6 @@ public class MineralRecipes { add1To9Pair(ModBlocks.block_schrabidate, ModItems.ingot_schrabidate); add1To9Pair(ModBlocks.block_coltan, ModItems.fragment_coltan); add1To9Pair(ModBlocks.block_smore, ModItems.ingot_smore); - add1To9Pair(ModBlocks.block_niobium, ModItems.ingot_niobium); add1To9Pair(ModBlocks.block_semtex, ModItems.ingot_semtex); add1To9Pair(ModBlocks.block_c4, ModItems.ingot_c4); add1To9Pair(ModBlocks.block_polymer, ModItems.ingot_polymer); @@ -59,11 +57,14 @@ public class MineralRecipes { add1To9PairSameMeta(Item.getItemFromBlock(ModBlocks.block_coke), ModItems.coke, i); } + addMineralSet(ModItems.nugget_niobium, ModItems.ingot_niobium, ModBlocks.block_niobium); addMineralSet(ModItems.nugget_bismuth, ModItems.ingot_bismuth, ModBlocks.block_bismuth); addMineralSet(ModItems.nugget_tantalium, ModItems.ingot_tantalium, ModBlocks.block_tantalium); addMineralSet(ModItems.nugget_zirconium, ModItems.ingot_zirconium, ModBlocks.block_zirconium); addMineralSet(ModItems.nugget_dineutronium, ModItems.ingot_dineutronium, ModBlocks.block_dineutronium); addMineralSet(ModItems.nuclear_waste_vitrified_tiny, ModItems.nuclear_waste_vitrified, ModBlocks.block_waste_vitrified); + + add1To9Pair(ModItems.ingot_silicon, ModItems.nugget_silicon); add1To9Pair(ModItems.powder_boron, ModItems.powder_boron_tiny); add1To9Pair(ModItems.powder_sr90, ModItems.powder_sr90_tiny); @@ -106,31 +107,31 @@ public class MineralRecipes { addBillet(ModItems.billet_cobalt, ModItems.ingot_cobalt, ModItems.nugget_cobalt); addBillet(ModItems.billet_co60, ModItems.ingot_co60, ModItems.nugget_co60); - addBillet(ModItems.billet_sr90, ModItems.ingot_sr90, ModItems.nugget_sr90, SR90.allNuggets()); - addBillet(ModItems.billet_uranium, ModItems.ingot_uranium, ModItems.nugget_uranium, U.allNuggets()); - addBillet(ModItems.billet_u233, ModItems.ingot_u233, ModItems.nugget_u233, U233.allNuggets()); - addBillet(ModItems.billet_u235, ModItems.ingot_u235, ModItems.nugget_u235, U235.allNuggets()); - addBillet(ModItems.billet_u238, ModItems.ingot_u238, ModItems.nugget_u238, U238.allNuggets()); - addBillet(ModItems.billet_th232, ModItems.ingot_th232, ModItems.nugget_th232, TH232.allNuggets()); - addBillet(ModItems.billet_plutonium, ModItems.ingot_plutonium, ModItems.nugget_plutonium, PU.allNuggets()); - addBillet(ModItems.billet_pu238, ModItems.ingot_pu238, ModItems.nugget_pu238, PU238.allNuggets()); - addBillet(ModItems.billet_pu239, ModItems.ingot_pu239, ModItems.nugget_pu239, PU239.allNuggets()); - addBillet(ModItems.billet_pu240, ModItems.ingot_pu240, ModItems.nugget_pu240, PU240.allNuggets()); - addBillet(ModItems.billet_pu241, ModItems.ingot_pu241, ModItems.nugget_pu241, PU241.allNuggets()); + addBillet(ModItems.billet_sr90, ModItems.ingot_sr90, ModItems.nugget_sr90, SR90.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_uranium, ModItems.ingot_uranium, ModItems.nugget_uranium, U.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_u233, ModItems.ingot_u233, ModItems.nugget_u233, U233.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_u235, ModItems.ingot_u235, ModItems.nugget_u235, U235.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_u238, ModItems.ingot_u238, ModItems.nugget_u238, U238.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_th232, ModItems.ingot_th232, ModItems.nugget_th232, TH232.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_plutonium, ModItems.ingot_plutonium, ModItems.nugget_plutonium, PU.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_pu238, ModItems.ingot_pu238, ModItems.nugget_pu238, PU238.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_pu239, ModItems.ingot_pu239, ModItems.nugget_pu239, PU239.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_pu240, ModItems.ingot_pu240, ModItems.nugget_pu240, PU240.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_pu241, ModItems.ingot_pu241, ModItems.nugget_pu241, PU241.all(MaterialShapes.NUGGET)); addBillet(ModItems.billet_pu_mix, ModItems.ingot_pu_mix, ModItems.nugget_pu_mix); - addBillet(ModItems.billet_am241, ModItems.ingot_am241, ModItems.nugget_am241, AM241.allNuggets()); - addBillet(ModItems.billet_am242, ModItems.ingot_am242, ModItems.nugget_am242, AM242.allNuggets()); + addBillet(ModItems.billet_am241, ModItems.ingot_am241, ModItems.nugget_am241, AM241.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_am242, ModItems.ingot_am242, ModItems.nugget_am242, AM242.all(MaterialShapes.NUGGET)); addBillet(ModItems.billet_am_mix, ModItems.ingot_am_mix, ModItems.nugget_am_mix); - addBillet(ModItems.billet_neptunium, ModItems.ingot_neptunium, ModItems.nugget_neptunium, NP237.allNuggets()); - addBillet(ModItems.billet_polonium, ModItems.ingot_polonium, ModItems.nugget_polonium, PO210.allNuggets()); - addBillet(ModItems.billet_technetium, ModItems.ingot_technetium, ModItems.nugget_technetium, TC99.allNuggets()); - addBillet(ModItems.billet_au198, ModItems.ingot_au198, ModItems.nugget_au198, AU198.allNuggets()); - addBillet(ModItems.billet_pb209, ModItems.ingot_pb209, ModItems.nugget_pb209, PB209.allNuggets()); //and so forth - addBillet(ModItems.billet_ra226, ModItems.ingot_ra226, ModItems.nugget_ra226, RA226.allNuggets()); - addBillet(ModItems.billet_actinium, ModItems.ingot_actinium, ModItems.nugget_actinium, AC227.allNuggets()); - addBillet(ModItems.billet_schrabidium, ModItems.ingot_schrabidium, ModItems.nugget_schrabidium, "nuggetSchrabidium"); - addBillet(ModItems.billet_solinium, ModItems.ingot_solinium, ModItems.nugget_solinium, "nuggetSolinium"); - addBillet(ModItems.billet_gh336, ModItems.ingot_gh336, ModItems.nugget_gh336, GH336.allNuggets()); + addBillet(ModItems.billet_neptunium, ModItems.ingot_neptunium, ModItems.nugget_neptunium, NP237.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_polonium, ModItems.ingot_polonium, ModItems.nugget_polonium, PO210.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_technetium, ModItems.ingot_technetium, ModItems.nugget_technetium, TC99.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_au198, ModItems.ingot_au198, ModItems.nugget_au198, AU198.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_pb209, ModItems.ingot_pb209, ModItems.nugget_pb209, PB209.all(MaterialShapes.NUGGET)); //and so forth + addBillet(ModItems.billet_ra226, ModItems.ingot_ra226, ModItems.nugget_ra226, RA226.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_actinium, ModItems.ingot_actinium, ModItems.nugget_actinium, AC227.all(MaterialShapes.NUGGET)); + addBillet(ModItems.billet_schrabidium, ModItems.ingot_schrabidium, ModItems.nugget_schrabidium, SA326.nugget()); + addBillet(ModItems.billet_solinium, ModItems.ingot_solinium, ModItems.nugget_solinium, SA327.nugget()); + addBillet(ModItems.billet_gh336, ModItems.ingot_gh336, ModItems.nugget_gh336, GH336.all(MaterialShapes.NUGGET)); addBillet(ModItems.billet_uranium_fuel, ModItems.ingot_uranium_fuel, ModItems.nugget_uranium_fuel); addBillet(ModItems.billet_thorium_fuel, ModItems.ingot_thorium_fuel, ModItems.nugget_thorium_fuel); addBillet(ModItems.billet_plutonium_fuel, ModItems.ingot_plutonium_fuel, ModItems.nugget_plutonium_fuel); @@ -146,6 +147,7 @@ public class MineralRecipes { addBillet(ModItems.billet_beryllium, ModItems.ingot_beryllium, ModItems.nugget_beryllium, BE.nugget()); addBillet(ModItems.billet_zirconium, ModItems.ingot_zirconium, ModItems.nugget_zirconium, ZR.nugget()); addBillet(ModItems.billet_bismuth, ModItems.ingot_bismuth, ModItems.nugget_bismuth); + addBillet(ModItems.billet_silicon, ModItems.ingot_silicon, ModItems.nugget_silicon, SI.nugget()); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_thorium_fuel, 6), new Object[] { ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_u233 }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetUranium233" })); @@ -417,11 +419,11 @@ public class MineralRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.ingot_mercury, 8), new Object[] { "#", '#', ModItems.bottle_mercury }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire, 1), new Object[] { "###", "###", "###", '#', ModItems.egg_balefire_shard }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 9), new Object[] { "#", '#', ModItems.egg_balefire }); + GameRegistry.addRecipe(new ItemStack(ModItems.nitra, 1), new Object[] { "##", "##", '#', ModItems.nitra_small }); + GameRegistry.addRecipe(new ItemStack(ModItems.nitra_small, 4), new Object[] { "#", '#', ModItems.nitra }); add1To9Pair(ModItems.powder_paleogenite, ModItems.powder_paleogenite_tiny); add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium); - GameRegistry.addRecipe(new ItemStack(ModBlocks.hazmat, 8), new Object[] { "###", "# #", "###", '#', ModItems.hazmat_cloth }); - GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_cloth, 1), new Object[] { "#", '#', ModBlocks.hazmat }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 1), new Object[] { "##", "##", '#', ModItems.powder_balefire }); add9To1(ModItems.cell_balefire, ModItems.egg_balefire_shard); @@ -446,11 +448,12 @@ public class MineralRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, Items.clay_ball, AL.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, Items.clay_ball, AL.ore() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), KEY_SAND }); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_IRON), new ItemStack(ModItems.powder_iron)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_COPPER), new ItemStack(ModItems.powder_copper)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_LITHIUM), new ItemStack(ModItems.powder_lithium)); - add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_SILICON), new ItemStack(ModItems.powder_quartz)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_SILICON), new ItemStack(ModItems.nugget_silicon, 3)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_LEAD), new ItemStack(ModItems.powder_lead)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_TITANIUM), new ItemStack(ModItems.powder_titanium)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_ALUMINIUM), new ItemStack(ModItems.powder_aluminium)); @@ -531,6 +534,10 @@ public class MineralRecipes { addBillet(billet, ingot, nugget); } + public static void addBilletFragment(ItemStack billet, ItemStack nugget) { + GameRegistry.addRecipe(billet.copy(), new Object[] { "###", "###", '#', nugget }); + } + public static void addBillet(Item billet, Item nugget) { GameRegistry.addRecipe(new ItemStack(billet), new Object[] { "###", "###", '#', nugget }); GameRegistry.addShapelessRecipe(new ItemStack(nugget, 6), new Object[] { billet }); diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index 22200d0ef..5b70719d0 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -4,8 +4,12 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemChemicalDye.EnumChemDye; +import com.hbm.items.machine.ItemScraps; import com.hbm.main.CraftingManager; import net.minecraft.init.Blocks; @@ -29,6 +33,7 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_semtex_mix, 1), new Object[] { ModItems.solid_fuel, ModItems.ballistite, KNO.dust() }); CraftingManager.addShapelessAuto(new ItemStack(Items.clay_ball, 4), new Object[] { KEY_SAND, ModItems.dust, ModItems.dust, Fluids.WATER.getDict(1_000) }); CraftingManager.addShapelessAuto(new ItemStack(Items.clay_ball, 4), new Object[] { Blocks.clay }); //clay uncrafting because placing and breaking it isn't worth anyone's time + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_cement, 4), new Object[] { LIMESTONE.dust(), Items.clay_ball, Items.clay_ball, Items.clay_ball }); //Other CraftingManager.addShapelessAuto(new ItemStack(ModItems.ingot_steel_dusted, 1), new Object[] { STEEL.ingot(), COAL.dust() }); @@ -53,18 +58,22 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_desh_ready, 1), new Object[] { ModItems.powder_desh_mix, ModItems.ingot_mercury, ModItems.ingot_mercury, COAL.dust() }); //Metal powders - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_magnetized_tungsten, 1), new Object[] { W.dust(), SA326.nugget() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_tcalloy, 1), new Object[] { STEEL.dust(), TC99.nugget() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_steel, 1), new Object[] { IRON.dust(), COAL.dust() }); + CraftingManager.addShapelessAuto(ItemScraps.create(new MaterialStack(Mats.MAT_MINGRADE, MaterialShapes.INGOT.q(2))), new Object[] { CU.dust(), REDSTONE.dust() }); + CraftingManager.addShapelessAuto(ItemScraps.create(new MaterialStack(Mats.MAT_MAGTUNG, MaterialShapes.INGOT.q(1))), new Object[] { W.dust(), SA326.nugget() }); + CraftingManager.addShapelessAuto(ItemScraps.create(new MaterialStack(Mats.MAT_TCALLOY, MaterialShapes.INGOT.q(1))), new Object[] { STEEL.dust(), TC99.nugget() }); + CraftingManager.addShapelessAuto(ItemScraps.create(new MaterialStack(Mats.MAT_STEEL, MaterialShapes.INGOT.q(1))), new Object[] { IRON.dust(), COAL.dust() }); + CraftingManager.addShapelessAuto(ItemScraps.create(new MaterialStack(Mats.MAT_STEEL, MaterialShapes.INGOT.q(4))), new Object[] { IRON.dust(), IRON.dust(), IRON.dust(), IRON.dust(), COAL.dust(), COAL.dust(), COAL.dust(), COAL.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 1), new Object[] { new ItemStack(Items.coal, 1, 1), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 2), new Object[] { COAL.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 4), new Object[] { F.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 8), new Object[] { PB.dust(), S.dust(), KEY_SAND }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 12), new Object[] { LIMESTONE.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 12), new Object[] { CA.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 16), new Object[] { BORAX.dust(), KEY_SAND }); - + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_fertilizer, 4), new Object[] { CA.dust(), P_RED.dust(), KNO.dust(), S.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_fertilizer, 4), new Object[] { ANY_ASH.any(), P_RED.dust(), KNO.dust(), S.dust() }); if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting) { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_advanced_alloy, 4), new Object[] { REDSTONE.dust(), IRON.dust(), COAL.dust(), CU.dust() }); @@ -92,7 +101,7 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.PINK, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE) }); CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW) }); - for(int i = 0; i < 15; i++) CraftingManager.addShapelessAuto(new ItemStack(ModItems.crayon, 4, i), new Object[] { new ItemStack(ModItems.chemical_dye, 1, i), ANY_TAR.any() }); + for(int i = 0; i < 15; i++) CraftingManager.addShapelessAuto(new ItemStack(ModItems.crayon, 4, i), new Object[] { new ItemStack(ModItems.chemical_dye, 1, i), ANY_TAR.any(), Items.paper }); } } diff --git a/src/main/java/com/hbm/crafting/RodRecipes.java b/src/main/java/com/hbm/crafting/RodRecipes.java index 06f29fb44..bd15c0322 100644 --- a/src/main/java/com/hbm/crafting/RodRecipes.java +++ b/src/main/java/com/hbm/crafting/RodRecipes.java @@ -3,6 +3,8 @@ package com.hbm.crafting; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.main.CraftingManager; @@ -91,7 +93,7 @@ public class RodRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_source, 1), new Object[] { " U ", "PUP", " U ", 'P', IRON.plate(), 'U', ModItems.billet_ra226be }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_boron, 1), new Object[] { " B ", " W ", " B ", 'B', B.ingot(), 'W', KEY_PLANKS }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.pile_rod_lithium, 1), new Object[] { ModItems.cell_empty, LI.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_detector, 1), new Object[] { " B ", "CM ", " B ", 'B', B.ingot(), 'C', ModItems.circuit_aluminium, 'M', ModItems.motor }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_detector, 1), new Object[] { " B ", "CM ", " B ", 'B', B.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_fuel_empty, 1), new Object[] { "ZRZ", "Z Z", "ZRZ", 'Z', ZR.ingot(), 'R', ModItems.rod_quad_empty }); addRBMKRod(U, ModItems.rbmk_fuel_ueu); @@ -136,6 +138,25 @@ public class RodRecipes { addPellet(PB, EnumWatzType.LEAD); addPellet(B, EnumWatzType.BORON); addPellet(U238, EnumWatzType.DU); + + //PWR fuel + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MEU), new Object[] { "F", "I", "F", 'F', ModItems.billet_uranium_fuel, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEU233), new Object[] { "F", "I", "F", 'F', U233.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEU235), new Object[] { "F", "I", "F", 'F', U235.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MEN), new Object[] { "F", "I", "F", 'F', ModItems.billet_neptunium_fuel, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEN237), new Object[] { "F", "I", "F", 'F', NP237.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MOX), new Object[] { "F", "I", "F", 'F', ModItems.billet_mox_fuel, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MEP), new Object[] { "F", "I", "F", 'F', ModItems.billet_pu_mix, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEP239), new Object[] { "F", "I", "F", 'F', PU239.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEP241), new Object[] { "F", "I", "F", 'F', PU241.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MEA), new Object[] { "F", "I", "F", 'F', ModItems.billet_am_mix, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEA242), new Object[] { "F", "I", "F", 'F', AM242.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HES326), new Object[] { "F", "I", "F", 'F', SA326.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HES327), new Object[] { "F", "I", "F", 'F', SA327.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_AM_MIX), new Object[] { "NFN", "NIN", "NBN", 'F', ModItems.billet_am_mix, 'I', ModItems.plate_polymer, 'B', BI.billet(), 'N', ModItems.nugget_plutonium_fuel }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_PU241), new Object[] { "NFN", "NIN", "NBN", 'F', PU241.billet(), 'I', ModItems.plate_polymer, 'B', BI.billet(), 'N', ModItems.nugget_uranium_fuel }); + + CraftingManager.addRecipeAuto(new ItemStack(ModItems.icf_pellet_empty), new Object[] { "ZLZ", "L L", "ZLZ", 'Z', ZR.wireFine(), 'L', PB.wireFine() }); } public static void registerInit() { diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 2024919c3..18276a4ee 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -1,13 +1,15 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.BlockEnums.EnumMeteorType; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType; import com.hbm.items.ItemEnums.EnumBriquetteType; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumPlantType; -import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemHot; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; @@ -22,6 +24,8 @@ public class SmeltingRecipes { public static void AddSmeltingRec() { + GameRegistry.addSmelting(ModItems.glyphid_meat, new ItemStack(ModItems.glyphid_meat_grilled), 1.0F); + GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_thorium), new ItemStack(ModItems.ingot_th232), 3.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_uranium), new ItemStack(ModItems.ingot_uranium), 6.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_uranium_scorched), new ItemStack(ModItems.ingot_uranium), 6.0F); @@ -37,18 +41,15 @@ public class SmeltingRecipes { GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_beryllium), new ItemStack(ModItems.ingot_beryllium), 2.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_schrabidium), new ItemStack(ModItems.ingot_schrabidium), 128.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_nether_schrabidium), new ItemStack(ModItems.ingot_schrabidium), 256.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_uranium), new ItemStack(ModItems.ingot_uranium, 2), 12.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_thorium), new ItemStack(ModItems.ingot_th232, 2), 6.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_titanium), new ItemStack(ModItems.ingot_titanium, 3), 6.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_copper), new ItemStack(ModItems.ingot_copper, 3), 5.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_tungsten), new ItemStack(ModItems.ingot_tungsten, 3), 12.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_aluminium), new ItemStack(ModItems.ingot_aluminium, 3), 5.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_lead), new ItemStack(ModItems.ingot_lead, 3), 6.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_lithium), new ItemStack(ModItems.lithium), 20.0F); - GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_meteor_starmetal), new ItemStack(ModItems.ingot_starmetal), 50.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_cobalt), new ItemStack(ModItems.ingot_cobalt), 2.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_nether_cobalt), new ItemStack(ModItems.ingot_cobalt), 2.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.IRON), new ItemStack(Items.iron_ingot, 16), 10.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.COPPER), new ItemStack(ModItems.ingot_copper, 16), 10.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.ALUMINIUM), new ItemStack(ModItems.ingot_aluminium, 16), 10.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.RAREEARTH), DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE, 16), 10.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.COBALT), new ItemStack(ModItems.ingot_cobalt, 4), 10.0F); + GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_gneiss_iron), new ItemStack(Items.iron_ingot), 5.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_gneiss_gold), new ItemStack(Items.gold_ingot), 5.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_gneiss_uranium), new ItemStack(ModItems.ingot_uranium), 12.0F); @@ -106,6 +107,12 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.powder_bismuth, new ItemStack(ModItems.ingot_bismuth), 1.0F); GameRegistry.addSmelting(ModItems.powder_calcium, new ItemStack(ModItems.ingot_calcium), 1.0F); GameRegistry.addSmelting(ModItems.powder_cadmium, new ItemStack(ModItems.ingot_cadmium), 1.0F); + GameRegistry.addSmelting(ModItems.ball_resin, new ItemStack(ModItems.ingot_biorubber), 0.1F); + + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.arc_electrode_burnt, EnumElectrodeType.GRAPHITE), new ItemStack(ModItems.ingot_graphite), 3.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.arc_electrode_burnt, EnumElectrodeType.LANTHANIUM), new ItemStack(ModItems.ingot_lanthanium), 3.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.arc_electrode_burnt, EnumElectrodeType.DESH), new ItemStack(ModItems.ingot_desh), 3.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.arc_electrode_burnt, EnumElectrodeType.SATURNITE), new ItemStack(ModItems.ingot_saturnite), 3.0F); GameRegistry.addSmelting(ModItems.combine_scrap, new ItemStack(ModItems.ingot_combine_steel), 1.0F); GameRegistry.addSmelting(ModItems.rag_damp, new ItemStack(ModItems.rag), 0.1F); @@ -120,7 +127,6 @@ public class SmeltingRecipes { GameRegistry.addSmelting(new ItemStack(ModBlocks.gravel_diamond), new ItemStack(Items.diamond), 3.0F); GameRegistry.addSmelting(new ItemStack(ModBlocks.sand_uranium), new ItemStack(ModBlocks.glass_uranium), 0.25F); GameRegistry.addSmelting(new ItemStack(ModBlocks.sand_polonium), new ItemStack(ModBlocks.glass_polonium), 0.75F); - GameRegistry.addSmelting(new ItemStack(ModBlocks.sand_quartz), new ItemStack(ModBlocks.glass_quartz), 0.75F); GameRegistry.addSmelting(new ItemStack(ModBlocks.waste_trinitite), new ItemStack(ModBlocks.glass_trinitite), 0.25F); GameRegistry.addSmelting(new ItemStack(ModBlocks.waste_trinitite_red), new ItemStack(ModBlocks.glass_trinitite), 0.25F); GameRegistry.addSmelting(new ItemStack(ModBlocks.sand_boron), new ItemStack(ModBlocks.glass_boron), 0.25F); @@ -158,30 +164,17 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.crystal_cinnebar, new ItemStack(ModItems.cinnebar, 4), 2.0F); GameRegistry.addSmelting(ModItems.crystal_osmiridium, new ItemStack(ModItems.ingot_osmiridium, 1), 2.0F); - GameRegistry.addSmelting(ModItems.casing_357, new ItemStack(ModItems.ingot_copper), 0.1F); - GameRegistry.addSmelting(ModItems.casing_44, new ItemStack(ModItems.ingot_copper), 0.1F); - GameRegistry.addSmelting(ModItems.casing_9, new ItemStack(ModItems.ingot_copper), 0.1F); - GameRegistry.addSmelting(ModItems.casing_50, new ItemStack(ModItems.ingot_copper), 0.1F); - GameRegistry.addSmelting(ModItems.casing_buckshot, new ItemStack(ModItems.ingot_copper), 0.1F); - - GameRegistry.addSmelting(ModItems.circuit_schrabidium, new ItemStack(ModItems.circuit_gold, 1), 1.0F); - GameRegistry.addSmelting(ModItems.circuit_gold, new ItemStack(ModItems.circuit_red_copper, 1), 1.0F); - GameRegistry.addSmelting(ModItems.circuit_red_copper, new ItemStack(ModItems.circuit_copper, 1), 1.0F); - GameRegistry.addSmelting(ModItems.circuit_copper, new ItemStack(ModItems.circuit_aluminium, 1), 1.0F); - - GameRegistry.addSmelting(ModItems.ingot_chainsteel, ItemHot.heatUp(new ItemStack(ModItems.ingot_chainsteel)), 1.0F); - GameRegistry.addSmelting(ModItems.ingot_meteorite, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite)), 1.0F); - GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 1.0F); - GameRegistry.addSmelting(ModItems.blade_meteorite, ItemHot.heatUp(new ItemStack(ModItems.blade_meteorite)), 1.0F); - GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 1.0F); - - GameRegistry.addSmelting(ModItems.battery_steam, ItemBattery.getFullBattery(ModItems.battery_steam), 1.0F); + GameRegistry.addSmelting(ModItems.ingot_chainsteel, ItemHot.heatUp(new ItemStack(ModItems.ingot_chainsteel)), 0.0F); + GameRegistry.addSmelting(ModItems.ingot_meteorite, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite)), 0.0F); + GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 0.0F); + GameRegistry.addSmelting(ModItems.blade_meteorite, ItemHot.heatUp(new ItemStack(ModItems.blade_meteorite)), 0.0F); + GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 0.0F); GameRegistry.addSmelting(new ItemStack(ModItems.scrap_plastic, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.ingot_polymer), 0.1F); for(EnumBedrockOre ore : EnumBedrockOre.values()) { int i = ore.ordinal(); - GameRegistry.addSmelting(new ItemStack(ModBlocks.ore_bedrock, 1, i), new ItemStack(Blocks.cobblestone, 16), 0.1F); + GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock, 1, i), new ItemStack(Blocks.cobblestone, 16), 0.1F); } for(int i = 0; i < 10; i++) diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 7577f03d9..113b4c80a 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -6,9 +6,11 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; +import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.tool.ItemBlowtorch; import com.hbm.items.tool.ItemModMinecart; import com.hbm.items.tool.ItemModMinecart.EnumCartBase; @@ -61,33 +63,41 @@ public class ToolRecipes { addShovel( DESH.ingot(), ModItems.desh_shovel); addHoe( DESH.ingot(), ModItems.desh_hoe); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dwarven_pickaxe, 1), new Object[] { "CIC", " S ", " S ", 'C', CU.ingot(), 'I', IRON.ingot(), 'S', KEY_STICK }); //Drax CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax, 1), new Object[] { "BDS", "CDC", "FMF", 'B', ModItems.starmetal_pickaxe, 'S', ModItems.starmetal_shovel, 'C', CO.ingot(), 'F', ModItems.fusion_core, 'D', DESH.ingot(), 'M', ModItems.motor_desh }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk2, 1), new Object[] { "SCS", "IDI", "FEF", 'S', STAR.ingot(), 'C', ModItems.crystal_trixite, 'I', BIGMT.ingot(), 'D', ModItems.drax, 'F', ModItems.fusion_core, 'E', ModItems.circuit_targeting_tier5 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk3, 1), new Object[] { "ECE", "CDC", "SBS", 'E', ModBlocks.block_euphemium_cluster, 'C', ModItems.crystal_schrabidium, 'D', ModItems.drax_mk2, 'S', ModItems.circuit_targeting_tier6, 'B', ItemBattery.getFullBattery(ModItems.battery_spark) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk2, 1), new Object[] { "SCS", "IDI", "FEF", 'S', STAR.ingot(), 'C', ModItems.crystal_trixite, 'I', BIGMT.ingot(), 'D', ModItems.drax, 'F', ModItems.fusion_core, 'E', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk3, 1), new Object[] { "ECE", "CDC", "SBS", 'E', ModBlocks.block_euphemium_cluster, 'C', ModItems.crystal_schrabidium, 'D', ModItems.drax_mk2, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'B', ItemBattery.getFullBattery(ModItems.battery_spark) }); //Super pickaxes - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.ingot_bismuth, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.volcanic_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.gem_volcanic, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.bismuth_pickaxe, 'F', ModItems.bolt_dura_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.volcanic_pickaxe, 'F', ModItems.bolt_dura_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.ingot_bismuth, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.volcanic_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.gem_volcanic, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.bismuth_pickaxe, 'F', DURA.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.volcanic_pickaxe, 'F', DURA.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mese_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_desh, 'D', ModItems.powder_dineutronium, 'A', ModItems.plate_paa, 'P', ModItems.chlorophyte_pickaxe, 'F', ModItems.shimmer_handle }); + //Super Axes + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_axe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.ingot_bismuth, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_axe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.volcanic_axe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.gem_volcanic, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_axe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_axe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.bismuth_axe, 'F', DURA.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_axe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.volcanic_axe, 'F', DURA.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mese_axe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_desh, 'D', ModItems.powder_dineutronium, 'A', ModItems.plate_paa, 'P', ModItems.chlorophyte_axe, 'F', ModItems.shimmer_handle }); + //Chainsaws - CraftingManager.addRecipeAuto(ItemToolAbilityFueled.getEmptyTool(ModItems.chainsaw), new Object[] { "CCH", "BBP", "CCE", 'H', ModItems.hull_small_steel, 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModBlocks.chain, 'E', ModItems.canister_empty }); + CraftingManager.addRecipeAuto(ItemToolAbilityFueled.getEmptyTool(ModItems.chainsaw), new Object[] { "CCH", "BBP", "CCE", 'H', STEEL.shell(), 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModBlocks.chain, 'E', ModItems.canister_empty }); //Misc - CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_stopper, 1), new Object[] { "I", "S", "S", 'I', EUPH.ingot(), 'S', KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.crowbar, 1), new Object[] { "II", " I", " I", 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bottle_opener, 1), new Object[] { "S", "P", 'S', STEEL.plate(), 'P', KEY_PLANKS }); + CraftingManager.addRecipeAuto(new ItemStack(Items.saddle, 1), new Object[] { "LLL", "LRL", " S ", 'S', STEEL.ingot(), 'L', Items.leather, 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE) }); //Matches CraftingManager.addRecipeAuto(new ItemStack(ModItems.matchstick, 16), new Object[] { "I", "S", 'I', S.dust(), 'S', KEY_STICK }); @@ -102,33 +112,43 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.bat, 1), new Object[] { "P", "P", "S", 'S', STEEL.plate(), 'P', KEY_PLANKS }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.bat_nail, 1), new Object[] { ModItems.bat, STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.golf_club, 1), new Object[] { "IP", " P", " P", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipe_rusty, 1), new Object[] { "II", " I", " I", 'I', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipe_lead, 1), new Object[] { "II", " I", " I", 'I', PB.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipe_rusty, 1), new Object[] { "II", " I", " I", 'I', IRON.pipe() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipe_lead, 1), new Object[] { "II", " I", " I", 'I', PB.pipe() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ullapool_caber, 1), new Object[] { "ITI", " S ", " S ", 'I', IRON.plate(), 'T', Blocks.tnt, 'S', KEY_STICK }); //Utility - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', IRON.plate(), 'A', STEEL.plate(), 'B', ModItems.circuit_red_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_range, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.designator, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_manual, 1), new Object[] { " A", "#C#", "#B#", '#', POLYMER.ingot(), 'A', PB.plate(), 'B', ModItems.circuit_gold, 'C', ModItems.designator }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_arty_range, 1), new Object[] { "M", "C", "P", 'M', ModItems.magnetron, 'C', ModItems.circuit_gold, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', IRON.plate(), 'G', GOLD.plate(), 'C', ModItems.circuit_gold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', ModItems.wire_gold, 'I', CU.ingot(), 'C', ModItems.circuit_red_copper, 'P', STEEL.plate528() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, 'S', STEEL.plate528(), 'G', GOLD.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', ModItems.wire_gold, 'P', ModItems.plate_polymer, 'C', ModItems.circuit_red_copper, 'G', GOLD.ingot(), 'S', STEEL.plate528(), 'B', ModItems.ingot_beryllium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', IRON.plate(), 'A', STEEL.plate(), 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_range, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', Items.redstone, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', ModItems.designator, 'I', STEEL.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_manual, 1), new Object[] { " A", "#C#", "#B#", '#', ANY_PLASTIC.ingot(), 'A', PB.plate(), 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'C', ModItems.designator }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_arty_range, 1), new Object[] { "M", "C", "P", 'M', ModItems.magnetron, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', IRON.plate(), 'G', GOLD.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', GOLD.wireFine(), 'I', CU.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'P', STEEL.plate528() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', GOLD.wireFine(), 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', GOLD.wireFine(), 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'S', STEEL.plate528(), 'G', GOLD.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', GOLD.wireFine(), 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'G', GOLD.ingot(), 'S', STEEL.plate528(), 'B', ModItems.ingot_beryllium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'B', BE.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', ModItems.circuit_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', POLYMER.ingot(), 'S', STEEL.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ore_density_scanner, 1), new Object[] { "VVV", "CSC", "GGG", 'V', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER_CHASSIS), 'G', GOLD.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', W.bolt(), 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.settings_tool), new Object[] { " P ", "PCP", "III", 'P', IRON.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'I', ModItems.plate_polymer }); + + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette, 1), new Object[] { " L", " G ", "G ", 'L', ANY_RUBBER.ingot(), 'G', KEY_CLEARGLASS}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_boron, 1), new Object[] { " P", " B ", "B ", 'P', RUBBER.ingot(), 'B', ModBlocks.glass_boron}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_laboratory, 1), new Object[] { " C", " R ", "P ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'R', RUBBER.ingot(), 'P', ModItems.pipette_boron }); + + CraftingManager.addRecipeAuto(new ItemStack(ModItems.siphon, 1), new Object[] { " GR", " GR", " G ", 'G', KEY_CLEARGLASS, 'R', ANY_RUBBER.ingot()}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', ModItems.wire_red_copper, 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_generic }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.analysis_tool), new Object[] { " G", " S ", "S ", 'G', KEY_ANYPANE, 'S', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.kit_toolbox_empty), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() }); @@ -140,7 +160,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.chemistry_set_boron), new Object[] { "GIG", "GCG", 'G', ModBlocks.glass_boron, 'I', STEEL.ingot(), 'C', CO.ingot() }); CraftingManager.addRecipeAuto(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), new Object[] { "CC ", " I ", "CCC", 'C', CU.plate528(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(ItemBlowtorch.getEmptyTool(ModItems.acetylene_torch), new Object[] { "SS ", " PS", " T ", 'S', STEEL.plate528(), 'P', ANY_PLASTIC.ingot(), 'T', ModItems.tank_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.boltgun), new Object[] { "DPS", " RD", " D ", 'D', DURA.ingot(), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'R', RUBBER.ingot(), 'S', ModItems.hull_small_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.boltgun), new Object[] { "DPS", " RD", " D ", 'D', DURA.ingot(), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'R', RUBBER.ingot(), 'S', STEEL.shell() }); //Bobmazon CraftingManager.addShapelessAuto(new ItemStack(ModItems.bobmazon_materials), new Object[] { Items.book, Items.gold_nugget, Items.string }); @@ -152,6 +172,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.WOOD, EnumMinecart.EMPTY), new Object[] { "P P", "WPW", 'P',KEY_SLAB, 'W', KEY_PLANKS }); CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), new Object[] { "P P", "IPI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); CraftingManager.addShapelessAuto(ItemModMinecart.createCartItem(EnumCartBase.PAINTED, EnumMinecart.EMPTY), new Object[] { ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), KEY_RED }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.boat_rubber), new Object[] { "L L", "LLL", 'L', ANY_RUBBER.ingot() }); for(EnumCartBase base : EnumCartBase.values()) { @@ -179,21 +200,24 @@ public class ToolRecipes { addShovel( SA326.ingot(), ModItems.schrabidium_shovel); addHoe( SA326.ingot(), ModItems.schrabidium_hoe); } else { + /* CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_sword, 1), new Object[] { " I ", " I ", "SBS", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_sword }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_pickaxe, 1), new Object[] { "III", " B ", " S ", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_pickaxe }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_axe, 1), new Object[] { "II", "IB", " S", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_axe }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_shovel, 1), new Object[] { "I", "B", "S", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_shovel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_hoe, 1), new Object[] { "II", " B", " S", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_hoe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_sword, 1), new Object[] { " I ", " I ", "SBS", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_sword }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_pickaxe, 1), new Object[] { "III", " B ", " S ", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_pickaxe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_axe, 1), new Object[] { "II", "IB", " S", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_axe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_shovel, 1), new Object[] { "I", "B", "S", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_shovel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_hoe, 1), new Object[] { "II", " B", " S", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_hoe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_sword, 1), new Object[] { "I", "W", "S", 'I', SA326.block(), 'W', ModItems.desh_sword, 'S', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_pickaxe, 1), new Object[] { "BSB", " W ", " P ", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_pickaxe, 'P', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_axe, 1), new Object[] { "BS", "BW", " P", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_axe, 'P', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_shovel, 1), new Object[] { "B", "W", "P", 'B', SA326.block(), 'W', ModItems.desh_shovel, 'P', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_hoe, 1), new Object[] { "IW", " S", " S", 'I', SA326.ingot(), 'W', ModItems.desh_hoe, 'S', POLYMER.ingot() }); + + */ + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_sword, 1), new Object[] { " I ", " B ", "ISI", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_sword }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_pickaxe, 1), new Object[] { "ISI", " B ", " I ", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_pickaxe }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_axe, 1), new Object[] { "IS", "IB", " I", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_axe }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_shovel, 1), new Object[] { "I", "B", "I", 'I', STAR.ingot(), 'B', ModItems.cobalt_decorated_shovel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_hoe, 1), new Object[] { "IS", " B", " I", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_hoe }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_sword, 1), new Object[] { "I", "W", "S", 'I', SA326.block(), 'W', ModItems.desh_sword, 'S', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_pickaxe, 1), new Object[] { "BSB", " W ", " P ", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_pickaxe, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_axe, 1), new Object[] { "BS", "BW", " P", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_axe, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_shovel, 1), new Object[] { "B", "W", "P", 'B', SA326.block(), 'W', ModItems.desh_shovel, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_hoe, 1), new Object[] { "IW", " S", " S", 'I', SA326.ingot(), 'W', ModItems.desh_hoe, 'S', ANY_PLASTIC.ingot() }); } } diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index a85f8ca36..49777c12d 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -2,14 +2,20 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ItemAmmoEnums.*; -import com.hbm.items.food.ItemConserve.EnumFoodType; +import com.hbm.items.ItemEnums.EnumCasingType; +import com.hbm.items.ItemEnums.EnumSecretType; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92Cell; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.main.CraftingManager; import net.minecraft.init.Blocks; @@ -24,15 +30,90 @@ import net.minecraft.item.ItemStack; public class WeaponRecipes { public static void register() { + + //SEDNA Parts + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_WOOD.id), new Object[] { "WWW", " W", 'W', KEY_PLANKS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_WOOD.id), new Object[] { "W ", " W", " W", 'W', KEY_PLANKS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_POLYMER.id), new Object[] { "WWW", " W", 'W', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_POLYMER.id), new Object[] { "W ", " W", " W", 'W', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_BAKELITE.id), new Object[] { "WWW", " W", 'W', BAKELITE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_BAKELITE.id), new Object[] { "W ", " W", " W", 'W', BAKELITE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_HARDPLASTIC.id), new Object[] { "WWW", " W", 'W', PC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_HARDPLASTIC.id), new Object[] { "W ", " W", " W", 'W', PC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_PVC.id), new Object[] { "WWW", " W", 'W', PVC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_PVC.id), new Object[] { "W ", " W", " W", 'W', PVC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_RUBBER.id), new Object[] { "W ", " W", " W", 'W', RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_IVORY.id), new Object[] { "W ", " W", " W", 'W', Items.bone }); + + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.casing, EnumCasingType.SHOTSHELL, 2), new Object[] { "P", "C", 'P', GUNMETAL.plate(), 'C', DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE) }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.casing, EnumCasingType.BUCKSHOT, 2), new Object[] { "P", "C", 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE) }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.casing, EnumCasingType.BUCKSHOT_ADVANCED, 2), new Object[] { "P", "C", 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE_STEEL) }); + + //SEDNA Guns + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_pepperbox, 1), new Object[] { "IIW", " C", 'I', IRON.ingot(), 'W', KEY_PLANKS, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_light_revolver, 1), new Object[] { "BRM", " G", 'B', STEEL.lightBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_light_revolver_atlas, 1), new Object[] { " M ", "MAM", " M ", 'M', WEAPONSTEEL.mechanism(), 'A', ModItems.gun_light_revolver }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_henry, 1), new Object[] { "BRP", "BMS", 'B', STEEL.lightBarrel(), 'R', GUNMETAL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'S', WOOD.stock(), 'P', GUNMETAL.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_greasegun, 1), new Object[] { "BRS", "SMG", 'B', STEEL.lightBarrel(), 'R', STEEL.lightReceiver(), 'S', STEEL.bolt(), 'M', GUNMETAL.mechanism(), 'G', STEEL.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_maresleg, 1), new Object[] { "BRM", "BGS", 'B', STEEL.lightBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', STEEL.bolt(), 'S', WOOD.stock() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_maresleg_akimbo, 1), new Object[] { "SMS", 'S', ModItems.gun_maresleg, 'M', WEAPONSTEEL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flaregun, 1), new Object[] { "BRM", " G", 'B', STEEL.heavyBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', STEEL.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_am180, 1), new Object[] { "BBR", "GMS", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_liberator, 1), new Object[] { "BB ", "BBM", "G G", 'B', DURA.lightBarrel(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "BM ", "BRS", "G ", 'B', DURA.heavyBarrel(), 'M', GUNMETAL.mechanism(), 'R', DURA.lightReceiver(), 'S', WOOD.stock(), 'G', WOOD.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { " MG", "BBR", " GM", 'M', GUNMETAL.mechanism(), 'G', DURA.grip(), 'B', DURA.heavyBarrel(), 'R', DURA.heavyReceiver() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer_topaz, 1), new Object[] { " M ", "MFM", " M ", 'M', WEAPONSTEEL.mechanism(), 'F', ModItems.gun_flamer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_heavy_revolver, 1), new Object[] { "BRM", " G", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_carbine, 1), new Object[] { "BRM", "G S", 'B', DESH.lightBarrel(), 'R',DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "BRS", " GM", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'S', ANY_PLASTIC.stock(), 'G', ANY_PLASTIC.grip(), 'M', GUNMETAL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_akimbo, 1), new Object[] { "UMU", 'U', ModItems.gun_uzi, 'M', WEAPONSTEEL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "BRM", "BGS", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', ANY_PLASTIC.grip(), 'S', DESH.stock() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "BBB", "PGM", 'B', DESH.heavyBarrel(), 'P', STEEL.plateCast(), 'G', DESH.grip(), 'M', GUNMETAL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_g3, 1), new Object[] { "BRM", "WGS", 'B', WEAPONSTEEL.lightBarrel(), 'R', WEAPONSTEEL.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'W', WOOD.grip(), 'G', RUBBER.grip(), 'S', WOOD.stock() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "BBB", "PGM", 'B', WEAPONSTEEL.heavyBarrel(), 'P', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'G', WEAPONSTEEL.grip(), 'M', WEAPONSTEEL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "MHW", "PSS", 'M', WEAPONSTEEL.mechanism(), 'H', RUBBER.pipe(), 'W', ModItems.wrench, 'P', WEAPONSTEEL.heavyBarrel(), 'S', WEAPONSTEEL.shell() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_m2, 1), new Object[] { " G", "BRM", " G", 'G', WOOD.grip(), 'B', FERRO.heavyBarrel(), 'R', FERRO.heavyReceiver(), 'M', WEAPONSTEEL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_autoshotgun, 1), new Object[] { "BRM", "G G", 'B', FERRO.heavyBarrel(), 'R', FERRO.heavyReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_autoshotgun_shredder, 1), new Object[] { " M ", "MAM", " M ", 'M', BIGMT.mechanism(), 'A', ModItems.gun_autoshotgun }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "BCB", "BMB", "GG ", 'B', FERRO.heavyBarrel(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lag, 1), new Object[] { "BRM", " G", 'B', ANY_RESISTANTALLOY.lightBarrel(), 'R', ANY_RESISTANTALLOY.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "BMG", "BRE", "BGM", 'B', ANY_RESISTANTALLOY.lightBarrel(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip(), 'R', ANY_RESISTANTALLOY.heavyReceiver(), 'E', ModItems.motor_desh }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_missile_launcher, 1), new Object[] { " CM", "BBB", "G ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', WEAPONSTEEL.mechanism(), 'B', ANY_RESISTANTALLOY.heavyBarrel(), 'G', ANY_PLASTIC.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_tesla_cannon, 1), new Object[] { "CCC", "BRB", "MGE", 'C', ModItems.coil_advanced_alloy, 'B', ANY_RESISTANTALLOY.heavyBarrel(), 'R', ANY_RESISTANTALLOY.heavyReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip(), 'E', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stg77, 1), new Object[] { " D ", "BRS", "GM ", 'D', DIAMOND.gem(), 'B', BIGMT.lightBarrel(), 'R', BIGMT.lightReceiver(), 'S', ANY_HARDPLASTIC.stock(), 'G', ANY_HARDPLASTIC.grip(), 'M', BIGMT.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "PPP", "BSR", "G M", 'P', BIGMT.plate(), 'B', BIGMT.heavyBarrel(), 'S', BIGMT.shell(), 'R', BIGMT.heavyReceiver(), 'G', ANY_HARDPLASTIC.grip(), 'M', BIGMT.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_tau, 1), new Object[] { " RD", "CTT", "GMS", 'D', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'C', CU.pipe(), 'T', ModItems.coil_advanced_torus, 'G', ANY_HARDPLASTIC.grip(), 'R', BIGMT.lightReceiver(), 'M', BIGMT.mechanism(), 'S', ANY_HARDPLASTIC.stock() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lasrifle, 1), new Object[] { "LC ", "BRS", "MG ", 'L', ModItems.crystal_redstone, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'B', ANY_BISMOIDBRONZE.lightBarrel(), 'R', ANY_BISMOIDBRONZE.lightReceiver(), 'S', ANY_HARDPLASTIC.stock(), 'M', BIGMT.mechanism(), 'G', ANY_HARDPLASTIC.grip() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_double_barrel_sacred_dragon, 1), new Object[] { ModItems.gun_double_barrel, DictFrame.fromOne(ModItems.item_secret, EnumSecretType.SELENIUM_STEEL) }); + + //SEDNA Ammo + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE, 6), new Object[] { "C", "P", "G", 'C', KEY_COBBLESTONE, 'P', Items.paper, 'G', Items.gunpowder }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE_AP, 6), new Object[] { "C", "P", "G", 'C', Items.flint, 'P', Items.paper, 'G', Items.gunpowder }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE_SHOT, 6), new Object[] { "C", "P", "G", 'C', Blocks.gravel, 'P', Items.paper, 'G', Items.gunpowder }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE_IRON, 6), new Object[] { "C", "P", "G", 'C', IRON.ingot(), 'P', Items.paper, 'G', Items.gunpowder }); + + //Nitra! + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_SP, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_SP), ModItems.nitra }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_SP, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_SP), ModItems.nitra }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P9_SP, 12), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P9_SP), ModItems.nitra }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P22_SP, 32), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P22_SP), ModItems.nitra }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R556_SP, 8), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R556_SP), ModItems.nitra }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R762_SP, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R762_SP), ModItems.nitra }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_SP, 4), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_SP), ModItems.nitra }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HE, 3), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HE), ModItems.nitra }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_HE, 2), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_HE), ModItems.nitra }); + + //secrets! + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_secret, EnumAmmoSecret.M44_EQUESTRIAN, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_JHP), DictFrame.fromOne(ModItems.item_secret, EnumSecretType.SELENIUM_STEEL) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_secret, EnumAmmoSecret.G12_EQUESTRIAN, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12), DictFrame.fromOne(ModItems.item_secret, EnumSecretType.SELENIUM_STEEL) }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_secret, EnumAmmoSecret.BMG50_EQUESTRIAN, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_FMJ), DictFrame.fromOne(ModItems.item_secret, EnumSecretType.SELENIUM_STEEL) }); //Missiles CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_taint, 1), new Object[] { ModItems.missile_assembly, ModItems.bucket_mud, ModItems.powder_spark_mix, ModItems.powder_magic }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_micro, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH) }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_micro, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_HIGH) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_bhole, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_black_hole }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_aschrab }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.cell_sas3, ModItems.circuit_targeting_tier4 }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_emp, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModBlocks.emp_bomb, ModItems.circuit_targeting_tier3 }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_anti_ballistic, 1), new Object[] { ModItems.missile_generic, ModItems.circuit_targeting_tier3 }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.cell_anti_schrabidium, ANY_HARDPLASTIC.ingot() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_emp, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModBlocks.emp_bomb }); //Missile fins CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_stability_10_flat, 1), new Object[] { "PSP", "P P", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold }); @@ -42,227 +123,52 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_stability_15_thin, 1), new Object[] { "A A", "PSP", "PSP", 'A', AL.plate(), 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold }); //Missile thrusters - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_thruster_15_balefire_large_rad, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.board_copper, 'T', ModItems.mp_thruster_15_balefire_large }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_thruster_15_balefire_large_rad, 1), new Object[] { "CCC", "CTC", "CCC", 'C', CU.plateCast(), 'T', ModItems.mp_thruster_15_balefire_large }); //Missile fuselages - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_kerosene }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_long_kerosene }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_15_kerosene }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_solid }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_long_solid }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_15_solid }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_kerosene }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_long_kerosene }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_15_kerosene }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_solid }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_long_solid }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_15_solid }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_desh, 1), new Object[] { "CCC", "CTC", "CCC", 'C', DESH.ingot(), 'T', ModItems.mp_fuselage_15_solid }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_10_kerosene }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_10_long_kerosene }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_15_kerosene }); //Missile warheads - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_warhead_15_boxcar, 1), new Object[] { "SNS", "CBC", "SFS", 'S', STAR.ingot(), 'N', ModBlocks.det_nuke, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.boxcar, 'F', ModItems.tritium_deuterium_cake }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_warhead_15_boxcar, 1), new Object[] { "SNS", "CBC", "SFS", 'S', STAR.ingot(), 'N', ModBlocks.det_nuke, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.boxcar, 'F', ModItems.tritium_deuterium_cake }); //Missile chips - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_1, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier1, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_2, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier2, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_3, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier3, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_4, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier4, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier5, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_1, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_2, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_3, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_4, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'S', ModBlocks.steel_scaffold }); //Turrets - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', ModItems.mechanism_rifle_1, 'S', ModBlocks.steel_scaffold, 'C', ModItems.circuit_red_copper, 'D', ModItems.crt_display }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', ModItems.mechanism_rifle_1, 'S', ModBlocks.steel_scaffold, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'D', ModItems.crt_display }); //Guns - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_rpg, 1), new Object[] { "SSW", " MW", 'S', ModItems.hull_small_steel, 'W', IRON.plate(), 'M', ModItems.mechanism_launcher_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "SSS", " MW", 'S', ModItems.hull_small_steel, 'W', CU.plate(), 'M', ModItems.mechanism_launcher_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_karl, 1), new Object[] { "SSW", " MW", 'S', ModItems.hull_small_steel, 'W', ALLOY.plate(), 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "SSS", "SSS", "CM ", 'S', ModItems.hull_small_steel, 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "SSW", "CMW", 'S', STEEL.plate(), 'W', TI.plate(), 'C', ModItems.circuit_red_copper, 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 4), new Object[] { "SS ", "STI", " IR", 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt), 'I', AL.plate(), 'R', REDSTONE.dust() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver, 1), new Object[] { "SSM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'M', ModItems.mechanism_revolver_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_saturnite, 1), new Object[] { "SSM", " RW", 'S', BIGMT.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_tungsten, 'M', ModItems.mechanism_revolver_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_gold, 1), new Object[] { "SSM", " RW", 'S', GOLD.plate(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_revolver_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_schrabidium, 1), new Object[] { "SSM", " RW", 'S', SA326.block(), 'W', W.ingot(), 'R', ModItems.wire_schrabidium, 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_pip, 1), new Object[] { " G ", "SSP", " TI", 'G', KEY_ANYPANE, 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nopip, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_blackjack, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_silver, 1), new Object[] { "SSP", " TI", 'S', AL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_red, 1), new Object[] { "R ", " B", 'R', ModItems.key_red, 'B', ModItems.gun_revolver_blackjack }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_cursed, 1), new Object[] { "TTM", "SRI", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'R', ModItems.wire_red_copper, 'T', TI.plate(), 'M', ModItems.mechanism_revolver_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare, 1), new Object[] { "SEM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'E', ModItems.powder_power, 'M', ModItems.mechanism_revolver_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare2, 1), new Object[] { "SSM", "RRW", 'S', OreDictManager.getReflector(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bio_revolver, 1), new Object[] { "SSM", "BTW", 'S', STEEL.plate(), 'M', ModItems.mechanism_revolver_2, 'B', B.ingot(), 'T', ModItems.bolt_tungsten, 'W', KEY_LOG }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "RWC", "HHT", "RLC", 'R', RUBBER.ingot(), 'W', ModItems.wrench, 'C', CU.plate(), 'H', ModItems.hull_small_steel, 'T', ModItems.tank_steel, 'L', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "SSI", "IIM", "WPH", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', ModItems.wire_aluminium, 'H', ModItems.hull_small_steel, 'P', Item.getItemFromBlock(Blocks.piston), 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mirv, 1), new Object[] { "LLL", "WFW", "SSS", 'S', STEEL.plate(), 'L', PB.plate(), 'W', ModItems.wire_gold, 'F', ModItems.gun_fatman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ModItems.plate_polymer, 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bf_ammo, 1), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', IRON.plate(), 'I', STEEL.plate(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', STEEL.ingot(), 'S', ANY_PLASTIC.ingot(), 'G', ModItems.mechanism_launcher_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uboinik, 1), new Object[] { "IIM", "SPW", 'P', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'S', KEY_STICK, 'M', ModItems.mechanism_revolver_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_supershotgun, 1), new Object[] { "BBM", "BBM", "AWL", 'B', ModItems.hull_small_steel, 'M', ModItems.mechanism_rifle_2, 'A', ModItems.plate_dalekanium, 'W', ModItems.wire_gold, 'L', KEY_LOG }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_ks23, 1), new Object[] { "PPM", "SWL", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'W', ModItems.wire_tungsten, 'L', KEY_LOG }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_sauer, 1), new Object[] { ModItems.ducttape, ModItems.gun_ks23, Blocks.lever, ModItems.gun_ks23 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456, 1), new Object[] { "PBB", "ACC", "PRY", 'P', STEEL.plate(), 'R', ModItems.redcoil_capacitor, 'A', ModItems.coil_advanced_alloy, 'B', ModItems.battery_generic, 'C', ModItems.coil_advanced_torus, 'Y', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { " S ", "SRS", " S ", 'S', STEEL.plate(), 'R', ModItems.waste_natural_uranium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { " S ", "SRS", " S ", 'S', STEEL.plate(), 'R', ModItems.waste_uranium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 20), new Object[] { " S ", " R ", " S ", 'S', STEEL.plate(), 'R', ModItems.waste_plate_u235 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { "SRS", 'S', STEEL.plate(), 'R', ModItems.waste_u235 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { " S ", " R ", " S ", 'S', STEEL.plate(), 'R', U238.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { "SRS", 'S', STEEL.plate(), 'R', U238.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_osipr, 1), new Object[] { "CCT", "WWI", "MCC", 'C', CMB.plate(), 'T', W.ingot(), 'W', ModItems.wire_magnetized_tungsten, 'I', ModItems.mechanism_rifle_2, 'M', ModItems.coil_magnetized_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator, 1), new Object[] { "WCC", "PMT", "WAA", 'W', ModItems.wire_gold, 'C', CU.plate(), 'P', ALLOY.plate(), 'M', ModItems.mechanism_launcher_1, 'T', ModItems.tank_steel, 'A', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', COAL.dust(), 'P', P_RED.dust() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', Fluids.DIESEL.getDict(1000) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 24), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.canister_napalm }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { "WPP", "SCT", "WMI", 'W', ModItems.wire_gold, 'P', ModItems.pipes_steel, 'S', ModItems.hull_small_steel, 'C', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'M', ModItems.mechanism_launcher_1, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator, 1), new Object[] { "SSS", "IWL", "LMI", 'S', STEEL.plate(), 'I', IRON.plate(), 'L', Items.leather, 'M', ModItems.mechanism_launcher_1, 'W', ModItems.wire_aluminium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', KNO.dust(), 'P', Items.snowball }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.powder_ice }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp, 1), new Object[] { "EEE", "SSM", "III", 'E', EUPH.ingot(), 'S', STEEL.plate(), 'I', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_emp, 1), new Object[] { "CPG", "CMF", "CPI", 'C', ModItems.coil_copper, 'P', PB.plate(), 'G', ModItems.circuit_gold, 'M', ModItems.magnetron, 'I', W.ingot(), 'F', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_emp_ammo, 8), new Object[] { "IGI", "IPI", "IPI", 'G', GOLD.plate(), 'I', IRON.plate(), 'P', ModItems.powder_power }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_jack, 1), new Object[] { "WW ", "TSD", " TT", 'W', "ingotWeidanium", 'T', ModItems.toothpicks, 'S', ModItems.gun_uboinik, 'D', ModItems.ducttape }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_jack_ammo, 1), new Object[] { ModItems.ammo_12gauge, ModItems.ammo_12gauge, ModItems.ammo_12gauge, ModItems.ammo_12gauge }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_euthanasia, 1), new Object[] { "TDT", "AAS", " T ", 'A', AUSTRALIUM.ingot(), 'T', ModItems.toothpicks, 'S', ModItems.gun_mp40, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_euthanasia_ammo, 12), new Object[] { "P", "S", "N", 'P', ModItems.powder_poison, 'N', KNO.dust(), 'S', ModItems.syringe_metal_empty }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spark, 1), new Object[] { "TTD", "AAS", " T", 'A', "ingotDaffergon", 'T', ModItems.toothpicks, 'S', ModItems.gun_rpg, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spark_ammo, 4), new Object[] { "PCP", "DDD", "PCP", 'P', PB.plate(), 'C', ModItems.coil_gold, 'D', ModItems.powder_power }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_skystinger, 1), new Object[] { "TTT", "AAS", " D ", 'A', "ingotUnobtainium", 'T', ModItems.toothpicks, 'S', ModItems.gun_stinger, 'D', ModItems.ducttape }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hp, 1), new Object[] { "TDT", "ASA", " T ", 'A', "ingotReiium", 'T', ModItems.toothpicks, 'S', ModItems.gun_xvl1456, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hp_ammo, 8), new Object[] { " R ", "BSK", " Y ", 'S', STEEL.plate(), 'K', KEY_BLACK, 'R', KEY_RED, 'B', KEY_BLUE, 'Y', KEY_YELLOW }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_defabricator_ammo, 16), new Object[] { "PCP", "DDD", "PCP", 'P', STEEL.plate(), 'C', ModItems.coil_copper, 'D', LI.dust() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lever_action, 1), new Object[] { "PPI", "SWD", 'P', IRON.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', ModItems.wire_aluminium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lever_action_dark, 1), new Object[] { "PPI", "SWD", 'P', STEEL.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', ModItems.wire_aluminium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolt_action, 1), new Object[] { "PPI", "SWD", 'P', STEEL.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', ModItems.wire_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolt_action_green, 1), new Object[] { "PPI", "SWD", 'P', IRON.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', ModItems.wire_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolt_action_saturnite, 1), new Object[] { "PPI", "SWD", 'P', BIGMT.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', ModItems.wire_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92), new Object[] { "DDD", "SSC", " R", 'D', ModItems.plate_dineutronium, 'S', STAR.ingot(), 'C', ModItems.circuit_targeting_tier6, 'R', ModItems.gun_revolver_schrabidium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b93), new Object[] { "PCE", "SEB", "PCE", 'P', ModItems.plate_dineutronium, 'C', ModItems.weaponized_starblaster_cell, 'E', ModItems.component_emitter, 'B', ModItems.gun_b92, 'S', ModItems.singularity_spark }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92), new Object[] { "DDD", "SSC", " R", 'D', ModItems.plate_dineutronium, 'S', STAR.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'R', ModItems.gun_lasrifle }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92_ammo, 1), new Object[] { "PSP", "ESE", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'E', ModItems.powder_spark_mix }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.weaponized_starblaster_cell, 1), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.ACID.getID()), GunB92Cell.getFullCell(), ModItems.wire_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "SMS", " PB", " P ", 'S', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', STEEL.plate(), 'B', ModItems.bolt_dura_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi_saturnite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_m2, 1), new Object[] { " PI", "BBM", " PI", 'P', STEEL.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_2, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', ANY_PLASTIC.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_avenger, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', BE.block(), 'I', DESH.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', STAR.ingot(), 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ModItems.plate_polymer, 'W', ModItems.wire_aluminium }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', ModItems.bolt_tungsten, 'T', ModItems.tank_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', ModItems.bolt_tungsten, 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.weaponized_starblaster_cell, 1), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.PEROXIDE.getID()), GunB92Cell.getFullCell(), CU.wireFine() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', STEEL.pipe(), 'B', STEEL.bolt(), 'T', ModItems.tank_steel }); + //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', U235.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', PU239.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_gold, 24), new Object[] { " I", "GC", " P", 'I', GOLD.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_schrabidium, 6), new Object[] { " I ", "GCN", " P ", 'I', SA326.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357, 'N', ModItems.billet_yharonite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nightmare, 24), new Object[] { " I", "GC", " P", 'I', W.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_desh, 24), new Object[] { " I", "GC", " P", 'I', DESH.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 32), new Object[] { " I", "GC", " P", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(ModItems.ammo_556.stackFromEnum(30, Ammo556mm.K), new Object[] { "G", "C", "P", 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 32), new Object[] { " I", "GC", " P", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44, 'P', ModItems.primer_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44, 'P', ModItems.primer_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", "P", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addShapelessAuto(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.QUACK), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2), new Object[] { "I", "C", "P", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 12), new Object[] { " I ", "GCG", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 12), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', ModItems.hull_small_steel, 'E', ANY_HIGHEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ModItems.plate_polymer, 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) }); - CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44, 'P', ModItems.primer_44); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_9); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 4), new Object[] { " B ", "GCG", "GPG", 'B', FERRO.ingot(), 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power}); - - //Folly shells - CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet, 1), new Object[] { " S ", "STS", "SMS", 'S', STAR.ingot(), 'T', ModItems.powder_magic, 'M', ModBlocks.block_meteor }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet_nuclear, 1), new Object[] { " N ", "UTU", "UTU", 'N', ModItems.ammo_nuke, 'U', IRON.ingot(), 'T', W.block() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet_du, 1), new Object[] { " U ", "UDU", "UTU", 'U', U238.block(), 'D', DESH.block(), 'T', W.block() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_shell, 1), new Object[] { "IPI", "IPI", "IMI", 'I', IRON.ingot(), 'P', IRON.plate(), 'M', ModItems.primer_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly, 1), new Object[] { " B ", "MEM", " S ", 'B', ModItems.folly_bullet, 'M', ModItems.powder_magic, 'E', ModItems.powder_power, 'S', ModItems.folly_shell }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly_nuclear, 1), new Object[] { " B ", "EEE", " S ", 'B', ModItems.folly_bullet_nuclear, 'E', ModBlocks.det_charge, 'S', ModItems.folly_shell }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly_du, 1), new Object[] { " B ", "EEE", " S ", 'B', ModItems.folly_bullet_du, 'E', ModBlocks.det_charge, 'S', ModItems.folly_shell }); - - //Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 1), new Object[] { " T ", "GCG", " P ", 'T', ModItems.ball_dynamite, 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium, 'P', ModItems.primer_50 });// I got tired of changing *all* of them, the stock one is always the first one anyway - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 2), new Object[] { " T ", "GCG", " P ", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium, 'P', ModItems.primer_50 }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.HE), new Object[] { "G", "R", 'G', ANY_PLASTICEXPLOSIVE.ingot(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.INCENDIARY), new Object[] { "G", "R", 'G', P_RED.dust(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.PHOSPHORUS), new Object[] { "G", "R", 'G', P_WHITE.ingot(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.EMP), new Object[] { "G", "R", 'G', "dustDiamond", 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.SHRAPNEL), new Object[] { "G", "R", 'G', ModItems.pellet_buckshot, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.GLARE), new Object[] { "GGG", "GRG", "GGG", 'G', REDSTONE.dust(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CHLORINE), new Object[] { "G", "R", 'G', ModItems.pellet_gas, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CANISTER), new Object[] { "G", "R", 'G', ModItems.pellet_canister, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR), new Object[] { " P ", "NRN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL_CRACK.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.BIOFUEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - - //Stinger Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", "FSF", " P ", 'C', ModItems.circuit_aluminium, 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', ModItems.hull_small_aluminium, 'P', ModItems.primer_50); - CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE), new Object[] { "S", "R", 'S', ANY_PLASTICEXPLOSIVE.ingot(), 'R', ModItems.ammo_stinger_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.INCENDIARY), new Object[] { "S", "R", 'S', P_RED.dust(), 'R', ModItems.ammo_stinger_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.NUCLEAR), new Object[] { "RPR", "PSP", "RPR", 'R', ModItems.neutron_reflector, 'P', PU239.nugget(), 'S', ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE) }); - CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.BONES), new Object[] { " C ", "SKR", " P ", 'C', ModItems.fallout, 'S', SR90.dust(), 'K', ModItems.ammo_stinger_rocket, 'R', RA226.dust(), 'P', PU.dust() }); - - //40mm grenades - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade, 2), new Object[] { " T ", "GCI", " P ", 'T', ANY_HIGHEXPLOSIVE.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.TRACER), new Object[] { " T ", "GCI", " P ", 'T', LAPIS.dust(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.HE), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', ANY_PLASTICEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.INCENDIARY), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', P_RED.dust() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.PHOSPHORUS), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', P_WHITE.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.CHLORINE), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', ModItems.powder_poison }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.CONCUSSION), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', Items.glowstone_dust }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.NUCLEAR), new Object[] { " P ", "GIG", " P ", 'G', ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.HE), 'I', ModItems.neutron_reflector, 'P', PU239.nugget() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.FINNED), new Object[] { "G", "R", 'G', Items.feather, 'R', ModItems.ammo_grenade }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.KAMPF), new Object[] { "G", "R", 'G', ModItems.ammo_rocket, 'R', ModItems.ammo_grenade }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', GOLD.wireFine(), 'P', STEEL.plate(), 'S', STEEL.shell(), 'E', ModItems.ball_tatb }); //240mm Shells - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.ballistite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 6), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.cordite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.ballistite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(6, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', Items.gunpowder, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.ballistite, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 6), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.cordite, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', Items.gunpowder, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.ballistite, 'H', STEEL.shell(), 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(6, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'H', STEEL.shell(), 'C', CU.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.APFSDS_T), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', Items.gunpowder, 'C', CU.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.APFSDS_T), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', ModItems.ballistite, 'C', CU.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(6, Ammo240Shell.APFSDS_T), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', CU.ingot() }); @@ -272,61 +178,32 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9), new Object[] { " P ", "NSN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'S', ModItems.ammo_shell.stackFromEnum(Ammo240Shell.EXPLOSIVE) }); //Artillery Shells - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 0), new Object[] { "CIC", "CSC", "CCC", 'C', ModItems.cordite, 'I', IRON.block(), 'S', ModItems.hull_small_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 0), new Object[] { "CIC", "CSC", "CCC", 'C', ModItems.cordite, 'I', IRON.block(), 'S', CU.shell() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.ball_dynamite, 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 2), new Object[] { "TTT", "TST", "TTT", 'T', ModItems.ball_tnt, 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 5), new Object[] { "D", "S", "D", 'D', P_WHITE.ingot(), 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 7), new Object[] { "DSD", "SCS", "DSD", 'D', P_WHITE.ingot(), 'S', new ItemStack(ModItems.ammo_arty, 1, 5), 'C', ModBlocks.det_cord }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 3), new Object[] { " P ", "NSN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 6), new Object[] { "DSD", "SCS", "DSD", 'D', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 3), 'C', ModBlocks.det_cord }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_arty, 1, 4), new Object[] { new ItemStack(ModItems.ammo_arty, 1, 2), ModItems.boy_bullet, ModItems.boy_target, ModItems.boy_shielding, ModItems.circuit_red_copper, ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 8), new Object[] { " I ", " S ", "CCC", 'C', ModItems.cordite, 'I', ModItems.sphere_steel, 'S', ModItems.hull_small_steel }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_arty, 1, 4), new Object[] { new ItemStack(ModItems.ammo_arty, 1, 2), ModItems.boy_bullet, ModItems.boy_target, ModItems.boy_shielding, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER), ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 8), new Object[] { " I ", " S ", "CCC", 'C', ModItems.cordite, 'I', ModItems.sphere_steel, 'S', CU.shell() }); //DGK Belts CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_dgk, 1), new Object[] { "LLL", "GGG", "CCC", 'L', PB.plate(), 'G', ModItems.ballistite, 'C', CU.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_dgk, 1), new Object[] { "LLL", "GGG", "CCC", 'L', PB.plate(), 'G', ModItems.cordite, 'C', CU.ingot() }); - - //Mini Nuke - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1), new Object[] { "P", "S", "P", 'P', PU239.nugget(), 'S', ModItems.assembly_nuke }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), new Object[] { "P", "S", 'P', PU239.nugget(), 'S', ModItems.assembly_nuke }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), new Object[] { "PPP", "PSP", "PPP", 'P', PU239.nugget(), 'S', ModItems.assembly_nuke }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.TOTS), new Object[] { "PPP", "PIP", "PPP", 'P', ModItems.pellet_cluster, 'I', PU239.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE), new Object[] { "G", "N", 'G', Items.glowstone_dust, 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW) }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.PUMPKIN), new Object[] { " T ", "TST", " T ", 'T', ModBlocks.tnt, 'S', ModItems.assembly_nuke }); - - //MIRV recycling - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_nuke, 6), new Object[] { ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); - CraftingManager.addShapelessAuto(ModItems.ammo_nuke.stackFromEnum(6, AmmoFatman.LOW), new Object[] { ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_LOW) }); - CraftingManager.addShapelessAuto(ModItems.ammo_nuke.stackFromEnum(6, AmmoFatman.HIGH), new Object[] { ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH) }); - CraftingManager.addShapelessAuto(ModItems.ammo_nuke.stackFromEnum(6, AmmoFatman.SAFE), new Object[] { ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE) }); - - //MIRV - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke, 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_LOW), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - //since the milk part of the recipe isn't really present in the MIRV's effect, it might as well be replaced with something more sensible, i.e. duct tape - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SPECIAL), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ), 'B', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE), 'M', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); - - //Flamer fuel - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', Fluids.DIESEL.getDict(1000) }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_napalm }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.PHOSPHORUS), new Object[] { "CPC", "CDC", "CPC", 'C', COAL.dust(), 'P', P_WHITE.ingot(), 'D', ModItems.ammo_fuel }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.CHLORINE), new Object[] { "PDP", "BDB", "PDP", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.pellet_gas }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.VAPORIZER), new Object[] { "PSP", "SNS", "PSP", 'P', P_WHITE.ingot(), 'S', ModItems.crystal_sulfur, 'N', ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM) }); //Fire Extingusisher Tanks - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()) }); CraftingManager.addRecipeAuto(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.FOAM), new Object[] { " N ", "NFN", " N ", 'N', KNO.dust(), 'F', ModItems.ammo_fireext }); CraftingManager.addRecipeAuto(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.SAND), new Object[] { "NNN", "NFN", "NNN", 'N', ModBlocks.sand_boron, 'F', ModItems.ammo_fireext }); //Grenades - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_generic, 4), new Object[] { "RS ", "ITI", " I ", 'I', IRON.plate(), 'R', ModItems.wire_red_copper, 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_generic, 4), new Object[] { "RS ", "ITI", " I ", 'I', IRON.plate(), 'R', MINGRADE.wireFine(), 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_strong, 2), new Object[] { " G ", "SGS", " S ", 'G', ModItems.grenade_generic, 'S', Items.gunpowder }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_frag, 2), new Object[] { " G ", "WGW", " K ", 'G', ModItems.grenade_generic, 'W', KEY_PLANKS, 'K', Item.getItemFromBlock(Blocks.gravel) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_poison, 2), new Object[] { " G ", "PGP", " P ", 'G', ModItems.grenade_generic, 'P', ModItems.powder_poison }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_gas, 2), new Object[] { " G ", "CGC", " C ", 'G', ModItems.grenade_generic, 'C', ModItems.pellet_gas }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_aschrab, 1), new Object[] {"RS ", "ITI", " S ", 'I', KEY_CLEARGLASS, 'R', ModItems.wire_red_copper, 'S', STEEL.plate(), 'T', ModItems.cell_anti_schrabidium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_aschrab, 1), new Object[] {"RS ", "ITI", " S ", 'I', KEY_CLEARGLASS, 'R', MINGRADE.wireFine(), 'S', STEEL.plate(), 'T', ModItems.cell_anti_schrabidium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_mk2, 2), new Object[] { " G ", "SGS", " S ", 'G', ModItems.grenade_strong, 'S', Items.gunpowder }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.DIESEL.getDict(1000), Items.flint }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.DIESEL_CRACK.getDict(1000), Items.flint }); @@ -336,16 +213,16 @@ public class WeaponRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.GASOLINE_LEADED.getDict(1000), Items.flint }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { Fluids.BIOFUEL.getDict(1000), Items.flint }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_lemon, 1), new Object[] { ModItems.lemon, ModItems.grenade_strong }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_moist_nugget, 12), new Object[] { Items.bread, Items.wheat, Items.cooked_chicken, Items.egg }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_smart, 4), new Object[] { " A ", "ACA", " A ", 'A', ModItems.grenade_strong, 'C', ModItems.circuit_aluminium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_smart, 4), new Object[] { " A ", "ACA", " A ", 'A', ModItems.grenade_strong, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_mirv, 1), new Object[] { "GGG", "GCG", "GGG", 'G', ModItems.grenade_smart, 'C', ModItems.grenade_generic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_breach, 1), new Object[] { "G", "G", "P", 'G', ModItems.grenade_smart, 'P', BIGMT.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_burst, 1), new Object[] { "GGG", "GCG", "GGG", 'G', ModItems.grenade_breach, 'C', ModItems.grenade_generic }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_cloud), new Object[] { "SPS", "CAC", "SPS", 'S', S.dust(), 'P', ModItems.powder_poison, 'C', CU.dust(), 'A', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.ACID.getID()) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_cloud), new Object[] { "SPS", "CAC", "SPS", 'S', S.dust(), 'P', ModItems.powder_poison, 'C', CU.dust(), 'A', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.PEROXIDE.getID()) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_pink_cloud), new Object[] { " S ", "ECE", " E ", 'S', ModItems.powder_spark_mix, 'E', ModItems.powder_magic, 'C', ModItems.grenade_cloud }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.nuclear_waste_pearl), new Object[] { "WWW", "WFW", "WWW", 'W', ModItems.nuclear_waste_tiny, 'F', ModBlocks.block_fallout }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_kyiv), new Object[] { ModItems.canister_napalm, ModItems.bottle2_empty, ModItems.rag }); - + CraftingManager.addRecipeAuto(new ItemStack(ModItems.disperser_canister_empty, 4), new Object[] { " P ", "PGP", " P ", 'P', ANY_HARDPLASTIC.ingot(), 'G', ModBlocks.glass_boron }); + //Sticks of explosives CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.stick_dynamite_fishing, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, Items.paper, ANY_TAR.any() }); @@ -358,13 +235,13 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.tnt, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_tnt, 'S', ModItems.safety_fuse }); CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.semtex, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_semtex, 'S', ModItems.safety_fuse }); CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.c4, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_c4, 'S', ModItems.safety_fuse }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.fissure_bomb, 1), new Object[] { "SUS", "RPR", "SUS", 'S', ModBlocks.semtex, 'U', U238.block(), 'R', OreDictManager.getReflector(), 'P', PU239.billet() }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.fissure_bomb, 1), new Object[] { "SUS", "RPR", "SUS", 'S', ModBlocks.semtex, 'U', U238.block(), 'R', TA.ingot(), 'P', PU239.billet() }); //IF Grenades CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_generic, 1), new Object[] { " C ", "PTP", " P ", 'C', ModItems.coil_tungsten, 'P', STEEL.plate(), 'T', Blocks.tnt }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_he, 1), new Object[] { "A", "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.gunpowder }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_bouncy, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_bouncy, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_sticky, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', KEY_SLIME }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_impact, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', REDSTONE.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_concussion, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.glowstone_dust }); @@ -374,13 +251,13 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_mystery, 1), new Object[] { "A", "G", "A", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_magic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_spark, 1), new Object[] { " A ", "AGA", " A ", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_spark_mix }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_hopwire, 1), new Object[] { " A ", "AGA", " A ", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_power }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', Blocks.obsidian, 'B', BIGMT.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', ModItems.undefined, 'B', BIGMT.ingot() }); //Mines - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "C", "P", "T", 'C', ModItems.circuit_targeting_tier2, 'P', IRON.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_he, 1), new Object[] { " C ", "PTP", 'C', ModItems.circuit_targeting_tier2, 'P', STEEL.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_shrap, 2), new Object[] { "LLL", " C ", "PTP", 'C', ModItems.circuit_targeting_tier2, 'P', STEEL.plate(), 'T', ModBlocks.det_cord, 'L', ModItems.pellet_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_fat, 1), new Object[] { "CDN", 'C', ModItems.circuit_targeting_tier2, 'D', ModItems.ducttape, 'N', ModItems.ammo_nuke }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "I", "C", "S", 'I', ModItems.plate_polymer, 'C', ANY_SMOKELESS.dust(), 'S', STEEL.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_shrap, 1), new Object[] { "L", "M", 'M', ModBlocks.mine_ap, 'L', ModItems.pellet_buckshot }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_he, 1), new Object[] { " C ", "PTP", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', STEEL.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_fat, 1), new Object[] { "CDN", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'D', ModItems.ducttape, 'N', DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_DEMO) }); //Nuke parts CraftingManager.addRecipeAuto(new ItemStack(ModItems.n2_charge, 1), new Object[] { " D ", "ERE", " D ", 'D', ModItems.ducttape, 'E', ModBlocks.det_charge, 'R', REDSTONE.block() }); diff --git a/src/main/java/com/hbm/crafting/handlers/ContainerUpgradeCraftingHandler.java b/src/main/java/com/hbm/crafting/handlers/ContainerUpgradeCraftingHandler.java new file mode 100644 index 000000000..110967484 --- /dev/null +++ b/src/main/java/com/hbm/crafting/handlers/ContainerUpgradeCraftingHandler.java @@ -0,0 +1,41 @@ +package com.hbm.crafting.handlers; + +import com.hbm.blocks.generic.BlockStorageCrate; +import com.hbm.blocks.machine.BlockMassStorage; + +import net.minecraft.block.Block; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.ShapedOreRecipe; + +/** + * Handles upgrading storage crates and mass storage blocks, preserving their contents. + * + * Note: this assumes the input and the output items store their inventory in the same format + * in the NBT + */ +public class ContainerUpgradeCraftingHandler extends ShapedOreRecipe { + + public ContainerUpgradeCraftingHandler(ItemStack result, Object... items) { + super(result, items); + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting inventoryCrafting) { + ItemStack source = getFirstContainer(inventoryCrafting); + ItemStack result = super.getCraftingResult(inventoryCrafting); + result.setTagCompound(source.getTagCompound()); + return result; + } + + private static ItemStack getFirstContainer(InventoryCrafting inventoryCrafting) { + for(int i = 0; i < 9; ++i) { + ItemStack itemstack = inventoryCrafting.getStackInRowAndColumn(i % 3, i / 3); + if(itemstack == null) continue; + Block block = Block.getBlockFromItem(itemstack.getItem()); + if(block == null) continue; + if(block instanceof BlockStorageCrate || block instanceof BlockMassStorage) return itemstack; + } + return null; + } +} diff --git a/src/main/java/com/hbm/creativetabs/MachineTab.java b/src/main/java/com/hbm/creativetabs/MachineTab.java index 13f3c934f..a24abc8a6 100644 --- a/src/main/java/com/hbm/creativetabs/MachineTab.java +++ b/src/main/java/com/hbm/creativetabs/MachineTab.java @@ -15,8 +15,8 @@ public class MachineTab extends CreativeTabs { @Override public Item getTabIconItem() { - if(ModBlocks.reactor_element != null) - return Item.getItemFromBlock(ModBlocks.reactor_element); + if(ModBlocks.pwr_controller != null) + return Item.getItemFromBlock(ModBlocks.pwr_controller); return Items.iron_pickaxe; } diff --git a/src/main/java/com/hbm/creativetabs/TestTab.java b/src/main/java/com/hbm/creativetabs/TestTab.java deleted file mode 100644 index f8cfe7efa..000000000 --- a/src/main/java/com/hbm/creativetabs/TestTab.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.hbm.creativetabs; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Items; -import net.minecraft.item.Item; - -public class TestTab extends CreativeTabs { - - public TestTab(int p_i1853_1_, String p_i1853_2_) { - super(p_i1853_1_, p_i1853_2_); - } - - @Override - public Item getTabIconItem() { - - if(ModBlocks.test_nuke != null) - { - return Item.getItemFromBlock(ModBlocks.test_nuke); - } - - return Items.iron_pickaxe; - } - -} diff --git a/src/main/java/com/hbm/creativetabs/WeaponTab.java b/src/main/java/com/hbm/creativetabs/WeaponTab.java index 01636faa6..28801e152 100644 --- a/src/main/java/com/hbm/creativetabs/WeaponTab.java +++ b/src/main/java/com/hbm/creativetabs/WeaponTab.java @@ -8,18 +8,16 @@ import net.minecraft.item.Item; public class WeaponTab extends CreativeTabs { - public WeaponTab(int p_i1853_1_, String p_i1853_2_) { - super(p_i1853_1_, p_i1853_2_); + public WeaponTab(int index, String name) { + super(index, name); } @Override public Item getTabIconItem() { - - if(ModItems.gun_lever_action != null) - { - return ModItems.gun_lever_action; + + if(ModItems.gun_maresleg != null) { + return ModItems.gun_maresleg; } - return Items.iron_pickaxe; } } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index b41ab7eb7..9d0437c72 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -9,8 +9,14 @@ import com.hbm.entity.grenade.*; import com.hbm.entity.item.*; import com.hbm.entity.logic.*; import com.hbm.entity.missile.*; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; +import com.hbm.entity.mob.glyphid.*; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; @@ -26,6 +32,8 @@ import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EnumCreatureType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase.SpawnListEntry; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeDictionary.Type; public class EntityMappings { @@ -40,8 +48,6 @@ public class EntityMappings { addEntity(EntityGrenadeFrag.class, "entity_grenade_frag", 250); addEntity(EntityGrenadeFire.class, "entity_grenade_fire", 250); addEntity(EntityGrenadeCluster.class, "entity_grenade_cluster", 250); - addEntity(EntityTestMissile.class, "entity_test_missile", 1000); - addEntity(EntityNukeCloudSmall.class, "entity_nuke_cloud_small", 10000); addEntity(EntityBullet.class, "entity_bullet", 250); addEntity(EntityGrenadeFlare.class, "entity_grenade_flare", 500); addEntity(EntityGrenadeElectric.class, "entity_grenade_electric", 500); @@ -51,6 +57,7 @@ public class EntityMappings { addEntity(EntityGrenadeNuke.class, "entity_grenade_nuke", 500); addEntity(EntitySchrab.class, "entity_schrabnel", 500); addEntity(EntityMissileGeneric.class, "entity_missile_generic", 1000); + addEntity(EntityMissileDecoy.class, "entity_missile_decoy", 1000); addEntity(EntityMissileStrong.class, "entity_missile_strong", 1000); addEntity(EntityMissileNuclear.class, "entity_missile_nuclear", 1000); addEntity(EntityMissileCluster.class, "entity_missile_cluster", 1000); @@ -64,18 +71,12 @@ public class EntityMappings { addEntity(EntityMissileInferno.class, "entity_missile_inferno", 1000); addEntity(EntityMissileRain.class, "entity_missile_rain", 1000); addEntity(EntityMissileDrill.class, "entity_missile_drill", 1000); - addEntity(EntityMissileEndo.class, "entity_missile_endo", 1000); - addEntity(EntityMissileExo.class, "entity_missile_exo", 1000); addEntity(EntityMissileMirv.class, "entity_missile_mirv", 1000); addEntity(EntityMIRV.class, "entity_mirvlet", 1000); - addEntity(EntitySmokeFX.class, "entity_smoke_fx", 1000); - addEntity(EntityNukeCloudBig.class, "entity_nuke_cloud_big", 1000); addEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 1000); - addEntity(EntityBSmokeFX.class, "entity_b_smoke_fx", 1000); addEntity(EntityGrenadePlasma.class, "entity_grenade_plasma", 500); addEntity(EntityGrenadeTau.class, "entity_grenade_tau", 500); addEntity(EntityChopperMine.class, "entity_chopper_mine", 1000); - addEntity(EntityCombineBall.class, "entity_combine_ball", 1000); addEntity(EntityRainbow.class, "entity_rainbow", 1000); addEntity(EntityGrenadeLemon.class, "entity_grenade_lemon", 500); addEntity(EntityCloudFleija.class, "entity_cloud_fleija", 500); @@ -83,48 +84,34 @@ public class EntityMappings { addEntity(EntityGrenadeZOMG.class, "entity_grenade_zomg", 500); addEntity(EntityGrenadeASchrab.class, "entity_grenade_aschrab", 500); addEntity(EntityFalloutRain.class, "entity_fallout", 1000); - addEntity(EntityDischarge.class, "entity_emp_discharge", 500); addEntity(EntityEMPBlast.class, "entity_emp_blast", 1000); - addEntity(EntityFire.class, "entity_fire", 1000); - addEntity(EntityPlasmaBeam.class, "entity_immolator_beam", 1000); - addEntity(EntityLN2.class, "entity_LN2", 1000); - addEntity(EntityNightmareBlast.class, "entity_ominous_bullet", 1000); addEntity(EntityGrenadePulse.class, "entity_grenade_pulse", 1000); addEntity(EntityLaserBeam.class, "entity_laser_beam", 1000); addEntity(EntityMinerBeam.class, "entity_miner_beam", 1000); addEntity(EntityRubble.class, "entity_rubble", 1000); - addEntity(EntityDSmokeFX.class, "entity_d_smoke_fx", 1000); - addEntity(EntitySSmokeFX.class, "entity_s_smoke_fx", 1000); addEntity(EntityShrapnel.class, "entity_shrapnel", 1000); addEntity(EntityGrenadeShrapnel.class, "entity_grenade_shrapnel", 250); addEntity(EntityBlackHole.class, "entity_black_hole", 250); addEntity(EntityGrenadeBlackHole.class, "entity_grenade_black_hole", 250); - addEntity(EntityOilSpillFX.class, "entity_spill_fx", 1000); - addEntity(EntityOilSpill.class, "entity_oil_spill", 1000); - addEntity(EntityGasFX.class, "entity_spill_fx", 1000); addEntity(EntityMinecartTest.class, "entity_minecart_test", 1000); addEntity(EntitySparkBeam.class, "entity_spark_beam", 1000); addEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 1000); - addEntity(EntityBombletTheta.class, "entity_theta", 1000); - addEntity(EntityBombletSelena.class, "entity_selena", 1000); - addEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 1000); + addEntity(EntityMissileDoomsdayRusted.class, "entity_missile_doomsday_rusted", 1000); addEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 1000); addEntity(EntityVortex.class, "entity_vortex", 250); addEntity(EntityMeteor.class, "entity_meteor", 250); - addEntity(EntityLaser.class, "entity_laser", 1000); addEntity(EntityBoxcar.class, "entity_boxcar", 1000); + addEntity(EntityTorpedo.class, "entity_torpedo", 1000); addEntity(EntityMissileTaint.class, "entity_missile_taint", 1000); addEntity(EntityGrenadeGascan.class, "entity_grenade_gascan", 1000); addEntity(EntityNukeExplosionMK5.class, "entity_nuke_mk5", 1000); addEntity(EntityCloudFleijaRainbow.class, "entity_cloud_rainbow", 1000); addEntity(EntityExplosiveBeam.class, "entity_beam_bomb", 1000); addEntity(EntityAAShell.class, "entity_aa_shell", 1000); - addEntity(EntityRocketHoming.class, "entity_stinger", 1000); + addEntity(EntityMissileTest.class, "entity_missile_test_mk2", 1000); addEntity(EntityMissileMicro.class, "entity_missile_micronuclear", 1000); addEntity(EntityCloudSolinium.class, "entity_cloud_rainbow", 1000); addEntity(EntityRagingVortex.class, "entity_raging_vortex", 250); - addEntity(EntityCarrier.class, "entity_missile_carrier", 1000); - addEntity(EntityBooster.class, "entity_missile_booster", 1000); addEntity(EntityModBeam.class, "entity_beam_bang", 1000); addEntity(EntityMissileBHole.class, "entity_missile_blackhole", 1000); addEntity(EntityMissileSchrabidium.class, "entity_missile_schrabidium", 1000); @@ -135,6 +122,7 @@ public class EntityMappings { addEntity(EntityGrenadePC.class, "entity_grenade_pink_cloud", 250); addEntity(EntityGrenadeCloud.class, "entity_grenade_cloud", 250); addEntity(EntityBomber.class, "entity_bomber", 1000); + addEntity(EntityC130.class, "entity_c130", 1000); addEntity(EntityBombletZeta.class, "entity_zeta", 1000); addEntity(EntityOrangeFX.class, "entity_agent_orange", 1000); addEntity(EntityDeathBlast.class, "entity_laser_blast", 1000); @@ -157,7 +145,10 @@ public class EntityMappings { addEntity(EntityGrenadeIFHopwire.class, "entity_grenade_ironshod_hopwire", 250); addEntity(EntityGrenadeIFNull.class, "entity_grenade_ironshod_null", 250); addEntity(EntityFallingNuke.class, "entity_falling_bomb", 1000); - addEntity(EntityBulletBase.class, "entity_bullet_mk2", 250); + addEntity(EntityBulletBaseNT.class, "entity_bullet_mk3", 250, false); + addEntity(EntityBulletBaseMK4.class, "entity_bullet_mk4", 250, false); + addEntity(EntityBulletBaseMK4CL.class, "entity_bullet_mk4_cl", 250, false); + addEntity(EntityBulletBeamBase.class, "entity_beam_mk4", 250, false); addEntity(EntityMinerRocket.class, "entity_miner_lander", 1000); addEntity(EntityFogFX.class, "entity_nuclear_fog", 1000); addEntity(EntityDuchessGambit.class, "entity_duchessgambit", 1000); @@ -172,8 +163,11 @@ public class EntityMappings { addEntity(EntityBuilding.class, "entity_falling_building", 1000); addEntity(EntitySoyuz.class, "entity_soyuz", 1000); addEntity(EntitySoyuzCapsule.class, "entity_soyuz_capsule", 1000); + addEntity(EntityParachuteCrate.class, "entity_parachute_crate", 1000); addEntity(EntityMovingItem.class, "entity_c_item", 1000); addEntity(EntityMovingPackage.class, "entity_c_package", 1000); + addEntity(EntityDeliveryDrone.class, "entity_delivery_drone", 250, false); + addEntity(EntityRequestDrone.class, "entity_request_drone", 250, false); addEntity(EntityCloudTom.class, "entity_moonstone_blast", 1000); addEntity(EntityBeamVortex.class, "entity_vortex_beam", 1000); addEntity(EntityFireworks.class, "entity_firework_ball", 1000); @@ -183,7 +177,6 @@ public class EntityMappings { addEntity(EntityBlockSpider.class, "entity_taintcrawler", 1000); addEntity(EntityRBMKDebris.class, "entity_rbmk_debris", 1000); addEntity(EntityUFO.class, "entity_ntm_ufo", 1000); - addEntity(EntityNukeExplosionNT.class, "entity_ntm_explosion_nt", 1000); addEntity(EntityQuasar.class, "entity_digamma_quasar", 250); addEntity(EntitySpear.class, "entity_digamma_spear", 1000); addEntity(EntityMissileVolcano.class, "entity_missile_volcano", 1000); @@ -192,7 +185,6 @@ public class EntityMappings { addEntity(EntityGhost.class, "entity_ntm_ghost", 1000); addEntity(EntityGrenadeDynamite.class, "entity_grenade_dynamite", 250); addEntity(EntitySiegeLaser.class, "entity_ntm_siege_laser", 1000); - addEntity(EntitySiegeDropship.class, "entity_ntm_siege_dropship", 1000); addEntity(EntityTNTPrimedBase.class, "entity_ntm_tnt_primed", 1000); addEntity(EntityGrenadeBouncyGeneric.class, "entity_grenade_bouncy_generic", 250); addEntity(EntityGrenadeImpactGeneric.class, "entity_grenade_impact_generic", 250); @@ -211,7 +203,11 @@ public class EntityMappings { addEntity(EntitySawblade.class, "entity_stray_saw", 1000); addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); addEntity(EntityMist.class, "entity_mist", 250, false); + addEntity(EntityFireLingering.class, "entity_fire_lingering", 250, false); addEntity(EntityAcidBomb.class, "entity_acid_bomb", 1000); + addEntity(EntityFallingBlockNT.class, "entity_falling_block_nt", 1000); + addEntity(EntityBoatRubber.class, "entity_rubber_boat", 250, false); + addEntity(EntityMissileStealth.class, "entity_missile_stealth", 1000); addEntity(EntityItemWaste.class, "entity_item_waste", 100); addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); @@ -220,7 +216,11 @@ public class EntityMappings { addEntity(BoundingBoxDummyEntity.class, "entity_ntm_bounding_dummy", 250, false); addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); addEntity(TrainCargoTramTrailer.class, "entity_ntm_cargo_tram_trailer", 250, false); - + addEntity(TrainTunnelBore.class, "entity_ntm_tunnel_bore", 250, false); + + addEntity(EntityDisperserCanister.class, "entity_disperser", 250); + addEntity(EntityWaypoint.class, "entity_waypoint", 250, false); + addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); addMob(EntityCreeperTainted.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd); addMob(EntityCreeperPhosgene.class, "entity_mob_phosgene_creeper", 0xE3D398, 0xB8A06B); @@ -233,6 +233,7 @@ public class EntityMappings { addMob(EntityMaskMan.class, "entity_mob_mask_man", 0x818572, 0xC7C1B7); addMob(EntityDuck.class, "entity_fucc_a_ducc", 0xd0d0d0, 0xFFBF00); addMob(EntityQuackos.class, "entity_elder_one", 0xd0d0d0, 0xFFBF00); + addMob(EntityPigeon.class, "entity_pigeon", 0xC8C9CD, 0x858894); addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040); addMob(EntityFBIDrone.class, "entity_ntm_fbi_drone", 0x008000, 0x404040); addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000); @@ -248,10 +249,16 @@ public class EntityMappings { addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B); addMob(EntityGlyphidNuclear.class, "entity_glyphid_nuclear", 0x267F00, 0xA0A0A0); + addMob(EntityGlyphidDigger.class, "entity_glyphid_digger", 0x273038, 0x724A21); + addMob(EntityPlasticBag.class, "entity_plastic_bag", 0xd0d0d0, 0x808080); + addMob(EntityParasiteMaggot.class, "entity_parasite_maggot", 0xd0d0d0, 0x808080); + addMob(EntityDummy.class, "entity_ntm_test_dummy", 0xffffff, 0x000000); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperGold.class, 1, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); + addSpawn(EntityPlasticBag.class, 1, 1, 3, EnumCreatureType.waterCreature, BiomeDictionary.getBiomesForType(Type.OCEAN)); + addSpawn(EntityPigeon.class, 1, 5, 10, EnumCreatureType.creature, BiomeDictionary.getBiomesForType(Type.PLAINS)); int id = 0; for(Quartet, String, Integer, Boolean> entry : entityMappings) { diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java index 3ce773740..241847f64 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java @@ -15,7 +15,6 @@ import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -111,7 +110,7 @@ public class EntityMinecartCrate extends EntityMinecartContainerBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrateSteel(player.inventory, (EntityMinecartCrate) player.worldObj.getEntityByID(x)); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java index 7d11fc8e4..d7a34e2ed 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java @@ -17,7 +17,6 @@ import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -147,7 +146,7 @@ public class EntityMinecartDestroyer extends EntityMinecartContainerBase impleme @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICartDestroyer(player.inventory, (EntityMinecartDestroyer) player.worldObj.getEntityByID(x)); } } diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 079e2ab2c..0c1bc8ea6 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -4,23 +4,28 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.config.FalloutConfigJSON; import com.hbm.config.FalloutConfigJSON.FalloutEntry; +import com.hbm.config.WorldConfig; +import com.hbm.entity.item.EntityFallingBlockNT; +import com.hbm.entity.logic.EntityExplosionChunkloading; import com.hbm.saveddata.AuxSavedData; +import com.hbm.world.WorldUtil; +import com.hbm.world.biome.BiomeGenCraterBase; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.common.util.ForgeDirection; import java.util.*; -public class EntityFalloutRain extends Entity { +public class EntityFalloutRain extends EntityExplosionChunkloading { + private boolean firstTick = true; // Of course Vanilla has it private in Entity... public EntityFalloutRain(World p_i1582_1_) { @@ -43,39 +48,61 @@ public class EntityFalloutRain extends Entity { if(!worldObj.isRemote) { + long start = System.currentTimeMillis(); + if(firstTick) { - if (chunksToProcess.isEmpty() && outerChunksToProcess.isEmpty()) gatherChunks(); + if(chunksToProcess.isEmpty() && outerChunksToProcess.isEmpty()) gatherChunks(); firstTick = false; } if(tickDelay == 0) { tickDelay = BombConfig.fDelay; - if (!chunksToProcess.isEmpty()) { - long chunkPos = chunksToProcess.remove(chunksToProcess.size() - 1); // Just so it doesn't shift the whole list every time - int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); - int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); - for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { - stomp(x, z, Math.hypot(x - posX, z - posZ) * 100 / getScale()); - } - } - - } else if (!outerChunksToProcess.isEmpty()) { - long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); - int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); - int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); - for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { - double distance = Math.hypot(x - posX, z - posZ); - if(distance <= getScale()) { - stomp(x, z, distance * 100 / getScale()); + while(System.currentTimeMillis() < start + BombConfig.mk5) { + if(!chunksToProcess.isEmpty()) { + long chunkPos = chunksToProcess.remove(chunksToProcess.size() - 1); // Just so it doesn't shift the whole list every time + int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); + int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); + boolean biomeModified = false; + for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { + double percent = Math.hypot(x - posX, z - posZ) * 100 / getScale(); + stomp(x, z, percent); + BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z)); + if(biome != null) { + WorldUtil.setBiome(worldObj, x, z, biome); + biomeModified = true; + } } } + if(biomeModified) WorldUtil.syncBiomeChange(worldObj, chunkPosX << 4, chunkPosZ << 4); + + } else if (!outerChunksToProcess.isEmpty()) { + long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); + int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); + int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); + boolean biomeModified = false; + for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { + double distance = Math.hypot(x - posX, z - posZ); + if(distance <= getScale()) { + double percent = distance * 100 / getScale(); + stomp(x, z, percent); + BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z)); + if(biome != null) { + WorldUtil.setBiome(worldObj, x, z, biome); + biomeModified = true; + } + } + } + } + if(biomeModified) WorldUtil.syncBiomeChange(worldObj, chunkPosX << 4, chunkPosZ << 4); + + } else { + this.clearChunkLoader(); + this.setDead(); + break; } - - } else { - setDead(); } } @@ -93,6 +120,17 @@ public class EntityFalloutRain extends Entity { } } } + + public static BiomeGenBase getBiomeChange(double dist, int scale, BiomeGenBase original) { + if(!WorldConfig.enableCraterBiomes) return null; + if(scale >= 150 && dist < 15) + return BiomeGenCraterBase.craterInnerBiome; + if(scale >= 100 && dist < 55 && original != BiomeGenCraterBase.craterInnerBiome) + return BiomeGenCraterBase.craterBiome; + if(scale >= 25 && original != BiomeGenCraterBase.craterInnerBiome && original != BiomeGenCraterBase.craterBiome) + return BiomeGenCraterBase.craterOuterBiome; + return null; + } private final List chunksToProcess = new ArrayList<>(); private final List outerChunksToProcess = new ArrayList<>(); @@ -123,26 +161,27 @@ public class EntityFalloutRain extends Entity { Collections.reverse(outerChunksToProcess); } - //private List changedPositions = new ArrayList(); - - // TODO cache chunks? private void stomp(int x, int z, double dist) { int depth = 0; for(int y = 255; y >= 0; y--) { - if(depth >= 3) - return; + if(depth >= 3) return; Block b = worldObj.getBlock(x, y, z); + + if(b.getMaterial() == Material.air || b == ModBlocks.fallout) continue; + + if(b == ModBlocks.volcano_core) { + worldObj.setBlock(x, y, z, ModBlocks.volcano_rad_core, worldObj.getBlockMetadata(x, y, z), 3); + continue; + } + Block ab = worldObj.getBlock(x, y + 1, z); int meta = worldObj.getBlockMetadata(x, y, z); - if(b.getMaterial() == Material.air) - continue; - - if(b != ModBlocks.fallout && (ab == Blocks.air || (ab.isReplaceable(worldObj, x, y + 1, z) && !ab.getMaterial().isLiquid()))) { + if(depth == 0 && b != ModBlocks.fallout && (ab == Blocks.air || (ab.isReplaceable(worldObj, x, y + 1, z) && !ab.getMaterial().isLiquid()))) { double d = dist / 100; @@ -153,7 +192,7 @@ public class EntityFalloutRain extends Entity { } if(dist < 65 && b.isFlammable(worldObj, x, y, z, ForgeDirection.UP)) { - if(rand.nextInt(5) == 0) + if(rand.nextInt(5) == 0 && worldObj.getBlock(x, y + 1, z).isAir(worldObj, x, y + 1, z)) setBlock(x, y + 1, z, Blocks.fire); } @@ -161,7 +200,7 @@ public class EntityFalloutRain extends Entity { for(FalloutEntry entry : FalloutConfigJSON.entries) { - if(entry.eval(worldObj, x, y, z, b, meta, dist)) { + if(entry.eval(worldObj, x, y, z, b, meta, dist, b, meta)) { if(entry.isSolid()) { depth++; } @@ -171,14 +210,15 @@ public class EntityFalloutRain extends Entity { } float hardness = b.getBlockHardness(worldObj, x, y, z); - if(dist < 65 && hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0/* && !b.hasTileEntity(worldObj.getBlockMetadata(x, y, z))*/) { + if(y > 0 && dist < 65 && hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0/* && !b.hasTileEntity(worldObj.getBlockMetadata(x, y, z))*/) { - Block bl = worldObj.getBlock(x, y - 1, z); - if(bl == Blocks.air) { + if(worldObj.getBlock(x, y - 1, z) == Blocks.air) { for(int i = 0; i <= depth; i++) { - hardness = worldObj.getBlock(x, y + i, z).getBlockHardness(worldObj, x, y + i, z); + Block block = worldObj.getBlock(x, y + i, z); + hardness = block.getBlockHardness(worldObj, x, y + i, z); if(hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0) { - EntityFallingBlock entityfallingblock = new EntityFallingBlock(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, worldObj.getBlock(x, y + i, z), worldObj.getBlockMetadata(x, y + i, z)); + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, block, worldObj.getBlockMetadata(x, y + i, z)); + entityfallingblock.canDrop = false; //turn off block drops because block dropping was coded by a mule with dementia worldObj.spawnEntityInWorld(entityfallingblock); } } @@ -201,6 +241,7 @@ public class EntityFalloutRain extends Entity { @Override protected void entityInit() { + super.entityInit(); this.dataWatcher.addObject(16, 0); } diff --git a/src/main/java/com/hbm/entity/effect/EntityFireLingering.java b/src/main/java/com/hbm/entity/effect/EntityFireLingering.java new file mode 100644 index 000000000..1aef970e4 --- /dev/null +++ b/src/main/java/com/hbm/entity/effect/EntityFireLingering.java @@ -0,0 +1,104 @@ +package com.hbm.entity.effect; + +import java.util.List; + +import com.hbm.extprop.HbmLivingProps; +import com.hbm.particle.helper.FlameCreator; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityFireLingering extends Entity { + + public static int TYPE_DIESEL = 0; + public static int TYPE_BALEFIRE = 1; + public static int TYPE_PHOSPHORUS = 2; + public int maxAge = 150; + + public EntityFireLingering(World world) { + super(world); + } + + public EntityFireLingering setArea(float width, float height) { + this.dataWatcher.updateObject(11, width); + this.dataWatcher.updateObject(12, height); + return this; + } + public EntityFireLingering setDuration(int duration){ + this.maxAge = duration; + return this; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, new Integer(0)); + this.dataWatcher.addObject(11, new Float(0)); + this.dataWatcher.addObject(12, new Float(0)); + } + + public EntityFireLingering setType(int type) { + this.dataWatcher.updateObject(10, type); + return this; + } + + public int getType() { + return this.dataWatcher.getWatchableObjectInt(10); + } + + @Override + public void onEntityUpdate() { + + float height = this.dataWatcher.getWatchableObjectFloat(12); + this.yOffset = 0; + this.setSize(this.dataWatcher.getWatchableObjectFloat(11), height); + this.setPosition(this.posX, this.posY, this.posZ); + + if(!worldObj.isRemote) { + + if(this.ticksExisted >= maxAge) { + this.setDead(); + } + + List affected = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - width / 2, posY, posZ - width / 2, posX + width / 2, posY + height, posZ + width / 2)); + + for(Entity e : affected) { + if(e instanceof EntityLivingBase) { + EntityLivingBase livng = (EntityLivingBase) e; + HbmLivingProps props = HbmLivingProps.getData(livng); + if(this.getType() == this.TYPE_DIESEL) if(props.fire < 60) props.fire = 60; + if(this.getType() == this.TYPE_PHOSPHORUS) if(props.fire < 300) props.fire = 300; + if(this.getType() == this.TYPE_BALEFIRE) if(props.balefire < 100) props.balefire = 100; + } else { + e.setFire(4); + } + } + } else { + + for(int i = 0; i < (width >= 5 ? 2 : 1); i++) { + double x = posX - width / 2 + rand.nextDouble() * width; + double z = posZ - width / 2 + rand.nextDouble() * width; + + Vec3 up = Vec3.createVectorHelper(x, posY + height, z); + Vec3 down = Vec3.createVectorHelper(x, posY - height, z); + MovingObjectPosition mop = worldObj.func_147447_a(up, down, false, true, true); + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) down = mop.hitVec; + if(this.getType() == this.TYPE_DIESEL) FlameCreator.composeEffectClient(worldObj, x, down.yCoord, z, FlameCreator.META_FIRE); + if(this.getType() == this.TYPE_PHOSPHORUS) FlameCreator.composeEffectClient(worldObj, x, down.yCoord, z, FlameCreator.META_FIRE); + if(this.getType() == this.TYPE_BALEFIRE) FlameCreator.composeEffectClient(worldObj, x, down.yCoord, z, FlameCreator.META_BALEFIRE); + } + } + } + + @Override @SideOnly(Side.CLIENT) public boolean canRenderOnFire() { return false; } + @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } + @Override public void writeToNBT(NBTTagCompound nbt) { } + @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } +} diff --git a/src/main/java/com/hbm/entity/effect/EntityMist.java b/src/main/java/com/hbm/entity/effect/EntityMist.java index ceb2dc014..8c5fef05e 100644 --- a/src/main/java/com/hbm/entity/effect/EntityMist.java +++ b/src/main/java/com/hbm/entity/effect/EntityMist.java @@ -2,15 +2,12 @@ package com.hbm.entity.effect; import java.util.List; +import com.hbm.entity.mob.glyphid.EntityGlyphid; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.trait.FT_Corrosive; -import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FT_Poison; -import com.hbm.inventory.fluid.trait.FT_Toxin; -import com.hbm.inventory.fluid.trait.FT_VentRadiation; +import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; @@ -25,13 +22,16 @@ import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class EntityMist extends Entity { @@ -40,12 +40,16 @@ public class EntityMist extends Entity { super(world); this.noClip = true; } - + public int maxAge = 150; public EntityMist setArea(float width, float height) { this.dataWatcher.updateObject(11, width); this.dataWatcher.updateObject(12, height); return this; } + public EntityMist setDuration(int duration){ + this.maxAge = duration; + return this; + } @Override protected void entityInit() { @@ -62,7 +66,6 @@ public class EntityMist extends Entity { public FluidType getType() { return Fluids.fromID(this.dataWatcher.getWatchableObjectInt(10)); } - @Override public void onEntityUpdate() { @@ -74,7 +77,7 @@ public class EntityMist extends Entity { if(!worldObj.isRemote) { - if(this.ticksExisted > this.getMaxAge()) { + if(this.ticksExisted >= this.getMaxAge()) { this.setDead(); } @@ -128,7 +131,7 @@ public class EntityMist extends Entity { EntityLivingBase living = e instanceof EntityLivingBase ? (EntityLivingBase) e : null; if(type.temperature >= 100) { - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_boil), 5F + (type.temperature - 100) * 0.02F); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_boil), 0.2F + (type.temperature - 100) * 0.02F); if(type.temperature >= 500) { e.setFire(10); //afterburn for 10 seconds @@ -136,7 +139,7 @@ public class EntityMist extends Entity { } if(type.temperature < -20) { if(living != null) { //only living things are affected - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_cryolator), 5F + (type.temperature + 20) * -0.05F); //5 damage at -20°C with one extra damage every -20°C + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_cryolator), 0.2F + (type.temperature + 20) * -0.05F); //5 damage at -20°C with one extra damage every -20°C living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 2)); living.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 100, 4)); } @@ -160,11 +163,11 @@ public class EntityMist extends Entity { if(type.hasTrait(FT_Corrosive.class)) { FT_Corrosive trait = type.getTrait(FT_Corrosive.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_acid), trait.getRating() / 20F); if(living != null) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(living, ModDamageSource.acid, trait.getRating() / 60F); for(int i = 0; i < 4; i++) { - ArmorUtil.damageSuit(living, i, trait.getRating() / 5); + ArmorUtil.damageSuit(living, i, trait.getRating() / 50); } } } @@ -191,14 +194,37 @@ public class EntityMist extends Entity { trait.affect(living, intensity); } } + + if(type == Fluids.ENDERJUICE && living != null){ + teleportRandomly(living); + } + + if(type.hasTrait(FT_Pheromone.class)){ + + FT_Pheromone pheromone = type.getTrait(FT_Pheromone.class); + + if(living != null) { + if ((living instanceof EntityGlyphid && pheromone.getType() == 1) || (living instanceof EntityPlayer && pheromone.getType() == 2)) { + int mult = pheromone.getType(); + + living.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, mult * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.digSpeed.id, mult * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.regeneration.id, mult * 2 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.resistance.id, mult * 60 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, mult * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.fireResistance.id, mult * 60 * 20, 0)); + + } + } + } } protected boolean isExtinguishing(FluidType type) { - return this.getStyleFromType(type) == SprayStyle.MIST && this.getType().temperature < 50 && !type.hasTrait(FT_Flammable.class); + return this.getType().temperature < 50 && !type.hasTrait(FT_Flammable.class); } public int getMaxAge() { - return getStyleFromType(this.getType()) == SprayStyle.GAS ? 600 : 150; + return maxAge; } @Override @@ -242,10 +268,76 @@ public class EntityMist extends Entity { return SprayStyle.NULL; } - + public static enum SprayStyle { MIST, //liquids that have been sprayed into a mist GAS, //things that were already gaseous NULL } + + //terribly copy-pasted from EntityChemical.class, whose method was terribly copy-pasted from EntityEnderman.class + //the fun never ends + public void teleportRandomly(Entity e) { + double x = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D; + double y = this.posY + (double) (this.rand.nextInt(64) - 32); + double z = this.posZ + (this.rand.nextDouble() - 0.5D) * 64.0D; + this.teleportTo(e, x, y, z); + } + + public void teleportTo(Entity e, double x, double y, double z) { + + double targetX = e.posX; + double targetY = e.posY; + double targetZ = e.posZ; + e.posX = x; + e.posY = y; + e.posZ = z; + boolean flag = false; + int i = MathHelper.floor_double(e.posX); + int j = MathHelper.floor_double(e.posY); + int k = MathHelper.floor_double(e.posZ); + + if(e.worldObj.blockExists(i, j, k)) { + boolean flag1 = false; + + while(!flag1 && j > 0) { + Block block = e.worldObj.getBlock(i, j - 1, k); + + if(block.getMaterial().blocksMovement()) { + flag1 = true; + } else { + --e.posY; + --j; + } + } + + if(flag1) { + e.setPosition(e.posX, e.posY, e.posZ); + + if(e.worldObj.getCollidingBoundingBoxes(e, e.boundingBox).isEmpty() && !e.worldObj.isAnyLiquid(e.boundingBox)) { + flag = true; + } + } + } + + if(!flag) { + e.setPosition(targetX, targetY, targetZ); + } else { + short short1 = 128; + + for(int l = 0; l < short1; ++l) { + double d6 = (double) l / ((double) short1 - 1.0D); + float f = (this.rand.nextFloat() - 0.5F) * 0.2F; + float f1 = (this.rand.nextFloat() - 0.5F) * 0.2F; + float f2 = (this.rand.nextFloat() - 0.5F) * 0.2F; + double d7 = targetX + (e.posX - targetX) * d6 + (this.rand.nextDouble() - 0.5D) * (double) e.width * 2.0D; + double d8 = targetY + (e.posY - targetY) * d6 + this.rand.nextDouble() * (double) e.height; + double d9 = targetZ + (e.posZ - targetZ) * d6 + (this.rand.nextDouble() - 0.5D) * (double) e.width * 2.0D; + e.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2); + } + + e.worldObj.playSoundEffect(targetX, targetY, targetZ, "mob.endermen.portal", 1.0F, 1.0F); + e.playSound("mob.endermen.portal", 1.0F, 1.0F); + } + } } diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java b/src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java deleted file mode 100644 index f8377f8b0..000000000 --- a/src/main/java/com/hbm/entity/effect/EntityNukeCloudBig.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.hbm.entity.effect; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class EntityNukeCloudBig extends Entity { - - public int maxAge = 1000; - public int age; - public float scale = 0; - public float ring = 0; - public float height = 0; - - public EntityNukeCloudBig(World p_i1582_1_) { - super(p_i1582_1_); - this.setSize(1, 80); - this.ignoreFrustumCheck = true; - this.isImmuneToFire = true; - this.age = 0; - scale = 0; - ring = 0; - height = 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } - - public EntityNukeCloudBig(World p_i1582_1_, int maxAge) { - super(p_i1582_1_); - this.setSize(20, 40); - this.isImmuneToFire = true; - this.maxAge = maxAge; - } - - @Override - public void onUpdate() { - //super.onUpdate(); - this.age++; - this.worldObj.spawnEntityInWorld(new EntityLightningBolt(this.worldObj, this.posX, this.posY + 200, this.posZ)); - - if(this.age >= this.maxAge) - { - this.age = 0; - this.setDead(); - } - ring += 0.1F; - - if(age < 150) - { - height = -60F + ((age - 100) * 60 / 50); - if(scale < 1.5) - { - scale += 0.02; - } - } - - if(age > 100) - { - if(scale < 1.5) - { - scale += 0.02; - } - } else { - scale = 0; - } - } - - @Override - protected void entityInit() { - - } - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - age = p_70037_1_.getShort("age"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - p_70014_1_.setShort("age", (short)age); - - } -} diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java b/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java deleted file mode 100644 index b2794a939..000000000 --- a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.hbm.entity.effect; - -import java.util.ArrayList; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityNukeCloudSmall extends Entity { - - public int maxAge = 1000; - public int age; - - public static int cloudletLife = 50; - public ArrayList cloudlets = new ArrayList(); - - public EntityNukeCloudSmall(World p_i1582_1_) { - super(p_i1582_1_); - this.setSize(20, 40); - this.ignoreFrustumCheck = true; - this.isImmuneToFire = true; - this.age = 0; - this.noClip = true; - } - - public EntityNukeCloudSmall(World p_i1582_1_, int maxAge, float scale) { - super(p_i1582_1_); - this.setSize(20, 40); - this.isImmuneToFire = true; - this.maxAge = maxAge; - this.noClip = true; - this.dataWatcher.updateObject(18, scale); - } - - @Override - public void onUpdate() { - - this.age++; - - this.worldObj.lastLightningBolt = 2; - - if(this.age >= this.maxAge) - { - this.age = 0; - this.setDead(); - } - - int cloudCount = age * 3; - - Vec3 vec = Vec3.createVectorHelper(age * 2, 0, 0); - - int toRem = 0; - - for(int i = 0; i < this.cloudlets.size(); i++) { - - if(age > cloudlets.get(i).age + cloudletLife) - toRem = i; - else - break; - } - - for(int i = 0; i < toRem; i++) - this.cloudlets.remove(0); - - if(age < 200) { - for(int i = 0; i < cloudCount; i++) { - vec.rotateAroundY((float)(Math.PI * 2 * worldObj.rand.nextDouble())); - - this.cloudlets.add(new Cloudlet(vec.xCoord, worldObj.getHeightValue((int) (vec.xCoord + posX), (int) (vec.zCoord + posZ)), vec.zCoord, age)); - } - } - - this.dataWatcher.updateObject(16, (short)maxAge); - this.dataWatcher.updateObject(17, (short)age); - } - - @Override - protected void entityInit() { - this.dataWatcher.addObject(16, (short)maxAge); - this.dataWatcher.addObject(17, (short)age); - this.dataWatcher.addObject(18, 1.0F); - this.dataWatcher.addObject(19, Byte.valueOf((byte)0)); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - maxAge = p_70037_1_.getShort("maxAge"); - age = p_70037_1_.getShort("age"); - this.dataWatcher.updateObject(18, p_70037_1_.getFloat("scale")); - this.dataWatcher.updateObject(19, p_70037_1_.getByte("type")); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - p_70014_1_.setShort("maxAge", (short)maxAge); - p_70014_1_.setShort("age", (short)age); - p_70014_1_.setFloat("scale", this.dataWatcher.getWatchableObjectFloat(18)); - p_70014_1_.setByte("type", this.dataWatcher.getWatchableObjectByte(19)); - - } - - public static EntityNukeCloudSmall statFac(World world, double x, double y, double z, float radius) { - - EntityNukeCloudSmall cloud = new EntityNukeCloudSmall(world, (int)radius * 5, radius * 0.005F); - cloud.posX = x; - cloud.posY = y; - cloud.posZ = z; - cloud.dataWatcher.updateObject(19, (byte)0); - - return cloud; - } - - public static EntityNukeCloudSmall statFacBale(World world, double x, double y, double z, float radius, int maxAge) { - - EntityNukeCloudSmall cloud = new EntityNukeCloudSmall(world, (int)radius * 5, radius * 0.005F); - cloud.posX = x; - cloud.posY = y; - cloud.posZ = z; - cloud.dataWatcher.updateObject(19, (byte)1); - - return cloud; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return true; - } - - public static class Cloudlet { - - public double posX; - public double posY; - public double posZ; - public int age; - - public Cloudlet(double posX, double posY, double posZ, int age) { - this.posX = posX; - this.posY = posY; - this.posZ = posZ; - this.age = age; - } - } - -} diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index b93311496..bc6eafaec 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -1,7 +1,12 @@ package com.hbm.entity.effect; +import java.awt.Color; import java.util.ArrayList; +import com.hbm.main.MainRegistry; +import com.hbm.util.BobMathUtil; +import com.hbm.util.TrackerUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; @@ -25,6 +30,9 @@ public class EntityNukeTorex extends Entity { public ArrayList cloudlets = new ArrayList(); //public static int cloudletLife = 200; + public boolean didPlaySound = false; + public boolean didShake = false; + public EntityNukeTorex(World world) { super(world); this.ignoreFrustumCheck = true; @@ -34,21 +42,36 @@ public class EntityNukeTorex extends Entity { @Override protected void entityInit() { this.dataWatcher.addObject(10, new Float(1)); + this.dataWatcher.addObject(11, new Integer(0)); + } + + @Override + @SideOnly(Side.CLIENT) + public int getBrightnessForRender(float p_70070_1_) { + return 15728880; + } + + @Override + public float getBrightness(float p_70013_1_) { + return 1.0F; } @Override public void onUpdate() { - double s = this.getScale(); + double s = 1.5; //this.getScale(); + double cs = 1.5; int maxAge = this.getMaxAge(); if(worldObj.isRemote) { + if(ticksExisted == 1) this.setScale((float) s); + if(lastSpawnY == -1) { lastSpawnY = posY - 3; } - int spawnTarget = worldObj.getHeightValue((int) Math.floor(posX), (int) Math.floor(posZ)) - 3; + int spawnTarget = Math.max(worldObj.getHeightValue((int) Math.floor(posX), (int) Math.floor(posZ)) - 3, 1); double moveSpeed = 0.5D; if(Math.abs(spawnTarget - lastSpawnY) < moveSpeed) { @@ -57,6 +80,7 @@ public class EntityNukeTorex extends Entity { lastSpawnY += moveSpeed * Math.signum(spawnTarget - lastSpawnY); } + // spawn mush clouds double range = (torusWidth - rollerSize) * 0.25; double simSpeed = getSimulationSpeed(); int toSpawn = (int) Math.ceil(10 * simSpeed * simSpeed); @@ -66,34 +90,82 @@ public class EntityNukeTorex extends Entity { double x = posX + rand.nextGaussian() * range; double z = posZ + rand.nextGaussian() * range; Cloudlet cloud = new Cloudlet(x, lastSpawnY, z, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime); - cloud.setScale(1F + this.ticksExisted * 0.005F * (float) s, 5F * (float) s); + cloud.setScale(1F + this.ticksExisted * 0.005F * (float) cs, 5F * (float) cs); cloudlets.add(cloud); } - if(ticksExisted < 50) { + // spawn shock clouds + if(ticksExisted < 150) { int cloudCount = ticksExisted * 5; - int shockLife = 200 - ticksExisted * 9 / 10; + int shockLife = Math.max(300 - ticksExisted * 20, 50); for(int i = 0; i < cloudCount; i++) { - Vec3 vec = Vec3.createVectorHelper((ticksExisted * 2 + rand.nextDouble()) * 2, 0, 0); + Vec3 vec = Vec3.createVectorHelper((ticksExisted * 1.5 + rand.nextDouble()) * 1.5, 0, 0); float rot = (float) (Math.PI * 2 * rand.nextDouble()); vec.rotateAroundY(rot); - this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 1, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0, shockLife) - .setScale(5F, 2F) - .setMotion(0)); + this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 1, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0, shockLife, TorexType.SHOCK) + .setScale(7F, 2F) + .setMotion(ticksExisted > 15 ? 0.75 : 0)); + } + + if(!didPlaySound) { + if(MainRegistry.proxy.me() != null && MainRegistry.proxy.me().getDistanceToEntity(this) < (ticksExisted * 1.5 + 1) * 1.5) { + MainRegistry.proxy.playSoundClient(posX, posY, posZ, "hbm:weapon.nuclearExplosion", 10_000F, 1F); + didPlaySound = true; + } + } + } + + // spawn ring clouds + if(ticksExisted < 130 * s) { + lifetime *= s; + for(int i = 0; i < 2; i++) { + Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); + cloud.setScale(1F + this.ticksExisted * 0.0025F * (float) (cs * cs), 3F * (float) (cs * cs)); + cloudlets.add(cloud); + } + } + + // spawn condensation clouds + if(ticksExisted > 130 * s && ticksExisted < 600 * s) { + + for(int i = 0; i < 20; i++) { + for(int j = 0; j < 4; j++) { + float angle = (float) (Math.PI * 2 * rand.nextDouble()); + Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * (5 + rand.nextDouble()), 0, 0); + vec.rotateAroundZ((float) (Math.PI / 45 * j)); + vec.rotateAroundY(angle); + Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight - 5 + j * s, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); + cloud.setScale(0.125F * (float) (cs), 3F * (float) (cs)); + cloudlets.add(cloud); + } + } + } + if(ticksExisted > 200 * s && ticksExisted < 600 * s) { + + for(int i = 0; i < 20; i++) { + for(int j = 0; j < 4; j++) { + float angle = (float) (Math.PI * 2 * rand.nextDouble()); + Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * (3 + rand.nextDouble() * 0.5), 0, 0); + vec.rotateAroundZ((float) (Math.PI / 45 * j)); + vec.rotateAroundY(angle); + Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight + 25 + j * cs, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); + cloud.setScale(0.125F * (float) (cs), 3F * (float) (cs)); + cloudlets.add(cloud); + } } } for(Cloudlet cloud : cloudlets) { cloud.update(); } - coreHeight += 0.15/* * s*/; - torusWidth += 0.05/* * s*/; + coreHeight += 0.15 / s; + torusWidth += 0.05 / s; rollerSize = torusWidth * 0.35; convectionHeight = coreHeight + rollerSize; - int maxHeat = (int) (50 * s); + int maxHeat = (int) (50 * cs); heat = maxHeat - Math.pow((maxHeat * this.ticksExisted) / maxAge, 1); cloudlets.removeIf(x -> x.isDead); @@ -104,6 +176,20 @@ public class EntityNukeTorex extends Entity { } } + public EntityNukeTorex setScale(float scale) { + if(!worldObj.isRemote) getDataWatcher().updateObject(10, scale); + this.coreHeight = this.coreHeight / 1.5D * scale; + this.convectionHeight = this.convectionHeight / 1.5D * scale; + this.torusWidth = this.torusWidth / 1.5D * scale; + this.rollerSize = this.rollerSize / 1.5D * scale; + return this; + } + + public EntityNukeTorex setType(int type) { + this.dataWatcher.updateObject(11, type); + return this; + } + public double getSimulationSpeed() { int lifetime = getMaxAge(); @@ -151,7 +237,7 @@ public class EntityNukeTorex extends Entity { if(life > fadeOut) { float fac = (float)(life - fadeOut) / (float)(lifetime - fadeOut); - return 1F - fac * fac; + return 1F - fac; } return 1.0F; @@ -181,8 +267,13 @@ public class EntityNukeTorex extends Entity { public float colorMod = 1.0F; public Vec3 color; public Vec3 prevColor; + public TorexType type; public Cloudlet(double posX, double posY, double posZ, float angle, int age, int maxAge) { + this(posX, posY, posZ, angle, age, maxAge, TorexType.STANDARD); + } + + public Cloudlet(double posX, double posY, double posZ, float angle, int age, int maxAge, TorexType type) { this.posX = posX; this.posY = posY; this.posZ = posZ; @@ -191,10 +282,9 @@ public class EntityNukeTorex extends Entity { this.angle = angle; this.rangeMod = 0.3F + rand.nextFloat() * 0.7F; this.colorMod = 0.8F + rand.nextFloat() * 0.2F; + this.type = type; this.updateColor(); - - //TODO: add movement types which excludes ground dust from convection sim, then let centered ground dust linger for longer } private void update() { @@ -212,14 +302,34 @@ public class EntityNukeTorex extends Entity { Vec3 simPos = Vec3.createVectorHelper(EntityNukeTorex.this.posX - this.posX, 0, EntityNukeTorex.this.posZ - this.posZ); double simPosX = EntityNukeTorex.this.posX + simPos.lengthVector(); double simPosZ = EntityNukeTorex.this.posZ + 0D; - - Vec3 convection = getConvectionMotion(simPosX, simPosZ); - Vec3 lift = getLiftMotion(simPosX, simPosZ); - double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); - this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); - this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); - this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + if(this.type == TorexType.STANDARD) { + Vec3 convection = getConvectionMotion(simPosX, simPosZ); + Vec3 lift = getLiftMotion(simPosX, simPosZ); + + double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); + this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); + this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); + this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + } else if(this.type == TorexType.SHOCK) { + + double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); + Vec3 motion = Vec3.createVectorHelper(1, 0, 0); + motion.rotateAroundY(this.angle); + this.motionX = motion.xCoord * factor; + this.motionY = motion.yCoord * factor; + this.motionZ = motion.zCoord * factor; + } else if(this.type == TorexType.RING) { + Vec3 motion = getRingMotion(simPosX, simPosZ); + this.motionX = motion.xCoord; + this.motionY = motion.yCoord; + this.motionZ = motion.zCoord; + } else if(this.type == TorexType.CONDENSATION) { + Vec3 motion = getCondensationMotion(); + this.motionX = motion.xCoord; + this.motionY = motion.yCoord; + this.motionZ = motion.zCoord; + } double mult = this.motionMult * getSimulationSpeed(); @@ -230,12 +340,63 @@ public class EntityNukeTorex extends Entity { this.updateColor(); } - /* simulated on a 2D-plane along the X/Y axis */ - private Vec3 getConvectionMotion(double simPosX, double simPosZ) { + private Vec3 getCondensationMotion() { + Vec3 delta = Vec3.createVectorHelper(posX - EntityNukeTorex.this.posX, 0, posZ - EntityNukeTorex.this.posZ); + double speed = 0.00002 * EntityNukeTorex.this.ticksExisted; + delta.xCoord *= speed; + delta.zCoord *= speed; + return delta; + } + + private Vec3 getRingMotion(double simPosX, double simPosZ) { if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) return Vec3.createVectorHelper(0, 0, 0); + /* the position of the torus' outer ring center */ + Vec3 torusPos = Vec3.createVectorHelper( + (EntityNukeTorex.this.posX + torusWidth), + (EntityNukeTorex.this.posY + coreHeight * 0.5), + EntityNukeTorex.this.posZ); + + /* the difference between the cloudlet and the torus' ring center */ + Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); + + /* the distance this cloudlet wants to achieve to the torus' ring center */ + double roller = EntityNukeTorex.this.rollerSize * this.rangeMod * 0.25; + /* the distance between this cloudlet and the torus' outer ring perimeter */ + double dist = delta.lengthVector() / roller - 1D; + + /* euler function based on how far the cloudlet is away from the perimeter */ + double func = 1D - Math.pow(Math.E, -dist); // [0;1] + /* just an approximation, but it's good enough */ + float angle = (float) (func * Math.PI * 0.5D); // [0;90°] + + /* vector going from the ring center in the direction of the cloudlet, stopping at the perimeter */ + Vec3 rot = Vec3.createVectorHelper(-delta.xCoord / dist, -delta.yCoord / dist, -delta.zCoord / dist); + /* rotate by the approximate angle */ + rot.rotateAroundZ(angle); + + /* the direction from the cloudlet to the target position on the perimeter */ + Vec3 motion = Vec3.createVectorHelper( + torusPos.xCoord + rot.xCoord - simPosX, + torusPos.yCoord + rot.yCoord - this.posY, + torusPos.zCoord + rot.zCoord - simPosZ); + + double speed = 0.001D; + motion.xCoord *= speed; + motion.yCoord *= speed; + motion.zCoord *= speed; + + motion = motion.normalize(); + motion.rotateAroundY(this.angle); + + return motion; + } + + /* simulated on a 2D-plane along the X/Y axis */ + private Vec3 getConvectionMotion(double simPosX, double simPosZ) { + /* the position of the torus' outer ring center */ Vec3 torusPos = Vec3.createVectorHelper( (EntityNukeTorex.this.posX + torusWidth), @@ -245,7 +406,6 @@ public class EntityNukeTorex extends Entity { /* the difference between the cloudlet and the torus' ring center */ Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); - /* the distance this cloudlet wants to achieve to the torus' ring center */ double roller = EntityNukeTorex.this.rollerSize * this.rangeMod; /* the distance between this cloudlet and the torus' outer ring perimeter */ @@ -304,22 +464,62 @@ public class EntityNukeTorex extends Entity { dist = Math.max(dist, 1); double col = 2D / dist; - this.color = Vec3.createVectorHelper( - Math.max(col * 2, 0.25), - Math.max(col * 1.5, 0.25), - Math.max(col * 0.5, 0.25) - ); + int type = EntityNukeTorex.this.dataWatcher.getWatchableObjectInt(11); + + if(type == 1) { + this.color = Vec3.createVectorHelper( + Math.max(col * 1, 0.25), + Math.max(col * 2, 0.25), + Math.max(col * 0.5, 0.25) + ); + } else if(type == 2) { + Color color = Color.getHSBColor(this.angle / 2F / (float) Math.PI, 1F, 1F); + if(this.type == TorexType.RING) { + this.color = Vec3.createVectorHelper( + Math.max(col * 1, 0.25), + Math.max(col * 1, 0.25), + Math.max(col * 1, 0.25) + ); + } else { + this.color = Vec3.createVectorHelper(color.getRed() / 255D, color.getGreen() / 255D, color.getBlue() / 255D); + } + } else { + this.color = Vec3.createVectorHelper( + Math.max(col * 2, 0.25), + Math.max(col * 1.5, 0.25), + Math.max(col * 0.5, 0.25) + ); + } } public Vec3 getInterpPos(float interp) { - return Vec3.createVectorHelper( + float scale = (float) EntityNukeTorex.this.getScale(); + Vec3 base = Vec3.createVectorHelper( prevPosX + (posX - prevPosX) * interp, prevPosY + (posY - prevPosY) * interp, prevPosZ + (posZ - prevPosZ) * interp); + + if(this.type != TorexType.SHOCK) { //no rescale for the shockwave as this messes with the positions + base.xCoord = ((base.xCoord) - EntityNukeTorex.this.posX) * scale + EntityNukeTorex.this.posX; + base.yCoord = ((base.yCoord) - EntityNukeTorex.this.posY) * scale + EntityNukeTorex.this.posY; + base.zCoord = ((base.zCoord) - EntityNukeTorex.this.posZ) * scale + EntityNukeTorex.this.posZ; + } + + return base; } public Vec3 getInterpColor(float interp) { + + if(this.type == TorexType.CONDENSATION) { + return Vec3.createVectorHelper(1F, 1F, 1F); + } + double greying = EntityNukeTorex.this.getGreying(); + + if(this.type == TorexType.RING) { + greying += 1; + } + return Vec3.createVectorHelper( (prevColor.xCoord + (color.xCoord - prevColor.xCoord) * interp) * greying, (prevColor.yCoord + (color.yCoord - prevColor.yCoord) * interp) * greying, @@ -327,14 +527,18 @@ public class EntityNukeTorex extends Entity { } public float getAlpha() { - return (1F - ((float)age / (float)cloudletLife)) * EntityNukeTorex.this.getAlpha(); + float alpha = (1F - ((float)age / (float)cloudletLife)) * EntityNukeTorex.this.getAlpha(); + if(this.type == TorexType.CONDENSATION) alpha *= 0.25; + return alpha; } private float startingScale = 1; private float growingScale = 5F; public float getScale() { - return startingScale + ((float)age / (float)cloudletLife) * growingScale; + float base = startingScale + ((float)age / (float)cloudletLife) * growingScale; + if(this.type != TorexType.SHOCK) base *= (float) EntityNukeTorex.this.getScale(); + return base; } public Cloudlet setScale(float start, float grow) { @@ -350,16 +554,37 @@ public class EntityNukeTorex extends Entity { return this; } } + + public static enum TorexType { + STANDARD, + SHOCK, + RING, + CONDENSATION + } - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } + @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { return true; } + + public static void statFac(World world, double x, double y, double z, float scale) { + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)); + torex.setPosition(x, y, z); + torex.forceSpawn = true; + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); + } + + public static void statFacBale(World world, double x, double y, double z, float scale) { + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)).setType(1); + torex.setPosition(x, y, z); + torex.forceSpawn = true; + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); + } } diff --git a/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java b/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java new file mode 100644 index 000000000..3316c8015 --- /dev/null +++ b/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java @@ -0,0 +1,75 @@ +package com.hbm.entity.grenade; + +import com.hbm.entity.effect.EntityMist; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class EntityDisperserCanister extends EntityGrenadeBase { + + public EntityDisperserCanister(World p_i1773_1_) { + super(p_i1773_1_); + } + + public EntityDisperserCanister(World p_i1774_1_, EntityLivingBase p_i1774_2_) { + super(p_i1774_1_, p_i1774_2_); + } + + public EntityDisperserCanister(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { + super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + } + + public EntityDisperserCanister setFluid(int id) { + this.dataWatcher.updateObject(12, id); + return this; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(12, 0); + this.dataWatcher.addObject(13, 0); + } + + public EntityDisperserCanister setType(int id) { + this.dataWatcher.updateObject(13, id); + return this; + } + + public FluidType getFluid() { + return Fluids.fromID(this.dataWatcher.getWatchableObjectInt(12)); + } + + public Item getType() { + return Item.getItemById(this.dataWatcher.getWatchableObjectInt(13)); + } + + @Override + public void explode() { + if(!worldObj.isRemote) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(getFluid()); + mist.setPosition(posX, posY, posZ); + mist.setArea(10, 5); + mist.setDuration(80); + worldObj.spawnEntityInWorld(mist); + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("fluid", this.dataWatcher.getWatchableObjectInt(12)); + nbt.setInteger("item", this.dataWatcher.getWatchableObjectInt(13)); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(12, nbt.getInteger("fluid")); + this.dataWatcher.updateObject(13, nbt.getInteger("item")); + + } +} diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java index 9b0062987..03b16f48c 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java @@ -13,6 +13,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; +@Deprecated public abstract class EntityGrenadeBase extends EntityThrowable { public EntityGrenadeBase(World p_i1773_1_) { @@ -31,24 +32,20 @@ public abstract class EntityGrenadeBase extends EntityThrowable { public void onUpdate() { super.onUpdate(); - - this.prevRotationPitch = this.rotationPitch; - - this.rotationPitch -= Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() * 25; - - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } + this.prevRotationPitch = this.rotationPitch; + this.rotationPitch -= Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() * 25; + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } + while(this.rotationYaw - this.prevRotationYaw < -180.0F) { + this.prevRotationYaw -= 360.0F; + } - this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { + this.prevRotationYaw += 360.0F; + } + + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; } @Override diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java index 51d813653..20be9af9c 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java @@ -6,7 +6,6 @@ import net.minecraft.world.World; import java.util.Random; import com.hbm.entity.effect.EntityMist; -import com.hbm.explosion.ExplosionChaos; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemGrenade; diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java index 601381cee..98da6e84c 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java @@ -8,52 +8,51 @@ import com.hbm.items.weapon.ItemGrenade; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityGrenadeIFNull extends EntityGrenadeBouncyBase { - public EntityGrenadeIFNull(World p_i1773_1_) - { - super(p_i1773_1_); - } + public EntityGrenadeIFNull(World world) { + super(world); + } - public EntityGrenadeIFNull(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); - } + public EntityGrenadeIFNull(World world, EntityLivingBase thrower) { + super(world, thrower); + } - public EntityGrenadeIFNull(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } + public EntityGrenadeIFNull(World world, double x, double y, double z) { + super(world, x, y, z); + } - @Override - public void explode() { - - if (!this.worldObj.isRemote) - { - this.setDead(); + @Override + public void explode() { - for(int a = -3; a <= 3; a++) - for(int b = -3; b <= 3; b++) - for(int c = -3; c <= 3; c++) - worldObj.setBlockToAir((int)posX + a, (int)posY + b, (int)posZ + c); - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox((int)posX + 0.5 - 3, (int)posY + 0.5 - 3, (int)posZ + 0.5 - 3, (int)posX + 0.5 + 3, (int)posY + 0.5 + 3, (int)posZ + 0.5 + 3)); - - for(Object o : list) { - if(o instanceof EntityLivingBase) { - EntityLivingBase e = (EntityLivingBase)o; - - e.setHealth(0); - } else if(o instanceof Entity) { - Entity e = (Entity)o; - - e.setDead(); - } - } - } - } + if(!this.worldObj.isRemote) { + this.setDead(); + + int range = 5; + + for(int a = -range; a <= range; a++) + for(int b = -range; b <= range; b++) + for(int c = -range; c <= range; c++) + worldObj.setBlockToAir((int) Math.floor(posX + a), (int) Math.floor(posY + b), (int) Math.floor(posZ + c)); + + List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, + AxisAlignedBB.getBoundingBox((int) posX + 0.5 - 3, (int) posY + 0.5 - 3, (int) posZ + 0.5 - 3, (int) posX + 0.5 + 3, (int) posY + 0.5 + 3, (int) posZ + 0.5 + 3)); + + for(Object o : list) { + if(o instanceof EntityLivingBase) { + EntityLivingBase e = (EntityLivingBase) o; + e.setHealth(0); + e.onDeath(DamageSource.outOfWorld); + } else if(o instanceof Entity) { + Entity e = (Entity) o; + e.setDead(); + } + } + } + } @Override protected int getMaxTimer() { diff --git a/src/main/java/com/hbm/entity/item/EntityBoatRubber.java b/src/main/java/com/hbm/entity/item/EntityBoatRubber.java new file mode 100644 index 000000000..bcf638c7a --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityBoatRubber.java @@ -0,0 +1,491 @@ +package com.hbm.entity.item; + +import java.util.List; + +import com.hbm.items.ModItems; +import com.hbm.util.TrackerUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EntityTrackerEntry; +import net.minecraft.entity.item.EntityBoat; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +public class EntityBoatRubber extends Entity { + + private boolean isBoatEmpty; + private double speedMultiplier; + private int boatPosRotationIncrements; + private double boatX; + private double boatY; + private double boatZ; + private double boatYaw; + private double boatPitch; + @SideOnly(Side.CLIENT) private double velocityX; + @SideOnly(Side.CLIENT) private double velocityY; + @SideOnly(Side.CLIENT) private double velocityZ; + public float prevRenderYaw; + + public EntityBoatRubber(World world) { + super(world); + this.isBoatEmpty = true; + this.speedMultiplier = 0.07D; + this.preventEntitySpawning = true; + this.setSize(1.5F, 0.6F); + this.yOffset = this.height / 2.0F; + } + + public EntityBoatRubber(World world, double x, double y, double z) { + this(world); + this.setPosition(x, y + (double) this.yOffset, z); + this.motionX = 0.0D; + this.motionY = 0.0D; + this.motionZ = 0.0D; + this.prevPosX = x; + this.prevPosY = y; + this.prevPosZ = z; + } + + protected void entityInit() { + this.dataWatcher.addObject(17, new Integer(0)); + this.dataWatcher.addObject(18, new Integer(1)); + this.dataWatcher.addObject(19, new Float(0.0F)); + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + public AxisAlignedBB getCollisionBox(Entity entity) { + return entity.boundingBox; + } + @Override + public AxisAlignedBB getBoundingBox() { + return this.boundingBox; + } + @Override + public boolean canBePushed() { + return true; + } + @Override + public double getMountedYOffset() { + return (double) this.height * 0.0D - 0.3D; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(this.isEntityInvulnerable()) { + return false; + } else if(!this.worldObj.isRemote && !this.isDead) { + this.setForwardDirection(-this.getForwardDirection()); + this.setTimeSinceHit(10); + this.setDamageTaken(this.getDamageTaken() + amount * 10.0F); + this.setBeenAttacked(); + boolean hitByCreative = source.getEntity() instanceof EntityPlayer && ((EntityPlayer) source.getEntity()).capabilities.isCreativeMode; + + if(hitByCreative || this.getDamageTaken() > 40.0F) { + if(this.riddenByEntity != null) { + this.riddenByEntity.mountEntity(this); + } + + if(!hitByCreative) { + this.dropBoat(); + } + + this.setDead(); + } + + return true; + } else { + return true; + } + } + + @Override + @SideOnly(Side.CLIENT) + public void performHurtAnimation() { + this.setForwardDirection(-this.getForwardDirection()); + this.setTimeSinceHit(10); + this.setDamageTaken(this.getDamageTaken() * 11.0F); + } + + @Override + public boolean canBeCollidedWith() { + return !this.isDead; + } + + @Override + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int interp) { + if(this.isBoatEmpty) { + this.boatPosRotationIncrements = interp; + } else { + double d3 = x - this.posX; + double d4 = y - this.posY; + double d5 = z - this.posZ; + double d6 = d3 * d3 + d4 * d4 + d5 * d5; + + if(d6 <= 1.0D) { + return; + } + + this.boatPosRotationIncrements = 3; + } + + this.boatX = x; + this.boatY = y; + this.boatZ = z; + this.boatYaw = (double) yaw; + this.boatPitch = (double) pitch; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + @SideOnly(Side.CLIENT) + public void setVelocity(double x, double y, double z) { + this.velocityX = this.motionX = x; + this.velocityY = this.motionY = y; + this.velocityZ = this.motionZ = z; + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(this.getTimeSinceHit() > 0) { + this.setTimeSinceHit(this.getTimeSinceHit() - 1); + } + + if(this.getDamageTaken() > 0.0F) { + this.setDamageTaken(this.getDamageTaken() - 1.0F); + } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + byte b0 = 5; + double d0 = 0.0D; + + for(int i = 0; i < b0; ++i) { + double d1 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double) (i + 0) / (double) b0 - 0.125D; + double d3 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double) (i + 1) / (double) b0 - 0.125D; + AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox(this.boundingBox.minX, d1, this.boundingBox.minZ, this.boundingBox.maxX, d3, this.boundingBox.maxZ); + + if(this.worldObj.isAABBInMaterial(axisalignedbb, Material.water)) { + d0 += 1.0D / (double) b0; + } + } + + if(this.worldObj.isRemote && this.isBoatEmpty) { + if(this.boatPosRotationIncrements > 0) { + double x = this.posX + (this.boatX - this.posX) / (double) this.boatPosRotationIncrements; + double y = this.posY + (this.boatY - this.posY) / (double) this.boatPosRotationIncrements; + double z = this.posZ + (this.boatZ - this.posZ) / (double) this.boatPosRotationIncrements; + double yaw = MathHelper.wrapAngleTo180_double(this.boatYaw - (double) this.rotationYaw); + this.rotationYaw = (float) ((double) this.rotationYaw + yaw / (double) this.boatPosRotationIncrements); + this.rotationPitch = (float) ((double) this.rotationPitch + (this.boatPitch - (double) this.rotationPitch) / (double) this.boatPosRotationIncrements); + --this.boatPosRotationIncrements; + this.setPosition(x, y, z); + + } else { + double x = this.posX + this.motionX; + double y = this.posY + this.motionY; + double z = this.posZ + this.motionZ; + this.setPosition(x, y, z); + + if(this.onGround) { + this.motionX *= 0.5D; + this.motionY *= 0.5D; + this.motionZ *= 0.5D; + } + + this.passiveDeccelerate(); + } + } else { + if(d0 < 1.0D) { + double d2 = d0 * 2.0D - 1.0D; + this.motionY += 0.04D * d2; + } else { + if(this.motionY < 0.0D) { + this.motionY /= 2.0D; + } + + this.motionY += 0.007000000216066837D; + } + + double prevSpeedSq = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + + this.isAirBorne = false; + + if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase) { + EntityLivingBase entitylivingbase = (EntityLivingBase) this.riddenByEntity; + + if(entitylivingbase.moveForward != 0 || entitylivingbase.moveStrafing != 0) { + + Vec3 dir = Vec3.createVectorHelper(0, 0, 1); + dir.rotateAroundY((float) -((this.rotationYaw + 90) * Math.PI / 180D)); + this.motionX += dir.xCoord * this.speedMultiplier * entitylivingbase.moveForward * 0.05D; + this.motionZ += dir.zCoord * this.speedMultiplier * entitylivingbase.moveForward * 0.05D; + + float prevYaw = this.rotationYaw; + this.rotationYaw -= entitylivingbase.moveStrafing * 3; + + Vec3 newMotion = Vec3.createVectorHelper(motionX, 0, motionZ); + newMotion.rotateAroundY((float) (-(this.rotationYaw - prevYaw) * Math.PI / 180D)); + this.motionX = newMotion.xCoord; + this.motionZ = newMotion.zCoord; + + //HOLY HELL! if we don't shit ourselves over packets and send them at proper intervals, entities are suddenly smooth! who would have thought! mojang certainly didn't! + EntityTrackerEntry entry = TrackerUtil.getTrackerEntry((WorldServer) worldObj, this.getEntityId()); + entry.lastYaw = MathHelper.floor_float(this.rotationYaw * 256.0F / 360.0F) + 10; //force-trigger rotation update + } + } else { + this.motionX *= 0.95D; + this.motionY *= 0.95D; + this.motionZ *= 0.95D; + } + + double speedSq = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + + if(speedSq > 0.5D) { + double d4 = 0.5D / speedSq; + this.motionX *= d4; + this.motionZ *= d4; + speedSq = 0.5D; + } + + if(speedSq > prevSpeedSq && this.speedMultiplier < 0.5D) { + this.speedMultiplier += (0.5D - this.speedMultiplier) / 50.0D; + + if(this.speedMultiplier > 0.5D) { + this.speedMultiplier = 0.5D; + } + } else { + this.speedMultiplier -= (this.speedMultiplier - 0.07D) / 35.0D; + + if(this.speedMultiplier < 0.07D) { + this.speedMultiplier = 0.07D; + } + } + + for(int index = 0; index < 4; ++index) { + int x = MathHelper.floor_double(this.posX + ((double) (index % 2) - 0.5D) * 0.8D); + int z = MathHelper.floor_double(this.posZ + ((double) (index / 2) - 0.5D) * 0.8D); + + for(int yOff = 0; yOff < 2; ++yOff) { + int y = MathHelper.floor_double(this.posY) + yOff; + Block block = this.worldObj.getBlock(x, y, z); + + if(block == Blocks.snow_layer) { + this.worldObj.setBlockToAir(x, y, z); + this.isCollidedHorizontally = false; + } else if(block == Blocks.waterlily) { + this.worldObj.func_147480_a(x, y, z, true); + this.isCollidedHorizontally = false; + } + } + } + + if(this.onGround) { + this.motionX *= 0.5D; + this.motionY *= 0.5D; + this.motionZ *= 0.5D; + } + + this.moveEntity(this.motionX, this.motionY, this.motionZ); + + if(this.isCollidedHorizontally && prevSpeedSq > 0.2D) { + this.motionX *= 0.25D; + this.motionY *= 0.25D; + this.motionZ *= 0.25D; + + } else { + this.passiveDeccelerate(); + } + + this.rotationPitch = 0.0F; + + if(!(this.riddenByEntity instanceof EntityLivingBase)) { + double yaw = (double) this.rotationYaw; + double deltaX = this.prevPosX - this.posX; + double deltaZ = this.prevPosZ - this.posZ; + + if(deltaX * deltaX + deltaZ * deltaZ > 0.001D) { + yaw = (double) ((float) (Math.atan2(deltaZ, deltaX) * 180.0D / Math.PI)); + } + + double rotationSpeed = MathHelper.wrapAngleTo180_double(yaw - (double) this.rotationYaw); + + if(rotationSpeed > 20.0D) { + rotationSpeed = 20.0D; + } + + if(rotationSpeed < -20.0D) { + rotationSpeed = -20.0D; + } + + this.rotationYaw = (float) ((double) this.rotationYaw + rotationSpeed); + } + + this.setRotation(this.rotationYaw, this.rotationPitch); + + if(!this.worldObj.isRemote) { + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(0.2D, 0.0D, 0.2D)); + + if(list != null && !list.isEmpty()) { + for(int k1 = 0; k1 < list.size(); ++k1) { + Entity entity = (Entity) list.get(k1); + + if(entity != this.riddenByEntity && entity.canBePushed() && (entity instanceof EntityBoatRubber || entity instanceof EntityBoat)) { + entity.applyEntityCollision(this); + } + } + } + + if(this.riddenByEntity != null && this.riddenByEntity.isDead) { + this.riddenByEntity = null; + } + } + } + + double moX = this.prevPosX - this.posX; + double moZ = this.prevPosZ - this.posZ; + double prevSpeedSq = Math.sqrt(moX * moX + moZ * moZ); + + if(prevSpeedSq > 0.2625D) { + double cosYaw = Math.cos(this.rotationYaw * Math.PI / 180.0D); + double sinYaw = Math.sin(this.rotationYaw * Math.PI / 180.0D); + + for(double j = 0; j < 1.0D + prevSpeedSq * 60.0D; ++j) { + double offset = (double) (this.rand.nextFloat() * 2.0F - 1.0F); + double side = (double) (this.rand.nextInt(2) * 2 - 1) * 0.7D; + double magX; + double magZ; + + if(this.rand.nextBoolean()) { + magX = this.posX - cosYaw * offset * 0.8D + sinYaw * side; + magZ = this.posZ - sinYaw * offset * 0.8D - cosYaw * side; + this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, moX, 0.1, moZ); + } else { + magX = this.posX + cosYaw + sinYaw * offset * 0.7D; + magZ = this.posZ + sinYaw - cosYaw * offset * 0.7D; + this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, moX, 0.1, moZ); + } + } + } + } + + protected void passiveDeccelerate() { + this.motionX *= 0.99D; + this.motionY *= 0.95D; + this.motionZ *= 0.99D; + } + + @Override + public void updateRiderPosition() { + if(this.riddenByEntity != null) { + double offX = Math.cos((double) this.rotationYaw * Math.PI / 180.0D) * 0.4D; + double offZ = Math.sin((double) this.rotationYaw * Math.PI / 180.0D) * 0.4D; + this.riddenByEntity.setPosition(this.posX + offX, this.posY + this.getMountedYOffset() + this.riddenByEntity.getYOffset(), this.posZ + offZ); + + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) this.riddenByEntity; + player.renderYawOffset = MathHelper.wrapAngleTo180_float(this.rotationYaw + 90F); + } + } + } + + @Override protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { } + @Override protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + @Override + public boolean interactFirst(EntityPlayer player) { + if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != player) { + return true; + } else { + if(!this.worldObj.isRemote) { + player.mountEntity(this); + } + + return true; + } + } + + @Override + protected void updateFallState(double fall, boolean onGround) { + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.posY); + int z = MathHelper.floor_double(this.posZ); + + if(onGround) { + if(this.fallDistance > 5.0F) { + this.fall(this.fallDistance); + + if(!this.worldObj.isRemote && !this.isDead) { + this.setDead(); + this.dropBoat(); + } + + this.fallDistance = 0.0F; + } + } else if(this.worldObj.getBlock(x, y - 1, z).getMaterial() != Material.water && fall < 0.0D) { + this.fallDistance = (float) ((double) this.fallDistance - fall); + } + } + + public void dropBoat() { + this.func_145778_a(ModItems.boat_rubber, 1, 0.0F); + } + + public void setDamageTaken(float amount) { + this.dataWatcher.updateObject(19, Float.valueOf(amount)); + } + + public float getDamageTaken() { + return this.dataWatcher.getWatchableObjectFloat(19); + } + + public void setTimeSinceHit(int time) { + this.dataWatcher.updateObject(17, Integer.valueOf(time)); + } + + public int getTimeSinceHit() { + return this.dataWatcher.getWatchableObjectInt(17); + } + + public void setForwardDirection(int dir) { + this.dataWatcher.updateObject(18, Integer.valueOf(dir)); + } + + public int getForwardDirection() { + return this.dataWatcher.getWatchableObjectInt(18); + } + + @SideOnly(Side.CLIENT) + public void setIsBoatEmpty(boolean empty) { + this.isBoatEmpty = empty; + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java new file mode 100644 index 000000000..4e215b4ed --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -0,0 +1,233 @@ +package com.hbm.entity.item; + +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, IChunkLoader { + + protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; + public FluidStack fluid; + + protected boolean chunkLoading = false; + private Ticket loaderTicket; + + public EntityDeliveryDrone(World world) { + super(world); + } + + @Override + public boolean hitByEntity(Entity attacker) { + + if(attacker instanceof EntityPlayer && !worldObj.isRemote) { + this.setDead(); + for (ItemStack stack : slots) { + if(stack != null) + this.entityDropItem(stack, 1F); + } + int meta = 0; + + //whether it is an express drone + if(this.dataWatcher.getWatchableObjectByte(11) == 1) + meta = 2; + + if(chunkLoading) + meta += 1; + + this.entityDropItem(new ItemStack(ModItems.drone, 1, meta), 1F); + } + + return false; + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(11, new Byte((byte) 0)); + } + + public EntityDeliveryDrone setChunkLoading() { + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + this.chunkLoading = true; + return this; + } + + @Override + public void onUpdate() { + + if(!worldObj.isRemote) { + loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); + } + + super.onUpdate(); + } + + @Override + public double getSpeed() { + return this.dataWatcher.getWatchableObjectByte(11) == 1 ? 0.375 * 3 : 0.375; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + + NBTTagList nbttaglist = new NBTTagList(); + + for(int i = 0; i < this.slots.length; ++i) { + if(this.slots[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + this.slots[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + nbt.setTag("Items", nbttaglist); + + if(fluid != null) { + nbt.setInteger("fluidType", fluid.type.getID()); + nbt.setInteger("fluidAmount", fluid.fill); + } + + nbt.setByte("load", this.dataWatcher.getWatchableObjectByte(11)); + nbt.setBoolean("chunkLoading", chunkLoading); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + + NBTTagList nbttaglist = nbt.getTagList("Items", 10); + this.slots = new ItemStack[this.getSizeInventory()]; + + for(int i = 0; i < nbttaglist.tagCount(); ++i) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if(j >= 0 && j < this.slots.length) { + this.slots[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + + if(nbt.hasKey("fluidType")) { + FluidType type = Fluids.fromNameCompat(nbt.getString("fluidType")); + if(type != Fluids.NONE) { + nbt.removeTag(nbt.getString("fluidType")); + } else + type = Fluids.fromID(nbt.getInteger("fluidType")); + + this.fluid = new FluidStack(type, nbt.getInteger("fluidAmount")); + } + + this.dataWatcher.updateObject(11, nbt.getByte("load")); + if(nbt.getBoolean("chunkLoading")) this.setChunkLoading(); + } + + @Override + public ItemStack getStackInSlot(int slot) { + return slots[slot]; + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + if(this.slots[slot] != null) { + ItemStack itemstack; + + if(this.slots[slot].stackSize <= amount) { + itemstack = this.slots[slot]; + this.slots[slot] = null; + return itemstack; + } else { + itemstack = this.slots[slot].splitStack(amount); + + if(this.slots[slot].stackSize == 0) { + this.slots[slot] = null; + } + + return itemstack; + } + } else { + return null; + } + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + if(this.slots[slot] != null) { + ItemStack itemstack = this.slots[slot]; + this.slots[slot] = null; + return itemstack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + this.slots[slot] = stack; + + if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { + stack.stackSize = this.getInventoryStackLimit(); + } + } + + @Override public int getSizeInventory() { return 18; } + @Override public String getInventoryName() { return "container.drone"; } + @Override public int getInventoryStackLimit() { return 64; } + @Override public boolean hasCustomInventoryName() { return false; } + @Override public boolean isUseableByPlayer(EntityPlayer player) { return false; } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return false; } + + @Override public void markDirty() { } + @Override public void openInventory() { } + @Override public void closeInventory() { } + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + clearChunkLoader(); + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(newChunkX, newChunkZ)); + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); + } + } + + @Override + public void setDead() { + super.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loaderTicket.getChunkList()) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityDroneBase.java b/src/main/java/com/hbm/entity/item/EntityDroneBase.java new file mode 100644 index 000000000..b6e269869 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityDroneBase.java @@ -0,0 +1,163 @@ +package com.hbm.entity.item; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public abstract class EntityDroneBase extends Entity { + + protected int turnProgress; + protected double syncPosX; + protected double syncPosY; + protected double syncPosZ; + @SideOnly(Side.CLIENT) protected double velocityX; + @SideOnly(Side.CLIENT) protected double velocityY; + @SideOnly(Side.CLIENT) protected double velocityZ; + + public double targetX = -1; + public double targetY = -1; + public double targetZ = -1; + + public EntityDroneBase(World world) { + super(world); + this.setSize(1.5F, 2.0F); + } + + public void setTarget(double x, double y, double z) { + this.targetX = x; + this.targetY = y; + this.targetZ = z; + } + + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + public boolean canAttackWithItem() { + return true; + } + + @Override + public boolean hitByEntity(Entity attacker) { + + if(attacker instanceof EntityPlayer) { + this.setDead(); + } + + return false; + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, new Byte((byte) 0)); + } + + /** + * 0: Empty
+ * 1: Crate
+ * 2: Barrel
+ */ + public void setAppearance(int style) { + this.dataWatcher.updateObject(10, (byte) style); + } + + public int getAppearance() { + return this.dataWatcher.getWatchableObjectByte(10); + } + + @Override + public void onUpdate() { + + if(worldObj.isRemote) { + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + + worldObj.spawnParticle("smoke", posX + 1.125, posY + 0.75, posZ, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX - 1.125, posY + 0.75, posZ, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ + 1.125, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ - 1.125, 0, -0.2, 0); + } else { + + this.motionX = 0; + this.motionY = 0; + this.motionZ = 0; + + if(this.targetY != -1) { + + Vec3 dist = Vec3.createVectorHelper(targetX - posX, targetY - posY, targetZ - posZ); + double speed = Math.min(getSpeed(), dist.lengthVector()); + + dist = dist.normalize(); + this.motionX = dist.xCoord * speed; + this.motionY = dist.yCoord * speed; + this.motionZ = dist.zCoord * speed; + } + if(isCollidedHorizontally){ + motionY += 1; + } + this.moveEntity(motionX, motionY, motionZ); + } + } + + public double getSpeed() { + return 0.125D; + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double motionX, double motionY, double motionZ) { + this.velocityX = this.motionX = motionX; + this.velocityY = this.motionY = motionY; + this.velocityZ = this.motionZ = motionZ; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.turnProgress = theNumberThree; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + + nbt.setDouble("tX", targetX); + nbt.setDouble("tY", targetY); + nbt.setDouble("tZ", targetZ); + + nbt.setByte("app", this.dataWatcher.getWatchableObjectByte(10)); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + + if(nbt.hasKey("tY")) { + this.targetX = nbt.getDouble("tX"); + this.targetY = nbt.getDouble("tY"); + this.targetZ = nbt.getDouble("tZ"); + } + + this.dataWatcher.updateObject(10, nbt.getByte("app")); + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java new file mode 100644 index 000000000..6e1375bbc --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java @@ -0,0 +1,288 @@ +package com.hbm.entity.item; + +import java.util.ArrayList; +import java.util.Iterator; + +import com.hbm.blocks.BlockFallingNT; +import com.hbm.blocks.ISpotlight; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFalling; +import net.minecraft.block.ITileEntityProvider; +import net.minecraft.block.material.Material; +import net.minecraft.crash.CrashReportCategory; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class EntityFallingBlockNT extends Entity { + + private Block fallingBlock; + private int fallingMeta = -1; + public int fallingTicks; + public boolean canDrop; + private boolean destroyOnLand; + private boolean canHurtEntities; + private int damageCap; + private float damageAmount; + public NBTTagCompound tileNBT; + + public EntityFallingBlockNT(World world) { + super(world); + this.canDrop = true; + this.damageCap = 40; + this.damageAmount = 2.0F; + this.setSize(0.98F, 0.98F); + this.yOffset = this.height / 2.0F; + } + + public EntityFallingBlockNT(World world, double x, double y, double z, Block block) { + this(world, x, y, z, block, 0); + } + + public EntityFallingBlockNT(World world, double x, double y, double z, Block block, int meta) { + super(world); + this.canDrop = true; + this.damageCap = 40; + this.damageAmount = 2.0F; + this.fallingBlock = block; + this.dataWatcher.updateObject(10, Block.getIdFromBlock(fallingBlock)); + this.fallingMeta = meta; + this.dataWatcher.updateObject(11, fallingMeta); + this.preventEntitySpawning = true; + this.setPosition(x, y, z); + this.motionX = 0.0D; + this.motionY = 0.0D; + this.motionZ = 0.0D; + this.prevPosX = x; + this.prevPosY = y; + this.prevPosZ = z; + } + + @Override protected void entityInit() { + this.dataWatcher.addObject(10, new Integer(0)); + this.dataWatcher.addObject(11, new Integer(0)); + } + + public Block getBlock() { + if(this.fallingBlock != null) return this.fallingBlock; + + this.fallingBlock = Block.getBlockById(this.dataWatcher.getWatchableObjectInt(10)); + return this.fallingBlock; + } + + public int getMeta() { + if(this.fallingMeta != -1) return this.fallingMeta; + this.fallingMeta = 0; + + this.fallingMeta = this.dataWatcher.getWatchableObjectInt(11); + return this.fallingMeta; + } + + @Override protected boolean canTriggerWalking() { return false; } + @Override public boolean canBeCollidedWith() { return !this.isDead; } + + public void onUpdate() { + + if(this.getBlock().getMaterial() == Material.air || this.getBlock() instanceof ISpotlight) { + this.setDead(); + } else { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + ++this.fallingTicks; + this.motionY -= 0.04D; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.98D; + this.motionY *= 0.98D; + this.motionZ *= 0.98D; + + if(!this.worldObj.isRemote) { + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.posY); + int z = MathHelper.floor_double(this.posZ); + int meta = this.getMeta(); + + if(this.fallingTicks == 1) { + if(this.worldObj.getBlock(x, y, z) != this.getBlock()) { + this.setDead(); + return; + } + + this.worldObj.setBlockToAir(x, y, z); + } + + if(this.onGround) { + this.motionX *= 0.7D; + this.motionZ *= 0.7D; + this.motionY *= -0.5D; + + if(this.worldObj.getBlock(x, y, z) != Blocks.piston_extension) { + this.setDead(); + + if(!this.destroyOnLand && replacementCheck(x, y, z) && this.worldObj.setBlock(x, y, z, this.getBlock(), meta, 3)) { + + if(this.getBlock() instanceof BlockFalling) ((BlockFalling) this.getBlock()).func_149828_a(this.worldObj, x, y, z, meta); + if(this.getBlock() instanceof BlockFallingNT) ((BlockFallingNT) this.getBlock()).onLand(this.worldObj, x, y, z, meta); + + if(this.tileNBT != null && this.getBlock() instanceof ITileEntityProvider) { + TileEntity tileentity = this.worldObj.getTileEntity(x, y, z); + + if(tileentity != null) { + NBTTagCompound nbt = new NBTTagCompound(); + tileentity.writeToNBT(nbt); + Iterator it = this.tileNBT.func_150296_c().iterator(); + + while(it.hasNext()) { + String s = (String) it.next(); + NBTBase nbtbase = this.tileNBT.getTag(s); + + if(!s.equals("x") && !s.equals("y") && !s.equals("z")) { + nbt.setTag(s, nbtbase.copy()); + } + } + + tileentity.readFromNBT(nbt); + tileentity.markDirty(); + } + } + } else if(this.canDrop && !this.destroyOnLand && this.getBlock().getItemDropped(meta, rand, 0) != null) { + this.entityDropItem(new ItemStack(this.getBlock().getItemDropped(meta, rand, 0), 1, this.getBlock().damageDropped(meta)), 0.0F); + } + } + } else if(this.fallingTicks > 100 && !this.worldObj.isRemote && (y < 1 || y > 256) || this.fallingTicks > 600) { + if(this.canDrop && this.getBlock().getItemDropped(meta, rand, 0) != null) { + this.entityDropItem(new ItemStack(this.getBlock().getItemDropped(meta, rand, 0), 1, this.getBlock().damageDropped(meta)), 0.0F); + } + + this.setDead(); + } + } + } + } + + public boolean replacementCheck(int x, int y, int z) { + return worldObj.getBlock(x, y, z).isReplaceable(worldObj, x, y, z) && this.getBlock().canBlockStay(worldObj, x, y, z); + } + + @Override + protected void fall(float fallDistance) { + + if(this.canHurtEntities) { + int fall = MathHelper.ceiling_float_int(fallDistance - 1.0F); + + if(fall > 0) { + ArrayList arraylist = new ArrayList(this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox)); + boolean isAnvil = this.getBlock() == Blocks.anvil; + DamageSource damagesource = isAnvil ? DamageSource.anvil : DamageSource.fallingBlock; + Iterator iterator = arraylist.iterator(); + + while(iterator.hasNext()) { + Entity entity = (Entity) iterator.next(); + entity.attackEntityFrom(damagesource, (float) Math.min(MathHelper.floor_float((float) fall * this.damageAmount), this.damageCap)); + } + + if(isAnvil && (double) this.rand.nextFloat() < 0.05D + (double) fall * 0.05D) { + int j = this.getMeta() >> 2; + int k = this.getMeta() & 3; + ++j; + + if(j > 2) { + this.destroyOnLand = true; + } else { + this.fallingMeta = k | j << 2; + } + } + } + } + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setByte("Tile", (byte) Block.getIdFromBlock(this.fallingBlock)); + nbt.setInteger("TileID", Block.getIdFromBlock(this.fallingBlock)); + nbt.setByte("Data", (byte) this.fallingMeta); + nbt.setByte("Time", (byte) this.fallingTicks); + nbt.setBoolean("DropItem", this.canDrop); + nbt.setBoolean("HurtEntities", this.canHurtEntities); + nbt.setFloat("FallHurtAmount", this.damageAmount); + nbt.setInteger("FallHurtMax", this.damageCap); + + if(this.tileNBT != null) { + nbt.setTag("TileEntityData", this.tileNBT); + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + + if(nbt.hasKey("TileID", 99)) { + this.fallingBlock = Block.getBlockById(nbt.getInteger("TileID")); + } else { + this.fallingBlock = Block.getBlockById(nbt.getByte("Tile") & 255); + } + + this.fallingMeta = nbt.getByte("Data") & 255; + this.fallingTicks = nbt.getByte("Time") & 255; + + if(nbt.hasKey("HurtEntities", 99)) { + this.canHurtEntities = nbt.getBoolean("HurtEntities"); + this.damageAmount = nbt.getFloat("FallHurtAmount"); + this.damageCap = nbt.getInteger("FallHurtMax"); + } else if(this.fallingBlock == Blocks.anvil) { + this.canHurtEntities = true; + } + + if(nbt.hasKey("DropItem", 99)) { + this.canDrop = nbt.getBoolean("DropItem"); + } + + if(nbt.hasKey("TileEntityData", 10)) { + this.tileNBT = nbt.getCompoundTag("TileEntityData"); + } + + if(this.fallingBlock.getMaterial() == Material.air) { + this.fallingBlock = Blocks.sand; + } + } + + public void func_145806_a(boolean p_145806_1_) { + this.canHurtEntities = p_145806_1_; + } + + @Override + public void addEntityCrashInfo(CrashReportCategory report) { + super.addEntityCrashInfo(report); + report.addCrashSection("Immitating block ID", Integer.valueOf(Block.getIdFromBlock(this.fallingBlock))); + report.addCrashSection("Immitating block data", Integer.valueOf(this.fallingMeta)); + } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + @SideOnly(Side.CLIENT) + public World getWorldForRender() { + return this.worldObj; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean canRenderOnFire() { + return false; + } + + public Block getBlockForRender() { + return this.getBlock(); + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityFireworks.java b/src/main/java/com/hbm/entity/item/EntityFireworks.java index 64227e4aa..6602c2ef4 100644 --- a/src/main/java/com/hbm/entity/item/EntityFireworks.java +++ b/src/main/java/com/hbm/entity/item/EntityFireworks.java @@ -1,7 +1,7 @@ package com.hbm.entity.item; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java b/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java index 9a19b7490..ff54547e3 100644 --- a/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java +++ b/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java @@ -17,8 +17,12 @@ public class EntityItemBuoyant extends EntityItem { @Override public void onUpdate() { - - if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 0.0625), (int) Math.floor(posZ)).getMaterial() == Material.water) { + + int x = (int) Math.floor(posX); + int y = (int) Math.floor(posY - 0.0625); + int z = (int) Math.floor(posZ); + + if(worldObj.getBlock(x, y, z).getMaterial() == Material.water && worldObj.getBlockMetadata(x, y, z) < 8) { this.motionY += 0.045D; } diff --git a/src/main/java/com/hbm/entity/item/EntityMagnusCartus.java b/src/main/java/com/hbm/entity/item/EntityMagnusCartus.java index 478363a7d..53f379cae 100644 --- a/src/main/java/com/hbm/entity/item/EntityMagnusCartus.java +++ b/src/main/java/com/hbm/entity/item/EntityMagnusCartus.java @@ -1,8 +1,8 @@ package com.hbm.entity.item; import com.hbm.entity.cart.EntityMinecartBogie; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index 50d39e160..56c291373 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -35,6 +35,7 @@ public class EntityMovingItem extends EntityMovingConveyorObject implements ICon public boolean interactFirst(EntityPlayer player) { if(!worldObj.isRemote && player.inventory.addItemStackToInventory(this.getItemStack().copy())) { + player.inventoryContainer.detectAndSendChanges(); this.setDead(); } diff --git a/src/main/java/com/hbm/entity/item/EntityParachuteCrate.java b/src/main/java/com/hbm/entity/item/EntityParachuteCrate.java new file mode 100644 index 000000000..b18195288 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityParachuteCrate.java @@ -0,0 +1,75 @@ +package com.hbm.entity.item; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockSupplyCrate.TileEntitySupplyCrate; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.World; + +public class EntityParachuteCrate extends Entity { + + public List items = new ArrayList(); + + public EntityParachuteCrate(World world) { + super(world); + this.ignoreFrustumCheck = true; + this.isImmuneToFire = true; + } + + @Override + public void onUpdate() { + + this.lastTickPosX = this.prevPosX = posX; + this.lastTickPosY = this.prevPosY = posY; + this.lastTickPosZ = this.prevPosZ = posZ; + this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); + + if(this.motionY > -0.2) this.motionY -= 0.02; + if(posY > 600) posY = 600; + + if(this.worldObj.getBlock((int) Math.floor(this.posX), (int) Math.floor(this.posY), (int) Math.floor(this.posZ)) != Blocks.air) { + + this.setDead(); + + if(!worldObj.isRemote) { + + worldObj.setBlock((int) Math.floor(this.posX), (int) Math.floor(this.posY + 1), (int) Math.floor(this.posZ), ModBlocks.crate_supply); + TileEntitySupplyCrate crate = (TileEntitySupplyCrate) worldObj.getTileEntity((int) Math.floor(this.posX), (int) Math.floor(this.posY + 1), (int) Math.floor(this.posZ)); + if(crate != null) crate.items.addAll(this.items); + } + } + } + + @Override protected void entityInit() { } + @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { return true; } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + items.clear(); + NBTTagList list = nbt.getTagList("items", 10); + for(int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + items.add(ItemStack.loadItemStackFromNBT(nbt1)); + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + NBTTagList list = new NBTTagList(); + for(int i = 0; i < items.size(); i++) { + NBTTagCompound nbt1 = new NBTTagCompound(); + items.get(i).writeToNBT(nbt1); + list.appendTag(nbt1); + } + nbt.setTag("items", list); + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java new file mode 100644 index 000000000..6e8a742a1 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java @@ -0,0 +1,290 @@ +package com.hbm.entity.item; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemDrone.EnumDroneType; +import com.hbm.tileentity.network.TileEntityDroneDock; +import com.hbm.tileentity.network.TileEntityDroneProvider; +import com.hbm.tileentity.network.TileEntityDroneRequester; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityRequestDrone extends EntityDroneBase { + + public ItemStack heldItem; + public List program = new ArrayList(); + int nextActionTimer = 0; + + public static enum DroneProgram { + UNLOAD, DOCK + } + + @Override + public void setTarget(double x, double y, double z) { + this.targetX = x; + this.targetY = y + 1; + this.targetZ = z; + } + + @Override + public boolean hitByEntity(Entity attacker) { + + if(attacker instanceof EntityPlayer && !worldObj.isRemote) { + this.setDead(); + if(heldItem != null) + this.entityDropItem(heldItem, 1F); + this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); + } + + return false; + } + public EntityRequestDrone(World world) { + super(world); + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + + if(Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() < 0.01) { + + if(nextActionTimer > 0) { + nextActionTimer--; + } else { + + if(program.isEmpty()) { + this.setDead(); //self-destruct if no further operations are pending + this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); + return; + } + + Object next = program.get(0); + program.remove(0); + + if(next instanceof BlockPos) { + BlockPos pos = (BlockPos) next; + this.setTarget(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); + } else if(next instanceof AStack && heldItem == null) { + + AStack aStack = (AStack) next; + //to make DAMN sure this fuckin idiot doesnt miss the dock + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX, this.posY - 4, this.posZ); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + + TileEntity tile = worldObj.getTileEntity(mop.blockX, mop.blockY, mop.blockZ); + if (tile instanceof TileEntityDroneProvider) { + TileEntityDroneProvider provider = (TileEntityDroneProvider) tile; + + for (int i = 0; i < provider.slots.length; i++) { + ItemStack stack = provider.slots[i]; + + if (stack != null && aStack.matchesRecipe(stack, true)) { + this.heldItem = stack.copy(); + this.setAppearance(1); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:item.unpack", 0.5F, 0.75F); + provider.slots[i] = null; + provider.markDirty(); + break; + } + } + } + } + nextActionTimer = 5; + } else if(next == DroneProgram.UNLOAD && this.heldItem != null) { + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX, this.posY - 4, this.posZ); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + + TileEntity tile = worldObj.getTileEntity(mop.blockX, mop.blockY, mop.blockZ); + if (tile instanceof TileEntityDroneRequester) { + TileEntityDroneRequester requester = (TileEntityDroneRequester) tile; + + for (int i = 9; i < 18; i++) { + ItemStack stack = requester.slots[i]; + if (stack != null && stack.getItem() == heldItem.getItem() && stack.getItemDamage() == heldItem.getItemDamage()) { + int toTransfer = Math.min(stack.getMaxStackSize() - stack.stackSize, heldItem.stackSize); + requester.slots[i].stackSize += toTransfer; + this.heldItem.stackSize -= toTransfer; + } + } + + if (this.heldItem.stackSize <= 0) this.heldItem = null; + + if (this.heldItem != null) for (int i = 9; i < 18; i++) { + if (requester.slots[i] == null) { + requester.slots[i] = this.heldItem.copy(); + this.heldItem = null; + break; + } + } + + if (this.heldItem == null) { + this.setAppearance(0); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:item.unpack", 0.5F, 0.75F); + } + + requester.markDirty(); + } + } + nextActionTimer = 5; + } else if(next == DroneProgram.DOCK) { + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX, this.posY - 4, this.posZ); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + + TileEntity tile = worldObj.getTileEntity(mop.blockX, mop.blockY, mop.blockZ); + if (tile instanceof TileEntityDroneDock) { + TileEntityDroneDock dock = (TileEntityDroneDock) tile; + ItemStack drone = new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()); + for (int i = 0; i < dock.slots.length; i++) { + if (dock.slots[i] == null) { + this.setDead(); + if(heldItem != null){ + if(i != 9 && dock.slots[i + 1] == null){ + dock.slots[i + 1] = heldItem.copy(); + } + } + dock.slots[i] = drone.copy(); + this.worldObj.playSoundEffect(dock.xCoord + 0.5, dock.yCoord + 0.5, dock.zCoord + 0.5, "hbm:block.storageClose", 2.0F, 1.0F); + break; + } else if (dock.slots[i].isItemEqual(drone) && dock.slots[i].stackSize < 64){ + this.setDead(); + if(heldItem != null){ + if(i != 9 && dock.slots[i + 1] == null){ + dock.slots[i + 1] = heldItem.copy(); + } + } + dock.slots[i].stackSize++; + this.worldObj.playSoundEffect(dock.xCoord + 0.5, dock.yCoord + 0.5, dock.zCoord + 0.5, "hbm:block.storageClose", 2.0F, 1.0F); + break; + } + } + } + } + if (!this.isDead) { + this.setDead(); + if(heldItem != null) + this.entityDropItem(heldItem, 1F); + this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); + } + + } + } + } + } + } + + @Override + public double getSpeed() { + return 0.625D; + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + + if(nbt.hasKey("held")) { + NBTTagCompound stack = nbt.getCompoundTag("held"); + this.heldItem = ItemStack.loadItemStackFromNBT(stack); + } + + nextActionTimer = 5; + + this.dataWatcher.updateObject(10, nbt.getByte("app")); + + int size = nbt.getInteger("programSize"); + + for(int i = 0; i < size; i++) { + NBTTagCompound data = nbt.getCompoundTag("program" + i); + String pType = data.getString("type"); + + if("pos".equals(pType)) { + int[] pos = data.getIntArray("pos"); + this.program.add(new BlockPos(pos[0], pos[1], pos[2])); + } else if("unload".equals(pType)) { + this.program.add(DroneProgram.UNLOAD); + } else if("dock".equals(pType)) { + this.program.add(DroneProgram.DOCK); + } else if("comp".equals(pType)) { + ComparableStack comp = new ComparableStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getInteger("meta")); + this.program.add(comp); + } else if("dict".equals(pType)) { + OreDictStack dict = new OreDictStack(nbt.getString("dict")); + this.program.add(dict); + } + } + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + + if(heldItem != null) { + NBTTagCompound stack = new NBTTagCompound(); + this.heldItem.writeToNBT(stack); + nbt.setTag("held", stack); + } + + nbt.setByte("app", this.dataWatcher.getWatchableObjectByte(10)); + + int size = this.program.size(); + nbt.setInteger("programSize", size); + + for(int i = 0; i < size; i++) { + NBTTagCompound data = new NBTTagCompound(); + Object p = this.program.get(i); + + if(p instanceof BlockPos) { + BlockPos pos = (BlockPos) p; + data.setString("type", "pos"); + data.setIntArray("pos", new int[] {pos.getX(), pos.getY(), pos.getZ()}); + } else if(p instanceof AStack) { + + // neither of these wretched fungii works correctly, but so long as the pathing works (which it does), it means that the drone will + // eventually return to the dock and not got lost, and simply retry the task + if(p instanceof ComparableStack) { + ComparableStack comp = (ComparableStack) p; + data.setString("type", "comp"); + data.setInteger("id", Item.getIdFromItem(comp.item)); + data.setInteger("meta", comp.meta); + } else { + OreDictStack dict = (OreDictStack) p; + data.setString("type", "dict"); + data.setString("dict", dict.name); + } + + } else if(p == DroneProgram.UNLOAD) { + data.setString("type", "unload"); + + } else if(p == DroneProgram.DOCK) { + data.setString("type", "dock"); + + } + + nbt.setTag("program" + i, data); + } + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java b/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java index ec93278b9..ee75627f8 100644 --- a/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java +++ b/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java @@ -1,7 +1,6 @@ package com.hbm.entity.item; -import com.hbm.blocks.bomb.BlockTNTBase; - +import api.hbm.block.IFuckingExplode; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -12,6 +11,7 @@ import net.minecraft.world.World; public class EntityTNTPrimedBase extends Entity { + public boolean detonateOnCollision; public int fuse; private EntityLivingBase tntPlacedBy; @@ -21,9 +21,10 @@ public class EntityTNTPrimedBase extends Entity { this.setSize(0.98F, 0.98F); this.yOffset = this.height / 2.0F; this.fuse = 80; + this.detonateOnCollision = false; } - public EntityTNTPrimedBase(World world, double x, double y, double z, EntityLivingBase entity, BlockTNTBase bomb) { + public EntityTNTPrimedBase(World world, double x, double y, double z, EntityLivingBase entity, Block bomb) { this(world); this.setPosition(x, y, z); float f = (float) (Math.random() * Math.PI * 2.0D); @@ -69,8 +70,8 @@ public class EntityTNTPrimedBase extends Entity { this.motionZ *= 0.7D; this.motionY *= -0.5D; } - - if(this.fuse-- <= 0) { + + if(this.fuse-- <= 0 || (this.detonateOnCollision && this.isCollided)) { this.setDead(); if(!this.worldObj.isRemote) { @@ -85,8 +86,12 @@ public class EntityTNTPrimedBase extends Entity { this.getBomb().explodeEntity(worldObj, posX, posY, posZ, this); } - public BlockTNTBase getBomb() { - return (BlockTNTBase) Block.getBlockById(this.dataWatcher.getWatchableObjectInt(12)); + public IFuckingExplode getBomb() { + return (IFuckingExplode) getBlock(); + } + + public Block getBlock() { + return Block.getBlockById(this.dataWatcher.getWatchableObjectInt(12)); } @Override diff --git a/src/main/java/com/hbm/entity/logic/EntityBalefire.java b/src/main/java/com/hbm/entity/logic/EntityBalefire.java index 73c8e51b2..b368e171d 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBalefire.java +++ b/src/main/java/com/hbm/entity/logic/EntityBalefire.java @@ -17,7 +17,6 @@ public class EntityBalefire extends EntityExplosionChunkloading { public ExplosionBalefire exp; public int speed = 1; public boolean did = false; - public boolean mute = false; @Override protected void readEntityFromNBT(NBTTagCompound nbt) { @@ -25,7 +24,6 @@ public class EntityBalefire extends EntityExplosionChunkloading { destructionRange = nbt.getInteger("destructionRange"); speed = nbt.getInteger("speed"); did = nbt.getBoolean("did"); - mute = nbt.getBoolean("mute"); exp = new ExplosionBalefire((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange); @@ -41,7 +39,6 @@ public class EntityBalefire extends EntityExplosionChunkloading { nbt.setInteger("destructionRange", destructionRange); nbt.setInteger("speed", speed); nbt.setBoolean("did", did); - nbt.setBoolean("mute", mute); if(exp != null) exp.saveToNbt(nbt, "exp_"); @@ -79,22 +76,10 @@ public class EntityBalefire extends EntityExplosionChunkloading { } } - if(!mute && rand.nextInt(5) == 0) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - if(!flag) { - - if(!mute) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.destructionRange * 2); } age++; } - - public EntityBalefire mute() { - this.mute = true; - return this; - } } diff --git a/src/main/java/com/hbm/entity/logic/EntityBomber.java b/src/main/java/com/hbm/entity/logic/EntityBomber.java index 820bdfc3b..911a09e28 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBomber.java +++ b/src/main/java/com/hbm/entity/logic/EntityBomber.java @@ -1,516 +1,263 @@ package com.hbm.entity.logic; -import java.util.ArrayList; -import java.util.List; - import com.hbm.config.GeneralConfig; import com.hbm.entity.projectile.EntityBombletZeta; import com.hbm.entity.projectile.EntityBoxcar; -import com.hbm.entity.projectile.EntityRocketHoming; import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.lib.ModDamageSource; +import com.hbm.interfaces.NotableComments; import com.hbm.main.MainRegistry; -import com.hbm.packet.LoopedEntitySoundPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.util.ParticleUtil; +import com.hbm.sound.AudioWrapper; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; -public class EntityBomber extends Entity implements IChunkLoader { +@NotableComments +public class EntityBomber extends EntityPlaneBase { - int timer = 200; + /* This was probably the dumbest fucking way that I could have handled this. Not gonna change it now, be glad I made a superclass at all. */ int bombStart = 75; int bombStop = 125; int bombRate = 3; int type = 0; - - public int health = 50; - public EntityBomber(World p_i1582_1_) { - super(p_i1582_1_); + protected AudioWrapper audio; + + public EntityBomber(World world) { + super(world); this.ignoreFrustumCheck = true; - this.setSize(8.0F, 4.0F); + this.setSize(8.0F, 4.0F); + } + + @Override + public void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); } - public boolean canBeCollidedWith() - { - return this.health > 0; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) - { - if(p_70097_1_ == ModDamageSource.nuclearBlast) - return false; - - if (this.isEntityInvulnerable()) - { - return false; - } - else - { - if (!this.isDead && !this.worldObj.isRemote && this.health > 0) - { - health -= p_70097_2_; - - if (this.health <= 0) - { - this.killBomber(); - } - } - - return true; - } - } - - private void killBomber() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.planeShotDown", 25.0F, 1.0F); - } - + /** This sucks balls. Too bad! */ @Override public void onUpdate() { + super.onUpdate(); - //super.onUpdate(); - - this.lastTickPosX = this.prevPosX = posX; - this.lastTickPosY = this.prevPosY = posY; - this.lastTickPosZ = this.prevPosZ = posZ; - - this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); - - if(!worldObj.isRemote) { - - this.dataWatcher.updateObject(17, health); - - if(health > 0) - PacketDispatcher.wrapper.sendToAllAround(new LoopedEntitySoundPacket(this.getEntityId()), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 250)); - } else { - health = this.dataWatcher.getWatchableObjectInt(17); - } - - this.rotation(); - - if(this.health <= 0) { - motionY -= 0.025; - - for(int i = 0; i < 10; i++) - ParticleUtil.spawnGasFlame(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0); - - if(worldObj.getBlock((int)posX, (int)posY, (int)posZ).isNormalCube() && !worldObj.isRemote) { - this.setDead(); - - /*worldObj.setBlock((int)posX, (int)posY, (int)posZ, ModBlocks.bomber); - TileEntityBomber te = (TileEntityBomber)worldObj.getTileEntity((int)posX, (int)posY, (int)posZ); - - if(te != null) { - te.yaw = (int)(this.rotationYaw); - te.pitch = (int)(this.rotationPitch); - - te.type = this.getDataWatcher().getWatchableObjectByte(16); - }*/ - - ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, 25, true, false, true); - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.planeCrash", 10.0F, 1.0F); - - return; + if(worldObj.isRemote) { + if(this.getDataWatcher().getWatchableObjectFloat(17) > 0) { + if(audio == null || !audio.isPlaying()) { + int bomberType = this.dataWatcher.getWatchableObjectByte(16); + audio = MainRegistry.proxy.getLoopedSound(bomberType <= 4 ? "hbm:entity.bomberSmallLoop" : "hbm:entity.bomberLoop", (float) posX, (float) posY, (float) posZ, 2F, 250F, 1F, 20); + audio.startSound(); + } + audio.keepAlive(); + audio.updatePosition((float) posX, (float) posY, (float) posZ); + } else { + if(audio != null && audio.isPlaying()) { + audio.stopSound(); + audio = null; + } } } - if(this.ticksExisted > timer) - this.setDead(); - if(!worldObj.isRemote && this.health > 0 && this.ticksExisted > bombStart && this.ticksExisted < bombStop && this.ticksExisted % bombRate == 0) { if(type == 3) { - - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); + worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); ExplosionChaos.spawnChlorine(worldObj, this.posX, this.posY - 1F, this.posZ, 10, 0.5, 3); - - } else if(type == 5) { - - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); - EntityRocketHoming rocket = new EntityRocketHoming(worldObj); - rocket.setIsCritical(true); - //rocket.motionX = motionX; - //rocket.motionZ = motionZ; - rocket.motionY = -1; - rocket.shootingEntity = this; - rocket.homingRadius = 50; - rocket.homingMod = 5; - - rocket.posX = posX + rand.nextDouble() - 0.5; - rocket.posY = posY - rand.nextDouble(); - rocket.posZ = posZ + rand.nextDouble() - 0.5; - - worldObj.spawnEntityInWorld(rocket); - - } else if(type == 6) { - - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); - EntityBoxcar rocket = new EntityBoxcar(worldObj); - - rocket.posX = posX + rand.nextDouble() - 0.5; - rocket.posY = posY - rand.nextDouble(); - rocket.posZ = posZ + rand.nextDouble() - 0.5; - - worldObj.spawnEntityInWorld(rocket); - - } else if(type == 7) { - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); - ExplosionChaos.spawnChlorine(worldObj, this.posX, worldObj.getHeightValue((int)this.posX, (int)this.posZ) + 2, this.posZ, 10, 1, 2); - + } else if(type == 5) { + + } else if(type == 6) { + worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); + EntityBoxcar rocket = new EntityBoxcar(worldObj); + rocket.posX = posX + rand.nextDouble() - 0.5; + rocket.posY = posY - rand.nextDouble(); + rocket.posZ = posZ + rand.nextDouble() - 0.5; + worldObj.spawnEntityInWorld(rocket); + + } else if(type == 7) { + worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); + ExplosionChaos.spawnChlorine(worldObj, this.posX, worldObj.getHeightValue((int) this.posX, (int) this.posZ) + 2, this.posZ, 10, 1, 2); + } else { - - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.bombWhistle", 10.0F, 0.9F + rand.nextFloat() * 0.2F); - + worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "hbm:entity.bombWhistle", 10.0F, 0.9F + rand.nextFloat() * 0.2F); EntityBombletZeta zeta = new EntityBombletZeta(worldObj); - /*zeta.prevRotationYaw = zeta.rotationYaw = this.rotationYaw; - zeta.prevRotationPitch = zeta.rotationPitch = this.rotationPitch;*/ - zeta.rotation(); - zeta.type = type; - zeta.posX = posX + rand.nextDouble() - 0.5; zeta.posY = posY - rand.nextDouble(); zeta.posZ = posZ + rand.nextDouble() - 0.5; - if(type == 0) { - zeta.motionX = motionX + rand.nextGaussian() * 0.15; - zeta.motionZ = motionZ + rand.nextGaussian() * 0.15; + zeta.motionX = motionX + rand.nextGaussian() * 0.15; zeta.motionZ = motionZ + rand.nextGaussian() * 0.15; } else { - zeta.motionX = motionX; - zeta.motionZ = motionZ; + zeta.motionX = motionX; zeta.motionZ = motionZ; } - worldObj.spawnEntityInWorld(zeta); } } - - if(!worldObj.isRemote) - loadNeighboringChunks((int)(posX / 16), (int)(posZ / 16)); - } - - public void fac(World world, double x, double y, double z) { - - Vec3 vector = Vec3.createVectorHelper(world.rand.nextDouble() - 0.5, 0, world.rand.nextDouble() - 0.5); - vector = vector.normalize(); - vector.xCoord *= GeneralConfig.enableBomberShortMode ? 1 : 2; - vector.zCoord *= GeneralConfig.enableBomberShortMode ? 1 : 2; - - this.setLocationAndAngles(x - vector.xCoord * 100, y + 50, z - vector.zCoord * 100, 0.0F, 0.0F); - this.loadNeighboringChunks((int)(x / 16), (int)(z / 16)); - - this.motionX = vector.xCoord; - this.motionZ = vector.zCoord; - this.motionY = 0.0D; - - this.rotation(); - - int i = 1; - - int rand = world.rand.nextInt(7); - - switch(rand) { - case 0: - case 1: i = 1; break; - case 2: - case 3: i = 2; break; - case 4: i = 5; break; - case 5: i = 6; break; - case 6: i = 7; break; - } - - if(world.rand.nextInt(100) == 0) { - rand = world.rand.nextInt(4); - switch(rand) { - case 0: i = 0; break; - case 1: i = 3; break; - case 2: i = 4; break; - case 3: i = 8; break; - } - } - - this.getDataWatcher().updateObject(16, (byte)i); - this.setSize(8.0F, 4.0F); - } - - public static EntityBomber statFacCarpet(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 100; - bomber.bombRate = 2; + public void fac(World world, double x, double y, double z) { - bomber.fac(world, x, y, z); - - bomber.type = 0; - - return bomber; - } - - public static EntityBomber statFacNapalm(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 100; - bomber.bombRate = 5; + Vec3 vector = Vec3.createVectorHelper(world.rand.nextDouble() - 0.5, 0, world.rand.nextDouble() - 0.5); + vector = vector.normalize(); + vector.xCoord *= GeneralConfig.enableBomberShortMode ? 1 : 2; + vector.zCoord *= GeneralConfig.enableBomberShortMode ? 1 : 2; - bomber.fac(world, x, y, z); - - bomber.type = 1; - - return bomber; - } - - public static EntityBomber statFacChlorine(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 100; - bomber.bombRate = 4; + this.setLocationAndAngles(x - vector.xCoord * 100, y + 50, z - vector.zCoord * 100, 0.0F, 0.0F); + this.loadNeighboringChunks((int) (x / 16), (int) (z / 16)); - bomber.fac(world, x, y, z); - - bomber.type = 2; - - return bomber; - } - - public static EntityBomber statFacOrange(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 75; - bomber.bombStop = 125; - bomber.bombRate = 1; + this.motionX = vector.xCoord; + this.motionZ = vector.zCoord; + this.motionY = 0.0D; - bomber.fac(world, x, y, z); - - bomber.type = 3; - - return bomber; - } - - public static EntityBomber statFacABomb(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 60; - bomber.bombStop = 70; - bomber.bombRate = 65; + this.rotation(); - bomber.fac(world, x, y, z); - - int i = 1; - - int rand = world.rand.nextInt(3); - - switch(rand) { - case 0: i = 5; break; - case 1: i = 6; break; - case 2: i = 7; break; - } - - if(world.rand.nextInt(100) == 0) { - i = 8; - } - - bomber.getDataWatcher().updateObject(16, (byte)i); - - bomber.type = 4; - - return bomber; - } - - public static EntityBomber statFacStinger(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 150; - bomber.bombRate = 10; + int i = 1; - bomber.fac(world, x, y, z); - - bomber.getDataWatcher().updateObject(16, (byte)4); - - bomber.type = 5; - - return bomber; - } - - public static EntityBomber statFacBoxcar(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 150; - bomber.bombRate = 10; + int rand = world.rand.nextInt(7); - bomber.fac(world, x, y, z); - - bomber.getDataWatcher().updateObject(16, (byte)6); - - bomber.type = 6; - - return bomber; - } - - public static EntityBomber statFacPC(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 75; - bomber.bombStop = 125; - bomber.bombRate = 1; + switch(rand) { + case 0: case 1: i = 1; break; + case 2: case 3: i = 2; break; + case 4: i = 5; break; + case 5: i = 6; break; + case 6: i = 7; break; + } - bomber.fac(world, x, y, z); - - bomber.getDataWatcher().updateObject(16, (byte)6); - - bomber.type = 7; - - return bomber; - } + if(world.rand.nextInt(100) == 0) { + rand = world.rand.nextInt(4); + switch(rand) { + case 0: i = 0; break; + case 1: i = 3; break; + case 2: i = 4; break; + case 3: i = 8; break; + } + } - @Override - public void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - this.dataWatcher.addObject(17, Integer.valueOf((int)50)); - } + this.getDataWatcher().updateObject(16, (byte) i); + this.setSize(8.0F, 4.0F); + } + + public static EntityBomber statFacCarpet(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 100; + bomber.bombRate = 2; + bomber.fac(world, x, y, z); + bomber.type = 0; + return bomber; + } + + public static EntityBomber statFacNapalm(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 100; + bomber.bombRate = 5; + bomber.fac(world, x, y, z); + bomber.type = 1; + return bomber; + } + + public static EntityBomber statFacChlorine(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 100; + bomber.bombRate = 4; + bomber.fac(world, x, y, z); + bomber.type = 2; + return bomber; + } + + public static EntityBomber statFacOrange(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 75; + bomber.bombStop = 125; + bomber.bombRate = 1; + bomber.fac(world, x, y, z); + bomber.type = 3; + return bomber; + } + + public static EntityBomber statFacABomb(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 60; + bomber.bombStop = 70; + bomber.bombRate = 65; + bomber.fac(world, x, y, z); + int i = 1; + + int rand = world.rand.nextInt(3); + + switch(rand) { + case 0: i = 5; break; + case 1: i = 6; break; + case 2: i = 7; break; + } + if(world.rand.nextInt(100) == 0) i = 8; + + bomber.getDataWatcher().updateObject(16, (byte) i); + bomber.type = 4; + return bomber; + } + + public static EntityBomber statFacStinger(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 150; + bomber.bombRate = 10; + bomber.fac(world, x, y, z); + bomber.getDataWatcher().updateObject(16, (byte) 4); + bomber.type = 5; + return bomber; + } + + public static EntityBomber statFacBoxcar(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 150; + bomber.bombRate = 10; + bomber.fac(world, x, y, z); + bomber.getDataWatcher().updateObject(16, (byte) 6); + bomber.type = 6; + return bomber; + } + + public static EntityBomber statFacPC(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 75; + bomber.bombStop = 125; + bomber.bombRate = 1; + bomber.fac(world, x, y, z); + bomber.getDataWatcher().updateObject(16, (byte) 6); + bomber.type = 7; + return bomber; + } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { - ticksExisted = nbt.getInteger("ticksExisted"); + super.readEntityFromNBT(nbt); bombStart = nbt.getInteger("bombStart"); bombStop = nbt.getInteger("bombStop"); bombRate = nbt.getInteger("bombRate"); type = nbt.getInteger("type"); - - this.getDataWatcher().updateObject(16, nbt.getByte("style")); - this.getDataWatcher().updateObject(17, nbt.getInteger("health")); - this.setSize(8.0F, 4.0F); + this.getDataWatcher().updateObject(16, nbt.getByte("style")); + this.setSize(8.0F, 4.0F); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setInteger("ticksExisted", ticksExisted); + super.writeEntityToNBT(nbt); nbt.setInteger("bombStart", bombStart); nbt.setInteger("bombStop", bombStop); nbt.setInteger("bombRate", bombRate); nbt.setInteger("type", type); nbt.setByte("style", this.getDataWatcher().getWatchableObjectByte(16)); - nbt.setInteger("health", this.getDataWatcher().getWatchableObjectInt(17)); } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 500000; - } - - private Ticket loaderTicket; - - public void init(Ticket ticket) { - - if(!worldObj.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - - public void loadNeighboringChunks(int newChunkX, int newChunkZ) - { - if(!worldObj.isRemote && loaderTicket != null) - { - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1)); - - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } } diff --git a/src/main/java/com/hbm/entity/logic/EntityC130.java b/src/main/java/com/hbm/entity/logic/EntityC130.java new file mode 100644 index 000000000..0b0927845 --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityC130.java @@ -0,0 +1,98 @@ +package com.hbm.entity.logic; + +import com.hbm.entity.item.EntityParachuteCrate; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsC130; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.util.EnumUtil; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityC130 extends EntityPlaneBase { + + protected AudioWrapper audio; + public C130PayloadType payload = C130PayloadType.SUPPLIES; + + public EntityC130(World world) { + super(world); + this.ignoreFrustumCheck = true; + this.setSize(8.0F, 4.0F); + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(worldObj.isRemote) { + if(this.getDataWatcher().getWatchableObjectFloat(17) > 0) { + if(audio == null || !audio.isPlaying()) { + audio = MainRegistry.proxy.getLoopedSound("hbm:entity.bomberLoop", (float) posX, (float) posY, (float) posZ, 2F, 250F, 1F, 20); + audio.startSound(); + } + audio.keepAlive(); + audio.updatePosition((float) posX, (float) posY, (float) posZ); + } else { + if(audio != null && audio.isPlaying()) { + audio.stopSound(); + audio = null; + } + } + } + + if(!worldObj.isRemote && this.ticksExisted == this.getLifetime() / 2 && this.health > 0) { + EntityParachuteCrate crate = new EntityParachuteCrate(worldObj); + crate.setPosition(posX - motionX * 7, posY - 10, posZ - motionZ * 7); + + if(this.payload == C130PayloadType.SUPPLIES) { + for(int i = 0; i < 5; i++) crate.items.add(ItemPool.getStack(ItemPoolsC130.POOL_SUPPLIES, this.rand)); + } + if(this.payload == C130PayloadType.WEAPONS) { + int amount = 1 + rand.nextInt(2); + for(int i = 0; i < amount; i++) crate.items.add(ItemPool.getStack(ItemPoolsC130.POOL_WEAPONS, this.rand)); + for(int i = 0; i < 6; i++) crate.items.add(ItemPool.getStack(ItemPoolsC130.POOL_AMMO, this.rand)); + } + + worldObj.spawnEntityInWorld(crate); + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.payload = EnumUtil.grabEnumSafely(C130PayloadType.class, nbt.getInteger("payload")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("payload", this.payload.ordinal()); + } + + public void fac(World world, double x, double y, double z, C130PayloadType payload) { + + Vec3 vector = Vec3.createVectorHelper(world.rand.nextDouble() - 0.5, 0, world.rand.nextDouble() - 0.5); + vector = vector.normalize(); + vector.xCoord *= 2; + vector.zCoord *= 2; + + this.payload = payload; + + this.setLocationAndAngles(x - vector.xCoord * 100, y + 100, z - vector.zCoord * 100, 0.0F, 0.0F); + this.loadNeighboringChunks((int) (x / 16), (int) (z / 16)); + + this.motionX = vector.xCoord; + this.motionZ = vector.zCoord; + this.motionY = 0.0D; + + this.rotation(); + } + + public static enum C130PayloadType { + SUPPLIES, + WEAPONS, + A_FUCKING_FUEL_TRUCK + } +} diff --git a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java index 1065b019d..e8da0ab89 100644 --- a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java @@ -1,9 +1,9 @@ package com.hbm.entity.logic; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -37,7 +37,7 @@ public class EntityDeathBlast extends Entity { if(this.ticksExisted >= maxAge && !worldObj.isRemote) { this.setDead(); - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, 40, posX, posY, posZ).mute()); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, 40, posX, posY, posZ)); int count = 100; for(int i = 0; i < count; i++) { @@ -45,7 +45,7 @@ public class EntityDeathBlast extends Entity { Vec3 vec = Vec3.createVectorHelper(0.2, 0, 0); vec.rotateAroundY((float)(2 * Math.PI * i / (float)count)); - EntityBulletBase laser = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.MASKMAN_BOLT); + EntityBulletBaseNT laser = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.MASKMAN_BOLT); laser.setPosition(posX, posY + 2, posZ); laser.motionX = vec.xCoord; laser.motionZ = vec.zCoord; diff --git a/src/main/java/com/hbm/entity/logic/EntityEMP.java b/src/main/java/com/hbm/entity/logic/EntityEMP.java index 94a9b7d07..c322b4fa7 100644 --- a/src/main/java/com/hbm/entity/logic/EntityEMP.java +++ b/src/main/java/com/hbm/entity/logic/EntityEMP.java @@ -4,9 +4,9 @@ import java.util.ArrayList; import java.util.List; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.ParticleBurstPacket; +import com.hbm.packet.toclient.ParticleBurstPacket; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyHandlerMK2; import cofh.api.energy.IEnergyProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; @@ -44,19 +44,15 @@ public class EntityEMP extends Entity { private void allocate() { machines = new ArrayList(); - int radius = 100; for(int x = -radius; x <= radius; x++) { - int x2 = (int) Math.pow(x, 2); for(int y = -radius; y <= radius; y++) { - int y2 = (int) Math.pow(y, 2); for(int z = -radius; z <= radius; z++) { - int z2 = (int) Math.pow(z, 2); if(Math.sqrt(x2 + y2 + z2) <= radius) { @@ -81,7 +77,7 @@ public class EntityEMP extends Entity { private void add(int x, int y, int z) { TileEntity te = worldObj.getTileEntity(x, y, z); - if (te != null && te instanceof IEnergyUser) { + if (te != null && te instanceof IEnergyHandlerMK2) { machines.add(new int[] { x, y, z }); } else if (te != null && te instanceof IEnergyProvider) { machines.add(new int[] { x, y, z }); @@ -94,9 +90,9 @@ public class EntityEMP extends Entity { boolean flag = false; - if (te != null && te instanceof IEnergyUser) { + if (te != null && te instanceof IEnergyHandlerMK2) { - ((IEnergyUser)te).setPower(0); + ((IEnergyHandlerMK2)te).setPower(0); flag = true; } if (te != null && te instanceof IEnergyProvider) { diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java index 665d9550d..c72a26679 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java @@ -16,8 +16,8 @@ import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionSolinium; import com.hbm.interfaces.Spaghetti; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index 15cb2679b..3dc6451a8 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -29,8 +29,6 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { public int speed; public int length; - public boolean mute = false; - public boolean fallout = true; private int falloutAdd = 0; @@ -62,14 +60,8 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { ((EntityPlayer)player).triggerAchievement(MainRegistry.achManhattan); } - if(!worldObj.isRemote && fallout && explosion != null && this.ticksExisted < 10) { - radiate(500_000, this.length * 2); - } - - if(!mute) { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - if(rand.nextInt(5) == 0) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); + if(!worldObj.isRemote && fallout && explosion != null && this.ticksExisted < 10 && strength >= 75) { + radiate(2_500_000F / (this.ticksExisted * 5 + 1), this.length * 2); } ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.length * 2); @@ -131,13 +123,10 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { eRads /= (float)res; eRads /= (float)(len * len); - ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); + ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.RAD_BYPASS, eRads); } } - @Override - protected void entityInit() { } - @Override protected void readEntityFromNBT(NBTTagCompound nbt) { this.ticksExisted = nbt.getInteger("ticksExisted"); @@ -177,9 +166,4 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { falloutAdd = fallout; return this; } - - public EntityNukeExplosionMK5 mute() { - this.mute = true; - return this; - } } diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java deleted file mode 100644 index 014e0e3fc..000000000 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hbm.entity.logic; - -import com.hbm.explosion.nt.IExplosionLogic; -import com.hbm.explosion.nt.Mark5Ausf2; - -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -@Deprecated -public class EntityNukeExplosionNT extends Entity { - - private IExplosionLogic explosion; - - public EntityNukeExplosionNT(World world) { - super(world); - } - - public EntityNukeExplosionNT loadLogic(IExplosionLogic explosion) { - this.explosion = explosion; - return this; - } - - @Override - public void onUpdate() { - - if(!worldObj.isRemote) { - if(this.explosion == null || this.explosion.isDone()) { - this.setDead(); - return; - } - - this.explosion.updateLogic(); - } - } - - public static EntityNukeExplosionNT statFacMKV(World world, double x, double y, double z, float power) { - EntityNukeExplosionNT essploshun = new EntityNukeExplosionNT(world); - essploshun.setPositionAndRotation(x, y, z, 0, 0); - essploshun.loadLogic(new Mark5Ausf2(world, power, (float) x, (float) y, (float) z)); - return essploshun; - } - - @Override - protected void entityInit() { } - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { } -} diff --git a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java new file mode 100644 index 000000000..ebb1accb2 --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java @@ -0,0 +1,204 @@ +package com.hbm.entity.logic; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; +import com.hbm.particle.helper.ExplosionSmallCreator; +import com.hbm.util.ParticleUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public abstract class EntityPlaneBase extends Entity implements IChunkLoader { + + protected int turnProgress; + protected double syncPosX; + protected double syncPosY; + protected double syncPosZ; + protected double syncYaw; + protected double syncPitch; + @SideOnly(Side.CLIENT) + protected double velocityX; + @SideOnly(Side.CLIENT) + protected double velocityY; + @SideOnly(Side.CLIENT) + protected double velocityZ; + + private Ticket loaderTicket; + private List loadedChunks = new ArrayList(); + + public float health = getMaxHealth(); + public int timer = getLifetime(); + + public EntityPlaneBase(World world) { super(world); } + + public float getMaxHealth() { return 50F; } + public int getLifetime() { return 200; } + + @Override public boolean canBeCollidedWith() { return this.health > 0; } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(source == ModDamageSource.nuclearBlast) return false; + if(this.isEntityInvulnerable()) return false; + if(!this.isDead && !this.worldObj.isRemote && this.health > 0) { + health -= amount; + if(this.health <= 0) this.killPlane(); + } + return true; + } + + protected void killPlane() { + ExplosionSmallCreator.composeEffect(worldObj, posX, posY, posZ, 25, 3.5F, 2F); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:entity.planeShotDown", 25.0F, 1.0F); + } + + @Override + protected void entityInit() { + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + this.dataWatcher.addObject(17, new Float(50F)); + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + + @Override + public void onUpdate() { + + if(!worldObj.isRemote) { + this.dataWatcher.updateObject(17, health); + } else { + health = this.dataWatcher.getWatchableObjectFloat(17); + } + + if(worldObj.isRemote) { + + this.lastTickPosX = this.posX; + this.lastTickPosY = this.posY; + this.lastTickPosZ = this.posZ; + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + double d = MathHelper.wrapAngleTo180_double(this.syncYaw - (double) this.rotationYaw); + this.rotationYaw = (float) ((double) this.rotationYaw + d / (double) this.turnProgress); + this.rotationPitch = (float)((double)this.rotationPitch + (this.syncPitch - (double)this.rotationPitch) / (double)this.turnProgress); + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + + } else { + this.lastTickPosX = this.prevPosX = posX; + this.lastTickPosY = this.prevPosY = posY; + this.lastTickPosZ = this.prevPosZ = posZ; + this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); + + this.rotation(); + + if(this.health <= 0) { + motionY -= 0.025; + + for(int i = 0; i < 10; i++) ParticleUtil.spawnGasFlame(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0); + + if((!worldObj.getBlock((int) posX, (int) posY, (int) posZ).isAir(worldObj, (int) posX, (int) posY, (int) posZ) || posY < 0)) { + this.setDead(); + new ExplosionVNT(worldObj, posX, posY, posZ, 15F).makeStandard().explode(); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:entity.planeCrash", 25.0F, 1.0F); + return; + } + } else { + this.motionY = 0F; + } + + if(this.ticksExisted > timer) this.setDead(); + loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); + } + } + + protected void rotation() { + float motionHorizontal = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + for(this.rotationPitch = (float) (Math.atan2(this.motionY, motionHorizontal) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double velX, double velY, double velZ) { + this.velocityX = this.motionX = velX; + this.velocityY = this.motionY = velY; + this.velocityZ = this.motionZ = velZ; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.syncYaw = yaw; + this.syncPitch = pitch; + this.turnProgress = theNumberThree; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + public void setDead() { + super.setDead(); + this.clearChunkLoader(); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + ticksExisted = nbt.getInteger("ticksExisted"); + this.getDataWatcher().updateObject(17, nbt.getFloat("health")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setInteger("ticksExisted", ticksExisted); + nbt.setFloat("health", this.getDataWatcher().getWatchableObjectFloat(17)); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + clearChunkLoader(); + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + for(ChunkCoordIntPair chunk : loadedChunks) ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + + @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { return true; } +} diff --git a/src/main/java/com/hbm/entity/logic/EntityWaypoint.java b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java new file mode 100644 index 000000000..2c9f37780 --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java @@ -0,0 +1,135 @@ +package com.hbm.entity.logic; + +import com.hbm.config.MobConfig; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; +import com.hbm.entity.mob.glyphid.EntityGlyphidScout; +import com.hbm.main.MainRegistry; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +import static com.hbm.entity.mob.glyphid.EntityGlyphid.*; + +import java.util.List; + +public class EntityWaypoint extends Entity { + public EntityWaypoint(World world) { + super(world); + this.isImmuneToFire = true; + this.noClip = true; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, 0); + // this.dataWatcher.addObject(11, 0); + + } + + public int maxAge = 2400; + public int radius = 3; + public boolean highPriority = false; + protected EntityWaypoint additional; + + public void setHighPriority() { + highPriority = true; + } + + public int getWaypointType() { + return this.dataWatcher.getWatchableObjectInt(10); + } + + public void setAdditionalWaypoint(EntityWaypoint waypoint) { + additional = waypoint; + } + + public void setWaypointType(int waypointType) { + this.dataWatcher.updateObject(10, waypointType); + } + + boolean hasSpawned = false; + + public int getColor() { + switch(getWaypointType()) { + + case TASK_RETREAT_FOR_REINFORCEMENTS: return 0x5FA6E8; + case TASK_BUILD_HIVE: + case TASK_INITIATE_RETREAT: return 0x127766; + default: return 0x566573; + } + } + + AxisAlignedBB bb; + + @Override + public void onEntityUpdate() { + if(ticksExisted >= maxAge) { + this.setDead(); + } + + bb = AxisAlignedBB.getBoundingBox(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ).expand(radius, radius, radius); + + if(!worldObj.isRemote) { + + if(ticksExisted % 40 == 0) { + + List targets = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + + for(Entity e : targets) { + if(e instanceof EntityGlyphid) { + + EntityGlyphid bug = ((EntityGlyphid) e); + + if(additional != null && !hasSpawned) { + worldObj.spawnEntityInWorld(additional); + hasSpawned = true; + } + + boolean exceptions = bug.getWaypoint() != this || e instanceof EntityGlyphidScout || e instanceof EntityGlyphidNuclear; + + if(!exceptions) + bug.setCurrentTask(getWaypointType(), additional); + + if(getWaypointType() == TASK_BUILD_HIVE) { + if(e instanceof EntityGlyphidScout) + setDead(); + } else { + setDead(); + } + + } + } + } + } else if(MobConfig.waypointDebug) { + + double x = bb.minX + (rand.nextDouble() - 0.5) * (bb.maxX - bb.minX); + double y = bb.minY + rand.nextDouble() * (bb.maxY - bb.minY); + double z = bb.minZ + (rand.nextDouble() - 0.5) * (bb.maxZ - bb.minZ); + + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 0.5F); + fx.setFloat("base", 0.75F); + fx.setFloat("max", 2F); + fx.setInteger("life", 50 + worldObj.rand.nextInt(10)); + fx.setInteger("color", getColor()); + fx.setDouble("posX", x); + fx.setDouble("posY", y); + fx.setDouble("posZ", z); + MainRegistry.proxy.effectNT(fx); + } + + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + this.setWaypointType(nbt.getInteger("type")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setInteger("type", getWaypointType()); + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityBombletSelena.java b/src/main/java/com/hbm/entity/missile/EntityBombletSelena.java deleted file mode 100644 index bd0d6efc1..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityBombletSelena.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityBombletSelena extends EntityThrowable { - - double decelY = 0.1D; - double accelXZ = 0.1D; - - public EntityBombletSelena(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - Vec3 vector = Vec3.createVectorHelper(motionX, 0, motionZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ; - vector.zCoord *= accelXZ; - this.motionY -= decelY; - this.motionX -= vector.xCoord; - this.motionZ -= vector.zCoord; - - this.rotation(); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - if(!this.worldObj.isRemote) - { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 20.0F, true, true, true); - ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); - } - this.setDead(); - } - - //if(!this.worldObj.isRemote) - // this.worldObj.spawnEntityInWorld(new EntityOilSpillFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 25000; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityBombletTheta.java b/src/main/java/com/hbm/entity/missile/EntityBombletTheta.java deleted file mode 100644 index 603f7d88f..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityBombletTheta.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.explosion.ExplosionLarge; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityBombletTheta extends EntityThrowable { - - double decelY = 0.1D; - double accelXZ = 0.1D; - - public EntityBombletTheta(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - Vec3 vector = Vec3.createVectorHelper(motionX, 0, motionZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ; - vector.zCoord *= accelXZ; - this.motionY -= decelY; - this.motionX -= vector.xCoord; - this.motionZ -= vector.zCoord; - - if(motionY < -0.75D && !worldObj.isRemote && rand.nextInt(10) == 0) { - EntityBombletSelena selena = new EntityBombletSelena(worldObj); - selena.posX = this.posX; - selena.posY = this.posY; - selena.posZ = this.posZ; - selena.motionX = rand.nextGaussian(); - selena.motionY = rand.nextGaussian(); - selena.motionZ = rand.nextGaussian(); - selena.decelY = this.decelY; - selena.accelXZ = this.accelXZ; - worldObj.spawnEntityInWorld(selena); - } - - this.rotation(); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - if(!this.worldObj.isRemote) - { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 50.0F, true, true, true); - } - this.setDead(); - } - - if(!this.worldObj.isRemote) - this.worldObj.spawnEntityInWorld(new EntitySSmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 25000; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityBooster.java b/src/main/java/com/hbm/entity/missile/EntityBooster.java deleted file mode 100644 index 5ddb30ae8..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityBooster.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.entity.particle.EntityTSmokeFX; -import com.hbm.explosion.ExplosionLarge; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityBooster extends EntityThrowable { - - public EntityBooster(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - this.motionY -= 0.015; - - if(motionY < -1.5F) - motionY = -1.5F; - - this.rotation(); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - if(!this.worldObj.isRemote) - { - ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, 10F, true, false, true); - } - this.setDead(); - } - - if(!worldObj.isRemote) { - for(int i = 0; i < 2; i++) { - EntityTSmokeFX fx1 = new EntityTSmokeFX(worldObj); - fx1.posY = posY - 0.25D; - fx1.posX = posX + rand.nextGaussian() * 0.25D; - fx1.posZ = posZ + rand.nextGaussian() * 0.25D; - fx1.motionY = -0.2D; - - worldObj.spawnEntityInWorld(fx1); - } - } - - this.motionX *= 0.995; - this.motionZ *= 0.995; - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 500000; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityCarrier.java b/src/main/java/com/hbm/entity/missile/EntityCarrier.java deleted file mode 100644 index 89ec901d8..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityCarrier.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ISatChip; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.saveddata.satellites.Satellite; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityCarrier extends EntityThrowable { - - double acceleration = 0.00D; - - private ItemStack payload; - - public EntityCarrier(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - this.setSize(3.0F, 26.0F); - } - - @Override - public void onUpdate() { - - //this.setDead(); - - if(motionY < 3.0D) { - acceleration += 0.0005D; - motionY += acceleration; - } - - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - - if(!worldObj.isRemote) { - for(int i = 0; i < 10; i++) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "gasfire"); - data.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - } - - if(this.dataWatcher.getWatchableObjectInt(8) == 1) - for(int i = 0; i < 2; i++) { - NBTTagCompound d1 = new NBTTagCompound(); - d1.setString("type", "gasfire"); - d1.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d1, posX + rand.nextGaussian() * 0.75D + 2.5, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - - NBTTagCompound d2 = new NBTTagCompound(); - d2.setString("type", "gasfire"); - d2.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d2, posX + rand.nextGaussian() * 0.75D - 2.5, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - - NBTTagCompound d3 = new NBTTagCompound(); - d3.setString("type", "gasfire"); - d3.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d3, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D + 2.5), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - - NBTTagCompound d4 = new NBTTagCompound(); - d4.setString("type", "gasfire"); - d4.setDouble("mY", -0.2D); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d4, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D - 2.5), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - } - - - if(this.ticksExisted < 20) { - ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 13 + rand.nextInt(3), 4 + rand.nextGaussian() * 2); - } - } - - if(this.posY > 300 && this.dataWatcher.getWatchableObjectInt(8) == 1) - this.disengageBoosters(); - //this.setDead(); - - if(this.posY > 600) { - deployPayload(); - } - } - - private void deployPayload() { - - if(payload != null) { - - if(payload.getItem() == ModItems.flame_pony) { - ExplosionLarge.spawnTracers(worldObj, posX, posY, posZ, 25); - for(Object p : worldObj.playerEntities) - ((EntityPlayer)p).triggerAchievement(MainRegistry.achSpace); - } - - if(payload.getItem() == ModItems.sat_foeq) { - for(Object p : worldObj.playerEntities) - ((EntityPlayer)p).triggerAchievement(MainRegistry.achFOEQ); - } - - if(payload.getItem() instanceof ISatChip) { - - int freq = ISatChip.getFreqS(payload); - - Satellite.orbit(worldObj, Satellite.getIDFromItem(payload.getItem()), freq, posX, posY, posZ); - } - } - - this.setDead(); - } - - @Override - protected void entityInit() { - this.dataWatcher.addObject(8, 1); - } - - public void setPayload(ItemStack stack) { - this.payload = stack.copy(); - } - - private void disengageBoosters() { - this.dataWatcher.updateObject(8, 0); - - if(!worldObj.isRemote) { - EntityBooster boost1 = new EntityBooster(worldObj); - boost1.posX = posX + 1.5D; - boost1.posY = posY; - boost1.posZ = posZ; - boost1.motionX = 0.45D + rand.nextDouble() * 0.2D; - boost1.motionY = motionY; - boost1.motionZ = rand.nextGaussian() * 0.1D; - worldObj.spawnEntityInWorld(boost1); - - EntityBooster boost2 = new EntityBooster(worldObj); - boost2.posX = posX - 1.5D; - boost2.posY = posY; - boost2.posZ = posZ; - boost2.motionX = -0.45D - rand.nextDouble() * 0.2D; - boost2.motionY = motionY; - boost2.motionZ = rand.nextGaussian() * 0.1D; - worldObj.spawnEntityInWorld(boost2); - - EntityBooster boost3 = new EntityBooster(worldObj); - boost3.posX = posX; - boost3.posY = posY; - boost3.posZ = posZ + 1.5D; - boost3.motionZ = 0.45D + rand.nextDouble() * 0.2D; - boost3.motionY = motionY; - boost3.motionX = rand.nextGaussian() * 0.1D; - worldObj.spawnEntityInWorld(boost3); - - EntityBooster boost4 = new EntityBooster(worldObj); - boost4.posX = posX; - boost4.posY = posY; - boost4.posZ = posZ - 1.5D; - boost4.motionZ = -0.45D - rand.nextDouble() * 0.2D; - boost4.motionY = motionY; - boost4.motionX = rand.nextGaussian() * 0.1D; - worldObj.spawnEntityInWorld(boost4); - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 500000; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMIRV.java b/src/main/java/com/hbm/entity/missile/EntityMIRV.java index c7aa4b0af..0985e3e54 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMIRV.java +++ b/src/main/java/com/hbm/entity/missile/EntityMIRV.java @@ -1,9 +1,8 @@ package com.hbm.entity.missile; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.entity.particle.EntitySmokeFX; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -37,17 +36,10 @@ public class EntityMIRV extends EntityThrowable { if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { if(!this.worldObj.isRemote) { worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.mirvRadius, posX, posY, posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, BombConfig.mirvRadius * 0.005F); - entity2.posX = this.posX; - entity2.posY = this.posY; - entity2.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.mirvRadius); } this.setDead(); } - - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); } protected void rotation() { diff --git a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java index cb8af88ae..6264046a9 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java +++ b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java @@ -10,11 +10,8 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class EntityMinerRocket extends Entity { - //0 landing, 1 unloading, 2 lifting public int timer = 0; - //0 asteroid, 1 moon - public String satelliteClassName = "com.hbm.saveddata.satellites.SatelliteMiner"; public EntityMinerRocket(World p_i1582_1_) { super(p_i1582_1_); @@ -24,13 +21,12 @@ public class EntityMinerRocket extends Entity { @Override protected void entityInit() { - this.dataWatcher.addObject(16, Integer.valueOf(0)); - this.dataWatcher.addObject(17, Integer.valueOf(0)); + this.dataWatcher.addObject(16, 0); + this.dataWatcher.addObject(17, 0); } @Override public void onUpdate() { - if(dataWatcher.getWatchableObjectInt(16) == 0) motionY = -0.75; if(dataWatcher.getWatchableObjectInt(16) == 1) @@ -43,7 +39,6 @@ public class EntityMinerRocket extends Entity { this.setPositionAndRotation(posX + motionX, posY + motionY, posZ + motionZ, 0.0F, 0.0F); - if(dataWatcher.getWatchableObjectInt(16) == 0 && worldObj.getBlock((int)(posX - 0.5), (int)(posY - 0.5), (int)(posZ - 0.5)) == ModBlocks.sat_dock) { dataWatcher.updateObject(16, 1); motionY = 0; @@ -55,7 +50,6 @@ public class EntityMinerRocket extends Entity { } if(dataWatcher.getWatchableObjectInt(16) == 1) { - if(!worldObj.isRemote && ticksExisted % 4 == 0) ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 1 + rand.nextInt(3), 1 + rand.nextGaussian()); @@ -79,7 +73,6 @@ public class EntityMinerRocket extends Entity { dataWatcher.updateObject(16, nbt.getInteger("mode")); dataWatcher.updateObject(17, nbt.getInteger("sat")); timer = nbt.getInteger("timer"); - satelliteClassName = nbt.getString("type"); } @Override @@ -87,7 +80,5 @@ public class EntityMinerRocket extends Entity { nbt.setInteger("mode", dataWatcher.getWatchableObjectInt(16)); nbt.setInteger("sat", dataWatcher.getWatchableObjectInt(17)); nbt.setInteger("timer", timer); - nbt.setString("type", satelliteClassName); } - } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index b350038be..8cd806ca0 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -1,156 +1,237 @@ package com.hbm.entity.missile; +import java.util.ArrayList; import java.util.List; -import com.hbm.entity.particle.EntitySmokeFX; +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.projectile.EntityThrowableInterp; import com.hbm.explosion.ExplosionLarge; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import api.hbm.entity.IRadarDetectable; +import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; -public class EntityMissileAntiBallistic extends Entity implements IRadarDetectable { +public class EntityMissileAntiBallistic extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable, IRadarDetectableNT { - int activationTimer; + private Ticket loaderTicket; + public Entity tracking; + public double velocity; + protected int activationTimer; - public EntityMissileAntiBallistic(World p_i1582_1_) { - super(p_i1582_1_); - } + public static double baseSpeed = 1.5D; - @Override - public void onUpdate() { - - if(activationTimer < 40) { - activationTimer++; - - motionY = 1.5D; - - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - this.rotation(); - - if(!this.worldObj.isRemote && this.posY < 400) - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - - } else { - - if(activationTimer == 40) { - ExplosionLarge.spawnParticlesRadial(worldObj, posX, posY, posZ, 15); - activationTimer = 100; - } - - for(int i = 0; i < 5; i++) { - - targetMissile(); - - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - this.rotation(); - - if(!this.worldObj.isRemote && this.posY < 400) - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 5, posY - 5, posZ - 5, posX + 5, posY + 5, posZ + 5)); - - for(Entity e : list) { - if(e instanceof EntityMissileBaseAdvanced || e instanceof EntityMissileCustom) { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 15F, true, false, true); - this.setDead(); - return; - } - } - } - } - - if(this.posY > 2000) - this.setDead(); - - if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.water && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.flowing_water) { - - if(!this.worldObj.isRemote) { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10F, true, true, true); - } - this.setDead(); - return; - } - - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { - ; - } - - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } - } - - private void targetMissile() { - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 500, 0, posZ - 500, posX + 500, 5000, posZ + 500)); - - Entity target = null; - double closest = 1000D; - - for(Entity e : list) { - if(e instanceof EntityMissileBaseAdvanced || e instanceof EntityMissileCustom) { - double dis = Math.sqrt(Math.pow(e.posX - posX, 2) + Math.pow(e.posY - posY, 2) + Math.pow(e.posZ - posZ, 2)); - - if(dis < closest) { - closest = dis; - target = e; - } - } - } - - if(target != null) { - - Vec3 vec = Vec3.createVectorHelper(target.posX - posX, target.posY - posY, target.posZ - posZ); - - vec.normalize(); - - this.motionX = vec.xCoord * 0.065D; - this.motionY = vec.yCoord * 0.065D; - this.motionZ = vec.zCoord * 0.065D; - } + public EntityMissileAntiBallistic(World world) { + super(world); + this.setSize(1.5F, 1.5F); + this.motionY = baseSpeed; } @Override protected void entityInit() { - + super.entityInit(); + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); } @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - + protected double motionMult() { + return velocity; } @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { + public boolean doesImpactEntities() { + return false; + } + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + + if(velocity < 6) velocity += 0.1; + + if(activationTimer < 40) { + activationTimer++; + motionY = baseSpeed; + } else { + Entity prevTracking = this.tracking; + + if(this.tracking == null || this.tracking.isDead) this.targetMissile(); + + if(prevTracking == null && this.tracking != null) { + ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 24, 3F); + } + + if(this.tracking != null && !this.tracking.isDead) { + this.aimAtTarget(); + } else { + if(this.ticksExisted > 600) this.setDead(); + } + } + + loadNeighboringChunks((int) Math.floor(posX / 16), (int) Math.floor(posZ / 16)); + + if(this.posY > 2000 && (this.tracking == null || this.tracking.isDead)) this.setDead(); + + } else { + + Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "ABMContrail"); + data.setDouble("posX", posX - vec.xCoord); + data.setDouble("posY", posY - vec.yCoord); + data.setDouble("posZ", posZ - vec.zCoord); + MainRegistry.proxy.effectNT(data); + } + + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + } + + /** Detects and caches nearby EntityMissileBaseNT */ + protected void targetMissile() { + + Entity closest = null; + double dist = 1_000; + + for(Entity e : TileEntityMachineRadarNT.matchingEntities) { + if(e.dimension != this.dimension) continue; + if(!(e instanceof EntityMissileBaseNT)) continue; //can only lock onto missiles + if(e instanceof EntityMissileStealth) continue; //cannot lack onto missiles with stealth coating + + Vec3 vec = Vec3.createVectorHelper(e.posX - posX, e.posY - posY, e.posZ - posZ); + + if(vec.lengthVector() < dist) { + closest = e; + } + } + + this.tracking = closest; + } + + /** Predictive targeting system */ + protected void aimAtTarget() { + + Vec3 delta = Vec3.createVectorHelper(tracking.posX - posX, tracking.posY - posY, tracking.posZ - posZ); + double intercept = delta.lengthVector() / (this.baseSpeed * this.velocity); + Vec3 predicted = Vec3.createVectorHelper(tracking.posX + (tracking.posX - tracking.lastTickPosX) * intercept, tracking.posY + (tracking.posY - tracking.lastTickPosY) * intercept, tracking.posZ + (tracking.posZ - tracking.lastTickPosZ) * intercept); + Vec3 motion = Vec3.createVectorHelper(predicted.xCoord - posX, predicted.yCoord - posY, predicted.zCoord - posZ).normalize(); + + if(delta.lengthVector() < 10 && activationTimer >= 40) { + this.setDead(); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 15F, true, false, false); + + } + + this.motionX = motion.xCoord * baseSpeed; + this.motionY = motion.yCoord * baseSpeed; + this.motionZ = motion.zCoord * baseSpeed; + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + if(this.activationTimer >= 40) { + this.setDead(); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 20F, true, false, false); + } + } + + @Override + public double getGravityVelocity() { + return 0.0D; + } + + @Override + protected float getAirDrag() { + return 1F; + } + + @Override + protected float getWaterDrag() { + return 1F; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.velocity = nbt.getDouble("veloc"); + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setDouble("veloc", this.velocity); + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote) { + + if(ticket != null) { + + if(loaderTicket == null) { + + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + } + + List loadedChunks = new ArrayList(); + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); + + loadedChunks.clear(); + for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) loadedChunks.add(new ChunkCoordIntPair(newChunkX + i, newChunkZ + j)); + + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } + + @Override + public void setDead() { + super.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } } @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { - return distance < 500000; + return true; } @Override @@ -158,4 +239,28 @@ public class EntityMissileAntiBallistic extends Entity implements IRadarDetectab return RadarTargetType.MISSILE_AB; } + @Override + public String getUnlocalizedName() { + return "radar.target.abm"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER_AB; + } + + @Override + public boolean canBeSeenBy(Object radar) { + return true; + } + + @Override + public boolean paramsApplicable(RadarScanParams params) { + return params.scanMissiles; + } + + @Override + public boolean suppliesRedstone(RadarScanParams params) { + return false; + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java b/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java deleted file mode 100644 index dcc595d05..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.effect.EntityBlackHole; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBHole extends EntityMissileBaseAdvanced { - - public EntityMissileBHole(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBHole(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if (!this.worldObj.isRemote) - { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 1.5F, true); - - EntityBlackHole bl = new EntityBlackHole(this.worldObj, 1.5F); - bl.posX = this.posX; - bl.posY = this.posY; - bl.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(bl); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.grenade_black_hole, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java deleted file mode 100644 index 69d128a51..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ /dev/null @@ -1,289 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.logic.IChunkLoader; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacket; -import com.hbm.packet.PacketDispatcher; - -import api.hbm.entity.IRadarDetectable; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; - -public abstract class EntityMissileBaseAdvanced extends Entity implements IChunkLoader, IRadarDetectable { - - int startX; - int startZ; - int targetX; - int targetZ; - public int velocity; - double decelY; - double accelXZ; - boolean isCluster = false; - private Ticket loaderTicket; - public int health = 50; - - public EntityMissileBaseAdvanced(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - startX = (int) posX; - startZ = (int) posZ; - targetX = (int) posX; - targetZ = (int) posZ; - } - - public boolean canBeCollidedWith() { - return true; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { - if(this.isEntityInvulnerable()) { - return false; - } else { - if(!this.isDead && !this.worldObj.isRemote) { - health -= p_70097_2_; - - if(this.health <= 0) { - this.setDead(); - this.killMissile(); - } - } - - return true; - } - } - - private void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); - ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); - } - - public EntityMissileBaseAdvanced(World world, float x, float y, float z, int a, int b) { - super(world); - this.ignoreFrustumCheck = true; - this.setLocationAndAngles(x, y, z, 0, 0); - startX = (int) x; - startZ = (int) z; - targetX = a; - targetZ = b; - this.motionY = 2; - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - accelXZ = decelY = 1 / vector.lengthVector(); - decelY *= 2; - - velocity = 1; - - this.setSize(1.5F, 1.5F); - } - - @Override - protected void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - motionX = nbt.getDouble("moX"); - motionY = nbt.getDouble("moY"); - motionZ = nbt.getDouble("moZ"); - posX = nbt.getDouble("poX"); - posY = nbt.getDouble("poY"); - posZ = nbt.getDouble("poZ"); - decelY = nbt.getDouble("decel"); - accelXZ = nbt.getDouble("accel"); - targetX = nbt.getInteger("tX"); - targetZ = nbt.getInteger("tZ"); - startX = nbt.getInteger("sX"); - startZ = nbt.getInteger("sZ"); - velocity = nbt.getInteger("veloc"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setDouble("moX", motionX); - nbt.setDouble("moY", motionY); - nbt.setDouble("moZ", motionZ); - nbt.setDouble("poX", posX); - nbt.setDouble("poY", posY); - nbt.setDouble("poZ", posZ); - nbt.setDouble("decel", decelY); - nbt.setDouble("accel", accelXZ); - nbt.setInteger("tX", targetX); - nbt.setInteger("tZ", targetZ); - nbt.setInteger("sX", startX); - nbt.setInteger("sZ", startZ); - nbt.setInteger("veloc", velocity); - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - - @Override - public void onUpdate() { - - if(velocity < 1) - velocity = 1; - if(this.ticksExisted > 40) - velocity = 3; - else if(this.ticksExisted > 20) - velocity = 2; - - this.dataWatcher.updateObject(8, Integer.valueOf(this.health)); - - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - //TODO: instead of crappy skipping, implement a hitscan - for(int i = 0; i < velocity; i++) { - //this.posX += this.motionX; - //this.posY += this.motionY; - //this.posZ += this.motionZ; - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - - this.rotation(); - - this.motionY -= decelY; - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ; - vector.zCoord *= accelXZ; - - if(motionY > 0) { - motionX += vector.xCoord; - motionZ += vector.zCoord; - } - - if(motionY < 0) { - motionX -= vector.xCoord; - motionZ -= vector.zCoord; - } - - if(!this.worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(posX, posY, posZ, 2), - new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 300)); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && - this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && - this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water) { - - if(!this.worldObj.isRemote) { - onImpact(); - } - this.killAndClear(); - return; - } - - loadNeighboringChunks((int) (posX / 16), (int) (posZ / 16)); - - if(motionY < -1 && this.isCluster && !worldObj.isRemote) { - cluster(); - this.setDead(); - return; - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) { - return true; - } - - public abstract void onImpact(); - - public abstract List getDebris(); - - public abstract ItemStack getDebrisRareDrop(); - - public void cluster() { } - - public void init(Ticket ticket) { - if(!worldObj.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - - public void loadNeighboringChunks(int newChunkX, int newChunkZ) { - if(!worldObj.isRemote && loaderTicket != null) { - - clearChunkLoader(); - - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); - - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } - - public void killAndClear() { - this.setDead(); - this.clearChunkLoader(); - } - - public void clearChunkLoader() { - if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - } - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java new file mode 100644 index 000000000..c0e51f619 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -0,0 +1,401 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.projectile.EntityThrowableInterp; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCross; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.main.MainRegistry; +import com.hbm.util.TrackerUtil; + +import api.hbm.entity.IRadarDetectableNT; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.EntityTrackerEntry; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public abstract class EntityMissileBaseNT extends EntityThrowableInterp implements IChunkLoader, IRadarDetectableNT { + + public int startX; + public int startZ; + public int targetX; + public int targetZ; + public double velocity; + public double decelY; + public double accelXZ; + public boolean isCluster = false; + private Ticket loaderTicket; + public int health = 50; + + public EntityMissileBaseNT(World world) { + super(world); + this.ignoreFrustumCheck = true; + startX = (int) posX; + startZ = (int) posZ; + targetX = (int) posX; + targetZ = (int) posZ; + } + + public EntityMissileBaseNT(World world, float x, float y, float z, int a, int b) { + super(world); + this.ignoreFrustumCheck = true; + this.setLocationAndAngles(x, y, z, 0, 0); + startX = (int) x; + startZ = (int) z; + targetX = a; + targetZ = b; + this.motionY = 2; + + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + accelXZ = decelY = 1 / vector.lengthVector(); + decelY *= 2; + velocity = 0; + + this.rotationYaw = (float) (Math.atan2(targetX - posX, targetZ - posZ) * 180.0D / Math.PI); + + this.setSize(1.5F, 1.5F); + } + + /** Auto-generates radar blip level and all that from the item */ + public abstract ItemStack getMissileItemForInfo(); + + @Override + public boolean canBeSeenBy(Object radar) { + return true; + } + + @Override + public boolean paramsApplicable(RadarScanParams params) { + if(!params.scanMissiles) return false; + return true; + } + + @Override + public boolean suppliesRedstone(RadarScanParams params) { + if(params.smartMode && this.motionY >= 0) return false; + return true; + } + + @Override + protected void entityInit() { + super.entityInit(); + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + this.dataWatcher.addObject(3, new Byte((byte) 5)); + } + + @Override + protected double motionMult() { + return velocity; + } + + @Override + public boolean doesImpactEntities() { + return false; + } + + @Override + public void onUpdate() { + this.lastTickPosX = this.posX; + this.lastTickPosY = this.posY; + this.lastTickPosZ = this.posZ; + super.onUpdate(); + + if(velocity < 4) velocity += MathHelper.clamp_double(this.ticksExisted / 60D * 0.05D, 0, 0.05); + + if(!worldObj.isRemote) { + + if(hasPropulsion()) { + this.motionY -= decelY * velocity; + + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + vector = vector.normalize(); + vector.xCoord *= accelXZ; + vector.zCoord *= accelXZ; + + if(motionY > 0) { + motionX += vector.xCoord * velocity; + motionZ += vector.zCoord * velocity; + } + + if(motionY < 0) { + motionX -= vector.xCoord * velocity; + motionZ -= vector.zCoord * velocity; + } + } else { + motionX *= 0.99; + motionZ *= 0.99; + + if(motionY > -1.5) + motionY -= 0.05; + } + + if(motionY < -velocity && this.isCluster) { + cluster(); + this.setDead(); + return; + } + + this.rotationYaw = (float) (Math.atan2(targetX - posX, targetZ - posZ) * 180.0D / Math.PI); + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + EntityTrackerEntry tracker = TrackerUtil.getTrackerEntry((WorldServer) worldObj, this.getEntityId()); + if(tracker != null) tracker.lastYaw += 100; //coax the tracker into sending smother updates + + loadNeighboringChunks((int) Math.floor(posX / 16), (int) Math.floor(posZ / 16)); + } else { + this.spawnContrail(); + } + + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + } + + public boolean hasPropulsion() { + return true; + } + + protected void spawnContrail() { + this.spawnContraolWithOffset(0, 0, 0); + } + + protected void spawnContraolWithOffset(double offsetX, double offsetY, double offsetZ) { + Vec3 vec = Vec3.createVectorHelper(this.lastTickPosX - this.posX, this.lastTickPosY - this.posY, this.lastTickPosZ - this.posZ); + double len = vec.lengthVector(); + vec = vec.normalize(); + Vec3 thrust = Vec3.createVectorHelper(0, 1, 0); + thrust.rotateAroundZ(this.rotationPitch * (float) Math.PI / 180F); + thrust.rotateAroundY((this.rotationYaw + 90) * (float) Math.PI / 180F); + + for(int i = 0; i < Math.max(Math.min(len, 10), 1); i++) { + double j = i - len; + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("posX", posX - vec.xCoord * j + offsetX); + data.setDouble("posY", posY - vec.yCoord * j + offsetY); + data.setDouble("posZ", posZ - vec.zCoord * j + offsetZ); + data.setString("type", "missileContrail"); + data.setFloat("scale", this.getContrailScale()); + data.setDouble("moX", -thrust.xCoord); + data.setDouble("moY", -thrust.yCoord); + data.setDouble("moZ", -thrust.zCoord); + data.setInteger("maxAge", 60 + rand.nextInt(20)); + MainRegistry.proxy.effectNT(data); + } + } + + protected float getContrailScale() { + return 1F; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + motionX = nbt.getDouble("moX"); + motionY = nbt.getDouble("moY"); + motionZ = nbt.getDouble("moZ"); + posX = nbt.getDouble("poX"); + posY = nbt.getDouble("poY"); + posZ = nbt.getDouble("poZ"); + decelY = nbt.getDouble("decel"); + accelXZ = nbt.getDouble("accel"); + targetX = nbt.getInteger("tX"); + targetZ = nbt.getInteger("tZ"); + startX = nbt.getInteger("sX"); + startZ = nbt.getInteger("sZ"); + velocity = nbt.getDouble("veloc"); + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setDouble("moX", motionX); + nbt.setDouble("moY", motionY); + nbt.setDouble("moZ", motionZ); + nbt.setDouble("poX", posX); + nbt.setDouble("poY", posY); + nbt.setDouble("poZ", posZ); + nbt.setDouble("decel", decelY); + nbt.setDouble("accel", accelXZ); + nbt.setInteger("tX", targetX); + nbt.setInteger("tZ", targetZ); + nbt.setInteger("sX", startX); + nbt.setInteger("sZ", startZ); + nbt.setDouble("veloc", velocity); + } + + public boolean canBeCollidedWith() { + return true; + } + + public boolean attackEntityFrom(DamageSource source, float amount) { + if(this.isEntityInvulnerable()) { + return false; + } else { + if(this.health > 0 && !this.worldObj.isRemote) { + health -= amount; + + if(this.health <= 0) { + this.killMissile(); + } + } + + return true; + } + } + + protected void killMissile() { + if(!this.isDead) { + this.setDead(); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return true; + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + this.onImpact(); + this.setDead(); + } + } + + public abstract void onImpact(); + public abstract List getDebris(); + public abstract ItemStack getDebrisRareDrop(); + public void cluster() { } + + @Override + public double getGravityVelocity() { + return 0.0D; + } + + @Override + protected float getAirDrag() { + return 1F; + } + + @Override + protected float getWaterDrag() { + return 1F; + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote) { + + if(ticket != null) { + + if(loaderTicket == null) { + + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + } + + List loadedChunks = new ArrayList(); + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); + + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX * this.motionMult()) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ * this.motionMult()) / 16D))); + + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } + + @Override + public void setDead() { + super.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + public void explodeStandard(float strength, int resolution, boolean fire) { + ExplosionVNT xnt = new ExplosionVNT(worldObj, posX, posY, posZ, strength); + xnt.setBlockAllocator(new BlockAllocatorStandard(resolution)); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(fire ? new BlockMutatorFire() : null)); + xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(2)); + xnt.setPlayerProcessor(new PlayerProcessorStandard()); + xnt.explode(); + } + + @Override + public String getUnlocalizedName() { + ItemStack item = this.getMissileItemForInfo(); + if(item != null && item.getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) item.getItem(); + switch(missile.tier) { + case TIER0: return "radar.target.tier0"; + case TIER1: return "radar.target.tier1"; + case TIER2: return "radar.target.tier2"; + case TIER3: return "radar.target.tier3"; + case TIER4: return "radar.target.tier4"; + default: return "Unknown"; + } + } + + return "Unknown"; + } + + @Override + public int getBlipLevel() { + ItemStack item = this.getMissileItemForInfo(); + if(item != null && item.getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) item.getItem(); + switch(missile.tier) { + case TIER0: return IRadarDetectableNT.TIER0; + case TIER1: return IRadarDetectableNT.TIER1; + case TIER2: return IRadarDetectableNT.TIER2; + case TIER3: return IRadarDetectableNT.TIER3; + case TIER4: return IRadarDetectableNT.TIER4; + default: return IRadarDetectableNT.SPECIAL; + } + } + + return IRadarDetectableNT.SPECIAL; + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java b/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java deleted file mode 100644 index b23a22063..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBunkerBuster extends EntityMissileBaseAdvanced { - - public EntityMissileBunkerBuster(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBunkerBuster(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 15; i++) - { - this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 5F, true); - } - - ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 5); - ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 5); - ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 5); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_buster_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java b/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java deleted file mode 100644 index b9285eb32..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBurst extends EntityMissileBaseAdvanced { - - public EntityMissileBurst(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBurst(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 4; i++) - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 50.0F, true); - ExplosionLarge.explode(worldObj, posX, posY, posZ, 50.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java deleted file mode 100644 index ac4e903b6..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBusterStrong extends EntityMissileBaseAdvanced { - - public EntityMissileBusterStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBusterStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 20; i++) - { - this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 7.5F, true); - } - ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 8); - ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 8); - ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 8); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_buster_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java b/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java deleted file mode 100644 index 38ac71f9a..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileCluster extends EntityMissileBaseAdvanced { - - public EntityMissileCluster(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileCluster(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - this.isCluster = true; - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); - ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25, 100); - } - - @Override - public void cluster() { - this.onImpact(); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_cluster_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java deleted file mode 100644 index 81a3cab63..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileClusterStrong extends EntityMissileBaseAdvanced { - - public EntityMissileClusterStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileClusterStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - this.isCluster = true; - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true); - ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 100); - } - - @Override - public void cluster() { - this.onImpact(); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_cluster_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 12a2b845a..0b6a51cf8 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -5,93 +5,41 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.BlockTaint; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.logic.IChunkLoader; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.MissileStruct; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.PartSize; -import com.hbm.items.weapon.ItemMissile.WarheadType; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart.WarheadType; import com.hbm.main.MainRegistry; -import api.hbm.entity.IRadarDetectable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; +import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; -public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarDetectable { +public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLoader { - int startX; - int startZ; - int targetX; - int targetZ; - double velocity; - double decelY; - double accelXZ; - float fuel; - float consumption; - private Ticket loaderTicket; - public int health = 50; - MissileStruct template; + public float fuel; + public float consumption; - public EntityMissileCustom(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - startX = (int) posX; - startZ = (int) posZ; - targetX = (int) posX; - targetZ = (int) posZ; - } - - public boolean canBeCollidedWith() { - return true; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { - if(this.isEntityInvulnerable()) { - return false; - } else { - if(!this.isDead && !this.worldObj.isRemote) { - health -= p_70097_2_; - - if(this.health <= 0) { - this.setDead(); - this.killMissile(); - } - } - - return true; - } - } - - private void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + public EntityMissileCustom(World world) { + super(world); } public EntityMissileCustom(World world, float x, float y, float z, int a, int b, MissileStruct template) { super(world); this.ignoreFrustumCheck = true; - /* - * this.posX = x; this.posY = y; this.posZ = z; - */ this.setLocationAndAngles(x, y, z, 0, 0); startX = (int) x; startZ = (int) z; @@ -99,24 +47,22 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD targetZ = b; this.motionY = 2; - this.template = template; - - this.dataWatcher.updateObject(9, Item.getIdFromItem(template.warhead)); - this.dataWatcher.updateObject(10, Item.getIdFromItem(template.fuselage)); - if(template.fins != null) - this.dataWatcher.updateObject(11, Item.getIdFromItem(template.fins)); - else - this.dataWatcher.updateObject(11, Integer.valueOf(0)); - this.dataWatcher.updateObject(12, Item.getIdFromItem(template.thruster)); - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); accelXZ = decelY = 1 / vector.lengthVector(); decelY *= 2; + velocity = 0; - velocity = 0.0; + this.dataWatcher.updateObject(9, Item.getIdFromItem(template.warhead)); + this.dataWatcher.updateObject(10, Item.getIdFromItem(template.fuselage)); + this.dataWatcher.updateObject(12, Item.getIdFromItem(template.thruster)); + if(template.fins != null) { + this.dataWatcher.updateObject(11, Item.getIdFromItem(template.fins)); + } else { + this.dataWatcher.updateObject(11, Integer.valueOf(0)); + } - ItemMissile fuselage = (ItemMissile) template.fuselage; - ItemMissile thruster = (ItemMissile) template.thruster; + ItemCustomMissilePart fuselage = (ItemCustomMissilePart) template.fuselage; + ItemCustomMissilePart thruster = (ItemCustomMissilePart) template.thruster; this.fuel = (Float) fuselage.attributes[1]; this.consumption = (Float) thruster.attributes[1]; @@ -125,43 +71,48 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD } @Override - protected void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); - - if(template != null) { - this.dataWatcher.addObject(9, Integer.valueOf(Item.getIdFromItem(template.warhead))); - this.dataWatcher.addObject(10, Integer.valueOf(Item.getIdFromItem(template.fuselage))); - - if(template.fins != null) - this.dataWatcher.addObject(11, Integer.valueOf(Item.getIdFromItem(template.fins))); - else - this.dataWatcher.addObject(11, Integer.valueOf(0)); - - this.dataWatcher.addObject(12, Integer.valueOf(Item.getIdFromItem(template.thruster))); - } else { - this.dataWatcher.addObject(9, Integer.valueOf(0)); - this.dataWatcher.addObject(10, Integer.valueOf(0)); - this.dataWatcher.addObject(11, Integer.valueOf(0)); - this.dataWatcher.addObject(12, Integer.valueOf(0)); + protected void killMissile() { + if(!this.isDead) { + this.setDead(); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); } } @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - motionX = nbt.getDouble("moX"); - motionY = nbt.getDouble("moY"); - motionZ = nbt.getDouble("moZ"); - posX = nbt.getDouble("poX"); - posY = nbt.getDouble("poY"); - posZ = nbt.getDouble("poZ"); - decelY = nbt.getDouble("decel"); - accelXZ = nbt.getDouble("accel"); - targetX = nbt.getInteger("tX"); - targetZ = nbt.getInteger("tZ"); - startX = nbt.getInteger("sX"); - startZ = nbt.getInteger("sZ"); - velocity = nbt.getInteger("veloc"); + public void onUpdate() { + + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(9)); + WarheadType type = (WarheadType) part.attributes[0]; + if(type != null && type.updateCustom != null) { + type.updateCustom.accept(this); + } + + if(!worldObj.isRemote) { + if(this.hasPropulsion()) this.fuel -= this.consumption; + } + + super.onUpdate(); + } + + @Override + public boolean hasPropulsion() { + return this.fuel > 0; + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(8, Integer.valueOf(this.health)); + this.dataWatcher.addObject(9, Integer.valueOf(0)); + this.dataWatcher.addObject(10, Integer.valueOf(0)); + this.dataWatcher.addObject(11, Integer.valueOf(0)); + this.dataWatcher.addObject(12, Integer.valueOf(0)); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); fuel = nbt.getFloat("fuel"); consumption = nbt.getFloat("consumption"); this.dataWatcher.updateObject(9, nbt.getInteger("warhead")); @@ -171,20 +122,8 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD } @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setDouble("moX", motionX); - nbt.setDouble("moY", motionY); - nbt.setDouble("moZ", motionZ); - nbt.setDouble("poX", posX); - nbt.setDouble("poY", posY); - nbt.setDouble("poZ", posZ); - nbt.setDouble("decel", decelY); - nbt.setDouble("accel", accelXZ); - nbt.setInteger("tX", targetX); - nbt.setInteger("tZ", targetZ); - nbt.setInteger("sX", startX); - nbt.setInteger("sZ", startZ); - nbt.setDouble("veloc", velocity); + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); nbt.setFloat("fuel", fuel); nbt.setFloat("consumption", consumption); nbt.setInteger("warhead", this.dataWatcher.getWatchableObjectInt(9)); @@ -193,123 +132,47 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD nbt.setInteger("thruster", this.dataWatcher.getWatchableObjectInt(12)); } - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + @Override + protected void spawnContrail() { - for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { - ; + Vec3 v = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + String smoke = ""; + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + FuelType type = (FuelType) part.attributes[0]; + + switch(type) { + case BALEFIRE: smoke = "exBalefire"; break; + case HYDROGEN: smoke = "exHydrogen"; break; + case KEROSENE: smoke = "exKerosene"; break; + case SOLID: smoke = "exSolid"; break; + case XENON: break; } - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; + if(!smoke.isEmpty()) { + for (int i = 0; i < velocity; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("posX", posX - v.xCoord * i); + data.setDouble("posY", posY - v.yCoord * i); + data.setDouble("posZ", posZ - v.zCoord * i); + data.setString("type", smoke); + MainRegistry.proxy.effectNT(data); + } } } @Override - public void onUpdate() { - this.dataWatcher.updateObject(8, Integer.valueOf(this.health)); + public void onImpact() { //TODO: demolish this steaming pile of shit - this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, 0, 0); - - this.rotation(); - - if(fuel > 0 || worldObj.isRemote) { - - fuel -= consumption; - - this.motionY -= decelY * velocity; - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ * velocity; - vector.zCoord *= accelXZ * velocity; - - if(motionY > 0) { - motionX += vector.xCoord; - motionZ += vector.zCoord; - } - - if(motionY < 0) { - motionX -= vector.xCoord; - motionZ -= vector.zCoord; - } - - if(velocity < 5) - velocity += 0.01; - } else { - - motionX *= 0.99; - motionZ *= 0.99; - - if(motionY > -1.5) - motionY -= 0.05; - } - - if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.water && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.flowing_water) { - - if(!this.worldObj.isRemote) { - onImpact(); - } - this.setDead(); - return; - } - - if(this.worldObj.isRemote) { - - Vec3 v = Vec3.createVectorHelper(motionX, motionY, motionZ); - v = v.normalize(); - - String smoke = ""; - - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); - FuelType type = (FuelType) part.attributes[0]; - - switch(type) { - case BALEFIRE: - smoke = "exBalefire"; - break; - case HYDROGEN: - smoke = "exHydrogen"; - break; - case KEROSENE: - smoke = "exKerosene"; - break; - case SOLID: - smoke = "exSolid"; - break; - case XENON: - break; - } - - for(int i = 0; i < velocity; i++) - MainRegistry.proxy.spawnParticle(posX - v.xCoord * i, posY - v.yCoord * i, posZ - v.zCoord * i, smoke, null); - } - - loadNeighboringChunks((int) (posX / 16), (int) (posZ / 16)); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) { - return distance < 2500000; - } - - public void onImpact() { - - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(9)); + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(9)); WarheadType type = (WarheadType) part.attributes[0]; float strength = (Float) part.attributes[1]; + if(type.impactCustom != null) { + type.impactCustom.accept(this); + return; + } + switch(type) { case HE: ExplosionLarge.explode(worldObj, posX, posY, posZ, strength, true, false, true); @@ -327,11 +190,7 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD case NUCLEAR: case TX: worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int) strength, posX, posY, posZ)); - EntityNukeCloudSmall nuke = new EntityNukeCloudSmall(worldObj, 1000, strength * 0.005F); - nuke.posX = posX; - nuke.posY = posY; - nuke.posZ = posZ; - worldObj.spawnEntityInWorld(nuke); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, strength); break; case BALEFIRE: EntityBalefire bf = new EntityBalefire(worldObj); @@ -340,15 +199,11 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD bf.posZ = this.posZ; bf.destructionRange = (int) strength; worldObj.spawnEntityInWorld(bf); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, posX, posY + 5, posZ, strength * 1.5F, 1000)); + EntityNukeTorex.statFacBale(worldObj, posX, posY, posZ, strength); break; case N2: worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, (int) strength, posX, posY, posZ)); - EntityNukeCloudSmall n2 = new EntityNukeCloudSmall(worldObj, 1000, strength * 0.005F); - n2.posX = posX; - n2.posY = posY; - n2.posZ = posZ; - worldObj.spawnEntityInWorld(n2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, strength); break; case TAINT: int r = (int) strength; @@ -371,7 +226,7 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD Vec3 vec = Vec3.createVectorHelper(0.5, 0, 0); for(int i = 0; i < count; i++) { - EntityBulletBase blade = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.TURBINE); + EntityBulletBaseNT blade = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.TURBINE); blade.setPositionAndRotation(this.posX - this.motionX, this.posY - this.motionY + rand.nextGaussian(), this.posZ - this.motionZ, 0, 0); blade.motionX = vec.xCoord; blade.motionZ = vec.zCoord; @@ -386,67 +241,43 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD } } - public void init(Ticket ticket) { - if(!worldObj.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - - public void loadNeighboringChunks(int newChunkX, int newChunkZ) { - if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1)); - - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } - @Override - public RadarTargetType getTargetType() { - - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + public String getUnlocalizedName() { + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); PartSize top = part.top; PartSize bottom = part.bottom; - if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) - return RadarTargetType.MISSILE_10; - if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) - return RadarTargetType.MISSILE_10_15; - if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) - return RadarTargetType.MISSILE_15; - if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) - return RadarTargetType.MISSILE_15_20; - if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) - return RadarTargetType.MISSILE_20; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) return "radar.target.custom10"; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) return "radar.target.custom1015"; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) return "radar.target.custom15"; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return "radar.target.custom1520"; + if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return "radar.target.custom20"; - return RadarTargetType.PLAYER; + return "radar.target.custom"; + } + + @Override + public int getBlipLevel() { + + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + PartSize top = part.top; + PartSize bottom = part.bottom; + + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) return IRadarDetectableNT.TIER10; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) return IRadarDetectableNT.TIER10_15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) return IRadarDetectableNT.TIER15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return IRadarDetectableNT.TIER15_20; + if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return IRadarDetectableNT.TIER20; + + return IRadarDetectableNT.TIER1; + } + + @Override public List getDebris() { return new ArrayList(); } + @Override public ItemStack getDebrisRareDrop() { return null; } + + @Override + public ItemStack getMissileItemForInfo() { + return new ItemStack(ModItems.missile_custom); } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java deleted file mode 100644 index 7b1d42a36..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileDoomsday extends EntityMissileBaseAdvanced { - - public EntityMissileDoomsday(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileDoomsday(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - } - - public void onUpdate() { - super.onUpdate(); - if(motionY <= 0) { - if(!worldObj.isRemote) { - this.setDead(); - EntityBombletTheta bomblet1 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet2 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet3 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet4 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet5 = new EntityBombletTheta(worldObj); - EntityBombletTheta bomblet6 = new EntityBombletTheta(worldObj); - bomblet1.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet1.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet1.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet2.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet2.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet2.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet3.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet3.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet3.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet4.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet4.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet4.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet5.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet5.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet5.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet6.motionX = this.motionX * (rand.nextFloat() + 0.5F); - bomblet6.motionY = this.motionY * (rand.nextFloat() + 0.5F); - bomblet6.motionZ = this.motionZ * (rand.nextFloat() + 0.5F); - bomblet1.posX = this.posX; - bomblet1.posY = this.posY; - bomblet1.posZ = this.posZ; - bomblet2.posX = this.posX; - bomblet2.posY = this.posY; - bomblet2.posZ = this.posZ; - bomblet3.posX = this.posX; - bomblet3.posY = this.posY; - bomblet3.posZ = this.posZ; - bomblet4.posX = this.posX; - bomblet4.posY = this.posY; - bomblet4.posZ = this.posZ; - bomblet5.posX = this.posX; - bomblet5.posY = this.posY; - bomblet5.posZ = this.posZ; - bomblet6.posX = this.posX; - bomblet6.posY = this.posY; - bomblet6.posZ = this.posZ; - - bomblet1.decelY = this.decelY; - bomblet2.decelY = this.decelY; - bomblet3.decelY = this.decelY; - bomblet4.decelY = this.decelY; - bomblet5.decelY = this.decelY; - bomblet6.decelY = this.decelY; - bomblet1.accelXZ = this.accelXZ; - bomblet2.accelXZ = this.accelXZ; - bomblet3.accelXZ = this.accelXZ; - bomblet4.accelXZ = this.accelXZ; - bomblet5.accelXZ = this.accelXZ; - bomblet6.accelXZ = this.accelXZ; - worldObj.spawnEntityInWorld(bomblet1); - worldObj.spawnEntityInWorld(bomblet2); - worldObj.spawnEntityInWorld(bomblet3); - worldObj.spawnEntityInWorld(bomblet4); - worldObj.spawnEntityInWorld(bomblet5); - worldObj.spawnEntityInWorld(bomblet6); - ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, ExplosionLarge.cloudFunction(25)); - ExplosionLarge.spawnTracers(worldObj, posX, posY, posZ, 10); - } - } - } - - @Override - public List getDebris() { - return null; - } - - @Override - public ItemStack getDebrisRareDrop() { - return null; - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java b/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java deleted file mode 100644 index 3c0ab3442..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNT; -import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileDrill extends EntityMissileBaseAdvanced { - - public EntityMissileDrill(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileDrill(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 30; i++) - { - ExplosionNT explosion = new ExplosionNT(worldObj, this, this.posX, this.posY - i, this.posZ, 10F); - explosion.addAllAttrib(ExAttrib.ERRODE); - explosion.explode(); //an explosion exploded! - } - ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 25); - ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 12); - ExplosionLarge.jolt(worldObj, this.posX, this.posY, this.posZ, 10, 50, 1); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_buster_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java deleted file mode 100644 index bd6ce0281..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileEMP extends EntityMissileBaseAdvanced { - - public EntityMissileEMP(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileEMP(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if (!this.worldObj.isRemote) - { - ExplosionNukeGeneric.empBlast(worldObj, (int)posX, (int)posY, (int)posZ, 50); - EntityEMPBlast wave = new EntityEMPBlast(worldObj, 50); - wave.posX = posX; - wave.posY = posY; - wave.posZ = posZ; - worldObj.spawnEntityInWorld(wave); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModBlocks.emp_bomb, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java deleted file mode 100644 index 4253cbaa6..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.logic.EntityEMP; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileEMPStrong extends EntityMissileBaseAdvanced { - - public EntityMissileEMPStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileEMPStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - EntityEMP emp = new EntityEMP(worldObj); - emp.posX = posX; - emp.posY = posY; - emp.posZ = posZ; - - worldObj.spawnEntityInWorld(emp); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java b/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java deleted file mode 100644 index e1205b606..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionThermo; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileEndo extends EntityMissileBaseAdvanced { - - public EntityMissileEndo(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileEndo(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - ExplosionThermo.freeze(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); - ExplosionThermo.freezer(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.plate_aluminium, 8)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_thermo_exo); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java b/src/main/java/com/hbm/entity/missile/EntityMissileExo.java deleted file mode 100644 index 494bebb06..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionThermo; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileExo extends EntityMissileBaseAdvanced { - - public EntityMissileExo(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileExo(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - ExplosionThermo.scorch(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); - ExplosionThermo.setEntitiesOnFire(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.plate_aluminium, 8)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_thermo_exo); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java b/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java deleted file mode 100644 index b1ad0f37b..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileGeneric extends EntityMissileBaseAdvanced { - - public EntityMissileGeneric(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } - - /*public EntityMissileGeneric(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileGeneric(World p_i1582_1_, int x, int z, double a, double b, double c) { - super(p_i1582_1_, x, z, a, b, c); - } - - @Override - public void onUpdate() - { - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - this.rotation(); - - switch(phase) - { - case 0: - if(loc0 != null) - { - freePizzaGoddammit(loc0); - if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX && - loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY && - loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ) - { - this.phase = 1; - } - } - break; - case 1: - if(loc1 != null) - { - freePizzaGoddammit(loc1); - if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX && - loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY && - loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ) - { - this.phase = 2; - } - } - break; - case 2: - if(loc2 != null) - { - freePizzaGoddammit(loc2); - if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX && - loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY && - loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ) - { - this.phase = 3; - } - } - break; - case 3: - if(loc3 != null) - { - freePizzaGoddammit(loc3); - if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX && - loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY && - loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ) - { - this.phase = 4; - } - } - break; - case 4: - if(loc4 != null) - { - freePizzaGoddammit(loc4); - if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX && - loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY && - loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ) - { - this.phase = 5; - } - } - break; - case 5: - if(loc5 != null) - { - freePizzaGoddammit(loc5); - if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX && - loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY && - loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ) - { - this.phase = 6; - } - } - break; - case 6: - if(loc6 != null) - { - freePizzaGoddammit(loc6); - if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX && - loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY && - loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ) - { - this.phase = 7; - } - } - break; - case 7: - if(loc7 != null) - { - freePizzaGoddammit(loc7); - if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX && - loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY && - loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ) - { - this.phase = 8; - } - } - break; - case 8: - if(target != null) - { - freePizzaGoddammit(target); - if(target.posX + 2 > this.posX && target.posX - 2 < this.posX && - target.posY + 2 > this.posY && target.posY - 2 < this.posY && - target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ) - { - this.phase = -1; - } - } - break; - } - - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water) - { - if(!this.worldObj.isRemote) - { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - } - this.setDead(); - } - }*/ - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java deleted file mode 100644 index 709e2e1f3..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileIncendiary extends EntityMissileBaseAdvanced { - - public EntityMissileIncendiary(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 10.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_incendiary_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java deleted file mode 100644 index 56e8b86d6..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileIncendiaryStrong extends EntityMissileBaseAdvanced { - - public EntityMissileIncendiaryStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 25.0F, true, true, true); - ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_incendiary_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java b/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java deleted file mode 100644 index 4109390b0..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileInferno extends EntityMissileBaseAdvanced { - - public EntityMissileInferno(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileInferno(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 35.0F, true, true, true); - ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); - ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_incendiary_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java b/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java deleted file mode 100644 index a85d7a980..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileMicro extends EntityMissileBaseAdvanced { - - public EntityMissileMicro(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if(!this.worldObj.isRemote) { - ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.PARAMS_HIGH); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java deleted file mode 100644 index 627d074a1..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileMirv extends EntityMissileBaseAdvanced { - - public EntityMissileMirv(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileMirv(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, BombConfig.missileRadius * 2 * 0.005F); - entity2.posX = this.posX; - entity2.posY = this.posY - 9; - entity2.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(entity2); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 16)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_mirv); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java deleted file mode 100644 index 76d2d3e1e..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileNuclear extends EntityMissileBaseAdvanced { - - public EntityMissileNuclear(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileNuclear(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = this.posX; - entity2.posY = this.posY; - entity2.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(entity2); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 16)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_nuclear); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java b/src/main/java/com/hbm/entity/missile/EntityMissileRain.java deleted file mode 100644 index 877fe54c4..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileRain extends EntityMissileBaseAdvanced { - - public EntityMissileRain(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileRain(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - this.isCluster = true; - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 25F, true); - ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 100); - } - - @Override - public void cluster() { - this.onImpact(); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_cluster_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java b/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java deleted file mode 100644 index c197026bc..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileSchrabidium extends EntityMissileBaseAdvanced { - - public EntityMissileSchrabidium(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileSchrabidium(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if(!this.worldObj.isRemote) { - EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, BombConfig.aSchrabRadius); - if(!ex.isDead) { - worldObj.spawnEntityInWorld(ex); - - EntityCloudFleija cloud = new EntityCloudFleija(this.worldObj, BombConfig.aSchrabRadius); - cloud.posX = this.posX; - cloud.posY = this.posY; - cloud.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(cloud); - } - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.powder_schrabidium, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java index c662a383d..6c07d944d 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java @@ -8,8 +8,8 @@ import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.init.Blocks; @@ -17,7 +17,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class EntityMissileShuttle extends EntityMissileBaseAdvanced { +public class EntityMissileShuttle extends EntityMissileBaseNT { public EntityMissileShuttle(World p_i1582_1_) { super(p_i1582_1_); @@ -49,7 +49,6 @@ public class EntityMissileShuttle extends EntityMissileBaseAdvanced { list.add(new ItemStack(ModItems.plate_steel, 8)); list.add(new ItemStack(ModItems.thruster_medium, 2)); list.add(new ItemStack(ModItems.canister_empty, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); list.add(new ItemStack(Blocks.glass_pane, 2)); return list; @@ -59,9 +58,14 @@ public class EntityMissileShuttle extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.missile_generic); } + + @Override + public String getUnlocalizedName() { + return "radar.target.shuttle"; + } @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; + public ItemStack getMissileItemForInfo() { + return new ItemStack(ModItems.missile_shuttle); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java new file mode 100644 index 000000000..0dc2528aa --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java @@ -0,0 +1,33 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.particle.helper.ExplosionCreator; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMissileStealth extends EntityMissileBaseNT { + + public EntityMissileStealth(World world) { super(world); } + public EntityMissileStealth(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.bolt, 4, Mats.MAT_STEEL.id)); + return list; + } + + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_stealth); } + @Override public boolean canBeSeenBy(Object radar) { return false; } + + @Override public void onImpact() { this.explodeStandard(20F, 24, false); ExplosionCreator.composeEffectStandard(worldObj, posX, posY, posZ); } + @Override public ItemStack getDebrisRareDrop() { return DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC); } + +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java deleted file mode 100644 index 60d2486d2..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileStrong extends EntityMissileBaseAdvanced { - - public EntityMissileStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 25.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java b/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java deleted file mode 100644 index b536b4410..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.bomb.BlockTaint; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileTaint extends EntityMissileBaseAdvanced { - - public EntityMissileTaint(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileTaint(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - - for(int i = 0; i < 100; i++) { - int a = rand.nextInt(11) + (int)this.posX - 5; - int b = rand.nextInt(11) + (int)this.posY - 5; - int c = rand.nextInt(11) + (int)this.posZ - 5; - if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) - worldObj.setBlock(a, b, c, ModBlocks.taint); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.powder_magic, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.powder_spark_mix, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java new file mode 100644 index 000000000..ed2a47309 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -0,0 +1,152 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockTaint; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityBlackHole; +import com.hbm.entity.effect.EntityCloudFleija; +import com.hbm.entity.effect.EntityEMPBlast; +import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ModItems; + +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public abstract class EntityMissileTier0 extends EntityMissileBaseNT { + + public EntityMissileTier0(World world) { super(world); } + public EntityMissileTier0(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.wire_fine, 4, Mats.MAT_ALUMINIUM.id)); + list.add(new ItemStack(ModItems.plate_titanium, 4)); + list.add(new ItemStack(ModItems.shell, 2, Mats.MAT_ALUMINIUM.id)); + list.add(new ItemStack(ModItems.ducttape, 1)); + return list; + } + + @Override + protected float getContrailScale() { + return 0.5F; + } + + public static class EntityMissileTest extends EntityMissileTier0 { + public EntityMissileTest(World world) { super(world); } + public EntityMissileTest(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public ItemStack getDebrisRareDrop() { return null; } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_test); } + + @Override public void onImpact() { + int x = (int) Math.floor(posX); + int y = (int) Math.floor(posY); + int z = (int) Math.floor(posZ); + int range = 50; + + for(int iX = -range; iX <= range; iX++) { + for(int iY = -range; iY <= range; iY++) { + for(int iZ = -range; iZ <= range; iZ++) { + double dist = Math.sqrt(iX * iX + iY * iY + iZ * iZ); + if(dist > range) continue; + Block block = worldObj.getBlock(x + iX, y + iY, z + iZ); + int meta = worldObj.getBlockMetadata(x + iX, y + iY, z + iZ); + int charMeta = (int) MathHelper.clamp_double(12 - (dist / range) * (dist / range) * 13, 0, 12); + + if(block.isNormalCube()) { + if(block != ModBlocks.sellafield_slaked || meta < charMeta) { + worldObj.setBlock(x + iX, y + iY, z + iZ, ModBlocks.sellafield_slaked, charMeta, 3); + } + } else { + worldObj.setBlock(x + iX, y + iY, z + iZ, Blocks.air); + } + } + } + } + } + } + + public static class EntityMissileMicro extends EntityMissileTier0 { + public EntityMissileMicro(World world) { super(world); } + public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.PARAMS_HIGH); } + @Override public ItemStack getDebrisRareDrop() { return DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_HIGH); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_micro); } + } + + public static class EntityMissileSchrabidium extends EntityMissileTier0 { + public EntityMissileSchrabidium(World world) { super(world); } + public EntityMissileSchrabidium(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, BombConfig.aSchrabRadius); + if(!ex.isDead) { + worldObj.spawnEntityInWorld(ex); + EntityCloudFleija cloud = new EntityCloudFleija(this.worldObj, BombConfig.aSchrabRadius); + cloud.posX = this.posX; + cloud.posY = this.posY; + cloud.posZ = this.posZ; + this.worldObj.spawnEntityInWorld(cloud); + } + } + @Override public ItemStack getDebrisRareDrop() { return null; } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_schrabidium); } + } + + public static class EntityMissileBHole extends EntityMissileTier0 { + public EntityMissileBHole(World world) { super(world); } + public EntityMissileBHole(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 1.5F, true); + EntityBlackHole bl = new EntityBlackHole(this.worldObj, 1.5F); + bl.posX = this.posX; + bl.posY = this.posY; + bl.posZ = this.posZ; + this.worldObj.spawnEntityInWorld(bl); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.grenade_black_hole, 1); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_bhole); } + } + + public static class EntityMissileTaint extends EntityMissileTier0 { + public EntityMissileTaint(World world) { super(world); } + public EntityMissileTaint(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); + for(int i = 0; i < 100; i++) { + int a = rand.nextInt(11) + (int) this.posX - 5; + int b = rand.nextInt(11) + (int) this.posY - 5; + int c = rand.nextInt(11) + (int) this.posZ - 5; + if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) worldObj.setBlock(a, b, c, ModBlocks.taint); + } + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.powder_spark_mix, 1); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_taint); } + } + + public static class EntityMissileEMP extends EntityMissileTier0 { + public EntityMissileEMP(World world) { super(world); } + public EntityMissileEMP(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + ExplosionNukeGeneric.empBlast(worldObj, (int)posX, (int)posY, (int)posZ, 50); + EntityEMPBlast wave = new EntityEMPBlast(worldObj, 50); + wave.posX = posX; + wave.posY = posY; + wave.posZ = posZ; + worldObj.spawnEntityInWorld(wave); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModBlocks.emp_bomb, 1); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_emp); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java new file mode 100644 index 000000000..538eb439e --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -0,0 +1,83 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; +import com.hbm.particle.helper.ExplosionCreator; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier1 extends EntityMissileBaseNT { + + public EntityMissileTier1(World world) { super(world); } + public EntityMissileTier1(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 4)); + list.add(new ItemStack(ModItems.thruster_small, 1)); + return list; + } + + @Override + protected float getContrailScale() { + return 0.5F; + } + + public static class EntityMissileGeneric extends EntityMissileTier1 { + public EntityMissileGeneric(World world) { super(world); } + public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { this.explodeStandard(15F, 24, false); ExplosionCreator.composeEffectSmall(worldObj, posX, posY, posZ); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_small); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_generic); } + } + + public static class EntityMissileDecoy extends EntityMissileTier1 { + public EntityMissileDecoy(World world) { super(world); } + public EntityMissileDecoy(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { worldObj.newExplosion(this, posX, posY, posZ, 4F, false, false); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.ingot_steel); } + @Override public String getUnlocalizedName() { return "radar.target.tier4"; } + @Override public int getBlipLevel() { return IRadarDetectableNT.TIER4; } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_decoy); } + } + + public static class EntityMissileIncendiary extends EntityMissileTier1 { + public EntityMissileIncendiary(World world) { super(world); } + public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { this.explodeStandard(15F, 24, true); ExplosionCreator.composeEffectSmall(worldObj, posX, posY, posZ); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_small); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_incendiary); } + } + + public static class EntityMissileCluster extends EntityMissileTier1 { + public EntityMissileCluster(World world) { super(world); } + public EntityMissileCluster(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); + ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25, 100); + } + @Override public void cluster() { this.onImpact(); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_small); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_cluster); } + } + + public static class EntityMissileBunkerBuster extends EntityMissileTier1 { + public EntityMissileBunkerBuster(World world) { super(world); } + public EntityMissileBunkerBuster(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 15; i++) this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 5F, true); + ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 5); + ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 5); + ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 5); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_small); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_buster); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java new file mode 100644 index 000000000..c2b752e5d --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java @@ -0,0 +1,100 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.logic.EntityEMP; +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; +import com.hbm.particle.helper.ExplosionCreator; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier2 extends EntityMissileBaseNT { + + public EntityMissileTier2(World world) { super(world); } + public EntityMissileTier2(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + + list.add(new ItemStack(ModItems.plate_steel, 10)); + list.add(new ItemStack(ModItems.plate_titanium, 6)); + list.add(new ItemStack(ModItems.thruster_medium, 1)); + + return list; + } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier2"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER2; + } + + public static class EntityMissileStrong extends EntityMissileTier2 { + public EntityMissileStrong(World world) { super(world); } + public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { this.explodeStandard(30F, 32, false); ExplosionCreator.composeEffectStandard(worldObj, posX, posY, posZ); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_strong); } + } + + public static class EntityMissileIncendiaryStrong extends EntityMissileTier2 { + public EntityMissileIncendiaryStrong(World world) { super(world); } + public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.explodeStandard(30F, 32, true); + ExplosionCreator.composeEffectStandard(worldObj, posX, posY, posZ); + ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_incendiary_strong); } + } + + public static class EntityMissileClusterStrong extends EntityMissileTier2 { + public EntityMissileClusterStrong(World world) { super(world); } + public EntityMissileClusterStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true); + ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 100); + } + @Override public void cluster() { this.onImpact(); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_cluster_strong); } + } + + public static class EntityMissileBusterStrong extends EntityMissileTier2 { + public EntityMissileBusterStrong(World world) { super(world); } + public EntityMissileBusterStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 20; i++) this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 7.5F, true); + ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 8); + ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 8); + ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 8); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_buster_strong); } + } + + public static class EntityMissileEMPStrong extends EntityMissileTier2 { + public EntityMissileEMPStrong(World world) { super(world); } + public EntityMissileEMPStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + EntityEMP emp = new EntityEMP(worldObj); + emp.posX = posX; + emp.posY = posY; + emp.posZ = posZ; + worldObj.spawnEntityInWorld(emp); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_emp_strong); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java new file mode 100644 index 000000000..de02e1aa2 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -0,0 +1,110 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNT; +import com.hbm.explosion.ExplosionNT.ExAttrib; +import com.hbm.items.ModItems; +import com.hbm.particle.helper.ExplosionCreator; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public abstract class EntityMissileTier3 extends EntityMissileBaseNT { + + public EntityMissileTier3(World world) { super(world); } + public EntityMissileTier3(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + + list.add(new ItemStack(ModItems.plate_steel, 16)); + list.add(new ItemStack(ModItems.plate_titanium, 10)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + + return list; + } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier3"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER3; + } + + @Override + protected void spawnContrail() { + + Vec3 thrust = Vec3.createVectorHelper(0, 0, 0.5); + thrust.rotateAroundY((this.rotationYaw + 90) * (float) Math.PI / 180F); + thrust.rotateAroundX(this.rotationPitch * (float) Math.PI / 180F); + thrust.rotateAroundY(-(this.rotationYaw + 90) * (float) Math.PI / 180F); + + this.spawnContraolWithOffset(thrust.xCoord, thrust.yCoord, thrust.zCoord); + this.spawnContraolWithOffset(-thrust.zCoord, thrust.yCoord, thrust.xCoord); + this.spawnContraolWithOffset(-thrust.xCoord, -thrust.zCoord, -thrust.zCoord); + this.spawnContraolWithOffset(thrust.zCoord, -thrust.zCoord, -thrust.xCoord); + } + + public static class EntityMissileBurst extends EntityMissileTier3 { + public EntityMissileBurst(World world) { super(world); } + public EntityMissileBurst(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.explodeStandard(50F, 48, false); + ExplosionCreator.composeEffectLarge(worldObj, posX, posY, posZ); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_large); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_burst); } + } + + public static class EntityMissileInferno extends EntityMissileTier3 { + public EntityMissileInferno(World world) { super(world); } + public EntityMissileInferno(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.explodeStandard(50F, 48, true); + ExplosionCreator.composeEffectLarge(worldObj, posX, posY, posZ); + ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); + ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_large); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_inferno); } + } + + public static class EntityMissileRain extends EntityMissileTier3 { + public EntityMissileRain(World world) { super(world); } + public EntityMissileRain(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 25F, true); + ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 100); + } + @Override public void cluster() { this.onImpact(); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_large); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_rain); } + } + + public static class EntityMissileDrill extends EntityMissileTier3 { + public EntityMissileDrill(World world) { super(world); } + public EntityMissileDrill(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 30; i++) { + ExplosionNT explosion = new ExplosionNT(worldObj, this, this.posX, this.posY - i, this.posZ, 10F); + explosion.addAllAttrib(ExAttrib.ERRODE); + explosion.explode(); //an explosion exploded! + } + ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 25); + ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 12); + ExplosionLarge.jolt(worldObj, this.posX, this.posY, this.posZ, 10, 50, 1); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_large); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_drill); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java new file mode 100644 index 000000000..ab284113f --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -0,0 +1,127 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public abstract class EntityMissileTier4 extends EntityMissileBaseNT { + + public EntityMissileTier4(World world) { super(world); } + public EntityMissileTier4(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 16)); + list.add(new ItemStack(ModItems.plate_steel, 20)); + list.add(new ItemStack(ModItems.plate_aluminium, 12)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + return list; + } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier4"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER4; + } + + @Override + protected void spawnContrail() { + + byte rot = this.dataWatcher.getWatchableObjectByte(3); + + Vec3 thrust = Vec3.createVectorHelper(0, 0, 1); + switch(rot) { + case 2: thrust.rotateAroundY((float) -Math.PI / 2F); break; + case 4: thrust.rotateAroundY((float) -Math.PI); break; + case 3: thrust.rotateAroundY((float) -Math.PI / 2F * 3F); break; + } + thrust.rotateAroundY((this.rotationYaw + 90) * (float) Math.PI / 180F); + thrust.rotateAroundX(this.rotationPitch * (float) Math.PI / 180F); + thrust.rotateAroundY(-(this.rotationYaw + 90) * (float) Math.PI / 180F); + + this.spawnContraolWithOffset(thrust.xCoord, thrust.yCoord, thrust.zCoord); + this.spawnContraolWithOffset(0, 0, 0); + this.spawnContraolWithOffset(-thrust.xCoord, -thrust.zCoord, -thrust.zCoord); + } + + public static class EntityMissileNuclear extends EntityMissileTier4 { + public EntityMissileNuclear(World world) { super(world); } + public EntityMissileNuclear(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_nuclear); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_nuclear); } + } + + public static class EntityMissileMirv extends EntityMissileTier4 { + public EntityMissileMirv(World world) { super(world); } + public EntityMissileMirv(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); + } + @Override public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 16)); + list.add(new ItemStack(ModItems.plate_steel, 20)); + list.add(new ItemStack(ModItems.plate_aluminium, 12)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + return list; + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_mirv); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_nuclear_cluster); } + } + + public static class EntityMissileVolcano extends EntityMissileTier4 { + public EntityMissileVolcano(World world) { super(world); } + public EntityMissileVolcano(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); + for(int x = -1; x <= 1; x++) for(int y = -1; y <= 1; y++) for(int z = -1; z <= 1; z++) worldObj.setBlock((int)Math.floor(posX + x), (int)Math.floor(posY + y), (int)Math.floor(posZ + z), ModBlocks.volcanic_lava_block); + worldObj.setBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ), ModBlocks.volcano_core); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_volcano); } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_volcano); } + } + + public static class EntityMissileDoomsday extends EntityMissileTier4 { + public EntityMissileDoomsday(World world) { super(world); } + public EntityMissileDoomsday(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ).moreFallout(100)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); + } + @Override public List getDebris() { return null; } + @Override public ItemStack getDebrisRareDrop() { return null; } + @Override public String getUnlocalizedName() { return "radar.target.doomsday"; } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday); } + } + + public static class EntityMissileDoomsdayRusted extends EntityMissileDoomsday { + public EntityMissileDoomsdayRusted(World world) { super(world); } + public EntityMissileDoomsdayRusted(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ).moreFallout(100)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); + } + @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday_rusted); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java b/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java deleted file mode 100644 index 4a8ccbebf..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileVolcano extends EntityMissileBaseAdvanced { - - public EntityMissileVolcano(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileVolcano(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - - for(int x = -1; x <= 1; x++) { - for(int y = -1; y <= 1; y++) { - for(int z = -1; z <= 1; z++) { - worldObj.setBlock((int)Math.floor(posX + x), (int)Math.floor(posY + y), (int)Math.floor(posZ + z), ModBlocks.volcanic_lava_block); - } - } - } - - worldObj.setBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ), ModBlocks.volcano_core); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 16)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_volcano); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java b/src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java deleted file mode 100644 index 567d5c04f..000000000 --- a/src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.blocks.ModBlocks; -import com.hbm.entity.mob.siege.SiegeTier; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.handler.SiegeOrchestrator; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.MovingObjectPosition.MovingObjectType; -import net.minecraft.world.World; - -public class EntitySiegeDropship extends EntityThrowable { - - public int health = 20; - - public EntitySiegeDropship(World world) { - super(world); - this.health *= Math.pow((SiegeOrchestrator.level + 1), 2); - this.setSize(0.5F, 1F); - } - - public EntitySiegeDropship(World world, double x, double y, double z) { - super(world, x, y, z); - this.health *= Math.pow((SiegeOrchestrator.level + 1), 2); - this.setSize(0.5F, 1F); - } - - @Override - public boolean canBeCollidedWith() { - return true; - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(this.isEntityInvulnerable()) { - return false; - - } else { - - if(!this.isDead && !this.worldObj.isRemote) { - health -= amount; - - if(this.health <= 0) { - this.setDead(); - SiegeOrchestrator.levelCounter += SiegeOrchestrator.getTierAddDrop(worldObj); - - SiegeTier tier = SiegeTier.tiers[SiegeOrchestrator.level]; - if(tier == null) - tier = SiegeTier.DNT; - - for(ItemStack drop : tier.dropItem) { - this.entityDropItem(drop.copy(), 0F); - } - - ExplosionLarge.spawnParticles(worldObj, posX, posY + 1, posZ, 10); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 1F); - data.setFloat("g", 0F); - data.setFloat("b", 0F); - data.setFloat("scale", 20F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), - new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 100)); - } - } - - return true; - } - } - - @Override - public void onUpdate() { - - this.motionX = 0; - this.motionY = -0.5; - this.motionZ = 0; - - if(!worldObj.isRemote && this.ticksExisted % 2 == 0) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 0.1F); - data.setFloat("g", 0.75F); - data.setFloat("b", 1.0F); - data.setFloat("scale", 3F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), - new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 100)); - } - - super.onUpdate(); - } - - @Override - protected void onImpact(MovingObjectPosition mop) { - - if(mop.typeOfHit == MovingObjectType.BLOCK) { - this.setDead(); - - if(SiegeOrchestrator.enableBaseSpawning(worldObj)) { - worldObj.setBlock(mop.blockX, mop.blockY, mop.blockZ, ModBlocks.siege_shield); - } else if(SiegeOrchestrator.enableMobSpawning(worldObj)) { - SiegeOrchestrator.spawnRandomMob(worldObj, mop.blockX + 0.5, mop.blockY + 1, mop.blockZ + 0.5, null); - } - - ExplosionLarge.spawnParticles(worldObj, posX, posY + 1, posZ, 10); - } - } - - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setInteger("health", this.health); - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - - this.health = nbt.getInteger("health"); - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityTestMissile.java b/src/main/java/com/hbm/entity/missile/EntityTestMissile.java deleted file mode 100644 index e44151751..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityTestMissile.java +++ /dev/null @@ -1,275 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.calc.EasyLocation; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityTestMissile extends EntityThrowable { - - EasyLocation origin; - EasyLocation loc0; - EasyLocation loc1; - EasyLocation loc2; - EasyLocation loc3; - EasyLocation loc4; - EasyLocation loc5; - EasyLocation loc6; - EasyLocation loc7; - EasyLocation target; - - public int lengthX; - public int lengthZ; - public double lengthFlight; - public int baseHeight = 0; - public double missileSpeed = 3; - - public int phase = 0; - - public EntityTestMissile(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityTestMissile(World p_i1582_1_, int x, int z, double a, double b, double c) { - super(p_i1582_1_); - this.posX = a; - this.posY = b; - this.posZ = c; - - this.motionY = 0.1; - - lengthX = (int) (x - this.posX); - lengthZ = (int) (z - this.posZ); - lengthFlight = Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthZ, 2)); - - - origin = new EasyLocation(this.posX, this.posY, this.posZ); - - loc0 = new EasyLocation(this.posX, this.posY + baseHeight, this.posZ); - loc1 = new EasyLocation(this.posX + lengthX/lengthFlight * 10, this.posY + baseHeight + 20, this.posZ + lengthZ/lengthFlight * 10); - loc2 = new EasyLocation(this.posX + lengthX/lengthFlight * 30, this.posY + baseHeight + 40, this.posZ + lengthZ/lengthFlight * 30); - loc3 = new EasyLocation(this.posX + lengthX/lengthFlight * 50, this.posY + baseHeight + 50, this.posZ + lengthZ/lengthFlight * 50); - - loc4 = new EasyLocation(x - (lengthX/lengthFlight * 50), this.posY + baseHeight + 50, z - (lengthZ/lengthFlight * 50)); - loc5 = new EasyLocation(x - (lengthX/lengthFlight * 30), this.posY + baseHeight + 40, z - (lengthZ/lengthFlight * 30)); - loc6 = new EasyLocation(x - (lengthX/lengthFlight * 10), this.posY + baseHeight + 20, z - (lengthZ/lengthFlight * 10)); - loc7 = new EasyLocation(x, this.posY + baseHeight, z); - - - target = new EasyLocation(x, 0, z); - - /*this.worldObj.setBlock((int)loc0.posX, (int)loc0.posY, (int)loc0.posZ, Blocks.dirt); - this.worldObj.setBlock((int)loc1.posX, (int)loc1.posY, (int)loc1.posZ, Blocks.dirt); - this.worldObj.setBlock((int)loc2.posX, (int)loc2.posY, (int)loc2.posZ, Blocks.dirt); - this.worldObj.setBlock((int)loc3.posX, (int)loc3.posY, (int)loc3.posZ, Blocks.dirt); - this.worldObj.setBlock((int)loc4.posX, (int)loc4.posY, (int)loc4.posZ, Blocks.stone); - this.worldObj.setBlock((int)loc5.posX, (int)loc5.posY, (int)loc5.posZ, Blocks.stone); - this.worldObj.setBlock((int)loc6.posX, (int)loc6.posY, (int)loc6.posZ, Blocks.stone); - this.worldObj.setBlock((int)loc7.posX, (int)loc7.posY, (int)loc7.posZ, Blocks.stone);*/ - - /*System.out.print("\n" + loc0.posX + " " + loc0.posY + " " + loc0.posZ); - System.out.print("\n" + loc1.posX + " " + loc1.posY + " " + loc1.posZ); - System.out.print("\n" + loc2.posX + " " + loc2.posY + " " + loc2.posZ); - System.out.print("\n" + loc3.posX + " " + loc3.posY + " " + loc3.posZ); - System.out.print("\n"); - System.out.print("\n" + loc4.posX + " " + loc4.posY + " " + loc4.posZ); - System.out.print("\n" + loc5.posX + " " + loc5.posY + " " + loc5.posZ); - System.out.print("\n" + loc6.posX + " " + loc6.posY + " " + loc6.posZ); - System.out.print("\n" + loc7.posX + " " + loc7.posY + " " + loc7.posZ);*/ - } - - @Override - protected void entityInit() { - - } - - @Override - public void onUpdate() - { - //super.onUpdate(); - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - this.rotation(); - - switch(phase) - { - case 0: - if(loc0 != null) - { - freePizzaGoddammit(loc0); - if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX && - loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY && - loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ) - { - this.phase = 1; - } - } - break; - case 1: - if(loc1 != null) - { - freePizzaGoddammit(loc1); - if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX && - loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY && - loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ) - { - this.phase = 2; - } - } - break; - case 2: - if(loc2 != null) - { - freePizzaGoddammit(loc2); - if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX && - loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY && - loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ) - { - this.phase = 3; - } - } - break; - case 3: - if(loc3 != null) - { - freePizzaGoddammit(loc3); - if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX && - loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY && - loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ) - { - this.phase = 4; - } - } - break; - case 4: - if(loc4 != null) - { - freePizzaGoddammit(loc4); - if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX && - loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY && - loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ) - { - this.phase = 5; - } - } - break; - case 5: - if(loc5 != null) - { - freePizzaGoddammit(loc5); - if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX && - loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY && - loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ) - { - this.phase = 6; - } - } - break; - case 6: - if(loc6 != null) - { - freePizzaGoddammit(loc6); - if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX && - loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY && - loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ) - { - this.phase = 7; - } - } - break; - case 7: - if(loc7 != null) - { - freePizzaGoddammit(loc7); - if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX && - loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY && - loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ) - { - this.phase = 8; - } - } - break; - case 8: - if(target != null) - { - freePizzaGoddammit(target); - if(target.posX + 2 > this.posX && target.posX - 2 < this.posX && - target.posY + 2 > this.posY && target.posY - 2 < this.posY && - target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ) - { - this.phase = -1; - } - } - break; - } - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - if(!this.worldObj.isRemote) - { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5.0F, true); - } - this.setDead(); - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - } - - private void freePizzaGoddammit(EasyLocation loc) { - double x = loc.posX - this.posX; - double y = loc.posY - this.posY; - double z = loc.posZ - this.posZ; - lengthFlight = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2)); - - this.motionX = x / this.lengthFlight * missileSpeed; - this.motionY = y / this.lengthFlight * missileSpeed; - this.motionZ = z / this.lengthFlight * missileSpeed; - } - - private void rotation() { - /*EasyVector vec0 = new EasyVector(this.motionX, this.motionZ); - - EasyVector vec1 = new EasyVector(this.motionY, vec0.getResult()); - - this.rotationYaw = (float)Math.acos((vec0.a * 0 + vec0.b * 1) / (vec0.getResult() * 1)); - //this.rotationPitch = (float)Math.acos((vec0.a * vec1.a + vec0.b * vec1.b) / (vec0.getResult() * vec1.getResult())) * 10; - - this.rotationPitch = (float)Math.acos((vec0.a * vec1.a + vec0.b * vec1.b) / (vec0.getResult() * vec1.getResult())) * 100 - 90; - if(this.rotationPitch < 0) - this.rotationPitch += 180; - - System.out.print("\n" + this.rotationYaw); - System.out.print("\n" + this.rotationPitch);*/ - float f2; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - -} diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java b/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java index 3be14d073..e81b192dd 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperNuclear.java @@ -5,12 +5,13 @@ import java.util.List; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; @@ -64,7 +65,6 @@ public class EntityCreeperNuclear extends EntityCreeper { @Override protected void dropFewItems(boolean p_70628_1_, int p_70628_2_) { - super.dropFewItems(p_70628_1_, p_70628_2_); if(rand.nextInt(3) == 0) @@ -82,7 +82,7 @@ public class EntityCreeperNuclear extends EntityCreeper { } if(p_70645_1_.getEntity() instanceof EntitySkeleton || (p_70645_1_.isProjectile() && p_70645_1_.getEntity() instanceof EntityArrow && ((EntityArrow) (p_70645_1_.getEntity())).shootingEntity == null)) { - this.entityDropItem(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.STOCK), 1); + this.entityDropItem(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD), 1); } } @@ -120,7 +120,7 @@ public class EntityCreeperNuclear extends EntityCreeper { worldObj.playSoundEffect(posX, posY + 0.5, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); if(flag) { - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, 50, posX, posY, posZ).mute()); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, 50, posX, posY, posZ)); } else { ExplosionNukeGeneric.dealDamage(worldObj, posX, posY + 0.5, posZ, 100); } diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java b/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java index dc6015870..c3636fa8d 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java @@ -37,6 +37,7 @@ public class EntityCreeperPhosgene extends EntityCreeper { mist.setType(Fluids.PHOSGENE); mist.setPosition(posX, posY, posZ); mist.setArea(10, 5); + mist.setDuration(150); worldObj.spawnEntityInWorld(mist); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java b/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java index 7af12022a..beddf15e8 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java +++ b/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java @@ -1,7 +1,6 @@ package com.hbm.entity.mob; import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import api.hbm.entity.IRadiationImmune; @@ -18,160 +17,138 @@ import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityCyberCrab extends EntityMob implements IRangedAttackMob, IRadiationImmune { - - private static final IEntitySelector selector = new IEntitySelector() { + + private static final IEntitySelector selector = new IEntitySelector() { public boolean isEntityApplicable(Entity p_82704_1_) { return !(p_82704_1_ instanceof EntityCyberCrab || p_82704_1_ instanceof EntityCreeper); } }; - public EntityCyberCrab(World p_i1733_1_) - { - super(p_i1733_1_); - this.setSize(0.75F, 0.35F); - this.getNavigator().setAvoidsWater(true); - - if(!(this instanceof EntityTaintCrab)) - this.tasks.addTask(0, new EntityAIPanic(this, 0.75D)); - - this.tasks.addTask(1, new EntityAIWander(this, 0.5F)); - this.tasks.addTask(4, arrowAI()); - this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityLiving.class, 0, true, true, selector)); - } - - protected EntityAIArrowAttack arrowAI() { - return new EntityAIArrowAttack(this, 0.5D, 60, 80, 15.0F); - } + public EntityCyberCrab(World p_i1733_1_) { + super(p_i1733_1_); + this.setSize(0.75F, 0.35F); + this.getNavigator().setAvoidsWater(true); - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(4.0D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.75F); - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(ModDamageSource.getIsTau(source)) - return false; - - return super.attackEntityFrom(source, amount); + if(!(this instanceof EntityTaintCrab)) + this.tasks.addTask(0, new EntityAIPanic(this, 0.75D)); + + this.tasks.addTask(1, new EntityAIWander(this, 0.5F)); + this.tasks.addTask(4, arrowAI()); + this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityLiving.class, 0, true, true, selector)); } - /** - * Returns true if the newer Entity AI code should be run - */ - @Override - public boolean isAIEnabled() - { - return true; - } + protected EntityAIArrowAttack arrowAI() { + return new EntityAIArrowAttack(this, 0.5D, 60, 80, 15.0F); + } - /** - * The number of iterations PathFinder.getSafePoint will execute before giving up. - */ - @Override - public int getMaxSafePointTries() - { - return this.getAttackTarget() == null ? 3 : 3 + (int)(this.getHealth() - 1.0F); - } + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(4.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.75F); + } - @Override - protected void entityInit() - { - super.entityInit(); - } + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - super.writeEntityToNBT(p_70014_1_); - } + if(ModDamageSource.getIsTau(source)) + return false; - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - super.readEntityFromNBT(p_70037_1_); - } + return super.attackEntityFrom(source, amount); + } - /** - * Called to update the entity's position/logic. - */ - @Override - public void onUpdate() - { - super.onUpdate(); - - if(this.isInWater() || this.isWet() || this.isBurning()) - this.attackEntityFrom(DamageSource.generic, 10F); - - if(this.getHealth() <= 0) { - this.setDead(); + /** + * Returns true if the newer Entity AI code should be run + */ + @Override + public boolean isAIEnabled() { + return true; + } - if(this instanceof EntityTaintCrab) - worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 3F, false); - else - worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 0.1F, false); - } - } + /** + * The number of iterations PathFinder.getSafePoint will execute before + * giving up. + */ + @Override + public int getMaxSafePointTries() { + return this.getAttackTarget() == null ? 3 : 3 + (int) (this.getHealth() - 1.0F); + } - /** - * Returns the sound this mob makes when it is hurt. - */ - @Override - protected String getHurtSound() - { - return "hbm:entity.cybercrab"; - } + @Override + protected void entityInit() { + super.entityInit(); + } - /** - * Returns the sound this mob makes on death. - */ - @Override - protected String getDeathSound() - { - return "hbm:entity.cybercrab"; - } + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) { + super.writeEntityToNBT(p_70014_1_); + } - /** - * Called when the mob's health reaches 0. - */ - @Override - public void onDeath(DamageSource p_70645_1_) - { - super.onDeath(p_70645_1_); - } + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) { + super.readEntityFromNBT(p_70037_1_); + } - @Override - public boolean attackEntityAsMob(Entity p_70652_1_) - { - return true; - } + /** + * Called to update the entity's position/logic. + */ + @Override + public void onUpdate() { + super.onUpdate(); - @Override - protected Item getDropItem() - { - return ModItems.wire_gold; - } + if(this.isInWater() || this.isWet() || this.isBurning()) + this.attackEntityFrom(DamageSource.generic, 10F); - protected void dropRareDrop(int p_70600_1_) { - this.dropItem(ModItems.wire_magnetized_tungsten, 1); - } + if(this.getHealth() <= 0) { + this.setDead(); + + if(this instanceof EntityTaintCrab) + worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 3F, false); + else + worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 0.1F, false); + } + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return "hbm:entity.cybercrab"; + } + + /** + * Returns the sound this mob makes on death. + */ + @Override + protected String getDeathSound() { + return "hbm:entity.cybercrab"; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) { + super.onDeath(p_70645_1_); + } + + @Override + public boolean attackEntityAsMob(Entity p_70652_1_) { + return true; + } @Override public void attackEntityWithRangedAttack(EntityLivingBase entity, float f) { @@ -179,7 +156,7 @@ public class EntityCyberCrab extends EntityMob implements IRangedAttackMob, IRad bullet.setIsCritical(true); bullet.setTau(true); bullet.damage = 3; - this.worldObj.spawnEntityInWorld(bullet); - this.playSound("hbm:weapon.sawShoot", 1.0F, 2.0F); + this.worldObj.spawnEntityInWorld(bullet); + this.playSound("hbm:weapon.sawShoot", 1.0F, 2.0F); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityDummy.java b/src/main/java/com/hbm/entity/mob/EntityDummy.java new file mode 100644 index 000000000..cd64ff427 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityDummy.java @@ -0,0 +1,34 @@ +package com.hbm.entity.mob; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemArmor; +import net.minecraft.world.World; + +public class EntityDummy extends EntityLiving implements IAnimals { + + public EntityDummy(World world) { + super(world); + } + + @Override + public boolean interact(EntityPlayer player) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemArmor) { + ItemArmor armor = (ItemArmor) player.getHeldItem().getItem(); + this.setCurrentItemOrArmor(4 - armor.armorType, player.getHeldItem().copy()); + } + + return super.interact(player); + } + + @Override @SideOnly(Side.CLIENT) public boolean getAlwaysRenderNameTagForRender() { return true; } + @Override public String getCommandSenderName() { + return (int) (this.getHealth() * 10) / 10F + " / " + (int) (this.getMaxHealth() * 10) / 10F; } + //return (int) this.rotationYaw + " " + (int) this.renderYawOffset + " " + (int) this.rotationYawHead + " " + (int) this.newRotationYaw; } + + @Override protected void dropEquipment(boolean b, int i) { } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityFBI.java b/src/main/java/com/hbm/entity/mob/EntityFBI.java index ce51f5d25..346339226 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBI.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBI.java @@ -7,7 +7,6 @@ import java.util.Set; import com.hbm.blocks.ModBlocks; import com.hbm.config.MobConfig; import com.hbm.entity.mob.ai.EntityAIBreaking; -import com.hbm.entity.mob.ai.EntityAI_MLPF; import com.hbm.entity.pathfinder.PathFinderUtils; import com.hbm.entity.projectile.EntityBullet; import com.hbm.items.ModItems; @@ -98,8 +97,8 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { int equip = rand.nextInt(2); switch(equip) { - case 0: this.setCurrentItemOrArmor(0, new ItemStack(ModItems.gun_revolver_nopip)); break; - case 1: this.setCurrentItemOrArmor(0, new ItemStack(ModItems.gun_ks23)); break; + case 0: this.setCurrentItemOrArmor(0, new ItemStack(ModItems.gun_heavy_revolver)); break; + case 1: this.setCurrentItemOrArmor(0, new ItemStack(ModItems.gun_spas12)); break; } if(rand.nextInt(5) == 0) { @@ -144,14 +143,14 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { public void attackEntityWithRangedAttack(EntityLivingBase entity, float f) { if(this.getEquipmentInSlot(0) != null) { - if(this.getEquipmentInSlot(0).getItem() == ModItems.gun_revolver_nopip) { + if(this.getEquipmentInSlot(0).getItem() == ModItems.gun_heavy_revolver) { EntityBullet bullet = new EntityBullet(worldObj, this, entity, 3F, 2); bullet.damage = 10; this.worldObj.spawnEntityInWorld(bullet); this.playSound("hbm:weapon.revolverShootAlt", 1.0F, 1.0F); } - if(this.getEquipmentInSlot(0).getItem() == ModItems.gun_ks23) { + if(this.getEquipmentInSlot(0).getItem() == ModItems.gun_spas12) { for(int i = 0; i < 7; i++) { EntityBullet bullet = new EntityBullet(worldObj, this, entity, 3F, 5); bullet.damage = 3; @@ -170,7 +169,6 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { canDestroy.add(Blocks.trapdoor); canDestroy.add(ModBlocks.machine_press); canDestroy.add(ModBlocks.machine_epress); - canDestroy.add(ModBlocks.dummy_block_assembler); canDestroy.add(ModBlocks.machine_chemplant); canDestroy.add(ModBlocks.machine_crystallizer); canDestroy.add(ModBlocks.machine_turbine); @@ -178,7 +176,6 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { canDestroy.add(ModBlocks.crate_iron); canDestroy.add(ModBlocks.crate_steel); canDestroy.add(ModBlocks.machine_diesel); - canDestroy.add(ModBlocks.machine_selenium); canDestroy.add(ModBlocks.machine_rtg_grey); canDestroy.add(ModBlocks.machine_minirtg); canDestroy.add(ModBlocks.machine_powerrtg); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java deleted file mode 100644 index 775c7ea55..000000000 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ /dev/null @@ -1,228 +0,0 @@ -package com.hbm.entity.mob; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import com.hbm.entity.pathfinder.PathFinderUtils; -import com.hbm.main.ResourceManager; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EnumCreatureAttribute; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -public class EntityGlyphid extends EntityMob { - - public EntityGlyphid(World world) { - super(world); - /*this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); - this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(8, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));*/ - this.setSize(1.75F, 1F); - } - - public ResourceLocation getSkin() { - return ResourceManager.glyphid_tex; - } - - public double getScale() { - return 1.0D; - } - - @Override - protected void entityInit() { - super.entityInit(); - this.dataWatcher.addObject(16, new Byte((byte) 0)); //wall climbing - this.dataWatcher.addObject(17, new Byte((byte) 0b11111)); //armor - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(30D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); - } - - @Override - protected Entity findPlayerToAttack() { - EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 128.0D); - return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; - } - - @Override - protected void updateEntityActionState() { - super.updateEntityActionState(); - - // hell yeah!! - if(this.entityToAttack != null && !this.hasPath()) { - this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); - } - } - - @Override - protected boolean canDespawn() { - return entityToAttack == null; - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote) { - byte armor = this.dataWatcher.getWatchableObjectByte(17); - - if(armor != 0) { //if at least one bit of armor is present - - if(amount < getDamageThreshold()) return false; - - int chance = getArmorBreakChance(amount); //chances of armor being broken off - if(this.rand.nextInt(chance) == 0 && amount > 1) { - breakOffArmor(); - amount = 0; - } - - amount -= getDamageThreshold(); - if(amount < 0) return true; - } - - amount = this.calculateDamage(amount); - } - - return super.attackEntityFrom(source, amount); - } - - public int getArmorBreakChance(float amount) { - return amount < 10 ? 5 : amount < 20 ? 3 : 2; - } - - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor++; - } - } - - amount /= divisor; - - return amount; - } - - public float getDamageThreshold() { - return 0.5F; - } - - public void breakOffArmor() { - byte armor = this.dataWatcher.getWatchableObjectByte(17); - List indices = Arrays.asList(0, 1, 2, 3, 4); - Collections.shuffle(indices); - - for(Integer i : indices) { - byte bit = (byte) (1 << i); - if((armor & bit) > 0) { - armor &= ~bit; - armor = (byte) (armor & 0b11111); - this.dataWatcher.updateObject(17, armor); - worldObj.playSoundAtEntity(this, "mob.zombie.woodbreak", 1.0F, 1.25F); - break; - } - } - } - - @Override - public boolean attackEntityAsMob(Entity victum) { - if(this.isSwingInProgress) return false; - this.swingItem(); - return super.attackEntityAsMob(victum); - } - - @Override - public void onUpdate() { - super.onUpdate(); - - if(!this.worldObj.isRemote) { - this.setBesideClimbableBlock(this.isCollidedHorizontally); - - if(worldObj.getTotalWorldTime() % 200 == 0) { - this.swingItem(); - } - } - } - - @Override - protected void updateArmSwingProgress() { - int i = this.swingDuration(); - - if(this.isSwingInProgress) { - ++this.swingProgressInt; - - if(this.swingProgressInt >= i) { - this.swingProgressInt = 0; - this.isSwingInProgress = false; - } - } else { - this.swingProgressInt = 0; - } - - this.swingProgress = (float) this.swingProgressInt / (float) i; - } - - public int swingDuration() { - return 15; - } - - @Override - public void setInWeb() { } - - @Override - public boolean isOnLadder() { - return this.isBesideClimbableBlock(); - } - - public boolean isBesideClimbableBlock() { - return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; - } - - public void setBesideClimbableBlock(boolean climbable) { - byte watchable = this.dataWatcher.getWatchableObjectByte(16); - - if(climbable) { - watchable = (byte) (watchable | 1); - } else { - watchable &= -2; - } - - this.dataWatcher.updateObject(16, Byte.valueOf(watchable)); - } - - @Override - public EnumCreatureAttribute getCreatureAttribute() { - return EnumCreatureAttribute.ARTHROPOD; - } - - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setByte("armor", this.dataWatcher.getWatchableObjectByte(17)); - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.dataWatcher.updateObject(17, nbt.getByte("armor")); - } -} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java deleted file mode 100644 index bf3215059..000000000 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.hbm.entity.mob; - -import com.hbm.main.ResourceManager; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -public class EntityGlyphidBehemoth extends EntityGlyphid { - - public EntityGlyphidBehemoth(World world) { - super(world); - this.setSize(2.25F, 1.25F); - } - - @Override - public ResourceLocation getSkin() { - return ResourceManager.glyphid_behemoth_tex; - } - - @Override - public double getScale() { - return 1.5D; - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(25D); - } - - @Override - public int getArmorBreakChance(float amount) { - return amount < 20 ? 10 : amount < 100 ? 5 : amount > 200 ? 1 : 3; - } - - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 3; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 2.5F; - } -} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java deleted file mode 100644 index 5e922ab49..000000000 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hbm.entity.mob; - -import com.hbm.main.ResourceManager; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -public class EntityGlyphidBlaster extends EntityGlyphidBombardier { - - public EntityGlyphidBlaster(World world) { - super(world); - this.setSize(2F, 1.125F); - } - - @Override - public ResourceLocation getSkin() { - return ResourceManager.glyphid_blaster_tex; - } - - @Override - public double getScale() { - return 1.25D; - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(10D); - } - - @Override - public int getArmorBreakChance(float amount) { - return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; - } - - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 2; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 1.0F; - } - - @Override - public float getBombDamage() { - return 10F; - } - - @Override - public int getBombCount() { - return 20; - } - - @Override - public float getSpreadMult() { - return 0.75F; - } - - @Override - public double getV0() { - return 1.25D; - } -} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java deleted file mode 100644 index 61750f0ee..000000000 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.hbm.entity.mob; - -import com.hbm.entity.projectile.EntityAcidBomb; -import com.hbm.main.ResourceManager; - -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityGlyphidBombardier extends EntityGlyphid { - - public EntityGlyphidBombardier(World world) { - super(world); - } - - public ResourceLocation getSkin() { - return ResourceManager.glyphid_bombardier_tex; - } - - protected Entity lastTarget; - protected double lastX; - protected double lastY; - protected double lastZ; - - @Override - public void onUpdate() { - super.onUpdate(); - - if(!this.worldObj.isRemote) { - - Entity e = this.getEntityToAttack(); - - if(this.ticksExisted % 20 == 0 && e != null) { - this.lastTarget = e; - this.lastX = e.posX; - this.lastY = e.posY; - this.lastZ = e.posZ; - } - - if(this.ticksExisted % 20 == 1 && e != null) { - - boolean topAttack = rand.nextBoolean(); - - double velX = e.posX - lastX; - double velY = e.posY - lastY; - double velZ = e.posZ - lastZ; - - if(this.lastTarget != e || Vec3.createVectorHelper(velX, velY, velZ).lengthVector() > 30) { - velX = velY = velZ = 0; - } - - int prediction = topAttack ? 60 : 20; - Vec3 delta = Vec3.createVectorHelper(e.posX - posX + velX * prediction, (e.posY + e.height / 2) - (posY + 1) + velY * prediction, e.posZ - posZ + velZ * prediction); - double len = delta.lengthVector(); - if(len < 3) return; - double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); - - double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); - double y = delta.yCoord; - double v0 = getV0(); - double v02 = v0 * v0; - double g = 0.04D; - double upperLower = topAttack ? 1 : -1; - double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); - - if(!Double.isNaN(targetPitch)) { - - Vec3 fireVec = Vec3.createVectorHelper(v0, 0, 0); - fireVec.rotateAroundZ((float) -targetPitch); - fireVec.rotateAroundY((float) -(targetYaw + Math.PI * 0.5)); - - for(int i = 0; i < getBombCount(); i++) { - EntityAcidBomb bomb = new EntityAcidBomb(worldObj, posX, posY + 1, posZ); - bomb.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, i * getSpreadMult()); - bomb.damage = getBombDamage(); - worldObj.spawnEntityInWorld(bomb); - } - - this.swingItem(); - } - } - } - } - - public float getBombDamage() { - return 1.5F; - } - - public int getBombCount() { - return 10; - } - - public float getSpreadMult() { - return 1F; - } - - public double getV0() { - return 1D; - } -} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java deleted file mode 100644 index 749230a42..000000000 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.hbm.entity.mob; - -import com.hbm.main.ResourceManager; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -public class EntityGlyphidBrawler extends EntityGlyphid { - - public EntityGlyphidBrawler(World world) { - super(world); - this.setSize(2F, 1.125F); - } - - @Override - public ResourceLocation getSkin() { - return ResourceManager.glyphid_brawler_tex; - } - - @Override - public double getScale() { - return 1.25D; - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(10D); - } - - @Override - public int getArmorBreakChance(float amount) { - return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; - } - - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 2; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 1.0F; - } -} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java deleted file mode 100644 index bdce3e7bc..000000000 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.entity.mob; - -import com.hbm.main.ResourceManager; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -public class EntityGlyphidBrenda extends EntityGlyphid { - - public EntityGlyphidBrenda(World world) { - super(world); - this.setSize(2.5F, 1.75F); - this.isImmuneToFire = true; - } - - @Override - public ResourceLocation getSkin() { - return ResourceManager.glyphid_brenda_tex; - } - - @Override - public double getScale() { - return 2D; - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(250D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); - } - - @Override - public int getArmorBreakChance(float amount) { - return amount < 25 ? 100 : amount > 1000 ? 1 : 10; - } - - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 5; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 10F; - } - - @Override - public void setDead() { - if(!this.worldObj.isRemote && this.getHealth() <= 0.0F) { - for(int i = 0; i < 12; ++i) { - EntityGlyphid glyphid = new EntityGlyphid(worldObj); - glyphid.setLocationAndAngles(this.posX, this.posY + 0.5D, this.posZ, rand.nextFloat() * 360.0F, 0.0F); - glyphid.addPotionEffect(new PotionEffect(Potion.resistance.id, 5 * 60 * 20, 2)); - glyphid.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 5 * 60 * 20, 0)); - glyphid.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 5 * 60 * 20, 4)); - glyphid.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 5 * 60 * 20, 19)); - this.worldObj.spawnEntityInWorld(glyphid); - glyphid.moveEntity(rand.nextGaussian(), 0, rand.nextGaussian()); - } - } - - super.setDead(); - } -} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java deleted file mode 100644 index 62a3ae9a6..000000000 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hbm.entity.mob; - -import com.hbm.blocks.ModBlocks; -import com.hbm.explosion.vanillant.ExplosionVNT; -import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; -import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; -import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; -import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; -import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; -import com.hbm.main.MainRegistry; -import com.hbm.main.ResourceManager; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -public class EntityGlyphidNuclear extends EntityGlyphid { - - public int deathTicks; - - public EntityGlyphidNuclear(World world) { - super(world); - this.setSize(2.5F, 1.75F); - this.isImmuneToFire = true; - } - - @Override - public ResourceLocation getSkin() { - return ResourceManager.glyphid_nuclear_tex; - } - - @Override - public double getScale() { - return 2D; - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); - } - - @Override - public int getArmorBreakChance(float amount) { - return amount < 25 ? 100 : amount > 1000 ? 1 : 10; - } - - @Override - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor += 5; - } - } - - amount /= divisor; - - return amount; - } - - @Override - public float getDamageThreshold() { - return 10F; - } - - @Override - protected void onDeathUpdate() { - ++this.deathTicks; - - if(this.deathTicks == 100) { - - if(!worldObj.isRemote) { - ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); - vnt.setBlockAllocator(new BlockAllocatorStandard(24)); - vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); - vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F)); - vnt.setPlayerProcessor(new PlayerProcessorStandard()); - vnt.explode(); - - worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - // if the FX type is "muke", apply random BF effect - if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) { - data.setBoolean("balefire", true); - } - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); - } - - this.setDead(); - } else { - if(!worldObj.isRemote && this.deathTicks % 10 == 0) { - worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.fstbmbPing", 5.0F, 1.0F); - } - } - } -} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java deleted file mode 100644 index 181156e09..000000000 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.hbm.entity.mob; - -import com.hbm.blocks.ModBlocks; -import com.hbm.main.ResourceManager; -import com.hbm.world.feature.GlyphidHive; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityGlyphidScout extends EntityGlyphid { - - public boolean hasHome = false; - public double homeX; - public double homeY; - public double homeZ; - - public EntityGlyphidScout(World world) { - super(world); - this.setSize(1.25F, 0.75F); - } - - @Override - public float getDamageThreshold() { - return 0.0F; - } - - @Override - public ResourceLocation getSkin() { - return ResourceManager.glyphid_scout_tex; - } - - @Override - public double getScale() { - return 0.75D; - } - - @Override - public int getArmorBreakChance(float amount) { - return 1; - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(16D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.5D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2D); - } - - @Override - protected boolean canDespawn() { - return true; - } - - @Override - public void onUpdate() { - super.onUpdate(); - - if(!worldObj.isRemote) { - - if(!this.hasHome) { - this.homeX = posX; - this.homeY = posY; - this.homeZ = posZ; - this.hasHome = true; - } - - if(rand.nextInt(20) == 0) fleeingTick = 2; - - if(this.ticksExisted > 0 && this.ticksExisted % 1200 == 0 && Vec3.createVectorHelper(posX - homeX, posY - homeY, posZ - homeZ).lengthVector() > 8) { - - Block b = worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); - - int accuracy = 16; - for(int i = 0; i < accuracy; i++) { - float angle = (float) Math.toRadians(360D / accuracy * i); - Vec3 rot = Vec3.createVectorHelper(0, 0, 16); - rot.rotateAroundY(angle); - Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); - Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); - MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); - - if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { - - Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); - - if(block == ModBlocks.glyphid_base) { - return; - } - } - } - - if(b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { - this.setDead(); - worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); - GlyphidHive.generate(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand); - } - } - } - } - - @Override - protected void updateWanderPath() { - this.worldObj.theProfiler.startSection("stroll"); - boolean flag = false; - int pathX = -1; - int pathY = -1; - int pathZ = -1; - float maxWeight = -99999.0F; - - for(int l = 0; l < 5; ++l) { - int x = MathHelper.floor_double(this.posX + (double) this.rand.nextInt(25) - 12.0D); - int y = MathHelper.floor_double(this.posY + (double) this.rand.nextInt(11) - 5.0D); - int z = MathHelper.floor_double(this.posZ + (double) this.rand.nextInt(25) - 12.0D); - float weight = this.getBlockPathWeight(x, y, z); - - if(weight > maxWeight) { - maxWeight = weight; - pathX = x; - pathY = y; - pathZ = z; - flag = true; - } - } - - if(flag) { - this.setPathToEntity(this.worldObj.getEntityPathToXYZ(this, pathX, pathY, pathZ, 10.0F, true, false, false, true)); - } - - this.worldObj.theProfiler.endSection(); - } - - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setBoolean("hasHome", hasHome); - nbt.setDouble("homeX", homeX); - nbt.setDouble("homeY", homeY); - nbt.setDouble("homeZ", homeZ); - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.hasHome = nbt.getBoolean("hasHome"); - this.homeX = nbt.getDouble("homeX"); - this.homeY = nbt.getDouble("homeY"); - this.homeZ = nbt.getDouble("homeZ"); - } -} diff --git a/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java b/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java index 42d2856ee..cffaee494 100644 --- a/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java +++ b/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java @@ -5,8 +5,8 @@ import com.hbm.entity.projectile.EntityChopperMine; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import api.hbm.entity.IRadiationImmune; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -351,7 +351,6 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp this.dropItem(ModItems.combine_scrap, rand.nextInt(8) + 1); this.dropItem(ModItems.plate_combine_steel, rand.nextInt(5) + 1); - this.dropItem(ModItems.wire_magnetized_tungsten, rand.nextInt(3) + 1); } /** @@ -413,10 +412,8 @@ public class EntityHunterChopper extends EntityFlying implements IMob, IBossDisp if(i < 6) this.dropItem(ModItems.combine_scrap, 1); - else if(i > 7) - this.dropItem(ModItems.plate_combine_steel, 1); else - this.dropItem(ModItems.wire_magnetized_tungsten, 1); + this.dropItem(ModItems.plate_combine_steel, 1); } public void setIsDying(boolean b) { diff --git a/src/main/java/com/hbm/entity/mob/EntityMaskMan.java b/src/main/java/com/hbm/entity/mob/EntityMaskMan.java index 558b2ef21..f4814358d 100644 --- a/src/main/java/com/hbm/entity/mob/EntityMaskMan.java +++ b/src/main/java/com/hbm/entity/mob/EntityMaskMan.java @@ -126,7 +126,7 @@ public class EntityMaskMan extends EntityMob implements IBossDisplayData, IRadia this.entityDropItem(mask, 0F); this.dropItem(ModItems.coin_maskman, 1); - this.dropItem(ModItems.v1, 1); + this.dropItem(ModItems.bottled_cloud, 1); this.dropItem(Items.skull, 1); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java b/src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java new file mode 100644 index 000000000..40cc3b003 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java @@ -0,0 +1,49 @@ +package com.hbm.entity.mob; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.world.World; + +public class EntityParasiteMaggot extends EntityMob { + + public EntityParasiteMaggot(World world) { + super(world); + this.setSize(0.3F, 0.7F); + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.0D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2.0D); + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + protected Entity findPlayerToAttack() { + return this.worldObj.getClosestVulnerablePlayerToEntity(this, 16); + } + + @Override + public void onUpdate() { + this.renderYawOffset = this.rotationYaw; + super.onUpdate(); + } + + @Override + protected boolean isValidLightLevel() { + return true; + } + + @Override + public EnumCreatureAttribute getCreatureAttribute() { + return EnumCreatureAttribute.ARTHROPOD; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityPigeon.java b/src/main/java/com/hbm/entity/mob/EntityPigeon.java new file mode 100644 index 000000000..34e19c294 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityPigeon.java @@ -0,0 +1,226 @@ +package com.hbm.entity.mob; + +import java.util.function.Predicate; + +import com.hbm.entity.mob.ai.EntityAIEatBread; +import com.hbm.entity.mob.ai.EntityAIStartFlying; +import com.hbm.entity.mob.ai.EntityAIStopFlying; +import com.hbm.entity.mob.ai.EntityAISwimmingConditional; +import com.hbm.entity.mob.ai.EntityAIWanderConditional; +import com.hbm.items.tool.ItemFertilizer; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.FakePlayerFactory; + +public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAnimals { + + public float fallTime; + public float dest; + public float prevDest; + public float prevFallTime; + public float offGroundTimer = 1.0F; + + public EntityPigeon(World world) { + super(world); + Predicate noFlyCondition = x -> { return ((EntityPigeon) x).getFlyingState() == IFlyingCreature.STATE_WALKING; }; + this.tasks.addTask(0, new EntityAIStartFlying(this, this)); + this.tasks.addTask(0, new EntityAIStopFlying(this, this)); + this.tasks.addTask(1, new EntityAISwimmingConditional(this, noFlyCondition)); + this.tasks.addTask(2, new EntityAIEatBread(this, 0.4D)); + this.tasks.addTask(5, new EntityAIWanderConditional(this, 0.2D, noFlyCondition)); + this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + this.tasks.addTask(7, new EntityAILookIdle(this)); + this.setSize(0.5F, 1.0F); + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(amount >= this.getMaxHealth() * 2 && !worldObj.isRemote) { + this.setDead(); + + for(int i = 0; i < 10; i++) { + Vec3 vec = Vec3.createVectorHelper(rand.nextGaussian(), rand.nextGaussian(), rand.nextGaussian()).normalize(); + + EntityItem feather = new EntityItem(worldObj); + feather.setEntityItemStack(new ItemStack(Items.feather)); + feather.setPosition(posX + vec.xCoord, posY + height / 2D + vec.yCoord, posZ + vec.zCoord); + feather.motionX = vec.xCoord * 0.5; + feather.motionY = vec.yCoord * 0.5; + feather.motionZ = vec.zCoord * 0.5; + worldObj.spawnEntityInWorld(feather); + } + + return true; + } + + return super.attackEntityFrom(source, amount); + } + + @Override + public boolean isAIEnabled() { + return true; + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(12, Byte.valueOf((byte) 0)); + this.dataWatcher.addObject(13, Byte.valueOf((byte) 0)); + } + + @Override + protected Item getDropItem() { + return Items.feather; + } + + @Override + protected void func_145780_a(int x, int y, int z, Block block) { + this.playSound("mob.chicken.step", 0.15F, 1.0F); + } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + int j = this.rand.nextInt(3) + this.rand.nextInt(1 + looting); + + for(int k = 0; k < j; ++k) { + this.dropItem(Items.feather, 1); + } + + if(this.isBurning()) { + this.dropItem(Items.cooked_chicken, this.isFat() ? 3 : 1); + } else { + this.dropItem(Items.chicken, this.isFat() ? 3 : 1); + } + } + + @Override + public int getFlyingState() { + return this.dataWatcher.getWatchableObjectByte(12); + } + + @Override + public void setFlyingState(int state) { + this.dataWatcher.updateObject(12, (byte) state); + } + + public boolean isFat() { + return this.dataWatcher.getWatchableObjectByte(13) == 1; + } + + public void setFat(boolean fat) { + this.dataWatcher.updateObject(13, (byte) (fat ? 1 : 0)); + } + + protected String getLivingSound() { + return null; + } + + protected String getHurtSound() { + return null; + } + + protected String getDeathSound() { + return null; + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if(this.getFlyingState() == this.STATE_FLYING) { + int height = worldObj.getHeightValue((int) Math.floor(posX), (int) Math.floor(posZ)); + + boolean ceil = posY - height > 10; + + this.motionY = this.getRNG().nextGaussian() * 0.05 + (ceil ? 0 : 0.04) + (this.isInWater() ? 0.2 : 0); + + if(onGround) this.motionY = Math.abs(this.motionY) + 0.1D; + + this.moveForward = 1.5F; + if(this.getRNG().nextInt(20) == 0) this.rotationYaw += this.getRNG().nextGaussian() * 30; + + if(this.isFat() && this.getRNG().nextInt(50) == 0) { + + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "sweat"); + nbt.setInteger("count", 3); + nbt.setInteger("block", Block.getIdFromBlock(Blocks.wool)); + nbt.setInteger("entity", getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(dimension, posX, posY, posZ, 50)); + + int x = (int) Math.floor(posX); + int y = (int) Math.floor(posY) - 1; + int z = (int) Math.floor(posZ); + EntityPlayer player = FakePlayerFactory.getMinecraft((WorldServer)worldObj); + + for(int i = 0; i < 25; i++) { + + if(ItemFertilizer.fertilize(worldObj, x, y - i, z, player, true)) { + worldObj.playAuxSFX(2005, x, y - i, z, 0); + break; + } + } + + if(this.getRNG().nextInt(10) == 0) { + this.setFat(false); + } + } + + } else if(!this.onGround && this.motionY < 0.0D) { + this.motionY *= 0.8D; + } + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + this.prevFallTime = this.fallTime; + this.prevDest = this.dest; + this.dest = (float) ((double) this.dest + (double) (this.onGround ? -1 : 4) * 0.3D); + + if(this.dest < 0.0F) { + this.dest = 0.0F; + } + + if(this.dest > 1.0F) { + this.dest = 1.0F; + } + + if(!this.onGround && this.offGroundTimer < 1.0F) { + this.offGroundTimer = 1.0F; + } + + this.offGroundTimer = (float) ((double) this.offGroundTimer * 0.9D); + + if(!this.onGround && this.motionY < 0.0D) { + this.motionY *= 0.6D; + } + + this.fallTime += this.offGroundTimer * 2.0F; + } + + @Override public boolean doesEntityNotTriggerPressurePlate() { return true; } + @Override protected boolean canTriggerWalking() { return false; } + + @Override protected void fall(float p_70069_1_) { } + @Override protected void updateFallState(double p_70064_1_, boolean p_70064_3_) { } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java b/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java new file mode 100644 index 000000000..0c9ecaef4 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java @@ -0,0 +1,160 @@ +package com.hbm.entity.mob; + +import com.hbm.entity.item.EntityItemBuoyant; +import com.hbm.items.ModItems; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.passive.EntityWaterMob; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +/** + * Copy-pasted shit from the squid class + * Mojang-certified + * + * @author hbm + */ +public class EntityPlasticBag extends EntityWaterMob { + + public float rotation; + public float prevRotation; + private float randomMotionSpeed; + private float rotationVelocity; + private float randomMotionVecX; + private float randomMotionVecY; + private float randomMotionVecZ; + + public EntityPlasticBag(World world) { + super(world); + this.setSize(0.45F, 0.45F); + this.rotationVelocity = 1.0F / (this.rand.nextFloat() + 1.0F) * 0.2F; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(!worldObj.isRemote) { + this.setDead(); + this.dropItem(ModItems.plastic_bag, 1); + } + + return true; + } + + @Override + public EntityItem entityDropItem(ItemStack stack, float offset) { + if(stack.stackSize != 0 && stack.getItem() != null) { + EntityItemBuoyant entityitem = new EntityItemBuoyant(this.worldObj, this.posX, this.posY + (double) offset, this.posZ, stack); + entityitem.delayBeforeCanPickup = 10; + if(captureDrops) { + capturedDrops.add(entityitem); + } else { + this.worldObj.spawnEntityInWorld(entityitem); + } + return entityitem; + } else { + return null; + } + } + + @Override + protected String getLivingSound() { + return null; + } + + @Override + protected String getHurtSound() { + return null; + } + + @Override + protected String getDeathSound() { + return null; + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + public boolean isInWater() { + return this.worldObj.handleMaterialAcceleration(this.boundingBox.expand(0.0D, -0.6D, 0.0D), Material.water, this); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + this.prevRotation = this.rotation; + this.rotation += this.rotationVelocity; + + if(this.rotation > ((float) Math.PI * 2F)) { + this.rotation -= ((float) Math.PI * 2F); + + if(this.rand.nextInt(10) == 0) { + this.rotationVelocity = 1.0F / (this.rand.nextFloat() + 1.0F) * 0.2F; + } + } + + if(this.isInWater()) { + float f; + + if(this.rotation < (float) Math.PI) { + f = this.rotation / (float) Math.PI; + + if((double) f > 0.75D) { + this.randomMotionSpeed = 0.1F; + } + } else { + this.randomMotionSpeed *= 0.999F; + } + + if(!this.worldObj.isRemote) { + this.motionX = (double) (this.randomMotionVecX * this.randomMotionSpeed); + this.motionY = (double) (this.randomMotionVecY * this.randomMotionSpeed); + this.motionZ = (double) (this.randomMotionVecZ * this.randomMotionSpeed); + } + + f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.renderYawOffset += (-((float) Math.atan2(this.motionX, this.motionZ)) * 180.0F / (float) Math.PI - this.renderYawOffset) * 0.1F; + this.rotationYaw = this.renderYawOffset; + this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); + } else { + if(!this.worldObj.isRemote) { + this.motionX = 0.0D; + this.motionY -= 0.08D; + this.motionY *= 0.98D; + this.motionZ = 0.0D; + } + } + } + + @Override + public void moveEntityWithHeading(float forward, float strafe) { + this.moveEntity(this.motionX, this.motionY, this.motionZ); + } + + @Override + protected void updateEntityActionState() { + ++this.entityAge; + + if(this.entityAge > 100) { + this.randomMotionVecX = this.randomMotionVecY = this.randomMotionVecZ = 0.0F; + } else if(this.rand.nextInt(50) == 0 || !this.inWater || this.randomMotionVecX == 0.0F && this.randomMotionVecY == 0.0F && this.randomMotionVecZ == 0.0F) { + float f = this.rand.nextFloat() * (float) Math.PI * 2.0F; + this.randomMotionVecX = MathHelper.cos(f) * 0.2F; + this.randomMotionVecY = -0.1F + this.rand.nextFloat() * 0.2F; + this.randomMotionVecZ = MathHelper.sin(f) * 0.2F; + } + + this.despawnEntity(); + } + + @Override + public boolean getCanSpawnHere() { + return this.posY > 45.0D && this.posY < 63.0D && this.getRNG().nextInt(10) == 0 && super.getCanSpawnHere(); + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityQuackos.java b/src/main/java/com/hbm/entity/mob/EntityQuackos.java index e310ac8a5..31169e994 100644 --- a/src/main/java/com/hbm/entity/mob/EntityQuackos.java +++ b/src/main/java/com/hbm/entity/mob/EntityQuackos.java @@ -1,14 +1,17 @@ package com.hbm.entity.mob; -import com.hbm.entity.particle.EntityBSmokeFX; import com.hbm.items.ModItems; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.boss.IBossDisplayData; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.world.World; @@ -102,10 +105,13 @@ public class EntityQuackos extends EntityDuck implements IBossDisplayData { if(!worldObj.isRemote) { for(int i = 0; i < 150; i++) { - - EntityBSmokeFX fx = new EntityBSmokeFX(worldObj); - fx.setPositionAndRotation(posX + rand.nextDouble() * 20 - 10, posY + rand.nextDouble() * 25, posZ + rand.nextDouble() * 20 - 10, 0, 0); - worldObj.spawnEntityInWorld(fx); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bf"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, + posX + rand.nextDouble() * 20 - 10, + posY + rand.nextDouble() * 25, + posZ + rand.nextDouble() * 20 - 10), + new TargetPoint(dimension, posX, posY, posZ, 150)); } dropItem(ModItems.spawn_duck, 3); diff --git a/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java b/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java index 9c733ef12..b7f33cdd6 100644 --- a/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java +++ b/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java @@ -3,11 +3,11 @@ package com.hbm.entity.mob; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.items.weapon.sedna.factory.XFactory762mm; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.tileentity.machine.TileEntityTesla; @@ -28,51 +28,47 @@ public class EntityTaintCrab extends EntityCyberCrab { public EntityTaintCrab(World p_i1733_1_) { super(p_i1733_1_); - this.setSize(1.25F, 1.25F); - this.ignoreFrustumCheck = true; + this.setSize(1.25F, 1.25F); + this.ignoreFrustumCheck = true; } - - protected EntityAIArrowAttack arrowAI() { - return new EntityAIArrowAttack(this, 0.5D, 5, 5, 50.0F); - } - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(25.0D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5F); - } - - public void onLivingUpdate() { - - targets = TileEntityTesla.zap(worldObj, posX, posY + 1.25, posZ, 10, this); + protected EntityAIArrowAttack arrowAI() { + return new EntityAIArrowAttack(this, 0.5D, 5, 5, 50.0F); + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(25.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5F); + } + + public void onLivingUpdate() { + + targets = TileEntityTesla.zap(worldObj, posX, posY + 1.25, posZ, 10, this); List targets = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(posX - 5, posY - 5, posZ - 5, posX + 5, posY + 5, posZ + 5)); for(EntityLivingBase e : targets) { - - if(!(e instanceof EntityCyberCrab)) - e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 10, 15)); + if(!(e instanceof EntityCyberCrab)) e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 10, 15)); } - - super.onLivingUpdate(); - } - @Override - protected Item getDropItem() - { - return ModItems.coil_advanced_alloy; - } + super.onLivingUpdate(); + } - protected void dropRareDrop(int p_70600_1_) { - this.dropItem(ModItems.coil_magnetized_tungsten, 1); - } + @Override + protected Item getDropItem() { + return ModItems.coil_advanced_alloy; + } + + protected void dropRareDrop(int p_70600_1_) { + this.dropItem(ModItems.coil_magnetized_tungsten, 1); + } @Override public void attackEntityWithRangedAttack(EntityLivingBase entity, float f) { - EntityBulletBase bullet = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.BMG50_STAR, this); + EntityBulletBaseMK4 bullet = new EntityBulletBaseMK4(this, XFactory762mm.r762_fmj, 10F, 0F, 0F, 0F, 0F); Vec3 motion = Vec3.createVectorHelper(posX - entity.posX, posY - entity.posZ - entity.height / 2, posZ - entity.posZ); motion = motion.normalize(); NBTTagCompound data = new NBTTagCompound(); @@ -82,7 +78,7 @@ public class EntityTaintCrab extends EntityCyberCrab { data.setDouble("mY", bullet.motionY * 0.3); data.setDouble("mZ", bullet.motionZ * 0.3); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(this.dimension, posX, posY, posZ, 50)); - this.worldObj.spawnEntityInWorld(bullet); - this.playSound("hbm:weapon.sawShoot", 1.0F, 0.5F); + this.worldObj.spawnEntityInWorld(bullet); + this.playSound("hbm:weapon.sawShoot", 1.0F, 0.5F); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityTeslaCrab.java b/src/main/java/com/hbm/entity/mob/EntityTeslaCrab.java index 0ed0f7c39..3686dd92d 100644 --- a/src/main/java/com/hbm/entity/mob/EntityTeslaCrab.java +++ b/src/main/java/com/hbm/entity/mob/EntityTeslaCrab.java @@ -7,7 +7,6 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityTesla; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.item.Item; import net.minecraft.world.World; public class EntityTeslaCrab extends EntityCyberCrab { @@ -35,12 +34,6 @@ public class EntityTeslaCrab extends EntityCyberCrab { super.onLivingUpdate(); } - @Override - protected Item getDropItem() - { - return ModItems.wire_advanced_alloy; - } - protected void dropRareDrop(int p_70600_1_) { this.dropItem(ModItems.coil_copper, 1); } diff --git a/src/main/java/com/hbm/entity/mob/EntityUFO.java b/src/main/java/com/hbm/entity/mob/EntityUFO.java index 95e03d499..f30a84f93 100644 --- a/src/main/java/com/hbm/entity/mob/EntityUFO.java +++ b/src/main/java/com/hbm/entity/mob/EntityUFO.java @@ -3,14 +3,14 @@ package com.hbm.entity.mob; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; @@ -326,8 +326,8 @@ public class EntityUFO extends EntityFlying implements IMob, IBossDisplayData, I Vec3 heading = Vec3.createVectorHelper(e.posX - pivotX, e.posY + e.height / 2 - pivotY, e.posZ - pivotZ); heading = heading.normalize(); - EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_LASER); - bullet.shooter = this; + EntityBulletBaseNT bullet = new EntityBulletBaseNT(this.worldObj, BulletConfigSyncingUtil.WORM_LASER); + bullet.setThrower(this); bullet.setPosition(pivotX, pivotY, pivotZ); bullet.setThrowableHeading(heading.xCoord, heading.yCoord, heading.zCoord, 2F, 0.02F); this.worldObj.spawnEntityInWorld(bullet); @@ -339,8 +339,8 @@ public class EntityUFO extends EntityFlying implements IMob, IBossDisplayData, I Vec3 heading = Vec3.createVectorHelper(e.posX - this.posX, e.posY + e.height / 2 - posY - 0.5D, e.posZ - this.posZ); heading = heading.normalize(); - EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.UFO_ROCKET); - bullet.shooter = this; + EntityBulletBaseNT bullet = new EntityBulletBaseNT(this.worldObj, BulletConfigSyncingUtil.UFO_ROCKET); + bullet.setThrower(this); bullet.setPosition(this.posX, this.posY - 0.5D, this.posZ); bullet.setThrowableHeading(heading.xCoord, heading.yCoord, heading.zCoord, 2F, 0.02F); bullet.getEntityData().setInteger("homingTarget", e.getEntityId()); @@ -350,7 +350,7 @@ public class EntityUFO extends EntityFlying implements IMob, IBossDisplayData, I @Override public boolean canAttackClass(Class clazz) { - return clazz != this.getClass() && clazz != EntityBulletBase.class; + return clazz != this.getClass() && clazz != EntityBulletBaseNT.class; } @Override diff --git a/src/main/java/com/hbm/entity/mob/IFlyingCreature.java b/src/main/java/com/hbm/entity/mob/IFlyingCreature.java new file mode 100644 index 000000000..68bd8c36c --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/IFlyingCreature.java @@ -0,0 +1,10 @@ +package com.hbm.entity.mob; + +public interface IFlyingCreature { + + public static final int STATE_WALKING = 0; + public static final int STATE_FLYING = 1; + + public int getFlyingState(); + public void setFlyingState(int state); +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java new file mode 100644 index 000000000..491179711 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java @@ -0,0 +1,71 @@ +package com.hbm.entity.mob.ai; + +import java.util.List; + +import com.hbm.entity.mob.EntityPigeon; + +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class EntityAIEatBread extends EntityAIBase { + + private EntityPigeon pigeon; + private double speed; + private EntityItem item; + + public EntityAIEatBread(EntityPigeon pigeon, double speed) { + this.pigeon = pigeon; + this.speed = speed; + this.setMutexBits(3); + } + + @Override + public boolean shouldExecute() { + if(pigeon.isFat() || pigeon.getFlyingState() != pigeon.STATE_WALKING) return false; + + List items = pigeon.worldObj.getEntitiesWithinAABB(EntityItem.class, this.pigeon.boundingBox.expand(10, 10, 10)); + + for(EntityItem item : items) { + if(item.getEntityItem().getItem() == Items.bread) { + this.item = item; + return true; + } + } + + return false; + } + + @Override + public boolean continueExecuting() { + return this.item != null && !this.item.isDead && this.shouldExecute(); + } + + @Override + public void updateTask() { + this.pigeon.getLookHelper().setLookPositionWithEntity(this.item, 30.0F, (float) this.pigeon.getVerticalFaceSpeed()); + + if(this.pigeon.getDistanceToEntity(this.item) > 1) { + this.pigeon.getNavigator().tryMoveToEntityLiving(this.item, this.speed); + } else { + + if(this.pigeon.getRNG().nextInt(3) == 0) { + ItemStack stack = this.item.getEntityItem(); + + if(stack.stackSize > 1) { + stack.stackSize--; + EntityItem newItem = new EntityItem(this.pigeon.worldObj); + newItem.setPosition(this.item.posX, this.item.posY, this.item.posZ); + newItem.setEntityItemStack(stack); + this.pigeon.worldObj.spawnEntityInWorld(newItem); + } + + this.item.setDead(); + } + this.pigeon.setFat(true); + this.pigeon.playSound("random.eat", 0.5F + 0.5F * this.pigeon.getRNG().nextInt(2), (this.pigeon.getRNG().nextFloat() - this.pigeon.getRNG().nextFloat()) * 0.2F + 1.0F); + } + } + +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIFireGun.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIFireGun.java new file mode 100644 index 000000000..1ba8c4eb6 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIFireGun.java @@ -0,0 +1,136 @@ +package com.hbm.entity.mob.ai; + +import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; + +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.item.ItemStack; + +public class EntityAIFireGun extends EntityAIBase { + + private final EntityLiving host; + + private double attackMoveSpeed = 1.0D; // how fast we move while in this state + private double maxRange = 20; // how far our target can be before we stop shooting + private int burstTime = 10; // maximum number of ticks in a burst (for automatic weapons) + private int minWait = 10; // minimum number of ticks to wait between bursts/shots + private int maxWait = 40; // maximum number of ticks to wait between bursts/shots + private float inaccuracy = 30; // how many degrees of inaccuracy does the AI have + + // state timers + private int attackTimer = 0; + private FireState state = FireState.IDLE; + private int stateTimer = 0; + + private static enum FireState { + IDLE, + WAIT, + FIRING, + RELOADING, + } + + public EntityAIFireGun(EntityLiving host) { + this.host = host; + } + + @Override + public boolean shouldExecute() { + return host.getAttackTarget() != null && getYerGun() != null; + } + + @Override + public void updateTask() { + EntityLivingBase target = host.getAttackTarget(); + ItemStack stack = host.getHeldItem(); + ItemGunBaseNT gun = getYerGun(); + + gun.onUpdate(stack, host.worldObj, host, 0, true); + + double distanceToTargetSquared = host.getDistanceSq(target.posX, target.posY, target.posZ); + boolean canSeeTarget = host.getEntitySenses().canSee(target); + + if(canSeeTarget) { + attackTimer++; + } else { + attackTimer = 0; + } + + if(distanceToTargetSquared < maxRange * maxRange && attackTimer > 20) { + host.getNavigator().clearPathEntity(); + } else { + host.getNavigator().tryMoveToEntityLiving(target, attackMoveSpeed); + } + + host.getLookHelper().setLookPositionWithEntity(target, 30.0F, 30.0F); + + stateTimer--; + if(stateTimer < 0) { + stateTimer = 0; + + if(state == FireState.WAIT) { + updateState(FireState.IDLE, 0, gun, stack); + } else if(state != FireState.IDLE) { + updateState(FireState.WAIT, host.worldObj.rand.nextInt(maxWait - minWait) + minWait, gun, stack); + } + } else if(state == FireState.FIRING) { + // Keep the trigger held throughout the duration of firing + updateKeybind(gun, stack, EnumKeybind.GUN_PRIMARY); + } + + if(canSeeTarget && distanceToTargetSquared < maxRange * maxRange) { + if(state == FireState.IDLE) { + GunConfig config = gun.getConfig(stack, 0); + Receiver rec = config.getReceivers(stack)[0]; + if(rec.getMagazine(stack).getAmount(stack, null) <= 0) { + updateState(FireState.RELOADING, 20, gun, stack); + } else if(ItemGunBaseNT.getState(stack, 0) == GunState.IDLE) { + updateState(FireState.FIRING, host.worldObj.rand.nextInt(burstTime), gun, stack); + } + } + } + } + + private void updateState(FireState toState, int time, ItemGunBaseNT gun, ItemStack stack) { + state = toState; + stateTimer = time; + + switch(state) { + case FIRING: updateKeybind(gun, stack, EnumKeybind.GUN_PRIMARY); + case RELOADING: updateKeybind(gun, stack, EnumKeybind.RELOAD); + default: clearKeybinds(gun, stack); break; + } + } + + private void clearKeybinds(ItemGunBaseNT gun, ItemStack stack) { + updateKeybind(gun, stack, null); + } + + private void updateKeybind(ItemGunBaseNT gun, ItemStack stack, EnumKeybind bind) { + // Turn body to face firing direction, since the gun is attached to that, not the head + // Also apply accuracy debuff just before firing + if(bind != null && bind != EnumKeybind.RELOAD) { + host.rotationYawHead += (host.worldObj.rand.nextFloat() - 0.5F) * inaccuracy; + host.rotationPitch += (host.worldObj.rand.nextFloat() - 0.5F) * inaccuracy; + host.rotationYaw = host.rotationYawHead; + } + + gun.handleKeybind(host, null, stack, EnumKeybind.GUN_PRIMARY, bind == EnumKeybind.GUN_PRIMARY); + gun.handleKeybind(host, null, stack, EnumKeybind.GUN_SECONDARY, bind == EnumKeybind.GUN_SECONDARY); + gun.handleKeybind(host, null, stack, EnumKeybind.GUN_TERTIARY, bind == EnumKeybind.GUN_TERTIARY); + gun.handleKeybind(host, null, stack, EnumKeybind.RELOAD, bind == EnumKeybind.RELOAD); + } + + public ItemGunBaseNT getYerGun() { + ItemStack stack = host.getHeldItem(); + + if(stack == null || !(stack.getItem() instanceof ItemGunBaseNT)) return null; + + return (ItemGunBaseNT) stack.getItem(); + } + +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java index 058f9211c..06ff8e598 100644 --- a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java @@ -93,7 +93,6 @@ public class EntityAIMaskmanCasualApproach extends EntityAIBase { EntityLivingBase entitylivingbase = this.attacker.getAttackTarget(); this.attacker.getLookHelper().setLookPositionWithEntity(entitylivingbase, 30.0F, 30.0F); double d0 = this.attacker.getDistanceSq(entitylivingbase.posX, entitylivingbase.boundingBox.minY, entitylivingbase.posZ); - double d1 = (double) (this.attacker.width * 2.0F * this.attacker.width * 2.0F + entitylivingbase.width); this.pathTimer--; diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanLasergun.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanLasergun.java index a298ce331..e6abf7d7b 100644 --- a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanLasergun.java +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanLasergun.java @@ -1,6 +1,6 @@ package com.hbm.entity.mob.ai; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import net.minecraft.entity.EntityCreature; @@ -52,7 +52,7 @@ public class EntityAIMaskmanLasergun extends EntityAIBase { switch(attack) { case ORB: - EntityBulletBase orb = new EntityBulletBase(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_ORB, owner, target, 2.0F, 0); + EntityBulletBaseNT orb = new EntityBulletBaseNT(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_ORB, owner, target, 2.0F, 0); orb.motionY += 0.5D; owner.worldObj.spawnEntityInWorld(orb); @@ -60,7 +60,7 @@ public class EntityAIMaskmanLasergun extends EntityAIBase { break; case MISSILE: - EntityBulletBase missile = new EntityBulletBase(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_ROCKET, owner, target, 1.0F, 0); + EntityBulletBaseNT missile = new EntityBulletBaseNT(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_ROCKET, owner, target, 1.0F, 0); Vec3 vec = Vec3.createVectorHelper(target.posX - owner.posX, 0, target.posZ - owner.posZ); missile.motionX = vec.xCoord * 0.05D; missile.motionY = 0.5D + owner.getRNG().nextDouble() * 0.5D; @@ -73,7 +73,7 @@ public class EntityAIMaskmanLasergun extends EntityAIBase { case SPLASH: for(int i = 0; i < 5; i++) { - EntityBulletBase tracer = new EntityBulletBase(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_TRACER, owner, target, 1.0F, 0.05F); + EntityBulletBaseNT tracer = new EntityBulletBaseNT(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_TRACER, owner, target, 1.0F, 0.05F); owner.worldObj.spawnEntityInWorld(tracer); } break; diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanMinigun.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanMinigun.java index e56037204..c794a1d3b 100644 --- a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanMinigun.java +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanMinigun.java @@ -1,6 +1,6 @@ package com.hbm.entity.mob.ai; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import net.minecraft.entity.EntityCreature; @@ -49,7 +49,7 @@ public class EntityAIMaskmanMinigun extends EntityAIBase { if(timer <= 0) { timer = delay; - EntityBulletBase bullet = new EntityBulletBase(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_BULLET, owner, target, 1.0F, 0); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_BULLET, owner, target, 1.0F, 0); owner.worldObj.spawnEntityInWorld(bullet); owner.playSound("hbm:weapon.calShoot", 1.0F, 1.0F); } diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java new file mode 100644 index 000000000..71fa26e4d --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java @@ -0,0 +1,56 @@ +package com.hbm.entity.mob.ai; + +import java.util.function.Predicate; + +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.ai.RandomPositionGenerator; +import net.minecraft.util.Vec3; + +public class EntityAIPanicConditional extends EntityAIBase { + + private EntityCreature creature; + private double speed; + private Predicate condition; + private double randPosX; + private double randPosY; + private double randPosZ; + + public EntityAIPanicConditional(EntityCreature creature, double speed, Predicate condition) { + this.creature = creature; + this.speed = speed; + this.condition = condition; + this.setMutexBits(1); + } + + @Override + public boolean shouldExecute() { + + if(!condition.test(creature)) return false; + + if(this.creature.getAITarget() == null && !this.creature.isBurning()) { + return false; + } else { + Vec3 vec3 = RandomPositionGenerator.findRandomTarget(this.creature, 5, 4); + + if(vec3 == null) { + return false; + } else { + this.randPosX = vec3.xCoord; + this.randPosY = vec3.yCoord; + this.randPosZ = vec3.zCoord; + return true; + } + } + } + + @Override + public void startExecuting() { + this.creature.getNavigator().tryMoveToXYZ(this.randPosX, this.randPosY, this.randPosZ, this.speed); + } + + @Override + public boolean continueExecuting() { + return !this.creature.getNavigator().noPath() && condition.test(creature); + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java new file mode 100644 index 000000000..2f8ffa66c --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java @@ -0,0 +1,28 @@ +package com.hbm.entity.mob.ai; + +import com.hbm.entity.mob.IFlyingCreature; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIBase; + +public class EntityAIStartFlying extends EntityAIBase { + + private EntityLivingBase living; + private IFlyingCreature flying; + + public EntityAIStartFlying(EntityLivingBase living, IFlyingCreature flying) { + this.living = living; + this.flying = flying; + } + + @Override + public boolean shouldExecute() { + //take off if attacked, on fire or at random (avg 30s) + return this.flying.getFlyingState() == this.flying.STATE_WALKING && (this.living.getAITarget() != null || this.living.isBurning() || this.living.getRNG().nextInt(600) == 0); + } + + @Override + public void startExecuting() { + this.flying.setFlyingState(this.flying.STATE_FLYING); + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java new file mode 100644 index 000000000..6f8dadee5 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java @@ -0,0 +1,27 @@ +package com.hbm.entity.mob.ai; + +import com.hbm.entity.mob.IFlyingCreature; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIBase; + +public class EntityAIStopFlying extends EntityAIBase { + + private EntityLivingBase living; + private IFlyingCreature flying; + + public EntityAIStopFlying(EntityLivingBase living, IFlyingCreature flying) { + this.living = living; + this.flying = flying; + } + + @Override + public boolean shouldExecute() { + return this.flying.getFlyingState() == this.flying.STATE_FLYING && this.living.getRNG().nextInt(200) == 0; + } + + @Override + public void startExecuting() { + this.flying.setFlyingState(this.flying.STATE_WALKING); + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java b/src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java new file mode 100644 index 000000000..1f2e3c18a --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java @@ -0,0 +1,36 @@ +package com.hbm.entity.mob.ai; + +import java.util.function.Predicate; + +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIBase; + +/** + * Identical to EntityAISwimming, but with an added conditional lambda for maximum reusability. + * + * @author hbm + */ +public class EntityAISwimmingConditional extends EntityAIBase { + + private EntityLiving living; + private Predicate condition; + + public EntityAISwimmingConditional(EntityLiving living, Predicate condition) { + this.living = living; + this.condition = condition; + this.setMutexBits(4); + living.getNavigator().setCanSwim(true); + } + + @Override + public boolean shouldExecute() { + return (this.living.isInWater() || this.living.handleLavaMovement()) && condition.test(living); + } + + @Override + public void updateTask() { + if(this.living.getRNG().nextFloat() < 0.8F) { + this.living.getJumpHelper().setJumping(); + } + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java new file mode 100644 index 000000000..6132468eb --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java @@ -0,0 +1,58 @@ +package com.hbm.entity.mob.ai; + +import java.util.function.Predicate; + +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.ai.RandomPositionGenerator; +import net.minecraft.util.Vec3; + +public class EntityAIWanderConditional extends EntityAIBase { + + private EntityCreature creature; + private double speed; + private Predicate condition; + private double xPosition; + private double yPosition; + private double zPosition; + + public EntityAIWanderConditional(EntityCreature creature, double speed, Predicate condition) { + this.creature = creature; + this.speed = speed; + this.condition = condition; + this.setMutexBits(1); + } + + @Override + public boolean shouldExecute() { + + if(!condition.test(creature)) return false; + + if(this.creature.getAge() >= 100) { + return false; + } else if(this.creature.getRNG().nextInt(120) != 0) { + return false; + } else { + Vec3 vec3 = RandomPositionGenerator.findRandomTarget(this.creature, 10, 7); + + if(vec3 == null) { + return false; + } else { + this.xPosition = vec3.xCoord; + this.yPosition = vec3.yCoord; + this.zPosition = vec3.zCoord; + return true; + } + } + } + + @Override + public boolean continueExecuting() { + return !this.creature.getNavigator().noPath() && condition.test(creature); + } + + @Override + public void startExecuting() { + this.creature.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed); + } +} diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java index 1aedbd326..2ec6a830e 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java @@ -1,6 +1,6 @@ package com.hbm.entity.mob.botprime; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import api.hbm.entity.IRadiationImmune; @@ -80,14 +80,14 @@ public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRa for(int i = 0; i < 5; i++) { - EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_LASER, this, living, 1.0F, i * 0.05F); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(this.worldObj, BulletConfigSyncingUtil.WORM_LASER, this, living, 1.0F, i * 0.05F); this.worldObj.spawnEntityInWorld(bullet); } this.playSound("hbm:weapon.ballsLaser", 5.0F, 0.75F); } else { - EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_BOLT, this, living, 0.5F, 0.125F); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(this.worldObj, BulletConfigSyncingUtil.WORM_BOLT, this, living, 0.5F, 0.125F); this.worldObj.spawnEntityInWorld(bullet); this.playSound("hbm:weapon.ballsLaser", 5.0F, 1.0F); } diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java new file mode 100644 index 000000000..00162795a --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java @@ -0,0 +1,663 @@ +package com.hbm.entity.mob.glyphid; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Locale; + +import com.hbm.blocks.ModBlocks; +import com.hbm.config.MobConfig; +import com.hbm.entity.logic.EntityWaypoint; +import com.hbm.entity.mob.EntityParasiteMaggot; +import com.hbm.entity.mob.glyphid.GlyphidStats.StatBundle; +import com.hbm.entity.pathfinder.PathFinderUtils; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.*; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.items.ModItems; +import com.hbm.lib.ModDamageSource; +import com.hbm.main.ResourceManager; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import api.hbm.entity.IResistanceProvider; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +import net.minecraft.util.*; + +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.EnumDifficulty; +import net.minecraft.world.World; + +import javax.annotation.Nullable; + +public class EntityGlyphid extends EntityMob implements IResistanceProvider { + + //I might have overdone it a little bit + + public boolean hasHome = false; + public int homeX; + public int homeY; + public int homeZ; + protected int currentTask = 0; + + //both of those below are used for digging, so the glyphid remembers what it was doing + protected int previousTask; + protected EntityWaypoint previousWaypoint; + public int taskX; + public int taskY; + public int taskZ; + + //used for digging, bigger glyphids have a longer reach + public int blastSize = Math.min((int) (3 * (getScale())) / 2, 5); + public int blastResToDig = Math.min((int) (50 * (getScale() * 2)), 150); + public boolean shouldDig; + + // Tasks + + /** Idle state, only makes glpyhids wander around randomly */ + public static final int TASK_IDLE = 0; + /** Causes the glyphid to walk to the waypoint, then communicate the FOLLOW task to nearby glyphids */ + public static final int TASK_RETREAT_FOR_REINFORCEMENTS = 1; + /** Task used by scouts, if the waypoint is reached it will construct a new hive */ + public static final int TASK_BUILD_HIVE = 2; + /** Creates a waypoint at the home position and then immediately initiates the RETREAT_FOR_REINFORCEMENTS task */ + public static final int TASK_INITIATE_RETREAT = 3; + /** Will simply walk to the waypoint and enter IDLE once it is reached */ + public static final int TASK_FOLLOW = 4; + /** Causes nuclear glyphids to immediately self-destruct, also signaling nearby scouts to retreat */ + public static final int TASK_TERRAFORM = 5; + /** If any task other than IDLE is interrupted by an obstacle, initiates digging behavior which is also communicated to nearby glyohids */ + public static final int TASK_DIG = 6; + + protected boolean hasWaypoint = false; + /** Yeah, fuck, whatever, anything goes now */ + protected EntityWaypoint taskWaypoint = null; + + //subtypes + public static final int TYPE_NORMAL = 0; + public static final int TYPE_INFECTED = 1; + public static final int TYPE_RADIOACTIVE = 2; + + //data watcher keys + public static final int DW_WALL = 16; + public static final int DW_ARMOR = 17; + public static final int DW_SUBTYPE = 18; + + public EntityGlyphid(World world) { + super(world); + this.setSize(1.75F, 1F); + } + + public ResourceLocation getSkin() { + return ResourceManager.glyphid_tex; + } + + public double getScale() { + return 1.0D; + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(DW_WALL, new Byte((byte) 0)); //wall climbing + this.dataWatcher.addObject(DW_ARMOR, new Byte((byte) 0b11111)); //armor + this.dataWatcher.addObject(DW_SUBTYPE, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc) + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + int variant = this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getGrunt().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getGrunt().speed * (variant == TYPE_RADIOACTIVE ? 2D : 1D)); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getGrunt().damage * (variant == TYPE_RADIOACTIVE ? 5D : 1D)); + } + + public StatBundle getStats() { + return GlyphidStats.getStats().statsGrunt; + } + + @Override + public float[] getCurrentDTDR(DamageSource damage, float amount, float pierceDT, float pierce) { + if(damage.isDamageAbsolute() || damage.isUnblockable()) return new float[] {0F, 0F}; + StatBundle stats = this.getStats(); + float threshold = stats.thresholdMultForArmor * getGlyphidArmor() / 5F; + + if(damage == ModDamageSource.nuclearBlast) return new float[] {threshold * 0.25F, 0F}; // nukes shred shrough glyphids + if(damage.damageType.equals(DamageClass.LASER.name().toLowerCase(Locale.US))) return new float[] {threshold * 0.5F, stats.resistanceMult * 0.5F}; //lasers are quite powerful too + if(damage.damageType.equals(DamageClass.ELECTRIC.name().toLowerCase(Locale.US))) return new float[] {threshold * 0.25F, stats.resistanceMult * 0.25F}; //electricity even more so + if(damage.damageType.equals(DamageClass.SUBATOMIC.name().toLowerCase(Locale.US))) return new float[] {0F, stats.resistanceMult * 0.1F}; //and particles are almsot commpletely unaffected + + if(damage.isFireDamage()) return new float[] {0F, stats.resistanceMult * 0.2F}; //fire ignores DT and most DR + if(damage.isExplosion()) return new float[] {threshold * 0.5F, stats.resistanceMult * 0.35F}; //explosions are still subject to DT and reduce DR by a fair amount + + return new float[] {threshold, stats.resistanceMult}; + } + + @Override + public void onDamageDealt(DamageSource damage, float amount) { + if(this.isArmorBroken(amount)) this.breakOffArmor(); + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + if(!hasHome) { + homeX = (int) posX; + homeY = (int) posY; + homeZ = (int) posZ; + hasHome = true; + } + + if(this.isPotionActive(Potion.blindness)) { + onBlinded(); + } + + if(getCurrentTask() == TASK_FOLLOW){ + + //incase the waypoint somehow doesn't exist and it got this task anyway + if(isAtDestination() && !hasWaypoint) { + setCurrentTask(TASK_IDLE, null); + } + //the task cannot be 6 outside of rampant, so this is a non issue p much + } else if (getCurrentTask() == TASK_DIG && ticksExisted % 20 == 0 && isAtDestination()) { + swingItem(); + + ExplosionVNT vnt = new ExplosionVNT(worldObj, taskX, taskY + 2, taskZ, blastSize, this); + vnt.setBlockAllocator(new BlockAllocatorGlyphidDig(blastResToDig)); + vnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + vnt.setEntityProcessor(null); + vnt.setPlayerProcessor(null); + vnt.explode(); + + this.setCurrentTask(previousTask, previousWaypoint); + } + + this.setBesideClimbableBlock(isCollidedHorizontally); + + if(ticksExisted % 100 == 0) { + this.swingItem(); + } + } + } + + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + super.dropFewItems(byPlayer, looting); + Item drop = isBurning() ? ModItems.glyphid_meat_grilled : ModItems.glyphid_meat; + if(rand.nextInt(2) == 0) this.entityDropItem(new ItemStack(drop, ((int) getScale() * 2) + looting), 0F); + } + + @Override + protected Entity findPlayerToAttack() { + if(this.isPotionActive(Potion.blindness)) return null; + + return this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); + } + + @Override + protected void updateWanderPath() { + if(getCurrentTask() == TASK_IDLE) { + super.updateWanderPath(); + } + } + + @Override + protected void updateEntityActionState() { + super.updateEntityActionState(); + + if(!this.isPotionActive(Potion.blindness)) { + if (!this.hasPath()) { + + // hell yeah!! + if(useExtendedTargeting() && this.entityToAttack != null) { + this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, true, true)); + } else if (getCurrentTask() != TASK_IDLE) { + + this.worldObj.theProfiler.startSection("stroll"); + + if (!isAtDestination()) { + + if (taskWaypoint != null) { + + taskX = (int) taskWaypoint.posX; + taskY = (int) taskWaypoint.posY; + taskZ = (int) taskWaypoint.posZ; + + if (taskWaypoint.highPriority) { + setTarget(taskWaypoint); + } + + } + + if(hasWaypoint) { + + if(canDig()) { + + MovingObjectPosition obstacle = findWaypointObstruction(); + if (getScale() >= 1 && getCurrentTask() != TASK_DIG && obstacle != null) { + digToWaypoint(obstacle); + } else { + Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); + int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); + this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); + } + + } else { + Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); + int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); + this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); + } + } + } + + this.worldObj.theProfiler.endSection(); + } + } + } + } + + protected boolean canDig() { + return MobConfig.rampantDig; + } + + public void onBlinded(){ + this.entityToAttack = null; + this.setPathToEntity(null); + this.fleeingTick = 80; + + if(getScale() >= 1.25){ + if(ticksExisted % 20 == 0) { + for (int i = 0; i < 16; i++) { + float angle = (float) Math.toRadians(360D / 16 * i); + Vec3 rot = Vec3.createVectorHelper(0, 0, 4); + rot.rotateAroundY(angle); + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if (mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + + Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + + if (block == ModBlocks.lantern) { + rotationYaw = 360F / 16 * i; + swingItem(); + worldObj.func_147480_a(mop.blockX, mop.blockY, mop.blockZ, false); + } + + } + } + } + } + } + + public boolean useExtendedTargeting() { + return MobConfig.rampantExtendedTargetting || PollutionHandler.getPollution(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), PollutionType.SOOT) >= MobConfig.targetingThreshold; + } + + @Override + protected boolean canDespawn() { + return entityToAttack == null && getCurrentTask() == TASK_IDLE && this.ticksExisted > 100; + } + + @Override + public void onDeath(DamageSource source) { + super.onDeath(source); + + if(doesInfectedSpawnMaggots() && this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED) { + + int j = 2 + this.rand.nextInt(3); + + for(int k = 0; k < j; ++k) { + float f = ((float) (k % 2) - 0.5F) * 0.5F; + float f1 = ((float) (k / 2) - 0.5F) * 0.5F; + EntityParasiteMaggot maggot = new EntityParasiteMaggot(worldObj); + maggot.setLocationAndAngles(this.posX + (double) f, this.posY + 0.5D, this.posZ + (double) f1, this.rand.nextFloat() * 360.0F, 0.0F); + maggot.motionX = f; + maggot.motionZ = f1; + maggot.velocityChanged = true; + this.worldObj.spawnEntityInWorld(maggot); + } + + worldObj.playSoundEffect(posX, posY, posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", this.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, posX, posY + height * 0.5, posZ), new TargetPoint(dimension, posX, posY + height * 0.5, posZ, 150)); + + } + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(source.getEntity() instanceof EntityGlyphid) return false; + boolean wasAttacked = GlyphidStats.getStats().handleAttack(this, source, amount); + return wasAttacked; + } + + /** Provides a direct entrypoint from outside to access the superclass' implementation because otherwise we end up with infinite recursion */ + public boolean attackSuperclass(DamageSource source, float amount) { + + /*NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 2.5F); + data.setString("text", "" + (int) amount); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 2, posZ), new TargetPoint(dimension, posX, posY + 2, posZ, 50));*/ + + return super.attackEntityFrom(source, amount); + } + + public boolean doesInfectedSpawnMaggots() { + return true; + } + + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.6, 2), 100); + } + + public void breakOffArmor() { + byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); + List indices = Arrays.asList(0, 1, 2, 3, 4); + Collections.shuffle(indices); + + for(Integer i : indices) { + byte bit = (byte) (1 << i); + if((armor & bit) > 0) { + armor &= ~bit; + armor = (byte) (armor & 0b11111); + this.dataWatcher.updateObject(DW_ARMOR, armor); + worldObj.playSoundAtEntity(this, "mob.zombie.woodbreak", 1.0F, 1.25F); + break; + } + } + } + + public int getGlyphidArmor() { + int total = 0; + byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); + List indices = Arrays.asList(0, 1, 2, 3, 4); + for(Integer i : indices) { + total += (armor & (1 << i)) != 0 ? 1 : 0; + } + return total; + } + + @Override + protected void updateArmSwingProgress() { + int i = this.swingDuration(); + + if(this.isSwingInProgress) { + ++this.swingProgressInt; + + if(this.swingProgressInt >= i) { + this.swingProgressInt = 0; + this.isSwingInProgress = false; + } + } else { + this.swingProgressInt = 0; + } + + this.swingProgress = (float) this.swingProgressInt / (float) i; + } + + public int swingDuration() { + return 15; + } + + @Override + public void setInWeb() { } + + @Override + public boolean isOnLadder() { + return this.isBesideClimbableBlock(); + } + + public boolean isBesideClimbableBlock() { + return (this.dataWatcher.getWatchableObjectByte(DW_WALL) & 1) != 0; + } + + public void setBesideClimbableBlock(boolean climbable) { + byte watchable = this.dataWatcher.getWatchableObjectByte(DW_WALL); + + if(climbable) { + watchable = (byte) (watchable | 1); + } else { + watchable &= -2; + } + + this.dataWatcher.updateObject(DW_WALL, Byte.valueOf(watchable)); + } + + @Override + public boolean attackEntityAsMob(Entity victim) { + if(this.isSwingInProgress) return false; + this.swingItem(); + + if(this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED && victim instanceof EntityLivingBase) { + ((EntityLivingBase) victim).addPotionEffect(new PotionEffect(Potion.poison.id, 100, 2)); + ((EntityLivingBase) victim).addPotionEffect(new PotionEffect(Potion.confusion.id, 100, 0)); + } + + return super.attackEntityAsMob(victim); + } + + + @Override + public EnumCreatureAttribute getCreatureAttribute() { + return EnumCreatureAttribute.ARTHROPOD; + } + + /// TASK SYSTEM START /// + public int getCurrentTask(){ + return currentTask; + } + + public EntityWaypoint getWaypoint(){ + return taskWaypoint; + } + + /** + * Sets a new task for the glyphid to do, a waypoint alongside with that task, and refreshes their waypoint coordinates + * @param task The task the glyphid is to do, refer to carryOutTask() + * @param waypoint The waypoint for the task, can be null + */ + public void setCurrentTask(int task, @Nullable EntityWaypoint waypoint){ + this.currentTask = task; + this.taskWaypoint = waypoint; + this.hasWaypoint = waypoint != null; + if(taskWaypoint != null) { + + taskX = (int) taskWaypoint.posX; + taskY = (int) taskWaypoint.posY; + taskZ = (int) taskWaypoint.posZ; + + if(taskWaypoint.highPriority) { + this.entityToAttack = null; + this.setPathToEntity(null); + } + + } + carryOutTask(); + } + + /** + * Handles the task system, used mainly for things that only need to be done once, such as setting targets + */ + public void carryOutTask(){ + int task = getCurrentTask(); + + switch(task){ + + case TASK_RETREAT_FOR_REINFORCEMENTS: + if(taskWaypoint != null) { + communicate(TASK_FOLLOW, taskWaypoint); + setCurrentTask(TASK_FOLLOW, taskWaypoint); + } + break; + + case TASK_INITIATE_RETREAT: + + if(!worldObj.isRemote && taskWaypoint == null) { + + // Then, Come back later + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + + // First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); + home.setAdditionalWaypoint(additional); + home.setHighPriority(); + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + worldObj.spawnEntityInWorld(home); + + this.taskWaypoint = home; + communicate(TASK_FOLLOW, home); + setCurrentTask(TASK_FOLLOW, taskWaypoint); + + break; + } + + break; + + case TASK_DIG: + shouldDig = true; + break; + + default: + break; + + } + + } + + /** Copies tasks and waypoint to nearby glyphids. Does not work on glyphid scouts */ + public void communicate(int task, @Nullable EntityWaypoint waypoint) { + int radius = waypoint != null ? waypoint.radius : 4; + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ).expand(radius, radius, radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for(Entity e : bugs) { + if(e instanceof EntityGlyphid && !(e instanceof EntityGlyphidScout)) { + if(((EntityGlyphid) e).getCurrentTask() != task) { + ((EntityGlyphid) e).setCurrentTask(task, waypoint); + } + } + } + } + + /** What each type of glyphid does when it is time to expand the hive. + * @return Whether it has expanded successfully or not + * **/ + public boolean expandHive(){ + return false; + } + + public boolean isAtDestination() { + int destinationRadius = taskWaypoint != null ? (int) Math.pow(taskWaypoint.radius, 2) : 25; + return this.getDistanceSq(taskX, taskY, taskZ) <= destinationRadius; + } + ///TASK SYSTEM END + + ///DIGGING SYSTEM START + + /** Handles the special digging system, used in Rampant mode due to high potential for destroyed bases**/ + public MovingObjectPosition findWaypointObstruction(){ + Vec3 bugVec = Vec3.createVectorHelper(posX, posY + getEyeHeight(), posZ); + Vec3 waypointVec = Vec3.createVectorHelper(taskX, taskY, taskZ); + //incomplete forge docs my beloved + MovingObjectPosition obstruction = worldObj.func_147447_a(bugVec, waypointVec, false, true, false); + if(obstruction != null){ + Block blockHit = worldObj.getBlock(obstruction.blockX, obstruction.blockY, obstruction.blockZ); + if(blockHit.getExplosionResistance(null) <= blastResToDig){ + return obstruction; + } + } + return null; + } + + public void digToWaypoint(MovingObjectPosition obstacle){ + + EntityWaypoint target = new EntityWaypoint(worldObj); + target.setLocationAndAngles(obstacle.blockX, obstacle.blockY, obstacle.blockZ, 0 , 0); + target.radius = 5; + worldObj.spawnEntityInWorld(target); + + previousTask = getCurrentTask(); + previousWaypoint = getWaypoint(); + + setCurrentTask(TASK_DIG, target); + + Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); + int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); + this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); + + communicate(TASK_DIG, target); + + } + ///DIGGING END + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setByte("armor", this.dataWatcher.getWatchableObjectByte(DW_ARMOR)); + nbt.setByte("subtype", this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE)); + + nbt.setBoolean("hasHome", hasHome); + nbt.setInteger("homeX", homeX); + nbt.setInteger("homeY", homeY); + nbt.setInteger("homeZ", homeZ); + + nbt.setBoolean("hasWaypoint", hasWaypoint); + nbt.setInteger("taskX", taskX); + nbt.setInteger("taskY", taskY); + nbt.setInteger("taskZ", taskZ); + + nbt.setInteger("task", currentTask); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(DW_ARMOR, nbt.getByte("armor")); + this.dataWatcher.updateObject(DW_SUBTYPE, nbt.getByte("subtype")); + + this.hasHome = nbt.getBoolean("hasHome"); + this.homeX = nbt.getInteger("homeX"); + this.homeY = nbt.getInteger("homeY"); + this.homeZ = nbt.getInteger("homeZ"); + + this.hasWaypoint = nbt.getBoolean("hasWaypoint"); + this.taskX = nbt.getInteger("taskX"); + this.taskY = nbt.getInteger("taskY"); + this.taskZ = nbt.getInteger("taskZ"); + + this.currentTask = nbt.getInteger("task"); + } + + @Override + public boolean getCanSpawnHere() { + return this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL && this.worldObj.checkNoEntityCollision(this.boundingBox) && this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox).isEmpty() && !this.worldObj.isAnyLiquid(this.boundingBox); + } +} diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java new file mode 100644 index 000000000..743f2aadf --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBehemoth.java @@ -0,0 +1,112 @@ +package com.hbm.entity.mob.glyphid; + +import com.hbm.entity.effect.EntityMist; +import com.hbm.entity.mob.glyphid.GlyphidStats.StatBundle; +import com.hbm.entity.projectile.EntityChemical; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBehemoth extends EntityGlyphid { + + public EntityGlyphidBehemoth(World world) { + super(world); + this.setSize(2.5F, 1.5F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_behemoth_tex; + } + + @Override + public double getScale() { + return 1.5D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBehemoth().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBehemoth().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBehemoth().damage); + } + + public StatBundle getStats() { + return GlyphidStats.getStats().statsBehemoth; + } + + public int timer = 120; + int breathTime = 0; + + @Override + public void onUpdate(){ + super.onUpdate(); + Entity e = this.getEntityToAttack(); + if (e == null) { + timer = 120; + breathTime = 0; + } else { + if (breathTime > 0) { + if(!isSwingInProgress){ + this.swingItem(); + } + acidAttack(); + rotationYaw = prevRotationYaw; + breathTime--; + } else if (--timer <= 0) { + breathTime = 120; + timer = 120; + } + } + } + + @Override + public void onDeath(DamageSource source) { + super.onDeath(source); + if (!worldObj.isRemote) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(Fluids.SULFURIC_ACID); + mist.setPosition(posX, posY, posZ); + mist.setArea(10, 4); + mist.setDuration(120); + worldObj.spawnEntityInWorld(mist); + } + } + + + public void acidAttack(){ + if(!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < 20) { + this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 20, 6)); + EntityChemical chem = new EntityChemical(worldObj, this, 0, 0, 0); + + chem.setFluid(Fluids.SULFURIC_ACID); + worldObj.spawnEntityInWorld(chem); + } + } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + this.entityDropItem(new ItemStack(ModItems.glyphid_gland, 1, Fluids.SULFURIC_ACID.getID()), 1); + super.dropFewItems(byPlayer, looting); + } + @Override + public boolean isArmorBroken(float amount) { + // amount < 5 ? 5 : amount < 10 ? 3 : 2; + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.15, 2), 100); + } + @Override + public int swingDuration() { + return 100; + } +} diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java new file mode 100644 index 000000000..37f622f3a --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBlaster.java @@ -0,0 +1,63 @@ +package com.hbm.entity.mob.glyphid; + +import com.hbm.entity.mob.glyphid.GlyphidStats.StatBundle; +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBlaster extends EntityGlyphidBombardier { + + public EntityGlyphidBlaster(World world) { + super(world); + this.setSize(2F, 1.125F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_blaster_tex; + } + + @Override + public double getScale() { + return 1.25D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBlaster().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBlaster().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBlaster().damage); + } + + public StatBundle getStats() { + return GlyphidStats.getStats().statsBlaster; + } + + @Override + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); + } + + @Override + public float getBombDamage() { + return 15F; + } + + @Override + public int getBombCount() { + return 10; + } + + @Override + public float getSpreadMult() { + return 0.5F; + } + + @Override + public double getV0() { + return 1.25D; + } +} diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java new file mode 100644 index 000000000..7fce71444 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBombardier.java @@ -0,0 +1,119 @@ +package com.hbm.entity.mob.glyphid; + +import com.hbm.entity.mob.glyphid.GlyphidStats.StatBundle; +import com.hbm.entity.projectile.EntityAcidBomb; +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityGlyphidBombardier extends EntityGlyphid { + + public EntityGlyphidBombardier(World world) { + super(world); + } + + public ResourceLocation getSkin() { + return ResourceManager.glyphid_bombardier_tex; + } + + protected Entity lastTarget; + protected double lastX; + protected double lastY; + protected double lastZ; + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBombardier().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBombardier().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBombardier().damage); + } + + public StatBundle getStats() { + return GlyphidStats.getStats().statsBombardier; + } + + @Override + public void onUpdate() { + super.onUpdate(); + Entity e = this.getEntityToAttack(); + if(!this.worldObj.isRemote && e instanceof EntityLivingBase) { + + if(this.ticksExisted % 20 == 0) { + this.lastTarget = e; + this.lastX = e.posX; + this.lastY = e.posY; + this.lastZ = e.posZ; + } + + if(this.ticksExisted % 60 == 1) { + + boolean topAttack = false; + + double velX = e.posX - lastX; + double velY = e.posY - lastY; + double velZ = e.posZ - lastZ; + + if(this.lastTarget != e || Vec3.createVectorHelper(velX, velY, velZ).lengthVector() > 30) { + velX = velY = velZ = 0; + } + + if (this.getDistanceToEntity(e) > 20) { + topAttack = true; + } + + int prediction = topAttack ? 60 : 20; + Vec3 delta = Vec3.createVectorHelper(e.posX - posX + velX * prediction, (e.posY + e.height / 2) - (posY + 1) + velY * prediction, e.posZ - posZ + velZ * prediction); + double len = delta.lengthVector(); + if(len < 3) return; + double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + + double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double y = delta.yCoord; + double v0 = getV0(); + double v02 = v0 * v0; + double g = 0.04D; + double upperLower = topAttack ? 1 : -1; + double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); + + if(!Double.isNaN(targetPitch)) { + + Vec3 fireVec = Vec3.createVectorHelper(v0, 0, 0); + fireVec.rotateAroundZ((float) -targetPitch); + fireVec.rotateAroundY((float) -(targetYaw + Math.PI * 0.5)); + + for(int i = 0; i < getBombCount(); i++) { + EntityAcidBomb bomb = new EntityAcidBomb(worldObj, posX, posY + 1, posZ); + bomb.setThrower(this); + bomb.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, i * getSpreadMult()); + bomb.damage = getBombDamage(); + worldObj.spawnEntityInWorld(bomb); + } + + this.swingItem(); + } + } + } + } + + public float getBombDamage() { + return 5F; + } + + public int getBombCount() { + return 5; + } + + public float getSpreadMult() { + return 1F; + } + + public double getV0() { + return 1D; + } +} diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java new file mode 100644 index 000000000..acd51c8e0 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrawler.java @@ -0,0 +1,142 @@ +package com.hbm.entity.mob.glyphid; + + +import com.hbm.entity.mob.glyphid.GlyphidStats.StatBundle; +import com.hbm.main.ResourceManager; + + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + + +public class EntityGlyphidBrawler extends EntityGlyphid { + + public EntityGlyphidBrawler(World world) { + super(world); + this.setSize(2F, 1.125F); + } + + public int timer = 0; + protected Entity lastTarget; + protected double lastX; + protected double lastY; + protected double lastZ; + + @Override + public void onUpdate(){ + super.onUpdate(); + Entity e = this.getEntityToAttack(); + if (e != null && this.isEntityAlive()) { + + this.lastX = e.posX; + this.lastY = e.posY; + this.lastZ = e.posZ; + + if (--timer <= 0) { + leap(); + timer = 80 + worldObj.rand.nextInt(30); + } + } + } + + /** Mainly composed of repurposed bombardier code**/ + public void leap() { + if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < 20) { + Entity e = this.getEntityToAttack(); + + double velX = e.posX - lastX; + double velY = e.posY - lastY; + double velZ = e.posZ - lastZ; + + if (this.lastTarget != e) { + velX = velY = velZ = 0; + } + + int prediction = 60; + Vec3 delta = Vec3.createVectorHelper(e.posX - posX + velX * prediction, (e.posY + e.height / 2) - (posY + 1) + velY * prediction, e.posZ - posZ + velZ * prediction); + double len = delta.lengthVector(); + if (len < 3) return; + double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + + double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double y = delta.yCoord; + double v0 = 1.5; + double v02 = v0 * v0; + double g = 0.01; + double targetPitch = Math.atan((v02 + Math.sqrt(v02 * v02 - g * (g * x * x + 2 * y * v02)) * 1) / (g * x)); + Vec3 fireVec = null; + if (!Double.isNaN(targetPitch)) { + + fireVec = Vec3.createVectorHelper(v0, 0, 0); + fireVec.rotateAroundZ((float) (-targetPitch / 3.5)); + fireVec.rotateAroundY((float) -(targetYaw + Math.PI * 0.5)); + } + if (fireVec != null) + this.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, rand.nextFloat()); + } + } + //yeag this is now a motherfucking projectile + public void setThrowableHeading(double motionX, double motionY, double motionZ, float velocity, float inaccuracy) { + float throwLen = MathHelper.sqrt_double(motionX * motionX + motionY * motionY + motionZ * motionZ); + motionX /= (double) throwLen; + motionY /= (double) throwLen; + motionZ /= (double) throwLen; + motionX += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionY += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionZ += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionX *= (double) velocity; + motionY *= (double) velocity; + motionZ *= (double) velocity; + this.motionX = motionX; + this.motionY = motionY; + this.motionZ = motionZ; + float hyp = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); + this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(motionX, motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(motionY, (double) hyp) * 180.0D / Math.PI); + } + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_brawler_tex; + } + + @Override + public double getScale() { + return 1.25D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBrawler().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBrawler().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBrawler().damage); + } + + public StatBundle getStats() { + return GlyphidStats.getStats().statsBrawler; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + /*NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 2.5F); + data.setString("text", "" + (int) amount); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 2, posZ), new TargetPoint(dimension, posX, posY + 2, posZ, 50));*/ + //allows brawlers to get no damage on short leaps, but still affected by fall damage on big drops + if(source == DamageSource.fall && amount <= 10) return false; + return super.attackEntityFrom(source, amount); + } + @Override + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); + } +} diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java new file mode 100644 index 000000000..1f9263302 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidBrenda.java @@ -0,0 +1,75 @@ +package com.hbm.entity.mob.glyphid; + +import com.hbm.entity.effect.EntityMist; +import com.hbm.entity.mob.glyphid.GlyphidStats.StatBundle; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBrenda extends EntityGlyphid { + + public EntityGlyphidBrenda(World world) { + super(world); + this.setSize(2.5F, 1.75F); + this.isImmuneToFire = true; + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_brenda_tex; + } + + @Override + public double getScale() { + return 2D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getBrenda().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getBrenda().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getBrenda().damage); + } + + public StatBundle getStats() { + return GlyphidStats.getStats().statsBrenda; + } + + @Override + public boolean isArmorBroken(float amount) { + // amount < 5 ? 5 : amount < 10 ? 3 : 2; + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.12, 2), 100); + } + + @Override + public void onDeath(DamageSource source) { + super.onDeath(source); + if(!this.worldObj.isRemote && this.getHealth() <= 0.0F) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(Fluids.PHEROMONE); + mist.setPosition(posX, posY, posZ); + mist.setArea(14, 6); + mist.setDuration(80); + worldObj.spawnEntityInWorld(mist); + for(int i = 0; i < 12; ++i) { + EntityGlyphid glyphid = new EntityGlyphid(worldObj); + glyphid.setLocationAndAngles(this.posX, this.posY + 0.5D, this.posZ, rand.nextFloat() * 360.0F, 0.0F); + this.worldObj.spawnEntityInWorld(glyphid); + glyphid.moveEntity(rand.nextGaussian(), 0, rand.nextGaussian()); + } + } + } + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + super.dropFewItems(byPlayer, looting); + if(rand.nextInt(3) == 0) this.entityDropItem(new ItemStack(ModItems.glyphid_gland, 1, Fluids.PHEROMONE.getID()), 1); + } + +} diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java new file mode 100644 index 000000000..6e443333d --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidDigger.java @@ -0,0 +1,165 @@ +package com.hbm.entity.mob.glyphid; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.entity.mob.glyphid.GlyphidStats.StatBundle; +import com.hbm.entity.projectile.EntityRubble; +import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.init.Blocks; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +import java.util.List; + +public class EntityGlyphidDigger extends EntityGlyphid { + protected Entity lastTarget; + protected double lastX; + protected double lastY; + protected double lastZ; + + public EntityGlyphidDigger(World world) { + super(world); + } + + public ResourceLocation getSkin() { + return ResourceManager.glyphid_digger_tex; + } + + @Override + public double getScale() { + return 1.3D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getDigger().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getDigger().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getDigger().damage); + } + + public StatBundle getStats() { + return GlyphidStats.getStats().statsDigger; + } + + public int timer = 0; + + @Override + public void onUpdate(){ + super.onUpdate(); + Entity e = this.getEntityToAttack(); + if (e != null && this.isEntityAlive()) { + + this.lastX = e.posX; + this.lastY = e.posY; + this.lastZ = e.posZ; + + if (--timer <= 0) { + groundSlam(); + timer = 120; + } + } + } + + /** Mainly composed of crusty old power fist code, with some touch ups **/ + public void groundSlam(){ + if (!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < 30) { + Entity e = this.getEntityToAttack(); + + boolean topAttack = false; + + int l = 6; + float part = -1F / 16F; + + int bugX = (int) posX; + int bugY = (int) posY; + int bugZ = (int) posZ; + + Vec3 vec0 = getLookVec(); + + List list = Library.getBlockPosInPath(bugX, bugY, bugZ, l, vec0); + + for (int i = 0; i < 8; i++) { + vec0.rotateAroundY(part); + list.addAll(Library.getBlockPosInPath(bugX, bugY - 1, bugZ, l, vec0)); + } + + double velX = e.posX - lastX; + double velY = e.posY - lastY; + double velZ = e.posZ - lastZ; + + if(this.lastTarget != e) { + velX = velY = velZ = 0; + } + + if (this.getDistanceToEntity(e) > 20) { + topAttack = true; + } + + int prediction = 60; + Vec3 delta = Vec3.createVectorHelper(e.posX - posX + velX * prediction, (e.posY + e.height / 2) - (posY + 1) + velY * prediction, e.posZ - posZ + velZ * prediction); + double len = delta.lengthVector(); + if(len < 3) return; + double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + + double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double y = delta.yCoord; + double v0 = 1.2; + double v02 = v0 * v0; + double g = 0.03D; + double upperLower = topAttack ? 1 : -1; + double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); + Vec3 fireVec = null; + if(!Double.isNaN(targetPitch)) { + + fireVec = Vec3.createVectorHelper(v0, 0, 0); + fireVec.rotateAroundZ((float) -targetPitch); + fireVec.rotateAroundY((float) -(targetYaw + Math.PI * 0.5)); + } + + for (int[] ints : list) { + + int x1 = ints[0]; + int y1 = ints[1]; + int z1 = ints[2]; + + + Block b = worldObj.getBlock(x1, y1, z1); + float k = b.getExplosionResistance(this, worldObj, x1, y1, z1, posX, posY, posZ); + + if (k < ModBlocks.concrete.getExplosionResistance(this) && b.isNormalCube() && !(b instanceof BlockDummyable) && worldObj.getTileEntity(x1, y1, z1) == null) { + + EntityRubble rubble = new EntityRubble(worldObj); + rubble.posX = x1 + 0.5F; + rubble.posY = y1 + 2; + rubble.posZ = z1 + 0.5F; + + rubble.setMetaBasedOnBlock(b, worldObj.getBlockMetadata(x1, y1, z1)); + + if(fireVec != null) + rubble.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, rand.nextFloat()); + + worldObj.spawnEntityInWorld(rubble); + + worldObj.setBlock(x1, y1, z1, Blocks.air); + } + } + } + } + @Override + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); + } + + @Override + protected boolean canDig() { + return true; + } +} diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java new file mode 100644 index 000000000..8b2128de0 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidNuclear.java @@ -0,0 +1,180 @@ +package com.hbm.entity.mob.glyphid; + +import com.hbm.blocks.ModBlocks; +import com.hbm.entity.logic.EntityWaypoint; +import com.hbm.entity.mob.EntityParasiteMaggot; +import com.hbm.entity.mob.glyphid.GlyphidStats.StatBundle; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +import javax.annotation.Nullable; +import java.util.List; + +public class EntityGlyphidNuclear extends EntityGlyphid { + + public int deathTicks; + public EntityGlyphidNuclear(World world) { + super(world); + this.setSize(2.5F, 1.75F); + this.isImmuneToFire = true; + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_nuclear_tex; + } + + @Override + public double getScale() { + return 2D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getNuclear().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getNuclear().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getNuclear().damage); + } + + public StatBundle getStats() { + return GlyphidStats.getStats().statsNuclear; + } + + @Override + public void onUpdate() { + super.onUpdate(); + if(ticksExisted % 20 == 0) { + if(isAtDestination() && getCurrentTask() == TASK_FOLLOW) { + setCurrentTask(TASK_IDLE, null); + } + + if(getCurrentTask() == TASK_BUILD_HIVE && getAITarget() == null) { + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 10 * 20, 3)); + } + + if(getCurrentTask() == TASK_TERRAFORM) { + this.setHealth(0); + } + } + } + + /** Communicates only with glyphid scouts, unlike the super implementation which does the opposite */ + @Override + public void communicate(int task, @Nullable EntityWaypoint waypoint) { + int radius = waypoint != null ? waypoint.radius : 4; + + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( + this.posX - radius, + this.posY - radius, + this.posZ - radius, + this.posX + radius, + this.posY + radius, + this.posZ + radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for (Entity e: bugs){ + if(e instanceof EntityGlyphidScout){ + if(((EntityGlyphid) e).getCurrentTask() != task){ + ((EntityGlyphid) e).setCurrentTask(task, waypoint); + } + } + } + } + + @Override + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.12, 2), 100); + } + + @Override + public boolean doesInfectedSpawnMaggots() { + return false; + } + + public boolean hasWaypoint = false; + @Override + protected void onDeathUpdate() { + ++this.deathTicks; + + if(!hasWaypoint) { + // effectively causes neighboring EntityGlyphidScout to retreat + communicate(TASK_INITIATE_RETREAT, null); + hasWaypoint = true; + } + + if(deathTicks == 90){ + int radius = 8; + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ).expand(radius, radius, radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for (Entity e: bugs){ + if(e instanceof EntityGlyphid){ + addPotionEffect(new PotionEffect(Potion.field_76434_w.id, 20, 6)); + addPotionEffect(new PotionEffect(Potion.fireResistance.id, 15 * 20, 1)); + } + } + } + if(this.deathTicks == 100) { + + if(!worldObj.isRemote) { + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); + + if(this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED) { + int j = 15 + this.rand.nextInt(6); + for(int k = 0; k < j; ++k) { + float f = ((float) (k % 2) - 0.5F) * 0.5F; + float f1 = ((float) (k / 2) - 0.5F) * 0.5F; + EntityParasiteMaggot maggot = new EntityParasiteMaggot(worldObj); + maggot.setLocationAndAngles(this.posX + (double) f, this.posY + 0.5D, this.posZ + (double) f1, this.rand.nextFloat() * 360.0F, 0.0F); + maggot.motionX = f; + maggot.motionZ = f1; + maggot.velocityChanged = true; + this.worldObj.spawnEntityInWorld(maggot); + } + } else { + vnt.setBlockAllocator(new BlockAllocatorStandard(24)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); + } + + vnt.setEntityProcessor(new EntityProcessorStandard()); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + // if the FX type is "muke", apply random BF effect + if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) { + data.setBoolean("balefire", true); + } + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); + } + + this.setDead(); + } else { + if(!worldObj.isRemote && this.deathTicks % 10 == 0) { + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.fstbmbPing", 5.0F, 1.0F); + } + } + } +} diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java new file mode 100644 index 000000000..dbe0c8884 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphidScout.java @@ -0,0 +1,353 @@ +package com.hbm.entity.mob.glyphid; + +import com.hbm.blocks.ModBlocks; +import com.hbm.config.MobConfig; +import com.hbm.entity.logic.EntityWaypoint; +import com.hbm.entity.mob.glyphid.GlyphidStats.StatBundle; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.main.ResourceManager; +import com.hbm.world.feature.GlyphidHive; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.*; +import net.minecraft.world.World; + +import java.util.List; + +public class EntityGlyphidScout extends EntityGlyphid { + + boolean hasTarget = false; + int timer; + int scoutingRange = 45; + int minDistanceToHive = 8; + boolean useLargeHive = false; + float largeHiveChance = MobConfig.largeHiveChance; + + public EntityGlyphidScout(World world) { + super(world); + this.setSize(1.25F, 0.75F); + } + + //extreme measures for anti-scout bullying + @Override + public boolean attackEntityAsMob(Entity victum) { + if(super.attackEntityAsMob(victum) && victum instanceof EntityLivingBase){ + ((EntityLivingBase)victum).addPotionEffect(new PotionEffect(Potion.poison.id, 10 * 20, 3)); + return true; + } + return false; + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_scout_tex; + } + + @Override + public double getScale() { + return 0.75D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(GlyphidStats.getStats().getScout().health); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(GlyphidStats.getStats().getScout().speed); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(GlyphidStats.getStats().getScout().damage); + } + + public StatBundle getStats() { + return GlyphidStats.getStats().statsScout; + } + + @Override + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount, 2), 100); + } + + @Override + public void onUpdate() { + super.onUpdate(); + //Updates to check whether the player still exists, important to make sure it wont stop doing work + if(entityToAttack != null && ticksExisted % 60 == 0){ + entityToAttack = findPlayerToAttack(); + } + if((getCurrentTask() != TASK_BUILD_HIVE || getCurrentTask() != TASK_TERRAFORM) && taskWaypoint == null) { + + if(MobConfig.rampantGlyphidGuidance && PollutionHandler.targetCoords != null){ + if(!hasTarget) { + Vec3 dirVec = playerBaseDirFinder(Vec3.createVectorHelper(posX, posY, posZ), getPlayerTargetDirection()); + + EntityWaypoint target = new EntityWaypoint(worldObj); + target.setLocationAndAngles(dirVec.xCoord, dirVec.yCoord, dirVec.zCoord, 0, 0); + target.maxAge = 300; + target.radius = 6; + target.setWaypointType(TASK_BUILD_HIVE); + worldObj.spawnEntityInWorld(target); + hasTarget = true; + + setCurrentTask(TASK_RETREAT_FOR_REINFORCEMENTS, target); + } + + if(super.isAtDestination()) { + setCurrentTask(TASK_BUILD_HIVE, null) ; + hasTarget = false; + } + + } else { + setCurrentTask(TASK_BUILD_HIVE, null); + } + + } + + if(getCurrentTask() == TASK_BUILD_HIVE || getCurrentTask() == TASK_TERRAFORM) { + + if(!worldObj.isRemote && !hasTarget) { + //Check for whether a big man johnson is nearby, this makes the scout switch into its terraforming task + if(scoutingRange != 60 && hasNuclearGlyphidNearby()){ + setCurrentTask(TASK_TERRAFORM, null); + } + + if(expandHive()) { + this.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 180 * 20, 1)); + hasTarget = true; + } + } + //fixes edge case where glyphids have no task and yet hasTarget is true + if(taskWaypoint == null && hasTarget){ + hasTarget = false; + } + + if (getCurrentTask() == TASK_TERRAFORM && super.isAtDestination() && canBuildHiveHere()) { + communicate(TASK_TERRAFORM, taskWaypoint); + } + + if (ticksExisted % 10 == 0 && isAtDestination()) { + timer++; + + if (!worldObj.isRemote && canBuildHiveHere()) { + if(timer == 1) { + + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + additional.setWaypointType(TASK_IDLE); + + // First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); + home.setAdditionalWaypoint(additional); + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + home.maxAge = 1200; + home.radius = 6; + + worldObj.spawnEntityInWorld(home); + + this.taskWaypoint = home; + this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 40 * 20, 10)); + communicate(TASK_RETREAT_FOR_REINFORCEMENTS, taskWaypoint); + + } else if(timer >= 5) { + + worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); + GlyphidHive.generateSmall(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand, this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) != TYPE_NORMAL, false); + this.setDead(); + + } else { + communicate(TASK_FOLLOW, taskWaypoint); + } + } + } + } + } + + /** Returns true if the position is far enough away from other hives. Also resets the task if unsuccessful. */ + public boolean canBuildHiveHere() { + int length = useLargeHive ? 16 : 8; + + for(int i = 0; i < 8; i++) { + + float angle = (float) Math.toRadians(360D / 16 * i); + Vec3 rot = Vec3.createVectorHelper(0, 0, length); + rot.rotateAroundY(angle); + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if(mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + + Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + + if(block == ModBlocks.glyphid_base) { + setCurrentTask(TASK_IDLE, null); + hasTarget = false; + return false; + } + + } + } + return true; + } + + @Override + public boolean isAtDestination() { + return this.getCurrentTask() == TASK_BUILD_HIVE && super.isAtDestination(); + } + + public boolean hasNuclearGlyphidNearby(){ + int radius = 8; + + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( + this.posX - radius, + this.posY - radius, + this.posZ - radius, + this.posX + radius, + this.posY + radius, + this.posZ + radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + + for (Entity e: bugs){ + if(e instanceof EntityGlyphidNuclear){ + return true; + } + } + return false; + } + + @Override + public boolean expandHive() { + + int nestX = rand.nextInt((homeX + scoutingRange) - (homeX - scoutingRange)) + (homeX - scoutingRange); + int nestZ = rand.nextInt((homeZ + scoutingRange) - (homeZ - scoutingRange)) + (homeZ - scoutingRange); + int nestY = worldObj.getHeightValue(nestX, nestZ); + Block b = worldObj.getBlock(nestX, nestY - 1, nestZ); + + boolean distanceCheck = Vec3.createVectorHelper(nestX - homeX, nestY - homeY, nestZ - homeZ).lengthVector() > minDistanceToHive; + + if(distanceCheck && b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { + + if(b == ModBlocks.basalt) { + useLargeHive = true; + largeHiveChance /= 2; + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 3)); + } + + if(!worldObj.isRemote) { + EntityWaypoint nest = new EntityWaypoint(worldObj); + nest.setWaypointType(getCurrentTask()); + nest.radius = 5; + + if(useLargeHive) + nest.setHighPriority(); + + nest.setLocationAndAngles(nestX, nestY, nestZ, 0, 0); + worldObj.spawnEntityInWorld(nest); + + taskWaypoint = nest; + + // updates the task coordinates + setCurrentTask(getCurrentTask(), taskWaypoint); + communicate(TASK_BUILD_HIVE, taskWaypoint); + } + + return true; + } + + return false; + } + + @Override + public void carryOutTask() { + if (!worldObj.isRemote && taskWaypoint == null) { + switch(getCurrentTask()){ + case TASK_INITIATE_RETREAT: + this.removePotionEffect(Potion.moveSlowdown.id); + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 20 * 20, 4)); + + //then, come back later + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + additional.setWaypointType(0); + + //First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(2); + home.setAdditionalWaypoint(additional); + home.setHighPriority(); + home.radius = 6; + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + worldObj.spawnEntityInWorld(home); + + communicate(4, home); + break; + + //terraforming task, only used if a big man johnson is near the scout + case TASK_TERRAFORM: + scoutingRange = 60; + minDistanceToHive = 20; + break; + } + } + super.carryOutTask(); + + } + + @Override + public boolean useExtendedTargeting() { + return false; + } + + @Override + protected Entity findPlayerToAttack() { + if(this.isPotionActive(Potion.blindness)) return null; + //no extended targeting, and a low attack distance, ensures the scouts are focused in expanding, and not in chasing the player + return this.worldObj.getClosestVulnerablePlayerToEntity(this, 10); + } + + + ///RAMPANT MODE STUFFS + + /** Finds the direction from the bug's location to the target and adds it to their current coord + * Used as a performant way to make scouts expand toward the player's spawn point + * @return An adjusted direction vector, to be added into the bug's current position for it to path in the required direction**/ + public static Vec3 playerBaseDirFinder(Vec3 currentLocation, Vec3 target){ + Vec3 dirVec = currentLocation.subtract(target).normalize(); + return Vec3.createVectorHelper( + currentLocation.xCoord + dirVec.xCoord * 10, + currentLocation.yCoord + dirVec.yCoord * 10, + currentLocation.zCoord + dirVec.zCoord * 10 + ); + } + + protected Vec3 getPlayerTargetDirection() { + EntityPlayer player = worldObj.getClosestPlayerToEntity(this, 300); + if(player != null) { + return Vec3.createVectorHelper(player.posX, player.posY, player.posZ); + } + return PollutionHandler.targetCoords; + } + + /** Vanilla implementation, minus the RNG */ + @Override + public boolean isValidLightLevel() { + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.boundingBox.minY); + int z = MathHelper.floor_double(this.posZ); + + int skylightSubtracted = this.worldObj.skylightSubtracted; + + if(this.worldObj.isThundering()) this.worldObj.skylightSubtracted = 10; + int light = worldObj.getChunkFromChunkCoords(x >> 4, z >> 4).getBlockLightValue(x & 15, y, z & 15, worldObj.skylightSubtracted); + + this.worldObj.skylightSubtracted = skylightSubtracted; + return light <= 7; + + } +} diff --git a/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java new file mode 100644 index 000000000..9332cb602 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/glyphid/GlyphidStats.java @@ -0,0 +1,141 @@ +package com.hbm.entity.mob.glyphid; + +import com.hbm.lib.ModDamageSource; +import com.hbm.potion.HbmPotion; + +import net.minecraft.util.DamageSource; + +public abstract class GlyphidStats { + + public static GlyphidStats GLYPHID_STATS_70K = new GlyphidStats70K(); + public static GlyphidStats GLYPHID_STATS_NT = new GlyphidStatsNT(); + + public static GlyphidStats getStats() { + return GLYPHID_STATS_NT; + } + + protected StatBundle statsGrunt; + protected StatBundle statsBombardier; + protected StatBundle statsBrawler; + protected StatBundle statsDigger; + protected StatBundle statsBlaster; + protected StatBundle statsBehemoth; + protected StatBundle statsBrenda; + protected StatBundle statsNuclear; + protected StatBundle statsScout; + + public static class StatBundle { + public final double health; + public final double speed; + public final double damage; + @Deprecated public final float divisor; + @Deprecated public final float damageThreshold; + /** Base threshold is calculated using this number * the glyphid's armor */ + public final float thresholdMultForArmor; + public final float resistanceMult; + + public StatBundle(double health, double speed, double damage, float divisor, float damageThreshold) { + this(health, speed, damage, divisor, damageThreshold, 0F, 0F); + } + + public StatBundle(double health, double speed, double damage, float divisor, float damageThreshold, float thresholdMultPerArmor, float resistanceMult) { + this.health = health; + this.speed = speed; + this.damage = damage; + this.divisor = divisor; + this.damageThreshold = damageThreshold; + this.thresholdMultForArmor = thresholdMultPerArmor; + this.resistanceMult = resistanceMult; + } + } + + public abstract boolean handleAttack(EntityGlyphid glyphid, DamageSource source, float amount); + + /** Tier 1 */ public StatBundle getGrunt() { return statsGrunt; } + /** Tier 1 Ranged */ public StatBundle getBombardier() { return statsBombardier; } + /** Tier 2 */ public StatBundle getBrawler() { return statsBrawler; } + /** Tier 2 Specialist */ public StatBundle getDigger() { return statsDigger; } + /** Tier 2 Ranged */ public StatBundle getBlaster() { return statsBlaster; } + /** Tier 3 */ public StatBundle getBehemoth() { return statsBehemoth; } + /** Tier 4 */ public StatBundle getBrenda() { return statsBrenda; } + /** Tier 4 Specialist */ public StatBundle getNuclear() { return statsNuclear; } + /** Tier 0 */ public StatBundle getScout() { return statsScout; } + + public static class GlyphidStats70K extends GlyphidStats { + + public GlyphidStats70K() { + this.statsGrunt = new StatBundle(30D, 1D, 5D, 1F, 0.5F); + this.statsBombardier = new StatBundle(20D, 1D, 5D, 1F, 0.5F); + this.statsBrawler = new StatBundle(50D, 1D, 10D, 3F, 1F); + this.statsDigger = new StatBundle(50D, 1D, 5D, 1F, 0.5F); + this.statsBlaster = new StatBundle(50D, 1D, 10D, 2F, 1F); + this.statsBehemoth = new StatBundle(130D, 0.8D, 25D, 4F, 2.5F); + this.statsBrenda = new StatBundle(250D, 1.2D, 50D, 5F, 10F); + this.statsNuclear = new StatBundle(100D, 0.8D, 50D, 5F, 10F); + this.statsScout = new StatBundle(20D, 1.5D, 2D, 1F, 0.5F); + } + + @Override + public boolean handleAttack(EntityGlyphid glyphid, DamageSource source, float amount) { + + if(!source.isDamageAbsolute() && !source.isUnblockable() && !glyphid.worldObj.isRemote && !source.isFireDamage() && !source.getDamageType().equals(ModDamageSource.s_cryolator)) { + byte armor = glyphid.getDataWatcher().getWatchableObjectByte(glyphid.DW_ARMOR); + + if(armor != 0) { //if at least one bit of armor is present + + if(amount < glyphid.getStats().damageThreshold) return false; + + //chances of armor being broken off + if(amount > 1 && glyphid.isArmorBroken(amount)) { + glyphid.breakOffArmor(); + amount *= 0.25F; + } + + amount -= glyphid.getStats().damageThreshold; + if(amount < 0) return true; + } + + //amount = glyphid.calculateDamage(amount); + } + + if(source.isFireDamage()) { + amount *= 0.7F; + } else if(source.getDamageType().equals("player")) { + amount *= glyphid.getScale() < 1.25 ? 1.5 : glyphid.getScale() < 1.3 ? 0.8 : 0.5; + } else if(source == ModDamageSource.acid || ModDamageSource.s_acid.equals(source.getDamageType())) { + amount = 0; + } else if(source == DamageSource.inWall) { + amount *= 15F; + } + + if(glyphid.isPotionActive(HbmPotion.phosphorus.getId())){ + amount *= 1.5F; + } + + return glyphid.attackSuperclass(source, amount); + } + } + + /** UNTESTED! Spreadsheet will be consulted soon */ + public static class GlyphidStatsNT extends GlyphidStats { + + public GlyphidStatsNT() { + this.statsGrunt = new StatBundle(20D, 1D, 2D, 0.25F, 0F, 1F, 0.1F); + this.statsBombardier = new StatBundle(15D, 1D, 2D, 0.25F, 0F, 1F, 0.1F); + this.statsBrawler = new StatBundle(35D, 1D, 10D, 0.5F, 0.5F, 2F, 0.15F); + this.statsDigger = new StatBundle(50D, 1D, 10D, 0.5F, 0.5F, 3F, 0.20F); + this.statsBlaster = new StatBundle(35D, 1D, 10D, 0.5F, 0.5F, 2F, 0.15F); + this.statsBehemoth = new StatBundle(125D, 0.8D, 25D, 1.5F, 2F, 5F, 0.35F); + this.statsBrenda = new StatBundle(250D, 1.2D, 50D, 2.5F, 5F, 10F, 0.5F); + this.statsNuclear = new StatBundle(100D, 0.8D, 50D, 2.5F, 5F, 10F, 0.5F); + this.statsScout = new StatBundle(20D, 1.5D, 5D, 0.5F, 0F, 0.5F, 0.5F); + } + + @Override + public boolean handleAttack(EntityGlyphid glyphid, DamageSource source, float amount) { + // Completely immune to acid from other glyphids + if((source == ModDamageSource.acid || ModDamageSource.s_acid.equals(source.getDamageType())) && source.getSourceOfDamage() instanceof EntityGlyphid) return false; + return glyphid.attackSuperclass(source, amount); + } + } +} diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java index aba873b3b..47dfee456 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java @@ -4,10 +4,9 @@ import java.util.List; import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.handler.SiegeOrchestrator; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; @@ -45,9 +44,6 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java index c81c0ef47..46e685a52 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java @@ -1,7 +1,6 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.handler.SiegeOrchestrator; import com.hbm.items.ModItems; import api.hbm.entity.IRadiationImmune; @@ -45,9 +44,6 @@ public class EntitySiegeSkeleton extends EntityMob implements IRangedAttackMob, if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java index da940e4b8..00d85f351 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java @@ -1,7 +1,7 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.mob.EntityBurrowingSwingingBase; -import com.hbm.handler.SiegeOrchestrator; +import com.hbm.interfaces.NotableComments; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -22,6 +22,7 @@ import net.minecraft.world.World; //well it ain't fucking funny //this stupid fucking random ass bullshit is the P R E C I S E reason i loathe working with entities //honest to fucking god was the entire mojang dev team on crack when they wrote this? +@NotableComments public class EntitySiegeTunneler extends EntityBurrowingSwingingBase { public EntitySiegeTunneler(World world) { @@ -37,9 +38,6 @@ public class EntitySiegeTunneler extends EntityBurrowingSwingingBase { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java index 30670edc8..12551252a 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java @@ -2,7 +2,6 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.handler.SiegeOrchestrator; import api.hbm.entity.IRadiationImmune; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -48,9 +47,6 @@ public class EntitySiegeUFO extends EntityUFOBase implements IRadiationImmune { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java index 49dac097b..82ac62ce8 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java @@ -1,6 +1,5 @@ package com.hbm.entity.mob.siege; -import com.hbm.handler.SiegeOrchestrator; import api.hbm.entity.IRadiationImmune; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -43,9 +42,6 @@ public class EntitySiegeZombie extends EntityMob implements IRadiationImmune { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java b/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java index ff3ac94c6..8949121c9 100644 --- a/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java +++ b/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java @@ -7,10 +7,7 @@ import java.util.function.Consumer; import com.hbm.items.ModItems; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; public class SiegeTier { @@ -113,49 +110,12 @@ public class SiegeTier { return this; } - private SiegeTier addDrop(Item drop) { - return addDrop(new ItemStack(drop)); - } - private SiegeTier addDrop(ItemStack drop) { this.dropItem.add(drop); return this; } - private SiegeTier setAura(int range, PotionEffect... effects) { - this.daisyChain(x -> SiegeTier.doAura(x, range, effects)); //HOLY SHIT THAT ACTUALLY WORKS!! - return this; - } - - private SiegeTier daisyChain(Consumer link) { - - if(this.delegate == null) - this.delegate = link; - else - this.delegate.andThen(link); //HOLY FUCK! - - return this; - } - public void runDelegate(EntityLivingBase entity) { if(this.delegate != null) this.delegate.accept(entity); } - - /* - * DELEGATIONS - */ - private static void doAura(EntityLivingBase entity, int range, PotionEffect... effects) { - - List players = entity.worldObj.getEntitiesWithinAABB(EntityPlayer.class, entity.boundingBox.expand(range, range, range)); - - for(EntityPlayer player : players) { - - if(player.getDistanceSqToEntity(entity) < range * range) { - - for(PotionEffect e : effects) { - player.addPotionEffect(new PotionEffect(e)); - } - } - } - } } diff --git a/src/main/java/com/hbm/entity/particle/EntityBSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntityBSmokeFX.java deleted file mode 100644 index ebbed1d98..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityBSmokeFX.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntityBSmokeFX extends EntityModFX -{ - public EntityBSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntityBSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityBSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 100) - { - maxAge = rand.nextInt(21) + 65; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.9599999785423279D; - this.motionY *= 0.9599999785423279D; - this.motionZ *= 0.9599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityCloudFX.java b/src/main/java/com/hbm/entity/particle/EntityCloudFX.java index 95513f498..b5b3dc474 100644 --- a/src/main/java/com/hbm/entity/particle/EntityCloudFX.java +++ b/src/main/java/com/hbm/entity/particle/EntityCloudFX.java @@ -1,7 +1,5 @@ package com.hbm.entity.particle; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.bomb.BlockCloudResidue; import com.hbm.explosion.ExplosionChaos; import net.minecraft.util.MathHelper; @@ -79,10 +77,6 @@ public class EntityCloudFX extends EntityModFX { if(!worldObj.isRemote && rand.nextInt(5) != 0) { this.setDead(); - - if(BlockCloudResidue.hasPosNeightbour(worldObj, (int) (posX - motionX/subdivisions), (int) (posY - motionY/subdivisions), (int) (posZ - motionZ/subdivisions)) && worldObj.getBlock((int) (posX - motionX/subdivisions), (int) (posY - motionY/subdivisions), (int) (posZ - motionZ/subdivisions)).isReplaceable(worldObj, (int) (posX - motionX/subdivisions), (int) (posY - motionY/subdivisions), (int) (posZ - motionZ/subdivisions))) { - worldObj.setBlock((int) (posX - motionX/subdivisions), (int) (posY - motionY/subdivisions), (int) (posZ - motionZ/subdivisions), ModBlocks.residue); - } } this.posX -= this.motionX/subdivisions; diff --git a/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java deleted file mode 100644 index 64889f204..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityDSmokeFX extends EntityModFX { - public EntityDSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntityDSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, - double p_i1225_10_, double p_i1225_12_) { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityDSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, - double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float) (Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - // this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - // this.particleMaxAge = (int)((float)this.particleMaxAge * - // p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if (maxAge < 100) { - maxAge = rand.nextInt(21) + 65; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityGasFX.java b/src/main/java/com/hbm/entity/particle/EntityGasFX.java deleted file mode 100644 index c34d1df66..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityGasFX.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityGasFX extends EntityModFX -{ - float smokeParticleScale; - public int particleAge; - public int maxAge; - public EntityGasFX(World world) { - super(world, 0, 0, 0); - } - - public EntityGasFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityGasFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 15) - { - maxAge = rand.nextInt(4) + 15; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - //this.motionY *= 0.7599999785423279D; - this.motionY += 0.1D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - if(this.isBurning()) { - this.setDead(); - worldObj.createExplosion(null, posX, posY, posZ, 3F, true); - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java b/src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java deleted file mode 100644 index 4f932ece6..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class EntityOilSpillFX extends EntityModFX { - float smokeParticleScale; - public int particleAge; - public int maxAge; - - public EntityOilSpillFX(World world) { - super(world, 0, 0, 0); - } - - public EntityOilSpillFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityOilSpillFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float) (Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - this.noClip = false; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 15) { - maxAge = rand.nextInt(4) + 15; - } - - this.particleAge++; - - if(this.particleAge >= maxAge) { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if(this.onGround) { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } - - @Override - public boolean writeToNBTOptional(NBTTagCompound nbt) { - return false; - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.setDead(); - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java deleted file mode 100644 index 699821ba1..000000000 --- a/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntitySSmokeFX extends EntityModFX -{ - public EntitySSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntitySSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntitySSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 25) - { - maxAge = rand.nextInt(6) + 25; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java b/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java deleted file mode 100644 index 8281443d9..000000000 --- a/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntitySmokeFX extends EntityModFX -{ - public EntitySmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntitySmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntitySmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 100) - { - maxAge = rand.nextInt(21) + 65; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.9599999785423279D; - this.motionY *= 0.9599999785423279D; - this.motionZ *= 0.9599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java deleted file mode 100644 index e5723cf0c..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityTSmokeFX extends EntityModFX -{ - public EntityTSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntityTSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityTSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 25) - { - maxAge = rand.nextInt(6) + 25; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java index 9d5b2f36c..fc4064646 100644 --- a/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java +++ b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java @@ -59,4 +59,54 @@ public class PathFinderUtils { world.theProfiler.endSection(); return pathentity; } + + public static PathEntity getPathEntityToCoordPartial(World world, Entity fromEntity, int posX, int posY, int posZ, float maxDist, boolean allowDoors, boolean allowBlocked, boolean allowWater, boolean canDrown) { + world.theProfiler.startSection("pathfind"); + int startX = MathHelper.floor_double(fromEntity.posX); + int startY = MathHelper.floor_double(fromEntity.posY + 1.0D); + int startZ = MathHelper.floor_double(fromEntity.posZ); + int maxDistEff = (int) (maxDist + 16.0F); + int minX = startX - maxDistEff; + int minY = startY - maxDistEff; + int minZ = startZ - maxDistEff; + int maxX = startX + maxDistEff; + int maxY = startY + maxDistEff; + int maxZ = startZ + maxDistEff; + ChunkCache chunkcache = new ChunkCache(world, minX, minY, minZ, maxX, maxY, maxZ, 0); + + Vec3 vec = Vec3.createVectorHelper(posX - fromEntity.posX, posY - fromEntity.posY, posZ - fromEntity.posZ); + vec = vec.normalize(); + vec.xCoord *= maxDist; + vec.yCoord *= maxDist; + vec.zCoord *= maxDist; + + int x = (int) Math.floor(fromEntity.posX + vec.xCoord); + int y = (int) Math.floor(fromEntity.posY + vec.yCoord); + int z = (int) Math.floor(fromEntity.posZ + vec.zCoord); + + //this part will adjust the end of the path so it's actually on the ground, it being unreachable causes mobs to slow down + boolean solid = false; + + for(int i = y; i > y - 10; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + + } + + if(!solid) for(int i = y + 10; i > y; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + } + + //PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, toEntity, maxDist); + PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, x, y, z, maxDist); + world.theProfiler.endSection(); + return pathentity; + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java index 8a688df2d..183d00c01 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java +++ b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java @@ -1,9 +1,10 @@ package com.hbm.entity.projectile; -import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphid; import com.hbm.lib.ModDamageSource; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -27,7 +28,7 @@ public class EntityAcidBomb extends EntityThrowableInterp { if(mop.typeOfHit == mop.typeOfHit.ENTITY) { if(!(mop.entityHit instanceof EntityGlyphid)) { - mop.entityHit.attackEntityFrom(ModDamageSource.acid, damage); + mop.entityHit.attackEntityFrom(new EntityDamageSourceIndirect(ModDamageSource.s_acid, this, thrower), damage); this.setDead(); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java index e8f4a6ad8..2c1773df7 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java @@ -28,14 +28,14 @@ import net.minecraftforge.common.ForgeChunkManager.Type; public class EntityArtilleryRocket extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable { private Ticket loaderTicket; - + //TODO: find satisfying solution for when an entity is unloaded and reloaded, possibly a custom entity lookup using persistent UUIDs public Entity targetEntity = null; public Vec3 lastTargetPos; - + public IRocketTargetingBehavior targeting; public IRocketSteeringBehavior steering; - + public EntityArtilleryRocket(World world) { super(world); this.ignoreFrustumCheck = true; @@ -49,18 +49,18 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); this.dataWatcher.addObject(10, new Integer(0)); } - + @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { return true; } - + public EntityArtilleryRocket setType(int type) { this.dataWatcher.updateObject(10, type); return this; } - + public HIMARSRocket getType() { try { return ItemAmmoHIMARS.itemTypes[this.dataWatcher.getWatchableObjectInt(10)]; @@ -68,34 +68,38 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu return ItemAmmoHIMARS.itemTypes[0]; } } - + public EntityArtilleryRocket setTarget(Entity target) { this.targetEntity = target; setTarget(target.posX, target.posY - target.yOffset + target.height / 2D, target.posZ); return this; } - + public EntityArtilleryRocket setTarget(double x, double y, double z) { this.lastTargetPos = Vec3.createVectorHelper(x, y, z); return this; } - + public Vec3 getLastTarget() { return this.lastTargetPos; } - + @Override public void onUpdate() { - + if(worldObj.isRemote) { this.lastTickPosX = this.posX; this.lastTickPosY = this.posY; this.lastTickPosZ = this.posZ; } - + super.onUpdate(); - + if(!worldObj.isRemote) { + + //shitty hack, figure out what's happening here + if(this.targeting == null) this.targeting = new RocketTargetingPredictive(); + if(this.steering == null) this.steering = new RocketSteeringBallisticArc(); if(this.targetEntity == null) { Vec3 delta = Vec3.createVectorHelper(this.lastTargetPos.xCoord - this.posX, this.lastTargetPos.yCoord - this.posY, this.lastTargetPos.zCoord - this.posZ); @@ -107,23 +111,32 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu if(this.targeting != null && this.targetEntity != null) this.targeting.recalculateTargetPosition(this, this.targetEntity); if(this.steering != null) this.steering.adjustCourse(this, 25D, 15D); - + loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); this.getType().onUpdate(this); } else { - + Vec3 v = Vec3.createVectorHelper(lastTickPosX - posX, lastTickPosY - posY, lastTickPosZ - posZ); double velocity = v.lengthVector(); v = v.normalize(); - + int offset = 6; - if(velocity > 1) for(int i = offset; i < velocity + offset; i++) MainRegistry.proxy.spawnParticle(posX + v.xCoord * i, posY + v.yCoord * i, posZ + v.zCoord * i, "exKerosene", null); + if(velocity > 1) { + for (int i = offset; i < velocity + offset; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("posX", posX + v.xCoord * i); + data.setDouble("posY", posY + v.yCoord * i); + data.setDouble("posZ", posZ + v.zCoord * i); + data.setString("type", "exKerosene"); + MainRegistry.proxy.effectNT(data); + } + } } } @Override protected void onImpact(MovingObjectPosition mop) { - + if(!worldObj.isRemote) { this.getType().onImpact(this, mop); } @@ -145,24 +158,24 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - + clearChunkLoader(); loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ) / 16D))); for(ChunkCoordIntPair chunk : loadedChunks) { ForgeChunkManager.forceChunk(loaderTicket, chunk); } } } - + public void killAndClear() { this.setDead(); this.clearChunkLoader(); } - + public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { for(ChunkCoordIntPair chunk : loadedChunks) { @@ -174,15 +187,15 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu @Override public void writeEntityToNBT(NBTTagCompound nbt) { super.writeEntityToNBT(nbt); - + if(this.lastTargetPos == null) { this.lastTargetPos = Vec3.createVectorHelper(posX, posY, posZ); } - + nbt.setDouble("targetX", this.lastTargetPos.xCoord); nbt.setDouble("targetY", this.lastTargetPos.yCoord); nbt.setDouble("targetZ", this.lastTargetPos.zCoord); - + nbt.setInteger("type", this.dataWatcher.getWatchableObjectInt(10)); } @@ -191,7 +204,7 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu super.readEntityFromNBT(nbt); this.lastTargetPos = Vec3.createVectorHelper(nbt.getDouble("targetX"), nbt.getDouble("targetY"), nbt.getDouble("targetZ")); - + this.dataWatcher.updateObject(10, nbt.getInteger("type")); } @@ -209,7 +222,7 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu public RadarTargetType getTargetType() { return RadarTargetType.ARTILLERY; } - + @Override public int approachNum() { return 0; // diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index a64891b70..e608b49d5 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -56,6 +56,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa @Override protected void entityInit() { + super.entityInit(); init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); this.dataWatcher.addObject(10, new Integer(0)); } @@ -197,7 +198,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ) / 16D))); for(ChunkCoordIntPair chunk : loadedChunks) { ForgeChunkManager.forceChunk(loaderTicket, chunk); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java index 1571ff841..9618217ed 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java @@ -3,9 +3,15 @@ package com.hbm.entity.projectile; import com.hbm.config.BombConfig; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -29,51 +35,56 @@ public class EntityBombletZeta extends EntityThrowable { @Override public void onUpdate() { - this.lastTickPosX = this.prevPosX = posX; this.lastTickPosY = this.prevPosY = posY; this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - + this.motionX *= 0.99; this.motionZ *= 0.99; this.motionY -= 0.05D; - - this.rotation(); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - if(!this.worldObj.isRemote) - { - if(type == 0) { - ExplosionLarge.explode(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 5.0F, true, false, false, this); - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.bombDet", 25.0F, 0.8F + rand.nextFloat() * 0.4F); - } - if(type == 1) { - ExplosionLarge.explode(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 2.5F, false, false, false, this); - ExplosionChaos.burn(worldObj, (int)posX, (int)posY, (int)posZ, 9); - ExplosionChaos.flameDeath(worldObj, (int)posX, (int)posY, (int)posZ, 14); - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.bombDet", 25.0F, 1.0F); - - for(int i = 0; i < 5; i++) - ExplosionLarge.spawnBurst(worldObj, this.posX + 0.5F, this.posY + 1.0F, this.posZ + 0.5F, rand.nextInt(10) + 15, rand.nextFloat() * 2 + 2); - } - if(type == 2) { - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); - ExplosionChaos.spawnChlorine(worldObj, this.posX + 0.5F - motionX, this.posY + 0.5F - motionY, this.posZ + 0.5F - motionZ, 75, 2, 0); - } - if(type == 4) { - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int) (BombConfig.fatmanRadius * 1.5), posX, posY, posZ).mute()); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - if(rand.nextInt(100) == 0) data.setBoolean("balefire", true); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); - worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); - } - } - this.setDead(); - } + + this.rotation(); + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + if(!this.worldObj.isRemote) { + if(type == 0) { + ExplosionVNT vnt = new ExplosionVNT(worldObj, this.posX + 0.5F, this.posY + 1.5F, this.posZ + 0.5F, 4F); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 100)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(15, 3.5F, 1.25F)); + vnt.explode(); + } + if(type == 1) { + + ExplosionVNT vnt = new ExplosionVNT(worldObj, this.posX + 0.5F, this.posY + 1.5F, this.posZ + 0.5F, 4F); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorFire())); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 100)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(15, 5F, 1.75F)); + vnt.explode(); + + } + if(type == 2) { + worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); + ExplosionChaos.spawnChlorine(worldObj, this.posX + 0.5F - motionX, this.posY + 0.5F - motionY, this.posZ + 0.5F - motionZ, 75, 2, 0); + } + if(type == 4) { + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int) (BombConfig.fatmanRadius * 1.5), posX, posY, posZ)); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + if(rand.nextInt(100) == 0) + data.setBoolean("balefire", true); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + } + this.setDead(); + } + } } public void rotation() { diff --git a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java index 74a4f9a47..7baf2de1f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java @@ -5,12 +5,16 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.ModDamageSource; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -26,55 +30,53 @@ public class EntityBoxcar extends EntityThrowable { @Override public void onUpdate() { + if(!worldObj.isRemote && this.ticksExisted == 1) { + for(int i = 0; i < 50; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bf"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, + posX + (rand.nextDouble() - 0.5) * 3, + posY + (rand.nextDouble() - 0.5) * 15, + posZ + (rand.nextDouble() - 0.5) * 3), + new TargetPoint(dimension, posX, posY, posZ, 150)); + } + } this.lastTickPosX = this.prevPosX = posX; this.lastTickPosY = this.prevPosY = posY; this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - /*this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ;*/ - this.motionY -= 0.03; if(motionY < -1.5) motionY = -1.5; - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10000.0F, 0.5F + this.rand.nextFloat() * 0.1F); - this.setDead(); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); - - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.boxcar, 1000); - } - - if(!worldObj.isRemote) - worldObj.setBlock((int)(this.posX - 0.5), (int)(this.posY + 0.5), (int)(this.posZ - 0.5), ModBlocks.boxcar); - } - } + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:weapon.trainImpact", 100.0F, 1.0F); + this.setDead(); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); + //ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); + //ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); + + List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.boxcar, 1000); + } + + if(!worldObj.isRemote) + worldObj.setBlock((int) Math.floor(this.posX), (int) Math.floor(this.posY + 0.5), (int) Math.floor(this.posZ), ModBlocks.boxcar); + } + } @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - - } + protected void onImpact(MovingObjectPosition p_70184_1_) { } - @Override + @Override @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 25000; - } + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBullet.java b/src/main/java/com/hbm/entity/projectile/EntityBullet.java index 3bbf98b02..b26a94e60 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBullet.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBullet.java @@ -29,11 +29,9 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.RedBarrel; +import com.hbm.blocks.bomb.BlockDetonatable; import com.hbm.entity.grenade.EntityGrenadeTau; import com.hbm.entity.mob.EntityCreeperNuclear; -import com.hbm.entity.particle.EntityBSmokeFX; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.util.ArmorUtil; @@ -43,9 +41,9 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class EntityBullet extends Entity implements IProjectile { - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; + private int tileX = -1; + private int tileY = -1; + private int tileZ = -1; public double gravity = 0.0D; private Block field_145790_g; private int inData; @@ -176,8 +174,7 @@ public class EntityBullet extends Entity implements IProjectile { } this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, - p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); + if(p_i1756_2_ != null) this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; this.posY -= 0.10000000149011612D; this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; @@ -340,28 +337,28 @@ public class EntityBullet extends Entity implements IProjectile { // (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); } - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); + Block block = this.worldObj.getBlock(this.tileX, this.tileY, this.tileZ); if (block.getMaterial() != Material.air) { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, - this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, - this.field_145792_e, this.field_145789_f); + block.setBlockBoundsBasedOnState(this.worldObj, this.tileX, this.tileY, + this.tileZ); + AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.tileX, + this.tileY, this.tileZ); if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ)) && !this.getIsCritical()) { this.inGround = true; } - - if (block == ModBlocks.red_barrel) { - ((RedBarrel) block).explode(worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); + + if(block instanceof BlockDetonatable) { + ((BlockDetonatable) block).onShot(worldObj, this.tileX, this.tileY, this.tileZ); } if (block == Blocks.glass || block == Blocks.stained_glass || block == Blocks.glass_pane || block == Blocks.stained_glass_pane) { - this.worldObj.setBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f, Blocks.air); - this.worldObj.playSound(this.field_145791_d, this.field_145792_e, this.field_145789_f, "dig.glass", + this.worldObj.setBlock(this.tileX, this.tileY, this.tileZ, Blocks.air); + this.worldObj.playSound(this.tileX, this.tileY, this.tileZ, "dig.glass", 1.0F, 1.0F, true); } } @@ -544,26 +541,6 @@ public class EntityBullet extends Entity implements IProjectile { ((EntityPlayerMP) this.shootingEntity).playerNetServerHandler .sendPacket(new S2BPacketChangeGameState(6, 0.0F)); } - - if(this.pip) { - if(!worldObj.isRemote) { - EntityBoxcar pippo = new EntityBoxcar(worldObj); - pippo.posX = movingobjectposition.entityHit.posX; - pippo.posY = movingobjectposition.entityHit.posY + 50; - pippo.posZ = movingobjectposition.entityHit.posZ; - - for(int j = 0; j < 50; j++) { - EntityBSmokeFX fx = new EntityBSmokeFX(worldObj, pippo.posX + (rand.nextDouble() - 0.5) * 4, pippo.posY + (rand.nextDouble() - 0.5) * 12, pippo.posZ + (rand.nextDouble() - 0.5) * 4, 0, 0, 0); - worldObj.spawnEntityInWorld(fx); - } - - worldObj.spawnEntityInWorld(pippo); - } - - worldObj.playSoundEffect(movingobjectposition.entityHit.posX, - movingobjectposition.entityHit.posY + 50, - movingobjectposition.entityHit.posZ, "hbm:alarm.trainHorn", 100F, 1F); - } } if (!(movingobjectposition.entityHit instanceof EntityEnderman)) { @@ -609,13 +586,13 @@ public class EntityBullet extends Entity implements IProjectile { this.setDead(); } } else if (!this.getIsCritical()) { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, - this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, - this.field_145789_f); + this.tileX = movingobjectposition.blockX; + this.tileY = movingobjectposition.blockY; + this.tileZ = movingobjectposition.blockZ; + this.field_145790_g = this.worldObj.getBlock(this.tileX, this.tileY, + this.tileZ); + this.inData = this.worldObj.getBlockMetadata(this.tileX, this.tileY, + this.tileZ); this.motionX = ((float) (movingobjectposition.hitVec.xCoord - this.posX)); this.motionY = ((float) (movingobjectposition.hitVec.yCoord - this.posY)); this.motionZ = ((float) (movingobjectposition.hitVec.zCoord - this.posZ)); @@ -628,8 +605,8 @@ public class EntityBullet extends Entity implements IProjectile { this.arrowShake = 7; if (this.field_145790_g.getMaterial() != Material.air) { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, - this.field_145792_e, this.field_145789_f, this); + this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.tileX, + this.tileY, this.tileZ, this); } } } @@ -712,9 +689,9 @@ public class EntityBullet extends Entity implements IProjectile { */ @Override public void writeEntityToNBT(NBTTagCompound p_70014_1_) { - p_70014_1_.setShort("xTile", (short) this.field_145791_d); - p_70014_1_.setShort("yTile", (short) this.field_145792_e); - p_70014_1_.setShort("zTile", (short) this.field_145789_f); + p_70014_1_.setShort("xTile", (short) this.tileX); + p_70014_1_.setShort("yTile", (short) this.tileY); + p_70014_1_.setShort("zTile", (short) this.tileZ); p_70014_1_.setShort("life", (short) this.ticksInGround); p_70014_1_.setByte("inTile", (byte) Block.getIdFromBlock(this.field_145790_g)); p_70014_1_.setByte("inData", (byte) this.inData); @@ -729,9 +706,9 @@ public class EntityBullet extends Entity implements IProjectile { */ @Override public void readEntityFromNBT(NBTTagCompound p_70037_1_) { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); + this.tileX = p_70037_1_.getShort("xTile"); + this.tileY = p_70037_1_.getShort("yTile"); + this.tileZ = p_70037_1_.getShort("zTile"); this.ticksInGround = p_70037_1_.getShort("life"); this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); this.inData = p_70037_1_.getByte("inData") & 255; @@ -857,20 +834,18 @@ public class EntityBullet extends Entity implements IProjectile { @Override @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { + public int getBrightnessForRender(float p_70070_1_) { if(this.getIsCritical() || this.getIsChopper()) return 15728880; else return super.getBrightnessForRender(p_70070_1_); - } + } - @Override - public float getBrightness(float p_70013_1_) - { + @Override + public float getBrightness(float p_70013_1_) { if(this.getIsCritical() || this.getIsChopper()) return 1.0F; else return super.getBrightness(p_70013_1_); - } + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java deleted file mode 100644 index 76f9340b0..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java +++ /dev/null @@ -1,696 +0,0 @@ -package com.hbm.entity.projectile; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.RedBarrel; -import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.potion.HbmPotion; -import com.hbm.util.ArmorUtil; -import com.hbm.util.BobMathUtil; -import com.hbm.util.Tuple.Pair; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.ReflectionHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EntityDamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityBulletBase extends Entity implements IProjectile { - - private BulletConfiguration config; - public EntityLivingBase shooter; - public float overrideDamage; - - public double prevRenderX; - public double prevRenderY; - public double prevRenderZ; - public final List> trailNodes = new ArrayList(); - - public BulletConfiguration getConfig() { - return config; - } - - public EntityBulletBase(World world) { - super(world); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityBulletBase(World world, int config) { - super(world); - this.config = BulletConfigSyncingUtil.pullConfig(config); - this.dataWatcher.updateObject(18, config); - this.renderDistanceWeight = 10.0D; - - if(this.config == null) { - this.setDead(); - return; - } - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); - - this.setSize(0.5F, 0.5F); - } - - public EntityBulletBase(World world, int config, EntityLivingBase entity) { - super(world); - this.config = BulletConfigSyncingUtil.pullConfig(config); - this.dataWatcher.updateObject(18, config); - shooter = entity; - - ItemStack gun = entity.getHeldItem(); - boolean offsetShot = true; - - if(gun != null && gun.getItem() instanceof ItemGunBase) { - GunConfiguration cfg = ((ItemGunBase) gun.getItem()).mainConfig; - - if(cfg != null && cfg.hasSights && entity.isSneaking()) { - offsetShot = false; - } - } - - this.setLocationAndAngles(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, entity.rotationYaw, entity.rotationPitch); - - if(offsetShot) { - double sideOffset = 0.16D; - - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; - this.posY -= 0.1D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; - } else { - this.posY -= 0.1D; - } - this.setPosition(this.posX, this.posY, this.posZ); - - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); - - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread * (offsetShot ? 1F : 0.25F)); - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); - } - - public EntityBulletBase(World world, int config, EntityLivingBase entity, EntityLivingBase target, float motion, float deviation) { - super(world); - - this.config = BulletConfigSyncingUtil.pullConfig(config); - this.dataWatcher.updateObject(18, config); - this.shooter = entity; - - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - - this.posY = entity.posY + entity.getEyeHeight() - 0.10000000149011612D; - double d0 = target.posX - entity.posX; - double d1 = target.boundingBox.minY + target.height / 3.0F - this.posY; - double d2 = target.posZ - entity.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) { - float f2 = (float) (Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float) (-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(entity.posX + d4, this.posY, entity.posZ + d5, f2, f3); - this.yOffset = 0.0F; - this.setThrowableHeading(d0, d1, d2, motion, deviation); - } - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); - } - - public boolean attackEntityFrom(DamageSource source, float amount) { - - this.setBeenAttacked(); - - if(source instanceof EntityDamageSource) { - EntityDamageSource dmg = (EntityDamageSource) source; - - if(dmg.damageType.equals("player")) { - this.motionX *= -1.5; - this.motionY *= -1.5; - this.motionZ *= -1.5; - return true; - } - } - return false; - } - - @Override - public void setThrowableHeading(double moX, double moY, double moZ, float mult1, float mult2) { - - float f2 = MathHelper.sqrt_double(moX * moX + moY * moY + moZ * moZ); - moX /= f2; - moY /= f2; - moZ /= f2; - moX += this.rand.nextGaussian() * mult2; - moY += this.rand.nextGaussian() * mult2; - moZ += this.rand.nextGaussian() * mult2; - moX *= mult1; - moY *= mult1; - moZ *= mult1; - this.motionX = moX; - this.motionY = moY; - this.motionZ = moZ; - - float f3 = MathHelper.sqrt_double(moX * moX + moZ * moZ); - this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(moX, moZ) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(moY, f3) * 180.0D / Math.PI); - } - - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double x, double y, double z, float r0, float r1, int i) { - this.setPosition(x, y, z); - this.setRotation(r0, r1); - } - - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double x, double y, double z) { - this.motionX = x; - this.motionY = y; - this.motionZ = z; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { - float f = MathHelper.sqrt_double(x * x + z * z); - this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(x, z) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(y, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - } - } - - @Override - protected void entityInit() { - //style - this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); - //trail - this.dataWatcher.addObject(17, Byte.valueOf((byte) 0)); - //bullet config sync - this.dataWatcher.addObject(18, Integer.valueOf((int) 0)); - } - - @Override - public void onUpdate() { - super.onUpdate(); - - if(config == null) - config = BulletConfigSyncingUtil.pullConfig(dataWatcher.getWatchableObjectInt(18)); - - if(config == null){ - this.setDead(); - return; - } - - if(worldObj.isRemote && config.style == config.STYLE_TAU) { - if(trailNodes.isEmpty()) { - this.ignoreFrustumCheck = true; - trailNodes.add(new Pair(Vec3.createVectorHelper(-motionX * 2, -motionY * 2, -motionZ * 2), 0D)); - } else { - trailNodes.add(new Pair(Vec3.createVectorHelper(0, 0, 0), 1D)); - } - } - - if(this.config.blackPowder && this.ticksExisted == 1) { - - for(int i = 0; i < 15; i++) { - double mod = rand.nextDouble(); - this.worldObj.spawnParticle("smoke", this.posX, this.posY, this.posZ, - (this.motionX + rand.nextGaussian() * 0.05) * mod, - (this.motionY + rand.nextGaussian() * 0.05) * mod, - (this.motionZ + rand.nextGaussian() * 0.05) * mod); - } - - double mod = 0.5; - this.worldObj.spawnParticle("flame", this.posX + this.motionX * mod, this.posY + this.motionY * mod, this.posZ + this.motionZ * mod, 0, 0, 0); - } - - if(config.maxAge == 0) { - - if(this.config.bUpdate != null) - this.config.bUpdate.behaveUpdate(this); - - this.setDead(); - return; - } - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { - float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - /// ZONE 1 START /// - //entity and block collision, plinking - - /// ZONE 2 START /// - //entity detection - Vec3 vecOrigin = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vecDestination = Vec3.createVectorHelper(this.posX + this.motionX * this.config.velocity, this.posY + this.motionY * this.config.velocity, this.posZ + this.motionZ * this.config.velocity); - MovingObjectPosition movement = this.worldObj.func_147447_a(vecOrigin, vecDestination, false, true, false); - vecOrigin = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vecDestination = Vec3.createVectorHelper(this.posX + this.motionX * this.config.velocity, this.posY + this.motionY * this.config.velocity, this.posZ + this.motionZ * this.config.velocity); - - MovingObjectPosition impact = null; - - Entity victim = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX * this.config.velocity, this.motionY * this.config.velocity, this.motionZ * this.config.velocity).expand(1.0D, 1.0D, 1.0D)); - - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) { - Entity entity1 = (Entity) list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shooter)) { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vecOrigin, vecDestination); - - if (movingobjectposition1 != null) { - double d1 = vecOrigin.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) { - victim = entity1; - impact = movingobjectposition1; - d0 = d1; - } - } - } - } - - if (victim != null) { - movement = new MovingObjectPosition(victim); - movement.hitVec.yCoord += victim.height * 0.5D; - } - - /// ZONE 2 END /// - - boolean didBounce = false; - - if(movement != null) { - - //handle entity collision - if(movement.entityHit != null) { - - DamageSource damagesource = this.config.getDamage(this, shooter); - - if(!worldObj.isRemote) { - if(!config.doesPenetrate) { - this.setPosition(movement.hitVec.xCoord, movement.hitVec.yCoord, movement.hitVec.zCoord); - onEntityImpact(victim); - } else { - onEntityHurt(victim); - } - } - - float damage = rand.nextFloat() * (config.dmgMax - config.dmgMin) + config.dmgMin; - - if(overrideDamage != 0) - damage = overrideDamage; - - boolean headshot = false; - - if(victim instanceof EntityLivingBase && this.config.headshotMult > 1F) { - EntityLivingBase living = (EntityLivingBase) victim; - double head = living.height - living.getEyeHeight(); - - if(!!living.isEntityAlive() && impact.hitVec != null && impact.hitVec.yCoord > (living.posY + living.height - head * 2)) { - damage *= this.config.headshotMult; - headshot = true; - } - } - - if(victim != null && !victim.attackEntityFrom(damagesource, damage)) { - - try { - Field lastDamage = ReflectionHelper.findField(EntityLivingBase.class, "lastDamage", "field_110153_bc"); - - float dmg = (float) damage + lastDamage.getFloat(victim); - - if(!victim.attackEntityFrom(damagesource, dmg)) { - headshot = false; - } - } catch (Exception x) { } - - } - - if(!worldObj.isRemote && headshot) { - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - double head = living.height - living.getEyeHeight(); - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setInteger("count", 15); - data.setDouble("motion", 0.1D); - data.setString("mode", "blockdust"); - data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, living.posX, living.posY + living.height - head, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); - worldObj.playSoundEffect(victim.posX, victim.posY, victim.posZ, "mob.zombie.woodbreak", 1.0F, 0.95F + rand.nextFloat() * 0.2F); - } - } - - //handle block collision - } else if(worldObj.getBlock(movement.blockX, movement.blockY, movement.blockZ).getMaterial() != Material.air) { - - boolean hRic = rand.nextInt(100) < config.HBRC; - boolean doesRic = config.doesRicochet || hRic; - - if(!config.isSpectral && !doesRic) { - this.setPosition(movement.hitVec.xCoord, movement.hitVec.yCoord, movement.hitVec.zCoord); - this.onBlockImpact(movement.blockX, movement.blockY, movement.blockZ); - } - - if(doesRic) { - - Vec3 face = null; - - switch(movement.sideHit) { - case 0: - face = Vec3.createVectorHelper(0, -1, 0); break; - case 1: - face = Vec3.createVectorHelper(0, 1, 0); break; - case 2: - face = Vec3.createVectorHelper(0, 0, 1); break; - case 3: - face = Vec3.createVectorHelper(0, 0, -1); break; - case 4: - face = Vec3.createVectorHelper(-1, 0, 0); break; - case 5: - face = Vec3.createVectorHelper(1, 0, 0); break; - } - - if(face != null) { - - Vec3 vel = Vec3.createVectorHelper(motionX, motionY, motionZ); - vel.normalize(); - - boolean lRic = rand.nextInt(100) < config.LBRC; - double angle = Math.abs(BobMathUtil.getCrossAngle(vel, face) - 90); - - if(hRic || (angle <= config.ricochetAngle && lRic)) { - switch(movement.sideHit) { - case 0: - case 1: - motionY *= -1; break; - case 2: - case 3: - motionZ *= -1; break; - case 4: - case 5: - motionX *= -1; break; - } - - if(config.plink == 1) - worldObj.playSoundAtEntity(this, "hbm:weapon.ricochet", 0.25F, 1.0F); - if(config.plink == 2) - worldObj.playSoundAtEntity(this, "hbm:weapon.gBounce", 1.0F, 1.0F); - - onRicochet(movement.blockX, movement.blockY, movement.blockZ); - - } else { - if(!worldObj.isRemote) { - this.setPosition(movement.hitVec.xCoord, movement.hitVec.yCoord, movement.hitVec.zCoord); - onBlockImpact(movement.blockX, movement.blockY, movement.blockZ); - } - } - - this.posX += (movement.hitVec.xCoord - this.posX) * 0.6; - this.posY += (movement.hitVec.yCoord - this.posY) * 0.6; - this.posZ += (movement.hitVec.zCoord - this.posZ) * 0.6; - - this.motionX *= config.bounceMod; - this.motionY *= config.bounceMod; - this.motionZ *= config.bounceMod; - - didBounce = true; - } - } - } - - } - - /// ZONE 1 END /// - - if(!didBounce) { - motionY -= config.gravity; - this.posX += this.motionX * this.config.velocity; - this.posY += this.motionY * this.config.velocity; - this.posZ += this.motionZ * this.config.velocity; - this.setPosition(this.posX, this.posY, this.posZ); - } - - /// SPECIAL UPDATE BEHAVIOR /// - if(this.config.bUpdate != null) - this.config.bUpdate.behaveUpdate(this); - - float f2; - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } - - if(this.ticksExisted > config.maxAge) - this.setDead(); - - if(worldObj.isRemote && !config.vPFX.isEmpty()) { - - double motion = Math.min(Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector(), 0.1); - - for(double d = 0; d < motion; d += 0.0625) { - - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setString("type", "vanillaExt"); - nbt.setString("mode", config.vPFX); - nbt.setDouble("posX", (this.lastTickPosX - this.posX) * d + this.posX); - nbt.setDouble("posY", (this.lastTickPosY - this.posY) * d + this.posY); - nbt.setDouble("posZ", (this.lastTickPosZ - this.posZ) * d + this.posZ); - MainRegistry.proxy.effectNT(nbt); - } - } - - //this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; - //this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; - } - - //for when a bullet dies by hitting a block - private void onBlockImpact(int bX, int bY, int bZ) { - - if(config.bImpact != null) - config.bImpact.behaveBlockHit(this, bX, bY, bZ); - - if(!worldObj.isRemote && !config.liveAfterImpact) - this.setDead(); - - if(config.incendiary > 0 && !this.worldObj.isRemote) { - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX + 1, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX + 1, (int)posY, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX - 1, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX - 1, (int)posY, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY + 1, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY + 1, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY - 1, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY - 1, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ + 1) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ + 1, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ - 1) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ - 1, Blocks.fire); - } - - if(config.emp > 0) - ExplosionNukeGeneric.empBlast(this.worldObj, (int)(this.posX + 0.5D), (int)(this.posY + 0.5D), (int)(this.posZ + 0.5D), config.emp); - - if(config.emp > 3) { - if (!this.worldObj.isRemote) { - - EntityEMPBlast cloud = new EntityEMPBlast(this.worldObj, config.emp); - cloud.posX = this.posX; - cloud.posY = this.posY + 0.5F; - cloud.posZ = this.posZ; - - this.worldObj.spawnEntityInWorld(cloud); - } - } - - if(config.jolt > 0 && !worldObj.isRemote) - ExplosionLarge.jolt(worldObj, posX, posY, posZ, config.jolt, 150, 0.25); - - if(config.explosive > 0 && !worldObj.isRemote) - worldObj.newExplosion(this, posX, posY, posZ, config.explosive, config.incendiary > 0, config.blockDamage); - - if(config.shrapnel > 0 && !worldObj.isRemote) - ExplosionLarge.spawnShrapnels(worldObj, posX, posY, posZ, config.shrapnel); - - if(config.chlorine > 0 && !worldObj.isRemote) { - ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, config.chlorine, 1.5, 0); - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); - } - - if(config.rainbow > 0 && !worldObj.isRemote) { - EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, config.rainbow); - if(!ex.isDead) { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); - worldObj.spawnEntityInWorld(ex); - - EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(this.worldObj, config.rainbow); - cloud.posX = this.posX; - cloud.posY = this.posY; - cloud.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(cloud); - } - } - - if(config.nuke > 0 && !worldObj.isRemote) { - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, config.nuke, posX, posY, posZ).mute()); - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) data.setBoolean("balefire", true); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); - worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); - } - - if(config.destroysBlocks && !worldObj.isRemote) { - if(worldObj.getBlock(bX, bY, bZ).getBlockHardness(worldObj, bX, bY, bZ) <= 120) - worldObj.func_147480_a(bX, bY, bZ, false); - } else if(config.doesBreakGlass && !worldObj.isRemote) { - if(worldObj.getBlock(bX, bY, bZ) == Blocks.glass || - worldObj.getBlock(bX, bY, bZ) == Blocks.glass_pane || - worldObj.getBlock(bX, bY, bZ) == Blocks.stained_glass || - worldObj.getBlock(bX, bY, bZ) == Blocks.stained_glass_pane) - worldObj.func_147480_a(bX, bY, bZ, false); - - if(worldObj.getBlock(bX, bY, bZ) == ModBlocks.red_barrel) - ((RedBarrel) ModBlocks.red_barrel).explode(worldObj, bX, bY, bZ); - } - } - - //for when a bullet dies by hitting a block - private void onRicochet(int bX, int bY, int bZ) { - - if(config.bRicochet != null) - config.bRicochet.behaveBlockRicochet(this, bX, bY, bZ); - } - - //for when a bullet dies by hitting an entity - private void onEntityImpact(Entity e) { - onEntityHurt(e); - onBlockImpact(-1, -1, -1); - - if(config.bHit != null) - config.bHit.behaveEntityHit(this, e); - } - - //for when a bullet hurts an entity, not necessarily dying - private void onEntityHurt(Entity e) { - - if(config.bHurt != null) - config.bHurt.behaveEntityHurt(this, e); - - if(config.incendiary > 0 && !worldObj.isRemote) { - e.setFire(config.incendiary); - } - - if(config.leadChance > 0 && !worldObj.isRemote && worldObj.rand.nextInt(100) < config.leadChance && e instanceof EntityLivingBase) { - ((EntityLivingBase)e).addPotionEffect(new PotionEffect(HbmPotion.lead.id, 10 * 20, 0)); - } - - if(e instanceof EntityLivingBase && config.effects != null && !config.effects.isEmpty() && !worldObj.isRemote) { - - for(PotionEffect effect : config.effects) { - ((EntityLivingBase)e).addPotionEffect(new PotionEffect(effect)); - } - } - - if(config.instakill && e instanceof EntityLivingBase && !worldObj.isRemote) { - - if(!(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)) - ((EntityLivingBase)e).setHealth(0.0F); - } - - if(config.caustic > 0 && e instanceof EntityPlayer){ - ArmorUtil.damageSuit((EntityPlayer)e, 0, config.caustic); - ArmorUtil.damageSuit((EntityPlayer)e, 1, config.caustic); - ArmorUtil.damageSuit((EntityPlayer)e, 2, config.caustic); - ArmorUtil.damageSuit((EntityPlayer)e, 3, config.caustic); - } - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - - int cfg = nbt.getInteger("config"); - this.config = BulletConfigSyncingUtil.pullConfig(cfg); - - if(this.config == null) { - this.setDead(); - return; - } - - this.overrideDamage = nbt.getFloat("damage"); - - this.dataWatcher.updateObject(18, cfg); - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - - nbt.setInteger("config", dataWatcher.getWatchableObjectInt(18)); - - nbt.setFloat("damage", this.overrideDamage); - } - -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java new file mode 100644 index 000000000..29b0ce553 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java @@ -0,0 +1,205 @@ +package com.hbm.entity.projectile; + +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.util.BobMathUtil; +import com.hbm.util.TrackerUtil; +import com.hbm.util.Vec3NT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EntityTrackerEntry; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +public class EntityBulletBaseMK4 extends EntityThrowableInterp { + + public BulletConfig config; + //used for rendering tracers + public double velocity; + public double prevVelocity; + public double accel; + public float damage; + public int ricochets = 0; + public Entity lockonTarget = null; + + public EntityBulletBaseMK4(World world) { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + this.isImmuneToFire = true; + } + + /** For submunitions! */ + public EntityBulletBaseMK4(World world, EntityLivingBase entity, BulletConfig config, float damage, float gunSpread, double posX, double posY, double posZ, double motionX, double motionY, double motionZ) { + this(world); + + this.thrower = entity; + this.setBulletConfig(config); + + this.damage = damage; + + this.setLocationAndAngles(posX, posY, posZ, 0, 0); + this.setPosition(this.posX, this.posY, this.posZ); + + this.motionX = motionX; + this.motionY = motionY; + this.motionZ = motionZ; + + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread + gunSpread); + } + + /** For standard guns */ + public EntityBulletBaseMK4(EntityLivingBase entity, BulletConfig config, float baseDamage, float gunSpread, double sideOffset, double heightOffset, double frontOffset) { + this(entity.worldObj); + + this.thrower = entity; + this.setBulletConfig(config); + + this.damage = baseDamage * this.config.damageMult; + + this.setLocationAndAngles(thrower.posX, thrower.posY + thrower.getEyeHeight(), thrower.posZ, thrower.rotationYaw, thrower.rotationPitch); + + Vec3 offset = Vec3.createVectorHelper(sideOffset, heightOffset, frontOffset); + offset.rotateAroundX(-this.rotationPitch / 180F * (float) Math.PI); + offset.rotateAroundY(-this.rotationYaw / 180F * (float) Math.PI); + + this.posX += offset.xCoord; + this.posY += offset.yCoord; + this.posZ += offset.zCoord; + + this.setPosition(this.posX, this.posY, this.posZ); + + this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); + + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread + gunSpread); + } + + /** For turrets - angles are in radians, and pitch is negative! */ + public EntityBulletBaseMK4(World world, BulletConfig config, float baseDamage, float gunSpread, float yaw, float pitch) { + this(world); + + this.setBulletConfig(config); + this.damage = baseDamage * this.config.damageMult; + + this.prevRotationYaw = this.rotationYaw = yaw * 180F / (float) Math.PI; + this.prevRotationPitch = this.rotationPitch = -pitch * 180F / (float) Math.PI; + + this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread + gunSpread); + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(3, Integer.valueOf(0)); + } + + public void setBulletConfig(BulletConfig config) { + this.config = config; + this.dataWatcher.updateObject(3, config.id); + } + + public BulletConfig getBulletConfig() { + int id = this.dataWatcher.getWatchableObjectInt(3); + if(id < 0 || id > BulletConfig.configs.size()) return null; + return BulletConfig.configs.get(id); + } + + @Override + public void onUpdate() { + + if(config == null) config = this.getBulletConfig(); + + if(config == null){ + this.setDead(); + return; + } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + super.onUpdate(); + + double dX = this.posX - this.prevPosX; + double dY = this.posY - this.prevPosY; + double dZ = this.posZ - this.prevPosZ; + + if(this.lockonTarget != null && !this.lockonTarget.isDead) { + Vec3NT motion = new Vec3NT(motionX, motionY, motionZ); + double vel = motion.lengthVector(); + Vec3NT delta = new Vec3NT(lockonTarget.posX - posX, lockonTarget.posY + lockonTarget.height / 2D - posY, lockonTarget.posZ - posZ); + float turn = Math.min(0.005F * this.ticksExisted, 1F); + Vec3NT newVec = new Vec3NT( + BobMathUtil.interp(motion.xCoord, delta.xCoord, turn), + BobMathUtil.interp(motion.yCoord, delta.yCoord, turn), + BobMathUtil.interp(motion.zCoord, delta.zCoord, turn)).normalizeSelf().multiply(vel); + this.motionX = newVec.xCoord; + this.motionY = newVec.yCoord; + this.motionZ = newVec.zCoord; + EntityTrackerEntry entry = TrackerUtil.getTrackerEntry((WorldServer) worldObj, this.getEntityId()); + entry.lastYaw = MathHelper.floor_float(this.rotationYaw * 256.0F / 360.0F) + 10; //force-trigger rotation update + } + + this.prevVelocity = this.velocity; + this.velocity = Math.sqrt(dX * dX + dY * dY + dZ * dZ); + + if(!this.onGround && velocity > 0) { + + float hyp = MathHelper.sqrt_double(dX * dX + dZ * dZ); + this.rotationYaw = (float) (Math.atan2(dX, dZ) * 180.0D / Math.PI); + + for(this.rotationPitch = (float) (Math.atan2(dY, (double) hyp) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + } + + if(!worldObj.isRemote && this.ticksExisted > config.expires) this.setDead(); + + if(this.config.onUpdate != null) this.config.onUpdate.accept(this); + } + + @Override + public void setDead() { + super.setDead(); + + //send a teleport on collision so that the bullets are forced to move even if their lifetime is only 1 tick, letting them render + if(worldObj instanceof WorldServer) TrackerUtil.sendTeleport((WorldServer) worldObj, this); + } + + + @Override + protected void onImpact(MovingObjectPosition mop) { + if(!worldObj.isRemote) { + + if(this.config.onImpact != null) this.config.onImpact.accept(this, mop); + if(this.isDead) return; + if(this.config.onRicochet != null) this.config.onRicochet.accept(this, mop); + if(this.config.onEntityHit != null) this.config.onEntityHit.accept(this, mop); + } + } + + @Override protected double headingForceMult() { return 1D; } + @Override public double getGravityVelocity() { return this.config.gravity; } + @Override protected double motionMult() { return this.config.velocity + this.accel; } + @Override protected float getAirDrag() { return 1F; } + @Override protected float getWaterDrag() { return 1F; } + + @Override public boolean doesImpactEntities() { return this.config.impactsEntities; } + @Override public boolean doesPenetrate() { return this.config.doesPenetrate; } + @Override public boolean isSpectral() { return this.config.isSpectral; } + @Override public int selfDamageDelay() { return this.config.selfDamageDelay; } + + @Override @SideOnly(Side.CLIENT) public boolean canRenderOnFire() { return false; } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java new file mode 100644 index 000000000..42591af80 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java @@ -0,0 +1,81 @@ +package com.hbm.entity.projectile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public class EntityBulletBaseMK4CL extends EntityBulletBaseMK4 implements IChunkLoader { + + private Ticket loaderTicket; + private List loadedChunks = new ArrayList(); + + public EntityBulletBaseMK4CL(World world) { + super(world); + } + + public EntityBulletBaseMK4CL(EntityLivingBase entity, BulletConfig config, float damage, float spread, double sideOffset, double heightOffset, double forwardOffset) { + super(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); + } + + @Override + protected void entityInit() { + super.entityInit(); + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); + } + + @Override + public void setDead() { + super.setDead(); + clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java new file mode 100644 index 000000000..d6370efb8 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -0,0 +1,612 @@ +package com.hbm.entity.projectile; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.bomb.BlockDetonatable; +import com.hbm.entity.effect.EntityCloudFleijaRainbow; +import com.hbm.entity.effect.EntityEMPBlast; +import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; +import com.hbm.explosion.vanillant.standard.BlockProcessorNoDamage; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.GunConfiguration; +import com.hbm.items.weapon.ItemGunBase; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.potion.HbmPotion; +import com.hbm.util.ArmorUtil; +import com.hbm.util.BobMathUtil; +import com.hbm.util.Tuple.Pair; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.util.MovingObjectPosition.MovingObjectType; +import net.minecraft.world.World; + +/** + * MK2 which features several improvements: + * - uses generic throwable code, reducing boilerplate nonsense + * - uses approach-based interpolation, preventing desyncs and making movement silky-smooth + * - new adjustments in the base class allow for multiple MOP impacts per frame + * - also comes with tons of legacy code to ensure compat (sadly) + * @author hbm + */ +public class EntityBulletBaseNT extends EntityThrowableInterp implements IBulletBase { + + @Override public double prevX() { return prevRenderX; } + @Override public double prevY() { return prevRenderY; } + @Override public double prevZ() { return prevRenderZ; } + @Override public void prevX(double d) { prevRenderX = d; } + @Override public void prevY(double d) { prevRenderY = d; } + @Override public void prevZ(double d) { prevRenderZ = d; } + @Override public List> nodes() { return this.trailNodes; } + + private BulletConfiguration config; + public float overrideDamage; + + public double prevRenderX; + public double prevRenderY; + public double prevRenderZ; + public final List> trailNodes = new ArrayList>(); + + public BulletConfiguration getConfig() { + return config; + } + + public EntityBulletBaseNT(World world) { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + } + + public EntityBulletBaseNT(World world, int config) { + super(world); + this.config = BulletConfigSyncingUtil.pullConfig(config); + this.dataWatcher.updateObject(18, config); + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); + this.renderDistanceWeight = 10.0D; + + if(this.config == null) { + this.setDead(); + return; + } + + this.setSize(0.5F, 0.5F); + } + + public EntityBulletBaseNT(World world, int config, EntityLivingBase entity) { + super(world); + this.config = BulletConfigSyncingUtil.pullConfig(config); + this.dataWatcher.updateObject(18, config); + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); + thrower = entity; + + ItemStack gun = entity.getHeldItem(); + boolean offsetShot = true; + boolean accuracyBoost = false; + + if(gun != null && gun.getItem() instanceof ItemGunBase) { + GunConfiguration cfg = ((ItemGunBase) gun.getItem()).mainConfig; + + if(cfg != null) { + if(cfg.hasSights && entity.isSneaking()) { + offsetShot = false; + accuracyBoost = true; + } + + if(cfg.isCentered){ + offsetShot = false; + } + } + } + + this.setLocationAndAngles(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, entity.rotationYaw, entity.rotationPitch); + + if(offsetShot) { + double sideOffset = 0.16D; + + this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; + this.posY -= 0.1D; + this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; + } else { + this.posY -= 0.1D; + } + this.setPosition(this.posX, this.posY, this.posZ); + + this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); + + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread * (accuracyBoost ? 0.25F : 1F)); + } + + public EntityBulletBaseNT(World world, int config, EntityLivingBase entity, EntityLivingBase target, float motion, float deviation) { + super(world); + + this.config = BulletConfigSyncingUtil.pullConfig(config); + this.dataWatcher.updateObject(18, config); + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); + this.thrower = entity; + + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + + this.posY = entity.posY + entity.getEyeHeight() - 0.10000000149011612D; + double d0 = target.posX - entity.posX; + double d1 = target.boundingBox.minY + target.height / 3.0F - this.posY; + double d2 = target.posZ - entity.posZ; + double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); + + if (d3 >= 1.0E-7D) { + float f2 = (float) (Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; + float f3 = (float) (-(Math.atan2(d1, d3) * 180.0D / Math.PI)); + double d4 = d0 / d3; + double d5 = d2 / d3; + this.setLocationAndAngles(entity.posX + d4, this.posY, entity.posZ + d5, f2, f3); + this.yOffset = 0.0F; + this.setThrowableHeading(d0, d1, d2, motion, deviation); + } + } + + @Override + protected void entityInit() { + super.entityInit(); + //style + this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); + //trail + this.dataWatcher.addObject(17, Byte.valueOf((byte) 0)); + //bullet config sync + this.dataWatcher.addObject(18, Integer.valueOf((int) 0)); + } + + @Override + public void onUpdate() { + + if(config == null) config = BulletConfigSyncingUtil.pullConfig(dataWatcher.getWatchableObjectInt(18)); + + if(config == null){ + this.setDead(); + return; + } + + if(worldObj.isRemote && config.style == BulletConfiguration.STYLE_TAU) { + if(trailNodes.isEmpty()) { + this.ignoreFrustumCheck = true; + trailNodes.add(new Pair(Vec3.createVectorHelper(-motionX * 2, -motionY * 2, -motionZ * 2), 0D)); + } else { + trailNodes.add(new Pair(Vec3.createVectorHelper(0, 0, 0), 1D)); + } + } + + if(worldObj.isRemote && this.config.blackPowder && this.ticksExisted == 1) { + + for(int i = 0; i < 15; i++) { + double mod = rand.nextDouble(); + this.worldObj.spawnParticle("smoke", this.posX, this.posY, this.posZ, + (this.motionX + rand.nextGaussian() * 0.05) * mod, + (this.motionY + rand.nextGaussian() * 0.05) * mod, + (this.motionZ + rand.nextGaussian() * 0.05) * mod); + } + + double mod = 0.5; + this.worldObj.spawnParticle("flame", this.posX + this.motionX * mod, this.posY + this.motionY * mod, this.posZ + this.motionZ * mod, 0, 0, 0); + } + + if(!worldObj.isRemote) { + + if(config.maxAge == 0) { + if(this.config.bntUpdate != null) this.config.bntUpdate.behaveUpdate(this); + this.setDead(); + return; + } + + if(this.ticksExisted > config.maxAge) this.setDead(); + } + + if(this.config.bntUpdate != null) this.config.bntUpdate.behaveUpdate(this); + + this.prevPosX = posX; + this.prevPosY = posY; + this.prevPosZ = posZ; + + super.onUpdate(); + + if(worldObj.isRemote && !config.vPFX.isEmpty()) { + + Vec3 vec = Vec3.createVectorHelper(posX - prevPosX, posY - prevPosY, posZ - prevPosZ); + double motion = Math.max(vec.lengthVector(), 0.1); + vec = vec.normalize(); + + for(double d = 0; d < motion; d += 0.5) { + + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "vanillaExt"); + nbt.setString("mode", config.vPFX); + nbt.setDouble("posX", this.posX - vec.xCoord * d); + nbt.setDouble("posY", this.posY - vec.yCoord * d); + nbt.setDouble("posZ", this.posZ - vec.zCoord * d); + MainRegistry.proxy.effectNT(nbt); + } + } + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + + if(mop.typeOfHit == MovingObjectType.BLOCK) { + + boolean hRic = rand.nextInt(100) < config.HBRC; + boolean doesRic = config.doesRicochet && hRic; + + if(!config.isSpectral && !doesRic) { + this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + this.onBlockImpact(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); + } + + if(doesRic) { + + Vec3 face = null; + + switch(mop.sideHit) { + case 0: face = Vec3.createVectorHelper(0, -1, 0); break; + case 1: face = Vec3.createVectorHelper(0, 1, 0); break; + case 2: face = Vec3.createVectorHelper(0, 0, 1); break; + case 3: face = Vec3.createVectorHelper(0, 0, -1); break; + case 4: face = Vec3.createVectorHelper(-1, 0, 0); break; + case 5: face = Vec3.createVectorHelper(1, 0, 0); break; + } + + if(face != null) { + + Vec3 vel = Vec3.createVectorHelper(motionX, motionY, motionZ); + vel.normalize(); + + boolean lRic = rand.nextInt(100) < config.LBRC; + double angle = Math.abs(BobMathUtil.getCrossAngle(vel, face) - 90); + + if(hRic || (angle <= config.ricochetAngle && lRic)) { + switch(mop.sideHit) { + case 0: + case 1: motionY *= -1; break; + case 2: + case 3: motionZ *= -1; break; + case 4: + case 5: motionX *= -1; break; + } + + if(config.plink == 1) + worldObj.playSoundAtEntity(this, "hbm:weapon.ricochet", 0.25F, 1.0F); + if(config.plink == 2) + worldObj.playSoundAtEntity(this, "hbm:weapon.gBounce", 1.0F, 1.0F); + + this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + onRicochet(mop.blockX, mop.blockY, mop.blockZ); + + //worldObj.setBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), Blocks.dirt); + + } else { + if(!worldObj.isRemote) { + this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + onBlockImpact(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); + } + } + + /*this.posX += (mop.hitVec.xCoord - this.posX) * 0.6; + this.posY += (mop.hitVec.yCoord - this.posY) * 0.6; + this.posZ += (mop.hitVec.zCoord - this.posZ) * 0.6;*/ + + this.motionX *= config.bounceMod; + this.motionY *= config.bounceMod; + this.motionZ *= config.bounceMod; + } + } + + } + + if(mop.entityHit != null) { + + DamageSource damagesource = this.config.getDamage(this, this.thrower); + Entity victim = mop.entityHit; + + if(!config.doesPenetrate) { + this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + onEntityImpact(victim); + } else { + onEntityHurt(victim); + } + + float damage = rand.nextFloat() * (config.dmgMax - config.dmgMin) + config.dmgMin; + + if(overrideDamage != 0) + damage = overrideDamage; + + boolean headshot = false; + + if(victim instanceof EntityLivingBase && this.config.headshotMult > 1F) { + EntityLivingBase living = (EntityLivingBase) victim; + double head = living.height - living.getEyeHeight(); + + if(!!living.isEntityAlive() && mop.hitVec != null && mop.hitVec.yCoord > (living.posY + living.height - head * 2)) { + damage *= this.config.headshotMult; + headshot = true; + } + } + + if(victim != null && !victim.attackEntityFrom(damagesource, damage)) { + + try { + Field lastDamage = ReflectionHelper.findField(EntityLivingBase.class, "lastDamage", "field_110153_bc"); + float dmg = (float) damage + lastDamage.getFloat(victim); + if(!victim.attackEntityFrom(damagesource, dmg)) headshot = false; + } catch (Exception x) { } + + } + + if(!worldObj.isRemote && headshot) { + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + double head = living.height - living.getEyeHeight(); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setInteger("count", 15); + data.setDouble("motion", 0.1D); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, living.posX, living.posY + living.height - head, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); + worldObj.playSoundEffect(victim.posX, victim.posY, victim.posZ, "mob.zombie.woodbreak", 1.0F, 0.95F + rand.nextFloat() * 0.2F); + } + } + } + } + + //for when a bullet dies by hitting a block + private void onBlockImpact(int bX, int bY, int bZ, int sideHit) { + Block block = worldObj.getBlock(bX, bY, bZ); + + if(config.bntImpact != null) + config.bntImpact.behaveBlockHit(this, bX, bY, bZ, sideHit); + + if(!worldObj.isRemote) { + if(!config.liveAfterImpact && !config.isSpectral && bY > -1 && !this.inGround) this.setDead(); + if(!config.doesPenetrate && bY == -1) this.setDead(); + } + + if(config.incendiary > 0 && !this.worldObj.isRemote) { + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX + 1, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX + 1, (int)posY, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX - 1, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX - 1, (int)posY, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY + 1, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY + 1, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY - 1, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY - 1, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ + 1) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ + 1, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ - 1) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ - 1, Blocks.fire); + } + + if(config.emp > 0) + ExplosionNukeGeneric.empBlast(this.worldObj, (int)(this.posX + 0.5D), (int)(this.posY + 0.5D), (int)(this.posZ + 0.5D), config.emp); + + if(config.emp > 3) { + if (!this.worldObj.isRemote) { + + EntityEMPBlast cloud = new EntityEMPBlast(this.worldObj, config.emp); + cloud.posX = this.posX; + cloud.posY = this.posY + 0.5F; + cloud.posZ = this.posZ; + + this.worldObj.spawnEntityInWorld(cloud); + } + } + + if(config.jolt > 0 && !worldObj.isRemote) + ExplosionLarge.jolt(worldObj, posX, posY, posZ, config.jolt, 150, 0.25); + + if(config.explosive > 0 && !worldObj.isRemote) { + //worldObj.newExplosion(this.thrower, posX, posY, posZ, config.explosive, config.incendiary > 0, config.blockDamage); + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, config.explosive, this.thrower); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + if(config.blockDamage) vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(config.incendiary > 0 ? new BlockMutatorFire() : null)); + else vnt.setBlockProcessor(new BlockProcessorNoDamage().withBlockEffect(config.incendiary > 0 ? new BlockMutatorFire() : null)); + vnt.setEntityProcessor(new EntityProcessorStandard().allowSelfDamage()); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectStandard()); + vnt.explode(); + } + + if(config.shrapnel > 0 && !worldObj.isRemote) + ExplosionLarge.spawnShrapnels(worldObj, posX, posY, posZ, config.shrapnel); + + if(config.chlorine > 0 && !worldObj.isRemote) { + ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, config.chlorine, 1.5, 0); + worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); + } + + if(config.rainbow > 0 && !worldObj.isRemote) { + EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, config.rainbow); + if(!ex.isDead) { + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); + worldObj.spawnEntityInWorld(ex); + + EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(this.worldObj, config.rainbow); + cloud.posX = this.posX; + cloud.posY = this.posY; + cloud.posZ = this.posZ; + this.worldObj.spawnEntityInWorld(cloud); + } + } + + if(config.nuke > 0 && !worldObj.isRemote) { + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, config.nuke, posX, posY, posZ)); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) data.setBoolean("balefire", true); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + } + + if(config.destroysBlocks && !worldObj.isRemote) { + if(block.getBlockHardness(worldObj, bX, bY, bZ) <= 120) + worldObj.func_147480_a(bX, bY, bZ, false); + } else if(config.doesBreakGlass && !worldObj.isRemote) { + if(block == Blocks.glass || block == Blocks.glass_pane || block == Blocks.stained_glass || block == Blocks.stained_glass_pane) + worldObj.func_147480_a(bX, bY, bZ, false); + + if(block instanceof BlockDetonatable) { + ((BlockDetonatable) block).onShot(worldObj, bX, bY, bZ); + } + } + } + + //for when a bullet dies by hitting a block + private void onRicochet(int bX, int bY, int bZ) { + + if(config.bntRicochet != null) + config.bntRicochet.behaveBlockRicochet(this, bX, bY, bZ); + } + + //for when a bullet dies by hitting an entity + private void onEntityImpact(Entity e) { + onEntityHurt(e); + onBlockImpact(-1, -1, -1, -1); + + if(config.bntHit != null) + config.bntHit.behaveEntityHit(this, e); + + //this.setDead(); + } + + //for when a bullet hurts an entity, not necessarily dying + private void onEntityHurt(Entity e) { + + if(config.bntHurt != null) + config.bntHurt.behaveEntityHurt(this, e); + + if(config.incendiary > 0 && !worldObj.isRemote) { + e.setFire(config.incendiary); + } + + if(config.leadChance > 0 && !worldObj.isRemote && worldObj.rand.nextInt(100) < config.leadChance && e instanceof EntityLivingBase) { + ((EntityLivingBase)e).addPotionEffect(new PotionEffect(HbmPotion.lead.id, 10 * 20, 0)); + } + + if(e instanceof EntityLivingBase && config.effects != null && !config.effects.isEmpty() && !worldObj.isRemote) { + + for(PotionEffect effect : config.effects) { + ((EntityLivingBase)e).addPotionEffect(new PotionEffect(effect)); + } + } + + if(config.instakill && e instanceof EntityLivingBase && !worldObj.isRemote) { + + if(!(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)) + ((EntityLivingBase)e).setHealth(0.0F); + } + + if(config.caustic > 0 && e instanceof EntityPlayer){ + ArmorUtil.damageSuit((EntityPlayer)e, 0, config.caustic); + ArmorUtil.damageSuit((EntityPlayer)e, 1, config.caustic); + ArmorUtil.damageSuit((EntityPlayer)e, 2, config.caustic); + ArmorUtil.damageSuit((EntityPlayer)e, 3, config.caustic); + } + } + + @Override + public boolean doesPenetrate() { + return this.config.doesPenetrate; + } + + @Override + public boolean isSpectral() { + return this.config.isSpectral; + } + + @Override + public int selfDamageDelay() { + return this.config.selfDamageDelay; + } + + @Override + protected double headingForceMult() { + return 1D; + } + + @Override + public double getGravityVelocity() { + return this.config.gravity; + } + + @Override + protected double motionMult() { + return this.config.velocity; + } + + @Override + protected float getAirDrag() { + return 1F; + } + + @Override + protected float getWaterDrag() { + return 1F; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + int cfg = nbt.getInteger("config"); + this.config = BulletConfigSyncingUtil.pullConfig(cfg); + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); + + if(this.config == null) { + this.setDead(); + return; + } + + this.overrideDamage = nbt.getFloat("damage"); + this.dataWatcher.updateObject(18, cfg); + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("config", dataWatcher.getWatchableObjectInt(18)); + nbt.setFloat("damage", this.overrideDamage); + } + + public static interface IBulletHurtBehaviorNT { public void behaveEntityHurt(EntityBulletBaseNT bullet, Entity hit); } + public static interface IBulletHitBehaviorNT { public void behaveEntityHit(EntityBulletBaseNT bullet, Entity hit); } + public static interface IBulletRicochetBehaviorNT { public void behaveBlockRicochet(EntityBulletBaseNT bullet, int x, int y, int z); } + public static interface IBulletImpactBehaviorNT { public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit); } + public static interface IBulletUpdateBehaviorNT { public void behaveUpdate(EntityBulletBaseNT bullet); } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java new file mode 100644 index 000000000..aaa65b397 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java @@ -0,0 +1,204 @@ +package com.hbm.entity.projectile; + +import java.util.List; + +import com.hbm.items.weapon.sedna.BulletConfig; + +import cpw.mods.fml.common.registry.IEntityAdditionalSpawnData; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpawnData { + + public EntityLivingBase thrower; + public BulletConfig config; + public float damage; + public double headingX; + public double headingY; + public double headingZ; + public double beamLength; + + public EntityBulletBeamBase(World world) { + super(world); + this.ignoreFrustumCheck = true; + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + this.isImmuneToFire = true; + } + + public EntityLivingBase getThrower() { return this.thrower; } + + public EntityBulletBeamBase(EntityLivingBase entity, BulletConfig config, float baseDamage, float angularInaccuracy, double sideOffset, double heightOffset, double frontOffset) { + this(entity.worldObj); + + this.thrower = entity; + this.setBulletConfig(config); + + this.damage = baseDamage * this.config.damageMult; + + this.setLocationAndAngles(thrower.posX, thrower.posY + thrower.getEyeHeight(), thrower.posZ, thrower.rotationYaw + (float) rand.nextGaussian() * angularInaccuracy, thrower.rotationPitch + (float) rand.nextGaussian() * angularInaccuracy); + + Vec3 offset = Vec3.createVectorHelper(sideOffset, heightOffset, frontOffset); + offset.rotateAroundX(-this.rotationPitch / 180F * (float) Math.PI); + offset.rotateAroundY(-this.rotationYaw / 180F * (float) Math.PI); + + this.posX += offset.xCoord; + this.posY += offset.yCoord; + this.posZ += offset.zCoord; + + this.setPosition(this.posX, this.posY, this.posZ); + + this.headingX = (double) (-MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI)); + this.headingZ = (double) (MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI)); + this.headingY = (double) (-MathHelper.sin((this.rotationPitch) / 180.0F * (float) Math.PI)); + + double range = 250D; + this.headingX *= range; + this.headingY *= range; + this.headingZ *= range; + + performHitscan(); + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(3, Integer.valueOf(0)); + } + + public void setBulletConfig(BulletConfig config) { + this.config = config; + this.dataWatcher.updateObject(3, config.id); + } + + public BulletConfig getBulletConfig() { + int id = this.dataWatcher.getWatchableObjectInt(3); + if(id < 0 || id > BulletConfig.configs.size()) return null; + return BulletConfig.configs.get(id); + } + + @Override + public void onUpdate() { + + if(config == null) config = this.getBulletConfig(); + + if(config == null){ + this.setDead(); + return; + } + + if(config.onUpdate != null) config.onUpdate.accept(this); + + super.onUpdate(); + + if(!worldObj.isRemote && this.ticksExisted > config.expires) this.setDead(); + } + + protected void performHitscan() { + + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.headingX, this.posY + this.headingY, this.posZ + this.headingZ); + MovingObjectPosition mop = null; + if(!this.isSpectral()) mop = this.worldObj.func_147447_a(pos, nextPos, false, true, false); + pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + nextPos = Vec3.createVectorHelper(this.posX + this.headingX, this.posY + this.headingY, this.posZ + this.headingZ); + + if(mop != null) { + nextPos = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + } + + if(!this.worldObj.isRemote && this.doesImpactEntities()) { + + Entity hitEntity = null; + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.headingX, this.headingY, this.headingZ).expand(1.0D, 1.0D, 1.0D)); + double nearest = 0.0D; + MovingObjectPosition nonPenImpact = null; + + for(int j = 0; j < list.size(); ++j) { + Entity entity = (Entity) list.get(j); + + if(entity.canBeCollidedWith() && entity != thrower) { + double hitbox = 0.3F; + AxisAlignedBB aabb = entity.boundingBox.expand(hitbox, hitbox, hitbox); + MovingObjectPosition hitMop = aabb.calculateIntercept(pos, nextPos); + + if(hitMop != null) { + + // if penetration is enabled, run impact for all intersecting entities + if(this.doesPenetrate()) { + this.onImpact(new MovingObjectPosition(entity, hitMop.hitVec)); + } else { + + double dist = pos.distanceTo(hitMop.hitVec); + + if(dist < nearest || nearest == 0.0D) { + hitEntity = entity; + nearest = dist; + nonPenImpact = hitMop; + } + } + } + } + } + + // if not, only run it for the closest MOP + if(!this.doesPenetrate() && hitEntity != null) { + mop = new MovingObjectPosition(hitEntity, nonPenImpact.hitVec); + } + } + + if(mop != null) { + if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && this.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ) == Blocks.portal) { + this.setInPortal(); + } else { + this.onImpact(mop); + } + + Vec3 vec = Vec3.createVectorHelper(mop.hitVec.xCoord - posX, mop.hitVec.yCoord - posY, mop.hitVec.zCoord - posZ); + this.beamLength = vec.lengthVector(); + } else { + Vec3 vec = Vec3.createVectorHelper(nextPos.xCoord - posX, nextPos.yCoord - posY, nextPos.zCoord - posZ); + this.beamLength = vec.lengthVector(); + } + + } + + + protected void onImpact(MovingObjectPosition mop) { + if(!worldObj.isRemote) { + if(this.config.onImpactBeam != null) this.config.onImpactBeam.accept(this, mop); + } + } + + public boolean doesImpactEntities() { return this.config.impactsEntities; } + public boolean doesPenetrate() { return this.config.doesPenetrate; } + public boolean isSpectral() { return this.config.isSpectral; } + + @Override @SideOnly(Side.CLIENT) public float getShadowSize() { return 0.0F; } + + @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } + @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } + + @Override public void writeSpawnData(ByteBuf buf) { + buf.writeDouble(beamLength); + buf.writeFloat(rotationYaw); + buf.writeFloat(rotationPitch); + } + @Override public void readSpawnData(ByteBuf buf) { + this.beamLength = buf.readDouble(); + this.rotationYaw = buf.readFloat(); + this.rotationPitch = buf.readFloat(); + } + + @Override @SideOnly(Side.CLIENT) public boolean canRenderOnFire() { return false; } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityChemical.java b/src/main/java/com/hbm/entity/projectile/EntityChemical.java index 003414be6..9cee29064 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChemical.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChemical.java @@ -4,16 +4,12 @@ import java.awt.Color; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.mob.glyphid.EntityGlyphid; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.trait.FT_Combustible; -import com.hbm.inventory.fluid.trait.FT_Corrosive; -import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FT_Poison; -import com.hbm.inventory.fluid.trait.FT_Toxin; -import com.hbm.inventory.fluid.trait.FT_VentRadiation; +import com.hbm.inventory.fluid.trait.*; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IRepairable; @@ -43,6 +39,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; + public class EntityChemical extends EntityThrowableNT { /* @@ -65,7 +62,7 @@ public class EntityChemical extends EntityThrowableNT { this.isImmuneToFire = true; } - public EntityChemical(World world, EntityLivingBase thrower) { + public EntityChemical(World world, EntityLivingBase thrower, double sideOffset, double heightOffset, double frontOffset) { super(world, thrower); this.ignoreFrustumCheck = true; this.isImmuneToFire = true; @@ -175,7 +172,7 @@ public class EntityChemical extends EntityThrowableNT { } if(type.temperature >= 100) { - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_boil), 5F + (type.temperature - 100) * 0.02F); //5 damage at 100°C with one extra damage every 50°C + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_boil), 0.25F + (type.temperature - 100) * 0.001F); //.25 damage at 100°C with one extra damage every 1000°C if(type.temperature >= 500) { e.setFire(10); //afterburn for 10 seconds @@ -185,9 +182,6 @@ public class EntityChemical extends EntityThrowableNT { if(style == ChemicalStyle.LIQUID || style == ChemicalStyle.GAS) { if(type.temperature < -20) { if(living != null) { //only living things are affected - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_cryolator), 5F + (type.temperature + 20) * -0.05F); //5 damage at -20°C with one extra damage every -20°C - living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 2)); - living.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 100, 4)); } } @@ -205,6 +199,12 @@ public class EntityChemical extends EntityThrowableNT { HbmLivingProps.setOil(living, 300); //doused in oil for 15 seconds } } + if(type.hasTrait(Fluids.DELICIOUS.getClass())) { + if(living != null && living.isEntityAlive()) { + living.heal(2F * (float) intensity); + } + } + } if(this.isExtinguishing()) { @@ -213,7 +213,7 @@ public class EntityChemical extends EntityThrowableNT { if(style == ChemicalStyle.BURNING) { FT_Combustible trait = type.getTrait(FT_Combustible.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), 2F + (trait != null ? (trait.getCombustionEnergy() / 100_000F) : 0)); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), 0.2F + (trait != null ? (trait.getCombustionEnergy() / 100_000F) : 0)); e.setFire(5); } @@ -223,17 +223,17 @@ public class EntityChemical extends EntityThrowableNT { float heat = Math.max(flammable != null ? flammable.getHeatEnergy() / 50_000F : 0, combustible != null ? combustible.getCombustionEnergy() / 100_000F : 0); heat *= intensity; - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), (2F + heat) * (float) intensity); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), (0.2F + heat) * (float) intensity); e.setFire((int) Math.ceil(5 * intensity)); } if(type.hasTrait(FT_Corrosive.class)) { FT_Corrosive trait = type.getTrait(FT_Corrosive.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_acid), trait.getRating() / 20F); - + if(living != null) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(living, getDamage(ModDamageSource.s_acid), trait.getRating() / 50F); for(int i = 0; i < 4; i++) { - ArmorUtil.damageSuit(living, i, trait.getRating() / 5); + ArmorUtil.damageSuit(living, i, trait.getRating() / 40); } } } @@ -261,6 +261,26 @@ public class EntityChemical extends EntityThrowableNT { trait.affect(living, intensity); } } + + if(type.hasTrait(FT_Pheromone.class)){ + + FT_Pheromone pheromone = type.getTrait(FT_Pheromone.class); + + if(living != null) { + living.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 2)); + living.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 5 * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 2 * 60 * 20, 4)); + + if (living instanceof EntityGlyphid && pheromone.getType() == 1) { + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 5 * 60 * 20, 4)); + living.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 60 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 60 * 20, 19)); + + } else if (living instanceof EntityPlayer && pheromone.getType() == 2) { + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 2)); + } + } + } if(type == Fluids.XPJUICE) { @@ -295,14 +315,14 @@ public class EntityChemical extends EntityThrowableNT { } //terribly copy-pasted from EntityEnderman.class - protected boolean teleportRandomly(Entity e) { + public boolean teleportRandomly(Entity e) { double x = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D; double y = this.posY + (double) (this.rand.nextInt(64) - 32); double z = this.posZ + (this.rand.nextDouble() - 0.5D) * 64.0D; return this.teleportTo(e, x, y, z); } - protected boolean teleportTo(Entity e, double x, double y, double z) { + public boolean teleportTo(Entity e, double x, double y, double z) { double targetX = e.posX; double targetY = e.posY; @@ -381,7 +401,7 @@ public class EntityChemical extends EntityThrowableNT { FT_VentRadiation trait = type.getTrait(FT_VentRadiation.class); ChunkRadiationManager.proxy.incrementRad(worldObj, mop.blockX, mop.blockY, mop.blockZ, trait.getRadPerMB() * 5); } - + ChemicalStyle style = getStyle(); if(style == ChemicalStyle.BURNING || style == ChemicalStyle.GASFLAME) { @@ -395,6 +415,18 @@ public class EntityChemical extends EntityThrowableNT { } } } + + if(style == ChemicalStyle.BURNING || style == ChemicalStyle.GASFLAME) { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + Block fire = type == Fluids.BALEFIRE ? ModBlocks.balefire : Blocks.fire; + + if(worldObj.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isAir(worldObj, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) { + worldObj.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, fire); + } + } + } if(this.isExtinguishing()) { @@ -412,6 +444,18 @@ public class EntityChemical extends EntityThrowableNT { if(core instanceof IRepairable) { ((IRepairable) core).tryExtinguish(worldObj, x, y, z, fext); } + + if(fext == EnumExtinguishType.WATER && style == ChemicalStyle.LIQUID) { + for(int i = -2; i <= 2; i++) { + for(int j = 0; j <= 1; j++) { + for(int k = -2; k <= 2; k++) { + if(worldObj.getBlock(x + i, y + j, z + k) == ModBlocks.fallout) { + worldObj.setBlock(x + i, y + j, z + k, Blocks.air); + } + } + } + } + } } Block block = worldObj.getBlock(x, y, z); @@ -425,6 +469,7 @@ public class EntityChemical extends EntityThrowableNT { int meta = worldObj.getBlockMetadata(x, y, z); if(block == Blocks.cobblestone) worldObj.setBlock(x, y, z, Blocks.mossy_cobblestone); if(block == Blocks.stonebrick && meta == 0) worldObj.setBlock(x, y, z, Blocks.stonebrick, 1, 3); + if(block == ModBlocks.waste_earth) worldObj.setBlock(x, y, z, Blocks.grass); if(block == ModBlocks.brick_concrete) worldObj.setBlock(x, y, z, ModBlocks.brick_concrete_mossy); if(block == ModBlocks.concrete_brick_slab && meta % 8 == 0) worldObj.setBlock(x, y, z, ModBlocks.concrete_brick_slab, meta + 1, 3); if(block == ModBlocks.brick_concrete_stairs) worldObj.setBlock(x, y, z, ModBlocks.brick_concrete_mossy_stairs, meta, 3); diff --git a/src/main/java/com/hbm/entity/projectile/EntityCog.java b/src/main/java/com/hbm/entity/projectile/EntityCog.java index 84c27bb77..8fb460a3e 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityCog.java +++ b/src/main/java/com/hbm/entity/projectile/EntityCog.java @@ -2,8 +2,8 @@ package com.hbm.entity.projectile; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java deleted file mode 100644 index fe59e30f2..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java +++ /dev/null @@ -1,571 +0,0 @@ -package com.hbm.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import java.util.List; - -import com.hbm.lib.ModDamageSource; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityCombineBall extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityCombineBall(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityCombineBall(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityCombineBall(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityCombineBall(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityCombineBall(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - this.setDead(); - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = ModDamageSource.causeCombineDamage(this, this); - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, 1000F); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - float f3 = 0.99F; - f1 = 0.05F; - - if (this.isInWater()) - { - for (int l = 0; l < 4; ++l) - { - f4 = 0.25F; - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ); - } - - f3 = 0.8F; - } - - if (this.isWet()) - { - this.extinguish(); - } - - this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3; - this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if (this.ticksExisted > 250) - this.setDead(); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java index 1c0b0f27c..e9c5dc228 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java @@ -3,7 +3,7 @@ package com.hbm.entity.projectile; import net.minecraft.entity.EntityLivingBase; import net.minecraft.world.World; -public class EntityCombineBallNT extends EntityBulletBase { +public class EntityCombineBallNT extends EntityBulletBaseNT { public EntityCombineBallNT(World world, int config, EntityLivingBase shooter) { super(world, config, shooter); @@ -13,6 +13,6 @@ public class EntityCombineBallNT extends EntityBulletBase { @Override public void setDead() { super.setDead(); - worldObj.createExplosion(shooter, posX, posY, posZ, 2, false); + worldObj.createExplosion(this.getThrower(), posX, posY, posZ, 2, false); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java b/src/main/java/com/hbm/entity/projectile/EntityDischarge.java deleted file mode 100644 index 59b11bc82..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java +++ /dev/null @@ -1,595 +0,0 @@ -package com.hbm.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import java.util.List; - -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.lib.ModDamageSource; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityDischarge extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityDischarge(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(1.5F, 1.5F); - } - - public EntityDischarge(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(1.5F, 1.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityDischarge(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityDischarge(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(1.5F, 1.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityDischarge(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - this.setDead(); - - EntityEMPBlast cloud = new EntityEMPBlast(this.worldObj, 10); - cloud.posX = this.posX; - cloud.posY = this.posY + 0.5F; - cloud.posZ = this.posZ; - if (!this.worldObj.isRemote) { - this.worldObj.spawnEntityInWorld(cloud); - } - - ExplosionNukeGeneric.empBlast(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = ModDamageSource.causeDischargeDamage(this, this); - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, 24 + rand.nextInt(11)); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - float f3 = 0.99F; - f1 = 0.05F; - - if (this.isInWater()) - { - for (int l = 0; l < 4; ++l) - { - f4 = 0.25F; - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ); - } - - f3 = 0.8F; - } - - if (this.isWet()) - { - this.extinguish(); - } - - this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3; - this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if (this.ticksExisted > 250) { - - EntityEMPBlast cloud = new EntityEMPBlast(this.worldObj, 10); - cloud.posX = this.posX; - cloud.posY = this.posY + 0.5F; - cloud.posZ = this.posZ; - if (!this.worldObj.isRemote) { - this.worldObj.spawnEntityInWorld(cloud); - } - - ExplosionNukeGeneric.empBlast(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); - - this.setDead(); - } - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java b/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java index 7e717bc29..57cae2213 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java +++ b/src/main/java/com/hbm/entity/projectile/EntityDuchessGambit.java @@ -5,12 +5,16 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.ModDamageSource; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -26,52 +30,54 @@ public class EntityDuchessGambit extends EntityThrowable { @Override public void onUpdate() { + if(!worldObj.isRemote && this.ticksExisted == 1) { + for(int i = 0; i < 50; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bf"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, + posX + (rand.nextDouble() - 0.5) * 5, + posY + (rand.nextDouble() - 0.5) * 7, + posZ + (rand.nextDouble() - 0.5) * 20), + new TargetPoint(dimension, posX, posY, posZ, 150)); + } + } + this.lastTickPosX = this.prevPosX = posX; this.lastTickPosY = this.prevPosY = posY; this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - /*this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ;*/ - this.motionY -= 0.03; if(motionY < -1.5) motionY = -1.5; - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:alarm.gambit", 10000.0F, 1F); - this.setDead(); - - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 5, posY - 2, posZ - 9, posX + 5, posY + 2, posZ + 9)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.boat, 1000); - } - - if(!worldObj.isRemote) { - ExplosionLarge.explode(worldObj, posX, posY, posZ - 6, 2, true, false, false); - ExplosionLarge.explode(worldObj, posX, posY, posZ - 3, 2, true, false, false); - ExplosionLarge.explode(worldObj, posX, posY, posZ, 2, true, false, false); - ExplosionLarge.explode(worldObj, posX, posY, posZ + 3, 2, true, false, false); - ExplosionLarge.explode(worldObj, posX, posY, posZ + 6, 2, true, false, false); - - worldObj.setBlock((int)(this.posX - 0.5), (int)(this.posY + 0.5), (int)(this.posZ - 0.5), ModBlocks.boat); - } - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); - } - } + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:alarm.gambit", 10000.0F, 1F); + this.setDead(); + + List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 5, posY - 2, posZ - 9, posX + 5, posY + 2, posZ + 9)); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.boat, 1000); + } + + if(!worldObj.isRemote) { + ExplosionLarge.explode(worldObj, posX, posY, posZ - 6, 2, true, false, false); + ExplosionLarge.explode(worldObj, posX, posY, posZ - 3, 2, true, false, false); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 2, true, false, false); + ExplosionLarge.explode(worldObj, posX, posY, posZ + 3, 2, true, false, false); + ExplosionLarge.explode(worldObj, posX, posY, posZ + 6, 2, true, false, false); + + worldObj.setBlock((int) (this.posX - 0.5), (int) (this.posY + 0.5), (int) (this.posZ - 0.5), ModBlocks.boat); + } + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); + } + } @Override protected void onImpact(MovingObjectPosition p_70184_1_) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityFire.java b/src/main/java/com/hbm/entity/projectile/EntityFire.java deleted file mode 100644 index 535c82346..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityFire.java +++ /dev/null @@ -1,572 +0,0 @@ -package com.hbm.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.lib.ModDamageSource; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityFire extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - public int maxAge = 20; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityFire(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityFire(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityFire(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityFire(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityFire(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - this.setDead(); - int i = 3; - if(!worldObj.isRemote) { - ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, i); - ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, i * 2); - } - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = ModDamageSource.causeFireDamage(this, this.shootingEntity); - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman) && this.ticksExisted >= 5) - { - movingobjectposition.entityHit.setFire(10); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, 5F); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - f1 = 0.05F; - - if (this.isInWater()) - { - this.setDead(); - } - - if (this.isWet()) - { - this.damage *= 0.8F; - } - - float f3 = 0.8F; - this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3; - this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if (this.ticksExisted > this.maxAge) - this.setDead(); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/projectile/EntityLN2.java b/src/main/java/com/hbm/entity/projectile/EntityLN2.java deleted file mode 100644 index a1e64cccc..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityLN2.java +++ /dev/null @@ -1,569 +0,0 @@ -package com.hbm.entity.projectile; - -import java.util.List; - -import com.hbm.explosion.ExplosionThermo; -import com.hbm.lib.ModDamageSource; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityLN2 extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - public int maxAge = 20; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityLN2(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityLN2(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityLN2(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityLN2(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityLN2(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - this.setDead(); - int i = 3; - if(!worldObj.isRemote) { - ExplosionThermo.freeze(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, i); - ExplosionThermo.snow(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, i); - } - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = ModDamageSource.causeIceDamage(this, this.shootingEntity); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, 5F); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - f1 = 0.05F; - - if (this.isInWater()) - { - int j = 3; - ExplosionThermo.freeze(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, j); - ExplosionThermo.snow(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, j); - this.setDead(); - } - - if (this.isWet()) - { - this.damage *= 0.8F; - } - - float f3 = 0.8F; - this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3; - this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if (this.ticksExisted > this.maxAge) - this.setDead(); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityLaser.java b/src/main/java/com/hbm/entity/projectile/EntityLaser.java deleted file mode 100644 index abef03c16..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityLaser.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.entity.projectile; - -import java.util.List; - -import com.hbm.lib.Library; -import com.hbm.lib.ModDamageSource; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityLaser extends Entity { - - public EntityLaser(World world) { - super(world); - this.ignoreFrustumCheck = true; - } - - public EntityLaser(World world, EntityPlayer player) { - super(world); - this.ignoreFrustumCheck = true; - this.dataWatcher.updateObject(20, player.getDisplayName()); - - Vec3 vec = player.getLookVec(); - vec.rotateAroundY(-90F); - float l = 0.25F; - vec.xCoord *= l; - vec.yCoord *= l; - vec.zCoord *= l; - - this.setPosition(player.posX + vec.xCoord, player.posY + player.getEyeHeight(), player.posZ + vec.zCoord); - - } - - @Override - protected void entityInit() { - this.dataWatcher.addObject(20, ""); - } - - @Override - public void onUpdate() { - - if(this.ticksExisted > 1) - this.setDead(); - - int range = 100; - - EntityPlayer player = worldObj.getPlayerEntityByName(this.dataWatcher.getWatchableObjectString(20)); - - if(player != null) { - - //this.setPosition(player.posX, player.posY + player.getEyeHeight(), player.posZ); - - MovingObjectPosition pos = Library.rayTrace(player, range, 1); - - //worldObj.createExplosion(this, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 1, false); - - worldObj.spawnParticle("cloud", pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 0, 0, 0); - worldObj.playSound(pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, "random.fizz", 1, 1, true); - - List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(pos.hitVec.xCoord - 1, pos.hitVec.yCoord - 1, pos.hitVec.zCoord - 1, pos.hitVec.xCoord + 1, pos.hitVec.yCoord + 1, pos.hitVec.zCoord + 1)); - - for(Entity e : list) - e.attackEntityFrom(ModDamageSource.radiation, 5); - } - } - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } - -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java index b8e8365f9..f8a2e6be7 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityBlackHole; import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.effect.EntityRagingVortex; import com.hbm.entity.effect.EntityVortex; import com.hbm.entity.grenade.EntityGrenadeZOMG; @@ -490,7 +490,7 @@ public class EntityModBeam extends Entity implements IProjectile { this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.gadgetRadius, posX, posY, posZ)); - this.worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, posX, posY, posZ, BombConfig.gadgetRadius)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.gadgetRadius); } } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityNightmareBlast.java b/src/main/java/com/hbm/entity/projectile/EntityNightmareBlast.java deleted file mode 100644 index 0ddbb2409..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityNightmareBlast.java +++ /dev/null @@ -1,530 +0,0 @@ -package com.hbm.entity.projectile; - -import java.util.List; - -import com.hbm.entity.grenade.EntityGrenadeZOMG; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityNightmareBlast extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityNightmareBlast(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityNightmareBlast(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityNightmareBlast(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityNightmareBlast(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, int dmgMin, int dmgMax, EntityGrenadeZOMG grenade) { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(grenade.posX, grenade.posY + grenade.getEyeHeight(), grenade.posZ, - grenade.rotationYaw, grenade.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityNightmareBlast(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityNightmareBlast(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.054499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.054499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.054499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if(this.ticksExisted > 100) - this.setDead(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - if(!worldObj.isRemote) { - this.worldObj.setBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f, Blocks.air); - this.setDead(); - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = DamageSource.generic; - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, (float) this.damage); - if(!worldObj.isRemote) - this.worldObj.setBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f, Blocks.air); - this.setDead(); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - f1 = 0.05F; - - if (this.isInWater()) - { - for (int l = 0; l < 4; ++l) - { - f4 = 0.25F; - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ); - } - } - - if (this.isWet()) - { - this.extinguish(); - } - - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java b/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java deleted file mode 100644 index 5e3a1c55c..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.hbm.entity.projectile; - -import com.hbm.entity.particle.EntityOilSpillFX; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityOilSpill extends EntityThrowable { - - public EntityOilSpill(World p_i1773_1_) - { - super(p_i1773_1_); - } - - public EntityOilSpill(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); - } - - @Override - public void entityInit() { - } - - public EntityOilSpill(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } - - @Override - public void onUpdate() { - super.onUpdate(); - if(!worldObj.isRemote) { - worldObj.spawnEntityInWorld(new EntityOilSpillFX(worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - if(this.isBurning()) { - this.setDead(); - worldObj.createExplosion(null, posX, posY, posZ, 1.5F, true); - } - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) - { - if(this.ticksExisted > 5) { - this.setDead(); - } - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityPlasmaBeam.java b/src/main/java/com/hbm/entity/projectile/EntityPlasmaBeam.java deleted file mode 100644 index 406d71d14..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityPlasmaBeam.java +++ /dev/null @@ -1,556 +0,0 @@ -package com.hbm.entity.projectile; - -import java.util.List; - -import com.hbm.entity.grenade.EntityGrenadeZOMG; -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionThermo; -import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; -import com.hbm.main.MainRegistry; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityPlasmaBeam extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityPlasmaBeam(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityPlasmaBeam(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityPlasmaBeam(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityPlasmaBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, int dmgMin, int dmgMax, EntityGrenadeZOMG grenade) { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(grenade.posX, grenade.posY + grenade.getEyeHeight(), grenade.posZ, - grenade.rotationYaw, grenade.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) - * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityPlasmaBeam(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityPlasmaBeam(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.002499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.002499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.002499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if(this.ticksExisted > 100) - this.setDead(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - if(!worldObj.isRemote) { - ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 2); - ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 5); - ExplosionThermo.scorchLight(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 3); - } - this.setDead(); - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - - if(this.ticksExisted > 5 && surviveImmolation(entityplayer)) - movingobjectposition = null; - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = ModDamageSource.causePlasmaDamage(this, this.shootingEntity); - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, 25 + rand.nextInt(20)); - if(!worldObj.isRemote) { - ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 2); - ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 5); - ExplosionThermo.scorchLight(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 3); - } - this.setDead(); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - f1 = 0.05F; - - if (this.isInWater()) - { - this.setDead(); - if(!worldObj.isRemote) { - ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 2); - ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 5); - ExplosionThermo.scorchLight(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 3); - } - } - - if (this.isWet()) - { - this.extinguish(); - } - - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - private boolean surviveImmolation(EntityPlayer player) { - if(player.inventory.hasItem(ModItems.gun_revolver_pip) && player.inventory.hasItem(ModItems.bottle_sparkle) && player.inventory.hasItem(ModItems.geiger_counter)) { - player.triggerAchievement(MainRegistry.achSacrifice); - player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 3 * 20, 6)); - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocket.java b/src/main/java/com/hbm/entity/projectile/EntityRocket.java index d46c15a82..a573b13dc 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocket.java @@ -24,6 +24,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; +// still in use for cluster munitions - somehow! let this fucking class die already public class EntityRocket extends Entity implements IProjectile { private int field_145791_d = -1; diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java deleted file mode 100644 index b3a1ca7da..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java +++ /dev/null @@ -1,761 +0,0 @@ -package com.hbm.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.hbm.entity.particle.EntityTSmokeFX; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.monster.EntitySkeleton; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityRocketHoming extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - public int canBePickedUp; - public int arrowShake; - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - private int knockbackStrength; - private float explosionStrength; - - // specifies the type of stinger rocket that was fired - /* 0 = Normal - * 1 = HE - * 2 = Incendiary - * 4 = Nuclear - * 42 = bone-seeking - */ - public int type; - - - public EntityRocketHoming(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityRocketHoming(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityRocketHoming(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_, int rocketType) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - this.type = rocketType; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityRocketHoming(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_, float strength, int type) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - this.type = type; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - this.explosionStrength = strength; - } - - public EntityRocketHoming(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - /*int j = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - if (block == this.field_145790_g && j == this.inData) - { - ++this.ticksInGround; - if (this.ticksInGround == 1200) - { - this.setDead(); - } - } - else - { - this.inGround = false; - this.motionX *= (double)(this.rand.nextFloat() * 0.2F); - this.motionY *= (double)(this.rand.nextFloat() * 0.2F); - this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); - this.ticksInGround = 0; - this.ticksInAir = 0; - }*/ - - - if (!this.worldObj.isRemote) - { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); - Explode(this.type, this.explosionStrength); - /*EntityNukeExplosionAdvanced explosion = new EntityNukeExplosionAdvanced(this.worldObj); - explosion.speed = 25; - explosion.coefficient = 5.0F; - explosion.destructionRange = 20; - explosion.posX = this.posX; - explosion.posY = this.posY; - explosion.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(explosion);*/ - } - this.setDead(); - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.causeIndirectMagicDamage(this, this); - } - else - { - damagesource = DamageSource.causeIndirectMagicDamage(this, this); - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote) - { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); - Explode(this.type, this.explosionStrength); - } - this.setDead(); - } - } - else - { - if (!this.worldObj.isRemote) - { - //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.5F, true); - Explode(this.type, this.explosionStrength); - } - this.setDead(); - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - if (true) - { - //for (i = 0; i < 4; ++i) - { - //this.worldObj.spawnParticle("cloud", this.posX, this.posY, this.posZ, /*0, 0, 0 this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D,*/ -this.motionX/4, -this.motionY/4, -this.motionZ/4); - if(!worldObj.isRemote && this.ticksExisted > 1) - this.worldObj.spawnEntityInWorld(new EntityTSmokeFX(worldObj, this.posX, this.posY, this.posZ, 0, 0, 0)); - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - //for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - /*while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - }*/ - - f1 = 0.05F; - - if (this.isInWater()) - { - for (int l = 0; l < 4; ++l) - { - f4 = 0.25F; - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ); - } - } - - if (this.isWet()) - { - this.extinguish(); - } - - /*this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3;*/ - //this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if(!steer()) - lockonTicks = 0; - - if (this.ticksExisted > 250) - this.setDead(); - } - - public int homingRadius = 35; - public int homingMod = 15; - public float acceptance = 120; - int lockonTicks = 0; - boolean hasBeeped = false; - - private boolean steer() { - List all = null; - if(this.type == 42) { - all = worldObj.getEntitiesWithinAABB(EntitySkeleton.class, AxisAlignedBB.getBoundingBox(posX - homingRadius, posY - homingRadius, posZ - homingRadius, posX + homingRadius, posY + homingRadius, posZ + homingRadius)); - } else { - all = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - homingRadius, posY - homingRadius, posZ - homingRadius, posX + homingRadius, posY + homingRadius, posZ + homingRadius)); - } - - HashMap targetable = new HashMap(); - Vec3 path = Vec3.createVectorHelper(motionX, motionY, motionZ); - double startSpeed = path.lengthVector(); - path.normalize(); - - if(all.isEmpty()) - return false; - - //Iterate through all entities and only allocate ones that can be targeted - for(Entity e : all) { - - if(e == this.shootingEntity) - continue; - - Vec3 rel = Vec3.createVectorHelper(e.posX - posX, e.posY + e.getEyeHeight() - posY, e.posZ - posZ); - double vecProd = rel.xCoord * path.xCoord + rel.yCoord * path.yCoord + rel.zCoord * path.zCoord; - double bot = rel.lengthVector() * path.lengthVector(); - double angle = Math.acos(vecProd / bot) * 180 / Math.PI; - - if(angle <= acceptance); - if(e.height * e.width * e.width >= 0.5D) - if(!Library.isObstructed(worldObj, e.posX, e.posY, e.posZ, posX, posY, posZ)) - targetable.put(e, angle); - } - - if(targetable.isEmpty()) - return false; - - double smallest = Double.POSITIVE_INFINITY; - Entity nearestE = null; - - //Iterate through all entities and choose the one that has the smallest angle - for(Map.Entry entry : targetable.entrySet()) { - if(entry.getValue() < smallest) { - smallest = entry.getValue(); - nearestE = entry.getKey(); - } - } - - if(nearestE == null) - return false; - - Vec3 winVec = Vec3.createVectorHelper(nearestE.posX - posX, nearestE.posY - posY, nearestE.posZ - posZ); - - winVec.normalize(); - - double newX = ((path.xCoord * (smallest * homingMod - 1)) + winVec.xCoord) / (smallest * homingMod); - double newY = ((path.yCoord * (smallest * homingMod - 1)) + winVec.yCoord) / (smallest * homingMod); - double newZ = ((path.zCoord * (smallest * homingMod - 1)) + winVec.zCoord) / (smallest * homingMod); - - Vec3 newPath = Vec3.createVectorHelper(newX, newY, newZ); - newPath.normalize(); - newPath.xCoord *= startSpeed; - newPath.yCoord *= startSpeed; - newPath.zCoord *= startSpeed; - - motionX = newPath.xCoord; - motionY = newPath.yCoord; - motionZ = newPath.zCoord; - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, (float)startSpeed, 0.0F); - - lockonTicks++; - if(lockonTicks == 5 && !hasBeeped) { - if(this.getIsCritical()) - worldObj.playSoundAtEntity(this, "hbm:weapon.stingerLockOn", 10F, 0.75F); - else - worldObj.playSoundAtEntity(this, "hbm:weapon.stingerLockOn", 10F, 1F); - hasBeeped = true; - } - - return true; - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - p_70014_1_.setFloat("strength", (byte)this.explosionStrength); - p_70014_1_.setByte("type", (byte)this.type); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - this.explosionStrength = p_70037_1_.getFloat("strength"); - this.type = p_70037_1_.getByte("type"); - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_stinger_rocket, 1))) - { - flag = false; - } - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - public void Explode(int type, float strength) { - switch(type) { - case 42: ChunkRadiationManager.proxy.incrementRad(worldObj, (int)posX, (int)posY, (int)posZ, 2000); - case 0: ExplosionLarge.explode(worldObj, posX, posY, posZ, strength, true, false, true); break; - case 1: ExplosionLarge.explode(worldObj, posX, posY, posZ, strength * 2, true, false, true); break; - case 2: ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, strength, true, false, false); break; - case 4: - //ExplosionLarge.explode(worldObj, posX, posY, posZ, strength * 3, false, false, true); - ExplosionNukeSmall.explode(worldObj, posX, posY, posZ, ExplosionNukeSmall.PARAMS_MEDIUM); - break; - default: break; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/projectile/EntityRubble.java b/src/main/java/com/hbm/entity/projectile/EntityRubble.java index 82aedea6b..4cc2daf1f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRubble.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRubble.java @@ -2,26 +2,19 @@ package com.hbm.entity.projectile; import com.hbm.lib.ModDamageSource; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.ParticleBurstPacket; +import com.hbm.packet.toclient.ParticleBurstPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -public class EntityRubble extends EntityThrowable { +public class EntityRubble extends EntityThrowableNT { - public EntityRubble(World p_i1773_1_) + public EntityRubble(World world) { - super(p_i1773_1_); - } - - public EntityRubble(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); + super(world); } @Override @@ -30,19 +23,18 @@ public class EntityRubble extends EntityThrowable { this.dataWatcher.addObject(17, (int)Integer.valueOf(0)); } - public EntityRubble(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + public EntityRubble(World world, double x, double y, double z) { + super(world, x, y, z); } @Override - protected void onImpact(MovingObjectPosition p_70184_1_) + protected void onImpact(MovingObjectPosition mop) { - if (p_70184_1_.entityHit != null) + if (mop.entityHit != null) { byte b0 = 15; - p_70184_1_.entityHit.attackEntityFrom(ModDamageSource.rubble, b0); + mop.entityHit.attackEntityFrom(ModDamageSource.rubble, b0); } if(this.ticksExisted > 2) { @@ -55,7 +47,12 @@ public class EntityRubble extends EntityThrowable { PacketDispatcher.wrapper.sendToAllAround(new ParticleBurstPacket((int)Math.floor(posX), (int)posY, (int)Math.floor(posZ), this.dataWatcher.getWatchableObjectInt(16), this.dataWatcher.getWatchableObjectInt(17)), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 50)); } } - + + @Override + protected float getAirDrag() { + return 1F; + } + public void setMetaBasedOnBlock(Block b, int i) { this.dataWatcher.updateObject(16, Block.getIdFromBlock(b)); diff --git a/src/main/java/com/hbm/entity/projectile/EntitySawblade.java b/src/main/java/com/hbm/entity/projectile/EntitySawblade.java index 9d4a3b592..fcc0c5a79 100644 --- a/src/main/java/com/hbm/entity/projectile/EntitySawblade.java +++ b/src/main/java/com/hbm/entity/projectile/EntitySawblade.java @@ -2,8 +2,8 @@ package com.hbm.entity.projectile; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java index c7cc1a674..a847e7e96 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java +++ b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java @@ -52,13 +52,14 @@ public class EntityShrapnel extends EntityThrowable { if(!worldObj.isRemote) this.setDead(); - if(this.dataWatcher.getWatchableObjectByte(16) == 2) { + int b = this.dataWatcher.getWatchableObjectByte(16); + if(b == 2 || b == 4) { if(!worldObj.isRemote) { if(motionY < -0.2D) { if(worldObj.getBlock(mop.blockX, mop.blockY + 1, mop.blockZ).isReplaceable(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ)) - worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.volcanic_lava_block); + worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, b == 2 ? ModBlocks.volcanic_lava_block : ModBlocks.rad_lava_block); for(int x = mop.blockX - 1; x <= mop.blockX + 1; x++) { for(int y = mop.blockY; y <= mop.blockY + 2; y++) { @@ -73,7 +74,7 @@ public class EntityShrapnel extends EntityThrowable { if(motionY > 0) { ExplosionNT explosion = new ExplosionNT(worldObj, null, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 7); explosion.addAttrib(ExAttrib.NODROP); - explosion.addAttrib(ExAttrib.LAVA_V); + explosion.addAttrib(b == 2 ? ExAttrib.LAVA_V : ExAttrib.LAVA_R); explosion.addAttrib(ExAttrib.NOSOUND); explosion.addAttrib(ExAttrib.ALLMOD); explosion.addAttrib(ExAttrib.NOHURT); @@ -108,6 +109,10 @@ public class EntityShrapnel extends EntityThrowable { this.dataWatcher.updateObject(16, (byte) (b ? 3 : 0)); } + public void setRadVolcano(boolean b) { + this.dataWatcher.updateObject(16, (byte) (b ? 4 : 0)); + } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java index 08c860a57..5c14254dd 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java @@ -7,18 +7,18 @@ import net.minecraft.world.World; public abstract class EntityThrowableInterp extends EntityThrowableNT { - private int turnProgress; - private double syncPosX; - private double syncPosY; - private double syncPosZ; - private double syncYaw; - private double syncPitch; + protected int turnProgress; + protected double syncPosX; + protected double syncPosY; + protected double syncPosZ; + protected double syncYaw; + protected double syncPitch; @SideOnly(Side.CLIENT) - private double velocityX; + protected double velocityX; @SideOnly(Side.CLIENT) - private double velocityY; + protected double velocityY; @SideOnly(Side.CLIENT) - private double velocityZ; + protected double velocityZ; public EntityThrowableInterp(World world) { super(world); @@ -34,6 +34,9 @@ public abstract class EntityThrowableInterp extends EntityThrowableNT { if(!worldObj.isRemote) { super.onUpdate(); } else { + this.lastTickPosX = this.posX; + this.lastTickPosY = this.posY; + this.lastTickPosZ = this.posZ; if(this.turnProgress > 0) { double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 608f999d5..31a3c2392 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -2,6 +2,8 @@ package com.hbm.entity.projectile; import java.util.List; +import com.hbm.util.TrackerUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -32,7 +34,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { public int throwableShake; protected EntityLivingBase thrower; private String throwerName; - private int ticksInGround; + public int ticksInGround; private int ticksInAir; public EntityThrowableNT(World world) { @@ -41,7 +43,17 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } @Override - protected void entityInit() { } + protected void entityInit() { + this.dataWatcher.addObject(2, Byte.valueOf((byte)0)); + } + + public void setStuckIn(int side) { + this.dataWatcher.updateObject(2, (byte) side); + } + + public int getStuckIn() { + return this.dataWatcher.getWatchableObjectByte(2); + } @Override @SideOnly(Side.CLIENT) @@ -81,19 +93,27 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { return 1.5F; } + protected double headingForceMult() { + return 0.0075D; + } + protected float throwAngle() { return 0.0F; } + protected double motionMult() { + return 1.0D; + } + @Override public void setThrowableHeading(double motionX, double motionY, double motionZ, float velocity, float inaccuracy) { float throwLen = MathHelper.sqrt_double(motionX * motionX + motionY * motionY + motionZ * motionZ); motionX /= (double) throwLen; motionY /= (double) throwLen; motionZ /= (double) throwLen; - motionX += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; - motionY += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; - motionZ += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionX += this.rand.nextGaussian() * headingForceMult() * (double) inaccuracy; + motionY += this.rand.nextGaussian() * headingForceMult() * (double) inaccuracy; + motionZ += this.rand.nextGaussian() * headingForceMult() * (double) inaccuracy; motionX *= (double) velocity; motionY *= (double) velocity; motionZ *= (double) velocity; @@ -122,9 +142,6 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { @Override public void onUpdate() { - this.lastTickPosX = this.posX; - this.lastTickPosY = this.posY; - this.lastTickPosZ = this.posZ; super.onUpdate(); if(this.throwableShake > 0) { @@ -155,43 +172,54 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { ++this.ticksInAir; Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.motionX * motionMult(), this.posY + this.motionY * motionMult(), this.posZ + this.motionZ * motionMult()); + MovingObjectPosition mop = null; + if(!this.isSpectral()) mop = this.worldObj.func_147447_a(pos, nextPos, false, true, false); pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + nextPos = Vec3.createVectorHelper(this.posX + this.motionX * motionMult(), this.posY + this.motionY * motionMult(), this.posZ + this.motionZ * motionMult()); if(mop != null) { nextPos = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); } - - if(!this.worldObj.isRemote) { + + if(!this.worldObj.isRemote && this.doesImpactEntities()) { Entity hitEntity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX * motionMult(), this.motionY * motionMult(), this.motionZ * motionMult()).expand(1.0D, 1.0D, 1.0D)); double nearest = 0.0D; EntityLivingBase thrower = this.getThrower(); + MovingObjectPosition nonPenImpact = null; for(int j = 0; j < list.size(); ++j) { Entity entity = (Entity) list.get(j); - - if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= 5)) { + + if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= this.selfDamageDelay()) && entity.isEntityAlive()) { double hitbox = 0.3F; AxisAlignedBB aabb = entity.boundingBox.expand(hitbox, hitbox, hitbox); MovingObjectPosition hitMop = aabb.calculateIntercept(pos, nextPos); if(hitMop != null) { - double dist = pos.distanceTo(hitMop.hitVec); - - if(dist < nearest || nearest == 0.0D) { - hitEntity = entity; - nearest = dist; + + // if penetration is enabled, run impact for all intersecting entities + if(this.doesPenetrate()) { + this.onImpact(new MovingObjectPosition(entity, hitMop.hitVec)); + } else { + + double dist = pos.distanceTo(hitMop.hitVec); + + if(dist < nearest || nearest == 0.0D) { + hitEntity = entity; + nearest = dist; + nonPenImpact = hitMop; + } } } } } - if(hitEntity != null) { - mop = new MovingObjectPosition(hitEntity); + // if not, only run it for the closest MOP + if(!this.doesPenetrate() && hitEntity != null) { + mop = new MovingObjectPosition(hitEntity, nonPenImpact.hitVec); } } @@ -202,35 +230,28 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { this.onImpact(mop); } } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for(this.rotationPitch = (float) (Math.atan2(this.motionY, (double) hyp) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { - ; + if(!this.onGround) { + float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for(this.rotationPitch = (float) (Math.atan2(this.motionY, (double) hyp) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; } - - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } - - this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; - this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + float drag = this.getAirDrag(); double gravity = this.getGravityVelocity(); + this.posX += this.motionX * motionMult(); + this.posY += this.motionY * motionMult(); + this.posZ += this.motionZ * motionMult(); + if(this.isInWater()) { for(int i = 0; i < 4; ++i) { float f = 0.25F; @@ -245,15 +266,26 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { this.motionZ *= (double) drag; this.motionY -= gravity; this.setPosition(this.posX, this.posY, this.posZ); - } } - public boolean alowMultiImpact() { - return false; //TODO + public boolean doesImpactEntities() { + return true; } - public void getStuck(int x, int y, int z) { + public boolean doesPenetrate() { + return false; + } + + public boolean isSpectral() { + return false; + } + + public int selfDamageDelay() { + return 5; + } + + public void getStuck(int x, int y, int z, int side) { this.stuckBlockX = x; this.stuckBlockY = y; this.stuckBlockZ = z; @@ -262,6 +294,8 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { this.motionX = 0; this.motionY = 0; this.motionZ = 0; + this.setStuckIn(side); + TrackerUtil.sendTeleport(worldObj, this); } public double getGravityVelocity() { @@ -306,6 +340,10 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { public float getShadowSize() { return 0.0F; } + + public void setThrower(EntityLivingBase thrower) { + this.thrower = thrower; + } public EntityLivingBase getThrower() { if(this.thrower == null && this.throwerName != null && this.throwerName.length() > 0) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityTom.java b/src/main/java/com/hbm/entity/projectile/EntityTom.java index 7a6e56df7..c8d6854dc 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityTom.java +++ b/src/main/java/com/hbm/entity/projectile/EntityTom.java @@ -30,7 +30,7 @@ public class EntityTom extends EntityThrowable { motionY = -0.5; - if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air || this.posY < 10) { if(!this.worldObj.isRemote) { EntityTomBlast tom = new EntityTomBlast(worldObj); tom.posX = posX; diff --git a/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java b/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java new file mode 100644 index 000000000..ddd1dc760 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityTorpedo.java @@ -0,0 +1,68 @@ +package com.hbm.entity.projectile; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.particle.helper.ExplosionCreator; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityTorpedo extends EntityThrowable { + + public EntityTorpedo(World world) { + super(world); + this.ignoreFrustumCheck = true; + this.isImmuneToFire = true; + } + + @Override + public void onUpdate() { + + if(!worldObj.isRemote && this.ticksExisted == 1) { + for(int i = 0; i < 15; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bf"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, + posX + (rand.nextDouble() - 0.5) * 2, + posY + (rand.nextDouble() - 0.5) * 1, + posZ + (rand.nextDouble() - 0.5) * 2), + new TargetPoint(dimension, posX, posY, posZ, 150)); + } + } + + this.lastTickPosX = this.prevPosX = posX; + this.lastTickPosY = this.prevPosY = posY; + this.lastTickPosZ = this.prevPosZ = posZ; + + this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); + + this.motionY -= 0.04; + if(motionY < -2.5) motionY = -2.5; + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + if(!worldObj.isRemote) { + this.setDead(); + ExplosionCreator.composeEffectStandard(worldObj, posX, posY + 1, posZ); + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 20F); + vnt.makeStandard(); + vnt.explode(); + } + } + } + + @Override + protected void onImpact(MovingObjectPosition p_70184_1_) { } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java index 4eed4570b..49ea4ae20 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java +++ b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java @@ -24,7 +24,7 @@ public class EntityWaterSplash extends EntityThrowable { public EntityWaterSplash(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); } - + @Override public void onUpdate() { super.onUpdate(); @@ -35,8 +35,12 @@ public class EntityWaterSplash extends EntityThrowable { this.setDead(); } } else { - - MainRegistry.proxy.particleControl(posX, posY, posZ, 0); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "waterSplash"); + data.setDouble("posX", posX); + data.setDouble("posY", posY); + data.setDouble("posZ", posZ); + MainRegistry.proxy.effectNT(data); } } diff --git a/src/main/java/com/hbm/entity/projectile/IBulletBase.java b/src/main/java/com/hbm/entity/projectile/IBulletBase.java new file mode 100644 index 000000000..635ce9a09 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/IBulletBase.java @@ -0,0 +1,11 @@ +package com.hbm.entity.projectile; + +import java.util.List; +import com.hbm.util.Tuple.Pair; +import net.minecraft.util.Vec3; + +public interface IBulletBase { + public double prevX(); public double prevY(); public double prevZ(); + public void prevX(double d); public void prevY(double d); public void prevZ(double d); + public List> nodes(); +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index f4a301914..30045a22e 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -12,12 +12,8 @@ import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -56,6 +52,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public double renderX; public double renderY; public double renderZ; + public double cachedSpeed; public EntityRailCarBase coupledFront; public EntityRailCarBase coupledBack; @@ -131,7 +128,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { data.setInteger("color", 0x0000ff); data.setFloat("scale", 1.5F); data.setString("text", id + " (#" + train.ltuIndex + ")"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); + //PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); } } @@ -175,9 +172,20 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; this.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; this.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; + } else { + this.renderX = posX; + this.renderY = posY; + this.renderZ = posZ; } } else { + + if(!this.isOnRail) { + if(this.coupledFront != null) this.coupledFront.couple(this.coupledFront.getCouplingFrom(this), null); + if(this.coupledBack != null) this.coupledBack.couple(this.coupledBack.getCouplingFrom(this), null); + this.coupledFront = null; + this.coupledBack = null; + } if(this.coupledFront != null && this.coupledFront.isDead) { this.coupledFront = null; @@ -188,10 +196,20 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(this.ltu != null) this.ltu.dissolveTrain(); } - if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null)) { + if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null) && this.isOnRail) { LogicalTrainUnit.generateTrain(this); } + if(!this.isOnRail) { + Vec3 motion = Vec3.createVectorHelper(0, 0, this.cachedSpeed); + motion.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180D)); + this.moveEntity(motion.xCoord, motion.yCoord - 0.04, motion.zCoord); + this.renderX = posX; + this.renderY = posY; + this.renderZ = posZ; + this.cachedSpeed *= 0.95D; + } + DummyConfig[] definitions = this.getDummies(); if(!this.initDummies) { @@ -207,7 +225,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { double z = posZ + rot.zCoord; dummy.setPosition(x, y, z); dummy.setSize(def.width, def.height); - dummy.velocityChanged = true; worldObj.spawnEntityInWorld(dummy); this.dummies[i] = dummy; } @@ -215,16 +232,18 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.initDummies = true; } - for(int i = 0; i < definitions.length; i++) { - DummyConfig def = definitions[i]; - BoundingBoxDummyEntity dummy = dummies[i]; - Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); - rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180D)); - rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = renderX + rot.xCoord; - double y = renderY + rot.yCoord; - double z = renderZ + rot.zCoord; - dummy.setPosition(x, y, z); + if(renderY != 0) { + for(int i = 0; i < definitions.length; i++) { + DummyConfig def = definitions[i]; + BoundingBoxDummyEntity dummy = dummies[i]; + Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); + rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180D)); + rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = renderX + rot.xCoord; + double y = renderY + rot.yCoord; + double z = renderZ + rot.zCoord; + dummy.setPosition(x, y, z); + } } } } @@ -318,6 +337,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(Math.abs(speed) < 0.001) speed = 0; + for(EntityRailCarBase car : ltu.trains) car.cachedSpeed = speed; + if(ltu.trains.length == 1) { EntityRailCarBase train = ltu.trains[0]; @@ -355,11 +376,9 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { ltu.moveTrainByApproach(speed); } - if(ltu.trains.length != 1) { - //ltu.pushForce *= 0.95; - ltu.pushForce = 0; - ltu.collideTrain(speed); - } + //ltu.pushForce *= 0.95; + ltu.pushForce = 0; + ltu.collideTrain(speed); } } @@ -388,7 +407,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public void derail() { isOnRail = false; - this.setDead(); + //this.setDead(); } @SideOnly(Side.CLIENT) @@ -745,24 +764,34 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { return totalSpeed; } + /* + * This method has no rhyme or reason behind it. Nothing of this was calculated, instead it was an old system that worked with older constraints, + * which was retrofitted with a slightly newer system and beaten into submission for two consecutive hours until it yielded the results it should. + * Booleans are flipped back and forth based on seemingly random conditions, numbers are inverted and then inverted again and finally smashed into + * the rail system in the hopes that it would make trains work. My apologies extend towards Bob in the future who will inevitably have to rewrite this + * abhorrence because of some constraint change which will cause the entire system to break. Part of me wishes to never touch the train code ever again, + * to abandon the idea and to ban the annoying people on Discord who keep asking about it. Another part wants me to slam my head against this project + * until either it or my skull gives way; and considering I got this far, it appears as if this side is the one that is winning. + */ /** Determines the "front" wagon based on the movement and moves it, then moves all other wagons towards that */ public void moveTrainByApproach(double speed) { - boolean forward = speed < 0; - speed = Math.abs(speed); EntityRailCarBase previous = null; - EntityRailCarBase first = this.trains[0]; + boolean forward = speed > 0; + boolean order = forward ^ first.getCouplingFrom(null) == TrainCoupling.BACK; - for(int i = !forward ? 0 : this.trains.length - 1; !forward ? i < this.trains.length : i >= 0; i += !forward ? 1 : -1) { + for(int i = order ? 0 : this.trains.length - 1; order ? i < this.trains.length : i >= 0; i += order ? 1 : -1) { EntityRailCarBase current = this.trains[i]; if(previous == null) { + if(first == current) speed *= -1; + boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); int sigNum = inReverse ? 1 : -1; BlockPos anchor = current.getCurrentAnchorPos(); - /*Vec3 frontPos = current.getRelPosAlongRail(anchor, current.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 frontPos = current.getRelPosAlongRail(anchor, (speed + current.getLengthSpan()) * -sigNum, new MoveContext(RailCheckType.FRONT, current.getCollisionSpan() - current.getLengthSpan())); if(frontPos == null) { current.derail(); @@ -770,43 +799,16 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { return; } else { anchor = current.getCurrentAnchorPos(); //reset origin to new position - Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); + Vec3 corePos = current.getRelPosAlongRail(anchor, speed * -sigNum, new MoveContext(RailCheckType.CORE, 0)); current.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - Vec3 backPos = current.getRelPosAlongRail(anchor, -current.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 backPos = current.getRelPosAlongRail(anchor, (speed - current.getLengthSpan()) * -sigNum, new MoveContext(RailCheckType.BACK, current.getCollisionSpan() - current.getLengthSpan())); if(frontPos == null || backPos == null) { current.derail(); this.dissolveTrain(); return; } else { - setRenderPos(current, frontPos, backPos); - } - }*/ - - Pair[] checks; - double dist = speed * sigNum; - - if(forward) { - checks = new Pair[] { - new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT), - new Pair(dist, RailCheckType.CORE), - new Pair(dist - current.getLengthSpan(), RailCheckType.BACK) - }; - } else { - checks = new Pair[] { - new Pair(dist - current.getLengthSpan(), RailCheckType.BACK), - new Pair(dist, RailCheckType.CORE), - new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT) - }; - } - - double brake = 0; - - for(Pair check : checks) { - MoveContext ctx = new MoveContext(check.getValue(), current.getCollisionSpan() - current.getLengthSpan()); - current.getRelPosAlongRail(anchor, check.getKey() - (brake * Math.signum(check.getKey())), ctx); - if(ctx.collision) { - brake += ctx.overshoot; + setRenderPos(current, inReverse ? backPos : frontPos, inReverse ? frontPos : backPos); } } @@ -885,7 +887,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { @Override @SideOnly(Side.CLIENT) public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { - List text = new ArrayList(); - ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); //none of this shit is going to work anyway + //List text = new ArrayList(); + //ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java index 4bf5f2ee2..65deb95b5 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java @@ -22,7 +22,7 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.dataWatcher.addObject(10, new Integer(0)); } - public int countVacantSlots() { + public int countOccupiedSlots() { int slots = 0; for(int i = 0; i < this.getSizeInventory(); i++) { @@ -53,11 +53,9 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.slots[slot] = null; } - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } } else { - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -67,10 +65,8 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(this.slots[slot] != null) { ItemStack itemstack = this.slots[slot]; this.slots[slot] = null; - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } else { - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -82,8 +78,12 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { stack.stackSize = this.getInventoryStackLimit(); } - - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); + } + + @Override + public void onUpdate() { + super.onUpdate(); + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countOccupiedSlots()); } @Override @@ -142,7 +142,7 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II } } - this.dataWatcher.updateObject(10, this.countVacantSlots()); + this.dataWatcher.updateObject(10, this.countOccupiedSlots()); } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java index 46643b029..bf794147c 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java @@ -2,7 +2,7 @@ package com.hbm.entity.train; import com.hbm.items.ModItems; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.item.ItemStack; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index da9a66f4e..5ba0a98b4 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -3,7 +3,6 @@ package com.hbm.entity.train; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.ILookOverlay; import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; @@ -291,6 +290,6 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { text.add("Front: " + this.coupledFront); text.add("Back: " + this.coupledBack);*/ text.add("Nearest seat: " + this.getNearestSeat(MainRegistry.proxy.me())); - ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); + //ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 3b64d7679..572e3fb4d 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -7,11 +7,10 @@ import com.hbm.inventory.gui.GuiInfoContainer; import com.hbm.lib.RefStrings; import com.hbm.tileentity.IGUIProvider; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -97,7 +96,7 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITrainCargoTram(player.inventory, this); } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index afefb1d9a..85d9a805c 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -12,7 +12,6 @@ import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -88,7 +87,7 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo implements IGUIPro @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITrainCargoTramTrailer(player.inventory, this); } diff --git a/src/main/java/com/hbm/entity/train/TrainTunnelBore.java b/src/main/java/com/hbm/entity/train/TrainTunnelBore.java new file mode 100644 index 000000000..f7b10493e --- /dev/null +++ b/src/main/java/com/hbm/entity/train/TrainTunnelBore.java @@ -0,0 +1,54 @@ +package com.hbm.entity.train; + +import com.hbm.blocks.rail.IRailNTM.TrackGauge; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TrainTunnelBore extends EntityRailCarRidable { + + public TrainTunnelBore(World world) { + super(world); + this.setSize(6F, 4F); + } + + @Override public double getPoweredAcceleration() { return 0.01; } + @Override public double getPassivBrake() { return 0.95; } + @Override public boolean shouldUseEngineBrake(EntityPlayer player) { return Math.abs(this.engineSpeed) < 0.1; } + @Override public double getMaxPoweredSpeed() { return 0.5; } + @Override public double getMaxRailSpeed() { return 1; } + + @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } + @Override public double getLengthSpan() { return 2.5; } + @Override public double getCollisionSpan() { return 4.5; } + @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.0, 2.375, -2.375); } + @Override public boolean shouldRiderSit() { return true; } + @Override public int getSizeInventory() { return 0; } + @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTunnelBore"; } + @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } + + @Override public boolean canAccelerate() { return true; } + @Override public Vec3[] getPassengerSeats() { return new Vec3[0]; } + + @Override + public DummyConfig[] getDummies() { + return new DummyConfig[] { + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, 2.5)), + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, 1.25)), + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, 0)), + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, -1.25)), + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, -2.5)) + }; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(!this.worldObj.isRemote && !this.isDead) { + this.setDead(); + } + + return true; + } +} diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index 38b3514da..e17620e64 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.grenade.EntityGrenadeTau; import com.hbm.entity.grenade.EntityGrenadeZOMG; +import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBase; import com.hbm.entity.particle.EntityChlorineFX; @@ -29,7 +30,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.entity.item.EntityTNTPrimed; import net.minecraft.entity.passive.EntitySheep; import net.minecraft.entity.player.EntityPlayer; @@ -70,29 +70,6 @@ public class ExplosionChaos { } } - public static void antiCheat(World world, int x, int y, int z, int bombStartStrength) { - - int r = bombStartStrength; - int r2 = r * r; - int r22 = r2 / 2; - for (int xx = -r; xx < r; xx++) { - int X = xx + x; - int XX = xx * xx; - for (int yy = -r; yy < r; yy++) { - int Y = yy + y; - int YY = XX + yy * yy; - for (int zz = -r; zz < r; zz++) { - int Z = zz + z; - int ZZ = YY + zz * zz; - if (ZZ < r22) { - if (rand.nextInt(15) == 0 && world.getBlock(X, Y, Z) != Blocks.air) - world.setBlock(X, Y, Z, ModBlocks.cheater_virus); - } - } - } - } - } - public static void hardenVirus(World world, int x, int y, int z, int bombStartStrength) { int r = bombStartStrength; @@ -405,8 +382,7 @@ public class ExplosionChaos { } public static void pDestruction(World world, int x, int y, int z) { - - EntityFallingBlock entityfallingblock = new EntityFallingBlock(world, (double) ((float) x + 0.5F), (double) ((float) y + 0.5F), (double) ((float) z + 0.5F), world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(world, (double) ((float) x + 0.5F), (double) ((float) y + 0.5F), (double) ((float) z + 0.5F), world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); world.spawnEntityInWorld(entityfallingblock); } @@ -538,7 +514,7 @@ public class ExplosionChaos { if(entity.getDistance(x, y, z) > range) continue; - if(ArmorRegistry.hasAnyProtection(entity, 3, HazardClass.GAS_CHLORINE, HazardClass.GAS_CORROSIVE)) { + if(ArmorRegistry.hasAnyProtection(entity, 3, HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING)) { ArmorUtil.damageGasMaskFilter(entity, 1); } else { entity.addPotionEffect(new PotionEffect(Potion.blindness.getId(), 5 * 20, 0)); @@ -775,10 +751,7 @@ public class ExplosionChaos { int Z = zz + z; int ZZ = YY + zz * zz; if (ZZ < r22 + world.rand.nextInt(r22 / 2)) { - if (world.getBlock(X, Y, Z) != Blocks.bedrock && world.getBlock(X, Y, Z) != ModBlocks.statue_elb - && world.getBlock(X, Y, Z) != ModBlocks.statue_elb_g - && world.getBlock(X, Y, Z) != ModBlocks.statue_elb_w - && world.getBlock(X, Y, Z) != ModBlocks.statue_elb_f) + if(world.getBlock(X, Y, Z) != ModBlocks.statue_elb_f) world.setBlock(X, Y, Z, ModBlocks.plasma); } } diff --git a/src/main/java/com/hbm/explosion/ExplosionFleija.java b/src/main/java/com/hbm/explosion/ExplosionFleija.java index 3ad81f5e2..5a478fe14 100644 --- a/src/main/java/com/hbm/explosion/ExplosionFleija.java +++ b/src/main/java/com/hbm/explosion/ExplosionFleija.java @@ -96,7 +96,7 @@ public class ExplosionFleija dist = (int) Math.sqrt(dist); for (int y = (int)(dist / this.explosionCoefficient2); y > -dist / this.explosionCoefficient; y--) { - if(!(this.worldObj.getBlock(this.posX+x, this.posY+y, this.posZ+z) == Blocks.bedrock && this.posY+y <= 0) && !(this.worldObj.getBlock(this.posX+x, this.posY+y, this.posZ+z) instanceof DecoBlockAlt))this.worldObj.setBlock(this.posX+x, this.posY+y, this.posZ+z, Blocks.air); + if(this.posY + y > 0 && !(this.worldObj.getBlock(this.posX+x, this.posY+y, this.posZ+z) instanceof DecoBlockAlt))this.worldObj.setBlock(this.posX+x, this.posY+y, this.posZ+z, Blocks.air); } } } diff --git a/src/main/java/com/hbm/explosion/ExplosionLarge.java b/src/main/java/com/hbm/explosion/ExplosionLarge.java index 650f88da8..4dcbc9e12 100644 --- a/src/main/java/com/hbm/explosion/ExplosionLarge.java +++ b/src/main/java/com/hbm/explosion/ExplosionLarge.java @@ -3,11 +3,10 @@ package com.hbm.explosion; import java.util.List; import java.util.Random; -import com.hbm.entity.projectile.EntityOilSpill; import com.hbm.entity.projectile.EntityRubble; import com.hbm.entity.projectile.EntityShrapnel; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ParticleUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -23,7 +22,7 @@ public class ExplosionLarge { static Random rand = new Random(); - public static void spawnParticles(World world, double x, double y, double z, int count) { + @Deprecated public static void spawnParticles(World world, double x, double y, double z, int count) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "smoke"); @@ -130,7 +129,7 @@ public class ExplosionLarge { if(debris.get(i) != null) { int k = rand.nextInt(debris.get(i).stackSize + 1); for(int j = 0; j < k; j++) { - EntityItem item = new EntityItem(world, x, y, z, new ItemStack(debris.get(i).getItem())); + EntityItem item = new EntityItem(world, x, y, z, debris.get(i).copy()); item.motionX = (motionX + rand.nextGaussian() * deviation) * 0.85; item.motionY = (motionY + rand.nextGaussian() * deviation) * 0.85; item.motionZ = (motionZ + rand.nextGaussian() * deviation) * 0.85; @@ -154,21 +153,7 @@ public class ExplosionLarge { } } - public static void spawnOilSpills(World world, double x, double y, double z, int count) { - - for(int i = 0; i < count; i++) { - EntityOilSpill shrapnel = new EntityOilSpill(world); - shrapnel.posX = x; - shrapnel.posY = y; - shrapnel.posZ = z; - shrapnel.motionY = ((rand.nextFloat() * 0.5) + 0.5) * (1 + (count / (15 + rand.nextInt(21)))) + (rand.nextFloat() / 50 * count) * 0.25F; - shrapnel.motionX = rand.nextGaussian() * 1 * (1 + (count / 50)) * 0.15F; - shrapnel.motionZ = rand.nextGaussian() * 1 * (1 + (count / 50)) * 0.15F; - world.spawnEntityInWorld(shrapnel); - } - } - - public static void explode(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel, Entity exploder) { + @Deprecated public static void explode(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel, Entity exploder) { world.createExplosion(exploder, x, y, z, strength, true); if(cloud) spawnParticles(world, x, y, z, cloudFunction((int)strength)); @@ -178,7 +163,7 @@ public class ExplosionLarge { spawnShrapnels(world, x, y, z, shrapnelFunction((int)strength)); } - public static void explode(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel) { + @Deprecated public static void explode(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel) { world.createExplosion(null, x, y, z, strength, true); if(cloud) spawnParticles(world, x, y, z, cloudFunction((int)strength)); @@ -188,7 +173,7 @@ public class ExplosionLarge { spawnShrapnels(world, x, y, z, shrapnelFunction((int)strength)); } - public static void explodeFire(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel) { + @Deprecated public static void explodeFire(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel) { world.newExplosion((Entity)null, (float)x, (float)y, (float)z, strength, true, true); if(cloud) spawnParticles(world, x, y, z, cloudFunction((int)strength)); @@ -260,7 +245,6 @@ public class ExplosionLarge { } public static int cloudFunction(int i) { - //return (int)(345 * (1 - Math.pow(Math.E, -i/15)) + 15); return (int)(850 * (1 - Math.pow(Math.E, -i/15)) + 15); } diff --git a/src/main/java/com/hbm/explosion/ExplosionNT.java b/src/main/java/com/hbm/explosion/ExplosionNT.java index 1f56cc251..533823d5f 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNT.java +++ b/src/main/java/com/hbm/explosion/ExplosionNT.java @@ -21,6 +21,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.ChunkPosition; @@ -156,7 +157,7 @@ public class ExplosionNT extends Explosion { currentZ /= d9; double d10 = (double) this.worldObj.getBlockDensity(vec3, entity.boundingBox); double d11 = (1.0D - d4) * d10; - entity.attackEntityFrom(DamageSource.setExplosionSource(this), (float) ((int) ((d11 * d11 + d11) / 2.0D * 8.0D * (double) this.explosionSize + 1.0D))); + entity.attackEntityFrom(setExplosionSource(this), (float) ((int) ((d11 * d11 + d11) / 2.0D * 8.0D * (double) this.explosionSize + 1.0D))); double d8 = EnchantmentProtection.func_92092_a(entity, d11); entity.motionX += currentX * d8; entity.motionY += currentY * d8; @@ -173,6 +174,12 @@ public class ExplosionNT extends Explosion { } } + public static DamageSource setExplosionSource(Explosion explosion) { + return explosion != null && explosion.getExplosivePlacedBy() != null ? + (new EntityDamageSource("explosion.player", explosion.getExplosivePlacedBy())).setExplosion() : + (new DamageSource("explosion")).setExplosion(); + } + public void doExplosionB(boolean p_77279_1_) { if(!has(ExAttrib.NOSOUND)) @@ -273,6 +280,8 @@ public class ExplosionNT extends Explosion { } } else if(has(ExAttrib.LAVA_V)) { this.worldObj.setBlock(i, j, k, ModBlocks.volcanic_lava_block); + } else if(has(ExAttrib.LAVA_R)) { + this.worldObj.setBlock(i, j, k, ModBlocks.rad_lava_block); } } } @@ -327,7 +336,8 @@ public class ExplosionNT extends Explosion { DIGAMMA, DIGAMMA_CIRCUIT, LAVA, //again the same thing but lava - LAVA_V, //again the same thing but volcaniclava + LAVA_V, //again the same thing but volcanic lava + LAVA_R, //again the same thing but radioactive lava ERRODE, //will turn select blocks into gravel or sand ALLMOD, //block placer attributes like fire are applied for all destroyed blocks ALLDROP, //miner TNT! diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java index ef07620ee..6aa06d540 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java @@ -3,8 +3,7 @@ package com.hbm.explosion; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class ExplosionNukeAdvanced -{ +public class ExplosionNukeAdvanced { public int posX; public int posY; public int posZ; @@ -20,7 +19,7 @@ public class ExplosionNukeAdvanced private int element; public float explosionCoefficient = 1.0F; public int type = 0; - + public void saveToNbt(NBTTagCompound nbt, String name) { nbt.setInteger(name + "posX", posX); nbt.setInteger(name + "posY", posY); @@ -37,7 +36,7 @@ public class ExplosionNukeAdvanced nbt.setFloat(name + "explosionCoefficient", explosionCoefficient); nbt.setInteger(name + "type", type); } - + public void readFromNbt(NBTTagCompound nbt, String name) { posX = nbt.getInteger(name + "posX"); posY = nbt.getInteger(name + "posY"); @@ -54,92 +53,64 @@ public class ExplosionNukeAdvanced explosionCoefficient = nbt.getFloat(name + "explosionCoefficient"); type = nbt.getInteger(name + "type"); } - - public ExplosionNukeAdvanced(int x, int y, int z, World world, int rad, float coefficient, int typ) - { + + public ExplosionNukeAdvanced(int x, int y, int z, World world, int rad, float coefficient, int typ) { this.posX = x; this.posY = y; this.posZ = z; - this.worldObj = world; - this.radius = rad; this.radius2 = this.radius * this.radius; - - this.explosionCoefficient = Math.min(Math.max((rad + coefficient * (y - 60))/(coefficient*rad), 1/coefficient),1.0f); //scale the coefficient depending on detonation height + this.explosionCoefficient = Math.min(Math.max((rad + coefficient * (y - 60)) / (coefficient * rad), 1 / coefficient), 1.0f); this.type = typ; - - this.nlimit = this.radius2 * 4; //How many total columns should be broken (radius ^ 2 is one quadrant, there are 4 quadrants) + this.nlimit = this.radius2 * 4; } - - public boolean update() - { - switch(this.type) - { - case 0: - breakColumn(this.lastposX, this.lastposZ); break; - case 1: - vapor(this.lastposX, this.lastposZ); break; - case 2: - waste(this.lastposX, this.lastposZ); break; + + public boolean update() { + switch(this.type) { + case 0: breakColumn(this.lastposX, this.lastposZ); break; + case 1: vapor(this.lastposX, this.lastposZ); break; + case 2: waste(this.lastposX, this.lastposZ); break; } - this.shell = (int) Math.floor((Math.sqrt(n) + 1) / 2); //crazy stuff I can't explain + this.shell = (int) Math.floor((Math.sqrt(n) + 1) / 2); int shell2 = this.shell * 2; this.leg = (int) Math.floor((this.n - (shell2 - 1) * (shell2 - 1)) / shell2); this.element = (this.n - (shell2 - 1) * (shell2 - 1)) - shell2 * this.leg - this.shell + 1; this.lastposX = this.leg == 0 ? this.shell : this.leg == 1 ? -this.element : this.leg == 2 ? -this.shell : this.element; this.lastposZ = this.leg == 0 ? this.element : this.leg == 1 ? this.shell : this.leg == 2 ? -this.element : -this.shell; this.n++; - return this.n > this.nlimit; //return whether we are done or not + return this.n > this.nlimit; } - private void breakColumn(int x, int z) - { - int dist = this.radius2 - (x * x + z * z); //we have two sides of the triangle (hypotenuse is radius, one leg is (x*x+z*z)) this calculates the third one - if (dist > 0) //check if any blocks have to be broken here - { - dist = (int) Math.sqrt(dist); //calculate sphere height at this (x,z) coordinate - for (int y = dist; y > -dist * this.explosionCoefficient; y--) //go from top to bottom to favor light updates - { - if(y<8){//only spare blocks that are mostly below epicenter - y-= ExplosionNukeGeneric.destruction(this.worldObj, this.posX + x, this.posY + y, this.posZ + z);//spare blocks below - }else{//don't spare blocks above epicenter + private void breakColumn(int x, int z) { + int dist = this.radius2 - (x * x + z * z); + if(dist > 0) { + dist = (int) Math.sqrt(dist); + for(int y = dist; y > -dist * this.explosionCoefficient; y--) { + if(y < 8) { + y -= ExplosionNukeGeneric.destruction(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); + } else { ExplosionNukeGeneric.destruction(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); } } } } - private void vapor(int x, int z) - { + private void vapor(int x, int z) { int dist = this.radius2 - (x * x + z * z); - if (dist > 0) - { + if(dist > 0) { dist = (int) Math.sqrt(dist); - //int dist0 = (int)Math.sqrt(this.radius2*0.15f - (x * x + z * z)); - for (int y = dist; y > -dist * this.explosionCoefficient; y--) - { - y-=ExplosionNukeGeneric.vaporDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); - /* - if(dist0>0){//skip blocks already in the destruction zone: we will - if(y>=dist0 || y<=-dist0*this.explosionCoefficient){ - y-=ExplosionNukeGeneric.vaporDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); - } - }else{ - y-=ExplosionNukeGeneric.vaporDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); - }*/ + for(int y = dist; y > -dist * this.explosionCoefficient; y--) { + y -= ExplosionNukeGeneric.vaporDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); } } } - private void waste(int x, int z) - { + private void waste(int x, int z) { int dist = this.radius2 - (x * x + z * z); - if (dist > 0) - { + if(dist > 0) { dist = (int) Math.sqrt(dist); - for (int y = dist; y > -dist * this.explosionCoefficient; y--) - { + for(int y = dist; y > -dist * this.explosionCoefficient; y--) { if(radius >= 95) ExplosionNukeGeneric.wasteDest(this.worldObj, this.posX + x, this.posY + y, this.posZ + z); else @@ -147,68 +118,4 @@ public class ExplosionNukeAdvanced } } } - - /*public static void mush(World world, double x, double y, double z) - { - double d = (float)x + 0.5F; - double d1 = (float)y + 0.5F; - double d2 = (float)z + 0.5F; - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 15, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 + 15, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 15, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 - 15, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 25, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 + 25, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 25, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 - 25, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 10, d1, d2 + 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 10, d1, d2 - 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 10, d1, d2 + 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 10, d1, d2 - 10, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 15, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 30, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 45, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 60, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 75, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 15, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 + 15, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 15, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 - 15, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 40, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 + 40, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 40, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 - 40, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 30, d1 + 90, d2 + 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 30, d1 + 90, d2 - 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 30, d1 + 90, d2 + 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 30, d1 + 90, d2 - 30, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 105, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 30, d1 + 105, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 105, d2 + 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 30, d1 + 105, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 105, d2 - 30, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 20, d1 + 105, d2 + 20, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 20, d1 + 105, d2 - 20, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 20, d1 + 105, d2 + 20, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 20, d1 + 105, d2 - 20, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 10, d1 + 120, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 120, d2 + 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 10, d1 + 120, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 120, d2 - 10, 0.0D, 0.0D, 0.0D, 100)); - }*/ } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java index c8c15c8a9..ab9694eb9 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java @@ -20,11 +20,10 @@ import net.minecraftforge.common.util.ForgeDirection; import com.hbm.blocks.ModBlocks; import com.hbm.config.VersatileConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.grenade.EntityGrenadeASchrab; import com.hbm.entity.grenade.EntityGrenadeNuclear; import com.hbm.entity.missile.EntityMIRV; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.projectile.EntityExplosiveBeam; import com.hbm.interfaces.Spaghetti; import com.hbm.items.ModItems; @@ -32,9 +31,10 @@ import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.util.ArmorUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyHandlerMK2; import cofh.api.energy.IEnergyProvider; +@Spaghetti("this sucks ass") public class ExplosionNukeGeneric { private final static Random random = new Random(); @@ -103,12 +103,11 @@ public class ExplosionNukeGeneric { private static boolean isExplosionExempt(Entity e) { if (e instanceof EntityOcelot || - e instanceof EntityNukeCloudSmall || e instanceof EntityMIRV || e instanceof EntityGrenadeASchrab || e instanceof EntityGrenadeNuclear || e instanceof EntityExplosiveBeam || - e instanceof EntityBulletBase || + e instanceof EntityBulletBaseNT || e instanceof EntityPlayer && ArmorUtil.checkArmor((EntityPlayer) e, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots)) { return true; @@ -427,12 +426,9 @@ public class ExplosionNukeGeneric { Block b = world.getBlock(x,y,z); TileEntity te = world.getTileEntity(x, y, z); - if (te != null && te instanceof IEnergyUser) { - - ((IEnergyUser)te).setPower(0); - - if(random.nextInt(5) < 1) - world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); + if (te != null && te instanceof IEnergyHandlerMK2) { + ((IEnergyHandlerMK2)te).setPower(0); + if(random.nextInt(5) < 1) world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } if (te != null && te instanceof IEnergyProvider) { @@ -446,7 +442,7 @@ public class ExplosionNukeGeneric { if(random.nextInt(5) <= 1) world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } - if((b == ModBlocks.fusion_conductor || b == ModBlocks.fwatz_conductor || b == ModBlocks.fusion_motor || b == ModBlocks.fusion_heater || b == ModBlocks.fwatz_computer) && random.nextInt(10) == 0) + if((b == ModBlocks.fusion_conductor || b == ModBlocks.fusion_motor || b == ModBlocks.fusion_heater) && random.nextInt(10) == 0) world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java deleted file mode 100644 index a36975d17..000000000 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java +++ /dev/null @@ -1,519 +0,0 @@ -package com.hbm.explosion; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.init.Blocks; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class ExplosionNukeRay { - - List affectedBlocks = new ArrayList<>(); - int posX; - int posY; - int posZ; - World world; - - int strength; - int length; - int processed; - - int gspNumMax; - int gspNum; - double gspX; - double gspY; - - public boolean isAusf3Complete = false; - - /*[[unused]] - int count; - int speed; - int startY; - int startCir; - Random rand = new Random(); - private double overrideRange = 0; - */ - - public ExplosionNukeRay(World world, int x, int y, int z, int strength, int count, int speed, int length) { - this.world = world; - this.posX = x; - this.posY = y; - this.posZ = z; - this.strength = strength; - this.length = length; - //Ausf3, must be double - //Mk 4.5, must be int32 - - // Total number of points - this.gspNumMax = (int)(2.5 * Math.PI * Math.pow(this.strength,2)); - this.gspNum = 1; - - // The beginning of the generalized spiral points - this.gspX = Math.PI; - this.gspY = 0.0; - - - /*[[unused]] - // this.startY = strength; - this.startY = 0; - this.startCir = 0; - - this.count = count; - this.speed = speed; - - //starts at around 80, becomes 8 at length 500 - this.overrideRange = Math.max((Math.log(length) * 4 - 2.5D) * 10, 0); - */ - } - - // Raise one generalized spiral points - private void generateGspUp(){ - if (this.gspNum < this.gspNumMax) { - int k = this.gspNum + 1; - double hk = -1.0 + 2.0 * (k - 1.0) / (this.gspNumMax - 1.0); - this.gspX = Math.acos(hk); - - double prev_lon = this.gspY; - double lon = prev_lon + 3.6 / Math.sqrt(this.gspNumMax) / Math.sqrt(1.0 - hk * hk); - this.gspY = lon % (Math.PI * 2); - } else { - this.gspX = 0.0; - this.gspY = 0.0; - } - this.gspNum++; - } - - // Get Cartesian coordinates for spherical coordinates - private Vec3 getSpherical2cartesian(){ - double dx = Math.sin(this.gspX) * Math.cos(this.gspY); - double dz = Math.sin(this.gspX) * Math.sin(this.gspY); - double dy = Math.cos(this.gspX); - return Vec3.createVectorHelper(dx, dy, dz); - } - - //currently used by mk4 - public void collectTipMk4_5(int count) { - - int amountProcessed = 0; - - while (this.gspNumMax >= this.gspNum){ - // Get Cartesian coordinates for spherical coordinates - Vec3 vec = this.getSpherical2cartesian(); - - int length = (int)Math.ceil(strength); - float res = strength; - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { - affectedBlocks.add(lastPos); - } - break; - } - } - // Raise one generalized spiral points - this.generateGspUp(); - - amountProcessed++; - if(amountProcessed >= count) { - return; - } - } - isAusf3Complete = true; - } - - public void processTip(int count) { - - int processedBlocks = 0; - int braker = 0; - - for(int l = 0; l < Integer.MAX_VALUE; l++) { - - if(processedBlocks >= count) - return; - - if(braker >= count * 50) - return; - - if(l > affectedBlocks.size() - 1) - break; - - if(affectedBlocks.isEmpty()) - return; - - int in = affectedBlocks.size() - 1; - - float x = affectedBlocks.get(in).xCoord; - float y = affectedBlocks.get(in).yCoord; - float z = affectedBlocks.get(in).zCoord; - - world.setBlock((int)x, (int)y, (int)z, Blocks.air); - - Vec3 vec = Vec3.createVectorHelper(x - this.posX, y - this.posY, z - this.posZ); - double pX = vec.xCoord / vec.lengthVector(); - double pY = vec.yCoord / vec.lengthVector(); - double pZ = vec.zCoord / vec.lengthVector(); - - for(int i = 0; i < vec.lengthVector(); i ++) { - int x0 = (int)(posX + pX * i); - int y0 = (int)(posY + pY * i); - int z0 = (int)(posZ + pZ * i); - - if(!world.isAirBlock(x0, y0, z0)) { - world.setBlock(x0, y0, z0, Blocks.air); - processedBlocks++; - } - - braker++; - } - - affectedBlocks.remove(in); - } - - processed += count; - } - - /*public void processBunch(int count) { - for(int l = processed; l < processed + count; l++) { - - if(l > affectedBlocks.size() - 1) - break; - - int x = affectedBlocks.get(l).chunkPosX; - int y = affectedBlocks.get(l).chunkPosY; - int z = affectedBlocks.get(l).chunkPosZ; - - if(world.getBlock(x, y, z) != Blocks.air) - { - world.setBlock(x, y, z, Blocks.air); - } - } - - processed += count; - } - - public void collectBunch(int count) { - - for(int k = 0; k < count; k++) { - double phi = rand.nextDouble() * (Math.PI * 2); - double costheta = rand.nextDouble() * 2 - 1; - double theta = Math.acos(costheta); - double x = Math.sin( theta) * Math.cos( phi ); - double y = Math.sin( theta) * Math.sin( phi ); - double z = Math.cos( theta ); - - Vec3 vec = Vec3.createVectorHelper(x, y, z); - int length = (int)Math.ceil(strength); - - float res = strength; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - int x0 = (int)(posX + (vec.xCoord * i)); - int y0 = (int)(posY + (vec.yCoord * i)); - int z0 = (int)(posZ + (vec.zCoord * i)); - if(!world.getBlock(x0, y0, z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock(x0, y0, z0).getExplosionResistance(null), 1.25); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 1.25); - - if(res > 0 && world.getBlock(x0, y0, z0) != Blocks.air) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100) - affectedBlocks.add(new ChunkPosition(x0, y0, z0)); - } - } - } - }*/ -/* - @Untested //override range - public void collectTip(int count) { - - for(int k = 0; k < count; k++) { - double phi = rand.nextDouble() * (Math.PI * 2); - double costheta = rand.nextDouble() * 2 - 1; - double theta = Math.acos(costheta); - double x = Math.sin(theta) * Math.cos(phi); - double y = Math.sin(theta) * Math.sin(phi); - double z = Math.cos(theta); - - Vec3 vec = Vec3.createVectorHelper(x, y, z); - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 1.25); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 1.25); - - //Blast resistance calculations are still done to preserve the general shape, - //but if the blast were to be stopped within this range we go through with it anyway. - //There is currently no blast resistance limit on this, could change in the future. - boolean inOverrideRange = this.overrideRange >= length; - - if((res > 0 || inOverrideRange) && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - - // Only stop if we are either out of range or if the remaining strength is 0 while being outside the override range - - if((res <= 0 && !inOverrideRange) || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - break; - } - } - } - } -*/ - /* - public void collectTipExperimental(int count) { - - for(int k = 0; k < count; k++) { - double phi = rand.nextDouble() * (Math.PI * 2); - double costheta = rand.nextDouble() * 2 - 1; - double theta = Math.acos(costheta); - double x = Math.sin(theta) * Math.cos(phi); - double y = Math.sin(theta) * Math.sin(phi); - double z = Math.cos(theta); - - Vec3 vec = Vec3.createVectorHelper(x, y, z); - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - break; - } - } - } - } - */ - /*public void collectTipAusf3(int count) { - - int amountProcessed = 0; - - //Axial - //StartY starts at this.length - for(double y = startY; y >= -strength; y -= (0.35D + ( Math.pow((strength - Math.abs(y)) / strength, 1.5D) * 0.3D))) { - - double sectionRad = Math.sqrt(Math.pow(strength, 2) - Math.pow(y, 2)); - double circumference = (1.5 * Math.PI * sectionRad + rand.nextDouble()) * (sectionRad / strength + 0.1D); - - //circumference = Math.ceil(circumference); - - //Radial - //StartCir starts at circumference - for(int r = startCir; r < circumference; r ++) { - - Vec3 vec = Vec3.createVectorHelper(sectionRad, y, 0); - vec = vec.normalize(); - if(y > 0) - vec.rotateAroundZ((float) (y / sectionRad) * 0.15F); - if(y < 0) - vec.rotateAroundZ((float) (y / sectionRad) * -0.15F); - vec.rotateAroundY((float) (360 / circumference * r)); - - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - } - break; - } - } - - amountProcessed++; - - if(amountProcessed >= count) { - startY = y + 1; - startCir = startCir + 1; - return; - } - } - } - - isAusf3Complete = true; - }*/ - - //Dysfunctional, punches hole into ground - /*public void collectTipAusf3(int count) { - - int amountProcessed = 0; - - //Axial - //StartY starts at this.length - for(int y = startY; y >= -length; y--) { - - double circumference = 2 * Math.PI * Math.sqrt(Math.pow(y, 2) + Math.pow(length, 2)); - - circumference = Math.ceil(circumference); - - //Radial - //StartCir starts at circumference - for(int r = startCir; r < circumference; r ++) { - - Vec3 vec = Vec3.createVectorHelper(1, y, 0); - vec.normalize(); - vec.rotateAroundY((float) (360 / circumference * r)); - - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - break; - } - } - - amountProcessed++; - - if(amountProcessed >= count) { - startY = y + 1; - startCir = startCir + 1; - return; - } - } - } - - isAusf3Complete = true; - }*/ - - public void deleteStorage() { - this.affectedBlocks.clear(); - } - - public int getStoredSize() { - return this.affectedBlocks.size(); - } - - public int getProgress() { - return this.processed; - } - - public class FloatTriplet { - public float xCoord; - public float yCoord; - public float zCoord; - - public FloatTriplet(float x, float y, float z) { - xCoord = x; - yCoord = y; - zCoord = z; - } - } - -} diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBalefire.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBalefire.java new file mode 100644 index 000000000..39db58083 --- /dev/null +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBalefire.java @@ -0,0 +1,23 @@ +package com.hbm.explosion; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class ExplosionNukeRayBalefire extends ExplosionNukeRayBatched { + + public ExplosionNukeRayBalefire(World world, int x, int y, int z, int strength, int speed, int length) { + super(world, x, y, z, strength, speed, length); + } + + protected void handleTip(int x, int y, int z) { + + if(world.rand.nextInt(5) == 0 && world.getBlock(x, y - 1, z).isSideSolid(world, x, y - 1, z, ForgeDirection.UP)) { + world.setBlock(x, y, z, ModBlocks.balefire, 0, 3); + } else { + world.setBlock(x, y, z, Blocks.air, 0, 3); + } + } +} diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index 8f0b72cd7..de45a8741 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -76,10 +76,12 @@ public class ExplosionNukeRayBatched { } public void collectTip(int count) { + + //count = Math.min(count, 10); int amountProcessed = 0; - while (this.gspNumMax >= this.gspNum){ + while(this.gspNumMax >= this.gspNum){ // Get Cartesian coordinates for spherical coordinates Vec3 vec = this.getSpherical2cartesian(); @@ -108,7 +110,7 @@ public class ExplosionNukeRayBatched { Block block = world.getBlock(iX, iY, iZ); if(!block.getMaterial().isLiquid()) - res -= Math.pow(block.getExplosionResistance(null), 7.5D - fac); + res -= Math.pow(masqueradeResistance(block), 7.5D - fac); //else // res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); // air is 0, might want to raise that is necessary @@ -119,7 +121,7 @@ public class ExplosionNukeRayBatched { chunkCoords.add(chunkPos); } - if(res <= 0 || i + 1 >= this.length) { + if(res <= 0 || i + 1 >= this.length || i == length - 1) { break; } } @@ -150,6 +152,13 @@ public class ExplosionNukeRayBatched { isAusf3Complete = true; } + public static float masqueradeResistance(Block block) { + + if(block == Blocks.sandstone) return Blocks.stone.getExplosionResistance(null); + if(block == Blocks.obsidian) return Blocks.stone.getExplosionResistance(null) * 3; + return block.getExplosionResistance(null); + } + /** little comparator for roughly sorting chunks by distance to the center */ public class CoordComparator implements Comparator { @@ -162,7 +171,7 @@ public class ExplosionNukeRayBatched { int diff1 = Math.abs((chunkX - o1.chunkXPos)) + Math.abs((chunkZ - o1.chunkZPos)); int diff2 = Math.abs((chunkX - o2.chunkXPos)) + Math.abs((chunkZ - o2.chunkZPos)); - return diff1 > diff2 ? 1 : diff1 < diff2 ? -1 : 0; + return diff1 - diff2; } } @@ -173,6 +182,7 @@ public class ExplosionNukeRayBatched { ChunkCoordIntPair coord = orderedChunks.get(0); List list = perChunk.get(coord); HashSet toRem = new HashSet(); + HashSet toRemTips = new HashSet(); //List toRem = new ArrayList(); int chunkX = coord.chunkXPos; int chunkZ = coord.chunkZPos; @@ -181,6 +191,8 @@ public class ExplosionNukeRayBatched { Math.abs(posX - (chunkX << 4)), Math.abs(posZ - (chunkZ << 4)))) - 16; //jump ahead to cut back on NOPs + enter = Math.max(enter, 0); + for(FloatTriplet triplet : list) { float x = triplet.xCoord; float y = triplet.yCoord; @@ -189,6 +201,10 @@ public class ExplosionNukeRayBatched { double pX = vec.xCoord / vec.lengthVector(); double pY = vec.yCoord / vec.lengthVector(); double pZ = vec.zCoord / vec.lengthVector(); + + int tipX = (int) Math.floor(x); + int tipY = (int) Math.floor(y); + int tipZ = (int) Math.floor(z); boolean inChunk = false; for(int i = enter; i < vec.lengthVector(); i++) { @@ -207,19 +223,33 @@ public class ExplosionNukeRayBatched { inChunk = true; if(!world.isAirBlock(x0, y0, z0)) { - toRem.add(new BlockPos(x0, y0, z0)); + + BlockPos pos = new BlockPos(x0, y0, z0); + + if(x0 == tipX && y0 == tipY && z0 == tipZ) { + toRemTips.add(pos); + } + toRem.add(pos); } } } - + for(BlockPos pos : toRem) { - world.setBlock(pos.getX(), pos.getY(), pos.getZ(), Blocks.air); + if(toRemTips.contains(pos)) { + this.handleTip(pos.getX(), pos.getY(), pos.getZ()); + } else { + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), Blocks.air, 0, 2); + } } perChunk.remove(coord); orderedChunks.remove(0); } + protected void handleTip(int x, int y, int z) { + world.setBlock(x, y, z, Blocks.air, 0, 3); + } + public class FloatTriplet { public float xCoord; public float yCoord; diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java b/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java index 88dbdacaf..cca47893b 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeSmall.java @@ -5,8 +5,9 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; + import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -32,14 +33,16 @@ public class ExplosionNukeSmall { if(params.shrapnelCount > 0) ExplosionLarge.spawnShrapnels(world, posX, posY, posZ, params.shrapnelCount); if(params.miniNuke && !params.safe) new ExplosionNT(world, null, posX, posY, posZ, params.blastRadius).addAllAttrib(params.explosionAttribs).overrideResolution(params.resolution).explode(); if(params.killRadius > 0) ExplosionNukeGeneric.dealDamage(world, posX, posY, posZ, params.killRadius); - if(!params.miniNuke) world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int) params.blastRadius, posX, posY, posZ).mute()); + if(!params.miniNuke) world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int) params.blastRadius, posX, posY, posZ)); - float radMod = params.radiationLevel / 3F; - - for(int i = -2; i <= 2; i++) { - for(int j = -2; j <= 2; j++) { - if(Math.abs(i) + Math.abs(j) < 4) { - ChunkRadiationManager.proxy.incrementRad(world, (int) Math.floor(posX + i * 16), (int) Math.floor(posY), (int) Math.floor(posZ + j * 16), 50 / (Math.abs(i) + Math.abs(j) + 1) * radMod); + if(params.miniNuke) { + float radMod = params.radiationLevel / 3F; + + for(int i = -2; i <= 2; i++) { + for(int j = -2; j <= 2; j++) { + if(Math.abs(i) + Math.abs(j) < 4) { + ChunkRadiationManager.proxy.incrementRad(world, (int) Math.floor(posX + i * 16), (int) Math.floor(posY), (int) Math.floor(posZ + j * 16), 50 / (Math.abs(i) + Math.abs(j) + 1) * radMod); + } } } } @@ -49,7 +52,7 @@ public class ExplosionNukeSmall { public static MukeParams PARAMS_TOTS = new MukeParams() {{ blastRadius = 10F; killRadius = 30F; particle = "tinytot"; shrapnelCount = 0; resolution = 32; radiationLevel = 1; }}; public static MukeParams PARAMS_LOW = new MukeParams() {{ blastRadius = 15F; killRadius = 45F; radiationLevel = 2; }}; public static MukeParams PARAMS_MEDIUM = new MukeParams() {{ blastRadius = 20F; killRadius = 55F; radiationLevel = 3; }}; - public static MukeParams PARAMS_HIGH = new MukeParams() {{ miniNuke = false; blastRadius = BombConfig.fatmanRadius; shrapnelCount = 0; radiationLevel = 4; }}; + public static MukeParams PARAMS_HIGH = new MukeParams() {{ miniNuke = false; blastRadius = BombConfig.fatmanRadius; shrapnelCount = 0; }}; /* more sensible approach with more customization options, idea shamelessly stolen from Martin */ public static class MukeParams { diff --git a/src/main/java/com/hbm/explosion/ExplosionTom.java b/src/main/java/com/hbm/explosion/ExplosionTom.java index bd049ed6e..21ae8f7cd 100644 --- a/src/main/java/com/hbm/explosion/ExplosionTom.java +++ b/src/main/java/com/hbm/explosion/ExplosionTom.java @@ -106,14 +106,14 @@ public class ExplosionTom { while(y > threshold) { - if(y == 0) - break; + if(y == 0) break; + if(y <= craterFloor) { if(worldObj.rand.nextInt(499) < 1) { - worldObj.setBlock(pX, y, pZ, ModBlocks.ore_tektite_osmiridium); + worldObj.setBlock(pX, y, pZ, ModBlocks.ore_tektite_osmiridium, 0, 2); } else { - worldObj.setBlock(pX, y, pZ, ModBlocks.tektite); + worldObj.setBlock(pX, y, pZ, ModBlocks.tektite, 0, 2); } } else { @@ -130,7 +130,7 @@ public class ExplosionTom { } } } - worldObj.setBlockToAir(pX, y, pZ); + worldObj.setBlock(pX, y, pZ, Blocks.air, 0, 2); } } else { for(int i = -2; i < 3; i++) { diff --git a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java b/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java deleted file mode 100644 index 0886cb3eb..000000000 --- a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.hbm.explosion.nt; - -@Deprecated -public interface IExplosionLogic { - - public void updateLogic(); - public boolean isDone(); -} diff --git a/src/main/java/com/hbm/explosion/nt/Mark5.java b/src/main/java/com/hbm/explosion/nt/Mark5.java deleted file mode 100644 index 16d2d5ee4..000000000 --- a/src/main/java/com/hbm/explosion/nt/Mark5.java +++ /dev/null @@ -1,282 +0,0 @@ -package com.hbm.explosion.nt; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -@Deprecated -public class Mark5 implements IExplosionLogic { - - //holds rays after being calculated up to where the blocks get removed - private List pendingRays = new ArrayList(); - //once a ray has been processed, it will be buffered for extension - private List completedRays = new ArrayList(); - //buffered blocks marked for deletion - private Set buffer = new HashSet(); - - private World world; - private float strength; - float originX; - float originY; - float originZ; - float angularDelta; - - //0: calculate blocks to destroy - //1: destroy blocks - //2: generate new rays - int phase = 0; - - public Mark5(World world, float strength, float x, float y, float z) { - this.world = world; - this.strength = strength; - this.originX = x; - this.originY = y; - this.originZ = z; - - this.initRays(); - } - - private void initRays() { - - float startLen = 0.5F; - - //top - pendingRays.add(new MVRay(strength, originX, originY, originZ, 0F, (float) Math.PI * 0.5F, startLen)); - //bottom - pendingRays.add(new MVRay(strength, originX, originY, originZ, 0F, -(float) Math.PI * 0.5F, startLen)); - - float pilet = (float) Math.PI * 0.25F; - - for(int i = 0; i < 8; i++) { - pendingRays.add(new MVRay(strength, originX, originY, originZ, pilet * i, 0F, startLen)); - - {//if(i % 2 == 0) { - pendingRays.add(new MVRay(strength, originX, originY, originZ, pilet * i, -pilet, startLen)); - pendingRays.add(new MVRay(strength, originX, originY, originZ, pilet * i, pilet, startLen)); - } - } - - this.angularDelta = pilet; - } - - @Override - public void updateLogic() { - - switch(this.phase) { - case 0: processRays(5000); break; - case 1: breakBlocks(10000); break; - case 2: repopulate(20000); break; - } - } - - private void processRays(int amount) { - - if(this.phase == 0 && this.pendingRays.isEmpty()) { - this.phase = 1; - return; - } - - int rem = 0; - - for(MVRay ray : this.pendingRays) { - - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ(ray.pitch); - vec.rotateAroundY(ray.yaw); - boolean shouldSplit = true; - float lastIndex = 0; - - for(float i = 0; i < ray.length; i += 0.5F) { - - lastIndex = i; - int x = (int)Math.floor(ray.x + vec.xCoord * i); - int y = (int)Math.floor(ray.y + vec.yCoord * i); - int z = (int)Math.floor(ray.z + vec.zCoord * i); - - BlockPos pos = new BlockPos(x, y, z); - - if(y > 255 || y < 0) { - shouldSplit = false; - break; - } - - Block b = world.getBlock(x, y, z); - - float res = (b.getMaterial().isLiquid() ? 0 : b.getExplosionResistance(null)) + Blocks.air.getExplosionResistance(null); - - ray.power -= (res * res); - - if(ray.power <= 0) { - shouldSplit = false; - break; - } - - if(b != Blocks.air) - this.buffer.add(pos); - } - - if(shouldSplit) { - ray.x = ray.x + (float)vec.xCoord * lastIndex; - ray.y = ray.y + (float)vec.yCoord * lastIndex; - ray.z = ray.z + (float)vec.zCoord * lastIndex; - this.completedRays.add(ray); - } - - rem++; - - if(rem == amount) - break; - } - - this.pendingRays.subList(0, rem).clear(); - - if(this.pendingRays.isEmpty()) { - this.phase = 1; - } - } - - private void breakBlocks(int amount) { - - if(this.phase == 1 && this.buffer.isEmpty()) { - this.angularDelta *= 0.5F; - this.phase = 2; - return; - } - - int rem = 0; - - List toRem = new ArrayList(); - - for(BlockPos pos : this.buffer) { - world.setBlock(pos.x, pos.y, pos.z, Blocks.air, 0, 3); - - toRem.add(pos); - rem++; - - if(rem == amount) - break; - } - - this.buffer.removeAll(toRem); - - if(this.buffer.isEmpty()) { - this.angularDelta *= 0.5F; - this.phase = 2; - } - } - - private void repopulate(int amount) { - - if(this.phase == 2 && this.completedRays.isEmpty()) { - this.phase = 0; - } - - int rem = 0; - - for(MVRay ray : this.completedRays) { - - for(int i = 0; i < 2; i++) { - for(int j = 0; j < 2; j++) { - MVRay child = new MVRay(ray.power, ray.x, ray.y, ray.z, ray.yaw + this.angularDelta * i, ray.pitch + this.angularDelta * j, ray.length * 2); - this.pendingRays.add(child); - } - } - - rem++; - - if(rem == amount) - break; - } - - this.completedRays.subList(0, rem).clear(); - } - - @Override - public boolean isDone() { - return this.pendingRays.isEmpty() && this.completedRays.isEmpty() && this.buffer.isEmpty(); - } - - public static class MVRay { - - //initiated with starting power, once processed it shows the power left - float power; - //once calculated, this becomes true - boolean collected = false; - float x; - float y; - float z; - float yaw; - float pitch; - float length; - - public MVRay(float power, float x, float y, float z, float yaw, float pitch, float length) { - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - - public MVRay(float power, float x, float y, float z, Vec3 dir, float length) { - - double len = dir.lengthVector(); - - float yaw = (float)Math.atan2(dir.zCoord, dir.xCoord); - float pitch = (float)Math.asin(dir.yCoord / len); - - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - } - - public static class BlockPos { - - int x; - int y; - int z; - - public BlockPos(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + x; - result = prime * result + y; - result = prime * result + z; - return result; - } - - @Override - public boolean equals(Object obj) { - - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; - - BlockPos other = (BlockPos) obj; - if(x != other.x) return false; - if(y != other.y) return false; - if(z != other.z) return false; - - return true; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java b/src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java deleted file mode 100644 index 7c2d60e31..000000000 --- a/src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java +++ /dev/null @@ -1,447 +0,0 @@ -package com.hbm.explosion.nt; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -/* - * Turns out segmenting makes the craters ugly and, for whatever reason, doesn't actually improve performance (??????) - * Ausf3 will use the same approach as MK4 but with some optimizations regarding setBlock redundancy and getBlock operations - * See: docvt7 - */ -@Deprecated -public class Mark5Ausf2 implements IExplosionLogic { - - //holds rays after being calculated up to where the blocks get removed - private HorizontalSegment[] segments; - private HorizontalSegment[] repopulatedSegments; - //buffered blocks marked for deletion - private Set buffer = new HashSet(); - - private World world; - private float strength; - float originX; - float originY; - float originZ; - float length; - - //0: calculate blocks to destroy - //1: destroy blocks - //2: generate new rays - int phase = 0; - - public Mark5Ausf2(World world, float strength, float x, float y, float z) { - this.world = world; - this.strength = strength; - this.originX = x; - this.originY = y; - this.originZ = z; - - this.initRays(); - } - - private double getResolutionMult() { - return 5D; - } - - private void initRays() { - - this.length = 5F; //how long the current rays are - - double bow = length * Math.PI; //one "bow", the distance between the poles along the circumference ( U/2 ) - int bowCount = (int) Math.ceil(bow * getResolutionMult()); //how many segments we want along one bow, usually 1 per block + a resolution multiplier - double bowDelta = (Math.PI / (double) (bowCount - 1)); //the angular difference (pitch) between where each segment is - - segments = new HorizontalSegment[bowCount]; - - for(int i = 0; i < bowCount; i++) { - double currBow = bowDelta * i; //the current angle along the bow (i.e. the pitch of the horizontal ring) - double ringRadius = Math.sin(currBow) * length; //the radius of the current ring - double ringCircumference = 2D * ringRadius * Math.PI; //the circumference for the ring - int ringCount = (int) Math.max(Math.ceil(ringCircumference * getResolutionMult()), 1); //how many rays we want per ring (1 per block plus extra resolution) - double ringDelta = ((Math.PI * 2D) / (double) (ringCount - 1)); //the angular difference (yaw) between rays in a ring - - HorizontalSegment seg = new HorizontalSegment(ringCount); - float pitch = (float) currBow; - - for(int j = 0; j < ringCount; j++) { - float yaw = (float)(ringDelta * j); - - //if(yaw < Math.PI * 0.5 && pitch < Math.PI) - seg.rays[j] = new MVRay(strength, originX, originY, originZ, yaw, pitch, length); - } - - segments[i] = seg; - } - - /*System.out.println("Initialized with" + segments.length + " segments!"); - - for(HorizontalSegment seg : segments) { - - if(seg == null) { - System.out.println("NULL"); - } else { - System.out.println(seg.rays.length); - } - }*/ - } - - @Override - public void updateLogic() { - - switch(this.phase) { - case 0: processRays(50000); break; - case 1: breakBlocks(2000); break; - case 2: repopulate(); break; - } - } - - private int processBow = 0; - private int processRing = 0; - - private void endPhaseZero() { - this.processBow = 0; - this.processRing = 0; - this.phase = 1; - } - - private void processRays(int amount) { - - while(true) { - - if(amount < 0) { - return; - } - - if(this.segments[processBow] == null || this.processRing >= this.segments[processBow].rays.length) { - this.processRing = 0; - this.processBow++; - - if(this.processBow >= this.segments.length) { - endPhaseZero(); - return; - } - continue; - } - - if(this.processBow >= this.segments.length) { - endPhaseZero(); - return; - } - - MVRay ray = this.segments[processBow].rays[this.processRing]; - - if(ray != null) { - - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ(ray.pitch); - vec.rotateAroundY(ray.yaw); - - double finalX = 0; - double finalY = 0; - double finalZ = 0; - - for(float i = 0; i < ray.length; i += 0.5F) { - - finalX = ray.x + vec.xCoord * i; - finalY = ray.y + vec.yCoord * i; - finalZ = ray.z + vec.zCoord * i; - int x = (int)Math.floor(finalX); - int y = (int)Math.floor(finalY); - int z = (int)Math.floor(finalZ); - - //System.out.println(ray.pitch + " " + ray.yaw + " / " + x + " " + y + " " + z); - - BlockPos pos = new BlockPos(x, y, z); - - if(y > 255 || y < 0) { - break; - } - - Block b = world.getBlock(x, y, z); - - float res = (b.getMaterial().isLiquid() ? (float)Math.pow(Blocks.air.getExplosionResistance(null), 1.25) : (float)Math.pow(b.getExplosionResistance(null), 1.25)); - - ray.power -= res; - - if(ray.power <= 0) { - break; - } - - if(b != Blocks.air) - this.buffer.add(pos); - } - - if(ray.power <= 0 || finalY < 0 || finalY > 255 || this.length > this.strength) { - this.segments[processBow].rays[this.processRing] = null; - } - ray.x = (float) finalX; - ray.y = (float) finalY; - ray.z = (float) finalZ; - } - - amount--; - this.processRing++; - } - } - - private void breakBlocks(int amount) { - - if(this.phase == 1 && this.buffer.isEmpty()) { - this.phase = 2; - return; - } - - int rem = 0; - - List toRem = new ArrayList(); - - for(BlockPos pos : this.buffer) { - world.setBlock(pos.x, pos.y, pos.z, Blocks.air, 0, 3); - - toRem.add(pos); - rem++; - - if(rem == amount) - break; - } - - this.buffer.removeAll(toRem); - - if(this.buffer.isEmpty()) { - this.phase = 2; - } - } - - private void repopulate() { - - boolean didYouDoLiterallyAnything = false; - this.length *= 2; - - double bow = length * Math.PI; - int bowCount = (int) Math.ceil(bow * getResolutionMult()); - double bowDelta = (Math.PI / (double) (bowCount - 1)); - - repopulatedSegments = new HorizontalSegment[bowCount]; - - for(int i = 0; i < bowCount; i++) { - - double currBow = bowDelta * i; - double ringRadius = Math.sin(currBow) * length; - double ringCircumference = 2D * ringRadius * Math.PI; - int ringCount = (int) Math.max(Math.ceil(ringCircumference * getResolutionMult()), 1); - double ringDelta = ((Math.PI * 2D) / (double) (ringCount - 1)); - - float pitch = (float) currBow; - HorizontalSegment parentSegment = fromAngle(pitch); - - if(parentSegment != null) { - - HorizontalSegment seg = new HorizontalSegment(ringCount); - - for(int j = 0; j < ringCount; j++) { - float yaw = (float)(ringDelta * j); - - MVRay parentRay = parentSegment.fromAngle(yaw); - - if(parentRay != null && parentRay.power > 0) { - - /*Vec3 newDest = Vec3.createVectorHelper(length, 0D, 0D); - newDest.rotateAroundZ(pitch); - newDest.rotateAroundY(yaw); - Vec3 delta = Vec3.createVectorHelper(newDest.xCoord - parentRay.x, newDest.yCoord - parentRay.y, newDest.zCoord - parentRay.z); - - double deltaLen = delta.lengthVector(); - float pLen = parentRay.length; - - double s_deltaLen = Math.sqrt(delta.xCoord * delta.xCoord + delta.yCoord * delta.yCoord); - double s_alpha0 = parentRay.pitch; - double s_delta = Math.acos((pLen * pLen + s_deltaLen * s_deltaLen - length * length) / (2 * pLen * s_deltaLen)); - double newPitch = s_alpha0 + (Math.PI - s_delta); - - double r_deltaLen = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); - double r_alpha0 = parentRay.yaw; - double r_delta = Math.acos((pLen * pLen + r_deltaLen * r_deltaLen - length * length) / (2 * pLen * r_deltaLen)); - double newYaw = r_alpha0 + (Math.PI - r_delta);*/ - - /*System.out.println("deltaLen: " + deltaLen); - System.out.println("pLen: " + pLen); - System.out.println("s_deltaLen: " + s_deltaLen); - System.out.println("s_alpha0: " + s_alpha0); - System.out.println("s_delta: " + s_delta); - System.out.println("newPitch: " + newPitch); - System.out.println("r_deltaLen: " + r_deltaLen); - System.out.println("r_alpha0: " + r_alpha0); - System.out.println("r_delta: " + r_delta); - System.out.println("newYaw: " + newYaw);*/ - /*System.out.println("(pLen * pLen + s_deltaLen * s_deltaLen - length * length) / (2 * pLen * s_deltaLen)"); - System.out.println("" + (pLen * pLen + s_deltaLen * s_deltaLen - length * length) / (2 * pLen * s_deltaLen)); - System.out.println("(pLen * pLen + r_deltaLen * r_deltaLen - length * length) / (2 * pLen * r_deltaLen)"); - System.out.println("" + (pLen * pLen + r_deltaLen * r_deltaLen - length * length) / (2 * pLen * r_deltaLen));*/ - - Vec3 len = Vec3.createVectorHelper(parentRay.x - originX, parentRay.y - originY, parentRay.z - originZ); - double totalLen = len.lengthVector(); - Vec3 normal = Vec3.createVectorHelper(totalLen, 0D, 0D); - normal.rotateAroundZ(pitch); - normal.rotateAroundY(yaw); - - //double surface = 4 * Math.PI * this.length * this.length; - //double prevSurface = 4 * Math.PI * totalLen * totalLen; - float newPower = parentRay.power; - - MVRay newRay = new MVRay(newPower, - (float)(this.originX - normal.xCoord), - (float)(this.originY - normal.yCoord), - (float)(this.originZ - normal.zCoord), - yaw, pitch, (float) (this.length - totalLen)); - - seg.rays[j] = newRay; - repopulatedSegments[i] = seg; - didYouDoLiterallyAnything = true; - } - } - } - } - - this.segments = this.repopulatedSegments; - this.repopulatedSegments = null; - - - /*for(HorizontalSegment seg : segments) { - - if(seg == null) { - System.out.println("NULL"); - } else { - System.out.println(seg.rays.length); - } - } - System.out.println("STOP");*/ - - this.phase = 0; - - if(!didYouDoLiterallyAnything) { - this.isDone = true; - } - } - - private HorizontalSegment fromAngle(float pitch) { - int size = this.segments.length; - int index = (int)Math.floor((pitch * size) / Math.PI) % this.segments.length; - - if(index >= this.segments.length || index < 0) - return null; - - return this.segments[index]; - } - - private boolean isDone = false; - - @Override - public boolean isDone() { - return isDone; - } - - public static class HorizontalSegment { - - MVRay[] rays; - - private HorizontalSegment(int size) { - rays = new MVRay[size]; - } - - private MVRay fromAngle(float yaw) { - int size = rays.length; - int index = (int)Math.floor((yaw * size) / (Math.PI * 2)) % this.rays.length; - - if(index >= this.rays.length || index < 0) - return null; - - return rays[index]; - } - } - - public static class MVRay { - - //initiated with starting power, once processed it shows the power left - float power; - //once calculated, this becomes true - boolean collected = false; - float x; - float y; - float z; - float yaw; - float pitch; - float length; - boolean tracked; - - public MVRay(float power, float x, float y, float z, float yaw, float pitch, float length) { - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - - public MVRay(float power, float x, float y, float z, Vec3 dir, float length) { - - double len = dir.lengthVector(); - - float yaw = (float)Math.atan2(dir.zCoord, dir.xCoord); - float pitch = (float)Math.asin(dir.yCoord / len); - - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - } - - public static class BlockPos { - - int x; - int y; - int z; - - public BlockPos(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + x; - result = prime * result + y; - result = prime * result + z; - return result; - } - - @Override - public boolean equals(Object obj) { - - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; - - BlockPos other = (BlockPos) obj; - if(x != other.x) return false; - if(y != other.y) return false; - if(z != other.z) return false; - - return true; - } - } -} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java new file mode 100644 index 000000000..98adec4a4 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java @@ -0,0 +1,89 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockAllocator; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; + +import java.util.HashSet; + +public class BlockAllocatorGlyphidDig implements IBlockAllocator { + + protected double maximum; + protected int resolution; + + public BlockAllocatorGlyphidDig(double maximum) { + this(maximum, 16); + } + + public BlockAllocatorGlyphidDig(double maximum, int resolution) { + this.resolution = resolution; + this.maximum = maximum; + } + + @Override + public HashSet allocate(ExplosionVNT explosion, World world, double x, double y, double z, float size) { + + HashSet affectedBlocks = new HashSet(); + + for(int i = 0; i < this.resolution; ++i) { + for(int j = 0; j < this.resolution; ++j) { + for(int k = 0; k < this.resolution; ++k) { + + if(i == 0 || i == this.resolution - 1 || j == 0 || j == this.resolution - 1 || k == 0 || k == this.resolution - 1) { + + double d0 = (double) ((float) i / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d1 = (double) ((float) j / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d2 = (double) ((float) k / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d3 = Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2); + + d0 /= d3; + d1 /= d3; + d2 /= d3; + + double currentX = x; + double currentY = y; + double currentZ = z; + + double dist = 0; + + for(float stepSize = 0.3F; dist <= explosion.size;) { + + double deltaX = currentX - x; + double deltaY = currentY - y; + double deltaZ = currentZ - z; + dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); + + int blockX = MathHelper.floor_double(currentX); + int blockY = MathHelper.floor_double(currentY); + int blockZ = MathHelper.floor_double(currentZ); + + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() != Material.air) { + float blockResistance = explosion.exploder != null ? explosion.exploder.func_145772_a(explosion.compat, world, blockX, blockY, blockZ, block) : block.getExplosionResistance(explosion.exploder, world, blockX, blockY, blockZ, x, y, z); + if(this.maximum < blockResistance || block == ModBlocks.glyphid_spawner) { + break; + } + } + + if(explosion.exploder == null || explosion.exploder.func_145774_a(explosion.compat, world, blockX, blockY, blockZ, block, explosion.size)) { + affectedBlocks.add(new ChunkPosition(blockX, blockY, blockZ)); + } + + currentX += d0 * (double) stepSize; + currentY += d1 * (double) stepSize; + currentZ += d2 * (double) stepSize; + } + } + } + } + } + + return affectedBlocks; + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java new file mode 100644 index 000000000..8cc03caa9 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java @@ -0,0 +1,23 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; + +public class BlockMutatorFire implements IBlockMutator { + + @Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { } + + @Override + public void mutatePost(ExplosionVNT explosion, int x, int y, int z) { + + Block block = explosion.world.getBlock(x, y, z); + Block block1 = explosion.world.getBlock(x, y - 1, z); + if(block.getMaterial() == Material.air && block1.func_149730_j() && explosion.world.rand.nextInt(3) == 0) { + explosion.world.setBlock(x, y, z, Blocks.fire); + } + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java new file mode 100644 index 000000000..40332a9d8 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java @@ -0,0 +1,62 @@ +package com.hbm.explosion.vanillant.standard; + +import java.util.HashSet; +import java.util.Iterator; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; +import com.hbm.explosion.vanillant.interfaces.IBlockProcessor; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; + +public class BlockProcessorNoDamage implements IBlockProcessor { + + protected IBlockMutator convert; + + public BlockProcessorNoDamage() { } + + public BlockProcessorNoDamage withBlockEffect(IBlockMutator convert) { + this.convert = convert; + return this; + } + + @Override + public void process(ExplosionVNT explosion, World world, double x, double y, double z, HashSet affectedBlocks) { + + Iterator iterator = affectedBlocks.iterator(); + + while(iterator.hasNext()) { + ChunkPosition chunkposition = (ChunkPosition) iterator.next(); + int blockX = chunkposition.chunkPosX; + int blockY = chunkposition.chunkPosY; + int blockZ = chunkposition.chunkPosZ; + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() != Material.air) { + if(this.convert != null) this.convert.mutatePre(explosion, block, world.getBlockMetadata(blockX, blockY, blockZ), blockX, blockY, blockZ); + } + } + + + if(this.convert != null) { + iterator = affectedBlocks.iterator(); + + while(iterator.hasNext()) { + ChunkPosition chunkposition = (ChunkPosition) iterator.next(); + int blockX = chunkposition.chunkPosX; + int blockY = chunkposition.chunkPosY; + int blockZ = chunkposition.chunkPosZ; + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() == Material.air) { + this.convert.mutatePost(explosion, blockX, blockY, blockZ); + } + } + } + + affectedBlocks.clear(); //tricks the standard SFX to not do the block damage particles + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java index 64c4de445..a6843e9a9 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java @@ -2,7 +2,9 @@ package com.hbm.explosion.vanillant.standard; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.ICustomDamageHandler; import com.hbm.explosion.vanillant.interfaces.IEntityProcessor; @@ -13,7 +15,9 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSource; import net.minecraft.util.Vec3; +import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.ForgeEventFactory; @@ -24,10 +28,16 @@ public class EntityProcessorCross implements IEntityProcessor { protected double nodeDist = 2D; protected IEntityRangeMutator range; protected ICustomDamageHandler damage; + protected boolean allowSelfDamage = false; public EntityProcessorCross(double nodeDist) { this.nodeDist = nodeDist; } + + public EntityProcessorCross setAllowSelfDamage() { + this.allowSelfDamage = true; + return this; + } @Override public HashMap process(ExplosionVNT explosion, World world, double x, double y, double z, float size) { @@ -47,7 +57,7 @@ public class EntityProcessorCross implements IEntityProcessor { double minZ = z - (double) size - 1.0D; double maxZ = z + (double) size + 1.0D; - List list = world.getEntitiesWithinAABBExcludingEntity(explosion.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); + List list = world.getEntitiesWithinAABBExcludingEntity(allowSelfDamage ? null : explosion.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); ForgeEventFactory.onExplosionDetonate(world, explosion.compat, list, size); @@ -57,6 +67,8 @@ public class EntityProcessorCross implements IEntityProcessor { ForgeDirection dir = ForgeDirection.getOrientation(i); nodes[i] = Vec3.createVectorHelper(x + dir.offsetX * nodeDist, y + dir.offsetY * nodeDist, z + dir.offsetZ * nodeDist); } + + HashMap damageMap = new HashMap(); for(int index = 0; index < list.size(); ++index) { @@ -86,28 +98,52 @@ public class EntityProcessorCross implements IEntityProcessor { } double knockback = (1.0D - distanceScaled) * density; - - entity.attackEntityFrom(DamageSource.setExplosionSource(explosion.compat), (float) ((int) ((knockback * knockback + knockback) / 2.0D * 8.0D * size + 1.0D))); + + float dmg = calculateDamage(distanceScaled, density, knockback, size); + if(!damageMap.containsKey(entity) || damageMap.get(entity) < dmg) damageMap.put(entity, dmg); double enchKnockback = EnchantmentProtection.func_92092_a(entity, knockback); - entity.motionX += deltaX * enchKnockback; - entity.motionY += deltaY * enchKnockback; - entity.motionZ += deltaZ * enchKnockback; + if(!(entity instanceof EntityBulletBaseMK4)) { + entity.motionX += deltaX * enchKnockback; + entity.motionY += deltaY * enchKnockback; + entity.motionZ += deltaZ * enchKnockback; + } if(entity instanceof EntityPlayer) { affectedPlayers.put((EntityPlayer) entity, Vec3.createVectorHelper(deltaX * knockback, deltaY * knockback, deltaZ * knockback)); } - - if(damage != null) { - damage.handleAttack(explosion, entity, distanceScaled); - } } } } + for(Entry entry : damageMap.entrySet()) { + + Entity entity = entry.getKey(); + attackEntity(entity, explosion, entry.getValue()); + + if(damage != null) { + double distanceScaled = entity.getDistance(x, y, z) / size; + damage.handleAttack(explosion, entity, distanceScaled); + } + } + return affectedPlayers; } + public void attackEntity(Entity entity, ExplosionVNT source, float amount) { + entity.attackEntityFrom(setExplosionSource(source.compat), amount); + } + + public float calculateDamage(double distanceScaled, double density, double knockback, float size) { + return (float) ((int) ((knockback * knockback + knockback) / 2.0D * 8.0D * size + 1.0D)); + } + + public static DamageSource setExplosionSource(Explosion explosion) { + return explosion != null && explosion.getExplosivePlacedBy() != null ? + (new EntityDamageSource("explosion.player", explosion.getExplosivePlacedBy())).setExplosion() : + (new DamageSource("explosion")).setExplosion(); + } + public EntityProcessorCross withRangeMod(float mod) { range = new IEntityRangeMutator() { @Override diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCrossSmooth.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCrossSmooth.java new file mode 100644 index 000000000..ff6b03e2f --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCrossSmooth.java @@ -0,0 +1,54 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.ConfettiUtil; +import com.hbm.util.EntityDamageUtil; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.DamageSource; + +public class EntityProcessorCrossSmooth extends EntityProcessorCross { + + protected float fixedDamage; + protected float pierceDT = 0; + protected float pierceDR = 0; + protected DamageClass clazz = DamageClass.EXPLOSIVE; + + public EntityProcessorCrossSmooth(double nodeDist, float fixedDamage) { + super(nodeDist); + this.fixedDamage = fixedDamage; + this.setAllowSelfDamage(); + } + + public EntityProcessorCrossSmooth setupPiercing(float pierceDT, float pierceDR) { + this.pierceDT = pierceDT; + this.pierceDR = pierceDR; + return this; + } + + public EntityProcessorCrossSmooth setDamageClass(DamageClass clazz) { + this.clazz = clazz; + return this; + } + + @Override + public void attackEntity(Entity entity, ExplosionVNT source, float amount) { + if(!entity.isEntityAlive()) return; + if(source.exploder == entity) amount *= 0.5F; + DamageSource dmg = BulletConfig.getDamage(null, source.exploder instanceof EntityLivingBase ? (EntityLivingBase) source.exploder : null, clazz); + if(!(entity instanceof EntityLivingBase)) { + entity.attackEntityFrom(dmg, amount); + } else { + EntityDamageUtil.attackEntityFromNT((EntityLivingBase) entity, dmg, amount, true, false, 0F, pierceDT, pierceDR); + if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti((EntityLivingBase) entity, dmg); + } + } + + @Override + public float calculateDamage(double distanceScaled, double density, double knockback, float size) { + return (float) (fixedDamage * (1 - distanceScaled)); + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java index 626887245..9e369ea35 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java @@ -13,7 +13,9 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSource; import net.minecraft.util.Vec3; +import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.event.ForgeEventFactory; @@ -21,6 +23,7 @@ public class EntityProcessorStandard implements IEntityProcessor { protected IEntityRangeMutator range; protected ICustomDamageHandler damage; + protected boolean allowSelfDamage = false; @Override public HashMap process(ExplosionVNT explosion, World world, double x, double y, double z, float size) { @@ -40,7 +43,7 @@ public class EntityProcessorStandard implements IEntityProcessor { double minZ = z - (double) size - 1.0D; double maxZ = z + (double) size + 1.0D; - List list = world.getEntitiesWithinAABBExcludingEntity(explosion.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); + List list = world.getEntitiesWithinAABBExcludingEntity(allowSelfDamage ? null : explosion.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); ForgeEventFactory.onExplosionDetonate(world, explosion.compat, list, size); Vec3 vec3 = Vec3.createVectorHelper(x, y, z); @@ -66,7 +69,7 @@ public class EntityProcessorStandard implements IEntityProcessor { double density = world.getBlockDensity(vec3, entity.boundingBox); double knockback = (1.0D - distanceScaled) * density; - entity.attackEntityFrom(DamageSource.setExplosionSource(explosion.compat), (float) ((int) ((knockback * knockback + knockback) / 2.0D * 8.0D * size + 1.0D))); + entity.attackEntityFrom(setExplosionSource(explosion.compat), calculateDamage(distanceScaled, density, knockback, size)); double enchKnockback = EnchantmentProtection.func_92092_a(entity, knockback); entity.motionX += deltaX * enchKnockback; @@ -87,6 +90,16 @@ public class EntityProcessorStandard implements IEntityProcessor { return affectedPlayers; } + public float calculateDamage(double distanceScaled, double density, double knockback, float size) { + return (float) ((int) ((knockback * knockback + knockback) / 2.0D * 8.0D * size + 1.0D)); + } + + public static DamageSource setExplosionSource(Explosion explosion) { + return explosion != null && explosion.getExplosivePlacedBy() != null ? + (new EntityDamageSource("explosion.player", explosion.getExplosivePlacedBy())).setExplosion() : + (new DamageSource("explosion")).setExplosion(); + } + public EntityProcessorStandard withRangeMod(float mod) { range = new IEntityRangeMutator() { @Override @@ -101,4 +114,9 @@ public class EntityProcessorStandard implements IEntityProcessor { this.damage = damage; return this; } + + public EntityProcessorStandard allowSelfDamage() { + this.allowSelfDamage = true; + return this; + } } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectAmat.java b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectAmat.java index 088c38a83..be83da6b2 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectAmat.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectAmat.java @@ -2,8 +2,8 @@ package com.hbm.explosion.vanillant.standard; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.IExplosionSFX; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java index 1ffb85b24..583eaa004 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.IExplosionSFX; -import com.hbm.packet.ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.util.MathHelper; @@ -30,7 +30,7 @@ public class ExplosionEffectStandard implements IExplosionSFX { if(size >= 2.0F) { world.spawnParticle("hugeexplosion", x, y, z, 1.0D, 0.0D, 0.0D); } else { - world.spawnParticle("largeexplode", x, z, z, 1.0D, 0.0D, 0.0D); + world.spawnParticle("largeexplode", x, y, z, 1.0D, 0.0D, 0.0D); } int count = affectedBlocks.size(); diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectWeapon.java b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectWeapon.java new file mode 100644 index 000000000..6e1d60ef9 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectWeapon.java @@ -0,0 +1,27 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IExplosionSFX; +import com.hbm.particle.helper.ExplosionSmallCreator; + +import net.minecraft.world.World; + +public class ExplosionEffectWeapon implements IExplosionSFX { + + int cloudCount; + float cloudScale; + float cloudSpeedMult; + + public ExplosionEffectWeapon(int cloudCount, float cloudScale, float cloudSpeedMult) { + this.cloudCount = cloudCount; + this.cloudScale = cloudScale; + this.cloudSpeedMult = cloudSpeedMult; + } + + @Override + public void doEffect(ExplosionVNT explosion, World world, double x, double y, double z, float size) { + if(world.isRemote) return; + + ExplosionSmallCreator.composeEffect(world, x, y, z, cloudCount, cloudScale, cloudSpeedMult); + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/PlayerProcessorStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/PlayerProcessorStandard.java index 186ea3b85..73f75de27 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/PlayerProcessorStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/PlayerProcessorStandard.java @@ -5,8 +5,8 @@ import java.util.Map.Entry; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.IPlayerProcessor; -import com.hbm.packet.ExplosionKnockbackPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.ExplosionKnockbackPacket; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index da9d1d0c6..b09d20d52 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -8,12 +8,13 @@ import com.hbm.config.RadiationConfig; import com.hbm.entity.mob.EntityDuck; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -29,11 +30,11 @@ import net.minecraft.world.World; import net.minecraftforge.common.IExtendedEntityProperties; public class HbmLivingProps implements IExtendedEntityProperties { - + public static final String key = "NTM_EXT_LIVING"; public static final UUID digamma_UUID = UUID.fromString("2a3d8aec-5ab9-4218-9b8b-ca812bdf378b"); public EntityLivingBase entity; - + /// VALS /// private float radiation; private float digamma; @@ -46,25 +47,28 @@ public class HbmLivingProps implements IExtendedEntityProperties { private int bombTimer; private int contagion; private int oil; + public int fire; + public int phosphorus; + public int balefire; private List contamination = new ArrayList(); - + public HbmLivingProps(EntityLivingBase entity) { this.entity = entity; } - + /// DATA /// public static HbmLivingProps registerData(EntityLivingBase entity) { - + entity.registerExtendedProperties(key, new HbmLivingProps(entity)); return (HbmLivingProps) entity.getExtendedProperties(key); } - + public static HbmLivingProps getData(EntityLivingBase entity) { - + HbmLivingProps props = (HbmLivingProps) entity.getExtendedProperties(key); return props != null ? props : registerData(entity); } - + /// RADIATION /// public static float getRadiation(EntityLivingBase entity) { if(!RadiationConfig.enableContamination) @@ -72,89 +76,89 @@ public class HbmLivingProps implements IExtendedEntityProperties { return getData(entity).radiation; } - + public static void setRadiation(EntityLivingBase entity, float rad) { if(RadiationConfig.enableContamination) getData(entity).radiation = rad; } - + public static void incrementRadiation(EntityLivingBase entity, float rad) { if(!RadiationConfig.enableContamination) return; - + HbmLivingProps data = getData(entity); float radiation = getData(entity).radiation + rad; - + if(radiation > 2500) radiation = 2500; if(radiation < 0) radiation = 0; - + data.setRadiation(entity, radiation); } - + /// RAD ENV /// public static float getRadEnv(EntityLivingBase entity) { return getData(entity).radEnv; } - + public static void setRadEnv(EntityLivingBase entity, float rad) { getData(entity).radEnv = rad; } - + /// RAD BUF /// public static float getRadBuf(EntityLivingBase entity) { return getData(entity).radBuf; } - + public static void setRadBuf(EntityLivingBase entity, float rad) { getData(entity).radBuf = rad; } - + /// CONTAMINATION /// public static List getCont(EntityLivingBase entity) { return getData(entity).contamination; } - + public static void addCont(EntityLivingBase entity, ContaminationEffect cont) { getData(entity).contamination.add(cont); } - + /// DIGAMA /// public static float getDigamma(EntityLivingBase entity) { return getData(entity).digamma; } - + public static void setDigamma(EntityLivingBase entity, float digamma) { - + if(entity.worldObj.isRemote) return; - + if(entity instanceof EntityDuck) digamma = 0.0F; - + getData(entity).digamma = digamma; - + float healthMod = (float)Math.pow(0.5, digamma) - 1F; - + IAttributeInstance attributeinstance = entity.getAttributeMap().getAttributeInstance(SharedMonsterAttributes.maxHealth); - + try { attributeinstance.removeModifier(attributeinstance.getModifier(digamma_UUID)); } catch(Exception ex) { } - + attributeinstance.applyModifier(new AttributeModifier(digamma_UUID, "digamma", healthMod, 2)); - + if(entity.getHealth() > entity.getMaxHealth() && entity.getMaxHealth() > 0) { entity.setHealth(entity.getMaxHealth()); } - + if((entity.getMaxHealth() <= 0 || digamma >= 10.0F) && entity.isEntityAlive()) { entity.setAbsorptionAmount(0); entity.attackEntityFrom(ModDamageSource.digamma, 500F); entity.setHealth(0); entity.onDeath(ModDamageSource.digamma); - + NBTTagCompound data = new NBTTagCompound(); data.setString("type", "sweat"); data.setInteger("count", 50); @@ -162,9 +166,9 @@ public class HbmLivingProps implements IExtendedEntityProperties { data.setInteger("entity", entity.getEntityId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 50)); } - + if(entity instanceof EntityPlayer) { - + float di = getData(entity).digamma; if(di > 0F) @@ -175,110 +179,136 @@ public class HbmLivingProps implements IExtendedEntityProperties { ((EntityPlayer) entity).triggerAchievement(MainRegistry.digammaKnow); } } - + public static void incrementDigamma(EntityLivingBase entity, float digamma) { - + if(entity instanceof EntityDuck) digamma = 0.0F; - + HbmLivingProps data = getData(entity); float dRad = getDigamma(entity) + digamma; - + if(dRad > 10) dRad = 10; if(dRad < 0) dRad = 0; - + data.setDigamma(entity, dRad); } - - + + /// ASBESTOS /// public static int getAsbestos(EntityLivingBase entity) { if(RadiationConfig.disableAsbestos) return 0; return getData(entity).asbestos; } - + public static void setAsbestos(EntityLivingBase entity, int asbestos) { if(RadiationConfig.disableAsbestos) return; getData(entity).asbestos = asbestos; - + if(asbestos >= maxAsbestos) { getData(entity).asbestos = 0; entity.attackEntityFrom(ModDamageSource.asbestos, 1000); } } - + public static void incrementAsbestos(EntityLivingBase entity, int asbestos) { if(RadiationConfig.disableAsbestos) return; setAsbestos(entity, getAsbestos(entity) + asbestos); - + if(entity instanceof EntityPlayerMP) { PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation("info.asbestos").color(EnumChatFormatting.RED).flush(), MainRegistry.proxy.ID_GAS_HAZARD, 3000), (EntityPlayerMP) entity); } } - - + + /// BLACK LUNG DISEASE /// public static int getBlackLung(EntityLivingBase entity) { if(RadiationConfig.disableCoal) return 0; return getData(entity).blacklung; } - + public static void setBlackLung(EntityLivingBase entity, int blacklung) { if(RadiationConfig.disableCoal) return; getData(entity).blacklung = blacklung; - + if(blacklung >= maxBlacklung) { getData(entity).blacklung = 0; entity.attackEntityFrom(ModDamageSource.blacklung, 1000); } } - + public static void incrementBlackLung(EntityLivingBase entity, int blacklung) { if(RadiationConfig.disableCoal) return; setBlackLung(entity, getBlackLung(entity) + blacklung); - + if(entity instanceof EntityPlayerMP) { PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation("info.coaldust").color(EnumChatFormatting.RED).flush(), MainRegistry.proxy.ID_GAS_HAZARD, 3000), (EntityPlayerMP) entity); } } - + /// TIME BOMB /// public static int getTimer(EntityLivingBase entity) { return getData(entity).bombTimer; } - + public static void setTimer(EntityLivingBase entity, int bombTimer) { getData(entity).bombTimer = bombTimer; } - + /// CONTAGION /// public static int getContagion(EntityLivingBase entity) { return getData(entity).contagion; } - + public static void setContagion(EntityLivingBase entity, int contageon) { getData(entity).contagion = contageon; } - + /// OIL /// - public static int getOil(EntityLivingBase entity) { - return getData(entity).oil; - } - - public static void setOil(EntityLivingBase entity, int oil) { - getData(entity).oil = oil; - } + public static int getOil(EntityLivingBase entity) { return getData(entity).oil; } + public static void setOil(EntityLivingBase entity, int oil) { getData(entity).oil = oil; } @Override public void init(Entity entity, World world) { } + public void serialize(ByteBuf buf) { + buf.writeFloat(radiation); + buf.writeFloat(digamma); + buf.writeInt(asbestos); + buf.writeInt(bombTimer); + buf.writeInt(contagion); + buf.writeInt(blacklung); + buf.writeInt(oil); + buf.writeInt(this.contamination.size()); + for (ContaminationEffect contaminationEffect : this.contamination) { + contaminationEffect.serialize(buf); // long ass buffers? uh, yes please! + } + } + + public void deserialize(ByteBuf buf) { + if(buf.readableBytes() > 0) { + radiation = buf.readFloat(); + digamma = buf.readFloat(); + asbestos = buf.readInt(); + bombTimer = buf.readInt(); + contagion = buf.readInt(); + blacklung = buf.readInt(); + oil = buf.readInt(); + int size = buf.readInt(); + for (int i = 0; i < size; i++) { + this.contamination.add(ContaminationEffect.deserialize(buf)); + } + } + } + + @Deprecated @Override public void saveNBTData(NBTTagCompound nbt) { - + NBTTagCompound props = new NBTTagCompound(); - + props.setFloat("hfr_radiation", radiation); props.setFloat("hfr_digamma", digamma); props.setInteger("hfr_asbestos", asbestos); @@ -286,21 +316,25 @@ public class HbmLivingProps implements IExtendedEntityProperties { props.setInteger("hfr_contagion", contagion); props.setInteger("hfr_blacklung", blacklung); props.setInteger("hfr_oil", oil); - + props.setInteger("hfr_fire", fire); + props.setInteger("hfr_phosphorus", phosphorus); + props.setInteger("hfr_balefire", balefire); + props.setInteger("hfr_cont_count", this.contamination.size()); - + for(int i = 0; i < this.contamination.size(); i++) { this.contamination.get(i).save(props, i); } - + nbt.setTag("HbmLivingProps", props); } + @Deprecated @Override public void loadNBTData(NBTTagCompound nbt) { - + NBTTagCompound props = (NBTTagCompound) nbt.getTag("HbmLivingProps"); - + if(props != null) { radiation = props.getFloat("hfr_radiation"); digamma = props.getFloat("hfr_digamma"); @@ -309,32 +343,52 @@ public class HbmLivingProps implements IExtendedEntityProperties { contagion = props.getInteger("hfr_contagion"); blacklung = props.getInteger("hfr_blacklung"); oil = props.getInteger("hfr_oil"); - + fire = props.getInteger("hfr_fire"); + phosphorus = props.getInteger("hfr_phosphorus"); + balefire = props.getInteger("hfr_balefire"); + int cont = props.getInteger("hfr_cont_count"); - + for(int i = 0; i < cont; i++) { this.contamination.add(ContaminationEffect.load(props, i)); } } } - + public static class ContaminationEffect { - + public float maxRad; public int maxTime; public int time; public boolean ignoreArmor; - + public ContaminationEffect(float rad, int time, boolean ignoreArmor) { this.maxRad = rad; this.maxTime = this.time = time; this.ignoreArmor = ignoreArmor; } - + public float getRad() { return maxRad * ((float)time / (float)maxTime); } - + + public void serialize(ByteBuf buf) { + buf.writeFloat(this.maxRad); + buf.writeInt(this.maxTime); + buf.writeInt(this.time); + buf.writeBoolean(ignoreArmor); + } + + public static ContaminationEffect deserialize(ByteBuf buf) { + float maxRad = buf.readFloat(); + int maxTime = buf.readInt(); + int time = buf.readInt(); + boolean ignoreArmor = buf.readBoolean(); + ContaminationEffect effect = new ContaminationEffect(maxRad, maxTime, ignoreArmor); + effect.time = time; + return effect; + } + public void save(NBTTagCompound nbt, int index) { NBTTagCompound me = new NBTTagCompound(); me.setFloat("maxRad", this.maxRad); @@ -343,14 +397,14 @@ public class HbmLivingProps implements IExtendedEntityProperties { me.setBoolean("ignoreArmor", ignoreArmor); nbt.setTag("cont_" + index, me); } - + public static ContaminationEffect load(NBTTagCompound nbt, int index) { NBTTagCompound me = (NBTTagCompound) nbt.getTag("cont_" + index); float maxRad = me.getFloat("maxRad"); int maxTime = nbt.getInteger("maxTime"); int time = nbt.getInteger("time"); boolean ignoreArmor = nbt.getBoolean("ignoreArmor"); - + ContaminationEffect effect = new ContaminationEffect(maxRad, maxTime, ignoreArmor); effect.time = time; return effect; diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index d6f173e61..9439b5572 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -1,89 +1,105 @@ package com.hbm.extprop; import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.handler.ArmorModHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.items.armor.ItemModShield; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.IExtendedEntityProperties; public class HbmPlayerProps implements IExtendedEntityProperties { - + public static final String key = "NTM_EXT_PLAYER"; public EntityPlayer player; - + + public boolean hasReceivedBook = false; + public boolean enableHUD = true; public boolean enableBackpack = true; - + private boolean[] keysPressed = new boolean[EnumKeybind.values().length]; - + public boolean dashActivated = true; - + public static final int dashCooldownLength = 5; public int dashCooldown = 0; - + public int totalDashCount = 0; public int stamina = 0; - + public static final int plinkCooldownLength = 10; public int plinkCooldown = 0; - + public float shield = 0; public float maxShield = 0; public int lastDamage = 0; public static final float shieldCap = 100; - + + public int reputation; + + public boolean isOnLadder = false; + public HbmPlayerProps(EntityPlayer player) { this.player = player; } - + public static HbmPlayerProps registerData(EntityPlayer player) { player.registerExtendedProperties(key, new HbmPlayerProps(player)); return (HbmPlayerProps) player.getExtendedProperties(key); } - + public static HbmPlayerProps getData(EntityPlayer player) { HbmPlayerProps props = (HbmPlayerProps) player.getExtendedProperties(key); return props != null ? props : registerData(player); } - + public boolean getKeyPressed(EnumKeybind key) { return keysPressed[key.ordinal()]; } - + public boolean isJetpackActive() { return this.enableBackpack && getKeyPressed(EnumKeybind.JETPACK); } - + public void setKeyPressed(EnumKeybind key, boolean pressed) { - + if(!getKeyPressed(key) && pressed) { - + if(key == EnumKeybind.TOGGLE_JETPACK) { - this.enableBackpack = !this.enableBackpack; - - if(this.enableBackpack) - MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "Jetpack ON", MainRegistry.proxy.ID_JETPACK); - else - MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "Jetpack OFF", MainRegistry.proxy.ID_JETPACK); + + if(!player.worldObj.isRemote) { + this.enableBackpack = !this.enableBackpack; + + if(this.enableBackpack) + MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "Jetpack ON", MainRegistry.proxy.ID_JETPACK); + else + MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "Jetpack OFF", MainRegistry.proxy.ID_JETPACK); + } } if(key == EnumKeybind.TOGGLE_HEAD) { - this.enableHUD = !this.enableHUD; - - if(this.enableHUD) - MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "HUD ON", MainRegistry.proxy.ID_HUD); - else - MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "HUD OFF", MainRegistry.proxy.ID_HUD); + + if(!player.worldObj.isRemote) { + this.enableHUD = !this.enableHUD; + + if(this.enableHUD) + MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "HUD ON", MainRegistry.proxy.ID_HUD); + else + MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "HUD OFF", MainRegistry.proxy.ID_HUD); + } } - + if(key == EnumKeybind.TRAIN) { - + if(!this.player.worldObj.isRemote) { if(player.ridingEntity != null && player.ridingEntity instanceof EntityRailCarBase && player.ridingEntity instanceof IGUIProvider) { @@ -92,72 +108,117 @@ public class HbmPlayerProps implements IExtendedEntityProperties { } } } - + keysPressed[key.ordinal()] = pressed; } - + public void setDashCooldown(int cooldown) { this.dashCooldown = cooldown; return; } - + public int getDashCooldown() { return this.dashCooldown; } - + public void setStamina(int stamina) { this.stamina = stamina; return; } - + public int getStamina() { return this.stamina; } - + public void setDashCount(int count) { this.totalDashCount = count; return; } - + public int getDashCount() { return this.totalDashCount; } - + public static void plink(EntityPlayer player, String sound, float volume, float pitch) { HbmPlayerProps props = HbmPlayerProps.getData(player); - + if(props.plinkCooldown <= 0) { player.worldObj.playSoundAtEntity(player, sound, volume, pitch); props.plinkCooldown = props.plinkCooldownLength; } } - - public float getMaxShield() { - return this.maxShield; + + public float getEffectiveMaxShield() { + + float max = this.maxShield; + + if(player.getCurrentArmor(2) != null) { + ItemStack[] mods = ArmorModHandler.pryMods(player.getCurrentArmor(2)); + if(mods[ArmorModHandler.kevlar] != null && mods[ArmorModHandler.kevlar].getItem() instanceof ItemModShield) { + ItemModShield mod = (ItemModShield) mods[ArmorModHandler.kevlar].getItem(); + max += mod.shield; + } + } + + return max; } @Override public void init(Entity entity, World world) { } + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.hasReceivedBook); + buf.writeFloat(this.shield); + buf.writeFloat(this.maxShield); + buf.writeBoolean(this.enableBackpack); + buf.writeBoolean(this.enableHUD); + buf.writeInt(this.reputation); + buf.writeBoolean(this.isOnLadder); + } + + public void deserialize(ByteBuf buf) { + if(buf.readableBytes() > 0) { + this.hasReceivedBook = buf.readBoolean(); + this.shield = buf.readFloat(); + this.maxShield = buf.readFloat(); + this.enableBackpack = buf.readBoolean(); + this.enableHUD = buf.readBoolean(); + this.reputation = buf.readInt(); + this.isOnLadder = buf.readBoolean(); + } + } + + @Deprecated @Override public void saveNBTData(NBTTagCompound nbt) { - + NBTTagCompound props = new NBTTagCompound(); - + + props.setBoolean("hasReceivedBook", hasReceivedBook); props.setFloat("shield", shield); props.setFloat("maxShield", maxShield); - + props.setBoolean("enableBackpack", enableBackpack); + props.setBoolean("enableHUD", enableHUD); + props.setInteger("reputation", reputation); + props.setBoolean("isOnLadder", isOnLadder); + nbt.setTag("HbmPlayerProps", props); } + @Deprecated @Override public void loadNBTData(NBTTagCompound nbt) { - + NBTTagCompound props = (NBTTagCompound) nbt.getTag("HbmPlayerProps"); - + if(props != null) { + this.hasReceivedBook = props.getBoolean("hasReceivedBook"); this.shield = props.getFloat("shield"); this.maxShield = props.getFloat("maxShield"); + this.enableBackpack = props.getBoolean("enableBackpack"); + this.enableHUD = props.getBoolean("enableHUD"); + this.reputation = props.getInteger("reputation"); + this.isOnLadder = props.getBoolean("isOnLadder"); } } } diff --git a/src/main/java/com/hbm/handler/ArmorModHandler.java b/src/main/java/com/hbm/handler/ArmorModHandler.java index 9beabfb46..9104d826b 100644 --- a/src/main/java/com/hbm/handler/ArmorModHandler.java +++ b/src/main/java/com/hbm/handler/ArmorModHandler.java @@ -1,13 +1,12 @@ package com.hbm.handler; -import java.util.UUID; - import com.hbm.items.armor.ItemArmorMod; - import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import java.util.UUID; + public class ArmorModHandler { public static final int helmet_only = 0; @@ -18,26 +17,29 @@ public class ArmorModHandler { public static final int cladding = 5; public static final int kevlar = 6; public static final int extra = 7; - + public static final int battery = 8; + + public static final int MOD_SLOTS = 9; + public static final UUID[] UUIDs = new UUID[] { UUID.fromString("8d6e5c77-133e-4056-9c80-a9e42a1a0b65"), UUID.fromString("b1b7ee0e-1d14-4400-8037-f7f2e02f21ca"), UUID.fromString("30b50d2a-4858-4e5b-88d4-3e3612224238"), UUID.fromString("426ee0d0-7587-4697-aaef-4772ab202e78") }; - + public static final UUID[] fixedUUIDs = new UUID[] { UUID.fromString("e572caf4-3e65-4152-bc79-c4d4048cbd29"), UUID.fromString("bed30902-8a6a-4769-9f65-2a9b67469fff"), UUID.fromString("baebf7b3-1eda-4a14-b233-068e2493e9a2"), UUID.fromString("28016c1b-d992-4324-9409-a9f9f0ffb85c") }; - + //The key for the NBTTagCompound that holds the armor mods public static final String MOD_COMPOUND_KEY = "ntm_armor_mods"; //The key for the specific slot inside the armor mod NBT Tag public static final String MOD_SLOT_KEY = "mod_slot_"; - + /** * Checks if a mod can be applied to an armor piece * Needs to be used to prevent people from inserting invalid items into the armor table @@ -46,23 +48,23 @@ public class ArmorModHandler { * @return */ public static boolean isApplicable(ItemStack armor, ItemStack mod) { - + if(armor == null || mod == null) return false; - + if(!(armor.getItem() instanceof ItemArmor)) return false; - + if(!(mod.getItem() instanceof ItemArmorMod)) return false; - + int type = ((ItemArmor)armor.getItem()).armorType; - + ItemArmorMod aMod = (ItemArmorMod)mod.getItem(); - + return (type == 0 && aMod.helmet) || (type == 1 && aMod.chestplate) || (type == 2 && aMod.leggings) || (type == 3 && aMod.boots); } - + /** * Applies an mod to the given armor piece * Make sure to check for applicability first @@ -71,101 +73,124 @@ public class ArmorModHandler { * @param mod */ public static void applyMod(ItemStack armor, ItemStack mod) { - + if(!armor.hasTagCompound()) armor.stackTagCompound = new NBTTagCompound(); - + NBTTagCompound nbt = armor.getTagCompound(); - + if(!nbt.hasKey(MOD_COMPOUND_KEY)) nbt.setTag(MOD_COMPOUND_KEY, new NBTTagCompound()); - + NBTTagCompound mods = nbt.getCompoundTag(MOD_COMPOUND_KEY); - + ItemArmorMod aMod = (ItemArmorMod)mod.getItem(); int slot = aMod.type; - + NBTTagCompound cmp = new NBTTagCompound(); mod.writeToNBT(cmp); - + mods.setTag(MOD_SLOT_KEY + slot, cmp); } - + /** * Removes the mod from the given slot * @param armor * @param slot */ public static void removeMod(ItemStack armor, int slot) { - + if(armor == null) return; - + if(!armor.hasTagCompound()) armor.stackTagCompound = new NBTTagCompound(); - + NBTTagCompound nbt = armor.getTagCompound(); - + if(!nbt.hasKey(MOD_COMPOUND_KEY)) nbt.setTag(MOD_COMPOUND_KEY, new NBTTagCompound()); - + NBTTagCompound mods = nbt.getCompoundTag(MOD_COMPOUND_KEY); mods.removeTag(MOD_SLOT_KEY + slot); - + if(mods.hasNoTags()) clearMods(armor); } - + /** * Removes ALL mods * Should be used when the armor piece is put in the armor table slot AFTER the armor pieces have been separated * @param armor */ public static void clearMods(ItemStack armor) { - + if(!armor.hasTagCompound()) return; - + NBTTagCompound nbt = armor.getTagCompound(); nbt.removeTag(MOD_COMPOUND_KEY); } - + /** - * Does what the name implies + * Does what the name implies. Returns true if the stack has NBT and that NBT has the MOD_COMPOUND_KEY tag. * @param armor * @return */ public static boolean hasMods(ItemStack armor) { - + if(!armor.hasTagCompound()) return false; - + NBTTagCompound nbt = armor.getTagCompound(); return nbt.hasKey(MOD_COMPOUND_KEY); } - + + /** + * Gets all the modifications in the provided armor + * @param armor + * @return + */ public static ItemStack[] pryMods(ItemStack armor) { - - ItemStack[] slots = new ItemStack[8]; + + ItemStack[] slots = new ItemStack[MOD_SLOTS]; if(!hasMods(armor)) return slots; - + NBTTagCompound nbt = armor.getTagCompound(); NBTTagCompound mods = nbt.getCompoundTag(MOD_COMPOUND_KEY); - - for(int i = 0; i < 8; i++) { - + + for(int i = 0; i < MOD_SLOTS; i++) { + NBTTagCompound cmp = mods.getCompoundTag(MOD_SLOT_KEY + i); - + ItemStack stack = ItemStack.loadItemStackFromNBT(cmp); - + if(stack != null) slots[i] = stack; else // Any non-existing armor mods will be sorted out automatically removeMod(armor, i); } - + return slots; } + + public static ItemStack pryMod(ItemStack armor, int slot) { + + if(!hasMods(armor)) + return null; + + NBTTagCompound nbt = armor.getTagCompound(); + NBTTagCompound mods = nbt.getCompoundTag(MOD_COMPOUND_KEY); + NBTTagCompound cmp = mods.getCompoundTag(MOD_SLOT_KEY + slot); + ItemStack stack = ItemStack.loadItemStackFromNBT(cmp); + + if(stack != null) + return stack; + + removeMod(armor, slot); + + return null; + } } diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index 80f7ca4a2..26fcfd55b 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -7,12 +7,12 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GUIScreenBobmazon.Offer; import com.hbm.inventory.gui.GUIScreenBobmazon.Requirement; -import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemKitCustom; import com.hbm.items.special.ItemKitNBT; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -63,10 +63,6 @@ public class BobmazonOfferFactory { materials.add(new Offer(new ItemStack(ModItems.gas_full, 1, Fluids.PETROLEUM.getID()), Requirement.OIL, 8 * inflation)); materials.add(new Offer(new ItemStack(ModItems.motor), Requirement.ASSEMBLY, 12 * inflation)); materials.add(new Offer(new ItemStack(ModItems.rtg_unit), Requirement.NUCLEAR, 25 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.circuit_aluminium), Requirement.ASSEMBLY, 4 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.circuit_copper), Requirement.ASSEMBLY, 6 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.circuit_red_copper), Requirement.ASSEMBLY, 10 * inflation)); - materials.add(new Offer(new ItemStack(ModItems.circuit_gold), Requirement.CHEMICS, 16 * inflation)); materials.add(new Offer(new ItemStack(ModItems.pellet_gas), Requirement.CHEMICS, 4 * inflation)); materials.add(new Offer(new ItemStack(ModItems.magnetron), Requirement.ASSEMBLY, 10 * inflation)); materials.add(new Offer(new ItemStack(ModItems.pellet_rtg), Requirement.NUCLEAR, 27 * inflation)); @@ -91,8 +87,6 @@ public class BobmazonOfferFactory { machines.add(new Offer(new ItemStack(ModBlocks.machine_lithium_battery), Requirement.CHEMICS, 60 * inflation)); machines.add(new Offer(new ItemStack(ModBlocks.machine_assembler), Requirement.ASSEMBLY, 30 * inflation)); machines.add(new Offer(new ItemStack(ModBlocks.machine_chemplant), Requirement.CHEMICS, 50 * inflation)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_off), Requirement.CHEMICS, 25 * inflation)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_electric_off), Requirement.OIL, 60 * inflation)); machines.add(new Offer(new ItemStack(ModBlocks.machine_shredder), Requirement.ASSEMBLY, 45 * inflation)); machines.add(new Offer(new ItemStack(ModBlocks.machine_well), Requirement.OIL, 40 * inflation)); machines.add(new Offer(new ItemStack(ModBlocks.machine_refinery), Requirement.OIL, 80 * inflation)); @@ -116,32 +110,6 @@ public class BobmazonOfferFactory { weapons.add(new Offer(new ItemStack(ModItems.detonator), Requirement.ASSEMBLY, 15 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.detonator_laser), Requirement.CHEMICS, 60 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.defuser), Requirement.OIL, 5 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_revolver), Requirement.ASSEMBLY, 15 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_nopip), Requirement.ASSEMBLY, 20 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_minigun), Requirement.OIL, 100 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_panzerschreck), Requirement.ASSEMBLY, 95 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_hk69), Requirement.ASSEMBLY, 60 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_uzi), Requirement.OIL, 80 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_lever_action), Requirement.ASSEMBLY, 60 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_bolt_action), Requirement.ASSEMBLY, 35 * inflation)); - weapons.add(new Offer(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.LEAD), Requirement.OIL, 12 * inflation)); - weapons.add(new Offer(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.DESH), Requirement.OIL, 36 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_44, 6), Requirement.OIL, 12 * inflation)); - weapons.add(new Offer(ModItems.ammo_44.stackFromEnum(6, Ammo44Magnum.AP), Requirement.OIL, 18 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm, 50), Requirement.OIL, 50 * inflation)); - weapons.add(new Offer(ModItems.ammo_5mm.stackFromEnum(50, Ammo5mm.DU), Requirement.OIL, 75 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket), Requirement.OIL, 5 * inflation)); - weapons.add(new Offer(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.INCENDIARY), Requirement.OIL, 8 * inflation)); - weapons.add(new Offer(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.SLEEK), Requirement.OIL, 12 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade), Requirement.OIL, 4 * inflation)); - weapons.add(new Offer(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.INCENDIARY), Requirement.OIL, 6 * inflation)); - weapons.add(new Offer(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.SLEEK), Requirement.OIL, 10 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr, 32), Requirement.OIL, 24 * inflation)); - weapons.add(new Offer(ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.AP), Requirement.OIL, 32 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge, 6), Requirement.OIL, 18 * inflation)); - weapons.add(new Offer(ModItems.ammo_20gauge.stackFromEnum(6, Ammo20Gauge.SLUG), Requirement.OIL, 20 * inflation)); - weapons.add(new Offer(ModItems.ammo_20gauge.stackFromEnum(6, Ammo20Gauge.FLECHETTE), Requirement.OIL, 22 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_hp_ammo, 1), Requirement.ASSEMBLY, 1000 * inflation)); tools.add(new Offer(new ItemStack(ModBlocks.crate_can, 1), Requirement.STEEL, 20 * inflation)); tools.add(new Offer(new ItemStack(ModBlocks.machine_keyforge), Requirement.STEEL, 10 * inflation)); @@ -244,24 +212,18 @@ public class BobmazonOfferFactory { ), Requirement.HIDDEN, 64)); special.add(new Offer(ItemKitCustom.create("Maid's Cleaning Utensils", "For the hard to reach spots", 0x00ff00, 0x008000, - new ItemStack(ModItems.gun_calamity), - ModItems.ammo_50bmg.stackFromEnum(64, Ammo50BMG.CHLOROPHYTE), - ModItems.ammo_50bmg.stackFromEnum(64, Ammo50BMG.CHLOROPHYTE), - ModItems.ammo_50bmg.stackFromEnum(64, Ammo50BMG.CHLOROPHYTE), - ModItems.ammo_50ae.stackFromEnum(64, Ammo50AE.STAR), - ModItems.ammo_50ae.stackFromEnum(64, Ammo50AE.STAR), - new ItemStack(ModItems.gun_supershotgun), - ModItems.ammo_12gauge.stackFromEnum(64, Ammo12Gauge.DU), - ModItems.ammo_12gauge.stackFromEnum(64, Ammo12Gauge.DU), - ModItems.ammo_12gauge.stackFromEnum(64, Ammo12Gauge.SHRAPNEL), - ModItems.ammo_12gauge.stackFromEnum(64, Ammo12Gauge.SHRAPNEL), - ModItems.ammo_12gauge.stackFromEnum(4, Ammo12Gauge.MARAUDER), - new ItemStack(ModItems.gun_sauer), - new ItemStack(ModItems.ammo_4gauge, 64), - ModItems.ammo_4gauge.stackFromEnum(64, Ammo4Gauge.CLAW), - ModItems.ammo_4gauge.stackFromEnum(64, Ammo4Gauge.KAMPF), - ModItems.ammo_4gauge.stackFromEnum(64, Ammo4Gauge.FLECHETTE), - ModItems.ammo_4gauge.stackFromEnum(64, Ammo4Gauge.VOID) + new ItemStack(ModItems.gun_m2), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.BMG50_DU.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.BMG50_DU.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.BMG50_DU.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.BMG50_DU.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.BMG50_DU.ordinal()), + new ItemStack(ModItems.gun_autoshotgun), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.G12_MAGNUM.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.G12_MAGNUM.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.G12_MAGNUM.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.G12_EXPLOSIVE.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.G12_EXPLOSIVE.ordinal()) ), Requirement.HIDDEN, 64)); special.add(new Offer(ItemKitNBT.create( @@ -276,17 +238,11 @@ public class BobmazonOfferFactory { new ItemStack(ModItems.rpa_plate), new ItemStack(ModItems.rpa_legs), new ItemStack(ModItems.rpa_boots), - new ItemStack(ModItems.gun_lacunae), - ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), - ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), - ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), - ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), - ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), - ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), - ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR) + new ItemStack(ModItems.gun_minigun_lacunae), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.CAPACITOR_OVERCHARGE.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.CAPACITOR_OVERCHARGE.ordinal()), + new ItemStack(ModItems.ammo_standard, 64, EnumAmmo.CAPACITOR_OVERCHARGE.ordinal()) ).setStackDisplayName("Frenchman's Reward"), Requirement.HIDDEN, 32)); - - special.add(new Offer(new ItemStack(ModItems.gun_detonator, 1), Requirement.HIDDEN, 32)); } public static List getOffers(ItemStack stack) { diff --git a/src/main/java/com/hbm/handler/BossSpawnHandler.java b/src/main/java/com/hbm/handler/BossSpawnHandler.java index 5c3a206c7..fa14f7d41 100644 --- a/src/main/java/com/hbm/handler/BossSpawnHandler.java +++ b/src/main/java/com/hbm/handler/BossSpawnHandler.java @@ -202,15 +202,17 @@ public class BossSpawnHandler { boolean repell = false; boolean strike = true; - if(p.getCurrentArmor(2) != null && ArmorModHandler.hasMods(p.getCurrentArmor(2))) { - ItemStack mod = ArmorModHandler.pryMods(p.getCurrentArmor(2))[ArmorModHandler.helmet_only]; - - if(mod != null) { - if(mod.getItem() == ModItems.protection_charm) { - repell = true; - } - if(mod.getItem() == ModItems.meteor_charm) { - strike = false; + for(int i = 0; i < 4; i++) { + ItemStack armor = p.getCurrentArmor(i); + if(armor != null && ArmorModHandler.hasMods(armor)) { + + for(int j = 0; j < 8; j++) { + ItemStack mod = ArmorModHandler.pryMods(armor)[j]; + + if(mod != null) { + if(mod.getItem() == ModItems.protection_charm) repell = true; + if(mod.getItem() == ModItems.meteor_charm) strike = false; + } } } } @@ -243,8 +245,9 @@ public class BossSpawnHandler { Vec3 vec; if(repell) { vec = Vec3.createVectorHelper(meteor.posX - player.posX, 0, meteor.posZ - player.posZ).normalize(); - vec.xCoord = vec.xCoord * meteorRand.nextDouble() - 0.5D; - vec.zCoord = vec.zCoord * meteorRand.nextDouble() - 0.5D; + double vel = meteorRand.nextDouble(); + vec.xCoord = vec.xCoord * vel; + vec.zCoord = vec.zCoord * vel; meteor.safe = true; } else { vec = Vec3.createVectorHelper(meteorRand.nextDouble() - 0.5D, 0, 0); diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 7e7af9633..f3401ff0b 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -4,285 +4,22 @@ import java.util.HashMap; import java.util.Map.Entry; import com.hbm.handler.guncfg.*; -import com.hbm.items.ItemAmmoEnums.*; -import com.hbm.items.ModItems; public class BulletConfigSyncingUtil { - private static HashMap configSet = new HashMap(); + private static HashMap configSet = new HashMap(); static int i = 0; - /// duplicate ids will cause wrong configs to be loaded /// public static int TEST_CONFIG = i++; - public static int IRON_REVOLVER = i++; - public static int STEEL_REVOLVER = i++; - public static int LEAD_REVOLVER = i++; - public static int GOLD_REVOLVER = i++; - public static int CURSED_REVOLVER = i++; - public static int SCHRABIDIUM_REVOLVER = i++; - public static int NIGHT_REVOLVER = i++; - public static int NIGHT2_REVOLVER = i++; - public static int SATURNITE_REVOLVER = i++; - public static int DESH_REVOLVER = i++; - - public static int IRON_HS = i++; - public static int STEEL_HS = i++; - public static int GOLD_HS = i++; - public static int LEAD_HS = i++; - public static int DESH_HS = i++; - public static int G20_NORMAL = i++; - public static int G20_SLUG = i++; - public static int G20_FLECHETTE = i++; - public static int G20_FIRE = i++; - public static int G20_SHRAPNEL = i++; - public static int G20_EXPLOSIVE = i++; - public static int G20_CAUSTIC = i++; - public static int G20_SHOCK = i++; - public static int G20_WITHER = i++; - public static int G20_SLEEK = i++; - - public static int ROCKET_NORMAL = i++; - public static int ROCKET_HE = i++; - public static int ROCKET_INCENDIARY = i++; - public static int ROCKET_SHRAPNEL = i++; - public static int ROCKET_EMP = i++; - public static int ROCKET_GLARE = i++; - public static int ROCKET_SLEEK = i++; - public static int ROCKET_NUKE = i++; - public static int ROCKET_CHAINSAW = i++; - public static int ROCKET_TOXIC = i++; - public static int ROCKET_PHOSPHORUS = i++; - public static int ROCKET_CANISTER = i++; - public static int ROCKET_ERROR = i++; - - public static int GRENADE_NORMAL = i++; - public static int GRENADE_HE = i++; - public static int GRENADE_INCENDIARY = i++; - public static int GRENADE_CHEMICAL = i++; - public static int GRENADE_SLEEK = i++; - public static int GRENADE_CONCUSSION = i++; - public static int GRENADE_FINNED = i++; - public static int GRENADE_NUCLEAR = i++; - public static int GRENADE_PHOSPHORUS = i++; - public static int GRENADE_TRACER = i++; - public static int GRENADE_KAMPF = i++; - - public static int G12_NORMAL = i++; - public static int G12_INCENDIARY = i++; - public static int G12_SHRAPNEL = i++; - public static int G12_DU = i++; - public static int G12_AM = i++; - public static int G12_SLEEK = i++; - public static int G12_PERCUSSION = i++; - - public static int G12HS_NORMAL = i++; - public static int G12HS_INCENDIARY = i++; - public static int G12HS_SHRAPNEL = i++; - public static int G12HS_DU = i++; - public static int G12HS_AM = i++; - public static int G12HS_SLEEK = i++; - public static int G12HS_PERCUSSION = i++; - - public static int LR22_NORMAL = i++; - public static int LR22_AP = i++; - public static int LR22_NORMAL_FIRE = i++; - public static int LR22_AP_FIRE = i++; - - public static int M44_NORMAL = i++; - public static int M44_AP = i++; - public static int M44_DU = i++; - public static int M44_STAR = i++; - public static int M44_PIP = i++; - public static int M44_BJ = i++; - public static int M44_SILVER = i++; - public static int M44_ROCKET = i++; - public static int M44_PHOSPHORUS = i++; - - public static int P9_NORMAL = i++; - public static int P9_AP = i++; - public static int P9_DU = i++; - public static int P9_ROCKET = i++; - - public static int ACP_45 = i++; - public static int ACP_45_AP = i++; - public static int ACP_45_DU = i++; - - public static int BMG50_NORMAL = i++; - public static int BMG50_INCENDIARY = i++; - public static int BMG50_EXPLOSIVE = i++; - public static int BMG50_AP = i++; - public static int BMG50_DU = i++; - public static int BMG50_STAR = i++; - public static int BMG50_PHOSPHORUS = i++; - public static int BMG50_SLEEK = i++; - public static int BMG50_FLECHETTE_NORMAL = i++; - public static int BMG50_FLECHETTE_AM = i++; - public static int BMG50_FLECHETTE_PO = i++; - - public static int ROUND_LUNA_SNIPER_SABOT = i++; - public static int ROUND_LUNA_SNIPER_INCENDIARY = i++; - public static int ROUND_LUNA_SNIPER_EXPLOSIVE = i++; - - public static int R5_NORMAL = i++; - public static int R5_EXPLOSIVE = i++; - public static int R5_DU = i++; - public static int R5_STAR = i++; - public static int R5_NORMAL_BOLT = i++; - public static int R5_EXPLOSIVE_BOLT = i++; - public static int R5_DU_BOLT = i++; - public static int R5_STAR_BOLT = i++; - - public static int AE50_NORMAL = i++; - public static int AE50_AP = i++; - public static int AE50_DU = i++; - public static int AE50_STAR = i++; - - public static int G4_NORMAL = i++; - public static int G4_SLUG = i++; - public static int G4_FLECHETTE = i++; - public static int G4_FLECHETTE_PHOSPHORUS = i++; - public static int G4_EXPLOSIVE = i++; - public static int G4_SEMTEX = i++; - public static int G4_BALEFIRE = i++; - public static int G4_KAMPF = i++; - public static int G4_CANISTER = i++; - public static int G4_CLAW = i++; - public static int G4_VAMPIRE = i++; - public static int G4_VOID = i++; - public static int G4_TITAN = i++; - public static int G4_SLEEK = i++; - - public static int SPECIAL_OSIPR = i++; - public static int SPECIAL_OSIPR_CHARGED = i++; - public static int SPECIAL_GAUSS = i++; - public static int SPECIAL_GAUSS_CHARGED = i++; - public static int SPECIAL_EMP = i++; - - public static int FLAMER_NORMAL = i++; - public static int FLAMER_NAPALM = i++; - public static int FLAMER_WP = i++; - public static int FLAMER_VAPORIZER = i++; - public static int FLAMER_GAS = i++; + public static int CRYO_NORMAL = i++; public static int FEXT_NORMAL = i++; public static int FEXT_FOAM = i++; public static int FEXT_SAND = i++; - public static int R556_NORMAL = i++; - public static int R556_GOLD = i++; - public static int R556_PHOSPHORUS = i++; - public static int R556_AP = i++; - public static int R556_DU = i++; - public static int R556_STAR = i++; - public static int R556_SLEEK = i++; - public static int R556_TRACER = i++; - public static int R556_FLECHETTE = i++; - public static int R556_FLECHETTE_INCENDIARY = i++; - public static int R556_FLECHETTE_PHOSPHORUS = i++; - public static int R556_FLECHETTE_DU = i++; - public static int R556_FLECHETTE_SLEEK = i++; - public static int R556_K = i++; - - public static int R762_NORMAL = i++; - public static int R762_PHOSPHORUS = i++; - public static int R762_AP = i++; - public static int R762_DU = i++; - public static int R762_TRACER = i++; - public static int R762_K = i++; - - public static int B75_NORMAL = i++; - public static int B75_INCENDIARY = i++; - public static int B75_HE = i++; - - public static int NEEDLE_GPS = i++; - public static int NEEDLE_NUKE = i++; - public static int DART_NORMAL = i++; - - public static int G20_NORMAL_FIRE = i++; - public static int G20_SHRAPNEL_FIRE = i++; - public static int G20_SLUG_FIRE = i++; - public static int G20_FLECHETTE_FIRE = i++; - public static int G20_EXPLOSIVE_FIRE = i++; - public static int G20_CAUSTIC_FIRE = i++; - public static int G20_SHOCK_FIRE = i++; - public static int G20_WITHER_FIRE = i++; - - public static int ROCKET_NORMAL_LASER = i++; - public static int ROCKET_HE_LASER = i++; - public static int ROCKET_INCENDIARY_LASER = i++; - public static int ROCKET_SHRAPNEL_LASER = i++; - public static int ROCKET_EMP_LASER = i++; - public static int ROCKET_GLARE_LASER = i++; - public static int ROCKET_SLEEK_LASER = i++; - public static int ROCKET_NUKE_LASER = i++; - public static int ROCKET_CHAINSAW_LASER = i++; - public static int ROCKET_TOXIC_LASER = i++; - public static int ROCKET_PHOSPHORUS_LASER = i++; - - public static int ROCKET_STINGER = i++; - public static int ROCKET_STINGER_HE = i++; - public static int ROCKET_STINGER_INCENDIARY = i++; - public static int ROCKET_STINGER_NUCLEAR = i++; - public static int ROCKET_STINGER_BONES = i++; - - public static int SHELL_NORMAL = i++; - public static int SHELL_EXPLOSIVE = i++; - public static int SHELL_AP = i++; - public static int SHELL_DU = i++; - public static int SHELL_W9 = i++; - public static int DGK_NORMAL = i++; - public static int FLA_NORMAL = i++; - - public static int NUKE_NORMAL = i++; - public static int NUKE_LOW = i++; - public static int NUKE_HIGH = i++; - public static int NUKE_TOTS = i++; - public static int NUKE_SAFE = i++; - public static int NUKE_PUMPKIN = i++; - public static int NUKE_BARREL = i++; - public static int NUKE_PROTO_NORMAL = i++; - public static int NUKE_PROTO_LOW = i++; - public static int NUKE_PROTO_HIGH = i++; - public static int NUKE_PROTO_TOTS = i++; - public static int NUKE_PROTO_SAFE = i++; - public static int NUKE_PROTO_PUMPKIN = i++; - public static int NUKE_MIRV_NORMAL = i++; - public static int NUKE_MIRV_LOW = i++; - public static int NUKE_MIRV_HIGH = i++; - public static int NUKE_MIRV_SAFE = i++; - public static int NUKE_MIRV_SPECIAL = i++; - - public static int NUKE_AMAT = i++; - - public static int TWR_RAY = i++; - public static int HLR_NORMAL = i++; - public static int HLR_ALT = i++; - - public static int ZOMG_BOLT = i++; - public static int DET_BOLT = i++; - public static int TURBINE = i++; - - public static int GLASS_EMRADIO = i++; - public static int GLASS_EMMICRO = i++; - public static int GLASS_EMIR = i++; - public static int GLASS_EMVISIBLE = i++; - public static int GLASS_EMUV = i++; - public static int GLASS_EMXRAY = i++; - public static int GLASS_EMGAMMA = i++; - - public static int CHL_LR22 = i++; - public static int CHL_LR22_FIRE = i++; - public static int CHL_M44 = i++; - public static int CHL_P9 = i++; - public static int CHL_BMG50 = i++; - public static int CHL_R5 = i++; - public static int CHL_R5_BOLT = i++; - public static int CHL_AE50 = i++; - public static int CHL_R556 = i++; - public static int CHL_R556_FLECHETTE = i++; public static int MASKMAN_BULLET = i++; public static int MASKMAN_ORB = i++; @@ -298,276 +35,13 @@ public class BulletConfigSyncingUtil { public static void loadConfigsForSync() { - configSet.put(TEST_CONFIG, BulletConfigFactory.getTestConfig()); - - configSet.put(IRON_REVOLVER, Gun357MagnumFactory.getRevIronConfig()); - configSet.put(STEEL_REVOLVER, Gun357MagnumFactory.getRevLeadConfig()); - configSet.put(LEAD_REVOLVER, Gun357MagnumFactory.getRevNuclearConfig()); - configSet.put(GOLD_REVOLVER, Gun357MagnumFactory.getRevGoldConfig()); - configSet.put(CURSED_REVOLVER, Gun357MagnumFactory.getRevCursedConfig()); - configSet.put(SCHRABIDIUM_REVOLVER, Gun357MagnumFactory.getRevSchrabidiumConfig()); - configSet.put(NIGHT_REVOLVER, Gun357MagnumFactory.getRevNightmare1Config()); - configSet.put(NIGHT2_REVOLVER, Gun357MagnumFactory.getRevNightmare2Config()); - configSet.put(SATURNITE_REVOLVER, Gun357MagnumFactory.getRevLeadConfig().setToFire(3)); - configSet.put(DESH_REVOLVER, Gun357MagnumFactory.getRevDeshConfig()); - - configSet.put(IRON_HS, Gun357MagnumFactory.getRevIronConfig().setHeadshot(3F)); - configSet.put(STEEL_HS, Gun357MagnumFactory.getRevCursedConfig().setHeadshot(3F)); - configSet.put(GOLD_HS, Gun357MagnumFactory.getRevGoldConfig().setHeadshot(3F)); - configSet.put(LEAD_HS, Gun357MagnumFactory.getRevLeadConfig().setHeadshot(3F)); - configSet.put(DESH_HS, Gun357MagnumFactory.getRevDeshConfig().setHeadshot(3F)); - - configSet.put(G20_NORMAL, Gun20GaugeFactory.get20GaugeConfig()); - configSet.put(G20_SLUG, Gun20GaugeFactory.get20GaugeSlugConfig()); - configSet.put(G20_FLECHETTE, Gun20GaugeFactory.get20GaugeFlechetteConfig()); - configSet.put(G20_FIRE, Gun20GaugeFactory.get20GaugeFireConfig()); - configSet.put(G20_SHRAPNEL, Gun20GaugeFactory.get20GaugeShrapnelConfig()); - configSet.put(G20_EXPLOSIVE, Gun20GaugeFactory.get20GaugeExplosiveConfig()); - configSet.put(G20_CAUSTIC, Gun20GaugeFactory.get20GaugeCausticConfig()); - configSet.put(G20_SHOCK, Gun20GaugeFactory.get20GaugeShockConfig()); - configSet.put(G20_WITHER, Gun20GaugeFactory.get20GaugeWitherConfig()); - configSet.put(G20_SLEEK, Gun20GaugeFactory.get20GaugeSleekConfig()); - - configSet.put(ROCKET_NORMAL, GunRocketFactory.getRocketConfig()); - configSet.put(ROCKET_HE, GunRocketFactory.getRocketHEConfig()); - configSet.put(ROCKET_INCENDIARY, GunRocketFactory.getRocketIncendiaryConfig()); - configSet.put(ROCKET_PHOSPHORUS, GunRocketFactory.getRocketPhosphorusConfig()); - configSet.put(ROCKET_SHRAPNEL, GunRocketFactory.getRocketShrapnelConfig()); - configSet.put(ROCKET_EMP, GunRocketFactory.getRocketEMPConfig()); - configSet.put(ROCKET_GLARE, GunRocketFactory.getRocketGlareConfig()); - configSet.put(ROCKET_SLEEK, GunRocketFactory.getRocketSleekConfig()); - configSet.put(ROCKET_NUKE, GunRocketFactory.getRocketNukeConfig()); - configSet.put(ROCKET_CHAINSAW, GunRocketFactory.getRocketRPCConfig()); - configSet.put(ROCKET_TOXIC, GunRocketFactory.getRocketChlorineConfig()); - configSet.put(ROCKET_CANISTER, GunRocketFactory.getRocketCanisterConfig()); - configSet.put(ROCKET_ERROR, GunRocketFactory.getRocketErrorConfig()); - - configSet.put(ROCKET_STINGER, GunRocketHomingFactory.getRocketStingerConfig()); - configSet.put(ROCKET_STINGER_HE, GunRocketHomingFactory.getRocketStingerHEConfig()); - configSet.put(ROCKET_STINGER_INCENDIARY, GunRocketHomingFactory.getRocketStingerIncendiaryConfig()); - configSet.put(ROCKET_STINGER_NUCLEAR, GunRocketHomingFactory.getRocketStingerNuclearConfig()); - configSet.put(ROCKET_STINGER_BONES, GunRocketHomingFactory.getRocketStingerBonesConfig()); - - configSet.put(GRENADE_NORMAL, GunGrenadeFactory.getGrenadeConfig()); - configSet.put(GRENADE_HE, GunGrenadeFactory.getGrenadeHEConfig()); - configSet.put(GRENADE_INCENDIARY, GunGrenadeFactory.getGrenadeIncendirayConfig()); - configSet.put(GRENADE_PHOSPHORUS, GunGrenadeFactory.getGrenadePhosphorusConfig()); - configSet.put(GRENADE_CHEMICAL, GunGrenadeFactory.getGrenadeChlorineConfig()); - configSet.put(GRENADE_SLEEK, GunGrenadeFactory.getGrenadeSleekConfig()); - configSet.put(GRENADE_CONCUSSION, GunGrenadeFactory.getGrenadeConcussionConfig()); - configSet.put(GRENADE_FINNED, GunGrenadeFactory.getGrenadeFinnedConfig()); - configSet.put(GRENADE_NUCLEAR, GunGrenadeFactory.getGrenadeNuclearConfig()); - configSet.put(GRENADE_TRACER, GunGrenadeFactory.getGrenadeTracerConfig()); - configSet.put(GRENADE_KAMPF, GunGrenadeFactory.getGrenadeKampfConfig()); - - configSet.put(G12_NORMAL, Gun12GaugeFactory.get12GaugeConfig()); - configSet.put(G12_INCENDIARY, Gun12GaugeFactory.get12GaugeFireConfig()); - configSet.put(G12_SHRAPNEL, Gun12GaugeFactory.get12GaugeShrapnelConfig()); - configSet.put(G12_DU, Gun12GaugeFactory.get12GaugeDUConfig()); - configSet.put(G12_AM, Gun12GaugeFactory.get12GaugeAMConfig()); - configSet.put(G12_SLEEK, Gun12GaugeFactory.get12GaugeSleekConfig()); - configSet.put(G12_PERCUSSION, Gun12GaugeFactory.get12GaugePercussionConfig()); - configSet.put(G12HS_NORMAL, Gun12GaugeFactory.get12GaugeConfig().setHeadshot(2F)); - configSet.put(G12HS_INCENDIARY, Gun12GaugeFactory.get12GaugeFireConfig().setHeadshot(2F)); - configSet.put(G12HS_SHRAPNEL, Gun12GaugeFactory.get12GaugeShrapnelConfig().setHeadshot(2F)); - configSet.put(G12HS_DU, Gun12GaugeFactory.get12GaugeDUConfig().setHeadshot(2F)); - configSet.put(G12HS_AM, Gun12GaugeFactory.get12GaugeAMConfig().setHeadshot(2F)); - configSet.put(G12HS_SLEEK, Gun12GaugeFactory.get12GaugeSleekConfig().setHeadshot(2F)); - configSet.put(G12HS_PERCUSSION, Gun12GaugeFactory.get12GaugePercussionConfig().setHeadshot(2F)); - - configSet.put(LR22_NORMAL, Gun22LRFactory.get22LRConfig()); - configSet.put(LR22_AP, Gun22LRFactory.get22LRAPConfig()); - configSet.put(LR22_NORMAL_FIRE, Gun22LRFactory.get22LRConfig().setToFire(3)); - configSet.put(LR22_AP_FIRE, Gun22LRFactory.get22LRAPConfig().setToFire(3)); - - configSet.put(M44_NORMAL, Gun44MagnumFactory.getNoPipConfig()); - configSet.put(M44_AP, Gun44MagnumFactory.getNoPipAPConfig()); - configSet.put(M44_DU, Gun44MagnumFactory.getNoPipDUConfig()); - configSet.put(M44_PHOSPHORUS, Gun44MagnumFactory.getPhosphorusConfig()); - configSet.put(M44_STAR, Gun44MagnumFactory.getNoPipStarConfig()); - configSet.put(M44_PIP, Gun44MagnumFactory.getPipConfig()); - configSet.put(M44_BJ, Gun44MagnumFactory.getBJConfig()); - configSet.put(M44_SILVER, Gun44MagnumFactory.getSilverStormConfig()); - configSet.put(M44_ROCKET, Gun44MagnumFactory.getRocketConfig()); - - configSet.put(P9_NORMAL, Gun9mmFactory.get9mmConfig()); - configSet.put(P9_AP, Gun9mmFactory.get9mmAPConfig()); - configSet.put(P9_DU, Gun9mmFactory.get9mmDUConfig()); - configSet.put(P9_ROCKET, Gun9mmFactory.get9mmRocketConfig()); - - configSet.put(ACP_45, Gun45ACPFactory.get45AutoConfig()); - configSet.put(ACP_45_AP, Gun45ACPFactory.get45AutoAPConfig()); - configSet.put(ACP_45_DU, Gun45ACPFactory.get45AutoDUConfig()); - - configSet.put(BMG50_NORMAL, Gun50BMGFactory.get50BMGConfig()); - configSet.put(BMG50_INCENDIARY, Gun50BMGFactory.get50BMGFireConfig()); - configSet.put(BMG50_PHOSPHORUS, Gun50BMGFactory.get50BMGPhosphorusConfig()); - configSet.put(BMG50_EXPLOSIVE, Gun50BMGFactory.get50BMGExplosiveConfig()); - configSet.put(BMG50_AP, Gun50BMGFactory.get50BMGAPConfig()); - configSet.put(BMG50_DU, Gun50BMGFactory.get50BMGDUConfig()); - configSet.put(BMG50_STAR, Gun50BMGFactory.get50BMGStarConfig()); - configSet.put(BMG50_SLEEK, Gun50BMGFactory.get50BMGSleekConfig()); - configSet.put(BMG50_FLECHETTE_NORMAL, Gun50BMGFactory.get50BMGFlechetteConfig()); - configSet.put(BMG50_FLECHETTE_AM, Gun50BMGFactory.get50BMGFlechetteAMConfig()); - configSet.put(BMG50_FLECHETTE_PO, Gun50BMGFactory.get50BMGFlechettePOConfig()); - - configSet.put(ROUND_LUNA_SNIPER_SABOT, Gun50BMGFactory.getLunaticSabotRound()); - configSet.put(ROUND_LUNA_SNIPER_INCENDIARY, Gun50BMGFactory.getLunaticIncendiaryRound()); - configSet.put(ROUND_LUNA_SNIPER_EXPLOSIVE, Gun50BMGFactory.getLunaticExplosiveRound()); - - configSet.put(R5_NORMAL, Gun5mmFactory.get5mmConfig()); - configSet.put(R5_EXPLOSIVE, Gun5mmFactory.get5mmExplosiveConfig()); - configSet.put(R5_DU, Gun5mmFactory.get5mmDUConfig()); - configSet.put(R5_STAR, Gun5mmFactory.get5mmStarConfig()); - configSet.put(R5_NORMAL_BOLT, Gun5mmFactory.get5mmConfig().setToBolt(BulletConfiguration.BOLT_LACUNAE)); - configSet.put(R5_EXPLOSIVE_BOLT, Gun5mmFactory.get5mmExplosiveConfig().setToBolt(BulletConfiguration.BOLT_LACUNAE)); - configSet.put(R5_DU_BOLT, Gun5mmFactory.get5mmDUConfig().setToBolt(BulletConfiguration.BOLT_LACUNAE)); - configSet.put(R5_STAR_BOLT, Gun5mmFactory.get5mmStarConfig().setToBolt(BulletConfiguration.BOLT_LACUNAE)); - - configSet.put(AE50_NORMAL, Gun50AEFactory.get50AEConfig()); - configSet.put(AE50_AP, Gun50AEFactory.get50APConfig()); - configSet.put(AE50_DU, Gun50AEFactory.get50DUConfig()); - configSet.put(AE50_STAR, Gun50AEFactory.get50StarConfig()); - - configSet.put(G4_NORMAL, Gun4GaugeFactory.get4GaugeConfig()); - configSet.put(G4_SLUG, Gun4GaugeFactory.get4GaugeSlugConfig()); - configSet.put(G4_FLECHETTE, Gun4GaugeFactory.get4GaugeFlechetteConfig()); - configSet.put(G4_FLECHETTE_PHOSPHORUS, Gun4GaugeFactory.get4GaugeFlechettePhosphorusConfig()); - configSet.put(G4_EXPLOSIVE, Gun4GaugeFactory.get4GaugeExplosiveConfig()); - configSet.put(G4_SEMTEX, Gun4GaugeFactory.get4GaugeMiningConfig()); - configSet.put(G4_BALEFIRE, Gun4GaugeFactory.get4GaugeBalefireConfig()); - configSet.put(G4_KAMPF, Gun4GaugeFactory.getGrenadeKampfConfig()); - configSet.put(G4_CANISTER, Gun4GaugeFactory.getGrenadeCanisterConfig()); - configSet.put(G4_CLAW, Gun4GaugeFactory.get4GaugeClawConfig()); - configSet.put(G4_VAMPIRE, Gun4GaugeFactory.get4GaugeVampireConfig()); - configSet.put(G4_VOID, Gun4GaugeFactory.get4GaugeVoidConfig()); - configSet.put(G4_TITAN, Gun4GaugeFactory.get4GaugeQuackConfig()); - configSet.put(G4_SLEEK, Gun4GaugeFactory.get4GaugeSleekConfig()); - - configSet.put(SPECIAL_OSIPR, GunOSIPRFactory.getPulseConfig()); - configSet.put(SPECIAL_OSIPR_CHARGED, GunOSIPRFactory.getPulseChargedConfig()); - configSet.put(SPECIAL_GAUSS, GunGaussFactory.getGaussConfig()); - configSet.put(SPECIAL_GAUSS_CHARGED, GunGaussFactory.getAltConfig()); - configSet.put(SPECIAL_EMP, GunEnergyFactory.getOrbusConfig()); - - configSet.put(FLAMER_NORMAL, GunEnergyFactory.getFlameConfig()); - configSet.put(FLAMER_NAPALM, GunEnergyFactory.getNapalmConfig()); - configSet.put(FLAMER_WP, GunEnergyFactory.getPhosphorusConfig()); - configSet.put(FLAMER_VAPORIZER, GunEnergyFactory.getVaporizerConfig()); - configSet.put(FLAMER_GAS, GunEnergyFactory.getGasConfig()); + configSet.put(CRYO_NORMAL, GunEnergyFactory.getCryoConfig()); configSet.put(FEXT_NORMAL, GunEnergyFactory.getFextConfig()); configSet.put(FEXT_FOAM, GunEnergyFactory.getFextFoamConfig()); configSet.put(FEXT_SAND, GunEnergyFactory.getFextSandConfig()); - configSet.put(R556_NORMAL, Gun556mmFactory.get556Config()); - configSet.put(R556_GOLD, Gun556mmFactory.get556GoldConfig()); - configSet.put(R556_PHOSPHORUS, Gun556mmFactory.get556PhosphorusConfig()); - configSet.put(R556_AP, Gun556mmFactory.get556APConfig()); - configSet.put(R556_DU, Gun556mmFactory.get556DUConfig()); - configSet.put(R556_STAR, Gun556mmFactory.get556StarConfig()); - configSet.put(R556_SLEEK, Gun556mmFactory.get556SleekConfig()); - configSet.put(R556_TRACER, Gun556mmFactory.get556TracerConfig()); - configSet.put(R556_FLECHETTE, Gun556mmFactory.get556FlechetteConfig()); - configSet.put(R556_FLECHETTE_INCENDIARY, Gun556mmFactory.get556FlechetteIncendiaryConfig()); - configSet.put(R556_FLECHETTE_PHOSPHORUS, Gun556mmFactory.get556FlechettePhosphorusConfig()); - configSet.put(R556_FLECHETTE_DU, Gun556mmFactory.get556FlechetteDUConfig()); - configSet.put(R556_FLECHETTE_SLEEK, Gun556mmFactory.get556FlechetteSleekConfig()); - configSet.put(R556_K, Gun556mmFactory.get556KConfig()); - - configSet.put(R762_NORMAL, Gun762mmFactory.get762NATOConfig()); - configSet.put(R762_PHOSPHORUS, Gun762mmFactory.get762WPConfig()); - configSet.put(R762_AP, Gun762mmFactory.get762APConfig()); - configSet.put(R762_DU, Gun762mmFactory.get762DUConfig()); - configSet.put(R762_TRACER, Gun762mmFactory.get762TracerConfig()); - configSet.put(R762_K, Gun762mmFactory.get762BlankConfig()); - - configSet.put(B75_NORMAL, Gun75BoltFactory.get75BoltConfig()); - configSet.put(B75_INCENDIARY, Gun75BoltFactory.get75BoltIncConfig()); - configSet.put(B75_HE, Gun75BoltFactory.get75BoltHEConfig()); - - configSet.put(NEEDLE_GPS, GunDartFactory.getGPSConfig()); - configSet.put(NEEDLE_NUKE, GunDartFactory.getNukeConfig()); - configSet.put(DART_NORMAL, GunDartFactory.getNERFConfig()); - - configSet.put(G20_NORMAL_FIRE, Gun20GaugeFactory.get20GaugeConfig().setToFire(3)); - configSet.put(G20_SHRAPNEL_FIRE, Gun20GaugeFactory.get20GaugeShrapnelConfig().setToFire(3)); - configSet.put(G20_SLUG_FIRE, Gun20GaugeFactory.get20GaugeSlugConfig().setToFire(3)); - configSet.put(G20_FLECHETTE_FIRE, Gun20GaugeFactory.get20GaugeFlechetteConfig().setToFire(3)); - configSet.put(G20_EXPLOSIVE_FIRE, Gun20GaugeFactory.get20GaugeExplosiveConfig().setToFire(3)); - configSet.put(G20_CAUSTIC_FIRE, Gun20GaugeFactory.get20GaugeCausticConfig().setToFire(3)); - configSet.put(G20_SHOCK_FIRE, Gun20GaugeFactory.get20GaugeShockConfig().setToFire(3)); - configSet.put(G20_WITHER_FIRE, Gun20GaugeFactory.get20GaugeWitherConfig().setToFire(3)); - - configSet.put(ROCKET_NORMAL_LASER, GunRocketFactory.getRocketConfig().setToGuided()); - configSet.put(ROCKET_HE_LASER, GunRocketFactory.getRocketHEConfig().setToGuided()); - configSet.put(ROCKET_INCENDIARY_LASER, GunRocketFactory.getRocketIncendiaryConfig().setToGuided()); - configSet.put(ROCKET_PHOSPHORUS_LASER, GunRocketFactory.getRocketPhosphorusConfig().setToGuided()); - configSet.put(ROCKET_SHRAPNEL_LASER, GunRocketFactory.getRocketShrapnelConfig().setToGuided()); - configSet.put(ROCKET_EMP_LASER, GunRocketFactory.getRocketEMPConfig().setToGuided()); - configSet.put(ROCKET_GLARE_LASER, GunRocketFactory.getRocketGlareConfig().setToGuided()); - configSet.put(ROCKET_SLEEK_LASER, GunRocketFactory.getRocketSleekConfig().setToGuided()); - configSet.put(ROCKET_NUKE_LASER, GunRocketFactory.getRocketNukeConfig().setToGuided()); - configSet.put(ROCKET_CHAINSAW_LASER, GunRocketFactory.getRocketRPCConfig().setToGuided()); - configSet.put(ROCKET_TOXIC_LASER, GunRocketFactory.getRocketChlorineConfig().setToGuided()); - - configSet.put(SHELL_NORMAL, GunCannonFactory.getShellConfig()); - configSet.put(SHELL_EXPLOSIVE, GunCannonFactory.getShellExplosiveConfig()); - configSet.put(SHELL_AP, GunCannonFactory.getShellAPConfig()); - configSet.put(SHELL_DU, GunCannonFactory.getShellDUConfig()); - configSet.put(SHELL_W9, GunCannonFactory.getShellW9Config()); - configSet.put(DGK_NORMAL, GunDGKFactory.getDGKConfig()); - configSet.put(FLA_NORMAL, GunEnergyFactory.getTurretConfig()); - - configSet.put(NUKE_NORMAL, GunFatmanFactory.getNukeConfig()); - configSet.put(NUKE_LOW, GunFatmanFactory.getNukeLowConfig()); - configSet.put(NUKE_HIGH, GunFatmanFactory.getNukeHighConfig()); - configSet.put(NUKE_TOTS, GunFatmanFactory.getNukeTotsConfig()); - configSet.put(NUKE_SAFE, GunFatmanFactory.getNukeSafeConfig()); - configSet.put(NUKE_PUMPKIN, GunFatmanFactory.getNukePumpkinConfig()); - configSet.put(NUKE_BARREL, GunFatmanFactory.getNukeBarrelConfig()); - configSet.put(NUKE_PROTO_NORMAL, GunFatmanFactory.getNukeConfig().accuracyMod(20F)); - configSet.put(NUKE_PROTO_LOW, GunFatmanFactory.getNukeLowConfig().accuracyMod(20F)); - configSet.put(NUKE_PROTO_HIGH, GunFatmanFactory.getNukeHighConfig().accuracyMod(20F)); - configSet.put(NUKE_PROTO_TOTS, GunFatmanFactory.getNukeTotsConfig().accuracyMod(20F)); - configSet.put(NUKE_PROTO_SAFE, GunFatmanFactory.getNukeSafeConfig().accuracyMod(20F)); - configSet.put(NUKE_PROTO_PUMPKIN, GunFatmanFactory.getNukePumpkinConfig().accuracyMod(20F)); - configSet.put(NUKE_MIRV_NORMAL, GunFatmanFactory.getMirvConfig()); - configSet.put(NUKE_MIRV_LOW, GunFatmanFactory.getMirvLowConfig()); - configSet.put(NUKE_MIRV_HIGH, GunFatmanFactory.getMirvHighConfig()); - configSet.put(NUKE_MIRV_SAFE, GunFatmanFactory.getMirvSafeConfig()); - configSet.put(NUKE_MIRV_SPECIAL, GunFatmanFactory.getMirvSpecialConfig()); - - configSet.put(NUKE_AMAT, GunFatmanFactory.getBalefireConfig()); - - //configSet.put(TWR_RAY, GunEnergyFactory.getSingConfig()); - //configSet.put(HLR_NORMAL, GunEnergyFactory.getHLRPrecisionConfig()); - //configSet.put(HLR_ALT, GunEnergyFactory.getHLRScatterConfig()); - - configSet.put(ZOMG_BOLT, GunEnergyFactory.getZOMGBoltConfig()); - configSet.put(DET_BOLT, GunDetonatorFactory.getLaserConfig()); - configSet.put(TURBINE, GunEnergyFactory.getTurbineConfig()); - - configSet.put(GLASS_EMRADIO, GunPoweredFactory.getEMRadioConfig()); - configSet.put(GLASS_EMMICRO, GunPoweredFactory.getEMMicroConfig()); - configSet.put(GLASS_EMIR, GunPoweredFactory.getEMInfraredConfig()); - configSet.put(GLASS_EMVISIBLE, GunPoweredFactory.getEMVisibleConfig()); - configSet.put(GLASS_EMUV, GunPoweredFactory.getEMUVConfig()); - configSet.put(GLASS_EMXRAY, GunPoweredFactory.getEMXrayConfig()); - configSet.put(GLASS_EMGAMMA, GunPoweredFactory.getEMGammaConfig()); - - - configSet.put(CHL_LR22, Gun22LRFactory.get22LRConfig().setToHoming(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.CHLOROPHYTE))); - configSet.put(CHL_LR22_FIRE, Gun22LRFactory.get22LRConfig().setToFire(3).setToHoming(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.CHLOROPHYTE))); - configSet.put(CHL_M44, Gun44MagnumFactory.getNoPipConfig().setToHoming(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.CHLOROPHYTE))); - configSet.put(CHL_P9, Gun9mmFactory.get9mmConfig().setToHoming(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.CHLOROPHYTE))); - configSet.put(CHL_BMG50, Gun50BMGFactory.get50BMGConfig().setToHoming(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.CHLOROPHYTE))); - configSet.put(CHL_R5, Gun5mmFactory.get5mmConfig().setToHoming(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.CHLOROPHYTE))); - configSet.put(CHL_R5_BOLT, Gun5mmFactory.get5mmConfig().setToBolt(BulletConfiguration.BOLT_LACUNAE).setToHoming(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.CHLOROPHYTE))); - configSet.put(CHL_AE50, Gun50AEFactory.get50AEConfig().setToHoming(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.CHLOROPHYTE))); - configSet.put(CHL_R556, Gun556mmFactory.get556Config().setToHoming(ModItems.ammo_556.stackFromEnum(Ammo556mm.CHLOROPHYTE))); - configSet.put(CHL_R556_FLECHETTE, Gun556mmFactory.get556FlechetteConfig().setToHoming(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_CHLOROPHYTE))); configSet.put(MASKMAN_BULLET, GunNPCFactory.getMaskmanBullet()); configSet.put(MASKMAN_ORB, GunNPCFactory.getMaskmanOrb()); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index a55ffe030..aa1d73ca5 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -2,14 +2,9 @@ package com.hbm.handler; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.*; import com.hbm.handler.guncfg.BulletConfigFactory; -import com.hbm.interfaces.IBulletHitBehavior; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletRicochetBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; -import com.hbm.interfaces.Untested; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; @@ -59,14 +54,16 @@ public class BulletConfiguration implements Cloneable { public int HBRC; //how much of the initial velocity is kept after bouncing public double bounceMod; + //how many ticks until the projectile can hurt the shooter + public int selfDamageDelay = 5; //whether or not the bullet should penetrate mobs public boolean doesPenetrate; - //whether or not the bullet should phase through blocks + //disables collisions with blocks entirely public boolean isSpectral; //whether or not the bullet should break glass public boolean doesBreakGlass; - //whether the bullet should stay alive after colliding with a block + //bullets still call the impact function when hitting blocks but do not get destroyed public boolean liveAfterImpact; //creates a "muzzle flash" and a ton of smoke with every projectile spawned @@ -87,11 +84,16 @@ public class BulletConfiguration implements Cloneable { public int caustic; public boolean destroysBlocks; public boolean instakill; - public IBulletHurtBehavior bHurt; + /*public IBulletHurtBehavior bHurt; public IBulletHitBehavior bHit; public IBulletRicochetBehavior bRicochet; public IBulletImpactBehavior bImpact; - public IBulletUpdateBehavior bUpdate; + public IBulletUpdateBehavior bUpdate;*/ + public IBulletHurtBehaviorNT bntHurt; + public IBulletHitBehaviorNT bntHit; + public IBulletRicochetBehaviorNT bntRicochet; + public IBulletImpactBehaviorNT bntImpact; + public IBulletUpdateBehaviorNT bntUpdate; //appearance public int style; @@ -138,6 +140,7 @@ public class BulletConfiguration implements Cloneable { public static final int STYLE_BLADE = 15; public static final int STYLE_BARREL = 16; public static final int STYLE_TAU = 17; + public static final int STYLE_LEADBURSTER = 18; public static final int PLINK_NONE = 0; public static final int PLINK_BULLET = 1; @@ -173,18 +176,20 @@ public class BulletConfiguration implements Cloneable { public BulletConfiguration setToGuided() { - this.bUpdate = BulletConfigFactory.getLaserSteering(); + this.bntUpdate = BulletConfigFactory.getLaserSteering(); this.doesRicochet = false; return this; } public BulletConfiguration getChlorophyte() { - this.bUpdate = BulletConfigFactory.getHomingBehavior(200, 45); - this.dmgMin *= 1.5F; - this.dmgMax *= 1.5F; + this.bntUpdate = BulletConfigFactory.getHomingBehavior(30, 180); + this.bntHurt = BulletConfigFactory.getPenHomingBehavior(); + this.dmgMin *= 2F; + this.dmgMax *= 2F; this.wear *= 0.5; + this.velocity *= 0.3; this.doesRicochet = false; - this.doesPenetrate = false; + this.doesPenetrate = true; this.vPFX = "greendust"; if(this.spentCasing != null) { @@ -213,8 +218,7 @@ public class BulletConfiguration implements Cloneable { return this; } - @Untested - public DamageSource getDamage(EntityBulletBase bullet, EntityLivingBase shooter) { + public DamageSource getDamage(EntityBulletBaseNT bullet, EntityLivingBase shooter) { DamageSource dmg; diff --git a/src/main/java/com/hbm/handler/CasingEjector.java b/src/main/java/com/hbm/handler/CasingEjector.java index 72ec13a3a..321aa8d71 100644 --- a/src/main/java/com/hbm/handler/CasingEjector.java +++ b/src/main/java/com/hbm/handler/CasingEjector.java @@ -23,16 +23,16 @@ import net.minecraft.world.World; */ public class CasingEjector implements Cloneable { - public static HashMap mappings = new HashMap(); + public static HashMap mappings = new HashMap(); public static final Random rand = new Random(); private int id; private static int nextId = 0; private Vec3 posOffset = Vec3.createVectorHelper(0, 0, 0); private Vec3 initialMotion = Vec3.createVectorHelper(0, 0, 0); - private int casingAmount = 1; - private boolean afterReload = false; - private int delay = 0; + @Deprecated private int casingAmount = 1; + @Deprecated private boolean afterReload = false; + @Deprecated private int delay = 0; private float randomYaw = 0F; private float randomPitch = 0F; @@ -61,17 +61,17 @@ public class CasingEjector implements Cloneable { return this; } - public CasingEjector setAmount(int am) { + @Deprecated public CasingEjector setAmount(int am) { this.casingAmount = am; return this; } - public CasingEjector setAfterReload() { + @Deprecated public CasingEjector setAfterReload() { this.afterReload = true; return this; } - public CasingEjector setDelay(int delay) { + @Deprecated public CasingEjector setDelay(int delay) { this.delay = delay; return this; } @@ -94,7 +94,7 @@ public class CasingEjector implements Cloneable { @SideOnly(Side.CLIENT) public void spawnCasing(TextureManager textureManager, SpentCasing config, World world, double x, double y, double z, float pitch, float yaw, boolean crouched) { Vec3 rotatedMotionVec = rotateVector(getMotion(), pitch + (float) rand.nextGaussian() * getPitchFactor(), yaw + (float) rand.nextGaussian() * getPitchFactor(), getPitchFactor(), getPitchFactor()); - ParticleSpentCasing casing = new ParticleSpentCasing(textureManager, world, x, y, z, rotatedMotionVec.xCoord, rotatedMotionVec.yCoord, rotatedMotionVec.zCoord, (float) (getPitchFactor() * rand.nextGaussian()), (float) (getYawFactor() * rand.nextGaussian()), config); + ParticleSpentCasing casing = new ParticleSpentCasing(textureManager, world, x, y, z, rotatedMotionVec.xCoord, rotatedMotionVec.yCoord, rotatedMotionVec.zCoord, (float) (getPitchFactor() * rand.nextGaussian()), (float) (getYawFactor() * rand.nextGaussian()), config, false, 0, 0, 0); offsetCasing(casing, getOffset(), pitch, yaw, crouched); @@ -127,20 +127,17 @@ public class CasingEjector implements Cloneable { } private static Vec3 rotateVector(Vec3 vector, float pitch, float yaw, float pitchFactor, float yawFactor) { - // Apply randomness to vector - vector.xCoord += rand.nextGaussian() * yawFactor; - vector.yCoord += rand.nextGaussian() * pitchFactor; - vector.zCoord += rand.nextGaussian() * yawFactor; final Matrix4f pitchMatrix = new Matrix4f(), yawMatrix = new Matrix4f(); pitchMatrix.setIdentity(); - pitchMatrix.rotate(-pitch, new Vector3f(1, 0, 0)); + pitchMatrix.rotate(pitch, new Vector3f(1, 0, 0)); yawMatrix.setIdentity(); yawMatrix.rotate(-yaw, new Vector3f(0, 1, 0)); - - final Vector4f vector4f = new Vector4f((float) vector.xCoord, (float) vector.yCoord, (float) vector.zCoord, 1); + + // Apply randomness to vector + final Vector4f vector4f = new Vector4f((float) (vector.xCoord + rand.nextGaussian() * yawFactor), (float) (vector.yCoord + rand.nextGaussian() * pitchFactor), (float) (vector.zCoord + rand.nextGaussian() * yawFactor), 1); Matrix4f.transform(pitchMatrix, vector4f, vector4f); Matrix4f.transform(yawMatrix, vector4f, vector4f); diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java new file mode 100644 index 000000000..2a59c92fe --- /dev/null +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -0,0 +1,254 @@ +package com.hbm.handler; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.Optional; +import li.cil.oc.api.Items; +import li.cil.oc.api.fs.FileSystem; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.*; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.Callable; + +import static com.hbm.main.CraftingManager.addShapelessAuto; +import static li.cil.oc.api.FileSystem.asReadOnly; +import static li.cil.oc.api.FileSystem.fromClass; + +/** + * General handler for OpenComputers compatibility. + * @author BallOfEnergy (Microwave) + */ +public class CompatHandler { + + /** + * Used for converting a steam type to an integer (compression levels). + * @param type Steam type. + * @return Object[] array containing an int with the "compression level" + */ + public static Object[] steamTypeToInt(FluidType type) { + switch(type.getID()) { + case(4): // Fluids.HOTSTEAM + return new Object[] {1}; + case(5): // Fluids.SUPERHOTSTEAM + return new Object[] {2}; + case(6): // Fluids.ULTRAHOTSTEAM + return new Object[] {3}; + default: + return new Object[] {0}; + } + } + + /** + * Used for converting a compression level to a steam type. + * @param arg Steam compression level. + * @return FluidType of the steam type based on the compression level. + */ + public static FluidType intToSteamType(int arg) { + switch(arg) { + case(1): + return Fluids.HOTSTEAM; + case(2): + return Fluids.SUPERHOTSTEAM; + case(3): + return Fluids.ULTRAHOTSTEAM; + default: + return Fluids.STEAM; + } + } + + /** + * Allows for easy creation of read-only filesystems. Primarily for floppy disks. + * (Though maybe reading directly from VOTV drives as filesystems could be implemented. :3) + **/ + protected static class ReadOnlyFileSystem implements Callable { + + private final String name; + + ReadOnlyFileSystem(String name) { + this.name = name; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public li.cil.oc.api.fs.FileSystem call() throws Exception { + return asReadOnly(fromClass(MainRegistry.class, RefStrings.MODID, "disks/" + FloppyDisk.sanitizeName(name))); + } + } + + // Floppy disk class. + public static class FloppyDisk { + // Specifies the callable ReadOnlyFileSystem to allow OC to access the floppy. + protected final ReadOnlyFileSystem fs; + // Specifies the color of the floppy disk (0-16 colors defined by OC). + public final Byte color; + // Set after loading the disk; allows for adding a recipe to the item. + public ItemStack item; + + FloppyDisk(String name, int color) { + this.fs = new ReadOnlyFileSystem(FloppyDisk.sanitizeName(name)); + this.color = (byte) color; + } + + // Disk names will be sanitized before the FileSystem is created. + // This only affects the location/directory, not the display name. + // (Prevents filesystems from breaking/crashing due to having file separators, wildcards, etc.) + public static String sanitizeName(String input) { + return input.toLowerCase().replaceAll("\\W", ""); + } + } + + /** + * Simple enum for mapping OC color ordinals to a nicer format for adding new disks. + */ + public enum OCColors { + BLACK, //0x444444 + RED, //0xB3312C + GREEN, //0x339911 + BROWN, //0x51301A + BLUE, //0x6666FF + PURPLE, //0x7B2FBE + CYAN, //0x66FFFF + LIGHTGRAY, //0xABABAB + GRAY, //0x666666 + PINK, //0xD88198 + LIME, //0x66FF66 + YELLOW, //0xFFFF66 + LIGHTBLUE, //0xAAAAFF + MAGENTA, //0xC354CD + ORANGE, //0xEB8844 + WHITE //0xF0F0F0 + } + + // Where all disks are stored with their name and `FloppyDisk` class. + public static HashMap disks = new HashMap<>(); + + /** + * Called in the FML PostLoad stage, after the OC API loads. + *
+ * Loads various parts of OC compatibility. + */ + public static void init() { + if(Loader.isModLoaded("OpenComputers")) { + /* + For anyone wanting to add their own floppy disks, + read the README found in assets.hbm.disks. + */ + + // Idea/Code by instantnootles + disks.put("PWRangler", new FloppyDisk("PWRangler", OCColors.CYAN.ordinal())); + + // begin registering disks + Logger logger = LogManager.getLogger("HBM"); + logger.info("Loading OpenComputers disks..."); + if(disks.isEmpty()) { + logger.info("No disks registered; see com.hbm.handler.CompatHandler.disks"); + return; + } + disks.forEach((s, disk) -> { + + // Test if the disk path even exists. + FileSystem fs = fromClass(MainRegistry.class, RefStrings.MODID, "disks/" + disk.fs.name); + + if (fs == null) { // Disk path does NOT exist, and it should not be loaded. + + logger.error("Error loading disk: {} at /assets/" + RefStrings.MODID + "/disks/{}", s, disk.fs.name); + logger.error("This is likely due to the path to the disk being non-existent."); + + } else { // Disk path DOES exist, and it should be loaded. + + disk.item = Items.registerFloppy(s, disk.color, disk.fs); // The big part, actually registering the floppies! + logger.info("Registered disk: {} at /assets/" + RefStrings.MODID + "/disks/{}", s, disk.fs.name); + + } + }); + logger.info("OpenComputers disks registered."); + + // OC disk recipes! + List floppyDisks = new RecipesCommon.OreDictStack("oc:floppy").toStacks(); + + if(!floppyDisks.isEmpty()) { //check that floppy disks even exist in oredict. + + // Recipes must be initialized here, since if they were initialized in `CraftingManager` then the disk item would not be created yet. + addShapelessAuto(disks.get("PWRangler").item, "oc:floppy", new ItemStack(ModBlocks.pwr_casing)); + + logger.info("OpenComputers disk recipe added for PWRangler."); + } else { + logger.info("OpenComputers floppy disk oredict not found, recipes cannot be loaded!"); + } + + // boom, OC disks loaded + logger.info("OpenComputers disks loaded."); + } + } + + // Null component name, default to this if broken to avoid NullPointerExceptions. + public static final String nullComponent = "ntm_null"; + + /** + * This is an interface made specifically for adding OC compatibility to NTM machines. The {@link li.cil.oc.api.network.SimpleComponent} interface must also be implemented in the TE. + *
+ * This interface is not required to be defined as an optional interface, though the {@link li.cil.oc.api.network.SimpleComponent} interface must be declared as an optional interface. + *
+ * Pseudo multiblocks will automatically receive compatibility with their ports by proxying their `methods()` and `invoke()` functions. This is the only time they need to be defined. + * + **/ + @Optional.InterfaceList({ + @Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers"), + @Optional.Interface(iface = "li.cil.oc.api.network.SidedComponent", modid = "OpenComputers"), + @Optional.Interface(iface = "li.cil.oc.api.network.ManagedPeripheral", modid = "OpenComputers"), + }) + @SimpleComponent.SkipInjection // make sure OC doesn't inject this shit into the interface and crash + public interface OCComponent extends SimpleComponent, SidedComponent, ManagedPeripheral { + + /** + * Must be overridden in the implemented TE, or it will default to "ntm_null". + *
+ * Dictates the component name exposed to the computer. + * @return String + */ + @Override + @Optional.Method(modid = "OpenComputers") + default String getComponentName() { + return nullComponent; + } + + /** + * Tells OC which sides of the block cables should connect to. + * @param side Side to check + * @return If the side should be able to connect. + */ + @Override + @Optional.Method(modid = "OpenComputers") + default boolean canConnectNode(ForgeDirection side) { + return true; + } + + /** + * Standard methods array from {@link li.cil.oc.api.network.ManagedPeripheral} extending {@link li.cil.oc.api.network.SimpleComponent}. + * @return Array of methods to expose to the computer. + */ + @Override + @Optional.Method(modid = "OpenComputers") + default String[] methods() {return new String[0];} + + /** + * Standard invoke function from {@link li.cil.oc.api.network.ManagedPeripheral} extending {@link li.cil.oc.api.network.SimpleComponent}. + * @return Data to the computer as a return from the function. + */ + @Override + @Optional.Method(modid = "OpenComputers") + default Object[] invoke(String method, Context context, Arguments args) throws Exception {return null;} + } +} diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 1bcec5d0e..19536eace 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.config.BombConfig; import com.hbm.config.GeneralConfig; import com.hbm.config.RadiationConfig; +import com.hbm.config.WorldConfig; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; @@ -15,14 +16,17 @@ import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.handler.threading.PacketThreading; import com.hbm.interfaces.IArmorModDash; import com.hbm.items.armor.ArmorFSB; +import com.hbm.items.weapon.sedna.factory.ConfettiUtil; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.packet.toclient.ExtPropPacket; +import com.hbm.particle.helper.FlameCreator; import com.hbm.potion.HbmPotion; -import com.hbm.packet.ExtPropPacket; import com.hbm.saveddata.AuxSavedData; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; @@ -30,11 +34,13 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; +import com.hbm.world.biome.BiomeGenCraterBase; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -44,50 +50,72 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; public class EntityEffectHandler { public static void onUpdate(EntityLivingBase entity) { - + if(entity.ticksExisted % 20 == 0) { HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity)); HbmLivingProps.setRadEnv(entity, 0); } + if(entity instanceof EntityPlayer && entity == MainRegistry.proxy.me()) { + EntityPlayer player = MainRegistry.proxy.me(); + if(player != null) { + BiomeGenBase biome = player.worldObj.getBiomeGenForCoords((int) Math.floor(player.posX), (int) Math.floor(player.posZ)); + if(biome == BiomeGenCraterBase.craterBiome || biome == BiomeGenCraterBase.craterInnerBiome) { + Random rand = player.getRNG(); + for(int i = 0; i < 3; i++) player.worldObj.spawnParticle("townaura", player.posX + rand.nextGaussian() * 3, player.posY + rand.nextGaussian() * 2, player.posZ + rand.nextGaussian() * 3, 0, 0, 0); + } + } + } + if(entity instanceof EntityPlayerMP) { HbmLivingProps props = HbmLivingProps.getData(entity); HbmPlayerProps pprps = HbmPlayerProps.getData((EntityPlayerMP) entity); - NBTTagCompound data = new NBTTagCompound(); - if(pprps.shield < pprps.maxShield && entity.ticksExisted > pprps.lastDamage + 60) { + if(pprps.shield < pprps.getEffectiveMaxShield() && entity.ticksExisted > pprps.lastDamage + 60) { int tsd = entity.ticksExisted - (pprps.lastDamage + 60); - pprps.shield += Math.min(pprps.maxShield - pprps.shield, 0.005F * tsd); + pprps.shield += Math.min(pprps.getEffectiveMaxShield() - pprps.shield, 0.005F * tsd); } - if(pprps.shield > pprps.maxShield) - pprps.shield = pprps.maxShield; + if(pprps.shield > pprps.getEffectiveMaxShield()) + pprps.shield = pprps.getEffectiveMaxShield(); - props.saveNBTData(data); - pprps.saveNBTData(data); - PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity); + PacketThreading.createSendToThreadedPacket(new ExtPropPacket(props, pprps), (EntityPlayerMP) entity); } if(!entity.worldObj.isRemote) { int timer = HbmLivingProps.getTimer(entity); if(timer > 0) { HbmLivingProps.setTimer(entity, timer - 1); - + if(timer == 1) { ExplosionNukeSmall.explode(entity.worldObj, entity.posX, entity.posY, entity.posZ, ExplosionNukeSmall.PARAMS_MEDIUM); } } - - if(GeneralConfig.enable528 && entity instanceof EntityLivingBase && !entity.isImmuneToFire() && entity.worldObj.provider.isHellWorld) { + //only sets players on fire so mod compatibility doesnt die + if((GeneralConfig.enable528 && GeneralConfig.enable528NetherBurn) && entity instanceof EntityPlayer && !entity.isImmuneToFire() && entity.worldObj.provider.isHellWorld) { entity.setFire(5); } + + BiomeGenBase biome = entity.worldObj.getBiomeGenForCoords((int) Math.floor(entity.posX), (int) Math.floor(entity.posZ)); + float radiation = 0; + if(biome == BiomeGenCraterBase.craterOuterBiome) radiation = WorldConfig.craterBiomeOuterRad; + if(biome == BiomeGenCraterBase.craterBiome) radiation = WorldConfig.craterBiomeRad; + if(biome == BiomeGenCraterBase.craterInnerBiome) radiation = WorldConfig.craterBiomeInnerRad; + + if(entity.isWet()) radiation *= WorldConfig.craterBiomeWaterMult; + + if(radiation > 0) { + ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, radiation / 20F); + } } handleContamination(entity); @@ -97,112 +125,158 @@ public class EntityEffectHandler { handleLungDisease(entity); handleOil(entity); handlePollution(entity); + handleTemperature(entity); handleDashing(entity); handlePlinking(entity); + + if(entity instanceof EntityPlayer) handleFauxLadder((EntityPlayer) entity); } - + + private static void handleFauxLadder(EntityPlayer player) { + + HbmPlayerProps props = HbmPlayerProps.getData(player); + + if(props.isOnLadder) { + float f5 = 0.15F; + + if(player.motionX < (double) (-f5)) { + player.motionX = (double) (-f5); + } + + if(player.motionX > (double) f5) { + player.motionX = (double) f5; + } + + if(player.motionZ < (double) (-f5)) { + player.motionZ = (double) (-f5); + } + + if(player.motionZ > (double) f5) { + player.motionZ = (double) f5; + } + + player.fallDistance = 0.0F; + + if(player.motionY < -0.15D) { + player.motionY = -0.15D; + } + + if(player.isSneaking() && player.motionY < 0.0D) { + player.motionY = 0.0D; + } + + if(player.isCollidedHorizontally) { + player.motionY = 0.2D; + } + + props.isOnLadder = false; + + if(!player.worldObj.isRemote) ArmorUtil.resetFlightTime(player); + } + } + private static void handleContamination(EntityLivingBase entity) { - + if(entity.worldObj.isRemote) return; - + List contamination = HbmLivingProps.getCont(entity); List rem = new ArrayList(); - + for(ContaminationEffect con : contamination) { ContaminationUtil.contaminate(entity, HazardType.RADIATION, con.ignoreArmor ? ContaminationType.RAD_BYPASS : ContaminationType.CREATIVE, con.getRad()); - + con.time--; - + if(con.time <= 0) rem.add(con); } - + contamination.removeAll(rem); } - + private static void handleRadiation(EntityLivingBase entity) { - + World world = entity.worldObj; - + if(!world.isRemote) { - + if(ContaminationUtil.isRadImmune(entity)) return; - + int ix = (int)MathHelper.floor_double(entity.posX); int iy = (int)MathHelper.floor_double(entity.posY); int iz = (int)MathHelper.floor_double(entity.posZ); - + float rad = ChunkRadiationManager.proxy.getRadiation(world, ix, iy, iz); - + if(world.provider.isHellWorld && RadiationConfig.hellRad > 0 && rad < RadiationConfig.hellRad) rad = (float) RadiationConfig.hellRad; - + if(rad > 0) { ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, rad / 20F); } - + if(entity.worldObj.isRaining() && BombConfig.cont > 0 && AuxSavedData.getThunder(entity.worldObj) > 0 && entity.worldObj.canBlockSeeTheSky(ix, iy, iz)) { ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, BombConfig.cont * 0.0005F); } - + if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode) return; - + Random rand = new Random(entity.getEntityId()); int r600 = rand.nextInt(600); int r1200 = rand.nextInt(1200); - + if(HbmLivingProps.getRadiation(entity) > 600) { - - if((world.getTotalWorldTime() + r600) % 600 < 20) { + + if((world.getTotalWorldTime() + r600) % 600 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); nbt.setString("mode", "blood"); nbt.setInteger("count", 25); nbt.setInteger("entity", entity.getEntityId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); - + if((world.getTotalWorldTime() + r600) % 600 == 1) { world.playSoundEffect(ix, iy, iz, "hbm:player.vomit", 1.0F, 1.0F); entity.addPotionEffect(new PotionEffect(Potion.hunger.id, 60, 19)); } } - - } else if(HbmLivingProps.getRadiation(entity) > 200 && (world.getTotalWorldTime() + r1200) % 1200 < 20) { - + + } else if(HbmLivingProps.getRadiation(entity) > 200 && (world.getTotalWorldTime() + r1200) % 1200 < 20 && canVomit(entity)) { + NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); nbt.setString("mode", "normal"); nbt.setInteger("count", 15); nbt.setInteger("entity", entity.getEntityId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); - + if((world.getTotalWorldTime() + r1200) % 1200 == 1) { world.playSoundEffect(ix, iy, iz, "hbm:player.vomit", 1.0F, 1.0F); entity.addPotionEffect(new PotionEffect(Potion.hunger.id, 60, 19)); } - + } - + if(HbmLivingProps.getRadiation(entity) > 900 && (world.getTotalWorldTime() + rand.nextInt(10)) % 10 == 0) { - + NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "sweat"); nbt.setInteger("count", 1); nbt.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); nbt.setInteger("entity", entity.getEntityId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); - + } } else { float radiation = HbmLivingProps.getRadiation(entity); - + if(entity instanceof EntityPlayer && radiation > 600) { - + NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "radiation"); nbt.setInteger("count", radiation > 900 ? 4 : radiation > 800 ? 2 : 1); @@ -210,20 +284,20 @@ public class EntityEffectHandler { } } } - + private static void handleDigamma(EntityLivingBase entity) { - + if(!entity.worldObj.isRemote) { - + float digamma = HbmLivingProps.getDigamma(entity); - + if(digamma < 0.01F) return; - + int chance = Math.max(10 - (int)(digamma), 1); - + if(chance == 1 || entity.getRNG().nextInt(chance) == 0) { - + NBTTagCompound data = new NBTTagCompound(); data.setString("type", "sweat"); data.setInteger("count", 1); @@ -233,41 +307,41 @@ public class EntityEffectHandler { } } } - + private static void handleContagion(EntityLivingBase entity) { - + World world = entity.worldObj; - + if(!entity.worldObj.isRemote) { - + Random rand = entity.getRNG(); int minute = 60 * 20; int hour = 60 * minute; - + int contagion = HbmLivingProps.getContagion(entity); - + if(entity instanceof EntityPlayer) { - + EntityPlayer player = (EntityPlayer) entity; int randSlot = rand.nextInt(player.inventory.mainInventory.length); ItemStack stack = player.inventory.getStackInSlot(randSlot); - + if(rand.nextInt(100) == 0) { stack = player.inventory.armorItemInSlot(rand.nextInt(4)); } - + //only affect unstackables (e.g. tools and armor) so that the NBT tag's stack restrictions isn't noticeable if(stack != null && stack.getMaxStackSize() == 1) { - + if(contagion > 0) { - + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); - + stack.stackTagCompound.setBoolean("ntmContagion", true); - + } else { - + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("ntmContagion")) { if(!ArmorUtil.checkForHaz2(player) || !ArmorRegistry.hasProtection(player, 3, HazardClass.BACTERIA)) //liable to change to hazmat 1 at bob's pleasure HbmLivingProps.setContagion(player, 3 * hour); @@ -275,19 +349,19 @@ public class EntityEffectHandler { } } } - + if(contagion > 0) { HbmLivingProps.setContagion(entity, contagion - 1); - + //aerial transmission only happens once a second 5 minutes into the contagion if(contagion < (2 * hour + 55 * minute) && contagion % 20 == 0) { - + double range = entity.isWet() ? 16D : 2D; //avoid rain, just avoid it - + List list = world.getEntitiesWithinAABBExcludingEntity(entity, entity.boundingBox.expand(range, range, range)); - + for(Entity ent : list) { - + if(ent instanceof EntityLivingBase) { EntityLivingBase living = (EntityLivingBase) ent; if(HbmLivingProps.getContagion(living) <= 0) { @@ -295,51 +369,51 @@ public class EntityEffectHandler { HbmLivingProps.setContagion(living, 3 * hour); } } - + if(ent instanceof EntityItem) { ItemStack stack = ((EntityItem)ent).getEntityItem(); - + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); - + stack.stackTagCompound.setBoolean("ntmContagion", true); } } } - + //one hour in, add rare and subtle screen fuckery if(contagion < 2 * hour && rand.nextInt(1000) == 0) { entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 20, 0)); } - + //two hours in, give 'em the full blast if(contagion < 1 * hour && rand.nextInt(100) == 0) { entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 60, 0)); entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 300, 4)); } - + //T-30 minutes, take damage every 20 seconds if(contagion < 30 * minute && rand.nextInt(400) == 0) { entity.attackEntityFrom(ModDamageSource.mku, 1F); } - + //T-5 minutes, take damage every 5 seconds if(contagion < 5 * minute && rand.nextInt(100) == 0) { entity.attackEntityFrom(ModDamageSource.mku, 2F); } - - if(contagion < 30 * minute && (contagion + entity.getEntityId()) % 200 < 20) { + + if(contagion < 30 * minute && (contagion + entity.getEntityId()) % 200 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); nbt.setString("mode", "blood"); nbt.setInteger("count", 25); nbt.setInteger("entity", entity.getEntityId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); - + if((contagion + entity.getEntityId()) % 200 == 19) world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:player.vomit", 1.0F, 1.0F); } - + //end of contagion, drop dead if(contagion == 0) { entity.attackEntityFrom(ModDamageSource.mku, 1000F); @@ -347,20 +421,20 @@ public class EntityEffectHandler { } } } - + private static void handleLungDisease(EntityLivingBase entity) { - + if(entity.worldObj.isRemote) return; - + if(entity instanceof EntityPlayer && ((EntityPlayer) entity).capabilities.isCreativeMode) { HbmLivingProps.setBlackLung(entity, 0); HbmLivingProps.setAsbestos(entity, 0); return; } else { - + int bl = HbmLivingProps.getBlackLung(entity); - + if(bl > 0 && bl < HbmLivingProps.maxBlacklung * 0.5) HbmLivingProps.setBlackLung(entity, HbmLivingProps.getBlackLung(entity) - 1); } @@ -368,11 +442,13 @@ public class EntityEffectHandler { double blacklung = Math.min(HbmLivingProps.getBlackLung(entity), HbmLivingProps.maxBlacklung); double asbestos = Math.min(HbmLivingProps.getAsbestos(entity), HbmLivingProps.maxAsbestos); double soot = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.SOOT); - + + if(!(entity instanceof EntityPlayer)) soot = 0; + if(ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_COARSE)) soot = 0; - + boolean coughs = blacklung / HbmLivingProps.maxBlacklung > 0.25D || asbestos / HbmLivingProps.maxAsbestos > 0.25D || soot > 30; - + if(!coughs) return; @@ -383,25 +459,25 @@ public class EntityEffectHandler { double blacklungDelta = 1D - (blacklung / (double)HbmLivingProps.maxBlacklung); double asbestosDelta = 1D - (asbestos / (double)HbmLivingProps.maxAsbestos); double sootDelta = 1D - Math.min(soot / 100, 1D); - + double total = 1 - (blacklungDelta * asbestosDelta); - + World world = entity.worldObj; - + if(total > 0.75D) { entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 100, 2)); } - + if(total > 0.95D) { entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 100, 0)); } - + total = 1 - (blacklungDelta * asbestosDelta * sootDelta); int freq = Math.max((int) (1000 - 950 * total), 20); - + if(world.getTotalWorldTime() % freq == entity.getEntityId() % freq) { world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:player.cough", 1.0F, 1.0F); - + if(coughsBlood) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); @@ -410,7 +486,7 @@ public class EntityEffectHandler { nbt.setInteger("entity", entity.getEntityId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); } - + if(coughsCoal) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); @@ -421,58 +497,60 @@ public class EntityEffectHandler { } } } - + private static void handleOil(EntityLivingBase entity) { - + if(entity.worldObj.isRemote) return; - + int oil = HbmLivingProps.getOil(entity); - + if(oil > 0) { - + if(entity.isBurning()) { HbmLivingProps.setOil(entity, 0); entity.worldObj.newExplosion(null, entity.posX, entity.posY + entity.height / 2, entity.posZ, 3F, false, true); } else { HbmLivingProps.setOil(entity, oil - 1); } - + if(entity.ticksExisted % 5 == 0) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "sweat"); nbt.setInteger("count", 1); nbt.setInteger("block", Block.getIdFromBlock(Blocks.coal_block)); nbt.setInteger("entity", entity.getEntityId()); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); } } } - + private static void handlePollution(EntityLivingBase entity) { - - if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_CORROSIVE) && entity.ticksExisted % 60 == 0) { - + + if(!RadiationConfig.enablePollution) return; + + if(RadiationConfig.enablePoison && !ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_BLISTERING) && entity.ticksExisted % 60 == 0) { + float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.POISON); - + if(poison > 10) { - + if(poison < 25) { entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 0)); } else if(poison < 50) { - entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 2)); + entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 1)); } else { entity.addPotionEffect(new PotionEffect(Potion.wither.id, 100, 2)); } } } - - if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_FINE) && entity.ticksExisted % 60 == 0) { - + + if(RadiationConfig.enableLeadPoisoning && !ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_FINE) && entity.ticksExisted % 60 == 0) { + float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.HEAVYMETAL); - + if(poison > 25) { - + if(poison < 50) { entity.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 0)); } else if(poison < 75) { @@ -483,39 +561,86 @@ public class EntityEffectHandler { } } } - + + private static void handleTemperature(Entity entity) { + + if(!(entity instanceof EntityLivingBase)) return; + if(entity.worldObj.isRemote) return; + + EntityLivingBase living = (EntityLivingBase) entity; + HbmLivingProps props = HbmLivingProps.getData(living); + Random rand = living.getRNG(); + + if(!entity.isEntityAlive()) return; + + if(living.isImmuneToFire()) { + props.fire = 0; + props.phosphorus = 0; + } + + double x = living.posX; + double y = living.posY; + double z = living.posZ; + + if(living.isInWater() || living.isWet()) props.fire = 0; + + if(props.fire > 0) { + props.fire--; + if((living.ticksExisted + living.getEntityId()) % 15 == 0) living.worldObj.playSoundEffect(living.posX, living.posY + living.height / 2, living.posZ, "random.fizz", 1F, 1.5F + rand.nextFloat() * 0.5F); + if((living.ticksExisted + living.getEntityId()) % 40 == 0) living.attackEntityFrom(DamageSource.onFire, 2F); + FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_FIRE); + } + + if(props.phosphorus > 0) { + props.phosphorus--; + if((living.ticksExisted + living.getEntityId()) % 15 == 0) living.worldObj.playSoundEffect(living.posX, living.posY + living.height / 2, living.posZ, "random.fizz", 1F, 1.5F + rand.nextFloat() * 0.5F); + if((living.ticksExisted + living.getEntityId()) % 40 == 0) living.attackEntityFrom(DamageSource.onFire, 5F); + FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_FIRE); + } + + if(props.balefire > 0) { + props.balefire--; + if((living.ticksExisted + living.getEntityId()) % 15 == 0) living.worldObj.playSoundEffect(living.posX, living.posY + living.height / 2, living.posZ, "random.fizz", 1F, 1.5F + rand.nextFloat() * 0.5F); + ContaminationUtil.contaminate(living, HazardType.RADIATION, ContaminationType.CREATIVE, 5F); + if((living.ticksExisted + living.getEntityId()) % 20 == 0) living.attackEntityFrom(DamageSource.onFire, 5F); + FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_BALEFIRE); + } + + if(props.fire > 0 || props.phosphorus > 0 || props.balefire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire); + } + private static void handleDashing(Entity entity) { - + //AAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEE if(entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)entity; - + HbmPlayerProps props = HbmPlayerProps.getData(player); - + props.setDashCount(0); - + ArmorFSB chestplate = null; - + int armorDashCount = 0; int armorModDashCount = 0; - + if(ArmorFSB.hasFSBArmor(player)) { - ItemStack plate = player.inventory.armorInventory[2]; - + ItemStack plate = player.inventory.armorInventory[2]; + chestplate = (ArmorFSB)plate.getItem(); } - + if(chestplate != null) armorDashCount = chestplate.dashCount; - + for(int armorSlot = 0; armorSlot < 4; armorSlot++) { ItemStack armorStack = player.inventory.armorInventory[armorSlot]; - + if(armorStack != null && armorStack.getItem() instanceof ItemArmor) { - + for(int modSlot = 0; modSlot < 8; modSlot++) { ItemStack mod = ArmorModHandler.pryMods(armorStack)[modSlot]; - + if(mod != null && mod.getItem() instanceof IArmorModDash) { int count = ((IArmorModDash)mod.getItem()).getDashes(); armorModDashCount += count; @@ -523,24 +648,24 @@ public class EntityEffectHandler { } } } - + int dashCount = armorDashCount + armorModDashCount; - + boolean dashActivated = props.getKeyPressed(EnumKeybind.DASH); - + if(dashCount * 30 < props.getStamina()) props.setStamina(dashCount * 30); - + if(dashCount > 0) { int perDash = 30; - + props.setDashCount(dashCount); - + int stamina = props.getStamina(); - + if(props.getDashCooldown() <= 0) { - + if(dashActivated && stamina >= perDash) { Vec3 lookingIn = player.getLookVec(); @@ -549,46 +674,52 @@ public class EntityEffectHandler { int forward = (int) Math.signum(player.moveForward); int strafe = (int) Math.signum(player.moveStrafing); - + if(forward == 0 && strafe == 0) forward = 1; player.addVelocity(lookingIn.xCoord * forward + strafeVec.xCoord * strafe, 0, lookingIn.zCoord * forward + strafeVec.zCoord * strafe); player.motionY = 0; player.fallDistance = 0F; - player.playSound("hbm:player.dash", 1.0F, 1.0F); - + player.playSound("hbm:weapon.rocketFlame", 1.0F, 1.0F); + props.setDashCooldown(HbmPlayerProps.dashCooldownLength); stamina -= perDash; } - } else { + } else { props.setDashCooldown(props.getDashCooldown() - 1); + props.setKeyPressed(EnumKeybind.DASH, false); } - + if(stamina < props.getDashCount() * perDash) { stamina++; - + if(stamina % perDash == perDash-1) { - - player.playSound("hbm:player.dashRecharge", 1.0F, (1.0F + ((1F/12F)*(stamina/perDash)))); + + player.playSound("hbm:item.techBoop", 1.0F, (1.0F + ((1F/12F)*(stamina/perDash)))); stamina++; } } - + props.setStamina(stamina); - } - + } + } } - + private static void handlePlinking(Entity entity) { - + if(entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)entity; HbmPlayerProps props = HbmPlayerProps.getData(player); - + if(props.plinkCooldown > 0) props.plinkCooldown--; } } + + private static boolean canVomit(Entity e) { + if(e.isCreatureType(EnumCreatureType.waterCreature, false)) return false; + return true; + } } diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index af8f911e7..b89b86d58 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -29,8 +29,8 @@ public class FuelHandler implements IFuelHandler { if(fuel.getItem() == ModItems.biomass) return single * 2; if(fuel.getItem() == ModItems.biomass_compressed) return single * 4; if(fuel.getItem() == ModItems.powder_coal) return single * 8; - if(fuel.getItem() == ModItems.scrap) return single / 2; - if(fuel.getItem() == ModItems.dust) return single / 2; + if(fuel.getItem() == ModItems.scrap) return single / 4; + if(fuel.getItem() == ModItems.dust) return single / 8; if(fuel.getItem() == Item.getItemFromBlock(ModBlocks.block_scrap)) return single * 2; if(fuel.getItem() == ModItems.powder_fire) return 6400; if(fuel.getItem() == ModItems.lignite) return 1200; @@ -51,6 +51,17 @@ public class FuelHandler implements IFuelHandler { } } + if(fuel.getItem() == ModItems.powder_ash) { + int meta = fuel.getItemDamage(); + switch(meta) { + case 0: return single / 2; + case 1: return single; + case 2: return single / 2; + case 3: return single; + case 4: return single / 2; + } + } + return 0; } diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 43a21ce01..974322d00 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -3,11 +3,12 @@ package com.hbm.handler; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.function.Consumer; +import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; import net.minecraft.util.ResourceLocation; @@ -25,6 +26,8 @@ public class GunConfiguration implements Cloneable { public int rateOfFire; //amount of bullets fired per delay passed public int roundsPerCycle; + /** Amount of rounds per burst, irrelevant if not a burst fire weapon**/ + public int roundsPerBurst; //0 = normal, 1 = release, 2 = both public int gunMode; //0 = manual, 1 = automatic @@ -33,9 +36,14 @@ public class GunConfiguration implements Cloneable { public int durability; //animations! - public HashMap animations = new HashMap(); + public HashMap animations = new HashMap(); + //lazy-ish loading for animations, required for loading animations from ResourceManager, since that occurs after we've initialised the guns + public Consumer loadAnimations; + public boolean animationsLoaded = false; //when sneaking, disables crosshair and centers the bullet spawn point public boolean hasSights; + //does this weapon behave like fully sick old-school boomer shooters + public boolean isCentered; //texture overlay when sneaking public ResourceLocation scopeTexture; //whether the FOV multiplier should be absolute or multiplicative to other modifiers, multiplicative mode is experimental! @@ -43,17 +51,20 @@ public class GunConfiguration implements Cloneable { //the target FOV/multiplied FOV modifier when sneaking public float zoomFOV = 0.0F; + //duration of every animation cycle, used also for how quickly a burst fire rifle can fire + public int firingDuration; + //sound path to the shooting sound + public String firingSound = ""; + public String firingSoundEmpty = null; + public float firingVolume = 1.0F; + public float firingPitch = 1.0F; //how long the reload animation will play //MUST BE GREATER THAN ZERO ! ! ! public int reloadDuration; - //duration of every animation cycle - public int firingDuration; + public int emptyReloadAdditionalDuration; //sound path to the reload sound public String reloadSound = ""; - //sound path to the shooting sound - public String firingSound = ""; - public float firingVolume = 1.0F; - public float firingPitch = 1.0F; + public String reloadSoundEmpty = null; //whether the reload sound should be played at the beginning or at the end of the reload public boolean reloadSoundEnd = true; public String equipSound = ""; @@ -62,6 +73,8 @@ public class GunConfiguration implements Cloneable { public int ammoCap; //0 does not allow direct reload, 1 is full clip, 2 is single bullet public int reloadType; + // If the animations are designed to be sequential, the last frame will be held until the next anmiation starts + public boolean reloadAnimationsSequential = false; //whether or not the infinity enchantment should work public boolean allowsInfinity; //whether the ammo count should be displayed @@ -77,10 +90,10 @@ public class GunConfiguration implements Cloneable { public String name = ""; public EnumGunManufacturer manufacturer = EnumGunManufacturer.NONE; - public List comment = new ArrayList(); + public List comment = new ArrayList(); //bullet configs for main and alt fire - public List config = new ArrayList(); + public List config = new ArrayList(); //crosshair public Crosshair crosshair; @@ -94,6 +107,7 @@ public class GunConfiguration implements Cloneable { public static final int FIRE_MANUAL = 0; public static final int FIRE_AUTO = 1; + public static final int FIRE_BURST = 2; public static final int RELOAD_NONE = 0; public static final int RELOAD_FULL = 1; @@ -102,9 +116,11 @@ public class GunConfiguration implements Cloneable { public static final String RSOUND_REVOLVER = "hbm:weapon.revolverReload"; public static final String RSOUND_RIFLE = ""; public static final String RSOUND_MAG = "hbm:weapon.magReload"; + public static final String RSOUND_MAG_BOLT = "hbm:weapon.magReloadBolt"; public static final String RSOUND_SHOTGUN = "hbm:weapon.shotgunReload"; public static final String RSOUND_LAUNCHER = "hbm:weapon.rpgReload"; public static final String RSOUND_GRENADE = "hbm:weapon.hkReload"; + public static final String RSOUND_GRENADE_NEW = "hbm:weapon.glReload"; public static final String RSOUND_FATMAN = "hbm:weapon.fatmanReload"; public GunConfiguration silenced() { diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index 67bc7c955..a39b7ea8c 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -14,10 +14,10 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.items.ModItems; import com.hbm.items.armor.ItemModCladding; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; import com.hbm.util.Compat; +import com.hbm.util.ShadyUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; @@ -53,8 +53,10 @@ public class HazmatRegistry { double t45 = 1D; // 90% double ajr = 1.3D; // 95% double bj = 1D; // 90% + double env = 1.0D; // 99% double hev = 2.3D; // 99.5% double rpa = 2D; // 99% + double trench = 1D; // 90% double fau = 4D; // 99.99% double dns = 5D; // 99.999% double security = 0.825D; // 85% @@ -108,6 +110,11 @@ public class HazmatRegistry { HazmatRegistry.registerHazmat(ModItems.steamsuit_legs, 1.3 * legs); HazmatRegistry.registerHazmat(ModItems.steamsuit_boots, 1.3 * boots); + HazmatRegistry.registerHazmat(ModItems.envsuit_helmet, env * helmet); + HazmatRegistry.registerHazmat(ModItems.envsuit_plate, env * chest); + HazmatRegistry.registerHazmat(ModItems.envsuit_legs, env * legs); + HazmatRegistry.registerHazmat(ModItems.envsuit_boots, env * boots); + HazmatRegistry.registerHazmat(ModItems.hev_helmet, hev * helmet); HazmatRegistry.registerHazmat(ModItems.hev_plate, hev * chest); HazmatRegistry.registerHazmat(ModItems.hev_legs, hev * legs); @@ -118,6 +125,11 @@ public class HazmatRegistry { HazmatRegistry.registerHazmat(ModItems.rpa_legs, rpa * legs); HazmatRegistry.registerHazmat(ModItems.rpa_boots, rpa * boots); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_helmet, trench * helmet); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_plate, trench * chest); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_legs, trench * legs); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_boots, trench * boots); + HazmatRegistry.registerHazmat(ModItems.fau_helmet, fau * helmet); HazmatRegistry.registerHazmat(ModItems.fau_plate, fau * chest); HazmatRegistry.registerHazmat(ModItems.fau_legs, fau * legs); @@ -245,7 +257,7 @@ public class HazmatRegistry { float res = 0.0F; - if(player.getUniqueID().toString().equals(Library.Pu_238)) { + if(player.getUniqueID().toString().equals(ShadyUtil.Pu_238)) { res += 0.4F; } diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index 6ae2507e1..9b30effe7 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -1,17 +1,19 @@ package com.hbm.handler; import com.hbm.inventory.gui.GUICalculator; + import cpw.mods.fml.common.FMLCommonHandler; import org.lwjgl.input.Keyboard; import com.hbm.extprop.HbmPlayerProps; import com.hbm.main.MainRegistry; -import com.hbm.packet.KeybindPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.KeybindPacket; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; +import cpw.mods.fml.common.gameevent.InputEvent.MouseInputEvent; import net.minecraft.client.settings.KeyBinding; public class HbmKeybinds { @@ -21,9 +23,16 @@ public class HbmKeybinds { public static KeyBinding calculatorKey = new KeyBinding(category + ".calculator", Keyboard.KEY_N, category); public static KeyBinding jetpackKey = new KeyBinding(category + ".toggleBack", Keyboard.KEY_C, category); public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category); - public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category); public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_LSHIFT, category); public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category); + public static KeyBinding copyToolAlt = new KeyBinding(category + ".copyToolAlt", Keyboard.KEY_LMENU, category); + + public static KeyBinding copyToolCtrl = new KeyBinding(category + ".copyToolCtrl", Keyboard.KEY_LCONTROL, category); + + public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category); + public static KeyBinding gunPrimaryKey = new KeyBinding(category + ".gunPrimary", -100, category); + public static KeyBinding gunSecondaryKey = new KeyBinding(category + ".gunSecondary", -99, category); + public static KeyBinding gunTertiaryKey = new KeyBinding(category + ".gunTertitary", -98, category); public static KeyBinding craneUpKey = new KeyBinding(category + ".craneMoveUp", Keyboard.KEY_UP, category); public static KeyBinding craneDownKey = new KeyBinding(category + ".craneMoveDown", Keyboard.KEY_DOWN, category); @@ -35,15 +44,36 @@ public class HbmKeybinds { ClientRegistry.registerKeyBinding(calculatorKey); ClientRegistry.registerKeyBinding(jetpackKey); ClientRegistry.registerKeyBinding(hudKey); - ClientRegistry.registerKeyBinding(reloadKey); ClientRegistry.registerKeyBinding(dashKey); ClientRegistry.registerKeyBinding(trainKey); + ClientRegistry.registerKeyBinding(reloadKey); + ClientRegistry.registerKeyBinding(gunPrimaryKey); + ClientRegistry.registerKeyBinding(gunSecondaryKey); + ClientRegistry.registerKeyBinding(gunTertiaryKey); + ClientRegistry.registerKeyBinding(craneUpKey); ClientRegistry.registerKeyBinding(craneDownKey); ClientRegistry.registerKeyBinding(craneLeftKey); ClientRegistry.registerKeyBinding(craneRightKey); ClientRegistry.registerKeyBinding(craneLoadKey); + ClientRegistry.registerKeyBinding(copyToolAlt); + ClientRegistry.registerKeyBinding(copyToolCtrl); + } + + @SubscribeEvent + public void mouseEvent(MouseInputEvent event) { + HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me()); + + for(EnumKeybind key : EnumKeybind.values()) { + boolean last = props.getKeyPressed(key); + boolean current = MainRegistry.proxy.getIsKeyPressed(key); + + if(last != current) { + PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current)); + props.setKeyPressed(key, current); + } + } } @SubscribeEvent @@ -69,13 +99,18 @@ public class HbmKeybinds { JETPACK, TOGGLE_JETPACK, TOGGLE_HEAD, - RELOAD, DASH, TRAIN, CRANE_UP, CRANE_DOWN, CRANE_LEFT, CRANE_RIGHT, - CRANE_LOAD + CRANE_LOAD, + TOOL_ALT, + TOOL_CTRL, + GUN_PRIMARY, + GUN_SECONDARY, + GUN_TERTIARY, + RELOAD } } diff --git a/src/main/java/com/hbm/handler/HbmKeybindsServer.java b/src/main/java/com/hbm/handler/HbmKeybindsServer.java new file mode 100644 index 000000000..a8f5a99d6 --- /dev/null +++ b/src/main/java/com/hbm/handler/HbmKeybindsServer.java @@ -0,0 +1,26 @@ +package com.hbm.handler; + +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.items.IKeybindReceiver; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class HbmKeybindsServer { + + /** Can't put this in HbmKeybinds because it's littered with clientonly stuff */ + public static void onPressedServer(EntityPlayer player, EnumKeybind key, boolean state) { + + // EXTPROP HANDLING + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.setKeyPressed(key, state); + + // ITEM HANDLING + ItemStack held = player.getHeldItem(); + if(held != null && held.getItem() instanceof IKeybindReceiver) { + IKeybindReceiver rec = (IKeybindReceiver) held.getItem(); + if(rec.canHandleKeybind(player, held, key)) rec.handleKeybind(player, held, key, state); + } + } +} diff --git a/src/main/java/com/hbm/handler/ImpactWorldHandler.java b/src/main/java/com/hbm/handler/ImpactWorldHandler.java index 4fcf45157..365f17cd4 100644 --- a/src/main/java/com/hbm/handler/ImpactWorldHandler.java +++ b/src/main/java/com/hbm/handler/ImpactWorldHandler.java @@ -31,26 +31,32 @@ public class ImpactWorldHandler { return; } + TomSaveData data = TomSaveData.forWorld(world); + + if (data.dust <= 0 && data.fire <= 0) + return; + WorldServer serv = (WorldServer) world; List list = serv.theChunkProviderServer.loadedChunks; int listSize = list.size(); - + if(listSize > 0) { for(int i = 0; i < 3; i++) { - + Chunk chunk = list.get(serv.rand.nextInt(listSize)); ChunkCoordIntPair coord = chunk.getChunkCoordIntPair(); - + for(int x = 0; x < 16; x++) { for(int z = 0; z < 16; z++) { - + + if(world.rand.nextBoolean()) continue; + int X = coord.getCenterXPos() - 8 + x; int Z = coord.getCenterZPosition() - 8 + z; int Y = world.getHeightValue(X, Z) - world.rand.nextInt(Math.max(1, world.getHeightValue(X, Z))); - TomSaveData data = TomSaveData.forWorld(world); - + if(data.dust > 0) { die(world, X, Y, Z); } @@ -68,7 +74,7 @@ public class ImpactWorldHandler { TomSaveData data = TomSaveData.forWorld(world); int light = Math.max(world.getSavedLightValue(EnumSkyBlock.Block, x, y + 1, z), (int) (world.getBlockLightValue(x, y + 1, z) * (1 - data.dust))); - + if(light < 4) { if(world.getBlock(x, y, z) == Blocks.grass) { world.setBlock(x, y, z, Blocks.dirt); @@ -84,18 +90,18 @@ public class ImpactWorldHandler { /// Burn the world. public static void burn(World world, int x, int y, int z) { - + Block b = world.getBlock(x, y, z); if(b.isFlammable(world, x, y, z, ForgeDirection.UP) && world.getBlock(x, y + 1, z) == Blocks.air && world.getSavedLightValue(EnumSkyBlock.Sky, x, y + 1, z) >= 7) { if(b instanceof BlockLeaves || b instanceof BlockBush) { world.setBlockToAir(x, y, z); } world.setBlock(x, y + 1, z, Blocks.fire); - + } else if((b == Blocks.grass || b == Blocks.mycelium || b == ModBlocks.waste_earth || b == ModBlocks.frozen_grass || b == ModBlocks.waste_mycelium) && !world.canLightningStrikeAt(x, y, z) && world.getSavedLightValue(EnumSkyBlock.Sky, x, y + 1, z) >= 7) { world.setBlock(x, y, z, ModBlocks.burning_earth); - + } else if(b == ModBlocks.frozen_dirt && world.getSavedLightValue(EnumSkyBlock.Sky, x, y + 1, z) >= 7) { world.setBlock(x, y, z, Blocks.dirt); } @@ -123,4 +129,4 @@ public class ImpactWorldHandler { if(world != lastSyncWorld) return false; return impact; } -} \ No newline at end of file +} diff --git a/src/main/java/com/hbm/handler/MissileStruct.java b/src/main/java/com/hbm/handler/MissileStruct.java index b7a4b5e52..79ea52b7e 100644 --- a/src/main/java/com/hbm/handler/MissileStruct.java +++ b/src/main/java/com/hbm/handler/MissileStruct.java @@ -1,7 +1,7 @@ package com.hbm.handler; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import io.netty.buffer.ByteBuf; import net.minecraft.item.Item; @@ -9,35 +9,35 @@ import net.minecraft.item.ItemStack; public class MissileStruct { - public ItemMissile warhead; - public ItemMissile fuselage; - public ItemMissile fins; - public ItemMissile thruster; + public ItemCustomMissilePart warhead; + public ItemCustomMissilePart fuselage; + public ItemCustomMissilePart fins; + public ItemCustomMissilePart thruster; public MissileStruct() { } public MissileStruct(ItemStack w, ItemStack f, ItemStack s, ItemStack t) { - if(w != null && w.getItem() instanceof ItemMissile) - warhead = (ItemMissile) w.getItem(); - if(f != null && f.getItem() instanceof ItemMissile) - fuselage = (ItemMissile) f.getItem(); - if(s != null && s.getItem() instanceof ItemMissile) - fins = (ItemMissile) s.getItem(); - if(t != null && t.getItem() instanceof ItemMissile) - thruster = (ItemMissile) t.getItem(); + if(w != null && w.getItem() instanceof ItemCustomMissilePart) + warhead = (ItemCustomMissilePart) w.getItem(); + if(f != null && f.getItem() instanceof ItemCustomMissilePart) + fuselage = (ItemCustomMissilePart) f.getItem(); + if(s != null && s.getItem() instanceof ItemCustomMissilePart) + fins = (ItemCustomMissilePart) s.getItem(); + if(t != null && t.getItem() instanceof ItemCustomMissilePart) + thruster = (ItemCustomMissilePart) t.getItem(); } public MissileStruct(Item w, Item f, Item s, Item t) { - if(w instanceof ItemMissile) - warhead = (ItemMissile) w; - if(f instanceof ItemMissile) - fuselage = (ItemMissile) f; - if(s instanceof ItemMissile) - fins = (ItemMissile) s; - if(t instanceof ItemMissile) - thruster = (ItemMissile) t; + if(w instanceof ItemCustomMissilePart) + warhead = (ItemCustomMissilePart) w; + if(f instanceof ItemCustomMissilePart) + fuselage = (ItemCustomMissilePart) f; + if(s instanceof ItemCustomMissilePart) + fins = (ItemCustomMissilePart) s; + if(t instanceof ItemCustomMissilePart) + thruster = (ItemCustomMissilePart) t; } public void writeToByteBuffer(ByteBuf buf) { @@ -74,16 +74,16 @@ public class MissileStruct { int t = buf.readInt(); if(w != 0) - multipart.warhead = (ItemMissile) Item.getItemById(w); + multipart.warhead = (ItemCustomMissilePart) Item.getItemById(w); if(f != 0) - multipart.fuselage = (ItemMissile) Item.getItemById(f); + multipart.fuselage = (ItemCustomMissilePart) Item.getItemById(f); if(s != 0) - multipart.fins = (ItemMissile) Item.getItemById(s); + multipart.fins = (ItemCustomMissilePart) Item.getItemById(s); if(t != 0) - multipart.thruster = (ItemMissile) Item.getItemById(t); + multipart.thruster = (ItemCustomMissilePart) Item.getItemById(t); return multipart; } diff --git a/src/main/java/com/hbm/handler/SiegeOrchestrator.java b/src/main/java/com/hbm/handler/SiegeOrchestrator.java deleted file mode 100644 index d1c7fd725..000000000 --- a/src/main/java/com/hbm/handler/SiegeOrchestrator.java +++ /dev/null @@ -1,293 +0,0 @@ -package com.hbm.handler; - -import com.hbm.entity.missile.EntitySiegeDropship; -import com.hbm.entity.mob.siege.EntitySiegeCraft; -import com.hbm.entity.mob.siege.EntitySiegeSkeleton; -import com.hbm.entity.mob.siege.EntitySiegeTunneler; -import com.hbm.entity.mob.siege.EntitySiegeUFO; -import com.hbm.entity.mob.siege.EntitySiegeZombie; -import com.hbm.entity.mob.siege.SiegeTier; -import com.hbm.util.ChatBuilder; -import com.hbm.util.GameRuleHelper; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.GameRules; -import net.minecraft.world.World; - -public class SiegeOrchestrator { - - public static boolean lastWave = false; - - public static int level = 0; - public static int levelCounter = 0; - - public static int siegeMobCount = 0; - - public static void update(World world) { - - //abort loop if sieges are disabled - if(world.isRemote || !siegeEnabled(world)) - return; - - int waveTime = getWaveDuration(world); - int pauseTime = getPauseDuration(world); - int interval = waveTime + pauseTime; - //whether we're in a wave or pause, pauses apply first in an interval - boolean wave = (int)(world.getTotalWorldTime() % interval) >= pauseTime; - - //send a server-wide message when the wave starts and ends - if(!lastWave && wave) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(ChatBuilder.start("[SIEGE MODE] A new wave is starting!").color(EnumChatFormatting.RED).flush()); - } else if(lastWave && !wave) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(ChatBuilder.start("[SIEGE MODE] The wave has ended!").color(EnumChatFormatting.RED).flush()); - } - - lastWave = wave; - - //if we're on pause, do nothing - if(!wave) - return; - - int spawnDelay = getSpawnDelay(world); - boolean threshold = spawnThresholdEnabled(world); - int thresholdSize = getSpawnThreshold(world); - - //if threshold is enabled, don't go into the spawn loop if the entity count exceeds the threshold - if(!(threshold && siegeMobCount > thresholdSize)) { - for(Object o : world.playerEntities) { - EntityPlayer player = (EntityPlayer) o; - - if((world.getTotalWorldTime() + player.getEntityId()) % spawnDelay == 0) { - perPlayerSpawn(player); - } - } - } - - int countCap = getTierDelay(world); - int prevLevel = level; - levelCounter++; - - //if the counter has reached the cap, tick up the tier and reset the counter - while(levelCounter >= countCap) { - levelCounter -= countCap; - level++; - } - - //if the counter is below 0, bring up the counter and deduct a tier - while(levelCounter < 0) { - levelCounter += countCap; - level--; - } - - //if the tier has changed, send a broadcast - if(prevLevel != level) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(ChatBuilder.start("[SIEGE MODE] The siege tier is now " + (level + 1) + "!").color(EnumChatFormatting.RED).flush()); - } - - //every 10s we recount the loaded siege mobs - if(world.getTotalWorldTime() % 200 == 0) { - refreshMobCount(world); - } - } - - public static void perPlayerSpawn(EntityPlayer player) { - - Vec3 vec = Vec3.createVectorHelper(getSpawnDist(player.worldObj), 0, 0); - vec.rotateAroundY((float)(player.getRNG().nextFloat() * Math.PI)); - - double x = player.posX + vec.xCoord; - double z = player.posZ + vec.zCoord; - - if(enableMissileSpawn(player.worldObj)) { - EntitySiegeDropship ship = new EntitySiegeDropship(player.worldObj, x, 300, z); - player.worldObj.spawnEntityInWorld(ship); - } - } - - public static void playerDeathHook(EntityPlayer player, DamageSource source) { - - if(!player.worldObj.isRemote) { - if(isSiegeMob(source.getEntity())) { - levelCounter -= getTierSubDeath(player.worldObj); - } - } - } - - public static void mobDeathHook(EntityLivingBase entity, DamageSource source) { - - if(!entity.worldObj.isRemote) { - if(isSiegeMob(entity)) { - levelCounter += getTierAddKill(entity.worldObj); - } - } - } - - public static void spawnRandomMob(World world, double x, double y, double z, EntityPlayer target) { - - if(world.isRemote) - return; - - SiegeTier tier = SiegeTier.tiers[level]; - if(tier == null) - tier = SiegeTier.DNT; - - EntityLiving entity; - - float f = world.rand.nextFloat(); - - if(target != null && f < 0.25F && target.posY + 15 < y) { - entity = new EntitySiegeTunneler(world); - ((EntitySiegeTunneler)entity).setTier(tier); - } else if(f < 0.1F) { - entity = new EntitySiegeUFO(world); - ((EntitySiegeUFO)entity).setTier(tier); - } else if(f < 0.4F) { - entity = new EntitySiegeSkeleton(world); - ((EntitySiegeSkeleton)entity).setTier(tier); - } else { - entity = new EntitySiegeZombie(world); - ((EntitySiegeZombie)entity).setTier(tier); - } - - entity.setPositionAndRotation(x, y, z, (float)Math.PI * 2F, 0F); - - if(target != null) { - entity.setAttackTarget(target); - } - - world.spawnEntityInWorld(entity); - } - - private static void refreshMobCount(World world) { - - siegeMobCount = 0; - - for(Object o : world.loadedEntityList) { - Entity entity = (Entity) o; - - if(isSiegeMob(entity)) { - siegeMobCount++; - } - } - } - - public static boolean isSiegeMob(Entity entity) { - - if(entity instanceof EntitySiegeZombie) return true; - if(entity instanceof EntitySiegeSkeleton) return true; - if(entity instanceof EntitySiegeUFO) return true; - if(entity instanceof EntitySiegeTunneler) return true; - if(entity instanceof EntitySiegeCraft) return true; - - return false; - } - - public static final String KEY_SAVE_RULES = "siegeSaveRules"; - public static final String KEY_ENABLE_SIEGES = "siegeEnable"; - public static final String KEY_WAVE_DURATION = "siegeWaveDuration"; - public static final String KEY_PAUSE_DURATION = "siegePauseDuration"; - public static final String KEY_ENABLE_DROPS = "siegeEnableDropships"; - public static final String KEY_ENABLE_SPAWNS = "siegeEnableMobSpawning"; - public static final String KEY_ENABLE_BASES = "siegeEnableBases"; - public static final String KEY_ENABLE_MISSILES = "siegeEnableMissiles"; - public static final String KEY_SPAWN_DIST = "siegeSpawnDist"; - public static final String KEY_SPAWN_DELAY = "siegeSpawnDelay"; - public static final String KEY_TIER_DELAY = "siegeTierDuration"; - public static final String KEY_TIER_ADD_KILL = "siegeTierAddKill"; - public static final String KEY_TIER_ADD_DROP = "siegeTierAddDrop"; - public static final String KEY_TIER_SUB_DEATH = "siegeTierSubDeath"; - public static final String KEY_SPAWN_THRESHOLD = "siegeEnableSpawnThreshold"; - public static final String KEY_SPAWN_THRESHOLD_COUNT = "siegeSpawnThreshold"; - public static final String KEY_EXPANSION_THRESHOLD_COUNT = "siegeExpansionThreshold"; - - public static void createGameRules(World world) { - - GameRules rules = world.getGameRules(); - - if(!rules.getGameRuleBooleanValue(KEY_SAVE_RULES)) { - rules.setOrCreateGameRule(KEY_SAVE_RULES, "true"); - rules.setOrCreateGameRule(KEY_ENABLE_SIEGES, "false"); - rules.setOrCreateGameRule(KEY_WAVE_DURATION, "" + (20 * 60 * 20)); - rules.setOrCreateGameRule(KEY_PAUSE_DURATION, "" + (10 * 60 * 20)); - rules.setOrCreateGameRule(KEY_ENABLE_DROPS, "true"); - rules.setOrCreateGameRule(KEY_ENABLE_SPAWNS, "false"); - rules.setOrCreateGameRule(KEY_ENABLE_BASES, "true"); - rules.setOrCreateGameRule(KEY_ENABLE_MISSILES, "true"); - rules.setOrCreateGameRule(KEY_SPAWN_DIST, "64"); - rules.setOrCreateGameRule(KEY_SPAWN_DELAY, "" + (10 * 20)); - rules.setOrCreateGameRule(KEY_TIER_DELAY, "" + (15 * 60 * 20)); - rules.setOrCreateGameRule(KEY_TIER_ADD_KILL, "" + (1 * 20)); - rules.setOrCreateGameRule(KEY_TIER_SUB_DEATH, "" + (15 * 20)); - rules.setOrCreateGameRule(KEY_SPAWN_THRESHOLD, "true"); - rules.setOrCreateGameRule(KEY_SPAWN_THRESHOLD_COUNT, "50"); - rules.setOrCreateGameRule(KEY_EXPANSION_THRESHOLD_COUNT, "20"); - } - } - - public static boolean siegeEnabled(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_SIEGES); - } - - public static int getWaveDuration(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_WAVE_DURATION, 20 * 60 * 10, 1); - } - - public static int getPauseDuration(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_PAUSE_DURATION, 10 * 60 * 10, 0); - } - - public static double getSpawnDist(World world) { - return GameRuleHelper.getDoubleMinimum(world, KEY_SPAWN_DIST, 64, 0); - } - - public static int getSpawnDelay(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_SPAWN_DELAY, 10 * 20, 1); - } - - public static int getTierDelay(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_DELAY, 15 * 60 * 20, 1); - } - - public static int getTierAddKill(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_ADD_KILL, 1 * 20, 0); - } - - public static int getTierAddDrop(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_ADD_DROP, 5 * 20, 0); - } - - public static int getTierSubDeath(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_SUB_DEATH, 15 * 20, 0); - } - - public static boolean spawnThresholdEnabled(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_SPAWN_THRESHOLD); - } - - public static int getSpawnThreshold(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_SPAWN_THRESHOLD_COUNT, 50, 1); - } - - public static int getExpansionThreshold(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_EXPANSION_THRESHOLD_COUNT, 20, 1); - } - - public static boolean enableBaseSpawning(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_BASES); - } - - public static boolean enableMobSpawning(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_SPAWNS); - } - - public static boolean enableMissileSpawn(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_MISSILES); - } -} diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index f142c5626..2a03e79a4 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -441,7 +441,7 @@ public abstract class ToolAbility { block = Blocks.redstone_ore; ItemStack stack = new ItemStack(block, 1, meta); - CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.ACID); + CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.PEROXIDE); if(result != null) { world.setBlockToAir(x, y, z); diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index 60a8ae6b7..46025acce 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -2,14 +2,12 @@ package com.hbm.handler; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; -import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.items.tool.IItemAbility; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; -import com.hbm.util.WeightedRandomObject; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -35,7 +33,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; -import net.minecraft.util.WeightedRandom; +import net.minecraft.util.DamageSource; import net.minecraft.world.World; public abstract class WeaponAbility { @@ -86,6 +84,7 @@ public abstract class WeaponAbility { EntityLivingBase living = (EntityLivingBase) victim; living.setHealth(living.getHealth() - amount); + if(living.getHealth() <= 0) living.onDeath(DamageSource.magic); player.heal(amount); } } @@ -206,28 +205,10 @@ public abstract class WeaponAbility { if(living.getHealth() <= 0.0F) { - WeightedRandomObject[] ammo = new WeightedRandomObject[] { - new WeightedRandomObject(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.SHRAPNEL), 5), - new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.FLECHETTE), 5), - new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SLUG), 5), - new WeightedRandomObject(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_556.stackFromEnum(Ammo556mm.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE), 10), - new WeightedRandomObject(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STOCK), 3), - new WeightedRandomObject(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.STOCK), 3), - new WeightedRandomObject(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.STOCK), 1), - new WeightedRandomObject(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.GLARE), 1), - new WeightedRandomObject(new ItemStack(ModItems.syringe_metal_stimpak), 20), - }; - int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health for(int i = 0; i < count; i++) { - - living.entityDropItem(((WeightedRandomObject)WeightedRandom.getRandomItem(living.getRNG(), ammo)).asStack(), 1); + living.entityDropItem(new ItemStack(ModItems.nitra_small), 1); world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); } diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index c8e3bebd0..b20f47490 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -1,22 +1,15 @@ package com.hbm.handler.guncfg; import java.util.List; -import java.util.Random; -import com.hbm.entity.particle.EntityBSmokeFX; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.*; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.explosion.ExplosionNukeSmall.MukeParams; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.*; -import com.hbm.items.ModItems; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorRegistry.HazardClass; @@ -35,36 +28,6 @@ import net.minecraft.util.Vec3; public class BulletConfigFactory { - /// configs should never be loaded manually due to syncing issues: use the syncing util and pass the UID in the DW of the bullet to make the client load the config correctly //// - - public static BulletConfiguration getTestConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.LEAD)); - bullet.velocity = 5.0F; - bullet.spread = 0.05F; - bullet.wear = 10; - bullet.dmgMin = 15; - bullet.dmgMax = 17; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 10; - bullet.HBRC = 2; - bullet.LBRC = 90; - bullet.bounceMod = 0.8; - bullet.doesPenetrate = true; - bullet.doesBreakGlass = true; - bullet.style = 0; - bullet.plink = 1; - - return bullet; - - } - public static final float defaultSpread = 0.005F; /// STANDARD CONFIGS /// @@ -126,61 +89,6 @@ public class BulletConfigFactory { return bullet; } - public static BulletConfiguration standardAirstrikeConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 5.0F; - bullet.spread = 0.0F; - bullet.wear = 50; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = false; - bullet.doesPenetrate = false; - bullet.doesBreakGlass = false; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.leadChance = 0; - bullet.vPFX = "reddust"; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - Random rand = bullet.worldObj.rand; - int count = rand.nextInt(11) + 95; - - for(int i = 0; i < count; i++) { - - double dx = bullet.posX + rand.nextGaussian() * 4; - double dy = bullet.posY + 25 + rand.nextGaussian() * 5; - double dz = bullet.posZ + rand.nextGaussian() * 4; - - Vec3 motion = Vec3.createVectorHelper(bullet.posX - dx, bullet.posY - dy, bullet.posZ - dz); - motion = motion.normalize(); - - EntityBulletBase bolt = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.R556_FLECHETTE_DU); - bolt.setPosition(dx, dy, dz); - bolt.setThrowableHeading(motion.xCoord, motion.yCoord, motion.zCoord, 0.5F, 0.1F); - bullet.worldObj.spawnEntityInWorld(bolt); - - if(i < 30) { - EntityBSmokeFX bsmoke = new EntityBSmokeFX(bullet.worldObj); - bsmoke.setPosition(dx, dy, dz); - bullet.worldObj.spawnEntityInWorld(bsmoke); - } - } - } - }; - - return bullet; - } - public static BulletConfiguration standardRocketConfig() { BulletConfiguration bullet = new BulletConfiguration(); @@ -310,12 +218,19 @@ public class BulletConfigFactory { } } - public static IBulletImpactBehavior getPhosphorousEffect(final int radius, final int duration, final int count, final double motion, float hazeChance) { + public static void makeFlechette(BulletConfiguration bullet) { + + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { + bulletnt.getStuck(x, y, z, sideHit); + }; + } + + public static IBulletImpactBehaviorNT getPhosphorousEffect(final int radius, final int duration, final int count, final double motion, float hazeChance) { - IBulletImpactBehavior impact = new IBulletImpactBehavior() { + IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); @@ -352,12 +267,12 @@ public class BulletConfigFactory { return impact; } - public static IBulletImpactBehavior getGasEffect(final int radius, final int duration) { + public static IBulletImpactBehaviorNT getGasEffect(final int radius, final int duration) { - IBulletImpactBehavior impact = new IBulletImpactBehavior() { + IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); @@ -369,7 +284,7 @@ public class BulletConfigFactory { EntityLivingBase entity = (EntityLivingBase) e; - if(ArmorRegistry.hasAllProtection(entity, 3, HazardClass.GAS_CHLORINE)) + if(ArmorRegistry.hasAllProtection(entity, 3, HazardClass.GAS_LUNG)) continue; PotionEffect eff0 = new PotionEffect(Potion.poison.id, duration, 2, true); @@ -401,20 +316,20 @@ public class BulletConfigFactory { return impact; } - public static IBulletUpdateBehavior getLaserSteering() { + public static IBulletUpdateBehaviorNT getLaserSteering() { - IBulletUpdateBehavior onUpdate = new IBulletUpdateBehavior() { + IBulletUpdateBehaviorNT onUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { - if(bullet.shooter == null || !(bullet.shooter instanceof EntityPlayer)) + if(bullet.getThrower() == null || !(bullet.getThrower() instanceof EntityPlayer)) return; - if(Vec3.createVectorHelper(bullet.posX - bullet.shooter.posX, bullet.posY - bullet.shooter.posY, bullet.posZ - bullet.shooter.posZ).lengthVector() > 100) + if(Vec3.createVectorHelper(bullet.posX - bullet.getThrower().posX, bullet.posY - bullet.getThrower().posY, bullet.posZ - bullet.getThrower().posZ).lengthVector() > 100) return; - MovingObjectPosition mop = Library.rayTrace((EntityPlayer)bullet.shooter, 200, 1); + MovingObjectPosition mop = Library.rayTrace((EntityPlayer)bullet.getThrower(), 200, 1); if(mop == null || mop.hitVec == null) return; @@ -438,12 +353,12 @@ public class BulletConfigFactory { return onUpdate; } - public static IBulletUpdateBehavior getHomingBehavior(final double range, final double angle) { - - IBulletUpdateBehavior onUpdate = new IBulletUpdateBehavior() { + public static IBulletUpdateBehaviorNT getHomingBehavior(final double range, final double angle) { + + IBulletUpdateBehaviorNT onUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) return; @@ -458,7 +373,6 @@ public class BulletConfigFactory { Vec3 delta = Vec3.createVectorHelper(target.posX - bullet.posX, target.posY + target.height / 2 - bullet.posY, target.posZ - bullet.posZ); delta = delta.normalize(); - double vel = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ).lengthVector(); bullet.motionX = delta.xCoord * vel; @@ -467,7 +381,7 @@ public class BulletConfigFactory { } } - private void chooseTarget(EntityBulletBase bullet) { + private void chooseTarget(EntityBulletBaseNT bullet) { List entities = bullet.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, bullet.boundingBox.expand(range, range, range)); @@ -478,7 +392,7 @@ public class BulletConfigFactory { for(EntityLivingBase e : entities) { - if(!e.isEntityAlive() || e == bullet.shooter) + if(!e.isEntityAlive() || e == bullet.getThrower()) continue; Vec3 delta = Vec3.createVectorHelper(e.posX - bullet.posX, e.posY + e.height / 2 - bullet.posY, e.posZ - bullet.posZ); @@ -493,6 +407,10 @@ public class BulletConfigFactory { double deltaAngle = BobMathUtil.getCrossAngle(mot, delta); if(deltaAngle < targetAngle) { + //Checks if the bullet is not already inside the entity's bounding box, so it doesn't pick the same target + if(bullet.getConfig().doesPenetrate && bullet.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, bullet.boundingBox.expand(2, 2, 2)) == null) { + continue; + } target = e; targetAngle = deltaAngle; } @@ -507,4 +425,9 @@ public class BulletConfigFactory { return onUpdate; } + /** Resets the bullet's target **/ + public static IBulletHurtBehaviorNT getPenHomingBehavior(){ + return (bullet, hit) -> bullet.getEntityData().setInteger("homingTarget", 0); + } + } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java deleted file mode 100644 index e5f851c48..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ /dev/null @@ -1,387 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.List; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.Ammo12Gauge; -import com.hbm.items.ModItems; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.potion.HbmPotion; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; - -public class Gun12GaugeFactory { - - private static final CasingEjector EJECTOR_SPAS, EJECTOR_SPAS_ALT, EJECTOR_BENELLI, EJECTOR_UBOINIK, EJECTOR_SSG; - private static final SpentCasing CASING12GAUGE; - - static { - EJECTOR_SPAS = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12); - EJECTOR_SPAS_ALT = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12).setAmount(2); - EJECTOR_BENELLI = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.3, 1, 0).setAngleRange(0.01F, 0.03F); - EJECTOR_UBOINIK = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.3, 0.5).setAngleRange(0.01F, 0.03F); - EJECTOR_SSG = new CasingEjector().setMotion(0.2, 0, -0.2).setOffset(0.8, 0, 0).setAngleRange(0.05F, 0.02F).setDelay(20).setAmount(2); - - CASING12GAUGE = new SpentCasing(CasingType.SHOTGUN).setScale(1.5F).setBounceMotion(0.05F, 0.02F).setupSmoke(0.5F, 0.5D, 60, 20); - } - - public static GunConfiguration getRemington870Config() { - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 25; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 5; - config.ammoCap = 5; - config.durability = 1000; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.CIRCLE; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.shotgunPump"; - - config.name = "remington870"; - config.manufacturer = EnumGunManufacturer.REMINGTON; - - config.config = HbmCollection.g12hs; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL_TRANSLATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, -2, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - ) - .addBus("PUMP", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 450)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -1.8, 200)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - ) - ); - - config.ejector = EJECTOR_SPAS; - return config; - } - - public static GunConfiguration getSpas12Config() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 25; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 5; - config.ammoCap = 8; - config.durability = 2500; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.CIRCLE; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.shotgunPump"; - - config.name = "spas12"; - config.manufacturer = EnumGunManufacturer.BLACK_MESA; - config.comment.add("\"Here, I have a more suitable gun for you. You'll need it - Catch!\""); - config.comment.add("Alt-fire with Mouse 2 (Right-click) to fire 2 shells at once"); - - config.config = HbmCollection.g12; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("SPAS_RECOIL_TRANSLATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, -2, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - ) - .addBus("SPAS_RECOIL_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-1, 0, 1, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - ) - .addBus("SPAS_PUMP", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 450)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -1.8, 200)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - ) - ); - - config.ejector = EJECTOR_SPAS; - - return config; - } - - public static GunConfiguration getSpas12AltConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 35; - config.roundsPerCycle = 2; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.firingDuration = 10; - config.ammoCap = 8; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.shotgunPump"; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - - config.config = HbmCollection.g12hs; - - config.ejector = EJECTOR_SPAS_ALT; - - return config; - } - - public static GunConfiguration getUboinikConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 8; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 0; - config.ammoCap = 6; - config.durability = 1500; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCLE; - config.reloadSound = GunConfiguration.RSOUND_REVOLVER; - config.firingSound = "hbm:weapon.shotgunShoot"; - - config.name = "uboinik"; - config.manufacturer = EnumGunManufacturer.METRO; - - config.config = HbmCollection.g12hs; - - config.ejector = EJECTOR_UBOINIK; - - return config; - } - - public static GunConfiguration getShottyConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 20; - config.roundsPerCycle = 2; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 0; - config.ammoCap = 0; - config.durability = 3000; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.allowsInfinity = true; - config.hasSights = true; - config.crosshair = Crosshair.L_CIRCLE; - config.reloadSound = GunConfiguration.RSOUND_REVOLVER; - config.firingSound = "hbm:weapon.shottyShoot"; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("SHOTTY_RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) - ) - .addBus("SHOTTY_BREAK", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100)) //do nothing for 100ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 60, 200)) //open - .addKeyframe(new BusAnimationKeyframe(0, 0, 60, 500)) //do nothing for 500ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) //close - ) - .addBus("SHOTTY_EJECT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) //do nothing for 300ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 700)) //fling! - ) - .addBus("SHOTTY_INSERT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) //do nothing for 300ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 1, 0)) //reposition - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 350)) //come in from the side - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150)) //push - ) - ); - - config.name = "supershotty"; - config.manufacturer = EnumGunManufacturer.UAC; - config.comment.add("God-damned ARCH-VILES!"); - - config.config = HbmCollection.g12hs; - - config.ejector = EJECTOR_SSG; - - return config; - } - - public static BulletConfiguration get12GaugeConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.STOCK)); - bullet.dmgMin = 5; - bullet.dmgMax = 7; - - bullet.spentCasing = CASING12GAUGE.clone().register("12GaStock").setColor(0x2847FF, SpentCasing.COLOR_CASE_12GA); - - return bullet; - } - - public static BulletConfiguration get12GaugeFireConfig() { - - BulletConfiguration bullet = get12GaugeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.INCENDIARY)); - bullet.wear = 15; - bullet.dmgMin = 5; - bullet.dmgMax = 7; - bullet.incendiary = 5; - - bullet.spentCasing = CASING12GAUGE.clone().register("12GaInc").setColor(0xFF6329, SpentCasing.COLOR_CASE_12GA).setupSmoke(1F, 0.5D, 60, 40); - - return bullet; - } - - public static BulletConfiguration get12GaugeShrapnelConfig() { - - BulletConfiguration bullet = get12GaugeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.SHRAPNEL)); - bullet.wear = 15; - bullet.dmgMin = 10; - bullet.dmgMax = 17; - bullet.ricochetAngle = 15; - bullet.HBRC = 80; - bullet.LBRC = 95; - - bullet.spentCasing = CASING12GAUGE.clone().register("12GaShrap").setColor(0xF0E800, SpentCasing.COLOR_CASE_12GA); - - return bullet; - } - - public static BulletConfiguration get12GaugeDUConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.DU)); - bullet.wear = 20; - bullet.dmgMin = 18; - bullet.dmgMax = 22; - bullet.doesPenetrate = true; - bullet.leadChance = 50; - - bullet.spentCasing = CASING12GAUGE.clone().register("12GaDU").setColor(0x62A362, SpentCasing.COLOR_CASE_12GA); - - return bullet; - } - - public static BulletConfiguration get12GaugeAMConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.MARAUDER)); - bullet.wear = 20; - bullet.dmgMin = 100; - bullet.dmgMax = 500; - bullet.leadChance = 50; - - bullet.bHurt = new IBulletHurtBehavior() { - - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(hit instanceof EntityLivingBase) - ((EntityLivingBase)hit).addPotionEffect(new PotionEffect(HbmPotion.bang.id, 20, 0)); - } - - }; - - bullet.spentCasing = CASING12GAUGE.clone().register("12GaAM").setColor(0x416645, SpentCasing.COLOR_CASE_12GA); - - return bullet; - } - - public static BulletConfiguration get12GaugeSleekConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardAirstrikeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.SLEEK)); - - bullet.spentCasing = CASING12GAUGE.clone().register("12GaIF").setColor(0x2A2A2A, SpentCasing.COLOR_CASE_12GA); - - return bullet; - } - - public static BulletConfiguration get12GaugePercussionConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.PERCUSSION)); - bullet.velocity = 2F; - bullet.spread = 0F; - bullet.wear = 10; - bullet.dmgMin = 30F; - bullet.dmgMax = 30F; - bullet.maxAge = 0; - - bullet.spentCasing = CASING12GAUGE.clone().register("12GaPerc").setColor(0x9E1616, SpentCasing.COLOR_CASE_12GA).setupSmoke(1F, 0.5D, 60, 40); - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - Vec3 vec = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ); - double radius = 4; - double x = bullet.posX + vec.xCoord; - double y = bullet.posY + vec.yCoord; - double z = bullet.posZ + vec.zCoord; - AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(x, y, z, x, y, z).expand(radius, radius, radius); - List list = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet.shooter, aabb); - - for(Entity e : list) { - DamageSource source = bullet.shooter instanceof EntityPlayer ? DamageSource.causePlayerDamage((EntityPlayer) bullet.shooter) : DamageSource.magic; - e.attackEntityFrom(source, 30F); - } - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 0.75F); - data.setFloat("g", 0.75F); - data.setFloat("b", 0.75F); - data.setFloat("pitch", (float) -bullet.rotationPitch + 90); - data.setFloat("yaw", (float) bullet.rotationYaw); - data.setFloat("scale", 2F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(bullet.dimension, x, y, z, 100)); - - bullet.setDead(); - } - } - }; - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java deleted file mode 100644 index 80f96b057..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ /dev/null @@ -1,381 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo20Gauge; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Vec3; - -public class Gun20GaugeFactory { - - private static final CasingEjector EJECTOR_SHOTGUN; - private static final SpentCasing CASING20GAUGE; - - static { - EJECTOR_SHOTGUN = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.95, 0)).setOffset(Vec3.createVectorHelper(-0.55, 0, 0.5)).setAngleRange(0.01F, 0.05F); - CASING20GAUGE = new SpentCasing(CasingType.SHOTGUN).setScale(1.25F).setBounceMotion(0.01F, 0.05F).setupSmoke(0.25F, 0.5D, 60, 20); - } - - public static GunConfiguration getShotgunConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 25; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 0; - config.ammoCap = 6; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCLE; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 45, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) - ) - .addBus("LEVER_RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150)) - .addKeyframe(new BusAnimationKeyframe(0, -0.5, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) - ) - ); - - config.config = HbmCollection.g20; - - config.ejector = EJECTOR_SHOTGUN; - - return config; - } - - public static GunConfiguration getMareConfig() { - - GunConfiguration config = getShotgunConfig(); - - config.durability = 2000; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.revolverShootAlt"; - config.firingPitch = 0.75F; - config.hasSights = true; - config.zoomFOV = 0.75F; - - config.name = "win1887"; - config.manufacturer = EnumGunManufacturer.WINCHESTER; - - config.config = HbmCollection.g20; - - return config; - } - - public static GunConfiguration getMareDarkConfig() { - - GunConfiguration config = getShotgunConfig(); - - config.durability = 2500; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.revolverShootAlt"; - config.firingPitch = 0.75F; - config.hasSights = true; - config.zoomFOV = 0.75F; - - config.name = "win1887Inox"; - config.manufacturer = EnumGunManufacturer.WINCHESTER; - - config.config = HbmCollection.g20; - - return config; - } - - public static GunConfiguration getBoltConfig() { - - GunConfiguration config = getShotgunConfig(); - - config.ammoCap = 1; - config.durability = 3000; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.revolverShoot"; - config.firingPitch = 0.75F; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - .addBus("LEVER_PULL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt - ) - .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again - ) - ); - - config.name = "win20Inox"; - config.manufacturer = EnumGunManufacturer.WINCHESTER; - - config.config = HbmCollection.g20; - - return config; - } - - public static GunConfiguration getBoltGreenConfig() { - - GunConfiguration config = getShotgunConfig(); - - config.ammoCap = 1; - config.durability = 2500; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.revolverShoot"; - config.firingPitch = 0.75F; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - .addBus("LEVER_PULL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt - ) - .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again - ) - ); - - config.name = "win20Poly"; - config.manufacturer = EnumGunManufacturer.WINCHESTER; - - config.config = HbmCollection.g20; - - return config; - } - - public static GunConfiguration getBoltSaturniteConfig() { - - GunConfiguration config = getShotgunConfig(); - - config.ammoCap = 1; - config.durability = 4000; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.revolverShoot"; - config.firingPitch = 0.75F; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - .addBus("LEVER_PULL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt - ) - .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again - ) - ); - - config.name = "win20Satur"; - config.manufacturer = EnumGunManufacturer.WINCHESTER_BIGMT; - - config.config = HbmCollection.g20; - - return config; - } - - public static BulletConfiguration get20GaugeConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.STOCK)); - bullet.dmgMin = 3; - bullet.dmgMax = 5; - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaStock").setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS); - - return bullet; - } - - public static BulletConfiguration get20GaugeSlugConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SLUG)); - bullet.dmgMin = 18; - bullet.dmgMax = 22; - bullet.wear = 7; - bullet.style = BulletConfiguration.STYLE_NORMAL; - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaSlug").setColor(0x2A2A2A, SpentCasing.COLOR_CASE_BRASS); - - return bullet; - } - - public static BulletConfiguration get20GaugeFlechetteConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.FLECHETTE)); - bullet.dmgMin = 8; - bullet.dmgMax = 15; - bullet.wear = 15; - bullet.style = BulletConfiguration.STYLE_FLECHETTE; - bullet.HBRC = 2; - bullet.LBRC = 95; - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaFlech").setColor(0x2847FF, SpentCasing.COLOR_CASE_BRASS); - - return bullet; - } - - public static BulletConfiguration get20GaugeFireConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.INCENDIARY)); - bullet.dmgMin = 3; - bullet.dmgMax = 6; - bullet.wear = 15; - bullet.incendiary = 5; - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaInc").setColor(0xFF6329, SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 40); - - return bullet; - } - - public static BulletConfiguration get20GaugeShrapnelConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SHRAPNEL)); - bullet.wear = 15; - bullet.dmgMin = 7; - bullet.dmgMax = 12; - bullet.ricochetAngle = 15; - bullet.HBRC = 80; - bullet.LBRC = 95; - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaShrap").setColor(0xF0E800, SpentCasing.COLOR_CASE_BRASS); - - return bullet; - } - - public static BulletConfiguration get20GaugeExplosiveConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.EXPLOSIVE)); - bullet.dmgMin = 7; - bullet.dmgMax = 12; - bullet.wear = 25; - bullet.explosive = 0.5F; - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaExp").setColor(0xF0E800, SpentCasing.COLOR_CASE_BRASS); - - return bullet; - } - - public static BulletConfiguration get20GaugeCausticConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.CAUSTIC)); - bullet.dmgMin = 3; - bullet.dmgMax = 7; - bullet.wear = 25; - bullet.caustic = 5; - bullet.doesRicochet = false; - bullet.HBRC = 0; - bullet.LBRC = 0; - - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(Potion.poison.id, 10 * 20, 1)); - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaCaus").setColor(0x64E800, SpentCasing.COLOR_CASE_BRASS); - - return bullet; - } - - public static BulletConfiguration get20GaugeShockConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SHOCK)); - bullet.dmgMin = 4; - bullet.dmgMax = 8; - bullet.wear = 25; - bullet.emp = 2; - bullet.doesRicochet = false; - bullet.HBRC = 0; - bullet.LBRC = 0; - - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 1)); - bullet.effects.add(new PotionEffect(Potion.weakness.id, 10 * 20, 4)); - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaShock").setColor(0x00EFEF, SpentCasing.COLOR_CASE_BRASS); - - return bullet; - } - - public static BulletConfiguration get20GaugeWitherConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.WITHER)); - bullet.dmgMin = 4; - bullet.dmgMax = 8; - - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(Potion.wither.id, 10 * 20, 2)); - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaWith").setColor(0x391717, SpentCasing.COLOR_CASE_BRASS); - - return bullet; - } - - public static BulletConfiguration get20GaugeSleekConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardAirstrikeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SLEEK)); - - bullet.spentCasing = CASING20GAUGE.clone().register("20GaIF").setColor(0x2A2A2A, SpentCasing.COLOR_CASE_BRASS); - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java deleted file mode 100644 index aa9070ed8..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.hbm.handler.guncfg; - -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo22LR; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -public class Gun22LRFactory { - - private static final CasingEjector EJECTOR_22LR; - private static final SpentCasing CASING22LR; - - static { - EJECTOR_22LR = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.2, 0.35).setAngleRange(0.01F, 0.03F); - CASING22LR = new SpentCasing(CasingType.STRAIGHT).setScale(0.8F).setBounceMotion(0.05F, 0.02F).setColor(SpentCasing.COLOR_CASE_BRASS); - } - - public static GunConfiguration getUziConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 32; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CROSS; - config.durability = 3000; - config.reloadSound = GunConfiguration.RSOUND_MAG; - config.firingSound = "hbm:weapon.uziShoot"; - config.reloadSoundEnd = false; - - config.name = "uzi"; - config.manufacturer = EnumGunManufacturer.IMI; - config.comment.add("Mom, where are my mittens?"); - - config.config = HbmCollection.lr22; - - config.ejector = EJECTOR_22LR; - - return config; - } - - public static GunConfiguration getSaturniteConfig() { - - GunConfiguration config = getUziConfig(); - - config.durability = 4500; - - config.name = "uziSatur"; - config.manufacturer = EnumGunManufacturer.IMI_BIGMT; - - config.config = HbmCollection.lr22Inc; - - return config; - } - - static float inaccuracy = 5; - public static BulletConfiguration get22LRConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.STOCK)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 6; - bullet.dmgMax = 8; - - bullet.spentCasing = CASING22LR.clone().register("22LRStock"); - - return bullet; - } - - public static BulletConfiguration get22LRAPConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.AP)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 12; - bullet.dmgMax = 16; - bullet.leadChance = 10; - bullet.wear = 15; - - bullet.spentCasing = CASING22LR.clone().register("22LRAP"); - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java deleted file mode 100644 index 53b5251db..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java +++ /dev/null @@ -1,341 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.lib.ModDamageSource; -import com.hbm.potion.HbmPotion; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Vec3; - -public class Gun357MagnumFactory { - - private static final CasingEjector EJECTOR_REVOLVER; - private static final SpentCasing CASING357; - private static final SpentCasing CASINGNM; - - static { - EJECTOR_REVOLVER = new CasingEjector().setMotion(Vec3.createVectorHelper(0, 0, -0.03)).setOffset(Vec3.createVectorHelper(0, -0.15, 0)).setAngleRange(0.01F, 0.05F).setAfterReload().setAmount(6); - CASING357 = new SpentCasing(CasingType.STRAIGHT).setBounceMotion(0.01F, 0.05F); - CASINGNM = new SpentCasing(CasingType.SHOTGUN).setScale(1.25F).setBounceMotion(0.01F, 0.05F).setColor(0xC7AB1C, 0x6D63A6).register("357N2"); - } - - public static GunConfiguration getBaseConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 10; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 0; - config.ammoCap = 6; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CLASSIC; - config.reloadSound = GunConfiguration.RSOUND_REVOLVER; - config.firingSound = "hbm:weapon.revolverShoot"; - config.reloadSoundEnd = false; - - config.ejector = EJECTOR_REVOLVER; - - return config; - } - - public static GunConfiguration getRevolverConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 3500; - - config.name = "ffiVInox"; - config.manufacturer = EnumGunManufacturer.FLIMFLAM; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.STEEL_REVOLVER); - config.config.add(BulletConfigSyncingUtil.IRON_REVOLVER); - config.config.add(BulletConfigSyncingUtil.LEAD_REVOLVER); - config.config.add(BulletConfigSyncingUtil.DESH_REVOLVER); - - return config; - } - - public static GunConfiguration getRevolverSaturniteConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 3500; - - config.name = "ffivSatur"; - config.manufacturer = EnumGunManufacturer.FLIMFLAM; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.SATURNITE_REVOLVER); - config.config.add(BulletConfigSyncingUtil.DESH_REVOLVER); - - return config; - } - - public static GunConfiguration getRevolverGoldConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 2500; - - config.name = "ffivBling"; - config.manufacturer = EnumGunManufacturer.FLIMFLAM; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.GOLD_REVOLVER); - config.config.add(BulletConfigSyncingUtil.STEEL_REVOLVER); - config.config.add(BulletConfigSyncingUtil.IRON_REVOLVER); - config.config.add(BulletConfigSyncingUtil.LEAD_REVOLVER); - config.config.add(BulletConfigSyncingUtil.DESH_REVOLVER); - - return config; - } - - public static GunConfiguration getRevolverCursedConfig() { - - GunConfiguration config = getBaseConfig(); - - config.rateOfFire = 7; - config.ammoCap = 17; - config.durability = 5000; - config.firingSound = "hbm:weapon.heavyShoot"; - - config.name = "revolverCursed"; - config.manufacturer = EnumGunManufacturer.BAE; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.CURSED_REVOLVER); - config.config.add(BulletConfigSyncingUtil.DESH_REVOLVER); - - return config; - } - - public static GunConfiguration getRevolverSchrabidiumConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 7500; - config.firingSound = "hbm:weapon.schrabidiumShoot"; - - config.name = "ffiVUltra"; - config.manufacturer = EnumGunManufacturer.FLIMFLAM; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.SCHRABIDIUM_REVOLVER); - config.config.add(BulletConfigSyncingUtil.GOLD_REVOLVER); - config.config.add(BulletConfigSyncingUtil.STEEL_REVOLVER); - config.config.add(BulletConfigSyncingUtil.IRON_REVOLVER); - config.config.add(BulletConfigSyncingUtil.LEAD_REVOLVER); - config.config.add(BulletConfigSyncingUtil.DESH_REVOLVER); - - return config; - } - - public static GunConfiguration getRevolverNightmareConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 4000; - config.firingSound = "hbm:weapon.schrabidiumShoot"; - - config.name = "ffiVN1"; - config.manufacturer = EnumGunManufacturer.FLIMFLAM; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.NIGHT_REVOLVER); - config.config.add(BulletConfigSyncingUtil.DESH_REVOLVER); - - return config; - } - - public static GunConfiguration getRevolverNightmare2Config() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 4000; - config.firingSound = "hbm:weapon.schrabidiumShoot"; - config.crosshair = Crosshair.NONE; - - config.name = "ffiVN2"; - config.manufacturer = EnumGunManufacturer.FLIMFLAM; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.NIGHT2_REVOLVER); - - return config; - } - - public static GunConfiguration getRevolverBioConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 100000; - config.firingSound = "hbm:weapon.deagleShoot"; - config.reloadDuration = 53; - config.crosshair = Crosshair.CIRCLE; - - config.name = "bio"; - config.manufacturer = EnumGunManufacturer.RYAN; - - config.config.add(BulletConfigSyncingUtil.STEEL_HS); - config.config.add(BulletConfigSyncingUtil.GOLD_HS); - config.config.add(BulletConfigSyncingUtil.IRON_HS); - config.config.add(BulletConfigSyncingUtil.LEAD_HS); - config.config.add(BulletConfigSyncingUtil.DESH_HS); - - return config; - } - - //// // // // // ////// ////// ////// - // // // // // // // // // - //// // // // // //// // ////// - // // // // // // // // // - //// ////// ////// ////// ////// // ////// - - public static BulletConfiguration getRevIronConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.IRON)); - bullet.dmgMin = 8; - bullet.dmgMax = 10; - - bullet.spentCasing = CASING357.clone().register("357Iron").setColor(0xA8A8A8); - - return bullet; - } - - public static BulletConfiguration getRevLeadConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.LEAD)); - bullet.dmgMin = 18; - bullet.dmgMax = 22; - - bullet.spentCasing = CASING357.clone().register("357Lead").setColor(0x646470); - - return bullet; - } - - public static BulletConfiguration getRevNuclearConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NUCLEAR)); - bullet.dmgMin = 10; - bullet.dmgMax = 15; - - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(HbmPotion.radiation.id, 10 * 20, 4)); - - bullet.spentCasing = CASING357.clone().register("357Nuc").setColor(0xFEFEFE); - - return bullet; - } - - public static BulletConfiguration getRevGoldConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.GOLD)); - bullet.dmgMin = 25; - bullet.dmgMax = 28; - - bullet.spentCasing = CASING357.clone().register("357Gold").setColor(0xF9FF3E); - - return bullet; - } - - public static BulletConfiguration getRevDeshConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.DESH)); - bullet.dmgMin = 30; - bullet.dmgMax = 33; - - bullet.spentCasing = CASING357.clone().register("357Desh").setColor(0xF22929); - - return bullet; - } - - public static BulletConfiguration getRevSchrabidiumConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.SCHRABIDIUM)); - bullet.dmgMin = 10000; - bullet.dmgMax = 100000; - bullet.instakill = true; - - bullet.spentCasing = CASING357.clone().register("357Schrab").setColor(0x32FFFF); - - return bullet; - } - - public static BulletConfiguration getRevCursedConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.STEEL)); - bullet.dmgMin = 18; - bullet.dmgMax = 25; - - bullet.spentCasing = CASING357.clone().register("357Cursed").setColor(0x565656); - - return bullet; - } - - public static BulletConfiguration getRevNightmare1Config() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NIGHTMARE1)); - bullet.dmgMin = 1; - bullet.dmgMax = 100; - - bullet.spentCasing = CASING357.clone().register("357N1").setColor(0x3A3A3A); - - return bullet; - } - - public static BulletConfiguration getRevNightmare2Config() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NIGHTMARE2)); - bullet.spread *= 10; - bullet.bulletsMin = 4; - bullet.bulletsMax = 6; - bullet.dmgMin = 25; - bullet.dmgMax = 100; - bullet.doesRicochet = false; - bullet.destroysBlocks = true; - bullet.style = bullet.STYLE_BOLT; - bullet.trail = bullet.BOLT_NIGHTMARE; - - bullet.damageType = ModDamageSource.s_laser; - - bullet.spentCasing = CASINGNM; - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java deleted file mode 100644 index 05ad9902a..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ /dev/null @@ -1,398 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.entity.particle.EntityBSmokeFX; -import com.hbm.entity.projectile.EntityBoxcar; -import com.hbm.entity.projectile.EntityBuilding; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.entity.projectile.EntityDuchessGambit; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHitBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo44Magnum; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.RefStrings; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.potion.HbmPotion; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; - -public class Gun44MagnumFactory { - - private static final CasingEjector EJECTOR_PIP; - private static final SpentCasing CASING44; - - static { - EJECTOR_PIP = new CasingEjector().setMotion(Vec3.createVectorHelper(0, 0, -0.05)).setOffset(Vec3.createVectorHelper(0, -0.15, 0)).setAngleRange(0.01F, 0.05F).setAfterReload().setAmount(6); - CASING44 = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F, 1.0F, 1.5F).setBounceMotion(0.01F, 0.05F).setColor(SpentCasing.COLOR_CASE_44); - } - - public static GunConfiguration getBaseConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 10; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 0; - config.ammoCap = 6; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CLASSIC; - config.reloadSound = GunConfiguration.RSOUND_REVOLVER; - config.firingSound = "hbm:weapon.revolverShootAlt"; - config.reloadSoundEnd = false; - - config.config.addAll(HbmCollection.m44Normal); - - config.ejector = EJECTOR_PIP; - - return config; - } - - public static GunConfiguration getNovacConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 2500; - - config.name = "ifHorseshoe"; - config.manufacturer = EnumGunManufacturer.IF; - config.comment.add("Fallout New Vegas wasn't THAT good."); - - return config; - } - - public static final ResourceLocation scope_lilmac = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_44.png"); - - public static GunConfiguration getMacintoshConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 4000; - - config.name = "ifScope"; - config.manufacturer = EnumGunManufacturer.IF; - config.comment.add("Poppin' mentats like tic tacs"); - - config.allowsInfinity = false; - config.hasSights = true; - config.absoluteFOV = true; - config.zoomFOV = 0.25F; - config.scopeTexture = scope_lilmac; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.M44_PIP); - config.config.addAll(HbmCollection.m44Normal); - - return config; - } - - public static GunConfiguration getBlackjackConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 4000; - config.ammoCap = 5; - - config.allowsInfinity = false; - config.name = "ifVanity"; - config.manufacturer = EnumGunManufacturer.IF; - config.comment.add("Alcoholism is cool!"); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.M44_BJ); - config.config.addAll(HbmCollection.m44Normal); - - config.ejector = EJECTOR_PIP.clone().setAmount(5); - - return config; - } - - public static GunConfiguration getSilverConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 4000; - config.ammoCap = 6; - - config.allowsInfinity = false; - config.name = "ifStorm"; - config.manufacturer = EnumGunManufacturer.IF; - config.comment.add("Our friendship is based on abusive behaviour"); - config.comment.add("and mutual hate. It's not that complicated."); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.M44_SILVER); - config.config.addAll(HbmCollection.m44Normal); - - return config; - } - - public static GunConfiguration getRedConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 4000; - config.ammoCap = 8; - - config.allowsInfinity = false; - config.name = "ifPit"; - config.manufacturer = EnumGunManufacturer.IF; - config.comment.add("Explore the other side"); - config.comment.add("...from afar!"); - - config.config = new ArrayList(); - config.config.addAll(HbmCollection.m44All); - - config.ejector = EJECTOR_PIP.clone().setAmount(64); - - return config; - } - - public static BulletConfiguration getNoPipConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.STOCK)); - bullet.dmgMin = 18; - bullet.dmgMax = 26; - - bullet.spentCasing = CASING44.clone().register("44NoPip"); - - return bullet; - } - - public static BulletConfiguration getNoPipAPConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.AP)); - bullet.dmgMin = 25; - bullet.dmgMax = 32; - bullet.wear = 15; - bullet.leadChance = 10; - - bullet.spentCasing = CASING44.clone().register("44AP"); - - return bullet; - } - - public static BulletConfiguration getNoPipDUConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.DU)); - bullet.dmgMin = 28; - bullet.dmgMax = 40; - bullet.wear = 25; - bullet.leadChance = 50; - - bullet.spentCasing = CASING44.clone().register("44DU"); - - return bullet; - } - - public static BulletConfiguration getPhosphorusConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.PHOSPHORUS)); - bullet.dmgMin = 18; - bullet.dmgMax = 26; - bullet.wear = 15; - bullet.incendiary = 5; - bullet.doesPenetrate = false; - - PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); - eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(eff)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } - }; - - bullet.spentCasing = CASING44.clone().register("44Phos"); - - return bullet; - } - - public static BulletConfiguration getNoPipStarConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.STAR)); - bullet.dmgMin = 42; - bullet.dmgMax = 50; - bullet.wear = 25; - bullet.leadChance = 100; - - bullet.spentCasing = CASING44.clone().register("44Star"); - - return bullet; - } - - public static BulletConfiguration getPipConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.PIP)); - bullet.dmgMin = 30; - bullet.dmgMax = 36; - bullet.wear = 25; - bullet.doesPenetrate = false; - - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(!bullet.worldObj.isRemote) { - EntityBoxcar pippo = new EntityBoxcar(bullet.worldObj); - pippo.posX = hit.posX; - pippo.posY = hit.posY + 50; - pippo.posZ = hit.posZ; - - for(int j = 0; j < 50; j++) { - EntityBSmokeFX fx = new EntityBSmokeFX(bullet.worldObj, pippo.posX + (bullet.worldObj.rand.nextDouble() - 0.5) * 4, pippo.posY + (bullet.worldObj.rand.nextDouble() - 0.5) * 12, pippo.posZ + (bullet.worldObj.rand.nextDouble() - 0.5) * 4, 0, 0, 0); - bullet.worldObj.spawnEntityInWorld(fx); - } - bullet.worldObj.spawnEntityInWorld(pippo); - - bullet.worldObj.playSoundEffect(pippo.posX, - pippo.posY + 50, - pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F); - } - } - }; - - bullet.spentCasing = CASING44.clone().register("44Pip").setColor(0x532C64); - - return bullet; - } - - public static BulletConfiguration getBJConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.BJ)); - bullet.dmgMin = 30; - bullet.dmgMax = 36; - bullet.wear = 25; - bullet.doesPenetrate = false; - - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(!bullet.worldObj.isRemote) { - EntityDuchessGambit pippo = new EntityDuchessGambit(bullet.worldObj); - pippo.posX = hit.posX; - pippo.posY = hit.posY + 50; - pippo.posZ = hit.posZ; - - for(int j = 0; j < 150; j++) { - EntityBSmokeFX fx = new EntityBSmokeFX(bullet.worldObj, pippo.posX + (bullet.worldObj.rand.nextDouble() - 0.5) * 7, pippo.posY + (bullet.worldObj.rand.nextDouble() - 0.5) * 8, pippo.posZ + (bullet.worldObj.rand.nextDouble() - 0.5) * 18, 0, 0, 0); - bullet.worldObj.spawnEntityInWorld(fx); - } - bullet.worldObj.spawnEntityInWorld(pippo); - - bullet.worldObj.playSoundEffect(pippo.posX, - pippo.posY + 50, - pippo.posZ, "hbm:weapon.boat", 100F, 1F); - } - } - - }; - - bullet.spentCasing = CASING44.clone().register("44BJ").setColor(0x632B2C); - - return bullet; - } - - public static BulletConfiguration getSilverStormConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.SILVER)); - bullet.dmgMin = 30; - bullet.dmgMax = 36; - bullet.wear = 25; - bullet.doesPenetrate = false; - - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(!bullet.worldObj.isRemote) { - EntityBuilding pippo = new EntityBuilding(bullet.worldObj); - pippo.posX = hit.posX; - pippo.posY = hit.posY + 50; - pippo.posZ = hit.posZ; - - for(int j = 0; j < 150; j++) { - EntityBSmokeFX fx = new EntityBSmokeFX(bullet.worldObj, pippo.posX + (bullet.worldObj.rand.nextDouble() - 0.5) * 15, pippo.posY + (bullet.worldObj.rand.nextDouble() - 0.5) * 15, pippo.posZ + (bullet.worldObj.rand.nextDouble() - 0.5) * 15, 0, 0, 0); - bullet.worldObj.spawnEntityInWorld(fx); - } - bullet.worldObj.spawnEntityInWorld(pippo); - - bullet.worldObj.playSoundEffect(pippo.posX, - pippo.posY + 50, - pippo.posZ, "hbm:block.debris", 100F, 1F); - } - } - - }; - - bullet.spentCasing = CASING44.clone().register("44Silver").setColor(0x2B5963); - - return bullet; - } - - public static BulletConfiguration getRocketConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.ROCKET)); - bullet.velocity = 5; - bullet.explosive = 15F; - bullet.trail = 1; - - bullet.spentCasing = CASING44.clone().register("44Rocket"); - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java deleted file mode 100644 index 21e3db275..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo45ACP; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -public class Gun45ACPFactory { - - private static final SpentCasing CASING45; - - static { - CASING45 = new SpentCasing(CasingType.STRAIGHT).setBounceMotion(0.01F, 0.05F).setScale(1.25F, 1.25F, 1F).setColor(SpentCasing.COLOR_CASE_BRASS).register("45ACP"); - } - - public static GunConfiguration getThompsonConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 2; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 30; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_SPLIT; - config.durability = 5000; - config.reloadSound = GunConfiguration.RSOUND_MAG; - config.firingSound = "hbm:weapon.rifleShoot"; - config.reloadSoundEnd = false; - - config.name = "tommy"; - config.manufacturer = EnumGunManufacturer.AUTO_ORDINANCE; - - config.config = new ArrayList(); - config.config.addAll(HbmCollection.acp45); - - return config; - } - - public static GunConfiguration getUACPistolConfig() { - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 4; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 8; - config.ammoCap = 16; - config.durability = 10000; - config.reloadType = 1; - config.allowsInfinity = true; - config.hasSights = true; - config.crosshair = Crosshair.CROSS; - config.reloadSound = "hbm:weapon.pistolReloadPB3"; - config.firingSound = "hbm:weapon.pistolFirePB3"; - config.reloadSoundEnd = true; - - config.name = "uacPistol"; - config.manufacturer = EnumGunManufacturer.UAC; - - config.config.addAll(HbmCollection.acp45); - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("SLIDE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 10))// Wait for hammer - .addKeyframe(new BusAnimationKeyframe(0, 0, -3.5, 40))// Slide back - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 40)))// Return - .addBus("HAMMER", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(15, 0, 0, 10)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 40)))); - - return config; - } - - public static GunConfiguration getUACSMGConfig() { - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 10; - config.firingDuration = 4; - config.ammoCap = 40; - config.durability = 40000; - config.reloadType = 1; - config.allowsInfinity = true; - config.hasSights = true; - config.crosshair = Crosshair.CROSS; - config.reloadSound = "hbm:weapon.SMGMagInPB3"; - config.firingSound = "hbm:weapon.SMGFirePB3"; - config.firingPitch = 1.15F; - config.reloadSoundEnd = true; - - config.name = "uacSMG"; - config.manufacturer = EnumGunManufacturer.UAC; - - config.config.addAll(HbmCollection.acp45); - - return config; - } - - static float inaccuracy = 5; - public static BulletConfiguration get45AutoConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_45.stackFromEnum(Ammo45ACP.STOCK)); - bullet.spread *= inaccuracy; - bullet.dmgMax = 12; - bullet.dmgMin = 16; - - bullet.spentCasing = CASING45; - - return bullet; - } - - public static BulletConfiguration get45AutoAPConfig() { - BulletConfiguration bullet = get45AutoConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_45.stackFromEnum(Ammo45ACP.AP)); - bullet.dmgMax = 18; - bullet.dmgMin = 26; - bullet.wear = 15; - bullet.leadChance = 10; - - bullet.spentCasing = CASING45; - - return bullet; - } - - public static BulletConfiguration get45AutoDUConfig() { - BulletConfiguration bullet = get45AutoConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_45.stackFromEnum(Ammo45ACP.DU)); - bullet.dmgMax = 30; - bullet.dmgMin = 44; - bullet.wear = 25; - bullet.leadChance = 50; - - bullet.spentCasing = CASING45; - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java deleted file mode 100644 index 191867b61..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ /dev/null @@ -1,545 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNT; -import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.potion.HbmPotion; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.IExtendedEntityProperties; - -public class Gun4GaugeFactory { - - private static final CasingEjector EJECTOR_SHOTGUN; - private static final SpentCasing CASING4GAUGE; - - static { - EJECTOR_SHOTGUN = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.4, 0)).setOffset(Vec3.createVectorHelper(-0.5, 0, 0.5)).setAngleRange(0.01F, 0.03F); - CASING4GAUGE = new SpentCasing(CasingType.SHOTGUN).setScale(2.5F).setBounceMotion(0.01F, 0.03F); - } - - private static GunConfiguration getShotgunConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 15; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 0; - config.ammoCap = 4; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.hasSights = true; - config.absoluteFOV = true; - config.zoomFOV = 0.5F; - config.crosshair = Crosshair.L_CIRCLE; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - - config.ejector = EJECTOR_SHOTGUN; - - return config; - } - - public static GunConfiguration getKS23Config() { - - GunConfiguration config = getShotgunConfig(); - - config.durability = 3000; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.revolverShootAlt"; - config.firingPitch = 0.65F; - - config.name = "ks23"; - config.manufacturer = EnumGunManufacturer.TULSKY; - - config.config = HbmCollection.g4; - - return config; - } - - public static GunConfiguration getSauerConfig() { - - GunConfiguration config = getShotgunConfig(); - - config.rateOfFire = 20; - config.ammoCap = 0; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.durability = 3000; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.sauergun"; - config.firingPitch = 1.0F; - - config.ejector = EJECTOR_SHOTGUN.clone().setDelay(12); - - config.name = "sauer"; - config.manufacturer = EnumGunManufacturer.CUBE; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("SAUER_RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) - ) - .addBus("SAUER_TILT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.0, 0, 0, 200)) // do nothing for 200ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 30, 150)) //tilt forward - .addKeyframe(new BusAnimationKeyframe(45, 0, 30, 150)) //tilt sideways - .addKeyframe(new BusAnimationKeyframe(45, 0, 30, 200)) //do nothing for 200ms (eject) - .addKeyframe(new BusAnimationKeyframe(0, 0, 30, 150)) //restore sideways - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150)) //restore forward - ) - .addBus("SAUER_COCK", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) //do nothing for 500ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 100)) //pull back lever for 100ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100)) //release lever for 100ms - ) - .addBus("SAUER_SHELL_EJECT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) //do nothing for 500ms - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 500)) //FLING! - ) - ); - - config.config = HbmCollection.g4; - - return config; - } - - public static BulletConfiguration get4GaugeConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.STOCK)); - bullet.dmgMin = 5; - bullet.dmgMax = 8; - bullet.bulletsMin *= 2; - bullet.bulletsMax *= 2; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaStock").setColor(0xFFD800, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeSlugConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.SLUG)); - bullet.dmgMin = 25; - bullet.dmgMax = 32; - bullet.wear = 7; - bullet.style = BulletConfiguration.STYLE_NORMAL; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaSlug").setColor(0xE01A1A, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeFlechetteConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.FLECHETTE)); - bullet.dmgMin = 8; - bullet.dmgMax = 15; - bullet.bulletsMin *= 2; - bullet.bulletsMax *= 2; - bullet.wear = 15; - bullet.style = BulletConfiguration.STYLE_FLECHETTE; - bullet.HBRC = 2; - bullet.LBRC = 95; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaFlech").setColor(0x1537FF, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeFlechettePhosphorusConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.FLECHETTE_PHOSPHORUS)); - bullet.dmgMin = 8; - bullet.dmgMax = 15; - bullet.bulletsMin *= 2; - bullet.bulletsMax *= 2; - bullet.wear = 15; - bullet.style = BulletConfiguration.STYLE_FLECHETTE; - bullet.HBRC = 2; - bullet.LBRC = 95; - bullet.incendiary = 5; - - PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); - eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(eff)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } - }; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaPhos").setColor(0xF6871A, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeExplosiveConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.EXPLOSIVE)); - bullet.velocity *= 2; - bullet.gravity *= 2; - bullet.dmgMin = 20; - bullet.dmgMax = 25; - bullet.wear = 25; - bullet.trail = 1; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaExp").setColor(0x3F8243, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeMiningConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.MINING)); - bullet.velocity *= 2; - bullet.gravity *= 2; - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 25; - bullet.trail = 1; - bullet.explosive = 0.0F; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - ExplosionNT explosion = new ExplosionNT(bullet.worldObj, null, bullet.posX, bullet.posY, bullet.posZ, 4); - explosion.atttributes.add(ExAttrib.ALLDROP); - explosion.atttributes.add(ExAttrib.NOHURT); - explosion.doExplosionA(); - explosion.doExplosionB(false); - - ExplosionLarge.spawnParticles(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, 15); - } - }; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaSem").setColor(0x5C5C5C, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeBalefireConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.BALEFIRE)); - bullet.velocity *= 2; - bullet.gravity *= 2; - bullet.dmgMin = 50; - bullet.dmgMax = 65; - bullet.wear = 25; - bullet.trail = 1; - bullet.explosive = 0.0F; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - ExplosionNT explosion = new ExplosionNT(bullet.worldObj, null, bullet.posX, bullet.posY, bullet.posZ, 6); - explosion.atttributes.add(ExAttrib.BALEFIRE); - explosion.doExplosionA(); - explosion.doExplosionB(false); - - ExplosionLarge.spawnParticles(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, 30); - } - }; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaBale").setColor(0x7BFF44, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration getGrenadeKampfConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.KAMPF)); - bullet.spread = 0.0F; - bullet.gravity = 0.0D; - bullet.wear = 15; - bullet.explosive = 3.5F; - bullet.style = BulletConfiguration.STYLE_GRENADE; - bullet.trail = 4; - bullet.vPFX = "smoke"; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaKampf").setColor(0xE7BA48, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration getGrenadeCanisterConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.CANISTER)); - bullet.spread = 0.0F; - bullet.gravity = 0.0D; - bullet.wear = 15; - bullet.explosive = 1F; - bullet.style = BulletConfiguration.STYLE_GRENADE; - bullet.trail = 4; - bullet.vPFX = "smoke"; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - if(bullet.ticksExisted > 10) { - bullet.setDead(); - - for(int i = 0; i < 50; i++) { - - EntityBulletBase bolt = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.M44_AP); - bolt.setPosition(bullet.posX, bullet.posY, bullet.posZ); - bolt.setThrowableHeading(bullet.motionX, bullet.motionY, bullet.motionZ, 0.25F, 0.1F); - bullet.worldObj.spawnEntityInWorld(bolt); - } - } - } - } - }; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaCan").setColor(0xCACACA, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeSleekConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardAirstrikeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.SLEEK)); - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaIF").setColor(0x1D1D1D, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeClawConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.CLAW)); - bullet.dmgMin = 6; - bullet.dmgMax = 9; - bullet.bulletsMin *= 2; - bullet.bulletsMax *= 2; - bullet.leadChance = 100; - - bullet.bHurt = new IBulletHurtBehavior() { - - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) hit; - float f = living.getHealth(); - - if(f > 0) { - f = Math.max(0, f - 2); - living.setHealth(f); - - if(f == 0) - living.onDeath(ModDamageSource.causeBulletDamage(bullet, hit)); - } - } - } - }; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaClaw").setColor(0x5E38CC, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeVampireConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VAMPIRE)); - bullet.dmgMin = 6; - bullet.dmgMax = 9; - bullet.bulletsMin *= 2; - bullet.bulletsMax *= 2; - bullet.leadChance = 100; - bullet.style = BulletConfiguration.STYLE_FLECHETTE; - - bullet.bHurt = new IBulletHurtBehavior() { - - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) hit; - - IExtendedEntityProperties prop = player.getExtendedProperties("WitcheryExtendedPlayer"); - - NBTTagCompound blank = new NBTTagCompound(); - blank.setTag("WitcheryExtendedPlayer", new NBTTagCompound()); - - if(prop != null) { - prop.loadNBTData(blank); - } - } - } - }; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaVamp").setColor(0x278400, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeVoidConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VOID)); - bullet.dmgMin = 6; - bullet.dmgMax = 9; - bullet.bulletsMin *= 2; - bullet.bulletsMax *= 2; - bullet.leadChance = 0; - - bullet.bHurt = new IBulletHurtBehavior() { - - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) hit; - - player.inventory.dropAllItems(); - player.worldObj.newExplosion(bullet.shooter, player.posX, player.posY, player.posZ, 5.0F, true, true); - } - } - }; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaVoid").setColor(0x3F3F3F, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } - - public static BulletConfiguration get4GaugeQuackConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.QUACK)); - bullet.velocity *= 2D; - bullet.spread = 0.0F; - bullet.gravity = 0.0D; - bullet.wear = 10; - bullet.explosive = 1F; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.trail = 4; - bullet.vPFX = "explode"; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - if(bullet.ticksExisted % 2 == 0) { - - List creatures = bullet.worldObj.getEntitiesWithinAABB(EntityCreature.class, bullet.boundingBox.expand(10, 10, 10)); - - for(EntityCreature creature : creatures) { - - if(creature.getClass().getCanonicalName().startsWith("net.minecraft.entity.titan")) { - BulletConfigFactory.nuclearExplosion(creature, 0, 0, 0, ExplosionNukeSmall.PARAMS_TOTS); - - bullet.worldObj.removeEntity(creature); - bullet.worldObj.unloadEntities(new ArrayList() {{ add(creature); }}); - } - } - - } - } - } - }; - - bullet.spentCasing = CASING4GAUGE.clone().register("4GaDucc").setColor(0x1E1E1E, SpentCasing.COLOR_CASE_4GA); - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java deleted file mode 100644 index d03724f89..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.hbm.handler.guncfg; - -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo50AE; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -public class Gun50AEFactory { - - private static final CasingEjector EJECTOR_PISTOL; - private static final SpentCasing CASING50AE; - - static { - EJECTOR_PISTOL = new CasingEjector().setMotion(-0.3, 0.7, 0).setOffset(-0.5, 0, 0.5).setAngleRange(0.01F, 0.03F); - CASING50AE = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F).setBounceMotion(0.01F, 0.03F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(0.25F, 0.5D, 60, 20); - } - - public static GunConfiguration getBaseConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 10; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 0; - config.ammoCap = 7; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CLASSIC; - config.reloadSound = GunConfiguration.RSOUND_REVOLVER; - config.firingSound = "hbm:weapon.deagleShoot"; - config.reloadSoundEnd = false; - - return config; - } - - public static GunConfiguration getDeagleConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 2500; - - config.name = "deagle"; - config.manufacturer = EnumGunManufacturer.MAGNUM_R_IMI; - - config.absoluteFOV = true; - config.zoomFOV = 0.5F; - - config.hasSights = true; - config.config = HbmCollection.ae50; - - config.ejector = EJECTOR_PISTOL; - - return config; - } - - private static float inaccuracy = 0.0005F; - public static BulletConfiguration get50AEConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.STOCK)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 28; - bullet.dmgMax = 32; - - bullet.spentCasing = CASING50AE.clone().register("50AEStock"); - - return bullet; - } - - public static BulletConfiguration get50APConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.AP)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 30; - bullet.dmgMax = 36; - bullet.leadChance = 10; - bullet.wear = 15; - - bullet.spentCasing = CASING50AE.clone().register("50AEAP"); - - return bullet; - } - - public static BulletConfiguration get50DUConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.DU)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 38; - bullet.dmgMax = 46; - bullet.leadChance = 50; - bullet.wear = 25; - - bullet.spentCasing = CASING50AE.clone().register("50AEDU"); - - return bullet; - } - - public static BulletConfiguration get50StarConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.STAR)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 52; - bullet.dmgMax = 60; - bullet.leadChance = 100; - bullet.wear = 25; - - bullet.spentCasing = CASING50AE.clone().register("50AEStar"); - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java deleted file mode 100644 index c7d290c35..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ /dev/null @@ -1,478 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHitBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo50BMG; -import com.hbm.items.ItemAmmoEnums.AmmoLunaticSniper; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.RefStrings; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.potion.HbmPotion; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; -import com.hbm.util.ContaminationUtil; -import com.hbm.util.ContaminationUtil.ContaminationType; -import com.hbm.util.ContaminationUtil.HazardType; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ResourceLocation; - -public class Gun50BMGFactory { - - private static final CasingEjector EJECTOR_BMG; - private static final CasingEjector EJECTOR_SNIPER; - private static final SpentCasing CASING50BMG; - private static final SpentCasing CASINGLUNA; - - static { - EJECTOR_BMG = new CasingEjector().setMotion(-0.35, 0.9, 0).setOffset(-0.45, -0.2, 0.35).setAngleRange(0.01F, 0.05F); - EJECTOR_SNIPER = new CasingEjector().setMotion(-2, 0.15, 0).setOffset(-0.45, -0.2, 0.35).setAngleRange(0.02F, 0.05F); - CASING50BMG = new SpentCasing(CasingType.BOTTLENECK).setScale(3F).setBounceMotion(0.01F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(0.125F, 0.5D, 60, 20); - CASINGLUNA = new SpentCasing(CasingType.BOTTLENECK).setScale(4F).setBounceMotion(0.02F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(0.125F, 0.5D, 60, 30); - } - - public static BulletConfiguration getLunaticSabotRound() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.SABOT)); - bullet.spread = 0.0F; - bullet.dmgMax = 500F; - bullet.dmgMin = 450F; - bullet.headshotMult = 2.5F; - bullet.wear = 2000; - bullet.velocity = 10F; - bullet.doesPenetrate = true; - bullet.leadChance = 20; - - bullet.blockDamage = false; - bullet.bImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 2.0F, false, false); - - bullet.spentCasing = CASINGLUNA.clone().register("LunaStock"); - - return bullet; - } - - public static BulletConfiguration getLunaticIncendiaryRound() { - BulletConfiguration bullet = getLunaticSabotRound().clone(); - - bullet.ammo = new ComparableStack(ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.INCENDIARY)); - - bullet.ammo.meta = 1; - bullet.incendiary = 10; - bullet.bImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 5.0F, true, false); - - bullet.spentCasing = CASINGLUNA.clone().register("LunaInc"); - - return bullet; - } - - public static BulletConfiguration getLunaticExplosiveRound() { - BulletConfiguration bullet = getLunaticSabotRound().clone(); - - bullet.ammo = new ComparableStack(ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.EXPLOSIVE)); - - bullet.ammo.meta = 2; - bullet.explosive = 25; - bullet.destroysBlocks = true; - bullet.bImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 25.0F, true, false); - - bullet.spentCasing = CASINGLUNA.clone().register("LunaExp"); - - return bullet; - } - - public static GunConfiguration getAR15Config() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 50; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.NONE; - config.durability = 100_000; - config.reloadSound = GunConfiguration.RSOUND_MAG; - config.firingSound = "hbm:turret.howard_fire"; - - config.name = "ar15_50"; - config.manufacturer = EnumGunManufacturer.ARMALITE; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.BMG50_FLECHETTE_AM); - config.config.add(BulletConfigSyncingUtil.BMG50_FLECHETTE_PO); - config.config.add(BulletConfigSyncingUtil.BMG50_FLECHETTE_NORMAL); - config.config.add(BulletConfigSyncingUtil.BMG50_NORMAL); - config.config.add(BulletConfigSyncingUtil.BMG50_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.BMG50_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.BMG50_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.BMG50_AP); - config.config.add(BulletConfigSyncingUtil.BMG50_DU); - config.config.add(BulletConfigSyncingUtil.BMG50_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_BMG50); - config.config.add(BulletConfigSyncingUtil.BMG50_SLEEK); - - config.ejector = EJECTOR_BMG; - - return config; - } - - public static GunConfiguration getM2Config() { - GunConfiguration config = getAR15Config(); - - config.rateOfFire = 2; - config.durability *= 10; - config.ammoCap = 0; - config.crosshair = Crosshair.L_BOX; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.hasSights = true; - config.zoomFOV = 0.66F; - config.allowsInfinity = true; - config.durability = 10_000; - config.firingSound = "hbm:turret.chekhov_fire"; - config.equipSound = "hbm:turret.howard_reload"; - - config.name = "m2"; - config.manufacturer = EnumGunManufacturer.COLT; - config.comment.add("\"A single man can do unbelievable things..."); - config.comment.add("A single man with a .50 cal machine gun can do even more.\""); - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - ); - - config.ejector = EJECTOR_BMG; - - config.config.clear(); - config.config.addAll(HbmCollection.bmg50); - - return config; - } - - public static final ResourceLocation scope_luna = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_luna.png"); - - public static GunConfiguration getLunaticMarksman() { - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 15; - config.reloadDuration = 15; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.roundsPerCycle = 1; - config.firingSound = "hbm:weapon.hicalShot"; - config.firingPitch = 0.75F; - config.ammoCap = 4; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.hasSights = true; - config.zoomFOV = 0.2F; //x5 magnification - config.scopeTexture = scope_luna; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CLASSIC; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.reloadSoundEnd = true; - config.durability = 500_000; - - config.name = "lunaSniper"; - config.manufacturer = EnumGunManufacturer.LUNA; - config.comment.add("\"You do not spark joy\""); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.ROUND_LUNA_SNIPER_SABOT); - config.config.add(BulletConfigSyncingUtil.ROUND_LUNA_SNIPER_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.ROUND_LUNA_SNIPER_EXPLOSIVE); - - config.animations.put(AnimType.CYCLE, - new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-0.45, 0.15, 0, 40)) // Moves back and raise slightly - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75))) // Then forward again - .addBus("EJECT", new BusAnimationSequence().addKeyframe(new BusAnimationKeyframe(0, 0, 0, 30)) // Wait - .addKeyframe(new BusAnimationKeyframe(50, 0, 0, 120)))); // Fly // out - - config.ejector = EJECTOR_SNIPER; - return config; - } - - static float inaccuracy = 2.5F; - public static BulletConfiguration get50BMGConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STOCK)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 30; - bullet.dmgMax = 36; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGStock"); - - return bullet; - } - - public static BulletConfiguration get50BMGFireConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.INCENDIARY)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 30; - bullet.dmgMax = 36; - bullet.wear = 15; - bullet.incendiary = 5; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGInc"); - - return bullet; - } - - public static BulletConfiguration get50BMGPhosphorusConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.PHOSPHORUS)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 30; - bullet.dmgMax = 36; - bullet.wear = 15; - bullet.incendiary = 5; - bullet.doesPenetrate = false; - - PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); - eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(eff)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } - }; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGPhos"); - - return bullet; - } - - public static BulletConfiguration get50BMGExplosiveConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.EXPLOSIVE)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 60; - bullet.dmgMax = 64; - bullet.wear = 25; - bullet.explosive = 1; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGExp"); - - return bullet; - } - - public static BulletConfiguration get50BMGAPConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.AP)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 62; - bullet.dmgMax = 68; - bullet.wear = 15; - bullet.leadChance = 10; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGAP"); - - return bullet; - } - - public static BulletConfiguration get50BMGDUConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.DU)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 80; - bullet.dmgMax = 86; - bullet.wear = 25; - bullet.leadChance = 50; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGDU"); - - return bullet; - } - - public static BulletConfiguration get50BMGStarConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STAR)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 98; - bullet.dmgMax = 102; - bullet.wear = 25; - bullet.leadChance = 100; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGStar"); - - return bullet; - } - - public static BulletConfiguration get50BMGSleekConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.SLEEK)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 50; - bullet.dmgMax = 70; - bullet.wear = 10; - bullet.leadChance = 100; - bullet.doesPenetrate = false; - - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(hit.posX, hit.posY + 30 + meteor.worldObj.rand.nextInt(10), hit.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } - }; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - if(y == -1) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(bullet.posX, bullet.posY + 30 + meteor.worldObj.rand.nextInt(10), bullet.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } - }; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGIF"); - - return bullet; - } - - public static BulletConfiguration get50BMGFlechetteConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.FLECHETTE)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 50; - bullet.dmgMax = 54; - bullet.style = bullet.STYLE_FLECHETTE; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGFlech"); - - return bullet; - } - - public static BulletConfiguration get50BMGFlechetteAMConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.FLECHETTE_AM)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 60; - bullet.dmgMax = 64; - bullet.style = bullet.STYLE_FLECHETTE; - - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - ContaminationUtil.contaminate((EntityLivingBase) hit, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 100F); - } - } - }; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGAM"); - - return bullet; - } - - public static BulletConfiguration get50BMGFlechettePOConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.FLECHETTE_PO)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 60; - bullet.dmgMax = 64; - bullet.style = bullet.STYLE_FLECHETTE; - - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - ContaminationUtil.contaminate((EntityLivingBase) hit, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 50F); - } - } - }; - - bullet.spentCasing = CASING50BMG.clone().register("50BMGPO"); - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java deleted file mode 100644 index dec4e5b73..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ /dev/null @@ -1,456 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHitBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.Ammo556mm; -import com.hbm.items.ModItems; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.potion.HbmPotion; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; - -public class Gun556mmFactory { - - private static final CasingEjector EJECTOR_RIFLE; - private static final CasingEjector EJECTOR_GRENADE; - private static final SpentCasing CASING556; - - static { - EJECTOR_RIFLE = new CasingEjector().setMotion(-0.35, 0.6, 0).setOffset(-0.35, 0, 0.35).setAngleRange(0.01F, 0.03F); - EJECTOR_GRENADE = new CasingEjector().setAngleRange(0.02F, 0.03F).setDelay(30); - CASING556 = new SpentCasing(CasingType.BOTTLENECK).setScale(1.25F).setBounceMotion(0.01F, 0.03F).setColor(SpentCasing.COLOR_CASE_BRASS); - } - - public static GunConfiguration getEuphieConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 2; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.hasSights = false; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 40; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CROSS; - config.durability = 10000; - config.reloadSound = GunConfiguration.RSOUND_MAG; - config.firingSound = "hbm:weapon.hksShoot"; - config.reloadSoundEnd = false; - - config.name = "baeAR"; - config.manufacturer = EnumGunManufacturer.BAE; - - config.comment.add("Why is this gun so sticky?"); - - //config.config = new ArrayList(); - //config.config.add(BulletConfigSyncingUtil.R556_GOLD); - - config.config = HbmCollection.r556; - - return config; - } - - public static GunConfiguration getSPIWConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 3; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.hasSights = true; - config.reloadDuration = 25; - config.firingDuration = 0; - config.ammoCap = 20; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_BOX; - config.durability = 7000; - config.reloadSound = GunConfiguration.RSOUND_MAG; - config.firingSound = "hbm:weapon.hksShoot"; - config.reloadSoundEnd = false; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - ); - - config.name = "spiw"; - config.manufacturer = EnumGunManufacturer.H_AND_R; - - config.comment.add("Launch some flechettes in the breeze"); - config.comment.add("Find his arms nailed to the trees"); - config.comment.add("Napalm sticks to kids"); - - config.config = HbmCollection.r556Flechette; - - config.ejector = EJECTOR_RIFLE; - - return config; - } - - public static GunConfiguration getGLauncherConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 60; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.hasSights = true; - config.reloadDuration = 40; - config.firingDuration = 0; - config.ammoCap = 0; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCUMFLEX; - config.firingSound = "hbm:weapon.glauncher"; - config.reloadSound = GunConfiguration.RSOUND_GRENADE; - config.reloadSoundEnd = false; - - config.config = HbmCollection.grenade; - - config.ejector = EJECTOR_GRENADE; - - return config; - } - - private static float inaccuracy = 2.5F; - public static BulletConfiguration get556Config() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.STOCK)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 16; - bullet.dmgMax = 20; - - bullet.spentCasing = CASING556.clone().register("556Stock"); - - return bullet; - } - - public static BulletConfiguration get556GoldConfig() { - - BulletConfiguration bullet = get556Config(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.GOLD)); - bullet.dmgMin = 250; - bullet.dmgMax = 320; - bullet.spread = 0.0F; - - bullet.spentCasing = null; - - return bullet; - } - - public static BulletConfiguration get556PhosphorusConfig() { - - BulletConfiguration bullet = get556Config(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.PHOSPHORUS)); - bullet.wear = 15; - bullet.incendiary = 5; - bullet.doesPenetrate = false; - - PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); - eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(eff)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } - }; - - bullet.spentCasing = CASING556.clone().register("556Phos"); - - return bullet; - } - - public static BulletConfiguration get556APConfig() { - - BulletConfiguration bullet = get556Config(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.AP)); - bullet.dmgMin = 20; - bullet.dmgMax = 26; - bullet.wear = 15; - bullet.leadChance = 10; - - bullet.spentCasing = CASING556.clone().register("556AP"); - - return bullet; - } - - public static BulletConfiguration get556DUConfig() { - - BulletConfiguration bullet = get556Config(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.DU)); - bullet.dmgMin = 24; - bullet.dmgMax = 32; - bullet.wear = 25; - bullet.leadChance = 50; - - bullet.spentCasing = CASING556.clone().register("556DU"); - - return bullet; - } - - public static BulletConfiguration get556StarConfig() { - - BulletConfiguration bullet = get556Config(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.STAR)); - bullet.dmgMin = 30; - bullet.dmgMax = 36; - bullet.wear = 25; - bullet.leadChance = 100; - - bullet.spentCasing = CASING556.clone().register("556Star"); - - return bullet; - } - - public static BulletConfiguration get556SleekConfig() { - - BulletConfiguration bullet = get556Config(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.SLEEK)); - bullet.dmgMin = 45; - bullet.dmgMax = 50; - bullet.wear = 10; - bullet.leadChance = 100; - bullet.doesPenetrate = false; - - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(hit.posX, hit.posY + 30 + meteor.worldObj.rand.nextInt(10), hit.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } - }; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - if(y == -1) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(bullet.posX, bullet.posY + 30 + meteor.worldObj.rand.nextInt(10), bullet.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } - }; - - bullet.spentCasing = CASING556.clone().register("556IF"); - - return bullet; - } - - public static BulletConfiguration get556TracerConfig() { - - BulletConfiguration bullet = get556Config(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.TRACER)); - bullet.vPFX = "reddust"; - - bullet.spentCasing = CASING556.clone().register("556Trac"); - - return bullet; - } - - public static BulletConfiguration get556FlechetteConfig() { - - BulletConfiguration bullet = get556Config(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE)); - bullet.dmgMin = 26; - bullet.dmgMax = 32; - bullet.HBRC = 2; - bullet.LBRC = 95; - bullet.wear = 15; - bullet.style = BulletConfiguration.STYLE_FLECHETTE; - bullet.doesPenetrate = false; - - bullet.spentCasing = CASING556.clone().register("556Flec"); - - return bullet; - } - - public static BulletConfiguration get556FlechetteIncendiaryConfig() { - - BulletConfiguration bullet = get556FlechetteConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_INCENDIARY)); - bullet.incendiary = 5; - - bullet.spentCasing = CASING556.clone().register("556FlecInc"); - - return bullet; - } - - public static BulletConfiguration get556FlechettePhosphorusConfig() { - - BulletConfiguration bullet = get556FlechetteConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_PHOSPHORUS)); - bullet.incendiary = 5; - - PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); - eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(eff)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } - }; - - bullet.spentCasing = CASING556.clone().register("556FlecPhos"); - - return bullet; - } - - public static BulletConfiguration get556FlechetteDUConfig() { - - BulletConfiguration bullet = get556FlechetteConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_DU)); - bullet.dmgMin = 46; - bullet.dmgMax = 52; - bullet.wear = 25; - bullet.leadChance = 50; - bullet.doesPenetrate = true; - - bullet.spentCasing = CASING556.clone().register("556FlecDU"); - - return bullet; - } - - public static BulletConfiguration get556FlechetteSleekConfig() { - - BulletConfiguration bullet = get556FlechetteConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_SLEEK)); - bullet.dmgMin = 45; - bullet.dmgMax = 50; - bullet.wear = 10; - bullet.leadChance = 50; - bullet.doesPenetrate = false; - - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(hit.posX, hit.posY + 30 + meteor.worldObj.rand.nextInt(10), hit.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } - }; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - if(y == -1) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(bullet.posX, bullet.posY + 30 + meteor.worldObj.rand.nextInt(10), bullet.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } - }; - - bullet.spentCasing = CASING556.clone().register("556FlecIF"); - - return bullet; - } - - public static BulletConfiguration get556KConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.K)); - bullet.dmgMin = 0; - bullet.dmgMax = 0; - bullet.maxAge = 0; - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun5mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun5mmFactory.java deleted file mode 100644 index 88c83cda1..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun5mmFactory.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.hbm.handler.guncfg; - -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.Ammo5mm; -import com.hbm.items.ModItems; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -public class Gun5mmFactory { - - private static final CasingEjector EJECTOR_MINIGUN; - private static final SpentCasing CASING5MM; - - static { - EJECTOR_MINIGUN = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.2, 0.35).setAngleRange(0.01F, 0.03F).setAmount(5); - CASING5MM = new SpentCasing(CasingType.STRAIGHT).setScale(1.25F).setBounceMotion(0.05F, 0.02F).setColor(SpentCasing.COLOR_CASE_BRASS).setMaxAge(100); - } - - public static GunConfiguration getMinigunConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 5; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 0; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCLE; - config.durability = 10000; - config.firingSound = "hbm:weapon.lacunaeShoot"; - - config.config = HbmCollection.r5; - - config.ejector = EJECTOR_MINIGUN; - - return config; - } - - public static GunConfiguration get53Config() { - - GunConfiguration config = getMinigunConfig(); - - config.name = "cz53"; - config.manufacturer = EnumGunManufacturer.ROCKWELL; - - return config; - } - - public static GunConfiguration get57Config() { - - GunConfiguration config = getMinigunConfig(); - - config.durability = 15000; - config.name = "cz57"; - config.manufacturer = EnumGunManufacturer.ROCKWELL; - - return config; - } - - public static GunConfiguration getLacunaeConfig() { - - GunConfiguration config = getMinigunConfig(); - - config.durability = 25000; - config.name = "lacunae"; - config.manufacturer = EnumGunManufacturer.ROCKWELL_U; - - config.config = HbmCollection.r5Bolt; - - return config; - } - - private static float inaccuracy = 10; - public static BulletConfiguration get5mmConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STOCK)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 12; - bullet.dmgMax = 14; - - bullet.spentCasing = CASING5MM.clone().register("5mmStock"); - - return bullet; - } - - public static BulletConfiguration get5mmExplosiveConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.EXPLOSIVE)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 30; - bullet.dmgMax = 32; - bullet.explosive = 1F; - bullet.wear = 25; - - bullet.spentCasing = CASING5MM.clone().register("5mmExp"); - - return bullet; - } - - public static BulletConfiguration get5mmDUConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.DU)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 36; - bullet.dmgMax = 40; - bullet.wear = 25; - bullet.leadChance = 50; - - bullet.spentCasing = CASING5MM.clone().register("5mmDU"); - - return bullet; - } - - public static BulletConfiguration get5mmStarConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STAR)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 46; - bullet.dmgMax = 50; - bullet.wear = 25; - bullet.leadChance = 100; - - bullet.spentCasing = CASING5MM.clone().register("5mmStar"); - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java deleted file mode 100644 index 89d7f2c7c..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.Ammo75Bolt; -import com.hbm.items.ModItems; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.potion.HbmPotion; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; - -public class Gun75BoltFactory { - - public static GunConfiguration getBolterConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 2; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.hasSights = false; - config.reloadDuration = 40; - config.firingDuration = 0; - config.ammoCap = 30; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.NONE; - config.durability = 10000; - config.reloadSound = GunConfiguration.RSOUND_MAG; - config.firingSound = "hbm:weapon.hksShoot"; - config.reloadSoundEnd = false; - config.showAmmo = false; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - .addBus("EJECT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 75)) - ) - ); - - config.animations.put(AnimType.RELOAD, new BusAnimation() - .addBus("TILT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 250)) - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 1500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) - ) - .addBus("MAG", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 500)) - .addKeyframe(new BusAnimationKeyframe(1, 0, 1, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) - ) - ); - - config.name = "bolter"; - config.manufacturer = EnumGunManufacturer.CERIX; - - config.config = HbmCollection.b75; - - return config; - } - - private static float inaccuracy = 0.5F; - public static BulletConfiguration get75BoltConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_75bolt.stackFromEnum(Ammo75Bolt.STOCK)); - bullet.ammoCount = 30; - bullet.spread *= inaccuracy; - bullet.dmgMin = 74; - bullet.dmgMax = 82; - bullet.doesRicochet = false; - bullet.explosive = 0.25F; - - bullet.bHurt = new IBulletHurtBehavior() { - - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) hit; - float f = living.getHealth(); - - if(f > 0) { - f = Math.max(0, f - 2); - living.setHealth(f); - - if(f == 0) - living.onDeath(ModDamageSource.lead); - } - } - } - }; - - return bullet; - } - - public static BulletConfiguration get75BoltIncConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_75bolt.stackFromEnum(Ammo75Bolt.INCENDIARY)); - bullet.ammoCount = 30; - bullet.spread *= inaccuracy; - bullet.dmgMin = 72; - bullet.dmgMax = 76; - bullet.doesRicochet = false; - bullet.explosive = 0.25F; - - bullet.incendiary = 5; - bullet.doesPenetrate = false; - - PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); - eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(eff)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } - }; - - return bullet; - } - - public static BulletConfiguration get75BoltHEConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_75bolt.stackFromEnum(Ammo75Bolt.HE)); - bullet.ammoCount = 30; - bullet.spread *= inaccuracy; - bullet.dmgMin = 94; - bullet.dmgMax = 100; - bullet.doesRicochet = false; - bullet.explosive = 2.5F; - bullet.blockDamage = false; - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java deleted file mode 100644 index d5da7444f..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java +++ /dev/null @@ -1,239 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo762NATO; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.potion.HbmPotion; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.potion.PotionEffect; - -public class Gun762mmFactory { - - private static final CasingEjector EJECTOR_RIFLE; - private static final SpentCasing CASING762NATO; - - static { - EJECTOR_RIFLE = new CasingEjector().setMotion(-0.35, 0.6, 0).setOffset(-0.35, 0, 0.35).setAngleRange(0.01F, 0.03F); - CASING762NATO = new SpentCasing(CasingType.BOTTLENECK).setScale(1.7F).setBounceMotion(0.01F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS); - } - - public static GunConfiguration getCalamityConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 50; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.NONE; - config.durability = 15 * 50 * 10; //15 * capacity * default wear - config.reloadSound = GunConfiguration.RSOUND_MAG; - config.firingSound = "hbm:weapon.calShoot"; - config.reloadSoundEnd = false; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - ); - - config.animations.put(AnimType.RELOAD, new BusAnimation() - .addBus("MAG", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, -1, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) - ) - ); - - config.name = "mg3"; - config.manufacturer = EnumGunManufacturer.WGW; - - config.config = HbmCollection.r762; - - config.ejector = EJECTOR_RIFLE; - - return config; - } - - public static GunConfiguration getUACDMRConfig() { - final GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 4; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 30; - config.firingDuration = 8; - config.ammoCap = 30; - config.durability = 30000; - config.reloadType = 1; - config.allowsInfinity = true; - config.hasSights = true; - config.crosshair = Crosshair.CROSS; - config.reloadSound = "hbm:weapon.DMRMagInPB3"; - config.firingSound = "hbm:weapon.DMRShootPB3Alt"; - config.reloadSoundEnd = true; - - config.name = "uacDMR"; - config.manufacturer = EnumGunManufacturer.UAC; - - config.config.addAll(HbmCollection.r762); - - config.ejector = EJECTOR_RIFLE; - - return config; - } - - public static GunConfiguration getUACCarbineConfig() { - final GunConfiguration config = getUACDMRConfig(); - - config.rateOfFire = 2; - config.reloadDuration = 20; - config.ammoCap = 40; - config.durability = 40000; - config.crosshair = Crosshair.SPLIT; - config.reloadSound = "hbm:weapon.carbineMagInPB3"; - config.firingSound = "hbm:weapon.carbineShootPB3"; - - config.name = "uacCarbine"; - - return config; - } - - public static GunConfiguration getUACLMGConfig() { - final GunConfiguration config = getUACCarbineConfig(); - - config.ammoCap = 60; - config.durability = 50000; - config.crosshair = Crosshair.BOX; - config.reloadSound = "hbm:weapon.LMGMagInPB3"; - config.firingSound = "hbm:weapon.LMGShootPB3Alt"; - - config.name = "uacLMG"; - - return config; - } - - public static GunConfiguration getM60Config() { - final GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 2; - config.durability = 10000; - config.roundsPerCycle = 1; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.ammoCap = 0; - config.allowsInfinity = true; - config.hasSights = true; - config.crosshair = Crosshair.L_BOX; - config.firingSound = "hbm:weapon.LMGShootPB3"; - - config.name = "m60"; - config.manufacturer = EnumGunManufacturer.SACO; - config.comment.add("\"Get some!\""); - config.comment.add(" ~ Stuart Brown (aka Ahoy)"); - config.config.addAll(HbmCollection.r762); - - config.ejector = EJECTOR_RIFLE; - - return config; - } - - public static BulletConfiguration get762NATOConfig() { - final BulletConfiguration bullet = Gun556mmFactory.get556Config().clone(); - - bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.STOCK)); - bullet.dmgMax = 20; - bullet.dmgMin = 24; - bullet.velocity *= 2.5; - bullet.maxAge *= 2; - bullet.spread /= 2; - - bullet.spentCasing = CASING762NATO.clone().register("762NATOStock"); - - return bullet; - } - - public static BulletConfiguration get762APConfig() { - final BulletConfiguration bullet = get762NATOConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.AP)); - bullet.dmgMax = 24; - bullet.dmgMin = 28; - - bullet.spentCasing = CASING762NATO.clone().register("762NATOAP"); - - return bullet; - } - - public static BulletConfiguration get762DUConfig() { - final BulletConfiguration bullet = get762NATOConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.DU)); - bullet.dmgMax = 36; - bullet.dmgMin = 40; - - bullet.spentCasing = CASING762NATO.clone().register("762NATODU"); - - return bullet; - } - - public static BulletConfiguration get762TracerConfig() { - final BulletConfiguration bullet = get762NATOConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.TRACER)); - bullet.vPFX = "reddust"; - - bullet.spentCasing = CASING762NATO.clone().register("762NATOTrac"); - - return bullet; - } - - public static BulletConfiguration get762WPConfig() { - final BulletConfiguration bullet = get762NATOConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.PHOSPHORUS)); - bullet.setToFire(20 * 5); - bullet.vPFX = "reddust"; - final PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); - eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(eff)); - - bullet.spentCasing = CASING762NATO.clone().register("762NATOPhos"); - - return bullet; - } - - public static BulletConfiguration get762BlankConfig() { - final BulletConfiguration bullet = get762NATOConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.BLANK)); - bullet.dmgMax = 0; - bullet.dmgMin = 0; - bullet.maxAge = 0; - - bullet.spentCasing = CASING762NATO.clone().register("762NATOK"); - - return bullet; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java deleted file mode 100644 index 827950fd8..000000000 --- a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo9mm; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -public class Gun9mmFactory { - - private static final CasingEjector EJECTOR_SMG; - private static final SpentCasing CASING9MM; - - static { - EJECTOR_SMG = new CasingEjector().setMotion(-0.3, 0.6, 0).setOffset(-0.35, -0.2, 0.55).setAngleRange(0.01F, 0.03F); - CASING9MM = new SpentCasing(CasingType.STRAIGHT).setScale(1F, 1F, 0.6F).setBounceMotion(0.01F, 0.03F).setColor(SpentCasing.COLOR_CASE_BRASS); - } - - public static GunConfiguration getMP40Config() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 2; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 32; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_SPLIT; - config.durability = 2500; - config.reloadSound = GunConfiguration.RSOUND_MAG; - config.firingSound = "hbm:weapon.rifleShoot"; - config.reloadSoundEnd = false; - - config.name = "mp40"; - config.manufacturer = EnumGunManufacturer.NAZI; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.P9_NORMAL); - config.config.add(BulletConfigSyncingUtil.P9_AP); - config.config.add(BulletConfigSyncingUtil.P9_DU); - config.config.add(BulletConfigSyncingUtil.CHL_P9); - config.config.add(BulletConfigSyncingUtil.P9_ROCKET); - - config.ejector = EJECTOR_SMG; - - return config; - } - - //rechambered to .45 - /*public static GunConfiguration getThompsonConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 2; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 30; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_SPLIT; - config.durability = 2500; - config.reloadSound = GunConfiguration.RSOUND_MAG; - config.firingSound = "hbm:weapon.rifleShoot"; - config.reloadSoundEnd = false; - - config.name = "tommy9"; - config.manufacturer = EnumGunManufacturer.AUTO_ORDINANCE; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.P9_NORMAL); - config.config.add(BulletConfigSyncingUtil.P9_AP); - config.config.add(BulletConfigSyncingUtil.P9_DU); - config.config.add(BulletConfigSyncingUtil.CHL_P9); - config.config.add(BulletConfigSyncingUtil.P9_ROCKET); - - return config; - }*/ - - static float inaccuracy = 5; - public static BulletConfiguration get9mmConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.STOCK)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 10; - bullet.dmgMax = 14; - - bullet.spentCasing = CASING9MM.clone().register("9MMStock"); - - return bullet; - } - - public static BulletConfiguration get9mmAPConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.AP)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 18; - bullet.dmgMax = 20; - bullet.leadChance = 10; - bullet.wear = 15; - - bullet.spentCasing = CASING9MM.clone().register("9MMAP"); - - return bullet; - } - - public static BulletConfiguration get9mmDUConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.DU)); - bullet.spread *= inaccuracy; - bullet.dmgMin = 22; - bullet.dmgMax = 26; - bullet.leadChance = 50; - bullet.wear = 25; - - bullet.spentCasing = CASING9MM.clone().register("9MMDU"); - - return bullet; - } - - public static BulletConfiguration get9mmRocketConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.ROCKET)); - bullet.velocity = 5; - bullet.explosive = 7.5F; - bullet.trail = 5; - - bullet.spentCasing = CASING9MM.clone().register("9MMRocket"); - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java index 42a79013e..411574bbe 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java @@ -1,9 +1,7 @@ package com.hbm.handler.guncfg; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.Ammo240Shell; import com.hbm.items.ModItems; @@ -86,12 +84,8 @@ public class GunCannonFactory { bullet.dmgMin = 100; bullet.dmgMax = 150; - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); - } + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { + BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); }; bullet.spentCasing = CASINNG240MM; diff --git a/src/main/java/com/hbm/handler/guncfg/GunDGKFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDGKFactory.java index 86bc1bb2f..240521609 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDGKFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDGKFactory.java @@ -1,8 +1,5 @@ package com.hbm.handler.guncfg; -import com.hbm.handler.BulletConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; @@ -11,15 +8,14 @@ public class GunDGKFactory { public static final SpentCasing CASINGDGK; static { - CASINGDGK = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F).setBounceMotion(0.05F, 0.02F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(0.02F, 0.5D, 60, 20).setMaxAge(60); //3 instead of 12 seconds + CASINGDGK = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F).setBounceMotion(0.05F, 0.02F).setColor(SpentCasing.COLOR_CASE_BRASS).register("DGK").setupSmoke(0.02F, 0.5D, 60, 20).setMaxAge(60); //3 instead of 12 seconds } - public static BulletConfiguration getDGKConfig() { + /*public static BulletConfiguration getDGKConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); bullet.ammo = new ComparableStack(ModItems.ammo_dgk); bullet.spentCasing = CASINGDGK.register("DGK"); return bullet; - } - + }*/ } diff --git a/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java deleted file mode 100644 index 70c743232..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.extprop.HbmLivingProps; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.AmmoDart; -import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunDart; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.main.MainRegistry; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; - -public class GunDartFactory { - - public static GunConfiguration getDarterConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.hasSights = false; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CROSS; - config.durability = 1000; - config.reloadSound = GunConfiguration.RSOUND_GRENADE; - config.firingSound = "hbm:weapon.dartShoot"; - config.reloadSoundEnd = false; - config.showAmmo = true; - - config.name = "dart"; - config.manufacturer = EnumGunManufacturer.NONE; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.NEEDLE_GPS); - config.config.add(BulletConfigSyncingUtil.NEEDLE_NUKE); - - return config; - } - - public static GunConfiguration getMymyConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.hasSights = false; - config.reloadDuration = 10; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.NONE; - config.durability = 1000; - config.reloadSound = GunConfiguration.RSOUND_GRENADE; - config.firingSound = "hbm:weapon.dartShoot"; - config.reloadSoundEnd = false; - config.showAmmo = true; - - config.name = "nerf"; - config.manufacturer = EnumGunManufacturer.HASBRO; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.DART_NORMAL); - config.config.add(BulletConfigSyncingUtil.NEEDLE_NUKE); - - return config; - } - - public static BulletConfiguration getGPSConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_dart.stackFromEnum(AmmoDart.GPS)); - bullet.velocity = 5.0F; - bullet.spread = 0; - bullet.dmgMin = 1; - bullet.dmgMax = 2; - bullet.doesRicochet = true; - bullet.doesPenetrate = false; - bullet.style = bullet.STYLE_FLECHETTE; - bullet.leadChance = 0; - - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(Potion.wither.id, 60 * 20, 2)); - - bullet.bHurt = new IBulletHurtBehavior() { - - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityPlayer) { - - if(((EntityPlayer) hit).inventory.hasItem(ModItems.ingot_meteorite_forged)) - return; - - if(bullet.shooter instanceof EntityPlayer) { - - EntityPlayer shooter = (EntityPlayer) bullet.shooter; - - if(shooter.getHeldItem() != null && shooter.getHeldItem().getItem() == ModItems.gun_darter) { - ItemGunDart.writePlayer(shooter.getHeldItem(), (EntityPlayer)hit); - shooter.playSound("random.orb", 1.0F, 1.0F); - } - } - } - } - }; - - return bullet; - } - - public static BulletConfiguration getNukeConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_dart.stackFromEnum(AmmoDart.NUCLEAR)); - bullet.velocity = 5.0F; - bullet.spread = 0; - bullet.dmgMin = 1; - bullet.dmgMax = 2; - bullet.doesRicochet = true; - bullet.doesPenetrate = false; - bullet.style = bullet.STYLE_FLECHETTE; - bullet.leadChance = 0; - - bullet.bHurt = new IBulletHurtBehavior() { - - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - - EntityLivingBase e = (EntityLivingBase) hit; - - if(HbmLivingProps.getRadiation(e) < 250) - HbmLivingProps.setRadiation(e, 250); - if(HbmLivingProps.getTimer(e) <= 0) - HbmLivingProps.setTimer(e, MainRegistry.polaroidID * 60 * 20); - } - } - }; - - return bullet; - } - - public static BulletConfiguration getNERFConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_dart.stackFromEnum(AmmoDart.NERF)); - bullet.velocity = 1.0F; - bullet.gravity = 0.04D; - bullet.dmgMin = 0; - bullet.dmgMax = 0; - bullet.leadChance = 0; - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java deleted file mode 100644 index dad35a32a..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBomb; -import com.hbm.interfaces.IBomb.BombReturnCode; -import com.hbm.main.MainRegistry; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; -import com.hbm.util.ChatBuilder; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; - -public class GunDetonatorFactory { - - public static GunConfiguration getDetonatorConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.hasSights = false; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.DUAL; - config.durability = 1_000_000_000; - config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; - config.firingSound = "hbm:weapon.dartShoot"; - config.reloadSoundEnd = false; - config.showAmmo = true; - - config.name = "laserDet"; - config.manufacturer = EnumGunManufacturer.WESTTEK; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.DET_BOLT); - config.config.add(BulletConfigSyncingUtil.R5_NORMAL_BOLT); - config.config.add(BulletConfigSyncingUtil.R5_EXPLOSIVE_BOLT); - config.config.add(BulletConfigSyncingUtil.R5_DU_BOLT); - config.config.add(BulletConfigSyncingUtil.R5_STAR_BOLT); - config.config.add(BulletConfigSyncingUtil.CHL_R5_BOLT); - config.config.add(BulletConfigSyncingUtil.G12_NORMAL); - config.config.add(BulletConfigSyncingUtil.G12_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.G12_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G12_DU); - config.config.add(BulletConfigSyncingUtil.G12_SLEEK); - config.config.add(BulletConfigSyncingUtil.G12_AM); - config.config.add(BulletConfigSyncingUtil.NUKE_NORMAL); - config.config.add(BulletConfigSyncingUtil.NUKE_LOW); - config.config.add(BulletConfigSyncingUtil.NUKE_SAFE); - config.config.add(BulletConfigSyncingUtil.NUKE_HIGH); - config.config.add(BulletConfigSyncingUtil.NUKE_TOTS); - config.config.add(BulletConfigSyncingUtil.NUKE_PUMPKIN); - config.config.add(BulletConfigSyncingUtil.NUKE_BARREL); - config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_NORMAL); - config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_LOW); - config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_SAFE); - config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_HIGH); - - return config; - } - - public static BulletConfiguration getLaserConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(Items.redstone); - bullet.spread = 0.0F; - bullet.maxAge = 100; - bullet.dmgMin = 0; - bullet.dmgMax = 0; - bullet.leadChance = 0; - bullet.doesRicochet = false; - bullet.setToBolt(BulletConfiguration.BOLT_LASER); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - World world = bullet.worldObj; - if(!world.isRemote && y > 0) { - Block b = world.getBlock(x, y, z); - if(b instanceof IBomb) { - BombReturnCode ret = ((IBomb)b).explode(world, x, y, z); - - if(ret.wasSuccessful() && bullet.shooter instanceof EntityPlayerMP) { - EntityPlayerMP player = (EntityPlayerMP) bullet.shooter; - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation(ret.getUnlocalizedMessage()).color(EnumChatFormatting.YELLOW).flush(), MainRegistry.proxy.ID_DETONATOR), (EntityPlayerMP) player); - } - } - } - } - }; - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 2fafccbeb..f6f6a7933 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -3,152 +3,29 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.IBulletImpactBehaviorNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.IBulletUpdateBehaviorNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.AmmoFireExt; -import com.hbm.items.ItemAmmoEnums.AmmoFlamethrower; import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.potion.HbmPotion; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.IRepairable.EnumExtinguishType; import com.hbm.util.CompatExternal; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; public class GunEnergyFactory { - - public static GunConfiguration getChemConfig() { - - GunConfiguration config = new GunConfiguration(); - config.rateOfFire = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.allowsInfinity = false; - config.ammoCap = 3_000; - config.durability = 90_000; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.crosshair = Crosshair.CIRCLE; - - config.name = "Chemical Thrower"; - config.manufacturer = EnumGunManufacturer.LANGFORD; - - config.config = new ArrayList(); - - return config; - } - - public static GunConfiguration getEMPConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 30; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; - config.firingDuration = 0; - config.ammoCap = 0; - config.durability = 1500; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_SPLIT; - config.firingSound = "hbm:weapon.teslaShoot"; - - config.name = "EMP Orb Projector"; - config.manufacturer = EnumGunManufacturer.MWT; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.SPECIAL_EMP); - - return config; - } - - public static GunConfiguration getFlamerConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.reloadSoundEnd = false; - config.firingDuration = 0; - config.ammoCap = 100; - config.durability = 1000; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCLE; - config.firingSound = "hbm:weapon.flamethrowerShoot"; - config.reloadSound = "hbm:weapon.flamerReload"; - - config.name = "Heavy Duty Flamer"; - config.manufacturer = EnumGunManufacturer.MWT; - - config.comment.add("Dragon-slaying: Advanced techniques, part 1:"); - config.comment.add("Try not to get eaten by the dragon."); - config.comment.add(""); - config.comment.add("Hope that helps."); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.FLAMER_NORMAL); - config.config.add(BulletConfigSyncingUtil.FLAMER_NAPALM); - config.config.add(BulletConfigSyncingUtil.FLAMER_WP); - config.config.add(BulletConfigSyncingUtil.FLAMER_VAPORIZER); - config.config.add(BulletConfigSyncingUtil.FLAMER_GAS); - - return config; - } - - public static GunConfiguration getZOMGConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 10; - config.reloadSoundEnd = false; - config.firingDuration = 0; - config.durability = 100000; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.ammoCap = 1000; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_ARROWS; - config.firingSound = "hbm:weapon.zomgShoot"; - config.reloadSound = "hbm:weapon.b92Reload"; - - config.name = "EMC101 Prismatic Negative Energy Cannon"; - config.manufacturer = EnumGunManufacturer.MWT; - - config.comment.add("Taste the rainbow!"); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.ZOMG_BOLT); - - return config; - } public static GunConfiguration getExtConfig() { @@ -179,173 +56,29 @@ public class GunEnergyFactory { return config; } - - public static GunConfiguration getVortexConfig() { + + public static GunConfiguration getCryoCannonConfig() { GunConfiguration config = new GunConfiguration(); + config.rateOfFire = 1; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.firingDuration = 0; + config.ammoCap = 1_000; + config.durability = 10_000; + config.reloadType = GunConfiguration.RELOAD_FULL; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_CIRCLE; + + config.name = "Cryo Cannon"; + config.manufacturer = EnumGunManufacturer.DRG; + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.CRYO_NORMAL); + return config; - - } - - public static BulletConfiguration getOrbusConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.ammo = new ComparableStack(ModItems.gun_emp_ammo); - - bullet.velocity = 1F; - bullet.spread = 0.0F; - bullet.wear = 10; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.dmgMin = 10; - bullet.dmgMax = 12; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = false; - bullet.doesPenetrate = true; - bullet.doesBreakGlass = false; - bullet.style = BulletConfiguration.STYLE_ORB; - bullet.plink = BulletConfiguration.PLINK_NONE; - bullet.emp = 10; - - bullet.damageType = ModDamageSource.s_emp; - bullet.dmgProj = false; - bullet.dmgBypass = true; - - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 1)); - bullet.effects.add(new PotionEffect(Potion.weakness.id, 10 * 20, 4)); - - return bullet; - } - - public static BulletConfiguration getFlameConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL)); - bullet.ammoCount = 100; - - bullet.velocity = 0.75F; - bullet.spread = 0.025F; - bullet.wear = 1; - bullet.bulletsMin = 3; - bullet.bulletsMax = 5; - bullet.dmgMin = 2; - bullet.dmgMax = 4; - bullet.gravity = 0.01D; - bullet.maxAge = 60; - bullet.doesRicochet = false; - bullet.doesPenetrate = true; - bullet.doesBreakGlass = false; - bullet.style = BulletConfiguration.STYLE_NONE; - bullet.plink = BulletConfiguration.PLINK_NONE; - bullet.vPFX = "flame"; - bullet.incendiary = 10; - - bullet.damageType = ModDamageSource.s_flamethrower; - bullet.dmgProj = false; - bullet.dmgFire = true; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(!bullet.worldObj.isRemote) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.1D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } - } - }; - - return bullet; - } - - public static BulletConfiguration getNapalmConfig() { - - BulletConfiguration bullet = getFlameConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM)); - bullet.wear = 2; - bullet.dmgMin = 4; - bullet.dmgMax = 6; - bullet.maxAge = 200; - - return bullet; - } - - public static BulletConfiguration getPhosphorusConfig() { - - BulletConfiguration bullet = getFlameConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.PHOSPHORUS)); - bullet.wear = 2; - bullet.spread = 0.0F; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.dmgMin = 4; - bullet.dmgMax = 6; - bullet.maxAge = 200; - bullet.vPFX = "smoke"; - - bullet.bImpact = BulletConfigFactory.getPhosphorousEffect(5, 60 * 20, 25, 0.25, 0.1F); - - return bullet; - } - - public static BulletConfiguration getVaporizerConfig() { - - BulletConfiguration bullet = getFlameConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.VAPORIZER)); - bullet.wear = 4; - bullet.spread = 0.25F; - bullet.bulletsMin = 8; - bullet.bulletsMax = 10; - bullet.dmgMin = 6; - bullet.dmgMax = 10; - bullet.maxAge = 15; - bullet.vPFX = "flame"; - bullet.incendiary = 0; - - bullet.dmgBypass = true; - - PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); - eff.getCurativeItems().clear(); - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(eff)); - - return bullet; - } - - public static BulletConfiguration getGasConfig() { - - BulletConfiguration bullet = getFlameConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.CHLORINE)); - bullet.wear = 1; - bullet.spread = 0.05F; - bullet.gravity = 0D; - bullet.bulletsMin = 5; - bullet.bulletsMax = 7; - bullet.dmgMin = 0; - bullet.dmgMax = 0; - bullet.vPFX = "cloud"; - bullet.incendiary = 0; - - bullet.dmgFire = false; - - bullet.bImpact = BulletConfigFactory.getGasEffect(5, 60 * 20); - - return bullet; } public static BulletConfiguration getFextConfig() { @@ -370,12 +103,12 @@ public class GunEnergyFactory { bullet.style = BulletConfiguration.STYLE_NONE; bullet.plink = BulletConfiguration.PLINK_NONE; - bullet.bHurt = (bulletEntity, target) -> { target.extinguish(); }; + bullet.bntHurt = (bulletEntity, target) -> { target.extinguish(); }; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -408,10 +141,10 @@ public class GunEnergyFactory { } }; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) { @@ -450,10 +183,10 @@ public class GunEnergyFactory { bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.FOAM)); bullet.spread = 0.05F; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -505,10 +238,10 @@ public class GunEnergyFactory { } }; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) { @@ -537,12 +270,12 @@ public class GunEnergyFactory { bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.SAND)); bullet.spread = 0.1F; - bullet.bHurt = null; // does not extinguish entities + bullet.bntHurt = null; // does not extinguish entities - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -578,10 +311,10 @@ public class GunEnergyFactory { } }; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) { @@ -603,46 +336,12 @@ public class GunEnergyFactory { return bullet; } - public static BulletConfiguration getZOMGBoltConfig() { - + public static BulletConfiguration getCryoConfig() { BulletConfiguration bullet = new BulletConfiguration(); - - bullet.ammo = new ComparableStack(ModItems.nugget_euphemium); - bullet.ammoCount = 1000; - bullet.wear = 1; - bullet.velocity = 1F; - bullet.spread = 0.125F; - bullet.maxAge = 100; - bullet.gravity = 0D; - bullet.bulletsMin = 5; - bullet.bulletsMax = 5; - bullet.dmgMin = 10000; - bullet.dmgMax = 25000; - bullet.liveAfterImpact = true; - - bullet.damageType = ModDamageSource.s_zomg_prefix; - bullet.dmgProj = false; - bullet.dmgBypass = true; - - bullet.style = bullet.STYLE_BOLT; - bullet.trail = bullet.BOLT_ZOMG; - - bullet.effects = new ArrayList(); - bullet.effects.add(new PotionEffect(HbmPotion.bang.id, 10 * 20, 0)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(!bullet.worldObj.isRemote) { - ExplosionChaos.explodeZOMG(bullet.worldObj, (int)Math.floor(bullet.posX), (int)Math.floor(bullet.posY), (int)Math.floor(bullet.posZ), 5); - bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "hbm:entity.bombDet", 5.0F, 1.0F); - ExplosionLarge.spawnParticles(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, 5); - } - } - }; - + bullet.ammo = new ComparableStack(ModItems.gun_cryolator_ammo); + bullet.ammoCount = 100; + bullet.bulletsMin = 1; + bullet.bulletsMax = 1; return bullet; } @@ -662,11 +361,4 @@ public class GunEnergyFactory { return bullet; } - - public static BulletConfiguration getTurretConfig() { - BulletConfiguration bullet = getFlameConfig(); - bullet.spread *= 2F; - bullet.gravity = 0.0025D; - return bullet; - } } diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java deleted file mode 100644 index 0e8dbbd24..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ /dev/null @@ -1,545 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.blocks.ModBlocks; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNT; -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.init.Blocks; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class GunFatmanFactory { - - public static GunConfiguration getFatmanConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 20; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 120; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCUMFLEX; - config.firingSound = "hbm:weapon.fatmanShoot"; - config.reloadSound = GunConfiguration.RSOUND_FATMAN; - config.reloadSoundEnd = false; - - config.name = "m42"; - config.manufacturer = EnumGunManufacturer.F_STRONG; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.NUKE_NORMAL); - config.config.add(BulletConfigSyncingUtil.NUKE_LOW); - config.config.add(BulletConfigSyncingUtil.NUKE_HIGH); - config.config.add(BulletConfigSyncingUtil.NUKE_TOTS); - config.config.add(BulletConfigSyncingUtil.NUKE_SAFE); - config.config.add(BulletConfigSyncingUtil.NUKE_PUMPKIN); - config.config.add(BulletConfigSyncingUtil.NUKE_BARREL); - config.durability = 1000; - - return config; - } - - public static GunConfiguration getMIRVConfig() { - - GunConfiguration config = getFatmanConfig(); - - config.name = "m42MIRV"; - config.manufacturer = EnumGunManufacturer.F_STRONG; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_NORMAL); - config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_LOW); - config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_HIGH); - config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_SAFE); - config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_SPECIAL); - config.durability = 1000; - - return config; - } - - public static GunConfiguration getBELConfig() { - - GunConfiguration config = getFatmanConfig(); - - config.name = "bel"; - config.manufacturer = EnumGunManufacturer.F_STRONG; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.NUKE_AMAT); - - return config; - } - - public static GunConfiguration getProtoConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 20; - config.roundsPerCycle = 8; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 120; - config.firingDuration = 0; - config.ammoCap = 8; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCUMFLEX; - config.firingSound = "hbm:weapon.fatmanShoot"; - config.reloadSound = GunConfiguration.RSOUND_FATMAN; - config.reloadSoundEnd = false; - - config.name = "m42"; - config.manufacturer = EnumGunManufacturer.F_STRONG; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.NUKE_PROTO_NORMAL); - config.config.add(BulletConfigSyncingUtil.NUKE_PROTO_LOW); - config.config.add(BulletConfigSyncingUtil.NUKE_PROTO_HIGH); - config.config.add(BulletConfigSyncingUtil.NUKE_PROTO_TOTS); - config.config.add(BulletConfigSyncingUtil.NUKE_PROTO_SAFE); - config.config.add(BulletConfigSyncingUtil.NUKE_PROTO_PUMPKIN); - config.config.add(BulletConfigSyncingUtil.NUKE_BARREL); - config.durability = 1000; - - return config; - } - - public static BulletConfiguration getNukeConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.STOCK)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_MEDIUM); - } - }; - - return bullet; - } - - public static BulletConfiguration getNukeLowConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_LOW); - } - }; - - return bullet; - } - - public static BulletConfiguration getNukeHighConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_HIGH); - } - }; - - return bullet; - } - - public static BulletConfiguration getNukeTotsConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.TOTS)); - bullet.bulletsMin = 8; - bullet.bulletsMax = 8; - bullet.spread = 0.1F; - bullet.style = bullet.STYLE_GRENADE; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); - } - }; - - return bullet; - } - - public static BulletConfiguration getNukeSafeConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE)); - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_SAFE); - } - }; - - return bullet; - } - - public static BulletConfiguration getNukePumpkinConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.PUMPKIN)); - bullet.explosive = 10F; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(!bullet.worldObj.isRemote) { - - double posX = bullet.posX; - double posY = bullet.posY + 0.5; - double posZ = bullet.posZ; - - if(y >= 0) { - posX = x + 0.5; - posY = y + 1.5; - posZ = z + 0.5; - } - - ExplosionLarge.spawnParticles(bullet.worldObj, posX, posY, posZ, 45); - } - } - }; - - return bullet; - } - - public static BulletConfiguration getNukeBarrelConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BARREL)); - bullet.explosive = 3F; - bullet.style = bullet.STYLE_BARREL; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(!bullet.worldObj.isRemote) { - - double posX = bullet.posX; - double posY = bullet.posY + 0.5; - double posZ = bullet.posZ; - - if(y >= 0) { - posX = x + 0.5; - posY = y + 1.5; - posZ = z + 0.5; - } - - x = (int)Math.floor(posX); - y = (int)Math.floor(posY); - z = (int)Math.floor(posZ); - - World worldObj = bullet.worldObj; - - for(int ix = x - 3; ix <= x + 3; ix++) { - for(int iy = y - 3; iy <= y + 3; iy++) { - for(int iz = z - 3; iz <= z + 3; iz++) { - - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock(ix, iy, iz).isReplaceable(worldObj, ix, iy, iz) && ModBlocks.fallout.canPlaceBlockAt(worldObj, ix, iy, iz)) { - worldObj.setBlock(ix, iy, iz, ModBlocks.fallout); - } else if(worldObj.getBlock(ix, iy, iz) == Blocks.air) { - - if(worldObj.rand.nextBoolean()) - worldObj.setBlock(ix, iy, iz, ModBlocks.gas_radon); - else - worldObj.setBlock(ix, iy, iz, ModBlocks.gas_radon_dense); - } - } - } - } - - ChunkRadiationManager.proxy.incrementRad(worldObj, x, y, z, 100F); - - ExplosionLarge.spawnParticles(bullet.worldObj, posX, posY, posZ, 45); - } - } - }; - - return bullet; - } - - public static BulletConfiguration getMirvConfig() { - - BulletConfiguration bullet = getNukeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV)); - bullet.style = BulletConfiguration.STYLE_MIRV; - bullet.velocity *= 3; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(bullet.worldObj.isRemote) - return; - - if(bullet.ticksExisted == 15) { - bullet.setDead(); - - for(int i = 0; i < 6; i++) { - - EntityBulletBase nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_NORMAL); - nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); - double mod = 0.1D; - nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod; - nuke.motionY = -0.1D; - nuke.motionZ = bullet.worldObj.rand.nextGaussian() * mod; - bullet.worldObj.spawnEntityInWorld(nuke); - } - } - } - - }; - - return bullet; - } - - public static BulletConfiguration getMirvLowConfig() { - - BulletConfiguration bullet = getNukeLowConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_LOW)); - bullet.style = BulletConfiguration.STYLE_MIRV; - bullet.velocity *= 3; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(bullet.worldObj.isRemote) - return; - - if(bullet.ticksExisted == 15) { - bullet.setDead(); - - for(int i = 0; i < 6; i++) { - - EntityBulletBase nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_LOW); - nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); - double mod = 0.1D; - nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod; - nuke.motionY = -0.1D; - nuke.motionZ = bullet.worldObj.rand.nextGaussian() * mod; - bullet.worldObj.spawnEntityInWorld(nuke); - } - } - } - - }; - - return bullet; - } - - public static BulletConfiguration getMirvHighConfig() { - - BulletConfiguration bullet = getNukeHighConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH)); - bullet.style = BulletConfiguration.STYLE_MIRV; - bullet.velocity *= 3; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(bullet.worldObj.isRemote) - return; - - if(bullet.ticksExisted == 15) { - bullet.setDead(); - - for(int i = 0; i < 6; i++) { - - EntityBulletBase nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_HIGH); - nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); - double mod = 0.1D; - nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod; - nuke.motionY = -0.1D; - nuke.motionZ = bullet.worldObj.rand.nextGaussian() * mod; - bullet.worldObj.spawnEntityInWorld(nuke); - } - } - } - - }; - - return bullet; - } - - public static BulletConfiguration getMirvSafeConfig() { - - BulletConfiguration bullet = getNukeSafeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE)); - bullet.style = BulletConfiguration.STYLE_MIRV; - bullet.velocity *= 3; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(bullet.worldObj.isRemote) - return; - - if(bullet.ticksExisted == 15) { - bullet.setDead(); - - for(int i = 0; i < 6; i++) { - - EntityBulletBase nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_SAFE); - nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); - double mod = 0.1D; - nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod; - nuke.motionY = -0.1D; - nuke.motionZ = bullet.worldObj.rand.nextGaussian() * mod; - bullet.worldObj.spawnEntityInWorld(nuke); - } - } - } - - }; - - return bullet; - } - - public static BulletConfiguration getMirvSpecialConfig() { - - BulletConfiguration bullet = getNukeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SPECIAL)); - bullet.style = BulletConfiguration.STYLE_MIRV; - bullet.velocity *= 3; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(bullet.worldObj.isRemote) - return; - - if(bullet.ticksExisted == 15) { - bullet.setDead(); - - for(int i = 0; i < 24; i++) { - - EntityBulletBase nuke = null; - - if(i < 6) - nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_LOW); - else if(i < 12) - nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_TOTS); - else if(i < 18) - nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_NORMAL); - else - nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_AMAT); - - nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); - - double mod = 0.25D; - nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod; - nuke.motionY = -0.1D; - nuke.motionZ = bullet.worldObj.rand.nextGaussian() * mod; - bullet.worldObj.spawnEntityInWorld(nuke); - } - } - } - - }; - - return bullet; - } - - public static BulletConfiguration getBalefireConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE)); - bullet.style = BulletConfiguration.STYLE_BF; - - bullet.bImpact = new IBulletImpactBehavior() { - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(!bullet.worldObj.isRemote) { - - double posX = bullet.posX; - double posY = bullet.posY + 0.5; - double posZ = bullet.posZ; - - if(y >= 0) { - posX = x + 0.5; - posY = y + 1.5; - posZ = z + 0.5; - } - - bullet.worldObj.playSoundEffect(x, y, z, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); - - ExplosionLarge.spawnShrapnels(bullet.worldObj, posX, posY, posZ, 25); - - ExplosionNT exp = new ExplosionNT(bullet.worldObj, null, posX, posY, posZ, 15F) - .addAttrib(ExAttrib.BALEFIRE) - .addAttrib(ExAttrib.NOPARTICLE) - .addAttrib(ExAttrib.NOSOUND) - .addAttrib(ExAttrib.NODROP) - .overrideResolution(64); - exp.doExplosionA(); - exp.doExplosionB(false); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - data.setBoolean("balefire", true); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y + 0.5, z), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 250)); - } - } - }; - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java deleted file mode 100644 index 6fee544a6..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -public class GunGaussFactory { - - public static GunConfiguration getXVLConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 4; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 0; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.allowsInfinity = true; - config.crosshair = Crosshair.CIRCLE; - config.durability = 15000; - config.firingSound = "hbm:weapon.tauShoot"; - config.firingVolume = 0.5F; - - config.name = "tau"; - config.manufacturer = EnumGunManufacturer.BLACK_MESA; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.SPECIAL_GAUSS); - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - ); - - return config; - } - - public static GunConfiguration getChargedConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 10; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.reloadDuration = 1; - config.firingDuration = 0; - config.ammoCap = 0; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_ARROWS; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.SPECIAL_GAUSS_CHARGED); - - return config; - } - - public static BulletConfiguration getGaussConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.gun_xvl1456_ammo); - bullet.dmgMin = 18; - bullet.dmgMax = 27; - bullet.style = bullet.STYLE_TAU; - bullet.LBRC = 80; - bullet.HBRC = 5; - - return bullet; - } - - public static BulletConfiguration getAltConfig() { - - BulletConfiguration bullet = getGaussConfig(); - - bullet.trail = 1; - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java deleted file mode 100644 index 0c787f9a9..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ /dev/null @@ -1,262 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.AmmoGrenade; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -public class GunGrenadeFactory { - - private static final CasingEjector EJECTOR_LAUNCHER; - private static final SpentCasing CASING40MM; - - static { - EJECTOR_LAUNCHER = new CasingEjector().setAngleRange(0.02F, 0.03F).setAfterReload(); - CASING40MM = new SpentCasing(CasingType.STRAIGHT).setScale(4F, 4F, 3F).setBounceMotion(0.02F, 0.03F).setColor(0x777777).setupSmoke(1F, 0.5D, 60, 40); - } - - public static GunConfiguration getHK69Config() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 30; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.hasSights = true; - config.zoomFOV = 0.66F; - config.reloadDuration = 40; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCUMFLEX; - config.firingSound = "hbm:weapon.hkShoot"; - config.reloadSound = GunConfiguration.RSOUND_GRENADE; - config.reloadSoundEnd = false; - - config.name = "gPistol"; - config.manufacturer = EnumGunManufacturer.H_AND_K; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.GRENADE_NORMAL); - config.config.add(BulletConfigSyncingUtil.GRENADE_HE); - config.config.add(BulletConfigSyncingUtil.GRENADE_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.GRENADE_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.GRENADE_CHEMICAL); - config.config.add(BulletConfigSyncingUtil.GRENADE_CONCUSSION); - config.config.add(BulletConfigSyncingUtil.GRENADE_FINNED); - config.config.add(BulletConfigSyncingUtil.GRENADE_SLEEK); - config.config.add(BulletConfigSyncingUtil.GRENADE_NUCLEAR); - config.config.add(BulletConfigSyncingUtil.GRENADE_TRACER); - config.config.add(BulletConfigSyncingUtil.GRENADE_KAMPF); - config.durability = 300; - - config.ejector = EJECTOR_LAUNCHER; - - return config; - } - - public static BulletConfiguration getGrenadeConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.STOCK)); - bullet.velocity = 2.0F; - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 10; - bullet.trail = 0; - - bullet.spentCasing = CASING40MM.clone().register("40MMStock"); - - return bullet; - } - - public static BulletConfiguration getGrenadeHEConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.HE)); - bullet.velocity = 2.0F; - bullet.dmgMin = 20; - bullet.dmgMax = 15; - bullet.wear = 15; - bullet.explosive = 5.0F; - bullet.trail = 1; - - bullet.spentCasing = CASING40MM.clone().register("40MMHE"); - - return bullet; - } - - public static BulletConfiguration getGrenadeIncendirayConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.INCENDIARY)); - bullet.velocity = 2.0F; - bullet.dmgMin = 15; - bullet.dmgMax = 15; - bullet.wear = 15; - bullet.trail = 0; - bullet.incendiary = 2; - - bullet.spentCasing = CASING40MM.clone().register("40MMInc"); - - return bullet; - } - - public static BulletConfiguration getGrenadePhosphorusConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.PHOSPHORUS)); - bullet.velocity = 2.0F; - bullet.dmgMin = 15; - bullet.dmgMax = 15; - bullet.wear = 15; - bullet.trail = 0; - bullet.incendiary = 2; - - bullet.bImpact = BulletConfigFactory.getPhosphorousEffect(10, 60 * 20, 100, 0.5D, 1F); - - bullet.spentCasing = CASING40MM.clone().register("40MMPhos"); - - return bullet; - } - - public static BulletConfiguration getGrenadeChlorineConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.CHLORINE)); - bullet.velocity = 2.0F; - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 10; - bullet.trail = 3; - bullet.explosive = 0; - bullet.chlorine = 50; - - bullet.spentCasing = CASING40MM.clone().register("40MMTox"); - - return bullet; - } - - public static BulletConfiguration getGrenadeSleekConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.SLEEK)); - bullet.velocity = 2.0F; - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 10; - bullet.trail = 4; - bullet.explosive = 7.5F; - bullet.jolt = 6.5D; - - bullet.spentCasing = CASING40MM.clone().register("40MMIF"); - - return bullet; - } - - public static BulletConfiguration getGrenadeConcussionConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.CONCUSSION)); - bullet.velocity = 2.0F; - bullet.dmgMin = 15; - bullet.dmgMax = 20; - bullet.blockDamage = false; - bullet.explosive = 10.0F; - bullet.trail = 3; - - bullet.spentCasing = CASING40MM.clone().register("40MMCon"); - - return bullet; - } - - public static BulletConfiguration getGrenadeFinnedConfig() { - - BulletConfiguration bullet = getGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.FINNED)); - bullet.gravity = 0.02; - bullet.explosive = 1.5F; - bullet.trail = 5; - - bullet.spentCasing = CASING40MM.clone().register("40MMFin"); - - return bullet; - } - - public static BulletConfiguration getGrenadeNuclearConfig() { - - BulletConfiguration bullet = getGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.NUCLEAR)); - bullet.velocity = 4; - bullet.explosive = 0.0F; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); - } - }; - - bullet.spentCasing = CASING40MM.clone().register("40MMNuke"); - - return bullet; - } - - public static BulletConfiguration getGrenadeTracerConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.TRACER)); - bullet.velocity = 2.0F; - bullet.wear = 10; - bullet.explosive = 0F; - bullet.trail = 5; - bullet.vPFX = "bluedust"; - - bullet.spentCasing = CASING40MM.clone().register("40MMTrac").setColor(0xEEEEEE); - - return bullet; - } - - public static BulletConfiguration getGrenadeKampfConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.KAMPF)); - bullet.spread = 0.0F; - bullet.gravity = 0.0D; - bullet.wear = 15; - bullet.explosive = 3.5F; - bullet.style = BulletConfiguration.STYLE_GRENADE; - bullet.trail = 4; - bullet.vPFX = "smoke"; - - //bullet.spentCasing = CASING40MM.clone().register("40MMKampf").setColor(0xEBC35E); //does not eject, whole cartridge leaves the gun - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java index 960ebee81..2bdf1cb63 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java @@ -3,18 +3,17 @@ package com.hbm.handler.guncfg; import java.util.List; import java.util.Random; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.IBulletUpdateBehaviorNT; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.BobMathUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -51,30 +50,26 @@ public class GunNPCFactory { bullet.trail = 1; bullet.explosive = 1.5F; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { + + if(bulletnt.worldObj.isRemote) + return; - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(bullet.worldObj.isRemote) - return; - - if(bullet.ticksExisted % 10 != 5) - return; - - List players = bullet.worldObj.getEntitiesWithinAABB(EntityPlayer.class, bullet.boundingBox.expand(50, 50, 50)); - - for(EntityPlayer player : players) { - - Vec3 motion = Vec3.createVectorHelper(player.posX - bullet.posX, (player.posY + player.getEyeHeight()) - bullet.posY, player.posZ - bullet.posZ); - motion = motion.normalize(); - - EntityBulletBase bolt = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_BOLT); - bolt.shooter = bullet.shooter; - bolt.setPosition(bullet.posX, bullet.posY, bullet.posZ); - bolt.setThrowableHeading(motion.xCoord, motion.yCoord, motion.zCoord, 0.5F, 0.05F); - bullet.worldObj.spawnEntityInWorld(bolt); - } + if(bulletnt.ticksExisted % 10 != 5) + return; + + List players = bulletnt.worldObj.getEntitiesWithinAABB(EntityPlayer.class, bulletnt.boundingBox.expand(50, 50, 50)); + + for(EntityPlayer player : players) { + + Vec3 motion = Vec3.createVectorHelper(player.posX - bulletnt.posX, (player.posY + player.getEyeHeight()) - bulletnt.posY, player.posZ - bulletnt.posZ); + motion = motion.normalize(); + + EntityBulletBaseNT bolt = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_BOLT); + bolt.setThrower(bulletnt.getThrower()); + bolt.setPosition(bulletnt.posX, bulletnt.posY, bulletnt.posZ); + bolt.setThrowableHeading(motion.xCoord, motion.yCoord, motion.zCoord, 0.5F, 0.05F); + bulletnt.worldObj.spawnEntityInWorld(bolt); } }; @@ -129,20 +124,16 @@ public class GunNPCFactory { bullet.vPFX = "reddust"; bullet.damageType = ModDamageSource.s_laser; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { + + if(bulletnt.worldObj.isRemote) + return; - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(bullet.posX, bullet.posY + 30 + meteor.worldObj.rand.nextInt(10), bullet.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } + EntityBulletBaseNT meteor = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); + meteor.setPosition(bulletnt.posX, bulletnt.posY + 30 + meteor.worldObj.rand.nextInt(10), bulletnt.posZ); + meteor.motionY = -1D; + meteor.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(meteor); }; return bullet; @@ -178,25 +169,21 @@ public class GunNPCFactory { bullet.explosive = 2.5F; bullet.style = BulletConfiguration.STYLE_METEOR; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) - return; - - Random rand = bullet.worldObj.rand; - - for(int i = 0; i < 5; i++) { - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setString("type", "vanillaExt"); - nbt.setString("mode", "flame"); - nbt.setDouble("posX", bullet.posX + rand.nextDouble() * 0.5 - 0.25); - nbt.setDouble("posY", bullet.posY + rand.nextDouble() * 0.5 - 0.25); - nbt.setDouble("posZ", bullet.posZ + rand.nextDouble() * 0.5 - 0.25); - MainRegistry.proxy.effectNT(nbt); - } + if(!bulletnt.worldObj.isRemote) + return; + + Random rand = bulletnt.worldObj.rand; + + for(int i = 0; i < 5; i++) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "vanillaExt"); + nbt.setString("mode", "flame"); + nbt.setDouble("posX", bulletnt.posX + rand.nextDouble() * 0.5 - 0.25); + nbt.setDouble("posY", bulletnt.posY + rand.nextDouble() * 0.5 - 0.25); + nbt.setDouble("posZ", bulletnt.posZ + rand.nextDouble() * 0.5 - 0.25); + MainRegistry.proxy.effectNT(nbt); } }; @@ -245,13 +232,13 @@ public class GunNPCFactory { bullet.destroysBlocks = false; bullet.explosive = 0F; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { double angle = 90; double range = 100; @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) return; @@ -265,7 +252,7 @@ public class GunNPCFactory { if(target != null) { if(bullet.getDistanceSqToEntity(target) < 5) { - bullet.getConfig().bImpact.behaveBlockHit(bullet, -1, -1, -1); + bullet.getConfig().bntImpact.behaveBlockHit(bullet, -1, -1, -1, -1); bullet.setDead(); return; } @@ -281,7 +268,7 @@ public class GunNPCFactory { } } - private void chooseTarget(EntityBulletBase bullet) { + private void chooseTarget(EntityBulletBaseNT bullet) { List entities = bullet.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, bullet.boundingBox.expand(range, range, range)); @@ -292,7 +279,7 @@ public class GunNPCFactory { for(EntityLivingBase e : entities) { - if(!e.isEntityAlive() || e == bullet.shooter) + if(!e.isEntityAlive() || e == bullet.getThrower()) continue; Vec3 delta = Vec3.createVectorHelper(e.posX - bullet.posX, e.posY + e.height / 2 - bullet.posY, e.posZ - bullet.posZ); @@ -319,27 +306,23 @@ public class GunNPCFactory { } }; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "hbm:entity.ufoBlast", 5.0F, 0.9F + bulletnt.worldObj.rand.nextFloat() * 0.2F); + bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "fireworks.blast", 5.0F, 0.5F); + ExplosionNukeGeneric.dealDamage(bulletnt.worldObj, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 10, 50); - bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "hbm:entity.ufoBlast", 5.0F, 0.9F + bullet.worldObj.rand.nextFloat() * 0.2F); - bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "fireworks.blast", 5.0F, 0.5F); - ExplosionNukeGeneric.dealDamage(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, 10, 50); - - for(int i = 0; i < 3; i++) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 0.0F); - data.setFloat("g", 0.75F); - data.setFloat("b", 1.0F); - data.setFloat("pitch", -30F + 30F * i); - data.setFloat("yaw", bullet.worldObj.rand.nextFloat() * 180F); - data.setFloat("scale", 5F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), - new TargetPoint(bullet.worldObj.provider.dimensionId, bullet.posX, bullet.posY, bullet.posZ, 100)); - } + for(int i = 0; i < 3; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", 0.0F); + data.setFloat("g", 0.75F); + data.setFloat("b", 1.0F); + data.setFloat("pitch", -30F + 30F * i); + data.setFloat("yaw", bulletnt.worldObj.rand.nextFloat() * 180F); + data.setFloat("scale", 5F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX, bulletnt.posY, bulletnt.posZ), + new TargetPoint(bulletnt.worldObj.provider.dimensionId, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 100)); } }; diff --git a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java b/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java deleted file mode 100644 index db093f702..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.blocks.generic.RedBarrel; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.lib.ModDamageSource; -import com.hbm.potion.HbmPotion; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.block.Block; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.potion.PotionEffect; - -public class GunOSIPRFactory { - - public static GunConfiguration getOSIPRConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 2; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 30; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_ARROWS; - config.durability = 50_000; - config.reloadSound = "hbm:weapon.osiprReload"; - config.firingSound = "hbm:weapon.osiprShoot"; - config.reloadSoundEnd = false; - - config.name = "osipr"; - config.manufacturer = EnumGunManufacturer.COMBINE; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.SPECIAL_OSIPR); - - return config; - } - - public static GunConfiguration getAltConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 15; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 0; - config.reloadType = GunConfiguration.RELOAD_NONE; - config.allowsInfinity = true; - config.firingSound = "hbm:weapon.singFlyby"; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.SPECIAL_OSIPR_CHARGED); - - return config; - } - - static float inaccuracy = 1.25F; - public static BulletConfiguration getPulseConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.gun_osipr_ammo); - bullet.ammoCount = 30; - bullet.doesRicochet = false; - bullet.spread *= inaccuracy; - bullet.dmgMin = 15; - bullet.dmgMax = 21; - bullet.trail = 2; - - return bullet; - } - - public static BulletConfiguration getPulseChargedConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = new ComparableStack(ModItems.gun_osipr_ammo2); - bullet.ricochetAngle = 360; - bullet.LBRC = 100; - bullet.HBRC = 100; - bullet.bounceMod = 1; - bullet.style = BulletConfiguration.STYLE_ORB; - bullet.damageType = ModDamageSource.s_combineball; - bullet.liveAfterImpact = true; - bullet.spread = 0; - bullet.gravity = 0; - bullet.maxAge = 150; - bullet.velocity = 2; - - bullet.bHurt = (ball, entity) -> { - if(entity instanceof EntityLivingBase) { - EntityLivingBase entityLiving = (EntityLivingBase) entity; - entity.addVelocity(ball.motionX / 2, ball.motionY / 2, ball.motionZ / 2); - - if(entity == ball.shooter) - return; - - if(entityLiving.getHealth() <= 1000) { - entityLiving.addPotionEffect(new PotionEffect(HbmPotion.bang.id, 1, 0)); - entityLiving.setLastAttacker(ball.shooter); - } else if(entityLiving.getHealth() > 1000) { - ball.setDead(); - return; - } - - } - }; - - bullet.bRicochet = (ball, x, y, z) -> { - Block block = ball.worldObj.getBlock(x, y, z); - if(block instanceof RedBarrel) - ((RedBarrel) block).explode(ball.worldObj, x, y, z); - - }; - - bullet.bImpact = (ball, x, y, z) -> { - final Block block = ball.worldObj.getBlock(x, y, z); - if(block instanceof RedBarrel) - ((RedBarrel) block).explode(ball.worldObj, x, y, z); - - }; - - return bullet; - } -} diff --git a/src/main/java/com/hbm/handler/guncfg/GunPoweredFactory.java b/src/main/java/com/hbm/handler/guncfg/GunPoweredFactory.java deleted file mode 100644 index c80cb8f1d..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunPoweredFactory.java +++ /dev/null @@ -1,249 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.util.EnumChatFormatting; - -public class GunPoweredFactory { - - public static GunConfiguration getGlassCannonConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.firingDuration = 0; - config.durability = 2500; - config.allowsInfinity = false; - config.crosshair = Crosshair.BOX; - config.firingSound = "hbm:weapon.zomgShoot"; - config.maxCharge = 1_000_000; - config.chargeRate = 2500; - - config.name = "LIY2001 Anti-Material Electromagnetic Rifle Prototype"; - config.manufacturer = EnumGunManufacturer.OXFORD; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.GLASS_EMRADIO); - config.config.add(BulletConfigSyncingUtil.GLASS_EMMICRO); - config.config.add(BulletConfigSyncingUtil.GLASS_EMIR); - config.config.add(BulletConfigSyncingUtil.GLASS_EMVISIBLE); - config.config.add(BulletConfigSyncingUtil.GLASS_EMUV); - config.config.add(BulletConfigSyncingUtil.GLASS_EMXRAY); - config.config.add(BulletConfigSyncingUtil.GLASS_EMGAMMA); - - return config; - } - - public static BulletConfiguration getEMRadioConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 4.0F; - bullet.spread = 0F; - bullet.dmgMin = 35; - bullet.dmgMax = 45; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 90; - bullet.HBRC = 2; - bullet.LBRC = 90; - bullet.bounceMod = 1; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.trail = BulletConfiguration.BOLT_LASER; - bullet.plink = BulletConfiguration.PLINK_ENERGY; - bullet.dischargePerShot = 25_000; - bullet.firingRate = 20; - bullet.modeName = "weapon.elecGun.glass_cannon.radio"; - bullet.chatColour = EnumChatFormatting.DARK_RED; - bullet.setToFire(200); - - return bullet; - } - - public static BulletConfiguration getEMMicroConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 3.0F; - bullet.spread = 0F; - bullet.dmgMin = 18; - bullet.dmgMax = 22; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 90; - bullet.HBRC = 2; - bullet.LBRC = 90; - bullet.bounceMod = 1; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.trail = BulletConfiguration.BOLT_LASER; - bullet.dischargePerShot = 12_500; - bullet.firingRate = 15; - bullet.modeName = "weapon.elecGun.glass_cannon.micro"; - bullet.chatColour = EnumChatFormatting.RED; - bullet.setToFire(200); - - return bullet; - } - - public static BulletConfiguration getEMInfraredConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 2.0F; - bullet.spread = 0F; - bullet.dmgMin = 9; - bullet.dmgMax = 11; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 90; - bullet.HBRC = 2; - bullet.LBRC = 90; - bullet.bounceMod = 1; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.trail = BulletConfiguration.BOLT_LASER; - bullet.dischargePerShot = 6_000; - bullet.firingRate = 10; - bullet.modeName = "weapon.elecGun.glass_cannon.ir"; - bullet.chatColour = EnumChatFormatting.RED; - bullet.setToFire(100); - - return bullet; - } - - public static BulletConfiguration getEMVisibleConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 2.0F; - bullet.spread = 0F; - bullet.dmgMin = 4; - bullet.dmgMax = 6; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 90; - bullet.HBRC = 2; - bullet.LBRC = 90; - bullet.bounceMod = 1; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.trail = BulletConfiguration.BOLT_WORM; - bullet.dischargePerShot = 2_500; - bullet.firingRate = 5; - bullet.modeName = "weapon.elecGun.glass_cannon.visible"; - bullet.chatColour = EnumChatFormatting.GREEN; - bullet.setToFire(100); - - return bullet; - } - - public static BulletConfiguration getEMUVConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 2.0F; - bullet.spread = 0F; - bullet.dmgMin = 3; - bullet.dmgMax = 3; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 90; - bullet.HBRC = 2; - bullet.LBRC = 90; - bullet.bounceMod = 1; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.trail = BulletConfiguration.BOLT_GLASS_CYAN; - bullet.dischargePerShot = 1_200; - bullet.firingRate = 3; - bullet.modeName = "weapon.elecGun.glass_cannon.uv"; - bullet.chatColour = EnumChatFormatting.AQUA; - bullet.setToFire(100); - - return bullet; - } - - public static BulletConfiguration getEMXrayConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 2.0F; - bullet.spread = 0F; - bullet.dmgMin = 2; - bullet.dmgMax = 2; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 90; - bullet.HBRC = 2; - bullet.LBRC = 90; - bullet.bounceMod = 1; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.trail = BulletConfiguration.BOLT_GLASS_BLUE; - bullet.dischargePerShot = 800; - bullet.firingRate = 2; - bullet.modeName = "weapon.elecGun.glass_cannon.xray"; - bullet.chatColour = EnumChatFormatting.BLUE; - bullet.setToFire(40); - - return bullet; - } - - public static BulletConfiguration getEMGammaConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 2.0F; - bullet.spread = 0F; - bullet.dmgMin = 1; - bullet.dmgMax = 1; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 90; - bullet.HBRC = 2; - bullet.LBRC = 90; - bullet.bounceMod = 1; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.trail = BulletConfiguration.BOLT_LACUNAE; - bullet.dischargePerShot = 400; - bullet.firingRate = 1; - bullet.modeName = "weapon.elecGun.glass_cannon.gamma"; - bullet.chatColour = EnumChatFormatting.LIGHT_PURPLE; - bullet.setToFire(40); - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java index 8af201e52..214aca559 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java @@ -1,183 +1,16 @@ package com.hbm.handler.guncfg; -import java.util.ArrayList; - -import com.hbm.entity.effect.EntitySpear; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletRicochetBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.AmmoRocket; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.block.material.Material; -import net.minecraft.world.World; public class GunRocketFactory { - public static GunConfiguration getGustavConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 30; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 30; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCUMFLEX; - config.firingSound = "hbm:weapon.rpgShoot"; - config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; - config.reloadSoundEnd = false; - - config.name = "gustav"; - config.manufacturer = EnumGunManufacturer.SAAB; - config.comment.add("Fun fact of the day: Recoilless"); - config.comment.add("rifles don't actually fire rockets."); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.ROCKET_NORMAL); - config.config.add(BulletConfigSyncingUtil.ROCKET_HE); - config.config.add(BulletConfigSyncingUtil.ROCKET_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.ROCKET_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.ROCKET_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.ROCKET_EMP); - config.config.add(BulletConfigSyncingUtil.ROCKET_GLARE); - config.config.add(BulletConfigSyncingUtil.ROCKET_TOXIC); - config.config.add(BulletConfigSyncingUtil.ROCKET_CANISTER); - config.config.add(BulletConfigSyncingUtil.ROCKET_SLEEK); - config.config.add(BulletConfigSyncingUtil.ROCKET_NUKE); - config.config.add(BulletConfigSyncingUtil.ROCKET_CHAINSAW); - config.durability = 140; - - return config; - } - - public static GunConfiguration getQuadroConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 5; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 100; - config.firingDuration = 0; - config.ammoCap = 4; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCUMFLEX; - config.firingSound = "hbm:weapon.rpgShoot"; - config.reloadSound = "hbm:weapon.quadroReload"; - config.reloadSoundEnd = false; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("QUADRO_RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, -0.5, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) - ) - ); - - config.animations.put(AnimType.RELOAD, new BusAnimation() - .addBus("QUADRO_RELOAD_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 60, 750)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 60, 3500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 750)) - ) - .addBus("QUADRO_RELOAD_PUSH", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-1, -1, 0, 0)) - .addKeyframe(new BusAnimationKeyframe(-1, -1, 0, 750)) - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 3000)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 750)) - ) - ); - - config.name = "quadro"; - config.manufacturer = EnumGunManufacturer.MANN; - config.comment.add("For the next three hundred years, people who needed to get to the second"); - config.comment.add("floor used the only method available to them, which was rocket jumping."); - config.comment.add("This persisted until 1857, when the young bearded inventor named"); - config.comment.add("President Abraham Lincoln invented stairs."); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.ROCKET_NORMAL_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_HE_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_INCENDIARY_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_PHOSPHORUS_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_SHRAPNEL_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_EMP_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_GLARE_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_TOXIC_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_CANISTER); - config.config.add(BulletConfigSyncingUtil.ROCKET_SLEEK_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_NUKE_LASER); - config.config.add(BulletConfigSyncingUtil.ROCKET_CHAINSAW_LASER); - config.durability = 500; - - return config; - } - - public static GunConfiguration getKarlConfig() { - - GunConfiguration config = getGustavConfig(); - - config.reloadDuration = 20; - - config.name = "karl"; - config.manufacturer = EnumGunManufacturer.UNKNOWN; - config.comment.clear(); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.ROCKET_HE); - config.config.add(BulletConfigSyncingUtil.ROCKET_EMP); - config.config.add(BulletConfigSyncingUtil.ROCKET_SLEEK); - config.config.add(BulletConfigSyncingUtil.ROCKET_TOXIC); - config.config.add(BulletConfigSyncingUtil.ROCKET_CANISTER); - config.config.add(BulletConfigSyncingUtil.ROCKET_NUKE); - config.config.add(BulletConfigSyncingUtil.ROCKET_CHAINSAW); - config.config.add(BulletConfigSyncingUtil.ROCKET_ERROR); - config.durability = 500; - - return config; - } - - public static GunConfiguration getPanzConfig() { - - GunConfiguration config = getGustavConfig(); - - config.reloadDuration = 25; - config.hasSights = true; - - config.name = "panz"; - config.manufacturer = EnumGunManufacturer.ENZINGER; - config.comment.clear(); - config.comment.add("Panzer-Shrek"); - - config.durability = 260; - - return config; - } - public static BulletConfiguration getRocketConfig() { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.STOCK)); + bullet.ammo = new ComparableStack(ModItems.nothing); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.explosive = 4F; @@ -185,251 +18,4 @@ public class GunRocketFactory { return bullet; } - - public static BulletConfiguration getRocketHEConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.HE)); - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 15; - bullet.explosive = 6.5F; - bullet.trail = 1; - - return bullet; - } - - public static BulletConfiguration getRocketIncendiaryConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.INCENDIARY)); - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 15; - bullet.explosive = 4F; - bullet.incendiary = 5; - bullet.trail = 2; - - return bullet; - } - - public static BulletConfiguration getRocketEMPConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.EMP)); - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.explosive = 2.5F; - bullet.emp = 10; - bullet.trail = 4; - - return bullet; - } - - public static BulletConfiguration getRocketSleekConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.SLEEK)); - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.explosive = 10F; - bullet.trail = 6; - bullet.gravity = 0; - bullet.jolt = 6.5D; - - return bullet; - } - - public static BulletConfiguration getRocketShrapnelConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.SHRAPNEL)); - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.explosive = 4F; - bullet.shrapnel = 25; - bullet.trail = 3; - - return bullet; - } - - public static BulletConfiguration getRocketGlareConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.GLARE)); - bullet.velocity = 5.0F; - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 20; - bullet.explosive = 4F; - bullet.incendiary = 5; - bullet.trail = 5; - - return bullet; - } - - public static BulletConfiguration getRocketNukeConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR)); - bullet.velocity = 1.5F; - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 35; - bullet.explosive = 0; - bullet.incendiary = 0; - bullet.trail = 7; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_MEDIUM); - } - }; - - return bullet; - } - - public static BulletConfiguration getRocketChlorineConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CHLORINE)); - bullet.velocity = 1.5F; - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 10; - bullet.explosive = 0; - bullet.chlorine = 50; - bullet.trail = 7; - - return bullet; - } - - public static BulletConfiguration getRocketRPCConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.RPC)); - bullet.velocity = 3.0F; - bullet.dmgMin = 20; - bullet.dmgMax = 25; - bullet.wear = 15; - bullet.explosive = 0; - bullet.incendiary = 0; - bullet.trail = 8; - bullet.gravity = 0.000D; - bullet.ricochetAngle = 90; - bullet.LBRC = 100; - bullet.doesPenetrate = true; - - bullet.bRicochet = new IBulletRicochetBehavior() { - - @Override - public void behaveBlockRicochet(EntityBulletBase bullet, int bX, int bY, int bZ) { - World worldObj = bullet.worldObj; - if(!worldObj.isRemote && - (worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.wood || - worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.plants || - worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.glass || - worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.leaves)) - worldObj.func_147480_a(bX, bY, bZ, false);} - - }; - - return bullet; - } - - public static BulletConfiguration getRocketPhosphorusConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.PHOSPHORUS)); - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 15; - bullet.explosive = 4F; - bullet.incendiary = 5; - bullet.trail = 9; - - bullet.bImpact = BulletConfigFactory.getPhosphorousEffect(10, 60 * 20, 100, 0.5D, 1F); - - return bullet; - } - - public static BulletConfiguration getRocketCanisterConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CANISTER)); - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.explosive = 2F; - bullet.trail = 0; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - if(bullet.ticksExisted > 10) { - bullet.setDead(); - - for(int i = 0; i < 50; i++) { - - EntityBulletBase bolt = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.M44_AP); - bolt.setPosition(bullet.posX, bullet.posY, bullet.posZ); - bolt.setThrowableHeading(bullet.motionX, bullet.motionY, bullet.motionZ, 0.25F, 0.1F); - bullet.worldObj.spawnEntityInWorld(bolt); - } - } - } - } - }; - - return bullet; - } - - public static BulletConfiguration getRocketErrorConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.DIGAMMA)); - bullet.velocity = 0.5F; - bullet.dmgMin = 10; - bullet.dmgMax = 15; - bullet.wear = 35; - bullet.explosive = 0; - bullet.incendiary = 0; - bullet.trail = 7; - - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - EntitySpear spear = new EntitySpear(bullet.worldObj); - spear.posX = bullet.posX; - spear.posZ = bullet.posZ; - spear.posY = bullet.posY + 100; - - bullet.worldObj.spawnEntityInWorld(spear); - } - }; - - return bullet; - } } diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java deleted file mode 100644 index 9ace3b45f..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java +++ /dev/null @@ -1,280 +0,0 @@ -package com.hbm.handler.guncfg; - -import java.util.ArrayList; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.entity.projectile.EntityRocketHoming; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletUpdateBehavior; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.AmmoStinger; -import com.hbm.items.ModItems; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.entity.player.EntityPlayer; - -public class GunRocketHomingFactory { - - public static GunConfiguration getStingerConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 20; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_KRUCK; - config.firingSound = "hbm:weapon.rpgShoot"; - config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; - config.reloadSoundEnd = false; - - config.name = "stinger"; - config.manufacturer = EnumGunManufacturer.RAYTHEON; - config.comment.add("Woosh, beep-beep-beep!"); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_HE); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_NUCLEAR); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_BONES); - config.durability = 250; - - return config; - } - - public static GunConfiguration getSkyStingerConfig() { -GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 20; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 20; - config.firingDuration = 0; - config.ammoCap = 1; - config.reloadType = GunConfiguration.RELOAD_SINGLE; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_KRUCK; - config.firingSound = "hbm:weapon.rpgShoot"; - config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; - config.reloadSoundEnd = false; - - config.name = "stingerOneSky"; - config.manufacturer = EnumGunManufacturer.EQUESTRIA; - config.comment.add("Oh, I get it, because of the...nyeees!"); - config.comment.add("It all makes sense now!"); - config.comment.add(""); - config.comment.add("Rockets travel faster, are Three times stronger"); - config.comment.add("and fires a second rocket for free"); - config.comment.add(""); - config.comment.add("[LEGENDARY WEAPON]"); - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_HE); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_NUCLEAR); - config.config.add(BulletConfigSyncingUtil.ROCKET_STINGER_BONES); - config.durability = 1000; - - return config; - } - - public static BulletConfiguration getRocketStingerConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.STOCK)); - bullet.dmgMin = 20; - bullet.dmgMax = 25; - bullet.explosive = 4F; - bullet.trail = 0; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 0); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 0); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 0); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); - bullet.setDead(); - - } - } - }; - return bullet; - } - - public static BulletConfiguration getRocketStingerHEConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE)); - bullet.dmgMin = 30; - bullet.dmgMax = 35; - bullet.explosive = 8F; - bullet.trail = 0; - bullet.wear = 15; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 1); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 1); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 1); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); - bullet.setDead(); - - } - } - }; - return bullet; - } - - public static BulletConfiguration getRocketStingerIncendiaryConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.INCENDIARY)); - bullet.dmgMin = 15; - bullet.dmgMax = 20; - bullet.explosive = 4F; - bullet.trail = 0; - bullet.wear = 12; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 2); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 2); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 2); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); - bullet.setDead(); - - } - } - }; - return bullet; - } - - public static BulletConfiguration getRocketStingerNuclearConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.NUCLEAR)); - bullet.dmgMin = 50; - bullet.dmgMax = 55; - bullet.explosive = 15F; - bullet.trail = 0; - bullet.wear = 30; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - - if(player.getDistanceToEntity(bullet) < 16) { - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 4); - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); - } - bullet.setDead(); - - } - } - }; - return bullet; - } - - public static BulletConfiguration getRocketStingerBonesConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.BONES)); - bullet.dmgMin = 20; - bullet.dmgMax = 25; - bullet.explosive = 8F; - bullet.trail = 0; - - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - - if(player.getDistanceToEntity(bullet) < 16) { - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 42); - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); - } - bullet.setDead(); - - } - } - }; - return bullet; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java b/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java new file mode 100644 index 000000000..c1d630223 --- /dev/null +++ b/src/main/java/com/hbm/handler/imc/ICompatNHNEI.java @@ -0,0 +1,14 @@ +package com.hbm.handler.imc; + +import net.minecraft.item.ItemStack; + +public interface ICompatNHNEI { + /** + * First item on the list is the icon for the recipe in the NEI GUI, the + * rest are displayed on the sidebar as other items that can be used for the + * same purpose + **/ + public ItemStack[] getMachinesForRecipe(); + public String getRecipeID(); + +} diff --git a/src/main/java/com/hbm/handler/imc/IMCCrystallizer.java b/src/main/java/com/hbm/handler/imc/IMCCrystallizer.java index 875e14f46..9230bb11c 100644 --- a/src/main/java/com/hbm/handler/imc/IMCCrystallizer.java +++ b/src/main/java/com/hbm/handler/imc/IMCCrystallizer.java @@ -40,7 +40,7 @@ public class IMCCrystallizer extends IMCHandler { time = 600; if(acid.type == Fluids.NONE) - acid = new FluidStack(Fluids.ACID, 500); + acid = new FluidStack(Fluids.PEROXIDE, 500); CrystallizerRecipe recipe = new CrystallizerRecipe(out, time); recipe.acidAmount = acid.fill; diff --git a/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java b/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java new file mode 100644 index 000000000..78defc553 --- /dev/null +++ b/src/main/java/com/hbm/handler/imc/IMCHandlerNHNEI.java @@ -0,0 +1,61 @@ +package com.hbm.handler.imc; + +import codechicken.nei.recipe.TemplateRecipeHandler; +import com.hbm.lib.RefStrings; +import com.hbm.main.NEIRegistry; + +import cpw.mods.fml.common.event.FMLInterModComms; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class IMCHandlerNHNEI { + + public static void IMCSender() { + + for(TemplateRecipeHandler handler : NEIRegistry.listAllHandlers()) { + + Class handlerClass = handler.getClass(); + + if(handler instanceof ICompatNHNEI && ((ICompatNHNEI) handler).getMachinesForRecipe() != null) { + String blockName = "hbm:" + ((ICompatNHNEI) handler).getMachinesForRecipe()[0].getUnlocalizedName(); + String hClass = handlerClass.getName(); + sendHandler(hClass, ((ICompatNHNEI) handler).getRecipeID(), blockName); + for(ItemStack stack : ((ICompatNHNEI) handler).getMachinesForRecipe()) { + sendCatalyst(hClass, "hbm:" + stack.getUnlocalizedName()); + } + } + } + } + + private static void sendHandler(String aName, String handlerID, String aBlock) { + sendHandler(aName, handlerID, aBlock, 3); + } + + private static void sendHandler(String aName, String handlerID, String aBlock, int maxRecipesPerPage) { + NBTTagCompound aNBT = new NBTTagCompound(); + aNBT.setString("handler", aName); + aNBT.setString("handlerID", handlerID); + aNBT.setString("modName", RefStrings.NAME); + aNBT.setString("modId", RefStrings.MODID); + aNBT.setBoolean("modRequired", true); + aNBT.setString("itemName", aBlock); + aNBT.setInteger("handlerHeight", 65); + aNBT.setInteger("handlerWidth", 166); + aNBT.setInteger("maxRecipesPerPage", maxRecipesPerPage); + aNBT.setInteger("yShift", 6); + FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", aNBT); + } + + private static void sendCatalyst(String aName, String aStack, int aPriority) { + NBTTagCompound aNBT = new NBTTagCompound(); + aNBT.setString("handlerID", aName); + aNBT.setString("catalystHandlerID", aName); + aNBT.setString("itemName", aStack); + aNBT.setInteger("priority", aPriority); + FMLInterModComms.sendMessage("NotEnoughItems", "registerCatalystInfo", aNBT); + } + + private static void sendCatalyst(String aName, String aStack) { + sendCatalyst(aName, aStack, 0); + } +} diff --git a/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java index 8b76d904b..ee1d09a5b 100644 --- a/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AlloyFurnaceRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIDiFurnace; import com.hbm.inventory.recipes.BlastFurnaceRecipes; import com.hbm.inventory.recipes.MachineRecipes; @@ -17,10 +19,22 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class AlloyFurnaceRecipeHandler extends TemplateRecipeHandler { +public class AlloyFurnaceRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public static ArrayList fuels; + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_difurnace_off), + new ItemStack(ModBlocks.machine_difurnace_rtg_off)}; + } + + @Override + public String getRecipeID() { + return "alloysmelting"; + } + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input1; PositionedStack input2; diff --git a/src/main/java/com/hbm/handler/nei/AmmoPressHandler.java b/src/main/java/com/hbm/handler/nei/AmmoPressHandler.java new file mode 100644 index 000000000..3f1ba26b8 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/AmmoPressHandler.java @@ -0,0 +1,16 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.AmmoPressRecipes; + +public class AmmoPressHandler extends NEIUniversalHandler { + + public AmmoPressHandler() { + super(ModBlocks.machine_ammo_press.getLocalizedName(), ModBlocks.machine_ammo_press, AmmoPressRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmAmmoPress"; + } +} diff --git a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java index 4df799a33..2621af6f1 100644 --- a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java @@ -7,7 +7,9 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.NTMAnvil; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; @@ -24,7 +26,29 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class AnvilRecipeHandler extends TemplateRecipeHandler { +public class AnvilRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.anvil_iron), + new ItemStack(ModBlocks.anvil_lead), + new ItemStack(ModBlocks.anvil_steel), + new ItemStack(ModBlocks.anvil_desh), + new ItemStack(ModBlocks.anvil_saturnite), + new ItemStack(ModBlocks.anvil_ferrouranium), + new ItemStack(ModBlocks.anvil_bismuth_bronze), + new ItemStack(ModBlocks.anvil_arsenic_bronze), + new ItemStack(ModBlocks.anvil_schrabidate), + new ItemStack(ModBlocks.anvil_dnt), + new ItemStack(ModBlocks.anvil_osmiridium), + new ItemStack(ModBlocks.anvil_murky)}; + } + + @Override + public String getRecipeID() { + return "ntmAnvil"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/ArcFurnaceFluidHandler.java b/src/main/java/com/hbm/handler/nei/ArcFurnaceFluidHandler.java new file mode 100644 index 000000000..b7290eedb --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ArcFurnaceFluidHandler.java @@ -0,0 +1,16 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.ArcFurnaceRecipes; + +public class ArcFurnaceFluidHandler extends NEIUniversalHandler { + + public ArcFurnaceFluidHandler() { + super(ModBlocks.machine_arc_furnace.getLocalizedName(), ModBlocks.machine_arc_furnace, ArcFurnaceRecipes.getFluidRecipes()); + } + + @Override + public String getKey() { + return "ntmArcFurnaceFluid"; + } +} diff --git a/src/main/java/com/hbm/handler/nei/ArcFurnaceSolidHandler.java b/src/main/java/com/hbm/handler/nei/ArcFurnaceSolidHandler.java new file mode 100644 index 000000000..7345e4f72 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ArcFurnaceSolidHandler.java @@ -0,0 +1,16 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.ArcFurnaceRecipes; + +public class ArcFurnaceSolidHandler extends NEIUniversalHandler { + + public ArcFurnaceSolidHandler() { + super(ModBlocks.machine_arc_furnace.getLocalizedName(), ModBlocks.machine_arc_furnace, ArcFurnaceRecipes.getSolidRecipes()); + } + + @Override + public String getKey() { + return "ntmArcFurnaceSolid"; + } +} diff --git a/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java b/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java new file mode 100644 index 000000000..b1eb411bf --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java @@ -0,0 +1,60 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.Locale; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineArcWelder; +import com.hbm.inventory.recipes.ArcWelderRecipes; +import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.item.ItemStack; + +public class ArcWelderHandler extends NEIUniversalHandler { + + public ArcWelderHandler() { + super(ModBlocks.machine_arc_welder.getLocalizedName(), ModBlocks.machine_arc_welder, ArcWelderRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmArcWelder"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(67, 26, 32, 14), "ntmArcWelder")); + guiGui.add(GUIMachineArcWelder.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawExtras(int recipe) { + + RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); + Object[] original = (Object[]) rec.originalInputInstance; + ItemStack output = rec.output[0].item; + + outer: for(ArcWelderRecipe arc : ArcWelderRecipes.recipes) { + + //checks do not include the fluid, will break of there's two recipes with identical input and output but with fluids + if(ItemStack.areItemStacksEqual(arc.output, output) && arc.ingredients.length == original.length - (arc.fluid == null ? 0 : 1)) { + + for(int i = 0; i < rec.input.length - (arc.fluid == null ? 0 : 1); i++) { + if(arc.ingredients[i] != original[i]) continue outer; + } + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + String duration = String.format(Locale.US, "%,d", arc.duration) + " ticks"; + String consumption = String.format(Locale.US, "%,d", arc.consumption) + " HE/t"; + int side = 160; + fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 43, 0x404040); + fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 55, 0x404040); + return; + } + } + } +} diff --git a/src/main/java/com/hbm/handler/nei/AshpitHandler.java b/src/main/java/com/hbm/handler/nei/AshpitHandler.java new file mode 100644 index 000000000..6e4313a84 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/AshpitHandler.java @@ -0,0 +1,50 @@ +package com.hbm.handler.nei; + +import java.util.HashMap; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class AshpitHandler extends NEIUniversalHandler { + + public AshpitHandler() { + super(ModBlocks.machine_ashpit.getLocalizedName(), ModBlocks.machine_ashpit, getRecipes()); + } + + @Override + public String getKey() { + return "ntmAshpit"; + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + ItemStack[] ovens = new ItemStack[] {new ItemStack(ModBlocks.heater_firebox), new ItemStack(ModBlocks.heater_oven)}; + ItemStack[] chimneys = new ItemStack[] {new ItemStack(ModBlocks.chimney_brick), new ItemStack(ModBlocks.chimney_industrial)}; + ItemStack[] coals = new ItemStack[] {new ItemStack(Items.coal, 1, 0), new ItemStack(ModItems.lignite), new ItemStack(ModItems.coke)}; + ItemStack[] wood = new ItemStack[] {new ItemStack(Blocks.log), new ItemStack(Blocks.log2), new ItemStack(Blocks.planks), new ItemStack(Blocks.sapling)}; + ItemStack[] misc = new ItemStack[] {new ItemStack(ModItems.solid_fuel), new ItemStack(ModItems.scrap), new ItemStack(ModItems.dust), new ItemStack(ModItems.rocket_fuel)}; + FluidType[] smokes = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON};; + + recipes.put(new ItemStack[][] {ovens, coals}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.COAL)); + recipes.put(new ItemStack[][] {ovens, wood}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD)); + recipes.put(new ItemStack[][] {ovens, misc}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC)); + + for(FluidType smoke : smokes) { + recipes.put(new ItemStack[][] {chimneys, new ItemStack[] {ItemFluidIcon.make(smoke, 2_000)}}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FLY)); + recipes.put(new ItemStack[][] {new ItemStack[] {new ItemStack(ModBlocks.chimney_industrial)}, new ItemStack[] {ItemFluidIcon.make(smoke, 8_000)}}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.SOOT)); + } + + return recipes; + } +} diff --git a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java index f533fc02c..d3ddb9df0 100644 --- a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineAssembler; import com.hbm.inventory.recipes.AssemblerRecipes; @@ -19,13 +21,25 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class AssemblerRecipeHandler extends TemplateRecipeHandler { +public class AssemblerRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); public LinkedList> guiGui = new LinkedList>(); + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_assembler), + new ItemStack(ModBlocks.machine_assemfac)}; + } + + @Override + public String getRecipeID() { + return "assembly"; + } + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { List input; diff --git a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java deleted file mode 100644 index 5d966c2b8..000000000 --- a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.hbm.handler.nei; - -import java.awt.Rectangle; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import com.hbm.inventory.gui.GUIMachineBoiler; -import com.hbm.inventory.gui.GUIMachineBoilerElectric; -import com.hbm.inventory.recipes.MachineRecipes; -import com.hbm.lib.RefStrings; - -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.TemplateRecipeHandler; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.item.ItemStack; - -public class BoilerRecipeHandler extends TemplateRecipeHandler { - - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); - - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe - { - PositionedStack input; - PositionedStack result; - - public SmeltingSet(ItemStack input, ItemStack result) { - input.stackSize = 1; - this.input = new PositionedStack(input, 21 + 9, 6 + 18); - this.result = new PositionedStack(result, 120, 24); - } - - @Override - public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input})); - } - - @Override - public PositionedStack getResult() { - return result; - } - } - - @Override - public String getRecipeName() { - return "Boiler"; - } - - @Override - public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/nei/gui_nei_boiler.png"; - } - - @Override - public Class getGuiClass() { - return null; - } - - @Override - public TemplateRecipeHandler newInstance() { - return super.newInstance(); - } - - @Override - public void loadCraftingRecipes(String outputId, Object... results) { - if ((outputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { - Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), - (ItemStack)recipe.getValue())); - } - } else { - super.loadCraftingRecipes(outputId, results); - } - } - - @Override - public void loadCraftingRecipes(ItemStack result) { - Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (compareFluidStacks((ItemStack)recipe.getValue(), result) || - compareFluidStacks((ItemStack)recipe.getValue(), result)) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), - (ItemStack)recipe.getValue())); - } - } - - @Override - public void loadUsageRecipes(String inputId, Object... ingredients) { - if ((inputId.equals("ntmboiler")) && getClass() == BoilerRecipeHandler.class) { - loadCraftingRecipes("ntmboiler", new Object[0]); - } else { - super.loadUsageRecipes(inputId, ingredients); - } - } - - @Override - public void loadUsageRecipes(ItemStack ingredient) { - Map recipes = MachineRecipes.instance().getBoilerRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (compareFluidStacks(ingredient, (ItemStack)recipe.getKey())) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), - (ItemStack)recipe.getValue())); - } - } - - private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { - return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); - } - - @Override - public void drawExtras(int recipe) { - drawProgressBar(80, 23, 0, 85, 6, 17, 240, 3); - } - - @Override - public void loadTransferRects() { - transferRectsGui = new LinkedList(); - guiGui = new LinkedList>(); - - transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27 - 9, 23, 36, 18), "ntmboiler")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 29 - 18 - 18, 18, 18 * 2), "ntmboiler")); - guiGui.add(GUIMachineBoiler.class); - guiGui.add(GUIMachineBoilerElectric.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - } -} diff --git a/src/main/java/com/hbm/handler/nei/BoilingHandler.java b/src/main/java/com/hbm/handler/nei/BoilingHandler.java index a048cfb44..392468a89 100644 --- a/src/main/java/com/hbm/handler/nei/BoilingHandler.java +++ b/src/main/java/com/hbm/handler/nei/BoilingHandler.java @@ -13,34 +13,35 @@ import com.hbm.items.machine.ItemFluidIcon; public class BoilingHandler extends NEIUniversalHandler { public BoilingHandler() { - super("Boiler", ModBlocks.machine_boiler, generateRecipes()); + super(ModBlocks.machine_boiler.getLocalizedName(), ModBlocks.machine_boiler, generateRecipes()); } @Override public String getKey() { return "ntmBoiling"; } - + public static HashMap cache; - + public static boolean isReload=false; + public static HashMap generateRecipes() { - - if(cache != null) return cache; - + + if(cache != null && !isReload) return cache; + cache = new HashMap(); - + for(FluidType type : Fluids.getInNiceOrder()) { - + if(type.hasTrait(FT_Heatable.class)) { FT_Heatable trait = type.getTrait(FT_Heatable.class); - + if(trait.getEfficiency(HeatingType.BOILER) > 0) { HeatingStep step = trait.getFirstStep(); cache.put(ItemFluidIcon.make(type, step.amountReq), ItemFluidIcon.make(step.typeProduced, step.amountProduced)); } } } - + isReload=false; return cache; } } diff --git a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java index 44e6c7ded..d77b5ac74 100644 --- a/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BookRecipeHandler.java @@ -4,6 +4,7 @@ import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -14,12 +15,22 @@ import com.hbm.inventory.recipes.MagicRecipes.MagicRecipe; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; +import com.hbm.items.ModItems; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class BookRecipeHandler extends TemplateRecipeHandler { +public class BookRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.book_of_)}; + } - public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + @Override + public String getRecipeID() { + return "book_of_boxcars"; + } + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { List input; PositionedStack result; diff --git a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java index 8f91f8d75..0fc3f70d2 100644 --- a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java @@ -5,6 +5,8 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineReactorBreeding; import com.hbm.inventory.recipes.BreederRecipes; import com.hbm.inventory.recipes.BreederRecipes.BreederRecipe; @@ -16,8 +18,18 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class BreederRecipeHandler extends TemplateRecipeHandler { +public class BreederRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_reactor_breeding)}; + } + + @Override + public String getRecipeID() { + return "breeding"; + } public class BreedingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input; diff --git a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java index 9ef27b9a9..b0b5e19a4 100644 --- a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -5,6 +5,8 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIMachineChemplant; @@ -20,14 +22,26 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class ChemplantRecipeHandler extends TemplateRecipeHandler { +public class ChemplantRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); public LinkedList> guiGui = new LinkedList>(); + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_chemplant), + new ItemStack(ModBlocks.machine_chemfac)}; + } + + @Override + public String getRecipeID() { + return "chemistry"; + } public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack[] itemIn = new PositionedStack[4]; PositionedStack[] fluidIn = new PositionedStack[2]; PositionedStack[] itemOut = new PositionedStack[4]; diff --git a/src/main/java/com/hbm/handler/nei/ChunkyHandler.java b/src/main/java/com/hbm/handler/nei/ChunkyHandler.java deleted file mode 100644 index 02ff171c1..000000000 --- a/src/main/java/com/hbm/handler/nei/ChunkyHandler.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.handler.nei; - -import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect; - -import org.lwjgl.opengl.GL11; - -import com.hbm.config.GeneralConfig; -import com.hbm.lib.RefStrings; - -import codechicken.nei.PositionedStack; -import codechicken.nei.guihook.GuiContainerManager; -import codechicken.nei.recipe.TemplateRecipeHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; - -public class ChunkyHandler extends TemplateRecipeHandler { - - public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { - - ItemStack stack; - - public RecipeSet(ItemStack stack) { - this.stack = stack.copy(); - this.stack.stackSize = 1; - } - - @Override - public PositionedStack getResult() { - return null; - } - } - - @Override - public String getRecipeName() { - return ""; - } - - @Override - public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/nei/gui_nei.png"; - } - - @Override - public void loadCraftingRecipes(ItemStack result) { - if(GeneralConfig.enableChunkyNEIHandler) - this.arecipes.add(new RecipeSet(result)); - } - - @Override - public void loadUsageRecipes(ItemStack ingredient) { - if(GeneralConfig.enableChunkyNEIHandler) - this.arecipes.add(new RecipeSet(ingredient)); - } - - @Override - public void drawExtras(int recipe) { - RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); - drawTexturedModalRect(145, 0, 20, 20, 20, 20); - GL11.glPushMatrix(); - GL11.glTranslated(83, 50, 0); - double scale = 5D; - GL11.glScaled(scale, scale, scale); - RenderHelper.enableGUIStandardItemLighting(); - GL11.glTranslated(-8, -8, 0); - GuiContainerManager.drawItem(0, 0, rec.stack); - GL11.glPopMatrix(); - RenderHelper.enableGUIStandardItemLighting(); - - FontRenderer font = Minecraft.getMinecraft().fontRenderer; - - int w = 83; - String top = "The same thing but in big"; - String bottom = "so you can really stare at it"; - font.drawString(top, w - font.getStringWidth(top) / 2, 100, 0x404040); - font.drawString(bottom, w - font.getStringWidth(bottom) / 2, 110, 0x404040); - } -} diff --git a/src/main/java/com/hbm/handler/nei/CokingHandler.java b/src/main/java/com/hbm/handler/nei/CokingHandler.java index a0227147e..41d0c72ce 100644 --- a/src/main/java/com/hbm/handler/nei/CokingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CokingHandler.java @@ -9,7 +9,7 @@ import com.hbm.inventory.recipes.CokerRecipes; public class CokingHandler extends NEIUniversalHandler { public CokingHandler() { - super("Coking", ModBlocks.machine_coker, CokerRecipes.getRecipes()); + super(ModBlocks.machine_coker.getLocalizedName(), ModBlocks.machine_coker, CokerRecipes.getRecipes()); } @Override diff --git a/src/main/java/com/hbm/handler/nei/CombinationHandler.java b/src/main/java/com/hbm/handler/nei/CombinationHandler.java index 0c07afbbc..b303a2b53 100644 --- a/src/main/java/com/hbm/handler/nei/CombinationHandler.java +++ b/src/main/java/com/hbm/handler/nei/CombinationHandler.java @@ -9,7 +9,7 @@ import com.hbm.inventory.recipes.CombinationRecipes; public class CombinationHandler extends NEIUniversalHandler { public CombinationHandler() { - super("Combination Furnace", ModBlocks.furnace_combination, CombinationRecipes.getRecipes()); + super(ModBlocks.furnace_combination.getLocalizedName(), ModBlocks.furnace_combination, CombinationRecipes.getRecipes()); } @Override diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index 557a71163..05105f579 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -16,6 +16,14 @@ public class ConstructionHandler extends NEIUniversalHandler { super("Construction", getRecipes(true), getRecipes(false)); } + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.acetylene_torch), + new ItemStack(ModItems.blowtorch), + new ItemStack(ModItems.boltgun)}; + } + @Override public String getKey() { return "ntmConstruction"; @@ -33,9 +41,9 @@ public class ConstructionHandler extends NEIUniversalHandler { /* WATZ */ ItemStack[] watz = new ItemStack[] { new ItemStack(ModBlocks.watz_end, 48), - new ItemStack(ModItems.bolt_dura_steel, 64), - new ItemStack(ModItems.bolt_dura_steel, 64), - new ItemStack(ModItems.bolt_dura_steel, 64), + Mats.MAT_DURA.make(ModItems.bolt, 64), + Mats.MAT_DURA.make(ModItems.bolt, 64), + Mats.MAT_DURA.make(ModItems.bolt, 64), new ItemStack(ModBlocks.watz_element, 36), new ItemStack(ModBlocks.watz_cooler, 26), new ItemStack(ModItems.boltgun)}; @@ -46,9 +54,9 @@ public class ConstructionHandler extends NEIUniversalHandler { /* ITER */ ItemStack[] iter = new ItemStack[] { new ItemStack(ModBlocks.fusion_conductor, 36), - ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.fusion_conductor, 320), EnumChatFormatting.RED + "5x64"), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.fusion_conductor, 256), EnumChatFormatting.RED + "4x64"), new ItemStack(ModItems.plate_cast, 36, Mats.MAT_STEEL.id), - ItemStackUtil.addTooltipToStack(new ItemStack(ModItems.plate_cast, 320, Mats.MAT_STEEL.id), EnumChatFormatting.RED + "5x64"), + ItemStackUtil.addTooltipToStack(new ItemStack(ModItems.plate_cast, 256, Mats.MAT_STEEL.id), EnumChatFormatting.RED + "4x64"), new ItemStack(ModBlocks.fusion_center, 64), new ItemStack(ModBlocks.fusion_motor, 4), new ItemStack(ModBlocks.reinforced_glass, 8), @@ -83,16 +91,30 @@ public class ConstructionHandler extends NEIUniversalHandler { /* SOYUZ LAUNCHER */ ItemStack[] soysauce = new ItemStack[] { - new ItemStack(ModBlocks.struct_launcher, 60), - ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.struct_launcher, 320), EnumChatFormatting.RED + "5x64"), - new ItemStack(ModBlocks.struct_scaffold, 53), + new ItemStack(ModBlocks.struct_launcher, 30), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.struct_launcher, 384), EnumChatFormatting.RED + "6x64"), + new ItemStack(ModBlocks.struct_scaffold, 63), ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.struct_scaffold, 384), EnumChatFormatting.RED + "6x64"), - new ItemStack(ModBlocks.concrete_smooth, 8), + new ItemStack(ModBlocks.concrete_smooth, 38), ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.concrete_smooth, 320), EnumChatFormatting.RED + "5x64"),}; bufferedRecipes.put(soysauce, new ItemStack(ModBlocks.soyuz_launcher)); bufferedTools.put(soysauce, new ItemStack(ModBlocks.struct_soyuz_core)); + /* ICF */ + ItemStack[] icf = new ItemStack[] { + new ItemStack(ModBlocks.icf_component, 50, 0), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.icf_component, 240, 3), EnumChatFormatting.RED + "3x64 + 48"), + ItemStackUtil.addTooltipToStack(Mats.MAT_DURA.make(ModItems.bolt, 960), EnumChatFormatting.RED + "15x64"), + ItemStackUtil.addTooltipToStack(Mats.MAT_STEEL.make(ModItems.plate_cast, 240), EnumChatFormatting.RED + "3x64 + 48"), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.icf_component, 117, 1), EnumChatFormatting.RED + "64 + 53"), + ItemStackUtil.addTooltipToStack(Mats.MAT_BBRONZE.make(ModItems.plate_cast, 117), EnumChatFormatting.RED + "64 + 53"), + new ItemStack(ModItems.blowtorch), + new ItemStack(ModItems.boltgun) }; + + bufferedRecipes.put(icf, new ItemStack(ModBlocks.icf)); + bufferedTools.put(icf, new ItemStack(ModBlocks.struct_icf_core)); + return recipes ? bufferedRecipes : bufferedTools; } } diff --git a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java index 80ccd314b..4cdca10fe 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java @@ -6,6 +6,7 @@ import java.util.LinkedList; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.material.NTMMaterial; @@ -20,7 +21,16 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleAlloyingHandler extends TemplateRecipeHandler { +public class CrucibleAlloyingHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_crucible)}; + } + @Override + public String getRecipeID() { + return "ntmCrucibleAlloying"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java index 1befff001..eff865fb4 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleCastingHandler.java @@ -6,6 +6,8 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.material.Mats; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.items.machine.ItemMold; @@ -17,7 +19,19 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleCastingHandler extends TemplateRecipeHandler { +public class CrucibleCastingHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.foundry_basin), + new ItemStack(ModBlocks.foundry_mold), + new ItemStack(ModBlocks.machine_strand_caster)}; + } + @Override + public String getRecipeID() { + return "ntmCrucibleFoundry"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java index b6af31dc1..63bbc26e7 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleSmeltingHandler.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.lib.RefStrings; @@ -19,8 +20,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CrucibleSmeltingHandler extends TemplateRecipeHandler { - +public class CrucibleSmeltingHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_crucible)}; + } + @Override + public String getRecipeID() { + return "ntmCrucibleSmelting"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java new file mode 100644 index 000000000..fa3b88f6a --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -0,0 +1,240 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import codechicken.lib.gui.GuiDraw; +import com.hbm.blocks.ModBlocks; +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.CustomMachineRecipes; +import com.hbm.inventory.recipes.CustomMachineRecipes.CustomMachineRecipe; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.lib.RefStrings; +import com.hbm.util.ItemStackUtil; +import com.hbm.util.Tuple.Pair; + +import codechicken.nei.NEIServerUtils; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.TemplateRecipeHandler; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class CustomMachineHandler extends TemplateRecipeHandler { + + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + + public MachineConfiguration conf; + + @Override + public TemplateRecipeHandler newInstance() { // brick by brick, suck my dick + try { + return new CustomMachineHandler(conf); + } catch(Exception e) { + throw new RuntimeException(e); + } + } + + public CustomMachineHandler(MachineConfiguration conf) { + super(); + this.conf = conf; + loadTransferRects(); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + } + + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + + List inputs = new ArrayList(); + PositionedStack machine; + List outputs = new ArrayList(); + public int flux = 0; + public int heat = 0; + public float radiationAmount = 0; + public String pollutionType; + public float pollutionAmount = 0; + + public RecipeSet(CustomMachineRecipe recipe) { + + for(int i = 0; i < 3; i++) if(recipe.inputFluids.length > i) inputs.add(new PositionedStack(ItemFluidIcon.make(recipe.inputFluids[i]), 12 + i * 18, 6)); + for(int i = 0; i < 3; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + i * 18, 24)); + for(int i = 3; i < 6; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + (i - 3) * 18, 42)); + + for(int i = 0; i < 3; i++) if(recipe.outputFluids.length > i) outputs.add(new PositionedStack(ItemFluidIcon.make(recipe.outputFluids[i]), 102 + i * 18, 6)); + + for(int i = 0; i < 3; i++) if(recipe.outputItems.length > i) { + Pair pair = recipe.outputItems[i]; + ItemStack out = pair.getKey().copy(); + if(pair.getValue() != 1) { + ItemStackUtil.addTooltipToStack(out, EnumChatFormatting.RED + "" + (((int)(pair.getValue() * 1000)) / 10D) + "%"); + } + outputs.add(new PositionedStack(out, 102 + i * 18, 24)); + } + + for(int i = 3; i < 6; i++) if(recipe.outputItems.length > i) { + Pair pair = recipe.outputItems[i]; + ItemStack out = pair.getKey().copy(); + if(pair.getValue() != 1) { + ItemStackUtil.addTooltipToStack(out, EnumChatFormatting.RED + "" + (((int)(pair.getValue() * 1000)) / 10D) + "%"); + } + outputs.add(new PositionedStack(out, 102 + (i - 3) * 18, 42)); + } + + this.pollutionType = recipe.pollutionType; + this.pollutionAmount = recipe.pollutionAmount; + this.radiationAmount = recipe.radiationAmount; + if(conf.fluxMode) this.flux = recipe.flux; + if(conf.maxHeat > 0 && recipe.heat > 0) this.heat = recipe.heat; + + this.machine = new PositionedStack(new ItemStack(ModBlocks.custom_machine, 1, 100 + CustomMachineConfigJSON.niceList.indexOf(conf)), 75, 42); + } + + @Override + public List getIngredients() { + return getCycledIngredients(cycleticks / 20, inputs); + } + + @Override + public PositionedStack getResult() { + return outputs.get(0); + } + + @Override + public List getOtherStacks() { + List other = new ArrayList(); + other.addAll(inputs); + other.add(machine); + other.addAll(outputs); + return getCycledIngredients(cycleticks / 20, other); + } + } + + @Override + public String getRecipeName() { + return conf.localizedName; + } + + @Override + public String getGuiTexture() { + return RefStrings.MODID + ":textures/gui/nei/gui_nei_custom.png"; + } + + @Override + public void loadCraftingRecipes(String outputId, Object... results) { + + if(outputId.equals("ntm_" + conf.unlocalizedName)) { + + List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); + + if(recipes != null) for(CustomMachineRecipe recipe : recipes) { + this.arecipes.add(new RecipeSet(recipe)); + } + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + + List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); + + if(recipes != null) outer:for(CustomMachineRecipe recipe : recipes) { + + for(Pair stack : recipe.outputItems) { + + if(NEIServerUtils.areStacksSameTypeCrafting(stack.getKey(), result)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + + for(FluidStack fluid : recipe.outputFluids) { + ItemStack drop = ItemFluidIcon.make(fluid); + + if(compareFluidStacks(result, drop)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + } + } + + @Override + public void loadUsageRecipes(String inputId, Object... ingredients) { + + if(inputId.equals("ntm_" + conf.unlocalizedName)) { + loadCraftingRecipes("ntm_" + conf.unlocalizedName, new Object[0]); + } else { + super.loadUsageRecipes(inputId, ingredients); + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + + List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); + + if(recipes != null) outer:for(CustomMachineRecipe recipe : recipes) { + + for(AStack stack : recipe.inputItems) { + + List stacks = stack.extractForNEI(); + + for(ItemStack sta : stacks) { + if(NEIServerUtils.areStacksSameTypeCrafting(ingredient, sta)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + } + + for(FluidStack fluid : recipe.inputFluids) { + ItemStack drop = ItemFluidIcon.make(fluid); + + if(compareFluidStacks(ingredient, drop)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + } + } + + public static boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { + return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); + } + + @Override + public void loadTransferRects() { + if(this.conf == null) return; + transferRects.clear(); + transferRects.add(new RecipeTransferRect(new Rectangle(65, 23, 36, 18), "ntm_" + conf.unlocalizedName)); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + } + @Override + public void drawExtras(int recipe) { + RecipeSet Recipe = (RecipeSet) this.arecipes.get(recipe); + int side = 83; + if(Recipe.radiationAmount != 0){ + String radiation = "Radiation:" + Recipe.radiationAmount + ""; + GuiDraw.drawString(radiation, 160 - GuiDraw.fontRenderer.getStringWidth(radiation), 63, 0x08FF00); + } + if (Recipe.pollutionAmount != 0){ + String pollution = Recipe.pollutionType + ":" + Recipe.pollutionAmount + ""; + GuiDraw.drawString(pollution, 160 - GuiDraw.fontRenderer.getStringWidth(pollution), 75, 0x404040); + } + if(conf.fluxMode) { + String flux = "Flux:" + Recipe.flux + ""; + GuiDraw.drawString(flux, side - GuiDraw.fontRenderer.getStringWidth(flux) / 2, 16, 0x08FF00); + } + if(conf.maxHeat>0 && Recipe.heat>0){ + String heat = "Heat:" + Recipe.heat + ""; + GuiDraw.drawString(heat, side - GuiDraw.fontRenderer.getStringWidth(heat) / 2, 8, 0xFF0000); + } + } +} diff --git a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java index b4f9221f2..bdc9a3954 100644 --- a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineCyclotron; import com.hbm.inventory.recipes.CyclotronRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +18,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class CyclotronRecipeHandler extends TemplateRecipeHandler { - +public class CyclotronRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_cyclotron)}; + } + + @Override + public String getRecipeID() { + return "cyclotronProcessing"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); @@ -109,7 +120,7 @@ public class CyclotronRecipeHandler extends TemplateRecipeHandler { guiGui = new LinkedList>(); transferRects.add(new RecipeTransferRect(new Rectangle(83 - 3 + 16 - 52, 5 + 18 + 1, 24, 18), "cyclotronProcessing")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(47, 15, 36, 36), "cyclotronProcessing")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(48 - 5, 27 - 11, 34, 34), "cyclotronProcessing")); guiGui.add(GUIMachineCyclotron.class); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); diff --git a/src/main/java/com/hbm/handler/nei/ElectrolyserFluidHandler.java b/src/main/java/com/hbm/handler/nei/ElectrolyserFluidHandler.java new file mode 100644 index 000000000..5072b1bfb --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ElectrolyserFluidHandler.java @@ -0,0 +1,27 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIElectrolyserFluid; +import com.hbm.inventory.recipes.ElectrolyserFluidRecipes; + +public class ElectrolyserFluidHandler extends NEIUniversalHandler { + + public ElectrolyserFluidHandler() { + super(ModBlocks.machine_electrolyser.getLocalizedName(), ModBlocks.machine_electrolyser, ElectrolyserFluidRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmElectrolysisFluid"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(57, 15, 12, 40), "ntmElectrolysisFluid")); + guiGui.add(GUIElectrolyserFluid.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } +} diff --git a/src/main/java/com/hbm/handler/nei/ElectrolyserMetalHandler.java b/src/main/java/com/hbm/handler/nei/ElectrolyserMetalHandler.java new file mode 100644 index 000000000..b695f86b9 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ElectrolyserMetalHandler.java @@ -0,0 +1,27 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIElectrolyserMetal; +import com.hbm.inventory.recipes.ElectrolyserMetalRecipes; + +public class ElectrolyserMetalHandler extends NEIUniversalHandler { + + public ElectrolyserMetalHandler() { + super(ModBlocks.machine_electrolyser.getLocalizedName(), ModBlocks.machine_electrolyser, ElectrolyserMetalRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmElectrolysisMetal"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(2, 35, 22, 25), "ntmElectrolysisMetal")); + guiGui.add(GUIElectrolyserMetal.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } +} diff --git a/src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java b/src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java new file mode 100644 index 000000000..a9f16bb50 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java @@ -0,0 +1,27 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineExposureChamber; +import com.hbm.inventory.recipes.ExposureChamberRecipes; + +public class ExposureChamberHandler extends NEIUniversalHandler { + + public ExposureChamberHandler() { + super(ModBlocks.machine_exposure_chamber.getLocalizedName(), ModBlocks.machine_exposure_chamber, ExposureChamberRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmExposure"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(31, 28, 41, 10), "ntmExposure")); + guiGui.add(GUIMachineExposureChamber.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } +} diff --git a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java index 792f4465f..3ab732811 100644 --- a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java @@ -5,7 +5,9 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.recipes.MachineRecipes; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; @@ -14,7 +16,23 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class FluidRecipeHandler extends TemplateRecipeHandler { +public class FluidRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.fluid_barrel_empty), + new ItemStack(ModItems.fluid_tank_empty), + new ItemStack(ModItems.fluid_tank_lead_empty), + new ItemStack(ModItems.canister_empty), + new ItemStack(ModItems.gas_empty), + new ItemStack(ModItems.cell_empty), + new ItemStack(ModItems.disperser_canister_empty), + new ItemStack(ModItems.glyphid_gland_empty)}; + } + @Override + public String getRecipeID() { + return "fluidcons"; + } public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { diff --git a/src/main/java/com/hbm/handler/nei/FractioningHandler.java b/src/main/java/com/hbm/handler/nei/FractioningHandler.java index 158ab9b4d..fb54c4d51 100644 --- a/src/main/java/com/hbm/handler/nei/FractioningHandler.java +++ b/src/main/java/com/hbm/handler/nei/FractioningHandler.java @@ -6,7 +6,7 @@ import com.hbm.inventory.recipes.FractionRecipes; public class FractioningHandler extends NEIUniversalHandler { public FractioningHandler() { - super("Fractioning", ModBlocks.machine_fraction_tower, FractionRecipes.getFractionRecipesForNEI()); + super(ModBlocks.machine_fraction_tower.getLocalizedName(), ModBlocks.machine_fraction_tower, FractionRecipes.getFractionRecipesForNEI()); } @Override diff --git a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java index ff6624e23..f5a69a4ec 100644 --- a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java @@ -6,6 +6,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIITER; import com.hbm.inventory.recipes.FusionRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +18,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class FusionRecipeHandler extends TemplateRecipeHandler { - +public class FusionRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.iter)}; + } + @Override + public String getRecipeID() { + return "fusion"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java index add9dcf95..085ec8b7a 100644 --- a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java @@ -9,6 +9,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineGasCent; import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.MachineRecipes; @@ -22,8 +24,16 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { - +public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_gascent)}; + } + @Override + public String getRecipeID() { + return "gascentprocessing"; + } public static ArrayList fuels; public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { diff --git a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java index 21ba387e3..b9325cd9c 100644 --- a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java @@ -6,7 +6,10 @@ import java.awt.Rectangle; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.Locale; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIHadron; import com.hbm.inventory.recipes.HadronRecipes; import com.hbm.inventory.recipes.HadronRecipes.HadronRecipe; @@ -20,8 +23,17 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class HadronRecipeHandler extends TemplateRecipeHandler { +public class HadronRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.hadron_core)}; + } + @Override + public String getRecipeID() { + return "hadron"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); @@ -141,7 +153,7 @@ public class HadronRecipeHandler extends TemplateRecipeHandler { FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - String mom = String.format("%,d", rec.momentum); + String mom = String.format(Locale.US, "%,d", rec.momentum); fontRenderer.drawString(mom, -fontRenderer.getStringWidth(mom) / 2 + 30, 42, 0x404040); } diff --git a/src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java b/src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java new file mode 100644 index 000000000..81a932ddb --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/HydrotreatingHandler.java @@ -0,0 +1,16 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.HydrotreatingRecipes; + +public class HydrotreatingHandler extends NEIUniversalHandler { + + public HydrotreatingHandler() { + super("Hydrotreating", ModBlocks.machine_hydrotreater, HydrotreatingRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmHydrotreating"; + } +} diff --git a/src/main/java/com/hbm/handler/nei/LiquefactionHandler.java b/src/main/java/com/hbm/handler/nei/LiquefactionHandler.java index b3f31e9cb..5d0398d4c 100644 --- a/src/main/java/com/hbm/handler/nei/LiquefactionHandler.java +++ b/src/main/java/com/hbm/handler/nei/LiquefactionHandler.java @@ -6,7 +6,7 @@ import com.hbm.inventory.recipes.LiquefactionRecipes; public class LiquefactionHandler extends NEIUniversalHandler { public LiquefactionHandler() { - super("Liquefaction", ModBlocks.machine_liquefactor, LiquefactionRecipes.getRecipes()); + super(ModBlocks.machine_liquefactor.getLocalizedName(), ModBlocks.machine_liquefactor, LiquefactionRecipes.getRecipes()); } @Override diff --git a/src/main/java/com/hbm/handler/nei/MixerHandler.java b/src/main/java/com/hbm/handler/nei/MixerHandler.java index 320cde187..b93ff9ca1 100644 --- a/src/main/java/com/hbm/handler/nei/MixerHandler.java +++ b/src/main/java/com/hbm/handler/nei/MixerHandler.java @@ -9,7 +9,7 @@ import com.hbm.inventory.recipes.MixerRecipes; public class MixerHandler extends NEIUniversalHandler { public MixerHandler() { - super("Mixer", ModBlocks.machine_mixer, MixerRecipes.getRecipes()); + super(ModBlocks.machine_mixer.getLocalizedName(), ModBlocks.machine_mixer, MixerRecipes.getRecipes()); } @Override diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 3f4fcbe67..de16bbea4 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -10,6 +10,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; +import com.hbm.handler.imc.ICompatNHNEI; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.util.InventoryUtil; @@ -21,8 +23,13 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -public abstract class NEIUniversalHandler extends TemplateRecipeHandler { - +public abstract class NEIUniversalHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return machine; + } + public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); @@ -34,7 +41,6 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { public final HashMap recipes; public HashMap machineOverrides; /// SETUP /// - public NEIUniversalHandler(String display, ItemStack machine[], HashMap recipes) { this.display = display; this.machine = machine; @@ -56,8 +62,10 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { PositionedStack[] input; PositionedStack[] output; PositionedStack machinePositioned; + Object originalInputInstance; public RecipeSet(ItemStack[][] in, ItemStack[][] out, Object originalInputInstance /* for custom machine lookup */) { + this.originalInputInstance = originalInputInstance; input = new PositionedStack[in.length]; int[][] inPos = NEIUniversalHandler.getInputCoords(in.length); @@ -131,7 +139,7 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { drawTexturedModalRect(pos[0] - 1, pos[1] - 1, 5, 87, 18, 18); } - drawTexturedModalRect(74, 14, 59, 87, 18, 38); + drawTexturedModalRect(74, 14, 59, 87, 18, 36); } public static int[][] getInputCoords(int count) { @@ -226,6 +234,28 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { {102, 24 + 9}, {120, 24 + 9} }; + case 5: return new int[][] { + {102, 24 - 9}, {120, 24 - 9}, + {102, 24 + 9}, {120, 24 + 9}, + {138, 24}, + }; + case 6: return new int[][] { + {102, 6}, {120, 6}, + {102, 24}, {120, 24}, + {102, 32}, {120, 32}, + }; + case 7: return new int[][] { + {102, 6}, {120, 6}, + {102, 24}, {120, 24}, + {102, 32}, {120, 32}, + {138, 24}, + }; + case 8: return new int[][] { + {102, 6}, {120, 6}, + {102, 24}, {120, 24}, + {102, 32}, {120, 32}, + {138, 24}, {138, 32}, + }; } return new int[count][2]; @@ -236,9 +266,13 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { if(outputId.equals(getKey())) { - for(Entry recipe : recipes.entrySet()) { + outer: for(Entry recipe : recipes.entrySet()) { ItemStack[][] ins = InventoryUtil.extractObject(recipe.getKey()); ItemStack[][] outs = InventoryUtil.extractObject(recipe.getValue()); + + for(ItemStack[] array : ins) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + for(ItemStack[] array : outs) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + this.arecipes.add(new RecipeSet(ins, outs, recipe.getKey())); } @@ -250,10 +284,13 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { - for(Entry recipe : recipes.entrySet()) { + outer: for(Entry recipe : recipes.entrySet()) { ItemStack[][] ins = InventoryUtil.extractObject(recipe.getKey()); ItemStack[][] outs = InventoryUtil.extractObject(recipe.getValue()); + for(ItemStack[] array : ins) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + for(ItemStack[] array : outs) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + match: for(ItemStack[] array : outs) { for(ItemStack stack : array) { @@ -278,10 +315,13 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { - for(Entry recipe : recipes.entrySet()) { + outer: for(Entry recipe : recipes.entrySet()) { ItemStack[][] ins = InventoryUtil.extractObject(recipe.getKey()); ItemStack[][] outs = InventoryUtil.extractObject(recipe.getValue()); + for(ItemStack[] array : ins) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + for(ItemStack[] array : outs) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + match: for(ItemStack[] array : ins) { for(ItemStack stack : array) { @@ -303,4 +343,9 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { } public abstract String getKey(); + + @Override + public String getRecipeID() { + return getKey(); + } } diff --git a/src/main/java/com/hbm/handler/nei/OutgasserHandler.java b/src/main/java/com/hbm/handler/nei/OutgasserHandler.java index e3965aea1..6a7575609 100644 --- a/src/main/java/com/hbm/handler/nei/OutgasserHandler.java +++ b/src/main/java/com/hbm/handler/nei/OutgasserHandler.java @@ -9,7 +9,7 @@ import com.hbm.inventory.recipes.OutgasserRecipes; public class OutgasserHandler extends NEIUniversalHandler { public OutgasserHandler() { - super("Irradiation", ModBlocks.rbmk_outgasser, OutgasserRecipes.getRecipes()); + super(ModBlocks.rbmk_outgasser.getLocalizedName(), ModBlocks.rbmk_outgasser, OutgasserRecipes.getRecipes()); } @Override diff --git a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java index cc776c8fd..f0b2adefb 100644 --- a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.interfaces.Untested; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -25,8 +27,19 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; @Untested -public class PressRecipeHandler extends TemplateRecipeHandler { +public class PressRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_press), + new ItemStack(ModBlocks.machine_epress), + new ItemStack(ModBlocks.machine_conveyor_press)}; + } + @Override + public String getRecipeID() { + return "pressing"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); @@ -110,7 +123,7 @@ public class PressRecipeHandler extends TemplateRecipeHandler { if(in.matchesRecipe(ingredient, true)) this.arecipes.add(new SmeltingSet(ItemStamp.stamps.get(recipe.getKey().getValue()), new ComparableStack(ingredient), recipe.getValue())); - else if(ingredient.getItem() instanceof ItemStamp && ((ItemStamp)ingredient.getItem()).type == stamp) + else if(ingredient.getItem() instanceof ItemStamp && ((ItemStamp)ingredient.getItem()).getStampType(ingredient.getItem(), ingredient.getItemDamage()) == stamp) this.arecipes.add(new SmeltingSet(ingredient, recipe.getKey().getKey(), recipe.getValue())); } } diff --git a/src/main/java/com/hbm/handler/nei/PyroHandler.java b/src/main/java/com/hbm/handler/nei/PyroHandler.java new file mode 100644 index 000000000..b81813e53 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/PyroHandler.java @@ -0,0 +1,27 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIPyroOven; +import com.hbm.inventory.recipes.PyroOvenRecipes; + +public class PyroHandler extends NEIUniversalHandler { + + public PyroHandler() { + super(ModBlocks.machine_pyrooven.getLocalizedName(), ModBlocks.machine_pyrooven, PyroOvenRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmPyrolysis"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(50, 35, 28, 14), "ntmPyrolysis")); + guiGui.add(GUIPyroOven.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } +} diff --git a/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java index 77ea8225c..9a92cde64 100644 --- a/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java @@ -11,7 +11,6 @@ public class RTGRecipeHandler extends NEIUniversalHandler { super("RTG", new ItemStack[] { new ItemStack(ModBlocks.machine_rtg_grey), new ItemStack(ModBlocks.machine_difurnace_rtg_off), - new ItemStack(ModBlocks.machine_industrial_generator), new ItemStack(ModBlocks.machine_rtg_furnace_off) }, ItemRTGPellet.getRecipeMap()); } diff --git a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java index 9d5d619d4..1b4707586 100644 --- a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java @@ -8,18 +8,28 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIRadiolysis; import com.hbm.inventory.recipes.RadiolysisRecipes; import com.hbm.lib.RefStrings; -import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class RadiolysisRecipeHandler extends TemplateRecipeHandler { - +public class RadiolysisRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_radiolysis)}; + } + @Override + public String getRecipeID() { + return "ntmRadiolysis"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); @@ -84,7 +94,7 @@ public class RadiolysisRecipeHandler extends TemplateRecipeHandler { HashMap recipes = (HashMap) RadiolysisRecipes.getRecipesForNEI(); for(Entry recipe : recipes.entrySet()) { - if(NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[0], result) || NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[1], result)) + if(compareFluidStacks((ItemStack)recipe.getValue()[0], result) || compareFluidStacks((ItemStack)recipe.getValue()[1], result)) this.arecipes.add(new RecipeSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1])); } } @@ -104,10 +114,14 @@ public class RadiolysisRecipeHandler extends TemplateRecipeHandler { HashMap recipes = (HashMap) RadiolysisRecipes.getRecipesForNEI(); for(Entry recipe : recipes.entrySet()) { - if(NEIServerUtils.areStacksSameType((ItemStack)recipe.getKey(), ingredient)) + if(compareFluidStacks((ItemStack)recipe.getKey(), ingredient)) this.arecipes.add(new RecipeSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1])); } } + + private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { + return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); + } @Override public void drawExtras(int recipe) { diff --git a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java index f3068bf17..2bf1e9e6e 100644 --- a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIMachineRefinery; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +18,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class RefineryRecipeHandler extends TemplateRecipeHandler { +public class RefineryRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_refinery)}; + } + @Override + public String getRecipeID() { + return "refinery"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); @@ -151,7 +162,7 @@ public class RefineryRecipeHandler extends TemplateRecipeHandler { guiGui = new LinkedList>(); transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27, 23, 36, 18), "refinery")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 7 - 11 - 11, 18 * 4, 18), "refinery")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(48, 5, 31, 101), "refinery")); guiGui.add(GUIMachineRefinery.class); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); diff --git a/src/main/java/com/hbm/handler/nei/RotaryFurnaceHandler.java b/src/main/java/com/hbm/handler/nei/RotaryFurnaceHandler.java new file mode 100644 index 000000000..ca6c3b628 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/RotaryFurnaceHandler.java @@ -0,0 +1,62 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.Locale; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.gui.GUIMachineRotaryFurnace; +import com.hbm.inventory.recipes.RotaryFurnaceRecipes; +import com.hbm.inventory.recipes.RotaryFurnaceRecipes.RotaryFurnaceRecipe; +import com.hbm.items.machine.ItemScraps; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.item.ItemStack; + +public class RotaryFurnaceHandler extends NEIUniversalHandler { + + public RotaryFurnaceHandler() { + super(ModBlocks.machine_rotary_furnace.getLocalizedName(), ModBlocks.machine_rotary_furnace, RotaryFurnaceRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmRotaryFurnace"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(58, 19, 32, 10), "ntmRotaryFurnace")); + guiGui.add(GUIMachineRotaryFurnace.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawExtras(int recipe) { + + RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); + Object[] original = (Object[]) rec.originalInputInstance; + ItemStack output = rec.output[0].item; + + outer: for(RotaryFurnaceRecipe arc : RotaryFurnaceRecipes.recipes) { + + if(ItemStack.areItemStacksEqual(ItemScraps.create(arc.output, true), output) && arc.ingredients.length == original.length - (arc.fluid == null ? 0 : 1)) { + + for(int i = 0; i < rec.input.length - (arc.fluid == null ? 0 : 1); i++) { + if(arc.ingredients[i] != original[i]) continue outer; + } + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + String duration = String.format(Locale.US, "%,d", arc.duration) + " ticks"; + String consumption = I18nUtil.resolveKey(Fluids.STEAM.getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", arc.steam) + " mB/t"; + int side = 160; + fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 43, 0x404040); + fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 55, 0x404040); + return; + } + } + } +} diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java index 444489abc..bc1363383 100644 --- a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUISILEX; import com.hbm.inventory.recipes.SILEXRecipes; import com.hbm.inventory.recipes.SILEXRecipes.SILEXRecipe; @@ -24,8 +26,17 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class SILEXRecipeHandler extends TemplateRecipeHandler { +public class SILEXRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_silex)}; + } + @Override + public String getRecipeID() { + return "silex"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/SawmillHandler.java b/src/main/java/com/hbm/handler/nei/SawmillHandler.java index e573e9f42..43d79bf87 100644 --- a/src/main/java/com/hbm/handler/nei/SawmillHandler.java +++ b/src/main/java/com/hbm/handler/nei/SawmillHandler.java @@ -6,7 +6,7 @@ import com.hbm.tileentity.machine.TileEntitySawmill; public class SawmillHandler extends NEIUniversalHandler { public SawmillHandler() { - super("Sawmill", ModBlocks.machine_sawmill, TileEntitySawmill.getRecipes()); + super(ModBlocks.machine_sawmill.getLocalizedName(), ModBlocks.machine_sawmill, TileEntitySawmill.getRecipes()); } @Override diff --git a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java index 396109047..7524f5091 100644 --- a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java @@ -7,6 +7,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineShredder; import com.hbm.inventory.recipes.MachineRecipes; @@ -19,8 +21,17 @@ import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class ShredderRecipeHandler extends TemplateRecipeHandler { +public class ShredderRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.machine_shredder)}; + } + @Override + public String getRecipeID() { + return "ntmRadiolysis"; + } public static ArrayList fuels; public LinkedList transferRectsRec = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java index 35e698422..07e502064 100644 --- a/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SmithingRecipeHandler.java @@ -5,6 +5,8 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.imc.ICompatNHNEI; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilSmithingRecipe; @@ -18,8 +20,28 @@ import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; -public class SmithingRecipeHandler extends TemplateRecipeHandler { +public class SmithingRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModBlocks.anvil_iron), + new ItemStack(ModBlocks.anvil_lead), + new ItemStack(ModBlocks.anvil_steel), + new ItemStack(ModBlocks.anvil_desh), + new ItemStack(ModBlocks.anvil_saturnite), + new ItemStack(ModBlocks.anvil_ferrouranium), + new ItemStack(ModBlocks.anvil_bismuth_bronze), + new ItemStack(ModBlocks.anvil_arsenic_bronze), + new ItemStack(ModBlocks.anvil_schrabidate), + new ItemStack(ModBlocks.anvil_dnt), + new ItemStack(ModBlocks.anvil_osmiridium), + new ItemStack(ModBlocks.anvil_murky)}; + } + @Override + public String getRecipeID() { + return "ntmSmithing"; + } public LinkedList transferRectsRec = new LinkedList(); public LinkedList transferRectsGui = new LinkedList(); public LinkedList> guiRec = new LinkedList>(); diff --git a/src/main/java/com/hbm/handler/nei/SolderingStationHandler.java b/src/main/java/com/hbm/handler/nei/SolderingStationHandler.java new file mode 100644 index 000000000..a1f127692 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/SolderingStationHandler.java @@ -0,0 +1,56 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.Locale; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineSolderingStation; +import com.hbm.inventory.recipes.SolderingRecipes; +import com.hbm.inventory.recipes.SolderingRecipes.SolderingRecipe; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.item.ItemStack; + +public class SolderingStationHandler extends NEIUniversalHandler { + + public SolderingStationHandler() { + super(ModBlocks.machine_soldering_station.getLocalizedName(), ModBlocks.machine_soldering_station, SolderingRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmSoldering"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(67, 17, 32, 14), "ntmSoldering")); + guiGui.add(GUIMachineSolderingStation.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawExtras(int recipe) { + + RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); + ItemStack output = rec.output[0].item; + + for(SolderingRecipe sol : SolderingRecipes.recipes) { + + //TODO: rethink this concept, checks only use the output and if two things output the same thing it'll break + + if(ItemStack.areItemStacksEqual(sol.output, output)) { + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + String duration = String.format(Locale.US, "%,d", sol.duration) + " ticks"; + String consumption = String.format(Locale.US, "%,d", sol.consumption) + " HE/t"; + int side = 160; + fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 43, 0x404040); + fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 55, 0x404040); + return; + } + } + } +} diff --git a/src/main/java/com/hbm/handler/nei/SolidificationHandler.java b/src/main/java/com/hbm/handler/nei/SolidificationHandler.java index 181f7dfa8..5eda6e643 100644 --- a/src/main/java/com/hbm/handler/nei/SolidificationHandler.java +++ b/src/main/java/com/hbm/handler/nei/SolidificationHandler.java @@ -6,7 +6,7 @@ import com.hbm.inventory.recipes.SolidificationRecipes; public class SolidificationHandler extends NEIUniversalHandler { public SolidificationHandler() { - super("Solidification", ModBlocks.machine_solidifier, SolidificationRecipes.getRecipes()); + super(ModBlocks.machine_solidifier.getLocalizedName(), ModBlocks.machine_solidifier, SolidificationRecipes.getRecipes()); } @Override diff --git a/src/main/java/com/hbm/handler/nei/ToolingHandler.java b/src/main/java/com/hbm/handler/nei/ToolingHandler.java index c50074f1e..9c0420b18 100644 --- a/src/main/java/com/hbm/handler/nei/ToolingHandler.java +++ b/src/main/java/com/hbm/handler/nei/ToolingHandler.java @@ -1,9 +1,17 @@ package com.hbm.handler.nei; import com.hbm.blocks.generic.BlockToolConversion; +import com.hbm.items.ModItems; +import net.minecraft.item.ItemStack; public class ToolingHandler extends NEIUniversalHandler { - + @Override + public ItemStack[] getMachinesForRecipe() { + return new ItemStack[]{ + new ItemStack(ModItems.boltgun), + new ItemStack(ModItems.blowtorch), + new ItemStack(ModItems.acetylene_torch)}; + } public ToolingHandler() { super("Tooling", BlockToolConversion.getRecipes(true), BlockToolConversion.getRecipes(false)); } diff --git a/src/main/java/com/hbm/handler/nei/ZirnoxRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ZirnoxRecipeHandler.java index a39208d98..b5ab368d5 100644 --- a/src/main/java/com/hbm/handler/nei/ZirnoxRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ZirnoxRecipeHandler.java @@ -6,7 +6,7 @@ import com.hbm.tileentity.machine.TileEntityReactorZirnox; public class ZirnoxRecipeHandler extends NEIUniversalHandler { public ZirnoxRecipeHandler() { - super("ZIRNOX", ModBlocks.reactor_zirnox, TileEntityReactorZirnox.fuelMap); + super(ModBlocks.reactor_zirnox.getLocalizedName(), ModBlocks.reactor_zirnox, TileEntityReactorZirnox.fuelMap); } @Override diff --git a/src/main/java/com/hbm/handler/neutron/NeutronHandler.java b/src/main/java/com/hbm/handler/neutron/NeutronHandler.java new file mode 100644 index 000000000..efc536f2e --- /dev/null +++ b/src/main/java/com/hbm/handler/neutron/NeutronHandler.java @@ -0,0 +1,80 @@ +package com.hbm.handler.neutron; + +import com.hbm.tileentity.machine.rbmk.RBMKDials; +import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.TickEvent; +import net.minecraft.world.World; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + + +// General neutron handler because I didn't feel like having each handler class have its own interaction function. +public class NeutronHandler { + + private static int ticks = 0; + + @SubscribeEvent + public void onServerTick(TickEvent.ServerTickEvent event) { + if(event.phase != TickEvent.Phase.START) + return; + + // Remove `StreamWorld` objects if they have no streams. + { // aflghdkljghlkbhfjkghgilurbhlkfjghkffdjgn + List toRemove = new ArrayList<>(); + NeutronNodeWorld.streamWorlds.forEach((world, streamWorld) -> { + if (streamWorld.streams.isEmpty()) + toRemove.add(world); + }); + + for (World world : toRemove) { + NeutronNodeWorld.streamWorlds.remove(world); + } + } + + for (Map.Entry world : NeutronNodeWorld.streamWorlds.entrySet()) { + + // Gamerule caching because this apparently is kinda slow? + // meh, good enough + RBMKNeutronHandler.reflectorEfficiency = RBMKDials.getReflectorEfficiency(world.getKey()); + RBMKNeutronHandler.absorberEfficiency = RBMKDials.getAbsorberEfficiency(world.getKey()); + RBMKNeutronHandler.moderatorEfficiency = RBMKDials.getModeratorEfficiency(world.getKey()); + + // I hate this. + // this broke everything because it was ONE OFF + // IT'S NOT THE TOTAL HEIGHT IT'S THE AMOUNT OF BLOCKS ABOVE AAAAAAAAAAAAA + RBMKNeutronHandler.columnHeight = RBMKDials.getColumnHeight(world.getKey()) + 1; + RBMKNeutronHandler.fluxRange = RBMKDials.getFluxRange(world.getKey()); + + for (NeutronStream stream : world.getValue().streams) { + stream.runStreamInteraction(world.getKey()); + } + world.getValue().removeAllStreams(); + } + + // Freshen the node cache every `cacheTime` ticks to prevent huge RAM usage from idle nodes. + int cacheTime = 20; + if (ticks >= cacheTime) { + ticks = 0; + List toRemove = new ArrayList<>(); + for (NeutronNode cachedNode : NeutronNodeWorld.nodeCache.values()) { + if (cachedNode.type == NeutronStream.NeutronType.RBMK) { + RBMKNeutronHandler.RBMKNeutronNode node = (RBMKNeutronHandler.RBMKNeutronNode) cachedNode; + toRemove.addAll(node.checkNode()); + } + /* TODO: actually do this and uncache pile nodes + if (cachedNode.type == NeutronStream.NeutronType.PILE) { + PileNeutronNode node = (PileNeutronNode) cachedNode; + toRemove.addAll(node.checkNode()); + } + */ + } + + toRemove.forEach(NeutronNodeWorld::removeNode); + + } + ticks++; + } +} diff --git a/src/main/java/com/hbm/handler/neutron/NeutronNode.java b/src/main/java/com/hbm/handler/neutron/NeutronNode.java new file mode 100644 index 000000000..0c11d3a05 --- /dev/null +++ b/src/main/java/com/hbm/handler/neutron/NeutronNode.java @@ -0,0 +1,27 @@ +package com.hbm.handler.neutron; + +import com.hbm.handler.neutron.NeutronStream.NeutronType; +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.tileentity.TileEntity; + +import java.util.HashMap; +import java.util.Map; + +public abstract class NeutronNode { + + protected NeutronType type; + + protected BlockPos pos; + + protected TileEntity tile; + + // like NBT but less fucking CANCER + // Holds things like cached RBMK lid values. + protected Map data = new HashMap<>(); + + public NeutronNode(TileEntity tile, NeutronType type) { + this.type = type; + this.tile = tile; + this.pos = new BlockPos(tile); + } +} diff --git a/src/main/java/com/hbm/handler/neutron/NeutronNodeWorld.java b/src/main/java/com/hbm/handler/neutron/NeutronNodeWorld.java new file mode 100644 index 000000000..1f544ae7f --- /dev/null +++ b/src/main/java/com/hbm/handler/neutron/NeutronNodeWorld.java @@ -0,0 +1,62 @@ +package com.hbm.handler.neutron; + +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.world.World; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class NeutronNodeWorld { + // HashMap of all neutron nodes and their positions. + protected static HashMap nodeCache = new HashMap<>(); + + public static void addNode(NeutronNode node) { + nodeCache.put(node.pos, node); + } + + public static void removeNode(BlockPos position) { + nodeCache.remove(position); + } + + public static NeutronNode getNode(BlockPos position) { + return nodeCache.get(position); + } + + public static void removeAllNodes() { + nodeCache.clear(); + } + + // List of all stream worlds. + public static HashMap streamWorlds = new HashMap<>(); + + public static class StreamWorld { + + List streams; + + public StreamWorld() { + streams = new ArrayList<>(); + } + + public void addStream(NeutronStream stream) { + this.streams.add(stream); + } + + public void removeAllStreams() { + this.streams.clear(); + } + + public void removeAllStreamsOfType(NeutronStream.NeutronType type) { + List toRemove = new ArrayList<>(); + for (NeutronStream stream : streams) { + if (stream.type == type) + toRemove.add(stream); + } + toRemove.forEach((stream) -> streams.remove(stream)); + } + } + + public static void removeAllWorlds() { + streamWorlds.clear(); + } +} diff --git a/src/main/java/com/hbm/handler/neutron/NeutronStream.java b/src/main/java/com/hbm/handler/neutron/NeutronStream.java new file mode 100644 index 000000000..7de1cc4aa --- /dev/null +++ b/src/main/java/com/hbm/handler/neutron/NeutronStream.java @@ -0,0 +1,82 @@ +package com.hbm.handler.neutron; + +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import com.hbm.handler.neutron.NeutronNodeWorld.StreamWorld; + +import java.util.Iterator; + +public abstract class NeutronStream { + + public enum NeutronType { + DUMMY, // Dummy streams for node decaying + RBMK, // RBMK neutron streams + PILE // Chicago pile streams + } + + public NeutronNode origin; + + // doubles!! + public double fluxQuantity; + // Hey, new implementation! Basically a ratio for slow flux to fast flux + // 0 = all slow flux + // 1 = all fast flux + public double fluxRatio; + + public NeutronType type = NeutronType.DUMMY; + + // Vector for direction of neutron flow. + public Vec3 vector; + + // Primarily used as a "dummy stream", not to be added to the streams list. + public NeutronStream(NeutronNode origin, Vec3 vector) { + this.origin = origin; + this.vector = vector; + posInstance = origin.pos.clone(); + } + + public NeutronStream(NeutronNode origin, Vec3 vector, double flux, double ratio, NeutronType type) { + this.origin = origin; + this.vector = vector; + posInstance = origin.pos.clone(); + this.fluxQuantity = flux; + this.fluxRatio = ratio; + this.type = type; + World worldObj = origin.tile.getWorldObj(); + if (NeutronNodeWorld.streamWorlds.get(worldObj) == null) { + StreamWorld world = new StreamWorld(); + world.addStream(this); + NeutronNodeWorld.streamWorlds.put(worldObj, world); + } else + NeutronNodeWorld.streamWorlds.get(worldObj).addStream(this); + } + + protected BlockPos posInstance; + + private int i; + + // USES THE CACHE!!! + public Iterator getBlocks(int range) { + + i = 1; + + return new Iterator() { + @Override + public boolean hasNext() { + return i <= range; + } + + @Override + public BlockPos next() { + int x = (int) Math.floor(0.5 + vector.xCoord * i); + int z = (int) Math.floor(0.5 + vector.zCoord * i); + + i++; + return posInstance.mutate(origin.tile.xCoord + x, origin.tile.yCoord, origin.tile.zCoord + z); + } + }; + } + + public abstract void runStreamInteraction(World worldObj); +} diff --git a/src/main/java/com/hbm/handler/neutron/PileNeutronHandler.java b/src/main/java/com/hbm/handler/neutron/PileNeutronHandler.java new file mode 100644 index 000000000..56913bc91 --- /dev/null +++ b/src/main/java/com/hbm/handler/neutron/PileNeutronHandler.java @@ -0,0 +1,116 @@ +package com.hbm.handler.neutron; + +import api.hbm.block.IPileNeutronReceiver; +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.machine.pile.TileEntityPileBase; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +import java.util.List; + +public class PileNeutronHandler { + + public static int range = 5; + + public static class PileNeutronNode extends NeutronNode { + + public PileNeutronNode(TileEntityPileBase tile) { + super(tile, NeutronStream.NeutronType.PILE); + } + + } + + public static PileNeutronNode makeNode(TileEntityPileBase tile) { + BlockPos pos = new BlockPos(tile); + if (NeutronNodeWorld.nodeCache.containsKey(pos)) + return (PileNeutronNode) NeutronNodeWorld.getNode(pos); + return new PileNeutronNode(tile); + } + + private static TileEntity blockPosToTE(World worldObj, BlockPos pos) { + return worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + } + + public static class PileNeutronStream extends NeutronStream { + + public PileNeutronStream(NeutronNode origin, Vec3 vector, double flux) { + super(origin, vector, flux, 0D, NeutronType.PILE); + } + + @Override + public void runStreamInteraction(World worldObj) { + + TileEntityPileBase originTE = (TileEntityPileBase) origin.tile; + BlockPos pos = new BlockPos(originTE); + + for(float i = 1; i <= range; i += 0.5F) { + + BlockPos node = new BlockPos( + (int)Math.floor(pos.getX() + 0.5 + vector.xCoord * i), + (int)Math.floor(pos.getY() + 0.5 + vector.yCoord * i), + (int)Math.floor(pos.getZ() + 0.5 + vector.zCoord * i) + ); + + if(node.equals(pos)) + continue; // don't interact with itself! + + pos.mutate(node.getX(), node.getY(), node.getZ()); + + TileEntity tile; + + if (NeutronNodeWorld.nodeCache.containsKey(node)) + tile = NeutronNodeWorld.nodeCache.get(node).tile; + else { + tile = blockPosToTE(worldObj, node); + if (tile == null) + return; // Doesn't exist! + if (tile instanceof TileEntityPileBase) + NeutronNodeWorld.addNode(new PileNeutronNode((TileEntityPileBase) tile)); + } + + Block block = tile.getBlockType(); + int meta = tile.getBlockMetadata(); + if(!(tile instanceof TileEntityPileBase)) { + + // Return when a boron block is hit + if (block == ModBlocks.block_boron) + return; + + else if (block == ModBlocks.concrete || + block == ModBlocks.concrete_smooth || + block == ModBlocks.concrete_asbestos || + block == ModBlocks.concrete_colored || + block == ModBlocks.brick_concrete) + fluxQuantity *= 0.25; + + if (block == ModBlocks.block_graphite_rod && (meta & 8) == 0) + return; + } + + if(tile instanceof IPileNeutronReceiver) { + + IPileNeutronReceiver rec = (IPileNeutronReceiver) tile; + rec.receiveNeutrons((int) Math.floor(fluxQuantity)); + + if(block != ModBlocks.block_graphite_detector || (meta & 8) == 0) + return; + } + + int x = (int) (node.getX() + 0.5); + int y = (int) (node.getY() + 0.5); + int z = (int) (node.getZ() + 0.5); + List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x, y, z, x, y, z)); + + if(entities != null) + for(EntityLivingBase e : entities) + ContaminationUtil.contaminate(e, ContaminationUtil.HazardType.RADIATION, ContaminationUtil.ContaminationType.CREATIVE, (float) (fluxQuantity / 4D)); + } + } + } +} diff --git a/src/main/java/com/hbm/handler/neutron/RBMKNeutronHandler.java b/src/main/java/com/hbm/handler/neutron/RBMKNeutronHandler.java new file mode 100644 index 000000000..d3f883589 --- /dev/null +++ b/src/main/java/com/hbm/handler/neutron/RBMKNeutronHandler.java @@ -0,0 +1,415 @@ +package com.hbm.handler.neutron; + +import com.hbm.blocks.machine.rbmk.RBMKBase; +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.tileentity.machine.rbmk.*; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import java.util.ArrayList; +import java.util.List; +import java.util.Iterator; + +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RBMKNeutronHandler { + + static double moderatorEfficiency; + static double reflectorEfficiency; + static double absorberEfficiency; + static int columnHeight; + static int fluxRange; + + public enum RBMKType { + ROD, + MODERATOR, + CONTROL_ROD, + REFLECTOR, + ABSORBER, + OUTGASSER, + OTHER // why do neutron calculations on them if they won't change anything? + } + + private static TileEntity blockPosToTE(World worldObj, BlockPos pos) { + return worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + } + + public static RBMKNeutronNode makeNode(TileEntityRBMKBase tile) { + BlockPos pos = new BlockPos(tile); + if (NeutronNodeWorld.nodeCache.containsKey(pos)) + return (RBMKNeutronNode) NeutronNodeWorld.getNode(pos); + return new RBMKNeutronNode(tile, tile.getRBMKType(), tile.hasLid()); + } + + public static class RBMKNeutronNode extends NeutronNode { + + public RBMKNeutronNode(TileEntityRBMKBase tile, RBMKType type, boolean hasLid) { + super(tile, NeutronStream.NeutronType.RBMK); + this.data.put("hasLid", hasLid); + this.data.put("type", type); + posInstance = new BlockPos(tile); + } + + public void addLid() { + this.data.replace("hasLid", true); + } + + public void removeLid() { + this.data.replace("hasLid", false); + } + + protected BlockPos posInstance; + + private int x; + private int z; + + public Iterator getReaSimNodes() { + + x = -fluxRange; + z = -fluxRange; + + return new Iterator() { + @Override + public boolean hasNext() { + return (fluxRange + x) * (fluxRange * 2 + 1) + z + fluxRange + 1 < (fluxRange * 2 + 1) * (fluxRange * 2 + 1); + } + + @Override + public BlockPos next() { + if (Math.pow(x, 2) + Math.pow(z, 2) <= fluxRange * fluxRange) { + z++; + if (z > fluxRange) { + z = -fluxRange; + x++; + } + return posInstance.mutate(tile.xCoord + x, tile.yCoord, tile.zCoord + z); + } else { + z++; + if (z > fluxRange) { + z = -fluxRange; + x++; + } + return null; + } + } + }; + } + + public List checkNode() { + List list = new ArrayList<>(); + + BlockPos pos = new BlockPos(this.tile); + + RBMKNeutronStream[] streams = new RBMKNeutronStream[TileEntityRBMKRod.fluxDirs.length]; + + // Simulate streams coming out of the RBMK rod. + ForgeDirection[] fluxDirs = TileEntityRBMKRod.fluxDirs; + for (int i = 0; i < fluxDirs.length; i++) { + streams[i] = (new RBMKNeutronStream(this, Vec3.createVectorHelper(fluxDirs[i].offsetX, 0, fluxDirs[i].offsetZ))); + } + + // Check if the rod should uncache nodes. + if (tile instanceof TileEntityRBMKRod && !(tile instanceof TileEntityRBMKRodReaSim)) { + TileEntityRBMKRod rod = (TileEntityRBMKRod) tile; + if (!rod.hasRod || rod.lastFluxQuantity == 0) { + + for (RBMKNeutronStream stream : streams) { + for(RBMKNeutronNode node : stream.getNodes(false)) + if (node != null) + list.add(new BlockPos(node.tile)); + } + + return list; + } + } + + { + Iterator reaSimNodes = getReaSimNodes(); + + // Check if the ReaSim rod should be culled from the cache due to no rod or no flux. + if (tile instanceof TileEntityRBMKRodReaSim) { // fuckkkkkkk + TileEntityRBMKRodReaSim rod = (TileEntityRBMKRodReaSim) tile; + if (!rod.hasRod || rod.lastFluxQuantity == 0) { + reaSimNodes.forEachRemaining((a) -> { + if (a != null) + list.add(a.clone()); // ae The RAM usage will be really high here but hopefully the GC can take care of it :pray: + }); + return list; + } + } + } + + // Check if non-rod nodes should be uncached... but now with ReaSim! + { // Yeah, I don't want to contaminate the surrounding scope. + Iterator reaSimNodes = getReaSimNodes(); + + boolean hasRod = false; + + while(reaSimNodes.hasNext()) { + + BlockPos nodePos = reaSimNodes.next(); + + if(nodePos == null) + continue; + + NeutronNode node = NeutronNodeWorld.nodeCache.get(nodePos); + + if (node != null && node.tile instanceof TileEntityRBMKRod) { + + TileEntityRBMKRod rod = (TileEntityRBMKRod) node.tile; + + if (rod.hasRod && rod.lastFluxQuantity > 0) { + hasRod = true; + break; + } + } + } + + if (!hasRod) { + list.add(pos); + return list; + } + } + + // Check if non-rod nodes should be uncached due to no rod in range. + for (RBMKNeutronStream stream : streams) { + + RBMKNeutronNode[] nodes = stream.getNodes(false); + + for (RBMKNeutronNode node : nodes) { + if (!(node == null) && node.tile instanceof TileEntityRBMKRod) + return list; + } + } + + // If we get here, then no rods were found along this stream's path! + // This, most of the time, means we can just uncache all the nodes inside the stream's path. + // That other part of the time, streams will be crossing paths. + // This is fine though, we can just uncache them anyway and the streams later on (next tick) will recache them. + // /\ idk what this guy was on about but this is just plain wrong. /\ + list.add(pos); + + return list; + } + } + + + public static class RBMKNeutronStream extends NeutronStream { + + public RBMKNeutronStream(NeutronNode origin, Vec3 vector) { + super(origin, vector); + } + + public RBMKNeutronStream(NeutronNode origin, Vec3 vector, double flux, double ratio) { + super(origin, vector, flux, ratio, NeutronType.RBMK); + } + + // Does NOT include the origin node + // USES THE CACHE!!! + public RBMKNeutronNode[] getNodes(boolean addNode) { + RBMKNeutronNode[] positions = new RBMKNeutronNode[fluxRange]; + + BlockPos pos = new BlockPos(origin.tile); + + for (int i = 1; i <= fluxRange; i++) { + int x = (int) Math.floor(0.5 + vector.xCoord * i); + int z = (int) Math.floor(0.5 + vector.zCoord * i); + + pos.mutate(origin.tile.xCoord + x, origin.tile.yCoord, origin.tile.zCoord + z); + + if (NeutronNodeWorld.nodeCache.containsKey(pos)) + positions[i - 1] = (RBMKNeutronNode) NeutronNodeWorld.getNode(pos); + + else if (this.origin.tile.getBlockType() instanceof RBMKBase) { + TileEntity te = blockPosToTE(this.origin.tile.getWorldObj(), pos); + if (te instanceof TileEntityRBMKBase) { + TileEntityRBMKBase rbmkBase = (TileEntityRBMKBase) te; + RBMKNeutronNode node = makeNode(rbmkBase); + positions[i - 1] = node; + if (addNode) + NeutronNodeWorld.addNode(node); + } + } + } + return positions; + } + + // The... small one? whatever it's still pretty big, runs the interaction for the stream. + public void runStreamInteraction(World worldObj) { + + // do nothing if there's nothing to do lmao + if (fluxQuantity == 0D) + return; + + BlockPos pos = new BlockPos(origin.tile); + + TileEntityRBMKBase originTE; + + if (NeutronNodeWorld.nodeCache.containsKey(pos)) + originTE = (TileEntityRBMKBase) NeutronNodeWorld.nodeCache.get(pos).tile; + else { + originTE = (TileEntityRBMKBase) blockPosToTE(worldObj, pos); + if (originTE == null) + return; // Doesn't exist anymore! + NeutronNodeWorld.addNode(new RBMKNeutronNode(originTE, originTE.getRBMKType(), originTE.hasLid())); + } + + int moderatedCount = 0; + + Iterator iterator = getBlocks(fluxRange); + + while(iterator.hasNext()) { + + BlockPos nodePos = iterator.next(); + + if (fluxQuantity == 0D) // Whoops, used it all up! + return; + + RBMKNeutronNode node; + + if (!NeutronNodeWorld.nodeCache.containsKey(nodePos)) { + TileEntity te = blockPosToTE(worldObj, nodePos); // ok, maybe it didn't get added to the list somehow?? + if (te instanceof TileEntityRBMKBase) { + node = makeNode((TileEntityRBMKBase) te); + NeutronNodeWorld.addNode(node); // whoops! + } else { + int hits = getHits(nodePos); // Get the amount of hits on blocks. + if (hits == columnHeight) // If stream is fully blocked. + return; + else if (hits > 0) { // If stream is partially blocked. + irradiateFromFlux(pos, hits); + fluxQuantity *= 1 - ((double) hits / columnHeight); // Inverse to get partial blocking by blocks. + continue; + } else { // Nothing hit! + irradiateFromFlux(pos, 0); + continue; + } + } + } + + node = (RBMKNeutronNode) NeutronNodeWorld.nodeCache.get(nodePos); + + RBMKType type = (RBMKType) node.data.get("type"); + + if (type == RBMKType.OTHER) // pass right on by! + continue; + + // we established earlier during `getNodes()` that they should all be RBMKBase TEs + // no issue with casting here! + TileEntityRBMKBase nodeTE = (TileEntityRBMKBase) node.tile; + + if (!(boolean) node.data.get("hasLid")) + ChunkRadiationManager.proxy.incrementRad(worldObj, nodePos.getX(), nodePos.getY(), nodePos.getZ(), (float) (this.fluxQuantity * 0.05F)); + + if (type == RBMKType.MODERATOR || nodeTE.isModerated()) { + moderatedCount++; + moderateStream(); + } + + if (nodeTE instanceof IRBMKFluxReceiver) { + IRBMKFluxReceiver column = (IRBMKFluxReceiver) nodeTE; + + if (type == RBMKType.ROD) { + TileEntityRBMKRod rod = (TileEntityRBMKRod) column; + + if (rod.hasRod) { + rod.receiveFlux(this); + return; + } + + } else if (type == RBMKType.OUTGASSER) { + TileEntityRBMKOutgasser outgasser = ((TileEntityRBMKOutgasser) column); + + if (outgasser.canProcess()) { + column.receiveFlux(this); + return; + } + } + + } else if (type == RBMKType.CONTROL_ROD) { + TileEntityRBMKControl rod = (TileEntityRBMKControl) nodeTE; + + if (rod.level > 0.0D) { + + this.fluxQuantity *= rod.getMult(); + continue; + } + return; + } else if (type == RBMKType.REFLECTOR) { + + if (((TileEntityRBMKBase) this.origin.tile).isModerated()) + moderatedCount++; + + if (this.fluxRatio > 0 && moderatedCount > 0) + for (int i = 0; i < moderatedCount; i++) + moderateStream(); + + if (reflectorEfficiency != 1.0D) { + this.fluxQuantity *= reflectorEfficiency; + continue; + } + + ((TileEntityRBMKRod) originTE).receiveFlux(this); + return; + } else if (type == RBMKType.ABSORBER) { + if (absorberEfficiency == 1) + return; + + this.fluxQuantity *= absorberEfficiency; + } + } + + RBMKNeutronNode[] nodes = getNodes(true); + + RBMKNeutronNode lastNode = nodes[(nodes.length - 1)]; + + if(lastNode == null) { // This implies that there was *no* last node, meaning either way it was never caught. + // There is really no good way to figure out where exactly it should irradiate, so just irradiate at the origin tile. + irradiateFromFlux(new BlockPos(origin.tile.xCoord + this.vector.xCoord, origin.tile.yCoord, origin.tile.zCoord + this.vector.zCoord)); + return; + } + + RBMKType lastNodeType = (RBMKType) lastNode.data.get("type"); + + if (lastNodeType == RBMKType.CONTROL_ROD) { + TileEntityRBMKControl rod = (TileEntityRBMKControl) lastNode.tile; + if (rod.getMult() > 0.0D) { + this.fluxQuantity *= rod.getMult(); + irradiateFromFlux(new BlockPos(lastNode.tile.xCoord + this.vector.xCoord, lastNode.tile.yCoord, lastNode.tile.zCoord + this.vector.zCoord)); + } + } + } + + public int getHits(BlockPos pos) { + int hits = 0; + + for(int h = 0; h < columnHeight; h++) { + // holy fucking shit + // I have had this one line cause me like tens of problems + // I FUCKING HATE THIS + // total count of bugs fixed attributed to this function: 13 + Block block = origin.tile.getWorldObj().getBlock(pos.getX(), pos.getY() + h, pos.getZ()); + if (block.isOpaqueCube()) + hits += 1; + } + + return hits; + } + + public void irradiateFromFlux(BlockPos pos) { + ChunkRadiationManager.proxy.incrementRad(origin.tile.getWorldObj(), pos.getX(), pos.getY(), pos.getZ(), (float) (fluxQuantity * 0.05F * (1 - (double) getHits(pos) / columnHeight))); + } + + public void irradiateFromFlux(BlockPos pos, int hits) { + ChunkRadiationManager.proxy.incrementRad(origin.tile.getWorldObj(), pos.getX(), pos.getY(), pos.getZ(), (float) (fluxQuantity * 0.05F * (1 - (double) hits / columnHeight))); + } + + public void moderateStream() { + fluxRatio *= (1 - moderatorEfficiency); + } + + } +} diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index ebf943f95..5627d1109 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -6,23 +6,36 @@ import java.io.FileOutputStream; import java.util.HashMap; import java.util.Locale; import java.util.Map.Entry; +import java.util.UUID; + +import com.hbm.config.MobConfig; +import com.hbm.config.RadiationConfig; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidDigger; +import com.hbm.entity.mob.glyphid.EntityGlyphidScout; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.relauncher.Side; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.monster.IMob; +import net.minecraft.init.Blocks; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; +import net.minecraft.world.gen.ChunkProviderServer; import net.minecraftforge.event.entity.living.LivingSpawnEvent; +import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; import net.minecraftforge.event.world.WorldEvent; public class PollutionHandler { @@ -34,11 +47,17 @@ public class PollutionHandler { public static final float SOOT_PER_SECOND = 1F / 25F; /** Baserate of heavy metal generation, balanced around the soot values of combustion engines */ public static final float HEAVY_METAL_PER_SECOND = 1F / 50F; - + /** Baserate for poison when spilled */ + public static final float POISON_PER_SECOND = 1F / 50F; + public static Vec3 targetCoords; + /////////////////////// /// UTILITY METHODS /// /////////////////////// public static void incrementPollution(World world, int x, int y, int z, PollutionType type, float amount) { + + if(!RadiationConfig.enablePollution) return; + PollutionPerWorld ppw = perWorld.get(world); if(ppw == null) return; ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); @@ -47,7 +66,7 @@ public class PollutionHandler { data = new PollutionData(); ppw.pollution.put(pos, data); } - data.pollution[type.ordinal()] = MathHelper.clamp_float(data.pollution[type.ordinal()] + amount, 0F, 10_000F); + data.pollution[type.ordinal()] = MathHelper.clamp_float((float) (data.pollution[type.ordinal()] + amount * MobConfig.pollutionMult), 0F, 10_000F); } public static void decrementPollution(World world, int x, int y, int z, PollutionType type, float amount) { @@ -55,6 +74,9 @@ public class PollutionHandler { } public static void setPollution(World world, int x, int y, int z, PollutionType type, float amount) { + + if(!RadiationConfig.enablePollution) return; + PollutionPerWorld ppw = perWorld.get(world); if(ppw == null) return; ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); @@ -67,6 +89,9 @@ public class PollutionHandler { } public static float getPollution(World world, int x, int y, int z, PollutionType type) { + + if(!RadiationConfig.enablePollution) return 0; + PollutionPerWorld ppw = perWorld.get(world); if(ppw == null) return 0F; ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); @@ -76,6 +101,9 @@ public class PollutionHandler { } public static PollutionData getPollutionData(World world, int x, int y, int z) { + + if(!RadiationConfig.enablePollution) return null; + PollutionPerWorld ppw = perWorld.get(world); if(ppw == null) return null; ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); @@ -88,7 +116,7 @@ public class PollutionHandler { ////////////////////// @SubscribeEvent public void onWorldLoad(WorldEvent.Load event) { - if(!event.world.isRemote) { + if(!event.world.isRemote && RadiationConfig.enablePollution) { WorldServer world = (WorldServer) event.world; String dirPath = getDataDir(world); @@ -127,8 +155,11 @@ public class PollutionHandler { try { if(!pollutionFile.getParentFile().exists()) pollutionFile.getParentFile().mkdirs(); if(!pollutionFile.exists()) pollutionFile.createNewFile(); - NBTTagCompound data = perWorld.get(world).writeToNBT(); - CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); + PollutionPerWorld ppw = perWorld.get(world); + if(ppw != null) { + NBTTagCompound data = ppw.writeToNBT(); + CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); + } } catch(Exception ex) { System.out.println("Failed to write " + pollutionFile.getAbsolutePath()); ex.printStackTrace(); @@ -138,8 +169,10 @@ public class PollutionHandler { public String getDataDir(WorldServer world) { String dir = world.getSaveHandler().getWorldDirectory().getAbsolutePath(); - if(world.provider.dimensionId != 0) { - dir += File.separator + "DIM" + world.provider.dimensionId; + // Crucible and probably Thermos provide dimId by themselves + String dimId = File.separator + "DIM" + world.provider.dimensionId; + if(world.provider.dimensionId != 0 && !dir.endsWith(dimId)) { + dir += dimId; } dir += File.separator + "data"; return dir; @@ -154,6 +187,8 @@ public class PollutionHandler { if(event.side == Side.SERVER && event.phase == Phase.END) { + handleWorldDestruction(); + eggTimer++; if(eggTimer < 60) return; eggTimer = 0; @@ -172,13 +207,12 @@ public class PollutionHandler { int P = PollutionType.POISON.ordinal(); /* CALCULATION */ - if(data.pollution[S] > 15) { - pollutionForNeightbors[S] = data.pollution[S] * 0.05F; + if(data.pollution[S] > 10) { + pollutionForNeightbors[S] = (float) (data.pollution[S] * 0.05F); data.pollution[S] *= 0.8F; - } else { - data.pollution[S] *= 0.99F; } + data.pollution[S] *= 0.99F; data.pollution[H] *= 0.9995F; if(data.pollution[P] > 10) { @@ -222,6 +256,43 @@ public class PollutionHandler { } } + protected static final float DESTRUCTION_THRESHOLD = 15F; + protected static final int DESTRUCTION_COUNT = 5; + + protected static void handleWorldDestruction() { + + for(Entry entry : perWorld.entrySet()) { + + World world = entry.getKey(); + WorldServer serv = (WorldServer) world; + ChunkProviderServer provider = (ChunkProviderServer) serv.getChunkProvider(); + + for(Entry pollution : entry.getValue().pollution.entrySet()) { + + float poison = pollution.getValue().pollution[PollutionType.POISON.ordinal()]; + if(poison < DESTRUCTION_THRESHOLD) continue; + + ChunkCoordIntPair entryPos = pollution.getKey(); + + for(int i = 0; i < DESTRUCTION_COUNT; i++) { + int x = (entryPos.chunkXPos << 6) + world.rand.nextInt(64); + int z = (entryPos.chunkZPos << 6) + world.rand.nextInt(64); + + if(provider.chunkExists(x >> 4, z >> 4)) { + int y = world.getHeightValue(x, z) - world.rand.nextInt(3) + 1; + Block b = world.getBlock(x, y, z); + + if(b == Blocks.grass || (b == Blocks.dirt && world.getBlockMetadata(x, y, z) == 0)) { + world.setBlock(x, y, z, Blocks.dirt, 1, 3); + } else if(b == Blocks.tallgrass || b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { + world.setBlock(x, y, z, Blocks.air); + } + } + } + } + } + } + ////////////////////// /// DATA STRUCTURE /// ////////////////////// @@ -290,10 +361,14 @@ public class PollutionHandler { /// MOB EFFECTS /// /////////////////// + public static final UUID maxHealth = UUID.fromString("25462f6c-2cb2-4ca8-9b47-3a011cc61207"); + public static final UUID attackDamage = UUID.fromString("8f442d7c-d03f-49f6-a040-249ae742eed9"); @SubscribeEvent public void decorateMob(LivingSpawnEvent event) { + if(!RadiationConfig.enablePollution) return; + World world = event.world; if(world.isRemote) return; EntityLivingBase living = event.entityLiving; @@ -301,12 +376,46 @@ public class PollutionHandler { PollutionData data = getPollutionData(world, (int) Math.floor(event.x), (int) Math.floor(event.y), (int) Math.floor(event.z)); if(data == null) return; - if(living instanceof IMob) { + if(living instanceof IMob && !(living instanceof EntityGlyphid)) { - if(data.pollution[PollutionType.SOOT.ordinal()] > 15) { - if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("Soot Anger Health Increase", 2D, 1)); - if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Soot Anger Damage Increase", 1.5D, 1)); + if(data.pollution[PollutionType.SOOT.ordinal()] > RadiationConfig.buffMobThreshold) { + if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null && living.getEntityAttribute(SharedMonsterAttributes.maxHealth).getModifier(maxHealth) == null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier(maxHealth, "Soot Anger Health Increase", 1D, 1)); + if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null && living.getEntityAttribute(SharedMonsterAttributes.attackDamage).getModifier(attackDamage) == null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier(attackDamage, "Soot Anger Damage Increase", 1.5D, 1)); + living.heal(living.getMaxHealth()); } } } + ///RAMPANT MODE STUFFS/// + + @SubscribeEvent + public void rampantTargetSetter(PlayerSleepInBedEvent event){ + if (MobConfig.rampantGlyphidGuidance) targetCoords = Vec3.createVectorHelper(event.x, event.y, event.z); + } + + @SubscribeEvent + public void rampantScoutPopulator(WorldEvent.PotentialSpawns event){ + + if(MobConfig.rampantNaturalScoutSpawn && !event.world.isRemote && event.world.provider.dimensionId == 0 && event.world.canBlockSeeTheSky(event.x, event.y, event.z) && !event.isCanceled()) { + + if (event.world.rand.nextInt(MobConfig.rampantScoutSpawnChance) == 0) { + + float soot = PollutionHandler.getPollution(event.world, event.x, event.y, event.z, PollutionType.SOOT); + + if (soot >= MobConfig.rampantScoutSpawnThresh) { + EntityGlyphidScout scout = new EntityGlyphidScout(event.world); + scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); + if(scout.isValidLightLevel()) { + //escort for the scout, which can also deal with obstacles + EntityGlyphidDigger digger = new EntityGlyphidDigger(event.world); + scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); + digger.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); + if(scout.getCanSpawnHere()) event.world.spawnEntityInWorld(scout); + if(digger.getCanSpawnHere()) event.world.spawnEntityInWorld(digger); + } + } + } + } + + } + } diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java index 6e53a8838..f351d2a27 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java @@ -17,6 +17,7 @@ public abstract class ChunkRadiationHandler { public abstract void setRadiation(World world, int x, int y, int z, float rad); public abstract void incrementRad(World world, int x, int y, int z, float rad); public abstract void decrementRad(World world, int x, int y, int z, float rad); + public abstract void clearSystem(World world); /* * Proxy'd event handlers diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java index 5c81a416e..ed64bfc90 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java @@ -3,6 +3,8 @@ package com.hbm.handler.radiation; import java.util.HashMap; import java.util.Map.Entry; +import com.hbm.interfaces.Untested; + import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; @@ -19,7 +21,7 @@ public class ChunkRadiationHandler3D extends ChunkRadiationHandler { private HashMap perWorld = new HashMap(); - @Override + @Override @Untested public float getRadiation(World world, int x, int y, int z) { ThreeDimRadiationPerWorld radWorld = perWorld.get(world); @@ -28,7 +30,7 @@ public class ChunkRadiationHandler3D extends ChunkRadiationHandler { int yReg = MathHelper.clamp_int(y >> 4, 0, 15); - Float rad = radWorld.radiation.get(coords)[yReg]; + Float rad = radWorld.radiation.get(coords)[yReg]; // this will crash if the coord pair isn't nullchecked return rad == null ? 0F : rad; } @@ -66,7 +68,7 @@ public class ChunkRadiationHandler3D extends ChunkRadiationHandler { setRadiation(world, x, y, z, Math.max(getRadiation(world, x, y, z) - rad, 0)); } - @Override + @Override @Untested //will most definitely crash, for this to work i need to figure out what it even was i wanted to do in the first place public void updateSystem() { for(Entry entry : perWorld.entrySet()) { @@ -96,8 +98,7 @@ public class ChunkRadiationHandler3D extends ChunkRadiationHandler { if(buff.containsKey(newCoord)) { int newY = MathHelper.clamp_int(y + j, 0, 15); - Float[] vals = radiation.get(newCoord); - float rad = vals[newY]; + Float[] vals = radiation.get(newCoord); // ????????? but radiation was cleared! float newRad = vals[newY] + chunk.getValue()[newY] * percent; vals[newY] = Math.max(0F, newRad * 0.999F - 0.05F); } @@ -109,6 +110,15 @@ public class ChunkRadiationHandler3D extends ChunkRadiationHandler { } } + @Override + public void clearSystem(World world) { + ThreeDimRadiationPerWorld radWorld = perWorld.get(world); + + if(radWorld != null) { + radWorld.radiation.clear(); + } + } + @Override public void receiveWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java index c28a69348..76cc31af0 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java @@ -4,20 +4,10 @@ import net.minecraft.world.World; public class ChunkRadiationHandlerBlank extends ChunkRadiationHandler { - @Override - public float getRadiation(World world, int x, int y, int z) { - return 0; - } - - @Override - public void setRadiation(World world, int x, int y, int z, float rad) { } - - @Override - public void incrementRad(World world, int x, int y, int z, float rad) { } - - @Override - public void decrementRad(World world, int x, int y, int z, float rad) { } - - @Override - public void updateSystem() { } + @Override public float getRadiation(World world, int x, int y, int z) { return 0; } + @Override public void setRadiation(World world, int x, int y, int z, float rad) { } + @Override public void incrementRad(World world, int x, int y, int z, float rad) { } + @Override public void decrementRad(World world, int x, int y, int z, float rad) { } + @Override public void updateSystem() { } + @Override public void clearSystem(World world) { } } diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java index c95c180d5..50144d6aa 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java @@ -38,6 +38,18 @@ public class ChunkRadiationHandlerNT extends ChunkRadiationHandler { private static HashMap worldMap = new HashMap(); + @Override + public void clearSystem(World world) { + WorldRadiationData radWorld = worldMap.get(world); + + if(radWorld != null) { + radWorld.data.clear(); + radWorld.activePockets.clear(); + radWorld.dirtyChunks.clear(); + radWorld.dirtyChunks2.clear(); + } + } + @Override public void incrementRad(World world, int x, int y, int z, float rad) { if(!world.blockExists(x, y, z)) { diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java new file mode 100644 index 000000000..861d029db --- /dev/null +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerPRISM.java @@ -0,0 +1,419 @@ +package com.hbm.handler.radiation; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; + +import com.hbm.lib.Library; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.storage.ExtendedBlockStorage; +import net.minecraftforge.common.DimensionManager; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.event.world.ChunkDataEvent; +import net.minecraftforge.event.world.ChunkEvent; +import net.minecraftforge.event.world.WorldEvent; + +/** + * The PRISM system aims to make a semi-realistic containment system with simplified and variable resistance values. + * The general basis for this system is the simplified 3D system with its 16x16x16 regions, but in addition to those + * sub-chunks, each sub-chunk has several arrays of resistance values (three arrays, one for each axis) where each + * value represents the resistance of one "slice" of the sub-chunk. This allows resistances to be handled differently + * depending on the direction the radiation is coming from, and depending on the sub-chunk's localized block resistance + * density. While not as accurate as the pocket-based system from 1.12, it does a better job at simulating resistances + * of various block types instead of a binary sealing/not sealing system. For example it is therefore possible to + * safely store radioactive waste in a cave, shielded by many layers of rock and dirt, without needing extra concrete. + * The system's name stems from the "gradient"-like handling of the resistance values per axis, multiple color + * gradients make a rainbow, and rainbows come from prisms. Just like a prism, sub-chunks too handle the radiation + * going through them differently depending on the angle of approach. + * ___ + * /\ \ + * / \ \ + * / \ \ + * / \ \ + * /________\__\ + * + * @author hbm + * + */ +public class ChunkRadiationHandlerPRISM extends ChunkRadiationHandler { + + public ConcurrentHashMap perWorld = new ConcurrentHashMap(); + public static int cycles = 0; + + public static final float MAX_RADIATION = 1_000_000; + private static final String NBT_KEY_CHUNK_RADIATION = "hfr_prism_radiation_"; + private static final String NBT_KEY_CHUNK_RESISTANCE = "hfr_prism_resistance_"; + private static final String NBT_KEY_CHUNK_EXISTS = "hfr_prism_exists_"; + + @Override + public float getRadiation(World world, int x, int y, int z) { + + RadPerWorld system = perWorld.get(world); + + if(system != null) { + ChunkCoordIntPair coords = new ChunkCoordIntPair(x >> 4, z >> 4); + int yReg = MathHelper.clamp_int(y >> 4, 0, 15); + SubChunk[] subChunks = system.radiation.get(coords); + if(subChunks != null) { + SubChunk rad = subChunks[yReg]; + if(rad != null) return rad.radiation; + } + } + + return 0; + } + + @Override + public void setRadiation(World world, int x, int y, int z, float rad) { + + if(Float.isNaN(rad)) rad = 0; + + RadPerWorld system = perWorld.get(world); + + if(system != null) { + ChunkCoordIntPair coords = new ChunkCoordIntPair(x >> 4, z >> 4); + int yReg = MathHelper.clamp_int(y >> 4, 0, 15); + SubChunk[] subChunks = system.radiation.get(coords); + if(subChunks == null) { + subChunks = new SubChunk[16]; + system.radiation.put(coords, subChunks); + } + if(subChunks[yReg] == null) subChunks[yReg] = new SubChunk().rebuild(world, x, y, z); + subChunks[yReg].radiation = MathHelper.clamp_float(rad, 0, MAX_RADIATION); + world.getChunkFromBlockCoords(x, z).isModified = true; + } + } + + @Override + public void incrementRad(World world, int x, int y, int z, float rad) { + setRadiation(world, x, y, z, getRadiation(world, x, y, z) + rad); + } + + @Override + public void decrementRad(World world, int x, int y, int z, float rad) { + setRadiation(world, x, y, z, getRadiation(world, x, y, z) - rad); + } + + @Override + public void receiveWorldLoad(WorldEvent.Load event) { + if(!event.world.isRemote) perWorld.put(event.world, new RadPerWorld()); + } + + @Override + public void receiveWorldUnload(WorldEvent.Unload event) { + if(!event.world.isRemote) perWorld.remove(event.world); + } + + @Override + public void receiveChunkLoad(ChunkDataEvent.Load event) { + + if(!event.world.isRemote) { + RadPerWorld radWorld = perWorld.get(event.world); + + if(radWorld != null) { + SubChunk[] chunk = new SubChunk[16]; + + for(int i = 0; i < 16; i++) { + if(!event.getData().getBoolean(NBT_KEY_CHUNK_EXISTS + i)) { + chunk[i] = new SubChunk().rebuild(event.world, event.getChunk().xPosition << 4, i << 4, event.getChunk().zPosition << 4); + continue; + } + SubChunk sub = new SubChunk(); + chunk[i] = sub; + sub.radiation = event.getData().getFloat(NBT_KEY_CHUNK_RADIATION + i); + for(int j = 0; j < 16; j++) sub.xResist[j] = event.getData().getFloat(NBT_KEY_CHUNK_RESISTANCE + "x_" + j + "_" + i); + for(int j = 0; j < 16; j++) sub.yResist[j] = event.getData().getFloat(NBT_KEY_CHUNK_RESISTANCE + "y_" + j + "_" + i); + for(int j = 0; j < 16; j++) sub.zResist[j] = event.getData().getFloat(NBT_KEY_CHUNK_RESISTANCE + "z_" + j + "_" + i); + } + + radWorld.radiation.put(event.getChunk().getChunkCoordIntPair(), chunk); + } + } + } + + @Override + public void receiveChunkSave(ChunkDataEvent.Save event) { + if(!event.world.isRemote) { + RadPerWorld radWorld = perWorld.get(event.world); + if(radWorld != null) { + SubChunk[] chunk = radWorld.radiation.get(event.getChunk().getChunkCoordIntPair()); + if(chunk != null) { + for(int i = 0; i < 16; i++) { + SubChunk sub = chunk[i]; + if(sub != null) { + float rad = sub.radiation; + event.getData().setFloat(NBT_KEY_CHUNK_RADIATION + i, rad); + for(int j = 0; j < 16; j++) event.getData().setFloat(NBT_KEY_CHUNK_RESISTANCE + "x_" + j + "_" + i, sub.xResist[j]); + for(int j = 0; j < 16; j++) event.getData().setFloat(NBT_KEY_CHUNK_RESISTANCE + "y_" + j + "_" + i, sub.yResist[j]); + for(int j = 0; j < 16; j++) event.getData().setFloat(NBT_KEY_CHUNK_RESISTANCE + "z_" + j + "_" + i, sub.zResist[j]); + event.getData().setBoolean(NBT_KEY_CHUNK_EXISTS + i, true); + } + } + } + } + } + } + + @Override + public void receiveChunkUnload(ChunkEvent.Unload event) { + if(!event.world.isRemote) { + RadPerWorld radWorld = perWorld.get(event.world); + if(radWorld != null) { + radWorld.radiation.remove(event.getChunk().getChunkCoordIntPair()); + } + } + } + + public static final HashMap newAdditions = new HashMap(); + + @Override + public void updateSystem() { + + cycles++; + + for(WorldServer world : DimensionManager.getWorlds()) { //only updates loaded worlds + + RadPerWorld system = perWorld.get(world); + if(system == null) continue; + + int rebuildAllowance = 25; + + //it would be way to expensive to replace the sub-chunks entirely like with the old system + //(that only used floats anyway...) so instead we shift the radiation into the prev value + for(Entry chunk : system.radiation.entrySet()) { + ChunkCoordIntPair coord = chunk.getKey(); + + for(int i = 0; i < 16; i++) { + + SubChunk sub = chunk.getValue()[i]; + + boolean hasTriedRebuild = false; + + if(sub != null) { + sub.prevRadiation = sub.radiation; + sub.radiation = 0; + + //process some chunks that need extra rebuilding + if(rebuildAllowance > 0 && sub.needsRebuild) { + sub.rebuild(world, coord.chunkXPos << 4, i << 4, coord.chunkZPos << 4); + if(!sub.needsRebuild) { + rebuildAllowance--; + hasTriedRebuild = true; + } + } + + if(!hasTriedRebuild && Math.abs(coord.chunkXPos * coord.chunkZPos) % 5 == cycles % 5 && world.getChunkProvider().chunkExists(coord.chunkXPos, coord.chunkZPos)) { + + Chunk c = world.getChunkFromChunkCoords(coord.chunkXPos, coord.chunkZPos); + ExtendedBlockStorage[] xbs = c.getBlockStorageArray(); + ExtendedBlockStorage subChunk = xbs[i]; + int checksum = 0; + + if(subChunk != null) { + for(int iX = 0; iX < 16; iX++) for(int iY = 0; iY < 16; iY ++) for(int iZ = 0; iZ < 16; iZ ++) checksum += subChunk.getBlockLSBArray()[MathHelper.clamp_int(iY << 8 | iZ << 4 | iX, 0, 4095)]; + } + + if(checksum != sub.checksum) { + sub.rebuild(world, coord.chunkXPos << 4, i << 4, coord.chunkZPos << 4); + } + } + } + } + } + + //has to support additions while iterating + Iterator> it = system.radiation.entrySet().iterator(); + while(it.hasNext()) { + Entry chunk = it.next(); + if(this.getPrevChunkRadiation(chunk.getValue()) <= 0) continue; + for(int i = 0; i < 16; i++) { + + SubChunk sub = chunk.getValue()[i]; + + if(sub != null) { + if(sub.prevRadiation <= 0 || Float.isNaN(sub.prevRadiation) || Float.isInfinite(sub.prevRadiation)) continue; + float radSpread = 0; + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) radSpread += spreadRadiation(world, sub, i, chunk.getKey(), chunk.getValue(), system.radiation, dir); + sub.radiation += (sub.prevRadiation - radSpread) * 0.95F; + sub.radiation -= 1F; + sub.radiation = MathHelper.clamp_float(sub.radiation, 0, MAX_RADIATION); + } + } + } + + system.radiation.putAll(newAdditions); + newAdditions.clear(); + + /* + //reap chunks with no radiation at all + system.radiation.entrySet().removeIf(x -> getTotalChunkRadiation(x.getValue()) <= 0F); + */ //is this even a good idea? by reaping unused chunks we still lose our cached resistance values + } + } + + /** Returns the amount of radiation spread */ + private static float spreadRadiation(World world, SubChunk source, int y, ChunkCoordIntPair origin, SubChunk[] chunk, ConcurrentHashMap map, ForgeDirection dir) { + + float spread = 0.1F; + float amount = source.prevRadiation * spread; + + if(amount <= 1F) return 0; + + if(dir.offsetY != 0) { + if(dir == Library.POS_Y && y == 15) return amount; // out of world + if(dir == Library.NEG_Y && y == 0) return amount; // out of world + if(chunk[y + dir.offsetY] == null) chunk[y + dir.offsetY] = new SubChunk().rebuild(world, origin.chunkXPos << 4, (y + dir.offsetY) << 4, origin.chunkZPos << 4); + SubChunk to = chunk[y + dir.offsetY]; + return spreadRadiationTo(source, to, amount, dir); + } else { + ChunkCoordIntPair newPos = new ChunkCoordIntPair(origin.chunkXPos + dir.offsetX, origin.chunkZPos + dir.offsetZ); + if(!world.getChunkProvider().chunkExists(newPos.chunkXPos, newPos.chunkZPos)) return amount; + SubChunk[] newChunk = map.get(newPos); + if(newChunk == null) { + newChunk = new SubChunk[16]; + newAdditions.put(newPos, newChunk); + } + if(newChunk[y] == null) newChunk[y] = new SubChunk().rebuild(world, newPos.chunkXPos << 4, y << 4, newPos.chunkZPos << 4); + SubChunk to = newChunk[y]; + return spreadRadiationTo(source, to, amount, dir); + } + } + + private static float spreadRadiationTo(SubChunk from, SubChunk to, float amount, ForgeDirection movement) { + float resistance = from.getResistanceValue(movement.getOpposite()) + to.getResistanceValue(movement); + double fun = Math.pow(Math.E, -resistance / 10_000D); + float toMove = (float) Math.min(amount * fun, amount); + to.radiation += toMove; + return toMove; + } + + //private static float getTotalChunkRadiation(SubChunk[] chunk) { float rad = 0; for(SubChunk sub : chunk) if(sub != null) rad += sub.radiation; return rad; } + private static float getPrevChunkRadiation(SubChunk[] chunk) { float rad = 0; for(SubChunk sub : chunk) if(sub != null) rad += sub.prevRadiation; return rad; } + + @Override + public void clearSystem(World world) { + RadPerWorld system = perWorld.get(world); + if(system != null) system.radiation.clear(); + } + + public static class RadPerWorld { + public ConcurrentHashMap radiation = new ConcurrentHashMap(); + } + + public static class SubChunk { + + public float prevRadiation; + public float radiation; + public float[] xResist = new float[16]; + public float[] yResist = new float[16]; + public float[] zResist = new float[16]; + public boolean needsRebuild = false; + public int checksum = 0; + + @Deprecated public void updateBlock(World world, int x, int y, int z) { + int cX = x >> 4; + int cY = MathHelper.clamp_int(y >> 4, 0, 15); + int cZ = z >> 4; + + if(!world.getChunkProvider().chunkExists(cX, cZ)) return; + + int tX = cX << 4; + int tY = cY << 4; + int tZ = cX << 4; + + int sX = MathHelper.clamp_int(x - tX, 0, 15); + int sY = MathHelper.clamp_int(y - tY, 0, 15); + int sZ = MathHelper.clamp_int(z - tZ, 0, 15); + + Chunk chunk = world.getChunkFromChunkCoords(cX, cZ); + ExtendedBlockStorage[] xbs = chunk.getBlockStorageArray(); + ExtendedBlockStorage subChunk = xbs[cY]; + + xResist[sX] = yResist[sY] = zResist[sZ] = 0; + + for(int iX = 0; iX < 16; iX++) { + for(int iY = 0; iY < 16; iY ++) { + for(int iZ = 0; iZ < 16; iZ ++) { + + if(iX == sX || iY == sY || iZ == sZ) { //only redo the three affected slices by this position change + + Block b = subChunk.getBlockByExtId(iX, iY, iZ); + if(b.getMaterial() == Material.air) continue; + float resistance = Math.min(b.getExplosionResistance(null, world, tX + iX, tY + iY, tZ + iZ, x, y, z), 100); + if(iX == sX) xResist[iX] += resistance; + if(iY == sY) yResist[iY] += resistance; + if(iZ == sZ) zResist[iZ] += resistance; + } + } + } + } + } + + public SubChunk rebuild(World world, int x, int y, int z) { + needsRebuild = true; + int cX = x >> 4; + int cY = MathHelper.clamp_int(y >> 4, 0, 15); + int cZ = z >> 4; + + if(!world.getChunkProvider().chunkExists(cX, cZ)) return this; //if the chunk isn't actually loaded, quit (but needsRebuild is still set!) + + int tX = cX << 4; + int tY = cY << 4; + int tZ = cX << 4; + + for(int i = 0; i < 16; i++) xResist[i] = yResist[i] = zResist[i] = 0; + + Chunk chunk = world.getChunkFromChunkCoords(cX, cZ); + ExtendedBlockStorage[] xbs = chunk.getBlockStorageArray(); + ExtendedBlockStorage subChunk = xbs[cY]; + checksum = 0; + + if(subChunk != null) { + for(int iX = 0; iX < 16; iX++) { + for(int iY = 0; iY < 16; iY ++) { + for(int iZ = 0; iZ < 16; iZ ++) { + + Block b = subChunk.getBlockByExtId(iX, iY, iZ); + if(b.getMaterial() == Material.air) continue; + float resistance = Math.min(b.getExplosionResistance(null, world, tX + iX, tY + iY, tZ + iZ, x, y, z), 100); + xResist[iX] += resistance; + yResist[iY] += resistance; + zResist[iZ] += resistance; + checksum += subChunk.getBlockLSBArray()[MathHelper.clamp_int(iY << 8 | iZ << 4 | iX, 0, 4095)]; // the "good enough" approach + } + } + } + } + + needsRebuild = false; + return this; + } + + public float getResistanceValue(ForgeDirection movement) { + if(movement == Library.POS_X) return getResistanceFromArray(xResist, true); + if(movement == Library.NEG_X) return getResistanceFromArray(xResist, false); + if(movement == Library.POS_Y) return getResistanceFromArray(yResist, true); + if(movement == Library.NEG_Y) return getResistanceFromArray(yResist, false); + if(movement == Library.POS_Z) return getResistanceFromArray(zResist, true); + if(movement == Library.NEG_Z) return getResistanceFromArray(zResist, false); + return 0; + } + + private float getResistanceFromArray(float[] resist, boolean reverse) { + float res = 0F; + for(int i = 1; i < 16; i++) { + int index = reverse ? 15 - i : i; + res += resist[index] / 15F * i; + } + return res; + } + } +} diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java index d080eb6e6..d77c6b34b 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java @@ -5,12 +5,11 @@ import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; import com.hbm.config.RadiationConfig; -import com.hbm.packet.AuxParticlePacket; -import com.hbm.packet.PacketDispatcher; +import com.hbm.main.MainRegistry; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; @@ -25,31 +24,31 @@ import net.minecraftforge.event.world.WorldEvent; * @author hbm */ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { - + private HashMap perWorld = new HashMap(); private static final float maxRad = 100_000F; @Override public float getRadiation(World world, int x, int y, int z) { SimpleRadiationPerWorld radWorld = perWorld.get(world); - + if(radWorld != null) { ChunkCoordIntPair coords = new ChunkCoordIntPair(x >> 4, z >> 4); Float rad = radWorld.radiation.get(coords); return rad == null ? 0F : MathHelper.clamp_float(rad, 0, maxRad); } - + return 0; } @Override public void setRadiation(World world, int x, int y, int z, float rad) { SimpleRadiationPerWorld radWorld = perWorld.get(world); - + if(radWorld != null) { - + if(world.blockExists(x, 0, z)) { - + ChunkCoordIntPair coords = new ChunkCoordIntPair(x >> 4, z >> 4); radWorld.radiation.put(coords, MathHelper.clamp_float(rad, 0, maxRad)); world.getChunkFromBlockCoords(x, z).isModified = true; @@ -69,28 +68,28 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { @Override public void updateSystem() { - + for(Entry entry : perWorld.entrySet()) { - + HashMap radiation = entry.getValue().radiation; HashMap buff = new HashMap(radiation); radiation.clear(); World world = entry.getKey(); - + for(Entry chunk : buff.entrySet()) { - + if(chunk.getValue() == 0) continue; - + ChunkCoordIntPair coord = chunk.getKey(); - + for(int i = -1; i <= 1; i++) { for(int j = -1; j<= 1; j++) { - + int type = Math.abs(i) + Math.abs(j); float percent = type == 0 ? 0.6F : type == 1 ? 0.075F : 0.025F; ChunkCoordIntPair newCoord = new ChunkCoordIntPair(coord.chunkXPos + i, coord.chunkZPos + j); - + if(buff.containsKey(newCoord)) { Float val = radiation.get(newCoord); float rad = val == null ? 0 : val; @@ -100,15 +99,20 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { } else { radiation.put(newCoord, chunk.getValue() * percent); } - + float rad = radiation.get(newCoord); - if(rad > RadiationConfig.fogRad && world != null && world.rand.nextInt(RadiationConfig.fogCh) == 0 && world.getChunkFromChunkCoords(coord.chunkXPos, coord.chunkZPos).isChunkLoaded) { - + if(rad > RadiationConfig.fogRad && world != null && world.rand.nextInt(RadiationConfig.fogCh) == 0 && world.getChunkProvider().chunkExists(coord.chunkXPos, coord.chunkZPos)) { + int x = coord.chunkXPos * 16 + world.rand.nextInt(16); int z = coord.chunkZPos * 16 + world.rand.nextInt(16); int y = world.getHeightValue(x, z) + world.rand.nextInt(5); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(x, y, z, 3), new TargetPoint(world.provider.dimensionId, x, y, z, 100)); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "radFog"); + data.setDouble("posX", x); + data.setDouble("posY", y); + data.setDouble("posZ", z); + MainRegistry.proxy.effectNT(data); } } } @@ -116,6 +120,15 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { } } + @Override + public void clearSystem(World world) { + SimpleRadiationPerWorld radWorld = perWorld.get(world); + + if(radWorld != null) { + radWorld.radiation.clear(); + } + } + @Override public void receiveWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) @@ -127,15 +140,15 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { if(!event.world.isRemote) perWorld.remove(event.world); } - + private static final String NBT_KEY_CHUNK_RADIATION = "hfr_simple_radiation"; @Override public void receiveChunkLoad(ChunkDataEvent.Load event) { - + if(!event.world.isRemote) { SimpleRadiationPerWorld radWorld = perWorld.get(event.world); - + if(radWorld != null) { radWorld.radiation.put(event.getChunk().getChunkCoordIntPair(), event.getData().getFloat(NBT_KEY_CHUNK_RADIATION)); } @@ -144,10 +157,10 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { @Override public void receiveChunkSave(ChunkDataEvent.Save event) { - + if(!event.world.isRemote) { SimpleRadiationPerWorld radWorld = perWorld.get(event.world); - + if(radWorld != null) { Float val = radWorld.radiation.get(event.getChunk().getChunkCoordIntPair()); float rad = val == null ? 0F : val; @@ -158,74 +171,74 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { @Override public void receiveChunkUnload(ChunkEvent.Unload event) { - + if(!event.world.isRemote) { SimpleRadiationPerWorld radWorld = perWorld.get(event.world); - + if(radWorld != null) { radWorld.radiation.remove(event.getChunk()); } } } - + public static class SimpleRadiationPerWorld { - + public HashMap radiation = new HashMap(); } - + @Override public void handleWorldDestruction() { - + int count = 10; int threshold = 10; int chunks = 5; - + //for all worlds for(Entry per : perWorld.entrySet()) { - + World world = per.getKey(); SimpleRadiationPerWorld list = per.getValue(); - + Object[] entries = list.radiation.entrySet().toArray(); - + if(entries.length == 0) continue; - + //chose this many random chunks for(int c = 0; c < chunks; c++) { - + Entry randEnt = (Entry) entries[world.rand.nextInt(entries.length)]; - + ChunkCoordIntPair coords = randEnt.getKey(); WorldServer serv = (WorldServer) world; ChunkProviderServer provider = (ChunkProviderServer) serv.getChunkProvider(); - + //choose this many random locations within the chunk for(int i = 0; i < count; i++) { - + if(randEnt == null || randEnt.getValue() < threshold) continue; - + if(provider.chunkExists(coords.chunkXPos, coords.chunkZPos)) { - + for(int a = 0; a < 16; a++) { for(int b = 0; b < 16; b++) { - + if(world.rand.nextInt(3) != 0) continue; - + int x = coords.getCenterXPos() - 8 + a; int z = coords.getCenterZPosition() - 8 + b; int y = world.getHeightValue(x, z) - world.rand.nextInt(2); - + if(world.getBlock(x, y, z) == Blocks.grass) { world.setBlock(x, y, z, ModBlocks.waste_earth); - + } else if(world.getBlock(x, y, z) == Blocks.tallgrass) { world.setBlock(x, y, z, Blocks.air); - + } else if(world.getBlock(x, y, z).getMaterial() == Material.leaves && !(world.getBlock(x, y, z) == ModBlocks.waste_leaves)) { - + if(world.rand.nextInt(7) <= 5) { world.setBlock(x, y, z, ModBlocks.waste_leaves); } else { diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java index f1063672a..9cc989370 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java @@ -12,7 +12,7 @@ import net.minecraftforge.event.world.WorldEvent; public class ChunkRadiationManager { - public static ChunkRadiationHandler proxy = /*new ChunkRadiationHandlerNT();*/ new ChunkRadiationHandlerSimple(); + public static ChunkRadiationHandler proxy = new ChunkRadiationHandlerSimple(); @SubscribeEvent public void onWorldLoad(WorldEvent.Load event) { diff --git a/src/main/java/com/hbm/handler/threading/PacketThreading.java b/src/main/java/com/hbm/handler/threading/PacketThreading.java new file mode 100644 index 000000000..18c5fda01 --- /dev/null +++ b/src/main/java/com/hbm/handler/threading/PacketThreading.java @@ -0,0 +1,196 @@ +package com.hbm.handler.threading; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.hbm.config.GeneralConfig; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PrecompiledPacket; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import net.minecraft.entity.player.EntityPlayerMP; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; +import java.util.concurrent.locks.ReentrantLock; + +public class PacketThreading { + + public static final String threadPrefix = "NTM-Packet-Thread-"; + + public static final ThreadFactory packetThreadFactory = new ThreadFactoryBuilder().setNameFormat(threadPrefix + "%d").build(); + + public static final ThreadPoolExecutor threadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(1, packetThreadFactory); + + public static int totalCnt = 0; + + public static long nanoTimeWaited = 0; + + public static final List> futureList = new ArrayList<>(); + + public static ReentrantLock lock = new ReentrantLock(); + + /** + * Sets up thread pool settings during mod initialization. + */ + public static void init() { + threadPool.setKeepAliveTime(50, TimeUnit.MILLISECONDS); + if (GeneralConfig.enablePacketThreading) { + if (GeneralConfig.packetThreadingCoreCount < 0 || GeneralConfig.packetThreadingMaxCount <= 0) { + MainRegistry.logger.error("0.02_packetThreadingCoreCount < 0 or 0.03_packetThreadingMaxCount is <= 0, defaulting to 1 each."); + threadPool.setCorePoolSize(1); // beugh + threadPool.setMaximumPoolSize(1); + } else if (GeneralConfig.packetThreadingMaxCount > GeneralConfig.packetThreadingCoreCount) { + MainRegistry.logger.error("0.03_packetThreadingMaxCount is > 0.02_packetThreadingCoreCount, defaulting to 1 each."); + threadPool.setCorePoolSize(1); + threadPool.setMaximumPoolSize(1); + } else { + threadPool.setCorePoolSize(GeneralConfig.packetThreadingCoreCount); + threadPool.setMaximumPoolSize(GeneralConfig.packetThreadingMaxCount); + } + threadPool.allowCoreThreadTimeOut(false); + } else { + threadPool.allowCoreThreadTimeOut(true); + try { + lock.lock(); + for (Runnable task : threadPool.getQueue()) { + task.run(); // Run all tasks async just in-case there *are* tasks left to run. + } + clearThreadPoolTasks(); + } finally { + lock.unlock(); + } + } + } + + /** + * Adds a packet to the thread pool to be processed in the future. This is only compatible with the `sendToAllAround` dispatch operation. + * @param message Message to process. + * @param target TargetPoint to send to. + */ + public static void createAllAroundThreadedPacket(IMessage message, TargetPoint target) { + // `message` can be precompiled or not. + if(message instanceof PrecompiledPacket) + ((PrecompiledPacket) message).getPreBuf(); // Gets the precompiled buffer, doing nothing if it already exists. + totalCnt++; + + Runnable task = () -> { + try { + lock.lock(); + PacketDispatcher.wrapper.sendToAllAround(message, target); + if (message instanceof PrecompiledPacket) + ((PrecompiledPacket) message).getPreBuf().release(); + } finally { + lock.unlock(); + } + }; + + addTask(task); + } + + /** + * Adds a packet to the thread pool to be processed in the future. This is only compatible with the `sendTo` dispatch operation. + * + * @param message Message to process. + * @param player PlayerMP to send to. + */ + public static void createSendToThreadedPacket(IMessage message, EntityPlayerMP player) { + if(message instanceof PrecompiledPacket) + ((PrecompiledPacket) message).getPreBuf(); + totalCnt++; + + Runnable task = () -> { + try { + lock.lock(); + PacketDispatcher.wrapper.sendTo(message, player); + if (message instanceof PrecompiledPacket) + ((PrecompiledPacket) message).getPreBuf().release(); + } finally { + lock.unlock(); + } + }; + + addTask(task); + } + + private static void addTask(Runnable task) { + if(isTriggered()) + task.run(); + else if(GeneralConfig.enablePacketThreading) + futureList.add(threadPool.submit(task)); + else + task.run(); + } + + /** + * Wait until the packet thread is finished processing. + */ + public static void waitUntilThreadFinished() { + long startTime = System.nanoTime(); + try { + if (GeneralConfig.enablePacketThreading && (!GeneralConfig.packetThreadingErrorBypass && !hasTriggered)) { + for (Future future : futureList) { + nanoTimeWaited = System.nanoTime() - startTime; + future.get(50, TimeUnit.MILLISECONDS); // I HATE EVERYTHING + if(TimeUnit.MILLISECONDS.convert(nanoTimeWaited, TimeUnit.NANOSECONDS) > 50) throw new TimeoutException(); // >50ms total time? timeout? yes sir, ooh rah! + } + } + } catch (ExecutionException ignored) { + // impossible + } catch (TimeoutException e) { + if(!GeneralConfig.packetThreadingErrorBypass && !hasTriggered) + MainRegistry.logger.warn("A packet has taken >50ms to process, discarding {}/{} packets to prevent pausing of main thread ({} total futures).", threadPool.getQueue().size(), totalCnt, futureList.size()); + clearThreadPoolTasks(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); // maybe not the best thing but it's gotta be here + } finally { + futureList.clear(); + if(!threadPool.getQueue().isEmpty()) { + if(!GeneralConfig.packetThreadingErrorBypass && !hasTriggered) + MainRegistry.logger.warn("Residual packets in packet threading queue detected, discarding {}/{} packets.", threadPool.getQueue().size(), totalCnt); + clearThreadPoolTasks(); // Just in case the thread somehow doesn't process all the tasks, we don't want this backing up too far. + } + + totalCnt = 0; + } + } + + public static int clearCnt = 0; + + public static boolean hasTriggered = false; + + public static void clearThreadPoolTasks() { + + if(threadPool.getQueue().isEmpty()) { + clearCnt = 0; + return; + } + + threadPool.getQueue().clear(); + + if(!GeneralConfig.packetThreadingErrorBypass && !hasTriggered) + MainRegistry.logger.warn("Packet work queue cleared forcefully (clear count: {}).", clearCnt); + + clearCnt++; + + if(clearCnt > 5 && !isTriggered()) { + // If it's been cleared 5 times in a row, something may have gone really wrong. + // Best case scenario here, the server is lagging terribly, has a bad CPU, or has a poor network connection + // Worst case scenario, the entire packet thread is dead. (very not good) + // So just log it with a special message and only once. + MainRegistry.logger.error( + "Something has gone wrong and the packet pool has cleared 5 times (or more) in a row. " + + "This can indicate that the thread has been killed, suspended, or is otherwise non-functioning. " + + "This message will only be logged once, further packet operations will continue on the main thread. " + + "If this message is a common occurrence and is *completely expected*, then it can be bypassed permanently by setting " + + "the \"0.04_packetThreadingErrorBypass\" config option to true. This can lead to adverse effects, so do this at your own risk. " + + "Running \"/ntmpacket resetState\" resets this trigger as a temporary fix." + ); + hasTriggered = true; + } + } + + public static boolean isTriggered() { + return hasTriggered && !GeneralConfig.packetThreadingErrorBypass; + } +} diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index b670bfde7..6c7b2a19b 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -13,6 +13,7 @@ import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.material.MaterialShapes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; @@ -25,6 +26,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +@SuppressWarnings("unused") //shut the fuck up public class HazardRegistry { //CO60 5a β− 030.00Rad/s Spicy @@ -214,7 +216,6 @@ public class HazardRegistry { HazardSystem.register(ancient_scrap, makeData(RADIATION, 150F)); HazardSystem.register(block_corium, makeData(RADIATION, 150F)); HazardSystem.register(block_corium_cobble, makeData(RADIATION, 150F)); - HazardSystem.register(sand_gold198, makeData(RADIATION, au198 * block * powder_mult)); HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 0), makeData(RADIATION, 0.5F)); HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 1), makeData(RADIATION, 1F)); @@ -222,6 +223,9 @@ public class HazardRegistry { HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 3), makeData(RADIATION, 4F)); HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 4), makeData(RADIATION, 5F)); HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 5), makeData(RADIATION, 10F)); + + HazardSystem.register(new ItemStack(ModBlocks.ore_sellafield_radgem), makeData(RADIATION, 25F)); + HazardSystem.register(new ItemStack(ModItems.gem_rad), makeData(RADIATION, 25F)); registerOtherFuel(rod_zirnox, EnumZirnoxType.NATURAL_URANIUM_FUEL.ordinal(), u * rod_dual, wst * rod_dual * 11.5F, false); registerOtherFuel(rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), uf * rod_dual, wst * rod_dual * 10F, false); @@ -256,15 +260,6 @@ public class HazardRegistry { registerOtherWaste(waste_schrabidium, wst * billet * 15F); registerOtherWaste(waste_zfb_mox, wst * billet * 5F); - registerOtherFuel(pellet_schrabidium, sa326 * ingot * 5, wst * ingot * 100, true); - registerOtherFuel(pellet_hes, saf * ingot * 5, wst * ingot * 75, true); - registerOtherFuel(pellet_mes, saf * ingot * 5, wst * ingot * 50, true); - registerOtherFuel(pellet_les, saf * ingot * 5, wst * ingot * 20, false); - registerOtherFuel(pellet_beryllium, 0F, 10F, false); - registerOtherFuel(pellet_neptunium, np237 * ingot * 5, wst * ingot * 10, false); - registerOtherFuel(pellet_lead, 0F, 15F, false); - registerOtherFuel(pellet_advanced, 0F, 20F, false); - registerOtherFuel(plate_fuel_u233, u233 * ingot, wst * ingot * 13F, false); registerOtherFuel(plate_fuel_u235, u235 * ingot, wst * ingot * 10F, false); registerOtherFuel(plate_fuel_mox, mox * ingot, wst * ingot * 16F, false); @@ -399,6 +394,7 @@ public class HazardRegistry { registerRBMKRod(rbmk_fuel_zfb_pu241, pu239 * rod_rbmk * 0.1F, wst * rod_rbmk * 7.5F); registerRBMKRod(rbmk_fuel_zfb_am_mix, pu241 * rod_rbmk * 0.1F, wst * rod_rbmk * 10F); registerRBMK(rbmk_fuel_drx, bf * rod_rbmk, bf * rod_rbmk * 100F, true, true, 0, 1F/3F); + //registerRBMKRod(rbmk_fuel_curve, saf * rod_rbmk * np237 * rod_rbmk, wst * rod_rbmk * 35F); registerRBMKPellet(rbmk_pellet_ueu, u * billet, wst * billet * 20F); registerRBMKPellet(rbmk_pellet_meu, uf * billet, wst * billet * 21.5F); @@ -442,6 +438,22 @@ public class HazardRegistry { HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.DU), makeData(RADIATION, u238 * ingot * 4)); HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.NQD), makeData(RADIATION, u235 * ingot * 4)); HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.NQR), makeData(RADIATION, pu239 * ingot * 4)); + + registerPWRFuel(EnumPWRFuel.MEU, uf * billet * 2); + registerPWRFuel(EnumPWRFuel.HEU233, u233 * billet * 2); + registerPWRFuel(EnumPWRFuel.HEU235, u235 * billet * 2); + registerPWRFuel(EnumPWRFuel.MEN, npf * billet * 2); + registerPWRFuel(EnumPWRFuel.HEN237, np237 * billet * 2); + registerPWRFuel(EnumPWRFuel.MOX, mox * billet * 2); + registerPWRFuel(EnumPWRFuel.MEP, purg * billet * 2); + registerPWRFuel(EnumPWRFuel.HEP239, pu239 * billet * 2); + registerPWRFuel(EnumPWRFuel.HEP241, pu241 * billet * 2); + registerPWRFuel(EnumPWRFuel.MEA, amrg * billet * 2); + registerPWRFuel(EnumPWRFuel.HEA242, am242 * billet * 2); + registerPWRFuel(EnumPWRFuel.HES326, sa326 * billet * 2); + registerPWRFuel(EnumPWRFuel.HES327, sa327 * billet * 2); + registerPWRFuel(EnumPWRFuel.BFB_AM_MIX, amrg * billet); + registerPWRFuel(EnumPWRFuel.BFB_PU241, pu241 * billet); HazardSystem.register(powder_yellowcake, makeData(RADIATION, yc * powder)); HazardSystem.register(block_yellowcake, makeData(RADIATION, yc * block * powder_mult)); @@ -450,8 +462,6 @@ public class HazardRegistry { HazardSystem.register(ModBlocks.block_fallout, makeData(RADIATION, yc * block * powder_mult)); HazardSystem.register(powder_caesium, makeData().addEntry(HYDROACTIVE, 1F).addEntry(HOT, 3F)); - HazardSystem.register(wire_schrabidium, makeData(RADIATION, sa326 * nugget)); - HazardSystem.register(brick_asbestos, makeData(ASBESTOS, 1F)); HazardSystem.register(tile_lab_broken, makeData(ASBESTOS, 1F)); HazardSystem.register(powder_coltan_ore, makeData(ASBESTOS, 3F)); @@ -489,8 +499,8 @@ public class HazardRegistry { /* * Blacklist */ - for(String ore : TH232.ores()) HazardSystem.blacklist(ore); - for(String ore : U.ores()) HazardSystem.blacklist(ore); + for(String ore : TH232.all(MaterialShapes.ORE)) HazardSystem.blacklist(ore); + for(String ore : U.all(MaterialShapes.ORE)) HazardSystem.blacklist(ore); /* @@ -514,7 +524,7 @@ public class HazardRegistry { }; for(MaterialShapes shape : MaterialShapes.allShapes) { - for(String prefix : shape.prefixes) { + if(!shape.noAutogen) for(String prefix : shape.prefixes) { for(Object[] o : data) { HazardSystem.register(prefix + o[0], new HazardData().setMutex(0b1).addEntry(new HazardEntry(RADIATION, (float) o[1] * shape.q(1) / MaterialShapes.INGOT.q(1)))); } @@ -535,6 +545,12 @@ public class HazardRegistry { private static HazardData makeData(HazardTypeBase hazard, float level) { return new HazardData().addEntry(hazard, level); } private static HazardData makeData(HazardTypeBase hazard, float level, boolean override) { return new HazardData().addEntry(hazard, level, override); } + private static void registerPWRFuel(EnumPWRFuel fuel, float baseRad) { + HazardSystem.register(DictFrame.fromOne(ModItems.pwr_fuel, fuel), makeData(RADIATION, baseRad)); + HazardSystem.register(DictFrame.fromOne(ModItems.pwr_fuel_hot, fuel), makeData(RADIATION, baseRad * 10).addEntry(HOT, 5)); + HazardSystem.register(DictFrame.fromOne(ModItems.pwr_fuel_depleted, fuel), makeData(RADIATION, baseRad * 10)); + } + private static void registerRBMKPellet(Item pellet, float base, float dep) { registerRBMKPellet(pellet, base, dep, false, 0F, 0F); } private static void registerRBMKPellet(Item pellet, float base, float dep, boolean linear) { registerRBMKPellet(pellet, base, dep, linear, 0F, 0F); } private static void registerRBMKPellet(Item pellet, float base, float dep, boolean linear, float blinding, float digamma) { diff --git a/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKRadiation.java b/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKRadiation.java index f74368798..4c7bccc26 100644 --- a/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKRadiation.java +++ b/src/main/java/com/hbm/hazard/modifier/HazardModifierRBMKRadiation.java @@ -30,7 +30,7 @@ public class HazardModifierRBMKRadiation extends HazardModifier { } else if(stack.getItem() instanceof ItemRBMKPellet) { - double depletion = linear ? (ItemRBMKPellet.rectify(stack.getItemDamage()) % 5) / 4F : 1 - Math.pow((4 - ItemRBMKPellet.rectify(stack.getItemDamage()) % 5) / 4F, 2); + //double depletion = linear ? (ItemRBMKPellet.rectify(stack.getItemDamage()) % 5) / 4F : 1 - Math.pow((4 - ItemRBMKPellet.rectify(stack.getItemDamage()) % 5) / 4F, 2); level = level + (target - level) * ((ItemRBMKPellet.rectify(stack.getItemDamage()) % 5) / 4F); diff --git a/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java index f91e4e51f..2f66ebcb1 100644 --- a/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java +++ b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java @@ -23,15 +23,16 @@ public class HazardTransformerRadiationContainer extends HazardTransformerBase { boolean isCrate = Block.getBlockFromItem(stack.getItem()) instanceof BlockStorageCrate; boolean isBox = stack.getItem() == ModItems.containment_box; + boolean isBag = stack.getItem() == ModItems.plastic_bag; - if(!isCrate && !isBox) return; + if(!isCrate && !isBox && !isBag) return; if(!stack.hasTagCompound()) return; float radiation = 0; if(isCrate) { - for(int i = 0; i < 54; i++) { + for(int i = 0; i < 104; i++) { ItemStack held = ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i)); if(held != null) { @@ -54,6 +55,20 @@ public class HazardTransformerRadiationContainer extends HazardTransformerBase { radiation = (float) BobMathUtil.squirt(radiation); } + if(isBag) { + + ItemStack[] fromNBT = ItemStackUtil.readStacksFromNBT(stack, 1); + if(fromNBT == null) return; + + for(ItemStack held : fromNBT) { + if(held != null) { + radiation += HazardSystem.getHazardLevelFromStack(held, HazardRegistry.RADIATION) * held.stackSize; + } + } + + radiation *= 2F; + } + if(radiation > 0) { entries.add(new HazardEntry(HazardRegistry.RADIATION, radiation)); } diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java index f7d6a3c49..a716f925c 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java @@ -6,6 +6,7 @@ import com.hbm.config.RadiationConfig; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.I18nUtil; +import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -32,7 +33,7 @@ public class HazardTypeHydroactive extends HazardTypeBase { if(RadiationConfig.disableHydro) return; - if(item.isWet()) { + if(item.isWet() || item.worldObj.getBlock((int) Math.floor(item.posX), (int) Math.floor(item.posY), (int) Math.floor(item.posZ)).getMaterial() == Material.water) { item.setDead(); item.worldObj.newExplosion(null, item.posX, item.posY + item.height * 0.5, item.posZ, level, false, true); } diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java index ed6c84c69..177d32218 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java @@ -26,7 +26,7 @@ public class HazardTypeRadiation extends HazardTypeBase { boolean reacher = false; - if(target instanceof EntityPlayer && !GeneralConfig.enable528) + if(target instanceof EntityPlayer) reacher = ((EntityPlayer) target).inventory.hasItem(ModItems.reacher); level *= stack.stackSize; diff --git a/src/main/java/com/hbm/interfaces/IBulletHitBehavior.java b/src/main/java/com/hbm/interfaces/IBulletHitBehavior.java deleted file mode 100644 index b07aab829..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletHitBehavior.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -import net.minecraft.entity.Entity; - -public interface IBulletHitBehavior { - - //entity is hit, bullet dies - public void behaveEntityHit(EntityBulletBase bullet, Entity hit); - -} diff --git a/src/main/java/com/hbm/interfaces/IBulletHurtBehavior.java b/src/main/java/com/hbm/interfaces/IBulletHurtBehavior.java deleted file mode 100644 index 4aa57a5a2..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletHurtBehavior.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -import net.minecraft.entity.Entity; - -public interface IBulletHurtBehavior { - - //entity is hit - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit); -} diff --git a/src/main/java/com/hbm/interfaces/IBulletImpactBehavior.java b/src/main/java/com/hbm/interfaces/IBulletImpactBehavior.java deleted file mode 100644 index 30c067d79..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletImpactBehavior.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -public interface IBulletImpactBehavior { - - //block is hit, bullet dies - //also called when an entity is hit but with -1 coords, so beware - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z); - -} diff --git a/src/main/java/com/hbm/interfaces/IBulletRicochetBehavior.java b/src/main/java/com/hbm/interfaces/IBulletRicochetBehavior.java deleted file mode 100644 index 4f4f5c5f6..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletRicochetBehavior.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -public interface IBulletRicochetBehavior { - - //block is hit, bullet ricochets - public void behaveBlockRicochet(EntityBulletBase bullet, int x, int y, int z); - -} diff --git a/src/main/java/com/hbm/interfaces/IBulletUpdateBehavior.java b/src/main/java/com/hbm/interfaces/IBulletUpdateBehavior.java deleted file mode 100644 index 9f614c41e..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletUpdateBehavior.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -public interface IBulletUpdateBehavior { - - //once every update, for lcokon, steering and other memes - public void behaveUpdate(EntityBulletBase bullet); - -} diff --git a/src/main/java/com/hbm/interfaces/IControlReceiver.java b/src/main/java/com/hbm/interfaces/IControlReceiver.java index 74ff5d0c6..fe49fdf2e 100644 --- a/src/main/java/com/hbm/interfaces/IControlReceiver.java +++ b/src/main/java/com/hbm/interfaces/IControlReceiver.java @@ -10,6 +10,8 @@ import net.minecraft.nbt.NBTTagCompound; public interface IControlReceiver { public boolean hasPermission(EntityPlayer player); - + public void receiveControl(NBTTagCompound data); + /* this was the easiest way of doing this without needing to change all 7 quadrillion implementors */ + public default void receiveControl(EntityPlayer player, NBTTagCompound data) { } } diff --git a/src/main/java/com/hbm/interfaces/ICopiable.java b/src/main/java/com/hbm/interfaces/ICopiable.java new file mode 100644 index 000000000..e0b8c94f5 --- /dev/null +++ b/src/main/java/com/hbm/interfaces/ICopiable.java @@ -0,0 +1,29 @@ +package com.hbm.interfaces; + +import com.hbm.util.Either; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public interface ICopiable { + + NBTTagCompound getSettings(World world, int x, int y, int z); + + void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z); + + default String getSettingsSourceID(Either self) { + Block block = self.isLeft() ? self.left().getBlockType() : self.right(); + return block.getUnlocalizedName(); + } + + default String getSettingsSourceDisplay(Either self) { + Block block = self.isLeft() ? self.left().getBlockType() : self.right(); + return block.getLocalizedName(); + } + + default String[] infoForDisplay(World world, int x, int y, int z){ + return null; + } +} diff --git a/src/main/java/com/hbm/interfaces/ICustomWarhead.java b/src/main/java/com/hbm/interfaces/ICustomWarhead.java index 9c9301bc2..479ad891c 100644 --- a/src/main/java/com/hbm/interfaces/ICustomWarhead.java +++ b/src/main/java/com/hbm/interfaces/ICustomWarhead.java @@ -3,6 +3,8 @@ package com.hbm.interfaces; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Arrays; import org.apache.logging.log4j.Level; @@ -16,7 +18,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; -import scala.actors.threadpool.Arrays; /** * Interface for customizable warheads or other explosive devices * @author UFFR @@ -198,7 +199,7 @@ public interface ICustomWarhead { for (Enum f : combinedFuels) if (data.getFloat(f.toString()) > 0) - tooltip.add(String.format("%s: %skg (%s)", I18nUtil.resolveKey("warheadFuel.".concat(f.toString())), df.format(data.getFloat(f.toString())), BobMathUtil.toPercentage(data.getFloat(f.toString()), data.getFloat(NBT_MASS)))); + tooltip.add(String.format(Locale.US, "%s: %skg (%s)", I18nUtil.resolveKey("warheadFuel.".concat(f.toString())), df.format(data.getFloat(f.toString())), BobMathUtil.toPercentage(data.getFloat(f.toString()), data.getFloat(NBT_MASS)))); } public default void addTooltip(ItemStack stack, List tooltip) diff --git a/src/main/java/com/hbm/interfaces/IDoor.java b/src/main/java/com/hbm/interfaces/IDoor.java index 2b101dd76..a0c539a28 100644 --- a/src/main/java/com/hbm/interfaces/IDoor.java +++ b/src/main/java/com/hbm/interfaces/IDoor.java @@ -2,19 +2,23 @@ package com.hbm.interfaces; public interface IDoor { - public void open(); - public void close(); - public DoorState getState(); - public void toggle(); - public default boolean setTexture(String tex) { + void open(); + void close(); + DoorState getState(); + void toggle(); + default boolean setTexture(String tex) { + return false; + } + default void setTextureState(byte tex) { } + + default boolean setSkinIndex(byte skinIndex) { return false; } - public default void setTextureState(byte tex) { }; - public enum DoorState { + enum DoorState { CLOSED, OPEN, CLOSING, - OPENING; + OPENING } } diff --git a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java b/src/main/java/com/hbm/interfaces/IFluidAcceptor.java deleted file mode 100644 index b24f0cd3f..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidAcceptor extends IFluidContainer { - - @Deprecated int getMaxFluidFill(FluidType type); - - @Deprecated - public default void setFluidFillForReceive(int fill, FluidType type) { - this.setFluidFill(fill, type); - } - - @Deprecated - public default int getFluidFillForReceive(FluidType type) { - return this.getFluidFill(type); - } - - @Deprecated - public default int getMaxFluidFillForReceive(FluidType type) { - return this.getMaxFluidFill(type); - } - - @Deprecated - public default void receiveFluid(int amount, FluidType type) { - this.setFluidFill(this.getFluidFill(type) + amount, type); - } -} diff --git a/src/main/java/com/hbm/interfaces/IFluidContainer.java b/src/main/java/com/hbm/interfaces/IFluidContainer.java deleted file mode 100644 index 6e8b45284..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidContainer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidContainer { - - //Args: fill, what the fill should be set to; index, index for array if there are multiple tanks - public void setFillForSync(int fill, int index); - - //Args: fill: what the fill should be set to; type, what type the tank in question has - void setFluidFill(int fill, FluidType type); - - //Args: type, what the type should be set to; index, index for array if there are multiple tanks - public void setTypeForSync(FluidType type, int index); - - //Args: type, what type the tank in question has - int getFluidFill(FluidType type); - -} diff --git a/src/main/java/com/hbm/interfaces/IFluidDuct.java b/src/main/java/com/hbm/interfaces/IFluidDuct.java deleted file mode 100644 index 101013ef9..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidDuct.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -public interface IFluidDuct { - - public FluidType getType(); - public boolean setType(FluidType type); - -} diff --git a/src/main/java/com/hbm/interfaces/IFluidSource.java b/src/main/java/com/hbm/interfaces/IFluidSource.java deleted file mode 100644 index 195e0d71b..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidSource.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidSource extends IFluidContainer { - - @Deprecated void fillFluidInit(FluidType type); - - @Deprecated void fillFluid(int x, int y, int z, boolean newTact, FluidType type); - - @Deprecated boolean getTact(); - @Deprecated List getFluidList(FluidType type); - @Deprecated void clearFluidList(FluidType type); - - @Deprecated - public default void setFluidFillForTransfer(int fill, FluidType type) { - this.setFluidFill(fill, type); - } - - @Deprecated - public default int getFluidFillForTransfer(FluidType type) { - return this.getFluidFill(type); - } - - @Deprecated - public default void transferFluid(int amount, FluidType type) { - this.setFluidFillForTransfer(this.getFluidFillForTransfer(type) - amount, type); - } -} diff --git a/src/main/java/com/hbm/interfaces/IGasAcceptor.java b/src/main/java/com/hbm/interfaces/IGasAcceptor.java deleted file mode 100644 index 4cf182acd..000000000 --- a/src/main/java/com/hbm/interfaces/IGasAcceptor.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -public interface IGasAcceptor { - - void setGasFill(int i); - - int getGasFill(); - - int getMaxGasFill(); - -} diff --git a/src/main/java/com/hbm/interfaces/IGasDuct.java b/src/main/java/com/hbm/interfaces/IGasDuct.java deleted file mode 100644 index 13a0452b9..000000000 --- a/src/main/java/com/hbm/interfaces/IGasDuct.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.hbm.interfaces; - -public interface IGasDuct { - -} diff --git a/src/main/java/com/hbm/interfaces/IGasSource.java b/src/main/java/com/hbm/interfaces/IGasSource.java deleted file mode 100644 index 87e3a5e2d..000000000 --- a/src/main/java/com/hbm/interfaces/IGasSource.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -public interface IGasSource { - - void fillGasInit(); - - void fillGas(int x, int y, int z, boolean newTact); - - boolean getTact(); - int getGasFill(); - void setGasFill(int i); - List getGasList(); - void clearGasList(); - -} diff --git a/src/main/java/com/hbm/interfaces/IHoldableWeapon.java b/src/main/java/com/hbm/interfaces/IHoldableWeapon.java index 22647eb3b..b1a228d05 100644 --- a/src/main/java/com/hbm/interfaces/IHoldableWeapon.java +++ b/src/main/java/com/hbm/interfaces/IHoldableWeapon.java @@ -1,6 +1,6 @@ package com.hbm.interfaces; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; +import com.hbm.items.weapon.sedna.Crosshair; public interface IHoldableWeapon { diff --git a/src/main/java/com/hbm/interfaces/IOilAcceptor.java b/src/main/java/com/hbm/interfaces/IOilAcceptor.java deleted file mode 100644 index b8af2606e..000000000 --- a/src/main/java/com/hbm/interfaces/IOilAcceptor.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -public interface IOilAcceptor { - - void setFill(int i); - - int getFill(); - - int getMaxFill(); - -} diff --git a/src/main/java/com/hbm/interfaces/IOilDuct.java b/src/main/java/com/hbm/interfaces/IOilDuct.java deleted file mode 100644 index 9db089044..000000000 --- a/src/main/java/com/hbm/interfaces/IOilDuct.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.hbm.interfaces; - -public interface IOilDuct { - -} diff --git a/src/main/java/com/hbm/interfaces/IOilSource.java b/src/main/java/com/hbm/interfaces/IOilSource.java deleted file mode 100644 index 31fd4879a..000000000 --- a/src/main/java/com/hbm/interfaces/IOilSource.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -public interface IOilSource { - - void fillInit(); - - void fill(int x, int y, int z, boolean newTact); - - boolean getTact(); - int getSFill(); - void setSFill(int i); - List getList(); - void clearList(); - -} diff --git a/src/main/java/com/hbm/interfaces/IOrderedEnum.java b/src/main/java/com/hbm/interfaces/IOrderedEnum.java new file mode 100644 index 000000000..59f00f84d --- /dev/null +++ b/src/main/java/com/hbm/interfaces/IOrderedEnum.java @@ -0,0 +1,6 @@ +package com.hbm.interfaces; + +public interface IOrderedEnum { + + public Enum[] getOrder(); +} diff --git a/src/main/java/com/hbm/interfaces/IReactor.java b/src/main/java/com/hbm/interfaces/IReactor.java deleted file mode 100644 index c0da0b7fd..000000000 --- a/src/main/java/com/hbm/interfaces/IReactor.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.interfaces; - -import net.minecraft.world.World; - -public interface IReactor { - - boolean isStructureValid(World world); - - boolean isCoatingValid(World world); - - boolean hasFuse(); - - int getWaterScaled(int i); - - int getCoolantScaled(int i); - - long getPowerScaled(long i); - - int getHeatScaled(int i); - -} diff --git a/src/main/java/com/hbm/interfaces/NotableComments.java b/src/main/java/com/hbm/interfaces/NotableComments.java new file mode 100644 index 000000000..24ced52c9 --- /dev/null +++ b/src/main/java/com/hbm/interfaces/NotableComments.java @@ -0,0 +1,7 @@ +package com.hbm.interfaces; + +/* + * Historically, NTM has had so many comments that are either funny or lengthy rants or other silly shit that it's + * hard to keep track of all of it, this annotation shall be used on classes with noteworthy comments. + */ +public @interface NotableComments { } diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index 4ad6a1b50..c3f0e4afc 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -1,9 +1,11 @@ package com.hbm.inventory; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids.CD_Canister; @@ -17,8 +19,9 @@ import net.minecraftforge.oredict.OreDictionary; public class FluidContainerRegistry { - //TODO: somehow incorporate hashmaps into this + //TODO: continue incorporating hashmaps into this public static List allContainers = new ArrayList(); + private static HashMap> containerMap = new HashMap>(); public static void register() { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.water_bucket), new ItemStack(Items.bucket), Fluids.WATER, 1000)); @@ -33,7 +36,7 @@ public class FluidContainerRegistry { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModBlocks.lox_barrel), new ItemStack(ModItems.tank_steel), Fluids.OXYGEN, 10000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModBlocks.ore_oil), null, Fluids.OIL, 250)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModBlocks.ore_gneiss_gas), null, Fluids.PETROLEUM, 250)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModBlocks.ore_gneiss_gas), null, Fluids.PETROLEUM, GeneralConfig.enable528 ? 50 : 250)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_deuterium), new ItemStack(ModItems.cell_empty), Fluids.DEUTERIUM, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_tritium), new ItemStack(ModItems.cell_empty), Fluids.TRITIUM, 1000)); @@ -61,18 +64,24 @@ public class FluidContainerRegistry { for(int i = 1; i < fluids.length; i++) { FluidType type = fluids[i]; + int id = type.getID(); - if(type.getContainer(CD_Canister.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_full, 1, i), new ItemStack(ModItems.canister_empty), Fluids.fromID(i), 1000)); - if(type.getContainer(CD_Gastank.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full, 1, i), new ItemStack(ModItems.gas_empty), Fluids.fromID(i), 1000)); + if(type.getContainer(CD_Canister.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_full, 1, id), new ItemStack(ModItems.canister_empty), type, 1000)); + if(type.getContainer(CD_Gastank.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full, 1, id), new ItemStack(ModItems.gas_empty), type, 1000)); if(type.hasNoContainer()) continue; - - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_lead_full, 1, i), new ItemStack(ModItems.fluid_tank_lead_empty), Fluids.fromID(i), 1000)); + if(type.isDispersable()){ + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.disperser_canister, 1 , i), new ItemStack(ModItems.disperser_canister_empty), Fluids.fromID(i), 2000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.glyphid_gland, 1 , i), new ItemStack(ModItems.glyphid_gland_empty), Fluids.fromID(i), 4000)); + } + + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_lead_full, 1, id), new ItemStack(ModItems.fluid_tank_lead_empty), type, 1000)); + if(type.needsLeadContainer()) continue; - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, i), new ItemStack(ModItems.fluid_tank_empty), Fluids.fromID(i), 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, i), new ItemStack(ModItems.fluid_barrel_empty), Fluids.fromID(i), 16000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, id), new ItemStack(ModItems.fluid_tank_empty), type, 1000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, id), new ItemStack(ModItems.fluid_barrel_empty), type, 16000)); } Compat.registerCompatFluidContainers(); @@ -81,6 +90,35 @@ public class FluidContainerRegistry { public static void registerContainer(FluidContainer con) { allContainers.add(con); OreDictionary.registerOre(con.type.getDict(con.content), con.fullContainer); + + if(!containerMap.containsKey(con.type)) + containerMap.put(con.type, new ArrayList()); + + List items = containerMap.get(con.type); + items.add(con); + } + + public static List getContainers(FluidType type) { + return containerMap.get(type); + } + + public static FluidContainer getContainer(FluidType type, ItemStack stack) { + if(stack == null) + return null; + + ItemStack sta = stack.copy(); + sta.stackSize = 1; + + if (!containerMap.containsKey(type)) + return null; + + for (FluidContainer container : getContainers(type)) { + if (ItemStack.areItemStacksEqual(container.emptyContainer, sta) && ItemStack.areItemStackTagsEqual(container.emptyContainer, sta)) { + return container; + } + } + + return null; } public static int getFluidContent(ItemStack stack, FluidType type) { @@ -90,11 +128,12 @@ public class FluidContainerRegistry { ItemStack sta = stack.copy(); sta.stackSize = 1; + + if (!containerMap.containsKey(type)) + return 0; - for(FluidContainer container : allContainers) { - if(container.type == type && - ItemStack.areItemStacksEqual(container.fullContainer, sta) && - ItemStack.areItemStackTagsEqual(container.fullContainer, sta)) + for(FluidContainer container : containerMap.get(type)) { + if(ItemStack.areItemStacksEqual(container.fullContainer, sta) && ItemStack.areItemStackTagsEqual(container.fullContainer, sta)) return container.content; } @@ -124,8 +163,11 @@ public class FluidContainerRegistry { ItemStack sta = stack.copy(); sta.stackSize = 1; - for(FluidContainer container : allContainers) { - if(ItemStack.areItemStacksEqual(container.emptyContainer, sta) && ItemStack.areItemStackTagsEqual(container.emptyContainer, sta) && container.type == type) + if (!containerMap.containsKey(type)) + return null; + + for(FluidContainer container : containerMap.get(type)) { + if(ItemStack.areItemStacksEqual(container.emptyContainer, sta) && ItemStack.areItemStackTagsEqual(container.emptyContainer, sta)) return container.fullContainer.copy(); } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 271f58aac..b918c1480 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -9,21 +9,27 @@ import java.util.List; import static com.hbm.items.ModItems.*; import static com.hbm.blocks.ModBlocks.*; import static com.hbm.inventory.OreDictManager.DictFrame.*; -import static com.hbm.inventory.OreNames.*; +import static com.hbm.inventory.material.MaterialShapes.*; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockOreBasalt.EnumBasaltOreType; import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.config.GeneralConfig; +import com.hbm.crafting.MineralRecipes; import com.hbm.hazard.HazardData; import com.hbm.hazard.HazardEntry; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; +import com.hbm.interfaces.NotableComments; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumBriquetteType; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; @@ -40,6 +46,7 @@ import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary.OreRegisterEvent; //the more i optimize this, the more it starts looking like gregtech +@NotableComments public class OreDictManager { /** Alternate, additional names for ore dict registration. Used mostly for DictGroups */ @@ -62,6 +69,7 @@ public class OreDictManager { public static final String KEY_LEAVES = "treeLeaves"; public static final String KEY_SAPLING = "treeSapling"; public static final String KEY_SAND = "sand"; + public static final String KEY_COBBLESTONE = "cobblestone"; public static final String KEY_BLACK = "dyeBlack"; public static final String KEY_RED = "dyeRed"; @@ -94,7 +102,7 @@ public class OreDictManager { public static final String KEY_TOOL_CHEMISTRYSET = "ntmchemistryset"; public static final String KEY_TOOL_TORCH = "ntmtorch"; - public static final String KEY_CIRCUIT_BISMUTH = "circuitVersatile"; + public static final String KEY_GLYPHID_MEAT = "glyphidMeat"; /* * MATERIALS @@ -102,12 +110,15 @@ public class OreDictManager { /* * VANILLA */ + public static final DictFrame WOOD = new DictFrame("Wood"); + public static final DictFrame BONE = new DictFrame("Bone"); public static final DictFrame COAL = new DictFrame("Coal"); public static final DictFrame IRON = new DictFrame("Iron"); public static final DictFrame GOLD = new DictFrame("Gold"); public static final DictFrame LAPIS = new DictFrame("Lapis"); public static final DictFrame REDSTONE = new DictFrame("Redstone"); public static final DictFrame NETHERQUARTZ = new DictFrame("NetherQuartz"); + public static final DictFrame QUARTZ = new DictFrame("Quartz"); public static final DictFrame DIAMOND = new DictFrame("Diamond"); public static final DictFrame EMERALD = new DictFrame("Emerald"); /* @@ -159,6 +170,12 @@ public class OreDictManager { public static final DictFrame TCALLOY = new DictFrame("TcAlloy"); /** CADMIUM STEEL */ public static final DictFrame CDALLOY = new DictFrame("CdAlloy"); + /** BISMUTH BRONZE */ + public static final DictFrame BBRONZE = new DictFrame("BismuthBronze"); + /** ARSENIC BRONZE */ + public static final DictFrame ABRONZE = new DictFrame("ArsenicBronze"); + /** BISMUTH STRONTIUM CALCIUM COPPER OXIDE */ + public static final DictFrame BSCCO = new DictFrame("BSCCO"); /** LEAD */ public static final DictFrame PB = new DictFrame("Lead"); public static final DictFrame BI = new DictFrame("Bismuth"); @@ -176,18 +193,24 @@ public class OreDictManager { public static final DictFrame CO = new DictFrame("Cobalt"); /** BORON */ public static final DictFrame B = new DictFrame("Boron"); + /** SILICON */ + public static final DictFrame SI = new DictFrame("Silicon"); public static final DictFrame GRAPHITE = new DictFrame("Graphite"); + public static final DictFrame CARBON = new DictFrame("Carbon"); public static final DictFrame DURA = new DictFrame("DuraSteel"); public static final DictFrame POLYMER = new DictFrame("Polymer"); public static final DictFrame BAKELITE = new DictFrame("Bakelite"); public static final DictFrame PET = new DictFrame("PET"); public static final DictFrame PC = new DictFrame("Polycarbonate"); public static final DictFrame PVC = new DictFrame("PVC"); + public static final DictFrame LATEX = new DictFrame("Latex"); public static final DictFrame RUBBER = new DictFrame("Rubber"); public static final DictFrame MAGTUNG = new DictFrame("MagnetizedTungsten"); public static final DictFrame CMB = new DictFrame("CMBSteel"); public static final DictFrame DESH = new DictFrame("WorkersAlloy"); public static final DictFrame STAR = new DictFrame("Starmetal"); + public static final DictFrame GUNMETAL = new DictFrame("GunMetal"); + public static final DictFrame WEAPONSTEEL = new DictFrame("WeaponSteel"); public static final DictFrame BIGMT = new DictFrame("Saturnite"); public static final DictFrame FERRO = new DictFrame("Ferrouranium"); public static final DictFrame EUPH = new DictFrame("Euphemium"); @@ -211,15 +234,20 @@ public class OreDictManager { public static final DictFrame CINNABAR = new DictFrame("Cinnabar"); public static final DictFrame BORAX = new DictFrame("Borax"); public static final DictFrame CHLOROCALCITE = new DictFrame("Chlorocalcite"); + public static final DictFrame MOLYSITE = new DictFrame("Molysite"); + public static final DictFrame SODALITE = new DictFrame("Sodalite"); public static final DictFrame VOLCANIC = new DictFrame("Volcanic"); public static final DictFrame HEMATITE = new DictFrame("Hematite"); public static final DictFrame MALACHITE = new DictFrame("Malachite"); + public static final DictFrame LIMESTONE = new DictFrame("Limestone"); public static final DictFrame SLAG = new DictFrame("Slag"); /* * HAZARDS, MISC */ /** LITHIUM */ public static final DictFrame LI = new DictFrame("Lithium"); + /** SODIUM */ + public static final DictFrame NA = new DictFrame("Sodium"); /* * PHOSPHORUS */ @@ -237,6 +265,7 @@ public class OreDictManager { /* * RARE EARTHS */ + public static final DictFrame RAREEARTH = new DictFrame("RareEarth"); /** LANTHANUM */ public static final DictFrame LA = new DictFrame("Lanthanum"); /** ZIRCONIUM */ @@ -263,6 +292,7 @@ public class OreDictManager { /* * FISSION FRAGMENTS */ + public static final DictFrame SR = new DictFrame("Strontium"); public static final DictFrame SR90 = new DictFrame("Strontium90", "Sr90"); public static final DictFrame I131 = new DictFrame("Iodine131", "I131"); public static final DictFrame XE135 = new DictFrame("Xenon135", "Xe135"); @@ -272,12 +302,16 @@ public class OreDictManager { /* * COLLECTIONS */ + /** Any form of elastic polymer */ + public static final DictGroup ANY_RUBBER = new DictGroup("AnyRubber", LATEX, RUBBER); /** Any post oil polymer like teflon ("polymer") or bakelite */ public static final DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's just the secondary prefix, and that shape prefixes are applicable /** Any post vacuum polymer like PET or PVC */ public static final DictGroup ANY_HARDPLASTIC = new DictGroup("AnyHardPlastic", PC, PVC); /** Any post nuclear steel like TCA or CDA */ public static final DictGroup ANY_RESISTANTALLOY = new DictGroup("AnyResistantAlloy", TCALLOY, CDALLOY); + /** Any post RBMK bronze like BB or AB */ + public static final DictGroup ANY_BISMOIDBRONZE = new DictGroup("AnyBismoidBronze", BBRONZE, ABRONZE); /** Any "powder" propellant like gunpowder, ballistite and cordite */ public static final DictFrame ANY_GUNPOWDER = new DictFrame("AnyPropellant"); /** Any smokeless powder like ballistite and cordite */ @@ -291,6 +325,8 @@ public class OreDictManager { public static final DictGroup ANY_TAR = new DictGroup("Tar", KEY_OIL_TAR, KEY_COAL_TAR, KEY_CRACK_TAR, KEY_WOOD_TAR); /** Any special post-RBMK gating material, namely bismuth and arsenic */ public static final DictFrame ANY_BISMOID = new DictFrame("AnyBismoid"); + public static final DictFrame ANY_ASH = new DictFrame("Ash"); + public static void registerOres() { @@ -302,17 +338,18 @@ public class OreDictManager { GOLD.plate(plate_gold).dust(powder_gold).ore(ore_gneiss_gold); LAPIS.dust(powder_lapis); NETHERQUARTZ.gem(Items.quartz).dust(powder_quartz).ore(Blocks.quartz_ore); - DIAMOND.dust(powder_diamond).ore(gravel_diamond); - EMERALD.dust(powder_emerald); + QUARTZ.dust(powder_quartz); + DIAMOND.dust(powder_diamond).ore(gravel_diamond, ore_sellafield_diamond); + EMERALD.dust(powder_emerald).ore(ore_sellafield_emerald); /* * RADIOACTIVE */ - U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); + U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_sellafield_uranium_scorched) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); U233 .rad(HazardRegistry.u233) .nugget(nugget_u233) .billet(billet_u233) .ingot(ingot_u233) .block(block_u233); U235 .rad(HazardRegistry.u235) .nugget(nugget_u235) .billet(billet_u235) .ingot(ingot_u235) .block(block_u235); U238 .rad(HazardRegistry.u238) .nugget(nugget_u238) .billet(billet_u238) .ingot(ingot_u238) .block(block_u238); - TH232 .rad(HazardRegistry.th232) .nugget(nugget_th232) .billet(billet_th232) .ingot(ingot_th232) .dust(powder_thorium) .block(block_thorium) .ore(ore_thorium, ore_meteor_thorium); + TH232 .rad(HazardRegistry.th232) .nugget(nugget_th232) .billet(billet_th232) .ingot(ingot_th232) .dust(powder_thorium) .block(block_thorium) .ore(ore_thorium); PU .rad(HazardRegistry.pu) .nugget(nugget_plutonium) .billet(billet_plutonium) .ingot(ingot_plutonium) .dust(powder_plutonium) .block(block_plutonium) .ore(ore_nether_plutonium) .oreNether(ore_nether_plutonium); PURG .rad(HazardRegistry.purg) .nugget(nugget_pu_mix) .billet(billet_pu_mix) .ingot(ingot_pu_mix) .block(block_pu_mix); PU238 .rad(HazardRegistry.pu238) .hot(3F) .nugget(nugget_pu238) .billet(billet_pu238) .ingot(ingot_pu238) .block(block_pu238); @@ -330,7 +367,7 @@ public class OreDictManager { CO60 .rad(HazardRegistry.co60) .hot(1) .nugget(nugget_co60) .billet(billet_co60) .ingot(ingot_co60) .dust(powder_co60); AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198); PB209 .rad(HazardRegistry.pb209) .blinding(50F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209); - SA326 .rad(HazardRegistry.sa326) .blinding(50F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium).plate(plate_schrabidium).plateCast(Mats.MAT_SCHRABIDIUM.make(plate_cast)).block(block_schrabidium).ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium) .oreNether(ore_nether_schrabidium); + SA326 .rad(HazardRegistry.sa326) .blinding(50F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium).plate(plate_schrabidium).plateCast(Mats.MAT_SCHRABIDIUM.make(plate_cast)).block(block_schrabidium).ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium, ore_sellafield_schrabidium) .oreNether(ore_nether_schrabidium); SA327 .rad(HazardRegistry.sa327) .blinding(50F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium); SBD .rad(HazardRegistry.sb) .blinding(50F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium); @@ -340,30 +377,36 @@ public class OreDictManager { /* * STABLE */ - TI .ingot(ingot_titanium) .dust(powder_titanium) .plate(plate_titanium) .block(block_titanium) .ore(ore_titanium, ore_meteor_titanium); - CU .ingot(ingot_copper) .dust(powder_copper) .plate(plate_copper) .block(block_copper) .ore(ore_copper, ore_gneiss_copper, ore_meteor_copper); + TI .ingot(ingot_titanium) .dust(powder_titanium) .plate(plate_titanium) .block(block_titanium) .ore(ore_titanium); + CU .ingot(ingot_copper) .dust(powder_copper) .plate(plate_copper) .block(block_copper) .ore(ore_copper, ore_gneiss_copper); MINGRADE .ingot(ingot_red_copper) .dust(powder_red_copper) .block(block_red_copper); ALLOY .ingot(ingot_advanced_alloy) .dust(powder_advanced_alloy) .plate(plate_advanced_alloy) .block(block_advanced_alloy); - W .ingot(ingot_tungsten) .dust(powder_tungsten) .block(block_tungsten) .ore(ore_tungsten, ore_nether_tungsten, ore_meteor_tungsten) .oreNether(ore_nether_tungsten); - AL .ingot(ingot_aluminium) .dust(powder_aluminium) .plate(plate_aluminium) .block(block_aluminium) .ore(ore_aluminium, ore_meteor_aluminium); + W .ingot(ingot_tungsten) .dust(powder_tungsten) .block(block_tungsten) .ore(ore_tungsten, ore_nether_tungsten) .oreNether(ore_nether_tungsten); + AL .ingot(ingot_aluminium) .dust(powder_aluminium) .plate(plate_aluminium) .block(block_aluminium) .ore(ore_aluminium); STEEL .ingot(ingot_steel) .dustSmall(powder_steel_tiny) .dust(powder_steel) .plate(plate_steel) .block(block_steel); TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy) .block(block_tcalloy); CDALLOY .ingot(ingot_cdalloy) .block(block_cdalloy); - PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead); - BI .nugget(nugget_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); + BBRONZE .ingot(ingot_bismuth_bronze); + ABRONZE .ingot(ingot_arsenic_bronze); + BSCCO .ingot(ingot_bscco); + PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead); + BI .nugget(nugget_bismuth) .billet(billet_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth) .block(block_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); CA .ingot(ingot_calcium) .dust(powder_calcium); CD .ingot(ingot_cadmium) .dust(powder_cadmium) .block(block_cadmium); TA .nugget(nugget_tantalium) .gem(gem_tantalium) .ingot(ingot_tantalium) .dust(powder_tantalium) .block(block_tantalium); COLTAN .ingot(fragment_coltan) .dust(powder_coltan_ore) .block(block_coltan) .ore(ore_coltan); - NB .nugget(fragment_niobium) .ingot(ingot_niobium) .dustSmall(powder_niobium_tiny) .dust(powder_niobium) .block(block_niobium); + NB .nugget(nugget_niobium, fragment_niobium) .ingot(ingot_niobium) .dustSmall(powder_niobium_tiny) .dust(powder_niobium) .block(block_niobium); BE .nugget(nugget_beryllium) .billet(billet_beryllium) .ingot(ingot_beryllium) .dust(powder_beryllium) .block(block_beryllium) .ore(ore_beryllium); CO .nugget(fragment_cobalt) .nugget(nugget_cobalt) .billet(billet_cobalt) .ingot(ingot_cobalt) .dust(powder_cobalt) .dustSmall(powder_cobalt_tiny) .block(block_cobalt) .ore(ore_cobalt, ore_nether_cobalt); B .nugget(fragment_boron) .ingot(ingot_boron) .dustSmall(powder_boron_tiny) .dust(powder_boron) .block(block_boron); + SI .nugget(nugget_silicon) .billet(billet_silicon) .ingot(ingot_silicon); GRAPHITE .ingot(ingot_graphite) .block(block_graphite); - DURA .ingot(ingot_dura_steel) .dust(powder_dura_steel) .block(block_dura_steel); + CARBON .ingot(ingot_graphite) .block(block_graphite); + DURA .ingot(ingot_dura_steel) .dust(powder_dura_steel) .plate(plate_dura_steel) .block(block_dura_steel); POLYMER .ingot(ingot_polymer) .dust(powder_polymer) .block(block_polymer); BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite) .block(block_bakelite); + LATEX .gem(ball_resin) .ingot(ingot_biorubber); RUBBER .ingot(ingot_rubber) .block(block_rubber); //PET .ingot(ingot_pet); PC .ingot(ingot_pc); @@ -371,21 +414,23 @@ public class OreDictManager { 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); - STAR .ingot(ingot_starmetal) .block(block_starmetal) .ore(ore_meteor_starmetal); + STAR .ingot(ingot_starmetal) .block(block_starmetal); + GUNMETAL .ingot(ingot_gunmetal) .plate(plate_gunmetal); + WEAPONSTEEL .ingot(ingot_weaponsteel) .plate(plate_weaponsteel); BIGMT .ingot(ingot_saturnite) .plate(plate_saturnite); FERRO .ingot(ingot_ferrouranium); EUPH .nugget(nugget_euphemium) .ingot(ingot_euphemium) .dust(powder_euphemium) .block(block_euphemium); DNT .nugget(nugget_dineutronium) .ingot(ingot_dineutronium) .dust(powder_dineutronium) .block(block_dineutronium); FIBER .ingot(ingot_fiberglass) .block(block_fiberglass); - ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, basalt_asbestos, DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS)); + ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.ASBESTOS), DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS)); OSMIRIDIUM .nugget(nugget_osmiridium) .ingot(ingot_osmiridium); /* * DUST AND GEM ORES */ - S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); + S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.SULFUR), DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); KNO .dust(niter) .block(block_niter) .ore(ore_niter); - F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, basalt_fluorite); + F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.FLUORITE)); LIGNITE .gem(lignite) .dust(powder_lignite) .ore(ore_lignite); COALCOKE .gem(fromOne(coke, EnumCokeType.COAL)) .block(fromOne(block_coke, EnumCokeType.COAL)); PETCOKE .gem(fromOne(coke, EnumCokeType.PETROLEUM)) .block(fromOne(block_coke, EnumCokeType.PETROLEUM)); @@ -393,35 +438,40 @@ public class OreDictManager { CINNABAR .crystal(cinnebar) .gem(cinnebar) .ore(ore_cinnebar, ore_depth_cinnebar); BORAX .dust(powder_borax) .ore(ore_depth_borax); CHLOROCALCITE .dust(powder_chlorocalcite); - VOLCANIC .gem(gem_volcanic) .ore(basalt_gem); + MOLYSITE .dust(powder_molysite) .ore(DictFrame.fromOne(ore_basalt, EnumBasaltOreType.MOLYSITE)); + SODALITE .gem(gem_sodalite); + VOLCANIC .gem(gem_volcanic) .ore(DictFrame.fromOne(ore_basalt, EnumBasaltOreType.GEM)); HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE)); MALACHITE .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); + LIMESTONE .dust(powder_limestone) .ore(fromOne(stone_resource, EnumStoneType.LIMESTONE)); SLAG .block(block_slag); /* * HAZARDS, MISC */ - LI .hydro(1F) .ingot(lithium) .dustSmall(powder_lithium_tiny) .dust(powder_lithium) .block(block_lithium) .ore(ore_gneiss_lithium, ore_meteor_lithium); + LI .hydro(1F) .ingot(lithium) .dustSmall(powder_lithium_tiny) .dust(powder_lithium) .block(block_lithium) .ore(ore_gneiss_lithium); + NA .hydro(1F) .dust(powder_sodium); /* * PHOSPHORUS */ P_WHITE .hot(5) .ingot(ingot_phosphorus) .block(block_white_phosphorus); - P_RED .hot(2) .dust(powder_fire) .block(block_red_phosphorus); + P_RED .dust(powder_fire) .block(block_red_phosphorus); /* * RARE METALS */ AUSTRALIUM .nugget(nugget_australium) .billet(billet_australium) .ingot(ingot_australium) .dust(powder_australium) .block(block_australium) .ore(ore_australium); - REIIUM .nugget(nugget_reiium) .ingot(ingot_reiium) .dust(powder_reiium) .block(block_reiium) .ore(ore_reiium); - WEIDANIUM .nugget(nugget_weidanium) .ingot(ingot_weidanium) .dust(powder_weidanium) .block(block_weidanium) .ore(ore_weidanium); - UNOBTAINIUM .nugget(nugget_unobtainium) .ingot(ingot_unobtainium) .dust(powder_unobtainium) .block(block_unobtainium) .ore(ore_unobtainium); - VERTICIUM .nugget(nugget_verticium) .ingot(ingot_verticium) .dust(powder_verticium) .block(block_verticium) .ore(ore_verticium); - DAFFERGON .nugget(nugget_daffergon) .ingot(ingot_daffergon) .dust(powder_daffergon) .block(block_daffergon) .ore(ore_daffergon); + REIIUM .block(block_reiium); + WEIDANIUM .block(block_weidanium); + UNOBTAINIUM .block(block_unobtainium); + VERTICIUM .block(block_verticium); + DAFFERGON .block(block_daffergon); /* * RARE EARTHS */ + RAREEARTH.ingot(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE)).ore(ore_rare, ore_gneiss_rare); LA .nugget(fragment_lanthanium) .ingot(ingot_lanthanium) .dustSmall(powder_lanthanium_tiny) .dust(powder_lanthanium) .block(block_lanthanium); ZR .nugget(nugget_zirconium) .ingot(ingot_zirconium) .billet(billet_zirconium) .dust(powder_zirconium) .block(block_zirconium) .ore(ore_depth_zirconium); ND .nugget(fragment_neodymium) .dustSmall(powder_neodymium_tiny) .dust(powder_neodymium) .ore(ore_depth_nether_neodymium) .oreNether(ore_depth_nether_neodymium); @@ -440,6 +490,7 @@ public class OreDictManager { /* * FISSION FRAGMENTS */ + SR .hot(1F) .hydro(1F) .dust(powder_strontium); SR90 .rad(HazardRegistry.sr90) .hot(1F) .hydro(1F) .dustSmall(powder_sr90_tiny) .dust(powder_sr90) .ingot(ingot_sr90) .billet(billet_sr90) .nugget(nugget_sr90); I131 .rad(HazardRegistry.i131) .hot(1F) .dustSmall(powder_i131_tiny) .dust(powder_i131); XE135 .rad(HazardRegistry.xe135) .hot(10F) .dustSmall(powder_xe135_tiny) .dust(powder_xe135); @@ -458,6 +509,7 @@ public class OreDictManager { for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored_ext, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)).block(fromAll(block_coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); + ANY_ASH .any(fromOne(ModItems.powder_ash, EnumAshType.WOOD), fromOne(ModItems.powder_ash, EnumAshType.COAL), fromOne(ModItems.powder_ash, EnumAshType.MISC), fromOne(ModItems.powder_ash, EnumAshType.FLY), fromOne(ModItems.powder_ash, EnumAshType.SOOT)); /* * TAR @@ -487,15 +539,32 @@ public class OreDictManager { OreDictionary.registerOre(KEY_TOOL_TORCH, new ItemStack(acetylene_torch, 1, OreDictionary.WILDCARD_VALUE)); /* - * CIRCUITS + * GLYPHID M E A T */ - OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_bismuth); - OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic); - + OreDictionary.registerOre(KEY_GLYPHID_MEAT, new ItemStack(glyphid_meat)); + OreDictionary.registerOre(KEY_GLYPHID_MEAT, new ItemStack(glyphid_meat_grilled)); + for(NTMMaterial mat : Mats.orderedList) { - if(mat.smeltable == SmeltingBehavior.SMELTABLE && mat.shapes.contains(MaterialShapes.CASTPLATE)) { - for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); + if(mat.smeltable == SmeltingBehavior.SMELTABLE) { + if(mat.autogen.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id)); } + if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.INGOT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.INGOT.name() + name, new ItemStack(ModItems.ingot_raw, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.SHELL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.SHELL.name() + name, new ItemStack(ModItems.shell, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.PIPE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.PIPE.name() + name, new ItemStack(ModItems.pipe, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.FRAGMENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.FRAGMENT.name() + name, new ItemStack(ModItems.bedrock_ore_fragment, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.WIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WIRE.name() + name, new ItemStack(ModItems.wire_fine, 1, mat.id)); + + if(mat.autogen.contains(MaterialShapes.LIGHTBARREL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.LIGHTBARREL.name() + name, new ItemStack(ModItems.part_barrel_light, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.HEAVYBARREL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVYBARREL.name() + name, new ItemStack(ModItems.part_barrel_heavy, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.LIGHTRECEIVER)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.LIGHTRECEIVER.name() + name, new ItemStack(ModItems.part_receiver_light, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.HEAVYRECEIVER)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVYRECEIVER.name() + name, new ItemStack(ModItems.part_receiver_heavy, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.MECHANISM)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.MECHANISM.name() + name, new ItemStack(ModItems.part_mechanism, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.STOCK)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.STOCK.name() + name, new ItemStack(ModItems.part_stock, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.GRIP)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.GRIP.name() + name, new ItemStack(ModItems.part_grip, 1, mat.id)); } for(EnumBedrockOre ore : EnumBedrockOre.values()) { @@ -517,8 +586,6 @@ public class OreDictManager { OreDictionary.registerOre("briquetteWood", fromOne(briquette, EnumBriquetteType.WOOD)); OreDictionary.registerOre(getReflector(), neutron_reflector); - OreDictionary.registerOre("oreRareEarth", ore_rare); - OreDictionary.registerOre("oreRareEarth", ore_gneiss_rare); OreDictionary.registerOre("logWood", pink_log); OreDictionary.registerOre("logWoodPink", pink_log); @@ -563,6 +630,13 @@ public class OreDictManager { OreDictionary.registerOre("dye", new ItemStack(oil_tar, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("dyeOrange", powder_cadmium); OreDictionary.registerOre("dye", powder_cadmium); + OreDictionary.registerOre("dyeLightGray", fromOne(powder_ash, EnumAshType.WOOD)); + OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.COAL)); + OreDictionary.registerOre("dyeGray", fromOne(powder_ash, EnumAshType.MISC)); + OreDictionary.registerOre("dyeBrown", fromOne(powder_ash, EnumAshType.FLY)); + OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.SOOT)); + OreDictionary.registerOre("dyeMagenta", fromOne(powder_ash, EnumAshType.FULLERENE)); + OreDictionary.registerOre("dye", new ItemStack(powder_ash, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("blockGlass", glass_boron); OreDictionary.registerOre("blockGlass", glass_lead); @@ -576,8 +650,22 @@ public class OreDictManager { OreDictionary.registerOre("blockGlassBlack", glass_ash); OreDictionary.registerOre("container1000lubricant", bdcl); + OreDictionary.registerOre("itemSilicon", billet_silicon); + + for(NTMMaterial mat : Mats.orderedList) { + if(mat.autogen.contains(MaterialShapes.FRAGMENT)) { + String name = mat.names[0]; + if(!OreDictionary.getOres(MaterialShapes.DUST.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.DUST.name() + name).get(0)); + else if(!OreDictionary.getOres(MaterialShapes.GEM.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.GEM.name() + name).get(0)); + else if(!OreDictionary.getOres(MaterialShapes.CRYSTAL.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.CRYSTAL.name() + name).get(0)); + else if(!OreDictionary.getOres(MaterialShapes.INGOT.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.INGOT.name() + name).get(0)); + else if(!OreDictionary.getOres(MaterialShapes.BILLET.name() + name).isEmpty()) MineralRecipes.addBilletFragment(OreDictionary.getOres(MaterialShapes.BILLET.name() + name).get(0), mat.make(ModItems.bedrock_ore_fragment)); + else MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), new ItemStack(ModItems.nothing)); + } + } MaterialShapes.registerCompatShapes(); + compensateMojangSpaghettiBullshit(); } public static String getReflector() { @@ -585,9 +673,12 @@ public class OreDictManager { } public static void registerGroups() { - ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); - ANY_HARDPLASTIC.addPrefix(INGOT, true); - ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(BLOCK, true); + ANY_RUBBER.addPrefix(INGOT, true); + ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true).addPrefix(GRIP, true).addPrefix(STOCK, true); + ANY_HARDPLASTIC.addPrefix(INGOT, true).addPrefix(STOCK, true).addPrefix(GRIP, true); + ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(CASTPLATE, true).addPrefix(WELDEDPLATE, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true) + .addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true); + ANY_BISMOIDBRONZE.addPrefix(INGOT, true).addPrefix(CASTPLATE, true).addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true); ANY_TAR.addPrefix(ANY, false); } @@ -595,9 +686,7 @@ public class OreDictManager { @SubscribeEvent public void onRegisterOre(OreRegisterEvent event) { - - if(recursionBrake) - return; + if(recursionBrake) return; recursionBrake = true; @@ -611,6 +700,35 @@ public class OreDictManager { } recursionBrake = false; + + if(event.Name.startsWith("ingot") || event.Name.startsWith("ore") || event.Name.startsWith("plate") || event.Name.startsWith("block")) { + arcSmeltable.add(new ComparableStack(event.Ore)); + } + } + + public static final HashSet arcSmeltable = new HashSet(); + + /** Vanilla item ore dict registration events never actually register in the ODM because vanilla items are registered so early that the ODM event handler doesn't exist yet. */ + public static void compensateMojangSpaghettiBullshit() { + + arcSmeltable.add(new ComparableStack(Blocks.gold_ore)); + arcSmeltable.add(new ComparableStack(Blocks.iron_ore)); + arcSmeltable.add(new ComparableStack(Blocks.lapis_ore)); + arcSmeltable.add(new ComparableStack(Blocks.diamond_ore)); + arcSmeltable.add(new ComparableStack(Blocks.redstone_ore)); + arcSmeltable.add(new ComparableStack(Blocks.emerald_ore)); + arcSmeltable.add(new ComparableStack(Blocks.quartz_ore)); + arcSmeltable.add(new ComparableStack(Blocks.gold_block)); + arcSmeltable.add(new ComparableStack(Blocks.iron_block)); + arcSmeltable.add(new ComparableStack(Blocks.lapis_block)); + arcSmeltable.add(new ComparableStack(Blocks.diamond_block)); + arcSmeltable.add(new ComparableStack(Blocks.redstone_block)); + arcSmeltable.add(new ComparableStack(Blocks.emerald_block)); + arcSmeltable.add(new ComparableStack(Blocks.quartz_block)); + arcSmeltable.add(new ComparableStack(Items.iron_ingot)); + arcSmeltable.add(new ComparableStack(Items.gold_ingot)); + arcSmeltable.add(new ComparableStack(Items.brick)); + arcSmeltable.add(new ComparableStack(Items.netherbrick)); } public static class DictFrame { @@ -625,33 +743,35 @@ public class OreDictManager { /* * Quick access methods to grab ore names for recipes. */ - public String any() { return ANY + mats[0]; } - public String nugget() { return NUGGET + mats[0]; } - public String tiny() { return TINY + mats[0]; } - public String ingot() { return INGOT + mats[0]; } - public String dustTiny() { return DUSTTINY + mats[0]; } - public String dust() { return DUST + mats[0]; } - public String gem() { return GEM + mats[0]; } - public String crystal() { return CRYSTAL + mats[0]; } - public String plate() { return PLATE + mats[0]; } - public String plateCast() { return PLATECAST + mats[0]; } - public String billet() { return BILLET + mats[0]; } - public String block() { return BLOCK + mats[0]; } - public String ore() { return ORE + mats[0]; } - public String[] anys() { return appendToAll(ANY); } - public String[] nuggets() { return appendToAll(NUGGET); } - public String[] tinys() { return appendToAll(TINY); } - public String[] allNuggets() { return appendToAll(NUGGET, TINY); } - public String[] ingots() { return appendToAll(INGOT); } - public String[] dustTinys() { return appendToAll(DUSTTINY); } - public String[] dusts() { return appendToAll(DUST); } - public String[] gems() { return appendToAll(GEM); } - public String[] crystals() { return appendToAll(CRYSTAL); } - public String[] plates() { return appendToAll(PLATE); } - public String[] plateCasts() { return appendToAll(PLATECAST); } - public String[] billets() { return appendToAll(BILLET); } - public String[] blocks() { return appendToAll(BLOCK); } - public String[] ores() { return appendToAll(ORE); } + public String any() { return ANY.name() + mats[0]; } + public String nugget() { return NUGGET.name() + mats[0]; } + public String tiny() { return TINY.name() + mats[0]; } + public String bolt() { return BOLT.name() + mats[0]; } + public String ingot() { return INGOT.name() + mats[0]; } + public String dustTiny() { return DUSTTINY.name() + mats[0]; } + public String dust() { return DUST.name() + mats[0]; } + public String gem() { return GEM.name() + mats[0]; } + public String crystal() { return CRYSTAL.name() + mats[0]; } + public String plate() { return PLATE.name() + mats[0]; } + public String plateCast() { return CASTPLATE.name() + mats[0]; } + public String plateWelded() { return WELDEDPLATE.name() + mats[0]; } + public String heavyComp() { return HEAVY_COMPONENT.name() + mats[0]; } + public String wireFine() { return WIRE.name() + mats[0]; } + public String wireDense() { return DENSEWIRE.name() + mats[0]; } + public String shell() { return SHELL.name() + mats[0]; } + public String pipe() { return PIPE.name() + mats[0]; } + public String billet() { return BILLET.name() + mats[0]; } + public String block() { return BLOCK.name() + mats[0]; } + public String ore() { return ORE.name() + mats[0]; } + public String fragment() { return FRAGMENT.name() + mats[0]; } + public String lightBarrel() { return LIGHTBARREL.name() + mats[0]; } + public String heavyBarrel() { return HEAVYBARREL.name() + mats[0]; } + public String lightReceiver() { return LIGHTRECEIVER.name() + mats[0]; } + public String heavyReceiver() { return HEAVYRECEIVER.name() + mats[0]; } + public String mechanism() { return MECHANISM.name() + mats[0]; } + public String stock() { return STOCK.name() + mats[0]; } + public String grip() { return GRIP.name() + mats[0]; } + public String[] all(MaterialShapes shape) { return appendToAll(shape.prefixes); } /** Returns cast (triple) plates if 528 mode is enabled or normal plates if not */ public String plate528() { return GeneralConfig.enable528 ? plateCast() : plate(); } @@ -745,7 +865,7 @@ public class OreDictManager { } public DictFrame plateCast(Object... plate) { hazMult = HazardRegistry.plateCast; - return makeObject(PLATECAST, plate); + return makeObject(CASTPLATE, plate); } public DictFrame billet(Object... billet) { hazMult = HazardRegistry.billet; @@ -765,8 +885,9 @@ public class OreDictManager { return makeObject(ORENETHER, oreNether); } - public DictFrame makeObject(String tag, Object... objects) { + public DictFrame makeObject(MaterialShapes shape, Object... objects) { + String tag = shape.name(); for(Object o : objects) { if(o instanceof Item) registerStack(tag, new ItemStack((Item) o)); if(o instanceof Block) registerStack(tag, new ItemStack((Block) o)); @@ -851,8 +972,9 @@ public class OreDictManager { * @param prefix The prefix of both the input and result of the reregistration * @return */ - public DictGroup addPrefix(String prefix, boolean inputPrefix) { + public DictGroup addPrefix(MaterialShapes shape, boolean inputPrefix) { + String prefix = shape.name(); String group = prefix + groupName; for(String name : names) { @@ -875,19 +997,31 @@ public class OreDictManager { return this; } - public String any() { return ANY + groupName; } - public String nugget() { return NUGGET + groupName; } - public String tiny() { return TINY + groupName; } - public String ingot() { return INGOT + groupName; } - public String dustTiny() { return DUSTTINY + groupName; } - public String dust() { return DUST + groupName; } - public String gem() { return GEM + groupName; } - public String crystal() { return CRYSTAL + groupName; } - public String plate() { return PLATE + groupName; } - public String plateTriple() { return PLATECAST + groupName; } - public String billet() { return BILLET + groupName; } - public String block() { return BLOCK + groupName; } - public String ore() { return ORE + groupName; } + public String any() { return ANY.name() + groupName; } + public String nugget() { return NUGGET.name() + groupName; } + public String tiny() { return TINY.name() + groupName; } + public String bolt() { return BOLT.name() + groupName; } + public String ingot() { return INGOT.name() + groupName; } + public String dustTiny() { return DUSTTINY .name() + groupName; } + public String dust() { return DUST.name() + groupName; } + public String gem() { return GEM.name() + groupName; } + public String crystal() { return CRYSTAL.name() + groupName; } + public String plate() { return PLATE.name() + groupName; } + public String plateCast() { return CASTPLATE.name() + groupName; } + public String plateWelded() { return WELDEDPLATE.name() + groupName; } + public String heavyComp() { return HEAVY_COMPONENT.name() + groupName; } + public String wireFine() { return WIRE.name() + groupName; } + public String wireDense() { return DENSEWIRE.name() + groupName; } + public String billet() { return BILLET.name() + groupName; } + public String block() { return BLOCK.name() + groupName; } + public String ore() { return ORE.name() + groupName; } + public String lightBarrel() { return LIGHTBARREL.name() + groupName; } + public String heavyBarrel() { return HEAVYBARREL.name() + groupName; } + public String lightReceiver() { return LIGHTRECEIVER.name() + groupName; } + public String heavyReceiver() { return HEAVYRECEIVER.name() + groupName; } + public String mechanism() { return MECHANISM.name() + groupName; } + public String stock() { return STOCK.name() + groupName; } + public String grip() { return GRIP.name() + groupName; } } private static void addReRegistration(String original, String additional) { diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java deleted file mode 100644 index 91cbb7099..000000000 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.hbm.inventory; - -public class OreNames { - - /* - * PREFIXES - */ - public static final String ANY = "any"; - public static final String NUGGET = "nugget"; - public static final String TINY = "tiny"; - public static final String INGOT = "ingot"; - public static final String DUSTTINY = "dustTiny"; - public static final String DUST = "dust"; - public static final String GEM = "gem"; - public static final String CRYSTAL = "crystal"; - public static final String PLATE = "plate"; - public static final String PLATECAST = "plateTriple"; //cast plates are solid plates made from 3 ingots, turns out that's literally just a GT triple plate - public static final String BILLET = "billet"; - public static final String BLOCK = "block"; - public static final String ORE = "ore"; - public static final String ORENETHER = "oreNether"; - - public static final String[] prefixes = new String[] { - ANY, NUGGET, TINY, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER - }; -} diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index 9e963743b..c2b9116a5 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -111,9 +111,22 @@ public class RecipesCommon { public int meta; public ComparableStack(ItemStack stack) { - this.item = stack.getItem(); - this.stacksize = stack.stackSize; - this.meta = stack.getItemDamage(); + if(stack == null) { + this.item = ModItems.nothing; + this.stacksize = 1; + return; + } + try { + this.item = stack.getItem(); + if(this.item == null) this.item = ModItems.nothing; //i'm going to bash some fuckard's head in + this.stacksize = stack.stackSize; + this.meta = stack.getItemDamage(); + } catch(Exception ex) { + this.item = ModItems.nothing; + if(!GeneralConfig.enableSilentCompStackErrors) { + ex.printStackTrace(); + } + } } public ComparableStack makeSingular() { @@ -123,6 +136,7 @@ public class RecipesCommon { public ComparableStack(Item item) { this.item = item; + if(this.item == null) this.item = ModItems.nothing; this.stacksize = 1; this.meta = 0; } @@ -155,8 +169,13 @@ public class RecipesCommon { this.meta = meta; } + public ComparableStack(Item item, int stacksize, Enum meta) { + this(item, stacksize); + this.meta = meta.ordinal(); + } + public ItemStack toStack() { - return new ItemStack(item, stacksize, meta); + return new ItemStack(item == null ? ModItems.nothing : item, stacksize, meta); } public String[] getDictKeys() { @@ -259,6 +278,10 @@ public class RecipesCommon { public AStack copy() { return new ComparableStack(item, stacksize, meta); } + + public ComparableStack copy(int stacksize) { + return new ComparableStack(item, stacksize, meta); + } @Override public boolean matchesRecipe(ItemStack stack, boolean ignoreSize) { @@ -371,6 +394,10 @@ public class RecipesCommon { public AStack copy() { return new OreDictStack(name, stacksize); } + + public OreDictStack copy(int stacksize) { + return new OreDictStack(name, stacksize); + } @Override public boolean matchesRecipe(ItemStack stack, boolean ignoreSize) { diff --git a/src/main/java/com/hbm/inventory/SlotDeprecated.java b/src/main/java/com/hbm/inventory/SlotDeprecated.java new file mode 100644 index 000000000..1fa16a9d6 --- /dev/null +++ b/src/main/java/com/hbm/inventory/SlotDeprecated.java @@ -0,0 +1,28 @@ +package com.hbm.inventory; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +/** + * Deprecated slots can hold items from previous versions, but are otherwise entirely uninteractable + */ +public class SlotDeprecated extends Slot { + + public SlotDeprecated(IInventory inventory, int id, int x, int y) { + super(inventory, id, x, y); + } + + @Override + public boolean isItemValid(ItemStack stack) { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean func_111238_b() { + return false; + } +} diff --git a/src/main/java/com/hbm/inventory/SlotNonRetarded.java b/src/main/java/com/hbm/inventory/SlotNonRetarded.java index 4e5d12739..87c166277 100644 --- a/src/main/java/com/hbm/inventory/SlotNonRetarded.java +++ b/src/main/java/com/hbm/inventory/SlotNonRetarded.java @@ -1,5 +1,7 @@ package com.hbm.inventory; +import com.hbm.interfaces.NotableComments; + import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; @@ -8,6 +10,7 @@ import net.minecraft.item.ItemStack; * Because vanilla slots have severe mental disabilities that prevent them from working as expected. * @author hbm */ +@NotableComments public class SlotNonRetarded extends Slot { public SlotNonRetarded(IInventory inventory, int id, int x, int y) { @@ -21,4 +24,13 @@ public class SlotNonRetarded extends Slot { public boolean isItemValid(ItemStack stack) { return inventory.isItemValidForSlot(this.slotNumber, stack); } + + /** + * Because if slots have higher stacksizes than the maximum allowed by the tile, the display just stops working. + * Why was that necessary? Sure it's not intended but falsifying information isn't very cool. + */ + @Override + public int getSlotStackLimit() { + return Math.max(this.inventory.getInventoryStackLimit(), this.getHasStack() ? this.getStack().stackSize : 1); + } } diff --git a/src/main/java/com/hbm/inventory/UpgradeManager.java b/src/main/java/com/hbm/inventory/UpgradeManager.java deleted file mode 100644 index 39c366de4..000000000 --- a/src/main/java/com/hbm/inventory/UpgradeManager.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory; - -import java.util.HashMap; - -import com.hbm.interfaces.Untested; -import com.hbm.items.machine.ItemMachineUpgrade; -import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; - -import net.minecraft.item.ItemStack; - -public class UpgradeManager { - - private static HashMap upgrades = new HashMap(); - private static UpgradeType mutexType = null; - - @Untested - public static void eval(ItemStack[] slots, int start, int end) { - - upgrades.clear(); - - for(int i = start; i <= end; i++) { - - if(slots[i] != null && slots[i].getItem() instanceof ItemMachineUpgrade) { - ItemMachineUpgrade item = (ItemMachineUpgrade) slots[i].getItem(); - - if(item.type.mutex) { - - if(mutexType == null || mutexType.ordinal() < item.type.ordinal()) { - mutexType = item.type; - } - - } else { - Integer up = upgrades.get(item.type); - int upgrade = (up == null ? 0 : up); - upgrade += item.tier; - upgrades.put(item.type, upgrade); - } - } - } - } - - public static int getLevel(UpgradeType type) { - Integer up = upgrades.get(type); - return up == null ? 0 : up; - } - - public static UpgradeType getMinerMutex() { - return mutexType; - } -} diff --git a/src/main/java/com/hbm/inventory/UpgradeManagerNT.java b/src/main/java/com/hbm/inventory/UpgradeManagerNT.java new file mode 100644 index 000000000..55422fb8d --- /dev/null +++ b/src/main/java/com/hbm/inventory/UpgradeManagerNT.java @@ -0,0 +1,80 @@ +package com.hbm.inventory; + +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.tileentity.IUpgradeInfoProvider; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +import java.util.Arrays; +import java.util.HashMap; + +/* + Steps for use: + 1. TE implements IUpgradeInfoProvider + 2. TE creates a new instance of UpgradeManagerNT + 3. Upgrades and their levels can then be pulled from there. + */ + +/** + * Upgrade system, now with caching! + * @author BallOfEnergy1 + */ +public class UpgradeManagerNT { + + public ItemStack[] cachedSlots; + + private UpgradeType mutexType; + public HashMap upgrades = new HashMap<>(); + + public void checkSlots(TileEntity te, ItemStack[] slots, int start, int end) { + + if(!(te instanceof IUpgradeInfoProvider) || slots == null) + return; + + ItemStack[] upgradeSlots = Arrays.copyOfRange(slots, start, end + 1); + + if(Arrays.equals(upgradeSlots, cachedSlots)) + return; + + cachedSlots = upgradeSlots.clone(); + + upgrades.clear(); + + for (int i = 0; i <= end - start; i++) { + + if(upgradeSlots[i] != null && upgradeSlots[i].getItem() instanceof ItemMachineUpgrade) { + + ItemMachineUpgrade item = (ItemMachineUpgrade) upgradeSlots[i].getItem(); + IUpgradeInfoProvider upgradable = (IUpgradeInfoProvider) te; + + if(upgradable.getValidUpgrades() == null) + return; + + if (upgradable.getValidUpgrades().containsKey(item.type)) { // Check if upgrade can even be accepted by the machine. + if (item.type.mutex) { + if (mutexType == null) { + upgrades.put(item.type, 1); + mutexType = item.type; + } else if(item.type.ordinal() > mutexType.ordinal()) { + upgrades.remove(mutexType); + upgrades.put(item.type, 1); + mutexType = item.type; + } + } else { + + Integer levelBefore = upgrades.get(item.type); + int upgradeLevel = (levelBefore == null ? 0 : levelBefore); + upgradeLevel += item.tier; + // Add additional check to make sure it doesn't go over the max. + upgrades.put(item.type, Math.min(upgradeLevel, upgradable.getValidUpgrades().get(item.type))); + } + } + } + } + } + + public Integer getLevel(UpgradeType type) { + return upgrades.getOrDefault(type, 0); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerAMSBase.java b/src/main/java/com/hbm/inventory/container/ContainerAMSBase.java deleted file mode 100644 index fd293f63f..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerAMSBase.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityAMSBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerAMSBase extends Container { - -private TileEntityAMSBase amsBase; - - private int heat; - private int warning; - private int mode; - - public ContainerAMSBase(InventoryPlayer invPlayer, TileEntityAMSBase tedf) { - amsBase = tedf; - - //Cool 1 In - this.addSlotToContainer(new Slot(tedf, 0, 8, 18)); - //Cool 1 Out - this.addSlotToContainer(new Slot(tedf, 1, 8, 54)); - //Cool 2 In - this.addSlotToContainer(new Slot(tedf, 2, 152, 18)); - //Cool 2 Out - this.addSlotToContainer(new Slot(tedf, 3, 152, 54)); - //Fuel 1 In - this.addSlotToContainer(new Slot(tedf, 4, 8, 72)); - //Fuel 1 Out - this.addSlotToContainer(new Slot(tedf, 5, 8, 108)); - //Fuel 2 In - this.addSlotToContainer(new Slot(tedf, 6, 152, 72)); - //Fuel 2 Out - this.addSlotToContainer(new Slot(tedf, 7, 152, 108)); - //Moderator - this.addSlotToContainer(new Slot(tedf, 8, 80, 45)); - this.addSlotToContainer(new Slot(tedf, 9, 62, 63)); - this.addSlotToContainer(new Slot(tedf, 10, 98, 63)); - this.addSlotToContainer(new Slot(tedf, 11, 80, 81)); - //Core - this.addSlotToContainer(new Slot(tedf, 12, 80, 63)); - //Sat Chips - this.addSlotToContainer(new Slot(tedf, 13, 62, 108)); - this.addSlotToContainer(new Slot(tedf, 14, 62 + 18, 108)); - this.addSlotToContainer(new Slot(tedf, 15, 62 + 36, 108)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else - return null; - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return amsBase.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.heat != this.amsBase.heat) - { - par1.sendProgressBarUpdate(this, 0, this.amsBase.heat); - } - - if(this.warning != this.amsBase.warning) - { - par1.sendProgressBarUpdate(this, 2, this.amsBase.warning); - } - - if(this.mode != this.amsBase.mode) - { - par1.sendProgressBarUpdate(this, 4, this.amsBase.mode); - } - } - - this.heat = this.amsBase.heat; - this.warning = this.amsBase.warning; - this.mode = this.amsBase.mode; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 0) - { - amsBase.heat = j; - } - if(i == 1) - { - amsBase.efficiency = j; - } - if(i == 2) - { - amsBase.warning = j; - } - if(i == 3) - { - amsBase.field = j; - } - if(i == 4) - { - amsBase.mode = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerAMSEmitter.java b/src/main/java/com/hbm/inventory/container/ContainerAMSEmitter.java deleted file mode 100644 index 6a4841a30..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerAMSEmitter.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerAMSEmitter extends Container { - -private TileEntityAMSEmitter amsEmitter; - - private int heat; - private int warning; - - public ContainerAMSEmitter(InventoryPlayer invPlayer, TileEntityAMSEmitter tedf) { - amsEmitter = tedf; - - //Fluid In - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - //Fluid Out - this.addSlotToContainer(new Slot(tedf, 1, 44, 53)); - //Focus - this.addSlotToContainer(new Slot(tedf, 2, 80, 53)); - //Battery - this.addSlotToContainer(new Slot(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else - return null; - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return amsEmitter.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.heat != this.amsEmitter.heat) - { - par1.sendProgressBarUpdate(this, 0, this.amsEmitter.heat); - } - - if(this.warning != this.amsEmitter.warning) - { - par1.sendProgressBarUpdate(this, 2, this.amsEmitter.warning); - } - } - - this.heat = this.amsEmitter.heat; - this.warning = this.amsEmitter.warning; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 0) - { - amsEmitter.heat = j; - } - if(i == 2) - { - amsEmitter.warning = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerAMSLimiter.java b/src/main/java/com/hbm/inventory/container/ContainerAMSLimiter.java deleted file mode 100644 index 83efdc5b6..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerAMSLimiter.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityAMSLimiter; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerAMSLimiter extends Container { - -private TileEntityAMSLimiter amsLmiter; - - private int heat; - private int warning; - private int mode; - - public ContainerAMSLimiter(InventoryPlayer invPlayer, TileEntityAMSLimiter tedf) { - amsLmiter = tedf; - - //Fluid In - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - //Fluid Out - this.addSlotToContainer(new Slot(tedf, 1, 44, 53)); - //Focus - this.addSlotToContainer(new Slot(tedf, 2, 80, 53)); - //Battery - this.addSlotToContainer(new Slot(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else - return null; - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return amsLmiter.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.heat != this.amsLmiter.heat) - { - par1.sendProgressBarUpdate(this, 0, this.amsLmiter.heat); - } - - if(this.warning != this.amsLmiter.warning) - { - par1.sendProgressBarUpdate(this, 2, this.amsLmiter.warning); - } - - if(this.mode != this.amsLmiter.mode) - { - par1.sendProgressBarUpdate(this, 3, this.amsLmiter.mode); - } - } - - this.heat = this.amsLmiter.heat; - this.warning = this.amsLmiter.warning; - this.mode = this.amsLmiter.mode; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 0) - { - amsLmiter.heat = j; - } - if(i == 2) - { - amsLmiter.warning = j; - } - if(i == 3) - { - amsLmiter.mode = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java index f8da90d3d..d63fcad3b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java +++ b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java @@ -19,20 +19,21 @@ import net.minecraft.util.IIcon; public class ContainerArmorTable extends Container { - public InventoryBasic upgrades = new InventoryBasic("Upgrades", false, 8); + public InventoryBasic upgrades = new InventoryBasic("Upgrades", false, ArmorModHandler.MOD_SLOTS); public IInventory armor = new InventoryCraftResult(); public ContainerArmorTable(InventoryPlayer inventory) { EntityPlayer player = inventory.player; this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.helmet_only, 26 + 22, 27)); // helmet only - this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.plate_only, 62 + 22, 27)); // chestplate only + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.plate_only, 62 + 22, 27)); // chestplate only this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.legs_only, 98 + 22, 27)); // leggins only this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.boots_only, 134 + 22, 45)); // boots only this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.servos, 134 + 22, 81)); //servos/frame this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.cladding, 98 + 22, 99)); //radiation cladding - this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.kevlar, 62 + 22, 99)); //kevlar/sapi/(ERA? :) ) + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.kevlar, 62 + 22, 99)); //kevlar/sapi/(ERA? :) ) this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.extra, 26 + 22, 99)); //special parts + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.battery, 8 + 22, 63)); //special parts this.addSlotToContainer(new Slot(armor, 0, 44 + 22, 63) { @@ -48,7 +49,7 @@ public class ContainerArmorTable extends Container { if(stack != null) { ItemStack[] mods = ArmorModHandler.pryMods(stack); - for(int i = 0; i < 8; i++) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS; i++) { if(mods != null) upgrades.setInventorySlotContents(i, mods[i]); @@ -65,7 +66,7 @@ public class ContainerArmorTable extends Container { //if the armor piece is taken, absorb all armor pieces - for(int i = 0; i < 8; i++) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS; i++) { ItemStack mod = upgrades.getStackInSlot(i); @@ -126,19 +127,19 @@ public class ContainerArmorTable extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 8) { - if(par2 != 8 || !InventoryUtil.mergeItemStack(this.inventorySlots, var5, 9, 13, false)) - if(!this.mergeItemStack(var5, 13, this.inventorySlots.size(), true)) + if(par2 <= ArmorModHandler.MOD_SLOTS) { + if(par2 != ArmorModHandler.MOD_SLOTS || !InventoryUtil.mergeItemStack(this.inventorySlots, var5, ArmorModHandler.MOD_SLOTS + 1, ArmorModHandler.MOD_SLOTS + 5, false)) + if(!this.mergeItemStack(var5, ArmorModHandler.MOD_SLOTS + 5, this.inventorySlots.size(), true)) return null; var4.onPickupFromSlot(p_82846_1_, var5); } else { if(var5.getItem() instanceof ItemArmor) { - if(!this.mergeItemStack(var5, 8, 9, false)) + if(!this.mergeItemStack(var5, ArmorModHandler.MOD_SLOTS, ArmorModHandler.MOD_SLOTS + 1, false)) return null; - } else if(this.inventorySlots.get(8) != null && var5.getItem() instanceof ItemArmorMod) { + } else if(this.inventorySlots.get(ArmorModHandler.MOD_SLOTS) != null && var5.getItem() instanceof ItemArmorMod) { ItemArmorMod mod = (ItemArmorMod)var5.getItem(); int slot = mod.type; diff --git a/src/main/java/com/hbm/inventory/container/ContainerAshpit.java b/src/main/java/com/hbm/inventory/container/ContainerAshpit.java new file mode 100644 index 000000000..5d3505d63 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerAshpit.java @@ -0,0 +1,73 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerAshpit extends Container { + + protected TileEntityAshpit ashpit; + + public ContainerAshpit(InventoryPlayer invPlayer, TileEntityAshpit ashpit) { + this.ashpit = ashpit; + this.ashpit.openInventory(); + + for(int i = 0; i < 5; i++) this.addSlotToContainer(new SlotTakeOnly(ashpit, i, 44 + i * 18, 27)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 86 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 144)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if(index <= 4) { + if(!this.mergeItemStack(originalStack, 5, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else { + return null; + } + + if(originalStack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return ashpit.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.ashpit.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java index fe0974730..0c5c3ff51 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java @@ -1,19 +1,21 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotPattern; +import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -public class ContainerAutocrafter extends Container { +public class ContainerAutocrafter extends ContainerBase { private TileEntityMachineAutocrafter autocrafter; public ContainerAutocrafter(InventoryPlayer invPlayer, TileEntityMachineAutocrafter tedf) { + super(invPlayer, tedf); autocrafter = tedf; /* TEMPLATE */ @@ -25,25 +27,14 @@ public class ContainerAutocrafter extends Container { this.addSlotToContainer(new SlotPattern(tedf, 9, 116, 40)); /* RECIPE */ - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 3; j++) { - this.addSlotToContainer(new Slot(tedf, j + i * 3 + 10, 44 + j * 18, 86 + i * 18)); - } - } + addSlots(tedf,10, 44, 86, 3, 3); + this.addSlotToContainer(new Slot(tedf, 19, 116, 104)); //Battery this.addSlotToContainer(new Slot(tedf, 20, 17, 99)); - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 158 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 216)); - } + playerInv(invPlayer,8,158,216); } @Override @@ -90,7 +81,7 @@ public class ContainerAutocrafter extends Container { } slot.onSlotChanged(); - autocrafter.initPattern(slot.getStack(), index); + autocrafter.matcher.initPatternSmart(autocrafter.getWorldObj(), slot.getStack(), index); autocrafter.updateTemplateGrid(); return ret; @@ -99,11 +90,33 @@ public class ContainerAutocrafter extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { - return null; - } + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - @Override - public boolean canInteractWith(EntityPlayer player) { - return autocrafter.isUseableByPlayer(player); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 20 && index >= 10) { + if(!this.mergeItemStack(stack, 21, this.inventorySlots.size(), true)) { + return null; + } + } else if(index > 20){ + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 20, 21, false)) return null; + } else { + return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerBase.java b/src/main/java/com/hbm/inventory/container/ContainerBase.java new file mode 100644 index 000000000..2dd45772b --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerBase.java @@ -0,0 +1,90 @@ +package com.hbm.inventory.container; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +/** + * For now, only used for stuff with filters and crates as a reference + * implementation, because I really needed to get the te from a container But + * you should very much use this to kill the giant amount of boilerplate in + * container classes + * + * @author 70k + **/ +public class ContainerBase extends Container { + + public IInventory tile; + + public ContainerBase(InventoryPlayer invPlayer, IInventory tedf) { + tile = tedf; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return tile.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack slotOriginal = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack slotStack = slot.getStack(); + slotOriginal = slotStack.copy(); + + if(index <= tile.getSizeInventory() - 1) { + if(!this.mergeItemStack(slotStack, tile.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(slotStack, 0, tile.getSizeInventory(), false)) { + return null; + } + + if(slotStack.stackSize == 0) { + slot.putStack(null); + } else { + slot.onSlotChanged(); + } + + slot.onPickupFromSlot(player, slotStack); + } + + return slotOriginal; + } + + /** Used to quickly set up the player inventory */ + public void playerInv(InventoryPlayer invPlayer, int playerInvX, int playerInvY, int playerHotbarY) { + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, playerInvX + j * 18, playerInvY + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, playerInvX + i * 18, playerHotbarY)); + } + } + + // I'm gonna make a farken helper function for this shit, why was it done + // the old way for 9 whole ass years? + // - Mellow, 1884 + /** + * Used to add several conventional inventory slots at a time + * + * @param inv the inventory to add the slots to + * @param from the slot index to start from + */ + public void addSlots(IInventory inv, int from, int x, int y, int rows, int cols) { + int slotSize = 18; + for(int row = 0; row < rows; row++) { + for(int col = 0; col < cols; col++) { + this.addSlotToContainer(new Slot(inv, col + row * cols + from, x + col * slotSize, y + row * slotSize)); + } + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerBook.java b/src/main/java/com/hbm/inventory/container/ContainerBook.java index a3959b58a..9e1357dae 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerBook.java +++ b/src/main/java/com/hbm/inventory/container/ContainerBook.java @@ -14,109 +14,93 @@ import net.minecraft.inventory.SlotCrafting; import net.minecraft.item.ItemStack; public class ContainerBook extends Container { - - public InventoryCrafting craftMatrix = new InventoryCrafting(this, 2, 2); - public IInventory craftResult = new InventoryCraftResult(); - public ContainerBook(InventoryPlayer inventory) { - - this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 124, 35)); + public InventoryCrafting craftMatrix = new InventoryCrafting(this, 2, 2); + public IInventory craftResult = new InventoryCraftResult(); - for (int l = 0; l < 2; ++l) { - for (int i1 = 0; i1 < 2; ++i1) { - this.addSlotToContainer(new Slot(this.craftMatrix, i1 + l * 2, 30 + i1 * 36, 17 + l * 36)); - } - } + public ContainerBook(InventoryPlayer inventory) { - for(int l = 0; l < 3; ++l) { - for (int i1 = 0; i1 < 9; ++i1) { - this.addSlotToContainer(new Slot(inventory, i1 + l * 9 + 9, 8 + i1 * 18, 84 + l * 18)); - } - } + this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 124, 35)); - for(int l = 0; l < 9; ++l) { - this.addSlotToContainer(new Slot(inventory, l, 8 + l * 18, 142)); - } + for(int l = 0; l < 2; ++l) { + for(int i1 = 0; i1 < 2; ++i1) { + this.addSlotToContainer(new Slot(this.craftMatrix, i1 + l * 2, 30 + i1 * 36, 17 + l * 36)); + } + } - this.onCraftMatrixChanged(this.craftMatrix); - } - - public void onCraftMatrixChanged(IInventory inventory) { - this.craftResult.setInventorySlotContents(0, MagicRecipes.getRecipe(this.craftMatrix)); - } - - public void onContainerClosed(EntityPlayer player) { - super.onContainerClosed(player); + for(int l = 0; l < 3; ++l) { + for(int i1 = 0; i1 < 9; ++i1) { + this.addSlotToContainer(new Slot(inventory, i1 + l * 9 + 9, 8 + i1 * 18, 84 + l * 18)); + } + } - if (!player.worldObj.isRemote) { - - for (int i = 0; i < 4; ++i) { - ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(i); + for(int l = 0; l < 9; ++l) { + this.addSlotToContainer(new Slot(inventory, l, 8 + l * 18, 142)); + } + + this.onCraftMatrixChanged(this.craftMatrix); + } + + public void onCraftMatrixChanged(IInventory inventory) { + this.craftResult.setInventorySlotContents(0, MagicRecipes.getRecipe(this.craftMatrix)); + } + + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + + if(!player.worldObj.isRemote) { + + for(int i = 0; i < 4; ++i) { + ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(i); + + if(itemstack != null) + player.dropPlayerItemWithRandomChoice(itemstack, false); + } + } + } - if (itemstack != null) - player.dropPlayerItemWithRandomChoice(itemstack, false); - } - } - } - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) - { - ItemStack itemstack = null; - Slot slot = (Slot)this.inventorySlots.get(p_82846_2_); + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) { + ItemStack itemstack = null; + Slot slot = (Slot) this.inventorySlots.get(p_82846_2_); - if (slot != null && slot.getHasStack()) - { - ItemStack itemstack1 = slot.getStack(); - itemstack = itemstack1.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack itemstack1 = slot.getStack(); + itemstack = itemstack1.copy(); - if (p_82846_2_ == 0) - { - if (!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, true)) - { - return null; - } + if(p_82846_2_ == 0) { + if(!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, true)) { + return null; + } - slot.onSlotChange(itemstack1, itemstack); - } - else if (p_82846_2_ >= 10 - 5 && p_82846_2_ < 37 - 5) - { - if (!this.mergeItemStack(itemstack1, 37 - 5, 46 - 5, false)) - { - return null; - } - } - else if (p_82846_2_ >= 37 - 5 && p_82846_2_ < 46 - 5) - { - if (!this.mergeItemStack(itemstack1, 10 - 5, 37 - 5, false)) - { - return null; - } - } - else if (!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, false)) - { - return null; - } + slot.onSlotChange(itemstack1, itemstack); + } else if(p_82846_2_ >= 10 - 5 && p_82846_2_ < 37 - 5) { + if(!this.mergeItemStack(itemstack1, 37 - 5, 46 - 5, false)) { + return null; + } + } else if(p_82846_2_ >= 37 - 5 && p_82846_2_ < 46 - 5) { + if(!this.mergeItemStack(itemstack1, 10 - 5, 37 - 5, false)) { + return null; + } + } else if(!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, false)) { + return null; + } - if (itemstack1.stackSize == 0) - { - slot.putStack((ItemStack)null); - } - else - { - slot.onSlotChanged(); - } + if(itemstack1.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } - if (itemstack1.stackSize == itemstack.stackSize) - { - return null; - } + if(itemstack1.stackSize == itemstack.stackSize) { + return null; + } - slot.onPickupFromSlot(p_82846_1_, itemstack1); - } + slot.onPickupFromSlot(p_82846_1_, itemstack1); + } - return itemstack; - } + return itemstack; + } @Override public boolean canInteractWith(EntityPlayer player) { @@ -124,8 +108,7 @@ public class ContainerBook extends Container { } @Override - public boolean func_94530_a(ItemStack stack, Slot slot) { - return slot.inventory != this.craftResult && super.func_94530_a(stack, slot); - } - + public boolean func_94530_a(ItemStack stack, Slot slot) { + return slot.inventory != this.craftResult && super.func_94530_a(stack, slot); + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java index 4fca10fa1..58535bd9b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java @@ -2,8 +2,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -39,31 +42,43 @@ public class ContainerCentrifuge extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - SlotCraftingOutput.checkAchievements(p_82846_1_, var5); - - if(par2 <= 6) { - if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + + if(index <= 7) { + if(!this.mergeItemStack(stack, 8, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 0, 2, false)) { - return null; + + slot.onSlotChange(stack, rStack); + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 1, 2, false)) + return null; + + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 6, 8, false)) + return null; + + } else if(!this.mergeItemStack(stack, 0, 1, false)) + return null; } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerChemfac.java b/src/main/java/com/hbm/inventory/container/ContainerChemfac.java index 45604135d..c04792035 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerChemfac.java +++ b/src/main/java/com/hbm/inventory/container/ContainerChemfac.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotUpgrade; import com.hbm.tileentity.machine.TileEntityMachineChemfac; @@ -35,7 +36,7 @@ public class ContainerChemfac extends Container { for(int k = 0; k < 2; k++) { for(int l = 0; l < 2; l++) { - this.addSlotToContainer(new Slot(tile, this.inventorySlots.size(), 69 + j * 110 + l * 16, 14 + i * 38 + k * 16)); + this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, this.inventorySlots.size(), 69 + j * 110 + l * 16, 14 + i * 38 + k * 16)); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java b/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java index 3ba9022e5..492bcb866 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java @@ -5,7 +5,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineCombustionEngine; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java index 3f81b4f68..6e569938d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java @@ -3,7 +3,7 @@ package com.hbm.inventory.container; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineCompressor; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java b/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java new file mode 100644 index 000000000..925b3d7e1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.network.TileEntityRadioTorchCounter; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCounterTorch extends ContainerBase { + + protected TileEntityRadioTorchCounter radio; + + public ContainerCounterTorch(InventoryPlayer invPlayer, TileEntityRadioTorchCounter radio) { + super(invPlayer, radio); + this.radio = radio; + + for(int i = 0; i < 3; i++) { + this.addSlotToContainer(new SlotPattern(radio, i, 138, 18 + 44 * i)); + } + playerInv(invPlayer, 12, 156, 214); + } + + @Override public ItemStack transferStackInSlot(EntityPlayer player, int slot) { return null; } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + if(index < 0 || index > 2) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + if(button == 1 && mode == 0 && slot.getHasStack()) { + radio.matcher.nextMode(radio.getWorldObj(), slot.getStack(), index); + return ret; + + } else { + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + radio.matcher.initPatternStandard(radio.getWorldObj(), slot.getStack(), index); + + return ret; + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java index afab4ad24..5c6cc998e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java @@ -1,49 +1,45 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotPattern; import com.hbm.inventory.SlotUpgrade; import com.hbm.items.ModItems; import com.hbm.tileentity.network.TileEntityCraneExtractor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -public class ContainerCraneExtractor extends Container { +public class ContainerCraneExtractor extends ContainerBase { protected TileEntityCraneExtractor extractor; public ContainerCraneExtractor(InventoryPlayer invPlayer, TileEntityCraneExtractor extractor) { + super(invPlayer, extractor); this.extractor = extractor; //filter for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { - this.addSlotToContainer(new Slot(extractor, j + i * 3, 71 + j * 18, 17 + i * 18)); + this.addSlotToContainer(new SlotPattern(extractor, j + i * 3, 71 + j * 18, 17 + i * 18)); } } - + /* //buffer for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { this.addSlotToContainer(new Slot(extractor, 9 + j + i * 3, 8 + j * 18, 17 + i * 18)); } - } - + }*/ + addSlots(extractor,9,8,17,3,3); + + //upgrades this.addSlotToContainer(new SlotUpgrade(extractor, 18, 152, 23)); this.addSlotToContainer(new SlotUpgrade(extractor, 19, 152, 47)); - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); - } - } + playerInv(invPlayer, 8, 103, 161); - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); - } } @Override @@ -90,11 +86,6 @@ public class ContainerCraneExtractor extends Container { return var3; } - @Override - public boolean canInteractWith(EntityPlayer player) { - return extractor.isUseableByPlayer(player); - } - @Override public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneGrabber.java b/src/main/java/com/hbm/inventory/container/ContainerCraneGrabber.java index 32c91fd68..7b35961ee 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneGrabber.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneGrabber.java @@ -1,26 +1,28 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotPattern; import com.hbm.inventory.SlotUpgrade; import com.hbm.items.ModItems; import com.hbm.tileentity.network.TileEntityCraneGrabber; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -public class ContainerCraneGrabber extends Container { +public class ContainerCraneGrabber extends ContainerBase { protected TileEntityCraneGrabber grabber; public ContainerCraneGrabber(InventoryPlayer invPlayer, TileEntityCraneGrabber grabber) { + super(invPlayer, grabber); + this.grabber = grabber; //filter for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { - this.addSlotToContainer(new Slot(grabber, j + i * 3, 40 + j * 18, 17 + i * 18)); + this.addSlotToContainer(new SlotPattern(grabber, j + i * 3, 40 + j * 18, 17 + i * 18)); } } @@ -28,15 +30,7 @@ public class ContainerCraneGrabber extends Container { this.addSlotToContainer(new SlotUpgrade(grabber, 9, 121, 23)); this.addSlotToContainer(new SlotUpgrade(grabber, 10, 121, 47)); - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); - } + playerInv(invPlayer, 8, 103, 161); } @Override @@ -81,11 +75,6 @@ public class ContainerCraneGrabber extends Container { return var3; } - @Override - public boolean canInteractWith(EntityPlayer player) { - return grabber.isUseableByPlayer(player); - } - @Override public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java index ad08c4a45..aa5acf950 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java @@ -17,7 +17,7 @@ public class ContainerCraneInserter extends Container { for(int i = 0; i < 3; i++) { for(int j = 0; j < 7; j++) { - this.addSlotToContainer(new Slot(inserter, j + i * 7, 26 + j * 18, 17 + i * 18)); + this.addSlotToContainer(new Slot(inserter, j + i * 7, 8 + j * 18, 17 + i * 18)); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneRouter.java b/src/main/java/com/hbm/inventory/container/ContainerCraneRouter.java index 2ef4b9ba0..d30d8c8ae 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneRouter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneRouter.java @@ -5,15 +5,15 @@ import com.hbm.tileentity.network.TileEntityCraneRouter; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -public class ContainerCraneRouter extends Container { +public class ContainerCraneRouter extends ContainerBase { private TileEntityCraneRouter router; public ContainerCraneRouter(InventoryPlayer invPlayer, TileEntityCraneRouter router) { + super(invPlayer, router); this.router = router; for(int j = 0; j < 2; j++) { @@ -23,16 +23,7 @@ public class ContainerCraneRouter extends Container { } } } - - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 47 + j * 18, 119 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 47 + i * 18, 177)); - } + playerInv(invPlayer, 47, 119, 177); } @Override @@ -78,9 +69,4 @@ public class ContainerCraneRouter extends Container { public ItemStack transferStackInSlot(EntityPlayer player, int index) { return null; } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return router.isUseableByPlayer(player); - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java index 407e44483..96d32b07f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java @@ -1,57 +1,22 @@ package com.hbm.inventory.container; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -public class ContainerCrateBase extends Container { - - protected IInventory crate; +public class ContainerCrateBase extends ContainerBase { - public ContainerCrateBase(IInventory tedf) { - crate = tedf; - crate.openInventory(); + //just there so prev stuff doesnt break + protected IInventory crate = tile; + + public ContainerCrateBase(InventoryPlayer invPlayer, IInventory tedf) { + super(invPlayer, tedf); + tile.openInventory(); } - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= crate.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { - return null; - } - } else if(!this.mergeItemStack(var5, 0, crate.getSizeInventory(), false)) { - return null; - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - - var4.onPickupFromSlot(p_82846_1_, var5); - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return crate.isUseableByPlayer(player); - } - @Override public void onContainerClosed(EntityPlayer p_75134_1_) { super.onContainerClosed(p_75134_1_); - this.crate.closeInventory(); + tile.closeInventory(); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java index 4a7aec618..7a557eeba 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java @@ -4,10 +4,11 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +@invtweaks.api.container.ChestContainer(rowSize = 13, isLargeChest = false) public class ContainerCrateDesh extends ContainerCrateBase { public ContainerCrateDesh(InventoryPlayer invPlayer, IInventory tedf) { - super(tedf); + super(invPlayer,tedf); for(int i = 0; i < 8; i++) { for(int j = 0; j < 13; j++) { @@ -15,14 +16,7 @@ public class ContainerCrateDesh extends ContainerCrateBase { } } - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 44 + j * 18, 174 + i * 18)); - } - } + this.playerInv(invPlayer, 44, 174, 232); - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 44 + i * 18, 232)); - } } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java index d91eb1be0..6c2a62671 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java @@ -5,31 +5,17 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; -//@invtweaks.api.container.ChestContainer +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateIron extends ContainerCrateBase { public ContainerCrateIron(InventoryPlayer invPlayer, TileEntityCrateIron tedf) { - super(tedf); - - for(int i = 0; i < 4; i++) - { - for(int j = 0; j < 9; j++) - { + super(invPlayer,tedf); + + for(int i = 0; i < 4; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(tedf, j + i * 9, 8 + j * 18, 18 + i * 18)); } } - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 20)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 20)); - } + this.playerInv(invPlayer, 8, 84 + 20, 142 + 20); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java index 3623790f4..4e5969fb0 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java @@ -4,11 +4,11 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -//@invtweaks.api.container.ChestContainer +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateSteel extends ContainerCrateBase { public ContainerCrateSteel(InventoryPlayer invPlayer, IInventory tedf) { - super(tedf); + super(invPlayer,tedf); for(int i = 0; i < 6; i++) { for(int j = 0; j < 9; j++) { @@ -16,14 +16,6 @@ public class ContainerCrateSteel extends ContainerCrateBase { } } - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + (18 * 3) + 2)); - } - } - - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + (18 * 3) + 2)); - } + this.playerInv(invPlayer, 8, 84 + (18 * 3) + 2, 142 + (18 * 3) + 2); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java new file mode 100644 index 000000000..553451df8 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java @@ -0,0 +1,22 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) +public class ContainerCrateTemplate extends ContainerCrateBase { + + public ContainerCrateTemplate(InventoryPlayer invPlayer, TileEntityCrateTemplate tedf) { + super(invPlayer,tedf); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 9, 8 + j * 18, 18 + i * 18)); + } + } + + this.playerInv(invPlayer, 8, 86, 144); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java index 8d5843275..55b2d3cfa 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java @@ -5,11 +5,11 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; -//@invtweaks.api.container.ChestContainer +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateTungsten extends ContainerCrateBase { public ContainerCrateTungsten(InventoryPlayer invPlayer, TileEntityCrateTungsten te) { - super(te); + super(invPlayer,te); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -17,14 +17,6 @@ public class ContainerCrateTungsten extends ContainerCrateBase { } } - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 32 + i * 18 + (18 * 3))); - } - } - - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 90 + (18 * 3))); - } + this.playerInv(invPlayer, 8, 32 + 18 * 3, 90 + (18 * 3)); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java index 0a6747b9b..337bbea28 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java @@ -2,10 +2,12 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -46,44 +48,46 @@ public class ContainerCrystallizer extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - SlotCraftingOutput.checkAchievements(p_82846_1_, var5); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + SlotCraftingOutput.checkAchievements(player, stack); - if(par2 <= diFurnace.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { + if(index <= 7) { + if(!this.mergeItemStack(stack, 8, this.inventorySlots.size(), true)) { return null; } } else { - if(var3.getItem() instanceof IBatteryItem) { - if(!this.mergeItemStack(var5, 1, 2, false)) { + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 1, 2, false)) return null; - } - } else if(var3.getItem() instanceof IItemFluidIdentifier) { - if(!this.mergeItemStack(var5, 7, 8, false)) { + + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 7, 8, false)) return null; - } - } else { - if(!this.mergeItemStack(var5, 0, 1, false)) { + + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 5, 7, false)) + return null; + + } else + if(!this.mergeItemStack(stack, 0, 1, false)) return null; - } - } } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java b/src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java new file mode 100644 index 000000000..cf9338763 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java @@ -0,0 +1,79 @@ +package com.hbm.inventory.container; + +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.network.TileEntityDroneCrate; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerDroneCrate extends Container { + + protected TileEntityDroneCrate crate; + + public ContainerDroneCrate(InventoryPlayer invPlayer, TileEntityDroneCrate inserter) { + this.crate = inserter; + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 6; j++) { + this.addSlotToContainer(new Slot(inserter, j + i * 6, 8 + j * 18, 17 + i * 18)); + } + } + + this.addSlotToContainer(new Slot(inserter, 18, 125, 53)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(slot); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(slot <= crate.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 18, 19, false)) + return null; + } else if(!this.mergeItemStack(var5, 0, 18, false)) { + return null; + } + + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(player, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return crate.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java b/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java new file mode 100644 index 000000000..34a435649 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java @@ -0,0 +1,21 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.network.TileEntityDroneDock; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +public class ContainerDroneDock extends ContainerCrateBase { + + public ContainerDroneDock(InventoryPlayer invPlayer, TileEntityDroneDock tedf) { + super(invPlayer,tedf); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + } + + this.playerInv(invPlayer, 8, 103, 161); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java new file mode 100644 index 000000000..7be7ed4db --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java @@ -0,0 +1,21 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.network.TileEntityDroneProvider; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +public class ContainerDroneProvider extends ContainerCrateBase { + + public ContainerDroneProvider(InventoryPlayer invPlayer, TileEntityDroneProvider tedf) { + super(invPlayer,tedf); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + } + + this.playerInv(invPlayer, 8, 103, 161); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java new file mode 100644 index 000000000..7d1a6775d --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java @@ -0,0 +1,100 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.network.TileEntityDroneRequester; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerDroneRequester extends ContainerCrateBase { + + public ContainerDroneRequester(InventoryPlayer invPlayer, TileEntityDroneRequester tedf) { + super(invPlayer,tedf); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new SlotPattern(tedf, j + i * 3, 98 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3 + 9, 26 + j * 18, 17 + i * 18)); + } + } + + this.playerInv(invPlayer, 8, 103, 161); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 < 9) return null; //ignore filters + + if(par2 <= crate.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 9, crate.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + + if(index < 0 || index > 8) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + TileEntityDroneRequester requester = (TileEntityDroneRequester) crate; + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + if(button == 1 && mode == 0 && slot.getHasStack()) { + requester.nextMode(index); + return ret; + + } else { + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + requester.matcher.initPatternStandard(requester.getWorldObj(), slot.getStack(), index); + + return ret; + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java index 14e375c65..593b1feb5 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java @@ -2,8 +2,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotSmelting; import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -42,33 +45,42 @@ public class ContainerElectricFurnace extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 2) { - if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { + if(index <= 3) { + if(!this.mergeItemStack(stack, 4, this.inventorySlots.size(), true)) { return null; } - var4.onSlotChange(var5, var3); - } else if(!this.mergeItemStack(var5, 1, 2, false)) { - if(!this.mergeItemStack(var5, 0, 1, false)) + slot.onSlotChange(stack, rStack); + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) + return null; + + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 3, 4, false)) + return null; + + } else if(!this.mergeItemStack(stack, 1, 2, false)) return null; } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java new file mode 100644 index 000000000..05a7ae646 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java @@ -0,0 +1,101 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityElectrolyser; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerElectrolyserFluid extends Container { + + private TileEntityElectrolyser electrolyser; + + public ContainerElectrolyserFluid(InventoryPlayer invPlayer, TileEntityElectrolyser tedf) { + electrolyser = tedf; + + //Battery + this.addSlotToContainer(new Slot(tedf, 0, 186, 109)); + //Upgrades + this.addSlotToContainer(new Slot(tedf, 1, 186, 140)); + this.addSlotToContainer(new Slot(tedf, 2, 186, 158)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 3, 6, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 6, 54)); + //Input + this.addSlotToContainer(new Slot(tedf, 5, 24, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 24, 54)); + //Output + this.addSlotToContainer(new Slot(tedf, 7, 78, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 78, 54)); + this.addSlotToContainer(new Slot(tedf, 9, 134, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 134, 54)); + //Byproducts + this.addSlotToContainer(new SlotTakeOnly(tedf, 11, 154, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 12, 154, 36)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 13, 154, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 180)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 13) { + if(!this.mergeItemStack(var5, 14, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 1, 3, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } else { + return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return electrolyser.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java new file mode 100644 index 000000000..a376d01f5 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java @@ -0,0 +1,92 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityElectrolyser; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerElectrolyserMetal extends Container { + + private TileEntityElectrolyser electrolyser; + + public ContainerElectrolyserMetal(InventoryPlayer invPlayer, TileEntityElectrolyser tedf) { + electrolyser = tedf; + + //Battery + this.addSlotToContainer(new Slot(tedf, 0, 186, 109)); + //Upgrades + this.addSlotToContainer(new Slot(tedf, 1, 186, 140)); + this.addSlotToContainer(new Slot(tedf, 2, 186, 158)); + //Input + this.addSlotToContainer(new Slot(tedf, 14, 10, 22)); + //Outputs + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 15, 136, 18)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 16, 154, 18)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 17, 136, 36)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 18, 154, 36)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 19, 136, 54)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 20, 154, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 180)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 10) { + if(!this.mergeItemStack(var5, 11, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 1, 3, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return electrolyser.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerFEL.java b/src/main/java/com/hbm/inventory/container/ContainerFEL.java index 4320feb46..c80e69e44 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerFEL.java +++ b/src/main/java/com/hbm/inventory/container/ContainerFEL.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityFEL; import net.minecraft.entity.player.EntityPlayer; @@ -33,31 +34,35 @@ public class ContainerFEL extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 == 0) { - if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), false)) { + if(index == 0) { + if(!this.mergeItemStack(stack, 1, this.inventorySlots.size(), false)) { return null; } } else { - if(!this.mergeItemStack(var5, 0, 1, false)) - return null; + + if(rStack.getItem() instanceof api.hbm.energymk2.IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } else { + if(!this.mergeItemStack(stack, 1, 2, false)) return null; + } } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerFWatzCore.java b/src/main/java/com/hbm/inventory/container/ContainerFWatzCore.java deleted file mode 100644 index 9b33d7ce0..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerFWatzCore.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityFWatzCore; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerFWatzCore extends Container { - - private TileEntityFWatzCore diFurnace; - - private boolean isRunning; - - public ContainerFWatzCore(InventoryPlayer invPlayer, TileEntityFWatzCore tedf) { - - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 26, 108)); - this.addSlotToContainer(new Slot(tedf, 1, 62, 90)); - this.addSlotToContainer(new Slot(tedf, 2, 98, 90)); - //Inputs - this.addSlotToContainer(new Slot(tedf, 3, 134, 108 - 18)); - this.addSlotToContainer(new Slot(tedf, 4, 152, 108 - 18)); - //Outputs - this.addSlotToContainer(new Slot(tedf, 5, 134, 108)); - this.addSlotToContainer(new Slot(tedf, 6, 152, 108)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 1, isRunning ? 1 : 0); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 6) { - if (!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) - { - return null; - } - } else { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.isRunning != this.diFurnace.isRunning()) - { - par1.sendProgressBarUpdate(this, 1, this.diFurnace.isRunning() ? 1 : 0); - } - } - - this.isRunning = this.diFurnace.isRunning(); - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) - { - if(j == 0) - { - diFurnace.emptyPlasma(); - } else { - diFurnace.fillPlasma(); - } - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerFunnel.java b/src/main/java/com/hbm/inventory/container/ContainerFunnel.java new file mode 100644 index 000000000..5cfb3bcfb --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerFunnel.java @@ -0,0 +1,64 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.tileentity.machine.TileEntityMachineFunnel; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerFunnel extends Container { + + private TileEntityMachineFunnel funnel; + + public ContainerFunnel(InventoryPlayer playerInv, TileEntityMachineFunnel tile) { + funnel = tile; + + for(int i = 0; i < 9; i++) this.addSlotToContainer(new Slot(tile, i, 8 + 18 * i, 18)); + for(int i = 0; i < 9; i++) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, i + 9, 8 + 18 * i, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 86 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 144)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return funnel.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(index); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(index <= 17) { + if(!this.mergeItemStack(var5, 18, this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, 9, false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java b/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java new file mode 100644 index 000000000..8ca1ee0a0 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerFurnaceBrick.java @@ -0,0 +1,79 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotSmelting; +import com.hbm.tileentity.machine.TileEntityFurnaceBrick; +import com.hbm.util.InventoryUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; + +public class ContainerFurnaceBrick extends Container { + + private TileEntityFurnaceBrick furnace; + + public ContainerFurnaceBrick(InventoryPlayer invPlayer, TileEntityFurnaceBrick tedf) { + furnace = tedf; + + //input + this.addSlotToContainer(new Slot(tedf, 0, 62, 35)); + //fuel + this.addSlotToContainer(new Slot(tedf, 1, 35, 17)); + //output + this.addSlotToContainer(new SlotSmelting(invPlayer.player, tedf, 2, 116, 35)); + //ash + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 3, 35, 53)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 3) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(!TileEntityFurnace.isItemFuel(var5)) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, 1, false)) + return null; + } else { + if(!this.mergeItemStack(var5, 1, 2, false) && !this.mergeItemStack(var5, 0, 1, false)) return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return furnace.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerICF.java b/src/main/java/com/hbm/inventory/container/ContainerICF.java new file mode 100644 index 000000000..a5cfabe47 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerICF.java @@ -0,0 +1,78 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityICF; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerICF extends Container { + + protected TileEntityICF icf; + + public ContainerICF(InventoryPlayer invPlayer, TileEntityICF tedf) { + this.icf = tedf; + + for(int i = 0; i < 5; i++) this.addSlotToContainer(new Slot(icf, i, 80 + i * 18, 18)); + this.addSlotToContainer(new Slot(icf, 5, 116, 54)); + for(int i = 0; i < 5; i++) this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, icf, 6 + i, 80 + i * 18, 90)); + this.addSlotToContainer(new Slot(icf, 11, 44, 90)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 44 + j * 18, 140 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 44 + i * 18, 198)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack copy = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + copy = stack.copy(); + + if(index <= 11) { + if(!this.mergeItemStack(stack, 12, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(copy.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 11, 12, false)) { + return null; + } + } else { + if(!this.mergeItemStack(stack, 5, 6, false)) { + if(!this.mergeItemStack(stack, 0, 5, false)) { + return null; + } + } + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return copy; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return icf.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerICFPress.java b/src/main/java/com/hbm/inventory/container/ContainerICFPress.java new file mode 100644 index 000000000..81f365018 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerICFPress.java @@ -0,0 +1,96 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityICFPress; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerICFPress extends Container { + + private TileEntityICFPress press; + + public ContainerICFPress(InventoryPlayer invPlayer, TileEntityICFPress tedf) { + + press = tedf; + + //Empty Capsule + this.addSlotToContainer(new Slot(tedf, 0, 98, 18)); + //Filled Capsule + this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 98, 54)); + //Filled Muon + this.addSlotToContainer(new Slot(tedf, 2, 8, 18)); + //Empty Muon + this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 8, 54)); + //Solid Fuels + this.addSlotToContainer(new Slot(tedf, 4, 62, 54)); + this.addSlotToContainer(new Slot(tedf, 5, 134, 54)); + //Fluid IDs + this.addSlotToContainer(new Slot(tedf, 6, 62, 18)); + this.addSlotToContainer(new Slot(tedf, 7, 134, 18)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 97 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 155)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 7) { + if(!this.mergeItemStack(var5, 8, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() == ModItems.icf_pellet_empty) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 6, 8, false)) { + return null; + } + } else if(var3.getItem() == ModItems.particle_muon) { + if(!this.mergeItemStack(var5, 2, 3, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 4, 6, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return press.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerITER.java b/src/main/java/com/hbm/inventory/container/ContainerITER.java index 1bf4e1bdd..e4285bc51 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerITER.java +++ b/src/main/java/com/hbm/inventory/container/ContainerITER.java @@ -43,37 +43,31 @@ private TileEntityITER iter; } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - if (var4 != null && var4.getHasStack()) - { + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) - { + if(par2 <= 4) { + if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { return null; } } else { return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java new file mode 100644 index 000000000..f45fd6d79 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadLarge.java @@ -0,0 +1,108 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; + +import api.hbm.energymk2.IBatteryItem; +import api.hbm.item.IDesignatorItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerLaunchPadLarge extends Container { + + private TileEntityLaunchPadBase launchpad; + + public ContainerLaunchPadLarge(InventoryPlayer invPlayer, TileEntityLaunchPadBase tedf) { + + launchpad = tedf; + + //Missile + this.addSlotToContainer(new Slot(tedf, 0, 26, 36)); + //Designator + this.addSlotToContainer(new Slot(tedf, 1, 26, 72)); + //Battery + this.addSlotToContainer(new Slot(tedf, 2, 107, 90)); + //Fuel in + this.addSlotToContainer(new Slot(tedf, 3, 125, 90)); + //Fuel out + this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 125, 108)); + //Oxidizer in + this.addSlotToContainer(new Slot(tedf, 5, 143, 90)); + //Oxidizer out + this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 143, 108)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 154 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 212)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 6) { + if(!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 2, 3, false)) { + return null; + } + } else if(launchpad.isMissileValid(var3)) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() == ModItems.fluid_barrel_infinite) { + if(!this.mergeItemStack(var5, 3, 4, false)) if(!this.mergeItemStack(var5, 5, 6, false)) { + return null; + } + } else if(FluidContainerRegistry.getFluidContent(var3, launchpad.tanks[0].getTankType()) > 0) { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } else if(FluidContainerRegistry.getFluidContent(var3, launchpad.tanks[1].getTankType()) > 0) { + if(!this.mergeItemStack(var5, 5, 6, false)) { + return null; + } + } else if(var3.getItem() instanceof IDesignatorItem) { + if(!this.mergeItemStack(var5, 1, 2, false)) { + return null; + } + } else { + return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return launchpad.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java new file mode 100644 index 000000000..fb829f26e --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadRusted.java @@ -0,0 +1,83 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; + +import api.hbm.item.IDesignatorItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerLaunchPadRusted extends Container { + + private TileEntityLaunchPadRusted launchpad; + + public ContainerLaunchPadRusted(InventoryPlayer invPlayer, TileEntityLaunchPadRusted tedf) { + this.launchpad = tedf; + + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 0, 26, 72)); + this.addSlotToContainer(new Slot(tedf, 1, 116, 45)); + this.addSlotToContainer(new Slot(tedf, 2, 134, 45)); + this.addSlotToContainer(new Slot(tedf, 3, 26, 99)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 154 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 212)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 3) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IDesignatorItem) { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } else if(var3.getItem() == ModItems.launch_code) { + if(!this.mergeItemStack(var5, 1, 2, false)) { + return null; + } + } else if(var3.getItem() == ModItems.launch_key) { + if(!this.mergeItemStack(var5, 2, 3, false)) { + return null; + } + } else { + return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return launchpad.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java deleted file mode 100644 index 11a9190e1..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.bomb.TileEntityLaunchPad; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerLaunchPadTier1 extends Container { - - private TileEntityLaunchPad diFurnace; - - public ContainerLaunchPadTier1(InventoryPlayer invPlayer, TileEntityLaunchPad tedf) { - - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 26, 17)); - this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 134, 17)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) - { - return null; - } - } else { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java b/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java index 2d015033f..3e8a6d0cf 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java @@ -66,6 +66,7 @@ public class ContainerLeadBox extends Container { @Override public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { // prevents the player from moving around the currently open box + if(mode == 2 && button == player.inventory.currentItem) return null; if(index == player.inventory.currentItem + 47) return null; return super.slotClick(index, button, mode, player); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java b/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java new file mode 100644 index 000000000..ec6aeb1e4 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerLemegeton.java @@ -0,0 +1,96 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.recipes.LemegetonRecipes; +import com.hbm.items.ModItems; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCraftResult; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.inventory.SlotCrafting; +import net.minecraft.item.ItemStack; + +public class ContainerLemegeton extends Container { + + public InventoryCrafting craftMatrix = new InventoryCrafting(this, 1, 1); + public IInventory craftResult = new InventoryCraftResult(); + + public ContainerLemegeton(InventoryPlayer inventory) { + + this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 107, 35)); + this.addSlotToContainer(new Slot(this.craftMatrix, 0, 49, 35)); + + for(int l = 0; l < 3; ++l) { + for(int i1 = 0; i1 < 9; ++i1) { + this.addSlotToContainer(new Slot(inventory, i1 + l * 9 + 9, 8 + i1 * 18, 84 + l * 18)); + } + } + + for(int l = 0; l < 9; ++l) { + this.addSlotToContainer(new Slot(inventory, l, 8 + l * 18, 142)); + } + + this.onCraftMatrixChanged(this.craftMatrix); + } + + public void onCraftMatrixChanged(IInventory inventory) { + this.craftResult.setInventorySlotContents(0, LemegetonRecipes.getRecipe(this.craftMatrix.getStackInSlot(0))); + } + + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + + if(!player.worldObj.isRemote) { + ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(0); + if(itemstack != null) player.dropPlayerItemWithRandomChoice(itemstack, false); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int slotNo) { + ItemStack itemstack = null; + Slot slot = (Slot) this.inventorySlots.get(slotNo); + + if(slot != null && slot.getHasStack()) { + ItemStack itemstack1 = slot.getStack(); + itemstack = itemstack1.copy(); + + if(slotNo <= 1) { + if(!this.mergeItemStack(itemstack1, 2, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(itemstack1, itemstack); + } else if(!this.mergeItemStack(itemstack1, 1, 2, false)) { + return null; + } + + if(itemstack1.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + + if(itemstack1.stackSize == itemstack.stackSize) { + return null; + } + + slot.onPickupFromSlot(p_82846_1_, itemstack1); + } + + return itemstack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return player.inventory.hasItem(ModItems.book_lemegeton); + } + + @Override + public boolean func_94530_a(ItemStack stack, Slot slot) { + return slot.inventory != this.craftResult && super.func_94530_a(stack, slot); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineAmmoPress.java b/src/main/java/com/hbm/inventory/container/ContainerMachineAmmoPress.java new file mode 100644 index 000000000..1dbe82ef2 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineAmmoPress.java @@ -0,0 +1,84 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.recipes.AmmoPressRecipes; +import com.hbm.inventory.recipes.AmmoPressRecipes.AmmoPressRecipe; +import com.hbm.tileentity.machine.TileEntityMachineAmmoPress; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineAmmoPress extends Container { + + private TileEntityMachineAmmoPress press; + + public ContainerMachineAmmoPress(InventoryPlayer playerInv, TileEntityMachineAmmoPress tile) { + press = tile; + + //Inputs + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tile, i * 3 + j, 116 + j * 18, 18 + i * 18)); + } + } + //Output + this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 9, 134, 72)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 118 + i * 18)); + } + } + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 176)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 9) { + if(!this.mergeItemStack(stack, 10, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(press.selectedRecipe < 0 || press.selectedRecipe >= AmmoPressRecipes.recipes.size()) return null; + AmmoPressRecipe recipe = AmmoPressRecipes.recipes.get(press.selectedRecipe); + + for(int i = 0; i < 9; i++) { + if(recipe.input[i] == null) continue; + if(recipe.input[i].matchesRecipe(stack, true)) { + if(!this.mergeItemStack(stack, i, i + 1, false)) { + return null; + } + } + } + + return null; + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return press.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java index 746bef698..c3dd0c537 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnace.java @@ -1,7 +1,10 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotSmelting; +import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; + +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -41,34 +44,43 @@ public class ContainerMachineArcFurnace extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 5) { - if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { + if(index <= 5) { + if(!this.mergeItemStack(stack, 6, this.inventorySlots.size(), true)) { return null; } - var4.onSlotChange(var5, var3); + slot.onSlotChange(stack, rStack); - } else if(!this.mergeItemStack(var5, 0, 1, false)) { - if(!this.mergeItemStack(var5, 2, 6, false)) + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 5, 6, false)) + return null; + + } else if(rStack.getItem() == ModItems.arc_electrode) { + if(!this.mergeItemStack(stack, 2, 5, false)) + return null; + + } else if(!this.mergeItemStack(stack, 0, 1, false)) return null; } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java new file mode 100644 index 000000000..942f3cfcb --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java @@ -0,0 +1,110 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.inventory.recipes.ArcFurnaceRecipes; +import com.hbm.inventory.recipes.ArcFurnaceRecipes.ArcFurnaceRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge; +import com.hbm.util.InventoryUtil; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineArcFurnaceLarge extends Container { + + private TileEntityMachineArcFurnaceLarge furnace; + + public ContainerMachineArcFurnaceLarge(InventoryPlayer playerInv, TileEntityMachineArcFurnaceLarge tile) { + furnace = tile; + + //Electrodes + for(int i = 0; i < 3; i++) this.addSlotToContainer(new SlotNonRetarded(tile, i, 62 + i * 18, 22)); + //Battery + this.addSlotToContainer(new Slot(tile, 3, 8, 108)); + //Upgrade + this.addSlotToContainer(new Slot(tile, 4, 152, 108)); + //Inputs + for(int i = 0; i < 4; i++) for(int j = 0; j < 5; j++) this.addSlotToContainer(new SlotArcFurnace(tile, 5 + j + i * 5, 44 + j * 18, 54 + i * 18)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 158 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 216)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 24) { + if(!this.mergeItemStack(stack, 25, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, stack, 3, 4, false)) return null; + } else if(rStack.getItem() == ModItems.arc_electrode) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, stack, 4, 5, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, stack, 0, 3, false)) return null; + } else { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, stack, 5, 25, false)) return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return furnace.isUseableByPlayer(player); + } + + public static class SlotArcFurnace extends SlotNonRetarded { + + public SlotArcFurnace(IInventory inventory, int id, int x, int y) { + super(inventory, id, x, y); + } + + @Override + public boolean isItemValid(ItemStack stack) { + TileEntityMachineArcFurnaceLarge furnace = (TileEntityMachineArcFurnaceLarge) this.inventory; + if(furnace.liquidMode) return true; + ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(stack, furnace.liquidMode); + if(recipe != null && recipe.solidOutput != null) { + return recipe.solidOutput.stackSize * stack.stackSize <= recipe.solidOutput.getMaxStackSize() && stack.stackSize <= furnace.getMaxInputSize(); + } + return false; + } + + @Override + public int getSlotStackLimit() { + TileEntityMachineArcFurnaceLarge furnace = (TileEntityMachineArcFurnaceLarge) this.inventory; + return this.getHasStack() ? furnace.getMaxInputSize() : 1; + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java new file mode 100644 index 000000000..17d2b28c8 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java @@ -0,0 +1,89 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineArcWelder extends Container { + + private TileEntityMachineArcWelder welder; + + public ContainerMachineArcWelder(InventoryPlayer playerInv, TileEntityMachineArcWelder tile) { + welder = tile; + + //Inputs + this.addSlotToContainer(new Slot(tile, 0, 17, 36)); + this.addSlotToContainer(new Slot(tile, 1, 35, 36)); + this.addSlotToContainer(new Slot(tile, 2, 53, 36)); + //Output + this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 3, 107, 36)); + //Battery + this.addSlotToContainer(new Slot(tile, 4, 152, 72)); + //Fluid ID + this.addSlotToContainer(new Slot(tile, 5, 17, 63)); + //Upgrades + this.addSlotToContainer(new SlotUpgrade(tile, 6, 89, 63)); + this.addSlotToContainer(new SlotUpgrade(tile, 7, 107, 63)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 180)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return welder.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 7) { + if(!this.mergeItemStack(stack, 8, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 5, 6, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 6, 8, false)) return null; + } else { + if(!this.mergeItemStack(stack, 0, 3, false)) return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java index 4fe7aa668..c8380834b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java @@ -1,8 +1,12 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemAssemblyTemplate; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineAssembler; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -55,41 +59,46 @@ private TileEntityMachineAssembler assembler; } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - SlotCraftingOutput.checkAchievements(p_82846_1_, var5); + if (slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + SlotCraftingOutput.checkAchievements(player, stack); - if (par2 <= 17) { - if (!this.mergeItemStack(var5, 18, this.inventorySlots.size(), true)) - { + if (index <= 17) { + if (!this.mergeItemStack(stack, 18, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(var5, 6, 18, false)) - if (!this.mergeItemStack(var5, 0, 4, false)) - return null; - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 1, 4, false)) return null; + } else if(rStack.getItem() instanceof ItemAssemblyTemplate) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else { + if(!this.mergeItemStack(stack, 6, 18, false)) return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); } - if(var5.stackSize == var3.stackSize) { + if(stack.stackSize == rStack.stackSize) { return null; } - var4.onPickupFromSlot(p_82846_1_, var3); + slot.onPickupFromSlot(player, rStack); } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineBoiler.java b/src/main/java/com/hbm/inventory/container/ContainerMachineBoiler.java deleted file mode 100644 index c137455ca..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineBoiler.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineBoiler; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineBoiler extends Container { - - private TileEntityMachineBoiler diFurnace; - - public ContainerMachineBoiler(InventoryPlayer invPlayer, TileEntityMachineBoiler tedf) { - - diFurnace = tedf; - - //Fluid ID - this.addSlotToContainer(new Slot(tedf, 0, 8, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 8, 53)); - //Input IO - this.addSlotToContainer(new Slot(tedf, 2, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 44, 53)); - //Fuel - this.addSlotToContainer(new Slot(tedf, 4, 98, 53)); - //Output IO - this.addSlotToContainer(new Slot(tedf, 5, 152, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 152, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 6) { - if (!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 4, 5, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - if (!this.mergeItemStack(var5, 5, 6, false)) - if (!this.mergeItemStack(var5, 0, 1, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineBoilerElectric.java b/src/main/java/com/hbm/inventory/container/ContainerMachineBoilerElectric.java deleted file mode 100644 index f0df7eda4..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineBoilerElectric.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineBoilerElectric extends Container { - - private TileEntityMachineBoilerElectric diFurnace; - - public ContainerMachineBoilerElectric(InventoryPlayer invPlayer, TileEntityMachineBoilerElectric tedf) { - - diFurnace = tedf; - - //Fluid ID - this.addSlotToContainer(new Slot(tedf, 0, 8, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 8, 53)); - //Input IO - this.addSlotToContainer(new Slot(tedf, 2, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 44, 53)); - //Battery - this.addSlotToContainer(new Slot(tedf, 4, 98, 53)); - //Output IO - this.addSlotToContainer(new Slot(tedf, 5, 152, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 152, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 6) { - if (!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 4, 5, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - if (!this.mergeItemStack(var5, 5, 6, false)) - if (!this.mergeItemStack(var5, 0, 1, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCMBFactory.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCMBFactory.java deleted file mode 100644 index bedd1b951..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCMBFactory.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotCraftingOutput; -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineCMBFactory; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineCMBFactory extends Container { - - private TileEntityMachineCMBFactory diFurnace; - private int progress; - - public ContainerMachineCMBFactory(InventoryPlayer invPlayer, TileEntityMachineCMBFactory tedf) { - - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 62 + 9, 17)); - this.addSlotToContainer(new Slot(tedf, 1, 80 + 9, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 62 + 9, 53)); - this.addSlotToContainer(new Slot(tedf, 3, 80 + 9, 53)); - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 4, 134 + 9, 35)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 5, 62 - 9, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 1, this.diFurnace.process); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 5) { - if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) - { - return null; - } - } - else - { - if (!this.mergeItemStack(var5, 0, 4, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.progress != this.diFurnace.process) - { - par1.sendProgressBarUpdate(this, 1, this.diFurnace.process); - } - } - - this.progress = this.diFurnace.process; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) - { - diFurnace.process = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java index 41b30d98e..6994b80cc 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java @@ -5,7 +5,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticReformer; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java index 60c428c8a..950a00d7d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java @@ -2,8 +2,12 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemChemistryTemplate; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineChemplant; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -60,31 +64,42 @@ public class ContainerMachineChemplant extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - SlotCraftingOutput.checkAchievements(p_82846_1_, var5); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + SlotCraftingOutput.checkAchievements(player, stack); - if(par2 <= 20) { - if(!this.mergeItemStack(var5, 21, this.inventorySlots.size(), true)) { + if(index <= 20) { + if(!this.mergeItemStack(stack, 21, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 4, 5, false)) - if(!this.mergeItemStack(var5, 13, 19, false)) - return null; - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 1, 4, false)) return null; + } else if(rStack.getItem() instanceof ItemChemistryTemplate) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else { //proper shift-clicking filled/empty fluid tanks is an exercise in futility + if(!this.mergeItemStack(stack, 13, 19, false)) + if(!this.mergeItemStack(stack, 9, 11, false)) + return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java deleted file mode 100644 index 1060bdaec..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineCoal; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineCoal extends Container { - - private TileEntityMachineCoal diFurnace; - - public ContainerMachineCoal(InventoryPlayer invPlayer, TileEntityMachineCoal tedf) { - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 53 - 36)); - this.addSlotToContainer(new Slot(tedf, 1, 80, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 53)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 44, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 1, 2, false)) - { - if (!this.mergeItemStack(var5, 0, 1, false)) - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java new file mode 100644 index 000000000..d85a2953f --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java @@ -0,0 +1,109 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.machine.TileEntityCustomMachine; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineCustom extends Container { + + private TileEntityCustomMachine custom; + + public ContainerMachineCustom(InventoryPlayer playerInv, TileEntityCustomMachine tile) { + custom = tile; + + //Input + this.addSlotToContainer(new Slot(tile, 0, 150, 72)); + //Fluid IDs + for(int i = 0; i < tile.inputTanks.length; i++) { + this.addSlotToContainer(new Slot(tile, 1 + i, 8 + 18 * i, 54)); + } + //Item inputs + if(tile.config.itemInCount > 0) this.addSlotToContainer(new Slot(tile, 4, 8, 72)); + if(tile.config.itemInCount > 1) this.addSlotToContainer(new Slot(tile, 5, 26, 72)); + if(tile.config.itemInCount > 2) this.addSlotToContainer(new Slot(tile, 6, 44, 72)); + if(tile.config.itemInCount > 3) this.addSlotToContainer(new Slot(tile, 7, 8, 90)); + if(tile.config.itemInCount > 4) this.addSlotToContainer(new Slot(tile, 8, 26, 90)); + if(tile.config.itemInCount > 5) this.addSlotToContainer(new Slot(tile, 9, 44, 90)); + //Templates + if(tile.config.itemInCount > 0) this.addSlotToContainer(new SlotPattern(tile, 10, 8, 108)); + if(tile.config.itemInCount > 1) this.addSlotToContainer(new SlotPattern(tile, 11, 26, 108)); + if(tile.config.itemInCount > 2) this.addSlotToContainer(new SlotPattern(tile, 12, 44, 108)); + if(tile.config.itemInCount > 3) this.addSlotToContainer(new SlotPattern(tile, 13, 8, 126)); + if(tile.config.itemInCount > 4) this.addSlotToContainer(new SlotPattern(tile, 14, 26, 126)); + if(tile.config.itemInCount > 5) this.addSlotToContainer(new SlotPattern(tile, 15, 44, 126)); + //Output + if(tile.config.itemOutCount > 0) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 16, 78, 72)); + if(tile.config.itemOutCount > 1) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 17, 96, 72)); + if(tile.config.itemOutCount > 2) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 18, 114, 72)); + if(tile.config.itemOutCount > 3) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 19, 78, 90)); + if(tile.config.itemOutCount > 4) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 20, 96, 90)); + if(tile.config.itemOutCount > 5) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 21, 114, 90)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 174 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 232)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return custom.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + return null; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + + //TODO: shoot whoever at mojang wrote the container code + if(index < 0 || index >= this.inventorySlots.size() || !(this.inventorySlots.get(index) instanceof SlotPattern)) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + index = ((Slot) this.inventorySlots.get(index)).getSlotIndex(); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + if(button == 1 && mode == 0 && slot.getHasStack()) { + custom.matcher.nextMode(player.worldObj, slot.getStack(), index - 10); + return ret; + + } else { + + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + custom.matcher.initPatternSmart(player.worldObj, slot.getStack(), index - 10); + + return ret; + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java index 632769cdf..784f5275e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCyclotron.java @@ -1,15 +1,12 @@ package com.hbm.inventory.container; -import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.SlotCraftingOutput; -import com.hbm.inventory.SlotTakeOnly; import com.hbm.inventory.SlotUpgrade; -import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCyclotron; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -25,42 +22,34 @@ public class ContainerMachineCyclotron extends Container { cyclotron = tile; //Input - this.addSlotToContainer(new Slot(tile, 0, 17, 18)); - this.addSlotToContainer(new Slot(tile, 1, 17, 36)); - this.addSlotToContainer(new Slot(tile, 2, 17, 54)); + this.addSlotToContainer(new Slot(tile, 0, 11, 18)); + this.addSlotToContainer(new Slot(tile, 1, 11, 36)); + this.addSlotToContainer(new Slot(tile, 2, 11, 54)); //Targets - this.addSlotToContainer(new Slot(tile, 3, 107, 18)); - this.addSlotToContainer(new Slot(tile, 4, 107, 36)); - this.addSlotToContainer(new Slot(tile, 5, 107, 54)); + this.addSlotToContainer(new Slot(tile, 3, 101, 18)); + this.addSlotToContainer(new Slot(tile, 4, 101, 36)); + this.addSlotToContainer(new Slot(tile, 5, 101, 54)); //Output - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 6, 143, 18)); - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 7, 143, 36)); - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 8, 143, 54)); - //AMAT In - this.addSlotToContainer(new Slot(tile, 9, 143, 90)); - //AMAT Out - this.addSlotToContainer(new SlotTakeOnly(tile, 10, 143, 108)); - //Coolant In - this.addSlotToContainer(new Slot(tile, 11, 62, 72)); - //Coolant Out - this.addSlotToContainer(new SlotTakeOnly(tile, 12, 62, 90)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 6, 131, 18)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 7, 131, 36)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tile, 8, 131, 54)); //Battery - this.addSlotToContainer(new Slot(tile, 13, 62, 108)); + this.addSlotToContainer(new Slot(tile, 9, 168, 83)); //Upgrades - this.addSlotToContainer(new SlotUpgrade(tile, 14, 17, 90)); - this.addSlotToContainer(new SlotUpgrade(tile, 15, 17, 108)); + this.addSlotToContainer(new SlotUpgrade(tile, 10, 60, 81)); + this.addSlotToContainer(new SlotUpgrade(tile, 11, 78, 81)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 15 + j * 18, 133 + i * 18)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); + this.addSlotToContainer(new Slot(invPlayer, i, 15 + i * 18, 191)); } } @@ -82,20 +71,12 @@ public class ContainerMachineCyclotron extends Container { } else { if(stack.getItem() instanceof IBatteryItem || stack.getItem() == ModItems.battery_creative) { - if(!this.mergeItemStack(stack, 13, 14, true)) - return null; - - } else if(FluidContainerRegistry.getFluidContent(stack, Fluids.COOLANT) > 0) { - if(!this.mergeItemStack(stack, 11, 12, true)) - return null; - - } else if(FluidContainerRegistry.getFullContainer(stack, Fluids.AMAT) != null) { if(!this.mergeItemStack(stack, 9, 10, true)) return null; } else if(stack.getItem() instanceof ItemMachineUpgrade) { - if(!this.mergeItemStack(stack, 14, 15, true)) - if(!this.mergeItemStack(stack, 15, 16, true)) + if(!this.mergeItemStack(stack, 10, 11, true)) + if(!this.mergeItemStack(stack, 11, 12, true)) return null; } else { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java b/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java index 4f0b39b00..e32e9197c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; -import com.hbm.tileentity.IRadioisotopeFuel; +import com.hbm.items.machine.ItemRTGPellet; import com.hbm.tileentity.machine.TileEntityDiFurnaceRTG; import net.minecraft.entity.player.EntityPlayer; @@ -45,6 +45,25 @@ public class ContainerMachineDiFurnaceRTG extends Container { return bFurnace.isUseableByPlayer(player); } + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + if(index >= 0 && index < 2 && button == 1 && mode == 0) { + Slot slot = this.getSlot(index); + if(!slot.getHasStack() && player.inventory.getItemStack() == null) { + if(!player.worldObj.isRemote) { + if(index == 0) bFurnace.sideUpper = (byte) ((bFurnace.sideUpper + 1) % 6); + if(index == 1) bFurnace.sideLower = (byte) ((bFurnace.sideLower + 1) % 6); + + bFurnace.markDirty(); + } + return null; + } + } + + return super.slotClick(index, button, mode, player); + } + @Override public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; @@ -58,7 +77,7 @@ public class ContainerMachineDiFurnaceRTG extends Container { if(!this.mergeItemStack(var5, 9, this.inventorySlots.size(), true)) { return null; } - } else if(var5.getItem() instanceof IRadioisotopeFuel) { + } else if(var5.getItem() instanceof ItemRTGPellet) { if(!this.mergeItemStack(var5, 3, 9, false)) return null; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineDiesel.java b/src/main/java/com/hbm/inventory/container/ContainerMachineDiesel.java index e1d6655ce..a4539cf77 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineDiesel.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineDiesel.java @@ -6,7 +6,6 @@ import com.hbm.tileentity.machine.TileEntityMachineDiesel; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; @@ -39,13 +38,7 @@ public class ContainerMachineDiesel extends Container { } @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineEPress.java b/src/main/java/com/hbm/inventory/container/ContainerMachineEPress.java index c2cfea587..020eb7ac4 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineEPress.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineEPress.java @@ -7,7 +7,7 @@ import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemStamp; import com.hbm.tileentity.machine.TileEntityMachineEPress; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java index a7caab502..3169f6eeb 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java @@ -1,10 +1,13 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemDrillbit; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineExcavator; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -46,43 +49,40 @@ public class ContainerMachineExcavator extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 4) { - if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { + if(index <= 13) { + if(!this.mergeItemStack(stack, 14, this.inventorySlots.size(), true)) { return null; } } else { - if(var3.getItem() instanceof IBatteryItem) { - if(!this.mergeItemStack(var5, 0, 1, false)) { - return null; - } - } else if(var3.getItem() instanceof IItemFluidIdentifier) { - if(!this.mergeItemStack(var5, 1, 2, false)) { - return null; - } - } else { - if(!this.mergeItemStack(var5, 2, 5, false)) { - return null; - } - } + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 1, 2, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 2, 4, false)) return null; + } else if(rStack.getItem() instanceof ItemDrillbit) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else + return null; } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java new file mode 100644 index 000000000..913dc36a2 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java @@ -0,0 +1,86 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineExposureChamber extends Container { + + private TileEntityMachineExposureChamber chamber; + + public ContainerMachineExposureChamber(InventoryPlayer invPlayer, TileEntityMachineExposureChamber tedf) { + this.chamber = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 8, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 8, 54)); + this.addSlotToContainer(new Slot(tedf, 3, 80, 36)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 4, 116, 36)); + this.addSlotToContainer(new Slot(tedf, 5, 152, 54)); + this.addSlotToContainer(new Slot(tedf, 6, 44, 54)); + this.addSlotToContainer(new Slot(tedf, 7, 62, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 104 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 162)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 6) { + if(!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 5, 7, false)) { + return null; + } + } else if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 4, 5, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 0, 3, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return chamber.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java index 4f5745ed7..51513c094 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java @@ -1,8 +1,12 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineGasCent; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -51,19 +55,27 @@ public class ContainerMachineGasCent extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { - ItemStack returnStack = null; + ItemStack rStack = null; Slot slot = (Slot) this.inventorySlots.get(index); if(slot != null && slot.getHasStack()) { ItemStack stack = slot.getStack(); - returnStack = stack.copy(); + rStack = stack.copy(); if(index <= 6) { if (!this.mergeItemStack(stack, 7, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(stack, 4, 7, false)) { - return null; + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 5, 6, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 6, 7, false)) return null; + } else + return null; } if (stack.stackSize == 0) { @@ -73,7 +85,7 @@ public class ContainerMachineGasCent extends Container { } } - return returnStack; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java index 5165f4e37..37f444835 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java @@ -5,7 +5,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java b/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java new file mode 100644 index 000000000..ec7b3e206 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineHydrotreater.java @@ -0,0 +1,108 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotDeprecated; +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.oil.TileEntityMachineHydrotreater; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineHydrotreater extends Container { + + private TileEntityMachineHydrotreater hydrotreater; + + public ContainerMachineHydrotreater(InventoryPlayer invPlayer, TileEntityMachineHydrotreater tedf) { + + hydrotreater = tedf; + + //Battery + this.addSlotToContainer(new Slot(tedf, 0, 17, 90)); + //Canister Input + this.addSlotToContainer(new Slot(tedf, 1, 35, 90)); + //Canister Output + this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 35, 108)); + //Hydrogen Input (removed, requires pressurization) + this.addSlotToContainer(new SlotDeprecated(tedf, 3, 53, 90)); + //Hydrogen Output (samesies) + this.addSlotToContainer(new SlotDeprecated(tedf, 4, 53, 108)); + //Desulfated Oil Input + this.addSlotToContainer(new Slot(tedf, 5, 125, 90)); + //Desulfated Oil Output + this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 125, 108)); + //Sour Gas Input + this.addSlotToContainer(new Slot(tedf, 7, 143, 90)); + //Sour Gas Oil Output + this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 143, 108)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 9, 17, 108)); + //Catalyst + this.addSlotToContainer(new Slot(tedf, 10, 89, 36)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 156 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 214)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 10) { + if(!this.mergeItemStack(var5, 11, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 9, 10, false)) { + return null; + } + } else if(var3.getItem() == ModItems.catalytic_converter) { + if(!this.mergeItemStack(var5, 10, 11, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 1, 2, false)) + if(!this.mergeItemStack(var5, 3, 4, false)) + if(!this.mergeItemStack(var5, 5, 6, false)) + if(!this.mergeItemStack(var5, 7, 8, false)) + return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return hydrotreater.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java b/src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java deleted file mode 100644 index 4bc3aa5c0..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineMiningDrill.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineMiningDrill extends Container { - -private TileEntityMachineMiningDrill nukeBoy; - - private int warning; - - public ContainerMachineMiningDrill(InventoryPlayer invPlayer, TileEntityMachineMiningDrill tedf) { - - nukeBoy = tedf; - - //Battery - this.addSlotToContainer(new Slot(tedf, 0, 44, 53)); - //Outputs - this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 98, 17)); - this.addSlotToContainer(new Slot(tedf, 3, 116, 17)); - this.addSlotToContainer(new Slot(tedf, 4, 80, 35)); - this.addSlotToContainer(new Slot(tedf, 5, 98, 35)); - this.addSlotToContainer(new Slot(tedf, 6, 116, 35)); - this.addSlotToContainer(new Slot(tedf, 7, 80, 53)); - this.addSlotToContainer(new Slot(tedf, 8, 98, 53)); - this.addSlotToContainer(new Slot(tedf, 9, 116, 53)); - //Upgrades - this.addSlotToContainer(new Slot(tedf, 10, 152, 17)); - this.addSlotToContainer(new Slot(tedf, 11, 152, 35)); - this.addSlotToContainer(new Slot(tedf, 12, 152, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - - this.detectAndSendChanges(); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 12) { - if (!this.mergeItemStack(var5, 13, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 13, false)) - { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return nukeBoy.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) { - ICrafting par1 = (ICrafting) this.crafters.get(i); - - if(this.warning != this.nukeBoy.warning) { - par1.sendProgressBarUpdate(this, 1, this.nukeBoy.warning); - } - } - - this.warning = this.nukeBoy.warning; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) { - nukeBoy.warning = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java deleted file mode 100644 index 5599c4f76..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; - -public class ContainerMachineRadar extends Container { - - public ContainerMachineRadar(InventoryPlayer invPlayer, TileEntityMachineRadar tedf) { - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return true; - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java new file mode 100644 index 000000000..ea8efe275 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java @@ -0,0 +1,76 @@ +package com.hbm.inventory.container; + +import com.hbm.items.ModItems; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineRadarNT extends Container { + + private TileEntityMachineRadarNT radar; + + public ContainerMachineRadarNT(InventoryPlayer invPlayer, TileEntityMachineRadarNT tedf) { + this.radar = tedf; + + for(int i = 0; i < 8; i++) this.addSlotToContainer(new Slot(tedf, i, 26 + i * 18, 17)); + + this.addSlotToContainer(new Slot(tedf, 8, 26, 44)); + this.addSlotToContainer(new Slot(tedf, 9, 152, 44)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 9) { + if(!this.mergeItemStack(var5, 10, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 9, 10, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 0, 9, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return radar.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineReactorBreeding.java b/src/main/java/com/hbm/inventory/container/ContainerMachineReactorBreeding.java index cab45d330..331b69d1d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineReactorBreeding.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineReactorBreeding.java @@ -43,8 +43,8 @@ public class ContainerMachineReactorBreeding extends Container { ItemStack stack = slot.getStack(); var3 = stack.copy(); - if(index <= 2) { - if(!this.mergeItemStack(stack, 2, this.inventorySlots.size(), true)) { + if(index <= 1) { + if(!this.mergeItemStack(stack, 1, this.inventorySlots.size(), true)) { return null; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java index 1a72051a2..b47d2b182 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java @@ -17,43 +17,42 @@ public class ContainerMachineRefinery extends Container { public ContainerMachineRefinery(InventoryPlayer invPlayer, TileEntityMachineRefinery tedf) { testNuke = tedf; - + //Battery - this.addSlotToContainer(new Slot(tedf, 0, 8, 90)); + this.addSlotToContainer(new Slot(tedf, 0, 186, 72)); //Canister Input - this.addSlotToContainer(new Slot(tedf, 1, 35, 90)); + this.addSlotToContainer(new Slot(tedf, 1, 8, 99)); //Canister Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 35, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 8, 119)); //Heavy Oil Input - this.addSlotToContainer(new Slot(tedf, 3, 80, 90)); + this.addSlotToContainer(new Slot(tedf, 3, 86, 99)); //Heavy Oil Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 80, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 86, 119)); //Naphtha Input - this.addSlotToContainer(new Slot(tedf, 5, 98, 90)); + this.addSlotToContainer(new Slot(tedf, 5, 106, 99)); //Naphtha Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 98, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 106, 119)); //Light Oil Input - this.addSlotToContainer(new Slot(tedf, 7, 116, 90)); + this.addSlotToContainer(new Slot(tedf, 7, 126, 99)); //Light Oil Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 116, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 126, 119)); //Petroleum Input - this.addSlotToContainer(new Slot(tedf, 9, 134, 90)); + this.addSlotToContainer(new Slot(tedf, 9, 146, 99)); //Petroleum Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 134, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 146, 119)); //Sulfur Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 11, 152, 36)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 11, 58, 119)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 12, 186, 106)); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 150 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 208)); } } @@ -71,8 +70,8 @@ public class ContainerMachineRefinery extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 11) { - if(!this.mergeItemStack(var5, 12, this.inventorySlots.size(), true)) { + if(par2 <= 12) { + if(!this.mergeItemStack(var5, 13, this.inventorySlots.size(), true)) { return null; } } else if(!this.mergeItemStack(var5, 0, 1, false)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRotaryFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRotaryFurnace.java new file mode 100644 index 000000000..219f1f0e6 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRotaryFurnace.java @@ -0,0 +1,75 @@ +package com.hbm.inventory.container; + +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityMachineRotaryFurnace; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; + +public class ContainerMachineRotaryFurnace extends Container { + + private TileEntityMachineRotaryFurnace furnace; + + public ContainerMachineRotaryFurnace(InventoryPlayer invPlayer, TileEntityMachineRotaryFurnace tile) { + furnace = tile; + + //Inputs + this.addSlotToContainer(new Slot(tile, 0, 8, 18)); + this.addSlotToContainer(new Slot(tile, 1, 26, 18)); + this.addSlotToContainer(new Slot(tile, 2, 44, 18)); + //Fluid ID + this.addSlotToContainer(new Slot(tile, 3, 8, 54)); + //Solid fuel + this.addSlotToContainer(new Slot(tile, 4, 44, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 104 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 162)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 4) { + if(!this.mergeItemStack(stack, 5, this.inventorySlots.size(), true)) return null; + } else { + if(TileEntityFurnace.isItemFuel(rStack)) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 3, 4, false)) return null; + } else { + if(!this.mergeItemStack(stack, 0, 3, false)) return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return furnace.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineSelenium.java b/src/main/java/com/hbm/inventory/container/ContainerMachineSelenium.java deleted file mode 100644 index e84240f2f..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineSelenium.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineSelenium extends Container { - -private TileEntityMachineSeleniumEngine seleniumEngine; - - public ContainerMachineSelenium(InventoryPlayer invPlayer, TileEntityMachineSeleniumEngine tedf) { - - seleniumEngine = tedf; - - //Pistons - this.addSlotToContainer(new Slot(tedf, 0, 8, 18)); - this.addSlotToContainer(new Slot(tedf, 1, 26, 18)); - this.addSlotToContainer(new Slot(tedf, 2, 44, 18)); - this.addSlotToContainer(new Slot(tedf, 3, 8, 36)); - this.addSlotToContainer(new Slot(tedf, 4, 26, 36)); - this.addSlotToContainer(new Slot(tedf, 5, 44, 36)); - this.addSlotToContainer(new Slot(tedf, 6, 8, 54)); - this.addSlotToContainer(new Slot(tedf, 7, 26, 54)); - this.addSlotToContainer(new Slot(tedf, 8, 44, 54)); - - //Fluid IO - this.addSlotToContainer(new Slot(tedf, 9, 80, 18)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 80, 54)); - - //Fluid IDs - this.addSlotToContainer(new Slot(tedf, 11, 152, 18)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 12, 152, 54)); - - //Battery - this.addSlotToContainer(new Slot(tedf, 13, 116, 90)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 13) { - if (!this.mergeItemStack(var5, 14, this.inventorySlots.size(), true)) - { - return null; - } - } else { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return seleniumEngine.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java index f903f1ddd..983129533 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineShredder.java @@ -1,8 +1,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBlades; import com.hbm.tileentity.machine.TileEntityMachineShredder; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -52,12 +55,12 @@ public class ContainerMachineShredder extends Container { for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 67)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 67)); } } @@ -68,32 +71,37 @@ public class ContainerMachineShredder extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 29) { - if(!this.mergeItemStack(var5, 30, this.inventorySlots.size(), true)) { + if(index <= 29) { + if(!this.mergeItemStack(stack, 30, this.inventorySlots.size(), true)) { return null; } } else { - if(!this.mergeItemStack(var5, 0, 9, false)) - if(!this.mergeItemStack(var5, 27, 30, false)) - return null; + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 29, 30, false)) return null; + } else if(rStack.getItem() instanceof ItemBlades) { + if(!this.mergeItemStack(stack, 27, 29, false)) return null; + } else { + if(!this.mergeItemStack(stack, 0, 9, false)) return null; + } } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java b/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java new file mode 100644 index 000000000..d1ce587b2 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineSolderingStation.java @@ -0,0 +1,93 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.inventory.SlotUpgrade; +import com.hbm.inventory.recipes.SolderingRecipes; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineSolderingStation; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineSolderingStation extends Container { + + private TileEntityMachineSolderingStation solderer; + + public ContainerMachineSolderingStation(InventoryPlayer playerInv, TileEntityMachineSolderingStation tile) { + solderer = tile; + + //Inputs + for(int i = 0; i < 2; i++) for(int j = 0; j < 3; j++) this.addSlotToContainer(new SlotNonRetarded(tile, i * 3 + j, 17 + j * 18, 18 + i * 18)); + //Output + this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 6, 107, 27)); + //Battery + this.addSlotToContainer(new Slot(tile, 7, 152, 72)); + //Fluid ID + this.addSlotToContainer(new Slot(tile, 8, 17, 63)); + //Upgrades + this.addSlotToContainer(new SlotUpgrade(tile, 9, 89, 63)); + this.addSlotToContainer(new SlotUpgrade(tile, 10, 107, 63)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 180)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 10) { + if(!this.mergeItemStack(stack, 11, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 7, 8, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 8, 9, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 9, 11, false)) return null; + } else { + for(AStack t : SolderingRecipes.toppings) if(t.matchesRecipe(stack, false)) if(!this.mergeItemStack(stack, 0, 3, false)) return null; + for(AStack t : SolderingRecipes.pcb) if(t.matchesRecipe(stack, false)) if(!this.mergeItemStack(stack, 3, 5, false)) return null; + for(AStack t : SolderingRecipes.solder) if(t.matchesRecipe(stack, false)) if(!this.mergeItemStack(stack, 5, 6, false)) return null; + return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return solderer.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java b/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java new file mode 100644 index 000000000..6c503f6ce --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineStrandCaster.java @@ -0,0 +1,76 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; +import com.hbm.util.InventoryUtil; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineStrandCaster extends Container { + + protected TileEntityMachineStrandCaster caster; + + public ContainerMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster caster) { + this.caster = caster; + + //the wretched mold + this.addSlotToContainer(new SlotNonRetarded(this.caster, 0, 57, 62)); + + //output + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 2; j++) { + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, this.caster, j + i * 2 + 1, 125 + j * 18, 26 + i * 18)); + } + } + + + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 132 + i * 18)); + } + } + + for (int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 190)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if (slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if (index <= 6) { + if (!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 7, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else if (!InventoryUtil.mergeItemStack(this.inventorySlots, originalStack, 1, 2, false)) { + return null; + } + + if (originalStack.stackSize == 0) { + slot.putStack(null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return caster.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java index b1aa96ca1..5507df3c5 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java @@ -5,7 +5,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.items.machine.ItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java index e4e53720d..d2e12fa98 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java @@ -1,8 +1,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -44,31 +47,39 @@ public class ContainerMachineTurbofan extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); - if(par2 <= 4) { - if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { + if(index <= 4) { + if(!this.mergeItemStack(stack, 5, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 0, 1, false)) { - if(!this.mergeItemStack(var5, 2, 3, false)) - return null; + } else { + + if(rStack.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(stack, 3, 4, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 4, 5, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(stack, 2, 3, false)) return null; + } else { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } } - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); } else { - var4.onSlotChanged(); + slot.onSlotChanged(); } } - return var3; + return rStack; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java b/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java index 217391f34..c2fd3971b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineVacuumDistill.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotDeprecated; import com.hbm.inventory.SlotTakeOnly; import com.hbm.tileentity.machine.oil.TileEntityMachineVacuumDistill; @@ -20,10 +21,10 @@ public class ContainerMachineVacuumDistill extends Container { //Battery this.addSlotToContainer(new Slot(tedf, 0, 26, 90)); - //Canister Input - this.addSlotToContainer(new Slot(tedf, 1, 44, 90)); - //Canister Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 44, 108)); + //Canister Input (removed, requires pressurization) + this.addSlotToContainer(new SlotDeprecated(tedf, 1, 44, 90)); + //Canister Output (same as above) + this.addSlotToContainer(new SlotDeprecated(tedf, 2, 44, 108)); //Heavy Oil Input this.addSlotToContainer(new Slot(tedf, 3, 80, 90)); //Heavy Oil Output @@ -40,6 +41,8 @@ public class ContainerMachineVacuumDistill extends Container { this.addSlotToContainer(new Slot(tedf, 9, 134, 90)); //Petroleum Output this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 134, 108)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 11, 26, 108)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java new file mode 100644 index 000000000..f893fb23f --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java @@ -0,0 +1,103 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; + +public class ContainerMachineWoodBurner extends Container { + + protected TileEntityMachineWoodBurner burner; + + public ContainerMachineWoodBurner(InventoryPlayer invPlayer, TileEntityMachineWoodBurner burner) { + this.burner = burner; + this.burner.openInventory(); + + //Fuel + this.addSlotToContainer(new Slot(burner, 0, 26, 18)); + //Ashes + this.addSlotToContainer(new SlotTakeOnly(burner, 1, 26, 54)); + //Fluid ID + this.addSlotToContainer(new Slot(burner, 2, 98, 54)); + //Fluid Container + this.addSlotToContainer(new Slot(burner, 3, 98, 18)); + this.addSlotToContainer(new SlotTakeOnly(burner, 4, 98, 36)); + //Battery + this.addSlotToContainer(new Slot(burner, 5, 143, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 104 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 162)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if(index <= 5) { + if(!this.mergeItemStack(originalStack, 6, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else { + + if(stack.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(originalStack, 5, 6, false)) { + return null; + } + } else if(stack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(originalStack, 2, 3, false)) { + return null; + } + } else if(TileEntityFurnace.isItemFuel(stack)) { + if(!this.mergeItemStack(originalStack, 0, 1, false)) { + return null; + } + } else { + if(!this.mergeItemStack(originalStack, 3, 4, false)) { + return null; + } + } + } + + if(originalStack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return burner.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.burner.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java index b9db7dfff..899cbc3f2 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java @@ -6,31 +6,24 @@ import com.hbm.tileentity.machine.storage.TileEntityMassStorage; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -public class ContainerMassStorage extends Container { +public class ContainerMassStorage extends ContainerBase { private TileEntityMassStorage storage; public ContainerMassStorage(InventoryPlayer invPlayer, TileEntityMassStorage te) { + super(invPlayer,te); + this.storage = te; this.storage.openInventory(); this.addSlotToContainer(new Slot(storage, 0, 61, 17)); this.addSlotToContainer(new SlotPattern(storage, 1, 61, 53)); this.addSlotToContainer(new SlotTakeOnly(storage, 2, 61, 89)); - - for(int i = 0; i < 3; i++) { - for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 139 + i * 18)); - } - } - for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 197)); - } + playerInv(invPlayer,8,139,197); } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMixer.java b/src/main/java/com/hbm/inventory/container/ContainerMixer.java index dcbcdd17b..0242b916b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMixer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMixer.java @@ -4,7 +4,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineMixer; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java b/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java deleted file mode 100644 index 9829f3210..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.bomb.TileEntityNukeN45; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerNukeN45 extends Container { - - private TileEntityNukeN45 diFurnace; - - public ContainerNukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { - - diFurnace = tedf; - - //Payload - this.addSlotToContainer(new Slot(tedf, 0, 44, 35)); - //Range up - this.addSlotToContainer(new Slot(tedf, 1, 116, 35)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 1) { - if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 2, false)) - { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java b/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java index aafabe2d5..9877e66f3 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java +++ b/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java @@ -16,59 +16,50 @@ private TileEntityNukeTsar nukeTsar; nukeTsar = tedf; - this.addSlotToContainer(new Slot(tedf, 0, 35, 17)); - this.addSlotToContainer(new Slot(tedf, 1, 71, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 35, 53)); - this.addSlotToContainer(new Slot(tedf, 3, 71, 53)); - this.addSlotToContainer(new Slot(tedf, 4, 53, 35)); - this.addSlotToContainer(new Slot(tedf, 5, 98, 35)); + this.addSlotToContainer(new Slot(tedf, 0, 48, 101)); + this.addSlotToContainer(new Slot(tedf, 1, 66, 101)); + this.addSlotToContainer(new Slot(tedf, 2, 84, 101)); + this.addSlotToContainer(new Slot(tedf, 3, 102, 101)); + this.addSlotToContainer(new Slot(tedf, 4, 55, 51)); + this.addSlotToContainer(new Slot(tedf, 5, 138, 101)); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, 9 + j + i * 9, 48 + j * 18, 151 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 48 + i * 18, 209)); } } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= 5) { - if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) - { + + if(par2 <= 5) { + if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { return null; } } else { return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerOreSlopper.java b/src/main/java/com/hbm/inventory/container/ContainerOreSlopper.java new file mode 100644 index 000000000..74d4e94fa --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerOreSlopper.java @@ -0,0 +1,101 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineOreSlopper; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerOreSlopper extends Container { + + public TileEntityMachineOreSlopper slopper; + + public ContainerOreSlopper(InventoryPlayer player, TileEntityMachineOreSlopper slopper) { + this.slopper = slopper; + + //Battery + this.addSlotToContainer(new Slot(slopper, 0, 8, 72)); + //Fluid ID + this.addSlotToContainer(new Slot(slopper, 1, 26, 72)); + //Input + this.addSlotToContainer(new Slot(slopper, 2, 71, 27)); + //Outputs + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 3, 134, 18)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 4, 152, 18)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 5, 134, 36)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 6, 152, 36)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 7, 134, 54)); + this.addSlotToContainer(new SlotCraftingOutput(player.player, slopper, 8, 152, 54)); + //Upgrades + this.addSlotToContainer(new Slot(slopper, 9, 62, 72)); + this.addSlotToContainer(new Slot(slopper, 10, 80, 72)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(player, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(player, i, 8 + i * 18, 180)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 10) { + if(!this.mergeItemStack(var5, 11, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() == ModItems.bedrock_ore_base) { + if(!this.mergeItemStack(var5, 2, 3, false)) { + return null; + } + } else if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 9, 11, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 1, 2, false)) { + return null; + } + } else if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else { + return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return slopper.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerPWR.java b/src/main/java/com/hbm/inventory/container/ContainerPWR.java new file mode 100644 index 000000000..ff6cc84fa --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerPWR.java @@ -0,0 +1,76 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityPWRController; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerPWR extends Container { + + TileEntityPWRController controller; + + public ContainerPWR(InventoryPlayer invPlayer, TileEntityPWRController controller) { + this.controller = controller; + + this.addSlotToContainer(new Slot(controller, 0, 53, 5)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, controller, 1, 89, 32)); + this.addSlotToContainer(new Slot(controller, 2, 8, 59)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 106 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 164)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 2) { + if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 2, 3, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return controller.isUseableByPlayer(player); + } + +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java b/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java new file mode 100644 index 000000000..687e53a54 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java @@ -0,0 +1,80 @@ +package com.hbm.inventory.container; + +import com.hbm.items.tool.ItemPlasticBag.InventoryPlasticBag; +import com.hbm.util.InventoryUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerPlasticBag extends Container { + + private InventoryPlasticBag bag; + + public ContainerPlasticBag(InventoryPlayer invPlayer, InventoryPlasticBag bag) { + this.bag = bag; + this.bag.openInventory(); + + this.addSlotToContainer(new Slot(bag, 0, 80, 65)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 134 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 192)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= bag.getSizeInventory() - 1) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, bag.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, bag.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + // prevents the player from moving around the currently open box + if(mode == 2 && button == player.inventory.currentItem) return null; + if(index == player.inventory.currentItem + 28) return null; + return super.slotClick(index, button, mode, player); + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return bag.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.bag.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java deleted file mode 100644 index 53b263511..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerPuF6Tank extends Container { - - private TileEntityMachinePuF6Tank testNuke; - - public ContainerPuF6Tank(InventoryPlayer invPlayer, TileEntityMachinePuF6Tank tedf) { - testNuke = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return testNuke.isUseableByPlayer(player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerPyroOven.java b/src/main/java/com/hbm/inventory/container/ContainerPyroOven.java new file mode 100644 index 000000000..554569c1a --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerPyroOven.java @@ -0,0 +1,86 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.oil.TileEntityMachinePyroOven; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerPyroOven extends Container { + + private TileEntityMachinePyroOven pyro; + + public ContainerPyroOven(InventoryPlayer invPlayer, TileEntityMachinePyroOven tedf) { + pyro = tedf; + + //Battery + this.addSlotToContainer(new Slot(tedf, 0, 152, 72)); + //Input + this.addSlotToContainer(new Slot(tedf, 1, 35, 45)); + //Output + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 2, 89, 45)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 3, 8, 72)); + //Upgrades + this.addSlotToContainer(new Slot(tedf, 4, 71, 72)); + this.addSlotToContainer(new Slot(tedf, 5, 89, 72)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 180)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 5) { + if(!this.mergeItemStack(stack, 6, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } else if(rStack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(stack, 3, 4, false)) return null; + } else if(rStack.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(stack, 4, 6, false)) return null; + } else { + if(!this.mergeItemStack(stack, 1, 2, false)) return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return pyro.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerReactorMultiblock.java b/src/main/java/com/hbm/inventory/container/ContainerReactorMultiblock.java deleted file mode 100644 index e84e79fd9..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerReactorMultiblock.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerReactorMultiblock extends Container { - - private TileEntityMachineReactorLarge diFurnace; - - public ContainerReactorMultiblock(InventoryPlayer invPlayer, TileEntityMachineReactorLarge tedf) { - - diFurnace = tedf; - - //Water in - this.addSlotToContainer(new Slot(tedf, 0, 8, 90)); - //Water out - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 8, 108)); - //Coolant in - this.addSlotToContainer(new Slot(tedf, 2, 26, 90)); - //Coolant out - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 26, 108)); - - //Fuel in - this.addSlotToContainer(new Slot(tedf, 4, 80, 36)); - //Fuel out - this.addSlotToContainer(new SlotTakeOnly(tedf, 5, 80, 72)); - //Waste in - this.addSlotToContainer(new Slot(tedf, 6, 152, 36)); - //Waste out - this.addSlotToContainer(new SlotTakeOnly(tedf, 7, 152, 72)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 7) { - if (!this.mergeItemStack(var5, 8, this.inventorySlots.size(), true)) - { - return null; - } - } else { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerSatDock.java b/src/main/java/com/hbm/inventory/container/ContainerSatDock.java index 9ee0b37d5..02f02db56 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerSatDock.java +++ b/src/main/java/com/hbm/inventory/container/ContainerSatDock.java @@ -1,7 +1,8 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.machine.ItemSatChip; import com.hbm.tileentity.machine.TileEntityMachineSatDock; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -11,41 +12,42 @@ import net.minecraft.item.ItemStack; public class ContainerSatDock extends Container { - private TileEntityMachineSatDock diFurnace; + private final TileEntityMachineSatDock tileSatelliteDock; - public ContainerSatDock(InventoryPlayer invPlayer, TileEntityMachineSatDock tedf) { - - diFurnace = tedf; + public ContainerSatDock(InventoryPlayer invPlayer, TileEntityMachineSatDock tesd) { + tileSatelliteDock = tesd; //Storage - this.addSlotToContainer(new Slot(tedf, 0, 62, 17)); - this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 98, 17)); - this.addSlotToContainer(new Slot(tedf, 3, 116, 17)); - this.addSlotToContainer(new Slot(tedf, 4, 134, 17)); - this.addSlotToContainer(new Slot(tedf, 5, 62, 35)); - this.addSlotToContainer(new Slot(tedf, 6, 80, 35)); - this.addSlotToContainer(new Slot(tedf, 7, 98, 35)); - this.addSlotToContainer(new Slot(tedf, 8, 116, 35)); - this.addSlotToContainer(new Slot(tedf, 9, 134, 35)); - this.addSlotToContainer(new Slot(tedf, 10, 62, 53)); - this.addSlotToContainer(new Slot(tedf, 11, 80, 53)); - this.addSlotToContainer(new Slot(tedf, 12, 98, 53)); - this.addSlotToContainer(new Slot(tedf, 13, 116, 53)); - this.addSlotToContainer(new Slot(tedf, 14, 134, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 0, 62, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 1, 80, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 2, 98, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 3, 116, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 4, 134, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 5, 62, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 6, 80, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 7, 98, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 8, 116, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 9, 134, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 10, 62, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 11, 80, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 12, 98, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 13, 116, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 14, 134, 53)); //Chip - this.addSlotToContainer(new Slot(tedf, 15, 26, 35)); + this.addSlotToContainer(new Slot(tesd, 15, 26, 35) { + @Override + public boolean isItemValid(ItemStack stack) { + return stack.getItem() instanceof ItemSatChip; + } + }); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - for(int i = 0; i < 9; i++) - { + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); } } @@ -56,33 +58,25 @@ public class ContainerSatDock extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer player, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - if (var4 != null && var4.getHasStack()) - { + if (var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); if (par2 <= 15) { - if (!this.mergeItemStack(var5, 16, this.inventorySlots.size(), true)) - { + if (!this.mergeItemStack(var5, 16, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(var5, 0, 15, false)) - { - return null; + } else if (!this.mergeItemStack(var5, 0, 15, false)) { + return null; } - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { + if (var5.stackSize == 0) { + var4.putStack(null); + } else { var4.onSlotChanged(); } } @@ -92,6 +86,6 @@ public class ContainerSatDock extends Container { @Override public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); + return tileSatelliteDock.isUseableByPlayer(player); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerTestNuke.java b/src/main/java/com/hbm/inventory/container/ContainerTestNuke.java deleted file mode 100644 index 94a9d2704..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerTestNuke.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.bomb.TileEntityTestNuke; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerTestNuke extends Container { - - private TileEntityTestNuke testNuke; - - public ContainerTestNuke(InventoryPlayer invPlayer, TileEntityTestNuke tedf) { - - testNuke = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 26, 36)); - this.addSlotToContainer(new Slot(tedf, 1, 44, 36)); - this.addSlotToContainer(new Slot(tedf, 2, 62, 36)); - this.addSlotToContainer(new Slot(tedf, 3, 80, 36)); - this.addSlotToContainer(new Slot(tedf, 4, 98, 36)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) - { - return null; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return testNuke.isUseableByPlayer(player); - } - -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java deleted file mode 100644 index 06e591a4a..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerUF6Tank extends Container { - - private TileEntityMachineUF6Tank testNuke; - - public ContainerUF6Tank(InventoryPlayer invPlayer, TileEntityMachineUF6Tank tedf) { - testNuke = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return testNuke.isUseableByPlayer(player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerWatzCore.java b/src/main/java/com/hbm/inventory/container/ContainerWatzCore.java deleted file mode 100644 index a3760e10c..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerWatzCore.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.items.ModItems; -import com.hbm.items.special.WatzFuel; -import com.hbm.tileentity.machine.TileEntityWatzCore; - -import api.hbm.energy.IBatteryItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerWatzCore extends Container { - - private TileEntityWatzCore diFurnace; - - public ContainerWatzCore(InventoryPlayer invPlayer, TileEntityWatzCore tedf) { - - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 8, 18)); - this.addSlotToContainer(new Slot(tedf, 1, 26, 18)); - this.addSlotToContainer(new Slot(tedf, 2, 44, 18)); - this.addSlotToContainer(new Slot(tedf, 3, 62, 18)); - this.addSlotToContainer(new Slot(tedf, 4, 80, 18)); - this.addSlotToContainer(new Slot(tedf, 5, 98, 18)); - this.addSlotToContainer(new Slot(tedf, 6, 8, 36)); - this.addSlotToContainer(new Slot(tedf, 7, 26, 36)); - this.addSlotToContainer(new Slot(tedf, 8, 44, 36)); - this.addSlotToContainer(new Slot(tedf, 9, 62, 36)); - this.addSlotToContainer(new Slot(tedf, 10, 80, 36)); - this.addSlotToContainer(new Slot(tedf, 11, 98, 36)); - this.addSlotToContainer(new Slot(tedf, 12, 8, 54)); - this.addSlotToContainer(new Slot(tedf, 13, 26, 54)); - this.addSlotToContainer(new Slot(tedf, 14, 44, 54)); - this.addSlotToContainer(new Slot(tedf, 15, 62, 54)); - this.addSlotToContainer(new Slot(tedf, 16, 80, 54)); - this.addSlotToContainer(new Slot(tedf, 17, 98, 54)); - this.addSlotToContainer(new Slot(tedf, 18, 8, 72)); - this.addSlotToContainer(new Slot(tedf, 19, 26, 72)); - this.addSlotToContainer(new Slot(tedf, 20, 44, 72)); - this.addSlotToContainer(new Slot(tedf, 21, 62, 72)); - this.addSlotToContainer(new Slot(tedf, 22, 80, 72)); - this.addSlotToContainer(new Slot(tedf, 23, 98, 72)); - this.addSlotToContainer(new Slot(tedf, 24, 8, 90)); - this.addSlotToContainer(new Slot(tedf, 25, 26, 90)); - this.addSlotToContainer(new Slot(tedf, 26, 44, 90)); - this.addSlotToContainer(new Slot(tedf, 27, 62, 90)); - this.addSlotToContainer(new Slot(tedf, 28, 80, 90)); - this.addSlotToContainer(new Slot(tedf, 29, 98, 90)); - this.addSlotToContainer(new Slot(tedf, 30, 8, 108)); - this.addSlotToContainer(new Slot(tedf, 31, 26, 108)); - this.addSlotToContainer(new Slot(tedf, 32, 44, 108)); - this.addSlotToContainer(new Slot(tedf, 33, 62, 108)); - this.addSlotToContainer(new Slot(tedf, 34, 80, 108)); - this.addSlotToContainer(new Slot(tedf, 35, 98, 108)); - //Mud Input - this.addSlotToContainer(new Slot(tedf, 36, 134, 108 - 18)); - //Battery - this.addSlotToContainer(new Slot(tedf, 37, 152, 108 - 18)); - //Filter - this.addSlotToContainer(new Slot(tedf, 38, 116, 63)); - //Mud Output - this.addSlotToContainer(new Slot(tedf, 39, 134, 108)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= 39) { - if(!this.mergeItemStack(var5, 40, this.inventorySlots.size(), true)) { - return null; - } - - } else { - - if(var5.getItem() == ModItems.titanium_filter) { - if(!this.mergeItemStack(var5, 38, 39, false)) { - return null; - } - } else if(var5.getItem() instanceof WatzFuel) { - if(!this.mergeItemStack(var5, 0, 36, false)) { - return null; - } - } else if(var5.getItem() instanceof IBatteryItem) { - if(!this.mergeItemStack(var5, 37, 38, false)) { - return null; - } - } else { - if(!this.mergeItemStack(var5, 36, 37, false)) { - return null; - } - } - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - - var4.onPickupFromSlot(p_82846_1_, var5); - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 390fcfede..f08ae979a 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -4,15 +4,16 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Locale; -import java.util.Map.Entry; import org.lwjgl.input.Keyboard; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.lib.RefStrings; import com.hbm.render.util.EnumSymbol; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -31,21 +32,21 @@ public class FluidType { private int color; //Unlocalized string ID of the fluid private String unlocalized; + //localization override for custom fluids + private String localizedOverride; + private int guiTint = 0xffffff; public int poison; public int flammability; public int reactivity; public EnumSymbol symbol; + public boolean customFluid = false; public static final int ROOM_TEMPERATURE = 20; - public static final double DEFAULT_HEATCAP = 0.01D; - public static final double DEFAULT_COMPRESSION = 1D; // v v v this entire system is a pain in the ass to work with. i'd much rather define state transitions and heat values manually. /** How hot this fluid is. Simple enough. */ public int temperature = ROOM_TEMPERATURE; - /** How much "stuff" there is in one mB. 1mB of water turns into 100mB of steam, therefore steam has a compression of 0.01. Compression is only used for translating fluids into other fluids, heat calculations should ignore this. */ - public double compression = DEFAULT_COMPRESSION; public HashMap containers = new HashMap(); public HashMap, FluidTrait> traits = new HashMap(); @@ -66,6 +67,23 @@ public class FluidType { this.id = Fluids.registerSelf(this); } + public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) { + this.stringId = name; + this.color = color; + this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US); + this.poison = p; + this.flammability = f; + this.reactivity = r; + this.symbol = symbol; + this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + texName + ".png"); + this.guiTint = tint; + this.localizedOverride = displayName; + this.customFluid = true; + + this.id = id; + Fluids.register(this, id); + } + public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) { this(name, color, p, f, r, symbol); @@ -79,11 +97,6 @@ public class FluidType { return this; } - public FluidType setCompression(double compression) { - this.compression = compression; - return this; - } - public FluidType addContainers(Object... containers) { for(Object container : containers) this.containers.put(container.getClass(), container); return this; @@ -109,7 +122,7 @@ public class FluidType { public int getID() { return this.id; } - + /** The unique mapping name for this fluid, usually matches the unlocalied name, minus the prefix */ public String getName() { return this.stringId; } @@ -118,14 +131,27 @@ public class FluidType { return this.color; } + public int getTint() { + return this.guiTint; + } + public ResourceLocation getTexture() { return this.texture; } public String getUnlocalizedName() { return this.unlocalized; } + /** Returns the localized override name if present, or otherwise the I18n converted name */ + @SideOnly(Side.CLIENT) public String getLocalizedName() { + return this.localizedOverride != null ? this.localizedOverride : I18nUtil.resolveKey(this.unlocalized); + } + /** Returns the localized override name if present, or otherwise the raw unlocalized name. Used for server-side code that needs ChatComponentTranslation. */ + public String getConditionalName() { + return this.localizedOverride != null ? this.localizedOverride : this.unlocalized; + } public String getDict(int quantity) { - return "container" + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US); + String prefix = GeneralConfig.enableFluidContainerCompat ? "container" : "ntmcontainer"; + return prefix + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US); } public boolean isHot() { @@ -146,6 +172,9 @@ public class FluidType { public boolean needsLeadContainer() { return this.traits.containsKey(FT_LeadContainer.class); } + public boolean isDispersable() { + return !(this.traits.containsKey(FT_Amat.class) || this.traits.containsKey(FT_NoContainer.class) || this.traits.containsKey(FT_Viscous.class)); + } /** * Called when the tile entity is broken, effectively voiding the fluids. @@ -180,23 +209,23 @@ public class FluidType { if(temperature > 0) info.add(EnumChatFormatting.RED + "" + temperature + "°C"); } + boolean shiftHeld = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT); + List hidden = new ArrayList(); - for(Entry, FluidTrait> entry : this.traits.entrySet()) { - entry.getValue().addInfo(info); - entry.getValue().addInfoHidden(hidden); + for(Class clazz : FluidTrait.traitList) { + FluidTrait trait = this.getTrait(clazz); + if(trait != null) { + trait.addInfo(info); + if(shiftHeld) trait.addInfoHidden(info); + trait.addInfoHidden(hidden); + } } - if(!hidden.isEmpty()) { - - if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - info.addAll(hidden); - } else { - - info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); - } + if(!hidden.isEmpty() && !shiftHeld) { + info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); } } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index df3839c36..ec91665bc 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -9,10 +9,14 @@ import java.util.HashMap; import java.util.List; import java.util.Map.Entry; +import com.google.common.collect.HashBiMap; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.handler.nei.BoilingHandler; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.lib.ModDamageSource; @@ -46,8 +50,12 @@ public class Fluids { public static FluidType OIL; public static FluidType CRACKOIL; public static FluidType COALOIL; + public static FluidType OIL_DS; + public static FluidType CRACKOIL_DS; public static FluidType HOTOIL; public static FluidType HOTCRACKOIL; + public static FluidType HOTOIL_DS; + public static FluidType HOTCRACKOIL_DS; public static FluidType HEAVYOIL; public static FluidType BITUMEN; public static FluidType SMEAR; @@ -56,10 +64,12 @@ public class Fluids { public static FluidType LUBRICANT; public static FluidType NAPHTHA; public static FluidType NAPHTHA_CRACK; + public static FluidType NAPHTHA_DS; public static FluidType DIESEL; public static FluidType DIESEL_CRACK; public static FluidType LIGHTOIL; public static FluidType LIGHTOIL_CRACK; + public static FluidType LIGHTOIL_DS; public static FluidType KEROSENE; public static FluidType GAS; public static FluidType PETROLEUM; @@ -75,7 +85,7 @@ public class Fluids { public static FluidType SCHRABIDIC; public static FluidType AMAT; public static FluidType ASCHRAB; - public static FluidType ACID; + public static FluidType PEROXIDE; public static FluidType WATZ; public static FluidType CRYOGEL; public static FluidType HYDROGEN; @@ -118,6 +128,8 @@ public class Fluids { public static FluidType SOLVENT; //oranic solvent in fact public static FluidType BLOOD; //BLOOD ORB! BLOOD ORB! BLOOD ORB! public static FluidType BLOOD_HOT; + public static FluidType PHEROMONE; + public static FluidType PHEROMONE_M; public static FluidType SYNGAS; public static FluidType OXYHYDROGEN; public static FluidType RADIOSOLVENT; //DCM-ish made by wacky radio cracking @@ -152,9 +164,33 @@ public class Fluids { public static FluidType POTASSIUM_CHLORIDE; public static FluidType CALCIUM_CHLORIDE; public static FluidType CALCIUM_SOLUTION; + public static FluidType SMOKE; + public static FluidType SMOKE_LEADED; + public static FluidType SMOKE_POISON; + public static FluidType HELIUM4; + public static FluidType HEAVYWATER_HOT; + public static FluidType SODIUM; + public static FluidType SODIUM_HOT; + public static FluidType LEAD; + public static FluidType LEAD_HOT; + public static FluidType THORIUM_SALT; + public static FluidType THORIUM_SALT_HOT; + public static FluidType THORIUM_SALT_DEPLETED; + public static FluidType FULLERENE; + public static FluidType STELLAR_FLUX; + public static FluidType VITRIOL; + public static FluidType SLOP; + + /* Lagacy names for compatibility purposes */ + @Deprecated public static FluidType ACID; //JAOPCA uses this, apparently + + public static final HashBiMap renameMapping = HashBiMap.create(); + + public static List customFluids = new ArrayList(); private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); + protected static final List registerOrder = new ArrayList(); protected static final List metaOrder = new ArrayList(); public static final FT_Liquid LIQUID = new FT_Liquid(); @@ -167,154 +203,206 @@ public class Fluids { public static final FT_NoContainer NOCON = new FT_NoContainer(); public static final FT_NoID NOID = new FT_NoID(); public static final FT_Delicious DELICIOUS = new FT_Delicious(); - public static final FT_Leaded LEADED = new FT_Leaded(); - + public static final FT_Unsiphonable UNSIPHONABLE = new FT_Unsiphonable(); + + /* Burns 4x dirtier than regular fuel */ + public static final float SOOT_UNREFINED_OIL = PollutionHandler.SOOT_PER_SECOND * 0.1F; + /* Original baseline, used for most fuels */ + public static final float SOOT_REFINED_OIL = PollutionHandler.SOOT_PER_SECOND * 0.025F; + /* Gasses burn very cleanly */ + public static final float SOOT_GAS = PollutionHandler.SOOT_PER_SECOND * 0.005F; + /* Original baseline for leaded fuels */ + public static final float LEAD_FUEL = PollutionHandler.HEAVY_METAL_PER_SECOND * 0.025F; + /* Poison stat for most petrochemicals */ + public static final float POISON_OIL = PollutionHandler.POISON_PER_SECOND * 0.0025F; + /* Poison stat for horrible chemicals like red mud or phosgene */ + public static final float POISON_EXTREME = PollutionHandler.POISON_PER_SECOND * 0.025F; + /* Poison stat for mostly inert things like carbon dioxide */ + public static final float POISON_MINOR = PollutionHandler.POISON_PER_SECOND * 0.001F; + + public static final FT_Polluting P_OIL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_UNREFINED_OIL).release(PollutionType.POISON, POISON_OIL); + public static final FT_Polluting P_FUEL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).release(PollutionType.POISON, POISON_OIL); + public static final FT_Polluting P_FUEL_LEADED = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).burn(PollutionType.HEAVYMETAL, LEAD_FUEL).release(PollutionType.POISON, POISON_OIL).release(PollutionType.HEAVYMETAL, LEAD_FUEL * 0.1F); + public static final FT_Polluting P_GAS = new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS); + public static final FT_Polluting P_LIQUID_GAS = new FT_Polluting().burn(PollutionType.SOOT, SOOT_GAS * 2F); + public static void init() { - + // ##### ##### ##### ##### ## # ##### # # ##### ## # ##### // # # # # # ## # # # # # # ## # # // ##### # # ### # # # ##### ##### # # # # # ### // # # # # # # ## # # # # # # ## # // # # # # ##### # ## ##### # # ##### # ## ##### - + /* * The mapping ID is set in the CTOR, which is the static, never shifting ID that is used to save the fluid type. * Therefore, ALWAYS append new fluid entries AT THE BOTTOM to avoid unnecessary ID shifting. * In addition, you have to add your fluid to 'metaOrder' which is what is used to sort fluid identifiers and whatnot in the inventory. * You may screw with metaOrder as much as you like, as long as you keep all fluids in the list exactly once. */ - + NONE = new FluidType("NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE); - WATER = new FluidType("WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D).addTraits(GASEOUS); - HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D).addTraits(GASEOUS); - SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D).addTraits(GASEOUS); - ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D).addTraits(GASEOUS); + WATER = new FluidType("WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, UNSIPHONABLE); + STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).addTraits(GASEOUS, UNSIPHONABLE); + HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).addTraits(GASEOUS, UNSIPHONABLE); + SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).addTraits(GASEOUS, UNSIPHONABLE); + ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(GASEOUS, UNSIPHONABLE); COOLANT = new FluidType("COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); LAVA = new FluidType("LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200).addTraits(LIQUID, VISCOUS); DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS); TRITIUM = new FluidType("TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS, new FT_VentRadiation(0.001F)); - OIL = new FluidType("OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - HEAVYOIL = new FluidType("HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x513F39)).addTraits(new FT_Flammable(50_000), new FT_Combustible(FuelGrade.LOW, 25_000), LIQUID, VISCOUS); - BITUMEN = new FluidType("BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5A5877)).addTraits(LIQUID, VISCOUS); - SMEAR = new FluidType("SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x624F3B)).addTraits(new FT_Flammable(50_000), LIQUID, VISCOUS); - HEATINGOIL = new FluidType("HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x694235)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.LOW, 100_000), LIQUID, VISCOUS); - RECLAIMED = new FluidType("RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF65723)).addTraits(new FT_Flammable(100_000), new FT_Combustible(FuelGrade.LOW, 200_000), LIQUID, VISCOUS); - PETROIL = new FluidType("PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2369F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 300_000), LIQUID); - LUBRICANT = new FluidType("LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF1CC05)).addTraits(LIQUID); - NAPHTHA = new FluidType("NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS); - DIESEL = new FluidType("DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 500_000), LIQUID); - LIGHTOIL = new FluidType("LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID); - KEROSENE = new FluidType("KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF377D)).addTraits(new FT_Flammable(300_000), new FT_Combustible(FuelGrade.AERO, 1_250_000), LIQUID); - GAS = new FluidType("GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFF4545, 0xFFE97F)).addTraits(new FT_Flammable(10_000), GASEOUS); - PETROLEUM = new FluidType("PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x5E7CFF, 0xFFE97F)).addTraits(new FT_Flammable(25_000), GASEOUS); - LPG = new FluidType("LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID); - BIOGAS = new FluidType("BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xC8FF1F, 0x303030)).addTraits(new FT_Flammable(25_000), GASEOUS); - BIOFUEL = new FluidType("BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x9EB623)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID); - NITAN = new FluidType("NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).addContainers(new CD_Canister(0x6B238C)).addTraits(new FT_Flammable(2_000_000), new FT_Combustible(FuelGrade.HIGH, 5_000_000), LIQUID); + OIL = new FluidType("OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS, P_OIL); + HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); + HEAVYOIL = new FluidType("HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x513F39)).addTraits(new FT_Flammable(50_000), new FT_Combustible(FuelGrade.LOW, 25_000), LIQUID, VISCOUS, P_OIL); + BITUMEN = new FluidType("BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5A5877)).addTraits(LIQUID, VISCOUS, P_OIL); + SMEAR = new FluidType("SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x624F3B)).addTraits(new FT_Flammable(50_000), LIQUID, VISCOUS, P_OIL); + HEATINGOIL = new FluidType("HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x694235)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.LOW, 100_000), LIQUID, VISCOUS, P_OIL); + RECLAIMED = new FluidType("RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF65723)).addTraits(new FT_Flammable(100_000), new FT_Combustible(FuelGrade.LOW, 200_000), LIQUID, VISCOUS, P_FUEL); + PETROIL = new FluidType("PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2369F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 300_000), LIQUID, P_FUEL); + LUBRICANT = new FluidType("LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF1CC05)).addTraits(LIQUID, P_OIL); + NAPHTHA = new FluidType("NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS, P_FUEL); + DIESEL = new FluidType("DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 500_000), LIQUID, P_FUEL); + LIGHTOIL = new FluidType("LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID, P_FUEL); + KEROSENE = new FluidType("KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF377D)).addTraits(new FT_Flammable(300_000), new FT_Combustible(FuelGrade.AERO, 1_250_000), LIQUID, P_FUEL); + GAS = new FluidType("GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFF4545, 0xFFE97F)).addTraits(new FT_Flammable(10_000), GASEOUS, P_GAS); + PETROLEUM = new FluidType("PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x5E7CFF, 0xFFE97F)).addTraits(new FT_Flammable(25_000), GASEOUS, P_GAS); + LPG = new FluidType("LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID, P_LIQUID_GAS); + BIOGAS = new FluidType("BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xC8FF1F, 0x303030)).addTraits(new FT_Flammable(25_000), GASEOUS, P_GAS); + BIOFUEL = new FluidType("BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x9EB623)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.HIGH, 400_000), LIQUID, P_FUEL); + NITAN = new FluidType("NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).addContainers(new CD_Canister(0x6B238C)).addTraits(new FT_Flammable(2_000_000), new FT_Combustible(FuelGrade.HIGH, 5_000_000), LIQUID, P_FUEL); UF6 = new FluidType("UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.2F), new FT_Corrosive(15), GASEOUS); PUF6 = new FluidType("PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.1F), new FT_Corrosive(15), GASEOUS); SAS3 = new FluidType("SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(1F), new FT_Corrosive(30), LIQUID); SCHRABIDIC = new FluidType("SCHRABIDIC", 0x006B6B, 5, 0, 5, EnumSymbol.ACID).addTraits(new FT_VentRadiation(1F), new FT_Corrosive(75), new FT_Poison(true, 2), LIQUID); AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); - ACID = new FluidType("ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(new FT_Corrosive(40), LIQUID); - WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID, VISCOUS); + PEROXIDE = new FluidType("PEROXIDE", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(new FT_Corrosive(40), LIQUID); + WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID, VISCOUS, new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); CRYOGEL = new FluidType("CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170).addTraits(LIQUID, VISCOUS); HYDROGEN = new FluidType("HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setTemp(-260).addContainers(new CD_Gastank(0x4286f4, 0xffffff)).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), LIQUID, EVAP); OXYGEN = new FluidType("OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC).setTemp(-100).addContainers(new CD_Gastank(0x98bdf9, 0xffffff)).addTraits(LIQUID, EVAP); XENON = new FluidType("XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT).addContainers(new CD_Gastank(0x8C21FF, 0x303030)).addTraits(GASEOUS); - BALEFIRE = new FluidType("BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(new FT_Corrosive(50), new FT_Flammable(1_000_000), new FT_Combustible(FuelGrade.HIGH, 2_500_000), LIQUID, VISCOUS); + BALEFIRE = new FluidType("BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(new FT_Corrosive(50), new FT_Flammable(1_000_000), new FT_Combustible(FuelGrade.HIGH, 2_500_000), LIQUID, VISCOUS, P_FUEL); MERCURY = new FluidType("MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Poison(false, 2)); PAIN = new FluidType("PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(30), new FT_Poison(true, 2), LIQUID, VISCOUS); WASTEFLUID = new FluidType("WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, LIQUID, VISCOUS); WASTEGAS = new FluidType("WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, GASEOUS); - GASOLINE = new FluidType("GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F7747)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_000_000), LIQUID); - COALGAS = new FluidType("COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 150_000), LIQUID); - SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).setCompression(1D).addTraits(NOCON, GASEOUS); + GASOLINE = new FluidType("GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F7747)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_000_000), LIQUID, P_FUEL); + COALGAS = new FluidType("COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 150_000), LIQUID, P_FUEL); + SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(NOCON, GASEOUS); FRACKSOL = new FluidType("FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addContainers(new CD_Canister(0x4F887F)).addTraits(new FT_Corrosive(15), new FT_Poison(false, 0), LIQUID, VISCOUS); PLASMA_DT = new FluidType("PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(NOCON, NOID, PLASMA); PLASMA_HD = new FluidType("PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(NOCON, NOID, PLASMA); PLASMA_HT = new FluidType("PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(NOCON, NOID, PLASMA); PLASMA_XM = new FluidType("PLASMA_XM", 0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION).setTemp(4250).addTraits(NOCON, NOID, PLASMA); PLASMA_BF = new FluidType("PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(NOCON, NOID, PLASMA); - CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); + CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_MINOR)); PLASMA_DH3 = new FluidType("PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(NOCON, NOID, PLASMA); - HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); + HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); DEATH = new FluidType("DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(80), new FT_Poison(true, 4), LEADCON, LIQUID, VISCOUS); - ETHANOL = new FluidType("ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xEAFFF3)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.HIGH, 200_000), LIQUID); + ETHANOL = new FluidType("ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xEAFFF3)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.HIGH, 200_000), LIQUID, P_FUEL); HEAVYWATER = new FluidType("HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - CRACKOIL = new FluidType("CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - COALOIL = new FluidType("COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS); - NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS); - LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID); - DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID); - AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), LIQUID, VISCOUS); - UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS); //acetylene burns as hot as satan's asshole + CRACKOIL = new FluidType("CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS, P_OIL); + COALOIL = new FluidType("COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS, P_OIL); + HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); + NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS, P_FUEL); + LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID, P_FUEL); + DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID, P_FUEL); + AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x68A09A, 0xEDCF27)).addTraits(new FT_Flammable(25_000), LIQUID, VISCOUS, P_GAS); + UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x628FAE, 0xEDCF27)).addTraits(new FT_Flammable(1_000_000), GASEOUS, P_GAS); //acetylene burns as hot as satan's asshole SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS); XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, LEADED); - GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, LEADED); - COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, LEADED); + ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); + PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, P_FUEL_LEADED); + GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, P_FUEL_LEADED); + COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, P_FUEL_LEADED); SULFURIC_ACID = new FluidType("SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(new FT_Corrosive(50), LIQUID); COOLANT_HOT = new FluidType("COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); MUG = new FluidType("MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID); MUG_HOT = new FluidType("MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setTemp(500).addTraits(DELICIOUS, LIQUID); - WOODOIL = new FluidType("WOODOIL", 0x847D54, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xBF7E4F)).addTraits(LIQUID, VISCOUS); - COALCREOSOTE = new FluidType("COALCREOSOTE", 0x51694F, 3, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x285A3F)).addTraits(LIQUID, VISCOUS); + WOODOIL = new FluidType("WOODOIL", 0x847D54, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xBF7E4F)).addTraits(LIQUID, VISCOUS, P_OIL); + COALCREOSOTE = new FluidType("COALCREOSOTE", 0x51694F, 3, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x285A3F)).addTraits(LIQUID, VISCOUS, P_OIL); SEEDSLURRY = new FluidType("SEEDSLURRY", 0x7CC35E, 0, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x7CC35E)).addTraits(LIQUID, VISCOUS); - NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60)); + NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60), new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); SOLVENT = new FluidType("SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xE4E3EF)).addTraits(LIQUID, new FT_Corrosive(30)); - BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, DELICIOUS); BLOOD_HOT = new FluidType("BLOOD_HOT", 0xF22419, 3, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).setTemp(666); //it's funny because it's the satan number SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFFFFFF, 0x131313)).addTraits(GASEOUS); OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F)); CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25)); - HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0x513F39)); - REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0xD180D6)); - LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xB46B52)); - SOURGAS = new FluidType("SOURGAS", 0xC9BE0D, 4, 4, 0, EnumSymbol.ACID).addContainers(new CD_Gastank(0xC9BE0D, 0x303030)).addTraits(GASEOUS, new FT_Corrosive(10), new FT_Poison(false, 1)); - XYLENE = new FluidType("XYLENE", 0x5C4E76, 2, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0xA380D6)); - HEATINGOIL_VACUUM = new FluidType("HEATINGOIL_VACUUM", 0x211D06, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0x694235)); - DIESEL_REFORM = new FluidType("DIESEL_REFORM", 0xCDC3C6, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFFC500)); - DIESEL_CRACK_REFORM = new FluidType("DIESEL_CRACK_REFORM",0xCDC3CC, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFFC500)); - KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFF377D)); - REFORMGAS = new FluidType("REFORMGAS", 0x6362AE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x9392FF, 0xFFB992)).addTraits(GASEOUS); + HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL).addContainers(new CD_Canister(0x513F39)); + REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_FUEL).addContainers(new CD_Canister(0xD180D6)); + LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xB46B52)); + SOURGAS = new FluidType("SOURGAS", 0xC9BE0D, 4, 4, 0, EnumSymbol.ACID).addContainers(new CD_Gastank(0xC9BE0D, 0x303030)).addTraits(GASEOUS, new FT_Corrosive(10), new FT_Poison(false, 1), P_GAS); + XYLENE = new FluidType("XYLENE", 0x5C4E76, 2, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_FUEL).addContainers(new CD_Canister(0xA380D6)); + HEATINGOIL_VACUUM = new FluidType("HEATINGOIL_VACUUM", 0x211D06, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL).addContainers(new CD_Canister(0x694235)); + DIESEL_REFORM = new FluidType("DIESEL_REFORM", 0xCDC3C6, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xFFC500)); + DIESEL_CRACK_REFORM = new FluidType("DIESEL_CRACK_REFORM",0xCDC3CC, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xFFC500)); + KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xFF377D)); + REFORMGAS = new FluidType("REFORMGAS", 0x6362AE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x9392FF, 0xFFB992)).addTraits(GASEOUS, P_GAS); COLLOID = new FluidType("COLLOID", 0x787878, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS); - MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS); + PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); + MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); IONGEL = new FluidType("IONGEL", 0xB8FFFF, 1, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - OIL_COKER = new FluidType("OIL_COKER", 0x001802, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - NAPHTHA_COKER = new FluidType("NAPHTHA_COKER", 0x495944, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - GAS_COKER = new FluidType("GAS_COKER", 0xDEF4CA, 1, 4, 0, EnumSymbol.NONE).addTraits(GASEOUS); + OIL_COKER = new FluidType("OIL_COKER", 0x001802, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL); + NAPHTHA_COKER = new FluidType("NAPHTHA_COKER", 0x495944, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL); + GAS_COKER = new FluidType("GAS_COKER", 0xDEF4CA, 1, 4, 0, EnumSymbol.NONE).addTraits(GASEOUS, P_GAS); EGG = new FluidType("EGG", 0xD2C273, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); CHOLESTEROL = new FluidType("CHOLESTEROL", 0xD6D2BD, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); + FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL); + SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL); NITROGLYCERIN = new FluidType("NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); - REDMUD = new FluidType("REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); + REDMUD = new FluidType("REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000), new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME)); CHLOROCALCITE_SOLUTION = new FluidType("CHLOROCALCITE_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); CHLOROCALCITE_MIX = new FluidType("CHLOROCALCITE_MIX", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); CHLOROCALCITE_CLEANED = new FluidType("CHLOROCALCITE_CLEANED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); POTASSIUM_CHLORIDE = new FluidType("POTASSIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); - CALCIUM_CHLORIDE = new FluidType("CALCIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); - CALCIUM_SOLUTION = new FluidType(119, "CALCIUM_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); - + CALCIUM_CHLORIDE = new FluidType("CALCIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CALCIUM_SOLUTION = new FluidType("CALCIUM_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + SMOKE = new FluidType("SMOKE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); + SMOKE_LEADED = new FluidType("SMOKE_LEADED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); + SMOKE_POISON = new FluidType("SMOKE_POISON", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); + HELIUM4 = new FluidType("HELIUM4", 0xE54B0A, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); + HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID, VISCOUS); + SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID, VISCOUS); + SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID, VISCOUS); + THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); + THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); + THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); + FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65), new FT_Polluting().release(PollutionType.POISON, POISON_MINOR)); + PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1)); + PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2)); + OIL_DS = new FluidType("OIL_DS", 0x121212, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS, P_OIL); + HOTOIL_DS = new FluidType("HOTOIL_DS", 0x3F180F, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); + CRACKOIL_DS = new FluidType("CRACKOIL_DS", 0x2A1C11, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS, P_OIL); + HOTCRACKOIL_DS = new FluidType("HOTCRACKOIL_DS", 0x3A1A28, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS, P_OIL); + NAPHTHA_DS = new FluidType("NAPHTHA_DS", 0x63614E, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(LIQUID, VISCOUS, P_FUEL); + LIGHTOIL_DS = new FluidType("LIGHTOIL_DS", 0x63543E, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(LIQUID, P_FUEL); + STELLAR_FLUX = new FluidType("STELLAR_FLUX", 0xE300FF, 0, 4, 4, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); + VITRIOL = new FluidType("VITRIOL", 0x6E5222, 2, 0, 1, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + SLOP = new FluidType("SLOP", 0x929D45, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + LEAD = new FluidType("LEAD", 0x666672, 4, 0, 0, EnumSymbol.NONE).setTemp(350).addTraits(LIQUID, VISCOUS); + LEAD_HOT = new FluidType(143, "LEAD_HOT", 0x776563, 4, 0, 0, EnumSymbol.NONE).setTemp(1500).addTraits(LIQUID, VISCOUS); + // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE + + File folder = MainRegistry.configHbmDir; + File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json"); + if(!customTypes.exists()) initDefaultFluids(customTypes); + readCustomFluids(customTypes); + //AND DON'T FORGET THE META DOWN HERE // V V V V V V V V - + //null metaOrder.add(NONE); //vanilla metaOrder.add(WATER); metaOrder.add(HEAVYWATER); + metaOrder.add(HEAVYWATER_HOT); metaOrder.add(LAVA); //steams metaOrder.add(STEAM); @@ -331,29 +419,43 @@ public class Fluids { metaOrder.add(MUG_HOT); metaOrder.add(BLOOD); metaOrder.add(BLOOD_HOT); + metaOrder.add(SODIUM); + metaOrder.add(SODIUM_HOT); + metaOrder.add(LEAD); + metaOrder.add(LEAD_HOT); + metaOrder.add(THORIUM_SALT); + metaOrder.add(THORIUM_SALT_HOT); + metaOrder.add(THORIUM_SALT_DEPLETED); //pure elements, cyogenic gasses metaOrder.add(HYDROGEN); metaOrder.add(DEUTERIUM); metaOrder.add(TRITIUM); metaOrder.add(HELIUM3); + metaOrder.add(HELIUM4); metaOrder.add(OXYGEN); metaOrder.add(XENON); metaOrder.add(CHLORINE); metaOrder.add(MERCURY); //oils, fuels metaOrder.add(OIL); + metaOrder.add(OIL_DS); metaOrder.add(CRACKOIL); + metaOrder.add(CRACKOIL_DS); metaOrder.add(COALOIL); metaOrder.add(OIL_COKER); metaOrder.add(HOTOIL); + metaOrder.add(HOTOIL_DS); metaOrder.add(HOTCRACKOIL); + metaOrder.add(HOTCRACKOIL_DS); metaOrder.add(HEAVYOIL); metaOrder.add(HEAVYOIL_VACUUM); metaOrder.add(NAPHTHA); + metaOrder.add(NAPHTHA_DS); metaOrder.add(NAPHTHA_CRACK); metaOrder.add(NAPHTHA_COKER); metaOrder.add(REFORMATE); metaOrder.add(LIGHTOIL); + metaOrder.add(LIGHTOIL_DS); metaOrder.add(LIGHTOIL_CRACK); metaOrder.add(LIGHTOIL_VACUUM); metaOrder.add(BITUMEN); @@ -398,8 +500,10 @@ public class Fluids { metaOrder.add(SALIENT); metaOrder.add(SEEDSLURRY); metaOrder.add(COLLOID); + metaOrder.add(VITRIOL); + metaOrder.add(SLOP); metaOrder.add(IONGEL); - metaOrder.add(ACID); + metaOrder.add(PEROXIDE); metaOrder.add(SULFURIC_ACID); metaOrder.add(NITRIC_ACID); metaOrder.add(SOLVENT); @@ -412,6 +516,7 @@ public class Fluids { metaOrder.add(DEATH); metaOrder.add(WATZ); metaOrder.add(REDMUD); + metaOrder.add(FULLERENE); metaOrder.add(EGG); metaOrder.add(CHOLESTEROL); metaOrder.add(CHLOROCALCITE_SOLUTION); @@ -436,6 +541,8 @@ public class Fluids { //garbage metaOrder.add(XPJUICE); metaOrder.add(ENDERJUICE); + //plasma-esque + metaOrder.add(STELLAR_FLUX); //plasma metaOrder.add(PLASMA_DT); metaOrder.add(PLASMA_HD); @@ -443,17 +550,34 @@ public class Fluids { metaOrder.add(PLASMA_DH3); metaOrder.add(PLASMA_XM); metaOrder.add(PLASMA_BF); + //smoke + metaOrder.add(SMOKE); + metaOrder.add(SMOKE_LEADED); + metaOrder.add(SMOKE_POISON); + //bug meth + metaOrder.add(PHEROMONE); + metaOrder.add(PHEROMONE_M); - CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_CHLORINE, false))); - PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_CHLORINE, false))); - MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_CORROSIVE, false)) - .addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0)))); + //ANY INTERNAL RENAMING MUST BE REFLECTED HERE - DON'T FORGET TO CHANGE: LANG FILES + TYPE'S STRING ID + NAME OF TANK/GUI TEXTURE FILES! + // V + + renameMapping.put("ACID", PEROXIDE); + + // LEGACY + ACID = PEROXIDE; + + for(FluidType custom : customFluids) metaOrder.add(custom); + + CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_LUNG, false))); + PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_LUNG, false))); + MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_BLISTERING, false)) + .addEntry(new ToxinEffects(HazardClass.GAS_BLISTERING, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0)))); ESTRADIOL.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.PARTICLE_FINE, false).add(new PotionEffect(HbmPotion.death.id, 60 * 60 * 20, 0)))); - REDMUD.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, false).add(new PotionEffect(Potion.wither.id, 30 * 20, 2)))); + REDMUD.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.GAS_BLISTERING, false).add(new PotionEffect(Potion.wither.id, 30 * 20, 2)))); double eff_steam_boil = 1.0D; double eff_steam_heatex = 0.25D; - + WATER.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, eff_steam_boil).setEff(HeatingType.HEATEXCHANGER, eff_steam_heatex) .addStep(200, 1, STEAM, 100) .addStep(220, 1, HOTSTEAM, 10) @@ -470,34 +594,52 @@ public class Fluids { HOTSTEAM.addTraits(new FT_Coolable(STEAM, 1, 10, 2).setEff(CoolingType.TURBINE, eff_steam_turbine).setEff(CoolingType.HEATEXCHANGER, eff_steam_cool)); SUPERHOTSTEAM.addTraits(new FT_Coolable(HOTSTEAM, 1, 10, 18).setEff(CoolingType.TURBINE, eff_steam_turbine).setEff(CoolingType.HEATEXCHANGER, eff_steam_cool)); ULTRAHOTSTEAM.addTraits(new FT_Coolable(SUPERHOTSTEAM, 1, 10, 120).setEff(CoolingType.TURBINE, eff_steam_turbine).setEff(CoolingType.HEATEXCHANGER, eff_steam_cool)); - + OIL.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTOIL, 1)); + OIL_DS.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTOIL_DS, 1)); CRACKOIL.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTCRACKOIL, 1)); + CRACKOIL_DS.addTraits(new FT_Heatable().setEff(HeatingType.BOILER, 1.0D).setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(10, 1, HOTCRACKOIL_DS, 1)); HOTOIL.addTraits(new FT_Coolable(OIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + HOTOIL_DS.addTraits(new FT_Coolable(OIL_DS, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); HOTCRACKOIL.addTraits(new FT_Coolable(CRACKOIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - - COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); + HOTCRACKOIL_DS.addTraits(new FT_Coolable(CRACKOIL_DS, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + + COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).setEff(HeatingType.ICF, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); COOLANT_HOT.addTraits(new FT_Coolable(COOLANT, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - - MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(400, 1, MUG_HOT, 1)); + + MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).setEff(HeatingType.ICF, 1.25D).addStep(400, 1, MUG_HOT, 1), new FT_PWRModerator(1.15D)); MUG_HOT.addTraits(new FT_Coolable(MUG, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - - BLOOD.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(500, 1, BLOOD_HOT, 1)); + + BLOOD.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.ICF, 1.25D).addStep(500, 1, BLOOD_HOT, 1)); BLOOD_HOT.addTraits(new FT_Coolable(BLOOD, 1, 1, 500).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - + + HEAVYWATER.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(300, 1, HEAVYWATER_HOT, 1), new FT_PWRModerator(1.25D)); + HEAVYWATER_HOT.addTraits(new FT_Coolable(HEAVYWATER, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + + SODIUM.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 2.5D).setEff(HeatingType.ICF, 3D).addStep(400, 1, SODIUM_HOT, 1)); + SODIUM_HOT.addTraits(new FT_Coolable(SODIUM, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + /* Fuck you, this is final now. If you had any concerns, you could have told me like a normal person instead of shitting on in-dev values that change every other day */ + LEAD.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 0.75D).setEff(HeatingType.ICF, 4D).addStep(800, 1, LEAD_HOT, 1), new FT_PWRModerator(0.75D)); + /* Or maybe not, because I blocked your sorry ass. Guess why that is? */ + LEAD_HOT.addTraits(new FT_Coolable(LEAD, 1, 1, 680).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + /* Maybe shittalking me in some corner where you thought I wouldn't listen was not that bright of an idea afterall? */ + + THORIUM_SALT.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(400, 1, THORIUM_SALT_HOT, 1), new FT_PWRModerator(2.5D)); + THORIUM_SALT_HOT.addTraits(new FT_Coolable(THORIUM_SALT_DEPLETED, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + if(idMapping.size() != metaOrder.size()) { throw new IllegalStateException("A severe error has occoured during NTM's fluid registering process! The MetaOrder and Mappings are inconsistent! Mapping size: " + idMapping.size()+ " / MetaOrder size: " + metaOrder.size()); } - - - /// EXPERIMENTAL /// - + + + /// FINAL /// + long baseline = 100_000L; //we do not know - double demandVeryLow = 0.5D; - double demandLow = 1.0D; - double demandMedium = 1.5D; - double demandHigh = 2.0D; + double demandVeryLow = 0.5D; //for waste gasses + double demandLow = 1.0D; //for fuel oils + double demandMedium = 1.5D; //for processing oils like petroleum and BTX + double demandHigh = 2.0D; //kerosene and jet fuels double complexityRefinery = 1.1D; double complexityFraction = 1.05D; double complexityCracking = 1.25D; @@ -507,16 +649,19 @@ public class Fluids { double complexityLeaded = 1.5D; double complexityVacuum = 3.0D; double complexityReform = 2.5D; - double flammabilityLow = 0.25D; - double flammabilityNormal = 1.0D; - double flammabilityHigh = 2.0D; + double complexityHydro = 2.0D; + double flammabilityLow = 0.25D; //unrefined or low refined oils + double flammabilityNormal = 1.0D; //refined oils + double flammabilityHigh = 2.0D; //satan's asshole - /// the allmighty excel spreadsheet has spoken! /// + /// the almighty excel spreadsheet has spoken! /// registerCalculatedFuel(OIL, (baseline / 1D * flammabilityLow * demandLow), 0, null); + registerCalculatedFuel(OIL_DS, (baseline / 1D * flammabilityLow * demandLow * complexityHydro), 0, null); registerCalculatedFuel(CRACKOIL, (baseline / 1D * flammabilityLow * demandLow * complexityCracking), 0, null); + registerCalculatedFuel(CRACKOIL_DS, (baseline / 1D * flammabilityLow * demandLow * complexityCracking * complexityHydro), 0, null); registerCalculatedFuel(OIL_COKER, (baseline / 1D * flammabilityLow * demandLow * complexityCoker), 0, null); - registerCalculatedFuel(GAS, (baseline / 1D * flammabilityNormal * demandVeryLow), 1.25, FuelGrade.GAS); - registerCalculatedFuel(GAS_COKER, (baseline / 1D * flammabilityNormal * demandVeryLow * complexityCoker), 1.25, FuelGrade.GAS); + registerCalculatedFuel(GAS, (baseline / 1D * flammabilityNormal * demandVeryLow), 1.5, FuelGrade.GAS); + registerCalculatedFuel(GAS_COKER, (baseline / 1D * flammabilityNormal * demandVeryLow * complexityCoker), 1.5, FuelGrade.GAS); registerCalculatedFuel(HEAVYOIL, (baseline / 0.5 * flammabilityLow * demandLow * complexityRefinery), 1.25D, FuelGrade.LOW); registerCalculatedFuel(SMEAR, (baseline / 0.35 * flammabilityLow * demandLow * complexityRefinery * complexityFraction), 1.25D, FuelGrade.LOW); registerCalculatedFuel(RECLAIMED, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant), 1.25D, FuelGrade.LOW); @@ -524,6 +669,7 @@ public class Fluids { registerCalculatedFuel(PETROIL_LEADED, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant * complexityLubed * complexityLeaded), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(HEATINGOIL, (baseline / 0.31 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction * complexityFraction), 1.25D, FuelGrade.LOW); registerCalculatedFuel(NAPHTHA, (baseline / 0.25 * flammabilityLow * demandLow * complexityRefinery), 1.5D, FuelGrade.MEDIUM); + registerCalculatedFuel(NAPHTHA_DS, (baseline / 0.25 * flammabilityLow * demandLow * complexityRefinery * complexityHydro), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(NAPHTHA_CRACK, (baseline / 0.40 * flammabilityLow * demandLow * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(NAPHTHA_COKER, (baseline / 0.25 * flammabilityLow * demandLow * complexityCoker), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(GASOLINE, (baseline / 0.20 * flammabilityNormal * demandLow * complexityRefinery * complexityChemplant), 2.5D, FuelGrade.HIGH); @@ -531,12 +677,13 @@ public class Fluids { registerCalculatedFuel(DIESEL, (baseline / 0.21 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction), 2.5D, FuelGrade.HIGH); registerCalculatedFuel(DIESEL_CRACK, (baseline / 0.28 * flammabilityNormal * demandLow * complexityRefinery * complexityCracking * complexityFraction), 2.5D, FuelGrade.HIGH); registerCalculatedFuel(LIGHTOIL, (baseline / 0.15 * flammabilityNormal * demandHigh * complexityRefinery), 1.5D, FuelGrade.MEDIUM); + registerCalculatedFuel(LIGHTOIL_DS, (baseline / 0.15 * flammabilityNormal * demandHigh * complexityRefinery * complexityHydro), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(LIGHTOIL_CRACK, (baseline / 0.30 * flammabilityNormal * demandHigh * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(KEROSENE, (baseline / 0.09 * flammabilityNormal * demandHigh * complexityRefinery * complexityFraction), 1.5D, FuelGrade.AERO); - registerCalculatedFuel(PETROLEUM, (baseline / 0.10 * flammabilityNormal * demandMedium * complexityRefinery), 1.25, FuelGrade.GAS); + registerCalculatedFuel(PETROLEUM, (baseline / 0.10 * flammabilityNormal * demandMedium * complexityRefinery), 1.5, FuelGrade.GAS); registerCalculatedFuel(AROMATICS, (baseline / 0.15 * flammabilityLow * demandHigh * complexityRefinery * complexityCracking), 0, null); registerCalculatedFuel(UNSATURATEDS, (baseline / 0.15 * flammabilityHigh * demandHigh * complexityRefinery * complexityCracking), 0, null); - registerCalculatedFuel(LPG, (baseline / 0.05 * flammabilityNormal * demandMedium * complexityRefinery * complexityChemplant), 2.5, FuelGrade.HIGH); + registerCalculatedFuel(LPG, (baseline / 0.1 * flammabilityNormal * demandMedium * complexityRefinery * complexityChemplant), 2.5, FuelGrade.HIGH); registerCalculatedFuel(NITAN, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * 25L, 2.5, FuelGrade.HIGH); registerCalculatedFuel(BALEFIRE, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * 100L, 2.5, FuelGrade.HIGH); registerCalculatedFuel(HEAVYOIL_VACUUM, (baseline / 0.4 * flammabilityLow * demandLow * complexityVacuum), 1.25D, FuelGrade.LOW); @@ -548,12 +695,12 @@ public class Fluids { registerCalculatedFuel(DIESEL_REFORM, DIESEL.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 2.5D, FuelGrade.HIGH); registerCalculatedFuel(DIESEL_CRACK_REFORM, DIESEL_CRACK.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 2.5D, FuelGrade.HIGH); registerCalculatedFuel(KEROSENE_REFORM, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 1.5D, FuelGrade.AERO); - registerCalculatedFuel(REFORMGAS, (baseline / 0.06 * flammabilityHigh * demandLow * complexityVacuum * complexityFraction), 1.25D, FuelGrade.GAS); - + registerCalculatedFuel(REFORMGAS, (baseline / 0.06 * flammabilityHigh * demandLow * complexityVacuum * complexityFraction), 1.5D, FuelGrade.GAS); + //all hail the spreadsheet //the spreadsheet must not be questioned //none may enter the orb- i mean the spreadsheet - + int coalHeat = 400_000; // 200TU/t for 2000 ticks registerCalculatedFuel(COALOIL, (coalHeat * (1000 /* bucket */ / 100 /* mB per coal */) * flammabilityLow * demandLow * complexityChemplant), 0, null); long coaloil = COALOIL.getTrait(FT_Flammable.class).getHeatEnergy(); @@ -575,57 +722,110 @@ public class Fluids { registerCalculatedFuel(SYNGAS, (coalHeat * (1000 /* bucket */ / 100 /* mB per coal */) * flammabilityLow * demandLow * complexityChemplant) * 1.5, 1.25, FuelGrade.GAS); //same as coal oil, +50% bonus registerCalculatedFuel(OXYHYDROGEN, 5_000, 3, FuelGrade.GAS); // whatever - - File folder = MainRegistry.configHbmDir; - File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluids.json"); - File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmFluids.json"); - + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTraits.json"); + File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmFluidTraits.json"); + if(!config.exists()) { - writeDefault(template); + writeDefaultTraits(template); } else { - readConfig(config); + readTraits(config); } } - - private static void writeDefault(File file) { + + private static void initDefaultFluids(File file) { try { JsonWriter writer = new JsonWriter(new FileWriter(file)); writer.setIndent(" "); writer.beginObject(); - - for(FluidType type : metaOrder) { - writer.name(type.getUnlocalizedName()).beginObject(); - - for(Entry, FluidTrait> entry : type.traits.entrySet()) { - writer.name(FluidTrait.traitNameMap.inverse().get(entry.getKey())).beginObject(); - entry.getValue().serializeJSON(writer); - writer.endObject(); - } - - writer.endObject(); - } - + + writer.name("CUSTOM_DEMO").beginObject(); + writer.name("name").value("Custom Fluid Demo"); + writer.name("id").value(1000); + writer.name("color").value(0xff0000); + writer.name("tint").value(0xff0000); + writer.name("p").value(1).name("f").value(2).name("r").value(0); + writer.name("symbol").value(EnumSymbol.OXIDIZER.name()); + writer.name("texture").value("custom_water"); + writer.name("temperature").value(20); + writer.endObject(); + writer.endObject(); writer.close(); } catch(IOException e) { e.printStackTrace(); } } - - private static void readConfig(File config) { - + + private static void readCustomFluids(File file) { + + try { + JsonObject json = gson.fromJson(new FileReader(file), JsonObject.class); + + for(Entry entry : json.entrySet()) { + + JsonObject obj = (JsonObject) entry.getValue(); + + String name = entry.getKey(); + int id = obj.get("id").getAsInt(); + String displayName = obj.get("name").getAsString(); + int color = obj.get("color").getAsInt(); + int tint = obj.get("tint").getAsInt(); + int p = obj.get("p").getAsInt(); + int f = obj.get("f").getAsInt(); + int r = obj.get("r").getAsInt(); + EnumSymbol symbol = EnumSymbol.valueOf(obj.get("symbol").getAsString()); + String texture = obj.get("texture").getAsString(); + int temperature = obj.get("temperature").getAsInt(); + + FluidType type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); + customFluids.add(type); + } + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + + private static void writeDefaultTraits(File file) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(file)); + writer.setIndent(" "); + writer.beginObject(); + + for(FluidType type : metaOrder) { + writer.name(type.getName()).beginObject(); + + for(Entry, FluidTrait> entry : type.traits.entrySet()) { + writer.name(FluidTrait.traitNameMap.inverse().get(entry.getKey())).beginObject(); + entry.getValue().serializeJSON(writer); + writer.endObject(); + } + + writer.endObject(); + } + + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + private static void readTraits(File config) { + try { JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); - + for(FluidType type : metaOrder) { - - JsonElement element = json.get(type.getUnlocalizedName()); + + JsonElement element = json.get(type.getName()); if(element != null) { type.traits.clear(); JsonObject obj = element.getAsJsonObject(); - + for(Entry entry : obj.entrySet()) { Class traitClass = FluidTrait.traitNameMap.get(entry.getKey()); try { @@ -638,14 +838,36 @@ public class Fluids { } } } - + } catch(Exception ex) { ex.printStackTrace(); } } - + public static void reloadFluids(){ + File folder = MainRegistry.configHbmDir; + File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json"); + if(!customTypes.exists()) initDefaultFluids(customTypes); + for(FluidType type : customFluids){ + idMapping.remove(type.getID()); + registerOrder.remove(type); + nameMapping.remove(type.getName()); + metaOrder.remove(type); + } + customFluids.clear(); + readCustomFluids(customTypes); + for(FluidType custom : customFluids) metaOrder.add(custom); + File config = new File(MainRegistry.configHbmDir.getAbsolutePath() + File.separatorChar + "hbmFluidTraits.json"); + File template = new File(MainRegistry.configHbmDir.getAbsolutePath() + File.separatorChar + "_hbmFluidTraits.json"); + + if(!config.exists()) { + writeDefaultTraits(template); + } else { + readTraits(config); + } + BoilingHandler.isReload=true; + } private static void registerCalculatedFuel(FluidType type, double base, double combustMult, FuelGrade grade) { - + long flammable = (long) base; long combustible = (long) (base * combustMult); @@ -653,11 +875,11 @@ public class Fluids { combustible = round(combustible); type.addTraits(new FT_Flammable(flammable)); - + if(combustible > 0 && grade != null) type.addTraits(new FT_Combustible(grade, combustible)); } - + /** ugly but it does the thing well enough */ private static long round(long l) { if(l > 10_000_000L) return l - (l % 100_000L); @@ -665,66 +887,101 @@ public class Fluids { if(l > 100_000L) return l - (l % 1_000L); if(l > 10_000L) return l - (l % 100L); if(l > 1_000L) return l - (l % 10L); - + return l; } - + protected static int registerSelf(FluidType fluid) { int id = idMapping.size(); idMapping.put(id, fluid); + registerOrder.add(fluid); nameMapping.put(fluid.getName(), fluid); return id; } - + + protected static void register(FluidType fluid, int id) { + idMapping.put(id, fluid); + registerOrder.add(fluid); + nameMapping.put(fluid.getName(), fluid); + } + public static FluidType fromID(int id) { FluidType fluid = idMapping.get(id); - + if(fluid == null) fluid = Fluids.NONE; - + return fluid; } - + public static FluidType fromName(String name) { FluidType fluid = nameMapping.get(name); - + if(fluid == null) fluid = Fluids.NONE; - + return fluid; } - + + /** for old worlds with types saved as name, do not use otherwise */ + public static FluidType fromNameCompat(String name) { + if(renameMapping.containsKey(name)) { + FluidType fluid = renameMapping.get(name); + + if(fluid == null) //null safety never killed nobody + fluid = Fluids.NONE; + + return fluid; + } + + return fromName(name); + } + + /** basically the inverse of the above method */ + public static String toNameCompat(FluidType type) { + if(renameMapping.containsValue(type)) { + String name = renameMapping.inverse().get(type); + + if(name == null) //ditto + name = Fluids.NONE.getName(); + + return name; + } + + return type.getName(); + } + public static FluidType[] getAll() { return getInOrder(false); } - + public static FluidType[] getInNiceOrder() { return getInOrder(true); } - + private static FluidType[] getInOrder(final boolean nice) { FluidType[] all = new FluidType[idMapping.size()]; - + for(int i = 0; i < all.length; i++) { - FluidType type = nice ? metaOrder.get(i) : idMapping.get(i); - + FluidType type = nice ? metaOrder.get(i) : registerOrder.get(i); + if(type == null) { throw new IllegalStateException("A severe error has occoured with NTM's fluid system! Fluid of the ID " + i + " has returned NULL in the registry!"); } - + all[i] = type; } - + return all; } - + public static class CD_Canister { public int color; public CD_Canister(int color) { this.color = color; } } - + public static class CD_Gastank { public int bottleColor, labelColor; public CD_Gastank(int color1, int color2) { this.bottleColor = color1; this.labelColor = color2; } } -} \ No newline at end of file +} diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java index 8228afc44..9113bdfff 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java @@ -16,6 +16,8 @@ public class FluidLoaderFillableItem extends FluidLoadingHandler { public boolean fill(ItemStack stack, FluidTank tank) { + if(tank.pressure != 0) return false; + if(stack == null) return false; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java index 8ceac7946..adc4c49d9 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java @@ -18,6 +18,7 @@ public class FluidLoaderInfinite extends FluidLoadingHandler { ItemInfiniteFluid item = (ItemInfiniteFluid) slots[in].getItem(); + if(!item.allowPressure(tank.pressure)) return false; if(item.getType() != null && tank.type != item.getType()) return false; if(item.getChance() <= 1 || rand.nextInt(item.getChance()) == 0) { diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java index d4c784396..4252f025c 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java @@ -10,6 +10,8 @@ public class FluidLoaderStandard extends FluidLoadingHandler { @Override public boolean fillItem(ItemStack[] slots, int in, int out, FluidTank tank) { + if(tank.pressure != 0) return false; + if(slots[in] == null) return true; @@ -18,8 +20,6 @@ public class FluidLoaderStandard extends FluidLoadingHandler { if(full != null && slots[in] != null && tank.getFill() - FluidContainerRegistry.getFluidContent(full, type) >= 0) { - ItemStack fullContainer = FluidContainerRegistry.getFullContainer(slots[in], type); - if(slots[out] == null) { tank.setFill(tank.getFill() - FluidContainerRegistry.getFluidContent(full, type)); @@ -29,7 +29,7 @@ public class FluidLoaderStandard extends FluidLoadingHandler { slots[in] = null; } - } else if(slots[out] != null && slots[out].getItem() == fullContainer.getItem() && slots[out].getItemDamage() == fullContainer.getItemDamage() && slots[out].stackSize < slots[out].getMaxStackSize()) { + } else if(slots[out] != null && slots[out].getItem() == full.getItem() && slots[out].getItemDamage() == full.getItemDamage() && slots[out].stackSize < slots[out].getMaxStackSize()) { tank.setFill(tank.getFill() - FluidContainerRegistry.getFluidContent(full, type)); slots[in].stackSize--; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index bd1561bc3..1cbf80cc2 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -1,30 +1,33 @@ package com.hbm.inventory.fluid.tank; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.lwjgl.opengl.GL11; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GuiInfoContainer; +import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEFluidPacket; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.resources.I18n; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; public class FluidTank { - - public static final List loadingHandlers = new ArrayList(); + + public static final List loadingHandlers = new ArrayList(); + public static final Set noDualUnload = new HashSet(); static { loadingHandlers.add(new FluidLoaderStandard()); @@ -35,7 +38,6 @@ public class FluidTank { FluidType type; int fluid; int maxFluid; - public int index = 0; int pressure = 0; public FluidTank(FluidType type, int maxFluid) { @@ -51,13 +53,6 @@ public class FluidTank { return this; } - @Deprecated // indices are no longer needed - public FluidTank(FluidType type, int maxFluid, int index) { - this.type = type; - this.maxFluid = maxFluid; - this.index = index; - } - public void setFill(int i) { fluid = i; } @@ -103,27 +98,16 @@ public class FluidTank { return 0; } - //Called on TE update - @Deprecated public void updateTank(TileEntity te) { - updateTank(te, 100); - } - @Deprecated public void updateTank(TileEntity te, int range) { - updateTank(te.xCoord, te.yCoord, te.zCoord, te.getWorldObj().provider.dimensionId, range); - } - @Deprecated public void updateTank(int x, int y, int z, int dim) { - updateTank(x, y, z, dim, 100); - } - @Deprecated public void updateTank(int x, int y, int z, int dim, int range) { - PacketDispatcher.wrapper.sendToAllAround(new TEFluidPacket(x, y, z, fluid, index, type), new TargetPoint(dim, x, y, z, range)); - } - //Fills tank from canisters public boolean loadTank(int in, int out, ItemStack[] slots) { if(slots[in] == null) return false; - - if(this.pressure != 0) return false; //for now, canisters can only be loaded from high-pressure tanks, not unloaded + + boolean isInfiniteBarrel = slots[in].getItem() == ModItems.fluid_barrel_infinite; + + if(!isInfiniteBarrel && pressure != 0) + return false; int prev = this.getFill(); @@ -201,10 +185,19 @@ public class FluidTank { * @param width * @param height */ - //TODO: add a directional parameter to allow tanks to grow horizontally - public void renderTank(int x, int y, double z, int width, int height) { + @SideOnly(Side.CLIENT) public void renderTank(int x, int y, double z, int width, int height) { + renderTank(x, y, z, width, height, 0); + } + + @SideOnly(Side.CLIENT) public void renderTank(int x, int y, double z, int width, int height, int orientation) { GL11.glEnable(GL11.GL_BLEND); + + int color = type.getTint(); + double r = ((color & 0xff0000) >> 16) / 255D; + double g = ((color & 0x00ff00) >> 8) / 255D; + double b = ((color & 0x0000ff) >> 0) / 255D; + GL11.glColor3d(r, g, b); y -= height; @@ -213,15 +206,32 @@ public class FluidTank { int i = (fluid * height) / maxFluid; double minX = x; - double maxX = x + width; - double minY = y + (height - i); - double maxY = y + height; + double maxX = x; + double minY = y; + double maxY = y; double minV = 1D - i / 16D; double maxV = 1D; double minU = 0D; double maxU = width / 16D; + if(orientation == 0) { + maxX += width; + minY += height - i; + maxY += height; + } + + if(orientation == 1) { + i = (fluid * width) / maxFluid; + maxX += i; + maxY += height; + + minV = 0D; + maxV = height / 16D; + minU = 1D; + maxU = 1D - i / 16D; + } + Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(minX, maxY, z, minU, maxV); @@ -230,14 +240,15 @@ public class FluidTank { tessellator.addVertexWithUV(minX, minY, z, minU, minV); tessellator.draw(); + GL11.glColor3d(1D, 1D, 1D); GL11.glDisable(GL11.GL_BLEND); } - public void renderTankInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height) { + @SideOnly(Side.CLIENT) public void renderTankInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height) { if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) { List list = new ArrayList(); - list.add(I18n.format(this.type.getUnlocalizedName())); + list.add(this.type.getLocalizedName()); list.add(fluid + "/" + maxFluid + "mB"); if(this.pressure != 0) { @@ -266,11 +277,24 @@ public class FluidTank { fluid = MathHelper.clamp_int(fluid, 0, max); - type = Fluids.fromName(nbt.getString(s + "_type")); //compat + type = Fluids.fromNameCompat(nbt.getString(s + "_type")); //compat if(type == Fluids.NONE) type = Fluids.fromID(nbt.getInteger(s + "_type")); this.pressure = nbt.getShort(s + "_p"); } + + public void serialize(ByteBuf buf) { + buf.writeInt(fluid); + buf.writeInt(maxFluid); + buf.writeInt(type.getID()); + buf.writeShort((short) pressure); + } + public void deserialize(ByteBuf buf) { + fluid = buf.readInt(); + maxFluid = buf.readInt(); + type = Fluids.fromID(buf.readInt()); + pressure = buf.readShort(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index f25e77c35..3e57ac963 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -42,13 +42,13 @@ public class FT_Coolable extends FluidTrait { @Override public void addInfoHidden(List info) { + info.add(EnumChatFormatting.RED + "Thermal capacity: " + heatEnergy + " TU per " + amountReq + "mB"); for(CoolingType type : CoolingType.values()) { double eff = getEfficiency(type); if(eff > 0) { - info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); + info.add(EnumChatFormatting.YELLOW + "[" + type.name + "] " + EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); } } } @@ -66,7 +66,7 @@ public class FT_Coolable extends FluidTrait { @Override public void serializeJSON(JsonWriter writer) throws IOException { - writer.name("coolsTo").value(this.coolsTo.getUnlocalizedName()); + writer.name("coolsTo").value(this.coolsTo.getName()); writer.name("amountReq").value(this.amountReq); writer.name("amountProd").value(this.amountProduced); writer.name("heatEnergy").value(this.heatEnergy); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index 310083cf3..f5c25c89e 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -42,13 +42,13 @@ public class FT_Heatable extends FluidTrait { @Override public void addInfoHidden(List info) { + info.add(EnumChatFormatting.RED + "Thermal capacity: " + this.getFirstStep().heatReq + " TU per " + this.getFirstStep().amountReq + "mB"); for(HeatingType type : HeatingType.values()) { double eff = getEfficiency(type); if(eff > 0) { - info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); + info.add(EnumChatFormatting.YELLOW + "[" + type.name + "] " + EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); } } } @@ -69,7 +69,9 @@ public class FT_Heatable extends FluidTrait { public static enum HeatingType { BOILER("Boilable"), - HEATEXCHANGER("Heatable"); + HEATEXCHANGER("Heatable"), + PWR("PWR Coolant"), + ICF("ICF Coolant"); public String name; @@ -85,7 +87,7 @@ public class FT_Heatable extends FluidTrait { for(HeatingStep step : steps) { writer.beginObject(); - writer.name("typeProduced").value(step.typeProduced.getUnlocalizedName()); + writer.name("typeProduced").value(step.typeProduced.getName()); writer.name("amountReq").value(step.amountReq); writer.name("amountProd").value(step.amountProduced); writer.name("heatReq").value(step.heatReq); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java new file mode 100644 index 000000000..26f254e54 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java @@ -0,0 +1,43 @@ +package com.hbm.inventory.fluid.trait; + +import java.io.IOException; +import java.util.List; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; + +import net.minecraft.util.EnumChatFormatting; + +public class FT_PWRModerator extends FluidTrait { + + private double multiplier; + public FT_PWRModerator(){} + public FT_PWRModerator(double mulitplier) { + this.multiplier = mulitplier; + } + + public double getMultiplier() { + return multiplier; + } + + @Override + public void addInfo(List info) { + info.add(EnumChatFormatting.BLUE + "[PWR Flux Multiplier]"); + } + + @Override + public void addInfoHidden(List info) { + int mult = (int) (multiplier * 100 - 100); + info.add(EnumChatFormatting.BLUE + "Core flux " + (mult >= 0 ? "+" : "") + mult + "%"); + } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("multiplier").value(multiplier); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.multiplier = obj.get("multiplier").getAsDouble(); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java new file mode 100644 index 000000000..123b2751b --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java @@ -0,0 +1,43 @@ +package com.hbm.inventory.fluid.trait; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import net.minecraft.util.EnumChatFormatting; + + +import java.io.IOException; +import java.util.List; + +public class FT_Pheromone extends FluidTrait{ + + public int type; + public FT_Pheromone() {} + + public FT_Pheromone(int type) { + this.type = type; + } + + public int getType() { + return type; + } + + @Override + public void addInfo(List info) { + + if(type == 1) { + info.add(EnumChatFormatting.AQUA + "[Glyphid Pheromones]"); + } else { + info.add(EnumChatFormatting.BLUE + "[Modified Pheromones]"); + } + } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("type").value(type); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.type = obj.get("type").getAsInt(); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java new file mode 100644 index 000000000..79103bc68 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Polluting.java @@ -0,0 +1,104 @@ +package com.hbm.inventory.fluid.trait; + +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.tank.FluidTank; + +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class FT_Polluting extends FluidTrait { + + //original draft had both of them inside a hashmap for the release type but honestly handling hash maps in hash maps adds more complexity than it removes + public HashMap releaseMap = new HashMap(); + public HashMap burnMap = new HashMap(); + + public FT_Polluting release(PollutionType type, float amount) { + releaseMap.put(type, amount); + return this; + } + + public FT_Polluting burn(PollutionType type, float amount) { + burnMap.put(type, amount); + return this; + } + + @Override + public void addInfo(List info) { + info.add(EnumChatFormatting.GOLD + "[Polluting]"); + } + + @Override + public void addInfoHidden(List info) { + + if(!this.releaseMap.isEmpty()) { + info.add(EnumChatFormatting.GREEN + "When spilled:"); + for(Entry entry : releaseMap.entrySet()) info.add(EnumChatFormatting.GREEN + " - " + entry.getValue() + " " + entry.getKey() + " per mB"); + } + + if(!this.burnMap.isEmpty()) { + info.add(EnumChatFormatting.RED + "When burned:"); + for(Entry entry : burnMap.entrySet()) info.add(EnumChatFormatting.RED + " - " + entry.getValue() + " " + entry.getKey() + " per mB"); + } + } + + @Override + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount, FluidReleaseType type) { + if(type == FluidReleaseType.SPILL) for(Entry entry : releaseMap.entrySet()) PollutionHandler.incrementPollution(world, x, y, z, entry.getKey(), entry.getValue()); + if(type == FluidReleaseType.BURN) for(Entry entry : burnMap.entrySet()) PollutionHandler.incrementPollution(world, x, y, z, entry.getKey(), entry.getValue()); + } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("release").beginObject(); + for(Entry entry : releaseMap.entrySet()) { + writer.name(entry.getKey().name()).value(entry.getValue()); + } + writer.endObject(); + writer.name("burn").beginObject(); + for(Entry entry : burnMap.entrySet()) { + writer.name(entry.getKey().name()).value(entry.getValue()); + } + writer.endObject(); + } + + @Override + public void deserializeJSON(JsonObject obj) { + if(obj.has("release")) { + JsonObject release = obj.get("release").getAsJsonObject(); + for(PollutionType type : PollutionType.values()) { + if(release.has(type.name())) { + releaseMap.put(type, release.get(type.name()).getAsFloat()); + } + } + } + if(obj.has("burn")) { + JsonObject release = obj.get("burn").getAsJsonObject(); + for(PollutionType type : PollutionType.values()) { + if(release.has(type.name())) { + burnMap.put(type, release.get(type.name()).getAsFloat()); + } + } + } + } + + public static void pollute(World world, int x, int y, int z, FluidType type, FluidReleaseType release, float mB) { + FT_Polluting trait = type.getTrait(FT_Polluting.class); + if(trait == null) return; + if(release == FluidReleaseType.VOID) return; + + HashMap map = release == FluidReleaseType.BURN ? trait.burnMap : trait.releaseMap; + + for(Entry entry : map.entrySet()) { + PollutionHandler.incrementPollution(world, x, y, z, entry.getKey(), entry.getValue() * mB); + } + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index 354da3175..fe814219e 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -3,6 +3,7 @@ package com.hbm.inventory.fluid.trait; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -100,7 +101,7 @@ public class FT_Toxin extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" : "") + ": " + EnumChatFormatting.YELLOW + String.format("%,.1f", amount * 20 / delay) + " DPS"); + info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" : "") + ": " + EnumChatFormatting.YELLOW + String.format(Locale.US, "%,.1f", amount * 20 / delay) + " DPS"); } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java index 516ef0e81..976dfedb2 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java @@ -26,7 +26,7 @@ public class FT_VentRadiation extends FluidTrait { } @Override - public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount, FluidReleaseType type) { ChunkRadiationManager.proxy.incrementRad(world, x, y, z, overflowAmount * radPerMB); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index ba385ad54..ae5809159 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -1,6 +1,7 @@ package com.hbm.inventory.fluid.trait; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import com.google.common.collect.HashBiMap; @@ -13,29 +14,39 @@ import net.minecraft.world.World; public abstract class FluidTrait { + public static List> traitList = new ArrayList(); public static HashBiMap> traitNameMap = HashBiMap.create(); static { - traitNameMap.put("combustible", FT_Combustible.class); // x - traitNameMap.put("coolable", FT_Coolable.class); // x - traitNameMap.put("corrosive", FT_Corrosive.class); // x - traitNameMap.put("flammable", FT_Flammable.class); // x - traitNameMap.put("heatable", FT_Heatable.class); // x - traitNameMap.put("poison", FT_Poison.class); // x - traitNameMap.put("toxin", FT_Toxin.class); // x - traitNameMap.put("ventradiation", FT_VentRadiation.class); // x - - traitNameMap.put("gaseous", FT_Gaseous.class); - traitNameMap.put("gaseous_art", FT_Gaseous_ART.class); - traitNameMap.put("liquid", FT_Liquid.class); - traitNameMap.put("viscous", FT_Viscous.class); - traitNameMap.put("plasma", FT_Plasma.class); - traitNameMap.put("amat", FT_Amat.class); - traitNameMap.put("leadcontainer", FT_LeadContainer.class); - traitNameMap.put("delicious", FT_Delicious.class); - traitNameMap.put("leaded", FT_Leaded.class); - traitNameMap.put("noid", FT_NoID.class); - traitNameMap.put("nocontainer", FT_NoContainer.class); + //complex traits with values + registerTrait("corrosive", FT_Corrosive.class); + registerTrait("flammable", FT_Flammable.class); + registerTrait("combustible", FT_Combustible.class); + registerTrait("polluting", FT_Polluting.class); + registerTrait("heatable", FT_Heatable.class); + registerTrait("coolable", FT_Coolable.class); + registerTrait("pwrmoderator", FT_PWRModerator.class); + registerTrait("poison", FT_Poison.class); + registerTrait("toxin", FT_Toxin.class); + registerTrait("ventradiation", FT_VentRadiation.class); + registerTrait("pheromone", FT_Pheromone.class); + //simple traits, "tags" + registerTrait("gaseous", FT_Gaseous.class); + registerTrait("gaseous_art", FT_Gaseous_ART.class); + registerTrait("liquid", FT_Liquid.class); + registerTrait("viscous", FT_Viscous.class); + registerTrait("plasma", FT_Plasma.class); + registerTrait("amat", FT_Amat.class); + registerTrait("leadcontainer", FT_LeadContainer.class); + registerTrait("delicious", FT_Delicious.class); + registerTrait("noid", FT_NoID.class); + registerTrait("nocontainer", FT_NoContainer.class); + registerTrait("unsiphonable", FT_Unsiphonable.class); + } + + private static void registerTrait(String name, Class clazz) { + traitNameMap.put(name, clazz); + traitList.add(clazz); } /** Important information that should always be displayed */ @@ -43,8 +54,14 @@ public abstract class FluidTrait { /* General names of simple traits which are displayed when holding shift */ public void addInfoHidden(List info) { } - public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { } + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount, FluidReleaseType type) { } public void serializeJSON(JsonWriter writer) throws IOException { } public void deserializeJSON(JsonObject obj) { } + + public static enum FluidReleaseType { + VOID, //if fluid is deleted entirely, shouldn't be used + BURN, //if fluid is burned or combusted + SPILL //if fluid is spilled via leakage or the container breaking + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index d282cea42..71cdc2a3e 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -49,16 +49,16 @@ public class FluidTraitSimple { info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]"); } } - + public static class FT_Delicious extends FluidTrait { @Override public void addInfoHidden(List info) { info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); } } - - public static class FT_Leaded extends FluidTrait { + + public static class FT_Unsiphonable extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Leaded Fuel]"); + info.add(EnumChatFormatting.BLUE + "[Ignored by siphon]"); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIAMSBase.java b/src/main/java/com/hbm/inventory/gui/GUIAMSBase.java deleted file mode 100644 index 08d91b392..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIAMSBase.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerAMSBase; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIAMSBase extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_ams_base.png"); - private TileEntityAMSBase base; - - public GUIAMSBase(InventoryPlayer invPlayer, TileEntityAMSBase tedf) { - super(new ContainerAMSBase(invPlayer, tedf)); - base = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - base.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 70 - 52, 16, 52); - base.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 70 - 52, 16, 52); - base.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 124 - 52, 16, 52); - base.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 124 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 124 - 104, 7, 104, base.power, TileEntityAMSBase.maxPower); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 44, guiTop + 124 - 106, 7, 106, new String[] { "Restriction Field:", base.field + "%" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 124 - 106, 7, 106, new String[] { "Efficiency:", base.efficiency + "%" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 124 - 106, 7, 106, new String[] { "Heat:", base.heat + "/" + TileEntityAMSBase.maxHeat }); - - if(!base.hasResonators()) { - String[] text = new String[] { "Error: Three satellite ID-chips linked", - "to xenium resonators are required", - "for this machine to work!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - } - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.base.hasCustomInventoryName() ? this.base.getInventoryName() : I18n.format(this.base.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - int i = (int)base.getPowerScaled(106); - drawTexturedModalRect(guiLeft + 116, guiTop + 124 - i, 206, 106 - i, 7, i); - - int j = base.getFieldScaled(106); - drawTexturedModalRect(guiLeft + 44, guiTop + 124 - j, 192, 106 - j, 7, j); - - int k = base.getEfficiencyScaled(106); - drawTexturedModalRect(guiLeft + 53, guiTop + 124 - k, 199, 106 - k, 7, k); - - int l = base.getHeatScaled(106); - drawTexturedModalRect(guiLeft + 125, guiTop + 124 - l, 213, 106 - l, 7, l); - - int m = base.mode; - if(m > 0) - drawTexturedModalRect(guiLeft + 80, guiTop + 108, 176, 32 + 16 * m, 16, 16); - - int n = base.warning; - if(n > 0) - drawTexturedModalRect(guiLeft + 80, guiTop + 18, 176, 32 + 16 * n, 16, 16); - - if(base.color > -1) { - GL11.glColor3ub((byte)((base.color & 0xFF0000) >> 16), (byte)((base.color & 0x00FF00) >> 8), (byte)((base.color & 0x0000FF) >> 0)); - drawTexturedModalRect(guiLeft + 61, guiTop + 44, 176, 160, 54, 54); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - drawTexturedModalRect(guiLeft + 61, guiTop + 44, 176, 106, 54, 54); - } - - if(!base.hasResonators()) - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 6); - - base.tanks[0].renderTank(guiLeft + 26, guiTop + 70, this.zLevel, 16, 52); - - base.tanks[1].renderTank(guiLeft + 134, guiTop + 70, this.zLevel, 16, 52); - - base.tanks[2].renderTank(guiLeft + 26, guiTop + 124, this.zLevel, 16, 52); - - base.tanks[3].renderTank(guiLeft + 134, guiTop + 124, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAMSEmitter.java b/src/main/java/com/hbm/inventory/gui/GUIAMSEmitter.java deleted file mode 100644 index a4bf1c205..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIAMSEmitter.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerAMSEmitter; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIAMSEmitter extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_ams_emitter.png"); - private TileEntityAMSEmitter emitter; - - public GUIAMSEmitter(InventoryPlayer invPlayer, TileEntityAMSEmitter tedf) { - super(new ContainerAMSEmitter(invPlayer, tedf)); - emitter = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - emitter.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 69 - 52, 16, 52, emitter.power, emitter.maxPower); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, new String[] { "Power:", emitter.efficiency + "%" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, new String[] { "Heat:", emitter.heat + "/" + emitter.maxHeat }); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.emitter.hasCustomInventoryName() ? this.emitter.getInventoryName() : I18n.format(this.emitter.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - int i = (int) emitter.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 134, guiTop + 69 - i, 192, 52 - i, 16, i); - - int j = emitter.getEfficiencyScaled(52); - drawTexturedModalRect(guiLeft + 152, guiTop + 69 - j, 208, 52 - j, 16, j); - - int k = emitter.getHeatScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - k, 176, 52 - k, 16, k); - - int m = emitter.warning; - if(m > 0) - drawTexturedModalRect(guiLeft + 80, guiTop + 17, 176, 36 + 16 * m, 16, 16); - - emitter.tank.renderTank(guiLeft + 26, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAMSLimiter.java b/src/main/java/com/hbm/inventory/gui/GUIAMSLimiter.java deleted file mode 100644 index e54a957d8..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIAMSLimiter.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerAMSLimiter; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIAMSLimiter extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_ams_limiter.png"); - private TileEntityAMSLimiter limiter; - - public GUIAMSLimiter(InventoryPlayer invPlayer, TileEntityAMSLimiter tedf) { - super(new ContainerAMSLimiter(invPlayer, tedf)); - limiter = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - limiter.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 69 - 52, 16, 52, limiter.power, limiter.maxPower); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, new String[] { "Efficiency:", limiter.efficiency + "%" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, new String[] { "Heat:", limiter.heat + "/" + limiter.maxHeat }); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.limiter.hasCustomInventoryName() ? this.limiter.getInventoryName() : I18n.format(this.limiter.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - int i = (int) limiter.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 134, guiTop + 69 - i, 192, 52 - i, 16, i); - - int j = limiter.getEfficiencyScaled(52); - drawTexturedModalRect(guiLeft + 152, guiTop + 69 - j, 208, 52 - j, 16, j); - - int k = limiter.getHeatScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - k, 176, 52 - k, 16, k); - - int l = limiter.mode; - if(l > 0) - drawTexturedModalRect(guiLeft + 98, guiTop + 17, 176, 84 + 16 * l, 16, 16); - - int m = limiter.warning; - if(m > 0) - drawTexturedModalRect(guiLeft + 80, guiTop + 17, 176, 36 + 16 * m, 16, 16); - - limiter.tank.renderTank(guiLeft + 26, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index 6f8ef4a10..9a59e9b29 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -7,6 +7,7 @@ import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -16,8 +17,8 @@ import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput; import com.hbm.lib.RefStrings; -import com.hbm.packet.AnvilCraftPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AnvilCraftPacket; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; @@ -44,6 +45,7 @@ public class GUIAnvil extends GuiContainer { int size; int selection; private GuiTextField search; + private InventoryPlayer playerInventory; public GUIAnvil(InventoryPlayer player, int tier) { super(new ContainerAnvil(player, tier)); @@ -51,7 +53,8 @@ public class GUIAnvil extends GuiContainer { this.tier = tier; this.xSize = 176; this.ySize = 222; - + + this.playerInventory = player; for(AnvilConstructionRecipe recipe : AnvilRecipes.getConstruction()) { if(recipe.isTierValid(this.tier)) this.originList.add(recipe); @@ -116,24 +119,6 @@ public class GUIAnvil extends GuiContainer { this.size = Math.max(0, (int)Math.ceil((this.recipes.size() - 10) / 2D)); } - /*@Override - protected void mouseMovedOrUp(int x, int y, int mode) { - super.mouseMovedOrUp(x, y, mode); - - if(mode == -1) return; // we don't care about mouseMove - for(Object obj : this.inventorySlots.inventorySlots) { - Slot slot = (Slot) obj; - - // if the mouse is over a slot, cancel - if(this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y)) { - return; - } - } - - if(mode == 0 && this.index > 0) this.index--; - if(mode == 1 && this.index < this.size) this.index++; - }*/ - @Override public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); @@ -243,7 +228,7 @@ public class GUIAnvil extends GuiContainer { if(this.selection >= 0) { AnvilConstructionRecipe recipe = recipes.get(this.selection); - List list = recipeToList(recipe); + List list = recipeToList(recipe, playerInventory); int longest = 0; for(String s : list) { @@ -274,25 +259,55 @@ public class GUIAnvil extends GuiContainer { * @param recipe * @return */ - public List recipeToList(AnvilConstructionRecipe recipe) { + public List recipeToList(AnvilConstructionRecipe recipe, InventoryPlayer inventory) { List list = new ArrayList(); - + list.add(EnumChatFormatting.YELLOW + "Inputs:"); - + for(AStack stack : recipe.input) { - if(stack instanceof ComparableStack) { - ItemStack input = ((ComparableStack) stack).toStack(); - list.add(">" + input.stackSize + "x " + input.getDisplayName()); - + if(stack instanceof ComparableStack) { + ComparableStack input = (ComparableStack) stack; + boolean hasItem = false; + int amount = 0; + for(int i = 0; i < inventory.mainInventory.length; i++) { + ItemStack stackItem = inventory.mainInventory[i]; + if(stackItem == null) { + continue; + } + if(input.matchesRecipe(stackItem, true)) { + hasItem = true; + amount += stackItem.stackSize; + } + } + if(hasItem && amount >= stack.stacksize) { + list.add(">" + input.stacksize + "x " + input.toStack().getDisplayName()); + } else { + list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + input.toStack().getDisplayName()); + } } else if(stack instanceof OreDictStack) { OreDictStack input = (OreDictStack) stack; ArrayList ores = OreDictionary.getOres(input.name); - + if(ores.size() > 0) { + boolean hasItem = false; + int amount = 0; + for(int i = 0; i < inventory.mainInventory.length; i++) { + ItemStack stackItem = inventory.mainInventory[i]; + if(stackItem == null) { + continue; + } + if(input.matchesRecipe(stackItem, true)) { + hasItem = true; + amount += stackItem.stackSize; + } + } ItemStack inStack = ores.get((int) (Math.abs(System.currentTimeMillis() / 1000) % ores.size())); - list.add(">" + input.stacksize + "x " + inStack.getDisplayName()); - + if(hasItem && amount >= stack.stacksize) { + list.add(">" + input.stacksize + "x " + inStack.getDisplayName()); + } else { + list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + inStack.getDisplayName()); + } } else { list.add("I AM ERROR"); } @@ -301,11 +316,11 @@ public class GUIAnvil extends GuiContainer { list.add(""); list.add(EnumChatFormatting.YELLOW + "Outputs:"); - + for(AnvilOutput stack : recipe.output) { - list.add(">" + stack.stack.stackSize + "x " + stack.stack.getDisplayName() + (stack.chance != 1F ? (" (" + (stack.chance * 100) + "%)" ) : "")); + list.add(">" + stack.stack.stackSize + "x " + stack.stack.getDisplayName() + (stack.chance != 1F ? (" (" + (stack.chance * 100) + "%)") : "")); } - + return list; } @@ -321,7 +336,7 @@ public class GUIAnvil extends GuiContainer { for(AStack stack : recipe.input) { if(stack instanceof ComparableStack) { ItemStack input = ((ComparableStack) stack).toStack(); - list.add(input.getDisplayName().toLowerCase(Locale.US)); + try { list.add(input.getDisplayName().toLowerCase(Locale.US)); } catch(Exception ex) { list.add("I AM ERROR"); } } else if(stack instanceof OreDictStack) { OreDictStack input = (OreDictStack) stack; @@ -329,9 +344,8 @@ public class GUIAnvil extends GuiContainer { if(ores.size() > 0) { for(ItemStack ore : ores) { - list.add(ore.getDisplayName().toLowerCase(Locale.US)); + try { list.add(ore.getDisplayName().toLowerCase(Locale.US)); } catch(Exception ex) { list.add("I AM ERROR"); } } - } } } @@ -395,6 +409,7 @@ public class GUIAnvil extends GuiContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); RenderHelper.enableGUIStandardItemLighting(); GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); AnvilConstructionRecipe recipe = recipes.get(i); ItemStack display = recipe.getDisplay(); @@ -406,7 +421,7 @@ public class GUIAnvil extends GuiContainer { itemRender.zLevel = 100.0F; itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), recipe.getDisplay(), guiLeft + 17 + 18 * (ind / 2), guiTop + 72 + 18 * (ind % 2)); itemRender.zLevel = 0.0F; - + GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glDisable(GL11.GL_LIGHTING); this.mc.getTextureManager().bindTexture(texture); diff --git a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java index e255586cf..250b9711f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java @@ -46,15 +46,16 @@ public class GUIArmorTable extends GuiInfoContainer { "armorMod.type.cladding", "armorMod.type.insert", "armorMod.type.special", + "armorMod.type.battery", "armorMod.insertHere" }; - for(int i = 0; i < 9; ++i) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS + 1; ++i) { Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) { - this.drawCreativeTabHoveringText((i < 8 ? EnumChatFormatting.LIGHT_PURPLE : EnumChatFormatting.YELLOW) + I18nUtil.resolveKey(unloc[i]), x, y); + this.drawCreativeTabHoveringText((i < ArmorModHandler.MOD_SLOTS ? EnumChatFormatting.LIGHT_PURPLE : EnumChatFormatting.YELLOW) + I18nUtil.resolveKey(unloc[i]), x, y); } } } @@ -75,7 +76,7 @@ public class GUIArmorTable extends GuiInfoContainer { this.drawTexturedModalRect(guiLeft + 22, guiTop, 0, 0, this.xSize - 22, this.ySize); this.drawTexturedModalRect(guiLeft, guiTop + 31, 176, 96, 22, 100); - ItemStack armor = this.inventorySlots.getSlot(8).getStack(); + ItemStack armor = this.inventorySlots.getSlot(ArmorModHandler.MOD_SLOTS).getStack(); if(armor != null) { @@ -89,7 +90,7 @@ public class GUIArmorTable extends GuiInfoContainer { this.drawTexturedModalRect(guiLeft + 41 + 22, guiTop + 60, 176, 52, 22, 22); } - for(int i = 0; i < 8; i++) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS; i++) { Slot slot = this.inventorySlots.getSlot(i); drawIndicator(i, slot.xDisplayPosition - 1, slot.yDisplayPosition - 1); } @@ -98,7 +99,7 @@ public class GUIArmorTable extends GuiInfoContainer { private void drawIndicator(int index, int x, int y) { ItemStack mod = this.inventorySlots.getSlot(index).getStack(); - ItemStack armor = this.inventorySlots.getSlot(8).getStack(); + ItemStack armor = this.inventorySlots.getSlot(ArmorModHandler.MOD_SLOTS).getStack(); if(mod == null) return; diff --git a/src/main/java/com/hbm/inventory/gui/GUIAshpit.java b/src/main/java/com/hbm/inventory/gui/GUIAshpit.java new file mode 100644 index 000000000..af5a768e1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIAshpit.java @@ -0,0 +1,41 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerAshpit; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIAshpit extends GuiInfoContainer { + + private TileEntityAshpit firebox; + private final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_ashpit.png"); + + public GUIAshpit(InventoryPlayer invPlayer, TileEntityAshpit tedf) { + super(new ContainerAshpit(invPlayer, tedf)); + firebox = tedf; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.firebox.hasCustomInventoryName() ? this.firebox.getInventoryName() : I18n.format(this.firebox.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java b/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java index abacfe9d6..49ed13445 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java @@ -4,6 +4,7 @@ import java.util.Arrays; import org.lwjgl.opengl.GL11; +import com.hbm.interfaces.NotableComments; import com.hbm.inventory.container.ContainerAutocrafter; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; @@ -15,6 +16,7 @@ import net.minecraft.inventory.Slot; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; +@NotableComments public class GUIAutocrafter extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_autocrafter.png"); @@ -38,14 +40,14 @@ public class GUIAutocrafter extends GuiInfoContainer { for(int i = 0; i < 9; ++i) { Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); - if(this.isMouseOverSlot(slot, x, y) && diFurnace.modes[i] != null) { + if(this.isMouseOverSlot(slot, x, y) && diFurnace.matcher.modes[i] != null) { String label = EnumChatFormatting.YELLOW + ""; - switch(diFurnace.modes[i]) { + switch(diFurnace.matcher.modes[i]) { case "exact": label += "Item and meta match"; break; case "wildcard": label += "Item matches"; break; - default: label += "Ore dict key matches: " + diFurnace.modes[i]; break; + default: label += "Ore dict key matches: " + diFurnace.matcher.modes[i]; break; } this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); diff --git a/src/main/java/com/hbm/inventory/gui/GUIBarrel.java b/src/main/java/com/hbm/inventory/gui/GUIBarrel.java index e739e81d6..bba645724 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBarrel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBarrel.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerBarrel; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.storage.TileEntityBarrel; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIBook.java b/src/main/java/com/hbm/inventory/gui/GUIBook.java index 298aba1bf..8952cef3d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBook.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBook.java @@ -16,6 +16,8 @@ public class GUIBook extends GuiContainer { public GUIBook(InventoryPlayer player) { super(new ContainerBook(player)); + this.xSize = 176; + this.ySize = 166; } protected void drawGuiContainerForegroundLayer(int mX, int mY) { @@ -25,7 +27,6 @@ public class GUIBook extends GuiContainer { } protected void drawGuiContainerBackgroundLayer(float inter, int mX, int mY) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(texture); int left = (this.width - this.xSize) / 2; diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index 5c5effbf5..dc628427a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -5,13 +5,11 @@ import java.util.List; import org.lwjgl.opengl.GL11; -import com.hbm.items.special.ItemBookLore.*; import com.hbm.lib.RefStrings; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java index fe85c7fe6..d75127785 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java +++ b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCombustionEngine; @@ -7,8 +9,8 @@ import com.hbm.inventory.fluid.trait.FT_Combustible; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineCombustionEngine; import com.hbm.util.EnumUtil; @@ -59,7 +61,7 @@ public class GUICombustionEngine extends GuiInfoContainer { power = setting * 0.2 * trait.getCombustionEnergy() / 1_000D * piston.eff[trait.getGrade().ordinal()]; } String c = EnumChatFormatting.YELLOW + ""; - drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 50, 35, 14, x, y, c + String.format("%,d", (int)(power)) + " HE/t", c + String.format("%,d", (int)(power * 20)) + " HE/s"); + drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 50, 35, 14, x, y, c + String.format(Locale.US, "%,d", (int)(power)) + " HE/t", c + String.format(Locale.US, "%,d", (int)(power * 20)) + " HE/s"); } drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 13, 35, 15, x, y, "Ignition"); diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index 66e72609b..9e2d4aa51 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCompressor; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java b/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java index e8ac99bda..89502cc38 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java +++ b/src/main/java/com/hbm/inventory/gui/GUICoreEmitter.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCoreEmitter; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityCoreEmitter; import com.hbm.util.BobMathUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUICoreStabilizer.java b/src/main/java/com/hbm/inventory/gui/GUICoreStabilizer.java index 99c6fb2be..30ec1aa1d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICoreStabilizer.java +++ b/src/main/java/com/hbm/inventory/gui/GUICoreStabilizer.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCoreStabilizer; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityCoreStabilizer; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java new file mode 100644 index 000000000..6a066a684 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java @@ -0,0 +1,151 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCounterTorch; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.network.TileEntityRadioTorchCounter; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUICounterTorch extends GuiInfoContainer { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_rtty_counter.png"); + + protected TileEntityRadioTorchCounter counter; + protected GuiTextField[] frequency; + + public GUICounterTorch(InventoryPlayer invPlayer, TileEntityRadioTorchCounter counter) { + super(new ContainerCounterTorch(invPlayer, counter)); + this.counter = counter; + + this.xSize = 218; + this.ySize = 238; + } + + @Override + public void initGui() { + super.initGui(); + + Keyboard.enableRepeatEvents(true); + + this.frequency = new GuiTextField[3]; + + for(int i = 0; i < 3; i++) { + + this.frequency[i] = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 21 + 44 * i, 86, 14); + this.frequency[i].setTextColor(0x00ff00); + this.frequency[i].setDisabledTextColour(0x00ff00); + this.frequency[i].setEnableBackgroundDrawing(false); + this.frequency[i].setMaxStringLength(10); + this.frequency[i].setText(counter.channel[i] == null ? "" : counter.channel[i]); + } + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(guiLeft + 193 <= x && guiLeft + 193 + 18 > x && guiTop + 8 < y && guiTop + 8 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { counter.polling ? "Polling" : "State Change" }), x, y); + } + if(guiLeft + 193 <= x && guiLeft + 193 + 18 > x && guiTop + 30 < y && guiTop + 30 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { "Save Settings" }), x, y); + } + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 3; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && counter.matcher.modes[i] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(counter.matcher.modes[i]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + counter.matcher.modes[i]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + for(int j = 0; j < 3; j++) this.frequency[j].mouseClicked(x, y, i); + + if(guiLeft + 193 <= x && guiLeft + 193 + 18 > x && guiTop + 8 < y && guiTop + 8 + 18 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("polling", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, counter.xCoord, counter.yCoord, counter.zCoord)); + } + + if(guiLeft + 193 <= x && guiLeft + 193 + 18 > x && guiTop + 30 < y && guiTop + 30 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + + for(int j = 0; j < 3; j++) data.setString("c" + j, this.frequency[j].getText()); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, counter.xCoord, counter.yCoord, counter.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int x, int y) { + String name = I18nUtil.resolveKey(this.counter.getInventoryName()); + this.fontRendererObj.drawString(name, 184 / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 16, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(counter.polling) { + drawTexturedModalRect(guiLeft + 193, guiTop + 8, 218, 0, 18, 18); + } + + for(int i = 0; i < 3; i++) this.frequency[i].drawTextBox(); + } + + @Override + protected void keyTyped(char c, int i) { + + for(int j = 0; j < 3; j++) if(this.frequency[j].textboxKeyTyped(c, i)) return; + + super.keyTyped(c, i); + } + + @Override + public void onGuiClosed() { + super.onGuiClosed(); + Keyboard.enableRepeatEvents(false); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneBoxer.java b/src/main/java/com/hbm/inventory/gui/GUICraneBoxer.java index e2faf5fa4..80dc88555 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneBoxer.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneBoxer.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneBoxer; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneBoxer; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java index e6937c829..7e8f74ab0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneExtractor; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneExtractor; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneGrabber.java b/src/main/java/com/hbm/inventory/gui/GUICraneGrabber.java index ef1465205..6bff412fc 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneGrabber.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneGrabber.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneGrabber; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneGrabber; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java index 28813d9ae..a4890ae00 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java @@ -4,11 +4,15 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneInserter; import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneInserter; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUICraneInserter extends GuiInfoContainer { @@ -23,11 +27,23 @@ public class GUICraneInserter extends GuiInfoContainer { this.xSize = 176; this.ySize = 185; } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 34 < y && guiTop + 34 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("destroyer", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, inserter.xCoord, inserter.yCoord, inserter.zCoord)); + } + } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.inserter.hasCustomInventoryName() ? this.inserter.getInventoryName() : I18n.format(this.inserter.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 18, 5, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @@ -36,5 +52,8 @@ public class GUICraneInserter extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(inserter.destroyer) + drawTexturedModalRect(guiLeft + 151, guiTop + 34, 176, 0, 18, 18); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneRouter.java b/src/main/java/com/hbm/inventory/gui/GUICraneRouter.java index f378237df..77798355b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneRouter.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneRouter.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneRouter; import com.hbm.lib.RefStrings; import com.hbm.module.ModulePatternMatcher; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityCraneRouter; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateTemplate.java b/src/main/java/com/hbm/inventory/gui/GUICrateTemplate.java new file mode 100644 index 000000000..9968d461c --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICrateTemplate.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCrateTemplate; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUICrateTemplate extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_template.png"); + private TileEntityCrateTemplate diFurnace; + + public GUICrateTemplate(InventoryPlayer invPlayer, TileEntityCrateTemplate tedf) { + super(new ContainerCrateTemplate(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUICrucible.java b/src/main/java/com/hbm/inventory/gui/GUICrucible.java index f235275b5..a41ef4288 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrucible.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrucible.java @@ -3,6 +3,7 @@ package com.hbm.inventory.gui; import java.awt.Color; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -42,8 +43,8 @@ public class GUICrucible extends GuiInfoContainer { drawStackInfo(crucible.wasteStack, x, y, 16, 17); drawStackInfo(crucible.recipeStack, x, y, 61, 17); - this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 81, 34, 7, x, y, new String[] { String.format("%,d", crucible.progress) + " / " + String.format("%,d", crucible.processTime) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 90, 34, 7, x, y, new String[] { String.format("%,d", crucible.heat) + " / " + String.format("%,d", crucible.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 81, 34, 7, x, y, new String[] { String.format(Locale.US, "%,d", crucible.progress) + " / " + String.format(Locale.US, "%,d", crucible.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 90, 34, 7, x, y, new String[] { String.format(Locale.US, "%,d", crucible.heat) + " / " + String.format(Locale.US, "%,d", crucible.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java b/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java new file mode 100644 index 000000000..4e98d7c4a --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java @@ -0,0 +1,75 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneCrate; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.network.TileEntityDroneCrate; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneCrate extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_drone.png"); + private TileEntityDroneCrate crate; + + public GUIDroneCrate(InventoryPlayer invPlayer, TileEntityDroneCrate crate) { + super(new ContainerDroneCrate(invPlayer, crate)); + this.crate = crate; + + this.xSize = 176; + this.ySize = 185; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + crate.tank.renderTankInfo(this, x, y, guiLeft + 125, guiTop + 17, 16, 34); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + String op = null; + + // Toggle type + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 16 < y && guiTop + 16 + 18 >= y) op = "type"; + // Toggle mode + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 52 < y && guiTop + 52 + 18 >= y) op = "mode"; + + if(op != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean(op, true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, crate.xCoord, crate.yCoord, crate.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.crate.hasCustomInventoryName() ? this.crate.getInventoryName() : I18n.format(this.crate.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + drawTexturedModalRect(guiLeft + 151, guiTop + 16, 194, crate.itemType ? 0 : 18, 18, 18); + drawTexturedModalRect(guiLeft + 151, guiTop + 52, 176, crate.sendingMode ? 18 : 0, 18, 18); + + crate.tank.renderTank(guiLeft + 125, guiTop + 51, this.zLevel, 16, 34); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneDock.java b/src/main/java/com/hbm/inventory/gui/GUIDroneDock.java new file mode 100644 index 000000000..006b8a092 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneDock.java @@ -0,0 +1,39 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneDock; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneDock; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneDock extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_drone_dock.png"); + private TileEntityDroneDock diFurnace; + + public GUIDroneDock(InventoryPlayer invPlayer, TileEntityDroneDock tedf) { + super(new ContainerDroneDock(invPlayer, tedf)); + diFurnace = tedf; + this.xSize = 176; + this.ySize = 185; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java b/src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java new file mode 100644 index 000000000..0547e969d --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneProvider; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneProvider; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneProvider extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_drone_provider.png"); + private TileEntityDroneProvider diFurnace; + + public GUIDroneProvider(InventoryPlayer invPlayer, TileEntityDroneProvider tedf) { + super(new ContainerDroneProvider(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java b/src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java new file mode 100644 index 000000000..4fec012e5 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java @@ -0,0 +1,69 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneRequester; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneRequester; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneRequester extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_drone_requester.png"); + private TileEntityDroneRequester diFurnace; + + public GUIDroneRequester(InventoryPlayer invPlayer, TileEntityDroneRequester tedf) { + super(new ContainerDroneRequester(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 9; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && diFurnace.matcher.modes[i] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(diFurnace.matcher.modes[i]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + diFurnace.matcher.modes[i]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java new file mode 100644 index 000000000..32a547130 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java @@ -0,0 +1,80 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerElectrolyserFluid; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.TileEntityElectrolyser; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIElectrolyserFluid extends GuiInfoContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_electrolyser_fluid.png"); + private TileEntityElectrolyser electrolyser; + + public GUIElectrolyserFluid(InventoryPlayer invPlayer, TileEntityElectrolyser electrolyser) { + super(new ContainerElectrolyserFluid(invPlayer, electrolyser)); + this.electrolyser = electrolyser; + + this.xSize = 210; + this.ySize = 204; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + electrolyser.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 42, guiTop + 18, 16, 52); + electrolyser.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 96, guiTop + 18, 16, 52); + electrolyser.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 186, guiTop + 18, 16, 89, electrolyser.power, electrolyser.maxPower); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 8 <= x && guiLeft + 8 + 54 > x && guiTop + 82 < y && guiTop + 82 + 12 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("sgm", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, electrolyser.xCoord, electrolyser.yCoord, electrolyser.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.electrolyser.hasCustomInventoryName() ? this.electrolyser.getInventoryName() : I18n.format(this.electrolyser.getInventoryName()); + + this.fontRendererObj.drawString(name, (this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2) - 16, 7, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 94, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = (int) (electrolyser.power * 89 / electrolyser.maxPower); + drawTexturedModalRect(guiLeft + 186, guiTop + 107 - p, 210, 89 - p, 16, p); + + if(electrolyser.power >= electrolyser.usageFluid) + drawTexturedModalRect(guiLeft + 190, guiTop + 4, 226, 40, 9, 12); + + int e = electrolyser.progressFluid * 41 / electrolyser.processFluidTime; + drawTexturedModalRect(guiLeft + 62, guiTop + 26, 226, 0, 12, e); + + electrolyser.tanks[0].renderTank(guiLeft + 42, guiTop + 70, this.zLevel, 16, 52); + electrolyser.tanks[1].renderTank(guiLeft + 96, guiTop + 70, this.zLevel, 16, 52); + electrolyser.tanks[2].renderTank(guiLeft + 116, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java new file mode 100644 index 000000000..670acabb0 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java @@ -0,0 +1,110 @@ +package com.hbm.inventory.gui; + +import java.awt.Color; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerElectrolyserMetal; +import com.hbm.inventory.material.Mats; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.TileEntityElectrolyser; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIElectrolyserMetal extends GuiInfoContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_electrolyser_metal.png"); + private TileEntityElectrolyser electrolyser; + + public GUIElectrolyserMetal(InventoryPlayer invPlayer, TileEntityElectrolyser electrolyser) { + super(new ContainerElectrolyserMetal(invPlayer, electrolyser)); + this.electrolyser = electrolyser; + + this.xSize = 210; + this.ySize = 204; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + electrolyser.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 36, guiTop + 18, 16, 52); + + if(electrolyser.leftStack != null) { + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 58, guiTop + 18, 34, 42, mouseX, mouseY, EnumChatFormatting.YELLOW + I18nUtil.resolveKey(electrolyser.leftStack.material.getUnlocalizedName()) + ": " + Mats.formatAmount(electrolyser.leftStack.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + } else { + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 58, guiTop + 18, 34, 42, mouseX, mouseY, EnumChatFormatting.RED + "Empty"); + } + + if(electrolyser.rightStack != null) { + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 18, 34, 42, mouseX, mouseY, EnumChatFormatting.YELLOW + I18nUtil.resolveKey(electrolyser.rightStack.material.getUnlocalizedName()) + ": " + Mats.formatAmount(electrolyser.rightStack.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + } else { + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 18, 34, 42, mouseX, mouseY, EnumChatFormatting.RED + "Empty"); + } + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 186, guiTop + 18, 16, 89, electrolyser.power, electrolyser.maxPower); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 8 <= x && guiLeft + 8 + 54 > x && guiTop + 82 < y && guiTop + 82 + 12 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("sgf", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, electrolyser.xCoord, electrolyser.yCoord, electrolyser.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.electrolyser.hasCustomInventoryName() ? this.electrolyser.getInventoryName() : I18n.format(this.electrolyser.getInventoryName()); + + this.fontRendererObj.drawString(name, (this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2) - 16, 7, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 94, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(electrolyser.leftStack != null) { + int p = electrolyser.leftStack.amount * 42 / electrolyser.maxMaterial; + Color color = new Color(electrolyser.leftStack.material.moltenColor); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + 58, guiTop + 60 - p, 210, 131 - p, 34, p); + } + + if(electrolyser.rightStack != null) { + int p = electrolyser.rightStack.amount * 42 / electrolyser.maxMaterial; + Color color = new Color(electrolyser.rightStack.material.moltenColor); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + 96, guiTop + 60 - p, 210, 131 - p, 34, p); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + int p = (int) (electrolyser.power * 89 / electrolyser.maxPower); + drawTexturedModalRect(guiLeft + 186, guiTop + 107 - p, 210, 89 - p, 16, p); + + if(electrolyser.power >= electrolyser.usageOre) + drawTexturedModalRect(guiLeft + 190, guiTop + 4, 226, 25, 9, 12); + + int o = electrolyser.progressOre * 26 / electrolyser.processOreTime; + drawTexturedModalRect(guiLeft + 7, guiTop + 71 - o, 226, 25 - o, 22, o); + + electrolyser.tanks[3].renderTank(guiLeft + 36, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFEL.java b/src/main/java/com/hbm/inventory/gui/GUIFEL.java index 890cb3299..443c01cac 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFEL.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFEL.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFEL; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityFEL; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIFWatzCore.java b/src/main/java/com/hbm/inventory/gui/GUIFWatzCore.java deleted file mode 100644 index 5f9fd0bd4..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIFWatzCore.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerFWatzCore; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityFWatzCore; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIFWatzCore extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_fwatz_multiblock.png"); - private TileEntityFWatzCore diFurnace; - - public GUIFWatzCore(InventoryPlayer invPlayer, TileEntityFWatzCore tedf) { - super(new ContainerFWatzCore(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 88 - 70, 16, 70); - diFurnace.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 88 - 70, 16, 70); - diFurnace.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 88 - 70, 16, 70); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 106 - 88, 16, 88, diFurnace.power, diFurnace.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - int k = (int)diFurnace.getPowerScaled(88); - drawTexturedModalRect(guiLeft + 26, guiTop + 106 - k, 192, 88 - k, 16, k); - - if(diFurnace.isRunning()) - drawTexturedModalRect(guiLeft + 64, guiTop + 29, 176, 88, 48, 48); - - int m = diFurnace.getSingularityType(); - drawTexturedModalRect(guiLeft + 98, guiTop + 109, 240, 4 * m, 16, 4); - - diFurnace.tanks[0].renderTank(guiLeft + 8, guiTop + 88, this.zLevel, 16, 70); - diFurnace.tanks[1].renderTank(guiLeft + 134, guiTop + 88, this.zLevel, 16, 70); - diFurnace.tanks[2].renderTank(guiLeft + 152, guiTop + 88, this.zLevel, 16, 70); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFirebox.java b/src/main/java/com/hbm/inventory/gui/GUIFirebox.java index 6091d74d2..35fe1207e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFirebox.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFirebox.java @@ -1,6 +1,7 @@ package com.hbm.inventory.gui; import java.util.List; +import java.util.Locale; import org.lwjgl.opengl.GL11; @@ -48,7 +49,7 @@ public class GUIFirebox extends GuiInfoContainer { } } - this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format("%,d", firebox.heatEnergy) + " / " + String.format("%,d", firebox.getMaxHeat()) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format(Locale.US, "%,d", firebox.heatEnergy) + " / " + String.format(Locale.US, "%,d", firebox.getMaxHeat()) + "TU" }); this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 36, 71, 7, x, y, new String[] { firebox.burnHeat + "TU/t", (firebox.burnTime / 20) + "s" }); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIForceField.java b/src/main/java/com/hbm/inventory/gui/GUIForceField.java index 506541074..e18aca9f1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIForceField.java +++ b/src/main/java/com/hbm/inventory/gui/GUIForceField.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerForceField; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityForceField; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIFunnel.java b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java new file mode 100644 index 000000000..80fd75371 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java @@ -0,0 +1,66 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerFunnel; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.TileEntityMachineFunnel; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIFunnel extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_funnel.png"); + private TileEntityMachineFunnel funnel; + + public GUIFunnel(InventoryPlayer invPlayer, TileEntityMachineFunnel tedf) { + super(new ContainerFunnel(invPlayer, tedf)); + funnel = tedf; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 159, guiTop + 73, 10, 10, mouseX, mouseY, "Mode: " + (funnel.mode == funnel.MODE_3x3 ? "3x3 only" : funnel.mode == funnel.MODE_2x2 ? "2x2 only" : "3x3 then 2x2")); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(this.checkClick(x, y, 159, 73, 10, 10)) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, funnel.xCoord, funnel.yCoord, funnel.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.funnel.hasCustomInventoryName() ? this.funnel.getInventoryName() : I18n.format(this.funnel.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + drawTexturedModalRect(guiLeft + 159, guiTop + 73, 176, funnel.mode * 10, 10, 10); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceBrick.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceBrick.java new file mode 100644 index 000000000..31e360e39 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceBrick.java @@ -0,0 +1,44 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerFurnaceBrick; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityFurnaceBrick; + +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIFurnaceBrick extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_furnace_brick.png"); + private TileEntityFurnaceBrick furnace; + + public GUIFurnaceBrick(InventoryPlayer invPlayer, TileEntityFurnaceBrick tile) { + super(new ContainerFurnaceBrick(invPlayer, tile)); + this.furnace = tile; + } + + protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_) { + String name = this.furnace.hasCustomInventoryName() ? this.furnace.getInventoryName() : I18n.format(this.furnace.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 0xffffff); + } + + 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); + this.mc.getTextureManager().bindTexture(texture); + this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, this.xSize, this.ySize); + + if(furnace.isInvalid() && furnace.getWorldObj().getTileEntity(furnace.xCoord, furnace.yCoord, furnace.zCoord) instanceof TileEntityFurnaceBrick) + furnace = (TileEntityFurnaceBrick) furnace.getWorldObj().getTileEntity(furnace.xCoord, furnace.yCoord, furnace.zCoord); + + if(this.furnace.burnTime > 0) { + int b = furnace.burnTime * 13 / furnace.maxBurnTime; + this.drawTexturedModalRect(guiLeft + 62, guiTop + 54 + 12 - b, 176, 12 - b, 14, b + 1); + int p = this.furnace.progress * 24 / 200; + this.drawTexturedModalRect(guiLeft + 85, guiTop + 34, 176, 14, p + 1, 16); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java index 118c83f60..6fa6362ea 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFurnaceCombo; @@ -30,8 +32,8 @@ public class GUIFurnaceCombo extends GuiInfoContainer { furnace.tank.renderTankInfo(this, x, y, guiLeft + 118, guiTop + 18, 16, 52); - this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 36, 39, 7, x, y, new String[] { String.format("%,d", furnace.progress) + " / " + String.format("%,d", furnace.processTime) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 45, 39, 7, x, y, new String[] { String.format("%,d", furnace.heat) + " / " + String.format("%,d", furnace.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 36, 39, 7, x, y, new String[] { String.format(Locale.US, "%,d", furnace.progress) + " / " + String.format(Locale.US, "%,d", furnace.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 45, 39, 7, x, y, new String[] { String.format(Locale.US, "%,d", furnace.heat) + " / " + String.format(Locale.US, "%,d", furnace.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java index a7dcb6eb8..dfdddf87e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFurnaceSteel; @@ -29,11 +31,11 @@ public class GUIFurnaceSteel extends GuiInfoContainer { super.drawScreen(x, y, interp); for(int i = 0; i < 3; i++) { - this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 17 + 18 * i, 70, 7, x, y, new String[] { String.format("%,d", furnace.progress[i]) + " / " + String.format("%,d", furnace.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 17 + 18 * i, 70, 7, x, y, new String[] { String.format(Locale.US, "%,d", furnace.progress[i]) + " / " + String.format(Locale.US, "%,d", furnace.processTime) + "TU" }); this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 26 + 18 * i, 70, 7, x, y, new String[] { "Bonus: " + furnace.bonus[i] + "%" }); } - this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 18, 9, 50, x, y, new String[] { String.format("%,d", furnace.heat) + " / " + String.format("%,d", furnace.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 18, 9, 50, x, y, new String[] { String.format(Locale.US, "%,d", furnace.heat) + " / " + String.format(Locale.US, "%,d", furnace.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIHadron.java b/src/main/java/com/hbm/inventory/gui/GUIHadron.java index f932ba665..92d97a872 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHadron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHadron.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerHadron; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityHadron; import com.hbm.tileentity.machine.TileEntityHadron.EnumHadronState; import com.hbm.util.I18nUtil; @@ -40,8 +40,10 @@ public class GUIHadron extends GuiInfoContainer { this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 108, 70, 16, hadron.power, hadron.maxPower); - if(hadron.hopperMode) + if(hadron.ioMode == 1) this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, I18nUtil.resolveKeyArray("hadron.hopper1")); + else if(hadron.ioMode == 2) + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, I18nUtil.resolveKeyArray("hadron.hopper2")); else this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, I18nUtil.resolveKeyArray("hadron.hopper0")); @@ -54,7 +56,7 @@ public class GUIHadron extends GuiInfoContainer { stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hadron.stats")); stats.add((hadron.stat_success ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + I18n.format("hadron." + this.hadron.stat_state.name().toLowerCase(Locale.US))); if(this.hadron.state.showCoord) stats.add(EnumChatFormatting.RED + I18nUtil.resolveKey("hadron.stats_coord", hadron.stat_x, hadron.stat_y, hadron.stat_z)); - stats.add(EnumChatFormatting.GRAY + I18nUtil.resolveKey("hadron.stats_momentum", String.format("%,d", hadron.stat_charge))); + stats.add(EnumChatFormatting.GRAY + I18nUtil.resolveKey("hadron.stats_momentum", String.format(Locale.US, "%,d", hadron.stat_charge))); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 41, guiTop + 92, 25, 11, mouseX, mouseY, stats.toArray(new String[0])); this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 4, guiTop + 36, 16, 16, guiLeft + 4, guiTop + 36 + 16, new String[] {"Initial particle momentum: 750"}); @@ -105,9 +107,9 @@ public class GUIHadron extends GuiInfoContainer { if(hadron.analysisOnly) drawTexturedModalRect(guiLeft + 142, guiTop + 107, 206, 18, 18, 18); - - if(hadron.hopperMode) - drawTexturedModalRect(guiLeft + 142, guiTop + 89, 206, 36, 18, 18); + + if(hadron.ioMode == hadron.MODE_HOPPER) drawTexturedModalRect(guiLeft + 142, guiTop + 89, 206, 36, 18, 18); + if(hadron.ioMode == hadron.MODE_SINGLE) drawTexturedModalRect(guiLeft + 142, guiTop + 89, 224, 36, 18, 18); if(hadron.state == EnumHadronState.SUCCESS) { drawTexturedModalRect(guiLeft + 73, guiTop + 29, 176, 0, 30, 30); diff --git a/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java b/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java index 6cfbc92bd..d4eefef9a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHeaterHeatex.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerHeaterHeatex; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityHeaterHeatex; import net.minecraft.client.Minecraft; @@ -39,11 +39,11 @@ public class GUIHeaterHeatex extends GuiInfoContainer { super.initGui(); Keyboard.enableRepeatEvents(true); - this.fieldCycles = new GuiTextField(this.fontRendererObj, guiLeft + 74, guiTop + 31, 28, 10); + this.fieldCycles = new GuiTextField(this.fontRendererObj, guiLeft + 73, guiTop + 31, 30, 10); initText(this.fieldCycles); this.fieldCycles.setText(String.valueOf(heater.amountToCool)); - this.fieldDelay = new GuiTextField(this.fontRendererObj, guiLeft + 74, guiTop + 49, 28, 10); + this.fieldDelay = new GuiTextField(this.fontRendererObj, guiLeft + 73, guiTop + 49, 30, 10); initText(this.fieldDelay); this.fieldDelay.setText(String.valueOf(heater.tickDelay)); } @@ -52,7 +52,7 @@ public class GUIHeaterHeatex extends GuiInfoContainer { field.setTextColor(0x00ff00); field.setDisabledTextColour(0x00ff00); field.setEnableBackgroundDrawing(false); - field.setMaxStringLength(4); + field.setMaxStringLength(5); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIICF.java b/src/main/java/com/hbm/inventory/gui/GUIICF.java new file mode 100644 index 000000000..0effa9b4d --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIICF.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.gui; + +import com.hbm.inventory.container.ContainerICF; +import com.hbm.lib.RefStrings; +import com.hbm.render.util.GaugeUtil; +import com.hbm.tileentity.machine.TileEntityICF; +import com.hbm.util.BobMathUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIICF extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_icf.png"); + private TileEntityICF icf; + + public GUIICF(InventoryPlayer invPlayer, TileEntityICF icf) { + super(new ContainerICF(invPlayer, icf)); + this.icf = icf; + + this.xSize = 248; + this.ySize = 222; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + icf.tanks[0].renderTankInfo(this, x, y, guiLeft + 44, guiTop + 18, 16, 70); + icf.tanks[1].renderTankInfo(this, x, y, guiLeft + 188, guiTop + 18, 16, 70); + icf.tanks[2].renderTankInfo(this, x, y, guiLeft + 224, guiTop + 18, 16, 70); + + this.drawCustomInfoStat(x, y, guiLeft + 8, guiTop + 18, 16, 70, x, y, icf.maxLaser <= 0 ? "OFFLINE" : (BobMathUtil.getShortNumber(icf.laser) + "TU/t - " + (icf.laser * 1000 / icf.maxLaser) / 10D + "%")); + this.drawCustomInfoStat(x, y, guiLeft + 187, guiTop + 89, 18, 18, x, y, BobMathUtil.getShortNumber(icf.heat) + " / " + BobMathUtil.getShortNumber(icf.maxHeat) + "TU"); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.icf.hasCustomInventoryName() ? this.icf.getInventoryName() : I18n.format(this.icf.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 44, this.ySize - 93, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, 114); + drawTexturedModalRect(guiLeft + 36, guiTop + 122, 36, 122, 176, 108); + + if(icf.maxLaser > 0) { + int p = (int) (icf.laser * 70 / icf.maxLaser); + drawTexturedModalRect(guiLeft + 8, guiTop + 88 - p, 212, 192 - p, 16, p); + } + + GaugeUtil.drawSmoothGauge(guiLeft + 196, guiTop + 98, this.zLevel, (double) icf.heat / (double) icf.maxHeat, 5, 2, 1, 0xFF00AF); + + icf.tanks[0].renderTank(guiLeft + 44, guiTop + 88, this.zLevel, 16, 70); + icf.tanks[1].renderTank(guiLeft + 188, guiTop + 88, this.zLevel, 16, 70); + icf.tanks[2].renderTank(guiLeft + 224, guiTop + 88, this.zLevel, 16, 70); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIICFPress.java b/src/main/java/com/hbm/inventory/gui/GUIICFPress.java new file mode 100644 index 000000000..6fc6aaa72 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIICFPress.java @@ -0,0 +1,61 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerICFPress; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityICFPress; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIICFPress extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_icf_press.png"); + private TileEntityICFPress press; + + public GUIICFPress(InventoryPlayer invPlayer, TileEntityICFPress tedf) { + super(new ContainerICFPress(invPlayer, tedf)); + press = tedf; + + this.xSize = 176; + this.ySize = 179; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + press.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 44, guiTop + 18, 16, 52); + press.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 52); + + if(this.isMouseOverSlot(this.inventorySlots.getSlot(4), mouseX, mouseY) && !this.inventorySlots.getSlot(4).getHasStack()) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.YELLOW + "Item input: Top/Bottom"}), mouseX, mouseY); + if(this.isMouseOverSlot(this.inventorySlots.getSlot(5), mouseX, mouseY) && !this.inventorySlots.getSlot(5).getHasStack()) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.YELLOW + "Item input: Sides"}), mouseX, mouseY); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.press.hasCustomInventoryName() ? this.press.getInventoryName() : I18n.format(this.press.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int m = press.muon * 52 / press.maxMuon; + drawTexturedModalRect(guiLeft + 28, guiTop + 70 - m, 176, 52 - m, 4, m); + + press.tanks[0].renderTank(guiLeft + 44, guiTop + 70, this.zLevel, 16, 52); + press.tanks[1].renderTank(guiLeft + 152, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIITER.java b/src/main/java/com/hbm/inventory/gui/GUIITER.java index 4e9b1d85c..27f78ff5d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIITER.java +++ b/src/main/java/com/hbm/inventory/gui/GUIITER.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerITER; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityITER; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java new file mode 100644 index 000000000..ebcbe6365 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java @@ -0,0 +1,151 @@ +package com.hbm.inventory.gui; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.container.ContainerLaunchPadLarge; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.lib.RefStrings; +import com.hbm.render.item.ItemRenderMissileGeneric; +import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUILaunchPadLarge extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_launch_pad_large.png"); + private TileEntityLaunchPadBase launchpad; + + public GUILaunchPadLarge(InventoryPlayer invPlayer, TileEntityLaunchPadBase tedf) { + super(new ContainerLaunchPadLarge(invPlayer, tedf)); + launchpad = tedf; + + this.xSize = 176; + this.ySize = 236; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 88 - 52, 16, 52, launchpad.power, launchpad.maxPower); + launchpad.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 88 - 52, 16, 52); + launchpad.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 88 - 52, 16, 52); + + if(this.mc.thePlayer.inventory.getItemStack() == null && this.isMouseOverSlot(this.inventorySlots.getSlot(1), mouseX, mouseY) && !this.inventorySlots.getSlot(1).getHasStack()) { + ItemStack[] list = new ItemStack[] { new ItemStack(ModItems.designator), new ItemStack(ModItems.designator_range), new ItemStack(ModItems.designator_manual) }; + List lines = new ArrayList(); + ItemStack selected = list[(int) ((System.currentTimeMillis() % (1000 * list.length)) / 1000)]; + selected.stackSize = 0; + lines.add(list); + + lines.add(new Object[] {I18nUtil.resolveKey(selected.getDisplayName())}); + this.drawStackText(lines, mouseX, mouseY, this.fontRendererObj); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.launchpad.hasCustomInventoryName() ? this.launchpad.getInventoryName() : I18n.format(this.launchpad.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int fuel = launchpad.getFuelState(); + int oxidizer = launchpad.getOxidizerState(); + + if(fuel == 1) drawTexturedModalRect(guiLeft + 130, guiTop + 23, 192, 0, 6, 8); + if(fuel == -1) drawTexturedModalRect(guiLeft + 130, guiTop + 23, 198, 0, 6, 8); + if(oxidizer == 1) drawTexturedModalRect(guiLeft + 148, guiTop + 23, 192, 0, 6, 8); + if(oxidizer == -1) drawTexturedModalRect(guiLeft + 148, guiTop + 23, 198, 0, 6, 8); + if(launchpad.isMissileValid()) { + drawTexturedModalRect(guiLeft + 112, guiTop + 23, launchpad.power >= 75_000 ? 192 : 198, 0, 6, 8); + } + + int power = (int) (launchpad.power * 52 / launchpad.maxPower); + drawTexturedModalRect(guiLeft + 107, guiTop + 88 - power, 176, 52 - power, 16, power); + launchpad.tanks[0].renderTank(guiLeft + 125, guiTop + 88,this.zLevel, 16, 52); + launchpad.tanks[1].renderTank(guiLeft + 143, guiTop + 88,this.zLevel, 16, 52); + + if(launchpad.slots[0] != null) { + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(launchpad.slots[0]).makeSingular()); + if(renderer != null) { + GL11.glPushMatrix(); + + GL11.glTranslatef(guiLeft + 70, guiTop + 120, 100); + + double scale = 1D; + + if(launchpad.slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) launchpad.slots[0].getItem(); + switch(missile.formFactor) { + case ABM: scale = 1.45D; break; + case MICRO: scale = 2.5D; break; + case V2: scale = 1.75D; break; + case STRONG: scale = 1.375D; break; + case HUGE: scale = 0.925D; break; + case ATLAS: scale = 0.875D; break; + case OTHER: break; + } + if(missile == ModItems.missile_stealth) scale = 1.125D; + } + + GL11.glRotatef(90, 0, 1, 0); + GL11.glScaled(scale, scale, scale); + GL11.glScalef(-8, -8, -8); + + GL11.glPushMatrix(); + GL11.glRotatef(75, 0.0F, 1.0F, 0.0F); + RenderHelper.enableStandardItemLighting(); + GL11.glPopMatrix(); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + renderer.accept(Minecraft.getMinecraft().getTextureManager()); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + } + + GL11.glPushMatrix(); + RenderHelper.disableStandardItemLighting(); + GL11.glTranslated(guiLeft + 34, guiTop + 107, 0); + String text = ""; + int color = 0xffffff; + if(launchpad.state == launchpad.STATE_MISSING) { + GL11.glScaled(0.5, 0.5, 1); + text = "Not ready"; + color = 0xff0000; + } + if(launchpad.state == launchpad.STATE_LOADING) { + GL11.glScaled(0.6, 0.6, 1); + text = "Loading..."; + color = 0xff8000; + } + if(launchpad.state == launchpad.STATE_READY) { + GL11.glScaled(0.8, 0.8, 1); + text = "Ready"; + color = 0x00ff000; + } + this.fontRendererObj.drawString(text, -this.fontRendererObj.getStringWidth(text) / 2, -this.fontRendererObj.FONT_HEIGHT / 2, color); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java new file mode 100644 index 000000000..d3bf1c87f --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java @@ -0,0 +1,115 @@ +package com.hbm.inventory.gui; + +import java.util.Random; +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.container.ContainerLaunchPadRusted; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.render.item.ItemRenderMissileGeneric; +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUILaunchPadRusted extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_launch_pad_rusted.png"); + private TileEntityLaunchPadRusted launchpad; + + public GUILaunchPadRusted(InventoryPlayer invPlayer, TileEntityLaunchPadRusted tedf) { + super(new ContainerLaunchPadRusted(invPlayer, tedf)); + launchpad = tedf; + + this.xSize = 176; + this.ySize = 236; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + drawCustomInfoStat(mouseX, mouseY, guiLeft + 26, guiTop + 36, 16, 16, mouseX, mouseY, EnumChatFormatting.YELLOW + "Release Missile", "Missile is locked in lauch position,", "releasing may cause damage to the missile.", "Damaged missile can not be put back", "into launching position."); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 26 <= x && guiLeft + 26 + 16 > x && guiTop + 36 < y && guiTop + 36 + 16 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("release", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, launchpad.xCoord, launchpad.yCoord, launchpad.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.launchpad.hasCustomInventoryName() ? this.launchpad.getInventoryName() : I18n.format(this.launchpad.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + boolean hasCodes = launchpad.slots[1] != null && launchpad.slots[1].getItem() == ModItems.launch_code; + boolean hasKey = launchpad.slots[2] != null && launchpad.slots[2].getItem() == ModItems.launch_key; + + if(hasCodes) drawTexturedModalRect(guiLeft + 121, guiTop + 32, 192, 0, 6, 8); + if(hasKey) drawTexturedModalRect(guiLeft + 139, guiTop + 32, 192, 0, 6, 8); + + if(hasCodes && hasKey && launchpad.missileLoaded) { + + Random rand = new Random(launchpad.xCoord * 131_071 + launchpad.zCoord); + int launchCodes = rand.nextInt(100_000_000); + + for(int i = 0; i < 8; i++) { + int magnitude = (int) Math.pow(10, i); + int digit = (launchCodes % (magnitude * 10)) / magnitude; + drawTexturedModalRect(guiLeft + 109 + 6 * i, guiTop + 85, 192 + 6 * digit, 8, 6, 8); + } + } + + if(launchpad.missileLoaded) { + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(ModItems.missile_doomsday_rusted).makeSingular()); + if(renderer != null) { + GL11.glPushMatrix(); + + GL11.glTranslatef(guiLeft + 70, guiTop + 120, 100); + + double scale = 0.875D; + GL11.glRotatef(90, 0, 1, 0); + GL11.glScaled(scale, scale, scale); + GL11.glScalef(-8, -8, -8); + + GL11.glPushMatrix(); + GL11.glRotatef(75, 0.0F, 1.0F, 0.0F); + RenderHelper.enableStandardItemLighting(); + GL11.glPopMatrix(); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + renderer.accept(Minecraft.getMinecraft().getTextureManager()); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadTier1.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadTier1.java deleted file mode 100644 index e57b35868..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadTier1.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.hbm.inventory.gui; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerLaunchPadTier1; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.bomb.TileEntityLaunchPad; - -public class GUILaunchPadTier1 extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_launch_pad.png"); - private TileEntityLaunchPad diFurnace; - - public GUILaunchPadTier1(InventoryPlayer invPlayer, TileEntityLaunchPad tedf) { - super(new ContainerLaunchPadTier1(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 53, 160, 16, diFurnace.power, diFurnace.maxPower); - - String[] text = new String[] { "First Slot:", - " -Missile (no custom ones!)", - " -Carrier Rocket" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "Second Slot:", - " -Target designator for missiles", - " -Satellite payload for the carrier rocket" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - int j1 = (int)diFurnace.getPowerScaled(160); - drawTexturedModalRect(guiLeft + 8, guiTop + 53, 8, 166, j1, 16); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUILemegeton.java b/src/main/java/com/hbm/inventory/gui/GUILemegeton.java new file mode 100644 index 000000000..bc6ec5961 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUILemegeton.java @@ -0,0 +1,40 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerLemegeton; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUILemegeton extends GuiContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_lemegeton.png"); + + public GUILemegeton(InventoryPlayer player) { + super(new ContainerLemegeton(player)); + this.xSize = 176; + this.ySize = 166; + } + + protected void drawGuiContainerForegroundLayer(int mX, int mY) { + + Minecraft.getMinecraft().standardGalacticFontRenderer.drawString("Material Upgrade Conversion", 28, 6, 4210752); + Minecraft.getMinecraft().standardGalacticFontRenderer.drawString("Standard Inventory", 8, this.ySize - 96 + 2, 4210752); + } + + protected void drawGuiContainerBackgroundLayer(float inter, int mX, int mY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(texture); + int left = (this.width - this.xSize) / 2; + int top = (this.height - this.ySize) / 2; + + this.drawTexturedModalRect(left, top, 0, 0, this.xSize, this.ySize); + + if(this.inventorySlots.getSlot(0).getHasStack()) + this.drawTexturedModalRect(left + 7, top + 22, 0, 166, 162, 42); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java new file mode 100644 index 000000000..94c5499c9 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java @@ -0,0 +1,305 @@ +package com.hbm.inventory.gui; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.container.ContainerMachineAmmoPress; +import com.hbm.inventory.recipes.AmmoPressRecipes; +import com.hbm.inventory.recipes.AmmoPressRecipes.AmmoPressRecipe; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.TileEntityMachineAmmoPress; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineAmmoPress extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_ammo_press.png"); + private TileEntityMachineAmmoPress press; + + private List recipes = new ArrayList(); + int index; + int size; + int selection; + private GuiTextField search; + + public GUIMachineAmmoPress(InventoryPlayer invPlayer, TileEntityMachineAmmoPress press) { + super(new ContainerMachineAmmoPress(invPlayer, press)); + this.press = press; + + this.xSize = 176; + this.ySize = 200; + + this.selection = press.selectedRecipe; + + regenerateRecipes(); + } + + @Override + public void initGui() { + + super.initGui(); + + Keyboard.enableRepeatEvents(true); + this.search = new GuiTextField(this.fontRendererObj, guiLeft + 10, guiTop + 75, 66, 12); + this.search.setTextColor(-1); + this.search.setDisabledTextColour(-1); + this.search.setEnableBackgroundDrawing(false); + this.search.setMaxStringLength(25); + } + + private void regenerateRecipes() { + + this.recipes.clear(); + this.recipes.addAll(AmmoPressRecipes.recipes); + + resetPaging(); + } + + private void search(String search) { + + search = search.toLowerCase(Locale.US); + + this.recipes.clear(); + + if(search.isEmpty()) { + this.recipes.addAll(AmmoPressRecipes.recipes); + + } else { + for(AmmoPressRecipe recipe : AmmoPressRecipes.recipes) { + if(recipe.output.getDisplayName().toLowerCase(Locale.US).contains(search)) { + this.recipes.add(recipe); + } + } + } + + resetPaging(); + } + + private void resetPaging() { + + this.index = 0; + this.size = Math.max(0, (int)Math.ceil((this.recipes.size() - 12) / 3D)); + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + for(Object obj : this.inventorySlots.inventorySlots) { + Slot slot = (Slot) obj; + + // if the mouse is over a slot, cancel + if(this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y) && slot.getHasStack()) { + return; + } + } + + if(guiLeft <= x && guiLeft + xSize > x && guiTop < y && guiTop + ySize >= y && getSlotAtPosition(x, y) == null) { + if(!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && Mouse.next()) { + int scroll = Mouse.getEventDWheel(); + + if(scroll > 0 && this.index > 0) this.index--; + if(scroll < 0 && this.index < this.size) this.index++; + } + } + + for(int i = index * 3; i < index * 3 + 12; i++) { + + if(i >= this.recipes.size()) + break; + + int ind = i - index * 3; + + int ix = 16 + 18 * (ind / 3); + int iy = 17 + 18 * (ind % 3); + if(guiLeft + ix <= x && guiLeft + ix + 18 > x && guiTop + iy < y && guiTop + iy + 18 >= y) { + AmmoPressRecipe recipe = this.recipes.get(i); + this.renderToolTip(recipe.output, x, y); + } + } + } + + @Override + protected void mouseClicked(int x, int y, int k) { + super.mouseClicked(x, y, k); + + this.search.mouseClicked(x, y, k); + + if(guiLeft + 7 <= x && guiLeft + 7 + 9 > x && guiTop + 17 < y && guiTop + 17 + 54 >= y) { + click(); + if(this.index > 0) this.index--; + return; + } + + if(guiLeft + 88 <= x && guiLeft + 88 + 9 > x && guiTop + 17 < y && guiTop + 17 + 54 >= y) { + click(); + if(this.index < this.size) this.index++; + return; + } + + for(int i = index * 3; i < index * 3 + 12; i++) { + + if(i >= this.recipes.size()) + break; + + int ind = i - index * 3; + + int ix = 16 + 18 * (ind / 3); + int iy = 17 + 18 * (ind % 3); + if(guiLeft + ix <= x && guiLeft + ix + 18 > x && guiTop + iy < y && guiTop + iy + 18 >= y) { + + int newSelection = AmmoPressRecipes.recipes.indexOf(this.recipes.get(i)); + + if(this.selection != newSelection) + this.selection = newSelection; + else + this.selection = -1; + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("selection", this.selection); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, press.xCoord, press.yCoord, press.zCoord)); + click(); + return; + } + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.press.hasCustomInventoryName() ? this.press.getInventoryName() : I18n.format(this.press.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(guiLeft + 7 <= x && guiLeft + 7 + 9 > x && guiTop + 17 < y && guiTop + 17 + 54 >= y) { + drawTexturedModalRect(guiLeft + 7, guiTop + 17, 176, 0, 9, 54); + } + if(guiLeft + 88 <= x && guiLeft + 88 + 9 > x && guiTop + 17 < y && guiTop + 17 + 54 >= y) { + drawTexturedModalRect(guiLeft + 88, guiTop + 17, 185, 0, 9, 54); + } + + if(this.search.isFocused()) { + drawTexturedModalRect(guiLeft + 8, guiTop + 72, 176, 54, 70, 16); + } + + for(int i = index * 3; i < index * 3 + 12; i++) { + if(i >= recipes.size()) + break; + + int ind = i - index * 3; + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + AmmoPressRecipe recipe = recipes.get(i); + + FontRenderer font = null; + if(recipe.output != null) font = recipe.output.getItem().getFontRenderer(recipe.output); + if(font == null) font = fontRendererObj; + + itemRender.zLevel = 100.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), recipe.output, guiLeft + 17 + 18 * (ind / 3), guiTop + 18 + 18 * (ind % 3)); + + itemRender.zLevel = 0.0F; + + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_LIGHTING); + this.mc.getTextureManager().bindTexture(texture); + this.zLevel = 300.0F; + + if(selection == AmmoPressRecipes.recipes.indexOf(this.recipes.get(i))) + this.drawTexturedModalRect(guiLeft + 16 + 18 * (ind / 3), guiTop + 17 + 18 * (ind % 3), 194, 0, 18, 18); + else + this.drawTexturedModalRect(guiLeft + 16 + 18 * (ind / 3), guiTop + 17 + 18 * (ind % 3), 212, 0, 18, 18); + + GL11.glPushMatrix(); + GL11.glTranslated(guiLeft + 17 + 18 * (ind / 3) + 8, guiTop + 18 + 18 * (ind % 3) + 8, 0); + GL11.glScaled(0.5, 0.5, 1); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), recipe.output, 0, 0, recipe.output.stackSize + ""); + GL11.glPopMatrix(); + } + + if(selection >= 0 && selection < AmmoPressRecipes.recipes.size()) { + AmmoPressRecipe recipe = AmmoPressRecipes.recipes.get(selection); + + for(int i = 0; i < 9; i++) { + AStack stack = recipe.input[i]; + if(stack == null) continue; + if(press.slots[i] != null) continue; + List inputs = stack.extractForNEI(); + ItemStack input = inputs.size() <= 0 ? new ItemStack(ModItems.nothing) : inputs.get((int) (Math.abs(System.currentTimeMillis() / 1000) % inputs.size())); + + RenderHelper.enableGUIStandardItemLighting(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + FontRenderer font = input.getItem().getFontRenderer(input); + if(font == null) font = fontRendererObj; + + itemRender.zLevel = 10.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), input, guiLeft + 116 + 18 * (i % 3), guiTop + 18 + 18 * (i / 3)); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), input, guiLeft + 116 + 18 * (i % 3), guiTop + 18 + 18 * (i / 3), input.stackSize > 1 ? (input.stackSize + "") : null); + itemRender.zLevel = 0.0F; + + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_LIGHTING); + + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + this.zLevel = 300.0F; + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1F, 1F, 1F, 0.5F); + GL11.glEnable(GL11.GL_BLEND); + drawTexturedModalRect(guiLeft + 116 + 18 * (i % 3), guiTop + 18+ 18 * (i / 3), 116 + 18 * (i % 3), 18+ 18 * (i / 3), 18, 18); + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glDisable(GL11.GL_BLEND); + } + } + + RenderHelper.disableStandardItemLighting(); + GL11.glColor4f(1F, 1F, 1F, 1F); + this.search.drawTextBox(); + } + + @Override + protected void keyTyped(char c, int key) { + + if(this.search.textboxKeyTyped(c, key)) { + search(this.search.getText()); + } else { + super.keyTyped(c, key); + } + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java b/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java new file mode 100644 index 000000000..7e50956a2 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java @@ -0,0 +1,126 @@ +package com.hbm.inventory.gui; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineArcFurnaceLarge; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineArcFurnaceLarge extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_arc_furnace.png"); + private TileEntityMachineArcFurnaceLarge arc; + + public GUIMachineArcFurnaceLarge(InventoryPlayer invPlayer, TileEntityMachineArcFurnaceLarge arc) { + super(new ContainerMachineArcFurnaceLarge(invPlayer, arc)); + this.arc = arc; + + this.xSize = 176; + this.ySize = 240; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + drawStackInfo(arc.liquids, x, y, 152, 36); + + this.drawElectricityInfo(this, x, y, guiLeft + 8, guiTop + 36, 7, 70, arc.getPower(), arc.getMaxPower()); + } + + @Override + protected void mouseClicked(int x, int y, int k) { + super.mouseClicked(x, y, k); + + if(this.checkClick(x, y, 151, 17, 18, 18)) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("liquid", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, arc.xCoord, arc.yCoord, arc.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.arc.hasCustomInventoryName() ? this.arc.getInventoryName() : I18n.format(this.arc.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(arc.liquidMode) drawTexturedModalRect(guiLeft + 151, guiTop + 17, 190, 18, 18, 18); + if(arc.isProgressing) drawTexturedModalRect(guiLeft + 7, guiTop + 17, 190, 0, 18, 18); + + int p = (int) (arc.power * 70 / arc.maxPower); + drawTexturedModalRect(guiLeft + 8, guiTop + 106 - p, 176, 70 - p, 7, p); + + int o = (int) (arc.progress * 70); + drawTexturedModalRect(guiLeft + 17, guiTop + 106 - o, 183, 70 - o, 7, o); + + drawStack(arc.liquids, arc.maxLiquid, 152, 106); + } + + protected void drawStackInfo(List stack, int mouseX, int mouseY, int x, int y) { + List list = new ArrayList(); + if(stack.isEmpty()) list.add(EnumChatFormatting.RED + "Empty"); + for(MaterialStack sta : stack) list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey(sta.material.getUnlocalizedName()) + ": " + Mats.formatAmount(sta.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + x, guiTop + y, 16, 70, mouseX, mouseY, list); + } + + protected void drawStack(List stack, int capacity, int x, int y) { + + if(stack.isEmpty()) return; + + int lastHeight = 0; + int lastQuant = 0; + + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + + for(MaterialStack sta : stack) { + + int targetHeight = (lastQuant + sta.amount) * 70 / capacity; + + if(lastHeight == targetHeight) continue; //skip draw calls that would be 0 pixels high + + int hex = sta.material.moltenColor; + //hex = 0xC18336; + Color color = new Color(hex); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + x, guiTop + y - targetHeight, 208, 70 - targetHeight, 16, targetHeight - lastHeight); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 0.3F); + drawTexturedModalRect(guiLeft + x, guiTop + y - targetHeight, 208, 70 - targetHeight, 16, targetHeight - lastHeight); + GL11.glDisable(GL11.GL_BLEND); + + lastQuant += sta.amount; + lastHeight = targetHeight; + } + + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor3f(255, 255, 255); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java new file mode 100644 index 000000000..a008911e0 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineArcWelder; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineArcWelder extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_arc_welder.png"); + private TileEntityMachineArcWelder welder; + + public GUIMachineArcWelder(InventoryPlayer playerInv, TileEntityMachineArcWelder tile) { + super(new ContainerMachineArcWelder(playerInv, tile)); + + this.welder = tile; + this.xSize = 176; + this.ySize = 204; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + welder.tank.renderTankInfo(this, x, y, guiLeft + 35, guiTop + 63, 34, 16); + this.drawElectricityInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52, welder.getPower(), welder.getMaxPower()); + + this.drawCustomInfoStat(x, y, guiLeft + 78, guiTop + 67, 8, 8, guiLeft + 78, guiTop + 67, this.getUpgradeInfo(welder)); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.welder.hasCustomInventoryName() ? this.welder.getInventoryName() : I18n.format(this.welder.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 18, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = (int) (welder.power * 52 / Math.max(welder.maxPower, 1)); + drawTexturedModalRect(guiLeft + 152, guiTop + 70 - p, 176, 52 - p, 16, p); + + int i = welder.progress * 33 / Math.max(welder.processTime, 1); + drawTexturedModalRect(guiLeft + 72, guiTop + 37, 192, 0, i, 14); + + if(welder.power >= welder.consumption) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); + } + + this.drawInfoPanel(guiLeft + 78, guiTop + 67, 8, 8, 8); + welder.tank.renderTank(guiLeft + 35, guiTop + 79, this.zLevel, 34, 16, 1); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java index 145174fad..795d8882b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java @@ -30,7 +30,7 @@ public class GUIMachineAssembler extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 70 - 52, 16, 52, assembler.power, assembler.maxPower); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 70 - 52, 16, 52, assembler.power, assembler.getMaxPower()); if(assembler.getStackInSlot(4) == null || assembler.getStackInSlot(4).getItem()!= ModItems.assembly_template) { @@ -41,12 +41,7 @@ public class GUIMachineAssembler extends GuiInfoContainer { String[] templateText = I18nUtil.resolveKeyArray("desc.gui.template"); this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, templateText); - String[] upgradeText = new String[3]; - upgradeText[0] = I18nUtil.resolveKey("desc.gui.upgrade"); - upgradeText[1] = I18nUtil.resolveKey("desc.gui.upgrade.speed"); - upgradeText[2] = I18nUtil.resolveKey("desc.gui.upgrade.power"); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 141, guiTop + 40, 8, 8, guiLeft + 225, guiTop + 40 + 16 + 8, upgradeText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 141, guiTop + 40, 8, 8, guiLeft + 225, guiTop + 40 + 16 + 8, this.getUpgradeInfo(assembler)); } @Override @@ -63,14 +58,15 @@ public class GUIMachineAssembler extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = (int)assembler.getPowerScaled(52); + int i = (int) (assembler.power * 52 / assembler.getMaxPower()); drawTexturedModalRect(guiLeft + 116, guiTop + 70 - i, 176, 52 - i, 16, i); - int j = assembler.getProgressScaled(83); - drawTexturedModalRect(guiLeft + 45, guiTop + 82, 2, 222, j, 32); + if(assembler.isProgressing) { + int j = assembler.progress[0] * 83 / assembler.maxProgress[0]; + drawTexturedModalRect(guiLeft + 45, guiTop + 82, 2, 222, j, 32); + } if(assembler.getStackInSlot(4) == null || assembler.getStackInSlot(4).getItem()!= ModItems.assembly_template) { - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 6); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java index 5b2e00658..2fa8c4bbe 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java @@ -14,8 +14,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; @@ -33,6 +33,7 @@ public class GUIMachineBattery extends GuiInfoContainer { this.ySize = 166; } + @SuppressWarnings("incomplete-switch") @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); @@ -110,6 +111,6 @@ public class GUIMachineBattery extends GuiInfoContainer { int j = battery.redHigh; drawTexturedModalRect(guiLeft + 133, guiTop + 52, 176, 52 + j * 18, 18, 18); - drawTexturedModalRect(guiLeft + 152, guiTop + 35, 194, 52 + battery.priority.ordinal() * 16, 16, 16); + drawTexturedModalRect(guiLeft + 152, guiTop + 35, 194, 52 + battery.priority.ordinal() * 16 - 16, 16, 16); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBoiler.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBoiler.java deleted file mode 100644 index 9c434f5e2..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBoiler.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineBoiler; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineBoiler; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineBoiler extends GuiInfoContainer { - - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_boiler.png"); - private TileEntityMachineBoiler diFurnace; - - public GUIMachineBoiler(InventoryPlayer invPlayer, TileEntityMachineBoiler tedf) { - super(new ContainerMachineBoiler(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 168; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - TileEntityMachineBoiler dud = diFurnace; - - if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineBoiler) - dud = (TileEntityMachineBoiler) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); - - dud.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 16, 52); - dud.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 69 - 52, 16, 52); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 102, guiTop + 16, 8, 18, mouseX, mouseY, new String[] { String.valueOf((int)((double)dud.heat / 100D)) + "°C"}); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 97, guiTop + 34, 18, 18, mouseX, mouseY, new String[] { String.valueOf((int)(Math.ceil((double)dud.burnTime / 20D))) + "s"}); - - String[] text = new String[] { "Heat produced:", - " 0.5°C/t", - " or 10°C/s", - "Heat consumed:", - " 0.15°C/t", - " or 3.0°C/s (base)", - " 0.25°C/t", - " or 5.0°C/s (once boiling point is reached)", - " 0.4°C/t", - " or 8.0°C/s (for every subsequent multiple of boiling point)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "Boiling rate:", - " Base rate * amount of full multiples", - " of boiling points reached" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(dud.tanks[1].getTankType().name().equals(Fluids.NONE.name())) { - - String[] text2 = new String[] { "Error: Liquid can not be boiled!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - //"It just works" -Todd Howard - TileEntityMachineBoiler dud = diFurnace; - - if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineBoiler) - dud = (TileEntityMachineBoiler) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); - - if(dud.burnTime > 0) - drawTexturedModalRect(guiLeft + 97, guiTop + 34, 176, 0, 18, 18); - - int j = (int)dud.getHeatScaled(17); - drawTexturedModalRect(guiLeft + 103, guiTop + 33 - j, 194, 16 - j, 6, j); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - - if(dud.tanks[1].getTankType().name().equals(Fluids.NONE.name())) { - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - } - - dud.tanks[0].renderTank(guiLeft + 62, guiTop + 69, this.zLevel, 16, 52); - dud.tanks[1].renderTank(guiLeft + 134, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBoilerElectric.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBoilerElectric.java deleted file mode 100644 index b4fa16e56..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBoilerElectric.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineBoilerElectric; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineBoilerElectric extends GuiInfoContainer { - - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_boiler_electric.png"); - private TileEntityMachineBoilerElectric diFurnace; - - public GUIMachineBoilerElectric(InventoryPlayer invPlayer, TileEntityMachineBoilerElectric tedf) { - super(new ContainerMachineBoilerElectric(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 168; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 16, 52); - diFurnace.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 69 - 52, 16, 52); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 102, guiTop + 16, 8, 18, mouseX, mouseY, new String[] { String.valueOf((int)((double)diFurnace.heat / 100D)) + "°C"}); - - String[] text = new String[] { "Heat produced:", - " 1.5°C/t", - " or 30°C/s", - "Heat consumed:", - " 0.15°C/t", - " or 3.0°C/s (base)", - " 0.25°C/t", - " or 5.0°C/t (once boiling point is reached)", - " 0.4°C/t", - " or 8.0°C/t (for every subsequent multiple of boiling point)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "Boiling rate:", - " Base rate * amount of full multiples", - " of boiling points reached" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(diFurnace.tanks[1].getTankType().name().equals(Fluids.NONE.name())) { - - String[] text2 = new String[] { "Error: Liquid can not be boiled!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); - } - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 123, guiTop + 69 - 34, 7, 34, diFurnace.power, diFurnace.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineBoilerElectric) - diFurnace = (TileEntityMachineBoilerElectric) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); - - if(diFurnace.power > 0) - drawTexturedModalRect(guiLeft + 97, guiTop + 34, 176, 0, 18, 18); - - int j = (int)diFurnace.getHeatScaled(17); - drawTexturedModalRect(guiLeft + 103, guiTop + 33 - j, 194, 16 - j, 6, j); - - int i = (int)diFurnace.getPowerScaled(34); - drawTexturedModalRect(guiLeft + 123, guiTop + 69 - i, 200, 34 - i, 7, i); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - - if(diFurnace.tanks[1].getTankType().name().equals(Fluids.NONE.name())) { - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - } - - diFurnace.tanks[0].renderTank(guiLeft + 62, guiTop + 69, this.zLevel, 16, 52); - diFurnace.tanks[1].renderTank(guiLeft + 134, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCMBFactory.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCMBFactory.java deleted file mode 100644 index 1391cf2c4..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCMBFactory.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineCMBFactory; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineCMBFactory; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineCMBFactory extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_cmb_manufactory.png"); - private TileEntityMachineCMBFactory diFurnace; - - public GUIMachineCMBFactory(InventoryPlayer invPlayer, TileEntityMachineCMBFactory tedf) { - super(new ContainerMachineCMBFactory(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 106 - 88, 16, 88, diFurnace.power, diFurnace.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - i, 176, 52 - i, 16, i); - } - - int j1 = diFurnace.getProgressScaled(24); - drawTexturedModalRect(guiLeft + 101 + 9, guiTop + 34, 208, 0, j1 + 1, 16); - - diFurnace.tank.renderTank(guiLeft + 26, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCatalyticReformer.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCatalyticReformer.java index 4106bfa80..7c0c6d358 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCatalyticReformer.java @@ -1,14 +1,19 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; +import java.util.List; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineCatalyticReformer; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticReformer; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class GUIMachineCatalyticReformer extends GuiInfoContainer { @@ -33,6 +38,14 @@ public class GUIMachineCatalyticReformer extends GuiInfoContainer { refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 70 - 52, 16, 52); refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 70 - 52, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 70 - 52, 16, 52, refinery.power, refinery.maxPower); + + if(this.mc.thePlayer.inventory.getItemStack() == null && this.isMouseOverSlot(this.inventorySlots.getSlot(10), mouseX, mouseY) && !this.inventorySlots.getSlot(10).getHasStack()) { + List lines = new ArrayList(); + ItemStack converter = new ItemStack(ModItems.catalytic_converter); + lines.add(new Object[] {converter}); + lines.add(new Object[] {converter.getDisplayName()}); + this.drawStackText(lines, mouseX, mouseY, this.fontRendererObj); + } } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java deleted file mode 100644 index 24b1cf2ae..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.hbm.inventory.gui; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineCoal; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineCoal; - -public class GUIMachineCoal extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/GUICoal.png"); - private TileEntityMachineCoal diFurnace; - - public GUIMachineCoal(InventoryPlayer invPlayer, TileEntityMachineCoal tedf) { - super(new ContainerMachineCoal(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.maxPower); - - String[] text = new String[] { "Power generation rate:", - " 25 HE/t", - " 500 HE/s", - "Accepts all furnace fuels.", - "(All fuels burn half as long in this generator", - "as in a regular furnace)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "Water consumption rate:", - " 1 mB/t", - " 20 mB/s", - "(Consumption rate is constant)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(diFurnace.tank.getFill() <= 0) { - - String[] text2 = new String[] { "Error: Water is required for", - "the generator to function properly!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); - } - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 34, 18, 18, mouseX, mouseY, new String[] { String.valueOf((int)(Math.ceil((double)diFurnace.burnTime / 20D))) + "s"}); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - //It's as horrifying as it is functional. - if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineCoal) - diFurnace = (TileEntityMachineCoal) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 152, guiTop + 69 - i, 176, 52 - i, 16, i); - } - - if(diFurnace.burnTime > 0) - { - drawTexturedModalRect(guiLeft + 79, guiTop + 34, 208, 0, 18, 18); - } - - if(diFurnace.tank.getFill() <= 0) - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - - diFurnace.tank.renderTank(guiLeft + 8, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java index b9b2d5d1f..e21a06d8b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineCoker; @@ -31,8 +33,8 @@ public class GUIMachineCoker extends GuiInfoContainer { refinery.tanks[0].renderTankInfo(this, x, y, guiLeft + 35, guiTop + 18, 16, 52); refinery.tanks[1].renderTankInfo(this, x, y, guiLeft + 125, guiTop + 18, 16, 52); - this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 45, 54, 7, x, y, new String[] { String.format("%,d", refinery.progress) + " / " + String.format("%,d", refinery.processTime) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 54, 54, 7, x, y, new String[] { String.format("%,d", refinery.heat) + " / " + String.format("%,d", refinery.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 45, 54, 7, x, y, new String[] { String.format(Locale.US, "%,d", refinery.progress) + " / " + String.format(Locale.US, "%,d", refinery.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 54, 54, 7, x, y, new String[] { String.format(Locale.US, "%,d", refinery.heat) + " / " + String.format(Locale.US, "%,d", refinery.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java new file mode 100644 index 000000000..2a02cd763 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java @@ -0,0 +1,133 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; +import java.util.Locale; + +import com.hbm.render.util.GaugeUtil; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.SlotPattern; +import com.hbm.inventory.container.ContainerMachineCustom; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityCustomMachine; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineCustom extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_custom.png"); + private TileEntityCustomMachine custom; + + public GUIMachineCustom(InventoryPlayer invPlayer, TileEntityCustomMachine tedf) { + super(new ContainerMachineCustom(invPlayer, tedf)); + custom = tedf; + + this.xSize = 176; + this.ySize = 256; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + this.drawElectricityInfo(this, x, y, guiLeft + 150, guiTop + 18, 16, 52, custom.power, custom.config.maxPower); + if(custom.config.maxHeat>0) this.drawCustomInfoStat(x, y, guiLeft + 61, guiTop + 53, 18, 18, x, y, new String[] { "Heat:" + String.format(Locale.US, "%,d", custom.heat) + " / " + String.format(Locale.US, "%,d", custom.config.maxHeat)}); + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < this.inventorySlots.inventorySlots.size(); ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + int tileIndex = slot.getSlotIndex(); + + if(this.isMouseOverSlot(slot, x, y) && slot instanceof SlotPattern && custom.matcher.modes[tileIndex - 10] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(custom.matcher.modes[tileIndex - 10]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + custom.matcher.modes[tileIndex - 10]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + + for(int i = 0; i < custom.inputTanks.length; i++) { + custom.inputTanks[i].renderTankInfo(this, x, y, guiLeft + 8 + 18 * i, guiTop + 18, 16, 34); + } + + for(int i = 0; i < custom.outputTanks.length; i++) { + custom.outputTanks[i].renderTankInfo(this, x, y, guiLeft + 78 + 18 * i, guiTop + 18, 16, 34); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.custom.getInventoryName(); + String localizedName = this.custom.config.localization.get(MainRegistry.proxy.getLanguageCode()); + if(localizedName != null) name = localizedName; + this.fontRendererObj.drawString(name, 68 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + if(custom.config.fluxMode) this.fontRendererObj.drawString("Flux:" + custom.flux,83, 57,0x08FF00); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + if(custom.config.fluxMode){ + drawTexturedModalRect(guiLeft + 78, guiTop + 54, 192, 122,51 , 15); + } + if(custom.maxHeat > 0) { + drawTexturedModalRect(guiLeft + 61, guiTop + 53, 236, 0, 18, 18); + GaugeUtil.drawSmoothGauge(guiLeft + 70, guiTop + 62, this.zLevel, (double) custom.heat / (double) custom.config.maxHeat, 5, 2, 1, 0x7F0000); + } + int p = custom.progress * 90 / custom.maxProgress; + drawTexturedModalRect(guiLeft + 78, guiTop + 119, 192, 0, Math.min(p, 44), 16); + if(p > 44) { + p -= 44; + drawTexturedModalRect(guiLeft + 78 + 44, guiTop + 119, 192, 16, p, 16); + } + + int e = (int) (custom.power * 52 / custom.config.maxPower); + drawTexturedModalRect(guiLeft + 150, guiTop + 70 - e, 176, 52 - e, 16, e); + + for(int i = 0; i < 2; i++) { + for(int j = 0; j < 3; j++) { + int index = i * 3 + j; + if(custom.config.itemInCount <= index) { + drawTexturedModalRect(guiLeft + 7 + j * 18, guiTop + 71 + i * 18, 192 + j * 18, 86 + i * 18, 18, 18); + drawTexturedModalRect(guiLeft + 7 + j * 18, guiTop + 107 + i * 18, 192 + j * 18, 86 + i * 18, 18, 18); + } + if(custom.config.itemOutCount <= index) { + drawTexturedModalRect(guiLeft + 77 + j * 18, guiTop + 71 + i * 18, 192 + j * 18, 86 + i * 18, 18, 18); + } + } + } + + for(int i = 0; i < 3; i++) { + if(custom.config.fluidInCount <= i) { + drawTexturedModalRect(guiLeft + 7 + i * 18, guiTop + 17, 192 + i * 18, 32, 18, 54); + } + if(custom.config.fluidOutCount <= i) { + drawTexturedModalRect(guiLeft + 77 + i * 18, guiTop + 17, 192 + i * 18, 32, 18, 36); + } + } + + for(int i = 0; i < custom.inputTanks.length; i++) { + custom.inputTanks[i].renderTank(guiLeft + 8 + 18 * i, guiTop + 52, this.zLevel, 16, 34); + } + + for(int i = 0; i < custom.outputTanks.length; i++) { + custom.outputTanks[i].renderTank(guiLeft + 78 + 18 * i, guiTop + 52, this.zLevel, 16, 34); + } + } + +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java index c0ad1c777..5f5cfc339 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java @@ -4,13 +4,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineCyclotron; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineCyclotron; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; @@ -24,25 +21,26 @@ public class GUIMachineCyclotron extends GuiInfoContainer { super(new ContainerMachineCyclotron(invPlayer, tile)); cyclotron = tile; - this.xSize = 176; - this.ySize = 222; + this.xSize = 190; + this.ySize = 215; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 72, 7, 52, cyclotron.power, cyclotron.maxPower); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 168, guiTop + 18, 16, 63, cyclotron.power, cyclotron.maxPower); - cyclotron.coolant.renderTankInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 72, 7, 52); - cyclotron.amat.renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 90, 7, 34); + cyclotron.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 11, guiTop + 81, 34, 7); + cyclotron.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 11, guiTop + 90, 34, 7); + cyclotron.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 81, 34, 16); String[] upgradeText = new String[4]; upgradeText[0] = I18nUtil.resolveKey("desc.gui.upgrade"); upgradeText[1] = I18nUtil.resolveKey("desc.gui.upgrade.speed"); upgradeText[2] = I18nUtil.resolveKey("desc.gui.upgrade.effectiveness"); upgradeText[3] = I18nUtil.resolveKey("desc.gui.upgrade.power"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 21, guiTop + 75, 8, 8, mouseX, mouseY, upgradeText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 49, guiTop + 85, 8, 8, mouseX, mouseY, upgradeText); } @Override @@ -50,38 +48,28 @@ public class GUIMachineCyclotron extends GuiInfoContainer { String name = this.cyclotron.hasCustomInventoryName() ? this.cyclotron.getInventoryName() : I18n.format(this.cyclotron.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 15, this.ySize - 96 + 2, 4210752); } @Override - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - if(guiLeft + 97 <= x && guiLeft + 97 + 18 > x && guiTop + 107 < y && guiTop + 107 + 18 >= y) { - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(cyclotron.xCoord, cyclotron.yCoord, cyclotron.zCoord, 0, 0)); - } - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int k = (int) cyclotron.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 80, guiTop + 124 - k, 212, 52 - k, 7, k); - - int l = cyclotron.getProgressScaled(36); - drawTexturedModalRect(guiLeft + 52, guiTop + 26, 176, 0, l, 36); - - if(cyclotron.isOn) - drawTexturedModalRect(guiLeft + 97, guiTop + 107, 219, 0, 18, 18); - - this.drawInfoPanel(guiLeft + 21, guiTop + 75, 8, 8, 8); - - cyclotron.coolant.renderTank(guiLeft + 53, guiTop + 124, this.zLevel, 7, 52); - cyclotron.amat.renderTank(guiLeft + 134, guiTop + 124, this.zLevel, 7, 34); + int k = (int) cyclotron.getPowerScaled(63); + drawTexturedModalRect(guiLeft + 168, guiTop + 80 - k, 190, 62 - k, 16, k); + + int l = cyclotron.getProgressScaled(34); + drawTexturedModalRect(guiLeft + 48, guiTop + 27, 206, 0, l, 34); + + if(l > 0) + drawTexturedModalRect(guiLeft + 172, guiTop + 4, 190, 63, 9, 12); + + this.drawInfoPanel(guiLeft + 49, guiTop + 85, 8, 8, 8); + + cyclotron.tanks[0].renderTank(guiLeft + 11, guiTop + 88, this.zLevel, 34, 7, 1); + cyclotron.tanks[1].renderTank(guiLeft + 11, guiTop + 97, this.zLevel, 34, 7, 1); + cyclotron.tanks[2].renderTank(guiLeft + 107, guiTop + 97, this.zLevel, 34, 16, 1); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java b/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java index 0345dc6a4..36606b0f4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java @@ -1,5 +1,6 @@ package com.hbm.inventory.gui; +import java.util.Arrays; import java.util.List; import org.lwjgl.opengl.GL11; @@ -14,8 +15,11 @@ import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; public class GUIMachineDiFurnaceRTG extends GuiInfoContainer { public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/gui/processing/gui_rtg_difurnace.png"); @@ -47,6 +51,23 @@ public class GUIMachineDiFurnaceRTG extends GuiInfoContainer { } this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 15, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, pelletText); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 2; i++) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, mouseX, mouseY)) { + + String label = EnumChatFormatting.YELLOW + "Accepts items from: "; + byte dir = i == 0 ? bFurnace.sideUpper : bFurnace.sideLower; + label += ForgeDirection.getOrientation(dir); + + this.func_146283_a(Arrays.asList(new String[] { label }), mouseX, mouseY - (slot.getHasStack() ? 15 : 0)); + + return; + } + } + } } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java index 0197e0409..fe81cccba 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java @@ -4,9 +4,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineExcavator; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineExcavator; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -32,6 +33,12 @@ public class GUIMachineExcavator extends GuiInfoContainer { @Override public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); + + this.drawCustomInfoStat(x, y, guiLeft + 6, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.drill")); + this.drawCustomInfoStat(x, y, guiLeft + 30, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.crusher")); + this.drawCustomInfoStat(x, y, guiLeft + 54, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.walling")); + this.drawCustomInfoStat(x, y, guiLeft + 78, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.veinminer")); + this.drawCustomInfoStat(x, y, guiLeft + 102, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.silktouch")); this.drawElectricityInfo(this, x, y, guiLeft + 220, guiTop + 18, 16, 52, drill.getPower(), drill.maxPower); this.drill.tank.renderTankInfo(this, x, y, guiLeft + 202, guiTop + 18, 16, 52); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java new file mode 100644 index 000000000..3f5760cce --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java @@ -0,0 +1,62 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineExposureChamber; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineExposureChamber extends GuiInfoContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_exposure_chamber.png"); + private TileEntityMachineExposureChamber chamber; + + public GUIMachineExposureChamber(InventoryPlayer invPlayer, TileEntityMachineExposureChamber chamber) { + super(new ContainerMachineExposureChamber(invPlayer, chamber)); + this.chamber = chamber; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 34, chamber.power, chamber.maxPower); + + drawCustomInfoStat(mouseX, mouseY, guiLeft + 26, guiTop + 36, 9, 16, mouseX, mouseY, chamber.savedParticles + " / " + chamber.maxParticles); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.chamber.hasCustomInventoryName() ? this.chamber.getInventoryName() : I18n.format(this.chamber.getInventoryName()); + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = chamber.progress * 42 / (chamber.processTime + 1); + drawTexturedModalRect(guiLeft + 36, guiTop + 39, 192, 0, p, 10); + + int c = chamber.savedParticles * 16 / chamber.maxParticles; + drawTexturedModalRect(guiLeft + 26, guiTop + 52 - c, 192, 26 - c, 9, c); + + int e = (int) (chamber.power * 34 / chamber.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 52 - e, 176, 34 - e, 16, e); + + if(chamber.consumption <= chamber.power) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 34, 9, 12); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java b/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java index 54ddb47e9..9ef320390 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineFluidTank; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java index 987b5caa6..0b81a0bd8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java @@ -56,9 +56,6 @@ public class GUIMachineGasCent extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.gasCent.hasCustomInventoryName() ? this.gasCent.getInventoryName() : I18n.format(this.gasCent.getInventoryName()); - - //this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java index abcc30b6e..eca4887c6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java @@ -5,8 +5,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineGasFlare; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java b/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java new file mode 100644 index 000000000..f0fd2cf09 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineHydrotreater.java @@ -0,0 +1,73 @@ +package com.hbm.inventory.gui; + +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineHydrotreater; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.oil.TileEntityMachineHydrotreater; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineHydrotreater extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_hydrotreater.png"); + private TileEntityMachineHydrotreater hydrotreater; + + public GUIMachineHydrotreater(InventoryPlayer invPlayer, TileEntityMachineHydrotreater tedf) { + super(new ContainerMachineHydrotreater(invPlayer, tedf)); + hydrotreater = tedf; + + this.xSize = 176; + this.ySize = 238; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + hydrotreater.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 70 - 52, 16, 52); + hydrotreater.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 70 - 52, 16, 52); + hydrotreater.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 70 - 52, 16, 52); + hydrotreater.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 70 - 52, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 70 - 52, 16, 52, hydrotreater.power, hydrotreater.maxPower); + + if(this.mc.thePlayer.inventory.getItemStack() == null && this.isMouseOverSlot(this.inventorySlots.getSlot(10), mouseX, mouseY) && !this.inventorySlots.getSlot(10).getHasStack()) { + List lines = new ArrayList(); + ItemStack converter = new ItemStack(ModItems.catalytic_converter); + lines.add(new Object[] {converter}); + lines.add(new Object[] {converter.getDisplayName()}); + this.drawStackText(lines, mouseX, mouseY, this.fontRendererObj); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.hydrotreater.hasCustomInventoryName() ? this.hydrotreater.getInventoryName() : I18n.format(this.hydrotreater.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 5, 0xffffff); + 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 j = (int) (hydrotreater.power * 54 / hydrotreater.maxPower); + drawTexturedModalRect(guiLeft + 17, guiTop + 70 - j, 176, 52 - j, 16, j); + + hydrotreater.tanks[0].renderTank(guiLeft + 35, guiTop + 70, this.zLevel, 16, 52); + hydrotreater.tanks[1].renderTank(guiLeft + 53, guiTop + 70, this.zLevel, 16, 52); + hydrotreater.tanks[2].renderTank(guiLeft + 125, guiTop + 70, this.zLevel, 16, 52); + hydrotreater.tanks[3].renderTank(guiLeft + 143, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java b/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java index fc4621b1f..975fb7ad1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineLaunchTable.java @@ -4,10 +4,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerLaunchTable; import com.hbm.items.weapon.ItemCustomMissile; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.render.util.MissileMultipart; import com.hbm.render.util.MissilePronter; import com.hbm.tileentity.bomb.TileEntityLaunchTable; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java b/src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java deleted file mode 100644 index c027203dc..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineMiningDrill.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineMiningDrill; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; -import com.hbm.util.I18nUtil; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineMiningDrill extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_drill.png"); - private TileEntityMachineMiningDrill diFurnace; - - public GUIMachineMiningDrill(InventoryPlayer invPlayer, TileEntityMachineMiningDrill tedf) { - super(new ContainerMachineMiningDrill(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.maxPower); - - String[] upgradeText = new String[4]; - upgradeText[0] = I18nUtil.resolveKey("desc.gui.upgrade"); - upgradeText[1] = I18nUtil.resolveKey("desc.gui.upgrade.speed"); - upgradeText[2] = I18nUtil.resolveKey("desc.gui.upgrade.effectiveness"); - upgradeText[3] = I18nUtil.resolveKey("desc.gui.upgrade.power"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 141, guiTop + 39, 8, 8, guiLeft + 100, guiTop + 39 + 16 + 8, upgradeText); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - i, 176, 52 - i, 16, i); - } - - int k = diFurnace.warning; - if(k == 2) - drawTexturedModalRect(guiLeft + 44, guiTop + 17, 192, 0, 16, 16); - if(k == 1) - drawTexturedModalRect(guiLeft + 44, guiTop + 17, 208, 0, 16, 16); - - this.drawInfoPanel(guiLeft + 141, guiTop + 39, 8, 8, 8); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineMissileAssembly.java b/src/main/java/com/hbm/inventory/gui/GUIMachineMissileAssembly.java index c40100afa..d8aec81b6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineMissileAssembly.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineMissileAssembly.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineMissileAssembly; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.render.util.MissileMultipart; import com.hbm.render.util.MissilePart; import com.hbm.render.util.MissilePronter; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java index 19d1e30fb..63e98642b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachinePress; import com.hbm.lib.RefStrings; +import com.hbm.render.util.GaugeUtil; import com.hbm.tileentity.machine.TileEntityMachinePress; import net.minecraft.client.Minecraft; @@ -46,14 +47,14 @@ public class GUIMachinePress extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = press.speed * 12 / press.maxSpeed; - drawTexturedModalRect(guiLeft + 25, guiTop + 16, 176, 14 + 18 * i, 18, 18); - if(press.burnTime >= 20) { this.drawTexturedModalRect(guiLeft + 27, guiTop + 36, 176, 0, 14, 14); } int k = (int) (press.renderPress * 16 / press.maxPress); this.drawTexturedModalRect(guiLeft + 79, guiTop + 35, 194, 0, 18, k); + + double i = (double) press.speed / (double) press.maxSpeed; + GaugeUtil.drawSmoothGauge(guiLeft + 34, guiTop + 25, this.zLevel, i, 5, 2, 1, 0x7f0000); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java deleted file mode 100644 index 4ec995798..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerPuF6Tank; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachinePuF6Tank extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/puf6Tank.png"); - private TileEntityMachinePuF6Tank tank; - - public GUIMachinePuF6Tank(InventoryPlayer invPlayer, TileEntityMachinePuF6Tank tedf) { - super(new ContainerPuF6Tank(invPlayer, tedf)); - tank = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - tank.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.tank.hasCustomInventoryName() ? this.tank.getInventoryName() : I18n.format(this.tank.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - tank.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java index 527de1e9f..a3361e662 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java @@ -36,7 +36,7 @@ public class GUIMachineRadGen extends GuiInfoContainer { this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 65, guiTop + 18 + i * 5, 46, 5, new String[] { "Slot " + (i + 1) + ":", radgen.production[i] + "HE/t for", - (radgen.maxProgress[i] - radgen.progress[i]) + " ticks. (" + ((radgen.maxProgress[i] - radgen.progress[i]) * 100 / radgen.maxProgress[i]) + "%)" + (radgen.maxProgress[i] - radgen.progress[i]) + " ticks (" + ((radgen.maxProgress[i] - radgen.progress[i]) * 100 / radgen.maxProgress[i]) + "%)" }); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java deleted file mode 100644 index 4cd9db8d5..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.hbm.inventory.gui; - -import java.util.Arrays; - -import org.lwjgl.opengl.GL11; - -import com.hbm.config.WeaponConfig; -import com.hbm.inventory.container.ContainerMachineRadar; -import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.machine.TileEntityMachineRadar; -import com.hbm.util.I18nUtil; - -import api.hbm.entity.IRadarDetectable.RadarTargetType; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineRadar extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar.png"); - private TileEntityMachineRadar diFurnace; - - public GUIMachineRadar(InventoryPlayer invPlayer, TileEntityMachineRadar tedf) { - super(new ContainerMachineRadar(invPlayer, tedf)); - diFurnace = tedf; - texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar.png"); - - this.xSize = 216; - this.ySize = 234; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 221, 200, 7, diFurnace.power, diFurnace.maxPower); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 98, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.detectMissiles") ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 108, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.detectPlayers")); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 118, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.smartMode")); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 128, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.redMode")); - - if(!diFurnace.nearbyMissiles.isEmpty()) { - for(int[] m : diFurnace.nearbyMissiles) { - int x = guiLeft + (int)((m[0] - diFurnace.xCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) + 108; - int z = guiTop + (int)((m[1] - diFurnace.zCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) + 117; - - if(mouseX + 4 > x && mouseX - 4 < x && - mouseY + 4 > z && mouseY - 4 < z) { - - - String[] text = new String[] { RadarTargetType.values()[m[2]].name, m[0] + " / " + m[1], "Alt.: " + m[3] }; - - this.func_146283_a(Arrays.asList(text), x, z); - - return; - } - } - } - } - - @Override - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 98 < y && guiTop + 98 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 0)); - } - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 108 < y && guiTop + 108 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 1)); - } - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 118 < y && guiTop + 118 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 2)); - } - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 128 < y && guiTop + 128 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 3)); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = I18n.format("container.radar"); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 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); - drawTexturedModalRect(guiLeft - 14, guiTop + 94, 216, 198, 14, 46); - - if(diFurnace.scanMissiles || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 98, 230, 202, 8, 8); - - if(diFurnace.scanPlayers || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 108, 230, 212, 8, 8); - - if(diFurnace.smartMode || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 118, 230, 222, 8, 8); - - if(diFurnace.redMode || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 128, 230, 232, 8, 8); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(200); - drawTexturedModalRect(guiLeft + 8, guiTop + 221, 0, 234, i, 16); - } - - if(diFurnace.jammed) { - - for(int i = 0; i < 5; i++) { - for(int j = 0; j < 5; j++) { - drawTexturedModalRect(guiLeft + 8 + i * 40, guiTop + 17 + j * 40, 216, 118 + diFurnace.getWorldObj().rand.nextInt(41), 40, 40); - } - } - - return; - } - - if(!diFurnace.nearbyMissiles.isEmpty()) { - for(int[] m : diFurnace.nearbyMissiles) { - int x = (int)((m[0] - diFurnace.xCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) - 4; - int z = (int)((m[1] - diFurnace.zCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) - 4; - int t = m[2]; - - drawTexturedModalRect(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); - } - } - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java new file mode 100644 index 000000000..43fd1ba61 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -0,0 +1,265 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import api.hbm.entity.RadarEntry; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; + +public class GUIMachineRadarNT extends GuiScreen { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_nt.png"); + + protected TileEntityMachineRadarNT radar; + protected int xSize = 216; + protected int ySize = 234; + protected int guiLeft; + protected int guiTop; + + public int lastMouseX; + public int lastMouseY; + + public GUIMachineRadarNT(TileEntityMachineRadarNT tile) { + this.radar = tile; + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + String cmd = null; + + if(checkClick(x, y, -10, 88, 8, 8)) cmd = "missiles"; + if(checkClick(x, y, -10, 98, 8, 8)) cmd = "shells"; + if(checkClick(x, y, -10, 108, 8, 8)) cmd = "players"; + if(checkClick(x, y, -10, 118, 8, 8)) cmd = "smart"; + if(checkClick(x, y, -10, 128, 8, 8)) cmd = "red"; + if(checkClick(x, y, -10, 138, 8, 8)) cmd = "map"; + if(checkClick(x, y, -10, 158, 8, 8)) cmd = "gui1"; + if(checkClick(x, y, -10, 178, 8, 8)) cmd = "clear"; + + if(cmd != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean(cmd, true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + } + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + + this.lastMouseX = mouseX; + this.lastMouseY = mouseY; + } + + private void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { + + if(checkClick(mouseX, mouseY, 8, 221, 200, 7)) this.func_146283_a(Arrays.asList(BobMathUtil.getShortNumber(radar.power) + "/" + BobMathUtil.getShortNumber(radar.maxPower) + "HE"), mouseX, mouseY); + + if(checkClick(mouseX, mouseY, -10, 88, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectMissiles")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 98, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectShells")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 108, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectPlayers")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 118, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.smartMode")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 128, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.redMode")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 138, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.showMap")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 158, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.toggleGui")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 178, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.clearMap")), mouseX, mouseY); + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 117; + + if(mouseX + 5 > x && mouseX - 4 <= x && mouseY + 5 > z && mouseY - 4 <= z) { + + String[] text = new String[] { I18nUtil.resolveKey(m.unlocalizedName), m.posX + " / " + m.posZ, "Alt.: " + m.posY }; + this.func_146283_a(Arrays.asList(text), x, z); + return; + } + } + } + + if(checkClick(mouseX, mouseY, 8, 17, 200, 200)) { + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) radar.getRange() * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) radar.getRange() * 2 + 1) / 192D + radar.zCoord); + this.func_146283_a(Arrays.asList(tX + " / " + tZ), lastMouseX, lastMouseY); + } + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + drawTexturedModalRect(guiLeft - 14, guiTop + 84, 224, 0, 14, 66); + drawTexturedModalRect(guiLeft - 14, guiTop + 154, 224, 66, 14, 36); + + if(radar.power > 0) { + int i = (int) (radar.power * 200 / radar.maxPower); + drawTexturedModalRect(guiLeft + 8, guiTop + 221, 0, 234, i, 16); + } + + if(radar.scanMissiles ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 88, 238, 4, 8, 8); + if(radar.scanShells ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 98, 238, 14, 8, 8); + if(radar.scanPlayers ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 108, 238, 24, 8, 8); + if(radar.smartMode ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 118, 238, 34, 8, 8); + if(radar.redMode ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 128, 238, 44, 8, 8); + if(radar.showMap ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 138, 238, 54, 8, 8); + + if(radar.power < radar.consumption) return; + + if(radar.jammed) { + for(int i = 0; i < 5; i++) { + for(int j = 0; j < 5; j++) { + drawTexturedModalRect(guiLeft + 8 + i * 40, guiTop + 17 + j * 40, 216, 118 + radar.getWorldObj().rand.nextInt(81), 40, 40); + } + } + return; + } + + if(radar.showMap) { + Tessellator tess = Tessellator.instance; + GL11.glDisable(GL11.GL_TEXTURE_2D); + tess.startDrawingQuads(); + for(int i = 0; i < 40_000; i++) { + int iX = i % 200; + int iZ = i / 200; + byte b = radar.map[i]; + if(b > 0) { + int color = ((b - 50) * 255 / 78) << 8; + tess.setColorOpaque_I(color); + tess.addVertex(guiLeft + 8 + iX, guiTop + 18 + iZ, this.zLevel); + tess.addVertex(guiLeft + 9 + iX, guiTop + 18 + iZ, this.zLevel); + tess.addVertex(guiLeft + 9 + iX, guiTop + 17 + iZ, this.zLevel); + tess.addVertex(guiLeft + 8 + iX, guiTop + 17 + iZ, this.zLevel); + } + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + Vec3 tr = Vec3.createVectorHelper(100, 0, 0); + Vec3 tl = Vec3.createVectorHelper(100, 0, 0); + Vec3 bl = Vec3.createVectorHelper(0, -5, 0); + float rot = (float) -Math.toRadians(radar.prevRotation + (radar.rotation - radar.prevRotation) * f + 180F); + tr.rotateAroundZ(rot); + tl.rotateAroundZ(rot + 0.25F); + bl.rotateAroundZ(rot); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_SMOOTH); + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108, guiTop + 117, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 255); tess.addVertex(guiLeft + 108 + tr.xCoord, guiTop + 117 + tr.yCoord, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108 + tl.xCoord, guiTop + 117 + tl.yCoord, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108 + bl.xCoord, guiTop + 117 + bl.yCoord, this.zLevel); + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_FLAT); + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + double x = (m.posX - radar.xCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D) - 4D; + double z = (m.posZ - radar.zCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D) - 4D; + int t = m.blipLevel; + drawTexturedModalRectDouble(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); + } + } + } + + public void drawTexturedModalRectDouble(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { + float f = 0.00390625F; + float f1 = 0.00390625F; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(x, y + sizeY, this.zLevel, (sourceX + 0) * f, (sourceY + sizeY) * f1); + tessellator.addVertexWithUV(x + sizeX, y + sizeY, this.zLevel, (sourceX + sizeX) * f, (sourceY + sizeY) * f1); + tessellator.addVertexWithUV(x + sizeX, y, this.zLevel, (sourceX + sizeX) * f, (sourceY + 0) * f1); + tessellator.addVertexWithUV(x, y, this.zLevel, (sourceX + 0) * f, (sourceY + 0) * f1); + tessellator.draw(); + } + + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + + if(checkClick(lastMouseX, lastMouseY, 8, 17, 200, 200) && c >= '1' && c <= '8') { + + int id = c - '1'; + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + int x = guiLeft + (int) ((m.posX - radar.xCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int) ((m.posZ - radar.zCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 117; + + if(lastMouseX + 5 > x && lastMouseX - 4 <= x && lastMouseY + 5 > z && lastMouseY - 4 <= z) { + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchEntity", m.entityID); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + return; + } + } + } + + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) radar.getRange() * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) radar.getRange() * 2 + 1) / 192D + radar.zCoord); + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchPosX", tX); + data.setInteger("launchPosZ", tZ); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + } + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + public void updateScreen() { + super.updateScreen(); + + if(!this.mc.thePlayer.isEntityAlive() || this.mc.thePlayer.isDead) { + this.mc.thePlayer.closeScreen(); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java new file mode 100644 index 000000000..2c9338326 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java @@ -0,0 +1,72 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineRadarNT; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.network.play.client.C0DPacketCloseWindow; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineRadarNTSlots extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_link.png"); + private TileEntityMachineRadarNT radar; + + public GUIMachineRadarNTSlots(InventoryPlayer invPlayer, TileEntityMachineRadarNT tedf) { + super(new ContainerMachineRadarNT(invPlayer, tedf)); + radar = tedf; + + this.xSize = 176; + this.ySize = 184; + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(checkClick(x, y, 5, 5, 8, 8)) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + this.mc.thePlayer.sendQueue.addToSendQueue(new C0DPacketCloseWindow(this.mc.thePlayer.openContainer.windowId)); // closes the server-side GUI component without resetting the client's cursor position + FMLNetworkHandler.openGui(this.mc.thePlayer, MainRegistry.instance, 0, radar.getWorldObj(), radar.xCoord, radar.yCoord, radar.zCoord); + } + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + if(checkClick(mouseX, mouseY, 5, 5, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.toggleGui")), mouseX, mouseY); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.radar.hasCustomInventoryName() ? this.radar.getInventoryName() : I18n.format(this.radar.getInventoryName()); + if(MainRegistry.polaroidID == 11) name = "Reda"; + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(radar.power > 0) { + int i = (int) (radar.power * 160 / radar.maxPower); + drawTexturedModalRect(guiLeft + 8, guiTop + 64, 0, 185, i, 16); + } + } + +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index c271c162d..f30dd2edf 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -1,21 +1,24 @@ package com.hbm.inventory.gui; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.recipes.RefineryRecipes; +import com.hbm.util.Tuple; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineRefinery; -import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; +import java.awt.Color; + public class GUIMachineRefinery extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_refinery.png"); @@ -25,58 +28,100 @@ public class GUIMachineRefinery extends GuiInfoContainer { super(new ContainerMachineRefinery(invPlayer, tedf)); refinery = tedf; - this.xSize = 176; - this.ySize = 222; + this.xSize = 210; + this.ySize = 231; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - refinery.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 70 - 52, 34, 52); - refinery.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 70 - 52, 16, 52); - refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 98, guiTop + 70 - 52, 16, 52); - refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 70 - 52, 16, 52); - refinery.tanks[4].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 70 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 70 - 52, 16, 52, refinery.power, refinery.maxPower); - } - - @Override - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - if(guiLeft + 64 <= x && guiLeft + 76 > x && guiTop + 20 < y && guiTop + 46 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("toggle", true); //we only need to send one bit, so boolean it is - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, refinery.xCoord, refinery.yCoord, refinery.zCoord)); - } + refinery.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 30, guiTop + 27, 21, 104); // Render tooltip for column. + refinery.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 86, guiTop + 42, 16, 52); + refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 106, guiTop + 42, 16, 52); + refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 126, guiTop + 42, 16, 52); + refinery.tanks[4].renderTankInfo(this, mouseX, mouseY, guiLeft + 146, guiTop + 42, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 186, guiTop + 18, 16, 52, refinery.power, refinery.maxPower); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.refinery.hasCustomInventoryName() ? this.refinery.getInventoryName() : I18n.format(this.refinery.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(name, this.xSize / 2 - 34/2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 4, 4210752); } @Override protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(refinery.tanks[0].getTankType() == Fluids.HOTCRACKOIL) - drawTexturedModalRect(guiLeft + 64, guiTop + 20, 192, 0, 12, 26); + func_146110_a(guiLeft, guiTop, 0, 0, xSize, ySize, 350, 256); - int j = (int)refinery.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 70 - j, 176, 52 - j, 16, j); - - refinery.tanks[0].renderTank(guiLeft + 26, guiTop + 70, this.zLevel, 34, 52); - refinery.tanks[1].renderTank(guiLeft + 80, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[2].renderTank(guiLeft + 98, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[3].renderTank(guiLeft + 116, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[4].renderTank(guiLeft + 134, guiTop + 70, this.zLevel, 16, 52); + // power + int j = (int)refinery.getPowerScaled(50); + func_146110_a(guiLeft + 186, guiTop + 69 - j, 210, 52 - j, 16, j, 350, 256); + + OpenGlHelper.glBlendFunc(770, 771, 1, 0); // default + + // input tank + FluidTank inputOil = refinery.tanks[0]; + if (inputOil.getFill() != 0) { + + int targetHeight = inputOil.getFill() * 101 / inputOil.getMaxFill(); + Color color = new Color(inputOil.getTankType().getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 33, guiTop + 130 - targetHeight, 226, 101 - targetHeight, 16, targetHeight, 350, 256); + GL11.glDisable(GL11.GL_BLEND); + } + + // fucking kgjhgdfjgdhjfg + // func_146110_a lets you set the resolution of the source texture !!!! + // 350x256 texture by behated (the pipes wouldn't fit) + + // pipes + + Tuple.Quintet recipe = RefineryRecipes.getRefinery(inputOil.getTankType()); + + if(recipe == null) { + func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); + func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); + func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); + func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); + } else { + + // Heavy Oil Products + Color color = new Color(recipe.getV().type.getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); + + // Naphtha Oil Products + color = new Color(recipe.getW().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); + + // Light Oil Products + color = new Color(recipe.getX().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); + + // Gaseous Products + color = new Color(recipe.getY().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); + + GL11.glDisable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 1F); + } + + // output tanks + refinery.tanks[1].renderTank(guiLeft + 86, guiTop + 95, this.zLevel, 16, 52); + refinery.tanks[2].renderTank(guiLeft + 106, guiTop + 95, this.zLevel, 16, 52); + refinery.tanks[3].renderTank(guiLeft + 126, guiTop + 95, this.zLevel, 16, 52); + refinery.tanks[4].renderTank(guiLeft + 146, guiTop + 95, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java new file mode 100644 index 000000000..84a46915d --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java @@ -0,0 +1,93 @@ +package com.hbm.inventory.gui; + +import java.awt.Color; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineRotaryFurnace; +import com.hbm.inventory.material.Mats; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineRotaryFurnace; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineRotaryFurnace extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_rotary_furnace.png"); + private TileEntityMachineRotaryFurnace furnace; + + public GUIMachineRotaryFurnace(InventoryPlayer playerInv, TileEntityMachineRotaryFurnace tile) { + super(new ContainerMachineRotaryFurnace(playerInv, tile)); + + this.furnace = tile; + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + furnace.tanks[0].renderTankInfo(this, x, y, guiLeft + 8, guiTop + 36, 52, 16); + furnace.tanks[1].renderTankInfo(this, x, y, guiLeft + 134, guiTop + 18, 16, 52); + furnace.tanks[2].renderTankInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52); + + if(furnace.output == null) { + this.drawCustomInfoStat(x, y, guiLeft + 98, guiTop + 18, 16, 52, x, y, EnumChatFormatting.RED + "Empty"); + } else { + this.drawCustomInfoStat(x, y, guiLeft + 98, guiTop + 18, 16, 52, x, y,EnumChatFormatting.YELLOW + + I18nUtil.resolveKey(furnace.output.material.getUnlocalizedName()) + ": " + Mats.formatAmount(furnace.output.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.furnace.hasCustomInventoryName() ? this.furnace.getInventoryName() : I18n.format(this.furnace.getInventoryName()); + this.fontRendererObj.drawString(name, (this.xSize - 54) / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = (int) Math.ceil(furnace.progress * 33); + drawTexturedModalRect(guiLeft + 63, guiTop + 30, 176, 0, p, 10); + + if(furnace.maxBurnTime > 0) { + int b = furnace.burnTime * 14 / furnace.maxBurnTime; + drawTexturedModalRect(guiLeft + 26, guiTop + 69 - b, 176, 24 - b, 14, b); + } + + if(furnace.output != null) { + + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + + int hex = furnace.output.material.moltenColor; + int amount = furnace.output.amount * 52 / furnace.maxOutput; + Color color = new Color(hex); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + 98, guiTop + 70 - amount, 176, 76 - amount, 16, amount); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 0.3F); + drawTexturedModalRect(guiLeft + 98, guiTop + 70 - amount, 176, 76 - amount, 16, amount); + GL11.glDisable(GL11.GL_BLEND); + + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor3f(255, 255, 255); + } + + furnace.tanks[0].renderTank(guiLeft + 8, guiTop + 52, this.zLevel, 52, 16, 1); + furnace.tanks[1].renderTank(guiLeft + 134, guiTop + 70, this.zLevel, 16, 52); + furnace.tanks[2].renderTank(guiLeft + 152, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java deleted file mode 100644 index 20ea31ba8..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.hbm.inventory.gui; - -import java.util.ArrayList; -import java.util.List; -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineSelenium; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; -import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineSelenium extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_selenium.png"); - private TileEntityMachineSeleniumEngine selenium; - - public GUIMachineSelenium(InventoryPlayer invPlayer, TileEntityMachineSeleniumEngine tedf) { - super(new ContainerMachineSelenium(invPlayer, tedf)); - selenium = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - selenium.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 108, 160, 16, selenium.power, selenium.powerCap); - - List text = new ArrayList(); - text.add(EnumChatFormatting.YELLOW + "Accepted Fuels:"); - - for(FluidType type : Fluids.getInNiceOrder()) { - long energy = selenium.getHEFromFuel(type); - - if(energy > 0) - text.add(" " + I18nUtil.resolveKey(type.getUnlocalizedName()) + " (" + BobMathUtil.getShortNumber(energy) + "HE/t)"); - } - - text.add(EnumChatFormatting.ITALIC + "(These numbers are base values,"); - text.add(EnumChatFormatting.ITALIC + "actual output is based"); - text.add(EnumChatFormatting.ITALIC + "on piston count)"); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text.toArray(new String[0])); - - String[] text1 = new String[] { "Fuel consumption rate:", - " 1 mB/t", - " 20 mB/s", - "(Consumption rate per piston)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(selenium.pistonCount < 3) { - - String[] text2 = new String[] { "Error: At least three pistons are", - "required to operate this radial engine!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); - } - - if(!selenium.hasAcceptableFuel()) { - - String[] text2 = new String[] { "Error: The currently set fuel type", - "is not supported by this engine!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 48, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.selenium.hasCustomInventoryName() ? this.selenium.getInventoryName() : I18n.format(this.selenium.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(selenium.power > 0) { - int i = (int)selenium.getPowerScaled(160); - - i = (int) Math.min(i, 160); - - drawTexturedModalRect(guiLeft + 8, guiTop + 108, 0, 222, i, 16); - } - - if(selenium.tank.getFill() > 0 && selenium.hasAcceptableFuel() && selenium.pistonCount > 2) - { - drawTexturedModalRect(guiLeft + 115, guiTop + 71, 192, 0, 18, 18); - } - - if(selenium.pistonCount > 0) - { - int k = selenium.pistonCount; - drawTexturedModalRect(guiLeft + 26, guiTop + 81, 176, 52 + 16 * k - 16, 16, 16); - } - - if(selenium.pistonCount < 3) - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - - if(!selenium.hasAcceptableFuel()) - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 48, 16, 16, 7); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - - selenium.tank.renderTank(guiLeft + 80 + 36, guiTop + 70, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineShredder.java b/src/main/java/com/hbm/inventory/gui/GUIMachineShredder.java index 255b789ba..ef433374e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineShredder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineShredder.java @@ -21,7 +21,7 @@ public class GUIMachineShredder extends GuiInfoContainer { diFurnace = tedf; this.xSize = 176; - this.ySize = 222; + this.ySize = 233; } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSolderingStation.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSolderingStation.java new file mode 100644 index 000000000..7e718b9f9 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineSolderingStation.java @@ -0,0 +1,86 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineSolderingStation; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.TileEntityMachineSolderingStation; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineSolderingStation extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_soldering_station.png"); + private TileEntityMachineSolderingStation solderer; + + public GUIMachineSolderingStation(InventoryPlayer playerInv, TileEntityMachineSolderingStation tile) { + super(new ContainerMachineSolderingStation(playerInv, tile)); + + this.solderer = tile; + this.xSize = 176; + this.ySize = 204; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + solderer.tank.renderTankInfo(this, x, y, guiLeft + 35, guiTop + 63, 34, 16); + this.drawElectricityInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52, solderer.getPower(), solderer.getMaxPower()); + + this.drawCustomInfoStat(x, y, guiLeft + 78, guiTop + 67, 8, 8, guiLeft + 78, guiTop + 67, this.getUpgradeInfo(solderer)); + + + this.drawCustomInfoStat(x, y, guiLeft + 5, guiTop + 66, 10, 10, x, y, + "Recipe Collision Prevention: " + (solderer.collisionPrevention ? EnumChatFormatting.GREEN + "ON" : EnumChatFormatting.RED + "OFF"), + "Prevents no-fluid recipes from being processed", + "when fluid is present."); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 5 <= x && guiLeft + 5 + 10 > x && guiTop + 66 < y && guiTop + 66 + 10 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("collision", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, solderer.xCoord, solderer.yCoord, solderer.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.solderer.hasCustomInventoryName() ? this.solderer.getInventoryName() : I18n.format(this.solderer.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 18, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = (int) (solderer.power * 52 / Math.max(solderer.maxPower, 1)); + drawTexturedModalRect(guiLeft + 152, guiTop + 70 - p, 176, 52 - p, 16, p); + + int i = solderer.progress * 33 / Math.max(solderer.processTime, 1); + drawTexturedModalRect(guiLeft + 72, guiTop + 28, 192, 0, i, 14); + + if(solderer.power >= solderer.consumption) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); + } + + this.drawInfoPanel(guiLeft + 78, guiTop + 67, 8, 8, 8); + solderer.tank.renderTank(guiLeft + 35, guiTop + 79, this.zLevel, 34, 16, 1); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java new file mode 100644 index 000000000..f30b6d7a1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java @@ -0,0 +1,96 @@ +package com.hbm.inventory.gui; + +import com.hbm.inventory.container.ContainerMachineStrandCaster; +import com.hbm.inventory.material.Mats; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; +import com.hbm.util.I18nUtil; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; + +public class GUIMachineStrandCaster extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_strand_caster.png"); + private TileEntityMachineStrandCaster caster; + + public GUIMachineStrandCaster(InventoryPlayer invPlayer, TileEntityMachineStrandCaster tedf) { + super(new ContainerMachineStrandCaster(invPlayer, tedf)); + caster = tedf; + + this.xSize = 176; + this.ySize = 214; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + drawStackInfo(x, y, 16, 17); + + caster.water.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 14, 16, 24); + caster.steam.renderTankInfo(this, x, y, guiLeft + 82, guiTop + 65, 16, 24); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.caster.hasCustomInventoryName() ? this.caster.getInventoryName() : I18n.format(this.caster.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(caster.amount != 0) { + + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + + int targetHeight = Math.min((caster.amount) * 79 / caster.getCapacity(), 92); + + int hex = caster.type.moltenColor; + // hex = 0xC18336; + Color color = new Color(hex); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 0.3F); + drawTexturedModalRect(guiLeft + 17, guiTop + 93 - targetHeight, 176, 89 - targetHeight, 34, targetHeight); + GL11.glDisable(GL11.GL_BLEND); + + } + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor3f(255, 255, 255); + + caster.water.renderTank(guiLeft + 82, guiTop + 38, this.zLevel, 16, 24); + caster.steam.renderTank(guiLeft + 82, guiTop + 89, this.zLevel, 16, 24); + + } + + protected void drawStackInfo(int mouseX, int mouseY, int x, int y) { + + List list = new ArrayList(); + + if(caster.type == null) + list.add(EnumChatFormatting.RED + "Empty"); + else + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey(caster.type.getUnlocalizedName()) + ": " + Mats.formatAmount(caster.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + x, guiTop + y, 36, 81, mouseX, mouseY, list); + } + +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java index 724797310..fe6ecbdea 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java @@ -11,8 +11,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.trait.FT_Combustible; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; import com.hbm.util.I18nUtil; @@ -137,7 +137,7 @@ public class GUIMachineTurbineGas extends GuiInfoContainer { fuels.add(I18nUtil.resolveKey("desc.gui.turbinegas.fuels")); for(FluidType type : Fluids.getInNiceOrder()) { if(type.hasTrait(FT_Combustible.class) && type.getTrait(FT_Combustible.class).getGrade() == FuelGrade.GAS) { - fuels.add(" " + I18nUtil.resolveKey(type.getUnlocalizedName())); + fuels.add(" " + type.getLocalizedName()); } } this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 34 + 16, 16, 16, guiLeft - 8, guiTop + 44 + 16, fuels); @@ -202,9 +202,7 @@ public class GUIMachineTurbineGas extends GuiInfoContainer { public void displayStartup() { - boolean displayOn = true; - - if(numberToDisplay < 888888 && turbinegas.counter < 60) { //48 frames needed to complete + if(numberToDisplay < 8888888 && turbinegas.counter < 60) { //48 frames needed to complete digitNumber++; if(digitNumber == 9) { @@ -222,27 +220,23 @@ public class GUIMachineTurbineGas extends GuiInfoContainer { protected void drawPowerMeterDisplay(int number) { //display code - int firstDigitX = 66; + int firstDigitX = 65; int firstDigitY = 62; - int width = 5; - int height = 11; - int spaceBetweenBumbers = 3; + int[] digit = new int[7]; - int[] digit = new int[6]; - - for(int i = 5; i >= 0; i--) { //creates an array of digits that represent the numbers + for(int i = 6; i >= 0; i--) { //creates an array of digits that represent the numbers digit[i] = (int) (number % 10); number = number / 10; - drawTexturedModalRect(guiLeft + firstDigitX + i * 8, guiTop + 9 + firstDigitY, 194 + digit[i] * 5, 0, 5, 11); + drawTexturedModalRect(guiLeft + firstDigitX + i * 7, guiTop + 9 + firstDigitY, 194 + digit[i] * 5, 0, 5, 11); } int uselessZeros = 0; - for(int i = 0; i < 5; i++) { //counts how much zeros there are before the number, to display 57 instead of 000057 + for(int i = 0; i < 6; i++) { //counts how much zeros there are before the number, to display 57 instead of 000057 if(digit[i] == 0) uselessZeros++; @@ -252,7 +246,7 @@ public class GUIMachineTurbineGas extends GuiInfoContainer { for(int i = 0; i < uselessZeros; i++) { //turns off the useless zeros - drawTexturedModalRect(guiLeft + firstDigitX + i * 8, guiTop + 9 + firstDigitY, 244, 0, 5, 11); + drawTexturedModalRect(guiLeft + firstDigitX + i * 7, guiTop + 9 + firstDigitY, 244, 0, 5, 11); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java deleted file mode 100644 index a7c838c52..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerUF6Tank; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineUF6Tank extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/uf6Tank.png"); - private TileEntityMachineUF6Tank tank; - - public GUIMachineUF6Tank(InventoryPlayer invPlayer, TileEntityMachineUF6Tank tedf) { - super(new ContainerUF6Tank(invPlayer, tedf)); - tank = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - tank.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.tank.hasCustomInventoryName() ? this.tank.getInventoryName() : I18n.format(this.tank.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - tank.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java new file mode 100644 index 000000000..659febdab --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java @@ -0,0 +1,115 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineWoodBurner; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineWoodBurner extends GuiInfoContainer { + + private TileEntityMachineWoodBurner burner; + private final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/generators/gui_wood_burner_alt.png"); + + public GUIMachineWoodBurner(InventoryPlayer invPlayer, TileEntityMachineWoodBurner tedf) { + super(new ContainerMachineWoodBurner(invPlayer, tedf)); + burner = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 18, 16, 34, burner.power, burner.maxPower); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(0); + if(this.isMouseOverSlot(slot, mouseX, mouseY) && !slot.getHasStack()) { + List bonuses = burner.burnModule.getDesc(); + if(!bonuses.isEmpty()) { + this.func_146283_a(bonuses, mouseX, mouseY); + } + } + } + + if(burner.liquidBurn) burner.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 18, 16, 52); + + if(!burner.liquidBurn && guiLeft + 16 <= mouseX && guiLeft + 16 + 8 > mouseX && guiTop + 17 < mouseY && guiTop + 17 + 54 >= mouseY) { + func_146283_a(Arrays.asList(new String[] { (burner.burnTime / 20) + "s" }), mouseX, mouseY); + } + + if(guiLeft + 53 <= mouseX && guiLeft + 53 + 16 > mouseX && guiTop + 17 < mouseY && guiTop + 17 + 15 >= mouseY) { + func_146283_a(Arrays.asList(new String[] { burner.isOn ? EnumChatFormatting.GREEN + "ON" : EnumChatFormatting.RED + "OFF" }), mouseX, mouseY); + } + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 53 <= x && guiLeft + 53 + 16 > x && guiTop + 17 < y && guiTop + 17 + 15 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", false); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, burner.xCoord, burner.yCoord, burner.zCoord)); + } + + if(guiLeft + 46 <= x && guiLeft + 46 + 30 > x && guiTop + 37 < y && guiTop + 37 + 14 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("switch", false); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, burner.xCoord, burner.yCoord, burner.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.burner.hasCustomInventoryName() ? this.burner.getInventoryName() : I18n.format(this.burner.getInventoryName()); + + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(burner.liquidBurn) { + drawTexturedModalRect(guiLeft + 16, guiTop + 17, 176, 52, 60, 54); + drawTexturedModalRect(guiLeft + 79, guiTop + 17, 176, 106, 36, 54); + } + + if(burner.isOn) { + drawTexturedModalRect(guiLeft + 53, guiTop + 17, 196, 0, 16, 15); + } + + int p = (int) (burner.power * 34 / burner.maxPower); + drawTexturedModalRect(guiLeft + 143, guiTop + 52 - p, 176, 52 - p, 16, p); + + if(burner.maxBurnTime > 0 && !burner.liquidBurn) { + int b = (int) (burner.burnTime * 52 / burner.maxBurnTime); + drawTexturedModalRect(guiLeft + 17, guiTop + 70 - b, 192, 52 - b, 4, b); + } + + if(burner.liquidBurn) burner.tank.renderTank(guiLeft + 80, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java index 8ada24c3c..08d74a6c3 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java @@ -1,12 +1,14 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMassStorage; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.storage.TileEntityMassStorage; import net.minecraft.client.Minecraft; @@ -35,7 +37,7 @@ public class GUIMassStorage extends GuiInfoContainer { String percent = (((int) (storage.getStockpile() * 1000D / (double) storage.getCapacity())) / 10D) + "%"; this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 16, 18, 90, mouseX, mouseY, new String[] - { String.format("%,d", storage.getStockpile()) + " / " + String.format("%,d", storage.getCapacity()), percent }); + { String.format(Locale.US, "%,d", storage.getStockpile()) + " / " + String.format(Locale.US, "%,d", storage.getCapacity()), percent }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 62, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Click: Provide one", "Shift-click: Provide stack" }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 80, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Toggle output" }); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java b/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java index bc64a398e..13a3ac0f7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMicrowave; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityMicrowave; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java b/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java index 79681e6f8..6f5441984 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMiningLaser.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMiningLaser; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMixer.java b/src/main/java/com/hbm/inventory/gui/GUIMixer.java index 15dd31b72..974e41635 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMixer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMixer.java @@ -9,10 +9,9 @@ import com.hbm.inventory.container.ContainerMixer; import com.hbm.inventory.recipes.MixerRecipes; import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineMixer; -import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -47,8 +46,8 @@ public class GUIMixer extends GuiInfoContainer { List label = new ArrayList(); label.add(EnumChatFormatting.YELLOW + "Current recipe (" + (mixer.recipeIndex + 1) + "/" + recipes.length + "):"); MixerRecipe recipe = recipes[mixer.recipeIndex % recipes.length]; - if(recipe.input1 != null) label.add("-" + I18nUtil.resolveKey(recipe.input1.type.getUnlocalizedName())); - if(recipe.input2 != null) label.add("-" + I18nUtil.resolveKey(recipe.input2.type.getUnlocalizedName())); + if(recipe.input1 != null) label.add("-" + recipe.input1.type.getLocalizedName()); + if(recipe.input2 != null) label.add("-" + recipe.input2.type.getLocalizedName()); if(recipe.solidInput != null) label.add("-" + recipe.solidInput.extractForCyclingDisplay(20).getDisplayName()); label.add(EnumChatFormatting.RED + "Click to change!"); this.drawCustomInfoStat(x, y, guiLeft + 62, guiTop + 22, 12, 12, x, y, label); diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeFstbmb.java b/src/main/java/com/hbm/inventory/gui/GUINukeFstbmb.java index b03155b93..a3147d449 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeFstbmb.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeFstbmb.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeFstbmb; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.bomb.TileEntityNukeBalefire; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeN45.java b/src/main/java/com/hbm/inventory/gui/GUINukeN45.java deleted file mode 100644 index 055cc2a30..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUINukeN45.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerNukeN45; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.bomb.TileEntityNukeN45; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUINukeN45 extends GuiInfoContainer { - - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_n45.png"); - private TileEntityNukeN45 diFurnace; - - public GUINukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { - super(new ContainerNukeN45(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 168; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - String[] text = new String[] { "The first slot holds the payload.", - "Acceptable payloads:", - " -Det Cord", - " -TNT", - " -Explosive Charge", - " -Nuclear Charge", - "Using detonator while in mine mode will", - "arm the mine, set to explode when", - "it detects a large entity nearby."}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "The second slot is for green machine", - "upgrades. Entity detection range increases", - "by 5 blocks for every level.", - "When left empty, the mine can not be armed", - "an will behave like a regular bomb." }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(diFurnace.primed) - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 121, guiTop + 22, 6, 8, mouseX, mouseY, new String[]{ "Mine armed!" } ); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.primed) { - drawTexturedModalRect(guiLeft + 121, guiTop + 22, 176, 0, 6, 8); - } - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java index e91e91e65..4d22cde31 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java @@ -8,6 +8,7 @@ import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeTsar; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeTsar; import com.hbm.util.I18nUtil; @@ -15,14 +16,15 @@ import com.hbm.util.I18nUtil; public class GUINukeTsar extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/tsarBombaSchematic.png"); - private TileEntityNukeTsar testNuke; + private static ResourceLocation textureMike = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/ivyMikeSchematic.png"); + private TileEntityNukeTsar tsar; public GUINukeTsar(InventoryPlayer invPlayer, TileEntityNukeTsar tedf) { super(new ContainerNukeTsar(invPlayer, tedf)); - testNuke = tedf; + tsar = tedf; - this.xSize = 176; - this.ySize = 166; + this.xSize = 256; + this.ySize = 233; } @Override @@ -35,10 +37,10 @@ public class GUINukeTsar extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); + String name = this.tsar.hasCustomInventoryName() ? this.tsar.getInventoryName() : I18n.format(this.tsar.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 48, this.ySize - 96 + 2, 4210752); } @Override @@ -46,16 +48,23 @@ public class GUINukeTsar extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + Minecraft.getMinecraft().getTextureManager().bindTexture(textureMike); - if(testNuke.isReady()) - { - drawTexturedModalRect(guiLeft + 133, guiTop + 34, 176, 0, 16, 16); - } + if(tsar.isFilled()) drawTexturedModalRect(guiLeft + 18, guiTop + 50, 176, 18, 16, 16); + else if(tsar.isReady()) drawTexturedModalRect(guiLeft + 18, guiTop + 50, 176, 0, 16, 16); - if(testNuke.isFilled()) - { - drawTexturedModalRect(guiLeft + 133, guiTop + 34, 176, 18, 16, 16); + for(int i = 0; i < 4; i++) { + if(tsar.getStackInSlot(i) != null && tsar.getStackInSlot(i).getItem() == ModItems.explosive_lenses) switch(i) { + case 0: drawTexturedModalRect(guiLeft + 24 + 16, guiTop + 20 + 16, 209, 1, 23, 23); break; + case 2: drawTexturedModalRect(guiLeft + 47 + 16, guiTop + 20 + 16, 232, 1, 23, 23); break; + case 1: drawTexturedModalRect(guiLeft + 24 + 16, guiTop + 43 + 16, 209, 24, 23, 23); break; + case 3: drawTexturedModalRect(guiLeft + 47 + 16, guiTop + 43 + 16, 232, 24, 23, 23); break; + } } + + if(tsar.getStackInSlot(5) != null && tsar.getStackInSlot(5).getItem() == ModItems.tsar_core) + drawTexturedModalRect(guiLeft + 75 + 16, guiTop + 25 + 16, 176, 220, 80, 36); this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIOilburner.java b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java index 35112f2b6..d93949e1a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIOilburner.java +++ b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java @@ -1,12 +1,14 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerOilburner; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityHeaterOilburner; import net.minecraft.client.Minecraft; @@ -33,10 +35,10 @@ public class GUIOilburner extends GuiInfoContainer { public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); - this.drawCustomInfoStat(x, y, guiLeft + 116, guiTop + 17, 16, 52, x, y, new String[] { String.format("%,d", Math.min(diFurnace.heatEnergy, diFurnace.maxHeatEnergy)) + " / " + String.format("%,d", diFurnace.maxHeatEnergy) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 116, guiTop + 17, 16, 52, x, y, new String[] { String.format(Locale.US, "%,d", Math.min(diFurnace.heatEnergy, diFurnace.maxHeatEnergy)) + " / " + String.format(Locale.US, "%,d", diFurnace.maxHeatEnergy) + " TU" }); if(diFurnace.tank.getTankType().hasTrait(FT_Flammable.class)) { - this.drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 34, 18, 18, x, y, new String[] { diFurnace.setting + " mB/t", String.format("%,d", (int)(diFurnace.tank.getTankType().getTrait(FT_Flammable.class).getHeatEnergy() / 1000) * diFurnace.setting) + " TU/t" }); + this.drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 34, 18, 18, x, y, new String[] { diFurnace.setting + " mB/t", String.format(Locale.US, "%,d", (int)(diFurnace.tank.getTankType().getTrait(FT_Flammable.class).getHeatEnergy() / 1000) * diFurnace.setting) + " TU/t" }); } diFurnace.tank.renderTankInfo(this, x, y, guiLeft + 44, guiTop + 17, 16, 52); diff --git a/src/main/java/com/hbm/inventory/gui/GUIOreSlopper.java b/src/main/java/com/hbm/inventory/gui/GUIOreSlopper.java new file mode 100644 index 000000000..59458ad6c --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIOreSlopper.java @@ -0,0 +1,62 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerOreSlopper; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineOreSlopper; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIOreSlopper extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_ore_slopper.png"); + private TileEntityMachineOreSlopper slopper; + + public GUIOreSlopper(InventoryPlayer player, TileEntityMachineOreSlopper slopper) { + super(new ContainerOreSlopper(player, slopper)); + this.slopper = slopper; + + this.xSize = 176; + this.ySize = 204; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + slopper.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 18, 34, 52); + slopper.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 18, 16, 52, slopper.power, slopper.maxPower); + } + + @Override + protected void drawGuiContainerForegroundLayer( int i, int j) { + + String name = this.slopper.hasCustomInventoryName() ? this.slopper.getInventoryName() : I18n.format(this.slopper.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 9, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = (int) (slopper.progress * 35); + drawTexturedModalRect(guiLeft + 62, guiTop + 52 - i, 176, 34 - i, 34, i); + + int j = (int) (slopper.power * 52 / slopper.maxPower); + drawTexturedModalRect(guiLeft + 8, guiTop + 70 - j, 176, 86 - j, 16, j); + + if(slopper.power >= slopper.consumption) + drawTexturedModalRect(guiLeft + 12, guiTop + 4, 202, 34, 9, 12); + + slopper.tanks[0].renderTank(guiLeft + 26, guiTop + 70, this.zLevel, 16, 52); + slopper.tanks[1].renderTank(guiLeft + 116, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java new file mode 100644 index 000000000..3220d178b --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -0,0 +1,199 @@ +package com.hbm.inventory.gui; + +import java.util.Locale; + +import org.apache.commons.lang3.math.NumberUtils; +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerPWR; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.render.util.GaugeUtil; +import com.hbm.tileentity.machine.TileEntityPWRController; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class GUIPWR extends GuiInfoContainer { + + protected TileEntityPWRController controller; + private final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_pwr.png"); + + private GuiTextField field; + + public GUIPWR(InventoryPlayer inventory, TileEntityPWRController controller) { + super(new ContainerPWR(inventory, controller)); + this.controller = controller; + + this.xSize = 176; + this.ySize = 188; + } + + @Override + public void initGui() { + super.initGui(); + + Keyboard.enableRepeatEvents(true); + + this.field = new GuiTextField(this.fontRendererObj, guiLeft + 57, guiTop + 63, 30, 8); + this.field.setTextColor(0x00ff00); + this.field.setDisabledTextColour(0x008000); + this.field.setEnableBackgroundDrawing(false); + this.field.setMaxStringLength(3); + + this.field.setText((100 - controller.rodTarget) + ""); + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + this.drawCustomInfoStat(x, y, guiLeft + 115, guiTop + 31, 18, 18, x, y, new String[] { "Core: " + String.format(Locale.US, "%,d", controller.coreHeat) + " / " + String.format(Locale.US, "%,d", controller.coreHeatCapacity) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format(Locale.US, "%,d", controller.hullHeat) + " / " + String.format(Locale.US, "%,d", controller.hullHeatCapacityBase) + " TU" }); + + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { ((int) (controller.progress * 100 / controller.processTime)) + "%" }); + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 53, 54, 4, x, y, "Control rod level: " + (100 - (Math.round(controller.rodLevel * 100)/100)) + "%"); + + if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { + ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); + if(guiLeft + 88 <= x && guiLeft + 88 + 18 > x && guiTop + 4 < y && guiTop + 4 + 18 >= y) this.renderToolTip(display, x, y); + } + + controller.tanks[0].renderTankInfo(this, x, y, guiLeft + 8, guiTop + 5, 16, 52); + controller.tanks[1].renderTankInfo(this, x, y, guiLeft + 26, guiTop + 5, 16, 52); + } + + @Override + protected void drawItemStack(ItemStack stack, int x, int y, String label) { + GL11.glPushMatrix(); + GL11.glTranslatef(0.0F, 0.0F, 32.0F); + this.zLevel = 200.0F; + itemRender.zLevel = 200.0F; + FontRenderer font = null; + if(stack != null) font = stack.getItem().getFontRenderer(stack); + if(font == null) font = fontRendererObj; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), stack, x, y); + GL11.glScaled(0.5, 0.5, 0.5); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), stack, (x + font.getStringWidth(label) / 4) * 2, (y + 15) * 2, label); + this.zLevel = 0.0F; + itemRender.zLevel = 0.0F; + GL11.glPopMatrix(); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + + double scale = 1.25; + String flux = String.format(Locale.US, "%,.1f", controller.flux); + GL11.glScaled(1 / scale, 1 / scale, 1); + this.fontRendererObj.drawString(flux, (int) (165 * scale - this.fontRendererObj.getStringWidth(flux)), (int)(64 * scale), 0x00ff00); + GL11.glScaled(scale, scale, 1); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(controller.hullHeat > controller.hullHeatCapacityBase * 0.8 || controller.coreHeat > controller.coreHeatCapacity * 0.8) + drawTexturedModalRect(guiLeft + 147, guiTop, 176, 14, 26, 26); + + int p = (int) (controller.progress * 33 / controller.processTime); + drawTexturedModalRect(guiLeft + 54, guiTop + 33, 176, 0, p, 14); + + int c = (int) (controller.rodLevel * 52 / 100); + drawTexturedModalRect(guiLeft + 53, guiTop + 54, 176, 40, c, 2); + + //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); + //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); + + GaugeUtil.drawSmoothGauge(guiLeft + 124, guiTop + 40, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity, 5, 2, 1, 0x7F0000); + GaugeUtil.drawSmoothGauge(guiLeft + 160, guiTop + 40, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacityBase, 5, 2, 1, 0x7F0000); + + if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { + ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); + this.drawItemStack(display, guiLeft + 89, guiTop + 5, EnumChatFormatting.YELLOW + "" + controller.amountLoaded + "/" + controller.rodCount); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + } + + GL11.glDisable(GL11.GL_LIGHTING); + + controller.tanks[0].renderTank(guiLeft + 8, guiTop + 57, this.zLevel, 16, 52); + controller.tanks[1].renderTank(guiLeft + 26, guiTop + 57, this.zLevel, 16, 52); + + this.field.drawTextBox(); + } + + /*private void drawGauge(int x, int y, double d) { + GL11.glDisable(GL11.GL_TEXTURE_2D); + + d = MathHelper.clamp_double(d, 0, 1); + + float angle = (float) Math.toRadians(-d * 270 - 45); + Vec3 tip = Vec3.createVectorHelper(0, 5, 0); + Vec3 left = Vec3.createVectorHelper(1, -2, 0); + Vec3 right = Vec3.createVectorHelper(-1, -2, 0); + + tip.rotateAroundZ(angle); + left.rotateAroundZ(angle); + right.rotateAroundZ(angle); + + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_TRIANGLES); + tess.setColorOpaque_F(0F, 0F, 0F); + double mult = 1.5; + tess.addVertex(x + tip.xCoord * mult, y + tip.yCoord * mult, this.zLevel); + tess.addVertex(x + left.xCoord * mult, y + left.yCoord * mult, this.zLevel); + tess.addVertex(x + right.xCoord * mult, y + right.yCoord * mult, this.zLevel); + tess.setColorOpaque_F(0.75F, 0F, 0F); + tess.addVertex(x + tip.xCoord, y + tip.yCoord, this.zLevel); + tess.addVertex(x + left.xCoord, y + left.yCoord, this.zLevel); + tess.addVertex(x + right.xCoord, y + right.yCoord, this.zLevel); + tess.draw(); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + }*/ + + @Override + protected void mouseClicked(int mouseX, int mouseY, int i) { + super.mouseClicked(mouseX, mouseY, i); + this.field.mouseClicked(mouseX, mouseY, i); + + if(guiLeft + 88 <= mouseX && guiLeft + 88 + 18 > mouseX && guiTop + 58 < mouseY && guiTop + 58 + 18 >= mouseY) { + + if(NumberUtils.isNumber(field.getText())) { + int level = (int)MathHelper.clamp_double(Double.parseDouble(field.getText()), 0, 100); + field.setText(level + ""); + + NBTTagCompound control = new NBTTagCompound(); + control.setInteger("control", 100 - level); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, controller.xCoord, controller.yCoord, controller.zCoord)); + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1F)); + + } + } + } + + @Override + protected void keyTyped(char c, int i) { + if(this.field.textboxKeyTyped(c, i)) return; + super.keyTyped(c, i); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java b/src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java new file mode 100644 index 000000000..4c3400388 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java @@ -0,0 +1,48 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerPlasticBag; +import com.hbm.items.tool.ItemPlasticBag.InventoryPlasticBag; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIPlasticBag extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_plastic_bag.png"); + private ItemStack firstHeld; + + public GUIPlasticBag(InventoryPlayer invPlayer, InventoryPlasticBag box) { + super(new ContainerPlasticBag(invPlayer, box)); + + this.xSize = 176; + this.ySize = 216; + } + + @Override + public void drawScreen(int x, int y, float interp) { + if(firstHeld == null) { + firstHeld = this.mc.thePlayer.getHeldItem(); + } + + super.drawScreen(x, y, interp); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIPyroOven.java b/src/main/java/com/hbm/inventory/gui/GUIPyroOven.java new file mode 100644 index 000000000..a7befa9f0 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIPyroOven.java @@ -0,0 +1,62 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerPyroOven; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.oil.TileEntityMachinePyroOven; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIPyroOven extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_pyrooven.png"); + private TileEntityMachinePyroOven pyro; + + public GUIPyroOven(InventoryPlayer playerInv, TileEntityMachinePyroOven tile) { + super(new ContainerPyroOven(playerInv, tile)); + + this.pyro = tile; + this.xSize = 176; + this.ySize = 204; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + pyro.tanks[0].renderTankInfo(this, x, y, guiLeft + 8, guiTop + 18, 16, 52); + pyro.tanks[1].renderTankInfo(this, x, y, guiLeft + 116, guiTop + 18, 16, 52); + this.drawElectricityInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52, pyro.getPower(), pyro.getMaxPower()); + + this.drawCustomInfoStat(x, y, guiLeft + 108, guiTop + 76, 8, 8, guiLeft + 108, guiTop + 76, this.getUpgradeInfo(pyro)); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.pyro.hasCustomInventoryName() ? this.pyro.getInventoryName() : I18n.format(this.pyro.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 18, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = (int) (pyro.power * 52 / pyro.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 70 - i, 176, 64 - i, 16, i); + + int p = (int) (pyro.progress * 27); + drawTexturedModalRect(guiLeft + 57, guiTop + 47, 176, 0, p, 12); + + pyro.tanks[0].renderTank(guiLeft + 8, guiTop + 70, this.zLevel, 16, 52); + pyro.tanks[1].renderTank(guiLeft + 116, guiTop + 70, this.zLevel, 16, 52); + + this.drawInfoPanel(guiLeft + 108, guiTop + 76, 8, 8, 8); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java index 0b32f00e1..8a645908c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKBoiler.java @@ -6,8 +6,8 @@ import com.hbm.inventory.container.ContainerRBMKGeneric; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBoiler; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 85be6afb7..7867f1bc2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -11,8 +11,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.RBMKColumn; @@ -22,6 +22,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -102,11 +103,12 @@ public class GUIRBMKConsole extends GuiScreen { } } - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select red group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 17, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select yellow group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select green group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 39, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select blue group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 50, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select purple group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.RED + "Left click: Select red group", EnumChatFormatting.RED + "Right click: Assign red group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 17, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.YELLOW + "Left click: Select yellow group", EnumChatFormatting.YELLOW + "Right click: Assign yellow group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.GREEN + "Left click: Select green group", EnumChatFormatting.GREEN + "Right click: Assign green group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 39, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.BLUE + "Left click: Select blue group", EnumChatFormatting.BLUE + "Right click: Assign blue group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 50, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.LIGHT_PURPLE + "Left click: Select purple group", EnumChatFormatting.LIGHT_PURPLE + "Right click: Assign purple group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 70, guiTop + 82, 12, 12, mouseX, mouseY, new String[]{ "Cycle steam channel compressor setting" } ); } public void drawCustomInfoStat(int mouseX, int mouseY, int x, int y, int width, int height, int tPosX, int tPosY, String[] text) { @@ -116,9 +118,12 @@ public class GUIRBMKConsole extends GuiScreen { } @Override - protected void mouseClicked(int mouseX, int mouseY, int i) { - super.mouseClicked(mouseX, mouseY, i); - this.field.mouseClicked(mouseX, mouseY, i); + protected void mouseClicked(int mouseX, int mouseY, int key) { + super.mouseClicked(mouseX, mouseY, key); + this.field.mouseClicked(mouseX, mouseY, key); + + int LEFT_CLICK = 0; + int RIGTH_CLICK = 1; int bX = 86; int bY = 11; @@ -158,19 +163,54 @@ public class GUIRBMKConsole extends GuiScreen { return; } + //compressor + if(guiLeft + 70 <= mouseX && guiLeft + 70 + 12 > mouseX && guiTop + 82 < mouseY && guiTop + 82 + 12 >= mouseY) { + NBTTagCompound control = new NBTTagCompound(); + control.setBoolean("compressor", true); + List ints = new ArrayList(); + for(int j = 0; j < console.columns.length; j++) { + if(console.columns[j] != null && console.columns[j].type == ColumnType.BOILER && this.selection[j]) { + ints.add(j); + } + } + int[] cols = new int[ints.size()]; + for(int i = 0; i < cols.length; i++) cols[i] = ints.get(i); + control.setIntArray("cols", cols); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, console.xCoord, console.yCoord, console.zCoord)); + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1F)); + } + //select color groups for(int k = 0; k < 5; k++) { if(guiLeft + 6 + k * 11 <= mouseX && guiLeft + 6 + k * 11 + 10 > mouseX && guiTop + 70 < mouseY && guiTop + 70 + 10 >= mouseY) { - this.selection = new boolean[15 * 15]; - for(int j = 0; j < console.columns.length; j++) { + if(key == LEFT_CLICK) { + this.selection = new boolean[15 * 15]; - if(console.columns[j] != null && console.columns[j].type == ColumnType.CONTROL && console.columns[j].data.getShort("color") == k) { - this.selection[j] = true; + for(int j = 0; j < console.columns.length; j++) { + + if(console.columns[j] != null && console.columns[j].type == ColumnType.CONTROL && console.columns[j].data.getShort("color") == k) { + this.selection[j] = true; + } } } + if(key == RIGTH_CLICK) { + NBTTagCompound control = new NBTTagCompound(); + control.setByte("assignColor", (byte) k); + List ints = new ArrayList(); + for(int j = 0; j < console.columns.length; j++) { + if(console.columns[j] != null && console.columns[j].type == ColumnType.CONTROL && this.selection[j]) { + ints.add(j); + } + } + int[] cols = new int[ints.size()]; + for(int i = 0; i < cols.length; i++) cols[i] = ints.get(i); + control.setIntArray("cols", cols); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, console.xCoord, console.yCoord, console.zCoord)); + } + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.8F + k * 0.1F)); return; } @@ -320,9 +360,11 @@ public class GUIRBMKConsole extends GuiScreen { case FUEL_SIM: if(col.data.hasKey("c_heat")) { int fh = (int)Math.ceil((col.data.getDouble("c_heat") - 20) * 8 / col.data.getDouble("c_maxHeat")); + if(fh > 8) fh = 8; drawTexturedModalRect(guiLeft + x + 1, guiTop + y + size - fh - 1, 11, 191 - fh, 2, fh); int fe = (int)Math.ceil((col.data.getDouble("enrichment")) * 8); + if(fe > 8) fe = 8; drawTexturedModalRect(guiLeft + x + 4, guiTop + y + size - fe - 1, 14, 191 - fe, 2, fe); } break; @@ -356,6 +398,41 @@ public class GUIRBMKConsole extends GuiScreen { drawTexturedModalRect(guiLeft + x, guiTop + y, 0, 192, 10, 10); } + int highest = Integer.MIN_VALUE; + int lowest = Integer.MAX_VALUE; + + for(int i : console.fluxBuffer) { + if(i > highest) highest = i; + if(i < lowest) lowest = i; + } + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glLineWidth(2F); + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_LINES); + tess.setColorOpaque_I(0x00ff00); + int range = highest - lowest; + for(int i = 0; i < console.fluxBuffer.length - 1; i++) { + for(int j = 0; j < 2; j++) { + int k = i + j; + int flux = console.fluxBuffer[k]; + double x = guiLeft + 7 + k * 74D / console.fluxBuffer.length; + double y = guiTop + 127 - (flux - lowest) * 24D / Math.max(range, 1); + tess.addVertex(x, y, this.zLevel + 10); + } + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glPushMatrix(); + double scale = 0.5D; + GL11.glScaled(scale, scale, 1); + this.fontRendererObj.drawString(highest + "", (int) ((guiLeft + 8) / scale), (int) ((guiTop + 98) / scale), 0x00ff00); + this.fontRendererObj.drawString(highest + "", (int) ((guiLeft + 80 - this.fontRendererObj.getStringWidth(highest + "") * scale) / scale), (int) ((guiTop + 98) / scale), 0x00ff00); + this.fontRendererObj.drawString(lowest + "", (int) ((guiLeft + 8) / scale), (int) ((guiTop + 133 - this.fontRendererObj.FONT_HEIGHT * scale) / scale), 0x00ff00); + this.fontRendererObj.drawString(lowest + "", (int) ((guiLeft + 80 - this.fontRendererObj.getStringWidth(lowest + "") * scale) / scale), (int) ((guiTop + 133 - this.fontRendererObj.FONT_HEIGHT * scale) / scale), 0x00ff00); + GL11.glPopMatrix(); + this.field.drawTextBox(); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKControl.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKControl.java index fecf9b8e3..b1c8f415e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKControl.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKControl.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerRBMKControl; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java index 13ce7330f..acb1efae1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKControlAuto.java @@ -6,8 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerRBMKControlAuto; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlAuto; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java b/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java index f9014122c..c1fb2b367 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java @@ -6,8 +6,8 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityRadioRec; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java b/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java index b141317da..b44711ee5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorControl.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerReactorControl; import com.hbm.lib.RefStrings; import com.hbm.module.NumberDisplay; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityReactorControl; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorMultiblock.java b/src/main/java/com/hbm/inventory/gui/GUIReactorMultiblock.java deleted file mode 100644 index 7cf44051e..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorMultiblock.java +++ /dev/null @@ -1,189 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerReactorMultiblock; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIReactorMultiblock extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_reactor_large_experimental.png"); - private TileEntityMachineReactorLarge diFurnace; - - public GUIReactorMultiblock(InventoryPlayer invPlayer, TileEntityMachineReactorLarge tedf) { - super(new ContainerReactorMultiblock(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 88 - 52, 16, 52); - diFurnace.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 88 - 52, 16, 52); - diFurnace.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 108, 88, 4); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 114, 88, 4, new String[] { "Hull Temperature:", " " + Math.round((diFurnace.hullHeat) * 0.00001 * 980 + 20) + "°C" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 120, 88, 4, new String[] { "Core Temperature:", " " + Math.round((diFurnace.coreHeat) * 0.00002 * 980 + 20) + "°C" }); - - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 115, guiTop + 17, 18, 90, new String[] { "Operating Level: " + diFurnace.rods + "%" }); - - String fuel = ""; - - switch(diFurnace.type) { - case URANIUM: - fuel = "Uranium"; - break; - case MOX: - fuel = "MOX"; - break; - case PLUTONIUM: - fuel = "Plutonium"; - break; - case SCHRABIDIUM: - fuel = "Schrabidium"; - break; - case THORIUM: - fuel = "Thorium"; - break; - default: - fuel = "ERROR"; - break; - } - - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 98, guiTop + 18, 16, 88, new String[] { fuel + ": " + (diFurnace.fuel / diFurnace.fuelMult) + "/" + (diFurnace.maxFuel / diFurnace.fuelMult) + "ng" }); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 18, 16, 88, new String[] { "Depleted " + fuel + ": " + (diFurnace.waste / diFurnace.fuelMult) + "/" + (diFurnace.maxWaste / diFurnace.fuelMult) + "ng" }); - - String[] text0 = new String[] { diFurnace.rods > 0 ? "Reactor is ON" : "Reactor is OFF"}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 52, guiTop + 53, 18, 18, mouseX, mouseY, text0); - - String s = "0"; - - FluidType type = diFurnace.tanks[2].getTankType(); - if(type == Fluids.STEAM) s = "1x"; - if(type == Fluids.HOTSTEAM) s = "10x"; - if(type == Fluids.SUPERHOTSTEAM) s = "100x"; - - String[] text4 = new String[] { "Steam compression switch", - "Current compression level: " + s}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 63, guiTop + 107, 14, 18, mouseX, mouseY, text4); - } - - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - if(guiLeft + 115 <= x && guiLeft + 115 + 18 > x && guiTop + 17 < y && guiTop + 17 + 90 >= y) { - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - - int rods = (y - (guiTop + 24)) * 100 / 76; - - if(rods < 0) - rods = 0; - - if(rods > 100) - rods = 100; - - rods = 100 - rods; - - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, rods, 0)); - } - - if(guiLeft + 63 <= x && guiLeft + 63 + 14 > x && guiTop + 107 < y && guiTop + 107 + 18 >= y) { - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - int c = 0; - - FluidType type = diFurnace.tanks[2].getTankType(); - if(type == Fluids.STEAM) c = 0; - if(type == Fluids.HOTSTEAM) c = 1; - if(type == Fluids.SUPERHOTSTEAM) c = 2; - - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, c, 1)); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - int k = diFurnace.rods; - drawTexturedModalRect(guiLeft + 115, guiTop + 107 - 14 - (k * 76 / 100), 208, 36, 18, 14); - - if(diFurnace.rods > 0) - drawTexturedModalRect(guiLeft + 52, guiTop + 53, 212, 0, 18, 18); - - int q = diFurnace.getFuelScaled(88); - drawTexturedModalRect(guiLeft + 98, guiTop + 106 - q, 176, 124 - q, 16, q); - - int j = diFurnace.getWasteScaled(88); - drawTexturedModalRect(guiLeft + 134, guiTop + 106 - j, 192, 124 - j, 16, j); - - int s = diFurnace.size; - - if(s < 8) - drawTexturedModalRect(guiLeft + 50, guiTop + 17, 208, 50 + s * 18, 22, 18); - else - drawTexturedModalRect(guiLeft + 50, guiTop + 17, 230, 50 + (s - 8) * 18, 22, 18); - - - FluidType type = diFurnace.tanks[2].getTankType(); - if(type == Fluids.STEAM) drawTexturedModalRect(guiLeft + 63, guiTop + 107, 176, 18, 14, 18); - if(type == Fluids.HOTSTEAM) drawTexturedModalRect(guiLeft + 63, guiTop + 107, 190, 18, 14, 18); - if(type == Fluids.SUPERHOTSTEAM) drawTexturedModalRect(guiLeft + 63, guiTop + 107, 204, 18, 14, 18); - - if(diFurnace.hasHullHeat()) { - int i = diFurnace.getHullHeatScaled(88); - - i = (int) Math.min(i, 160); - - drawTexturedModalRect(guiLeft + 80, guiTop + 114, 0, 226, i, 4); - } - - if(diFurnace.hasCoreHeat()) { - int i = diFurnace.getCoreHeatScaled(88); - - i = (int) Math.min(i, 160); - - drawTexturedModalRect(guiLeft + 80, guiTop + 120, 0, 230, i, 4); - } - - if(diFurnace.tanks[2].getFill() > 0) { - int i = diFurnace.getSteamScaled(88); - - //i = (int) Math.min(i, 160); - - int offset = 234; - - if(type == Fluids.HOTSTEAM) offset += 4; - if(type == Fluids.SUPERHOTSTEAM) offset += 8; - - drawTexturedModalRect(guiLeft + 80, guiTop + 108, 0, offset, i, 4); - } - - diFurnace.tanks[0].renderTank(guiLeft + 8, guiTop + 88, this.zLevel, 16, 52); - diFurnace.tanks[1].renderTank(guiLeft + 26, guiTop + 88, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java b/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java index e02d155a5..e8d13b703 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java @@ -7,8 +7,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerReactorResearch; import com.hbm.lib.RefStrings; import com.hbm.module.NumberDisplay; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityReactorResearch; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java b/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java index f09558da7..be0312a00 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerReactorZirnox; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityReactorZirnox; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUISILEX.java b/src/main/java/com/hbm/inventory/gui/GUISILEX.java index 8de55b89a..b36c07fcd 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISILEX.java +++ b/src/main/java/com/hbm/inventory/gui/GUISILEX.java @@ -6,10 +6,12 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerSILEX; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.SILEXRecipes; +import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntitySILEX; import com.hbm.util.I18nUtil; @@ -18,6 +20,7 @@ import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class GUISILEX extends GuiInfoContainer { @@ -85,7 +88,7 @@ public class GUISILEX extends GuiInfoContainer { if(silex.tank.getFill() > 0) { - if(silex.tank.getTankType() == Fluids.ACID || silex.fluidConversion.containsKey(silex.tank.getTankType())) { + if(silex.tank.getTankType() == Fluids.PEROXIDE || silex.fluidConversion.containsKey(silex.tank.getTankType()) || SILEXRecipes.getOutput(new ItemStack(ModItems.fluid_icon, 1, silex.tank.getTankType().getID())) != null) { drawTexturedModalRect(guiLeft + 7, guiTop + 41, 176, 118, 54, 9); } else { drawTexturedModalRect(guiLeft + 7, guiTop + 41, 176, 109, 54, 9); @@ -99,7 +102,7 @@ public class GUISILEX extends GuiInfoContainer { drawTexturedModalRect(guiLeft + 26, guiTop + 124 - f, 176, 109 - f, 16, f); int i = silex.getFluidScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 42, 176, silex.tank.getTankType() == Fluids.ACID ? 43 : 50, i, 7); + drawTexturedModalRect(guiLeft + 8, guiTop + 42, 176, silex.tank.getTankType() == Fluids.PEROXIDE ? 43 : 50, i, 7); } private void drawWave(int x, int y, int height, int width, float resolution, float freq, int color, float thickness, float mult) { diff --git a/src/main/java/com/hbm/inventory/gui/GUISatDock.java b/src/main/java/com/hbm/inventory/gui/GUISatDock.java index 3276564df..369530b2f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISatDock.java +++ b/src/main/java/com/hbm/inventory/gui/GUISatDock.java @@ -1,24 +1,22 @@ package com.hbm.inventory.gui; -import org.lwjgl.opengl.GL11; - import com.hbm.inventory.container.ContainerSatDock; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineSatDock; - import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GUISatDock extends GuiInfoContainer { - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_dock.png"); - private TileEntityMachineSatDock diFurnace; + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_dock.png"); + private final TileEntityMachineSatDock tileSatelliteDock; - public GUISatDock(InventoryPlayer invPlayer, TileEntityMachineSatDock tedf) { - super(new ContainerSatDock(invPlayer, tedf)); - diFurnace = tedf; + public GUISatDock(InventoryPlayer invPlayer, TileEntityMachineSatDock tesd) { + super(new ContainerSatDock(invPlayer, tesd)); + tileSatelliteDock = tesd; this.xSize = 176; this.ySize = 168; @@ -36,10 +34,10 @@ public class GUISatDock extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + String name = this.tileSatelliteDock.hasCustomInventoryName() ? this.tileSatelliteDock.getInventoryName() : I18n.format(this.tileSatelliteDock.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0x404040); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x404040); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenBobble.java b/src/main/java/com/hbm/inventory/gui/GUIScreenBobble.java index 52998b48a..edd779896 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenBobble.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenBobble.java @@ -1,8 +1,14 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; +import java.util.List; +import java.lang.Math; + import org.lwjgl.opengl.GL11; +import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; +import com.hbm.util.Tuple.Pair; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; @@ -59,6 +65,8 @@ public class GUIScreenBobble extends GuiScreen { nextLevel += 10; String bobbleName = this.bobble.type.name; + if(this.bobble.type == BobbleType.MELLOW) + bobbleName = anagramIt(bobbleName, "GEORGEWILLIAMPATON"); this.fontRendererObj.drawStringWithShadow(bobbleName, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(bobbleName) / 2), nextLevel, 0x009900); nextLevel += 20; @@ -110,4 +118,49 @@ public class GUIScreenBobble extends GuiScreen { public boolean doesGuiPauseGame() { return false; } + + // Animates the letters (from -> to) back and forth over 1.5 seconds + private String anagramIt(String from, String to) { + double t = Math.sin((double)System.currentTimeMillis() / 1500.0) * 0.75 + 0.5; + + char[] lettersFrom = from.toCharArray(); + char[] lettersTo = to.toCharArray(); + boolean[] hasPairedLetter = new boolean[lettersFrom.length]; + List> letterTargets = new ArrayList>(); + + for(int i = 0; i < lettersFrom.length; i++) { + char letterFrom = lettersFrom[i]; + for(int o = 0; o < lettersTo.length; o++) { + char letterTo = lettersTo[o]; + if(letterFrom == letterTo && !hasPairedLetter[o]) { + double v = lerp((double)i, (double)o, t); + letterTargets.add(new Pair(v, lettersFrom[i])); + hasPairedLetter[o] = true; + break; + } + } + } + + for(int i = 0; i < letterTargets.size(); i++) { + for (int j = i + 1; j < letterTargets.size(); j++) { + if (letterTargets.get(i).key > letterTargets.get(j).key) { + Pair temp = letterTargets.get(i); + letterTargets.set(i, letterTargets.get(j)); + letterTargets.set(j, temp); + } + } + } + + String anagrammedText = ""; + for(Pair in : letterTargets) { + anagrammedText += in.value; + } + + return anagrammedText; + } + + private double lerp(double a, double b, double t) { + t = Math.max(Math.min(t, 1), 0); + return a * (1 - t) + b * t; + } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java b/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java index a96b12b6a..14ed3b483 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java @@ -9,8 +9,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.ItemBobmazonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.ItemBobmazonPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java b/src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java new file mode 100644 index 000000000..0038befa3 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenClayTablet.java @@ -0,0 +1,141 @@ +package com.hbm.inventory.gui; + +import java.util.List; +import java.util.Random; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.PedestalRecipes; +import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenClayTablet extends GuiScreen { + + protected int xSize = 142; + protected int ySize = 84; + protected int guiLeft; + protected int guiTop; + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/guide_pedestal.png"); + + public GUIScreenClayTablet() { } + + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + } + + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + protected void drawGuiContainerForegroundLayer(int i, int j) { } + + protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + + if(player.getHeldItem() != null && player.getHeldItem().hasTagCompound() && player.getHeldItem().stackTagCompound.hasKey("tabletSeed") && !PedestalRecipes.recipes.isEmpty()) { + Random rand = new Random(player.getHeldItem().stackTagCompound.getLong("tabletSeed")); + PedestalRecipe recipe = PedestalRecipes.recipes.get(rand.nextInt(PedestalRecipes.recipes.size())); + + if(recipe.extra == recipe.extra.FULL_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 32, 16, 16); + if(recipe.extra == recipe.extra.NEW_MOON) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 48, 16, 16); + if(recipe.extra == recipe.extra.SUN) drawTexturedModalRect(guiLeft + 120, guiTop + 62, 142, 64, 16, 16); + + for(int l = 0; l < 3; l++) { + for(int r = 0; r < 3; r++) { + if(rand.nextBoolean()) { + drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 16, 16, 16); + } else { + + AStack ingredient = recipe.input[r + l * 3]; + + if(ingredient == null) { + drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 0, 16, 16); + continue; + } + + List inputs = ingredient.extractForNEI(); + ItemStack input = inputs.size() <= 0 ? new ItemStack(ModItems.nothing) : inputs.get((int) (Math.abs(System.currentTimeMillis() / 1000) % inputs.size())); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + FontRenderer font = null; + if(input != null) font = input.getItem().getFontRenderer(recipe.output); + if(font == null) font = fontRendererObj; + + itemRender.zLevel = 300.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), input, guiLeft + 7 + r * 27, guiTop + 7 + l * 27); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), input, guiLeft + 7 + r * 27, guiTop + 7 + l * 27, input.stackSize > 1 ? (input.stackSize + "") : null); + itemRender.zLevel = 0.0F; + + GL11.glDisable(GL11.GL_LIGHTING); + this.mc.getTextureManager().bindTexture(texture); + this.zLevel = 300.0F; + } + } + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + FontRenderer font = null; + if(recipe.output != null) font = recipe.output.getItem().getFontRenderer(recipe.output); + if(font == null) font = fontRendererObj; + + itemRender.zLevel = 300.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), recipe.output, guiLeft + xSize / 2 - 8, guiTop - 20); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), recipe.output, guiLeft + xSize / 2 - 8, guiTop - 20, recipe.output.stackSize > 1 ? (recipe.output.stackSize + "") : null); + itemRender.zLevel = 0.0F; + + GL11.glDisable(GL11.GL_LIGHTING); + + this.mc.getTextureManager().bindTexture(texture); + this.zLevel = 300.0F; + + GL11.glDisable(GL11.GL_DEPTH_TEST); + String label = recipe.output.getDisplayName(); + font.drawString(label, guiLeft + (xSize - font.getStringWidth(label)) / 2, guiTop - 30, 0xffffff); + + } else { + + for(int l = 0; l < 3; l++) { + for(int r = 0; r < 3; r++) { + drawTexturedModalRect(guiLeft + 7 + r * 27, guiTop + 7 + l * 27, 142, 16, 16, 16); + } + } + } + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } + + @Override public boolean doesGuiPauseGame() { return false; } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenDesignator.java b/src/main/java/com/hbm/inventory/gui/GUIScreenDesignator.java index 67cae4179..7f9c35ac9 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenDesignator.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenDesignator.java @@ -8,8 +8,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.packet.ItemDesignatorPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.ItemDesignatorPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java index 7a35749db..e25744def 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java @@ -12,9 +12,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIDMulti; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTItemControlPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; +import com.hbm.packet.toserver.NBTItemControlPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -68,6 +67,7 @@ public class GUIScreenFluid extends GuiScreen { this.search.setTextColor(-1); this.search.setDisabledTextColour(-1); this.search.setEnableBackgroundDrawing(false); + this.search.setFocused(true); if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.fluid_identifier_multi) { this.primary = ItemFluidIDMulti.getType(player.getHeldItem(), true); @@ -111,7 +111,7 @@ public class GUIScreenFluid extends GuiScreen { return; if(guiLeft + 7 + k * 18 <= i && guiLeft + 7 + k * 18 + 18 > i && guiTop + 29 < j && guiTop + 29 + 18 >= j) - func_146283_a(Arrays.asList(new String[] { I18nUtil.resolveKey(this.searchArray[k].getUnlocalizedName()) }), i, j); + func_146283_a(Arrays.asList(new String[] { this.searchArray[k].getLocalizedName() }), i, j); } } @@ -170,7 +170,7 @@ public class GUIScreenFluid extends GuiScreen { String subs = this.search.getText().toLowerCase(Locale.US); for(FluidType type : Fluids.getInNiceOrder()) { - String name = I18nUtil.resolveKey(type.getUnlocalizedName()).toLowerCase(Locale.US); + String name = type.getLocalizedName().toLowerCase(); if(name.contains(subs) && !type.hasNoID()) { this.searchArray[next] = type; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java b/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java new file mode 100644 index 000000000..a4e9fe0e7 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenPreview.java @@ -0,0 +1,119 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenPreview extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/nei/gui_nei.png"); + protected ItemStack preview; + protected int zoom = 1; + + public GUIScreenPreview(ItemStack stack) { + this.preview = stack; + } + + public void drawScreen(int mouseX, int mouseY, float f) { + + if(this.mc.theWorld != null) { + this.drawRect(0, 0, this.width, this.height, 0xFFC6C6C6); + } else { + this.drawBackground(0); + } + + if(!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && Mouse.next()) { + int scroll = Mouse.getEventDWheel(); + + if(scroll < 0 && this.zoom > 1) this.zoom--; + if(scroll > 0 && this.zoom < 15) this.zoom++; + } + + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + protected void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(texture); + ScaledResolution res = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); + GL11.glScaled(zoom, zoom, zoom); + this.drawTexturedModalRect(res.getScaledWidth_double() / 2D / zoom - 9D, res.getScaledHeight_double() / 2D / zoom - 9D, 5, 87, 18, 18); + GL11.glPopMatrix(); + + String nameString = Item.itemRegistry.getNameForObject(preview.getItem()) + ", " + preview.getItemDamage(); + String zoomString = "Zoom: " + zoom; + String scaleString = "Windows Scale: " + res.getScaleFactor(); + + GL11.glPushMatrix(); + GL11.glScaled(0.5, 0.5, 1); + this.fontRendererObj.drawString(zoomString, this.width * 2 - this.fontRendererObj.getStringWidth(zoomString) - 2, this.height * 2 - 35, 0xff0000); + this.fontRendererObj.drawString(scaleString, this.width * 2 - this.fontRendererObj.getStringWidth(scaleString) - 2, this.height * 2 - 25, 0xff0000); + this.fontRendererObj.drawString(nameString, this.width * 2 - this.fontRendererObj.getStringWidth(nameString) - 2, this.height * 2 - 15, 0xff0000); + GL11.glPopMatrix(); + } + + public void drawTexturedModalRect(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { + double f = 0.00390625D; + double f1 = 0.00390625D; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV((double) (x + 0), (double) (y + sizeY), (double) this.zLevel, (double) ((float) (sourceX + 0) * f), (double) ((float) (sourceY + sizeY) * f1)); + tessellator.addVertexWithUV((double) (x + sizeX), (double) (y + sizeY), (double) this.zLevel, (double) ((float) (sourceX + sizeX) * f), (double) ((float) (sourceY + sizeY) * f1)); + tessellator.addVertexWithUV((double) (x + sizeX), (double) (y + 0), (double) this.zLevel, (double) ((float) (sourceX + sizeX) * f), (double) ((float) (sourceY + 0) * f1)); + tessellator.addVertexWithUV((double) (x + 0), (double) (y + 0), (double) this.zLevel, (double) ((float) (sourceX + 0) * f), (double) ((float) (sourceY + 0) * f1)); + tessellator.draw(); + } + + protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { + + if(preview == null) return; + + GL11.glPushMatrix(); + RenderHelper.enableGUIStandardItemLighting(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_DEPTH_TEST); + + GL11.glScaled(zoom, zoom, zoom); + + ScaledResolution res = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); + GL11.glTranslated(res.getScaledWidth_double() / 2D / zoom, res.getScaledHeight_double() / 2D / zoom, -200); + + this.zLevel = 200.0F; + itemRender.zLevel = 200.0F; + + GL11.glEnable(GL11.GL_DEPTH_TEST); + itemRender.renderItemAndEffectIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), preview, -8, -8); + itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), preview, -8, -8, null); + + itemRender.zLevel = 0.0F; + this.zLevel = 0.0F; + + GL11.glPopMatrix(); + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java index fb9f41afc..1f879d0a7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java @@ -6,8 +6,8 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTorchBase; import com.hbm.tileentity.network.TileEntityRadioTorchSender; import com.hbm.util.I18nUtil; @@ -85,7 +85,6 @@ public class GUIScreenRadioTorch extends GuiScreen { GL11.glEnable(GL11.GL_LIGHTING); } - private void drawGuiContainerForegroundLayer(int x, int y) { String name = I18nUtil.resolveKey(this.title); this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java new file mode 100644 index 000000000..11b38f125 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java @@ -0,0 +1,200 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.network.TileEntityRadioTorchLogic; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenRadioTorchLogic extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_rtty_logic_receiver.png"); + + protected TileEntityRadioTorchLogic logic; + protected GuiTextField frequency; + protected GuiTextField[] map; + protected int[] conditions; //so the 'save settings' paradigm applies to the conditions, too + + protected static final int xSize = 256; + protected static final int ySize = 204; + protected int guiLeft; + protected int guiTop; + + public GUIScreenRadioTorchLogic(TileEntityRadioTorchLogic logic) { + this.logic = logic; + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + + Keyboard.enableRepeatEvents(true); + + int oX = 4; + int oY = 4; + + this.frequency = new GuiTextField(this.fontRendererObj, guiLeft + 25 + oX, guiTop + 17 + oY, 90 - oX * 2, 14); + this.frequency.setTextColor(0x00ff00); + this.frequency.setDisabledTextColour(0x00ff00); + this.frequency.setEnableBackgroundDrawing(false); + this.frequency.setMaxStringLength(10); + this.frequency.setText(logic.channel == null ? "" : logic.channel); + + this.map = new GuiTextField[16]; + this.conditions = new int[16]; + + for(int i = 0; i < 16; i++) { + this.map[i] = new GuiTextField(this.fontRendererObj, guiLeft + 7 + (130 * (i / 8)) + oX + 18, guiTop + 53 + (18 * (i % 8)) + oY, 54 - oX * 2, 14); + this.map[i].setTextColor(0x00ff00); + this.map[i].setDisabledTextColour(0x00ff00); + this.map[i].setEnableBackgroundDrawing(false); + this.map[i].setMaxStringLength(15); + this.map[i].setText(logic.mapping[i] == null ? "" : logic.mapping[i]); + + this.conditions[i] = logic.conditions[i]; + } + } + + @Override + public void drawScreen(int x, int y, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, x, y); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(x, y); + GL11.glEnable(GL11.GL_LIGHTING); + //easy selection + if(guiLeft > x && guiLeft + xSize <= x && guiTop > y && guiTop + ySize <= y) return; + + if(!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && Mouse.next()) { + for(int j = 0; j < 16; j++) { + if(guiLeft + 7 + (130 * (j / 8)) <= x && guiLeft + 7 + 18 + (130 * (j / 8)) > x && guiTop + 53 + (18 * (j % 8)) <= y && guiTop + 53 + 18 + (18 * (j % 8)) > y) { + int scroll = Mouse.getEventDWheel(); + + if(scroll > 0) this.conditions[j] = (this.conditions[j] + 1) % 10; + if(scroll < 0) this.conditions[j] = (this.conditions[j] + 9) % 10; + return; + } + } + } + } + + private void drawGuiContainerForegroundLayer(int x, int y) { + String name = I18nUtil.resolveKey("container.rttyLogic"); + this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752); + //TODO add localization for *every* RTTY + if(guiLeft + 137 <= x && guiLeft + 137 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { logic.descending ? "Descending Order" : "Ascending Order" }), x, y); + } + if(guiLeft + 173 <= x && guiLeft + 173 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { logic.polling ? "Polling" : "State Change" }), x, y); + } + if(guiLeft + 209 <= x && guiLeft + 209 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { "Save Settings" }), x, y); + } + for(int j = 0; j < 16; j++) { + if(guiLeft + 7 + (130 * (j / 8)) <= x && guiLeft + 7 + 18 + (130 * (j / 8)) > x && guiTop + 53 + (18 * (j % 8)) <= y && guiTop + 53 + 18 + (18 * (j % 8)) > y) { + func_146283_a(Arrays.asList(new String[] { I18nUtil.resolveKey("desc.gui.rttyLogic.cond" + this.conditions[j]) }), x, y); + break; + } + } + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + if(logic.descending) drawTexturedModalRect(guiLeft + 137, guiTop + 17, 0, 204, 18, 18); + if(logic.polling) drawTexturedModalRect(guiLeft + 173, guiTop + 17, 0, 222, 18, 18); + + for(int i = 0; i < 16; i++) { + if(logic.mapping[i].isEmpty()) { + if(this.conditions[i] != 0) + drawTexturedModalRect(guiLeft + 7 + (130 * (i / 8)), guiTop + 53 + (18 * (i % 8)), 18 + this.conditions[i] * 18, 222, 18, 18); + } else { + drawTexturedModalRect(guiLeft + 7 + (130 * (i / 8)), guiTop + 53 + (18 * (i % 8)), 18 + this.conditions[i] * 18, 204, 18, 18); + drawTexturedModalRect(guiLeft + 85 + (130 * (i / 8)), guiTop + 57 + (18 * (i % 8)), 198, 204, 14, 10); + } + } + + for(int i = 0; i < 16; i++) this.map[i].drawTextBox(); + this.frequency.drawTextBox(); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + this.frequency.mouseClicked(x, y, i); + for(int j = 0; j < 16; j++) this.map[j].mouseClicked(x, y, i); + + if(guiLeft + 137 <= x && guiLeft + 137 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("d", !logic.descending); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, logic.xCoord, logic.yCoord, logic.zCoord)); + } + + if(guiLeft + 173 <= x && guiLeft + 173 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("p", !logic.polling); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, logic.xCoord, logic.yCoord, logic.zCoord)); + } + + if(guiLeft + 209 <= x && guiLeft + 209 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setString("c", this.frequency.getText()); + for(int j = 0; j < 16; j++) data.setString("m" + j, this.map[j].getText().isEmpty() ? "" : this.map[j].getText()); + for(int j = 0; j < 16; j++) data.setInteger("c" + j, this.conditions[j]); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, logic.xCoord, logic.yCoord, logic.zCoord)); + } + + for(int j = 0; j < 16; j++) { + if(guiLeft + 7 + (130 * (j / 8)) <= x && guiLeft + 7 + 18 + (130 * (j / 8)) > x && guiTop + 53 + (18 * (j % 8)) <= y && guiTop + 53 + 18 + (18 * (j % 8)) > y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + this.conditions[j] = (this.conditions[j] + 1) % 10; + } + } + } + + @Override + protected void keyTyped(char c, int i) { + + if(this.frequency.textboxKeyTyped(c, i)) + return; + + for(int j = 0; j < 16; j++) if(this.map[j].textboxKeyTyped(c, i)) return; + + if(i == 1 || i == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + this.mc.setIngameFocus(); + } + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java index af560d0d9..e7f4fe2bb 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java @@ -8,7 +8,7 @@ import com.hbm.items.ISatChip; import com.hbm.items.tool.ItemSatInterface; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.SatCoordPacket; +import com.hbm.packet.toserver.SatCoordPacket; import com.hbm.saveddata.satellites.Satellite.CoordActions; import com.hbm.saveddata.satellites.Satellite.Interfaces; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java index 392f620f9..bba6b5b4f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java @@ -10,7 +10,7 @@ import com.hbm.items.ISatChip; import com.hbm.items.tool.ItemSatInterface; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.SatLaserPacket; +import com.hbm.packet.toserver.SatLaserPacket; import com.hbm.saveddata.satellites.Satellite.InterfaceActions; import com.hbm.saveddata.satellites.Satellite.Interfaces; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java new file mode 100644 index 000000000..03021464e --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java @@ -0,0 +1,116 @@ +package com.hbm.inventory.gui; + +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenSnowglobe extends GuiScreen { + + TileEntitySnowglobe snowglobe; + + public GUIScreenSnowglobe(TileEntitySnowglobe bobble) { + this.snowglobe = bobble; + } + + @Override + public void initGui() { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:block.bobble"), 1.0F)); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + + this.drawDefaultBackground(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glDisable(GL11.GL_TEXTURE_2D); + + double sizeX = 300; + double sizeY = 150; + double left = (this.width - sizeX) / 2; + double top = (this.height - sizeY) / 2; + + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + tess.setColorRGBA_F(0F, 0.2F, 0F, 0.8F); + tess.addVertex(left + sizeX, top, this.zLevel); + tess.addVertex(left, top, this.zLevel); + tess.addVertex(left, top + sizeY, this.zLevel); + tess.addVertex(left + sizeX, top + sizeY, this.zLevel); + tess.draw(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_BLEND); + + int nextLevel = (int)top + 10; + + String bobbleTitle = "Nuclear Tech Commemorative Snowglobe"; + this.fontRendererObj.drawStringWithShadow(bobbleTitle, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(bobbleTitle) / 2), nextLevel, 0x00ff00); + + nextLevel += 10; + + String bobbleName = this.snowglobe.type.label; + this.fontRendererObj.drawStringWithShadow(bobbleName, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(bobbleName) / 2), nextLevel, 0x009900); + + nextLevel += 20; + + /*if(this.snowglobe.type.contribution != null) { + + String title = "Has contributed"; + this.fontRendererObj.drawStringWithShadow(title, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(title) / 2), nextLevel, 0x00ff00); + + nextLevel += 10; + + + String[] list = this.snowglobe.type.contribution.split("\\$"); + for(String text : list) { + this.fontRendererObj.drawStringWithShadow(text, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(text) / 2), nextLevel, 0x009900); + nextLevel += 10; + } + + nextLevel += 10; + }*/ + + if(this.snowglobe.type.inscription != null) { + + String title = "On the bottom is the following inscription:"; + this.fontRendererObj.drawStringWithShadow(title, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(title) / 2), nextLevel, 0x00ff00); + + nextLevel += 10; + + List list = I18nUtil.autoBreakWithParagraphs(this.fontRendererObj, this.snowglobe.type.inscription, 280); + for(String text : list) { + this.fontRendererObj.drawStringWithShadow(text, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(text) / 2), nextLevel, 0x009900); + nextLevel += 10; + } + + nextLevel += 10; + } + + GL11.glEnable(GL11.GL_LIGHTING); + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 4d09369be..a91652ef0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -7,11 +7,13 @@ import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.AssemblerRecipes; +import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; import com.hbm.inventory.recipes.ChemplantRecipes; import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.inventory.recipes.CrucibleRecipes; @@ -22,9 +24,8 @@ import com.hbm.items.machine.ItemStamp; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.ItemFolderPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; +import com.hbm.packet.toserver.ItemFolderPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -34,6 +35,7 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -56,21 +58,22 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(player.getHeldItem() == null) return; + + Item item = player.getHeldItem().getItem(); - if(player.getHeldItem().getItem() == ModItems.template_folder) { + this.isJournal = item != ModItems.template_folder; + if(!this.isJournal) { // Stamps - for(ItemStack i : ItemStamp.stamps.get(StampType.PLATE)) - allStacks.add(i.copy()); - for(ItemStack i : ItemStamp.stamps.get(StampType.WIRE)) - allStacks.add(i.copy()); - for(ItemStack i : ItemStamp.stamps.get(StampType.CIRCUIT)) - allStacks.add(i.copy()); + for(ItemStack i : ItemStamp.stamps.get(StampType.PLATE)) allStacks.add(i.copy()); + for(ItemStack i : ItemStamp.stamps.get(StampType.WIRE)) allStacks.add(i.copy()); + for(ItemStack i : ItemStamp.stamps.get(StampType.CIRCUIT)) allStacks.add(i.copy()); // Tracks for(int i = 1; i < ItemCassette.TrackType.values().length; i++) { allStacks.add(new ItemStack(ModItems.siren_track, 1, i)); } + // Fluid IDs FluidType[] fluids = Fluids.getInNiceOrder(); for(int i = 1; i < fluids.length; i++) { @@ -78,14 +81,18 @@ public class GUIScreenTemplateFolder extends GuiScreen { allStacks.add(new ItemStack(ModItems.fluid_identifier, 1, fluids[i].getID())); } } - // Assembly Templates - for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++) { - - ComparableStack comp = AssemblerRecipes.recipeList.get(i); - if(AssemblerRecipes.hidden.get(comp) == null) { - allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); - } + } + + // Assembly Templates + for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++) { + ComparableStack comp = AssemblerRecipes.recipeList.get(i); + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(comp); + if(recipe != null && recipe.folders.contains(item)) { + allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); } + } + + if(!this.isJournal) { // Chemistry Templates for(int i = 0; i < ChemplantRecipes.recipes.size(); i++) { ChemRecipe chem = ChemplantRecipes.recipes.get(i); @@ -96,16 +103,6 @@ public class GUIScreenTemplateFolder extends GuiScreen { for(int i = 0; i < CrucibleRecipes.recipes.size(); i++) { allStacks.add(new ItemStack(ModItems.crucible_template, 1, CrucibleRecipes.recipes.get(i).getId())); } - } else { - - for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++) { - - if(AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)) != null && - AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)).contains(player.getHeldItem().getItem())) - allStacks.add(new ItemStack(ModItems.assembly_template, 1, i)); - } - - isJournal = true; } search(null); @@ -143,7 +140,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(stack.getItem() == ModItems.fluid_identifier) { FluidType fluid = Fluids.fromID(stack.getItemDamage()); - if(I18nUtil.resolveKey(fluid.getUnlocalizedName()).toLowerCase(Locale.US).contains(sub)) { + if(fluid.getLocalizedName().contains(sub)) { stacks.add(stack); } } @@ -184,6 +181,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { this.search.setDisabledTextColour(0xffffff); this.search.setEnableBackgroundDrawing(false); this.search.setMaxStringLength(100); + this.search.setFocused(true); } @Override @@ -310,7 +308,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { public void drawIcon(boolean b) { try { RenderHelper.enableGUIStandardItemLighting(); - GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) 240 / 1.0F, (float) 240 / 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); if(stack != null) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java b/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java new file mode 100644 index 000000000..900e4e9b6 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenWikiRender.java @@ -0,0 +1,192 @@ +package com.hbm.inventory.gui; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.nio.IntBuffer; +import java.util.function.Function; + +import javax.imageio.ImageIO; + +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureUtil; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenWikiRender extends GuiScreen { + + // Basically the same thing as GUIScreenPreview, but will iterate through all provided preview stacks + // taking a screenshot of each, as fast as the game can render them + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/nei/gui_nei.png"); + protected ItemStack[] preview; + protected int index = 0; + protected int scale = 1; + protected String saveLocation = "wiki-screenshots"; + protected String prefix = ""; + + protected Function getStackName = (stack) -> { + return stack.getDisplayName(); + }; + + public GUIScreenWikiRender(ItemStack[] stacks, String prefix, String directory, int scale) { + this.preview = stacks; + this.prefix = prefix; + this.saveLocation = directory; + this.scale = scale; + } + + public GUIScreenWikiRender(ItemStack[] stacks, String prefix, String directory, int scale, Function getStackName) { + this(stacks, prefix, directory, scale); + this.getStackName = getStackName; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + if(this.mc.theWorld != null) { + GuiScreen.drawRect(0, 0, this.width, this.height, 0xFFC6C6C6); + } else { + this.drawBackground(0); + } + + // Once we've reached the end of the array, immedaitely close this GUI + if(index >= preview.length) { + this.mc.thePlayer.closeScreen(); + return; + } + + this.drawGuiContainerBackgroundLayer(); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(preview[index]); + GL11.glEnable(GL11.GL_LIGHTING); + + ScaledResolution res = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); + int zoom = scale * res.getScaleFactor(); + + try { + String slotName = getStackName.apply(preview[index]).replaceAll("§.", "").replaceAll("[^\\w ().-]+", ""); + if(!slotName.endsWith(".name")) { + saveScreenshot(Minecraft.getMinecraft().mcDataDir, saveLocation, prefix + slotName + ".png", zoom, zoom, zoom * 16, zoom * 16, 0xFF8B8B8B); + } + } catch (Exception ex) { + // Just skip any failures caused by display name or rendering + } + + index++; + } + + protected void drawGuiContainerBackgroundLayer() { + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(texture); + ScaledResolution res = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); + GL11.glScaled(scale, scale, scale); + this.drawTexturedModalRect(0, res.getScaledHeight_double() / scale - 18D, 5, 87, 18, 18); + GL11.glPopMatrix(); + } + + public void drawTexturedModalRect(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { + double f = 0.00390625D; + double f1 = 0.00390625D; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV((double) (x + 0), (double) (y + sizeY), (double) this.zLevel, (double) ((float) (sourceX + 0) * f), (double) ((float) (sourceY + sizeY) * f1)); + tessellator.addVertexWithUV((double) (x + sizeX), (double) (y + sizeY), (double) this.zLevel, (double) ((float) (sourceX + sizeX) * f), (double) ((float) (sourceY + sizeY) * f1)); + tessellator.addVertexWithUV((double) (x + sizeX), (double) (y + 0), (double) this.zLevel, (double) ((float) (sourceX + sizeX) * f), (double) ((float) (sourceY + 0) * f1)); + tessellator.addVertexWithUV((double) (x + 0), (double) (y + 0), (double) this.zLevel, (double) ((float) (sourceX + 0) * f), (double) ((float) (sourceY + 0) * f1)); + tessellator.draw(); + } + + protected void drawGuiContainerForegroundLayer(ItemStack preview) { + if(preview == null) return; + + GL11.glPushMatrix(); + RenderHelper.enableGUIStandardItemLighting(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_DEPTH_TEST); + + GL11.glScaled(scale, scale, scale); + + ScaledResolution res = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight); + GL11.glTranslated(9D, res.getScaledHeight_double() / scale - 9D, -200); + + this.zLevel = 200.0F; + itemRender.zLevel = 200.0F; + + GL11.glEnable(GL11.GL_DEPTH_TEST); + itemRender.renderItemAndEffectIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), preview, -8, -8); + itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), preview, -8, -8, null); + + itemRender.zLevel = 0.0F; + this.zLevel = 0.0F; + + GL11.glPopMatrix(); + } + + + private static IntBuffer pixelBuffer; + private static int[] pixelValues; + + // This implementation is based directly on ScreenShotHelper.saveScreenshot() + // But allows for defining a rect where you want to sample pixels from + private static void saveScreenshot(File dataDir, String ssDir, String fileName, int x, int y, int width, int height, int transparentColor) { + try { + File screenshotDirectory = new File(dataDir, ssDir); + screenshotDirectory.mkdir(); + + int bufferSize = width * height; + if(pixelBuffer == null || pixelBuffer.capacity() < bufferSize) { + pixelBuffer = BufferUtils.createIntBuffer(bufferSize); + pixelValues = new int[bufferSize]; + } + + GL11.glPixelStorei(GL11.GL_PACK_ALIGNMENT, 1); + GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1); + pixelBuffer.clear(); + GL11.glReadPixels(x, y, width, height, GL12.GL_BGRA, GL12.GL_UNSIGNED_INT_8_8_8_8_REV, pixelBuffer); + + pixelBuffer.get(pixelValues); + TextureUtil.func_147953_a(pixelValues, width, height); + BufferedImage imageBuffer = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); + imageBuffer.setRGB(0, 0, width, height, pixelValues, 0, width); + + // This is the only proper custom part, setting the background of an inventory slot to be transparent + if(transparentColor != 0) { + for(int iy = 0; iy < imageBuffer.getHeight(); ++iy) { + for(int ix = 0; ix < imageBuffer.getWidth(); ++ix) { + if(imageBuffer.getRGB(ix, iy) == transparentColor) { + imageBuffer.setRGB(ix, iy, 0); + } + } + } + } + + File imageFile; + if(fileName == null) { + throw new IllegalArgumentException("fileName must not be null"); + } else { + imageFile = new File(screenshotDirectory, fileName); + } + + ImageIO.write(imageBuffer, "png", imageFile); + } catch (Exception ex) { + MainRegistry.logger.warn("Failed to save NTM screenshot", ex); + } + } + +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUISoyuzLauncher.java b/src/main/java/com/hbm/inventory/gui/GUISoyuzLauncher.java index 644f6eff6..a1fdb30cc 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISoyuzLauncher.java +++ b/src/main/java/com/hbm/inventory/gui/GUISoyuzLauncher.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerSoyuzLauncher; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntitySoyuzLauncher; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUITestNuke.java b/src/main/java/com/hbm/inventory/gui/GUITestNuke.java deleted file mode 100644 index f616a4a92..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUITestNuke.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -import com.hbm.inventory.container.ContainerTestNuke; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.bomb.TileEntityTestNuke; - -public class GUITestNuke extends GuiContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gunBombSchematicSmall.png"); - private TileEntityTestNuke testNuke; - - public GUITestNuke(InventoryPlayer invPlayer, TileEntityTestNuke tedf) { - super(new ContainerTestNuke(invPlayer, tedf)); - testNuke = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - switch(testNuke.getNukeTier()) - { - case 0: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 0, 16, 16); break; - case 1: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 16, 16, 16); break; - case 2: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 32, 16, 16); break; - case 3: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 48, 16, 16); break; - case 4: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 64, 16, 16); break; - case 5: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 80, 16, 16); break; - case 6: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 96, 16, 16); break; - case 7: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 112, 16, 16); break; - case 8: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 128, 16, 16); break; - case 9: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 144, 16, 16); break; - case 999: - drawTexturedModalRect(guiLeft + 142, guiTop + 36, 176, 160, 16, 16); break; - default: - } - } - -} diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java index f53a71a13..04b188f14 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java @@ -1,8 +1,8 @@ package com.hbm.inventory.gui; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.turret.TileEntityTurretArty; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java index c4c79e551..c5964c108 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java @@ -8,9 +8,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java b/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java index 1458112b9..2ca5524f1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java @@ -1,8 +1,8 @@ package com.hbm.inventory.gui; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; import com.hbm.tileentity.turret.TileEntityTurretHIMARS; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/inventory/gui/GUIWatz.java b/src/main/java/com/hbm/inventory/gui/GUIWatz.java index 5153b1032..cf190b93e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIWatz.java +++ b/src/main/java/com/hbm/inventory/gui/GUIWatz.java @@ -1,11 +1,13 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerWatz; import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.render.util.GaugeUtil; import com.hbm.render.util.GaugeUtil.Gauge; import com.hbm.tileentity.machine.TileEntityWatz; @@ -35,7 +37,7 @@ public class GUIWatz extends GuiInfoContainer { public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); - this.drawCustomInfoStat(x, y, guiLeft + 13, guiTop + 100, 18, 18, x, y, new String[] { String.format("%,d", watz.heat) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 13, guiTop + 100, 18, 18, x, y, new String[] { String.format(Locale.US, "%,d", watz.heat) + " TU" }); this.drawCustomInfoStat(x, y, guiLeft + 143, guiTop + 71, 16, 16, x, y, new String[] { watz.isLocked ? "Unlock pellet IO configuration" : "Lock pellet IO configuration" }); watz.tanks[0].renderTankInfo(this, x, y, guiLeft + 142, guiTop + 23, 6, 45); @@ -48,7 +50,7 @@ public class GUIWatz extends GuiInfoContainer { this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 93, 4210752); double scale = 1.25; - String flux = String.format("%,.1f", watz.fluxDisplay); + String flux = String.format(Locale.US, "%,.1f", watz.fluxDisplay); GL11.glScaled(1 / scale, 1 / scale, 1); this.fontRendererObj.drawString(flux, (int) (161 * scale - this.fontRendererObj.getStringWidth(flux)), (int)(107 * scale), 0x00ff00); GL11.glScaled(scale, scale, 1); diff --git a/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java b/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java deleted file mode 100644 index 68aa1a7c5..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIWatzCore.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerWatzCore; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityWatzCore; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIWatzCore extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_watz_multiblock.png"); - private TileEntityWatzCore diFurnace; - - public GUIWatzCore(InventoryPlayer invPlayer, TileEntityWatzCore tedf) { - super(new ContainerWatzCore(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - //this.ySize = 222; - this.ySize = 256; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 106 - 18 - 70, 16, 70); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 106 - 70, 16, 70 - 18, diFurnace.power, diFurnace.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory")/* + String.valueOf(diFurnace.powerList)*/, 8, this.ySize - 96 + 2 - 34, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.powerList + " HE/tick"), 8, this.ySize - 50 + 2 + 13, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.heatList + " heat"), 8, this.ySize - 50 + 2 + 22, 4210752); - this.fontRendererObj.drawString(String.valueOf((diFurnace.decayMultiplier * diFurnace.heat)/100 /100 + " waste/tick"), 8, this.ySize - 50 + 2 + 31, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.powerMultiplier + "% power"), 100, this.ySize - 50 + 2 + 13, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.heatMultiplier + "% heat"), 100, this.ySize - 50 + 2 + 22, 4210752); - this.fontRendererObj.drawString(String.valueOf(diFurnace.decayMultiplier + "% decay"), 100, this.ySize - 50 + 2 + 31, 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 l = (int)diFurnace.getPowerScaled(70); - drawTexturedModalRect(guiLeft + 152, guiTop + 106 - 18 - l, 192, 70 - l, 16, l); - - diFurnace.tank.renderTank(guiLeft + 134, guiTop + 106 - 18, this.zLevel, 16, 70); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index 4c041eaea..58075788b 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -1,16 +1,28 @@ package com.hbm.inventory.gui; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; +import java.util.*; +import codechicken.nei.VisiblityData; +import codechicken.nei.api.INEIGuiHandler; +import codechicken.nei.api.TaggedInventoryArea; +import com.hbm.inventory.SlotPattern; +import com.hbm.inventory.container.ContainerBase; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; + +import cpw.mods.fml.common.Optional; +import net.minecraft.nbt.NBTTagCompound; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.RenderHelper; @@ -18,43 +30,72 @@ import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; -public abstract class GuiInfoContainer extends GuiContainer { - +@Optional.Interface(iface = "codechicken.nei.api.INEIGuiHandler", modid = "NotEnoughItems") +public abstract class GuiInfoContainer extends GuiContainer implements INEIGuiHandler { + static final ResourceLocation guiUtil = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_utility.png"); public GuiInfoContainer(Container p_i1072_1_) { super(p_i1072_1_); } - + public void drawElectricityInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height, long power, long maxPower) { if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) gui.drawInfo(new String[] { BobMathUtil.getShortNumber(power) + "/" + BobMathUtil.getShortNumber(maxPower) + "HE" }, mouseX, mouseY); } - + public void drawCustomInfoStat(int mouseX, int mouseY, int x, int y, int width, int height, int tPosX, int tPosY, String... text) { drawCustomInfoStat(mouseX, mouseY, x, y, width, height, tPosX, tPosY, Arrays.asList(text)); } - + public void drawCustomInfoStat(int mouseX, int mouseY, int x, int y, int width, int height, int tPosX, int tPosY, List text) { - + if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) this.func_146283_a(text, tPosX, tPosY); } - + public void drawInfo(String[] text, int x, int y) { this.func_146283_a(Arrays.asList(text), x, y); } - + + /** Automatically grabs upgrade info out of the tile entity if it's a IUpgradeInfoProvider and crams the available info into a list for display. Automation, yeah! */ + public List getUpgradeInfo(TileEntity tile) { + List lines = new ArrayList(); + + if(tile instanceof IUpgradeInfoProvider) { + IUpgradeInfoProvider provider = (IUpgradeInfoProvider) tile; + + lines.add(I18nUtil.resolveKey("upgrade.gui.title")); + + for(UpgradeType type : UpgradeType.values()) { + if(provider.canProvideInfo(type, 0, false)) { + int maxLevel = provider.getValidUpgrades().get(type); + switch(type) { + case SPEED: lines.add(I18nUtil.resolveKey("upgrade.gui.speed", maxLevel)); break; + case POWER: lines.add(I18nUtil.resolveKey("upgrade.gui.power", maxLevel)); break; + case EFFECT: lines.add(I18nUtil.resolveKey("upgrade.gui.effectiveness", maxLevel)); break; + case AFTERBURN: lines.add(I18nUtil.resolveKey("upgrade.gui.afterburner", maxLevel)); break; + case OVERDRIVE: lines.add(I18nUtil.resolveKey("upgrade.gui.overdrive", maxLevel)); break; + default: break; + } + } + } + } + + return lines; + } + @Deprecated public void drawCustomInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height, String[] text) { if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) this.func_146283_a(Arrays.asList(text), mouseX, mouseY); } - + public void drawInfoPanel(int x, int y, int width, int height, int type) { Minecraft.getMinecraft().getTextureManager().bindTexture(guiUtil); - + switch(type) { case 0: drawTexturedModalRect(x, y, 0, 0, 8, 8); break; //Small blue I case 1: drawTexturedModalRect(x, y, 0, 8, 8, 8); break; //Small green I @@ -70,38 +111,72 @@ public abstract class GuiInfoContainer extends GuiContainer { case 11: drawTexturedModalRect(x, y, 24, 32, 16, 16); break; //Large grey * } } - + protected boolean isMouseOverSlot(Slot slot, int x, int y) { return this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y); } - + + //whoever made this private on the super deserves to eat a bowl of wasps + public Slot getSlotAtPosition(int p_146975_1_, int p_146975_2_) + { + for (int k = 0; k < this.inventorySlots.inventorySlots.size(); ++k) + { + Slot slot = (Slot)this.inventorySlots.inventorySlots.get(k); + + if (this.isMouseOverSlot(slot, p_146975_1_, p_146975_2_)) + { + return slot; + } + } + + return null; + } + + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } + /* Getters for external use of the GUI's rect rendering, such as NumberDisplay */ public int getGuiTop() { return this.guiTop; } - + public int getGuiLeft() { return this.guiLeft; } - + public float getZLevel() { return this.zLevel; } - + public void setZLevel(float level) { this.zLevel = level; } - + public RenderItem getItemRenderer() { return this.itemRender; } - + public FontRenderer getFontRenderer() { return this.fontRendererObj; } + + protected void drawItemStack(ItemStack stack, int x, int y, String label) { + GL11.glTranslatef(0.0F, 0.0F, 32.0F); + this.zLevel = 200.0F; + itemRender.zLevel = 200.0F; + FontRenderer font = null; + if(stack != null) font = stack.getItem().getFontRenderer(stack); + if(font == null) font = fontRendererObj; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), stack, x, y); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), stack, x, y, label); + this.zLevel = 0.0F; + itemRender.zLevel = 0.0F; + } + protected void drawStackText(List lines, int x, int y, FontRenderer font) { - + if(!lines.isEmpty()) { GL11.glDisable(GL12.GL_RESCALE_NORMAL); RenderHelper.disableStandardItemLighting(); @@ -115,11 +190,11 @@ public abstract class GuiInfoContainer extends GuiContainer { while(iterator.hasNext()) { Object[] line = (Object[]) iterator.next(); int lineWidth = 0; - + boolean hasStack = false; - + for(Object o : line) { - + if(o instanceof String) { lineWidth += font.getStringWidth((String) o); } else { @@ -127,7 +202,7 @@ public abstract class GuiInfoContainer extends GuiContainer { hasStack = true; } } - + if(hasStack) { height += 18; } else { @@ -169,19 +244,19 @@ public abstract class GuiInfoContainer extends GuiContainer { this.drawGradientRect(minX - 3, minY + height + 2, minX + longestline + 3, minY + height + 3, color1, color1); for(int index = 0; index < lines.size(); ++index) { - + Object[] line = (Object[]) lines.get(index); int indent = 0; boolean hasStack = false; - + for(Object o : line) { if(!(o instanceof String)) { hasStack = true; } } - + for(Object o : line) { - + if(o instanceof String) { font.drawStringWithShadow((String) o, minX + indent, minY + (hasStack ? 4 : 0), -1); indent += font.getStringWidth((String) o) + 2; @@ -217,4 +292,56 @@ public abstract class GuiInfoContainer extends GuiContainer { GL11.glEnable(GL12.GL_RESCALE_NORMAL); } } + + public void click() { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + } + + ///NEI drag and drop support + @Override + @Optional.Method(modid = "NotEnoughItems") + public boolean handleDragNDrop(GuiContainer gui, int x, int y, ItemStack stack, int button) { + if(gui instanceof GuiInfoContainer && stack != null){ + Slot slot = getSlotAtPosition(x,y); + if(slot instanceof SlotPattern){ + if(inventorySlots instanceof ContainerBase) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setInteger("slot", slot.slotNumber); + + NBTTagCompound item = new NBTTagCompound(); + stack.writeToNBT(item); + tag.setTag("stack", item); + + TileEntity te = (TileEntity) ((ContainerBase) inventorySlots).tile; + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(tag, te.xCoord, te.yCoord, te.zCoord)); + return true; + } + } + } + return false; + } + //all credits for impl to GTNH's EnderCore fork + @Override + @Optional.Method(modid = "NotEnoughItems") + public boolean hideItemPanelSlot(GuiContainer gc, int x, int y, int w, int h) { + return false; + } + @Override + @Optional.Method(modid = "NotEnoughItems") + public VisiblityData modifyVisiblity(GuiContainer gc, VisiblityData vd) { + return vd; + } + + @Override + @Optional.Method(modid = "NotEnoughItems") + public Iterable getItemSpawnSlots(GuiContainer gc, ItemStack is) { + return null; + } + + @Override + @Optional.Method(modid = "NotEnoughItems") + public List getInventoryAreas(GuiContainer gc) { + return Collections.emptyList(); + } + } diff --git a/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java b/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java new file mode 100644 index 000000000..c406fd3c9 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java @@ -0,0 +1,321 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; +import java.util.Random; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.network.TileEntityRadioTelex; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatAllowedCharacters; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class GuiScreenRadioTelex extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_telex.png"); + protected TileEntityRadioTelex telex; + protected int xSize = 256; + protected int ySize = 244; + protected int guiLeft; + protected int guiTop; + protected GuiTextField txFrequency; + protected GuiTextField rxFrequency; + protected boolean textFocus = false; + + protected String[] txBuffer; + protected int cursorPos = 0; + + public GuiScreenRadioTelex(TileEntityRadioTelex tile) { + this.telex = tile; + this.txBuffer = new String[tile.txBuffer.length]; + + for(int i = 0; i < txBuffer.length; i++) { + this.txBuffer[i] = tile.txBuffer[i]; + } + + for(int i = 4; i > 0; i--) { + if(!txBuffer[i].isEmpty()) { + cursorPos = i; + break; + } + } + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + + Keyboard.enableRepeatEvents(true); + + this.txFrequency = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 110, 90, 14); + this.txFrequency.setTextColor(0x00ff00); + this.txFrequency.setDisabledTextColour(0x00ff00); + this.txFrequency.setEnableBackgroundDrawing(false); + this.txFrequency.setMaxStringLength(10); + this.txFrequency.setText(telex.txChannel == null ? "" : telex.txChannel); + + this.rxFrequency = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 224, 90, 14); + this.rxFrequency.setTextColor(0x00ff00); + this.rxFrequency.setDisabledTextColour(0x00ff00); + this.rxFrequency.setEnableBackgroundDrawing(false); + this.rxFrequency.setMaxStringLength(10); + this.rxFrequency.setText(telex.rxChannel == null ? "" : telex.rxChannel); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + private void drawGuiContainerForegroundLayer(int x, int y) { + + if(checkClick(x, y, 7, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "BELL", "Plays a bell when this character is received"}), x, y); + if(checkClick(x, y, 27, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "PRINT", "Forces recipient to print message after transmission ends"}), x, y); + if(checkClick(x, y, 47, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "CLEAR SCREEN", "Wipes message buffer when this character is received"}), x, y); + if(checkClick(x, y, 67, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "FORMAT", "Inserts format character for message formatting"}), x, y); + if(checkClick(x, y, 87, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "PAUSE", "Pauses message transmission for one second"}), x, y); + + if(checkClick(x, y, 127, 105, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GREEN + "SAVE ID"}), x, y); + if(checkClick(x, y, 147, 105, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.YELLOW + "SEND MESSAGE"}), x, y); + if(checkClick(x, y, 167, 105, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.RED + "DELETE MESSAGE BUFFER"}), x, y); + + if(checkClick(x, y, 127, 219, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GREEN + "SAVE ID"}), x, y); + if(checkClick(x, y, 147, 219, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.AQUA + "PRINT MESSAGE"}), x, y); + if(checkClick(x, y, 167, 219, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.RED + "CLEAR SCREEN"}), x, y); + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + this.txFrequency.drawTextBox(); + this.rxFrequency.drawTextBox(); + + for(int line = 0; line < 5; line++) { + String text = txBuffer[line]; + int y = 11 + 14 * line; + + String format = EnumChatFormatting.RESET + ""; + + for(int index = 0; index < text.length(); index++) { + int x = 11 + 7 * index; + char c = text.charAt(index); + x += (7 - this.fontRendererObj.getCharWidth(c)) / 2; + if(c == '§' && text.length() > index + 1) { + format = "\u00a7" + text.charAt(index + 1); + x -= 3; + } + String glyph = format + c; + if(c == '\u0007') glyph = EnumChatFormatting.RED + "B"; + if(c == '\u000c') glyph = EnumChatFormatting.RED + "P"; + if(c == '\u007f') glyph = EnumChatFormatting.RED + "<"; + if(c == '\u0016') glyph = EnumChatFormatting.RED + "W"; + this.fontRendererObj.drawString(glyph, guiLeft + x, guiTop + y, 0x00ff00); + } + + if(System.currentTimeMillis() % 1000 < 500 && this.textFocus) { + int x = Math.max(11 + 7 * (text.length() - 1) + 7, 11); + if(this.cursorPos == line) { + this.fontRendererObj.drawString("|", guiLeft + x, guiTop + y, 0x00ff00); + } + } + } + + for(int line = 0; line < 5; line++) { + String text = telex.rxBuffer[line]; + int y = 145 + 14 * line; + + String format = EnumChatFormatting.RESET + ""; + + int x = 11; + + for(int index = 0; index < text.length(); index++) { + + char c = text.charAt(index); + x += (7 - this.fontRendererObj.getCharWidth(c)) / 2; + if(c == '§' && text.length() > index + 1) { + format = "\u00a7" + text.charAt(index + 1); + c = ' '; + } else if(c == '§') { + c = ' '; + } else if(index > 0 && text.charAt(index - 1) == '§') { + c = ' '; + x -= 14; + } + String glyph = format + c; + this.fontRendererObj.drawString(glyph, guiLeft + x, guiTop + y, 0x00ff00); + x += 7; + } + } + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glLineWidth(3F); + Random rand = new Random(telex.sendingChar); + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_LINES); + tess.setColorOpaque_I(0x00ff00); + double offset = 0; + for(int i = 0; i < 48; i++) { + tess.addVertex(guiLeft + 199 + i, guiTop + 93.5 + offset, this.zLevel + 10); + if(telex.sendingChar != ' ' && i > 4 && i < 43) offset = rand.nextGaussian() * 7; else offset = 0; + offset = MathHelper.clamp_double(offset, -7D, 7D); + tess.addVertex(guiLeft + 199 + i + 1, guiTop + 93.5 + offset, this.zLevel + 10); + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + this.txFrequency.mouseClicked(x, y, i); + this.rxFrequency.mouseClicked(x, y, i); + + if(guiLeft + 7 <= x && guiLeft + 7 + 242 > x && guiTop + 7 < y && guiTop + 7 + 74 >= y) { + this.textFocus = true; + } else { + this.textFocus = false; + } + + char character = '\0'; + String cmd = null; + + /* special characters */ + // BEL + if(checkClick(x, y, 7, 85, 18, 18)) character = '\u0007'; // bell + // PRT + if(checkClick(x, y, 27, 85, 18, 18)) character = '\u000c'; // form feed + // CLS + if(checkClick(x, y, 47, 85, 18, 18)) character = '\u007f'; // delete + // FMT + if(checkClick(x, y, 67, 85, 18, 18)) character = '§'; // minecraft formatting character + // PSE + if(checkClick(x, y, 87, 85, 18, 18)) character = '\u0016'; // synchronous idle + + // SVE + if(checkClick(x, y, 127, 105, 18, 18) || checkClick(x, y, 127, 219, 18, 18)) cmd = "sve"; // save channel + // SND + if(checkClick(x, y, 147, 105, 18, 18)) cmd = "snd"; // send message in TX buffer + // DEL + if(checkClick(x, y, 167, 105, 18, 18)) { // delete message in TX buffer + cmd = "rxdel"; + for(int j = 0; j < 5; j++) this.txBuffer[j] = ""; + NBTTagCompound data = new NBTTagCompound(); + for(int j = 0; j < 5; j++) data.setString("tx" + j, this.txBuffer[j]); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, telex.xCoord, telex.yCoord, telex.zCoord)); + } + // PRT + if(checkClick(x, y, 147, 219, 18, 18)) cmd = "rxprt"; // print message in RX buffer + // CLS + if(checkClick(x, y, 167, 219, 18, 18)) cmd = "rxcls"; // delete message in RX buffer + + if(cmd != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setString("cmd", cmd); + + if("snd".equals(cmd)) { + for(int j = 0; j < 5; j++) data.setString("tx" + j, this.txBuffer[j]); + } + + if("sve".equals(cmd)) { + data.setString("txChan", this.txFrequency.getText()); + data.setString("rxChan", this.rxFrequency.getText()); + } + + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, telex.xCoord, telex.yCoord, telex.zCoord)); + } + + if(character != '\0') { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + setTextFocus(); + submitChar(character); + } + } + + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } + + protected void setTextFocus() { + this.textFocus = true; + this.txFrequency.setFocused(false); + this.rxFrequency.setFocused(false); + } + + @Override + protected void keyTyped(char c, int i) { + + if(this.txFrequency.textboxKeyTyped(c, i)) return; + if(this.rxFrequency.textboxKeyTyped(c, i)) return; + + if(this.textFocus) { + + if(i == 1) { + this.textFocus = false; + return; + } + + if(i == Keyboard.KEY_UP) this.cursorPos--; + if(i == Keyboard.KEY_DOWN) this.cursorPos++; + + this.cursorPos = MathHelper.clamp_int(cursorPos, 0, 4); + + if(ChatAllowedCharacters.isAllowedCharacter(c)) { + submitChar(c); + return; + } + + if(i == Keyboard.KEY_BACK && this.txBuffer[cursorPos].length() > 0) { + this.txBuffer[cursorPos] = this.txBuffer[cursorPos].substring(0, this.txBuffer[cursorPos].length() - 1); + } + } + + if(i == 1 || i == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + this.mc.setIngameFocus(); + } + } + + protected void submitChar(char c) { + String line = this.txBuffer[cursorPos]; + + if(line.length() < TileEntityRadioTelex.lineWidth) { + this.txBuffer[cursorPos] = line + c; + } + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + NBTTagCompound data = new NBTTagCompound(); + for(int j = 0; j < 5; j++) data.setString("tx" + j, this.txBuffer[j]); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, telex.xCoord, telex.yCoord, telex.zCoord)); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } +} diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 11a636399..306c2e654 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -22,6 +22,8 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.util.Compat; import net.minecraft.block.Block; @@ -44,22 +46,22 @@ public class MatDistribution extends SerializableRecipe { registerEntry(Items.minecart, MAT_IRON, INGOT.q(5)); //castables - registerEntry(ModItems.blade_titanium, MAT_TITANIUM, INGOT.q(2)); - registerEntry(ModItems.blade_tungsten, MAT_TUNGSTEN, INGOT.q(2)); - registerEntry(ModItems.blades_steel, MAT_STEEL, INGOT.q(4)); - registerEntry(ModItems.blades_titanium, MAT_TITANIUM, INGOT.q(4)); - registerEntry(ModItems.blades_advanced_alloy, MAT_ALLOY, INGOT.q(4)); - registerEntry(ModItems.stamp_stone_flat, MAT_STONE, INGOT.q(3)); - registerEntry(ModItems.stamp_iron_flat, MAT_IRON, INGOT.q(3)); - registerEntry(ModItems.stamp_steel_flat, MAT_STEEL, INGOT.q(3)); - registerEntry(ModItems.stamp_titanium_flat, MAT_TITANIUM, INGOT.q(3)); - registerEntry(ModItems.stamp_obsidian_flat, MAT_OBSIDIAN, INGOT.q(3)); - registerEntry(ModItems.hull_small_steel, MAT_STEEL, INGOT.q(2)); - registerEntry(ModItems.hull_small_aluminium, MAT_ALUMINIUM, INGOT.q(2)); - registerEntry(ModItems.hull_big_steel, MAT_STEEL, INGOT.q(6)); - registerEntry(ModItems.hull_big_aluminium, MAT_ALUMINIUM, INGOT.q(6)); - registerEntry(ModItems.hull_big_titanium, MAT_TITANIUM, INGOT.q(6)); - registerEntry(ModItems.pipes_steel, MAT_STEEL, BLOCK.q(3)); + registerEntry(ModItems.blade_titanium, MAT_TITANIUM, INGOT.q(2)); + registerEntry(ModItems.blade_tungsten, MAT_TUNGSTEN, INGOT.q(2)); + registerEntry(ModItems.blades_steel, MAT_STEEL, INGOT.q(4)); + registerEntry(ModItems.blades_titanium, MAT_TITANIUM, INGOT.q(4)); + registerEntry(ModItems.blades_advanced_alloy, MAT_ALLOY, INGOT.q(4)); + registerEntry(ModItems.stamp_stone_flat, MAT_STONE, INGOT.q(3)); + registerEntry(ModItems.stamp_iron_flat, MAT_IRON, INGOT.q(3)); + registerEntry(ModItems.stamp_steel_flat, MAT_STEEL, INGOT.q(3)); + registerEntry(ModItems.stamp_titanium_flat, MAT_TITANIUM, INGOT.q(3)); + registerEntry(ModItems.stamp_obsidian_flat, MAT_OBSIDIAN, INGOT.q(3)); + registerEntry(ModItems.pipes_steel, MAT_STEEL, BLOCK.q(3)); + + registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.SMALL), MAT_GUNMETAL, PLATE.q(1, 4)); + registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.SMALL_STEEL), MAT_WEAPONSTEEL, PLATE.q(1, 4)); + registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE), MAT_GUNMETAL, PLATE.q(1, 2)); + registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE_STEEL), MAT_WEAPONSTEEL, PLATE.q(1, 2)); //actual ores if(!Compat.isModLoaded(Compat.MOD_GT6)) { @@ -72,19 +74,23 @@ public class MatDistribution extends SerializableRecipe { registerOre(OreDictManager.COAL.ore(), MAT_CARBON, GEM.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.GOLD.ore(), MAT_GOLD, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.U.ore(), MAT_URANIUM, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); - registerOre(OreDictManager.TH232.ore(), MAT_THORIUM, INGOT.q(2), MAT_URANIUM, NUGGET.q(3), MAT_STONE, QUART.q(1)); + for(String ore : OreDictManager.TH232.all(MaterialShapes.ORE)) registerOre(ore, MAT_THORIUM, INGOT.q(2), MAT_URANIUM, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.CU.ore(), MAT_COPPER, INGOT.q(2), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.PB.ore(), MAT_LEAD, INGOT.q(2), MAT_GOLD, NUGGET.q(1), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.BE.ore(), MAT_BERYLLIUM, INGOT.q(2), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.CO.ore(), MAT_COBALT, INGOT.q(1), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.REDSTONE.ore(), MAT_REDSTONE, INGOT.q(4), MAT_STONE, QUART.q(1)); - registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(4)); - registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(4)); + registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(1)); + registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(1)); registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10)); registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1)); registerEntry(new ItemStack(Items.coal, 1, 1), MAT_CARBON, NUGGET.q(3)); + + registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD), MAT_CARBON, NUGGET.q(1)); + registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.COAL), MAT_CARBON, NUGGET.q(2)); + registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC), MAT_CARBON, NUGGET.q(1)); } public static void registerEntry(Object key, Object... matDef) { @@ -93,6 +99,7 @@ public class MatDistribution extends SerializableRecipe { if(key instanceof Item) comp = new ComparableStack((Item) key); if(key instanceof Block) comp = new ComparableStack((Block) key); if(key instanceof ItemStack) comp = new ComparableStack((ItemStack) key); + if(key instanceof ComparableStack) comp = (ComparableStack) key; if(comp == null) return; if(matDef.length % 2 == 1) return; diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index a93ef368a..e6660ac78 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -9,41 +9,62 @@ public class MaterialShapes { public static final List allShapes = new ArrayList(); + public static final MaterialShapes ANY = new MaterialShapes(0).noAutogen(); + public static final MaterialShapes ORE = new MaterialShapes(0, "ore", "oreNether").noAutogen(); + public static final MaterialShapes ORENETHER = new MaterialShapes(0, "oreNether").noAutogen(); + public static final MaterialShapes QUANTUM = new MaterialShapes(1); // 1/72 of an ingot, allows the ingot to be divisible through 2, 4, 6, 8, 9, 12, 24 and 36 - public static final MaterialShapes NUGGET = new MaterialShapes(8, "nugget"); + public static final MaterialShapes NUGGET = new MaterialShapes(8, "nugget", "tiny"); + public static final MaterialShapes TINY = new MaterialShapes(8, "tiny").noAutogen(); + public static final MaterialShapes FRAGMENT = new MaterialShapes(8, "bedrockorefragment"); public static final MaterialShapes DUSTTINY = new MaterialShapes(NUGGET.quantity, "dustTiny"); - public static final MaterialShapes WIRE = new MaterialShapes(9); + public static final MaterialShapes WIRE = new MaterialShapes(9, "wireFine"); + public static final MaterialShapes BOLT = new MaterialShapes(9, "bolt"); public static final MaterialShapes BILLET = new MaterialShapes(NUGGET.quantity * 6, "billet"); public static final MaterialShapes INGOT = new MaterialShapes(NUGGET.quantity * 9, "ingot"); public static final MaterialShapes GEM = new MaterialShapes(INGOT.quantity, "gem"); public static final MaterialShapes CRYSTAL = new MaterialShapes(INGOT.quantity, "crystal"); public static final MaterialShapes DUST = new MaterialShapes(INGOT.quantity, "dust"); + public static final MaterialShapes DENSEWIRE = new MaterialShapes(INGOT.quantity, "wireDense"); public static final MaterialShapes PLATE = new MaterialShapes(INGOT.quantity, "plate"); public static final MaterialShapes CASTPLATE = new MaterialShapes(INGOT.quantity * 3, "plateTriple"); + public static final MaterialShapes WELDEDPLATE = new MaterialShapes(INGOT.quantity * 6, "plateSextuple"); + public static final MaterialShapes SHELL = new MaterialShapes(INGOT.quantity * 4, "shell"); + public static final MaterialShapes PIPE = new MaterialShapes(INGOT.quantity * 3, "ntmpipe"); public static final MaterialShapes QUART = new MaterialShapes(162); public static final MaterialShapes BLOCK = new MaterialShapes(INGOT.quantity * 9, "block"); + public static final MaterialShapes HEAVY_COMPONENT = new MaterialShapes(CASTPLATE.quantity * 256, "componentHeavy"); + + public static final MaterialShapes LIGHTBARREL = new MaterialShapes(INGOT.quantity * 3, "barrelLight"); + public static final MaterialShapes HEAVYBARREL = new MaterialShapes(INGOT.quantity * 6, "barrelHeavy"); + public static final MaterialShapes LIGHTRECEIVER = new MaterialShapes(INGOT.quantity * 4, "receiverLight"); + public static final MaterialShapes HEAVYRECEIVER = new MaterialShapes(INGOT.quantity * 9, "receiverHeavy"); + public static final MaterialShapes MECHANISM = new MaterialShapes(INGOT.quantity * 4, "gunMechanism"); + public static final MaterialShapes STOCK = new MaterialShapes(INGOT.quantity * 4, "stock"); + public static final MaterialShapes GRIP = new MaterialShapes(INGOT.quantity * 2, "grip"); public static void registerCompatShapes() { if(Compat.isModLoaded(Compat.MOD_GT6)) { - new MaterialShapes(BLOCK.q(1), "blockDust"); - new MaterialShapes(BLOCK.q(1), "blockGem"); - new MaterialShapes(BLOCK.q(1), "blockIngot"); - new MaterialShapes(BLOCK.q(1), "blockSolid"); - new MaterialShapes(INGOT.q(9, 8), "crushed"); - new MaterialShapes(INGOT.q(9, 72), "crushedTiny"); - new MaterialShapes(INGOT.q(10, 8), "crushedPurified"); - new MaterialShapes(INGOT.q(10, 72), "crushedPurifiedTiny"); - new MaterialShapes(INGOT.q(11, 8), "crushedCentrifuged"); - new MaterialShapes(INGOT.q(11, 72), "crushedCentrifugedTiny"); - new MaterialShapes(INGOT.q(1, 4), "dustSmall"); - new MaterialShapes(INGOT.q(1, 72), "dustDiv72"); - new MaterialShapes(INGOT.q(10, 9), "dustImpure"); - new MaterialShapes(INGOT.q(11, 9), "dustPure"); - new MaterialShapes(INGOT.q(12, 9), "dustRefined"); + new MaterialShapes(BLOCK.q(1), "blockDust").noAutogen(); + new MaterialShapes(BLOCK.q(1), "blockGem").noAutogen(); + new MaterialShapes(BLOCK.q(1), "blockIngot").noAutogen(); + new MaterialShapes(BLOCK.q(1), "blockSolid").noAutogen(); + new MaterialShapes(INGOT.q(9, 8), "crushed").noAutogen(); + new MaterialShapes(INGOT.q(9, 72), "crushedTiny").noAutogen(); + new MaterialShapes(INGOT.q(10, 8), "crushedPurified").noAutogen(); + new MaterialShapes(INGOT.q(10, 72), "crushedPurifiedTiny").noAutogen(); + new MaterialShapes(INGOT.q(11, 8), "crushedCentrifuged").noAutogen(); + new MaterialShapes(INGOT.q(11, 72), "crushedCentrifugedTiny").noAutogen(); + new MaterialShapes(INGOT.q(1, 4), "dustSmall").noAutogen(); + new MaterialShapes(INGOT.q(1, 72), "dustDiv72").noAutogen(); + new MaterialShapes(INGOT.q(10, 9), "dustImpure").noAutogen(); + new MaterialShapes(INGOT.q(11, 9), "dustPure").noAutogen(); + new MaterialShapes(INGOT.q(12, 9), "dustRefined").noAutogen(); } } + public boolean noAutogen = false; private int quantity; public final String[] prefixes; @@ -58,6 +79,12 @@ public class MaterialShapes { allShapes.add(this); } + /** Disables recipe autogen for special cases like compatibility prefixes (TINY, ORENETHER), technical prefixes (ANY) or prefixes that have to be handled manually (ORE) */ + public MaterialShapes noAutogen() { + this.noAutogen = true; + return this; + } + public int q(int amount) { return this.quantity * amount; } @@ -69,4 +96,8 @@ public class MaterialShapes { public String name() { return (prefixes != null && prefixes.length > 0) ? prefixes[0] : "unknown"; } + + public String make(NTMMaterial mat) { + return this.name() + mat.names[0]; + } } diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 58ccaad64..188b66133 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -44,90 +44,126 @@ public class Mats { public static final int _VS = 0; /* Alloy Space, up to 70 materials. Use >20_000 as an extension.*/ public static final int _AS = 30; + public static final int _ES = 20_000; //Vanilla and vanilla-like - public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x7F7F7F, 0x353535, 0x4D2F23); - public static final NTMMaterial MAT_CARBON = makeAdditive( 1499, df("Carbon"), 0x363636, 0x030303, 0x404040); - public static final NTMMaterial MAT_COAL = make( 1400, COAL) .setConversion(MAT_CARBON, 2, 1); - public static final NTMMaterial MAT_LIGNITE = make( 1401, LIGNITE) .setConversion(MAT_CARBON, 3, 1); - public static final NTMMaterial MAT_COALCOKE = make( 1410, COALCOKE) .setConversion(MAT_CARBON, 4, 3); - public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 4, 3); - public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3); - public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1); - public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(CASTPLATE); - public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(CASTPLATE); - public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000); - public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D); - public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D); - public static final NTMMaterial MAT_WROUGHTIRON = makeSmeltable(2602, df("WroughtIron"), 0xFAAB89); - public static final NTMMaterial MAT_PIGIRON = makeSmeltable(2603, df("PigIron"), 0xFF8B59); - public static final NTMMaterial MAT_METEORICIRON = makeSmeltable(2604, df("MeteoricIron"), 0x715347); - public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87); + public static final NTMMaterial MAT_WOOD = makeNonSmeltable(_VS + 03, WOOD, 0x896727, 0x281E0B, 0x896727).setAutogen(STOCK, GRIP).n(); + public static final NTMMaterial MAT_IVORY = makeNonSmeltable(_VS + 04, BONE, 0xFFFEEE, 0x797870, 0xEDEBCA).setAutogen(GRIP).n(); + public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x7F7F7F, 0x353535, 0x4D2F23).n(); + public static final NTMMaterial MAT_CARBON = makeAdditive( 699, CARBON, 0x363636, 0x030303, 0x404040).setAutogen(WIRE, BLOCK).n(); + public static final NTMMaterial MAT_COAL = makeNonSmeltable(600, COAL, 0x363636, 0x030303, 0x404040).setConversion(MAT_CARBON, 2, 1).setAutogen(FRAGMENT).n(); + public static final NTMMaterial MAT_LIGNITE = makeNonSmeltable(601, LIGNITE, 0x542D0F, 0x261508, 0x472913).setConversion(MAT_CARBON, 3, 1).setAutogen(FRAGMENT).n(); + public static final NTMMaterial MAT_COALCOKE = make( 610, COALCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_PETCOKE = make( 611, PETCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_LIGCOKE = make( 612, LIGCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_GRAPHITE = make( 620, GRAPHITE) .setConversion(MAT_CARBON, 1, 1).n(); + public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setAutogen(FRAGMENT).n(); + public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setAutogen(FRAGMENT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setAutogen(FRAGMENT, WIRE, NUGGET, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); + public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setAutogen(FRAGMENT).n(); + public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n(); + public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m(); + public static final NTMMaterial MAT_WROUGHTIRON = makeSmeltable(2602, df("WroughtIron"), 0xFAAB89).m(); + public static final NTMMaterial MAT_PIGIRON = makeSmeltable(2603, df("PigIron"), 0xFF8B59).m(); + public static final NTMMaterial MAT_METEORICIRON = makeSmeltable(2604, df("MeteoricIron"), 0x715347).m(); + public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m(); //Radioactive - public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_U233 = makeSmeltable(9233, U233, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_U235 = makeSmeltable(9235, U235, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_U238 = makeSmeltable(9238, U238, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_THORIUM = makeSmeltable(9032, TH232, 0xBF825F, 0x1C0000, 0xBF825F).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_PLUTONIUM = makeSmeltable(9400, PU, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_RGP = makeSmeltable(9401, PURG, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_PU238 = makeSmeltable(9438, PU238, 0xFFBC59, 0xFF8E2B, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_PU239 = makeSmeltable(9439, PU239, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_PU240 = makeSmeltable(9440, PU240, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_PU241 = makeSmeltable(9441, PU241, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0x647064).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_POLONIUM = makeSmeltable(8410, PO210, 0x563A26).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_TECHNIETIUM = makeSmeltable(4399, TC99, 0xFAFFFF, 0x576C6C, 0xCADFDF).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xE9FAF6).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0x958989).setShapes(NUGGET, BILLET, INGOT); - public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, BILLET, INGOT, DUST); - public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(NUGGET, BILLET, INGOT, DUST); - public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST); - public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_SCHRARANIUM = makeSmeltable(12601, SRN, 0x2B3227, 0x2B3227, 0x24AFAC).setShapes(INGOT, BLOCK); - public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK); + public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_U233 = makeSmeltable(9233, U233, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_U235 = makeSmeltable(9235, U235, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_U238 = makeSmeltable(9238, U238, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_THORIUM = makeSmeltable(9032, TH232, 0xBF825F, 0x1C0000, 0xBF825F).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_PLUTONIUM = makeSmeltable(9400, PU, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_RGP = makeSmeltable(9401, PURG, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_PU238 = makeSmeltable(9438, PU238, 0xFFBC59, 0xFF8E2B, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_PU239 = makeSmeltable(9439, PU239, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_PU240 = makeSmeltable(9440, PU240, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_PU241 = makeSmeltable(9441, PU241, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0xCEB3B9, 0x3A1C21, 0x93767B).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0xCEB3B9, 0x3A1C21, 0x93767B).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0xCEB3B9, 0x3A1C21, 0x93767B).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0xA6B2A6, 0x030F03, 0x647064).setAutogen(NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_POLONIUM = makeSmeltable(8410, PO210, 0x968779, 0x3D1509, 0x715E4A).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_TECHNETIUM = makeSmeltable(4399, TC99, 0xFAFFFF, 0x576C6C, 0xCADFDF).setAutogen(FRAGMENT, NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xFCFCFC, 0xADBFBA, 0xE9FAF6).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0xECE0E0, 0x221616, 0x958989).setAutogen(NUGGET, BILLET).m(); + public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setAutogen(NUGGET, BILLET, DUST).m(); + public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setAutogen(NUGGET, BILLET, DUST).m(); + public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0xB38A94, 0x12020E, 0x7B535D).setAutogen(NUGGET, BILLET, DUST).m(); + public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setAutogen(NUGGET, WIRE, BILLET, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m(); + public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setAutogen(DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); + public static final NTMMaterial MAT_SCHRARANIUM = makeSmeltable(12601, SRN, 0x2B3227, 0x2B3227, 0x24AFAC).setAutogen(BLOCK).m(); + public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setAutogen(NUGGET, BILLET, BLOCK).m(); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT); - public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST); - public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setAutogen(FRAGMENT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setAutogen(FRAGMENT, WIRE, BOLT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setAutogen(FRAGMENT, NUGGET, WIRE, BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF, 0xB200FF, 0xB200FF).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setAutogen(NUGGET).m(); + public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setAutogen(NUGGET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setAutogen(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setAutogen(FRAGMENT, NUGGET, DUSTTINY, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setAutogen(FRAGMENT, NUGGET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_EMERALD = makeNonSmeltable(401, EMERALD, 0xBAFFD4, 0x003900, 0x17DD62).setConversion(MAT_BERYLLIUM, 4, 3).setAutogen(FRAGMENT, DUST, GEM, BLOCK).n(); + public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setAutogen(FRAGMENT, NUGGET, DUSTTINY, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setAutogen(FRAGMENT, DUSTTINY, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORAX = makeSmeltable(501, BORAX, 0xFFFFFF, 0x946E23, 0xFFECC6).setAutogen(FRAGMENT, INGOT, DUST).n(); + public static final NTMMaterial MAT_LANTHANIUM = makeSmeltable(5700, LA, 0xC8E0E0, 0x3B5353, 0xA1B9B9).setAutogen(FRAGMENT, BLOCK).m(); + public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setAutogen(FRAGMENT, NUGGET, WIRE, DUSTTINY, BILLET, DUST, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_SODIUM = makeSmeltable(1100, NA, 0xD3BF9E, 0x3A5A6B, 0x7E9493).setAutogen(FRAGMENT, INGOT, DUST).m(); + public static final NTMMaterial MAT_SODALITE = makeNonSmeltable(1101, SODALITE, 0xDCE5F6, 0x4927B4, 0x96A7E6).setAutogen(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_STRONTIUM = makeSmeltable(3800, SR, 0xF1E8BA, 0x271E00, 0xCAC193).setAutogen(FRAGMENT, INGOT, DUST).m(); + public static final NTMMaterial MAT_CALCIUM = makeSmeltable(2000, CA, 0xCFCFA6, 0x747F6E, 0xB7B784).setAutogen(DUST).m(); + public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setAutogen(FRAGMENT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_SULFUR = makeNonSmeltable(1600, S, 0xFCEE80, 0xBDA022, 0xF1DF68).setAutogen(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_KNO = makeNonSmeltable(700, KNO, 0xD4D4D4, 0x969696, 0xC9C9C9).setAutogen(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_FLUORITE = makeNonSmeltable(900, F, 0xFFFFFF, 0xB0A192, 0xE1DBD4).setAutogen(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_PHOSPHORUS = makeNonSmeltable(1500, P_RED, 0xCB0213, 0x600006, 0xBA0615).setAutogen(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_CHLOROCALCITE = makeNonSmeltable(1701, CHLOROCALCITE, 0xF7E761, 0x475B46, 0xB8B963).setAutogen(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_MOLYSITE = makeNonSmeltable(1702, MOLYSITE, 0xF9E97B, 0x216E00, 0xD0D264).setAutogen(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_CINNABAR = makeNonSmeltable(8001, CINNABAR, 0xD87070, 0x993030, 0xBF4E4E).setAutogen(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setAutogen(DUST).m(); + public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setAutogen(FRAGMENT, NUGGET, BILLET).m(); + public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setAutogen(FRAGMENT, BLOCK).n(); + public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setAutogen(NUGGET, CASTPLATE, WELDEDPLATE).m(); //Alloys - public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT); - public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE); - public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE); - public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setShapes(DUST); - public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setShapes(BLOCK); - public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).setShapes(INGOT); + public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setAutogen(DUSTTINY, BOLT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, GRIP).m(); + public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setAutogen(WIRE, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setAutogen(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setAutogen(BOLT, DUST, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m(); + public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, STOCK, GRIP).m(); + public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setAutogen(HEAVYBARREL, HEAVYRECEIVER).m(); + public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); + public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); + public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setAutogen(CASTPLATE, LIGHTBARREL, LIGHTRECEIVER).m(); + public static final NTMMaterial MAT_ABRONZE = makeSmeltable(_AS + 17, ABRONZE, 0xDB9462, 0x203331, 0x77644D).setAutogen(CASTPLATE, LIGHTBARREL, LIGHTRECEIVER).m(); + public static final NTMMaterial MAT_BSCCO = makeSmeltable(_AS + 18, BSCCO, 0x767BF1, 0x000000, 0x5E62C0).setAutogen(DENSEWIRE).m(); + public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setAutogen(WIRE, DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setAutogen(DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_DNT = makeSmeltable(_AS + 15, DNT, 0x7582B9, 0x16000E, 0x455289).setAutogen(DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setAutogen(DUST).n(); + public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setAutogen(BLOCK).n(); + public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).n(); + public static final NTMMaterial MAT_GUNMETAL = makeSmeltable(_AS + 19, GUNMETAL, 0xFFEF3F, 0xAD3600, 0xF9C62C).setAutogen(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); + public static final NTMMaterial MAT_WEAPONSTEEL = makeSmeltable(_AS + 20, WEAPONSTEEL, 0xA0A0A0, 0x000000, 0x808080).setAutogen(SHELL, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); + public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x3AC4DA, 0x09282C, 0x30A4B7).setAutogen(PLATE, CASTPLATE, SHELL, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).m(); - @Deprecated public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } - @Deprecated public static NTMMaterial makeAdditive(int id, DictFrame dict, int color) { return makeAdditive(id, dict, color, color, color); } + //Extension + public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setAutogen(FRAGMENT).n(); + public static final NTMMaterial MAT_POLYMER = makeNonSmeltable(_ES + 01, POLYMER, 0x363636, 0x040404, 0x272727).setAutogen(STOCK, GRIP).n(); + public static final NTMMaterial MAT_BAKELITE = makeNonSmeltable(_ES + 02, BAKELITE, 0xF28086, 0x2B0608, 0xC93940).setAutogen(STOCK, GRIP).n(); + public static final NTMMaterial MAT_RUBBER = makeNonSmeltable(_ES + 03, RUBBER, 0x817F75, 0x0F0D03, 0x4B4A3F).setAutogen(PIPE, GRIP).n(); + public static final NTMMaterial MAT_HARDPLASTIC = makeNonSmeltable(_ES + 04, PC, 0xEDE7C4, 0x908A67, 0xE1DBB8).setAutogen(STOCK, GRIP).n(); + public static final NTMMaterial MAT_PVC = makeNonSmeltable(_ES + 05, PVC, 0xFCFCFC, 0x9F9F9F, 0xF0F0F0).setAutogen(STOCK, GRIP).n(); + + public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } public static NTMMaterial make(int id, DictFrame dict) { return new NTMMaterial(id, dict); @@ -141,6 +177,10 @@ public class Mats { return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.ADDITIVE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor); } + public static NTMMaterial makeNonSmeltable(int id, DictFrame dict, int solidColorLight, int solidColorDark, int moltenColor) { + return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.NOT_SMELTABLE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor); + } + public static DictFrame df(String string) { return new DictFrame(string); } @@ -168,7 +208,7 @@ public class Mats { String materialName = name.substring(prefix.length()); NTMMaterial material = matByName.get(materialName); - if(material != null) { + if(material != null && (material.smeltsInto.smeltable == SmeltingBehavior.SMELTABLE || material.smeltsInto.smeltable == SmeltingBehavior.ADDITIVE)) { list.add(new MaterialStack(material, prefixEntry.getValue().q(1))); break outer; } @@ -180,7 +220,7 @@ public class Mats { List entries = materialEntries.get(new ComparableStack(stack).makeSingular()); if(entries != null) { - list.addAll(entries); + entries.forEach(x -> { if(x != null) list.add(x); }); } if(stack.getItem() == ModItems.scraps) { @@ -214,9 +254,7 @@ public class Mats { public static String formatAmount(int amount, boolean showInMb) { - if(showInMb) { - return (amount * 2) + "mB"; - } + if(showInMb) return (amount * 2) + "mB"; String format = ""; diff --git a/src/main/java/com/hbm/inventory/material/NTMMaterial.java b/src/main/java/com/hbm/inventory/material/NTMMaterial.java index 0f953871b..7f15f1bed 100644 --- a/src/main/java/com/hbm/inventory/material/NTMMaterial.java +++ b/src/main/java/com/hbm/inventory/material/NTMMaterial.java @@ -18,7 +18,8 @@ public class NTMMaterial { public final int id; public String[] names; - public Set shapes = new HashSet(); + public Set autogen = new HashSet(); + public Set traits = new HashSet(); public SmeltingBehavior smeltable = SmeltingBehavior.NOT_SMELTABLE; public int solidColorLight = 0xFF4A00; public int solidColorDark = 0x802000; @@ -57,11 +58,20 @@ public class NTMMaterial { } /** Shapes for autogen */ - public NTMMaterial setShapes(MaterialShapes... shapes) { - for(MaterialShapes shape : shapes) this.shapes.add(shape); + public NTMMaterial setAutogen(MaterialShapes... shapes) { + for(MaterialShapes shape : shapes) this.autogen.add(shape); return this; } + /** Traits for recipe detection */ + public NTMMaterial setTraits(MatTraits... traits) { + for(MatTraits trait : traits) this.traits.add(trait); + return this; + } + + public NTMMaterial m() { this.traits.add(MatTraits.METAL); return this; } + public NTMMaterial n() { this.traits.add(MatTraits.NONMETAL); return this; } + /** Defines smelting behavior */ public NTMMaterial smeltable(SmeltingBehavior behavior) { this.smeltable = behavior; @@ -94,4 +104,9 @@ public class NTMMaterial { SMELTABLE, //mostly metal ADDITIVE //stuff like coal which isn't smeltable but can be put in a crucible anyway } + + public static enum MatTraits { + METAL, //metal(like), smeltable by arc furnaces + NONMETAL; //non-metal(like), for gems, non-alloy compounds and similar + } } diff --git a/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java new file mode 100644 index 000000000..08c98125d --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java @@ -0,0 +1,462 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static com.hbm.inventory.OreDictManager.*; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumCasingType; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class AmmoPressRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + OreDictStack lead = new OreDictStack(PB.ingot()); + OreDictStack nugget = new OreDictStack(PB.nugget()); + OreDictStack flechette = new OreDictStack(PB.bolt()); + OreDictStack steel = new OreDictStack(STEEL.ingot()); + OreDictStack wSteel = new OreDictStack(WEAPONSTEEL.ingot()); + OreDictStack copper = new OreDictStack(CU.ingot()); + OreDictStack plastic = new OreDictStack(ANY_PLASTIC.ingot()); + OreDictStack uranium = new OreDictStack(U238.ingot()); + ComparableStack smokeful = new ComparableStack(Items.gunpowder); + OreDictStack smokeless = new OreDictStack(ANY_SMOKELESS.dust()); + OreDictStack he = new OreDictStack(ANY_HIGHEXPLOSIVE.ingot()); + OreDictStack wp = new OreDictStack(P_WHITE.ingot()); + OreDictStack rp = new OreDictStack(P_RED.dust()); + ComparableStack cSmall = new ComparableStack(ModItems.casing, 1, EnumCasingType.SMALL); + ComparableStack cBig = new ComparableStack(ModItems.casing, 1, EnumCasingType.LARGE); + ComparableStack sSmall = new ComparableStack(ModItems.casing, 1, EnumCasingType.SMALL_STEEL); + ComparableStack sBig = new ComparableStack(ModItems.casing, 1, EnumCasingType.LARGE_STEEL); + ComparableStack bpShell = new ComparableStack(ModItems.casing, 1, EnumCasingType.SHOTSHELL); + ComparableStack pShell = new ComparableStack(ModItems.casing, 1, EnumCasingType.BUCKSHOT); + ComparableStack sShell = new ComparableStack(ModItems.casing, 1, EnumCasingType.BUCKSHOT_ADVANCED); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_BP, 16), + null, lead.copy(2), null, + null, smokeful, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_SP, 8), + null, lead, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_FMJ, 8), + null, steel, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_JHP, 8), + plastic, copper, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_AP, 8), + null, wSteel, null, + null, smokeless.copy(2), null, + null, sSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_EXPRESS, 8), + null, steel, null, + null, smokeless.copy(3), null, + null, cSmall, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_BP, 12), + null, lead.copy(2), null, + null, smokeful, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_SP, 6), + null, lead, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_FMJ, 6), + null, steel, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_JHP, 6), + plastic, copper, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_AP, 6), + null, wSteel, null, + null, smokeless.copy(2), null, + null, sSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_EXPRESS, 6), + null, steel, null, + null, smokeless.copy(3), null, + null, cSmall, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P22_SP, 24), + null, lead, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P22_FMJ, 24), + null, steel, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P22_JHP, 24), + plastic, copper, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P22_AP, 24), + null, wSteel, null, + null, smokeless.copy(2), null, + null, sSmall, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P9_SP, 12), + null, lead, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P9_FMJ, 12), + null, steel, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P9_JHP, 12), + plastic, copper, null, + null, smokeless, null, + null, cSmall, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P9_AP, 12), + null, wSteel, null, + null, smokeless.copy(2), null, + null, sSmall, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R556_SP, 16), + null, lead.copy(2), null, + null, smokeless.copy(2), null, + null, cSmall.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R556_FMJ, 16), + null, steel.copy(2), null, + null, smokeless.copy(2), null, + null, cSmall.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R556_JHP, 16), + plastic, copper.copy(2), null, + null, smokeless.copy(2), null, + null, cSmall.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R556_AP, 16), + null, wSteel.copy(2), null, + null, smokeless.copy(4), null, + null, sSmall.copy(2), null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R762_SP, 12), + null, lead.copy(2), null, + null, smokeless.copy(2), null, + null, cSmall.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R762_FMJ, 12), + null, steel.copy(2), null, + null, smokeless.copy(2), null, + null, cSmall.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R762_JHP, 12), + plastic, copper.copy(2), null, + null, smokeless.copy(2), null, + null, cSmall.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R762_AP, 12), + null, wSteel.copy(2), null, + null, smokeless.copy(4), null, + null, sSmall.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R762_DU, 12), + null, uranium.copy(2), null, + null, smokeless.copy(4), null, + null, sSmall.copy(2), null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_SP, 12), + null, lead.copy(2), null, + null, smokeless.copy(3), null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_FMJ, 12), + null, steel.copy(2), null, + null, smokeless.copy(3), null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_JHP, 12), + plastic, copper.copy(2), null, + null, smokeless.copy(3), null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_AP, 12), + null, wSteel.copy(2), null, + null, smokeless.copy(6), null, + null, sBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_DU, 12), + null, uranium.copy(2), null, + null, smokeless.copy(6), null, + null, sBig, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_BP, 6), + null, nugget.copy(6), null, + null, smokeful, null, + null, bpShell, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_BP_MAGNUM, 6), + null, nugget.copy(8), null, + null, smokeful, null, + null, bpShell, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_BP_SLUG, 6), + null, lead, null, + null, smokeful, null, + null, bpShell, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12, 6), + null, nugget.copy(6), null, + null, smokeless, null, + null, pShell, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_SLUG, 6), + null, lead, null, + null, smokeless, null, + null, pShell, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_FLECHETTE, 6), + null, flechette.copy(12), null, + null, smokeless, null, + null, pShell, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_MAGNUM, 6), + null, nugget.copy(8), null, + null, smokeless, null, + null, sShell, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_EXPLOSIVE, 6), + null, he, null, + null, smokeless, null, + null, sShell, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G12_PHOSPHORUS, 6), + null, wp, null, + null, smokeless, null, + null, sShell, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G10, 4), + null, nugget.copy(8), null, + null, smokeless.copy(2), null, + null, sShell, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G10_SHRAPNEL, 4), + plastic, nugget.copy(8), null, + null, smokeless.copy(2), null, + null, sShell, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G10_DU, 4), + null, uranium, null, + null, smokeless.copy(2), null, + null, sShell, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G10_SLUG, 4), + null, lead, null, + null, smokeless.copy(2), null, + null, sShell, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G26_FLARE, 4), + null, rp, null, + null, smokeless, null, + null, cBig, null)); + + ComparableStack dyn = new ComparableStack(ModItems.ball_dynamite); + OreDictStack coplate = new OreDictStack(CU.plate()); + OreDictStack diesel = new OreDictStack(Fluids.DIESEL.getDict(1_000)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HE, 4), + null, dyn, null, + null, smokeless, null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HEAT, 4), + coplate, he, null, + null, smokeless, null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_DEMO, 4), + null, he.copy(2), null, + null, smokeless, null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_INC, 4), + diesel, dyn, null, + null, smokeless, null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_PHOSPHORUS, 4), + wp, he, null, + null, smokeless, null, + null, cBig, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_HE, 2), + null, dyn, null, + null, cBig, null, + null, smokeless.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_HEAT, 2), + coplate, he, null, + null, cBig, null, + null, smokeless.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_DEMO, 2), + null, he.copy(2), null, + null, cBig, null, + null, smokeless.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_INC, 2), + diesel, dyn, null, + null, cBig, null, + null, smokeless.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_PHOSPHORUS, 2), + wp, he, null, + null, cBig, null, + null, smokeless.copy(2), null)); + + OreDictStack sPlate = new OreDictStack(STEEL.plate()); + ComparableStack napalm = new ComparableStack(ModItems.canister_napalm); + OreDictStack gas = new OreDictStack(Fluids.GAS.getDict(1000)); + OreDictStack bf = new OreDictStack(Fluids.BALEFIRE.getDict(1000)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.FLAME_DIESEL, 1), + null, sPlate, null, + null, diesel, null, + null, sPlate, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.FLAME_NAPALM, 1), + null, sPlate, null, + null, napalm, null, + null, sPlate, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.FLAME_GAS, 1), + null, sPlate, null, + null, gas, null, + null, sPlate, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.FLAME_BALEFIRE, 1), + null, sPlate, null, + null, bf, null, + null, sPlate, null)); + + OreDictStack silicon = new OreDictStack(SI.billet()); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CAPACITOR, 4), + null, plastic, null, + null, silicon.copy(4), null, + null, plastic, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CAPACITOR_OVERCHARGE, 4), + null, plastic, null, + null, silicon.copy(6), null, + null, plastic, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CAPACITOR_IR, 4), + null, plastic, null, + null, silicon.copy(4), null, + null, plastic, null)); + + OreDictStack lPlate = new OreDictStack(PB.plate()); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.TAU_URANIUM, 16), + null, lPlate, null, + null, uranium, null, + null, lPlate , null)); + + OreDictStack tungsten = new OreDictStack(W.ingot()); + OreDictStack ferro = new OreDictStack(FERRO.ingot()); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.COIL_TUNGSTEN, 4), + null, null, null, + null, tungsten, null, + null, null , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.COIL_FERROURANIUM, 4), + null, null, null, + null, ferro, null, + null, null , null)); + + ComparableStack shell = new ComparableStack(ModItems.assembly_nuke); + ComparableStack tatb = new ComparableStack(ModItems.ball_tatb); + OreDictStack plutonium = new OreDictStack(PU239.nugget()); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD, 1), + null, plutonium, null, + null, shell, null, + null, null , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_DEMO, 1), + null, plutonium.copy(2), null, + null, shell, null, + null, null , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_HIGH, 1), + null, plutonium.copy(4), null, + null, shell, null, + null, null , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_TOTS, 1), + null, plutonium.copy(2), null, + null, tatb.copy(2), null, + null, sPlate.copy(4) , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_HIVE, 1), + null, he.copy(8), null, + null, sBig.copy(2), null, + null, sPlate.copy(4), null)); + } + + public static HashMap getRecipes() { + HashMap recipes = new HashMap(); + + for(AmmoPressRecipe recipe : AmmoPressRecipes.recipes) { + List inputs = new ArrayList(); + for(AStack stack : recipe.input) if(stack != null) inputs.add(stack); + recipes.put(inputs.toArray(new AStack[0]), recipe.output.copy()); + } + + return recipes; + } + + @Override + public String getFileName() { + return "hbmAmmoPress.json"; + } + + @Override + public String getComment() { + return "Input array describes slots from left to right, top to bottom. Make sure the input array is exactly 9 elements long, empty slots are represented by null."; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + JsonArray inputArray = obj.get("input").getAsJsonArray(); + AStack[] input = new AStack[9]; + + for(int i = 0; i < 9; i++) { + JsonElement element = inputArray.get(i); + if(element.isJsonNull()) { + input[i] = null; + } else { + input[i] = this.readAStack(element.getAsJsonArray()); + } + } + + this.recipes.add(new AmmoPressRecipe(output, input)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + AmmoPressRecipe rec = (AmmoPressRecipe) recipe; + + writer.name("output"); + this.writeItemStack(rec.output, writer); + + writer.name("input").beginArray(); + for(int i = 0; i < rec.input.length; i++) { + if(rec.input[i] == null) { + writer.nullValue(); + } else { + this.writeAStack(rec.input[i], writer); + } + } + writer.endArray(); + } + + public static class AmmoPressRecipe { + public ItemStack output; + public AStack[] input; + + public AmmoPressRecipe(ItemStack output, AStack... input) { + this.output = output; + this.input = input; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java new file mode 100644 index 000000000..800bd9ac6 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java @@ -0,0 +1,298 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +import static com.hbm.inventory.OreDictManager.*; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; +import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemScraps; +import com.hbm.items.special.ItemBedrockOreNew; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraftforge.oredict.OreDictionary; + +public class ArcFurnaceRecipes extends SerializableRecipe { + + public static HashMap recipes = new HashMap(); + public static HashMap fastCacheSolid = new HashMap(); + public static HashMap fastCacheLiquid = new HashMap(); + + @Override + public void registerDefaults() { + + recipes.put(new OreDictStack(KEY_SAND), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(1)))); + recipes.put(new ComparableStack(Items.flint), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + recipes.put(new OreDictStack(QUARTZ.gem()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 3)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(3)))); + recipes.put(new OreDictStack(QUARTZ.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 3)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(3)))); + recipes.put(new OreDictStack(QUARTZ.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 12)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.NUGGET.q(12)))); + recipes.put(new OreDictStack(FIBER.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + recipes.put(new OreDictStack(FIBER.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); + recipes.put(new OreDictStack(ASBESTOS.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + recipes.put(new OreDictStack(ASBESTOS.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + recipes.put(new OreDictStack(ASBESTOS.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); + + recipes.put(new ComparableStack(ModBlocks.sand_quartz), new ArcFurnaceRecipe().solid(new ItemStack(ModBlocks.glass_quartz))); + recipes.put(new OreDictStack(BORAX.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.powder_boron_tiny, 3)).fluid(new MaterialStack(Mats.MAT_BORON, MaterialShapes.NUGGET.q(3)))); + + for(BedrockOreType type : BedrockOreType.values()) { + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 4))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 4))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 4))); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 5), ItemBedrockOreNew.toFluid(type.primary2, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 2), ItemBedrockOreNew.toFluid(type.primary2, 5))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 1), ItemBedrockOreNew.toFluid(type.primary2, 1))); + + int i3 = 3; + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductAcid1, i3), ItemBedrockOreNew.toFluid(type.byproductAcid2, i3), ItemBedrockOreNew.toFluid(type.byproductAcid3, i3))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductSolvent1, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent2, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent3, i3))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductRad1, i3), ItemBedrockOreNew.toFluid(type.byproductRad2, i3), ItemBedrockOreNew.toFluid(type.byproductRad3, i3))); + } + + // Autogen for simple single type items + for(NTMMaterial material : Mats.orderedList) { + int in = material.convIn; + int out = material.convOut; + NTMMaterial convert = material.smeltsInto; + if(convert.smeltable == SmeltingBehavior.SMELTABLE) { + for(MaterialShapes shape : MaterialShapes.allShapes) { + if(!shape.noAutogen) { + String name = shape.name() + material.names[0]; + if(!OreDictionary.getOres(name).isEmpty()) { + OreDictStack dict = new OreDictStack(name); + ArcFurnaceRecipe recipe = recipes.get(dict); + if(recipe == null) recipe = new ArcFurnaceRecipe(); + if(recipe.fluidOutput == null) { + recipe.fluid(new MaterialStack(convert, (int) (shape.q(1) * out / in))); + recipes.put(dict, recipe); + } + } + } + } + } + } + + // Autogen for custom smeltables + for(Entry> entry : Mats.materialOreEntries.entrySet()) { + OreDictStack dict = new OreDictStack(entry.getKey()); + addCustomSmeltable(dict, entry.getValue()); + } + for(Entry> entry : Mats.materialEntries.entrySet()) { + addCustomSmeltable(entry.getKey(), entry.getValue()); + } + + // Autogen for furnace recipes + for(Object o : FurnaceRecipes.smelting().getSmeltingList().entrySet()) { + Entry entry = (Entry) o; + ItemStack input = (ItemStack) entry.getKey(); + ItemStack output = (ItemStack) entry.getValue(); + + if(input != null && output != null) { + ComparableStack comp = new ComparableStack(input); + if(OreDictManager.arcSmeltable.contains(comp) || OreDictManager.arcSmeltable.contains(new ComparableStack(output))) { + ArcFurnaceRecipe recipe = recipes.get(comp); + if(recipe == null) recipe = new ArcFurnaceRecipe(); + if(recipe.solidOutput == null) { + recipe.solid(output.copy()); + recipes.put(comp, recipe); + } + } + } + } + } + + private static void addCustomSmeltable(AStack astack, List mats) { + List smeltables = new ArrayList(); + for(MaterialStack mat : mats) { + if(mat.material.smeltable == SmeltingBehavior.SMELTABLE) { + smeltables.add(mat); + } + } + if(smeltables.isEmpty()) return; + ArcFurnaceRecipe recipe = recipes.get(astack); + if(recipe == null) recipe = new ArcFurnaceRecipe(); + if(recipe.fluidOutput == null) { + recipe.fluid(smeltables.toArray(new MaterialStack[0])); + recipes.put(astack, recipe); + } + } + + public static ArcFurnaceRecipe getOutput(ItemStack stack, boolean liquid) { + + if(stack == null || stack.getItem() == null) return null; + + if(stack.getItem() == ModItems.scraps && liquid) { + NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); + if(mat == null) return null; + MaterialStack mats = ItemScraps.getMats(stack); + if(mats.material.smeltable == SmeltingBehavior.SMELTABLE) { + return new ArcFurnaceRecipe().fluid(mats); + } + } + + ComparableStack cacheKey = new ComparableStack(stack).makeSingular(); + if(!liquid && fastCacheSolid.containsKey(cacheKey)) return fastCacheSolid.get(cacheKey); + if(liquid && fastCacheLiquid.containsKey(cacheKey)) return fastCacheLiquid.get(cacheKey); + + for(Entry entry : recipes.entrySet()) { + if(entry.getKey().matchesRecipe(stack, true)) { + ArcFurnaceRecipe rec = entry.getValue(); + if((liquid && rec.fluidOutput != null) || (!liquid && rec.solidOutput != null)) { + if(!liquid) fastCacheSolid.put(cacheKey, rec); + if(liquid) fastCacheLiquid.put(cacheKey, rec); + return rec; + } + } + } + + if(!liquid) fastCacheSolid.put(cacheKey, null); + if(liquid) fastCacheLiquid.put(cacheKey, null); + + return null; + } + + public static HashMap getSolidRecipes() { + HashMap recipes = new HashMap(); + for(Entry recipe : ArcFurnaceRecipes.recipes.entrySet()) { + if(recipe.getValue().solidOutput != null) recipes.put(recipe.getKey().copy(), recipe.getValue().solidOutput.copy()); + } + return recipes; + } + + public static HashMap getFluidRecipes() { + HashMap recipes = new HashMap(); + for(Entry recipe : ArcFurnaceRecipes.recipes.entrySet()) { + if(recipe.getValue().fluidOutput != null && recipe.getValue().fluidOutput.length > 0) { + Object[] out = new Object[recipe.getValue().fluidOutput.length]; + for(int i = 0; i < out.length; i++) out[i] = ItemScraps.create(recipe.getValue().fluidOutput[i], true); + recipes.put(recipe.getKey().copy(), out); + } + } + for(NTMMaterial mat : Mats.orderedList) { + if(mat.smeltable == SmeltingBehavior.SMELTABLE) { + recipes.put(new ItemStack(ModItems.scraps, 1, mat.id), ItemScraps.create(new MaterialStack(mat, MaterialShapes.INGOT.q(1)), true)); + } + } + return recipes; + } + + @Override + public String getFileName() { + return "hbmArcFurnace.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + fastCacheSolid.clear(); + fastCacheLiquid.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject rec = (JsonObject) recipe; + ArcFurnaceRecipe arc = new ArcFurnaceRecipe(); + + AStack input = this.readAStack(rec.get("input").getAsJsonArray()); + + if(rec.has("solid")) { + arc.solid(this.readItemStack(rec.get("solid").getAsJsonArray())); + } + + if(rec.has("fluid")) { + JsonArray fluids = rec.get("fluid").getAsJsonArray(); + List mats = new ArrayList(); + for(JsonElement fluid : fluids) { + JsonArray matStack = fluid.getAsJsonArray(); + MaterialStack stack = new MaterialStack(Mats.matByName.get(matStack.get(0).getAsString()), matStack.get(1).getAsInt()); + if(stack.material.smeltable == SmeltingBehavior.SMELTABLE) { + mats.add(stack); + } + } + if(!mats.isEmpty()) { + arc.fluid(mats.toArray(new MaterialStack[0])); + } + } + + this.recipes.put(input, arc); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry rec = (Entry) recipe; + + writer.name("input"); + this.writeAStack(rec.getKey(), writer); + + if(rec.getValue().solidOutput != null) { + writer.name("solid"); + this.writeItemStack(rec.getValue().solidOutput, writer); + } + + if(rec.getValue().fluidOutput != null) { + writer.name("fluid").beginArray(); + writer.setIndent(""); + for(MaterialStack stack : rec.getValue().fluidOutput) { + writer.beginArray(); + writer.value(stack.material.names[0]).value(stack.amount); + writer.endArray(); + } + writer.endArray(); + writer.setIndent(" "); + } + } + + public static class ArcFurnaceRecipe { + + public MaterialStack[] fluidOutput; + public ItemStack solidOutput; + + public ArcFurnaceRecipe fluid(MaterialStack... outputs) { + this.fluidOutput = outputs; + return this; + } + + public ArcFurnaceRecipe fluidNull(MaterialStack... outputs) { + List mat = new ArrayList(); + for(MaterialStack stack : outputs) if(stack != null) mat.add(stack); + if(!mat.isEmpty()) this.fluidOutput = mat.toArray(new MaterialStack[0]); + return this; + } + + public ArcFurnaceRecipe solid(ItemStack output) { + this.solidOutput = output; + return this; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java new file mode 100644 index 000000000..2dacf92dd --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -0,0 +1,253 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import static com.hbm.inventory.OreDictManager.*; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemGenericPart.EnumPartType; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; + +import net.minecraft.item.ItemStack; + +public class ArcWelderRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + //Parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 200L, + new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 400L, + new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + recipes.add(new ArcWelderRecipe(DictFrame.fromOne(ModItems.part_generic, EnumPartType.LDE), 200, 5_000L, + new OreDictStack(AL.plate(), 4), new OreDictStack(FIBER.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot()))); + recipes.add(new ArcWelderRecipe(DictFrame.fromOne(ModItems.part_generic, EnumPartType.LDE), 200, 10_000L, + new OreDictStack(TI.plate(), 2), new OreDictStack(FIBER.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot()))); + recipes.add(new ArcWelderRecipe(DictFrame.fromOne(ModItems.part_generic, EnumPartType.HDE), 600, 25_000_000L, new FluidStack(Fluids.STELLAR_FLUX, 4_000), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 2), new OreDictStack(CMB.plateWelded(), 1), new ComparableStack(ModItems.ingot_cft))); + + //Dense Wires + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_ALLOY.id), 100, 10_000L, + new OreDictStack(ALLOY.wireFine(), 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_GOLD.id), 100, 10_000L, + new OreDictStack(GOLD.wireFine(), 8))); + + //earlygame welded parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_IRON.id), 100, 100L, + new OreDictStack(IRON.plateCast(), 2))); + //high-demand mid-game parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_STEEL.id), 100, 500L, + new OreDictStack(STEEL.plateCast(), 2))); + //literally just the combination oven + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_COPPER.id), 200, 1_000L, + new OreDictStack(CU.plateCast(), 2))); + //mid-game, single combustion engine running on LPG + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TITANIUM.id), 600, 50_000L, + new OreDictStack(TI.plateCast(), 2))); + //mid-game PWR + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_ZIRCONIUM.id), 600, 10_000L, + new OreDictStack(ZR.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_ALUMINIUM.id), 300, 10_000L, + new OreDictStack(AL.plateCast(), 2))); + //late-game fusion + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TCALLOY.id), 1_200, 1_000_000L, new FluidStack(Fluids.OXYGEN, 1_000), + new OreDictStack(TCALLOY.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_CDALLOY.id), 1_200, 1_000_000L, new FluidStack(Fluids.OXYGEN, 1_000), + new OreDictStack(CDALLOY.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TUNGSTEN.id), 1_200, 250_000L, new FluidStack(Fluids.OXYGEN, 1_000), + new OreDictStack(W.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_CMB.id), 1_200, 10_000_000L, new FluidStack(Fluids.REFORMGAS, 1_000), + new OreDictStack(CMB.plateCast(), 2))); + //pre-DFC + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_OSMIRIDIUM.id), 6_000, 20_000_000L, new FluidStack(Fluids.REFORMGAS, 16_000), + new OreDictStack(OSMIRIDIUM.plateCast(), 2))); + + //Missile Parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_small), 60, 1_000L, new OreDictStack(STEEL.plate(), 4), new OreDictStack(AL.wireFine(), 4), new OreDictStack(CU.plate(), 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_medium), 100, 2_000L, new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 1), new OreDictStack(GRAPHITE.ingot(), 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_large), 200, 5_000L, new OreDictStack(DURA.ingot(), 10), new ComparableStack(ModItems.motor, 1), new OreDictStack(OreDictManager.getReflector(), 12))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_small), 60, 1_000L, new OreDictStack(AL.plate(), 6), new OreDictStack(CU.plate(), 4), new ComparableStack(ModBlocks.steel_scaffold, 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_medium), 100, 2_000L, new OreDictStack(AL.plateCast(), 4), new OreDictStack(TI.plate(), 8), new ComparableStack(ModBlocks.steel_scaffold, 12))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(AL.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModBlocks.steel_scaffold, 16))); + + //Missiles + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_anti_ballistic), 100, 5_000L, new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.missile_assembly), new ComparableStack(ModItems.thruster_small, 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_generic), 100, 5_000L, new ComparableStack(ModItems.warhead_generic_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary), 100, 5_000L, new ComparableStack(ModItems.warhead_incendiary_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster), 100, 5_000L, new ComparableStack(ModItems.warhead_cluster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_buster), 100, 5_000L, new ComparableStack(ModItems.warhead_buster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_decoy), 60, 2_500L, new OreDictStack(STEEL.ingot()), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_generic_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_incendiary_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_cluster_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_buster_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_buster_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_emp_strong), 200, 10_000L, new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_burst), 300, 25_000L, new ComparableStack(ModItems.warhead_generic_large), new ComparableStack(ModItems.fuel_tank_medium, 2), new ComparableStack(ModItems.thruster_medium, 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_inferno), 300, 25_000L, new ComparableStack(ModItems.warhead_incendiary_large), new ComparableStack(ModItems.fuel_tank_medium, 2), new ComparableStack(ModItems.thruster_medium, 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_rain), 300, 25_000L, new ComparableStack(ModItems.warhead_cluster_large), new ComparableStack(ModItems.fuel_tank_medium, 2), new ComparableStack(ModItems.thruster_medium, 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_drill), 300, 25_000L, new ComparableStack(ModItems.warhead_buster_large), new ComparableStack(ModItems.fuel_tank_medium, 2), new ComparableStack(ModItems.thruster_medium, 4))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear), 600, 50_000L, new ComparableStack(ModItems.warhead_nuclear), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear_cluster), 600, 50_000L, new ComparableStack(ModItems.warhead_mirv), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_volcano), 600, 50_000L, new ComparableStack(ModItems.warhead_volcano), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_mapper), 600, 10_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_mapper))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_scanner), 600, 10_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_scanner))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_radar), 600, 10_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_radar))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_laser), 600, 50_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_laser))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_resonator), 600, 50_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_resonator))); + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(ArcWelderRecipe recipe : ArcWelderRecipes.recipes) { + + int size = recipe.ingredients.length + (recipe.fluid != null ? 1 : 0); + Object[] array = new Object[size]; + + for(int i = 0; i < recipe.ingredients.length; i++) { + array[i] = recipe.ingredients[i]; + } + + if(recipe.fluid != null) array[size - 1] = ItemFluidIcon.make(recipe.fluid); + + recipes.put(array, recipe.output); + } + + return recipes; + } + + public static ArcWelderRecipe getRecipe(ItemStack... inputs) { + + outer: + for(ArcWelderRecipe recipe : recipes) { + + List recipeList = new ArrayList(); + for(AStack ingredient : recipe.ingredients) recipeList.add(ingredient); + + for(int i = 0; i < inputs.length; i++) { + + ItemStack inputStack = inputs[i]; + + if(inputStack != null) { + + boolean hasMatch = false; + Iterator iterator = recipeList.iterator(); + + while(iterator.hasNext()) { + AStack recipeStack = iterator.next(); + + if(recipeStack.matchesRecipe(inputStack, true) && inputStack.stackSize >= recipeStack.stacksize) { + hasMatch = true; + recipeList.remove(recipeStack); + break; + } + } + + if(!hasMatch) { + continue outer; + } + } + } + + if(recipeList.isEmpty()) return recipe; + } + + return null; + } + + @Override + public String getFileName() { + return "hbmArcWelder.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + AStack[] inputs = this.readAStackArray(obj.get("inputs").getAsJsonArray()); + FluidStack fluid = obj.has("fluid") ? this.readFluidStack(obj.get("fluid").getAsJsonArray()) : null; + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + int duration = obj.get("duration").getAsInt(); + long consumption = obj.get("consumption").getAsLong(); + + recipes.add(new ArcWelderRecipe(output, duration, consumption, fluid, inputs)); + } + + @Override + public void writeRecipe(Object obj, JsonWriter writer) throws IOException { + ArcWelderRecipe recipe = (ArcWelderRecipe) obj; + + writer.name("inputs").beginArray(); + for(AStack aStack : recipe.ingredients) { + this.writeAStack(aStack, writer); + } + writer.endArray(); + + if(recipe.fluid != null) { + writer.name("fluid"); + this.writeFluidStack(recipe.fluid, writer); + } + + writer.name("output"); + this.writeItemStack(recipe.output, writer); + + writer.name("duration").value(recipe.duration); + writer.name("consumption").value(recipe.consumption); + } + + public static class ArcWelderRecipe { + + public AStack[] ingredients; + public FluidStack fluid; + public ItemStack output; + public int duration; + public long consumption; + + public ArcWelderRecipe(ItemStack output, int duration, long consumption, FluidStack fluid, AStack... ingredients) { + this.ingredients = ingredients; + this.fluid = fluid; + this.output = output; + this.duration = duration; + this.consumption = consumption; + } + + public ArcWelderRecipe(ItemStack output, int duration, long consumption, AStack... ingredients) { + this(output, duration, consumption, null, ingredients); + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index db8e456d6..daa0599e4 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1,145 +1,61 @@ package com.hbm.inventory.recipes; -import com.google.gson.Gson; +import static com.hbm.inventory.OreDictManager.*; + +import java.io.IOException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockCap.EnumCapBlock; +import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart; import com.hbm.config.GeneralConfig; import com.hbm.inventory.OreDictManager; -import com.hbm.inventory.RecipesCommon.AStack; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.RecipesCommon.*; import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ItemAmmoEnums; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; +import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.machine.ItemAssemblyTemplate; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.items.weapon.ItemAmmoHIMARS; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.main.MainRegistry; + import cpw.mods.fml.common.Loader; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.util.*; -import java.util.Map.Entry; - -import static com.hbm.inventory.OreDictManager.*; - -public class AssemblerRecipes { - - public static File config; - public static File template; - private static final Gson gson = new Gson(); - public static HashMap recipes = new HashMap(); - public static HashMap time = new HashMap(); +public class AssemblerRecipes extends SerializableRecipe { + + public static HashMap recipes = new HashMap(); public static List recipeList = new ArrayList(); - public static HashMap> hidden = new HashMap(); - /** - * Pre-Init phase: Finds the recipe config (if exists) and checks if a template is present, if not it generates one. - * @param dir The suggested config folder - */ - public static void preInit(File dir) { + /** Legacy NOP, WarTec needs this */ + public static void loadRecipes() { } + + @Override + public void registerDefaults() { - if(dir == null || !dir.isDirectory()) - return; - - template = dir; - - List files = Arrays.asList(dir.listFiles()); - - for(File file : files) { - if(file.getName().equals("hbmAssembler.json")) { - config = file; - } - } - } - - public static void loadRecipes() { - - if(config == null) { - registerDefaults(); - } else { - loadJSONRecipes(); - } - - generateList(); - saveTemplateJSON(template); - } - - /** - * Generates an ordered list of outputs, used by the template item to generate subitems - */ - private static void generateList() { - - List list = new ArrayList(recipes.keySet()); - Collections.sort(list); - recipeList = list; - } - - public static ItemStack getOutputFromTempate(ItemStack stack) { - - if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { - - ComparableStack comp = ItemAssemblyTemplate.readType(stack); - - //NEW - if(comp != null) { - return comp.toStack(); - } - - //LEGACY - int i = stack.getItemDamage(); - if(i >= 0 && i < recipeList.size()) { - return recipeList.get(i).toStack(); - } - } - - return null; - } - - public static List getRecipeFromTempate(ItemStack stack) { - - if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { - - //NEW - ComparableStack compStack = ItemAssemblyTemplate.readType(stack); - if(compStack != null) { - AStack[] ret = recipes.get(compStack); - return ret == null ? null : Arrays.asList(ret); - } - - //LEGACY - int i = stack.getItemDamage(); - if(i >= 0 && i < recipeList.size()) { - ItemStack out = recipeList.get(i).toStack(); - - if(out != null) { - ComparableStack comp = new ComparableStack(out); - AStack[] ret = recipes.get(comp); - return ret == null ? null : Arrays.asList(ret); - } - } - } - - return null; - } - - /** - * Registers regular recipes if there's no custom configuration - */ - private static void registerDefaults() { + boolean exp = GeneralConfig.enableExpensiveMode; makeRecipe(new ComparableStack(ModItems.plate_iron, 2), new AStack[] {new OreDictStack(IRON.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_gold, 2), new AStack[] {new OreDictStack(GOLD.ingot(), 3), },30); @@ -153,30 +69,21 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.plate_combine_steel, 2), new AStack[] {new OreDictStack(CMB.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_saturnite, 2), new AStack[] {new OreDictStack(BIGMT.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_mixed, 4), new AStack[] {new OreDictStack(ALLOY.plate(), 2), new OreDictStack(OreDictManager.getReflector(), 1), new OreDictStack(BIGMT.plate(), 1) },50); - makeRecipe(new ComparableStack(ModItems.wire_aluminium, 6), new AStack[] {new OreDictStack(AL.ingot(), 1), },20); - makeRecipe(new ComparableStack(ModItems.wire_copper, 6), new AStack[] {new OreDictStack(CU.ingot(), 1), },20); - makeRecipe(new ComparableStack(ModItems.wire_tungsten, 6), new AStack[] {new OreDictStack(W.ingot(), 1), },20); - makeRecipe(new ComparableStack(ModItems.wire_red_copper, 6), new AStack[] {new OreDictStack(MINGRADE.ingot(), 1), },20); - makeRecipe(new ComparableStack(ModItems.wire_advanced_alloy, 6), new AStack[] {new OreDictStack(ALLOY.ingot(), 1), },20); - makeRecipe(new ComparableStack(ModItems.wire_gold, 6), new AStack[] {new ComparableStack(Items.gold_ingot, 1), },20); - makeRecipe(new ComparableStack(ModItems.wire_schrabidium, 6), new AStack[] {new OreDictStack(SA326.ingot(), 1), },20); - makeRecipe(new ComparableStack(ModItems.wire_magnetized_tungsten, 6), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), },20); makeRecipe(new ComparableStack(ModItems.hazmat_cloth, 4), new AStack[] {new OreDictStack(PB.dust(), 4), new ComparableStack(Items.string, 8), },50); makeRecipe(new ComparableStack(ModItems.asbestos_cloth, 4), new AStack[] {new OreDictStack(ASBESTOS.ingot(), 2), new ComparableStack(Items.string, 6), new ComparableStack(Blocks.wool, 1), },50); - makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 6), new ComparableStack(Items.paper, 1), },50); + makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 2), new ComparableStack(Items.paper, 1), },50); makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 4), new OreDictStack(TI.plate528(), 4), new ComparableStack(ModItems.motor, 1), }, 100); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); - makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); + makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new OreDictStack(CU.plateCast(), 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR.ordinal()), },100); makeRecipe(new ComparableStack(ModItems.levitation_unit, 1), new AStack[] {new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.coil_tungsten, 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.nugget_schrabidium, 2), },100); - makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(TI.plate(), 6), },100); + makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack(TI.plate(), 6), },100); makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); - makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_full, 3, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.plate_polymer, 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); - makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(Blocks.tnt, 2), },100); - makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), },150); - makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), },200); + makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new OreDictStack(AL.shell(), 2), new OreDictStack(TI.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.rocket_fuel, 8), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), }, 200); + makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CHIP) },100); + makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC) },150); + makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED) },200); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_small, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new OreDictStack(P_RED.dust(), 4), },100); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_medium, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new OreDictStack(P_RED.dust(), 8), },150); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_large, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new OreDictStack(P_RED.dust(), 16), },200); @@ -186,223 +93,141 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_buster_small, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModBlocks.det_cord, 8), },100); makeRecipe(new ComparableStack(ModItems.warhead_buster_medium, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModBlocks.det_cord, 4), new ComparableStack(ModBlocks.det_charge, 4), },150); makeRecipe(new ComparableStack(ModItems.warhead_buster_large, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModBlocks.det_charge, 8), },200); - makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new ComparableStack(ModItems.wire_red_copper, 6), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), },300); - makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), },500); - makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); - makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); - makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); - makeRecipe(new ComparableStack(ModItems.fuel_tank_small, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 6, Fluids.ETHANOL.getID()), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2), },100); - makeRecipe(new ComparableStack(ModItems.fuel_tank_medium, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 8, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4), },150); - makeRecipe(new ComparableStack(ModItems.fuel_tank_large, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 12, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8), },200); - makeRecipe(new ComparableStack(ModItems.thruster_small, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new OreDictStack(W.ingot(), 4), new ComparableStack(ModItems.wire_aluminium, 4), },100); - makeRecipe(new ComparableStack(ModItems.thruster_medium, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(W.ingot(), 8), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.wire_copper, 16), },150); - makeRecipe(new ComparableStack(ModItems.thruster_large, 1), new AStack[] {new OreDictStack(DURA.ingot(), 16), new OreDictStack(W.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.circuit_red_copper, 1), },200); - makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel), new ComparableStack(ModItems.circuit_gold, 1) },600); - makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.board_copper, 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); - makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_small_steel, 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.magnetron, 6), new ComparableStack(ModItems.coil_advanced_torus, 2), new ComparableStack(ModItems.circuit_gold, 6), new OreDictStack(RUBBER.ingot(), 6), new ComparableStack(Items.diamond, 1), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.magnetron, 12), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModItems.wire_red_copper, 16), new ComparableStack(ModItems.coil_gold, 3), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(Items.diamond, 1), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModItems.board_copper, 24), new ComparableStack(ModItems.circuit_targeting_tier5, 2), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); - makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 48), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.circuit_targeting_tier6, 2), },1000); - makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); - makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); - makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); - makeRecipe(new ComparableStack(ModItems.chopper_head, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_glass, 2), new ComparableStack(ModBlocks.fwatz_computer, 1), new OreDictStack(CMB.ingot(), 22), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), },300); - makeRecipe(new ComparableStack(ModItems.chopper_gun, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(CMB.ingot(), 2), new ComparableStack(ModItems.wire_tungsten, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 1), new ComparableStack(ModItems.motor, 1), },150); - makeRecipe(new ComparableStack(ModItems.chopper_torso, 1), new AStack[] {new OreDictStack(CMB.ingot(), 26), new ComparableStack(ModBlocks.fwatz_computer, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.chopper_blades, 2), },350); - makeRecipe(new ComparableStack(ModItems.chopper_tail, 1), new AStack[] {new OreDictStack(CMB.plate(), 8), new OreDictStack(CMB.ingot(), 5), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.chopper_blades, 2), },200); - makeRecipe(new ComparableStack(ModItems.chopper_wing, 1), new AStack[] {new OreDictStack(CMB.plate(), 6), new OreDictStack(CMB.ingot(), 3), new ComparableStack(ModItems.wire_magnetized_tungsten, 2), },150); + makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new OreDictStack(TI.plateCast(), 12), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER) },300); + makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plateCast(), 12), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.man_core, 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(LI.ingot(), 8), new OreDictStack(Fluids.DEUTERIUM.getDict(1_000), 8), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER_ADVANCED) },500); + makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.CAPACITOR_BOARD.ordinal()) }, 600); + makeRecipe(new ComparableStack(ModItems.missile_stealth, 1), new AStack[] { new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(CU.plate(), 10), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(STEEL.bolt(), 32) },1200); + makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel) },600); + makeRecipe(new ComparableStack(ModItems.chopper_head, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_glass, 2), new OreDictStack(CMB.ingot(), 22), new OreDictStack(MAGTUNG.wireFine(), 4), },300); + makeRecipe(new ComparableStack(ModItems.chopper_gun, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(CMB.ingot(), 2), new OreDictStack(W.wireFine(), 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 1), new ComparableStack(ModItems.motor, 1), },150); + makeRecipe(new ComparableStack(ModItems.chopper_torso, 1), new AStack[] {new OreDictStack(CMB.ingot(), 26), new OreDictStack(MAGTUNG.wireFine(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.chopper_blades, 2), },350); + makeRecipe(new ComparableStack(ModItems.chopper_tail, 1), new AStack[] {new OreDictStack(CMB.plate(), 8), new OreDictStack(CMB.ingot(), 5), new OreDictStack(MAGTUNG.wireFine(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.chopper_blades, 2), },200); + makeRecipe(new ComparableStack(ModItems.chopper_wing, 1), new AStack[] {new OreDictStack(CMB.plate(), 6), new OreDictStack(CMB.ingot(), 3), new OreDictStack(MAGTUNG.wireFine(), 2), },150); makeRecipe(new ComparableStack(ModItems.chopper_blades, 1), new AStack[] {new OreDictStack(CMB.plate(), 8), new OreDictStack(STEEL.plate(), 2), new OreDictStack(CMB.ingot(), 2), },200); - makeRecipe(new ComparableStack(ModItems.circuit_aluminium, 1), new AStack[] {new ComparableStack(ModItems.circuit_raw, 1), },50); - makeRecipe(new ComparableStack(ModItems.circuit_copper, 1), new AStack[] {new ComparableStack(ModItems.circuit_aluminium, 1), new ComparableStack(ModItems.wire_copper, 4), new OreDictStack(NETHERQUARTZ.dust(), 1), new OreDictStack(CU.plate(), 1), },100); - makeRecipe(new ComparableStack(ModItems.circuit_red_copper, 1), new AStack[] {new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(GOLD.dust(), 1), new ComparableStack(ModItems.plate_polymer, 1), },150); - makeRecipe(new ComparableStack(ModItems.crt_display, 8), new AStack[] {new OreDictStack(AL.dust(), 2), new ComparableStack(Blocks.glass_pane, 2), new ComparableStack(ModItems.wire_tungsten, 4), new ComparableStack(ModItems.hull_small_steel, 1) }, 100); makeRecipe(new ComparableStack(ModItems.tritium_deuterium_cake, 1), new AStack[] {new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.cell_tritium, 2), new OreDictStack(LI.ingot(), 4), },150); makeRecipe(new ComparableStack(ModItems.pellet_cluster, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new ComparableStack(Blocks.tnt, 1), }, 50); makeRecipe(new ComparableStack(ModItems.pellet_buckshot, 1), new AStack[] {new OreDictStack(PB.nugget(), 6), }, 50); - makeRecipe(new ComparableStack(ModItems.australium_iii, 1), new AStack[] {new ComparableStack(ModItems.nugget_australium, 6), new OreDictStack(STEEL.ingot(), 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_copper, 6), },150); - makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.ingot(), 1), new OreDictStack(ALLOY.plate(), 2), new ComparableStack(ModItems.wire_tungsten, 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); - makeRecipe(new ComparableStack(ModItems.pellet_schrabidium, 1), new AStack[] {new OreDictStack(SA326.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_hes, 1), new AStack[] {new ComparableStack(ModItems.ingot_hes, 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_mes, 1), new AStack[] {new ComparableStack(ModItems.ingot_schrabidium_fuel, 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_les, 1), new AStack[] {new ComparableStack(ModItems.ingot_les, 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_beryllium, 1), new AStack[] {new OreDictStack(BE.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_neptunium, 1), new AStack[] {new OreDictStack(NP237.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_lead, 1), new AStack[] {new OreDictStack(PB.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.pellet_advanced, 1), new AStack[] {new OreDictStack(DESH.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); - makeRecipe(new ComparableStack(ModItems.upgrade_template, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 1), new OreDictStack(IRON.plate528(), 4), new OreDictStack(CU.plate528(), 2), new ComparableStack(ModItems.wire_copper, 6), },100); - makeRecipe(new ComparableStack(ModItems.upgrade_speed_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(MINGRADE.dust(), 4), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_speed_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_1, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_speed_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_2, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_effect_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DURA.dust(), 4), new OreDictStack(STEEL.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_effect_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_1, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_effect_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_2, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_power_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(LAPIS.dust(), 4), new ComparableStack(Items.glowstone_dust, 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_power_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_1, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_power_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_2, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_fortune_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DIAMOND.dust(), 4), new OreDictStack(IRON.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_fortune_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_1, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_fortune_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_2, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(POLYMER.dust(), 4), new OreDictStack(W.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_2, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_radius, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DIAMOND.dust(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_health, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(TI.dust(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(DESH.ingot(), 8), new ComparableStack(ModItems.powder_power, 16), new ComparableStack(ModItems.crystal_lithium, 4), new ComparableStack(ModItems.circuit_schrabidium, 1), }, 200); - makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_1, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 8), new ComparableStack(ModItems.circuit_tantalium, 16), }, 300); - makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 16), new OreDictStack(KEY_CIRCUIT_BISMUTH), }, 500); - makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200); - makeRecipe(new ComparableStack(ModItems.titanium_filter, 1), new AStack[] {new OreDictStack(PB.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_tungsten, 4), new OreDictStack(TI.plate(), 6), new OreDictStack(U238.ingot(), 2), },200); - makeRecipe(new ComparableStack(ModItems.part_lithium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(LI.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_beryllium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(BE.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(COAL.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); - makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), },150); + makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 3), new OreDictStack(W.wireFine(), 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); + makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new OreDictStack(ALLOY.wireFine(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200); + makeRecipe(new ComparableStack(ModItems.part_lithium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_beryllium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_carbon, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(COAL.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_copper, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(CU.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_plutonium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(PU.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new OreDictStack(MINGRADE.wireFine(), 2), new OreDictStack(NETHERQUARTZ.dust(), 2), }, 60); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); - makeRecipe(new ComparableStack(ModBlocks.cmb_brick, 8), new AStack[] {new OreDictStack(CMB.ingot(), 1), new OreDictStack(CMB.plate(), 8), },100); + makeRecipe(new ComparableStack(ModBlocks.cmb_brick, 8), new AStack[] {new OreDictStack(ANY_CONCRETE.any(), 4), new OreDictStack(CMB.plate(), 4), },100); makeRecipe(new ComparableStack(ModBlocks.cmb_brick_reinforced, 8), new AStack[] {new ComparableStack(ModBlocks.block_magnetized_tungsten, 4), new ComparableStack(ModBlocks.brick_concrete, 4), new ComparableStack(ModBlocks.cmb_brick, 1), new OreDictStack(STEEL.plate(), 4), },200); - makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(REDSTONE.dust(), 2), new ComparableStack(ModBlocks.steel_roof, 5), },50); + makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(AL.wireFine(), 4), new OreDictStack(REDSTONE.dust(), 2), new ComparableStack(ModBlocks.steel_roof, 5), },50); makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100); - makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit_copper, 1), }, 200); - makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1) }, 300); + makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG), }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate528(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.coil_copper, 4), }, 100); - makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800); - makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600); - makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2), new ComparableStack(ModBlocks.red_wire_coated, 1), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.block(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(STEEL.plate(), 16), new OreDictStack(AL.plate(), 6), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 8), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {new OreDictStack(STEEL.plate(), 24), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); - makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new OreDictStack(Fluids.LUBRICANT.getDict(1000)), },160); - makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); - makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(STEEL.ingot(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.plate528(), 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); - makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); - makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new OreDictStack(STEEL.shell(), 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60); + makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate528(), 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12) },100); + makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12) },100); + makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 16), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12) },200); + makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32) }, 300); + makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200); + makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1) }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400); + makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.shell(), 4), new ComparableStack(ModItems.thermo_element, 3), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); + makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ANALOG) },350); + makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC) }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG), new ComparableStack(ModItems.plate_polymer, 8), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(TI.shell(), 3), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150); + makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); + makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(TI.shell(), 3), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new OreDictStack(DURA.pipe(), 4), new OreDictStack(MINGRADE.ingot(), 12), new OreDictStack(MINGRADE.wireFine(), 24), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600); + makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); + makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED.ordinal()), },500); makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); - makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 24), },200); + makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new OreDictStack(ALLOY.wireFine(), 24), },200); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150); + makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 4), new AStack[] {new OreDictStack(W.plateWelded(), 2), new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.magnetron, 2) }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); - makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateTriple()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100); - makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250); - makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); - makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300); - makeRecipe(new ComparableStack(ModBlocks.fwatz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new OreDictStack(DIAMOND.dust(), 8), new OreDictStack(MAGTUNG.dust(), 12), new OreDictStack(DESH.dust(), 8), new ComparableStack(ModItems.upgrade_power_3, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new OreDictStack(KEY_CIRCUIT_BISMUTH, 8)},450); - makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier3, 1), new ComparableStack(ModItems.wire_gold, 6), new OreDictStack("dyeGray", 6), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 1), new ComparableStack(ModItems.wire_aluminium, 6), new OreDictStack("dyeBlue", 4), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 2), new ComparableStack(ModItems.wire_copper, 6), new OreDictStack("dyeYellow", 6), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_mike, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_aluminium, 4), new OreDictStack(AL.plate(), 3), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new ComparableStack(ModItems.wire_gold, 18), new OreDictStack("dyeLightGray", 12), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_tsar, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_tri_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 5), new ComparableStack(ModItems.wire_gold, 24), new ComparableStack(ModItems.wire_tungsten, 12), new OreDictStack("dyeBlack", 6), },600); - makeRecipe(new ComparableStack(ModBlocks.nuke_prototype, 1), new AStack[] {new ComparableStack(ModItems.dysfunctional_reactor, 1), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.ingot_euphemium, 3), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModItems.wire_gold, 16), },500); - makeRecipe(new ComparableStack(ModBlocks.nuke_fleija, 1), new AStack[] {new ComparableStack(ModItems.hull_small_aluminium, 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.wire_gold, 8), new OreDictStack("dyeWhite", 4), },400); - makeRecipe(new ComparableStack(ModBlocks.nuke_solinium, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new ComparableStack(ModItems.wire_gold, 10), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack("dyeGray", 4), },400); - makeRecipe(new ComparableStack(ModBlocks.nuke_n2, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 12), new ComparableStack(ModItems.pipes_steel, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 3), new OreDictStack("dyeBlack", 12), },300); - makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.wire_gold, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new OreDictStack("dyeGray", 6), },600); - makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.wire_gold, 12), new OreDictStack("dyeGray", 4), },300); - makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.wire_gold, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); + makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); + makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack("dyeGray", 8), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER), new OreDictStack("dyeBlue", 4), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack("dyeYellow", 6), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_mike, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(AL.shell(), 4), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack("dyeLightGray", 16), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_tsar, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_tri_steel, 1), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack("dyeBlack", 8), },600); + makeRecipe(new ComparableStack(ModBlocks.nuke_prototype, 1), new AStack[] {new ComparableStack(ModItems.dysfunctional_reactor, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.ingot_euphemium, 3), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED) },500); + makeRecipe(new ComparableStack(ModBlocks.nuke_fleija, 1), new AStack[] {new OreDictStack(AL.shell(), 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new OreDictStack("dyeWhite", 4), },400); + makeRecipe(new ComparableStack(ModBlocks.nuke_solinium, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new OreDictStack("dyeGray", 8), },400); + makeRecipe(new ComparableStack(ModBlocks.nuke_n2, 1), new AStack[] {new OreDictStack(STEEL.shell(), 6), new OreDictStack(MAGTUNG.wireFine(), 12), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER), new OreDictStack("dyeBlack", 8), },300); + makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack("dyeGray", 8), },600, ModItems.journal_pip, ModItems.journal_bj); + makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack("dyeGray", 4), },300); + makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(GOLD.wireFine(), 6), },250); + makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.coil_gold, 4), },250); + makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); - makeRecipe(new ComparableStack(ModItems.missile_generic, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_incendiary, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_buster, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_incendiary_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_cluster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_buster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_emp_strong, 1), new AStack[] {new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_burst, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_inferno, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_rain, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_drill, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_nuclear, 1), new AStack[] {new ComparableStack(ModItems.warhead_nuclear, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); - makeRecipe(new ComparableStack(ModItems.missile_nuclear_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_mirv, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); - makeRecipe(new ComparableStack(ModItems.missile_volcano, 1), new AStack[] {new ComparableStack(ModItems.warhead_volcano, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); - makeRecipe(new ComparableStack(ModItems.missile_endo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_endo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_exo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_exo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); - makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); - makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(REDSTONE.dust(), 1), new ComparableStack(Items.glowstone_dust, 1), },50); - makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo2, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(REDSTONE.dust(), 7), new ComparableStack(ModItems.powder_power, 3), },200); makeRecipe(new ComparableStack(ModItems.grenade_fire, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new OreDictStack(P_RED.dust(), 1), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModItems.grenade_shrapnel, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new ComparableStack(ModItems.pellet_buckshot, 1), new OreDictStack(STEEL.plate(), 2), },150); makeRecipe(new ComparableStack(ModItems.grenade_cluster, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new ComparableStack(ModItems.pellet_cluster, 1), new OreDictStack(STEEL.plate(), 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_flare, 1), new AStack[] {new ComparableStack(ModItems.grenade_generic, 1), new ComparableStack(Items.glowstone_dust, 1), new OreDictStack(AL.plate(), 2), },100); - makeRecipe(new ComparableStack(ModItems.grenade_electric, 1), new AStack[] {new ComparableStack(ModItems.grenade_generic, 1), new ComparableStack(ModItems.circuit_red_copper, 1), new OreDictStack(GOLD.plate(), 2), },200); - makeRecipe(new ComparableStack(ModItems.grenade_pulse, 4), new AStack[] {new OreDictStack(STEEL.plate(), 1), new OreDictStack(IRON.plate(), 3), new ComparableStack(ModItems.wire_red_copper, 6), new ComparableStack(Items.diamond, 1), },300); + makeRecipe(new ComparableStack(ModItems.grenade_electric, 1), new AStack[] {new ComparableStack(ModItems.grenade_generic, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CAPACITOR.ordinal()), new OreDictStack(GOLD.plate(), 2), },200); + makeRecipe(new ComparableStack(ModItems.grenade_pulse, 4), new AStack[] {new OreDictStack(STEEL.plate(), 1), new OreDictStack(IRON.plate(), 3), new OreDictStack(MINGRADE.wireFine(), 6), new ComparableStack(Items.diamond, 1), },300); makeRecipe(new ComparableStack(ModItems.grenade_plasma, 2), new AStack[] {new OreDictStack(STEEL.plate(), 3), new OreDictStack(ALLOY.plate(), 1), new ComparableStack(ModItems.coil_advanced_torus, 1), new ComparableStack(ModItems.cell_deuterium, 1), new ComparableStack(ModItems.cell_tritium, 1), },300); - makeRecipe(new ComparableStack(ModItems.grenade_tau, 2), new AStack[] {new OreDictStack(PB.plate(), 3), new OreDictStack(ALLOY.plate(), 1), new ComparableStack(ModItems.coil_advanced_torus, 1), new ComparableStack(ModItems.gun_xvl1456_ammo, 1), },300); + makeRecipe(new ComparableStack(ModItems.grenade_tau, 2), new AStack[] {new OreDictStack(PB.plate(), 3), new OreDictStack(ALLOY.plate(), 1), new ComparableStack(ModItems.coil_advanced_torus, 1), new ComparableStack(ModItems.ammo_standard, 1, EnumAmmo.TAU_URANIUM), },300); makeRecipe(new ComparableStack(ModItems.grenade_schrabidium, 1), new AStack[] {new ComparableStack(ModItems.grenade_flare, 1), new OreDictStack(SA326.dust(), 1), new OreDictStack(OreDictManager.getReflector(), 2), },300); - makeRecipe(new ComparableStack(ModItems.grenade_nuclear, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new OreDictStack(STEEL.plate(), 1), new OreDictStack(PU239.nugget(), 2), new ComparableStack(ModItems.wire_red_copper, 2), },200); + makeRecipe(new ComparableStack(ModItems.grenade_nuclear, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new OreDictStack(STEEL.plate(), 1), new OreDictStack(PU239.nugget(), 2), new OreDictStack(MINGRADE.wireFine(), 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_zomg, 1), new AStack[] {new ComparableStack(ModItems.plate_paa, 3), new OreDictStack(OreDictManager.getReflector(), 1), new ComparableStack(ModItems.coil_magnetized_tungsten, 3), new ComparableStack(ModItems.powder_power, 3), },300); makeRecipe(new ComparableStack(ModItems.grenade_black_hole, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1), },500); - makeRecipe(new ComparableStack(ModItems.early_explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.wire_gold, 16), new ComparableStack(ModBlocks.det_cord, 8), new OreDictStack(CU.plate(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 20), new OreDictStack(ANY_PLASTIC.ingot(), 4)},400); //8 HE lenses (polymer inserts since no baratol) w/ bridge-wire detonators, aluminum pushers, & duraluminum shell - makeRecipe(new ComparableStack(ModItems.explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.wire_red_copper, 16), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 4), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.ball_tatb, 16), new OreDictStack(RUBBER.ingot(), 2)},500); //8 HE (To use 16 PBX ingots; rubber inserts) lenses w/ improved bridge-wire detonators, thin aluminum pushers, & duraluminum shell - makeRecipe(new ComparableStack(ModItems.gadget_wireing, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.wire_gold, 12), },100); + makeRecipe(new ComparableStack(ModItems.early_explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new OreDictStack(GOLD.wireFine(), 16), new ComparableStack(ModBlocks.det_cord, 8), new OreDictStack(CU.plate(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 20), new OreDictStack(ANY_PLASTIC.ingot(), 4)},400); //8 HE lenses (polymer inserts since no baratol) w/ bridge-wire detonators, aluminum pushers, & duraluminum shell + makeRecipe(new ComparableStack(ModItems.explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new OreDictStack(MINGRADE.wireFine(), 16), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 4), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.ball_tatb, 16), new OreDictStack(RUBBER.ingot(), 2)},500); //8 HE (To use 16 PBX ingots; rubber inserts) lenses w/ improved bridge-wire detonators, thin aluminum pushers, & duraluminum shell + makeRecipe(new ComparableStack(ModItems.gadget_wireing, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new OreDictStack(GOLD.wireFine(), 12), },100); makeRecipe(new ComparableStack(ModItems.gadget_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 7), new OreDictStack(U238.nugget(), 3), },200); makeRecipe(new ComparableStack(ModItems.boy_shielding, 1), new AStack[] {new OreDictStack(OreDictManager.getReflector(), 12), new OreDictStack(STEEL.plate528(), 4), },150); makeRecipe(new ComparableStack(ModItems.boy_target, 1), new AStack[] {new OreDictStack(U235.nugget(), 18), },200); makeRecipe(new ComparableStack(ModItems.boy_bullet, 1), new AStack[] {new OreDictStack(U235.nugget(), 9), },100); - makeRecipe(new ComparableStack(ModItems.boy_propellant, 1), new AStack[] {new ComparableStack(ModItems.cordite, 8), new OreDictStack(IRON.plate528(), 8), new OreDictStack(AL.plate528(), 4), new ComparableStack(ModItems.wire_red_copper, 4), },100); - makeRecipe(new ComparableStack(ModItems.boy_igniter, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 1), new OreDictStack(AL.plate528(), 6), new OreDictStack(STEEL.plate528(), 1), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.wire_red_copper, 3), },150); //HE for gating purposes - makeRecipe(new ComparableStack(ModItems.man_igniter, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.wire_red_copper, 9), },150); + makeRecipe(new ComparableStack(ModItems.boy_propellant, 1), new AStack[] {new ComparableStack(ModItems.cordite, 8), new OreDictStack(IRON.plate528(), 8), new OreDictStack(AL.plate528(), 4), new OreDictStack(MINGRADE.wireFine(), 4), },100); + makeRecipe(new ComparableStack(ModItems.boy_igniter, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 1), new OreDictStack(AL.plate528(), 6), new OreDictStack(STEEL.plate528(), 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 3), },150); //HE for gating purposes + makeRecipe(new ComparableStack(ModItems.man_igniter, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 9), },150); makeRecipe(new ComparableStack(ModItems.man_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 8), new OreDictStack(BE.nugget(), 2), },250); makeRecipe(new ComparableStack(ModItems.mike_core, 1), new AStack[] {new OreDictStack(U238.nugget(), 24), new OreDictStack(PB.ingot(), 6), },250); makeRecipe(new ComparableStack(ModItems.mike_deut, 1), new AStack[] {new OreDictStack(IRON.plate528(), 12), new OreDictStack(STEEL.plate528(), 16), new ComparableStack(ModItems.cell_deuterium, 10), },200); makeRecipe(new ComparableStack(ModItems.mike_cooling_unit, 1), new AStack[] {new OreDictStack(IRON.plate528(), 8), new ComparableStack(ModItems.coil_copper, 5), new ComparableStack(ModItems.coil_tungsten, 5), new ComparableStack(ModItems.motor, 2), },200); - makeRecipe(new ComparableStack(ModItems.fleija_igniter, 1), new AStack[] {new OreDictStack(TI.plate528(), 6), new ComparableStack(ModItems.wire_schrabidium, 2), new ComparableStack(ModItems.circuit_schrabidium, 1), },300); + makeRecipe(new ComparableStack(ModItems.fleija_igniter, 1), new AStack[] {new OreDictStack(TI.plate528(), 6), new OreDictStack(SA326.wireFine(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), },300); makeRecipe(new ComparableStack(ModItems.fleija_core, 1), new AStack[] {new OreDictStack(U235.nugget(), 8), new OreDictStack(NP237.nugget(), 2), new OreDictStack(BE.nugget(), 4), new ComparableStack(ModItems.coil_copper, 2), },500); makeRecipe(new ComparableStack(ModItems.fleija_propellant, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new OreDictStack(SA326.plate(), 8), },400); - makeRecipe(new ComparableStack(ModItems.solinium_igniter, 1), new AStack[] {new OreDictStack(TI.plate528(), 4), new ComparableStack(ModItems.wire_advanced_alloy, 2), new ComparableStack(ModItems.circuit_schrabidium, 1), new ComparableStack(ModItems.coil_gold, 1), },400); + makeRecipe(new ComparableStack(ModItems.solinium_igniter, 1), new AStack[] {new OreDictStack(TI.plate528(), 4), new OreDictStack(ALLOY.wireFine(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new ComparableStack(ModItems.coil_gold, 1), },400); makeRecipe(new ComparableStack(ModItems.solinium_core, 1), new AStack[] {new OreDictStack(SA327.nugget(), 9), new OreDictStack(EUPH.nugget(), 1), },400); - makeRecipe(new ComparableStack(ModItems.solinium_propellant, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.plate_polymer, 6), new ComparableStack(ModItems.wire_tungsten, 6), new ComparableStack(ModItems.biomass_compressed, 4), },350); + makeRecipe(new ComparableStack(ModItems.solinium_propellant, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.plate_polymer, 6), new OreDictStack(W.wireFine(), 6), new ComparableStack(ModItems.biomass_compressed, 4), },350); makeRecipe(new ComparableStack(ModItems.schrabidium_hammer, 1), new AStack[] {new OreDictStack(SA326.block(), 35), new ComparableStack(ModItems.billet_yharonite, 128), new ComparableStack(Items.nether_star, 3), new ComparableStack(ModItems.fragment_meteorite, 512), },1000); - makeRecipe(new ComparableStack(ModItems.component_limiter, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(TI.plate(), 18), new ComparableStack(ModItems.plate_desh, 12), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.circuit_gold, 8), new ComparableStack(ModItems.circuit_schrabidium, 4), new OreDictStack(STAR.ingot(), 14), new ComparableStack(ModItems.plate_dalekanium, 5), new ComparableStack(ModItems.powder_magic, 16), new ComparableStack(ModBlocks.fwatz_computer, 3), },2500); - makeRecipe(new ComparableStack(ModItems.component_emitter, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 3), new ComparableStack(ModItems.hull_big_titanium, 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(PB.plate(), 24), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.pipes_steel, 8), new ComparableStack(ModItems.circuit_gold, 12), new ComparableStack(ModItems.circuit_schrabidium, 8), new OreDictStack(STAR.ingot(), 26), new ComparableStack(ModItems.powder_magic, 48), new ComparableStack(ModBlocks.fwatz_computer, 2), new ComparableStack(ModItems.crystal_xen, 1), },2500); - makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600); - makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600); - makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); - makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); - makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); + makeRecipe(new ComparableStack(ModItems.component_emitter, 1), new AStack[] {new OreDictStack(STEEL.shell(), 3), new OreDictStack(AL.shell(), 2), new OreDictStack(STEEL.plate(), 32), new OreDictStack(PB.plate(), 24), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.pipes_steel, 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new OreDictStack(STAR.ingot(), 26), new ComparableStack(ModItems.powder_magic, 48), new ComparableStack(ModItems.crystal_xen, 1), },2500); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar_large, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 6), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.coil_copper, 32), new ComparableStack(ModItems.crt_display, 4), },600); + makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); + makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); - makeRecipe(new ComparableStack(ModItems.mp_thruster_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.arc_electrode, 4), },100); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 6), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 4), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.arc_electrode, 4), },100); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 1), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 6), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 2), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.coil_tungsten, 3), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid_hexdecuple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.coil_tungsten, 6), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.reactor_element, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.board_copper, 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.reactor_element, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.reactor_element, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 16), new OreDictStack(STEEL.plate(), 12), new OreDictStack(DESH.ingot(), 8), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 12), new OreDictStack(STEEL.plate(), 8), new OreDictStack(DESH.ingot(), 6), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 4), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 1), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.pwr_fuel, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new OreDictStack(CU.plateCast(), 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 16), new OreDictStack(STEEL.plate(), 12), new OreDictStack(DESH.ingot(), 8), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 12), new OreDictStack(STEEL.plate(), 8), new OreDictStack(DESH.ingot(), 6), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 8), new OreDictStack(DURA.ingot(), 16), new OreDictStack(STEEL.plate(), 12), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multi, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 12), new OreDictStack(DURA.ingot(), 18), new OreDictStack(STEEL.plate(), 12), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multier, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 16), new OreDictStack(DURA.ingot(), 20), new OreDictStack(STEEL.plate(), 12), },500); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 3), },100); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(AL.plate(), 3), },100); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.board_copper, 3), },100); + makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(CU.plateCast(), 3), },100); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_long_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 6), },200); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_long_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(TI.plate(), 24), new OreDictStack(AL.plate(), 6), },200); makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(STEEL.plate(), 9), },300); @@ -415,27 +240,150 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(BIGMT.plate(), 9), },500); makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(TI.plate(), 64), new OreDictStack(STEEL.plate(), 16), },600); makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(TI.plate(), 64), new OreDictStack(AL.plate(), 16), },600); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_he, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new OreDictStack(P_RED.dust(), 3), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_buster, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new ComparableStack(ModBlocks.det_charge, 1), new ComparableStack(ModBlocks.det_cord, 4), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(PU239.ingot(), 1), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear_large, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(AL.plate(), 4), new OreDictStack(PU239.ingot(), 2), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },300); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.powder_magic, 12), new ComparableStack(ModItems.bucket_mud, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_cloud, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.grenade_pink_cloud, 2), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_he, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 2), new OreDictStack(P_RED.dust(), 8), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },200); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },400); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60); - makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new ComparableStack(ModItems.hull_big_titanium, 32), new ComparableStack(ModItems.hull_big_steel, 18), new OreDictStack(FIBER.ingot(), 64), },600); - makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new ComparableStack(ModItems.plate_polymer, 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_he, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new OreDictStack(P_RED.dust(), 3), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_buster, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new ComparableStack(ModBlocks.det_charge, 1), new ComparableStack(ModBlocks.det_cord, 4), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(PU239.ingot(), 1), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), },200); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear_large, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(AL.plate(), 4), new OreDictStack(PU239.ingot(), 2), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit,3, EnumCircuitType.ADVANCED), },300); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.powder_magic, 12), new ComparableStack(ModItems.bucket_mud, 1), },100, ModItems.journal_pip); + makeRecipe(new ComparableStack(ModItems.mp_warhead_10_cloud, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.grenade_pink_cloud, 2), },100, ModItems.journal_pip); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_he, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), },200); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 2), new OreDictStack(P_RED.dust(), 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), },200); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED), },500); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), },400); + makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), }, 60, ModItems.journal_bj); makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600); + + makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] { + new OreDictStack(TI.shell(), 32), + new OreDictStack(RUBBER.ingot(), 64), + new ComparableStack(ModItems.rocket_fuel, 64), + new ComparableStack(ModItems.thruster_small, 12), + new ComparableStack(ModItems.thruster_medium, 12), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER), + new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE) + },600); + + makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] { + new OreDictStack(AL.shell(), 4), + new OreDictStack(RUBBER.ingot(), 16), + new ComparableStack(ModItems.rocket_fuel, 16), + new ComparableStack(ModItems.thruster_small, 3), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER_ADVANCED), + new ComparableStack(ModItems.part_generic, 12, EnumPartType.LDE) + },600, ModItems.journal_bj); + + makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] { + new OreDictStack(RUBBER.ingot(), 12), + new OreDictStack(TI.shell(), 3), + new ComparableStack(ModItems.thruster_large, 1), + new ComparableStack(ModItems.part_generic, 8, EnumPartType.LDE), + new ComparableStack(ModItems.plate_desh, 4), + new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), + new ComparableStack(ModItems.photo_panel, 24), + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC), + new ComparableStack(ModBlocks.machine_lithium_battery, 1) + },500); + makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] { + new OreDictStack(STEEL.shell(), 3), + new ComparableStack(ModItems.plate_desh, 4), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), + new ComparableStack(ModBlocks.glass_quartz, 8), + },400); + makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] { + new OreDictStack(STEEL.shell(), 3), + new OreDictStack(TI.plateCast(), 8), + new ComparableStack(ModItems.plate_desh, 4), + new ComparableStack(ModItems.magnetron, 8), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED.ordinal()) + },400); + makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] { + new OreDictStack(STEEL.shell(), 3), + new OreDictStack(TI.plateCast(), 12), + new ComparableStack(ModItems.magnetron, 12), + new ComparableStack(ModItems.coil_gold, 16), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()) + },400); + makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] { + new OreDictStack(STEEL.shell(), 6), + new OreDictStack(CU.plateCast(), 24), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD), + new ComparableStack(ModItems.crystal_diamond, 8), + new ComparableStack(ModBlocks.glass_quartz, 8) + },450); + makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] { + new OreDictStack(STEEL.plateCast(), 6), + new OreDictStack(STAR.ingot(), 12), + new OreDictStack(ANY_PLASTIC.ingot(), 48), + new ComparableStack(ModItems.crystal_xen, 1), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED) + },1000); + makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] { + new OreDictStack(TI.shell(), 3), + new ComparableStack(ModItems.plate_desh, 8), + new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), + new ComparableStack(ModItems.photo_panel, 16), + new ComparableStack(ModItems.thruster_nuclear, 1), + new ComparableStack(ModItems.ingot_uranium_fuel, 6), + new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC), + new ComparableStack(ModItems.magnetron, 3), + new ComparableStack(ModBlocks.machine_lithium_battery, 1) + },1200); + makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] { + new OreDictStack(BIGMT.plate(), 24), + new ComparableStack(ModItems.motor_desh, 2), + new ComparableStack(ModItems.drill_titanium, 2), + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.ADVANCED), + new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), + new ComparableStack(ModItems.thruster_small, 1), + new ComparableStack(ModItems.photo_panel, 12), + new ComparableStack(ModItems.centrifuge_element, 4), + new ComparableStack(ModBlocks.machine_lithium_battery, 1) + },600); + makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] { + new ComparableStack(ModItems.ingot_meteorite, 4), + new ComparableStack(ModItems.plate_desh, 4), + new ComparableStack(ModItems.motor, 2), + new ComparableStack(ModItems.drill_titanium, 2), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), + new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), + new ComparableStack(ModItems.thruster_small, 1), + new ComparableStack(ModItems.photo_panel, 12), + new ComparableStack(ModBlocks.machine_lithium_battery, 1) + },600); + + makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] { + new ComparableStack(ModItems.upgrade_speed_3, 1), + new ComparableStack(ModItems.upgrade_effect_3, 1), + new OreDictStack(BIGMT.ingot(), 16), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED), + }, 200); + makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_2, 1), new AStack[] { + new ComparableStack(ModItems.upgrade_overdrive_1, 1), + new ComparableStack(ModItems.upgrade_speed_3, 1), + new ComparableStack(ModItems.upgrade_effect_3, 1), + new OreDictStack(BIGMT.ingot(), 16), + new ComparableStack(ModItems.ingot_cft, 8), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD), + }, 300); + makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] { + new ComparableStack(ModItems.upgrade_overdrive_2, 1), + new ComparableStack(ModItems.upgrade_speed_3, 1), + new ComparableStack(ModItems.upgrade_effect_3, 1), + new OreDictStack(ANY_BISMOIDBRONZE.ingot(), 16), + new ComparableStack(ModItems.ingot_cft, 16), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), + }, 500); + makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { new ComparableStack(ModItems.ingot_electronium, 32), new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), - new OreDictStack(STEEL.block(), 32), + !exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 64) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 64), new OreDictStack(DURA.block(), 16), new OreDictStack(STAR.block(), 64), new ComparableStack(ModBlocks.machine_transformer_dnt, 8), @@ -443,63 +391,85 @@ public class AssemblerRecipes { new ComparableStack(ModItems.powder_magic, 64), new ComparableStack(ModItems.plate_dineutronium, 24), new ComparableStack(ModItems.ingot_u238m2), - new OreDictStack(FIBER.ingot(), 128) + new ComparableStack(ModItems.ingot_cft, 128) }, 1200); makeRecipe(new ComparableStack(ModBlocks.struct_iter_core, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 6), - new OreDictStack(W.ingot(), 6), + !exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 6) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 2), + !exp ? new OreDictStack(W.plateWelded(), 6) : new OreDictStack(W.heavyComp(), 1), new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new OreDictStack(ANY_PLASTIC.ingot(), 8), - new ComparableStack(ModItems.circuit_red_copper, 8), - new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_combustion_engine, 1), new AStack[] { new OreDictStack(STEEL.plate528(), 12), new OreDictStack(IRON.plate(), 8), new OreDictStack(CU.ingot(), 8), - new ComparableStack(ModItems.generator_steel, 1), + new OreDictStack(GOLD.wireDense(), 6), new ComparableStack(ModItems.tank_steel, 2), - new ComparableStack(ModItems.bolt_tungsten, 8), - new ComparableStack(ModItems.wire_red_copper, 24), - new ComparableStack(ModItems.circuit_copper, 1) + new OreDictStack(W.bolt(), 16), + new OreDictStack(MINGRADE.wireFine(), 24), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC) }, 300); + + makeRecipe(new ComparableStack(ModBlocks.machine_strand_caster, 1), new AStack[] { + new ComparableStack(ModItems.ingot_firebrick, 12), + new OreDictStack(STEEL.plateCast(), 6), + new OreDictStack(CU.plateWelded(), 2), + new ComparableStack(ModItems.tank_steel, 2), + new OreDictStack(ANY_CONCRETE.any(), 8) + }, 100); + makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.STEEL.ordinal()), new AStack[] { new OreDictStack(STEEL.plate(), 16), new OreDictStack(CU.plate(), 4), new OreDictStack(W.ingot(), 8), - new ComparableStack(ModItems.bolt_tungsten, 16) + new OreDictStack(W.bolt(), 16) }, 200); makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.DURA.ordinal()), new AStack[] { new OreDictStack(DURA.ingot(), 24), new OreDictStack(TI.plate(), 8), new OreDictStack(W.ingot(), 8), - new ComparableStack(ModItems.bolt_dura_steel, 16) + new OreDictStack(DURA.bolt(), 16) }, 200); makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.DESH.ordinal()), new AStack[] { new OreDictStack(DESH.ingot(), 24), new OreDictStack(ANY_PLASTIC.ingot(), 12), new OreDictStack(CU.plate(), 24), new OreDictStack(W.ingot(), 16), - new ComparableStack(ModItems.bolt_compound, 16) + new OreDictStack(DURA.pipe(), 4) }, 200); makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.STARMETAL.ordinal()), new AStack[] { new OreDictStack(STAR.ingot(), 24), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new OreDictStack(NB.ingot(), 16), - new ComparableStack(ModItems.bolt_compound, 16) + new OreDictStack(DURA.pipe(), 4) + }, 200); + + makeRecipe(new ComparableStack(ModBlocks.machine_arc_furnace, 1), new AStack[] { + new OreDictStack(ANY_CONCRETE.any(), 12), + new OreDictStack(ANY_PLASTIC.ingot(), 8), + new ComparableStack(ModItems.ingot_firebrick, 16), + new OreDictStack(STEEL.plateCast(), 8), + new ComparableStack(ModBlocks.machine_transformer, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_excavator, 1), new AStack[] { new ComparableStack(Blocks.stonebrick, 8), - new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(IRON.ingot(), 16), - new ComparableStack(ModBlocks.steel_scaffold, 16), + new OreDictStack(STEEL.ingot(), 8), + new OreDictStack(IRON.ingot(), 8), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.tank_steel, 1), - new ComparableStack(ModItems.circuit_red_copper, 1) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG) }, 300); + makeRecipe(new ComparableStack(ModBlocks.machine_ore_slopper, 1), new AStack[] { + new OreDictStack(STEEL.plateCast(), 6), + new OreDictStack(TI.plate(), 8), + new OreDictStack(CU.pipe(), 3), + new ComparableStack(ModItems.motor, 3), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG) + }, 200); makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.STEEL.ordinal()), new AStack[] { new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 4) @@ -550,39 +520,40 @@ public class AssemblerRecipes { }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { - new OreDictStack(STEEL.plate528(), 12), + !exp ? new OreDictStack(STEEL.plate528(), 12) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), - new ComparableStack(ModItems.generator_steel, 1), - new ComparableStack(ModItems.bolt_compound, 3), - new ComparableStack(ModItems.pipes_steel, 1), - new ComparableStack(ModItems.circuit_aluminium, 1), + new OreDictStack(GOLD.wireDense(), 6), + new OreDictStack(DURA.pipe(), 3), + new OreDictStack(STEEL.pipe(), 4), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_chungus, 1), new AStack[] { - new ComparableStack(ModItems.hull_big_steel, 6), - new OreDictStack(STEEL.plate528(), 32), - new OreDictStack(TI.plate528(), 12), + new OreDictStack(STEEL.shell(), 6), + !exp ? new OreDictStack(STEEL.plateWelded(), 16) : new OreDictStack(STEEL.heavyComp(), 3), + !exp ? new OreDictStack(TI.plate528(), 12) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModItems.turbine_tungsten, 5), new ComparableStack(ModItems.turbine_titanium, 3), new ComparableStack(ModItems.flywheel_beryllium, 1), - new ComparableStack(ModItems.generator_steel, 10), - new ComparableStack(ModItems.bolt_compound, 16), - new ComparableStack(ModItems.pipes_steel, 3) + new OreDictStack(GOLD.wireDense(), 48), + new OreDictStack(DURA.pipe(), 16), + new OreDictStack(STEEL.pipe(), 16) + }, 600); + + makeRecipe(new ComparableStack(ModBlocks.machine_condenser_powered, 1), new AStack[] { + !exp ? new OreDictStack(STEEL.plateWelded(), 8) : new OreDictStack(STEEL.heavyComp(), 3), + new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 4), + !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 3), + new ComparableStack(ModItems.motor_desh, 3), + new OreDictStack(STEEL.pipe(), 24), + new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4) }, 600); makeRecipe(new ComparableStack(ModItems.pellet_chlorophyte, 2), new AStack[] { new ComparableStack(ModItems.powder_chlorophyte, 1), new OreDictStack(PB.nugget(), 12), }, 50); - makeRecipe(new ComparableStack(ModItems.pellet_mercury, 2), new AStack[] { - new ComparableStack(ModItems.ingot_mercury, 1), - new OreDictStack(PB.nugget(), 12), - }, 50); - makeRecipe(new ComparableStack(ModItems.pellet_meteorite, 2), new AStack[] { - new ComparableStack(ModItems.powder_meteorite, 1), - new OreDictStack(PB.nugget(), 12), - }, 50); makeRecipe(new ComparableStack(ModItems.pellet_canister, 2), new AStack[] { new OreDictStack(IRON.ingot(), 3), }, 50); @@ -590,103 +561,55 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] { new ComparableStack(ModBlocks.machine_lithium_battery, 3), new ComparableStack(ModBlocks.hadron_coil_neodymium, 8), - new ComparableStack(ModItems.wire_advanced_alloy, 96), - new OreDictStack(STEEL.ingot(), 16), + new OreDictStack(ALLOY.wireDense(), 16), + !exp ? new OreDictStack(STEEL.ingot(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new OreDictStack(STEEL.plate528(), 32), new OreDictStack(AL.plate528(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), - new ComparableStack(ModItems.board_copper, 8), - new ComparableStack(ModItems.circuit_red_copper, 8), - new ComparableStack(ModItems.circuit_gold, 3), + new OreDictStack(CU.plateCast(), 8), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) }, 600); makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] { - new ComparableStack(ModItems.hull_big_steel, 4), - new ComparableStack(ModBlocks.steel_scaffold, 4), - new OreDictStack(ANY_CONCRETE.any(), 16), - new ComparableStack(ModBlocks.deco_pipe_quad, 8), - new ComparableStack(ModItems.motor, 4), + !exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1), + new OreDictStack(STEEL.pipe(), 8), new OreDictStack(B.ingot(), 8), new OreDictStack(GRAPHITE.ingot(), 16), - new ComparableStack(ModItems.circuit_red_copper, 3) + new OreDictStack(RUBBER.ingot(), 16), + new OreDictStack(ANY_CONCRETE.any(), 16), + new ComparableStack(ModBlocks.steel_scaffold, 4), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC) }, 600); - makeRecipe(new ComparableStack(ModItems.gun_zomg, 1), new AStack[] { - new ComparableStack(ModItems.crystal_xen, 2), - new ComparableStack(ModItems.singularity_counter_resonant, 1), - new ComparableStack(ModItems.mechanism_special, 3), - new ComparableStack(ModItems.plate_paa, 12), - new OreDictStack(OreDictManager.getReflector(), 8), - new ComparableStack(ModItems.coil_magnetized_tungsten, 5), - new ComparableStack(ModItems.powder_magic, 4), - new OreDictStack(ASBESTOS.ingot(), 8) - }, 200); - - makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.STOCK.ordinal()), new AStack[] { - new OreDictStack(STEEL.plate(), 2), - new OreDictStack(CU.plate(), 1), - new ComparableStack(ModItems.primer_50, 5), - new ComparableStack(ModItems.casing_50, 5), - new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 2), - new ComparableStack(ModItems.cordite, 3), - new OreDictStack(U238.ingot(), 1) - }, 60); - - makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.INCENDIARY.ordinal()), new AStack[] { - new OreDictStack(STEEL.plate(), 2), - new OreDictStack(CU.plate(), 1), - new ComparableStack(ModItems.primer_50, 5), - new ComparableStack(ModItems.casing_50, 5), - new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 3), - new ComparableStack(ModItems.cordite, 3), - new OreDictStack(P_WHITE.ingot(), 3) - }, 60); - - makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.HE.ordinal()), new AStack[] { - new OreDictStack(STEEL.plate(), 2), - new OreDictStack(CU.plate(), 1), - new ComparableStack(ModItems.primer_50, 5), - new ComparableStack(ModItems.casing_50, 5), - new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 5), - new ComparableStack(ModItems.cordite, 5), - new OreDictStack(REDSTONE.dust(), 3) - }, 60); - makeRecipe(new ComparableStack(ModItems.spawn_worm, 1), new AStack[] { new OreDictStack(TI.block(), 75), new ComparableStack(ModItems.motor, 75), new ComparableStack(ModBlocks.glass_trinitite, 25), new OreDictStack(REDSTONE.dust(), 75), - new ComparableStack(ModItems.wire_gold, 75), + new OreDictStack(GOLD.wireFine(), 75), new OreDictStack(PO210.block(), 10), new ComparableStack(ModItems.plate_armor_titanium, 50), new ComparableStack(ModItems.coin_worm, 1) }, 1200); makeRecipe(new ComparableStack(ModItems.sat_gerald, 1), new AStack[] { - new ComparableStack(ModItems.burnt_bark, 1), - new ComparableStack(ModItems.combine_scrap, 1), - new ComparableStack(ModItems.crystal_horn, 1), - new ComparableStack(ModItems.crystal_charred, 1), - new ComparableStack(ModBlocks.pink_log, 1), - new ComparableStack(ModItems.mp_warhead_15_balefire, 1), - new ComparableStack(ModBlocks.det_nuke, 16), - new OreDictStack(STAR.ingot(), 32), - new ComparableStack(ModItems.coin_creeper, 1), - new ComparableStack(ModItems.coin_radiation, 1), - new ComparableStack(ModItems.coin_maskman, 1), - new ComparableStack(ModItems.coin_worm, 1), - }, 1200); + new OreDictStack(SBD.plateCast(), 128), + new OreDictStack(BSCCO.wireDense(), 128), + new ComparableStack(ModBlocks.det_nuke, 64), + new ComparableStack(ModItems.part_generic, 256, EnumPartType.HDE), + new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM), + new ComparableStack(ModItems.coin_ufo, 1), + }, 1200, ModItems.journal_bj); makeRecipe(new ComparableStack(ModBlocks.vault_door, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 32), new OreDictStack(W.ingot(), 32), new OreDictStack(PB.plate(), 16), new OreDictStack(ALLOY.plate(), 4), - new ComparableStack(ModItems.plate_polymer, 4), - new ComparableStack(ModItems.bolt_tungsten, 8), - new ComparableStack(ModItems.bolt_dura_steel, 8), + new OreDictStack(ANY_RUBBER.ingot(), 4), + new OreDictStack(W.bolt(), 16), + new OreDictStack(DURA.bolt(), 16), new ComparableStack(ModItems.motor, 3), }, 200); @@ -695,9 +618,9 @@ public class AssemblerRecipes { new OreDictStack(W.ingot(), 8), new OreDictStack(PB.plate(), 6), new OreDictStack(ALLOY.plate(), 3), - new ComparableStack(ModItems.plate_polymer, 3), - new ComparableStack(ModItems.bolt_tungsten, 3), - new ComparableStack(ModItems.bolt_dura_steel, 3), + new OreDictStack(ANY_RUBBER.ingot(), 3), + new OreDictStack(W.bolt(), 4), + new OreDictStack(DURA.bolt(), 4), new ComparableStack(ModItems.motor, 1), }, 300); @@ -705,7 +628,7 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ALLOY.plate(), 4), - new ComparableStack(ModItems.bolt_tungsten, 4), + new OreDictStack(W.bolt(), 8), new ComparableStack(ModItems.motor, 2), }, 200); @@ -714,8 +637,8 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit_targeting_tier3, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), + new OreDictStack(STEEL.pipe(), 3), new ComparableStack(ModItems.mechanism_rifle_2, 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1) @@ -725,8 +648,8 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit_targeting_tier2, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), + new OreDictStack(STEEL.pipe(), 3), new ComparableStack(ModItems.mechanism_rifle_1, 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1) @@ -736,9 +659,9 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit_targeting_tier4, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), - new ComparableStack(ModItems.hull_small_steel, 3), + new OreDictStack(STEEL.shell(), 3), new ComparableStack(ModItems.mechanism_launcher_2, 1), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1) @@ -748,7 +671,7 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit_targeting_tier4, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new ComparableStack(ModItems.mechanism_special, 1), @@ -760,9 +683,9 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit_targeting_tier4, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), - new ComparableStack(ModItems.hull_small_steel, 8), + new OreDictStack(STEEL.shell(), 8), new ComparableStack(ModItems.mechanism_launcher_2, 1), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1) @@ -773,8 +696,8 @@ public class AssemblerRecipes { new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.circuit_targeting_tier3, 2), - new ComparableStack(ModItems.pipes_steel, 2), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), + new OreDictStack(STEEL.pipe(), 10), new ComparableStack(ModItems.mechanism_rifle_2, 2), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1) @@ -784,8 +707,8 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 24), new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.circuit_targeting_tier4, 2), - new ComparableStack(ModItems.pipes_steel, 1), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), + new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), @@ -796,8 +719,8 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit_targeting_tier3, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), + new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.mechanism_launcher_1, 1), new ComparableStack(ModBlocks.barrel_steel, 1), new ComparableStack(ModItems.crt_display, 1) @@ -807,8 +730,8 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 128), new OreDictStack(DURA.ingot(), 32), new ComparableStack(ModItems.motor_desh, 5), - new ComparableStack(ModItems.circuit_targeting_tier4, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), + new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.mechanism_launcher_2, 3), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1) @@ -819,7 +742,7 @@ public class AssemblerRecipes { new OreDictStack(DURA.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), - new ComparableStack(ModItems.circuit_targeting_tier4, 3), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.mechanism_launcher_2, 5), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1) @@ -830,7 +753,7 @@ public class AssemblerRecipes { new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), - new ComparableStack(ModItems.circuit_copper, 12) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_HE), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -838,7 +761,7 @@ public class AssemblerRecipes { new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 18), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), - new ComparableStack(ModItems.circuit_copper, 12) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_WP), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -846,7 +769,7 @@ public class AssemblerRecipes { new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(P_WHITE.ingot(), 18), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), - new ComparableStack(ModItems.circuit_copper, 12) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_TB), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -854,8 +777,8 @@ public class AssemblerRecipes { new ComparableStack(ModItems.rocket_fuel, 48), new ComparableStack(ModItems.ball_tatb, 32), new OreDictStack(Fluids.KEROSENE_REFORM.getDict(1_000), 12), - new OreDictStack(Fluids.ACID.getDict(1_000), 12), - new ComparableStack(ModItems.circuit_copper, 12) + new OreDictStack(Fluids.PEROXIDE.getDict(1_000), 12), + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_MINI_NUKE), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -864,7 +787,7 @@ public class AssemblerRecipes { new ComparableStack(ModItems.ball_tatb, 6), new OreDictStack(PU239.nugget(), 12), new OreDictStack(OreDictManager.getReflector(), 12), - new ComparableStack(ModItems.circuit_copper, 12) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_LAVA), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -872,14 +795,14 @@ public class AssemblerRecipes { new ComparableStack(ModItems.rocket_fuel, 32), new ComparableStack(ModItems.ball_tatb, 4), new OreDictStack(VOLCANIC.gem(), 1), - new ComparableStack(ModItems.circuit_copper, 6) + new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.LARGE), new AStack[] { new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new ComparableStack(ModItems.rocket_fuel, 36), new ComparableStack(ModItems.ball_tatb, 16), - new ComparableStack(ModItems.circuit_gold, 2), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.LARGE_TB), new AStack[] { new OreDictStack(STEEL.plate(), 24), @@ -887,35 +810,29 @@ public class AssemblerRecipes { new ComparableStack(ModItems.rocket_fuel, 36), new ComparableStack(ModItems.ball_tatb, 24), new OreDictStack(Fluids.KEROSENE_REFORM.getDict(1_000), 16), - new OreDictStack(Fluids.ACID.getDict(1_000), 16), - new ComparableStack(ModItems.circuit_gold, 2), + new OreDictStack(Fluids.PEROXIDE.getDict(1_000), 16), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_silex, 1), new AStack[] { - new ComparableStack(Blocks.glass, 12), - new ComparableStack(ModItems.motor, 2), - new OreDictStack(DURA.ingot(), 4), - new OreDictStack(STEEL.plate528(), 8), - new OreDictStack(DESH.ingot(), 2), - new ComparableStack(ModItems.tank_steel, 1), - new ComparableStack(ModItems.pipes_steel, 1), - new ComparableStack(ModItems.crystal_diamond, 1) + new ComparableStack(ModBlocks.glass_quartz, 16), + !exp ? new OreDictStack(STEEL.plateCast(), 8) : new OreDictStack(STEEL.heavyComp(), 1), + new OreDictStack(DESH.ingot(), 4), + new OreDictStack(RUBBER.ingot(), 8), + new OreDictStack(STEEL.pipe(), 8), }, 400); makeRecipe(new ComparableStack(Item.getItemFromBlock(ModBlocks.machine_fel), 1), new AStack[] { - new ComparableStack(ModBlocks.fusion_conductor, 16), - new ComparableStack(ModBlocks.machine_lithium_battery, 2), - new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(STEEL.plate528(), 24), - new OreDictStack(ANY_PLASTIC.ingot(), 8), - new ComparableStack(ModItems.circuit_red_copper, 4), - new ComparableStack(ModItems.wire_red_copper, 64), - new ComparableStack(ModItems.coil_advanced_torus, 16), - new ComparableStack(ModItems.circuit_gold, 1) + new ComparableStack(ModBlocks.machine_lithium_battery, 1), + new OreDictStack(ALLOY.wireDense(), 64), + !exp ? new OreDictStack(STEEL.plateCast(), 12) : new OreDictStack(STEEL.heavyComp(), 1), + new OreDictStack(ANY_PLASTIC.ingot(), 16), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC) }, 400); makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] { new ComparableStack(ModBlocks.concrete_asbestos, 4), - new OreDictStack(STEEL.plate528(), 4), + !exp ? new OreDictStack(STEEL.plate528(), 4) : new OreDictStack(STEEL.plateCast(), 16), new OreDictStack(CU.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 4) }, 100); @@ -923,34 +840,34 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.multitool_hit, 1), new AStack[] { new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(STEEL.plate(), 4), - new ComparableStack(ModItems.wire_gold, 12), + new OreDictStack(GOLD.wireFine(), 12), new ComparableStack(ModItems.motor, 4), - new ComparableStack(ModItems.circuit_tantalium, 16) + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 48), + !exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(B.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(KEY_ANYPANE, 64), new ComparableStack(ModItems.motor, 18), - new ComparableStack(ModItems.bolt_tungsten, 12), - new ComparableStack(ModItems.pipes_steel, 1), - new ComparableStack(ModItems.circuit_gold, 3) + new OreDictStack(W.bolt(), 16), + new OreDictStack(STEEL.pipe(), 8), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 48), + !exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), - new ComparableStack(ModItems.hull_big_steel, 12), + new OreDictStack(STEEL.shell(), 12), new ComparableStack(ModItems.tank_steel, 8), new ComparableStack(ModItems.motor_desh, 4), new ComparableStack(ModItems.coil_tungsten, 24), - new ComparableStack(ModItems.pipes_steel, 1), - new ComparableStack(ModItems.circuit_gold, 3) + new OreDictStack(STEEL.pipe(), 8), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) }, 400); makeRecipe(new ComparableStack(ModItems.missile_shuttle, 1), new AStack[] { @@ -959,7 +876,7 @@ public class AssemblerRecipes { new OreDictStack(KEY_ORANGE, 5), new ComparableStack(ModItems.canister_full, 24, Fluids.GASOLINE_LEADED.getID()), new OreDictStack(FIBER.ingot(), 12), - new ComparableStack(ModItems.circuit_copper, 2), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 8), new OreDictStack(KEY_ANYPANE, 6), new OreDictStack(STEEL.plate(), 4), @@ -975,61 +892,172 @@ public class AssemblerRecipes { }, 150); makeRecipe(new ComparableStack(ModBlocks.machine_vacuum_distill, 1), new AStack[] { - new OreDictStack(STEEL.plateCast(), 16), - new OreDictStack(CU.plate528(), 16), + !exp ? new OreDictStack(STEEL.plateCast(), 16) : new OreDictStack(STEEL.heavyComp(), 4), + !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.sphere_steel, 1), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), - new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP_BISMOID) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_reformer, 1), new AStack[] { - new OreDictStack(STEEL.plateCast(), 12), - new OreDictStack(CU.plate528(), 8), + !exp ? new OreDictStack(STEEL.plateCast(), 12) : new OreDictStack(STEEL.heavyComp(), 4), + !exp ? new OreDictStack(CU.plate528(), 8) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), - new ComparableStack(ModItems.hull_big_steel, 3), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.shell(), 3), + new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.motor, 1), - new ComparableStack(ModItems.circuit_red_copper, 3) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_hydrotreater, 1), new AStack[] { + !exp ? new OreDictStack(STEEL.plateWelded(), 8) : new OreDictStack(STEEL.heavyComp(), 4), + !exp ? new OreDictStack(CU.plateCast(), 4) : new OreDictStack(CU.heavyComp(), 2), + new OreDictStack(NB.ingot(), 8), + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), + new OreDictStack(STEEL.shell(), 2), + new OreDictStack(STEEL.pipe(), 8), + new ComparableStack(ModItems.motor_desh, 2), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_pyrooven, 1), new AStack[] { + !exp ? new OreDictStack(STEEL.plateWelded(), 16) : new OreDictStack(STEEL.heavyComp(), 4), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new ComparableStack(ModItems.ingot_cft, 4), + new OreDictStack(CU.pipe(), 12), + new ComparableStack(ModItems.motor_desh, 1), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_compressor, 1), new AStack[] { new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(CU.plate528(), 4), - new ComparableStack(ModItems.hull_big_steel, 2), + new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.motor, 3), - new ComparableStack(ModItems.circuit_red_copper, 1) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG) + }, 200); + + makeRecipe(new ComparableStack(ModBlocks.machine_electrolyser, 1), new AStack[] { + !exp ? new OreDictStack(STEEL.plateCast(), 8) : new OreDictStack(STEEL.heavyComp(), 2), + !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 1), + new OreDictStack(RUBBER.ingot(), 8), + new ComparableStack(ModItems.ingot_firebrick, 16), + new ComparableStack(ModItems.tank_steel, 3), + new ComparableStack(ModItems.coil_copper, 16), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC) + }, 200); + + makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] { + !exp ? new OreDictStack(AL.plateCast(), 12) : new OreDictStack(AL.heavyComp(), 1), + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), + new OreDictStack(ALLOY.wireDense(), 32), + new ComparableStack(ModItems.motor_desh, 2), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), + new ComparableStack(ModBlocks.capacitor_tantalium, 1), + new ComparableStack(ModBlocks.glass_quartz, 16) }, 200); - makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] - { - new OreDictStack(NB.ingot(), 4), - new ComparableStack(ModItems.redcoil_capacitor, 1), - new ComparableStack(ModItems.ingot_euphemium, 4), - new ComparableStack(ModItems.circuit_tantalium, 6), - new ComparableStack(ModItems.powder_nitan_mix, 18), - }, 600); - makeRecipe(new ComparableStack(ModBlocks.block_cap_nuka, 1), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_quantum, 1), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_sparkle, 1), new AStack[] { new ComparableStack(ModItems.cap_sparkle, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_rad, 1), new AStack[] { new ComparableStack(ModItems.cap_rad, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_korl, 1), new AStack[] { new ComparableStack(ModItems.cap_korl, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_fritz, 1), new AStack[] { new ComparableStack(ModItems.cap_fritz, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_sunset, 1), new AStack[] { new ComparableStack(ModItems.cap_sunset, 128) }, 10); - makeRecipe(new ComparableStack(ModBlocks.block_cap_star, 1), new AStack[] { new ComparableStack(ModItems.cap_star, 128) }, 10); + makeRecipe(new ComparableStack(ModBlocks.launch_pad_large, 1), new AStack[] { + new OreDictStack(STEEL.plateCast(), 6), + new OreDictStack(ANY_CONCRETE.any(), 64), + new OreDictStack(ANY_PLASTIC.ingot(), 16), + new ComparableStack(ModBlocks.steel_scaffold, 24), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] { + new OreDictStack(STEEL.plateWelded(), 8), + new OreDictStack(ANY_CONCRETE.any(), 8), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED) + }, 400); + + makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { + new OreDictStack(NB.ingot(), 4), + new ComparableStack(ModItems.redcoil_capacitor, 1), + new ComparableStack(ModItems.ingot_euphemium, 4), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CAPACITOR_BOARD), + new ComparableStack(ModItems.powder_nitan_mix, 18), + }, 600); + + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CELL.ordinal()), new AStack[] { + new ComparableStack(ModItems.ingot_cft, 2), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), + new ComparableStack(ModBlocks.glass_quartz, 16) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.EMITTER.ordinal()), new AStack[] { + new OreDictStack(W.plateWelded(), 4), + new OreDictStack(MAGTUNG.wireDense(), 16), + new OreDictStack(Fluids.XENON.getDict(16_000)) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CAPACITOR.ordinal()), new AStack[] { + new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 1), + new OreDictStack(ND.wireDense(), 16), + new OreDictStack(SBD.ingot(), 2) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.TURBO.ordinal()), new AStack[] { + new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), + new OreDictStack(DNT.wireDense(), 4), + new OreDictStack(SBD.ingot(), 4) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CASING.ordinal()), new AStack[] { + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), + new OreDictStack(BIGMT.plateCast(), 4), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_laser_component, 1, EnumICFPart.PORT.ordinal()), new AStack[] { + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 2), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new OreDictStack(ND.wireDense(), 4) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_controller, 1), new AStack[] { + new ComparableStack(ModItems.ingot_cft, 16), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID) + }, 200); + + makeRecipe(new ComparableStack(ModBlocks.icf_component, 1, 0), new AStack[] { + new OreDictStack(STEEL.plateWelded(), 4), + new OreDictStack(TI.plateWelded(), 2), + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_component, 1, 1), new AStack[] { + new ComparableStack(ModItems.ingot_cft, 1), + new OreDictStack(CMB.plateCast(), 1), + new OreDictStack(W.plateWelded(), 2), + }, 200); + makeRecipe(new ComparableStack(ModBlocks.icf_component, 1, 3), new AStack[] { + new OreDictStack(STEEL.plateWelded(), 2), + new OreDictStack(CU.plateWelded(), 2), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 1) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.struct_icf_core, 1), new AStack[] { + new OreDictStack(CMB.plateWelded(), 16), + new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), + new OreDictStack(SBD.wireDense(), 32), + new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.QUANTUM), + }, 600); + makeRecipe(new ComparableStack(ModBlocks.machine_icf_press, 1), new AStack[] { + new OreDictStack(GOLD.plateCast(), 8), + new ComparableStack(ModItems.motor, 4), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID) + }, 100); + + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.NUKA)), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.QUANTUM)), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.SPARKLE)), new AStack[] { new ComparableStack(ModItems.cap_sparkle, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.RAD)), new AStack[] { new ComparableStack(ModItems.cap_rad, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.FRITZ)), new AStack[] { new ComparableStack(ModItems.cap_fritz, 128) }, 10); + makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.KORL)), new AStack[] { new ComparableStack(ModItems.cap_korl, 128) }, 10); if(!GeneralConfig.enable528) { - makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(CU.plate(), 24), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); - makeRecipe(new ComparableStack(ModBlocks.reactor_element, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(PB.plate(), 2), new OreDictStack(ZR.ingot(), 2), },150); - makeRecipe(new ComparableStack(ModBlocks.reactor_control, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(PB.ingot(), 6), new ComparableStack(ModItems.bolt_tungsten, 6), new ComparableStack(ModItems.motor, 1), },100); - makeRecipe(new ComparableStack(ModBlocks.reactor_hatch, 1), new AStack[] {new ComparableStack(ModBlocks.brick_concrete, 1), new OreDictStack(STEEL.plate(), 6), },150); - makeRecipe(new ComparableStack(ModBlocks.reactor_conductor, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(CU.plate(), 12), new ComparableStack(ModItems.wire_tungsten, 4), },130); - makeRecipe(new ComparableStack(ModBlocks.reactor_computer, 1), new AStack[] {new ComparableStack(ModBlocks.reactor_conductor, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new ComparableStack(ModItems.circuit_gold, 1), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new OreDictStack(STEEL.pipe(), 12), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); + makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new OreDictStack(MAGTUNG.wireFine(), 24), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), }, 400, ModItems.journal_pip); makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150); - makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300); + makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), },300); } else { addTantalium(new ComparableStack(ModBlocks.machine_centrifuge, 1), 5); @@ -1057,33 +1085,32 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] { new ComparableStack(ModBlocks.machine_lithium_battery, 3), new ComparableStack(ModBlocks.hadron_coil_neodymium, 8), - new ComparableStack(ModItems.wire_advanced_alloy, 64), + new OreDictStack(ALLOY.wireFine(), 64), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate528(), 32), new OreDictStack(AL.plate528(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), - new ComparableStack(ModItems.board_copper, 8), - new ComparableStack(ModItems.circuit_red_copper, 8), - new ComparableStack(ModItems.circuit_gold, 3), - new ComparableStack(ModItems.circuit_tantalium, 50), + new OreDictStack(CU.plateCast(), 8), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), + new ComparableStack(ModItems.circuit, 50, EnumCircuitType.CAPACITOR_BOARD) }, 600); makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate528(), 32), - new ComparableStack(ModItems.plate_polymer, 16), - new ComparableStack(ModItems.circuit_gold, 5), - new ComparableStack(ModItems.circuit_tantalium, 20), + new OreDictStack(ANY_RUBBER.ingot(), 16), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC), + new ComparableStack(ModItems.circuit, 20, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.crt_display, 8), }, 300); makeRecipe(new ComparableStack(ModBlocks.rbmk_crane_console, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate528(), 8), - new ComparableStack(ModItems.plate_polymer, 4), - new ComparableStack(ModItems.circuit_gold, 1), - new ComparableStack(ModItems.circuit_tantalium, 10), + new OreDictStack(ANY_RUBBER.ingot(), 4), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), + new ComparableStack(ModItems.circuit, 10, EnumCircuitType.CAPACITOR_BOARD), }, 300); makeRecipe(new ComparableStack(ModBlocks.hadron_core, 1), new AStack[] { @@ -1091,9 +1118,8 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), - new ComparableStack(ModItems.circuit_gold, 5), - new ComparableStack(ModItems.circuit_schrabidium, 5), - new ComparableStack(ModItems.circuit_tantalium, 192), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), + new ComparableStack(ModItems.circuit, 192, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.crt_display, 1), }, 300); @@ -1102,8 +1128,8 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.steel_scaffold, 10), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 8), - new ComparableStack(ModItems.circuit_red_copper, 5), - new ComparableStack(ModItems.circuit_tantalium, 15), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), + new ComparableStack(ModItems.circuit, 15, EnumCircuitType.CAPACITOR_BOARD), }, 200); makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core_large, 1), new AStack[] { @@ -1111,8 +1137,8 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.steel_scaffold, 10), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(ANY_PLASTIC.ingot(), 12), - new ComparableStack(ModItems.circuit_gold, 5), - new ComparableStack(ModItems.circuit_tantalium, 25), + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), + new ComparableStack(ModItems.circuit, 25, EnumCircuitType.CAPACITOR_BOARD), }, 200); makeRecipe(new ComparableStack(ModBlocks.struct_soyuz_core, 1), new AStack[] { @@ -1120,9 +1146,9 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.steel_scaffold, 24), new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), - new ComparableStack(ModItems.circuit_gold, 5), + new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.upgrade_power_3, 3), - new ComparableStack(ModItems.circuit_tantalium, 100), + new ComparableStack(ModItems.circuit, 100, EnumCircuitType.CAPACITOR_BOARD), }, 200); } @@ -1131,16 +1157,15 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.concrete_smooth, 64), new ComparableStack(ModItems.drill_titanium), new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.plate_desh, 6), - new OreDictStack(NB.ingot(), 8), + !exp ? new ComparableStack(ModItems.plate_desh, 6) : new OreDictStack(DESH.heavyComp()), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.tank_steel, 24), new ComparableStack(ModItems.pipes_steel, 2) }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_cracker), new AStack[] { new ComparableStack(ModBlocks.steel_scaffold, 16), - new ComparableStack(ModItems.hull_big_steel, 4), - new ComparableStack(ModItems.tank_steel, 3), + !exp ? new OreDictStack(STEEL.shell(), 6) : new OreDictStack(STEEL.heavyComp()), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(NB.ingot(), 2), new ComparableStack(ModItems.catalyst_clay, 12), @@ -1148,35 +1173,30 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_liquefactor), new AStack[] { new OreDictStack(STEEL.ingot(), 8), - new OreDictStack(NB.ingot(), 2), new OreDictStack(CU.plate528(), 12), new OreDictStack(ANY_TAR.any(), 8), + new OreDictStack(STEEL.shell(), 3), + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.catalyst_clay, 4), - new ComparableStack(ModItems.coil_tungsten, 8), - new ComparableStack(ModItems.tank_steel, 2), - new ComparableStack(ModItems.inf_water_mk2, 2) + new ComparableStack(ModItems.coil_tungsten, 8) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_solidifier), new AStack[] { new OreDictStack(ANY_CONCRETE.any(), 8), - new OreDictStack(NB.ingot(), 2), new OreDictStack(AL.plate528(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 4), - new ComparableStack(ModItems.hull_big_steel, 3), + new OreDictStack(STEEL.shell(), 3), + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.catalyst_clay, 4), - new ComparableStack(ModItems.coil_copper, 4), - new ComparableStack(ModItems.tank_steel, 2) + new ComparableStack(ModItems.coil_copper, 4) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] { - new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), - new OreDictStack(DURA.ingot(), 10), - new OreDictStack(RUBBER.ingot(), 4), + new OreDictStack(RUBBER.ingot(), 8), new OreDictStack(PB.plate528(), 12), - new ComparableStack(ModItems.board_copper, 4), - new ComparableStack(ModItems.thermo_element, 10), - new ComparableStack(ModItems.wire_red_copper, 8), + new OreDictStack(CU.plateCast(), 4), + new ComparableStack(ModItems.thermo_element, 8), new ComparableStack(ModItems.tank_steel, 3) }, 200); @@ -1184,328 +1204,204 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.cmb_brick_reinforced, 16), new OreDictStack(STEEL.plate(), 64), new OreDictStack(ALLOY.plate(), 40), - new ComparableStack(ModItems.plate_polymer, 36), + new OreDictStack(ANY_RUBBER.ingot(), 36), new OreDictStack(STEEL.block(), 24), new ComparableStack(ModItems.motor_desh, 16), - new ComparableStack(ModItems.bolt_dura_steel, 12), + new OreDictStack(DURA.bolt(), 16), new OreDictStack(KEY_YELLOW, 4) }, 1200); + + makeRecipe(new ComparableStack(ModBlocks.sliding_blast_door, 1), new AStack[] { + new OreDictStack(STEEL.plate(), 16), + new OreDictStack(W.ingot(), 8), + new ComparableStack(ModBlocks.reinforced_glass, 4), + new OreDictStack(ANY_RUBBER.ingot(), 4), + new OreDictStack(DURA.bolt(), 16), + new ComparableStack(ModItems.motor, 2) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 16), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 400); + makeRecipe(new ComparableStack(ModBlocks.water_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 16), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeRed", 1)}, 200); + makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeBlack", 4)}, 400); + makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); + makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 400); + makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 400); + makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 200); + makeRecipe(new ComparableStack(ModBlocks.silo_hatch, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 4)}, 200); + makeRecipe(new ComparableStack(ModBlocks.silo_hatch_large, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 8)}, 200); - if(Loader.isModLoaded("Mekanism")) { + if(GeneralConfig.enableMekanismChanges && Loader.isModLoaded("Mekanism")) { Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); if(mb != null) { makeRecipe(new ComparableStack(mb, 1, 4), new AStack[] { - new OreDictStack(DURA.ingot(), 16), - new OreDictStack(DESH.ingot(), 8), - new OreDictStack(STEEL.plate(), 48), - new OreDictStack(CU.plate(), 24), - new ComparableStack(ModItems.pipes_steel, 8), - new ComparableStack(ModItems.circuit_gold, 8), - new ComparableStack(ModItems.wire_advanced_alloy, 24), - new ComparableStack(ModBlocks.fusion_conductor, 12), - new ComparableStack(ModBlocks.machine_lithium_battery, 3), - new ComparableStack(ModItems.crystal_redstone, 12), - new ComparableStack(ModItems.crystal_diamond, 8), - new ComparableStack(ModItems.motor_desh, 16) - }, 15 * 60 * 20); + new OreDictStack(BIGMT.plateCast(), 16), + new OreDictStack(CU.plateWelded(), 12), + new OreDictStack("alloyUltimate", 32), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), + new ComparableStack(ModItems.circuit, 32, EnumCircuitType.CAPACITOR_BOARD), + new ComparableStack(ModItems.wire_dense, 32, Mats.MAT_GOLD.id), + new ComparableStack(ModItems.motor_bismuth, 3) + }, 1200); } } + for(NTMMaterial mat : Mats.orderedList) { + if(mat.autogen.contains(MaterialShapes.CASTPLATE) && mat.autogen.contains(MaterialShapes.HEAVY_COMPONENT)) { + makeRecipe(new ComparableStack(ModItems.heavy_component, 1, mat.id), new AStack[] { new OreDictStack(MaterialShapes.CASTPLATE.name() + mat.names[0], 256) }, 12_000); + } + } - /// HIDDEN /// - hidden.put(new ComparableStack(ModBlocks.machine_radgen, 1), new HashSet() {{ add(ModItems.journal_pip); }}); - hidden.put(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new HashSet() {{ add(ModItems.journal_pip); add(ModItems.journal_bj); }}); - hidden.put(new ComparableStack(ModItems.mp_warhead_10_cloud, 1), new HashSet() {{ add(ModItems.journal_pip); }}); - hidden.put(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new HashSet() {{ add(ModItems.journal_pip); }}); - hidden.put(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new HashSet() {{ add(ModItems.journal_bj); }}); - hidden.put(new ComparableStack(ModItems.sat_gerald, 1), new HashSet() {{ add(ModItems.journal_bj); }}); - hidden.put(new ComparableStack(ModItems.missile_soyuz, 1), new HashSet() {{ add(ModItems.journal_bj); }}); - hidden.put(new ComparableStack(ModItems.missile_soyuz_lander, 1), new HashSet() {{ add(ModItems.journal_bj); }}); + // WarTec compatibility code + try { + Class wartecmodAssemblerRecipes = ClassLoader.getSystemClassLoader().loadClass("com.wartec.wartecmod.inventory.wartecmodAssemblerRecipes"); + MainRegistry.logger.info("WarTec assembler recipes class found!"); + Method method = wartecmodAssemblerRecipes.getDeclaredMethod("AssemblerRecipes"); + MainRegistry.logger.info("WarTec AssemblerRecipes method found!"); + method.invoke(null); + MainRegistry.logger.info("WarTec recipes loaded!"); + } catch(Exception e) { } } public static void makeRecipe(ComparableStack out, AStack[] in, int duration) { + makeRecipe(out, in, duration, ModItems.template_folder); + } + + public static void makeRecipe(ComparableStack out, AStack[] in, int duration, Item... folder) { if(out == null || Item.itemRegistry.getNameForObject(out.item) == null) { MainRegistry.logger.error("Canceling assembler registration, item was null!"); return; } - recipes.put(out, in); - time.put(out, duration); + AssemblerRecipe recipe = new AssemblerRecipe(in, duration, folder); + recipes.put(out, recipe); + recipeList.add(out); + } + + @Override + public String getFileName() { + return "hbmAssembler.json"; + } + + @Override + public Object getRecipeObject() { + return this.recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + recipeList.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = recipe.getAsJsonObject(); + + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + AStack[] input = this.readAStackArray(obj.get("input").getAsJsonArray()); + int duration = obj.get("duration").getAsInt(); + + if(output == null || output.getItem() == ModItems.nothing) return; + + if(obj.has("folders")) { + JsonArray array = obj.get("folders").getAsJsonArray(); + List items = new ArrayList(); + for(JsonElement element : array) { + Item item = (Item) Item.itemRegistry.getObject(element.getAsString()); + if(item != null) items.add(item); + } + this.makeRecipe(new ComparableStack(output), input, duration, items.toArray(new Item[0])); + } else { + this.makeRecipe(new ComparableStack(output), input, duration); + } + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry entry = (Entry) recipe; + + writer.name("output"); + this.writeItemStack(entry.getKey().toStack(), writer); + writer.name("input").beginArray(); + for(AStack stack : entry.getValue().ingredients) this.writeAStack(stack, writer); + writer.endArray(); + writer.name("duration").value(entry.getValue().time); + + if(entry.getValue().folders.size() != 1 || !entry.getValue().folders.contains(ModItems.template_folder)) { + writer.name("folders").beginArray(); + for(Item folder : entry.getValue().folders) writer.value(Item.itemRegistry.getNameForObject(folder)); + writer.endArray(); + } + } + + public static ItemStack getOutputFromTempate(ItemStack stack) { + + if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { + + ComparableStack comp = ItemAssemblyTemplate.readType(stack); + + //NEW + if(comp != null) { + return comp.toStack(); + } + + //LEGACY + int i = stack.getItemDamage(); + if(i >= 0 && i < recipeList.size()) { + return recipeList.get(i).toStack(); + } + } + + return null; + } + + public static List getRecipeFromTempate(ItemStack stack) { + + if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { + + //NEW + ComparableStack compStack = ItemAssemblyTemplate.readType(stack); + if(compStack != null) { + AssemblerRecipe recipe = recipes.get(compStack); + if(recipe == null) return null; + AStack[] ret = recipe.ingredients; + return ret == null ? null : Arrays.asList(ret); + } + + //LEGACY + int i = stack.getItemDamage(); + if(i >= 0 && i < recipeList.size()) { + ItemStack out = recipeList.get(i).toStack(); + + if(out != null) { + ComparableStack comp = new ComparableStack(out); + AssemblerRecipe recipe = recipes.get(comp); + if(recipe == null) return null; + AStack[] ret = recipe.ingredients; + return ret == null ? null : Arrays.asList(ret); + } + } + } + + return null; } public static void addTantalium(ComparableStack out, int amount) { - AStack[] ins = recipes.get(out); + AssemblerRecipe recipe = recipes.get(out); - if(ins != null) { + if(recipe != null) { - AStack[] news = new AStack[ins.length + 1]; + AStack[] news = new AStack[recipe.ingredients.length + 1]; - for(int i = 0; i < ins.length; i++) - news[i] = ins[i]; + for(int i = 0; i < recipe.ingredients.length; i++) + news[i] = recipe.ingredients[i]; - news[news.length - 1] = new ComparableStack(ModItems.circuit_tantalium, amount); - - recipes.put(out, news); - } - } - - /* - * { - * recipes : [ - * { - * output : [ "item", "hbm:item.tank_steel", 1, 0 ], - * duration : 100, - * input : [ - * [ "dict", "blockSteel", 6 ], - * [ "dict", "plateTitanium", 2 ], - * [ "dict", "dyeGray", 1 ], - * ] - * }, - * { - * output : [ "item", "hbm:plate_gold", 2, 0 ], - * duration : 20, - * input : [ - * [ "dict", "ingotGold", 3 ], - * [ "item", "hbm:item.wire_gold", 5 ] - * ] - * } - * ] - * } - */ - private static void loadJSONRecipes() { - - try { - JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); - - JsonElement recipes = json.get("recipes"); - - if(recipes instanceof JsonArray) { - - JsonArray recArray = recipes.getAsJsonArray(); - - //go through the recipes array - for(JsonElement recipe : recArray) { - - if(recipe.isJsonObject()) { - - JsonObject recObj = recipe.getAsJsonObject(); - - JsonElement input = recObj.get("input"); - JsonElement output = recObj.get("output"); - JsonElement duration = recObj.get("duration"); - - int time = 100; - - if(duration.isJsonPrimitive()) { - if(duration.getAsJsonPrimitive().isNumber()) { - time = Math.max(1, duration.getAsJsonPrimitive().getAsInt()); - } - } - - if(!(input instanceof JsonArray)) { - MainRegistry.logger.error("Error reading recipe, no input found!"); - continue; - } - - if(!(output instanceof JsonArray)) { - MainRegistry.logger.error("Error reading recipe, no output found!"); - continue; - } - - Object outp = parseJsonArray(output.getAsJsonArray()); - List inp = new ArrayList(); - - for(JsonElement in : input.getAsJsonArray()) { - - if(in.isJsonArray()) { - Object i = parseJsonArray(in.getAsJsonArray()); - - if(i instanceof ComparableStack || i instanceof OreDictStack) - inp.add(i); - } - } - - if(outp instanceof ComparableStack) { - AssemblerRecipes.recipes.put((ComparableStack) outp, Arrays.copyOf(inp.toArray(), inp.size(), AStack[].class)); - AssemblerRecipes.time.put((ComparableStack) outp, time); - } - } - } - } - - } catch (Exception e) { - //shush - } - } - - private static Object parseJsonArray(JsonArray array) { - - boolean dict = false; - String item = ""; - int stacksize = 1; - int meta = 0; - - if(array.size() < 2) - return null; - - //is index 0 "item" or "dict"? - if(array.get(0).isJsonPrimitive()) { - - if(array.get(0).getAsString().equals("item")) { - dict = false; - } else if(array.get(0).getAsString().equals("dict")) { - dict = true; - } else { - - MainRegistry.logger.error("Error reading recipe, stack array does not have 'item' or 'dict' label!"); - return null; - } - - } else { - - MainRegistry.logger.error("Error reading recipe, label is not a valid data type!"); - return null; - } - - //is index 1 a string - if(array.get(1).isJsonPrimitive()) { - - item = array.get(1).getAsString(); - - } else { - MainRegistry.logger.error("Error reading recipe, item string is not a valid data type!"); - return null; - } - - //if index 2 exists, eval it as a stacksize - if(array.size() > 2 && array.get(2).isJsonPrimitive()) { - - if(array.get(2).getAsJsonPrimitive().isNumber()) { - - stacksize = Math.max(1, array.get(2).getAsJsonPrimitive().getAsNumber().intValue()); - - } else { - - MainRegistry.logger.error("Error reading recipe, stack size is not a valid data type!"); - return null; - } - } - - //ore dict implementation - if(dict) { - - if(OreDictionary.doesOreNameExist(item)) { - return new OreDictStack(item, stacksize); - } else { - - MainRegistry.logger.error("Error reading recipe, ore dict name does not exist!"); - return null; - } - - //comparable stack - } else { - - //if index 4 exists, eval it as a meta - if(array.size() > 3 && array.get(3).isJsonPrimitive()) { - - if(array.get(3).getAsJsonPrimitive().isNumber()) { - - meta = Math.max(0, array.get(3).getAsJsonPrimitive().getAsNumber().intValue()); - - } else { - - MainRegistry.logger.error("Error reading recipe, metadata is not a valid data type!"); - return null; - } - } - - Item it = (Item)Item.itemRegistry.getObject(item); - - if(it == null) { - - MainRegistry.logger.error("Item could not be found!"); - return null; - } - - return new ComparableStack(it, stacksize, meta); - } - } - - public static void saveTemplateJSON(File dir) { - - template = new File(dir.getAbsolutePath() + File.separatorChar + "_hbmAssembler.json"); - - try { - - JsonWriter writer = new JsonWriter(new FileWriter(template)); - writer.setIndent(" "); - - writer.beginObject(); - - writer.name("recipes").beginArray(); - - for(ComparableStack output : recipeList) { - - writer.beginObject(); - writer.name("output").beginArray(); - writer.setIndent(""); - writer.value("item"); - writer.value(Item.itemRegistry.getNameForObject(output.toStack().getItem())); - writer.value(output.stacksize); - if(output.meta > 0) - writer.value(output.meta); - writer.endArray(); - writer.setIndent(" "); - - - writer.name("input").beginArray(); - - AStack[] inputs = recipes.get(output); - for(AStack astack : inputs) { - - writer.beginArray(); - writer.setIndent(""); - - if(astack instanceof ComparableStack) { - ComparableStack comp = (ComparableStack) astack; - - writer.value("item"); - writer.value(Item.itemRegistry.getNameForObject(comp.toStack().getItem())); - writer.value(comp.stacksize); - if(comp.meta > 0) - writer.value(comp.meta); - } - - if(astack instanceof OreDictStack) { - OreDictStack ore = (OreDictStack) astack; - - writer.value("dict"); - writer.value(ore.name); - writer.value(ore.stacksize); - } - - writer.endArray(); - writer.setIndent(" "); - } - - writer.endArray(); - - writer.name("duration").value(time.get(output)); - - writer.endObject(); - } - - writer.endArray(); - writer.endObject(); - writer.close(); - - } catch(IOException e) { - //shush + news[news.length - 1] = new ComparableStack(ModItems.circuit, amount, EnumCircuitType.CAPACITOR_BOARD); + recipe.ingredients = news; } } @@ -1513,18 +1409,13 @@ public class AssemblerRecipes { Map> recipes = new HashMap(); - for(Entry entry : AssemblerRecipes.recipes.entrySet()) { + for(Entry entry : AssemblerRecipes.recipes.entrySet()) { List value = new ArrayList(); + AssemblerRecipe recipe = entry.getValue(); - for(AStack o : entry.getValue()) { - - if(o instanceof ComparableStack) { - value.add(((ComparableStack)o).toStack()); - - } else if(o instanceof OreDictStack) { - value.add(((OreDictStack)o).extractForNEI()); - } + for(AStack o : recipe.ingredients) { + value.add(o.extractForNEI()); } recipes.put(entry.getKey().toStack(), value); @@ -1532,4 +1423,22 @@ public class AssemblerRecipes { return recipes; } + + public static class AssemblerRecipe { + + public AStack[] ingredients; + public int time; + public HashSet folders; + + public AssemblerRecipe(AStack[] ingredients, int time) { + this(ingredients, time, ModItems.template_folder); + } + + public AssemblerRecipe(AStack[] ingredients, int time, Item... folder) { + this.ingredients = ingredients; + this.time = time; + this.folders = new HashSet(); + for(Item item : folder) this.folders.add(item); + } + } } diff --git a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java index 3dd2f4914..af7032305 100644 --- a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java @@ -63,7 +63,7 @@ public class BlastFurnaceRecipes extends SerializableRecipe { addRecipe(CO, ModBlocks.block_meteor, new ItemStack(ModItems.ingot_meteorite)); addRecipe(ModItems.meteorite_sword_hardened, CO, new ItemStack(ModItems.meteorite_sword_alloyed)); addRecipe(ModBlocks.block_meteor, CO, new ItemStack(ModItems.ingot_meteorite)); - + if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) { addRecipe(ModItems.canister_empty, COAL, new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID())); } diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 992ed2e3e..cbf275343 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -1,6 +1,7 @@ package com.hbm.inventory.recipes; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; @@ -14,14 +15,22 @@ import com.hbm.config.GeneralConfig; import com.hbm.handler.imc.IMCCentrifuge; import static com.hbm.inventory.OreDictManager.*; import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; +import com.hbm.items.special.ItemBedrockOreNew; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.items.special.ItemByproduct.EnumByproduct; import com.hbm.main.MainRegistry; import com.hbm.util.ItemStackUtil; @@ -186,9 +195,98 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nugget_polonium, 12), new ItemStack(ModItems.nugget_pu238, 6), new ItemStack(ModItems.nuclear_waste, 2) }); + + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEU)), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 3), + new ItemStack(ModItems.nugget_plutonium, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEU233)), new ItemStack[] { + new ItemStack(ModItems.nugget_u235, 3), + new ItemStack(ModItems.nugget_pu238, 3), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEU235)), new ItemStack[] { + new ItemStack(ModItems.nugget_neptunium, 3), + new ItemStack(ModItems.nugget_pu238, 3), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEN)), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 3), + new ItemStack(ModItems.nugget_pu239, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEN237)), new ItemStack[] { + new ItemStack(ModItems.nugget_pu238, 2), + new ItemStack(ModItems.nugget_pu239, 4), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MOX)), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 3), + new ItemStack(ModItems.nugget_pu240, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEP)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 2), + new ItemStack(ModItems.nugget_pu_mix, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEP239)), new ItemStack[] { + new ItemStack(ModItems.nugget_pu_mix, 2), + new ItemStack(ModItems.nugget_pu240, 4), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEP241)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 3), + new ItemStack(ModItems.nugget_zirconium, 2), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEA)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 3), + new ItemStack(ModItems.nugget_zirconium, 2), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEA242)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 3), + new ItemStack(ModItems.nugget_zirconium, 2), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HES326)), new ItemStack[] { + new ItemStack(ModItems.nugget_solinium, 3), + new ItemStack(ModItems.nugget_lead, 2), + new ItemStack(ModItems.nugget_euphemium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HES327)), new ItemStack[] { + new ItemStack(ModItems.nugget_australium, 4), + new ItemStack(ModItems.nugget_lead, 1), + new ItemStack(ModItems.nugget_euphemium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_AM_MIX)), new ItemStack[] { + new ItemStack(ModItems.nugget_am_mix, 9), + new ItemStack(ModItems.nugget_pu_mix, 2), + new ItemStack(ModItems.nugget_bismuth, 6), + new ItemStack(ModItems.nuclear_waste_tiny, 1) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_PU241)), new ItemStack[] { + new ItemStack(ModItems.nugget_pu241, 9), + new ItemStack(ModItems.nugget_pu_mix, 2), + new ItemStack(ModItems.nugget_bismuth, 6), + new ItemStack(ModItems.nuclear_waste_tiny, 1) }); + + recipes.put(new ComparableStack(ModItems.icf_pellet_depleted), new ItemStack[] { + new ItemStack(ModItems.icf_pellet_empty, 1), + new ItemStack(ModItems.pellet_charged, 1), + new ItemStack(ModItems.pellet_charged, 1), + new ItemStack(ModItems.powder_iron, 1) }); + + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE)), new ItemStack[] { + new ItemStack(ModItems.powder_cobalt_tiny, 2), + new ItemStack(ModItems.powder_boron_tiny, 2), + new ItemStack(ModItems.powder_niobium_tiny, 2), + new ItemStack(ModItems.nugget_zirconium, 3) }); - if(OreDictionary.doesOreNameExist("nuggetNaquadria")) { - ItemStack nuggetNQR = OreDictionary.getOres("nuggetNaquadria").get(0); + ArrayList naquadriaNuggets = OreDictionary.getOres("nuggetNaquadria"); + if(naquadriaNuggets.size() != 0) { + ItemStack nuggetNQR = naquadriaNuggets.get(0); ItemStack copy = nuggetNQR.copy(); copy.stackSize = 12; recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.NQD)), new ItemStack[] { @@ -203,12 +301,6 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nuclear_waste, 2) }); } - recipes.put(new ComparableStack(ModItems.powder_cloud), new ItemStack[] { - new ItemStack(ModItems.powder_copper, 1), - new ItemStack(ModItems.sulfur, 1), - new ItemStack(ModItems.dust, 1), - new ItemStack(ModItems.dust, 1) }); - recipes.put(new OreDictStack(COAL.ore()), new ItemStack[] { new ItemStack(ModItems.powder_coal, 2), new ItemStack(ModItems.powder_coal, 2), @@ -305,7 +397,7 @@ public class CentrifugeRecipes extends SerializableRecipe { lbs ? new ItemStack(ModItems.nugget_ra226, 2) : new ItemStack(ModItems.nugget_ra226, 1), new ItemStack(Blocks.gravel, 1) }); - recipes.put(new OreDictStack(TH232.ore()), new ItemStack[] { + for(String ore : OreDictManager.TH232.all(MaterialShapes.ORE)) recipes.put(new OreDictStack(ore), new ItemStack[] { new ItemStack(ModItems.powder_thorium, 1), new ItemStack(ModItems.powder_thorium, 1), new ItemStack(ModItems.powder_uranium, 1), @@ -317,6 +409,12 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.powder_emerald, 1), new ItemStack(Blocks.gravel, 1) }); + recipes.put(new OreDictStack(F.ore()), new ItemStack[] { + new ItemStack(ModItems.fluorite, 3), + new ItemStack(ModItems.fluorite, 3), + new ItemStack(ModItems.gem_sodalite, 1), + new ItemStack(Blocks.gravel, 1) }); + recipes.put(new OreDictStack(REDSTONE.ore()), new ItemStack[] { new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), @@ -330,15 +428,9 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(Blocks.end_stone, 1) }); recipes.put(new OreDictStack(LAPIS.ore()), new ItemStack[] { - new ItemStack(ModItems.powder_lapis, 3), - new ItemStack(ModItems.powder_lapis, 3), + new ItemStack(ModItems.powder_lapis, 6), new ItemStack(ModItems.powder_cobalt_tiny, 1), - new ItemStack(Blocks.gravel, 1) }); - - recipes.put(new ComparableStack(ModBlocks.ore_meteor_starmetal), new ItemStack[] { - new ItemStack(ModItems.powder_dura_steel, 3), - new ItemStack(ModItems.powder_astatine, 1), - new ItemStack(ModItems.powder_cobalt, 2), + new ItemStack(ModItems.gem_sodalite, 1), new ItemStack(Blocks.gravel, 1) }); recipes.put(new ComparableStack(ModBlocks.block_euphemium_cluster), new ItemStack[] { @@ -368,9 +460,14 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModBlocks.block_slag), new ItemStack[] { new ItemStack(Blocks.gravel, 1), new ItemStack(ModItems.powder_fire, 1), - new ItemStack(ModItems.powder_calcium), //temp + new ItemStack(ModItems.powder_calcium), new ItemStack(ModItems.dust) }); + recipes.put(new ComparableStack(ModItems.powder_ash, 1, EnumAshType.COAL.ordinal()), new ItemStack[] { + new ItemStack(ModItems.powder_coal_tiny, 2), + new ItemStack(ModItems.powder_boron_tiny, 1), + new ItemStack(ModItems.dust_tiny, 6)}); + for(EnumBedrockOre ore : EnumBedrockOre.values()) { int i = ore.ordinal(); @@ -417,6 +514,29 @@ public class CentrifugeRecipes extends SerializableRecipe { ItemStackUtil.carefulCopy(by3) }); } + for(BedrockOreType type : BedrockOreType.values()) { + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), new ItemStack(Blocks.gravel)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), new ItemStack(Blocks.gravel)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), new ItemStack(Blocks.gravel)}); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type, 2)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type, 2)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type, 2)}); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type, 1)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type, 1)}); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductAcid1, 1), ItemBedrockOreNew.extract(type.byproductAcid2, 1), ItemBedrockOreNew.extract(type.byproductAcid3, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductSolvent1, 1), ItemBedrockOreNew.extract(type.byproductSolvent2, 1), ItemBedrockOreNew.extract(type.byproductSolvent3, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductRad1, 1), ItemBedrockOreNew.extract(type.byproductRad2, 1), ItemBedrockOreNew.extract(type.byproductRad3, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + } + List quartz = OreDictionary.getOres("crystalCertusQuartz"); if(quartz != null && !quartz.isEmpty()) { @@ -432,13 +552,13 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Items.blaze_rod), new ItemStack[] {new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.blaze_powder, 1), new ItemStack(ModItems.powder_fire, 1), new ItemStack(ModItems.powder_fire, 1) }); - recipes.put(new ComparableStack(ModItems.ingot_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 1), new ItemStack(ModItems.nugget_uranium, 3), new ItemStack(ModItems.nugget_plutonium, 2) }); + recipes.put(new ComparableStack(ModItems.ingot_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 1), new ItemStack(ModItems.nugget_uranium, 3), new ItemStack(ModItems.nugget_neptunium, 2) }); recipes.put(new ComparableStack(ModItems.crystal_coal), new ItemStack[] { new ItemStack(ModItems.powder_coal, 3), new ItemStack(ModItems.powder_coal, 3), new ItemStack(ModItems.powder_coal, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_iron), new ItemStack[] { new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_gold), new ItemStack[] { new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.ingot_mercury, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_redstone), new ItemStack[] { new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(ModItems.ingot_mercury, 3) }); - recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_cobalt, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_cobalt, 1), new ItemStack(ModItems.gem_sodalite, 2) }); recipes.put(new ComparableStack(ModItems.crystal_diamond), new ItemStack[] { new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1) }); recipes.put(new ComparableStack(ModItems.crystal_uranium), new ItemStack[] { new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.nugget_ra226, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_thorium), new ItemStack[] { new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_uranium, 1), new ItemStack(ModItems.nugget_ra226, 1) }); @@ -449,10 +569,10 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.crystal_copper), new ItemStack[] { new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.powder_cobalt_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_tungsten), new ItemStack[] { new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_aluminium), new ItemStack[] { new ItemStack(ModItems.powder_aluminium, 2), new ItemStack(ModItems.powder_aluminium, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); - recipes.put(new ComparableStack(ModItems.crystal_fluorite), new ItemStack[] { new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_fluorite), new ItemStack[] { new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.gem_sodalite, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ItemStack[] { new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_lead), new ItemStack[] { new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); - recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_uranium, 2), new ItemStack(ModItems.nugget_plutonium, 2) }); + recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_uranium, 2), new ItemStack(ModItems.nugget_neptunium, 2) }); recipes.put(new ComparableStack(ModItems.crystal_schrabidium), new ItemStack[] { new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_rare), new ItemStack[] { new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.nugget_zirconium, 2), new ItemStack(ModItems.nugget_zirconium, 2) }); recipes.put(new ComparableStack(ModItems.crystal_phosphorus), new ItemStack[] { new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.ingot_phosphorus, 2), new ItemStack(Items.blaze_powder, 2) }); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 62ba87dfa..3e8513f7c 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -38,7 +38,6 @@ public class ChemplantRecipes extends SerializableRecipe { @Override public void registerDefaults() { - registerFuelProcessing(); //6-30, formerly oil cracking, coal liquefaction and solidifciation registerOtherOil(); @@ -65,34 +64,20 @@ public class ChemplantRecipes extends SerializableRecipe { .outputFluids(new FluidStack(Fluids.NITAN, 1000))); recipes.add(new ChemRecipe(40, "PEROXIDE", 50) .inputFluids(new FluidStack(Fluids.WATER, 1000)) - .outputFluids(new FluidStack(Fluids.ACID, 800))); + .outputFluids(new FluidStack(Fluids.PEROXIDE, 800))); recipes.add(new ChemRecipe(90, "SULFURIC_ACID", 50) .inputItems(new OreDictStack(S.dust())) - .inputFluids(new FluidStack(Fluids.ACID, 800)) - .outputFluids(new FluidStack(Fluids.SULFURIC_ACID, 500))); + .inputFluids( + new FluidStack(Fluids.PEROXIDE, 800), + new FluidStack(Fluids.WATER, 1_000)) + .outputFluids(new FluidStack(Fluids.SULFURIC_ACID, 2_000))); recipes.add(new ChemRecipe(92, "NITRIC_ACID", 50) .inputItems(new OreDictStack(KNO.dust())) .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 500)) - .outputFluids(new FluidStack(Fluids.NITRIC_ACID, 500))); + .outputFluids(new FluidStack(Fluids.NITRIC_ACID, 1_000))); recipes.add(new ChemRecipe(93, "SOLVENT", 50) .inputFluids(new FluidStack(Fluids.NAPHTHA, 500), new FluidStack(Fluids.AROMATICS, 500)) .outputFluids(new FluidStack(Fluids.SOLVENT, 1000))); - recipes.add(new ChemRecipe(41, "CIRCUIT_4", 200) - .inputItems( - new ComparableStack(ModItems.circuit_red_copper), - new ComparableStack(ModItems.wire_gold, 4), - new OreDictStack(LAPIS.dust()), - new OreDictStack(ANY_PLASTIC.ingot())) - .inputFluids(new FluidStack(Fluids.ACID, 400), new FluidStack(Fluids.PETROLEUM, 200)) - .outputItems(new ItemStack(ModItems.circuit_gold))); - recipes.add(new ChemRecipe(42, "CIRCUIT_5", 250) - .inputItems( - new ComparableStack(ModItems.circuit_gold), - new ComparableStack(ModItems.wire_schrabidium, 4), - new OreDictStack(DIAMOND.dust()), - new OreDictStack(DESH.ingot())) - .inputFluids(new FluidStack(Fluids.ACID, 800, GeneralConfig.enable528 ? 1 : 0), new FluidStack(Fluids.MERCURY, 200)) - .outputItems(new ItemStack(ModItems.circuit_schrabidium))); recipes.add(new ChemRecipe(43, "POLYMER", 100) .inputItems( new OreDictStack(COAL.dust(), 2), @@ -121,8 +106,8 @@ public class ChemplantRecipes extends SerializableRecipe { new FluidStack(Fluids.XYLENE, 250), new FluidStack(Fluids.PHOSGENE, 250)) .inputItems( - new ComparableStack(com.hbm.blocks.ModBlocks.reinforced_glass), - new ComparableStack(com.hbm.items.ModItems.bolt_tungsten, 4)) + new ComparableStack(ModBlocks.reinforced_glass), + new OreDictStack(STEEL.bolt(), 4)) .outputItems(new ItemStack(com.hbm.blocks.ModBlocks.reinforced_laminate))); recipes.add(new ChemRecipe(94, "PC", 100) .inputFluids( @@ -159,7 +144,7 @@ public class ChemplantRecipes extends SerializableRecipe { .inputItems( new OreDictStack(U.billet(), 2), //12 nuggets: the numbers do match up :) new OreDictStack(S.dust(), 2)) - .inputFluids(new FluidStack(Fluids.ACID, 500)) + .inputFluids(new FluidStack(Fluids.PEROXIDE, 500)) .outputItems(new ItemStack(ModItems.powder_yellowcake))); recipes.add(new ChemRecipe(47, "UF6", 100) .inputItems( @@ -178,7 +163,7 @@ public class ChemplantRecipes extends SerializableRecipe { .inputItems( new OreDictStack(SA326.dust()), new OreDictStack(S.dust(), 2)) - .inputFluids(new FluidStack(Fluids.ACID, 2000)) + .inputFluids(new FluidStack(Fluids.PEROXIDE, 2000)) .outputFluids(new FluidStack(Fluids.SAS3, 1000))); recipes.add(new ChemRecipe(53, "CORDITE", 40) .inputItems( @@ -199,12 +184,14 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModItems.plate_kevlar, 4))); recipes.add(new ChemRecipe(55, "CONCRETE", 100) .inputItems( + new ComparableStack(ModItems.powder_cement, 1), new ComparableStack(Blocks.gravel, 8), new OreDictStack(KEY_SAND, 8)) .inputFluids(new FluidStack(Fluids.WATER, 2000)) .outputItems(new ItemStack(ModBlocks.concrete_smooth, 16))); recipes.add(new ChemRecipe(56, "CONCRETE_ASBESTOS", 100) .inputItems( + new ComparableStack(ModItems.powder_cement, 1), new ComparableStack(Blocks.gravel, 2), new OreDictStack(KEY_SAND, 2), (GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) ? @@ -214,36 +201,29 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModBlocks.concrete_asbestos, 16))); recipes.add(new ChemRecipe(79, "DUCRETE", 150) .inputItems( + new ComparableStack(ModItems.powder_cement, 4), + new ComparableStack(Blocks.gravel, 2), new OreDictStack(KEY_SAND, 8), - new OreDictStack(U238.billet(), 2), - new ComparableStack(Items.clay_ball, 4)) + new OreDictStack(U238.billet(), 2)) .inputFluids(new FluidStack(Fluids.WATER, 2000)) .outputItems(new ItemStack(ModBlocks.ducrete_smooth, 8))); recipes.add(new ChemRecipe(57, "SOLID_FUEL", 200) - .inputItems( - new ComparableStack(ModItems.solid_fuel, 2), - new OreDictStack(KNO.dust()), - new OreDictStack(REDSTONE.dust())) - .inputFluids(new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0)) + .inputItems(new ComparableStack(ModItems.solid_fuel, 2)) + .inputFluids( + new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0), + new FluidStack(Fluids.NITRIC_ACID, 100)) .outputItems(new ItemStack(ModItems.rocket_fuel, 4))); recipes.add(new ChemRecipe(58, "ELECTROLYSIS", 150) - .inputFluids(new FluidStack(Fluids.WATER, 8000)) + .inputFluids(new FluidStack(Fluids.WATER, 4000)) .outputFluids( - new FluidStack(Fluids.HYDROGEN, 800), - new FluidStack(Fluids.OXYGEN, 800))); + new FluidStack(Fluids.HYDROGEN, 400), + new FluidStack(Fluids.OXYGEN, 400))); recipes.add(new ChemRecipe(59, "XENON", 300) .inputFluids(new FluidStack(Fluids.NONE, 0)) .outputFluids(new FluidStack(Fluids.XENON, 50))); recipes.add(new ChemRecipe(60, "XENON_OXY", 20) .inputFluids(new FluidStack(Fluids.OXYGEN, 250)) .outputFluids(new FluidStack(Fluids.XENON, 50))); - recipes.add(new ChemRecipe(61, "SATURN", 60) - .inputItems( - new OreDictStack(DURA.dust(), 2), - new OreDictStack(CU.dust(), 1), - new OreDictStack(COAL.dust(), 1)) - .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100)) - .outputItems(new ItemStack(ModItems.ingot_saturnite, 4))); recipes.add(new ChemRecipe(62, "BALEFIRE", 100) .inputItems(new ComparableStack(ModItems.egg_balefire_shard)) .inputFluids(new FluidStack(Fluids.KEROSENE, 6000)) @@ -253,7 +233,7 @@ public class ChemplantRecipes extends SerializableRecipe { .inputItems(new ComparableStack(ModItems.pellet_charged)) .inputFluids( new FluidStack(Fluids.SAS3, 8000), - new FluidStack(Fluids.ACID, 6000)) + new FluidStack(Fluids.PEROXIDE, 6000)) .outputFluids(new FluidStack(Fluids.SCHRABIDIC, 16000))); recipes.add(new ChemRecipe(64, "SCHRABIDATE", 150) .inputItems(new OreDictStack(IRON.dust())) @@ -264,7 +244,7 @@ public class ChemplantRecipes extends SerializableRecipe { new OreDictStack(COLTAN.dust(), 2), new OreDictStack(COAL.dust())) .inputFluids( - new FluidStack(Fluids.ACID, 250), + new FluidStack(Fluids.PEROXIDE, 250), new FluidStack(Fluids.HYDROGEN, 500)) .outputItems( new ItemStack(ModItems.powder_coltan), @@ -282,18 +262,11 @@ public class ChemplantRecipes extends SerializableRecipe { recipes.add(new ChemRecipe(67, "COLTAN_CRYSTAL", 80) .inputFluids( new FluidStack(Fluids.PAIN, 1000), - new FluidStack(Fluids.ACID, 500)) + new FluidStack(Fluids.PEROXIDE, 500)) .outputItems( new ItemStack(ModItems.gem_tantalium), new ItemStack(ModItems.dust, 3)) .outputFluids(new FluidStack(Fluids.WATER, 250))); - recipes.add(new ChemRecipe(91, "ARSENIC", 1200) - .inputItems(new ComparableStack(ModItems.scrap_oil, 256)) - .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 1000)) - .outputItems( - new ItemStack(ModItems.nugget_arsenic), - new ItemStack(ModItems.sulfur, 2)) - .outputFluids(new FluidStack(Fluids.HEAVYOIL, 1500))); recipes.add(new ChemRecipe(68, "VIT_LIQUID", 100) .inputItems(new ComparableStack(ModBlocks.sand_lead)) .inputFluids(new FluidStack(Fluids.WASTEFLUID, 1000)) @@ -314,7 +287,7 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids( new FluidStack(Fluids.PETROLEUM, 100), new FluidStack(Fluids.STEAM, 1000)) - .outputItems(new ItemStack(ModItems.antiknock))); + .outputItems(new ItemStack(ModItems.fuel_additive))); recipes.add(new ChemRecipe(4, "FR_REOIL", 30) .inputFluids(new FluidStack(1000, Fluids.SMEAR)) .outputFluids(new FluidStack(800, Fluids.RECLAIMED))); @@ -324,18 +297,18 @@ public class ChemplantRecipes extends SerializableRecipe { new FluidStack(200, Fluids.LUBRICANT)) .outputFluids(new FluidStack(1000, Fluids.PETROIL))); recipes.add(new ChemRecipe(86, "PETROIL_LEADED", 40) - .inputItems(new ComparableStack(ModItems.antiknock)) + .inputItems(new ComparableStack(ModItems.fuel_additive)) .inputFluids(new FluidStack(Fluids.PETROIL, 10_000)) .outputFluids(new FluidStack(Fluids.PETROIL_LEADED, 12_000))); recipes.add(new ChemRecipe(71, "GASOLINE", 40) .inputFluids(new FluidStack(Fluids.NAPHTHA, 1000)) .outputFluids(new FluidStack(Fluids.GASOLINE, 800))); recipes.add(new ChemRecipe(85, "GASOLINE_LEADED", 40) - .inputItems(new ComparableStack(ModItems.antiknock)) + .inputItems(new ComparableStack(ModItems.fuel_additive)) .inputFluids(new FluidStack(Fluids.GASOLINE, 10_000)) .outputFluids(new FluidStack(Fluids.GASOLINE_LEADED, 12_000))); recipes.add(new ChemRecipe(87, "COALGAS_LEADED", 40) - .inputItems(new ComparableStack(ModItems.antiknock)) + .inputItems(new ComparableStack(ModItems.fuel_additive)) .inputFluids(new FluidStack(Fluids.COALGAS, 10_000)) .outputFluids(new FluidStack(Fluids.COALGAS_LEADED, 12_000))); recipes.add(new ChemRecipe(72, "FRACKSOL", 20) @@ -352,8 +325,8 @@ public class ChemplantRecipes extends SerializableRecipe { new ComparableStack(ModItems.powder_paleogenite), new OreDictStack(F.dust(), 8), new ComparableStack(ModItems.nugget_bismuth, 4)) - .inputFluids(new FluidStack(Fluids.ACID, 1000, 5)) - .outputFluids(new FluidStack(Fluids.DEATH, 1000, GeneralConfig.enable528 ? 5 : 0))); + .inputFluids(new FluidStack(Fluids.PEROXIDE, 1000, 5)) + .outputFluids(new FluidStack(Fluids.DEATH, 1000, 0))); //one bucket of ethanol equals 275_000 TU using the diesel baseline0 //the coal baseline is 400_000 per piece //if we assume a burntime of 1.5 ops (300 ticks) for sugar at 100 TU/t that would equal a total of 30_000 TU @@ -366,16 +339,16 @@ public class ChemplantRecipes extends SerializableRecipe { new ComparableStack(Items.dye, 2, 3)) .inputFluids( new FluidStack(Fluids.LUBRICANT, 400), - new FluidStack(Fluids.ACID, 400)) + new FluidStack(Fluids.PEROXIDE, 400)) .outputItems(new ItemStack(ModItems.chocolate, 4))); recipes.add(new ChemRecipe(77, "CO2", 60) .inputFluids(new FluidStack(Fluids.GAS, 1000)) .outputFluids(new FluidStack(Fluids.CARBONDIOXIDE, 1000))); recipes.add(new ChemRecipe(78, "HEAVY_ELECTROLYSIS", 150) - .inputFluids(new FluidStack(Fluids.HEAVYWATER, 8000)) + .inputFluids(new FluidStack(Fluids.HEAVYWATER, 2000)) .outputFluids( - new FluidStack(Fluids.DEUTERIUM, 400), - new FluidStack(Fluids.OXYGEN, 400))); + new FluidStack(Fluids.DEUTERIUM, 200), + new FluidStack(Fluids.OXYGEN, 200))); recipes.add(new ChemRecipe(80, "EPEARL", 100) .inputItems(new OreDictStack(DIAMOND.dust(), 1)) .inputFluids(new FluidStack(Fluids.XPJUICE, 500)) @@ -399,42 +372,24 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4000)) .outputItems(new ItemStack(ModItems.ammo_arty, 1, 11))); recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200) - .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.WATER, 1_000)) + .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); - recipes.add(new ChemRecipe(102, "PC_ELECTROLYSIS", 200) - .inputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250)) - .outputItems(new ItemStack(ModItems.dust)) - .outputFluids(new FluidStack(Fluids.CHLORINE, 125))); - recipes.add(new ChemRecipe(103, "CC_ELECTROLYSIS", 200) - .inputFluids(new FluidStack(Fluids.CALCIUM_CHLORIDE, 250)) - .outputFluids(new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125))); - } - - public static void registerFuelProcessing() { - recipes.add(new ChemRecipe(0, "FP_HEAVYOIL", 50) - .inputFluids(new FluidStack(1000, Fluids.HEAVYOIL)) - .outputFluids( - new FluidStack(FractionRecipes.heavy_frac_bitu * 10, Fluids.BITUMEN), - new FluidStack(FractionRecipes.heavy_frac_smear * 10, Fluids.SMEAR) - )); - recipes.add(new ChemRecipe(1, "FP_SMEAR", 50) - .inputFluids(new FluidStack(1000, Fluids.SMEAR)) - .outputFluids( - new FluidStack(FractionRecipes.smear_frac_heat * 10, Fluids.HEATINGOIL), - new FluidStack(FractionRecipes.smear_frac_lube * 10, Fluids.LUBRICANT) - )); - recipes.add(new ChemRecipe(2, "FP_NAPHTHA", 50) - .inputFluids(new FluidStack(1000, Fluids.NAPHTHA)) - .outputFluids( - new FluidStack(FractionRecipes.napht_frac_heat * 10, Fluids.HEATINGOIL), - new FluidStack(FractionRecipes.napht_frac_diesel * 10, Fluids.DIESEL) - )); - recipes.add(new ChemRecipe(3, "FP_LIGHTOIL", 50) - .inputFluids(new FluidStack(1000, Fluids.LIGHTOIL)) - .outputFluids( - new FluidStack(FractionRecipes.light_frac_diesel * 10, Fluids.DIESEL), - new FluidStack(FractionRecipes.light_frac_kero * 10, Fluids.KEROSENE) - )); + + recipes.add(new ChemRecipe(102, "THORIUM_SALT", 60) + .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000)) + .inputItems(new OreDictStack(TH232.nugget(), 2)) + .outputFluids(new FluidStack(Fluids.THORIUM_SALT, 16_000)) + .outputItems( + new ItemStack(ModItems.nugget_u233, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 1))); + + recipes.add(new ChemRecipe(103, "MEAT_PROCESSING", 200) + .inputItems(new OreDictStack(KEY_GLYPHID_MEAT, 3)) + .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 1000)) + .outputItems(new ItemStack(ModItems.sulfur, 4), + new ItemStack(ModItems.niter, 3)) + .outputFluids(new FluidStack(Fluids.SALIENT, 250))); + } public static void registerOtherOil() { @@ -449,7 +404,7 @@ public class ChemplantRecipes extends SerializableRecipe { .outputFluids(new FluidStack(1000, Fluids.LPG))); recipes.add(new ChemRecipe(34, "OIL_SAND", 200) .inputItems(new ComparableStack(ModBlocks.ore_oil_sand, 16), new OreDictStack(ANY_TAR.any(), 1)) - .outputItems(new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4), new ItemStack(Blocks.sand, 4)) + .outputItems(new ItemStack(Blocks.sand, 16)) .outputFluids(new FluidStack(1000, Fluids.BITUMEN))); recipes.add(new ChemRecipe(35, "ASPHALT", 100) .inputItems(new ComparableStack(Blocks.gravel, 2), new ComparableStack(Blocks.sand, 6)) diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 3696d82d4..75b97e3a5 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -38,12 +38,14 @@ public class CokerRecipes extends SerializableRecipe { registerAuto(HEATINGOIL_VACUUM, OIL_COKER); registerAuto(RECLAIMED, NAPHTHA_COKER); registerAuto(NAPHTHA, NAPHTHA_COKER); + registerAuto(NAPHTHA_DS, NAPHTHA_COKER); registerAuto(NAPHTHA_CRACK, NAPHTHA_COKER); registerAuto(DIESEL, NAPHTHA_COKER); registerAuto(DIESEL_REFORM, NAPHTHA_COKER); registerAuto(DIESEL_CRACK, GAS_COKER); registerAuto(DIESEL_CRACK_REFORM, GAS_COKER); registerAuto(LIGHTOIL, GAS_COKER); + registerAuto(LIGHTOIL_DS, GAS_COKER); registerAuto(LIGHTOIL_CRACK, GAS_COKER); registerAuto(LIGHTOIL_VACUUM, GAS_COKER); registerAuto(BIOFUEL, GAS_COKER); @@ -56,10 +58,14 @@ public class CokerRecipes extends SerializableRecipe { registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); registerRecipe(WATZ, 4_000, new ItemStack(ModItems.ingot_mud, 4), null); - registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 2), new FluidStack(MERCURY, 50)); + registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 1), new FluidStack(MERCURY, 50)); registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); + //only cokable gas to extract sulfur content + registerRecipe(SOURGAS, 1_000, new ItemStack(ModItems.sulfur), new FluidStack(GAS_COKER, 150)); + registerRecipe(SLOP, 1000, new ItemStack(ModItems.powder_limestone), new FluidStack(COLLOID, 250)); + registerRecipe(VITRIOL, 4000, new ItemStack(ModItems.powder_iron), new FluidStack(SULFURIC_ACID, 500)); } private static void registerAuto(FluidType fluid, FluidType type) { diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index f1d5d7658..8f4bf4b83 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -18,13 +18,18 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.special.ItemBedrockOreNew; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.util.Tuple.Pair; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -37,20 +42,23 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(COAL.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 100))); recipes.put(COAL.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.COAL)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 150))); - recipes.put(LIGNITE.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(LIGNITE.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); - recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); - //recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); - recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 50))); + recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); + recipes.put(MOLYSITE.dust(), new Pair(new ItemStack(Items.iron_ingot), new FluidStack(Fluids.CHLORINE, 250))); + recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); + recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); + recipes.put(SODALITE.gem(), new Pair(new ItemStack(ModItems.powder_sodium), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); + recipes.put(NA.dust(), new Pair(null, new FluidStack(Fluids.SODIUM, 100))); + recipes.put(LIMESTONE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CARBONDIOXIDE, 50))); - recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); - recipes.put(KEY_SAPLING, new Pair(null, new FluidStack(Fluids.WOODOIL, 50))); - recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.WOOD)), new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 500))); + recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); + recipes.put(KEY_SAPLING, new Pair(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD), new FluidStack(Fluids.WOODOIL, 50))); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.WOOD)), new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 500))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), null)); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), null)); @@ -58,6 +66,15 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WOOD)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), null)); recipes.put(new ComparableStack(Items.reeds), new Pair(new ItemStack(Items.sugar, 2), new FluidStack(Fluids.ETHANOL, 50))); + recipes.put(new ComparableStack(Blocks.clay), new Pair(new ItemStack(Blocks.brick_block, 1), null)); + + for(BedrockOreType type : BedrockOreType.values()) { + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); + } } public static Pair getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java index 2e22d2e8b..a611276ae 100644 --- a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -22,16 +22,27 @@ public class CompressorRecipes extends SerializableRecipe { recipes.put(new Pair(Fluids.STEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.HOTSTEAM, 100))); recipes.put(new Pair(Fluids.HOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.SUPERHOTSTEAM, 100))); recipes.put(new Pair(Fluids.SUPERHOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.ULTRAHOTSTEAM, 100))); + + recipes.put(new Pair(Fluids.PETROLEUM, 0), new CompressorRecipe(2_000, new FluidStack(Fluids.PETROLEUM, 2_000, 1), 20)); + recipes.put(new Pair(Fluids.PETROLEUM, 1), new CompressorRecipe(2_000, new FluidStack(Fluids.LPG, 1_000, 0), 20)); + + recipes.put(new Pair(Fluids.BLOOD, 3), new CompressorRecipe(1_000, new FluidStack(Fluids.HEAVYOIL, 250, 0), 200)); } public static class CompressorRecipe { public FluidStack output; public int inputAmount; + public int duration; - public CompressorRecipe(int input, FluidStack output) { + public CompressorRecipe(int input, FluidStack output, int duration) { this.output = output; this.inputAmount = input; + this.duration = duration; + } + + public CompressorRecipe(int input, FluidStack output) { + this(input, output, 100); } } diff --git a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java index fecbd9e20..fe489691e 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java @@ -89,17 +89,33 @@ public class CrucibleRecipes extends SerializableRecipe { .outputs(new MaterialStack(Mats.MAT_FERRO, n * 3))); recipes.add(new CrucibleRecipe(5, "crucible.tcalloy", 9, new ItemStack(ModItems.ingot_tcalloy)) - .inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_TECHNIETIUM, n)) + .inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_TECHNETIUM, n)) .outputs(new MaterialStack(Mats.MAT_TCALLOY, i))); recipes.add(new CrucibleRecipe(12, "crucible.cdalloy", 9, new ItemStack(ModItems.ingot_cdalloy)) .inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_CADMIUM, n)) .outputs(new MaterialStack(Mats.MAT_CDALLOY, i))); + recipes.add(new CrucibleRecipe(14, "crucible.bbronze", 9, new ItemStack(ModItems.ingot_bismuth_bronze)) + .inputs(new MaterialStack(Mats.MAT_COPPER, n * 8), new MaterialStack(Mats.MAT_BISMUTH, n), new MaterialStack(Mats.MAT_FLUX, n * 3)) + .outputs(new MaterialStack(Mats.MAT_BBRONZE, i), new MaterialStack(Mats.MAT_SLAG, n * 3))); + + recipes.add(new CrucibleRecipe(15, "crucible.abronze", 9, new ItemStack(ModItems.ingot_arsenic_bronze)) + .inputs(new MaterialStack(Mats.MAT_COPPER, n * 8), new MaterialStack(Mats.MAT_ARSENIC, n), new MaterialStack(Mats.MAT_FLUX, n * 3)) + .outputs(new MaterialStack(Mats.MAT_ABRONZE, i), new MaterialStack(Mats.MAT_SLAG, n * 3))); + recipes.add(new CrucibleRecipe(13, "crucible.cmb", 3, new ItemStack(ModItems.ingot_combine_steel)) .inputs(new MaterialStack(Mats.MAT_MAGTUNG, n * 6), new MaterialStack(Mats.MAT_MUD, n * 3)) .outputs(new MaterialStack(Mats.MAT_CMB, i))); + recipes.add(new CrucibleRecipe(16, "crucible.magtung", 3, new ItemStack(ModItems.ingot_magnetized_tungsten)) + .inputs(new MaterialStack(Mats.MAT_TUNGSTEN, i), new MaterialStack(Mats.MAT_SCHRABIDIUM, n * 1)) + .outputs(new MaterialStack(Mats.MAT_MAGTUNG, i))); + + recipes.add(new CrucibleRecipe(17, "crucible.bscco", 3, new ItemStack(ModItems.ingot_bscco)) + .inputs(new MaterialStack(Mats.MAT_BISMUTH, n * 2), new MaterialStack(Mats.MAT_STRONTIUM, n * 2), new MaterialStack(Mats.MAT_CALCIUM, n * 2), new MaterialStack(Mats.MAT_COPPER, n * 3)) + .outputs(new MaterialStack(Mats.MAT_BSCCO, i))); + registerMoldsForNEI(); } @@ -240,16 +256,17 @@ public class CrucibleRecipes extends SerializableRecipe { int in = material.convIn; int out = material.convOut; NTMMaterial convert = material.smeltsInto; - for(MaterialShapes shape : MaterialShapes.allShapes) { + if(convert.smeltable == SmeltingBehavior.SMELTABLE || convert.smeltable == SmeltingBehavior.ADDITIVE) for(MaterialShapes shape : MaterialShapes.allShapes) { //TODO: buffer these - - String name = shape.name() + material.names[0]; - List ores = OreDictionary.getOres(name); - - if(!ores.isEmpty()) { - List stacks = new ArrayList(); - stacks.add(ItemScraps.create(new MaterialStack(convert, (int) (shape.q(1) * out / in)), true)); - map.put(new OreDictStack(name), stacks); + if(!shape.noAutogen) { + String name = shape.make(material); + List ores = OreDictionary.getOres(name); + + if(!ores.isEmpty()) { + List stacks = new ArrayList(); + stacks.add(ItemScraps.create(new MaterialStack(convert, (int) (shape.q(1) * out / in)), true)); + map.put(new OreDictStack(name), stacks); + } } } } diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 69c7652e1..135524cba 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -13,18 +13,24 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.handler.imc.IMCCrystallizer; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemChemicalDye.EnumChemDye; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.special.ItemBedrockOreNew; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.main.MainRegistry; import com.hbm.util.Tuple.Pair; @@ -42,12 +48,14 @@ public class CrystallizerRecipes extends SerializableRecipe { //'Object' is either a ComparableStack or the key for the ore dict private static HashMap, CrystallizerRecipe> recipes = new HashMap(); + private static HashMap amounts = new HashMap(); // for use in the partitioner @Override public void registerDefaults() { - int baseTime = 600; - int utilityTime = 100; + final int baseTime = 600; + final int utilityTime = 100; + final int mixingTime = 20; FluidStack sulfur = new FluidStack(Fluids.SULFURIC_ACID, 500); registerRecipe(COAL.ore(), new CrystallizerRecipe(ModItems.crystal_coal, baseTime)); @@ -57,7 +65,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(LAPIS.ore(), new CrystallizerRecipe(ModItems.crystal_lapis, baseTime)); registerRecipe(DIAMOND.ore(), new CrystallizerRecipe(ModItems.crystal_diamond, baseTime)); registerRecipe(U.ore(), new CrystallizerRecipe(ModItems.crystal_uranium, baseTime), sulfur); - registerRecipe(TH232.ore(), new CrystallizerRecipe(ModItems.crystal_thorium, baseTime), sulfur); + for(String ore : OreDictManager.TH232.all(MaterialShapes.ORE)) registerRecipe(ore, new CrystallizerRecipe(ModItems.crystal_thorium, baseTime), sulfur); registerRecipe(PU.ore(), new CrystallizerRecipe(ModItems.crystal_plutonium, baseTime), sulfur); registerRecipe(TI.ore(), new CrystallizerRecipe(ModItems.crystal_titanium, baseTime), sulfur); registerRecipe(S.ore(), new CrystallizerRecipe(ModItems.crystal_sulfur, baseTime)); @@ -70,7 +78,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(PB.ore(), new CrystallizerRecipe(ModItems.crystal_lead, baseTime)); registerRecipe(SA326.ore(), new CrystallizerRecipe(ModItems.crystal_schrabidium, baseTime), sulfur); registerRecipe(LI.ore(), new CrystallizerRecipe(ModItems.crystal_lithium, baseTime), sulfur); - registerRecipe(STAR.ore(), new CrystallizerRecipe(ModItems.crystal_starmetal, baseTime), sulfur); + //registerRecipe(STAR.ore(), new CrystallizerRecipe(ModItems.crystal_starmetal, baseTime), sulfur); registerRecipe(CO.ore(), new CrystallizerRecipe(ModItems.crystal_cobalt, baseTime), sulfur); registerRecipe("oreRareEarth", new CrystallizerRecipe(ModItems.crystal_rare, baseTime), sulfur); @@ -80,8 +88,9 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModBlocks.ore_tikite), new CrystallizerRecipe(ModItems.crystal_trixite, baseTime), sulfur); registerRecipe(new ComparableStack(ModBlocks.gravel_diamond), new CrystallizerRecipe(ModItems.crystal_diamond, baseTime)); registerRecipe(SRN.ingot(), new CrystallizerRecipe(ModItems.crystal_schraranium, baseTime)); - - registerRecipe("sand", new CrystallizerRecipe(ModItems.ingot_fiberglass, utilityTime)); + + registerRecipe(KEY_SAND, new CrystallizerRecipe(ModItems.ingot_fiberglass, utilityTime)); + registerRecipe(SI.ingot(), new CrystallizerRecipe(new ItemStack(Items.quartz, 2), utilityTime), new FluidStack(Fluids.OXYGEN, 250)); registerRecipe(REDSTONE.block(), new CrystallizerRecipe(ModItems.ingot_mercury, baseTime)); registerRecipe(CINNABAR.crystal(), new CrystallizerRecipe(new ItemStack(ModItems.ingot_mercury, 3), baseTime)); registerRecipe(BORAX.dust(), new CrystallizerRecipe(new ItemStack(ModItems.powder_boron_tiny, 3), baseTime), sulfur); @@ -92,9 +101,11 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(Items.rotten_flesh), new CrystallizerRecipe(Items.leather, utilityTime)); registerRecipe(new ComparableStack(ModItems.coal_infernal), new CrystallizerRecipe(ModItems.solid_fuel, utilityTime)); registerRecipe(new ComparableStack(ModBlocks.stone_gneiss), new CrystallizerRecipe(ModItems.powder_lithium, utilityTime)); - registerRecipe(new ComparableStack(Items.dye, 1, 15), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 4), 20), new FluidStack(Fluids.SULFURIC_ACID, 250)); - registerRecipe(new ComparableStack(Items.bone), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 16), 20), new FluidStack(Fluids.SULFURIC_ACID, 1_000)); + registerRecipe(new ComparableStack(Items.dye, 1, 15), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 4), mixingTime), new FluidStack(Fluids.SULFURIC_ACID, 250)); + registerRecipe(new ComparableStack(Items.bone), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 16), mixingTime), new FluidStack(Fluids.SULFURIC_ACID, 1_000)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CrystallizerRecipe(new ItemStack(ModItems.powder_cadmium), 100).setReq(10), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(ModItems.scrap_oil), new CrystallizerRecipe(new ItemStack(ModItems.nugget_arsenic), 100).setReq(16), new FluidStack(Fluids.RADIOSOLVENT, 100)); + registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE)), new CrystallizerRecipe(new ItemStack(ModItems.ingot_cft), baseTime).setReq(4), new FluidStack(Fluids.XYLENE, 1_000)); registerRecipe(DIAMOND.dust(), new CrystallizerRecipe(Items.diamond, utilityTime)); registerRecipe(EMERALD.dust(), new CrystallizerRecipe(Items.emerald, utilityTime)); @@ -102,7 +113,9 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModItems.powder_semtex_mix), new CrystallizerRecipe(ModItems.ingot_semtex, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_desh_ready), new CrystallizerRecipe(ModItems.ingot_desh, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_meteorite), new CrystallizerRecipe(ModItems.fragment_meteorite, utilityTime)); - registerRecipe(CD.dust(), new CrystallizerRecipe(ModItems.ingot_rubber, baseTime), new FluidStack(Fluids.FISHOIL, 250)); + registerRecipe(CD.dust(), new CrystallizerRecipe(ModItems.ingot_rubber, utilityTime), new FluidStack(Fluids.FISHOIL, 250)); + registerRecipe(LATEX.ingot(), new CrystallizerRecipe(ModItems.ingot_rubber, mixingTime), new FluidStack(Fluids.SOURGAS, 25)); + registerRecipe(new ComparableStack(ModItems.powder_sawdust), new CrystallizerRecipe(ModItems.cordite, mixingTime), new FluidStack(Fluids.NITROGLYCERIN, 250)); registerRecipe(new ComparableStack(ModItems.meteorite_sword_treated), new CrystallizerRecipe(ModItems.meteorite_sword_etched, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_impure_osmiridium), new CrystallizerRecipe(ModItems.crystal_osmiridium, baseTime), new FluidStack(Fluids.SCHRABIDIC, 1_000)); @@ -126,15 +139,71 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModItems.ore_nitrocrystalline, 1, i), new CrystallizerRecipe(new ItemStack(ModItems.ore_deepcleaned, 1, i), oreTime), organic); registerRecipe(new ComparableStack(ModItems.ore_nitrocrystalline, 1, i), new CrystallizerRecipe(new ItemStack(ModItems.ore_seared, 1, i), oreTime), hiperf); } + + int bedrock = 200; + int washing = 100; + for(BedrockOreType type : BedrockOreType.values()) { + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type), bedrock), new FluidStack(Fluids.SULFURIC_ACID, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type), bedrock), new FluidStack(Fluids.SULFURIC_ACID, 250)); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type), bedrock), new FluidStack(Fluids.SOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type), bedrock), new FluidStack(Fluids.SOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type), bedrock), new FluidStack(Fluids.SOLVENT, 250)); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type), bedrock), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type), bedrock), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type), bedrock), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type), bedrock), new FluidStack(Fluids.RADIOSOLVENT, 250)); + + int sulf = 4; + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type), washing).setReq(sulf), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type), washing).setReq(sulf), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type), washing).setReq(sulf), new FluidStack(Fluids.WATER, 250)); + + int solv = 4; + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type), washing).setReq(solv), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type), washing).setReq(solv), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type), washing).setReq(solv), new FluidStack(Fluids.WATER, 250)); + + int rad = 4; + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type), washing).setReq(rad), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type), washing).setReq(rad), new FluidStack(Fluids.WATER, 250)); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type), washing).setReq(rad), new FluidStack(Fluids.WATER, 250)); + + FluidStack primary = new FluidStack(Fluids.HYDROGEN, 250); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type), bedrock), primary); + + FluidStack secondary = new FluidStack(Fluids.CHLORINE, 250); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); + + registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type), bedrock).setReq(64), new FluidStack(Fluids.NITRIC_ACID, 1000)); + } FluidStack[] dyes = new FluidStack[] {new FluidStack(Fluids.WOODOIL, 100), new FluidStack(Fluids.FISHOIL, 100)}; for(FluidStack dye : dyes) { - registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), 20), dye); - registerRecipe(TI.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE, 4), 20), dye); - registerRecipe(IRON.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED, 4), 20), dye); - registerRecipe(W.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW, 4), 20), dye); - registerRecipe(CU.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 4), 20), dye); - registerRecipe(CO.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE, 4), 20), dye); + registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), mixingTime), dye); + registerRecipe(TI.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE, 4), mixingTime), dye); + registerRecipe(IRON.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED, 4), mixingTime), dye); + registerRecipe(W.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW, 4), mixingTime), dye); + registerRecipe(CU.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 4), mixingTime), dye); + registerRecipe(CO.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE, 4), mixingTime), dye); } registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 250)); @@ -175,22 +244,41 @@ public class CrystallizerRecipes extends SerializableRecipe { ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); Pair compKey = new Pair(comp, type); - - if(recipes.containsKey(compKey)) - return recipes.get(compKey); + + if(recipes.containsKey(compKey)) return recipes.get(compKey); String[] dictKeys = comp.getDictKeys(); for(String key : dictKeys) { - Pair dictKey = new Pair(key, type); - - if(recipes.containsKey(dictKey)) - return recipes.get(dictKey); + if(recipes.containsKey(dictKey)) return recipes.get(dictKey); } + comp.meta = OreDictionary.WILDCARD_VALUE; + if(recipes.containsKey(compKey)) return recipes.get(compKey); + return null; } + + public static int getAmount(ItemStack stack) { + + if(stack == null || stack.getItem() == null) + return 0; + + ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); + if(amounts.containsKey(comp)) return amounts.get(comp); + + String[] dictKeys = comp.getDictKeys(); + + for(String key : dictKeys) { + if(amounts.containsKey(key)) return amounts.get(key); + } + + comp.meta = OreDictionary.WILDCARD_VALUE; + if(amounts.containsKey(comp)) return amounts.get(comp); + + return 0; + } public static HashMap getRecipes() { @@ -220,12 +308,13 @@ public class CrystallizerRecipes extends SerializableRecipe { } public static void registerRecipe(Object input, CrystallizerRecipe recipe) { - registerRecipe(input, recipe, new FluidStack(Fluids.ACID, 500)); + registerRecipe(input, recipe, new FluidStack(Fluids.PEROXIDE, 500)); } public static void registerRecipe(Object input, CrystallizerRecipe recipe, FluidStack stack) { recipe.acidAmount = stack.fill; recipes.put(new Pair(input, stack.type), recipe); + amounts.put(input, recipe.itemAmount); } public static class CrystallizerRecipe { @@ -299,6 +388,7 @@ public class CrystallizerRecipes extends SerializableRecipe { @Override public void deleteRecipes() { recipes.clear(); + amounts.clear(); } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java new file mode 100644 index 000000000..a91431fa8 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java @@ -0,0 +1,155 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.util.Tuple.Pair; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class CustomMachineRecipes extends SerializableRecipe { + + public static HashMap> recipes = new HashMap(); + + @Override + public void registerDefaults() { + + recipes.put("paperPress", new ArrayList() {{ + CustomMachineRecipe recipe = new CustomMachineRecipe(); + recipe.inputFluids = new FluidStack[] {new FluidStack(Fluids.WATER, 250)}; + recipe.inputItems = new AStack[] {new ComparableStack(ModItems.powder_sawdust)}; + recipe.outputFluids = new FluidStack[0]; + recipe.outputItems = new Pair[] {new Pair(new ItemStack(Items.paper, 3), 1F)}; + recipe.duration = 60; + recipe.consumptionPerTick = 10; + recipe.pollutionType = "SOOT"; + recipe.pollutionAmount = 0.03F; + recipe.radiationAmount = 0; + recipe.flux = 0; + recipe.heat = 0; + add(recipe); + }}); + } + + @Override + public String getFileName() { + return "hbmCustomMachines.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = recipe.getAsJsonObject(); + + String name = obj.get("recipeKey").getAsString(); + List list = new ArrayList(); + JsonArray array = obj.get("recipes").getAsJsonArray(); + + for(int i = 0; i < array.size(); i++) { + JsonObject rec = array.get(i).getAsJsonObject(); + CustomMachineRecipe recipeInstance = new CustomMachineRecipe(); + recipeInstance.inputFluids = this.readFluidArray(rec.get("inputFluids").getAsJsonArray()); + recipeInstance.inputItems = this.readAStackArray(rec.get("inputItems").getAsJsonArray()); + recipeInstance.outputFluids = this.readFluidArray(rec.get("outputFluids").getAsJsonArray()); + recipeInstance.outputItems = this.readItemStackArrayChance(rec.get("outputItems").getAsJsonArray()); + recipeInstance.duration = rec.get("duration").getAsInt(); + recipeInstance.consumptionPerTick = rec.get("consumptionPerTick").getAsInt(); + + if(rec.has("pollutionType") && rec.has("pollutionAmount")) { + recipeInstance.pollutionType = rec.get("pollutionType").getAsString(); + recipeInstance.pollutionAmount = rec.get("pollutionAmount").getAsFloat(); + } else { + recipeInstance.pollutionType = ""; + } + + if(rec.has("radiationAmount")) recipeInstance.radiationAmount = rec.get("radiationAmount").getAsFloat(); + if(rec.has("flux")) recipeInstance.flux = rec.get("flux").getAsInt(); + if(rec.has("heat")) recipeInstance.heat = rec.get("heat").getAsInt(); + + list.add(recipeInstance); + } + + recipes.put(name, list); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry> entry = (Entry) recipe; + + writer.name("recipeKey").value(entry.getKey()); + writer.name("recipes").beginArray(); + + for(CustomMachineRecipe recipeInstance : entry.getValue()) { + writer.beginObject(); + + writer.name("inputFluids").beginArray(); + for(FluidStack stack : recipeInstance.inputFluids) this.writeFluidStack(stack, writer); + writer.endArray(); + + writer.name("inputItems").beginArray(); + for(AStack stack : recipeInstance.inputItems) this.writeAStack(stack, writer); + writer.endArray(); + + writer.name("outputFluids").beginArray(); + for(FluidStack stack : recipeInstance.outputFluids) this.writeFluidStack(stack, writer); + writer.endArray(); + + writer.name("outputItems").beginArray(); + for(Pair stack : recipeInstance.outputItems) this.writeItemStackChance(stack, writer); + writer.endArray(); + + writer.name("duration").value(recipeInstance.duration); + writer.name("consumptionPerTick").value(recipeInstance.consumptionPerTick); + writer.name("pollutionType").value(recipeInstance.pollutionType); + writer.name("pollutionAmount").value(recipeInstance.pollutionAmount); + writer.name("radiationAmount").value(recipeInstance.radiationAmount); + writer.name("flux").value(recipeInstance.flux); + writer.name("heat").value(recipeInstance.heat); + + writer.endObject(); + } + + writer.endArray(); + } + + public static class CustomMachineRecipe { + + public FluidStack[] inputFluids; + public AStack[] inputItems; + public FluidStack[] outputFluids; + public Pair[] outputItems; + + public int duration; + public int consumptionPerTick; + + public String pollutionType; + public float pollutionAmount; + public float radiationAmount; + public int flux; + public int heat; + } + +} diff --git a/src/main/java/com/hbm/inventory/recipes/CyclotronRecipes.java b/src/main/java/com/hbm/inventory/recipes/CyclotronRecipes.java index f5030c34f..734c24b5c 100644 --- a/src/main/java/com/hbm/inventory/recipes/CyclotronRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CyclotronRecipes.java @@ -44,7 +44,6 @@ public class CyclotronRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack("dustActinium"), new ItemStack(ModItems.powder_thorium), liA); makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack(U.dust()), new ItemStack(ModItems.powder_neptunium), liA); makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack(NP237.dust()), new ItemStack(ModItems.powder_plutonium), liA); - makeRecipe(new ComparableStack(ModItems.part_lithium), new ComparableStack(ModItems.powder_reiium), new ItemStack(ModItems.powder_weidanium), liA); /// LITHIUM END /// /// BERYLLIUM START /// @@ -57,7 +56,6 @@ public class CyclotronRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.part_beryllium), new ComparableStack(ModItems.powder_strontium), new ItemStack(ModItems.powder_niobium), beA); makeRecipe(new ComparableStack(ModItems.part_beryllium), new ComparableStack(ModItems.powder_cerium), new ItemStack(ModItems.powder_neodymium), beA); makeRecipe(new ComparableStack(ModItems.part_beryllium), new OreDictStack("dustThorium"), new ItemStack(ModItems.powder_uranium), beA); - makeRecipe(new ComparableStack(ModItems.part_beryllium), new ComparableStack(ModItems.powder_weidanium), new ItemStack(ModItems.powder_australium), beA); /// BERYLLIUM END /// /// CARBON START /// @@ -71,7 +69,6 @@ public class CyclotronRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.ingot_mercury), new ItemStack(ModItems.powder_polonium), caA); makeRecipe(new ComparableStack(ModItems.part_carbon), new OreDictStack(PB.dust()), new ItemStack(ModItems.powder_ra226),caA); makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_astatine), new ItemStack(ModItems.powder_actinium), caA); - makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_australium), new ItemStack(ModItems.powder_verticium), caA); /// CARBON END /// /// COPPER START /// @@ -87,7 +84,6 @@ public class CyclotronRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.part_copper), new ComparableStack(ModItems.powder_iodine), new ItemStack(ModItems.powder_polonium), coA); makeRecipe(new ComparableStack(ModItems.part_copper), new ComparableStack(ModItems.powder_caesium), new ItemStack(ModItems.powder_actinium), coA); makeRecipe(new ComparableStack(ModItems.part_copper), new OreDictStack("dustGold"), new ItemStack(ModItems.powder_uranium), coA); - makeRecipe(new ComparableStack(ModItems.part_copper), new ComparableStack(ModItems.powder_verticium), new ItemStack(ModItems.powder_unobtainium), coA); /// COPPER END /// /// PLUTONIUM START /// @@ -95,13 +91,10 @@ public class CyclotronRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.part_plutonium), new OreDictStack("dustPhosphorus"), new ItemStack(ModItems.powder_tennessine), plA); makeRecipe(new ComparableStack(ModItems.part_plutonium), new OreDictStack(PU.dust()), new ItemStack(ModItems.powder_tennessine), plA); - makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.powder_tennessine), new ItemStack(ModItems.powder_reiium), plA); + makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.powder_tennessine), new ItemStack(ModItems.powder_australium), plA); makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.pellet_charged), new ItemStack(ModItems.nugget_schrabidium), 1000); - makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.powder_unobtainium), new ItemStack(ModItems.powder_daffergon), plA); makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.cell_antimatter), new ItemStack(ModItems.cell_anti_schrabidium), 0); /// PLUTONIUM END /// - - ///TODO: fictional elements } private static void makeRecipe(ComparableStack part, AStack in, ItemStack out, int amat) { @@ -124,23 +117,6 @@ public class CyclotronRecipes extends SerializableRecipe { } } - //there's literally 0 reason why this doesn't work yet it refuses, fuck this - - /*Pair output = recipes.get(new Pair(boxStack, comp)); - - if(output != null) { - return new Object[] { output.getKey().copy(), output.getValue() }; - } - - for(String name : ItemStackUtil.getOreDictNames(stack)) { - OreDictStack ods = new OreDictStack(name); - output = recipes.get(new Pair(new ComparableStack(ModItems.part_beryllium), new OreDictStack("dustCobalt"))); - - if(output != null) { - return new Object[] { output.getKey().copy(), output.getValue() }; - } - }*/ - return null; } diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java new file mode 100644 index 000000000..2d98d3e76 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java @@ -0,0 +1,133 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; + +import net.minecraft.item.ItemStack; + +public class ElectrolyserFluidRecipes extends SerializableRecipe { + + public static HashMap recipes = new HashMap(); + + @Override + public void registerDefaults() { + recipes.put(Fluids.WATER, new ElectrolysisRecipe(2_000, new FluidStack(Fluids.HYDROGEN, 200), new FluidStack(Fluids.OXYGEN, 200), 10)); + recipes.put(Fluids.HEAVYWATER, new ElectrolysisRecipe(2_000, new FluidStack(Fluids.DEUTERIUM, 200), new FluidStack(Fluids.OXYGEN, 200), 10)); + recipes.put(Fluids.VITRIOL, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.SULFURIC_ACID, 500), new FluidStack(Fluids.CHLORINE, 500), new ItemStack(ModItems.powder_iron), new ItemStack(ModItems.ingot_mercury))); + recipes.put(Fluids.SLOP, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.MERCURY, 250), new FluidStack(Fluids.NONE, 0), new ItemStack(ModItems.niter, 2), new ItemStack(ModItems.powder_limestone, 2), new ItemStack(ModItems.sulfur))); + + recipes.put(Fluids.POTASSIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.NONE, 0), new ItemStack(ModItems.dust))); + recipes.put(Fluids.CALCIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125))); + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(Entry entry : ElectrolyserFluidRecipes.recipes.entrySet()) { + + ElectrolysisRecipe recipe = entry.getValue(); + FluidStack input = new FluidStack(entry.getKey(), recipe.amount); + List outputs = new ArrayList(); + if(recipe.output1.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output1)); + if(recipe.output2.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output2)); + for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct); + + recipes.put(ItemFluidIcon.make(input), outputs.toArray()); + } + + return recipes; + } + public static ElectrolysisRecipe getRecipe(FluidType type) { + if(type == null) + return null; + return recipes.get(type); + } + + @Override + public String getFileName() { + return "hbmElectrolyzerFluid.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + FluidStack input = this.readFluidStack(obj.get("input").getAsJsonArray()); + FluidStack output1 = this.readFluidStack(obj.get("output1").getAsJsonArray()); + FluidStack output2 = this.readFluidStack(obj.get("output2").getAsJsonArray()); + + int duration = 20; + if(obj.has("duraion")) duration = obj.get("duration").getAsInt(); + + ItemStack[] byproducts = new ItemStack[0]; + if(obj.has("byproducts")) byproducts = this.readItemStackArray(obj.get("byproducts").getAsJsonArray()); + + recipes.put(input.type, new ElectrolysisRecipe(input.fill, output1, output2, duration, byproducts)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry rec = (Entry) recipe; + + writer.name("input"); this.writeFluidStack(new FluidStack(rec.getKey(), rec.getValue().amount), writer); + writer.name("output1"); this.writeFluidStack(rec.getValue().output1, writer); + writer.name("output2"); this.writeFluidStack(rec.getValue().output2, writer); + + if(rec.getValue().byproduct != null && rec.getValue().byproduct.length > 0) { + writer.name("byproducts").beginArray(); + for(ItemStack stack : rec.getValue().byproduct) this.writeItemStack(stack, writer); + writer.endArray(); + } + + writer.name("duration").value(rec.getValue().duration); + } + + public static class ElectrolysisRecipe { + public FluidStack output1; + public FluidStack output2; + public int amount; + public ItemStack[] byproduct; + public int duration; + + public ElectrolysisRecipe(int amount, FluidStack output1, FluidStack output2, ItemStack... byproduct) { + this.output1 = output1; + this.output2 = output2; + this.amount = amount; + this.byproduct = byproduct; + this.duration = 20; + } + public ElectrolysisRecipe(int amount, FluidStack output1, FluidStack output2, int duration, ItemStack... byproduct) { + this.output1 = output1; + this.output2 = output2; + this.amount = amount; + this.byproduct = byproduct; + this.duration = duration; + } + } + + +} diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java new file mode 100644 index 000000000..958673c11 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java @@ -0,0 +1,317 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.*; +import java.util.Map.Entry; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.machine.ItemScraps; +import com.hbm.items.special.ItemBedrockOreNew; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreOutput; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; +import com.hbm.util.ItemStackUtil; + +import com.hbm.util.Tuple.*; +import net.minecraft.item.ItemStack; + +public class ElectrolyserMetalRecipes extends SerializableRecipe { + + public static HashMap recipes = new HashMap(); + + @Override + public void registerDefaults() { + + recipes.put(new ComparableStack(ModItems.crystal_iron), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_TITANIUM, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_gold), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_GOLD, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_LEAD, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3), + new ItemStack(ModItems.ingot_mercury, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_uranium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_RADIUM, MaterialShapes.NUGGET.q(4)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_thorium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_THORIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_plutonium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_POLONIUM, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_titanium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_TITANIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_copper), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_COPPER, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_LEAD, MaterialShapes.NUGGET.q(4)), + new ItemStack(ModItems.powder_lithium_tiny, 3), + new ItemStack(ModItems.sulfur, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_tungsten), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_TUNGSTEN, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_aluminium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_ALUMINIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_BERYLLIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_LEAD, MaterialShapes.NUGGET.q(4)), + new ItemStack(ModItems.powder_lithium_tiny, 3), + new ItemStack(ModItems.powder_quartz, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_lead), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_LEAD, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_GOLD, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.NUGGET.q(5)), + new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.NUGGET.q(2)), + new ItemStack(ModItems.nugget_neptunium, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_schrabidium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_rare), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_ZIRCONIUM, MaterialShapes.NUGGET.q(6)), + new MaterialStack(Mats.MAT_BORON, MaterialShapes.NUGGET.q(2)), + new ItemStack(ModItems.powder_desh_mix, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_trixite), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(3)), + new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(4)), + new ItemStack(ModItems.powder_niobium, 4), + new ItemStack(ModItems.powder_nitan_mix, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_lithium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_LITHIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_BORON, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_quartz, 2), + new ItemStack(ModItems.fluorite, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_starmetal), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_DURA, MaterialShapes.INGOT.q(4)), + new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(4)), + new ItemStack(ModItems.powder_astatine, 3), + new ItemStack(ModItems.ingot_mercury, 8))); + + recipes.put(new ComparableStack(ModItems.crystal_cobalt), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(3)), + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(4)), + new ItemStack(ModItems.powder_copper, 4), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + for(BedrockOreType type : BedrockOreType.values()) { + ArrayList> productsF = new ArrayList<>(); + productsF.add(new Pair(type.primary1, 8)); + productsF.add(new Pair(type.primary2, 4)); + productsF.add(new Pair(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type), 1)); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), makeBedrockOreProduct(productsF)); + + ArrayList> productsS = new ArrayList<>(); + productsS.add(new Pair(type.primary1, 4)); + productsS.add(new Pair(type.primary2, 8)); + productsS.add(new Pair(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type), 1)); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), makeBedrockOreProduct(productsS)); + + ArrayList> productsC = new ArrayList<>(); + productsC.add(new Pair(type.primary1, 2)); + productsC.add(new Pair(type.primary2, 2)); + + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), makeBedrockOreProduct(productsC)); + } + } + + public static ElectrolysisMetalRecipe makeBedrockOreProduct(ArrayList> products){ + ArrayList moltenProducts = new ArrayList(); + ArrayList solidProducts = new ArrayList(); + + for(Pair product : products){ + if(moltenProducts.size() < 2 && product.getKey() instanceof BedrockOreOutput) { + MaterialStack melt = ItemBedrockOreNew.toFluid((BedrockOreOutput) product.getKey(), product.getValue()); + if (melt != null) { + moltenProducts.add(melt); + continue; + } + } + + if(product.getKey() instanceof BedrockOreOutput) solidProducts.add(ItemBedrockOreNew.extract((BedrockOreOutput) product.getKey(), product.getValue())); + if(product.getKey() instanceof ItemStack) solidProducts.add(((ItemStack) product.getKey()).copy()); + } + if(moltenProducts.size() == 0) moltenProducts.add(new MaterialStack(Mats.MAT_SLAG, MaterialShapes.INGOT.q(2))); + + return new ElectrolysisMetalRecipe( + moltenProducts.get(0), + moltenProducts.size() > 1 ? moltenProducts.get(1) : null, + 20, + solidProducts.toArray(new ItemStack[0])); + } + + public static ElectrolysisMetalRecipe getRecipe(ItemStack stack) { + if(stack == null || stack.getItem() == null) return null; + ComparableStack comp = new ComparableStack(stack).makeSingular(); + + if(recipes.containsKey(comp)) return recipes.get(comp); + + List names = ItemStackUtil.getOreDictNames(stack); + + for(String name : names) { + OreDictStack ore = new OreDictStack(name); + if(recipes.containsKey(ore)) return recipes.get(ore); + } + + return null; + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(Entry entry : ElectrolyserMetalRecipes.recipes.entrySet()) { + + ElectrolysisMetalRecipe recipe = entry.getValue(); + Object[] input = new Object[] { entry.getKey().copy(), ItemFluidIcon.make(Fluids.NITRIC_ACID, 100) }; + List outputs = new ArrayList(); + if(recipe.output1 != null) outputs.add(ItemScraps.create(recipe.output1, true)); + if(recipe.output2 != null) outputs.add(ItemScraps.create(recipe.output2, true)); + for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct); + + recipes.put(input, outputs.toArray()); + } + + return recipes; + } + + @Override + public String getFileName() { + return "hbmElectrolyzerMetal.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + AStack input = this.readAStack(obj.get("input").getAsJsonArray()); + + MaterialStack output1 = null; + MaterialStack output2 = null; + + if(obj.has("output1")) { + JsonArray out1 = obj.get("output1").getAsJsonArray(); + String name1 = out1.get(0).getAsString(); + int amount1 = out1.get(1).getAsInt(); + output1 = new MaterialStack(Mats.matByName.get(name1), amount1); + } + + if(obj.has("output2")) { + JsonArray out2 = obj.get("output2").getAsJsonArray(); + String name2 = out2.get(0).getAsString(); + int amount2 = out2.get(1).getAsInt(); + output2 = new MaterialStack(Mats.matByName.get(name2), amount2); + } + + ItemStack[] byproducts = new ItemStack[0]; + if(obj.has("byproducts")) byproducts = this.readItemStackArray(obj.get("byproducts").getAsJsonArray()); + + int duration = 600; + if(obj.has("duration")) duration = obj.get("duration").getAsInt(); + + recipes.put(input, new ElectrolysisMetalRecipe(output1, output2, duration, byproducts)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry rec = (Entry) recipe; + + writer.name("input"); this.writeAStack(rec.getKey(), writer); + + if(rec.getValue().output1 != null) { + writer.name("output1"); + writer.beginArray(); + writer.setIndent(""); + writer.value(rec.getValue().output1.material.names[0]).value(rec.getValue().output1.amount); + writer.endArray(); + writer.setIndent(" "); + } + + if(rec.getValue().output2 != null) { + writer.name("output2"); + writer.beginArray(); + writer.setIndent(""); + writer.value(rec.getValue().output2.material.names[0]).value(rec.getValue().output2.amount); + writer.endArray(); + writer.setIndent(" "); + } + + if(rec.getValue().byproduct != null && rec.getValue().byproduct.length > 0) { + writer.name("byproducts").beginArray(); + for(ItemStack stack : rec.getValue().byproduct) this.writeItemStack(stack, writer); + writer.endArray(); + } + + writer.name("duration").value(rec.getValue().duration); + } + + public static class ElectrolysisMetalRecipe { + + public MaterialStack output1; + public MaterialStack output2; + public ItemStack[] byproduct; + public int duration; + + public ElectrolysisMetalRecipe(MaterialStack output1, MaterialStack output2, ItemStack... byproduct) { + this.output1 = output1; + this.output2 = output2; + this.byproduct = byproduct; + this.duration = 600; + } + public ElectrolysisMetalRecipe(MaterialStack output1, MaterialStack output2, int duration, ItemStack... byproduct) { + this.output1 = output1; + this.output2 = output2; + this.byproduct = byproduct; + this.duration = duration; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java new file mode 100644 index 000000000..5cee1cb84 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java @@ -0,0 +1,110 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import static com.hbm.inventory.OreDictManager.*; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; + +public class ExposureChamberRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_higgs), new OreDictStack(U.ingot()), new ItemStack(ModItems.ingot_schraranium))); + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_higgs), new OreDictStack(U238.ingot()), new ItemStack(ModItems.ingot_schrabidium))); + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_dark), new OreDictStack(PU.ingot()), new ItemStack(ModItems.ingot_euphemium))); + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_sparkticle), new OreDictStack(SBD.ingot()), new ItemStack(ModItems.ingot_dineutronium))); + } + + public static ExposureChamberRecipe getRecipe(ItemStack particle, ItemStack input) { + for(ExposureChamberRecipe recipe : recipes) if(recipe.particle.matchesRecipe(particle, true) && recipe.ingredient.matchesRecipe(input, true)) return recipe; + return null; + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(ExposureChamberRecipe recipe : ExposureChamberRecipes.recipes) { + + Object[] array = new Object[2]; + + array[1] = recipe.particle; + AStack stack = recipe.ingredient.copy(); + stack.stacksize = 8; + array[0] = stack; + ItemStack output = recipe.output.copy(); + output.stackSize = 8; + + recipes.put(array, output); + } + + return recipes; + } + + @Override + public String getFileName() { + return "hbmExposureChamber.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + + JsonObject obj = (JsonObject) recipe; + + AStack particle = this.readAStack(obj.get("particle").getAsJsonArray()); + AStack ingredient = this.readAStack(obj.get("ingredient").getAsJsonArray()); + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + + ExposureChamberRecipe rec = new ExposureChamberRecipe(particle, ingredient, output); + recipes.add(rec); + } + + @Override + public void writeRecipe(Object o, JsonWriter writer) throws IOException { + ExposureChamberRecipe recipe = (ExposureChamberRecipe) o; + + writer.name("particle"); + this.writeAStack(recipe.particle, writer); + writer.name("ingredient"); + this.writeAStack(recipe.ingredient, writer); + writer.name("output"); + this.writeItemStack(recipe.output, writer); + } + + public static class ExposureChamberRecipe { + + public AStack particle; + public AStack ingredient; + public ItemStack output; + + public ExposureChamberRecipe(AStack particle, AStack ingredient, ItemStack output) { + this.particle = particle; + this.ingredient = ingredient; + this.output = output; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java index b3b673a6a..8b144c3fb 100644 --- a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java @@ -19,51 +19,28 @@ import net.minecraft.item.ItemStack; public class FractionRecipes extends SerializableRecipe { - public static final int heavy_frac_bitu = 30; - public static final int heavy_frac_smear = 70; - public static final int smear_frac_heat = 60; - public static final int smear_frac_lube = 40; - public static final int napht_frac_heat = 40; - 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 = 30; - public static final int coal_frac_oil = 70; - public static final int creo_frac_coaloil = 10; - public static final int creo_frac_bitu = 90; - public static final int reform_frac_arom = 40; - public static final int reform_frac_xyle = 60; - public static final int hvac_frac_smear = 40; - public static final int hvac_frac_heat = 60; - public static final int lvac_frac_kero = 70; - public static final int lvac_frac_gas = 30; - private static Map> fractions = new HashMap(); @Override public void registerDefaults() { - fractions.put(Fluids.HEAVYOIL, new Pair(new FluidStack(Fluids.BITUMEN, heavy_frac_bitu), new FluidStack(Fluids.SMEAR, heavy_frac_smear))); - fractions.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.HEATINGOIL, smear_frac_heat), new FluidStack(Fluids.LUBRICANT, smear_frac_lube))); - fractions.put(Fluids.NAPHTHA, new Pair(new FluidStack(Fluids.HEATINGOIL, napht_frac_heat), new FluidStack(Fluids.DIESEL, napht_frac_diesel))); - fractions.put(Fluids.NAPHTHA_CRACK, new Pair(new FluidStack(Fluids.HEATINGOIL, ncrack_frac_heat), new FluidStack(Fluids.DIESEL_CRACK, ncrack_frac_diesel))); - fractions.put(Fluids.LIGHTOIL, new Pair(new FluidStack(Fluids.DIESEL, light_frac_diesel), new FluidStack(Fluids.KEROSENE, light_frac_kero))); - fractions.put(Fluids.LIGHTOIL_CRACK, new Pair(new FluidStack(Fluids.KEROSENE, lcrack_frac_kero), new FluidStack(Fluids.PETROLEUM, lcrack_frac_petro))); - fractions.put(Fluids.COALOIL, new Pair(new FluidStack(Fluids.COALGAS, coal_frac_coalgas), new FluidStack(Fluids.OIL, coal_frac_oil))); - fractions.put(Fluids.COALCREOSOTE, new Pair(new FluidStack(Fluids.COALOIL, creo_frac_coaloil), new FluidStack(Fluids.BITUMEN, creo_frac_bitu))); - fractions.put(Fluids.HEAVYOIL_VACUUM, new Pair(new FluidStack(Fluids.SMEAR, hvac_frac_smear), new FluidStack(Fluids.HEATINGOIL_VACUUM, hvac_frac_heat))); - fractions.put(Fluids.REFORMATE, new Pair(new FluidStack(Fluids.AROMATICS, reform_frac_arom), new FluidStack(Fluids.XYLENE, reform_frac_xyle))); - fractions.put(Fluids.LIGHTOIL_VACUUM, new Pair(new FluidStack(Fluids.KEROSENE, lvac_frac_kero), new FluidStack(Fluids.REFORMGAS, lvac_frac_gas))); - fractions.put(Fluids.SOURGAS, new Pair(new FluidStack(Fluids.GAS, 30), new FluidStack(Fluids.PETROLEUM, 20))); - fractions.put(Fluids.EGG, new Pair(new FluidStack(Fluids.CHOLESTEROL, 50), new FluidStack(Fluids.RADIOSOLVENT, 50))); - fractions.put(Fluids.OIL_COKER, new Pair(new FluidStack(Fluids.CRACKOIL, 30), new FluidStack(Fluids.HEATINGOIL, 70))); - fractions.put(Fluids.NAPHTHA_COKER, new Pair(new FluidStack(Fluids.NAPHTHA_CRACK, 75), new FluidStack(Fluids.LIGHTOIL_CRACK, 25))); - fractions.put(Fluids.GAS_COKER, new Pair(new FluidStack(Fluids.AROMATICS, 25), new FluidStack(Fluids.CARBONDIOXIDE, 75))); - fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50))); + fractions.put(Fluids.HEAVYOIL, new Pair(new FluidStack(Fluids.BITUMEN, 30), new FluidStack(Fluids.SMEAR, 70))); + fractions.put(Fluids.HEAVYOIL_VACUUM, new Pair(new FluidStack(Fluids.SMEAR, 40), new FluidStack(Fluids.HEATINGOIL_VACUUM, 60))); + fractions.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.HEATINGOIL, 60), new FluidStack(Fluids.LUBRICANT, 40))); + fractions.put(Fluids.NAPHTHA, new Pair(new FluidStack(Fluids.HEATINGOIL, 40), new FluidStack(Fluids.DIESEL, 60))); + fractions.put(Fluids.NAPHTHA_DS, new Pair(new FluidStack(Fluids.XYLENE, 60), new FluidStack(Fluids.DIESEL_REFORM, 40))); + fractions.put(Fluids.NAPHTHA_CRACK, new Pair(new FluidStack(Fluids.HEATINGOIL, 30), new FluidStack(Fluids.DIESEL_CRACK, 70))); + fractions.put(Fluids.LIGHTOIL, new Pair(new FluidStack(Fluids.DIESEL, 40), new FluidStack(Fluids.KEROSENE, 60))); + fractions.put(Fluids.LIGHTOIL_DS, new Pair(new FluidStack(Fluids.DIESEL_REFORM, 60), new FluidStack(Fluids.KEROSENE_REFORM, 40))); + fractions.put(Fluids.LIGHTOIL_CRACK, new Pair(new FluidStack(Fluids.KEROSENE, 70), new FluidStack(Fluids.PETROLEUM, 30))); + fractions.put(Fluids.COALOIL, new Pair(new FluidStack(Fluids.COALGAS, 30), new FluidStack(Fluids.OIL, 70))); + fractions.put(Fluids.COALCREOSOTE, new Pair(new FluidStack(Fluids.COALOIL, 10), new FluidStack(Fluids.BITUMEN, 90))); + fractions.put(Fluids.REFORMATE, new Pair(new FluidStack(Fluids.AROMATICS, 40), new FluidStack(Fluids.XYLENE, 60))); + fractions.put(Fluids.LIGHTOIL_VACUUM, new Pair(new FluidStack(Fluids.KEROSENE, 70), new FluidStack(Fluids.REFORMGAS, 30))); + fractions.put(Fluids.EGG, new Pair(new FluidStack(Fluids.CHOLESTEROL, 50), new FluidStack(Fluids.RADIOSOLVENT, 50))); + fractions.put(Fluids.OIL_COKER, new Pair(new FluidStack(Fluids.CRACKOIL, 30), new FluidStack(Fluids.HEATINGOIL, 70))); + fractions.put(Fluids.NAPHTHA_COKER, new Pair(new FluidStack(Fluids.NAPHTHA_CRACK, 75), new FluidStack(Fluids.LIGHTOIL_CRACK, 25))); + fractions.put(Fluids.GAS_COKER, new Pair(new FluidStack(Fluids.AROMATICS, 25), new FluidStack(Fluids.CARBONDIOXIDE, 75))); + fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50))); } public static Pair getFractions(FluidType oil) { diff --git a/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java b/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java index 2e80c2bb4..9f01c9d80 100644 --- a/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java @@ -11,6 +11,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import net.minecraft.item.ItemStack; @@ -37,6 +38,8 @@ public class FuelPoolRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.waste_plate_sa326, 1, 1), new ItemStack(ModItems.waste_plate_sa326)); recipes.put(new ComparableStack(ModItems.waste_plate_ra226be, 1, 1), new ItemStack(ModItems.waste_plate_ra226be)); recipes.put(new ComparableStack(ModItems.waste_plate_pu238be, 1, 1), new ItemStack(ModItems.waste_plate_pu238be)); + + for(EnumPWRFuel pwr : EnumPWRFuel.values()) recipes.put(new ComparableStack(ModItems.pwr_fuel_hot, 1, pwr.ordinal()), new ItemStack(ModItems.pwr_fuel_depleted, 1, pwr.ordinal())); } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/FusionRecipes.java b/src/main/java/com/hbm/inventory/recipes/FusionRecipes.java index e32ea7ee2..9b857cc88 100644 --- a/src/main/java/com/hbm/inventory/recipes/FusionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FusionRecipes.java @@ -11,19 +11,19 @@ import net.minecraft.item.ItemStack; public class FusionRecipes { - public static HashMap chances = new HashMap(); + public static HashMap delays = new HashMap(); static { - chances.put(Fluids.PLASMA_DT, 1200); - chances.put(Fluids.PLASMA_DH3, 600); - chances.put(Fluids.PLASMA_HD, 1200); - chances.put(Fluids.PLASMA_HT, 1200); - chances.put(Fluids.PLASMA_XM, 1200); - chances.put(Fluids.PLASMA_BF, 150); + delays.put(Fluids.PLASMA_DT, 900); + delays.put(Fluids.PLASMA_DH3, 600); + delays.put(Fluids.PLASMA_HD, 1200); + delays.put(Fluids.PLASMA_HT, 900); + delays.put(Fluids.PLASMA_XM, 1200); + delays.put(Fluids.PLASMA_BF, 150); } - public static int getByproductChance(FluidType plasma) { - Integer chance = chances.get(plasma); - return chance != null ? chance : 0; + public static int getByproductDelay(FluidType plasma) { + Integer delay = delays.get(plasma); + return delay != null ? delay : 0; } public static HashMap levels = new HashMap(); diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index 7b7743f2c..c352c085d 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -7,6 +7,7 @@ import java.util.Map; import java.util.Map.Entry; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; @@ -16,63 +17,47 @@ import net.minecraft.item.ItemStack; public class GasCentrifugeRecipes { - public static enum PseudoFluidType { - NONE (0, 0, null, false, (ItemStack[])null), + public static class PseudoFluidType { - HEUF6 (300, 0, NONE, true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), - MEUF6 (200, 100, HEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), - LEUF6 (300, 200, MEUF6, false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)), - NUF6 (400, 300, LEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), + public static HashMap types = new HashMap(); - PF6 (300, 0, NONE, false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)), + public static PseudoFluidType NONE = new PseudoFluidType("NONE", 0, 0, null, false, (ItemStack[])null); - MUD_HEAVY (500, 0, NONE, false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)), - MUD (1000, 500, MUD_HEAVY, false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); + public static PseudoFluidType HEUF6 = new PseudoFluidType("HEUF6", 300, 0, NONE, true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)); + public static PseudoFluidType MEUF6 = new PseudoFluidType("MEUF6", 200, 100, HEUF6, false, new ItemStack(ModItems.nugget_u238, 1)); + public static PseudoFluidType LEUF6 = new PseudoFluidType("LEUF6", 300, 200, MEUF6, false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)); + public static PseudoFluidType NUF6 = new PseudoFluidType("NUF6", 400, 300, LEUF6, false, new ItemStack(ModItems.nugget_u238, 1)); - //TODO for bob: consider more fluid types - //Schraranium Trisulfide for more schrab-containing, pre-SILEX processing using the crystals? - //Gaseous Nuclear Waste: because why not? Large inputs could output Xe-135 and maybe some other fun stuff... - // + public static PseudoFluidType PF6 = new PseudoFluidType("PF6", 300, 0, NONE, false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)); + public static PseudoFluidType MUD_HEAVY = new PseudoFluidType("MUD_HEAVY", 500, 0, NONE, false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)); + public static PseudoFluidType MUD = new PseudoFluidType("MUD", 1000, 500, MUD_HEAVY, false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); + + public String name; int fluidConsumed; int fluidProduced; PseudoFluidType outputFluid; boolean isHighSpeed; ItemStack[] output; - PseudoFluidType(int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, boolean isHighSpeed, ItemStack... output) { + PseudoFluidType(String name, int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, boolean isHighSpeed, ItemStack... output) { + this.name = name; this.fluidConsumed = fluidConsumed; this.fluidProduced = fluidProduced; this.outputFluid = outputFluid; this.isHighSpeed = isHighSpeed; this.output = output; + types.put(name, this); } - public int getFluidConsumed() { - return this.fluidConsumed; - } + public int getFluidConsumed() { return this.fluidConsumed; } + public int getFluidProduced() { return this.fluidProduced; } + public PseudoFluidType getOutputType() { return this.outputFluid; } + public ItemStack[] getOutput() { return this.output; } + public boolean getIfHighSpeed() { return this.isHighSpeed; } + public String getName() { return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.name.toLowerCase(Locale.US))); } - public int getFluidProduced() { - return this.fluidProduced; - } - - public PseudoFluidType getOutputType() { - return this.outputFluid; - } - - public String getName() { - return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.toString().toLowerCase(Locale.US))); - } - - public boolean getIfHighSpeed() { - return this.isHighSpeed; - } - - public ItemStack[] getOutput() { - return this.output; - } - - }; + } /* Recipe NEI Handler */ //Fluid input; ItemStack[] outputs, isHighSpeed, # of centrifuges @@ -102,14 +87,17 @@ public class GasCentrifugeRecipes { return recipes; } + public static HashMap fluidConversions = new HashMap(); + public static void register() { - gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}, true, 4 }); - gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); - gasCent.put(new FluidStack(900, Fluids.PUF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}, false, 1 }); - gasCent.put(new FluidStack(1000, Fluids.WATZ), new Object[] { new ItemStack[] - {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}, false, 2 }); + + fluidConversions.put(Fluids.UF6, PseudoFluidType.NUF6); + fluidConversions.put(Fluids.PUF6, PseudoFluidType.PF6); + fluidConversions.put(Fluids.WATZ, PseudoFluidType.MUD); + + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}, true, 4 }); + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); + gasCent.put(new FluidStack(900, Fluids.PUF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}, false, 1 }); + gasCent.put(new FluidStack(1000, Fluids.WATZ), new Object[] { new ItemStack[] {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}, false, 2 }); } } diff --git a/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java new file mode 100644 index 000000000..620d5b490 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/HydrotreatingRecipes.java @@ -0,0 +1,119 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map.Entry; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.util.Tuple.Triplet; + +import net.minecraft.item.ItemStack; + +public class HydrotreatingRecipes extends SerializableRecipe { + + private static HashMap> recipes = new HashMap(); + + @Override + public void registerDefaults() { + + recipes.put(Fluids.OIL, new Triplet( + new FluidStack(Fluids.HYDROGEN, 5, 1), + new FluidStack(Fluids.OIL_DS, 90), + new FluidStack(Fluids.SOURGAS, 15) + )); + + recipes.put(Fluids.CRACKOIL, new Triplet( + new FluidStack(Fluids.HYDROGEN, 5, 1), + new FluidStack(Fluids.CRACKOIL_DS, 90), + new FluidStack(Fluids.SOURGAS, 15) + )); + + recipes.put(Fluids.GAS, new Triplet( + new FluidStack(Fluids.HYDROGEN, 5, 1), + new FluidStack(Fluids.PETROLEUM, 80), + new FluidStack(Fluids.SOURGAS, 15) + )); + + recipes.put(Fluids.DIESEL_CRACK, new Triplet( + new FluidStack(Fluids.HYDROGEN, 10, 1), + new FluidStack(Fluids.DIESEL, 80), + new FluidStack(Fluids.SOURGAS, 30) + )); + + recipes.put(Fluids.DIESEL_CRACK_REFORM, new Triplet( + new FluidStack(Fluids.HYDROGEN, 10, 1), + new FluidStack(Fluids.DIESEL_REFORM, 80), + new FluidStack(Fluids.SOURGAS, 30) + )); + + recipes.put(Fluids.COALOIL, new Triplet( + new FluidStack(Fluids.HYDROGEN, 10, 1), + new FluidStack(Fluids.COALGAS, 80), + new FluidStack(Fluids.SOURGAS, 15) + )); + } + + public static Triplet getOutput(FluidType type) { + return recipes.get(type); + } + + public static HashMap getRecipes() { + + HashMap map = new HashMap(); + + for(Entry> recipe : recipes.entrySet()) { + map.put(new ItemStack[] { + ItemFluidIcon.make(recipe.getKey(), 1000), + ItemFluidIcon.make(recipe.getValue().getX().type, recipe.getValue().getX().fill * 10, 1) }, + new ItemStack[] { + ItemFluidIcon.make(recipe.getValue().getY().type, recipe.getValue().getY().fill * 10), + ItemFluidIcon.make(recipe.getValue().getZ().type, recipe.getValue().getZ().fill * 10) }); + } + + return map; + } + + @Override + public String getFileName() { + return "hbmHydrotreating.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + FluidType input = Fluids.fromName(obj.get("input").getAsString()); + FluidStack hydrogen = this.readFluidStack(obj.get("hydrogen").getAsJsonArray()); + FluidStack output1 = this.readFluidStack(obj.get("output1").getAsJsonArray()); + FluidStack output2 = this.readFluidStack(obj.get("output2").getAsJsonArray()); + + recipes.put(input, new Triplet(hydrogen, output1, output2)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry> rec = (Entry>) recipe; + + writer.name("input").value(rec.getKey().getName()); + writer.name("hydrogen"); this.writeFluidStack(rec.getValue().getX(), writer); + writer.name("output1"); this.writeFluidStack(rec.getValue().getY(), writer); + writer.name("output2"); this.writeFluidStack(rec.getValue().getZ(), writer); + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/LemegetonRecipes.java b/src/main/java/com/hbm/inventory/recipes/LemegetonRecipes.java new file mode 100644 index 000000000..bae7c2f25 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/LemegetonRecipes.java @@ -0,0 +1,78 @@ +package com.hbm.inventory.recipes; + +import java.util.HashMap; +import java.util.Map.Entry; + +import static com.hbm.inventory.OreDictManager.*; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.items.ModItems; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class LemegetonRecipes { + + public static HashMap recipes = new HashMap(); + + public static void register() { + recipes.put(new OreDictStack(IRON.ingot()), new ItemStack(ModItems.ingot_steel)); + recipes.put(new OreDictStack(STEEL.ingot()), new ItemStack(ModItems.ingot_dura_steel)); + recipes.put(new OreDictStack(DURA.ingot()), new ItemStack(ModItems.ingot_tcalloy)); + recipes.put(new OreDictStack(TCALLOY.ingot()), new ItemStack(ModItems.ingot_combine_steel)); + recipes.put(new OreDictStack(CMB.ingot()), new ItemStack(ModItems.ingot_dineutronium)); + + recipes.put(new OreDictStack(TI.ingot()), new ItemStack(ModItems.ingot_saturnite)); + recipes.put(new OreDictStack(BIGMT.ingot()), new ItemStack(ModItems.ingot_starmetal)); + + recipes.put(new OreDictStack(CU.ingot()), new ItemStack(ModItems.ingot_red_copper)); + recipes.put(new OreDictStack(MINGRADE.ingot()), new ItemStack(ModItems.ingot_advanced_alloy)); + recipes.put(new OreDictStack(ALLOY.ingot()), new ItemStack(ModItems.ingot_desh)); + + recipes.put(new OreDictStack(PB.ingot()), new ItemStack(Items.gold_ingot)); + recipes.put(new OreDictStack(GOLD.ingot()), new ItemStack(ModItems.ingot_bismuth)); + recipes.put(new OreDictStack(BI.ingot()), new ItemStack(ModItems.ingot_osmiridium)); + + recipes.put(new OreDictStack(TH232.ingot()), new ItemStack(ModItems.ingot_uranium)); + recipes.put(new OreDictStack(U.ingot()), new ItemStack(ModItems.ingot_u238)); + recipes.put(new OreDictStack(U238.ingot()), new ItemStack(ModItems.ingot_u235)); + recipes.put(new OreDictStack(U235.ingot()), new ItemStack(ModItems.ingot_plutonium)); + recipes.put(new OreDictStack(PU.ingot()), new ItemStack(ModItems.ingot_pu238)); + recipes.put(new OreDictStack(PU238.ingot()), new ItemStack(ModItems.ingot_pu239)); + recipes.put(new OreDictStack(PU239.ingot()), new ItemStack(ModItems.ingot_pu240)); + recipes.put(new OreDictStack(PU240.ingot()), new ItemStack(ModItems.ingot_pu241)); + recipes.put(new OreDictStack(PU241.ingot()), new ItemStack(ModItems.ingot_am241)); + recipes.put(new OreDictStack(AM241.ingot()), new ItemStack(ModItems.ingot_am242)); + + recipes.put(new OreDictStack(RA226.ingot()), new ItemStack(ModItems.ingot_polonium)); + recipes.put(new OreDictStack(PO210.ingot()), new ItemStack(ModItems.ingot_technetium)); + + recipes.put(new OreDictStack(POLYMER.ingot()), new ItemStack(ModItems.ingot_pc)); + recipes.put(new OreDictStack(BAKELITE.ingot()), new ItemStack(ModItems.ingot_pvc)); + recipes.put(new OreDictStack(LATEX.ingot()), new ItemStack(ModItems.ingot_rubber)); + + recipes.put(new OreDictStack(COAL.gem()), new ItemStack(ModItems.ingot_graphite)); + recipes.put(new OreDictStack(GRAPHITE.ingot()), new ItemStack(Items.diamond)); + recipes.put(new OreDictStack(DIAMOND.gem()), new ItemStack(ModItems.ingot_cft)); + + recipes.put(new OreDictStack(F.dust()), new ItemStack(ModItems.gem_sodalite)); + recipes.put(new OreDictStack(SODALITE.gem()), new ItemStack(ModItems.gem_volcanic)); + recipes.put(new OreDictStack(VOLCANIC.gem()), new ItemStack(ModItems.gem_rad)); + recipes.put(new ComparableStack(ModItems.gem_rad), new ItemStack(ModItems.gem_alexandrite)); + + recipes.put(new OreDictStack(KEY_SAND), new ItemStack(ModItems.ingot_fiberglass)); + recipes.put(new OreDictStack(FIBER.ingot()), new ItemStack(ModItems.ingot_asbestos)); + } + + public static ItemStack getRecipe(ItemStack ingredient) { + + for(Entry entry : recipes.entrySet()) { + if(entry.getKey().matchesRecipe(ingredient, true)) { + return entry.getValue().copy(); + } + } + + return null; + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index 43ee798ca..feb244d49 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -41,7 +41,10 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(KEY_CRACK_TAR, new FluidStack(100, Fluids.BITUMEN)); recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); recipes.put(KEY_LOG, new FluidStack(100, Fluids.MUG)); - recipes.put(KNO.dust(), new FluidStack(250, Fluids.NITRIC_ACID)); + recipes.put(KNO.dust(), new FluidStack(750, Fluids.NITRIC_ACID)); + recipes.put(NA.dust(), new FluidStack(100, Fluids.SODIUM)); + recipes.put(PB.ingot(), new FluidStack(100, Fluids.LEAD)); + recipes.put(PB.dust(), new FluidStack(100, Fluids.LEAD)); //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)); @@ -52,11 +55,14 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Blocks.ice), new FluidStack(1000, Fluids.WATER)); recipes.put(new ComparableStack(Blocks.packed_ice), new FluidStack(1000, Fluids.WATER)); recipes.put(new ComparableStack(Items.ender_pearl), new FluidStack(100, Fluids.ENDERJUICE)); + recipes.put(new ComparableStack(ModItems.pellet_charged), new FluidStack(4000, Fluids.HELIUM4)); + recipes.put(new ComparableStack(ModBlocks.ore_oil_sand), new FluidStack(100, Fluids.BITUMEN)); recipes.put(new ComparableStack(Items.sugar), new FluidStack(100, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 3), new FluidStack(150, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 4), new FluidStack(50, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(125, Fluids.BIOGAS)); + recipes.put(new ComparableStack(ModItems.glyphid_gland_empty), new FluidStack(2000, Fluids.BIOGAS)); recipes.put(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE), new FluidStack(100, Fluids.FISHOIL)); recipes.put(new ComparableStack(Blocks.double_plant, 1, 0), new FluidStack(100, Fluids.SUNFLOWEROIL)); @@ -64,10 +70,6 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Blocks.tallgrass, 1, 1), new FluidStack(100, Fluids.SEEDSLURRY)); recipes.put(new ComparableStack(Blocks.tallgrass, 1, 2), new FluidStack(100, Fluids.SEEDSLURRY)); recipes.put(new ComparableStack(Blocks.vine), new FluidStack(100, Fluids.SEEDSLURRY)); - - //recipes.put(new ComparableStack(ModItems.solid_fuel_bf), new FluidStack(250, Fluids.BALEFIRE)); - - //TODO: more recipes as the crack oil derivatives are added } public static FluidStack getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 847c5b225..c1e1e55c6 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -55,21 +55,10 @@ public class MachineRecipes { * this is the smoldering crater where once the 2016 shredder recipe code was */ - public Map getCMBRecipes() { - Map recipes = new HashMap(); - recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_advanced_alloy), new ItemStack(ModItems.ingot_magnetized_tungsten) }, - new ItemStack(ModItems.ingot_combine_steel, 4)); - recipes.put(new ItemStack[] { new ItemStack(ModItems.powder_advanced_alloy), new ItemStack(ModItems.powder_magnetized_tungsten) }, - new ItemStack(ModItems.ingot_combine_steel, 4)); - return recipes; - } - public ArrayList getBatteries() { ArrayList fuels = new ArrayList(); fuels.add(new ItemStack(ModItems.battery_potato)); fuels.add(new ItemStack(ModItems.battery_potatos)); - fuels.add(new ItemStack(ModItems.battery_su)); - fuels.add(new ItemStack(ModItems.battery_su_l)); fuels.add(new ItemStack(ModItems.battery_generic)); fuels.add(new ItemStack(ModItems.battery_red_cell)); fuels.add(new ItemStack(ModItems.battery_red_cell_6)); @@ -144,31 +133,6 @@ public class MachineRecipes { return false; } - - public Map getBoilerRecipes() { - - Map recipes = new HashMap(); - - for(int i = 0; i < Fluids.getAll().length; i++) { - Object[] outs = getBoilerOutput(Fluids.fromID(i)); - - if(outs != null) { - - ItemStack in = new ItemStack(ModItems.fluid_icon, 1, i); - in.stackTagCompound = new NBTTagCompound(); - in.stackTagCompound.setInteger("fill", (Integer) outs[2]); - - ItemStack out = new ItemStack(ModItems.fluid_icon, 1, ((FluidType)outs[0]).getID()); - out.stackTagCompound = new NBTTagCompound(); - out.stackTagCompound.setInteger("fill", (Integer) outs[1]); - - recipes.put(in, out); - } - } - - return recipes; - } - public Map getFluidContainers() { Map map = new HashMap(); diff --git a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java index 39fc4c54b..dfb802485 100644 --- a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java @@ -4,11 +4,11 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import static com.hbm.inventory.OreDictManager.*; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums; import com.hbm.items.ModItems; import net.minecraft.init.Items; @@ -41,31 +41,9 @@ public class MagicRecipes { public static void register() { recipes.add(new MagicRecipe(new ItemStack(ModItems.ingot_u238m2), new ComparableStack(ModItems.ingot_u238m2, 1, 1), new ComparableStack(ModItems.ingot_u238m2, 1, 2), new ComparableStack(ModItems.ingot_u238m2, 1, 3))); recipes.add(new MagicRecipe(new ItemStack(ModItems.rod_of_discord), new ComparableStack(Items.ender_pearl), new ComparableStack(Items.blaze_rod), new ComparableStack(ModItems.nugget_euphemium))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.balefire_and_steel), new OreDictStack("ingotSteel"), new ComparableStack(ModItems.egg_balefire_shard))); + recipes.add(new MagicRecipe(new ItemStack(ModItems.balefire_and_steel), new OreDictStack(STEEL.ingot()), new ComparableStack(ModItems.egg_balefire_shard))); recipes.add(new MagicRecipe(new ItemStack(ModItems.mysteryshovel), new ComparableStack(Items.iron_shovel), new ComparableStack(Items.bone), new ComparableStack(ModItems.ingot_starmetal), new ComparableStack(ModItems.ducttape))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ingot_electronium), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.ingot_dineutronium), new ComparableStack(ModItems.ingot_dineutronium))); - - recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_44, 1, ItemAmmoEnums.Ammo44Magnum.PIP.ordinal()), - new ComparableStack(ModItems.ammo_44), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_44, 1, ItemAmmoEnums.Ammo44Magnum.BJ.ordinal()), - new ComparableStack(ModItems.ammo_44), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_desh))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_44, 1, ItemAmmoEnums.Ammo44Magnum.SILVER.ordinal()), - new ComparableStack(ModItems.ammo_44), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.ingot_starmetal))); - - recipes.add(new MagicRecipe(new ItemStack(ModItems.gun_bf), - new ComparableStack(ModItems.gun_fatman), - new ComparableStack(ModItems.egg_balefire_shard), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic))); recipes.add(new MagicRecipe(new ItemStack(ModItems.diamond_gavel), new ComparableStack(ModBlocks.gravel_diamond), @@ -83,18 +61,13 @@ public class MagicRecipes { new ComparableStack(ModBlocks.hadron_coil_chlorophyte), new ComparableStack(ModItems.powder_dineutronium), new ComparableStack(ModItems.plate_desh), - new OreDictStack("dustGold"))); + new OreDictStack(GOLD.dust()))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.gun_darter), - new OreDictStack("plateSteel"), - new OreDictStack("plateSteel"), - new ComparableStack(ModItems.ingot_polymer), - new OreDictStack("plateGold"))); - - recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart, 4, ItemAmmoEnums.AmmoDart.NUCLEAR.ordinal()), - new ComparableStack(ModItems.plate_polymer), - new ComparableStack(ModItems.nugget_pu239), - new ComparableStack(ModItems.circuit_aluminium))); + recipes.add(new MagicRecipe(new ItemStack(ModBlocks.hadron_coil_mese), + new ComparableStack(ModBlocks.hadron_coil_chlorophyte), + new OreDictStack(DNT.wireDense()), + new OreDictStack(W.wireDense()), + new OreDictStack(GOLD.wireDense()))); } public static List getRecipes() { @@ -109,7 +82,6 @@ public class MagicRecipes { public MagicRecipe(ItemStack out, AStack... in) { this.out = out; this.in = Arrays.asList(in); - //Collections.sort(this.in); } public boolean matches(List comps) { diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 0a68397d6..6b182c05b 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -20,6 +20,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.machine.ItemFluidIcon; import net.minecraft.init.Blocks; @@ -47,12 +48,17 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.EGG, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(Items.egg))); register(Fluids.FISHOIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE))); register(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); + register(Fluids.FULLERENE, new MixerRecipe(250, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.SOOT)))); - register(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); - register(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); - register(Fluids.NITRIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); + register(Fluids.SOLVENT, + new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500)), + new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_CRACK, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500)), + new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_DS, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500)), + new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_COKER, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); + register(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.PEROXIDE, 800)).setSolid(new OreDictStack(S.dust()))); + register(Fluids.NITRIC_ACID, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); register(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250))); - register(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.ACID, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged))); + register(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.PEROXIDE, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged))); register(Fluids.PETROIL, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.RECLAIMED, 800)).setStack2(new FluidStack(Fluids.LUBRICANT, 200))); register(Fluids.LUBRICANT, @@ -65,21 +71,26 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.NITROGLYCERIN, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.PETROLEUM, 1_000)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 1_000)), new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.FISHOIL, 500)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 500))); + + register(Fluids.THORIUM_SALT, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.CHLORINE, 1000)).setSolid(new OreDictStack(TH232.dust()))); register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); - register(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); + register(Fluids.OXYHYDROGEN, + new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)), + new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); - register(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - register(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - register(Fluids.COALGAS_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); + register(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0))); + register(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0))); + register(Fluids.COALGAS_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0))); register(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); - register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust()))); - register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500))); + register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new ComparableStack(ModItems.powder_flux))); + register(Fluids.PHEROMONE_M, new MixerRecipe(2000, 10).setStack1(new FluidStack(Fluids.PHEROMONE, 1500)).setStack2(new FluidStack(Fluids.BLOOD, 500)).setSolid(new ComparableStack(ModItems.pill_herbal))); + } public static void register(FluidType type, MixerRecipe... rec) { diff --git a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java new file mode 100644 index 000000000..fcbfb1934 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java @@ -0,0 +1,155 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import static com.hbm.inventory.OreDictManager.*; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumSecretType; +import com.hbm.items.food.ItemConserve.EnumFoodType; +import com.hbm.items.ModItems; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class PedestalRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_light_revolver_dani), + null, new OreDictStack(PB.plate()), null, + new OreDictStack(GOLD.plate()), new ComparableStack(ModItems.gun_light_revolver), new OreDictStack(GOLD.plate()), + null, new OreDictStack(PB.plate()), null)); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_maresleg_broken), + new ComparableStack(ModBlocks.barbed_wire), new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModBlocks.barbed_wire), + new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModItems.gun_maresleg), new OreDictStack(WEAPONSTEEL.plate()), + new ComparableStack(ModBlocks.barbed_wire), new OreDictStack(WEAPONSTEEL.plate()), new ComparableStack(ModBlocks.barbed_wire))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_lilmac), + new OreDictStack(WEAPONSTEEL.plate()), new OreDictStack(DIAMOND.gem()), new OreDictStack(WEAPONSTEEL.plate()), + new ComparableStack(ModItems.powder_magic), new ComparableStack(ModItems.gun_heavy_revolver), null, + null, new OreDictStack(BONE.grip()), new ComparableStack(Items.apple, 3))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_heavy_revolver_protege), + new ComparableStack(ModBlocks.chain, 16), new OreDictStack(CINNABAR.gem()), new ComparableStack(ModBlocks.chain, 16), + new ComparableStack(ModItems.scrap_nuclear), new ComparableStack(ModItems.gun_heavy_revolver), new ComparableStack(ModItems.scrap_nuclear), + new ComparableStack(ModBlocks.chain, 16), new OreDictStack(CINNABAR.gem()), new ComparableStack(ModBlocks.chain, 16))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_flamer_daybreaker), + new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.canned_conserve, 1, EnumFoodType.JIZZ), new OreDictStack(GOLD.plateCast()), + new OreDictStack(P_WHITE.ingot()), new ComparableStack(ModItems.gun_flamer), new OreDictStack(P_WHITE.ingot()), + new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.stick_dynamite), new OreDictStack(GOLD.plateCast())) + .extra(PedestalExtraCondition.SUN)); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_autoshotgun_sexy), + new ComparableStack(ModItems.bolt_spike, 16), new OreDictStack(STAR.ingot(), 4), new ComparableStack(ModItems.bolt_spike, 16), + new ComparableStack(ModItems.card_qos), new ComparableStack(ModItems.gun_autoshotgun), new ComparableStack(ModItems.card_aos), + new ComparableStack(ModItems.bolt_spike, 16), new OreDictStack(STAR.ingot(), 4), new ComparableStack(ModItems.bolt_spike, 16))); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_minigun_lacunae), + null, new ComparableStack(ModItems.powder_magic, 4), null, + new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.gun_minigun), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), + null, new ComparableStack(ModItems.powder_magic, 4), null) + .extra(PedestalExtraCondition.FULL_MOON)); + + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_folly), + new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), + new OreDictStack(BSCCO.ingot(), 16), new OreDictStack(STAR.block(), 64), new OreDictStack(BSCCO.ingot(), 16), + new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL)) + .extra(PedestalExtraCondition.FULL_MOON)); + } + + @Override + public String getFileName() { + return "hbmPedestal.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + JsonArray inputArray = obj.get("input").getAsJsonArray(); + AStack[] input = new AStack[9]; + + for(int i = 0; i < 9; i++) { + JsonElement element = inputArray.get(i); + if(element.isJsonNull()) { + input[i] = null; + } else { + input[i] = this.readAStack(element.getAsJsonArray()); + } + } + + PedestalRecipe rec = new PedestalRecipe(output, input); + if(obj.has("extra")) { + rec.extra = PedestalExtraCondition.valueOf(obj.get("extra").getAsString()); + } + + this.recipes.add(rec); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + PedestalRecipe rec = (PedestalRecipe) recipe; + + writer.name("output"); + this.writeItemStack(rec.output, writer); + + writer.name("input").beginArray(); + for(int i = 0; i < rec.input.length; i++) { + if(rec.input[i] == null) { + writer.nullValue(); + } else { + this.writeAStack(rec.input[i], writer); + } + } + writer.endArray(); + + writer.name("extra").value(rec.extra.name()); + } + + public static enum PedestalExtraCondition { + NONE, FULL_MOON, NEW_MOON, SUN + } + + public static class PedestalRecipe { + public ItemStack output; + public AStack[] input; + public PedestalExtraCondition extra = PedestalExtraCondition.NONE; + + public PedestalRecipe(ItemStack output, AStack... input) { + this.output = output; + this.input = input; + } + + public PedestalRecipe extra(PedestalExtraCondition extra) { + this.extra = extra; + return this; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 15f16e04c..dcfa350d2 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -13,19 +13,24 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumBriquetteType; -import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; -import com.hbm.items.ItemAmmoEnums.Ammo556mm; -import com.hbm.items.ItemAmmoEnums.AmmoLunaticSniper; +import com.hbm.items.ItemEnums.EnumCasingType; +import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemStamp; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.util.Tuple.Pair; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class PressRecipes extends SerializableRecipe { @@ -39,7 +44,7 @@ public class PressRecipes extends SerializableRecipe { if(!(stamp.getItem() instanceof ItemStamp)) return null; - StampType type = ((ItemStamp) stamp.getItem()).type; + StampType type = ((ItemStamp) stamp.getItem()).getStampType(stamp.getItem(), stamp.getItemDamage()); for(Entry, ItemStack> recipe : recipes.entrySet()) { @@ -57,63 +62,51 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.FLAT, new OreDictStack(LAPIS.dust()), new ItemStack(Items.dye, 1, 4)); makeRecipe(StampType.FLAT, new OreDictStack(DIAMOND.dust()), Items.diamond); makeRecipe(StampType.FLAT, new OreDictStack(EMERALD.dust()), Items.emerald); - makeRecipe(StampType.FLAT, new ComparableStack(ModItems.pellet_coal), Items.diamond); makeRecipe(StampType.FLAT, new ComparableStack(ModItems.biomass), ModItems.biomass_compressed); makeRecipe(StampType.FLAT, new OreDictStack(ANY_COKE.gem()), ModItems.ingot_graphite); makeRecipe(StampType.FLAT, new ComparableStack(ModItems.meteorite_sword_reforged), ModItems.meteorite_sword_hardened); + makeRecipe(StampType.FLAT, new ComparableStack(Blocks.log, 1, 3), ModItems.ball_resin); makeRecipe(StampType.FLAT, new OreDictStack(COAL.dust()), DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.COAL)); makeRecipe(StampType.FLAT, new OreDictStack(LIGNITE.dust()), DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)); makeRecipe(StampType.FLAT, new ComparableStack(ModItems.powder_sawdust), DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.WOOD)); - makeRecipe(StampType.PLATE, new OreDictStack(IRON.ingot()), ModItems.plate_iron); - makeRecipe(StampType.PLATE, new OreDictStack(GOLD.ingot()), ModItems.plate_gold); - makeRecipe(StampType.PLATE, new OreDictStack(TI.ingot()), ModItems.plate_titanium); - makeRecipe(StampType.PLATE, new OreDictStack(AL.ingot()), ModItems.plate_aluminium); - makeRecipe(StampType.PLATE, new OreDictStack(STEEL.ingot()), ModItems.plate_steel); - makeRecipe(StampType.PLATE, new OreDictStack(PB.ingot()), ModItems.plate_lead); - makeRecipe(StampType.PLATE, new OreDictStack(CU.ingot()), ModItems.plate_copper); - makeRecipe(StampType.PLATE, new OreDictStack(ALLOY.ingot()), ModItems.plate_advanced_alloy); - makeRecipe(StampType.PLATE, new OreDictStack(SA326.ingot()), ModItems.plate_schrabidium); - makeRecipe(StampType.PLATE, new OreDictStack(CMB.ingot()), ModItems.plate_combine_steel); - makeRecipe(StampType.PLATE, new OreDictStack(BIGMT.ingot()), ModItems.plate_saturnite); + makeRecipe(StampType.PLATE, new OreDictStack(IRON.ingot()), ModItems.plate_iron); + makeRecipe(StampType.PLATE, new OreDictStack(GOLD.ingot()), ModItems.plate_gold); + makeRecipe(StampType.PLATE, new OreDictStack(TI.ingot()), ModItems.plate_titanium); + makeRecipe(StampType.PLATE, new OreDictStack(AL.ingot()), ModItems.plate_aluminium); + makeRecipe(StampType.PLATE, new OreDictStack(STEEL.ingot()), ModItems.plate_steel); + makeRecipe(StampType.PLATE, new OreDictStack(PB.ingot()), ModItems.plate_lead); + makeRecipe(StampType.PLATE, new OreDictStack(CU.ingot()), ModItems.plate_copper); + makeRecipe(StampType.PLATE, new OreDictStack(ALLOY.ingot()), ModItems.plate_advanced_alloy); + makeRecipe(StampType.PLATE, new OreDictStack(SA326.ingot()), ModItems.plate_schrabidium); + makeRecipe(StampType.PLATE, new OreDictStack(CMB.ingot()), ModItems.plate_combine_steel); + makeRecipe(StampType.PLATE, new OreDictStack(GUNMETAL.ingot()), ModItems.plate_gunmetal); + makeRecipe(StampType.PLATE, new OreDictStack(WEAPONSTEEL.ingot()), ModItems.plate_weaponsteel); + makeRecipe(StampType.PLATE, new OreDictStack(BIGMT.ingot()), ModItems.plate_saturnite); + makeRecipe(StampType.PLATE, new OreDictStack(DURA.ingot()), ModItems.plate_dura_steel); - makeRecipe(StampType.WIRE, new OreDictStack(AL.ingot()), new ItemStack(ModItems.wire_aluminium, 8)); - makeRecipe(StampType.WIRE, new OreDictStack(CU.ingot()), new ItemStack(ModItems.wire_copper, 8)); - makeRecipe(StampType.WIRE, new OreDictStack(W.ingot()), new ItemStack(ModItems.wire_tungsten, 8)); - makeRecipe(StampType.WIRE, new OreDictStack(MINGRADE.ingot()), new ItemStack(ModItems.wire_red_copper, 8)); - makeRecipe(StampType.WIRE, new OreDictStack(GOLD.ingot()), new ItemStack(ModItems.wire_gold, 8)); - makeRecipe(StampType.WIRE, new OreDictStack(SA326.ingot()), new ItemStack(ModItems.wire_schrabidium, 8)); - makeRecipe(StampType.WIRE, new OreDictStack(ALLOY.ingot()), new ItemStack(ModItems.wire_advanced_alloy, 8)); - makeRecipe(StampType.WIRE, new OreDictStack(MAGTUNG.ingot()), new ItemStack(ModItems.wire_magnetized_tungsten, 8)); + makeRecipe(StampType.C9, new OreDictStack(GUNMETAL.plate()), DictFrame.fromOne(ModItems.casing, EnumCasingType.SMALL, 4)); + makeRecipe(StampType.C50, new OreDictStack(GUNMETAL.plate()), DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE, 2)); + makeRecipe(StampType.C9, new OreDictStack(WEAPONSTEEL.plate()), DictFrame.fromOne(ModItems.casing, EnumCasingType.SMALL_STEEL, 4)); + makeRecipe(StampType.C50, new OreDictStack(WEAPONSTEEL.plate()), DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE_STEEL, 2)); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_raw), ModItems.circuit_aluminium); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_bismuth_raw), ModItems.circuit_bismuth); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_arsenic_raw), ModItems.circuit_arsenic); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_tantalium_raw), ModItems.circuit_tantalium); + for(NTMMaterial mat : Mats.orderedList) { + if(mat.autogen.contains(MaterialShapes.WIRE) && OreDictionary.doesOreNameExist(MaterialShapes.INGOT.make(mat))) { + makeRecipe(StampType.WIRE, new OreDictStack(MaterialShapes.INGOT.make(mat)), new ItemStack(ModItems.wire_fine, 8, mat.id)); + } + } - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.IRON)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_steel), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.LEAD)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_lead), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NUCLEAR)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_gold), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.GOLD)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_schrabidium), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.SCHRABIDIUM)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_nightmare), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NIGHTMARE1)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_desh), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.DESH)); - makeRecipe(StampType.C357, new OreDictStack(STEEL.ingot()), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.STEEL)); - - makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_nopip), ModItems.ammo_44); - makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_45), ModItems.ammo_45); + makeRecipe(StampType.CIRCUIT, new OreDictStack(SI.billet()), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON)); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_smg), ModItems.ammo_9mm); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_uzi), ModItems.ammo_22lr); - makeRecipe(StampType.C9, new OreDictStack(GOLD.ingot()), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.GOLD)); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_lacunae), ModItems.ammo_5mm); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_556), ModItems.ammo_556); - - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_calamity), ModItems.ammo_50bmg); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), ModItems.ammo_50ae); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.SABOT)); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_762), ModItems.ammo_762); + makeRecipe(StampType.PRINTING1, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE1)); + makeRecipe(StampType.PRINTING2, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE2)); + makeRecipe(StampType.PRINTING3, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE3)); + makeRecipe(StampType.PRINTING4, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE4)); + makeRecipe(StampType.PRINTING5, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE5)); + makeRecipe(StampType.PRINTING6, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE6)); + makeRecipe(StampType.PRINTING7, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE7)); + makeRecipe(StampType.PRINTING8, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE8)); } public static void makeRecipe(StampType type, AStack in, Item out) { diff --git a/src/main/java/com/hbm/inventory/recipes/PyroOvenRecipes.java b/src/main/java/com/hbm/inventory/recipes/PyroOvenRecipes.java new file mode 100644 index 000000000..384783d3f --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/PyroOvenRecipes.java @@ -0,0 +1,224 @@ +package com.hbm.inventory.recipes; + +import static com.hbm.inventory.OreDictManager.*; +import static com.hbm.inventory.fluid.Fluids.*; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.special.ItemBedrockOreNew; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; + +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class PyroOvenRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + //solid fuel + registerSFAuto(SMEAR); + registerSFAuto(HEATINGOIL); + registerSFAuto(HEATINGOIL_VACUUM); + registerSFAuto(RECLAIMED); + registerSFAuto(PETROIL); + registerSFAuto(NAPHTHA); + registerSFAuto(NAPHTHA_CRACK); + registerSFAuto(DIESEL); + registerSFAuto(DIESEL_REFORM); + registerSFAuto(DIESEL_CRACK); + registerSFAuto(DIESEL_CRACK_REFORM); + registerSFAuto(LIGHTOIL); + registerSFAuto(LIGHTOIL_CRACK); + registerSFAuto(LIGHTOIL_VACUUM); + registerSFAuto(KEROSENE); + registerSFAuto(KEROSENE_REFORM); + registerSFAuto(SOURGAS); + registerSFAuto(REFORMGAS); + registerSFAuto(SYNGAS); + registerSFAuto(PETROLEUM); + registerSFAuto(LPG); + registerSFAuto(BIOFUEL); + registerSFAuto(AROMATICS); + registerSFAuto(UNSATURATEDS); + registerSFAuto(REFORMATE); + registerSFAuto(XYLENE); + registerSFAuto(BALEFIRE, 24_000_000L, ModItems.solid_fuel_bf); + + //bedrock ores + + for(BedrockOreType type : BedrockOreType.values()) { + recipes.add(new PyroOvenRecipe(10).in(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type))).out(new FluidStack(Fluids.VITRIOL, 50)).out(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type))); + recipes.add(new PyroOvenRecipe(10).in(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type))).out(new FluidStack(Fluids.VITRIOL, 50)).out(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type))); + recipes.add(new PyroOvenRecipe(10).in(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type))).out(new FluidStack(Fluids.VITRIOL, 50)).out(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type))); + recipes.add(new PyroOvenRecipe(10).in(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type))).out(new FluidStack(Fluids.VITRIOL, 50)).out(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type))); + recipes.add(new PyroOvenRecipe(10).in(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type))).out(new FluidStack(Fluids.VITRIOL, 50)).out(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type))); + } + + //syngas from coal + recipes.add(new PyroOvenRecipe(100) + .in(new FluidStack(Fluids.STEAM, 500)).in(new OreDictStack(COAL.gem())) + .out(new FluidStack(Fluids.SYNGAS, 1_000))); + recipes.add(new PyroOvenRecipe(100) + .in(new FluidStack(Fluids.STEAM, 500)).in(new OreDictStack(COAL.dust())) + .out(new FluidStack(Fluids.SYNGAS, 1_000))); + recipes.add(new PyroOvenRecipe(100) + .in(new FluidStack(Fluids.STEAM, 250)).in(new OreDictStack(ANY_COKE.gem())) + .out(new FluidStack(Fluids.SYNGAS, 1_000))); + //syngas from biomass + recipes.add(new PyroOvenRecipe(100) + .in(new ComparableStack(ModItems.biomass, 4)) + .out(new FluidStack(Fluids.SYNGAS, 1_000)).out(new ItemStack(Items.coal, 1, 1))); + //soot from tar + recipes.add(new PyroOvenRecipe(40) + .out(new FluidStack(Fluids.HYDROGEN, 250)).in(new OreDictStack(ANY_TAR.any(), 4)) + .out(new FluidStack(Fluids.CARBONDIOXIDE, 1_000)).out(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.SOOT))); + //heavyoil from coal + recipes.add(new PyroOvenRecipe(100) + .in(new FluidStack(Fluids.HYDROGEN, 500)).in(new OreDictStack(COAL.gem())) + .out(new FluidStack(Fluids.HEAVYOIL, 1_000))); + recipes.add(new PyroOvenRecipe(100) + .in(new FluidStack(Fluids.HYDROGEN, 500)).in(new OreDictStack(COAL.dust())) + .out(new FluidStack(Fluids.HEAVYOIL, 1_000))); + recipes.add(new PyroOvenRecipe(100) + .in(new FluidStack(Fluids.HYDROGEN, 250)).in(new OreDictStack(ANY_COKE.gem())) + .out(new FluidStack(Fluids.HEAVYOIL, 1_000))); + //coalgas from coal + recipes.add(new PyroOvenRecipe(50) + .in(new FluidStack(Fluids.HEAVYOIL, 500)).in(new OreDictStack(COAL.gem())) + .out(new FluidStack(Fluids.COALGAS, 1_000))); + recipes.add(new PyroOvenRecipe(50) + .in(new FluidStack(Fluids.HEAVYOIL, 500)).in(new OreDictStack(COAL.dust())) + .out(new FluidStack(Fluids.COALGAS, 1_000))); + recipes.add(new PyroOvenRecipe(50) + .in(new FluidStack(Fluids.HEAVYOIL, 500)).in(new OreDictStack(ANY_COKE.gem())) + .out(new FluidStack(Fluids.COALGAS, 1_000))); + //refgas from coker gas + recipes.add(new PyroOvenRecipe(60) + .in(new FluidStack(GAS_COKER, 4_000)) + .out(new FluidStack(Fluids.REFORMGAS, 100))); + } + + private static void registerSFAuto(FluidType fluid) { + registerSFAuto(fluid, 1_440_000L, ModItems.solid_fuel); //3200 burntime * 1.5 burntime bonus * 300 TU/t + } + private static void registerSFAuto(FluidType fluid, long tuPerSF, Item fuel) { + long tuPerBucket = fluid.getTrait(FT_Flammable.class).getHeatEnergy(); + double bonus = 0.5D; //double efficiency!! + + int mB = (int) (tuPerSF * 1000L * bonus / tuPerBucket); + + if(mB > 10_000) mB -= (mB % 1000); + else if(mB > 1_000) mB -= (mB % 100); + else if(mB > 100) mB -= (mB % 10); + + mB = Math.max(mB, 1); + + registerRecipe(fluid, mB, fuel); + } + + private static void registerRecipe(FluidType type, int quantity, Item output) { registerRecipe(type, quantity, new ItemStack(output)); } + private static void registerRecipe(FluidType type, int quantity, ItemStack output) { recipes.add(new PyroOvenRecipe(60).in(new FluidStack(type, quantity)).out(output)); } + + public static HashMap getRecipes() { + HashMap map = new HashMap(); + + for(PyroOvenRecipe rec : recipes) { + + Object[] in = null; + Object[] out = null; + + if(rec.inputFluid != null && rec.inputItem != null) in = new Object[] {ItemFluidIcon.make(rec.inputFluid), rec.inputItem}; + if(rec.inputFluid != null && rec.inputItem == null) in = new Object[] {ItemFluidIcon.make(rec.inputFluid)}; + if(rec.inputFluid == null && rec.inputItem != null) in = new Object[] {rec.inputItem}; + + if(rec.outputFluid != null && rec.outputItem != null) out = new Object[] {rec.outputItem, ItemFluidIcon.make(rec.outputFluid)}; + if(rec.outputFluid != null && rec.outputItem == null) out = new Object[] {ItemFluidIcon.make(rec.outputFluid)}; + if(rec.outputFluid == null && rec.outputItem != null) out = new Object[] {rec.outputItem}; + + if(in != null && out != null) { + map.put(in, out); + } + } + + return map; + } + + @Override + public String getFileName() { + return "hbmPyrolysis.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + AStack inputItem = obj.has("inputItem") ? this.readAStack(obj.get("inputItem").getAsJsonArray()) : null; + FluidStack inputFluid = obj.has("inputFluid") ? this.readFluidStack(obj.get("inputFluid").getAsJsonArray()) : null; + ItemStack outputItem = obj.has("outputItem") ? this.readItemStack(obj.get("outputItem").getAsJsonArray()) : null; + FluidStack outputFluid = obj.has("outputFluid") ? this.readFluidStack(obj.get("outputFluid").getAsJsonArray()) : null; + int duration = obj.get("duration").getAsInt(); + + recipes.add(new PyroOvenRecipe(duration).in(inputFluid).in(inputItem).out(outputFluid).out(outputItem)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + + PyroOvenRecipe rec = (PyroOvenRecipe) recipe; + + if(rec.inputFluid != null) { writer.name("inputFluid"); this.writeFluidStack(rec.inputFluid, writer); } + if(rec.inputItem != null) { writer.name("inputItem"); this.writeAStack(rec.inputItem, writer); } + if(rec.outputFluid != null) { writer.name("outputFluid"); this.writeFluidStack(rec.outputFluid, writer); } + if(rec.outputItem != null) { writer.name("outputItem"); this.writeItemStack(rec.outputItem, writer); } + writer.name("duration").value(rec.duration); + } + + public static class PyroOvenRecipe { + public FluidStack inputFluid; + public AStack inputItem; + public FluidStack outputFluid; + public ItemStack outputItem; + public int duration; + + public PyroOvenRecipe(int duration) { + this.duration = duration; + } + + public PyroOvenRecipe in(FluidStack stack) { this.inputFluid = stack; return this; } + public PyroOvenRecipe in(AStack stack) { this.inputItem = stack; return this; } + public PyroOvenRecipe out(FluidStack stack) { this.outputFluid = stack; return this; } + public PyroOvenRecipe out(ItemStack stack) { this.outputItem = stack; return this; } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java b/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java index 81ee58e0d..079d3d82c 100644 --- a/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java @@ -47,7 +47,7 @@ public class RadiolysisRecipes { } public static void registerRadiolysis() { - radiolysis.put(Fluids.WATER, new Pair(new FluidStack(80, Fluids.ACID), new FluidStack(20, Fluids.HYDROGEN))); + radiolysis.put(Fluids.WATER, new Pair(new FluidStack(80, Fluids.PEROXIDE), new FluidStack(20, Fluids.HYDROGEN))); //automatically add cracking recipes to the radiolysis recipe list //we want the numbers and types to stay consistent anyway and this will save us a lot of headache later on diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index 427f4a329..edf2d005b 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -12,6 +12,7 @@ import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.util.ItemStackUtil; +import com.hbm.util.Tuple.Quartet; import com.hbm.util.Tuple.Quintet; import net.minecraft.item.ItemStack; @@ -28,16 +29,26 @@ public class RefineryRecipes { public static final int crack_frac_aroma = 15; public static final int crack_frac_unsat = 15; + public static final int oilds_frac_heavy = 30; + public static final int oilds_frac_naph = 35; + public static final int oilds_frac_light = 20; + public static final int oilds_frac_unsat = 15; + public static final int crackds_frac_naph = 35; + public static final int crackds_frac_light = 35; + public static final int crackds_frac_aroma = 15; + public static final int crackds_frac_unsat = 15; + public static final int vac_frac_heavy = 40; public static final int vac_frac_reform = 25; public static final int vac_frac_light = 20; public static final int vac_frac_sour = 15; private static Map> refinery = new HashMap(); + private static Map> vacuum = new HashMap(); - public static Map getRefineryRecipe() { + public static HashMap getRefineryRecipe() { - Map recipes = new HashMap(); + HashMap recipes = new HashMap(); for(Entry> recipe : refinery.entrySet()) { @@ -55,15 +66,21 @@ public class RefineryRecipes { return recipes; } - public static HashMap getVacuumRecipe() { + public static HashMap getVacuumRecipe() { HashMap recipes = new HashMap(); - recipes.put(ItemFluidIcon.make(Fluids.OIL, 1000, 2), - new ItemStack[] { - ItemFluidIcon.make(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy * 10), - ItemFluidIcon.make(Fluids.REFORMATE, vac_frac_reform * 10), - ItemFluidIcon.make(Fluids.LIGHTOIL_VACUUM, vac_frac_light * 10), - ItemFluidIcon.make(Fluids.SOURGAS, vac_frac_sour * 10) }); + + for(Entry> recipe : vacuum.entrySet()) { + + Quartet fluids = recipe.getValue(); + + recipes.put(ItemFluidIcon.make(recipe.getKey(), 1000, 2), + new ItemStack[] { + ItemFluidIcon.make(fluids.getW().type, fluids.getW().fill * 10), + ItemFluidIcon.make(fluids.getX().type, fluids.getX().fill * 10), + ItemFluidIcon.make(fluids.getY().type, fluids.getY().fill * 10), + ItemFluidIcon.make(fluids.getZ().type, fluids.getZ().fill * 10) }); + } return recipes; } @@ -83,9 +100,40 @@ public class RefineryRecipes { new FluidStack(Fluids.UNSATURATEDS, crack_frac_unsat), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK) )); + refinery.put(Fluids.HOTOIL_DS, new Quintet( + new FluidStack(Fluids.HEAVYOIL, oilds_frac_heavy), + new FluidStack(Fluids.NAPHTHA_DS, oilds_frac_naph), + new FluidStack(Fluids.LIGHTOIL_DS, oilds_frac_light), + new FluidStack(Fluids.UNSATURATEDS, oilds_frac_unsat), + DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN) + )); + refinery.put(Fluids.HOTCRACKOIL_DS, new Quintet( + new FluidStack(Fluids.NAPHTHA_DS, crackds_frac_naph), + new FluidStack(Fluids.LIGHTOIL_DS, crackds_frac_light), + new FluidStack(Fluids.AROMATICS, crackds_frac_aroma), + new FluidStack(Fluids.UNSATURATEDS, crackds_frac_unsat), + DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN) + )); + + vacuum.put(Fluids.OIL, new Quartet( + new FluidStack(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy), + new FluidStack(Fluids.REFORMATE, vac_frac_reform), + new FluidStack(Fluids.LIGHTOIL_VACUUM, vac_frac_light), + new FluidStack(Fluids.SOURGAS, vac_frac_sour) + )); + vacuum.put(Fluids.OIL_DS, new Quartet( + new FluidStack(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy), + new FluidStack(Fluids.REFORMATE, vac_frac_reform), + new FluidStack(Fluids.LIGHTOIL_VACUUM, vac_frac_light), + new FluidStack(Fluids.REFORMGAS, vac_frac_sour) + )); } public static Quintet getRefinery(FluidType oil) { return refinery.get(oil); } + + public static Quartet getVacuum(FluidType oil) { + return vacuum.get(oil); + } } diff --git a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java index 238e5bca9..ce8b44627 100644 --- a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java @@ -22,6 +22,11 @@ public class ReformingRecipes extends SerializableRecipe { @Override public void registerDefaults() { + recipes.put(Fluids.HEATINGOIL, new Triplet( + new FluidStack(Fluids.NAPHTHA, 50), + new FluidStack(Fluids.PETROLEUM, 15), + new FluidStack(Fluids.HYDROGEN, 10) + )); recipes.put(Fluids.NAPHTHA, new Triplet( new FluidStack(Fluids.REFORMATE, 50), new FluidStack(Fluids.PETROLEUM, 15), @@ -32,6 +37,21 @@ public class ReformingRecipes extends SerializableRecipe { new FluidStack(Fluids.AROMATICS, 10), new FluidStack(Fluids.HYDROGEN, 5) )); + recipes.put(Fluids.NAPHTHA_COKER, new Triplet( + new FluidStack(Fluids.REFORMATE, 50), + new FluidStack(Fluids.REFORMGAS, 10), + new FluidStack(Fluids.HYDROGEN, 5) + )); + recipes.put(Fluids.LIGHTOIL, new Triplet( + new FluidStack(Fluids.AROMATICS, 50), + new FluidStack(Fluids.REFORMGAS, 10), + new FluidStack(Fluids.HYDROGEN, 15) + )); + recipes.put(Fluids.LIGHTOIL_CRACK, new Triplet( + new FluidStack(Fluids.AROMATICS, 50), + new FluidStack(Fluids.REFORMGAS, 5), + new FluidStack(Fluids.HYDROGEN, 20) + )); recipes.put(Fluids.PETROLEUM, new Triplet( new FluidStack(Fluids.UNSATURATEDS, 85), new FluidStack(Fluids.REFORMGAS, 10), diff --git a/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java new file mode 100644 index 000000000..4bc753665 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java @@ -0,0 +1,188 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import static com.hbm.inventory.OreDictManager.*; +import static com.hbm.inventory.material.Mats.*; +import static com.hbm.inventory.material.MaterialShapes.*; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.machine.ItemScraps; + +import net.minecraft.item.ItemStack; + +public class RotaryFurnaceRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(1)), 100, 100, new OreDictStack(IRON.ingot()), new OreDictStack(COAL.gem()))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(1)), 100, 100, new OreDictStack(IRON.ingot()), new OreDictStack(ANY_COKE.gem()))); + + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(2)), 100, 100, new OreDictStack(IRON.fragment(), 9), new OreDictStack(COAL.gem()))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(3)), 100, 100, new OreDictStack(IRON.fragment(), 9), new OreDictStack(ANY_COKE.gem()))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(4)), 200, 100, new OreDictStack(IRON.fragment(), 9), new OreDictStack(ANY_COKE.gem()), new ComparableStack(ModItems.powder_flux))); + + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_DESH, INGOT.q(1)), 100, 200, new FluidStack(Fluids.LIGHTOIL, 100), new ComparableStack(ModItems.powder_desh_ready))); + + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_GUNMETAL, INGOT.q(4)), 200, 100, new OreDictStack(CU.ingot(), 3), new OreDictStack(AL.ingot(), 1))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_WEAPONSTEEL, INGOT.q(1)), 200, 400, new FluidStack(Fluids.GAS_COKER, 100), new OreDictStack(STEEL.ingot(), 1), new ComparableStack(ModItems.powder_flux, 2))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_SATURN, INGOT.q(2)), 200, 400, new FluidStack(Fluids.REFORMGAS, 250), new OreDictStack(DURA.dust(), 4), new OreDictStack(CU.dust()))); + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(RotaryFurnaceRecipe recipe : RotaryFurnaceRecipes.recipes) { + + int size = recipe.ingredients.length + (recipe.fluid != null ? 1 : 0); + Object[] array = new Object[size]; + + for(int i = 0; i < recipe.ingredients.length; i++) { + array[i] = recipe.ingredients[i]; + } + + if(recipe.fluid != null) array[size - 1] = ItemFluidIcon.make(recipe.fluid); + + recipes.put(array, ItemScraps.create(recipe.output, true)); + } + + return recipes; + } + + public static RotaryFurnaceRecipe getRecipe(ItemStack... inputs) { + + outer: + for(RotaryFurnaceRecipe recipe : recipes) { + + List recipeList = new ArrayList(); + for(AStack ingredient : recipe.ingredients) recipeList.add(ingredient); + + for(int i = 0; i < inputs.length; i++) { + + ItemStack inputStack = inputs[i]; + + if(inputStack != null) { + + boolean hasMatch = false; + Iterator iterator = recipeList.iterator(); + + while(iterator.hasNext()) { + AStack recipeStack = iterator.next(); + + if(recipeStack.matchesRecipe(inputStack, true) && inputStack.stackSize >= recipeStack.stacksize) { + hasMatch = true; + recipeList.remove(recipeStack); + break; + } + } + + if(!hasMatch) { + continue outer; + } + } + } + + if(recipeList.isEmpty()) return recipe; + } + + return null; + } + + @Override + public String getFileName() { + return "hbmRotaryFurnace.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + AStack[] inputs = this.readAStackArray(obj.get("inputs").getAsJsonArray()); + FluidStack fluid = obj.has("fluid") ? this.readFluidStack(obj.get("fluid").getAsJsonArray()) : null; + + JsonArray array = obj.get("output").getAsJsonArray(); + MaterialStack stack = new MaterialStack(Mats.matByName.get(array.get(0).getAsString()), array.get(1).getAsInt()); + + int duration = obj.get("duration").getAsInt(); + int steam = obj.get("steam").getAsInt(); + + recipes.add(new RotaryFurnaceRecipe(stack, duration, steam, fluid, inputs)); + } + + @Override + public void writeRecipe(Object obj, JsonWriter writer) throws IOException { + RotaryFurnaceRecipe recipe = (RotaryFurnaceRecipe) obj; + + writer.name("inputs").beginArray(); + for(AStack aStack : recipe.ingredients) { + this.writeAStack(aStack, writer); + } + writer.endArray(); + + if(recipe.fluid != null) { + writer.name("fluid"); + this.writeFluidStack(recipe.fluid, writer); + } + + writer.name("output").beginArray(); + writer.setIndent(""); + writer.value(recipe.output.material.names[0]).value(recipe.output.amount); + writer.endArray(); + writer.setIndent(" "); + + writer.name("duration").value(recipe.duration); + writer.name("steam").value(recipe.steam); + } + + public static class RotaryFurnaceRecipe { + + public AStack[] ingredients; + public FluidStack fluid; + public MaterialStack output; + public int duration; + public int steam; + + public RotaryFurnaceRecipe(MaterialStack output, int duration, int steam, FluidStack fluid, AStack... ingredients) { + this.ingredients = ingredients; + this.fluid = fluid; + this.output = output; + this.duration = duration; + this.steam = steam; + } + + public RotaryFurnaceRecipe(MaterialStack output, int duration, int steam, AStack... ingredients) { + this(output, duration, steam, null, ingredients); + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index adb944df5..69867b131 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -11,6 +11,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; @@ -19,6 +20,7 @@ import com.hbm.util.WeightedRandomObject; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import net.minecraft.item.Item; import net.minecraftforge.oredict.OreDictionary; public class SILEXRecipes { @@ -31,605 +33,624 @@ public class SILEXRecipes { itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.UF6.getID()), new ComparableStack(ModItems.ingot_uranium)); dictTranslation.put(U.dust(), U.ingot()); - recipes.put(U.ingot(), new SILEXRecipe(900, 100, EnumWavelengths.UV) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 11)) + recipes.put(U.ingot(), new SILEXRecipe(900, 100, EnumWavelengths.VISIBLE) + .addOut(new ItemStack(ModItems.nugget_u235), 1) + .addOut(new ItemStack(ModItems.nugget_u238), 11) ); recipes.put(new ComparableStack(ModItems.ingot_pu_mix), new SILEXRecipe(900, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 6)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 3)) + .addOut(new ItemStack(ModItems.nugget_pu239), 6) + .addOut(new ItemStack(ModItems.nugget_pu240), 3) ); recipes.put(new ComparableStack(ModItems.ingot_am_mix), new SILEXRecipe(900, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am241), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am242), 6)) + .addOut(new ItemStack(ModItems.nugget_am241), 3) + .addOut(new ItemStack(ModItems.nugget_am242), 6) ); itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.PUF6.getID()), new ComparableStack(ModItems.ingot_plutonium)); dictTranslation.put(PU.dust(), PU.ingot()); recipes.put(PU.ingot(), new SILEXRecipe(900, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 2)) + .addOut(new ItemStack(ModItems.nugget_pu238), 3) + .addOut(new ItemStack(ModItems.nugget_pu239), 4) + .addOut(new ItemStack(ModItems.nugget_pu240), 2) ); recipes.put(new ComparableStack(ModItems.ingot_schraranium), new SILEXRecipe(900, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium), 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium), 2)) + .addOut(new ItemStack(ModItems.nugget_schrabidium), 4) + .addOut(new ItemStack(ModItems.nugget_uranium), 3) + .addOut(new ItemStack(ModItems.nugget_neptunium), 2) ); itemTranslation.put(new ComparableStack(ModItems.powder_australium), new ComparableStack(ModItems.ingot_australium)); recipes.put(new ComparableStack(ModItems.ingot_australium), new SILEXRecipe(900, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 1)) + .addOut(new ItemStack(ModItems.nugget_australium_lesser), 5) + .addOut(new ItemStack(ModItems.nugget_australium_greater), 1) ); recipes.put(new ComparableStack(ModItems.crystal_schraranium), new SILEXRecipe(900, 100, 3) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium), 2)) + .addOut(new ItemStack(ModItems.nugget_schrabidium), 5) + .addOut(new ItemStack(ModItems.nugget_uranium), 2) + .addOut(new ItemStack(ModItems.nugget_neptunium), 2) ); recipes.put(new ComparableStack(ModBlocks.ore_tikite), new SILEXRecipe(900, 100, EnumWavelengths.UV) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cobalt), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_niobium), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_nitan_mix), 2)) + .addOut(new ItemStack(ModItems.powder_plutonium), 2) + .addOut(new ItemStack(ModItems.powder_cobalt), 3) + .addOut(new ItemStack(ModItems.powder_niobium), 3) + .addOut(new ItemStack(ModItems.powder_nitan_mix), 2) ); recipes.put(new ComparableStack(ModItems.crystal_trixite), new SILEXRecipe(1200, 100, EnumWavelengths.UV) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cobalt), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_niobium), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_nitan_mix), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_spark_mix), 1)) + .addOut(new ItemStack(ModItems.powder_plutonium), 2) + .addOut(new ItemStack(ModItems.powder_cobalt), 3) + .addOut(new ItemStack(ModItems.powder_niobium), 3) + .addOut(new ItemStack(ModItems.powder_nitan_mix), 1) + .addOut(new ItemStack(ModItems.powder_spark_mix), 1) ); itemTranslation.put(new ComparableStack(ModItems.powder_lapis), new ComparableStack(Items.dye, 1, 4)); recipes.put(new ComparableStack(Items.dye, 1, 4), new SILEXRecipe(100, 100 ,1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.sulfur), 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_aluminium), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cobalt), 3)) + .addOut(new ItemStack(ModItems.sulfur), 4) + .addOut(new ItemStack(ModItems.powder_aluminium), 3) + .addOut(new ItemStack(ModItems.powder_cobalt), 3) ); recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.DEATH.getID()), new SILEXRecipe(1000, 1000, 4) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_impure_osmiridium), 1)) + .addOut(new ItemStack(ModItems.powder_impure_osmiridium), 1) + ); + + recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.VITRIOL.getID()), new SILEXRecipe(1000, 1000, EnumWavelengths.IR) + .addOut(new ItemStack(ModItems.powder_bromine), 5) + .addOut(new ItemStack(ModItems.powder_iodine), 5) + .addOut(new ItemStack(ModItems.powder_iron), 5) + .addOut(new ItemStack(ModItems.sulfur), 15) ); for(int i = 0; i < 5; i++) { // UEU // recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100, 1) //NU and MEU will breed more plutonium due to their higher concentrations of U-238 - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 86 - i * 11)) //NU is unenriched to the point where it'll always be lower burnup; so more Pu239 for longer - .addOut(new WeightedRandomObject(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 2 + 5 * i)) ); + .addOut(new ItemStack(ModItems.nugget_uranium), 86 - i * 11) //NU is unenriched to the point where it'll always be lower burnup; so more Pu239 for longer + .addOut(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 2 + 5 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 86 - i * 11)) - .addOut(new WeightedRandomObject(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 1 + 5 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_uranium), 86 - i * 11) + .addOut(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 1 + 5 * i) ); // MEU // recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 84 - i * 16)) - .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) ); + .addOut(new ItemStack(ModItems.nugget_uranium_fuel), 84 - i * 16) + .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 83 - i * 16)) - .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_uranium_fuel), 83 - i * 16) + .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i) ); // HEU233 // recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i)) ); + .addOut(new ItemStack(ModItems.nugget_u233), 90 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_u233), 89 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i) ); // HEU235 // recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i)) ); + .addOut(new ItemStack(ModItems.nugget_u235), 90 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_u235), 89 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i) ); // TH232 // recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 84 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 6 + i * 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i)) ); + .addOut(new ItemStack(ModItems.nugget_thorium_fuel), 84 - i * 20) + .addOut(new ItemStack(ModItems.nugget_u233), 6 + i * 4) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 83 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 6 + i * 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_thorium_fuel), 83 - i * 20) + .addOut(new ItemStack(ModItems.nugget_u233), 6 + i * 4) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i) ); // LEP // recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 84 - i * 14)) - .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i)) ); + .addOut(new ItemStack(ModItems.nugget_plutonium_fuel), 84 - i * 14) + .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 83 - i * 14)) - .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_plutonium_fuel), 83 - i * 14) + .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i) ); // MEP // recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu_mix), 85 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i)) ); + .addOut(new ItemStack(ModItems.nugget_pu_mix), 85 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu_mix), 84 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_pu_mix), 84 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i) ); // HEP239 // recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 85 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i)) ); + .addOut(new ItemStack(ModItems.nugget_pu239), 85 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 84 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_pu239), 84 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i) ); // HEP241 // recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 85 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i)) ); + .addOut(new ItemStack(ModItems.nugget_pu241), 85 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i + 5), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 84 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_pu241), 84 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i) ); // MEN // recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 84 - i * 14)) - .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i)) ); + .addOut(new ItemStack(ModItems.nugget_neptunium_fuel), 84 - i * 14) + .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 83 - i * 14)) - .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_neptunium_fuel), 83 - i * 14) + .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i) ); // HEN // recipes.put(new ComparableStack(ModItems.rbmk_pellet_hen, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i)) ); + .addOut(new ItemStack(ModItems.nugget_neptunium), 90 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_hen, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_neptunium), 89 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i) ); // MOX // recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20)) - .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i)) ); + .addOut(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20) + .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i) ); //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1) //Plutonium processing isn't possible w/o fucking up the NEI handler or removing xenon - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20)) //To prevent people from taking advantage of differing waste types, conform to the latter - .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i)) ); + .addOut(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20) //To prevent people from taking advantage of differing waste types, conform to the latter + .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i) ); // LEAUS // recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 6 + 12 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i)) ); + .addOut(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20) + .addOut(new ItemStack(ModItems.nugget_lead), 6 + 12 * i) + .addOut(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i + 5), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 6 + 12 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20) + .addOut(new ItemStack(ModItems.nugget_lead), 6 + 12 * i) + .addOut(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i) ); // HEAUS // recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 3 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i)) ); + .addOut(new ItemStack(ModItems.nugget_australium_greater), 90 - i * 20) + .addOut(new ItemStack(ModItems.nugget_au198), 5 + 10 * i) + .addOut(new ItemStack(Items.gold_nugget), 3 + 6 * i) + .addOut(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i + 5), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_greater), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 3 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_australium_greater), 89 - i * 20) + .addOut(new ItemStack(ModItems.nugget_au198), 5 + 10 * i) + .addOut(new ItemStack(Items.gold_nugget), 3 + 6 * i) + .addOut(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i) ); // LES // recipes.put(new ComparableStack(ModItems.rbmk_pellet_les, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_les), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 2 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i)) ); + .addOut(new ItemStack(ModItems.nugget_les), 90 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 2 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i) ); //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_les, 1, i + 5), new SILEXRecipe(600, 100, 2) //I'd rather not fuck up the NEI handler, so six items it is - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_les), 90 - i * 20)) //Just bullshit something about "not enough np237 for extractable amounts of xe135" - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 2 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i)) ); + .addOut(new ItemStack(ModItems.nugget_les), 90 - i * 20) //Just bullshit something about "not enough np237 for extractable amounts of xe135" + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 2 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i) ); // MES // recipes.put(new ComparableStack(ModItems.rbmk_pellet_mes, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i)) ); + .addOut(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 4 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i) ); //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_mes, 1, i + 5), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20)) //ditto - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i)) ); + .addOut(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20) //ditto + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 4 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i) ); // HES // recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_hes), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 2 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 2 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i)) ); + .addOut(new ItemStack(ModItems.nugget_hes), 90 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 2 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 2 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i) ); //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i + 5), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_hes), 90 - i * 20)) //ditto - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 2 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 2 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i)) ); + .addOut(new ItemStack(ModItems.nugget_hes), 90 - i * 20) //ditto + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 2 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 2 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i) ); // BALEFIRE // recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i), new SILEXRecipe(400, 100, 3) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 10 + 20 * i)) ); + .addOut(new ItemStack(ModItems.powder_balefire), 90 - i * 20) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 10 + 20 * i) ); // FLASHGOLD // recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 90 - 20 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_balefire), 10 + 20 * i)) ); + .addOut(new ItemStack(ModItems.nugget_au198), 90 - 20 * i) + .addOut(new ItemStack(ModItems.powder_balefire), 10 + 20 * i) ); // FLASHLEAD // recipes.put(new ComparableStack(ModItems.rbmk_pellet_flashlead, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 44 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 44 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 1 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mercury), 1 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_gh336), 10 + 8 * i)) ); //Reimumunch + .addOut(new ItemStack(ModItems.nugget_au198), 44 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_pb209), 44 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_bismuth), 1 + 6 * i) + .addOut(new ItemStack(ModItems.nugget_mercury), 1 + 6 * i) + .addOut(new ItemStack(ModItems.nugget_gh336), 10 + 8 * i) ); //Reimumunch // POBE // recipes.put(new ComparableStack(ModItems.rbmk_pellet_po210be, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_polonium), 45 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 5 + 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); + .addOut(new ItemStack(ModItems.nugget_polonium), 45 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_lead), 5 + 10 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) ); // PUBE // recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 45 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 3 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 2 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); + .addOut(new ItemStack(ModItems.nugget_pu238), 45 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_lead), 3 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 2 + 5 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 44 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 3 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 2 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) + .addOut(new ItemStack(ModItems.nugget_pu238), 44 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_lead), 3 + 5 * i) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 2 + 5 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) ); // RABE // recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_ra226), 45 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 3 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_polonium), 2 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i)) ); + .addOut(new ItemStack(ModItems.nugget_ra226), 45 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i) + .addOut(new ItemStack(ModItems.nugget_lead), 3 + 5 * i) + .addOut(new ItemStack(ModItems.nugget_polonium), 2 + 5 * i) + .addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) ); // DRX // recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i), new SILEXRecipe(600, 100, 4) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) ); + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i + 5), new SILEXRecipe(600, 100, 4) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) ); + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) + .addOut(new ItemStack(ModItems.undefined), 1) ); // ZFB BI // recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 50 - i * 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 - i * 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 150)) ); + .addOut(new ItemStack(ModItems.nugget_uranium), 50 - i * 10) + .addOut(new ItemStack(ModItems.nugget_pu241), 50 - i * 10) + .addOut(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20) + .addOut(new ItemStack(ModItems.nugget_zirconium), 150) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i + 5), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 50 - i * 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 - i * 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 147)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 3) + .addOut(new ItemStack(ModItems.nugget_uranium), 50 - i * 10) + .addOut(new ItemStack(ModItems.nugget_pu241), 50 - i * 10) + .addOut(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20) + .addOut(new ItemStack(ModItems.nugget_zirconium), 147) ); // ZFB PU-241 // recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 50 - i * 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 50 - i * 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 + i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 150)) ); + .addOut(new ItemStack(ModItems.nugget_u235), 50 - i * 10) + .addOut(new ItemStack(ModItems.nugget_pu240), 50 - i * 10) + .addOut(new ItemStack(ModItems.nugget_pu241), 50 + i * 20) + .addOut(new ItemStack(ModItems.nugget_zirconium), 150) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i + 5), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 50 - i * 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 50 - i * 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 + i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 147)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 3) + .addOut(new ItemStack(ModItems.nugget_u235), 50 - i * 10) + .addOut(new ItemStack(ModItems.nugget_pu240), 50 - i * 10) + .addOut(new ItemStack(ModItems.nugget_pu241), 50 + i * 20) + .addOut(new ItemStack(ModItems.nugget_zirconium), 147) ); // ZFB RG-AM // recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 100 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 150)) ); + .addOut(new ItemStack(ModItems.nugget_pu241), 100 - i * 20) + .addOut(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20) + .addOut(new ItemStack(ModItems.nugget_zirconium), 150) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i + 5), new SILEXRecipe(600, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 100 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 147)) ); + .addOut(new ItemStack(ModItems.powder_xe135_tiny), 3) + .addOut(new ItemStack(ModItems.nugget_pu241), 100 - i * 20) + .addOut(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20) + .addOut(new ItemStack(ModItems.nugget_zirconium), 147) ); } recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 45)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_technetium), 15)) + .addOut(new ItemStack(ModItems.nugget_neptunium), 20) + .addOut(new ItemStack(ModItems.nugget_pu239), 45) + .addOut(new ItemStack(ModItems.nugget_pu240), 20) + .addOut(new ItemStack(ModItems.nugget_technetium), 15) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 65)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 15)) + .addOut(new ItemStack(ModItems.nugget_lead), 65) + .addOut(new ItemStack(ModItems.nugget_bismuth), 20) + .addOut(new ItemStack(ModItems.dust_tiny), 15) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 12)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 12)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 56)) + .addOut(new ItemStack(ModItems.nugget_pu238), 12) + .addOut(new ItemStack(ModItems.powder_sr90_tiny), 10) + .addOut(new ItemStack(ModItems.powder_i131_tiny), 10) + .addOut(new ItemStack(ModItems.powder_cs137_tiny), 12) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 56) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 32)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 22)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 16)) + .addOut(new ItemStack(ModItems.nugget_zirconium), 10) + .addOut(new ItemStack(ModItems.dust_tiny), 32) + .addOut(new ItemStack(ModItems.nugget_lead), 22) + .addOut(new ItemStack(ModItems.nugget_u238), 5) + .addOut(new ItemStack(ModItems.nugget_bismuth), 15) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 16) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 25)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 45)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_technetium), 15)) + .addOut(new ItemStack(ModItems.nugget_u235), 15) + .addOut(new ItemStack(ModItems.nugget_neptunium), 25) + .addOut(new ItemStack(ModItems.nugget_pu239), 45) + .addOut(new ItemStack(ModItems.nugget_technetium), 15) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 60)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 25)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 15)) + .addOut(new ItemStack(ModItems.nugget_lead), 60) + .addOut(new ItemStack(ModItems.nugget_bismuth), 25) + .addOut(new ItemStack(ModItems.dust_tiny), 15) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 4)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 12)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 14)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 60)) + .addOut(new ItemStack(ModItems.nugget_pu238), 4) + .addOut(new ItemStack(ModItems.powder_sr90_tiny), 12) + .addOut(new ItemStack(ModItems.powder_i131_tiny), 10) + .addOut(new ItemStack(ModItems.powder_cs137_tiny), 14) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 60) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 12)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 34)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 13)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 29)) + .addOut(new ItemStack(ModItems.nugget_zirconium), 12) + .addOut(new ItemStack(ModItems.dust_tiny), 34) + .addOut(new ItemStack(ModItems.nugget_lead), 13) + .addOut(new ItemStack(ModItems.nugget_u238), 2) + .addOut(new ItemStack(ModItems.nugget_bismuth), 10) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 29) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 25)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 6)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 52)) + .addOut(new ItemStack(ModItems.nugget_pu240), 10) + .addOut(new ItemStack(ModItems.nugget_pu241), 25) + .addOut(new ItemStack(ModItems.powder_sr90_tiny), 2) + .addOut(new ItemStack(ModItems.powder_i131_tiny), 5) + .addOut(new ItemStack(ModItems.powder_cs137_tiny), 6) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 52) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 16)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 40)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 39)) + .addOut(new ItemStack(ModItems.nugget_zirconium), 2) + .addOut(new ItemStack(ModItems.dust_tiny), 16) + .addOut(new ItemStack(ModItems.nugget_lead), 40) + .addOut(new ItemStack(ModItems.nugget_u238), 3) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 39) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 7)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 66)) + .addOut(new ItemStack(ModItems.nugget_pu241), 15) + .addOut(new ItemStack(ModItems.nugget_neptunium), 5) + .addOut(new ItemStack(ModItems.powder_sr90_tiny), 2) + .addOut(new ItemStack(ModItems.powder_i131_tiny), 5) + .addOut(new ItemStack(ModItems.powder_cs137_tiny), 7) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 66) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 22)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 17)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 36)) + .addOut(new ItemStack(ModItems.nugget_zirconium), 2) + .addOut(new ItemStack(ModItems.dust_tiny), 22) + .addOut(new ItemStack(ModItems.nugget_bismuth), 20) + .addOut(new ItemStack(ModItems.nugget_lead), 17) + .addOut(new ItemStack(ModItems.nugget_u238), 3) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 36) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), new SILEXRecipe(900, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am241), 25)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am242), 35)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_technetium), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 7)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 25)) + .addOut(new ItemStack(ModItems.nugget_am241), 25) + .addOut(new ItemStack(ModItems.nugget_am242), 35) + .addOut(new ItemStack(ModItems.nugget_technetium), 5) + .addOut(new ItemStack(ModItems.powder_i131_tiny), 3) + .addOut(new ItemStack(ModItems.powder_cs137_tiny), 7) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 25) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), new SILEXRecipe(900, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 60)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 5)) + .addOut(new ItemStack(ModItems.nugget_bismuth), 60) + .addOut(new ItemStack(ModItems.dust_tiny), 20) + .addOut(new ItemStack(ModItems.nugget_lead), 15) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 5) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 40)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 35)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 25)) + .addOut(new ItemStack(ModItems.nugget_u233), 40) + .addOut(new ItemStack(ModItems.nugget_u235), 35) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 25) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 35)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 40)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 10)) + .addOut(new ItemStack(ModItems.nugget_lead), 35) + .addOut(new ItemStack(ModItems.nugget_bismuth), 40) + .addOut(new ItemStack(ModItems.dust_tiny), 15) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 10) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 40)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_technetium), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 15)) + .addOut(new ItemStack(ModItems.nugget_u238), 15) + .addOut(new ItemStack(ModItems.nugget_pu239), 40) + .addOut(new ItemStack(ModItems.nugget_pu240), 15) + .addOut(new ItemStack(ModItems.nugget_technetium), 15) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 15) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 16)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 55)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 9)) + .addOut(new ItemStack(ModItems.nugget_u238), 16) + .addOut(new ItemStack(ModItems.nugget_lead), 55) + .addOut(new ItemStack(ModItems.dust_tiny), 20) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 9) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 40)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 7)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 8)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 40)) + .addOut(new ItemStack(ModItems.nugget_pu238), 40) + .addOut(new ItemStack(ModItems.powder_sr90_tiny), 7) + .addOut(new ItemStack(ModItems.powder_i131_tiny), 5) + .addOut(new ItemStack(ModItems.powder_cs137_tiny), 8) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 40) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 7)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 29)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 45)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 17)) + .addOut(new ItemStack(ModItems.nugget_zirconium), 7) + .addOut(new ItemStack(ModItems.dust_tiny), 29) + .addOut(new ItemStack(ModItems.nugget_u238), 2) + .addOut(new ItemStack(ModItems.nugget_lead), 45) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 17) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_solinium), 25)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_euphemium), 18)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_gh336), 16)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_tantalium), 8)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_neodymium_tiny), 8)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 25)) + .addOut(new ItemStack(ModItems.nugget_solinium), 25) + .addOut(new ItemStack(ModItems.nugget_euphemium), 18) + .addOut(new ItemStack(ModItems.nugget_gh336), 16) + .addOut(new ItemStack(ModItems.nugget_tantalium), 8) + .addOut(new ItemStack(ModItems.powder_neodymium_tiny), 8) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 25) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_solinium), 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_euphemium), 18)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_gh336), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_tantalium), 8)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_neodymium_tiny), 8)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 31)) + .addOut(new ItemStack(ModItems.nugget_solinium), 20) + .addOut(new ItemStack(ModItems.nugget_euphemium), 18) + .addOut(new ItemStack(ModItems.nugget_gh336), 15) + .addOut(new ItemStack(ModItems.nugget_tantalium), 8) + .addOut(new ItemStack(ModItems.powder_neodymium_tiny), 8) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 31) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 7)) //We don't have any spicy lanthanides, and lead 209 + gold 198 is already *severely* pushing it, but there's no - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 7)) //point in contributing to pointless item bloat, so this will have to do - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 76)) + .addOut(new ItemStack(ModItems.nugget_pb209), 7) //We don't have any spicy lanthanides, and lead 209 + gold 198 is already *severely* pushing it, but there's no + .addOut(new ItemStack(ModItems.nugget_au198), 7) //point in contributing to pointless item bloat, so this will have to do + .addOut(new ItemStack(ModItems.powder_cs137_tiny), 5) + .addOut(new ItemStack(ModItems.powder_i131_tiny), 5) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 76) ); recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), new SILEXRecipe(900, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 7)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mercury), 12)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cerium_tiny), 14)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_lanthanium_tiny), 15)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 32)) + .addOut(new ItemStack(ModItems.nugget_bismuth), 7) + .addOut(new ItemStack(ModItems.nugget_mercury), 12) + .addOut(new ItemStack(ModItems.powder_cerium_tiny), 14) + .addOut(new ItemStack(ModItems.powder_lanthanium_tiny), 15) + .addOut(new ItemStack(ModItems.dust_tiny), 20) + .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 32) ); recipes.put(new ComparableStack(ModItems.fallout, 1), new SILEXRecipe(900, 100, 2) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.dust_tiny), 90)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_co60), 2)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_sr90_tiny), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_i131_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cs137_tiny), 3)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 1)) + .addOut(new ItemStack(ModItems.dust_tiny), 90) + .addOut(new ItemStack(ModItems.nugget_co60), 2) + .addOut(new ItemStack(ModItems.powder_sr90_tiny), 3) + .addOut(new ItemStack(ModItems.powder_i131_tiny), 1) + .addOut(new ItemStack(ModItems.powder_cs137_tiny), 3) + .addOut(new ItemStack(ModItems.nugget_au198), 1) ); recipes.put(new ComparableStack(Blocks.gravel, 1), new SILEXRecipe(1000, 250, EnumWavelengths.VISIBLE) - .addOut(new WeightedRandomObject(new ItemStack(Items.flint), 80)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_boron), 5)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_lithium), 10)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.fluorite), 5)) + .addOut(new ItemStack(Items.flint), 80) + .addOut(new ItemStack(ModItems.powder_boron), 5) + .addOut(new ItemStack(ModItems.powder_lithium), 10) + .addOut(new ItemStack(ModItems.fluorite), 5) ); + + recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.FULLERENE.getID()), + new SILEXRecipe(1_000, 1_000, EnumWavelengths.VISIBLE).addOut(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE), 1)); + } + + private static final HashMap tinyWasteTranslation = new HashMap(); + + static { + tinyWasteTranslation.put(ModItems.nuclear_waste_short_tiny, ModItems.nuclear_waste_short); + tinyWasteTranslation.put(ModItems.nuclear_waste_long_tiny, ModItems.nuclear_waste_long); + tinyWasteTranslation.put(ModItems.nuclear_waste_short_depleted_tiny, ModItems.nuclear_waste_short_depleted); + tinyWasteTranslation.put(ModItems.nuclear_waste_long_depleted_tiny, ModItems.nuclear_waste_long_depleted); } public static SILEXRecipe getOutput(ItemStack stack) { @@ -645,11 +666,27 @@ public class SILEXRecipes { String[] dictKeys = comp.getDictKeys(); for(String key : dictKeys) { - String translation = translateDict(key); if(recipes.containsKey(translation)) return recipes.get(translation); } + + if(tinyWasteTranslation.containsKey(comp.item)) { + SILEXRecipe result = getOutput(new ItemStack(tinyWasteTranslation.get(comp.item), comp.stacksize, comp.meta)); + + if(result != null) { + // This way it rounds down if somehow the recipe's fluid produced is not divisible by 900 + int fluidProduced = (result.fluidProduced / 900) * 100; + SILEXRecipe tinyVersion = new SILEXRecipe(fluidProduced, result.fluidConsumed, result.laserStrength); + // Shared ownership shouldn't be an issue since the resulting recipe isn't modified by the caller + tinyVersion.outputs = result.outputs; + + // TODO: Cache? Might break saving recipes, IDK + // recipes.put(comp, tinyVersion); + + return tinyVersion; + } + } return null; } @@ -677,15 +714,9 @@ public class SILEXRecipes { public static List getAllIngredients() { List ing = new ArrayList(); - for(Entry entry : SILEXRecipes.recipes.entrySet()) { - ing.add(entry.getKey()); - } - for(Entry entry : SILEXRecipes.itemTranslation.entrySet()) { - ing.add(entry.getKey()); - } - for(Entry entry : SILEXRecipes.dictTranslation.entrySet()) { - ing.add(entry.getKey()); - } + for(Entry entry : SILEXRecipes.recipes.entrySet()) ing.add(entry.getKey()); + for(Entry entry : SILEXRecipes.itemTranslation.entrySet()) ing.add(entry.getKey()); + for(Entry entry : SILEXRecipes.dictTranslation.entrySet()) ing.add(entry.getKey()); return ing; } @@ -732,6 +763,10 @@ public static class SILEXRecipe { this(fluidProduced, fluidConsumed, EnumWavelengths.values()[laserStrength]); } + public SILEXRecipe addOut(ItemStack stack, int weight) { + return addOut(new WeightedRandomObject(stack, weight)); + } + public SILEXRecipe addOut(WeightedRandomObject entry) { outputs.add(entry); return this; diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 2c0150b5d..2aaa8413c 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -16,6 +16,7 @@ import com.hbm.interfaces.Untested; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.main.MainRegistry; @@ -46,6 +47,8 @@ public class ShredderRecipes extends SerializableRecipe { if(name == null || name.isEmpty()) continue; + if(name.contains("Any")) continue; + List matches = OreDictionary.getOres(name); //if the name isn't assigned to an ore, also skip @@ -77,7 +80,11 @@ public class ShredderRecipes extends SerializableRecipe { } } - if(name.length() > 3 && name.substring(0, 4).equals("dust")) { + if(name.length() > 7 && name.substring(0, 8).equals("dustTiny")) { + for(ItemStack stack : matches) { + putIfValid(stack, new ItemStack(ModItems.dust_tiny), name); + } + } else if(name.length() > 3 && name.substring(0, 4).equals("dust")) { for(ItemStack stack : matches) { putIfValid(stack, new ItemStack(ModItems.dust), name); } @@ -94,10 +101,6 @@ public class ShredderRecipes extends SerializableRecipe { String matName = name.substring(len); - //skip over genericized names so we don't accidentally convert item groups - if(matName.startsWith("Any")) - return; - ItemStack dust = getDustByName(matName); if(dust != null && dust.getItem() != ModItems.scrap) { @@ -134,6 +137,7 @@ public class ShredderRecipes extends SerializableRecipe { /* Primary recipes */ ShredderRecipes.setRecipe(ModItems.scrap, new ItemStack(ModItems.dust)); ShredderRecipes.setRecipe(ModItems.dust, new ItemStack(ModItems.dust)); + ShredderRecipes.setRecipe(ModItems.dust_tiny, new ItemStack(ModItems.dust_tiny)); ShredderRecipes.setRecipe(Blocks.glowstone, new ItemStack(Items.glowstone_dust, 4)); ShredderRecipes.setRecipe(new ItemStack(Blocks.quartz_block, 1, 0), new ItemStack(ModItems.powder_quartz, 4)); ShredderRecipes.setRecipe(new ItemStack(Blocks.quartz_block, 1, 1), new ItemStack(ModItems.powder_quartz, 4)); @@ -167,7 +171,7 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(Blocks.clay, new ItemStack(Items.clay_ball, 4)); ShredderRecipes.setRecipe(Blocks.hardened_clay, new ItemStack(Items.clay_ball, 4)); ShredderRecipes.setRecipe(Blocks.tnt, new ItemStack(Items.gunpowder, Compat.isModLoaded(Compat.MOD_GT6) ? 4 : 5)); - ShredderRecipes.setRecipe(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), new ItemStack(ModItems.powder_calcium)); + ShredderRecipes.setRecipe(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), new ItemStack(ModItems.powder_limestone, 4)); ShredderRecipes.setRecipe(ModBlocks.stone_gneiss, new ItemStack(ModItems.powder_lithium_tiny, 1)); ShredderRecipes.setRecipe(ModItems.powder_lapis, new ItemStack(ModItems.powder_cobalt_tiny, 1)); ShredderRecipes.setRecipe(ModItems.fragment_neodymium, new ItemStack(ModItems.powder_neodymium_tiny, 1)); @@ -180,8 +184,6 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(ModItems.fragment_meteorite, new ItemStack(ModItems.powder_meteorite_tiny, 1)); ShredderRecipes.setRecipe(ModBlocks.block_meteor, new ItemStack(ModItems.powder_meteorite, 10)); ShredderRecipes.setRecipe(Items.enchanted_book, new ItemStack(ModItems.powder_magic, 1)); - ShredderRecipes.setRecipe(ModItems.arc_electrode_burnt, new ItemStack(ModItems.powder_coal, 1)); - ShredderRecipes.setRecipe(ModItems.arc_electrode_desh, new ItemStack(ModItems.powder_desh, 2)); ShredderRecipes.setRecipe(ModBlocks.meteor_polished, new ItemStack(ModItems.powder_meteorite, 1)); ShredderRecipes.setRecipe(ModBlocks.meteor_brick, new ItemStack(ModItems.powder_meteorite, 1)); ShredderRecipes.setRecipe(ModBlocks.meteor_brick_mossy, new ItemStack(ModItems.powder_meteorite, 1)); @@ -190,10 +192,11 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(ModBlocks.meteor_pillar, new ItemStack(ModItems.powder_meteorite, 1)); ShredderRecipes.setRecipe(ModBlocks.ore_rare, new ItemStack(ModItems.powder_desh_mix, 1)); ShredderRecipes.setRecipe(Blocks.diamond_ore, new ItemStack(ModBlocks.gravel_diamond, 2)); + ShredderRecipes.setRecipe(ModBlocks.ore_sellafield_diamond, new ItemStack(ModBlocks.gravel_diamond, 2)); ShredderRecipes.setRecipe(ModBlocks.boxcar, new ItemStack(ModItems.powder_steel, 32)); ShredderRecipes.setRecipe(ModItems.ingot_schrabidate, new ItemStack(ModItems.powder_schrabidate, 1)); ShredderRecipes.setRecipe(ModBlocks.block_schrabidate, new ItemStack(ModItems.powder_schrabidate, 9)); - ShredderRecipes.setRecipe(ModItems.coal_infernal, new ItemStack(ModItems.powder_coal, 3)); + ShredderRecipes.setRecipe(ModItems.coal_infernal, new ItemStack(ModItems.powder_coal, 2)); ShredderRecipes.setRecipe(Items.fermented_spider_eye, new ItemStack(ModItems.powder_poison, 3)); ShredderRecipes.setRecipe(Items.poisonous_potato, new ItemStack(ModItems.powder_poison, 1)); ShredderRecipes.setRecipe(ModBlocks.ore_tektite_osmiridium, new ItemStack(ModItems.powder_tektite, 1)); @@ -201,6 +204,11 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(Items.reeds, new ItemStack(Items.sugar, 3)); ShredderRecipes.setRecipe(Items.apple, new ItemStack(Items.sugar, 1)); ShredderRecipes.setRecipe(Items.carrot, new ItemStack(Items.sugar, 1)); + ShredderRecipes.setRecipe(ModItems.can_empty, new ItemStack(ModItems.powder_aluminium, 2)); + ShredderRecipes.setRecipe(ModBlocks.machine_well, new ItemStack(ModItems.powder_steel, 32)); + ShredderRecipes.setRecipe(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), new ItemStack(ModItems.powder_desh_mix)); + ShredderRecipes.setRecipe(Blocks.sand, new ItemStack(ModItems.dust, 2)); + ShredderRecipes.setRecipe(ModBlocks.block_slag, new ItemStack(ModItems.powder_cement, 4)); List logs = OreDictionary.getOres("logWood"); List planks = OreDictionary.getOres("plankWood"); @@ -209,13 +217,6 @@ public class ShredderRecipes extends SerializableRecipe { for(ItemStack log : logs) ShredderRecipes.setRecipe(log, new ItemStack(ModItems.powder_sawdust, 4)); for(ItemStack plank : planks) ShredderRecipes.setRecipe(plank, new ItemStack(ModItems.powder_sawdust, 1)); for(ItemStack sapling : saplings) ShredderRecipes.setRecipe(sapling, new ItemStack(Items.stick, 1)); - - List silicon = OreDictionary.getOres("itemSilicon"); - if(!silicon.isEmpty()) { - ShredderRecipes.setRecipe(Blocks.sand, silicon.get(0).copy()); - } else { - ShredderRecipes.setRecipe(Blocks.sand, new ItemStack(ModItems.dust, 2)); - } for(EnumBedrockOre ore : EnumBedrockOre.values()) { int i = ore.ordinal(); @@ -263,9 +264,6 @@ public class ShredderRecipes extends SerializableRecipe { /* Misc recycling */ ShredderRecipes.setRecipe(ModBlocks.steel_poles, new ItemStack(ModItems.powder_steel_tiny, 3)); - ShredderRecipes.setRecipe(ModBlocks.pole_top, new ItemStack(ModItems.powder_tungsten, 4)); - ShredderRecipes.setRecipe(ModBlocks.tape_recorder, new ItemStack(ModItems.powder_steel, 1)); - ShredderRecipes.setRecipe(ModBlocks.pole_satellite_receiver, new ItemStack(ModItems.powder_steel, 5)); ShredderRecipes.setRecipe(ModBlocks.steel_roof, new ItemStack(ModItems.powder_steel_tiny, 13)); ShredderRecipes.setRecipe(ModBlocks.steel_wall, new ItemStack(ModItems.powder_steel_tiny, 13)); ShredderRecipes.setRecipe(ModBlocks.steel_corner, new ItemStack(ModItems.powder_steel_tiny, 26)); @@ -286,11 +284,8 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(ModBlocks.chain, new ItemStack(ModItems.powder_steel_tiny, 1)); ShredderRecipes.setRecipe(ModBlocks.steel_grate, new ItemStack(ModItems.powder_steel_tiny, 3)); ShredderRecipes.setRecipe(ModItems.pipes_steel, new ItemStack(ModItems.powder_steel, 27)); - ShredderRecipes.setRecipe(ModBlocks.oil_duct, new ItemStack(ModItems.powder_steel_tiny, 3)); - ShredderRecipes.setRecipe(ModBlocks.oil_duct_solid, new ItemStack(ModItems.powder_steel_tiny, 3)); - ShredderRecipes.setRecipe(ModBlocks.gas_duct, new ItemStack(ModItems.powder_steel, 1)); - ShredderRecipes.setRecipe(ModBlocks.gas_duct_solid, new ItemStack(ModItems.powder_steel, 1)); - ShredderRecipes.setRecipe(ModBlocks.machine_fluidtank, new ItemStack(ModItems.powder_steel, 32)); + ShredderRecipes.setRecipe(ModBlocks.machine_fluidtank, new ItemStack(ModItems.powder_steel, 16)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.bedrock_ore, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(Blocks.gravel)); /* Sellafite scrapping */ ShredderRecipes.setRecipe(ModBlocks.sellafield_slaked, new ItemStack(Blocks.gravel)); @@ -356,17 +351,17 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(ModItems.debris_graphite, new ItemStack(ModItems.powder_coal, 1)); /* GC COMPAT */ - Item gcMoonBlock = Compat.tryLoadItem(Compat.MOD_GCC, "moonBlock"); - if(gcMoonBlock != null) { + Block gcMoonBlock = Compat.tryLoadBlock(Compat.MOD_GCC, "moonBlock"); + if(gcMoonBlock != null && gcMoonBlock != Blocks.air) { ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 3), new ItemStack(ModBlocks.moon_turf)); //Moon dirt ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 5), new ItemStack(ModBlocks.moon_turf)); //Moon topsoil } /* AR COMPAT */ - Item arMoonTurf = Compat.tryLoadItem(Compat.MOD_AR, "turf"); - if(arMoonTurf != null) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf - Item arMoonTurfDark = Compat.tryLoadItem(Compat.MOD_AR, "turfDark"); - if(arMoonTurfDark != null) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds + Block arMoonTurf = Compat.tryLoadBlock(Compat.MOD_AR, "turf"); + if(arMoonTurf != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf + Block arMoonTurfDark = Compat.tryLoadBlock(Compat.MOD_AR, "turfDark"); + if(arMoonTurfDark != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds } /** diff --git a/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java new file mode 100644 index 000000000..54d3a9b68 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java @@ -0,0 +1,338 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; + +import static com.hbm.inventory.OreDictManager.*; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.config.GeneralConfig; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class SolderingRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + boolean lbsm = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting; + + /* + * CIRCUITS + */ + + recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()), 100, 100, + new AStack[] { + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.VACUUM_TUBE), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CAPACITOR)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.PCB)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 4)} + )); + + recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()), 200, 250, + new AStack[] { + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.PCB)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 4)} + )); + + recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), 300, 1_000, + new FluidStack(Fluids.SULFURIC_ACID, 1_000), + new AStack[] { + new ComparableStack(ModItems.circuit, lbsm ? 4 : 16, EnumCircuitType.CHIP), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.PCB), + new OreDictStack(RUBBER.ingot(), 2)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 8)} + )); + + recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR_BOARD.ordinal()), 200, 300, + new FluidStack(Fluids.PEROXIDE, 250), + new AStack[] { + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CAPACITOR_TANTALIUM)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.PCB)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 3)} + )); + + recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BISMOID.ordinal()), 400, 10_000, + new FluidStack(Fluids.SOLVENT, 1_000), + new AStack[] { + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP_BISMOID), + new ComparableStack(ModItems.circuit, lbsm ? 4 : 16, EnumCircuitType.CHIP), + new ComparableStack(ModItems.circuit, lbsm ? 8 : 24, EnumCircuitType.CAPACITOR)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 12, EnumCircuitType.PCB), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 2)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 12)} + )); + + recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.QUANTUM.ordinal()), 400, 100_000, + new FluidStack(Fluids.HELIUM4, 1_000), + new AStack[] { + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP_QUANTUM), + new ComparableStack(ModItems.circuit, lbsm ? 4 : 16, EnumCircuitType.CHIP_BISMOID), + new ComparableStack(ModItems.circuit, lbsm ? 1 : 4, EnumCircuitType.ATOMIC_CLOCK)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.PCB), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 16)} + )); + + /* + * COMPUTERS + */ + + // a very, very vague guess on what the recipes should be. testing still needed, upgrade requirements are likely to change. maybe inclusion of caesium? + recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER.ordinal()), 400, 15_000, + new AStack[] { + new ComparableStack(ModItems.circuit, lbsm ? 8 : 32, EnumCircuitType.CHIP), + new ComparableStack(ModItems.circuit, lbsm ? 8 : 32, EnumCircuitType.CAPACITOR), + new ComparableStack(ModItems.circuit, lbsm ? 8 : 16, EnumCircuitType.CAPACITOR_TANTALIUM)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER_CHASSIS), + new ComparableStack(ModItems.upgrade_speed_1)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 16)} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER_ADVANCED.ordinal()), 600, 25_000, + new AStack[] { + new ComparableStack(ModItems.circuit, lbsm ? 8 : 16, EnumCircuitType.CHIP_BISMOID), + new ComparableStack(ModItems.circuit, lbsm ? 16 : 48, EnumCircuitType.CAPACITOR_TANTALIUM), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ATOMIC_CLOCK)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER_CHASSIS), + new ComparableStack(ModItems.upgrade_speed_3)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 24)} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER_QUANTUM.ordinal()), 600, 250_000, + new AStack[] { + new ComparableStack(ModItems.circuit, lbsm ? 8 : 16, EnumCircuitType.CHIP_QUANTUM), + new ComparableStack(ModItems.circuit, lbsm ? 16 : 48, EnumCircuitType.CHIP_BISMOID), + new ComparableStack(ModItems.circuit, lbsm ? 1 : 8, EnumCircuitType.ATOMIC_CLOCK)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER_ADVANCED), + new ComparableStack(ModItems.upgrade_overdrive_1)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 32)} + )); + + /* + * UPGRADES + */ + + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_speed_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(MINGRADE.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_effect_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(EMERALD.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_power_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(GOLD.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_fortune_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(NB.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_afterburn_1), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(W.dust(), 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_radius), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack("dustGlowstone", 4)}, + new AStack[] {} + )); + recipes.add(new SolderingRecipe(new ItemStack(ModItems.upgrade_health), 200, 1_000, + new AStack[] {new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(ModItems.upgrade_template), new OreDictStack(LI.dust(), 4)}, + new AStack[] {} + )); + + addFirstUpgrade(ModItems.upgrade_speed_1, ModItems.upgrade_speed_2); + addSecondUpgrade(ModItems.upgrade_speed_2, ModItems.upgrade_speed_3); + addFirstUpgrade(ModItems.upgrade_effect_1, ModItems.upgrade_effect_2); + addSecondUpgrade(ModItems.upgrade_effect_2, ModItems.upgrade_effect_3); + addFirstUpgrade(ModItems.upgrade_power_1, ModItems.upgrade_power_2); + addSecondUpgrade(ModItems.upgrade_power_2, ModItems.upgrade_power_3); + addFirstUpgrade(ModItems.upgrade_fortune_1, ModItems.upgrade_fortune_2); + addSecondUpgrade(ModItems.upgrade_fortune_2, ModItems.upgrade_fortune_3); + addFirstUpgrade(ModItems.upgrade_afterburn_1, ModItems.upgrade_afterburn_2); + addSecondUpgrade(ModItems.upgrade_afterburn_2, ModItems.upgrade_afterburn_3); + } + + public static void addFirstUpgrade(Item lower, Item higher) { + boolean lbsm = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting; + recipes.add(new SolderingRecipe(new ItemStack(higher), 300, 10_000, + new AStack[] {new ComparableStack(ModItems.circuit, lbsm ? 4 : 8, EnumCircuitType.CHIP), new ComparableStack(ModItems.circuit, lbsm ? 2 : 4, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(lower), new OreDictStack(ANY_PLASTIC.ingot(), 4)}, + new AStack[] {} + )); + } + + public static void addSecondUpgrade(Item lower, Item higher) { + boolean lbsm = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting; + recipes.add(new SolderingRecipe(new ItemStack(higher), 400, 25_000, + new FluidStack(Fluids.SOLVENT, 500), + new AStack[] {new ComparableStack(ModItems.circuit, lbsm ? 6 : 16, EnumCircuitType.CHIP), new ComparableStack(ModItems.circuit, lbsm ? 4 : 16, EnumCircuitType.CAPACITOR)}, + new AStack[] {new ComparableStack(lower), new OreDictStack(RUBBER.ingot(), 4)}, + new AStack[] {} + )); + } + + public static SolderingRecipe getRecipe(ItemStack[] inputs) { + + for(SolderingRecipe recipe : recipes) { + if(matchesIngredients(new ItemStack[] {inputs[0], inputs[1], inputs[2]}, recipe.toppings) && + matchesIngredients(new ItemStack[] {inputs[3], inputs[4]}, recipe.pcb) && + matchesIngredients(new ItemStack[] {inputs[5]}, recipe.solder)) return recipe; + } + + return null; + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(SolderingRecipe recipe : SolderingRecipes.recipes) { + + List ingredients = new ArrayList(); + for(AStack stack : recipe.toppings) ingredients.add(stack); + for(AStack stack : recipe.pcb) ingredients.add(stack); + for(AStack stack : recipe.solder) ingredients.add(stack); + if(recipe.fluid != null) ingredients.add(ItemFluidIcon.make(recipe.fluid)); + + recipes.put(ingredients.toArray(), recipe.output); + } + + return recipes; + } + + @Override + public String getFileName() { + return "hbmSoldering.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + toppings.clear(); + pcb.clear(); + solder.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + AStack[] toppings = this.readAStackArray(obj.get("toppings").getAsJsonArray()); + AStack[] pcb = this.readAStackArray(obj.get("pcb").getAsJsonArray()); + AStack[] solder = this.readAStackArray(obj.get("solder").getAsJsonArray()); + FluidStack fluid = obj.has("fluid") ? this.readFluidStack(obj.get("fluid").getAsJsonArray()) : null; + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + int duration = obj.get("duration").getAsInt(); + long consumption = obj.get("consumption").getAsLong(); + + recipes.add(new SolderingRecipe(output, duration, consumption, fluid, toppings, pcb, solder)); + } + + @Override + public void writeRecipe(Object obj, JsonWriter writer) throws IOException { + SolderingRecipe recipe = (SolderingRecipe) obj; + + writer.name("toppings").beginArray(); + for(AStack aStack : recipe.toppings) this.writeAStack(aStack, writer); + writer.endArray(); + + writer.name("pcb").beginArray(); + for(AStack aStack : recipe.pcb) this.writeAStack(aStack, writer); + writer.endArray(); + + writer.name("solder").beginArray(); + for(AStack aStack : recipe.solder) this.writeAStack(aStack, writer); + writer.endArray(); + + if(recipe.fluid != null) { + writer.name("fluid"); + this.writeFluidStack(recipe.fluid, writer); + } + + writer.name("output"); + this.writeItemStack(recipe.output, writer); + + writer.name("duration").value(recipe.duration); + writer.name("consumption").value(recipe.consumption); + } + + public static HashSet toppings = new HashSet(); + public static HashSet pcb = new HashSet(); + public static HashSet solder = new HashSet(); + + public static class SolderingRecipe { + + public AStack[] toppings; + public AStack[] pcb; + public AStack[] solder; + public FluidStack fluid; + public ItemStack output; + public int duration; + public long consumption; + + public SolderingRecipe(ItemStack output, int duration, long consumption, FluidStack fluid, AStack[] toppings, AStack[] pcb, AStack[] solder) { + this.toppings = toppings; + this.pcb = pcb; + this.solder = solder; + this.fluid = fluid; + this.output = output; + this.duration = duration; + this.consumption = consumption; + for(AStack t : toppings) SolderingRecipes.toppings.add(t); + for(AStack t : pcb) SolderingRecipes.pcb.add(t); + for(AStack t : solder) SolderingRecipes.solder.add(t); + } + + public SolderingRecipe(ItemStack output, int duration, long consumption, AStack[] toppings, AStack[] pcb, AStack[] solder) { + this(output, duration, consumption, null, toppings, pcb, solder); + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 2612ba3c3..cc1f38a79 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -9,6 +9,7 @@ import java.util.Map.Entry; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.FluidType; @@ -68,6 +69,9 @@ public class SolidificationRecipes extends SerializableRecipe { registerRecipe(ENDERJUICE, 100, Items.ender_pearl); registerRecipe(WATZ, 1000, ModItems.ingot_mud); registerRecipe(REDMUD, 1000, Items.iron_ingot); + registerRecipe(SODIUM, 100, ModItems.powder_sodium); + registerRecipe(LEAD, 100, ModItems.ingot_lead); + registerRecipe(SLOP, 250, ModBlocks.ore_oil_sand); registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(CRACKOIL, SF_CRACK, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); @@ -96,6 +100,7 @@ public class SolidificationRecipes extends SerializableRecipe { registerSFAuto(LIGHTOIL_CRACK); registerSFAuto(LIGHTOIL_VACUUM); registerSFAuto(KEROSENE); + registerSFAuto(KEROSENE_REFORM); //registerSFAuto(GAS); registerSFAuto(SOURGAS); registerSFAuto(REFORMGAS); @@ -108,7 +113,7 @@ public class SolidificationRecipes extends SerializableRecipe { registerSFAuto(UNSATURATEDS); registerSFAuto(REFORMATE); registerSFAuto(XYLENE); - registerSFAuto(BALEFIRE, 24000000L, ModItems.solid_fuel_bf); //holy shit this is energy dense*/ + registerSFAuto(BALEFIRE, 24_000_000L, ModItems.solid_fuel_bf); //holy shit this is energy dense*/ } @@ -124,6 +129,8 @@ public class SolidificationRecipes extends SerializableRecipe { if(mB > 10_000) mB -= (mB % 1000); else if(mB > 1_000) mB -= (mB % 100); else if(mB > 100) mB -= (mB % 10); + + mB = Math.max(mB, 1); registerRecipe(fluid, mB, fuel); } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 5c7672729..56a5ea997 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -6,21 +6,28 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.OreDictManager.DictFrame; + import static com.hbm.inventory.OreDictManager.*; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.AssemblerRecipes; -import com.hbm.items.ItemAmmoEnums.*; +import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.food.ItemFlask.EnumInfusion; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class AnvilRecipes { @@ -45,13 +52,14 @@ public class AnvilRecipes { Block[] anvils = new Block[]{ModBlocks.anvil_iron, ModBlocks.anvil_lead}; for(Block anvil : anvils) { - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_bismuth, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_bismuth, 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_dnt, 1), new ComparableStack(anvil), new OreDictStack(DNT.ingot(), 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_ferrouranium, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_ferrouranium, 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_meteorite, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_meteorite, 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_schrabidate, 1), new ComparableStack(anvil), new OreDictStack(SBD.ingot(), 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_starmetal, 1), new ComparableStack(anvil), new OreDictStack(STAR.ingot(), 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_steel, 1), new ComparableStack(anvil), new OreDictStack(STEEL.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_desh, 1), new ComparableStack(anvil), new OreDictStack(DESH.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_saturnite, 1), new ComparableStack(anvil), new OreDictStack(BIGMT.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_ferrouranium, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_ferrouranium, 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_bismuth_bronze, 1), new ComparableStack(anvil), new OreDictStack(BBRONZE.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_arsenic_bronze, 1), new ComparableStack(anvil), new OreDictStack(ABRONZE.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_schrabidate, 1), new ComparableStack(anvil), new OreDictStack(SBD.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_dnt, 1), new ComparableStack(anvil), new OreDictStack(DNT.ingot(), 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_osmiridium, 1), new ComparableStack(anvil), new OreDictStack(OSMIRIDIUM.ingot(), 10))); } @@ -65,25 +73,25 @@ public class AnvilRecipes { smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_meteorite_forged, 1), new ComparableStack(ModItems.ingot_meteorite), new ComparableStack(ModItems.ingot_meteorite))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.blade_meteorite, 1), new ComparableStack(ModItems.ingot_meteorite_forged), new ComparableStack(ModItems.ingot_meteorite_forged))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.meteorite_sword_reforged, 1), new ComparableStack(ModItems.meteorite_sword_seared), new ComparableStack(ModItems.ingot_meteorite_forged))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.gun_ar15, 1), new ComparableStack(ModItems.gun_thompson), new ComparableStack(ModItems.pipe_lead))); + + + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_sword, 1), new ComparableStack(ModItems.cobalt_sword), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_pickaxe, 1), new ComparableStack(ModItems.cobalt_pickaxe), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_axe, 1), new ComparableStack(ModItems.cobalt_axe), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_shovel, 1), new ComparableStack(ModItems.cobalt_shovel), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_hoe, 1), new ComparableStack(ModItems.cobalt_hoe), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingRecipe(1916169, new ItemStack(ModItems.wings_murk, 1), new ComparableStack(ModItems.wings_limp), new ComparableStack(ModItems.particle_tachyon))); smithingRecipes.add(new AnvilSmithingRecipe(4, new ItemStack(ModItems.flask_infusion, 1, EnumInfusion.SHIELD.ordinal()), new ComparableStack(ModItems.gem_alexandrite), new ComparableStack(ModItems.bottle_nuka))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.ingot_gunmetal, 1), new OreDictStack(CU.ingot()), new OreDictStack(AL.ingot()))); + smithingRecipes.add(new AnvilSmithingMold(0, new OreDictStack(GOLD.nugget()), new OreDictStack("nugget"))); smithingRecipes.add(new AnvilSmithingMold(1, new OreDictStack(U.billet()), new OreDictStack("billet"))); smithingRecipes.add(new AnvilSmithingMold(2, new OreDictStack(IRON.ingot()), new OreDictStack("ingot"))); smithingRecipes.add(new AnvilSmithingMold(3, new OreDictStack(IRON.plate()), new OreDictStack("plate"))); smithingRecipes.add(new AnvilSmithingMold(19, new OreDictStack(IRON.plateCast()), new OreDictStack("plateTriple"))); - smithingRecipes.add(new AnvilSmithingMold(4, new ComparableStack(ModItems.wire_aluminium, 8), new ItemStack[] { - new ItemStack(ModItems.wire_advanced_alloy, 8), - new ItemStack(ModItems.wire_aluminium, 8), - new ItemStack(ModItems.wire_copper, 8), - new ItemStack(ModItems.wire_gold, 8), - new ItemStack(ModItems.wire_magnetized_tungsten, 8), - new ItemStack(ModItems.wire_red_copper, 8), - new ItemStack(ModItems.wire_schrabidium, 8), - new ItemStack(ModItems.wire_tungsten, 8) - })); + smithingRecipes.add(new AnvilSmithingMold(4, new OreDictStack(CU.wireFine()), new OreDictStack("wireFine"))); smithingRecipes.add(new AnvilSmithingMold(5, new ComparableStack(ModItems.blade_titanium), new ItemStack[] { new ItemStack(ModItems.blade_titanium), new ItemStack(ModItems.blade_tungsten) @@ -100,24 +108,14 @@ public class AnvilRecipes { new ItemStack(ModItems.stamp_titanium_flat), new ItemStack(ModItems.stamp_obsidian_flat) })); - smithingRecipes.add(new AnvilSmithingMold(8, new ComparableStack(ModItems.hull_small_steel), new ItemStack[] { - new ItemStack(ModItems.hull_small_aluminium), - new ItemStack(ModItems.hull_small_steel) - })); - smithingRecipes.add(new AnvilSmithingMold(9, new ComparableStack(ModItems.hull_big_steel), new ItemStack[] { - new ItemStack(ModItems.hull_big_steel), - new ItemStack(ModItems.hull_big_aluminium), - new ItemStack(ModItems.hull_big_titanium) - })); - smithingRecipes.add(new AnvilSmithingMold(10, new OreDictStack(IRON.ingot(), 9), new OreDictStack("ingot", 9))); - smithingRecipes.add(new AnvilSmithingMold(11, new OreDictStack(IRON.plate(), 9), new OreDictStack("plate", 9))); - smithingRecipes.add(new AnvilSmithingMold(12, new OreDictStack(IRON.block()), new OreDictStack("block"))); + smithingRecipes.add(new AnvilSmithingMold(8, new OreDictStack(STEEL.shell()), new OreDictStack(MaterialShapes.SHELL.name()))); + smithingRecipes.add(new AnvilSmithingMold(9, new OreDictStack(STEEL.pipe()), new OreDictStack(MaterialShapes.PIPE.name()))); + smithingRecipes.add(new AnvilSmithingMold(10, new OreDictStack(IRON.ingot(), 9), new OreDictStack("ingot", 9))); + smithingRecipes.add(new AnvilSmithingMold(11, new OreDictStack(IRON.plate(), 9), new OreDictStack("plate", 9))); + smithingRecipes.add(new AnvilSmithingMold(12, new OreDictStack(IRON.block()), new OreDictStack("block"))); smithingRecipes.add(new AnvilSmithingMold(13, new ComparableStack(ModItems.pipes_steel), new ItemStack[] {new ItemStack(ModItems.pipes_steel)})); - smithingRecipes.add(new AnvilSmithingMold(14, new ComparableStack(ModItems.casing_357), new ItemStack[] {new ItemStack(ModItems.casing_357)})); - smithingRecipes.add(new AnvilSmithingMold(15, new ComparableStack(ModItems.casing_44), new ItemStack[] {new ItemStack(ModItems.casing_44)})); - smithingRecipes.add(new AnvilSmithingMold(16, new ComparableStack(ModItems.casing_9), new ItemStack[] {new ItemStack(ModItems.casing_9)})); - smithingRecipes.add(new AnvilSmithingMold(17, new ComparableStack(ModItems.casing_50), new ItemStack[] {new ItemStack(ModItems.casing_50)})); - smithingRecipes.add(new AnvilSmithingMold(18, new ComparableStack(ModItems.casing_buckshot), new ItemStack[] {new ItemStack(ModItems.casing_buckshot)})); + smithingRecipes.add(new AnvilSmithingMold(20, new OreDictStack(ALLOY.wireDense(), 1), new OreDictStack("wireDense", 1))); + smithingRecipes.add(new AnvilSmithingMold(21, new OreDictStack(ALLOY.wireDense(), 9), new OreDictStack("wireDense", 9))); smithingRecipes.add(new AnvilSmithingCyanideRecipe()); smithingRecipes.add(new AnvilSmithingRenameRecipe()); @@ -140,18 +138,18 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_lead))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_copper))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(ALLOY.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_advanced_alloy))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(GUNMETAL.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_gunmetal))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(WEAPONSTEEL.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_weaponsteel))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BIGMT.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_saturnite))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(DURA.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_dura_steel))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(SA326.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_schrabidium))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CMB.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_combine_steel))).setTier(3)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BIGMT.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_saturnite))).setTier(3)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot()), new AnvilOutput(new ItemStack(ModItems.wire_aluminium, 8))).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.ingot()), new AnvilOutput(new ItemStack(ModItems.wire_copper, 8))).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot()), new AnvilOutput(new ItemStack(ModItems.wire_tungsten, 8))).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MINGRADE.ingot()), new AnvilOutput(new ItemStack(ModItems.wire_red_copper, 8))).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(ALLOY.ingot()), new AnvilOutput(new ItemStack(ModItems.wire_advanced_alloy, 8))).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(GOLD.ingot()), new AnvilOutput(new ItemStack(ModItems.wire_gold, 8))).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(SA326.ingot()), new AnvilOutput(new ItemStack(ModItems.wire_schrabidium, 8))).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MAGTUNG.ingot()), new AnvilOutput(new ItemStack(ModItems.wire_magnetized_tungsten, 8))).setTier(4)); + for(NTMMaterial mat : Mats.orderedList) { + if(mat.autogen.contains(MaterialShapes.WIRE) && OreDictionary.doesOreNameExist(MaterialShapes.INGOT.make(mat))) { + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MaterialShapes.INGOT.name() + mat.names[0]), new AnvilOutput(new ItemStack(ModItems.wire_fine, 8, mat.id))).setTier(4)); + } + } constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(COAL.dust()), new AnvilOutput(new ItemStack(Items.coal))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(NETHERQUARTZ.dust()), new AnvilOutput(new ItemStack(Items.quartz))).setTier(3)); @@ -167,27 +165,29 @@ public class AnvilRecipes { public static void registerConstructionRecipes() { - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MINGRADE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_red_copper))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(STEEL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_steel))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MINGRADE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_red_copper, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(STEEL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_steel, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModBlocks.depth_brick)}, new AnvilOutput(new ItemStack(ModBlocks.depth_dnt))).setTier(1916169)); - constructionRecipes.add(new AnvilConstructionRecipe( - new OreDictStack(CU.plate(), 4), - new AnvilOutput(new ItemStack(ModItems.board_copper))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new OreDictStack(STEEL.plate(), 2), - new AnvilOutput(new ItemStack(ModItems.hull_small_steel))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new OreDictStack(AL.plate(), 2), - new AnvilOutput(new ItemStack(ModItems.hull_small_aluminium))).setTier(1)); + for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.SHELL)) constructionRecipes.add(new AnvilConstructionRecipe( + new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 4), + new AnvilOutput(new ItemStack(ModItems.shell, 1, mat.id))).setTier(1)); + for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.PIPE)) { + String key = (OreDictionary.doesOreNameExist(MaterialShapes.PLATE.name() + mat.names[0]) ? + MaterialShapes.PLATE.name() + mat.names[0] : MaterialShapes.INGOT.name() + mat.names[0]); + constructionRecipes.add(new AnvilConstructionRecipe( + new OreDictStack(key, 3), + new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1)); + } + constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.coil_copper, 2), new AnvilOutput(new ItemStack(ModItems.coil_copper_torus))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); @@ -204,12 +204,15 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, new AnvilOutput(new ItemStack(ModItems.motor_desh, 1))).setTier(3)); + + pullFromAssembler(new ComparableStack(ModItems.filter_coal), 2); + pullFromAssembler(new ComparableStack(ModItems.thermo_element), 2); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(Blocks.stonebrick, 4), new ComparableStack(ModItems.ingot_firebrick, 4), - new ComparableStack(ModItems.board_copper, 2) + new OreDictStack(CU.plate(), 4) }, new AnvilOutput(new ItemStack(ModBlocks.machine_difurnace_off))).setTier(1)); @@ -220,9 +223,26 @@ public class AnvilRecipes { new OreDictStack(STEEL.ingot(), 8 * ukModifier), new OreDictStack(CU.ingot(), 8 * ukModifier), new ComparableStack(ModItems.motor, 2 * ukModifier), - new ComparableStack(ModItems.circuit_aluminium, 1 * ukModifier) + new ComparableStack(ModItems.circuit, 4 * ukModifier, EnumCircuitType.VACUUM_TUBE.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.machine_assembler))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(KEY_COBBLESTONE, 8), + new OreDictStack(KEY_PLANKS, 16), + new OreDictStack(CU.plate(), 8), + new OreDictStack(PB.pipe(), 2) + }, new AnvilOutput(new ItemStack(ModBlocks.pump_steam))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(Blocks.stonebrick, 8), + new OreDictStack(STEEL.plate(), 16), + new OreDictStack(PB.pipe(), 4), + new ComparableStack(ModItems.motor, 2), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE.ordinal()) + }, new AnvilOutput(new ItemStack(ModBlocks.pump_electric))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(Blocks.furnace), @@ -237,10 +257,17 @@ public class AnvilRecipes { new OreDictStack(CU.ingot(), 8) }, new AnvilOutput(new ItemStack(ModBlocks.heater_oven))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(Blocks.stone, 8), + new OreDictStack(STEEL.plate(), 2), + new OreDictStack(IRON.ingot(), 4) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_ashpit))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.tank_steel, 4), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 3), new OreDictStack(TI.ingot(), 12), new OreDictStack(CU.ingot(), 8) }, new AnvilOutput(new ItemStack(ModBlocks.heater_oilburner))).setTier(2)); @@ -251,7 +278,7 @@ public class AnvilRecipes { new OreDictStack(CU.ingot(), 8), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 8), - new ComparableStack(ModItems.circuit_copper, 1) + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.heater_electric))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -259,7 +286,7 @@ public class AnvilRecipes { new OreDictStack(RUBBER.ingot(), 4), new OreDictStack(CU.ingot(), 16), new OreDictStack(STEEL.plate528(), 16), - new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.pipe(), 3), }, new AnvilOutput(new ItemStack(ModBlocks.heater_heatex))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -275,11 +302,18 @@ public class AnvilRecipes { new AStack[] { new ComparableStack(Blocks.stonebrick, 8), new OreDictStack(KEY_LOG, 16), - new OreDictStack(CU.ingot(), 8), - new OreDictStack(KEY_BRICK, 16), - new ComparableStack(Items.blaze_powder, 4) + new OreDictStack(CU.plateCast(), 2), + new OreDictStack(KEY_BRICK, 16) }, new AnvilOutput(new ItemStack(ModBlocks.furnace_combination))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(Blocks.stonebrick, 8), + new ComparableStack(ModItems.ingot_firebrick, 16), + new OreDictStack(IRON.ingot(), 4), + new OreDictStack(CU.plate(), 8), + }, new AnvilOutput(new ItemStack(ModBlocks.machine_rotary_furnace))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(KEY_PLANKS, 16), @@ -302,8 +336,8 @@ public class AnvilRecipes { new AStack[] { new ComparableStack(ModBlocks.reinforced_stone, 16), new OreDictStack(STEEL.plate(), 12), - new ComparableStack(ModItems.hull_small_steel, 2), - new ComparableStack(ModItems.coil_copper, 8), + new OreDictStack(STEEL.shell(), 2), + new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.gear_large, 1) }, new AnvilOutput(new ItemStack(ModBlocks.machine_steam_engine))).setTier(2)); @@ -330,18 +364,41 @@ public class AnvilRecipes { new ComparableStack(ModItems.plate_polymer, 8) }, new AnvilOutput(new ItemStack(ModBlocks.machine_boiler))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plateCast(), 2), + new ComparableStack(ModItems.coil_copper, 4), + new OreDictStack(W.bolt(), 4), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.VACUUM_TUBE.ordinal()) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_soldering_station))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plateCast(), 4), + new OreDictStack(W.ingot(), 8), + new ComparableStack(ModBlocks.machine_transformer, 1), + new ComparableStack(ModItems.arc_electrode, 2) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_arc_welder))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plateCast(), 8), + new OreDictStack(CU.ingot(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 4) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_industrial_boiler))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.plate(), 4), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.ingot(), 2), - new ComparableStack(ModItems.circuit_aluminium), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.VACUUM_TUBE.ordinal()), new ComparableStack(ModItems.sawblade) }, new AnvilOutput(new ItemStack(ModBlocks.machine_autosaw))).setTier(2)); pullFromAssembler(new ComparableStack(ModBlocks.machine_diesel), 2); - constructionRecipes.add(new AnvilConstructionRecipe( + /*constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.ingot(), 6), new OreDictStack(IRON.plate528(), 8), @@ -350,20 +407,20 @@ public class AnvilRecipes { new ComparableStack(ModItems.turbine_titanium, 1), new ComparableStack(ModItems.thermo_element, 3), new ComparableStack(ModItems.crt_display, 1) - }, new AnvilOutput(new ItemStack(ModBlocks.machine_industrial_generator))).setTier(2)); + }, new AnvilOutput(new ItemStack(ModBlocks.machine_industrial_generator))).setTier(2));*/ constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModBlocks.brick_concrete, 64), new ComparableStack(Blocks.iron_bars, 128), - new ComparableStack(ModBlocks.machine_condenser, 5), + new ComparableStack(ModBlocks.machine_condenser, 4), }, new AnvilOutput(new ItemStack(ModBlocks.machine_tower_small))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModBlocks.concrete_smooth, 128), new ComparableStack(ModBlocks.steel_scaffold, 32), - new ComparableStack(ModBlocks.machine_condenser, 25), - new ComparableStack(ModItems.pipes_steel, 2) + new ComparableStack(ModBlocks.machine_condenser, 16), + new OreDictStack(STEEL.pipe(), 8), }, new AnvilOutput(new ItemStack(ModBlocks.machine_tower_large))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -375,24 +432,20 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { - new ComparableStack(ModItems.sulfur, 8), - new OreDictStack(STEEL.plate528(), 4), - new OreDictStack(AL.plate528(), 2), - new ComparableStack(ModItems.hull_small_steel, 4), - new ComparableStack(ModItems.board_copper, 1), - new ComparableStack(ModItems.turbine_titanium, 1), - new ComparableStack(ModItems.circuit_aluminium, 1) + new ComparableStack(ModItems.sulfur, 12), + new OreDictStack(STEEL.shell(), 4), + new OreDictStack(CU.plateCast(), 6), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.deuterium_filter, 2), - new ComparableStack(ModItems.hull_big_steel, 5), - new ComparableStack(ModBlocks.concrete_smooth, 8), - new ComparableStack(ModBlocks.concrete_asbestos, 4), + new OreDictStack(STEEL.shell(), 5), + new OreDictStack(STEEL.pipe(), 12), + new ComparableStack(ModBlocks.concrete_asbestos, 8), new ComparableStack(ModBlocks.steel_scaffold, 16), - new ComparableStack(ModBlocks.deco_pipe_quad, 12), new OreDictStack(Fluids.SOURGAS.getDict(1_000), 8), }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_tower))).setTier(4)); @@ -408,14 +461,29 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { - new OreDictStack(ANY_CONCRETE.any(), 6), - new OreDictStack(STEEL.ingot(), 4), - new ComparableStack(ModBlocks.steel_scaffold, 2), - new ComparableStack(ModItems.plate_polymer, 8), - new ComparableStack(ModItems.coil_copper, 2), - new ComparableStack(ModItems.coil_copper_torus, 2) + new OreDictStack(ANY_CONCRETE.any(), 8), + new OreDictStack(STEEL.ingot(), 8), + new ComparableStack(ModItems.plate_polymer, 12), + new ComparableStack(ModItems.coil_copper, 8) }, - new AnvilOutput(new ItemStack(ModBlocks.substation))).setTier(2)); + new AnvilOutput(new ItemStack(ModBlocks.substation, 2))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plate(), 4), + new ComparableStack(Blocks.brick_block, 16), + new ComparableStack(ModBlocks.steel_grate, 2) + }, + new AnvilOutput(new ItemStack(ModBlocks.chimney_brick))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plate(), 16), + new OreDictStack(ANY_CONCRETE.any(), 64), + new ComparableStack(ModBlocks.steel_grate, 4), + new ComparableStack(ModItems.filter_coal, 4) + }, + new AnvilOutput(new ItemStack(ModBlocks.chimney_industrial))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { @@ -451,16 +519,16 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.plate_dineutronium, 4))).setTier(7)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(TI.plate(), 2), new OreDictStack(STEEL.ingot(), 1), new ComparableStack(ModItems.bolt_tungsten, 2)}, + new AStack[] {new OreDictStack(TI.plate(), 2), new OreDictStack(STEEL.ingot(), 1), new OreDictStack(STEEL.bolt(), 4)}, new AnvilOutput(new ItemStack(ModItems.plate_armor_titanium))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(IRON.plate(), 4), new OreDictStack(BIGMT.plate(), 2), new ComparableStack(ModItems.plate_armor_titanium, 1)}, - new AnvilOutput(new ItemStack(ModItems.plate_armor_ajr))).setTier(3)); + new AStack[] {new OreDictStack(IRON.plate(), 6), new OreDictStack(NB.ingot(), 1), new ComparableStack(ModItems.plate_armor_titanium, 1)}, + new AnvilOutput(new ItemStack(ModItems.plate_armor_ajr, 2))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_armor_titanium, 1), new ComparableStack(ModItems.wire_tungsten, 6)}, + new AStack[] {new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_armor_titanium, 1), new OreDictStack(W.wireFine(), 8)}, new AnvilOutput(new ItemStack(ModItems.plate_armor_hev))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 6)}, + new AStack[] {new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(STAR.ingot(), 1), new OreDictStack(MAGTUNG.wireFine(), 8)}, new AnvilOutput(new ItemStack(ModItems.plate_armor_lunar))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new ComparableStack(ModItems.ingot_meteorite_forged, 4), new OreDictStack(DESH.ingot(), 1), new ComparableStack(ModItems.billet_yharonite, 1)}, @@ -472,8 +540,12 @@ public class AnvilRecipes { pullFromAssembler(new ComparableStack(ModItems.plate_mixed, 4), 3); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(AS.ingot()), new OreDictStack(REDSTONE.dust(), 4), new OreDictStack(ASBESTOS.ingot(), 2)}, - new AnvilOutput(new ItemStack(ModItems.circuit_arsenic_raw))).setTier(5)); + new AStack[] { + new ComparableStack(ModItems.missile_doomsday_rusted, 1), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 8), + new OreDictStack(AL.plateWelded(), 2), + new OreDictStack(PU239.billet(), 3) + }, new AnvilOutput(new ItemStack(ModItems.missile_doomsday))).setTier(5)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u233, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u233))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u235, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u235))).setTier(4)); @@ -490,114 +562,32 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_box, 1, i), new AnvilOutput(new ItemStack(ModItems.plate_iron))).setTier(2).setOverlay(OverlayType.RECYCLING)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_box, 1, i + 1), new AnvilOutput(new ItemStack(ModItems.plate_copper))).setTier(2).setOverlay(OverlayType.RECYCLING)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_box, 1, i + 2), new AnvilOutput(new ItemStack(ModItems.plate_aluminium))).setTier(2).setOverlay(OverlayType.RECYCLING)); + + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.plate_polymer)}, new AnvilOutput(new ItemStack(ModBlocks.fluid_duct_exhaust, 8, i))).setTier(2).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_exhaust, 8, i), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.plate_iron)), new AnvilOutput(new ItemStack(ModItems.plate_polymer))}).setTier(2)); } } public static void registerConstructionAmmo() { + + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_iron_flat), new OreDictStack(GUNMETAL.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.stamp_9))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_iron_flat), new OreDictStack(GUNMETAL.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.stamp_50))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_desh_flat), new OreDictStack(WEAPONSTEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.stamp_desh_9))).setTier(4)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_desh_flat), new OreDictStack(WEAPONSTEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.stamp_desh_50))).setTier(4)); + + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(IRON.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 16))).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(IRON.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 17))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_357))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_44))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_9))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_50))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_buckshot))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_357))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_44))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_9))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_50))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_buckshot))).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 22))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 23))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 24))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 25))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 26))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 27))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2)); - Object[][] recs = new Object[][] { - {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.INCENDIARY), 2}, - {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.SHRAPNEL), 2}, - {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), U238.ingot(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.DU), 3}, - {ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.SLEEK), 4}, - - {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), P_RED.dust(), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.INCENDIARY), 2}, - {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.SHRAPNEL), 2}, - {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), ModItems.powder_poison, ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.CAUSTIC), 2}, - {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), DIAMOND.dust(), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.SHOCK), 2}, - {ModItems.ammo_20gauge.stackFromEnum(10, Ammo20Gauge.STOCK), Item.getItemFromBlock(Blocks.soul_sand), ModItems.ammo_20gauge.stackFromEnum(10, Ammo20Gauge.WITHER), 3}, - {ModItems.ammo_20gauge.stackFromEnum(100, Ammo20Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_20gauge.stackFromEnum(100, Ammo20Gauge.SLEEK), 4}, - - {ModItems.ammo_4gauge.stackFromEnum(20, Ammo4Gauge.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_4gauge.stackFromEnum(20, Ammo4Gauge.FLECHETTE_PHOSPHORUS), 2}, - {ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.EXPLOSIVE), ModItems.egg_balefire_shard, ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.BALEFIRE), 4}, - {ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), ModItems.ammo_rocket, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.KAMPF), 2}, - {ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.KAMPF), ModItems.pellet_canister, ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.CANISTER), 3}, - {ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.STOCK), ModItems.pellet_claws, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.CLAW), 5}, - {ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.STOCK), ModItems.toothpicks, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.VAMPIRE), 5}, - {ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.STOCK), ModItems.pellet_charged, ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VOID), 5}, - {ModItems.ammo_4gauge.stackFromEnum(100, Ammo4Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_4gauge.stackFromEnum(100, Ammo4Gauge.SLEEK), 4}, - - {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), DURA.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.AP), 2}, - {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), U238.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.DU), 2}, - {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), P_WHITE.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.PHOSPHORUS), 2}, - {ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.DU), STAR.ingot(), ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STAR), 3}, - {ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.CHLOROPHYTE), 3}, - - {ModItems.ammo_45.stackFromEnum(20, Ammo45ACP.STOCK), DURA.ingot(), ModItems.ammo_45.stackFromEnum(20, Ammo45ACP.AP), 3}, - {ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.STOCK), U238.ingot(), ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.DU), 3}, - - {ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), ModItems.ingot_semtex, ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.EXPLOSIVE), 2}, - {ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), U238.ingot(), ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.DU), 2}, - {ModItems.ammo_5mm.stackFromEnum(25, Ammo5mm.DU), STAR.ingot(), ModItems.ammo_5mm.stackFromEnum(25, Ammo5mm.STAR), 3}, - {ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.CHLOROPHYTE), 3}, - - {ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), DURA.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.AP), 2}, - {ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), U238.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.DU), 2}, - {ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.CHLOROPHYTE), 3}, - - {ModItems.ammo_22lr.stackFromEnum(20, Ammo22LR.STOCK), DURA.ingot(), ModItems.ammo_22lr.stackFromEnum(20, Ammo22LR.AP), 2}, - {ModItems.ammo_22lr.stackFromEnum(10, Ammo22LR.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_22lr.stackFromEnum(10, Ammo22LR.CHLOROPHYTE), 3}, - - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), P_RED.dust(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.INCENDIARY), 2}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), P_WHITE.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.PHOSPHORUS), 2}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), ModItems.ingot_semtex, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.EXPLOSIVE), 2}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), DURA.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.AP), 2}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), U238.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.DU), 2}, - {ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.DU), STAR.ingot(), ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STAR), 3}, - {ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.CHLOROPHYTE), 3}, - {ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.STOCK), ModItems.coin_maskman, ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.SLEEK), 4}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), ModItems.pellet_flechette, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE), 2}, - {ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.FLECHETTE), ModItems.nugget_am_mix, ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.FLECHETTE_AM), 3}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE), ModItems.powder_polonium, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE_PO), 3}, - - {ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), DURA.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.AP), 2}, - {ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), U238.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.DU), 2}, - {ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.DU), STAR.ingot(), ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STAR), 3}, - {ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.CHLOROPHYTE), 3}, - - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.PHOSPHORUS), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), DURA.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.AP), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), U238.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.DU), 2}, - {ModItems.ammo_556.stackFromEnum(10, Ammo556mm.DU), STAR.ingot(), ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STAR), 3}, - {ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.CHLOROPHYTE), 3}, - {ModItems.ammo_556.stackFromEnum(100, Ammo556mm.STOCK), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.SLEEK), 4}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), Items.redstone, ModItems.ammo_556.stackFromEnum(20, Ammo556mm.TRACER), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), ModItems.pellet_flechette, ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_RED.dust(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_INCENDIARY), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_PHOSPHORUS), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), U238.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_DU), 2}, - {ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE_SLEEK), 4}, - {ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE_CHLOROPHYTE), 3}, - - {ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), Items.redstone, ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.TRACER), 2}, - {ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), DURA.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.AP), 2}, - {ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), P_WHITE.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.PHOSPHORUS), 2}, - {ModItems.ammo_762.stackFromEnum(10, Ammo762NATO.STOCK), U238.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.DU), 2} - }; - - for(Object[] objs : recs) { - - ComparableStack ammoIn = new ComparableStack((ItemStack) objs[0]); - ItemStack out = (ItemStack) objs[2]; - - if(objs[1] instanceof Item) { - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { ammoIn, new ComparableStack((Item)objs[1], 1) }, new AnvilOutput(out)).setTier((int)objs[3])); - - } else if(objs[1] instanceof String) { - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { ammoIn, new OreDictStack((String)objs[1], 1) }, new AnvilOutput(out)).setTier((int)objs[3])); - } - } + pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1); + pullFromAssembler(new ComparableStack(ModItems.pellet_canister), 1); } public static void registerConstructionUpgrades() { @@ -629,6 +619,102 @@ public class AnvilRecipes { } public static void registerConstructionRecycling() { + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE)), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.fragment_boron)), + new AnvilOutput(new ItemStack(ModItems.fragment_boron), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fragment_lanthanium), 0.1F), + new AnvilOutput(new ItemStack(ModItems.fragment_cobalt)), + new AnvilOutput(new ItemStack(ModItems.fragment_cobalt), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fragment_cerium), 0.1F), + new AnvilOutput(new ItemStack(ModItems.fragment_neodymium), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fragment_niobium), 0.5F), + } + ).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_titanium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_red_copper, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_tungsten, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_aluminium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_aluminium, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_steel, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_lead, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_asbestos, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1))}).setTier(1)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.heater_firebox), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 8)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 6)) + } + ).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.heater_oven), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_firebrick, 16)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)) + } + ).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.machine_stirling), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 6)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)), + new AnvilOutput(new ItemStack(ModItems.coil_copper, 4)), + new AnvilOutput(new ItemStack(ModItems.gear_large, 1)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.machine_stirling, 1, 1), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 6)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)), + new AnvilOutput(new ItemStack(ModItems.coil_copper, 4)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.machine_stirling_steel), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 16)), + new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 6)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)), + new AnvilOutput(new ItemStack(ModItems.coil_gold, 16)), + new AnvilOutput(new ItemStack(ModItems.gear_large,1, 1)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModItems.gear_large,1, 1), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 8)), + new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 1)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModItems.gear_large), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_iron, 8)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 1)), + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.machine_stirling_steel, 1, 1), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 16)), + new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 6)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)), + new AnvilOutput(new ItemStack(ModItems.coil_gold, 16)), + + } + ).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.barrel_tcalloy), new AnvilOutput[] { @@ -638,18 +724,106 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.ingot_tcalloy, 1), 0.25F) } ).setTier(3)); - + constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.deco_computer), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModItems.crt_display, 1)), new AnvilOutput(new ItemStack(ModItems.scrap, 3)), - new AnvilOutput(new ItemStack(ModItems.wire_copper, 4)), - new AnvilOutput(new ItemStack(ModItems.circuit_red_copper, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.circuit_copper, 2)) + new AnvilOutput(new ItemStack(ModItems.wire_fine, 4, Mats.MAT_COPPER.id)), + new AnvilOutput(new ItemStack(ModItems.circuit, 2, EnumCircuitType.PCB.ordinal())), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.5F), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR.ordinal()), 0.75F), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR.ordinal()), 0.5F), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()), 0.1F) } ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.deco_crt, 1, OreDictionary.WILDCARD_VALUE), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.crt_display, 1)), + new AnvilOutput(new ItemStack(ModItems.scrap, 2)), + new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_COPPER.id)), + new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_GOLD.id), 0.25F), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.25F) + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.deco_toaster, 1, 0), //iron toaster + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_iron, 3)), + new AnvilOutput(new ItemStack(ModItems.scrap, 1)), + new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 1)), + new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.battery_generic, 1), 0.25F), + new AnvilOutput(new ItemStack(ModItems.battery_advanced, 1), 0.1F), + new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.01F) + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.deco_toaster, 1, 1), // steel toaster + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 3)), + new AnvilOutput(new ItemStack(ModItems.scrap, 1)), + new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 2)), + new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.battery_lithium, 1), 0.25F), + new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F), + new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F) + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.deco_toaster, 1, 2), // wooden toaster + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.powder_sawdust, 4)), + new AnvilOutput(new ItemStack(ModItems.scrap, 1)), + new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 4)), + new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.gem_alexandrite, 1), 0.25F), + new AnvilOutput(new ItemStack(ModItems.flame_pony, 1), 0.01F) + + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.radiorec), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 4)), + new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_COPPER.id)), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.5F), + new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.25F), + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.tape_recorder), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1)), + new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1), 0.25F), + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.pole_top), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 3)), + new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 1)), + new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 2)), + new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1), 0.5F), + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.pole_satellite_receiver), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_steel, 3)), + new AnvilOutput(new ItemStack(ModItems.ingot_steel, 2), 0.5F), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.5F), + new AnvilOutput(new ItemStack(ModItems.wire_fine, 1, Mats.MAT_MINGRADE.id)), + } + ).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.filing_cabinet), new AnvilOutput[] { @@ -661,107 +835,6 @@ public class AnvilRecipes { } ).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_raw), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.plate_steel, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_aluminium, 1)), - new AnvilOutput(new ItemStack(Items.redstone, 1)) - } - ).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_aluminium), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.plate_steel, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_aluminium, 1), 0.5F), - new AnvilOutput(new ItemStack(Items.redstone, 1), 0.25F) - } - ).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_copper), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.circuit_aluminium, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_copper, 2)), - new AnvilOutput(new ItemStack(ModItems.wire_copper, 1), 0.5F), - new AnvilOutput(new ItemStack(ModItems.wire_copper, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.powder_quartz, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.plate_copper, 1), 0.5F) - } - ).setTier(2)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_red_copper), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.circuit_copper, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_red_copper, 2)), - new AnvilOutput(new ItemStack(ModItems.wire_red_copper, 1), 0.5F), - new AnvilOutput(new ItemStack(ModItems.wire_red_copper, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.powder_gold, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.plate_polymer, 1), 0.5F) - } - ).setTier(3)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_gold), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.circuit_red_copper, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_gold, 2)), - new AnvilOutput(new ItemStack(ModItems.wire_gold, 1), 0.5F), - new AnvilOutput(new ItemStack(ModItems.wire_gold, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.powder_lapis, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.5F) - } - ).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_schrabidium), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.circuit_gold, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_schrabidium, 2)), - new AnvilOutput(new ItemStack(ModItems.wire_schrabidium, 1), 0.5F), - new AnvilOutput(new ItemStack(ModItems.wire_schrabidium, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.powder_diamond, 1), 0.25F), - new AnvilOutput(new ItemStack(ModItems.ingot_desh, 1), 0.5F) - } - ).setTier(6)); - - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_tantalium_raw), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(Items.redstone, 4)), - new AnvilOutput(new ItemStack(ModItems.wire_gold, 2)), - new AnvilOutput(new ItemStack(ModItems.plate_copper, 2)), - new AnvilOutput(new ItemStack(ModItems.nugget_tantalium, 1)) - } - ).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_tantalium), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(Items.redstone, 2)), - new AnvilOutput(new ItemStack(ModItems.wire_gold, 1)), - new AnvilOutput(new ItemStack(ModItems.wire_gold, 1), 0.5F), - new AnvilOutput(new ItemStack(ModItems.plate_copper, 1)), - new AnvilOutput(new ItemStack(ModItems.nugget_tantalium, 1), 0.75F) - } - ).setTier(4)); - - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_bismuth_raw), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(Items.redstone, 4)), - new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 2)), - new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_tantalium : ModItems.ingot_asbestos, 2)), - new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1)) - } - ).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModItems.circuit_bismuth), - new AnvilOutput[] { - new AnvilOutput(new ItemStack(Items.redstone, 2)), - new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1)), - new AnvilOutput(new ItemStack(ModItems.ingot_polymer, 1), 0.5F), - new AnvilOutput(new ItemStack(GeneralConfig.enable528 ? ModItems.circuit_tantalium : ModItems.ingot_asbestos, 1)), - new AnvilOutput(new ItemStack(ModItems.ingot_bismuth, 1), 0.75F) - } - ).setTier(4)); - constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.pile_rod_uranium), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModItems.billet_uranium, 3)), @@ -781,7 +854,7 @@ public class AnvilRecipes { new ComparableStack(ModItems.pile_rod_detector), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModItems.ingot_boron, 2)), new AnvilOutput(new ItemStack(ModItems.motor, 1)), - new AnvilOutput(new ItemStack(ModItems.circuit_aluminium, 1)) + new AnvilOutput(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE)) }).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.pile_rod_lithium), new AnvilOutput[] { @@ -820,13 +893,14 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_control_auto), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_control, 1)), - new AnvilOutput(new ItemStack(ModItems.circuit_targeting_tier1, 2)) + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal())), + new AnvilOutput(new ItemStack(ModItems.crt_display, 1)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_rod_reasim), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), new AnvilOutput(new ItemStack(ModItems.ingot_zirconium, 4)), - new AnvilOutput(new ItemStack(ModItems.hull_small_steel, 2)) + new AnvilOutput(new ItemStack(ModItems.shell, 2, Mats.MAT_STEEL.id)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_rod_reasim_mod), new AnvilOutput[] { @@ -852,7 +926,7 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_rod), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), - new AnvilOutput(new ItemStack(ModItems.hull_small_steel, 2)) + new AnvilOutput(new ItemStack(ModItems.shell, 2, Mats.MAT_STEEL.id)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_rod_mod), new AnvilOutput[] { @@ -863,8 +937,8 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_boiler), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), - new AnvilOutput(new ItemStack(ModItems.board_copper, 6)), - new AnvilOutput(new ItemStack(ModItems.pipes_steel, 2)) + new AnvilOutput(new ItemStack(ModItems.pipe, 6, Mats.MAT_COPPER.id)), + new AnvilOutput(new ItemStack(ModItems.shell, 2, Mats.MAT_COPPER.id)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_cooler), new AnvilOutput[] { @@ -880,8 +954,8 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.ingot_boron, 5)), new AnvilOutput(new ItemStack(ModItems.plate_lead, 8)), new AnvilOutput(new ItemStack(ModItems.crt_display, 3)), - new AnvilOutput(new ItemStack(ModItems.circuit_copper, 1)), - new AnvilOutput(new ItemStack(ModItems.circuit_copper, 1), 0.5F), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal())), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()), 0.5F), }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.pile_rod_plutonium), new AnvilOutput[] { @@ -932,14 +1006,22 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.plate_lead, 2)), new AnvilOutput(new ItemStack(ModItems.nuclear_waste_vitrified, 10)) }).setTier(3)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModItems.egg_glyphid), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.glyphid_meat, 2)), + new AnvilOutput(new ItemStack(ModItems.glyphid_meat, 1), 0.5F), + new AnvilOutput(new ItemStack(Items.bone, 1), 0.75F), + new AnvilOutput(new ItemStack(Items.experience_bottle, 1), 0.5F) + }).setTier(1)); } public static void pullFromAssembler(ComparableStack result, int tier) { - AStack[] ingredients = AssemblerRecipes.recipes.get(result); + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(result); - if(ingredients != null) { - constructionRecipes.add(new AnvilConstructionRecipe(ingredients, new AnvilOutput(result.toStack())).setTier(tier)); + if(recipe != null) { + constructionRecipes.add(new AnvilConstructionRecipe(recipe.ingredients, new AnvilOutput(result.toStack())).setTier(tier)); } } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilSmithingMold.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilSmithingMold.java index 5dd1bef82..11a1693a3 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilSmithingMold.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilSmithingMold.java @@ -2,10 +2,10 @@ package com.hbm.inventory.recipes.anvil; import java.util.List; -import com.hbm.inventory.OreNames; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.material.MaterialShapes; import com.hbm.items.ModItems; import com.hbm.util.ItemStackUtil; @@ -34,7 +34,7 @@ public class AnvilSmithingMold extends AnvilSmithingRecipe { for(String name : names) { - for(String otherPrefix : OreNames.prefixes) { + for(MaterialShapes shape : MaterialShapes.allShapes) for(String otherPrefix : shape.prefixes) { if(otherPrefix.length() > matchesPrefix.name.length() && name.startsWith(otherPrefix)) { return false; //ignore if there's a longer prefix that matches (i.e. a more accurate match) } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 405cede7f..de9283804 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -8,6 +8,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import com.google.gson.Gson; @@ -25,6 +26,7 @@ import com.hbm.inventory.material.MatDistribution; import com.hbm.inventory.recipes.*; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.util.Tuple.Pair; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -35,6 +37,8 @@ public abstract class SerializableRecipe { public static final Gson gson = new Gson(); public static List recipeHandlers = new ArrayList(); + public boolean modified = false; + /* * INIT */ @@ -43,6 +47,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new PressRecipes()); recipeHandlers.add(new BlastFurnaceRecipes()); recipeHandlers.add(new ShredderRecipes()); + recipeHandlers.add(new SolderingRecipes()); recipeHandlers.add(new ChemplantRecipes()); recipeHandlers.add(new CombinationRecipes()); recipeHandlers.add(new CrucibleRecipes()); @@ -51,9 +56,11 @@ public abstract class SerializableRecipe { recipeHandlers.add(new FractionRecipes()); recipeHandlers.add(new CrackingRecipes()); recipeHandlers.add(new ReformingRecipes()); + recipeHandlers.add(new HydrotreatingRecipes()); recipeHandlers.add(new LiquefactionRecipes()); recipeHandlers.add(new SolidificationRecipes()); recipeHandlers.add(new CokerRecipes()); + recipeHandlers.add(new PyroOvenRecipes()); recipeHandlers.add(new BreederRecipes()); recipeHandlers.add(new CyclotronRecipes()); recipeHandlers.add(new HadronRecipes()); @@ -61,7 +68,19 @@ public abstract class SerializableRecipe { recipeHandlers.add(new MixerRecipes()); recipeHandlers.add(new OutgasserRecipes()); recipeHandlers.add(new CompressorRecipes()); + recipeHandlers.add(new ElectrolyserFluidRecipes()); + recipeHandlers.add(new ElectrolyserMetalRecipes()); + recipeHandlers.add(new ArcWelderRecipes()); + recipeHandlers.add(new RotaryFurnaceRecipes()); + recipeHandlers.add(new ExposureChamberRecipes()); + recipeHandlers.add(new AmmoPressRecipes()); + recipeHandlers.add(new AssemblerRecipes()); + recipeHandlers.add(new PedestalRecipes()); + recipeHandlers.add(new MatDistribution()); + recipeHandlers.add(new CustomMachineRecipes()); + //AFTER MatDistribution + recipeHandlers.add(new ArcFurnaceRecipes()); } public static void initialize() { @@ -86,6 +105,7 @@ public abstract class SerializableRecipe { if(recFile.exists() && recFile.isFile()) { MainRegistry.logger.info("Reading recipe file " + recFile.getName()); recipe.readRecipeFile(recFile); + recipe.modified = true; } else { MainRegistry.logger.info("No recipe file found, registering defaults for " + recipe.getFileName()); recipe.registerDefaults(); @@ -93,6 +113,7 @@ public abstract class SerializableRecipe { File recTemplate = new File(recDir.getAbsolutePath() + File.separatorChar + "_" + recipe.getFileName()); MainRegistry.logger.info("Writing template file " + recTemplate.getName()); recipe.writeTemplateFile(recTemplate); + recipe.modified = false; } recipe.registerPost(); @@ -166,7 +187,9 @@ public abstract class SerializableRecipe { writer.endArray(); //end recipe array writer.endObject(); //final '}' writer.close(); - } catch(Exception ex) { } + } catch(Exception ex) { + ex.printStackTrace(); + } } public void readRecipeFile(File file) { @@ -184,7 +207,7 @@ public abstract class SerializableRecipe { * JSON IO UTIL */ - protected static AStack readAStack(JsonArray array) { + public static AStack readAStack(JsonArray array) { try { String type = array.get(0).getAsString(); int stacksize = array.size() > 2 ? array.get(2).getAsInt() : 1; @@ -202,7 +225,7 @@ public abstract class SerializableRecipe { return new ComparableStack(ModItems.nothing); } - protected static AStack[] readAStackArray(JsonArray array) { + public static AStack[] readAStackArray(JsonArray array) { try { AStack[] items = new AStack[array.size()]; for(int i = 0; i < items.length; i++) { items[i] = readAStack((JsonArray) array.get(i)); } @@ -212,7 +235,7 @@ public abstract class SerializableRecipe { return new AStack[0]; } - protected static void writeAStack(AStack astack, JsonWriter writer) throws IOException { + public static void writeAStack(AStack astack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); if(astack instanceof ComparableStack) { @@ -232,7 +255,7 @@ public abstract class SerializableRecipe { writer.setIndent(" "); } - protected static ItemStack readItemStack(JsonArray array) { + public static ItemStack readItemStack(JsonArray array) { try { Item item = (Item) Item.itemRegistry.getObject(array.get(0).getAsString()); int stacksize = array.size() > 1 ? array.get(1).getAsInt() : 1; @@ -243,7 +266,19 @@ public abstract class SerializableRecipe { return new ItemStack(ModItems.nothing); } - protected static ItemStack[] readItemStackArray(JsonArray array) { + public static Pair readItemStackChance(JsonArray array) { + try { + Item item = (Item) Item.itemRegistry.getObject(array.get(0).getAsString()); + int stacksize = array.size() > 2 ? array.get(1).getAsInt() : 1; + int meta = array.size() > 3 ? array.get(2).getAsInt() : 0; + float chance = array.get(array.size() - 1).getAsFloat(); + if(item != null) return new Pair(new ItemStack(item, stacksize, meta), chance); + } catch(Exception ex) { } + MainRegistry.logger.error("Error reading stack array " + array.toString() + " - defaulting to NOTHING item!"); + return new Pair(new ItemStack(ModItems.nothing), 1F); + } + + public static ItemStack[] readItemStackArray(JsonArray array) { try { ItemStack[] items = new ItemStack[array.size()]; for(int i = 0; i < items.length; i++) { items[i] = readItemStack((JsonArray) array.get(i)); } @@ -253,7 +288,17 @@ public abstract class SerializableRecipe { return new ItemStack[0]; } - protected static void writeItemStack(ItemStack stack, JsonWriter writer) throws IOException { + public static Pair[] readItemStackArrayChance(JsonArray array) { + try { + Pair[] items = new Pair[array.size()]; + for(int i = 0; i < items.length; i++) { items[i] = readItemStackChance((JsonArray) array.get(i)); } + return items; + } catch(Exception ex) { } + MainRegistry.logger.error("Error reading stack array " + array.toString()); + return new Pair[0]; + } + + public static void writeItemStack(ItemStack stack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); writer.value(Item.itemRegistry.getNameForObject(stack.getItem())); //item name @@ -263,7 +308,18 @@ public abstract class SerializableRecipe { writer.setIndent(" "); } - protected static FluidStack readFluidStack(JsonArray array) { + public static void writeItemStackChance(Pair stack, JsonWriter writer) throws IOException { + writer.beginArray(); + writer.setIndent(""); + writer.value(Item.itemRegistry.getNameForObject(stack.getKey().getItem())); //item name + if(stack.getKey().stackSize != 1 || stack.getKey().getItemDamage() != 0) writer.value(stack.getKey().stackSize); //stack size + if(stack.getKey().getItemDamage() != 0) writer.value(stack.getKey().getItemDamage()); //metadata + writer.value(stack.value); //chance + writer.endArray(); + writer.setIndent(" "); + } + + public static FluidStack readFluidStack(JsonArray array) { try { FluidType type = Fluids.fromName(array.get(0).getAsString()); int fill = array.get(1).getAsInt(); @@ -274,7 +330,7 @@ public abstract class SerializableRecipe { return new FluidStack(Fluids.NONE, 0); } - protected static FluidStack[] readFluidArray(JsonArray array) { + public static FluidStack[] readFluidArray(JsonArray array) { try { FluidStack[] fluids = new FluidStack[array.size()]; for(int i = 0; i < fluids.length; i++) { fluids[i] = readFluidStack((JsonArray) array.get(i)); } @@ -284,7 +340,7 @@ public abstract class SerializableRecipe { return new FluidStack[0]; } - protected static void writeFluidStack(FluidStack stack, JsonWriter writer) throws IOException { + public static void writeFluidStack(FluidStack stack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); writer.value(stack.type.getName()); //fluid type @@ -293,4 +349,33 @@ public abstract class SerializableRecipe { writer.endArray(); writer.setIndent(" "); } + + public static boolean matchesIngredients(ItemStack[] inputs, AStack[] recipe) { + + List recipeList = new ArrayList(); + for(AStack ingredient : recipe) recipeList.add(ingredient); + + for(int i = 0; i < inputs.length; i++) { + ItemStack inputStack = inputs[i]; + + if(inputStack != null) { + boolean hasMatch = false; + Iterator iterator = recipeList.iterator(); + + while(iterator.hasNext()) { + AStack recipeStack = iterator.next(); + + if(recipeStack.matchesRecipe(inputStack, true) && inputStack.stackSize >= recipeStack.stacksize) { + hasMatch = true; + recipeList.remove(recipeStack); + break; + } + } + if(!hasMatch) { + return false; + } + } + } + return recipeList.isEmpty(); + } } diff --git a/src/main/java/com/hbm/inventory/transfer/ITransferFilter.java b/src/main/java/com/hbm/inventory/transfer/ITransferFilter.java deleted file mode 100644 index 8f5e91cae..000000000 --- a/src/main/java/com/hbm/inventory/transfer/ITransferFilter.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface ITransferFilter { - - /** Returns a list of valid ItemStacks that pass the filter and can be added. The returned list is what is added to the target and removed from the source. */ - public List select(List offer); -} diff --git a/src/main/java/com/hbm/inventory/transfer/ITransferSource.java b/src/main/java/com/hbm/inventory/transfer/ITransferSource.java deleted file mode 100644 index 27891800f..000000000 --- a/src/main/java/com/hbm/inventory/transfer/ITransferSource.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface ITransferSource { - - /** Returns a list of ItemStacks accessible from this source */ - public List offer(); - /** Removes the selected ItemStacks */ - public void remove(List toRem); -} diff --git a/src/main/java/com/hbm/inventory/transfer/ITransferTarget.java b/src/main/java/com/hbm/inventory/transfer/ITransferTarget.java deleted file mode 100644 index 28bba3987..000000000 --- a/src/main/java/com/hbm/inventory/transfer/ITransferTarget.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface ITransferTarget { - - /** Adds the selected ItemStacks to the target */ - public void fill(List offer); -} diff --git a/src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java b/src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java deleted file mode 100644 index 8c0dfb998..000000000 --- a/src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.inventory.transfer; - -import net.minecraftforge.common.util.ForgeDirection; - -public abstract class TransferSourceSided implements ITransferSource { - - protected ForgeDirection fromSide; - - public TransferSourceSided fromSide(ForgeDirection side) { - this.fromSide = side; - return this; - } -} diff --git a/src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java b/src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java deleted file mode 100644 index 11a92d06c..000000000 --- a/src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityFurnace; - -public class TransferSourceTileEntity extends TransferSourceSided { - - protected TileEntity tile; - - public TransferSourceTileEntity fromTile(TileEntity tile) { - this.tile = tile; - return this; - } - - @Override - public List offer() { - - List list = new ArrayList(); - - if(tile instanceof ISidedInventory) { - ISidedInventory inventory = (ISidedInventory) tile; - int[] access = masquerade(inventory, fromSide.ordinal()); - - for(int i : access) { - ItemStack stack = inventory.getStackInSlot(i); - - if(stack != null && inventory.canExtractItem(i, stack, fromSide.ordinal())) { - list.add(stack.copy()); - } - } - - return list; - } - - if(tile instanceof IInventory) { - IInventory inventory = (IInventory) tile; - - for(int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack stack = inventory.getStackInSlot(i); - - if(stack != null) { - list.add(stack.copy()); - } - } - - return list; - } - - return list; - } - - public static int[] masquerade(ISidedInventory sided, int side) { - - if(sided instanceof TileEntityFurnace) { - return new int[] {2}; - } - - return sided.getAccessibleSlotsFromSide(side); - } - - @Override - public void remove(List toRem) { - } -} diff --git a/src/main/java/com/hbm/inventory/transfer/TransferUtil.java b/src/main/java/com/hbm/inventory/transfer/TransferUtil.java deleted file mode 100644 index 2ab5c8576..000000000 --- a/src/main/java/com/hbm/inventory/transfer/TransferUtil.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public class TransferUtil { - - public static void transfer(ITransferSource source, ITransferFilter filter, ITransferTarget target) { - - List filtered = filter.select(source.offer()); - source.remove(filtered); - target.fill(filtered); - } -} diff --git a/src/main/java/com/hbm/itempool/ItemPool.java b/src/main/java/com/hbm/itempool/ItemPool.java new file mode 100644 index 000000000..b9b537d43 --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPool.java @@ -0,0 +1,87 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Random; + +import com.hbm.items.ModItems; + +import net.minecraft.block.Block; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandom; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPool { + + public static void initialize() { + ItemPoolsLegacy.init(); + ItemPoolsComponent.init(); + ItemPoolsSingle.init(); + ItemPoolsRedRoom.init(); + ItemPoolsSatellite.init(); + ItemPoolsPile.init(); + ItemPoolsC130.init(); + } + + public static HashMap pools = new HashMap(); + + public String name; + public WeightedRandomChestContent[] pool = new WeightedRandomChestContent[0]; + + private List buildingList = new ArrayList(); + + public ItemPool() { } + + public ItemPool(String name) { + this.name = name; + pools.put(name, this); + } + + public ItemPool add(Item item, int meta, int min, int max, int weight) { buildingList.add(new WeightedRandomChestContent(item, meta, min, max, weight)); return this; } + public ItemPool add(Block block, int meta, int min, int max, int weight) { buildingList.add(new WeightedRandomChestContent(Item.getItemFromBlock(block), meta, min, max, weight)); return this; } + public ItemPool add(ItemStack item, int min, int max, int weight) { buildingList.add(new WeightedRandomChestContent(item, min, max, weight)); return this; } + + public ItemPool build() { + + this.pool = new WeightedRandomChestContent[buildingList.size()]; + + for(int i = 0; i < pool.length; i++) { + this.pool[i] = this.buildingList.get(i); + } + + this.buildingList.clear(); + + return this; + } + + /** Grabs the specified item pool out of the pool map, will return the backup pool if the given pool is not present */ + public static WeightedRandomChestContent[] getPool(String name) { + ItemPool pool = pools.get(name); + if(pool == null) return backupPool; + return pool.pool; + } + + public static ItemStack getStack(String pool, Random rand) { + return getStack(ItemPool.getPool(pool), rand); + } + + public static ItemStack getStack(WeightedRandomChestContent[] pool, Random rand) { + WeightedRandomChestContent weighted = (WeightedRandomChestContent) WeightedRandom.getRandomItem(rand, pool); + ItemStack stack = weighted.theItemId.copy(); + stack.stackSize = weighted.theMinimumChanceToGenerateItem + rand.nextInt(weighted.theMaximumChanceToGenerateItem - weighted.theMinimumChanceToGenerateItem + 1); + return stack; + } + + /** Should a pool be lost due to misconfiguration or otherwise, this pool will be returned in its place */ + private static WeightedRandomChestContent[] backupPool = new WeightedRandomChestContent[] { + weighted(Items.bread, 0, 1, 3, 10), + weighted(Items.stick, 0, 2, 5, 10), + weighted(ModItems.scrap, 0, 1, 3, 10), + weighted(ModItems.dust, 0, 2, 5, 5) + }; +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsC130.java b/src/main/java/com/hbm/itempool/ItemPoolsC130.java new file mode 100644 index 000000000..c39fa9dbe --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsC130.java @@ -0,0 +1,61 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; + +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsC130 { + + public static final String POOL_SUPPLIES = "POOL_SUPPLIES"; + public static final String POOL_WEAPONS = "POOL_WEAPONS"; + public static final String POOL_AMMO = "POOL_AMMO"; + + + public static void init() { + + new ItemPool(POOL_SUPPLIES) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.definitelyfood, 0, 3, 10, 25), + weighted(ModItems.syringe_metal_stimpak, 0, 1, 3, 10), + weighted(ModItems.pill_iodine, 0, 1, 2, 2), + weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 4, 5), + weighted(ModBlocks.machine_diesel, 0, 1, 1, 1), + weighted(ModItems.geiger_counter, 0, 1, 1, 2), + weighted(ModItems.med_bag, 0, 1, 1, 3), + weighted(ModItems.radaway, 0, 1, 5, 10), + }; + }}; + + new ItemPool(POOL_WEAPONS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.gun_light_revolver, 0, 1, 1, 10), + weighted(ModItems.gun_henry, 0, 1, 1, 10), + weighted(ModItems.gun_maresleg, 0, 1, 1, 10), + weighted(ModItems.gun_greasegun, 0, 1, 1, 10), + weighted(ModItems.gun_carbine, 0, 1, 1, 5), + weighted(ModItems.gun_heavy_revolver, 0, 1, 1, 5), + weighted(ModItems.gun_panzerschreck, 0, 1, 1, 2), + weighted(ModItems.gun_double_barrel, 0, 1, 1, 1), + }; + }}; + + new ItemPool(POOL_AMMO) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ammo_standard, EnumAmmo.M357_SP.ordinal(), 12, 12, 10), + weighted(ModItems.ammo_standard, EnumAmmo.M357_FMJ.ordinal(), 6, 6, 10), + weighted(ModItems.ammo_standard, EnumAmmo.M44_SP.ordinal(), 12, 12, 5), + weighted(ModItems.ammo_standard, EnumAmmo.M44_FMJ.ordinal(), 6, 6, 5), + weighted(ModItems.ammo_standard, EnumAmmo.P9_SP.ordinal(), 12, 12, 10), + weighted(ModItems.ammo_standard, EnumAmmo.P9_FMJ.ordinal(), 6, 6, 10), + weighted(ModItems.ammo_standard, EnumAmmo.R762_SP.ordinal(), 6, 6, 5), + weighted(ModItems.ammo_standard, EnumAmmo.G12_BP.ordinal(), 6, 6, 10), + weighted(ModItems.ammo_standard, EnumAmmo.ROCKET_HE.ordinal(), 1, 1, 3), + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java new file mode 100644 index 000000000..02d14641c --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java @@ -0,0 +1,185 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ItemEnums.EnumCokeType; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemBlowtorch; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsComponent { + + public static final String POOL_MACHINE_PARTS = "POOL_MACHINE_PARTS"; + public static final String POOL_NUKE_FUEL = "POOL_NUKE_FUEL"; + public static final String POOL_SILO = "POOL_SILO"; + public static final String POOL_OFFICE_TRASH = "POOL_OFFICE_TRASH"; + public static final String POOL_FILING_CABINET = "POOL_FILING_CABINET"; + public static final String POOL_SOLID_FUEL = "POOL_SOLID_FUEL"; + public static final String POOL_VAULT_LAB = "POOL_VAULT_LAB"; + public static final String POOL_VAULT_LOCKERS = "POOL_VAULT_LOCKERS"; + + public static void init() { + + //machine parts + new ItemPool(POOL_MACHINE_PARTS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.plate_steel, 0, 1, 5, 5), + weighted(ModItems.shell, Mats.MAT_STEEL.id, 1, 3, 3), + weighted(ModItems.plate_polymer, 0, 1, 6, 5), + weighted(ModItems.bolt, Mats.MAT_STEEL.id, 4, 16, 3), + weighted(ModItems.bolt, Mats.MAT_TUNGSTEN.id, 4, 16, 3), + weighted(ModItems.coil_tungsten, 0, 1, 2, 5), + weighted(ModItems.motor, 0, 1, 2, 4), + weighted(ModItems.tank_steel, 0, 1, 2, 3), + weighted(ModItems.coil_copper, 0, 1, 3, 4), + weighted(ModItems.coil_copper_torus, 0, 1, 2, 3), + weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 1, 8, 5), + weighted(ModItems.piston_selenium, 0, 1, 1, 3), + weighted(ModItems.battery_advanced_cell, 0, 1, 1, 3), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 2, 4), + weighted(ModItems.circuit, EnumCircuitType.PCB.ordinal(), 1, 3, 5), + weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 3), + weighted(ModItems.blade_titanium, 0, 1, 8, 1) + }; + }}; + + //fuel isotopes found in bunkers and labs + new ItemPool(POOL_NUKE_FUEL) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.billet_uranium, 0, 1, 4, 4), + weighted(ModItems.billet_th232, 0, 1, 3, 3), + weighted(ModItems.billet_uranium_fuel, 0, 1, 3, 5), + weighted(ModItems.billet_mox_fuel, 0, 1, 3, 5), + weighted(ModItems.billet_thorium_fuel, 0, 1, 3, 3), + weighted(ModItems.billet_ra226be, 0, 1, 2, 2), + weighted(ModItems.billet_beryllium, 0, 1, 1, 1), + weighted(ModItems.nugget_u233, 0, 1, 1, 1), + weighted(ModItems.nugget_uranium_fuel, 0, 1, 1, 1), + weighted(ModItems.rod_zirnox_empty, 0, 1, 3, 3), + weighted(ModItems.ingot_graphite, 0, 1, 4, 3), + weighted(ModItems.pile_rod_uranium, 0, 2, 5, 3), + weighted(ModItems.pile_rod_source, 0, 1, 2, 2), + weighted(ModItems.reacher, 0, 1, 1, 3), + weighted(ModItems.screwdriver, 0, 1, 1, 2) + }; + }}; + + //missile parts found in silos + new ItemPool(POOL_SILO) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.missile_generic, 0, 1, 1, 4), + weighted(ModItems.missile_incendiary, 0, 1, 1, 4), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), + weighted(ModItems.battery_advanced, 0, 1, 1, 5), + weighted(ModItems.designator, 0, 1, 1, 5), + weighted(ModItems.thruster_small, 0, 1, 1, 5), + weighted(ModItems.thruster_medium, 0, 1, 1, 4), + weighted(ModItems.fuel_tank_small, 0, 1, 1, 5), + weighted(ModItems.fuel_tank_medium, 0, 1, 1, 4), + weighted(ModItems.bomb_caller, 0, 1, 1, 1), + weighted(ModItems.bomb_caller, 3, 1, 1, 1), + weighted(ModItems.bottle_nuka, 0, 1, 3, 10) + }; + }}; + + //low quality items from offices in chests + new ItemPool(POOL_OFFICE_TRASH) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.paper, 0, 1, 12, 10), + weighted(Items.book, 0, 1, 3, 4), + weighted(ModItems.twinkie, 0, 1, 2, 6), + weighted(ModItems.coffee, 0, 1, 1, 4), + weighted(ModItems.flame_politics, 0, 1, 1, 2), + weighted(ModItems.ring_pull, 0, 1, 1, 4), + weighted(ModItems.can_empty, 0, 1, 1, 2), + weighted(ModItems.can_creature, 0, 1, 2, 2), + weighted(ModItems.can_smart, 0, 1, 3, 2), + weighted(ModItems.can_mrsugar, 0, 1, 2, 2), + weighted(ModItems.cap_nuka, 0, 1, 16, 2), + weighted(ModItems.book_guide, 3, 1, 1, 1), + weighted(ModBlocks.deco_computer, 0, 1, 1, 1) + }; + }}; + + //things found in various filing cabinets, paper, books, etc + new ItemPool(POOL_FILING_CABINET) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.paper, 0, 1, 12, 240), + weighted(Items.book, 0, 1, 3, 90), + weighted(Items.map, 0, 1, 1, 50), + weighted(Items.writable_book, 0, 1, 1, 30), + weighted(ModItems.cigarette, 0, 1, 16, 20), + weighted(ModItems.toothpicks, 0, 1, 16, 10), + weighted(ModItems.dust, 0, 1, 1, 40), + weighted(ModItems.dust_tiny, 0, 1, 3, 75), + weighted(ModItems.ink, 0, 1, 1, 1) + }; + }}; + + //solid fuels from bunker power rooms + new ItemPool(POOL_SOLID_FUEL) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.solid_fuel, 0, 1, 5, 1), + weighted(ModItems.solid_fuel_presto, 0, 1, 2, 2), + weighted(ModItems.ball_dynamite, 0, 1, 4, 2), + weighted(ModItems.coke, EnumCokeType.PETROLEUM.ordinal(), 1, 3, 1), + weighted(Items.redstone, 0, 1, 3, 1), + weighted(ModItems.niter, 0, 1, 3, 1) + }; + }}; + + //various lab related items from bunkers + new ItemPool(POOL_VAULT_LAB) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), 1, 1, 4), + weighted(ModItems.chemistry_set, 0, 1, 1, 15), + weighted(ModItems.screwdriver, 0, 1, 1, 10), + weighted(ModItems.nugget_mercury, 0, 1, 1, 3), + weighted(ModItems.morning_glory, 0, 1, 1, 1), + weighted(ModItems.filter_coal, 0, 1, 1, 5), + weighted(ModItems.dust, 0, 1, 3, 25), + weighted(Items.paper, 0, 1, 2, 15), + weighted(ModItems.cell_empty, 0, 1, 1, 5), + weighted(Items.glass_bottle, 0, 1, 1, 5), + weighted(ModItems.powder_iodine, 0, 1, 1, 1), + weighted(ModItems.powder_bromine, 0, 1, 1, 1), + weighted(ModItems.powder_cobalt, 0, 1, 1, 1), + weighted(ModItems.powder_neodymium, 0, 1, 1, 1), + weighted(ModItems.powder_boron, 0, 1, 1, 1) + }; + }}; + + //personal items and gear from vaults + new ItemPool(POOL_VAULT_LOCKERS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.robes_helmet, 0, 1, 1, 1), + weighted(ModItems.robes_plate, 0, 1, 1, 1), + weighted(ModItems.robes_legs, 0, 1, 1, 1), + weighted(ModItems.robes_boots, 0, 1, 1, 1), + weighted(ModItems.jackt, 0, 1, 1, 1), + weighted(ModItems.jackt2, 0, 1, 1, 1), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 2), + weighted(ModItems.gas_mask_mono, 0, 1, 1, 2), + weighted(ModItems.goggles, 0, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), + weighted(ModItems.flame_opinion, 0, 1, 3, 5), + weighted(ModItems.flame_conspiracy, 0, 1, 3, 5), + weighted(ModItems.flame_politics, 0, 1, 3, 5), + weighted(ModItems.definitelyfood, 0, 2, 7, 5), + weighted(ModItems.cigarette, 0, 1, 8, 5), + weighted(ModItems.armor_polish, 0, 1, 1, 3), + weighted(ModItems.gun_kit_1, 0, 1, 1, 3), + weighted(ModItems.rag, 0, 1, 3, 5), + weighted(Items.paper, 0, 1, 6, 7), + weighted(Items.clock, 0, 1, 1, 3), + weighted(Items.book, 0, 1, 5, 10), + weighted(Items.experience_bottle, 0, 1, 3, 1) + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java new file mode 100644 index 000000000..ef3bc5569 --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -0,0 +1,237 @@ +package com.hbm.itempool; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ItemEnums.EnumCasingType; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; + +import static com.hbm.lib.HbmChestContents.*; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +/** + * Item pools for "legacy" structures, i.e. schematic2java ones + * @author hbm + * + */ +public class ItemPoolsLegacy { + + public static final String POOL_GENERIC = "POOL_GENERIC"; + public static final String POOL_ANTENNA = "POOL_ANTENNA"; + public static final String POOL_EXPENSIVE = "POOL_EXPENSIVE"; + public static final String POOL_NUKE_TRASH = "POOL_NUKE_TRASH"; + public static final String POOL_NUKE_MISC = "POOL_NUKE_MISC"; + public static final String POOL_VERTIBIRD = "POOL_VERTIBIRD"; + public static final String POOL_SPACESHIP = "POOL_SPACESHIP"; + + public static void init() { + + //"generic" set, found commonly in chests in many structures + new ItemPool(POOL_GENERIC) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.bread, 0, 1, 5, 8), + weighted(ModItems.twinkie, 0, 1, 3, 6), + weighted(Items.iron_ingot, 0, 2, 6, 10), + weighted(ModItems.ingot_steel, 0, 2, 5, 7), + weighted(ModItems.ingot_beryllium, 0, 1, 2, 4), + weighted(ModItems.ingot_titanium, 0, 1, 1, 3), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 5), + weighted(ModItems.gun_light_revolver, 0, 1, 1, 3), + weighted(ModItems.ammo_standard, EnumAmmo.M357_SP.ordinal(), 2, 6, 4), + weighted(ModItems.ammo_standard, EnumAmmo.G12_BP.ordinal(), 3, 6, 3), + weighted(ModItems.ammo_standard, EnumAmmo.G26_FLARE_SUPPLY.ordinal(), 1, 1, 1), + weighted(ModItems.gun_kit_1, 0, 1, 3, 4), + weighted(ModItems.gun_maresleg, 0, 1, 1, 1), + weighted(ModItems.casing, EnumCasingType.SMALL.ordinal(), 4, 10, 3), + weighted(ModItems.casing, EnumCasingType.SHOTSHELL.ordinal(), 4, 10, 3), + weighted(ModItems.cordite, 0, 4, 6, 5), + weighted(ModItems.battery_generic, 0, 1, 1, 4), + weighted(ModItems.battery_advanced, 0, 1, 1, 2), + weighted(ModItems.scrap, 0, 1, 3, 10), + weighted(ModItems.dust, 0, 2, 4, 9), + weighted(ModItems.bottle_opener, 0, 1, 1, 2), + weighted(ModItems.bottle_nuka, 0, 1, 3, 4), + weighted(ModItems.bottle_cherry, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 1), + weighted(ModItems.cap_nuka, 0, 1, 15, 7), + weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), + weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 3) + }; + }}; + + //"antenna" pool, found by antennas and in radio stations + new ItemPool(POOL_ANTENNA) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.twinkie, 0, 1, 3, 4), + weighted(ModItems.ingot_steel, 0, 1, 2, 7), + weighted(ModItems.ingot_red_copper, 0, 1, 1, 4), + weighted(ModItems.ingot_titanium, 0, 1, 3, 5), + weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 2, 3, 7), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 4), + weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 2), + weighted(ModItems.battery_generic, 0, 1, 1, 4), + weighted(ModItems.battery_advanced, 0, 1, 1, 3), + weighted(ModItems.powder_iodine, 0, 1, 1, 1), + weighted(ModItems.powder_bromine, 0, 1, 1, 1), + weighted(ModBlocks.steel_poles, 0, 1, 4, 8), + weighted(ModBlocks.steel_scaffold, 0, 1, 3, 8), + weighted(ModBlocks.pole_top, 0, 1, 1, 4), + weighted(ModBlocks.pole_satellite_receiver, 0, 1, 1, 7), + weighted(ModItems.scrap, 0, 1, 3, 10), + weighted(ModItems.dust, 0, 2, 4, 9), + weighted(ModItems.bottle_opener, 0, 1, 1, 2), + weighted(ModItems.bottle_nuka, 0, 1, 3, 4), + weighted(ModItems.bottle_cherry, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 1), + weighted(ModItems.cap_nuka, 0, 1, 15, 7), + weighted(ModItems.bomb_caller, 0, 1, 1, 1), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 2) + }; + }}; + + //"hidden" loot + new ItemPool(POOL_EXPENSIVE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.chlorine_pinwheel, 0, 1, 1, 1), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 4), + weighted(ModItems.circuit, EnumCircuitType.ANALOG.ordinal(), 1, 1, 3), + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 1, 1, 2), + weighted(ModItems.gun_kit_1, 0, 1, 3, 6), + weighted(ModItems.gun_kit_2, 0, 1, 2, 3), + weighted(ModItems.gun_panzerschreck, 0, 1, 1, 4), + weighted(ModItems.ammo_standard, EnumAmmo.ROCKET_HE.ordinal(), 1, 4, 5), + weighted(ModItems.ammo_standard, EnumAmmo.G26_FLARE_SUPPLY.ordinal(), 1, 1, 5), + weighted(ModItems.ammo_standard, EnumAmmo.G26_FLARE_WEAPON.ordinal(), 1, 1, 3), + weighted(ModItems.grenade_nuclear, 0, 1, 1, 2), + weighted(ModItems.grenade_smart, 0, 1, 3, 3), + weighted(ModItems.grenade_mirv, 0, 1, 1, 2), + weighted(ModItems.stealth_boy, 0, 1, 1, 2), + weighted(ModItems.battery_advanced, 0, 1, 1, 3), + weighted(ModItems.battery_advanced_cell, 0, 1, 1, 2), + weighted(ModItems.battery_schrabidium, 0, 1, 1, 1), + weighted(ModItems.syringe_awesome, 0, 1, 1, 1), + weighted(ModItems.fusion_core, 0, 1, 1, 4), + weighted(ModItems.bottle_nuka, 0, 1, 3, 6), + weighted(ModItems.bottle_quantum, 0, 1, 1, 3), + weighted(ModBlocks.red_barrel, 0, 1, 1, 6), + weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), + weighted(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), + weighted(ModItems.bomb_caller, 0, 1, 1, 2), + weighted(ModItems.bomb_caller, 1, 1, 1, 1), + weighted(ModItems.bomb_caller, 2, 1, 1, 1), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), + weighted(ModItems.journal_pip, 0, 1, 1, 1), + weighted(ModItems.journal_bj, 0, 1, 1, 1), + weighted(ModItems.launch_code_piece, 0, 1, 1, 1), + weighted(ModItems.gun_double_barrel, 0, 1, 1, 1), + }; + }}; + + //nuclear waste products found in powerplants + new ItemPool(POOL_NUKE_TRASH) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.nugget_u238, 0, 3, 12, 5), + weighted(ModItems.nugget_pu240, 0, 3, 8, 5), + weighted(ModItems.nugget_neptunium, 0, 1, 4, 3), + weighted(ModItems.rod, BreedingRodType.U238.ordinal(), 1, 1, 3), + weighted(ModItems.rod_dual, BreedingRodType.U238.ordinal(), 1, 1, 3), + weighted(ModItems.rod_quad, BreedingRodType.U238.ordinal(), 1, 1, 3), + weighted(ModItems.bottle_quantum, 0, 1, 1, 1), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), + weighted(ModItems.hazmat_kit, 0, 1, 1, 1), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), + weighted(ModBlocks.yellow_barrel, 0, 1, 1, 2) + }; + }}; + + //all sorts of nuclear related items, mostly fissile isotopes found in nuclear powerplants + new ItemPool(POOL_NUKE_MISC) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.nugget_u235, 0, 3, 12, 5), + weighted(ModItems.nugget_pu238, 0, 3, 12, 5), + weighted(ModItems.nugget_ra226, 0, 3, 6, 5), + weighted(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 3), + weighted(ModItems.rod_dual, BreedingRodType.U235.ordinal(), 1, 1, 3), + weighted(ModItems.rod_quad, BreedingRodType.U235.ordinal(), 1, 1, 3), + weighted(ModItems.rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), 1, 1, 4), + weighted(ModItems.rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), 1, 1, 4), + weighted(ModItems.rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 1, 1, 3), + weighted(ModItems.rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), 1, 1, 3), + weighted(ModItems.rod_dual, BreedingRodType.THF.ordinal(), 1, 1, 3), + weighted(ModItems.rod_zirnox_tritium, 0, 1, 1, 1), + weighted(ModItems.rod_zirnox, EnumZirnoxType.U233_FUEL.ordinal(), 1, 1, 1), + weighted(ModItems.rod_zirnox, EnumZirnoxType.U235_FUEL.ordinal(), 1, 1, 1), + weighted(ModItems.pellet_rtg, 0, 1, 1, 3), + weighted(ModItems.powder_thorium, 0, 1, 1, 1), + weighted(ModItems.powder_neptunium, 0, 1, 1, 1), + weighted(ModItems.powder_strontium, 0, 1, 1, 1), + weighted(ModItems.powder_cobalt, 0, 1, 1, 1), + weighted(ModItems.bottle_quantum, 0, 1, 1, 1), + weighted(ModItems.gas_mask_m65, 60, 1, 1, 5), + weighted(ModItems.hazmat_kit, 0, 1, 1, 2), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), + weighted(ModBlocks.yellow_barrel, 0, 1, 3, 3) + }; + }}; + + //loot found in vertibirds + new ItemPool(POOL_VERTIBIRD) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.t45_helmet, 0, 1, 1, 15), + weighted(ModItems.t45_plate, 0, 1, 1, 15), + weighted(ModItems.t45_legs, 0, 1, 1, 15), + weighted(ModItems.t45_boots, 0, 1, 1, 15), + weighted(ModItems.t45_kit, 0, 1, 1, 3), + weighted(ModItems.fusion_core, 0, 1, 1, 10), + weighted(ModItems.gun_light_revolver, 0, 1, 1, 4), + weighted(ModItems.gun_kit_1, 0, 2, 3, 4), + weighted(ModItems.ammo_standard, EnumAmmo.M357_FMJ.ordinal(), 1, 24, 4), + weighted(ModItems.ammo_standard, EnumAmmo.G40_HE.ordinal(), 1, 6, 3), + weighted(ModItems.ammo_standard, EnumAmmo.G26_FLARE_WEAPON.ordinal(), 1, 1, 5), + weighted(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 2), + weighted(ModItems.billet_uranium_fuel, 0, 1, 1, 2), + weighted(ModItems.ingot_uranium_fuel, 0, 1, 1, 2), + weighted(ModItems.bottle_nuka, 0, 1, 3, 6), + weighted(ModItems.bottle_quantum, 0, 1, 1, 3), + weighted(ModItems.stealth_boy, 0, 1, 1, 7), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), + weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), + weighted(ModItems.grenade_nuclear, 0, 1, 2, 2), + weighted(ModItems.bomb_caller, 0, 1, 1, 1), + weighted(ModItems.bomb_caller, 1, 1, 1, 1), + weighted(ModItems.bomb_caller, 2, 1, 1, 2) + }; + }}; + + //spaceship double chests + new ItemPool(POOL_SPACESHIP) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.battery_advanced, 0, 1, 1, 5), + weighted(ModItems.ingot_advanced_alloy, 0, 2, 16, 5), + weighted(ModItems.wire_fine, Mats.MAT_ALLOY.id, 8, 32, 5), + weighted(ModItems.coil_advanced_alloy, 0, 2, 16, 5), + weighted(ModItems.cell_deuterium, 0, 1, 8, 5), + weighted(ModItems.cell_tritium, 0, 1, 8, 5), + weighted(ModItems.cell_antimatter, 0, 1, 1, 1), + weighted(ModItems.powder_neodymium, 0, 1, 1, 1), + weighted(ModItems.powder_niobium, 0, 1, 1, 1), + weighted(ModBlocks.fusion_conductor, 0, 2, 4, 5), + weighted(ModBlocks.fusion_heater, 0, 1, 3, 5), + weighted(ModBlocks.pwr_fuel, 0, 1, 2, 5), + weighted(ModBlocks.block_tungsten, 0, 3, 8, 5), + weighted(ModBlocks.red_wire_coated, 0, 4, 8, 5), + weighted(ModBlocks.red_cable, 0, 8, 16, 5) + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsPile.java b/src/main/java/com/hbm/itempool/ItemPoolsPile.java new file mode 100644 index 000000000..ad2a7f3ae --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsPile.java @@ -0,0 +1,110 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.inventory.material.Mats; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsPile { + + public static final String POOL_PILE_HIVE = "POOL_PILE_HIVE"; + public static final String POOL_PILE_BONES = "POOL_PILE_BONES"; + public static final String POOL_PILE_CAPS = "POOL_PILE_CAPS"; + public static final String POOL_PILE_MED_SYRINGE = "POOL_PILE_MED_SYRINGE"; + public static final String POOL_PILE_MED_PILLS = "POOL_PILE_MED_PILLS"; + public static final String POOL_PILE_MAKESHIFT_GUN = "POOL_PILE_MAKESHIFT_GUN"; + public static final String POOL_PILE_MAKESHIFT_WRENCH = "POOL_PILE_MAKESHIFT_WRENCH"; + public static final String POOL_PILE_MAKESHIFT_PLATES = "POOL_PILE_MAKESHIFT_PLATES"; + public static final String POOL_PILE_MAKESHIFT_WIRE = "POOL_PILE_MAKESHIFT_WIRE"; + public static final String POOL_PILE_NUKE_STORAGE = "POOL_PILE_NUKE_STORAGE"; + + public static void init() { + + //items found in glyphid hives + new ItemPool(POOL_PILE_HIVE) {{ + this.pool = new WeightedRandomChestContent[] { + //Materials + weighted(Items.iron_ingot, 0, 1, 3, 10), + weighted(ModItems.ingot_steel, 0, 1, 2, 10), + weighted(ModItems.ingot_aluminium, 0, 1, 2, 10), + weighted(ModItems.scrap, 0, 3, 6, 10), + //Armor + weighted(ModItems.gas_mask_m65, 0, 1, 1, 10), + weighted(ModItems.steel_plate, 0, 1, 1, 5), + weighted(ModItems.steel_legs, 0, 1, 1, 5), + //Gear + weighted(ModItems.steel_pickaxe, 0, 1, 1, 5), + weighted(ModItems.steel_shovel, 0, 1, 1, 5), + //Weapons + weighted(ModItems.gun_maresleg, 0, 1, 1, 5), + weighted(ModItems.gun_light_revolver, 0, 1, 1, 1), + weighted(ModItems.grenade_if_generic, 0, 1, 2, 5), + weighted(ModItems.ammo_standard, EnumAmmo.G12.ordinal(), 4, 4, 10), + weighted(ModItems.ammo_standard, EnumAmmo.M357_SP.ordinal(), 6, 12, 10), + weighted(ModItems.ammo_standard, EnumAmmo.G40_HE.ordinal(), 1, 1, 2), + //Consumables + weighted(ModItems.bottle_nuka, 0, 1, 2, 20), + weighted(ModItems.bottle_quantum, 0, 1, 2, 1), + weighted(ModItems.definitelyfood, 0, 5, 12, 20), + weighted(ModItems.egg_glyphid, 0, 1, 3, 30), + weighted(ModItems.syringe_metal_stimpak, 0, 1, 1, 5), + weighted(ModItems.iv_blood, 0, 1, 1, 10), + weighted(Items.experience_bottle, 0, 1, 3, 5), + }; + }}; + + //items found in glyphid bone piles + new ItemPool(POOL_PILE_BONES) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.bone, 0, 1, 1, 10), + weighted(Items.rotten_flesh, 0, 1, 1, 5), + weighted(ModItems.biomass, 0, 1, 1, 2) + }; + }}; + + //bottlecap stashess + new ItemPool(POOL_PILE_CAPS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.cap_nuka, 0, 4, 4, 20), + weighted(ModItems.cap_quantum, 0, 4, 4, 3), + weighted(ModItems.cap_sparkle, 0, 4, 4, 1), + }; + }}; + + //medicine stashes + new ItemPool(POOL_PILE_MED_SYRINGE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.syringe_metal_stimpak, 0, 1, 1, 10), + weighted(ModItems.syringe_metal_medx, 0, 1, 1, 5), + weighted(ModItems.syringe_metal_psycho, 0, 1, 1, 5), + }; + }}; + new ItemPool(POOL_PILE_MED_PILLS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.radaway, 0, 1, 1, 10), + weighted(ModItems.radx, 0, 1, 1, 10), + weighted(ModItems.iv_blood, 0, 1, 1, 15), + weighted(ModItems.siox, 0, 1, 1, 5), + }; + }}; + + //makeshift gun + new ItemPool(POOL_PILE_MAKESHIFT_GUN) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.gun_maresleg, 0, 1, 1, 10) }; }}; + new ItemPool(POOL_PILE_MAKESHIFT_WRENCH) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.wrench, 0, 1, 1, 10) }; }}; + new ItemPool(POOL_PILE_MAKESHIFT_PLATES) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.plate_steel, 0, 1, 1, 10) }; }}; + new ItemPool(POOL_PILE_MAKESHIFT_WIRE) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.wire_fine, Mats.MAT_ALUMINIUM.id, 1, 1, 10) }; }}; + + new ItemPool(POOL_PILE_NUKE_STORAGE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD.ordinal(), 1, 1, 50), + weighted(ModItems.ammo_standard, EnumAmmo.NUKE_HIGH.ordinal(), 1, 1, 10), + weighted(ModItems.ammo_standard, EnumAmmo.NUKE_TOTS.ordinal(), 1, 1, 10), + + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java b/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java new file mode 100644 index 000000000..690f2580e --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java @@ -0,0 +1,61 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ItemEnums.EnumSecretType; +import com.hbm.items.ModItems; + +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsRedRoom { + + public static final String POOL_RED_PEDESTAL = "POOL_RED_PEDESTAL"; + public static final String POOL_BLACK_SLAB = "POOL_BLACK_SLAB"; + public static final String POOL_BLACK_PART = "POOL_BLACK_PART"; + + public static void init() { + + //pedestal items + new ItemPool(POOL_RED_PEDESTAL) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ballistic_gauntlet, 0, 1, 1, 10), + weighted(ModItems.armor_polish, 0, 1, 1, 10), + weighted(ModItems.bandaid, 0, 1, 1, 10), + weighted(ModItems.serum, 0, 1, 1, 10), + weighted(ModItems.quartz_plutonium, 0, 1, 1, 10), + weighted(ModItems.morning_glory, 0, 1, 1, 10), + weighted(ModItems.spider_milk, 0, 1, 1, 10), + weighted(ModItems.ink, 0, 1, 1, 10), + weighted(ModItems.heart_container, 0, 1, 1, 10), + weighted(ModItems.black_diamond, 0, 1, 1, 10), + weighted(ModItems.scrumpy, 0, 1, 1, 10), + weighted(ModItems.wild_p, 0, 1, 1, 5), + weighted(ModItems.card_aos, 0, 1, 1, 5), + weighted(ModItems.card_qos, 0, 1, 1, 5), + weighted(ModItems.starmetal_sword, 0, 1, 1, 5), + weighted(ModItems.gem_alexandrite, 0, 1, 1, 5), + weighted(ModItems.crackpipe, 0, 1, 1, 5), + weighted(ModItems.flask_infusion, 0, 1, 1, 5), + weighted(ModBlocks.boxcar, 0, 1, 1, 5), + weighted(ModItems.book_of_, 0, 1, 1, 5), + }; + }}; + + //pedestal weapons + new ItemPool(POOL_BLACK_SLAB) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.clay_tablet, 0, 1, 1, 10) + }; + }}; + + //pedestal weapons + new ItemPool(POOL_BLACK_PART) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.item_secret, EnumSecretType.SELENIUM_STEEL.ordinal(), 4, 4, 10), + weighted(ModItems.item_secret, EnumSecretType.CONTROLLER.ordinal(), 1, 1, 10), + weighted(ModItems.item_secret, EnumSecretType.CANISTER.ordinal(), 1, 1, 10), + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java b/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java new file mode 100644 index 000000000..92a464329 --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java @@ -0,0 +1,61 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsSatellite { + + public static final String POOL_SAT_MINER = "POOL_SAT_MINER"; + public static final String POOL_SAT_LUNAR = "POOL_SAT_LUNAR"; //woona + + public static void init() { + + new ItemPool(POOL_SAT_MINER) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.powder_aluminium, 0, 3, 3, 10), + weighted(ModItems.powder_iron, 0, 3, 3, 10), + weighted(ModItems.powder_titanium, 0, 2, 2, 8), + weighted(ModItems.crystal_tungsten, 0, 2, 2, 7), + weighted(ModItems.powder_coal, 0, 4, 4, 15), + weighted(ModItems.powder_uranium, 0, 2, 2, 5), + weighted(ModItems.powder_plutonium, 0, 1, 1, 5), + weighted(ModItems.powder_thorium, 0, 2, 2, 7), + weighted(ModItems.powder_desh_mix, 0, 3, 3, 5), + weighted(ModItems.powder_diamond, 0, 2, 2, 7), + weighted(Items.redstone, 0, 5, 5, 15), + weighted(ModItems.powder_nitan_mix, 0, 2, 2, 5), + weighted(ModItems.powder_power, 0, 2, 2, 5), + weighted(ModItems.powder_copper, 0, 5, 5, 15), + weighted(ModItems.powder_lead, 0, 3, 3, 10), + weighted(ModItems.fluorite, 0, 4, 4, 15), + weighted(ModItems.powder_lapis, 0, 4, 4, 10), + weighted(ModItems.crystal_aluminium, 0, 1, 1, 5), + weighted(ModItems.crystal_gold, 0, 1, 1, 5), + weighted(ModItems.crystal_phosphorus, 0, 1, 1, 10), + weighted(ModBlocks.gravel_diamond, 0, 1, 1, 3), + weighted(ModItems.crystal_uranium, 0, 1, 1, 3), + weighted(ModItems.crystal_plutonium, 0, 1, 1, 3), + weighted(ModItems.crystal_trixite, 0, 1, 1, 1), + weighted(ModItems.crystal_starmetal, 0, 1, 1, 1), + weighted(ModItems.crystal_lithium, 0, 2 ,2, 4) + }; + }}; + + new ItemPool(POOL_SAT_LUNAR) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModBlocks.moon_turf, 0, 48, 48, 5), + weighted(ModBlocks.moon_turf, 0, 32, 32, 7), + weighted(ModBlocks.moon_turf, 0, 16, 16, 5), + weighted(ModItems.powder_lithium, 0, 3, 3, 5), + weighted(ModItems.powder_iron, 0, 3, 3, 5), + weighted(ModItems.crystal_iron, 0, 1, 1, 1), + weighted(ModItems.crystal_lithium, 0, 1, 1, 1) + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java new file mode 100644 index 000000000..8d8e4778b --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java @@ -0,0 +1,138 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsSingle { + + public static final String POOL_POWDER = "POOL_POWDER"; + public static final String POOL_VAULT_RUSTY = "POOL_VAULT_RUSTY"; + public static final String POOL_VAULT_STANDARD = "POOL_VAULT_STANDARD"; + public static final String POOL_VAULT_REINFORCED = "POOL_VAULT_REINFORCED"; + public static final String POOL_VAULT_UNBREAKABLE = "POOL_VAULT_UNBREAKABLE"; + public static final String POOL_METEORITE_TREASURE = "POOL_METEORITE_TREASURE"; + + public static void init() { + + //powder boxes + new ItemPool(POOL_POWDER) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.powder_neptunium, 0, 1, 32, 1), + weighted(ModItems.powder_iodine, 0, 1, 32, 1), + weighted(ModItems.powder_thorium, 0, 1, 32, 1), + weighted(ModItems.powder_astatine, 0, 1, 32, 1), + weighted(ModItems.powder_neodymium, 0, 1, 32, 1), + weighted(ModItems.powder_caesium, 0, 1, 32, 1), + weighted(ModItems.powder_strontium, 0, 1, 32, 1), + weighted(ModItems.powder_cobalt, 0, 1, 32, 1), + weighted(ModItems.powder_bromine, 0, 1, 32, 1), + weighted(ModItems.powder_niobium, 0, 1, 32, 1), + weighted(ModItems.powder_tennessine, 0, 1, 32, 1), + weighted(ModItems.powder_cerium, 0, 1, 32, 1) + }; + }}; + + new ItemPool(POOL_VAULT_RUSTY) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.gold_ingot, 0, 3, 14, 1), + weighted(ModItems.gun_heavy_revolver, 0, 1, 1, 2), + weighted(ModItems.pin, 0, 8, 8, 1), + weighted(ModItems.gun_am180, 0, 1, 1, 1), + weighted(ModItems.bottle_quantum, 0, 1, 3, 1), + weighted(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), + weighted(ModItems.ammo_standard, EnumAmmo.BMG50_FMJ.ordinal(), 24, 48, 1), + weighted(ModItems.ammo_standard, EnumAmmo.P9_JHP.ordinal(), 48, 64, 2), + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 3, 6, 1), + weighted(ModItems.gas_mask_m65, 0, 1, 1, 1), + weighted(ModItems.grenade_if_he, 0, 1, 1, 1), + weighted(ModItems.grenade_if_incendiary, 0, 1, 1, 1), + weighted(Items.diamond, 0, 1, 2, 1) + }; + }}; + + new ItemPool(POOL_VAULT_STANDARD) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ingot_desh, 0, 2, 6, 1), + weighted(ModItems.battery_advanced_cell_4, 0, 1, 1, 1), + weighted(ModItems.powder_desh_mix, 0, 1, 5, 1), + weighted(Items.diamond, 0, 3, 6, 1), + weighted(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD.ordinal(), 1, 1, 1), + weighted(ModItems.ammo_container, 0, 1, 1, 1), + weighted(ModItems.grenade_nuclear, 0, 1, 1, 1), + weighted(ModItems.grenade_smart, 0, 1, 6, 1), + weighted(ModItems.powder_yellowcake, 0, 16, 24, 1), + weighted(ModItems.gun_uzi, 0, 1, 1, 1), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 12, 16, 1), + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 2, 6, 1) + }; + }}; + + new ItemPool(POOL_VAULT_REINFORCED) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ingot_desh, 0, 6, 16, 1), + weighted(ModItems.battery_lithium, 0, 1, 1, 1), + weighted(ModItems.powder_power, 0, 1, 5, 1), + weighted(ModItems.sat_chip, 0, 1, 1, 1), + weighted(Items.diamond, 0, 5, 9, 1), + weighted(ModItems.warhead_nuclear, 0, 1, 1, 1), + weighted(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD.ordinal(), 1, 3, 1), + weighted(ModItems.ammo_container, 0, 1, 4, 1), + weighted(ModItems.grenade_nuclear, 0, 1, 2, 1), + weighted(ModItems.grenade_mirv, 0, 1, 1, 1), + weighted(ModItems.powder_yellowcake, 0, 26, 42, 1), + weighted(ModItems.ingot_u235, 0, 3, 6, 1), + weighted(ModItems.gun_heavy_revolver, 0, 1, 1, 1), + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 18, 32, 1), + weighted(ModItems.circuit, EnumCircuitType.BASIC.ordinal(), 6, 12, 1) + }; + }}; + + new ItemPool(POOL_VAULT_UNBREAKABLE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ammo_container, 0, 3, 6, 1), + weighted(ModItems.ammo_standard, EnumAmmo.NUKE_DEMO.ordinal(), 2, 3, 1), + weighted(ModItems.gun_carbine, 0, 1, 1, 1), + weighted(ModItems.gun_congolake, 0, 1, 1, 1), + weighted(ModItems.gun_b92, 0, 1, 1, 1), + weighted(ModItems.ingot_combine_steel, 0, 16, 28, 1), + weighted(ModItems.man_core, 0, 1, 1, 1), + weighted(ModItems.boy_kit, 0, 1, 1, 1), + weighted(ModItems.nuke_starter_kit, 0, 1, 1, 1), + weighted(ModItems.weaponized_starblaster_cell, 0, 1, 1, 1), + weighted(ModItems.warhead_mirv, 0, 1, 1, 1), + weighted(ModItems.battery_schrabidium_cell, 0, 1, 1, 1), + weighted(ModItems.powder_nitan_mix, 0, 16, 32, 1) + }; + }}; + + new ItemPool(POOL_METEORITE_TREASURE) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.cobalt_pickaxe, 0, 1, 1, 10), + weighted(ModItems.ingot_zirconium, 0, 1, 16, 10), + weighted(ModItems.ingot_niobium, 0, 1, 16, 10), + weighted(ModItems.ingot_cobalt, 0, 1, 16, 10), + weighted(ModItems.ingot_boron, 0, 1, 16, 10), + weighted(ModItems.ingot_starmetal, 0, 1, 1, 5), + weighted(ModItems.crystal_gold, 0, 1, 4, 10), + weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 4, 8, 10), + weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 2, 4, 10), + weighted(ModItems.definitelyfood, 0, 16, 32, 25), + weighted(ModBlocks.crate_can, 0, 1, 3, 10), + weighted(ModItems.pill_herbal, 0, 1, 2, 10), + weighted(ModItems.serum, 0, 1, 1, 5), + weighted(ModItems.heart_piece, 0, 1, 1, 5), + weighted(ModItems.scrumpy, 0, 1, 1, 5), + weighted(ModItems.launch_code_piece, 0, 1, 1, 5), + weighted(ModItems.egg_glyphid, 0, 1, 1, 5), + weighted(ModItems.gem_alexandrite, 0, 1, 1, 1), + }; + }}; + } +} diff --git a/src/main/java/com/hbm/items/IEquipReceiver.java b/src/main/java/com/hbm/items/IEquipReceiver.java index 1f0c76ecd..62746e4b0 100644 --- a/src/main/java/com/hbm/items/IEquipReceiver.java +++ b/src/main/java/com/hbm/items/IEquipReceiver.java @@ -1,9 +1,10 @@ package com.hbm.items; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; public interface IEquipReceiver { - public void onEquip(EntityPlayer player); + public void onEquip(EntityPlayer player, ItemStack stack); } diff --git a/src/main/java/com/hbm/items/IKeybindReceiver.java b/src/main/java/com/hbm/items/IKeybindReceiver.java new file mode 100644 index 000000000..5a44b4cce --- /dev/null +++ b/src/main/java/com/hbm/items/IKeybindReceiver.java @@ -0,0 +1,12 @@ +package com.hbm.items; + +import com.hbm.handler.HbmKeybinds.EnumKeybind; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public interface IKeybindReceiver { + + public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind); + public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state); +} diff --git a/src/main/java/com/hbm/items/ISyncButtons.java b/src/main/java/com/hbm/items/ISyncButtons.java deleted file mode 100644 index e06e3e78c..000000000 --- a/src/main/java/com/hbm/items/ISyncButtons.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.items; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.MouseEvent; - -public interface ISyncButtons { - - public boolean canReceiveMouse(EntityPlayer player, ItemStack stack, MouseEvent event, int button, boolean buttonstate); - public void receiveMouse(EntityPlayer player, ItemStack stack, int button, boolean buttonstate); -} diff --git a/src/main/java/com/hbm/items/ItemAmmoEnums.java b/src/main/java/com/hbm/items/ItemAmmoEnums.java index d42eb4015..03b5219e8 100644 --- a/src/main/java/com/hbm/items/ItemAmmoEnums.java +++ b/src/main/java/com/hbm/items/ItemAmmoEnums.java @@ -4,34 +4,9 @@ import java.util.Set; import com.google.common.collect.ImmutableSet; import com.hbm.items.weapon.ItemAmmo.AmmoItemTrait; -import com.hbm.lib.HbmCollection; public class ItemAmmoEnums { - public enum AmmoLunaticSniper implements IAmmoItemEnum { - SABOT("ammo_luna"), - INCENDIARY("ammo_luna_incendiary"), - EXPLOSIVE("ammo_luna_explosive"); - - private final Set traits; - private final String unloc; - - private AmmoLunaticSniper(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - public enum AmmoFireExt implements IAmmoItemEnum { WATER("ammo_fireext"), FOAM("ammo_fireext_foam"), @@ -55,33 +30,7 @@ public class ItemAmmoEnums { return unloc; } } - - public enum AmmoFlamethrower implements IAmmoItemEnum { - DIESEL("ammo_fuel"), - NAPALM("ammo_fuel_napalm", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_HEAVY_WEAR), - PHOSPHORUS("ammo_fuel_phosphorus", AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_SING_PROJECTILE, AmmoItemTrait.CON_HEAVY_WEAR), - VAPORIZER("ammo_fuel_vaporizer", AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.PRO_FLAMES, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_ERASER, AmmoItemTrait.CON_ACCURACY2, AmmoItemTrait.CON_RANGE2, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_LING_FIRE), - CHLORINE("ammo_fuel_gas", AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.PRO_POISON_GAS, AmmoItemTrait.CON_NO_DAMAGE, AmmoItemTrait.CON_NO_FIRE); - - private final Set traits; - private final String unloc; - - private AmmoFlamethrower(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - + public enum AmmoMisc implements IAmmoItemEnum { //LUNA_SNIPER("ammo_lunar", Gun50BMGFactory.getLunaticSabotRound(), AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.NEU_HEAVY_METAL), DGK("ammo_dkg"); @@ -105,166 +54,6 @@ public class ItemAmmoEnums { } } - public enum AmmoStinger implements IAmmoItemEnum { - STOCK("ammo_stinger_rocket"), - HE("ammo_stinger_rocket_he", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), - INCENDIARY("ammo_stinger_rocket_incendiary", HbmCollection.IncendiaryType), - NUCLEAR("ammo_stinger_rocket_nuclear", AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.CON_SUPER_WEAR), - BONES("ammo_stinger_rocket_bones"); - - private final Set traits; - private final String unloc; - - private AmmoStinger(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private AmmoStinger(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum AmmoRocket implements IAmmoItemEnum { - STOCK("ammo_rocket"), - HE("ammo_rocket_he", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), - INCENDIARY("ammo_rocket_incendiary", HbmCollection.IncendiaryType), - EMP("ammo_rocket_emp", AmmoItemTrait.PRO_EMP, AmmoItemTrait.CON_RADIUS), - SLEEK("ammo_rocket_sleek", AmmoItemTrait.PRO_RADIUS_HIGH, AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.CON_SPEED), - SHRAPNEL("ammo_rocket_shrapnel", AmmoItemTrait.PRO_SHRAPNEL), - GLARE("ammo_rocket_glare", AmmoItemTrait.PRO_SPEED, AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), - NUCLEAR("ammo_rocket_nuclear", AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.CON_SUPER_WEAR, AmmoItemTrait.CON_SPEED), - CHLORINE("ammo_rocket_toxic", AmmoItemTrait.PRO_CHLORINE, AmmoItemTrait.CON_NO_EXPLODE1, AmmoItemTrait.CON_SPEED), - RPC("ammo_rocket_rpc", AmmoItemTrait.PRO_CHAINSAW, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_NO_EXPLODE1, AmmoItemTrait.NEU_UHH ), - PHOSPHORUS("ammo_rocket_phosphorus", HbmCollection.PhosphorusTypeSpecial), - CANISTER("ammo_rocket_canister"), - DIGAMMA("ammo_rocket_digamma"); - - private final Set traits; - private final String unloc; - - private AmmoRocket(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private AmmoRocket(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum AmmoGrenade implements IAmmoItemEnum { - STOCK("ammo_grenade"), - HE("ammo_grenade_he", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), - INCENDIARY("ammo_grenade_incendiary", AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), - PHOSPHORUS("ammo_grenade_phosphorus", AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_WEAR), - CHLORINE("ammo_grenade_toxic", AmmoItemTrait.PRO_CHLORINE, AmmoItemTrait.CON_NO_EXPLODE1), - SLEEK("ammo_grenade_sleek", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.NEU_JOLT), - CONCUSSION("ammo_grenade_concussion", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), - FINNED("ammo_grenade_finned", AmmoItemTrait.PRO_GRAVITY, AmmoItemTrait.CON_RADIUS), - NUCLEAR("ammo_grenade_nuclear", AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_HEAVY_WEAR), - TRACER("ammo_grenade_tracer", AmmoItemTrait.NEU_BLANK), - KAMPF("ammo_grenade_kampf", AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.CON_WEAR); - - private final Set traits; - private final String unloc; - - private AmmoGrenade(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum AmmoFatman implements IAmmoItemEnum { - STOCK("ammo_nuke"), - LOW("ammo_nuke_low", AmmoItemTrait.CON_RADIUS), - HIGH("ammo_nuke_high", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_FALLOUT), - TOTS("ammo_nuke_tots", AmmoItemTrait.PRO_BOMB_COUNT, AmmoItemTrait.NEU_FUN, AmmoItemTrait.CON_ACCURACY2, AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_MIRV), - SAFE("ammo_nuke_safe", AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), - PUMPKIN("ammo_nuke_pumpkin", AmmoItemTrait.CON_NN), - MIRV("ammo_mirv"), - MIRV_LOW("ammo_mirv_low", AmmoItemTrait.CON_RADIUS), - MIRV_HIGH("ammo_mirv_high", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_FALLOUT), - MIRV_SAFE("ammo_mirv_safe", AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), - MIRV_SPECIAL("ammo_mirv_special"), - BALEFIRE("gun_bf_ammo"), - BARREL("ammo_nuke_barrel"); - - private final Set traits; - private final String unloc; - - private AmmoFatman(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum AmmoDart implements IAmmoItemEnum { - GPS("ammo_dart"), - NUCLEAR("ammo_dart_nuclear"), - NERF("ammo_dart_nerf"); - - private final Set traits; - private final String unloc; - - private AmmoDart(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - public enum Ammo240Shell implements IAmmoItemEnum { STOCK("ammo_shell"), EXPLOSIVE("ammo_shell_explosive"), @@ -291,463 +80,6 @@ public class ItemAmmoEnums { } } - public enum Ammo9mm implements IAmmoItemEnum { - STOCK("ammo_9mm"), - AP("ammo_9mm_ap", HbmCollection.APType), - DU("ammo_9mm_du", HbmCollection.DUType), - CHLOROPHYTE("ammo_9mm_chlorophyte", HbmCollection.ChlorophyteType), - ROCKET("ammo_9mm_rocket", AmmoItemTrait.PRO_ROCKET, AmmoItemTrait.NEU_UHH); - - private final Set traits; - private final String unloc; - - private Ammo9mm(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo9mm(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo762NATO implements IAmmoItemEnum { - STOCK("ammo_762"), - AP("ammo_762_ap", HbmCollection.APType), - DU("ammo_762_du", HbmCollection.DUType), - TRACER("ammo_762_tracer", AmmoItemTrait.NEU_TRACER), - PHOSPHORUS("ammo_762_phosphorus", HbmCollection.PhosphorusType), - BLANK("ammo_762_k", AmmoItemTrait.NEU_BLANK); - - private final Set traits; - private final String unloc; - - private Ammo762NATO(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo762NATO(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo75Bolt implements IAmmoItemEnum { - STOCK("ammo_75bolt"), - INCENDIARY("ammo_75bolt_incendiary"), - HE("ammo_75bolt_he"); - - private final Set traits; - private final String unloc; - - private Ammo75Bolt(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo5mm implements IAmmoItemEnum { - STOCK("ammo_5mm"), - EXPLOSIVE("ammo_5mm_explosive", HbmCollection.ExplosiveType), - DU("ammo_5mm_du", HbmCollection.DUType), - STAR("ammo_5mm_star", HbmCollection.StarmetalType), - CHLOROPHYTE("ammo_5mm_chlorophyte", HbmCollection.ChlorophyteType); - - private final Set traits; - private final String unloc; - - private Ammo5mm(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo5mm(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo556mm implements IAmmoItemEnum { - STOCK("ammo_556"), - GOLD("gun_pm_ammo"), - PHOSPHORUS("ammo_556_phosphorus", HbmCollection.PhosphorusType), - AP("ammo_556_ap", HbmCollection.APType), - DU("ammo_556_du", HbmCollection.DUType), - STAR("ammo_556_star", HbmCollection.StarmetalType), - CHLOROPHYTE("ammo_556_chlorophyte", HbmCollection.ChlorophyteType), - SLEEK("ammo_556_sleek", AmmoItemTrait.NEU_MASKMAN_METEORITE), - TRACER("ammo_556_tracer", AmmoItemTrait.NEU_TRACER), - FLECHETTE("ammo_556_flechette", HbmCollection.FlechetteType), - FLECHETTE_INCENDIARY("ammo_556_flechette_incendiary", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION), - FLECHETTE_PHOSPHORUS("ammo_556_flechette_phosphorus", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME2, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION), - FLECHETTE_DU("ammo_556_flechette_du", AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_HEAVY_WEAR), - FLECHETTE_CHLOROPHYTE("ammo_556_flechette_chlorophyte", HbmCollection.ChlorophyteType), - FLECHETTE_SLEEK("ammo_556_flechette_sleek", AmmoItemTrait.NEU_MASKMAN_METEORITE), - K("ammo_556_k", AmmoItemTrait.NEU_BLANK); - - private final Set traits; - private final String unloc; - - private Ammo556mm(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo556mm(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo50BMG implements IAmmoItemEnum { - STOCK("ammo_50bmg"), - INCENDIARY("ammo_50bmg_incendiary", HbmCollection.IncendiaryType), - PHOSPHORUS("ammo_50bmg_phosphorus", HbmCollection.PhosphorusType), - EXPLOSIVE("ammo_50bmg_explosive", HbmCollection.ExplosiveType), - AP("ammo_50bmg_ap", HbmCollection.APType), - DU("ammo_50bmg_du", HbmCollection.DUType), - STAR("ammo_50bmg_star", HbmCollection.StarmetalType), - CHLOROPHYTE("ammo_50bmg_chlorophyte", HbmCollection.ChlorophyteType), - SLEEK("ammo_50bmg_sleek", AmmoItemTrait.NEU_MASKMAN_METEORITE), - FLECHETTE("ammo_50bmg_flechette", AmmoItemTrait.PRO_DAMAGE), - FLECHETTE_AM("ammo_50bmg_flechette_am", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_UHH), - FLECHETTE_PO("ammo_50bmg_flechette_po", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_UHH); - - private final Set traits; - private final String unloc; - - private Ammo50BMG(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo50BMG(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo50AE implements IAmmoItemEnum { - STOCK("ammo_50ae"), - AP("ammo_50ae_ap", HbmCollection.APType), - DU("ammo_50ae_du", HbmCollection.DUType), - STAR("ammo_50ae_star", HbmCollection.StarmetalType), - CHLOROPHYTE("ammo_50ae_chlorophyte", HbmCollection.ChlorophyteType); - - private final Set traits; - private final String unloc; - - private Ammo50AE(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo50AE(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo4Gauge implements IAmmoItemEnum { - STOCK("ammo_4gauge"), - SLUG("ammo_4gauge_slug", AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - FLECHETTE("ammo_4gauge_flechette", HbmCollection.FlechetteType), - FLECHETTE_PHOSPHORUS("ammo_4gauge_flechette_phosphorus", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME2, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR), - EXPLOSIVE("ammo_4gauge_explosive", AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_40MM, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - MINING("ammo_4gauge_semtex", AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_MINING, AmmoItemTrait.CON_NO_EXPLODE3, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - BALEFIRE("ammo_4gauge_balefire", AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_BALEFIRE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - KAMPF("ammo_4gauge_kampf", AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - CANISTER("ammo_4gauge_canister"), - SLEEK("ammo_4gauge_sleek", AmmoItemTrait.NEU_MASKMAN_FLECHETTE), - CLAW("ammo_4gauge_claw"), - VAMPIRE("ammo_4gauge_vampire"), - VOID("ammo_4gauge_void"), - QUACK("ammo_4gauge_titan", AmmoItemTrait.PRO_MARAUDER, AmmoItemTrait.NEU_NO_CON); - - private final Set traits; - private final String unloc; - - private Ammo4Gauge(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo4Gauge(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo45ACP implements IAmmoItemEnum { - STOCK("ammo_45"), - AP("ammo_45_ap", HbmCollection.APType), - DU("ammo_45_du", HbmCollection.DUType); - - private final Set traits; - private final String unloc; - - private Ammo45ACP(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo45ACP(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo44Magnum implements IAmmoItemEnum { - STOCK("ammo_44"), - AP("ammo_44_ap", HbmCollection.APType), - DU("ammo_44_du", HbmCollection.DUType), - PHOSPHORUS("ammo_44_phosphorus", HbmCollection.PhosphorusType), - STAR("ammo_44_star", HbmCollection.StarmetalType), - CHLOROPHYTE("ammo_44_chlorophyte", HbmCollection.ChlorophyteType), - PIP("ammo_44_pip", AmmoItemTrait.NEU_BOXCAR, AmmoItemTrait.CON_DAMAGE), - BJ("ammo_44_bj", AmmoItemTrait.NEU_BOAT, AmmoItemTrait.CON_DAMAGE), - SILVER("ammo_44_silver", AmmoItemTrait.NEU_BUILDING, AmmoItemTrait.CON_DAMAGE), - ROCKET("ammo_44_rocket", AmmoItemTrait.PRO_ROCKET, AmmoItemTrait.NEU_UHH); - - private final Set traits; - private final String unloc; - - private Ammo44Magnum(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo44Magnum(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo357Magnum implements IAmmoItemEnum { - IRON("gun_revolver_iron_ammo"), - LEAD("gun_revolver_ammo"), - NUCLEAR("gun_revolver_lead_ammo"), - GOLD("gun_revolver_gold_ammo"), - DESH("ammo_357_desh", AmmoItemTrait.PRO_FIT_357, AmmoItemTrait.PRO_DAMAGE_SLIGHT), - SCHRABIDIUM("gun_revolver_schrabidium_ammo"), - STEEL("gun_revolver_cursed_ammo"), - NIGHTMARE1("gun_revolver_nightmare_ammo"), - NIGHTMARE2("gun_revolver_nightmare2_ammo"); - - private final Set traits; - private final String unloc; - - private Ammo357Magnum(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo22LR implements IAmmoItemEnum { - STOCK("ammo_22lr"), - AP("ammo_22lr_ap", HbmCollection.APType), - CHLOROPHYTE("ammo_22lr_chlorophyte", HbmCollection.ChlorophyteType); - - private final Set traits; - private final String unloc; - - private Ammo22LR(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo22LR(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo20Gauge implements IAmmoItemEnum { - STOCK("ammo_20gauge"), - SLUG("ammo_20gauge_slug", AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - FLECHETTE("ammo_20gauge_flechette", HbmCollection.FlechetteType), - INCENDIARY("ammo_20gauge_incendiary", AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), - SHRAPNEL("ammo_20gauge_shrapnel", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_MORE_BOUNCY, AmmoItemTrait.CON_WEAR), - EXPLOSIVE("ammo_20gauge_explosive", HbmCollection.ExplosiveType), - CAUSTIC("ammo_20gauge_caustic", AmmoItemTrait.PRO_TOXIC, AmmoItemTrait.PRO_CAUSTIC, AmmoItemTrait.NEU_NO_BOUNCE, AmmoItemTrait.CON_HEAVY_WEAR), - SHOCK("ammo_20gauge_shock", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_STUNNING, AmmoItemTrait.PRO_EMP, AmmoItemTrait.NEU_NO_BOUNCE, AmmoItemTrait.CON_HEAVY_WEAR), - WITHER("ammo_20gauge_wither", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WITHERING), - SLEEK("ammo_20gauge_sleek", AmmoItemTrait.NEU_MASKMAN_FLECHETTE); - - private final Set traits; - private final String unloc; - - private Ammo20Gauge(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - private Ammo20Gauge(String unloc, Set traits) { - this.traits = traits; - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - - public enum Ammo12Gauge implements IAmmoItemEnum { - STOCK("ammo_12gauge"), - INCENDIARY("ammo_12gauge_incendiary", AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), - SHRAPNEL("ammo_12gauge_shrapnel", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_MORE_BOUNCY, AmmoItemTrait.CON_WEAR), - DU("ammo_12gauge_du", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.CON_HEAVY_WEAR), - MARAUDER("ammo_12gauge_marauder", AmmoItemTrait.PRO_MARAUDER, AmmoItemTrait.NEU_NO_CON), - SLEEK("ammo_12gauge_sleek", AmmoItemTrait.NEU_MASKMAN_FLECHETTE), - PERCUSSION("ammo_12gauge_percussion", AmmoItemTrait.PRO_PERCUSSION, AmmoItemTrait.CON_NO_PROJECTILE); - - private final Set traits; - private final String unloc; - - private Ammo12Gauge(String unloc, AmmoItemTrait... traits) { - this.traits = safeAssign(traits); - this.unloc = unloc; - } - - @Override - public Set getTraits() { - return traits; - } - - @Override - public String getInternalName() { - return unloc; - } - } - public interface IAmmoItemEnum { public Set getTraits(); public String getInternalName(); diff --git a/src/main/java/com/hbm/items/ItemCustomLore.java b/src/main/java/com/hbm/items/ItemCustomLore.java index 8ca98815c..15dab0dd7 100644 --- a/src/main/java/com/hbm/items/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/ItemCustomLore.java @@ -17,7 +17,8 @@ import net.minecraft.util.EnumChatFormatting; public class ItemCustomLore extends Item { - EnumRarity rarity; + protected EnumRarity rarity; + protected boolean hasEffect = false; @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { @@ -50,23 +51,27 @@ public class ItemCustomLore extends Item { if(this == ModItems.undefined) { - if(player.worldObj.rand.nextInt(10) == 0) { - list.add(EnumChatFormatting.DARK_RED + "UNDEFINED"); - } else { - Random rand = new Random(System.currentTimeMillis() / 500); - - if(setSize == 0) - setSize = Item.itemRegistry.getKeys().size(); - - int r = rand.nextInt(setSize); - - Item item = Item.getItemById(r); - - if(item != null) { - list.add(new ItemStack(item).getDisplayName()); + try { + if(player.worldObj.rand.nextInt(10) == 0) { + list.add(EnumChatFormatting.DARK_RED + "UNDEFINED"); } else { - list.add(EnumChatFormatting.RED + "ERROR #" + r); + Random rand = new Random(System.currentTimeMillis() / 500); + + if(setSize == 0) + setSize = Item.itemRegistry.getKeys().size(); + + int r = rand.nextInt(setSize); + + Item item = Item.getItemById(r); + + if(item != null) { + list.add(new ItemStack(item).getDisplayName()); + } else { + list.add(EnumChatFormatting.RED + "ERROR #" + r); + } } + } catch(Exception ex) { + list.add(EnumChatFormatting.DARK_RED + "UNDEFINED"); } } } @@ -80,21 +85,19 @@ public class ItemCustomLore extends Item { @Override @SideOnly(Side.CLIENT) - public boolean hasEffect(ItemStack p_77636_1_) { - if(this == ModItems.rune_isa || this == ModItems.rune_dagaz || - this == ModItems.rune_hagalaz || this == ModItems.rune_jera || - this == ModItems.rune_thurisaz || this == ModItems.egg_balefire_shard || - this == ModItems.egg_balefire) { - return true; - } - - return false; + public boolean hasEffect(ItemStack stack) { + return hasEffect; } public ItemCustomLore setRarity(EnumRarity rarity) { this.rarity = rarity; return this; } + + public ItemCustomLore setEffect() { + this.hasEffect = true; + return this; + } @Override public Item setUnlocalizedName(String uloc) { diff --git a/src/main/java/com/hbm/items/ItemEnumMulti.java b/src/main/java/com/hbm/items/ItemEnumMulti.java index 8085625d1..3d677b7ff 100644 --- a/src/main/java/com/hbm/items/ItemEnumMulti.java +++ b/src/main/java/com/hbm/items/ItemEnumMulti.java @@ -3,6 +3,7 @@ package com.hbm.items; import java.util.List; import java.util.Locale; +import com.hbm.interfaces.IOrderedEnum; import com.hbm.lib.RefStrings; import com.hbm.util.EnumUtil; @@ -31,8 +32,12 @@ public class ItemEnumMulti extends Item { @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < theEnum.getEnumConstants().length; i++) { - list.add(new ItemStack(item, 1, i)); + + Enum[] order = theEnum.getEnumConstants(); + if(order[0] instanceof IOrderedEnum) order = ((IOrderedEnum) order[0]).getOrder(); + + for(int i = 0; i < order.length; i++) { + list.add(new ItemStack(item, 1, order[i].ordinal())); } } diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index c1424f43f..ae35cb4c3 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -23,6 +23,15 @@ public class ItemEnums { PARAFFIN } + public static enum EnumAshType { + WOOD, + COAL, + MISC, + FLY, + SOOT, + FULLERENE + } + public static enum EnumBriquetteType { COAL, LIGNITE, @@ -41,6 +50,10 @@ public class ItemEnums { MUSTARDWILLOW } + public static enum EnumChunkType { + RARE + } + public static enum EnumAchievementType { GOFISH, ACID, @@ -50,6 +63,24 @@ public class ItemEnums { DIGAMMAKNOW, DIGAMMAKAUAIMOHO, DIGAMMAUPONTOP, - DIGAMMAFOROURRIGHT + DIGAMMAFOROURRIGHT, + QUESTIONMARK + } + + public static enum EnumFuelAdditive { + ANTIKNOCK, + DEICER + } + + public static enum EnumPages { + PAGE1, PAGE2, PAGE3, PAGE4, PAGE5, PAGE6, PAGE7, PAGE8 + } + + public static enum EnumSecretType { + CANISTER, CONTROLLER, SELENIUM_STEEL + } + + public static enum EnumCasingType { + SMALL, LARGE, SMALL_STEEL, LARGE_STEEL, SHOTSHELL, BUCKSHOT, BUCKSHOT_ADVANCED } } diff --git a/src/main/java/com/hbm/items/ItemGenericPart.java b/src/main/java/com/hbm/items/ItemGenericPart.java index 67e129cfd..e66ba0904 100644 --- a/src/main/java/com/hbm/items/ItemGenericPart.java +++ b/src/main/java/com/hbm/items/ItemGenericPart.java @@ -12,7 +12,9 @@ public class ItemGenericPart extends ItemEnumMulti { public static enum EnumPartType { PISTON_PNEUMATIC("piston_pneumatic"), PISTON_HYDRAULIC("piston_hydraulic"), - PISTON_ELECTRIC("piston_electric"); + PISTON_ELECTRIC("piston_electric"), + LDE("low_density_element"), + HDE("heavy_duty_element"); private String texName; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1eaafb213..8e563aee3 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -9,6 +9,7 @@ import com.hbm.handler.WeaponAbility; import com.hbm.handler.guncfg.*; import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.Mats; import com.hbm.items.ItemAmmoEnums.*; @@ -17,23 +18,25 @@ import com.hbm.items.armor.*; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.items.bomb.*; import com.hbm.items.food.*; -import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.machine.*; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemPlateFuel.FunctionEnum; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemRBMKRod.EnumBurnFunc; import com.hbm.items.machine.ItemRBMKRod.EnumDepleteFunc; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemStamp.StampType; -import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.*; import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.items.tool.*; import com.hbm.items.tool.ItemToolAbility.EnumToolType; import com.hbm.items.weapon.*; -import com.hbm.items.weapon.ItemMissile.*; -import com.hbm.items.weapon.gununified.ItemEnergyGunBase; +import com.hbm.items.weapon.ItemCustomMissilePart.*; +import com.hbm.items.weapon.ItemMissile.MissileFormFactor; +import com.hbm.items.weapon.ItemMissile.MissileFuel; +import com.hbm.items.weapon.ItemMissile.MissileTier; +import com.hbm.items.weapon.sedna.factory.GunFactory; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; @@ -72,11 +75,6 @@ public class ModItems { public static Item redstone_sword; public static Item big_sword; - public static Item test_helmet; - public static Item test_chestplate; - public static Item test_leggings; - public static Item test_boots; - public static Item ingot_th232; public static Item ingot_uranium; public static Item ingot_u233; @@ -103,6 +101,8 @@ public class ModItems { public static Item ingot_titanium; public static Item ingot_cobalt; public static Item sulfur; + public static Item nitra; + public static Item nitra_small; public static Item coke; public static Item lignite; @@ -110,6 +110,9 @@ public class ModItems { public static Item briquette; public static Item coal_infernal; public static Item cinnebar; + public static Item powder_ash; + public static Item powder_limestone; + public static Item powder_cement; public static Item niter; public static Item ingot_copper; @@ -138,6 +141,9 @@ public class ModItems { public static Item ingot_advanced_alloy; public static Item ingot_tcalloy; public static Item ingot_cdalloy; + public static Item ingot_bismuth_bronze; + public static Item ingot_arsenic_bronze; + public static Item ingot_bscco; public static Item lithium; public static Item ingot_zirconium; public static Item ingot_hes; @@ -160,19 +166,9 @@ public class ModItems { public static Item nugget_gh336; public static Item ingot_australium; - public static Item ingot_weidanium; - public static Item ingot_reiium; - public static Item ingot_unobtainium; - public static Item ingot_daffergon; - public static Item ingot_verticium; public static Item nugget_australium; public static Item nugget_australium_lesser; public static Item nugget_australium_greater; - public static Item nugget_weidanium; - public static Item nugget_reiium; - public static Item nugget_unobtainium; - public static Item nugget_daffergon; - public static Item nugget_verticium; public static Item ingot_desh; public static Item nugget_desh; @@ -183,6 +179,10 @@ public class ModItems { public static Item nugget_tetraneutronium; public static Item powder_tetraneutronium; public static Item ingot_starmetal; + public static Item ingot_gunmetal; + public static Item plate_gunmetal; + public static Item ingot_weaponsteel; + public static Item plate_weaponsteel; public static Item ingot_saturnite; public static Item plate_saturnite; public static Item ingot_ferrouranium; @@ -205,6 +205,9 @@ public class ModItems { public static Item ore_seared; //public static Item ore_radcleaned; public static Item ore_enriched; //final stage + public static Item bedrock_ore_base; + public static Item bedrock_ore; + public static Item bedrock_ore_fragment; public static Item billet_uranium; public static Item billet_u233; @@ -285,8 +288,6 @@ public class ModItems { public static Item nugget_actinium; public static Item plate_titanium; public static Item plate_aluminium; - public static Item wire_red_copper; - public static Item wire_tungsten; public static Item neutron_reflector; public static Item ingot_steel; public static Item plate_steel; @@ -299,10 +300,15 @@ public class ModItems { public static Item nugget_arsenic; public static Item ingot_tantalium; public static Item nugget_tantalium; + public static Item ingot_silicon; + public static Item billet_silicon; + public static Item nugget_silicon; public static Item ingot_niobium; + public static Item nugget_niobium; public static Item ingot_osmiridium; public static Item nugget_osmiridium; public static Item plate_lead; + public static Item plate_dura_steel; public static Item nugget_schrabidium; public static Item plate_schrabidium; public static Item plate_copper; @@ -320,14 +326,12 @@ public class ModItems { public static Item plate_combine_steel; public static Item plate_mixed; public static Item plate_paa; - public static Item board_copper; - public static Item bolt_dura_steel; public static Item pipes_steel; public static Item drill_titanium; public static Item plate_dalekanium; public static Item plate_euphemium; - public static Item bolt_tungsten; - public static Item bolt_compound; + public static Item bolt; + public static Item bolt_spike; public static Item plate_polymer; public static Item plate_kevlar; public static Item plate_dineutronium; @@ -338,14 +342,17 @@ public class ModItems { public static Item thruster_nuclear; public static Item safety_fuse; public static Item part_generic; + public static Item item_secret; public static Item chemical_dye; public static Item crayon; public static Item undefined; - + + public static Item ball_resin; public static Item ingot_dura_steel; public static Item ingot_polymer; public static Item ingot_bakelite; + public static Item ingot_biorubber; public static Item ingot_rubber; public static Item ingot_pet; public static Item ingot_pc; @@ -360,6 +367,7 @@ public class ModItems { public static Item powder_cadmium; public static Item powder_bismuth; public static Item ingot_mud; + public static Item ingot_cft; public static Item ingot_lanthanium; public static Item ingot_actinium; @@ -414,9 +422,11 @@ public class ModItems { public static Item crystal_cinnebar; public static Item crystal_trixite; public static Item crystal_osmiridium; - + + public static Item gem_sodalite; public static Item gem_tantalium; public static Item gem_volcanic; + public static Item gem_rad; public static Item gem_alexandrite; public static Item powder_lead; @@ -480,14 +490,9 @@ public class ModItems { public static Item powder_steel; public static Item powder_lithium; public static Item powder_zirconium; - public static Item redstone_depleted; + public static Item powder_sodium; public static Item powder_australium; - public static Item powder_weidanium; - public static Item powder_reiium; - public static Item powder_unobtainium; - public static Item powder_daffergon; - public static Item powder_verticium; public static Item powder_dura_steel; public static Item powder_polymer; @@ -514,6 +519,7 @@ public class ModItems { public static Item powder_impure_osmiridium; public static Item powder_borax; public static Item powder_chlorocalcite; + public static Item powder_molysite; public static Item powder_lanthanium; public static Item powder_actinium; @@ -526,7 +532,6 @@ public class ModItems { public static Item powder_spark_mix; public static Item powder_yellowcake; public static Item powder_magic; - public static Item powder_cloud; public static Item powder_balefire; public static Item powder_sawdust; public static Item powder_flux; @@ -541,6 +546,7 @@ public class ModItems { public static Item fragment_boron; public static Item fragment_meteorite; public static Item fragment_coltan; + public static Item chunk_ore; public static Item biomass; public static Item biomass_compressed; @@ -555,27 +561,16 @@ public class ModItems { public static Item motor_desh; public static Item motor_bismuth; public static Item centrifuge_element; - //public static Item centrifuge_tower; public static Item reactor_core; public static Item rtg_unit; - //public static Item thermo_unit_empty; - //public static Item thermo_unit_endo; - //public static Item thermo_unit_exo; public static Item levitation_unit; - public static Item wire_aluminium; - public static Item wire_copper; - public static Item wire_gold; - public static Item wire_schrabidium; - public static Item wire_advanced_alloy; + public static Item coil_advanced_alloy; public static Item coil_advanced_torus; - public static Item wire_magnetized_tungsten; public static Item coil_magnetized_tungsten; public static Item coil_gold; public static Item coil_gold_torus; - //public static Item magnet_dee; public static Item magnet_circular; - //public static Item cyclotron_tower; public static Item component_limiter; public static Item component_emitter; public static Item chlorine_pinwheel; @@ -583,18 +578,8 @@ public class ModItems { public static Item parts_legendary; - public static Item circuit_raw; - public static Item circuit_aluminium; - public static Item circuit_copper; - public static Item circuit_red_copper; - public static Item circuit_gold; - public static Item circuit_schrabidium; - public static Item circuit_bismuth_raw; - public static Item circuit_bismuth; - public static Item circuit_arsenic_raw; - public static Item circuit_arsenic; - public static Item circuit_tantalium_raw; - public static Item circuit_tantalium; + public static Item circuit; + public static Item crt_display; public static ItemEnumMulti circuit_star_piece; public static ItemEnumMulti circuit_star_component; @@ -607,17 +592,7 @@ public class ModItems { public static Item mechanism_launcher_1; public static Item mechanism_launcher_2; public static Item mechanism_special; - - public static Item primer_357; - public static Item primer_44; - public static Item primer_9; - public static Item primer_50; - public static Item primer_buckshot; - public static Item casing_357; - public static Item casing_44; - public static Item casing_9; - public static Item casing_50; - public static Item casing_buckshot; + public static Item assembly_iron; public static Item assembly_steel; public static Item assembly_lead; @@ -638,25 +613,11 @@ public class ModItems { public static Item assembly_nuke; public static Item assembly_luna; - public static Item folly_shell; - public static Item folly_bullet; - public static Item folly_bullet_nuclear; - public static Item folly_bullet_du; - - public static Item circuit_targeting_tier1; - public static Item circuit_targeting_tier2; - public static Item circuit_targeting_tier3; - public static Item circuit_targeting_tier4; - public static Item circuit_targeting_tier5; - public static Item circuit_targeting_tier6; + public static Item casing; public static Item wiring_red_copper; - - public static Item hull_small_steel; - public static Item hull_small_aluminium; - public static Item hull_big_steel; - public static Item hull_big_aluminium; - public static Item hull_big_titanium; + public static Item shell; + public static Item pipe; public static Item fins_flat; public static Item fins_small_steel; public static Item fins_big_steel; @@ -665,14 +626,10 @@ public class ModItems { public static Item sphere_steel; public static Item pedestal_steel; public static Item dysfunctional_reactor; - public static Item rotor_steel; - public static Item generator_steel; public static Item blade_titanium; public static Item turbine_titanium; - public static Item generator_front; public static Item blade_tungsten; public static Item turbine_tungsten; - public static Item pellet_coal; public static Item ring_starmetal; public static Item flywheel_beryllium; @@ -696,11 +653,8 @@ public class ModItems { public static Item warhead_buster_medium; public static Item warhead_buster_large; public static Item warhead_nuclear; - public static Item warhead_mirvlet; public static Item warhead_mirv; public static Item warhead_volcano; - public static Item warhead_thermo_endo; - public static Item warhead_thermo_exo; public static Item fuel_tank_small; public static Item fuel_tank_medium; @@ -759,6 +713,7 @@ public class ModItems { public static Item stamp_desh_plate; public static Item stamp_desh_wire; public static Item stamp_desh_circuit; + public static Item stamp_book; public static Item stamp_357; public static Item stamp_44; @@ -778,7 +733,19 @@ public class ModItems { public static Item mold_base; public static Item mold; public static Item scraps; + public static Item ingot_raw; public static Item plate_cast; + public static Item plate_welded; + public static Item heavy_component; + public static Item wire_fine; + public static Item wire_dense; + public static Item part_barrel_light; + public static Item part_barrel_heavy; + public static Item part_receiver_light; + public static Item part_receiver_heavy; + public static Item part_mechanism; + public static Item part_stock; + public static Item part_grip; public static Item part_lithium; public static Item part_beryllium; @@ -807,21 +774,11 @@ public class ModItems { public static Item pellet_rtg_actinium; public static Item pellet_rtg_polonium; public static Item pellet_rtg_americium; - public static Item pellet_rtg_berkelium; public static Item pellet_rtg_gold; public static Item pellet_rtg_lead; public static Item tritium_deuterium_cake; - public static Item pellet_schrabidium; - public static Item pellet_hes; - public static Item pellet_mes; - public static Item pellet_les; - public static Item pellet_beryllium; - public static Item pellet_neptunium; - public static Item pellet_lead; - public static Item pellet_advanced; - public static Item piston_selenium; public static Item piston_set; public static Item drillbit; @@ -912,7 +869,7 @@ public class ModItems { public static Item inf_water; public static Item inf_water_mk2; - public static Item antiknock; + public static Item fuel_additive; public static Item canister_empty; public static Item canister_full; @@ -928,6 +885,15 @@ public class ModItems { public static Item fluid_barrel_full; public static Item fluid_barrel_empty; public static Item fluid_barrel_infinite; + public static Item pipette; + public static Item pipette_boron; + public static Item pipette_laboratory; + public static Item siphon; + + public static Item disperser_canister_empty; + public static Item disperser_canister; + public static Item glyphid_gland; + public static Item glyphid_gland_empty; public static Item syringe_empty; public static Item syringe_antidote; @@ -991,7 +957,6 @@ public class ModItems { public static Item bottle2_fritz; public static Item bottle2_korl_special; public static Item bottle2_fritz_special; - public static Item bottle2_sunset; public static Item flask_empty; public static Item flask_infusion; public static Item chocolate_milk; @@ -1004,8 +969,6 @@ public class ModItems { public static Item cap_rad; public static Item cap_korl; public static Item cap_fritz; - public static Item cap_sunset; - public static Item cap_star; public static Item ring_pull; public static Item bdcl; //public static Item canned_beef; @@ -1038,8 +1001,10 @@ public class ModItems { public static ItemEnumMulti canned_conserve; public static Item can_key; + public static Item boat_rubber; public static Item cart; public static Item train; + public static Item drone; public static Item coin_creeper; public static Item coin_radiation; @@ -1078,7 +1043,7 @@ public class ModItems { public static Item waste_u233; public static Item waste_u235; public static Item waste_schrabidium; - public static Item waste_zfb_mox; //TODO: remind me to smite these useless waste items and condense em like the rbmk waste + public static Item waste_zfb_mox; public static Item waste_plate_u233; public static Item waste_plate_u235; @@ -1103,6 +1068,10 @@ public class ModItems { public static Item plate_fuel_sa326; public static Item plate_fuel_ra226be; public static Item plate_fuel_pu238be; + + public static Item pwr_fuel; + public static Item pwr_fuel_hot; + public static Item pwr_fuel_depleted; public static Item rbmk_lid; public static Item rbmk_lid_glass; @@ -1139,6 +1108,7 @@ public class ModItems { public static ItemRBMKRod rbmk_fuel_zfb_am_mix; public static ItemRBMKRod rbmk_fuel_drx; public static ItemRBMKRod rbmk_fuel_test; + //public static ItemRBMKRod rbmk_fuel_curve; public static ItemRBMKPellet rbmk_pellet_ueu; public static ItemRBMKPellet rbmk_pellet_meu; public static ItemRBMKPellet rbmk_pellet_heu233; @@ -1174,6 +1144,10 @@ public class ModItems { public static Item watz_pellet; public static Item watz_pellet_depleted; + public static Item icf_pellet_empty; + public static Item icf_pellet; + public static Item icf_pellet_depleted; + public static Item scrap_plastic; public static Item scrap; public static Item scrap_oil; @@ -1201,17 +1175,7 @@ public class ModItems { public static Item debris_element; public static Item containment_box; - - public static Item recycled_ground; - public static Item recycled_rock; - public static Item recycled_metal; - public static Item recycled_refined; - public static Item recycled_organic; - public static Item recycled_crystal; - public static Item recycled_explosive; - public static Item recycled_electronic; - public static Item recycled_nuclear; - public static Item recycled_misc; + public static Item plastic_bag; public static Item test_nuke_igniter; public static Item test_nuke_propellant; @@ -1239,8 +1203,6 @@ public class ModItems { public static Item pellet_buckshot; public static Item pellet_flechette; public static Item pellet_chlorophyte; - public static Item pellet_mercury; - public static Item pellet_meteorite; public static Item pellet_canister; public static Item pellet_claws; public static Item pellet_charged; @@ -1256,12 +1218,17 @@ public class ModItems { public static Item geiger_counter; public static Item digamma_diagnostic; public static Item pollution_detector; + public static Item ore_density_scanner; public static Item survey_scanner; public static Item mirror_tool; public static Item rbmk_tool; public static Item coltan_tool; public static Item power_net_tool; + public static Item analysis_tool; public static Item coupling_tool; + public static Item drone_linker; + public static Item radar_linker; + public static Item settings_tool; public static Item template_folder; public static Item journal_pip; @@ -1283,12 +1250,17 @@ public class ModItems { public static Item bobmazon_tools; public static Item bobmazon_hidden; + public static Item launch_code_piece; + public static Item launch_code; + public static Item launch_key; + public static Item missile_assembly; public static Item missile_generic; public static Item missile_anti_ballistic; public static Item missile_incendiary; public static Item missile_cluster; public static Item missile_buster; + public static Item missile_decoy; public static Item missile_strong; public static Item missile_incendiary_strong; public static Item missile_cluster_strong; @@ -1301,15 +1273,16 @@ public class ModItems { public static Item missile_nuclear; public static Item missile_nuclear_cluster; public static Item missile_volcano; - public static Item missile_endo; - public static Item missile_exo; public static Item missile_doomsday; + public static Item missile_doomsday_rusted; public static Item missile_taint; public static Item missile_micro; public static Item missile_bhole; public static Item missile_schrabidium; public static Item missile_emp; public static Item missile_shuttle; + public static Item missile_stealth; + public static Item missile_test; public static Item mp_thruster_10_kerosene; public static Item mp_thruster_10_kerosene_tec; @@ -1481,144 +1454,75 @@ public class ModItems { public static Item sat_interface; public static Item sat_coord; public static Item sat_designator; - + public static Item sat_relay; + public static ItemEnumMulti ammo_misc; - public static ItemEnumMulti ammo_12gauge; - public static ItemEnumMulti ammo_20gauge; - public static ItemEnumMulti ammo_4gauge; - public static ItemEnumMulti ammo_357; - public static ItemEnumMulti ammo_44; - public static ItemEnumMulti ammo_5mm; - public static ItemEnumMulti ammo_9mm; - public static ItemEnumMulti ammo_45; - public static ItemEnumMulti ammo_556; - public static ItemEnumMulti ammo_762; - public static ItemEnumMulti ammo_22lr; - public static ItemEnumMulti ammo_50ae; - public static ItemEnumMulti ammo_50bmg; - public static ItemEnumMulti ammo_75bolt; - public static ItemEnumMulti ammo_rocket; - public static ItemEnumMulti ammo_grenade; public static ItemEnumMulti ammo_shell; - public static ItemEnumMulti ammo_nuke; - public static ItemEnumMulti ammo_fuel; public static ItemEnumMulti ammo_fireext; - public static ItemEnumMulti ammo_dart; - public static ItemEnumMulti ammo_stinger_rocket; - public static ItemEnumMulti ammo_luna_sniper; - public static Item ammo_cell; - - public static Item ammo_folly; - public static Item ammo_folly_nuclear; - public static Item ammo_folly_du; public static Item ammo_dgk; public static Item ammo_arty; public static Item ammo_himars; - public static Item gun_rpg; - public static Item gun_karl; - public static Item gun_panzerschreck; - public static Item gun_quadro; - public static Item gun_hk69; - public static Item gun_stinger; - public static Item gun_skystinger; - public static Item gun_revolver; - public static Item gun_revolver_saturnite; - public static Item gun_revolver_gold; - public static Item gun_revolver_schrabidium; - public static Item gun_revolver_cursed; - public static Item gun_revolver_nightmare; - public static Item gun_revolver_nightmare2; - public static Item gun_revolver_pip; - public static Item gun_revolver_nopip; - public static Item gun_revolver_blackjack; - public static Item gun_revolver_silver; - public static Item gun_revolver_red; - public static Item gun_bio_revolver; - public static Item gun_deagle; - public static Item gun_flechette; - public static Item gun_ar15; - public static Item gun_calamity; - public static Item gun_minigun; - public static Item gun_avenger; - public static Item gun_lacunae; - public static Item gun_folly; - public static Item gun_fatman; - public static Item gun_proto; - public static Item gun_mirv; - public static Item gun_bf; - public static Item gun_bf_ammo; - public static Item gun_chemthrower; - public static Item gun_mp40; - public static Item gun_thompson; - public static Item gun_uzi; - public static Item gun_uzi_silencer; - public static Item gun_uzi_saturnite; - public static Item gun_uzi_saturnite_silencer; - public static Item gun_uboinik; - public static Item gun_remington; - public static Item gun_spas12; - public static Item gun_supershotgun; - public static Item gun_ks23; - public static Item gun_sauer; - public static Item gun_lever_action; - public static Item gun_lever_action_dark; - public static Item gun_lever_action_sonata; - public static Item gun_bolt_action; - public static Item gun_bolt_action_green; - public static Item gun_bolt_action_saturnite; - public static Item gun_mymy; public static Item gun_b92; public static Item gun_b92_ammo; - public static Item gun_b93; - public static Item gun_xvl1456; - public static Item gun_xvl1456_ammo; - public static Item gun_osipr; - public static Item gun_osipr_ammo; - public static Item gun_osipr_ammo2; - public static Item gun_immolator; - public static Item gun_immolator_ammo; - public static Item gun_flamer; - public static Item gun_cryolator; + public static Item gun_cryocannon; public static Item gun_cryolator_ammo; public static Item gun_fireext; - public static Item gun_mp; - public static Item gun_bolter; - public static Item gun_bolter_digamma; - public static Item gun_zomg; - public static Item gun_super_shotgun; - public static Item gun_moist_nugget; - public static Item gun_revolver_inverted; - public static Item gun_emp; - public static Item gun_emp_ammo; - public static Item gun_jack; - public static Item gun_jack_ammo; - public static Item gun_spark; - public static Item gun_spark_ammo; - public static Item gun_hp; - public static Item gun_hp_ammo; - public static Item gun_euthanasia; - public static Item gun_euthanasia_ammo; - public static Item gun_dash; - public static Item gun_dash_ammo; - public static Item gun_twigun; - public static Item gun_twigun_ammo; - public static Item gun_defabricator; - public static Item gun_defabricator_ammo; - public static Item gun_vortex; - public static Item gun_dampfmaschine; - public static Item gun_waluigi; - public static Item gun_darter; - public static Item gun_detonator; - public static Item gun_glass_cannon; + + public static Item gun_debug; + public static Item ammo_debug; + + public static Item gun_pepperbox; + public static Item gun_light_revolver; + public static Item gun_light_revolver_atlas; + public static Item gun_light_revolver_dani; + public static Item gun_henry; + public static Item gun_greasegun; + public static Item gun_maresleg; + public static Item gun_maresleg_akimbo; + public static Item gun_maresleg_broken; + public static Item gun_flaregun; + public static Item gun_heavy_revolver; + public static Item gun_heavy_revolver_lilmac; + public static Item gun_heavy_revolver_protege; + public static Item gun_carbine; + public static Item gun_am180; + public static Item gun_liberator; + public static Item gun_congolake; + public static Item gun_flamer; + public static Item gun_flamer_topaz; + public static Item gun_flamer_daybreaker; + public static Item gun_uzi; + public static Item gun_uzi_akimbo; + public static Item gun_spas12; + public static Item gun_panzerschreck; + public static Item gun_g3; + public static Item gun_stinger; + public static Item gun_chemthrower; public static Item gun_m2; - public static Item gun_lunatic_marksman; - - // We'll figure this part out later - //public static Item gun_llr, gun_mlr, gun_hlr, gun_twr, gun_lunatic, gun_lunatic_shotty; - //public static Item gun_uac_pistol, gun_uac_dmr, gun_uac_carbine, gun_uac_lmg; - //public static Item gun_benelli, gun_benelli_mod, gun_g36, spear_bishamonten, pagoda; + public static Item gun_autoshotgun; + public static Item gun_autoshotgun_shredder; + public static Item gun_autoshotgun_sexy; + public static Item gun_quadro; + public static Item gun_lag; + public static Item gun_minigun; + public static Item gun_minigun_lacunae; + public static Item gun_missile_launcher; + public static Item gun_tesla_cannon; + public static Item gun_stg77; + public static Item gun_tau; + public static Item gun_fatman; + public static Item gun_lasrifle; + public static Item gun_coilgun; + public static Item gun_hangman; + public static Item gun_bolter; + public static Item gun_folly; + public static Item gun_double_barrel; + public static Item gun_double_barrel_sacred_dragon; + + public static Item ammo_standard; + public static Item ammo_secret; public static Item crucible; @@ -1673,7 +1577,7 @@ public class ModItems { public static Item grenade_mirv; public static Item grenade_breach; public static Item grenade_burst; - + public static Item nuclear_waste_pearl; public static Item weaponized_starblaster_cell; @@ -1702,12 +1606,14 @@ public class ModItems { public static Item marshmallow; public static Item cheese; public static Item quesadilla; + public static Item glyphid_meat; + public static Item glyphid_meat_grilled; + public static Item egg_glyphid; public static Item med_ipecac; public static Item med_ptsd; public static Item med_schizophrenia; - public static Item canteen_13; public static Item canteen_vodka; public static Item canteen_fab; @@ -1793,12 +1699,8 @@ public class ModItems { public static Item battery_sc_lead; public static Item battery_sc_americium; - public static Item battery_su; - public static Item battery_su_l; public static Item battery_potato; public static Item battery_potatos; - public static Item battery_steam; - public static Item battery_steam_large; public static Item hev_battery; public static Item fusion_core; public static Item fusion_core_infinite; @@ -1806,7 +1708,6 @@ public class ModItems { public static Item fuse; public static Item redcoil_capacitor; public static Item euphemium_capacitor; - public static Item titanium_filter; //by using these in crafting table recipes, i'm running the risk of making my recipes too greg-ian (which i don't like) //in the event that i forget about the meaning of the word "sparingly", please throw a brick at my head public static Item screwdriver; @@ -1822,11 +1723,12 @@ public class ModItems { public static Item overfuse; public static Item arc_electrode; public static Item arc_electrode_burnt; - public static Item arc_electrode_desh; /*public static Item factory_core_titanium; public static Item factory_core_advanced;*/ + public static Item upgrade_muffler; + public static Item upgrade_template; public static Item upgrade_speed_1; public static Item upgrade_speed_2; @@ -1867,7 +1769,6 @@ public class ModItems { public static Item euphemium_boots; public static Item apple_euphemium; public static Item watch; - public static Item euphemium_stopper; public static Item goggles; public static Item ashglasses; @@ -1877,7 +1778,6 @@ public class ModItems { public static Item gas_mask_olde; public static Item mask_rag; public static Item mask_piss; - public static Item oxy_mask; public static Item hat; public static Item beta; public static Item no9; @@ -1961,6 +1861,10 @@ public class ModItems { public static Item bj_plate_jetpack; public static Item bj_legs; public static Item bj_boots; + public static Item envsuit_helmet; + public static Item envsuit_plate; + public static Item envsuit_legs; + public static Item envsuit_boots; public static Item hev_helmet; public static Item hev_plate; public static Item hev_legs; @@ -1973,16 +1877,16 @@ public class ModItems { public static Item dns_plate; public static Item dns_legs; public static Item dns_boots; + public static Item trenchmaster_helmet; + public static Item trenchmaster_plate; + public static Item trenchmaster_legs; + public static Item trenchmaster_boots; public static Item zirconium_legs; public static Item robes_helmet; public static Item robes_plate; public static Item robes_legs; public static Item robes_boots; - public static Item australium_iii; - public static Item australium_iv; - public static Item australium_v; - public static Item jetpack_boost; public static Item jetpack_break; public static Item jetpack_fly; @@ -2048,10 +1952,15 @@ public class ModItems { public static Item drax_mk2; public static Item drax_mk3; public static Item bismuth_pickaxe; + public static Item bismuth_axe; public static Item volcanic_pickaxe; + public static Item volcanic_axe; public static Item chlorophyte_pickaxe; + public static Item chlorophyte_axe; public static Item mese_pickaxe; + public static Item mese_axe; public static Item dnt_sword; + public static Item dwarven_pickaxe; public static Item meteorite_sword; public static Item meteorite_sword_seared; @@ -2163,13 +2072,20 @@ public class ModItems { public static Item injector_5htp; public static Item injector_knife; public static Item medal_liquidator; - public static Item v1; + public static Item bottled_cloud; public static Item protection_charm; public static Item meteor_charm; public static Item neutrino_lens; public static Item gas_tester; public static Item defuser_gold; public static Item ballistic_gauntlet; + public static Item night_vision; + public static Item card_aos; + public static Item card_qos; + public static Item australium_iii; + public static Item armor_battery; + public static Item armor_battery_mk2; + public static Item armor_battery_mk3; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -2202,21 +2118,14 @@ public class ModItems { public static Item structure_pattern; public static Item structure_randomized; public static Item structure_randomly; + public static Item structure_custommachine; public static Item rod_of_discord; - public static Item cape_test; public static Item cape_radiation; public static Item cape_gasmask; public static Item cape_schrabidium; public static Item cape_hidden; - /*public static Item cape_hbm; - public static Item cape_dafnik; - public static Item cape_lpkukin; - public static Item cape_vertice; - public static Item cape_codered_; - public static Item cape_ayy; - public static Item cape_nostalgia;*/ public static Item nuke_starter_kit; public static Item nuke_advanced_kit; @@ -2246,38 +2155,6 @@ public class ModItems { public static Item loot_10; public static Item loot_15; public static Item loot_misc; - - public static Item clip_revolver_iron; - public static Item clip_revolver; - public static Item clip_revolver_gold; - public static Item clip_revolver_lead; - public static Item clip_revolver_schrabidium; - public static Item clip_revolver_cursed; - public static Item clip_revolver_nightmare; - public static Item clip_revolver_nightmare2; - public static Item clip_revolver_pip; - public static Item clip_revolver_nopip; - public static Item clip_rpg; - public static Item clip_stinger; - public static Item clip_fatman; - public static Item clip_mirv; - public static Item clip_bf; - public static Item clip_mp40; - public static Item clip_uzi; - public static Item clip_uboinik; - public static Item clip_lever_action; - public static Item clip_bolt_action; - public static Item clip_osipr; - public static Item clip_immolator; - public static Item clip_cryolator; - public static Item clip_mp; - public static Item clip_xvl1456; - public static Item clip_emp; - public static Item clip_jack; - public static Item clip_spark; - public static Item clip_hp; - public static Item clip_euthanasia; - public static Item clip_defabricator; public static Item ammo_container; @@ -2287,7 +2164,6 @@ public class ModItems { public static Item detonator_laser; public static Item detonator_deadman; public static Item detonator_de; - public static Item crate_caller; public static Item bomb_caller; public static Item meteor_remote; public static Item anchor_remote; @@ -2303,6 +2179,7 @@ public class ModItems { public static Item key; public static Item key_red; + public static Item key_red_cracked; public static Item key_kit; public static Item key_fake; public static Item pin; @@ -2322,7 +2199,10 @@ public class ModItems { public static Item door_metal; public static Item door_office; public static Item door_bunker; - + public static Item door_red; + + public static Item sliding_blast_door_skin; + public static Item record_lc; public static Item record_ss; public static Item record_vc; @@ -2332,54 +2212,17 @@ public class ModItems { public static Item book_lore; public static Item holotape_image; public static Item holotape_damaged; + public static Item clay_tablet; public static Item polaroid; public static Item glitch; public static Item letter; public static Item book_secret; public static Item book_of_; + public static Item page_of_; + public static Item book_lemegeton; public static Item burnt_bark; - public static Item smoke1; - public static Item smoke2; - public static Item smoke3; - public static Item smoke4; - public static Item smoke5; - public static Item smoke6; - public static Item smoke7; - public static Item smoke8; - public static Item b_smoke1; - public static Item b_smoke2; - public static Item b_smoke3; - public static Item b_smoke4; - public static Item b_smoke5; - public static Item b_smoke6; - public static Item b_smoke7; - public static Item b_smoke8; - public static Item d_smoke1; - public static Item d_smoke2; - public static Item d_smoke3; - public static Item d_smoke4; - public static Item d_smoke5; - public static Item d_smoke6; - public static Item d_smoke7; - public static Item d_smoke8; - public static Item spill1; - public static Item spill2; - public static Item spill3; - public static Item spill4; - public static Item spill5; - public static Item spill6; - public static Item spill7; - public static Item spill8; - public static Item gas1; - public static Item gas2; - public static Item gas3; - public static Item gas4; - public static Item gas5; - public static Item gas6; - public static Item gas7; - public static Item gas8; public static Item chlorine1; public static Item chlorine2; public static Item chlorine3; @@ -2412,39 +2255,7 @@ public class ModItems { public static Item orange6; public static Item orange7; public static Item orange8; - /*public static Item gasflame1; - public static Item gasflame2; - public static Item gasflame3; - public static Item gasflame4; - public static Item gasflame5; - public static Item gasflame6; - public static Item gasflame7; - public static Item gasflame8;*/ - public static Item energy_ball; - public static Item discharge; - public static Item empblast; - public static Item flame_1; - public static Item flame_2; - public static Item flame_3; - public static Item flame_4; - public static Item flame_5; - public static Item flame_6; - public static Item flame_7; - public static Item flame_8; - public static Item flame_9; - public static Item flame_10; - public static Item ln2_1; - public static Item ln2_2; - public static Item ln2_3; - public static Item ln2_4; - public static Item ln2_5; - public static Item ln2_6; - public static Item ln2_7; - public static Item ln2_8; - public static Item ln2_9; - public static Item ln2_10; public static Item nothing; - public static Item void_anim; public static Item achievement_icon; public static Item bob_metalworks; @@ -2460,11 +2271,6 @@ public class ModItems { { redstone_sword = new RedstoneSword(ToolMaterial.STONE).setUnlocalizedName("redstone_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":redstone_sword"); big_sword = new BigSword(ToolMaterial.EMERALD).setUnlocalizedName("big_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":big_sword"); - - test_helmet = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 0).setUnlocalizedName("test_helmet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_helmet"); - test_chestplate = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 1).setUnlocalizedName("test_chestplate").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_chestplate"); - test_leggings = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 2).setUnlocalizedName("test_leggings").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_leggings"); - test_boots = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 3).setUnlocalizedName("test_boots").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_boots"); test_nuke_igniter = new Item().setUnlocalizedName("test_nuke_igniter").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_igniter"); test_nuke_propellant = new Item().setUnlocalizedName("test_nuke_propellant").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_propellant"); @@ -2505,6 +2311,8 @@ public class ModItems { ingot_firebrick = new Item().setUnlocalizedName("ingot_firebrick").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_firebrick"); ingot_smore = new ItemFood(10, 20F, false).setUnlocalizedName("ingot_smore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_smore"); sulfur = new Item().setUnlocalizedName("sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sulfur"); + nitra = new Item().setUnlocalizedName("nitra").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra"); + nitra_small = new Item().setUnlocalizedName("nitra_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra_small"); ingot_uranium_fuel = new Item().setUnlocalizedName("ingot_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_uranium_fuel"); ingot_plutonium_fuel = new Item().setUnlocalizedName("ingot_plutonium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_plutonium_fuel"); @@ -2523,6 +2331,9 @@ public class ModItems { ingot_advanced_alloy = new Item().setUnlocalizedName("ingot_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_advanced_alloy"); ingot_tcalloy = new Item().setUnlocalizedName("ingot_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tcalloy"); ingot_cdalloy = new Item().setUnlocalizedName("ingot_cdalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cdalloy"); + ingot_bismuth_bronze = new Item().setUnlocalizedName("ingot_bismuth_bronze").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth_bronze"); + ingot_arsenic_bronze = new Item().setUnlocalizedName("ingot_arsenic_bronze").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_arsenic_bronze"); + ingot_bscco = new Item().setUnlocalizedName("ingot_bscco").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bscco"); niter = new Item().setUnlocalizedName("niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":salpeter"); ingot_copper = new Item().setUnlocalizedName("ingot_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_copper"); @@ -2536,6 +2347,7 @@ public class ModItems { plate_iron = new Item().setUnlocalizedName("plate_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_iron"); ingot_lead = new Item().setUnlocalizedName("ingot_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lead"); plate_lead = new Item().setUnlocalizedName("plate_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_lead"); + plate_dura_steel = new Item().setUnlocalizedName("plate_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dura_steel"); ingot_schraranium = new ItemSchraranium().setUnlocalizedName("ingot_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schraranium"); ingot_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidium"); ingot_schrabidate = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidate"); @@ -2548,21 +2360,18 @@ public class ModItems { ingot_semtex = new ItemLemon(4, 5, true).setUnlocalizedName("ingot_semtex").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_semtex"); ingot_c4 = new Item().setUnlocalizedName("ingot_c4").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_c4"); ingot_phosphorus = new Item().setUnlocalizedName("ingot_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_phosphorus"); - wire_advanced_alloy = new Item().setUnlocalizedName("wire_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_advanced_alloy"); coil_advanced_alloy = new Item().setUnlocalizedName("coil_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_advanced_alloy"); coil_advanced_torus = new Item().setUnlocalizedName("coil_advanced_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_advanced_torus"); ingot_magnetized_tungsten = new Item().setUnlocalizedName("ingot_magnetized_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_magnetized_tungsten"); ingot_combine_steel = new ItemCustomLore().setUnlocalizedName("ingot_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_combine_steel"); plate_mixed = new Item().setUnlocalizedName("plate_mixed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_mixed"); plate_paa = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_paa"); - board_copper = new Item().setUnlocalizedName("board_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":board_copper"); - bolt_dura_steel = new Item().setUnlocalizedName("bolt_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_dura_steel"); pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel"); drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium"); plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium"); plate_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium"); - bolt_tungsten = new Item().setUnlocalizedName("bolt_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_tungsten"); - bolt_compound = new Item().setUnlocalizedName("bolt_compound").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_compound"); + bolt = new ItemAutogen(MaterialShapes.BOLT).oun("boltntm").setUnlocalizedName("bolt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt"); + bolt_spike = new ItemCustomLore().setUnlocalizedName("bolt_spike").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_spike"); plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_polymer"); plate_kevlar = new Item().setUnlocalizedName("plate_kevlar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_kevlar"); plate_dineutronium = new Item().setUnlocalizedName("plate_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dineutronium"); @@ -2575,6 +2384,7 @@ public class ModItems { thruster_nuclear = new Item().setUnlocalizedName("thruster_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_nuclear"); safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse"); part_generic = new ItemGenericPart().setUnlocalizedName("part_generic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_generic"); + item_secret = new ItemEnumMulti(EnumSecretType.class, true, true).setUnlocalizedName("item_secret").setCreativeTab(null).setTextureName(RefStrings.MODID + ":item_secret"); chemical_dye = new ItemChemicalDye().setUnlocalizedName("chemical_dye").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chemical_dye"); crayon = new ItemCrayon().setUnlocalizedName("crayon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crayon"); @@ -2633,9 +2443,11 @@ public class ModItems { billet_zfb_am_mix = new Item().setUnlocalizedName("billet_zfb_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_am_mix"); billet_nuclear_waste = new Item().setUnlocalizedName("billet_nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_nuclear_waste"); + ball_resin = new ItemCustomLore().setUnlocalizedName("ball_resin").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_resin"); ingot_dura_steel = new ItemCustomLore().setUnlocalizedName("ingot_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dura_steel"); ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polymer"); ingot_bakelite = new ItemCustomLore().setUnlocalizedName("ingot_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bakelite"); + ingot_biorubber = new ItemCustomLore().setUnlocalizedName("ingot_biorubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_biorubber"); ingot_rubber = new ItemCustomLore().setUnlocalizedName("ingot_rubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_rubber"); //ingot_pet = new ItemCustomLore().setUnlocalizedName("ingot_pet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pet"); ingot_pc = new ItemCustomLore().setUnlocalizedName("ingot_pc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pc"); @@ -2646,6 +2458,10 @@ public class ModItems { nugget_dineutronium = new ItemCustomLore().setUnlocalizedName("nugget_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_dineutronium"); powder_dineutronium = new ItemCustomLore().setUnlocalizedName("powder_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_dineutronium"); ingot_starmetal = new ItemStarmetal().setUnlocalizedName("ingot_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_starmetal"); + ingot_gunmetal = new Item().setUnlocalizedName("ingot_gunmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gunmetal"); + plate_gunmetal = new Item().setUnlocalizedName("plate_gunmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_gunmetal"); + ingot_weaponsteel = new Item().setUnlocalizedName("ingot_weaponsteel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gunsteel"); + plate_weaponsteel = new Item().setUnlocalizedName("plate_weaponsteel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_gunsteel"); ingot_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_saturnite"); plate_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("plate_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_saturnite"); ingot_ferrouranium = new ItemCustomLore().setUnlocalizedName("ingot_ferrouranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_ferrouranium"); @@ -2663,6 +2479,7 @@ public class ModItems { powder_cadmium = new Item().setUnlocalizedName("powder_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cadmium"); powder_bismuth = new Item().setUnlocalizedName("powder_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bismuth"); ingot_mud = new Item().setUnlocalizedName("ingot_mud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_mud"); + ingot_cft = new Item().setUnlocalizedName("ingot_cft").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cft"); ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct"); @@ -2675,8 +2492,10 @@ public class ModItems { ore_nitrocrystalline = new ItemBedrockOre().setUnlocalizedName("ore_nitrocrystalline").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrocrystalline"); ore_deepcleaned = new ItemBedrockOre().setUnlocalizedName("ore_deepcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_deepcleaned"); ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared"); - //ore_radcleaned = new ItemBedrockOre().setUnlocalizedName("ore_radcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_radcleaned"); ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); + bedrock_ore_base = new ItemBedrockOreBase().setUnlocalizedName("bedrock_ore_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); + bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); + bedrock_ore_fragment = new ItemAutogen(MaterialShapes.FRAGMENT).aot(Mats.MAT_BISMUTH, "bedrock_ore_fragment_bismuth").setUnlocalizedName("bedrock_ore_fragment").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_fragment"); ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); @@ -2708,24 +2527,17 @@ public class ModItems { powder_lignite = new Item().setUnlocalizedName("powder_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lignite"); coal_infernal = new Item().setUnlocalizedName("coal_infernal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coal_infernal"); cinnebar = new Item().setUnlocalizedName("cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cinnebar"); + powder_ash = new ItemEnumMulti(EnumAshType.class, true, true).setUnlocalizedName("powder_ash").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ash"); + powder_limestone = new Item().setUnlocalizedName("powder_limestone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_limestone"); + powder_cement = new ItemLemon(2, 0.5F, false).setUnlocalizedName("powder_cement").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cement"); ingot_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gh336"); nugget_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_gh336"); ingot_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("ingot_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_australium"); - ingot_weidanium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("ingot_weidanium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_weidanium"); - ingot_reiium = new ItemCustomLore().setUnlocalizedName("ingot_reiium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_reiium"); - ingot_unobtainium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("ingot_unobtainium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_unobtainium"); - ingot_daffergon = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("ingot_daffergon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_daffergon"); - ingot_verticium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("ingot_verticium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_verticium"); nugget_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_australium"); nugget_australium_lesser = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_australium_lesser").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_australium_lesser"); nugget_australium_greater = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_australium_greater").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_australium_greater"); - nugget_weidanium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_weidanium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":nugget_weidanium"); - nugget_reiium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_reiium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":nugget_reiium"); - nugget_unobtainium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_unobtainium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":nugget_unobtainium"); - nugget_daffergon = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_daffergon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":nugget_daffergon"); - nugget_verticium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_verticium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":nugget_verticium"); nugget_th232 = new Item().setUnlocalizedName("nugget_th232").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_th232"); nugget_uranium = new Item().setUnlocalizedName("nugget_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_uranium"); @@ -2753,8 +2565,6 @@ public class ModItems { nugget_actinium = new Item().setUnlocalizedName("nugget_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_actinium"); plate_titanium = new Item().setUnlocalizedName("plate_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_titanium"); plate_aluminium = new Item().setUnlocalizedName("plate_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_aluminium"); - wire_red_copper = new Item().setUnlocalizedName("wire_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_red_copper"); - wire_tungsten = new ItemCustomLore().setUnlocalizedName("wire_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_tungsten"); neutron_reflector = new Item().setUnlocalizedName("neutron_reflector").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":neutron_reflector"); nugget_lead = new Item().setUnlocalizedName("nugget_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_lead"); ingot_bismuth = new ItemCustomLore().setUnlocalizedName("ingot_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth"); @@ -2763,7 +2573,11 @@ public class ModItems { nugget_arsenic = new Item().setUnlocalizedName("nugget_arsenic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_arsenic"); ingot_tantalium = new ItemCustomLore().setUnlocalizedName("ingot_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tantalium"); nugget_tantalium = new ItemCustomLore().setUnlocalizedName("nugget_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_tantalium"); + ingot_silicon = new Item().setUnlocalizedName("ingot_silicon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_silicon"); + billet_silicon = new Item().setUnlocalizedName("billet_silicon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_silicon"); + nugget_silicon = new Item().setUnlocalizedName("nugget_silicon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_silicon"); ingot_niobium = new Item().setUnlocalizedName("ingot_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_niobium"); + nugget_niobium = new Item().setUnlocalizedName("nugget_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_niobium"); ingot_osmiridium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_osmiridium"); nugget_osmiridium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("nugget_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_osmiridium"); nugget_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("nugget_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium"); @@ -2810,8 +2624,10 @@ public class ModItems { crystal_cinnebar = new Item().setUnlocalizedName("crystal_cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_cinnebar"); crystal_trixite = new Item().setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite"); crystal_osmiridium = new Item().setUnlocalizedName("crystal_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_osmiridium"); + gem_sodalite = new ItemCustomLore().setUnlocalizedName("gem_sodalite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_sodalite"); gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); gem_volcanic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_volcanic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_volcanic"); + gem_rad = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_rad").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_rad"); gem_alexandrite = new ItemAlexandrite().setUnlocalizedName("gem_alexandrite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_alexandrite"); powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); @@ -2859,7 +2675,7 @@ public class ModItems { powder_steel = new Item().setUnlocalizedName("powder_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_steel"); powder_lithium = new Item().setUnlocalizedName("powder_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium"); powder_zirconium = new Item().setUnlocalizedName("powder_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_zirconium"); - redstone_depleted = new Item().setUnlocalizedName("redstone_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":redstone_depleted"); + powder_sodium = new Item().setUnlocalizedName("powder_sodium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sodium"); powder_power = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_power").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_energy_alt"); powder_iodine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_iodine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_iodine"); powder_thorium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_thorium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_thorium"); @@ -2867,11 +2683,6 @@ public class ModItems { powder_astatine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_astatine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_astatine"); powder_caesium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_caesium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_caesium"); powder_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_australium"); - powder_weidanium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_weidanium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_weidanium"); - powder_reiium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_reiium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_reiium"); - powder_unobtainium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_unobtainium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_unobtainium"); - powder_daffergon = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_daffergon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_daffergon"); - powder_verticium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_verticium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_verticium"); powder_strontium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_strontium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_strontium"); powder_cobalt = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cobalt"); powder_bromine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_bromine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_bromine"); @@ -2904,7 +2715,6 @@ public class ModItems { powder_meteorite_tiny = new Item().setUnlocalizedName("powder_meteorite_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_meteorite_tiny"); powder_yellowcake = new Item().setUnlocalizedName("powder_yellowcake").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_yellowcake"); powder_magic = new Item().setUnlocalizedName("powder_magic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_magic"); - powder_cloud = new Item().setUnlocalizedName("powder_cloud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cloud"); powder_balefire = new Item().setUnlocalizedName("powder_balefire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_balefire"); powder_sawdust = new Item().setUnlocalizedName("powder_sawdust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sawdust"); powder_flux = new Item().setUnlocalizedName("powder_flux").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_flux"); @@ -2917,6 +2727,7 @@ public class ModItems { powder_impure_osmiridium = new Item().setUnlocalizedName("powder_impure_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_impure_osmiridium"); powder_borax = new Item().setUnlocalizedName("powder_borax").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_borax"); powder_chlorocalcite = new Item().setUnlocalizedName("powder_chlorocalcite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_chlorocalcite"); + powder_molysite = new Item().setUnlocalizedName("powder_molysite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_molysite"); fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium"); fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cobalt"); @@ -2927,6 +2738,7 @@ public class ModItems { fragment_boron = new Item().setUnlocalizedName("fragment_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_boron"); fragment_meteorite = new Item().setUnlocalizedName("fragment_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_meteorite"); fragment_coltan = new Item().setUnlocalizedName("fragment_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_coltan"); + chunk_ore = new ItemEnumMulti(EnumChunkType.class, true, true).setUnlocalizedName("chunk_ore").setCreativeTab(MainRegistry.partsTab); biomass = new Item().setUnlocalizedName("biomass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass"); biomass_compressed = new Item().setUnlocalizedName("biomass_compressed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass_compressed"); @@ -2941,28 +2753,17 @@ public class ModItems { motor_desh = new Item().setUnlocalizedName("motor_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_desh"); motor_bismuth = new Item().setUnlocalizedName("motor_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_bismuth"); centrifuge_element = new Item().setUnlocalizedName("centrifuge_element").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_element"); - //centrifuge_tower = new Item().setUnlocalizedName("centrifuge_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_tower"); reactor_core = new Item().setUnlocalizedName("reactor_core").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":reactor_core"); rtg_unit = new Item().setUnlocalizedName("rtg_unit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rtg_unit"); - //thermo_unit_empty = new Item().setUnlocalizedName("thermo_unit_empty").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_empty"); - //thermo_unit_endo= new Item().setUnlocalizedName("thermo_unit_endo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_endo"); - //thermo_unit_exo = new Item().setUnlocalizedName("thermo_unit_exo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_exo"); levitation_unit = new Item().setUnlocalizedName("levitation_unit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":levitation_unit"); - wire_aluminium = new Item().setUnlocalizedName("wire_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_aluminium"); - wire_copper = new Item().setUnlocalizedName("wire_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_copper"); - wire_gold = new Item().setUnlocalizedName("wire_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_gold"); - wire_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("wire_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_schrabidium"); - wire_magnetized_tungsten = new Item().setUnlocalizedName("wire_magnetized_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_magnetized_tungsten"); coil_magnetized_tungsten = new Item().setUnlocalizedName("coil_magnetized_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_magnetized_tungsten"); coil_gold = new Item().setUnlocalizedName("coil_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold"); coil_gold_torus = new Item().setUnlocalizedName("coil_gold_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold_torus"); - //magnet_dee = new Item().setUnlocalizedName("magnet_dee").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_dee"); magnet_circular = new Item().setUnlocalizedName("magnet_circular").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_circular"); - //cyclotron_tower = new Item().setUnlocalizedName("cyclotron_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cyclotron_tower"); - pellet_coal = new Item().setUnlocalizedName("pellet_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_coal"); component_limiter = new Item().setUnlocalizedName("component_limiter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_limiter"); component_emitter = new Item().setUnlocalizedName("component_emitter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_emitter"); chlorine_pinwheel = new ItemInfiniteFluid(Fluids.CHLORINE, 1, 2).setUnlocalizedName("chlorine_pinwheel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chlorine_pinwheel"); + FluidTank.noDualUnload.add(chlorine_pinwheel); ring_starmetal = new Item().setUnlocalizedName("ring_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ring_starmetal"); flywheel_beryllium = new Item().setUnlocalizedName("flywheel_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flywheel_beryllium"); deuterium_filter = new Item().setUnlocalizedName("deuterium_filter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":deuterium_filter"); @@ -2971,11 +2772,8 @@ public class ModItems { gear_large = new ItemGear().setUnlocalizedName("gear_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gear_large"); sawblade = new Item().setUnlocalizedName("sawblade").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sawblade"); - hull_small_steel = new Item().setUnlocalizedName("hull_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_small_steel"); - hull_small_aluminium = new ItemCustomLore().setUnlocalizedName("hull_small_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_small_aluminium"); - hull_big_steel = new Item().setUnlocalizedName("hull_big_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_big_steel"); - hull_big_aluminium = new Item().setUnlocalizedName("hull_big_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_big_aluminium"); - hull_big_titanium = new Item().setUnlocalizedName("hull_big_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_big_titanium"); + shell = new ItemAutogen(MaterialShapes.SHELL).oun("shellntm").setUnlocalizedName("shell").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shell"); + pipe = new ItemAutogen(MaterialShapes.PIPE).oun("pipentm").setUnlocalizedName("pipe").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipe"); fins_flat = new Item().setUnlocalizedName("fins_flat").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_flat"); fins_small_steel = new Item().setUnlocalizedName("fins_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_small_steel"); fins_big_steel = new Item().setUnlocalizedName("fins_big_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_big_steel"); @@ -2984,11 +2782,8 @@ public class ModItems { sphere_steel = new Item().setUnlocalizedName("sphere_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sphere_steel"); pedestal_steel = new Item().setUnlocalizedName("pedestal_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pedestal_steel"); dysfunctional_reactor = new Item().setUnlocalizedName("dysfunctional_reactor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dysfunctional_reactor"); - rotor_steel = new Item().setUnlocalizedName("rotor_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rotor_steel"); - generator_steel = new Item().setUnlocalizedName("generator_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":generator_steel"); blade_titanium = new Item().setUnlocalizedName("blade_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_titanium"); turbine_titanium = new Item().setUnlocalizedName("turbine_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":turbine_titanium"); - generator_front = new Item().setUnlocalizedName("generator_front").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":generator_front"); blade_tungsten = new Item().setUnlocalizedName("blade_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_tungsten"); turbine_tungsten = new Item().setUnlocalizedName("turbine_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":turbine_tungsten"); @@ -3009,11 +2804,8 @@ public class ModItems { warhead_buster_medium = new Item().setUnlocalizedName("warhead_buster_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_medium"); warhead_buster_large = new Item().setUnlocalizedName("warhead_buster_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_large"); warhead_nuclear = new Item().setUnlocalizedName("warhead_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_nuclear"); - warhead_mirvlet = new Item().setUnlocalizedName("warhead_mirvlet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":warhead_mirvlet"); warhead_mirv = new Item().setUnlocalizedName("warhead_mirv").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_mirv"); warhead_volcano = new Item().setUnlocalizedName("warhead_volcano").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_volcano"); - warhead_thermo_endo = new Item().setUnlocalizedName("warhead_thermo_endo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_thermo_endo"); - warhead_thermo_exo = new Item().setUnlocalizedName("warhead_thermo_exo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_thermo_exo"); fuel_tank_small = new Item().setUnlocalizedName("fuel_tank_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_small"); fuel_tank_medium = new Item().setUnlocalizedName("fuel_tank_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_medium"); @@ -3045,31 +2837,13 @@ public class ModItems { shimmer_axe_head = new Item().setUnlocalizedName("shimmer_axe_head").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_axe_head"); shimmer_handle = new Item().setUnlocalizedName("shimmer_handle").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_handle"); - //telepad = new Item().setUnlocalizedName("telepad").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":telepad"); entanglement_kit = new ItemCustomLore().setUnlocalizedName("entanglement_kit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":entanglement_kit"); - circuit_raw = new Item().setUnlocalizedName("circuit_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_raw"); - circuit_aluminium = new Item().setUnlocalizedName("circuit_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_aluminium"); - circuit_copper = new Item().setUnlocalizedName("circuit_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_copper"); - circuit_red_copper = new Item().setUnlocalizedName("circuit_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_red_copper"); - circuit_gold = new Item().setUnlocalizedName("circuit_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_gold"); - circuit_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("circuit_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_schrabidium"); - circuit_bismuth_raw = new Item().setUnlocalizedName("circuit_bismuth_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_bismuth_raw"); - circuit_bismuth = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_bismuth"); - circuit_arsenic_raw = new Item().setUnlocalizedName("circuit_arsenic_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_arsenic_raw"); - circuit_arsenic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_arsenic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_arsenic"); - circuit_tantalium_raw = new Item().setUnlocalizedName("circuit_tantalium_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_tantalium_raw"); - circuit_tantalium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_tantalium"); + circuit = new ItemCircuit().setUnlocalizedName("circuit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit"); crt_display = new Item().setUnlocalizedName("crt_display").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crt_display"); circuit_star_piece = (ItemEnumMulti) new ItemEnumMulti(ScrapType.class, true, true).setUnlocalizedName("circuit_star_piece").setCreativeTab(null); circuit_star_component = (ItemEnumMulti) new ItemCircuitStarComponent().setUnlocalizedName("circuit_star_component").setCreativeTab(null); circuit_star = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_star").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_star"); - circuit_targeting_tier1 = new Item().setUnlocalizedName("circuit_targeting_tier1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier1"); - circuit_targeting_tier2 = new Item().setUnlocalizedName("circuit_targeting_tier2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier2"); - circuit_targeting_tier3 = new Item().setUnlocalizedName("circuit_targeting_tier3").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier3"); - circuit_targeting_tier4 = new Item().setUnlocalizedName("circuit_targeting_tier4").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier4"); - circuit_targeting_tier5 = new Item().setUnlocalizedName("circuit_targeting_tier5").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier5"); - circuit_targeting_tier6 = new Item().setUnlocalizedName("circuit_targeting_tier6").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier6"); mechanism_revolver_1 = new Item().setUnlocalizedName("mechanism_revolver_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_1"); mechanism_revolver_2 = new Item().setUnlocalizedName("mechanism_revolver_2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_3"); mechanism_rifle_1 = new Item().setUnlocalizedName("mechanism_rifle_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_2"); @@ -3077,16 +2851,6 @@ public class ModItems { mechanism_launcher_1 = new Item().setUnlocalizedName("mechanism_launcher_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_5"); mechanism_launcher_2 = new Item().setUnlocalizedName("mechanism_launcher_2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_6"); mechanism_special = new Item().setUnlocalizedName("mechanism_special").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_7"); - primer_357 = new Item().setUnlocalizedName("primer_357").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_357"); - primer_44 = new Item().setUnlocalizedName("primer_44").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_44"); - primer_9 = new Item().setUnlocalizedName("primer_9").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_9"); - primer_50 = new Item().setUnlocalizedName("primer_50").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_50"); - primer_buckshot = new Item().setUnlocalizedName("primer_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_buckshot"); - casing_357 = new Item().setUnlocalizedName("casing_357").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_357"); - casing_44 = new Item().setUnlocalizedName("casing_44").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_44"); - casing_9 = new Item().setUnlocalizedName("casing_9").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_9"); - casing_50 = new Item().setUnlocalizedName("casing_50").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_50"); - casing_buckshot = new Item().setUnlocalizedName("casing_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_buckshot"); assembly_iron = new Item().setUnlocalizedName("assembly_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_iron"); assembly_steel = new Item().setUnlocalizedName("assembly_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_steel"); assembly_lead = new Item().setUnlocalizedName("assembly_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_lead"); @@ -3094,7 +2858,6 @@ public class ModItems { assembly_schrabidium = new Item().setUnlocalizedName("assembly_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_schrabidium"); assembly_nightmare = new Item().setUnlocalizedName("assembly_nightmare").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nightmare"); assembly_desh = new Item().setUnlocalizedName("assembly_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_desh"); - //assembly_pip = new Item().setUnlocalizedName("assembly_pip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_pip"); assembly_nopip = new Item().setUnlocalizedName("assembly_nopip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nopip"); assembly_smg = new Item().setUnlocalizedName("assembly_smg").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_smg"); assembly_556 = new Item().setUnlocalizedName("assembly_556").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_556"); @@ -3106,10 +2869,7 @@ public class ModItems { assembly_lacunae = new Item().setUnlocalizedName("assembly_lacunae").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_lacunae"); assembly_nuke = new Item().setUnlocalizedName("assembly_nuke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nuke"); assembly_luna = new Item().setUnlocalizedName("assembly_luna").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_luna"); - folly_shell = new Item().setUnlocalizedName("folly_shell").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_shell"); - folly_bullet = new Item().setUnlocalizedName("folly_bullet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_bullet"); - folly_bullet_nuclear = new Item().setUnlocalizedName("folly_bullet_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_bullet_nuclear"); - folly_bullet_du = new Item().setUnlocalizedName("folly_bullet_du").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_bullet_du"); + casing = new ItemEnumMulti(ItemEnums.EnumCasingType.class, true, true).setUnlocalizedName("casing").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing"); wiring_red_copper = new ItemWiring().setUnlocalizedName("wiring_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wiring_red_copper"); @@ -3122,26 +2882,22 @@ public class ModItems { pellet_rtg_cobalt = new ItemRTGPellet(15).setDecays(DepletedRTGMaterial.NICKEL, (long) (RTGUtil.getLifespan(5.3F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg_cobalt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_cobalt"); pellet_rtg_actinium = new ItemRTGPellet(20).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(21.8F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg_actinium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_actinium"); pellet_rtg_americium = new ItemRTGPellet(20).setDecays(DepletedRTGMaterial.NEPTUNIUM, (long) (RTGUtil.getLifespan(4.7F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_americium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_americium"); - pellet_rtg_berkelium = new ItemRTGPellet(20).setUnlocalizedName("pellet_rtg_berkelium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_berkelium"); pellet_rtg_polonium = new ItemRTGPellet(50).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(138.0F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_polonium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_polonium"); pellet_rtg_gold = new ItemRTGPellet(VersatileConfig.rtgDecay() ? 200 : 100).setDecays(DepletedRTGMaterial.MERCURY, (long) (RTGUtil.getLifespan(2.7F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_gold").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_gold"); pellet_rtg_lead = new ItemRTGPellet(VersatileConfig.rtgDecay() ? 600 : 200).setDecays(DepletedRTGMaterial.BISMUTH, (long) (RTGUtil.getLifespan(0.3F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_lead").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_lead"); tritium_deuterium_cake = new ItemCustomLore().setUnlocalizedName("tritium_deuterium_cake").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":tritium_deuterium_cake"); - piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":piston_selenium"); + piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":piston_selenium"); piston_set = new ItemPistons().setUnlocalizedName("piston_set").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); drillbit = new ItemDrillbit().setUnlocalizedName("drillbit").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); - - //crystal_energy = new ItemCustomLore().setUnlocalizedName("crystal_energy").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":crystal_energy"); - //pellet_coolant = new ItemCustomLore().setUnlocalizedName("pellet_coolant").setMaxDamage(41400).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_coolant"); - rune_blank = new ItemCustomLore().setUnlocalizedName("rune_blank").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_blank"); - rune_isa = new ItemCustomLore().setUnlocalizedName("rune_isa").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_isa"); - rune_dagaz = new ItemCustomLore().setUnlocalizedName("rune_dagaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_dagaz"); - rune_hagalaz = new ItemCustomLore().setUnlocalizedName("rune_hagalaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_hagalaz"); - rune_jera = new ItemCustomLore().setUnlocalizedName("rune_jera").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_jera"); - rune_thurisaz = new ItemCustomLore().setUnlocalizedName("rune_thurisaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_thurisaz"); + rune_blank = new ItemCustomLore().setEffect().setUnlocalizedName("rune_blank").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_blank"); + rune_isa = new ItemCustomLore().setEffect().setUnlocalizedName("rune_isa").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_isa"); + rune_dagaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_dagaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_dagaz"); + rune_hagalaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_hagalaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_hagalaz"); + rune_jera = new ItemCustomLore().setEffect().setUnlocalizedName("rune_jera").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_jera"); + rune_thurisaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_thurisaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_thurisaz"); ams_catalyst_blank = new Item().setUnlocalizedName("ams_catalyst_blank").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_blank"); ams_catalyst_aluminium = new ItemCatalyst(0xCCCCCC, 1000000, 1.15F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_aluminium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_aluminium"); @@ -3198,29 +2954,27 @@ public class ModItems { singularity_spark = new ItemDrop().setUnlocalizedName("singularity_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_spark_alt"); pellet_antimatter = new ItemDrop().setUnlocalizedName("pellet_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":pellet_antimatter"); crystal_xen = new ItemDrop().setUnlocalizedName("crystal_xen").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":crystal_xen"); - inf_water = new ItemInfiniteFluid(Fluids.WATER, 50).setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water"); - inf_water_mk2 = new ItemInfiniteFluid(Fluids.WATER, 500).setUnlocalizedName("inf_water_mk2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water_mk2"); - stamp_stone_flat = new ItemStamp(10, StampType.FLAT).setUnlocalizedName("stamp_stone_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_flat"); - stamp_stone_plate = new ItemStamp(10, StampType.PLATE).setUnlocalizedName("stamp_stone_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_plate"); - stamp_stone_wire = new ItemStamp(10, StampType.WIRE).setUnlocalizedName("stamp_stone_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_wire"); - stamp_stone_circuit = new ItemStamp(10, StampType.CIRCUIT).setUnlocalizedName("stamp_stone_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_circuit"); - stamp_iron_flat = new ItemStamp(50, StampType.FLAT).setUnlocalizedName("stamp_iron_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_flat"); - stamp_iron_plate = new ItemStamp(50, StampType.PLATE).setUnlocalizedName("stamp_iron_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_plate"); - stamp_iron_wire = new ItemStamp(50, StampType.WIRE).setUnlocalizedName("stamp_iron_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_wire"); - stamp_iron_circuit = new ItemStamp(50, StampType.CIRCUIT).setUnlocalizedName("stamp_iron_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_circuit"); - stamp_steel_flat = new ItemStamp(100, StampType.FLAT).setUnlocalizedName("stamp_steel_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_flat"); - stamp_steel_plate = new ItemStamp(100, StampType.PLATE).setUnlocalizedName("stamp_steel_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_plate"); - stamp_steel_wire = new ItemStamp(100, StampType.WIRE).setUnlocalizedName("stamp_steel_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_wire"); - stamp_steel_circuit = new ItemStamp(100, StampType.CIRCUIT).setUnlocalizedName("stamp_steel_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_circuit"); - stamp_titanium_flat = new ItemStamp(150, StampType.FLAT).setUnlocalizedName("stamp_titanium_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_flat"); - stamp_titanium_plate = new ItemStamp(150, StampType.PLATE).setUnlocalizedName("stamp_titanium_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_plate"); - stamp_titanium_wire = new ItemStamp(150, StampType.WIRE).setUnlocalizedName("stamp_titanium_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_wire"); - stamp_titanium_circuit = new ItemStamp(150, StampType.CIRCUIT).setUnlocalizedName("stamp_titanium_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_circuit"); - stamp_obsidian_flat = new ItemStamp(170, StampType.FLAT).setUnlocalizedName("stamp_obsidian_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_flat"); - stamp_obsidian_plate = new ItemStamp(170, StampType.PLATE).setUnlocalizedName("stamp_obsidian_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_plate"); - stamp_obsidian_wire = new ItemStamp(170, StampType.WIRE).setUnlocalizedName("stamp_obsidian_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_wire"); - stamp_obsidian_circuit = new ItemStamp(170, StampType.CIRCUIT).setUnlocalizedName("stamp_obsidian_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_circuit"); + stamp_stone_flat = new ItemStamp(32, StampType.FLAT).setUnlocalizedName("stamp_stone_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_flat"); + stamp_stone_plate = new ItemStamp(32, StampType.PLATE).setUnlocalizedName("stamp_stone_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_plate"); + stamp_stone_wire = new ItemStamp(32, StampType.WIRE).setUnlocalizedName("stamp_stone_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_wire"); + stamp_stone_circuit = new ItemStamp(32, StampType.CIRCUIT).setUnlocalizedName("stamp_stone_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_circuit"); + stamp_iron_flat = new ItemStamp(64, StampType.FLAT).setUnlocalizedName("stamp_iron_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_flat"); + stamp_iron_plate = new ItemStamp(64, StampType.PLATE).setUnlocalizedName("stamp_iron_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_plate"); + stamp_iron_wire = new ItemStamp(64, StampType.WIRE).setUnlocalizedName("stamp_iron_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_wire"); + stamp_iron_circuit = new ItemStamp(64, StampType.CIRCUIT).setUnlocalizedName("stamp_iron_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_circuit"); + stamp_steel_flat = new ItemStamp(192, StampType.FLAT).setUnlocalizedName("stamp_steel_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_flat"); + stamp_steel_plate = new ItemStamp(192, StampType.PLATE).setUnlocalizedName("stamp_steel_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_plate"); + stamp_steel_wire = new ItemStamp(192, StampType.WIRE).setUnlocalizedName("stamp_steel_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_wire"); + stamp_steel_circuit = new ItemStamp(192, StampType.CIRCUIT).setUnlocalizedName("stamp_steel_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_circuit"); + stamp_titanium_flat = new ItemStamp(256, StampType.FLAT).setUnlocalizedName("stamp_titanium_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_flat"); + stamp_titanium_plate = new ItemStamp(256, StampType.PLATE).setUnlocalizedName("stamp_titanium_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_plate"); + stamp_titanium_wire = new ItemStamp(256, StampType.WIRE).setUnlocalizedName("stamp_titanium_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_wire"); + stamp_titanium_circuit = new ItemStamp(256, StampType.CIRCUIT).setUnlocalizedName("stamp_titanium_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_circuit"); + stamp_obsidian_flat = new ItemStamp(512, StampType.FLAT).setUnlocalizedName("stamp_obsidian_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_flat"); + stamp_obsidian_plate = new ItemStamp(512, StampType.PLATE).setUnlocalizedName("stamp_obsidian_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_plate"); + stamp_obsidian_wire = new ItemStamp(512, StampType.WIRE).setUnlocalizedName("stamp_obsidian_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_wire"); + stamp_obsidian_circuit = new ItemStamp(512, StampType.CIRCUIT).setUnlocalizedName("stamp_obsidian_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_circuit"); stamp_desh_flat = new ItemStamp(0, StampType.FLAT).setUnlocalizedName("stamp_desh_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_flat"); stamp_desh_plate = new ItemStamp(0, StampType.PLATE).setUnlocalizedName("stamp_desh_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_plate"); stamp_desh_wire = new ItemStamp(0, StampType.WIRE).setUnlocalizedName("stamp_desh_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_wire"); @@ -3229,6 +2983,7 @@ public class ModItems { stamp_44 = new ItemStamp(1000, StampType.C44).setUnlocalizedName("stamp_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44"); stamp_9 = new ItemStamp(1000, StampType.C9).setUnlocalizedName("stamp_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9"); stamp_50 = new ItemStamp(1000, StampType.C50).setUnlocalizedName("stamp_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50"); + stamp_book = new ItemStampBook().setUnlocalizedName("stamp_book").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":stamp_book"); stamp_desh_357 = new ItemStamp(0, StampType.C357).setUnlocalizedName("stamp_desh_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357_desh"); stamp_desh_44 = new ItemStamp(0, StampType.C44).setUnlocalizedName("stamp_desh_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44_desh"); @@ -3243,7 +2998,25 @@ public class ModItems { mold_base = new Item().setUnlocalizedName("mold_base").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":mold_base"); mold = new ItemMold().setUnlocalizedName("mold").setCreativeTab(MainRegistry.controlTab); scraps = new ItemScraps().aot(Mats.MAT_BISMUTH, "scraps_bismuth").setUnlocalizedName("scraps").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scraps"); + ingot_raw = new ItemAutogen(MaterialShapes.INGOT).setUnlocalizedName("ingot_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_raw"); plate_cast = new ItemAutogen(MaterialShapes.CASTPLATE).aot(Mats.MAT_BISMUTH, "plate_cast_bismuth").setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); + plate_welded = new ItemAutogen(MaterialShapes.WELDEDPLATE).setUnlocalizedName("plate_welded").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_welded"); + heavy_component = new ItemAutogen(MaterialShapes.HEAVY_COMPONENT).setUnlocalizedName("heavy_component").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":heavy_component"); + wire_fine = new ItemAutogen(MaterialShapes.WIRE) + .aot(Mats.MAT_ALUMINIUM, "wire_aluminium").aot(Mats.MAT_COPPER, "wire_copper") + .aot(Mats.MAT_MINGRADE, "wire_red_copper").aot(Mats.MAT_GOLD, "wire_gold") + .aot(Mats.MAT_TUNGSTEN, "wire_tungsten").aot(Mats.MAT_ALLOY, "wire_advanced_alloy") + .aot(Mats.MAT_CARBON, "wire_carbon").aot(Mats.MAT_SCHRABIDIUM, "wire_schrabidium") + .aot(Mats.MAT_MAGTUNG, "wire_magnetized_tungsten").setUnlocalizedName("wire_fine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_fine"); + wire_dense = new ItemAutogen(MaterialShapes.DENSEWIRE).setUnlocalizedName("wire_dense").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_dense"); + + part_barrel_light = new ItemAutogen(MaterialShapes.LIGHTBARREL).setUnlocalizedName("part_barrel_light").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_barrel_light"); + part_barrel_heavy = new ItemAutogen(MaterialShapes.HEAVYBARREL).setUnlocalizedName("part_barrel_heavy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_barrel_heavy"); + part_receiver_light = new ItemAutogen(MaterialShapes.LIGHTRECEIVER).setUnlocalizedName("part_receiver_light").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_receiver_light"); + part_receiver_heavy = new ItemAutogen(MaterialShapes.HEAVYRECEIVER).setUnlocalizedName("part_receiver_heavy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_receiver_heavy"); + part_mechanism = new ItemAutogen(MaterialShapes.MECHANISM).setUnlocalizedName("part_mechanism").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_mechanism"); + part_stock = new ItemAutogen(MaterialShapes.STOCK).setUnlocalizedName("part_stock").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_stock"); + part_grip = new ItemAutogen(MaterialShapes.GRIP).setUnlocalizedName("part_grip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_grip"); part_lithium = new Item().setUnlocalizedName("part_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_lithium"); part_beryllium = new Item().setUnlocalizedName("part_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_beryllium"); @@ -3258,10 +3031,9 @@ public class ModItems { laser_crystal_digamma = new ItemFELCrystal(EnumWavelengths.DRX).setUnlocalizedName("laser_crystal_digamma").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_digamma"); thermo_element = new Item().setUnlocalizedName("thermo_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":thermo_element"); - //limiter = new Item().setUnlocalizedName("limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":limiter"); catalytic_converter = new Item().setUnlocalizedName("catalytic_converter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":catalytic_converter"); - antiknock = new Item().setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); + fuel_additive = new ItemEnumMulti(ItemEnums.EnumFuelAdditive.class, true, true).setUnlocalizedName("fuel_additive").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuel_additive"); canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":canister_empty"); canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_empty"); @@ -3337,8 +3109,8 @@ public class ModItems { gas_mask_filter_rag = new ItemFilter().setUnlocalizedName("gas_mask_filter_rag").setTextureName(RefStrings.MODID + ":gas_mask_filter_rag"); gas_mask_filter_piss = new ItemFilter().setUnlocalizedName("gas_mask_filter_piss").setTextureName(RefStrings.MODID + ":gas_mask_filter_piss"); jetpack_tank = new ItemSyringe().setUnlocalizedName("jetpack_tank").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":jetpack_tank"); - gun_kit_1 = new ItemSyringe().setUnlocalizedName("gun_kit_1").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_1"); - gun_kit_2 = new ItemSyringe().setUnlocalizedName("gun_kit_2").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_2"); + gun_kit_1 = new ItemRepairKit(10).setUnlocalizedName("gun_kit_1").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_1"); + gun_kit_2 = new ItemRepairKit(100).setUnlocalizedName("gun_kit_2").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_2"); cbt_device = new ItemSyringe().setUnlocalizedName("cbt_device").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":cbt_device"); cigarette = new ItemCigarette().setUnlocalizedName("cigarette").setFull3D().setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cigarette"); crackpipe = new ItemCigarette().setUnlocalizedName("crackpipe").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crackpipe"); @@ -3395,13 +3167,20 @@ public class ModItems { injector_5htp = new ItemModAuto().setUnlocalizedName("injector_5htp").setTextureName(RefStrings.MODID + ":injector_5htp"); injector_knife = new ItemModKnife().setUnlocalizedName("injector_knife").setTextureName(RefStrings.MODID + ":injector_knife"); medal_liquidator = new ItemModMedal().setUnlocalizedName("medal_liquidator").setTextureName(RefStrings.MODID + ":medal_liquidator"); - v1 = new ItemModV1().setUnlocalizedName("v1").setTextureName(RefStrings.MODID + ":v1"); + bottled_cloud = new ItemModCloud().setUnlocalizedName("bottled_cloud").setTextureName(RefStrings.MODID + ":bottled_cloud"); protection_charm = new ItemModCharm().setUnlocalizedName("protection_charm").setTextureName(RefStrings.MODID + ":protection_charm"); meteor_charm = new ItemModCharm().setUnlocalizedName("meteor_charm").setTextureName(RefStrings.MODID + ":meteor_charm"); neutrino_lens = new ItemModLens().setUnlocalizedName("neutrino_lens").setTextureName(RefStrings.MODID + ":neutrino_lens"); gas_tester = new ItemModSensor().setUnlocalizedName("gas_tester").setTextureName(RefStrings.MODID + ":gas_tester"); defuser_gold = new ItemModDefuser().setUnlocalizedName("defuser_gold").setTextureName(RefStrings.MODID + ":defuser_gold"); ballistic_gauntlet = new ItemModTwoKick().setUnlocalizedName("ballistic_gauntlet").setTextureName(RefStrings.MODID + ":ballistic_gauntlet"); + night_vision = new ItemModNightVision().setUnlocalizedName("night_vision").setTextureName(RefStrings.MODID + ":night_vision"); + card_aos = new ItemModCard().setUnlocalizedName("card_aos").setTextureName(RefStrings.MODID + ":card_aos"); + card_qos = new ItemModCard().setUnlocalizedName("card_qos").setTextureName(RefStrings.MODID + ":card_qos"); + australium_iii = new ItemModShield(25F).setUnlocalizedName("australium_iii").setTextureName(RefStrings.MODID + ":australium_iii"); + armor_battery = new ItemModBattery(1.25D).setUnlocalizedName("armor_battery").setTextureName(RefStrings.MODID + ":armor_battery"); + armor_battery_mk2 = new ItemModBattery(1.5D).setUnlocalizedName("armor_battery_mk2").setTextureName(RefStrings.MODID + ":armor_battery_mk2"); + armor_battery_mk3 = new ItemModBattery(2D).setUnlocalizedName("armor_battery_mk3").setTextureName(RefStrings.MODID + ":armor_battery_mk3"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -3409,8 +3188,6 @@ public class ModItems { cap_rad = new Item().setUnlocalizedName("cap_rad").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_rad"); cap_korl = new Item().setUnlocalizedName("cap_korl").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_korl"); cap_fritz = new Item().setUnlocalizedName("cap_fritz").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_fritz"); - cap_sunset = new Item().setUnlocalizedName("cap_sunset").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_sunset"); - cap_star = new Item().setUnlocalizedName("cap_star").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_star"); ring_pull = new Item().setUnlocalizedName("ring_pull").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ring_pull"); can_empty = new Item().setUnlocalizedName("can_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_empty"); @@ -3434,45 +3211,18 @@ public class ModItems { bottle2_fritz = new ItemEnergy().makeBottle(bottle2_empty, cap_fritz).setUnlocalizedName("bottle2_fritz").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_fritz"); bottle2_korl_special = new ItemEnergy().makeBottle(bottle2_empty, cap_korl).setUnlocalizedName("bottle2_korl_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_korl"); bottle2_fritz_special = new ItemEnergy().makeBottle(bottle2_empty, cap_fritz).setUnlocalizedName("bottle2_fritz_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_fritz"); - bottle2_sunset = new ItemEnergy().makeBottle(bottle2_empty, cap_sunset).setUnlocalizedName("bottle2_sunset").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_sunset"); flask_infusion = new ItemFlask().setUnlocalizedName("flask_infusion").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":flask"); chocolate_milk = new ItemEnergy().setUnlocalizedName("chocolate_milk").setTextureName(RefStrings.MODID + ":chocolate_milk"); coffee = new ItemEnergy().setUnlocalizedName("coffee").setTextureName(RefStrings.MODID + ":coffee"); coffee_radium = new ItemEnergy().setUnlocalizedName("coffee_radium").setTextureName(RefStrings.MODID + ":coffee_radium"); chocolate = new ItemPill(0).setUnlocalizedName("chocolate").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":chocolate"); - - //canned_beef = new ItemLemon(8, 5, false).setUnlocalizedName("canned_beef").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_beef"); - //canned_tuna = new ItemLemon(4, 5, false).setUnlocalizedName("canned_tuna").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tuna"); - //canned_mystery = new ItemLemon(6, 5, false).setUnlocalizedName("canned_mystery").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_mystery"); - //canned_pashtet = new ItemLemon(4, 5, false).setUnlocalizedName("canned_pashtet").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_pashtet"); - //canned_cheese = new ItemLemon(3, 5, false).setUnlocalizedName("canned_cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_cheese"); - //canned_jizz = new ItemLemon(15, 5, false).setUnlocalizedName("canned_jizz").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_jizz"); - //canned_milk = new ItemLemon(5, 5, false).setUnlocalizedName("canned_milk").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_milk"); - //canned_ass = new ItemLemon(6, 5, false).setUnlocalizedName("canned_ass").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_ass"); - //canned_pizza = new ItemLemon(8, 5, false).setUnlocalizedName("canned_pizza").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_pizza"); - //canned_tube = new ItemLemon(2, 5, false).setUnlocalizedName("canned_tube").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tube"); - //canned_tomato = new ItemLemon(4, 5, false).setUnlocalizedName("canned_tomato").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tomato"); - //canned_asbestos = new ItemLemon(7, 5, false).setUnlocalizedName("canned_asbestos").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_asbestos"); - //canned_bhole = new ItemLemon(10, 5, false).setUnlocalizedName("canned_bhole").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_bhole"); - //canned_hotdogs = new ItemLemon(5, 5, false).setUnlocalizedName("canned_hotdogs").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_hotdogs"); - //canned_leftovers = new ItemLemon(1, 5, false).setUnlocalizedName("canned_leftovers").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_leftovers"); - //canned_yogurt = new ItemLemon(3, 5, false).setUnlocalizedName("canned_yogurt").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_yogurt"); - //canned_stew = new ItemLemon(5, 5, false).setUnlocalizedName("canned_stew").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_stew"); - //canned_chinese = new ItemLemon(6, 5, false).setUnlocalizedName("canned_chinese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_chinese"); - //canned_oil = new ItemLemon(3, 5, false).setUnlocalizedName("canned_oil").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_oil"); - //canned_fist = new ItemLemon(6, 5, false).setUnlocalizedName("canned_fist").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_fist"); - //canned_spam = new ItemLemon(8, 5, false).setUnlocalizedName("canned_spam").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_spam"); - //canned_fried = new ItemLemon(10, 5, false).setUnlocalizedName("canned_fried").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_fried"); - //canned_napalm = new ItemLemon(6, 5, false).setUnlocalizedName("canned_napalm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_napalm"); - //canned_diesel = new ItemLemon(6, 5, false).setUnlocalizedName("canned_diesel").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_diesel"); - //canned_kerosene = new ItemLemon(6, 5, false).setUnlocalizedName("canned_kerosene").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_kerosene"); - //canned_recursion = new ItemLemon(1, 5, false).setUnlocalizedName("canned_recursion").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_recursion"); - //canned_bark = new ItemLemon(2, 5, false).setUnlocalizedName("canned_bark").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_bark"); canned_conserve = (ItemEnumMulti) new ItemConserve().setUnlocalizedName("canned_conserve").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned"); can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); + boat_rubber = new ItemBoatRubber().setUnlocalizedName("boat_rubber").setTextureName(RefStrings.MODID + ":boat_rubber"); cart = new ItemModMinecart().setUnlocalizedName("cart"); train = new ItemTrain().setUnlocalizedName("train"); + drone = new ItemDrone().setUnlocalizedName("drone"); coin_creeper = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_creeper").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_creeper"); coin_radiation = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_radiation").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_radiation"); @@ -3480,17 +3230,6 @@ public class ModItems { coin_worm = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_worm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_worm"); coin_ufo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_ufo").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_ufo"); - recycled_ground = new Item().setUnlocalizedName("recycled_ground").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_ground"); - recycled_rock = new Item().setUnlocalizedName("recycled_rock").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_rock"); - recycled_metal = new Item().setUnlocalizedName("recycled_metal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_metal"); - recycled_refined = new Item().setUnlocalizedName("recycled_refined").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_refined"); - recycled_organic = new Item().setUnlocalizedName("recycled_organic").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_organic"); - recycled_crystal = new Item().setUnlocalizedName("recycled_crystal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_crystal"); - recycled_explosive = new Item().setUnlocalizedName("recycled_explosive").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_explosive"); - recycled_electronic = new Item().setUnlocalizedName("recycled_electronic").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_electronic"); - recycled_nuclear = new Item().setUnlocalizedName("recycled_nuclear").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_nuclear"); - recycled_misc = new Item().setUnlocalizedName("recycled_misc").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_misc"); - rod_empty = new Item().setUnlocalizedName("rod_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_empty"); rod = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod").setContainerItem(ModItems.rod_empty).setCreativeTab(MainRegistry.controlTab); rod_dual_empty = new Item().setUnlocalizedName("rod_dual_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_dual_empty"); @@ -3556,6 +3295,10 @@ public class ModItems { plate_fuel_sa326 = new ItemPlateFuel(2000000).setFunction(FunctionEnum.LINEAR, 80).setUnlocalizedName("plate_fuel_sa326").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_sa326"); plate_fuel_ra226be = new ItemPlateFuel(1300000).setFunction(FunctionEnum.PASSIVE, 30).setUnlocalizedName("plate_fuel_ra226be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_ra226be"); plate_fuel_pu238be = new ItemPlateFuel(1000000).setFunction(FunctionEnum.PASSIVE, 50).setUnlocalizedName("plate_fuel_pu238be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_pu238be"); + + pwr_fuel = new ItemPWRFuel().setUnlocalizedName("pwr_fuel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel"); + pwr_fuel_hot = new ItemEnumMulti(EnumPWRFuel.class, true, false).setUnlocalizedName("pwr_fuel_hot").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel_hot"); + pwr_fuel_depleted = new ItemEnumMulti(EnumPWRFuel.class, true, false).setUnlocalizedName("pwr_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel_depleted"); rbmk_lid = new ItemRBMKLid().setUnlocalizedName("rbmk_lid").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid"); rbmk_lid_glass = new ItemRBMKLid().setUnlocalizedName("rbmk_lid_glass").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid_glass"); @@ -3640,7 +3383,7 @@ public class ModItems { .setUnlocalizedName("rbmk_fuel_lep").setTextureName(RefStrings.MODID + ":rbmk_fuel_lep"); rbmk_fuel_mep = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mep) .setYield(100000000D) - .setStats(35, 20) + .setStats(35) .setFunction(EnumBurnFunc.SQUARE_ROOT) .setMeltingPoint(2744) .setUnlocalizedName("rbmk_fuel_mep").setTextureName(RefStrings.MODID + ":rbmk_fuel_mep"); @@ -3838,9 +3581,25 @@ public class ModItems { .setHeat(1.0D) .setMeltingPoint(100000) .setUnlocalizedName("rbmk_fuel_test").setTextureName(RefStrings.MODID + ":rbmk_fuel_test"); + /* Experimental flux curve shit + rbmk_fuel_curve = (ItemRBMKRod) new ItemRBMKRod("3D Flux Curve Test") + .setFluxCurve(true) + .setOutputFluxCurve((fluxQuantity, fluxRatio) -> fluxQuantity * (1 - Math.pow(fluxRatio, 2))) + .setDepletionOutputRatioCurve((ratioIn, depletion) -> Math.pow(ratioIn, 2) * depletion) + .setYield(1000000D) + .setStats(75) + .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setHeat(1.5D) + .setMeltingPoint(100000) + .setUnlocalizedName("rbmk_fuel_curve").setTextureName(RefStrings.MODID + ":rbmk_fuel_curve"); + */ watz_pellet = new ItemWatzPellet().setUnlocalizedName("watz_pellet").setTextureName(RefStrings.MODID + ":watz_pellet"); watz_pellet_depleted = new ItemWatzPellet().setUnlocalizedName("watz_pellet_depleted").setTextureName(RefStrings.MODID + ":watz_pellet"); + + icf_pellet_empty = new Item().setUnlocalizedName("icf_pellet_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet_empty"); + icf_pellet = new ItemICFPellet().setUnlocalizedName("icf_pellet").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet"); + icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":icf_pellet_depleted"); trinitite = new ItemNuclearWaste().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); nuclear_waste_long = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); @@ -3860,6 +3619,7 @@ public class ModItems { scrap_oil = new Item().setUnlocalizedName("scrap_oil").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_oil"); scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear"); containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":containment_box"); + plastic_bag = new ItemPlasticBag().setUnlocalizedName("plastic_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plastic_bag"); debris_graphite = new Item().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite"); debris_metal = new Item().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal"); @@ -3885,53 +3645,47 @@ public class ModItems { pellet_buckshot = new Item().setUnlocalizedName("pellet_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_lead"); pellet_flechette = new Item().setUnlocalizedName("pellet_flechette").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_flechette"); pellet_chlorophyte = new Item().setUnlocalizedName("pellet_chlorophyte").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_chlorophyte"); - pellet_mercury = new Item().setUnlocalizedName("pellet_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_mercury"); - pellet_meteorite = new Item().setUnlocalizedName("pellet_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_meteorite"); pellet_canister = new Item().setUnlocalizedName("pellet_canister").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_canister"); pellet_claws = new Item().setUnlocalizedName("pellet_claws").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_claws"); pellet_charged = new Item().setUnlocalizedName("pellet_charged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_charged"); - pellet_schrabidium = new WatzFuel(50000, 140000, 0.975F, 200, 1.05F, 1.05F).setUnlocalizedName("pellet_schrabidium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_schrabidium").setMaxStackSize(1); - pellet_hes = new WatzFuel(108000, 65000, 1F, 85, 1, 1.025F).setUnlocalizedName("pellet_hes").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_hes").setMaxStackSize(1); - pellet_mes = new WatzFuel(216000, 23000, 1.025F, 50, 1, 1F).setUnlocalizedName("pellet_mes").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_mes").setMaxStackSize(1); - pellet_les = new WatzFuel(432000, 7000, 1.05F, 15, 1, 0.975F).setUnlocalizedName("pellet_les").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_les").setMaxStackSize(1); - pellet_beryllium = new WatzFuel(864000, 50, 1.05F, 0, 0.95F, 1.025F).setUnlocalizedName("pellet_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_beryllium").setMaxStackSize(1); - pellet_neptunium = new WatzFuel(216000, 3000, 1.1F, 25, 1.1F, 1.005F).setUnlocalizedName("pellet_neptunium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_neptunium").setMaxStackSize(1); - pellet_lead = new WatzFuel(1728000, 0, 0.95F, 0, 0.95F, 0.95F).setUnlocalizedName("pellet_lead").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_lead").setMaxStackSize(1); - pellet_advanced = new WatzFuel(216000, 1000, 1.1F, 0, 0.995F, 0.99F).setUnlocalizedName("pellet_advanced").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_advanced").setMaxStackSize(1); - designator = new ItemDesingator().setUnlocalizedName("designator").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator"); designator_range = new ItemDesingatorRange().setUnlocalizedName("designator_range").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_range_alt"); designator_manual = new ItemDesingatorManual().setUnlocalizedName("designator_manual").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_manual"); designator_arty_range = new ItemDesignatorArtyRange().setUnlocalizedName("designator_arty_range").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_arty_range"); + launch_code_piece = new Item().setUnlocalizedName("launch_code_piece").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code_piece"); + launch_code = new Item().setUnlocalizedName("launch_code").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code"); + launch_key = new Item().setUnlocalizedName("launch_key").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_key"); missile_assembly = new Item().setUnlocalizedName("missile_assembly").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":missile_assembly"); - missile_generic = new Item().setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic"); - missile_anti_ballistic = new Item().setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); - missile_incendiary = new Item().setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary"); - missile_cluster = new Item().setUnlocalizedName("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster"); - missile_buster = new Item().setUnlocalizedName("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster"); - missile_strong = new Item().setUnlocalizedName("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_strong"); - missile_incendiary_strong = new Item().setUnlocalizedName("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary_strong"); - missile_cluster_strong = new Item().setUnlocalizedName("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster_strong"); - missile_buster_strong = new Item().setUnlocalizedName("missile_buster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster_strong"); - missile_emp_strong = new Item().setUnlocalizedName("missile_emp_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp_strong"); - missile_burst = new Item().setUnlocalizedName("missile_burst").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_burst"); - missile_inferno = new Item().setUnlocalizedName("missile_inferno").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_inferno"); - missile_rain = new Item().setUnlocalizedName("missile_rain").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_rain"); - missile_drill = new Item().setUnlocalizedName("missile_drill").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_drill"); - missile_nuclear = new Item().setUnlocalizedName("missile_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear"); - missile_nuclear_cluster = new Item().setUnlocalizedName("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear_cluster"); - missile_volcano = new ItemCustomLore().setUnlocalizedName("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_volcano"); - missile_endo = new Item().setUnlocalizedName("missile_endo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_endo"); - missile_exo = new Item().setUnlocalizedName("missile_exo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_exo"); - missile_doomsday = new Item().setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); - missile_taint = new Item().setUnlocalizedName("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_taint"); - missile_micro = new Item().setUnlocalizedName("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_micro"); - missile_bhole = new Item().setUnlocalizedName("missile_bhole").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_bhole"); - missile_schrabidium = new Item().setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); - missile_emp = new Item().setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); - missile_shuttle = new ItemMissileShuttle().setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); - missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_carrier"); + missile_generic = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic"); + missile_anti_ballistic = new ItemMissile(MissileFormFactor.ABM, MissileTier.TIER1).setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); + missile_incendiary = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary"); + missile_cluster = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster"); + missile_buster = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster"); + missile_decoy = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_decoy").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_decoy"); + missile_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_strong"); + missile_incendiary_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary_strong"); + missile_cluster_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster_strong"); + missile_buster_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_buster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster_strong"); + missile_emp_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_emp_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp_strong"); + missile_burst = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_burst").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_burst"); + missile_inferno = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_inferno").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_inferno"); + missile_rain = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_rain").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_rain"); + missile_drill = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_drill").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_drill"); + missile_nuclear = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear"); + missile_nuclear_cluster = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear_cluster"); + missile_volcano = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_volcano"); + missile_doomsday = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); + missile_doomsday_rusted = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).notLaunchable().setUnlocalizedName("missile_doomsday_rusted").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); + missile_taint = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_taint"); + missile_micro = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_micro"); + missile_bhole = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_bhole").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_bhole"); + missile_schrabidium = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); + missile_emp = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); + missile_shuttle = new ItemMissile(MissileFormFactor.OTHER, MissileTier.TIER3, MissileFuel.KEROSENE_PEROXIDE).setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); + missile_stealth = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER1).setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); + missile_test = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_test").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_micro"); + missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_carrier"); missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); missile_custom = new ItemCustomMissile().setUnlocalizedName("missile_custom").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_custom"); @@ -3948,148 +3702,149 @@ public class ModItems { sat_interface = new ItemSatInterface().setUnlocalizedName("sat_interface").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_interface"); sat_coord = new ItemSatInterface().setUnlocalizedName("sat_coord").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_coord"); sat_designator = new ItemSatDesignator().setUnlocalizedName("sat_designator").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_designator"); + sat_relay = new ItemSatChip().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay"); - mp_thruster_10_kerosene = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); - mp_thruster_10_kerosene_tec = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec"); - mp_thruster_10_solid = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F) .setUnlocalizedName("mp_thruster_10_solid"); - mp_thruster_10_xenon = new ItemMissile().makeThruster(FuelType.XENON, 1F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_thruster_10_xenon"); - mp_thruster_15_kerosene = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene"); - mp_thruster_15_kerosene_tec = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_15_kerosene_tec"); - mp_thruster_15_kerosene_dual = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_dual"); - mp_thruster_15_kerosene_triple = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_triple"); - mp_thruster_15_solid = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_solid"); - mp_thruster_15_solid_hexdecuple = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(25F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_solid_hexdecuple"); - mp_thruster_15_hydrogen = new ItemMissile().makeThruster(FuelType.HYDROGEN, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_hydrogen"); - mp_thruster_15_hydrogen_dual = new ItemMissile().makeThruster(FuelType.HYDROGEN, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_hydrogen_dual"); - mp_thruster_15_balefire_short = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire_short"); - mp_thruster_15_balefire = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire"); - mp_thruster_15_balefire_large = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setHealth(35F) .setUnlocalizedName("mp_thruster_15_balefire_large"); - mp_thruster_15_balefire_large_rad = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setAuthor("The Master").setHealth(35F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_balefire_large_rad"); - mp_thruster_20_kerosene = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene"); - mp_thruster_20_kerosene_dual = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_dual"); - mp_thruster_20_kerosene_triple = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_triple"); - mp_thruster_20_solid = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("It's basically just a big hole at the end of the fuel tank.").setUnlocalizedName("mp_thruster_20_solid"); - mp_thruster_20_solid_multi = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F) .setUnlocalizedName("mp_thruster_20_solid_multi"); - mp_thruster_20_solid_multier = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("Did I miscount? Hope not.").setUnlocalizedName("mp_thruster_20_solid_multier"); + mp_thruster_10_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); + mp_thruster_10_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec"); + mp_thruster_10_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F) .setUnlocalizedName("mp_thruster_10_solid"); + mp_thruster_10_xenon = new ItemCustomMissilePart().makeThruster(FuelType.XENON, 1F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_thruster_10_xenon"); + mp_thruster_15_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene"); + mp_thruster_15_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_15_kerosene_tec"); + mp_thruster_15_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_dual"); + mp_thruster_15_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_triple"); + mp_thruster_15_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_solid"); + mp_thruster_15_solid_hexdecuple = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(25F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_solid_hexdecuple"); + mp_thruster_15_hydrogen = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_hydrogen"); + mp_thruster_15_hydrogen_dual = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_hydrogen_dual"); + mp_thruster_15_balefire_short = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire_short"); + mp_thruster_15_balefire = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire"); + mp_thruster_15_balefire_large = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setHealth(35F) .setUnlocalizedName("mp_thruster_15_balefire_large"); + mp_thruster_15_balefire_large_rad = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setAuthor("The Master").setHealth(35F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_balefire_large_rad"); + mp_thruster_20_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene"); + mp_thruster_20_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_dual"); + mp_thruster_20_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_triple"); + mp_thruster_20_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("It's basically just a big hole at the end of the fuel tank.").setUnlocalizedName("mp_thruster_20_solid"); + mp_thruster_20_solid_multi = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F) .setUnlocalizedName("mp_thruster_20_solid_multi"); + mp_thruster_20_solid_multier = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("Did I miscount? Hope not.").setUnlocalizedName("mp_thruster_20_solid_multier"); - mp_stability_10_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_stability_10_flat"); - mp_stability_10_cruise = new ItemMissile().makeStability(0.25F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_stability_10_cruise"); - mp_stability_10_space = new ItemMissile().makeStability(0.35F, PartSize.SIZE_10).setHealth(5F).setRarity(Rarity.COMMON).setWittyText("Standing there alone, the ship is waiting / All systems are go, are you sure?") .setUnlocalizedName("mp_stability_10_space"); - mp_stability_15_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); - mp_stability_15_thin = new ItemMissile().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); - mp_stability_15_soyuz = new ItemMissile().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("СПюз!").setUnlocalizedName("mp_stability_15_soyuz"); - mp_stability_20_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20"); + mp_stability_10_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_stability_10_flat"); + mp_stability_10_cruise = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_stability_10_cruise"); + mp_stability_10_space = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_10).setHealth(5F).setRarity(Rarity.COMMON).setWittyText("Standing there alone, the ship is waiting / All systems are go, are you sure?") .setUnlocalizedName("mp_stability_10_space"); + mp_stability_15_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); + mp_stability_15_thin = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); + mp_stability_15_soyuz = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("СПюз!").setUnlocalizedName("mp_stability_15_soyuz"); + mp_stability_20_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20"); - mp_fuselage_10_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(20F).setUnlocalizedName("mp_fuselage_10_kerosene"); - mp_fuselage_10_kerosene_camo = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_kerosene_camo"); - mp_fuselage_10_kerosene_desert = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_kerosene_desert"); - mp_fuselage_10_kerosene_sky = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_kerosene_sky"); - mp_fuselage_10_kerosene_flames = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_kerosene_flames"); - mp_fuselage_10_kerosene_insulation = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(25F).setUnlocalizedName("mp_fuselage_10_kerosene_insulation"); - mp_fuselage_10_kerosene_sleek = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_kerosene_sleek"); - mp_fuselage_10_kerosene_metal = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Bolted Metal").setHealth(30F).setAuthor("Hoboy").setUnlocalizedName("mp_fuselage_10_kerosene_metal"); - mp_fuselage_10_kerosene_taint = ((ItemMissile) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_kerosene_taint"); + mp_fuselage_10_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(20F).setUnlocalizedName("mp_fuselage_10_kerosene"); + mp_fuselage_10_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_kerosene_camo"); + mp_fuselage_10_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_kerosene_desert"); + mp_fuselage_10_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_kerosene_sky"); + mp_fuselage_10_kerosene_flames = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_kerosene_flames"); + mp_fuselage_10_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(25F).setUnlocalizedName("mp_fuselage_10_kerosene_insulation"); + mp_fuselage_10_kerosene_sleek = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_kerosene_sleek"); + mp_fuselage_10_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Bolted Metal").setHealth(30F).setAuthor("Hoboy").setUnlocalizedName("mp_fuselage_10_kerosene_metal"); + mp_fuselage_10_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_kerosene_taint"); - mp_fuselage_10_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(25F) .setUnlocalizedName("mp_fuselage_10_solid"); - mp_fuselage_10_solid_flames = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_solid_flames"); - mp_fuselage_10_solid_insulation = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(30F).setUnlocalizedName("mp_fuselage_10_solid_insulation"); - mp_fuselage_10_solid_sleek = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_solid_sleek"); - mp_fuselage_10_solid_soviet_glory = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(35F).setTitle("Soviet Glory").setUnlocalizedName("mp_fuselage_10_solid_soviet_glory"); - mp_fuselage_10_solid_cathedral = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Satan").setTitle("Unholy Cathedral").setWittyText("Quakeesque!").setUnlocalizedName("mp_fuselage_10_solid_cathedral"); - mp_fuselage_10_solid_moonlit = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master & Hoboy").setTitle("Moonlit").setUnlocalizedName("mp_fuselage_10_solid_moonlit"); - mp_fuselage_10_solid_battery = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("wolfmonster222").setHealth(30F).setTitle("Ecstatic").setWittyText("I got caught eating batteries again :(").setUnlocalizedName("mp_fuselage_10_solid_battery"); - mp_fuselage_10_solid_duracell = ((ItemMissile) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Duracell").setHealth(30F).setWittyText("The crunchiest battery on the market!").setUnlocalizedName("mp_fuselage_10_solid_duracell"); + mp_fuselage_10_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(25F) .setUnlocalizedName("mp_fuselage_10_solid"); + mp_fuselage_10_solid_flames = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_solid_flames"); + mp_fuselage_10_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(30F).setUnlocalizedName("mp_fuselage_10_solid_insulation"); + mp_fuselage_10_solid_sleek = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_solid_sleek"); + mp_fuselage_10_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(35F).setTitle("Soviet Glory").setUnlocalizedName("mp_fuselage_10_solid_soviet_glory"); + mp_fuselage_10_solid_cathedral = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Satan").setTitle("Unholy Cathedral").setWittyText("Quakeesque!").setUnlocalizedName("mp_fuselage_10_solid_cathedral"); + mp_fuselage_10_solid_moonlit = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master & Hoboy").setTitle("Moonlit").setUnlocalizedName("mp_fuselage_10_solid_moonlit"); + mp_fuselage_10_solid_battery = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("wolfmonster222").setHealth(30F).setTitle("Ecstatic").setWittyText("I got caught eating batteries again :(").setUnlocalizedName("mp_fuselage_10_solid_battery"); + mp_fuselage_10_solid_duracell = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Duracell").setHealth(30F).setWittyText("The crunchiest battery on the market!").setUnlocalizedName("mp_fuselage_10_solid_duracell"); - mp_fuselage_10_xenon = new ItemMissile().makeFuselage(FuelType.XENON, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(20F) .setUnlocalizedName("mp_fuselage_10_xenon"); - mp_fuselage_10_xenon_bhole = ((ItemMissile) mp_fuselage_10_xenon).copy().setRarity(Rarity.RARE).setAuthor("Sten89").setTitle("Morceus-1457").setUnlocalizedName("mp_fuselage_10_xenon_bhole"); + mp_fuselage_10_xenon = new ItemCustomMissilePart().makeFuselage(FuelType.XENON, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(20F) .setUnlocalizedName("mp_fuselage_10_xenon"); + mp_fuselage_10_xenon_bhole = ((ItemCustomMissilePart) mp_fuselage_10_xenon).copy().setRarity(Rarity.RARE).setAuthor("Sten89").setTitle("Morceus-1457").setUnlocalizedName("mp_fuselage_10_xenon_bhole"); - mp_fuselage_10_long_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(30F).setUnlocalizedName("mp_fuselage_10_long_kerosene"); - mp_fuselage_10_long_kerosene_camo = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_camo"); - mp_fuselage_10_long_kerosene_desert = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_desert"); - mp_fuselage_10_long_kerosene_sky = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_sky"); - mp_fuselage_10_long_kerosene_flames = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_kerosene_flames"); - mp_fuselage_10_long_kerosene_insulation = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_insulation"); - mp_fuselage_10_long_kerosene_sleek = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_kerosene_sleek"); - mp_fuselage_10_long_kerosene_metal = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_metal"); - mp_fuselage_10_long_kerosene_dash = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Sam").setTitle("Dash").setWittyText("I wash my hands of it.").setCreativeTab(null).setUnlocalizedName("mp_fuselage_10_long_kerosene_dash"); - mp_fuselage_10_long_kerosene_taint = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_long_kerosene_taint"); - mp_fuselage_10_long_kerosene_vap = ((ItemMissile) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("VT-6/24").setTitle("Minty Contrail").setWittyText("Upper rivet!").setUnlocalizedName("mp_fuselage_10_long_kerosene_vap"); + mp_fuselage_10_long_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(30F).setUnlocalizedName("mp_fuselage_10_long_kerosene"); + mp_fuselage_10_long_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_camo"); + mp_fuselage_10_long_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_desert"); + mp_fuselage_10_long_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_sky"); + mp_fuselage_10_long_kerosene_flames = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_kerosene_flames"); + mp_fuselage_10_long_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_insulation"); + mp_fuselage_10_long_kerosene_sleek = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_kerosene_sleek"); + mp_fuselage_10_long_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_metal"); + mp_fuselage_10_long_kerosene_dash = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Sam").setTitle("Dash").setWittyText("I wash my hands of it.").setCreativeTab(null).setUnlocalizedName("mp_fuselage_10_long_kerosene_dash"); + mp_fuselage_10_long_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_long_kerosene_taint"); + mp_fuselage_10_long_kerosene_vap = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("VT-6/24").setTitle("Minty Contrail").setWittyText("Upper rivet!").setUnlocalizedName("mp_fuselage_10_long_kerosene_vap"); - mp_fuselage_10_long_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(35F) .setUnlocalizedName("mp_fuselage_10_long_solid"); - mp_fuselage_10_long_solid_flames = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_solid_flames"); - mp_fuselage_10_long_solid_insulation = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_solid_insulation"); - mp_fuselage_10_long_solid_sleek = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(45F).setUnlocalizedName("mp_fuselage_10_long_solid_sleek"); - mp_fuselage_10_long_solid_soviet_glory = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(45F).setTitle("Soviet Glory").setWittyText("Fully Automated Luxury Gay Space Communism!").setUnlocalizedName("mp_fuselage_10_long_solid_soviet_glory"); - mp_fuselage_10_long_solid_bullet = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setAuthor("Sam").setTitle("Bullet Bill").setUnlocalizedName("mp_fuselage_10_long_solid_bullet"); - mp_fuselage_10_long_solid_silvermoonlight = ((ItemMissile) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_10_long_solid_silvermoonlight"); + mp_fuselage_10_long_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(35F) .setUnlocalizedName("mp_fuselage_10_long_solid"); + mp_fuselage_10_long_solid_flames = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_solid_flames"); + mp_fuselage_10_long_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_solid_insulation"); + mp_fuselage_10_long_solid_sleek = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(45F).setUnlocalizedName("mp_fuselage_10_long_solid_sleek"); + mp_fuselage_10_long_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(45F).setTitle("Soviet Glory").setWittyText("Fully Automated Luxury Gay Space Communism!").setUnlocalizedName("mp_fuselage_10_long_solid_soviet_glory"); + mp_fuselage_10_long_solid_bullet = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setAuthor("Sam").setTitle("Bullet Bill").setUnlocalizedName("mp_fuselage_10_long_solid_bullet"); + mp_fuselage_10_long_solid_silvermoonlight = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_10_long_solid_silvermoonlight"); - mp_fuselage_10_15_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_kerosene"); - mp_fuselage_10_15_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F) .setUnlocalizedName("mp_fuselage_10_15_solid"); - mp_fuselage_10_15_hydrogen = new ItemMissile().makeFuselage(FuelType.HYDROGEN, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_hydrogen"); - mp_fuselage_10_15_balefire = new ItemMissile().makeFuselage(FuelType.BALEFIRE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_balefire"); + mp_fuselage_10_15_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_kerosene"); + mp_fuselage_10_15_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F) .setUnlocalizedName("mp_fuselage_10_15_solid"); + mp_fuselage_10_15_hydrogen = new ItemCustomMissilePart().makeFuselage(FuelType.HYDROGEN, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_hydrogen"); + mp_fuselage_10_15_balefire = new ItemCustomMissilePart().makeFuselage(FuelType.BALEFIRE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_balefire"); - mp_fuselage_15_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setAuthor("Hoboy").setHealth(50F).setUnlocalizedName("mp_fuselage_15_kerosene"); - mp_fuselage_15_kerosene_camo = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_15_kerosene_camo"); - mp_fuselage_15_kerosene_desert = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_15_kerosene_desert"); - mp_fuselage_15_kerosene_sky = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_15_kerosene_sky"); - mp_fuselage_15_kerosene_insulation = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(55F).setWittyText("Rest in spaghetti Columbia :(").setUnlocalizedName("mp_fuselage_15_kerosene_insulation"); - mp_fuselage_15_kerosene_metal = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bolted Metal").setHealth(60F).setWittyText("Metal frame with metal plating reinforced with bolted metal sheets and metal.").setUnlocalizedName("mp_fuselage_15_kerosene_metal"); - mp_fuselage_15_kerosene_decorated = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Decorated").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_decorated"); - mp_fuselage_15_kerosene_steampunk = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Steampunk").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_steampunk"); - mp_fuselage_15_kerosene_polite = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setAuthor("Hoboy").setTitle("Polite").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_polite"); - mp_fuselage_15_kerosene_blackjack = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setTitle("Queen Whiskey").setHealth(100F).setUnlocalizedName("mp_fuselage_15_kerosene_blackjack"); - mp_fuselage_15_kerosene_lambda = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("Lambda Complex").setHealth(75F).setWittyText("MAGNIFICENT MICROWAVE CASSEROLE").setUnlocalizedName("mp_fuselage_15_kerosene_lambda"); - mp_fuselage_15_kerosene_minuteman = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Spexta").setTitle("MX 1702").setUnlocalizedName("mp_fuselage_15_kerosene_minuteman"); - mp_fuselage_15_kerosene_pip = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("The Doctor").setTitle("LittlePip").setWittyText("31!").setCreativeTab(null).setUnlocalizedName("mp_fuselage_15_kerosene_pip"); - mp_fuselage_15_kerosene_taint = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setWittyText("DUN-DUN!").setUnlocalizedName("mp_fuselage_15_kerosene_taint"); - mp_fuselage_15_kerosene_yuck = ((ItemMissile) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Flesh").setWittyText("Note: Never clean DNA vials with your own spit.").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_yuck"); + mp_fuselage_15_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setAuthor("Hoboy").setHealth(50F).setUnlocalizedName("mp_fuselage_15_kerosene"); + mp_fuselage_15_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_15_kerosene_camo"); + mp_fuselage_15_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_15_kerosene_desert"); + mp_fuselage_15_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_15_kerosene_sky"); + mp_fuselage_15_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(55F).setWittyText("Rest in spaghetti Columbia :(").setUnlocalizedName("mp_fuselage_15_kerosene_insulation"); + mp_fuselage_15_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bolted Metal").setHealth(60F).setWittyText("Metal frame with metal plating reinforced with bolted metal sheets and metal.").setUnlocalizedName("mp_fuselage_15_kerosene_metal"); + mp_fuselage_15_kerosene_decorated = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Decorated").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_decorated"); + mp_fuselage_15_kerosene_steampunk = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Steampunk").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_steampunk"); + mp_fuselage_15_kerosene_polite = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setAuthor("Hoboy").setTitle("Polite").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_polite"); + mp_fuselage_15_kerosene_blackjack = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setTitle("Queen Whiskey").setHealth(100F).setUnlocalizedName("mp_fuselage_15_kerosene_blackjack"); + mp_fuselage_15_kerosene_lambda = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("Lambda Complex").setHealth(75F).setWittyText("MAGNIFICENT MICROWAVE CASSEROLE").setUnlocalizedName("mp_fuselage_15_kerosene_lambda"); + mp_fuselage_15_kerosene_minuteman = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Spexta").setTitle("MX 1702").setUnlocalizedName("mp_fuselage_15_kerosene_minuteman"); + mp_fuselage_15_kerosene_pip = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("The Doctor").setTitle("LittlePip").setWittyText("31!").setCreativeTab(null).setUnlocalizedName("mp_fuselage_15_kerosene_pip"); + mp_fuselage_15_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setWittyText("DUN-DUN!").setUnlocalizedName("mp_fuselage_15_kerosene_taint"); + mp_fuselage_15_kerosene_yuck = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Flesh").setWittyText("Note: Never clean DNA vials with your own spit.").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_yuck"); - mp_fuselage_15_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(60F) .setUnlocalizedName("mp_fuselage_15_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_solid_insulation = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(65F).setUnlocalizedName("mp_fuselage_15_solid_insulation"); - mp_fuselage_15_solid_desh = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Desh Plating").setHealth(80F).setUnlocalizedName("mp_fuselage_15_solid_desh"); - mp_fuselage_15_solid_soviet_glory = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Soviet Glory").setHealth(70F).setUnlocalizedName("mp_fuselage_15_solid_soviet_glory"); - mp_fuselage_15_solid_soviet_stank = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Soviet Stank").setHealth(15F).setWittyText("Aged like a fine wine! Well, almost.").setUnlocalizedName("mp_fuselage_15_solid_soviet_stank"); - mp_fuselage_15_solid_faust = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.LEGENDARY).setAuthor("Dr.Nostalgia").setTitle("Mighty Lauren").setHealth(250F).setWittyText("Welcome to Subway, may I take your order?").setUnlocalizedName("mp_fuselage_15_solid_faust"); - mp_fuselage_15_solid_silvermoonlight = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_15_solid_silvermoonlight"); - mp_fuselage_15_solid_snowy = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Dr.Nostalgia").setTitle("Chilly Day").setUnlocalizedName("mp_fuselage_15_solid_snowy"); - mp_fuselage_15_solid_panorama = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Panorama").setUnlocalizedName("mp_fuselage_15_solid_panorama"); - mp_fuselage_15_solid_roses = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bed of roses").setUnlocalizedName("mp_fuselage_15_solid_roses"); - mp_fuselage_15_solid_mimi = ((ItemMissile) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setTitle("Mimi-chan").setUnlocalizedName("mp_fuselage_15_solid_mimi"); + mp_fuselage_15_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(60F) .setUnlocalizedName("mp_fuselage_15_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(65F).setUnlocalizedName("mp_fuselage_15_solid_insulation"); + mp_fuselage_15_solid_desh = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Desh Plating").setHealth(80F).setUnlocalizedName("mp_fuselage_15_solid_desh"); + mp_fuselage_15_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Soviet Glory").setHealth(70F).setUnlocalizedName("mp_fuselage_15_solid_soviet_glory"); + mp_fuselage_15_solid_soviet_stank = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Soviet Stank").setHealth(15F).setWittyText("Aged like a fine wine! Well, almost.").setUnlocalizedName("mp_fuselage_15_solid_soviet_stank"); + mp_fuselage_15_solid_faust = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.LEGENDARY).setAuthor("Dr.Nostalgia").setTitle("Mighty Lauren").setHealth(250F).setWittyText("Welcome to Subway, may I take your order?").setUnlocalizedName("mp_fuselage_15_solid_faust"); + mp_fuselage_15_solid_silvermoonlight = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_15_solid_silvermoonlight"); + mp_fuselage_15_solid_snowy = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Dr.Nostalgia").setTitle("Chilly Day").setUnlocalizedName("mp_fuselage_15_solid_snowy"); + mp_fuselage_15_solid_panorama = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Panorama").setUnlocalizedName("mp_fuselage_15_solid_panorama"); + mp_fuselage_15_solid_roses = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bed of roses").setUnlocalizedName("mp_fuselage_15_solid_roses"); + mp_fuselage_15_solid_mimi = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setTitle("Mimi-chan").setUnlocalizedName("mp_fuselage_15_solid_mimi"); - mp_fuselage_15_hydrogen = new ItemMissile().makeFuselage(FuelType.HYDROGEN, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(50F) .setUnlocalizedName("mp_fuselage_15_hydrogen").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_hydrogen_cathedral = ((ItemMissile) mp_fuselage_15_hydrogen).copy().setRarity(Rarity.UNCOMMON).setAuthor("Satan").setTitle("Unholy Cathedral").setUnlocalizedName("mp_fuselage_15_hydrogen_cathedral"); + mp_fuselage_15_hydrogen = new ItemCustomMissilePart().makeFuselage(FuelType.HYDROGEN, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(50F) .setUnlocalizedName("mp_fuselage_15_hydrogen").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_hydrogen_cathedral = ((ItemCustomMissilePart) mp_fuselage_15_hydrogen).copy().setRarity(Rarity.UNCOMMON).setAuthor("Satan").setTitle("Unholy Cathedral").setUnlocalizedName("mp_fuselage_15_hydrogen_cathedral"); - mp_fuselage_15_balefire = new ItemMissile().makeFuselage(FuelType.BALEFIRE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(75F) .setUnlocalizedName("mp_fuselage_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_balefire = new ItemCustomMissilePart().makeFuselage(FuelType.BALEFIRE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(75F) .setUnlocalizedName("mp_fuselage_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_20_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setAuthor("Hoboy").setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_20_kerosene_magnusson = ((ItemMissile)mp_fuselage_15_20_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("White Forest Rocket").setWittyText("And get your cranio-conjugal parasite away from my nose cone!").setUnlocalizedName("mp_fuselage_15_20_kerosene_magnusson"); - mp_fuselage_15_20_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_20_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setAuthor("Hoboy").setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_20_kerosene_magnusson = ((ItemCustomMissilePart)mp_fuselage_15_20_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("White Forest Rocket").setWittyText("And get your cranio-conjugal parasite away from my nose cone!").setUnlocalizedName("mp_fuselage_15_20_kerosene_magnusson"); + mp_fuselage_15_20_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_20_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_20, PartSize.SIZE_20) .setUnlocalizedName("mp_f_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_20_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_20, PartSize.SIZE_20) .setUnlocalizedName("mp_f_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_warhead_10_he = new ItemMissile().makeWarhead(WarheadType.HE, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_incendiary = new ItemMissile().makeWarhead(WarheadType.INC, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_buster = new ItemMissile().makeWarhead(WarheadType.BUSTER, 5F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_nuclear = new ItemMissile().makeWarhead(WarheadType.NUCLEAR, 35F, 1.5F, PartSize.SIZE_10).setTitle("Tater Tot").setHealth(10F).setUnlocalizedName("mp_warhead_10_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_nuclear_large = new ItemMissile().makeWarhead(WarheadType.NUCLEAR, 75F, 2.5F, PartSize.SIZE_10).setTitle("Chernobyl Boris").setHealth(15F).setUnlocalizedName("mp_warhead_10_nuclear_large").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_taint = new ItemMissile().makeWarhead(WarheadType.TAINT, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.UNCOMMON).setWittyText("Eat my taint! Bureaucracy is dead and we killed it!").setUnlocalizedName("mp_warhead_10_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_cloud = new ItemMissile().makeWarhead(WarheadType.CLOUD, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_10_cloud").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_he = new ItemMissile().makeWarhead(WarheadType.HE, 50F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_incendiary = new ItemMissile().makeWarhead(WarheadType.INC, 35F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_nuclear = new ItemMissile().makeWarhead(WarheadType.NUCLEAR, 125F, 5F, PartSize.SIZE_15).setTitle("Auntie Bertha").setHealth(15F).setUnlocalizedName("mp_warhead_15_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_nuclear_shark = ((ItemMissile) mp_warhead_15_nuclear).copy().setRarity(Rarity.UNCOMMON).setTitle("Discount Bullet Bill").setWittyText("Nose art on a cannon bullet? Who does that?").setUnlocalizedName("mp_warhead_15_nuclear_shark"); - mp_warhead_15_nuclear_mimi = ((ItemMissile) mp_warhead_15_nuclear).copy().setRarity(Rarity.RARE).setTitle("FASHIONABLE MISSILE").setUnlocalizedName("mp_warhead_15_nuclear_mimi"); - mp_warhead_15_boxcar = new ItemMissile().makeWarhead(WarheadType.TX, 250F, 7.5F, PartSize.SIZE_15).setWittyText("?!?!").setHealth(35F).setRarity(Rarity.LEGENDARY).setUnlocalizedName("mp_warhead_15_boxcar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_n2 = new ItemMissile().makeWarhead(WarheadType.N2, 100F, 5F, PartSize.SIZE_15).setWittyText("[screams geometrically]").setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_15_n2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_balefire = new ItemMissile().makeWarhead(WarheadType.BALEFIRE, 100F, 7.5F, PartSize.SIZE_15).setRarity(Rarity.LEGENDARY).setAuthor("VT-6/24").setHealth(15F).setWittyText("Hightower, never forgetti.").setUnlocalizedName("mp_warhead_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_turbine = new ItemMissile().makeWarhead(WarheadType.TURBINE, 200F, 5F, PartSize.SIZE_15).setRarity(Rarity.SEWS_CLOTHES_AND_SUCKS_HORSE_COCK).setHealth(250F).setUnlocalizedName("mp_warhead_15_turbine").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_20_he = new ItemMissile().makeWarhead(WarheadType.HE, 15F, 1F, PartSize.SIZE_20) .setUnlocalizedName("mp_w_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_incendiary = new ItemCustomMissilePart().makeWarhead(WarheadType.INC, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_buster = new ItemCustomMissilePart().makeWarhead(WarheadType.BUSTER, 5F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_nuclear = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 35F, 1.5F, PartSize.SIZE_10).setTitle("Tater Tot").setHealth(10F).setUnlocalizedName("mp_warhead_10_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_nuclear_large = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 75F, 2.5F, PartSize.SIZE_10).setTitle("Chernobyl Boris").setHealth(15F).setUnlocalizedName("mp_warhead_10_nuclear_large").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_taint = new ItemCustomMissilePart().makeWarhead(WarheadType.TAINT, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.UNCOMMON).setWittyText("Eat my taint! Bureaucracy is dead and we killed it!").setUnlocalizedName("mp_warhead_10_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_cloud = new ItemCustomMissilePart().makeWarhead(WarheadType.CLOUD, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_10_cloud").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 50F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_incendiary = new ItemCustomMissilePart().makeWarhead(WarheadType.INC, 35F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_nuclear = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 125F, 5F, PartSize.SIZE_15).setTitle("Auntie Bertha").setHealth(15F).setUnlocalizedName("mp_warhead_15_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_nuclear_shark = ((ItemCustomMissilePart) mp_warhead_15_nuclear).copy().setRarity(Rarity.UNCOMMON).setTitle("Discount Bullet Bill").setWittyText("Nose art on a cannon bullet? Who does that?").setUnlocalizedName("mp_warhead_15_nuclear_shark"); + mp_warhead_15_nuclear_mimi = ((ItemCustomMissilePart) mp_warhead_15_nuclear).copy().setRarity(Rarity.RARE).setTitle("FASHIONABLE MISSILE").setUnlocalizedName("mp_warhead_15_nuclear_mimi"); + mp_warhead_15_boxcar = new ItemCustomMissilePart().makeWarhead(WarheadType.TX, 250F, 7.5F, PartSize.SIZE_15).setWittyText("?!?!").setHealth(35F).setRarity(Rarity.LEGENDARY).setUnlocalizedName("mp_warhead_15_boxcar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_n2 = new ItemCustomMissilePart().makeWarhead(WarheadType.N2, 100F, 5F, PartSize.SIZE_15).setWittyText("[screams geometrically]").setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_15_n2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_balefire = new ItemCustomMissilePart().makeWarhead(WarheadType.BALEFIRE, 100F, 7.5F, PartSize.SIZE_15).setRarity(Rarity.LEGENDARY).setAuthor("VT-6/24").setHealth(15F).setWittyText("Hightower, never forgetti.").setUnlocalizedName("mp_warhead_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_turbine = new ItemCustomMissilePart().makeWarhead(WarheadType.TURBINE, 200F, 5F, PartSize.SIZE_15).setRarity(Rarity.SEWS_CLOTHES_AND_SUCKS_HORSE_COCK).setHealth(250F).setUnlocalizedName("mp_warhead_15_turbine").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_20_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1F, PartSize.SIZE_20) .setUnlocalizedName("mp_w_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_chip_1 = new ItemMissile().makeChip(0.1F) .setUnlocalizedName("mp_c_1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_1"); - mp_chip_2 = new ItemMissile().makeChip(0.05F) .setUnlocalizedName("mp_c_2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_2"); - mp_chip_3 = new ItemMissile().makeChip(0.01F) .setUnlocalizedName("mp_c_3").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_3"); - mp_chip_4 = new ItemMissile().makeChip(0.005F) .setUnlocalizedName("mp_c_4").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_4"); - mp_chip_5 = new ItemMissile().makeChip(0.0F) .setUnlocalizedName("mp_c_5").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_5"); + mp_chip_1 = new ItemCustomMissilePart().makeChip(0.1F) .setUnlocalizedName("mp_c_1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_1"); + mp_chip_2 = new ItemCustomMissilePart().makeChip(0.05F) .setUnlocalizedName("mp_c_2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_2"); + mp_chip_3 = new ItemCustomMissilePart().makeChip(0.01F) .setUnlocalizedName("mp_c_3").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_3"); + mp_chip_4 = new ItemCustomMissilePart().makeChip(0.005F) .setUnlocalizedName("mp_c_4").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_4"); + mp_chip_5 = new ItemCustomMissilePart().makeChip(0.0F) .setUnlocalizedName("mp_c_5").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_5"); missile_skin_camo = new ItemCustomLore().setUnlocalizedName("missile_skin_camo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_camo"); missile_skin_desert = new ItemCustomLore().setUnlocalizedName("missile_skin_desert").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_desert"); @@ -4101,136 +3856,19 @@ public class ModItems { missile_skin_soviet_stank = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_stank").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_stank"); missile_skin_metal = new ItemCustomLore().setUnlocalizedName("missile_skin_metal").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_metal"); - ammo_12gauge = new ItemAmmo(Ammo12Gauge.class).setUnlocalizedName("ammo_12gauge"); - ammo_20gauge = new ItemAmmo(Ammo20Gauge.class).setUnlocalizedName("ammo_20gauge"); - ammo_4gauge = new ItemAmmo(Ammo4Gauge.class).setUnlocalizedName("ammo_4gauge"); - ammo_5mm = new ItemAmmo(Ammo5mm.class).setUnlocalizedName("ammo_5mm"); - ammo_9mm = new ItemAmmo(Ammo9mm.class).setUnlocalizedName("ammo_9mm"); - ammo_45 = new ItemAmmo(Ammo45ACP.class).setUnlocalizedName("ammo_45"); - ammo_556 = new ItemAmmo(Ammo556mm.class).setUnlocalizedName("ammo_556"); - ammo_762 = new ItemAmmo(Ammo762NATO.class).setUnlocalizedName("ammo_762"); - ammo_50ae = new ItemAmmo(Ammo50AE.class).setUnlocalizedName("ammo_50ae"); - ammo_50bmg = new ItemAmmo(Ammo50BMG.class).setUnlocalizedName("ammo_50bmg"); - ammo_75bolt = new ItemAmmo(Ammo75Bolt.class).setUnlocalizedName("ammo_75bolt"); - ammo_357 = new ItemAmmo(Ammo357Magnum.class).setUnlocalizedName("ammo_357"); - ammo_44 = new ItemAmmo(Ammo44Magnum.class).setUnlocalizedName("ammo_44"); - ammo_22lr = new ItemAmmo(Ammo22LR.class).setUnlocalizedName("ammo_22lr"); - ammo_rocket = new ItemAmmo(AmmoRocket.class).setUnlocalizedName("ammo_rocket"); - ammo_grenade = new ItemAmmo(AmmoGrenade.class).setUnlocalizedName("ammo_grenade"); - ammo_shell = new ItemAmmo(Ammo240Shell.class).setUnlocalizedName("ammo_shell"); + ammo_shell = (ItemEnumMulti) new ItemAmmo(Ammo240Shell.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_shell"); ammo_dgk = new ItemCustomLore().setUnlocalizedName("ammo_dgk").setCreativeTab(MainRegistry.weaponTab); - ammo_nuke = new ItemAmmo(AmmoFatman.class).setUnlocalizedName("ammo_nuke"); - ammo_fuel = new ItemAmmo(AmmoFlamethrower.class).setUnlocalizedName("ammo_fuel"); - ammo_fireext = new ItemAmmo(AmmoFireExt.class).setUnlocalizedName("ammo_fireext"); - ammo_cell = new ItemCustomLore().setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_cell").setMaxStackSize(16); - ammo_dart = (ItemEnumMulti) new ItemAmmo(AmmoDart.class).setUnlocalizedName("ammo_dart").setMaxStackSize(16); - ammo_stinger_rocket = new ItemAmmo(AmmoStinger.class).setUnlocalizedName("ammo_stinger_rocket"); - ammo_luna_sniper = new ItemAmmo(AmmoLunaticSniper.class).setUnlocalizedName("ammo_luna_sniper"); + ammo_fireext = (ItemEnumMulti) new ItemAmmo(AmmoFireExt.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_fireext"); ammo_misc = new ItemAmmo(AmmoMisc.class).setUnlocalizedName("ammo_misc"); - ammo_folly = new ItemCustomLore().setUnlocalizedName("ammo_folly"); - ammo_folly_nuclear = new ItemCustomLore().setUnlocalizedName("ammo_folly_nuclear"); - ammo_folly_du = new ItemCustomLore().setUnlocalizedName("ammo_folly_du"); ammo_arty = new ItemAmmoArty().setUnlocalizedName("ammo_arty"); ammo_himars = new ItemAmmoHIMARS().setUnlocalizedName("ammo_himars"); - gun_rpg = new ItemGunBase(GunRocketFactory.getGustavConfig()).setUnlocalizedName("gun_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_rpg"); - gun_karl = new ItemGunBase(GunRocketFactory.getKarlConfig()).setUnlocalizedName("gun_karl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_karl"); - gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); - gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro"); - gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); - gun_stinger = new ItemGunBase(GunRocketHomingFactory.getStingerConfig()).setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger"); - gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger"); - gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); - gun_revolver_saturnite = new ItemGunBase(Gun357MagnumFactory.getRevolverSaturniteConfig()).setUnlocalizedName("gun_revolver_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_saturnite"); - gun_revolver_gold = new ItemGunBase(Gun357MagnumFactory.getRevolverGoldConfig()).setUnlocalizedName("gun_revolver_gold").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_gold"); - gun_revolver_schrabidium = new ItemGunBase(Gun357MagnumFactory.getRevolverSchrabidiumConfig()).setUnlocalizedName("gun_revolver_schrabidium").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_schrabidium"); - gun_revolver_cursed = new ItemGunBase(Gun357MagnumFactory.getRevolverCursedConfig()).setUnlocalizedName("gun_revolver_cursed").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_cursed"); - gun_revolver_nightmare = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmareConfig()).setUnlocalizedName("gun_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare"); - gun_revolver_nightmare2 = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmare2Config()).setUnlocalizedName("gun_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2"); - gun_revolver_pip = new ItemGunBase(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); - gun_revolver_nopip = new ItemGunBase(Gun44MagnumFactory.getNovacConfig()).setUnlocalizedName("gun_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nopip"); - gun_revolver_blackjack = new ItemGunBase(Gun44MagnumFactory.getBlackjackConfig()).setUnlocalizedName("gun_revolver_blackjack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_blackjack"); - gun_revolver_silver = new ItemGunBase(Gun44MagnumFactory.getSilverConfig()).setUnlocalizedName("gun_revolver_silver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_silver"); - gun_revolver_red = new ItemGunBase(Gun44MagnumFactory.getRedConfig()).setUnlocalizedName("gun_revolver_red").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_red"); - gun_deagle = new ItemGunBase(Gun50AEFactory.getDeagleConfig()).setUnlocalizedName("gun_deagle").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_deagle"); - gun_bio_revolver = new ItemGunBio(Gun357MagnumFactory.getRevolverBioConfig()).setUnlocalizedName("gun_bio_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bio_revolver"); - gun_flechette = new ItemGunBase(Gun556mmFactory.getSPIWConfig(), Gun556mmFactory.getGLauncherConfig()).setUnlocalizedName("gun_flechette").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flechette"); - gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); - gun_calamity = new ItemGunBase(Gun762mmFactory.getCalamityConfig()).setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity"); - gun_minigun = new ItemGunLacunae(Gun5mmFactory.get53Config()).setUnlocalizedName("gun_minigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_minigun"); - gun_avenger = new ItemGunLacunae(Gun5mmFactory.get57Config()).setUnlocalizedName("gun_avenger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_avenger"); - gun_lacunae = new ItemGunLacunae(Gun5mmFactory.getLacunaeConfig()).setUnlocalizedName("gun_lacunae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae"); - gun_folly = new GunFolly().setUnlocalizedName("gun_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_folly"); - gun_fatman = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); - gun_proto = new ItemGunBase(GunFatmanFactory.getProtoConfig()).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); - gun_mirv = new ItemGunBase(GunFatmanFactory.getMIRVConfig()).setUnlocalizedName("gun_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv"); - gun_bf_ammo = new Item().setUnlocalizedName("gun_bf_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf_ammo"); - gun_bf = new ItemGunBase(GunFatmanFactory.getBELConfig()).setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf"); - gun_chemthrower = new ItemGunChemthrower().setUnlocalizedName("gun_chemthrower").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); - gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40"); - gun_thompson = new ItemGunBase(Gun45ACPFactory.getThompsonConfig()).setUnlocalizedName("gun_thompson").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_thompson"); - gun_uzi = new ItemGunBase(Gun22LRFactory.getUziConfig()).setUnlocalizedName("gun_uzi").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi"); - gun_uzi_silencer = new ItemGunBase(Gun22LRFactory.getUziConfig().silenced()).setUnlocalizedName("gun_uzi_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_silencer"); - gun_uzi_saturnite = new ItemGunBase(Gun22LRFactory.getSaturniteConfig()).setUnlocalizedName("gun_uzi_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite"); - gun_uzi_saturnite_silencer = new ItemGunBase(Gun22LRFactory.getSaturniteConfig().silenced()).setUnlocalizedName("gun_uzi_saturnite_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite_silencer"); - gun_uboinik = new ItemGunBase(Gun12GaugeFactory.getUboinikConfig()).setUnlocalizedName("gun_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_remington = new ItemGunBase(Gun12GaugeFactory.getRemington870Config()).setUnlocalizedName("gun_remington").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12"); - gun_spas12 = new ItemGunBase(Gun12GaugeFactory.getSpas12Config(), Gun12GaugeFactory.getSpas12AltConfig()).setUnlocalizedName("gun_spas12").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12"); - gun_supershotgun = new ItemGunShotty(Gun12GaugeFactory.getShottyConfig()).setUnlocalizedName("gun_supershotgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_ks23 = new ItemGunBase(Gun4GaugeFactory.getKS23Config()).setUnlocalizedName("gun_ks23").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_sauer = new ItemGunBase(Gun4GaugeFactory.getSauerConfig()).setUnlocalizedName("gun_sauer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_lever_action = new ItemGunBase(Gun20GaugeFactory.getMareConfig()).setUnlocalizedName("gun_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action"); - gun_lever_action_dark = new ItemGunBase(Gun20GaugeFactory.getMareDarkConfig()).setUnlocalizedName("gun_lever_action_dark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_dark"); - gun_lever_action_sonata = new GunLeverActionS().setUnlocalizedName("gun_lever_action_sonata").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_sonata"); - gun_bolt_action = new ItemGunBase(Gun20GaugeFactory.getBoltConfig()).setUnlocalizedName("gun_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action"); - gun_bolt_action_green = new ItemGunBase(Gun20GaugeFactory.getBoltGreenConfig()).setUnlocalizedName("gun_bolt_action_green").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_green"); - gun_bolt_action_saturnite = new ItemGunBase(Gun20GaugeFactory.getBoltSaturniteConfig()).setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite"); - gun_mymy = new ItemGunBase(GunDartFactory.getMymyConfig()).setUnlocalizedName("gun_mymy").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mymy"); gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt"); gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92"); - gun_b93 = new GunB93().setUnlocalizedName("gun_b93").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b93"); - gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo"); - gun_xvl1456 = new ItemGunGauss(GunGaussFactory.getXVLConfig(), GunGaussFactory.getChargedConfig()).setUnlocalizedName("gun_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456"); - gun_osipr_ammo = new Item().setUnlocalizedName("gun_osipr_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo"); - gun_osipr_ammo2 = new Item().setUnlocalizedName("gun_osipr_ammo2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo2"); - gun_osipr = new ItemGunOSIPR(GunOSIPRFactory.getOSIPRConfig(), GunOSIPRFactory.getAltConfig()).setUnlocalizedName("gun_osipr").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr"); - gun_immolator_ammo = new Item().setUnlocalizedName("gun_immolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_immolator_ammo"); - gun_immolator = new GunImmolator().setUnlocalizedName("gun_immolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_immolator"); - gun_flamer = new ItemGunBase(GunEnergyFactory.getFlamerConfig()).setUnlocalizedName("gun_flamer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flamer"); gun_cryolator_ammo = new Item().setUnlocalizedName("gun_cryolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator_ammo"); - gun_cryolator = new GunCryolator().setUnlocalizedName("gun_cryolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator"); + gun_cryocannon = new ItemCryoCannon(GunEnergyFactory.getCryoCannonConfig()).setUnlocalizedName("gun_cryocannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryocannon"); gun_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext"); - gun_mp = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm"); - gun_bolter = new ItemGunBase(Gun75BoltFactory.getBolterConfig()).setUnlocalizedName("gun_bolter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolter"); - gun_bolter_digamma = new ItemGunBase(Gun75BoltFactory.getBolterConfig()).setUnlocalizedName("gun_bolter_digamma").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolter_digamma"); - gun_zomg = new ItemGunBase(GunEnergyFactory.getZOMGConfig()).setUnlocalizedName("gun_zomg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_zomg"); - gun_revolver_inverted = new GunSuicide().setUnlocalizedName("gun_revolver_inverted").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_inverted"); - gun_emp_ammo = new Item().setUnlocalizedName("gun_emp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_emp_ammo"); - gun_emp = new ItemGunBase(GunEnergyFactory.getEMPConfig()).setUnlocalizedName("gun_emp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_emp"); - gun_jack_ammo = new Item().setUnlocalizedName("gun_jack_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_jack_ammo"); - gun_jack = new GunJack().setUnlocalizedName("gun_jack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_jack"); - gun_spark_ammo = new Item().setUnlocalizedName("gun_spark_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spark_ammo"); - gun_spark = new GunSpark().setUnlocalizedName("gun_spark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spark"); - gun_hp_ammo = new Item().setUnlocalizedName("gun_hp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hp_ammo"); - gun_hp = new GunHP().setUnlocalizedName("gun_hp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hp"); - gun_euthanasia_ammo = new Item().setUnlocalizedName("gun_euthanasia_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_euthanasia_ammo"); - gun_euthanasia = new GunEuthanasia().setUnlocalizedName("gun_euthanasia").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_euthanasia"); - gun_dash_ammo = new Item().setUnlocalizedName("gun_dash_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_dash_ammo"); - gun_dash = new GunDash().setUnlocalizedName("gun_dash").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_dash"); - gun_twigun_ammo = new Item().setUnlocalizedName("gun_twigun_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_twigun_ammo"); - gun_twigun = new GunEuthanasia().setUnlocalizedName("gun_twigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_twigun"); - gun_defabricator_ammo = new Item().setUnlocalizedName("gun_defabricator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_defabricator_ammo"); - gun_defabricator = new GunDefabricator().setUnlocalizedName("gun_defabricator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_defabricator"); - gun_vortex = new ItemGunVortex(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_vortex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_vortex"); - gun_super_shotgun = new ItemCustomLore().setUnlocalizedName("gun_super_shotgun").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_super_shotgun"); - gun_moist_nugget = new ItemNugget(3, false).setUnlocalizedName("gun_moist_nugget").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_moist_nugget"); - gun_dampfmaschine = new GunDampfmaschine().setUnlocalizedName("gun_dampfmaschine").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_dampfmaschine"); - gun_darter = new ItemGunDart(GunDartFactory.getDarterConfig()).setFull3D().setUnlocalizedName("gun_darter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); - gun_detonator = new ItemGunDetonator(GunDetonatorFactory.getDetonatorConfig()).setFull3D().setUnlocalizedName("gun_detonator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); - gun_glass_cannon = new ItemEnergyGunBase(GunPoweredFactory.getGlassCannonConfig()).setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); - gun_m2 = new ItemGunBase(Gun50BMGFactory.getM2Config()).setFull3D().setUnlocalizedName("gun_m2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); - gun_lunatic_marksman = new ItemGunBase(Gun50BMGFactory.getLunaticMarksman()).setFull3D().setUnlocalizedName("gun_lunatic_marksman").setCreativeTab(MainRegistry.weaponTab); - + ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0); crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); @@ -4298,28 +3936,30 @@ public class ModItems { glowing_stew = new ItemSoup(6).setUnlocalizedName("glowing_stew").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glowing_stew"); balefire_scrambled = new ItemSoup(6).setUnlocalizedName("balefire_scrambled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_scrambled"); balefire_and_ham = new ItemSoup(6).setUnlocalizedName("balefire_and_ham").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_and_ham"); - lemon = new ItemLemon(3, 5, false).setUnlocalizedName("lemon").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":lemon"); - definitelyfood = new ItemLemon(2, 5, false).setUnlocalizedName("definitelyfood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":definitelyfood"); + lemon = new ItemLemon(3, 0.5F, false).setUnlocalizedName("lemon").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":lemon"); + definitelyfood = new ItemLemon(3, 0.5F, false).setUnlocalizedName("definitelyfood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":definitelyfood"); med_ipecac = new ItemLemon(0, 0, false).setUnlocalizedName("med_ipecac").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ipecac_new"); med_ptsd = new ItemLemon(0, 0, false).setUnlocalizedName("med_ptsd").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ptsd_new"); med_schizophrenia = new ItemLemon(0, 0, false).setUnlocalizedName("med_schizophrenia").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_schizophrenia_new"); - loops = new ItemLemon(4, 5, false).setUnlocalizedName("loops").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loops"); - loop_stew = new ItemLemon(10, 10, false).setUnlocalizedName("loop_stew").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loop_stew"); - spongebob_macaroni = new ItemLemon(5, 5, false).setUnlocalizedName("spongebob_macaroni").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spongebob_macaroni"); - fooditem = new ItemLemon(2, 5, false).setUnlocalizedName("fooditem").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fooditem"); - twinkie = new ItemLemon(3, 5, false).setUnlocalizedName("twinkie").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":twinkie"); - static_sandwich = new ItemLemon(6, 5, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich"); - pudding = new ItemLemon(6, 15, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding"); - canteen_13 = new ItemCanteen(1 * 60).setUnlocalizedName("canteen_13").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_13"); + loops = new ItemLemon(4, 0.25F, false).setUnlocalizedName("loops").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loops"); + loop_stew = new ItemLemon(10, 0.5F, false).setUnlocalizedName("loop_stew").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loop_stew"); + spongebob_macaroni = new ItemLemon(5, 1F, false).setUnlocalizedName("spongebob_macaroni").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spongebob_macaroni"); + fooditem = new ItemLemon(2, 5F, false).setUnlocalizedName("fooditem").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fooditem"); + twinkie = new ItemLemon(3, 0.25F, false).setUnlocalizedName("twinkie").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":twinkie"); + static_sandwich = new ItemLemon(6, 1F, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich"); + pudding = new ItemLemon(6, 1F, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding"); canteen_vodka = new ItemCanteen(3 * 60).setUnlocalizedName("canteen_vodka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_vodka"); canteen_fab = new ItemCanteen(2 * 60).setUnlocalizedName("canteen_fab").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_fab"); pancake = new ItemPancake(20, 20, false).setUnlocalizedName("pancake").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pancake"); - nugget = new ItemLemon(200, 200, false).setUnlocalizedName("nugget").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nugget"); + nugget = new ItemLemon(200, 1F, false).setUnlocalizedName("nugget").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nugget"); peas = new ItemPeas().setUnlocalizedName("peas").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":peas"); marshmallow = new ItemMarshmallow().setUnlocalizedName("marshmallow").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":marshmallow"); - cheese = new ItemLemon(5, 10, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese"); - quesadilla = new ItemLemon(8, 10, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla"); + cheese = new ItemLemon(5, 0.75F, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese"); + quesadilla = new ItemLemon(8, 1F, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla"); mucho_mango = new ItemMuchoMango(10).setUnlocalizedName("mucho_mango").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mucho_mango"); + glyphid_meat = new ItemLemon(3, 0.5F, true).setUnlocalizedName("glyphid_meat").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat"); + glyphid_meat_grilled = new ItemLemon(8, 0.75F, true).setPotionEffect(Potion.damageBoost.id, 180, 1, 1F).setUnlocalizedName("glyphid_meat_grilled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat_grilled"); + egg_glyphid = new Item().setUnlocalizedName("egg_glyphid").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":egg_glyphid"); defuser = new ItemTooling(ToolType.DEFUSER, 100).setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser"); reacher = new Item().setUnlocalizedName("reacher").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":reacher"); @@ -4413,10 +4053,6 @@ public class ModItems { battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato"); battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); - battery_su = new ItemBattery(50000, 0, 1000).setUnlocalizedName("battery_su").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su"); - battery_su_l = new ItemBattery(150000, 0, 1000).setUnlocalizedName("battery_su_l").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su_l"); - battery_steam = new ItemBattery(60000, 300, 6000).setUnlocalizedName("battery_steam").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_steam"); - battery_steam_large = new ItemBattery(100000, 500, 10000).setUnlocalizedName("battery_steam_large").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_steam_large"); hev_battery = new ItemFusionCore(150000).setUnlocalizedName("hev_battery").setMaxStackSize(4).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hev_battery"); fusion_core = new ItemFusionCore(2500000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core"); fusion_core_infinite = new Item().setUnlocalizedName("fusion_core_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core_infinite"); @@ -4424,7 +4060,6 @@ public class ModItems { fuse = new ItemCustomLore().setUnlocalizedName("fuse").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); euphemium_capacitor = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("euphemium_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor_euphemium"); - titanium_filter = new ItemCapacitor(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver"); screwdriver_desh = new ItemTooling(ToolType.SCREWDRIVER, 0).setUnlocalizedName("screwdriver_desh"); hand_drill = new ItemTooling(ToolType.HAND_DRILL, 100).setUnlocalizedName("hand_drill"); @@ -4436,9 +4071,8 @@ public class ModItems { acetylene_torch = new ItemBlowtorch().setUnlocalizedName("acetylene_torch"); boltgun = new ItemBoltgun().setUnlocalizedName("boltgun"); overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse"); - arc_electrode = new ItemCustomLore().setUnlocalizedName("arc_electrode").setMaxDamage(250).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode"); - arc_electrode_burnt = new Item().setUnlocalizedName("arc_electrode_burnt").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_burnt"); - arc_electrode_desh = new ItemCustomLore().setUnlocalizedName("arc_electrode_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_desh"); + arc_electrode = new ItemArcElectrode().setUnlocalizedName("arc_electrode").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":arc_electrode"); + arc_electrode_burnt = new ItemArcElectrodeBurnt().setUnlocalizedName("arc_electrode_burnt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":arc_electrode_burnt"); ams_focus_blank = new Item().setUnlocalizedName("ams_focus_blank").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_blank"); ams_focus_limiter = new ItemCustomLore().setUnlocalizedName("ams_focus_limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_limiter"); @@ -4455,6 +4089,8 @@ public class ModItems { fusion_shield_chlorophyte = new ItemFusionShield(60 * 60 * 60 * 15, 9000).setUnlocalizedName("fusion_shield_chlorophyte").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_chlorophyte"); fusion_shield_vaporwave = new ItemFusionShield(60 * 60 * 60 * 10, 1916169).setUnlocalizedName("fusion_shield_vaporwave").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_vaporwave"); + upgrade_muffler = new ItemMuffler().setUnlocalizedName("upgrade_muffler").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_muffler"); + upgrade_template = new ItemCustomLore().setUnlocalizedName("upgrade_template").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_template"); upgrade_speed_1 = new ItemMachineUpgrade(UpgradeType.SPEED, 1).setUnlocalizedName("upgrade_speed_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_1"); upgrade_speed_2 = new ItemMachineUpgrade(UpgradeType.SPEED, 2).setUnlocalizedName("upgrade_speed_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_2"); @@ -4496,7 +4132,8 @@ public class ModItems { structure_pattern = new ItemStructurePattern().setUnlocalizedName("structure_pattern").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_pattern"); structure_randomized = new ItemStructureRandomized().setUnlocalizedName("structure_randomized").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomized"); structure_randomly = new ItemStructureRandomly().setUnlocalizedName("structure_randomly").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomly"); - + structure_custommachine = new ItemCMStructure().setUnlocalizedName("structure_custommachine").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":structure_custommachine"); + rod_of_discord = new ItemDiscord().setUnlocalizedName("rod_of_discord").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":rod_of_discord"); nuke_starter_kit = new ItemStarterKit().setUnlocalizedName("nuke_starter_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_starter_kit"); @@ -4527,38 +4164,6 @@ public class ModItems { loot_10 = new ItemLootCrate().setUnlocalizedName("loot_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_10"); loot_15 = new ItemLootCrate().setUnlocalizedName("loot_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_15"); loot_misc = new ItemLootCrate().setUnlocalizedName("loot_misc").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_misc"); - - clip_revolver_iron = new ItemClip(ammo_357.stackFromEnum(20, Ammo357Magnum.IRON)).setUnlocalizedName("clip_revolver_iron").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_iron"); - clip_revolver = new ItemClip(ammo_357.stackFromEnum(12, Ammo357Magnum.LEAD)).setUnlocalizedName("clip_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver"); - clip_revolver_gold = new ItemClip(ammo_357.stackFromEnum(6, Ammo357Magnum.GOLD)).setUnlocalizedName("clip_revolver_gold").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_gold"); - clip_revolver_lead = new ItemClip(ammo_357.stackFromEnum(6, Ammo357Magnum.NUCLEAR)).setUnlocalizedName("clip_revolver_lead").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_lead"); - clip_revolver_schrabidium = new ItemClip(ammo_357.stackFromEnum(2, Ammo357Magnum.SCHRABIDIUM)).setUnlocalizedName("clip_revolver_schrabidium").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_schrabidium"); - clip_revolver_cursed = new ItemClip(ammo_357.stackFromEnum(17, Ammo357Magnum.STEEL)).setUnlocalizedName("clip_revolver_cursed").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_cursed"); - clip_revolver_nightmare = new ItemClip(ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE1)).setUnlocalizedName("clip_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nightmare"); - clip_revolver_nightmare2 = new ItemClip(ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2)).setUnlocalizedName("clip_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nightmare2"); - clip_revolver_pip = new ItemClip(ammo_44.stackFromEnum(6, Ammo44Magnum.PIP)).setUnlocalizedName("clip_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_pip"); - clip_revolver_nopip = new ItemClip(ammo_44.stackFromEnum(6, Ammo44Magnum.STOCK)).setUnlocalizedName("clip_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nopip"); - clip_rpg = new ItemClip(ammo_rocket.stackFromEnum(4, AmmoRocket.STOCK)).setUnlocalizedName("clip_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_rpg_alt"); - clip_stinger = new ItemClip(ammo_stinger_rocket.stackFromEnum(4, AmmoStinger.STOCK)).setUnlocalizedName("clip_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_stinger"); - clip_fatman = new ItemClip(ammo_nuke.stackFromEnum(6, AmmoFatman.STOCK)).setUnlocalizedName("clip_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_fatman"); - clip_mirv = new ItemClip(ammo_nuke.stackFromEnum(3, AmmoFatman.MIRV)).setUnlocalizedName("clip_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_mirv"); - clip_bf = new ItemClip(ammo_nuke.stackFromEnum(2, AmmoFatman.BALEFIRE)).setUnlocalizedName("clip_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clip_bf"); - clip_mp40 = new ItemClip(ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK)).setUnlocalizedName("clip_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_mp40"); - clip_uzi = new ItemClip(ammo_22lr.stackFromEnum(32, Ammo22LR.STOCK)).setUnlocalizedName("clip_uzi").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_uzi"); - clip_uboinik = new ItemClip(ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK)).setUnlocalizedName("clip_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_uboinik"); - clip_lever_action = new ItemClip(ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK)).setUnlocalizedName("clip_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_lever_action"); - clip_bolt_action = new ItemClip(ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG)).setUnlocalizedName("clip_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_bolt_action"); - clip_osipr = new ItemClip(new ItemStack(gun_osipr_ammo, 3)).setUnlocalizedName("clip_osipr").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_osipr"); - clip_immolator = new ItemClip(new ItemStack(gun_immolator_ammo, 60)).setUnlocalizedName("clip_immolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_immolator"); - clip_cryolator = new ItemClip(new ItemStack(gun_cryolator_ammo, 60)).setUnlocalizedName("clip_cryolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_cryolator"); - clip_mp = new ItemClip(ammo_556.stackFromEnum(2, Ammo556mm.GOLD)).setUnlocalizedName("clip_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_mp"); - clip_xvl1456 = new ItemClip(new ItemStack(gun_xvl1456_ammo, 50)).setUnlocalizedName("clip_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_xvl1456"); - clip_emp = new ItemClip(new ItemStack(gun_emp_ammo, 12)).setUnlocalizedName("clip_emp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_emp"); - clip_jack = new ItemClip(new ItemStack(gun_jack_ammo, 12)).setUnlocalizedName("clip_jack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_jack"); - clip_spark = new ItemClip(new ItemStack(gun_spark_ammo, 12)).setUnlocalizedName("clip_spark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_spark"); - clip_hp = new ItemClip(new ItemStack(gun_hp_ammo, 24)).setUnlocalizedName("clip_hp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_hp"); - clip_euthanasia = new ItemClip(new ItemStack(gun_euthanasia_ammo, 32)).setUnlocalizedName("clip_euthanasia").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_euthanasia"); - clip_defabricator = new ItemClip(new ItemStack(gun_defabricator_ammo, 50)).setUnlocalizedName("clip_defabricator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_defabricator"); ammo_container = new ItemAmmoContainer().setUnlocalizedName("ammo_container").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_container"); @@ -4573,7 +4178,6 @@ public class ModItems { detonator_laser = new ItemLaserDetonator().setUnlocalizedName("detonator_laser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_laser"); detonator_deadman = new ItemDrop().setUnlocalizedName("detonator_deadman").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_deadman"); detonator_de = new ItemDrop().setUnlocalizedName("detonator_de").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_de"); - crate_caller = new ItemCrateCaller().setUnlocalizedName("crate_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crate_caller"); bomb_caller = new ItemBombCaller().setUnlocalizedName("bomb_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bomb_caller"); meteor_remote = new ItemMeteorRemote().setUnlocalizedName("meteor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":meteor_remote"); anchor_remote = new ItemAnchorRemote().setUnlocalizedName("anchor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":anchor_remote"); @@ -4591,15 +4195,21 @@ public class ModItems { geiger_counter = new ItemGeigerCounter().setUnlocalizedName("geiger_counter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":geiger_counter"); digamma_diagnostic = new ItemDigammaDiagnostic().setUnlocalizedName("digamma_diagnostic").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":digamma_diagnostic"); pollution_detector = new ItemPollutionDetector().setUnlocalizedName("pollution_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pollution_detector"); + ore_density_scanner = new ItemOreDensityScanner().setUnlocalizedName("ore_density_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ore_density_scanner"); survey_scanner = new ItemSurveyScanner().setUnlocalizedName("survey_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":survey_scanner"); mirror_tool = new ItemMirrorTool().setUnlocalizedName("mirror_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mirror_tool"); rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); coltan_tool = new ItemColtanCompass().setUnlocalizedName("coltan_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coltass"); power_net_tool = new ItemPowerNetTool().setUnlocalizedName("power_net_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":power_net_tool"); + analysis_tool = new ItemAnalysisTool().setUnlocalizedName("analysis_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":analysis_tool"); coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool"); + drone_linker = new ItemDroneLinker().setUnlocalizedName("drone_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":drone_linker"); + radar_linker = new ItemRadarLinker().setUnlocalizedName("radar_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radar_linker"); + settings_tool = new ItemSettingsTool().setUnlocalizedName("settings_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":settings_tool"); key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); + key_red_cracked = new ItemCustomLore().setUnlocalizedName("key_red_cracked").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red_cracked"); key_kit = new ItemCounterfitKeys().setUnlocalizedName("key_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_pair"); key_fake = new ItemKey().setUnlocalizedName("key_fake").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_gold"); pin = new ItemCustomLore().setUnlocalizedName("pin").setMaxStackSize(8).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pin"); @@ -4625,9 +4235,26 @@ public class ModItems { fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); fluid_tank_lead_empty = new Item().setUnlocalizedName("fluid_tank_lead_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); fluid_tank_lead_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_lead_full").setContainerItem(ModItems.fluid_tank_lead_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); - fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); + fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); + pipette = new ItemPipette().setUnlocalizedName("pipette").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette"); + pipette_boron = new ItemPipette().setUnlocalizedName("pipette_boron").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_boron"); + pipette_laboratory = new ItemPipette().setUnlocalizedName("pipette_laboratory").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_laboratory"); + siphon = new ItemFluidSiphon().setUnlocalizedName("siphon").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":siphon"); + inf_water = new ItemInfiniteFluid(Fluids.WATER, 50).setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water"); + inf_water_mk2 = new ItemInfiniteFluid(Fluids.WATER, 500).setUnlocalizedName("inf_water_mk2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water_mk2"); + + FluidTank.noDualUnload.add(fluid_barrel_infinite); + FluidTank.noDualUnload.add(inf_water); + FluidTank.noDualUnload.add(inf_water_mk2); + + disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); + disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); + + glyphid_gland_empty = new Item().setUnlocalizedName("glyphid_gland_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); + glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); + siren_track = new ItemCassette().setUnlocalizedName("siren_track").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":cassette"); fluid_duct = new ItemFluidDuct().setUnlocalizedName("fluid_duct").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":duct"); @@ -4658,69 +4285,68 @@ public class ModItems { beta = new ItemDrop().setUnlocalizedName("beta").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":beta"); //oxy_mask = new ArmorModel(ArmorMaterial.IRON, 7, 0).setUnlocalizedName("oxy_mask").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":oxy_mask"); - schrabidium_helmet = new ArmorFSB(MainRegistry.aMatSchrab, 0, RefStrings.MODID + ":textures/armor/schrabidium_1.png").setCap(4F).setMod(0.1F) + schrabidium_helmet = new ArmorFSB(MainRegistry.aMatSchrab, 0, RefStrings.MODID + ":textures/armor/schrabidium_1.png") .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2)) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) - .setFireproof(true).setUnlocalizedName("schrabidium_helmet").setTextureName(RefStrings.MODID + ":schrabidium_helmet"); + .setUnlocalizedName("schrabidium_helmet").setTextureName(RefStrings.MODID + ":schrabidium_helmet"); schrabidium_plate = new ArmorFSB(MainRegistry.aMatSchrab, 1, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_plate").setTextureName(RefStrings.MODID + ":schrabidium_plate"); - schrabidium_legs = new ArmorFSB(MainRegistry.aMatSchrab, 2, RefStrings.MODID + ":textures/armor/schrabidium_2.png").cloneStats((ArmorFSB) schrabidium_helmet).setCap(4F).setMod(0.1F).setUnlocalizedName("schrabidium_legs").setTextureName(RefStrings.MODID + ":schrabidium_legs"); - schrabidium_boots = new ArmorFSB(MainRegistry.aMatSchrab, 3, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setCap(4F).setMod(0.1F).setUnlocalizedName("schrabidium_boots").setTextureName(RefStrings.MODID + ":schrabidium_boots"); - bismuth_helmet = new ArmorBismuth(MainRegistry.aMatBismuth, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setCap(8F).setMod(0.3F) - .addResistance("fall", 0) + schrabidium_legs = new ArmorFSB(MainRegistry.aMatSchrab, 2, RefStrings.MODID + ":textures/armor/schrabidium_2.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_legs").setTextureName(RefStrings.MODID + ":schrabidium_legs"); + schrabidium_boots = new ArmorFSB(MainRegistry.aMatSchrab, 3, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_boots").setTextureName(RefStrings.MODID + ":schrabidium_boots"); + bismuth_helmet = new ArmorBismuth(MainRegistry.aMatBismuth, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") .addEffect(new PotionEffect(Potion.jump.id, 20, 6)) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 6)) .addEffect(new PotionEffect(Potion.regeneration.id, 20, 1)) .addEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)) .setDashCount(3) .setUnlocalizedName("bismuth_helmet").setTextureName(RefStrings.MODID + ":bismuth_helmet"); - bismuth_plate = new ArmorBismuth(MainRegistry.aMatBismuth, 1, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) bismuth_helmet).setCap(8F).setMod(0.3F).setUnlocalizedName("bismuth_plate").setTextureName(RefStrings.MODID + ":bismuth_plate"); - bismuth_legs = new ArmorBismuth(MainRegistry.aMatBismuth, 2, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setCap(8F).setMod(0.3F).setUnlocalizedName("bismuth_legs").setTextureName(RefStrings.MODID + ":bismuth_legs"); - bismuth_boots = new ArmorBismuth(MainRegistry.aMatBismuth, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setCap(8F).setMod(0.3F).setUnlocalizedName("bismuth_boots").setTextureName(RefStrings.MODID + ":bismuth_boots"); - titanium_helmet = new ArmorFSB(MainRegistry.aMatTitan, 0, RefStrings.MODID + ":textures/armor/titanium_1.png").setMod(0.85F).setUnlocalizedName("titanium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_helmet"); + bismuth_plate = new ArmorBismuth(MainRegistry.aMatBismuth, 1, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_plate").setTextureName(RefStrings.MODID + ":bismuth_plate"); + bismuth_legs = new ArmorBismuth(MainRegistry.aMatBismuth, 2, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_legs").setTextureName(RefStrings.MODID + ":bismuth_legs"); + bismuth_boots = new ArmorBismuth(MainRegistry.aMatBismuth, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_boots").setTextureName(RefStrings.MODID + ":bismuth_boots"); + titanium_helmet = new ArmorFSB(MainRegistry.aMatTitan, 0, RefStrings.MODID + ":textures/armor/titanium_1.png").setUnlocalizedName("titanium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_helmet"); titanium_plate = new ArmorFSB(MainRegistry.aMatTitan, 1, RefStrings.MODID + ":textures/armor/titanium_1.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_plate"); titanium_legs = new ArmorFSB(MainRegistry.aMatTitan, 2, RefStrings.MODID + ":textures/armor/titanium_2.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_legs"); titanium_boots = new ArmorFSB(MainRegistry.aMatTitan, 3, RefStrings.MODID + ":textures/armor/titanium_1.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_boots").setTextureName(RefStrings.MODID + ":titanium_boots"); - steel_helmet = new ArmorFSB(MainRegistry.aMatSteel, 0, RefStrings.MODID + ":textures/armor/steel_1.png").setMod(0.9F).setUnlocalizedName("steel_helmet").setTextureName(RefStrings.MODID + ":steel_helmet"); + steel_helmet = new ArmorFSB(MainRegistry.aMatSteel, 0, RefStrings.MODID + ":textures/armor/steel_1.png").setUnlocalizedName("steel_helmet").setTextureName(RefStrings.MODID + ":steel_helmet"); steel_plate = new ArmorFSB(MainRegistry.aMatSteel, 1, RefStrings.MODID + ":textures/armor/steel_1.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_plate").setTextureName(RefStrings.MODID + ":steel_plate"); steel_legs = new ArmorFSB(MainRegistry.aMatSteel, 2, RefStrings.MODID + ":textures/armor/steel_2.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_legs").setTextureName(RefStrings.MODID + ":steel_legs"); steel_boots = new ArmorFSB(MainRegistry.aMatSteel, 3, RefStrings.MODID + ":textures/armor/steel_1.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_boots").setTextureName(RefStrings.MODID + ":steel_boots"); - alloy_helmet = new ArmorFSB(MainRegistry.aMatAlloy, 0, RefStrings.MODID + ":textures/armor/alloy_1.png").setMod(0.75F).setUnlocalizedName("alloy_helmet").setTextureName(RefStrings.MODID + ":alloy_helmet"); + alloy_helmet = new ArmorFSB(MainRegistry.aMatAlloy, 0, RefStrings.MODID + ":textures/armor/alloy_1.png").setUnlocalizedName("alloy_helmet").setTextureName(RefStrings.MODID + ":alloy_helmet"); alloy_plate = new ArmorFSB(MainRegistry.aMatAlloy, 1, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_plate").setTextureName(RefStrings.MODID + ":alloy_plate"); alloy_legs = new ArmorFSB(MainRegistry.aMatAlloy, 2, RefStrings.MODID + ":textures/armor/alloy_2.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_legs").setTextureName(RefStrings.MODID + ":alloy_legs"); alloy_boots = new ArmorFSB(MainRegistry.aMatAlloy, 3, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_boots").setTextureName(RefStrings.MODID + ":alloy_boots"); - cmb_helmet = new ArmorFSB(MainRegistry.aMatCMB, 0, RefStrings.MODID + ":textures/armor/cmb_1.png").setCap(2F).setThreshold(2F).setMod(0.05F) + cmb_helmet = new ArmorFSB(MainRegistry.aMatCMB, 0, RefStrings.MODID + ":textures/armor/cmb_1.png") .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2)) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 4)) - .setFireproof(true).setUnlocalizedName("cmb_helmet").setTextureName(RefStrings.MODID + ":cmb_helmet"); + .setUnlocalizedName("cmb_helmet").setTextureName(RefStrings.MODID + ":cmb_helmet"); cmb_plate = new ArmorFSB(MainRegistry.aMatCMB, 1, RefStrings.MODID + ":textures/armor/cmb_1.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_plate").setTextureName(RefStrings.MODID + ":cmb_plate"); cmb_legs = new ArmorFSB(MainRegistry.aMatCMB, 2, RefStrings.MODID + ":textures/armor/cmb_2.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_legs").setTextureName(RefStrings.MODID + ":cmb_legs"); cmb_boots = new ArmorFSB(MainRegistry.aMatCMB, 3, RefStrings.MODID + ":textures/armor/cmb_1.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_boots").setTextureName(RefStrings.MODID + ":cmb_boots"); - paa_plate = new ArmorFSB(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/paa_1.png").setCap(6F).setMod(0.3F).setNoHelmet(true) + paa_plate = new ArmorFSB(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/paa_1.png").setNoHelmet(true) .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 0)).setUnlocalizedName("paa_plate").setTextureName(RefStrings.MODID + ":paa_plate"); paa_legs = new ArmorFSB(MainRegistry.aMatPaa, 2, RefStrings.MODID + ":textures/armor/paa_2.png").cloneStats((ArmorFSB) paa_plate).setUnlocalizedName("paa_legs").setTextureName(RefStrings.MODID + ":paa_legs"); paa_boots = new ArmorFSB(MainRegistry.aMatPaa, 3, RefStrings.MODID + ":textures/armor/paa_1.png").cloneStats((ArmorFSB) paa_plate).setUnlocalizedName("paa_boots").setTextureName(RefStrings.MODID + ":paa_boots"); - asbestos_helmet = new ArmorFSB(MainRegistry.aMatAsbestos, 0, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setOverlay(RefStrings.MODID + ":textures/misc/overlay_asbestos.png").setUnlocalizedName("asbestos_helmet").setTextureName(RefStrings.MODID + ":asbestos_helmet"); - asbestos_plate = new ArmorFSB(MainRegistry.aMatAsbestos, 1, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setUnlocalizedName("asbestos_plate").setTextureName(RefStrings.MODID + ":asbestos_plate"); - asbestos_legs = new ArmorFSB(MainRegistry.aMatAsbestos, 2, RefStrings.MODID + ":textures/armor/asbestos_2.png").setFireproof(true).setUnlocalizedName("asbestos_legs").setTextureName(RefStrings.MODID + ":asbestos_legs"); - asbestos_boots = new ArmorFSB(MainRegistry.aMatAsbestos, 3, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setUnlocalizedName("asbestos_boots").setTextureName(RefStrings.MODID + ":asbestos_boots"); - security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setMod(0.75F).setProjectileProtection(0.5F).setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet"); + asbestos_helmet = new ArmorFSB(MainRegistry.aMatAsbestos, 0, RefStrings.MODID + ":textures/armor/asbestos_1.png").setOverlay(RefStrings.MODID + ":textures/misc/overlay_asbestos.png").setUnlocalizedName("asbestos_helmet").setTextureName(RefStrings.MODID + ":asbestos_helmet"); + asbestos_plate = new ArmorFSB(MainRegistry.aMatAsbestos, 1, RefStrings.MODID + ":textures/armor/asbestos_1.png").setUnlocalizedName("asbestos_plate").setTextureName(RefStrings.MODID + ":asbestos_plate"); + asbestos_legs = new ArmorFSB(MainRegistry.aMatAsbestos, 2, RefStrings.MODID + ":textures/armor/asbestos_2.png").setUnlocalizedName("asbestos_legs").setTextureName(RefStrings.MODID + ":asbestos_legs"); + asbestos_boots = new ArmorFSB(MainRegistry.aMatAsbestos, 3, RefStrings.MODID + ":textures/armor/asbestos_1.png").setUnlocalizedName("asbestos_boots").setTextureName(RefStrings.MODID + ":asbestos_boots"); + security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet"); security_plate = new ArmorFSB(MainRegistry.aMatSecurity, 1, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_plate").setTextureName(RefStrings.MODID + ":security_plate"); security_legs = new ArmorFSB(MainRegistry.aMatSecurity, 2, RefStrings.MODID + ":textures/armor/security_2.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_legs").setTextureName(RefStrings.MODID + ":security_legs"); security_boots = new ArmorFSB(MainRegistry.aMatSecurity, 3, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_boots").setTextureName(RefStrings.MODID + ":security_boots"); - cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setMod(0.75F).setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); + cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); cobalt_plate = new ArmorFSB(MainRegistry.aMatCobalt, 1, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_plate").setTextureName(RefStrings.MODID + ":cobalt_plate"); cobalt_legs = new ArmorFSB(MainRegistry.aMatCobalt, 2, RefStrings.MODID + ":textures/armor/cobalt_2.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_legs").setTextureName(RefStrings.MODID + ":cobalt_legs"); cobalt_boots = new ArmorFSB(MainRegistry.aMatCobalt, 3, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_boots").setTextureName(RefStrings.MODID + ":cobalt_boots"); - starmetal_helmet = new ArmorFSB(MainRegistry.aMatStarmetal, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.5F).setCap(15F) - .setFireproof(true).setUnlocalizedName("starmetal_helmet").setTextureName(RefStrings.MODID + ":starmetal_helmet"); + starmetal_helmet = new ArmorFSB(MainRegistry.aMatStarmetal, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") + .setUnlocalizedName("starmetal_helmet").setTextureName(RefStrings.MODID + ":starmetal_helmet"); starmetal_plate = new ArmorFSB(MainRegistry.aMatStarmetal, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_plate").setTextureName(RefStrings.MODID + ":starmetal_plate"); starmetal_legs = new ArmorFSB(MainRegistry.aMatStarmetal, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_legs").setTextureName(RefStrings.MODID + ":starmetal_legs"); starmetal_boots = new ArmorFSB(MainRegistry.aMatStarmetal, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_boots").setTextureName(RefStrings.MODID + ":starmetal_boots"); - robes_helmet = new ArmorFSB(ArmorMaterial.CHAIN, 0, RefStrings.MODID + ":textures/armor/robes_1.png").setThreshold(1.0F).setUnlocalizedName("robes_helmet").setTextureName(RefStrings.MODID + ":robes_helmet"); + robes_helmet = new ArmorFSB(ArmorMaterial.CHAIN, 0, RefStrings.MODID + ":textures/armor/robes_1.png").setUnlocalizedName("robes_helmet").setTextureName(RefStrings.MODID + ":robes_helmet"); robes_plate = new ArmorFSB(ArmorMaterial.CHAIN, 1, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_plate").setTextureName(RefStrings.MODID + ":robes_plate"); robes_legs = new ArmorFSB(ArmorMaterial.CHAIN, 2, RefStrings.MODID + ":textures/armor/robes_2.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_legs").setTextureName(RefStrings.MODID + ":robes_legs"); robes_boots = new ArmorFSB(ArmorMaterial.CHAIN, 3, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_boots").setTextureName(RefStrings.MODID + ":robes_boots"); @@ -4732,27 +4358,23 @@ public class ModItems { ArmorMaterial aMatZirconium = EnumHelper.addArmorMaterial("HBM_ZIRCONIUM", 1000, new int[] { 2, 5, 3, 1 }, 100); aMatZirconium.customCraftingMaterial = ModItems.ingot_zirconium; - zirconium_legs = new ArmorFSB(aMatZirconium, 2, RefStrings.MODID + ":textures/armor/zirconium_2.png").setMod(0.0F).setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs"); + zirconium_legs = new ArmorFSB(aMatZirconium, 2, RefStrings.MODID + ":textures/armor/zirconium_2.png").setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs"); ArmorMaterial aMatDNT = EnumHelper.addArmorMaterial("HBM_DNT_LOLOLOL", 3, new int[] { 1, 1, 1, 1 }, 0); aMatDNT.customCraftingMaterial = ModItems.ingot_dineutronium; dnt_helmet = new ArmorFSB(aMatDNT, 0, RefStrings.MODID + ":textures/armor/dnt_1.png") - .setMod(5F).setUnlocalizedName("dnt_helmet").setTextureName(RefStrings.MODID + ":dnt_helmet"); + .setUnlocalizedName("dnt_helmet").setTextureName(RefStrings.MODID + ":dnt_helmet"); dnt_plate = new ArmorFSB(aMatDNT, 1, RefStrings.MODID + ":textures/armor/dnt_1.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_plate").setTextureName(RefStrings.MODID + ":dnt_plate"); dnt_legs = new ArmorFSB(aMatDNT, 2, RefStrings.MODID + ":textures/armor/dnt_2.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_legs").setTextureName(RefStrings.MODID + ":dnt_legs"); dnt_boots = new ArmorFSB(aMatDNT, 3, RefStrings.MODID + ":textures/armor/dnt_1.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_boots").setTextureName(RefStrings.MODID + ":dnt_boots"); ArmorMaterial aMatT45 = EnumHelper.addArmorMaterial("HBM_T45", 150, new int[] { 3, 8, 6, 3 }, 0); aMatT45.customCraftingMaterial = ModItems.plate_armor_titanium; - t45_helmet = new ArmorT45(aMatT45, 0, 1000000, 10000, 1000, 5).setCap(10F).setMod(0.5F) - .setFireproof(true) + t45_helmet = new ArmorT45(aMatT45, 0, 1000000, 10000, 1000, 5) .enableVATS(true) .setHasGeigerSound(true) .setHasHardLanding(true) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) - .setBlastProtection(0.5F) - .addResistance("monoxide", 0F) - .addResistance("fall", 0) .hides(EnumPlayerPart.HAT) .setUnlocalizedName("t45_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_helmet"); t45_plate = new ArmorT45(aMatT45, 1, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate"); @@ -4761,13 +4383,9 @@ public class ModItems { ArmorMaterial aMatDesh = EnumHelper.addArmorMaterial("HBM_DESH", 150, new int[] { 3, 8, 6, 3 }, 0); aMatDesh.customCraftingMaterial = ModItems.ingot_desh; - steamsuit_helmet = new ArmorDesh(aMatDesh, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1).setThreshold(5F).setMod(0.8F) - .setFireproof(true) + steamsuit_helmet = new ArmorDesh(aMatDesh, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1) .setHasHardLanding(true) .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 4)) - .setBlastProtection(0.5F) - .addResistance("monoxide", 0F) - .addResistance("fall", 0) .hides(EnumPlayerPart.HAT) .setUnlocalizedName("steamsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_helmet"); steamsuit_plate = new ArmorDesh(aMatDesh, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_plate"); @@ -4776,12 +4394,11 @@ public class ModItems { ArmorMaterial aMatDiesel = EnumHelper.addArmorMaterial("HBM_BNUUY", 150, new int[] { 3, 8, 6, 3 }, 0); aMatDiesel.customCraftingMaterial = ModItems.plate_copper; - dieselsuit_helmet = new ArmorDiesel(aMatDiesel, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1).setThreshold(2F).setMod(0.7F) + dieselsuit_helmet = new ArmorDiesel(aMatDiesel, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) .addEffect(new PotionEffect(Potion.jump.id, 20, 2)) .enableThermalSight(true) .enableVATS(true) - .addResistance("fall", 0) .setUnlocalizedName("dieselsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_helmet"); dieselsuit_plate = new ArmorDiesel(aMatDiesel, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_plate"); dieselsuit_legs = new ArmorDiesel(aMatDiesel, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_legs"); @@ -4789,57 +4406,40 @@ public class ModItems { ArmorMaterial aMatAJR = EnumHelper.addArmorMaterial("HBM_T45AJR", 150, new int[] { 3, 8, 6, 3 }, 100); aMatAJR.customCraftingMaterial = ModItems.plate_armor_ajr; - ajr_helmet = new ArmorAJR(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).setMod(0.25F).setCap(6.0F).setThreshold(4F) - .setFireproof(true) + ajr_helmet = new ArmorAJR(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25) .enableVATS(true) .setHasGeigerSound(true) .setHasHardLanding(true) .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) - .setBlastProtection(0.25F) - .setStep("hbm:step.metal") - .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land") - .addResistance("monoxide", 0F) - .addResistance("fall", 0) + .setStep("hbm:step.metal").setJump("hbm:step.iron_jump").setFall("hbm:step.iron_land") .hides(EnumPlayerPart.HAT) .setUnlocalizedName("ajr_helmet").setTextureName(RefStrings.MODID + ":ajr_helmet"); ajr_plate = new ArmorAJR(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_plate").setTextureName(RefStrings.MODID + ":ajr_plate"); ajr_legs = new ArmorAJR(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_legs").setTextureName(RefStrings.MODID + ":ajr_legs"); ajr_boots = new ArmorAJR(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_boots").setTextureName(RefStrings.MODID + ":ajr_boots"); - ajro_helmet = new ArmorAJRO(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).setMod(0.25F).setCap(6.0F).setThreshold(4F) - .setFireproof(true) + ajro_helmet = new ArmorAJRO(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25) .enableVATS(true) .setHasGeigerSound(true) .setHasHardLanding(true) .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) - .setBlastProtection(0.25F) - .setStep("hbm:step.metal") - .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land") - .addResistance("monoxide", 0F) - .addResistance("fall", 0) + .setStep("hbm:step.metal").setJump("hbm:step.iron_jump").setFall("hbm:step.iron_land") .hides(EnumPlayerPart.HAT) .setUnlocalizedName("ajro_helmet").setTextureName(RefStrings.MODID + ":ajro_helmet"); ajro_plate = new ArmorAJRO(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_plate").setTextureName(RefStrings.MODID + ":ajro_plate"); ajro_legs = new ArmorAJRO(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_legs").setTextureName(RefStrings.MODID + ":ajro_legs"); ajro_boots = new ArmorAJRO(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_boots").setTextureName(RefStrings.MODID + ":ajro_boots"); - rpa_helmet = new ArmorRPA(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).setMod(0.1F).setCap(6.0F).setThreshold(20F) - .setFireproof(true) + rpa_helmet = new ArmorRPA(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25) .enableVATS(true) .setHasGeigerSound(true) .setHasHardLanding(true) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 3)) - .setBlastProtection(0.25F) - .setProjectileProtection(0.25F) - .setProtectionLevel(1500) .setStep("hbm:step.powered") .setJump("hbm:step.powered") .setFall("hbm:step.powered") - .addResistance("fall", 0) .hides(EnumPlayerPart.HAT) .setUnlocalizedName("rpa_helmet").setTextureName(RefStrings.MODID + ":rpa_helmet"); rpa_plate = new ArmorRPA(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_plate").setTextureName(RefStrings.MODID + ":rpa_plate"); @@ -4848,8 +4448,7 @@ public class ModItems { ArmorMaterial aMatBJ = EnumHelper.addArmorMaterial("HBM_BLACKJACK", 150, new int[] { 3, 8, 6, 3 }, 100); aMatBJ.customCraftingMaterial = ModItems.plate_armor_lunar; - bj_helmet = new ArmorBJ(aMatBJ, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).setMod(0.25F).setCap(4.0F).setThreshold(4F) - .setFireproof(true) + bj_helmet = new ArmorBJ(aMatBJ, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100) .enableVATS(true) .enableThermalSight(true) .setHasGeigerSound(true) @@ -4858,29 +4457,32 @@ public class ModItems { .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) .addEffect(new PotionEffect(Potion.field_76443_y.id, 20, 0)) .addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0)) - .setBlastProtection(0.5F) - .setProtectionLevel(500F) .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land") - .addResistance("fall", 0).setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet"); + .setFall("hbm:step.iron_land").setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet"); bj_plate = new ArmorBJ(aMatBJ, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate").setTextureName(RefStrings.MODID + ":bj_plate"); bj_plate_jetpack = new ArmorBJJetpack(aMatBJ, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate_jetpack").setTextureName(RefStrings.MODID + ":bj_plate_jetpack"); bj_legs = new ArmorBJ(aMatBJ, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs"); bj_boots = new ArmorBJ(aMatBJ, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots"); - ArmorMaterial aMatHEV = EnumHelper.addArmorMaterial("HBM_HEV", 150, new int[] { 3, 8, 6, 3 }, 100); - aMatHEV.customCraftingMaterial = ModItems.plate_armor_hev; - hev_helmet = new ArmorHEV(aMatHEV, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).setMod(0.20F).setCap(4.0F).setThreshold(2.0F) + ArmorMaterial aMatEnv = EnumHelper.addArmorMaterial("HBM_ENV", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatEnv.customCraftingMaterial = ModItems.plate_armor_hev; + envsuit_helmet = new ArmorEnvsuit(aMatEnv, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("envsuit_helmet").setTextureName(RefStrings.MODID + ":envsuit_helmet"); + envsuit_plate = new ArmorEnvsuit(aMatEnv, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_plate").setTextureName(RefStrings.MODID + ":envsuit_plate"); + envsuit_legs = new ArmorEnvsuit(aMatEnv, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_legs").setTextureName(RefStrings.MODID + ":envsuit_legs"); + envsuit_boots = new ArmorEnvsuit(aMatEnv, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_boots").setTextureName(RefStrings.MODID + ":envsuit_boots"); + + ArmorMaterial aMatHEV = EnumHelper.addArmorMaterial("HBM_HEV", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatHEV.customCraftingMaterial = ModItems.plate_armor_hev; + hev_helmet = new ArmorHEV(aMatHEV, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) - .setBlastProtection(0.25F) - .setProtectionLevel(500F) .setHasGeigerSound(true) .setHasCustomGeiger(true) - .addResistance("fall", 0.5F) - .addResistance("monoxide", 0F) - .addResistance("onFire", 0F) .hides(EnumPlayerPart.HAT) .setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); hev_plate = new ArmorHEV(aMatHEV, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate"); @@ -4892,26 +4494,20 @@ public class ModItems { ArmorMaterial aMatFau = EnumHelper.addArmorMaterial("HBM_DIGAMMA", 150, new int[] { 3, 8, 6, 3 }, 100); aMatFau.customCraftingMaterial = ModItems.plate_armor_fau; - fau_helmet = new ArmorDigamma(aMatFau, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).setMod(0.25F).setCap(4.0F).setThreshold(2.0F) + fau_helmet = new ArmorDigamma(aMatFau, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0) .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) - .setBlastProtection(0.05F) - .setMod(0.05F) .setHasGeigerSound(true) .enableThermalSight(true) .setHasHardLanding(true) .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") - .setProtectionLevel(1000F) - .addResistance("fall", 0F) - .addResistance("monoxide", 0F) - .setFireproof(true) .hides(EnumPlayerPart.HAT) .setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet"); fau_plate = new ArmorDigamma(aMatFau, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setFullSetForHide().setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate"); fau_legs = new ArmorDigamma(aMatFau, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).hides(EnumPlayerPart.LEFT_LEG, EnumPlayerPart.RIGHT_LEG).setFullSetForHide().setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs"); fau_boots = new ArmorDigamma(aMatFau, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots"); - + ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 100); aMatDNS.customCraftingMaterial = ModItems.plate_armor_dnt; dns_helmet = new ArmorDNT(aMatDNS, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115) @@ -4925,13 +4521,27 @@ public class ModItems { .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") - .setFireproof(true) .hides(EnumPlayerPart.HAT) .setUnlocalizedName("dns_helmet").setTextureName(RefStrings.MODID + ":dns_helmet"); dns_plate = new ArmorDNT(aMatDNS, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_plate").setTextureName(RefStrings.MODID + ":dns_plate"); dns_legs = new ArmorDNT(aMatDNS, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_legs").setTextureName(RefStrings.MODID + ":dns_legs"); dns_boots = new ArmorDNT(aMatDNS, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_boots").setTextureName(RefStrings.MODID + ":dns_boots"); + ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatTrench.customCraftingMaterial = ModItems.plate_iron; + trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 1)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 0)) + .enableVATS(true) + .setStepSize(1) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("trenchmaster_helmet").setTextureName(RefStrings.MODID + ":trenchmaster_helmet"); + trenchmaster_plate = new ArmorTrenchmaster(aMatTrench, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_plate").setTextureName(RefStrings.MODID + ":trenchmaster_plate"); + trenchmaster_legs = new ArmorTrenchmaster(aMatTrench, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_legs").setTextureName(RefStrings.MODID + ":trenchmaster_legs"); + trenchmaster_boots = new ArmorTrenchmaster(aMatTrench, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_boots").setTextureName(RefStrings.MODID + ":trenchmaster_boots"); + jackt = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt"); jackt2 = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2"); @@ -4939,10 +4549,10 @@ public class ModItems { Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.KEROSENE, Fluids.BIOFUEL, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.COALGAS, Fluids.COALGAS_LEADED) .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addHitAbility(new WeaponAbility.ChainsawAbility(4)) + .addHitAbility(new WeaponAbility.ChainsawAbility(10)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); - schrabidium_sword = new ItemSwordAbility(150, 0, MainRegistry.tMatSchrab) + schrabidium_sword = new ItemSwordAbility(75, 0, MainRegistry.tMatSchrab) .addHitAbility(new WeaponAbility.RadiationAbility(50F)) .addHitAbility(new WeaponAbility.VampireAbility(2F)) .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_sword").setTextureName(RefStrings.MODID + ":schrabidium_sword"); @@ -4993,22 +4603,22 @@ public class ModItems { steel_shovel = new ItemToolAbility(3F, 0, MainRegistry.tMatSteel, EnumToolType.SHOVEL).setUnlocalizedName("steel_shovel").setTextureName(RefStrings.MODID + ":steel_shovel"); steel_hoe = new ModHoe(MainRegistry.tMatSteel).setUnlocalizedName("steel_hoe").setTextureName(RefStrings.MODID + ":steel_hoe"); - alloy_sword = new ItemSwordAbility(9F, 0, MainRegistry.tMatAlloy) + alloy_sword = new ItemSwordAbility(8F, 0, MainRegistry.tMatAlloy) .addHitAbility(new WeaponAbility.StunAbility(2)).setUnlocalizedName("alloy_sword").setTextureName(RefStrings.MODID + ":alloy_sword"); - alloy_pickaxe = new ItemToolAbility(6F, 0, MainRegistry.tMatAlloy, EnumToolType.PICKAXE) + alloy_pickaxe = new ItemToolAbility(5F, 0, MainRegistry.tMatAlloy, EnumToolType.PICKAXE) .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_pickaxe").setTextureName(RefStrings.MODID + ":alloy_pickaxe"); alloy_axe = new ItemToolAbility(7F, 0, MainRegistry.tMatAlloy, EnumToolType.AXE) .addBreakAbility(new ToolAbility.RecursionAbility(3)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("alloy_axe").setTextureName(RefStrings.MODID + ":alloy_axe"); - alloy_shovel = new ItemToolAbility(5F, 0, MainRegistry.tMatAlloy, EnumToolType.SHOVEL) + alloy_shovel = new ItemToolAbility(4F, 0, MainRegistry.tMatAlloy, EnumToolType.SHOVEL) .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_shovel").setTextureName(RefStrings.MODID + ":alloy_shovel"); alloy_hoe = new ModHoe(MainRegistry.tMatAlloy).setUnlocalizedName("alloy_hoe").setTextureName(RefStrings.MODID + ":alloy_hoe"); - cmb_sword = new ItemSwordAbility(50F, 0, MainRegistry.tMatCMB) + cmb_sword = new ItemSwordAbility(35F, 0, MainRegistry.tMatCMB) .addHitAbility(new WeaponAbility.StunAbility(2)) .addHitAbility(new WeaponAbility.VampireAbility(2F)).setUnlocalizedName("cmb_sword").setTextureName(RefStrings.MODID + ":cmb_sword"); @@ -5018,7 +4628,7 @@ public class ModItems { .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cmb_pickaxe").setTextureName(RefStrings.MODID + ":cmb_pickaxe"); - cmb_axe = new ItemToolAbility(12.5F, 0, MainRegistry.tMatCMB, EnumToolType.AXE) + cmb_axe = new ItemToolAbility(30F, 0, MainRegistry.tMatCMB, EnumToolType.AXE) .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.SmelterAbility()) .addBreakAbility(new ToolAbility.SilkAbility()) @@ -5033,30 +4643,30 @@ public class ModItems { cmb_hoe = new ModHoe(MainRegistry.tMatCMB).setUnlocalizedName("cmb_hoe").setTextureName(RefStrings.MODID + ":cmb_hoe"); - elec_sword = new ItemSwordAbilityPower(15F, 0, MainRegistry.tMatElec, 500000, 1000, 100) + elec_sword = new ItemSwordAbilityPower(12.5F, 0, MainRegistry.tMatElec, 500000, 1000, 100) .addHitAbility(new WeaponAbility.StunAbility(5)).setUnlocalizedName("elec_sword").setTextureName(RefStrings.MODID + ":elec_sword_anim"); - elec_pickaxe = new ItemToolAbilityPower(10F, 0, MainRegistry.tMatElec, EnumToolType.PICKAXE, 500000, 1000, 100) + elec_pickaxe = new ItemToolAbilityPower(6F, 0, MainRegistry.tMatElec, EnumToolType.PICKAXE, 500000, 1000, 100) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("elec_pickaxe").setTextureName(RefStrings.MODID + ":elec_drill_anim"); - elec_axe = new ItemToolAbilityPower(12.5F, 0, MainRegistry.tMatElec, EnumToolType.AXE, 500000, 1000, 100) + elec_axe = new ItemToolAbilityPower(10F, 0, MainRegistry.tMatElec, EnumToolType.AXE, 500000, 1000, 100) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(2)) - .addHitAbility(new WeaponAbility.ChainsawAbility(6)) + .addHitAbility(new WeaponAbility.ChainsawAbility(15)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); - elec_shovel = new ItemToolAbilityPower(7.5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100) + elec_shovel = new ItemToolAbilityPower(5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("elec_shovel").setTextureName(RefStrings.MODID + ":elec_shovel_anim"); - desh_sword = new ItemSwordAbility(15F, 0, MainRegistry.tMatDesh) + desh_sword = new ItemSwordAbility(12.5F, 0, MainRegistry.tMatDesh) .addHitAbility(new WeaponAbility.StunAbility(2)).setUnlocalizedName("desh_sword").setTextureName(RefStrings.MODID + ":desh_sword"); desh_pickaxe = new ItemToolAbility(5F, -0.05, MainRegistry.tMatDesh, EnumToolType.PICKAXE) @@ -5065,7 +4675,7 @@ public class ModItems { .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("desh_pickaxe").setTextureName(RefStrings.MODID + ":desh_pickaxe"); - desh_axe = new ItemToolAbility(6.5F, -0.05, MainRegistry.tMatDesh, EnumToolType.AXE) + desh_axe = new ItemToolAbility(7.5F, -0.05, MainRegistry.tMatDesh, EnumToolType.AXE) .addBreakAbility(new ToolAbility.HammerAbility(1)) .addBreakAbility(new ToolAbility.RecursionAbility(3)) .addBreakAbility(new ToolAbility.SilkAbility()) @@ -5096,7 +4706,7 @@ public class ModItems { .addBreakAbility(new LuckAbility(1)).setUnlocalizedName("cobalt_shovel").setTextureName(RefStrings.MODID + ":cobalt_shovel"); cobalt_hoe = new ModHoe(MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_hoe").setTextureName(RefStrings.MODID + ":cobalt_hoe"); - ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 1000, 15.0F, 2.5F, 25).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); + ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 2500, 15.0F, 2.5F, 75).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); cobalt_decorated_sword = new ItemSwordAbility(15F, 0, matDecCobalt) .addHitAbility(new WeaponAbility.BobbleAbility()).setUnlocalizedName("cobalt_decorated_sword").setTextureName(RefStrings.MODID + ":cobalt_decorated_sword"); cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE) @@ -5117,7 +4727,7 @@ public class ModItems { .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cobalt_decorated_shovel").setTextureName(RefStrings.MODID + ":cobalt_decorated_shovel"); cobalt_decorated_hoe = new ModHoe(matDecCobalt).setUnlocalizedName("cobalt_decorated_hoe").setTextureName(RefStrings.MODID + ":cobalt_decorated_hoe"); - ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 1000, 20.0F, 2.5F, 30).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); + ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 3000, 20.0F, 2.5F, 100).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); starmetal_sword = new ItemSwordAbility(25F, 0, matStarmetal) .addHitAbility(new WeaponAbility.BeheaderAbility()) .addHitAbility(new WeaponAbility.StunAbility(3)) @@ -5147,14 +4757,14 @@ public class ModItems { .addBreakAbility(new ToolAbility.CentrifugeAbility()).setMaxDamage(50).setUnlocalizedName("centri_stick").setTextureName(RefStrings.MODID + ":centri_stick"); smashing_hammer = new ItemToolAbility(12F, -0.1, MainRegistry.tMatSteel, EnumToolType.MINER) .addBreakAbility(new ToolAbility.ShredderAbility()).setMaxDamage(2500).setUnlocalizedName("smashing_hammer").setTextureName(RefStrings.MODID + ":smashing_hammer"); - drax = new ItemToolAbilityPower(15F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 500000000, 100000, 5000) + drax = new ItemToolAbilityPower(10F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 500000000, 100000, 5000) .addBreakAbility(new ToolAbility.SmelterAbility()) .addBreakAbility(new ToolAbility.ShredderAbility()) .addBreakAbility(new ToolAbility.LuckAbility(2)) .addBreakAbility(new ToolAbility.HammerAbility(1)) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("drax").setTextureName(RefStrings.MODID + ":drax"); - drax_mk2 = new ItemToolAbilityPower(20F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 1000000000, 250000, 7500) + drax_mk2 = new ItemToolAbilityPower(15F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 1000000000, 250000, 7500) .addBreakAbility(new ToolAbility.SmelterAbility()) .addBreakAbility(new ToolAbility.ShredderAbility()) .addBreakAbility(new ToolAbility.CentrifugeAbility()) @@ -5187,6 +4797,16 @@ public class ModItems { .addHitAbility(new WeaponAbility.VampireAbility(2F)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("bismuth_pickaxe").setTextureName(RefStrings.MODID + ":bismuth_pickaxe"); + bismuth_axe = new ItemToolAbility(25F, 0, matBismuth, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(2)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addHitAbility(new WeaponAbility.StunAbility(10)) + .addHitAbility(new WeaponAbility.VampireAbility(3F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("bismuth_axe").setTextureName(RefStrings.MODID + ":bismuth_axe"); + ToolMaterial matVolcano = EnumHelper.addToolMaterial("HBM_VOLCANIC", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); volcanic_pickaxe = new ItemToolAbility(15F, 0, matVolcano, EnumToolType.MINER) @@ -5199,6 +4819,15 @@ public class ModItems { .addHitAbility(new WeaponAbility.VampireAbility(2F)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("volcanic_pickaxe").setTextureName(RefStrings.MODID + ":volcanic_pickaxe"); + volcanic_axe = new ItemToolAbility(25F, 0, matVolcano, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(3)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addHitAbility(new WeaponAbility.FireAbility(10)) + .addHitAbility(new WeaponAbility.VampireAbility(3F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("volcanic_axe").setTextureName(RefStrings.MODID + ":volcanic_axe"); ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 75F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte)); chlorophyte_pickaxe = new ItemToolAbility(20F, 0, matChlorophyte, EnumToolType.MINER) @@ -5211,7 +4840,14 @@ public class ModItems { .addHitAbility(new WeaponAbility.VampireAbility(5F)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("chlorophyte_pickaxe").setTextureName(RefStrings.MODID + ":chlorophyte_pickaxe"); - + chlorophyte_axe = new ItemToolAbility(50F, 0, matChlorophyte, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.LuckAbility(4)) + .addHitAbility(new WeaponAbility.StunAbility(15)) + .addHitAbility(new WeaponAbility.VampireAbility(10F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("chlorophyte_axe").setTextureName(RefStrings.MODID + ":chlorophyte_axe"); + ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); mese_pickaxe = new ItemToolAbility(35F, 0, matMese, EnumToolType.MINER) .addBreakAbility(new ToolAbility.HammerAbility(3)) @@ -5227,22 +4863,38 @@ public class ModItems { .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("mese_pickaxe").setTextureName(RefStrings.MODID + ":mese_pickaxe"); + mese_axe = new ItemToolAbility(75F, 0, matMese, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(3)) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(9)) + .addBreakAbility(new ToolAbility.ExplosionAbility(2.5F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(5F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(10F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(15F)) + .addHitAbility(new WeaponAbility.StunAbility(15)) + .addHitAbility(new WeaponAbility.PhosphorusAbility(90)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("mese_axe").setTextureName(RefStrings.MODID + ":mese_axe"); dnt_sword = new ItemSwordAbility(12F, 0, matMese).setUnlocalizedName("dnt_sword").setTextureName(RefStrings.MODID + ":dnt_sword"); + ToolMaterial matDwarf = EnumHelper.addToolMaterial("HBM_DWARVEN", 2, 0, 4F, 0.0F, 10).setRepairItem(new ItemStack(ModItems.ingot_copper)); + dwarven_pickaxe = new ItemToolAbility(5F, -0.1, matDwarf, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.HammerAbility(1)).setUnlocalizedName("dwarven_pickaxe").setMaxDamage(250).setTextureName(RefStrings.MODID + ":dwarven_pickaxe"); + ToolMaterial matMeteorite = EnumHelper.addToolMaterial("HBM_METEORITE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); - meteorite_sword = new ItemSwordMeteorite(10F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_seared = new ItemSwordMeteorite(15F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_seared").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_reforged = new ItemSwordMeteorite(25F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_reforged").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_hardened = new ItemSwordMeteorite(35F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_hardened").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_alloyed = new ItemSwordMeteorite(50F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_alloyed").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_machined = new ItemSwordMeteorite(65F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_machined").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_treated = new ItemSwordMeteorite(80F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_treated").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_etched = new ItemSwordMeteorite(100F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_etched").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_bred = new ItemSwordMeteorite(125F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_bred").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_irradiated = new ItemSwordMeteorite(175F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_irradiated").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_fused = new ItemSwordMeteorite(250F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_fused").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_baleful = new ItemSwordMeteorite(500F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_baleful").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword = new ItemSwordMeteorite(9F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_seared = new ItemSwordMeteorite(10F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_seared").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_reforged = new ItemSwordMeteorite(12.5F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_reforged").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_hardened = new ItemSwordMeteorite(15F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_hardened").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_alloyed = new ItemSwordMeteorite(17.5F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_alloyed").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_machined = new ItemSwordMeteorite(20F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_machined").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_treated = new ItemSwordMeteorite(22.5F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_treated").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_etched = new ItemSwordMeteorite(25F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_etched").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_bred = new ItemSwordMeteorite(30F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_bred").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_irradiated = new ItemSwordMeteorite(35F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_irradiated").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_fused = new ItemSwordMeteorite(50F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_fused").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_baleful = new ItemSwordMeteorite(75F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_baleful").setTextureName(RefStrings.MODID + ":meteorite_sword"); mask_of_infamy = new MaskOfInfamy(ArmorMaterial.IRON, 0).setUnlocalizedName("mask_of_infamy").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_of_infamy"); @@ -5255,12 +4907,12 @@ public class ModItems { hazmat_legs_red = new ArmorHazmat(MainRegistry.aMatHaz2, 2, RefStrings.MODID + ":textures/armor/hazmat_2_red.png").setUnlocalizedName("hazmat_legs_red").setTextureName(RefStrings.MODID + ":hazmat_legs_red"); hazmat_boots_red = new ArmorHazmat(MainRegistry.aMatHaz2, 3, RefStrings.MODID + ":textures/armor/hazmat_1_red.png").setUnlocalizedName("hazmat_boots_red").setTextureName(RefStrings.MODID + ":hazmat_boots_red"); hazmat_helmet_grey = new ArmorHazmatMask(MainRegistry.aMatHaz3, 0, "hbm:textures/models/ModelHazGrey.png") - .setFireproof(true).setUnlocalizedName("hazmat_helmet_grey").setTextureName(RefStrings.MODID + ":hazmat_helmet_grey"); + .setUnlocalizedName("hazmat_helmet_grey").setTextureName(RefStrings.MODID + ":hazmat_helmet_grey"); hazmat_plate_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 1, RefStrings.MODID + ":textures/armor/hazmat_1_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_plate_grey").setTextureName(RefStrings.MODID + ":hazmat_plate_grey"); hazmat_legs_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 2, RefStrings.MODID + ":textures/armor/hazmat_2_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_legs_grey").setTextureName(RefStrings.MODID + ":hazmat_legs_grey"); hazmat_boots_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 3, RefStrings.MODID + ":textures/armor/hazmat_1_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_boots_grey").setTextureName(RefStrings.MODID + ":hazmat_boots_grey"); hazmat_paa_helmet = new ArmorHazmatMask(MainRegistry.aMatPaa, 0, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png") - .setFireproof(true).setUnlocalizedName("hazmat_paa_helmet").setTextureName(RefStrings.MODID + ":hazmat_paa_helmet"); + .setUnlocalizedName("hazmat_paa_helmet").setTextureName(RefStrings.MODID + ":hazmat_paa_helmet"); hazmat_paa_plate = new ArmorHazmat(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_plate").setTextureName(RefStrings.MODID + ":hazmat_paa_plate"); hazmat_paa_legs = new ArmorHazmat(MainRegistry.aMatPaa, 2, RefStrings.MODID + ":textures/armor/hazmat_paa_2.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_legs").setTextureName(RefStrings.MODID + ":hazmat_paa_legs"); hazmat_paa_boots = new ArmorHazmat(MainRegistry.aMatPaa, 3, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_boots").setTextureName(RefStrings.MODID + ":hazmat_paa_boots"); @@ -5268,9 +4920,6 @@ public class ModItems { ArmorMaterial aMatLiquidator = EnumHelper.addArmorMaterial("HBM_LIQUIDATOR", 750, new int[] { 3, 8, 6, 3 }, 10); aMatLiquidator.customCraftingMaterial = ModItems.plate_lead; liquidator_helmet = new ArmorLiquidatorMask(aMatLiquidator, 0, RefStrings.MODID + ":textures/armor/liquidator_helmet.png") - .setThreshold(1.0F) - .setBlastProtection(0.25F) - .setFireproof(true) .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land").setUnlocalizedName("liquidator_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_helmet"); @@ -5278,16 +4927,13 @@ public class ModItems { liquidator_legs = new ArmorLiquidator(aMatLiquidator, 2, RefStrings.MODID + ":textures/armor/liquidator_2.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_legs"); liquidator_boots = new ArmorLiquidator(aMatLiquidator, 3, RefStrings.MODID + ":textures/armor/liquidator_1.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_boots"); - australium_iii = new ArmorAustralium(MainRegistry.aMatAus3, 1).setUnlocalizedName("australium_iii").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":australium_iii"); - jetpack_boost = new JetpackBooster(Fluids.BALEFIRE, 32000).setUnlocalizedName("jetpack_boost").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_boost"); jetpack_break = new JetpackBreak(Fluids.KEROSENE, 12000).setUnlocalizedName("jetpack_break").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_break"); jetpack_fly = new JetpackRegular(Fluids.KEROSENE, 12000).setUnlocalizedName("jetpack_fly").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_fly"); jetpack_vector = new JetpackVectorized(Fluids.KEROSENE, 16000).setUnlocalizedName("jetpack_vector").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_vector"); - wings_murk = new WingsMurk(MainRegistry.aMatCobalt).setUnlocalizedName("wings_murk").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_murk"); - wings_limp = new WingsMurk(MainRegistry.aMatCobalt).setUnlocalizedName("wings_limp").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_limp"); + wings_murk = new WingsMurk().setUnlocalizedName("wings_murk").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_murk"); + wings_limp = new WingsMurk().setUnlocalizedName("wings_limp").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_limp"); - cape_test = new ArmorModel(MainRegistry.enumArmorMaterialEmerald, 1).setUnlocalizedName("cape_test").setCreativeTab(null).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_test"); cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation"); cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask"); cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium"); @@ -5298,7 +4944,6 @@ public class ModItems { shimmer_axe = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_axe"); bottle_opener = new WeaponSpecial(MainRegistry.enumToolMaterialBottleOpener).setUnlocalizedName("bottle_opener").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":bottle_opener"); pch = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("pch").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); - euphemium_stopper = new ItemSyringe().setUnlocalizedName("euphemium_stopper").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":euphemium_stopper"); matchstick = new ItemMatch().setUnlocalizedName("matchstick").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":matchstick"); balefire_and_steel = new ItemBalefireMatch().setUnlocalizedName("balefire_and_steel").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":balefire_and_steel"); crowbar = new ModSword(MainRegistry.tMatSteel).setUnlocalizedName("crowbar").setFull3D().setTextureName(RefStrings.MODID + ":crowbar"); @@ -5350,6 +4995,9 @@ public class ModItems { door_metal = new ItemModDoor().setUnlocalizedName("door_metal").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_metal"); door_office = new ItemModDoor().setUnlocalizedName("door_office").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_office"); door_bunker = new ItemModDoor().setUnlocalizedName("door_bunker").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_bunker"); + door_red = new ItemModDoor().setUnlocalizedName("door_red").setCreativeTab(null).setTextureName(RefStrings.MODID + ":door_red"); + + sliding_blast_door_skin = new ItemSlidingBlastDoorSkin().setUnlocalizedName("sliding_blast_door_skin").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":sliding_blast_door_default"); record_lc = new ItemModRecord("lc").setUnlocalizedName("record_lc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_lc"); record_ss = new ItemModRecord("ss").setUnlocalizedName("record_ss").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_ss"); @@ -5360,54 +5008,17 @@ public class ModItems { book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_pages"); holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); + clay_tablet = new ItemClayTablet().setUnlocalizedName("clay_tablet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clay_tablet"); polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); glitch = new ItemGlitch().setUnlocalizedName("glitch").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glitch_" + MainRegistry.polaroidID); letter = new ItemStarterKit().setUnlocalizedName("letter").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":letter"); book_secret = new ItemCustomLore().setUnlocalizedName("book_secret").setCreativeTab(MainRegistry.polaroidID == 11 ? MainRegistry.consumableTab : null).setTextureName(RefStrings.MODID + ":book_secret"); book_of_ = new ItemBook().setUnlocalizedName("book_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_of_"); + page_of_ = new ItemEnumMulti(ItemEnums.EnumPages.class, true, false).setUnlocalizedName("page_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":page_of_"); + book_lemegeton = new ItemBookLemegeton().setUnlocalizedName("book_lemegeton").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_lemegeton"); burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); - smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1"); - smoke2 = new Item().setUnlocalizedName("smoke2").setTextureName(RefStrings.MODID + ":smoke2"); - smoke3 = new Item().setUnlocalizedName("smoke3").setTextureName(RefStrings.MODID + ":smoke3"); - smoke4 = new Item().setUnlocalizedName("smoke4").setTextureName(RefStrings.MODID + ":smoke4"); - smoke5 = new Item().setUnlocalizedName("smoke5").setTextureName(RefStrings.MODID + ":smoke5"); - smoke6 = new Item().setUnlocalizedName("smoke6").setTextureName(RefStrings.MODID + ":smoke6"); - smoke7 = new Item().setUnlocalizedName("smoke7").setTextureName(RefStrings.MODID + ":smoke7"); - smoke8 = new Item().setUnlocalizedName("smoke8").setTextureName(RefStrings.MODID + ":smoke8"); - b_smoke1 = new Item().setUnlocalizedName("b_smoke1").setTextureName(RefStrings.MODID + ":b_smoke1"); - b_smoke2 = new Item().setUnlocalizedName("b_smoke2").setTextureName(RefStrings.MODID + ":b_smoke2"); - b_smoke3 = new Item().setUnlocalizedName("b_smoke3").setTextureName(RefStrings.MODID + ":b_smoke3"); - b_smoke4 = new Item().setUnlocalizedName("b_smoke4").setTextureName(RefStrings.MODID + ":b_smoke4"); - b_smoke5 = new Item().setUnlocalizedName("b_smoke5").setTextureName(RefStrings.MODID + ":b_smoke5"); - b_smoke6 = new Item().setUnlocalizedName("b_smoke6").setTextureName(RefStrings.MODID + ":b_smoke6"); - b_smoke7 = new Item().setUnlocalizedName("b_smoke7").setTextureName(RefStrings.MODID + ":b_smoke7"); - b_smoke8 = new Item().setUnlocalizedName("b_smoke8").setTextureName(RefStrings.MODID + ":b_smoke8"); - d_smoke1 = new Item().setUnlocalizedName("d_smoke1").setTextureName(RefStrings.MODID + ":d_smoke1"); - d_smoke2 = new Item().setUnlocalizedName("d_smoke2").setTextureName(RefStrings.MODID + ":d_smoke2"); - d_smoke3 = new Item().setUnlocalizedName("d_smoke3").setTextureName(RefStrings.MODID + ":d_smoke3"); - d_smoke4 = new Item().setUnlocalizedName("d_smoke4").setTextureName(RefStrings.MODID + ":d_smoke4"); - d_smoke5 = new Item().setUnlocalizedName("d_smoke5").setTextureName(RefStrings.MODID + ":d_smoke5"); - d_smoke6 = new Item().setUnlocalizedName("d_smoke6").setTextureName(RefStrings.MODID + ":d_smoke6"); - d_smoke7 = new Item().setUnlocalizedName("d_smoke7").setTextureName(RefStrings.MODID + ":d_smoke7"); - d_smoke8 = new Item().setUnlocalizedName("d_smoke8").setTextureName(RefStrings.MODID + ":d_smoke8"); - spill1 = new Item().setUnlocalizedName("spill1").setTextureName(RefStrings.MODID + ":spill1"); - spill2 = new Item().setUnlocalizedName("spill2").setTextureName(RefStrings.MODID + ":spill2"); - spill3 = new Item().setUnlocalizedName("spill3").setTextureName(RefStrings.MODID + ":spill3"); - spill4 = new Item().setUnlocalizedName("spill4").setTextureName(RefStrings.MODID + ":spill4"); - spill5 = new Item().setUnlocalizedName("spill5").setTextureName(RefStrings.MODID + ":spill5"); - spill6 = new Item().setUnlocalizedName("spill6").setTextureName(RefStrings.MODID + ":spill6"); - spill7 = new Item().setUnlocalizedName("spill7").setTextureName(RefStrings.MODID + ":spill7"); - spill8 = new Item().setUnlocalizedName("spill8").setTextureName(RefStrings.MODID + ":spill8"); - gas1 = new Item().setUnlocalizedName("gas1").setTextureName(RefStrings.MODID + ":gas1"); - gas2 = new Item().setUnlocalizedName("gas2").setTextureName(RefStrings.MODID + ":gas2"); - gas3 = new Item().setUnlocalizedName("gas3").setTextureName(RefStrings.MODID + ":gas3"); - gas4 = new Item().setUnlocalizedName("gas4").setTextureName(RefStrings.MODID + ":gas4"); - gas5 = new Item().setUnlocalizedName("gas5").setTextureName(RefStrings.MODID + ":gas5"); - gas6 = new Item().setUnlocalizedName("gas6").setTextureName(RefStrings.MODID + ":gas6"); - gas7 = new Item().setUnlocalizedName("gas7").setTextureName(RefStrings.MODID + ":gas7"); - gas8 = new Item().setUnlocalizedName("gas8").setTextureName(RefStrings.MODID + ":gas8"); chlorine1 = new Item().setUnlocalizedName("chlorine1").setTextureName(RefStrings.MODID + ":chlorine1"); chlorine2 = new Item().setUnlocalizedName("chlorine2").setTextureName(RefStrings.MODID + ":chlorine2"); chlorine3 = new Item().setUnlocalizedName("chlorine3").setTextureName(RefStrings.MODID + ":chlorine3"); @@ -5440,31 +5051,7 @@ public class ModItems { orange6 = new Item().setUnlocalizedName("orange6").setTextureName(RefStrings.MODID + ":orange6"); orange7 = new Item().setUnlocalizedName("orange7").setTextureName(RefStrings.MODID + ":orange7"); orange8 = new Item().setUnlocalizedName("orange8").setTextureName(RefStrings.MODID + ":orange8"); - energy_ball = new Item().setUnlocalizedName("energy_ball").setTextureName(RefStrings.MODID + ":energy_ball"); - discharge = new Item().setUnlocalizedName("discharge").setTextureName(RefStrings.MODID + ":discharge"); - empblast = new Item().setUnlocalizedName("empblast").setTextureName(RefStrings.MODID + ":empblast"); - flame_1 = new Item().setUnlocalizedName("flame_1").setTextureName(RefStrings.MODID + ":flame_1"); - flame_2 = new Item().setUnlocalizedName("flame_2").setTextureName(RefStrings.MODID + ":flame_2"); - flame_3 = new Item().setUnlocalizedName("flame_3").setTextureName(RefStrings.MODID + ":flame_3"); - flame_4 = new Item().setUnlocalizedName("flame_4").setTextureName(RefStrings.MODID + ":flame_4"); - flame_5 = new Item().setUnlocalizedName("flame_5").setTextureName(RefStrings.MODID + ":flame_5"); - flame_6 = new Item().setUnlocalizedName("flame_6").setTextureName(RefStrings.MODID + ":flame_6"); - flame_7 = new Item().setUnlocalizedName("flame_7").setTextureName(RefStrings.MODID + ":flame_7"); - flame_8 = new Item().setUnlocalizedName("flame_8").setTextureName(RefStrings.MODID + ":flame_8"); - flame_9 = new Item().setUnlocalizedName("flame_9").setTextureName(RefStrings.MODID + ":flame_9"); - flame_10 = new Item().setUnlocalizedName("flame_10").setTextureName(RefStrings.MODID + ":flame_10"); - ln2_1 = new Item().setUnlocalizedName("ln2_1").setTextureName(RefStrings.MODID + ":ln2_1"); - ln2_2 = new Item().setUnlocalizedName("ln2_2").setTextureName(RefStrings.MODID + ":ln2_2"); - ln2_3 = new Item().setUnlocalizedName("ln2_3").setTextureName(RefStrings.MODID + ":ln2_3"); - ln2_4 = new Item().setUnlocalizedName("ln2_4").setTextureName(RefStrings.MODID + ":ln2_4"); - ln2_5 = new Item().setUnlocalizedName("ln2_5").setTextureName(RefStrings.MODID + ":ln2_5"); - ln2_6 = new Item().setUnlocalizedName("ln2_6").setTextureName(RefStrings.MODID + ":ln2_6"); - ln2_7 = new Item().setUnlocalizedName("ln2_7").setTextureName(RefStrings.MODID + ":ln2_7"); - ln2_8 = new Item().setUnlocalizedName("ln2_8").setTextureName(RefStrings.MODID + ":ln2_8"); - ln2_9 = new Item().setUnlocalizedName("ln2_9").setTextureName(RefStrings.MODID + ":ln2_9"); - ln2_10 = new Item().setUnlocalizedName("ln2_10").setTextureName(RefStrings.MODID + ":ln2_10"); nothing = new Item().setUnlocalizedName("nothing").setTextureName(RefStrings.MODID + ":nothing"); - void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); achievement_icon = new ItemEnumMulti(ItemEnums.EnumAchievementType.class, true, true).setUnlocalizedName("achievement_icon"); @@ -5477,6 +5064,8 @@ public class ModItems { mysteryshovel = new ItemMS().setUnlocalizedName("mysteryshovel").setFull3D().setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cursed_shovel"); memory = new ItemBattery(Long.MAX_VALUE / 100L, 100000000000000L, 100000000000000L).setUnlocalizedName("memory").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mo8_anim"); + GunFactory.init(); + FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.mud_fluid, 1000), new ItemStack(ModItems.bucket_mud), new ItemStack(Items.bucket)); FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.acid_fluid, 1000), new ItemStack(ModItems.bucket_acid), new ItemStack(Items.bucket)); FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.toxic_fluid, 1000), new ItemStack(ModItems.bucket_toxic), new ItemStack(Items.bucket)); @@ -5495,13 +5084,6 @@ public class ModItems { GameRegistry.registerItem(redstone_sword, redstone_sword.getUnlocalizedName()); GameRegistry.registerItem(big_sword, big_sword.getUnlocalizedName()); - //Test Armor - GameRegistry.registerItem(test_helmet, test_helmet.getUnlocalizedName()); - GameRegistry.registerItem(test_chestplate, test_chestplate.getUnlocalizedName()); - GameRegistry.registerItem(test_leggings, test_leggings.getUnlocalizedName()); - GameRegistry.registerItem(test_boots, test_boots.getUnlocalizedName()); - GameRegistry.registerItem(cape_test, cape_test.getUnlocalizedName()); - //Test Nuke GameRegistry.registerItem(test_nuke_igniter, test_nuke_igniter.getUnlocalizedName()); GameRegistry.registerItem(test_nuke_propellant, test_nuke_propellant.getUnlocalizedName()); @@ -5545,12 +5127,16 @@ public class ModItems { GameRegistry.registerItem(ingot_steel, ingot_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_tcalloy, ingot_tcalloy.getUnlocalizedName()); GameRegistry.registerItem(ingot_cdalloy, ingot_cdalloy.getUnlocalizedName()); + GameRegistry.registerItem(ingot_bismuth_bronze, ingot_bismuth_bronze.getUnlocalizedName()); + GameRegistry.registerItem(ingot_arsenic_bronze, ingot_arsenic_bronze.getUnlocalizedName()); + GameRegistry.registerItem(ingot_bscco, ingot_bscco.getUnlocalizedName()); GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName()); GameRegistry.registerItem(ingot_bismuth, ingot_bismuth.getUnlocalizedName()); GameRegistry.registerItem(ingot_arsenic, ingot_arsenic.getUnlocalizedName()); GameRegistry.registerItem(ingot_calcium, ingot_calcium.getUnlocalizedName()); GameRegistry.registerItem(ingot_cadmium, ingot_cadmium.getUnlocalizedName()); GameRegistry.registerItem(ingot_tantalium, ingot_tantalium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_silicon, ingot_silicon.getUnlocalizedName()); GameRegistry.registerItem(ingot_niobium, ingot_niobium.getUnlocalizedName()); GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName()); GameRegistry.registerItem(ingot_cobalt, ingot_cobalt.getUnlocalizedName()); @@ -5560,11 +5146,12 @@ public class ModItems { GameRegistry.registerItem(ingot_dura_steel, ingot_dura_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_polymer, ingot_polymer.getUnlocalizedName()); GameRegistry.registerItem(ingot_bakelite, ingot_bakelite.getUnlocalizedName()); + GameRegistry.registerItem(ingot_biorubber, ingot_biorubber.getUnlocalizedName()); GameRegistry.registerItem(ingot_rubber, ingot_rubber.getUnlocalizedName()); - //GameRegistry.registerItem(ingot_pet, ingot_pet.getUnlocalizedName()); GameRegistry.registerItem(ingot_pc, ingot_pc.getUnlocalizedName()); GameRegistry.registerItem(ingot_pvc, ingot_pvc.getUnlocalizedName()); GameRegistry.registerItem(ingot_mud, ingot_mud.getUnlocalizedName()); + GameRegistry.registerItem(ingot_cft, ingot_cft.getUnlocalizedName()); GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName()); @@ -5582,16 +5169,13 @@ public class ModItems { GameRegistry.registerItem(ingot_hes, ingot_hes.getUnlocalizedName()); GameRegistry.registerItem(ingot_les, ingot_les.getUnlocalizedName()); GameRegistry.registerItem(ingot_australium, ingot_australium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_weidanium, ingot_weidanium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_reiium, ingot_reiium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_unobtainium, ingot_unobtainium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_daffergon, ingot_daffergon.getUnlocalizedName()); - GameRegistry.registerItem(ingot_verticium, ingot_verticium.getUnlocalizedName()); GameRegistry.registerItem(ingot_lanthanium, ingot_lanthanium.getUnlocalizedName()); GameRegistry.registerItem(ingot_actinium, ingot_actinium.getUnlocalizedName()); GameRegistry.registerItem(ingot_desh, ingot_desh.getUnlocalizedName()); GameRegistry.registerItem(ingot_ferrouranium, ingot_ferrouranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_starmetal, ingot_starmetal.getUnlocalizedName()); + GameRegistry.registerItem(ingot_gunmetal, ingot_gunmetal.getUnlocalizedName()); + GameRegistry.registerItem(ingot_weaponsteel, ingot_weaponsteel.getUnlocalizedName()); GameRegistry.registerItem(ingot_saturnite, ingot_saturnite.getUnlocalizedName()); GameRegistry.registerItem(ingot_euphemium, ingot_euphemium.getUnlocalizedName()); GameRegistry.registerItem(ingot_dineutronium, ingot_dineutronium.getUnlocalizedName()); @@ -5622,6 +5206,7 @@ public class ModItems { GameRegistry.registerItem(rocket_fuel, rocket_fuel.getUnlocalizedName()); GameRegistry.registerItem(ingot_fiberglass, ingot_fiberglass.getUnlocalizedName()); GameRegistry.registerItem(ingot_asbestos, ingot_asbestos.getUnlocalizedName()); + GameRegistry.registerItem(ingot_raw, ingot_raw.getUnlocalizedName()); //Billets GameRegistry.registerItem(billet_uranium, billet_uranium.getUnlocalizedName()); @@ -5668,6 +5253,7 @@ public class ModItems { GameRegistry.registerItem(billet_pu238be, billet_pu238be.getUnlocalizedName()); GameRegistry.registerItem(billet_beryllium, billet_beryllium.getUnlocalizedName()); GameRegistry.registerItem(billet_bismuth, billet_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(billet_silicon, billet_silicon.getUnlocalizedName()); GameRegistry.registerItem(billet_zirconium, billet_zirconium.getUnlocalizedName()); GameRegistry.registerItem(billet_zfb_bismuth, billet_zfb_bismuth.getUnlocalizedName()); GameRegistry.registerItem(billet_zfb_pu241, billet_zfb_pu241.getUnlocalizedName()); @@ -5688,6 +5274,8 @@ public class ModItems { GameRegistry.registerItem(briquette, briquette.getUnlocalizedName()); GameRegistry.registerItem(sulfur, sulfur.getUnlocalizedName()); GameRegistry.registerItem(niter, niter.getUnlocalizedName()); + GameRegistry.registerItem(nitra, nitra.getUnlocalizedName()); + GameRegistry.registerItem(nitra_small, nitra_small.getUnlocalizedName()); GameRegistry.registerItem(fluorite, fluorite.getUnlocalizedName()); GameRegistry.registerItem(powder_coal, powder_coal.getUnlocalizedName()); GameRegistry.registerItem(powder_coal_tiny, powder_coal_tiny.getUnlocalizedName()); @@ -5735,6 +5323,7 @@ public class ModItems { GameRegistry.registerItem(powder_impure_osmiridium, powder_impure_osmiridium.getUnlocalizedName()); GameRegistry.registerItem(powder_borax, powder_borax.getUnlocalizedName()); GameRegistry.registerItem(powder_chlorocalcite, powder_chlorocalcite.getUnlocalizedName()); + GameRegistry.registerItem(powder_molysite, powder_molysite.getUnlocalizedName()); GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName()); GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName()); GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName()); @@ -5748,6 +5337,7 @@ public class ModItems { GameRegistry.registerItem(powder_lithium, powder_lithium.getUnlocalizedName()); GameRegistry.registerItem(powder_lithium_tiny, powder_lithium_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_zirconium, powder_zirconium.getUnlocalizedName()); + GameRegistry.registerItem(powder_sodium, powder_sodium.getUnlocalizedName()); GameRegistry.registerItem(powder_lignite, powder_lignite.getUnlocalizedName()); GameRegistry.registerItem(powder_iodine, powder_iodine.getUnlocalizedName()); GameRegistry.registerItem(powder_thorium, powder_thorium.getUnlocalizedName()); @@ -5756,11 +5346,6 @@ public class ModItems { GameRegistry.registerItem(powder_astatine, powder_astatine.getUnlocalizedName()); GameRegistry.registerItem(powder_caesium, powder_caesium.getUnlocalizedName()); GameRegistry.registerItem(powder_australium, powder_australium.getUnlocalizedName()); - GameRegistry.registerItem(powder_weidanium, powder_weidanium.getUnlocalizedName()); - GameRegistry.registerItem(powder_reiium, powder_reiium.getUnlocalizedName()); - GameRegistry.registerItem(powder_unobtainium, powder_unobtainium.getUnlocalizedName()); - GameRegistry.registerItem(powder_daffergon, powder_daffergon.getUnlocalizedName()); - GameRegistry.registerItem(powder_verticium, powder_verticium.getUnlocalizedName()); GameRegistry.registerItem(powder_strontium, powder_strontium.getUnlocalizedName()); GameRegistry.registerItem(powder_cobalt, powder_cobalt.getUnlocalizedName()); GameRegistry.registerItem(powder_cobalt_tiny, powder_cobalt_tiny.getUnlocalizedName()); @@ -5778,7 +5363,6 @@ public class ModItems { GameRegistry.registerItem(powder_boron_tiny, powder_boron_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_asbestos, powder_asbestos.getUnlocalizedName()); GameRegistry.registerItem(powder_magic, powder_magic.getUnlocalizedName()); - GameRegistry.registerItem(powder_cloud, powder_cloud.getUnlocalizedName()); GameRegistry.registerItem(powder_sawdust, powder_sawdust.getUnlocalizedName()); GameRegistry.registerItem(powder_flux, powder_flux.getUnlocalizedName()); GameRegistry.registerItem(powder_fertilizer, powder_fertilizer.getUnlocalizedName()); @@ -5793,10 +5377,12 @@ public class ModItems { GameRegistry.registerItem(powder_meteorite_tiny, powder_meteorite_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_euphemium, powder_euphemium.getUnlocalizedName()); GameRegistry.registerItem(powder_dineutronium, powder_dineutronium.getUnlocalizedName()); - GameRegistry.registerItem(redstone_depleted, redstone_depleted.getUnlocalizedName()); GameRegistry.registerItem(dust, dust.getUnlocalizedName()); GameRegistry.registerItem(dust_tiny, dust_tiny.getUnlocalizedName()); GameRegistry.registerItem(fallout, fallout.getUnlocalizedName()); + GameRegistry.registerItem(powder_ash, powder_ash.getUnlocalizedName()); + GameRegistry.registerItem(powder_limestone, powder_limestone.getUnlocalizedName()); + GameRegistry.registerItem(powder_cement, powder_cement.getUnlocalizedName()); //Powders GameRegistry.registerItem(powder_fire, powder_fire.getUnlocalizedName()); @@ -5809,6 +5395,7 @@ public class ModItems { GameRegistry.registerItem(ball_dynamite, ball_dynamite.getUnlocalizedName()); GameRegistry.registerItem(ball_tnt, ball_tnt.getUnlocalizedName()); GameRegistry.registerItem(ball_tatb, ball_tatb.getUnlocalizedName()); + GameRegistry.registerItem(ball_resin, ball_resin.getUnlocalizedName()); GameRegistry.registerItem(ball_fireclay, ball_fireclay.getUnlocalizedName()); //Ores @@ -5821,9 +5408,11 @@ public class ModItems { GameRegistry.registerItem(ore_nitrocrystalline, ore_nitrocrystalline.getUnlocalizedName()); GameRegistry.registerItem(ore_deepcleaned, ore_deepcleaned.getUnlocalizedName()); GameRegistry.registerItem(ore_seared, ore_seared.getUnlocalizedName()); - //GameRegistry.registerItem(ore_radcleaned, ore_radcleaned.getUnlocalizedName()); GameRegistry.registerItem(ore_enriched, ore_enriched.getUnlocalizedName()); GameRegistry.registerItem(ore_byproduct, ore_byproduct.getUnlocalizedName()); + GameRegistry.registerItem(bedrock_ore_base, bedrock_ore_base.getUnlocalizedName()); + GameRegistry.registerItem(bedrock_ore, bedrock_ore.getUnlocalizedName()); + GameRegistry.registerItem(bedrock_ore_fragment, bedrock_ore_fragment.getUnlocalizedName()); //Crystals GameRegistry.registerItem(crystal_coal, crystal_coal.getUnlocalizedName()); @@ -5854,8 +5443,10 @@ public class ModItems { GameRegistry.registerItem(crystal_cinnebar, crystal_cinnebar.getUnlocalizedName()); GameRegistry.registerItem(crystal_trixite, crystal_trixite.getUnlocalizedName()); GameRegistry.registerItem(crystal_osmiridium, crystal_osmiridium.getUnlocalizedName()); + GameRegistry.registerItem(gem_sodalite, gem_sodalite.getUnlocalizedName()); GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName()); GameRegistry.registerItem(gem_volcanic, gem_volcanic.getUnlocalizedName()); + GameRegistry.registerItem(gem_rad, gem_rad.getUnlocalizedName()); GameRegistry.registerItem(gem_alexandrite, gem_alexandrite.getUnlocalizedName()); //Fragments @@ -5868,6 +5459,7 @@ public class ModItems { GameRegistry.registerItem(fragment_boron, fragment_boron.getUnlocalizedName()); GameRegistry.registerItem(fragment_meteorite, fragment_meteorite.getUnlocalizedName()); GameRegistry.registerItem(fragment_coltan, fragment_coltan.getUnlocalizedName()); + GameRegistry.registerItem(chunk_ore, chunk_ore.getUnlocalizedName()); //Things that look like rotten flesh but aren't GameRegistry.registerItem(biomass, biomass.getUnlocalizedName()); @@ -5904,6 +5496,8 @@ public class ModItems { GameRegistry.registerItem(nugget_bismuth, nugget_bismuth.getUnlocalizedName()); GameRegistry.registerItem(nugget_arsenic, nugget_arsenic.getUnlocalizedName()); GameRegistry.registerItem(nugget_tantalium, nugget_tantalium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_silicon, nugget_silicon.getUnlocalizedName()); + GameRegistry.registerItem(nugget_niobium, nugget_niobium.getUnlocalizedName()); GameRegistry.registerItem(nugget_beryllium, nugget_beryllium.getUnlocalizedName()); GameRegistry.registerItem(nugget_schrabidium, nugget_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(nugget_solinium, nugget_solinium.getUnlocalizedName()); @@ -5921,11 +5515,6 @@ public class ModItems { GameRegistry.registerItem(nugget_australium, nugget_australium.getUnlocalizedName()); GameRegistry.registerItem(nugget_australium_lesser, nugget_australium_lesser.getUnlocalizedName()); GameRegistry.registerItem(nugget_australium_greater, nugget_australium_greater.getUnlocalizedName()); - GameRegistry.registerItem(nugget_weidanium, nugget_weidanium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_reiium, nugget_reiium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_unobtainium, nugget_unobtainium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_daffergon, nugget_daffergon.getUnlocalizedName()); - GameRegistry.registerItem(nugget_verticium, nugget_verticium.getUnlocalizedName()); GameRegistry.registerItem(nugget_desh, nugget_desh.getUnlocalizedName()); GameRegistry.registerItem(nugget_euphemium, nugget_euphemium.getUnlocalizedName()); GameRegistry.registerItem(nugget_dineutronium, nugget_dineutronium.getUnlocalizedName()); @@ -5940,10 +5529,13 @@ public class ModItems { GameRegistry.registerItem(plate_lead, plate_lead.getUnlocalizedName()); GameRegistry.registerItem(plate_copper, plate_copper.getUnlocalizedName()); GameRegistry.registerItem(plate_advanced_alloy, plate_advanced_alloy.getUnlocalizedName()); + GameRegistry.registerItem(plate_dura_steel, plate_dura_steel.getUnlocalizedName()); GameRegistry.registerItem(neutron_reflector, neutron_reflector.getUnlocalizedName()); GameRegistry.registerItem(plate_schrabidium, plate_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(plate_combine_steel, plate_combine_steel.getUnlocalizedName()); GameRegistry.registerItem(plate_mixed, plate_mixed.getUnlocalizedName()); + GameRegistry.registerItem(plate_gunmetal, plate_gunmetal.getUnlocalizedName()); + GameRegistry.registerItem(plate_weaponsteel, plate_weaponsteel.getUnlocalizedName()); GameRegistry.registerItem(plate_saturnite, plate_saturnite.getUnlocalizedName()); GameRegistry.registerItem(plate_paa, plate_paa.getUnlocalizedName()); GameRegistry.registerItem(plate_polymer, plate_polymer.getUnlocalizedName()); @@ -5964,14 +5556,14 @@ public class ModItems { //Heavy/Cast Plate GameRegistry.registerItem(plate_cast, plate_cast.getUnlocalizedName()); - - //Boards - GameRegistry.registerItem(board_copper, board_copper.getUnlocalizedName()); + GameRegistry.registerItem(plate_welded, plate_welded.getUnlocalizedName()); + GameRegistry.registerItem(shell, shell.getUnlocalizedName()); + GameRegistry.registerItem(pipe, pipe.getUnlocalizedName()); + GameRegistry.registerItem(heavy_component, heavy_component.getUnlocalizedName()); //Bolts - GameRegistry.registerItem(bolt_dura_steel, bolt_dura_steel.getUnlocalizedName()); - GameRegistry.registerItem(bolt_tungsten, bolt_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(bolt_compound, bolt_compound.getUnlocalizedName()); + GameRegistry.registerItem(bolt, bolt.getUnlocalizedName()); + GameRegistry.registerItem(bolt_spike, bolt_spike.getUnlocalizedName()); //Cloth GameRegistry.registerItem(hazmat_cloth, hazmat_cloth.getUnlocalizedName()); @@ -5984,14 +5576,8 @@ public class ModItems { GameRegistry.registerItem(filter_coal, filter_coal.getUnlocalizedName()); //Wires - GameRegistry.registerItem(wire_aluminium, wire_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(wire_copper, wire_copper.getUnlocalizedName()); - GameRegistry.registerItem(wire_tungsten, wire_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(wire_red_copper, wire_red_copper.getUnlocalizedName()); - GameRegistry.registerItem(wire_advanced_alloy, wire_advanced_alloy.getUnlocalizedName()); - GameRegistry.registerItem(wire_gold, wire_gold.getUnlocalizedName()); - GameRegistry.registerItem(wire_schrabidium, wire_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(wire_magnetized_tungsten, wire_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(wire_fine, wire_fine.getUnlocalizedName()); + GameRegistry.registerItem(wire_dense, wire_dense.getUnlocalizedName()); //Parts GameRegistry.registerItem(coil_copper, coil_copper.getUnlocalizedName()); @@ -6008,15 +5594,9 @@ public class ModItems { GameRegistry.registerItem(motor_desh, motor_desh.getUnlocalizedName()); GameRegistry.registerItem(motor_bismuth, motor_bismuth.getUnlocalizedName()); GameRegistry.registerItem(centrifuge_element, centrifuge_element.getUnlocalizedName()); - //GameRegistry.registerItem(centrifuge_tower, centrifuge_tower.getUnlocalizedName()); - //GameRegistry.registerItem(magnet_dee, magnet_dee.getUnlocalizedName()); GameRegistry.registerItem(magnet_circular, magnet_circular.getUnlocalizedName()); - //GameRegistry.registerItem(cyclotron_tower, cyclotron_tower.getUnlocalizedName()); GameRegistry.registerItem(reactor_core, reactor_core.getUnlocalizedName()); GameRegistry.registerItem(rtg_unit, rtg_unit.getUnlocalizedName()); - //GameRegistry.registerItem(thermo_unit_empty, thermo_unit_empty.getUnlocalizedName()); - //GameRegistry.registerItem(thermo_unit_endo, thermo_unit_endo.getUnlocalizedName()); - //GameRegistry.registerItem(thermo_unit_exo, thermo_unit_exo.getUnlocalizedName()); GameRegistry.registerItem(levitation_unit, levitation_unit.getUnlocalizedName()); GameRegistry.registerItem(pipes_steel, pipes_steel.getUnlocalizedName()); GameRegistry.registerItem(drill_titanium, drill_titanium.getUnlocalizedName()); @@ -6027,9 +5607,17 @@ public class ModItems { GameRegistry.registerItem(chemical_dye, chemical_dye.getUnlocalizedName()); GameRegistry.registerItem(crayon, crayon.getUnlocalizedName()); GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName()); + GameRegistry.registerItem(item_secret, item_secret.getUnlocalizedName()); GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); GameRegistry.registerItem(gear_large, gear_large.getUnlocalizedName()); GameRegistry.registerItem(sawblade, sawblade.getUnlocalizedName()); + GameRegistry.registerItem(part_barrel_light, part_barrel_light.getUnlocalizedName()); + GameRegistry.registerItem(part_barrel_heavy, part_barrel_heavy.getUnlocalizedName()); + GameRegistry.registerItem(part_receiver_light, part_receiver_light.getUnlocalizedName()); + GameRegistry.registerItem(part_receiver_heavy, part_receiver_heavy.getUnlocalizedName()); + GameRegistry.registerItem(part_mechanism, part_mechanism.getUnlocalizedName()); + GameRegistry.registerItem(part_stock, part_stock.getUnlocalizedName()); + GameRegistry.registerItem(part_grip, part_grip.getUnlocalizedName()); //Plant Products GameRegistry.registerItem(plant_item, plant_item.getUnlocalizedName()); @@ -6043,11 +5631,6 @@ public class ModItems { GameRegistry.registerItem(component_emitter, component_emitter.getUnlocalizedName()); //Bomb Parts - GameRegistry.registerItem(hull_small_steel, hull_small_steel.getUnlocalizedName()); - GameRegistry.registerItem(hull_small_aluminium, hull_small_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(hull_big_steel, hull_big_steel.getUnlocalizedName()); - GameRegistry.registerItem(hull_big_aluminium, hull_big_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(hull_big_titanium, hull_big_titanium.getUnlocalizedName()); GameRegistry.registerItem(fins_flat, fins_flat.getUnlocalizedName()); GameRegistry.registerItem(fins_small_steel, fins_small_steel.getUnlocalizedName()); GameRegistry.registerItem(fins_big_steel, fins_big_steel.getUnlocalizedName()); @@ -6056,14 +5639,11 @@ public class ModItems { GameRegistry.registerItem(sphere_steel, sphere_steel.getUnlocalizedName()); GameRegistry.registerItem(pedestal_steel, pedestal_steel.getUnlocalizedName()); GameRegistry.registerItem(dysfunctional_reactor, dysfunctional_reactor.getUnlocalizedName()); - GameRegistry.registerItem(rotor_steel, rotor_steel.getUnlocalizedName()); - GameRegistry.registerItem(generator_steel, generator_steel.getUnlocalizedName()); GameRegistry.registerItem(blade_titanium, blade_titanium.getUnlocalizedName()); GameRegistry.registerItem(blade_tungsten, blade_tungsten.getUnlocalizedName()); GameRegistry.registerItem(turbine_titanium, turbine_titanium.getUnlocalizedName()); GameRegistry.registerItem(turbine_tungsten, turbine_tungsten.getUnlocalizedName()); GameRegistry.registerItem(flywheel_beryllium, flywheel_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(generator_front, generator_front.getUnlocalizedName()); GameRegistry.registerItem(toothpicks, toothpicks.getUnlocalizedName()); GameRegistry.registerItem(ducttape, ducttape.getUnlocalizedName()); GameRegistry.registerItem(catalyst_clay, catalyst_clay.getUnlocalizedName()); @@ -6081,11 +5661,8 @@ public class ModItems { GameRegistry.registerItem(warhead_buster_medium, warhead_buster_medium.getUnlocalizedName()); GameRegistry.registerItem(warhead_buster_large, warhead_buster_large.getUnlocalizedName()); GameRegistry.registerItem(warhead_nuclear, warhead_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(warhead_mirvlet, warhead_mirvlet.getUnlocalizedName()); GameRegistry.registerItem(warhead_mirv, warhead_mirv.getUnlocalizedName()); GameRegistry.registerItem(warhead_volcano, warhead_volcano.getUnlocalizedName()); - GameRegistry.registerItem(warhead_thermo_endo, warhead_thermo_endo.getUnlocalizedName()); - GameRegistry.registerItem(warhead_thermo_exo, warhead_thermo_exo.getUnlocalizedName()); GameRegistry.registerItem(fuel_tank_small, fuel_tank_small.getUnlocalizedName()); GameRegistry.registerItem(fuel_tank_medium, fuel_tank_medium.getUnlocalizedName()); GameRegistry.registerItem(fuel_tank_large, fuel_tank_large.getUnlocalizedName()); @@ -6118,31 +5695,12 @@ public class ModItems { GameRegistry.registerItem(shimmer_handle, shimmer_handle.getUnlocalizedName()); //Circuits - GameRegistry.registerItem(circuit_raw, circuit_raw.getUnlocalizedName()); - GameRegistry.registerItem(circuit_aluminium, circuit_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(circuit_copper, circuit_copper.getUnlocalizedName()); - GameRegistry.registerItem(circuit_red_copper, circuit_red_copper.getUnlocalizedName()); - GameRegistry.registerItem(circuit_gold, circuit_gold.getUnlocalizedName()); - GameRegistry.registerItem(circuit_schrabidium, circuit_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(circuit_bismuth_raw, circuit_bismuth_raw.getUnlocalizedName()); - GameRegistry.registerItem(circuit_bismuth, circuit_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(circuit_arsenic_raw, circuit_arsenic_raw.getUnlocalizedName()); - GameRegistry.registerItem(circuit_arsenic, circuit_arsenic.getUnlocalizedName()); - GameRegistry.registerItem(circuit_tantalium_raw, circuit_tantalium_raw.getUnlocalizedName()); - GameRegistry.registerItem(circuit_tantalium, circuit_tantalium.getUnlocalizedName()); + GameRegistry.registerItem(circuit, circuit.getUnlocalizedName()); GameRegistry.registerItem(crt_display, crt_display.getUnlocalizedName()); GameRegistry.registerItem(circuit_star_piece, circuit_star_piece.getUnlocalizedName()); GameRegistry.registerItem(circuit_star_component, circuit_star_component.getUnlocalizedName()); GameRegistry.registerItem(circuit_star, circuit_star.getUnlocalizedName()); - //Military Circuits - GameRegistry.registerItem(circuit_targeting_tier1, circuit_targeting_tier1.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier2, circuit_targeting_tier2.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier3, circuit_targeting_tier3.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier4, circuit_targeting_tier4.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier5, circuit_targeting_tier5.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier6, circuit_targeting_tier6.getUnlocalizedName()); - //Gun Mechanisms GameRegistry.registerItem(mechanism_revolver_1, mechanism_revolver_1.getUnlocalizedName()); GameRegistry.registerItem(mechanism_revolver_2, mechanism_revolver_2.getUnlocalizedName()); @@ -6151,20 +5709,9 @@ public class ModItems { GameRegistry.registerItem(mechanism_launcher_1, mechanism_launcher_1.getUnlocalizedName()); GameRegistry.registerItem(mechanism_launcher_2, mechanism_launcher_2.getUnlocalizedName()); GameRegistry.registerItem(mechanism_special, mechanism_special.getUnlocalizedName()); - - //Primers - GameRegistry.registerItem(primer_357, primer_357.getUnlocalizedName()); - GameRegistry.registerItem(primer_44, primer_44.getUnlocalizedName()); - GameRegistry.registerItem(primer_9, primer_9.getUnlocalizedName()); - GameRegistry.registerItem(primer_50, primer_50.getUnlocalizedName()); - GameRegistry.registerItem(primer_buckshot, primer_buckshot.getUnlocalizedName()); - - //Casings - GameRegistry.registerItem(casing_357, casing_357.getUnlocalizedName()); - GameRegistry.registerItem(casing_44, casing_44.getUnlocalizedName()); - GameRegistry.registerItem(casing_9, casing_9.getUnlocalizedName()); - GameRegistry.registerItem(casing_50, casing_50.getUnlocalizedName()); - GameRegistry.registerItem(casing_buckshot, casing_buckshot.getUnlocalizedName()); + + //Casing + GameRegistry.registerItem(casing, casing.getUnlocalizedName()); //Bullet Assemblies GameRegistry.registerItem(assembly_iron, assembly_iron.getUnlocalizedName()); @@ -6174,7 +5721,6 @@ public class ModItems { GameRegistry.registerItem(assembly_schrabidium, assembly_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(assembly_nightmare, assembly_nightmare.getUnlocalizedName()); GameRegistry.registerItem(assembly_desh, assembly_desh.getUnlocalizedName()); - //GameRegistry.registerItem(assembly_pip, assembly_pip.getUnlocalizedName()); GameRegistry.registerItem(assembly_nopip, assembly_nopip.getUnlocalizedName()); GameRegistry.registerItem(assembly_smg, assembly_smg.getUnlocalizedName()); GameRegistry.registerItem(assembly_556, assembly_556.getUnlocalizedName()); @@ -6187,12 +5733,6 @@ public class ModItems { GameRegistry.registerItem(assembly_nuke, assembly_nuke.getUnlocalizedName()); GameRegistry.registerItem(assembly_luna, assembly_luna.getUnlocalizedName()); - //Folly Parts - GameRegistry.registerItem(folly_shell, folly_shell.getUnlocalizedName()); - GameRegistry.registerItem(folly_bullet, folly_bullet.getUnlocalizedName()); - GameRegistry.registerItem(folly_bullet_nuclear, folly_bullet_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(folly_bullet_du, folly_bullet_du.getUnlocalizedName()); - //Wiring GameRegistry.registerItem(wiring_red_copper, wiring_red_copper.getUnlocalizedName()); @@ -6211,7 +5751,6 @@ public class ModItems { GameRegistry.registerItem(pellet_rtg_actinium, pellet_rtg_actinium.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_polonium, pellet_rtg_polonium.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_americium, pellet_rtg_americium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_berkelium, pellet_rtg_berkelium.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_gold, pellet_rtg_gold.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_lead, pellet_rtg_lead.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_depleted, pellet_rtg_depleted.getUnlocalizedName()); @@ -6220,26 +5759,11 @@ public class ModItems { GameRegistry.registerItem(pellet_buckshot, pellet_buckshot.getUnlocalizedName()); GameRegistry.registerItem(pellet_flechette, pellet_flechette.getUnlocalizedName()); GameRegistry.registerItem(pellet_chlorophyte, pellet_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(pellet_mercury, pellet_mercury.getUnlocalizedName()); - GameRegistry.registerItem(pellet_meteorite, pellet_meteorite.getUnlocalizedName()); GameRegistry.registerItem(pellet_canister, pellet_canister.getUnlocalizedName()); GameRegistry.registerItem(pellet_claws, pellet_claws.getUnlocalizedName()); GameRegistry.registerItem(pellet_charged, pellet_charged.getUnlocalizedName()); GameRegistry.registerItem(pellet_gas, pellet_gas.getUnlocalizedName()); - GameRegistry.registerItem(magnetron, magnetron.getUnlocalizedName()); - - GameRegistry.registerItem(pellet_coal, pellet_coal.getUnlocalizedName()); - - //Watz Pellets - GameRegistry.registerItem(pellet_schrabidium, pellet_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_hes, pellet_hes.getUnlocalizedName()); - GameRegistry.registerItem(pellet_mes, pellet_mes.getUnlocalizedName()); - GameRegistry.registerItem(pellet_les, pellet_les.getUnlocalizedName()); - GameRegistry.registerItem(pellet_beryllium, pellet_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_neptunium, pellet_neptunium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_lead, pellet_lead.getUnlocalizedName()); - GameRegistry.registerItem(pellet_advanced, pellet_advanced.getUnlocalizedName()); //Engine Pieces GameRegistry.registerItem(piston_selenium, piston_selenium.getUnlocalizedName()); @@ -6294,7 +5818,7 @@ public class ModItems { GameRegistry.registerItem(inf_water_mk2, inf_water_mk2.getUnlocalizedName()); //Canisters - GameRegistry.registerItem(antiknock, antiknock.getUnlocalizedName()); + GameRegistry.registerItem(fuel_additive, fuel_additive.getUnlocalizedName()); GameRegistry.registerItem(canister_empty, canister_empty.getUnlocalizedName()); GameRegistry.registerItem(canister_full, canister_full.getUnlocalizedName()); GameRegistry.registerItem(canister_napalm, canister_napalm.getUnlocalizedName()); @@ -6311,7 +5835,15 @@ public class ModItems { GameRegistry.registerItem(fluid_barrel_empty, fluid_barrel_empty.getUnlocalizedName()); GameRegistry.registerItem(fluid_barrel_full, fluid_barrel_full.getUnlocalizedName()); GameRegistry.registerItem(fluid_barrel_infinite, fluid_barrel_infinite.getUnlocalizedName()); - + + //Pipette + GameRegistry.registerItem(pipette, pipette.getUnlocalizedName()); + GameRegistry.registerItem(pipette_boron, pipette_boron.getUnlocalizedName()); + GameRegistry.registerItem(pipette_laboratory, pipette_laboratory.getUnlocalizedName()); + + //Siphon + GameRegistry.registerItem(siphon, siphon.getUnlocalizedName()); + //Batteries GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName()); GameRegistry.registerItem(battery_red_cell, battery_red_cell.getUnlocalizedName()); @@ -6340,12 +5872,8 @@ public class ModItems { GameRegistry.registerItem(battery_spark_cell_power, battery_spark_cell_power.getUnlocalizedName()); GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName()); GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName()); - GameRegistry.registerItem(battery_su, battery_su.getUnlocalizedName()); - GameRegistry.registerItem(battery_su_l, battery_su_l.getUnlocalizedName()); GameRegistry.registerItem(battery_potato, battery_potato.getUnlocalizedName()); GameRegistry.registerItem(battery_potatos, battery_potatos.getUnlocalizedName()); - GameRegistry.registerItem(battery_steam, battery_steam.getUnlocalizedName()); - GameRegistry.registerItem(battery_steam_large, battery_steam_large.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_uranium, battery_sc_uranium.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_technetium, battery_sc_technetium.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_plutonium, battery_sc_plutonium.getUnlocalizedName()); @@ -6403,6 +5931,7 @@ public class ModItems { GameRegistry.registerItem(stamp_desh_44, stamp_desh_44.getUnlocalizedName()); GameRegistry.registerItem(stamp_desh_9, stamp_desh_9.getUnlocalizedName()); GameRegistry.registerItem(stamp_desh_50, stamp_desh_50.getUnlocalizedName()); + GameRegistry.registerItem(stamp_book, stamp_book.getUnlocalizedName()); //Molds GameRegistry.registerItem(mold_base, mold_base.getUnlocalizedName()); @@ -6410,6 +5939,7 @@ public class ModItems { GameRegistry.registerItem(scraps, scraps.getUnlocalizedName()); //Machine Upgrades + GameRegistry.registerItem(upgrade_muffler, upgrade_muffler.getUnlocalizedName()); GameRegistry.registerItem(upgrade_template, upgrade_template.getUnlocalizedName()); GameRegistry.registerItem(upgrade_speed_1, upgrade_speed_1.getUnlocalizedName()); GameRegistry.registerItem(upgrade_speed_2, upgrade_speed_2.getUnlocalizedName()); @@ -6457,7 +5987,6 @@ public class ModItems { GameRegistry.registerItem(fuse, fuse.getUnlocalizedName()); GameRegistry.registerItem(redcoil_capacitor, redcoil_capacitor.getUnlocalizedName()); GameRegistry.registerItem(euphemium_capacitor, euphemium_capacitor.getUnlocalizedName()); - GameRegistry.registerItem(titanium_filter, titanium_filter.getUnlocalizedName()); GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName()); GameRegistry.registerItem(screwdriver_desh, screwdriver_desh.getUnlocalizedName()); GameRegistry.registerItem(hand_drill, hand_drill.getUnlocalizedName()); @@ -6470,7 +5999,6 @@ public class ModItems { GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName()); GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName()); GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName()); - GameRegistry.registerItem(arc_electrode_desh, arc_electrode_desh.getUnlocalizedName()); //Particle Collider Fuel GameRegistry.registerItem(part_lithium, part_lithium.getUnlocalizedName()); @@ -6486,18 +6014,6 @@ public class ModItems { GameRegistry.registerItem(laser_crystal_dnt, laser_crystal_dnt.getUnlocalizedName()); GameRegistry.registerItem(laser_crystal_digamma, laser_crystal_digamma.getUnlocalizedName()); - //Recycled Units - GameRegistry.registerItem(recycled_ground, recycled_ground.getUnlocalizedName()); - GameRegistry.registerItem(recycled_rock, recycled_rock.getUnlocalizedName()); - GameRegistry.registerItem(recycled_metal, recycled_metal.getUnlocalizedName()); - GameRegistry.registerItem(recycled_refined, recycled_refined.getUnlocalizedName()); - GameRegistry.registerItem(recycled_organic, recycled_organic.getUnlocalizedName()); - GameRegistry.registerItem(recycled_crystal, recycled_crystal.getUnlocalizedName()); - GameRegistry.registerItem(recycled_explosive, recycled_explosive.getUnlocalizedName()); - GameRegistry.registerItem(recycled_electronic, recycled_electronic.getUnlocalizedName()); - GameRegistry.registerItem(recycled_nuclear, recycled_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(recycled_misc, recycled_misc.getUnlocalizedName()); - //Catalyst Rune Sigils GameRegistry.registerItem(rune_blank, rune_blank.getUnlocalizedName()); GameRegistry.registerItem(rune_isa, rune_isa.getUnlocalizedName()); @@ -6622,6 +6138,11 @@ public class ModItems { GameRegistry.registerItem(plate_fuel_ra226be, plate_fuel_ra226be.getUnlocalizedName()); GameRegistry.registerItem(plate_fuel_pu238be, plate_fuel_pu238be.getUnlocalizedName()); + //PWR Parts + GameRegistry.registerItem(pwr_fuel, pwr_fuel.getUnlocalizedName()); + GameRegistry.registerItem(pwr_fuel_hot, pwr_fuel_hot.getUnlocalizedName()); + GameRegistry.registerItem(pwr_fuel_depleted, pwr_fuel_depleted.getUnlocalizedName()); + //RBMK parts GameRegistry.registerItem(rbmk_lid, rbmk_lid.getUnlocalizedName()); GameRegistry.registerItem(rbmk_lid_glass, rbmk_lid_glass.getUnlocalizedName()); @@ -6658,6 +6179,7 @@ public class ModItems { GameRegistry.registerItem(rbmk_fuel_zfb_am_mix, rbmk_fuel_zfb_am_mix.getUnlocalizedName()); GameRegistry.registerItem(rbmk_fuel_drx, rbmk_fuel_drx.getUnlocalizedName()); GameRegistry.registerItem(rbmk_fuel_test, rbmk_fuel_test.getUnlocalizedName()); + //GameRegistry.registerItem(rbmk_fuel_curve, rbmk_fuel_curve.getUnlocalizedName()); GameRegistry.registerItem(rbmk_pellet_ueu, rbmk_pellet_ueu.getUnlocalizedName()); GameRegistry.registerItem(rbmk_pellet_meu, rbmk_pellet_meu.getUnlocalizedName()); @@ -6693,6 +6215,10 @@ public class ModItems { GameRegistry.registerItem(watz_pellet, watz_pellet.getUnlocalizedName()); GameRegistry.registerItem(watz_pellet_depleted, watz_pellet_depleted.getUnlocalizedName()); + + GameRegistry.registerItem(icf_pellet_empty, icf_pellet_empty.getUnlocalizedName()); + GameRegistry.registerItem(icf_pellet, icf_pellet.getUnlocalizedName()); + GameRegistry.registerItem(icf_pellet_depleted, icf_pellet_depleted.getUnlocalizedName()); GameRegistry.registerItem(debris_graphite, debris_graphite.getUnlocalizedName()); GameRegistry.registerItem(debris_metal, debris_metal.getUnlocalizedName()); @@ -6732,27 +6258,32 @@ public class ModItems { GameRegistry.registerItem(designator_range, designator_range.getUnlocalizedName()); GameRegistry.registerItem(designator_manual, designator_manual.getUnlocalizedName()); GameRegistry.registerItem(designator_arty_range, designator_arty_range.getUnlocalizedName()); - //GameRegistry.registerItem(turret_control, turret_control.getUnlocalizedName()); GameRegistry.registerItem(turret_chip, turret_chip.getUnlocalizedName()); - //GameRegistry.registerItem(turret_biometry, turret_biometry.getUnlocalizedName()); GameRegistry.registerItem(linker, linker.getUnlocalizedName()); GameRegistry.registerItem(reactor_sensor, reactor_sensor.getUnlocalizedName()); GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName()); + GameRegistry.registerItem(ore_density_scanner, ore_density_scanner.getUnlocalizedName()); GameRegistry.registerItem(survey_scanner, survey_scanner.getUnlocalizedName()); GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName()); GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); + GameRegistry.registerItem(drone_linker, drone_linker.getUnlocalizedName()); + GameRegistry.registerItem(radar_linker, radar_linker.getUnlocalizedName()); GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); + GameRegistry.registerItem(analysis_tool, analysis_tool.getUnlocalizedName()); GameRegistry.registerItem(coupling_tool, coupling_tool.getUnlocalizedName()); + GameRegistry.registerItem(settings_tool, settings_tool.getUnlocalizedName()); GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName()); GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); GameRegistry.registerItem(pollution_detector, pollution_detector.getUnlocalizedName()); GameRegistry.registerItem(containment_box, containment_box.getUnlocalizedName()); + GameRegistry.registerItem(plastic_bag, plastic_bag.getUnlocalizedName()); //Keys and Locks GameRegistry.registerItem(key, key.getUnlocalizedName()); GameRegistry.registerItem(key_red, key_red.getUnlocalizedName()); + GameRegistry.registerItem(key_red_cracked, key_red_cracked.getUnlocalizedName()); GameRegistry.registerItem(key_kit, key_kit.getUnlocalizedName()); GameRegistry.registerItem(key_fake, key_fake.getUnlocalizedName()); GameRegistry.registerItem(mech_key, mech_key.getUnlocalizedName()); @@ -6761,34 +6292,45 @@ public class ModItems { GameRegistry.registerItem(padlock, padlock.getUnlocalizedName()); GameRegistry.registerItem(padlock_reinforced, padlock_reinforced.getUnlocalizedName()); GameRegistry.registerItem(padlock_unbreakable, padlock_unbreakable.getUnlocalizedName()); + GameRegistry.registerItem(launch_code_piece, launch_code_piece.getUnlocalizedName()); + GameRegistry.registerItem(launch_code, launch_code.getUnlocalizedName()); + GameRegistry.registerItem(launch_key, launch_key.getUnlocalizedName()); //Missiles - GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); - GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); - GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); - GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); - GameRegistry.registerItem(missile_strong, missile_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_incendiary_strong, missile_incendiary_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_cluster_strong, missile_cluster_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_buster_strong, missile_buster_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_emp_strong, missile_emp_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_burst, missile_burst.getUnlocalizedName()); - GameRegistry.registerItem(missile_inferno, missile_inferno.getUnlocalizedName()); - GameRegistry.registerItem(missile_rain, missile_rain.getUnlocalizedName()); - GameRegistry.registerItem(missile_drill, missile_drill.getUnlocalizedName()); - GameRegistry.registerItem(missile_nuclear, missile_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(missile_nuclear_cluster, missile_nuclear_cluster.getUnlocalizedName()); - GameRegistry.registerItem(missile_volcano, missile_volcano.getUnlocalizedName()); - GameRegistry.registerItem(missile_endo, missile_endo.getUnlocalizedName()); - GameRegistry.registerItem(missile_exo, missile_exo.getUnlocalizedName()); - GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName()); + //Tier 0 + GameRegistry.registerItem(missile_test, missile_test.getUnlocalizedName()); GameRegistry.registerItem(missile_taint, missile_taint.getUnlocalizedName()); GameRegistry.registerItem(missile_micro, missile_micro.getUnlocalizedName()); GameRegistry.registerItem(missile_bhole, missile_bhole.getUnlocalizedName()); GameRegistry.registerItem(missile_schrabidium, missile_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(missile_emp, missile_emp.getUnlocalizedName()); + //Tier 1 + GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); + GameRegistry.registerItem(missile_decoy, missile_decoy.getUnlocalizedName()); + GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); + GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); + GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); + GameRegistry.registerItem(missile_stealth, missile_stealth.getUnlocalizedName()); + GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); + //Tier 2 + GameRegistry.registerItem(missile_strong, missile_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_incendiary_strong, missile_incendiary_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_cluster_strong, missile_cluster_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_buster_strong, missile_buster_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_emp_strong, missile_emp_strong.getUnlocalizedName()); + //Tier 3 + GameRegistry.registerItem(missile_burst, missile_burst.getUnlocalizedName()); + GameRegistry.registerItem(missile_inferno, missile_inferno.getUnlocalizedName()); + GameRegistry.registerItem(missile_rain, missile_rain.getUnlocalizedName()); + GameRegistry.registerItem(missile_drill, missile_drill.getUnlocalizedName()); GameRegistry.registerItem(missile_shuttle, missile_shuttle.getUnlocalizedName()); + //Tier 4 + GameRegistry.registerItem(missile_nuclear, missile_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(missile_nuclear_cluster, missile_nuclear_cluster.getUnlocalizedName()); + GameRegistry.registerItem(missile_volcano, missile_volcano.getUnlocalizedName()); + GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName()); + GameRegistry.registerItem(missile_doomsday_rusted, missile_doomsday_rusted.getUnlocalizedName()); + //Rockets GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName()); @@ -6946,340 +6488,77 @@ public class ModItems { GameRegistry.registerItem(sat_interface, sat_interface.getUnlocalizedName()); GameRegistry.registerItem(sat_coord, sat_coord.getUnlocalizedName()); GameRegistry.registerItem(sat_designator, sat_designator.getUnlocalizedName()); + GameRegistry.registerItem(sat_relay, sat_relay.getUnlocalizedName()); //Guns - GameRegistry.registerItem(gun_revolver, gun_revolver.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_saturnite, gun_revolver_saturnite.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_gold, gun_revolver_gold.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_schrabidium, gun_revolver_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_cursed, gun_revolver_cursed.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nightmare, gun_revolver_nightmare.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nightmare2, gun_revolver_nightmare2.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_pip, gun_revolver_pip.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nopip, gun_revolver_nopip.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_blackjack, gun_revolver_blackjack.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_silver, gun_revolver_silver.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_red, gun_revolver_red.getUnlocalizedName()); - GameRegistry.registerItem(gun_bio_revolver, gun_bio_revolver.getUnlocalizedName()); - GameRegistry.registerItem(gun_deagle, gun_deagle.getUnlocalizedName()); - GameRegistry.registerItem(gun_flechette, gun_flechette.getUnlocalizedName()); - GameRegistry.registerItem(gun_ar15, gun_ar15.getUnlocalizedName()); - GameRegistry.registerItem(gun_calamity, gun_calamity.getUnlocalizedName()); - GameRegistry.registerItem(gun_m2, gun_m2.getUnlocalizedName()); - GameRegistry.registerItem(gun_minigun, gun_minigun.getUnlocalizedName()); - GameRegistry.registerItem(gun_avenger, gun_avenger.getUnlocalizedName()); - GameRegistry.registerItem(gun_lacunae, gun_lacunae.getUnlocalizedName()); - GameRegistry.registerItem(gun_folly, gun_folly.getUnlocalizedName()); GameRegistry.registerItem(gun_b92, gun_b92.getUnlocalizedName()); - GameRegistry.registerItem(gun_b93, gun_b93.getUnlocalizedName()); - GameRegistry.registerItem(gun_rpg, gun_rpg.getUnlocalizedName()); - GameRegistry.registerItem(gun_karl, gun_karl.getUnlocalizedName()); - GameRegistry.registerItem(gun_panzerschreck, gun_panzerschreck.getUnlocalizedName()); - GameRegistry.registerItem(gun_quadro, gun_quadro.getUnlocalizedName()); - GameRegistry.registerItem(gun_hk69, gun_hk69.getUnlocalizedName()); - GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); - GameRegistry.registerItem(gun_fatman, gun_fatman.getUnlocalizedName()); - GameRegistry.registerItem(gun_proto, gun_proto.getUnlocalizedName()); - GameRegistry.registerItem(gun_mirv, gun_mirv.getUnlocalizedName()); - GameRegistry.registerItem(gun_bf, gun_bf.getUnlocalizedName()); - GameRegistry.registerItem(gun_chemthrower, gun_chemthrower.getUnlocalizedName()); - GameRegistry.registerItem(gun_mp40, gun_mp40.getUnlocalizedName()); - GameRegistry.registerItem(gun_thompson, gun_thompson.getUnlocalizedName()); - GameRegistry.registerItem(gun_uzi, gun_uzi.getUnlocalizedName()); - GameRegistry.registerItem(gun_uzi_silencer,gun_uzi_silencer.getUnlocalizedName()); - GameRegistry.registerItem(gun_uzi_saturnite, gun_uzi_saturnite.getUnlocalizedName()); - GameRegistry.registerItem(gun_uzi_saturnite_silencer,gun_uzi_saturnite_silencer.getUnlocalizedName()); - GameRegistry.registerItem(gun_uboinik, gun_uboinik.getUnlocalizedName()); - GameRegistry.registerItem(gun_remington, gun_remington.getUnlocalizedName()); - GameRegistry.registerItem(gun_spas12, gun_spas12.getUnlocalizedName()); - GameRegistry.registerItem(gun_supershotgun, gun_supershotgun.getUnlocalizedName()); - GameRegistry.registerItem(gun_ks23, gun_ks23.getUnlocalizedName()); - GameRegistry.registerItem(gun_sauer, gun_sauer.getUnlocalizedName()); - GameRegistry.registerItem(gun_lever_action, gun_lever_action.getUnlocalizedName()); - GameRegistry.registerItem(gun_lever_action_dark, gun_lever_action_dark.getUnlocalizedName()); - GameRegistry.registerItem(gun_lever_action_sonata, gun_lever_action_sonata.getUnlocalizedName()); - GameRegistry.registerItem(gun_bolt_action, gun_bolt_action.getUnlocalizedName()); - GameRegistry.registerItem(gun_bolt_action_green, gun_bolt_action_green.getUnlocalizedName()); - GameRegistry.registerItem(gun_bolt_action_saturnite, gun_bolt_action_saturnite.getUnlocalizedName()); - GameRegistry.registerItem(gun_mymy, gun_mymy.getUnlocalizedName()); - GameRegistry.registerItem(gun_xvl1456, gun_xvl1456.getUnlocalizedName()); - GameRegistry.registerItem(gun_osipr, gun_osipr.getUnlocalizedName()); - GameRegistry.registerItem(gun_immolator, gun_immolator.getUnlocalizedName()); - GameRegistry.registerItem(gun_flamer, gun_flamer.getUnlocalizedName()); - GameRegistry.registerItem(gun_cryolator, gun_cryolator.getUnlocalizedName()); + GameRegistry.registerItem(gun_cryocannon, gun_cryocannon.getUnlocalizedName()); GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName()); - GameRegistry.registerItem(gun_mp, gun_mp.getUnlocalizedName()); - GameRegistry.registerItem(gun_bolter, gun_bolter.getUnlocalizedName()); - GameRegistry.registerItem(gun_bolter_digamma, gun_bolter_digamma.getUnlocalizedName()); - GameRegistry.registerItem(gun_zomg, gun_zomg.getUnlocalizedName()); - GameRegistry.registerItem(gun_emp, gun_emp.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_inverted, gun_revolver_inverted.getUnlocalizedName()); - GameRegistry.registerItem(gun_jack, gun_jack.getUnlocalizedName()); - GameRegistry.registerItem(gun_spark, gun_spark.getUnlocalizedName()); - GameRegistry.registerItem(gun_hp, gun_hp.getUnlocalizedName()); - GameRegistry.registerItem(gun_euthanasia, gun_euthanasia.getUnlocalizedName()); - GameRegistry.registerItem(gun_skystinger, gun_skystinger.getUnlocalizedName()); - //GameRegistry.registerItem(gun_dash, gun_dash.getUnlocalizedName()); - //GameRegistry.registerItem(gun_twigun, gun_twigun.getUnlocalizedName()); - GameRegistry.registerItem(gun_defabricator, gun_defabricator.getUnlocalizedName()); - GameRegistry.registerItem(gun_vortex, gun_vortex.getUnlocalizedName()); - GameRegistry.registerItem(gun_super_shotgun, gun_super_shotgun.getUnlocalizedName()); - GameRegistry.registerItem(gun_moist_nugget, gun_moist_nugget.getUnlocalizedName()); - GameRegistry.registerItem(gun_dampfmaschine, gun_dampfmaschine.getUnlocalizedName()); - GameRegistry.registerItem(gun_darter, gun_darter.getUnlocalizedName()); - GameRegistry.registerItem(gun_detonator, gun_detonator.getUnlocalizedName()); GameRegistry.registerItem(crucible, crucible.getUnlocalizedName()); - GameRegistry.registerItem(gun_glass_cannon, gun_glass_cannon.getUnlocalizedName()); - GameRegistry.registerItem(gun_lunatic_marksman, gun_lunatic_marksman.getUnlocalizedName()); + + GameRegistry.registerItem(gun_debug, gun_debug.getUnlocalizedName()); + GameRegistry.registerItem(ammo_debug, ammo_debug.getUnlocalizedName()); + + GameRegistry.registerItem(gun_pepperbox, gun_pepperbox.getUnlocalizedName()); + GameRegistry.registerItem(gun_light_revolver, gun_light_revolver.getUnlocalizedName()); + GameRegistry.registerItem(gun_light_revolver_atlas, gun_light_revolver_atlas.getUnlocalizedName()); + GameRegistry.registerItem(gun_light_revolver_dani, gun_light_revolver_dani.getUnlocalizedName()); + GameRegistry.registerItem(gun_henry, gun_henry.getUnlocalizedName()); + GameRegistry.registerItem(gun_greasegun, gun_greasegun.getUnlocalizedName()); + GameRegistry.registerItem(gun_maresleg, gun_maresleg.getUnlocalizedName()); + GameRegistry.registerItem(gun_maresleg_akimbo, gun_maresleg_akimbo.getUnlocalizedName()); + GameRegistry.registerItem(gun_maresleg_broken, gun_maresleg_broken.getUnlocalizedName()); + GameRegistry.registerItem(gun_flaregun, gun_flaregun.getUnlocalizedName()); + GameRegistry.registerItem(gun_heavy_revolver, gun_heavy_revolver.getUnlocalizedName()); + GameRegistry.registerItem(gun_heavy_revolver_lilmac, gun_heavy_revolver_lilmac.getUnlocalizedName()); + GameRegistry.registerItem(gun_heavy_revolver_protege, gun_heavy_revolver_protege.getUnlocalizedName()); + GameRegistry.registerItem(gun_carbine, gun_carbine.getUnlocalizedName()); + GameRegistry.registerItem(gun_am180, gun_am180.getUnlocalizedName()); + GameRegistry.registerItem(gun_liberator, gun_liberator.getUnlocalizedName()); + GameRegistry.registerItem(gun_congolake, gun_congolake.getUnlocalizedName()); + GameRegistry.registerItem(gun_flamer, gun_flamer.getUnlocalizedName()); + GameRegistry.registerItem(gun_flamer_topaz, gun_flamer_topaz.getUnlocalizedName()); + GameRegistry.registerItem(gun_flamer_daybreaker, gun_flamer_daybreaker.getUnlocalizedName()); + GameRegistry.registerItem(gun_uzi, gun_uzi.getUnlocalizedName()); + GameRegistry.registerItem(gun_uzi_akimbo, gun_uzi_akimbo.getUnlocalizedName()); + GameRegistry.registerItem(gun_spas12, gun_spas12.getUnlocalizedName()); + GameRegistry.registerItem(gun_panzerschreck, gun_panzerschreck.getUnlocalizedName()); + GameRegistry.registerItem(gun_g3, gun_g3.getUnlocalizedName()); + GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); + GameRegistry.registerItem(gun_chemthrower, gun_chemthrower.getUnlocalizedName()); + GameRegistry.registerItem(gun_m2, gun_m2.getUnlocalizedName()); + GameRegistry.registerItem(gun_autoshotgun, gun_autoshotgun.getUnlocalizedName()); + GameRegistry.registerItem(gun_autoshotgun_shredder, gun_autoshotgun_shredder.getUnlocalizedName()); + GameRegistry.registerItem(gun_autoshotgun_sexy, gun_autoshotgun_sexy.getUnlocalizedName()); + GameRegistry.registerItem(gun_quadro, gun_quadro.getUnlocalizedName()); + GameRegistry.registerItem(gun_lag, gun_lag.getUnlocalizedName()); + GameRegistry.registerItem(gun_minigun, gun_minigun.getUnlocalizedName()); + GameRegistry.registerItem(gun_minigun_lacunae, gun_minigun_lacunae.getUnlocalizedName()); + GameRegistry.registerItem(gun_missile_launcher, gun_missile_launcher.getUnlocalizedName()); + GameRegistry.registerItem(gun_tesla_cannon, gun_tesla_cannon.getUnlocalizedName()); + GameRegistry.registerItem(gun_stg77, gun_stg77.getUnlocalizedName()); + GameRegistry.registerItem(gun_tau, gun_tau.getUnlocalizedName()); + GameRegistry.registerItem(gun_fatman, gun_fatman.getUnlocalizedName()); + GameRegistry.registerItem(gun_lasrifle, gun_lasrifle.getUnlocalizedName()); + GameRegistry.registerItem(gun_coilgun, gun_coilgun.getUnlocalizedName()); + GameRegistry.registerItem(gun_hangman, gun_hangman.getUnlocalizedName()); + GameRegistry.registerItem(gun_bolter, gun_bolter.getUnlocalizedName()); + GameRegistry.registerItem(gun_folly, gun_folly.getUnlocalizedName()); + GameRegistry.registerItem(gun_double_barrel, gun_double_barrel.getUnlocalizedName()); + GameRegistry.registerItem(gun_double_barrel_sacred_dragon, gun_double_barrel_sacred_dragon.getUnlocalizedName()); + + GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName()); + GameRegistry.registerItem(ammo_secret, ammo_secret.getUnlocalizedName()); //Ammo - /*GameRegistry.registerItem(gun_revolver_iron_ammo, gun_revolver_iron_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_ammo, gun_revolver_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_gold_ammo, gun_revolver_gold_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_lead_ammo, gun_revolver_lead_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_schrabidium_ammo, gun_revolver_schrabidium_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_cursed_ammo, gun_revolver_cursed_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nightmare_ammo, gun_revolver_nightmare_ammo.getUnlocalizedName()); - GameRegistry.registerItem(ammo_357_desh, ammo_357_desh.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nightmare2_ammo, gun_revolver_nightmare2_ammo.getUnlocalizedName());*/ - //GameRegistry.registerItem(gun_revolver_pip_ammo, gun_revolver_pip_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_revolver_nopip_ammo, gun_revolver_nopip_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_calamity_ammo, gun_calamity_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_lacunae_ammo, gun_lacunae_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_rpg_ammo, gun_rpg_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_stinger_ammo, gun_stinger_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_fatman_ammo, gun_fatman_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_mirv_ammo, gun_mirv_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_bf_ammo, gun_bf_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_mp40_ammo, gun_mp40_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_uzi_ammo, gun_uzi_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName()); - //GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_osipr_ammo, gun_osipr_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName()); - GameRegistry.registerItem(gun_immolator_ammo, gun_immolator_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_cryolator_ammo, gun_cryolator_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_emp_ammo, gun_emp_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_jack_ammo, gun_jack_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_spark_ammo, gun_spark_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_hp_ammo, gun_hp_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_defabricator_ammo, gun_defabricator_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_euthanasia_ammo, gun_euthanasia_ammo.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge, ammo_12gauge.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge, ammo_20gauge.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge, ammo_4gauge.getUnlocalizedName()); - GameRegistry.registerItem(ammo_357, ammo_357.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44, ammo_44.getUnlocalizedName()); - GameRegistry.registerItem(ammo_45, ammo_45.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm, ammo_5mm.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm, ammo_9mm.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556, ammo_556.getUnlocalizedName()); - GameRegistry.registerItem(ammo_762, ammo_762.getUnlocalizedName()); - GameRegistry.registerItem(ammo_22lr, ammo_22lr.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae, ammo_50ae.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg, ammo_50bmg.getUnlocalizedName()); - GameRegistry.registerItem(ammo_75bolt, ammo_75bolt.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke, ammo_nuke.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel, ammo_fuel.getUnlocalizedName()); GameRegistry.registerItem(ammo_fireext, ammo_fireext.getUnlocalizedName()); - GameRegistry.registerItem(ammo_cell, ammo_cell.getUnlocalizedName()); - GameRegistry.registerItem(ammo_dart, ammo_dart.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket, ammo_rocket.getUnlocalizedName()); - GameRegistry.registerItem(ammo_stinger_rocket, ammo_stinger_rocket.getUnlocalizedName()); - GameRegistry.registerItem(ammo_luna_sniper, ammo_luna_sniper.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade, ammo_grenade.getUnlocalizedName()); GameRegistry.registerItem(ammo_shell, ammo_shell.getUnlocalizedName()); - - /*GameRegistry.registerItem(ammo_12gauge, ammo_12gauge.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_incendiary, ammo_12gauge_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_shrapnel, ammo_12gauge_shrapnel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_du, ammo_12gauge_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_sleek, ammo_12gauge_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_12gauge_marauder, ammo_12gauge_marauder.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge, ammo_20gauge.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_slug, ammo_20gauge_slug.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_flechette, ammo_20gauge_flechette.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_incendiary, ammo_20gauge_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_shrapnel, ammo_20gauge_shrapnel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_explosive, ammo_20gauge_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_caustic, ammo_20gauge_caustic.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_shock, ammo_20gauge_shock.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_wither, ammo_20gauge_wither.getUnlocalizedName()); - GameRegistry.registerItem(ammo_20gauge_sleek, ammo_20gauge_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge, ammo_4gauge.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_slug, ammo_4gauge_slug.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_flechette, ammo_4gauge_flechette.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_flechette_phosphorus, ammo_4gauge_flechette_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_explosive, ammo_4gauge_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_semtex, ammo_4gauge_semtex.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_balefire, ammo_4gauge_balefire.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_kampf, ammo_4gauge_kampf.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_canister, ammo_4gauge_canister.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_claw, ammo_4gauge_claw.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_vampire, ammo_4gauge_vampire.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_void, ammo_4gauge_void.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_titan, ammo_4gauge_titan.getUnlocalizedName()); - GameRegistry.registerItem(ammo_4gauge_sleek, ammo_4gauge_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44, ammo_44.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_ap, ammo_44_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_du, ammo_44_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_phosphorus, ammo_44_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_star, ammo_44_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_chlorophyte, ammo_44_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_pip, ammo_44_pip.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_bj, ammo_44_bj.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_silver, ammo_44_silver.getUnlocalizedName()); - GameRegistry.registerItem(ammo_44_rocket, ammo_44_rocket.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm, ammo_5mm.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm_explosive, ammo_5mm_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm_du, ammo_5mm_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm_star, ammo_5mm_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_5mm_chlorophyte, ammo_5mm_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm, ammo_9mm.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm_ap, ammo_9mm_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm_du, ammo_9mm_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm_chlorophyte, ammo_9mm_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_9mm_rocket, ammo_9mm_rocket.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556, ammo_556.getUnlocalizedName()); - GameRegistry.registerItem(ammo_566_gold, ammo_566_gold.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_phosphorus, ammo_556_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_ap, ammo_556_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_du, ammo_556_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_star, ammo_556_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_chlorophyte, ammo_556_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_sleek, ammo_556_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_tracer, ammo_556_tracer.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette, ammo_556_flechette.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_incendiary, ammo_556_flechette_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_phosphorus, ammo_556_flechette_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_du, ammo_556_flechette_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_chlorophyte, ammo_556_flechette_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_flechette_sleek, ammo_556_flechette_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_556_k, ammo_556_k.getUnlocalizedName()); - GameRegistry.registerItem(ammo_22lr, ammo_22lr.getUnlocalizedName()); - GameRegistry.registerItem(ammo_22lr_ap, ammo_22lr_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_22lr_chlorophyte, ammo_22lr_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae, ammo_50ae.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae_ap, ammo_50ae_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae_du, ammo_50ae_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae_star, ammo_50ae_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50ae_chlorophyte, ammo_50ae_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg, ammo_50bmg.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_incendiary, ammo_50bmg_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_phosphorus, ammo_50bmg_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_explosive, ammo_50bmg_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_ap, ammo_50bmg_ap.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_du, ammo_50bmg_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_star, ammo_50bmg_star.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_chlorophyte, ammo_50bmg_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_flechette, ammo_50bmg_flechette.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_flechette_am, ammo_50bmg_flechette_am.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_flechette_po, ammo_50bmg_flechette_po.getUnlocalizedName()); - GameRegistry.registerItem(ammo_50bmg_sleek, ammo_50bmg_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_75bolt, ammo_75bolt.getUnlocalizedName()); - GameRegistry.registerItem(ammo_75bolt_incendiary, ammo_75bolt_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_75bolt_he, ammo_75bolt_he.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel, ammo_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel_napalm, ammo_fuel_napalm.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel_phosphorus, ammo_fuel_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel_vaporizer, ammo_fuel_vaporizer.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fuel_gas, ammo_fuel_gas.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fireext, ammo_fireext.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fireext_foam, ammo_fireext_foam.getUnlocalizedName()); - GameRegistry.registerItem(ammo_fireext_sand, ammo_fireext_sand.getUnlocalizedName()); - GameRegistry.registerItem(ammo_cell, ammo_cell.getUnlocalizedName()); - GameRegistry.registerItem(ammo_dart, ammo_dart.getUnlocalizedName()); - GameRegistry.registerItem(ammo_dart_nuclear, ammo_dart_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(ammo_dart_nerf, ammo_dart_nerf.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket, ammo_rocket.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_he, ammo_rocket_he.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_incendiary, ammo_rocket_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_phosphorus, ammo_rocket_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_shrapnel, ammo_rocket_shrapnel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_emp, ammo_rocket_emp.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_glare, ammo_rocket_glare.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_toxic, ammo_rocket_toxic.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_canister, ammo_rocket_canister.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_sleek, ammo_rocket_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_nuclear, ammo_rocket_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_rpc, ammo_rocket_rpc.getUnlocalizedName()); - GameRegistry.registerItem(ammo_rocket_digamma, ammo_rocket_digamma.getUnlocalizedName()); - GameRegistry.registerItem(ammo_stinger_rocket, ammo_stinger_rocket.getUnlocalizedName()); - GameRegistry.registerItem(ammo_stinger_rocket_he, ammo_stinger_rocket_he.getUnlocalizedName()); - GameRegistry.registerItem(ammo_stinger_rocket_incendiary, ammo_stinger_rocket_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_stinger_rocket_nuclear, ammo_stinger_rocket_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(ammo_stinger_rocket_bones, ammo_stinger_rocket_bones.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade, ammo_grenade.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_he, ammo_grenade_he.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_incendiary, ammo_grenade_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_phosphorus, ammo_grenade_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_toxic, ammo_grenade_toxic.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_concussion, ammo_grenade_concussion.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_finned, ammo_grenade_finned.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_sleek, ammo_grenade_sleek.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_nuclear, ammo_grenade_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_tracer, ammo_grenade_tracer.getUnlocalizedName()); - GameRegistry.registerItem(ammo_grenade_kampf, ammo_grenade_kampf.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell, ammo_shell.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell_explosive, ammo_shell_explosive.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell_apfsds_t, ammo_shell_apfsds_t.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell_apfsds_du, ammo_shell_apfsds_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell_w9, ammo_shell_w9.getUnlocalizedName());*/ GameRegistry.registerItem(ammo_dgk, ammo_dgk.getUnlocalizedName()); GameRegistry.registerItem(ammo_arty, ammo_arty.getUnlocalizedName()); GameRegistry.registerItem(ammo_himars, ammo_himars.getUnlocalizedName()); - /*GameRegistry.registerItem(ammo_nuke, ammo_nuke.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_low, ammo_nuke_low.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_high, ammo_nuke_high.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_tots, ammo_nuke_tots.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_safe, ammo_nuke_safe.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_pumpkin, ammo_nuke_pumpkin.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke_barrel, ammo_nuke_barrel.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv, ammo_mirv.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv_low, ammo_mirv_low.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv_high, ammo_mirv_high.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv_safe, ammo_mirv_safe.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv_special, ammo_mirv_special.getUnlocalizedName());*/ - GameRegistry.registerItem(ammo_folly, ammo_folly.getUnlocalizedName()); - GameRegistry.registerItem(ammo_folly_nuclear, ammo_folly_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(ammo_folly_du, ammo_folly_du.getUnlocalizedName()); - - //-C-l-i-p-s- Magazines - GameRegistry.registerItem(clip_revolver_iron, clip_revolver_iron.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver, clip_revolver.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_gold, clip_revolver_gold.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_lead, clip_revolver_lead.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_schrabidium, clip_revolver_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_cursed, clip_revolver_cursed.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_nightmare, clip_revolver_nightmare.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_nightmare2, clip_revolver_nightmare2.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_pip, clip_revolver_pip.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_nopip, clip_revolver_nopip.getUnlocalizedName()); - GameRegistry.registerItem(clip_rpg, clip_rpg.getUnlocalizedName()); - GameRegistry.registerItem(clip_stinger, clip_stinger.getUnlocalizedName()); - GameRegistry.registerItem(clip_fatman, clip_fatman.getUnlocalizedName()); - GameRegistry.registerItem(clip_mirv, clip_mirv.getUnlocalizedName()); - GameRegistry.registerItem(clip_bf, clip_bf.getUnlocalizedName()); - GameRegistry.registerItem(clip_mp40, clip_mp40.getUnlocalizedName()); - GameRegistry.registerItem(clip_uzi, clip_uzi.getUnlocalizedName()); - GameRegistry.registerItem(clip_uboinik, clip_uboinik.getUnlocalizedName()); - GameRegistry.registerItem(clip_lever_action, clip_lever_action.getUnlocalizedName()); - GameRegistry.registerItem(clip_bolt_action, clip_bolt_action.getUnlocalizedName()); - GameRegistry.registerItem(clip_xvl1456, clip_xvl1456.getUnlocalizedName()); - GameRegistry.registerItem(clip_osipr, clip_osipr.getUnlocalizedName()); - GameRegistry.registerItem(clip_immolator, clip_immolator.getUnlocalizedName()); - GameRegistry.registerItem(clip_cryolator, clip_cryolator.getUnlocalizedName()); - GameRegistry.registerItem(clip_mp, clip_mp.getUnlocalizedName()); - GameRegistry.registerItem(clip_emp, clip_emp.getUnlocalizedName()); - GameRegistry.registerItem(clip_jack, clip_jack.getUnlocalizedName()); - GameRegistry.registerItem(clip_spark, clip_spark.getUnlocalizedName()); - GameRegistry.registerItem(clip_hp, clip_hp.getUnlocalizedName()); - GameRegistry.registerItem(clip_euthanasia, clip_euthanasia.getUnlocalizedName()); - GameRegistry.registerItem(clip_defabricator, clip_defabricator.getUnlocalizedName()); GameRegistry.registerItem(ammo_container, ammo_container.getUnlocalizedName()); @@ -7333,6 +6612,12 @@ public class ModItems { GameRegistry.registerItem(grenade_if_hopwire, grenade_if_hopwire.getUnlocalizedName()); GameRegistry.registerItem(grenade_if_null, grenade_if_null.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_pearl, nuclear_waste_pearl.getUnlocalizedName()); + + //Disperser Canister + GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); + GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland_empty, glyphid_gland_empty.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland, glyphid_gland.getUnlocalizedName()); GameRegistry.registerItem(ullapool_caber, ullapool_caber.getUnlocalizedName()); GameRegistry.registerItem(weaponized_starblaster_cell, weaponized_starblaster_cell.getUnlocalizedName()); @@ -7344,6 +6629,7 @@ public class ModItems { GameRegistry.registerItem(cape_hidden, cape_hidden.getUnlocalizedName()); //Tools + GameRegistry.registerItem(dwarven_pickaxe, dwarven_pickaxe.getUnlocalizedName()); GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName()); GameRegistry.registerItem(schrabidium_hammer, schrabidium_hammer.getUnlocalizedName()); GameRegistry.registerItem(shimmer_sledge, shimmer_sledge.getUnlocalizedName()); @@ -7408,10 +6694,13 @@ public class ModItems { GameRegistry.registerItem(drax_mk2, drax_mk2.getUnlocalizedName()); GameRegistry.registerItem(drax_mk3, drax_mk3.getUnlocalizedName()); GameRegistry.registerItem(bismuth_pickaxe, bismuth_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(bismuth_axe, bismuth_axe.getUnlocalizedName()); GameRegistry.registerItem(volcanic_pickaxe, volcanic_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(volcanic_axe, volcanic_axe.getUnlocalizedName()); GameRegistry.registerItem(chlorophyte_pickaxe, chlorophyte_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(chlorophyte_axe, chlorophyte_axe.getUnlocalizedName()); GameRegistry.registerItem(mese_pickaxe, mese_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(matchstick, matchstick.getUnlocalizedName()); + GameRegistry.registerItem(mese_axe, mese_axe.getUnlocalizedName()); GameRegistry.registerItem(matchstick, matchstick.getUnlocalizedName()); GameRegistry.registerItem(balefire_and_steel, balefire_and_steel.getUnlocalizedName()); GameRegistry.registerItem(crowbar, crowbar.getUnlocalizedName()); GameRegistry.registerItem(wrench, wrench.getUnlocalizedName()); @@ -7518,9 +6807,11 @@ public class ModItems { GameRegistry.registerItem(marshmallow, marshmallow.getUnlocalizedName()); GameRegistry.registerItem(cheese, cheese.getUnlocalizedName()); GameRegistry.registerItem(quesadilla, quesadilla.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_meat, glyphid_meat.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_meat_grilled, glyphid_meat_grilled.getUnlocalizedName()); + GameRegistry.registerItem(egg_glyphid, egg_glyphid.getUnlocalizedName()); GameRegistry.registerItem(med_ipecac, med_ipecac.getUnlocalizedName()); GameRegistry.registerItem(med_ptsd, med_ptsd.getUnlocalizedName()); - GameRegistry.registerItem(canteen_13, canteen_13.getUnlocalizedName()); GameRegistry.registerItem(canteen_vodka, canteen_vodka.getUnlocalizedName()); GameRegistry.registerItem(canteen_fab, canteen_fab.getUnlocalizedName()); GameRegistry.registerItem(mucho_mango, mucho_mango.getUnlocalizedName()); @@ -7554,40 +6845,12 @@ public class ModItems { GameRegistry.registerItem(bottle2_fritz, bottle2_fritz.getUnlocalizedName()); GameRegistry.registerItem(bottle2_korl_special, bottle2_korl_special.getUnlocalizedName()); GameRegistry.registerItem(bottle2_fritz_special, bottle2_fritz_special.getUnlocalizedName()); - GameRegistry.registerItem(bottle2_sunset, bottle2_sunset.getUnlocalizedName()); GameRegistry.registerItem(bottle_opener, bottle_opener.getUnlocalizedName()); //Flasks GameRegistry.registerItem(flask_infusion, flask_infusion.getUnlocalizedName()); //Canned Food - //GameRegistry.registerItem(canned_beef, canned_beef.getUnlocalizedName()); - //GameRegistry.registerItem(canned_tuna, canned_tuna.getUnlocalizedName()); - //GameRegistry.registerItem(canned_mystery, canned_mystery.getUnlocalizedName()); - //GameRegistry.registerItem(canned_pashtet, canned_pashtet.getUnlocalizedName()); - //GameRegistry.registerItem(canned_cheese, canned_cheese.getUnlocalizedName()); - //GameRegistry.registerItem(canned_jizz, canned_jizz.getUnlocalizedName()); - //GameRegistry.registerItem(canned_milk, canned_milk.getUnlocalizedName()); - //GameRegistry.registerItem(canned_ass, canned_ass.getUnlocalizedName()); - //GameRegistry.registerItem(canned_pizza, canned_pizza.getUnlocalizedName()); - //GameRegistry.registerItem(canned_tube, canned_tube.getUnlocalizedName()); - //GameRegistry.registerItem(canned_tomato, canned_tomato.getUnlocalizedName()); - //GameRegistry.registerItem(canned_asbestos, canned_asbestos.getUnlocalizedName()); - //GameRegistry.registerItem(canned_bhole, canned_bhole.getUnlocalizedName()); - //GameRegistry.registerItem(canned_hotdogs, canned_hotdogs.getUnlocalizedName()); - //GameRegistry.registerItem(canned_leftovers, canned_leftovers.getUnlocalizedName()); - //GameRegistry.registerItem(canned_yogurt, canned_yogurt.getUnlocalizedName()); - //GameRegistry.registerItem(canned_stew, canned_stew.getUnlocalizedName()); - //GameRegistry.registerItem(canned_chinese, canned_chinese.getUnlocalizedName()); - //GameRegistry.registerItem(canned_oil, canned_oil.getUnlocalizedName()); - //GameRegistry.registerItem(canned_fist, canned_fist.getUnlocalizedName()); - //GameRegistry.registerItem(canned_spam, canned_spam.getUnlocalizedName()); - //GameRegistry.registerItem(canned_fried, canned_fried.getUnlocalizedName()); - //GameRegistry.registerItem(canned_napalm, canned_napalm.getUnlocalizedName()); - //GameRegistry.registerItem(canned_diesel, canned_diesel.getUnlocalizedName()); - //GameRegistry.registerItem(canned_kerosene, canned_kerosene.getUnlocalizedName()); - //GameRegistry.registerItem(canned_recursion, canned_recursion.getUnlocalizedName()); - //GameRegistry.registerItem(canned_bark, canned_bark.getUnlocalizedName()); GameRegistry.registerItem(canned_conserve, canned_conserve.getUnlocalizedName()); //Money @@ -7597,8 +6860,6 @@ public class ModItems { GameRegistry.registerItem(cap_rad, cap_rad.getUnlocalizedName()); GameRegistry.registerItem(cap_korl, cap_korl.getUnlocalizedName()); GameRegistry.registerItem(cap_fritz, cap_fritz.getUnlocalizedName()); - GameRegistry.registerItem(cap_sunset, cap_sunset.getUnlocalizedName()); - GameRegistry.registerItem(cap_star, cap_star.getUnlocalizedName()); GameRegistry.registerItem(ring_pull, ring_pull.getUnlocalizedName()); GameRegistry.registerItem(can_key, can_key.getUnlocalizedName()); GameRegistry.registerItem(coin_creeper, coin_creeper.getUnlocalizedName()); @@ -7607,14 +6868,21 @@ public class ModItems { GameRegistry.registerItem(coin_worm, coin_worm.getUnlocalizedName()); GameRegistry.registerItem(coin_ufo, coin_ufo.getUnlocalizedName()); GameRegistry.registerItem(medal_liquidator, medal_liquidator.getUnlocalizedName()); - GameRegistry.registerItem(v1, v1.getUnlocalizedName()); + GameRegistry.registerItem(bottled_cloud, bottled_cloud.getUnlocalizedName()); GameRegistry.registerItem(protection_charm, protection_charm.getUnlocalizedName()); GameRegistry.registerItem(meteor_charm, meteor_charm.getUnlocalizedName()); GameRegistry.registerItem(neutrino_lens, neutrino_lens.getUnlocalizedName()); GameRegistry.registerItem(gas_tester, gas_tester.getUnlocalizedName()); GameRegistry.registerItem(defuser_gold, defuser_gold.getUnlocalizedName()); GameRegistry.registerItem(ballistic_gauntlet, ballistic_gauntlet.getUnlocalizedName()); - + GameRegistry.registerItem(night_vision, night_vision.getUnlocalizedName()); + GameRegistry.registerItem(card_aos, card_aos.getUnlocalizedName()); + GameRegistry.registerItem(card_qos, card_qos.getUnlocalizedName()); + GameRegistry.registerItem(australium_iii, australium_iii.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery, armor_battery.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery_mk2, armor_battery_mk2.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery_mk3, armor_battery_mk3.getUnlocalizedName()); + //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); GameRegistry.registerItem(cbt_device, cbt_device.getUnlocalizedName()); @@ -7674,9 +6942,11 @@ public class ModItems { GameRegistry.registerItem(injector_5htp, injector_5htp.getUnlocalizedName()); GameRegistry.registerItem(injector_knife, injector_knife.getUnlocalizedName()); - //Minecarts + //Vehicles + GameRegistry.registerItem(boat_rubber, boat_rubber.getUnlocalizedName()); GameRegistry.registerItem(cart, cart.getUnlocalizedName()); GameRegistry.registerItem(train, train.getUnlocalizedName()); + GameRegistry.registerItem(drone, drone.getUnlocalizedName()); //High Explosive Lenses GameRegistry.registerItem(early_explosive_lenses, early_explosive_lenses.getUnlocalizedName()); @@ -7790,6 +7060,10 @@ public class ModItems { GameRegistry.registerItem(bj_plate_jetpack, bj_plate_jetpack.getUnlocalizedName()); GameRegistry.registerItem(bj_legs, bj_legs.getUnlocalizedName()); GameRegistry.registerItem(bj_boots, bj_boots.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_helmet, envsuit_helmet.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_plate, envsuit_plate.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_legs, envsuit_legs.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_boots, envsuit_boots.getUnlocalizedName()); GameRegistry.registerItem(hev_helmet, hev_helmet.getUnlocalizedName()); GameRegistry.registerItem(hev_plate, hev_plate.getUnlocalizedName()); GameRegistry.registerItem(hev_legs, hev_legs.getUnlocalizedName()); @@ -7802,6 +7076,10 @@ public class ModItems { GameRegistry.registerItem(dns_plate, dns_plate.getUnlocalizedName()); GameRegistry.registerItem(dns_legs, dns_legs.getUnlocalizedName()); GameRegistry.registerItem(dns_boots, dns_boots.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_helmet, trenchmaster_helmet.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_plate, trenchmaster_plate.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_legs, trenchmaster_legs.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_boots, trenchmaster_boots.getUnlocalizedName()); //Nobody will ever read this anyway, so it shouldn't matter. GameRegistry.registerItem(chainsaw, chainsaw.getUnlocalizedName()); @@ -7811,7 +7089,6 @@ public class ModItems { GameRegistry.registerItem(detonator_laser, detonator_laser.getUnlocalizedName()); GameRegistry.registerItem(detonator_deadman, detonator_deadman.getUnlocalizedName()); GameRegistry.registerItem(detonator_de, detonator_de.getUnlocalizedName()); - GameRegistry.registerItem(crate_caller, crate_caller.getUnlocalizedName()); GameRegistry.registerItem(bomb_caller, bomb_caller.getUnlocalizedName()); GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName()); GameRegistry.registerItem(anchor_remote, anchor_remote.getUnlocalizedName()); @@ -7887,7 +7164,6 @@ public class ModItems { GameRegistry.registerItem(apple_euphemium, apple_euphemium.getUnlocalizedName()); GameRegistry.registerItem(watch, watch.getUnlocalizedName()); GameRegistry.registerItem(mask_of_infamy, mask_of_infamy.getUnlocalizedName()); - GameRegistry.registerItem(australium_iii, australium_iii.getUnlocalizedName()); GameRegistry.registerItem(jackt, jackt.getUnlocalizedName()); GameRegistry.registerItem(jackt2, jackt2.getUnlocalizedName()); GameRegistry.registerItem(jetpack_fly, jetpack_fly.getUnlocalizedName()); @@ -7912,14 +7188,14 @@ public class ModItems { GameRegistry.registerItem(structure_pattern, structure_pattern.getUnlocalizedName()); GameRegistry.registerItem(structure_randomized, structure_randomized.getUnlocalizedName()); GameRegistry.registerItem(structure_randomly, structure_randomly.getUnlocalizedName()); + GameRegistry.registerItem(structure_custommachine, structure_custommachine.getUnlocalizedName()); GameRegistry.registerItem(rod_of_discord, rod_of_discord.getUnlocalizedName()); - //GameRegistry.registerItem(analyzer, analyzer.getUnlocalizedName()); - //GameRegistry.registerItem(remote, remote.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_stopper, euphemium_stopper.getUnlocalizedName()); GameRegistry.registerItem(polaroid, polaroid.getUnlocalizedName()); GameRegistry.registerItem(glitch, glitch.getUnlocalizedName()); GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); GameRegistry.registerItem(book_of_, book_of_.getUnlocalizedName()); + GameRegistry.registerItem(page_of_, page_of_.getUnlocalizedName()); + GameRegistry.registerItem(book_lemegeton, book_lemegeton.getUnlocalizedName()); GameRegistry.registerItem(burnt_bark, burnt_bark.getUnlocalizedName()); //Kits @@ -7965,7 +7241,9 @@ public class ModItems { GameRegistry.registerItem(door_metal, door_metal.getUnlocalizedName()); GameRegistry.registerItem(door_office, door_office.getUnlocalizedName()); GameRegistry.registerItem(door_bunker, door_bunker.getUnlocalizedName()); - + GameRegistry.registerItem(door_red, door_red.getUnlocalizedName()); + GameRegistry.registerItem(sliding_blast_door_skin, sliding_blast_door_skin.getUnlocalizedName()); + //Records GameRegistry.registerItem(record_lc, record_lc.getUnlocalizedName()); GameRegistry.registerItem(record_ss, record_ss.getUnlocalizedName()); @@ -7977,48 +7255,9 @@ public class ModItems { GameRegistry.registerItem(book_lore, book_lore.getUnlocalizedName()); GameRegistry.registerItem(holotape_image, holotape_image.getUnlocalizedName()); GameRegistry.registerItem(holotape_damaged, holotape_damaged.getUnlocalizedName()); + GameRegistry.registerItem(clay_tablet, clay_tablet.getUnlocalizedName()); //Technical Items - GameRegistry.registerItem(smoke1, smoke1.getUnlocalizedName()); - GameRegistry.registerItem(smoke2, smoke2.getUnlocalizedName()); - GameRegistry.registerItem(smoke3, smoke3.getUnlocalizedName()); - GameRegistry.registerItem(smoke4, smoke4.getUnlocalizedName()); - GameRegistry.registerItem(smoke5, smoke5.getUnlocalizedName()); - GameRegistry.registerItem(smoke6, smoke6.getUnlocalizedName()); - GameRegistry.registerItem(smoke7, smoke7.getUnlocalizedName()); - GameRegistry.registerItem(smoke8, smoke8.getUnlocalizedName()); - GameRegistry.registerItem(b_smoke1, b_smoke1.getUnlocalizedName()); - GameRegistry.registerItem(b_smoke2, b_smoke2.getUnlocalizedName()); - GameRegistry.registerItem(b_smoke3, b_smoke3.getUnlocalizedName()); - GameRegistry.registerItem(b_smoke4, b_smoke4.getUnlocalizedName()); - GameRegistry.registerItem(b_smoke5, b_smoke5.getUnlocalizedName()); - GameRegistry.registerItem(b_smoke6, b_smoke6.getUnlocalizedName()); - GameRegistry.registerItem(b_smoke7, b_smoke7.getUnlocalizedName()); - GameRegistry.registerItem(b_smoke8, b_smoke8.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke1, d_smoke1.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke2, d_smoke2.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke3, d_smoke3.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke4, d_smoke4.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke5, d_smoke5.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke6, d_smoke6.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke7, d_smoke7.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke8, d_smoke8.getUnlocalizedName()); - GameRegistry.registerItem(spill1, spill1.getUnlocalizedName()); - GameRegistry.registerItem(spill2, spill2.getUnlocalizedName()); - GameRegistry.registerItem(spill3, spill3.getUnlocalizedName()); - GameRegistry.registerItem(spill4, spill4.getUnlocalizedName()); - GameRegistry.registerItem(spill5, spill5.getUnlocalizedName()); - GameRegistry.registerItem(spill6, spill6.getUnlocalizedName()); - GameRegistry.registerItem(spill7, spill7.getUnlocalizedName()); - GameRegistry.registerItem(spill8, spill8.getUnlocalizedName()); - GameRegistry.registerItem(gas1, gas1.getUnlocalizedName()); - GameRegistry.registerItem(gas2, gas2.getUnlocalizedName()); - GameRegistry.registerItem(gas3, gas3.getUnlocalizedName()); - GameRegistry.registerItem(gas4, gas4.getUnlocalizedName()); - GameRegistry.registerItem(gas5, gas5.getUnlocalizedName()); - GameRegistry.registerItem(gas6, gas6.getUnlocalizedName()); - GameRegistry.registerItem(gas7, gas7.getUnlocalizedName()); - GameRegistry.registerItem(gas8, gas8.getUnlocalizedName()); GameRegistry.registerItem(chlorine1, chlorine1.getUnlocalizedName()); GameRegistry.registerItem(chlorine2, chlorine2.getUnlocalizedName()); GameRegistry.registerItem(chlorine3, chlorine3.getUnlocalizedName()); @@ -8051,31 +7290,7 @@ public class ModItems { GameRegistry.registerItem(orange6, orange6.getUnlocalizedName()); GameRegistry.registerItem(orange7, orange7.getUnlocalizedName()); GameRegistry.registerItem(orange8, orange8.getUnlocalizedName()); - GameRegistry.registerItem(energy_ball, energy_ball.getUnlocalizedName()); - GameRegistry.registerItem(discharge, discharge.getUnlocalizedName()); - GameRegistry.registerItem(empblast, empblast.getUnlocalizedName()); - GameRegistry.registerItem(flame_1, flame_1.getUnlocalizedName()); - GameRegistry.registerItem(flame_2, flame_2.getUnlocalizedName()); - GameRegistry.registerItem(flame_3, flame_3.getUnlocalizedName()); - GameRegistry.registerItem(flame_4, flame_4.getUnlocalizedName()); - GameRegistry.registerItem(flame_5, flame_5.getUnlocalizedName()); - GameRegistry.registerItem(flame_6, flame_6.getUnlocalizedName()); - GameRegistry.registerItem(flame_7, flame_7.getUnlocalizedName()); - GameRegistry.registerItem(flame_8, flame_8.getUnlocalizedName()); - GameRegistry.registerItem(flame_9, flame_9.getUnlocalizedName()); - GameRegistry.registerItem(flame_10, flame_10.getUnlocalizedName()); - GameRegistry.registerItem(ln2_1, ln2_1.getUnlocalizedName()); - GameRegistry.registerItem(ln2_2, ln2_2.getUnlocalizedName()); - GameRegistry.registerItem(ln2_3, ln2_3.getUnlocalizedName()); - GameRegistry.registerItem(ln2_4, ln2_4.getUnlocalizedName()); - GameRegistry.registerItem(ln2_5, ln2_5.getUnlocalizedName()); - GameRegistry.registerItem(ln2_6, ln2_6.getUnlocalizedName()); - GameRegistry.registerItem(ln2_7, ln2_7.getUnlocalizedName()); - GameRegistry.registerItem(ln2_8, ln2_8.getUnlocalizedName()); - GameRegistry.registerItem(ln2_9, ln2_9.getUnlocalizedName()); - GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); - GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); GameRegistry.registerItem(achievement_icon, achievement_icon.getUnlocalizedName()); GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); @@ -8084,51 +7299,6 @@ public class ModItems { GameRegistry.registerItem(bob_nuclear, bob_nuclear.getUnlocalizedName()); GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); GameRegistry.registerItem(memory, memory.getUnlocalizedName()); - - //CONSERVE REMAP - addRemap("canned_beef", canned_conserve, EnumFoodType.BEEF); - addRemap("canned_tuna", canned_conserve, EnumFoodType.TUNA); - addRemap("canned_mystery", canned_conserve, EnumFoodType.MYSTERY); - addRemap("canned_pashtet", canned_conserve, EnumFoodType.PASHTET); - addRemap("canned_cheese", canned_conserve, EnumFoodType.CHEESE); - addRemap("canned_jizz", canned_conserve, EnumFoodType.JIZZ); - addRemap("canned_milk", canned_conserve, EnumFoodType.MILK); - addRemap("canned_ass", canned_conserve, EnumFoodType.ASS); - addRemap("canned_pizza", canned_conserve, EnumFoodType.PIZZA); - addRemap("canned_tube", canned_conserve, EnumFoodType.TUBE); - addRemap("canned_tomato", canned_conserve, EnumFoodType.TOMATO); - addRemap("canned_asbestos", canned_conserve, EnumFoodType.ASBESTOS); - addRemap("canned_bhole", canned_conserve, EnumFoodType.BHOLE); - addRemap("canned_hotdogs", canned_conserve, EnumFoodType.HOTDOGS); - addRemap("canned_leftovers", canned_conserve, EnumFoodType.LEFTOVERS); - addRemap("canned_yogurt", canned_conserve, EnumFoodType.YOGURT); - addRemap("canned_stew", canned_conserve, EnumFoodType.STEW); - addRemap("canned_chinese", canned_conserve, EnumFoodType.CHINESE); - addRemap("canned_oil", canned_conserve, EnumFoodType.OIL); - addRemap("canned_fist", canned_conserve, EnumFoodType.FIST); - addRemap("canned_spam", canned_conserve, EnumFoodType.SPAM); - addRemap("canned_fried", canned_conserve, EnumFoodType.FRIED); - addRemap("canned_napalm", canned_conserve, EnumFoodType.NAPALM); - addRemap("canned_diesel", canned_conserve, EnumFoodType.DIESEL); - addRemap("canned_kerosene", canned_conserve, EnumFoodType.KEROSENE); - addRemap("canned_recursion", canned_conserve, EnumFoodType.RECURSION); - addRemap("canned_bark", canned_conserve, EnumFoodType.BARK); - - addRemap("rod_zirnox_natural_uranium_fuel", rod_zirnox, EnumZirnoxType.NATURAL_URANIUM_FUEL); - addRemap("rod_zirnox_uranium_fuel", rod_zirnox, EnumZirnoxType.URANIUM_FUEL); - addRemap("rod_zirnox_th232", rod_zirnox, EnumZirnoxType.TH232); - addRemap("rod_zirnox_thorium_fuel", rod_zirnox, EnumZirnoxType.THORIUM_FUEL); - addRemap("rod_zirnox_mox_fuel", rod_zirnox, EnumZirnoxType.MOX_FUEL); - addRemap("rod_zirnox_plutonium_fuel", rod_zirnox, EnumZirnoxType.PLUTONIUM_FUEL); - addRemap("rod_zirnox_u233_fuel", rod_zirnox, EnumZirnoxType.U233_FUEL); - addRemap("rod_zirnox_u235_fuel", rod_zirnox, EnumZirnoxType.U235_FUEL); - addRemap("rod_zirnox_les_fuel", rod_zirnox, EnumZirnoxType.LES_FUEL); - addRemap("rod_zirnox_lithium", rod_zirnox, EnumZirnoxType.LITHIUM); - addRemap("rod_zirnox_zfb_mox", rod_zirnox, EnumZirnoxType.ZFB_MOX); - - addRemap("gas_petroleum", gas_full, Fluids.PETROLEUM.getID()); - addRemap("gas_biogas", gas_full, Fluids.BIOGAS.getID()); - addRemap("gas_lpg", gas_full, Fluids.LPG.getID()); } public static void addRemap(String unloc, Item item, Enum sub) { diff --git a/src/main/java/com/hbm/items/armor/ArmorAustralium.java b/src/main/java/com/hbm/items/armor/ArmorAustralium.java deleted file mode 100644 index b5a681561..000000000 --- a/src/main/java/com/hbm/items/armor/ArmorAustralium.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hbm.items.armor; - -import java.util.List; -import java.util.Random; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemArmor; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ArmorAustralium extends ItemArmor { - - Random rand = new Random(); - - public ArmorAustralium(ArmorMaterial armorMaterial, int armorType) { - super(armorMaterial, 0, armorType); - } - - @Override - public void onArmorTick(World world, EntityPlayer player, ItemStack armor) { - if(armor.getItemDamage() < armor.getMaxDamage()) { - if (armor.getItem() == ModItems.australium_iii) { - if(rand.nextInt(3) == 0) { - armor.damageItem(1, player); - } - if(!player.isPotionActive(Potion.field_76444_x.id)) - player.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 80, 2, true)); - } - if (armor.getItem() == ModItems.australium_iv) { - if(rand.nextInt(5) == 0) { - armor.damageItem(1, player); - } - if(!player.isPotionActive(Potion.field_76444_x.id)) - player.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 80, 4, true)); - } - if (armor.getItem() == ModItems.australium_v) { - if(rand.nextInt(7) == 0) { - armor.damageItem(1, player); - } - if(!player.isPotionActive(Potion.field_76444_x.id)) - player.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 80, 3, true)); - } - } - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if (itemstack.getItem() == ModItems.australium_iii) - list.add("Ouch, that hurts."); - if (itemstack.getItem() == ModItems.australium_iv) - list.add("Just do it."); - if (itemstack.getItem() == ModItems.australium_v) - list.add("Gobbles up less australium than Mark IV!"); - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) { - if(stack.getItem().equals(ModItems.australium_iii)) { - return (RefStrings.MODID + ":textures/armor/australium_iii.png"); - } - if(stack.getItem().equals(ModItems.australium_iv)) { - return (RefStrings.MODID + ":textures/armor/australium_iv.png"); - } - if(stack.getItem().equals(ModItems.australium_v)) { - return (RefStrings.MODID + ":textures/armor/australium_v.png"); - } - - else return null; - } - -} diff --git a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java index 93f8d34a3..5702fed77 100644 --- a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java +++ b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java @@ -3,8 +3,8 @@ package com.hbm.items.armor; import java.util.List; import com.hbm.extprop.HbmPlayerProps; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.model.ModelArmorBJ; import com.hbm.util.ArmorUtil; import com.hbm.util.I18nUtil; @@ -89,13 +89,13 @@ public class ArmorBJJetpack extends ArmorBJ { } } } - } - - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - super.addInformation(stack, player, list, ext); + } - list.add(EnumChatFormatting.RED + " + " + I18nUtil.resolveKey("armor.electricJetpack")); - list.add(EnumChatFormatting.GRAY + " + " + I18nUtil.resolveKey("armor.glider")); - } + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + + list.add(EnumChatFormatting.RED + " + " + I18nUtil.resolveKey("armor.electricJetpack")); + list.add(EnumChatFormatting.GRAY + " + " + I18nUtil.resolveKey("armor.glider")); + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index 068ae49f1..7f245c7f2 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -6,8 +6,8 @@ import java.util.UUID; import com.google.common.collect.Multimap; import com.hbm.extprop.HbmPlayerProps; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.model.ModelArmorDNT; import com.hbm.util.ArmorUtil; import com.hbm.util.BobMathUtil; @@ -173,7 +173,7 @@ public class ArmorDNT extends ArmorFSBPowered { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); + list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(this.getMaxCharge(stack))); list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); @@ -184,13 +184,9 @@ public class ArmorDNT extends ArmorFSBPowered { } } - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.explosionImmune")); - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.cap", 5)); - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.modifier", 0.001F)); list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.vats")); list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.thermal")); list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.hardLanding")); - list.add(EnumChatFormatting.DARK_RED + " " + I18nUtil.resolveKey("armor.ignoreLimit")); list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.rocketBoots")); list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.fastFall")); list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.sprintBoost")); diff --git a/src/main/java/com/hbm/items/armor/ArmorDiesel.java b/src/main/java/com/hbm/items/armor/ArmorDiesel.java index e42510fc3..2bc61d99c 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDiesel.java +++ b/src/main/java/com/hbm/items/armor/ArmorDiesel.java @@ -6,8 +6,8 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.model.ModelArmorDiesel; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java b/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java new file mode 100644 index 000000000..940955329 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java @@ -0,0 +1,94 @@ +package com.hbm.items.armor; + +import com.google.common.collect.Multimap; +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; +import com.hbm.render.model.ModelArmorEnvsuit; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +import java.util.UUID; + +public class ArmorEnvsuit extends ArmorFSBPowered { + + public ArmorEnvsuit(ArmorMaterial material, int slot, String texture, long maxPower, long chargeRate, long consumption, long drain) { + super(material, slot, texture, maxPower, chargeRate, consumption, drain); + } + + @SideOnly(Side.CLIENT) + ModelArmorEnvsuit[] models; + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { + + if(models == null) { + models = new ModelArmorEnvsuit[4]; + + for(int i = 0; i < 4; i++) + models[i] = new ModelArmorEnvsuit(i); + } + + return models[armorSlot]; + } + + private static final UUID speed = UUID.fromString("6ab858ba-d712-485c-bae9-e5e765fc555a"); + + @Override + public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { + + super.onArmorTick(world, player, stack); + + if(this != ModItems.envsuit_plate) + return; + + /// SPEED /// + Multimap multimap = super.getAttributeModifiers(stack); + multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(speed, "SQUIRREL SPEED", 0.1, 0)); + player.getAttributeMap().removeAttributeModifiers(multimap); + + if(this.hasFSBArmor(player)) { + + if(player.isSprinting()) player.getAttributeMap().applyAttributeModifiers(multimap); + + if(player.isInWater()) { + + if(!world.isRemote) { + player.setAir(300); + player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); + } + + double mo = 0.1 * player.moveForward; + Vec3 vec = player.getLookVec(); + vec.xCoord *= mo; + vec.yCoord *= mo; + vec.zCoord *= mo; + + player.motionX += vec.xCoord; + player.motionY += vec.yCoord; + player.motionZ += vec.zCoord; + } else { + boolean canRemoveNightVision = true; + ItemStack helmet = player.inventory.armorInventory[3]; + ItemStack helmetMod = ArmorModHandler.pryMod(helmet, ArmorModHandler.helmet_only); // Get the modification! + if (helmetMod != null && helmetMod.getItem() instanceof ItemModNightVision) { + canRemoveNightVision = false; + } + + if(!world.isRemote && canRemoveNightVision) { + player.removePotionEffect(Potion.nightVision.id); + } + } + } + } +} diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 4e2e60571..cf83bf1be 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -3,15 +3,15 @@ package com.hbm.items.armor; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map.Entry; import org.lwjgl.opengl.GL11; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.items.ModItems; +import com.hbm.util.ContaminationUtil; import com.hbm.util.I18nUtil; import cpw.mods.fml.common.gameevent.TickEvent; @@ -26,7 +26,6 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemArmor; @@ -48,23 +47,15 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { private String texture = ""; private ResourceLocation overlay = null; - public List effects = new ArrayList(); - public HashMap resistance = new HashMap(); - public float blastProtection = -1; - public float projectileProtection = -1; - public float damageCap = -1; - public float damageMod = -1; - public float damageThreshold = 0; - public float protectionYield = 100F; - public boolean fireproof = false; + public List effects = new ArrayList(); public boolean noHelmet = false; public boolean vats = false; public boolean thermal = false; public boolean geigerSound = false; public boolean customGeiger = false; public boolean hardLanding = false; - public double gravity = 0; public int dashCount = 0; + public int stepSize = 0; public String step; public String jump; public String fall; @@ -79,46 +70,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { return this; } - public ArmorFSB addResistance(String damage, float mod) { - resistance.put(damage, mod); - return this; - } - - public ArmorFSB setCap(float cap) { - this.damageCap = cap; - return this; - } - - public ArmorFSB setMod(float mod) { - this.damageMod = mod; - return this; - } - - public ArmorFSB setThreshold(float threshold) { - this.damageThreshold = threshold; - return this; - } - - public ArmorFSB setProtectionLevel(float damageYield) { - this.protectionYield = damageYield; - return this; - } - - public ArmorFSB setBlastProtection(float blastProtection) { - this.blastProtection = blastProtection; - return this; - } - - public ArmorFSB setProjectileProtection(float projectileProtection) { - this.projectileProtection = projectileProtection; - return this; - } - - public ArmorFSB setFireproof(boolean fire) { - this.fireproof = fire; - return this; - } - public ArmorFSB setNoHelmet(boolean noHelmet) { this.noHelmet = noHelmet; return this; @@ -148,16 +99,16 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { this.hardLanding = hardLanding; return this; } - - public ArmorFSB setGravity(double gravity) { - this.gravity = gravity; - return this; - } public ArmorFSB setDashCount(int dashCount) { this.dashCount = dashCount; return this; } + + public ArmorFSB setStepSize(int stepSize) { + this.stepSize = stepSize; + return this; + } public ArmorFSB setStep(String step) { this.step = step; @@ -183,22 +134,14 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { //lists aren't being modified after instantiation, so there's no need to dereference this.effects = original.effects; - this.resistance = original.resistance; - this.damageCap = original.damageCap; - this.damageMod = original.damageMod; - this.damageThreshold = original.damageThreshold; - this.protectionYield = original.protectionYield; - this.blastProtection = original.blastProtection; - this.projectileProtection = original.projectileProtection; - this.fireproof = original.fireproof; this.noHelmet = original.noHelmet; this.vats = original.vats; this.thermal = original.thermal; this.geigerSound = original.geigerSound; this.customGeiger = original.customGeiger; this.hardLanding = original.hardLanding; - this.gravity = original.gravity; this.dashCount = original.dashCount; + this.stepSize = original.stepSize; this.step = original.step; this.jump = original.jump; this.fall = original.fall; @@ -213,81 +156,29 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); + + List toAdd = new ArrayList(); if(!effects.isEmpty()) { - + List potionList = new ArrayList(); for(PotionEffect effect : effects) { - list.add(EnumChatFormatting.AQUA + " " + I18n.format(Potion.potionTypes[effect.getPotionID()].getName())); + potionList.add(I18n.format(Potion.potionTypes[effect.getPotionID()].getName())); } + + toAdd.add(EnumChatFormatting.AQUA + String.join(", ", potionList)); } - if(!resistance.isEmpty()) { + if(geigerSound) toAdd.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerSound")); + if(customGeiger) toAdd.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerHUD")); + if(vats) toAdd.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.vats")); + if(thermal) toAdd.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.thermal")); + if(hardLanding) toAdd.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.hardLanding")); + if(stepSize != 0) toAdd.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.stepSize", stepSize)); + if(dashCount > 0) toAdd.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.dash", dashCount)); - for(Entry struct : resistance.entrySet()) { - - if(struct.getValue() != 0) - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.damageModifier", struct.getValue(), I18n.format(struct.getKey()))); - else - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.nullDamage", I18n.format(struct.getKey()))); - } - } - - if(blastProtection != -1) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.blastProtection", blastProtection)); - } - - if(projectileProtection != -1) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.projectileProtection", projectileProtection)); - } - - if(damageCap != -1) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.cap", damageCap)); - } - - if(damageMod != -1) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.modifier", damageMod)); - } - - if(damageThreshold > 0) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.threshold", damageThreshold)); - } - - if(fireproof) { - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fireproof")); - } - - if(geigerSound) { - list.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerSound")); - } - - if(customGeiger) { - list.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerHUD")); - } - - if(vats) { - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.vats")); - } - - if(thermal) { - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.thermal")); - } - - if(hardLanding) { - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.hardLanding")); - } - - if(gravity != 0) { - list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.gravity", gravity)); - } - - if(dashCount > 0) { - list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.dash", dashCount)); - } - - if(protectionYield != 100F) { - list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.yield", protectionYield)); + if(!toAdd.isEmpty()) { + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); + list.addAll(toAdd); } } @@ -346,80 +237,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { return false; } - public void handleAttack(LivingAttackEvent event) { - - EntityLivingBase e = event.entityLiving; - - if(e instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) e; - - if(ArmorFSB.hasFSBArmor(player)) { - - ItemStack plate = player.inventory.armorInventory[2]; - - ArmorFSB chestplate = (ArmorFSB) plate.getItem(); - - if(chestplate.damageThreshold >= event.ammount && !event.source.isUnblockable()) { - event.setCanceled(true); - } - - if(chestplate.fireproof && event.source.isFireDamage()) { - player.extinguish(); - event.setCanceled(true); - } - - if(chestplate.resistance.get(event.source.getDamageType()) != null && chestplate.resistance.get(event.source.getDamageType()) <= 0) { - event.setCanceled(true); - } - } - } - } - - public void handleHurt(LivingHurtEvent event) { - - EntityLivingBase e = event.entityLiving; - - if(e instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) e; - - if(ArmorFSB.hasFSBArmor(player)) { - - ArmorFSB chestplate = (ArmorFSB) player.inventory.armorInventory[2].getItem(); - - //store any damage above the yield - float overFlow = Math.max(0, event.ammount - chestplate.protectionYield); - //reduce the damage to the yield cap if it exceeds the yield - event.ammount = Math.min(event.ammount, chestplate.protectionYield); - - if(!event.source.isUnblockable()) - event.ammount -= chestplate.damageThreshold; - - if(chestplate.damageMod != -1) { - event.ammount *= chestplate.damageMod; - } - - if(chestplate.resistance.get(event.source.getDamageType()) != null) { - event.ammount *= chestplate.resistance.get(event.source.getDamageType()); - } - - if(chestplate.blastProtection != -1 && event.source.isExplosion()) { - event.ammount *= chestplate.blastProtection; - } - - if(chestplate.projectileProtection != -1 && event.source.isProjectile()) { - event.ammount *= chestplate.projectileProtection; - } - - if(chestplate.damageCap != -1) { - event.ammount = Math.min(event.ammount, chestplate.damageCap); - } - - //add back anything that was above the protection yield before - event.ammount += overFlow; - } - } - } - public void handleTick(TickEvent.PlayerTickEvent event) { EntityPlayer player = event.player; @@ -437,9 +254,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { } } - if(!player.capabilities.isFlying && !player.isInWater()) - player.motionY -= chestplate.gravity; - if(chestplate.step != null && player.worldObj.isRemote && player.onGround) { try { @@ -463,46 +277,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { } catch(Exception x) { } } - /* - if(dashCount > 0) { - - int perDash = 60; - - HbmPlayerProps props = (HbmPlayerProps) player.getExtendedProperties("NTM_EXT_PLAYER"); - - props.setDashCount(dashCount); - - int stamina = props.getStamina(); - - if(props.getDashCooldown() <= 0) { - - if(!player.capabilities.isFlying && player.isSneaking() && stamina >= perDash) { - - Vec3 lookingIn = player.getLookVec(); - lookingIn.yCoord = 0; - lookingIn.normalize(); - player.addVelocity(lookingIn.xCoord, 0, lookingIn.zCoord); - player.playSound("hbm:player.dash", 1.0F, 1.0F); - - props.setDashCooldown(HbmPlayerProps.dashCooldownLength); - stamina -= perDash; - } - } else { - props.setDashCooldown(props.getDashCooldown() - 1); - } - - if(stamina < props.getDashCount() * perDash) { - stamina++; - - if(stamina % perDash == perDash-1) { - - player.playSound("hbm:player.dashRecharge", 1.0F, (1.0F + ((1F/12F)*(stamina/perDash)))); - stamina++; - } - } - - props.setStamina(stamina); - } */ } } @@ -558,55 +332,44 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { @Override public void onArmorTick(World world, EntityPlayer entity, ItemStack stack) { - if(this.armorType != 1) - return; - - if(!this.hasFSBArmor(entity) || !this.geigerSound) - return; + if(this.armorType != 1) return; + if(!hasFSBArmor(entity) || !this.geigerSound) return; + if(entity.inventory.hasItem(ModItems.geiger_counter) || entity.inventory.hasItem(ModItems.dosimeter)) return; if(world.getTotalWorldTime() % 5 == 0) { - - float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity); + + // Armor piece dosimeters indicate radiation dosage inside the armor, so reduce the counts by the effective protection + float mod = ContaminationUtil.calculateRadiationMod(entity); + float x = HbmLivingProps.getRadBuf(entity) * mod; if(x > 1E-5) { - - if(x > 0) { - List list = new ArrayList(); - - if(x < 1) list.add(0); - if(x < 5) list.add(0); - if(x < 10) list.add(1); - if(x > 5 && x < 15) list.add(2); - if(x > 10 && x < 20) list.add(3); - if(x > 15 && x < 25) list.add(4); - if(x > 20 && x < 30) list.add(5); - if(x > 25) list.add(6); - - int r = list.get(world.rand.nextInt(list.size())); - - if(r > 0) - world.playSoundAtEntity(entity, "hbm:item.geiger" + r, 1.0F, 1.0F); - } else if(world.rand.nextInt(50) == 0) { - world.playSoundAtEntity(entity, "hbm:item.geiger" + (1 + world.rand.nextInt(1)), 1.0F, 1.0F); - } + List list = new ArrayList(); + + if(x < 1) list.add(0); + if(x < 5) list.add(0); + if(x < 10) list.add(1); + if(x > 5 && x < 15) list.add(2); + if(x > 10 && x < 20) list.add(3); + if(x > 15 && x < 25) list.add(4); + if(x > 20 && x < 30) list.add(5); + if(x > 25) list.add(6); + + int r = list.get(world.rand.nextInt(list.size())); + + if(r > 0) world.playSoundAtEntity(entity, "hbm:item.geiger" + r, 1.0F, 1.0F); } } } public static int check(World world, int x, int y, int z) { - int rads = (int) Math.ceil(ChunkRadiationManager.proxy.getRadiation(world, x, y, z)); return rads; } // For crazier stuff not possible without hooking the event - @SideOnly(Side.CLIENT) - public void handleOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - } + @SideOnly(Side.CLIENT) public void handleOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { } - public boolean isArmorEnabled(ItemStack stack) { - return true; - } + public boolean isArmorEnabled(ItemStack stack) { return true; } @SideOnly(Side.CLIENT) public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) { @@ -634,7 +397,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } - private HashSet hidden = new HashSet(); + private HashSet hidden = new HashSet(); private boolean needsFullSet = false; public ArmorFSB hides(EnumPlayerPart... parts) { @@ -651,4 +414,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { public boolean disablesPart(EntityPlayer player, ItemStack stack, EnumPlayerPart part) { return hidden.contains(part) && (!needsFullSet || hasFSBArmorIgnoreCharge(player)); } + + public void handleAttack(LivingAttackEvent event) { } + public void handleHurt(LivingHurtEvent event) { } } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java b/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java index 4988f6234..cfb41950a 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.inventory.fluid.FluidType; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; @@ -31,6 +30,7 @@ public class ArmorFSBFueled extends ArmorFSB implements IFillableItem { this.maxFuel = maxFuel; } + @Override public int getFill(ItemStack stack) { if(stack.stackTagCompound == null) { stack.stackTagCompound = new NBTTagCompound(); @@ -83,7 +83,7 @@ public class ArmorFSBFueled extends ArmorFSB implements IFillableItem { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(I18nUtil.resolveKey(this.fuelType.getUnlocalizedName()) + ": " + BobMathUtil.getShortNumber(getFill(stack)) + " / " + BobMathUtil.getShortNumber(getMaxFill(stack))); + list.add(this.fuelType.getLocalizedName() + ": " + BobMathUtil.getShortNumber(getFill(stack)) + " / " + BobMathUtil.getShortNumber(getMaxFill(stack))); super.addInformation(stack, player, list, ext); } @@ -124,4 +124,9 @@ public class ArmorFSBFueled extends ArmorFSB implements IFillableItem { public int tryEmpty(FluidType type, int amount, ItemStack stack) { return 0; } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return null; + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index 139df77fe..d5368b5f3 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -2,9 +2,10 @@ package com.hbm.items.armor; import java.util.List; +import com.hbm.handler.ArmorModHandler; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -30,9 +31,7 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); - + list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(getMaxCharge(stack))); super.addInformation(stack, player, list, ext); } @@ -72,7 +71,7 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i); } else { stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", this.maxPower - i); + stack.stackTagCompound.setLong("charge", getMaxCharge(stack) - i); } if(stack.stackTagCompound.getLong("charge") < 0) @@ -84,10 +83,10 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { public long getCharge(ItemStack stack) { if(stack.getItem() instanceof ArmorFSBPowered) { if(stack.hasTagCompound()) { - return stack.stackTagCompound.getLong("charge"); + return Math.min(stack.stackTagCompound.getLong("charge"), getMaxCharge(stack)); } else { stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ArmorFSBPowered) stack.getItem()).maxPower); + stack.stackTagCompound.setLong("charge", getMaxCharge(stack)); return stack.stackTagCompound.getLong("charge"); } } @@ -97,18 +96,23 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { @Override public boolean showDurabilityBar(ItemStack stack) { - - return getCharge(stack) < maxPower; + return getCharge(stack) < getMaxCharge(stack); } @Override public double getDurabilityForDisplay(ItemStack stack) { - return 1 - (double) getCharge(stack) / (double) maxPower; + return 1 - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { + if(ArmorModHandler.hasMods(stack)) { + ItemStack mod = ArmorModHandler.pryMod(stack, ArmorModHandler.battery); + if(mod != null && mod.getItem() instanceof ItemModBattery) { + return (long) (maxPower * ((ItemModBattery) mod.getItem()).mod); + } + } return maxPower; } diff --git a/src/main/java/com/hbm/items/armor/ArmorGasMask.java b/src/main/java/com/hbm/items/armor/ArmorGasMask.java index 5cb086925..1359848e8 100644 --- a/src/main/java/com/hbm/items/armor/ArmorGasMask.java +++ b/src/main/java/com/hbm/items/armor/ArmorGasMask.java @@ -148,9 +148,9 @@ public class ArmorGasMask extends ItemArmor implements IGasMask { public ArrayList getBlacklist(ItemStack stack, EntityLivingBase entity) { if(this == ModItems.gas_mask_mono) { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CHLORINE, HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT, HazardClass.BACTERIA})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA})); } else { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_BLISTERING})); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorHEV.java b/src/main/java/com/hbm/items/armor/ArmorHEV.java index b1fd292db..5aa336fa9 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHEV.java +++ b/src/main/java/com/hbm/items/armor/ArmorHEV.java @@ -3,6 +3,7 @@ package com.hbm.items.armor; import org.lwjgl.opengl.GL11; import com.hbm.extprop.HbmLivingProps; +import com.hbm.items.ModItems; import com.hbm.render.model.ModelArmorHEV; import cpw.mods.fml.relauncher.Side; @@ -45,7 +46,7 @@ public class ArmorHEV extends ArmorFSBPowered { @Override public void handleOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - if(this.hasFSBArmorIgnoreCharge(player)) { + if(this.hasFSBArmorIgnoreCharge(player) && player.inventory.armorInventory[2].getItem() == ModItems.hev_plate) { if(event.type == ElementType.ARMOR) { event.setCanceled(true); @@ -107,7 +108,7 @@ public class ArmorHEV extends ArmorFSBPowered { ItemStack armor = player.inventory.armorInventory[i]; ArmorFSBPowered item = ((ArmorFSBPowered) player.inventory.armorInventory[i].getItem()); - c += (double) item.getCharge(armor) / (double) item.getMaxCharge(); + c += (double) item.getCharge(armor) / (double) item.getMaxCharge(armor); } int aX = (int) (70 / scale); diff --git a/src/main/java/com/hbm/items/armor/ArmorModel.java b/src/main/java/com/hbm/items/armor/ArmorModel.java index 04cb9a48b..88eed031d 100644 --- a/src/main/java/com/hbm/items/armor/ArmorModel.java +++ b/src/main/java/com/hbm/items/armor/ArmorModel.java @@ -11,7 +11,6 @@ import com.hbm.render.model.ModelCloak; import com.hbm.render.model.ModelGoggles; import com.hbm.render.model.ModelHat; import com.hbm.render.model.ModelM65; -import com.hbm.render.model.ModelOxygenMask; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -37,8 +36,6 @@ public class ArmorModel extends ItemArmor { @SideOnly(Side.CLIENT) private ModelCloak modelCloak; @SideOnly(Side.CLIENT) - private ModelOxygenMask modelOxy; - @SideOnly(Side.CLIENT) private ModelM65 modelM65; @SideOnly(Side.CLIENT) private ModelHat modelHat; @@ -65,14 +62,6 @@ public class ArmorModel extends ItemArmor { return this.modelGoggles; } } - if(this == ModItems.oxy_mask) { - if(armorSlot == 0) { - if(this.modelOxy == null) { - this.modelOxy = new ModelOxygenMask(); - } - return this.modelOxy; - } - } if(this == ModItems.hat) { if(armorSlot == 0) { if(this.modelHat == null) { @@ -81,7 +70,7 @@ public class ArmorModel extends ItemArmor { return this.modelHat; } } - if(this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { + if(this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { if(armorSlot == 1) { if(this.modelCloak == null) { this.modelCloak = new ModelCloak(); @@ -97,12 +86,6 @@ public class ArmorModel extends ItemArmor { if(stack.getItem() == ModItems.goggles) { return "hbm:textures/models/Goggles.png"; } - if(stack.getItem() == ModItems.oxy_mask) { - return null; - } - if(stack.getItem() == ModItems.cape_test) { - return "hbm:textures/models/TestCape.png"; - } if(stack.getItem() == ModItems.cape_radiation) { return "hbm:textures/models/capes/CapeRadiation.png"; } diff --git a/src/main/java/com/hbm/items/armor/ArmorTest.java b/src/main/java/com/hbm/items/armor/ArmorTest.java deleted file mode 100644 index f1549464f..000000000 --- a/src/main/java/com/hbm/items/armor/ArmorTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.hbm.items.armor; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; - -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; - -public class ArmorTest extends ItemArmor { - - public ArmorTest(ArmorMaterial armorMaterial, int armorType) { - super(armorMaterial, 0, armorType); - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) { - if(stack.getItem().equals(ModItems.test_helmet) || stack.getItem().equals(ModItems.test_chestplate) || stack.getItem().equals(ModItems.test_boots)) { - return (RefStrings.MODID + ":textures/armor/test_1.png"); - } - if(stack.getItem().equals(ModItems.test_leggings)) { - return (RefStrings.MODID + ":textures/armor/test_2.png"); - } - - else return null; - } - -} diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java new file mode 100644 index 000000000..415da3813 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -0,0 +1,86 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.render.model.ModelArmorTrenchmaster; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class ArmorTrenchmaster extends ArmorFSB { + + public ArmorTrenchmaster(ArmorMaterial material, int slot, String texture) { + super(material, slot, texture); + this.setMaxDamage(0); + } + + @SideOnly(Side.CLIENT) + ModelArmorTrenchmaster[] models; + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { + + if(models == null) { + models = new ModelArmorTrenchmaster[4]; + + for(int i = 0; i < 4; i++) + models[i] = new ModelArmorTrenchmaster(i); + } + + return models[armorSlot]; + } + + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + + //list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload")); + //list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo")); + } + + @Override + public void handleHurt(LivingHurtEvent event) { + super.handleHurt(event); + + EntityLivingBase e = event.entityLiving; + + if(e instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) e; + + if(ArmorFSB.hasFSBArmor(player)) { + + if(event.source.isExplosion() && event.source.getSourceOfDamage() == player) { + event.ammount = 0; + return; + } + } + } + } + + @Override + public void handleAttack(LivingAttackEvent event) { + super.handleAttack(event); + + EntityLivingBase e = event.entityLiving; + + if(e instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) e; + + if(ArmorFSB.hasFSBArmor(player)) { + + if(e.getRNG().nextInt(3) == 0) { + HbmPlayerProps.plink(player, "random.break", 0.5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + event.setCanceled(true); + } + } + } + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemArmorMod.java b/src/main/java/com/hbm/items/armor/ItemArmorMod.java index 505028648..cc6666e4f 100644 --- a/src/main/java/com/hbm/items/armor/ItemArmorMod.java +++ b/src/main/java/com/hbm/items/armor/ItemArmorMod.java @@ -64,6 +64,7 @@ public class ItemArmorMod extends Item { case ArmorModHandler.cladding: list.add(" " + I18nUtil.resolveKey("armorMod.type.cladding")); break; case ArmorModHandler.kevlar: list.add(" " + I18nUtil.resolveKey("armorMod.type.insert")); break; case ArmorModHandler.extra: list.add(" " + I18nUtil.resolveKey("armorMod.type.special")); break; + case ArmorModHandler.battery: list.add(" " + I18nUtil.resolveKey("armorMod.type.battery")); break; } } diff --git a/src/main/java/com/hbm/items/armor/ItemModBattery.java b/src/main/java/com/hbm/items/armor/ItemModBattery.java new file mode 100644 index 000000000..22193e17b --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModBattery.java @@ -0,0 +1,13 @@ +package com.hbm.items.armor; + +import com.hbm.handler.ArmorModHandler; + +public class ItemModBattery extends ItemArmorMod { + + public double mod; + + public ItemModBattery(double mod) { + super(ArmorModHandler.battery, true, true, true, true); + this.mod = mod; + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModCard.java b/src/main/java/com/hbm/items/armor/ItemModCard.java new file mode 100644 index 000000000..5a66dc478 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModCard.java @@ -0,0 +1,48 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class ItemModCard extends ItemArmorMod { + + public ItemModCard() { + super(ArmorModHandler.helmet_only, true, true, false, false); + this.setCreativeTab(null); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + if(this == ModItems.card_aos) { + list.add(EnumChatFormatting.RED + "Top of the line!"); + list.add(EnumChatFormatting.RED + "Guns now have a 33% chance to not consume ammo."); + } + if(this == ModItems.card_qos) { + list.add(EnumChatFormatting.RED + "Power!"); + list.add(EnumChatFormatting.RED + "Adds a 33% chance to tank damage with no cap."); + } + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.RED + stack.getDisplayName()); + } + + @Override + public void modDamage(LivingHurtEvent event, ItemStack armor) { + if(this == ModItems.card_qos && event.entityLiving.getRNG().nextInt(3) == 0 && event.entityLiving instanceof EntityPlayer) { + HbmPlayerProps.plink((EntityPlayer) event.entityLiving, "random.break", 0.5F, 1.0F + event.entityLiving.getRNG().nextFloat() * 0.5F); + event.ammount = 0; + event.setCanceled(true); + } + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModCharm.java b/src/main/java/com/hbm/items/armor/ItemModCharm.java index 2d68ff328..cc0b995c8 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCharm.java +++ b/src/main/java/com/hbm/items/armor/ItemModCharm.java @@ -14,7 +14,7 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent; public class ItemModCharm extends ItemArmorMod { public ItemModCharm() { - super(ArmorModHandler.helmet_only, false, true, false, false); + super(ArmorModHandler.helmet_only, true, true, false, false); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModCloud.java b/src/main/java/com/hbm/items/armor/ItemModCloud.java new file mode 100644 index 000000000..3129771d7 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModCloud.java @@ -0,0 +1,47 @@ +package com.hbm.items.armor; + +import java.util.List; +import java.util.UUID; + +import com.google.common.collect.Multimap; +import com.hbm.handler.ArmorModHandler; +import com.hbm.interfaces.IArmorModDash; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemModCloud extends ItemArmorMod implements IArmorModDash { + + private static final UUID speed = UUID.fromString("1d11e63e-28c4-4e14-b09f-fe0bd1be708f"); + + public ItemModCloud() { + super(ArmorModHandler.plate_only, false, true, false, false); + } + + @Override + public Multimap getModifiers(ItemStack armor) { + Multimap multimap = super.getAttributeModifiers(armor); + multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(speed, "CLOUD SPEED", 0.125, 2)); + return multimap; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + list.add(EnumChatFormatting.WHITE + "Grants horizontal dashes"); + list.add(""); + super.addInformation(stack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (Dashes)"); + } + + public int getDashes() { + return 3; + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModDefuser.java b/src/main/java/com/hbm/items/armor/ItemModDefuser.java index 48eb2afe9..dba9dc6ff 100644 --- a/src/main/java/com/hbm/items/armor/ItemModDefuser.java +++ b/src/main/java/com/hbm/items/armor/ItemModDefuser.java @@ -61,7 +61,7 @@ public class ItemModDefuser extends ItemArmorMod { if(toRem != null) { creeper.tasks.removeTask(toRem); creeper.worldObj.playSoundEffect(creeper.posX, creeper.posY, creeper.posZ, "hbm:item.pinBreak", 1.0F, 1.0F); - creeper.dropItem(creeper.getRNG().nextBoolean() ? ModItems.wire_copper : ModItems.safety_fuse, 1); + creeper.dropItem(ModItems.safety_fuse, 1); creeper.attackEntityFrom(DamageSource.causeMobDamage(entity), 1.0F); creeper.addPotionEffect(new PotionEffect(Potion.weakness.id, 0, 200)); } diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java index 7c8fd77f6..cacecfc27 100644 --- a/src/main/java/com/hbm/items/armor/ItemModGasmask.java +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -99,9 +99,9 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { public ArrayList getBlacklist(ItemStack stack, EntityLivingBase entity) { if(this == ModItems.attachment_mask_mono) { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CHLORINE, HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT, HazardClass.BACTERIA})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA})); } else { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_BLISTERING})); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModHealth.java b/src/main/java/com/hbm/items/armor/ItemModHealth.java index 6e757153a..85b5dfa43 100644 --- a/src/main/java/com/hbm/items/armor/ItemModHealth.java +++ b/src/main/java/com/hbm/items/armor/ItemModHealth.java @@ -27,7 +27,7 @@ public class ItemModHealth extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE); - list.add(color + "+" + (Math.round(health * 10 / 2) * 0.1) + " health"); + list.add(color + "+" + (Math.round(health * 10) * 0.1) + " health"); list.add(""); if(this == ModItems.black_diamond) { @@ -43,7 +43,7 @@ public class ItemModHealth extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE); - list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(health * 10 / 2) * 0.1) + " health)"); + list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(health * 10) * 0.1) + " health)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModKnife.java b/src/main/java/com/hbm/items/armor/ItemModKnife.java index 9d61d7e2e..0c49f092f 100644 --- a/src/main/java/com/hbm/items/armor/ItemModKnife.java +++ b/src/main/java/com/hbm/items/armor/ItemModKnife.java @@ -5,8 +5,8 @@ import java.util.UUID; import com.hbm.handler.ArmorModHandler; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/items/armor/ItemModLens.java b/src/main/java/com/hbm/items/armor/ItemModLens.java index f7d3675fc..7aeafb941 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLens.java +++ b/src/main/java/com/hbm/items/armor/ItemModLens.java @@ -5,8 +5,8 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ISatChip; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteScanner; @@ -84,7 +84,6 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { if(addIf(ModBlocks.ore_oil, b, 300, aX, seg, aZ, "Oil", 0xa0a0a0, player)) hits++; if(addIf(ModBlocks.ore_bedrock_oil, b, 300, aX, seg, aZ, "Bedrock Oil", 0xa0a0a0, player)) hits++; if(addIf(ModBlocks.ore_coltan, b, 5, aX, seg, aZ, "Coltan", 0xa0a000, player)) hits++; - if(addIf(ModBlocks.ore_bedrock_coltan, b, 1, aX, seg, aZ, "Bedrock Coltan", 0xa0a000, player)) hits++; if(addIf(ModBlocks.stone_gneiss, b, 5000, aX, seg, aZ, "Schist", 0x8080ff, player)) hits++; if(addIf(ModBlocks.ore_australium, b, 1000, aX, seg, aZ, "Australium", 0xffff00, player)) hits++; if(addIf(Blocks.end_portal_frame, b, 1, aX, seg, aZ, "End Portal", 0x40b080, player)) hits++; diff --git a/src/main/java/com/hbm/items/armor/ItemModMedal.java b/src/main/java/com/hbm/items/armor/ItemModMedal.java index 99fc25b59..693c8c9ff 100644 --- a/src/main/java/com/hbm/items/armor/ItemModMedal.java +++ b/src/main/java/com/hbm/items/armor/ItemModMedal.java @@ -13,7 +13,7 @@ import net.minecraft.util.EnumChatFormatting; public class ItemModMedal extends ItemArmorMod { public ItemModMedal() { - super(ArmorModHandler.extra, false, true, false, false); + super(ArmorModHandler.plate_only, true, true, false, false); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModNightVision.java b/src/main/java/com/hbm/items/armor/ItemModNightVision.java new file mode 100644 index 000000000..6418a88bc --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModNightVision.java @@ -0,0 +1,41 @@ +package com.hbm.items.armor; + +import com.hbm.handler.ArmorModHandler; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.EnumChatFormatting; + +import java.util.List; + +public class ItemModNightVision extends ItemArmorMod { + public ItemModNightVision() { + super(ArmorModHandler.helmet_only, true, false, false, false); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.AQUA + I18n.format("item.night_vision.description.item")); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); + } + + @Override + public void modUpdate(EntityLivingBase entity, ItemStack armor) { + if(!entity.worldObj.isRemote && entity instanceof EntityPlayer && armor.getItem() instanceof ArmorFSBPowered && ArmorFSBPowered.hasFSBArmor((EntityPlayer) entity)) { + entity.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); + + if(entity.getRNG().nextInt(100) == 0) { + armor.damageItem(1, entity); + } + } + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModPads.java b/src/main/java/com/hbm/items/armor/ItemModPads.java index 9e7d62556..a29a570b3 100644 --- a/src/main/java/com/hbm/items/armor/ItemModPads.java +++ b/src/main/java/com/hbm/items/armor/ItemModPads.java @@ -74,7 +74,7 @@ public class ItemModPads extends ItemArmorMod { if(charge == 0) charge = powered.consumption / 40; - long power = Math.min(powered.maxPower, powered.getCharge(stack) + charge); + long power = Math.min(powered.getMaxCharge(stack), powered.getCharge(stack) + charge); powered.setCharge(stack, power); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModShield.java b/src/main/java/com/hbm/items/armor/ItemModShield.java new file mode 100644 index 000000000..9aa1782e4 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModShield.java @@ -0,0 +1,33 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemModShield extends ItemArmorMod { + + public final float shield; + + public ItemModShield(float shield) { + super(ArmorModHandler.kevlar, false, true, false, false); + this.shield = shield; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD); + list.add(color + "+" + (Math.round(shield * 10) * 0.1) + " shield"); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD); + list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(shield * 10) * 0.1) + " health)"); + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModV1.java b/src/main/java/com/hbm/items/armor/ItemModV1.java deleted file mode 100644 index bb5d8a3a6..000000000 --- a/src/main/java/com/hbm/items/armor/ItemModV1.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hbm.items.armor; - -import java.util.List; -import java.util.UUID; - -import com.google.common.collect.Multimap; -import com.hbm.handler.ArmorModHandler; -import com.hbm.interfaces.IArmorModDash; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -public class ItemModV1 extends ItemArmorMod implements IArmorModDash { - - private static final UUID speed = UUID.fromString("1d11e63e-28c4-4e14-b09f-fe0bd1be708f"); - - public ItemModV1() { - super(ArmorModHandler.extra, false, true, false, false); - } - - @Override - public Multimap getModifiers(ItemStack armor) { - Multimap multimap = super.getAttributeModifiers(armor); - multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(speed, "V1 SPEED", 0.5, 2)); - return multimap; - } - - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - list.add(EnumChatFormatting.RED + "BLOOD IS FUEL"); - list.add(""); - super.addInformation(stack, player, list, bool); - } - - @Override - public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (BLOOD IS FUEL)"); - } - - public int getDashes() { - return 3; - } -} diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index c036d3ad6..7b13478d7 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -3,12 +3,9 @@ package com.hbm.items.armor; import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.inventory.fluid.FluidType; import com.hbm.render.model.ModelJetPack; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; -import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; @@ -18,28 +15,21 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.RenderPlayerEvent; -public abstract class JetpackBase extends ItemArmorMod implements IFillableItem { +public abstract class JetpackBase extends ItemArmorMod { - private ModelJetPack model; - public FluidType fuel; - public int maxFuel; + protected ModelBiped cachedModel; - public JetpackBase(FluidType fuel, int maxFuel) { + public JetpackBase() { super(ArmorModHandler.plate_only, false, true, false, false); - this.fuel = fuel; - this.maxFuel = maxFuel; } @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey(fuel.getUnlocalizedName()) + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); - list.add(""); super.addInformation(itemstack, player, list, bool); list.add(EnumChatFormatting.GOLD + "Can be worn on its own!"); } @@ -52,7 +42,7 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem if(jetpack == null) return; - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (" + I18nUtil.resolveKey(fuel.getUnlocalizedName()) + ": " + this.getFuel(jetpack) + "mB / " + this.maxFuel + "mB"); + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName()); } @Override @@ -104,77 +94,12 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { if (armorSlot == 1) { - if (model == null) { - this.model = new ModelJetPack(); + if (cachedModel == null) { + this.cachedModel = new ModelJetPack(); } - return this.model; + return this.cachedModel; } return null; } - - protected void useUpFuel(EntityPlayer player, ItemStack stack, int rate) { - - if(player.ticksExisted % rate == 0) - this.setFuel(stack, this.getFuel(stack) - 1); - } - - public static int getFuel(ItemStack stack) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - return 0; - } - - return stack.stackTagCompound.getInteger("fuel"); - - } - - public static void setFuel(ItemStack stack, int i) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("fuel", i); - - } - - public int getMaxFill(ItemStack stack) { - return this.maxFuel; - } - - public int getLoadSpeed(ItemStack stack) { - return 10; - } - - @Override - public boolean acceptsFluid(FluidType type, ItemStack stack) { - return type == this.fuel; - } - - @Override - public int tryFill(FluidType type, int amount, ItemStack stack) { - - if(!acceptsFluid(type, stack)) - return amount; - - int fill = this.getFuel(stack); - int req = maxFuel - fill; - - int toFill = Math.min(amount, req); - //toFill = Math.min(toFill, getLoadSpeed(stack)); - - this.setFuel(stack, fill + toFill); - - return amount - toFill; - } - - @Override - public boolean providesFluid(FluidType type, ItemStack stack) { - return false; - } - - @Override - public int tryEmpty(FluidType type, int amount, ItemStack stack) { - return 0; - } } diff --git a/src/main/java/com/hbm/items/armor/JetpackBooster.java b/src/main/java/com/hbm/items/armor/JetpackBooster.java index 09b90947b..de35ee89a 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBooster.java +++ b/src/main/java/com/hbm/items/armor/JetpackBooster.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -17,7 +17,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class JetpackBooster extends JetpackBase { +public class JetpackBooster extends JetpackFueledBase { public JetpackBooster(FluidType fuel, int maxFuel) { super(fuel, maxFuel); diff --git a/src/main/java/com/hbm/items/armor/JetpackBreak.java b/src/main/java/com/hbm/items/armor/JetpackBreak.java index 340fd2f09..02251ed16 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBreak.java +++ b/src/main/java/com/hbm/items/armor/JetpackBreak.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -16,7 +16,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class JetpackBreak extends JetpackBase { +public class JetpackBreak extends JetpackFueledBase { public static int maxFuel = 1200; diff --git a/src/main/java/com/hbm/items/armor/JetpackFueledBase.java b/src/main/java/com/hbm/items/armor/JetpackFueledBase.java new file mode 100644 index 000000000..b1a5f07f8 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/JetpackFueledBase.java @@ -0,0 +1,117 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; +import com.hbm.inventory.fluid.FluidType; + +import api.hbm.fluid.IFillableItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; + +public abstract class JetpackFueledBase extends JetpackBase implements IFillableItem { + + public FluidType fuel; + public int maxFuel; + + public JetpackFueledBase(FluidType fuel, int maxFuel) { + super(); + this.fuel = fuel; + this.maxFuel = maxFuel; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.LIGHT_PURPLE + fuel.getLocalizedName() + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + + ItemStack jetpack = ArmorModHandler.pryMods(armor)[ArmorModHandler.plate_only]; + + if(jetpack == null) + return; + + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (" + fuel.getLocalizedName() + ": " + this.getFuel(jetpack) + "mB / " + this.maxFuel + "mB)"); + } + + protected void useUpFuel(EntityPlayer player, ItemStack stack, int rate) { + if(player.ticksExisted % rate == 0){ + this.setFuel(stack, this.getFuel(stack) - 1); + } + } + + public static int getFuel(ItemStack stack) { + if(stack.stackTagCompound == null) { + stack.stackTagCompound = new NBTTagCompound(); + return 0; + } + + return stack.stackTagCompound.getInteger("fuel"); + + } + + public static void setFuel(ItemStack stack, int i) { + if(stack.stackTagCompound == null) { + stack.stackTagCompound = new NBTTagCompound(); + } + + stack.stackTagCompound.setInteger("fuel", i); + + } + + public int getMaxFill(ItemStack stack) { + return this.maxFuel; + } + + public int getLoadSpeed(ItemStack stack) { + return 10; + } + + @Override + public boolean acceptsFluid(FluidType type, ItemStack stack) { + return type == this.fuel; + } + + @Override + public int tryFill(FluidType type, int amount, ItemStack stack) { + + if(!acceptsFluid(type, stack)) + return amount; + + int fill = this.getFuel(stack); + int req = maxFuel - fill; + + int toFill = Math.min(amount, req); + //toFill = Math.min(toFill, getLoadSpeed(stack)); + + this.setFuel(stack, fill + toFill); + + return amount - toFill; + } + + @Override + public boolean providesFluid(FluidType type, ItemStack stack) { + return false; + } + + @Override + public int tryEmpty(FluidType type, int amount, ItemStack stack) { + return 0; + } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return null; + } + + @Override + public int getFill(ItemStack stack) { + return 0; + } +} diff --git a/src/main/java/com/hbm/items/armor/JetpackRegular.java b/src/main/java/com/hbm/items/armor/JetpackRegular.java index cbf04933b..6acaa030e 100644 --- a/src/main/java/com/hbm/items/armor/JetpackRegular.java +++ b/src/main/java/com/hbm/items/armor/JetpackRegular.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -16,7 +16,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class JetpackRegular extends JetpackBase { +public class JetpackRegular extends JetpackFueledBase { public JetpackRegular(FluidType fuel, int maxFuel) { super(fuel, maxFuel); diff --git a/src/main/java/com/hbm/items/armor/JetpackVectorized.java b/src/main/java/com/hbm/items/armor/JetpackVectorized.java index d95312f80..e64593990 100644 --- a/src/main/java/com/hbm/items/armor/JetpackVectorized.java +++ b/src/main/java/com/hbm/items/armor/JetpackVectorized.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.fluid.FluidType; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -17,7 +17,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class JetpackVectorized extends JetpackBase { +public class JetpackVectorized extends JetpackFueledBase { public JetpackVectorized(FluidType fuel, int maxFuel) { super(fuel, maxFuel); diff --git a/src/main/java/com/hbm/items/armor/WingsMurk.java b/src/main/java/com/hbm/items/armor/WingsMurk.java index d74840b42..daec63319 100644 --- a/src/main/java/com/hbm/items/armor/WingsMurk.java +++ b/src/main/java/com/hbm/items/armor/WingsMurk.java @@ -2,37 +2,43 @@ package com.hbm.items.armor; import com.hbm.extprop.HbmPlayerProps; import com.hbm.items.ModItems; +import com.hbm.main.ResourceManager; import com.hbm.render.model.ModelArmorWings; import com.hbm.util.ArmorUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class WingsMurk extends ItemArmor { +public class WingsMurk extends JetpackBase { - public WingsMurk(ArmorMaterial material) { - super(material, 0, 1); + public WingsMurk() { + super(); } - @SideOnly(Side.CLIENT) - ModelArmorWings model; + @Override + public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { + return ResourceManager.wings_murk.toString(); + } @Override @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { - - if(model == null) { - model = new ModelArmorWings(this == ModItems.wings_murk ? 0 : 1); + if (armorSlot == 1) { + if(cachedModel == null) { + cachedModel = new ModelArmorWings(this == ModItems.wings_murk ? 0 : 1); + } + + return cachedModel; } - - return model; + + return null; } public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { diff --git a/src/main/java/com/hbm/items/block/ItemBlockBase.java b/src/main/java/com/hbm/items/block/ItemBlockBase.java index e04959cff..97286b3a2 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockBase.java +++ b/src/main/java/com/hbm/items/block/ItemBlockBase.java @@ -2,10 +2,10 @@ package com.hbm.items.block; import java.util.List; -import com.hbm.blocks.BlockMulti; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.generic.BlockMetalFence; import com.hbm.tileentity.IPersistentNBT; import cpw.mods.fml.relauncher.Side; @@ -17,6 +17,7 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; public class ItemBlockBase extends ItemBlock { @@ -40,12 +41,25 @@ public class ItemBlockBase extends ItemBlock { @Override public String getUnlocalizedName(ItemStack stack) { - if(field_150939_a instanceof BlockMulti) { - return ((BlockMulti)field_150939_a).getUnlocalizedName(stack); + if(field_150939_a instanceof IBlockMulti) { + return ((IBlockMulti) field_150939_a).getUnlocalizedName(stack); + } else if(field_150939_a instanceof BlockMetalFence) { + return ((BlockMetalFence) field_150939_a).getUnlocalizedName(stack); // I considered reworking IBlockMulti instead but there are like a bajillion implementers } else { return super.getUnlocalizedName(stack); } } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + if(field_150939_a instanceof IBlockMulti) { + String override = ((IBlockMulti) field_150939_a).getOverrideDisplayName(stack); + if(override != null) { + return override; + } + } + return ("" + StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim(); + } @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 6d26836e0..13bd6b2e4 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -59,8 +59,7 @@ public class ItemBlockLore extends ItemBlockBase { if(this.field_150939_a == ModBlocks.gravel_diamond) return EnumRarity.rare; - if(this.field_150939_a == ModBlocks.block_euphemium || this.field_150939_a == ModBlocks.block_euphemium_cluster || - this.field_150939_a == ModBlocks.plasma || this.field_150939_a == ModBlocks.fwatz_plasma) + if(this.field_150939_a == ModBlocks.block_euphemium || this.field_150939_a == ModBlocks.block_euphemium_cluster || this.field_150939_a == ModBlocks.plasma) return EnumRarity.epic; return EnumRarity.common; diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java new file mode 100644 index 000000000..ce6559b82 --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -0,0 +1,50 @@ +package com.hbm.items.block; + +import java.util.List; + +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; + +public class ItemCustomMachine extends ItemBlock { + + public ItemCustomMachine(Block block) { + super(block); + this.setMaxDamage(0); + this.setHasSubtypes(true); + } + + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + + for(int i = 0; i < CustomMachineConfigJSON.niceList.size(); i++) { + ItemStack stack = new ItemStack(item, 1, i + 100); + list.add(stack); + } + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + + int id = stack.getItemDamage() - 100; + + if(id >= 0 && id < CustomMachineConfigJSON.customMachines.size()) { + MachineConfiguration conf = CustomMachineConfigJSON.niceList.get(id); + + if(conf != null) { + String localized = conf.localization.get(MainRegistry.proxy.getLanguageCode()); + return localized != null ? localized : conf.localizedName; + } + } + + return "INVALID MACHINE CONTROLLER"; + } +} diff --git a/src/main/java/com/hbm/items/block/ItemModSlab.java b/src/main/java/com/hbm/items/block/ItemModSlab.java index a562c28f2..9a6720064 100644 --- a/src/main/java/com/hbm/items/block/ItemModSlab.java +++ b/src/main/java/com/hbm/items/block/ItemModSlab.java @@ -1,11 +1,13 @@ package com.hbm.items.block; import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.NotableComments; import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; import net.minecraft.item.ItemSlab; +@NotableComments public class ItemModSlab extends ItemSlab { public ItemModSlab(Block block) { diff --git a/src/main/java/com/hbm/items/food/ItemBDCL.java b/src/main/java/com/hbm/items/food/ItemBDCL.java index 1ec41d032..3555dc71d 100644 --- a/src/main/java/com/hbm/items/food/ItemBDCL.java +++ b/src/main/java/com/hbm/items/food/ItemBDCL.java @@ -9,12 +9,12 @@ import net.minecraft.world.World; public class ItemBDCL extends Item { @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 32; + public int getMaxItemUseDuration(ItemStack stack) { + return 40; } @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { + public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.drink; } @Override @@ -31,4 +31,24 @@ public class ItemBDCL extends Item { } return stack; } + + @Override + public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { + + if(count % 5 == 0 && count >= 10) { + player.playSound("hbm:player.gulp", 1F, 1F); + } + + if(count == 1) { + this.onEaten(stack, player.worldObj, player); + player.clearItemInUse(); + player.itemInUseCount = 10; + player.playSound("hbm:player.groan", 1F, 1F); + return; + } + + if(count <= 24 && count % 4 == 0) { + player.itemInUseCount--; + } + } } diff --git a/src/main/java/com/hbm/items/food/ItemCanteen.java b/src/main/java/com/hbm/items/food/ItemCanteen.java index 0808c47fb..81a3c20b0 100644 --- a/src/main/java/com/hbm/items/food/ItemCanteen.java +++ b/src/main/java/com/hbm/items/food/ItemCanteen.java @@ -35,9 +35,6 @@ public class ItemCanteen extends Item { public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { stack.setItemDamage(stack.getMaxDamage()); - if (this == ModItems.canteen_13) { - player.heal(5F); - } if (this == ModItems.canteen_vodka) { player.addPotionEffect(new PotionEffect(Potion.confusion.id, 10 * 20, 0)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 30 * 20, 2)); @@ -77,17 +74,6 @@ public class ItemCanteen extends Item { @SideOnly(Side.CLIENT) public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) { - if(this == ModItems.canteen_13) - { - list.add("Cooldown: 1 minute"); - list.add("Restores 2.5 hearts"); - list.add(""); - - if(MainRegistry.polaroidID == 11) - list.add("You sip a sip from your trusty Vault 13 SIPPP"); - else - list.add("You take a sip from your trusty Vault 13 canteen."); - } if(this == ModItems.canteen_vodka) { list.add("Cooldown: 3 minutes"); diff --git a/src/main/java/com/hbm/items/food/ItemConserve.java b/src/main/java/com/hbm/items/food/ItemConserve.java index 11b2c9bb7..9b45540e6 100644 --- a/src/main/java/com/hbm/items/food/ItemConserve.java +++ b/src/main/java/com/hbm/items/food/ItemConserve.java @@ -105,33 +105,33 @@ public class ItemConserve extends ItemEnumMulti { } public static enum EnumFoodType { - BEEF(8, 5F), - TUNA(4, 5F), - MYSTERY(6, 5F), - PASHTET(4, 5F), - CHEESE(3, 5F), + BEEF(8, 0.75F), + TUNA(4, 0.75F), + MYSTERY(6, 0.5F), + PASHTET(4, 0.5F), + CHEESE(3, 1F), JIZZ(15, 5F), // :3 - MILK(5, 5F), - ASS(6, 5F), // :3 - PIZZA(8, 5F), - TUBE(2, 5F), - TOMATO(4, 5F), - ASBESTOS(7, 5F), - BHOLE(10, 5F), - HOTDOGS(5, 5F), - LEFTOVERS(1, 5F), - YOGURT(3, 5F), - STEW(5, 5F), - CHINESE(6, 5F), - OIL(3, 5F), - FIST(6, 5F), - SPAM(8, 5F), - FRIED(10, 5F), - NAPALM(6, 5F), - DIESEL(6, 5F), - KEROSENE(6, 4F), - RECURSION(1, 5F), - BARK(2, 5F); + MILK(5, 0.25F), + ASS(6, 0.75F), // :3 + PIZZA(8, 075F), + TUBE(2, 0.25F), + TOMATO(4, 0.5F), + ASBESTOS(7, 1F), + BHOLE(10, 1F), + HOTDOGS(5, 0.75F), + LEFTOVERS(1, 0.1F), + YOGURT(3, 0.5F), + STEW(5, 0.5F), + CHINESE(6, 0.1F), + OIL(3, 1F), + FIST(6, 0.75F), + SPAM(8, 1F), + FRIED(10, 0.75F), + NAPALM(6, 1F), + DIESEL(6, 1F), + KEROSENE(6, 1F), + RECURSION(1, 1F), + BARK(2, 1F); protected int foodLevel; protected float saturation; diff --git a/src/main/java/com/hbm/items/food/ItemEnergy.java b/src/main/java/com/hbm/items/food/ItemEnergy.java index 02b6caf87..b01195ad9 100644 --- a/src/main/java/com/hbm/items/food/ItemEnergy.java +++ b/src/main/java/com/hbm/items/food/ItemEnergy.java @@ -171,13 +171,6 @@ public class ItemEnergy extends Item { player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1)); ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 15.0F); } - if(this == ModItems.bottle2_sunset) { - player.heal(6); - player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 1)); - player.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 2)); - player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60 * 20, 2)); - player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 60 * 20, 2)); - } if(this == ModItems.coffee) { player.heal(10); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 2)); @@ -192,11 +185,7 @@ public class ItemEnergy extends Item { if(!player.capabilities.isCreativeMode) { if(this.cap != null) { - - if(this == ModItems.bottle2_sunset && world.rand.nextInt(20) == 0) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.cap_star)); - else - player.inventory.addItemStackToInventory(new ItemStack(this.cap)); + player.inventory.addItemStackToInventory(new ItemStack(this.cap)); } if(this.container != null) { if(stack.stackSize <= 0) { @@ -317,20 +306,5 @@ public class ItemEnergy extends Item { list.add("Tastes like radish and radiation."); list.add("[Requires bottle opener]"); } - if(this == ModItems.bottle2_sunset) { - if(MainRegistry.polaroidID == 11) { - list.add("\"Authentic Sunset Juice\""); - list.add(""); - list.add("This smells like fish."); - list.add("*sip*"); - list.add("Yup, that's pretty disugsting."); - list.add("..."); - list.add("..."); - list.add("*sip*"); - } else { - list.add("The eternal #2. Screw you, Bradberton!"); - } - list.add("[Requires bottle opener]"); - } } } diff --git a/src/main/java/com/hbm/items/food/ItemFlask.java b/src/main/java/com/hbm/items/food/ItemFlask.java index 256fa9eff..13826d3b8 100644 --- a/src/main/java/com/hbm/items/food/ItemFlask.java +++ b/src/main/java/com/hbm/items/food/ItemFlask.java @@ -49,8 +49,8 @@ public class ItemFlask extends ItemEnumMulti { if(stack.getItemDamage() == EnumInfusion.SHIELD.ordinal()) { float infusion = 5F; HbmPlayerProps props = HbmPlayerProps.getData(player); - props.maxShield = Math.min(props.shieldCap, props.shield + infusion); - props.shield += infusion; + props.maxShield = Math.min(props.shieldCap, props.maxShield + infusion); + props.shield = Math.min(props.shield + infusion, props.getEffectiveMaxShield()); } return stack; diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index 25bb74a9e..032fbf61a 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -3,8 +3,8 @@ package com.hbm.items.food; import java.util.List; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; @@ -33,15 +33,6 @@ public class ItemLemon extends ItemFood { list.add("Eh, good enough."); } - if(this == ModItems.definitelyfood) { - list.add("A'right, I got sick and tired of"); - list.add("having to go out, kill things just"); - list.add("to get food and not die, so here is "); - list.add("my absolutely genius solution:"); - list.add(""); - list.add("Have some edible dirt."); - } - if(this == ModItems.med_ipecac) { list.add("Bitter juice that will cause your stomach"); list.add("to forcefully eject its contents."); diff --git a/src/main/java/com/hbm/items/food/ItemNugget.java b/src/main/java/com/hbm/items/food/ItemNugget.java deleted file mode 100644 index b6da8bc71..000000000 --- a/src/main/java/com/hbm/items/food/ItemNugget.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.hbm.items.food; - -import java.util.List; - -import com.hbm.items.ModItems; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; - -public class ItemNugget extends ItemFood { - - public ItemNugget(int p_i45340_1_, boolean p_i45340_2_) { - super(p_i45340_1_, p_i45340_2_); - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if (this == ModItems.gun_moist_nugget) { - list.add("A Mosin-Na...no wait, it's"); - list.add("just a moist nugget."); - } - } - -} diff --git a/src/main/java/com/hbm/items/food/ItemPancake.java b/src/main/java/com/hbm/items/food/ItemPancake.java index f3bbc368d..2498e393c 100644 --- a/src/main/java/com/hbm/items/food/ItemPancake.java +++ b/src/main/java/com/hbm/items/food/ItemPancake.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; @@ -30,7 +30,7 @@ public class ItemPancake extends ItemFood { continue; if(st.getItem() instanceof IBatteryItem) { - ((IBatteryItem)st.getItem()).setCharge(st, ((IBatteryItem)st.getItem()).getMaxCharge()); + ((IBatteryItem)st.getItem()).setCharge(st, ((IBatteryItem)st.getItem()).getMaxCharge(st)); } } } diff --git a/src/main/java/com/hbm/items/machine/ItemArcElectrode.java b/src/main/java/com/hbm/items/machine/ItemArcElectrode.java new file mode 100644 index 000000000..70aa58ac6 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemArcElectrode.java @@ -0,0 +1,60 @@ +package com.hbm.items.machine; + +import com.hbm.items.ItemEnumMulti; +import com.hbm.util.EnumUtil; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class ItemArcElectrode extends ItemEnumMulti { + + public ItemArcElectrode() { + super(EnumElectrodeType.class, true, true); + this.setFull3D(); + this.setMaxStackSize(1); + } + + public static int getDurability(ItemStack stack) { + if(!stack.hasTagCompound()) return 0; + return stack.stackTagCompound.getInteger("durability"); + } + + public static boolean damage(ItemStack stack) { + if(!stack.hasTagCompound()) { + stack.stackTagCompound = new NBTTagCompound(); + } + + int durability = stack.stackTagCompound.getInteger("durability"); + durability++; + stack.stackTagCompound.setInteger("durability", durability); + return durability >= getMaxDurability(stack); + } + + public static int getMaxDurability(ItemStack stack) { + EnumElectrodeType num = EnumUtil.grabEnumSafely(EnumElectrodeType.class, stack.getItemDamage()); + return num.durability; + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return getDurabilityForDisplay(stack) > 0D; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return (double) getDurability(stack) / (double) getMaxDurability(stack); + } + + public static enum EnumElectrodeType { + GRAPHITE( 10), + LANTHANIUM( 100), + DESH( 500), + SATURNITE( 1500); + + public int durability; + + private EnumElectrodeType(int dura) { + this.durability = dura; + } + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemArcElectrodeBurnt.java b/src/main/java/com/hbm/items/machine/ItemArcElectrodeBurnt.java new file mode 100644 index 000000000..dc7c3dc3e --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemArcElectrodeBurnt.java @@ -0,0 +1,12 @@ +package com.hbm.items.machine; + +import com.hbm.items.ItemEnumMulti; +import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType; + +public class ItemArcElectrodeBurnt extends ItemEnumMulti { + + public ItemArcElectrodeBurnt() { + super(EnumElectrodeType.class, true, true); + this.setFull3D(); + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index 6c338eec9..d3e58e448 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -7,6 +7,7 @@ import java.util.List; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.AssemblerRecipes; +import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; @@ -37,8 +38,9 @@ public class ItemAssemblyTemplate extends Item { public IIcon getIconFromDamage(int meta) { ComparableStack stack = AssemblerRecipes.recipeList.get(meta); + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(stack); - if(AssemblerRecipes.hidden.get(stack) != null) + if(recipe != null && !recipe.folders.contains(ModItems.template_folder)) return this.hiddenIcon; return this.itemIcon; @@ -52,7 +54,9 @@ public class ItemAssemblyTemplate extends Item { //LEGACY if(out == null) out = AssemblerRecipes.recipeList.get(stack.getItemDamage()); - if(AssemblerRecipes.hidden.get(out) != null) + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(stack); + + if(recipe != null && !recipe.folders.contains(ModItems.template_folder)) return this.hiddenIcon; return this.itemIcon; @@ -106,7 +110,7 @@ public class ItemAssemblyTemplate extends Item { return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET; } - String s1 = ("" + StatCollector.translateToLocal(out.getUnlocalizedName() + ".name")).trim(); + String s1 = out.getDisplayName().trim(); if(s1 != null) { s = s + " " + s1; @@ -144,12 +148,11 @@ public class ItemAssemblyTemplate extends Item { ComparableStack out = readType(stack); //LEGACY if(out == null) out = AssemblerRecipes.recipeList.get(i); - Integer time = AssemblerRecipes.time.get(out); - - if(time != null) - return time; - else - return 100; + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(out); + + if(recipe != null) return recipe.time; + + return 100; } @Override @@ -174,7 +177,14 @@ public class ItemAssemblyTemplate extends Item { out = AssemblerRecipes.recipeList.get(i); nbtType = false; } - HashSet folders = AssemblerRecipes.hidden.get(out); + + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(out); + if(recipe == null) { + list.add("I AM ERROR"); + return; + } + + HashSet folders = recipe.folders; if(folders == null) folders = new HashSet() { @@ -206,7 +216,7 @@ public class ItemAssemblyTemplate extends Item { return; } - Object[] in = AssemblerRecipes.recipes.get(out); + Object[] in = recipe.ingredients; if(in == null) { list.add("I AM ERROR"); diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index 4f0fda9a7..fe31ec3b9 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.items.ModItems; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; @@ -105,14 +105,17 @@ public class ItemBattery extends Item implements IBatteryItem { return 0; } - public long getMaxCharge() { + @Override + public long getMaxCharge(ItemStack stack) { return maxCharge; } + @Override public long getChargeRate() { return chargeRate; } + @Override public long getDischargeRate() { return dischargeRate; } @@ -134,7 +137,7 @@ public class ItemBattery extends Item implements IBatteryItem { if(item instanceof ItemBattery) { ItemStack stack = new ItemStack(item); stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ItemBattery) item).getMaxCharge()); + stack.stackTagCompound.setLong("charge", ((ItemBattery) item).getMaxCharge(stack)); return stack.copy(); } @@ -146,7 +149,7 @@ public class ItemBattery extends Item implements IBatteryItem { } public double getDurabilityForDisplay(ItemStack stack) { - return 1D - (double) getCharge(stack) / (double) getMaxCharge(); + return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemCanister.java b/src/main/java/com/hbm/items/machine/ItemCanister.java index b1393db87..fb792f532 100644 --- a/src/main/java/com/hbm/items/machine/ItemCanister.java +++ b/src/main/java/com/hbm/items/machine/ItemCanister.java @@ -40,7 +40,7 @@ public class ItemCanister extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/machine/ItemCapacitor.java b/src/main/java/com/hbm/items/machine/ItemCapacitor.java index 57ee26b2c..2d2147615 100644 --- a/src/main/java/com/hbm/items/machine/ItemCapacitor.java +++ b/src/main/java/com/hbm/items/machine/ItemCapacitor.java @@ -8,15 +8,13 @@ import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class ItemCapacitor extends Item { - private int dura; public ItemCapacitor(int dura) { - this.dura = dura; + this.setMaxDamage(dura); } @Override @@ -24,11 +22,7 @@ public class ItemCapacitor extends Item { if (this == ModItems.redcoil_capacitor) { list.add("Right-click a block to negate positive charge."); list.add("[Needed for Schrabidium Synthesis]"); - list.add(getDura(itemstack) + "/" + dura); - } - if (this == ModItems.titanium_filter) { - list.add("[Needed for Watz Reaction]"); - list.add((getDura(itemstack) / 20) + "/" + (dura / 20)); + list.add((itemstack.getMaxDamage() - itemstack.getItemDamage()) + "/" + itemstack.getMaxDamage()); } } @@ -39,9 +33,9 @@ public class ItemCapacitor extends Item { if (!player.isSneaking()) { - if (getDura(stack) < dura) { + if(stack.getItemDamage() > 0) { - setDura(stack, getDura(stack) + 1); + stack.setItemDamage(stack.getItemDamage() - 1); if (!world.isRemote) { world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 2.5F, true); @@ -55,29 +49,4 @@ public class ItemCapacitor extends Item { return false; } - - public boolean showDurabilityBar(ItemStack stack) { - return getDurabilityForDisplay(stack) > 0; - } - - public static int getDura(ItemStack stack) { - - if(stack.stackTagCompound == null) - return ((ItemCapacitor)stack.getItem()).dura; - - return stack.stackTagCompound.getInteger("dura"); - } - - public static void setDura(ItemStack stack, int dura) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setInteger("dura", dura); - } - - public double getDurabilityForDisplay(ItemStack stack) - { - return 1D - (double)getDura(stack) / (double)dura; - } } diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index 432141d9d..b063ce516 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -9,7 +9,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.resources.I18n; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -76,7 +75,7 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.outputFluids[i] != null) { int p = recipe.outputFluids[i].pressure; - list.add(recipe.outputFluids[i].fill + "mB " + I18n.format(recipe.outputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); + list.add(recipe.outputFluids[i].fill + "mB " + recipe.outputFluids[i].type.getLocalizedName() + (p != 0 ? (" at " + p + "PU") : "")); } } @@ -91,7 +90,7 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.inputFluids[i] != null) { int p = recipe.inputFluids[i].pressure; - list.add(recipe.inputFluids[i].fill + "mB " + I18n.format(recipe.inputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); + list.add(recipe.inputFluids[i].fill + "mB " + recipe.inputFluids[i].type.getLocalizedName() + (p != 0 ? (" at " + p + "PU") : "")); } } diff --git a/src/main/java/com/hbm/items/machine/ItemCircuit.java b/src/main/java/com/hbm/items/machine/ItemCircuit.java new file mode 100644 index 000000000..948686b39 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemCircuit.java @@ -0,0 +1,89 @@ +package com.hbm.items.machine; + +import java.util.List; + +import com.hbm.items.ItemEnumMulti; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemCircuit extends ItemEnumMulti { + + public ItemCircuit() { + super(EnumCircuitType.class, true, true); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + list.add(new ItemStack(item, 1, EnumCircuitType.VACUUM_TUBE.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CAPACITOR.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CAPACITOR_TANTALIUM.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.ATOMIC_CLOCK.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.PCB.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.SILICON.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CHIP.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CHIP_BISMOID.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CHIP_QUANTUM.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.ANALOG.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.BASIC.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.ADVANCED.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CAPACITOR_BOARD.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.BISMOID.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.QUANTUM.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CONTROLLER_CHASSIS.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CONTROLLER.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CONTROLLER_ADVANCED.ordinal())); + list.add(new ItemStack(item, 1, EnumCircuitType.CONTROLLER_QUANTUM.ordinal())); + } + + public static enum EnumCircuitType { + VACUUM_TUBE, + CAPACITOR, + CAPACITOR_TANTALIUM, + PCB, + SILICON, + CHIP, + CHIP_BISMOID, + ANALOG, + BASIC, + ADVANCED, + CAPACITOR_BOARD, + BISMOID, + CONTROLLER_CHASSIS, + CONTROLLER, + CONTROLLER_ADVANCED, + QUANTUM, + CHIP_QUANTUM, + CONTROLLER_QUANTUM, + ATOMIC_CLOCK, + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + /*List lines = new ArrayList(); + + switch(stack.getItemDamage()) { + case 0: lines.add("We taught this filament how to think."); break; + case 1: lines.add("3300µF"); break; + case 2: lines.add("Sorry, we were out of flux capacitors, this is a regular one."); break; + case 3: lines.add("Laminated Sandwich Structure™"); break; + case 4: lines.add("Microscopic arcane sigils have given this rock anima."); break; + case 5: lines.add("Less tasty than it sounds."); break; + case 6: lines.add("The ALU is probably wired together correctly. Probably."); break; + case 7: lines.add("One final act of goodwill."); lines.add("If I have to hear the words \"Interplay\" or"); lines.add("\"objectively better\" one more time I'll blow"); lines.add("up Chris Avellone with a bazooka."); break; + case 8: lines.add("100% lead solder (not RoHS compliant)"); break; + case 9: lines.add("It's red, that means it's better."); break; + case 10: lines.add("Uses that exceptionally stanky 90s yellow PCB."); break; + case 11: lines.add("Can do up to three different things (instead of two)!"); break; + } + + for(String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + }*/ + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java index b366e39ea..e6153e1f5 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java @@ -1,12 +1,9 @@ package com.hbm.items.machine; -import java.util.List; - import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.tileentity.network.TileEntityPipeBaseNT; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -19,6 +16,8 @@ import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import java.util.List; + public class ItemFluidDuct extends Item { IIcon overlayIcon; @@ -41,7 +40,7 @@ public class ItemFluidDuct extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; @@ -111,7 +110,7 @@ public class ItemFluidDuct extends Item { ++x; } - if(!world.isAirBlock(x, y, z)) { + if(!world.getBlock(x, y, z).isReplaceable(world, x, y, z)) { return false; } } @@ -125,8 +124,8 @@ public class ItemFluidDuct extends Item { if(world.getTileEntity(x, y, z) instanceof TileEntityPipeBaseNT) { ((TileEntityPipeBaseNT) world.getTileEntity(x, y, z)).setType(Fluids.fromID(stack.getItemDamage())); } - - world.playSoundEffect(x, y, z, "hbm:block.pipePlaced", 1.0F, 0.65F + world.rand.nextFloat() * 0.2F); + + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, ModBlocks.fluid_duct_neo.stepSound.func_150496_b(), (ModBlocks.fluid_duct_neo.stepSound.getVolume() + 1.0F) / 2.0F, ModBlocks.fluid_duct_neo.stepSound.getPitch() * 0.8F); return true; } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java index 43ad52bcb..85af4ab67 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java @@ -1,8 +1,6 @@ package com.hbm.items.machine; -import java.util.Arrays; import java.util.List; -import java.util.Objects; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -10,27 +8,22 @@ import com.hbm.inventory.gui.GUIScreenFluid; import com.hbm.items.IItemControlReceiver; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.util.ChatBuilder; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IItemControlReceiver, IGUIProvider { @@ -45,7 +38,7 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte setType(stack, secondary, true); setType(stack, primary, false); world.playSoundAtEntity(player, "random.orb", 0.25F, 1.25F); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.startTranslation(secondary.getUnlocalizedName()).flush(), /*MainRegistry.proxy.ID_DETONATOR*/ 7, 3000), (EntityPlayerMP) player); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.startTranslation(secondary.getConditionalName()).flush(), /*MainRegistry.proxy.ID_DETONATOR*/ 7, 3000), (EntityPlayerMP) player); } if(world.isRemote && player.isSneaking()) { @@ -68,9 +61,9 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info")); - list.add(" " + I18n.format(getType(stack, true).getUnlocalizedName())); + list.add(" " + getType(stack, true).getLocalizedName()); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info2")); - list.add(" " + I18n.format(getType(stack, false).getUnlocalizedName())); + list.add(" " + getType(stack, false).getLocalizedName()); } @Override @@ -148,80 +141,6 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte int type = stack.stackTagCompound.getInteger("fluid" + (primary ? 1 : 2)); return Fluids.fromID(type); } - - /* - * CRAPPY COMPAT SECTION - */ - - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) { - TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityFluidDuctSimple) { - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - if(!world.isRemote) { - FluidType type = getType(world, x, y ,z, stack); - - if (player.isSneaking()) { - markDuctsRecursively(world, x, y, z, type); - } else { - duct.setType(type); - } - } - - world.markBlockForUpdate(x, y, z); - - player.swingItem(); - return true; - } - return false; - } - - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type) { - markDuctsRecursively(world, x, y, z, type, 64); - } - - @Deprecated - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type, int maxRecursion) { - TileEntity start = world.getTileEntity(x, y, z); - - if (!(start instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple startDuct = (TileEntityFluidDuctSimple) start; - FluidType oldType = startDuct.getType(); - - if (oldType == type) - return; // prevent infinite loops - - startDuct.setType(type); - - directionLoop: for (ForgeDirection direction : ForgeDirection.values()) { - for (int currentRecursion = 1; currentRecursion <= maxRecursion; currentRecursion++) { - - int nextX = x + direction.offsetX * currentRecursion; - int nextY = y + direction.offsetY * currentRecursion; - int nextZ = z + direction.offsetZ * currentRecursion; - - TileEntity te = world.getTileEntity(nextX, nextY, nextZ); - if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) { - - TileEntityFluidDuctSimple nextDuct = (TileEntityFluidDuctSimple) te; - long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count(); // (o -> Objects.nonNull(o)) - - if (connectionsCount > 1) { - markDuctsRecursively(world, nextX, nextY, nextZ, type, maxRecursion - currentRecursion); - continue directionLoop; - } else { - nextDuct.setType(type); - } - } else { - break; - } - } - } - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -230,7 +149,7 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIScreenFluid(player); } } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java index 1e121dd96..358d498d8 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java @@ -82,7 +82,7 @@ public class ItemFluidIcon extends Item { @Override public String getItemStackDisplayName(ItemStack stack) { - String s = (StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s = (StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s != null) { return s; diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java index fcb336edc..5abea5f30 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java @@ -1,28 +1,22 @@ package com.hbm.items.machine; -import java.util.Arrays; import java.util.List; -import java.util.Objects; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.client.resources.I18n; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { @@ -65,7 +59,7 @@ public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name"))); list.add(""); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info")); - list.add(" " + I18n.format(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())); + list.add(" " + Fluids.fromID(stack.getItemDamage()).getLocalizedName()); list.add(""); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".usage0")); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".usage1")); @@ -89,75 +83,6 @@ public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { return true; } - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) { - TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityFluidDuctSimple) { - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - if(!world.isRemote) { - FluidType type = Fluids.fromID(stack.getItemDamage()); - - if (player.isSneaking()) { - markDuctsRecursively(world, x, y, z, type); - } else { - duct.setType(type); - } - } - - world.markBlockForUpdate(x, y, z); - - player.swingItem(); - } - return false; - } - - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type) { - markDuctsRecursively(world, x, y, z, type, 64); - } - - @Deprecated - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type, int maxRecursion) { - TileEntity start = world.getTileEntity(x, y, z); - - if (!(start instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple startDuct = (TileEntityFluidDuctSimple) start; - FluidType oldType = startDuct.getType(); - - if (oldType == type) - return; // prevent infinite loops - - startDuct.setType(type); - - directionLoop: for (ForgeDirection direction : ForgeDirection.values()) { - for (int currentRecursion = 1; currentRecursion <= maxRecursion; currentRecursion++) { - - int nextX = x + direction.offsetX * currentRecursion; - int nextY = y + direction.offsetY * currentRecursion; - int nextZ = z + direction.offsetZ * currentRecursion; - - TileEntity te = world.getTileEntity(nextX, nextY, nextZ); - if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) { - - TileEntityFluidDuctSimple nextDuct = (TileEntityFluidDuctSimple) te; - long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count(); // (o -> Objects.nonNull(o)) - - if (connectionsCount > 1) { - markDuctsRecursively(world, nextX, nextY, nextZ, type, maxRecursion - currentRecursion); - continue directionLoop; - } else { - nextDuct.setType(type); - } - } else { - break; - } - } - } - } - @Override @SideOnly(Side.CLIENT) public boolean requiresMultipleRenderPasses() { diff --git a/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java b/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java new file mode 100644 index 000000000..2a7fc95ce --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemFluidSiphon.java @@ -0,0 +1,96 @@ +package com.hbm.items.machine; + +import com.hbm.util.CompatExternal; + +import com.hbm.inventory.FluidContainer; +import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Unsiphonable; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemPipette; + +import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.fluid.IFluidStandardTransceiver; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class ItemFluidSiphon extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { + TileEntity te = CompatExternal.getCoreFromPos(world, x, y, z); + + if(te != null && (te instanceof IFluidStandardReceiver || te instanceof IFluidStandardTransceiver)) { + FluidTank[] tanks; + if (te instanceof IFluidStandardReceiver) { + tanks = ((IFluidStandardReceiver) te).getReceivingTanks(); + } else { + tanks = ((IFluidStandardTransceiver) te).getReceivingTanks(); + } + + boolean hasDrainedTank = false; + + // We need to iterate through the inventory for _each_ siphonable tank, so we can handle fluids that can only go into certain containers + // After we successfully siphon any fluid from a tank, we stop further processing, multiple fluid types require multiple clicks + for (FluidTank tank : tanks) { + if (tank.getFill() <= 0) continue; + + ItemStack availablePipette = null; + FluidType tankType = tank.getTankType(); + + if (tankType.hasTrait(FT_Unsiphonable.class)) continue; + + for (int j = 0; j < player.inventory.mainInventory.length; j++) { + ItemStack inventoryStack = player.inventory.mainInventory[j]; + if (inventoryStack == null) continue; + + FluidContainer container = FluidContainerRegistry.getContainer(tankType, inventoryStack); + + if (availablePipette == null && inventoryStack.getItem() instanceof ItemPipette) { + ItemPipette pipette = (ItemPipette) inventoryStack.getItem(); + if (!pipette.willFizzle(tankType) && pipette != ModItems.pipette_laboratory) { // Ignoring laboratory pipettes for now + availablePipette = inventoryStack; + } + } + + if (container == null) continue; + + ItemStack full = FluidContainerRegistry.getFullContainer(inventoryStack, tankType); + + while (tank.getFill() >= container.content && inventoryStack.stackSize > 0) { + hasDrainedTank = true; + + inventoryStack.stackSize--; + if (inventoryStack.stackSize <= 0) { + player.inventory.mainInventory[j] = null; + } + + ItemStack filledContainer = full.copy(); + tank.setFill(tank.getFill() - container.content); + player.inventory.addItemStackToInventory(filledContainer); + } + } + + // If the remainder of the tank can only fit into a pipette, fill a pipette with the remainder + // Will not auto-fill fizzlable pipettes, there is no feedback for the fizzle in this case, and that's a touch too unfair + if (availablePipette != null && tank.getFill() < 1000) { + ItemPipette pipette = (ItemPipette) availablePipette.getItem(); + + if (pipette.acceptsFluid(tankType, availablePipette)) { + hasDrainedTank = true; + tank.setFill(pipette.tryFill(tankType, tank.getFill(), availablePipette)); + } + } + + if (hasDrainedTank) return true; + } + } + + return false; + } + +} diff --git a/src/main/java/com/hbm/items/machine/ItemFluidTank.java b/src/main/java/com/hbm/items/machine/ItemFluidTank.java index 437554375..ce7a2cd0d 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidTank.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidTank.java @@ -15,7 +15,7 @@ import net.minecraft.util.StatCollector; public class ItemFluidTank extends Item { - IIcon overlayIcon; + protected IIcon overlayIcon; public ItemFluidTank() { this.setHasSubtypes(true); @@ -48,7 +48,7 @@ public class ItemFluidTank extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/machine/ItemGasTank.java b/src/main/java/com/hbm/items/machine/ItemGasTank.java index 11a20554a..0fe7cf03e 100644 --- a/src/main/java/com/hbm/items/machine/ItemGasTank.java +++ b/src/main/java/com/hbm/items/machine/ItemGasTank.java @@ -42,7 +42,7 @@ public class ItemGasTank extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/machine/ItemICFPellet.java b/src/main/java/com/hbm/items/machine/ItemICFPellet.java new file mode 100644 index 000000000..5cbc88ff0 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemICFPellet.java @@ -0,0 +1,192 @@ +package com.hbm.items.machine; + +import java.util.HashMap; +import java.util.List; +import java.util.Locale; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.util.BobMathUtil; +import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; + +public class ItemICFPellet extends Item { + + protected IIcon iconBG; + + public static enum EnumICFFuel { + + HYDROGEN( 0x4040FF, 1.00D, 0.85D, 1.00D), + DEUTERIUM( 0x2828CB, 1.25D, 1.00D, 1.00D), + TRITIUM( 0x000092, 1.50D, 1.00D, 1.05D), + HELIUM3( 0xFFF09F, 1.75D, 1.00D, 1.25D), + HELIUM4( 0xFF9B60, 2.00D, 1.00D, 1.50D), + LITHIUM( 0xE9E9E9, 1.25D, 0.85D, 2.00D), + BERYLLIUM( 0xA79D80, 2.00D, 1.00D, 2.50D), + BORON( 0x697F89, 3.00D, 0.50D, 3.50D), + CARBON( 0x454545, 2.00D, 1.00D, 5.00D), + OXYGEN( 0xB4E2FF, 1.25D, 1.50D, 7.50D), + SODIUM( 0xDFE4E7, 3.00D, 0.75D, 8.75D), + //aluminium, silicon, phosphorus + CHLORINE( 0xDAE598, 2.50D, 1.00D, 10.0D), + CALCIUM( 0xD2C7A9, 3.00D, 1.00D, 12.5D), + //titanium + ; + + public int color; + public double reactionMult; + public double depletionSpeed; + public double fusingDifficulty; + + private EnumICFFuel(int color, double react, double depl, double laser) { + this.color = color; + this.reactionMult = react; + this.depletionSpeed = depl; + this.fusingDifficulty = laser; + } + } + + public static HashMap fluidMap = new HashMap(); + public static HashMap materialMap = new HashMap(); + + public static void init() { + if(!fluidMap.isEmpty() && !materialMap.isEmpty()) return; + fluidMap.put(Fluids.HYDROGEN, EnumICFFuel.HYDROGEN); + fluidMap.put(Fluids.DEUTERIUM, EnumICFFuel.DEUTERIUM); + fluidMap.put(Fluids.TRITIUM, EnumICFFuel.TRITIUM); + fluidMap.put(Fluids.HELIUM3, EnumICFFuel.HELIUM3); + fluidMap.put(Fluids.HELIUM4, EnumICFFuel.HELIUM4); + materialMap.put(Mats.MAT_LITHIUM, EnumICFFuel.LITHIUM); + materialMap.put(Mats.MAT_BERYLLIUM, EnumICFFuel.BERYLLIUM); + materialMap.put(Mats.MAT_BORON, EnumICFFuel.BORON); + materialMap.put(Mats.MAT_GRAPHITE, EnumICFFuel.CARBON); + fluidMap.put(Fluids.OXYGEN, EnumICFFuel.OXYGEN); + materialMap.put(Mats.MAT_SODIUM, EnumICFFuel.SODIUM); + fluidMap.put(Fluids.CHLORINE, EnumICFFuel.CHLORINE); + materialMap.put(Mats.MAT_CALCIUM, EnumICFFuel.CALCIUM); + } + + public ItemICFPellet() { + this.setMaxStackSize(1); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + list.add(this.setup(EnumICFFuel.DEUTERIUM, EnumICFFuel.TRITIUM, false)); + list.add(this.setup(EnumICFFuel.HELIUM3, EnumICFFuel.HELIUM4, false)); + list.add(this.setup(EnumICFFuel.LITHIUM, EnumICFFuel.OXYGEN, false)); + list.add(this.setup(EnumICFFuel.SODIUM, EnumICFFuel.CHLORINE, true)); + list.add(this.setup(EnumICFFuel.BERYLLIUM, EnumICFFuel.CALCIUM, true)); + } + + public static long getMaxDepletion(ItemStack stack) { + long base = 50_000_000_000L; + base /= getType(stack, true).depletionSpeed; + base /= getType(stack, false).depletionSpeed; + return base; + } + + public static long getFusingDifficulty(ItemStack stack) { + long base = 10_000_000L; + base *= getType(stack, true).fusingDifficulty * getType(stack, false).fusingDifficulty; + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("muon")) base /= 4; + return base; + } + + public static long getDepletion(ItemStack stack) { + if(!stack.hasTagCompound()) return 0L; + return stack.stackTagCompound.getLong("depletion"); + } + + public static long react(ItemStack stack, long heat) { + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("depletion", stack.stackTagCompound.getLong("depletion") + heat); + return (long) (heat * getType(stack, true).reactionMult * getType(stack, false).reactionMult); + } + + public static ItemStack setup(EnumICFFuel type1, EnumICFFuel type2, boolean muon) { + return setup(new ItemStack(ModItems.icf_pellet), type1, type2, muon); + } + + public static ItemStack setup(ItemStack stack, EnumICFFuel type1, EnumICFFuel type2, boolean muon) { + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setByte("type1", (byte) type1.ordinal()); + stack.stackTagCompound.setByte("type2", (byte) type2.ordinal()); + stack.stackTagCompound.setBoolean("muon", muon); + return stack; + } + + public static EnumICFFuel getType(ItemStack stack, boolean first) { + if(!stack.hasTagCompound()) return first ? EnumICFFuel.DEUTERIUM : EnumICFFuel.TRITIUM; + return EnumUtil.grabEnumSafely(EnumICFFuel.class, stack.stackTagCompound.getByte("type" + (first ? 1 : 2))); + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return getDurabilityForDisplay(stack) > 0D; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return (double) getDepletion(stack) / (double) getMaxDepletion(stack); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + super.registerIcons(reg); + this.iconBG = reg.registerIcon(RefStrings.MODID + ":icf_pellet_bg"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + return pass == 1 ? super.getIconFromDamageForRenderPass(meta, pass) : this.iconBG; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + if(pass == 0) { + EnumICFFuel type1 = this.getType(stack, true); + EnumICFFuel type2 = this.getType(stack, false); + int r = (((type1.color & 0xff0000) >> 16) + ((type2.color & 0xff0000) >> 16)) / 2; + int g = (((type1.color & 0x00ff00) >> 8) + ((type2.color & 0x00ff00) >> 8)) / 2; + int b = ((type1.color & 0x0000ff) + (type2.color & 0x0000ff)) / 2; + return r << 16 | g << 8 | b; + } + return 0xffffff; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + boolean muon = stack.hasTagCompound() && stack.stackTagCompound.getBoolean("muon"); + list.add(EnumChatFormatting.GREEN + "Depletion: " + String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D) + "%"); + list.add(EnumChatFormatting.YELLOW + "Fuel: " + I18nUtil.resolveKey("icffuel." + getType(stack, true).name().toLowerCase(Locale.US)) + " / " + I18nUtil.resolveKey("icffuel." + getType(stack, false).name().toLowerCase(Locale.US))); + list.add(EnumChatFormatting.YELLOW + "Heat required: " + BobMathUtil.getShortNumber(this.getFusingDifficulty(stack)) + "TU"); + list.add(EnumChatFormatting.YELLOW + "Reactivity multiplier: x" + (int) (getType(stack, true).reactionMult * getType(stack, false).reactionMult * 100) / 100D); + if(muon) list.add(EnumChatFormatting.DARK_AQUA + "Muon catalyzed!"); + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java b/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java index 011b596b6..2223059ee 100644 --- a/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java +++ b/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.ModItems; import net.minecraft.item.Item; @@ -23,4 +24,5 @@ public class ItemInfiniteFluid extends Item { public FluidType getType() { return this.type; } public int getAmount() { return this.amount; } public int getChance() { return this.chance; } + public boolean allowPressure(int pressure) { return this == ModItems.fluid_barrel_infinite || pressure == 0; } } diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 1a04a4649..99619f968 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -3,8 +3,15 @@ package com.hbm.items.machine; import java.util.List; import com.hbm.items.ModItems; +import com.hbm.tileentity.IUpgradeInfoProvider; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -32,82 +39,22 @@ public class ItemMachineUpgrade extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - if(this.type == UpgradeType.SPEED) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Delay -" + (15 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Laser Miner:"); - list.add("Delay ÷" + (1 + this.tier) + " / Consumption +" + (625 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Electric Furnace:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (50 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Assembly Machine:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Chemical Plant:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (25 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Crystallizer:"); - list.add("Delay -" + (20 * this.tier) + "% / Consumption +" + (1000 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("Speed x" + (1 + this.tier)); - list.add(EnumChatFormatting.RED + "Flare Stack:"); - list.add("Speed x" + (1 + this.tier)); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Damage +" + (0.25 * (double)this.tier) + "dmg/t"); - } + GuiScreen open = Minecraft.getMinecraft().currentScreen; - if(this.type == UpgradeType.EFFECT) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Radius +" + this.tier + "m / Consumption +" + (80 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Crystallizer:"); - list.add("+" + (5 * this.tier) + "% chance of not consuming an item / Acid consumption +" + (1000 * this.tier) + "mB"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("-" + (100 - 100 / (this.tier + 1)) + "% chance of incrementing overheat counter"); - list.add(EnumChatFormatting.RED + "Flare Stack:"); - list.add("+" + (100 * this.tier / 3) + "% power production"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Range +" + (3 * this.tier) + "m"); - } - - if(this.type == UpgradeType.POWER) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Electric Furnace:"); - list.add("Consumption -" + (15 * this.tier) + "HE/t / Delay +" + (10 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Assembly Machine:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Chemical Plant:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Consumption -" + (25 * this.tier) + "% / Delay +" + (10 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("Consumption -" + (100 * this.tier) + "kHE/t"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Consumption -" + (150 * this.tier) + "HE/t"); - list.add("Consumption when firing -" + (1500 * this.tier) + "HE/t"); - } - - if(this == ModItems.upgrade_fortune_1) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +1 / Delay +15"); - } - - if(this == ModItems.upgrade_fortune_2) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +2 / Delay +30"); - } - - if(this == ModItems.upgrade_fortune_3) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +3 / Delay +45"); - } - - if(this.type == UpgradeType.AFTERBURN) { - list.add(EnumChatFormatting.RED + "Turbofan:"); - list.add("Production x" + (this.tier + 1) + " / Consumption x" + (this.tier + 2)); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Afterburn +" + (this.tier * 3) + "s"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Burn " + (this.tier * 10) + "mB of gas for " + (this.tier * 50) + "HE/t"); + if(open != null && open instanceof GuiContainer) { + GuiContainer guiContainer = (GuiContainer) open; + Container container = guiContainer.inventorySlots; + if(container.inventorySlots.size() > 0) { + Slot first = container.getSlot(0); + IInventory inv = (IInventory) first.inventory; + if(inv instanceof IUpgradeInfoProvider) { + IUpgradeInfoProvider provider = (IUpgradeInfoProvider) inv; + if(provider.canProvideInfo(this.type, this.tier, bool)) { + provider.provideInfo(this.type, this.tier, list, bool); + return; + } + } + } } if(this == ModItems.upgrade_radius) { diff --git a/src/main/java/com/hbm/items/machine/ItemMold.java b/src/main/java/com/hbm/items/machine/ItemMold.java index 6da8ca650..b92c60640 100644 --- a/src/main/java/com/hbm/items/machine/ItemMold.java +++ b/src/main/java/com/hbm/items/machine/ItemMold.java @@ -6,8 +6,10 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.material.Mats; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.NTMMaterial; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.util.I18nUtil; @@ -45,9 +47,10 @@ public class ItemMold extends Item { registerMold(new MoldShape( 1, S, "billet", MaterialShapes.BILLET)); registerMold(new MoldShape( 2, S, "ingot", MaterialShapes.INGOT)); registerMold(new MoldShape( 3, S, "plate", MaterialShapes.PLATE)); - registerMold(new MoldWire( 4, S, "wire")); - + registerMold(new MoldShape( 4, S, "wire", MaterialShapes.WIRE, 8)); + registerMold(new MoldShape( 19, S, "plate_cast", MaterialShapes.CASTPLATE)); + registerMold(new MoldShape( 20, S, "wire_dense", MaterialShapes.DENSEWIRE)); registerMold(new MoldMulti( 5, S, "blade", MaterialShapes.INGOT.q(3), Mats.MAT_TITANIUM, new ItemStack(ModItems.blade_titanium), @@ -65,25 +68,29 @@ public class ItemMold extends Item { Mats.MAT_TITANIUM, new ItemStack(ModItems.stamp_titanium_flat), Mats.MAT_OBSIDIAN, new ItemStack(ModItems.stamp_obsidian_flat))); - registerMold(new MoldMulti( 8, S, "hull_small", MaterialShapes.INGOT.q(2), - Mats.MAT_STEEL, new ItemStack(ModItems.hull_small_steel), - Mats.MAT_ALUMINIUM, new ItemStack(ModItems.hull_small_aluminium))); - - registerMold(new MoldMulti( 9, L, "hull_big", MaterialShapes.INGOT.q(6), - Mats.MAT_STEEL, new ItemStack(ModItems.hull_big_steel), - Mats.MAT_ALUMINIUM, new ItemStack(ModItems.hull_big_aluminium), - Mats.MAT_TITANIUM, new ItemStack(ModItems.hull_big_titanium))); + registerMold(new MoldShape( 8, S, "shell", MaterialShapes.SHELL)); + registerMold(new MoldShape( 9, S, "pipe", MaterialShapes.PIPE)); registerMold(new MoldShape( 10, L, "ingots", MaterialShapes.INGOT, 9)); registerMold(new MoldShape( 11, L, "plates", MaterialShapes.PLATE, 9)); + registerMold(new MoldShape( 21, L, "wires_dense", MaterialShapes.DENSEWIRE, 9)); registerMold(new MoldBlock( 12, L, "block", MaterialShapes.BLOCK)); registerMold(new MoldSingle( 13, L, "pipes", new ItemStack(ModItems.pipes_steel), Mats.MAT_STEEL, MaterialShapes.BLOCK.q(3))); - registerMold(new MoldSingle( 14, S, "c357", new ItemStack(ModItems.casing_357), Mats.MAT_COPPER, MaterialShapes.PLATE.q(1))); - registerMold(new MoldSingle( 15, S, "c44", new ItemStack(ModItems.casing_44), Mats.MAT_COPPER, MaterialShapes.PLATE.q(1))); - registerMold(new MoldSingle( 16, S, "c9", new ItemStack(ModItems.casing_9), Mats.MAT_COPPER, MaterialShapes.PLATE.q(1))); - registerMold(new MoldSingle( 17, S, "c50", new ItemStack(ModItems.casing_50), Mats.MAT_COPPER, MaterialShapes.PLATE.q(1))); - registerMold(new MoldSingle( 18, S, "cbuckshot", new ItemStack(ModItems.casing_buckshot), Mats.MAT_COPPER, MaterialShapes.PLATE.q(1))); + registerMold(new MoldMulti( 16, S, "c9", MaterialShapes.PLATE.q(1, 4), + Mats.MAT_GUNMETAL, DictFrame.fromOne(ModItems.casing, EnumCasingType.SMALL), + Mats.MAT_WEAPONSTEEL, DictFrame.fromOne(ModItems.casing, EnumCasingType.SMALL_STEEL))); + registerMold(new MoldMulti( 17, S, "c50", MaterialShapes.PLATE.q(1, 2), + Mats.MAT_GUNMETAL, DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE), + Mats.MAT_WEAPONSTEEL, DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE_STEEL))); + + registerMold(new MoldShape( 22, S, "barrel_light", MaterialShapes.LIGHTBARREL)); + registerMold(new MoldShape( 23, S, "barrel_heavy", MaterialShapes.HEAVYBARREL)); + registerMold(new MoldShape( 24, S, "receiver_light", MaterialShapes.LIGHTRECEIVER)); + registerMold(new MoldShape( 25, S, "receiver_heavy", MaterialShapes.HEAVYRECEIVER)); + registerMold(new MoldShape( 26, S, "mechanism", MaterialShapes.MECHANISM)); + registerMold(new MoldShape( 27, S, "stock", MaterialShapes.STOCK)); + registerMold(new MoldShape( 28, S, "grip", MaterialShapes.GRIP)); } public void registerMold(Mold mold) { @@ -178,6 +185,15 @@ public class ItemMold extends Item { String od = shape.name() + name; List ores = OreDictionary.getOres(od); if(!ores.isEmpty()) { + //prioritize NTM items + for(ItemStack ore : ores) { + if(Item.itemRegistry.getNameForObject(ore.getItem()).startsWith(RefStrings.MODID)) { + ItemStack copy = ore.copy(); + copy.stackSize = this.amount; + return copy; + } + } + //...then try whatever comes first ItemStack copy = ores.get(0).copy(); copy.stackSize = this.amount; return copy; @@ -216,36 +232,6 @@ public class ItemMold extends Item { } } - public class MoldWire extends Mold { - - public MoldWire(int id, int size, String name) { - super(id, size, name); - } - - @Override - public ItemStack getOutput(NTMMaterial mat) { - - if(mat == Mats.MAT_ALUMINIUM) return new ItemStack(ModItems.wire_aluminium, 8); - if(mat == Mats.MAT_ALLOY) return new ItemStack(ModItems.wire_advanced_alloy, 8); - if(mat == Mats.MAT_COPPER) return new ItemStack(ModItems.wire_copper, 8); - if(mat == Mats.MAT_GOLD) return new ItemStack(ModItems.wire_gold, 8); - if(mat == Mats.MAT_MAGTUNG) return new ItemStack(ModItems.wire_magnetized_tungsten, 8); - if(mat == Mats.MAT_MINGRADE) return new ItemStack(ModItems.wire_red_copper, 8); - if(mat == Mats.MAT_SCHRABIDIUM) return new ItemStack(ModItems.wire_schrabidium, 8); - if(mat == Mats.MAT_TUNGSTEN) return new ItemStack(ModItems.wire_tungsten, 8); - return null; - } - - @Override - public int getCost() { - return MaterialShapes.WIRE.q(8); - } - - @Override - public String getTitle() { - return I18nUtil.resolveKey("shape.wire") + " x8"; - } - } /* because why not */ public class MoldSingle extends Mold { diff --git a/src/main/java/com/hbm/items/machine/ItemMuffler.java b/src/main/java/com/hbm/items/machine/ItemMuffler.java new file mode 100644 index 000000000..915fd65d7 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemMuffler.java @@ -0,0 +1,31 @@ +package com.hbm.items.machine; + +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatExternal; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class ItemMuffler extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { + TileEntity te = CompatExternal.getCoreFromPos(world, x, y, z); + + if(te != null && te instanceof TileEntityMachineBase) { + TileEntityMachineBase tile = (TileEntityMachineBase) te; + if(!tile.muffled) { + tile.muffled = true; + world.playSoundAtEntity(player, "hbm:item.upgradePlug", 1.0F, 1.0F); + stack.stackSize--; + tile.markDirty(); + return true; + } + } + + return false; + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java new file mode 100644 index 000000000..b5cc90139 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -0,0 +1,64 @@ +package com.hbm.items.machine; + +import java.util.List; + +import com.hbm.items.ItemEnumMulti; +import com.hbm.util.EnumUtil; +import com.hbm.util.function.Function; +import com.hbm.util.function.Function.FunctionLogarithmic; +import com.hbm.util.function.Function.FunctionSqrt; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemPWRFuel extends ItemEnumMulti { + + public ItemPWRFuel() { + super(EnumPWRFuel.class, true, true); + } + + public static enum EnumPWRFuel { + MEU( 05.0D, new FunctionLogarithmic(20 * 30).withDiv(2_500)), + HEU233( 07.5D, new FunctionSqrt(25)), + HEU235( 07.5D, new FunctionSqrt(22.5)), + MEN( 07.5D, new FunctionLogarithmic(22.5 * 30).withDiv(2_500)), + HEN237( 07.5D, new FunctionSqrt(27.5)), + MOX( 07.5D, new FunctionLogarithmic(20 * 30).withDiv(2_500)), + MEP( 07.5D, new FunctionLogarithmic(22.5 * 30).withDiv(2_500)), + HEP239( 10.0D, new FunctionSqrt(22.5)), + HEP241( 10.0D, new FunctionSqrt(25)), + MEA( 07.5D, new FunctionLogarithmic(25 * 30).withDiv(2_500)), + HEA242( 10.0D, new FunctionSqrt(25)), + HES326( 12.5D, new FunctionSqrt(27.5)), + HES327( 12.5D, new FunctionSqrt(30)), + BFB_AM_MIX( 2.5D, new FunctionSqrt(15), 250_000_000), + BFB_PU241( 2.5D, new FunctionSqrt(15), 250_000_000); + + public double yield = 1_000_000_000; + public double heatEmission; + public Function function; + + private EnumPWRFuel(double heatEmission, Function function, double yield) { + this.heatEmission = heatEmission; + this.function = function; + } + + private EnumPWRFuel(double heatEmission, Function function) { + this(heatEmission, function, 1_000_000_000); + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + EnumPWRFuel num = EnumUtil.grabEnumSafely(EnumPWRFuel.class, stack.getItemDamage()); + + String color = EnumChatFormatting.GOLD + ""; + String reset = EnumChatFormatting.RESET + ""; + + list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); + list.add(color + "Reaction function: " + reset + num.function.getLabelForFuel()); + list.add(color + "Fuel type: " + reset + num.function.getDangerFromFuel()); + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKLid.java b/src/main/java/com/hbm/items/machine/ItemRBMKLid.java index 1c1490798..853fe918f 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKLid.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKLid.java @@ -2,9 +2,12 @@ package com.hbm.items.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.rbmk.RBMKBase; +import com.hbm.handler.neutron.NeutronNodeWorld; +import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKNeutronNode; import com.hbm.items.ModItems; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; +import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -37,7 +40,11 @@ public class ItemRBMKLid extends Item { if(tile.hasLid()) return false; - + + RBMKNeutronNode node = (RBMKNeutronNode) NeutronNodeWorld.getNode(new BlockPos(te)); + if (node != null) + node.addLid(); + int meta = RBMKBase.DIR_NORMAL_LID.ordinal(); if(this == ModItems.rbmk_lid_glass) { diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 01c83055c..d02a393d2 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -1,6 +1,9 @@ package com.hbm.items.machine; import java.util.List; +import java.util.Locale; +import java.util.function.BiFunction; +import java.util.function.Function; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -13,6 +16,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class ItemRBMKRod extends Item { @@ -240,7 +244,7 @@ public class ItemRBMKRod extends Item { } /** - * @param reactivity [0;100] ...or at least those are sane levels + * @param enrichment [0;100] ...or at least those are sane levels * @return the amount of reactivity yielded, unmodified by xenon */ public double reactivityFunc(double in, double enrichment) { @@ -275,7 +279,7 @@ public class ItemRBMKRod extends Item { break; case ARCH: function = "(%1$s - %1$s² / 10000) / 100 * %2$s [0;∞]"; break; - case SIGMOID: function = "%2$s / (1 + e^(-(%1$s - 50) / 10)"; + case SIGMOID: function = "%2$s / (1 + e^(-(%1$s - 50) / 10))"; break; case SQUARE_ROOT: function = "sqrt(%1$s) * %2$s / 10"; break; @@ -295,10 +299,10 @@ public class ItemRBMKRod extends Item { String reactivity = EnumChatFormatting.YELLOW + "" + ((int)(this.reactivity * enrichment * 1000D) / 1000D) + EnumChatFormatting.WHITE; String enrichmentPer = EnumChatFormatting.GOLD + " (" + ((int)(enrichment * 1000D) / 10D) + "%)"; - return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity).concat(enrichmentPer); + return String.format(Locale.US, function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity).concat(enrichmentPer); } - return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity); + return String.format(Locale.US, function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity); } public static enum EnumDepleteFunc { @@ -354,7 +358,55 @@ public class ItemRBMKRod extends Item { public static double getPoisonLevel(ItemStack stack) { return getPoison(stack) / 100D; } - + + // START Special flux curve handling! + // Nothing really uses this yet, though it's a really fun feature to play around with. + + // For the RBMK handler to see if the rod is special. + public boolean specialFluxCurve = false; + + public ItemRBMKRod setFluxCurve(boolean bool) { + specialFluxCurve = bool; + return this; + } + + /** Double 1: Flux ratio in. + * Double 2: Depletion value. + * Return double: Output flux ratio. + **/ + BiFunction ratioCurve; + + /** Double 1: Flux quantity in.
+ * Double 2: Flux ratio in.
+ * Return double: Output flux quantity. + **/ + BiFunction fluxCurve; + + public ItemRBMKRod setOutputRatioCurve(Function func) { + this.ratioCurve = (fluxRatioIn, depletion) -> func.apply(fluxRatioIn) * 1.0D; + return this; + } + + public ItemRBMKRod setDepletionOutputRatioCurve(BiFunction func) { + this.ratioCurve = func; + return this; + } + + public ItemRBMKRod setOutputFluxCurve(BiFunction func) { + this.fluxCurve = func; + return this; + } + + public double fluxRatioOut(double fluxRatioIn, double depletion) { + return MathHelper.clamp_double(ratioCurve.apply(fluxRatioIn, depletion), 0, 1); + } + + public double fluxFromRatio(double quantity, double ratio) { + return fluxCurve.apply(quantity, ratio); + } + + // END Special flux curve handling. + @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { @@ -373,7 +425,7 @@ public class ItemRBMKRod extends Item { list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription(stack))); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.funcType", this.function.title)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.xenonGen", EnumChatFormatting.WHITE + "x * " + xGen)); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.xenonBurn", EnumChatFormatting.WHITE + "x² * " + xBurn)); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.xenonBurn", EnumChatFormatting.WHITE + "x² / " + xBurn)); list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("trait.rbmx.heat", heat + "°C")); list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("trait.rbmx.diffusion", diffusion + "¹/²")); list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("trait.rbmx.skinTemp", ((int)(getHullHeat(stack) * 10D) / 10D) + "m")); @@ -393,7 +445,7 @@ public class ItemRBMKRod extends Item { list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription(stack))); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.funcType", this.function.title)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.xenonGen", EnumChatFormatting.WHITE + "x * " + xGen)); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.xenonBurn", EnumChatFormatting.WHITE + "x² * " + xBurn)); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.xenonBurn", EnumChatFormatting.WHITE + "x² / " + xBurn)); list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("trait.rbmk.heat", heat + "°C")); list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("trait.rbmk.diffusion", diffusion + "¹/²")); list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("trait.rbmk.skinTemp", ((int)(getHullHeat(stack) * 10D) / 10D) + "°C")); diff --git a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java index 1cbdb729e..151a27f34 100644 --- a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java @@ -3,6 +3,7 @@ package com.hbm.items.machine; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import javax.annotation.CheckForNull; @@ -156,17 +157,17 @@ public class ItemRTGPellet extends Item { list.add(BobMathUtil.toPercentage(instance.getLifespan(stack), instance.getMaxLifespan())); if (bool) { list.add("EXTENDED INFO:"); - list.add(String.format("%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); + list.add(String.format(Locale.US, "%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); final String[] timeLeft = BobMathUtil.ticksToDate(instance.getLifespan(stack)); final String[] maxLife = BobMathUtil.ticksToDate(instance.getMaxLifespan()); - list.add(String.format("Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); - list.add(String.format("Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); + list.add(String.format(Locale.US, "Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); + list.add(String.format(Locale.US, "Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); } } } public String getData() { - return String.format("%s (%s HE/t) %s", I18nUtil.resolveKey(getUnlocalizedName().concat(".name")), getHeat(), (getDoesDecay() ? " (decays)" : "")); + return String.format(Locale.US, "%s (%s HE/t) %s", I18nUtil.resolveKey(getUnlocalizedName().concat(".name")), getHeat(), (getDoesDecay() ? " (decays)" : "")); } public static HashMap getRecipeMap() { diff --git a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java index d8b54f7fe..419f5401d 100644 --- a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java +++ b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -38,7 +38,7 @@ public class ItemSelfcharger extends Item implements IBatteryItem { } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return charge; } diff --git a/src/main/java/com/hbm/items/machine/ItemStamp.java b/src/main/java/com/hbm/items/machine/ItemStamp.java index fe6986d90..75ed425fa 100644 --- a/src/main/java/com/hbm/items/machine/ItemStamp.java +++ b/src/main/java/com/hbm/items/machine/ItemStamp.java @@ -10,19 +10,27 @@ import net.minecraft.item.ItemStack; public class ItemStamp extends Item { - public StampType type; + protected StampType type; public static final HashMap> stamps = new HashMap(); public ItemStamp(int dura, StampType type) { this.setMaxDamage(dura); this.type = type; + if(type != null) { + this.addStampToList(this, 0, type); + } + } + + protected void addStampToList(Item item, int meta, StampType type) { List list = stamps.get(type); if(list == null) list = new ArrayList(); - list.add(new ItemStack(this)); + ItemStack stack = new ItemStack(item, 1, meta); + + list.add(stack); stamps.put(type, list); } @@ -32,16 +40,27 @@ public class ItemStamp extends Item { list.add("[CREATED USING TEMPLATE FOLDER]"); } - //TODO: give UFFR one (1) good boy token + /** Params can't take an ItemStack, for some reason it crashes during init */ + public StampType getStampType(Item item, int meta) { + return type; + } + public static enum StampType { FLAT, PLATE, WIRE, CIRCUIT, - //DISC, C357, C44, C50, - C9; + C9, + PRINTING1, + PRINTING2, + PRINTING3, + PRINTING4, + PRINTING5, + PRINTING6, + PRINTING7, + PRINTING8; } } diff --git a/src/main/java/com/hbm/items/machine/ItemStampBook.java b/src/main/java/com/hbm/items/machine/ItemStampBook.java new file mode 100644 index 000000000..6fa9906f6 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemStampBook.java @@ -0,0 +1,42 @@ +package com.hbm.items.machine; + +import java.util.List; +import java.util.Locale; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemStampBook extends ItemStamp { + + public ItemStampBook() { + super(0, null); + + for(int i = 0; i < 8; i++) { + StampType type = getStampType(this, i); + this.addStampToList(this, i, type); + } + } + + @Override + public StampType getStampType(Item item, int meta) { + meta %= 8; + return StampType.values()[StampType.PRINTING1.ordinal() + meta]; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < 8; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + StampType type = this.getStampType(stack.getItem(), stack.getItemDamage()); + return super.getUnlocalizedName() + "." + type.name().toLowerCase(Locale.US); + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java b/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java index f25fd20df..a459e3fee 100644 --- a/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java +++ b/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java @@ -10,7 +10,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.Item; @@ -44,7 +43,7 @@ public class ItemTemplateFolder extends Item implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIScreenTemplateFolder(player); } } diff --git a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java index be5e0ad7f..8ed05aa4b 100644 --- a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java @@ -49,7 +49,7 @@ public class ItemWatzPellet extends ItemEnumMulti { NQD( 0x4B4B4B, 0x121212, 2_000, 20, 0.01D, new FunctionLinear(2D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null), NQR( 0x2D2D2D, 0x0B0B0B, 2_500, 30, 0.01D, new FunctionLinear(1.5D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null); - public double yield = 1_000_000_000; + public double yield = 500_000_000; public int colorLight; public int colorDark; public double mudContent; //how much mud per reaction flux should be produced @@ -64,7 +64,7 @@ public class ItemWatzPellet extends ItemEnumMulti { this.colorDark = colorDark; this.passive = passive; this.heatEmission = heatEmission; - this.mudContent = mudContent; + this.mudContent = mudContent / 2D; this.burnFunc = burnFunction; this.heatDiv = heatDivisor; this.absorbFunc = absorbFunction; @@ -139,7 +139,7 @@ public class ItemWatzPellet extends ItemEnumMulti { } if(num.heatEmission > 0) list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); if(num.burnFunc != null) { - list.add(color + "Reacton function: " + reset + num.burnFunc.getLabelForFuel()); + list.add(color + "Reaction function: " + reset + num.burnFunc.getLabelForFuel()); list.add(color + "Fuel type: " + reset + num.burnFunc.getDangerFromFuel()); } if(num.heatDiv != null) list.add(color + "Thermal multiplier: " + reset + num.heatDiv.getLabelForFuel() + " TU⁻¹"); diff --git a/src/main/java/com/hbm/items/special/ItemAntiCheat.java b/src/main/java/com/hbm/items/special/ItemAntiCheat.java deleted file mode 100644 index ddb62457f..000000000 --- a/src/main/java/com/hbm/items/special/ItemAntiCheat.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.hbm.items.special; - -import com.hbm.items.ItemCustomLore; - -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemAntiCheat extends ItemCustomLore { - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int j, boolean b) { - - /*if(stack.getItemDamage() != 34) { - - if(entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer)entity; - for(ItemStack s : player.inventory.mainInventory) { - player.inventory.consumeInventoryItem(ModItems.ingot_euphemium); - player.inventory.consumeInventoryItem(ModItems.nugget_euphemium); - } - } - - //entity.attackEntityFrom(ModDamageSource.cheater, Float.POSITIVE_INFINITY); - for(int i = 0; i < 100; i++) - entity.attackEntityFrom(ModDamageSource.cheater, 10000); - - //if(!world.isRemote) - // ExplosionChaos.antiCheat(world, (int)entity.posX, (int)entity.posY, (int)entity.posZ, 20); - }*/ - } - -} diff --git a/src/main/java/com/hbm/items/special/ItemAutogen.java b/src/main/java/com/hbm/items/special/ItemAutogen.java index 1e1f1d075..b828c9d2b 100644 --- a/src/main/java/com/hbm/items/special/ItemAutogen.java +++ b/src/main/java/com/hbm/items/special/ItemAutogen.java @@ -27,6 +27,7 @@ public class ItemAutogen extends Item { private HashMap textureOverrides = new HashMap(); private HashMap iconMap = new HashMap(); + private String overrideUnlocalizedName = null; public ItemAutogen(MaterialShapes shape) { this.setHasSubtypes(true); @@ -38,6 +39,10 @@ public class ItemAutogen extends Item { textureOverrides.put(mat, tex); return this; } + public ItemAutogen oun(String overrideUnlocalizedName) { + this.overrideUnlocalizedName = overrideUnlocalizedName; + return this; + } @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { @@ -47,7 +52,7 @@ public class ItemAutogen extends Item { TextureMap map = (TextureMap) reg; for(NTMMaterial mat : Mats.orderedList) { - if(!textureOverrides.containsKey(mat) && mat.solidColorLight != mat.solidColorDark && (shape == null || mat.shapes.contains(shape))) { //only generate icons if there is no override, color variation is available and if the icon will actually be used + if(!textureOverrides.containsKey(mat) && mat.solidColorLight != mat.solidColorDark && (shape == null || mat.autogen.contains(shape))) { //only generate icons if there is no override, color variation is available and if the icon will actually be used String placeholderName = this.getIconString() + "-" + mat.names[0]; //the part after the dash is discarded - the name only has to be unique so that the hashmap which holds all the icon definitions can hold multiple references TextureAtlasSpriteMutatable mutableIcon = new TextureAtlasSpriteMutatable(placeholderName, new RGBMutatorInterpolatedComponentRemap(0xFFFFFF, 0x505050, mat.solidColorLight, mat.solidColorDark)); map.setTextureEntry(placeholderName, mutableIcon); @@ -64,9 +69,9 @@ public class ItemAutogen extends Item { @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { - + for(NTMMaterial mat : Mats.orderedList) { - if(mat.shapes.contains(this.shape)) { + if(mat.autogen.contains(this.shape)) { list.add(new ItemStack(item, 1, mat.id)); } } @@ -117,4 +122,9 @@ public class ItemAutogen extends Item { String matName = StatCollector.translateToLocal(mat.getUnlocalizedName()); return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", matName); } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return overrideUnlocalizedName != null ? "item." + overrideUnlocalizedName : super.getUnlocalizedName(stack); + } } diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 9d12bade0..2dc6404f0 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -94,8 +94,12 @@ public class ItemBedrockOre extends ItemEnumMulti { TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products - THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products - CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON); //i guess? + THORIUM("Thorium232", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products + CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON), //i guess? + FLUORITE("Fluorite", 0xF6F3E7, B_SILICON, B_LITHIUM, B_ALUMINIUM), //different silicon-bearing gemstones, generic lithium, aluminium from sodium compound trailings + HEMATITE("Hematite", 0xA37B72, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite + MALACHITE("Malachite", 0x66B48C, B_SULFUR, B_SULFUR, B_SULFUR), //sulfur sulfur sulfur sulfur + NEODYMIUM("Neodymium", 0x8F8F5F, B_LITHIUM, B_SILICON, B_BISMUTH); //yeah whatever public String oreName; public int color; diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreBase.java b/src/main/java/com/hbm/items/special/ItemBedrockOreBase.java new file mode 100644 index 000000000..4204013b5 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreBase.java @@ -0,0 +1,57 @@ +package com.hbm.items.special; + +import java.util.List; +import java.util.Random; + +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; +import com.hbm.items.tool.ItemOreDensityScanner; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.StatCollector; +import net.minecraft.world.gen.NoiseGeneratorPerlin; + +public class ItemBedrockOreBase extends Item { + + public static double getOreAmount(ItemStack stack, BedrockOreType type) { + if(!stack.hasTagCompound()) return 0; + NBTTagCompound data = stack.getTagCompound(); + return data.getDouble(type.suffix); + } + + public static void setOreAmount(ItemStack stack, int x, int z) { + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + NBTTagCompound data = stack.getTagCompound(); + + for(BedrockOreType type : BedrockOreType.values()) { + data.setDouble(type.suffix, getOreLevel(x, z, type)); + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + for(BedrockOreType type : BedrockOreType.values()) { + double amount = this.getOreAmount(stack, type); + String typeName = StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name"); + list.add(typeName + ": " + ((int) (amount * 100)) / 100D + " (" + StatCollector.translateToLocalFormatted(ItemOreDensityScanner.translateDensity(amount)) + EnumChatFormatting.RESET + ")"); + } + } + + private static NoiseGeneratorPerlin[] ores = new NoiseGeneratorPerlin[BedrockOreType.values().length]; + private static NoiseGeneratorPerlin level; + + public static double getOreLevel(int x, int z, BedrockOreType type) { + + if(level == null) level = new NoiseGeneratorPerlin(new Random(2114043), 4); + if(ores[type.ordinal()] == null) ores[type.ordinal()] = new NoiseGeneratorPerlin(new Random(2082127 + type.ordinal()), 4); + + double scale = 0.01D; + + return MathHelper.clamp_double(Math.abs(level.func_151601_a(x * scale, z * scale) * ores[type.ordinal()].func_151601_a(x * scale, z * scale)) * 0.05, 0, 2); + } +} diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java new file mode 100644 index 000000000..dd46758f1 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java @@ -0,0 +1,250 @@ +package com.hbm.items.special; + +import static com.hbm.inventory.material.Mats.*; +import static com.hbm.items.special.ItemBedrockOreNew.ProcessingTrait.*; + +import java.util.List; +import java.util.Locale; + +import com.hbm.items.ModItems; +import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.NTMMaterial; +import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; +import com.hbm.lib.RefStrings; +import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; +import com.hbm.render.icon.TextureAtlasSpriteMutatable; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; + +public class ItemBedrockOreNew extends Item { + + public IIcon[] icons = new IIcon[BedrockOreType.values().length * BedrockOreGrade.values().length]; + public IIcon[] overlays = new IIcon[ProcessingTrait.values().length]; + + public ItemBedrockOreNew() { + this.setHasSubtypes(true); + this.setMaxDamage(0); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + + + if(reg instanceof TextureMap) { + TextureMap map = (TextureMap) reg; + + for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i]; + for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j]; + String placeholderName = RefStrings.MODID + ":bedrock_ore_" + grade.prefix + "_" + type.suffix + "-" + (i * BedrockOreType.values().length + j); + TextureAtlasSpriteMutatable mutableIcon = new TextureAtlasSpriteMutatable(placeholderName, new RGBMutatorInterpolatedComponentRemap(0xFFFFFF, 0x505050, type.light, type.dark)); + map.setTextureEntry(placeholderName, mutableIcon); + this.icons[i * BedrockOreType.values().length + j] = mutableIcon; + } + } + } + + for(int i = 0; i < overlays.length; i++) { + ProcessingTrait trait = ProcessingTrait.values()[i]; + overlays[i] = reg.registerIcon(RefStrings.MODID + ":bedrock_ore_overlay." + trait.name().toLowerCase(Locale.US)); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + + for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j]; + for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i]; + list.add(this.make(grade, type)); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int metadata) { + return 1 + this.getGrade(metadata).traits.length; + } + + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + if(pass == 0) return this.getIconFromDamage(meta); + return this.overlays[this.getGrade(meta).traits[pass - 1].ordinal()]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + int icon = this.getGrade(meta).ordinal() * BedrockOreType.values().length + this.getType(meta).ordinal(); + return icons[Math.abs(icon % icons.length)]; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + int meta = stack.getItemDamage(); + String type = StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".type." + this.getType(meta).suffix + ".name"); + return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".grade." + this.getGrade(meta).name().toLowerCase(Locale.US) + ".name", type); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + for(ProcessingTrait trait : this.getGrade(stack.getItemDamage()).traits) { + list.add(I18nUtil.resolveKey(this.getUnlocalizedNameInefficiently(stack) + ".trait." + trait.name().toLowerCase(Locale.US))); + } + } + + public static class BedrockOreOutput { + public NTMMaterial mat; + public int amount; + public BedrockOreOutput(NTMMaterial mat, int amount) { + this.mat = mat; + this.amount = amount; + } + } + + public static BedrockOreOutput o(NTMMaterial mat, int amount) { + return new BedrockOreOutput(mat, amount); + } + + public static enum BedrockOreType { + // primary sulfuric solvent radsolvent + LIGHT_METAL( 0xFFFFFF, 0x353535, "light", o(MAT_IRON, 9), o(MAT_COPPER, 9), o(MAT_TITANIUM, 9), o(MAT_ALUMINIUM, 5), o(MAT_ALUMINIUM, 4), o(MAT_CHLOROCALCITE, 5), o(MAT_LITHIUM, 5), o(MAT_SODIUM, 3), o(MAT_CHLOROCALCITE, 6), o(MAT_LITHIUM, 6), o(MAT_SODIUM, 6)), + HEAVY_METAL( 0x868686, 0x000000, "heavy", o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 2), o(MAT_GOLD, 2), o(MAT_BERYLLIUM, 3), o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 5), o(MAT_BISMUTH, 1), o(MAT_BISMUTH, 1), o(MAT_GOLD, 6)), + RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", o(MAT_COBALT, 5), o(MAT_RAREEARTH, 5),o(MAT_BORON, 5), o(MAT_LANTHANIUM, 3), o(MAT_NIOBIUM, 4), o(MAT_NEODYMIUM, 3), o(MAT_STRONTIUM, 3), o(MAT_ZIRCONIUM, 3), o(MAT_NIOBIUM, 5), o(MAT_NEODYMIUM, 5), o(MAT_STRONTIUM, 3)), + ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", o(MAT_URANIUM, 4), o(MAT_THORIUM, 4), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_TECHNETIUM, 1), o(MAT_TECHNETIUM, 1), o(MAT_U238, 1)), + NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", o(MAT_COAL, 9), o(MAT_SULFUR, 9), o(MAT_LIGNITE, 9), o(MAT_KNO, 6), o(MAT_FLUORITE, 6), o(MAT_PHOSPHORUS, 5), o(MAT_FLUORITE, 6), o(MAT_SULFUR, 6), o(MAT_CHLOROCALCITE, 6), o(MAT_SILICON, 2), o(MAT_SILICON, 2)), + CRYSTALLINE( 0xE2FFFA, 0x1E8A77, "crystal", o(MAT_REDSTONE, 9), o(MAT_CINNABAR, 4), o(MAT_SODALITE, 9), o(MAT_ASBESTOS, 6), o(MAT_DIAMOND, 3), o(MAT_CINNABAR, 3), o(MAT_ASBESTOS, 5), o(MAT_EMERALD, 3), o(MAT_BORAX, 3), o(MAT_MOLYSITE, 3), o(MAT_SODALITE, 9)); + //sediment + + public int light; + public int dark; + public String suffix; + public BedrockOreOutput primary1, primary2; + public BedrockOreOutput byproductAcid1, byproductAcid2, byproductAcid3; + public BedrockOreOutput byproductSolvent1, byproductSolvent2, byproductSolvent3; + public BedrockOreOutput byproductRad1, byproductRad2, byproductRad3; + + private BedrockOreType(int light, int dark, String suffix, BedrockOreOutput p1, BedrockOreOutput p2, BedrockOreOutput bA1, BedrockOreOutput bA2, BedrockOreOutput bA3, BedrockOreOutput bS1, BedrockOreOutput bS2, BedrockOreOutput bS3, BedrockOreOutput bR1, BedrockOreOutput bR2, BedrockOreOutput bR3) { + this.light = light; + this.dark = dark; + this.suffix = suffix; + this.primary1 = p1; this.primary2 = p2; + this.byproductAcid1 = bA1; this.byproductAcid2 = bA2; this.byproductAcid3 = bA3; + this.byproductSolvent1 = bS1; this.byproductSolvent2 = bS2; this.byproductSolvent3 = bS3; + this.byproductRad1 = bR1; this.byproductRad2 = bR2; this.byproductRad3 = bR3; + } + } + + public static MaterialStack toFluid(BedrockOreOutput o, double amount) { + if(o.mat != null && o.mat.smeltable == SmeltingBehavior.SMELTABLE) { + return new MaterialStack(o.mat, (int) Math.ceil(MaterialShapes.FRAGMENT.q(o.amount) * amount)); + } + return null; + } + + public static ItemStack extract(BedrockOreOutput o, double amount) { + return new ItemStack(ModItems.bedrock_ore_fragment, Math.min((int) Math.ceil(o.amount * amount), 64), o.mat.id); + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + if(pass != 0) return 0xFFFFFF; + BedrockOreGrade grade = this.getGrade(stack.getItemDamage()); + return grade.tint; + } + + public static final int none = 0xFFFFFF; + public static final int roasted = 0xCFCFCF; + public static final int arc = 0xC3A2A2; + public static final int washed = 0xDBE2CB; + + public static enum ProcessingTrait { + ROASTED, + ARC, + WASHED, + CENTRIFUGED, + SULFURIC, + SOLVENT, + RAD + } + + public static enum BedrockOreGrade { + BASE(none, "base"), //from the slopper + BASE_ROASTED(roasted, "base", ROASTED), //optional combination oven step, yields vitriol + BASE_WASHED(washed, "base", WASHED), //primitive-ass acidizer with water + PRIMARY(none, "primary", CENTRIFUGED), //centrifuging for more primary + PRIMARY_ROASTED(roasted, "primary", ROASTED), //optional comboven + PRIMARY_SULFURIC(0xFFFFD3, "primary", SULFURIC), //sulfuric acid + PRIMARY_NOSULFURIC(0xD3D4FF, "primary", CENTRIFUGED, SULFURIC), //from centrifuging, sulfuric byproduct removed + PRIMARY_SOLVENT(0xD3F0FF, "primary", SOLVENT), //solvent + PRIMARY_NOSOLVENT(0xFFDED3, "primary", CENTRIFUGED, SOLVENT), //solvent byproduct removed + PRIMARY_RAD(0xECFFD3, "primary", RAD), //radsolvent + PRIMARY_NORAD(0xEBD3FF, "primary", CENTRIFUGED, RAD), //radsolvent byproduct removed + PRIMARY_FIRST(0xFFD3D4, "primary", CENTRIFUGED), //higher first material yield + PRIMARY_SECOND(0xD3FFEB, "primary", CENTRIFUGED), //higher second material yield + CRUMBS(none, "crumbs", CENTRIFUGED), //endpoint for primary, recycling + + SULFURIC_BYPRODUCT(none, "sulfuric", CENTRIFUGED, SULFURIC), //from centrifuging + SULFURIC_ROASTED(roasted, "sulfuric", ROASTED, SULFURIC), //comboven again + SULFURIC_ARC(arc, "sulfuric", ARC, SULFURIC), //alternate step + SULFURIC_WASHED(washed, "sulfuric", WASHED, SULFURIC), //sulfuric endpoint + + SOLVENT_BYPRODUCT(none, "solvent", CENTRIFUGED, SOLVENT), //from centrifuging + SOLVENT_ROASTED(roasted, "solvent", ROASTED, SOLVENT), //comboven again + SOLVENT_ARC(arc, "solvent", ARC, SOLVENT), //alternate step + SOLVENT_WASHED(washed, "solvent", WASHED, SOLVENT), //solvent endpoint + + RAD_BYPRODUCT(none, "rad", CENTRIFUGED, RAD), //from centrifuging + RAD_ROASTED(roasted, "rad", ROASTED, RAD), //comboven again + RAD_ARC(arc, "rad", ARC, RAD), //alternate step + RAD_WASHED(washed, "rad", WASHED, RAD); //rad endpoint + + public int tint; + public String prefix; + public ProcessingTrait[] traits; + + private BedrockOreGrade(int tint, String prefix, ProcessingTrait... traits) { + this.tint = tint; + this.prefix = prefix; + this.traits = traits; + } + } + + public static ItemStack make(BedrockOreGrade grade, BedrockOreType type) { + return make(grade, type, 1); + } + + public static ItemStack make(BedrockOreGrade grade, BedrockOreType type, int amount) { + return new ItemStack(ModItems.bedrock_ore, amount, grade.ordinal() << 4 | type.ordinal()); + } + + public BedrockOreGrade getGrade(int meta) { + return EnumUtil.grabEnumSafely(BedrockOreGrade.class, meta >> 4); + } + + public BedrockOreType getType(int meta) { + return EnumUtil.grabEnumSafely(BedrockOreType.class, meta & 15); + } +} diff --git a/src/main/java/com/hbm/items/special/ItemBook.java b/src/main/java/com/hbm/items/special/ItemBook.java index 5759ea383..1a409b52f 100644 --- a/src/main/java/com/hbm/items/special/ItemBook.java +++ b/src/main/java/com/hbm/items/special/ItemBook.java @@ -9,7 +9,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.Item; @@ -40,40 +39,7 @@ public class ItemBook extends Item implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBook(player.inventory); } - - /*@Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(world.isRemote) - return stack; - - if(!player.isSneaking()) { - List list = world.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox(player.posX - 10, player.posY - 2, player.posZ - 10, player.posX + 10, player.posY + 2, player.posZ + 10)); - - for(Object o : list) { - - if(o instanceof EntityLivingBase) { - EntityLivingBase entity = (EntityLivingBase)o; - - entity.addPotionEffect(new PotionEffect(HbmPotion.telekinesis.id, 20, 0)); - } - } - } else { - if(player.inventory.hasItemStack(new ItemStack(ModItems.ingot_u238m2, 1, 1)) && - player.inventory.hasItemStack(new ItemStack(ModItems.ingot_u238m2, 1, 2)) && - player.inventory.hasItemStack(new ItemStack(ModItems.ingot_u238m2, 1, 3))) { - player.inventory.clearInventory(ModItems.ingot_u238m2, 1); - player.inventory.clearInventory(ModItems.ingot_u238m2, 2); - player.inventory.clearInventory(ModItems.ingot_u238m2, 3); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_u238m2)); - player.inventoryContainer.detectAndSendChanges(); - } - } - - return stack; - }*/ - } diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index 6fe393616..7c4b63446 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -2,8 +2,6 @@ package com.hbm.items.special; import java.util.List; -import org.apache.commons.lang3.math.NumberUtils; - import com.hbm.inventory.gui.GUIBookLore; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; @@ -12,7 +10,6 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -117,7 +114,7 @@ public class ItemBookLore extends Item implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBookLore(player); } diff --git a/src/main/java/com/hbm/items/special/ItemCigarette.java b/src/main/java/com/hbm/items/special/ItemCigarette.java index 092885af4..b38fd2d29 100644 --- a/src/main/java/com/hbm/items/special/ItemCigarette.java +++ b/src/main/java/com/hbm/items/special/ItemCigarette.java @@ -5,8 +5,8 @@ import java.util.List; import com.hbm.extprop.HbmLivingProps; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java b/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java index 840d79ea9..f31ae27ef 100644 --- a/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java +++ b/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java @@ -11,6 +11,7 @@ public class ItemCircuitStarComponent extends ItemEnumMulti { public static enum CircuitComponentType { CHIPSET, CPU, - RAM + RAM, + CARD } } diff --git a/src/main/java/com/hbm/items/special/ItemClayTablet.java b/src/main/java/com/hbm/items/special/ItemClayTablet.java new file mode 100644 index 000000000..c41a8a1d9 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemClayTablet.java @@ -0,0 +1,39 @@ +package com.hbm.items.special; + +import com.hbm.inventory.gui.GUIScreenClayTablet; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ItemClayTablet extends Item implements IGUIProvider { + + public ItemClayTablet() { + this.setMaxDamage(0); + this.setMaxStackSize(1); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(!world.isRemote && !stack.hasTagCompound()) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("tabletSeed", player.getRNG().nextLong()); + } + if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIScreenClayTablet(); + } +} diff --git a/src/main/java/com/hbm/items/special/ItemDoorSkin.java b/src/main/java/com/hbm/items/special/ItemDoorSkin.java new file mode 100644 index 000000000..c7211473f --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemDoorSkin.java @@ -0,0 +1,36 @@ +package com.hbm.items.special; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.List; + +public class ItemDoorSkin extends Item { + protected final IIcon[] icons; + + public ItemDoorSkin(int skinCount) { + setMaxStackSize(1); + icons = new IIcon[skinCount]; + } + + @Override + public boolean getHasSubtypes() { + return true; + } + + @Override + public void getSubItems(Item item, CreativeTabs creativeTabs, List list) { + for(int i = 0; i < icons.length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + return icons[meta]; + } +} diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index f30246151..077ae4ab0 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -9,9 +9,11 @@ import com.hbm.entity.projectile.EntityBoxcar; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -21,7 +23,7 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; -public class ItemGlitch extends Item { +public class ItemGlitch extends Item implements IBatteryItem { public ItemGlitch() { @@ -90,7 +92,7 @@ public class ItemGlitch extends Item { } break; case 13: - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_pip)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_heavy_revolver_lilmac)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle_sparkle)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter)); player.addChatMessage(new ChatComponentText("Have some free stuff. You'll need it for that one cryptic achievement.")); @@ -110,8 +112,8 @@ public class ItemGlitch extends Item { player.addChatMessage(new ChatComponentText("89% of magic tricks are not magic. Technically, they are sorcery.")); break; case 18: - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lever_action)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 12)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_maresleg)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_standard, 12, EnumAmmo.G12.ordinal())); player.addChatMessage(new ChatComponentText("Here ya go.")); break; case 19: @@ -235,4 +237,12 @@ public class ItemGlitch extends Item { } } + + @Override public void chargeBattery(ItemStack stack, long i) { } + @Override public void setCharge(ItemStack stack, long i) { } + @Override public void dischargeBattery(ItemStack stack, long i) { } + @Override public long getCharge(ItemStack stack) { return 200; } + @Override public long getMaxCharge(ItemStack stack) { return 200; } + @Override public long getChargeRate() { return 0; } + @Override public long getDischargeRate() { return 200; } } diff --git a/src/main/java/com/hbm/items/special/ItemHolotapeImage.java b/src/main/java/com/hbm/items/special/ItemHolotapeImage.java index 5c4cb8a27..a319a176e 100644 --- a/src/main/java/com/hbm/items/special/ItemHolotapeImage.java +++ b/src/main/java/com/hbm/items/special/ItemHolotapeImage.java @@ -9,7 +9,6 @@ import com.hbm.util.EnumUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -81,7 +80,7 @@ public class ItemHolotapeImage extends ItemHoloTape implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIScreenHolotape(); } } diff --git a/src/main/java/com/hbm/items/special/ItemKitNBT.java b/src/main/java/com/hbm/items/special/ItemKitNBT.java index e310c04de..f7248759c 100644 --- a/src/main/java/com/hbm/items/special/ItemKitNBT.java +++ b/src/main/java/com/hbm/items/special/ItemKitNBT.java @@ -62,7 +62,7 @@ public class ItemKitNBT extends Item { list.add("Contains:"); for(ItemStack item : stacks) { - list.add("-" + item.getDisplayName()); + list.add("-" + item.getDisplayName() + (item.stackSize > 1 ? (" x" + item.stackSize) : "")); } } } diff --git a/src/main/java/com/hbm/items/special/ItemLootCrate.java b/src/main/java/com/hbm/items/special/ItemLootCrate.java index b51d629d2..56207a02b 100644 --- a/src/main/java/com/hbm/items/special/ItemLootCrate.java +++ b/src/main/java/com/hbm/items/special/ItemLootCrate.java @@ -5,7 +5,7 @@ import java.util.List; import java.util.Random; import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemMissile; +import com.hbm.items.weapon.ItemCustomMissilePart; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -14,9 +14,9 @@ import net.minecraft.world.World; public class ItemLootCrate extends Item { - public static List list10 = new ArrayList(); - public static List list15 = new ArrayList(); - public static List listMisc = new ArrayList(); + public static List list10 = new ArrayList(); + public static List list15 = new ArrayList(); + public static List listMisc = new ArrayList(); private static Random rand = new Random(); @Override @@ -35,10 +35,10 @@ public class ItemLootCrate extends Item { return stack; } - private ItemMissile choose(List parts) { + private ItemCustomMissilePart choose(List parts) { boolean flag = true; - ItemMissile item = null; + ItemCustomMissilePart item = null; while(flag) { item = parts.get(rand.nextInt(parts.size())); diff --git a/src/main/java/com/hbm/items/special/ItemOreBlock.java b/src/main/java/com/hbm/items/special/ItemOreBlock.java index 9b0596fa4..b58585514 100644 --- a/src/main/java/com/hbm/items/special/ItemOreBlock.java +++ b/src/main/java/com/hbm/items/special/ItemOreBlock.java @@ -30,36 +30,6 @@ public class ItemOreBlock extends ItemBlock { list.add("Deposit location: X:-400; Z:-400"); list.add("Estimated quantity: 490"); } - - if(this.field_150939_a == ModBlocks.ore_weidanium) { - list.add("Weidanium ore"); - list.add("Deposit location: X:0; Z:300"); - list.add("Estimated quantity: 2800"); - } - - if(this.field_150939_a == ModBlocks.ore_reiium) { - list.add("Reiium ore"); - list.add("Deposit location: X:0; Z:0"); - list.add("Estimated quantity: 2800"); - } - - if(this.field_150939_a == ModBlocks.ore_unobtainium) { - list.add("Unobtainium ore"); - list.add("Deposit location: X:200; Z:200"); - list.add("Estimated quantity: 12480"); - } - - if(this.field_150939_a == ModBlocks.ore_daffergon) { - list.add("Daffergon ore"); - list.add("Deposit location: X:400; Z:-200"); - list.add("Estimated quantity: 14980"); - } - - if(this.field_150939_a == ModBlocks.ore_verticium) { - list.add("Verticium ore"); - list.add("Deposit location: X:-300; Z:200"); - list.add("Estimated quantity: 4680"); - } } } diff --git a/src/main/java/com/hbm/items/special/ItemPlasticScrap.java b/src/main/java/com/hbm/items/special/ItemPlasticScrap.java index a262df155..e658f7981 100644 --- a/src/main/java/com/hbm/items/special/ItemPlasticScrap.java +++ b/src/main/java/com/hbm/items/special/ItemPlasticScrap.java @@ -13,6 +13,7 @@ public class ItemPlasticScrap extends ItemEnumMulti { //GENERAL BOARD BOARD_BLANK, BOARD_TRANSISTOR, + BOARD_CONVERTER, //CHIPSET BRIDGE_NORTH, @@ -36,6 +37,10 @@ public class ItemPlasticScrap extends ItemEnumMulti { MEM_16K_A, MEM_16K_B, MEM_16K_C, - MEM_16K_D + MEM_16K_D, + + //EXTENSION CARD + CARD_BOARD, + CARD_PROCESSOR } } diff --git a/src/main/java/com/hbm/items/special/ItemPotatos.java b/src/main/java/com/hbm/items/special/ItemPotatos.java index 69aefa465..46c636689 100644 --- a/src/main/java/com/hbm/items/special/ItemPotatos.java +++ b/src/main/java/com/hbm/items/special/ItemPotatos.java @@ -28,7 +28,7 @@ public class ItemPotatos extends ItemBattery { if(p.getHeldItem() == stack) { - float pitch = (float)getCharge(stack) / (float)this.getMaxCharge() * 0.5F + 0.5F; + float pitch = (float)getCharge(stack) / (float)this.getMaxCharge(stack) * 0.5F + 0.5F; world.playSoundAtEntity(p, "hbm:potatos.random", 1.0F, pitch); setTimer(stack, 200 + itemRand.nextInt(100)); diff --git a/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java b/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java new file mode 100644 index 000000000..36008e132 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java @@ -0,0 +1,28 @@ +package com.hbm.items.special; + +import com.hbm.lib.RefStrings; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.ItemStack; + +public class ItemSlidingBlastDoorSkin extends ItemDoorSkin { + public ItemSlidingBlastDoorSkin() { + super(3); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + this.itemIcon = reg.registerIcon(this.getIconString()); + + this.icons[0] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_default"); + this.icons[1] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_variant1"); + this.icons[2] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_variant2"); + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return super.getUnlocalizedName(stack) + "." + stack.getItemDamage(); + } +} diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 1890a002d..2438f08ec 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -4,11 +4,13 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.Spaghetti; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; -import com.hbm.lib.Library; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import com.hbm.util.ShadyUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -199,9 +201,9 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_gold, 8)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_tungsten, 8)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.motor, 4)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_aluminium, 16)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_copper, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_red_copper, 4)); + player.inventory.addItemStackToInventory(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE, 16)); + player.inventory.addItemStackToInventory(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR, 16)); + player.inventory.addItemStackToInventory(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.wiring_red_copper, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.magnetron, 5)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); @@ -215,9 +217,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_potato, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.screwdriver, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_coal_off, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_excavator, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_diesel, 2)); - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_selenium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_wire_coated, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_pylon, 8)); @@ -428,8 +429,6 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear_cluster, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_volcano, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_endo, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_exo, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_doomsday, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_taint, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_micro, 1)); @@ -464,9 +463,7 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.euphemium_plate, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.euphemium_legs, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.euphemium_boots, 1)); - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.statue_elb), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_cursed, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.watch, 1)); + player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.statue_elb_f), 1)); } if(this == ModItems.hazmat_kit) @@ -486,7 +483,7 @@ public class ItemStarterKit extends Item { if(this == ModItems.letter && world.isRemote) { - if(player.getUniqueID().toString().equals(Library.a20)) { + if(player.getUniqueID().toString().equals(ShadyUtil.a20)) { player.addChatMessage(new ChatComponentText("Error: null reference @ com.hbm.items.ItemStarterKit.class, please report this to the modder!")); } else { player.addChatMessage(new ChatComponentText("You rip the letter in half; nothing happens.")); diff --git a/src/main/java/com/hbm/items/special/ItemSyringe.java b/src/main/java/com/hbm/items/special/ItemSyringe.java index d50a57074..48b6e928b 100644 --- a/src/main/java/com/hbm/items/special/ItemSyringe.java +++ b/src/main/java/com/hbm/items/special/ItemSyringe.java @@ -360,10 +360,6 @@ public class ItemSyringe extends Item { if(this == ModItems.syringe_awesome) { return EnumRarity.uncommon; } - if(this == ModItems.euphemium_stopper) { - return EnumRarity.epic; - } - return EnumRarity.common; } @@ -527,14 +523,6 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.euphemium_stopper) { - if(!world.isRemote) { - entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 30 * 20, 9)); - } - } - if(this == ModItems.syringe_mkunicorn) { if(!world.isRemote) { HbmLivingProps.setContagion(entity, 3 * 60 * 60 * 20); diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index a99df9079..6ecadd476 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -8,6 +8,7 @@ import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.entity.train.TrainCargoTram; import com.hbm.entity.train.TrainCargoTramTrailer; +import com.hbm.entity.train.TrainTunnelBore; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -43,8 +44,9 @@ public class ItemTrain extends ItemEnumMulti { public static enum EnumTrainType { // Engine Gauge Max Speed Accel. Eng. Brake Parking Brake - CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"), - CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No"); + CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s²", "<1m/s", "Yes"), + CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No"), + TUNNEL_BORE(TrainTunnelBore.class, "NONE", "Standard Gauge", "10m/s", "0.2m/s²", "<1m/s", "Yes"); public Class train; public String engine; @@ -76,20 +78,24 @@ public class ItemTrain extends ItemEnumMulti { try { train = type.train.getConstructor(World.class).newInstance(world); } catch(Exception e) { } if(train != null && train.getGauge() == ((IRailNTM) b).getGauge(world, x, y, z)) { - if(!world.isRemote) { - train.setPosition(x + fx, y + fy, z + fz); - BlockPos anchor = train.getCurrentAnchorPos(); - train.rotationYaw = entity.rotationYaw; - Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE, 0)); + + train.setPosition(x + fx, y + fy, z + fz); + BlockPos anchor = train.getCurrentAnchorPos(); + train.rotationYaw = entity.rotationYaw; + Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE, 0)); + if(corePos != null) { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT, train.getCollisionSpan() - train.getLengthSpan())); Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK, train.getCollisionSpan() - train.getLengthSpan())); - train.rotationYaw = train.generateYaw(frontPos, backPos); - world.spawnEntityInWorld(train); + if(frontPos != null && backPos != null) { + if(!world.isRemote) { + train.rotationYaw = train.generateYaw(frontPos, backPos); + world.spawnEntityInWorld(train); + } + stack.stackSize--; + return true; + } } - - stack.stackSize--; - return true; } } diff --git a/src/main/java/com/hbm/items/special/WatzFuel.java b/src/main/java/com/hbm/items/special/WatzFuel.java deleted file mode 100644 index e9a7e32a1..000000000 --- a/src/main/java/com/hbm/items/special/WatzFuel.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.items.special; - -import java.util.List; - -import com.hbm.items.machine.ItemFuelRod; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -public class WatzFuel extends ItemFuelRod { - - public int power; - public float powerMultiplier; - public int heat; - public float heatMultiplier; - public float decayMultiplier; - - /** - * Constructor for a new Watz fuel pellet - * @param lifeTime - * @param power - * @param powerMultiplier - * @param heat - * @param heatMultiplier - * @param decayMultiplier - */ - - public WatzFuel(int lifeTime, int power, float powerMultiplier, int heat, float heatMultiplier, float decayMultiplier) { - super(lifeTime * 100); - this.power = power/10; - this.powerMultiplier = powerMultiplier; - this.heat = heat; - this.heatMultiplier = heatMultiplier; - this.decayMultiplier = decayMultiplier; - this.setMaxDamage(100); - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Max age: " + this.lifeTime/100 + " ticks"); - list.add("Power per tick: " + (power) + "HE"); - list.add("Power multiplier: " + (powerMultiplier >= 1 ? "+" : "") + (Math.round(powerMultiplier * 1000) * .10 - 100) + "%"); - list.add("Heat provided: " + heat + " heat"); - list.add("Heat multiplier: " + (heatMultiplier >= 1 ? "+" : "") + (Math.round(heatMultiplier * 1000) * .10 - 100) + "%"); - list.add("Decay multiplier: " + (decayMultiplier >= 1 ? "+" : "") + (Math.round(decayMultiplier * 1000) * .10 - 100) + "%"); - - super.addInformation(itemstack, player, list, bool); - } - - public static void updateDamage(ItemStack stack) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.setItemDamage((int)((double)getLifeTime(stack) / (double)((WatzFuel)stack.getItem()).lifeTime * 100D)); - } -} diff --git a/src/main/java/com/hbm/items/tool/IItemAbility.java b/src/main/java/com/hbm/items/tool/IItemAbility.java index f02dccf4e..4096a2a6b 100644 --- a/src/main/java/com/hbm/items/tool/IItemAbility.java +++ b/src/main/java/com/hbm/items/tool/IItemAbility.java @@ -3,6 +3,8 @@ package com.hbm.items.tool; import java.util.ArrayList; import java.util.Random; +import com.hbm.blocks.ModBlocks; + import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.enchantment.Enchantment; @@ -43,7 +45,7 @@ public interface IItemAbility { Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); - if(!(canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) || block == Blocks.bedrock) + if(!(canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) || block == Blocks.bedrock || block == ModBlocks.stone_keyhole) return; Block refBlock = world.getBlock(refX, refY, refZ); diff --git a/src/main/java/com/hbm/items/tool/ItemAmmoContainer.java b/src/main/java/com/hbm/items/tool/ItemAmmoContainer.java index 2657bb7fe..53ef51595 100644 --- a/src/main/java/com/hbm/items/tool/ItemAmmoContainer.java +++ b/src/main/java/com/hbm/items/tool/ItemAmmoContainer.java @@ -1,13 +1,8 @@ package com.hbm.items.tool; -import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -16,52 +11,19 @@ import net.minecraft.world.World; public class ItemAmmoContainer extends Item { - public static final List configBlacklist = new ArrayList(); - public ItemAmmoContainer() { - this.setMaxDamage(1); - - configBlacklist.add(BulletConfigSyncingUtil.SCHRABIDIUM_REVOLVER); + this.setMaxStackSize(1); } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - for(ItemStack slot : player.inventory.mainInventory) { - - if(slot == null || !(slot.getItem() instanceof ItemGunBase)) continue; - List cfgs = new ArrayList(); - ItemGunBase gun = (ItemGunBase) slot.getItem(); - if(gun.mainConfig != null) cfgs.add(gun.mainConfig); - if(gun.altConfig != null) cfgs.add(gun.altConfig); - - for(GunConfiguration cfg : cfgs) { - if(cfg.config.isEmpty()) continue; - Integer first = cfg.config.get(0); - if(configBlacklist.contains(first)) continue; - BulletConfiguration bullet = BulletConfigSyncingUtil.pullConfig(first); - if(bullet == null) continue; - if(bullet.ammo == null) continue; - - ItemStack ammo = bullet.ammo.toStack(); - //for belt-fed guns: 64 is main config, 1 if alt config - //for reloaded guns: mag capacity divided by reload amount (equals one stack) - ammo.stackSize = cfg.reloadType == cfg.RELOAD_NONE ? cfg == gun.mainConfig ? 64 : 1 : (int) Math.ceil((double) cfg.ammoCap / (double) bullet.ammoCount); - player.inventory.addItemStackToInventory(ammo); - } - } - - stack.stackSize--; - if(stack.stackSize <= 0) - stack.damageItem(5, player); - return stack; } @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.ammo_container) { - list.add("Gives ammo for most held weapons."); + list.add("to be implemented :P"); } } } diff --git a/src/main/java/com/hbm/items/tool/ItemAnalysisTool.java b/src/main/java/com/hbm/items/tool/ItemAnalysisTool.java new file mode 100644 index 000000000..84fe9fcce --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemAnalysisTool.java @@ -0,0 +1,48 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.IAnalyzable; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemAnalysisTool extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + Block b = world.getBlock(x, y, z); + + if(b instanceof BlockDummyable) { + int[] pos = ((BlockDummyable) b).findCore(world, x, y, z); + + if(pos != null) { + x = pos[0]; + y = pos[1]; + z = pos[2]; + } + } + + if(b instanceof IAnalyzable) { + List debug = ((IAnalyzable) b).getDebugInfo(world, x, y, z); + + if(debug != null && !world.isRemote) { + for(String line : debug) { + player.addChatComponentMessage(new ChatComponentText(line).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + } + } + + return true; + } + + return false; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java b/src/main/java/com/hbm/items/tool/ItemAnalyzer.java deleted file mode 100644 index ebfdbe208..000000000 --- a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.hbm.items.tool; - -import com.hbm.interfaces.IFluidDuct; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityLockableBase; -import com.hbm.tileentity.network.TileEntityPylon; - -import api.hbm.energy.IEnergyConnector; -import net.minecraft.block.Block; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; - -public class ItemAnalyzer extends Item { - - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int b, float f0, float f1, float f2) - { - Block block = world.getBlock(x, y, z); - TileEntity te = world.getTileEntity(x, y, z); - - if(world.isRemote) { - player.addChatMessage(new ChatComponentText( - "Block: " + I18n.format(block.getUnlocalizedName() + ".name") + " (" + block.getUnlocalizedName() + ")" - )); - - player.addChatMessage(new ChatComponentText( - "Meta: " + world.getBlockMetadata(x, y, z) - )); - } - - if(!world.isRemote) { - - if(te == null) { - player.addChatMessage(new ChatComponentText( - "Tile Entity: none")); - } else { - - if(te instanceof TileEntityDummy) { - - player.addChatMessage(new ChatComponentText( - "Dummy Block, references TE at " + ((TileEntityDummy)te).targetX + " / " + ((TileEntityDummy)te).targetY + " / " + ((TileEntityDummy)te).targetZ)); - - te = world.getTileEntity(((TileEntityDummy)te).targetX, ((TileEntityDummy)te).targetY, ((TileEntityDummy)te).targetZ); - } - - String[] parts = te.toString().split("\\."); - - if(parts.length == 0) - parts = new String[]{"error"}; - - String post = parts[parts.length - 1]; - String name = post.split("@")[0]; - - player.addChatMessage(new ChatComponentText( - "Tile Entity: " + name)); - - if(te instanceof IInventory) { - - player.addChatMessage(new ChatComponentText( - "Slots: " + ((IInventory)te).getSizeInventory())); - } - - if(te instanceof IEnergyConnector) { - - player.addChatMessage(new ChatComponentText( - "Electricity: " + ((IEnergyConnector)te).getPower() + " HE")); - } - - if(te instanceof IFluidDuct) { - - player.addChatMessage(new ChatComponentText( - "Duct Type: " + I18n.format(((IFluidDuct)te).getType().getUnlocalizedName()))); - } - - if(te instanceof TileEntityPylon) { - - /** - * this is a smoldering crater - */ - } - - if(te instanceof TileEntityLockableBase) { - - player.addChatMessage(new ChatComponentText( - "Locked: " + ((TileEntityLockableBase)te).isLocked())); - - if(((TileEntityLockableBase)te).isLocked()) { - - //player.addChatMessage(new ChatComponentText( - // "Pins: " + ((TileEntityLockableBase)te).getPins())); - player.addChatMessage(new ChatComponentText( - "Pick Chance: " + (((TileEntityLockableBase)te).getMod() * 100D) + "%")); - } - } - } - - player.addChatMessage(new ChatComponentText( - "----------------------------" - )); - } - - return true; - } - -} diff --git a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java index 211a203c6..57698b4a0 100644 --- a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java +++ b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java @@ -1,15 +1,15 @@ package com.hbm.items.tool; import java.util.List; +import java.util.Locale; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; +import com.hbm.packet.toclient.AuxParticlePacketNT; import api.hbm.block.IToolable; import api.hbm.block.IToolable.ToolType; @@ -69,7 +69,17 @@ public class ItemBlowtorch extends Item implements IFillableItem { initNBT(stack); } - return stack.stackTagCompound.getInteger(type.getUnlocalizedName()); + //just in case + String name = Fluids.toNameCompat(type); + if(stack.stackTagCompound.hasKey(name)) { + int fill = stack.stackTagCompound.getInteger(name); + stack.stackTagCompound.removeTag(name); + stack.stackTagCompound.setInteger(Integer.toString(type.getID()), fill); + + return fill; + } + + return stack.stackTagCompound.getInteger(Integer.toString(type.getID())); } public int getMaxFill(FluidType type) { @@ -85,7 +95,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { initNBT(stack); } - stack.stackTagCompound.setInteger(type.getUnlocalizedName(), fill); + stack.stackTagCompound.setInteger(Integer.toString(type.getID()), fill); } public void initNBT(ItemStack stack) { @@ -199,9 +209,19 @@ public class ItemBlowtorch extends Item implements IFillableItem { @SideOnly(Side.CLIENT) private String getFillGauge(ItemStack stack, FluidType type) { - return I18nUtil.resolveKey(type.getUnlocalizedName()) + ": " + String.format("%,d", this.getFill(stack, type)) + " / " + String.format("%,d", this.getMaxFill(type)); + return type.getLocalizedName() + ": " + String.format(Locale.US, "%,d", this.getFill(stack, type)) + " / " + String.format(Locale.US, "%,d", this.getMaxFill(type)); } @Override public boolean providesFluid(FluidType type, ItemStack stack) { return false; } @Override public int tryEmpty(FluidType type, int amount, ItemStack stack) { return amount; } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return null; + } + + @Override + public int getFill(ItemStack stack) { + return 0; + } } diff --git a/src/main/java/com/hbm/items/tool/ItemBoatRubber.java b/src/main/java/com/hbm/items/tool/ItemBoatRubber.java new file mode 100644 index 000000000..c7b8ec137 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemBoatRubber.java @@ -0,0 +1,102 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.entity.item.EntityBoatRubber; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class ItemBoatRubber extends Item { + + public ItemBoatRubber() { + this.maxStackSize = 1; + this.setCreativeTab(CreativeTabs.tabTransport); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + float f = 1.0F; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * f; + float yaw = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * f; + double posX = player.prevPosX + (player.posX - player.prevPosX) * (double) f; + double posY = player.prevPosY + (player.posY - player.prevPosY) * (double) f + 1.62D - (double) player.yOffset; + double posZ = player.prevPosZ + (player.posZ - player.prevPosZ) * (double) f; + float compZ = MathHelper.cos(-yaw * 0.017453292F - (float) Math.PI); + float compX = MathHelper.sin(-yaw * 0.017453292F - (float) Math.PI); + float mult = -MathHelper.cos(-pitch * 0.017453292F); + float lookY = MathHelper.sin(-pitch * 0.017453292F); + float lookX = compX * mult; + float lookZ = compZ * mult; + double reach = 5.0D; + + Vec3 pos = Vec3.createVectorHelper(posX, posY, posZ); + Vec3 target = pos.addVector((double) lookX * reach, (double) lookY * reach, (double) lookZ * reach); + MovingObjectPosition mop = world.rayTraceBlocks(pos, target, true); + + if(mop == null) { + return stack; + + } else { + Vec3 look = player.getLook(f); + boolean flag = false; + double width = 1.0D; + List list = world.getEntitiesWithinAABBExcludingEntity(player, player.boundingBox.addCoord(look.xCoord * reach, look.yCoord * reach, look.zCoord * reach).expand(width, width, width)); + + for(int i = 0; i < list.size(); ++i) { + Entity entity = (Entity) list.get(i); + + if(entity.canBeCollidedWith()) { + float f10 = entity.getCollisionBorderSize(); + AxisAlignedBB axisalignedbb = entity.boundingBox.expand((double) f10, (double) f10, (double) f10); + + if(axisalignedbb.isVecInside(pos)) { + flag = true; + } + } + } + + if(flag) { + return stack; + + } else { + if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + int x = mop.blockX; + int y = mop.blockY; + int z = mop.blockZ; + + if(world.getBlock(x, y, z) == Blocks.snow_layer) { + --y; + } + + EntityBoatRubber entityboat = new EntityBoatRubber(world, (double) ((float) x + 0.5F), (double) ((float) y + 1.0F), (double) ((float) z + 0.5F)); + entityboat.rotationYaw = (float) (((MathHelper.floor_double((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3) - 1) * 90); + + if(!world.getCollidingBoundingBoxes(entityboat, entityboat.boundingBox.expand(-0.1D, -0.1D, -0.1D)).isEmpty()) { + return stack; + } + + if(!world.isRemote) { + world.spawnEntityInWorld(entityboat); + } + + if(!player.capabilities.isCreativeMode) { + --stack.stackSize; + } + } + + return stack; + } + } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index 34440b70a..837eb7207 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -1,14 +1,13 @@ package com.hbm.items.tool; -import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; import com.hbm.items.IAnimatedItem; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.util.EntityDamageUtil; @@ -50,14 +49,14 @@ public class ItemBoltgun extends Item implements IAnimatedItem { World world = player.worldObj; if(!entity.isEntityAlive()) return false; - Item[] bolts = new Item[] { ModItems.bolt_dura_steel, ModItems.bolt_tungsten, Item.getItemFromBlock(ModBlocks.steel_beam) }; + ItemStack[] bolts = new ItemStack[] { new ItemStack(ModItems.bolt_spike), Mats.MAT_STEEL.make(ModItems.bolt), Mats.MAT_TUNGSTEN.make(ModItems.bolt), Mats.MAT_DURA.make(ModItems.bolt)}; - for(Item item : bolts) { + for(ItemStack bolt : bolts) { for(int i = 0; i < player.inventory.getSizeInventory(); i++) { ItemStack slot = player.inventory.getStackInSlot(i); if(slot != null) { - if(slot.getItem() == item) { + if(slot.getItem() == bolt.getItem() && slot.getItemDamage() == bolt.getItemDamage()) { if(!world.isRemote) { world.playSoundAtEntity(entity, "hbm:item.boltgun", 1.0F, 1.0F); player.inventory.decrStackSize(i, 1); @@ -128,7 +127,7 @@ public class ItemBoltgun extends Item implements IAnimatedItem { public BusAnimation getAnimation(NBTTagCompound data, ItemStack stack) { return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 1, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 100))); + .addPos(1, 0, 1, 50) + .addPos(0, 0, 1, 100)); } } diff --git a/src/main/java/com/hbm/items/tool/ItemBombCaller.java b/src/main/java/com/hbm/items/tool/ItemBombCaller.java index 9d39a924d..87394ece7 100644 --- a/src/main/java/com/hbm/items/tool/ItemBombCaller.java +++ b/src/main/java/com/hbm/items/tool/ItemBombCaller.java @@ -7,6 +7,7 @@ import com.hbm.lib.Library; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import com.hbm.world.WorldUtil; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -16,101 +17,78 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class ItemBombCaller extends Item { - + public ItemBombCaller() { super(); - this.setHasSubtypes(true); + this.setHasSubtypes(true); } - + @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add("Aim & click to call an airstrike!"); - if(itemstack.getItemDamage() == 0) - list.add("Type: Carpet bombing"); - if(itemstack.getItemDamage() == 1) - list.add("Type: Napalm"); - if(itemstack.getItemDamage() == 2) - list.add("Type: Poison gas"); - if(itemstack.getItemDamage() == 3) - list.add("Type: Agent orange"); - if(itemstack.getItemDamage() == 4) - list.add("Type: Atomic bomb"); - if(itemstack.getItemDamage() == 5) - list.add("Type: VT stinger rockets"); - if(itemstack.getItemDamage() == 6) - list.add("Type: PIP OH GOD"); - if(itemstack.getItemDamage() == 7) - list.add("Type: Cloud the cloud oh god the cloud"); + switch (stack.getItemDamage()) { + case 0: list.add("Type: Carpet bombing"); break; + case 1: list.add("Type: Napalm"); break; + case 2: list.add("Type: Poison gas"); break; + case 3: list.add("Type: Agent orange"); break; + case 4: list.add("Type: Atomic bomb"); break; + case 5: list.add("Type: VT stinger rockets"); break; + case 6: list.add("Type: PIP OH GOD"); break; + case 7: list.add("Type: Cloud the cloud oh god the cloud"); break; + } } - + @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) - { + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { MovingObjectPosition pos = Library.rayTrace(player, 500, 1); int x = pos.blockX; int y = pos.blockY; int z = pos.blockZ; - - boolean b = false; - - if(!world.isRemote) + + if(!world.isRemote) { + EntityBomber bomber; + switch(stack.getItemDamage()) { + + case 1: bomber = EntityBomber.statFacNapalm(world, x, y, z); break; + case 2: bomber = EntityBomber.statFacChlorine(world, x, y, z); break; + case 3: bomber = EntityBomber.statFacOrange(world, x, y, z); break; + case 4: bomber = EntityBomber.statFacABomb(world, x, y, z); break; + case 5: bomber = EntityBomber.statFacStinger(world, x, y, z); break; + case 6: bomber = EntityBomber.statFacBoxcar(world, x, y, z); break; + case 7: bomber = EntityBomber.statFacPC(world, x, y, z); break; + default: bomber = EntityBomber.statFacCarpet(world, x, y, z); + + } + WorldUtil.loadAndSpawnEntityInWorld(bomber); + player.addChatMessage(new ChatComponentText("Called in airstrike!")); + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - if(stack.getItemDamage() == 0) - if(world.spawnEntityInWorld(EntityBomber.statFacCarpet(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 1) - if(world.spawnEntityInWorld(EntityBomber.statFacNapalm(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 2) - if(world.spawnEntityInWorld(EntityBomber.statFacChlorine(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 3) - if(world.spawnEntityInWorld(EntityBomber.statFacOrange(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 4) - if(world.spawnEntityInWorld(EntityBomber.statFacABomb(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 5) - if(world.spawnEntityInWorld(EntityBomber.statFacStinger(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 6) - if(world.spawnEntityInWorld(EntityBomber.statFacBoxcar(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 7) - if(world.spawnEntityInWorld(EntityBomber.statFacPC(world, x, y, z))) - b = true; - - if(b) { - player.addChatMessage(new ChatComponentText("Called in airstrike!")); - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - } else { - world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F); - } } - - stack.stackSize -= b ? 1 : 0; - - return stack; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) - { - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 0)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 1)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 2)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 3)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 4)); - } - @Override + stack.stackSize -= 1; + + return stack; + } + + @Override @SideOnly(Side.CLIENT) - public boolean hasEffect(ItemStack p_77636_1_) - { - return p_77636_1_.getItemDamage() >= 4; - } + public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) + { + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 0)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 1)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 2)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 3)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 4)); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack p_77636_1_) + { + return p_77636_1_.getItemDamage() >= 4; + } } diff --git a/src/main/java/com/hbm/items/tool/ItemBookLemegeton.java b/src/main/java/com/hbm/items/tool/ItemBookLemegeton.java new file mode 100644 index 000000000..b8bc68810 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemBookLemegeton.java @@ -0,0 +1,34 @@ +package com.hbm.items.tool; + +import com.hbm.inventory.container.ContainerLemegeton; +import com.hbm.inventory.gui.GUILemegeton; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemBookLemegeton extends Item implements IGUIProvider { + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(!world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerLemegeton(player.inventory); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUILemegeton(player.inventory); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemCMStructure.java b/src/main/java/com/hbm/items/tool/ItemCMStructure.java new file mode 100644 index 000000000..6c46decee --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemCMStructure.java @@ -0,0 +1,197 @@ +package com.hbm.items.tool; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; + +public class ItemCMStructure extends Item implements ILookOverlay { + + private static File file = new File(MainRegistry.configHbmDir, "CMstructureOutput.txt"); + + public static BlockPos getAnchor(ItemStack stack) { + + if(!stack.hasTagCompound()) { + return null; + } + + return new BlockPos(stack.stackTagCompound.getInteger("anchorX"), stack.stackTagCompound.getInteger("anchorY"), stack.stackTagCompound.getInteger("anchorZ")); + } + + public static void setAnchor(ItemStack stack, int x, int y, int z) { + + if(stack.stackTagCompound == null) { + stack.stackTagCompound = new NBTTagCompound(); + } + + stack.stackTagCompound.setInteger("anchorX", x); + stack.stackTagCompound.setInteger("anchorY", y); + stack.stackTagCompound.setInteger("anchorZ", z); + } + + public static void writeToFile(File config, ItemStack stack, World world) { + int anchorX = stack.stackTagCompound.getInteger("anchorX"); + int anchorY = stack.stackTagCompound.getInteger("anchorY"); + int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); + int x1 = stack.stackTagCompound.getInteger("x1"); + int y1 = stack.stackTagCompound.getInteger("y1"); + int z1 = stack.stackTagCompound.getInteger("z1"); + int x2 = stack.stackTagCompound.getInteger("x2"); + int y2 = stack.stackTagCompound.getInteger("y2"); + int z2 = stack.stackTagCompound.getInteger("z2"); + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(anchorX, anchorY, anchorZ)); + int minX = Math.min(x1, x2); + int maxX = Math.max(x1, x2); + int minY = Math.min(y1, y2); + int maxY = Math.max(y1, y2); + int minZ = Math.min(z1, z2); + int maxZ = Math.max(z1, z2); + + try { + JsonWriter writer = new JsonWriter(new FileWriter(config)); + writer.setIndent(" "); + writer.beginObject(); + writer.name("components").beginArray(); + + for(int x = minX; x <= maxX; x++) { + for(int y = minY; y <= maxY; y++) { + for(int z = minZ; z <= maxZ; z++) { + + int compY = y - anchorY; + int compX = 0; + int compZ = 0; + + if(dir == ForgeDirection.SOUTH) { + compX = anchorX - x; + compZ = anchorZ - z; + } + if(dir == ForgeDirection.NORTH) { + compX = x - anchorX; + compZ = z - anchorZ; + } + + if(dir == ForgeDirection.WEST) { + compZ = x - anchorX; + compX = anchorZ - z; + } + if(dir == ForgeDirection.EAST) { + compZ = anchorX - x; + compX = z - anchorZ; + } + + if(x == anchorX && y == anchorY && z == anchorZ) continue; + Block block = world.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + if(block == Blocks.air) continue; + + writer.beginObject().setIndent(""); + writer.name("block").value(Block.blockRegistry.getNameForObject(block)); + writer.name("x").value(compX); + writer.name("y").value(compY); + writer.name("z").value(compZ); + writer.name("metas").beginArray().value(meta).endArray(); + writer.endObject().setIndent(" "); + } + } + } + writer.endArray(); + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { + Block b = world.getBlock(x, y, z); + + if(b == ModBlocks.cm_anchor) { + this.setAnchor(stack, x, y, z); + return true; + } + + if(this.getAnchor(stack) == null) { + return false; + } + if(!stack.stackTagCompound.hasKey("x1")) { + stack.stackTagCompound.setInteger("x1", x); + stack.stackTagCompound.setInteger("y1", y); + stack.stackTagCompound.setInteger("z1", z); + } else if(!stack.stackTagCompound.hasKey("x2")) { + stack.stackTagCompound.setInteger("x2", x); + stack.stackTagCompound.setInteger("y2", y); + stack.stackTagCompound.setInteger("z2", z); + } else { + writeToFile(file, stack, world); + stack.stackTagCompound.removeTag("x1"); + stack.stackTagCompound.removeTag("y1"); + stack.stackTagCompound.removeTag("z1"); + stack.stackTagCompound.removeTag("x2"); + stack.stackTagCompound.removeTag("y2"); + stack.stackTagCompound.removeTag("z2"); + } + return true; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + list.add(EnumChatFormatting.YELLOW + "Click Custom Machine Structure Positioning Anchor to"); + list.add(EnumChatFormatting.YELLOW + "Confirm the location of the custom machine core block."); + list.add(EnumChatFormatting.YELLOW + "Output all blocks between Position1 and Position2 with"); + list.add(EnumChatFormatting.YELLOW + "metadata to \"CMstructureOutput.txt\" in hbmConfig."); + } + + @Override + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItem(); + List text = new ArrayList(); + + BlockPos anchor = getAnchor(stack); + + if(anchor == null) { + + text.add(EnumChatFormatting.RED + "No Anchor"); + } else { + int anchorX = stack.stackTagCompound.getInteger("anchorX"); + int anchorY = stack.stackTagCompound.getInteger("anchorY"); + int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); + text.add(EnumChatFormatting.GOLD + "Anchor: " + anchorX + " / " + anchorY + " / " + anchorZ); + if(stack.stackTagCompound.hasKey("x1")) { + int x1 = stack.stackTagCompound.getInteger("x1"); + int y1 = stack.stackTagCompound.getInteger("y1"); + int z1 = stack.stackTagCompound.getInteger("z1"); + + text.add(EnumChatFormatting.YELLOW + "Position1: " + x1 + " / " + y1 + " / " + z1); + } + if(stack.stackTagCompound.hasKey("x2")) { + int x2 = stack.stackTagCompound.getInteger("x2"); + int y2 = stack.stackTagCompound.getInteger("y2"); + int z2 = stack.stackTagCompound.getInteger("z2"); + text.add(EnumChatFormatting.YELLOW + "Position2: " + x2 + " / " + y2 + " / " + z2); + } + } + + ILookOverlay.printGeneric(event, this.getItemStackDisplayName(stack), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemCatalog.java b/src/main/java/com/hbm/items/tool/ItemCatalog.java index db2eeb413..1f679a88a 100644 --- a/src/main/java/com/hbm/items/tool/ItemCatalog.java +++ b/src/main/java/com/hbm/items/tool/ItemCatalog.java @@ -10,7 +10,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.Item; @@ -44,7 +43,7 @@ public class ItemCatalog extends Item implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { if(BobmazonOfferFactory.getOffers(player.getHeldItem()) != null) return new GUIScreenBobmazon(player, BobmazonOfferFactory.getOffers(player.getHeldItem())); diff --git a/src/main/java/com/hbm/items/tool/ItemChainsaw.java b/src/main/java/com/hbm/items/tool/ItemChainsaw.java index a2d4dfb38..b20f5ba3b 100644 --- a/src/main/java/com/hbm/items/tool/ItemChainsaw.java +++ b/src/main/java/com/hbm/items/tool/ItemChainsaw.java @@ -2,8 +2,8 @@ package com.hbm.items.tool; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.IHeldSoundProvider; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/hbm/items/tool/ItemColtanCompass.java b/src/main/java/com/hbm/items/tool/ItemColtanCompass.java index 0d2739cf9..b8cbe6b8e 100644 --- a/src/main/java/com/hbm/items/tool/ItemColtanCompass.java +++ b/src/main/java/com/hbm/items/tool/ItemColtanCompass.java @@ -1,5 +1,6 @@ package com.hbm.items.tool; +import java.util.List; import java.util.Random; import com.hbm.main.MainRegistry; @@ -12,6 +13,7 @@ import net.minecraft.client.renderer.texture.TextureCompass; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -24,6 +26,14 @@ public class ItemColtanCompass extends Item { public int lastZ = 0; public long lease = 0; + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add("Points towards the coltan deposit."); + list.add("The deposit is a large area where coltan ore spawns like standard ore,"); + list.add("it's not one large blob of ore on that exact location, dipshit."); + } + @Override public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean inhand) { diff --git a/src/main/java/com/hbm/items/tool/ItemCoordinateBase.java b/src/main/java/com/hbm/items/tool/ItemCoordinateBase.java new file mode 100644 index 000000000..71e8d80c5 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemCoordinateBase.java @@ -0,0 +1,75 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public abstract class ItemCoordinateBase extends Item { + + public static BlockPos getPosition(ItemStack stack) { + + if(stack.hasTagCompound()) { + return new BlockPos(stack.stackTagCompound.getInteger("posX"), stack.stackTagCompound.getInteger("posY"), stack.stackTagCompound.getInteger("posZ")); + } + + return null; + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + if(this.canGrabCoordinateHere(world, x, y, z)) { + + if(!world.isRemote) { + BlockPos pos = this.getCoordinates(world, x, y, z); + + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("posX", pos.getX()); + if(includeY()) stack.stackTagCompound.setInteger("posY", pos.getY()); + stack.stackTagCompound.setInteger("posZ", pos.getZ()); + + this.onTargetSet(world, pos.getX(), pos.getY(), pos.getZ(), player); + } + + return true; + } + + return false; + } + + /** Whether this position can be saved or if the position target is valid */ + public abstract boolean canGrabCoordinateHere(World world, int x, int y, int z); + + /** Whether this linking item saves the Y coordinate */ + public boolean includeY() { + return true; + } + + /** Modified the saved coordinates, for example detecting the core for multiblocks */ + public BlockPos getCoordinates(World world, int x, int y, int z) { + return new BlockPos(x, y, z); + } + + /** Extra on successful target set, eg. sounds */ + public void onTargetSet(World world, int x, int y, int z, EntityPlayer player) { } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + if(stack.hasTagCompound()) { + list.add("X: " + stack.stackTagCompound.getInteger("posX")); + if(includeY()) list.add("Y: " + stack.stackTagCompound.getInteger("posY")); + list.add("Z: " + stack.stackTagCompound.getInteger("posZ")); + } else { + list.add(EnumChatFormatting.RED + "No position set!"); + } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemCrateCaller.java b/src/main/java/com/hbm/items/tool/ItemCrateCaller.java deleted file mode 100644 index 5ec1ff32d..000000000 --- a/src/main/java/com/hbm/items/tool/ItemCrateCaller.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.items.tool; - -import java.util.List; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; - -public class ItemCrateCaller extends Item { - - Random rand = new Random(); - - public ItemCrateCaller() { - this.canRepair = false; - this.setMaxDamage(4); - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Right click to request supply drop!"); - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - stack.damageItem(1, player); - - int x = rand.nextInt(31) - 15; - int z = rand.nextInt(31) - 15; - - Block crate = ModBlocks.crate; - - int i = rand.nextInt(1000); - - if(i < 350) - crate = ModBlocks.crate_weapon; - if(i < 100) - crate = ModBlocks.crate_metal; - if(i < 50) - crate = ModBlocks.crate_lead; - if(i == 0) - crate = ModBlocks.crate_red; - - if(!world.isRemote) - { - if(world.getBlock((int)player.posX + x, 255, (int)player.posZ + z) == Blocks.air) - world.setBlock((int)player.posX + x, 255, (int)player.posZ + z, crate); - } - if(world.isRemote) - { - player.addChatMessage(new ChatComponentText("Called in supply drop!")); - } - - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - - player.swingItem(); - - return stack; - - } - -} diff --git a/src/main/java/com/hbm/items/tool/ItemDesingatorManual.java b/src/main/java/com/hbm/items/tool/ItemDesingatorManual.java index bfffd9b3b..3cb8b732d 100644 --- a/src/main/java/com/hbm/items/tool/ItemDesingatorManual.java +++ b/src/main/java/com/hbm/items/tool/ItemDesingatorManual.java @@ -9,7 +9,6 @@ import com.hbm.tileentity.IGUIProvider; import api.hbm.item.IDesignatorItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.Item; @@ -56,7 +55,7 @@ public class ItemDesingatorManual extends Item implements IDesignatorItem, IGUIP @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIScreenDesignator(player); } } diff --git a/src/main/java/com/hbm/items/tool/ItemDiscord.java b/src/main/java/com/hbm/items/tool/ItemDiscord.java index 75f8893de..b17818c25 100644 --- a/src/main/java/com/hbm/items/tool/ItemDiscord.java +++ b/src/main/java/com/hbm/items/tool/ItemDiscord.java @@ -20,7 +20,7 @@ public class ItemDiscord extends Item { MovingObjectPosition pos = Library.rayTrace(player, 100, 1); - if(pos.typeOfHit == MovingObjectType.BLOCK) { + if(pos != null && pos.typeOfHit == MovingObjectType.BLOCK) { if(!world.isRemote) { diff --git a/src/main/java/com/hbm/items/tool/ItemDosimeter.java b/src/main/java/com/hbm/items/tool/ItemDosimeter.java index 3a6a1f4bf..c8eeb585d 100644 --- a/src/main/java/com/hbm/items/tool/ItemDosimeter.java +++ b/src/main/java/com/hbm/items/tool/ItemDosimeter.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Random; import com.hbm.extprop.HbmLivingProps; -import com.hbm.items.armor.ArmorFSB; import com.hbm.util.ContaminationUtil; import net.minecraft.entity.Entity; @@ -25,12 +24,6 @@ public class ItemDosimeter extends Item { if(!(entity instanceof EntityLivingBase) || world.isRemote) return; - if(entity instanceof EntityPlayer) { - - if(ArmorFSB.hasFSBArmor((EntityPlayer)entity) && ((ArmorFSB)((EntityPlayer)entity).inventory.armorInventory[2].getItem()).geigerSound) - return; - } - float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity); if(world.getTotalWorldTime() % 5 == 0) { diff --git a/src/main/java/com/hbm/items/tool/ItemDrone.java b/src/main/java/com/hbm/items/tool/ItemDrone.java new file mode 100644 index 000000000..f63f44fd6 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemDrone.java @@ -0,0 +1,72 @@ +package com.hbm.items.tool; + +import java.util.List; + +import org.lwjgl.input.Keyboard; + +import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.items.ItemEnumMulti; +import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemDrone extends ItemEnumMulti { + + public ItemDrone() { + super(EnumDroneType.class, true, true); + this.setCreativeTab(MainRegistry.machineTab); + } + + public static enum EnumDroneType { + PATROL, + PATROL_CHUNKLOADING, + PATROL_EXPRESS, + PATROL_EXPRESS_CHUNKLOADING, + REQUEST + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer entity, World world, int x, int y, int z, int side, float fx, float fy, float fz) { + + if(side != 1) return false; + if(world.isRemote) return true; + + Entity toSpawn = null; + + if(stack.getItemDamage() < 4) { + toSpawn = new EntityDeliveryDrone(world); + if(stack.getItemDamage() % 2 == 1) { + ((EntityDeliveryDrone) toSpawn).setChunkLoading(); + } + if(stack.getItemDamage() > 1) { + ((EntityDeliveryDrone) toSpawn).getDataWatcher().updateObject(11, (byte) 1); + } + } + + if(toSpawn != null) { + toSpawn.setPosition(x + 0.5, y + 1, z + 0.5); + world.spawnEntityInWorld(toSpawn); + } + + stack.stackSize--; + + return false; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + for(String s : I18nUtil.resolveKeyArray(stack.getUnlocalizedName() + ".desc")) + list.add(EnumChatFormatting.YELLOW + s); + } else { + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "Hold <" + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + EnumChatFormatting.DARK_GRAY + + "" + EnumChatFormatting.ITALIC + "> to display more info"); + } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemDroneLinker.java b/src/main/java/com/hbm/items/tool/ItemDroneLinker.java new file mode 100644 index 000000000..31489ea8d --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemDroneLinker.java @@ -0,0 +1,101 @@ +package com.hbm.items.tool; + +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.IDroneLinkable; +import com.hbm.util.ChatBuilder; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemDroneLinker extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof IDroneLinkable) { + + if(!world.isRemote) { + if(!stack.hasTagCompound()) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("x", x); + stack.stackTagCompound.setInteger("y", y); + stack.stackTagCompound.setInteger("z", z); + + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Set initial position!").color(EnumChatFormatting.AQUA).flush()); + + } else { + + int tx = stack.stackTagCompound.getInteger("x"); + int ty = stack.stackTagCompound.getInteger("y"); + int tz = stack.stackTagCompound.getInteger("z"); + + TileEntity prev = world.getTileEntity(tx, ty, tz); + + if(prev instanceof IDroneLinkable) { + + BlockPos dest = ((IDroneLinkable) tile).getPoint(); + ((IDroneLinkable) prev).setNextTarget(dest.getX(), dest.getY(), dest.getZ()); + + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Link set!").color(EnumChatFormatting.AQUA).flush()); + } else { + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Previous link lost!").color(EnumChatFormatting.RED).flush()); + } + + stack.stackTagCompound.setInteger("x", x); + stack.stackTagCompound.setInteger("y", y); + stack.stackTagCompound.setInteger("z", z); + } + } + + return true; + } + + return false; + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean inhand) { + + if(world.isRemote && inhand) { + if(stack.hasTagCompound()) { + int x = stack.stackTagCompound.getInteger("x"); + int y = stack.stackTagCompound.getInteger("y"); + int z = stack.stackTagCompound.getInteger("z"); + MainRegistry.proxy.displayTooltip("Prev pos: " + x + " / " + y + " / " + z, MainRegistry.proxy.ID_DRONE); + } + } + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!world.isRemote && stack.hasTagCompound()) { + stack.stackTagCompound = null; + + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Position cleared!").color(EnumChatFormatting.GREEN).flush()); + } + + return stack; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemFusionCore.java b/src/main/java/com/hbm/items/tool/ItemFusionCore.java index b99f8fa16..b72ee8d4f 100644 --- a/src/main/java/com/hbm/items/tool/ItemFusionCore.java +++ b/src/main/java/com/hbm/items/tool/ItemFusionCore.java @@ -6,7 +6,7 @@ import com.hbm.items.armor.ArmorFSB; import com.hbm.items.armor.ArmorFSBPowered; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -23,32 +23,32 @@ public class ItemFusionCore extends Item { @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(ArmorFSB.hasFSBArmorIgnoreCharge(player) && player.inventory.armorInventory[3].getItem() instanceof ArmorFSBPowered) { - - for(ItemStack st : player.inventory.armorInventory) { - - if(st == null) - continue; - - if(st.getItem() instanceof IBatteryItem) { - - long maxcharge = ((IBatteryItem)st.getItem()).getMaxCharge(); - long charge = ((IBatteryItem)st.getItem()).getCharge(st); - long newcharge = Math.min(charge + this.charge, maxcharge); - - ((IBatteryItem)st.getItem()).setCharge(st, newcharge); - } - } - - stack.stackSize--; - - world.playSoundAtEntity(player, "hbm:item.battery", 1.0F, 1.0F); - } - + + if(ArmorFSB.hasFSBArmorIgnoreCharge(player) && player.inventory.armorInventory[2].getItem() instanceof ArmorFSBPowered) { + + for(ItemStack st : player.inventory.armorInventory) { + + if(st == null) + continue; + + if(st.getItem() instanceof IBatteryItem) { + + long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(st); + long charge = ((IBatteryItem) st.getItem()).getCharge(st); + long newcharge = Math.min(charge + this.charge, maxcharge); + + ((IBatteryItem) st.getItem()).setCharge(st, newcharge); + } + } + + stack.stackSize--; + + world.playSoundAtEntity(player, "hbm:item.battery", 1.0F, 1.0F); + } + return stack; } - + @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { diff --git a/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java b/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java index 72be9d361..cc86cc758 100644 --- a/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java +++ b/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java @@ -6,7 +6,6 @@ import java.util.Random; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.items.armor.ArmorFSB; import com.hbm.util.ContaminationUtil; import net.minecraft.entity.Entity; @@ -27,12 +26,6 @@ public class ItemGeigerCounter extends Item { if(!(entity instanceof EntityLivingBase) || world.isRemote) return; - if(entity instanceof EntityPlayer) { - - if(ArmorFSB.hasFSBArmor((EntityPlayer)entity) && ((ArmorFSB)((EntityPlayer)entity).inventory.armorInventory[2].getItem()).geigerSound) - return; - } - float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity); if(world.getTotalWorldTime() % 5 == 0) { diff --git a/src/main/java/com/hbm/items/tool/ItemGuideBook.java b/src/main/java/com/hbm/items/tool/ItemGuideBook.java index f9579af33..948638f0f 100644 --- a/src/main/java/com/hbm/items/tool/ItemGuideBook.java +++ b/src/main/java/com/hbm/items/tool/ItemGuideBook.java @@ -11,7 +11,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -324,7 +323,7 @@ public class ItemGuideBook extends Item implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIScreenGuide(player); } } diff --git a/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java b/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java index 4fee946c8..4e0d022bc 100644 --- a/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java +++ b/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java @@ -8,11 +8,11 @@ import com.hbm.config.GeneralConfig; import com.hbm.interfaces.IBomb; import com.hbm.interfaces.IBomb.BombReturnCode; import com.hbm.interfaces.IHoldableWeapon; +import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/items/tool/ItemLeadBox.java b/src/main/java/com/hbm/items/tool/ItemLeadBox.java index 0e4384955..bfa427cc7 100644 --- a/src/main/java/com/hbm/items/tool/ItemLeadBox.java +++ b/src/main/java/com/hbm/items/tool/ItemLeadBox.java @@ -8,7 +8,6 @@ import com.hbm.util.ItemStackUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; @@ -42,7 +41,7 @@ public class ItemLeadBox extends Item implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUILeadBox(player.inventory, new InventoryLeadBox(player, player.getHeldItem())); } diff --git a/src/main/java/com/hbm/items/tool/ItemLock.java b/src/main/java/com/hbm/items/tool/ItemLock.java index 0672f90a7..083d6b13a 100644 --- a/src/main/java/com/hbm/items/tool/ItemLock.java +++ b/src/main/java/com/hbm/items/tool/ItemLock.java @@ -1,7 +1,7 @@ package com.hbm.items.tool; -import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntityLockableBase; +import com.hbm.util.CompatExternal; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -17,51 +17,29 @@ public class ItemLock extends ItemKeyPin { } @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) - { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { + if(this.getPins(stack) != 0) { - TileEntity te = world.getTileEntity(x, y, z); - + TileEntity te = CompatExternal.getCoreFromPos(world, x, y, z); + if(te != null && te instanceof TileEntityLockableBase) { - TileEntityLockableBase tile = (TileEntityLockableBase)te; - + TileEntityLockableBase tile = (TileEntityLockableBase) te; + if(tile.isLocked()) return false; - + tile.setPins(this.getPins(stack)); tile.lock(); tile.setMod(lockMod); - world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F); + world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F); stack.stackSize--; - + return true; } - - if(te != null && te instanceof TileEntityDummy) { - - TileEntityDummy dummy = (TileEntityDummy)te; - TileEntity target = world.getTileEntity(dummy.targetX, dummy.targetY, dummy.targetZ); - - if(target != null && target instanceof TileEntityLockableBase) { - TileEntityLockableBase tile = (TileEntityLockableBase)target; - - if(tile.isLocked()) - return false; - - tile.setPins(this.getPins(stack)); - tile.lock(); - tile.setMod(lockMod); - - world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F); - stack.stackSize--; - - return true; - } - } } - + return false; - } + } } diff --git a/src/main/java/com/hbm/items/tool/ItemMirrorTool.java b/src/main/java/com/hbm/items/tool/ItemMirrorTool.java index 935a37937..61db24d6e 100644 --- a/src/main/java/com/hbm/items/tool/ItemMirrorTool.java +++ b/src/main/java/com/hbm/items/tool/ItemMirrorTool.java @@ -24,7 +24,7 @@ import net.minecraft.world.World; public class ItemMirrorTool extends Item { @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { Block b = world.getBlock(x, y, z); diff --git a/src/main/java/com/hbm/items/tool/ItemModDoor.java b/src/main/java/com/hbm/items/tool/ItemModDoor.java index 6ed3f84f3..e7ead99c9 100644 --- a/src/main/java/com/hbm/items/tool/ItemModDoor.java +++ b/src/main/java/com/hbm/items/tool/ItemModDoor.java @@ -6,105 +6,82 @@ import com.hbm.items.ModItems; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class ItemModDoor extends Item -{ - public ItemModDoor() - { - this.maxStackSize = 1; - this.setCreativeTab(CreativeTabs.tabRedstone); - } +public class ItemModDoor extends Item { + + public ItemModDoor() { + this.maxStackSize = 1; + this.setCreativeTab(CreativeTabs.tabRedstone); + } - /** - * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return - * True if something happen and false if it don't. This is for ITEMS, not BLOCKS - */ - public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) - { - if (p_77648_7_ != 1) - { - return false; - } - else - { - ++p_77648_5_; - Block block; + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { + if(side != 1) { + return false; + } else { + ++y; + + Block block = Blocks.air; - if(this == ModItems.door_metal) - block = ModBlocks.door_metal; - else if(this == ModItems.door_office) - block = ModBlocks.door_office; - else - block = ModBlocks.door_bunker; + if(this == ModItems.door_metal) block = ModBlocks.door_metal; + if(this == ModItems.door_office) block = ModBlocks.door_office; + if(this == ModItems.door_bunker) block = ModBlocks.door_bunker; + if(this == ModItems.door_red) block = ModBlocks.door_red; - if (p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_, p_77648_6_, p_77648_7_, p_77648_1_) && p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_ + 1, p_77648_6_, p_77648_7_, p_77648_1_)) - { - if (!block.canPlaceBlockAt(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_)) - { - return false; - } - else - { - int i1 = MathHelper.floor_double((double)((p_77648_2_.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; - placeDoorBlock(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_, i1, block); - --p_77648_1_.stackSize; - return true; - } - } - else - { - return false; - } - } - } + if(player.canPlayerEdit(x, y, z, side, stack) && player.canPlayerEdit(x, y + 1, z, side, stack)) { + if(!block.canPlaceBlockAt(world, x, y, z)) { + return false; + } else { + int i1 = MathHelper.floor_double((double) ((player.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; + placeDoorBlock(world, x, y, z, i1, block); + --stack.stackSize; + return true; + } + } else { + return false; + } + } + } - public static void placeDoorBlock(World p_150924_0_, int p_150924_1_, int p_150924_2_, int p_150924_3_, int p_150924_4_, Block p_150924_5_) - { - byte b0 = 0; - byte b1 = 0; + public static void placeDoorBlock(World world, int x, int y, int z, int meta, Block door) { + byte offsetX = 0; + byte offsetZ = 0; - if (p_150924_4_ == 0) - { - b1 = 1; - } + if(meta == 0) { + offsetZ = 1; + } - if (p_150924_4_ == 1) - { - b0 = -1; - } + if(meta == 1) { + offsetX = -1; + } - if (p_150924_4_ == 2) - { - b1 = -1; - } + if(meta == 2) { + offsetZ = -1; + } - if (p_150924_4_ == 3) - { - b0 = 1; - } + if(meta == 3) { + offsetX = 1; + } - int i1 = (p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_, p_150924_3_ - b1).isNormalCube() ? 1 : 0) + (p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_ + 1, p_150924_3_ - b1).isNormalCube() ? 1 : 0); - int j1 = (p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_, p_150924_3_ + b1).isNormalCube() ? 1 : 0) + (p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_ + 1, p_150924_3_ + b1).isNormalCube() ? 1 : 0); - boolean flag = p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_, p_150924_3_ - b1) == p_150924_5_ || p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_ + 1, p_150924_3_ - b1) == p_150924_5_; - boolean flag1 = p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_, p_150924_3_ + b1) == p_150924_5_ || p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_ + 1, p_150924_3_ + b1) == p_150924_5_; - boolean flag2 = false; + int i1 = (world.getBlock(x - offsetX, y, z - offsetZ).isNormalCube() ? 1 : 0) + (world.getBlock(x - offsetX, y + 1, z - offsetZ).isNormalCube() ? 1 : 0); + int j1 = (world.getBlock(x + offsetX, y, z + offsetZ).isNormalCube() ? 1 : 0) + (world.getBlock(x + offsetX, y + 1, z + offsetZ).isNormalCube() ? 1 : 0); + boolean flag = world.getBlock(x - offsetX, y, z - offsetZ) == door || world.getBlock(x - offsetX, y + 1, z - offsetZ) == door; + boolean flag1 = world.getBlock(x + offsetX, y, z + offsetZ) == door || world.getBlock(x + offsetX, y + 1, z + offsetZ) == door; + boolean flag2 = false; - if (flag && !flag1) - { - flag2 = true; - } - else if (j1 > i1) - { - flag2 = true; - } + if(flag && !flag1) { + flag2 = true; + } else if(j1 > i1) { + flag2 = true; + } - p_150924_0_.setBlock(p_150924_1_, p_150924_2_, p_150924_3_, p_150924_5_, p_150924_4_, 2); - p_150924_0_.setBlock(p_150924_1_, p_150924_2_ + 1, p_150924_3_, p_150924_5_, 8 | (flag2 ? 1 : 0), 2); - p_150924_0_.notifyBlocksOfNeighborChange(p_150924_1_, p_150924_2_, p_150924_3_, p_150924_5_); - p_150924_0_.notifyBlocksOfNeighborChange(p_150924_1_, p_150924_2_ + 1, p_150924_3_, p_150924_5_); - } + world.setBlock(x, y, z, door, meta, 2); + world.setBlock(x, y + 1, z, door, 8 | (flag2 ? 1 : 0), 2); + world.notifyBlocksOfNeighborChange(x, y, z, door); + world.notifyBlocksOfNeighborChange(x, y + 1, z, door); + } } diff --git a/src/main/java/com/hbm/items/tool/ItemOilDetector.java b/src/main/java/com/hbm/items/tool/ItemOilDetector.java index 45d41af10..3b9cf86b7 100644 --- a/src/main/java/com/hbm/items/tool/ItemOilDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemOilDetector.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java b/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java new file mode 100644 index 000000000..5fd3ac58f --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java @@ -0,0 +1,55 @@ +package com.hbm.items.tool; + +import com.hbm.items.special.ItemBedrockOreBase; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.PlayerInformPacket; +import com.hbm.util.ChatBuilder; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemOreDensityScanner extends Item { + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) { + + if(!(entity instanceof EntityPlayerMP) || world.getTotalWorldTime() % 5 != 0) return; + + EntityPlayerMP player = (EntityPlayerMP) entity; + + for(BedrockOreType type : BedrockOreType.values()) { + double level = ItemBedrockOreBase.getOreLevel((int) Math.floor(player.posX), (int) Math.floor(player.posZ), type); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket( + ChatBuilder.startTranslation("item.bedrock_ore.type." + type.suffix + ".name") + .next(": " + ((int) (level * 100) / 100D) + " (") + .nextTranslation(translateDensity(level)).color(getColor(level)) + .next(")").color(EnumChatFormatting.RESET).flush(), + 777 + type.ordinal(), 4000), player); + } + } + + public static String translateDensity(double density) { + if(density <= 0.1) return "item.ore_density_scanner.verypoor"; + if(density <= 0.35) return "item.ore_density_scanner.poor"; + if(density <= 0.75) return "item.ore_density_scanner.low"; + if(density >= 1.9) return "item.ore_density_scanner.excellent"; + if(density >= 1.65) return "item.ore_density_scanner.veryhigh"; + if(density >= 1.25) return "item.ore_density_scanner.high"; + return "item.ore_density_scanner.moderate"; + } + + public static EnumChatFormatting getColor(double density) { + if(density <= 0.1) return EnumChatFormatting.DARK_RED; + if(density <= 0.35) return EnumChatFormatting.RED; + if(density <= 0.75) return EnumChatFormatting.GOLD; + if(density >= 1.9) return EnumChatFormatting.AQUA; + if(density >= 1.65) return EnumChatFormatting.BLUE; + if(density >= 1.25) return EnumChatFormatting.GREEN; + return EnumChatFormatting.YELLOW; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java new file mode 100644 index 000000000..2ac303116 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -0,0 +1,211 @@ +package com.hbm.items.tool; + +import api.hbm.fluid.IFillableItem; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import java.util.List; + +public class ItemPipette extends Item implements IFillableItem { + + public ItemPipette() { + this.canRepair = false; + this.setMaxDamage(1); + } + + @SideOnly(Side.CLIENT) protected IIcon overlayIcon; + @SideOnly(Side.CLIENT) protected IIcon emptyIcon; + + public short getMaxFill() { + if(this == ModItems.pipette_laboratory) return 50; + else return 1_000; + } + + public void initNBT(ItemStack stack) { + stack.stackTagCompound = new NBTTagCompound(); + this.setFill(stack, Fluids.NONE, (short) 0); // sets "type" and "fill" NBT + stack.stackTagCompound.setShort("capacity", this.getMaxFill()); // set "capacity" + } + + public FluidType getType(ItemStack stack) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + return Fluids.fromID(stack.stackTagCompound.getShort("type")); + } + + public short getCapacity(ItemStack stack) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + return stack.stackTagCompound.getShort("capacity"); + } + + public void setFill(ItemStack stack, FluidType type, short fill) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + stack.stackTagCompound.setShort("type", (short) type.getID()); + stack.stackTagCompound.setShort("fill", fill); + } + + @Override + public int getFill(ItemStack stack) { + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + return stack.stackTagCompound.getShort("fill"); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!stack.hasTagCompound()) { + initNBT(stack); + } + + if(!world.isRemote) { + if(this.getFill(stack) == 0) { + int a; + if(this == ModItems.pipette_laboratory) + a = !player.isSneaking() ? Math.min(this.getCapacity(stack) + 1, 50) : Math.max(this.getCapacity(stack) - 1, 1); + else + a = !player.isSneaking() ? Math.min(this.getCapacity(stack) + 50, 1_000) : Math.max(this.getCapacity(stack) - 50, 50); + stack.stackTagCompound.setShort("capacity", (short) a); + player.addChatMessage(new ChatComponentText(a + "/" + this.getMaxFill() + "mB")); + } else { + player.addChatMessage(new ChatComponentTranslation("desc.item.pipette.noEmpty")); + } + } + return stack; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + if(this == ModItems.pipette_laboratory) { + list.add(I18nUtil.resolveKey("desc.item.pipette.corrosive")); + list.add(I18nUtil.resolveKey("desc.item.pipette.laboratory")); + } + if(this == ModItems.pipette_boron) + list.add(I18nUtil.resolveKey("desc.item.pipette.corrosive")); + if(this == ModItems.pipette) + list.add(I18nUtil.resolveKey("desc.item.pipette.noCorrosive")); + list.add("Fluid: " + this.getType(stack).getLocalizedName()); + list.add("Amount: " + this.getFill(stack) + "/" + this.getCapacity(stack) + "mB (" + this.getMaxFill() + "mB)"); + } + + @Override + public boolean acceptsFluid(FluidType type, ItemStack stack) { + return (type == this.getType(stack) || this.getFill(stack) == 0) && (!type.isAntimatter()); + } + + @Override + public int tryFill(FluidType type, int amount, ItemStack stack) { + + if(!acceptsFluid(type, stack)) + return amount; + + if(this.getFill(stack) == 0) + this.setFill(stack, type, (short) 0); + + int req = this.getCapacity(stack) - this.getFill(stack); + int toFill = Math.min(req, amount); + + this.setFill(stack, type, (short) (this.getFill(stack) + toFill)); + + // fizzling checks + if(this.getFill(stack) > 0 && willFizzle(type)) { + stack.stackSize = 0; + } + + return amount - toFill; + } + + public boolean willFizzle(FluidType type) { + if (this != ModItems.pipette) return false; + return type.isCorrosive() && type != Fluids.PEROXIDE; + } + + @Override + public boolean providesFluid(FluidType type, ItemStack stack) { + return this.getType(stack) == type; + } + + @Override + public int tryEmpty(FluidType type, int amount, ItemStack stack) { + if(providesFluid(type, stack)) { + int toUnload = Math.min(amount, this.getFill(stack)); + this.setFill(stack, type, (short) (this.getFill(stack) - toUnload)); + if(this.getFill(stack) == 0) + this.setFill(stack, Fluids.NONE, (short) 0); + return toUnload; + } + return amount; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister icon) { + super.registerIcons(icon); + if(this == ModItems.pipette_laboratory) + this.overlayIcon = icon.registerIcon("hbm:pipette_laboratory_overlay"); + else + this.overlayIcon = icon.registerIcon("hbm:pipette_overlay"); + + this.emptyIcon = icon.registerIcon("hbm:pipette_empty"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(ItemStack stack, int pass) { + if(getFill(stack) == 0 && pass == 1) return this.emptyIcon; + return pass == 1 ? this.overlayIcon : getIconFromDamageForRenderPass(stack.getItemDamage(), pass); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + if(pass == 0) { + return 0xffffff; + } else { + int j = this.getType(stack).getColor(); + + if(j < 0) { + j = 0xffffff; + } + + return j; + } + } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return this.getType(stack); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemPlasticBag.java b/src/main/java/com/hbm/items/tool/ItemPlasticBag.java new file mode 100644 index 000000000..6393832a5 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemPlasticBag.java @@ -0,0 +1,125 @@ +package com.hbm.items.tool; + +import com.hbm.inventory.container.ContainerPlasticBag; +import com.hbm.inventory.gui.GUIPlasticBag; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.util.ItemStackUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ItemPlasticBag extends Item implements IGUIProvider { + + public ItemPlasticBag() { + this.setMaxStackSize(1); + } + + @Override + public int getMaxItemUseDuration(ItemStack stack) { + return 1; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerPlasticBag(player.inventory, new InventoryPlasticBag(player, player.getHeldItem())); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIPlasticBag(player.inventory, new InventoryPlasticBag(player, player.getHeldItem())); + } + + public static class InventoryPlasticBag implements IInventory { + + public final EntityPlayer player; + public final ItemStack bag; + public ItemStack[] slots; + + public InventoryPlasticBag(EntityPlayer player, ItemStack box) { + this.player = player; + this.bag = box; + slots = new ItemStack[this.getSizeInventory()]; + + if(!box.hasTagCompound()) + box.setTagCompound(new NBTTagCompound()); + + ItemStack[] fromNBT = ItemStackUtil.readStacksFromNBT(box, slots.length); + + if(fromNBT != null) { + for(int i = 0; i < slots.length; i++) { + slots[i] = fromNBT[i]; + } + } + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + ItemStack stack = getStackInSlot(slot); + if (stack != null) { + if (stack.stackSize > amount) { + stack = stack.splitStack(amount); + markDirty(); + } else { + setInventorySlotContents(slot, null); + } + } + return stack; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + ItemStack stack = getStackInSlot(slot); + setInventorySlotContents(slot, null); + return stack; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + + if(stack != null) { + stack.stackSize = Math.min(stack.stackSize, this.getInventoryStackLimit()); + } + + slots[slot] = stack; + markDirty(); + } + + @Override + public void markDirty() { + + for(int i = 0; i < getSizeInventory(); ++i) { + if(getStackInSlot(i) != null && getStackInSlot(i).stackSize == 0) { + slots[i] = null; + } + } + + ItemStackUtil.addStacksToNBT(bag, slots); + } + + @Override public int getSizeInventory() { return 1; } + @Override public ItemStack getStackInSlot(int slot) { return slots[slot]; } + @Override public String getInventoryName() { return "container.plasticBag"; } + @Override public boolean hasCustomInventoryName() { return bag.hasDisplayName(); } + @Override public int getInventoryStackLimit() { return 1; } + @Override public boolean isUseableByPlayer(EntityPlayer player) { return true; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index 9b1a14ec3..c83ca9459 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -4,7 +4,7 @@ import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionData; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import net.minecraft.entity.Entity; @@ -27,16 +27,16 @@ public class ItemPollutionDetector extends Item { float soot = data.pollution[PollutionType.SOOT.ordinal()]; float poison = data.pollution[PollutionType.POISON.ordinal()]; float heavymetal = data.pollution[PollutionType.HEAVYMETAL.ordinal()]; - float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; + //float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; soot = ((int) (soot * 100)) / 100F; poison = ((int) (poison * 100)) / 100F; heavymetal = ((int) (heavymetal * 100)) / 100F; - fallout = ((int) (fallout * 100)) / 100F; + //fallout = ((int) (fallout * 100)) / 100F; - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 4000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 4000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 4000), (EntityPlayerMP) entity); + //PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity); } } diff --git a/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java index d1e5eef45..660c0ed82 100644 --- a/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java +++ b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java @@ -3,14 +3,15 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.blocks.BlockDummyable; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ChatBuilder; +import com.hbm.util.fauxpointtwelve.BlockPos; -import api.hbm.energy.IEnergyConductor; -import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IPowerNet; -import api.hbm.energy.PowerNet; +import api.hbm.energymk2.IEnergyConductorMK2; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; +import api.hbm.energymk2.PowerNetMK2; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; @@ -19,7 +20,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ItemPowerNetTool extends Item { @@ -41,58 +41,42 @@ public class ItemPowerNetTool extends Item { TileEntity te = world.getTileEntity(x, y, z); - if(!(te instanceof IEnergyConductor)) - return false; - if(world.isRemote) return true; - IEnergyConductor con = (IEnergyConductor) te; - IPowerNet net = con.getPowerNet(); - - if(net == null) { - player.addChatComponentMessage(ChatBuilder.start("Error: No network found! This should be impossible!").color(EnumChatFormatting.RED).flush()); + if((te instanceof IEnergyConductorMK2)) { + PowerNode node = Nodespace.getNode(world, x, y, z); + + if(node != null && node.hasValidNet()) { + + PowerNetMK2 net = node.net; + String id = Integer.toHexString(net.hashCode()); + player.addChatComponentMessage(ChatBuilder.start("Start of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); + player.addChatComponentMessage(ChatBuilder.start("Links: " + net.links.size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("Providers: " + net.providerEntries.size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("Receivers: " + net.receiverEntries.size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("End of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); + + for(PowerNode link : net.links) { + + for(BlockPos pos : link.positions) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0xffff00); + data.setFloat("scale", 0.5F); + data.setString("text", id); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX() + 0.5, pos.getY() + 1.5, pos.getZ() + 0.5), new TargetPoint(world.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), radius)); + } + } + + } else { + player.addChatComponentMessage(ChatBuilder.start("Error: No network found!").color(EnumChatFormatting.RED).flush()); + } + return true; } - if(!(net instanceof PowerNet)) { - player.addChatComponentMessage(ChatBuilder.start("Error: Cannot print diagnostic for non-standard power net implementation!").color(EnumChatFormatting.RED).flush()); - } - - PowerNet network = (PowerNet) net; - String id = Integer.toHexString(net.hashCode()); - - player.addChatComponentMessage(ChatBuilder.start("Start of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); - player.addChatComponentMessage(ChatBuilder.start("Links: " + network.getLinks().size()).color(EnumChatFormatting.YELLOW).flush()); - player.addChatComponentMessage(ChatBuilder.start("Proxies: " + network.getProxies().size()).color(EnumChatFormatting.YELLOW).flush()); - player.addChatComponentMessage(ChatBuilder.start("Subscribers: " + network.getSubscribers().size()).color(EnumChatFormatting.YELLOW).flush()); - player.addChatComponentMessage(ChatBuilder.start("End of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); - - for(IEnergyConductor link : network.getLinks()) { - Vec3 pos = link.getDebugParticlePos(); - - boolean errored = link.getPowerNet() != net; - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "debug"); - data.setInteger("color", errored ? 0xff0000 : 0xffff00); - data.setFloat("scale", 0.5F); - data.setString("text", id); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); - } - - for(IEnergyConnector subscriber : network.getSubscribers()) { - Vec3 pos = subscriber.getDebugParticlePos(); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "debug"); - data.setInteger("color", 0x0000ff); - data.setFloat("scale", 1.5F); - data.setString("text", id); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); - } - - return true; + return false; } private static final int radius = 20; diff --git a/src/main/java/com/hbm/items/tool/ItemRadarLinker.java b/src/main/java/com/hbm/items/tool/ItemRadarLinker.java new file mode 100644 index 000000000..53ee7e206 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemRadarLinker.java @@ -0,0 +1,30 @@ +package com.hbm.items.tool; + +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; +import com.hbm.util.CompatExternal; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class ItemRadarLinker extends ItemCoordinateBase { + + @Override + public boolean canGrabCoordinateHere(World world, int x, int y, int z) { + TileEntity tile = CompatExternal.getCoreFromPos(world, x, y, z); + return tile instanceof IRadarCommandReceiver || tile instanceof TileEntityMachineRadarScreen; + } + + @Override + public BlockPos getCoordinates(World world, int x, int y, int z) { + TileEntity tile = CompatExternal.getCoreFromPos(world, x, y, z); + return new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord); + } + + @Override + public void onTargetSet(World world, int x, int y, int z, EntityPlayer player) { + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemRepairKit.java b/src/main/java/com/hbm/items/tool/ItemRepairKit.java new file mode 100644 index 000000000..11bb57989 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemRepairKit.java @@ -0,0 +1,54 @@ +package com.hbm.items.tool; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemRepairKit extends Item { + + public ItemRepairKit(int dura) { + this.setMaxStackSize(1); + this.setMaxDamage(dura - 1); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(world.isRemote) return stack; + + boolean didSomething = false; + + for(int i = 0; i < 9; i++) { + + ItemStack item = player.inventory.mainInventory[i]; + + if(item != null && item.getItem() instanceof ItemGunBaseNT) { + ItemGunBaseNT gun = (ItemGunBaseNT) item.getItem(); + int configs = gun.getConfigCount(); + + for(int j = 0; j < configs; j++) { + GunConfig cfg = gun.getConfig(item, j); + float maxDura = cfg.getDurability(item); + float wear = Math.min(gun.getWear(item, j), maxDura); + if(wear > 0) { + gun.setWear(item, j, Math.max(0F, gun.getWear(item, j) - maxDura * 0.25F)); + didSomething = true; + } + } + } + } + + if(didSomething) { + if(this == ModItems.gun_kit_1) world.playSoundAtEntity(player, "hbm:item.spray", 1.0F, 1.0F); + if(this == ModItems.gun_kit_2) world.playSoundAtEntity(player, "hbm:item.repair", 1.0F, 1.0F); + + stack.damageItem(1, player); + } + + return stack; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemSatInterface.java b/src/main/java/com/hbm/items/tool/ItemSatInterface.java index f67a8cc9e..480993e35 100644 --- a/src/main/java/com/hbm/items/tool/ItemSatInterface.java +++ b/src/main/java/com/hbm/items/tool/ItemSatInterface.java @@ -6,14 +6,13 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemSatChip; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.SatPanelPacket; +import com.hbm.packet.toclient.SatPanelPacket; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -59,7 +58,7 @@ public class ItemSatInterface extends ItemSatChip implements IGUIProvider { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { if(this == ModItems.sat_interface) return new GUIScreenSatInterface(player); else if(this == ModItems.sat_coord) diff --git a/src/main/java/com/hbm/items/tool/ItemSettingsTool.java b/src/main/java/com/hbm/items/tool/ItemSettingsTool.java new file mode 100644 index 000000000..e6636d0f2 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemSettingsTool.java @@ -0,0 +1,139 @@ +package com.hbm.items.tool; + +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.HbmKeybinds; +import com.hbm.interfaces.ICopiable; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.PlayerInformPacket; +import com.hbm.util.ChatBuilder; +import com.hbm.util.Either; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +import javax.annotation.Nullable; +import java.util.List; + +public class ItemSettingsTool extends Item { + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) { + NBTTagList displayInfo; + if(!(entity instanceof EntityPlayerMP)) return; + + if(((EntityPlayer) entity).getHeldItem() == stack && stack.hasTagCompound()) { + EntityPlayer player = ((EntityPlayer) entity); + int delay = stack.stackTagCompound.getInteger("inputDelay"); + delay++; + displayInfo = stack.stackTagCompound.getTagList("displayInfo", 10); + + if (HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT) && delay > 4) { + int index = stack.stackTagCompound.getInteger("copyIndex") + 1; + if(index > displayInfo.tagCount() - 1) index = 0; + stack.stackTagCompound.setInteger("copyIndex", index); + delay = 0; + } + + stack.stackTagCompound.setInteger("inputDelay", delay); + if(world.getTotalWorldTime() % 5 != 0) return; + + if(displayInfo.tagCount() > 0){ + for (int j = 0; j < displayInfo.tagCount(); j++) { + NBTTagCompound nbt = displayInfo.getCompoundTagAt(j); + EnumChatFormatting format = stack.stackTagCompound.getInteger("copyIndex") == j ? EnumChatFormatting.AQUA : EnumChatFormatting.YELLOW; + PacketDispatcher.wrapper.sendTo( + new PlayerInformPacket(ChatBuilder.startTranslation(nbt.getString("info")) + .color(format) + .flush() + , 897 + j, 4000 ), (EntityPlayerMP) entity); + } + } + } + + } + @SuppressWarnings("unchecked") + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + list.add("Can copy the settings (filters, fluid ID, etc) of machines"); + list.add("Shift right-click to copy, right click to paste"); + list.add("Ctrl click on pipes to paste settings to multiple pipes"); + if(stack.stackTagCompound != null) { + NBTTagCompound nbt = stack.stackTagCompound; + if (nbt.hasKey("tileName")){ + list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey(nbt.getString("tileName") + ".name")); + } else { + list.add(EnumChatFormatting.RED + " None "); + } + + } + } + @Override + public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + Either schrodinger = getCopyInfoSource(world, x, y, z); + if(schrodinger == null) return false; + ICopiable copiable = schrodinger.cast(); + + if(player.isSneaking()) { + stack.stackTagCompound = copiable.getSettings(world, x, y, z); + if(stack.stackTagCompound != null) { + + stack.stackTagCompound.setString("tileName", copiable.getSettingsSourceID(schrodinger)); + stack.stackTagCompound.setInteger("copyIndex", 0); + stack.stackTagCompound.setInteger("inputDelay", 0); + String[] info = copiable.infoForDisplay(world, x, y, z); + if (info != null) { + NBTTagList displayInfo = new NBTTagList(); + for (String str : info) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("info", str); + displayInfo.appendTag(nbt); + } + stack.stackTagCompound.setTag("displayInfo", displayInfo); + } + + if (world.isRemote) { + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Copied settings of " + copiable.getSettingsSourceDisplay(schrodinger)).color(EnumChatFormatting.AQUA).flush()); + } + } else { + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Copy failed, machine has no settings tool support: " + copiable.getSettingsSourceDisplay(schrodinger)).color(EnumChatFormatting.RED).flush()); + } + + } else if(stack.hasTagCompound()) { + int index = stack.stackTagCompound.getInteger("copyIndex"); + copiable.pasteSettings(stack.stackTagCompound, index, world, player, x, y, z); + } + + return !world.isRemote; + } + + @Nullable + private Either getCopyInfoSource(World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof ICopiable) { + return Either.left(te); + } + + Block block = world.getBlock(x, y, z); + if(block instanceof ICopiable) { + return Either.right(block); + } + + return null; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemStructurePattern.java b/src/main/java/com/hbm/items/tool/ItemStructurePattern.java index 0e4832ad4..04cfbab21 100644 --- a/src/main/java/com/hbm/items/tool/ItemStructurePattern.java +++ b/src/main/java/com/hbm/items/tool/ItemStructurePattern.java @@ -46,10 +46,12 @@ public class ItemStructurePattern extends ItemStructureTool { for(int iy = minY; iy <= maxY; iy++) { for(int iz = minZ; iz <= maxZ; iz++) { - Block b = world.getBlock(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); + Block b = world.getBlock(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); + if(b.isAir(world, ix + pos.getX(), iy + pos.getY(), iz + pos.getZ())) continue; + int meta = world.getBlockMetadata(ix + pos.getX(), iy + pos.getY(), iz + pos.getZ()); - message.concat("placeBlockAtCurrentPosition(world, " + b.getUnlocalizedName() + ", " + meta + ", " + ix + ", " + iy + ", " + iz + ", box);\n"); + message += "placeBlockAtCurrentPosition(world, " + b.getUnlocalizedName() + ", " + meta + ", " + ix + ", " + iy + ", " + iz + ", box);\n"; } } } diff --git a/src/main/java/com/hbm/items/tool/ItemStructureTool.java b/src/main/java/com/hbm/items/tool/ItemStructureTool.java index 62e43b03c..de10db59e 100644 --- a/src/main/java/com/hbm/items/tool/ItemStructureTool.java +++ b/src/main/java/com/hbm/items/tool/ItemStructureTool.java @@ -137,6 +137,9 @@ public abstract class ItemStructureTool extends Item implements ILookOverlay { } } + if(Minecraft.getMinecraft().thePlayer.isSneaking()) + text.add("B: " + world.getBlock(x, y, z).getUnlocalizedName() + ", M: " + world.getBlockMetadata(x, y, z)); + ILookOverlay.printGeneric(event, this.getItemStackDisplayName(stack), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/items/tool/ItemSurveyScanner.java b/src/main/java/com/hbm/items/tool/ItemSurveyScanner.java index 0e3517671..e4906b2ea 100644 --- a/src/main/java/com/hbm/items/tool/ItemSurveyScanner.java +++ b/src/main/java/com/hbm/items/tool/ItemSurveyScanner.java @@ -37,16 +37,13 @@ public class ItemSurveyScanner extends Item { Block block = world.getBlock(x + a * 5, i, z + b * 5); - if(block == ModBlocks.ore_oil) - hasOil = true; - else if(block == ModBlocks.ore_coltan) - hasColtan = true; - else if(block == ModBlocks.stone_depth) - hasDepth = true; - else if(block == ModBlocks.stone_gneiss) - hasSchist = true; - else if(block == ModBlocks.ore_australium) - hasAussie = true; + //wow, this sucks! + if(block == ModBlocks.ore_oil) hasOil = true; + else if(block == ModBlocks.ore_coltan) hasColtan = true; + else if(block == ModBlocks.stone_depth) hasDepth = true; + else if(block == ModBlocks.stone_depth_nether) hasDepth = true; + else if(block == ModBlocks.stone_gneiss) hasSchist = true; + else if(block == ModBlocks.ore_australium) hasAussie = true; } Block block = world.getBlock(x + a * 2, 0, z + b * 2); @@ -57,18 +54,12 @@ public class ItemSurveyScanner extends Item { } } - if(hasOil) - player.addChatComponentMessage(new ChatComponentText("Found OIL!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.BLACK))); - if(hasColtan) - player.addChatComponentMessage(new ChatComponentText("Found COLTAN!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); - if(hasDepth) - player.addChatComponentMessage(new ChatComponentText("Found DEPTH ROCK!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GRAY))); - if(hasSchist) - player.addChatComponentMessage(new ChatComponentText("Found SCHIST!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.DARK_AQUA))); - if(hasAussie) - player.addChatComponentMessage(new ChatComponentText("Found AUSTRALIUM!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - if(tile != null && tile.resource != null) - player.addChatComponentMessage(new ChatComponentText("Found BEDROCK ORE for " + tile.resource.getDisplayName() + "!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + if(hasOil) player.addChatComponentMessage(new ChatComponentText("Found OIL!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.BLACK))); + if(hasColtan) player.addChatComponentMessage(new ChatComponentText("Found COLTAN!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); + if(hasDepth) player.addChatComponentMessage(new ChatComponentText("Found DEPTH ROCK!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GRAY))); + if(hasSchist) player.addChatComponentMessage(new ChatComponentText("Found SCHIST!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.DARK_AQUA))); + if(hasAussie) player.addChatComponentMessage(new ChatComponentText("Found AUSTRALIUM!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + if(tile != null && tile.resource != null) player.addChatComponentMessage(new ChatComponentText("Found BEDROCK ORE for " + tile.resource.getDisplayName() + "!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); } player.swingItem(); diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java index 3d6313596..943dfd7ab 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -106,7 +106,7 @@ public class ItemSwordAbilityPower extends ItemSwordAbility implements IBatteryI } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return maxPower; } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index f0c4496ad..99ce2d356 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -13,7 +13,7 @@ import com.hbm.handler.ToolAbility; import com.hbm.handler.ToolAbility.*; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import com.hbm.handler.WeaponAbility; @@ -49,7 +49,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc public static enum EnumToolType { PICKAXE( - Sets.newHashSet(new Material[] { Material.iron, Material.anvil, Material.rock }), + Sets.newHashSet(new Material[] { Material.iron, Material.anvil, Material.rock, Material.glass }), Sets.newHashSet(new Block[] { Blocks.cobblestone, Blocks.double_stone_slab, Blocks.stone_slab, Blocks.stone, Blocks.sandstone, Blocks.mossy_cobblestone, Blocks.iron_ore, Blocks.iron_block, Blocks.coal_ore, Blocks.gold_block, Blocks.gold_ore, Blocks.diamond_ore, Blocks.diamond_block, Blocks.ice, Blocks.netherrack, Blocks.lapis_ore, Blocks.lapis_block, Blocks.redstone_ore, Blocks.lit_redstone_ore, Blocks.rail, Blocks.detector_rail, Blocks.golden_rail, Blocks.activator_rail }) ), AXE( @@ -61,7 +61,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc Sets.newHashSet(new Block[] { Blocks.grass, Blocks.dirt, Blocks.sand, Blocks.gravel, Blocks.snow_layer, Blocks.snow, Blocks.clay, Blocks.farmland, Blocks.soul_sand, Blocks.mycelium }) ), MINER( - Sets.newHashSet(new Material[] { Material.grass, Material.iron, Material.anvil, Material.rock, Material.clay, Material.sand, Material.ground, Material.snow, Material.craftedSnow }) + Sets.newHashSet(new Material[] { Material.grass, Material.iron, Material.anvil, Material.glass, Material.rock, Material.clay, Material.sand, Material.ground, Material.snow, Material.craftedSnow }) ); private EnumToolType(Set materials) { @@ -208,7 +208,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc } list.add("Right click to cycle through abilities!"); - list.add("Sneak-click to turn abilitty off!"); + list.add("Sneak-click to turn ability off!"); } if(!this.hitAbility.isEmpty()) { diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java index fd116a9b0..55ee9cf55 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java @@ -4,7 +4,6 @@ import java.util.HashSet; import java.util.List; import com.hbm.inventory.fluid.FluidType; -import com.hbm.util.I18nUtil; import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; @@ -38,7 +37,7 @@ public class ItemToolAbilityFueled extends ItemToolAbility implements IFillableI list.add(EnumChatFormatting.GOLD + "Fuel: " + this.getFill(stack) + "/" + this.maxFuel + "mB"); for(FluidType type : acceptedFuels) { - list.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(type.getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "- " + type.getLocalizedName()); } super.addInformation(stack, player, list, ext); @@ -69,6 +68,7 @@ public class ItemToolAbilityFueled extends ItemToolAbility implements IFillableI return true; } + @Override public int getFill(ItemStack stack) { if(stack.stackTagCompound == null) { stack.stackTagCompound = new NBTTagCompound(); @@ -121,4 +121,9 @@ public class ItemToolAbilityFueled extends ItemToolAbility implements IFillableI tool.setFill(stack, 0); return stack; } + + @Override + public FluidType getFirstFluidType(ItemStack stack) { + return null; + } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java index 80fb5fa87..c0c025d35 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -102,7 +102,7 @@ public class ItemToolAbilityPower extends ItemToolAbility implements IBatteryIte } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return maxPower; } diff --git a/src/main/java/com/hbm/items/tool/ItemTurretControl.java b/src/main/java/com/hbm/items/tool/ItemTurretControl.java index 44fcfafef..bf976410d 100644 --- a/src/main/java/com/hbm/items/tool/ItemTurretControl.java +++ b/src/main/java/com/hbm/items/tool/ItemTurretControl.java @@ -168,10 +168,6 @@ public class ItemTurretControl extends Item { j = event.charge; if(stack.hasTagCompound()) { - int x = stack.getTagCompound().getInteger("xCoord"); - int y = stack.getTagCompound().getInteger("yCoord"); - int z = stack.getTagCompound().getInteger("zCoord"); - /// /// } } @@ -204,8 +200,6 @@ public class ItemTurretControl extends Item { if(world.getBlock(x, y, z) instanceof TurretBase) { - TileEntity te = world.getTileEntity(x, y, z); - /// /// } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 4c80ccab4..348203890 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,9 +2,10 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.lib.Library; +import com.hbm.particle.helper.ExplosionCreator; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -32,7 +33,32 @@ public class ItemWandD extends Item { vnt.setSFX(new ExplosionEffectStandard()); vnt.explode();*/ - PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + + /*int i = pos.blockX >> 4; + int j = pos.blockZ >> 4; + + i = (i << 4) + 8; + j = (j << 4) + 8; + Component comp = new RuralHouse1(world.rand, i, j); + comp.addComponentParts(world, world.rand, new StructureBoundingBox(i, j, i + 32, j + 32));*/ + + ExplosionVNT vnt = new ExplosionVNT(world, pos.blockX + 0.5, pos.blockY + 1, pos.blockZ + 0.5, 15F); + vnt.makeStandard(); + vnt.setSFX(); + vnt.setBlockAllocator(new BlockAllocatorStandard(32)); + vnt.explode(); + + ExplosionCreator.composeEffectStandard(world, pos.blockX + 0.5, pos.blockY + 0.5, pos.blockZ + 0.5); + + /*for(int i = 0; i < 10; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debris"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.blockX + world.rand.nextGaussian() * 3, pos.blockY - 2, pos.blockZ + world.rand.nextGaussian() * 3), new TargetPoint(world.provider.dimensionId, pos.blockX, pos.blockY, pos.blockZ, 100)); + } + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "oomph"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.blockX, pos.blockY, pos.blockZ), new TargetPoint(world.provider.dimensionId, pos.blockX, pos.blockY, pos.blockZ, 100));*/ /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); @@ -42,11 +68,19 @@ public class ItemWandD extends Item { TimeAnalyzer.dump();*/ /*TomSaveData data = TomSaveData.forWorld(world); - data.impact = false; + data.impact = true; data.fire = 0F; data.dust = 0F; data.markDirty();*/ + /*for(int i = -5; i <= 5; i++) { + for(int j = -5; j <= 5; j++) { + WorldUtil.setBiome(world, pos.blockX + i, pos.blockZ + j, BiomeGenCraterBase.craterBiome); + } + } + + WorldUtil.syncBiomeChange(world, pos.blockX, pos.blockZ);*/ + /*EntityTomBlast tom = new EntityTomBlast(world); tom.posX = pos.blockX; tom.posY = pos.blockY; @@ -54,15 +88,19 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - /*EntityNukeTorex torex = new EntityNukeTorex(world); - torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); - torex.getDataWatcher().updateObject(10, 1.5F); - world.spawnEntityInWorld(torex); - EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); + /*List del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50)); + + if(!del.isEmpty()) { + for(EntityNukeTorex torex : del) torex.setDead(); + } else { + EntityNukeTorex.statFac(world, pos.blockX, pos.blockY + 1, pos.blockZ, 150); + }*/ + + /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); EntityTrackerEntry entry = (EntityTrackerEntry) map.lookup(torex.getEntityId()); - entry.blocksDistanceThreshold = 1000; - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, 150, pos.blockX, pos.blockY + 1, pos.blockZ));*/ + entry.blocksDistanceThreshold = 1000;*/ + //world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, 150, pos.blockX, pos.blockY + 1, pos.blockZ)); //DungeonToolbox.generateBedrockOreWithChance(world, world.rand, pos.blockX, pos.blockZ, EnumBedrockOre.TITANIUM, new FluidStack(Fluids.SULFURIC_ACID, 500), 2, 1); diff --git a/src/main/java/com/hbm/items/tool/ItemWandS.java b/src/main/java/com/hbm/items/tool/ItemWandS.java index ea7ba07fa..303a3114f 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandS.java +++ b/src/main/java/com/hbm/items/tool/ItemWandS.java @@ -1,117 +1,7 @@ package com.hbm.items.tool; -import java.util.List; -import java.util.Random; - -import com.hbm.world.machine.FWatz; -import com.hbm.world.machine.NuclearReactor; -import com.hbm.world.machine.Watz; - -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; public class ItemWandS extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Creative-only item"); - list.add("\"Instant structures for everyone!\""); - list.add("(Cycle with shift-right click,"); - list.add("spawn structures with right click!)"); - if(itemstack.stackTagCompound != null) - { - switch(itemstack.stackTagCompound.getInteger("building")) - { - case 0: - list.add("Structure: Nuclear Reactor"); - break; - case 1: - list.add("Structure: Watz Power Plant"); - break; - case 2: - list.add("Structure: Fusionary Watz Plant"); - break; - } - } - } - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) - { - if(stack.stackTagCompound == null) - { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setInteger("building", 0); - } - - boolean up = player.rotationPitch <= 0.5F; - - if(!world.isRemote) - { - Random rand = new Random(); - - switch(stack.stackTagCompound.getInteger("building")) - { - case 0: - new NuclearReactor().generate(world, rand, x, up ? y : y - 4, z); - break; - case 1: - new Watz().generate(world, rand, x, up ? y : y - 12, z); - break; - case 2: - new FWatz().generateHull(world, rand, x, up ? y : y - 18, z); - break; - } - - } - - return true; - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if(player.isSneaking()) - { - if(stack.stackTagCompound == null) - { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setInteger("building", 0); - if(world.isRemote) - player.addChatMessage(new ChatComponentText("Set Structure: Nuclear Reactor")); - } else { - int i = stack.stackTagCompound.getInteger("building"); - i++; - stack.stackTagCompound.setInteger("building", i); - if(i >= 3) { - stack.stackTagCompound.setInteger("building", 0); - } - - if(world.isRemote) - { - switch(i) - { - case 0: - player.addChatMessage(new ChatComponentText("Set Structure: Nuclear Reactor")); - break; - case 1: - player.addChatMessage(new ChatComponentText("Set Structure: Watz Power Plant")); - break; - case 2: - player.addChatMessage(new ChatComponentText("Set Structure: Fusionary Watz Plant")); - break; - default: - player.addChatMessage(new ChatComponentText("Set Structure: Nuclear Reactor")); - break; - } - } - } - } - - return stack; - } } diff --git a/src/main/java/com/hbm/items/tool/ItemWiring.java b/src/main/java/com/hbm/items/tool/ItemWiring.java index fc694ee82..cd6b5d787 100644 --- a/src/main/java/com/hbm/items/tool/ItemWiring.java +++ b/src/main/java/com/hbm/items/tool/ItemWiring.java @@ -60,17 +60,24 @@ public class ItemWiring extends Item { TileEntityPylonBase first = (TileEntityPylonBase) world.getTileEntity(x1, y1, z1); TileEntityPylonBase second = ((TileEntityPylonBase) te); - - if(TileEntityPylonBase.canConnect(first, second)) { - - first.addConnection(x, y, z); - second.addConnection(x1, y1, z1); - player.addChatMessage(new ChatComponentText("Wire end")); - - } else { - player.addChatMessage(new ChatComponentText("Wire error")); + + switch (TileEntityPylonBase.canConnect(first, second)) { + case 0: + first.addConnection(x, y, z); + second.addConnection(x1, y1, z1); + player.addChatMessage(new ChatComponentText("Wire end")); + break; + case 1: + player.addChatMessage(new ChatComponentText("Wire error - Pylons are not the same type")); + break; + case 2: + player.addChatMessage(new ChatComponentText("Wire error - Cannot connect to the same pylon")); + break; + case 3: + player.addChatMessage(new ChatComponentText("Wire error - Pylon is too far away")); + break; } - + stack.stackTagCompound = null; } else { diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index 1fc052d41..c59daa016 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Random; import com.google.common.collect.Multimap; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityRubble; import com.hbm.items.ModItems; @@ -152,12 +152,7 @@ public class WeaponSpecial extends ItemSword { if(entityPlayer.fallDistance >= 20 && !((EntityPlayer)entityPlayer).capabilities.isCreativeMode) { if(!world.isRemote) { world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, 100, entity.posX, entity.posY, entity.posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, 100 * 0.005F); - entity2.posX = entity.posX; - entity2.posY = entity.posY; - entity2.posZ = entity.posZ; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, entity.posX, entity.posY, entity.posZ, 100); } } } diff --git a/src/main/java/com/hbm/items/weapon/GunB92Cell.java b/src/main/java/com/hbm/items/weapon/GunB92Cell.java index eac40f6f3..282e228d3 100644 --- a/src/main/java/com/hbm/items/weapon/GunB92Cell.java +++ b/src/main/java/com/hbm/items/weapon/GunB92Cell.java @@ -38,7 +38,7 @@ public class GunB92Cell extends Item { list.add("Draws energy from the B92, allowing you to"); list.add("reload it an additional 25 times."); - list.add("The cell will permanently hold it's charge,"); + list.add("The cell will permanently hold its charge,"); list.add("it is not meant to be used as a battery enhancement"); list.add("for the B92, but rather as a bomb."); list.add(""); diff --git a/src/main/java/com/hbm/items/weapon/GunB93.java b/src/main/java/com/hbm/items/weapon/GunB93.java deleted file mode 100644 index 245279dd9..000000000 --- a/src/main/java/com/hbm/items/weapon/GunB93.java +++ /dev/null @@ -1,270 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.projectile.EntityModBeam; -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.EnumRarity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunB93 extends Item { - - Random rand = new Random(); - - public int dmgMin = 16; - public int dmgMax = 28; - - public GunB93() { - - this.maxStackSize = 1; - } - - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - if (!p_77615_3_.isSneaking()) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = true; - - if (flag) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - if (!p_77615_2_.isRemote) { - - EntityModBeam entityarrow1; - entityarrow1 = new EntityModBeam(p_77615_2_, p_77615_3_, 3.0F); - entityarrow1.mode = getPower(p_77615_1_) - 1; - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.spawnEntityInWorld(entityarrow1); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.sparkShoot", 5.0F, 1.0F); - } - - setAnim(p_77615_1_, 1); - setPower(p_77615_1_, 0); - } - } else { - } - } - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { - int j = getAnim(stack); - - if (j > 0) { - if (j < 30) - setAnim(stack, j + 1); - else - setAnim(stack, 0); - - if (j == 15) { - world.playSoundAtEntity(entity, "hbm:weapon.b92Reload", 2F, 0.9F); - setPower(stack, getPower(stack) + 1); - - if(getPower(stack) > 10) { - - setPower(stack, 0); - - if(!world.isRemote) { - EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(world, entity.posX, entity.posY, entity.posZ, 50); - if(!ex.isDead) { - world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "random.explode", 100.0f, world.rand.nextFloat() * 0.1F + 0.9F); - - world.spawnEntityInWorld(ex); - - EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, 50); - cloud.posX = entity.posX; - cloud.posY = entity.posY; - cloud.posZ = entity.posZ; - world.spawnEntityInWorld(cloud); - } - } - } - } - } - - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - if (!p_77659_3_.isSneaking() && getPower(p_77659_1_) > 0) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - if (this.getAnim(p_77659_1_) == 0) - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } else { - if (getAnim(p_77659_1_) == 0) { - setAnim(p_77659_1_, 1); - } - } - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3.5, 0)); - return multimap; - } - - private static int getAnim(ItemStack stack) { - if (stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - return 0; - } - - return stack.stackTagCompound.getInteger("animation"); - - } - - private static void setAnim(ItemStack stack, int i) { - if (stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("animation", i); - - } - - private static int getPower(ItemStack stack) { - if (stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - return 0; - } - - return stack.stackTagCompound.getInteger("energy"); - - } - - private static void setPower(ItemStack stack, int i) { - if (stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("energy", i); - - } - - public static float getRotationFromAnim(ItemStack stack) { - float rad = 0.0174533F; - rad *= 7.5F; - int i = getAnim(stack); - - if (i < 10) - return 0; - i -= 10; - - if (i < 6) - return rad * i; - if (i > 14) - return rad * (5 - (i - 15)); - return rad * 5; - } - - public static float getOffsetFromAnim(ItemStack stack) { - float i = getAnim(stack); - - if (i < 10) - return 0; - i -= 10; - - if (i < 10) - return i / 10; - else - return 2 - (i / 10); - } - - public static float getTransFromAnim(ItemStack stack) { - float i = getAnim(stack); - - if (i < 10) - return 0; - i -= 10; - - if (i > 4 && i < 10) - return (i - 5) * 0.05F; - - if (i > 9 && i < 15) - return (10 * 0.05F) - ((i - 5) * 0.05F); - - return 0; - } - - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) { - - return EnumRarity.uncommon; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunCryolator.java b/src/main/java/com/hbm/items/weapon/GunCryolator.java deleted file mode 100644 index 1a0c8b44f..000000000 --- a/src/main/java/com/hbm/items/weapon/GunCryolator.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityLN2; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunCryolator extends Item { - - Random rand = new Random(); - - public GunCryolator() { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_cryolator_ammo))) { - EntityLN2 entityarrow = new EntityLN2(world, player, 3.0F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - if (count % 10 == 0) - player.inventory.consumeInventoryItem(ModItems.gun_cryolator_ammo); - } - - if (count % 5 == 0) - world.playSoundAtEntity(player, "hbm:weapon.cryolatorShoot", 1.0F, 1F); - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Ice to meet you!"); - list.add(""); - list.add("Ammo: Cryolator Ammo"); - list.add("Damage: 5"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java b/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java deleted file mode 100644 index 3eaf7a036..000000000 --- a/src/main/java/com/hbm/items/weapon/GunDampfmaschine.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.missile.EntityBombletSelena; -import com.hbm.entity.projectile.EntityRocket; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunDampfmaschine extends Item { - - Random rand = new Random(); - - public GunDampfmaschine() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - if (true) { - - if(!player.isSneaking()) { - EntityRocket entitybullet = new EntityRocket(world, player, 3.0F); - - world.playSoundAtEntity(player, "hbm:block.crateBreak", 10.0F, 0.9F + (rand.nextFloat() * 0.2F)); - if(count == this.getMaxItemUseDuration(stack)) - world.playSoundAtEntity(player, "hbm:alarm.autopilot", 100.0F, 1.0F); - - if (!world.isRemote) { - world.spawnEntityInWorld(entitybullet); - } - } else { - - world.playSoundAtEntity(player, "mob.pig.say", 10.0F, 0.9F + (rand.nextFloat() * 0.2F)); - - if(count % 10 == 0) { - EntityBombletSelena bomb = new EntityBombletSelena(world); - bomb.posX = player.posX; - bomb.posY = player.posY + player.eyeHeight; - bomb.posZ = player.posZ; - bomb.motionX = player.getLookVec().xCoord * 5; - bomb.motionY = player.getLookVec().yCoord * 5; - bomb.motionZ = player.getLookVec().zCoord * 5; - if(count == this.getMaxItemUseDuration(stack)) - world.playSoundAtEntity(player, "hbm:entity.chopperDrop", 10.0F, 1.0F); - - if (!world.isRemote) { - world.spawnEntityInWorld(bomb); - } - } - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Sometimes, to do what’s right,"); - list.add("you have to become the villain of"); - list.add("the pi-I mean me too, thanks."); - list.add(""); - list.add("oh sorry how did this get here i'm not good with computer can somebody tell me how i can get out of here oh fiddlesticks this is not good oh no please can anybody hear me i am afraid please for the love of god somebody get me out of here"); - list.add(""); - list.add("Ammo: orang"); - list.add("Damage: aaaaaaaaa"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", -2, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunDash.java b/src/main/java/com/hbm/items/weapon/GunDash.java deleted file mode 100644 index c0ebd1e06..000000000 --- a/src/main/java/com/hbm/items/weapon/GunDash.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityLaser; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunDash extends Item { - - Random rand = new Random(); - - public GunDash() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_dash_ammo)) - && count % 2 == 0) { - - EntityLaser laser = new EntityLaser(world, player); - MovingObjectPosition pos = Library.rayTrace(player, 200, 1.0F); - laser.posX = pos.blockX + 0.5; - laser.posY = pos.blockY + 0.5; - laser.posZ = pos.blockZ + 0.5; - - world.playSoundAtEntity(player, "hbm:weapon.rifleShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (!flag) { - player.inventory.consumeInventoryItem(ModItems.gun_dash_ammo); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(laser); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Ratatatatatatatata!!"); - list.add(""); - list.add("Ammo: SMG Round"); - list.add("Damage: 2 - 8"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunDefabricator.java b/src/main/java/com/hbm/items/weapon/GunDefabricator.java deleted file mode 100644 index ce1457033..000000000 --- a/src/main/java/com/hbm/items/weapon/GunDefabricator.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunDefabricator extends Item { - - Random rand = new Random(); - - public GunDefabricator() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_defabricator_ammo)) - && count % 2 == 0) { - EntityBullet entitybullet = new EntityBullet(world, player, 3.0F, 40, 120, false, "tauDay"); - entitybullet.setDamage(40 + rand.nextInt(120 - 40)); - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.defabShoot", 1.0F, 0.9F + (rand.nextFloat() * 0.2F)); - if(count == this.getMaxItemUseDuration(stack)) - world.playSoundAtEntity(player, "hbm:weapon.defabSpinup", 1.0F, 1.0F); - - if(count % 20 == 0 && !flag) - player.inventory.consumeInventoryItem(ModItems.gun_defabricator_ammo); - - if (!world.isRemote) { - world.spawnEntityInWorld(entitybullet); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(MainRegistry.polaroidID == 11) - list.add("Did you set your alarm for volcano day?"); - else - list.add("BAD WOLF"); - list.add(""); - list.add("Ammo: Defabricator Energy Cell"); - list.add("Damage: 40 - 120"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 6.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunEMPRay.java b/src/main/java/com/hbm/items/weapon/GunEMPRay.java deleted file mode 100644 index 7edf7a31a..000000000 --- a/src/main/java/com/hbm/items/weapon/GunEMPRay.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.entity.projectile.EntityDischarge; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunEMPRay extends Item { - - Random rand = new Random(); - - public GunEMPRay() { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - if (event.isCanceled()) { - return; - } - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (!p_77615_3_.isSneaking()) { - if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_emp_ammo)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 25.0D) { - return; - } - - if (j > 25.0F) { - f = 25.0F; - } - - EntityDischarge entityarrow = new EntityDischarge(p_77615_2_, p_77615_3_, 1.0F); - - entityarrow.setIsCritical(true); - - p_77615_1_.damageItem(1, p_77615_3_); - // p_77615_2_.playSoundAtEntity(p_77615_3_, "tile.piston.out", - // 1.0F, 0.5F); - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.fatmanShoot", 1.0F, 1F); - - if (!flag) { - p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_emp_ammo); - } - - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(entityarrow); - } - } - } else { - if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_emp_ammo)) { - - if (j < 25.0D) { - return; - } - - if (!flag) { - p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_emp_ammo); - } - - EntityEMPBlast cloud = new EntityEMPBlast(p_77615_3_.worldObj, 25); - cloud.posX = p_77615_3_.posX; - cloud.posY = p_77615_3_.posY + 1.0F; - cloud.posZ = p_77615_3_.posZ; - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(cloud); - } - - ExplosionNukeGeneric.empBlast(p_77615_3_.worldObj, (int)p_77615_3_.posX, (int)p_77615_3_.posY, (int)p_77615_3_.posZ, 25); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Hold right mouse button"); - list.add("to shoot ball lightning,"); - list.add("sneak to create EMP wave!"); - list.add(""); - list.add("Ammo: Energy Cell"); - list.add("Damage: 25 - 35"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunEuthanasia.java b/src/main/java/com/hbm/items/weapon/GunEuthanasia.java deleted file mode 100644 index adf81090d..000000000 --- a/src/main/java/com/hbm/items/weapon/GunEuthanasia.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunEuthanasia extends Item { - - Random rand = new Random(); - - public GunEuthanasia() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_euthanasia_ammo)) - && count % 8 == 0) { - - int deadly = rand.nextInt(5); - - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 2, 8, deadly == 0, false); - entityarrow.setDamage(1 + rand.nextInt(3)); - entityarrow.antidote = true; - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.rifleShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_euthanasia_ammo); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Say hello to my little syringe gun!"); - list.add(""); - list.add("Ammo: Syringe"); - list.add("Damage: 1 - 4"); - list.add("Syringes have a 20% chance to instakill the enemy."); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunFolly.java b/src/main/java/com/hbm/items/weapon/GunFolly.java deleted file mode 100644 index 9fa3a0a8a..000000000 --- a/src/main/java/com/hbm/items/weapon/GunFolly.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.ModItems; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class GunFolly extends Item implements IHoldableWeapon { - - @Override - public Crosshair getCrosshair() { - return Crosshair.L_SPLIT; - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - int state = getState(stack); - - if(state == 0) { - - world.playSoundAtEntity(player, "hbm:weapon.follyOpen", 1.0F, 1.0F); - setState(stack, 1); - - } else if(state == 1) { - - if(player.inventory.hasItem(ModItems.ammo_folly)) { - - world.playSoundAtEntity(player, "hbm:weapon.follyReload", 1.0F, 1.0F); - player.inventory.consumeInventoryItem(ModItems.ammo_folly); - setState(stack, 2); - } else { - - world.playSoundAtEntity(player, "hbm:weapon.follyClose", 1.0F, 1.0F); - setState(stack, 0); - } - - } else if(state == 2) { - - world.playSoundAtEntity(player, "hbm:weapon.follyClose", 1.0F, 1.0F); - setState(stack, 3); - setTimer(stack, 100); - } else if(state == 3) { - - if(getTimer(stack) == 0) { - - setState(stack, 0); - world.playSoundAtEntity(player, "hbm:weapon.follyFire", 1.0F, 1.0F); - - double mult = 1.75D; - - player.motionX -= player.getLookVec().xCoord * mult; - player.motionY -= player.getLookVec().yCoord * mult; - player.motionZ -= player.getLookVec().zCoord * mult; - - if (!world.isRemote) { - EntityBulletBase bullet = new EntityBulletBase(world, BulletConfigSyncingUtil.TEST_CONFIG, player); - world.spawnEntityInWorld(bullet); - - for(int i = 0; i < 25; i++) { - EntitySSmokeFX flame = new EntitySSmokeFX(world); - - flame.motionX = player.getLookVec().xCoord; - flame.motionY = player.getLookVec().yCoord; - flame.motionZ = player.getLookVec().zCoord; - - flame.posX = player.posX + flame.motionX + world.rand.nextGaussian() * 0.35; - flame.posY = player.posY + flame.motionY + world.rand.nextGaussian() * 0.35 + player.eyeHeight; - flame.posZ = player.posZ + flame.motionZ + world.rand.nextGaussian() * 0.35; - - world.spawnEntityInWorld(flame); - } - } - } - } - - return stack; - } - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) { - - if(getState(stack) == 3) { - - if(isCurrentItem) { - int timer = getTimer(stack); - - if(timer > 0) { - timer--; - - if(timer % 20 == 0 && timer != 0) - world.playSoundAtEntity(entity, "hbm:weapon.follyBuzzer", 1.0F, 1.0F); - - if(timer == 0) - world.playSoundAtEntity(entity, "hbm:weapon.follyAquired", 1.0F, 1.0F); - - setTimer(stack, timer); - } - } else { - setTimer(stack, 100); - } - } - } - - //0: closed, empty, - //1: open, empty - //2: open, full - //3: closed, full - public static void setState(ItemStack stack, int i) { - writeNBT(stack, "state", i); - } - - public static int getState(ItemStack stack) { - return readNBT(stack, "state"); - } - - public static void setTimer(ItemStack stack, int i) { - writeNBT(stack, "timer", i); - } - - public static int getTimer(ItemStack stack) { - return readNBT(stack, "timer"); - } - - private static void writeNBT(ItemStack stack, String key, int value) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setInteger(key, value); - } - - private static int readNBT(ItemStack stack, String key) { - - if(!stack.hasTagCompound()) - return 0; - - return stack.stackTagCompound.getInteger(key); - } - -} diff --git a/src/main/java/com/hbm/items/weapon/GunHP.java b/src/main/java/com/hbm/items/weapon/GunHP.java deleted file mode 100644 index 8d3d0f31b..000000000 --- a/src/main/java/com/hbm/items/weapon/GunHP.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityPlasmaBeam; -import com.hbm.items.ModItems; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunHP extends Item { - - Random rand = new Random(); - - public GunHP() { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_hp_ammo))) { - - EntityPlasmaBeam plasma = new EntityPlasmaBeam(world, player, 1F); - EntityPlasmaBeam plasma1 = new EntityPlasmaBeam(world, player, 1F); - EntityPlasmaBeam plasma2 = new EntityPlasmaBeam(world, player, 1F); - EntityPlasmaBeam plasma3 = new EntityPlasmaBeam(world, player, 1F); - EntityPlasmaBeam plasma4 = new EntityPlasmaBeam(world, player, 1F); - plasma1.motionX *= (0.75 + (rand.nextDouble() * 0.5)); - plasma1.motionY *= (0.75 + (rand.nextDouble() * 0.5)); - plasma1.motionZ *= (0.75 + (rand.nextDouble() * 0.5)); - plasma2.motionX *= (0.75 + (rand.nextDouble() * 0.5)); - plasma2.motionY *= (0.75 + (rand.nextDouble() * 0.5)); - plasma2.motionZ *= (0.75 + (rand.nextDouble() * 0.5)); - plasma3.motionX *= (0.75 + (rand.nextDouble() * 0.5)); - plasma3.motionY *= (0.75 + (rand.nextDouble() * 0.5)); - plasma3.motionZ *= (0.75 + (rand.nextDouble() * 0.5)); - plasma4.motionX *= (0.75 + (rand.nextDouble() * 0.5)); - plasma4.motionY *= (0.75 + (rand.nextDouble() * 0.5)); - plasma4.motionZ *= (0.75 + (rand.nextDouble() * 0.5)); - - if (flag) { - plasma.canBePickedUp = 2; - } else { - if (count % 20 == 0) - player.inventory.consumeInventoryItem(ModItems.gun_hp_ammo); - } - - if (count == this.getMaxItemUseDuration(stack)) - world.playSoundAtEntity(player, "hbm:weapon.immolatorIgnite", 1.0F, 1F); - if (count % 10 == 0) - world.playSoundAtEntity(player, "hbm:weapon.immolatorShoot", 1.0F, 1F); - - if (!world.isRemote) { - world.spawnEntityInWorld(plasma); - world.spawnEntityInWorld(plasma1); - world.spawnEntityInWorld(plasma2); - world.spawnEntityInWorld(plasma3); - world.spawnEntityInWorld(plasma4); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Rrrrt - rrrrt - rrrrt, weeee!"); - list.add(""); - list.add("Ammo: Ink Cartridge"); - list.add("Damage: 25 - 45"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunImmolator.java b/src/main/java/com/hbm/items/weapon/GunImmolator.java deleted file mode 100644 index e725f19b1..000000000 --- a/src/main/java/com/hbm/items/weapon/GunImmolator.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityFire; -import com.hbm.entity.projectile.EntityPlasmaBeam; -import com.hbm.items.ModItems; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunImmolator extends Item { - - Random rand = new Random(); - - public GunImmolator() { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { - World world = player.worldObj; - - if (!player.isSneaking()) { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_immolator_ammo))) { - EntityFire entityarrow = new EntityFire(world, player, 3.0F); - entityarrow.setDamage(6 + rand.nextInt(5)); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - if(count % 10 == 0) - player.inventory.consumeInventoryItem(ModItems.gun_immolator_ammo); - } - - if(count == this.getMaxItemUseDuration(stack)) - world.playSoundAtEntity(player, "hbm:weapon.flamethrowerIgnite", 1.0F, 1F); - if(count % 5 == 0) - world.playSoundAtEntity(player, "hbm:weapon.flamethrowerShoot", 1.0F, 1F); - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } else { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_immolator_ammo))) { - - EntityPlasmaBeam plasma = new EntityPlasmaBeam(world, player, 1F); - - if (flag) { - plasma.canBePickedUp = 2; - } else { - if(count % 4 == 0) - player.inventory.consumeInventoryItem(ModItems.gun_immolator_ammo); - } - - if(count == this.getMaxItemUseDuration(stack)) - world.playSoundAtEntity(player, "hbm:weapon.immolatorIgnite", 1.0F, 1F); - if(count % 10 == 0) - world.playSoundAtEntity(player, "hbm:weapon.immolatorShoot", 1.0F, 1F); - - if (!world.isRemote) - world.spawnEntityInWorld(plasma); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Hold right mouse button"); - list.add("to shoot fire,"); - list.add("sneak to shoot"); - list.add("plasma beams!"); - list.add(""); - list.add("Ammo: Immolator Fuel"); - list.add("Damage: 5"); - list.add("Secondary Damage: 25 - 45"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunJack.java b/src/main/java/com/hbm/items/weapon/GunJack.java deleted file mode 100644 index efb6e453e..000000000 --- a/src/main/java/com/hbm/items/weapon/GunJack.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunJack extends Item { - Random rand = new Random(); - - public int dmgMin = 12; - public int dmgMax = 24; - - public GunJack() { - - this.maxStackSize = 1; - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_jack_ammo)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.shotgunShoot", 1.0F, 1.0F); - - if (flag) { } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_jack_ammo); - } - - int k = rand.nextInt(25) + 24; - - for(int i = 0; i < k; i++) { - - EntityBullet entityarrow1 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow1.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - - if(!p_77615_2_.isRemote) - p_77615_2_.spawnEntityInWorld(entityarrow1); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - if (p_77659_3_.capabilities.isCreativeMode || p_77659_3_.inventory.hasItem(ModItems.gun_jack_ammo)) { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("One barrel? Boring."); - list.add("Two barrels? Nah."); - list.add("Four barrels? Heck yes!"); - list.add(""); - list.add("Ammo: Quadruple Shotgun Shells"); - list.add("Damage: 12 - 24"); - list.add("Projectiles: 24 - 48"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunLacunae.java b/src/main/java/com/hbm/items/weapon/GunLacunae.java deleted file mode 100644 index 6acdfb5e8..000000000 --- a/src/main/java/com/hbm/items/weapon/GunLacunae.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunLacunae extends Item implements IHoldableWeapon { - - Random rand = new Random(); - - public GunLacunae() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.none; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World world, EntityPlayer player) { - new ArrowNockEvent(player, p_77659_1_); - { - player.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpinup", 1.0F, 1.0F); - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_5mm)) && count % 1 == 0 && this.getMaxItemUseDuration(stack) - count > 15) { - - world.playSoundAtEntity(player, "hbm:weapon.lacunaeShoot", 1.0F, 1.0F); - - for(int i = 0; i < 3; i++) { - - if((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_5mm))) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F); - entityarrow.setDamage(5); - - if(!flag) - player.inventory.consumeInventoryItem(ModItems.ammo_5mm); - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - } - } - - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World world, EntityPlayer player, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - if(j > 10) - world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpindown", 1.0F, 1.0F); - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(this == ModItems.gun_minigun) - list.add("The perfect gift for the man who has everything."); - if(this == ModItems.gun_avenger) - list.add("Interloper! No quarter shall be shown hither, fiend!"); - - if(this == ModItems.gun_lacunae) { - list.add("Whoa, wait, what's that sound? Do you hear that?"); - list.add("I think that's silence! That's the sound people make"); - list.add("when everyone trying to kill me is dead!"); - list.add("And I have a minigun!"); - } - - list.add(""); - list.add("Ammo: 5mm Round"); - list.add("Damage: 5"); - } - - public String getItemStackDisplayName(ItemStack stack) - { - - if(this == ModItems.gun_lacunae && MainRegistry.polaroidID == 11) - return "CZ97 Lacunae"; - - return super.getItemStackDisplayName(stack); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 6, 0)); - - if(this == ModItems.gun_minigun) - multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", -0.3, 1)); - if(this == ModItems.gun_avenger) - multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", -0.4, 1)); - if(this == ModItems.gun_lacunae) - multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", -0.2, 1)); - - return multimap; - } - - @Override - public Crosshair getCrosshair() { - return Crosshair.L_CIRCLE; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunLeverAction.java b/src/main/java/com/hbm/items/weapon/GunLeverAction.java deleted file mode 100644 index a0980d7b5..000000000 --- a/src/main/java/com/hbm/items/weapon/GunLeverAction.java +++ /dev/null @@ -1,271 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunLeverAction extends Item { - - Random rand = new Random(); - - public int dmgMin = 8; - public int dmgMax = 16; - - public GunLeverAction() { - - this.maxStackSize = 1; - - if(this == ModItems.gun_lever_action) - this.setMaxDamage(500); - if(this == ModItems.gun_lever_action_dark) - this.setMaxDamage(750); - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.ammo_20gauge)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - EntityBulletBase entityarrow1; - EntityBulletBase entityarrow2; - EntityBulletBase entityarrow3; - EntityBulletBase entityarrow4; - EntityBulletBase entityarrow5; - EntityBulletBase entityarrow6; - EntityBulletBase entityarrow7; - EntityBulletBase entityarrow8; - EntityBulletBase entityarrow9; - EntityBulletBase entityarrow10; - - if (!p_77615_3_.isSneaking()) { - entityarrow1 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow2 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow3 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow4 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow5 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow6 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow7 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow8 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow9 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow10 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - } else { - entityarrow1 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow2 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow3 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow4 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow5 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow6 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow7 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow8 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow9 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow10 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - } - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.revolverShootAlt", 5.0F, 0.75F); - - if (flag) { } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.ammo_20gauge); - } - - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(entityarrow1); - p_77615_2_.spawnEntityInWorld(entityarrow2); - p_77615_2_.spawnEntityInWorld(entityarrow3); - p_77615_2_.spawnEntityInWorld(entityarrow4); - - if (!p_77615_3_.isSneaking()) { - - p_77615_2_.spawnEntityInWorld(entityarrow5); - p_77615_2_.spawnEntityInWorld(entityarrow6); - - int i = rand.nextInt(5); - - if(i >= 1) - p_77615_2_.spawnEntityInWorld(entityarrow7); - if(i >= 2) - p_77615_2_.spawnEntityInWorld(entityarrow8); - if(i >= 3) - p_77615_2_.spawnEntityInWorld(entityarrow9); - if(i >= 4) - p_77615_2_.spawnEntityInWorld(entityarrow10); - } - } - - setAnim(p_77615_1_, 1); - } - } - - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { - int j = getAnim(stack); - - if(j > 0) { - if(j < 30) - setAnim(stack, j + 1); - else - setAnim(stack, 0); - - if(j == 15) - world.playSoundAtEntity(entity, "hbm:weapon.leverActionReload", 2F, 0.85F); - } - - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - if(this.getAnim(p_77659_1_) == 0) - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(this == ModItems.gun_lever_action) - list.add("Universal head-to-spaghetti-sauce converter."); - if(this == ModItems.gun_lever_action_dark) - list.add("Blow your legs off!"); - list.add(""); - list.add("Ammo: 12x74 Buckshot"); - list.add("Damage: 8 - 16"); - list.add("Projectiles: 6 - 10"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3.5, 0)); - return multimap; - } - - private static int getAnim(ItemStack stack) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - return 0; - } - - return stack.stackTagCompound.getInteger("animation"); - - } - - private static void setAnim(ItemStack stack, int i) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("animation", i); - - } - - public static float getRotationFromAnim(ItemStack stack) { - float rad = 0.0174533F; - rad *= 7.5F; - int i = getAnim(stack); - - if(i < 10) - return 0; - i -= 10; - - if(i < 10) - return rad * i; - else - return (rad * 10) - (rad * (i - 10)); - } - - public static float getOffsetFromAnim(ItemStack stack) { - float i = getAnim(stack); - - if(i < 10) - return 0; - i -= 10; - - if(i < 10) - return i / 10; - else - return 2 - (i / 10); - } - -} diff --git a/src/main/java/com/hbm/items/weapon/GunLeverActionS.java b/src/main/java/com/hbm/items/weapon/GunLeverActionS.java deleted file mode 100644 index 2d90d50ca..000000000 --- a/src/main/java/com/hbm/items/weapon/GunLeverActionS.java +++ /dev/null @@ -1,232 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; -import com.hbm.main.MainRegistry; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.StatCollector; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunLeverActionS extends Item { - - Random rand = new Random(); - - public int dmgMin = 8; - public int dmgMax = 16; - - public GunLeverActionS() { - - this.maxStackSize = 1; - - this.setMaxDamage(500); - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.ammo_20gauge)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - Vec3 vec = p_77615_3_.getLookVec(); - vec.xCoord *= -1; - vec.yCoord *= -1; - vec.zCoord *= -1; - vec.normalize(); - - p_77615_3_.motionX += vec.xCoord * 0.75; - p_77615_3_.motionY += vec.yCoord * 0.75; - p_77615_3_.motionZ += vec.zCoord * 0.75; - - p_77615_3_.inventory.consumeInventoryItem(ModItems.ammo_20gauge); - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_3_.attackEntityFrom(ModDamageSource.suicide, 10000); - if(!p_77615_3_.capabilities.isCreativeMode) - p_77615_3_.setHealth(0.0F); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.revolverShootAlt", 5.0F, 0.75F); - - setAnim(p_77615_1_, 1); - } - } - - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { - int j = getAnim(stack); - - if(j > 0) { - if(j < 30) - setAnim(stack, j + 1); - else - setAnim(stack, 0); - - if(j == 15) - world.playSoundAtEntity(entity, "hbm:weapon.leverActionReload", 2F, 0.85F); - } - - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - if(this.getAnim(p_77659_1_) == 0) - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - public String getItemStackDisplayName(ItemStack stack) - { - if(MainRegistry.polaroidID == 11) - return ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + "_2.name")).trim(); - else - return ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(MainRegistry.polaroidID == 11) - list.add("Vee guilt-tripped me into this."); - else - list.add("I hate your guts, Vee."); - list.add(""); - list.add("Ammo: 12x74 Buckshot"); - list.add("Damage: Infinite"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3.5, 0)); - return multimap; - } - - private static int getAnim(ItemStack stack) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - return 0; - } - - return stack.stackTagCompound.getInteger("animation"); - - } - - private static void setAnim(ItemStack stack, int i) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("animation", i); - - } - - public static float getRotationFromAnim(ItemStack stack) { - float rad = 0.0174533F; - rad *= 7.5F; - int i = getAnim(stack); - - if(i < 10) - return 0; - i -= 10; - - if(i < 10) - return rad * i; - else - return (rad * 10) - (rad * (i - 10)); - } - - public static float getOffsetFromAnim(ItemStack stack) { - float i = getAnim(stack); - - if(i < 10) - return 0; - i -= 10; - - if(i < 10) - return i / 10; - else - return 2 - (i / 10); - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunOSIPR.java b/src/main/java/com/hbm/items/weapon/GunOSIPR.java deleted file mode 100644 index bae321b8e..000000000 --- a/src/main/java/com/hbm/items/weapon/GunOSIPR.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.entity.projectile.EntityCombineBall; -import com.hbm.items.ModItems; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunOSIPR extends Item { - - Random rand = new Random(); - - public GunOSIPR() - { - this.maxStackSize = 1; - this.setMaxDamage(2500); - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - if (!player.isSneaking()) { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_osipr_ammo)) && count % 3 == 0) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 5, 15, false, "chopper"); - entityarrow.setDamage(5 + rand.nextInt(10)); - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.osiprShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_osipr_ammo); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } else { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_osipr_ammo2)) && count % 30 == 0 && (this.getMaxItemUseDuration(stack) - count) != 0) { - EntityCombineBall entityarrow = new EntityCombineBall(player.worldObj, player, 3.0F); - entityarrow.setDamage(35 + rand.nextInt(45 - 35)); - - //world.playSoundAtEntity(player, "tile.piston.in", 1.0F, 0.75F); - world.playSoundAtEntity(player, "hbm:weapon.singFlyby", 1.0F, 1F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_osipr_ammo2); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - - if((this.getMaxItemUseDuration(stack) - count) % 30 == 15 && (player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_osipr_ammo2))) - world.playSoundAtEntity(player, "hbm:weapon.osiprCharging", 1.0F, 1F); - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Hold right mouse button"); - list.add("to shoot,"); - list.add("sneak to shoot a"); - list.add("dark energy ball!"); - list.add(""); - list.add("Ammo: Dark Energy Plugs"); - list.add("Secondary Ammo: Combine Ball"); - list.add("Damage: 5 - 15"); - list.add("Secondary Damage: 1000"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 5, 0)); - return multimap; - } - -} diff --git a/src/main/java/com/hbm/items/weapon/GunRpg.java b/src/main/java/com/hbm/items/weapon/GunRpg.java deleted file mode 100644 index e3c8fa53e..000000000 --- a/src/main/java/com/hbm/items/weapon/GunRpg.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityRocket; -import com.hbm.items.ModItems; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunRpg extends Item { - public static final String[] bowPullIconNameArray = new String[] { "pulling_0", "pulling_1", "pulling_2" }; - @SideOnly(Side.CLIENT) - private IIcon[] iconArray; - public GunRpg() { - this.maxStackSize = 1; - this.setMaxDamage(500); - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.ammo_rocket)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 25.0D) { - return; - } - - if (j > 25.0F) { - f = 25.0F; - } - - EntityRocket entityarrow = new EntityRocket(p_77615_2_, p_77615_3_, 3.0F); - - if (f == 1.0F) { - entityarrow.setIsCritical(true); - } - - p_77615_1_.damageItem(1, p_77615_3_); - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.rpgShoot", 1.0F, 0.25F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.ammo_rocket); - } - - if (!p_77615_2_.isRemote) { - entityarrow.canBePickedUp = 2; - p_77615_2_.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Kaboom!"); - list.add(""); - list.add("Ammo: Rockets"); - list.add("Projectiles explode on impact."); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0)); - return multimap; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/weapon/GunSMG.java b/src/main/java/com/hbm/items/weapon/GunSMG.java deleted file mode 100644 index e5cb4cf58..000000000 --- a/src/main/java/com/hbm/items/weapon/GunSMG.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunSMG extends Item { - - Random rand = new Random(); - - public GunSMG() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_9mm)) - && count % 2 == 0) { - - EntityBulletBase bullet = new EntityBulletBase(world, BulletConfigSyncingUtil.TEST_CONFIG, player); - //EntityArrow bullet = new EntityArrow(world, player, 3.0F); - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.rifleShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (flag) { - } else { - player.inventory.consumeInventoryItem(ModItems.ammo_9mm); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(bullet); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Ratatatatatatatata!!"); - list.add(""); - list.add("Ammo: SMG Round"); - list.add("Damage: 2 - 8"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunShotgun.java b/src/main/java/com/hbm/items/weapon/GunShotgun.java deleted file mode 100644 index fe9b604d1..000000000 --- a/src/main/java/com/hbm/items/weapon/GunShotgun.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunShotgun extends Item { - Random rand = new Random(); - - public int dmgMin = 3; - public int dmgMax = 7; - - public GunShotgun() { - - this.maxStackSize = 1; - - if (this == ModItems.gun_uboinik) { - this.setMaxDamage(500); - } - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.ammo_12gauge)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - EntityBullet entityarrow1 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow1.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow2 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow2.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow3 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow3.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow4 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow4.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow5 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow5.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow6 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow6.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow7 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow7.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow8 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow8.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow9 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow9.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow10 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow10.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow11 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow11.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow12 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow12.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.shotgunShoot", 1.0F, 1.0F); - - if (flag) { } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.ammo_12gauge); - } - - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(entityarrow1); - p_77615_2_.spawnEntityInWorld(entityarrow2); - p_77615_2_.spawnEntityInWorld(entityarrow3); - p_77615_2_.spawnEntityInWorld(entityarrow4); - p_77615_2_.spawnEntityInWorld(entityarrow5); - p_77615_2_.spawnEntityInWorld(entityarrow6); - - int i = rand.nextInt(7); - - if(i >= 1) - p_77615_2_.spawnEntityInWorld(entityarrow7); - if(i >= 2) - p_77615_2_.spawnEntityInWorld(entityarrow8); - if(i >= 3) - p_77615_2_.spawnEntityInWorld(entityarrow9); - if(i >= 4) - p_77615_2_.spawnEntityInWorld(entityarrow10); - if(i >= 5) - p_77615_2_.spawnEntityInWorld(entityarrow11); - if(i >= 6) - p_77615_2_.spawnEntityInWorld(entityarrow12); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - //list.add("POW! Haha!"); - list.add("Abracadabra Tomanakara!"); - list.add(""); - list.add("Ammo: 12x70 Buckshot"); - list.add("Damage: 3 - 7"); - list.add("Projectiles: 6 - 12"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunSpark.java b/src/main/java/com/hbm/items/weapon/GunSpark.java deleted file mode 100644 index 55b34c1d7..000000000 --- a/src/main/java/com/hbm/items/weapon/GunSpark.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntitySparkBeam; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunSpark extends Item { - Random rand = new Random(); - - public int dmgMin = 12; - public int dmgMax = 24; - - public GunSpark() { - - this.maxStackSize = 1; - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_spark_ammo)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.sparkShoot", 1.0F, 1.0F); - - if (flag) { } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_spark_ammo); - } - - EntitySparkBeam beam = new EntitySparkBeam(p_77615_2_, p_77615_3_, 3F); - beam.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - - if(!p_77615_2_.isRemote) - p_77615_2_.spawnEntityInWorld(beam); - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("'magic does not compute'"); - list.add("'aeiou'"); - list.add(""); - list.add("Ammo: Electromagnetic Cartridge"); - list.add("Projectiles explode on impact."); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunSuicide.java b/src/main/java/com/hbm/items/weapon/GunSuicide.java deleted file mode 100644 index b94700be1..000000000 --- a/src/main/java/com/hbm/items/weapon/GunSuicide.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunSuicide extends Item { - - public static final String[] bowPullIconNameArray = new String[] {"pulling_0", "pulling_1", "pulling_2"}; - @SideOnly(Side.CLIENT) - private IIcon[] iconArray; - private Item ammo; - Random rand = new Random(); - - public GunSuicide() - { - this.maxStackSize = 1; - //if(this == ModItems.gun_revolver) - { - this.setMaxDamage(500); - } - - this.ammo = ModItems.ammo_357; - } - - /** - * called when the player releases the use item button. Args: itemstack, world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) - { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - - if (flag || p_77615_3_.inventory.hasItem(ammo)) - { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) - { - return; - } - - if (j > 10.0F) - { - f = 10.0F; - } - - p_77615_1_.damageItem(1, p_77615_3_); - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.revolverShoot", 1.0F, 1.0F); - - if (flag) - { } - else - { - p_77615_3_.inventory.consumeInventoryItem(ammo); - } - - if (!p_77615_2_.isRemote) - { - p_77615_3_.attackEntityFrom(ModDamageSource.suicide, 10000); - if(!p_77615_3_.capabilities.isCreativeMode) - p_77615_3_.setHealth(0.0F); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) - { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) - { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) - { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) - { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based on material. - */ - @Override - public int getItemEnchantability() - { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("I've seen things..."); - list.add("...I shouldn't have seen."); - list.add(""); - list.add("Ammo: Lead Bullets"); - list.add("Damage: Infinite"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 2.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunUZI.java b/src/main/java/com/hbm/items/weapon/GunUZI.java deleted file mode 100644 index 630347f80..000000000 --- a/src/main/java/com/hbm/items/weapon/GunUZI.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.ModItems; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.EnumRarity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunUZI extends Item implements IHoldableWeapon { - - Random rand = new Random(); - - public GunUZI() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.none; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - - if (player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_22lr)) { - - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 2, 4, false, false); - entityarrow.setDamage(2 + rand.nextInt(3)); - - if(this == ModItems.gun_uzi_saturnite || this == ModItems.gun_uzi_saturnite_silencer) { - entityarrow.setDamage(4 + rand.nextInt(5)); - entityarrow.fire = true; - } - - if(this == ModItems.gun_uzi || this == ModItems.gun_uzi_saturnite) - world.playSoundAtEntity(player, "hbm:weapon.uziShoot", 10.0F, 1.0F); - if(this == ModItems.gun_uzi_silencer || this == ModItems.gun_uzi_saturnite_silencer) - world.playSoundAtEntity(player, "hbm:weapon.silencerShoot", 0.15F, 1.0F); - - if (!flag) { - player.inventory.consumeInventoryItem(ModItems.ammo_22lr); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(this == ModItems.gun_uzi) - list.add("[very intense pewpew-ing]"); - if(this == ModItems.gun_uzi_silencer) - list.add("Mom, where are my mittens?"); - if(this == ModItems.gun_uzi_saturnite) - list.add("The real deal."); - if(this == ModItems.gun_uzi_saturnite_silencer) - list.add("The real deal 2: Electric boogaloo"); - list.add(""); - list.add("Ammo: .22 LR Round"); - - if(this == ModItems.gun_uzi || this == ModItems.gun_uzi_silencer) { - list.add("Damage: 2 - 4"); - } - if(this == ModItems.gun_uzi_saturnite || this == ModItems.gun_uzi_saturnite_silencer) { - list.add("Damage: 4 - 8"); - list.add("Sets enemy on fire."); - } - } - - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) { - - if (this == ModItems.gun_uzi_saturnite || this == ModItems.gun_uzi_saturnite_silencer) { - return EnumRarity.rare; - } - - return EnumRarity.common; - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 2.5D, 0)); - return multimap; - } - - @Override - public Crosshair getCrosshair() { - return Crosshair.L_CROSS; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunXVL1456.java b/src/main/java/com/hbm/items/weapon/GunXVL1456.java deleted file mode 100644 index 56381afe1..000000000 --- a/src/main/java/com/hbm/items/weapon/GunXVL1456.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunXVL1456 extends Item { - - Random rand = new Random(); - - public GunXVL1456() - { - this.maxStackSize = 1; - this.setMaxDamage(2500); - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int i) { - - int j = this.getMaxItemUseDuration(stack) - i; - ArrowLooseEvent event = new ArrowLooseEvent(player, stack, j); - MinecraftForge.EVENT_BUS.post(event); - // if (event.isCanceled()) { - // return; - // } - j = event.charge * 2; - - if (player.isSneaking() && j >= 20) { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - - if (flag || player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) { - EntityBullet entitybullet = new EntityBullet(world, player, 3.0F, j, j + 5, false, "tauDay"); - - entitybullet.setDamage(j + rand.nextInt(6)); - - world.playSoundAtEntity(player, "hbm:weapon.tauShoot", 1.0F, 0.5F); - - if (flag) { - entitybullet.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo); - } - - entitybullet.setIsCritical(true); - - if (!world.isRemote) { - world.spawnEntityInWorld(entitybullet); - } - stack.damageItem((int)(j * 0.05F), player); - - player.rotationPitch -= (j * 0.1F); - } - } - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - // if (event.isCanceled()) { - // return event.result; - // } - // Made uncancelable to prevent intermod idiocy - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - if (!player.isSneaking()) { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) && count % 4 == 0) { - - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 25, 65, false, "eyyOk"); - entityarrow.setDamage(25 + rand.nextInt(65 - 25)); - - world.playSoundAtEntity(player, "hbm:weapon.tauShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } else { - if (count % 20 == 0 && this.getMaxItemUseDuration(stack) - count != 0) { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_xvl1456_ammo))) { - if (!flag) { - player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo); - } - } - } - - world.playSoundAtEntity(player, "hbm:misc.nullTau", 0.1F, 1.0F); - } - - if(player instanceof EntityPlayer) - { - if(count < getMaxItemUseDuration(stack) - 200 && player.isSneaking() && count != 0) - { - if(!world.isRemote) - { - stack.damageItem(1250, player); - - world.createExplosion(player, player.posX, player.posY, player.posZ, 10.0F, true); - player.attackEntityFrom(ModDamageSource.tauBlast, 1000F); - player.dropOneItem(false); - } - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Hold right mouse button"); - list.add("to shoot tauons,"); - list.add("sneak to charge up for"); - list.add("stronger shots!"); - list.add(""); - list.add("Ammo: Depleted Uranium"); - list.add("Damage: 25 - 65"); - list.add("Charged Damage: 40 - 400"); - list.add("Projectiles penetrate walls."); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 6, 0)); - return multimap; - } - -} diff --git a/src/main/java/com/hbm/items/weapon/GunZOMG.java b/src/main/java/com/hbm/items/weapon/GunZOMG.java deleted file mode 100644 index 971592633..000000000 --- a/src/main/java/com/hbm/items/weapon/GunZOMG.java +++ /dev/null @@ -1,226 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.entity.projectile.EntityRainbow; -import com.hbm.items.ModItems; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunZOMG extends Item { - - Random rand = new Random(); - - public GunZOMG() { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - new ArrowNockEvent(player, stack); - { - player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); - } - - if (!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setBoolean("valid", false); - stack.stackTagCompound.setBoolean("superuser", false); - } - - if (!player.isSneaking()) { - if (stack.stackTagCompound.getBoolean("valid")) { - if ((player.inventory.hasItem(ModItems.nugget_euphemium) - || player.inventory.hasItem(ModItems.ingot_euphemium))) { - } else { - if (!player.inventory.hasItem(ModItems.nugget_euphemium) - && !player.inventory.hasItem(ModItems.ingot_euphemium)) { - stack.stackTagCompound.setBoolean("valid", false); - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Validation lost!")); - player.addChatMessage(new ChatComponentText("[ZOMG] Request new validation!")); - } - } - } - } else { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Gun not validated!")); - player.addChatMessage(new ChatComponentText("[ZOMG] Validate your gun with shift right-click.")); - } - } - } else { - if (stack.stackTagCompound.getBoolean("valid")) { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Gun has already been validated.")); - } - } else { - if (player.inventory.hasItem(ModItems.nugget_euphemium) || player.inventory.hasItem(ModItems.ingot_euphemium)) { - stack.stackTagCompound.setBoolean("valid", true); - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Gun has been validated!")); - } - - //if(Library.superuser.contains(player.getUniqueID().toString())) { - if(player.inventory.hasItem(ModItems.polaroid)) { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Welcome, superuser!")); - } - stack.stackTagCompound.setBoolean("superuser", true); - } else { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Welcome, user!")); - } - stack.stackTagCompound.setBoolean("superuser", false); - } - } else { - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Validation failed!")); - player.addChatMessage(new ChatComponentText("[ZOMG] No external negative gravity well found!")); - } - } - } - } - - return stack; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { - World world = player.worldObj; - - if (!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setBoolean("valid", false); - stack.stackTagCompound.setBoolean("superuser", false); - } - - if (!player.isSneaking()) { - if (stack.stackTagCompound.getBoolean("valid")) { - EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack); - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.nugget_euphemium) - || player.inventory.hasItem(ModItems.ingot_euphemium)) && count % 1 == 0) { - if (!stack.stackTagCompound.getBoolean("superuser")) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow1 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow2 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow3 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow4 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - EntityBullet entityarrow5 = new EntityBullet(world, player, 3.0F, 35, 45, false, "chopper"); - entityarrow.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow1.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow2.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow3.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow4.setDamage(35 + rand.nextInt(45 - 35)); - entityarrow5.setDamage(35 + rand.nextInt(45 - 35)); - - world.playSoundAtEntity(player, "hbm:weapon.osiprShoot", 1.0F, 0.6F + (rand.nextFloat() * 0.4F)); - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - world.spawnEntityInWorld(entityarrow1); - world.spawnEntityInWorld(entityarrow2); - world.spawnEntityInWorld(entityarrow3); - world.spawnEntityInWorld(entityarrow4); - world.spawnEntityInWorld(entityarrow5); - } - } else { - EntityRainbow entityarrow = new EntityRainbow(world, player, 1F); - EntityRainbow entityarrow1 = new EntityRainbow(world, player, 1F); - EntityRainbow entityarrow2 = new EntityRainbow(world, player, 1F); - EntityRainbow entityarrow3 = new EntityRainbow(world, player, 1F); - EntityRainbow entityarrow4 = new EntityRainbow(world, player, 1F); - entityarrow.setDamage(10000 + rand.nextInt(90000)); - entityarrow1.setDamage(10000 + rand.nextInt(90000)); - entityarrow2.setDamage(10000 + rand.nextInt(90000)); - entityarrow3.setDamage(10000 + rand.nextInt(90000)); - entityarrow4.setDamage(10000 + rand.nextInt(90000)); - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.zomgShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - world.spawnEntityInWorld(entityarrow1); - world.spawnEntityInWorld(entityarrow2); - world.spawnEntityInWorld(entityarrow3); - world.spawnEntityInWorld(entityarrow4); - } - } - } else { - if (!player.inventory.hasItem(ModItems.nugget_euphemium) - && !player.inventory.hasItem(ModItems.ingot_euphemium)) { - stack.stackTagCompound.setBoolean("valid", false); - if (!world.isRemote) { - player.addChatMessage(new ChatComponentText("[ZOMG] Validation lost!")); - player.addChatMessage(new ChatComponentText("[ZOMG] Request new validation!")); - } - } - } - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(itemstack.getTagCompound() == null) - { - list.add("Gun not validated."); - } else if(itemstack.getTagCompound().getBoolean("valid")) { - if(itemstack.getTagCompound().getBoolean("superuser")) { - list.add("Gun set to superuser mode."); - list.add("Firing mode: Negative energy bursts"); - } else { - list.add("Gun set to regular user mode."); - list.add("Firing mode: Dark pulse spray"); - } - } else { - list.add("Gun not validated."); - } - list.add(""); - list.add("Ammo: None (Requires Validation)"); - list.add("Damage: 35 - 45"); - list.add("Energy Damage: 10000 - 100000"); - list.add("Energy projectiles destroy blocks."); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - //for(int i = 0; i < 25; i++) - // list.add("How do I use the ZOMG? How do I use the ZOMG? How do I use the ZOMG?"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 6, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index f83ea596c..a887e20b8 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -6,12 +6,9 @@ import java.util.List; import java.util.Locale; import java.util.Set; -import com.hbm.items.ItemAmmoEnums.AmmoRocket; import com.hbm.items.ItemAmmoEnums.IAmmoItemEnum; import com.hbm.items.ItemEnumMulti; -import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; @@ -65,6 +62,7 @@ public class ItemAmmo extends ItemEnumMulti { NEU_STARMETAL, NEU_TRACER, NEU_UHH, + NEU_LEADBURSTER, NEU_WARCRIME1, NEU_WARCRIME2, PRO_ACCURATE1, @@ -121,7 +119,7 @@ public class ItemAmmo extends ItemEnumMulti { public ItemAmmo(Class> clazz, String altName) { super(clazz, true, true); - setCreativeTab(MainRegistry.weaponTab); + this.setCreativeTab(null); this.altName = altName; } @@ -130,10 +128,6 @@ public class ItemAmmo extends ItemEnumMulti { super.addInformation(stack, player, list, ext); if(!altName.isEmpty()) list.add(EnumChatFormatting.ITALIC + I18nUtil.resolveKey(altName)); - - if(stack.getItem() == ModItems.ammo_rocket && stack.getItemDamage() == AmmoRocket.DIGAMMA.ordinal()) { - list.add(player.worldObj.rand.nextInt(3) < 2 ? EnumChatFormatting.RED + "COVER YOURSELF IN OIL" : EnumChatFormatting.RED + "" + EnumChatFormatting.OBFUSCATED + "COVER YOURSELF IN OIL"); - } IAmmoItemEnum item = (IAmmoItemEnum) EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); Set ammoTraits = item.getTraits(); diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index d4d263fa5..0014cb736 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -6,7 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityMist; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.explosion.ExplosionChaos; @@ -17,17 +17,17 @@ import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.potion.HbmPotion; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -201,7 +201,6 @@ public class ItemAmmoArty extends Item { } public static void standardExplosion(EntityArtilleryShell shell, MovingObjectPosition mop, float size, float rangeMod, boolean breaksBlocks) { - shell.worldObj.playSoundEffect(shell.posX, shell.posY, shell.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rand.nextFloat() * 0.2F); Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); ExplosionVNT xnt = new ExplosionVNT(shell.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { @@ -210,7 +209,7 @@ public class ItemAmmoArty extends Item { } xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); - xnt.setSFX(new ExplosionEffectStandard()); + //xnt.setSFX(new ExplosionEffectStandard()); xnt.explode(); shell.killAndClear(); } @@ -246,9 +245,9 @@ public class ItemAmmoArty extends Item { private void init() { /* STANDARD SHELLS */ - this.itemTypes[NORMAL] = new ArtilleryShell("ammo_arty", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 10F, 3F, false); }}; - this.itemTypes[CLASSIC] = new ArtilleryShell("ammo_arty_classic", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 5F, false); }}; - this.itemTypes[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 3F, true); }}; + this.itemTypes[NORMAL] = new ArtilleryShell("ammo_arty", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 10F, 3F, false); ExplosionCreator.composeEffect(shell.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 10, 2F, 0.5F, 25F, 5, 0, 20, 0.75F, 1F, -2F, 150); }}; + this.itemTypes[CLASSIC] = new ArtilleryShell("ammo_arty_classic", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 5F, false); ExplosionCreator.composeEffect(shell.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 0, 50, 1F, 3F, -2F, 200); }}; + this.itemTypes[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 3F, true); ExplosionCreator.composeEffect(shell.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 16, 50, 1F, 3F, -2F, 200); }}; /* MINI NUKE */ this.itemTypes[MINI_NUKE] = new ArtilleryShell("ammo_arty_mini_nuke", SpentCasing.COLOR_CASE_16INCH_NUKE) { @@ -263,11 +262,7 @@ public class ItemAmmoArty extends Item { this.itemTypes[NUKE] = new ArtilleryShell("ammo_arty_nuke", SpentCasing.COLOR_CASE_16INCH_NUKE) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { shell.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(shell.worldObj, BombConfig.missileRadius, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(shell.worldObj, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = mop.hitVec.xCoord; - entity2.posY = mop.hitVec.yCoord; - entity2.posZ = mop.hitVec.zCoord; - shell.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, BombConfig.missileRadius); shell.setDead(); } }; @@ -275,6 +270,7 @@ public class ItemAmmoArty extends Item { /* PHOSPHORUS */ this.itemTypes[PHOSPHORUS] = new ArtilleryShell("ammo_arty_phosphorus", SpentCasing.COLOR_CASE_16INCH_PHOS) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.worldObj.playSoundEffect(shell.posX, shell.posY, shell.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rand.nextFloat() * 0.2F); standardExplosion(shell, mop, 10F, 3F, false); //shell.worldObj.playSoundEffect(shell.posX, shell.posY, shell.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + shell.worldObj.rand.nextFloat() * 0.2F); ExplosionLarge.spawnShrapnels(shell.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 15); @@ -305,7 +301,7 @@ public class ItemAmmoArty extends Item { this.itemTypes[CARGO] = new ArtilleryShell("ammo_arty_cargo", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { if(mop.typeOfHit == MovingObjectType.BLOCK) { shell.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); - shell.getStuck(mop.blockX, mop.blockY, mop.blockZ); + shell.getStuck(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } }}; diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index a33cdff56..f50d3ba0f 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -12,12 +12,12 @@ import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.potion.HbmPotion; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -148,7 +148,6 @@ public class ItemAmmoHIMARS extends Item { } public static void standardExplosion(EntityArtilleryRocket rocket, MovingObjectPosition mop, float size, float rangeMod, boolean breaksBlocks, Block slag, int slagMeta) { - rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); Vec3 vec = Vec3.createVectorHelper(rocket.motionX, rocket.motionY, rocket.motionZ).normalize(); ExplosionVNT xnt = new ExplosionVNT(rocket.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { @@ -157,7 +156,6 @@ public class ItemAmmoHIMARS extends Item { } xnt.setEntityProcessor(new EntityProcessorCross(7.5).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); - xnt.setSFX(new ExplosionEffectStandard()); xnt.explode(); rocket.killAndClear(); } @@ -171,10 +169,10 @@ public class ItemAmmoHIMARS extends Item { private void init() { /* STANDARD ROCKETS */ - this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.slag, 1); }}; - this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.slag, 1); }}; + this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.block_slag, 1); ExplosionCreator.composeEffect(rocket.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 0, 50, 1F, 3F, -2F, 200); }}; + this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.block_slag, 1); ExplosionCreator.composeEffect(rocket.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 16, 50, 1F, 3F, -2F, 200); }}; this.itemTypes[SMALL_LAVA] = new HIMARSRocket("standard_lava", "himars_standard_lava", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.volcanic_lava_block, 0); }}; - this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.slag, 1); }}; + this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.block_slag, 1); ExplosionCreator.composeEffect(rocket.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 30, 6.5F, 2F, 65F, 25, 16, 50, 1.25F, 3F, -2F, 350); }}; this.itemTypes[SMALL_MINI_NUKE] = new HIMARSRocket("standard_mini_nuke", "himars_standard_mini_nuke", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { @@ -186,7 +184,8 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_WP] = new HIMARSRocket("standard_wp", "himars_standard_wp", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.slag, 1); + rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); + standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.block_slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); ExplosionChaos.burn(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 20); int radius = 30; @@ -209,14 +208,16 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_TB] = new HIMARSRocket("standard_tb", "himars_standard_tb", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 20F, 10F, true, ModBlocks.slag, 1); + rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); + standardExplosion(rocket, mop, 20F, 10F, true, ModBlocks.block_slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 20); }}; this.itemTypes[LARGE_TB] = new HIMARSRocket("single_tb", "himars_single_tb", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 50F, 12F, true, ModBlocks.slag, 1); + rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); + standardExplosion(rocket, mop, 50F, 12F, true, ModBlocks.block_slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 35); }}; diff --git a/src/main/java/com/hbm/items/weapon/ItemCrucible.java b/src/main/java/com/hbm/items/weapon/ItemCrucible.java index 495f6e6ae..b2201d593 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCrucible.java +++ b/src/main/java/com/hbm/items/weapon/ItemCrucible.java @@ -6,9 +6,9 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.hbm.items.IEquipReceiver; import com.hbm.items.tool.ItemSwordAbility; -import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.ShadyUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -34,7 +34,7 @@ public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver { } @Override - public void onEquip(EntityPlayer player) { + public void onEquip(EntityPlayer player, ItemStack stack) { if(!(player instanceof EntityPlayerMP)) return; @@ -57,7 +57,7 @@ public class ItemCrucible extends ItemSwordAbility implements IEquipReceiver { if(!(entityLiving instanceof EntityPlayerMP)) return false; - if(entityLiving instanceof EntityPlayer && ((EntityPlayer)entityLiving).getUniqueID().toString().equals(Library.Tankish)) { + if(entityLiving instanceof EntityPlayer && ((EntityPlayer)entityLiving).getUniqueID().toString().equals(ShadyUtil.Tankish)) { stack.setItemDamage(0); } diff --git a/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java new file mode 100644 index 000000000..d35d177b1 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java @@ -0,0 +1,118 @@ +package com.hbm.items.weapon; + +import com.hbm.entity.projectile.EntityChemical; +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.GunAnimationPacket; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class ItemCryoCannon extends ItemGunBase { + + public ItemCryoCannon(GunConfiguration config) { + super(config); + } + + @Override + protected void fire(ItemStack stack, World world, EntityPlayer player) { + + if(getPressure(stack) >= 1000) return; + if(getTurbine(stack) < 100) return; + + BulletConfiguration config = null; + + if(mainConfig.reloadType == GunConfiguration.RELOAD_NONE) { + config = getBeltCfg(player, stack, true); + } else { + config = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); + } + + int bullets = config.bulletsMin; + + for(int k = 0; k < mainConfig.roundsPerCycle; k++) { + + if(!hasAmmo(stack, player, true)) + break; + + if(config.bulletsMax > config.bulletsMin) + bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin); + + for(int i = 0; i < bullets; i++) { + spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); + } + + if(player instanceof EntityPlayerMP) + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); + + useUpAmmo(player, stack, true); + player.inventoryContainer.detectAndSendChanges(); + + int wear = (int) Math.ceil(config.wear / (1F + EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack))); + setItemWear(stack, getItemWear(stack) + wear); + } + + world.playSoundAtEntity(player, mainConfig.firingSound, mainConfig.firingVolume, mainConfig.firingPitch); + + if(mainConfig.ejector != null && !mainConfig.ejector.getAfterReload()) + queueCasing(player, mainConfig.ejector, config, stack); + } + + @Override + protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { + EntityChemical chem = new EntityChemical(world, player, 0, 0, 0); + chem.setFluid(Fluids.OXYGEN); + world.spawnEntityInWorld(chem); + + int pressure = getPressure(stack); + pressure += 5; + pressure = MathHelper.clamp_int(pressure, 0, 1000); + setPressure(stack, pressure); + } + + @Override + protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { + + int turbine = getTurbine(stack); + int pressure = getPressure(stack); + + if(getIsMouseDown(stack)) { + turbine += 10; + } else { + turbine -= 5; + pressure -= 5; + } + + turbine = MathHelper.clamp_int(turbine, 0, 100); + pressure = MathHelper.clamp_int(pressure, 0, 1000); + setTurbine(stack, turbine); + setPressure(stack, pressure); + + super.updateServer(stack, world, player, slot, isCurrentItem); + } + + public static void setTurbine(ItemStack stack, int i) { + writeNBT(stack, "turbine", i); + } + + public static int getTurbine(ItemStack stack) { + return readNBT(stack, "turbine"); + } + + public static void setPressure(ItemStack stack, int i) { + writeNBT(stack, "pressure", i); + } + + public static int getPressure(ItemStack stack) { + return readNBT(stack, "pressure"); + } +} diff --git a/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java b/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java index 768567803..a0bd103b3 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java @@ -4,8 +4,8 @@ import java.util.List; import com.hbm.handler.MissileStruct; import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.WarheadType; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.WarheadType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -57,11 +57,11 @@ public class ItemCustomMissile extends Item { return; try { - ItemMissile chip = (ItemMissile) Item.getItemById(readFromNBT(stack, "chip")); - ItemMissile warhead = (ItemMissile) Item.getItemById(readFromNBT(stack, "warhead")); - ItemMissile fuselage = (ItemMissile) Item.getItemById(readFromNBT(stack, "fuselage")); - ItemMissile stability = (ItemMissile) Item.getItemById(readFromNBT(stack, "stability")); - ItemMissile thruster = (ItemMissile) Item.getItemById(readFromNBT(stack, "thruster")); + ItemCustomMissilePart chip = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "chip")); + ItemCustomMissilePart warhead = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "warhead")); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "fuselage")); + ItemCustomMissilePart stability = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "stability")); + ItemCustomMissilePart thruster = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "thruster")); list.add(EnumChatFormatting.BOLD + "Warhead: " + EnumChatFormatting.GRAY + warhead.getWarhead((WarheadType)warhead.attributes[0])); list.add(EnumChatFormatting.BOLD + "Strength: " + EnumChatFormatting.GRAY + (Float)warhead.attributes[1]); @@ -92,10 +92,10 @@ public class ItemCustomMissile extends Item { if(stack == null || !(stack.getItem() instanceof ItemCustomMissile)) return null; - ItemMissile warhead = (ItemMissile) Item.getItemById(readFromNBT(stack, "warhead")); - ItemMissile fuselage = (ItemMissile) Item.getItemById(readFromNBT(stack, "fuselage")); - ItemMissile stability = (ItemMissile) Item.getItemById(readFromNBT(stack, "stability")); - ItemMissile thruster = (ItemMissile) Item.getItemById(readFromNBT(stack, "thruster")); + ItemCustomMissilePart warhead = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "warhead")); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "fuselage")); + ItemCustomMissilePart stability = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "stability")); + ItemCustomMissilePart thruster = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "thruster")); MissileStruct missile = new MissileStruct(warhead, fuselage, stability, thruster); diff --git a/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java b/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java new file mode 100644 index 000000000..26c459982 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java @@ -0,0 +1,361 @@ +package com.hbm.items.weapon; + +import java.util.HashMap; +import java.util.List; +import java.util.function.Consumer; + +import com.hbm.entity.missile.EntityMissileCustom; +import com.hbm.items.special.ItemLootCrate; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemCustomMissilePart extends Item { + + public PartType type; + public PartSize top; + public PartSize bottom; + public Rarity rarity; + public float health; + private String title; + private String author; + private String witty; + + public ItemCustomMissilePart() { + this.setMaxStackSize(1); + this.setCreativeTab(MainRegistry.missileTab); + } + + public static HashMap parts = new HashMap(); + + /** + * == Chips == + * [0]: inaccuracy + * + * == Warheads == + * [0]: type + * [1]: strength/radius/cluster count + * [2]: weight + * + * == Fuselages == + * [0]: type + * [1]: tank size + * + * == Stability == + * [0]: inaccuracy mod + * + * == Thrusters === + * [0]: type + * [1]: consumption + * [2]: lift strength + */ + public Object[] attributes; + + public enum PartType { + CHIP, + WARHEAD, + FUSELAGE, + FINS, + THRUSTER + } + + public enum PartSize { + + //for chips + ANY, + //for missile tips and thrusters + NONE, + //regular sizes, 1.0m, 1.5m and 2.0m + SIZE_10, + SIZE_15, + SIZE_20 + } + + public enum WarheadType { + + HE, + INC, + BUSTER, + CLUSTER, + NUCLEAR, + TX, + N2, + BALEFIRE, + SCHRAB, + TAINT, + CLOUD, + TURBINE, + + //shit solution but it works. this allows traits to be attached to these empty dummy types, allowing for custom warheads + CUSTOM0, CUSTOM1, CUSTOM2, CUSTOM3, CUSTOM4, CUSTOM5, CUSTOM6, CUSTOM7, CUSTOM8, CUSTOM9; + + /** Overrides that type's impact effect. Only runs serverside */ + public Consumer impactCustom = null; + /** Runs at the beginning of the missile's update cycle, both client and serverside. */ + public Consumer updateCustom = null; + /** Override for the warhead's name in the missile description */ + public String labelCustom = null; + } + + public enum FuelType { + + KEROSENE, + SOLID, + HYDROGEN, + XENON, + BALEFIRE + } + + public enum Rarity { + + COMMON(EnumChatFormatting.GRAY + "Common"), + UNCOMMON(EnumChatFormatting.YELLOW + "Uncommon"), + RARE(EnumChatFormatting.AQUA + "Rare"), + EPIC(EnumChatFormatting.LIGHT_PURPLE + "Epic"), + LEGENDARY(EnumChatFormatting.DARK_GREEN + "Legendary"), + SEWS_CLOTHES_AND_SUCKS_HORSE_COCK(EnumChatFormatting.DARK_AQUA + "Strange"); + + String name; + + Rarity(String name) { + this.name = name; + } + } + + public ItemCustomMissilePart makeChip(float inaccuracy) { + + this.type = PartType.CHIP; + this.top = PartSize.ANY; + this.bottom = PartSize.ANY; + this.attributes = new Object[] { inaccuracy }; + + parts.put(this.hashCode(), this); + + return this; + } + + public ItemCustomMissilePart makeWarhead(WarheadType type, float punch, float weight, PartSize size) { + + this.type = PartType.WARHEAD; + this.top = PartSize.NONE; + this.bottom = size; + this.attributes = new Object[] { type, punch, weight }; + setTextureName(RefStrings.MODID + ":mp_warhead"); + + parts.put(this.hashCode(), this); + + return this; + } + + public ItemCustomMissilePart makeFuselage(FuelType type, float fuel, PartSize top, PartSize bottom) { + + this.type = PartType.FUSELAGE; + this.top = top; + this.bottom = bottom; + attributes = new Object[] { type, fuel }; + setTextureName(RefStrings.MODID + ":mp_fuselage"); + + parts.put(this.hashCode(), this); + + return this; + } + + public ItemCustomMissilePart makeStability(float inaccuracy, PartSize size) { + + this.type = PartType.FINS; + this.top = size; + this.bottom = size; + this.attributes = new Object[] { inaccuracy }; + setTextureName(RefStrings.MODID + ":mp_stability"); + + parts.put(this.hashCode(), this); + + return this; + } + + public ItemCustomMissilePart makeThruster(FuelType type, float consumption, float lift, PartSize size) { + + this.type = PartType.THRUSTER; + this.top = size; + this.bottom = PartSize.NONE; + this.attributes = new Object[] { type, consumption, lift }; + setTextureName(RefStrings.MODID + ":mp_thruster"); + + parts.put(this.hashCode(), this); + + return this; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) + { + + if(title != null) + list.add(EnumChatFormatting.DARK_PURPLE + "\"" + title + "\""); + + try { + switch(type) { + case CHIP: + list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); + break; + case WARHEAD: + list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(bottom)); + list.add(EnumChatFormatting.BOLD + "Type: " + EnumChatFormatting.GRAY + getWarhead((WarheadType)attributes[0])); + list.add(EnumChatFormatting.BOLD + "Strength: " + EnumChatFormatting.GRAY + (Float)attributes[1]); + list.add(EnumChatFormatting.BOLD + "Weight: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); + break; + case FUSELAGE: + list.add(EnumChatFormatting.BOLD + "Top size: " + EnumChatFormatting.GRAY + getSize(top)); + list.add(EnumChatFormatting.BOLD + "Bottom size: " + EnumChatFormatting.GRAY + getSize(bottom)); + list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); + list.add(EnumChatFormatting.BOLD + "Fuel amount: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l"); + break; + case FINS: + list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); + list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); + break; + case THRUSTER: + list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); + list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); + list.add(EnumChatFormatting.BOLD + "Fuel consumption: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l/tick"); + list.add(EnumChatFormatting.BOLD + "Max. payload: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); + break; + } + } catch(Exception ex) { + list.add("### I AM ERROR ###"); + } + + if(type != PartType.CHIP) + list.add(EnumChatFormatting.BOLD + "Health: " + EnumChatFormatting.GRAY + health + "HP"); + + if(this.rarity != null) + list.add(EnumChatFormatting.BOLD + "Rarity: " + EnumChatFormatting.GRAY + this.rarity.name); + if(author != null) + list.add(EnumChatFormatting.WHITE + " by " + author); + if(witty != null) + list.add(EnumChatFormatting.GOLD + " " + EnumChatFormatting.ITALIC + "\"" + witty + "\""); + } + + public String getSize(PartSize size) { + + switch(size) { + case ANY: + return "Any"; + case SIZE_10: + return "1.0m"; + case SIZE_15: + return "1.5m"; + case SIZE_20: + return "2.0m"; + default: + return "None"; + } + } + + public String getWarhead(WarheadType type) { + + if(type.labelCustom != null) return type.labelCustom; + + switch(type) { + case HE: + return EnumChatFormatting.YELLOW + "HE"; + case INC: + return EnumChatFormatting.GOLD + "Incendiary"; + case CLUSTER: + return EnumChatFormatting.GRAY + "Cluster"; + case BUSTER: + return EnumChatFormatting.WHITE + "Bunker Buster"; + case NUCLEAR: + return EnumChatFormatting.DARK_GREEN + "Nuclear"; + case TX: + return EnumChatFormatting.DARK_PURPLE + "Thermonuclear (TX)"; + case N2: + return EnumChatFormatting.RED + "N²"; + case BALEFIRE: + return EnumChatFormatting.GREEN + "BF"; + case SCHRAB: + return EnumChatFormatting.AQUA + "Schrabidium"; + case TAINT: + return EnumChatFormatting.DARK_PURPLE + "Taint"; + case CLOUD: + return EnumChatFormatting.LIGHT_PURPLE + "Cloud"; + case TURBINE: + return (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE) + "Turbine"; + default: + return EnumChatFormatting.BOLD + "N/A"; + } + } + + public String getFuel(FuelType type) { + + switch(type) { + case KEROSENE: + return EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Peroxide"; + case SOLID: + return EnumChatFormatting.GOLD + "Solid Fuel"; + case HYDROGEN: + return EnumChatFormatting.DARK_AQUA + "Hydrogen / Oxygen"; + case XENON: + return EnumChatFormatting.DARK_PURPLE + "Xenon Gas"; + case BALEFIRE: + return EnumChatFormatting.GREEN + "BF Rocket Fuel / Peroxide"; + default: + return EnumChatFormatting.BOLD + "N/A"; + } + } + + //am i retarded? + /* yes */ + public ItemCustomMissilePart copy() { + + ItemCustomMissilePart part = new ItemCustomMissilePart(); + part.type = this.type; + part.top = this.top; + part.bottom = this.bottom; + part.health = this.health; + part.attributes = this.attributes; + part.health = this.health; + part.setTextureName(this.iconString); + + return part; + } + + public ItemCustomMissilePart setAuthor(String author) { + this.author = author; + return this; + } + + public ItemCustomMissilePart setTitle(String title) { + this.title = title; + return this; + } + + public ItemCustomMissilePart setWittyText(String witty) { + this.witty = witty; + return this; + } + + public ItemCustomMissilePart setHealth(float health) { + this.health = health; + return this; + } + + public ItemCustomMissilePart setRarity(Rarity rarity) { + this.rarity = rarity; + + if(this.type == PartType.FUSELAGE) { + if(this.top == PartSize.SIZE_10) + ItemLootCrate.list10.add(this); + if(this.top == PartSize.SIZE_15) + ItemLootCrate.list15.add(this); + } else { + ItemLootCrate.listMisc.add(this); + } + return this; + } + +} diff --git a/src/main/java/com/hbm/items/weapon/ItemDisperser.java b/src/main/java/com/hbm/items/weapon/ItemDisperser.java new file mode 100644 index 000000000..7f06f07e1 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemDisperser.java @@ -0,0 +1,75 @@ +package com.hbm.items.weapon; + +import com.hbm.entity.grenade.EntityDisperserCanister; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidTank; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +import java.util.List; + +public class ItemDisperser extends ItemFluidTank { + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + --stack.stackSize; + } + + world.playSoundAtEntity(player, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if(!world.isRemote) { + + EntityDisperserCanister canister = new EntityDisperserCanister(world, player); + canister.setType(Item.getIdFromItem(this)); + canister.setFluid(stack.getItemDamage()); + world.spawnEntityInWorld(canister); + } + return stack; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + + FluidType[] order = Fluids.getInNiceOrder(); + + for(int i = 1; i < order.length; ++i) { + FluidType type = order[i]; + int id = type.getID(); + if(type.isDispersable() && this == ModItems.disperser_canister) { + list.add(new ItemStack(item, 1, id)); + } else if(type == Fluids.PHEROMONE || type == Fluids.SULFURIC_ACID && this == ModItems.glyphid_gland) { + list.add(new ItemStack(item, 1, id)); + } + + } + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); + + s = this == ModItems.glyphid_gland ? s1 + " " + s : s + " " + s1; + return s; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister p_94581_1_) { + super.registerIcons(p_94581_1_); + this.overlayIcon = this == ModItems.disperser_canister ? p_94581_1_.registerIcon("hbm:disperser_canister_overlay") : p_94581_1_.registerIcon("hbm:fluid_identifier_overlay"); + } +} diff --git a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java similarity index 87% rename from src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java rename to src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java index 21dc8448a..12340864e 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java @@ -1,26 +1,24 @@ -package com.hbm.items.weapon.gununified; +package com.hbm.items.weapon; import java.util.List; import org.lwjgl.input.Mouse; import com.hbm.config.GeneralConfig; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.packet.GunAnimationPacket; -import com.hbm.packet.GunButtonPacket; +import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.GunAnimationPacket; +import com.hbm.packet.toserver.GunButtonPacket; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.util.BobMathUtil; import com.hbm.util.ChatBuilder; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; @@ -131,6 +129,9 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { for(int i = 0; i < bullets; i++) { spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); } + + if(player instanceof EntityPlayerMP) + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); setCharge(stack, getCharge(stack) - config.dischargePerShot);; } @@ -138,19 +139,9 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { world.playSoundAtEntity(player, mainConfig.firingSound, 1.0F, mainConfig.firingPitch); } - protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - - EntityBulletBase bullet = new EntityBulletBase(world, config, player); - world.spawnEntityInWorld(bullet); - - if(this.mainConfig.animations.containsKey(AnimType.CYCLE) && player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - - } - public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - if(mainConfig.firingMode == mainConfig.FIRE_MANUAL && main && tryShoot(stack, world, player, main)) { + if(mainConfig.firingMode == GunConfiguration.FIRE_MANUAL && main && tryShoot(stack, world, player, main)) { fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); @@ -189,7 +180,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { } public double getDurabilityForDisplay(ItemStack stack) { - return 1D - (double) getCharge(stack) / (double) getMaxCharge(); + return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override @@ -244,7 +235,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return mainConfig.maxCharge; } @@ -274,7 +265,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { ItemStack stack = new ItemStack(item); stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ItemEnergyGunBase) item).getMaxCharge()); + stack.stackTagCompound.setLong("charge", ((ItemEnergyGunBase) item).getMaxCharge(stack)); list.add(stack); } diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenade.java b/src/main/java/com/hbm/items/weapon/ItemGrenade.java index f26ee698e..4bca576fe 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGrenade.java +++ b/src/main/java/com/hbm/items/weapon/ItemGrenade.java @@ -2,49 +2,7 @@ package com.hbm.items.weapon; import java.util.List; -import com.hbm.entity.grenade.EntityGrenadeASchrab; -import com.hbm.entity.grenade.EntityGrenadeBlackHole; -import com.hbm.entity.grenade.EntityGrenadeBreach; -import com.hbm.entity.grenade.EntityGrenadeBurst; -import com.hbm.entity.grenade.EntityGrenadeCloud; -import com.hbm.entity.grenade.EntityGrenadeCluster; -import com.hbm.entity.grenade.EntityGrenadeDynamite; -import com.hbm.entity.grenade.EntityGrenadeElectric; -import com.hbm.entity.grenade.EntityGrenadeFire; -import com.hbm.entity.grenade.EntityGrenadeFlare; -import com.hbm.entity.grenade.EntityGrenadeFrag; -import com.hbm.entity.grenade.EntityGrenadeGas; -import com.hbm.entity.grenade.EntityGrenadeGascan; -import com.hbm.entity.grenade.EntityGrenadeGeneric; -import com.hbm.entity.grenade.EntityGrenadeIFBouncy; -import com.hbm.entity.grenade.EntityGrenadeIFBrimstone; -import com.hbm.entity.grenade.EntityGrenadeIFConcussion; -import com.hbm.entity.grenade.EntityGrenadeIFGeneric; -import com.hbm.entity.grenade.EntityGrenadeIFHE; -import com.hbm.entity.grenade.EntityGrenadeIFHopwire; -import com.hbm.entity.grenade.EntityGrenadeIFImpact; -import com.hbm.entity.grenade.EntityGrenadeIFIncendiary; -import com.hbm.entity.grenade.EntityGrenadeIFMystery; -import com.hbm.entity.grenade.EntityGrenadeIFNull; -import com.hbm.entity.grenade.EntityGrenadeIFSpark; -import com.hbm.entity.grenade.EntityGrenadeIFSticky; -import com.hbm.entity.grenade.EntityGrenadeIFToxic; -import com.hbm.entity.grenade.EntityGrenadeLemon; -import com.hbm.entity.grenade.EntityGrenadeMIRV; -import com.hbm.entity.grenade.EntityGrenadeMk2; -import com.hbm.entity.grenade.EntityGrenadeNuclear; -import com.hbm.entity.grenade.EntityGrenadeNuke; -import com.hbm.entity.grenade.EntityGrenadePC; -import com.hbm.entity.grenade.EntityGrenadePlasma; -import com.hbm.entity.grenade.EntityGrenadePoison; -import com.hbm.entity.grenade.EntityGrenadePulse; -import com.hbm.entity.grenade.EntityGrenadeSchrabidium; -import com.hbm.entity.grenade.EntityGrenadeShrapnel; -import com.hbm.entity.grenade.EntityGrenadeSmart; -import com.hbm.entity.grenade.EntityGrenadeStrong; -import com.hbm.entity.grenade.EntityGrenadeTau; -import com.hbm.entity.grenade.EntityGrenadeZOMG; -import com.hbm.entity.grenade.EntityWastePearl; +import com.hbm.entity.grenade.*; import com.hbm.items.ModItems; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenadeKyiv.java b/src/main/java/com/hbm/items/weapon/ItemGrenadeKyiv.java index 1adcdb3dc..bd5ecda87 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGrenadeKyiv.java +++ b/src/main/java/com/hbm/items/weapon/ItemGrenadeKyiv.java @@ -1,5 +1,7 @@ package com.hbm.items.weapon; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.world.World; public class ItemGrenadeKyiv extends ItemGenericGrenade { @@ -8,7 +10,8 @@ public class ItemGrenadeKyiv extends ItemGenericGrenade { super(fuse); } - public void explode(World world, double x, double y, double z) { - world.newExplosion(null, x, y, z, 5F, true, true); + @Override + public void explode(Entity grenade, EntityLivingBase thrower, World world, double x, double y, double z) { + world.newExplosion(grenade, x, y, z, 5F, true, true); } } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 065dcf6f4..b599776f0 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -5,7 +5,8 @@ import java.util.List; import org.lwjgl.input.Mouse; import com.hbm.config.GeneralConfig; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.handler.ArmorModHandler; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; @@ -15,15 +16,17 @@ import com.hbm.interfaces.IHoldableWeapon; import com.hbm.interfaces.IItemHUD; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.IEquipReceiver; +import com.hbm.items.ModItems; +import com.hbm.items.armor.ArmorFSB; +import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.lib.HbmCollection; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.GunAnimationPacket; -import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.packet.toclient.GunAnimationPacket; +import com.hbm.packet.toserver.GunButtonPacket; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; @@ -55,7 +58,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu public boolean m1;// = false; @SideOnly(Side.CLIENT) public boolean m2;// = false; - + public ItemGunBase(GunConfiguration config) { mainConfig = config; this.setMaxStackSize(1); @@ -112,12 +115,12 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu endActionClient(stack, world, entity, false); } - if(mainConfig.reloadType != mainConfig.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) { + if(mainConfig.reloadType != GunConfiguration.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) { if(GameSettings.isKeyDown(HbmKeybinds.reloadKey) && Minecraft.getMinecraft().currentScreen == null && (getMag(stack) < mainConfig.ammoCap || hasInfinity(stack, mainConfig))) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 2)); setIsReloading(stack, true); - resetReloadCycle(stack); + resetReloadCycle(entity, stack); } } } @@ -131,13 +134,29 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(getIsMouseDown(stack) && !(player.getHeldItem() == stack)) { setIsMouseDown(stack, false); } - + + int burstDuration = getBurstDuration(stack); + if(burstDuration > 0) { + + if(altConfig == null) { + if (burstDuration % mainConfig.firingDuration == 0 && tryShoot(stack, world, player, true)) { + fire(stack, world, player); + } + } else { + boolean canFire = altConfig.firingDuration == 1 || burstDuration % altConfig.firingDuration == 0; + if (canFire && tryShoot(stack, world, player, false)) { + altFire(stack, world, player); + } + } + + setBurstDuration(stack, getBurstDuration(stack) - 1); + if(getBurstDuration(stack) == 0) setDelay(stack, mainConfig.rateOfFire); + } if(getIsAltDown(stack) && !isCurrentItem) { setIsAltDown(stack, false); } if(GeneralConfig.enableGuns && mainConfig.firingMode == 1 && getIsMouseDown(stack) && tryShoot(stack, world, player, isCurrentItem)) { - fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); } @@ -164,7 +183,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu //whether or not the gun can shoot in its current state protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) { - if(getIsReloading(stack) && mainConfig.reloadType == mainConfig.RELOAD_SINGLE) { + //cancel reload when trying to shoot if it's a single reload weapon and at least one round is loaded + if(getIsReloading(stack) && mainConfig.reloadType == GunConfiguration.RELOAD_SINGLE && getMag(stack) > 0) { setReloadCycle(stack, 0); setIsReloading(stack, false); } @@ -188,7 +208,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(!main) config = altConfig; - if(config.reloadType == mainConfig.RELOAD_NONE) { + if(config.reloadType == GunConfiguration.RELOAD_NONE) { return getBeltSize(player, getBeltType(player, stack, main)) > 0; } else { @@ -202,7 +222,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu BulletConfiguration config = null; - if(mainConfig.reloadType == mainConfig.RELOAD_NONE) { + if(mainConfig.reloadType == GunConfiguration.RELOAD_NONE) { config = getBeltCfg(player, stack, true); } else { config = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); @@ -228,8 +248,15 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu int wear = (int) Math.ceil(config.wear / (1F + EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack))); setItemWear(stack, getItemWear(stack) + wear); } + + if(player instanceof EntityPlayerMP) { + AnimType animType = getMag(stack) == 0 ? AnimType.CYCLE_EMPTY : AnimType.CYCLE; + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(animType.ordinal()), (EntityPlayerMP) player); + } - world.playSoundAtEntity(player, mainConfig.firingSound, mainConfig.firingVolume, mainConfig.firingPitch); + String firingSound = mainConfig.firingSound; + if (getMag(stack) == 0 && mainConfig.firingSoundEmpty != null) firingSound = mainConfig.firingSoundEmpty; + world.playSoundAtEntity(player, firingSound, mainConfig.firingVolume, mainConfig.firingPitch); if(mainConfig.ejector != null && !mainConfig.ejector.getAfterReload()) queueCasing(player, mainConfig.ejector, config, stack); @@ -241,13 +268,13 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(altConfig == null) return; - BulletConfiguration config = altConfig.reloadType == altConfig.RELOAD_NONE ? getBeltCfg(player, stack, false) : BulletConfigSyncingUtil.pullConfig(altConfig.config.get(getMagType(stack))); + BulletConfiguration config = altConfig.reloadType == GunConfiguration.RELOAD_NONE ? getBeltCfg(player, stack, false) : BulletConfigSyncingUtil.pullConfig(altConfig.config.get(getMagType(stack))); int bullets = config.bulletsMin; for(int k = 0; k < altConfig.roundsPerCycle; k++) { - if(altConfig.reloadType != altConfig.RELOAD_NONE && !hasAmmo(stack, player, true)) + if(altConfig.reloadType != GunConfiguration.RELOAD_NONE && !hasAmmo(stack, player, true)) break; if(config.bulletsMax > config.bulletsMin) @@ -256,6 +283,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu for(int i = 0; i < bullets; i++) { spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); } + + if(player instanceof EntityPlayerMP) + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.ALT_CYCLE.ordinal()), (EntityPlayerMP) player); useUpAmmo(player, stack, false); player.inventoryContainer.detectAndSendChanges(); @@ -271,31 +301,34 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu //spawns the actual projectile, can be overridden to change projectile entity protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - - EntityBulletBase bullet = new EntityBulletBase(world, config, player); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, config, player); world.spawnEntityInWorld(bullet); - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - } //called on click (server side, called by mouse packet) for semi-automatics and specific events public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - if(mainConfig.firingMode == mainConfig.FIRE_MANUAL && main && tryShoot(stack, world, player, main)) { - fire(stack, world, player); - setDelay(stack, mainConfig.rateOfFire); - //setMag(stack, getMag(stack) - 1); - //useUpAmmo(player, stack, main); - //player.inventoryContainer.detectAndSendChanges(); + boolean validConfig = mainConfig.firingMode == GunConfiguration.FIRE_MANUAL || mainConfig.firingMode == GunConfiguration.FIRE_BURST; + + if(validConfig && main && tryShoot(stack, world, player, main)) { + + if(mainConfig.firingMode == GunConfiguration.FIRE_BURST){ + if(getBurstDuration(stack) <= 0) + setBurstDuration(stack,mainConfig.firingDuration * mainConfig.roundsPerBurst); + } else { + fire(stack, world, player); + setDelay(stack, mainConfig.rateOfFire); + } } if(!main && altConfig != null && tryShoot(stack, world, player, main)) { - altFire(stack, world, player); - setDelay(stack, altConfig.rateOfFire); - //useUpAmmo(player, stack, main); - //player.inventoryContainer.detectAndSendChanges(); + + if(altConfig.firingMode == GunConfiguration.FIRE_BURST && getBurstDuration(stack) <= 0){ + setBurstDuration(stack,altConfig.firingDuration * altConfig.roundsPerBurst); + } else { + altFire(stack, world, player); + setDelay(stack, altConfig.rateOfFire); + } } } @@ -320,9 +353,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu BulletConfiguration prevCfg = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); - if(getMag(stack) == 0) - resetAmmoType(stack, world, player); - BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); ComparableStack ammo = (ComparableStack) cfg.ammo.copy(); @@ -338,21 +368,29 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu setIsReloading(stack, false); return; } + + String reloadSound = mainConfig.reloadSoundEmpty != null && getMag(stack) == 0 ? mainConfig.reloadSoundEmpty : mainConfig.reloadSound; ammo.stacksize = toConsume; setMag(stack, getMag(stack) + toAdd); - if (getMag(stack) >= mainConfig.ammoCap) + if (getMag(stack) >= mainConfig.ammoCap) { setIsReloading(stack, false); - else - resetReloadCycle(stack); + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD_END.ordinal()), (EntityPlayerMP) player); + } else { + resetReloadCycle(player, stack); + AnimType animType = availableFills <= 1 ? AnimType.RELOAD_END : AnimType.RELOAD_CYCLE; + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(animType.ordinal()), (EntityPlayerMP) player); + if (availableFills > 1 && !mainConfig.reloadSoundEnd) + world.playSoundAtEntity(player, reloadSound, 1.0F, 1.0F); + } if(hasLoaded && mainConfig.reloadSoundEnd) - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); + world.playSoundAtEntity(player, reloadSound, 1.0F, 1.0F); if(mainConfig.ejector != null && mainConfig.ejector.getAfterReload()) queueCasing(player, mainConfig.ejector, prevCfg, stack); - - InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length, ammo); + + InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length - 1, ammo); } else { setReloadCycle(stack, getReloadCycle(stack) - 1); } @@ -365,11 +403,14 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu //initiates a reload public void startReloadAction(ItemStack stack, World world, EntityPlayer player) { + + if(getMag(stack) == 0) + resetAmmoType(stack, world, player); if(player.isSneaking() && hasInfinity(stack, mainConfig)) { - if(this.getMag(stack) == mainConfig.ammoCap) { - this.setMag(stack, 0); + if(getMag(stack) == mainConfig.ammoCap) { + setMag(stack, 0); this.resetAmmoType(stack, world, player); world.playSoundAtEntity(player, "tile.piston.out", 1.0F, 1.0F); } @@ -377,20 +418,24 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu return; } - if(this.getMag(stack) == mainConfig.ammoCap) + if(getMag(stack) == mainConfig.ammoCap) return; if(getIsReloading(stack)) return; - if(!mainConfig.reloadSoundEnd) - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); + if(!mainConfig.reloadSoundEnd) { + String reloadSound = mainConfig.reloadSoundEmpty != null && getMag(stack) == 0 ? mainConfig.reloadSoundEmpty : mainConfig.reloadSound; + world.playSoundAtEntity(player, reloadSound, 1.0F, 1.0F); + } - if(!world.isRemote) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD.ordinal()), (EntityPlayerMP) player); + if(!world.isRemote) { + AnimType reloadType = getMag(stack) == 0 ? AnimType.RELOAD_EMPTY : AnimType.RELOAD; + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(reloadType.ordinal()), (EntityPlayerMP) player); + } setIsReloading(stack, true); - resetReloadCycle(stack); + resetReloadCycle(player, stack); } public boolean canReload(ItemStack stack, World world, EntityPlayer player) { @@ -454,8 +499,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu addAdditionalInformation(stack, list); } - protected void addAdditionalInformation(ItemStack stack, List list) - { + protected void addAdditionalInformation(ItemStack stack, List list) { final BulletConfiguration bulletConfig = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); list.add(I18nUtil.resolveKey(HbmCollection.gunDamage, bulletConfig.dmgMin, bulletConfig.dmgMax)); if(bulletConfig.bulletsMax != 1) @@ -544,8 +588,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(!main) config = altConfig; - if(hasInfinity(stack, config)) - return; + if(hasInfinity(stack, config)) return; + if(isTrenchMaster(player) && player.getRNG().nextInt(3) == 0) return; + if(hasAoS(player) && player.getRNG().nextInt(3) == 0) return; if(config.reloadType != GunConfiguration.RELOAD_NONE) { setMag(stack, getMag(stack) - 1); @@ -559,8 +604,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu } /// sets reload cycle to config defult /// - public static void resetReloadCycle(ItemStack stack) { - writeNBT(stack, "reload", ((ItemGunBase)stack.getItem()).mainConfig.reloadDuration); + public static void resetReloadCycle(EntityPlayer player, ItemStack stack) { + writeNBT(stack, "reload", getReloadDuration(player, stack)); } /// if reloading routine is active /// @@ -643,6 +688,14 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu public static int getMagType(ItemStack stack) { return readNBT(stack, "magazineType"); } + /// Sets how long a burst fires for, only useful for burst fire weapons /// + public static void setBurstDuration(ItemStack stack, int i) { + writeNBT(stack, "bduration", i); + } + + public static int getBurstDuration(ItemStack stack) { + return readNBT(stack, "bduration"); + } /// queued casing for ejection /// public static void setCasing(ItemStack stack, BulletConfiguration bullet) { @@ -740,14 +793,20 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu @SideOnly(Side.CLIENT) public BusAnimation getAnimation(ItemStack stack, AnimType type) { GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; + if (!config.animationsLoaded && config.loadAnimations != null) { + config.loadAnimations.accept(null); + config.animationsLoaded = true; + } return config.animations.get(type); } @Override - public void onEquip(EntityPlayer player) { + public void onEquip(EntityPlayer player, ItemStack stack) { if(!mainConfig.equipSound.isEmpty() && !player.worldObj.isRemote) { player.worldObj.playSoundAtEntity(player, mainConfig.equipSound, 1, 1); } + + if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.EQUIP.ordinal()), (EntityPlayerMP) player); } protected static void queueCasing(Entity entity, CasingEjector ejector, BulletConfiguration bullet, ItemStack stack) { @@ -777,4 +836,25 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu data.setInteger("ej", ejector.getId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 50)); } + + public static int getReloadDuration(EntityPlayer player, ItemStack stack) { + GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; + int cycle = config.reloadDuration; + if (getMag(stack) == 0) cycle += config.emptyReloadAdditionalDuration; + if(isTrenchMaster(player)) return Math.max(1, cycle / 2); + return cycle; + } + + public static boolean isTrenchMaster(EntityPlayer player) { + return player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() == ModItems.trenchmaster_plate && ArmorFSB.hasFSBArmor(player); + } + + public static boolean hasAoS(EntityPlayer player) { + if(player.inventory.armorInventory[3] != null) { + ItemStack[] mods = ArmorModHandler.pryMods(player.inventory.armorInventory[3]); + ItemStack helmet = mods[ArmorModHandler.helmet_only]; + return helmet != null && helmet.getItem() == ModItems.card_aos; + } + return false; + } } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBio.java b/src/main/java/com/hbm/items/weapon/ItemGunBio.java deleted file mode 100644 index f2788d810..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunBio.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.handler.GunConfiguration; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationKeyframe; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class ItemGunBio extends ItemGunBase { - - public ItemGunBio(GunConfiguration config) { - super(config); - } - - /* just a test */ - public static long lastShot; - public static List smokeNodes = new ArrayList(); - - @Override - public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { } - - @Override - @SideOnly(Side.CLIENT) - protected void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) { - super.updateClient(stack, world, entity, slot, isCurrentItem); - - boolean smoking = lastShot + 2000 > System.currentTimeMillis(); - - if(!smoking && !smokeNodes.isEmpty()) { - smokeNodes.clear(); - } - - if(smoking) { - - Vec3 prev = Vec3.createVectorHelper(-entity.motionX, -entity.motionY, -entity.motionZ); - prev.rotateAroundY((float) (entity.rotationYaw * Math.PI / 180D)); - double accel = 15D; - double side = (entity.rotationYaw - entity.prevRotationYawHead) * 0.1D; - double waggle = 0.025D; - - for(double[] node : smokeNodes) { - node[0] += prev.xCoord * accel + world.rand.nextGaussian() * waggle + side; - node[1] += prev.yCoord + 1.5D; - node[2] += prev.zCoord * accel + world.rand.nextGaussian() * waggle; - } - - double alpha = (System.currentTimeMillis() - ItemGunBio.lastShot) / 2000D; - alpha = (1 - alpha) * 0.5D; - - if(this.getIsReloading(stack)) alpha = 0; - - smokeNodes.add(new double[] {0, 0, 0, alpha}); - } - } - - @Override - @SideOnly(Side.CLIENT) - public BusAnimation getAnimation(ItemStack stack, AnimType type) { - //GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; - //return config.animations.get(type); - - if(type == AnimType.CYCLE) { - lastShot = System.currentTimeMillis(); - return new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -3, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) - ) - .addBus("HAMMER", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 300)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - ) - .addBus("DRUM", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50)) - ); - } - - if(type == AnimType.RELOAD) { - return new BusAnimation() - .addBus("LATCH", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 90, 300)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 90, 2000)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150)) - ) - .addBus("FRONT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 45, 150)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 45, 2000)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - .addBus("RELOAD_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) - .addKeyframe(new BusAnimationKeyframe(60, 0, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(60, 0, 0, 500)) - .addKeyframe(new BusAnimationKeyframe(0, -90, -90, 0)) - .addKeyframe(new BusAnimationKeyframe(0, -90, -90, 600)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100)) - .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 50)) - .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 100)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) - ) - .addBus("RELOAD_MOVE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) - .addKeyframe(new BusAnimationKeyframe(0, -15, 0, 1000)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 450)) - ) - .addBus("DRUM_PUSH", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1600)) - .addKeyframe(new BusAnimationKeyframe(0, 0, -5, 0)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) - ); - } - - return null; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java deleted file mode 100644 index 880813acd..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java +++ /dev/null @@ -1,220 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; - -import com.hbm.config.GeneralConfig; -import com.hbm.entity.projectile.EntityChemical; -import com.hbm.handler.GunConfiguration; -import com.hbm.handler.guncfg.GunEnergyFactory; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.machine.ItemFluidIcon; -import com.hbm.packet.GunAnimationPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay; -import com.hbm.render.util.RenderScreenOverlay.Crosshair; - -import api.hbm.fluid.IFillableItem; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class ItemGunChemthrower extends ItemGunBase implements IFillableItem { - - public ItemGunChemthrower() { - super(GunEnergyFactory.getChemConfig()); - } - - @Override - protected void fire(ItemStack stack, World world, EntityPlayer player) { - - if(!hasAmmo(stack, player, true)) - return; - - int bullets = 1; - - for(int i = 0; i < bullets; i++) { - spawnProjectile(world, player, stack, 0); - } - - useUpAmmo(player, stack, true); - player.inventoryContainer.detectAndSendChanges(); - - int wear = (int) Math.ceil(10 / (1F + EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack))); - setItemWear(stack, getItemWear(stack) + wear); - - //world.playSoundAtEntity(player, mainConfig.firingSound, 1.0F, mainConfig.firingPitch); - } - - @Override - public boolean hasAmmo(ItemStack stack, EntityPlayer player, boolean main) { - return getMag(stack) >= 0 + this.getConsumption(stack); - } - - @Override - public void useUpAmmo(EntityPlayer player, ItemStack stack, boolean main) { - - if(!main && altConfig == null) - return; - - GunConfiguration config = mainConfig; - - if(!main) - config = altConfig; - - if(hasInfinity(stack, config)) - return; - - setMag(stack, getMag(stack) - this.getConsumption(stack)); - } - - @Override - public boolean canReload(ItemStack stack, World world, EntityPlayer player) { - return false; - } - - protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - - //spawn fluid projectile - - EntityChemical chem = new EntityChemical(world, player); - chem.setFluid(this.getFluidType(stack)); - world.spawnEntityInWorld(chem); - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - } - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - list.add("Ammo: " + getMag(stack) + " / " + mainConfig.ammoCap + "mB"); - - list.add("Ammo Type: " + I18n.format(this.getFluidType(stack).getUnlocalizedName())); - - int dura = mainConfig.durability - getItemWear(stack); - - if(dura < 0) - dura = 0; - - list.add("Durability: " + dura + " / " + mainConfig.durability); - list.add(""); - list.add("Name: " + mainConfig.name); - list.add("Manufacturer: " + mainConfig.manufacturer); - - if(!mainConfig.comment.isEmpty()) { - list.add(""); - for(String s : mainConfig.comment) - list.add(EnumChatFormatting.ITALIC + s); - } - - if(GeneralConfig.enableExtendedLogging) { - list.add(""); - list.add("Type: " + getMagType(stack)); - list.add("Is Reloading: " + getIsReloading(stack)); - list.add("Reload Cycle: " + getReloadCycle(stack)); - list.add("RoF Cooldown: " + getDelay(stack)); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void renderHUD(Pre event, ElementType type, EntityPlayer player, ItemStack stack) { - - ItemGunBase gun = ((ItemGunBase)stack.getItem()); - GunConfiguration gcfg = gun.mainConfig; - - if(type == ElementType.HOTBAR) { - - FluidType fluid = this.getFluidType(stack); - - ItemStack ammo = ItemFluidIcon.make(fluid, 1); - - int count = ItemGunBase.getMag(stack); - int max = gcfg.ammoCap; - boolean showammo = gcfg.showAmmo; - - int dura = ItemGunBase.getItemWear(stack) * 50 / gcfg.durability; - - RenderScreenOverlay.renderAmmo(event.resolution, Minecraft.getMinecraft().ingameGUI, ammo, count, max, dura, showammo); - } - - if(type == ElementType.CROSSHAIRS && GeneralConfig.enableCrosshairs) { - - event.setCanceled(true); - - if(!(gcfg.hasSights && player.isSneaking())) - RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, ((IHoldableWeapon)player.getHeldItem().getItem()).getCrosshair()); - else - RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, Crosshair.NONE); - } - } - - @Override - protected void reload2(ItemStack stack, World world, EntityPlayer player) { - this.setIsReloading(stack, false); - } - - public FluidType getFluidType(ItemStack stack) { - return Fluids.fromID(this.getMagType(stack)); - } - - public int getConsumption(ItemStack stack) { - return 3; - } - - @Override - public boolean acceptsFluid(FluidType type, ItemStack stack) { - return getFluidType(stack) == type || this.getMag(stack) == 0; - } - - public static final int transferSpeed = 50; - - @Override - public int tryFill(FluidType type, int amount, ItemStack stack) { - - if(!acceptsFluid(type, stack)) - return amount; - - if(this.getMag(stack) == 0) - this.setMagType(stack, type.getID()); - - int fill = this.getMag(stack); - int req = this.mainConfig.ammoCap - fill; - - int toFill = Math.min(amount, req); - toFill = Math.min(toFill, transferSpeed); - - this.setMag(stack, fill + toFill); - - return amount - toFill; - } - - @Override - public boolean providesFluid(FluidType type, ItemStack stack) { - return getFluidType(stack) == type; - } - - @Override - public int tryEmpty(FluidType type, int amount, ItemStack stack) { - - int fill = this.getMag(stack); - int toUnload = Math.min(fill, amount); - toUnload = Math.min(toUnload, transferSpeed); - - this.setMag(stack, fill - toUnload); - - return toUnload; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunDart.java b/src/main/java/com/hbm/items/weapon/ItemGunDart.java deleted file mode 100644 index 1840cda68..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunDart.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; - -import api.hbm.item.IDesignatorItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.ChatStyle; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class ItemGunDart extends ItemGunBase implements IDesignatorItem { - - public ItemGunDart(GunConfiguration config) { - super(config); - } - - public static void writePlayer(ItemStack stack, EntityPlayer player) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setString("player", player.getDisplayName()); - stack.stackTagCompound.setLong("lease", player.worldObj.getTotalWorldTime() + 60 * 60 * 20); - } - - public static EntityPlayer readPlayer(World world, ItemStack stack) { - - if(!stack.hasTagCompound()) - return null; - - if(stack.stackTagCompound.getLong("lease") < world.getTotalWorldTime()) - return null; - - return MinecraftServer.getServer().getConfigurationManager().func_152612_a(stack.stackTagCompound.getString("player")); - } - - public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(main) { - super.startAction(stack, world, player, main); - } else { - - EntityPlayer target = readPlayer(world, stack); - - if(target != null) { - - int dim = target.worldObj.provider.dimensionId; - int x = (int)target.posX; - int y = (int)target.posY; - int z = (int)target.posZ; - int dist = (int) target.getDistanceToEntity(player); - - player.addChatComponentMessage(new ChatComponentText(target.getDisplayName()).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - player.addChatComponentMessage(new ChatComponentText("Dim: " + dim + " X:" + x + " Y:" + y + " Z:" + z + " (" + dist + " blocks away)").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - } else { - - player.addChatComponentMessage(new ChatComponentText("No Target").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); - } - } - } - - @Override - public boolean isReady(World world, ItemStack stack, int x, int y, int z) { - EntityPlayer target = readPlayer(world, stack); - return target != null && target.dimension == world.provider.dimensionId; - } - - @Override - public Vec3 getCoords(World world, ItemStack stack, int x, int y, int z) { - EntityPlayer target = readPlayer(world, stack); - return Vec3.createVectorHelper(target.posX, target.posY, target.posZ); - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunDetonator.java b/src/main/java/com/hbm/items/weapon/ItemGunDetonator.java deleted file mode 100644 index ae89da2c9..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunDetonator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; - -import net.minecraft.item.ItemStack; - -public class ItemGunDetonator extends ItemGunBase { - - public ItemGunDetonator(GunConfiguration config) { - super(config); - } - - @Override - public boolean hasInfinity(ItemStack stack, GunConfiguration config) { - return true; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java deleted file mode 100644 index 1d53bb44c..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.GunConfiguration; -import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; -import com.hbm.main.MainRegistry; -import com.hbm.packet.GunAnimationPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.sound.AudioWrapper; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemGunGauss extends ItemGunBase { - - private AudioWrapper chargeLoop; - - public ItemGunGauss(GunConfiguration config, GunConfiguration alt) { - super(config, alt); - } - - public void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(getHasShot(stack)) { - world.playSoundAtEntity(player, "hbm:weapon.sparkShoot", 2.0F, 1.0F); - setHasShot(stack, false); - } - - if(!main && getStored(stack) > 0) { - EntityBulletBase bullet = new EntityBulletBase(world, altConfig.config.get(0), player); - bullet.overrideDamage = Math.max(getStored(stack), 1) * 10F; - world.spawnEntityInWorld(bullet); - world.playSoundAtEntity(player, "hbm:weapon.tauShoot", 0.5F, 0.75F); - setItemWear(stack, getItemWear(stack) + (getCharge(stack)) * 2); - setCharge(stack, 0); - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - } - } - - public void endActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(chargeLoop != null) { - chargeLoop.stopSound(); - chargeLoop = null; - } - } - - protected void altFire(ItemStack stack, World world, EntityPlayer player) { - setCharge(stack, 1); - } - - @Override - public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(!main && getItemWear(stack) < mainConfig.durability && player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) { - chargeLoop = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, 1.0F, 5F, 0.75F); - world.playSoundAtEntity(player, "hbm:weapon.tauChargeLoop2", 1.0F, 0.75F); - - if(chargeLoop != null) { - chargeLoop.startSound(); - } - } - } - - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - - super.updateServer(stack, world, player, slot, isCurrentItem); - - if(getIsAltDown(stack) && getItemWear(stack) < mainConfig.durability) { - - int c = getCharge(stack); - - if(c > 200) { - setCharge(stack, 0); - setItemWear(stack, mainConfig.durability); - player.attackEntityFrom(ModDamageSource.tauBlast, 1000); - world.newExplosion(player, player.posX, player.posY + player.eyeHeight, player.posZ, 5.0F, true, true); - return; - } - - if(c > 0) { - setCharge(stack, c + 1); - - if(c % 10 == 1 && c < 140 && c > 2) { - - if(player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) { - player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo); - setStored(stack, getStored(stack) + 1); - } else { - setCharge(stack, 0); - setStored(stack, 0); - } - } - } else { - setStored(stack, 0); - } - } else { - setCharge(stack, 0); - setStored(stack, 0); - } - } - - protected void updateClient(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - super.updateClient(stack, world, player, slot, isCurrentItem); - - if(chargeLoop != null) { - if(!chargeLoop.isPlaying()) { - chargeLoop = rebootAudio(chargeLoop, player); - } - chargeLoop.updatePosition((float)player.posX, (float)player.posY, (float)player.posZ); - chargeLoop.updatePitch(1 + (getCharge(stack)) * 0.01F); - } - } - - public AudioWrapper rebootAudio(AudioWrapper wrapper, EntityPlayer player) { - wrapper.stopSound(); - AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, wrapper.getVolume(), wrapper.getRange(), wrapper.getPitch()); - audio.startSound(); - return audio; - } - - protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - - super.spawnProjectile(world, player, stack, config); - setHasShot(stack, true); - } - - public static void setHasShot(ItemStack stack, boolean b) { - writeNBT(stack, "hasShot", b ? 1 : 0); - } - - public static boolean getHasShot(ItemStack stack) { - return readNBT(stack, "hasShot") == 1; - } - - /// gauss charge state /// - public static void setCharge(ItemStack stack, int i) { - writeNBT(stack, "gauss_charge", i); - } - - public static int getCharge(ItemStack stack) { - return readNBT(stack, "gauss_charge"); - } - - public static void setStored(ItemStack stack, int i) { - writeNBT(stack, "gauss_stored", i); - } - - public static int getStored(ItemStack stack) { - return readNBT(stack, "gauss_stored"); - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunLacunae.java b/src/main/java/com/hbm/items/weapon/ItemGunLacunae.java deleted file mode 100644 index 03fa31c1c..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunLacunae.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemGunLacunae extends ItemGunBase { - - public ItemGunLacunae(GunConfiguration config) { - super(config); - } - - @Override - public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(main) { - setDelay(stack, 20); - world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpinup", 1.0F, 1.0F); - } - } - - @Override - public void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(main) - world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpindown", 1.0F, 1.0F); - } - - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - - super.updateServer(stack, world, player, slot, isCurrentItem); - - if(getIsMouseDown(stack)) { - - int rot = readNBT(stack, "rot") % 360; - rot += 25; - writeNBT(stack, "rot", rot); - } - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java b/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java deleted file mode 100644 index dd8f945bc..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.entity.projectile.EntityCombineBallNT; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.GunConfiguration; -import com.hbm.items.ModItems; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemGunOSIPR extends ItemGunBase { - - public ItemGunOSIPR(GunConfiguration config, GunConfiguration alt) { - super(config, alt); - } - - @Override - protected void altFire(ItemStack stack, World world, EntityPlayer player) { - - setCharge(stack, 1); - world.playSoundAtEntity(player, "hbm:weapon.osiprCharging", 1.0F, 1F); - } - - @Override - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - super.updateServer(stack, world, player, slot, isCurrentItem); - - if(!isCurrentItem) { - setCharge(stack, 0); - return; - } - - int i = getCharge(stack); - - if(i >= 20) { - EntityCombineBallNT energyBall = new EntityCombineBallNT(world, BulletConfigSyncingUtil.SPECIAL_OSIPR_CHARGED, player); - world.spawnEntityInWorld(energyBall); - world.playSoundAtEntity(player, altConfig.firingSound, 1.0F, 1F); - setCharge(stack, 0); - setDelay(stack, altConfig.rateOfFire); - player.inventory.consumeInventoryItem(ModItems.gun_osipr_ammo2); - - } else if(i > 0) - setCharge(stack, i + 1); - } - - @Override - protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) { - - return super.tryShoot(stack, world, player, main) && getCharge(stack) == 0; - } - - /// CMB charge state /// - public static void setCharge(ItemStack stack, int i) { - writeNBT(stack, "cmb_charge", i); - } - - public static int getCharge(ItemStack stack) { - return readNBT(stack, "cmb_charge"); - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunShotty.java b/src/main/java/com/hbm/items/weapon/ItemGunShotty.java deleted file mode 100644 index e32d5a255..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunShotty.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; -import com.hbm.lib.Library; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemGunShotty extends ItemGunBase { - - public ItemGunShotty(GunConfiguration config) { - super(config); - } - - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - super.updateServer(stack, world, player, slot, isCurrentItem); - - if((player.getUniqueID().toString().equals(Library.Dr_Nostalgia) || player.getDisplayName().equals("Tankish") || player.getDisplayName().equals("Tankish020")) && - this.getDelay(stack) < this.mainConfig.rateOfFire * 0.9) - this.setDelay(stack, 0); - } - -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunVortex.java b/src/main/java/com/hbm/items/weapon/ItemGunVortex.java deleted file mode 100644 index fb8422d72..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunVortex.java +++ /dev/null @@ -1,215 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemGunVortex extends ItemGunBase { - - @SideOnly(Side.CLIENT) - private long lastFireTime; - - public ItemGunVortex(GunConfiguration config) { - super(config); - } - - /*@Override - protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - //EntityBeamVortex beam = new EntityBeamVortex(world, player); - //world.spawnEntity(beam); - //100 blocks is its current max range, but I'm sure that could be increased if necessary. - List entsOnBeam = Library.rayTraceEntitiesOnLine(player, 100, 1).getRight(); - - for(Entity e : entsOnBeam){ - - if(!(e instanceof EntityLivingBase)) - continue; - - float dmg = 30; - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, ModDamageSource.radiation, dmg); - } - - if(this.mainConfig.animations.containsKey(AnimType.CYCLE) && player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - PacketDispatcher.wrapper.sendToAllAround(new GunFXPacket(player, FXType.FIRE), new TargetPoint(world.provider.dimensionId, player.posX, player.posY, player.posZ, 1)); - } - - //This method should also solve the supershotgun issue where it doesn't fire some of the time (maybe?) - @Override - @SideOnly(Side.CLIENT) - public void onFireClient(ItemStack stack, EntityPlayer player, boolean shouldDoThirdPerson) { - //If I'm going to do more particle systems like this maybe I should write some kind of abstraction around it to make it less messy. - NBTTagCompound tag = new NBTTagCompound(); - Vec3d pos = null; - if(stack == player.getHeldItemMainhand()){ - pos = new Vec3d(-0.16, -0.20, 1).rotatePitch(-(float) Math.toRadians(player.rotationPitch)).rotateYaw(-(float) Math.toRadians(player.rotationYawHead)); - } else { - pos = new Vec3d(0.16, -0.20, 1).rotatePitch(-(float) Math.toRadians(player.rotationPitch)).rotateYaw(-(float) Math.toRadians(player.rotationYawHead)); - } - pos = pos.add(player.getPositionEyes(1F)); - Vec3d view = BobMathUtil.getVectorFromAngle(BobMathUtil.getEulerAngles(player.getLookVec()).addVector(0, 3, 0)); - Vec3d hitPos = null; - Vec3d hitNormal = null; - RayTraceResult r = Library.rayTraceIncludeEntities(player, 100, MainRegistry.proxy.partialTicks()); - if(r == null || r.typeOfHit == Type.MISS){ - hitPos = player.getLook(MainRegistry.proxy.partialTicks()).scale(100).add(pos); - } else { - hitPos = r.hitVec; - hitNormal = new Vec3d(r.sideHit.getFrontOffsetX(), r.sideHit.getFrontOffsetY(), r.sideHit.getFrontOffsetZ()); - } - - tag.setString("type", "spark"); - tag.setString("mode", "coneBurst"); - tag.setDouble("posX", pos.x-player.motionX); - tag.setDouble("posY", pos.y-player.motionY); - tag.setDouble("posZ", pos.z-player.motionZ); - tag.setDouble("dirX", view.x); - tag.setDouble("dirY", view.y); - tag.setDouble("dirZ", view.z); - tag.setFloat("r", 0.2F); - tag.setFloat("g", 0.8F); - tag.setFloat("b", 0.9F); - tag.setFloat("a", 1.5F); - tag.setInteger("lifetime", 1); - tag.setFloat("width", 0.01F); - tag.setFloat("length", 2F); - tag.setFloat("gravity", 0); - tag.setFloat("angle", 15F); - tag.setInteger("count", 12); - MainRegistry.proxy.effectNT(tag); - - ParticleVortexBeam beam = new ParticleVortexBeam(player.world, pos.x, pos.y, pos.z, hitPos.x, hitPos.y, hitPos.z, shouldDoThirdPerson); - beam.color(0.5F, 0.8F, 0.9F, 2.0F); - beam.width(0.125F); - Minecraft.getMinecraft().effectRenderer.addEffect(beam); - - ParticleVortexFireFlash flash = new ParticleVortexFireFlash(player.world, pos.x, pos.y, pos.z, hitPos.x, hitPos.y, hitPos.z); - flash.color(0.5F, 0.8F, 0.9F, 1F); - flash.width(0.5F); - Minecraft.getMinecraft().effectRenderer.addEffect(flash); - - Vec3 line = hitPos.subtract(pos); - int circleParticles = (int) line.lengthVector(); - for(int i = 0; i < circleParticles; i ++){ - Vec3 circlePos = line.scale(i/(float)circleParticles).add(pos); - ParticleVortexCircle c = new ParticleVortexCircle(player.worldObj, circlePos.x, circlePos.y, circlePos.z, 0.5F+player.worldObj.rand.nextFloat()*0.3F); - c.color(0.5F, 0.8F, 0.9F, 0.15F); - c.lifetime((int) (15+(i/(float)circleParticles)*10)); - Minecraft.getMinecraft().effectRenderer.addEffect(c); - } - - int extraParticles = (int) line.lengthVector(); - for(int i = 0; i < extraParticles; i ++){ - Vec3d circlePos = line.scale((i/(float)circleParticles)*0.25).add(pos); - float randX = (float) (player.worldObj.rand.nextGaussian()-0.5) * 0.01F; - float randY = (float) (player.worldObj.rand.nextGaussian()-0.5) * 0.01F; - float randZ = (float) (player.worldObj.rand.nextGaussian()-0.5) * 0.01F; - ParticleVortexParticle c = new ParticleVortexParticle(player.worldObj, circlePos.x+randX, circlePos.y+randY, circlePos.z+randZ, 0.5F); - c.color(0.5F, 0.8F, 0.9F, 0.15F); - c.lifetime(30); - Minecraft.getMinecraft().effectRenderer.addEffect(c); - } - - ParticleVortexGlow glow = new ParticleVortexGlow(player.worldObj, pos.x, pos.y, pos.z, 2F); - glow.color(0.3F, 0.7F, 1F, 0.5F); - glow.lifetime(15); - Minecraft.getMinecraft().effectRenderer.addEffect(glow); - - if(hitNormal != null){ - Vec3d sparkAxis = line.normalize().scale(0.25); - switch(r.sideHit.getAxis()){ - case X: - sparkAxis = new Vec3d(-sparkAxis.x, sparkAxis.y, sparkAxis.z); - break; - case Y: - sparkAxis = new Vec3d(sparkAxis.x, -sparkAxis.y, sparkAxis.z); - break; - case Z: - sparkAxis = new Vec3d(sparkAxis.x, sparkAxis.y, -sparkAxis.z); - break; - } - tag = new NBTTagCompound(); - tag.setString("type", "spark"); - tag.setString("mode", "coneBurst"); - tag.setDouble("posX", hitPos.x); - tag.setDouble("posY", hitPos.y); - tag.setDouble("posZ", hitPos.z); - tag.setDouble("dirX", sparkAxis.x); - tag.setDouble("dirY", sparkAxis.y+0.1); - tag.setDouble("dirZ", sparkAxis.z); - tag.setFloat("r", 0.2F); - tag.setFloat("g", 0.8F); - tag.setFloat("b", 0.9F); - tag.setFloat("a", 1.5F); - tag.setInteger("lifetime", 20); - tag.setInteger("randLifetime", 30); - tag.setFloat("width", 0.015F); - tag.setFloat("length", 0.5F); - tag.setFloat("gravity", 0.05F); - tag.setFloat("angle", 70F); - tag.setInteger("count", 15); - tag.setFloat("randomVelocity", 0.1F); - MainRegistry.proxy.effectNT(tag); - - ParticleVortexHit hit = new ParticleVortexHit(player.world, hitPos.x, hitPos.y, hitPos.z, 2.5F+player.world.rand.nextFloat()*0.5F, 90); - hit.color(0.4F, 0.8F, 1F, 0.25F); - hit.lifetime(20); - ParticleVortexHit hit2 = new ParticleVortexHit(player.world, hitPos.x, hitPos.y, hitPos.z, 2.5F+player.world.rand.nextFloat()*0.5F, -90); - hit2.color(0.4F, 0.8F, 1F, 0.25F); - hit2.lifetime(20); - Minecraft.getMinecraft().effectRenderer.addEffect(hit); - Minecraft.getMinecraft().effectRenderer.addEffect(hit2); - } - - MainRegistry.proxy.setRecoil(3); - lastFireTime = System.currentTimeMillis(); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean hasCustomHudElement() { - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public void renderHud(ScaledResolution res, GuiIngame gui, ItemStack stack, float partialTicks) { - float x = res.getScaledWidth()/2; - float y = res.getScaledHeight()/2; - - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.vortex_hud_reticle); - GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); - GL11.glColor4f(0.4F, 0.9F, 0.9F, 1.0F); - GL11.glEnable(GL11.GL_BLEND); - GlStateManager.tryBlendFuncSeparate(SourceFactor.SRC_ALPHA, DestFactor.ONE, SourceFactor.ONE, DestFactor.ZERO); - RenderHelper.drawGuiRect(x - 11F, y - 11F, 0, 0, 22, 22, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.vortex_hud_circle); - - //Running off of system time gives less wonky results than relying on server updating the nbt tag. - long time = System.currentTimeMillis(); - - //float cooldown = (this.mainConfig.rateOfFire-getDelay(stack)+partialTicks)/(float)this.mainConfig.rateOfFire; - //Adding 0.05 so it doesn't start at nothing makes it look better in my opinion. - //It's 55 instead of 50 (50 ms in one tick) because xon lets you fire slightly before the cooldown is over. This extends the cooldown slightly beyond the real one. - float cooldown = MathHelper.clamp((time-lastFireTime)/(float)(mainConfig.rateOfFire*55), 0, 1)+0.05F; - final int SUBDIVISIONS = 64; - Tessellator tes = Tessellator.instance; - tes.startDrawing(GL11.GL_TRIANGLE_FAN); - - tes.setColorRGBA_F(0.4F, 0.9F, 0.9F, 0.4F); - tes.addVertexWithUV(x, y, 0, 0.5, 0.5); - - for(int i = 0; i < SUBDIVISIONS+1; i ++){ - //Should be quite fast because MathHelper uses a sin table... right? - float ratio = i/(float)SUBDIVISIONS; - float x2 = MathHelper.sin((float) (ratio*Math.PI*2+0.5*Math.PI)); - float y2 = MathHelper.cos((float) (ratio*Math.PI*2+0.5*Math.PI)); - float alphaMult = 1-ratio < cooldown ? 1 : 0; - buf.pos(x+x2*11, y+y2*11, 0).tex(BobMathUtil.remap01(x2, -1, 1), BobMathUtil.remap01(y2, -1, 1)).color(0.4F, 0.9F, 0.9F, 0.4F*alphaMult).endVertex(); - } - tes.draw(); - - GlStateManager.tryBlendFuncSeparate(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA, SourceFactor.ONE, DestFactor.ZERO); - GlStateManager.disableBlend(); - }*/ -} diff --git a/src/main/java/com/hbm/items/weapon/ItemMissile.java b/src/main/java/com/hbm/items/weapon/ItemMissile.java index ec4b49b2f..692750516 100644 --- a/src/main/java/com/hbm/items/weapon/ItemMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemMissile.java @@ -1,347 +1,98 @@ package com.hbm.items.weapon; -import java.util.HashMap; import java.util.List; -import com.hbm.items.special.ItemLootCrate; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; +import com.hbm.items.ItemCustomLore; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class ItemMissile extends Item { +public class ItemMissile extends ItemCustomLore { - public PartType type; - public PartSize top; - public PartSize bottom; - public Rarity rarity; - public float health; - private String title; - private String author; - private String witty; + public final MissileFormFactor formFactor; + public final MissileTier tier; + public final MissileFuel fuel; + public int fuelCap; + public boolean launchable = true; - public ItemMissile() { - this.setMaxStackSize(1); - this.setCreativeTab(MainRegistry.missileTab); + public ItemMissile(MissileFormFactor form, MissileTier tier) { + this(form, tier, form.defaultFuel); } - public static HashMap parts = new HashMap(); - - /** - * == Chips == - * [0]: inaccuracy - * - * == Warheads == - * [0]: type - * [1]: strength/radius/cluster count - * [2]: weight - * - * == Fuselages == - * [0]: type - * [1]: tank size - * - * == Stability == - * [0]: inaccuracy mod - * - * == Thrusters === - * [0]: type - * [1]: consumption - * [2]: lift strength - */ - public Object[] attributes; - - public enum PartType { - CHIP, - WARHEAD, - FUSELAGE, - FINS, - THRUSTER + public ItemMissile(MissileFormFactor form, MissileTier tier, MissileFuel fuel) { + this.formFactor = form; + this.tier = tier; + this.fuel = fuel; + this.setFuelCap(this.fuel.defaultCap); } - public enum PartSize { - - //for chips - ANY, - //for missile tips and thrusters - NONE, - //regular sizes, 1.0m, 1.5m and 2.0m - SIZE_10, - SIZE_15, - SIZE_20 - } - - public enum WarheadType { - - HE, - INC, - BUSTER, - CLUSTER, - NUCLEAR, - TX, - N2, - BALEFIRE, - SCHRAB, - TAINT, - CLOUD, - TURBINE - } - - public enum FuelType { - - KEROSENE, - SOLID, - HYDROGEN, - XENON, - BALEFIRE - } - - public enum Rarity { - - COMMON(EnumChatFormatting.GRAY + "Common"), - UNCOMMON(EnumChatFormatting.YELLOW + "Uncommon"), - RARE(EnumChatFormatting.AQUA + "Rare"), - EPIC(EnumChatFormatting.LIGHT_PURPLE + "Epic"), - LEGENDARY(EnumChatFormatting.DARK_GREEN + "Legendary"), - SEWS_CLOTHES_AND_SUCKS_HORSE_COCK(EnumChatFormatting.DARK_AQUA + "Strange"); - - String name; - - Rarity(String name) { - this.name = name; - } - } - - public ItemMissile makeChip(float inaccuracy) { - - this.type = PartType.CHIP; - this.top = PartSize.ANY; - this.bottom = PartSize.ANY; - this.attributes = new Object[] { inaccuracy }; - - parts.put(this.hashCode(), this); - + public ItemMissile notLaunchable() { + this.launchable = false; return this; } - public ItemMissile makeWarhead(WarheadType type, float punch, float weight, PartSize size) { - - this.type = PartType.WARHEAD; - this.top = PartSize.NONE; - this.bottom = size; - this.attributes = new Object[] { type, punch, weight }; - setTextureName(RefStrings.MODID + ":mp_warhead"); - - parts.put(this.hashCode(), this); - + public ItemMissile setFuelCap(int fuelCap) { + this.fuelCap = fuelCap; return this; } - public ItemMissile makeFuselage(FuelType type, float fuel, PartSize top, PartSize bottom) { - - this.type = PartType.FUSELAGE; - this.top = top; - this.bottom = bottom; - attributes = new Object[] { type, fuel }; - setTextureName(RefStrings.MODID + ":mp_fuselage"); - - parts.put(this.hashCode(), this); - - return this; - } - - public ItemMissile makeStability(float inaccuracy, PartSize size) { - - this.type = PartType.FINS; - this.top = size; - this.bottom = size; - this.attributes = new Object[] { inaccuracy }; - setTextureName(RefStrings.MODID + ":mp_stability"); - - parts.put(this.hashCode(), this); - - return this; - } - - public ItemMissile makeThruster(FuelType type, float consumption, float lift, PartSize size) { - - this.type = PartType.THRUSTER; - this.top = size; - this.bottom = PartSize.NONE; - this.attributes = new Object[] { type, consumption, lift }; - setTextureName(RefStrings.MODID + ":mp_thruster"); - - parts.put(this.hashCode(), this); - - return this; - } - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) - { - - if(title != null) - list.add(EnumChatFormatting.DARK_PURPLE + "\"" + title + "\""); + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.ITALIC + this.tier.display); - try { - switch(type) { - case CHIP: - list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); - break; - case WARHEAD: - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(bottom)); - list.add(EnumChatFormatting.BOLD + "Type: " + EnumChatFormatting.GRAY + getWarhead((WarheadType)attributes[0])); - list.add(EnumChatFormatting.BOLD + "Strength: " + EnumChatFormatting.GRAY + (Float)attributes[1]); - list.add(EnumChatFormatting.BOLD + "Weight: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); - break; - case FUSELAGE: - list.add(EnumChatFormatting.BOLD + "Top size: " + EnumChatFormatting.GRAY + getSize(top)); - list.add(EnumChatFormatting.BOLD + "Bottom size: " + EnumChatFormatting.GRAY + getSize(bottom)); - list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); - list.add(EnumChatFormatting.BOLD + "Fuel amount: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l"); - break; - case FINS: - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); - list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); - break; - case THRUSTER: - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); - list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); - list.add(EnumChatFormatting.BOLD + "Fuel consumption: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l/tick"); - list.add(EnumChatFormatting.BOLD + "Max. payload: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); - break; - } - } catch(Exception ex) { - list.add("### I AM ERROR ###"); - } - - if(type != PartType.CHIP) - list.add(EnumChatFormatting.BOLD + "Health: " + EnumChatFormatting.GRAY + health + "HP"); - - if(this.rarity != null) - list.add(EnumChatFormatting.BOLD + "Rarity: " + EnumChatFormatting.GRAY + this.rarity.name); - if(author != null) - list.add(EnumChatFormatting.WHITE + " by " + author); - if(witty != null) - list.add(EnumChatFormatting.GOLD + " " + EnumChatFormatting.ITALIC + "\"" + witty + "\""); - } - - public String getSize(PartSize size) { - - switch(size) { - case ANY: - return "Any"; - case SIZE_10: - return "1.0m"; - case SIZE_15: - return "1.5m"; - case SIZE_20: - return "2.0m"; - default: - return "None"; - } - } - - public String getWarhead(WarheadType type) { - - switch(type) { - case HE: - return EnumChatFormatting.YELLOW + "HE"; - case INC: - return EnumChatFormatting.GOLD + "Incendiary"; - case CLUSTER: - return EnumChatFormatting.GRAY + "Cluster"; - case BUSTER: - return EnumChatFormatting.WHITE + "Bunker Buster"; - case NUCLEAR: - return EnumChatFormatting.DARK_GREEN + "Nuclear"; - case TX: - return EnumChatFormatting.DARK_PURPLE + "Thermonuclear (TX)"; - case N2: - return EnumChatFormatting.RED + "N²"; - case BALEFIRE: - return EnumChatFormatting.GREEN + "BF"; - case SCHRAB: - return EnumChatFormatting.AQUA + "Schrabidium"; - case TAINT: - return EnumChatFormatting.DARK_PURPLE + "Taint"; - case CLOUD: - return EnumChatFormatting.LIGHT_PURPLE + "Cloud"; - case TURBINE: - return (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE) + "Turbine"; - default: - return EnumChatFormatting.BOLD + "N/A"; - } - } - - public String getFuel(FuelType type) { - - switch(type) { - case KEROSENE: - return EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Peroxide"; - case SOLID: - return EnumChatFormatting.GOLD + "Solid Fuel"; - case HYDROGEN: - return EnumChatFormatting.DARK_AQUA + "Hydrogen / Oxygen"; - case XENON: - return EnumChatFormatting.DARK_PURPLE + "Xenon Gas"; - case BALEFIRE: - return EnumChatFormatting.GREEN + "BF Rocket Fuel / Peroxide"; - default: - return EnumChatFormatting.BOLD + "N/A"; - } - } - - //am i retarded? - /* yes */ - public ItemMissile copy() { - - ItemMissile part = new ItemMissile(); - part.type = this.type; - part.top = this.top; - part.bottom = this.bottom; - part.health = this.health; - part.attributes = this.attributes; - part.health = this.health; - part.setTextureName(this.iconString); - - return part; - } - - public ItemMissile setAuthor(String author) { - this.author = author; - return this; - } - - public ItemMissile setTitle(String title) { - this.title = title; - return this; - } - - public ItemMissile setWittyText(String witty) { - this.witty = witty; - return this; - } - - public ItemMissile setHealth(float health) { - this.health = health; - return this; - } - - public ItemMissile setRarity(Rarity rarity) { - this.rarity = rarity; - - if(this.type == PartType.FUSELAGE) { - if(this.top == PartSize.SIZE_10) - ItemLootCrate.list10.add(this); - if(this.top == PartSize.SIZE_15) - ItemLootCrate.list15.add(this); + if(!this.launchable) { + list.add(EnumChatFormatting.RED + "Not launchable!"); } else { - ItemLootCrate.listMisc.add(this); + list.add("Fuel: " + this.fuel.display); + if(this.fuelCap > 0) list.add("Fuel capacity: " + this.fuelCap + "mB"); + super.addInformation(itemstack, player, list, bool); + } + } + + public enum MissileFormFactor { + ABM(MissileFuel.SOLID), + MICRO(MissileFuel.SOLID), + V2(MissileFuel.ETHANOL_PEROXIDE), + STRONG(MissileFuel.KEROSENE_PEROXIDE), + HUGE(MissileFuel.KEROSENE_LOXY), + ATLAS(MissileFuel.JETFUEL_LOXY), + OTHER(MissileFuel.KEROSENE_PEROXIDE); + + protected MissileFuel defaultFuel; + + private MissileFormFactor(MissileFuel defaultFuel) { + this.defaultFuel = defaultFuel; + } + } + + public enum MissileTier { + TIER0("Tier 0"), + TIER1("Tier 1"), + TIER2("Tier 2"), + TIER3("Tier 3"), + TIER4("Tier 4"); + + public String display; + + private MissileTier(String display) { + this.display = display; + } + } + + public enum MissileFuel { + SOLID(EnumChatFormatting.GOLD + "Solid Fuel (pre-fueled)", 0), + ETHANOL_PEROXIDE(EnumChatFormatting.AQUA + "Ethanol / Hydrogen Peroxide", 4_000), + KEROSENE_PEROXIDE(EnumChatFormatting.BLUE + "Kerosene / Hydrogen Peroxide", 8_000), + KEROSENE_LOXY(EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Liquid Oxygen", 12_000), + JETFUEL_LOXY(EnumChatFormatting.RED + "Jet Fuel / Liquid Oxygen", 16_000); + + public String display; + public int defaultCap; + + private MissileFuel(String display, int defaultCap) { + this.display = display; + this.defaultCap = defaultCap; } - return this; } - } diff --git a/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java b/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java deleted file mode 100644 index a9847e544..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemPlasmaSpear.java +++ /dev/null @@ -1,173 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; - -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ISyncButtons; -import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import api.hbm.fluid.IFillableItem; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.EntityDamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.client.event.MouseEvent; - -public class ItemPlasmaSpear extends Item implements IFillableItem, ISyncButtons { - - public static final int maxFuel = 3_000; - - @Override - public boolean showDurabilityBar(ItemStack stack) { - return getFill(stack) < maxFuel; - } - - @Override - public double getDurabilityForDisplay(ItemStack stack) { - return 1 - (double) getFill(stack) / (double) maxFuel; - } - - public int getFill(ItemStack stack) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - setFill(stack, maxFuel); - return maxFuel; - } - - return stack.stackTagCompound.getInteger("fuel"); - } - - public void setFill(ItemStack stack, int fill) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("fuel", fill); - } - - public static ItemStack getEmptyTool(Item item) { - ItemPlasmaSpear tool = (ItemPlasmaSpear) item; - ItemStack stack = new ItemStack(item); - tool.setFill(stack, 0); - return stack; - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(world.isRemote) return stack; - - if(!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setBoolean("melee", !stack.stackTagCompound.getBoolean("melee")); - world.playSoundAtEntity(player, "random.orb", 0.25F, 1.25F); - - return stack; - } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) { - - if(stack.hasTagCompound() && !stack.stackTagCompound.getBoolean("melee")) { - return true; //cancel hitting, it's ranged - } - - return false; - } - - @Override - public boolean onEntitySwing(EntityLivingBase entityLiving, ItemStack stack) { - - if(!(entityLiving instanceof EntityPlayerMP)) - return false; - - if(getFill(stack) <= 0) - return false; - - if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("melee")) { - return true; //cancel hitting, it's ranged - } - - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setString("type", "anim"); - nbt.setString("mode", "lSwing"); - PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(nbt, 0, 0, 0), (EntityPlayerMP)entityLiving); - - return false; - } - - @Override - public boolean canReceiveMouse(EntityPlayer player, ItemStack stack, MouseEvent event, int button, boolean buttonstate) { - - if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("melee")) { - return false; - } - - if(button == 0) { - event.setCanceled(true); - return true; - } - - return false; - } - - @Override - public void receiveMouse(EntityPlayer player, ItemStack stack, int button, boolean buttonstate) { - Vec3 start = Vec3.createVectorHelper(player.posX, player.posY + player.getEyeHeight() - player.yOffset, player.posZ); - Vec3 look = player.getLookVec(); - Vec3 end = start.addVector(look.xCoord * 100, look.yCoord * 100, look.zCoord * 100); - - List targets = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox( - Math.min(start.xCoord, end.xCoord), - Math.min(start.yCoord, end.yCoord), - Math.min(start.zCoord, end.zCoord), - Math.max(start.xCoord, end.xCoord), - Math.max(start.yCoord, end.yCoord), - Math.max(start.zCoord, end.zCoord) - )); - - for(Entity target : targets) { - - AxisAlignedBB aabb = target.boundingBox; - MovingObjectPosition hitMop = aabb.calculateIntercept(start, end); - - if(hitMop != null) { - target.attackEntityFrom(new EntityDamageSource(ModDamageSource.s_laser, player).setDamageBypassesArmor(), 15F); - } - } - } - - @Override - public boolean acceptsFluid(FluidType type, ItemStack stack) { - return type == Fluids.SCHRABIDIC; - } - - @Override - public int tryFill(FluidType type, int amount, ItemStack stack) { - - int fill = this.getFill(stack); - int toFill = this.maxFuel - fill; - toFill = Math.min(toFill, amount); - toFill = Math.min(toFill, 10); - - this.setFill(stack, fill + toFill); - - return amount - toFill; - } - - @Override public boolean providesFluid(FluidType type, ItemStack stack) { return false; } - @Override public int tryEmpty(FluidType type, int amount, ItemStack stack) { return 0; } -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java b/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java deleted file mode 100644 index fd6139836..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/GunFrame.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.util.Tuple.Pair; -import com.hbm.util.Tuple.Triplet; - -import api.hbm.item.IClickReceiver; -import api.hbm.item.IGunHUDProvider; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public abstract class GunFrame extends Item implements IGunHUDProvider, IClickReceiver { - - private List statusBars = new ArrayList(); - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) { - - if(entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) entity; - - if(world.isRemote) { - this.updatePlayerClient(stack, world, player, slot, isCurrentItem); - } else { - this.updatePlayerServer(stack, world, player, slot, isCurrentItem); - } - } - } - - public void updatePlayerClient(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { } - - public void updatePlayerServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { } - - @Override - @SideOnly(Side.CLIENT) - public boolean handleMouseInput(ItemStack stack, EntityPlayer player, int button, boolean state) { - return false; - } - - @Override - public List> getStatusBars(ItemStack stack, EntityPlayer player) { - return new ArrayList(); - } - - @Override - public List> getAmmoInfo(ItemStack stack, EntityPlayer player) { - return null; - } - - public static double getDurabilityBar(ItemStack stack) { - return 1.0D; - } -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/GunRealoadable.java b/src/main/java/com/hbm/items/weapon/gununified/GunRealoadable.java deleted file mode 100644 index d1cfc831f..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/GunRealoadable.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import org.lwjgl.input.Keyboard; - -import com.hbm.handler.HbmKeybinds; - -import api.hbm.item.IButtonReceiver; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public class GunRealoadable extends GunFrame implements IButtonReceiver { - - private IReloadBehavior reload; - public static boolean lastReload = false; - - @Override - @SideOnly(Side.CLIENT) - public void handleKeyboardInput(ItemStack stack, EntityPlayer player) { - - boolean reload = Keyboard.isKeyDown(HbmKeybinds.reloadKey.getKeyCode()); - - if(this.reload != null) { - this.reload.tryStartReload(stack, player); - } - - lastReload = reload; - } -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/IReloadBehavior.java b/src/main/java/com/hbm/items/weapon/gununified/IReloadBehavior.java deleted file mode 100644 index 1bc6e3d19..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/IReloadBehavior.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IReloadBehavior { - - public boolean tryStartReload(ItemStack stack, EntityPlayer player); - public boolean updateRelaod(ItemStack stack, EntityPlayer player); -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/IStatusBarProvider.java b/src/main/java/com/hbm/items/weapon/gununified/IStatusBarProvider.java deleted file mode 100644 index 6d91fce96..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/IStatusBarProvider.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import java.util.List; - -import com.hbm.util.Tuple.Triplet; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IStatusBarProvider { - - public void provideBars(ItemStack stack, EntityPlayer player, List> bars); -} diff --git a/src/main/java/com/hbm/items/weapon/gununified/StatusBarDurability.java b/src/main/java/com/hbm/items/weapon/gununified/StatusBarDurability.java deleted file mode 100644 index 9a47d0664..000000000 --- a/src/main/java/com/hbm/items/weapon/gununified/StatusBarDurability.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.hbm.items.weapon.gununified; - -import java.util.List; - -import com.hbm.util.Tuple.Triplet; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public class StatusBarDurability implements IStatusBarProvider { - - @Override - public void provideBars(ItemStack stack, EntityPlayer player, List> bars) { - //TODO - } -} diff --git a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java new file mode 100644 index 000000000..4e916200c --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java @@ -0,0 +1,305 @@ +package com.hbm.items.weapon.sedna; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockDetonatable; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityBulletBeamBase; +import com.hbm.interfaces.NotableComments; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.ConfettiUtil; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; +import com.hbm.particle.SpentCasing; +import com.hbm.util.BobMathUtil; +import com.hbm.util.EntityDamageUtil; +import com.hbm.util.TrackerUtil; + +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.ForgeDirection; + +@NotableComments +public class BulletConfig implements Cloneable { + + public static List configs = new ArrayList(); + + public int id; + + public ComparableStack ammo; + /** How much ammo is added to a standard mag when loading one item */ + public int ammoReloadCount = 1; + public float velocity = 10F; + public float spread = 0F; + public float wear = 1F; + public int projectilesMin = 1; + public int projectilesMax = 1; + public ProjectileType pType = ProjectileType.BULLET; + + public float damageMult = 1.0F; + public float armorThresholdNegation = 0.0F; + public float armorPiercingPercent = 0.0F; + public float knockbackMult = 0.1F; + public float headshotMult = 1.25F; + + public DamageClass dmgClass = DamageClass.PHYSICAL; + + public float ricochetAngle = 5F; + public int maxRicochetCount = 2; + /** Whether damage dealt to an entity is subtracted from the projectile's damage on penetration */ + public boolean damageFalloffByPen = true; + + public Consumer onUpdate; + public BiConsumer onImpact; + public BiConsumer onImpactBeam; //fuck fuck fuck fuck i should have used a better base class here god dammit + public BiConsumer onRicochet = LAMBDA_STANDARD_RICOCHET; + public BiConsumer onEntityHit = LAMBDA_STANDARD_ENTITY_HIT; + + public double gravity = 0; + public int expires = 30; + public boolean impactsEntities = true; + public boolean doesPenetrate = false; + /** Whether projectiles ignore blocks entirely */ + public boolean isSpectral = false; + public int selfDamageDelay = 2; + + public boolean blackPowder = false; + public boolean renderRotations = true; + public SpentCasing casing; + public BiConsumer renderer; + public BiConsumer rendererBeam; + + public BulletConfig() { + this.id = configs.size(); + configs.add(this); + } + + /** Required for the clone() operation to reset the ID, otherwise the ID and config entry will be the same as the original */ + public BulletConfig forceReRegister() { + this.id = configs.size(); + configs.add(this); + return this; + } + + public BulletConfig setBeam() { this.pType = ProjectileType.BEAM; return this; } + public BulletConfig setChunkloading() { this.pType = ProjectileType.BULLET_CHUNKLOADING; return this; } + public BulletConfig setItem(Item ammo) { this.ammo = new ComparableStack(ammo); return this; } + public BulletConfig setItem(ItemStack ammo) { this.ammo = new ComparableStack(ammo); return this; } + public BulletConfig setItem(ComparableStack ammo) { this.ammo = ammo; return this; } + public BulletConfig setItem(EnumAmmo ammo) { this.ammo = new ComparableStack(ModItems.ammo_standard, 1, ammo.ordinal()); return this; } + public BulletConfig setItem(EnumAmmoSecret ammo) { this.ammo = new ComparableStack(ModItems.ammo_secret, 1, ammo.ordinal()); return this; } + public BulletConfig setReloadCount(int ammoReloadCount) { this.ammoReloadCount = ammoReloadCount; return this; } + public BulletConfig setVel(float velocity) { this.velocity = velocity; return this; } + public BulletConfig setSpread(float spread) { this.spread = spread; return this; } + public BulletConfig setWear(float wear) { this.wear = wear; return this; } + public BulletConfig setProjectiles(int amount) { this.projectilesMin = this.projectilesMax = amount; return this; } + public BulletConfig setProjectiles(int min, int max) { this.projectilesMin = min; this.projectilesMax = max; return this; } + public BulletConfig setDamage(float damageMult) { this.damageMult = damageMult; return this; } + public BulletConfig setThresholdNegation(float armorThresholdNegation) { this.armorThresholdNegation = armorThresholdNegation; return this; } + public BulletConfig setArmorPiercing(float armorPiercingPercent) { this.armorPiercingPercent = armorPiercingPercent; return this; } + public BulletConfig setKnockback(float knockbackMult) { this.knockbackMult = knockbackMult; return this; } + public BulletConfig setHeadshot(float headshotMult) { this.headshotMult = headshotMult; return this; } + public BulletConfig setupDamageClass(DamageClass clazz) { this.dmgClass = clazz; return this; } + public BulletConfig setRicochetAngle(float angle) { this.ricochetAngle = angle; return this; } + public BulletConfig setRicochetCount(int count) { this.maxRicochetCount = count; return this; } + public BulletConfig setDamageFalloutByPen(boolean falloff) { this.damageFalloffByPen = falloff; return this; } + public BulletConfig setGrav(double gravity) { this.gravity = gravity; return this; } + public BulletConfig setLife(int expires) { this.expires = expires; return this; } + public BulletConfig setImpactsEntities(boolean impact) { this.impactsEntities = impact; return this; } + public BulletConfig setDoesPenetrate(boolean pen) { this.doesPenetrate = pen; return this; } + public BulletConfig setSpectral(boolean spectral) { this.isSpectral = spectral; return this; } + public BulletConfig setSelfDamageDelay(int delay) { this.selfDamageDelay = delay; return this; } + public BulletConfig setBlackPowder(boolean bp) { this.blackPowder = bp; return this; } + public BulletConfig setRenderRotations(boolean rot) { this.renderRotations = rot; return this; } + public BulletConfig setCasing(SpentCasing casing) { this.casing = casing; return this; } + + public BulletConfig setRenderer(BiConsumer renderer) { this.renderer = renderer; return this; } + public BulletConfig setRendererBeam(BiConsumer renderer) { this.rendererBeam = renderer; return this; } + + public BulletConfig setOnUpdate(Consumer lambda) { this.onUpdate = lambda; return this; } + public BulletConfig setOnRicochet(BiConsumer lambda) { this.onRicochet = lambda; return this; } + public BulletConfig setOnImpact(BiConsumer lambda) { this.onImpact = lambda; return this; } + public BulletConfig setOnBeamImpact(BiConsumer lambda) { this.onImpactBeam = lambda; return this; } + public BulletConfig setOnEntityHit(BiConsumer lambda) { this.onEntityHit = lambda; return this; } + + public static enum ProjectileType { + BULLET, + BULLET_CHUNKLOADING, + BEAM + } + + @SuppressWarnings("incomplete-switch") //shut up + public static DamageSource getDamage(Entity projectile, EntityLivingBase shooter, DamageClass dmgClass) { + + DamageSource dmg; + + if(shooter != null) dmg = new DamageSourceSednaWithAttacker(dmgClass.name(), projectile, shooter); + else dmg = new DamageSourceSednaNoAttacker(dmgClass.name()); + + switch(dmgClass) { + case PHYSICAL: dmg.setProjectile(); break; + case FIRE: dmg.setFireDamage(); break; + case EXPLOSIVE: dmg.setExplosion(); break; + case ELECTRIC: break; + case LASER: break; + case SUBATOMIC: break; + } + + return dmg; + } + + public static BiConsumer LAMBDA_STANDARD_RICOCHET = (bullet, mop) -> { + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + + Block b = bullet.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + if(b.getMaterial() == Material.glass) { + bullet.worldObj.func_147480_a(mop.blockX, mop.blockY, mop.blockZ, false); + bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + return; + } + if(b instanceof BlockDetonatable) { + ((BlockDetonatable) b).onShot(bullet.worldObj, mop.blockX, mop.blockY, mop.blockZ); + } + if(b == ModBlocks.deco_crt) { + int meta = bullet.worldObj.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ); + bullet.worldObj.setBlockMetadataWithNotify(mop.blockX, mop.blockY, mop.blockZ, meta % 4 + 4, 3); + } + + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + Vec3 face = Vec3.createVectorHelper(dir.offsetX, dir.offsetY, dir.offsetZ); + Vec3 vel = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ).normalize(); + + double angle = Math.abs(BobMathUtil.getCrossAngle(vel, face) - 90); + + if(angle <= bullet.config.ricochetAngle) { + + bullet.ricochets++; + if(bullet.ricochets > bullet.config.maxRicochetCount) { + bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + bullet.setDead(); + } + + switch(mop.sideHit) { + case 0: case 1: bullet.motionY *= -1; break; + case 2: case 3: bullet.motionZ *= -1; break; + case 4: case 5: bullet.motionX *= -1; break; + } + bullet.worldObj.playSoundAtEntity(bullet, "hbm:weapon.ricochet", 0.25F, 1.0F); + bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + //send a teleport so the ricochet is more accurate instead of the interp smoothing fucking everything up + if(bullet.worldObj instanceof WorldServer) TrackerUtil.sendTeleport((WorldServer) bullet.worldObj, bullet); + return; + + } else { + bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + bullet.setDead(); + } + } + }; + + public static BiConsumer LAMBDA_STANDARD_ENTITY_HIT = (bullet, mop) -> { + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + Entity entity = mop.entityHit; + + if(entity == bullet.getThrower() && bullet.ticksExisted < bullet.selfDamageDelay()) return; + if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return; + + DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), bullet.config.dmgClass); + float intendedDamage = bullet.damage; + + if(!(entity instanceof EntityLivingBase)) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, bullet.damage); + return; + } else if(bullet.config.headshotMult > 1F) { + + EntityLivingBase living = (EntityLivingBase) entity; + double head = living.height - living.getEyeHeight(); + + if(!!living.isEntityAlive() && mop.hitVec != null && mop.hitVec.yCoord > (living.posY + living.height - head * 2)) { + intendedDamage *= bullet.config.headshotMult; + } + } + + EntityLivingBase living = (EntityLivingBase) entity; + float prevHealth = living.getHealth(); + + EntityDamageUtil.attackEntityFromNT(living, source, intendedDamage, true, true, bullet.config.knockbackMult, bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent); + + float newHealth = living.getHealth(); + + if(bullet.config.damageFalloffByPen) bullet.damage -= Math.max(prevHealth - newHealth, 0) * 0.5; + if(!bullet.doesPenetrate() || bullet.damage < 0) { + bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + bullet.setDead(); + } + + if(!living.isEntityAlive()) ConfettiUtil.decideConfetti(living, source); + } + }; + + public static BiConsumer LAMBDA_STANDARD_BEAM_HIT = (bullet, mop) -> { + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + Entity entity = mop.entityHit; + + if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return; + + DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), bullet.config.dmgClass); + + if(!(entity instanceof EntityLivingBase)) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, bullet.damage); + return; + } + + EntityLivingBase living = (EntityLivingBase) entity; + EntityDamageUtil.attackEntityFromNT(living, source, bullet.damage, true, true, bullet.config.knockbackMult, bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent); + if(!living.isEntityAlive()) ConfettiUtil.decideConfetti(living, source); + } + }; + + public static BiConsumer LAMBDA_BEAM_HIT = (beam, mop) -> { + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + Entity entity = mop.entityHit; + + if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return; + + DamageSource source = beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass); + + if(!(entity instanceof EntityLivingBase)) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, beam.damage); + return; + } + + EntityLivingBase living = (EntityLivingBase) entity; + EntityDamageUtil.attackEntityFromNT(living, source, beam.damage, true, false, beam.config.knockbackMult, beam.config.armorThresholdNegation, beam.config.armorPiercingPercent); + } + }; + + @Override + public BulletConfig clone() { + try { + BulletConfig clone = (BulletConfig) super.clone(); + clone.forceReRegister(); + return clone; + } catch(CloneNotSupportedException e) { } + return null; + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/Crosshair.java b/src/main/java/com/hbm/items/weapon/sedna/Crosshair.java new file mode 100644 index 000000000..6292b6785 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/Crosshair.java @@ -0,0 +1,36 @@ +package com.hbm.items.weapon.sedna; + +public enum Crosshair { + + NONE(0, 0, 0), + CROSS(1, 55, 16), + CIRCLE(19, 55, 16), + SEMI(37, 55, 16), + KRUCK(55, 55, 16), + DUAL(1, 73, 16), + SPLIT(19, 73, 16), + CLASSIC(37, 73, 16), + BOX(55, 73, 16), + + L_CROSS(0, 90, 32), + L_KRUCK(32, 90, 32), + L_CLASSIC(64, 90, 32), + L_CIRCLE(96, 90, 32), + L_SPLIT(0, 122, 32), + L_ARROWS(32, 122, 32), + L_BOX(64, 122, 32), + L_CIRCUMFLEX(96, 122, 32), + L_RAD(0, 154, 32), + L_MODERN(32, 154, 32), + L_BOX_OUTLINE(64, 154, 32); + + public int x; + public int y; + public int size; + + private Crosshair(int x, int y, int size) { + this.x = x; + this.y = y; + this.size = size; + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java new file mode 100644 index 000000000..889583f0d --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java @@ -0,0 +1,21 @@ +package com.hbm.items.weapon.sedna; + +import java.util.Locale; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.DamageSource; +import net.minecraft.util.IChatComponent; + +public class DamageSourceSednaNoAttacker extends DamageSource { + + public DamageSourceSednaNoAttacker(String type) { + super(type.toLowerCase(Locale.US)); + } + + @Override + public IChatComponent func_151519_b(EntityLivingBase died) { + IChatComponent diedName = died.func_145748_c_(); + return new ChatComponentTranslation("death.sedna." + this.damageType, diedName); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java new file mode 100644 index 000000000..e63ab3097 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java @@ -0,0 +1,32 @@ +package com.hbm.items.weapon.sedna; + +import java.util.Locale; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.IChatComponent; + +public class DamageSourceSednaWithAttacker extends DamageSourceSednaNoAttacker { + + public Entity projectile; + public Entity shooter; + + public DamageSourceSednaWithAttacker(String type, Entity projectile, Entity shooter) { + super(type.toLowerCase(Locale.US)); + this.projectile = projectile; + this.shooter = shooter; + } + + @Override public Entity getSourceOfDamage() { return this.projectile; } //what even uses this, except for the wackass "shot by bullet" death messages? + @Override public Entity getEntity() { return this.shooter; } + + @Override + public IChatComponent func_151519_b(EntityLivingBase died) { + IChatComponent diedName = died.func_145748_c_(); + IChatComponent shooterName = shooter != null ? shooter.func_145748_c_() : new ChatComponentText("Unknown").setChatStyle(new ChatStyle().setObfuscated(true)); + return new ChatComponentTranslation("death.sedna." + this.damageType + ".attacker", diedName, shooterName); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java new file mode 100644 index 000000000..90f21ddf5 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java @@ -0,0 +1,156 @@ +package com.hbm.items.weapon.sedna; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.SmokeNode; +import com.hbm.items.weapon.sedna.factory.GunStateDecider; +import com.hbm.items.weapon.sedna.factory.Lego; +import com.hbm.items.weapon.sedna.hud.IHUDComponent; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +/** + * Despite how complicated the GunConfig looks, it actually only exists to hold together a bunch of fields. Everything else is infrastructure for getting and setting. + * The gun config determines general gun specific stats like durability, crosshair, animations, receivers, click handling and the decider. + * + * @author hbm + * */ +public class GunConfig { + + public List smokeNodes = new ArrayList(); + + public static final String O_RECEIVERS = "O_RECEIVERS"; + public static final String F_DURABILITY = "F_DURABILITY"; + public static final String I_DRAWDURATION = "I_DRAWDURATION"; + public static final String I_INSPECTDURATION = "I_INSPECTDURATION"; + public static final String I_INSPECTCANCEL = "I_INSPECTCANCEL"; + public static final String O_CROSSHAIR = "O_CROSSHAIR"; + public static final String B_HIDECROSSHAIR = "B_HIDECROSSHAIR"; + public static final String B_RELOADANIMATIONSEQUENTIAL = "B_RELOADANIMATIONSEQUENTIAL"; + public static final String O_SCOPETEXTURE = "O_SCOPETEXTURE"; + public static final String CON_SMOKE = "CON_SMOKE"; + public static final String CON_ORCHESTRA = "CON_ORCHESTRA"; + public static final String CON_ONPRESSPRIMARY = "CON_ONPRESSPRIMARY"; + public static final String CON_ONPRESSSECONDARY = "CON_ONPRESSSECONDARY"; + public static final String CON_ONPRESSTERTIARY = "CON_ONPRESSTERTIARY"; + public static final String CON_ONPRESSRELOAD = "CON_ONPRESSRELOAD"; + public static final String CON_ONRELEASEPRIMARY = "CON_ONRELEASEPRIMARY"; + public static final String CON_ONRELEASESECONDARY = "CON_ONRELEASESECONDARY"; + public static final String CON_ONRELEASETERTIARY = "CON_ONRELEASETERTIARY"; + public static final String CON_ONRELEASERELOAD = "CON_ONRELEASERELOAD"; + public static final String CON_DECIDER = "CON_DECIDER"; + public static final String FUN_ANIMNATIONS = "FUN_ANIMNATIONS"; + public static final String O_HUDCOMPONENTS = "O_HUDCOMPONENTS"; + + /* FIELDS */ + + /** List of receivers used by the gun, primary and secondary are usually indices 0 and 1 respectively, if applicable */ + protected Receiver[] receivers_DNA; + protected float durability_DNA; + protected int drawDuration_DNA = 0; + protected int inspectDuration_DNA = 0; + protected boolean inspectCancel_DNA = true; + protected Crosshair crosshair_DNA; + protected boolean hideCrosshair_DNA = true; + protected boolean reloadAnimationsSequential_DNA; + protected ResourceLocation scopeTexture_DNA; + /** Handles smoke clientside */ + protected BiConsumer smokeHandler_DNA; + /** This piece only triggers during reloads, playing sounds depending on the reload's progress making reload sounds easier and synced to animations */ + protected BiConsumer orchestra_DNA; + /** Lambda functions for clicking shit */ + protected BiConsumer onPressPrimary_DNA; + protected BiConsumer onPressSecondary_DNA; + protected BiConsumer onPressTertiary_DNA; + protected BiConsumer onPressReload_DNA; + /** Lambda functions for releasing the aforementioned shit */ + protected BiConsumer onReleasePrimary_DNA; + protected BiConsumer onReleaseSecondary_DNA; + protected BiConsumer onReleaseTertiary_DNA; + protected BiConsumer onReleaseReload_DNA; + /** The engine for the state machine that determines the gun's overall behavior */ + protected BiConsumer decider_DNA; + /** Lambda that returns the relevant animation for the given params */ + protected BiFunction animations_DNA; + protected IHUDComponent[] hudComponents_DNA; + + /* GETTERS */ + + public Receiver[] getReceivers(ItemStack stack) { return WeaponUpgradeManager.eval(receivers_DNA, stack, O_RECEIVERS, this); } + public float getDurability(ItemStack stack) { return WeaponUpgradeManager.eval(durability_DNA, stack, F_DURABILITY, this); } + public int getDrawDuration(ItemStack stack) { return WeaponUpgradeManager.eval(drawDuration_DNA, stack, I_DRAWDURATION, this); } + public int getInspectDuration(ItemStack stack) { return WeaponUpgradeManager.eval(inspectDuration_DNA, stack, I_INSPECTDURATION, this); } + public boolean getInspectCancel(ItemStack stack) { return WeaponUpgradeManager.eval(inspectCancel_DNA, stack, I_INSPECTCANCEL, this); } + public Crosshair getCrosshair(ItemStack stack) { return WeaponUpgradeManager.eval(crosshair_DNA, stack, O_CROSSHAIR, this); } + public boolean getHideCrosshair(ItemStack stack) { return WeaponUpgradeManager.eval(hideCrosshair_DNA, stack, B_HIDECROSSHAIR, this); } + public boolean getReloadAnimSequential(ItemStack stack) { return WeaponUpgradeManager.eval(reloadAnimationsSequential_DNA, stack, B_RELOADANIMATIONSEQUENTIAL, this); } + public ResourceLocation getScopeTexture(ItemStack stack) { return WeaponUpgradeManager.eval(scopeTexture_DNA, stack, O_SCOPETEXTURE, this); } + public BiConsumer getSmokeHandler(ItemStack stack) { return WeaponUpgradeManager.eval(smokeHandler_DNA, stack, CON_SMOKE, this); } + public BiConsumer getOrchestra(ItemStack stack) { return WeaponUpgradeManager.eval(this.orchestra_DNA, stack, CON_ORCHESTRA, this); } + + public BiConsumer getPressPrimary(ItemStack stack) { return WeaponUpgradeManager.eval(this.onPressPrimary_DNA, stack, CON_ONPRESSPRIMARY, this); } + public BiConsumer getPressSecondary(ItemStack stack) { return WeaponUpgradeManager.eval(this.onPressSecondary_DNA, stack, CON_ONPRESSSECONDARY, this); } + public BiConsumer getPressTertiary(ItemStack stack) { return WeaponUpgradeManager.eval(this.onPressTertiary_DNA, stack, CON_ONPRESSTERTIARY, this); } + public BiConsumer getPressReload(ItemStack stack) { return WeaponUpgradeManager.eval(this.onPressReload_DNA, stack, CON_ONPRESSRELOAD, this); } + + public BiConsumer getReleasePrimary(ItemStack stack) { return WeaponUpgradeManager.eval(this.onReleasePrimary_DNA, stack, CON_ONRELEASEPRIMARY, this); } + public BiConsumer getReleaseSecondary(ItemStack stack) { return WeaponUpgradeManager.eval(this.onReleaseSecondary_DNA, stack, CON_ONRELEASESECONDARY, this); } + public BiConsumer getReleaseTertiary(ItemStack stack) { return WeaponUpgradeManager.eval(this.onReleaseTertiary_DNA, stack, CON_ONRELEASETERTIARY, this); } + public BiConsumer getReleaseReload(ItemStack stack) { return WeaponUpgradeManager.eval(this.onReleaseReload_DNA, stack, CON_ONRELEASERELOAD, this); } + + public BiConsumer getDecider(ItemStack stack) { return WeaponUpgradeManager.eval(this.decider_DNA, stack, CON_DECIDER, this); } + + public BiFunction getAnims(ItemStack stack) { return WeaponUpgradeManager.eval(this.animations_DNA, stack, FUN_ANIMNATIONS, this); } + public IHUDComponent[] getHUDComponents(ItemStack stack) { return WeaponUpgradeManager.eval(this.hudComponents_DNA, stack, O_HUDCOMPONENTS, this); } + + /* SETTERS */ + + public GunConfig rec(Receiver... receivers) { this.receivers_DNA = receivers; return this; } + public GunConfig dura(float dura) { this.durability_DNA = dura; return this; } + public GunConfig draw(int draw) { this.drawDuration_DNA = draw; return this; } + public GunConfig inspect(int inspect) { this.inspectDuration_DNA = inspect; return this; } + public GunConfig inspectCancel(boolean flag) { this.inspectCancel_DNA = flag; return this; } + public GunConfig crosshair(Crosshair crosshair) { this.crosshair_DNA = crosshair; return this; } + public GunConfig hideCrosshair(boolean flag) { this.hideCrosshair_DNA = flag; return this; } + public GunConfig reloadSequential(boolean flag) { this.reloadAnimationsSequential_DNA = flag; return this; } + public GunConfig scopeTexture(ResourceLocation tex) { this.scopeTexture_DNA = tex; return this; } + + public GunConfig smoke(BiConsumer smoke) { this.smokeHandler_DNA = smoke; return this; } + public GunConfig orchestra(BiConsumer orchestra) { this.orchestra_DNA = orchestra; return this; } + + //press + public GunConfig pp(BiConsumer lambda) { this.onPressPrimary_DNA = lambda; return this; } + public GunConfig ps(BiConsumer lambda) { this.onPressSecondary_DNA = lambda; return this; } + public GunConfig pt(BiConsumer lambda) { this.onPressTertiary_DNA = lambda; return this; } + public GunConfig pr(BiConsumer lambda) { this.onPressReload_DNA = lambda; return this; } + + //release + public GunConfig rp(BiConsumer lambda) { this.onReleasePrimary_DNA = lambda; return this; } + public GunConfig rs(BiConsumer lambda) { this.onReleaseSecondary_DNA = lambda; return this; } + public GunConfig rt(BiConsumer lambda) { this.onReleaseTertiary_DNA = lambda; return this; } + public GunConfig rr(BiConsumer lambda) { this.onReleaseReload_DNA = lambda; return this; } + + //decider + public GunConfig decider(BiConsumer lambda) { this.decider_DNA = lambda; return this; } + + //client + public GunConfig anim(BiFunction lambda) { this.animations_DNA = lambda; return this; } + public GunConfig hud(IHUDComponent... components) { this.hudComponents_DNA = components; return this; } + + /** Standard package for keybind handling and decider using LEGO prefabs: Primary fire on LMB, + * reload on R, aiming on MMB and the standard decider which includes jamming and auto fire handling*/ + public GunConfig setupStandardConfiguration() { + this.pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY); + this.pr(Lego.LAMBDA_STANDARD_RELOAD); + this.pt(Lego.LAMBDA_TOGGLE_AIM); + this.decider(GunStateDecider.LAMBDA_STANDARD_DECIDER); + return this; + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/IWeaponUpgrade.java b/src/main/java/com/hbm/items/weapon/sedna/IWeaponUpgrade.java new file mode 100644 index 000000000..502f12aec --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/IWeaponUpgrade.java @@ -0,0 +1,14 @@ +package com.hbm.items.weapon.sedna; + +import net.minecraft.item.ItemStack; + +public interface IWeaponUpgrade { + + /** Lower numbers get installed and therefore evaluated first. Important when multiplicative and additive bonuses are supposed to stack */ + public int getModPriority(ItemStack stack); + /** Which "slots" this upgrade occupies, can be any value, upgrades that have at least one matching slot are incompatible */ + public String[] getSlots(ItemStack stack); + /** The meat and bones of the upgrade eval. Requires the base value, the held gun, the value's + * identifier and the yet unmodified parent (i.e. if the value is part of the receiver, that receiver) */ + public default T eval(T base, ItemStack stack, String key, Object parent) { return base; } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java new file mode 100644 index 000000000..ce88b06df --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java @@ -0,0 +1,392 @@ +package com.hbm.items.weapon.sedna; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.BiConsumer; + +import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.interfaces.IItemHUD; +import com.hbm.items.IEquipReceiver; +import com.hbm.items.IKeybindReceiver; +import com.hbm.items.weapon.sedna.hud.IHUDComponent; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.GunAnimationPacket; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.render.util.RenderScreenOverlay; +import com.hbm.sound.AudioWrapper; +import com.hbm.util.BobMathUtil; +import com.hbm.util.EnumUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipReceiver, IItemHUD { + + /** Timestamp for rendering smoke nodes and muzzle flashes */ + public long[] lastShot; + /** [0;1] randomized every shot for various rendering applications */ + public double shotRand = 0D; + + public static List secrets = new ArrayList(); + + public static float recoilVertical = 0; + public static float recoilHorizontal = 0; + public static float recoilDecay = 0.75F; + public static float recoilRebound = 0.25F; + public static float offsetVertical = 0; + public static float offsetHorizontal = 0; + + public static void setupRecoil(float vertical, float horizontal, float decay, float rebound) { + recoilVertical += vertical; + recoilHorizontal += horizontal; + recoilDecay = decay; + recoilRebound = rebound; + } + + public static void setupRecoil(float vertical, float horizontal) { + setupRecoil(vertical, horizontal, 0.75F, 0.25F); + } + + public static final String O_GUNCONFIG = "O_GUNCONFIG_"; + + public static final String KEY_DRAWN = "drawn"; + public static final String KEY_AIMING = "aiming"; + public static final String KEY_MODE = "mode_"; + public static final String KEY_WEAR = "wear_"; + public static final String KEY_TIMER = "timer_"; + public static final String KEY_STATE = "state_"; + public static final String KEY_PRIMARY = "mouse1_"; + public static final String KEY_SECONDARY = "mouse2_"; + public static final String KEY_TERTIARY = "mouse3_"; + public static final String KEY_RELOAD = "reload_"; + public static final String KEY_LASTANIM = "lastanim_"; + public static final String KEY_ANIMTIMER = "animtimer_"; + public static final String KEY_LOCKONTARGET = "lockontarget"; + public static final String KEY_LOCKEDON = "lockedon"; + public static final String KEY_CANCELRELOAD = "cancel"; + + public static ConcurrentHashMap loopedSounds = new ConcurrentHashMap(); + + public static float prevAimingProgress; + public static float aimingProgress; + + /** NEVER ACCESS DIRECTLY - USE GETTER */ + protected GunConfig[] configs_DNA; + + public WeaponQuality quality; + + public GunConfig getConfig(ItemStack stack, int index) { + GunConfig cfg = configs_DNA[index]; + return WeaponUpgradeManager.eval(cfg, stack, O_GUNCONFIG + index, this); + } + + public int getConfigCount() { + return configs_DNA.length; + } + + public ItemGunBaseNT(WeaponQuality quality, GunConfig... cfg) { + this.setMaxStackSize(1); + this.configs_DNA = cfg; + this.quality = quality; + this.lastShot = new long[cfg.length]; + if(quality == WeaponQuality.A_SIDE || quality == WeaponQuality.SPECIAL) this.setCreativeTab(MainRegistry.weaponTab); + if(quality == WeaponQuality.LEGENDARY || quality == WeaponQuality.SECRET) this.secrets.add(this); + this.setTextureName(RefStrings.MODID + ":gun_darter"); + } + + public static enum WeaponQuality { + A_SIDE, + B_SIDE, + LEGENDARY, + SPECIAL, + SECRET, + DEBUG + } + + public static enum GunState { + DRAWING, //forced delay where nothing can be done + IDLE, //the gun is ready to fire or reload + COOLDOWN, //forced delay, but with option for refire + RELOADING, //forced delay after which a reload action happens, may be canceled (TBI) + JAMMED, //forced delay due to jamming + } + + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + int configs = this.configs_DNA.length; + for(int i = 0; i < configs; i++) { + GunConfig config = getConfig(stack, i); + for(Receiver rec : config.getReceivers(stack)) { + IMagazine mag = rec.getMagazine(stack); + list.add("Ammo: " + mag.getIconForHUD(stack, player).getDisplayName() + " " + mag.reportAmmoStateForHUD(stack, player)); + float dmg = rec.getBaseDamage(stack); + list.add("Base Damage: " + dmg); + if(mag.getType(stack, player.inventory) instanceof BulletConfig) { + BulletConfig bullet = (BulletConfig) mag.getType(stack, player.inventory); + list.add("Damage with current ammo: " + dmg * bullet.damageMult + (bullet.projectilesMin > 1 ? (" x" + (bullet.projectilesMin != bullet.projectilesMax ? (bullet.projectilesMin + "-" + bullet.projectilesMax) : bullet.projectilesMin)) : "")); + } + } + } + + switch(this.quality) { + case A_SIDE: list.add(EnumChatFormatting.YELLOW + "Standard Arsenal"); break; + case B_SIDE: list.add(EnumChatFormatting.GOLD + "B-Side"); break; + case LEGENDARY: list.add(EnumChatFormatting.RED + "Legendary Weapon"); break; + case SPECIAL: list.add(EnumChatFormatting.AQUA + "Special Weapon"); break; + case SECRET: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.DARK_RED : EnumChatFormatting.RED) + "SECRET"); break; + case DEBUG: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD) + "DEBUG"); break; + } + } + + @Override + public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind) { + return keybind == EnumKeybind.GUN_PRIMARY || keybind == EnumKeybind.GUN_SECONDARY || keybind == EnumKeybind.GUN_TERTIARY || keybind == EnumKeybind.RELOAD; + } + + @Override + public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean newState) { + handleKeybind(player, player.inventory, stack, keybind, newState); + } + + public void handleKeybind(EntityLivingBase entity, IInventory inventory, ItemStack stack, EnumKeybind keybind, boolean newState) { + int configs = this.configs_DNA.length; + + for(int i = 0; i < configs; i++) { + GunConfig config = getConfig(stack, i); + LambdaContext ctx = new LambdaContext(config, entity, inventory, i); + + if(keybind == EnumKeybind.GUN_PRIMARY && newState && !getPrimary(stack, i)) { if(config.getPressPrimary(stack) != null) config.getPressPrimary(stack).accept(stack, ctx); this.setPrimary(stack, i, newState); continue; } + if(keybind == EnumKeybind.GUN_PRIMARY && !newState && getPrimary(stack, i)) { if(config.getReleasePrimary(stack) != null) config.getReleasePrimary(stack).accept(stack, ctx); this.setPrimary(stack, i, newState); continue; } + if(keybind == EnumKeybind.GUN_SECONDARY && newState && !getSecondary(stack, i)) { if(config.getPressSecondary(stack) != null) config.getPressSecondary(stack).accept(stack, ctx); this.setSecondary(stack, i, newState); continue; } + if(keybind == EnumKeybind.GUN_SECONDARY && !newState && getSecondary(stack, i)) { if(config.getReleaseSecondary(stack) != null) config.getReleaseSecondary(stack).accept(stack, ctx); this.setSecondary(stack, i, newState); continue; } + if(keybind == EnumKeybind.GUN_TERTIARY && newState && !getTertiary(stack, i)) { if(config.getPressTertiary(stack) != null) config.getPressTertiary(stack).accept(stack, ctx); this.setTertiary(stack, i, newState); continue; } + if(keybind == EnumKeybind.GUN_TERTIARY && !newState && getTertiary(stack, i)) { if(config.getReleaseTertiary(stack) != null) config.getReleaseTertiary(stack).accept(stack, ctx); this.setTertiary(stack, i, newState); continue; } + if(keybind == EnumKeybind.RELOAD && newState && !getReloadKey(stack, i)) { if(config.getPressReload(stack) != null) config.getPressReload(stack).accept(stack, ctx); this.setReloadKey(stack, i, newState); continue; } + if(keybind == EnumKeybind.RELOAD && !newState && getReloadKey(stack, i)) { if(config.getReleaseReload(stack) != null) config.getReleaseReload(stack).accept(stack, ctx); this.setReloadKey(stack, i, newState); continue; } + } + } + + @Override + public void onEquip(EntityPlayer player, ItemStack stack) { + for(int i = 0; i < this.configs_DNA.length; i++) { + playAnimation(player, stack, AnimType.EQUIP, i); + this.setPrimary(stack, i, false); + this.setSecondary(stack, i, false); + this.setTertiary(stack, i, false); + this.setReloadKey(stack, i, false); + } + } + + public static void playAnimation(EntityPlayer player, ItemStack stack, AnimType type, int index) { + if(player instanceof EntityPlayerMP) { + PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(type.ordinal(), 0, index), (EntityPlayerMP) player); + setLastAnim(stack, index, type); + setAnimTimer(stack, index, 0); + } + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isHeld) { + + if(!(entity instanceof EntityLivingBase)) return; + EntityPlayer player = entity instanceof EntityPlayer ? (EntityPlayer) entity : null; + int confNo = this.configs_DNA.length; + GunConfig[] configs = new GunConfig[confNo]; + LambdaContext[] ctx = new LambdaContext[confNo]; + for(int i = 0; i < confNo; i++) { + configs[i] = this.getConfig(stack, i); + ctx[i] = new LambdaContext(configs[i], (EntityLivingBase) entity, player != null ? player.inventory : null, i); + } + + if(world.isRemote) { + + if(isHeld && player == MainRegistry.proxy.me()) { + + /// DEBUG /// + /*Vec3 offset = Vec3.createVectorHelper(-0.2, -0.1, 0.75); + offset.rotateAroundX(-entity.rotationPitch / 180F * (float) Math.PI); + offset.rotateAroundY(-entity.rotationYaw / 180F * (float) Math.PI); + world.spawnParticle("flame", entity.posX + offset.xCoord, entity.posY + entity.getEyeHeight() + offset.yCoord, entity.posZ + offset.zCoord, 0, 0, 0);*/ + + /// AIMING /// + prevAimingProgress = aimingProgress; + boolean aiming = this.getIsAiming(stack); + float aimSpeed = 0.25F; + if(aiming && aimingProgress < 1F) aimingProgress += aimSpeed; + if(!aiming && aimingProgress > 0F) aimingProgress -= aimSpeed; + aimingProgress = MathHelper.clamp_float(aimingProgress, 0F, 1F); + + /// SMOKE NODES /// + for(int i = 0; i < confNo; i++) if(configs[i].getSmokeHandler(stack) != null) { + configs[i].getSmokeHandler(stack).accept(stack, ctx[i]); + } + + for(int i = 0; i < confNo; i++) { + BiConsumer orchestra = configs[i].getOrchestra(stack); + if(orchestra != null) orchestra.accept(stack, ctx[i]); + } + } + return; + } + + /// RESET WHEN NOT EQUIPPED /// + if(!isHeld) { + for(int i = 0; i < confNo; i++) { + GunState current = this.getState(stack, i); + if(current != GunState.JAMMED) { + this.setState(stack, i, GunState.DRAWING); + this.setTimer(stack, i, configs[i].getDrawDuration(stack)); + } + } + this.setIsAiming(stack, false); + return; + } + + for(int i = 0; i < confNo; i++) { + BiConsumer orchestra = configs[i].getOrchestra(stack); + if(orchestra != null) orchestra.accept(stack, ctx[i]); + + setAnimTimer(stack, i, getAnimTimer(stack, i) + 1); + + /// STTATE MACHINE /// + int timer = this.getTimer(stack, i); + if(timer > 0) this.setTimer(stack, i, timer - 1); + if(timer <= 1) configs[i].getDecider(stack).accept(stack, ctx[i]); + } + } + + // GUN DRAWN // + public static boolean getIsDrawn(ItemStack stack) { return getValueBool(stack, KEY_DRAWN); } + public static void setIsDrawn(ItemStack stack, boolean value) { setValueBool(stack, KEY_DRAWN, value); } + // GUN STATE TIMER // + public static int getTimer(ItemStack stack, int index) { return getValueInt(stack, KEY_TIMER + index); } + public static void setTimer(ItemStack stack, int index, int value) { setValueInt(stack, KEY_TIMER + index, value); } + // GUN STATE // + public static GunState getState(ItemStack stack, int index) { return EnumUtil.grabEnumSafely(GunState.class, getValueByte(stack, KEY_STATE + index)); } + public static void setState(ItemStack stack, int index, GunState value) { setValueByte(stack, KEY_STATE + index, (byte) value.ordinal()); } + // GUN MODE // + public static int getMode(ItemStack stack, int index) { return getValueInt(stack, KEY_MODE + index); } + public static void setMode(ItemStack stack, int index, int value) { setValueInt(stack, KEY_MODE + index, value); } + // GUN AIMING // + public static boolean getIsAiming(ItemStack stack) { return getValueBool(stack, KEY_AIMING); } + public static void setIsAiming(ItemStack stack, boolean value) { setValueBool(stack, KEY_AIMING, value); } + // GUN AIMING // + public static float getWear(ItemStack stack, int index) { return getValueFloat(stack, KEY_WEAR + index); } + public static void setWear(ItemStack stack, int index, float value) { setValueFloat(stack, KEY_WEAR + index, value); } + // LOCKON // + public static int getLockonTarget(ItemStack stack) { return getValueInt(stack, KEY_LOCKONTARGET); } + public static void setLockonTarget(ItemStack stack, int value) { setValueInt(stack, KEY_LOCKONTARGET, value); } + public static boolean getIsLockedOn(ItemStack stack) { return getValueBool(stack, KEY_LOCKEDON); } + public static void setIsLockedOn(ItemStack stack, boolean value) { setValueBool(stack, KEY_LOCKEDON, value); } + // ANIM TRACKING // + public static AnimType getLastAnim(ItemStack stack, int index) { return EnumUtil.grabEnumSafely(AnimType.class, getValueInt(stack, KEY_LASTANIM + index)); } + public static void setLastAnim(ItemStack stack, int index, AnimType value) { setValueInt(stack, KEY_LASTANIM + index, value.ordinal()); } + public static int getAnimTimer(ItemStack stack, int index) { return getValueInt(stack, KEY_ANIMTIMER + index); } + public static void setAnimTimer(ItemStack stack, int index, int value) { setValueInt(stack, KEY_ANIMTIMER + index, value); } + + // BUTTON STATES // + public static boolean getPrimary(ItemStack stack, int index) { return getValueBool(stack, KEY_PRIMARY + index); } + public static void setPrimary(ItemStack stack, int index, boolean value) { setValueBool(stack, KEY_PRIMARY + index, value); } + public static boolean getSecondary(ItemStack stack, int index) { return getValueBool(stack, KEY_SECONDARY + index); } + public static void setSecondary(ItemStack stack, int index, boolean value) { setValueBool(stack, KEY_SECONDARY + index, value); } + public static boolean getTertiary(ItemStack stack, int index) { return getValueBool(stack, KEY_TERTIARY + index); } + public static void setTertiary(ItemStack stack, int index, boolean value) { setValueBool(stack, KEY_TERTIARY + index, value); } + public static boolean getReloadKey(ItemStack stack, int index) { return getValueBool(stack, KEY_RELOAD + index); } + public static void setReloadKey(ItemStack stack, int index, boolean value) { setValueBool(stack, KEY_RELOAD + index, value); } + // RELOAD CANCEL // + public static boolean getReloadCancel(ItemStack stack) { return getValueBool(stack, KEY_CANCELRELOAD); } + public static void setReloadCancel(ItemStack stack, boolean value) { setValueBool(stack, KEY_CANCELRELOAD, value); } + + + /// UTIL /// + public static int getValueInt(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getInteger(name); return 0; } + public static void setValueInt(ItemStack stack, String name, int value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setInteger(name, value); } + + public static float getValueFloat(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getFloat(name); return 0; } + public static void setValueFloat(ItemStack stack, String name, float value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setFloat(name, value); } + + public static byte getValueByte(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getByte(name); return 0; } + public static void setValueByte(ItemStack stack, String name, byte value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setByte(name, value); } + + public static boolean getValueBool(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getBoolean(name); return false; } + public static void setValueBool(ItemStack stack, String name, boolean value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setBoolean(name, value); } + + /** Wrapper for extra context used in most Consumer lambdas which are part of the guncfg */ + public static class LambdaContext { + public final GunConfig config; + public final EntityLivingBase entity; + public final IInventory inventory; + public final int configIndex; + + public LambdaContext(GunConfig config, EntityLivingBase player, IInventory inventory, int configIndex) { + this.config = config; + this.entity = player; + this.inventory = inventory; + this.configIndex = configIndex; + } + + public EntityPlayer getPlayer() { + if(!(entity instanceof EntityPlayer)) return null; + return (EntityPlayer) entity; + } + } + + @Override + @SideOnly(Side.CLIENT) + public void renderHUD(Pre event, ElementType type, EntityPlayer player, ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + if(type == ElementType.CROSSHAIRS) { + event.setCanceled(true); + GunConfig config = gun.getConfig(stack, 0); + if(config.getHideCrosshair(stack) && aimingProgress >= 1F) return; + RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, config.getCrosshair(stack)); + } + + int confNo = this.configs_DNA.length; + + for(int i = 0; i < confNo; i++) { + IHUDComponent[] components = gun.getConfig(stack, i).getHUDComponents(stack); + + if(components != null) for(IHUDComponent component : components) { + int bottomOffset = 0; + component.renderHUDComponent(event, type, player, stack, bottomOffset, i); + bottomOffset += component.getComponentHeight(player, stack); + } + } + + Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); + } + + public static class SmokeNode { + + public double forward = 0D; + public double side = 0D; + public double lift = 0D; + public double alpha; + public double width = 1D; + + public SmokeNode(double alpha) { this.alpha = alpha; } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/Receiver.java b/src/main/java/com/hbm/items/weapon/sedna/Receiver.java new file mode 100644 index 000000000..df3b0816e --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/Receiver.java @@ -0,0 +1,150 @@ +package com.hbm.items.weapon.sedna; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.factory.Lego; +import com.hbm.items.weapon.sedna.mags.IMagazine; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; + +/** + * Receivers are the gun's "moving parts", i.e. they determine things like base damage, spread, the ejector and the magazine. Think of this class like the + * barrel, receiver and chamber of the gun, an underbarrel grenade launcher for example would be a separate receiver instance compared to the regular gun it is attached to. + * + * @author hbm + */ +public class Receiver { + + public static final String F_BASEDAMAGE = "F_BASEDAMAGE"; + public static final String I_DELAYAFTERFIRE = "I_DELAYAFTERFIRE"; + public static final String I_DELAYAFTERDRYFIRE = "I_DELAYAFTERDRYFIRE"; + public static final String I_ROUNDSPERCYCLE = "I_ROUNDSPERCYCLE"; + public static final String F_SPREADMOD = "F_SPREADMOD"; + public static final String B_REFIREONHOLD = "B_REFIREONHOLD"; + public static final String B_REFIREAFTERDRY = "B_REFIREAFTERDRY"; + public static final String B_DOESDRYFIRE = "B_DOESDRYFIRE"; + public static final String B_DOESDRYFIREAFTERAUTO = "B_DOESDRYFIREAFTERAUTO"; + public static final String B_EJECTONFIRE = "B_EJECTONFIRE"; + public static final String B_RELOADONEMPTY = "B_RELOADONEMPTY"; + public static final String I_RELOADBEGINDURATION = "I_RELOADBEGINDURATION"; + public static final String I_RELOADCYCLEDURATION = "I_RELOADCYCLEDURATION"; + public static final String I_RELOADENDDURATION = "I_RELOADENDDURATION"; + public static final String I_RELOADCOCKONEMPTYPRE = "I_RELOADCOCKONEMPTYPRE"; + public static final String I_RELOADCOCKONEMPTYPOST = "I_RELOADCOCKONEMPTYPOST"; + public static final String I_JAMDURATION = "I_JAMDURATION"; + public static final String S_FIRESOUND = "S_FIRESOUND"; + public static final String F_FIREVOLUME = "F_FIREVOLUME"; + public static final String F_FIREPITCH = "F_FIREPITCH"; + public static final String O_MAGAZINE = "O_MAGAZINE"; + public static final String O_PROJECTILEOFFSET = "O_PROJECTILEOFFSET"; + public static final String O_PROJECTILEOFFSETSCOPED = "O_PROJECTILEOFFSETSCOPED"; + public static final String FUN_CANFIRE = "FUN_CANFIRE"; + public static final String CON_ONFIRE = "CON_ONFIRE"; + public static final String CON_ONRECOIL = "CON_ONRECOIL"; + + public Receiver(int index) { + this.index = index; + } + + protected int index; + protected float baseDamage_DNA; + protected int delayAfterFire_DNA; + protected int delayAfterDryFire_DNA; + protected int roundsPerCycle_DNA = 1; + protected float spreadModExtra_DNA = 0F; + protected boolean refireOnHold_DNA = false; + protected boolean refireAfterDry_DNA = false; + protected boolean doesDryFire_DNA = true; + protected boolean doesDryFireAfterAuto_DNA = false; + protected boolean ejectOnFire_DNA = true; + protected boolean reloadOnEmpty_DNA = false; + protected int reloadBeginDuration_DNA; + protected int reloadCycleDuration_DNA; + protected int reloadEndDuration_DNA; + protected int reloadCockOnEmptyPre_DNA; + protected int reloadCockOnEmptyPost_DNA; + protected int jamDuration_DNA = 0; + protected String fireSound_DNA; + protected float fireVolume_DNA = 1.0F; + protected float firePitch_DNA = 1.0F; + protected IMagazine magazine_DNA; + protected Vec3 projectileOffset_DNA = Vec3.createVectorHelper(0, 0, 0); + protected Vec3 projectileOffsetScoped_DNA = Vec3.createVectorHelper(0, 0, 0); + protected BiFunction canFire_DNA; + protected BiConsumer onFire_DNA; + protected BiConsumer onRecoil_DNA; + + /* GETTERS */ + public float getBaseDamage(ItemStack stack) { return WeaponUpgradeManager.eval(this.baseDamage_DNA, stack, F_BASEDAMAGE, this); } + public int getDelayAfterFire(ItemStack stack) { return WeaponUpgradeManager.eval(this.delayAfterFire_DNA, stack, I_DELAYAFTERFIRE, this); } + public int getDelayAfterDryFire(ItemStack stack) { return WeaponUpgradeManager.eval(this.delayAfterDryFire_DNA, stack, I_DELAYAFTERDRYFIRE, this); } + public int getRoundsPerCycle(ItemStack stack) { return WeaponUpgradeManager.eval(this.roundsPerCycle_DNA, stack, I_ROUNDSPERCYCLE, this); } + public float getGunSpread(ItemStack stack) { return WeaponUpgradeManager.eval(this.spreadModExtra_DNA, stack, F_SPREADMOD, this); } + public boolean getRefireOnHold(ItemStack stack) { return WeaponUpgradeManager.eval(this.refireOnHold_DNA, stack, B_REFIREONHOLD, this); } + public boolean getRefireAfterDry(ItemStack stack) { return WeaponUpgradeManager.eval(this.refireAfterDry_DNA, stack, B_REFIREAFTERDRY, this); } + public boolean getDoesDryFire(ItemStack stack) { return WeaponUpgradeManager.eval(this.doesDryFire_DNA, stack, B_DOESDRYFIRE, this); } + public boolean getDoesDryFireAfterAuto(ItemStack stack) { return WeaponUpgradeManager.eval(this.doesDryFireAfterAuto_DNA, stack, B_DOESDRYFIREAFTERAUTO, this); } + public boolean getEjectOnFire(ItemStack stack) { return WeaponUpgradeManager.eval(this.ejectOnFire_DNA, stack, B_EJECTONFIRE, this); } + public boolean getReloadOnEmpty(ItemStack stack) { return WeaponUpgradeManager.eval(this.reloadOnEmpty_DNA, stack, B_RELOADONEMPTY, this); } + public int getReloadBeginDuration(ItemStack stack) { return WeaponUpgradeManager.eval(this.reloadBeginDuration_DNA, stack, I_RELOADBEGINDURATION, this); } + public int getReloadCycleDuration(ItemStack stack) { return WeaponUpgradeManager.eval(this.reloadCycleDuration_DNA, stack, I_RELOADCYCLEDURATION, this); } + public int getReloadEndDuration(ItemStack stack) { return WeaponUpgradeManager.eval(this.reloadEndDuration_DNA, stack, I_RELOADENDDURATION, this); } + public int getReloadCockOnEmptyPre(ItemStack stack) { return WeaponUpgradeManager.eval(this.reloadCockOnEmptyPre_DNA, stack, I_RELOADCOCKONEMPTYPRE, this); } + public int getReloadCockOnEmptyPost(ItemStack stack) { return WeaponUpgradeManager.eval(this.reloadCockOnEmptyPost_DNA, stack, I_RELOADCOCKONEMPTYPOST, this); } + public int getJamDuration(ItemStack stack) { return WeaponUpgradeManager.eval(this.jamDuration_DNA, stack, I_JAMDURATION, this); } + public String getFireSound(ItemStack stack) { return WeaponUpgradeManager.eval(this.fireSound_DNA, stack, S_FIRESOUND, this); } + public float getFireVolume(ItemStack stack) { return WeaponUpgradeManager.eval(this.fireVolume_DNA, stack, F_FIREVOLUME, this); } + public float getFirePitch(ItemStack stack) { return WeaponUpgradeManager.eval(this.firePitch_DNA, stack, F_FIREPITCH, this); } + public IMagazine getMagazine(ItemStack stack) { return WeaponUpgradeManager.eval(this.magazine_DNA, stack, O_MAGAZINE, this); } + public Vec3 getProjectileOffset(ItemStack stack) { return WeaponUpgradeManager.eval(this.projectileOffset_DNA, stack, O_PROJECTILEOFFSET, this); } + public Vec3 getProjectileOffsetScoped(ItemStack stack) { return WeaponUpgradeManager.eval(this.projectileOffsetScoped_DNA, stack, O_PROJECTILEOFFSETSCOPED, this); } + + public BiFunction getCanFire(ItemStack stack) { return WeaponUpgradeManager.eval(this.canFire_DNA, stack, FUN_CANFIRE, this); } + public BiConsumer getOnFire(ItemStack stack) { return WeaponUpgradeManager.eval(this.onFire_DNA, stack, CON_ONFIRE, this); } + public BiConsumer getRecoil(ItemStack stack) { return WeaponUpgradeManager.eval(this.onRecoil_DNA, stack, CON_ONRECOIL, this); } + + /* SETTERS */ + public Receiver dmg(float dmg) { this.baseDamage_DNA = dmg; return this; } + public Receiver delay(int delay) { this.delayAfterFire_DNA = this.delayAfterDryFire_DNA = delay; return this; } + public Receiver dry(int delay) { this.delayAfterDryFire_DNA = delay; return this; } + public Receiver rounds(int rounds) { this.roundsPerCycle_DNA = rounds; return this; } + public Receiver spread(float spread) { this.spreadModExtra_DNA = spread; return this; } + public Receiver auto(boolean auto) { this.refireOnHold_DNA = auto; return this; } + public Receiver autoAfterDry(boolean auto) { this.refireAfterDry_DNA = auto; return this; } + public Receiver dryfire(boolean dryfire) { this.doesDryFire_DNA = dryfire; return this; } + public Receiver dryfireAfterAuto(boolean dryfire) { this.doesDryFireAfterAuto_DNA = dryfire; return this; } + public Receiver ejectOnFire(boolean eject) { this.ejectOnFire_DNA = eject; return this; } + public Receiver reloadOnEmpty(boolean reload) { this.reloadOnEmpty_DNA = reload; return this; } + public Receiver mag(IMagazine magazine) { this.magazine_DNA = magazine; return this; } + public Receiver offset(double f, double u, double s) { this.projectileOffset_DNA = Vec3.createVectorHelper(f, u, s); this.projectileOffsetScoped_DNA = Vec3.createVectorHelper(f, u, 0); return this; } + public Receiver offsetScoped(double f, double u, double s) { this.projectileOffsetScoped_DNA = Vec3.createVectorHelper(f, u, s); return this; } + public Receiver jam(int jam) { this.jamDuration_DNA = jam; return this; } + + public Receiver reload(int delay) { return reload(0, delay, delay, 0, 0); } + public Receiver reload(int begin, int cycle, int end, int cock) { return reload(0, begin, cycle, end, cock); } + public Receiver reload(int pre, int begin, int cycle, int end, int post) { + this.reloadBeginDuration_DNA = begin; + this.reloadCycleDuration_DNA = cycle; + this.reloadEndDuration_DNA = end; + this.reloadCockOnEmptyPre_DNA = pre; + this.reloadCockOnEmptyPost_DNA = post; + return this; + } + + public Receiver canFire(BiFunction lambda) { this.canFire_DNA = lambda; return this; } + public Receiver fire(BiConsumer lambda) { this.onFire_DNA = lambda; return this; } + public Receiver recoil(BiConsumer lambda) { this.onRecoil_DNA = lambda; return this; } + + public Receiver sound(String sound, float volume, float pitch) { + this.fireSound_DNA = sound; + this.fireVolume_DNA = volume; + this.firePitch_DNA = pitch; + return this; + } + + public Receiver setupStandardFire() { return this.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE) .fire(Lego.LAMBDA_STANDARD_FIRE); } + public Receiver setupLockonFire() { return this.canFire(Lego.LAMBDA_LOCKON_CAN_FIRE) .fire(Lego.LAMBDA_STANDARD_FIRE); } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/WeaponUpgradeManager.java b/src/main/java/com/hbm/items/weapon/sedna/WeaponUpgradeManager.java new file mode 100644 index 000000000..4f0602a0f --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/WeaponUpgradeManager.java @@ -0,0 +1,36 @@ +package com.hbm.items.weapon.sedna; + +import net.minecraft.item.ItemStack; + +/** + * The upgrade manager operates by scraping upgrades from a gun, then iterating over them and evaluating the given value, passing the modified value to successive mods. + * The way that mods stack (additive vs multiplicative) depends on the order the mod is installed in + * + * @author hbm + */ +public class WeaponUpgradeManager { + + //TODO: add caching so this doesn't have to run 15 times per single action + + + public static ItemStack[] getUpgrades(ItemStack stack) { + return null; // TBI + } + + /** Scrapes all upgrades, iterates over them and evaluates the given value. The parent (i.e. holder of the base value) + * is passed for context (so upgrades can differentiate primary and secondary receivers for example). Passing a null + * stack causes the base value to be returned. */ + public static T eval(T base, ItemStack stack, String key, Object parent) { + if(stack == null) return base; + + ItemStack[] upgrades = getUpgrades(stack); + if(upgrades != null) for(ItemStack upgradeStack : upgrades) { + if(upgradeStack.getItem() instanceof IWeaponUpgrade) { + IWeaponUpgrade upgrade = (IWeaponUpgrade) upgradeStack.getItem(); + base = upgrade.eval(base, upgradeStack, key, parent); + } + } + + return base; + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java new file mode 100644 index 000000000..7bf6381df --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java @@ -0,0 +1,48 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.Locale; + +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.particle.helper.AshesCreator; +import com.hbm.particle.helper.SkeletonCreator; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; + +public class ConfettiUtil { + + public static void decideConfetti(EntityLivingBase entity, DamageSource source) { + if(entity.isEntityAlive()) return; + if(source.damageType.equals(DamageClass.LASER.name().toLowerCase(Locale.US))) pulverize(entity); + if(source.damageType.equals(DamageClass.ELECTRIC.name().toLowerCase(Locale.US))) pulverize(entity); + if(source.isExplosion()) gib(entity); + if(source.isFireDamage()) cremate(entity); + } + + public static void pulverize(EntityLivingBase entity) { + int amount = MathHelper.clamp_int((int) (entity.width * entity.height * entity.width * 25), 5, 50); + AshesCreator.composeEffect(entity.worldObj, entity, amount, 0.125F); + SkeletonCreator.composeEffect(entity.worldObj, entity, 1F); + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:weapon.fire.disintegration", 2.0F, 0.9F + entity.getRNG().nextFloat() * 0.2F); + } + + public static void cremate(EntityLivingBase entity) { + int amount = MathHelper.clamp_int((int) (entity.width * entity.height * entity.width * 25), 5, 50); + AshesCreator.composeEffect(entity.worldObj, entity, amount, 0.125F); + SkeletonCreator.composeEffect(entity.worldObj, entity, 0.25F); + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:weapon.fire.disintegration", 2.0F, 0.9F + entity.getRNG().nextFloat() * 0.2F); + } + + public static void gib(EntityLivingBase entity) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", entity.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, entity.posX, entity.posY + entity.height * 0.5, entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY + entity.height * 0.5, entity.posZ, 150)); + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + entity.getRNG().nextFloat() * 0.2F); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java new file mode 100644 index 000000000..afd0b437a --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -0,0 +1,129 @@ +package com.hbm.items.weapon.sedna.factory; + +import com.hbm.interfaces.IOrderedEnum; +import com.hbm.items.ItemEnumMulti; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; + +import net.minecraft.item.Item; + +public class GunFactory { + + public static BulletConfig ammo_debug; + + public static SpentCasing CASING44 = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F, 1.0F, 1.5F).setBounceMotion(0.01F, 0.05F).setColor(SpentCasing.COLOR_CASE_44); + + public static void init() { + + /// AMMO ITEMS /// + ModItems.ammo_debug = new Item().setUnlocalizedName("ammo_debug").setTextureName(RefStrings.MODID + ":ammo_45"); + ModItems.ammo_standard = new ItemEnumMulti(EnumAmmo.class, true, true).setUnlocalizedName("ammo_standard").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_standard"); + ModItems.ammo_secret = new ItemEnumMulti(EnumAmmoSecret.class, true, true).setUnlocalizedName("ammo_secret").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ammo_secret"); + + /// BULLLET CFGS /// + ammo_debug = new BulletConfig().setItem(ModItems.ammo_debug).setSpread(0.01F).setRicochetAngle(45).setCasing(CASING44.clone().register("DEBUG0")); + + /// GUNS /// + ModItems.gun_debug = new ItemGunBaseNT(WeaponQuality.DEBUG, new GunConfig() + .dura(600F).draw(15).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE).orchestra(Orchestras.DEBUG_ORCHESTRA) + .rec(new Receiver(0) + .dmg(10F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 12).addConfigs(ammo_debug)) + .offset(0.75, -0.0625, -0.3125D) + .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD).pt(Lego.LAMBDA_TOGGLE_AIM) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(Lego.LAMBDA_DEBUG_ANIMS) + ).setUnlocalizedName("gun_debug"); + + XFactoryBlackPowder.init(); + XFactory357.init(); + XFactory44.init(); + XFactory9mm.init(); + XFactory12ga.init(); + XFactory40mm.init(); + XFactory762mm.init(); + XFactory22lr.init(); + XFactoryFlamer.init(); + XFactoryRocket.init(); + XFactory556mm.init(); + XFactory50.init(); + XFactoryEnergy.init(); + XFactoryAccelerator.init(); + XFactoryCatapult.init(); + XFactory75Bolt.init(); + XFactoryFolly.init(); + XFactoryTurret.init(); + XFactory10ga.init(); + + /// PROXY BULLSHIT /// + MainRegistry.proxy.registerGunCfg(); + } + + public static enum EnumAmmo implements IOrderedEnum { + STONE, STONE_AP, STONE_IRON, STONE_SHOT, + M357_BP, M357_SP, M357_FMJ, M357_JHP, M357_AP, M357_EXPRESS, + M44_BP, M44_SP, M44_FMJ, M44_JHP, M44_AP, M44_EXPRESS, + P22_SP, P22_FMJ, P22_JHP, P22_AP, + P9_SP, P9_FMJ, P9_JHP, P9_AP, + R556_SP, R556_FMJ, R556_JHP, R556_AP, + R762_SP, R762_FMJ, R762_JHP, R762_AP, R762_DU, + BMG50_SP, BMG50_FMJ, BMG50_JHP, BMG50_AP, BMG50_DU, + B75, B75_INC, B75_EXP, + G12_BP, G12_BP_MAGNUM, G12_BP_SLUG, G12, G12_SLUG, G12_FLECHETTE, G12_MAGNUM, G12_EXPLOSIVE, G12_PHOSPHORUS, //G12_ANTHRAX, + G26_FLARE, G26_FLARE_SUPPLY, G26_FLARE_WEAPON, + G40_HE, G40_HEAT, G40_DEMO, G40_INC, G40_PHOSPHORUS, + ROCKET_HE, ROCKET_HEAT, ROCKET_DEMO, ROCKET_INC, ROCKET_PHOSPHORUS, + FLAME_DIESEL, FLAME_GAS, FLAME_NAPALM, FLAME_BALEFIRE, + CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_IR, + TAU_URANIUM, + COIL_TUNGSTEN, COIL_FERROURANIUM, + NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, + G10, G10_SHRAPNEL, G10_DU, G10_SLUG, + + //ONLY ADD NEW ENTRIES AT THE BOTTOM TO AVOID SHIFTING! + ; + + /** used for creative tab order */ + public static EnumAmmo[] order = new EnumAmmo[] { + STONE, STONE_AP, STONE_IRON, STONE_SHOT, + M357_BP, M357_SP, M357_FMJ, M357_JHP, M357_AP, M357_EXPRESS, + M44_BP, M44_SP, M44_FMJ, M44_JHP, M44_AP, M44_EXPRESS, + P22_SP, P22_FMJ, P22_JHP, P22_AP, + P9_SP, P9_FMJ, P9_JHP, P9_AP, + R556_SP, R556_FMJ, R556_JHP, R556_AP, + R762_SP, R762_FMJ, R762_JHP, R762_AP, R762_DU, + BMG50_SP, BMG50_FMJ, BMG50_JHP, BMG50_AP, BMG50_DU, + B75, B75_INC, B75_EXP, + G12_BP, G12_BP_MAGNUM, G12_BP_SLUG, G12, G12_SLUG, G12_FLECHETTE, G12_MAGNUM, G12_EXPLOSIVE, G12_PHOSPHORUS, + G10, G10_SHRAPNEL, G10_DU, G10_SLUG, + G26_FLARE, G26_FLARE_SUPPLY, G26_FLARE_WEAPON, + G40_HE, G40_HEAT, G40_DEMO, G40_INC, G40_PHOSPHORUS, + ROCKET_HE, ROCKET_HEAT, ROCKET_DEMO, ROCKET_INC, ROCKET_PHOSPHORUS, + FLAME_DIESEL, FLAME_GAS, FLAME_NAPALM, FLAME_BALEFIRE, + CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_IR, + TAU_URANIUM, + COIL_TUNGSTEN, COIL_FERROURANIUM, + NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, + }; + + public Enum[] getOrder() { + return order; + } + } + + public static enum EnumAmmoSecret { + FOLLY_SM, FOLLY_NUKE, + M44_EQUESTRIAN, G12_EQUESTRIAN, BMG50_EQUESTRIAN + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java new file mode 100644 index 000000000..600dfbd19 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -0,0 +1,252 @@ +package com.hbm.items.weapon.sedna.factory; + +import static com.hbm.items.weapon.sedna.factory.GunFactory.*; +import static com.hbm.items.weapon.sedna.factory.XFactory10ga.*; +import static com.hbm.items.weapon.sedna.factory.XFactory12ga.*; +import static com.hbm.items.weapon.sedna.factory.XFactory22lr.*; +import static com.hbm.items.weapon.sedna.factory.XFactory357.*; +import static com.hbm.items.weapon.sedna.factory.XFactory40mm.*; +import static com.hbm.items.weapon.sedna.factory.XFactory44.*; +import static com.hbm.items.weapon.sedna.factory.XFactory50.*; +import static com.hbm.items.weapon.sedna.factory.XFactory556mm.*; +import static com.hbm.items.weapon.sedna.factory.XFactory75Bolt.*; +import static com.hbm.items.weapon.sedna.factory.XFactory762mm.*; +import static com.hbm.items.weapon.sedna.factory.XFactory9mm.*; +import static com.hbm.items.weapon.sedna.factory.XFactoryAccelerator.*; +import static com.hbm.items.weapon.sedna.factory.XFactoryBlackPowder.*; +import static com.hbm.items.weapon.sedna.factory.XFactoryCatapult.*; +import static com.hbm.items.weapon.sedna.factory.XFactoryEnergy.*; +import static com.hbm.items.weapon.sedna.factory.XFactoryFolly.*; +import static com.hbm.items.weapon.sedna.factory.XFactoryTurret.*; +import static com.hbm.items.weapon.sedna.factory.XFactoryRocket.*; + +import java.util.function.BiConsumer; + +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityBulletBeamBase; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.weapon.sedna.*; + +import net.minecraftforge.client.MinecraftForgeClient; + +public class GunFactoryClient { + + public static void init() { + //GUNS + MinecraftForgeClient.registerItemRenderer(ModItems.gun_debug, new ItemRenderDebug()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_pepperbox, new ItemRenderPepperbox()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_light_revolver, new ItemRenderAtlas(ResourceManager.bio_revolver_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_light_revolver_atlas, new ItemRenderAtlas(ResourceManager.bio_revolver_atlas_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_light_revolver_dani, new ItemRenderDANI()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_henry, new ItemRenderHenry()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_greasegun, new ItemRenderGreasegun()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_maresleg, new ItemRenderMaresleg(ResourceManager.maresleg_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_maresleg_akimbo, new ItemRenderMareslegAkimbo()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_maresleg_broken, new ItemRenderMaresleg(ResourceManager.maresleg_broken_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_flaregun, new ItemRenderFlaregun()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_heavy_revolver, new ItemRenderHeavyRevolver(ResourceManager.heavy_revolver_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_heavy_revolver_lilmac, new ItemRenderHeavyRevolver(ResourceManager.lilmac_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_heavy_revolver_protege, new ItemRenderHeavyRevolver(ResourceManager.heavy_revolver_protege_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_carbine, new ItemRenderCarbine()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_am180, new ItemRenderAm180()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_liberator, new ItemRenderLiberator()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_congolake, new ItemRenderCongoLake()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer, new ItemRenderFlamer(ResourceManager.flamethrower_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer_topaz, new ItemRenderFlamer(ResourceManager.flamethrower_topaz_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer_daybreaker, new ItemRenderFlamer(ResourceManager.flamethrower_daybreaker_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_lag, new ItemRenderLAG()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi, new ItemRenderUzi()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_akimbo, new ItemRenderUziAkimbo()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_spas12, new ItemRenderSPAS12()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_panzerschreck, new ItemRenderPanzerschreck()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_g3, new ItemRenderG3()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_stinger, new ItemRenderStinger()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_chemthrower, new ItemRenderChemthrower()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun, new ItemRenderShredder(ResourceManager.shredder_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_shredder, new ItemRenderShredder(ResourceManager.shredder_orig_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_sexy, new ItemRenderShredder(ResourceManager.sexy_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderQuadro()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderMinigun(ResourceManager.minigun_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun_lacunae, new ItemRenderMinigun(ResourceManager.minigun_lacunae_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_missile_launcher, new ItemRenderMissileLauncher()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_tesla_cannon, new ItemRenderTeslaCannon()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_stg77, new ItemRenderSTG77()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_tau, new ItemRenderTau()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_fatman, new ItemRenderFatMan()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_lasrifle, new ItemRenderLasrifle()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderCoilgun()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_hangman, new ItemRenderHangman()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter, new ItemRenderBolter()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_folly, new ItemRenderFolly()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_double_barrel, new ItemRenderDoubleBarrel(ResourceManager.double_barrel_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_double_barrel_sacred_dragon, new ItemRenderDoubleBarrel(ResourceManager.double_barrel_sacred_dragon_tex)); + //PROJECTILES + ammo_debug.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + + stone.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + flint.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + iron.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + shot.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + + m357_bp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + m357_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + m357_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + m357_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + m357_ap.setRenderer(LegoClient.RENDER_AP_BULLET); + m357_express.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); + + m44_bp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + m44_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + m44_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + m44_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + m44_ap.setRenderer(LegoClient.RENDER_AP_BULLET); + m44_express.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); + m44_equestrian_pip.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); + m44_equestrian_mn7.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); + + p22_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + p22_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + p22_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + p22_ap.setRenderer(LegoClient.RENDER_AP_BULLET); + + p9_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + p9_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + p9_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + p9_ap.setRenderer(LegoClient.RENDER_AP_BULLET); + + r556_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + r556_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + r556_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + r556_ap.setRenderer(LegoClient.RENDER_AP_BULLET); + + r762_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + r762_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + r762_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + r762_ap.setRenderer(LegoClient.RENDER_AP_BULLET); + r762_du.setRenderer(LegoClient.RENDER_DU_BULLET); + + bmg50_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + bmg50_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + bmg50_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + bmg50_ap.setRenderer(LegoClient.RENDER_AP_BULLET); + bmg50_du.setRenderer(LegoClient.RENDER_DU_BULLET); + + b75.setRenderer(LegoClient.RENDER_AP_BULLET); + b75_inc.setRenderer(LegoClient.RENDER_AP_BULLET); + b75_exp.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); + + g12_bp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g12_bp_magnum.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g12_bp_slug.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g12.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g12_slug.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g12_flechette.setRenderer(LegoClient.RENDER_FLECHETTE_BULLET); + g12_magnum.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g12_explosive.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); + g12_phosphorus.setRenderer(LegoClient.RENDER_AP_BULLET); + g12_equestrian_bj.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); + g12_equestrian_tkr.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); + + g12_sub.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g12_sub_slug.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g12_sub_flechette.setRenderer(LegoClient.RENDER_FLECHETTE_BULLET); + g12_sub_magnum.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g12_sub_explosive.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); + g12_sub_phosphorus.setRenderer(LegoClient.RENDER_AP_BULLET); + + setRendererBulkBeam(LegoClient.RENDER_LASER_CYAN, g12_shredder, g12_shredder_slug, g12_shredder_flechette, g12_shredder_magnum, g12_shredder_explosive, g12_shredder_phosphorus); + + g10.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g10_shrapnel.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + g10_du.setRenderer(LegoClient.RENDER_DU_BULLET); + g10_slug.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + + g26_flare.setRenderer(LegoClient.RENDER_FLARE); + g26_flare_supply.setRenderer(LegoClient.RENDER_FLARE_SUPPLY); + g26_flare_weapon.setRenderer(LegoClient.RENDER_FLARE_WEAPON); + + setRendererBulk(LegoClient.RENDER_GRENADE, g40_he, g40_heat, g40_demo, g40_inc, g40_phosphorus); + + setRendererBulk(LegoClient.RENDER_RPZB, rocket_rpzb); + setRendererBulk(LegoClient.RENDER_QD, rocket_qd); + setRendererBulk(LegoClient.RENDER_ML, rocket_ml); + + setRendererBulk(LegoClient.RENDER_NUKE, nuke_standard, nuke_demo, nuke_high); + nuke_tots.setRenderer(LegoClient.RENDER_GRENADE); + nuke_hive.setRenderer(LegoClient.RENDER_HIVE); + + setRendererBulkBeam(LegoClient.RENDER_LIGHTNING, energy_tesla, energy_tesla_overcharge); + setRendererBulkBeam(LegoClient.RENDER_TAU, tau_uranium); + setRendererBulkBeam(LegoClient.RENDER_TAU_CHARGE, tau_uranium_charge); + setRendererBulkBeam(LegoClient.RENDER_LASER_RED, energy_las, energy_las_overcharge, energy_las_ir); + setRendererBulkBeam(LegoClient.RENDER_LASER_PURPLE, energy_lacunae, energy_lacunae_overcharge, energy_lacunae_ir); + + setRendererBulk(LegoClient.RENDER_AP_BULLET, coil_tungsten, coil_ferrouranium); + + folly_sm.setRendererBeam(LegoClient.RENDER_FOLLY); + folly_nuke.setRenderer(LegoClient.RENDER_BIG_NUKE); + + setRendererBulk(LegoClient.RENDER_GRENADE, shell_normal, shell_explosive, shell_ap, shell_du, shell_w9); //TODO: change the sabots + + //HUDS + ((ItemGunBaseNT) ModItems.gun_debug) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_pepperbox) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_light_revolver) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_light_revolver_atlas) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_henry) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_greasegun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_maresleg) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_maresleg_broken) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_flaregun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_heavy_revolver) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_heavy_revolver_lilmac) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_heavy_revolver_protege) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_carbine) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_am180) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_liberator) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_congolake) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_flamer) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER); + ((ItemGunBaseNT) ModItems.gun_flamer_topaz) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER); + ((ItemGunBaseNT) ModItems.gun_flamer_daybreaker) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER); + ((ItemGunBaseNT) ModItems.gun_uzi) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_spas12) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_panzerschreck) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_g3) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_stinger) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_chemthrower) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_m2) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_autoshotgun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_autoshotgun_shredder) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_autoshotgun_sexy) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_quadro) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_lag) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_minigun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_minigun_lacunae) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_missile_launcher) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_tesla_cannon) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_stg77) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_tau) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_fatman) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_lasrifle) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_coilgun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_hangman) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_bolter) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_folly) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_double_barrel) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_double_barrel_sacred_dragon) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + + ((ItemGunBaseNT) ModItems.gun_light_revolver_dani) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); + ((ItemGunBaseNT) ModItems.gun_light_revolver_dani) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_maresleg_akimbo) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); + ((ItemGunBaseNT) ModItems.gun_maresleg_akimbo) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_uzi_akimbo) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); + ((ItemGunBaseNT) ModItems.gun_uzi_akimbo) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + } + + public static void setRendererBulk(BiConsumer renderer, BulletConfig... configs) { for(BulletConfig config : configs) config.setRenderer(renderer); } + public static void setRendererBulkBeam(BiConsumer renderer, BulletConfig... configs) { for(BulletConfig config : configs) config.setRendererBeam(renderer); } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java new file mode 100644 index 000000000..75992ca7e --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java @@ -0,0 +1,159 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BooleanSupplier; + +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class GunStateDecider { + + /** + * The meat and bones of the gun system's state machine. + * This standard decider can handle guns with an automatic primary receiver, as well as one receiver's reloading state. + * It supports draw delays as well as semi and auto fire + */ + public static BiConsumer LAMBDA_STANDARD_DECIDER = (stack, ctx) -> { + int index = ctx.configIndex; + GunState lastState = ItemGunBaseNT.getState(stack, index); + deciderStandardFinishDraw(stack, lastState, index); + deciderStandardClearJam(stack, lastState, index); + deciderStandardReload(stack, ctx, lastState, 0, index); + deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getPrimary(stack, index) && ItemGunBaseNT.getMode(stack, ctx.configIndex) == 0; }); + }; + + /** Transitions the gun from DRAWING to IDLE */ + public static void deciderStandardFinishDraw(ItemStack stack, GunState lastState, int index) { + + //transition to idle + if(lastState == GunState.DRAWING) { + ItemGunBaseNT.setState(stack, index, GunState.IDLE); + ItemGunBaseNT.setTimer(stack, index, 0); + } + } + + /** Transitions the gun from DRAWING to IDLE */ + public static void deciderStandardClearJam(ItemStack stack, GunState lastState, int index) { + + //transition to idle + if(lastState == GunState.JAMMED) { + ItemGunBaseNT.setState(stack, index, GunState.IDLE); + ItemGunBaseNT.setTimer(stack, index, 0); + } + } + + /** Triggers a reload action on the first receiver. If the mag is not full and reloading is still possible, set to RELOADING, otherwise IDLE */ + public static void deciderStandardReload(ItemStack stack, LambdaContext ctx, GunState lastState, int recIndex, int gunIndex) { + + if(lastState == GunState.RELOADING) { + + EntityLivingBase entity = ctx.entity; + EntityPlayer player = ctx.getPlayer(); + GunConfig cfg = ctx.config; + Receiver rec = cfg.getReceivers(stack)[recIndex]; + IMagazine mag = rec.getMagazine(stack); + + mag.reloadAction(stack, ctx.inventory); + boolean cancel = ItemGunBaseNT.getReloadCancel(stack); + + //if after reloading the gun can still reload, assume a tube mag and resume reloading + if(!cancel && mag.canReload(stack, ctx.inventory)) { + ItemGunBaseNT.setState(stack, gunIndex, GunState.RELOADING); + ItemGunBaseNT.setTimer(stack, gunIndex, rec.getReloadCycleDuration(stack)); + ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD_CYCLE, gunIndex); + //if no more reloading can be done, go idle + } else { + + if(getStandardJamChance(stack, cfg, gunIndex) > entity.getRNG().nextFloat()) { + ItemGunBaseNT.setState(stack, gunIndex, GunState.JAMMED); + ItemGunBaseNT.setTimer(stack, gunIndex, rec.getJamDuration(stack)); + ItemGunBaseNT.playAnimation(player, stack, AnimType.JAMMED, gunIndex); + } else { + ItemGunBaseNT.setState(stack, gunIndex, GunState.DRAWING); + int duration = rec.getReloadEndDuration(stack) + (mag.getAmountBeforeReload(stack) <= 0 ? rec.getReloadCockOnEmptyPost(stack) : 0); + ItemGunBaseNT.setTimer(stack, gunIndex, duration); + ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD_END, gunIndex); + } + + ItemGunBaseNT.setReloadCancel(stack, false); + } + + mag.setAmountAfterReload(stack, mag.getAmount(stack, ctx.inventory)); + } + } + + public static float getStandardJamChance(ItemStack stack, GunConfig config, int index) { + float percent = (float) ItemGunBaseNT.getWear(stack, index) / config.getDurability(stack); + if(percent < 0.66F) return 0F; + return Math.min((percent - 0.66F) * 4F, 1F); + } + + /** Triggers a re-fire of the primary if the fire delay has expired, the left mouse button is down and re-firing is enabled, otherwise switches to IDLE */ + public static void deciderAutoRefire(ItemStack stack, LambdaContext ctx, GunState lastState, int recIndex, int gunIndex, BooleanSupplier refireCondition) { + + if(lastState == GunState.COOLDOWN) { + + EntityLivingBase entity = ctx.entity; + EntityPlayer player = ctx.getPlayer(); + GunConfig cfg = ctx.config; + Receiver rec = cfg.getReceivers(stack)[recIndex]; + + //if the gun supports re-fire (i.e. if it's an auto) + if(rec.getRefireOnHold(stack) && refireCondition.getAsBoolean()) { + //if there's a bullet loaded, fire again + if(rec.getCanFire(stack).apply(stack, ctx)) { + rec.getOnFire(stack).accept(stack, ctx); + ItemGunBaseNT.setState(stack, gunIndex, GunState.COOLDOWN); + ItemGunBaseNT.setTimer(stack, gunIndex, rec.getDelayAfterFire(stack)); + + if(rec.getFireSound(stack) != null) entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, rec.getFireSound(stack), rec.getFireVolume(stack), rec.getFirePitch(stack)); + + int remaining = rec.getRoundsPerCycle(stack) - 1; + for(int i = 0; i < remaining; i++) if(rec.getCanFire(stack).apply(stack, ctx)) rec.getOnFire(stack).accept(stack, ctx); + //if not, check if dry firing is allowed for refires + } else if(rec.getDoesDryFireAfterAuto(stack)) { + //if refire after dry is allowed, switch to COOLDOWN which will trigger a refire, otherwise switch to DRAWING + ItemGunBaseNT.setState(stack, gunIndex, rec.getRefireAfterDry(stack) ? GunState.COOLDOWN : GunState.DRAWING); + ItemGunBaseNT.setTimer(stack, gunIndex, rec.getDelayAfterDryFire(stack)); + ItemGunBaseNT.playAnimation(player, stack, AnimType.CYCLE_DRY, gunIndex); + //if not, revert to idle + } else { + ItemGunBaseNT.setState(stack, gunIndex, GunState.IDLE); + ItemGunBaseNT.setTimer(stack, gunIndex, 0); + } + //if not, go idle + } else { + + //reload on empty, only for non-refiring guns + if(rec.getReloadOnEmpty(stack) && rec.getMagazine(stack).getAmount(stack, ctx.inventory) <= 0) { + ItemGunBaseNT.setIsAiming(stack, false); + IMagazine mag = rec.getMagazine(stack); + + if(mag.canReload(stack, ctx.inventory)) { + int loaded = mag.getAmount(stack, ctx.inventory); + mag.setAmountBeforeReload(stack, loaded); + ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.RELOADING); + ItemGunBaseNT.setTimer(stack, ctx.configIndex, rec.getReloadBeginDuration(stack) + (loaded <= 0 ? rec.getReloadCockOnEmptyPre(stack) : 0)); + ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD, ctx.configIndex); + } else { + ItemGunBaseNT.setState(stack, gunIndex, GunState.IDLE); + ItemGunBaseNT.setTimer(stack, gunIndex, 0); + } + + } else { + ItemGunBaseNT.setState(stack, gunIndex, GunState.IDLE); + ItemGunBaseNT.setTimer(stack, gunIndex, 0); + } + } + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java new file mode 100644 index 000000000..1613291de --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java @@ -0,0 +1,316 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.List; +import java.util.Random; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityBulletBaseMK4CL; +import com.hbm.entity.projectile.EntityBulletBeamBase; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.interfaces.NotableComments; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.BulletConfig.ProjectileType; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.SmokeNode; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.particle.helper.BlackPowderCreator; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; + +/** + * "LEGO" - i.e. standardized building blocks which can be used to set up gun configs easily. + * + * small update, 24/11/03: this turned into fucking spaghetti. fuuuuuuuck. + * + * @author hbm + */ +@NotableComments +public class Lego { + + public static final Random ANIM_RAND = new Random(); + + /** + * If IDLE and the mag of receiver 0 can be loaded, set state to RELOADING. Used by keybinds. */ + public static BiConsumer LAMBDA_STANDARD_RELOAD = (stack, ctx) -> { + + EntityPlayer player = ctx.getPlayer(); + Receiver rec = ctx.config.getReceivers(stack)[0]; + GunState state = ItemGunBaseNT.getState(stack, ctx.configIndex); + + if(state == GunState.IDLE) { + + ItemGunBaseNT.setIsAiming(stack, false); + IMagazine mag = rec.getMagazine(stack); + + if(mag.canReload(stack, ctx.inventory)) { + int loaded = mag.getAmount(stack, ctx.inventory); + mag.setAmountBeforeReload(stack, loaded); + ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.RELOADING); + ItemGunBaseNT.setTimer(stack, ctx.configIndex, rec.getReloadBeginDuration(stack) + (loaded <= 0 ? rec.getReloadCockOnEmptyPre(stack) : 0)); + ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD, ctx.configIndex); + } else { + ItemGunBaseNT.playAnimation(player, stack, AnimType.INSPECT, ctx.configIndex); + if(!ctx.config.getInspectCancel(stack)) { + ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.DRAWING); + ItemGunBaseNT.setTimer(stack, ctx.configIndex, ctx.config.getInspectDuration(stack)); + } + } + } + }; + + /** If IDLE and ammo is loaded, fire and set to JUST_FIRED. */ + public static BiConsumer LAMBDA_STANDARD_CLICK_PRIMARY = (stack, ctx) -> { clickReceiver(stack, ctx, 0); }; + + public static void clickReceiver(ItemStack stack, LambdaContext ctx, int receiver) { + + EntityLivingBase entity = ctx.entity; + EntityPlayer player = ctx.getPlayer(); + Receiver rec = ctx.config.getReceivers(stack)[receiver]; + int index = ctx.configIndex; + GunState state = ItemGunBaseNT.getState(stack, index); + + if(state == GunState.IDLE) { + + if(rec.getCanFire(stack).apply(stack, ctx)) { + rec.getOnFire(stack).accept(stack, ctx); + + if(rec.getFireSound(stack) != null) + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, rec.getFireSound(stack), rec.getFireVolume(stack), rec.getFirePitch(stack)); + + int remaining = rec.getRoundsPerCycle(stack) - 1; + for(int i = 0; i < remaining; i++) if(rec.getCanFire(stack).apply(stack, ctx)) rec.getOnFire(stack).accept(stack, ctx); + + ItemGunBaseNT.setState(stack, index, GunState.COOLDOWN); + ItemGunBaseNT.setTimer(stack, index, rec.getDelayAfterFire(stack)); + } else { + + if(rec.getDoesDryFire(stack)) { + ItemGunBaseNT.playAnimation(player, stack, AnimType.CYCLE_DRY, index); + ItemGunBaseNT.setState(stack, index, rec.getRefireAfterDry(stack) ? GunState.COOLDOWN : GunState.DRAWING); + ItemGunBaseNT.setTimer(stack, index, rec.getDelayAfterDryFire(stack)); + } + } + } + + if(state == GunState.RELOADING) { + ItemGunBaseNT.setReloadCancel(stack, true); + } + } + + /** If IDLE, switch mode between 0 and 1. */ + public static BiConsumer LAMBDA_STANDARD_CLICK_SECONDARY = (stack, ctx) -> { + + EntityLivingBase entity = ctx.entity; + int index = ctx.configIndex; + GunState state = ItemGunBaseNT.getState(stack, index); + + if(state == GunState.IDLE) { + int mode = ItemGunBaseNT.getMode(stack, 0); + ItemGunBaseNT.setMode(stack, index, 1 - mode); + if(mode == 0) + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:weapon.switchmode1", 1F, 1F); + else + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:weapon.switchmode2", 1F, 1F); + } + }; + + /** Default smoke. */ + public static BiConsumer LAMBDA_STANDARD_SMOKE = (stack, ctx) -> { + handleStandardSmoke(ctx.entity, stack, 2000, 0.025D, 1.15D, ctx.configIndex); + }; + + public static void handleStandardSmoke(EntityLivingBase entity, ItemStack stack, int smokeDuration, double alphaDecay, double widthGrowth, int index) { + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + long lastShot = gun.lastShot[index]; + List smokeNodes = gun.getConfig(stack, index).smokeNodes; + + boolean smoking = lastShot + smokeDuration > System.currentTimeMillis(); + if(!smoking && !smokeNodes.isEmpty()) smokeNodes.clear(); + + if(smoking) { + Vec3 prev = Vec3.createVectorHelper(-entity.motionX, -entity.motionY, -entity.motionZ); + prev.rotateAroundY((float) (entity.rotationYaw * Math.PI / 180D)); + double accel = 15D; + double side = (entity.rotationYaw - entity.prevRotationYawHead) * 0.1D; + double waggle = 0.025D; + + for(SmokeNode node : smokeNodes) { + node.forward += -prev.zCoord * accel + entity.worldObj.rand.nextGaussian() * waggle; + node.lift += prev.yCoord + 1.5D; + node.side += prev.xCoord * accel + entity.worldObj.rand.nextGaussian() * waggle + side; + if(node.alpha > 0) node.alpha -= alphaDecay; + node.width *= widthGrowth; + } + + double alpha = (System.currentTimeMillis() - lastShot) / (double) smokeDuration; + alpha = (1 - alpha) * 0.5D; + + if(gun.getState(stack, index) == GunState.RELOADING || smokeNodes.size() == 0) alpha = 0; + smokeNodes.add(new SmokeNode(alpha)); + } + } + + /** Toggles isAiming. Used by keybinds. */ + public static BiConsumer LAMBDA_TOGGLE_AIM = (stack, ctx) -> { ItemGunBaseNT.setIsAiming(stack, !ItemGunBaseNT.getIsAiming(stack)); }; + + /** Returns true if the mag has ammo in it. Used by keybind functions on whether to fire, and deciders on whether to trigger a refire. */ + public static BiFunction LAMBDA_STANDARD_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0; }; + + /** Returns true if the mag has ammo in it, and the gun is in the locked on state */ + public static BiFunction LAMBDA_LOCKON_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0 && ItemGunBaseNT.getIsLockedOn(stack); }; + + + + + /** JUMPER - bypasses mag testing and just allows constant fire */ + public static BiFunction LAMBDA_DEBUG_CAN_FIRE = (stack, ctx) -> { return true; }; + + /** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg */ + public static BiConsumer LAMBDA_STANDARD_FIRE = (stack, ctx) -> { + doStandardFire(stack, ctx, AnimType.CYCLE, true); + }; + /** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg, ignores wear */ + public static BiConsumer LAMBDA_NOWEAR_FIRE = (stack, ctx) -> { + doStandardFire(stack, ctx, AnimType.CYCLE, false); + }; + /** Spawns an EntityBulletBaseMK4 with the loaded bulletcfg, then resets lockon progress */ + public static BiConsumer LAMBDA_LOCKON_FIRE = (stack, ctx) -> { + doStandardFire(stack, ctx, AnimType.CYCLE, true); + ItemGunBaseNT.setIsLockedOn(stack, false); + }; + + public static void doStandardFire(ItemStack stack, LambdaContext ctx, AnimType anim, boolean calcWear) { + EntityLivingBase entity = ctx.entity; + EntityPlayer player = ctx.getPlayer(); + int index = ctx.configIndex; + if(anim != null) ItemGunBaseNT.playAnimation(player, stack, anim, ctx.configIndex); + + float aim = ItemGunBaseNT.getIsAiming(stack) ? 0.25F : 1F; + Receiver primary = ctx.config.getReceivers(stack)[0]; + IMagazine mag = primary.getMagazine(stack); + BulletConfig config = (BulletConfig) mag.getType(stack, ctx.inventory); + + Vec3 offset = ItemGunBaseNT.getIsAiming(stack) ? primary.getProjectileOffsetScoped(stack) : primary.getProjectileOffset(stack); + double forwardOffset = offset.xCoord; + double heightOffset = offset.yCoord; + double sideOffset = offset.zCoord; + + /*forwardOffset = 0.75; + heightOffset = -0.125; + sideOffset = -0.25D;*/ + + int projectiles = config.projectilesMin; + if(config.projectilesMax > config.projectilesMin) projectiles += entity.getRNG().nextInt(config.projectilesMax - config.projectilesMin + 1); + + for(int i = 0; i < projectiles; i++) { + float damage = calcDamage(ctx, stack, primary, calcWear, index); + float spread = calcSpread(ctx, stack, primary, calcWear, index, aim); + + if(config.pType == ProjectileType.BULLET) { + EntityBulletBaseMK4 mk4 = new EntityBulletBaseMK4(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); + if(ItemGunBaseNT.getIsLockedOn(stack)) mk4.lockonTarget = entity.worldObj.getEntityByID(ItemGunBaseNT.getLockonTarget(stack)); + if(i == 0 && config.blackPowder) BlackPowderCreator.composeEffect(entity.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F); + entity.worldObj.spawnEntityInWorld(mk4); + } else if(config.pType == ProjectileType.BULLET_CHUNKLOADING) { + EntityBulletBaseMK4CL mk4 = new EntityBulletBaseMK4CL(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); + if(ItemGunBaseNT.getIsLockedOn(stack)) mk4.lockonTarget = entity.worldObj.getEntityByID(ItemGunBaseNT.getLockonTarget(stack)); + if(i == 0 && config.blackPowder) BlackPowderCreator.composeEffect(entity.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F); + entity.worldObj.spawnEntityInWorld(mk4); + } else if(config.pType == ProjectileType.BEAM) { + EntityBulletBeamBase mk4 = new EntityBulletBeamBase(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); + entity.worldObj.spawnEntityInWorld(mk4); + } + } + + mag.useUpAmmo(stack, ctx.inventory, 1); + if(calcWear) ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + config.wear, ctx.config.getDurability(stack))); + } + + public static float getStandardWearSpread(ItemStack stack, GunConfig config, int index) { + float percent = (float) ItemGunBaseNT.getWear(stack, index) / config.getDurability(stack); + if(percent < 0.5F) return 0F; + return (percent - 0.5F) * 2F; + } + + /** Returns the standard multiplier for damage based on wear */ + public static float getStandardWearDamage(ItemStack stack, GunConfig config, int index) { + float percent = (float) ItemGunBaseNT.getWear(stack, index) / config.getDurability(stack); + if(percent < 0.75F) return 1F; + return 1F - (percent - 0.75F) * 2F; + } + + /** Returns the full calculated damage based on guncfg and wear */ + public static float calcDamage(LambdaContext ctx, ItemStack stack, Receiver primary, boolean calcWear, int index) { + return primary.getBaseDamage(stack) * (calcWear ? getStandardWearDamage(stack, ctx.config, index) : 1); + } + + public static float calcSpread(LambdaContext ctx, ItemStack stack, Receiver primary, boolean calcWear, int index, float aim) { + return primary.getGunSpread(stack) * aim + (calcWear ? getStandardWearSpread(stack, ctx.config, index) * 0.125F : 0F); //TODO: redo all this spread shit + /* + * spread should have multiple additive parts: + * - hipfire penalty (mitigated by aiming) + * - innate gun inaccuracy (usually 0, increases with wear) + * - bullet inaccuray (usually 0, higher with buckshot) + */ + } + + public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range) { standardExplode(bullet, mop, range, 1F); } + public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range, float damageMod) { + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range, bullet.getThrower()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage * damageMod).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); + } + + /** anims for the DEBUG revolver, mostly a copy of the li'lpip but with some fixes regarding the cylinder movement */ + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DEBUG_ANIMS = (stack, type) -> { + switch(type) { + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 400).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 450).addPos(0, 0, 1, 200)); + case CYCLE_DRY: return new BusAnimation() + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 300 + 100).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 450).addPos(0, 0, 1, 200)); + case EQUIP: return new BusAnimation().addBus("ROTATE", new BusAnimationSequence().addPos(-360, 0, 0, 350)); + case RELOAD: return new BusAnimation() + .addBus("RELAOD_TILT", new BusAnimationSequence().addPos(-15, 0, 0, 100).addPos(65, 0, 0, 100).addPos(45, 0, 0, 50).addPos(0, 0, 0, 200).addPos(0, 0, 0, 1450).addPos(-80, 0, 0, 100).addPos(-80, 0, 0, 100).addPos(0, 0, 0, 200)) + .addBus("RELOAD_CYLINDER", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(90, 0, 0, 100).addPos(90, 0, 0, 1700).addPos(0, 0, 0, 70)) + .addBus("RELOAD_LIFT", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(-45, 0, 0, 250).addPos(-45, 0, 0, 350).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 1050).addPos(0, 0, 0, 100)) + .addBus("RELOAD_JOLT", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(2, 0, 0, 50).addPos(0, 0, 0, 100)) + .addBus("RELOAD_BULLETS", new BusAnimationSequence().addPos(0, 0, 0, 650).addPos(10, 0, 0, 300).addPos(10, 0, 0, 200).addPos(0, 0, 0, 700)) + .addBus("RELOAD_BULLETS_CON", new BusAnimationSequence().addPos(1, 0, 0, 0).addPos(1, 0, 0, 950).addPos(0, 0, 0, 1 ) ); + case INSPECT: + case JAMMED: return new BusAnimation() + .addBus("RELAOD_TILT", new BusAnimationSequence().addPos(-15, 0, 0, 100).addPos(65, 0, 0, 100).addPos(45, 0, 0, 50).addPos(0, 0, 0, 200).addPos(0, 0, 0, 200).addPos(-80, 0, 0, 100).addPos(-80, 0, 0, 100).addPos(0, 0, 0, 200)) + .addBus("RELOAD_CYLINDER", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(90, 0, 0, 100).addPos(90, 0, 0, 450).addPos(0, 0, 0, 70)); + } + + return null; + }; + + /* + * Be honest. Do you genuinely think posting a random screenshot of your game with absolutely ZERO context of what modpack, what + * Shaders if any or literally any context at all would come to a magic solution? + * For all we know you accidentally rubbed Vaseline all over your monitor and jizzed in the hdmi socket of your pc + * + * ~ u/Wolfyy47_, 2024 + */ +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java new file mode 100644 index 000000000..10f124031 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -0,0 +1,397 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityBulletBeamBase; +import com.hbm.items.weapon.sedna.hud.HUDComponentAmmoCounter; +import com.hbm.items.weapon.sedna.hud.HUDComponentDurabilityBar; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.tileentity.RenderArcFurnace; +import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.BeamPronter.EnumBeamType; +import com.hbm.render.util.BeamPronter.EnumWaveType; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; + +public class LegoClient { + + public static HUDComponentDurabilityBar HUD_COMPONENT_DURABILITY = new HUDComponentDurabilityBar(); + public static HUDComponentDurabilityBar HUD_COMPONENT_DURABILITY_MIRROR = new HUDComponentDurabilityBar(true); + public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO = new HUDComponentAmmoCounter(0); + public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_MIRROR = new HUDComponentAmmoCounter(0).mirror(); + public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_NOCOUNTER = new HUDComponentAmmoCounter(0).noCounter(); + + public static BiConsumer RENDER_STANDARD_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0xFFBF00, 0xFFFFFF, length, false); + }; + + public static BiConsumer RENDER_FLECHETTE_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0x8C8C8C, 0xCACACA, length, false); + }; + + public static BiConsumer RENDER_AP_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0xFF6A00, 0xFFE28D, length, false); + }; + + public static BiConsumer RENDER_EXPRESS_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0x9E082E, 0xFF8A79, length, false); + }; + + public static BiConsumer RENDER_DU_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0x5CCD41, 0xE9FF8D, length, false); + }; + + public static BiConsumer RENDER_TRACER_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0x9E082E, 0xFF8A79, length, true); + }; + + public static BiConsumer RENDER_LEGENDARY_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0x7F006E, 0xFF7FED, length, true); + }; + + public static void renderBulletStandard(Tessellator tess, int dark, int light, double length, boolean fullbright) { renderBulletStandard(tess, dark, light, length, 0.03125D, 0.03125D * 0.25D, fullbright); } + + public static void renderBulletStandard(Tessellator tess, int dark, int light, double length, double widthF, double widthB, boolean fullbright) { + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glColor4f(1F, 1F, 1F, 1F); + + tess.startDrawingQuads(); + if(fullbright) tess.setBrightness(240); + tess.setNormal(0F, 1F, 0F); + tess.setColorOpaque_I(dark); + tess.addVertex(length, widthB, -widthB); tess.addVertex(length, widthB, widthB); + tess.setColorOpaque_I(light); + tess.addVertex(0, widthF, widthF); tess.addVertex(0, widthF, -widthF); + tess.setColorOpaque_I(dark); + tess.addVertex(length, -widthB, -widthB); tess.addVertex(length, -widthB, widthB); + tess.setColorOpaque_I(light); + tess.addVertex(0, -widthF, widthF); tess.addVertex(0, -widthF, -widthF); + tess.setColorOpaque_I(dark); + tess.addVertex(length, -widthB, widthB); tess.addVertex(length, widthB, widthB); + tess.setColorOpaque_I(light); + tess.addVertex(0, widthF, widthF); tess.addVertex(0, -widthF, widthF); + tess.setColorOpaque_I(dark); + tess.addVertex(length, -widthB, -widthB); tess.addVertex(length, widthB, -widthB); + tess.setColorOpaque_I(light); + tess.addVertex(0, widthF, -widthF); tess.addVertex(0, -widthF, -widthF); + tess.setColorOpaque_I(dark); + tess.addVertex(length, widthB, widthB); tess.addVertex(length, widthB, -widthB); + tess.addVertex(length, -widthB, -widthB); tess.addVertex(length, -widthB, widthB); + tess.setColorOpaque_I(light); + tess.addVertex(0, widthF, widthF); tess.addVertex(0, widthF, -widthF); + tess.addVertex(0, -widthF, -widthF); tess.addVertex(0, -widthF, widthF); + tess.draw(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + public static BiConsumer RENDER_FLARE = (bullet, interp) -> { renderFlare(bullet, interp, 1F, 0.5F, 0.5F); }; + public static BiConsumer RENDER_FLARE_SUPPLY = (bullet, interp) -> { renderFlare(bullet, interp, 0.5F, 0.5F, 1F); }; + public static BiConsumer RENDER_FLARE_WEAPON = (bullet, interp) -> { renderFlare(bullet, interp, 0.5F, 1F, 0.5F); }; + + private static final ResourceLocation flare = new ResourceLocation(RefStrings.MODID + ":textures/particle/flare.png"); + public static void renderFlare(Entity bullet, float interp, float r, float g, float b) { + + if(bullet.ticksExisted < 2) return; + RenderArcFurnace.fullbright(true); + + double scale = Math.min(5, (bullet.ticksExisted + interp - 2) * 0.5) * (0.8 + bullet.worldObj.rand.nextDouble() * 0.4); + renderFlareSprite(bullet, interp, r, g, b, scale, 0.5F, 0.75F); + + RenderArcFurnace.fullbright(false); + } + public static void renderFlareSprite(Entity bullet, float interp, float r, float g, float b, double scale, float outerAlpha, float innerAlpha) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDepthMask(false); + RenderHelper.disableStandardItemLighting(); + + Minecraft.getMinecraft().getTextureManager().bindTexture(flare); + + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + + float f1 = ActiveRenderInfo.rotationX; + float f2 = ActiveRenderInfo.rotationZ; + float f3 = ActiveRenderInfo.rotationYZ; + float f4 = ActiveRenderInfo.rotationXY; + float f5 = ActiveRenderInfo.rotationXZ; + + double posX = 0; + double posY = 0; + double posZ = 0; + + tess.setColorRGBA_F(r, g, b, outerAlpha); + tess.addVertexWithUV((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale), 1, 1); + tess.addVertexWithUV((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale), 1, 0); + tess.addVertexWithUV((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale), 0, 0); + tess.addVertexWithUV((double) (posX + f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ + f2 * scale - f4 * scale), 0, 1); + + scale *= 0.5D; + + tess.setColorRGBA_F(1F, 1F, 1F, innerAlpha); + tess.addVertexWithUV((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale), 1, 1); + tess.addVertexWithUV((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale), 1, 0); + tess.addVertexWithUV((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale), 0, 0); + tess.addVertexWithUV((double) (posX + f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ + f2 * scale - f4 * scale), 0, 1); + + tess.draw(); + + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_ALPHA_TEST); + RenderHelper.enableStandardItemLighting(); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } + + public static BiConsumer RENDER_GRENADE = (bullet, interp) -> { + GL11.glScalef(0.25F, 0.25F, 0.25F); + GL11.glRotated(90, 0, 0, 1); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_tex); + ResourceManager.projectiles.renderPart("Grenade"); + GL11.glShadeModel(GL11.GL_FLAT); + }; + + public static BiConsumer RENDER_BIG_NUKE = (bullet, interp) -> { + GL11.glScalef(0.5F, 0.5F, 0.5F); + GL11.glRotated(90, 0, 0, 1); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.rocket_mirv_tex); + ResourceManager.projectiles.renderPart("MissileMIRV"); + GL11.glShadeModel(GL11.GL_FLAT); + }; + + public static BiConsumer RENDER_RPZB = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(90, 0, -1, 0); + GL11.glTranslatef(0, 0, 3.5F); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.panzerschreck_tex); + ResourceManager.panzerschreck.renderPart("Rocket"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + + GL11.glTranslatef(0.375F, 0, 0); + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length > 0) renderBulletStandard(Tessellator.instance, 0x808080, 0xFFF2A7, length * 2, true); + }; + + public static BiConsumer RENDER_QD = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glRotated(90, 0, 0, 1); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.rocket_tex); + ResourceManager.projectiles.renderPart("Rocket"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + + GL11.glTranslatef(0.375F, 0, 0); + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length > 0) renderBulletStandard(Tessellator.instance, 0x808080, 0xFFF2A7, length * 2, true); + }; + + public static BiConsumer RENDER_ML = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.25F, 0.25F, 0.25F); + GL11.glRotated(-90, 0, 1, 0); + GL11.glTranslatef(0, -1, -4.5F); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.missile_launcher_tex); + ResourceManager.missile_launcher.renderPart("Missile"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + + GL11.glTranslatef(0.375F, 0, 0); + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length > 0) renderBulletStandard(Tessellator.instance, 0x808080, 0xFFF2A7, length * 2, true); + }; + + public static BiConsumer RENDER_LIGHTNING = (bullet, interp) -> { + + RenderArcFurnace.fullbright(true); + GL11.glPushMatrix(); + GL11.glRotatef(180 - bullet.rotationYaw, 0, 1F, 0); + GL11.glRotatef(-bullet.rotationPitch - 90, 1F, 0, 0); + Vec3 delta = Vec3.createVectorHelper(0, bullet.beamLength, 0); + double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); + GL11.glScaled(age / 2 + 0.5, 1, age / 2 + 0.5); + double scale = 0.075D; + int colorInner = ((int)(0x20 * age) << 16) | ((int)(0x20 * age) << 8) | (int) (0x40 * age); + int colorOuter = ((int)(0x40 * age) << 16) | ((int)(0x40 * age) << 8) | (int) (0x80 * age); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), (float)scale * 1F, 4, 0.25F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorOuter, colorOuter, bullet.ticksExisted, (int)(bullet.beamLength / 2 + 1), (float)scale * 7F, 2, 0.0625F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorOuter, colorOuter, bullet.ticksExisted / 2, (int)(bullet.beamLength / 2 + 1), (float)scale * 7F, 2, 0.0625F); + GL11.glPopMatrix(); + RenderArcFurnace.fullbright(false); + }; + + public static BiConsumer RENDER_TAU = (bullet, interp) -> { + + RenderArcFurnace.fullbright(true); + double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); + + GL11.glPushMatrix(); + GL11.glRotatef(180 - bullet.rotationYaw, 0, 1F, 0); + GL11.glRotatef(-bullet.rotationPitch - 90, 1F, 0, 0); + + GL11.glPushMatrix(); + Vec3 delta = Vec3.createVectorHelper(0, bullet.beamLength, 0); + GL11.glScaled(age / 2 + 0.5, 1, age / 2 + 0.5); + double scale = 0.075D; + int colorInner = ((int)(0x30 * age) << 16) | ((int)(0x25 * age) << 8) | (int) (0x10 * age); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, (bullet.ticksExisted + bullet.getEntityId()) / 2, (int)(bullet.beamLength / 2 + 1), (float)scale * 4F, 2, 0.0625F); + GL11.glPopMatrix(); + + GL11.glScaled(age * 2, 1, age * 2); + GL11.glTranslated(0, bullet.beamLength, 0); + GL11.glRotatef(-90, 0, 0, 1); + renderBulletStandard(Tessellator.instance, 0xFFBF00, 0xFFFFFF, bullet.beamLength, true); + + GL11.glPopMatrix(); + RenderArcFurnace.fullbright(false); + }; + + public static BiConsumer RENDER_TAU_CHARGE = (bullet, interp) -> { + + RenderArcFurnace.fullbright(true); + double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); + + GL11.glPushMatrix(); + GL11.glRotatef(180 - bullet.rotationYaw, 0, 1F, 0); + GL11.glRotatef(-bullet.rotationPitch - 90, 1F, 0, 0); + + GL11.glPushMatrix(); + Vec3 delta = Vec3.createVectorHelper(0, bullet.beamLength, 0); + GL11.glScaled(age / 2 + 0.5, 1, age / 2 + 0.5); + double scale = 0.075D; + int colorInner = ((int)(0x60 * age) << 16) | ((int)(0x50 * age) << 8) | (int) (0x30 * age); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, (bullet.ticksExisted + bullet.getEntityId()) / 2, (int)(bullet.beamLength / 2 + 1), (float)scale * 4F, 2, 0.0625F); + GL11.glPopMatrix(); + + GL11.glScaled(age * 2, 1, age * 2); + GL11.glTranslated(0, bullet.beamLength, 0); + GL11.glRotatef(-90, 0, 0, 1); + renderBulletStandard(Tessellator.instance, 0xFFF0A0, 0xFFFFFF, bullet.beamLength, true); + + GL11.glPopMatrix(); + RenderArcFurnace.fullbright(false); + }; + + public static BiConsumer RENDER_LASER_RED = (bullet, interp) -> { + renderStandardLaser(bullet, interp, 0x80, 0x15, 0x15); + }; + public static BiConsumer RENDER_LASER_CYAN = (bullet, interp) -> { + renderStandardLaser(bullet, interp, 0x15, 0x15, 0x80); + }; + public static BiConsumer RENDER_LASER_PURPLE = (bullet, interp) -> { + renderStandardLaser(bullet, interp, 0x60, 0x15, 0x80); + }; + + public static void renderStandardLaser(EntityBulletBeamBase bullet, float interp, int r, int g, int b) { + + RenderArcFurnace.fullbright(true); + GL11.glPushMatrix(); + GL11.glRotatef(180 - bullet.rotationYaw, 0, 1F, 0); + GL11.glRotatef(-bullet.rotationPitch - 90, 1F, 0, 0); + Vec3 delta = Vec3.createVectorHelper(0, bullet.beamLength, 0); + double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); + GL11.glScaled(age / 2 + 0.5, 1, age / 2 + 0.5); + int colorInner = ((int)(r * age) << 16) | ((int)(g * age) << 8) | (int) (b * age); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), 0F, 8, 0.0625F); + GL11.glPopMatrix(); + RenderArcFurnace.fullbright(false); + } + + public static BiConsumer RENDER_FOLLY = (bullet, interp) -> { + + double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); + RenderArcFurnace.fullbright(true); + + GL11.glPushMatrix(); + renderFlareSprite(bullet, interp, 1F, 1F, 1F, (1 - age) * 7.5 + 1.5, 0.5F * (float) age, 0.75F * (float) age); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glRotatef(180 - bullet.rotationYaw, 0, 1F, 0); + GL11.glRotatef(-bullet.rotationPitch - 90, 1F, 0, 0); + Vec3 delta = Vec3.createVectorHelper(0, bullet.beamLength, 0); + GL11.glScaled((1 - age) * 25 + 2.5, 1, (1 - age) * 25 + 2.5); + int colorInner = ((int)(0x20 * age) << 16) | ((int)(0x20 * age) << 8) | (int) (0x20 * age); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), 0F, 8, 0.0625F); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + + RenderArcFurnace.fullbright(false); + }; + + public static BiConsumer RENDER_NUKE = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(-90, 0, 1, 0); + GL11.glTranslatef(0, -1, 1F); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.fatman_mininuke_tex); + ResourceManager.fatman.renderPart("MiniNuke"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + }; + + public static BiConsumer RENDER_HIVE = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(90, 0, -1, 0); + GL11.glTranslatef(0, 0, 3.5F); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.panzerschreck_tex); + ResourceManager.panzerschreck.renderPart("Rocket"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java new file mode 100644 index 000000000..1f1ba45d3 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -0,0 +1,1280 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; + +import com.hbm.config.ClientConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.impl.ItemGunStinger; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.helper.CasingCreator; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.sound.AudioWrapper; +import com.hbm.util.EntityDamageUtil; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; + +/** Orchestras are server-side components that run along client-side animations. + * The orchestra only knows what animation is or was playing and how long it started, but not if it is still active. + * Orchestras are useful for things like playing server-side sound, spawning casings or sending particle packets.*/ +public class Orchestras { + + public static BiConsumer DEBUG_ORCHESTRA = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + + if(timer == 16) { + Receiver rec = ctx.config.getReceivers(stack)[0]; + IMagazine mag = rec.getMagazine(stack); + SpentCasing casing = mag.getCasing(stack, ctx.inventory); + if(casing != null) for(int i = 0; i < mag.getCapacity(stack); i++) CasingCreator.composeEffect(entity.worldObj, entity, 0.25, -0.125, -0.125, -0.05, 0, 0, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE) { + if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_PEPPERBOX = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + if(timer == 55) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 1F); + } + if(type == AnimType.CYCLE) { + if(timer == 21) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.6F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); + if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.6F); + } + if(type == AnimType.INSPECT) { + if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); + if(timer == 45) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.6F); + } + }; + + public static BiConsumer ORCHESTRA_ATLAS = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + if(timer == 44) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(type == AnimType.CYCLE) { + if(timer == 14) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 14) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F); + } + if(type == AnimType.INSPECT) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_DANI = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + if(timer == 44) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(type == AnimType.CYCLE) { + if(timer == 9) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 9) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F); + } + if(type == AnimType.INSPECT) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_HENRY = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.RELOAD) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + } + if(type == AnimType.RELOAD_CYCLE) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + } + if(type == AnimType.RELOAD_END) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.9F); + if(timer == 12 && ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmountBeforeReload(stack) <= 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.9F); + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); + if(timer == 44) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); + } + if(type == AnimType.CYCLE) { + if(timer == 14) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.5, -0.125, aiming ? -0.125 : -0.375D, 0, 0.12, -0.12, 0.01, casing.getName(), true, 60, 0.5D, 20); + } + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_GREASEGUN = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.EQUIP) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1F); + } + if(type == AnimType.CYCLE) { + if(timer == 2) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.55, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); + if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + + } + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + } + if(type == AnimType.INSPECT) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1.25F); + } + if(type == AnimType.JAMMED) { + if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + } + }; + + public static BiConsumer ORCHESTRA_MARESLEG = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.RELOAD) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); + } + if(type == AnimType.RELOAD_CYCLE) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); + } + if(type == AnimType.RELOAD_END) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.7F); + } + if(type == AnimType.JAMMED) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.7F); + if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); + if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); + } + if(type == AnimType.CYCLE) { + if(timer == 14) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.3125, -0.125, aiming ? -0.125 : -0.375D, 0, 0.18, -0.12, 0.01, casing.getName(), true, 60, 0.5D, 20); + } + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); + } + }; + + public static BiConsumer ORCHESTRA_MARESLEG_SHORT = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.RELOAD) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); + } + if(type == AnimType.RELOAD_CYCLE) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); + } + if(type == AnimType.RELOAD_END) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.7F); + } + if(type == AnimType.JAMMED) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.7F); + if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); + if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); + } + if(type == AnimType.CYCLE) { + if(timer == 14) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.3125, -0.125, aiming ? -0.125 : -0.375D, 0, -0.08, 0, 0.01, casing.getName(), true, 60, 0.5D, 20); + } + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); + } + }; + + public static BiConsumer ORCHESTRA_MARESLEG_AKIMBO = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.CYCLE) { + if(timer == 14) { + int offset = ctx.configIndex == 0 ? -1 : 1; + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.3125, -0.125, aiming ? -0.125 * offset : -0.375D * offset, 0, -0.08, 0, 0.01, casing.getName(), true, 60, 0.5D, 20); + } + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.leverCock", 1F, 0.8F); + return; + } + + ORCHESTRA_MARESLEG_SHORT.accept(stack, ctx); + }; + + public static BiConsumer ORCHESTRA_FLAREGUN = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); + if(timer == 4) { + IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); + if(mag.getAmountAfterReload(stack) > 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.625, -0.125, aiming ? -0.125 : -0.375D, -0.12, 0.18, 0, 0.01, casing.getName(), true, 60, 0.5D, 20); + mag.setAmountBeforeReload(stack, 0); + } + } + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); + if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); + if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + } + if(type == AnimType.CYCLE) { + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_NOPIP = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + + if(timer == 16) { + Receiver rec = ctx.config.getReceivers(stack)[0]; + IMagazine mag = rec.getMagazine(stack); + SpentCasing casing = mag.getCasing(stack, ctx.inventory); + if(casing != null) for(int i = 0; i < mag.getCapacity(stack); i++) CasingCreator.composeEffect(entity.worldObj, entity, 0.25, -0.125, -0.125, -0.05, 0, 0, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE) { + if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 3) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_CARBIBE = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.CYCLE) { + if(timer == 2) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.3125, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.06, 0.01, casing.getName(), true, 60, 0.5D, 20); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + } + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + if(type == AnimType.RELOAD_END) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + } + if(type == AnimType.JAMMED) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + if(timer == 31) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + } + if(type == AnimType.INSPECT) { + if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + } + }; + + public static BiConsumer ORCHESTRA_AM180 = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(ClientConfig.GUN_ANIMS_LEGACY.get()) { + if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.4375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, -0.06, 0, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + } + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1F); + if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + } + if(type == AnimType.JAMMED) { + if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + } + if(type == AnimType.INSPECT) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + } else { + if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.4375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, -0.06, 0, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + } + if(type == AnimType.RELOAD) { + if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1F); + if(timer == 48) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 54) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + } + if(type == AnimType.JAMMED) { + if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1.0F); + } + if(type == AnimType.INSPECT) { + if(timer == 6) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 53) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + } + }; + + public static BiConsumer ORCHESTRA_LIBERATOR = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); + if(timer == 4) { + IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); + int toEject = mag.getAmountAfterReload(stack) - mag.getAmount(stack, ctx.inventory); + SpentCasing casing = mag.getCasing(stack, ctx.inventory); + if(casing != null) for(int i = 0; i < toEject; i++) CasingCreator.composeEffect(entity.worldObj, entity, 0.625, -0.1875, -0.375D, -0.12, 0.18, 0, 0.01, casing.getName(), true, 60, 0.5D, 20); + } + if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + } + if(type == AnimType.RELOAD_CYCLE) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + } + if(type == AnimType.RELOAD_END) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + } + if(type == AnimType.JAMMED) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); + IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); + int toEject = mag.getAmountAfterReload(stack) - mag.getAmount(stack, ctx.inventory); + if(timer == 4 && toEject > 0) { + SpentCasing casing = mag.getCasing(stack, ctx.inventory); + if(casing != null) for(int i = 0; i < toEject; i++) CasingCreator.composeEffect(entity.worldObj, entity, 0.625, -0.1875, -0.375D, -0.12, 0.18, 0, 0.01, casing.getName(), true, 60, 0.5D, 20); + mag.setAmountAfterReload(stack, 0); + } + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + } + }; + + public static BiConsumer ORCHESTRA_CONGOLAKE = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.CYCLE) { + if(timer == 15) { + IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); + SpentCasing casing = mag.getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.625, aiming ? -0.0625 : -0.25, aiming ? 0 : -0.375D, 0, 0.18, 0.12, 0.01, casing.getName(), true, 60, 0.5D, 20); + } + } + if(type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.glReload", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 9) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.glOpen", 1F, 1F); + if(timer == 27) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.glClose", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_FLAMER = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.CYCLE && entity.worldObj.isRemote) { + AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); + + if(timer < 5) { + //start sound + if(runningAudio == null || !runningAudio.isPlaying()) { + AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.fire.flameLoop", (float) entity.posX, (float) entity.posY, (float) entity.posZ, 1F, 15F, 1F, 10); + ItemGunBaseNT.loopedSounds.put(entity, audio); + audio.startSound(); + } + //keepalive + if(runningAudio != null && runningAudio.isPlaying()) { + runningAudio.keepAlive(); + runningAudio.updatePosition((float) entity.posX, (float) entity.posY, (float) entity.posZ); + } + } else { + //stop sound due to timeout + if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); + } + } + //stop sound due to state change + if(type != AnimType.CYCLE && entity.worldObj.isRemote) { + AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); + if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); + } + if(entity.worldObj.isRemote) return; + + if(type == AnimType.RELOAD) { + if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1F); + if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.5F, 1F); + if(timer == 60) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.75F); + if(timer == 70) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); + if(timer == 85) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pressureValve", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_FLAMER_DAYBREAKER = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1F); + if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.5F, 1F); + if(timer == 60) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.75F); + if(timer == 70) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); + if(timer == 85) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pressureValve", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_LAG = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.CYCLE) { + if(timer == 1) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? 0 : -0.0625, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + + } + if(type == AnimType.RELOAD) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.5F, 1.6F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_UZI = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.EQUIP) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1.25F); + } + if(type == AnimType.CYCLE) { + if(timer == 1) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + + } + if(type == AnimType.RELOAD) { + if(timer == 4) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + if(timer == 31) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_UZI_AKIMBO = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.EQUIP) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1.25F); + } + if(type == AnimType.CYCLE) { + if(timer == 1) { + int mult = ctx.configIndex == 0 ? -1 : 1; + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, -0.125, -0.375D * mult, 0, 0.18, -0.12 * mult, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + + } + if(type == AnimType.RELOAD) { + if(timer == 4) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + if(timer == 31) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_SPAS = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.CYCLE || type == AnimType.ALT_CYCLE) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCock", 1F, 1F); + if(timer == 10) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCock", 1F, 1F); + } + if(type == AnimType.RELOAD) { + IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); + if(mag.getAmount(stack, ctx.inventory) == 0) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + if(timer == 7) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); + } + if(type == AnimType.RELOAD_CYCLE) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunReload", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCockOpen", 1F, 1F); + if(timer == 18) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCockClose", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 18) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.foley.gunWhack", 1F, 1F); + if(timer == 25) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.foley.gunWhack", 1F, 1F); + if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.shotgunCockClose", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_PANERSCHRECK = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_G3 = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.5, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + + } + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 4) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_STINGER = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); + if(ItemGunStinger.getLockonProgress(stack) > 0 && !ItemGunStinger.getIsLockedOn(stack)) { + //start sound + if(runningAudio == null || !runningAudio.isPlaying()) { + AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.fire.lockon", (float) entity.posX, (float) entity.posY, (float) entity.posZ, 1F, 15F, 1F, 10); + ItemGunBaseNT.loopedSounds.put(entity, audio); + audio.startSound(); + } + //keepalive + if(runningAudio != null && runningAudio.isPlaying()) { + runningAudio.keepAlive(); + runningAudio.updatePosition((float) entity.posX, (float) entity.posY, (float) entity.posZ); + } + } else { + //stop sound due to timeout + if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); + } + + if(type == AnimType.RELOAD) { + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_CHEMTHROWER = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.CYCLE && entity.worldObj.isRemote) { + AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); + + if(timer < 5) { + //start sound + if(runningAudio == null || !runningAudio.isPlaying()) { + AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.fire.flameLoop", (float) entity.posX, (float) entity.posY, (float) entity.posZ, 1F, 15F, 1F, 10); + ItemGunBaseNT.loopedSounds.put(entity, audio); + audio.startSound(); + } + //keepalive + if(runningAudio != null && runningAudio.isPlaying()) { + runningAudio.keepAlive(); + runningAudio.updatePosition((float) entity.posX, (float) entity.posY, (float) entity.posZ); + } + } else { + //stop sound due to timeout + if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); + } + } + //stop sound due to state change + if(type != AnimType.CYCLE && entity.worldObj.isRemote) { + AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); + if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); + } + }; + + public static BiConsumer ORCHESTRA_M2 = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.EQUIP) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:turret.howard_reload", 1F, 1F); + } + + if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? 0 : -0.125, aiming ? 0 : -0.3125D, 0, 0.06, -0.18, 0.01, casing.getName()); + } + } + }; + + public static BiConsumer ORCHESTRA_SHREDDER = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.CYCLE) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.shredderCycle", 0.25F, 1.5F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.shredderCycle", 0.25F, 1.5F); + } + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_SHREDDER_SEXY = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.CYCLE) { + if(timer == 0 && ctx.config.getReceivers(stack)[0].getMagazine(stack).getType(stack, null) == XFactory12ga.g12_equestrian_bj) { + ItemGunBaseNT.setTimer(stack, 0, 20); + } + } + + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + } + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_QUADRO = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_MINIGUN = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, aiming ? 0.125 : 0.5, aiming ? -0.125 : -0.25, aiming ? -0.25 : -0.5D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + if(timer == 1) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); + if(timer == 1) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); + } + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); + } + if(type == AnimType.INSPECT) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); + } + }; + + public static BiConsumer ORCHESTRA_MISSILE_LAUNCHER = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1.25F); + } + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 1F, 0.9F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); + if(timer == 42) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 1F, 0.9F); + } + + if(type == AnimType.JAMMED || type == AnimType.INSPECT) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 1F, 0.9F); + if(timer == 27) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 1F, 0.9F); + } + }; + + public static BiConsumer ORCHESTRA_TESLA = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.CYCLE) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.shredderCycle", 0.25F, 1.25F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.shredderCycle", 0.25F, 1.25F); + } + if(type == AnimType.INSPECT) { + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:block.squeakyToy", 0.25F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_STG77 = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(ClientConfig.GUN_ANIMS_LEGACY.get()) { + if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, aiming ? 0.125 : 0.125, aiming ? -0.125 : -0.25, aiming ? -0.125 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); + } + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 24) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 34) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + + if(timer == 114) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + if(timer == 124) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + } else { + if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, aiming ? 0.125 : 0.25, aiming ? -0.125 : -0.25, aiming ? -0.125 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); + } + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1.25F); + if(timer == 38) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 43) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + if(type == AnimType.INSPECT) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); + if(timer == 11) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + + if(timer == 72) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 1F); + if(timer == 84) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + } + }; + + public static BiConsumer ORCHESTRA_TAU = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.SPINUP && entity.worldObj.isRemote) { + AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); + + if(timer < 300) { + if(runningAudio == null || !runningAudio.isPlaying()) { + AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.fire.tauLoop", (float) entity.posX, (float) entity.posY, (float) entity.posZ, 1F, 15F, 0.75F, 10); + audio.updatePitch(0.75F); + ItemGunBaseNT.loopedSounds.put(entity, audio); + audio.startSound(); + } + if(runningAudio != null && runningAudio.isPlaying()) { + runningAudio.keepAlive(); + runningAudio.updatePosition((float) entity.posX, (float) entity.posY, (float) entity.posZ); + runningAudio.updatePitch(0.75F + timer * 0.01F); + } + } else { + if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); + } + } + //stop sound due to state change + if(type != AnimType.SPINUP && entity.worldObj.isRemote) { + AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); + if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); + } + if(entity.worldObj.isRemote) return; + + if(type == AnimType.CYCLE) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.tau", 0.5F, 0.9F + entity.getRNG().nextFloat() * 0.2F); + } + + if(type == AnimType.ALT_CYCLE) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.fire.tau", 0.5F, 0.7F + entity.getRNG().nextFloat() * 0.2F); + } + + if(type == AnimType.SPINUP) { + if(timer % 10 == 0 && timer < 130) { + IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); + if(mag.getAmount(stack, ctx.inventory) <= 0) { + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.CYCLE_DRY, ctx.configIndex); + return; + } + mag.useUpAmmo(stack, ctx.inventory, 1); + } + + if(timer > 200) { + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.CYCLE_DRY, ctx.configIndex); + + entity.attackEntityFrom(ModDamageSource.tauBlast, 1_000F); + + ItemGunBaseNT.setWear(stack, ctx.configIndex, Math.min(ItemGunBaseNT.getWear(stack, ctx.configIndex) + 10_000F, ctx.config.getDurability(stack))); + + entity.worldObj.playSoundEffect(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, "hbm:entity.ufoBlast", 5.0F, 0.9F); + entity.worldObj.playSoundEffect(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, "fireworks.blast", 5.0F, 0.5F); + + float yaw = entity.worldObj.rand.nextFloat() * 180F; + for(int i = 0; i < 3; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", 1.0F); + data.setFloat("g", 0.8F); + data.setFloat("b", 0.5F); + data.setFloat("pitch", -60F + 60F * i); + data.setFloat("yaw", yaw); + data.setFloat("scale", 2F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ), + new TargetPoint(entity.dimension, entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, 100)); + } + } + } + }; + + public static BiConsumer ORCHESTRA_FATMAN = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.fatmanFull", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_LASRIFLE = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1.5F); + } + + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 18) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 38) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + + if(type == AnimType.INSPECT) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + + if(type == AnimType.JAMMED) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 22) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_COILGUN = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.coilgunReload", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_HANGMAN = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + } + + if(type == AnimType.RELOAD) { + + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); + if(timer == 25) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); + + if(timer == 10) { + Receiver rec = ctx.config.getReceivers(stack)[0]; + IMagazine mag = rec.getMagazine(stack); + SpentCasing casing = mag.getCasing(stack, ctx.inventory); + if(casing != null) for(int i = 0; i < mag.getCapacity(stack); i++) CasingCreator.composeEffect(entity.worldObj, entity, 0.25, -0.25, -0.125, -0.05, 0, 0, 0.01, casing.getName()); + } + } + + if(type == AnimType.INSPECT) { + if(timer == 16 && ctx.getPlayer() != null) { + MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D); + if(mop != null) { + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + float damage = 10F; + mop.entityHit.attackEntityFrom(DamageSource.causePlayerDamage(ctx.getPlayer()), damage); + mop.entityHit.motionX *= 2; + mop.entityHit.motionZ *= 2; + entity.worldObj.playSoundAtEntity(mop.entityHit, "hbm:weapon.fire.smack", 1F, 0.9F + entity.getRNG().nextFloat() * 0.2F); + } + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + Block b = entity.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + entity.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, b.stepSound.getStepResourcePath(), 2F, 0.9F + entity.getRNG().nextFloat() * 0.2F); + } + } + } + } + + if(type == AnimType.JAMMED) { + if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); + if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 25) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); + } + }; + + public static BiConsumer ORCHESTRA_BOLTER = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.CYCLE) { + if(timer == 1) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.5, aiming ? 0 : -0.125, aiming ? -0.0625 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + } + + if(type == AnimType.RELOAD) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_FOLLY = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.screw", 1F, 1F); + if(timer == 80) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F); + if(timer == 120) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.screw", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_DOUBLE_BARREL = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); + if(timer == 19) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallInsert", 1F, 0.9F); + if(timer == 29) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.8F); + + if(timer == 12) { + IMagazine mag = ctx.config.getReceivers(stack)[0].getMagazine(stack); + int toEject = mag.getAmountAfterReload(stack) - mag.getAmount(stack, ctx.inventory); + SpentCasing casing = mag.getCasing(stack, ctx.inventory); + if(casing != null) for(int i = 0; i < toEject; i++) CasingCreator.composeEffect(entity.worldObj, entity, 0, -0.1875, -0.375D, -0.12, 0.18, 0, 0.01, casing.getName(), true, 60, 0.5D, 20); + } + } + + if(type == AnimType.INSPECT) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); + if(timer == 19) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.8F); + } + + if(type == AnimType.CYCLE_DRY) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + } + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java new file mode 100644 index 000000000..9df3a3a63 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java @@ -0,0 +1,132 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; + +public class XFactory10ga { + + public static BulletConfig g10; + public static BulletConfig g10_shrapnel; + public static BulletConfig g10_du; + public static BulletConfig g10_slug; + + public static void init() { + + g10 = new BulletConfig().setItem(EnumAmmo.G10).setProjectiles(10).setDamage(1F/10F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(5F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GA")); + g10_shrapnel = new BulletConfig().setItem(EnumAmmo.G10_SHRAPNEL).setProjectiles(10).setDamage(1F/10F).setSpread(0.05F).setRicochetAngle(90).setRicochetCount(15).setThresholdNegation(5F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xE5DD00, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GAShrapnel")); + g10_du = new BulletConfig().setItem(EnumAmmo.G10_DU).setProjectiles(10).setDamage(1F/4F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(10F).setArmorPiercing(0.2F).setDoesPenetrate(true).setDamageFalloutByPen(false).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x538D53, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GADU")); + g10_slug = new BulletConfig().setItem(EnumAmmo.G10_SLUG).setRicochetAngle(15).setThresholdNegation(10F).setArmorPiercing(0.1F).setDoesPenetrate(true).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x808080, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GASlug")); + + ModItems.gun_double_barrel = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig() + .dura(1000).draw(10).inspect(39).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(30F).rounds(2).delay(10).reload(41).reloadOnEmpty(true).sound("hbm:weapon.fire.shotgun", 1.0F, 0.9F) + .mag(new MagazineFullReload(0, 2).addConfigs(g10, g10_shrapnel, g10_du, g10_slug)) + .offset(0.75, -0.0625, -0.1875) + .setupStandardFire().recoil(LAMBDA_RECOIL_DOUBLE_BARREL)) + .setupStandardConfiguration() + .anim(LAMBDA_DOUBLE_BARREL_ANIMS).orchestra(Orchestras.ORCHESTRA_DOUBLE_BARREL) + ).setUnlocalizedName("gun_double_barrel"); + ModItems.gun_double_barrel_sacred_dragon = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig() + .dura(6000).draw(10).inspect(39).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(45F).rounds(2).delay(10).reload(41).reloadOnEmpty(true).sound("hbm:weapon.fire.shotgun", 1.0F, 0.9F) + .mag(new MagazineFullReload(0, 2).addConfigs(g10, g10_shrapnel, g10_du, g10_slug)) + .offset(0.75, -0.0625, -0.1875) + .setupStandardFire().recoil(LAMBDA_RECOIL_DOUBLE_BARREL)) + .setupStandardConfiguration() + .anim(LAMBDA_DOUBLE_BARREL_ANIMS).orchestra(Orchestras.ORCHESTRA_DOUBLE_BARREL) + ).setUnlocalizedName("gun_double_barrel_sacred_dragon"); + } + + public static BiConsumer LAMBDA_RECOIL_DOUBLE_BARREL = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DOUBLE_BARREL_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(0, 0, -3, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -1, 50).addPos(0, 0, 0, 250)) + .addBus("BUCKLE", new BusAnimationSequence().addPos(0, -60, 0, 50).addPos(0, 0, 0, 250)); + case RELOAD: return new BusAnimation() + .addBus("TURN", new BusAnimationSequence() + .addPos(0, 30, 0, 350, IType.SIN_FULL) + .addPos(0, 30, 0, 1150) + .addPos(0, 0, 0, 350, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence() + .addPos(0, 0, 0, 250) + .addPos(0, 0, -90, 100, IType.SIN_FULL) + .addPos(0, 0, -90, 1300) + .addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("BARREL", new BusAnimationSequence() + .addPos(0, 0, 0, 300) + .addPos(60, 0, 0, 150, IType.SIN_UP) + .addPos(60, 0, 0, 1150) + .addPos(0, 0, 0, 150, IType.SIN_UP)) + .addBus("LIFT", new BusAnimationSequence() + .addPos(0, 0, 0, 350) + .addPos(-5, 0, 0, 150, IType.SIN_FULL) + .addPos(0, 0, 0, 100, IType.SIN_FULL) + .addPos(0, 0, 0, 700) + .addPos(-5, 0, 0, 100, IType.SIN_FULL) + .addPos(0, 0, 0, 100, IType.SIN_UP) //1500 + .addPos(45, 0, 0, 150) + .addPos(45, 0, 0, 150) + .addPos(-5, 0, 0, 150, IType.SIN_DOWN) + .addPos(0, 0, 0, 100, IType.SIN_FULL)) //2050 + .addBus("SHELLS", new BusAnimationSequence() + .addPos(0, 0, 0, 450) + .addPos(0, 0, -2.5, 100) + .addPos(0, -5, -5, 350, IType.SIN_DOWN) + .addPos(0, -3, -2, 0) + .addPos(0, 0, -2, 250) + .addPos(0, 0, 0, 150, IType.SIN_UP)) //1300 + .addBus("SHELL_FLIP", new BusAnimationSequence().addPos(0, 0, 0, 450).addPos(-360, 0, 0, 450).addPos(0, 0, 0, 0)); + case INSPECT: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence() + .addPos(0, 0, 0, 250) + .addPos(0, 0, -90, 100, IType.SIN_FULL) + .addPos(0, 0, -90, 800) + .addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("BARREL", new BusAnimationSequence() + .addPos(0, 0, 0, 300) + .addPos(60, 0, 0, 150, IType.SIN_UP) + .addPos(60, 0, 0, 650) + .addPos(0, 0, 0, 150, IType.SIN_UP)) + .addBus("LIFT", new BusAnimationSequence() + .addPos(0, 0, 0, 350) + .addPos(-5, 0, 0, 150, IType.SIN_FULL) + .addPos(0, 0, 0, 100, IType.SIN_FULL) + .addPos(0, 0, 0, 200) + .addPos(-5, 0, 0, 100, IType.SIN_FULL) + .addPos(0, 0, 0, 100, IType.SIN_UP) //1500 + .addPos(45, 0, 0, 150) + .addPos(45, 0, 0, 150) + .addPos(-5, 0, 0, 150, IType.SIN_DOWN) + .addPos(0, 0, 0, 100, IType.SIN_FULL)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java new file mode 100644 index 000000000..d62c65262 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -0,0 +1,653 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.List; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockDetonatable; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityDuchessGambit; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; +import com.hbm.items.weapon.sedna.mags.MagazineBelt; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.util.BobMathUtil; +import com.hbm.util.TrackerUtil; +import com.hbm.util.Vec3NT; +import com.hbm.util.DamageResistanceHandler.DamageClass; +import com.hbm.util.EntityDamageUtil; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.ForgeDirection; + +public class XFactory12ga { + + public static BulletConfig g12_bp; + public static BulletConfig g12_bp_magnum; + public static BulletConfig g12_bp_slug; + public static BulletConfig g12; + public static BulletConfig g12_slug; + public static BulletConfig g12_flechette; + public static BulletConfig g12_magnum; + public static BulletConfig g12_explosive; + public static BulletConfig g12_phosphorus; + public static BulletConfig g12_anthrax; + public static BulletConfig g12_equestrian_bj; + public static BulletConfig g12_equestrian_tkr; + + public static BulletConfig g12_shredder; + public static BulletConfig g12_shredder_slug; + public static BulletConfig g12_shredder_flechette; + public static BulletConfig g12_shredder_magnum; + public static BulletConfig g12_shredder_explosive; + public static BulletConfig g12_shredder_phosphorus; + + public static BulletConfig g12_sub; + public static BulletConfig g12_sub_slug; + public static BulletConfig g12_sub_flechette; + public static BulletConfig g12_sub_magnum; + public static BulletConfig g12_sub_explosive; + public static BulletConfig g12_sub_phosphorus; + + public static BiConsumer LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> { + Lego.standardExplode(bullet, mop, 2F); bullet.setDead(); + }; + + public static BiConsumer LAMBDA_BOAT = (bullet, mop) -> { + EntityDuchessGambit pippo = new EntityDuchessGambit(bullet.worldObj); + pippo.posX = mop.hitVec.xCoord; + pippo.posY = mop.hitVec.yCoord + 50; + pippo.posZ = mop.hitVec.zCoord;; + bullet.worldObj.spawnEntityInWorld(pippo); + bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:weapon.boat", 100F, 1F); + bullet.setDead(); + }; + + public static BulletConfig makeShredderConfig(BulletConfig original, BulletConfig submunition) { + BulletConfig cfg = new BulletConfig().setBeam().setRenderRotations(false).setLife(5).setDamage(original.damageMult * original.projectilesMax).setupDamageClass(DamageClass.LASER); + cfg.setItem(original.ammo); + cfg.setCasing(original.casing); + cfg.setOnBeamImpact((beam, mop) -> { + + int projectiles = submunition.projectilesMin; + if(submunition.projectilesMax > submunition.projectilesMin) projectiles += beam.worldObj.rand.nextInt(submunition.projectilesMax - submunition.projectilesMin + 1); + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + + mop.hitVec.xCoord += dir.offsetX * 0.1; + mop.hitVec.yCoord += dir.offsetY * 0.1; + mop.hitVec.zCoord += dir.offsetZ * 0.1; + + spawnPulse(beam.worldObj, mop, beam.rotationYaw, beam.rotationPitch); + + List blast = beam.worldObj.getEntitiesWithinAABBExcludingEntity(beam, AxisAlignedBB.getBoundingBox(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord).expand(0.75, 0.75, 0.75)); + DamageSource source = BulletConfig.getDamage(beam, beam.getThrower(), DamageClass.LASER); + + for(Entity e : blast) { + if(!e.isEntityAlive()) continue; + if(e instanceof EntityLivingBase) { + EntityDamageUtil.attackEntityFromNT((EntityLivingBase) e, source, beam.damage, true, false, 0D, 0F, 0F); + if(!e.isEntityAlive()) ConfettiUtil.decideConfetti((EntityLivingBase) e, source); + } else { + e.attackEntityFrom(source, beam.damage); + } + } + + for(int i = 0; i < projectiles; i++) { + EntityBulletBaseMK4 bullet = new EntityBulletBaseMK4(beam.worldObj, beam.thrower, submunition, beam.damage * submunition.damageMult, 0.2F, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, dir.offsetX, dir.offsetY, dir.offsetZ); + bullet.worldObj.spawnEntityInWorld(bullet); + } + } + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + + spawnPulse(beam.worldObj, mop, beam.rotationYaw, beam.rotationPitch); + + for(int i = 0; i < projectiles; i++) { + Vec3NT vec = new Vec3NT(beam.worldObj.rand.nextGaussian(), beam.worldObj.rand.nextGaussian(), beam.worldObj.rand.nextGaussian()).normalizeSelf(); + EntityBulletBaseMK4 bullet = new EntityBulletBaseMK4(beam.worldObj, beam.thrower, submunition, beam.damage * submunition.damageMult, 0.2F, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, vec.xCoord, vec.yCoord, vec.zCoord); + bullet.worldObj.spawnEntityInWorld(bullet); + } + } + }); + return cfg; + } + + public static BulletConfig makeShredderSubmunition(BulletConfig original) { + BulletConfig cfg = original.clone(); + cfg.setRicochetAngle(90).setRicochetCount(3).setVel(0.5F).setLife(50).setupDamageClass(DamageClass.LASER).setOnRicochet(LAMBDA_SHREDDER_RICOCHET); + return cfg; + } + + //this sucks + public static BiConsumer LAMBDA_SHREDDER_RICOCHET = (bullet, mop) -> { + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + + Block b = bullet.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + if(b.getMaterial() == Material.glass) { + bullet.worldObj.func_147480_a(mop.blockX, mop.blockY, mop.blockZ, false); + bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + return; + } + if(b instanceof BlockDetonatable) { + ((BlockDetonatable) b).onShot(bullet.worldObj, mop.blockX, mop.blockY, mop.blockZ); + } + if(b == ModBlocks.deco_crt) { + int meta = bullet.worldObj.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ); + bullet.worldObj.setBlockMetadataWithNotify(mop.blockX, mop.blockY, mop.blockZ, meta % 4 + 4, 3); + } + + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + Vec3 face = Vec3.createVectorHelper(dir.offsetX, dir.offsetY, dir.offsetZ); + Vec3 vel = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ).normalize(); + + double angle = Math.abs(BobMathUtil.getCrossAngle(vel, face) - 90); + + if(angle <= bullet.config.ricochetAngle) { + + spawnPulse(bullet.worldObj, mop, bullet.rotationYaw, bullet.rotationPitch); + + List blast = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX, bullet.posY, bullet.posZ, bullet.posX, bullet.posY, bullet.posZ).expand(0.5, 0.5, 0.5)); + DamageSource source = BulletConfig.getDamage(bullet, bullet.getThrower(), DamageClass.LASER); + + for(Entity e : blast) { + if(!e.isEntityAlive()) continue; + if(e instanceof EntityLivingBase) { + EntityDamageUtil.attackEntityFromNT((EntityLivingBase) e, source, bullet.damage, true, false, 0D, 0F, 0F); + if(!e.isEntityAlive()) ConfettiUtil.decideConfetti((EntityLivingBase) e, source); + } else { + e.attackEntityFrom(source, bullet.damage); + } + } + + bullet.ricochets++; + if(bullet.ricochets > bullet.config.maxRicochetCount) { + bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + bullet.setDead(); + } + + switch(mop.sideHit) { + case 0: case 1: bullet.motionY *= -1; break; + case 2: case 3: bullet.motionZ *= -1; break; + case 4: case 5: bullet.motionX *= -1; break; + } + bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + //send a teleport so the ricochet is more accurate instead of the interp smoothing fucking everything up + if(bullet.worldObj instanceof WorldServer) TrackerUtil.sendTeleport((WorldServer) bullet.worldObj, bullet); + return; + + } else { + bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + bullet.setDead(); + } + } + }; + + public static void spawnPulse(World world, MovingObjectPosition mop, float yaw, float pitch) { + + double x = mop.hitVec.xCoord; + double y = mop.hitVec.yCoord; + double z = mop.hitVec.zCoord; + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + if(mop.sideHit == ForgeDirection.UP.ordinal()) { yaw = 0F; pitch = 0F; } + if(mop.sideHit == ForgeDirection.DOWN.ordinal()) { yaw = 0F; pitch = 0F; } + if(mop.sideHit == ForgeDirection.NORTH.ordinal()) { yaw = 0F; pitch = 90F; } + if(mop.sideHit == ForgeDirection.SOUTH.ordinal()) { yaw = 180F; pitch = 90F; } + if(mop.sideHit == ForgeDirection.EAST.ordinal()) { yaw = 90F; pitch = 90F; } + if(mop.sideHit == ForgeDirection.WEST.ordinal()) { yaw = 270F; pitch = 90F; } + + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + + x += dir.offsetX * 0.05; + y += dir.offsetY * 0.05; + z += dir.offsetZ * 0.05; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", 0.5F); + data.setFloat("g", 0.5F); + data.setFloat("b", 1.0F); + data.setFloat("pitch", pitch); + data.setFloat("yaw", yaw); + data.setFloat("scale", 0.75F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 100)); + } + + public static void init() { + + g12_bp = new BulletConfig().setItem(EnumAmmo.G12_BP).setBlackPowder(true).setProjectiles(8).setDamage(0.75F/8F).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP")); + g12_bp_magnum = new BulletConfig().setItem(EnumAmmo.G12_BP_MAGNUM).setBlackPowder(true).setProjectiles(4).setDamage(0.75F/4F).setSpread(0.05F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_MAGNUM")); + g12_bp_slug = new BulletConfig().setItem(EnumAmmo.G12_BP_SLUG).setBlackPowder(true).setDamage(0.75F).setSpread(0.01F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_SLUG")); + g12 = new BulletConfig().setItem(EnumAmmo.G12).setProjectiles(8).setDamage(1F/8F).setSpread(0.05F).setRicochetAngle(15).setThresholdNegation(2F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA")); + g12_slug = new BulletConfig().setItem(EnumAmmo.G12_SLUG).setHeadshot(1.5F).setSpread(0.0F).setRicochetAngle(25).setThresholdNegation(4F).setArmorPiercing(0.15F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x393939, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_SLUG")); + g12_flechette = new BulletConfig().setItem(EnumAmmo.G12_FLECHETTE).setProjectiles(8).setDamage(1F/8F).setThresholdNegation(5F).setThresholdNegation(3F).setArmorPiercing(0.2F).setSpread(0.025F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x3C80F0, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_FLECHETTE")); + g12_magnum = new BulletConfig().setItem(EnumAmmo.G12_MAGNUM).setProjectiles(4).setDamage(2F/4F).setSpread(0.015F).setRicochetAngle(15).setThresholdNegation(4F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x278400, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_MAGNUM")); + g12_explosive = new BulletConfig().setItem(EnumAmmo.G12_EXPLOSIVE).setDamage(2.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE).setSpread(0F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xDA4127, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_EXPLOSIVE")); + g12_phosphorus = new BulletConfig().setItem(EnumAmmo.G12_PHOSPHORUS).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x910001, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_PHOSPHORUS")) + .setOnImpact((bullet, mop) -> { if(mop.entityHit != null && mop.entityHit instanceof EntityLivingBase) { HbmLivingProps data = HbmLivingProps.getData((EntityLivingBase) mop.entityHit); if(data.phosphorus < 300) data.phosphorus = 300; } }); + //g12_anthrax = new BulletConfig().setItem(EnumAmmo.G12_ANTHRAX).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x749300, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_ANTHRAX")); + g12_equestrian_bj = new BulletConfig().setItem(EnumAmmoSecret.G12_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_BOAT).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_EQUESTRIAN, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12gaEquestrianBJ")); + g12_equestrian_tkr = new BulletConfig().setItem(EnumAmmoSecret.G12_EQUESTRIAN).setDamage(0F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_EQUESTRIAN, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12gaEquestrianTKR")); + + BulletConfig[] all = new BulletConfig[] {g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus}; + + g12_sub = makeShredderSubmunition(g12); + g12_sub_slug = makeShredderSubmunition(g12_slug); + g12_sub_flechette = makeShredderSubmunition(g12_flechette); + g12_sub_magnum = makeShredderSubmunition(g12_magnum); + g12_sub_explosive = makeShredderSubmunition(g12_explosive); + g12_sub_phosphorus = makeShredderSubmunition(g12_phosphorus); + g12_shredder = makeShredderConfig(g12, g12_sub); + g12_shredder_slug = makeShredderConfig(g12_slug, g12_sub_slug); + g12_shredder_flechette = makeShredderConfig(g12_flechette, g12_sub_flechette); + g12_shredder_magnum = makeShredderConfig(g12_magnum, g12_sub_magnum); + g12_shredder_explosive = makeShredderConfig(g12_explosive, g12_sub_explosive); + g12_shredder_phosphorus = makeShredderConfig(g12_phosphorus, g12_sub_phosphorus); + + ModItems.gun_maresleg = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(600).draw(10).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(16F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 6).addConfigs(all)) + .offset(0.75, -0.0625, -0.1875) + .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) + .setupStandardConfiguration() + .anim(LAMBDA_MARESLEG_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG) + ).setUnlocalizedName("gun_maresleg"); + ModItems.gun_maresleg_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE, + new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(16F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 6).addConfigs(all)) + .offset(0.75, -0.0625, 0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_AKIMBO), + new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(16F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) + .mag(new MagazineSingleReload(1, 6).addConfigs(all)) + .offset(0.75, -0.0625, -0.1875) + .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) + .ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_AKIMBO) + ).setUnlocalizedName("gun_maresleg_akimbo"); + ModItems.gun_maresleg_broken = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(0).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(32F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 6).addConfigs(g12_equestrian_tkr, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus)) + .offset(0.75, -0.0625, -0.1875) + .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_MARESLEG)) + .setupStandardConfiguration() + .anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_SHORT) + ).setUnlocalizedName("gun_maresleg_broken"); + + ModItems.gun_liberator = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(200).draw(20).inspect(21).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(16F).delay(20).rounds(4).reload(25, 15, 7, 0).jam(45).sound("hbm:weapon.fire.shotgunAlt", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 4).addConfigs(all)) + .offset(0.75, -0.0625, -0.1875) + .setupStandardFire().recoil(LAMBDA_RECOIL_LIBERATOR)) + .setupStandardConfiguration() + .anim(LAMBDA_LIBERATOR_ANIMS).orchestra(Orchestras.ORCHESTRA_LIBERATOR) + ).setUnlocalizedName("gun_liberator"); + + ModItems.gun_spas12 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(600).draw(20).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(32F).delay(20).reload(5, 10, 10, 10, 0).jam(36).sound("hbm:weapon.shotgunShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 8).addConfigs(all)) + .offset(0.75, -0.0625, -0.1875) + .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) + .setupStandardConfiguration().ps(LAMBDA_SPAS_SECONDARY).pt(null) + .anim(LAMBDA_SPAS_ANIMS).orchestra(Orchestras.ORCHESTRA_SPAS) + ).setUnlocalizedName("gun_spas12"); + + ModItems.gun_autoshotgun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(48F).delay(10).auto(true).autoAfterDry(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 20).addConfigs(all)) + .offset(0.75, -0.125, -0.25) + .setupStandardFire().recoil(LAMBDA_RECOIL_AUTOSHOTGUN)) + .setupStandardConfiguration() + .anim(LAMBDA_SHREDDER_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER) + ).setUnlocalizedName("gun_autoshotgun"); + ModItems.gun_autoshotgun_shredder = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig() + .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(50F).delay(10).auto(true).autoAfterDry(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) + .mag(new MagazineBelt().addConfigs(g12_shredder, g12_shredder_slug, g12_shredder_flechette, g12_shredder_magnum, g12_shredder_explosive, g12_shredder_phosphorus)) + .offset(0.75, -0.125, -0.25) + .setupStandardFire().recoil(LAMBDA_RECOIL_AUTOSHOTGUN)) + .setupStandardConfiguration() + .anim(LAMBDA_SHREDDER_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER) + ).setUnlocalizedName("gun_autoshotgun_shredder"); + ModItems.gun_autoshotgun_sexy = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(5_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(64F).delay(1).auto(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian_bj, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus)) + .offset(0.75, -0.125, -0.25) + .setupStandardFire().recoil(LAMBDA_RECOIL_SEXY)) + .setupStandardConfiguration() + .anim(LAMBDA_SEXY_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER_SEXY) + ).setUnlocalizedName("gun_autoshotgun_sexy"); + } + + public static BiConsumer LAMBDA_RECOIL_MARESLEG = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_LIBERATOR = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_AUTOSHOTGUN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5) + 1.5F, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_SEXY = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + public static BiConsumer LAMBDA_SPAS_SECONDARY = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + EntityPlayer player = ctx.getPlayer(); + Receiver rec = ctx.config.getReceivers(stack)[0]; + int index = ctx.configIndex; + GunState state = ItemGunBaseNT.getState(stack, index); + if(state == GunState.IDLE) { + if(rec.getCanFire(stack).apply(stack, ctx)) { + rec.getOnFire(stack).accept(stack, ctx); + int remaining = rec.getRoundsPerCycle(stack); + int timeFired = 1; + for(int i = 0; i < remaining; i++) { + if(rec.getCanFire(stack).apply(stack, ctx)) { + rec.getOnFire(stack).accept(stack, ctx); + timeFired++; + } + } + if(rec.getFireSound(stack) != null) entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, rec.getFireSound(stack), rec.getFireVolume(stack), rec.getFirePitch(stack) * (timeFired > 1 ? 0.9F : 1F)); + ItemGunBaseNT.setState(stack, index, GunState.COOLDOWN); + ItemGunBaseNT.setTimer(stack, index, 20); + } else { + if(rec.getDoesDryFire(stack)) { + ItemGunBaseNT.playAnimation(player, stack, AnimType.CYCLE_DRY, index); + ItemGunBaseNT.setState(stack, index, GunState.DRAWING); + ItemGunBaseNT.setTimer(stack, index, rec.getDelayAfterDryFire(stack)); + } + } + } + if(state == GunState.RELOADING) { + ItemGunBaseNT.setReloadCancel(stack, true); + } + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MARESLEG_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(0, 0, -3, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -1, 50).addPos(0, 0, 0, 250)) + .addBus("SIGHT", new BusAnimationSequence().addPos(35, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-85, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0, 45, 200, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)) + .addBus("HAMMER", new BusAnimationSequence().addPos(30, 0, 0, 50).addPos(30, 0, 0, 550).addPos(0, 0, 0, 200)); + case CYCLE_DRY: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-90, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0, 45, 200, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)) + .addBus("HAMMER", new BusAnimationSequence().addPos(30, 0, 0, 50).addPos(30, 0, 0, 550).addPos(0, 0, 0, 200)); + case RELOAD: + boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; + return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(30, 0, 0, 400, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 400).addPos(-85, 0, 0, 200)) + .addBus("SHELL", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0.25, -3, 0).addPos(0, empty ? 0.25 : 0.125, -1.5, 150, IType.SIN_UP).addPos(0, empty ? 0.25 : -0.25, 0, 150, IType.SIN_DOWN)) + .addBus("FLAG", new BusAnimationSequence().addPos(0, 0, 0, empty ? 900 : 0).addPos(1, 1, 1, 0)); + case RELOAD_CYCLE: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(30, 0, 0, 0)) + .addBus("LEVER", new BusAnimationSequence().addPos(-85, 0, 0, 0)) + .addBus("SHELL", new BusAnimationSequence().addPos(0, 0.25, -3, 0).addPos(0, 0.125, -1.5, 150, IType.SIN_UP).addPos(0, -0.125, 0, 150, IType.SIN_DOWN)) + .addBus("FLAG", new BusAnimationSequence().addPos(1, 1, 1, 0)); + case RELOAD_END: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(30, 0, 0, 0).addPos(30, 0, 0, 250).addPos(0, 0, 0, 400, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(-85, 0, 0, 0).addPos(0, 0, 0, 200)) + .addBus("FLAG", new BusAnimationSequence().addPos(1, 1, 1, 0)); + case JAMMED: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(30, 0, 0, 0).addPos(30, 0, 0, 250).addPos(0, 0, 0, 400, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(-85, 0, 0, 0).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 650).addPos(-85, 0, 0, 200).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 200).addPos(-85, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 850).addPos(0, 0, 45, 200, IType.SIN_DOWN).addPos(0, 0, 45, 800).addPos(0, 0, 0, 200, IType.SIN_UP)) + .addBus("FLAG", new BusAnimationSequence().addPos(1, 1, 1, 0)); + case INSPECT: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(-35, 0, 0, 300, IType.SIN_FULL).addPos(-35, 0, 0, 1150).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 450).addPos(0, 0, -90, 500, IType.SIN_FULL).addPos(0, 0, -90, 500).addPos(0, 0, 0, 500, IType.SIN_FULL)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MARESLEG_SHORT_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(0, 0, -3, 250, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -1, 50).addPos(0, 0, 0, 250)) + .addBus("SIGHT", new BusAnimationSequence().addPos(35, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-85, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("HAMMER", new BusAnimationSequence().addPos(30, 0, 0, 50).addPos(30, 0, 0, 550).addPos(0, 0, 0, 200)) + .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(360, 0, 0, 400)) + .addBus("SHELL", new BusAnimationSequence().addPos(-20, 0, 0, 0)); //gets rid of the shell in the barrel during cycling + case CYCLE_DRY: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-90, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("HAMMER", new BusAnimationSequence().addPos(30, 0, 0, 50).addPos(30, 0, 0, 550).addPos(0, 0, 0, 200)) + .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(360, 0, 0, 400)) + .addBus("SHELL", new BusAnimationSequence().addPos(-20, 0, 0, 0)); + case JAMMED: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(30, 0, 0, 0).addPos(30, 0, 0, 250).addPos(0, 0, 0, 400, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(-85, 0, 0, 0).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 650).addPos(-85, 0, 0, 200).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 200).addPos(-85, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("FLAG", new BusAnimationSequence().addPos(1, 1, 1, 0)); + } + + return LAMBDA_MARESLEG_ANIMS.apply(stack, type); + }; + + /** This fucking sucks */ + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LIBERATOR_ANIMS = (stack, type) -> { + int ammo = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -2.5, 50, IType.SIN_DOWN).addPos(0, 0, 0, 350, IType.SIN_FULL)); + case CYCLE_DRY: return new BusAnimation(); + case RELOAD: if(ammo == 0) return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 100)) + .addBus("BREAK", new BusAnimationSequence().addPos(0, 0, 0, 100).addPos(60, 0, 0, 350, IType.SIN_DOWN)) + .addBus("SHELL1", new BusAnimationSequence().addPos(2, -4, -2, 0).addPos(2, -4, -2, 400).addPos(0, 0, -2, 450, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)) + .addBus("SHELL2", new BusAnimationSequence().addPos(2, -4, -2, 0)) + .addBus("SHELL3", new BusAnimationSequence().addPos(2, -4, -2, 0)) + .addBus("SHELL4", new BusAnimationSequence().addPos(2, -4, -2, 0)); + if(ammo == 1) return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 100)) + .addBus("BREAK", new BusAnimationSequence().addPos(0, 0, 0, 100).addPos(60, 0, 0, 350, IType.SIN_DOWN)) + .addBus("SHELL1", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL2", new BusAnimationSequence().addPos(2, -4, -2, 0).addPos(2, -4, -2, 400).addPos(0, 0, -2, 450, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)) + .addBus("SHELL3", new BusAnimationSequence().addPos(2, -4, -2, 0)) + .addBus("SHELL4", new BusAnimationSequence().addPos(2, -4, -2, 0)); + if(ammo == 2) return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 100)) + .addBus("BREAK", new BusAnimationSequence().addPos(0, 0, 0, 100).addPos(60, 0, 0, 350, IType.SIN_DOWN)) + .addBus("SHELL1", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL2", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL3", new BusAnimationSequence().addPos(2, -4, -2, 0).addPos(2, -4, -2, 400).addPos(0, 0, -2, 450, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)) + .addBus("SHELL4", new BusAnimationSequence().addPos(2, -4, -2, 0)); + if(ammo == 3) return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 100)) + .addBus("BREAK", new BusAnimationSequence().addPos(0, 0, 0, 100).addPos(60, 0, 0, 350, IType.SIN_DOWN)) + .addBus("SHELL1", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL2", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL3", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL4", new BusAnimationSequence().addPos(2, -4, -2, 0).addPos(2, -4, -2, 400).addPos(0, 0, -2, 450, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)); + case RELOAD_CYCLE: + if(ammo == 0) return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 0)) + .addBus("BREAK", new BusAnimationSequence().addPos(60, 0, 0, 0)) + .addBus("SHELL1", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL2", new BusAnimationSequence().addPos(2, -4, -2, 0).addPos(0, 0, -2, 450, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)) + .addBus("SHELL3", new BusAnimationSequence().addPos(2, -4, -2, 0)) + .addBus("SHELL4", new BusAnimationSequence().addPos(2, -4, -2, 0)); + if(ammo == 1) return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 0)) + .addBus("BREAK", new BusAnimationSequence().addPos(60, 0, 0, 0)) + .addBus("SHELL1", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL2", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL3", new BusAnimationSequence().addPos(2, -4, -2, 0).addPos(0, 0, -2, 450, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)) + .addBus("SHELL4", new BusAnimationSequence().addPos(2, -4, -2, 0)); + if(ammo == 2) return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 0)) + .addBus("BREAK", new BusAnimationSequence().addPos(60, 0, 0, 0)) + .addBus("SHELL1", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL2", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL3", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus("SHELL4", new BusAnimationSequence().addPos(2, -4, -2, 0).addPos(0, 0, -2, 450, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)); + return null; + case RELOAD_END: return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 0).addPos(15, 0, 0, 250).addPos(0, 0, 0, 50)) + .addBus("BREAK", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 250, IType.SIN_UP)) + .addBus(ammo >= 0 ? "SHELL1" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo >= 1 ? "SHELL2" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo >= 2 ? "SHELL3" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo >= 3 ? "SHELL4" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo < 0 ? "SHELL1" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) + .addBus(ammo < 1 ? "SHELL2" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) + .addBus(ammo < 2 ? "SHELL3" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) + .addBus(ammo < 3 ? "SHELL4" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)); + case JAMMED: return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 0).addPos(15, 0, 0, 250).addPos(0, 0, 0, 50).addPos(0, 0, 0, 550).addPos(15, 0, 0, 100).addPos(15, 0, 0, 600).addPos(0, 0, 0, 50)) + .addBus("BREAK", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 250, IType.SIN_UP).addPos(0, 0, 0, 600).addPos(45, 0, 0, 250, IType.SIN_DOWN).addPos(45, 0, 0, 300).addPos(0, 0, 0, 150, IType.SIN_UP)) + .addBus(ammo >= 0 ? "SHELL1" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo >= 1 ? "SHELL2" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo >= 2 ? "SHELL3" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo >= 3 ? "SHELL4" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo < 0 ? "SHELL1" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) + .addBus(ammo < 1 ? "SHELL2" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) + .addBus(ammo < 2 ? "SHELL3" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) + .addBus(ammo < 3 ? "SHELL4" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)); + case INSPECT: return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(15, 0, 0, 100).addPos(15, 0, 0, 1100).addPos(0, 0, 0, 50)) + .addBus("BREAK", new BusAnimationSequence().addPos(0, 0, 0, 100).addPos(60, 0, 0, 350, IType.SIN_DOWN).addPos(60, 0, 0, 500).addPos(0, 0, 0, 250, IType.SIN_UP)) + .addBus(ammo > 0 ? "SHELL1" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo > 1 ? "SHELL2" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo > 2 ? "SHELL3" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo > 3 ? "SHELL4" : "NULL", new BusAnimationSequence().addPos(0, 0, 0, 0)) + .addBus(ammo < 1 ? "SHELL1" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) + .addBus(ammo < 2 ? "SHELL2" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) + .addBus(ammo < 3 ? "SHELL3" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)) + .addBus(ammo < 4 ? "SHELL4" : "NULL", new BusAnimationSequence().addPos(2, -8, -2, 0)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SPAS_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(0, 0, -3, 500, IType.SIN_DOWN)); + case CYCLE: return ResourceManager.spas_12_anim.get("Fire"); + case CYCLE_DRY: return ResourceManager.spas_12_anim.get("FireDry"); + case ALT_CYCLE: return ResourceManager.spas_12_anim.get("FireAlt"); + case RELOAD: + boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; + return ResourceManager.spas_12_anim.get(empty ? "ReloadEmptyStart" : "ReloadStart"); + case RELOAD_CYCLE: return ResourceManager.spas_12_anim.get("Reload"); + case RELOAD_END: return ResourceManager.spas_12_anim.get("ReloadEnd"); + case JAMMED: return ResourceManager.spas_12_anim.get("Jammed"); + case INSPECT: return ResourceManager.spas_12_anim.get("Inspect"); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SHREDDER_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -1, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 18, 100)); + case CYCLE_DRY: return new BusAnimation() + .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 18, 100)); + case RELOAD: return new BusAnimation() + .addBus("MAG", new BusAnimationSequence().addPos(0, -8, 0, 250, IType.SIN_UP).addPos(0, -8, 0, 1000).addPos(0, 0, 0, 300)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(-25, 0, 0, 300, IType.SIN_FULL).addPos(-25, 0, 0, 500).addPos(-27, 0, 0, 100, IType.SIN_DOWN).addPos(-25, 0, 0, 100, IType.SIN_FULL).addPos(-25, 0, 0, 150).addPos(0, 0, 0, 300, IType.SIN_FULL)); + case JAMMED: return new BusAnimation() + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, -2, 0, 150, IType.SIN_UP).addPos(0, 0, 0, 100)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("MAG", new BusAnimationSequence() + .addPos(0, -1, 0, 150).addPos(6, -1, 0, 150).addPos(6, 12, 0, 350, IType.SIN_DOWN).addPos(6, -2, 0, 350, IType.SIN_UP).addPos(6, -1, 0, 50) + .addPos(6, -1, 0, 100).addPos(0, -1, 0, 150, IType.SIN_FULL).addPos(0, 0, 0, 150, IType.SIN_UP)) + .addBus("SPEEN", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(360, 0, 0, 700)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 1450).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SEXY_ANIMS = (stack, type) -> { + switch(type) { + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -1, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 18, 50)); + case CYCLE_DRY: return new BusAnimation() + .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 18, 50)); + } + + return LAMBDA_SHREDDER_ANIMS.apply(stack, type); + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java new file mode 100644 index 000000000..78c3fa8ca --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java @@ -0,0 +1,103 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.config.ClientConfig; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.main.ResourceManager; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; + +public class XFactory22lr { + + public static BulletConfig p22_sp; + public static BulletConfig p22_fmj; + public static BulletConfig p22_jhp; + public static BulletConfig p22_ap; + + public static void init() { + SpentCasing casing22 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(0.5F); + p22_sp = new BulletConfig().setItem(EnumAmmo.P22_SP).setKnockback(0F) + .setCasing(casing22.clone().register("p22")); + p22_fmj = new BulletConfig().setItem(EnumAmmo.P22_FMJ).setKnockback(0F).setDamage(0.8F).setThresholdNegation(1F).setArmorPiercing(0.1F) + .setCasing(casing22.clone().register("p22fmj")); + p22_jhp = new BulletConfig().setItem(EnumAmmo.P22_JHP).setKnockback(0F).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + .setCasing(casing22.clone().register("p22jhp")); + p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setKnockback(0F).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(2.5F).setArmorPiercing(0.15F) + .setCasing(casing22.clone().setColor(SpentCasing.COLOR_CASE_44).register("p22ap")); + + ModItems.gun_am180 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(177 * 25).draw(15).inspect(38).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(2F).delay(1).dry(10).auto(true).spread(0.02F).reload(66).jam(30).sound("hbm:weapon.fire.silenced", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 177).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap)) + .offset(1, -0.0625 * 1.5, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_AM180)) + .setupStandardConfiguration() + .anim(LAMBDA_AM180_ANIMS).orchestra(Orchestras.ORCHESTRA_AM180) + ).setUnlocalizedName("gun_am180"); + } + + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { + Lego.handleStandardSmoke(ctx.entity, stack, 3000, 0.05D, 1.1D, 0); + }; + + public static BiConsumer LAMBDA_RECOIL_AM180 = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_AM180_ANIMS = (stack, type) -> { + if(ClientConfig.GUN_ANIMS_LEGACY.get()) { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.125 : -0.25, 15, IType.SIN_DOWN).addPos(0, 0, 0, 35, IType.SIN_FULL)); + case CYCLE_DRY: return new BusAnimation() + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 550).addPos(0, 0, -1.5, 100, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(0, 0, 15, 250, IType.SIN_FULL).addPos(0, 0, 15, 400).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case RELOAD: + return new BusAnimation() + .addBus("MAGTURN", new BusAnimationSequence().addPos(15, 0, 0, 250, IType.SIN_FULL).addPos(15, 0, 0, 250).addPos(15, 0, 70, 300, IType.SIN_FULL).addPos(15, 0, 0, 0).addPos(15, 0, 0, 750).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(2, 0, -4, 250, IType.SIN_FULL).addPos(-10, 2, -4, 300, IType.SIN_UP).addPos(3, -6, -4, 0).addPos(2, 0, -4, 500, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 2250).addPos(0, 0, -1.5, 100, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 2000).addPos(0, 0, 15, 250, IType.SIN_FULL).addPos(0, 0, 15, 400).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case JAMMED: return new BusAnimation() + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(0, 0, -1.5, 100, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 45, 250, IType.SIN_FULL).addPos(0, 0, 45, 400).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("MAGTURN", new BusAnimationSequence().addPos(15, 0, 0, 250, IType.SIN_FULL).addPos(15, 0, 0, 1400).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(4, -1, -4, 200, IType.SIN_FULL).addPos(4, -1.5, -4, 50).addPos(4, 0, -4, 100).addPos(4, 6, -4, 250, IType.SIN_DOWN).addPos(4, 0, -4, 150, IType.SIN_UP).addPos(4, -1, -4, 100, IType.SIN_DOWN).addPos(4, -1, -4, 250).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("MAGSPIN", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-400, 0, 0, 500, IType.SIN_FULL).addPos(-400, 0, 0, 250).addPos(-360, 0, 0, 250)); + } + } else { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return ResourceManager.am180_anim.get("Fire"); + case CYCLE_DRY: return ResourceManager.am180_anim.get("FireDry"); + case RELOAD: return ResourceManager.am180_anim.get("Reload"); + case JAMMED: return ResourceManager.am180_anim.get("Jammed"); + case INSPECT: return ResourceManager.am180_anim.get("Inspect"); + } + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java new file mode 100644 index 000000000..e99c6d6a4 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java @@ -0,0 +1,136 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; + +public class XFactory357 { + + public static BulletConfig m357_bp; + public static BulletConfig m357_sp; + public static BulletConfig m357_fmj; + public static BulletConfig m357_jhp; + public static BulletConfig m357_ap; + public static BulletConfig m357_express; + + public static void init() { + m357_bp = new BulletConfig().setItem(EnumAmmo.M357_BP).setDamage(0.75F).setBlackPowder(true); + m357_sp = new BulletConfig().setItem(EnumAmmo.M357_SP); + m357_fmj = new BulletConfig().setItem(EnumAmmo.M357_FMJ).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F); + m357_jhp = new BulletConfig().setItem(EnumAmmo.M357_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F); + m357_ap = new BulletConfig().setItem(EnumAmmo.M357_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(5F).setArmorPiercing(0.15F); + m357_express = new BulletConfig().setItem(EnumAmmo.M357_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(2F).setArmorPiercing(0.1F).setWear(1.5F); + + ModItems.gun_light_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(7.5F).delay(16).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) + .offset(0.75, -0.0625, -0.3125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_ATLAS)) + .setupStandardConfiguration() + .anim(LAMBDA_ATLAS_ANIMS).orchestra(Orchestras.ORCHESTRA_ATLAS) + ).setUnlocalizedName("gun_light_revolver"); + ModItems.gun_light_revolver_atlas = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig() + .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(12.5F).delay(16).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) + .offset(0.75, -0.0625, -0.3125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_ATLAS)) + .setupStandardConfiguration() + .anim(LAMBDA_ATLAS_ANIMS).orchestra(Orchestras.ORCHESTRA_ATLAS) + ).setUnlocalizedName("gun_light_revolver_atlas"); + ModItems.gun_light_revolver_dani = new ItemGunBaseNT(WeaponQuality.LEGENDARY, + new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(15F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 1.1F) + .mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) + .offset(0.75, -0.0625, 0.3125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_DANI)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI), + new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(15F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 0.9F) + .mag(new MagazineFullReload(1, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) + .offset(0.75, -0.0625, -0.3125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_DANI)) + .ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI) + ).setUnlocalizedName("gun_light_revolver_dani"); + } + + public static BiConsumer LAMBDA_RECOIL_ATLAS = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_DANI = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.75)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_ATLAS_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 350, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 550).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0, 1, 200)); + case CYCLE_DRY: return new BusAnimation() + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 550).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0, 1, 200)); + case RELOAD: return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(0, 0, 90, 300).addPos(0, 0, 90, 2000).addPos(0, 0, 0, 150)) + .addBus("FRONT", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(0, 0, 45, 150).addPos(0, 0, 45, 2000).addPos(0, 0, 0, 75)) + .addBus("RELOAD_ROT", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(60, 0, 0, 500).addPos(60, 0, 0, 500).addPos(0, -90, -90, 0).addPos(0, -90, -90, 600).addPos(0, 0, 0, 300).addPos(0, 0, 0, 100).addPos(-45, 0, 0, 50).addPos(-45, 0, 0, 100).addPos(0, 0, 0, 300)) + .addBus("RELOAD_MOVE", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(0, -15, 0, 1000).addPos(0, 0, 0, 450)) + .addBus("DRUM_PUSH", new BusAnimationSequence().addPos(0, 0, 0, 1600).addPos(0, 0, -5, 0).addPos(0, 0, 0, 300)); + case INSPECT: return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(0, 0, 90, 300).addPos(0, 0, 90, 1000).addPos(0, 0, 0, 150)) + .addBus("FRONT", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(0, 0, 45, 150).addPos(0, 0, 45, 1000).addPos(0, 0, 0, 75)) + .addBus("RELOAD_ROT", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(45, 0, 0, 500, IType.SIN_FULL).addPos(45, 0, 0, 500).addPos(-45, 0, 0, 50).addPos(-45, 0, 0, 100).addPos(0, 0, 0, 300)) + .addBus("RELOAD_MOVE", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(0, -2.5, 0, 500, IType.SIN_FULL).addPos(0, -2.5, 0, 500).addPos(0, 0, 0, 350)); + case JAMMED: return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 90, 300).addPos(0, 0, 90, 1000).addPos(0, 0, 0, 150)) + .addBus("FRONT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 200).addPos(0, 0, 45, 150).addPos(0, 0, 45, 1000).addPos(0, 0, 0, 75)) + .addBus("RELOAD_ROT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 300).addPos(45, 0, 0, 500, IType.SIN_FULL).addPos(45, 0, 0, 500).addPos(-45, 0, 0, 50).addPos(-45, 0, 0, 100).addPos(0, 0, 0, 300)) + .addBus("RELOAD_MOVE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 300).addPos(0, -2.5, 0, 500, IType.SIN_FULL).addPos(0, -2.5, 0, 500).addPos(0, 0, 0, 350)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_DANI_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation().addBus("EQUIP", new BusAnimationSequence().addPos(360 * 3, 0, 0, 1000, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 300).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(0, 0, 1, 200)); + case CYCLE_DRY: return new BusAnimation() + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 200).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(0, 0, 1, 200)); + } + + return LAMBDA_ATLAS_ANIMS.apply(stack, type); + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java new file mode 100644 index 000000000..e85ba975f --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java @@ -0,0 +1,223 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Consumer; + +import com.hbm.entity.effect.EntityFireLingering; +import com.hbm.entity.logic.EntityC130; +import com.hbm.entity.logic.EntityC130.C130PayloadType; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.util.EntityDamageUtil; +import com.hbm.util.TrackerUtil; +import com.hbm.util.DamageResistanceHandler.DamageClass; +import com.hbm.world.WorldUtil; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class XFactory40mm { + + public static BulletConfig g26_flare; + public static BulletConfig g26_flare_supply; + public static BulletConfig g26_flare_weapon; + + public static BulletConfig g40_he; + public static BulletConfig g40_heat; + public static BulletConfig g40_demo; + public static BulletConfig g40_inc; + public static BulletConfig g40_phosphorus; + + public static BiConsumer LAMBDA_STANDARD_IGNITE = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + if(mop.entityHit instanceof EntityLivingBase) { + HbmLivingProps props = HbmLivingProps.getData((EntityLivingBase) mop.entityHit); + props.fire += 200; + } + } + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> { + Lego.standardExplode(bullet, mop, 5F); bullet.setDead(); + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_HEAT = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + Lego.standardExplode(bullet, mop, 3.5F); bullet.setDead(); + if(mop.typeOfHit == mop.typeOfHit.ENTITY && mop.entityHit instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) mop.entityHit; + EntityDamageUtil.attackEntityFromNT(living, bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F, true, true, 0.5F, 3F, 0.15F); + } else if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + mop.entityHit.attackEntityFrom(bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F); + } + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F, bullet.getThrower()); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); + bullet.setDead(); + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_INC = (bullet, mop) -> { + spawnFire(bullet, mop, false, 200); + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_PHOSPHORUS = (bullet, mop) -> { + spawnFire(bullet, mop, true, 400); + }; + + public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, boolean phosphorus, int duration) { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + World world = bullet.worldObj; + Lego.standardExplode(bullet, mop, 3F); + EntityFireLingering fire = new EntityFireLingering(world).setArea(5, 2).setDuration(duration).setType(phosphorus ? EntityFireLingering.TYPE_PHOSPHORUS : EntityFireLingering.TYPE_DIESEL); + fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + world.spawnEntityInWorld(fire); + bullet.setDead(); + for(int dx = -1; dx <= 1; dx++) { + for(int dy = -1; dy <= 1; dy++) { + for(int dz = -1; dz <= 1; dz++) { + int x = (int) Math.floor(mop.hitVec.xCoord) + dx; + int y = (int) Math.floor(mop.hitVec.yCoord) + dy; + int z = (int) Math.floor(mop.hitVec.zCoord) + dz; + if(world.getBlock(x, y, z).isAir(bullet.worldObj, x, y, z)) for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isFlammable(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite())) { + world.setBlock(x, y, z, Blocks.fire); + break; + } + } + } + } + } + } + + public static Consumer LAMBDA_SPAWN_C130_SUPPLIESS = (entity) -> { spawnPlane(entity, C130PayloadType.SUPPLIES); }; + public static Consumer LAMBDA_SPAWN_C130_WEAPONS = (entity) -> { spawnPlane(entity, C130PayloadType.WEAPONS); }; + + public static void spawnPlane(Entity entity, C130PayloadType payload) { + if(!entity.worldObj.isRemote && entity.ticksExisted == 40) { + EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; + if(bullet.getThrower() != null) bullet.worldObj.playSoundAtEntity(bullet.getThrower(), "hbm:item.techBleep", 1.0F, 1.0F); + EntityC130 c130 = new EntityC130(bullet.worldObj); + int x = (int) Math.floor(bullet.posX); + int z = (int) Math.floor(bullet.posZ); + int y = bullet.worldObj.getHeightValue(x, z); + c130.fac(bullet.worldObj, x, y, z, payload); + WorldUtil.loadAndSpawnEntityInWorld(c130); + TrackerUtil.setTrackingRange(bullet.worldObj, c130, 250); + } + } + + public static void init() { + + g26_flare = new BulletConfig().setItem(EnumAmmo.G26_FLARE).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x9E1616).setScale(2F).register("g26Flare")); + g26_flare_supply = new BulletConfig().setItem(EnumAmmo.G26_FLARE_SUPPLY).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_SUPPLIESS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x3C80F0).setScale(2F).register("g26FlareSupply")); + g26_flare_weapon = new BulletConfig().setItem(EnumAmmo.G26_FLARE_WEAPON).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_WEAPONS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x278400).setScale(2F).register("g26FlareWeapon")); + + BulletConfig g40_base = new BulletConfig().setLife(200).setVel(2F).setGrav(0.035D); + g40_he = g40_base.clone().setItem(EnumAmmo.G40_HE).setOnImpact(LAMBDA_STANDARD_EXPLODE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x777777).setScale(2, 2F, 1.5F).register("g40")); + g40_heat = g40_base.clone().setItem(EnumAmmo.G40_HEAT).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT).setDamage(0.5F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x5E6854).setScale(2, 2F, 1.5F).register("g40heat")); + g40_demo = g40_base.clone().setItem(EnumAmmo.G40_DEMO).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE30000).setScale(2, 2F, 1.5F).register("g40demo")); + g40_inc = g40_base.clone().setItem(EnumAmmo.G40_INC).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE86F20).setScale(2, 2F, 1.5F).register("g40inc")); + g40_phosphorus = g40_base.clone().setItem(EnumAmmo.G40_PHOSPHORUS).setOnImpact(LAMBDA_STANDARD_EXPLODE_PHOSPHORUS).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xC8C8C8).setScale(2, 2F, 1.5F).register("g40phos")); + + ModItems.gun_flaregun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(100).draw(7).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(15F).delay(20).reload(28).jam(33).sound("hbm:weapon.hkShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(g26_flare, g26_flare_supply, g26_flare_weapon)) + .offset(0.75, -0.0625, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_GL)) + .setupStandardConfiguration() + .anim(LAMBDA_FLAREGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAREGUN) + ).setUnlocalizedName("gun_flaregun"); + + ModItems.gun_congolake = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(400).draw(7).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(20F).delay(24).reload(16, 16, 16, 0).jam(0).sound("hbm:weapon.glShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 4).addConfigs(g40_he, g40_heat, g40_demo, g40_inc, g40_phosphorus)) + .offset(0.75, -0.0625, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_GL)) + .setupStandardConfiguration() + .anim(LAMBDA_CONGOLAKE_ANIMS).orchestra(Orchestras.ORCHESTRA_CONGOLAKE) + ).setUnlocalizedName("gun_congolake"); + } + + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { + Lego.handleStandardSmoke(ctx.entity, stack, 1500, 0.025D, 1.05D, 0); + }; + + public static BiConsumer LAMBDA_RECOIL_GL = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FLAREGUN_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 350, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) + .addBus("HAMMER", new BusAnimationSequence().addPos(15, 0, 0, 50).addPos(15, 0, 0, 550).addPos(0, 0, 0, 100)); + case CYCLE_DRY: return new BusAnimation() + .addBus("HAMMER", new BusAnimationSequence().addPos(15, 0, 0, 50).addPos(15, 0, 0, 550).addPos(0, 0, 0, 100)); + case RELOAD: return new BusAnimation() + .addBus("OPEN", new BusAnimationSequence().addPos(45, 0, 0, 200, IType.SIN_FULL).addPos(45, 0, 0, 750).addPos(0, 0, 0, 200, IType.SIN_UP)) + .addBus("SHELL", new BusAnimationSequence().addPos(4, -8, -4, 0).addPos(4, -8, -4, 200).addPos(0, 0, -5, 500, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)) + .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(25, 0, 0, 200, IType.SIN_DOWN).addPos(25, 0, 0, 800).addPos(0, 0, 0, 200, IType.SIN_DOWN)); + case JAMMED: return new BusAnimation() + .addBus("OPEN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(45, 0, 0, 200, IType.SIN_FULL).addPos(45, 0, 0, 500).addPos(0, 0, 0, 200, IType.SIN_UP)) + .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 200).addPos(25, 0, 0, 200, IType.SIN_DOWN).addPos(25, 0, 0, 550).addPos(0, 0, 0, 200, IType.SIN_DOWN)); + case INSPECT: return new BusAnimation() + .addBus("FLIP", new BusAnimationSequence().addPos(-360 * 3, 0, 0, 1500, IType.SIN_FULL)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CONGOLAKE_ANIMS = (stack, type) -> { + int ammo = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); + switch(type) { + case EQUIP: return ResourceManager.congolake_anim.get("Equip"); + case CYCLE: return ResourceManager.congolake_anim.get(ammo <= 1 ? "FireEmpty" : "Fire"); + case RELOAD: return ResourceManager.congolake_anim.get(ammo == 0 ? "ReloadEmpty": "ReloadStart"); + case RELOAD_CYCLE: return ResourceManager.congolake_anim.get("Reload"); + case RELOAD_END: return ResourceManager.congolake_anim.get("ReloadEnd"); + case JAMMED: return ResourceManager.congolake_anim.get("Jammed"); + case INSPECT: return ResourceManager.congolake_anim.get("Inspect"); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java new file mode 100644 index 000000000..a86c9f699 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java @@ -0,0 +1,260 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.entity.projectile.EntityBoxcar; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityTorpedo; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.lib.RefStrings; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.ResourceLocation; + +public class XFactory44 { + + public static final ResourceLocation scope_lilmac = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_44.png"); + + public static BulletConfig m44_bp; + public static BulletConfig m44_sp; + public static BulletConfig m44_fmj; + public static BulletConfig m44_jhp; + public static BulletConfig m44_ap; + public static BulletConfig m44_express; + public static BulletConfig m44_equestrian_pip; + public static BulletConfig m44_equestrian_mn7; + + public static BiConsumer LAMBDA_BOXCAR = (bullet, mop) -> { + EntityBoxcar pippo = new EntityBoxcar(bullet.worldObj); + pippo.posX = mop.hitVec.xCoord; + pippo.posY = mop.hitVec.yCoord + 50; + pippo.posZ = mop.hitVec.zCoord;; + bullet.worldObj.spawnEntityInWorld(pippo); + bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F); + bullet.setDead(); + }; + + public static BiConsumer LAMBDA_TORPEDO = (bullet, mop) -> { + EntityTorpedo pippo = new EntityTorpedo(bullet.worldObj); + pippo.posX = mop.hitVec.xCoord; + pippo.posY = mop.hitVec.yCoord + 50; + pippo.posZ = mop.hitVec.zCoord;; + bullet.worldObj.spawnEntityInWorld(pippo); + //bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F); + bullet.setDead(); + }; + + public static void init() { + SpentCasing casing44 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20); + m44_bp = new BulletConfig().setItem(EnumAmmo.M44_BP).setDamage(0.75F).setBlackPowder(true) + .setCasing(casing44.clone().register("m44bp")); + m44_sp = new BulletConfig().setItem(EnumAmmo.M44_SP) + .setCasing(casing44.clone().register("m44")); + m44_fmj = new BulletConfig().setItem(EnumAmmo.M44_FMJ).setDamage(0.8F).setThresholdNegation(3F).setArmorPiercing(0.1F) + .setCasing(casing44.clone().register("m44fmj")); + m44_jhp = new BulletConfig().setItem(EnumAmmo.M44_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + .setCasing(casing44.clone().register("m44jhp")); + m44_ap = new BulletConfig().setItem(EnumAmmo.M44_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(7.5F).setArmorPiercing(0.15F) + .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_44).register("m44ap")); + m44_express = new BulletConfig().setItem(EnumAmmo.M44_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(3F).setArmorPiercing(0.1F).setWear(1.5F) + .setCasing(casing44.clone().register("m44express")); + m44_equestrian_pip = new BulletConfig().setItem(EnumAmmoSecret.M44_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_BOXCAR) + .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("m44equestrianPip")); + m44_equestrian_mn7 = new BulletConfig().setItem(EnumAmmoSecret.M44_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_TORPEDO) + .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("m44equestrianMn7")); + + ModItems.gun_henry = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(300).draw(15).inspect(23).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(10F).delay(20).reload(25, 11, 14, 8).jam(45).sound("hbm:weapon.fire.rifle", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 14).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .offset(0.75, -0.0625, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_HENRY)) + .setupStandardConfiguration() + .anim(LAMBDA_HENRY_ANIMS).orchestra(Orchestras.ORCHESTRA_HENRY) + ).setUnlocalizedName("gun_henry"); + + ModItems.gun_heavy_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(600).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(15F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .offset(0.75, -0.0625, -0.3125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP)) + .setupStandardConfiguration() + .anim(LAMBDA_NOPIP_ANIMS).orchestra(Orchestras.ORCHESTRA_NOPIP) + ).setUnlocalizedName("gun_heavy_revolver"); + ModItems.gun_heavy_revolver_lilmac = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).scopeTexture(scope_lilmac).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(30F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian_pip, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .offset(0.75, -0.0625, -0.3125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP)) + .setupStandardConfiguration() + .anim(LAMBDA_LILMAC_ANIMS).orchestra(Orchestras.ORCHESTRA_NOPIP) + ).setUnlocalizedName("gun_heavy_revolver_lilmac"); + ModItems.gun_heavy_revolver_protege = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(30F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 0.8F) + .mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian_mn7, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .offset(0.75, -0.0625, -0.3125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP)) + .setupStandardConfiguration() + .anim(LAMBDA_LILMAC_ANIMS).orchestra(Orchestras.ORCHESTRA_NOPIP) + ).setUnlocalizedName("gun_heavy_revolver_protege"); + + ModItems.gun_hangman = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(600).draw(10).inspect(31).inspectCancel(false).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(25F).delay(10).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 8).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_HANGMAN)) + .setupStandardConfiguration().ps(SMACK_A_FUCKER) + .anim(LAMBDA_HANGMAN_ANIMS).orchestra(Orchestras.ORCHESTRA_HANGMAN) + ).setUnlocalizedName("gun_hangman"); + } + + public static BiConsumer SMACK_A_FUCKER = (stack, ctx) -> { + if(ItemGunBaseNT.getState(stack, ctx.configIndex) == GunState.IDLE || ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) == AnimType.CYCLE) { + ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.DRAWING); + ItemGunBaseNT.setTimer(stack, ctx.configIndex, ctx.config.getInspectDuration(stack)); + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.INSPECT, ctx.configIndex); + } + }; + + public static BiConsumer LAMBDA_RECOIL_HENRY = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1)); + }; + + public static BiConsumer LAMBDA_RECOIL_NOPIP = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_HANGMAN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_HENRY_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, -3, 350, IType.SIN_DOWN)) + .addBus("SIGHT", new BusAnimationSequence().addPos(80, 0, 0, 0).addPos(80, 0, 0, 500).addPos(0, 0, -3, 250, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -1, 50).addPos(0, 0, 0, 250)) + .addBus("SIGHT", new BusAnimationSequence().addPos(35, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-90, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0, 45, 200, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)) + .addBus("HAMMER", new BusAnimationSequence().addPos(30, 0, 0, 50).addPos(30, 0, 0, 550).addPos(0, 0, 0, 200)); + case CYCLE_DRY: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-90, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0, 45, 200, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)) + .addBus("HAMMER", new BusAnimationSequence().addPos(30, 0, 0, 50).addPos(30, 0, 0, 550).addPos(0, 0, 0, 200)); + case RELOAD: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(-60, 0, 0, 400, IType.SIN_FULL)) + .addBus("TWIST", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -90, 200, IType.SIN_FULL)) + .addBus("BULLET", new BusAnimationSequence().addPos(0, 0, 0, 700).addPos(3, 0, -6, 0).addPos(0, 0, 1, 300, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case RELOAD_CYCLE: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(-60, 0, 0, 0)) + .addBus("TWIST", new BusAnimationSequence().addPos(0, 0, -90, 0)) + .addBus("BULLET", new BusAnimationSequence().addPos(3, 0, -6, 0).addPos(0, 0, 1, 300, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case RELOAD_END: + boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmountBeforeReload(stack) <= 0; + return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(-60, 0, 0, 300).addPos(0, 0, 0, 400, IType.SIN_FULL)) + .addBus("TWIST", new BusAnimationSequence().addPos(0, 0, -90, 0).addPos(0, 0, 0, 200, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 700).addPos(empty ? -90 : 0, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 700).addPos(0, 0, empty ? 45 : 0, 200, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)); + case JAMMED: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(-60, 0, 0, 300).addPos(0, 0, 0, 400, IType.SIN_FULL)) + .addBus("TWIST", new BusAnimationSequence().addPos(0, 0, -90, 0).addPos(0, 0, 0, 200, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 700).addPos(-90, 0, 0, 200).addPos(0, 0, 0, 200).addPos(0, 0, 0, 500).addPos(-90, 0, 0, 200).addPos(0, 0, 0, 200).addPos(0, 0, 0, 200).addPos(-90, 0, 0, 200).addPos(0, 0, 0, 200)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 700).addPos(0, 0, 45, 200, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP).addPos(0, 0, 0, 500).addPos(0, 0, 45, 200, IType.SIN_FULL).addPos(0, 0, 45, 600).addPos(0, 0, 0, 200, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("YEET", new BusAnimationSequence().addPos(0, 2, 0, 200, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)) + .addBus("ROLL", new BusAnimationSequence().addPos(0, 0, 360, 400)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_NOPIP_ANIMS = (stack, type) -> { + switch(type) { + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 400).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 450).addPos(0, 0, 1, 200)); + case CYCLE_DRY: return new BusAnimation() + .addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 300 + 100).addPos(0, 0, 0, 200)) + .addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 450).addPos(0, 0, 1, 200)); + case EQUIP: return new BusAnimation().addBus("ROTATE", new BusAnimationSequence().addPos(90, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case RELOAD: return new BusAnimation() + .addBus("RELAOD_TILT", new BusAnimationSequence().addPos(-15, 0, 0, 100).addPos(65, 0, 0, 100).addPos(45, 0, 0, 50).addPos(0, 0, 0, 200).addPos(0, 0, 0, 1450).addPos(-80, 0, 0, 100).addPos(-80, 0, 0, 100).addPos(0, 0, 0, 200)) + .addBus("RELOAD_CYLINDER", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(90, 0, 0, 100).addPos(90, 0, 0, 1700).addPos(0, 0, 0, 70)) + .addBus("RELOAD_LIFT", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(-45, 0, 0, 250).addPos(-45, 0, 0, 350).addPos(-15, 0, 0, 200).addPos(-15, 0, 0, 1050).addPos(0, 0, 0, 100)) + .addBus("RELOAD_JOLT", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(2, 0, 0, 50).addPos(0, 0, 0, 100)) + .addBus("RELOAD_BULLETS", new BusAnimationSequence().addPos(0, 0, 0, 650).addPos(10, 0, 0, 300).addPos(10, 0, 0, 200).addPos(0, 0, 0, 700)) + .addBus("RELOAD_BULLETS_CON", new BusAnimationSequence().addPos(1, 0, 0, 0).addPos(1, 0, 0, 950).addPos(0, 0, 0, 1 ) ); + case INSPECT: + case JAMMED: return new BusAnimation() + .addBus("RELAOD_TILT", new BusAnimationSequence().addPos(-15, 0, 0, 100).addPos(65, 0, 0, 100).addPos(45, 0, 0, 50).addPos(0, 0, 0, 200).addPos(0, 0, 0, 200).addPos(-80, 0, 0, 100).addPos(-80, 0, 0, 100).addPos(0, 0, 0, 200)) + .addBus("RELOAD_CYLINDER", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(90, 0, 0, 100).addPos(90, 0, 0, 450).addPos(0, 0, 0, 70)); + } + + return null; + }; + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LILMAC_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation().addBus("SPIN", new BusAnimationSequence().addPos(-360, 0, 0, 350)); + } + + return LAMBDA_NOPIP_ANIMS.apply(stack, type); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_HANGMAN_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation().addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)); + case RELOAD: return new BusAnimation() + .addBus("LID", new BusAnimationSequence().addPos(0, 0, -90, 250).addPos(0, 0, -90, 1500).addPos(0, 0, 0, 250)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, -10, 0, 250, IType.SIN_UP).addPos(0, -10, 0, 500).addPos(0, 0, 0, 350, IType.SIN_FULL)) + .addBus("BULLETS", new BusAnimationSequence().addPos(1, 1, 1, 0).addPos(0, 0, 0, 500)) + .addBus("EQUIP", new BusAnimationSequence().addPos(-15, 0, 0, 500, IType.SIN_FULL).addPos(-15, 0, 0, 850).addPos(-25, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 350, IType.SIN_FULL)) + .addBus("ROLL", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 25, 250, IType.SIN_FULL).addPos(0, 0, 25, 1000).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("TURN", new BusAnimationSequence().addPos(0, 170, 0, 500, IType.SIN_UP).addPos(0, 170, 0, 550).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("ROLL", new BusAnimationSequence().addPos(0, 0, 110, 500, IType.SIN_FULL).addPos(0, 0, 110, 550).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("SMACK", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 1, 150, IType.SIN_DOWN).addPos(0, 0, -3, 150, IType.SIN_UP).addPos(0, 0, 0, 350, IType.SIN_FULL)); + case JAMMED: return new BusAnimation() + .addBus("LID", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -90, 250).addPos(0, 0, -90, 300).addPos(0, 0, 0, 250)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 250).addPos(0, -3, 0, 150, IType.SIN_UP).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(-10, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 350, IType.SIN_FULL)) + .addBus("ROLL", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 25, 250, IType.SIN_FULL).addPos(0, 0, 25, 300).addPos(0, 0, 0, 250, IType.SIN_FULL)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java new file mode 100644 index 000000000..1a168715f --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -0,0 +1,76 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineBelt; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; + +public class XFactory50 { + + public static BulletConfig bmg50_sp; + public static BulletConfig bmg50_fmj; + public static BulletConfig bmg50_jhp; + public static BulletConfig bmg50_ap; + public static BulletConfig bmg50_du; + + public static void init() { + SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1.5F); + bmg50_sp = new BulletConfig().setItem(EnumAmmo.BMG50_SP) + .setCasing(casing762.clone().register("bmg50")); + bmg50_fmj = new BulletConfig().setItem(EnumAmmo.BMG50_FMJ).setDamage(0.8F).setThresholdNegation(7F).setArmorPiercing(0.1F) + .setCasing(casing762.clone().register("bmg50fmj")); + bmg50_jhp = new BulletConfig().setItem(EnumAmmo.BMG50_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + .setCasing(casing762.clone().register("bmg50jhp")); + bmg50_ap = new BulletConfig().setItem(EnumAmmo.BMG50_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(17.5F).setArmorPiercing(0.15F) + .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50ap")); + bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(21F).setArmorPiercing(0.25F) + .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50du")); + + ModItems.gun_m2 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(3_000).draw(10).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(7.5F).delay(2).dry(10).auto(true).spread(0.005F).sound("hbm:turret.chekhov_fire", 1.0F, 1.0F) + .mag(new MagazineBelt().addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_M2)) + .setupStandardConfiguration() + .anim(LAMBDA_M2_ANIMS).orchestra(Orchestras.ORCHESTRA_M2) + ).setUnlocalizedName("gun_m2"); + } + + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { + Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, 0); + }; + + public static BiConsumer LAMBDA_RECOIL_M2 = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_M2_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(80, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -0.25, 25).addPos(0, 0, 0, 75)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java new file mode 100644 index 000000000..c86790f7a --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java @@ -0,0 +1,186 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.config.ClientConfig; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class XFactory556mm { + + public static final ResourceLocation scope_lilmac = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_44.png"); + + public static BulletConfig r556_sp; + public static BulletConfig r556_fmj; + public static BulletConfig r556_jhp; + public static BulletConfig r556_ap; + + public static void init() { + SpentCasing casing556 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(0.8F); + r556_sp = new BulletConfig().setItem(EnumAmmo.R556_SP) + .setCasing(casing556.clone().register("r556")); + r556_fmj = new BulletConfig().setItem(EnumAmmo.R556_FMJ).setDamage(0.8F).setThresholdNegation(4F).setArmorPiercing(0.1F) + .setCasing(casing556.clone().register("r556fmj")); + r556_jhp = new BulletConfig().setItem(EnumAmmo.R556_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + .setCasing(casing556.clone().register("r556jhp")); + r556_ap = new BulletConfig().setItem(EnumAmmo.R556_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(10F).setArmorPiercing(0.15F) + .setCasing(casing556.clone().setColor(SpentCasing.COLOR_CASE_44).register("r556ap")); + + ModItems.gun_g3 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(3_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(5F).delay(2).auto(true).dry(15).spread(0.0F).reload(50).jam(47).sound("hbm:weapon.fire.assault", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 30).addConfigs(r556_sp, r556_fmj, r556_jhp, r556_ap)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_G3)) + .setupStandardConfiguration().ps(Lego.LAMBDA_STANDARD_CLICK_SECONDARY) + .anim(LAMBDA_G3_ANIMS).orchestra(Orchestras.ORCHESTRA_G3) + ).setUnlocalizedName("gun_g3"); + + ModItems.gun_stg77 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(3_000).draw(10).inspect(125).crosshair(Crosshair.CIRCLE).scopeTexture(scope_lilmac).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(10F).delay(2).dry(15).auto(true).spread(0.0F).reload(46).jam(0).sound("hbm:weapon.fire.assault", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 30).addConfigs(r556_sp, r556_fmj, r556_jhp, r556_ap)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_STG)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD).pt(Lego.LAMBDA_TOGGLE_AIM) + .decider(LAMBDA_STG77_DECIDER) + .anim(LAMBDA_STG77_ANIMS).orchestra(Orchestras.ORCHESTRA_STG77) + ).setUnlocalizedName("gun_stg77"); + } + + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { + Lego.handleStandardSmoke(ctx.entity, stack, 1500, 0.075D, 1.1D, 0); + }; + + public static BiConsumer LAMBDA_STG77_DECIDER = (stack, ctx) -> { + int index = ctx.configIndex; + GunState lastState = ItemGunBaseNT.getState(stack, index); + GunStateDecider.deciderStandardFinishDraw(stack, lastState, index); + GunStateDecider.deciderStandardClearJam(stack, lastState, index); + GunStateDecider.deciderStandardReload(stack, ctx, lastState, 0, index); + GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getSecondary(stack, index); }); + }; + + public static BiConsumer LAMBDA_RECOIL_G3 = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); + }; + + public static BiConsumer LAMBDA_RECOIL_STG = (stack, ctx) -> { }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_G3_ANIMS = (stack, type) -> { + boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.5 : -0.75, 25, IType.SIN_DOWN).addPos(0, 0, 0, 75, IType.SIN_FULL)); + case CYCLE_DRY: return new BusAnimation() + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, -3.25, 150).addPos(0, 0, 0, 100)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 400).addPos(-1, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + case RELOAD: + return new BusAnimation() + .addBus("MAG", new BusAnimationSequence() + .addPos(0, -8, 0, 250, IType.SIN_UP) //250 + .addPos(0, -8, 0, 1000) //1250 + .addPos(0, 0, 0, 300)) //1550 + .addBus("BOLT", new BusAnimationSequence() + .addPos(0, 0, 0, 250) //250 + .addPos(0, 0, -3.25, 150) //400 + .addPos(0, 0, -3.25, 1250) //1750 + .addPos(0, 0, 0, 100)) //1850 + .addBus("HANDLE", new BusAnimationSequence() + .addPos(0, 0, 0, 500) //500 + .addPos(0, 0, 45, 50) //550 + .addPos(0, 0, 45, 1150) //1700 + .addPos(0, 0, 0, 50)) //1750 + .addBus("LIFT", new BusAnimationSequence() + .addPos(0, 0, 0, 750) //750 + .addPos(-25, 0, 0, 500, IType.SIN_FULL) //1250 + .addPos(-25, 0, 0, 750) //2000 + .addPos(0, 0, 0, 500, IType.SIN_FULL)) //3500 + .addBus("BULLET", new BusAnimationSequence().addPos(empty ? 1 : 0, 0, 0, 0).addPos(0, 0, 0, 1000)); + case INSPECT: return new BusAnimation() + .addBus("MAG", new BusAnimationSequence() + .addPos(0, -1, 0, 150) //150 + .addPos(2, -1, 0, 150) //300 + .addPos(2, 8, 0, 350, IType.SIN_DOWN) //650 + .addPos(2, -2, 0, 350, IType.SIN_UP) //1000 + .addPos(2, -1, 0, 50) //1050 + .addPos(2, -1, 0, 100) //1150 + .addPos(0, -1, 0, 150, IType.SIN_FULL) //1300 + .addPos(0, 0, 0, 150, IType.SIN_UP)) //1450 + .addBus("SPEEN", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(0, 360, 360, 700)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 1450).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("BULLET", new BusAnimationSequence().addPos(empty ? 1 : 0, 0, 0, 0)); + case JAMMED: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 1250).addPos(0, 0, 0, 350, IType.SIN_FULL)) + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(0, 0, -3.25, 150).addPos(0, 0, 0, 100).addPos(0, 0, 0, 250).addPos(0, 0, -3.25, 150).addPos(0, 0, 0, 100)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_STG77_ANIMS = (stack, type) -> { + if(ClientConfig.GUN_ANIMS_LEGACY.get()) { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.125 : -0.375, 25, IType.SIN_DOWN).addPos(0, 0, 0, 75, IType.SIN_FULL)) + .addBus("SAFETY", new BusAnimationSequence().addPos(0.25, 0, 0, 0).addPos(0.25, 0, 0, 2000).addPos(0, 0, 0, 50)); + case CYCLE_DRY: return new BusAnimation() + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, -2, 150).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("SAFETY", new BusAnimationSequence().addPos(0.25, 0, 0, 0).addPos(0.25, 0, 0, 2000).addPos(0, 0, 0, 50)); + case RELOAD: return new BusAnimation() + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, -2, 150).addPos(0, 0, -2, 1600).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("HANDLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 20, 50).addPos(0, 0, 20, 1500).addPos(0, 0, 0, 50)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, -2, 150).addPos(0, 0, -2, 6100).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("HANDLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 20, 50).addPos(0, 0, 20, 6000).addPos(0, 0, 0, 50)) + .addBus("INSPECT_LEVER", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -10, 100).addPos(0, 0, -10, 100).addPos(0, 0, 0, 100)) + .addBus("INSPECT_BARREL", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(0, 0, 20, 150).addPos(0, 0, 0, 400).addPos(0, 0, 0, 500).addPos(15, 0, 0, 500).addPos(15, 0, 0, 2000).addPos(0, 0, 0, 500).addPos(0, 0, 0, 500).addPos(0, 0, 20, 200).addPos(0, 0, 20, 400).addPos(0, 0, 0, 150)) + .addBus("INSPECT_MOVE", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(0, 0, 6, 1000).addPos(2, 0, 3, 500, IType.SIN_FULL).addPos(2, 0.75, 0, 500, IType.SIN_FULL).addPos(2, 0.75, 0, 1000).addPos(2, 0, 3, 500, IType.SIN_FULL).addPos(0, 0, 6, 500).addPos(0, 0, 0, 1000)) + .addBus("INSPECT_GUN", new BusAnimationSequence().addPos(0, 0, 0, 1750).addPos(15, 0, -70, 500, IType.SIN_FULL).addPos(15, 0, -70, 1500).addPos(0, 0, 0, 500, IType.SIN_FULL)); + } + } else { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.125 : -0.375, 25, IType.SIN_DOWN).addPos(0, 0, 0, 75, IType.SIN_FULL)) + .addBus("SAFETY", new BusAnimationSequence().addPos(0.25, 0, 0, 0).addPos(0.25, 0, 0, 2000).addPos(0, 0, 0, 50)); + case CYCLE_DRY: return ResourceManager.stg77_anim.get("FireDry"); + case RELOAD: return ResourceManager.stg77_anim.get("Reload"); + case INSPECT: return ResourceManager.stg77_anim.get("Inspect"); + } + } + + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java new file mode 100644 index 000000000..92d47c361 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java @@ -0,0 +1,74 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; + +public class XFactory75Bolt { + + public static BulletConfig b75; + public static BulletConfig b75_inc; + public static BulletConfig b75_exp; + + public static void init() { + SpentCasing casing75 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(2F, 2F, 1.5F); + + b75 = new BulletConfig().setItem(EnumAmmo.B75) + .setCasing(casing75.clone().register("b75")); + b75_inc = new BulletConfig().setItem(EnumAmmo.B75_INC).setDamage(0.8F).setArmorPiercing(0.1F) + .setCasing(casing75.clone().register("b75inc")); + b75_exp = new BulletConfig().setItem(EnumAmmo.B75_EXP).setDamage(1.5F).setArmorPiercing(-0.25F) + .setCasing(casing75.clone().register("b75exp")); + + ModItems.gun_bolter = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig() + .dura(3_000).draw(20).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(15F).delay(2).auto(true).spread(0.005F).reload(40).jam(55).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 30).addConfigs(b75, b75_inc, b75_exp)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_BOLT)) + .setupStandardConfiguration() + .anim(LAMBDA_BOLTER_ANIMS).orchestra(Orchestras.ORCHESTRA_BOLTER) + ).setUnlocalizedName("gun_bolter"); + } + + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { + Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, 0); + }; + + public static BiConsumer LAMBDA_RECOIL_BOLT = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_BOLTER_ANIMS = (stack, type) -> { + switch(type) { + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(1, 0, 0, 25).addPos(0, 0, 0, 75)); + case RELOAD: return new BusAnimation() + .addBus("TILT", new BusAnimationSequence().addPos(1, 0, 0, 250).addPos(1, 0, 0, 1500).addPos(0, 0, 0, 250)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 1, 500).addPos(1, 0, 1, 500).addPos(0, 0, 0, 500)); + case JAMMED: return new BusAnimation() + .addBus("TILT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(1, 0, 0, 250).addPos(1, 0, 0, 700).addPos(0, 0, 0, 250)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(0.6, 0, 0, 250).addPos(0, 0, 0, 250)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java new file mode 100644 index 000000000..44bfa4c8d --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java @@ -0,0 +1,155 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineBelt; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.main.MainRegistry; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import net.minecraft.item.ItemStack; + +public class XFactory762mm { + + public static BulletConfig r762_sp; + public static BulletConfig r762_fmj; + public static BulletConfig r762_jhp; + public static BulletConfig r762_ap; + public static BulletConfig r762_du; + + public static BulletConfig energy_lacunae; + public static BulletConfig energy_lacunae_overcharge; + public static BulletConfig energy_lacunae_ir; + + public static void init() { + SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS); + r762_sp = new BulletConfig().setItem(EnumAmmo.R762_SP) + .setCasing(casing762.clone().register("r762")); + r762_fmj = new BulletConfig().setItem(EnumAmmo.R762_FMJ).setDamage(0.8F).setThresholdNegation(5F).setArmorPiercing(0.1F) + .setCasing(casing762.clone().register("r762fmj")); + r762_jhp = new BulletConfig().setItem(EnumAmmo.R762_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + .setCasing(casing762.clone().register("r762jhp")); + r762_ap = new BulletConfig().setItem(EnumAmmo.R762_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(12.5F).setArmorPiercing(0.15F) + .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762ap")); + r762_du = new BulletConfig().setItem(EnumAmmo.R762_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(15F).setArmorPiercing(0.25F) + .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762du")); + + energy_lacunae = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_lacunae_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_lacunae_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setupDamageClass(DamageClass.FIRE).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(XFactoryEnergy.LAMBDA_IR_HIT); + + ModItems.gun_carbine = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(3_000).draw(10).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(15F).delay(5).dry(15).spread(0.0F).reload(30, 0, 15, 0).jam(60).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 14).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_CARBINE)) + .setupStandardConfiguration() + .anim(LAMBDA_CARBINE_ANIMS).orchestra(Orchestras.ORCHESTRA_CARBIBE) + ).setUnlocalizedName("gun_carbine"); + + ModItems.gun_minigun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(6F).delay(1).auto(true).dry(15).spread(0.01F).sound("hbm:weapon.calShoot", 1.0F, 1.0F) + .mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_MINIGUN)) + .setupStandardConfiguration() + .anim(LAMBDA_MINIGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_MINIGUN) + ).setUnlocalizedName("gun_minigun"); + ModItems.gun_minigun_lacunae = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE) + .rec(new Receiver(0) + .dmg(12F).delay(1).auto(true).dry(15).reload(15).spread(0.01F).sound("hbm:weapon.fire.laserGatling", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 200).addConfigs(energy_lacunae, energy_lacunae_overcharge, energy_lacunae_ir)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_LACUNAE)) + .setupStandardConfiguration() + .anim(LAMBDA_MINIGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_MINIGUN) + ).setUnlocalizedName("gun_minigun_lacunae"); + } + + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { + Lego.handleStandardSmoke(ctx.entity, stack, 1500, 0.075D, 1.1D, 0); + }; + + public static BiConsumer LAMBDA_RECOIL_CARBINE = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_MINIGUN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_LACUNAE = (stack, ctx) -> { }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CARBINE_ANIMS = (stack, type) -> { + boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.25 : -0.5, 50, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, -1, 50, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus(empty ? "NULL" : "REL", new BusAnimationSequence().addPos(0, 0, 0.25, 50).addPos(0, 0.125, 1.25, 100, IType.SIN_UP)); + case CYCLE_DRY: return new BusAnimation() + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -1, 100, IType.SIN_DOWN).addPos(0, 0, -1, 50).addPos(0, 0, 0, 100, IType.SIN_UP)); + case RELOAD: return new BusAnimation() + .addBus("MAG", new BusAnimationSequence().addPos(0, -4, 0, 250, IType.SIN_UP).addPos(0, -4, 0, 750).addPos(0, 0, 0, 500, IType.SIN_DOWN)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 1000)) + .addBus("BULLET", new BusAnimationSequence().addPos(empty ? 1 : 0, 0, 0, 0).addPos(0, 0, 0, 1000)); + case RELOAD_END: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(-25, 0, 0, 0).addPos(-25, 0, 0, 750).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, -1, 100, IType.SIN_DOWN).addPos(0, 0, -1, 50).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("REL", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, 0.25, 150).addPos(0, 0.125, 1.25, 100, IType.SIN_UP)); + case JAMMED: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(-25, 0, 0, 0).addPos(-25, 0, 0, 750).addPos(0, 0, 0, 500, IType.SIN_FULL).addPos(0, 0, 0, 250).addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 750).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, -1, 100, IType.SIN_DOWN).addPos(0, 0, -1, 50).addPos(0, 0, -0.25, 100, IType.SIN_UP).addPos(0, 0, -0.25, 1250).addPos(0, 0, -1, 100, IType.SIN_DOWN).addPos(0, 0, -1, 50).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("REL", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, 0.25, 150).addPos(0, 0.125, 1, 100, IType.SIN_UP).addPos(0, 0.125, 1, 1250).addPos(0, 0.125, 0.25, 100, IType.SIN_DOWN).addPos(0, 0.125, 1, 100, IType.SIN_UP)); + case INSPECT: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 1500).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -0.75, 150, IType.SIN_DOWN).addPos(0, 0, -0.75, 1000).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus(empty ? "NULL" : "REL", new BusAnimationSequence().addPos(0, 0.125, 1.25, 0).addPos(0, 0.125, 1.25, 500).addPos(0, 0.125, 0.5, 150, IType.SIN_DOWN).addPos(0, 0.125, 0.5, 1000).addPos(0, 0.125, 1.25, 100, IType.SIN_UP)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MINIGUN_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 1000, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.25 : -0.5, 0).addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.25 : -0.5, 100).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 50).addPos(0, 0, 720, 1000, IType.SIN_DOWN)); + case CYCLE_DRY: return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 50).addPos(0, 0, 720, 1000, IType.SIN_DOWN)); + case RELOAD: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-15, 0, 0, 250, IType.SIN_DOWN).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 50).addPos(0, 0, 720, 1000, IType.SIN_DOWN)); + case INSPECT: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(3, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -720, 1000, IType.SIN_DOWN)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java new file mode 100644 index 000000000..9b844ab84 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java @@ -0,0 +1,201 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; + +public class XFactory9mm { + + public static BulletConfig p9_sp; + public static BulletConfig p9_fmj; + public static BulletConfig p9_jhp; + public static BulletConfig p9_ap; + + public static void init() { + SpentCasing casing9 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1F, 1F, 0.75F); + p9_sp = new BulletConfig().setItem(EnumAmmo.P9_SP) + .setCasing(casing9.clone().register("p9")); + p9_fmj = new BulletConfig().setItem(EnumAmmo.P9_FMJ).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F) + .setCasing(casing9.clone().register("p9fmj")); + p9_jhp = new BulletConfig().setItem(EnumAmmo.P9_JHP).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) + .setCasing(casing9.clone().register("p9jhp")); + p9_ap = new BulletConfig().setItem(EnumAmmo.P9_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(5F).setArmorPiercing(0.15F) + .setCasing(casing9.clone().setColor(SpentCasing.COLOR_CASE_44).register("p9ap")); + + ModItems.gun_greasegun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(3_000).draw(20).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(3F).delay(4).dry(40).auto(true).spread(0.015F).reload(60).jam(55).sound("hbm:weapon.fire.greaseGun", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_GREASEGUN)) + .setupStandardConfiguration() + .anim(LAMBDA_GREASEGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_GREASEGUN) + ).setUnlocalizedName("gun_greasegun"); + + ModItems.gun_lag = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(1_700).draw(7).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(25F).delay(4).dry(10).spread(0.005F).reload(53).jam(44).sound("hbm:weapon.fire.pistol", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 17).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_LAG)) + .setupStandardConfiguration() + .anim(LAMBDA_LAG_ANIMS).orchestra(Orchestras.ORCHESTRA_LAG) + ).setUnlocalizedName("gun_lag"); + + ModItems.gun_uzi = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(3F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_UZI)) + .setupStandardConfiguration() + .anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI) + ).setUnlocalizedName("gun_uzi"); + ModItems.gun_uzi_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE, + new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(3F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) + .offset(1, -0.0625 * 2.5, 0.375D) + .setupStandardFire().recoil(LAMBDA_RECOIL_UZI)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO), + new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(3F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F) + .mag(new MagazineFullReload(1, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) + .offset(1, -0.0625 * 2.5, -0.375D) + .setupStandardFire().recoil(LAMBDA_RECOIL_UZI)) + .ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(LAMBDA_SECOND_UZI) + .anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO) + ).setUnlocalizedName("gun_uzi_akimbo"); + } + + public static BiConsumer LAMBDA_RECOIL_GREASEGUN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(2, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_LAG = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_UZI = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(1, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); + }; + + public static BiConsumer LAMBDA_SECOND_UZI = (stack, ctx) -> { + int index = ctx.configIndex; + GunState lastState = ItemGunBaseNT.getState(stack, index); + GunStateDecider.deciderStandardFinishDraw(stack, lastState, index); + GunStateDecider.deciderStandardClearJam(stack, lastState, index); + GunStateDecider.deciderStandardReload(stack, ctx, lastState, 0, index); + GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getSecondary(stack, index) && ItemGunBaseNT.getMode(stack, ctx.configIndex) == 0; }); + }; + + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { + Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, ctx.configIndex); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_GREASEGUN_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(80, 0, 0, 0).addPos(80, 0, 0, 500).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("STOCK", new BusAnimationSequence().addPos(0, 0, -4, 0).addPos(0, 0, -4, 200).addPos(0, 0, 0, 300, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.25 : -0.5, 50, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("FLAP", new BusAnimationSequence().addPos(0, 0, 15, 100, IType.SIN_DOWN).addPos(0, 0, -5, 100, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_FULL)); + case CYCLE_DRY: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 750).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -45, 250, IType.SIN_FULL).addPos(0, 0, -45, 750).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("HANDLE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 250).addPos(-90, 0, 0, 250, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case RELOAD: + boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; + return new BusAnimation() + .addBus("MAG", new BusAnimationSequence().addPos(0, -8, 0, 250, IType.SIN_UP).addPos(0, -8, 0, 750).addPos(0, 0, 0, 500, IType.SIN_DOWN)) + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 1750).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 1750).addPos(0, 0, -45, 250, IType.SIN_FULL).addPos(0, 0, -45, 500).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("HANDLE", new BusAnimationSequence().addPos(0, 0, 0, 2000).addPos(-90, 0, 0, 250, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("BULLET", new BusAnimationSequence().addPos(empty ? 1 : 0, 0, 0, 0).addPos(0, 0, 0, 1000)); + case JAMMED: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 1500).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -45, 250, IType.SIN_FULL).addPos(0, 0, -45, 1500).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("HANDLE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 250).addPos(-90, 0, 0, 250, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL).addPos(0, 0, 0, 250).addPos(-90, 0, 0, 250, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, -45, 150).addPos(0, 0, 45, 150).addPos(0, 0, 45, 50).addPos(0, 0, 0, 250).addPos(0, 0, 0, 500).addPos(0, 0, 45, 150).addPos(0, 0, -45, 150).addPos(0, 0, 0, 150)) + .addBus("FLAP", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(0, 0, 180, 150).addPos(0, 0, 180, 850).addPos(0, 0, 0, 150)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LAG_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 350, IType.SIN_DOWN)); + case CYCLE: return ResourceManager.lag_anim.get("Firing"); + //.addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 25, 50).addPos(0, 0, 25, 50).addPos(0, 0, 0, 100, IType.SIN_DOWN)); + case CYCLE_DRY: return ResourceManager.lag_anim.get("Dryfire"); + case RELOAD: return ResourceManager.lag_anim.get("Reload"); + case JAMMED: return ResourceManager.lag_anim.get("Jam"); + case INSPECT: return ResourceManager.lag_anim.get("Inspect") + .addBus("ADD_TRANS", new BusAnimationSequence().addPos(-4, 0, -3, 500).addPos(-4, 0, -3, 2000).addPos(0, 0, 0, 500)) + .addBus("ADD_ROT", new BusAnimationSequence().addPos(0, -2, 5, 500).addPos(0, -2, 5, 2000).addPos(0, 0, 0, 500)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_UZI_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(80, 0, 0, 0).addPos(80, 0, 0, 500).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("STOCKBACK", new BusAnimationSequence().addPos(-200, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("STOCKFRONT", new BusAnimationSequence().addPos(180, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.5 : -0.75, 25, IType.SIN_DOWN).addPos(0, 0, 0, 75, IType.SIN_FULL)); + case CYCLE_DRY: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 500).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -2, 150, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)); + case RELOAD: + boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; + return new BusAnimation() + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, -10, 0, 250, IType.SIN_UP).addPos(0, -10, 0, 750).addPos(0, 0, 0, 500, IType.SIN_DOWN)) + .addBus("LIFT", new BusAnimationSequence().addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 2000).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 2000).addPos(0, 0, -2, 150, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)) + .addBus("BULLET", new BusAnimationSequence().addPos(empty ? 0 : 1, 0, 0, 0).addPos(empty ? 0 : 1, 0, 0, 500).addPos(1, 0, 0, 0)); + case JAMMED: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-25, 0, 0, 250, IType.SIN_FULL).addPos(-25, 0, 0, 1250).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(0, 0, -2, 150, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP).addPos(0, 0, 0, 500).addPos(0, 0, -2, 150, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)); + case INSPECT: return new BusAnimation() + .addBus("YEET", new BusAnimationSequence().addPos(0, -1, 0, 100).addPos(0, 0, 0, 100, IType.SIN_UP).addPos(0, 12, 0, 350, IType.SIN_DOWN).addPos(0, 0, 0, 350, IType.SIN_UP).addPos(0, -1, 0, 50, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("SPEEN", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(-360, 0, 0, 600)); + } + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java new file mode 100644 index 000000000..f8a2d8769 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java @@ -0,0 +1,200 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Consumer; + +import com.hbm.entity.projectile.EntityBulletBeamBase; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineBelt; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.main.MainRegistry; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; + +public class XFactoryAccelerator { + + public static MagazineBelt tauChargeMag = new MagazineBelt(); + + public static BulletConfig tau_uranium; + public static BulletConfig tau_uranium_charge; + + public static BulletConfig coil_tungsten; + public static BulletConfig coil_ferrouranium; + + public static Consumer LAMBDA_UPDATE_TUNGSTEN = (entity) -> {breakInPath(entity, 1.25F); }; + public static Consumer LAMBDA_UPDATE_FERRO = (entity) -> { breakInPath(entity, 2.5F); }; + + public static void breakInPath(Entity entity, float threshold) { + + Vec3 vec = Vec3.createVectorHelper(entity.posX - entity.prevPosX, entity.posY - entity.prevPosY, entity.posZ - entity.prevPosZ); + double motion = Math.max(vec.lengthVector(), 0.1); + vec = vec.normalize(); + + for(double d = 0; d < motion; d += 0.5) { + + double dX = entity.posX - vec.xCoord * d; + double dY = entity.posY - vec.yCoord * d; + double dZ = entity.posZ - vec.zCoord * d; + + if(entity.worldObj.isRemote) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "vanillaExt"); + nbt.setString("mode", "fireworks"); + nbt.setDouble("posX", dX); + nbt.setDouble("posY", dY); + nbt.setDouble("posZ", dZ); + MainRegistry.proxy.effectNT(nbt); + + } else { + int x = (int) Math.floor(dX); + int y = (int) Math.floor(dY); + int z = (int) Math.floor(dZ); + Block b = entity.worldObj.getBlock(x, y, z); + float hardness = b.getBlockHardness(entity.worldObj, x, y, z); + if(b.getMaterial() != Material.air && hardness >= 0 && hardness < threshold) { + entity.worldObj.func_147480_a(x, y, z, false); + } + } + } + } + + public static void init() { + + tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false) + .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); + tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); + + coil_tungsten = new BulletConfig().setItem(EnumAmmo.COIL_TUNGSTEN).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + .setOnUpdate(LAMBDA_UPDATE_TUNGSTEN); + coil_ferrouranium = new BulletConfig().setItem(EnumAmmo.COIL_FERROURANIUM).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + .setOnUpdate(LAMBDA_UPDATE_FERRO); + + tauChargeMag.addConfigs(tau_uranium_charge); + + ModItems.gun_tau = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(6_400).draw(10).inspect(10).crosshair(Crosshair.CIRCLE) + .rec(new Receiver(0) + .dmg(25F).delay(4).auto(true).spread(0F) + .mag(new MagazineBelt().addConfigs(tau_uranium)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_TAU)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY) + .rp(LAMBDA_TAU_PRIMARY_RELEASE) + .ps(LAMBDA_TAU_SECONDARY_PRESS) + .rs(LAMBDA_TAU_SECONDARY_RELEASE) + .pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_TAU_ANIMS).orchestra(Orchestras.ORCHESTRA_TAU) + ).setUnlocalizedName("gun_tau"); + + ModItems.gun_coilgun = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig() + .dura(400).draw(5).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX) + .rec(new Receiver(0) + .dmg(35F).delay(5).reload(20).jam(33).sound("hbm:weapon.coilgunShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(coil_tungsten, coil_ferrouranium)) + .offset(0.75, -0.0625, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_COILGUN)) + .setupStandardConfiguration() + .anim(LAMBDA_COILGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_COILGUN) + ).setUnlocalizedName("gun_coilgun"); + } + + public static BiConsumer LAMBDA_TAU_PRIMARY_RELEASE = (stack, ctx) -> { + if(ctx.getPlayer() == null || ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != AnimType.CYCLE) return; + ctx.getPlayer().worldObj.playSoundEffect(ctx.getPlayer().posX, ctx.getPlayer().posY, ctx.getPlayer().posZ, "hbm:weapon.fire.tauRelease", 1F, 1F); + }; + + public static BiConsumer LAMBDA_TAU_SECONDARY_PRESS = (stack, ctx) -> { + if(ctx.getPlayer() == null) return; + if(ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) <= 0) return; + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.SPINUP, ctx.configIndex); + tauChargeMag.getMagType(stack); //caches the last loaded ammo + }; + + public static BiConsumer LAMBDA_TAU_SECONDARY_RELEASE = (stack, ctx) -> { + if(ctx.getPlayer() == null) return; + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(timer >= 10 && ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) == AnimType.SPINUP) { + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.ALT_CYCLE, ctx.configIndex); + int unitsUsed = 1 + Math.min(12, timer / 10); + + EntityLivingBase entity = ctx.entity; + int index = ctx.configIndex; + + float aim = ItemGunBaseNT.getIsAiming(stack) ? 0.25F : 1F; + Receiver primary = ctx.config.getReceivers(stack)[0]; + BulletConfig config = tauChargeMag.getFirstConfig(stack, ctx.inventory); + + Vec3 offset = primary.getProjectileOffset(stack); + double forwardOffset = offset.xCoord; + double heightOffset = offset.yCoord; + double sideOffset = offset.zCoord; + + float damage = Lego.getStandardWearDamage(stack, ctx.config, index) * unitsUsed * 5; + float spread = Lego.calcSpread(ctx, stack, primary, true, index, aim); + EntityBulletBeamBase mk4 = new EntityBulletBeamBase(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); + entity.worldObj.spawnEntityInWorld(mk4); + + ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + config.wear * unitsUsed, ctx.config.getDurability(stack))); + + } else { + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.CYCLE_DRY, ctx.configIndex); + } + }; + + public static BiConsumer LAMBDA_RECOIL_TAU = (stack, ctx) -> { }; + + public static BiConsumer LAMBDA_RECOIL_COILGUN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_TAU_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -0.5, 50).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -5, 50, IType.SIN_DOWN).addPos(0, 0, 5, 100, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)); + case ALT_CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -3, 100, IType.SIN_DOWN).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -5, 50, IType.SIN_DOWN).addPos(0, 0, 5, 100, IType.SIN_FULL).addPos(0, 0, 0, 50, IType.SIN_UP)); + case CYCLE_DRY: return new BusAnimation(); + case INSPECT: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(2, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -360 * 3, 500 * 3, IType.SIN_DOWN)); + case SPINUP: return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 360 * 6, 3000, IType.SIN_UP).addPos(0, 0, 0, 0).addPos(0, 0, 360 * 40, 500 * 20)); + } + + return null; + }; + + public static BiFunction LAMBDA_COILGUN_ANIMS = (stack, type) -> { + if(type == AnimType.EQUIP) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 0).addPos(0, 0, 0, 250)); + if(type == AnimType.CYCLE) return new BusAnimation().addBus("RECOIL", new BusAnimationSequence().addPos(ItemGunBaseNT.getIsAiming(stack) ? 0.5 : 1, 0, 0, 100).addPos(0, 0, 0, 200)); + if(type == AnimType.RELOAD) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 250).addPos(1, 0, 0, 500).addPos(0, 0, 0, 250)); + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java new file mode 100644 index 000000000..e3366bca2 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java @@ -0,0 +1,78 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; + +public class XFactoryBlackPowder { + + public static BulletConfig stone = new BulletConfig().setItem(EnumAmmo.STONE).setBlackPowder(true).setHeadshot(1F).setSpread(0.025F).setRicochetAngle(15); + public static BulletConfig flint = new BulletConfig().setItem(EnumAmmo.STONE_AP).setBlackPowder(true).setHeadshot(1F).setSpread(0.01F).setRicochetAngle(5).setDoesPenetrate(true).setDamage(1.5F); + public static BulletConfig iron = new BulletConfig().setItem(EnumAmmo.STONE_IRON).setBlackPowder(true).setHeadshot(1F).setSpread(0F).setRicochetAngle(90).setRicochetCount(5).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F); + public static BulletConfig shot = new BulletConfig().setItem(EnumAmmo.STONE_SHOT).setBlackPowder(true).setHeadshot(1F).setSpread(0.1F).setRicochetAngle(45).setProjectiles(6, 6).setDamage(1F/6F); + + public static void init() { + + ModItems.gun_pepperbox = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(5F).delay(27).reload(67).jam(58).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(stone, flint, iron, shot)) + .offset(0.75, -0.0625, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_PEPPERBOX)) + .setupStandardConfiguration() + .anim(LAMBDA_PEPPERBOX_ANIMS).orchestra(Orchestras.ORCHESTRA_PEPPERBOX) + ).setUnlocalizedName("gun_pepperbox"); + } + + public static BiConsumer LAMBDA_RECOIL_PEPPERBOX = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PEPPERBOX_ANIMS = (stack, type) -> { + switch(type) { + case CYCLE: return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 0, 1025).addPos(60, 0, 0, 250)) + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(45, 0, 0, 150, IType.SIN_DOWN).addPos(45, 0, 0, 50).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("HAMMER", new BusAnimationSequence().addPos(80, 0, 0, 25).addPos(80, 0, 0, 1000).addPos(0, 0, 0, 250)) + .addBus("TRIGGER", new BusAnimationSequence().addPos(1, 0, 0, 25).addPos(1, 0, 0, 250).addPos(0, 0, 0, 100)); + case CYCLE_DRY: return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 0, 525).addPos(60, 0, 0, 250)) + .addBus("HAMMER", new BusAnimationSequence().addPos(80, 0, 0, 25).addPos(80, 0, 0, 500).addPos(0, 0, 0, 250)) + .addBus("TRIGGER", new BusAnimationSequence().addPos(1, 0, 0, 25).addPos(1, 0, 0, 250).addPos(0, 0, 0, 100)); + case EQUIP: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 200, IType.SIN_DOWN)); + case RELOAD: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(90, 0, 0, 500, IType.SIN_FULL).addPos(90, 0, 0, 1600).addPos(0, 0, 0, 500, IType.SIN_FULL).addPos(-5, 0, 0, 200, IType.SIN_UP).addPos(0, 0, 0, 200, IType.SIN_DOWN)) + .addBus("TRANSLATE", new BusAnimationSequence().addPos(0, -12, 5, 500, IType.SIN_FULL).addPos(0, -12, 5, 700).addPos(0, -13, 5, 200).addPos(0, -12, 5, 200).addPos(0, -12, 5, 500).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("LOADER", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 5, -5, 0).addPos(0, 0, -0.1, 500, IType.SIN_FULL).addPos(0, 0, -1, 200).addPos(0, 0, -1, 200).addPos(0, 0, -0.1, 200).addPos(0, 5, -5, 500, IType.SIN_FULL).addPos(0, 0, 0, 0)) + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 0, 2600).addPos(-360 * 1, 0, 0, 750, IType.SIN_FULL)) + .addBus("SHOT", new BusAnimationSequence().addPos(1, 0, 0, 1400).addPos(0, 0, 0, 0)); + case INSPECT: return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence().addPos(-360 * 1, 0, 0, 750, IType.SIN_FULL)) + .addBus("RECOIL", new BusAnimationSequence().addPos(-5, 0, 0, 200, IType.SIN_UP).addPos(0, 0, 0, 200, IType.SIN_DOWN)); + case JAMMED: return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 0, 1300).addPos(60, 0, 0, 500, IType.SIN_FULL).addPos(60, 0, 0, 400).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("TRANSLATE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, -6, 0, 400, IType.SIN_FULL).addPos(0, -6, 0, 2000).addPos(0, 0, 0, 400, IType.SIN_FULL)) + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(45, 0, 0, 400, IType.SIN_FULL).addPos(45, 0, 0, 2000).addPos(0, 0, 0, 400, IType.SIN_FULL)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java new file mode 100644 index 000000000..23e33eeb6 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java @@ -0,0 +1,179 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.Random; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class XFactoryCatapult { + + public static BulletConfig nuke_standard; + public static BulletConfig nuke_demo; + public static BulletConfig nuke_high; + public static BulletConfig nuke_tots; + public static BulletConfig nuke_hive; + + public static BiConsumer LAMBDA_NUKE_STANDARD = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; + if(bullet.isDead) return; + bullet.setDead(); + + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 1F); + spawnMush(bullet, mop); + }; + + public static BiConsumer LAMBDA_NUKE_DEMO = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + if(bullet.isDead) return; + bullet.setDead(); + + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10); + vnt.setBlockAllocator(new BlockAllocatorStandard(64)); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 1.5F); + spawnMush(bullet, mop); + }; + + public static BiConsumer LAMBDA_NUKE_HIGH = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + if(bullet.isDead) return; + bullet.setDead(); + bullet.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(bullet.worldObj, 35, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord)); + spawnMush(bullet, mop); + }; + + public static void incrementRad(World world, double posX, double posY, double posZ, float mult) { + for(int i = -2; i <= 2; i++) { for(int j = -2; j <= 2; j++) { + if(Math.abs(i) + Math.abs(j) < 4) { + ChunkRadiationManager.proxy.incrementRad(world, (int) Math.floor(posX + i * 16), (int) Math.floor(posY), (int) Math.floor(posZ + j * 16), 50F / (Math.abs(i) + Math.abs(j) + 1) * mult); + } + } + } + } + + public static void spawnMush(EntityBulletBaseMK4 bullet, MovingObjectPosition mop) { + bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + data.setBoolean("balefire", MainRegistry.polaroidID == 11 || bullet.worldObj.rand.nextInt(100) == 0); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord), new TargetPoint(bullet.dimension, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 250)); + } + + public static BiConsumer LAMBDA_NUKE_TINYTOT = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + if(bullet.isDead) return; + bullet.setDead(); + + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 0.25F); + bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tinytot"); + data.setBoolean("balefire", MainRegistry.polaroidID == 11 || bullet.worldObj.rand.nextInt(100) == 0); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord), new TargetPoint(bullet.dimension, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 250)); + }; + + public static BiConsumer LAMBDA_NUKE_HIVE = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + if(bullet.isDead) return; + bullet.setDead(); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage).withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); + }; + + public static void init() { + + nuke_standard = new BulletConfig().setItem(EnumAmmo.NUKE_STANDARD).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_STANDARD); + nuke_demo = new BulletConfig().setItem(EnumAmmo.NUKE_DEMO).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_DEMO); + nuke_high = new BulletConfig().setItem(EnumAmmo.NUKE_HIGH).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_HIGH); + nuke_tots = new BulletConfig().setItem(EnumAmmo.NUKE_TOTS).setProjectiles(8).setLife(300).setVel(3F).setGrav(0.025F).setSpread(0.1F).setDamage(0.35F).setOnImpact(LAMBDA_NUKE_TINYTOT); + nuke_hive = new BulletConfig().setItem(EnumAmmo.NUKE_HIVE).setProjectiles(12).setLife(300).setVel(1F).setGrav(0.025F).setSpread(0.15F).setDamage(0.25F).setOnImpact(LAMBDA_NUKE_HIVE); + + ModItems.gun_fatman = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(300).draw(20).inspect(30).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) + .rec(new Receiver(0) + .dmg(100F).delay(10).reload(57).jam(40).sound("hbm:weapon.fire.fatman", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive)) + .offset(1, -0.0625 * 1.5, -0.1875D).offsetScoped(1, -0.0625 * 1.5, -0.125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_FATMAN)) + .setupStandardConfiguration() + .anim(LAMBDA_FATMAN_ANIMS).orchestra(Orchestras.ORCHESTRA_FATMAN) + ).setUnlocalizedName("gun_fatman"); + } + + public static BiConsumer LAMBDA_RECOIL_FATMAN = (stack, ctx) -> { }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FATMAN_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 1000, IType.SIN_DOWN)); + case CYCLE: + Random rand = MainRegistry.proxy.me().getRNG(); + return new BusAnimation() + .addBus("GAUGE", new BusAnimationSequence().addPos(0, 0, 135 + rand.nextInt(136), 100, IType.SIN_DOWN).addPos(0, 0, 0, 500, IType.SIN_DOWN)) + .addBus("PISTON", new BusAnimationSequence().addPos(0, 0, 3, 100, IType.SIN_UP)) + .addBus("NUKE", new BusAnimationSequence().addPos(0, 0, 3, 100, IType.SIN_UP).addPos(0, 0, 0, 0)); + case RELOAD: return new BusAnimation() + .addBus("LID", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, -45, 250, IType.SIN_UP).addPos(0, 0, -45, 1200).addPos(0, 0, 0, 250, IType.SIN_UP)) + .addBus("HANDLE", new BusAnimationSequence().addPos(0, 0, -2, 500, IType.SIN_FULL).addPos(0, 0, -2, 1700).addPos(0, 0, 0, 750, IType.SIN_FULL)) + .addBus("NUKE", new BusAnimationSequence().addPos(5, -4, 3, 0).addPos(5, -4, 3, 750).addPos(2, 0.5, 3, 500, IType.SIN_UP).addPos(1, 0.5, 3, 100).addPos(0, 0, 3, 100).addPos(0, 0, 3, 750).addPos(0, 0, 0, 750, IType.SIN_FULL)) + .addBus("PISTON", new BusAnimationSequence().addPos(0, 0, 3, 0).addPos(0, 0, 3, 2200).addPos(0, 0, 0, 750, IType.SIN_FULL)) + .addBus("EQUIP", new BusAnimationSequence().addPos(5, 0, 0, 500, IType.SIN_FULL).addPos(0, 0, 0, 500, IType.SIN_FULL).addPos(0, 0, 0, 450).addPos(3, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL).addPos(0, 0, 0, 500).addPos(-10, 0, 0, 375, IType.SIN_DOWN).addPos(0, 0, 0, 375, IType.SIN_UP)); + case JAMMED: return new BusAnimation() + .addBus("HANDLE", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(0, 0, -2, 250, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL).addPos(0, 0, -2, 250, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-15, 0, 0, 250, IType.SIN_FULL).addPos(-15, 0, 0, 1000).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("HANDLE", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, -2, 250, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL).addPos(0, 0, -2, 250, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("EQUIP", new BusAnimationSequence().addPos(-15, 0, 0, 250, IType.SIN_FULL).addPos(-15, 0, 0, 1000).addPos(0, 0, 0, 250, IType.SIN_FULL)); + } + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java new file mode 100644 index 000000000..02a18afd0 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java @@ -0,0 +1,203 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.entity.effect.EntityFireLingering; +import com.hbm.entity.projectile.EntityBulletBeamBase; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.mags.MagazineBelt; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class XFactoryEnergy { + + public static final ResourceLocation scope_luna = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_luna.png"); + + public static BulletConfig energy_tesla; + public static BulletConfig energy_tesla_overcharge; + + public static BulletConfig energy_las; + public static BulletConfig energy_las_overcharge; + public static BulletConfig energy_las_ir; + + public static BiConsumer LAMBDA_LIGHTNING_HIT = (beam, mop) -> { + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + mop.hitVec.xCoord += dir.offsetX * 0.5; + mop.hitVec.yCoord += dir.offsetY * 0.5; + mop.hitVec.zCoord += dir.offsetZ * 0.5; + } + + ExplosionVNT vnt = new ExplosionVNT(beam.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 2F, beam.getThrower()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, beam.damage).setDamageClass(beam.config.dmgClass)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + beam.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, "hbm:entity.ufoBlast", 5.0F, 0.9F + beam.worldObj.rand.nextFloat() * 0.2F); + beam.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, "fireworks.blast", 5.0F, 0.5F); + + float yaw = beam.worldObj.rand.nextFloat() * 180F; + for(int i = 0; i < 3; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", 0.5F); + data.setFloat("g", 0.5F); + data.setFloat("b", 1.0F); + data.setFloat("pitch", -60F + 60F * i); + data.setFloat("yaw", yaw); + data.setFloat("scale", 2F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord), + new TargetPoint(beam.worldObj.provider.dimensionId, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 100)); + } + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + if(mop.entityHit instanceof EntityLivingBase) { + ((EntityLivingBase) mop.entityHit).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 60, 9)); + ((EntityLivingBase) mop.entityHit).addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 60, 9)); + } + } + }; + + public static BiConsumer LAMBDA_IR_HIT = (beam, mop) -> { + BulletConfig.LAMBDA_STANDARD_BEAM_HIT.accept(beam, mop); + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + if(mop.entityHit instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) mop.entityHit; + HbmLivingProps props = HbmLivingProps.getData(living); + if(props.fire < 100) props.fire = 100; + } + } + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + World world = beam.worldObj; + Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + if(b.isFlammable(world, mop.blockX, mop.blockY, mop.blockZ, dir.getOpposite())) { + if(world.getBlock(mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ).isAir(world, mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ)) { + world.setBlock(mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ, Blocks.fire); + return; + } + } + + EntityFireLingering fire = new EntityFireLingering(beam.worldObj).setArea(2, 1).setDuration(100).setType(EntityFireLingering.TYPE_DIESEL); + fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + beam.worldObj.spawnEntityInWorld(fire); + } + }; + + public static void init() { + + energy_tesla = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) + .setOnBeamImpact(LAMBDA_LIGHTNING_HIT); + energy_tesla_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) + .setDamage(1.5F).setOnBeamImpact(LAMBDA_LIGHTNING_HIT); + + energy_las = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_las_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setupDamageClass(DamageClass.FIRE).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(LAMBDA_IR_HIT); + + ModItems.gun_tesla_cannon = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.CIRCLE) + .rec(new Receiver(0) + .dmg(35F).delay(20).reload(44).jam(19).sound("hbm:weapon.fire.tesla", 1.0F, 1.0F) + .mag(new MagazineBelt().addConfigs(energy_tesla, energy_tesla_overcharge)) + .offset(0.75, 0, -0.375).offsetScoped(0.75, 0, -0.25) + .setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY)) + .setupStandardConfiguration() + .anim(LAMBDA_TESLA_ANIMS).orchestra(Orchestras.ORCHESTRA_TESLA) + ).setUnlocalizedName("gun_tesla_cannon"); + + ModItems.gun_lasrifle = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(2_000).draw(10).inspect(26).reloadSequential(true).crosshair(Crosshair.CIRCLE).scopeTexture(scope_luna) + .rec(new Receiver(0) + .dmg(50F).delay(8).reload(44).jam(36).sound("hbm:weapon.fire.laser", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 24).addConfigs(energy_las, energy_las_overcharge, energy_las_ir)) + .offset(0.75, -0.0625 * 1.5, -0.1875) + .setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY)) + .setupStandardConfiguration() + .anim(LAMBDA_LASRIFLE).orchestra(Orchestras.ORCHESTRA_LASRIFLE) + ).setUnlocalizedName("gun_lasrifle"); + } + + public static BiConsumer LAMBDA_RECOIL_ENERGY = (stack, ctx) -> { }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_TESLA_ANIMS = (stack, type) -> { + int amount = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 1000, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.5 : -1, 100, IType.SIN_DOWN).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 22.5, 350)) + .addBus("COUNT", new BusAnimationSequence().addPos(amount, 0, 0, 0)); + case CYCLE_DRY: return new BusAnimation() + .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 22.5, 350)); + case INSPECT: return new BusAnimation() + .addBus("YOMI", new BusAnimationSequence().addPos(8, -4, 0, 0).addPos(4, -1, 0, 500, IType.SIN_DOWN).addPos(4, -1, 0, 1000).addPos(6, -6, 0, 500, IType.SIN_UP)) + .addBus("SQUEEZE", new BusAnimationSequence().addPos(1, 1, 1, 0).addPos(1, 1, 1, 750).addPos(1, 1, 0.5, 125).addPos(1, 1, 1, 125)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LASRIFLE = (stack, type) -> { + int amount = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -0.5, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 22.5, 350)) + .addBus("COUNT", new BusAnimationSequence().addPos(amount, 0, 0, 0)); + case RELOAD: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(-90, 0, 0, 350, IType.SIN_UP).addPos(-90, 0, 0, 1500).addPos(0, 0, 0, 350, IType.SIN_UP)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(0, -5, 0, 350, IType.SIN_UP).addPos(0, -5, 0, 500).addPos(0, -0.25, 0, 500, IType.SIN_FULL).addPos(0, -0.25, 0, 150).addPos(0, 0, 0, 350)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 1700).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + case JAMMED: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-90, 0, 0, 350, IType.SIN_UP).addPos(-90, 0, 0, 600).addPos(0, 0, 0, 350, IType.SIN_UP)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 350).addPos(0, -2, 0, 200, IType.SIN_UP).addPos(0, -0.25, 0, 250, IType.SIN_FULL).addPos(0, -0.25, 0, 150).addPos(0, 0, 0, 350)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 800).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(-90, 0, 0, 350, IType.SIN_UP).addPos(-90, 0, 0, 600).addPos(0, 0, 0, 350, IType.SIN_UP)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(0, -2, 0, 200, IType.SIN_UP).addPos(0, -0.25, 0, 250, IType.SIN_FULL).addPos(0, -0.25, 0, 150).addPos(0, 0, 0, 350)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 800).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java new file mode 100644 index 000000000..a697c2f10 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java @@ -0,0 +1,202 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.List; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Consumer; + +import com.hbm.entity.effect.EntityFireLingering; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.impl.ItemGunChemthrower; +import com.hbm.items.weapon.sedna.mags.MagazineFluid; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.particle.helper.FlameCreator; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class XFactoryFlamer { + + public static BulletConfig flame_nograv; + + public static BulletConfig flame_diesel; + public static BulletConfig flame_gas; + public static BulletConfig flame_napalm; + public static BulletConfig flame_balefire; + + public static BulletConfig flame_topaz_diesel; + public static BulletConfig flame_topaz_gas; + public static BulletConfig flame_topaz_napalm; + public static BulletConfig flame_topaz_balefire; + + public static BulletConfig flame_daybreaker_diesel; + public static BulletConfig flame_daybreaker_gas; + public static BulletConfig flame_daybreaker_napalm; + public static BulletConfig flame_daybreaker_balefire; + + public static Consumer LAMBDA_FIRE = (bullet) -> { + if(bullet.worldObj.isRemote && MainRegistry.proxy.me().getDistanceToEntity(bullet) < 100) FlameCreator.composeEffectClient(bullet.worldObj, bullet.posX, bullet.posY - 0.125, bullet.posZ, FlameCreator.META_FIRE); + }; + public static Consumer LAMBDA_BALEFIRE = (bullet) -> { + if(bullet.worldObj.isRemote && MainRegistry.proxy.me().getDistanceToEntity(bullet) < 100) FlameCreator.composeEffectClient(bullet.worldObj, bullet.posX, bullet.posY - 0.125, bullet.posZ, FlameCreator.META_BALEFIRE); + }; + public static BiConsumer LAMBDA_IGNITE_FIRE = (bullet, mop) -> { + if(mop.entityHit instanceof EntityLivingBase) { + HbmLivingProps props = HbmLivingProps.getData((EntityLivingBase) mop.entityHit); + if(props.fire < 100) props.fire = 100; + } + }; + public static BiConsumer LAMBDA_IGNITE_BALEFIRE = (bullet, mop) -> { + if(mop.entityHit instanceof EntityLivingBase) { + HbmLivingProps props = HbmLivingProps.getData((EntityLivingBase) mop.entityHit); + if(props.balefire < 200) props.balefire = 200; + } + }; + public static BiConsumer LAMBDA_LINGER_DIESEL = (bullet, mop) -> { if(!igniteIfPossible(bullet, mop)) spawnFire(bullet, mop, 2F, 1F, 100, EntityFireLingering.TYPE_DIESEL); }; + public static BiConsumer LAMBDA_LINGER_GAS = (bullet, mop) -> { igniteIfPossible(bullet, mop); }; + public static BiConsumer LAMBDA_LINGER_NAPALM = (bullet, mop) -> { if(!igniteIfPossible(bullet, mop)) spawnFire(bullet, mop, 2.5F, 1F, 200, EntityFireLingering.TYPE_DIESEL); }; + public static BiConsumer LAMBDA_LINGER_BALEFIRE = (bullet, mop) -> { spawnFire(bullet, mop, 3F, 1F, 300, EntityFireLingering.TYPE_BALEFIRE); }; + + public static boolean igniteIfPossible(EntityBulletBaseMK4 bullet, MovingObjectPosition mop) { + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + World world = bullet.worldObj; + Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + if(b.isFlammable(world, mop.blockX, mop.blockY, mop.blockZ, dir.getOpposite())) { + if(world.getBlock(mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ).isAir(world, mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ)) { + world.setBlock(mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ, Blocks.fire); + return true; + } + } + bullet.setDead(); + } + return false; + } + + public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float width, float height, int duration, int type) { + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + List fires = bullet.worldObj.getEntitiesWithinAABB(EntityFireLingering.class, + AxisAlignedBB.getBoundingBox(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord).expand(width / 2 + 0.5, height / 2 + 0.5, width / 2 + 0.5)); + if(fires.isEmpty()) { + EntityFireLingering fire = new EntityFireLingering(bullet.worldObj).setArea(width, height).setDuration(duration).setType(type); + fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + bullet.worldObj.spawnEntityInWorld(fire); + } + bullet.setDead(); + } + } + + public static void init() { + flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setupDamageClass(DamageClass.FIRE).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_DIESEL); + flame_gas = new BulletConfig().setItem(EnumAmmo.FLAME_GAS).setupDamageClass(DamageClass.FIRE).setLife(10).setSpread(0.05F).setVel(1F).setGrav(0.0D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_GAS); + flame_napalm = new BulletConfig().setItem(EnumAmmo.FLAME_NAPALM).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_NAPALM); + flame_balefire = new BulletConfig().setItem(EnumAmmo.FLAME_BALEFIRE).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + .setOnUpdate(LAMBDA_BALEFIRE).setOnRicochet(LAMBDA_LINGER_BALEFIRE); + + flame_nograv = flame_diesel.clone().setGrav(0); + + flame_topaz_diesel = flame_diesel .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D); + flame_topaz_gas = flame_gas .clone().setProjectiles(2).setSpread(0.05F); + flame_topaz_napalm = flame_napalm .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D); + flame_topaz_balefire = flame_balefire .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D); + + flame_daybreaker_diesel = flame_diesel.clone().setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); spawnFire(bullet, mop, 6F, 2F, 200, EntityFireLingering.TYPE_DIESEL); bullet.setDead(); }); + flame_daybreaker_gas = flame_gas.clone().setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); bullet.setDead(); }); + flame_daybreaker_napalm = flame_napalm.clone().setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 7.5F); spawnFire(bullet, mop, 6F, 2F, 300, EntityFireLingering.TYPE_DIESEL); bullet.setDead(); }); + flame_daybreaker_balefire = flame_balefire.clone().setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); spawnFire(bullet, mop, 7.5F, 2.5F, 400, EntityFireLingering.TYPE_BALEFIRE); bullet.setDead(); }); + + ModItems.gun_flamer = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE) + .rec(new Receiver(0) + .dmg(1F).delay(1).auto(true).reload(90).jam(17) + .mag(new MagazineFullReload(0, 300).addConfigs(flame_diesel, flame_gas, flame_napalm, flame_balefire)) + .offset(0.75, -0.0625, -0.25D) + .setupStandardFire()) + .setupStandardConfiguration() + .anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER) + ).setUnlocalizedName("gun_flamer"); + ModItems.gun_flamer_topaz = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig() + .dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE) + .rec(new Receiver(0) + .dmg(1.5F).delay(1).auto(true).reload(90).jam(17) + .mag(new MagazineFullReload(0, 500).addConfigs(flame_topaz_diesel, flame_topaz_gas, flame_topaz_napalm, flame_topaz_balefire)) + .offset(0.75, -0.0625, -0.25D) + .setupStandardFire()) + .setupStandardConfiguration() + .anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER) + ).setUnlocalizedName("gun_flamer_topaz"); + ModItems.gun_flamer_daybreaker = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE) + .rec(new Receiver(0) + .dmg(25F).delay(10).auto(true).reload(90).jam(17).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 50).addConfigs(flame_daybreaker_diesel, flame_daybreaker_gas, flame_daybreaker_napalm, flame_daybreaker_balefire)) + .offset(0.75, -0.0625, -0.25D) + .setupStandardFire()) + .setupStandardConfiguration() + .anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER_DAYBREAKER) + ).setUnlocalizedName("gun_flamer_daybreaker"); + + ModItems.gun_chemthrower = new ItemGunChemthrower(WeaponQuality.A_SIDE, new GunConfig() + .dura(90_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .delay(1).auto(true) + .mag(new MagazineFluid(0, 3_000)) + .offset(0.75, -0.0625, -0.25D) + .canFire(ItemGunChemthrower.LAMBDA_CAN_FIRE).fire(ItemGunChemthrower.LAMBDA_FIRE)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_CHEMTHROWER_ANIMS).orchestra(Orchestras.ORCHESTRA_CHEMTHROWER) + ).setUnlocalizedName("gun_chemthrower"); + } + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FLAMER_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case RELOAD: return ResourceManager.flamethrower_anim.get("Reload"); + case INSPECT: + case JAMMED: return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 45, 250, IType.SIN_FULL).addPos(0, 0, 45, 350).addPos(0, 0, -15, 150, IType.SIN_FULL).addPos(0, 0, 0, 100, IType.SIN_FULL)); + } + + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CHEMTHROWER_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java new file mode 100644 index 000000000..41caa05c7 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java @@ -0,0 +1,157 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.List; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Consumer; + +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityBulletBeamBase; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.EntityDamageUtil; +import com.hbm.util.Vec3NT; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; + +public class XFactoryFolly { + + public static BulletConfig folly_sm; + public static BulletConfig folly_nuke; + + public static Consumer LAMBDA_SM_UPDATE = (entity) -> { + if(entity.worldObj.isRemote) return; + EntityBulletBeamBase beam = (EntityBulletBeamBase) entity; + Vec3NT dir = new Vec3NT(beam.headingX, beam.headingY, beam.headingZ).normalizeSelf(); + + if(beam.ticksExisted < 50) { + double spacing = 10; + double dist = beam.ticksExisted * spacing; + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", 0.75F); + data.setFloat("g", 0.75F); + data.setFloat("b", 0.75F); + data.setFloat("pitch", (float) beam.rotationPitch + 90); + data.setFloat("yaw", (float) -beam.rotationYaw); + data.setFloat("scale", 2F + beam.ticksExisted / (float)(beam.beamLength / spacing) * 3F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, beam.posX + dir.xCoord * dist, beam.posY + dir.yCoord * dist, beam.posZ + dir.zCoord * dist), new TargetPoint(beam.dimension, beam.posX, beam.posY, beam.posZ, 250)); + } + + if(entity.ticksExisted != 2) return; + + if(beam.thrower != null) ContaminationUtil.contaminate(beam.thrower, HazardType.RADIATION, ContaminationType.CREATIVE, 150F); + + List entities = beam.worldObj.getEntitiesWithinAABBExcludingEntity(beam, beam.boundingBox.addCoord(beam.headingX, beam.headingY, beam.headingZ).expand(1.0D, 1.0D, 1.0D)); + + for(int i = 1; i < beam.beamLength; i += 2) { + int x = (int) Math.floor(beam.posX + dir.xCoord * i); + int y = (int) Math.floor(beam.posY + dir.yCoord * i); + int z = (int) Math.floor(beam.posZ + dir.zCoord * i); + + for(int ix = x - 1; ix <= x + 1; ix++) for(int iy = y - 1; iy <= y + 1; iy++) for(int iz = z - 1; iz <= z + 1; iz++) { + if(iy > 0 && iy < 256) beam.worldObj.setBlock(ix, iy, iz, Blocks.air); + AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(ix - 1, iy - 1, iz - 1, ix + 2, iy + 2, iz + 2); + for(Entity e : entities) if(e != beam.thrower && e.boundingBox.intersectsWith(aabb)) { + if(e instanceof EntityLivingBase) EntityDamageUtil.attackEntityFromNT((EntityLivingBase) e, beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass), beam.damage, true, false, 0D, 100F, 0.99F); + else EntityDamageUtil.attackEntityFromIgnoreIFrame(e, beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass), beam.damage); + } + } + } + }; + + public static BiConsumer LAMBDA_NUKE_IMPACT = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 2) return; + if(bullet.isDead) return; + bullet.setDead(); + bullet.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(bullet.worldObj, 100, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord)); + EntityNukeTorex.statFac(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 100); + }; + + public static void init() { + + folly_sm = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_SM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setSpectral(true).setDoesPenetrate(true) + .setOnUpdate(LAMBDA_SM_UPDATE); + folly_nuke = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_NUKE).setChunkloading().setLife(600).setVel(4F).setGrav(0.015D) + .setOnImpact(LAMBDA_NUKE_IMPACT); + + ModItems.gun_folly = new ItemGunBaseNT(WeaponQuality.SECRET, new GunConfig() + .dura(0).draw(40).crosshair(Crosshair.NONE) + .rec(new Receiver(0) + .dmg(1_000F).delay(26).dryfire(false).reload(160).jam(0).sound("hbm:weapon.fire.loudestNoiseOnEarth", 100.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(folly_sm, folly_nuke)) + .offset(0.75, -0.0625, -0.1875D).offsetScoped(0.75, -0.0625, -0.125D) + .canFire(LAMBDA_CAN_FIRE).fire(LAMBDA_FIRE).recoil(LAMBDA_RECOIL_FOLLY)) + .setupStandardConfiguration().pt(LAMBDA_TOGGLE_AIM) + .anim(LAMBDA_FOLLY_ANIMS).orchestra(Orchestras.ORCHESTRA_FOLLY) + ).setUnlocalizedName("gun_folly"); + } + + public static BiConsumer LAMBDA_TOGGLE_AIM = (stack, ctx) -> { + if(ItemGunBaseNT.getState(stack, ctx.configIndex) == GunState.IDLE) { + boolean wasAiming = ItemGunBaseNT.getIsAiming(stack); + ItemGunBaseNT.setIsAiming(stack, !wasAiming); + if(!wasAiming) ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.SPINUP, ctx.configIndex); + } + }; + + public static BiConsumer LAMBDA_FIRE = (stack, ctx) -> { + Lego.doStandardFire(stack, ctx, AnimType.CYCLE, false); + }; + + public static BiFunction LAMBDA_CAN_FIRE = (stack, ctx) -> { + if(!ItemGunBaseNT.getIsAiming(stack)) return false; + if(ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != AnimType.SPINUP) return false; + if(ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex) < 100) return false; + return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0; + }; + + public static BiConsumer LAMBDA_RECOIL_FOLLY = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(25, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FOLLY_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(5, 0, 0, 1500, IType.SIN_DOWN).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -4.5, 50).addPos(0, 0, -4.5, 500).addPos(0, 0, 0, 500, IType.SIN_UP)) + .addBus("LOAD", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(-25, 0, 0, 250, IType.SIN_DOWN).addPos(0, 0, 0, 1000, IType.SIN_FULL)); + case RELOAD: return new BusAnimation() + .addBus("LOAD", new BusAnimationSequence().addPos(60, 0, 0, 1000, IType.SIN_FULL).addPos(60, 0, 0, 6000).addPos(0, 0, 0, 1000, IType.SIN_FULL)) + .addBus("SCREW", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(0, 0, -135, 1000, IType.SIN_FULL).addPos(0, 0, -135, 4000).addPos(0, 0, 0, 1000, IType.SIN_FULL)) + .addBus("BREECH", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(0, 0, -0.5, 1000, IType.SIN_FULL).addPos(0, -4, -0.5, 1000, IType.SIN_FULL).addPos(0, -4, -0.5, 2000).addPos(0, 0, -0.5, 1000, IType.SIN_FULL).addPos(0, 0, 0, 1000, IType.SIN_FULL)) + .addBus("SHELL", new BusAnimationSequence().addPos(0, -4, -4.5, 0).addPos(0, -4, -4.5, 3000).addPos(0, 0, -4.5, 1000, IType.SIN_FULL).addPos(0, 0, 0, 500, IType.SIN_UP)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java new file mode 100644 index 000000000..5cb0217f7 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java @@ -0,0 +1,278 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Consumer; + +import com.hbm.entity.effect.EntityFireLingering; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.impl.ItemGunStinger; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.util.EntityDamageUtil; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class XFactoryRocket { + + public static BulletConfig[] rocket_template; + + public static BulletConfig[] rocket_rpzb; + public static BulletConfig[] rocket_qd; + public static BulletConfig[] rocket_ml; + + // FLYING + public static Consumer LAMBDA_STANDARD_ACCELERATE = (entity) -> { + EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; + if(bullet.accel < 7) bullet.accel += 0.4D; + }; + public static Consumer LAMBDA_STEERING_ACCELERATE = (entity) -> { + EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; + if(bullet.accel < 4) bullet.accel += 0.4D; + if(bullet.getThrower() == null || !(bullet.getThrower() instanceof EntityPlayer)) return; + + EntityPlayer player = (EntityPlayer) bullet.getThrower(); + if(Vec3.createVectorHelper(bullet.posX - player.posX, bullet.posY - player.posY, bullet.posZ - player.posZ).lengthVector() > 100) return; + if(player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemGunBaseNT) || !ItemGunBaseNT.getIsAiming(player.getHeldItem())) return; + + MovingObjectPosition mop = Library.rayTrace(player, 200, 1); + if(mop == null || mop.hitVec == null) return; + + Vec3 vec = Vec3.createVectorHelper(mop.hitVec.xCoord - bullet.posX, mop.hitVec.yCoord - bullet.posY, mop.hitVec.zCoord - bullet.posZ); + if(vec.lengthVector() < 3) return; + vec = vec.normalize(); + + double speed = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ).lengthVector(); + bullet.motionX = vec.xCoord * speed; + bullet.motionY = vec.yCoord * speed; + bullet.motionZ = vec.zCoord * speed; + }; + + // IMPACT + public static BiConsumer LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + Lego.standardExplode(bullet, mop, 5F); bullet.setDead(); + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_HEAT = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + Lego.standardExplode(bullet, mop, 3.5F); bullet.setDead(); + if(mop.typeOfHit == mop.typeOfHit.ENTITY && mop.entityHit instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) mop.entityHit; + EntityDamageUtil.attackEntityFromNT(living, bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F, true, true, 0.5F, 5F, 0.2F); + } else if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + mop.entityHit.attackEntityFrom(bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F); + } + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F, bullet.getThrower()); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); + bullet.setDead(); + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_INC = (bullet, mop) -> { + spawnFire(bullet, mop, false, 300); + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_PHOSPHORUS = (bullet, mop) -> { + spawnFire(bullet, mop, true, 600); + }; + + public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, boolean phosphorus, int duration) { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + World world = bullet.worldObj; + Lego.standardExplode(bullet, mop, 3F); + EntityFireLingering fire = new EntityFireLingering(world).setArea(6, 2).setDuration(duration).setType(phosphorus ? EntityFireLingering.TYPE_PHOSPHORUS : EntityFireLingering.TYPE_DIESEL); + fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + world.spawnEntityInWorld(fire); + bullet.setDead(); + for(int dx = -2; dx <= 2; dx++) { + for(int dy = -2; dy <= 2; dy++) { + for(int dz = -2; dz <= 2; dz++) { + int x = (int) Math.floor(mop.hitVec.xCoord) + dx; + int y = (int) Math.floor(mop.hitVec.yCoord) + dy; + int z = (int) Math.floor(mop.hitVec.zCoord) + dz; + if(world.getBlock(x, y, z).isAir(bullet.worldObj, x, y, z)) for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isFlammable(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite())) { + world.setBlock(x, y, z, Blocks.fire); + break; + } + } + } + } + } + } + + public static BulletConfig makeRPZB(BulletConfig original) { return original.clone(); } + public static BulletConfig makeQD(BulletConfig original) { return original.clone().setLife(400).setOnUpdate(LAMBDA_STEERING_ACCELERATE); } + public static BulletConfig makeML(BulletConfig original) { return original.clone(); } + + //this is starting to get messy but we need to put this crap *somewhere* and fragmenting it into a billion classes with two methods each just isn't gonna help + public static void init() { + + rocket_template = new BulletConfig[5]; + + BulletConfig baseRocket = new BulletConfig().setLife(300).setSelfDamageDelay(10).setVel(0F).setGrav(0D).setOnEntityHit(null).setOnRicochet(null).setOnUpdate(LAMBDA_STANDARD_ACCELERATE); + + rocket_template[0] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HE).setOnImpact(LAMBDA_STANDARD_EXPLODE); + rocket_template[1] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HEAT).setDamage(0.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT); + rocket_template[2] = baseRocket.clone().setItem(EnumAmmo.ROCKET_DEMO).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO); + rocket_template[3] = baseRocket.clone().setItem(EnumAmmo.ROCKET_INC).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC); + rocket_template[4] = baseRocket.clone().setItem(EnumAmmo.ROCKET_PHOSPHORUS).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_PHOSPHORUS); + + rocket_rpzb = new BulletConfig[rocket_template.length]; + rocket_qd = new BulletConfig[rocket_template.length]; + rocket_ml = new BulletConfig[rocket_template.length]; + + for(int i = 0; i < rocket_template.length; i++) { + rocket_rpzb[i] = makeRPZB(rocket_template[i]); + rocket_qd[i] = makeQD(rocket_template[i]); + rocket_ml[i] = makeML(rocket_template[i]); + } + + ModItems.gun_panzerschreck = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(300).draw(7).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX) + .rec(new Receiver(0) + .dmg(25F).delay(5).reload(50).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(rocket_rpzb)) + .offset(1, -0.0625 * 1.5, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET)) + .setupStandardConfiguration() + .anim(LAMBDA_PANZERSCHRECK_ANIMS).orchestra(Orchestras.ORCHESTRA_PANERSCHRECK) + ).setUnlocalizedName("gun_panzerschreck"); + + ModItems.gun_stinger = new ItemGunStinger(WeaponQuality.A_SIDE, new GunConfig() + .dura(300).draw(7).inspect(40).crosshair(Crosshair.L_BOX_OUTLINE) + .rec(new Receiver(0) + .dmg(35F).delay(5).reload(50).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(rocket_rpzb)) + .offset(1, -0.0625 * 1.5, -0.1875D) + .setupLockonFire().recoil(LAMBDA_RECOIL_ROCKET)) + .setupStandardConfiguration().ps(LAMBDA_STINGER_SECONDARY_PRESS).rs(LAMBDA_STINGER_SECONDARY_RELEASE) + .anim(LAMBDA_PANZERSCHRECK_ANIMS).orchestra(Orchestras.ORCHESTRA_STINGER) + ).setUnlocalizedName("gun_stinger"); + + ModItems.gun_quadro = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(400).draw(7).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) + .rec(new Receiver(0) + .dmg(40F).delay(10).reload(55).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 4).addConfigs(rocket_qd)) + .offset(1, -0.0625 * 1.5, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET)) + .setupStandardConfiguration() + .anim(LAMBDA_QUADRO_ANIMS).orchestra(Orchestras.ORCHESTRA_QUADRO) + ).setUnlocalizedName("gun_quadro"); + + ModItems.gun_missile_launcher = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(500).draw(20).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) + .rec(new Receiver(0) + .dmg(50F).delay(5).reload(48).jam(33).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(rocket_ml)) + .offset(1, -0.0625 * 1.5, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET)) + .setupStandardConfiguration().pp(LAMBDA_MISSILE_LAUNCHER_PRIMARY_PRESS) + .anim(LAMBDA_MISSILE_LAUNCHER_ANIMS).orchestra(Orchestras.ORCHESTRA_MISSILE_LAUNCHER) + ).setUnlocalizedName("gun_missile_launcher"); + } + + public static BiConsumer LAMBDA_STINGER_SECONDARY_PRESS = (stack, ctx) -> { ItemGunStinger.setIsLockingOn(stack, true); }; + public static BiConsumer LAMBDA_STINGER_SECONDARY_RELEASE = (stack, ctx) -> { ItemGunStinger.setIsLockingOn(stack, false); }; + + public static BiConsumer LAMBDA_MISSILE_LAUNCHER_PRIMARY_PRESS = (stack, ctx) -> { + if(ItemGunBaseNT.getIsAiming(stack)) { + int target = ItemGunStinger.getLockonTarget(ctx.getPlayer(), 150D, 20D); + if(target != -1) { + ItemGunBaseNT.setLockonTarget(stack, target); + ItemGunBaseNT.setIsLockedOn(stack, true); + } + } + Lego.LAMBDA_STANDARD_CLICK_PRIMARY.accept(stack, ctx); + ItemGunBaseNT.setIsLockedOn(stack, false); + }; + + public static BiConsumer LAMBDA_RECOIL_ROCKET = (stack, ctx) -> { }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PANZERSCHRECK_ANIMS = (stack, type) -> { + boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case RELOAD: return new BusAnimation() + .addBus("RELOAD", new BusAnimationSequence().addPos(90, 0, 0, 750, IType.SIN_FULL).addPos(90, 0, 0, 1000).addPos(0, 0, 0, 750, IType.SIN_FULL)) + .addBus("ROCKET", new BusAnimationSequence().addPos(0, -3, -6, 0).addPos(0, -3, -6, 750).addPos(0, 0, -6.5, 500, IType.SIN_DOWN).addPos(0, 0, 0, 350, IType.SIN_UP)); + case JAMMED: empty = false; + case INSPECT: + return new BusAnimation() + .addBus("RELOAD", new BusAnimationSequence().addPos(90, 0, 0, 750, IType.SIN_FULL).addPos(90, 0, 0, 500).addPos(0, 0, 0, 750, IType.SIN_FULL)) + .addBus("ROCKET", new BusAnimationSequence().addPos(0, empty ? -3 : 0, 0, 0)); + } + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_QUADRO_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -0.5, 50).addPos(0, 0, 0, 50)); + case RELOAD: return new BusAnimation() + .addBus("RELOAD_ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 500, IType.SIN_FULL).addPos(0, 0, 60, 1500).addPos(0, 0, 0, 750, IType.SIN_FULL)) + .addBus("RELOAD_PUSH", new BusAnimationSequence().addPos(-1, -1, 0, 0).addPos(-1, -1, 0, 500).addPos(-1, 0, 0, 350).addPos(0, 0, 0, 1000)); + case JAMMED: + case INSPECT: return new BusAnimation() + .addBus("RELOAD_ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 750, IType.SIN_FULL).addPos(0, 0, 60, 500).addPos(0, 0, 0, 750, IType.SIN_FULL)); + } + return null; + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MISSILE_LAUNCHER_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 1000, IType.SIN_DOWN)); + case RELOAD: return new BusAnimation() + .addBus("BARREL", new BusAnimationSequence().addPos(0, 0, 1.5, 150).addPos(0, 0, 1.5, 2100).addPos(0, 0, 0, 150)) + .addBus("OPEN", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(90, 0, 0, 500, IType.SIN_FULL).addPos(90, 0, 0, 1000).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 2250).addPos(-1, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_UP)) + .addBus("MISSILE", new BusAnimationSequence().addPos(-10, 0, 0, 0).addPos(-10, 0, 0, 750).addPos(3, 0, 2, 0).addPos(0, 0, -6, 350, IType.SIN_FULL).addPos(0, 0, 0, 350, IType.SIN_UP)); + case JAMMED: + case INSPECT: return new BusAnimation() + .addBus("BARREL", new BusAnimationSequence().addPos(0, 0, 1.5, 150).addPos(0, 0, 1.5, 1350).addPos(0, 0, 0, 150)) + .addBus("OPEN", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(90, 0, 0, 500, IType.SIN_FULL).addPos(90, 0, 0, 250).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 1500).addPos(-1, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_UP)); + } + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java new file mode 100644 index 000000000..0c5e332aa --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java @@ -0,0 +1,48 @@ +package com.hbm.items.weapon.sedna.factory; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo240Shell; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; + +import net.minecraft.item.ItemStack; + +public class XFactoryTurret { + + public static BulletConfig dgk_normal; + + public static SpentCasing CASINNG240MM = new SpentCasing(CasingType.BOTTLENECK).setScale(7.5F).setBounceMotion(0.02F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20); + public static BulletConfig shell_normal; + public static BulletConfig shell_explosive; + public static BulletConfig shell_ap; + public static BulletConfig shell_du; + public static BulletConfig shell_w9; + + public static void init() { + dgk_normal = new BulletConfig().setItem(new ItemStack(ModItems.ammo_dgk)); + + shell_normal = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.STOCK)).setDamage(1F).setCasing(CASINNG240MM.clone().register("240standard")).setOnImpact((bullet, mop) -> { + Lego.standardExplode(bullet, mop, 10F); bullet.setDead(); + }); + shell_explosive = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.EXPLOSIVE)).setDamage(1.5F).setCasing(CASINNG240MM.clone().register("240ext")).setOnImpact((bullet, mop) -> { + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10F); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); + bullet.setDead(); + }); + shell_ap = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_T)).setDamage(2F).setDoesPenetrate(true).setCasing(CASINNG240MM.clone().register("240w")); + shell_du = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_DU)).setDamage(2.5F).setDoesPenetrate(true).setDamageFalloutByPen(false).setCasing(CASINNG240MM.clone().register("240u")); + shell_w9 = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9)).setDamage(2.5F).setCasing(CASINNG240MM.clone().register("240n")).setOnImpact(XFactoryCatapult.LAMBDA_NUKE_STANDARD); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java new file mode 100644 index 000000000..90398bda4 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java @@ -0,0 +1,70 @@ +package com.hbm.items.weapon.sedna.hud; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class HUDComponentAmmoCounter implements IHUDComponent { + + private static final ResourceLocation misc = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_misc.png"); + protected static final RenderItem itemRenderer = RenderItem.getInstance(); + protected int receiver; + protected boolean mirrored; + protected boolean noCounter; + + public HUDComponentAmmoCounter(int receiver) { + this.receiver = receiver; + } + + public HUDComponentAmmoCounter mirror() { + this.mirrored = true; + return this; + } + + public HUDComponentAmmoCounter noCounter() { + this.noCounter = true; + return this; + } + + @Override + public int getComponentHeight(EntityPlayer player, ItemStack stack){ + return 24; + } + + @Override + public void renderHUDComponent(Pre event, ElementType type, EntityPlayer player, ItemStack stack, int bottomOffset, int gunIndex) { + + if(type != type.HOTBAR) return; + ScaledResolution resolution = event.resolution; + Minecraft mc = Minecraft.getMinecraft(); + + int pX = resolution.getScaledWidth() / 2 + (mirrored ? -(62 + 36 + 52) : (62 + 36)) + (noCounter ? 14 : 0); + int pZ = resolution.getScaledHeight() - bottomOffset - 23; + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + IMagazine mag = gun.getConfig(stack, gunIndex).getReceivers(stack)[this.receiver].getMagazine(stack); + + if(!noCounter) mc.fontRenderer.drawString(mag.reportAmmoStateForHUD(stack, player), pX + 17, pZ + 6, 0xFFFFFF); + + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + RenderHelper.enableGUIStandardItemLighting(); + itemRenderer.renderItemAndEffectIntoGUI(mc.fontRenderer, mc.getTextureManager(), mag.getIconForHUD(stack, player), pX, pZ); + RenderHelper.disableStandardItemLighting(); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + mc.renderEngine.bindTexture(misc); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentDurabilityBar.java b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentDurabilityBar.java new file mode 100644 index 000000000..d7160bfd3 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentDurabilityBar.java @@ -0,0 +1,53 @@ +package com.hbm.items.weapon.sedna.hud; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class HUDComponentDurabilityBar implements IHUDComponent { + + private static final ResourceLocation misc = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_misc.png"); + + protected boolean mirrored = false; + + public HUDComponentDurabilityBar() { + this(false); + } + public HUDComponentDurabilityBar(boolean mirror) { + this.mirrored = mirror; + } + + @Override + public int getComponentHeight(EntityPlayer player, ItemStack stack) { + return 5; + } + + @Override + public void renderHUDComponent(Pre event, ElementType type, EntityPlayer player, ItemStack stack, int bottomOffset, int gunIndex) { + + if(type != type.HOTBAR) return; + ScaledResolution resolution = event.resolution; + Minecraft mc = Minecraft.getMinecraft(); + + int pX = resolution.getScaledWidth() / 2 + (mirrored ? -(62 + 36 + 52) : (62 + 36)); + int pZ = resolution.getScaledHeight() - 21; + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + int dura = (int) (50 * gun.getWear(stack, gunIndex) / gun.getConfig(stack, gunIndex).getDurability(stack)); + + GL11.glColor4f(1F, 1F, 1F, 1F); + + mc.renderEngine.bindTexture(misc); + mc.ingameGUI.drawTexturedModalRect(pX, pZ + 16, 94, 0, 52, 3); + mc.ingameGUI.drawTexturedModalRect(pX + 1, pZ + 16, 95, 3, 50 - dura, 3); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/hud/IHUDComponent.java b/src/main/java/com/hbm/items/weapon/sedna/hud/IHUDComponent.java new file mode 100644 index 000000000..071ad0ad6 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/hud/IHUDComponent.java @@ -0,0 +1,12 @@ +package com.hbm.items.weapon.sedna.hud; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public interface IHUDComponent { + + public int getComponentHeight(EntityPlayer player, ItemStack stack); + public void renderHUDComponent(Pre event, ElementType type, EntityPlayer player, ItemStack stack, int bottomOffset, int gunIndex); +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunChemthrower.java new file mode 100644 index 000000000..c2aaee876 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunChemthrower.java @@ -0,0 +1,101 @@ +package com.hbm.items.weapon.sedna.impl; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.entity.projectile.EntityChemical; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.items.weapon.sedna.mags.MagazineFluid; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import api.hbm.fluid.IFillableItem; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; + +public class ItemGunChemthrower extends ItemGunBaseNT implements IFillableItem { + + public static final int CONSUMPTION = 3; + + public ItemGunChemthrower(WeaponQuality quality, GunConfig... cfg) { + super(quality, cfg); + } + + @Override + public boolean acceptsFluid(FluidType type, ItemStack stack) { + return getFluidType(stack) == type || this.getMagCount(stack) == 0; + } + + public static final int transferSpeed = 50; + + @Override + public int tryFill(FluidType type, int amount, ItemStack stack) { + + if(!acceptsFluid(type, stack)) return amount; + if(this.getMagCount(stack) == 0) this.setMagType(stack, type.getID()); + + int fill = this.getMagCount(stack); + int req = this.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getCapacity(stack) - fill; + int toFill = Math.min(amount, req); + toFill = Math.min(toFill, transferSpeed); + this.setMagCount(stack, fill + toFill); + + return amount - toFill; + } + + public FluidType getFluidType(ItemStack stack) { + return Fluids.fromID(this.getMagType(stack)); + } + + @Override + public boolean providesFluid(FluidType type, ItemStack stack) { + return getFluidType(stack) == type; + } + + @Override + public int tryEmpty(FluidType type, int amount, ItemStack stack) { + int fill = this.getMagCount(stack); + int toUnload = Math.min(fill, amount); + toUnload = Math.min(toUnload, transferSpeed); + this.setMagCount(stack, fill - toUnload); + return toUnload; + } + + @Override public FluidType getFirstFluidType(ItemStack stack) { return Fluids.fromID(this.getMagType(stack)); } + @Override public int getFill(ItemStack stack) { return this.getMagCount(stack); } + + public static int getMagType(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, MagazineFluid.KEY_MAG_TYPE + 0); } + public static void setMagType(ItemStack stack, int value) { ItemGunBaseNT.setValueInt(stack, MagazineFluid.KEY_MAG_TYPE + 0, value); } + public static int getMagCount(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, MagazineFluid.KEY_MAG_COUNT + 0); } + public static void setMagCount(ItemStack stack, int value) { ItemGunBaseNT.setValueInt(stack, MagazineFluid.KEY_MAG_COUNT + 0, value); } + + public static BiFunction LAMBDA_CAN_FIRE = (stack, ctx) -> { return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) >= CONSUMPTION; }; + + public static BiConsumer LAMBDA_FIRE = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + EntityPlayer player = ctx.getPlayer(); + int index = ctx.configIndex; + ItemGunBaseNT.playAnimation(player, stack, AnimType.CYCLE, ctx.configIndex); + + Receiver primary = ctx.config.getReceivers(stack)[0]; + IMagazine mag = primary.getMagazine(stack); + + Vec3 offset = primary.getProjectileOffset(stack); + double forwardOffset = offset.xCoord; + double heightOffset = offset.yCoord; + double sideOffset = offset.zCoord; + + EntityChemical chem = new EntityChemical(entity.worldObj, entity, sideOffset, heightOffset, forwardOffset); + chem.setFluid((FluidType) mag.getType(stack, ctx.inventory)); + entity.worldObj.spawnEntityInWorld(chem); + + mag.useUpAmmo(stack, ctx.inventory, CONSUMPTION); + ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + 1F, ctx.config.getDurability(stack))); + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunStinger.java b/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunStinger.java new file mode 100644 index 000000000..20fe6ef71 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunStinger.java @@ -0,0 +1,156 @@ +package com.hbm.items.weapon.sedna.impl; + +import java.util.List; + +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.hud.IHUDComponent; +import com.hbm.render.util.RenderScreenOverlay; +import com.hbm.util.Vec3NT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class ItemGunStinger extends ItemGunBaseNT { + + public static final String KEY_LOCKINGON = "lockingon"; + public static final String KEY_LOCKONPROGRESS = "lockonprogress"; + + public static float prevLockon; + public static float lockon; + + public ItemGunStinger(WeaponQuality quality, GunConfig... cfg) { + super(quality, cfg); + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isHeld) { + super.onUpdate(stack, world, entity, slot, isHeld); + + if(entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entity; + if(!world.isRemote && !isHeld && this.getIsLockingOn(stack)) { + this.setIsLockingOn(stack, false); + } + + this.prevLockon = this.lockon; + + if(!world.isRemote) { + int prevTarget = this.getLockonTarget(stack); + if(isHeld && this.getIsLockingOn(stack) && this.getIsAiming(stack) && this.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, player.inventory) > 0) { + int newLockonTarget = this.getLockonTarget(player, 150D, 10D); + + if(newLockonTarget == -1) { + if(!this.getIsLockedOn(stack)) resetLockon(world, stack); + } else { + if(!this.getIsLockedOn(stack) && newLockonTarget != prevTarget) { + resetLockon(world, stack); + this.setLockonTarget(stack, newLockonTarget); + } + progressLockon(world, stack); + + if(this.getLockonProgress(stack) >= 60 && !this.getIsLockedOn(stack)) { + player.worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1F, 1F); + this.setIsLockedOn(stack, true); + } + } + } else { + resetLockon(world, stack); + } + } else { + if(this.getLockonProgress(stack) > 1) { + this.lockon += (1F / 60F); + } else { + this.lockon = 0; + } + } + } + } + + public void resetLockon(World world, ItemStack stack) { + this.setLockonProgress(stack, 0); + this.setIsLockedOn(stack, false); + } + + public void progressLockon(World world, ItemStack stack) { + this.setLockonProgress(stack, this.getLockonProgress(stack) + 1); + } + + public static int getLockonTarget(EntityPlayer player, double distance, double angleThreshold) { + + if(player == null) return -1; + + double x = player.posX; + double y = player.posY + player.getEyeHeight(); + double z = player.posZ; + + Vec3NT delta = new Vec3NT(player.getLook(1F)).multiply(distance); + Vec3NT look = new Vec3NT(delta).add(x, y, z); + Vec3NT left = new Vec3NT(delta).add(x, y, z).rotateAroundYDeg(-angleThreshold).add(0, 10, 0); + Vec3NT right = new Vec3NT(delta).add(x, y, z).rotateAroundYDeg(angleThreshold).add(0, -10, 0); + Vec3NT pos = new Vec3NT(x, y, z); + + AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(Vec3NT.getMinX(look, left, right, pos), Vec3NT.getMinY(look, left, right, pos), Vec3NT.getMinZ(look, left, right, pos), + Vec3NT.getMaxX(look, left, right, pos), Vec3NT.getMaxY(look, left, right, pos), Vec3NT.getMaxZ(look, left, right, pos)); + List entities = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, aabb); + Entity closestEntity = null; + double closestAngle = 360D; + + Vec3NT toEntity = new Vec3NT(0, 0, 0); + + for(Entity entity : entities) { + if(entity.height < 0.5F || !entity.canBeCollidedWith()) continue; + toEntity.setComponents(entity.posX - x, entity.posY + entity.height / 2D - y, entity.posZ - z); + + double vecProd = toEntity.xCoord * delta.xCoord + toEntity.yCoord * delta.yCoord + toEntity.zCoord * delta.zCoord; + double bot = toEntity.lengthVector() * delta.lengthVector(); + double angle = Math.abs(Math.acos(vecProd / bot) * 180 / Math.PI); + + if(angle < closestAngle && angle < angleThreshold) { + closestAngle = angle; + closestEntity = entity; + } + } + + return closestEntity == null ? - 1 : closestEntity.getEntityId(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderHUD(Pre event, ElementType type, EntityPlayer player, ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + if(type == ElementType.CROSSHAIRS) { + event.setCanceled(true); + if(aimingProgress < 1F) return; + RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, gun.getConfig(stack, 0).getCrosshair(stack)); + RenderScreenOverlay.renderStingerLockon(event.resolution, Minecraft.getMinecraft().ingameGUI); + } + + int confNo = this.configs_DNA.length; + + for(int i = 0; i < confNo; i++) { + IHUDComponent[] components = gun.getConfig(stack, i).getHUDComponents(stack); + + if(components != null) for(IHUDComponent component : components) { + int bottomOffset = 0; + component.renderHUDComponent(event, type, player, stack, bottomOffset, i); + bottomOffset += component.getComponentHeight(player, stack); + } + } + } + + public static boolean getIsLockingOn(ItemStack stack) { return getValueBool(stack, KEY_LOCKINGON); } + public static void setIsLockingOn(ItemStack stack, boolean value) { setValueBool(stack, KEY_LOCKINGON, value); } + public static int getLockonProgress(ItemStack stack) { return getValueInt(stack, KEY_LOCKONPROGRESS); } + public static void setLockonProgress(ItemStack stack, int value) { setValueInt(stack, KEY_LOCKONPROGRESS, value); } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java b/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java new file mode 100644 index 000000000..9110cb02c --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/IMagazine.java @@ -0,0 +1,48 @@ +package com.hbm.items.weapon.sedna.mags; + +import com.hbm.particle.SpentCasing; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +/** + * The magazine simply provides the receiver it's attached to with ammo, the receiver does not care where it comes from. + * Therefore it is the mag's responsibility to handle reloading, any type restrictions as well as belt-like action from "magless" guns. + * + * @author hbm + */ +public interface IMagazine { + + /** What ammo is loaded currently */ + public T getType(ItemStack stack, IInventory inventory); + /** Sets the mag's ammo type */ + public void setType(ItemStack stack, T type); + /** How much ammo this mag can carry */ + public int getCapacity(ItemStack stack); + /** How much ammo is currently loaded */ + public int getAmount(ItemStack stack, IInventory inventory); + /** Sets the mag's ammo level */ + public void setAmount(ItemStack stack, int amount); + /** removes the specified amount fro mthe magazine */ + public void useUpAmmo(ItemStack stack, IInventory inventory, int amount); + /** If a reload can even be initiated, i.e. the player even has bullets to load, inventory can be null */ + public boolean canReload(ItemStack stack, IInventory inventory); + /** The action done at the end of one reload cycle, either loading one shell or replacing the whole mag, inventory can be null */ + public void reloadAction(ItemStack stack, IInventory inventory); + /** The stack that should be displayed for the ammo HUD */ + public ItemStack getIconForHUD(ItemStack stack, EntityPlayer player); + /** It explains itself */ + public String reportAmmoStateForHUD(ItemStack stack, EntityPlayer player); + /** Casing config to use then ejecting */ + public SpentCasing getCasing(ItemStack stack, IInventory inventory); + /** When reloading, remember the amount before reload is initiated */ + public void setAmountBeforeReload(ItemStack stack, int amount); + /** Amount of rounds before reload has started. Do note that the NBT stack sync likely arrives + * after the animation packets, so for RELOAD type anims, use the live ammo count instead! */ + public int getAmountBeforeReload(ItemStack stack); + /** Sets amount of ammo after each reload operation */ + public void setAmountAfterReload(ItemStack stack, int amount); + /** Cached amount of ammo after the most recent reload */ + public int getAmountAfterReload(ItemStack stack); +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineBelt.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineBelt.java new file mode 100644 index 000000000..80d8cb425 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineBelt.java @@ -0,0 +1,108 @@ +package com.hbm.items.weapon.sedna.mags; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.particle.SpentCasing; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +public class MagazineBelt implements IMagazine { + + protected List acceptedBullets = new ArrayList(); + + public MagazineBelt addConfigs(BulletConfig... cfgs) { for(BulletConfig cfg : cfgs) acceptedBullets.add(cfg); return this; } + + @Override + public BulletConfig getType(ItemStack stack, IInventory inventory) { + BulletConfig config = getFirstConfig(stack, inventory); + if(this.getMagType(stack) != config.id) { + this.setMagType(stack, config.id); + } + return config; + } + + @Override + public void useUpAmmo(ItemStack stack, IInventory inventory, int amount) { + + BulletConfig first = this.getFirstConfig(stack, inventory); + + for(int i = 0; i < inventory.getSizeInventory(); i++) { + ItemStack slot = inventory.getStackInSlot(i); + + if(slot != null) { + if(first.ammo.matchesRecipe(slot, true)) { + int toRemove = Math.min(slot.stackSize, amount); + amount -= toRemove; + inventory.decrStackSize(i, toRemove); + } + } + } + } + + @Override public void setType(ItemStack stack, BulletConfig type) { } + @Override public int getCapacity(ItemStack stack) { return 0; } + @Override public void setAmount(ItemStack stack, int amount) { } + @Override public boolean canReload(ItemStack stack, IInventory inventory) { return false; } + @Override public void reloadAction(ItemStack stack, IInventory inventory) { } + @Override public void setAmountBeforeReload(ItemStack stack, int amount) { } + @Override public int getAmountBeforeReload(ItemStack stack) { return 0; } + @Override public void setAmountAfterReload(ItemStack stack, int amount) { } + @Override public int getAmountAfterReload(ItemStack stack) { return 0; } + + @Override + public int getAmount(ItemStack stack, IInventory inventory) { + BulletConfig first = this.getFirstConfig(stack, inventory); + int count = 0; + for(int i = 0; i < inventory.getSizeInventory(); i++) { + ItemStack slot = inventory.getStackInSlot(i); + + if(slot != null) { + if(first.ammo.matchesRecipe(slot, true)) count += slot.stackSize; + } + } + return count; + } + + @Override + public ItemStack getIconForHUD(ItemStack stack, EntityPlayer player) { + BulletConfig first = this.getFirstConfig(stack, player.inventory); + return first.ammo.toStack(); + } + + @Override + public String reportAmmoStateForHUD(ItemStack stack, EntityPlayer player) { + return "x" + getAmount(stack, player.inventory); + } + + @Override + public SpentCasing getCasing(ItemStack stack, IInventory invnetory) { + return getFirstConfig(stack, invnetory).casing; + } + + public BulletConfig getFirstConfig(ItemStack stack, IInventory inventory) { + + if(inventory == null) return acceptedBullets.get(0); + + for(int i = 0; i < inventory.getSizeInventory(); i++) { + ItemStack slot = inventory.getStackInSlot(i); + + if(slot != null) { + for(BulletConfig config : this.acceptedBullets) { + if(config.ammo.matchesRecipe(slot, true)) return config; + } + } + } + + BulletConfig cached = BulletConfig.configs.get(this.getMagType(stack)); + return acceptedBullets.contains(cached) ? cached : acceptedBullets.get(0); + } + + public static final String KEY_MAG_TYPE = "magtype"; + public static int getMagType(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_TYPE); } + public static void setMagType(ItemStack stack, int value) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_TYPE, value); } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFluid.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFluid.java new file mode 100644 index 000000000..e02b49aaa --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFluid.java @@ -0,0 +1,70 @@ +package com.hbm.items.weapon.sedna.mags; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.particle.SpentCasing; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +public class MagazineFluid implements IMagazine { + + public static final String KEY_MAG_COUNT = "magcount"; + public static final String KEY_MAG_TYPE = "magtype"; + public static final String KEY_MAG_PREV = "magprev"; + public static final String KEY_MAG_AFTER = "magafter"; + + /** A number so the gun tell multiple mags apart */ + public int index; + /** How much ammo this mag can hold */ + public int capacity; + + public MagazineFluid(int index, int capacity) { + this.index = index; + this.capacity = capacity; + } + + @Override + public FluidType getType(ItemStack stack, IInventory inventory) { + int id = this.getMagType(stack, index); + return Fluids.fromID(id); + } + + @Override + public void setType(ItemStack stack, FluidType type) { + this.setMagType(stack, index, type.getID()); + } + + @Override + public int getCapacity(ItemStack stack) { + return capacity; + } + + @Override + public void useUpAmmo(ItemStack stack, IInventory inventory, int amount) { + this.setAmount(stack, this.getAmount(stack, inventory) - amount); + } + + @Override public int getAmount(ItemStack stack, IInventory inventory) { return getMagCount(stack, index); } + @Override public void setAmount(ItemStack stack, int amount) { setMagCount(stack, index, amount); } + + @Override public boolean canReload(ItemStack stack, IInventory inventory) { return false; } + @Override public void reloadAction(ItemStack stack, IInventory inventory) { } + @Override public SpentCasing getCasing(ItemStack stack, IInventory inventory) { return null; } + + @Override public ItemStack getIconForHUD(ItemStack stack, EntityPlayer player) { return new ItemStack(ModItems.fluid_icon, 1, this.getMagType(stack, index)); } + @Override public String reportAmmoStateForHUD(ItemStack stack, EntityPlayer player) { return getIconForHUD(stack, player).getDisplayName(); } + + @Override public void setAmountBeforeReload(ItemStack stack, int amount) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_PREV + index, amount); } + @Override public int getAmountBeforeReload(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_PREV + index); } + @Override public void setAmountAfterReload(ItemStack stack, int amount) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_AFTER + index, amount); } + @Override public int getAmountAfterReload(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_AFTER + index); } + + public static int getMagType(ItemStack stack, int index) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_TYPE + index); } + public static void setMagType(ItemStack stack, int index, int value) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_TYPE + index, value); } + public static int getMagCount(ItemStack stack, int index) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_COUNT + index); } + public static void setMagCount(ItemStack stack, int index, int value) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_COUNT + index, value); } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFullReload.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFullReload.java new file mode 100644 index 000000000..f93420294 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineFullReload.java @@ -0,0 +1,87 @@ +package com.hbm.items.weapon.sedna.mags; + +import com.hbm.items.weapon.sedna.BulletConfig; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +/** Uses individual bullets which are loaded all at once */ +public class MagazineFullReload extends MagazineSingleTypeBase { + + public MagazineFullReload(int index, int capacity) { + super(index, capacity); + } + + /** Returns true if the player has the same ammo if partially loaded, or any valid ammo if not */ + @Override + public boolean canReload(ItemStack stack, IInventory inventory) { + + if(this.getAmount(stack, inventory) >= this.getCapacity(stack)) return false; + + if(inventory == null) return true; + + for(int i = 0; i < inventory.getSizeInventory(); i++) { + ItemStack slot = inventory.getStackInSlot(i); + + if(slot != null) { + if(this.getAmount(stack, inventory) == 0) { + for(BulletConfig config : this.acceptedBullets) { + if(config.ammo.matchesRecipe(slot, true)) return true; + } + } else { + BulletConfig config = this.getType(stack, inventory); + if(config == null) { config = this.acceptedBullets.get(0); this.setType(stack, config); } + if(config.ammo.matchesRecipe(slot, true)) return true; + } + } + } + + return false; + } + + /** Reloads all rounds at once. If the mag is empty, the mag's type will change to the first valid ammo type */ + @Override + public void reloadAction(ItemStack stack, IInventory inventory) { + + if(inventory == null) { + BulletConfig config = this.getType(stack, inventory); + if(config == null) { config = this.acceptedBullets.get(0); this.setType(stack, config); } //fixing broken NBT + this.setAmount(stack, this.capacity); + return; + } + + for(int i = 0; i < inventory.getSizeInventory(); i++) { + ItemStack slot = inventory.getStackInSlot(i); + + if(slot != null) { + + //mag is empty, assume next best type + if(this.getAmount(stack, inventory) == 0) { + + for(BulletConfig config : this.acceptedBullets) { + if(config.ammo.matchesRecipe(slot, true)) { + this.setType(stack, config); + int wantsToLoad = (int) Math.ceil((double) this.getCapacity(stack) / (double) config.ammoReloadCount); + int toLoad = Math.min(wantsToLoad, slot.stackSize); + this.setAmount(stack, Math.min(toLoad * config.ammoReloadCount, this.capacity)); + inventory.decrStackSize(i, toLoad); + break; + } + } + //mag has a type set, only load that + } else { + BulletConfig config = this.getType(stack, inventory); + if(config == null) { config = this.acceptedBullets.get(0); this.setType(stack, config); } //fixing broken NBT + + if(config.ammo.matchesRecipe(slot, true)) { + int alreadyLoaded = this.getAmount(stack, inventory); + int wantsToLoad = (int) Math.ceil((double) this.getCapacity(stack) / (double) config.ammoReloadCount) - (alreadyLoaded / config.ammoReloadCount); + int toLoad = Math.min(wantsToLoad, slot.stackSize); + this.setAmount(stack, Math.min((toLoad * config.ammoReloadCount) + alreadyLoaded, this.capacity)); + inventory.decrStackSize(i, toLoad); + } + } + } + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleReload.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleReload.java new file mode 100644 index 000000000..879155413 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleReload.java @@ -0,0 +1,84 @@ +package com.hbm.items.weapon.sedna.mags; + +import com.hbm.items.weapon.sedna.BulletConfig; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +/** Uses individual bullets which are loaded one by one */ +public class MagazineSingleReload extends MagazineSingleTypeBase { + + public MagazineSingleReload(int index, int capacity) { + super(index, capacity); + } + + /** Returns true if the player has the same ammo if partially loaded, or any valid ammo if not */ + @Override + public boolean canReload(ItemStack stack, IInventory inventory) { + + if(this.getAmount(stack, inventory) >= this.getCapacity(stack)) return false; + + if(inventory == null) return true; + + for(int i = 0; i < inventory.getSizeInventory(); i++) { + ItemStack slot = inventory.getStackInSlot(i); + + if(slot != null) { + if(this.getAmount(stack, inventory) == 0) { + for(BulletConfig config : this.acceptedBullets) { + if(config.ammo.matchesRecipe(slot, true)) return true; + } + } else { + BulletConfig config = this.getType(stack, inventory); + if(config == null) { config = this.acceptedBullets.get(0); this.setType(stack, config); } + if(config.ammo.matchesRecipe(slot, true)) return true; + } + } + } + + return false; + } + + /** Reloads all rounds at once. If the mag is empty, the mag's type will change to the first valid ammo type */ + @Override + public void reloadAction(ItemStack stack, IInventory inventory) { + + if(inventory == null) { + BulletConfig config = this.getType(stack, inventory); + if(config == null) { config = this.acceptedBullets.get(0); this.setType(stack, config); } //fixing broken NBT + this.setAmount(stack, this.getAmount(stack, inventory) + 1); + return; + } + + for(int i = 0; i < inventory.getSizeInventory(); i++) { + ItemStack slot = inventory.getStackInSlot(i); + + if(slot != null) { + + //mag is empty, assume next best type + if(this.getAmount(stack, inventory) == 0) { + + for(BulletConfig config : this.acceptedBullets) { + if(config.ammo.matchesRecipe(slot, true)) { + this.setType(stack, config); + this.setAmount(stack, 1); + inventory.decrStackSize(i, 1); + return; + } + } + //mag has a type set, only load that + } else { + BulletConfig config = this.getType(stack, inventory); + if(config == null) { config = this.acceptedBullets.get(0); this.setType(stack, config); } //fixing broken NBT + + if(config.ammo.matchesRecipe(slot, true)) { + int alreadyLoaded = this.getAmount(stack, inventory); + this.setAmount(stack, alreadyLoaded + 1); + inventory.decrStackSize(i, 1); + return; + } + } + } + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java new file mode 100644 index 000000000..5348dc4bc --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java @@ -0,0 +1,91 @@ +package com.hbm.items.weapon.sedna.mags; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.particle.SpentCasing; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +/** Base class for typical magazines, i.e. ones that hold bullets, shells, grenades, etc, any ammo item. Stores a single type of BulletConfigs */ +public abstract class MagazineSingleTypeBase implements IMagazine { + + public static final String KEY_MAG_COUNT = "magcount"; + public static final String KEY_MAG_TYPE = "magtype"; + public static final String KEY_MAG_PREV = "magprev"; + public static final String KEY_MAG_AFTER = "magafter"; + + protected List acceptedBullets = new ArrayList(); + + /** A number so the gun tell multiple mags apart */ + public int index; + /** How much ammo this mag can hold */ + public int capacity; + + public MagazineSingleTypeBase(int index, int capacity) { + this.index = index; + this.capacity = capacity; + } + + public MagazineSingleTypeBase addConfigs(BulletConfig... cfgs) { for(BulletConfig cfg : cfgs) acceptedBullets.add(cfg); return this; } + + @Override + public BulletConfig getType(ItemStack stack, IInventory inventory) { + int type = getMagType(stack, index); + if(type >= 0 && type < BulletConfig.configs.size()) { + BulletConfig cfg = BulletConfig.configs.get(type); + if(acceptedBullets.contains(cfg)) return cfg; + return acceptedBullets.get(0); + } + return null; + } + + @Override + public void setType(ItemStack stack, BulletConfig type) { + int i = BulletConfig.configs.indexOf(type); + if(i >= 0) setMagType(stack, index, i); + } + + @Override + public ItemStack getIconForHUD(ItemStack stack, EntityPlayer player) { + BulletConfig config = this.getType(stack, player.inventory); + if(config != null) return config.ammo.toStack(); + return null; + } + + @Override + public String reportAmmoStateForHUD(ItemStack stack, EntityPlayer player) { + return getAmount(stack, player.inventory) + " / " + getCapacity(stack); + } + + @Override + public SpentCasing getCasing(ItemStack stack, IInventory inventory) { + return this.getType(stack, inventory).casing; + } + + @Override + public void useUpAmmo(ItemStack stack, IInventory inventory, int amount) { + this.setAmount(stack, this.getAmount(stack, inventory) - amount); + } + + @Override public int getCapacity(ItemStack stack) { return capacity; } + @Override public int getAmount(ItemStack stack, IInventory inventory) { return getMagCount(stack, index); } + @Override public void setAmount(ItemStack stack, int amount) { setMagCount(stack, index, amount); } + + @Override public void setAmountBeforeReload(ItemStack stack, int amount) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_PREV + index, amount); } + @Override public int getAmountBeforeReload(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_PREV + index); } + @Override public void setAmountAfterReload(ItemStack stack, int amount) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_AFTER + index, amount); } + @Override public int getAmountAfterReload(ItemStack stack) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_AFTER + index); } + + // MAG TYPE // + public static int getMagType(ItemStack stack, int index) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_TYPE + index); } //TODO: replace with named tags to avoid ID shifting + public static void setMagType(ItemStack stack, int index, int value) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_TYPE + index, value); } + + // MAG COUNT // + public static int getMagCount(ItemStack stack, int index) { return ItemGunBaseNT.getValueInt(stack, KEY_MAG_COUNT + index); } + public static void setMagCount(ItemStack stack, int index, int value) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_COUNT + index, value); } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/package-info.java b/src/main/java/com/hbm/items/weapon/sedna/package-info.java new file mode 100644 index 000000000..a23713eca --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/package-info.java @@ -0,0 +1,24 @@ +/** + * + */ +/** + * @author hbm + * + */ +package com.hbm.items.weapon.sedna; + +/* + +The MK2 unified gun system SEDNA + +ItemGunBase - NBT, timer, keybind handling + | GunConfig (1) - durability and sights + | Receiver (n) - base damage, fire modes + | Magazine (1) - NBT, reload management + | BulletConfig (n) - ammo stats + +Based on this system, alt fire that should logically use the same receiver actually use two different receivers, and +by extension two different mag fields. In this case, make sure to use the same mag instance (or an identical one) +on either receiver to ensure that both receivers access the same ammo pool and accept the same ammo types. + +*/ \ No newline at end of file diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index cdd0a61cd..157ff80ea 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -1,445 +1,49 @@ package com.hbm.lib; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; -import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.ItemBookLore; -import com.hbm.items.tool.ItemBlowtorch; - -import net.minecraft.init.Items; +import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; +import java.util.Random; + public class HbmChestContents { - public static WeightedRandomChestContent[] modGeneric = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(Items.bread, 0, 1, 5, 8), - new WeightedRandomChestContent(ModItems.twinkie, 0, 1, 3, 6), - new WeightedRandomChestContent(Items.iron_ingot, 0, 2, 6, 10), - new WeightedRandomChestContent(ModItems.ingot_steel, 0, 2, 5, 7), - new WeightedRandomChestContent(ModItems.ingot_beryllium, 0, 1, 2, 4), - new WeightedRandomChestContent(ModItems.ingot_titanium, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.circuit_targeting_tier1, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.gun_revolver, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), - new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.gun_lever_action, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_20gauge, 0, 2, 6, 3), - new WeightedRandomChestContent(ModItems.casing_9, 0, 4, 10, 3), - new WeightedRandomChestContent(ModItems.casing_50, 0, 4, 10, 3), - new WeightedRandomChestContent(ModItems.primer_9, 0, 4, 10, 3), - new WeightedRandomChestContent(ModItems.primer_50, 0, 4, 10, 3), - new WeightedRandomChestContent(ModItems.cordite, 0, 4, 6, 5), - new WeightedRandomChestContent(ModItems.battery_generic, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.scrap, 0, 1, 3, 10), - new WeightedRandomChestContent(ModItems.dust, 0, 2, 4, 9), - new WeightedRandomChestContent(ModItems.bottle_opener, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.bottle_cherry, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.cap_nuka, 0, 1, 15, 7), - new WeightedRandomChestContent(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), - new WeightedRandomChestContent(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 3) }; - - public static WeightedRandomChestContent[] machineParts = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.plate_steel, 0, 1, 5, 5), - new WeightedRandomChestContent(ModItems.hull_big_steel, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.hull_small_steel, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.plate_polymer, 0, 1, 6, 5), - new WeightedRandomChestContent(ModItems.bolt_tungsten, 0, 1, 4, 3), - new WeightedRandomChestContent(ModItems.board_copper, 0, 1, 2, 4), - new WeightedRandomChestContent(ModItems.coil_tungsten, 0, 1, 2, 5), - new WeightedRandomChestContent(ModItems.motor, 0, 1, 2, 4), - new WeightedRandomChestContent(ModItems.tank_steel, 0, 1, 2, 3), - new WeightedRandomChestContent(ModItems.coil_copper, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.coil_copper_torus, 0, 1, 2, 3), - new WeightedRandomChestContent(ModItems.wire_red_copper, 0, 1, 8, 5), - new WeightedRandomChestContent(ModItems.piston_selenium, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.battery_advanced_cell, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.circuit_raw, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.circuit_aluminium, 0, 1, 2, 4), - new WeightedRandomChestContent(ModItems.circuit_copper, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.blade_titanium, 0, 1, 8, 1) - }; + public static WeightedRandomChestContent weighted(Item item, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(item, meta, Math.min(min, max), Math.max(min, max), weight); } + public static WeightedRandomChestContent weighted(Block block, int meta, int min, int max, int weight) { return new WeightedRandomChestContent(Item.getItemFromBlock(block), meta, Math.min(min, max), Math.max(min, max), weight); } + public static WeightedRandomChestContent weighted(ItemStack item, int min, int max, int weight) { return new WeightedRandomChestContent(item, Math.min(min, max), Math.max(min, max), weight); } - public static WeightedRandomChestContent[] antenna = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.twinkie, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.ingot_steel, 0, 1, 2, 7), - new WeightedRandomChestContent(ModItems.ingot_red_copper, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.ingot_titanium, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.wire_red_copper, 0, 2, 3, 7), - new WeightedRandomChestContent(ModItems.circuit_targeting_tier1, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.circuit_copper, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.battery_generic, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.powder_iodine, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_bromine, 0, 1, 1, 1), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.steel_poles), 0, 1, 4, 8), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.steel_scaffold), 0, 1, 3, 8), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.pole_top), 0, 1, 1, 4), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.pole_satellite_receiver), 0, 1, 1, 7), - new WeightedRandomChestContent(ModItems.scrap, 0, 1, 3, 10), - new WeightedRandomChestContent(ModItems.dust, 0, 2, 4, 9), - new WeightedRandomChestContent(ModItems.bottle_opener, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.bottle_cherry, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.cap_nuka, 0, 1, 15, 7), - new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 2) }; - - public static WeightedRandomChestContent[] expensive = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.chlorine_pinwheel, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.circuit_targeting_tier3, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.circuit_gold, 0, 1, 2, 3), - new WeightedRandomChestContent(ModItems.circuit_targeting_tier4, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 1, 3, 6), - new WeightedRandomChestContent(ModItems.gun_kit_2, 0, 1, 2, 3), - new WeightedRandomChestContent(ModItems.gun_rpg, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.ammo_rocket, 0, 1, 4, 5), - new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.LOW.ordinal(), 1, 2, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 2, 1), - new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.grenade_smart, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.grenade_mirv, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.battery_advanced_cell, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.battery_schrabidium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.syringe_awesome, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.crate_caller, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.fusion_core, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 6), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 3), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_barrel), 0, 1, 1, 6), - new WeightedRandomChestContent(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 2, 2), - new WeightedRandomChestContent(ModItems.canister_full, Fluids.BIOFUEL.getID(), 1, 2, 3), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 5), - new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.bomb_caller, 1, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bomb_caller, 2, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.journal_pip, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.journal_bj, 0, 1, 1, 1) }; - - public static WeightedRandomChestContent[] nukeTrash = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.nugget_u238, 0, 3, 12, 5), - new WeightedRandomChestContent(ModItems.nugget_pu240, 0, 3, 8, 5), - new WeightedRandomChestContent(ModItems.nugget_neptunium, 0, 1, 4, 3), - new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U238.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.U238.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.U238.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 5), - new WeightedRandomChestContent(ModItems.hazmat_kit, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.yellow_barrel), 0, 1, 1, 2) }; - - public static WeightedRandomChestContent[] nuclearFuel = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.billet_uranium, 0, 1, 4, 4), - new WeightedRandomChestContent(ModItems.billet_th232, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.billet_uranium_fuel, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.billet_mox_fuel, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.billet_thorium_fuel, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.billet_ra226be, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.billet_beryllium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.nugget_u233, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.nugget_uranium_fuel, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.rod_zirnox_empty, 0, 1, 3, 3), - new WeightedRandomChestContent(ModItems.ingot_graphite, 0, 1, 4, 3), - new WeightedRandomChestContent(ModItems.pile_rod_uranium, 0, 2, 5, 3), - new WeightedRandomChestContent(ModItems.pile_rod_source, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.reacher, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.screwdriver, 0, 1, 1, 2), - }; - - public static WeightedRandomChestContent[] nuclear = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.nugget_u235, 0, 3, 12, 5), - new WeightedRandomChestContent(ModItems.nugget_pu238, 0, 3, 12, 5), - new WeightedRandomChestContent(ModItems.nugget_ra226, 0, 3, 6, 5), - new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.U235.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.U235.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), 1, 1, 4), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), 1, 1, 4), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.THF.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_zirnox_tritium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.U233_FUEL.ordinal(), 1, 1, 1), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.U235_FUEL.ordinal(), 1, 1, 1), - new WeightedRandomChestContent(ModItems.pellet_rtg, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.powder_thorium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_neptunium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_strontium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_cobalt, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 5), - new WeightedRandomChestContent(ModItems.hazmat_kit, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.yellow_barrel), 0, 1, 3, 3) }; - - public static WeightedRandomChestContent[] vertibird = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.t45_helmet, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.t45_plate, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.t45_legs, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.t45_boots, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.t45_kit, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.fusion_core, 0, 1, 1, 10), - new WeightedRandomChestContent(ModItems.gun_revolver, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 1, 24, 4), - new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 2, 3, 4), - new WeightedRandomChestContent(ModItems.gun_rpg, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.ammo_rocket, 0, 1, 6, 3), - new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 2), - new WeightedRandomChestContent(ModItems.billet_uranium_fuel, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.ingot_uranium_fuel, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), - new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 6), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 7), - new WeightedRandomChestContent(ModItems.crate_caller, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bomb_caller, 1, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bomb_caller, 2, 1, 1, 2) }; - - public static WeightedRandomChestContent[] missile = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.missile_generic, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.missile_incendiary, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.designator, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.crate_caller, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.thruster_small, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.thruster_medium, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.fuel_tank_small, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.fuel_tank_medium, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bomb_caller, 3, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 10) }; - - public static WeightedRandomChestContent[] spaceship = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.ingot_advanced_alloy, 0, 2, 16, 5), - new WeightedRandomChestContent(ModItems.wire_advanced_alloy, 0, 8, 32, 5), - new WeightedRandomChestContent(ModItems.coil_advanced_alloy, 0, 2, 16, 5), - new WeightedRandomChestContent(ModItems.cell_deuterium, 0, 1, 8, 5), - new WeightedRandomChestContent(ModItems.cell_tritium, 0, 1, 8, 5), - new WeightedRandomChestContent(ModItems.cell_antimatter, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_neodymium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_niobium, 0, 1, 1, 1), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.fusion_conductor), 0, 2, 4, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.fusion_heater), 0, 1, 3, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.reactor_element), 0, 1, 2, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.block_tungsten), 0, 3, 8, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_wire_coated), 0, 4, 8, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_cable), 0, 8, 16, 5) }; - - public static WeightedRandomChestContent[] powder = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.powder_neptunium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_iodine, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_thorium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_astatine, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_neodymium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_caesium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_strontium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_cobalt, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_bromine, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_niobium, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_tennessine, 0, 1, 32, 1), - new WeightedRandomChestContent(ModItems.powder_cerium, 0, 1, 32, 1) }; - - public static WeightedRandomChestContent[] vault1 = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(Items.gold_ingot, 0, 3, 14, 1), - new WeightedRandomChestContent(ModItems.pin, 0, 8, 8, 1), - new WeightedRandomChestContent(ModItems.gun_calamity, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 3, 1), - new WeightedRandomChestContent(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), - new WeightedRandomChestContent(ModItems.ammo_50bmg, 0, 24, 48, 1), - new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 6, 12, 1), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.grenade_if_he, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.grenade_if_incendiary, 0, 1, 1, 1), - new WeightedRandomChestContent(Items.diamond, 0, 1, 2, 1) }; - - public static WeightedRandomChestContent[] vault2 = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.ingot_desh, 0, 2, 6, 1), - new WeightedRandomChestContent(ModItems.battery_advanced_cell_4, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_desh_mix, 0, 1, 5, 1), - new WeightedRandomChestContent(Items.diamond, 0, 3, 6, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_container, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.grenade_smart, 0, 1, 6, 1), - new WeightedRandomChestContent(ModItems.powder_yellowcake, 0, 16, 24, 1), - new WeightedRandomChestContent(ModItems.gun_uzi, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_uzi_silencer, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.clip_uzi, 0, 1, 3, 1), - new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 12, 16, 1), - new WeightedRandomChestContent(ModItems.circuit_gold, 0, 2, 6, 1) }; - - public static WeightedRandomChestContent[] vault3 = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.ingot_desh, 0, 6, 16, 1), - new WeightedRandomChestContent(ModItems.battery_lithium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_power, 0, 1, 5, 1), - new WeightedRandomChestContent(ModItems.sat_chip, 0, 1, 1, 1), - new WeightedRandomChestContent(Items.diamond, 0, 5, 9, 1), - new WeightedRandomChestContent(ModItems.warhead_nuclear, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, 0, 1, 3, 1), - new WeightedRandomChestContent(ModItems.ammo_container, 0, 1, 4, 1), - new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 2, 1), - new WeightedRandomChestContent(ModItems.grenade_mirv, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_yellowcake, 0, 26, 42, 1), - new WeightedRandomChestContent(ModItems.ingot_u235, 0, 3, 6, 1), - new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_revolver_pip, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.clip_revolver_pip, 0, 2, 4, 1), - new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 18, 32, 1), - new WeightedRandomChestContent(ModItems.circuit_gold, 0, 6, 12, 1) }; - - public static WeightedRandomChestContent[] vault4 = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.ammo_container, 0, 3, 6, 1), - new WeightedRandomChestContent(ModItems.clip_fatman, 0, 2, 3, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.MIRV.ordinal(), 2, 3, 1), - new WeightedRandomChestContent(ModItems.gun_mirv, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_proto, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gun_b92, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ingot_combine_steel, 0, 16, 28, 1), - new WeightedRandomChestContent(ModItems.man_core, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.boy_kit, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.nuke_starter_kit, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.weaponized_starblaster_cell, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.warhead_mirv, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.battery_schrabidium_cell, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_nitan_mix, 0, 16, 32, 1) }; - - public static WeightedRandomChestContent[] officeTrash = new WeightedRandomChestContent[] { - //Meta, Min amount, Max amount, Weight - new WeightedRandomChestContent(Items.paper, 0, 1, 12, 10), - new WeightedRandomChestContent(Items.book, 0, 1, 3, 4), - new WeightedRandomChestContent(ModItems.twinkie, 0, 1, 2, 6), - new WeightedRandomChestContent(ModItems.coffee, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.flame_politics, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.ring_pull, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.can_empty, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.can_creature, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.can_smart, 0, 1, 3, 2), - new WeightedRandomChestContent(ModItems.can_mrsugar, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.cap_nuka, 0, 1, 16, 2), - new WeightedRandomChestContent(ModItems.book_guide, 3, 1, 1, 1), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.deco_computer), 0, 1, 1, 1)}; - - public static WeightedRandomChestContent[] filingCabinet = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(Items.paper, 0, 1, 12, 240), - new WeightedRandomChestContent(Items.book, 0, 1, 3, 90), - new WeightedRandomChestContent(Items.map, 0, 1, 1, 50), - new WeightedRandomChestContent(Items.writable_book, 0, 1, 1, 30), - new WeightedRandomChestContent(ModItems.cigarette, 0, 1, 16, 20), - new WeightedRandomChestContent(ModItems.toothpicks, 0, 1, 16, 10), - new WeightedRandomChestContent(ModItems.dust, 0, 1, 1, 40), - new WeightedRandomChestContent(ModItems.dust_tiny, 0, 1, 3, 75), - new WeightedRandomChestContent(ModItems.ink, 0, 1, 1, 1), //make that mf rare; 1:555 weight - }; - - public static WeightedRandomChestContent[] solidFuel = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.solid_fuel, 0, 1, 5, 1), - new WeightedRandomChestContent(ModItems.solid_fuel_presto, 0, 1, 2, 2), - new WeightedRandomChestContent(ModItems.ball_dynamite, 0, 1, 4, 2), - new WeightedRandomChestContent(Items.redstone, 0, 1, 3, 1), - new WeightedRandomChestContent(ModItems.niter, 0, 1, 3, 1) - }; - - public static WeightedRandomChestContent[] labVault = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), 1, 1, 4), - new WeightedRandomChestContent(ModItems.chemistry_set, 0, 1, 1, 15), - new WeightedRandomChestContent(ModItems.screwdriver, 0, 1, 1, 10), - new WeightedRandomChestContent(ModItems.nugget_mercury, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.morning_glory, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.filter_coal, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.dust, 0, 1, 3, 25), - new WeightedRandomChestContent(Items.paper, 0, 1, 2, 15), - new WeightedRandomChestContent(ModItems.cell_empty, 0, 1, 1, 5), - new WeightedRandomChestContent(Items.glass_bottle, 0, 1, 1, 5), - new WeightedRandomChestContent(ModItems.powder_iodine, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_bromine, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_cobalt, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_neodymium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.powder_boron, 0, 1, 1, 1), - }; - - public static WeightedRandomChestContent[] lockersVault = new WeightedRandomChestContent[] { - new WeightedRandomChestContent(ModItems.robes_helmet, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.robes_plate, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.robes_legs, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.robes_boots, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.jackt, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.jackt2, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gas_mask_mono, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.goggles, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.flame_opinion, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.flame_conspiracy, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.flame_politics, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.cigarette, 0, 1, 8, 5), - new WeightedRandomChestContent(ModItems.canteen_13, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.armor_polish, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.rag, 0, 1, 3, 5), - new WeightedRandomChestContent(Items.paper, 0, 1, 6, 7), - new WeightedRandomChestContent(Items.clock, 0, 1, 1, 3), - new WeightedRandomChestContent(Items.book, 0, 1, 5, 10), - new WeightedRandomChestContent(Items.experience_bottle, 0, 1, 3, 1), - }; - /** ITEMBOOKLORE SHIT */ //one downside of all this huge flexibility, make a wrapper if it's too annoying public static ItemStack generateOfficeBook(Random rand) { //TODO rework this lore in general String key; int pages; - switch(rand.nextInt(10)) { - case 0: - key = "resignation_note"; pages = 3; break; - case 1: - key = "memo_stocks"; pages = 1; break; - case 2: - key = "memo_schrab_gsa"; pages = 2; break; - case 3: - key = "memo_schrab_rd"; pages = 4; break; - case 4: - key = "memo_schrab_nuke"; pages = 3; break; - case 5: - key = "bf_bomb_1"; pages = 4; break; - case 6: - key = "bf_bomb_2"; pages = 6; break; - case 7: - key = "bf_bomb_3"; pages = 6; break; - case 8: - key = "bf_bomb_4"; pages = 5; break; - case 9: - key = "bf_bomb_5"; pages = 9; break; - default: - return null; + switch(rand.nextInt(5)) { + case 0: key = "resignation_note"; pages = 3; break; + case 1: key = "memo_stocks"; pages = 1; break; + case 2: key = "memo_schrab_gsa"; pages = 2; break; + case 3: key = "memo_schrab_rd"; pages = 4; break; + case 4: key = "memo_schrab_nuke"; pages = 3; break; + default: return null; } - + return ItemBookLore.createBook(key, pages, 0x6BC8FF, 0x0A0A0A); } + + public static ItemStack generateLabBook(Random rand) { + String key; + int pages; + + switch(rand.nextInt(5)) { + case 0: key = "bf_bomb_1"; pages = 4; break; + case 1: key = "bf_bomb_2"; pages = 6; break; + case 2: key = "bf_bomb_3"; pages = 6; break; + case 3: key = "bf_bomb_4"; pages = 5; break; + case 4: key = "bf_bomb_5"; pages = 9; break; + default: return null; + } + + return ItemBookLore.createBook(key, pages, 0x1E1E1E, 0x46EA44); + } } diff --git a/src/main/java/com/hbm/lib/HbmCollection.java b/src/main/java/com/hbm/lib/HbmCollection.java index a0d1efc1e..577e990a8 100644 --- a/src/main/java/com/hbm/lib/HbmCollection.java +++ b/src/main/java/com/hbm/lib/HbmCollection.java @@ -1,79 +1,7 @@ package com.hbm.lib; -import java.util.List; -import java.util.Set; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.items.weapon.ItemAmmo.AmmoItemTrait; - public class HbmCollection { - - public static final Set APType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_WEAR); - public static final Set FlechetteType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR); - public static final Set IncendiaryType = ImmutableSet.of(AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR); - public static final Set PhosphorusType = ImmutableSet.of(AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION); - public static final Set PhosphorusTypeSpecial = ImmutableSet.of(AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_WEAR); - public static final Set ExplosiveType = ImmutableSet.of(AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_HEAVY_WEAR); - public static final Set DUType = ImmutableSet.of(AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.CON_HEAVY_WEAR); - public static final Set StarmetalType = ImmutableSet.of(AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.NEU_STARMETAL, AmmoItemTrait.CON_HEAVY_WEAR); - public static final Set ChlorophyteType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.NEU_CHLOROPHYTE, AmmoItemTrait.NEU_HOMING, AmmoItemTrait.CON_PENETRATION); - - /// BULLET COLLECTIONS - // SHOTGUNS - /** 12 GAUGE **/ - public static final List g12 = ImmutableList.of(BulletConfigSyncingUtil.G12_NORMAL, BulletConfigSyncingUtil.G12_INCENDIARY, BulletConfigSyncingUtil.G12_SHRAPNEL, BulletConfigSyncingUtil.G12_DU, BulletConfigSyncingUtil.G12_AM, BulletConfigSyncingUtil.G12_SLEEK, BulletConfigSyncingUtil.G12_PERCUSSION); - public static final List g12hs = ImmutableList.of(BulletConfigSyncingUtil.G12HS_NORMAL, BulletConfigSyncingUtil.G12HS_INCENDIARY, BulletConfigSyncingUtil.G12HS_SHRAPNEL, BulletConfigSyncingUtil.G12HS_DU, BulletConfigSyncingUtil.G12HS_AM, BulletConfigSyncingUtil.G12HS_SLEEK, BulletConfigSyncingUtil.G12HS_PERCUSSION); - /** 20 GAUGE **/ - public static final List g20 = ImmutableList.of(BulletConfigSyncingUtil.G20_NORMAL, BulletConfigSyncingUtil.G20_SLUG, BulletConfigSyncingUtil.G20_FLECHETTE, BulletConfigSyncingUtil.G20_FIRE, BulletConfigSyncingUtil.G20_SHRAPNEL, BulletConfigSyncingUtil.G20_EXPLOSIVE, BulletConfigSyncingUtil.G20_CAUSTIC, BulletConfigSyncingUtil.G20_SHOCK, BulletConfigSyncingUtil.G20_WITHER, BulletConfigSyncingUtil.G20_SLEEK); - /** 4 GAUGE **/ - public static final List g4 = ImmutableList.of(BulletConfigSyncingUtil.G4_NORMAL, BulletConfigSyncingUtil.G4_SLUG, BulletConfigSyncingUtil.G4_FLECHETTE, BulletConfigSyncingUtil.G4_FLECHETTE_PHOSPHORUS, BulletConfigSyncingUtil.G4_EXPLOSIVE, BulletConfigSyncingUtil.G4_SEMTEX, BulletConfigSyncingUtil.G4_BALEFIRE, BulletConfigSyncingUtil.G4_KAMPF, BulletConfigSyncingUtil.G4_CANISTER, BulletConfigSyncingUtil.G4_CLAW, BulletConfigSyncingUtil.G4_VAMPIRE, BulletConfigSyncingUtil.G4_VOID, BulletConfigSyncingUtil.G4_TITAN, BulletConfigSyncingUtil.G4_SLEEK); - // PISTOL CALIBER - /** .22 LONG RIFLE **/ - public static final List lr22 = ImmutableList.of(BulletConfigSyncingUtil.LR22_NORMAL, BulletConfigSyncingUtil.LR22_AP, BulletConfigSyncingUtil.CHL_LR22); - public static final List lr22Inc = ImmutableList.of(BulletConfigSyncingUtil.LR22_NORMAL_FIRE, BulletConfigSyncingUtil.LR22_AP_FIRE, BulletConfigSyncingUtil.CHL_LR22_FIRE); - /** .44 MAGNUM (BASIC) **/ - public static final List m44Normal = ImmutableList.of(BulletConfigSyncingUtil.M44_NORMAL, BulletConfigSyncingUtil.M44_AP, BulletConfigSyncingUtil.M44_DU, BulletConfigSyncingUtil.M44_PHOSPHORUS, BulletConfigSyncingUtil.M44_STAR, BulletConfigSyncingUtil.CHL_M44, BulletConfigSyncingUtil.M44_ROCKET); - /** .44 MAGNUM (ALL) **/ - public static final List m44All = ImmutableList.of(BulletConfigSyncingUtil.M44_NORMAL, BulletConfigSyncingUtil.M44_AP, BulletConfigSyncingUtil.M44_DU, BulletConfigSyncingUtil.M44_PHOSPHORUS, BulletConfigSyncingUtil.M44_STAR, BulletConfigSyncingUtil.CHL_M44, BulletConfigSyncingUtil.M44_ROCKET, BulletConfigSyncingUtil.M44_PIP, BulletConfigSyncingUtil.M44_BJ, BulletConfigSyncingUtil.M44_SILVER); - /** .50 ACTION EXPRESS **/ - public static final List ae50 = ImmutableList.of(BulletConfigSyncingUtil.AE50_NORMAL, BulletConfigSyncingUtil.AE50_AP, BulletConfigSyncingUtil.AE50_DU, BulletConfigSyncingUtil.AE50_STAR, BulletConfigSyncingUtil.CHL_AE50); - /** 9MM Parabellum **/ - public static final List p9 = ImmutableList.of(BulletConfigSyncingUtil.P9_NORMAL, BulletConfigSyncingUtil.P9_AP, BulletConfigSyncingUtil.P9_DU, BulletConfigSyncingUtil.CHL_P9, BulletConfigSyncingUtil.P9_ROCKET); - /** .45 AUTOMATIC COLT PISTOL **/ - public static final List acp45 = ImmutableList.of(BulletConfigSyncingUtil.ACP_45, BulletConfigSyncingUtil.ACP_45_AP, BulletConfigSyncingUtil.ACP_45_DU); - // RIFLE CALIBER - /** .50 BROWNING MACHINE GUN **/ - public static final List bmg50 = ImmutableList.of(BulletConfigSyncingUtil.BMG50_NORMAL, BulletConfigSyncingUtil.BMG50_INCENDIARY, BulletConfigSyncingUtil.BMG50_PHOSPHORUS, BulletConfigSyncingUtil.BMG50_EXPLOSIVE, BulletConfigSyncingUtil.BMG50_AP, BulletConfigSyncingUtil.BMG50_DU, BulletConfigSyncingUtil.BMG50_STAR, BulletConfigSyncingUtil.CHL_BMG50, BulletConfigSyncingUtil.BMG50_SLEEK); - /** .50 BROWNING MACHINE GUN (FLECHETTE) **/ - public static final List bmg50Flechette = ImmutableList.of(BulletConfigSyncingUtil.BMG50_FLECHETTE_AM, BulletConfigSyncingUtil.BMG50_FLECHETTE_NORMAL, BulletConfigSyncingUtil.BMG50_FLECHETTE_PO); - /** 5.56MMx45 NATO (BASIC) **/ - public static final List r556 = ImmutableList.of(BulletConfigSyncingUtil.R556_NORMAL, BulletConfigSyncingUtil.R556_TRACER, BulletConfigSyncingUtil.R556_PHOSPHORUS, BulletConfigSyncingUtil.R556_AP, BulletConfigSyncingUtil.R556_DU, BulletConfigSyncingUtil.R556_STAR, BulletConfigSyncingUtil.CHL_R556, BulletConfigSyncingUtil.R556_SLEEK, BulletConfigSyncingUtil.R556_K, BulletConfigSyncingUtil.R556_GOLD); - /** 5.56MMx45 NATO (FLECHETTE) **/ - public static final List r556Flechette = ImmutableList.of(BulletConfigSyncingUtil.R556_FLECHETTE, BulletConfigSyncingUtil.R556_FLECHETTE_INCENDIARY, BulletConfigSyncingUtil.R556_FLECHETTE_PHOSPHORUS, BulletConfigSyncingUtil.R556_FLECHETTE_DU, BulletConfigSyncingUtil.CHL_R556_FLECHETTE, BulletConfigSyncingUtil.R556_FLECHETTE_SLEEK, BulletConfigSyncingUtil.R556_K); - /** 7.62x51mm NATO **/ - public static final List r762 = ImmutableList.of(BulletConfigSyncingUtil.R762_NORMAL, BulletConfigSyncingUtil.R762_PHOSPHORUS, BulletConfigSyncingUtil.R762_AP, BulletConfigSyncingUtil.R762_DU, BulletConfigSyncingUtil.R762_TRACER, BulletConfigSyncingUtil.R762_K); - /** 5MM **/ - public static final List r5 = ImmutableList.of(BulletConfigSyncingUtil.R5_NORMAL, BulletConfigSyncingUtil.R5_EXPLOSIVE, BulletConfigSyncingUtil.R5_DU, BulletConfigSyncingUtil.R5_STAR, BulletConfigSyncingUtil.CHL_R5); - /** 5MM LACUNAE **/ - public static final List r5Bolt = ImmutableList.of(BulletConfigSyncingUtil.R5_NORMAL_BOLT, BulletConfigSyncingUtil.R5_EXPLOSIVE_BOLT, BulletConfigSyncingUtil.R5_DU_BOLT, BulletConfigSyncingUtil.R5_STAR_BOLT, BulletConfigSyncingUtil.CHL_R5_BOLT); - // MISC - /** .75 **/ - public static final List b75 = ImmutableList.of(BulletConfigSyncingUtil.B75_NORMAL, BulletConfigSyncingUtil.B75_INCENDIARY, BulletConfigSyncingUtil.B75_HE); - /** 240MM SHELL **/ - public static final List cannon = ImmutableList.of(BulletConfigSyncingUtil.SHELL_NORMAL, BulletConfigSyncingUtil.SHELL_EXPLOSIVE, BulletConfigSyncingUtil.SHELL_AP, BulletConfigSyncingUtil.SHELL_DU, BulletConfigSyncingUtil.SHELL_W9); - /** FLAMETHROWER FUEL **/ - public static final List flamer = ImmutableList.of(BulletConfigSyncingUtil.FLAMER_NORMAL, BulletConfigSyncingUtil.FLAMER_NAPALM, BulletConfigSyncingUtil.FLAMER_WP, BulletConfigSyncingUtil.FLAMER_VAPORIZER, BulletConfigSyncingUtil.FLAMER_GAS); - /** MINI-NUKES **/ - public static final List fatman = ImmutableList.of(BulletConfigSyncingUtil.NUKE_NORMAL, BulletConfigSyncingUtil.NUKE_LOW, BulletConfigSyncingUtil.NUKE_HIGH, BulletConfigSyncingUtil.NUKE_TOTS, BulletConfigSyncingUtil.NUKE_SAFE, BulletConfigSyncingUtil.NUKE_PUMPKIN, BulletConfigSyncingUtil.NUKE_BARREL); - /** MIRV MINI-NUKES **/ - public static final List fatmanMIRV = ImmutableList.of(BulletConfigSyncingUtil.NUKE_MIRV_NORMAL, BulletConfigSyncingUtil.NUKE_MIRV_LOW, BulletConfigSyncingUtil.NUKE_MIRV_HIGH, BulletConfigSyncingUtil.NUKE_MIRV_SAFE, BulletConfigSyncingUtil.NUKE_MIRV_SPECIAL); - /** 40MM GRENADE **/ - public static final List grenade = ImmutableList.of(BulletConfigSyncingUtil.GRENADE_NORMAL, BulletConfigSyncingUtil.GRENADE_HE, BulletConfigSyncingUtil.GRENADE_INCENDIARY, BulletConfigSyncingUtil.GRENADE_PHOSPHORUS, BulletConfigSyncingUtil.GRENADE_CHEMICAL, BulletConfigSyncingUtil.GRENADE_CONCUSSION, BulletConfigSyncingUtil.GRENADE_FINNED, BulletConfigSyncingUtil.GRENADE_SLEEK, BulletConfigSyncingUtil.GRENADE_NUCLEAR, BulletConfigSyncingUtil.GRENADE_TRACER, BulletConfigSyncingUtil.GRENADE_KAMPF); - /** 84MM ROCKET **/ - public static final List rocket = ImmutableList.of(BulletConfigSyncingUtil.ROCKET_NORMAL, BulletConfigSyncingUtil.ROCKET_HE, BulletConfigSyncingUtil.ROCKET_INCENDIARY, BulletConfigSyncingUtil.ROCKET_PHOSPHORUS, BulletConfigSyncingUtil.ROCKET_SHRAPNEL, BulletConfigSyncingUtil.ROCKET_EMP, BulletConfigSyncingUtil.ROCKET_GLARE, BulletConfigSyncingUtil.ROCKET_TOXIC, BulletConfigSyncingUtil.ROCKET_CANISTER, BulletConfigSyncingUtil.ROCKET_SLEEK, BulletConfigSyncingUtil.ROCKET_NUKE, BulletConfigSyncingUtil.ROCKET_CHAINSAW); - + /// FREQUENTLY USED TRANSLATION KEYS // GUN MANUFACTURERS public static enum EnumGunManufacturer { @@ -95,6 +23,8 @@ public class HbmCollection { COMBINE, /**Cube 2: Sauerbraten**/ CUBE, + /**Deep Rock Galactic**/ + DRG, /**Enzinger Union**/ ENZINGER, /**Equestria Missile Systems**/ @@ -131,8 +61,10 @@ public class HbmCollection { METRO, /**MWT Prototype Labs**/ MWT, + /**Naval Air Weapons Station**/ + NAWS, /**Erfurter Maschinenfabrik Geipel**/ - NAZI, + ERFURT, /**No manufacturer, just puts "-" **/ NONE, /**OxfordEM Technologies**/ @@ -167,12 +99,12 @@ public class HbmCollection { WINCHESTER, /**Winchester Repeating Arms Company / Big MT**/ WINCHESTER_BIGMT; - + public String getKey() { return "gun.make." + toString(); } } - + // GUN DETAILS public static final String ammo = "desc.item.gun.ammo"; public static final String ammoMag = "desc.item.gun.ammoMag"; diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index 4a24a192f..3cd40d0ba 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -2,23 +2,21 @@ package com.hbm.lib; import com.hbm.world.gen.MapGenNTMFeatures; import com.hbm.world.gen.NTMWorldGenerator; -import com.hbm.world.gen.component.BunkerComponents; -import com.hbm.world.gen.component.CivilianFeatures; -import com.hbm.world.gen.component.OfficeFeatures; -import com.hbm.world.gen.component.RuinFeatures; +import com.hbm.world.gen.component.*; import com.hbm.world.gen.component.BunkerComponents.BunkerStart; - import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.world.gen.structure.MapGenStructureIO; import net.minecraftforge.common.MinecraftForge; public class HbmWorld { - + public static void mainRegistry() { initWorldGen(); } - + + public static NTMWorldGenerator worldGenerator; + public static void initWorldGen() { //MapGenStructureIO.registerStructure(StructureStartTest.class, "HFR_STRUCTURE"); @@ -26,24 +24,25 @@ public class HbmWorld { MapGenStructureIO.registerStructure(MapGenNTMFeatures.Start.class, "NTMFeatures"); MapGenStructureIO.registerStructure(BunkerStart.class, "NTMBunker"); registerNTMFeatures(); - + registerWorldGen(new HbmWorldGen(), 1); - - NTMWorldGenerator worldGenerator = new NTMWorldGenerator(); + + worldGenerator = new NTMWorldGenerator(); registerWorldGen(worldGenerator, 1); //Ideally, move everything over from HbmWorldGen to NTMWorldGenerator MinecraftForge.EVENT_BUS.register(worldGenerator); //registerWorldGen(new WorldGenTest(), 1); } - + public static void registerWorldGen(IWorldGenerator nukerWorldGen, int weightedProbability) { GameRegistry.registerWorldGenerator(nukerWorldGen, weightedProbability); } - + /** Register structures in MapGenStructureIO */ public static void registerNTMFeatures() { CivilianFeatures.registerComponents(); OfficeFeatures.registerComponents(); RuinFeatures.registerComponents(); BunkerComponents.registerComponents(); + MapGenStructureIO.func_143031_a(SiloComponent.class, "NTMSiloComponent"); } } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 6d2af30ab..863b2876e 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -1,49 +1,29 @@ package com.hbm.lib; -import java.util.Random; - import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; import com.hbm.config.WorldConfig; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsSingle; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; +import com.hbm.tileentity.bomb.TileEntityLandmine; +import com.hbm.tileentity.deco.TileEntityLanternBehemoth; import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; +import com.hbm.util.LootGenerator; import com.hbm.util.WeightedRandomGeneric; -import com.hbm.world.dungeon.AncientTomb; -import com.hbm.world.dungeon.Antenna; -import com.hbm.world.dungeon.ArcticVault; -import com.hbm.world.dungeon.Barrel; -import com.hbm.world.dungeon.CrashedVertibird; -import com.hbm.world.dungeon.DesertAtom001; -import com.hbm.world.dungeon.Factory; -import com.hbm.world.dungeon.LibraryDungeon; -import com.hbm.world.dungeon.Radio01; -import com.hbm.world.dungeon.Relay; -import com.hbm.world.dungeon.Satellite; -import com.hbm.world.dungeon.Silo; -import com.hbm.world.dungeon.Spaceship; -import com.hbm.world.dungeon.Vertibird; -import com.hbm.world.feature.BedrockOre; +import com.hbm.world.dungeon.*; +import com.hbm.world.feature.*; import com.hbm.world.feature.BedrockOre.BedrockOreDefinition; -import com.hbm.world.feature.DepthDeposit; -import com.hbm.world.feature.Dud; -import com.hbm.world.feature.Geyser; -import com.hbm.world.feature.GeyserLarge; -import com.hbm.world.feature.GlyphidHive; -import com.hbm.world.feature.Meteorite; -import com.hbm.world.feature.OilBubble; -import com.hbm.world.feature.OilSandBubble; -import com.hbm.world.feature.OilSpot; -import com.hbm.world.feature.Sellafield; import com.hbm.world.generator.CellularDungeonFactory; import com.hbm.world.generator.DungeonToolbox; - +import cpw.mods.fml.common.IWorldGenerator; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -52,14 +32,12 @@ import net.minecraft.tileentity.TileEntitySkull; import net.minecraft.util.WeightedRandom; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.biome.BiomeGenBeach; -import net.minecraft.world.biome.BiomeGenForest; -import net.minecraft.world.biome.BiomeGenJungle; -import net.minecraft.world.biome.BiomeGenRiver; +import net.minecraft.world.biome.*; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; -import cpw.mods.fml.common.IWorldGenerator; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.Random; public class HbmWorldGen implements IWorldGenerator { @@ -77,13 +55,13 @@ public class HbmWorldGen implements IWorldGenerator { generateSurface(world, rand, chunkX * 16, chunkZ * 16); break; } } - + private void generateSurface(World world, Random rand, int i, int j) { BiomeGenBase biome = world.getWorldChunkManager().getBiomeGenAt(i, j); if(!TomSaveData.forWorld(world).impact) { - + if(biome instanceof BiomeGenForest && rand.nextInt(16) == 0) { DungeonToolbox.generateFlowers(world, rand, i, j, ModBlocks.plant_flower, EnumFlowerType.FOXGLOVE.ordinal()); } @@ -103,9 +81,6 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateFlowers(world, rand, i, j, ModBlocks.reeds, 0); } } - - if(WorldConfig.oilcoalSpawn > 0 && rand.nextInt(WorldConfig.oilcoalSpawn) == 0) - DungeonToolbox.generateOre(world, rand, i, j, 1, 64, 32, 32, ModBlocks.ore_coal_oil); if(WorldConfig.gasbubbleSpawn > 0 && rand.nextInt(WorldConfig.gasbubbleSpawn) == 0) DungeonToolbox.generateOre(world, rand, i, j, 1, 32, 30, 10, ModBlocks.gas_flammable, 1); @@ -116,14 +91,15 @@ public class HbmWorldGen implements IWorldGenerator { if(WorldConfig.alexandriteSpawn > 0 && rand.nextInt(WorldConfig.alexandriteSpawn) == 0) DungeonToolbox.generateOre(world, rand, i, j, 1, 3, 10, 5, ModBlocks.ore_alexandrite); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_iron, rand, 24); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_titanium, rand, 32); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_tungsten, rand, 32); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_cinnebar, rand, 16); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_zirconium, rand, 16); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_borax, rand, 16); - if(WorldConfig.overworldOre) { + + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_iron, rand, 24); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_titanium, rand, 32); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_tungsten, rand, 32); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_cinnebar, rand, 16); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_zirconium, rand, 16); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_borax, rand, 16); + DungeonToolbox.generateOre(world, rand, i, j, 25, 6, 30, 10, ModBlocks.ore_gneiss_iron, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, 10, 6, 30, 10, ModBlocks.ore_gneiss_gold, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.uraniumSpawn * 3, 6, 30, 10, ModBlocks.ore_gneiss_uranium, ModBlocks.stone_gneiss); @@ -132,7 +108,7 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.lithiumSpawn, 6, 30, 10, ModBlocks.ore_gneiss_lithium, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.rareSpawn, 6, 30, 10, ModBlocks.ore_gneiss_rare, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.gassshaleSpawn * 3, 10, 30, 10, ModBlocks.ore_gneiss_gas, ModBlocks.stone_gneiss); - + DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.uraniumSpawn, 5, 5, 20, ModBlocks.ore_uranium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.thoriumSpawn, 5, 5, 25, ModBlocks.ore_thorium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.titaniumSpawn, 6, 5, 30, ModBlocks.ore_titanium); @@ -149,29 +125,42 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.asbestosSpawn, 4, 16, 16, ModBlocks.ore_asbestos); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.cinnebarSpawn, 4, 8, 16, ModBlocks.ore_cinnebar); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.cobaltSpawn, 4, 4, 8, ModBlocks.ore_cobalt); - + DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.ironClusterSpawn, 6, 15, 45, ModBlocks.cluster_iron); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.titaniumClusterSpawn, 6, 15, 30, ModBlocks.cluster_titanium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.aluminiumClusterSpawn, 6, 15, 35, ModBlocks.cluster_aluminium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.copperClusterSpawn, 6, 15, 20, ModBlocks.cluster_copper); - DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 10, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); + DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 16, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.limestoneSpawn, 12, 25, 30, ModBlocks.stone_resource, EnumStoneType.LIMESTONE.ordinal()); - - if(rand.nextInt(3) == 0) { - WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOres); - BedrockOreDefinition def = item.get(); - int randPosX = i + rand.nextInt(2) + 8; - int randPosZ = j + rand.nextInt(2) + 8; - BedrockOre.generate(world, randPosX, randPosZ, def.stack, def.acid, def.color, def.tier); + + if(WorldConfig.newBedrockOres) { + + if(rand.nextInt(10) == 0) { + int randPosX = i + rand.nextInt(2) + 8; + int randPosZ = j + rand.nextInt(2) + 8; + + BedrockOre.generate(world, randPosX, randPosZ, new ItemStack(ModItems.bedrock_ore_base), null, 0xD78A16, 1); + } + + } else { + + if(rand.nextInt(3) == 0) { + @SuppressWarnings("unchecked") + WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOres); + BedrockOreDefinition def = item.get(); + + if(GeneralConfig.enable528 && GeneralConfig.enable528BedrockReplacement) { + BedrockOreDefinition replacement = BedrockOre.replacements.get(def.id); + if(replacement != null) def = replacement; + } + + int randPosX = i + rand.nextInt(2) + 8; + int randPosZ = j + rand.nextInt(2) + 8; + BedrockOre.generate(world, randPosX, randPosZ, def.stack, def.acid, def.color, def.tier); + } } - for(int k = 0; k < WorldConfig.randomSpawn; k++) { - BlockMotherOfAllOres.shuffleOverride(rand); - DungeonToolbox.generateOre(world, rand, i, j, 1, 10, 4, 30, ModBlocks.ore_random); - } - BlockMotherOfAllOres.resetOverride(); - if(GeneralConfig.enable528ColtanSpawn) { DungeonToolbox.generateOre(world, rand, i, j, GeneralConfig.coltanRate, 4, 15, 40, ModBlocks.ore_coltan); } @@ -180,16 +169,16 @@ public class HbmWorldGen implements IWorldGenerator { int colX = (int) (colRand.nextGaussian() * 1500); int colZ = (int) (colRand.nextGaussian() * 1500); int colRange = 750; - + if((GeneralConfig.enable528BedrockSpawn || GeneralConfig.enable528BedrockDeposit) && rand.nextInt(GeneralConfig.bedrockRate) != 0) { int x = i + rand.nextInt(16) + 8; int z = j + rand.nextInt(16) + 8; - + if(GeneralConfig.enable528BedrockSpawn || (GeneralConfig.enable528BedrockDeposit && x <= colX + colRange && x >= colX - colRange && z <= colZ + colRange && z >= colZ - colRange)) { BedrockOre.generate(world, x, z, new ItemStack(ModItems.fragment_coltan), null, 0xA78D7A, 1); } } - + if(GeneralConfig.enable528ColtanDeposit) { for(int k = 0; k < 2; k++) { @@ -217,13 +206,23 @@ public class HbmWorldGen implements IWorldGenerator { } } - if(GeneralConfig.enableDungeons && world.provider.isSurfaceWorld()) { - + boolean enableDungeons = world.getWorldInfo().isMapFeaturesEnabled(); + if(GeneralConfig.enableDungeons == 1) enableDungeons = true; + if(GeneralConfig.enableDungeons == 0) enableDungeons = false; + + if(enableDungeons && world.provider.dimensionId == 0) { + if(MobConfig.enableHives && rand.nextInt(MobConfig.hiveSpawn) == 0) { int x = i + rand.nextInt(16) + 8; int z = j + rand.nextInt(16) + 8; int y = world.getHeightValue(x, z); - if(world.getBlock(x, y - 1, z).isNormalCube()) GlyphidHive.generate(world, x, y, z, rand); + + for(int k = 3; k >= -1; k--) { + if(world.getBlock(x, y - 1 + k, z).isNormalCube()) { + GlyphidHive.generateSmall(world, x, y + k, z, rand, rand.nextInt(10) == 0, true); + break; + } + } } if(biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) { @@ -322,13 +321,13 @@ public class HbmWorldGen implements IWorldGenerator { } } - if(WorldConfig.siloStructure > 0 && rand.nextInt(WorldConfig.siloStructure) == 0) { + /*if(WorldConfig.siloStructure > 0 && rand.nextInt(WorldConfig.siloStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z); new Silo().generate(world, rand, x, y, z); - } + }*/ if(WorldConfig.factoryStructure > 0 && rand.nextInt(WorldConfig.factoryStructure) == 0) { int x = i + rand.nextInt(16); @@ -346,6 +345,7 @@ public class HbmWorldGen implements IWorldGenerator { new Dud().generate(world, rand, x, y, z); } + if(WorldConfig.spaceshipStructure > 0 && rand.nextInt(WorldConfig.spaceshipStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); @@ -353,7 +353,6 @@ public class HbmWorldGen implements IWorldGenerator { new Spaceship().generate(world, rand, x, y, z); } - if(WorldConfig.barrelStructure > 0 && biome.temperature >= 1.5F && !biome.canSpawnLightningBolt() && rand.nextInt(WorldConfig.barrelStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); @@ -369,22 +368,49 @@ public class HbmWorldGen implements IWorldGenerator { if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { world.setBlock(x, y, z, ModBlocks.broadcaster_pc, rand.nextInt(4) + 2, 2); - + if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned corrupted broadcaster at " + x + " " + (y) +" " + z); } } if(WorldConfig.minefreq > 0 && GeneralConfig.enableMines && rand.nextInt(WorldConfig.minefreq) == 0) { + int x = i + rand.nextInt(16) + 8; + int z = j + rand.nextInt(16) + 8; + int y = world.getHeightValue(x, z); + + for(int g = y + 2; g >= y; g--) { + + if(world.getBlock(x, g - 1, z).canPlaceTorchOnTop(world, x, g - 1, z)) { + world.setBlock(x, g, z, ModBlocks.mine_ap); + TileEntityLandmine landmine = (TileEntityLandmine) world.getTileEntity(x, g, z); + landmine.waitingForPlayer = true; + if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned landmine at " + x + " " + g + " " + z); + break; + } + } + } + + if(rand.nextInt(2000) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z); - if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { - world.setBlock(x, y, z, ModBlocks.mine_ap); + if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z) && world.getBlock(x, y, z).isReplaceable(world, x, y, z)) { + + world.setBlock(x, y, z, ModBlocks.lantern_behemoth, 12, 3); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {4, 0, 0, 0, 0, 0}, ModBlocks.lantern_behemoth, ForgeDirection.NORTH); + + TileEntityLanternBehemoth lantern = (TileEntityLanternBehemoth) world.getTileEntity(x, y, z); + lantern.isBroken = true; + + if(rand.nextInt(2) == 0) { + LootGenerator.setBlock(world, x, y, z - 2); + LootGenerator.lootBooklet(world, x, y, z - 2); + } if(GeneralConfig.enableDebugMode) - MainRegistry.logger.info("[Debug] Successfully spawned landmine at " + x + " " + (y) + " " + z); + MainRegistry.logger.info("[Debug] Successfully spawned lantern at " + x + " " + (y) + " " + z); } } @@ -394,17 +420,19 @@ public class HbmWorldGen implements IWorldGenerator { int y = world.getHeightValue(x, z); if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { world.setBlock(x, y, z, ModBlocks.mine_he); + TileEntityLandmine landmine = (TileEntityLandmine) world.getTileEntity(x, y, z); + landmine.waitingForPlayer = true; } } if(WorldConfig.radfreq > 0 && GeneralConfig.enableRad && rand.nextInt(WorldConfig.radfreq) == 0 && biome == BiomeGenBase.desert) { - + for (int a = 0; a < 1; a++) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); - + double r = rand.nextInt(15) + 10; - + if(rand.nextInt(50) == 0) r = 50; @@ -419,7 +447,7 @@ public class HbmWorldGen implements IWorldGenerator { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z); - + if(world.getBlock(x, y - 1, z) == Blocks.grass) new Geyser().generate(world, rand, x, y, z); } @@ -437,17 +465,17 @@ public class HbmWorldGen implements IWorldGenerator { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z) - 4; - + if(world.getBlock(x, y + 1, z).canPlaceTorchOnTop(world, x, y + 1, z)) { - + world.setBlock(x, y, z, ModBlocks.soyuz_capsule, 3, 2); - + TileEntitySoyuzCapsule cap = (TileEntitySoyuzCapsule)world.getTileEntity(x, y, z); - + if(cap != null) { cap.setInventorySlotContents(rand.nextInt(cap.getSizeInventory()), new ItemStack(ModItems.record_glass)); } - + if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned capsule at " + x + " " + z); } @@ -467,9 +495,9 @@ public class HbmWorldGen implements IWorldGenerator { if (rand.nextInt(1000) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); - + boolean done = false; - + for(int k = 0; k < 256; k++) { if(world.getBlock(x, k, z) == Blocks.log && world.getBlockMetadata(x, k, z) == 0) { world.setBlock(x, k, z, ModBlocks.pink_log); @@ -488,71 +516,61 @@ public class HbmWorldGen implements IWorldGenerator { if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { world.setBlock(x, y, z, ModBlocks.safe, rand.nextInt(4) + 2, 2); - + TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(x, y, z); + switch(rand.nextInt(10)) { - case 0: - case 1: - case 2: - case 3: - ((TileEntitySafe)world.getTileEntity(x, y, z)).setPins(rand.nextInt(999) + 1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).setMod(1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).lock(); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vault1, (TileEntitySafe)world.getTileEntity(x, y, z), rand.nextInt(4) + 3); + case 0: case 1: case 2: case 3: + safe.setMod(1); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_RUSTY), safe, rand.nextInt(4) + 3); break; - case 4: - case 5: - case 6: - ((TileEntitySafe)world.getTileEntity(x, y, z)).setPins(rand.nextInt(999) + 1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).setMod(0.1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).lock(); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vault2, (TileEntitySafe)world.getTileEntity(x, y, z), rand.nextInt(3) + 2); + case 4: case 5: case 6: + safe.setMod(0.1); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_STANDARD), safe, rand.nextInt(3) + 2); break; - case 7: - case 8: - ((TileEntitySafe)world.getTileEntity(x, y, z)).setPins(rand.nextInt(999) + 1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).setMod(0.02); - ((TileEntitySafe)world.getTileEntity(x, y, z)).lock(); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vault3, (TileEntitySafe)world.getTileEntity(x, y, z), rand.nextInt(3) + 1); + case 7: case 8: + safe.setMod(0.02); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_REINFORCED), safe, rand.nextInt(3) + 1); break; case 9: - ((TileEntitySafe)world.getTileEntity(x, y, z)).setPins(rand.nextInt(999) + 1); - ((TileEntitySafe)world.getTileEntity(x, y, z)).setMod(0.0); - ((TileEntitySafe)world.getTileEntity(x, y, z)).lock(); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vault4, (TileEntitySafe)world.getTileEntity(x, y, z), rand.nextInt(2) + 1); + safe.setMod(0.0); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_UNBREAKABLE), safe, rand.nextInt(2) + 1); break; } - + + safe.setPins(rand.nextInt(999) + 1); + safe.lock(); + if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned safe at " + x + " " + (y + 1) +" " + z); } - + } if (WorldConfig.meteorStructure > 0 && rand.nextInt(WorldConfig.meteorStructure) == 0 && biome != BiomeGenBase.ocean && biome != BiomeGenBase.deepOcean) { int x = i + rand.nextInt(16) + 8; int z = j + rand.nextInt(16) + 8; - + CellularDungeonFactory.meteor.generate(world, x, 10, z, rand); - + if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned meteor dungeon at " + x + " 10 " + z); - + int y = world.getHeightValue(x, z); - + for(int f = 0; f < 3; f++) world.setBlock(x, y + f, z, ModBlocks.meteor_pillar); world.setBlock(x, y + 3, z, ModBlocks.meteor_brick_chiseled); - + for(int f = 0; f < 10; f++) { x = i + rand.nextInt(65) - 32; z = j + rand.nextInt(65) - 32; y = world.getHeightValue(x, z); - + if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { world.setBlock(x, y, z, Blocks.skull, 1, 2); TileEntitySkull skull = (TileEntitySkull)world.getTileEntity(x, y, z); - + if(skull != null) skull.func_145903_a(rand.nextInt(16)); } @@ -563,16 +581,16 @@ public class HbmWorldGen implements IWorldGenerator { WorldConfig.jungleStructure > 0 && rand.nextInt(WorldConfig.jungleStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); - + CellularDungeonFactory.jungle.generate(world, x, 20, z, world.rand); CellularDungeonFactory.jungle.generate(world, x, 24, z, world.rand); CellularDungeonFactory.jungle.generate(world, x, 28, z, world.rand); - + if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned jungle dungeon at " + x + " 10 " + z); - + int y = world.getHeightValue(x, z); - + for(int f = 0; f < 3; f++) world.setBlock(x, y + f, z, ModBlocks.deco_titanium); world.setBlock(x, y + 3, z, Blocks.redstone_block); @@ -584,12 +602,12 @@ public class HbmWorldGen implements IWorldGenerator { int y = 16 + rand.nextInt(32); new ArcticVault().trySpawn(world, x, y, z); } - + if (WorldConfig.pyramidStructure > 0 && biome.temperature >= 2.0F && !biome.canSpawnLightningBolt() && rand.nextInt(WorldConfig.pyramidStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z); - + new AncientTomb().build(world, rand, x, y, z); } } @@ -605,11 +623,11 @@ public class HbmWorldGen implements IWorldGenerator { if(WorldConfig.bedrockOilSpawn > 0 && rand.nextInt(WorldConfig.bedrockOilSpawn) == 0) { int randPosX = i + rand.nextInt(16); int randPosZ = j + rand.nextInt(16); - + for(int x = -4; x <= 4; x++) { for(int y = 0; y <= 4; y++) { for(int z = -4; z <= 4; z++) { - + if(Math.abs(x) + Math.abs(y) + Math.abs(z) <= 6) { Block b = world.getBlock(randPosX + x, y, randPosZ + z); if(b.isReplaceableOreGen(world, randPosX + x, y, randPosZ + z, Blocks.stone) || b.isReplaceableOreGen(world, randPosX + x, y, randPosZ + z, Blocks.bedrock)) { @@ -619,7 +637,7 @@ public class HbmWorldGen implements IWorldGenerator { } } } - + DungeonToolbox.generateOre(world, rand, i, j, 16, 8, 10, 50, ModBlocks.stone_porous); OilSpot.generateOilSpot(world, randPosX, randPosZ, 5, 50, true); } @@ -628,7 +646,7 @@ public class HbmWorldGen implements IWorldGenerator { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z) - rand.nextInt(10); - (new Meteorite()).generate(world, rand, x, y, z, false, true, false); + if(y > 1) (new Meteorite()).generate(world, rand, x, y, z, false, false, false); } if (GeneralConfig.enableNITAN) { @@ -637,8 +655,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(10000, 250, 10000) == Blocks.air) { world.setBlock(10000, 250, 10000, Blocks.chest); if (world.getBlock(10000, 250, 10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(10000, 250, 10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(10000, 250, 10000), 29); } } } @@ -646,8 +663,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(0, 250, 10000) == Blocks.air) { world.setBlock(0, 250, 10000, Blocks.chest); if (world.getBlock(0, 250, 10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(0, 250, 10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(0, 250, 10000), 29); } } } @@ -655,8 +671,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(-10000, 250, 10000) == Blocks.air) { world.setBlock(-10000, 250, 10000, Blocks.chest); if (world.getBlock(-10000, 250, 10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(-10000, 250, 10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(-10000, 250, 10000), 29); } } } @@ -664,8 +679,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(10000, 250, 0) == Blocks.air) { world.setBlock(10000, 250, 0, Blocks.chest); if (world.getBlock(10000, 250, 0) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(10000, 250, 0), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(10000, 250, 0), 29); } } } @@ -673,8 +687,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(-10000, 250, 0) == Blocks.air) { world.setBlock(-10000, 250, 0, Blocks.chest); if (world.getBlock(-10000, 250, 0) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(-10000, 250, 0), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(-10000, 250, 0), 29); } } } @@ -682,8 +695,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(10000, 250, -10000) == Blocks.air) { world.setBlock(10000, 250, -10000, Blocks.chest); if (world.getBlock(10000, 250, -10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(10000, 250, -10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(10000, 250, -10000), 29); } } } @@ -691,8 +703,7 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(0, 250, -10000) == Blocks.air) { world.setBlock(0, 250, -10000, Blocks.chest); if (world.getBlock(0, 250, -10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(0, 250, -10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(0, 250, -10000), 29); } } } @@ -700,13 +711,22 @@ public class HbmWorldGen implements IWorldGenerator { if (world.getBlock(-10000, 250, -10000) == Blocks.air) { world.setBlock(-10000, 250, -10000, Blocks.chest); if (world.getBlock(-10000, 250, -10000) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.powder, - (TileEntityChest) world.getTileEntity(-10000, 250, -10000), 29); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_POWDER), (TileEntityChest) world.getTileEntity(-10000, 250, -10000), 29); } } } } + if(rand.nextInt(4) == 0) { + int x = i + rand.nextInt(16) + 8; + int y = 6 + rand.nextInt(13); + int z = j + rand.nextInt(16) + 8; + + if(world.getBlock(x, y, z).isReplaceableOreGen(world, x, y, z, Blocks.stone)) { + world.setBlock(x, y, z, ModBlocks.stone_keyhole); + } + } + } private void generateNether(World world, Random rand, int i, int j) { @@ -718,13 +738,22 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.netherPhosphorusSpawn, 6, 0, 127, ModBlocks.ore_nether_fire, Blocks.netherrack); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.netherCoalSpawn, 32, 16, 96, ModBlocks.ore_nether_coal, Blocks.netherrack); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.netherCobaltSpawn, 6, 100, 26, ModBlocks.ore_nether_cobalt, Blocks.netherrack); - + if(GeneralConfig.enablePlutoniumOre) DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.netherPlutoniumSpawn, 4, 0, 127, ModBlocks.ore_nether_plutonium, Blocks.netherrack); - } - DepthDeposit.generateConditionNether(world, i, 0, 3, j, 7, 0.6D, ModBlocks.ore_depth_nether_neodymium, rand, 16); - DepthDeposit.generateConditionNether(world, i, 125, 3, j, 7, 0.6D, ModBlocks.ore_depth_nether_neodymium, rand, 16); + if(rand.nextInt(10) == 0) { + @SuppressWarnings("unchecked") + WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOresNether); + BedrockOreDefinition def = item.get(); + int randPosX = i + rand.nextInt(2) + 8; + int randPosZ = j + rand.nextInt(2) + 8; + BedrockOre.generate(world, randPosX, randPosZ, def.stack, def.acid, def.color, def.tier, ModBlocks.stone_depth_nether); + } + + DepthDeposit.generateConditionNether(world, i, 0, 3, j, 7, 0.6D, ModBlocks.ore_depth_nether_neodymium, rand, 16); + DepthDeposit.generateConditionNether(world, i, 125, 3, j, 7, 0.6D, ModBlocks.ore_depth_nether_neodymium, rand, 16); + } for(int k = 0; k < 30; k++){ int x = i + rand.nextInt(16); @@ -748,15 +777,15 @@ public class HbmWorldGen implements IWorldGenerator { } private void generateEnd(World world, Random rand, int i, int j) { - + if(WorldConfig.endOre) { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.endTikiteSpawn, 6, 0, 127, ModBlocks.ore_tikite, Blocks.end_stone); - + /*for(int k = 0; k < 50; k++){ int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int d = 5 + rand.nextInt(60); - + for(int y = d - 5; y <= d; y++) if(world.getBlock(x, y, z) == Blocks.air && world.getBlock(x, y + 1, z).isSideSolid(world, x, y, z, ForgeDirection.DOWN)) world.setBlock(x, y, z, ModBlocks.crystal_trixite); diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index bd96c150b..96a019726 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -1,35 +1,16 @@ package com.hbm.lib; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; -import java.util.Set; - -import com.google.common.collect.Sets; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyConnectorBlock; +import api.hbm.energymk2.IEnergyConnectorMK2; +import api.hbm.fluid.IFluidConnector; +import api.hbm.fluid.IFluidConnectorBlock; import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; -import com.hbm.tileentity.TileEntityProxyBase; -import com.hbm.tileentity.TileEntityProxyInventory; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.tileentity.conductor.TileEntityGasDuct; -import com.hbm.tileentity.conductor.TileEntityGasDuctSolid; -import com.hbm.tileentity.conductor.TileEntityOilDuct; -import com.hbm.tileentity.conductor.TileEntityOilDuctSolid; -import com.hbm.tileentity.machine.TileEntityDummy; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IEnergyConnectorBlock; -import api.hbm.fluid.IFluidConnector; -import api.hbm.fluid.IFluidConnectorBlock; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -37,63 +18,24 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + @Spaghetti("this whole class") public class Library { - + static Random rand = new Random(); - //this is a list of UUIDs used for various things, primarily for accessories. - //for a comprehensive list, check RenderAccessoryUtility.java - public static String HbMinecraft = "192af5d7-ed0f-48d8-bd89-9d41af8524f8"; - public static String LPkukin = "937c9804-e11f-4ad2-a5b1-42e62ac73077"; - public static String Dafnik = "3af1c262-61c0-4b12-a4cb-424cc3a9c8c0"; - public static String a20 = "4729b498-a81c-42fd-8acd-20d6d9f759e0"; - public static String LordVertice = "a41df45e-13d8-4677-9398-090d3882b74f"; - public static String CodeRed_ = "912ec334-e920-4dd7-8338-4d9b2d42e0a1"; - public static String dxmaster769 = "62c168b2-d11d-4dbf-9168-c6cea3dcb20e"; - public static String Dr_Nostalgia = "e82684a7-30f1-44d2-ab37-41b342be1bbd"; - public static String Samino2 = "87c3960a-4332-46a0-a929-ef2a488d1cda"; - public static String Hoboy03new = "d7f29d9c-5103-4f6f-88e1-2632ff95973f"; - public static String Dragon59MC = "dc23a304-0f84-4e2d-b47d-84c8d3bfbcdb"; - public static String Steelcourage = "ac49720b-4a9a-4459-a26f-bee92160287a"; - public static String ZippySqrl = "03c20435-a229-489a-a1a1-671b803f7017"; - public static String Schrabby = "3a4a1944-5154-4e67-b80a-b6561e8630b7"; - public static String SweatySwiggs = "5544aa30-b305-4362-b2c1-67349bb499d5"; - public static String Drillgon = "41ebd03f-7a12-42f3-b037-0caa4d6f235b"; - public static String Doctor17 = "e4ab1199-1c22-4f82-a516-c3238bc2d0d1"; - public static String Doctor17PH = "4d0477d7-58da-41a9-a945-e93df8601c5a"; - public static String ShimmeringBlaze = "061bc566-ec74-4307-9614-ac3a70d2ef38"; - public static String FifeMiner = "37e5eb63-b9a2-4735-9007-1c77d703daa3"; - public static String lag_add = "259785a0-20e9-4c63-9286-ac2f93ff528f"; - public static String Pu_238 = "c95fdfd3-bea7-4255-a44b-d21bc3df95e3"; - public static String Tankish = "609268ad-5b34-49c2-abba-a9d83229af03"; - public static String SolsticeUnlimitd = "f5574fd2-ec28-4927-9d11-3c0c731771f4"; - public static String FrizzleFrazzle = "fc4cc2ee-12e8-4097-b26a-1c6cb1b96531"; - public static String the_NCR = "28ae585f-4431-4491-9ce8-3def6126e3c6"; - public static String Barnaby99_x = "b04cf173-cff0-4acd-aa19-3d835224b43d"; - public static String Ma118 = "1121cb7a-8773-491f-8e2b-221290c93d81"; - public static String Adam29Adam29 = "bbae7bfa-0eba-40ac-a0dd-f3b715e73e61"; - - public static Set contributors = Sets.newHashSet(new String[] { - "06ab7c03-55ce-43f8-9d3c-2850e3c652de", //mustang_rudolf - "5bf069bc-5b46-4179-aafe-35c0a07dee8b", //JMF781 - }); - - //the old list that allowed superuser mode for the ZOMG - //currently unused - public static List superuser = new ArrayList(); - public static boolean checkForHeld(EntityPlayer player, Item item) { - - if(player.getHeldItem() == null) - return false; - + if(player.getHeldItem() == null) return false; return player.getHeldItem().getItem() == item; } @@ -103,100 +45,60 @@ public class Library { public static final ForgeDirection NEG_Y = ForgeDirection.DOWN; public static final ForgeDirection POS_Z = ForgeDirection.SOUTH; public static final ForgeDirection NEG_Z = ForgeDirection.NORTH; - + /* * Is putting this into this trash can a good idea? No. Do I have a better idea? Not currently. */ public static boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir /* cable's connecting side */) { - + if(y > 255 || y < 0) return false; - + Block b = world.getBlock(x, y, z); - + if(b instanceof IEnergyConnectorBlock) { IEnergyConnectorBlock con = (IEnergyConnectorBlock) b; - + if(con.canConnect(world, x, y, z, dir.getOpposite() /* machine's connecting side */)) return true; } - + TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - + + if(te instanceof IEnergyConnectorMK2) { + IEnergyConnectorMK2 con = (IEnergyConnectorMK2) te; + if(con.canConnect(dir.getOpposite() /* machine's connecting side */)) return true; } - + return false; } /** dir is the direction along the fluid duct entering the block */ public static boolean canConnectFluid(IBlockAccess world, int x, int y, int z, ForgeDirection dir /* duct's connecting side */, FluidType type) { - + if(y > 255 || y < 0) return false; - + Block b = world.getBlock(x, y, z); - + if(b instanceof IFluidConnectorBlock) { IFluidConnectorBlock con = (IFluidConnectorBlock) b; - + if(con.canConnect(type, world, x, y, z, dir.getOpposite() /* machine's connecting side */)) return true; } - + TileEntity te = world.getTileEntity(x, y, z); - + if(te instanceof IFluidConnector) { IFluidConnector con = (IFluidConnector) te; - + if(con.canConnect(type, dir.getOpposite() /* machine's connecting side */)) return true; } - - return false; - } - - public static boolean checkFluidConnectables(World world, int x, int y, int z, FluidType type) - { - TileEntity tileentity = world.getTileEntity(x, y, z); - if(tileentity != null && tileentity instanceof IFluidDuct && ((IFluidDuct)tileentity).getType() == type) - return true; - if((tileentity != null && (tileentity instanceof IFluidAcceptor || - tileentity instanceof IFluidSource)) || - world.getBlock(x, y, z) == ModBlocks.reactor_hatch || - world.getBlock(x, y, z) == ModBlocks.reactor_conductor || - world.getBlock(x, y, z) == ModBlocks.fusion_hatch || - world.getBlock(x, y, z) == ModBlocks.watz_hatch || - world.getBlock(x, y, z) == ModBlocks.fwatz_hatch || - world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_limiter || - world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_emitter || - world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_base || - world.getBlock(x, y, z) == ModBlocks.dummy_port_compact_launcher || - world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table || - world.getBlock(x, y, z) == ModBlocks.rbmk_loader) { - return true; - } - - if(world.getBlock(x, y, z) == ModBlocks.machine_mining_laser && tileentity instanceof TileEntityProxyInventory) - return true; - - return false; - } - - public static boolean checkUnionListForFluids(List list, IFluidSource that) { - - for(UnionOfTileEntitiesAndBooleansForFluids union : list) - { - if(union.source == that) - { - return true; - } - } - + return false; } @@ -289,7 +191,7 @@ public class Library { return entity; } - + public static MovingObjectPosition rayTrace(EntityPlayer player, double length, float interpolation) { Vec3 vec3 = getPosition(interpolation, player); vec3.yCoord += player.eyeHeight; @@ -305,7 +207,7 @@ public class Library { Vec3 vec32 = vec3.addVector(vec31.xCoord * length, vec31.yCoord * length, vec31.zCoord * length); return player.worldObj.func_147447_a(vec3, vec32, allowLiquids, disallowNonCollidingBlocks, mopOnMiss); } - + public static Vec3 getPosition(float interpolation, EntityPlayer player) { if(interpolation == 1.0F) { return Vec3.createVectorHelper(player.posX, player.posY + (player.getEyeHeight() - player.getDefaultEyeHeight()), player.posZ); @@ -316,43 +218,43 @@ public class Library { return Vec3.createVectorHelper(d0, d1, d2); } } - + public static List getBlockPosInPath(int x, int y, int z, int length, Vec3 vec0) { List list = new ArrayList(); - + for(int i = 0; i <= length; i++) { list.add(new int[] { (int)(x + (vec0.xCoord * i)), y, (int)(z + (vec0.zCoord * i)), i }); } - + return list; } - + //not great either but certainly better public static long chargeItemsFromTE(ItemStack[] slots, int index, long power, long maxPower) { - + if(power < 0) return 0; - + if(power > maxPower) return maxPower; if(slots[index] != null && slots[index].getItem() instanceof IBatteryItem) { - + IBatteryItem battery = (IBatteryItem) slots[index].getItem(); - long batMax = battery.getMaxCharge(); + long batMax = battery.getMaxCharge(slots[index]); long batCharge = battery.getCharge(slots[index]); long batRate = battery.getChargeRate(); long toCharge = Math.min(Math.min(power, batRate), batMax - batCharge); - + power -= toCharge; - + battery.chargeBattery(slots[index], toCharge); } - + return power; } - + public static long chargeTEFromItems(ItemStack[] slots, int index, long power, long maxPower) { if(slots[index] != null && slots[index].getItem() == ModItems.battery_creative) { @@ -377,286 +279,44 @@ public class Library { return power; } - + //Flut-FÃŒll gesteuerter EnergieÃŒbertragungsalgorithmus //Flood fill controlled energy transmission algorithm public static void ffgeua(int x, int y, int z, boolean newTact, Object that, World worldObj) { - + /* * This here smoldering crater is all that remains from the old energy system. * In loving memory, 2016-2021. * You won't be missed. */ } - - public static void transmitFluid(int x, int y, int z, boolean newTact, IFluidSource that, World worldObj, FluidType type) { - Block block = worldObj.getBlock(x, y, z); - TileEntity tileentity = worldObj.getTileEntity(x, y, z); - - //Large Nuclear Reactor - if(block == ModBlocks.reactor_hatch && worldObj.getBlock(x, y, z + 2) == ModBlocks.reactor_computer) - { - tileentity = worldObj.getTileEntity(x, y, z + 2); - } - if(block == ModBlocks.reactor_hatch && worldObj.getBlock(x, y, z - 2) == ModBlocks.reactor_computer) - { - tileentity = worldObj.getTileEntity(x, y, z - 2); - } - if(block == ModBlocks.reactor_hatch && worldObj.getBlock(x + 2, y, z) == ModBlocks.reactor_computer) - { - tileentity = worldObj.getTileEntity(x + 2, y, z); - } - if(block == ModBlocks.reactor_hatch && worldObj.getBlock(x - 2, y, z) == ModBlocks.reactor_computer) - { - tileentity = worldObj.getTileEntity(x - 2, y, z); - } - //FWatz Reactor - if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x, y + 11, z + 9) == ModBlocks.fwatz_core) - { - tileentity = worldObj.getTileEntity(x, y + 11, z + 9); - } - if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x, y + 11, z - 9) == ModBlocks.fwatz_core) - { - tileentity = worldObj.getTileEntity(x, y + 11, z - 9); - } - if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x + 9, y + 11, z) == ModBlocks.fwatz_core) - { - tileentity = worldObj.getTileEntity(x + 9, y + 11, z); - } - if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x - 9, y + 11, z) == ModBlocks.fwatz_core) - { - tileentity = worldObj.getTileEntity(x - 9, y + 11, z); - } - //AMS Limiter - if(block == ModBlocks.dummy_port_ams_limiter) - { - tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); - } - //AMS Limiter - if(block == ModBlocks.dummy_port_ams_emitter) - { - tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); - } - //AMS Base - if(block == ModBlocks.dummy_port_ams_base) - { - tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); - } - //Launchers - if(block == ModBlocks.dummy_port_compact_launcher || block == ModBlocks.dummy_port_launch_table) - { - tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); - } - - if(tileentity == that) - tileentity = null; - - if(tileentity instanceof TileEntityProxyBase) { - TileEntityProxyBase proxy = (TileEntityProxyBase) tileentity; - - if(proxy.getTE() == that) - tileentity = null; - } - - if(tileentity instanceof IFluidDuct) - { - if(tileentity instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple)tileentity).getType().name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityFluidDuctSimple)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityFluidDuctSimple)tileentity).uoteab.size(); i++) - { - if(((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityFluidDuctSimple)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } - if(tileentity instanceof TileEntityGasDuct && ((TileEntityGasDuct)tileentity).type.name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityGasDuct)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityGasDuct)tileentity).uoteab.size(); i++) - { - if(((TileEntityGasDuct)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityGasDuct)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityGasDuct)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityGasDuct)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } - if(tileentity instanceof TileEntityOilDuct && ((TileEntityOilDuct)tileentity).type.name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityOilDuct)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityOilDuct)tileentity).uoteab.size(); i++) - { - if(((TileEntityOilDuct)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityOilDuct)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityOilDuct)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityOilDuct)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } - if(tileentity instanceof TileEntityGasDuctSolid && ((TileEntityGasDuctSolid)tileentity).type.name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityGasDuctSolid)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityGasDuctSolid)tileentity).uoteab.size(); i++) - { - if(((TileEntityGasDuctSolid)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityGasDuctSolid)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityGasDuctSolid)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityGasDuctSolid)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } - if(tileentity instanceof TileEntityOilDuctSolid && ((TileEntityOilDuctSolid)tileentity).type.name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityOilDuctSolid)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityOilDuctSolid)tileentity).uoteab.size(); i++) - { - if(((TileEntityOilDuctSolid)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityOilDuctSolid)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityOilDuctSolid)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityOilDuctSolid)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } - } - - if(tileentity instanceof IFluidAcceptor && newTact && ((IFluidAcceptor)tileentity).getMaxFluidFillForReceive(type) > 0 && - ((IFluidAcceptor)tileentity).getMaxFluidFillForReceive(type) - ((IFluidAcceptor)tileentity).getFluidFillForReceive(type) > 0) { - that.getFluidList(type).add((IFluidAcceptor)tileentity); - } - - if(!newTact) { - int size = that.getFluidList(type).size(); - - if(size > 0) { - int part = that.getFluidFillForTransfer(type) / size; - - for(IFluidAcceptor consume : that.getFluidList(type)) { - - if(consume.getFluidFillForReceive(type) < consume.getMaxFluidFillForReceive(type)) { - - if(consume.getMaxFluidFillForReceive(type) - consume.getFluidFillForReceive(type) >= part) { - that.transferFluid(part, type); - consume.receiveFluid(part, type); - - } else { - int transfer = consume.getMaxFluidFillForReceive(type) - consume.getFluidFillForReceive(type); - that.transferFluid(transfer, type); - consume.receiveFluid(transfer, type); - } - } - } - } - that.clearFluidList(type); - } + + // Added for sake of doors + // Original: Drillgon200: https://thebookofshaders.com/glossary/?search=smoothstep + public static double smoothstep(double t, double edge0, double edge1){ + t = MathHelper.clamp_double((t - edge0) / (edge1 - edge0), 0.0, 1.0); + return t * t * (3.0 - 2.0 * t); } - - public static boolean isArrayEmpty(Object[] array) { - if(array == null) - return true; - if(array.length == 0) - return true; - - boolean flag = true; - - for(int i = 0; i < array.length; i++) { - if(array[i] != null) - flag = false; - } - - return flag; + public static float smoothstep(float t, float edge0, float edge1){ + t = MathHelper.clamp_float((t - edge0) / (edge1 - edge0), 0.0F, 1.0F); + return t * t * (3.0F - 2.0F * t); } - + public static boolean isObstructed(World world, double x, double y, double z, double a, double b, double c) { MovingObjectPosition pos = world.rayTraceBlocks(Vec3.createVectorHelper(x, y, z), Vec3.createVectorHelper(a, b, c)); return pos != null; } - + public static boolean isObstructedOpaque(World world, double x, double y, double z, double a, double b, double c) { MovingObjectPosition pos = world.func_147447_a(Vec3.createVectorHelper(x, y, z), Vec3.createVectorHelper(a, b, c), false, true, false); return pos != null; } - - public static int getFirstNullIndex(int start, Object[] array) { - for(int i = start; i < array.length; i++) { - if(array[i] == null) - return i; - } - return -1; - } - + public static Block getRandomConcrete() { int i = rand.nextInt(20); - - if(i <= 1) - return ModBlocks.brick_concrete_broken; - if(i <= 4) - return ModBlocks.brick_concrete_cracked; - if(i <= 10) - return ModBlocks.brick_concrete_mossy; - + if(i <= 1) return ModBlocks.brick_concrete_broken; + if(i <= 4) return ModBlocks.brick_concrete_cracked; + if(i <= 10) return ModBlocks.brick_concrete_mossy; return ModBlocks.brick_concrete; } } diff --git a/src/main/java/com/hbm/lib/ModDamageSource.java b/src/main/java/com/hbm/lib/ModDamageSource.java index a477d929c..deaeca1f7 100644 --- a/src/main/java/com/hbm/lib/ModDamageSource.java +++ b/src/main/java/com/hbm/lib/ModDamageSource.java @@ -1,22 +1,17 @@ package com.hbm.lib; import com.hbm.entity.projectile.EntityBullet; -import com.hbm.entity.projectile.EntityDischarge; -import com.hbm.entity.projectile.EntityFire; -import com.hbm.entity.projectile.EntityLN2; import com.hbm.entity.projectile.EntityLaserBeam; import com.hbm.entity.projectile.EntityMinerBeam; -import com.hbm.entity.projectile.EntityPlasmaBeam; - import net.minecraft.entity.Entity; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSourceIndirect; public class ModDamageSource extends DamageSource { - + public static DamageSource nuclearBlast = (new DamageSource("nuclearBlast")).setExplosion(); public static DamageSource mudPoisoning = (new DamageSource("mudPoisoning")).setDamageBypassesArmor(); - public static DamageSource acid = (new DamageSource("acid")).setDamageBypassesArmor(); + public static DamageSource acid = (new DamageSource("acid")); //.setDamageBypassesArmor(); public static DamageSource euthanizedSelf = (new DamageSource("euthanizedSelf")).setDamageBypassesArmor(); public static DamageSource euthanizedSelf2 = (new DamageSource("euthanizedSelf2")).setDamageBypassesArmor(); public static DamageSource tauBlast = (new DamageSource("tauBlast")).setDamageBypassesArmor(); @@ -53,6 +48,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource vacuum = (new DamageSource("vacuum")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource overdose = (new DamageSource("overdose")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource microwave = (new DamageSource("microwave")).setDamageIsAbsolute().setDamageBypassesArmor(); + public static DamageSource nitan = (new DamageSource("nitan")).setDamageIsAbsolute().setDamageBypassesArmor().setDamageAllowedInCreativeMode();; public static final String s_bullet = "revolverBullet"; public static final String s_emplacer = "chopperBullet"; @@ -100,22 +96,6 @@ public class ModDamageSource extends DamageSource { return (new EntityDamageSourceIndirect(s_euthanized, ent, hit)).setDamageBypassesArmor(); } - public static DamageSource causeDischargeDamage(EntityDischarge ent, Entity hit) { - return (new EntityDamageSourceIndirect(s_emp, ent, hit)).setDamageBypassesArmor(); - } - - public static DamageSource causeFireDamage(EntityFire ent, Entity hit) { - return (new EntityDamageSourceIndirect(s_flamethrower, ent, hit)).setFireDamage().setDamageBypassesArmor(); - } - - public static DamageSource causePlasmaDamage(EntityPlasmaBeam ent, Entity hit) { - return (new EntityDamageSourceIndirect(s_immolator, ent, hit)).setDamageBypassesArmor(); - } - - public static DamageSource causeIceDamage(EntityLN2 ent, Entity hit) { - return (new EntityDamageSourceIndirect(s_cryolator, ent, hit)).setDamageBypassesArmor(); - } - public static DamageSource causeLaserDamage(EntityLaserBeam ent, Entity hit) { return (new EntityDamageSourceIndirect(s_laser, ent, hit)).setDamageBypassesArmor(); } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index bfb6dcb7a..4c90a410c 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4641)"; + public static final String VERSION = "1.0.27 BETA (5202)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index dacffb517..0b968028b 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1,124 +1,145 @@ package com.hbm.main; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.model.ModelChicken; -import net.minecraft.client.particle.EntityAuraFX; -import net.minecraft.client.particle.EntityBlockDustFX; -import net.minecraft.client.particle.EntityCloudFX; -import net.minecraft.client.particle.EntityFX; -import net.minecraft.client.particle.EntityFireworkSparkFX; -import net.minecraft.client.particle.EntityFlameFX; -import net.minecraft.client.particle.EntityReddustFX; -import net.minecraft.client.renderer.entity.RenderMinecart; -import net.minecraft.client.renderer.entity.RenderSnowball; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; -import net.minecraft.util.MovingObjectPosition.MovingObjectType; -import net.minecraft.world.World; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.common.MinecraftForge; + import com.hbm.blocks.ModBlocks; + import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; + import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; + import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; + import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; + import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; + import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; + import com.hbm.blocks.machine.Floodlight.TileEntityFloodlight; + import com.hbm.blocks.machine.MachineFan.TileEntityFan; + import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; + import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; + import com.hbm.config.GeneralConfig; + import com.hbm.entity.cart.EntityMinecartCrate; + import com.hbm.entity.cart.EntityMinecartNTM; + import com.hbm.entity.effect.*; + import com.hbm.entity.grenade.*; + import com.hbm.entity.item.*; + import com.hbm.entity.logic.*; + import com.hbm.entity.missile.*; + import com.hbm.entity.missile.EntityMissileTier0.*; + import com.hbm.entity.missile.EntityMissileTier1.*; + import com.hbm.entity.missile.EntityMissileTier2.*; + import com.hbm.entity.missile.EntityMissileTier3.EntityMissileBurst; + import com.hbm.entity.missile.EntityMissileTier3.EntityMissileDrill; + import com.hbm.entity.missile.EntityMissileTier3.EntityMissileInferno; + import com.hbm.entity.missile.EntityMissileTier3.EntityMissileRain; + import com.hbm.entity.missile.EntityMissileTier4.*; + import com.hbm.entity.mob.*; + import com.hbm.entity.mob.botprime.EntityBOTPrimeBody; + import com.hbm.entity.mob.botprime.EntityBOTPrimeHead; + import com.hbm.entity.mob.glyphid.*; + import com.hbm.entity.mob.siege.*; + import com.hbm.entity.particle.*; + import com.hbm.entity.projectile.*; + import com.hbm.entity.train.EntityRailCarBase.BoundingBoxDummyEntity; + import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity; + import com.hbm.entity.train.TrainCargoTram; + import com.hbm.entity.train.TrainCargoTramTrailer; + import com.hbm.entity.train.TrainTunnelBore; + import com.hbm.handler.CasingEjector; + import com.hbm.handler.HbmKeybinds; + import com.hbm.handler.HbmKeybinds.EnumKeybind; + import com.hbm.handler.ImpactWorldHandler; + import com.hbm.handler.imc.IMCHandlerNHNEI; + import com.hbm.items.IAnimatedItem; + import com.hbm.items.ModItems; + import com.hbm.items.weapon.sedna.factory.GunFactoryClient; + import com.hbm.lib.RefStrings; + import com.hbm.particle.*; + import com.hbm.particle.helper.ParticleCreators; + import com.hbm.particle.psys.engine.EventHandlerParticleEngine; + import com.hbm.render.anim.BusAnimation; + import com.hbm.render.anim.BusAnimationSequence; + import com.hbm.render.anim.HbmAnimations; + import com.hbm.render.anim.HbmAnimations.Animation; + import com.hbm.render.block.*; + import com.hbm.render.entity.RenderEmpty; + import com.hbm.render.entity.effect.*; + import com.hbm.render.entity.item.*; + import com.hbm.render.entity.mob.*; + import com.hbm.render.entity.projectile.*; + import com.hbm.render.entity.rocket.*; + import com.hbm.render.item.*; + import com.hbm.render.item.ItemRenderMissileGeneric.RenderMissileType; + import com.hbm.render.item.block.ItemRenderDecoBlock; + import com.hbm.render.item.weapon.*; + import com.hbm.render.loader.HmfModelLoader; + import com.hbm.render.model.ModelPigeon; + import com.hbm.render.tileentity.*; + import com.hbm.render.util.MissilePart; + import com.hbm.render.util.RenderInfoSystem; + import com.hbm.render.util.RenderInfoSystem.InfoEntry; + import com.hbm.render.util.RenderOverhead; + import com.hbm.render.util.RenderOverhead.Marker; + import com.hbm.sound.AudioWrapper; + import com.hbm.sound.AudioWrapperClient; + import com.hbm.tileentity.TileEntityDoorGeneric; + import com.hbm.tileentity.bomb.*; + import com.hbm.tileentity.deco.*; + import com.hbm.tileentity.machine.*; + import com.hbm.tileentity.machine.oil.*; + import com.hbm.tileentity.machine.rbmk.*; + import com.hbm.tileentity.machine.storage.*; + import com.hbm.tileentity.network.*; + import com.hbm.tileentity.turret.*; + import com.hbm.util.BobMathUtil; + import com.hbm.util.ColorUtil; + import com.hbm.util.fauxpointtwelve.BlockPos; + import com.hbm.wiaj.cannery.Jars; + import cpw.mods.fml.client.registry.ClientRegistry; + import cpw.mods.fml.client.registry.RenderingRegistry; + import cpw.mods.fml.common.FMLCommonHandler; + import cpw.mods.fml.relauncher.ReflectionHelper; + import net.minecraft.block.Block; + import net.minecraft.client.Minecraft; + import net.minecraft.client.audio.PositionedSoundRecord; + import net.minecraft.client.model.ModelChicken; + import net.minecraft.client.particle.EntityCloudFX; + import net.minecraft.client.particle.*; + import net.minecraft.client.renderer.entity.RenderMinecart; + import net.minecraft.client.renderer.entity.RenderSnowball; + import net.minecraft.client.renderer.texture.TextureManager; + import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; + import net.minecraft.client.resources.Language; + import net.minecraft.entity.Entity; + import net.minecraft.entity.EntityLivingBase; + import net.minecraft.entity.player.EntityPlayer; + import net.minecraft.init.Blocks; + import net.minecraft.init.Items; + import net.minecraft.item.Item; + import net.minecraft.item.ItemBlock; + import net.minecraft.item.ItemStack; + import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.util.MovingObjectPosition; + import net.minecraft.util.MovingObjectPosition.MovingObjectType; + import net.minecraft.util.ResourceLocation; + import net.minecraft.util.Vec3; + import net.minecraft.world.World; + import net.minecraftforge.client.MinecraftForgeClient; + import net.minecraftforge.client.model.AdvancedModelLoader; + import net.minecraftforge.common.MinecraftForge; + import paulscode.sound.SoundSystemConfig; -import java.awt.Color; -import java.awt.Desktop; -import java.net.URI; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; -import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; -import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; -import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; -import com.hbm.blocks.machine.MachineFan.TileEntityFan; -import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; -import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; -import com.hbm.entity.cart.*; -import com.hbm.entity.effect.*; -import com.hbm.entity.grenade.*; -import com.hbm.entity.item.*; -import com.hbm.entity.logic.*; -import com.hbm.entity.missile.*; -import com.hbm.entity.mob.*; -import com.hbm.entity.mob.botprime.*; -import com.hbm.entity.mob.siege.*; -import com.hbm.entity.particle.*; -import com.hbm.entity.projectile.*; -import com.hbm.entity.train.*; -import com.hbm.entity.train.EntityRailCarBase.BoundingBoxDummyEntity; -import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.HbmKeybinds; -import com.hbm.handler.ImpactWorldHandler; -import com.hbm.handler.HbmKeybinds.EnumKeybind; -import com.hbm.items.IAnimatedItem; -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.particle.*; -import com.hbm.particle.psys.engine.EventHandlerParticleEngine; -import com.hbm.render.anim.*; -import com.hbm.render.anim.HbmAnimations.Animation; -import com.hbm.render.block.*; -import com.hbm.render.entity.*; -import com.hbm.render.entity.effect.*; -import com.hbm.render.entity.item.*; -import com.hbm.render.entity.mob.*; -import com.hbm.render.entity.projectile.*; -import com.hbm.render.entity.rocket.*; -import com.hbm.render.item.*; -import com.hbm.render.item.block.*; -import com.hbm.render.item.weapon.*; -import com.hbm.render.loader.HmfModelLoader; -import com.hbm.render.tileentity.*; -import com.hbm.render.util.MissilePart; -import com.hbm.render.util.RenderInfoSystem; -import com.hbm.render.util.RenderInfoSystem.InfoEntry; -import com.hbm.render.util.RenderOverhead; -import com.hbm.render.util.RenderOverhead.Marker; -import com.hbm.sound.AudioWrapper; -import com.hbm.sound.AudioWrapperClient; -import com.hbm.sound.AudioWrapperClientStartStop; -import com.hbm.tileentity.TileEntityDoorGeneric; -import com.hbm.tileentity.bomb.*; -import com.hbm.tileentity.conductor.*; -import com.hbm.tileentity.deco.*; -import com.hbm.tileentity.machine.*; -import com.hbm.tileentity.machine.oil.*; -import com.hbm.tileentity.machine.rbmk.*; -import com.hbm.tileentity.machine.storage.*; -import com.hbm.tileentity.network.*; -import com.hbm.tileentity.turret.*; -import com.hbm.util.BobMathUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; -import com.hbm.wiaj.cannery.Jars; - -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.relauncher.ReflectionHelper; + import java.awt.*; + import java.net.URI; + import java.util.List; + import java.util.*; + import java.util.Map.Entry; public class ClientProxy extends ServerProxy { - + public RenderInfoSystem theInfoSystem = new RenderInfoSystem(); - + + /** Runs just before item an block init */ + @Override + public void registerPreRenderInfo() { + AdvancedModelLoader.registerModelHandler(new HmfModelLoader()); + } + + /** Runs right after item and block init */ @Override public void registerRenderInfo() { @@ -127,48 +148,60 @@ public class ClientProxy extends ServerProxy { registerClientEventHandler(new EventHandlerParticleEngine()); registerClientEventHandler(theInfoSystem); - AdvancedModelLoader.registerModelHandler(new HmfModelLoader()); - ResourceManager.loadAnimatedModels(); - registerTileEntitySpecialRenderer(); registerItemRenderer(); registerEntityRenderer(); registerBlockRenderer(); - + Jars.initJars(); - //SoundUtil.addSoundCategory("ntmMachines"); + if(GeneralConfig.enableSoundExtension) { + SoundSystemConfig.setNumberNormalChannels(GeneralConfig.normalSoundChannels); + SoundSystemConfig.setNumberStreamingChannels(50); + } } - + private void registerClientEventHandler(Object handler) { MinecraftForge.EVENT_BUS.register(handler); FMLCommonHandler.instance().bus().register(handler); } - + + @Override + public void handleNHNEICompat(){ + IMCHandlerNHNEI.IMCSender(); + } + + @Override + public void registerGunCfg() { + GunFactoryClient.init(); + } + @Override public void registerTileEntitySpecialRenderer() { //test crap - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTestRender.class, new RenderTestRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTestBombAdvanced.class, new RenderTestBombAdvanced()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityObjTester.class, new RendererObjTester()); - //deco + //deco ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoPoleSatelliteReceiver.class, new RenderPoleSatelliteReceiver()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlock.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBroadcaster.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGeiger.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadioRec.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadiobox.class, new RenderDecoBlock()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBomber.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSatDock.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAlt.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltG.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltW.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltF.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDemonLamp.class, new RenderDemonLamp()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFloodlight.class, new RenderFloodlight()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLoot.class, new RenderLoot()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPedestal.class, new RenderPedestalTile()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySnowglobe.class, new RenderSnowglobe()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlushie.class, new RenderPlushie()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmitter.class, new RenderEmitter()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLantern.class, new RenderLantern()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLanternBehemoth.class, new RenderLanternBehemoth()); //bombs ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeGadget.class, new RenderNukeGadget()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeBoy.class, new RenderNukeBoy()); @@ -176,7 +209,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeSolinium.class, new RenderNukeSolinium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN2.class, new RenderNukeN2()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeMan.class, new RenderNukeMan()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN45.class, new RenderNukeN45()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeBalefire.class, new RenderNukeFstbmb()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBombMulti.class, new RenderBombMulti()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeMike.class, new RenderNukeMike()); @@ -199,6 +231,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretArty.class, new RenderTurretArty()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretHIMARS.class, new RenderTurretHIMARS()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretSentry.class, new RenderTurretSentry()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretSentryDamaged.class, new RenderTurretSentry()); //mines ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLandmine.class, new RenderLandmine()); //machines @@ -210,9 +243,11 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePuF6Tank.class, new RenderPuF6Tank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineIGenerator.class, new RenderIGenerator()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCyclotron.class, new RenderCyclotron()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineExposureChamber.class, new RenderExposureChamber()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOilWell.class, new RenderDerrick()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineGasFlare.class, new RenderGasFlare()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyBrick.class, new RenderChimneyBrick()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyIndustrial.class, new RenderChimneyIndustrial()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningLaser.class, new RenderLaserMiner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssemfac.class, new RenderAssemfac()); @@ -228,15 +263,18 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFrackingTower.class, new RenderFrackingTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineTurbofan.class, new RenderTurbofan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineTurbineGas.class, new RenderTurbineGas()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLPW2.class, new RenderLPW2()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePress.class, new RenderPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineEPress.class, new RenderEPress()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAmmoPress.class, new RenderAmmoPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadGen.class, new RenderRadGen()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadar.class, new RenderRadar()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSeleniumEngine.class, new RenderSelenium()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarNT.class, new RenderRadar()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarLarge.class, new RenderRadarLarge()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarScreen.class, new RenderRadarScreen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorResearch.class, new RenderSmallReactor()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineShredderLarge.class, new RenderMachineShredder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTesla.class, new RenderTesla()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBarrel.class, new RenderFluidBarrel()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRotaryFurnace.class, new RenderRotaryFurnace()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCrystallizer.class, new RenderCrystallizer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMicrowave.class, new RenderMicrowave()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRTG.class, new RenderRTG()); @@ -251,11 +289,13 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChungus.class, new RenderChungus()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTowerLarge.class, new RenderLargeTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTowerSmall.class, new RenderSmallTower()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCondenserPowered.class, new RenderCondenser()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDeuteriumTower.class, new RenderDeuteriumTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticCracker.class, new RenderCatalyticCracker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolidifier.class, new RenderSolidifier()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCompressor.class, new RenderCompressor()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineDrain.class, new RenderDrain()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityElectrolyser.class, new RenderElectrolyser()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceIron.class, new RenderFurnaceIron()); @@ -263,6 +303,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceCombination.class, new RenderFurnaceCombination()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterFirebox.class, new RenderFirebox()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOven.class, new RenderHeatingOven()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAshpit.class, new RenderAshpit()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOilburner.class, new RenderOilburner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterElectric.class, new RenderElectricHeater()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterHeatex.class, new RenderHeaterHeatex()); @@ -270,25 +311,34 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySawmill.class, new RenderSawmill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCrucible.class, new RenderCrucible()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeatBoiler.class, new RenderBoiler()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeatBoilerIndustrial.class, new RenderIndustrialBoiler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySteamEngine.class, new RenderSteamEngine()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineDiesel.class, new RenderDieselGen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCombustionEngine.class, new RenderCombustionEngine()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineExcavator.class, new RenderExcavator()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOreSlopper.class, new RenderOreSlopper()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMixer.class, new RenderMixer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineHephaestus.class, new RenderHephaestus()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAutosaw.class, new RenderAutosaw()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineVacuumDistill.class, new RenderVacuumDistill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticReformer.class, new RenderCatalyticReformer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineHydrotreater.class, new RenderHydrotreater()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCoker.class, new RenderCoker()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePyroOven.class, new RenderPyroOven()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFan.class, new RenderFan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPistonInserter.class, new RenderPistonInserter()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConveyorPress.class, new RenderConveyorPress()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadioTelex.class, new RenderTelex()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpSteam.class, new RenderPump()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpElectric.class, new RenderPump()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineArcWelder.class, new RenderArcWelder()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolderingStation.class, new RenderSolderingStation()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineArcFurnaceLarge.class, new RenderArcFurnace()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineWoodBurner.class, new RenderWoodBurner()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); - //AMS - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSLimiter.class, new RenderAMSLimiter()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineStrandCaster.class, new RenderStrandCaster()); //ZIRNOX ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorZirnox.class, new RenderZirnox()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityZirnoxDestroyed.class, new RenderZirnoxDestroyed()); @@ -299,19 +349,18 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCoreStabilizer.class, new RenderCoreComponent()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCore.class, new RenderCore()); //missile blocks - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPadTier1()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPad()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPadRusted.class, new RenderLaunchPadRusted()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPadLarge.class, new RenderLaunchPadLarge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMissileAssembly.class, new RenderMissileAssembly()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCompactLauncher.class, new RenderCompactLauncher()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchTable.class, new RenderLaunchTable()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzLauncher.class, new RenderSoyuzLauncher()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzCapsule.class, new RenderCapsule()); //network - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOilDuct.class, new RenderOilDuct()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGasDuct.class, new RenderGasDuct()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRFDuct.class, new RenderRFCable()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnector.class, new RenderConnector()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonMedium.class, new RenderPylonMedium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonLarge.class, new RenderPylonLarge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySubstation.class, new RenderSubstation()); //chargers @@ -319,12 +368,13 @@ public class ClientProxy extends ServerProxy { //DecoContainer ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFileCabinet.class, new RenderFileCabinet()); //multiblocks - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStructureMarker.class, new RenderStructureMaker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMultiblock.class, new RenderMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzStruct.class, new RenderSoyuzMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITERStruct.class, new RenderITERMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlasmaStruct.class, new RenderPlasmaMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzStruct.class, new RenderWatzMultiblock()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityICFStruct.class, new RenderICFMultiblock()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCustomMachine.class, new RenderCustomMachine()); //RBMK ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlManual.class, new RenderRBMKControlRod()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlAuto.class, new RenderRBMKControlRod()); @@ -344,6 +394,8 @@ public class ClientProxy extends ServerProxy { //ITER ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITER.class, new RenderITER()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePlasmaHeater.class, new RenderPlasmaHeater()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityICF.class, new RenderICF()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityICFController.class, new RenderICFController()); //Watz ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump()); @@ -355,12 +407,12 @@ public class ClientProxy extends ServerProxy { @Override public void registerItemRenderer() { - + ItemRenderLibrary.init(); - + for(Entry entry : ItemRenderLibrary.renderers.entrySet()) MinecraftForgeClient.registerItemRenderer(entry.getKey(), entry.getValue()); - + //this bit registers an item renderer for every existing tile entity renderer that implements IItemRendererProvider Iterator iterator = TileEntityRendererDispatcher.instance.mapSpecialRenderers.values().iterator(); while(iterator.hasNext()) { @@ -372,7 +424,7 @@ public class ClientProxy extends ServerProxy { } } } - + //universal JSON translated items double[] rtp = new double[] {0, 180, -90}; double[] ttp_high = new double[] {0.125, 0.625, 0}; @@ -394,14 +446,51 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.schrabidium_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); MinecraftForgeClient.registerItemRenderer(ModItems.cmb_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); MinecraftForgeClient.registerItemRenderer(ModItems.dnt_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); - - /*for(ItemSwordMeteorite sword : ItemSwordMeteorite.swords) { - MinecraftForgeClient.registerItemRenderer(sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); - }*/ - - - //test crap - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.test_bomb_advanced), new ItemRenderTestBombAdvanced()); + + double[] sfp_default = new double[] {1, 1, 1}; + double[] tfp_default = new double[] {0, 0, 0}; + double[] sir_default = new double[] {1, 1, 1}; + + MinecraftForgeClient.registerItemRenderer(ModItems.bismuth_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.bismuth_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.volcanic_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.volcanic_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.chlorophyte_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.chlorophyte_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.mese_pickaxe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + MinecraftForgeClient.registerItemRenderer(ModItems.mese_axe, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp_default, sfp_default, rir, tir, sir_default)); + + ItemRenderMissileGeneric.init(); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_test, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_taint, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_micro, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_bhole, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_schrabidium, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_emp, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_stealth, new ItemRenderMissileGeneric(RenderMissileType.TYPE_STEALTH)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_generic, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_incendiary, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_buster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_decoy, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER1)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_anti_ballistic, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ABM)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_incendiary_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_cluster_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_buster_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_emp_strong, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER2)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_burst, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_inferno, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_rain, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_drill, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER3)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_volcano, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday_rusted, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_carrier, new ItemRenderMissileGeneric(RenderMissileType.TYPE_CARRIER)); + MinecraftForgeClient.registerItemRenderer(ModItems.missile_shuttle, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ROBIN)); + //templates MinecraftForgeClient.registerItemRenderer(ModItems.assembly_template, new ItemRenderTemplate()); MinecraftForgeClient.registerItemRenderer(ModItems.chemistry_template, new ItemRenderTemplate()); @@ -440,86 +529,10 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.chainsaw, new ItemRenderChainsaw()); MinecraftForgeClient.registerItemRenderer(ModItems.boltgun, new ItemRenderBoltgun()); //guns - MinecraftForgeClient.registerItemRenderer(ModItems.gun_rpg, new ItemRenderRpg()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_karl, new ItemRenderRpg()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_panzerschreck, new ItemRenderRpg()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_stinger, new ItemRenderStinger()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_skystinger, new ItemRenderStinger()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver, new ItemRenderWeaponFFColt(ResourceManager.ff_gun_bright, ResourceManager.ff_iron, ResourceManager.ff_wood)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_saturnite, new ItemRenderWeaponFFColt(ResourceManager.ff_saturnite, ResourceManager.ff_iron, ResourceManager.ff_wood)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_gold, new ItemRenderWeaponFFColt(ResourceManager.ff_gold, ResourceManager.ff_gold, ResourceManager.ff_gun_dark)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_schrabidium, new ItemRenderWeaponFFColt(ResourceManager.ff_schrabidium, ResourceManager.ff_schrabidium, ResourceManager.ff_gun_dark)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_cursed, new ItemRenderWeaponFFCursed()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nightmare, new ItemRenderWeaponFFNightmare()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nightmare2, new ItemRenderWeaponFFNightmareDark()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_fatman, new ItemRenderFatMan()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_proto, new ItemRenderFatMan()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_mirv, new ItemRenderMIRVLauncher()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bf, new ItemRenderBFLauncher()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_xvl1456, new ItemRenderWeaponTau()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_zomg, new ItemRenderZOMG()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_osipr, new ItemRenderOSIPR()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_mp, new ItemRenderMP()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_inverted, new ItemRenderRevolverInverted()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_mp40, new ItemRenderMP40()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_emp, new ItemRenderEMPRay()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_immolator, new ItemRenderImmolator()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_cryolator, new ItemRenderCryolator()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uboinik, new ItemRenderUboinik()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_jack, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_spark, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_hp, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_euthanasia, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_defabricator, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_dash, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_twigun, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_dampfmaschine, new ItemRenderBullshit()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_bright, ResourceManager.ff_wood)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action, new ItemRenderWeaponFFBolt(ResourceManager.rem700, ResourceManager.rem700_tex)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_dark, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_normal, ResourceManager.ff_wood_red)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_green, new ItemRenderWeaponFFBolt(ResourceManager.rem700poly, ResourceManager.rem700poly_tex)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_sonata, new ItemRenderGunAnim()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_saturnite, new ItemRenderGunAnim()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_saturnite, new ItemRenderWeaponFFBolt(ResourceManager.rem700sat, ResourceManager.rem700sat_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_b92, new ItemRenderGunAnim()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_b93, new ItemRenderGunAnim()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi, new ItemRenderUZI()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_silencer, new ItemRenderUZI()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_saturnite, new ItemRenderUZI()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_saturnite_silencer, new ItemRenderUZI()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_calamity, new ItemRenderWeaponFFMG42()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_avenger, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lacunae, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_folly, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_hk69, new ItemRenderWeaponObj()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bio_revolver, new ItemRenderBioRevolver()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_deagle, new ItemRenderWeaponObj()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_supershotgun, new ItemRenderWeaponShotty()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_ks23, new ItemRenderWeaponObj()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer, new ItemRenderWeaponObj()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_flechette, new ItemRenderWeaponObj()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderWeaponQuadro()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_sauer, new ItemRenderWeaponSauer()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_vortex, new ItemRenderWeaponVortex()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_thompson, new ItemRenderWeaponThompson()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter, new ItemRenderWeaponBolter()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter_digamma, new ItemRenderWeaponBolter()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_ar15, new ItemRenderWeaponAR15()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_detonator, new ItemRenderDetonatorLaser()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_cryocannon, new ItemRenderWeaponCryoCannon()); MinecraftForgeClient.registerItemRenderer(ModItems.detonator_laser, new ItemRenderDetonatorLaser()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_remington, new ItemRenderWeaponRemington()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_spas12, new ItemRenderWeaponSpas12()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_glass_cannon, new ItemRenderWeaponGlass()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_chemthrower, new ItemRenderWeaponChemthrower()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nopip, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_pip, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_blackjack, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_silver, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lunatic_marksman, new ItemRenderLunaticSniper()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); @@ -532,8 +545,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.multitool_joule, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_decon, new ItemRenderMultitool()); //blocks - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.steel_wall), new ItemRenderDecoBlock()); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.steel_corner), new ItemRenderDecoBlock()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.steel_roof), new ItemRenderDecoBlock()); } @@ -543,40 +554,35 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderSnowball(ModItems.man_core)); RenderingRegistry.registerEntityRenderingHandler(EntitySchrab.class, new RenderFlare()); RenderingRegistry.registerEntityRenderingHandler(EntityBullet.class, new RenderRocket()); - RenderingRegistry.registerEntityRenderingHandler(EntityBulletBase.class, new RenderBullet()); + RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseNT.class, new RenderBullet()); + RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseMK4.class, new RenderBulletMK4()); + RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseMK4CL.class, new RenderBulletMK4()); + RenderingRegistry.registerEntityRenderingHandler(EntityBulletBeamBase.class, new RenderBeam()); RenderingRegistry.registerEntityRenderingHandler(EntityRainbow.class, new RenderRainbow()); - RenderingRegistry.registerEntityRenderingHandler(EntityNightmareBlast.class, new RenderOminousBullet()); - RenderingRegistry.registerEntityRenderingHandler(EntityFire.class, new RenderFireball(ModItems.energy_ball)); - RenderingRegistry.registerEntityRenderingHandler(EntityPlasmaBeam.class, new RenderBeam()); RenderingRegistry.registerEntityRenderingHandler(EntityLaserBeam.class, new RenderBeam2()); RenderingRegistry.registerEntityRenderingHandler(EntityMinerBeam.class, new RenderBeam3()); RenderingRegistry.registerEntityRenderingHandler(EntitySparkBeam.class, new RenderBeam4()); RenderingRegistry.registerEntityRenderingHandler(EntityExplosiveBeam.class, new RenderBeam5()); RenderingRegistry.registerEntityRenderingHandler(EntityModBeam.class, new RenderBeam6()); RenderingRegistry.registerEntityRenderingHandler(EntitySiegeLaser.class, new RenderSiegeLaser()); - RenderingRegistry.registerEntityRenderingHandler(EntityLN2.class, new RenderLN2(ModItems.energy_ball)); - RenderingRegistry.registerEntityRenderingHandler(EntityLaser.class, new RenderLaser()); - RenderingRegistry.registerEntityRenderingHandler(EntityBombletTheta.class, new RenderBombletTheta()); RenderingRegistry.registerEntityRenderingHandler(EntityBombletZeta.class, new RenderBombletTheta()); - RenderingRegistry.registerEntityRenderingHandler(EntityBombletSelena.class, new RenderBombletSelena()); RenderingRegistry.registerEntityRenderingHandler(EntityMeteor.class, new RenderMeteor()); RenderingRegistry.registerEntityRenderingHandler(EntityBoxcar.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityDuchessGambit.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityBuilding.class, new RenderBoxcar()); + RenderingRegistry.registerEntityRenderingHandler(EntityTorpedo.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityBomber.class, new RenderBomber()); + RenderingRegistry.registerEntityRenderingHandler(EntityC130.class, new RenderC130()); RenderingRegistry.registerEntityRenderingHandler(EntityBurningFOEQ.class, new RenderFOEQ()); RenderingRegistry.registerEntityRenderingHandler(EntityFallingNuke.class, new RenderFallingNuke()); RenderingRegistry.registerEntityRenderingHandler(EntityMinerRocket.class, new RenderMinerRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityBobmazon.class, new RenderMinerRocket()); - RenderingRegistry.registerEntityRenderingHandler(EntitySiegeDropship.class, new RenderMinerRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityTom.class, new RenderTom()); RenderingRegistry.registerEntityRenderingHandler(EntityAAShell.class, new RenderMirv()); - RenderingRegistry.registerEntityRenderingHandler(EntityRocketHoming.class, new RenderSRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityChopperMine.class, new RenderChopperMine()); RenderingRegistry.registerEntityRenderingHandler(EntityRubble.class, new RenderRubble()); RenderingRegistry.registerEntityRenderingHandler(EntityShrapnel.class, new RenderShrapnel()); RenderingRegistry.registerEntityRenderingHandler(EntityFireworks.class, new RenderShrapnel()); - RenderingRegistry.registerEntityRenderingHandler(EntityOilSpill.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityWaterSplash.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityEMP.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityBeamVortex.class, new RenderVortexBeam()); @@ -588,6 +594,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySawblade.class, new RenderSawblade()); RenderingRegistry.registerEntityRenderingHandler(EntityChemical.class, new RenderChemical()); RenderingRegistry.registerEntityRenderingHandler(EntityMist.class, new RenderMist()); + RenderingRegistry.registerEntityRenderingHandler(EntityFireLingering.class, new RenderMist()); + RenderingRegistry.registerEntityRenderingHandler(EntityWaypoint.class, new RenderMist()); RenderingRegistry.registerEntityRenderingHandler(EntityAcidBomb.class, new RenderSnowball(Items.slime_ball)); //grenades RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic)); @@ -635,10 +643,12 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeDynamite.class, new RenderSnowball(ModItems.stick_dynamite)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeBouncyGeneric.class, new RenderGenericGrenade()); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeImpactGeneric.class, new RenderGenericGrenade()); + RenderingRegistry.registerEntityRenderingHandler(EntityDisperserCanister.class, new RenderGenericGrenade()); //missiles - RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileDecoy.class, new RenderMissileGeneric()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileStealth.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileAntiBallistic.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileIncendiary.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCluster.class, new RenderMissileGeneric()); @@ -653,25 +663,22 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMissileRain.class, new RenderMissileHuge()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileDrill.class, new RenderMissileHuge()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileNuclear.class, new RenderMissileNuclear()); - RenderingRegistry.registerEntityRenderingHandler(EntityMissileMirv.class, new RenderMissileMirv()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileMirv.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileVolcano.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityMIRV.class, new RenderMirv()); - RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileDoomsday()); - RenderingRegistry.registerEntityRenderingHandler(EntityCarrier.class, new RenderCarrierMissile()); - RenderingRegistry.registerEntityRenderingHandler(EntityBooster.class, new RenderBoosterMissile()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileNuclear()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsdayRusted.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntitySoyuz.class, new RenderSoyuz()); RenderingRegistry.registerEntityRenderingHandler(EntitySoyuzCapsule.class, new RenderSoyuzCapsule()); + RenderingRegistry.registerEntityRenderingHandler(EntityParachuteCrate.class, new RenderParachuteCrate()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileTaint.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileMicro.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileBHole.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileSchrabidium.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileEMP.class, new RenderMissileTaint()); - RenderingRegistry.registerEntityRenderingHandler(EntityMissileEndo.class, new RenderMissileThermo()); - RenderingRegistry.registerEntityRenderingHandler(EntityMissileExo.class, new RenderMissileThermo()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileShuttle.class, new RenderMissileShuttle()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileTest.class, new RenderMissileTaint()); //effects - RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudSmall.class, new RenderSmallNukeMK4()); - RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudBig.class, new RenderBigNuke()); RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleija.class, new RenderCloudFleija()); RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleijaRainbow.class, new RenderCloudRainbow()); RenderingRegistry.registerEntityRenderingHandler(EntityCloudSolinium.class, new RenderCloudSolinium()); @@ -689,15 +696,20 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart()); RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); + RenderingRegistry.registerEntityRenderingHandler(EntityBoatRubber.class, new RenderBoatRubber()); //trains RenderingRegistry.registerEntityRenderingHandler(SeatDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(BoundingBoxDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram()); RenderingRegistry.registerEntityRenderingHandler(TrainCargoTramTrailer.class, new RenderTrainCargoTramTrailer()); + RenderingRegistry.registerEntityRenderingHandler(TrainTunnelBore.class, new RenderTunnelBore()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage()); RenderingRegistry.registerEntityRenderingHandler(EntityTNTPrimedBase.class, new RenderTNTPrimedBase()); + RenderingRegistry.registerEntityRenderingHandler(EntityDeliveryDrone.class, new RenderDeliveryDrone()); + RenderingRegistry.registerEntityRenderingHandler(EntityRequestDrone.class, new RenderDeliveryDrone()); + RenderingRegistry.registerEntityRenderingHandler(EntityFallingBlockNT.class, new RenderFallingBlockNT()); //mobs RenderingRegistry.registerEntityRenderingHandler(EntityCreeperNuclear.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor.png").setSwellMod(5F)); RenderingRegistry.registerEntityRenderingHandler(EntityCreeperTainted.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper_tainted.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor_taint.png")); @@ -731,25 +743,20 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear()); + RenderingRegistry.registerEntityRenderingHandler(EntityParasiteMaggot.class, new RenderMaggot()); RenderingRegistry.registerEntityRenderingHandler(EntityFBIDrone.class, new RenderDrone()); + RenderingRegistry.registerEntityRenderingHandler(EntityPlasticBag.class, new RenderPlasticBag()); + RenderingRegistry.registerEntityRenderingHandler(EntityPigeon.class, new RenderPigeon(new ModelPigeon(), 0.3F)); + RenderingRegistry.registerEntityRenderingHandler(EntityDummy.class, new RenderDummy()); //"particles" - RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); - RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); - RenderingRegistry.registerEntityRenderingHandler(EntityDSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.d_smoke1, ModItems.d_smoke2, ModItems.d_smoke3, ModItems.d_smoke4, ModItems.d_smoke5, ModItems.d_smoke6, ModItems.d_smoke7, ModItems.d_smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityChlorineFX.class, new MultiCloudRenderer(new Item[] { ModItems.chlorine1, ModItems.chlorine2, ModItems.chlorine3, ModItems.chlorine4, ModItems.chlorine5, ModItems.chlorine6, ModItems.chlorine7, ModItems.chlorine8 })); RenderingRegistry.registerEntityRenderingHandler(EntityPinkCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.pc1, ModItems.pc2, ModItems.pc3, ModItems.pc4, ModItems.pc5, ModItems.pc6, ModItems.pc7, ModItems.pc8 })); RenderingRegistry.registerEntityRenderingHandler(com.hbm.entity.particle.EntityCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.cloud1, ModItems.cloud2, ModItems.cloud3, ModItems.cloud4, ModItems.cloud5, ModItems.cloud6, ModItems.cloud7, ModItems.cloud8 })); RenderingRegistry.registerEntityRenderingHandler(EntityOrangeFX.class, new MultiCloudRenderer(new Item[] { ModItems.orange1, ModItems.orange2, ModItems.orange3, ModItems.orange4, ModItems.orange5, ModItems.orange6, ModItems.orange7, ModItems.orange8 })); RenderingRegistry.registerEntityRenderingHandler(EntityFogFX.class, new FogRenderer()); - RenderingRegistry.registerEntityRenderingHandler(EntitySSmokeFX.class, new SSmokeRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityOilSpillFX.class, new SpillRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityGasFX.class, new GasRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityCombineBall.class, new RenderSnowball(ModItems.energy_ball)); - RenderingRegistry.registerEntityRenderingHandler(EntityDischarge.class, new ElectricityRenderer(ModItems.discharge)); RenderingRegistry.registerEntityRenderingHandler(EntityEMPBlast.class, new RenderEMPBlast()); - RenderingRegistry.registerEntityRenderingHandler(EntityTSmokeFX.class, new TSmokeRenderer(ModItems.nuclear_waste)); } - + @Override public void registerBlockRenderer() { @@ -757,6 +764,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderScaffoldBlock()); RenderingRegistry.registerBlockHandler(new RenderTapeBlock()); RenderingRegistry.registerBlockHandler(new RenderSteelBeam()); + RenderingRegistry.registerBlockHandler(new RenderSteelWall()); + RenderingRegistry.registerBlockHandler(new RenderSteelCorner()); RenderingRegistry.registerBlockHandler(new RenderBarrel()); RenderingRegistry.registerBlockHandler(new RenderFence()); RenderingRegistry.registerBlockHandler(new RenderBarbedWire()); @@ -773,7 +782,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderPipe()); RenderingRegistry.registerBlockHandler(new RenderBattery()); RenderingRegistry.registerBlockHandler(new RenderAnvil()); - RenderingRegistry.registerBlockHandler(new RenderCrystal()); RenderingRegistry.registerBlockHandler(new RenderCable()); RenderingRegistry.registerBlockHandler(new RenderCableClassic()); RenderingRegistry.registerBlockHandler(new RenderTestPipe()); @@ -790,6 +798,11 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderDiFurnaceExtension()); RenderingRegistry.registerBlockHandler(new RenderSplitter()); RenderingRegistry.registerBlockHandler(new RenderCapacitor()); + RenderingRegistry.registerBlockHandler(new RenderPedestal()); + RenderingRegistry.registerBlockHandler(new RenderLight()); + RenderingRegistry.registerBlockHandler(new RenderCRT()); + RenderingRegistry.registerBlockHandler(new RenderToaster()); + RenderingRegistry.registerBlockHandler(new RenderPartitioner()); RenderingRegistry.registerBlockHandler(new RenderFoundryBasin()); RenderingRegistry.registerBlockHandler(new RenderFoundryMold()); @@ -797,13 +810,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderFoundryTank()); RenderingRegistry.registerBlockHandler(new RenderFoundryOutlet()); - RenderingRegistry.registerBlockHandler(new RenderNarrowStraightRail()); - RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardCurveRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardRampRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardBufferRail()); - + RenderingRegistry.registerBlockHandler(new RenderRail()); + RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); @@ -812,105 +820,32 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderRBMKControl()); RenderingRegistry.registerBlockHandler(new RenderPribris()); } - + @Override public void registerMissileItems() { - + MissilePart.registerAllParts(); - + Iterator it = MissilePart.parts.entrySet().iterator(); - + while(it.hasNext()) { Map.Entry pair = (Map.Entry) it.next(); MissilePart part = (MissilePart) pair.getValue(); MinecraftForgeClient.registerItemRenderer(part.part, new ItemRenderMissilePart(part)); } - + MinecraftForgeClient.registerItemRenderer(ModItems.missile_custom, new ItemRenderMissile()); } - @Deprecated - @Override - public void particleControl(double x, double y, double z, int type) { - - - World world = Minecraft.getMinecraft().theWorld; - TextureManager man = Minecraft.getMinecraft().renderEngine; - - switch(type) { - case 0: - - for(int i = 0; i < 10; i++) { - EntityCloudFX smoke = new EntityCloudFX(world, x + world.rand.nextGaussian(), y + world.rand.nextGaussian(), z + world.rand.nextGaussian(), 0.0, 0.0, 0.0); - Minecraft.getMinecraft().effectRenderer.addEffect(smoke); - } - break; - - case 1: - - EntityCloudFX smoke = new EntityCloudFX(world, x, y, z, 0.0, 0.1, 0.0); - Minecraft.getMinecraft().effectRenderer.addEffect(smoke); - break; - - case 2: - - ParticleContrail contrail = new ParticleContrail(man, world, x, y, z); - Minecraft.getMinecraft().effectRenderer.addEffect(contrail); - break; - - case 3: - - ParticleRadiationFog fog = new ParticleRadiationFog(man, world, x, y, z); - Minecraft.getMinecraft().effectRenderer.addEffect(fog); - break; - } - } - - //version 2, now with strings! - @Deprecated - @Override - public void spawnParticle(double x, double y, double z, String type, float args[]) { - - World world = Minecraft.getMinecraft().theWorld; - TextureManager man = Minecraft.getMinecraft().renderEngine; - - if("launchsmoke".equals(type) && args.length == 3) { - ParticleSmokePlume contrail = new ParticleSmokePlume(man, world, x, y, z); - contrail.motionX = args[0]; - contrail.motionY = args[1]; - contrail.motionZ = args[2]; - Minecraft.getMinecraft().effectRenderer.addEffect(contrail); - } - if("exKerosene".equals(type)) { - ParticleContrail contrail = new ParticleContrail(man, world, x, y, z); - Minecraft.getMinecraft().effectRenderer.addEffect(contrail); - } - if("exSolid".equals(type)) { - ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0.3F, 0.2F, 0.05F, 1F); - Minecraft.getMinecraft().effectRenderer.addEffect(contrail); - } - if("exHydrogen".equals(type)) { - ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0.7F, 0.7F, 0.7F, 1F); - Minecraft.getMinecraft().effectRenderer.addEffect(contrail); - } - if("exBalefire".equals(type)) { - ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0.2F, 0.7F, 0.2F, 1F); - Minecraft.getMinecraft().effectRenderer.addEffect(contrail); - } - if("radSmoke".equals(type)) { - ParticleRadiationFog contrail = new ParticleRadiationFog(man, world, x, y, z); - Minecraft.getMinecraft().effectRenderer.addEffect(contrail); - } - } - //mk3, only use this one + @Override public void effectNT(NBTTagCompound data) { - + World world = Minecraft.getMinecraft().theWorld; - + if(world == null) //might i ask why? return; - + TextureManager man = Minecraft.getMinecraft().renderEngine; EntityPlayer player = Minecraft.getMinecraft().thePlayer; int particleSetting = Minecraft.getMinecraft().gameSettings.particleSetting; @@ -919,14 +854,100 @@ public class ClientProxy extends ServerProxy { double x = data.getDouble("posX"); double y = data.getDouble("posY"); double z = data.getDouble("posZ"); - + + if(ParticleCreators.particleCreators.containsKey(type)) { + ParticleCreators.particleCreators.get(type).makeParticle(world, player, man, rand, x, y, z, data); + return; + } + + // Old MK1 system ported to MK3: + + if("waterSplash".equals(type)) { + for (int i = 0; i < 10; i++) { + EntityCloudFX smoke = new EntityCloudFX(world, x + world.rand.nextGaussian(), y + world.rand.nextGaussian(), z + world.rand.nextGaussian(), 0.0, 0.0, 0.0); + Minecraft.getMinecraft().effectRenderer.addEffect(smoke); + } + } + + if("cloudFX2".equals(type)) { // i have genuinely no idea what used this + EntityCloudFX smoke = new EntityCloudFX(world, x, y, z, 0.0, 0.1, 0.0); + Minecraft.getMinecraft().effectRenderer.addEffect(smoke); + } + + if("ABMContrail".equals(type)) { + ParticleContrail contrail = new ParticleContrail(man, world, x, y, z); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + } + + // End MK1 porting. + + // Old MK2 system ported to MK3: + + if("launchSmoke".equals(type)) { + ParticleSmokePlume contrail = new ParticleSmokePlume(man, world, x, y, z); + contrail.motionX = data.getDouble("moX"); + contrail.motionY = data.getDouble("moY"); + contrail.motionZ = data.getDouble("moZ"); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + } + + if("exKerosene".equals(type)) { + ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0F, 0F, 0F, 1F); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + } + + if("exSolid".equals(type)) { + ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0.3F, 0.2F, 0.05F, 1F); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + } + + if("exHydrogen".equals(type)) { + ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0.7F, 0.7F, 0.7F, 1F); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + } + + if("exBalefire".equals(type)) { + ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0.2F, 0.7F, 0.2F, 1F); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + } + + if("radFog".equals(type)) { + ParticleRadiationFog contrail = new ParticleRadiationFog(man, world, x, y, z); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + } + + // End MK2 porting. + + if("missileContrail".equals(type)) { + + if(Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector() > 350) return; + + float scale = data.hasKey("scale") ? data.getFloat("scale") : 1F; + double mX = data.getDouble("moX"); + double mY = data.getDouble("moY"); + double mZ = data.getDouble("moZ"); + + /*ParticleContrail contrail = new ParticleContrail(man, world, x, y, z, 0, 0, 0, scale); + contrail.motionX = mX; + contrail.motionY = mY; + contrail.motionZ = mZ; + Minecraft.getMinecraft().effectRenderer.addEffect(contrail);*/ + + ParticleRocketFlame fx = new ParticleRocketFlame(man, world, x, y, z).setScale(scale); + fx.motionX = mX; + fx.motionY = mY; + fx.motionZ = mZ; + if(data.hasKey("maxAge")) fx.setMaxAge(data.getInteger("maxAge")); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + if("smoke".equals(type)) { - + String mode = data.getString("mode"); int count = Math.max(1, data.getInteger("count")); - + if("cloud".equals(mode)) { - + for(int i = 0; i < count; i++) { ParticleExSmoke fx = new ParticleExSmoke(man, world, x, y, z); fx.motionY = rand.nextGaussian() * (1 + (count / 100)); @@ -952,25 +973,25 @@ public class ClientProxy extends ServerProxy { Vec3 vec = Vec3.createVectorHelper(2, 0, 0); vec.rotateAroundY(rand.nextFloat() * (float)Math.PI * 2F); - + for(int i = 0; i < count; i++) { ParticleDigammaSmoke fx = new ParticleDigammaSmoke(man, world, x, y, z); fx.motionY = 0; fx.motionX = vec.xCoord; fx.motionZ = vec.zCoord; Minecraft.getMinecraft().effectRenderer.addEffect(fx); - + vec.rotateAroundY((float)Math.PI * 2F / (float)count); } } - + if("shock".equals(mode)) { - + double strength = data.getDouble("strength"); Vec3 vec = Vec3.createVectorHelper(strength, 0, 0); vec.rotateAroundY(rand.nextInt(360)); - + for(int i = 0; i < count; i++) { ParticleExSmoke fx = new ParticleExSmoke(man, world, x, y, z); fx.motionY = 0; @@ -981,15 +1002,15 @@ public class ClientProxy extends ServerProxy { vec.rotateAroundY((float)Math.PI * 2F / (float)count); } } - + if("shockRand".equals(mode)) { - + double strength = data.getDouble("strength"); Vec3 vec = Vec3.createVectorHelper(strength, 0, 0); vec.rotateAroundY(rand.nextInt(360)); double r; - + for(int i = 0; i < count; i++) { r = rand.nextDouble(); ParticleExSmoke fx = new ParticleExSmoke(man, world, x, y, z); @@ -997,76 +1018,76 @@ public class ClientProxy extends ServerProxy { fx.motionX = vec.xCoord * r; fx.motionZ = vec.zCoord * r; Minecraft.getMinecraft().effectRenderer.addEffect(fx); - + vec.rotateAroundY(360 / count); } } - + if("wave".equals(mode)) { - + double strength = data.getDouble("range"); Vec3 vec = Vec3.createVectorHelper(strength, 0, 0); - + for(int i = 0; i < count; i++) { - + vec.rotateAroundY((float) Math.toRadians(rand.nextFloat() * 360F)); - + ParticleExSmoke fx = new ParticleExSmoke(man, world, x + vec.xCoord, y, z + vec.zCoord); fx.maxAge = 50; fx.motionY = 0; fx.motionX = 0; fx.motionZ = 0; Minecraft.getMinecraft().effectRenderer.addEffect(fx); - + vec.rotateAroundY(360 / count); } } } - + if("exhaust".equals(type)) { String mode = data.getString("mode"); - + if("soyuz".equals(mode)) { - + if(Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector() > 350) return; - + int count = Math.max(1, data.getInteger("count")); double width = data.getDouble("width"); - + for(int i = 0; i < count; i++) { - + ParticleRocketFlame fx = new ParticleRocketFlame(man, world, x + rand.nextGaussian() * width, y, z + rand.nextGaussian() * width); fx.motionY = -0.75 + rand.nextDouble() * 0.5; Minecraft.getMinecraft().effectRenderer.addEffect(fx); } } - + if("meteor".equals(mode)) { - + if(Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector() > 350) return; - + int count = Math.max(1, data.getInteger("count")); double width = data.getDouble("width"); - + for(int i = 0; i < count; i++) { - + ParticleRocketFlame fx = new ParticleRocketFlame(man, world, x + rand.nextGaussian() * width, y + rand.nextGaussian() * width, z + rand.nextGaussian() * width); Minecraft.getMinecraft().effectRenderer.addEffect(fx); } } } - + if("fireworks".equals(type)) { int color = data.getInteger("color"); char c = (char)data.getInteger("char"); - + ParticleLetter fx = new ParticleLetter(world, x, y, z, color, c); Minecraft.getMinecraft().effectRenderer.addEffect(fx); - + for(int i = 0; i < 50; i++) { EntityFireworkSparkFX blast = new EntityFireworkSparkFX(world, x, y, z, 0.4 * world.rand.nextGaussian(), @@ -1076,17 +1097,17 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(blast); } } - + if("vanillaburst".equals(type)) { - + double motion = data.getDouble("motion"); - + for(int i = 0; i < data.getInteger("count"); i++) { double mX = rand.nextGaussian() * motion; double mY = rand.nextGaussian() * motion; double mZ = rand.nextGaussian() * motion; - + EntityFX fx = null; if("flame".equals(data.getString("mode"))) { @@ -1113,23 +1134,23 @@ public class ClientProxy extends ServerProxy { } if("blockdust".equals(data.getString("mode"))) { - + Block b = Block.getBlockById(data.getInteger("block")); fx = new net.minecraft.client.particle.EntityBlockDustFX(world, x, y, z, mX, mY + 0.2, mZ, b, 0); ReflectionHelper.setPrivateValue(EntityFX.class, fx, 50 + rand.nextInt(50), "particleMaxAge", "field_70547_e"); } - + if(fx != null) Minecraft.getMinecraft().effectRenderer.addEffect(fx); } } - + if("vanillaExt".equals(type)) { double mX = data.getDouble("mX"); double mY = data.getDouble("mY"); double mZ = data.getDouble("mZ"); - + EntityFX fx = null; if("flame".equals(data.getString("mode"))) { @@ -1153,7 +1174,7 @@ public class ClientProxy extends ServerProxy { if("cloud".equals(data.getString("mode"))) { fx = new net.minecraft.client.particle.EntityCloudFX(world, x, y, z, mX, mY, mZ); - + if(data.hasKey("r")) { float rng = rand.nextFloat() * 0.1F; fx.setRBGColorF(data.getFloat("r") + rng, data.getFloat("g") + rng, data.getFloat("b") + rng); @@ -1176,13 +1197,17 @@ public class ClientProxy extends ServerProxy { fx = new net.minecraft.client.particle.EntityReddustFX(world, x, y, z, 0.01F, 0.5F, 0.1F); } + if("fireworks".equals(data.getString("mode"))) { + fx = new EntityFireworkSparkFX(world, x, y, z, 0, 0, 0, Minecraft.getMinecraft().effectRenderer); + } + if("largeexplode".equals(data.getString("mode"))) { - - + + fx = new net.minecraft.client.particle.EntityLargeExplodeFX(man, world, x, y, z, data.getFloat("size"), 0.0F, 0.0F); float r = 1.0F - rand.nextFloat() * 0.2F; fx.setRBGColorF(1F * r, 0.9F * r, 0.5F * r); - + for(int i = 0; i < data.getByte("count"); i++) { net.minecraft.client.particle.EntityExplodeFX sec = new net.minecraft.client.particle.EntityExplodeFX(world, x, y, z, 0.0F, 0.0F, 0.0F); float r2 = 1.0F - rand.nextFloat() * 0.5F; @@ -1200,34 +1225,34 @@ public class ClientProxy extends ServerProxy { } if("blockdust".equals(data.getString("mode"))) { - + Block b = Block.getBlockById(data.getInteger("block")); fx = new net.minecraft.client.particle.EntityBlockDustFX(world, x, y, z, mX, mY + 0.2, mZ, b, 0); ReflectionHelper.setPrivateValue(EntityFX.class, fx, 10 + rand.nextInt(20), "particleMaxAge", "field_70547_e"); } if("colordust".equals(data.getString("mode"))) { - + Block b = Blocks.wool; fx = new net.minecraft.client.particle.EntityBlockDustFX(world, x, y, z, mX, mY + 0.2, mZ, b, 0); fx.setRBGColorF(data.getFloat("r"), data.getFloat("g"), data.getFloat("b")); ReflectionHelper.setPrivateValue(EntityFX.class, fx, 10 + rand.nextInt(20), "particleMaxAge", "field_70547_e"); } - + if(fx != null) { - + if(data.getBoolean("noclip")) { fx.noClip = true; } - + if(data.getInteger("overrideAge") > 0) { ReflectionHelper.setPrivateValue(EntityFX.class, fx, data.getInteger("overrideAge"), "particleMaxAge", "field_70547_e"); } - + Minecraft.getMinecraft().effectRenderer.addEffect(fx); } } - + if("vanilla".equals(type)) { double mX = data.getDouble("mX"); @@ -1235,41 +1260,41 @@ public class ClientProxy extends ServerProxy { double mZ = data.getDouble("mZ"); world.spawnParticle(data.getString("mode"), x, y, z, mX, mY, mZ); } - + if("jetpack".equals(type)) { - + if(particleSetting == 2) return; - + Entity ent = world.getEntityByID(data.getInteger("player")); - + if(ent instanceof EntityPlayer) { - + EntityPlayer p = (EntityPlayer)ent; - + Vec3 vec = Vec3.createVectorHelper(0, 0, -0.25); Vec3 offset = Vec3.createVectorHelper(0.125, 0, 0); float angle = (float) -Math.toRadians(p.rotationYawHead - (p.rotationYawHead - p.renderYawOffset)); vec.rotateAroundY(angle); offset.rotateAroundY(angle); - + double ix = p.posX + vec.xCoord; double iy = p.posY + p.eyeHeight - 1; double iz = p.posZ + vec.zCoord; double ox = offset.xCoord; double oz = offset.zCoord; - + double moX = 0; double moY = 0; double moZ = 0; - + int mode = data.getInteger("mode"); - + if(mode == 0) { moY -= 0.2; } - + if(mode == 1) { Vec3 look = p.getLookVec(); @@ -1284,15 +1309,15 @@ public class ClientProxy extends ServerProxy { thrust = thrust.normalize(); Vec3 target = pos.addVector(thrust.xCoord * 10, thrust.yCoord * 10, thrust.zCoord * 10); MovingObjectPosition mop = player.worldObj.func_147447_a(pos, target, false, false, true); - + if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) { - + Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ); - + Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord); Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0); - + for(int i = 0; i < (10 - delta.lengthVector()); i++) { vel.rotateAroundY(world.rand.nextFloat() * (float)Math.PI * 2F); Minecraft.getMinecraft().effectRenderer.addEffect(new EntityBlockDustFX(world, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.1, mop.hitVec.zCoord, vel.xCoord, 0.1, vel.zCoord, b, meta)); @@ -1309,46 +1334,50 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix + ox, iy, iz + oz, mX2, mY2, mZ2)); Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix - ox, iy, iz - oz, mX2, mY2, mZ2)); - + if(particleSetting == 0) { Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix + ox, iy, iz + oz, mX3, mY3, mZ3)); Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix - ox, iy, iz - oz, mX3, mY3, mZ3)); } } } - + if("bnuuy".equals(type)) { - + if(particleSetting == 2) return; - + Entity ent = world.getEntityByID(data.getInteger("player")); - + if(ent instanceof EntityPlayer) { - + EntityPlayer p = (EntityPlayer)ent; - + Vec3 vec = Vec3.createVectorHelper(0, 0, -0.6); Vec3 offset = Vec3.createVectorHelper(0.275, 0, 0); float angle = (float) -Math.toRadians(p.rotationYawHead - (p.rotationYawHead - p.renderYawOffset)); vec.rotateAroundY(angle); offset.rotateAroundY(angle); - + double ix = p.posX + vec.xCoord; double iy = p.posY + p.eyeHeight - 1 + 0.4; double iz = p.posZ + vec.zCoord; double ox = offset.xCoord; double oz = offset.zCoord; - + + if(player.isSneaking()) { + iy += 0.25; + } + vec = vec.normalize(); double mult = 0.025D; double mX = vec.xCoord * mult; double mZ = vec.zCoord * mult; - + //Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix + ox, iy, iz + oz, 0, 0, 0)); //Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix - ox, iy, iz - oz, 0, 0, 0)); - + for(int i = 0; i < 2; i++) { net.minecraft.client.particle.EntitySmokeFX fx = new net.minecraft.client.particle.EntitySmokeFX(world, ix + ox * (i == 0 ? -1 : 1), iy, iz + oz * (i == 0 ? -1 : 1), mX, 0, mZ); float scale = 0.5F; @@ -1357,25 +1386,25 @@ public class ClientProxy extends ServerProxy { } } } - + if("jetpack_bj".equals(type)) { - + if(particleSetting == 2) return; - + Entity ent = world.getEntityByID(data.getInteger("player")); - + if(ent instanceof EntityPlayer) { - + EntityPlayer p = (EntityPlayer)ent; - + Vec3 vec = Vec3.createVectorHelper(0, 0, -0.3125); Vec3 offset = Vec3.createVectorHelper(0.125, 0, 0); float angle = (float) -Math.toRadians(p.rotationYawHead - (p.rotationYawHead - p.renderYawOffset)); vec.rotateAroundY(angle); offset.rotateAroundY(angle); - + double ix = p.posX + vec.xCoord; double iy = p.posY + p.eyeHeight - 0.9375; double iz = p.posZ + vec.zCoord; @@ -1387,15 +1416,15 @@ public class ClientProxy extends ServerProxy { Vec3 thrust = Vec3.createVectorHelper(0, -1, 0); Vec3 target = pos.addVector(thrust.xCoord * 10, thrust.yCoord * 10, thrust.zCoord * 10); MovingObjectPosition mop = player.worldObj.func_147447_a(pos, target, false, false, true); - + if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) { - + Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ); - + Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord); Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0); - + for(int i = 0; i < (10 - delta.lengthVector()); i++) { vel.rotateAroundY(world.rand.nextFloat() * (float)Math.PI * 2F); Minecraft.getMinecraft().effectRenderer.addEffect(new EntityBlockDustFX(world, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.1, mop.hitVec.zCoord, vel.xCoord, 0.1, vel.zCoord, b, meta)); @@ -1411,23 +1440,23 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(dust2); } } - + if("jetpack_dns".equals(type)) { - + if(particleSetting == 2) return; - + Entity ent = world.getEntityByID(data.getInteger("player")); - + if(ent instanceof EntityPlayer) { - + EntityPlayer p = (EntityPlayer)ent; - + Vec3 offset = Vec3.createVectorHelper(0.125, 0, 0); float angle = (float) -Math.toRadians(p.rotationYawHead - (p.rotationYawHead - p.renderYawOffset)); offset.rotateAroundY(angle); - + double ix = p.posX; double iy = p.posY - p.getYOffset() - 0.5D; double iz = p.posZ; @@ -1439,15 +1468,15 @@ public class ClientProxy extends ServerProxy { Vec3 thrust = Vec3.createVectorHelper(0, -1, 0); Vec3 target = pos.addVector(thrust.xCoord * 10, thrust.yCoord * 10, thrust.zCoord * 10); MovingObjectPosition mop = player.worldObj.func_147447_a(pos, target, false, false, true); - + if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) { - + Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ); - + Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord); Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0); - + for(int i = 0; i < (10 - delta.lengthVector()); i++) { vel.rotateAroundY(world.rand.nextFloat() * (float)Math.PI * 2F); Minecraft.getMinecraft().effectRenderer.addEffect(new EntityBlockDustFX(world, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.1, mop.hitVec.zCoord, vel.xCoord, 0.1, vel.zCoord, b, meta)); @@ -1463,7 +1492,7 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(dust2); } } - + if("muke".equals(type)) { ParticleMukeWave wave = new ParticleMukeWave(man, world, x, y, z); @@ -1479,12 +1508,12 @@ public class ClientProxy extends ServerProxy { player.maxHurtTime = 15; player.attackedAtYaw = 0F; } - + if("tinytot".equals(type)) { ParticleMukeWave wave = new ParticleMukeWave(man, world, x, y, z); Minecraft.getMinecraft().effectRenderer.addEffect(wave); - + for(double d = 0.0D; d <= 1.6D; d += 0.1) { ParticleMukeCloud cloud = new ParticleMukeCloud(man, world, x, y, z, rand.nextGaussian() * 0.05, d + rand.nextGaussian() * 0.02, rand.nextGaussian() * 0.05); Minecraft.getMinecraft().effectRenderer.addEffect(cloud); @@ -1496,14 +1525,14 @@ public class ClientProxy extends ServerProxy { for(int i = 0; i < 15; i++) { double ix = rand.nextGaussian() * 0.2; double iz = rand.nextGaussian() * 0.2; - + if(ix * ix + iz * iz > 0.75) { ix *= 0.5; iz *= 0.5; } - + double iy = 1.6 + (rand.nextDouble() * 2 - 1) * (0.75 - (ix * ix + iz * iz)) * 0.5; - + ParticleMukeCloud cloud = new ParticleMukeCloud(man, world, x, y, z, ix, iy + rand.nextGaussian() * 0.02, iz); Minecraft.getMinecraft().effectRenderer.addEffect(cloud); } @@ -1511,89 +1540,94 @@ public class ClientProxy extends ServerProxy { player.maxHurtTime = 15; player.attackedAtYaw = 0F; } - + if("ufo".equals(type)) { double motion = data.getDouble("motion"); ParticleMukeCloud cloud = new ParticleMukeCloud(man, world, x, y, z, rand.nextGaussian() * motion, 0, rand.nextGaussian() * motion); Minecraft.getMinecraft().effectRenderer.addEffect(cloud); } - + + if("bf".equals(type)) { + ParticleMukeCloud cloud = new ParticleMukeCloudBF(man, world, x, y, z, 0, 0, 0); + Minecraft.getMinecraft().effectRenderer.addEffect(cloud); + } + if("haze".equals(type)) { ParticleHaze fog = new ParticleHaze(man, world, x, y, z); Minecraft.getMinecraft().effectRenderer.addEffect(fog); } - + if("plasmablast".equals(type)) { - + ParticlePlasmaBlast cloud = new ParticlePlasmaBlast(man, world, x, y, z, data.getFloat("r"), data.getFloat("g"), data.getFloat("b"), data.getFloat("pitch"), data.getFloat("yaw")); cloud.setScale(data.getFloat("scale")); Minecraft.getMinecraft().effectRenderer.addEffect(cloud); } - + if("justTilt".equals(type)) { - + player.hurtTime = player.maxHurtTime = data.getInteger("time"); player.attackedAtYaw = 0F; } - + if("properJolt".equals(type)) { - + player.hurtTime = data.getInteger("time"); player.maxHurtTime = data.getInteger("maxTime"); player.attackedAtYaw = 0F; } - + if("sweat".equals(type)) { - + Entity e = world.getEntityByID(data.getInteger("entity")); Block b = Block.getBlockById(data.getInteger("block")); int meta = data.getInteger("meta"); - + if(e instanceof EntityLivingBase) { - + for(int i = 0; i < data.getInteger("count"); i++) { - + double ix = e.boundingBox.minX - 0.2 + (e.boundingBox.maxX - e.boundingBox.minX + 0.4) * rand.nextDouble(); double iy = e.boundingBox.minY + (e.boundingBox.maxY - e.boundingBox.minY + 0.2) * rand.nextDouble(); double iz = e.boundingBox.minZ - 0.2 + (e.boundingBox.maxZ - e.boundingBox.minZ + 0.4) * rand.nextDouble(); - - + + EntityFX fx = new net.minecraft.client.particle.EntityBlockDustFX(world, ix, iy, iz, 0, 0, 0, b, meta); ReflectionHelper.setPrivateValue(EntityFX.class, fx, 150 + rand.nextInt(50), "particleMaxAge", "field_70547_e"); - + Minecraft.getMinecraft().effectRenderer.addEffect(fx); } } } - + if("vomit".equals(type)) { - + Entity e = world.getEntityByID(data.getInteger("entity")); int count = data.getInteger("count") / (particleSetting + 1); - + if(e instanceof EntityLivingBase) { double ix = e.posX; double iy = e.posY - e.getYOffset() + e.getEyeHeight() + (e instanceof EntityPlayer ? 1 : 0); double iz = e.posZ; - + Vec3 vec = e.getLookVec(); - + for(int i = 0; i < count; i++) { - + if("normal".equals(data.getString("mode"))) { EntityFX fx = new net.minecraft.client.particle.EntityBlockDustFX(world, ix, iy, iz, (vec.xCoord + rand.nextGaussian() * 0.2) * 0.2, (vec.yCoord + rand.nextGaussian() * 0.2) * 0.2, (vec.zCoord + rand.nextGaussian() * 0.2) * 0.2, Blocks.stained_hardened_clay, (rand.nextBoolean() ? 5 : 13)); ReflectionHelper.setPrivateValue(EntityFX.class, fx, 150 + rand.nextInt(50), "particleMaxAge", "field_70547_e"); Minecraft.getMinecraft().effectRenderer.addEffect(fx); } - + if("blood".equals(data.getString("mode"))) { EntityFX fx = new net.minecraft.client.particle.EntityBlockDustFX(world, ix, iy, iz, (vec.xCoord + rand.nextGaussian() * 0.2) * 0.2, (vec.yCoord + rand.nextGaussian() * 0.2) * 0.2, (vec.zCoord + rand.nextGaussian() * 0.2) * 0.2, Blocks.redstone_block, 0); ReflectionHelper.setPrivateValue(EntityFX.class, fx, 150 + rand.nextInt(50), "particleMaxAge", "field_70547_e"); Minecraft.getMinecraft().effectRenderer.addEffect(fx); } - + if("smoke".equals(data.getString("mode"))) { EntityFX fx = new net.minecraft.client.particle.EntitySmokeFX(world, ix, iy, iz, (vec.xCoord + rand.nextGaussian() * 0.1) * 0.05, (vec.yCoord + rand.nextGaussian() * 0.1) * 0.05, (vec.zCoord + rand.nextGaussian() * 0.1) * 0.05, 0.2F); ReflectionHelper.setPrivateValue(EntityFX.class, fx, 10 + rand.nextInt(10), "particleMaxAge", "field_70547_e"); @@ -1602,50 +1636,50 @@ public class ClientProxy extends ServerProxy { } } } - + if("radiation".equals(type)) { - + for(int i = 0; i < data.getInteger("count"); i++) { - + EntityAuraFX flash = new EntityAuraFX(world, player.posX + rand.nextGaussian() * 4, player.posY + rand.nextGaussian() * 2, player.posZ + rand.nextGaussian() * 4, 0, 0, 0); - + flash.setRBGColorF(0F, 0.75F, 1F); flash.setVelocity(rand.nextGaussian(), rand.nextGaussian(), rand.nextGaussian()); Minecraft.getMinecraft().effectRenderer.addEffect(flash); } } - + if("schrabfog".equals(type)) { - + EntityAuraFX flash = new EntityAuraFX(world, x, y, z, 0, 0, 0); flash.setRBGColorF(0F, 1F, 1F); Minecraft.getMinecraft().effectRenderer.addEffect(flash); } - + if("hadron".equals(type)) { - + Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleHadron(man, world, x, y, z)); } - + if("rift".equals(type)) { - + Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleRift(man, world, x, y, z)); } - + if("rbmkflame".equals(type)) { int maxAge = data.getInteger("maxAge"); Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleRBMKFlame(man, world, x, y, z, maxAge)); } - + if("rbmkmush".equals(type)) { float scale = data.getFloat("scale"); Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleRBMKMush(man, world, x, y, z, scale)); } - + if("tower".equals(type)) { if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean())) { ParticleCoolingTower fx = new ParticleCoolingTower(man, world, x, y, z); @@ -1653,164 +1687,181 @@ public class ClientProxy extends ServerProxy { fx.setBaseScale(data.getFloat("base")); fx.setMaxScale(data.getFloat("max")); fx.setLife(data.getInteger("life") / (particleSetting + 1)); - + if(data.hasKey("noWind")) fx.noWind(); + if(data.hasKey("strafe")) fx.setStrafe(data.getFloat("strafe")); + if(data.hasKey("alpha")) fx.alphaMod(data.getFloat("alpha")); + if(data.hasKey("color")) { Color color = new Color(data.getInteger("color")); fx.setRBGColorF(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); } - + Minecraft.getMinecraft().effectRenderer.addEffect(fx); } } - + + if("splash".equals(type)) { + if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean())) { + ParticleSplash fx = new ParticleSplash(man, world, x, y, z); + + if(data.hasKey("color")) { + Color color = new Color(data.getInteger("color")); + float f = 1F - rand.nextFloat() * 0.2F; + fx.setRBGColorF(color.getRed() / 255F * f, color.getGreen() / 255F * f, color.getBlue() / 255F * f); + } + + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + } + if("deadleaf".equals(type)) { if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean())) Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleDeadLeaf(man, world, x, y, z)); } - + if("anim".equals(type)) { - + String mode = data.getString("mode"); - + /* crucible deploy */ if("crucible".equals(mode) && player.getHeldItem() != null) { - + BusAnimation animation = new BusAnimation() .addBus("GUARD_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(90, 0, 1, 0)) - .addKeyframe(new BusAnimationKeyframe(90, 0, 1, 800)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50))); - - HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); + .addPos(90, 0, 1, 0) + .addPos(90, 0, 1, 800) + .addPos(0, 0, 1, 50)); + + HbmAnimations.hotbar[player.inventory.currentItem][0] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); } - + /* crucible swing */ if("cSwing".equals(mode)) { - + if(HbmAnimations.getRelevantTransformation("SWING_ROT")[0] == 0) { - + int offset = rand.nextInt(80) - 20; - + BusAnimation animation = new BusAnimation() .addBus("SWING_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(90 - offset, 90 - offset, 35, 75)) - .addKeyframe(new BusAnimationKeyframe(90 + offset, 90 - offset, -45, 150)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500))) + .addPos(90 - offset, 90 - offset, 35, 75) + .addPos(90 + offset, 90 - offset, -45, 150) + .addPos(0, 0, 0, 500)) .addBus("SWING_TRANS", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(-3, 0, 0, 75)) - .addKeyframe(new BusAnimationKeyframe(8, 0, 0, 150)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500))); + .addPos(-3, 0, 0, 75) + .addPos(8, 0, 0, 150) + .addPos(0, 0, 0, 500)); Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:weapon.cSwing"), 0.8F + player.getRNG().nextFloat() * 0.2F)); - - HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); + + HbmAnimations.hotbar[player.inventory.currentItem][0] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); } } - + /* chainsaw swing */ if("sSwing".equals(mode) || "lSwing".equals(mode)) { //temp for lance int forward = 150; int sideways = 100; int retire = 200; - + if(HbmAnimations.getRelevantAnim() == null) { - + BusAnimation animation = new BusAnimation() .addBus("SWING_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 90, forward)) - .addKeyframe(new BusAnimationKeyframe(45, 0, 90, sideways)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, retire))) + .addPos(0, 0, 90, forward) + .addPos(45, 0, 90, sideways) + .addPos(0, 0, 0, retire)) .addBus("SWING_TRANS", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 3, forward)) - .addKeyframe(new BusAnimationKeyframe(2, 0, 2, sideways)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, retire))); + .addPos(0, 0, 3, forward) + .addPos(2, 0, 2, sideways) + .addPos(0, 0, 0, retire)); + + + HbmAnimations.hotbar[player.inventory.currentItem][0] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); - - HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); - } else { double[] rot = HbmAnimations.getRelevantTransformation("SWING_ROT"); double[] trans = HbmAnimations.getRelevantTransformation("SWING_TRANS"); - + if(System.currentTimeMillis() - HbmAnimations.getRelevantAnim().startMillis < 50) return; - + BusAnimation animation = new BusAnimation() .addBus("SWING_ROT", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(rot[0], rot[1], rot[2], 0)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 90, forward)) - .addKeyframe(new BusAnimationKeyframe(45, 0, 90, sideways)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, retire))) + .addPos(rot[0], rot[1], rot[2], 0) + .addPos(0, 0, 90, forward) + .addPos(45, 0, 90, sideways) + .addPos(0, 0, 0, retire)) .addBus("SWING_TRANS", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(trans[0], trans[1], trans[2], 0)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 3, forward)) - .addKeyframe(new BusAnimationKeyframe(2, 0, 2, sideways)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, retire))); - - HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); + .addPos(trans[0], trans[1], trans[2], 0) + .addPos(0, 0, 3, forward) + .addPos(2, 0, 2, sideways) + .addPos(0, 0, 0, retire)); + + HbmAnimations.hotbar[player.inventory.currentItem][0] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); } } - + if("generic".equals(mode)) { ItemStack stack = player.getHeldItem(); - + if(stack != null && stack.getItem() instanceof IAnimatedItem) { IAnimatedItem item = (IAnimatedItem) stack.getItem(); BusAnimation anim = item.getAnimation(data, stack); - + if(anim != null) { - HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), anim); + HbmAnimations.hotbar[player.inventory.currentItem][0] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), anim); } } } } - + if("tau".equals(type)) { - + for(int i = 0; i < data.getByte("count"); i++) Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleSpark(world, x, y, z, rand.nextGaussian() * 0.05, 0.05, rand.nextGaussian() * 0.05)); Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleHadron(man, world, x, y, z)); } - + if("vanish".equals(type)) { int ent = data.getInteger("ent"); this.vanish(ent); } - + if("giblets".equals(type)) { int ent = data.getInteger("ent"); this.vanish(ent); Entity e = world.getEntityByID(ent); - + if(e == null) return; - + float width = e.width; float height = e.height; int gW = (int)(width / 0.25F); int gH = (int)(height / 0.25F); - + int count = (int) (gW * 1.5 * gH); - + if(data.hasKey("cDiv")) count = (int) Math.ceil(count / (double)data.getInteger("cDiv")); - + boolean blowMeIntoTheGodDamnStratosphere = rand.nextInt(15) == 0; double mult = 1D; - + if(blowMeIntoTheGodDamnStratosphere) mult *= 10; - + for(int i = 0; i < count; i++) { Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleGiblet(man, world, x, y, z, rand.nextGaussian() * 0.25 * mult, rand.nextDouble() * mult, rand.nextGaussian() * 0.25 * mult)); } } - + if("amat".equals(type)) { Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleAmatFlash(world, x, y, z, data.getFloat("scale"))); } - + if("debug".equals(type)) { String t = data.getString("text"); int color = data.getInteger("color"); @@ -1819,7 +1870,35 @@ public class ClientProxy extends ServerProxy { text.multipleParticleScaleBy(scale); Minecraft.getMinecraft().effectRenderer.addEffect(text); } - + + if("debugline".equals(type)) { + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + int color = data.getInteger("color"); + ParticleDebugLine text = new ParticleDebugLine(world, x, y, z, mX, mY, mZ, color); + Minecraft.getMinecraft().effectRenderer.addEffect(text); + } + + if("debugdrone".equals(type)) { + Item held = player.getHeldItem() == null ? null : player.getHeldItem().getItem(); + + if(held == ModItems.drone || + held == Item.getItemFromBlock(ModBlocks.drone_crate_provider) || + held == Item.getItemFromBlock(ModBlocks.drone_crate_requester) || + held == Item.getItemFromBlock(ModBlocks.drone_dock) || + held == Item.getItemFromBlock(ModBlocks.drone_waypoint_request) || + held == Item.getItemFromBlock(ModBlocks.drone_waypoint) || + held == ModItems.drone_linker) { + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + int color = data.getInteger("color"); + ParticleDebugLine text = new ParticleDebugLine(world, x, y, z, mX, mY, mZ, color); + Minecraft.getMinecraft().effectRenderer.addEffect(text); + } + } + if("network".equals(type)) { ParticleDebug debug = null; double mX = data.getDouble("mX"); @@ -1835,7 +1914,7 @@ public class ClientProxy extends ServerProxy { } Minecraft.getMinecraft().effectRenderer.addEffect(debug); } - + if("gasfire".equals(type)) { double mX = data.getDouble("mX"); double mY = data.getDouble("mY"); @@ -1844,88 +1923,81 @@ public class ClientProxy extends ServerProxy { ParticleGasFlame text = new ParticleGasFlame(world, x, y, z, mX, mY, mZ, scale > 0 ? scale : 6.5F); Minecraft.getMinecraft().effectRenderer.addEffect(text); } - + if("marker".equals(type)) { int color = data.getInteger("color"); String label = data.getString("label"); int expires = data.getInteger("expires"); double dist = data.getDouble("dist"); - + RenderOverhead.queuedMarkers.put(new BlockPos(x, y, z), new Marker(color).setDist(dist).setExpire(expires > 0 ? System.currentTimeMillis() + expires : 0).withLabel(label.isEmpty() ? null : label)); } - + if("casing".equals(type)) { CasingEjector ejector = CasingEjector.fromId(data.getInteger("ej")); if(ejector == null) return; SpentCasing casingConfig = SpentCasing.fromName((data.getString("name"))); if(casingConfig == null) return; - + for(int i = 0; i < ejector.getAmount(); i++) { ejector.spawnCasing(man, casingConfig, world, x, y, z, data.getFloat("pitch"), data.getFloat("yaw"), data.getBoolean("crouched")); } } - + if("foundry".equals(type)) { int color = data.getInteger("color"); byte dir = data.getByte("dir"); float length = data.getFloat("len"); float base = data.getFloat("base"); float offset = data.getFloat("off"); - + ParticleFoundry sploosh = new ParticleFoundry(man, world, x, y, z, color, dir, length, base, offset); Minecraft.getMinecraft().effectRenderer.addEffect(sploosh); } + + if("frozen".equals(type)) { + player.motionX = 0; + player.motionZ = 0; + player.motionY = Math.min(player.motionY, 0); + player.moveForward = 0; + player.moveStrafing = 0; + } } - - private HashMap vanished = new HashMap(); - - public void vanish(int ent) { - vanished.put(ent, System.currentTimeMillis() + 2000); - } - + + private static HashMap vanished = new HashMap(); + public static void vanish(int ent) { vanished.put(ent, System.currentTimeMillis() + 2000); } + public static void vanish(int ent, int duration) { vanished.put(ent, System.currentTimeMillis() + duration); } + @Override public boolean isVanished(Entity e) { - - if(e == null) - return false; - - if(!this.vanished.containsKey(e.getEntityId())) - return false; - + if(e == null) return false; + if(!this.vanished.containsKey(e.getEntityId())) return false; return this.vanished.get(e.getEntityId()) > System.currentTimeMillis(); } - + @Override public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch) { - + AudioWrapperClient audio = new AudioWrapperClient(new ResourceLocation(sound)); audio.updatePosition(x, y, z); audio.updateVolume(volume); audio.updateRange(range); return audio; } - + @Override public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch, int keepAlive) { AudioWrapper audio = getLoopedSound(sound, x, y, z, volume, range, pitch); audio.setKeepAlive(keepAlive); return audio; } - - /** Only used for doors */ - @Override - public AudioWrapper getLoopedSoundStartStop(World world, String sound, String start, String stop, float x, float y, float z, float volume, float pitch) { - AudioWrapperClientStartStop audio = new AudioWrapperClientStartStop(world, sound == null ? null : new ResourceLocation(sound), start, stop, volume * 5); - audio.updatePosition(x, y, z); - return audio; - } @Override public void playSound(String sound, Object data) { } - + @Override public void displayTooltip(String msg, int time, int id) { - + if(id != 0) this.theInfoSystem.push(new InfoEntry(msg, time), id); else @@ -1947,8 +2019,13 @@ public class ClientProxy extends ServerProxy { case CRANE_LEFT: return HbmKeybinds.craneLeftKey.getIsKeyPressed(); case CRANE_RIGHT: return HbmKeybinds.craneRightKey.getIsKeyPressed(); case CRANE_LOAD: return HbmKeybinds.craneLoadKey.getIsKeyPressed(); + case TOOL_ALT: return HbmKeybinds.copyToolAlt.getIsKeyPressed(); + case TOOL_CTRL: return HbmKeybinds.copyToolCtrl.getIsKeyPressed(); + case GUN_PRIMARY: return HbmKeybinds.gunPrimaryKey.getIsKeyPressed(); + case GUN_SECONDARY: return HbmKeybinds.gunSecondaryKey.getIsKeyPressed(); + case GUN_TERTIARY: return HbmKeybinds.gunTertiaryKey.getIsKeyPressed(); } - + return false; } @@ -1956,17 +2033,17 @@ public class ClientProxy extends ServerProxy { public EntityPlayer me() { return Minecraft.getMinecraft().thePlayer; } - + @Override public void openLink(String url) { try { Desktop.getDesktop().browse(new URI(url)); } catch (Exception e) { } } - + @Override public List getSubItems(ItemStack stack) { - + List list = new ArrayList(); stack.getItem().getSubItems(stack.getItem(), stack.getItem().getCreativeTab(), list); for(ItemStack sta : list) { @@ -1991,8 +2068,25 @@ public class ClientProxy extends ServerProxy { } @Override - public void playSoundFuckMojang(double x, double y, double z, String sound, float volume, float pitch) { + public void playSoundClient(double x, double y, double z, String sound, float volume, float pitch) { Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation(sound), volume, pitch, (float) x, (float) y, (float) z)); } -} + @Override + public String getLanguageCode() { + Language lang = Minecraft.getMinecraft().getLanguageManager().getCurrentLanguage(); + return lang.getLanguageCode(); + } + + @Override + public int getStackColor(ItemStack stack, boolean amplify) { + if(stack == null) return 0x000000; + if(stack.getItem() instanceof ItemBlock) { + Block b = Block.getBlockFromItem(stack.getItem()); + return b.getMaterial().getMaterialMapColor().colorValue; + } + int color = ColorUtil.getAverageColorFromStack(stack); + if(amplify) color = ColorUtil.amplifyColor(color); + return color; + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index c18a730e0..e18be7120 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1,39 +1,40 @@ package com.hbm.main; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.BlockEnums.DecoCabinetEnum; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockConcreteColoredExt.EnumConcreteType; import com.hbm.blocks.generic.BlockGenericStairs; import com.hbm.blocks.generic.BlockMultiSlab; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; +import com.hbm.blocks.generic.BlockPlushie.PlushieType; import com.hbm.config.GeneralConfig; import com.hbm.crafting.*; import com.hbm.crafting.handlers.*; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo50BMG; -import com.hbm.items.ItemAmmoEnums.Ammo5mm; import com.hbm.items.ItemEnums.EnumLegendaryType; +import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.food.ItemConserve.EnumFoodType; +import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType; import com.hbm.items.machine.ItemBattery; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; import com.hbm.items.special.ItemPlasticScrap.ScrapType; +import com.hbm.items.tool.ItemDrone.EnumDroneType; import com.hbm.items.tool.ItemGuideBook.BookType; -import com.hbm.util.EnchantmentUtil; - +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; -import net.minecraft.enchantment.Enchantment; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -43,16 +44,17 @@ import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.RecipeSorter; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.registry.GameRegistry; + +import java.util.ArrayList; +import java.util.List; public class CraftingManager { - + public static void mainRegistry() { - + AddCraftingRec(); SmeltingRecipes.AddSmeltingRec(); - + MineralRecipes.register(); RodRecipes.register(); ToolRecipes.register(); @@ -60,18 +62,19 @@ public class CraftingManager { WeaponRecipes.register(); ConsumableRecipes.register(); PowderRecipes.register(); - + GameRegistry.addRecipe(new RBMKFuelCraftingHandler()); GameRegistry.addRecipe(new MKUCraftingHandler()); GameRegistry.addRecipe(new ToolboxCraftingHandler()); GameRegistry.addRecipe(new CargoShellCraftingHandler()); GameRegistry.addRecipe(new ScrapsCraftingHandler()); - + RecipeSorter.register("hbm:rbmk", RBMKFuelCraftingHandler.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless"); RecipeSorter.register("hbm:toolbox", ToolboxCraftingHandler.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless"); RecipeSorter.register("hbm:cargo", CargoShellCraftingHandler.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless"); RecipeSorter.register("hbm:scraps", ScrapsCraftingHandler.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless"); RecipeSorter.register("hbm:mku", MKUCraftingHandler.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped before:minecraft:shapeless"); + RecipeSorter.register("hbm:containerupgrade", ContainerUpgradeCraftingHandler.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped before:minecraft:shapeless"); } public static void AddCraftingRec() { @@ -82,43 +85,44 @@ public class CraftingManager { for(Object[] array : BlockGenericStairs.recipeGen) { addRecipeAuto(new ItemStack((Block) array[2], 4), new Object[] { "# ", "## ", "###", '#', new ItemStack((Block) array[0], 1, (int) array[1]) }); } - + addRecipeAuto(new ItemStack(ModItems.redstone_sword, 1), new Object[] { "R", "R", "S", 'R', REDSTONE.block(), 'S', KEY_STICK }); addRecipeAuto(new ItemStack(ModItems.big_sword, 1), new Object[] { "QIQ", "QIQ", "GSG", 'G', Items.gold_ingot, 'S', KEY_STICK, 'I', Items.iron_ingot, 'Q', Items.quartz}); - addRecipeAuto(new ItemStack(ModItems.board_copper, 1), new Object[] { "TTT", "TTT", 'T', CU.plate() }); - addRecipeAuto(Mats.MAT_IRON.make(ModItems.plate_cast), new Object[] { "BPB", "BPB", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); + addRecipeAuto(Mats.MAT_IRON.make(ModItems.plate_cast), new Object[] { "BPB", "BPB", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_red, 1), new Object[] { "C", "R", "C", 'C', ModItems.hazmat_cloth, 'R', REDSTONE.dust() }); - addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.asbestos_cloth, 8), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', BR.dust(), 'C', Blocks.wool }); - addRecipeAuto(new ItemStack(ModItems.bolt_dura_steel, 4), new Object[] { "D", "D", 'D', DURA.ingot()}); + addRecipeAuto(new ItemStack(ModItems.bolt_spike, 2), new Object[] { "BB", "B ", "B ", 'B', STEEL.bolt()}); addRecipeAuto(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', STEEL.block() }); - addRecipeAuto(new ItemStack(ModItems.bolt_tungsten, 4), new Object[] { "D", "D", 'D', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', ModItems.bolt_dura_steel, 'T', ModItems.bolt_tungsten, 'P', TI.plate() }); - addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', FIBER.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', ASBESTOS.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "SWS", 'S', Items.string, 'W', Blocks.wool }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', "ingotBrick" }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', "ingotNetherBrick" }); - addRecipeAuto(new ItemStack(ModBlocks.marker_structure, 1), new Object[] { "L", "G", "R", 'L', LAPIS.dust(), 'G', Items.glowstone_dust, 'R', Blocks.redstone_torch }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), new Object[] { "G", "W", "I", 'G', KEY_ANYPANE, 'W', W.wireFine(), 'I', ModItems.plate_polymer }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), new Object[] { "G", "W", "I", 'G', KEY_ANYPANE, 'W', CARBON.wireFine(), 'I', ModItems.plate_polymer }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), new Object[] { "I", "N", "W", 'I', ModItems.plate_polymer, 'N', NB.nugget(), 'W', AL.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), new Object[] { "I", "N", "W", 'I', ModItems.plate_polymer, 'N', NB.nugget(), 'W', CU.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR, 2), new Object[] { "IAI", "W W", 'I', ModItems.plate_polymer, 'A', AL.dust(), 'W', AL.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR, 2), new Object[] { "IAI", "W W", 'I', ModItems.plate_polymer, 'A', AL.dust(), 'W', CU.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR_TANTALIUM), new Object[] { "I", "N", "W", 'I', ModItems.plate_polymer, 'N', TA.nugget(), 'W', AL.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR_TANTALIUM), new Object[] { "I", "N", "W", 'I', ModItems.plate_polymer, 'N', TA.nugget(), 'W', CU.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB), new Object[] { "I", "P", 'I', ModItems.plate_polymer, 'P', CU.plate() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB, 4), new Object[] { "I", "P", 'I', ModItems.plate_polymer, 'P', GOLD.plate() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), new Object[] { "I", "S", "W", 'I', ModItems.plate_polymer, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON), 'W', CU.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), new Object[] { "I", "S", "W", 'I', ModItems.plate_polymer, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON), 'W', GOLD.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_BISMOID), new Object[] { "III", "SNS", "WWW", 'I', ModItems.plate_polymer, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON), 'N', ANY_BISMOID.nugget(), 'W', CU.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_BISMOID), new Object[] { "III", "SNS", "WWW", 'I', ModItems.plate_polymer, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON), 'N', ANY_BISMOID.nugget(), 'W', GOLD.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_QUANTUM), new Object[] { "HHH", "SIS", "WWW", 'H', ANY_HARDPLASTIC.ingot(), 'S', BSCCO.wireDense(), 'I', ModItems.pellet_charged, 'W', CU.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_QUANTUM), new Object[] { "HHH", "SIS", "WWW", 'H', ANY_HARDPLASTIC.ingot(), 'S', BSCCO.wireDense(), 'I', ModItems.pellet_charged, 'W', GOLD.wireFine() }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER_CHASSIS), new Object[] { "PPP", "CBB", "PPP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.crt_display, 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB) }); + addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ATOMIC_CLOCK), new Object[] { "ICI", "CSC", "ICI", 'I', ModItems.plate_polymer, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'S', SR.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_raw, 1), new Object[] { "A", "R", "S", 'S', STEEL.plate(), 'R', REDSTONE.dust(), 'A', ModItems.wire_aluminium }); - addRecipeAuto(new ItemStack(ModItems.circuit_bismuth_raw, 1), new Object[] { "RPR", "ABA", "RPR", 'R', REDSTONE.dust(), 'P', ANY_PLASTIC.ingot(), 'A', (GeneralConfig.enable528 ? ModItems.circuit_tantalium : ASBESTOS.ingot()), 'B', ModItems.ingot_bismuth }); - addRecipeAuto(new ItemStack(ModItems.circuit_tantalium_raw, 1), new Object[] { "RWR", "PTP", "RWR", 'R', REDSTONE.dust(), 'W', ModItems.wire_gold, 'P', CU.plate(), 'T', TA.nugget() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier1, 1), new Object[] { "CPC", 'C', ModItems.circuit_aluminium, 'P', REDSTONE.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier2, 1), new Object[] { "CPC", 'C', ModItems.circuit_copper, 'P', NETHERQUARTZ.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier3, 1), new Object[] { "CPC", 'C', ModItems.circuit_red_copper, 'P', GOLD.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier4, 1), new Object[] { "CPC", 'C', ModItems.circuit_gold, 'P', LAPIS.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier5, 1), new Object[] { "CPC", 'C', ModItems.circuit_schrabidium, 'P', DIAMOND.dust() }); - addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier6, 1), new Object[] { "P", "D", "C", 'C', ModItems.circuit_targeting_tier5, 'D', ModItems.battery_potatos, 'P', ModItems.powder_spark_mix }); - addShapelessAuto(new ItemStack(ModItems.circuit_aluminium, 2), new Object[] { ModItems.circuit_targeting_tier1 }); - addShapelessAuto(new ItemStack(ModItems.circuit_copper, 2), new Object[] { ModItems.circuit_targeting_tier2 }); - addShapelessAuto(new ItemStack(ModItems.circuit_red_copper, 2), new Object[] { ModItems.circuit_targeting_tier3 }); - addShapelessAuto(new ItemStack(ModItems.circuit_gold, 2), new Object[] { ModItems.circuit_targeting_tier4 }); - addShapelessAuto(new ItemStack(ModItems.circuit_schrabidium, 2), new Object[] { ModItems.circuit_targeting_tier5 }); + addRecipeAuto(new ItemStack(ModItems.crt_display, 4), new Object[] { " A ", "SGS", " T ", 'A', AL.dust(), 'S', STEEL.plate(), 'G', KEY_ANYPANE, 'T', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); addRecipeAuto(new ItemStack(ModItems.cell_empty, 6), new Object[] { " S ", "G G", " S ", 'S', STEEL.plate(), 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(ModItems.cell_deuterium, 8), new Object[] { "DDD", "DTD", "DDD", 'D', ModItems.cell_empty, 'T', ModItems.mike_deut }); @@ -133,14 +137,14 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.block_waste_painted, 1), new Object[] { KEY_YELLOW, ModBlocks.block_waste }); - addRecipeAuto(new ItemStack(ModItems.ingot_aluminium, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_aluminium }); - addRecipeAuto(new ItemStack(ModItems.ingot_copper, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_copper }); - addRecipeAuto(new ItemStack(ModItems.ingot_tungsten, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_tungsten }); - addRecipeAuto(new ItemStack(ModItems.ingot_red_copper, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_red_copper }); - addRecipeAuto(new ItemStack(ModItems.ingot_advanced_alloy, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_advanced_alloy }); - addRecipeAuto(new ItemStack(Items.gold_ingot, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_gold }); - addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_schrabidium }); - addRecipeAuto(new ItemStack(ModItems.ingot_magnetized_tungsten, 1), new Object[] { "###", "###", "###", '#', ModItems.wire_magnetized_tungsten }); + addRecipeAuto(new ItemStack(ModItems.ingot_aluminium, 1), new Object[] { "###", "###", "###", '#', AL.wireFine() }); + addRecipeAuto(new ItemStack(ModItems.ingot_copper, 1), new Object[] { "###", "###", "###", '#', CU.wireFine() }); + addRecipeAuto(new ItemStack(ModItems.ingot_tungsten, 1), new Object[] { "###", "###", "###", '#', W.wireFine() }); + addRecipeAuto(new ItemStack(ModItems.ingot_red_copper, 1), new Object[] { "###", "###", "###", '#', MINGRADE.wireFine() }); + addRecipeAuto(new ItemStack(ModItems.ingot_advanced_alloy, 1), new Object[] { "###", "###", "###", '#', ALLOY.wireFine() }); + addRecipeAuto(new ItemStack(Items.gold_ingot, 1), new Object[] { "###", "###", "###", '#', GOLD.wireFine() }); + addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium, 1), new Object[] { "###", "###", "###", '#', SA326.wireFine() }); + addRecipeAuto(new ItemStack(ModItems.ingot_magnetized_tungsten, 1), new Object[] { "###", "###", "###", '#', MAGTUNG.wireFine() }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, ModItems.powder_sawdust, ModItems.powder_sawdust, ModItems.powder_sawdust }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Items.apple, Items.apple, Items.apple }); @@ -152,57 +156,28 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.pumpkin }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.melon_block }); + addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.cactus, Blocks.cactus, Blocks.cactus }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED) }); - //addRecipeAuto(new ItemStack(ModItems.part_lithium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', LI.dust() }); - //addRecipeAuto(new ItemStack(ModItems.part_beryllium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', BE.dust() }); - //addRecipeAuto(new ItemStack(ModItems.part_carbon), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', COAL.dust() }); - //addRecipeAuto(new ItemStack(ModItems.part_copper), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', CU.dust() }); - //addRecipeAuto(new ItemStack(ModItems.part_plutonium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', "dustPlutonium" }); - - //addRecipeAuto(new ItemStack(ModItems.pellet_rtg, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', "tinyPu238" }); - //addRecipeAuto(new ItemStack(ModItems.pellet_rtg_weak, 1), new Object[] { "IUI", "UPU", "IUI", 'I', IRON.plate(), 'P', "tinyPu238", 'U', "tinyU238" }); - //addRecipeAuto(new ItemStack(ModItems.tritium_deuterium_cake, 1), new Object[] { "DLD", "LTL", "DLD", 'L', "ingotLithium", 'D', ModItems.cell_deuterium, 'T', ModItems.cell_tritium }); - - //addRecipeAuto(new ItemStack(ModItems.pellet_schrabidium, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', SA326.ingot() }); - //addRecipeAuto(new ItemStack(ModItems.pellet_hes, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_hes }); - //addRecipeAuto(new ItemStack(ModItems.pellet_mes, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_schrabidium_fuel }); - //addRecipeAuto(new ItemStack(ModItems.pellet_les, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_les }); - //addRecipeAuto(new ItemStack(ModItems.pellet_beryllium, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', BE.ingot() }); - //addRecipeAuto(new ItemStack(ModItems.pellet_neptunium, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', "ingotNeptunium" }); - //addRecipeAuto(new ItemStack(ModItems.pellet_lead, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', PB.ingot() }); - //addRecipeAuto(new ItemStack(ModItems.pellet_advanced, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_advanced_alloy }); - - addRecipeAuto(new ItemStack(ModItems.coil_copper, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_red_copper, 'I', IRON.ingot() }); - addRecipeAuto(new ItemStack(ModItems.coil_advanced_alloy, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_advanced_alloy, 'I', IRON.ingot() }); - addRecipeAuto(new ItemStack(ModItems.coil_gold, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_gold, 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModItems.coil_copper, 1), new Object[] { "WWW", "WIW", "WWW", 'W', MINGRADE.wireFine(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModItems.coil_advanced_alloy, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ALLOY.wireFine(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModItems.coil_gold, 1), new Object[] { "WWW", "WIW", "WWW", 'W', GOLD.wireFine(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.coil_copper_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', IRON.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.coil_advanced_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', IRON.plate(), 'C', ModItems.coil_advanced_alloy }); addRecipeAuto(new ItemStack(ModItems.coil_gold_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', IRON.plate(), 'C', ModItems.coil_gold }); addRecipeAuto(new ItemStack(ModItems.coil_copper_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', STEEL.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.coil_advanced_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', STEEL.plate(), 'C', ModItems.coil_advanced_alloy }); addRecipeAuto(new ItemStack(ModItems.coil_gold_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', STEEL.plate(), 'C', ModItems.coil_gold }); - addRecipeAuto(new ItemStack(ModItems.coil_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_tungsten, 'I', IRON.ingot() }); - addRecipeAuto(new ItemStack(ModItems.coil_magnetized_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_magnetized_tungsten, 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModItems.coil_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', W.wireFine(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModItems.coil_magnetized_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', MAGTUNG.wireFine(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.tank_steel, 2), new Object[] { "STS", "S S", "STS", 'S', STEEL.plate(), 'T', TI.plate() }); - addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper }); - addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', MINGRADE.wireFine(), 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', MINGRADE.wireFine(), 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SDS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'D', DURA.ingot() }); - //addRecipeAuto(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten }); - //addRecipeAuto(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', KEY_BLUE }); - //addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() }); - //addRecipeAuto(new ItemStack(ModItems.rtg_unit, 1), new Object[] { "TIT", "PCP", "TIT", 'T', ModItems.thermo_element, 'I', PB.ingot(), 'P', ModItems.board_copper, 'C', ModItems.circuit_copper }); - //addRecipeAuto(new ItemStack(ModItems.thermo_unit_empty, 1), new Object[] { "TTT", " S ", "P P", 'S', STEEL.ingot(), 'P', TI.plate(), 'T', ModItems.coil_copper_torus }); - //addRecipeAuto(new ItemStack(ModItems.levitation_unit, 1), new Object[] { "CSC", "TAT", "PSP", 'C', ModItems.coil_copper, 'S', ModItems.nugget_schrabidium, 'T', ModItems.coil_tungsten, 'P', TI.plate(), 'A', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.deuterium_filter, 1), new Object[] { "TST", "SCS", "TST", 'T', ANY_RESISTANTALLOY.ingot(), 'S', S.dust(), 'C', ModItems.catalyst_clay }); - addRecipeAuto(new ItemStack(ModItems.hull_small_steel, 3), new Object[] { "PPP", " ", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hull_small_aluminium, 3), new Object[] { "PPP", " ", "PPP", 'P', AL.plate(), 'I', AL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hull_big_steel, 1), new Object[] { "III", " ", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hull_big_aluminium, 1), new Object[] { "III", " ", "III", 'P', AL.plate(), 'I', AL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hull_big_titanium, 1), new Object[] { "III", " ", "III", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(ModItems.fins_flat, 1), new Object[] { "IP", "PP", "IP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.fins_small_steel, 1), new Object[] { " PP", "PII", " PP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.fins_big_steel, 1), new Object[] { " PI", "III", " PI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); @@ -213,17 +188,16 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.lemon, 1), new Object[] { " D ", "DSD", " D ", 'D', KEY_YELLOW, 'S', "stone" }); addRecipeAuto(new ItemStack(ModItems.blade_titanium, 2), new Object[] { "TP", "TP", "TT", 'P', TI.plate(), 'T', TI.ingot() }); addRecipeAuto(new ItemStack(ModItems.turbine_titanium, 1), new Object[] { "BBB", "BSB", "BBB", 'B', ModItems.blade_titanium, 'S', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.rotor_steel, 3), new Object[] { "CCC", "SSS", "CCC", 'C', ModItems.coil_gold, 'S', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.generator_steel, 1), new Object[] { "RRR", "CCC", "SSS", 'C', ModItems.coil_gold_torus, 'S', STEEL.ingot(), 'R', ModItems.rotor_steel }); addRecipeAuto(new ItemStack(ModItems.shimmer_head, 1), new Object[] { "SSS", "DTD", "SSS", 'S', STEEL.ingot(), 'D', DESH.block(), 'T', W.block() }); addRecipeAuto(new ItemStack(ModItems.shimmer_axe_head, 1), new Object[] { "PII", "PBB", "PII", 'P', STEEL.plate(), 'B', DESH.block(), 'I', W.ingot() }); addRecipeAuto(new ItemStack(ModItems.shimmer_handle, 1), new Object[] { "GP", "GP", "GP", 'G', GOLD.plate(), 'P', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.shimmer_sledge, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_head }); addRecipeAuto(new ItemStack(ModItems.shimmer_axe, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_axe_head }); - addRecipeAuto(new ItemStack(ModItems.definitelyfood, 1), new Object[] { "DDD", "SDS", "DDD", 'D', Blocks.dirt, 'S', STEEL.plate() }); + addShapelessAuto(new ItemStack(ModItems.definitelyfood, 4), new Object[] { ANY_RUBBER.ingot(), Items.wheat, Items.rotten_flesh, "treeSapling" }); + addShapelessAuto(new ItemStack(ModItems.definitelyfood, 4), new Object[] { ANY_RUBBER.ingot(), Items.wheat, Items.rotten_flesh, Items.wheat_seeds, Items.wheat_seeds, Items.wheat_seeds }); addRecipeAuto(new ItemStack(ModItems.turbine_tungsten, 1), new Object[] { "BBB", "BSB", "BBB", 'B', ModItems.blade_tungsten, 'S', DURA.ingot() }); addRecipeAuto(new ItemStack(ModItems.ring_starmetal, 1), new Object[] { " S ", "S S", " S ", 'S', STAR.ingot() }); - addRecipeAuto(new ItemStack(ModItems.flywheel_beryllium, 1), new Object[] { "IBI", "BTB", "IBI", 'B', BE.block(), 'I', IRON.plateCast(), 'T', ModItems.bolt_compound }); + addRecipeAuto(new ItemStack(ModItems.flywheel_beryllium, 1), new Object[] { "IBI", "BTB", "IBI", 'B', BE.block(), 'I', IRON.plateCast(), 'T', DURA.pipe() }); addShapelessAuto(new ItemStack(ModItems.powder_poison), new Object[] { DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.NIGHTSHADE) }); addShapelessAuto(new ItemStack(ModItems.syringe_metal_stimpak), new Object[] { ModItems.syringe_metal_empty, Items.carrot, DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.FOXGLOVE) }); //xander root and broc flower @@ -233,30 +207,24 @@ public class CraftingManager { addShapelessAuto(new ItemStack(Items.string, 3), new Object[] { DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED) }); addRecipeAuto(new ItemStack(Items.paper, 3), new Object[] { "SSS", 'S', ModItems.powder_sawdust }); - ItemStack infinity = new ItemStack(Items.enchanted_book); - EnchantmentUtil.addEnchantment(infinity, Enchantment.infinity, 1); - addRecipeAuto(infinity, new Object[] { "SBS", "BDB", "SBS", 'S', ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STAR), 'B', ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STAR), 'D', ModItems.powder_magic }); - ItemStack unbreaking = new ItemStack(Items.enchanted_book); - EnchantmentUtil.addEnchantment(unbreaking, Enchantment.unbreaking, 3); - addRecipeAuto(unbreaking, new Object[] { "SBS", "BDB", "SBS", 'S', BIGMT.ingot(), 'B', ModItems.plate_armor_lunar, 'D', ModItems.powder_magic }); - ItemStack thorns = new ItemStack(Items.enchanted_book); - EnchantmentUtil.addEnchantment(thorns, Enchantment.thorns, 3); - addRecipeAuto(thorns, new Object[] { "SBS", "BDB", "SBS", 'S', ModBlocks.barbed_wire, 'B', ModBlocks.spikes, 'D', ModItems.powder_magic }); - addRecipeAuto(new ItemStack(ModItems.wrench, 1), new Object[] { " S ", " IS", "I ", 'S', STEEL.ingot(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.wrench_flipped, 1), new Object[] { "S", "D", "W", 'S', Items.iron_sword, 'D', ModItems.ducttape, 'W', ModItems.wrench }); - addRecipeAuto(new ItemStack(ModItems.memespoon, 1), new Object[] { "CGC", "PSP", "IAI", 'C', ModItems.powder_cloud, 'G', TH232.block(), 'P', ModItems.photo_panel, 'S', ModItems.steel_shovel, 'I', ModItems.plate_polymer, 'A', "ingotAustralium" }); - addShapelessAuto(new ItemStack(ModItems.cbt_device, 1), new Object[] { ModItems.bolt_tungsten, ModItems.wrench }); + addRecipeAuto(new ItemStack(ModItems.memespoon, 1), new Object[] { "CGC", "PSP", "IAI", 'C', ModItems.powder_yellowcake, 'G', TH232.block(), 'P', ModItems.photo_panel, 'S', ModItems.steel_shovel, 'I', ModItems.plate_polymer, 'A', "ingotAustralium" }); + addShapelessAuto(new ItemStack(ModItems.cbt_device, 1), new Object[] { STEEL.bolt(), ModItems.wrench }); addShapelessAuto(new ItemStack(ModItems.toothpicks, 3), new Object[] { KEY_STICK, KEY_STICK, KEY_STICK }); addRecipeAuto(new ItemStack(ModItems.ducttape, 6), new Object[] { "FSF", "SPS", "FSF", 'F', Items.string, 'S', KEY_SLIME, 'P', Items.paper }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_sender, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', NETHERQUARTZ.gem() }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_receiver, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', IRON.ingot() }); - + addRecipeAuto(new ItemStack(ModBlocks.radio_torch_logic, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); + addRecipeAuto(new ItemStack(ModBlocks.radio_torch_counter, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); + addRecipeAuto(new ItemStack(ModBlocks.radio_telex, 2), new Object[] { "SCR", "W#W", "WWW", 'S', ModBlocks.radio_torch_sender, 'C', ModItems.crt_display, 'R', ModBlocks.radio_torch_receiver, 'W', KEY_PLANKS, '#', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); - addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', RUBBER.ingot(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', ANY_RUBBER.ingot(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_express, 8), new Object[] { "CCC", "CLC", "CCC", 'C', ModBlocks.conveyor, 'L', Fluids.LUBRICANT.getDict(1_000) }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_double, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_triple, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor_double, 'P', STEEL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_chute, 3), new Object[] { "IGI", "IGI", "ICI" , 'I', IRON.ingot(), 'G', ModBlocks.steel_grate, 'C', ModBlocks.conveyor }); @@ -264,71 +232,88 @@ public class CraftingManager { //addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "T T", "PHP", "TFT", 'T', W.ingot(), 'P', ModItems.board_copper, 'H', Blocks.hopper, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_difurnace_extension, 1), new Object[] { " C ", "BGB", "BGB", 'C', CU.plate(), 'B', ModItems.ingot_firebrick, 'G', ModBlocks.steel_grate }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', IRON.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_puf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', STEEL.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 1), new Object[] { "SSS", "LFL", "CCC", 'S', STEEL.plate(), 'C', ModItems.board_copper, 'L', PB.plate(), 'F', Item.getItemFromBlock(Blocks.furnace) }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 1), new Object[] { "BBB", "WFW", "RRR", 'B', BE.ingot(), 'R', ModItems.coil_tungsten, 'W', ModItems.board_copper, 'F', Item.getItemFromBlock(Blocks.furnace) }); - addRecipeAuto(new ItemStack(ModBlocks.machine_arc_furnace_off, 1), new Object[] { "ITI", "PFP", "ITI", 'I', W.ingot(), 'T', ModBlocks.machine_transformer, 'P', ModItems.board_copper, 'F', Blocks.furnace }); - addRecipeAuto(new ItemStack(ModBlocks.red_wire_coated, 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', MINGRADE.ingot(), 'R', ModItems.wire_red_copper }); - addRecipeAuto(new ItemStack(ModBlocks.red_cable_paintable, 16), new Object[] { "WRW", "RIR", "WRW", 'W', STEEL.plate(), 'I', MINGRADE.ingot(), 'R', ModItems.wire_red_copper }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 1), new Object[] { "SSS", "LFL", "CCC", 'S', STEEL.plate(), 'C', CU.plateCast(), 'L', PB.plate(), 'F', Item.getItemFromBlock(Blocks.furnace) }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 1), new Object[] { "BBB", "WFW", "RRR", 'B', BE.ingot(), 'R', ModItems.coil_tungsten, 'W', CU.plateCast(), 'F', Item.getItemFromBlock(Blocks.furnace) }); + addRecipeAuto(new ItemStack(ModBlocks.red_wire_coated, 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', MINGRADE.ingot(), 'R', MINGRADE.wireFine() }); + addRecipeAuto(new ItemStack(ModBlocks.red_cable_paintable, 16), new Object[] { "WRW", "RIR", "WRW", 'W', STEEL.plate(), 'I', MINGRADE.ingot(), 'R', MINGRADE.wireFine() }); addRecipeAuto(new ItemStack(ModBlocks.cable_switch, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.cable_detector, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.red_wire_coated }); - addRecipeAuto(new ItemStack(ModBlocks.cable_diode, 1), new Object[] { " Q ", "CAC", " Q ", 'Q', NETHERQUARTZ.gem(), 'C', ModBlocks.red_cable, 'A', AL.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_detector, 1), new Object[] { "IRI", "CTC", "IRI", 'I', ModItems.plate_polymer, 'R', REDSTONE.dust(), 'C', ModItems.wire_red_copper, 'T', ModItems.coil_tungsten }); - addRecipeAuto(new ItemStack(ModBlocks.red_cable, 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', ModItems.wire_red_copper }); + addRecipeAuto(new ItemStack(ModBlocks.cable_diode, 1), new Object[] { " Q ", "CAC", " Q ", 'Q', SI.nugget(), 'C', ModBlocks.red_cable, 'A', AL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_detector, 1), new Object[] { "IRI", "CTC", "IRI", 'I', ModItems.plate_polymer, 'R', REDSTONE.dust(), 'C', MINGRADE.wireFine(), 'T', ModItems.coil_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.red_cable, 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', MINGRADE.wireFine() }); addShapelessAuto(new ItemStack(ModBlocks.red_cable_classic, 1), new Object[] { ModBlocks.red_cable }); addShapelessAuto(new ItemStack(ModBlocks.red_cable, 1), new Object[] { ModBlocks.red_cable_classic }); + addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_wire_coated, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated }); + addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_wood, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE }); + addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_wood_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_wood, ModItems.plate_polymer, ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_steel, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', STEEL.pipe(), 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE }); + addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_steel_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_steel, ModItems.plate_polymer, ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', CU.ingot(), 'R', REDSTONE.block(), 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_bus, 1), new Object[] { "PIP", "PIP", "PIP", 'P', ModItems.plate_polymer, 'I', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_copper, 1), new Object[] { "PPP", "PCP", "WWW", 'P', STEEL.plate(), 'C', CU.block(), 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_gold, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_PLASTIC.ingot(), 'C', GOLD.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_niobium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', RUBBER.ingot(), 'C', NB.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_tantalium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', TA.block(), 'W', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); - addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace }); - addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_schrabidate, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', SBD.block(), 'W', STEEL.ingot() }); + //addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); + addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate528(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace}); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "SSS", "CRB", "SSS", 'S', STEEL.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "RRR", "WWW", "III", 'R', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'W', REDSTONE.dust(), 'I', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "RRR", "WWW", "III", 'R', REDSTONE.dust(), 'W', MINGRADE.wireFine(), 'I', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.crate_template, 1), new Object[] { "IPI", "P P", "IPI", 'I', IRON.ingot(), 'P', Items.paper }); addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }); - addRecipeAuto(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', ModItems.board_copper, 'C', ModBlocks.crate_steel }); - addRecipeAuto(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel }); - addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', ModItems.circuit_red_copper, 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) }); - addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) }); + + GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel })); + GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', CU.plateCast(), 'C', ModBlocks.crate_steel })); + // Note: voids the last few slots when placed, because a safe's inventory is smaller than a crate's one + GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel })); + // Note: doesn't preserve storage because a crate's contents are different items, but a mass storage's is just one + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); + GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) })); + GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) })); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 3), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); + + addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'M', ModItems.motor, 'W', Blocks.crafting_table }); + addRecipeAuto(new ItemStack(ModBlocks.machine_funnel, 1), new Object[] { "S S", "SRS", " S ", 'S', STEEL.ingot(), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); - addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_ammo_press, 1), new Object[] { "IPI", "C C", "SSS", 'I', IRON.ingot(), 'P', Blocks.piston, 'C', CU.ingot(), 'S', Blocks.stone }); + addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_microwave, 1), new Object[] { "III", "SGM", "IDI", 'I', ModItems.plate_polymer, 'S', STEEL.plate(), 'G', KEY_ANYPANE, 'M', ModItems.magnetron, 'D', ModItems.motor }); - addRecipeAuto(new ItemStack(ModBlocks.machine_solar_boiler), new Object[] { "SHS", "DHD", "SHS", 'S', STEEL.ingot(), 'H', ModItems.hull_big_steel, 'D', KEY_BLACK }); + addRecipeAuto(new ItemStack(ModBlocks.machine_solar_boiler), new Object[] { "SHS", "DHD", "SHS", 'S', STEEL.ingot(), 'H', STEEL.shell(), 'D', KEY_BLACK }); addRecipeAuto(new ItemStack(ModBlocks.solar_mirror, 3), new Object[] { "AAA", " B ", "SSS", 'A', AL.plate(), 'B', ModBlocks.steel_beam, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_iron, 1), new Object[] { "III", " B ", "III", 'I', IRON.ingot(), 'B', IRON.block() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_lead, 1), new Object[] { "III", " B ", "III", 'I', PB.ingot(), 'B', PB.block() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel }); - addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "SHS", "SGS", "SHS", 'S', STEEL.plate(), 'H', ModItems.hull_big_steel, 'G', ModBlocks.steel_grate }); - addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); + addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "H", "G", "H", 'H', STEEL.plateWelded(), 'G', ModBlocks.steel_grate }); + addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', STEEL.shell(), 'B', Blocks.iron_bars }); + addRecipeAuto(new ItemStack(ModBlocks.machine_furnace_brick_off), new Object[] { "III", "I I", "BBB", 'I', Items.brick, 'B', Blocks.stone }); addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); - addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', ModItems.circuit_copper, 'M', ModItems.motor }); - addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate(), 'R', REDSTONE.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', ModItems.bolt_tungsten }); - - addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ModItems.plate_polymer, 'W', Blocks.wool }); + addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate(), 'R', REDSTONE.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', STEEL.bolt() }); + + addRecipeAuto(new ItemStack(ModItems.upgrade_muffler, 16), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); + addRecipeAuto(new ItemStack(ModItems.upgrade_template, 1), new Object[] { "WIW", "PCP", "WIW", 'W', CU.wireFine(), 'I', IRON.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'P', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.upgrade_template, 1), new Object[] { "WIW", "PCP", "WIW", 'W', CU.wireFine(), 'I', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', ModItems.plate_polymer }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); - addRecipeAuto(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', GRAPHITE.ingot(), 'T', ModItems.bolt_tungsten }); - addRecipeAuto(new ItemStack(ModItems.arc_electrode_desh, 1), new Object[] { "C", "T", "C", 'C', DESH.dust(), 'T', ModItems.arc_electrode }); - addRecipeAuto(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'E', STEEL.ingot() }); - addShapelessAuto(new ItemStack(ModItems.detonator_multi, 1), new Object[] { ModItems.detonator, ModItems.circuit_targeting_tier3 }); - addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', ModItems.circuit_targeting_tier3, 'D', DIAMOND.gem(), 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', ModItems.circuit_targeting_tier3, 'D', EMERALD.gem(), 'I', STEEL.ingot() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.GRAPHITE), new Object[] { "C", "T", "C", 'C', GRAPHITE.ingot(), 'T', STEEL.bolt() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.GRAPHITE), new Object[] { "C", "T", "C", 'C', PETCOKE.gem(), 'T', ANY_TAR.any() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.LANTHANIUM), new Object[] { "C", "T", "C", 'C', LA.ingot(), 'T', KEY_BRICK }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.DESH), new Object[] { "C", "T", "C", 'C', DESH.ingot(), 'T', TI.ingot() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.DESH), new Object[] { "C", "T", "C", 'C', DESH.ingot(), 'T', W.ingot() }); + addRecipeAuto(DictFrame.fromOne(ModItems.arc_electrode, EnumElectrodeType.SATURNITE), new Object[] { "C", "T", "C", 'C', BIGMT.ingot(), 'T', NB.ingot() }); + + addRecipeAuto(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', MINGRADE.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'E', STEEL.ingot() }); + addShapelessAuto(new ItemStack(ModItems.detonator_multi, 1), new Object[] { ModItems.detonator, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', DIAMOND.gem(), 'I', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModItems.detonator_laser, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', REDSTONE.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', EMERALD.gem(), 'I', STEEL.ingot() }); addShapelessAuto(new ItemStack(ModItems.detonator_deadman, 1), new Object[] { ModItems.detonator, ModItems.defuser, ModItems.ducttape }); addRecipeAuto(new ItemStack(ModItems.detonator_de, 1), new Object[] { "T", "D", "T", 'T', Blocks.tnt, 'D', ModItems.detonator_deadman }); @@ -338,19 +323,19 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.black_hole, 1), new Object[] { "SSS", "SCS", "SSS", 'C', ModItems.singularity, 'S', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModItems.crystal_xen, 1), new Object[] { "EEE", "EIE", "EEE", 'E', ModItems.powder_power, 'I', EUPH.ingot() }); - addShapelessAuto(new ItemStack(ModItems.fuse, 1), new Object[] { STEEL.plate(), ModItems.plate_polymer, ModItems.wire_tungsten }); - addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.bolt_tungsten, NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), ModItems.board_copper, ModItems.black_hole, CS.dust() }); - addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.bolt_tungsten, ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), ModItems.board_copper, ModItems.black_hole, CE.dust() }); - + addShapelessAuto(new ItemStack(ModItems.fuse, 1), new Object[] { STEEL.plate(), ModItems.plate_polymer, W.wireFine() }); + addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), CU.plateCast(), ModItems.black_hole, CS.dust() }); + addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), CU.plateCast(), ModItems.black_hole, CE.dust() }); + addRecipeAuto(new ItemStack(ModItems.blades_steel, 1), new Object[] { " P ", "PIP", " P ", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.blades_titanium, 1), new Object[] { " P ", "PIP", " P ", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(ModItems.blades_advanced_alloy, 1), new Object[] { " P ", "PIP", " P ", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); - addRecipeAuto(new ItemStack(ModItems.blades_desh, 1), new Object[] { " S ", "PBP", " S ", 'S', BIGMT.plate(), 'P', ModItems.plate_desh, 'B', ModItems.blades_advanced_alloy }); //4 desh ingots still needed to do anything - + addRecipeAuto(new ItemStack(ModItems.blades_desh, 1), new Object[] { " P ", "PBP", " P ", 'P', ModItems.plate_desh, 'B', ModItems.blades_advanced_alloy }); //4 desh ingots still needed to do anything + addRecipeAuto(new ItemStack(ModItems.blades_steel, 1), new Object[] { "PIP", 'P', STEEL.plate(), 'I', new ItemStack(ModItems.blades_steel, 1, OreDictionary.WILDCARD_VALUE) }); addRecipeAuto(new ItemStack(ModItems.blades_titanium, 1), new Object[] { "PIP", 'P', TI.plate(), 'I', new ItemStack(ModItems.blades_titanium, 1, OreDictionary.WILDCARD_VALUE) }); addRecipeAuto(new ItemStack(ModItems.blades_advanced_alloy, 1), new Object[] { "PIP", 'P', ALLOY.plate(), 'I', new ItemStack(ModItems.blades_advanced_alloy, 1, OreDictionary.WILDCARD_VALUE) }); - + addRecipeAuto(new ItemStack(ModItems.laser_crystal_co2, 1), new Object[] { "QDQ", "NCN", "QDQ", 'Q', ModBlocks.glass_quartz, 'D', DESH.ingot(), 'N', NB.ingot(), 'C', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.CARBONDIOXIDE.getID()) }); addRecipeAuto(new ItemStack(ModItems.laser_crystal_bismuth, 1), new Object[] {"QUQ", "BCB", "QTQ", 'Q', ModBlocks.glass_quartz, 'U', U.ingot(), 'T', TH232.ingot(), 'B', ModItems.nugget_bismuth, 'C', ModItems.crystal_rare }); addRecipeAuto(new ItemStack(ModItems.laser_crystal_cmb, 1), new Object[] {"QBQ", "CSC", "QBQ", 'Q', ModBlocks.glass_quartz, 'B', CMB.ingot(), 'C', SBD.ingot(), 'S', ModItems.cell_anti_schrabidium }); @@ -358,34 +343,31 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.laser_crystal_digamma, 1), new Object[] {"QUQ", "UEU", "QUQ", 'Q', ModBlocks.glass_quartz, 'U', ModItems.undefined, 'E', ModItems.ingot_electronium } ); Item[] bricks = new Item[] {Items.brick, Items.netherbrick}; - + for(Item brick : bricks) { addRecipeAuto(new ItemStack(ModItems.stamp_stone_flat, 1), new Object[] { "III", "SSS", 'I', brick, 'S', "stone" }); addRecipeAuto(new ItemStack(ModItems.stamp_iron_flat, 1), new Object[] { "III", "SSS", 'I', brick, 'S', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.stamp_steel_flat, 1), new Object[] { "III", "SSS", 'I', brick, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.stamp_titanium_flat, 1), new Object[] { "III", "SSS", 'I', brick, 'S', TI.ingot() }); addRecipeAuto(new ItemStack(ModItems.stamp_obsidian_flat, 1), new Object[] { "III", "SSS", 'I', brick, 'S', Blocks.obsidian }); - addRecipeAuto(new ItemStack(ModItems.stamp_desh_flat, 1), new Object[] { "BDB", "DSD", "BDB", 'B', brick, 'D', DESH.ingot(), 'S', BIGMT.ingot() }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_flat, 1), new Object[] { "BDB", "DSD", "BDB", 'B', brick, 'D', DESH.ingot(), 'S', FERRO.ingot() }); } - + addRecipeAuto(new ItemStack(ModItems.mechanism_revolver_1, 1), new Object[] { "ICI", "CAC", "ICI", 'I', IRON.plate(), 'C', CU.ingot(), 'A', AL.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_revolver_2, 1), new Object[] { "ATA", "TDT", "ATA", 'A', ALLOY.plate(), 'T', W.ingot(), 'D', DURA.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_1, 1), new Object[] { "ICI", "MAM", "ICI", 'I', IRON.plate(), 'C', CU.ingot(), 'A', AL.ingot(), 'M', ModItems.mechanism_revolver_1 }); addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_2, 1), new Object[] { "ATA", "MDM", "ATA", 'A', ALLOY.plate(), 'T', W.ingot(), 'D', DURA.ingot(), 'M', ModItems.mechanism_revolver_2 }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', ModItems.bolt_tungsten, 'I', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); + addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', W.bolt(), 'I', MINGRADE.ingot() }); + addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', W.bolt(), 'I', DESH.ingot() }); + addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); - addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateTriple(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_cooler), 1), new Object[] { "IPI", "IPI", "IPI", 'I', TI.ingot(), 'P', TI.plate() }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_tank), 1), new Object[] { "CGC", "GGG", "CGC", 'C', CMB.plate(), 'G', KEY_ANYPANE }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_scaffold), 1), new Object[] { "IPI", "P P", "IPI", 'I', W.ingot(), 'P', getReflector() }); + addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateCast(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'S', ModItems.pipes_steel }); addRecipeAuto(new ItemStack(ModBlocks.reinforced_stone, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.cobblestone, 'B', Blocks.stone }); addRecipeAuto(new ItemStack(ModBlocks.brick_light, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.fence, 'B', Blocks.brick_block }); addRecipeAuto(new ItemStack(ModBlocks.brick_asbestos, 2), new Object[] { " A ", "ABA", " A ", 'B', ModBlocks.brick_light, 'A', ASBESTOS.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.concrete, 4), new Object[] { "CC", "CC", 'C', ModBlocks.concrete_smooth }); - addRecipeAuto(new ItemStack(ModBlocks.concrete_pillar, 8), new Object[] { "CBC", "CBC", "CBC", 'C', ModBlocks.concrete_smooth, 'B', Blocks.iron_bars }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_pillar, 6), new Object[] { "CBC", "CBC", "CBC", 'C', ModBlocks.concrete_smooth, 'B', Blocks.iron_bars }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete, 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete_smooth, 'B', Items.clay_ball }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete, 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete, 'B', Items.clay_ball }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete_mossy, 8), new Object[] { "CCC", "CVC", "CCC", 'C', ModBlocks.brick_concrete, 'V', Blocks.vine }); @@ -401,29 +383,30 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.meteor_brick, 4), new Object[] { "CC", "CC", 'C', ModBlocks.meteor_polished }); addRecipeAuto(new ItemStack(ModBlocks.meteor_brick_mossy, 8), new Object[] { "CCC", "CVC", "CCC", 'C', ModBlocks.meteor_brick, 'V', Blocks.vine }); addRecipeAuto(new ItemStack(ModBlocks.meteor_brick_cracked, 6), new Object[] { " C " , "C C", " C ", 'C', ModBlocks.meteor_brick }); - addRecipeAuto(new ItemStack(ModBlocks.meteor_battery, 1), new Object[] { "MSM", "MWM", "MSM", 'M', ModBlocks.meteor_polished, 'S', STAR.block(), 'W', ModItems.wire_schrabidium }); + addRecipeAuto(new ItemStack(ModBlocks.meteor_battery, 1), new Object[] { "MSM", "MWM", "MSM", 'M', ModBlocks.meteor_polished, 'S', STAR.block(), 'W', SA326.wireFine() }); addRecipeAuto(new ItemStack(ModBlocks.tile_lab, 4), new Object[] { "CBC", "CBC", "CBC", 'C', Items.brick, 'B', ASBESTOS.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.tile_lab_cracked, 6), new Object[] { " C " , "C C", " C ", 'C', ModBlocks.tile_lab }); addRecipeAuto(new ItemStack(ModBlocks.tile_lab_broken, 6), new Object[] { " C " , "C C", " C ", 'C', ModBlocks.tile_lab_cracked }); addShapelessAuto(new ItemStack(ModBlocks.asphalt_light, 1), new Object[] { ModBlocks.asphalt, Items.glowstone_dust }); addShapelessAuto(new ItemStack(ModBlocks.asphalt, 1), new Object[] { ModBlocks.asphalt_light }); - addRecipeAuto(new ItemStack(ModBlocks.block_niter_reinforced, 1), new Object[] { "TCT", "CNC", "TCT", 'T', ANY_RESISTANTALLOY.ingot(), 'C', ModBlocks.concrete, 'N', KNO.block() }); - + String[] dyes = { "Black", "Red", "Green", "Brown", "Blue", "Purple", "Cyan", "LightGray", "Gray", "Pink", "Lime", "Yellow", "LightBlue", "Magenta", "Orange", "White" }; - + for(int i = 0; i < 16; i++) { String dyeName = "dye" + dyes[15 - i]; addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_smooth, 'D', dyeName }); } - addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored }); - addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored_ext }); - + addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { new ItemStack(ModBlocks.concrete_colored, 1, OreDictionary.WILDCARD_VALUE) }); + addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { new ItemStack(ModBlocks.concrete_colored_ext, 1, OreDictionary.WILDCARD_VALUE) }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_GRAY }); addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE_STRIPE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_BLACK }); addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.INDIGO.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BLUE, '2', KEY_PURPLE }); addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.PURPLE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_PURPLE, '2', KEY_PURPLE }); addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.PINK.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_PINK, '2', KEY_RED }); addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.HAZARD.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_YELLOW, '2', KEY_BLACK }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.SAND.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_YELLOW, '2', KEY_GRAY }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.BRONZE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_ORANGE, '2', KEY_BROWN }); addRecipeAuto(new ItemStack(ModBlocks.gneiss_tile, 4), new Object[] { "CC", "CC", 'C', ModBlocks.stone_gneiss }); addRecipeAuto(new ItemStack(ModBlocks.gneiss_brick, 4), new Object[] { "CC", "CC", 'C', ModBlocks.gneiss_tile }); @@ -438,7 +421,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_brick), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', ModBlocks.brick_concrete }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', ModItems.bolt_tungsten, 'B', ModBlocks.reinforced_brick, 'T', ANY_TAR.any() }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', STEEL.bolt(), 'B', ModBlocks.reinforced_brick, 'T', ANY_TAR.any() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.glass }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass_pane), 16), new Object[] { " ", "GGG", "GGG", 'G', ModBlocks.reinforced_glass}); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_laminate_pane), 16), new Object[] { " ", "LLL", "LLL", 'L', ModBlocks.reinforced_laminate}); @@ -446,20 +429,25 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_lamp_off), 1), new Object[] { "FFF", "FBF", "FFF", 'F', Blocks.iron_bars, 'B', Blocks.redstone_lamp }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_sand), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.sandstone }); - addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_green_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P', P_RED.dust(), 'T', ModItems.cell_tritium, '1', "dustSulfur", '2', CU.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_blue_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P',P_RED.dust(), 'T', ModItems.cell_tritium, '1', AL.dust(), '2', ST.dust() }); - - addRecipeAuto(new ItemStack(ModBlocks.barbed_wire, 16), new Object[] { "AIA", "I I", "AIA", 'A', ModItems.wire_aluminium, 'I', IRON.ingot() }); + addShapelessAuto(new ItemStack(ModBlocks.lamp_tritium_green_off, 1), new Object[] { KEY_ANYGLASS, P_RED.dust(), Fluids.TRITIUM.getDict(1_000), S.dust() }); + addShapelessAuto(new ItemStack(ModBlocks.lamp_tritium_blue_off, 1), new Object[] { KEY_ANYGLASS, P_RED.dust(), Fluids.TRITIUM.getDict(1_000), AL.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.lantern, 1), new Object[] { "PGP", " S ", " S ", 'P', KEY_ANYPANE, 'G', Items.glowstone_dust, 'S', ModBlocks.steel_beam }); + addRecipeAuto(new ItemStack(ModBlocks.spotlight_incandescent, 8), new Object[] { "G", "T", "I", 'G', KEY_ANYPANE, 'T', W.wireFine(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.spotlight_fluoro, 8), new Object[] { "G", "M", "A", 'G', KEY_ANYPANE, 'M', ModItems.ingot_mercury, 'A', ModItems.plate_aluminium }); + addRecipeAuto(new ItemStack(ModBlocks.spotlight_halogen, 8), new Object[] { "G", "B", "S", 'G', KEY_ANYPANE, 'B', ModItems.powder_bromine, 'S', STEEL.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.floodlight, 2), new Object[] { "CSC", "TST", "G G", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'S', STEEL.plate(), 'T', ModItems.coil_tungsten, 'G', KEY_ANYPANE }); + + addRecipeAuto(new ItemStack(ModBlocks.barbed_wire, 16), new Object[] { "AIA", "I I", "AIA", 'A', STEEL.wireFine(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_fire, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', P_RED.dust() }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_poison, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', ModItems.powder_poison }); - addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_acid, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.ACID.getID()) }); + addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_acid, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.PEROXIDE.getID()) }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_wither, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', new ItemStack(Items.skull, 1, 1) }); - addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_ultradeath, 4), new Object[] { "BCB", "CIC", "BCB", 'B', ModBlocks.barbed_wire, 'C', ModItems.powder_cloud, 'I', ModItems.nuclear_waste }); + addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_ultradeath, 4), new Object[] { "BCB", "CIC", "BCB", 'B', ModBlocks.barbed_wire, 'C', ModItems.powder_yellowcake, 'I', ModItems.nuclear_waste }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.tape_recorder), 4), new Object[] { "TST", "SSS", 'T', W.ingot(), 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_poles), 16), new Object[] { "S S", "SSS", "S S", 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.pole_top), 1), new Object[] { "T T", "TRT", "BBB", 'T', W.ingot(), 'B', BE.ingot(), 'R', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.pole_satellite_receiver), 1), new Object[] { "SS ", "SCR", "SS ", 'S', STEEL.ingot(), 'C', ModItems.circuit_red_copper, 'R', ModItems.wire_red_copper }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.pole_satellite_receiver), 1), new Object[] { "SS ", "SCR", "SS ", 'S', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'R', MINGRADE.wireFine() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_beam), 8), new Object[] { "S", "S", "S", 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_wall), 4), new Object[] { "SSS", "SSS", 'S', STEEL.ingot() }); addShapelessAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_corner)), new Object[] { ModBlocks.steel_wall, ModBlocks.steel_wall }); @@ -470,28 +458,18 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_grate), 4), new Object[] { "SS", "SS", 'S', ModBlocks.steel_beam }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_grate_wide), 4), new Object[] { "SS", 'S', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_grate), 1), new Object[] { "SS", 'S', ModBlocks.steel_grate_wide }); - + addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 0), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeGray" }); addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 1), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeRed" }); addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 2), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeWhite" }); addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 3), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeYellow" }); - + reg2(); } - + public static void reg2() { - addRecipeAuto(new ItemStack(ModItems.stamp_357, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_357 }); - addRecipeAuto(new ItemStack(ModItems.stamp_44, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_44 }); - addRecipeAuto(new ItemStack(ModItems.stamp_9, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_9 }); - addRecipeAuto(new ItemStack(ModItems.stamp_50, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_50 }); - - addRecipeAuto(new ItemStack(ModItems.stamp_desh_357, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_357 }); - addRecipeAuto(new ItemStack(ModItems.stamp_desh_44, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_44 }); - addRecipeAuto(new ItemStack(ModItems.stamp_desh_9, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_9 }); - addRecipeAuto(new ItemStack(ModItems.stamp_desh_50, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_50 }); - addRecipeAuto(new ItemStack(ModBlocks.sat_dock, 1), new Object[] { "SSS", "PCP", 'S', STEEL.ingot(), 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.crate_iron }); addRecipeAuto(new ItemStack(ModBlocks.book_guide, 1), new Object[] { "IBI", "LBL", "IBI", 'B', Items.book, 'I', KEY_BLACK, 'L', KEY_BLUE }); @@ -500,7 +478,19 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rail_highspeed, 16), new Object[] { "S S", "SIS", "S S", 'S', STEEL.ingot(), 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.rail_booster, 6), new Object[] { "S S", "CIC", "SRS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'R', MINGRADE.ingot(), 'C', ModItems.coil_copper }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', ModItems.wire_aluminium, 'C', ModItems.circuit_aluminium, 'H', ModItems.hull_small_aluminium, 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_straight, 4), new Object[] { "B B", "SSS", "W W", 'B', ModItems.bolt_spike, 'S', ModBlocks.steel_beam, 'W', KEY_SLAB }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight, 1), new Object[] { ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight_short, 5), new Object[] { ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_buffer, 1), new Object[] { " S", "RS", 'R', ModBlocks.rail_large_straight, 'S', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve, 1), new Object[] { "R ", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve_7, 1), new Object[] { "RR", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve_9, 1), new Object[] { "RR ", " R", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_ramp, 1), new Object[] { " R ", "SSS", 'R', ModBlocks.rail_large_straight, 'S', KEY_SLAB }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_switch, 1), new Object[] { "R R", " RR", " R", 'R', ModBlocks.rail_large_straight }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch), new Object[] { ModBlocks.rail_large_switch_flipped }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch_flipped), new Object[] { ModBlocks.rail_large_switch }); + + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', AL.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'H', AL.shell(), 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); addShapelessAuto(new ItemStack(ModItems.powder_ice, 4), new Object[] { Items.snowball, KNO.dust(), REDSTONE.dust() }); addShapelessAuto(new ItemStack(ModItems.powder_poison, 4), new Object[] { Items.spider_eye, REDSTONE.dust(), NETHERQUARTZ.gem() }); addShapelessAuto(new ItemStack(ModItems.pellet_gas, 2), new Object[] { Items.water_bucket, "dustGlowstone", STEEL.plate() }); @@ -509,73 +499,65 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.flame_conspiracy, 1), new Object[] { " S ", "STS", " S ", 'S', Fluids.KEROSENE.getDict(1000), 'T', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.flame_politics, 1), new Object[] { " I ", "IPI", " I ", 'P', Items.paper, 'I', KEY_BLACK }); addRecipeAuto(new ItemStack(ModItems.flame_opinion, 1), new Object[] { " R ", "RPR", " R ", 'P', Items.paper, 'R', KEY_RED }); - + addRecipeAuto(new ItemStack(ModItems.solid_fuel_presto, 1), new Object[] { " P ", "SRS", " P ", 'P', Items.paper, 'S', ModItems.solid_fuel, 'R', REDSTONE.dust() }); addShapelessAuto(new ItemStack(ModItems.solid_fuel_presto_triplet, 1), new Object[] { ModItems.solid_fuel_presto, ModItems.solid_fuel_presto, ModItems.solid_fuel_presto, ModItems.ball_dynamite }); addRecipeAuto(new ItemStack(ModItems.solid_fuel_presto_bf, 1), new Object[] { " P ", "SRS", " P ", 'P', Items.paper, 'S', ModItems.solid_fuel_bf, 'R', REDSTONE.dust() }); addShapelessAuto(new ItemStack(ModItems.solid_fuel_presto_triplet_bf, 1), new Object[] { ModItems.solid_fuel_presto_bf, ModItems.solid_fuel_presto_bf, ModItems.solid_fuel_presto_bf, ModItems.ingot_c4 }); - + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.flame_war), 1), new Object[] { "WHW", "CTP", "WOW", 'W', Item.getItemFromBlock(Blocks.planks), 'T', Item.getItemFromBlock(Blocks.tnt), 'H', ModItems.flame_pony, 'C', ModItems.flame_conspiracy, 'P', ModItems.flame_politics, 'O', ModItems.flame_opinion }); addRecipeAuto(new ItemStack(ModBlocks.det_cord, 4), new Object[] { " P ", "PGP", " P ", 'P', Items.paper, 'G', Items.gunpowder }); addRecipeAuto(new ItemStack(ModBlocks.det_charge, 1), new Object[] { "PDP", "DTD", "PDP", 'P', STEEL.plate(), 'D', ModBlocks.det_cord, 'T', ANY_PLASTICEXPLOSIVE.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PDP", "DCD", "PDP", 'P', ModItems.plate_desh, 'D', ModBlocks.det_charge, 'C', ModItems.man_core }); + addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PFP", "DCD", "PFP", 'P', DESH.plateCast(), 'D', ModBlocks.det_charge, 'C', ModItems.man_core, 'F', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER) }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 4), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', IRON.plate(), 'T', ModItems.ball_dynamite }); addRecipeAuto(new ItemStack(ModBlocks.det_miner, 12), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', STEEL.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addShapelessAuto(new ItemStack(ModBlocks.charge_dynamite, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.charge_miner, 1), new Object[] { " F ", "FCF", " F ", 'F', Items.flint, 'C', ModBlocks.charge_dynamite }); addShapelessAuto(new ItemStack(ModBlocks.charge_semtex, 1), new Object[] { ModItems.stick_semtex, ModItems.stick_semtex, ModItems.stick_semtex, ModItems.ducttape }); addShapelessAuto(new ItemStack(ModBlocks.charge_c4, 1), new Object[] { ModItems.stick_c4, ModItems.stick_c4, ModItems.stick_c4, ModItems.ducttape }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_generic), new Object[] { " A ", "PRP", "PRP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'R', REDSTONE.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', ModItems.wire_red_copper, 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PLP", "PSP", 'A', ModItems.wire_red_copper, 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', ModItems.wire_red_copper, 'P', CU.plate(), 'S', "dustSulfur", 'L', PB.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PLP", "PSP", 'A', ModItems.wire_red_copper, 'P', CU.plate(), 'S', "dustSulfur", 'L', PB.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PSP", "PLP", 'A', ModItems.wire_gold, 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PLP", "PSP", 'A', ModItems.wire_gold, 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PNP", "PSP", 'A', ModItems.wire_schrabidium, 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PSP", "PNP", 'A', ModItems.wire_schrabidium, 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_generic), new Object[] { " A ", "PRP", "PRP", 'A', AL.wireFine(), 'P', AL.plate(), 'R', REDSTONE.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PLP", "PSP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "dustSulfur", 'L', PB.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PLP", "PSP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "dustSulfur", 'L', PB.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PSP", "PLP", 'A', GOLD.wireFine(), 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PLP", "PSP", 'A', GOLD.wireFine(), 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PNP", "PSP", 'A', SA326.wireFine(), 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PSP", "PNP", 'A', SA326.wireFine(), 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark), new Object[] { "P", "S", "S", 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PSP", "PTP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PTP", "PSP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TRD", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TDR", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.hev_battery, 4), new Object[] { " W ", "IEI", "ICI", 'W', ModItems.wire_gold, 'I', ModItems.plate_polymer, 'E', REDSTONE.dust(), 'C', CO.dust() }); - addRecipeAuto(new ItemStack(ModItems.hev_battery, 4), new Object[] { " W ", "ICI", "IEI", 'W', ModItems.wire_gold, 'I', ModItems.plate_polymer, 'E', REDSTONE.dust(), 'C', CO.dust() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PSP", "PTP", 'A', AL.wireFine(), 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PTP", "PSP", 'A', AL.wireFine(), 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); + addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TRD", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ALLOY.wireFine(), 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); + addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TDR", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ALLOY.wireFine(), 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); + addRecipeAuto(new ItemStack(ModItems.hev_battery, 4), new Object[] { " W ", "IEI", "ICI", 'W', GOLD.wireFine(), 'I', ModItems.plate_polymer, 'E', REDSTONE.dust(), 'C', CO.dust() }); + addRecipeAuto(new ItemStack(ModItems.hev_battery, 4), new Object[] { " W ", "ICI", "IEI", 'W', GOLD.wireFine(), 'I', ModItems.plate_polymer, 'E', REDSTONE.dust(), 'C', CO.dust() }); addShapelessAuto(new ItemStack(ModItems.hev_battery, 1), new Object[] { ModBlocks.hev_battery }); addShapelessAuto(new ItemStack(ModBlocks.hev_battery, 1), new Object[] { ModItems.hev_battery }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell), new Object[] { "WBW", "PBP", "WBW", 'W', ModItems.wire_aluminium, 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_generic) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell), new Object[] { "WBW", "PBP", "WBW", 'W', ModItems.wire_red_copper, 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell), new Object[] { "WBW", "PBP", "WBW", 'W', ModItems.wire_gold, 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell), new Object[] { "WBW", "PBP", "WBW", 'W', ModItems.wire_schrabidium, 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell_6), new Object[] { "BBB", "WPW", "BBB", 'W', ModItems.wire_aluminium, 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_red_cell) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_4), new Object[] { "BWB", "WPW", "BWB", 'W', ModItems.wire_red_copper, 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_3), new Object[] { "WPW", "BBB", "WPW", 'W', ModItems.wire_gold, 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2), new Object[] { "WPW", "BWB", "WPW", 'W', ModItems.wire_schrabidium, 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell_24), new Object[] { "BWB", "WPW", "BWB", 'W', ModItems.wire_aluminium, 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_red_cell_6) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_12), new Object[] { "WPW", "BBB", "WPW", 'W', ModItems.wire_red_copper, 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_4) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_6), new Object[] { "WPW", "BWB", "WPW", 'W', ModItems.wire_gold, 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_3) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_4), new Object[] { "WPW", "BWB", "WPW", 'W', ModItems.wire_schrabidium, 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6), new Object[] { "BW", "PW", "BW", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25), new Object[] { "W W", "SCS", "PSP", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), new Object[] { "W W", "BPB", "SSS", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell), new Object[] { "WBW", "PBP", "WBW", 'W', AL.wireFine(), 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_generic) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell), new Object[] { "WBW", "PBP", "WBW", 'W', MINGRADE.wireFine(), 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell), new Object[] { "WBW", "PBP", "WBW", 'W', GOLD.wireFine(), 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell), new Object[] { "WBW", "PBP", "WBW", 'W', SA326.wireFine(), 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell_6), new Object[] { "BBB", "WPW", "BBB", 'W', AL.wireFine(), 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_red_cell) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_4), new Object[] { "BWB", "WPW", "BWB", 'W', MINGRADE.wireFine(), 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_3), new Object[] { "WPW", "BBB", "WPW", 'W', GOLD.wireFine(), 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2), new Object[] { "WPW", "BWB", "WPW", 'W', SA326.wireFine(), 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell_24), new Object[] { "BWB", "WPW", "BWB", 'W', AL.wireFine(), 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_red_cell_6) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_12), new Object[] { "WPW", "BBB", "WPW", 'W', MINGRADE.wireFine(), 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_4) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_6), new Object[] { "WPW", "BWB", "WPW", 'W', GOLD.wireFine(), 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_3) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_4), new Object[] { "WPW", "BWB", "WPW", 'W', SA326.wireFine(), 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6), new Object[] { "BW", "PW", "BW", 'W', MAGTUNG.wireFine(), 'P', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25), new Object[] { "W W", "SCS", "PSP", 'W', MAGTUNG.wireFine(), 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), new Object[] { "W W", "BPB", "SSS", 'W', MAGTUNG.wireFine(), 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25) }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), new Object[] { "PCP", "CSC", "PCP", 'S', ModItems.singularity_spark, 'P', ModItems.powder_spark_mix, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100) }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), new Object[] { "SCS", "CVC", "SCS", 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), 'S', ModItems.powder_spark_mix }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), new Object[] { "OSO", "SVS", "OSO", 'S', ModItems.singularity_spark, 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), 'O', ModItems.ingot_osmiridium }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_power), new Object[] { "YSY", "SCS", "YSY", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), 'Y', ModItems.billet_yharonite }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "R", "C", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "C", "R", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "CPC", "RPR", 'W', ModItems.wire_aluminium, 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', ModItems.wire_aluminium, 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "CPC", "RPR", 'W', ModItems.wire_copper, 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', ModItems.wire_copper, 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, ModItems.wire_aluminium, ModItems.wire_copper }); + addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, AL.wireFine(), CU.wireFine() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam), new Object[] { "PMP", "ISI", "PCP", 'P', CU.plate(), 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()), 'I', ModItems.plate_polymer }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam_large), new Object[] { "MPM", "ISI", "CPC", 'P', ModItems.board_copper, 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.WATER.getID()), 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.battery_sc_uranium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', U238.billet(), 'P', PB.plate(), 'C', ModItems.thermo_element }); addRecipeAuto(new ItemStack(ModItems.battery_sc_technetium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', TC99.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_uranium }); @@ -584,25 +566,25 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.battery_sc_gold), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AU198.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_polonium }); addRecipeAuto(new ItemStack(ModItems.battery_sc_lead), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', PB209.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_gold }); addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AM241.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_lead }); - - addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - - addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'K', Fluids.KEROSENE.getDict(1000) }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ModItems.plate_polymer, 'L', Fluids.LUBRICANT.getDict(1000), 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ModItems.plate_polymer, 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'C', ModItems.circuit_schrabidium, 'E', EUPH.ingot() }); + addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); + + addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', STEEL.bolt(), 'K', Fluids.KEROSENE.getDict(1000) }); + addShapelessAuto(new ItemStack(ModItems.gun_kit_1, 1), new Object[] { ANY_RUBBER.ingot(), Fluids.WOODOIL.getDict(1_000), IRON.ingot() }); + addShapelessAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { ModItems.gun_kit_1, ModItems.wrench, ModItems.ducttape, Fluids.LUBRICANT.getDict(1_000) }); + + addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', SA326.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'E', EUPH.ingot() }); addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LYL", "EWE", "LYL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock, 'Y', ModItems.billet_yharonite }); - addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); + addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', STEEL.bolt() }); addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DESH.dust(), 'T', KEY_TOOL_SCREWDRIVER }); - addRecipeAuto(new ItemStack(ModItems.key_red, 1), new Object[] { "DSC", "SMS", "KSD", 'C', ModItems.circuit_targeting_tier4, 'M', Items.nether_star, 'K', ModItems.key, 'D', DESH.dust(), 'S', BIGMT.plate() }); - addRecipeAuto(new ItemStack(ModItems.pin, 1), new Object[] { "W ", " W", " W", 'W', ModItems.wire_copper }); - addRecipeAuto(new ItemStack(ModItems.padlock_rusty, 1), new Object[] { "I", "B", "I", 'I', IRON.ingot(), 'B', ModItems.bolt_tungsten }); - addRecipeAuto(new ItemStack(ModItems.padlock, 1), new Object[] { " P ", "PBP", "PPP", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); - addRecipeAuto(new ItemStack(ModItems.padlock_reinforced, 1), new Object[] { " P ", "PBP", "PDP", 'P', ALLOY.plate(), 'D', ModItems.plate_desh, 'B', ModItems.bolt_dura_steel }); - addRecipeAuto(new ItemStack(ModItems.padlock_unbreakable, 1), new Object[] { " P ", "PBP", "PDP", 'P', BIGMT.plate(), 'D', DIAMOND.gem(), 'B', ModItems.bolt_dura_steel }); - + addRecipeAuto(new ItemStack(ModItems.key_red, 1), new Object[] { "RCA", "CIC", "KCR", 'R', KEY_RED, 'C', STAR.wireDense(), 'A', ModItems.gem_alexandrite, 'I', ModItems.ingot_chainsteel, 'K', ModItems.key }); + addRecipeAuto(new ItemStack(ModItems.pin, 1), new Object[] { "W ", " W", " W", 'W', CU.wireFine() }); + addRecipeAuto(new ItemStack(ModItems.padlock_rusty, 1), new Object[] { "I", "B", "I", 'I', IRON.ingot(), 'B', STEEL.bolt() }); + addRecipeAuto(new ItemStack(ModItems.padlock, 1), new Object[] { " P ", "PBP", "PPP", 'P', STEEL.plate(), 'B', STEEL.bolt() }); + addRecipeAuto(new ItemStack(ModItems.padlock_reinforced, 1), new Object[] { " P ", "PBP", "PDP", 'P', ALLOY.plate(), 'D', ModItems.plate_desh, 'B', DURA.bolt() }); + addRecipeAuto(new ItemStack(ModItems.padlock_unbreakable, 1), new Object[] { " P ", "PBP", "PDP", 'P', BIGMT.plate(), 'D', DIAMOND.gem(), 'B', DURA.bolt() }); + addRecipeAuto(new ItemStack(ModItems.record_lc, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', LAPIS.dust() }); addRecipeAuto(new ItemStack(ModItems.record_ss, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', ALLOY.dust() }); addRecipeAuto(new ItemStack(ModItems.record_vc, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', CMB.dust() }); @@ -618,20 +600,22 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 1), new Object[] { "IAI", " ", "IAI", 'I', IRON.plate(), 'A', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 2), new Object[] { "ASA", " ", "ASA", 'S', STEEL.plate(), 'A', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_paintable, 8), new Object[] { "SAS", "A A", "SAS", 'S', STEEL.ingot(), 'A', AL.plate() }); - addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_gauge), new Object[] { ModBlocks.fluid_duct_paintable, STEEL.ingot(), ModItems.circuit_aluminium }); - addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " D ", "SAS", 'S', STEEL.plate(), 'A', AL.plate(), 'D', ModItems.ducttape }); - addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1, 0), new Object[] { ModBlocks.fluid_duct }); - addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_solid, 8), new Object[] { "SAS", "ADA", "SAS", 'S', STEEL.ingot(), 'A', AL.plate(), 'D', ModItems.ducttape }); + addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_gauge), new Object[] { ModBlocks.fluid_duct_paintable, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + addRecipeAuto(new ItemStack(ModBlocks.fluid_valve, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.fluid_duct_paintable }); + addRecipeAuto(new ItemStack(ModBlocks.fluid_switch, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.fluid_duct_paintable }); addRecipeAuto(new ItemStack(ModItems.template_folder, 1), new Object[] { "LPL", "BPB", "LPL", 'P', Items.paper, 'L', "dye", 'B', "dye" }); addRecipeAuto(new ItemStack(ModItems.pellet_antimatter, 1), new Object[] { "###", "###", "###", '#', ModItems.cell_antimatter }); addRecipeAuto(new ItemStack(ModItems.fluid_tank_empty, 8), new Object[] { "121", "1G1", "121", '1', AL.plate(), '2', IRON.plate(), 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(ModItems.fluid_tank_lead_empty, 4), new Object[] { "LUL", "LTL", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'T', ModItems.fluid_tank_empty }); addRecipeAuto(new ItemStack(ModItems.fluid_barrel_empty, 2), new Object[] { "121", "1G1", "121", '1', STEEL.plate(), '2', AL.plate(), 'G', KEY_ANYPANE }); - addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Items.water_bucket, '2', AL.plate(), '3', DIAMOND.gem() }); - addRecipeAuto(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', ModBlocks.fluid_duct_neo, 'T', ModItems.tank_steel }); - + + if(!GeneralConfig.enable528) { + addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Items.water_bucket, '2', AL.plate(), '3', DIAMOND.gem() }); + addRecipeAuto(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', ModBlocks.fluid_duct_neo, 'T', ModItems.tank_steel }); + } + //not so Temporary Crappy Recipes - addRecipeAuto(new ItemStack(ModItems.piston_selenium, 1), new Object[] { "SSS", "STS", " D ", 'S', STEEL.plate(), 'T', W.ingot(), 'D', ModItems.bolt_dura_steel }); + addRecipeAuto(new ItemStack(ModItems.piston_selenium, 1), new Object[] { "SSS", "STS", " D ", 'S', STEEL.plate(), 'T', W.ingot(), 'D', DURA.bolt() }); addShapelessAuto(new ItemStack(ModItems.catalyst_clay), new Object[] { IRON.dust(), Items.clay_ball }); addRecipeAuto(new ItemStack(ModItems.singularity_spark, 1), new Object[] { "XAX", "BCB", "XAX", 'X', ModItems.plate_dineutronium, 'A', ModItems.singularity_counter_resonant, 'B', ModItems.singularity_super_heated, 'C', ModItems.black_hole }); addRecipeAuto(new ItemStack(ModItems.singularity_spark, 1), new Object[] { "XBX", "ACA", "XBX", 'X', ModItems.plate_dineutronium, 'A', ModItems.singularity_counter_resonant, 'B', ModItems.singularity_super_heated, 'C', ModItems.black_hole }); @@ -639,15 +623,10 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.ams_core_wormhole, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.plate_dineutronium, 'P', ModItems.powder_spark_mix, 'S', ModItems.singularity }); addRecipeAuto(new ItemStack(ModItems.ams_core_eyeofharmony, 1), new Object[] { "ALA", "LSL", "ALA", 'A', ModItems.plate_dalekanium, 'L', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.LAVA.getID()), 'S', ModItems.black_hole }); addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', ModItems.battery_spark_cell_10000 }); - addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', ModItems.circuit_aluminium }); + addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB) }); addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); - addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModItems.sat_mapper), new Object[] { "H", "B", 'H', ModItems.sat_head_mapper, 'B', ModItems.sat_base }); - addRecipeAuto(new ItemStack(ModItems.sat_scanner), new Object[] { "H", "B", 'H', ModItems.sat_head_scanner, 'B', ModItems.sat_base }); - addRecipeAuto(new ItemStack(ModItems.sat_radar), new Object[] { "H", "B", 'H', ModItems.sat_head_radar, 'B', ModItems.sat_base }); - addRecipeAuto(new ItemStack(ModItems.sat_laser), new Object[] { "H", "B", 'H', ModItems.sat_head_laser, 'B', ModItems.sat_base }); - addRecipeAuto(new ItemStack(ModItems.sat_resonator), new Object[] { "H", "B", 'H', ModItems.sat_head_resonator, 'B', ModItems.sat_base }); + addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', MINGRADE.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', ANY_PLASTIC.ingot() }); addShapelessAuto(new ItemStack(ModItems.sat_mapper), new Object[] { ModBlocks.sat_mapper }); addShapelessAuto(new ItemStack(ModItems.sat_scanner), new Object[] { ModBlocks.sat_scanner }); addShapelessAuto(new ItemStack(ModItems.sat_radar), new Object[] { ModBlocks.sat_radar }); @@ -655,33 +634,21 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.sat_resonator), new Object[] { ModBlocks.sat_resonator }); addShapelessAuto(new ItemStack(ModItems.sat_foeq), new Object[] { ModBlocks.sat_foeq }); addShapelessAuto(new ItemStack(ModItems.geiger_counter), new Object[] { ModBlocks.geiger }); - addShapelessAuto(new ItemStack(ModBlocks.sat_mapper), new Object[] { ModItems.sat_mapper }); - addShapelessAuto(new ItemStack(ModBlocks.sat_scanner), new Object[] { ModItems.sat_scanner }); - addShapelessAuto(new ItemStack(ModBlocks.sat_radar), new Object[] { ModItems.sat_radar }); - addShapelessAuto(new ItemStack(ModBlocks.sat_laser), new Object[] { ModItems.sat_laser }); - addShapelessAuto(new ItemStack(ModBlocks.sat_resonator), new Object[] { ModItems.sat_resonator }); - addShapelessAuto(new ItemStack(ModBlocks.sat_foeq), new Object[] { ModItems.sat_foeq }); - addRecipeAuto(new ItemStack(ModItems.sat_interface), new Object[] { "ISI", "PCP", "PAP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', ModItems.circuit_gold }); - addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', ModItems.circuit_red_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { "MDM", "LCL", "LWL", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', ModItems.circuit_gold, 'W', ModItems.coil_magnetized_tungsten }); - addRecipeAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { "LWL", "LCL", "MDM", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', ModItems.circuit_gold, 'W', ModItems.coil_magnetized_tungsten }); - addShapelessAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { ModBlocks.machine_spp_top }); - addShapelessAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { ModBlocks.machine_spp_bottom }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SDS", "MCM", "MCM", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M',ModItems.coil_advanced_alloy, 'C', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_20), new Object[] { "SDS", "MCM", "MCM", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M', ModItems.coil_copper, 'C', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fwatz_conductor, 'C', ModItems.circuit_targeting_tier6 }); - addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fusion_conductor, 'C', ModItems.circuit_targeting_tier6 }); + addRecipeAuto(new ItemStack(ModItems.sat_interface), new Object[] { "ISI", "PCP", "PAP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + addRecipeAuto(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SCS", "MDM", "SCS", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M',ModItems.coil_advanced_alloy, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR) }); + addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', MAGTUNG.wireDense(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); addRecipeAuto(new ItemStack(ModBlocks.radiobox), new Object[] { "PLP", "PSP", "PLP", 'P', STEEL.plate(), 'S', ModItems.ring_starmetal, 'C', ModItems.fusion_core, 'L', getReflector() }); - addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', CU.wireFine(), 'P', STEEL.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'I', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.leather, 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.pellet_gas, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine_seal), new Object[] { "ISI", "SCS", "ISI", 'I', BIGMT.ingot(), 'S', STAR.ingot(), 'C', ModItems.chlorine_pinwheel }); addRecipeAuto(new ItemStack(ModBlocks.vent_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_cloud, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.vent_pink_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_pink_cloud, 'D', Blocks.dispenser }); - addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "FFF", "BBB", "TTT", 'F', Items.flint, 'B', ModItems.bolt_tungsten, 'T', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ModItems.plate_polymer, 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }); - addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', ModItems.circuit_targeting_tier3 }); + addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "BBB", "BBB", "TTT", 'B', STEEL.bolt(), 'T', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'H', STEEL.shell(), 'W', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.absorber, 1), new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() }); @@ -689,8 +656,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.absorber_green, 1), new Object[] { "ICI", "CPC", "ICI", 'I', ANY_PLASTIC.ingot(), 'C', ModItems.powder_desh_mix, 'P', ModBlocks.absorber_red }); addRecipeAuto(new ItemStack(ModBlocks.absorber_pink, 1), new Object[] { "ICI", "CPC", "ICI", 'I', BIGMT.ingot(), 'C', ModItems.powder_nitan_mix, 'P', ModBlocks.absorber_green }); addRecipeAuto(new ItemStack(ModBlocks.decon, 1), new Object[] { "BGB", "SAS", "BSB", 'B', BE.ingot(), 'G', Blocks.iron_bars, 'S', STEEL.ingot(), 'A', ModBlocks.absorber }); - addRecipeAuto(new ItemStack(ModBlocks.machine_amgen, 1), new Object[] { "ITI", "TAT", "ITI", 'I', ALLOY.ingot(), 'T', ModItems.thermo_element, 'A', ModBlocks.absorber }); - addRecipeAuto(new ItemStack(ModBlocks.machine_geo, 1), new Object[] { "ITI", "PCP", "ITI", 'I', DURA.ingot(), 'T', ModItems.thermo_element, 'P', ModItems.board_copper, 'C', ModBlocks.red_wire_coated }); + addRecipeAuto(new ItemStack(ModBlocks.machine_geo, 1), new Object[] { "ITI", "PCP", "ITI", 'I', DURA.ingot(), 'T', ModItems.thermo_element, 'P', CU.plateCast(), 'C', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.machine_minirtg, 1), new Object[] { "LLL", "PPP", "TRT", 'L', PB.plate(), 'P', PU238.billet(), 'T', ModItems.thermo_element, 'R', ModItems.rtg_unit }); addRecipeAuto(new ItemStack(ModBlocks.machine_powerrtg, 1), new Object[] { "SRS", "PTP", "SRS", 'S', STAR.ingot(), 'R', ModItems.rtg_unit, 'P', PO210.billet(), 'T', TS.dust() }); @@ -709,31 +675,26 @@ public class CraftingManager { for(int i = 1; i < Fluids.getAll().length; ++i) { addShapelessAuto(new ItemStack(ModItems.fluid_duct, 1, i), new Object[] { new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModItems.fluid_identifier, 1, i) }); - - addShapelessAuto(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), - new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), + + addShapelessAuto(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), + new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModItems.fluid_identifier, 1, i) }); - + addShapelessAuto(new ItemStack(ModItems.fluid_duct, 1, i), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_identifier, 1, i) }); - - addShapelessAuto(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), - new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), + + addShapelessAuto(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), + new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_identifier, 1, i) }); } addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 1), new Object[] { new ItemStack(ModItems.battery_su, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 2), new Object[] { new ItemStack(ModItems.battery_su_l, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(Items.redstone, 1), new Object[] { ModItems.redstone_depleted, ModItems.redstone_depleted }); - addRecipeAuto(new ItemStack(Blocks.torch, 3), new Object[] { "L", "S", 'L', LIGNITE.gem(), 'S', KEY_STICK }); addRecipeAuto(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ANY_COKE.gem(), 'S', KEY_STICK }); addRecipeAuto(new ItemStack(ModBlocks.machine_missile_assembly, 1), new Object[] { "PWP", "SSS", "CCC", 'P', ModItems.pedestal_steel, 'W', ModItems.wrench, 'S', STEEL.plate(), 'C', ModBlocks.steel_scaffold }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 4), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete_smooth }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 4), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete }); - addRecipeAuto(new ItemStack(ModBlocks.struct_scaffold, 4), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', new ItemStack(ModBlocks.fluid_duct_neo, 1, OreDictionary.WILDCARD_VALUE), 'C', ModBlocks.red_cable }); + addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 8), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', STEEL.pipe(), 'C', ANY_CONCRETE.any() }); + addRecipeAuto(new ItemStack(ModBlocks.struct_scaffold, 8), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', new ItemStack(ModBlocks.fluid_duct_neo, 1, OreDictionary.WILDCARD_VALUE), 'C', ModBlocks.red_cable }); addRecipeAuto(new ItemStack(ModItems.seg_10, 1), new Object[] { "P", "S", "B", 'P', AL.plate(), 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam }); addRecipeAuto(new ItemStack(ModItems.seg_15, 1), new Object[] { "PP", "SS", "BB", 'P', TI.plate(), 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam }); @@ -742,6 +703,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.obj_tester, 1), new Object[] { "P", "I", "S", 'P', ModItems.polaroid, 'I', ModItems.flame_pony, 'S', STEEL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fence_metal, 6), new Object[] { "BIB", "BIB", 'B', Blocks.iron_bars, 'I', Items.iron_ingot }); + addShapelessAuto(new ItemStack(ModBlocks.fence_metal, 1, 1), new Object[] { new ItemStack(ModBlocks.fence_metal, 1, 0) }); + addShapelessAuto(new ItemStack(ModBlocks.fence_metal, 1, 0), new Object[] { new ItemStack(ModBlocks.fence_metal, 1, 1) }); addShapelessAuto(new ItemStack(ModBlocks.waste_trinitite), new Object[] { new ItemStack(Blocks.sand, 1, 0), ModItems.trinitite }); addShapelessAuto(new ItemStack(ModBlocks.waste_trinitite_red), new Object[] { new ItemStack(Blocks.sand, 1, 1), ModItems.trinitite }); @@ -750,8 +713,8 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.sand_boron, 8), new Object[] { "sand", "sand", "sand", "sand", "sand", "sand", "sand", "sand", B.dust() }); addShapelessAuto(new ItemStack(ModBlocks.sand_lead, 8), new Object[] { "sand", "sand", "sand", "sand", "sand", "sand", "sand", "sand", PB.dust() }); addShapelessAuto(new ItemStack(ModBlocks.sand_quartz, 1), new Object[] { "sand", "sand", NETHERQUARTZ.dust(), NETHERQUARTZ.dust() }); - - addRecipeAuto(new ItemStack(ModItems.rune_blank, 1), new Object[] { "PSP", "SDS", "PSP", 'P', ModItems.powder_magic, 'S', STAR.ingot(), 'D', KEY_CIRCUIT_BISMUTH }); + + addRecipeAuto(new ItemStack(ModItems.rune_blank, 1), new Object[] { "PSP", "SDS", "PSP", 'P', ModItems.powder_magic, 'S', STAR.ingot(), 'D', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); addShapelessAuto(new ItemStack(ModItems.rune_isa, 1), new Object[] { ModItems.rune_blank, ModItems.powder_spark_mix, ModItems.singularity_counter_resonant }); addShapelessAuto(new ItemStack(ModItems.rune_dagaz, 1), new Object[] { ModItems.rune_blank, ModItems.powder_spark_mix, ModItems.singularity }); addShapelessAuto(new ItemStack(ModItems.rune_hagalaz, 1), new Object[] { ModItems.rune_blank, ModItems.powder_spark_mix, ModItems.singularity_super_heated }); @@ -759,8 +722,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.rune_thurisaz, 1), new Object[] { ModItems.rune_blank, ModItems.powder_spark_mix, ModItems.black_hole }); addRecipeAuto(new ItemStack(ModItems.ams_lens, 1), new Object[] { "PDP", "GDG", "PDP", 'P', ModItems.plate_dineutronium, 'G', ModBlocks.reinforced_glass, 'D', Blocks.diamond_block }); addRecipeAuto(new ItemStack(ModItems.ams_catalyst_blank, 1), new Object[] { "TET", "ETE", "TET", 'T', TS.dust(), 'E', EUPH.ingot()}); - addRecipeAuto(new ItemStack(ModItems.ams_focus_limiter, 1), new Object[] { "PDP", "GDG", "PDP", 'P', BIGMT.plate(), 'G', ModBlocks.reinforced_glass, 'D', Blocks.diamond_block }); - addRecipeAuto(new ItemStack(ModItems.ams_muzzle, 1), new Object[] { "GDG", "GDG", "PGP", 'P', BIGMT.plate(), 'G', ModBlocks.reinforced_glass, 'D', Blocks.diamond_block }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_lithium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_isa, ModItems.rune_isa, ModItems.rune_jera, ModItems.rune_jera, LI.dust(), LI.dust(), LI.dust(), LI.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_beryllium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_isa, ModItems.rune_dagaz, ModItems.rune_jera, ModItems.rune_jera, BE.dust(), BE.dust(), BE.dust(), BE.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_copper, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_dagaz, ModItems.rune_jera, ModItems.rune_jera, CU.dust(), CU.dust(), CU.dust(), CU.dust() }); @@ -776,11 +737,11 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_euphemium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_dagaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, EUPH.dust(), EUPH.dust(), EUPH.dust(), EUPH.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', KEY_CIRCUIT_BISMUTH }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', new ItemStack(ModBlocks.sellafield, 1, 5), 'L', ModItems.hull_small_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.block_dineutronium, 'L', STEEL.shell() }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', IRON.plate(), 'P', IRON.ingot() }); addShapelessAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { ModBlocks.barrel_corroded, ANY_TAR.any() }); @@ -788,8 +749,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); - addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); - addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_schrabidium, 'B', ANY_RESISTANTALLOY.plateTriple(), 'H', ModBlocks.watz_cooler }); + addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); + addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ANY_RESISTANTALLOY.plateCast(), 'H', ModBlocks.watz_cooler }); addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch }); addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse }); addRecipeAuto(new ItemStack(ModItems.catalytic_converter, 1), new Object[] { "PCP", "PBP", "PCP", 'P', ANY_HARDPLASTIC.ingot(), 'C', CO.dust(), 'B', BI.ingot() }); @@ -798,13 +759,13 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.upgrade_smelter, 1), new Object[] { "PHP", "CUC", "DTD", 'P', CU.plate(), 'H', Blocks.hopper, 'C', ModItems.coil_tungsten, 'U', ModItems.upgrade_template, 'D', ModItems.coil_copper, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_shredder, 1), new Object[] { "PHP", "CUC", "DTD", 'P', ModItems.motor, 'H', Blocks.hopper, 'C', ModItems.blades_advanced_alloy, 'U', ModItems.upgrade_smelter, 'D', TI.plate(), 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer }); - addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.ACID.getID()), 'H', ModItems.circuit_targeting_tier4, 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); + addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.PEROXIDE.getID()), 'H', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"GNG", "RUR", "GMG", 'R', RUBBER.ingot(), 'M', ModItems.motor, 'G', ModItems.coil_gold, 'N', NB.ingot(), 'U', ModItems.upgrade_template}); - - addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_aluminium, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'U', ModItems.upgrade_template }); - addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 0) }); - addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_red_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 1) }); + + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'U', ModItems.upgrade_template }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 0) }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 1) }); addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_copper, 'P', ModItems.motor, 'U', ModItems.upgrade_template }); addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_gold, 'P', ModItems.motor, 'U', new ItemStack(ModItems.upgrade_ejector, 1, 0) }); addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_saturnite, 'P', ModItems.motor, 'U', new ItemStack(ModItems.upgrade_ejector, 1, 1) }); @@ -812,15 +773,22 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_advanced_alloy, 'C', ModBlocks.fusion_conductor }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ALLOY.wireFine(), 'C', ModBlocks.fusion_conductor }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WW", "WW", 'W', ALLOY.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "PGP", "PCP", "PGP", 'G', GOLD.dust(), 'C', ModBlocks.hadron_coil_alloy, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "WG", "GW", 'W', ALLOY.wireDense(), 'G', GOLD.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "G", "C", "G", 'G', ND.dust(), 'C', ModBlocks.hadron_coil_gold }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_magnetized_tungsten, 'C', ModBlocks.fwatz_conductor }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_schrabidium, 'C', ModBlocks.hadron_coil_magtung }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "WG", "GW", 'W', ND.wireDense(), 'G', GOLD.wireDense() }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WW", "WW", 'W', MAGTUNG.wireDense() }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WWW", "WCW", "WWW", 'W', SA326.wireFine(), 'C', ModBlocks.hadron_coil_magtung }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WS", "SW", 'W', MAGTUNG.wireDense(), 'S', SA326.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidate, 1), new Object[] { " S ", "SCS", " S ", 'S', SBD.dust(), 'C', ModBlocks.hadron_coil_schrabidium }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidate, 1), new Object[] { "WS", "SW", 'W', SBD.wireDense(), 'S', SA326.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_starmetal, 1), new Object[] { "SNS", "SCS", "SNS", 'S', STAR.ingot(), 'N', ModBlocks.hadron_coil_neodymium, 'C', ModBlocks.hadron_coil_schrabidate }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_starmetal, 1), new Object[] { "SW", "WS", 'W', SBD.wireDense(), 'S', STAR.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TCT", "TST", "TCT", 'T', ModItems.coil_tungsten, 'C', ModItems.powder_chlorophyte, 'S', ModBlocks.hadron_coil_starmetal }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_diode, 1), new Object[] { "CIC", "ISI", "CIC", 'C', ModBlocks.hadron_coil_alloy, 'I', STEEL.ingot(), 'S', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TC", "CT", 'T', W.wireDense(), 'C', ModItems.powder_chlorophyte }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_diode, 1), new Object[] { "CIC", "ISI", "CIC", 'C', ModBlocks.hadron_coil_alloy, 'I', STEEL.ingot(), 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModBlocks.hadron_plating, 16), new Object[] { "CC", "CC", 'C', STEEL.plateCast()}); addShapelessAuto(new ItemStack(ModBlocks.hadron_plating_blue, 1), new Object[] { ModBlocks.hadron_plating, KEY_BLUE }); addShapelessAuto(new ItemStack(ModBlocks.hadron_plating_black, 1), new Object[] { ModBlocks.hadron_plating, KEY_BLACK }); @@ -833,17 +801,15 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.hadron_power_100m, 1), new Object[] { "HF", 'H', ModBlocks.hadron_power_10m, 'F', ModItems.fuse }); addRecipeAuto(new ItemStack(ModBlocks.hadron_power_1g, 1), new Object[] { "HF", 'H', ModBlocks.hadron_power_100m, 'F', ModItems.fuse }); addRecipeAuto(new ItemStack(ModBlocks.hadron_power_10g, 1), new Object[] { "HF", 'H', ModBlocks.hadron_power_1g, 'F', ModItems.fuse }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_analysis, 1), new Object[] { "IPI", "PCP", "IPI", 'I', TI.ingot(), 'P', getReflector(), 'C', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_analysis, 1), new Object[] { "IPI", "PCP", "IPI", 'I', TI.ingot(), 'P', getReflector(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addShapelessAuto(new ItemStack(ModBlocks.hadron_analysis_glass, 1), new Object[] { ModBlocks.hadron_analysis, KEY_ANYGLASS }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_access, 1), new Object[] { "IGI", "CRC", "IPI", 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'R', REDSTONE.block(), 'P', ModBlocks.hadron_plating_blue }); - - addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', U.ingot(), 'P', new ItemStack(ModItems.particle_higgs).setStackDisplayName("Higgs Boson (Temporary Recipe)") }); - addRecipeAuto(new ItemStack(ModItems.ingot_euphemium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', PU.ingot(), 'P', new ItemStack(ModItems.particle_dark).setStackDisplayName("Dark Matter (Temporary Recipe)") }); - addRecipeAuto(new ItemStack(ModItems.ingot_dineutronium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', SBD.ingot(), 'P', new ItemStack(ModItems.particle_sparkticle).setStackDisplayName("Sparkticle (Temporary Recipe)") }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_access, 1), new Object[] { "IGI", "CRC", "IPI", 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'R', REDSTONE.block(), 'P', ModBlocks.hadron_plating_blue }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 0), new Object[] { "PCP", "CHC", "PCP", 'P', ANY_RESISTANTALLOY.plateCast(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'H', Fluids.HELIUM4.getDict(16_000) }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 1), new Object[] { "PCP", "CHC", "PCP", 'P', GOLD.plateCast(), 'C', ModItems.motor_bismuth, 'H', new ItemStack(ModBlocks.hadron_cooler, 1, 0) }); addRecipeAuto(new ItemStack(ModBlocks.fireworks, 1), new Object[] { "PPP", "PPP", "WIW", 'P', Items.paper, 'W', KEY_PLANKS, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.safety_fuse, 8), new Object[] { "SSS", "SGS", "SSS", 'S', Items.string, 'G', Items.gunpowder }); - + addRecipeAuto(new ItemStack(ModItems.rbmk_lid, 4), new Object[] { "PPP", "CCC", "PPP", 'P', STEEL.plate(), 'C', ModBlocks.concrete_asbestos }); addRecipeAuto(new ItemStack(ModItems.rbmk_lid_glass, 4), new Object[] { "LLL", "BBB", "P P", 'P', STEEL.plate(), 'L', ModBlocks.glass_lead, 'B', ModBlocks.glass_boron }); addRecipeAuto(new ItemStack(ModItems.rbmk_lid_glass, 4), new Object[] { "BBB", "LLL", "P P", 'P', STEEL.plate(), 'L', ModBlocks.glass_lead, 'B', ModBlocks.glass_boron }); @@ -857,8 +823,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_control, 1), new Object[] { "CBC", "GRG", "CBC", 'G', GRAPHITE.ingot(), 'B', ModItems.motor, 'R', ModBlocks.rbmk_absorber, 'C', CD.ingot() }); } addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_control, 'B', ModItems.nugget_bismuth }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_auto, 1), new Object[] { "C", "R", "D", 'C', ModItems.circuit_targeting_tier1, 'R', ModBlocks.rbmk_control, 'D', ModItems.crt_display }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim, 1), new Object[] { "ZCZ", "ZRZ", "ZCZ", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank, 'Z', ZR.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_auto, 1), new Object[] { "C", "R", "D", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'R', ModBlocks.rbmk_control, 'D', ModItems.crt_display }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim, 1), new Object[] { "ZCZ", "ZRZ", "ZCZ", 'C', STEEL.shell(), 'R', ModBlocks.rbmk_blank, 'Z', ZR.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_rod_reasim, 'B', ANY_RESISTANTALLOY.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_outgasser, 1), new Object[] { "GHG", "GRG", "GTG", 'G', ModBlocks.steel_grate, 'H', Blocks.hopper, 'T', ModItems.tank_steel, 'R', ModBlocks.rbmk_blank }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_storage, 1), new Object[] { "C", "R", "C", 'C', ModBlocks.crate_steel, 'R', ModBlocks.rbmk_blank }); @@ -867,6 +833,17 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_outlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.tank_steel }); //addRecipeAuto(new ItemStack(ModBlocks.rbmk_heatex, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_fuel, 4), new Object[] { "LZL", "L L", "LZL", 'L', PB.plate528(), 'Z', ZR.plateWelded() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_control, 4), new Object[] { "SBS", "MBM", "SBS", 'S', STEEL.plate528(), 'B', B.ingot(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_channel, 4), new Object[] { "CPC", "BPB", "CPC", 'C', CU.ingot(), 'P', STEEL.pipe(), 'B', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_heatex, 4), new Object[] { "CSC", "SMS", "CSC", 'C', CU.plateCast(), 'S', STEEL.plate528(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_heatsink, 4), new Object[] { "SCS", "CRC", "SCS", 'S', BIGMT.plateCast(), 'C', CU.plate(), 'R', RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_reflector, 4), new Object[] { "RLR", "LSL", "RLR", 'R', OreDictManager.getReflector(), 'L', PB.plate528(), 'S', STEEL.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_casing, 4), new Object[] { "LCL", "CSC", "LCL", 'L', PB.plate528(), 'C', ANY_CONCRETE.any(), 'S', STEEL.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', !GeneralConfig.enableExpensiveMode ? DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) : STEEL.heavyComp() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_port, 1), new Object[] { "S", "C", "S", 'S', STEEL.plate(), 'C', ModBlocks.pwr_casing }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_neutron_source, 1), new Object[] { "LRL", "ZRZ", "LRL", 'L', PB.plate528(), 'R', ModItems.billet_ra226be, 'Z', ZR.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk, 8), new Object[] { "R", 'R', ModBlocks.rbmk_blank }); addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk_smooth, 1), new Object[] { "R", 'R', ModBlocks.deco_rbmk }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_blank, 1), new Object[] { "RRR", "R R", "RRR", 'R', ModBlocks.deco_rbmk }); @@ -885,7 +862,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_storage_drum), new Object[] { "LLL", "L#L", "LLL", 'L', PB.plate(), '#', ModItems.tank_steel }); - addRecipeAuto(new ItemStack(ModBlocks.deco_pipe, 6), new Object[] { "PPP", 'P', ModItems.hull_small_steel }); + addRecipeAuto(new ItemStack(ModBlocks.deco_pipe, 6), new Object[] { "PP", 'P', STEEL.pipe() }); addShapelessAuto(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_rim }); addShapelessAuto(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_framed }); addShapelessAuto(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_quad }); @@ -915,7 +892,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.deco_pipe_rim_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim_green, 'C', KEY_GREEN }); addRecipeAuto(new ItemStack(ModBlocks.deco_pipe_quad_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', KEY_GREEN }); addRecipeAuto(new ItemStack(ModBlocks.deco_pipe_framed_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', KEY_GREEN }); - + addRecipeAuto(new ItemStack(ModBlocks.deco_emitter), new Object[] { "IDI", "DRD", "IDI", 'I', IRON.ingot(), 'D', DIAMOND.gem(), 'R', REDSTONE.block() }); addRecipeAuto(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', KEY_SLIME, 'P', Items.paper }); @@ -926,7 +903,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.solid_fuel, 3), new Object[] { Fluids.HEATINGOIL.getDict(16000), KEY_TOOL_CHEMISTRYSET }); addShapelessAuto(new ItemStack(ModItems.canister_full, 2, Fluids.LUBRICANT.getID()), new Object[] { Fluids.HEATINGOIL.getDict(1000), Fluids.UNSATURATEDS.getDict(1000), ModItems.canister_empty, ModItems.canister_empty, KEY_TOOL_CHEMISTRYSET }); - addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', ModItems.board_copper }); + addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', CU.plateCast() }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ) }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato }); @@ -935,26 +912,26 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.charger), new Object[] { "G", "S", "C", 'G', Items.glowstone_dust, 'S', STEEL.ingot(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.charger, 16), new Object[] { "G", "S", "C", 'G', Blocks.glowstone, 'S', STEEL.block(), 'C', ModItems.coil_copper_torus }); - addRecipeAuto(new ItemStack(ModBlocks.press_preheater), new Object[] { "CCC", "SLS", "TST", 'C', ModItems.board_copper, 'S', Blocks.stone, 'L', Fluids.LAVA.getDict(1000), 'T', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.fluid_identifier_multi), new Object[] { "D", "C", "P", 'D', "dye", 'C', ModItems.circuit_aluminium, 'P', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.press_preheater), new Object[] { "CCC", "SLS", "TST", 'C', CU.plate(), 'S', Blocks.stone, 'L', Fluids.LAVA.getDict(1000), 'T', W.ingot() }); + addRecipeAuto(new ItemStack(ModItems.fluid_identifier_multi), new Object[] { "D", "C", "P", 'D', "dye", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'P', IRON.plate() }); - addShapelessAuto(ItemBattery.getEmptyBattery(ModItems.anchor_remote), new Object[] { DIAMOND.gem(), ModItems.ducttape, ModItems.circuit_red_copper }); + addShapelessAuto(ItemBattery.getEmptyBattery(ModItems.anchor_remote), new Object[] { DIAMOND.gem(), ModItems.ducttape, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.teleanchor), new Object[] { "ODO", "EAE", "ODO", 'O', Blocks.obsidian, 'D', DIAMOND.gem(), 'E', ModItems.powder_magic, 'A', ModItems.gem_alexandrite }); - addRecipeAuto(new ItemStack(ModBlocks.field_disturber), new Object[] { "ICI", "CAC", "ICI", 'I', STAR.ingot(), 'C', KEY_CIRCUIT_BISMUTH, 'A', ModItems.gem_alexandrite }); - + addRecipeAuto(new ItemStack(ModBlocks.field_disturber), new Object[] { "ICI", "CAC", "ICI", 'I', STAR.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'A', ModItems.gem_alexandrite }); + addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish }); - addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModBlocks.muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); + addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModItems.upgrade_muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC, 4), new Object[] { " I ", "CPC", " I ", 'I', ANY_RESISTANTALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor }); - + Object[] craneCasing = new Object[] { Blocks.stonebrick, 1, IRON.ingot(), 2, STEEL.ingot(), 4 }; - + for(int i = 0; i < craneCasing.length / 2; i++) { Object casing = craneCasing[i * 2]; int amount = (int) craneCasing[i * 2 + 1]; @@ -965,9 +942,33 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crane_boxer), new Object[] { "WWW", "WPW", "CCC", 'W', KEY_PLANKS, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'C', ModBlocks.conveyor }); addRecipeAuto(new ItemStack(ModBlocks.crane_unboxer), new Object[] { "WWW", "WPW", "CCC", 'W', KEY_STICK, 'P', Items.shears, 'C', ModBlocks.conveyor }); - addRecipeAuto(new ItemStack(ModBlocks.crane_router), new Object[] { "PIP", "ICI", "PIP", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper }); - addRecipeAuto(new ItemStack(ModBlocks.crane_splitter), new Object[] { "III", "PCP", "III", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', STEEL.ingot(), 'C', ModItems.circuit_aluminium }); - + addRecipeAuto(new ItemStack(ModBlocks.crane_router), new Object[] { "PIP", "ICI", "PIP", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', ModItems.plate_polymer, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + addRecipeAuto(new ItemStack(ModBlocks.crane_splitter), new Object[] { "III", "PCP", "III", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', STEEL.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) }); + addRecipeAuto(new ItemStack(ModBlocks.crane_partitioner), new Object[] { " M ", "BCB", 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'B', ModBlocks.conveyor, 'C', ModBlocks.crate_steel }); + + addRecipeAuto(new ItemStack(ModBlocks.machine_conveyor_press), new Object[] { "CPC", "CBC", "CCC", 'C', CU.plate(), 'P', ModBlocks.machine_epress, 'B', ModBlocks.conveyor }); + addRecipeAuto(new ItemStack(ModBlocks.radar_screen), new Object[] { "PCP", "SRS", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'S', STEEL.plate(), 'R', ModItems.crt_display }); + addRecipeAuto(new ItemStack(ModItems.radar_linker), new Object[] { "S", "C", "P", 'S', ModItems.crt_display, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', STEEL.plate() }); + + addRecipeAuto(new ItemStack(ModItems.drone, 2, EnumDroneType.PATROL.ordinal()), new Object[] { " P ", "HCH", " B ", 'P', ANY_PLASTIC.ingot(), 'H', STEEL.pipe(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'B', STEEL.shell() }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', TI.plateWelded(), 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', TI.plateWelded(), 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); + addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); + addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), new Object[] { "E", "D", 'E', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); + + addRecipeAuto(new ItemStack(ModItems.drone_linker), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint, 4), new Object[] { "G", "T", "C", 'G', KEY_GREEN, 'T', Blocks.redstone_torch, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint_request, 4), new Object[] { "G", "T", "C", 'G', KEY_BLUE, 'T', Blocks.redstone_torch, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate_requester), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_YELLOW }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate_provider), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_ORANGE }); + addRecipeAuto(new ItemStack(ModBlocks.drone_dock), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + + addRecipeAuto(new ItemStack(ModItems.ball_resin), new Object[] { "DD", "DD", 'D', Blocks.yellow_flower }); + addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), new Object[] { ModItems.ingot_chainsteel, ModItems.ingot_bismuth, ModItems.gem_alexandrite, ModItems.gem_alexandrite }); @@ -987,17 +988,21 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mold_base), new Object[] { " B ", "BIB", " B ", 'B', ModItems.ingot_firebrick, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.brick_fire), new Object[] { "BB", "BB", 'B', ModItems.ingot_firebrick }); addShapelessAuto(new ItemStack(ModItems.ingot_firebrick, 4), new Object[] { ModBlocks.brick_fire }); - + + addRecipeAuto(new ItemStack(ModBlocks.machine_drain), new Object[] { "PPP", "T ", "PPP", 'P', STEEL.plateCast(), 'T', ModItems.tank_steel }); + addRecipeAuto(new ItemStack(ModBlocks.filing_cabinet, 1, DecoCabinetEnum.STEEL.ordinal()), new Object[] { " P ", "PIP", " P ", 'P', STEEL.plate(), 'I', ModItems.plate_polymer }); - + addRecipeAuto(new ItemStack(ModBlocks.vinyl_tile, 4), new Object[] { " I ", "IBI", " I ", 'I', ModItems.plate_polymer, 'B', ModBlocks.brick_light }); addRecipeAuto(new ItemStack(ModBlocks.vinyl_tile, 4, 1), new Object[] { "BB", "BB", 'B', new ItemStack(ModBlocks.vinyl_tile, 1, 0) }); addShapelessAuto(new ItemStack(ModBlocks.vinyl_tile), new Object[] { new ItemStack(ModBlocks.vinyl_tile, 1, 1) }); - + addShapelessAuto(new ItemStack(ModItems.upgrade_5g), new Object[] { ModItems.upgrade_template, ModItems.gem_alexandrite }); - + addShapelessAuto(new ItemStack(ModItems.bdcl), new Object[] { ANY_TAR.any(), Fluids.WATER.getDict(1_000), KEY_WHITE }); - + + addShapelessAuto(new ItemStack(ModItems.book_of_), new Object[] { DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE1), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE2), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE3), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE4), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE5), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE6), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE7), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE8), ModItems.egg_balefire }); + if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting) { addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); addShapelessAuto(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, KNO.dust() }); @@ -1009,6 +1014,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.ore_nether_uranium, 8), new Object[] { "OOO", "OBO", "OOO", 'O', ModBlocks.ore_nether_uranium_scorched, 'B', Items.water_bucket }); addShapelessAuto(new ItemStack(ModBlocks.ore_gneiss_uranium, 1), new Object[] { ModBlocks.ore_gneiss_uranium_scorched, Items.water_bucket }); addRecipeAuto(new ItemStack(ModBlocks.ore_gneiss_uranium, 8), new Object[] { "OOO", "OBO", "OOO", 'O', ModBlocks.ore_gneiss_uranium_scorched, 'B', Items.water_bucket }); + addShapelessAuto(new ItemStack(ModBlocks.ore_uranium, 1), new Object[] { ModBlocks.ore_sellafield_uranium_scorched, Items.water_bucket }); + addRecipeAuto(new ItemStack(ModBlocks.ore_uranium, 8), new Object[] { "OOO", "OBO", "OOO", 'O', ModBlocks.ore_sellafield_uranium_scorched, 'B', Items.water_bucket }); addRecipeAuto(new ItemStack(ModItems.plate_iron, 4), new Object[] { "##", "##", '#', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_gold, 4), new Object[] { "##", "##", '#', GOLD.ingot() }); @@ -1023,34 +1030,44 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.plate_combine_steel, 4), new Object[] { "##", "##", '#', CMB.ingot() }); addRecipeAuto(new ItemStack(ModItems.neutron_reflector, 4), new Object[] { "##", "##", '#', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.wire_aluminium, 16), new Object[] { "###", '#', AL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.wire_copper, 16), new Object[] { "###", '#', CU.ingot() }); - addRecipeAuto(new ItemStack(ModItems.wire_tungsten, 16), new Object[] { "###", '#', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.wire_red_copper, 16), new Object[] { "###", '#', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(ModItems.wire_advanced_alloy, 16), new Object[] { "###", '#', ALLOY.ingot() }); - addRecipeAuto(new ItemStack(ModItems.wire_gold, 16), new Object[] { "###", '#', GOLD.ingot() }); - addRecipeAuto(new ItemStack(ModItems.wire_schrabidium, 16), new Object[] { "###", '#', SA326.ingot() }); - + for(NTMMaterial mat : Mats.orderedList) { + if(mat.autogen.contains(MaterialShapes.WIRE)) for(String name : mat.names) addRecipeAuto(new ItemStack(ModItems.wire_fine, 24, mat.id), new Object[] { "###", '#', MaterialShapes.INGOT.prefixes[0] + name }); + } + addRecipeAuto(new ItemStack(ModItems.book_of_), new Object[] { "BGB", "GAG", "BGB", 'B', ModItems.egg_balefire_shard, 'G', GOLD.ingot(), 'A', Items.book }); } + for(NTMMaterial mat : Mats.orderedList) { + if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) addRecipeAuto(new ItemStack(ModItems.bolt, 16, mat.id), new Object[] { "#", "#", '#', MaterialShapes.INGOT.prefixes[0] + name }); + } + if(!GeneralConfig.enable528) { - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', ModItems.circuit_targeting_tier3, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); - addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', ModItems.circuit_red_copper, 'I', Blocks.iron_bars, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); - addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', ModItems.circuit_targeting_tier4, 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); - addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', ModItems.wire_tungsten, 'P', PB.plate(), 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.magnetron }); - addRecipeAuto(new ItemStack(ModBlocks.reactor_ejector, 1), new Object[] { "CLC", "MHM", "CLC", 'C', ModBlocks.brick_concrete, 'L', PB.plate(), 'M', ModItems.motor, 'H', ModBlocks.reactor_hatch }); - addRecipeAuto(new ItemStack(ModBlocks.reactor_inserter, 1), new Object[] { "CLC", "MHM", "CLC", 'C', ModBlocks.brick_concrete, 'L', CU.plate(), 'M', ModItems.motor, 'H', ModBlocks.reactor_hatch }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', ModItems.circuit_targeting_tier3 }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', ModItems.circuit_targeting_tier3 }); - addRecipeAuto(new ItemStack(ModBlocks.hadron_core, 1), new Object[] { "CCC", "DSD", "CCC", 'C', ModBlocks.hadron_coil_alloy, 'D', ModBlocks.hadron_diode, 'S', ModItems.circuit_schrabidium }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank }); + addRecipeAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { "MDM", "LCL", "LWL", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'W', ModItems.coil_magnetized_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { "LWL", "LCL", "MDM", 'M', MAGTUNG.ingot(), 'D', ModItems.plate_desh, 'L', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'W', ModItems.coil_magnetized_tungsten }); + addShapelessAuto(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { ModBlocks.machine_spp_top }); + addShapelessAuto(new ItemStack(ModBlocks.machine_spp_top), new Object[] { ModBlocks.machine_spp_bottom }); + addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); + addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); + addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); + addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', W.wireFine(), 'P', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'M', ModItems.magnetron }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_core, 1), new Object[] { "CCC", "DSD", "CCC", 'C', ModBlocks.hadron_coil_alloy, 'D', ModBlocks.hadron_diode, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', STEEL.shell(), 'R', ModBlocks.rbmk_blank }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_rod, 'B', ModItems.nugget_bismuth }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', ModItems.board_copper, 'P', ModItems.pipes_steel, 'R', ModBlocks.rbmk_blank }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_heater, 1), new Object[] { "CIC", "PRP", "CIC", 'C', ModItems.board_copper, 'P', ModItems.pipes_steel, 'R', ModBlocks.rbmk_blank, 'I', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', CU.pipe(), 'P', CU.shell(), 'R', ModBlocks.rbmk_blank }); + addRecipeAuto(new ItemStack(ModBlocks.rbmk_heater, 1), new Object[] { "CIC", "PRP", "CIC", 'C', CU.pipe(), 'P', STEEL.shell(), 'R', ModBlocks.rbmk_blank, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_cooler, 1), new Object[] { "IGI", "GCG", "IGI", 'C', ModBlocks.rbmk_blank, 'I', ModItems.plate_polymer, 'G', ModBlocks.steel_grate }); } - + + addShapelessAuto(new ItemStack(ModItems.launch_code), new Object[] { + new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), + new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), + new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), + new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece), + DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) + }); + addShapelessAuto(ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CHIPSET), new Object[] { ModItems.circuit_star_piece.stackFromEnum(ScrapType.BRIDGE_BIOS), ModItems.circuit_star_piece.stackFromEnum(ScrapType.BRIDGE_BUS), @@ -1060,7 +1077,7 @@ public class CraftingManager { ModItems.circuit_star_piece.stackFromEnum(ScrapType.BRIDGE_NORTH), ModItems.circuit_star_piece.stackFromEnum(ScrapType.BRIDGE_SOUTH) }); - + addShapelessAuto(ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CPU), new Object[] { ModItems.circuit_star_piece.stackFromEnum(ScrapType.CPU_CACHE), ModItems.circuit_star_piece.stackFromEnum(ScrapType.CPU_CLOCK), @@ -1069,7 +1086,7 @@ public class CraftingManager { ModItems.circuit_star_piece.stackFromEnum(ScrapType.CPU_REGISTER), ModItems.circuit_star_piece.stackFromEnum(ScrapType.CPU_SOCKET) }); - + addShapelessAuto(ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.RAM), new Object[] { ModItems.circuit_star_piece.stackFromEnum(ScrapType.MEM_SOCKET), ModItems.circuit_star_piece.stackFromEnum(ScrapType.MEM_16K_A), @@ -1077,55 +1094,115 @@ public class CraftingManager { ModItems.circuit_star_piece.stackFromEnum(ScrapType.MEM_16K_C), ModItems.circuit_star_piece.stackFromEnum(ScrapType.MEM_16K_D) }); - + + addShapelessAuto(ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CARD), new Object[] { + ModItems.circuit_star_piece.stackFromEnum(ScrapType.CARD_BOARD), + ModItems.circuit_star_piece.stackFromEnum(ScrapType.CARD_PROCESSOR) + }); + addShapelessAuto(new ItemStack(ModItems.circuit_star), new Object[] { ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CHIPSET), ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CPU), ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.RAM), + ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CARD), ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_TRANSISTOR), + ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_CONVERTER), ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_BLANK) }); + + addRecipeAuto(new ItemStack(ModItems.sliding_blast_door_skin), "SPS", "DPD", "SPS", 'P', Items.paper, 'D', "dye", 'S', STEEL.plate()); + addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin, 1, 1), new ItemStack(ModItems.sliding_blast_door_skin, 1, 0)); + addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin, 1, 2), new ItemStack(ModItems.sliding_blast_door_skin, 1, 1)); + addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin), new ItemStack(ModItems.sliding_blast_door_skin, 1, 2)); + + addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 0), " I ", "IPI", " I ", 'I', STEEL.ingot(), 'P', STEEL.plateCast()); + addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 1), " I ", "IPI", " I ", 'I', ALLOY.ingot(), 'P', ALLOY.plateCast()); + addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 2), " I ", "IPI", " I ", 'I', DESH.ingot(), 'P', DESH.plateCast()); + addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 3), " I ", "IPI", " I ", 'I', ANY_RESISTANTALLOY.ingot(), 'P', ANY_RESISTANTALLOY.plateCast()); + + for(int i = 0; i < 4; i++) { + addRecipeAuto(new ItemStack(ModBlocks.cm_sheet, 16, i), "BB", "BB", 'B', new ItemStack(ModBlocks.cm_block, 1, i)); + addRecipeAuto(new ItemStack(ModBlocks.cm_tank, 4, i), " B ", "BGB", " B ", 'B', new ItemStack(ModBlocks.cm_block, 1, i), 'G', KEY_ANYGLASS); + addRecipeAuto(new ItemStack(ModBlocks.cm_port, 1, i), "P", "B", "P", 'B', new ItemStack(ModBlocks.cm_block, 1, i), 'P', IRON.plate()); + } + + addRecipeAuto(new ItemStack(ModBlocks.cm_engine, 1, 0), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.motor); + addRecipeAuto(new ItemStack(ModBlocks.cm_engine, 1, 1), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.motor_desh); + addRecipeAuto(new ItemStack(ModBlocks.cm_engine, 1, 2), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.motor_bismuth); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 0), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE)); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 1), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG)); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 2), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC)); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 3), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED)); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 4), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID)); + addRecipeAuto(new ItemStack(ModBlocks.cm_flux, 1, 0), "NNN", "ZCZ", "NNN", 'Z', ZR.plateCast(), 'N', ModItems.neutron_reflector, 'C', ModItems.reactor_core); + addRecipeAuto(new ItemStack(ModBlocks.cm_heat, 1, 0), "PCP", "PCP", "PCP", 'P', ModItems.plate_polymer, 'C', CU.ingot()); + + addShapelessAuto(new ItemStack(ModItems.missile_soyuz), new ItemStack(ModItems.missile_carrier)); + + addRecipeAuto(new ItemStack(ModBlocks.plushie, 1, PlushieType.YOMI.ordinal()), "LCR", 'L', "cropCarrot", 'C', ModItems.rag, 'R', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE)); + addRecipeAuto(new ItemStack(ModBlocks.plushie, 1, PlushieType.NUMBERNINE.ordinal()), " C ", "LCR", " C ", 'L', ModItems.cigarette, 'C', ModItems.rag, 'R', COAL.gem()); } - + public static void crumple() { - - if(Loader.isModLoaded("Mekanism")) { - + + List targets = new ArrayList(); + + if(GeneralConfig.enableMekanismChanges) { + + if(Loader.isModLoaded("Mekanism")) { + Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); + Item disassembler = (Item) Item.itemRegistry.getObject("Mekanism:AtomicDisassembler"); + targets.add(new ItemStack(mb, 1, 4)); // digiminer + targets.add(new ItemStack(disassembler)); // atomic disassembler + } + + if(Loader.isModLoaded("MekanismGenerators")) { + Block mb = (Block) Block.blockRegistry.getObject("MekanismGenerators:Generator"); + targets.add(new ItemStack(mb, 1, 6)); // wind turbine + } + List toDestroy = new ArrayList(); - - Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); - ItemStack digiminer = new ItemStack(mb, 1, 4); - + for(Object o : net.minecraft.item.crafting.CraftingManager.getInstance().getRecipeList()) { - + if(o instanceof IRecipe) { IRecipe rec = (IRecipe)o; ItemStack stack = rec.getRecipeOutput(); - - if(stack != null && stack.getItem() == digiminer.getItem() && stack.getItemDamage() == digiminer.getItemDamage()) { - toDestroy.add(rec); + + for(ItemStack target : targets) { + if(stack != null && stack.getItem() == target.getItem() && stack.getItemDamage() == target.getItemDamage()) toDestroy.add(rec); } } } - + if(toDestroy.size() > 0) { net.minecraft.item.crafting.CraftingManager.getInstance().getRecipeList().removeAll(toDestroy); } + + if(Loader.isModLoaded("Mekanism")) { + Item disassembler = (Item) Item.itemRegistry.getObject("Mekanism:AtomicDisassembler"); + if(disassembler != null) addRecipeAuto(new ItemStack(disassembler, 1), "GAG", "EIE", " I ", 'G', GOLD.plateCast(), 'A', "alloyUltimate", 'E', "battery", 'I', "ingotRefinedObsidian"); + } + + if(Loader.isModLoaded("MekanismGenerators")) { + Block generator = (Block) Block.blockRegistry.getObject("MekanismGenerators:Generator"); + if(generator != null) addRecipeAuto(new ItemStack(generator, 1, 6), " T ", "TAT", "BCB", 'T', TI.plateCast(), 'A', "alloyAdvanced", 'B', "battery", 'C', ANY_PLASTIC.ingot()); + } } } - + //option 1: find every entry that needs to be ore dicted and change the recipe method by hand and commit to doing it right in the future //option 2: just make the computer do all the stupid work for us public static void addRecipeAuto(ItemStack result, Object... ins) { - + boolean shouldUseOD = false; boolean engage = false; - + for(int i = 0; i < ins.length; i++) { Object ingredient = ins[i]; - + if(ingredient instanceof String) { - + if(engage) { shouldUseOD = true; break; @@ -1134,26 +1211,26 @@ public class CraftingManager { engage = true; } } - + if(shouldUseOD) GameRegistry.addRecipe(new ShapedOreRecipe(result, ins)); else GameRegistry.addRecipe(result, ins); } - + public static void addShapelessAuto(ItemStack result, Object... ins) { - + boolean shouldUseOD = false; - + for(int i = 0; i < ins.length; i ++) { Object ingredient = ins[i]; - + if(ingredient instanceof String) { shouldUseOD = true; break; } } - + if(shouldUseOD) GameRegistry.addRecipe(new ShapelessOreRecipe(result, ins)); else diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 19c93acf9..8f818c9a0 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1,5 +1,66 @@ package com.hbm.main; +import com.google.common.collect.ImmutableList; +import com.hbm.blocks.BlockEnums.EnumStoneType; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockToolConversion; +import com.hbm.commands.*; +import com.hbm.config.*; +import com.hbm.crafting.RodRecipes; +import com.hbm.creativetabs.*; +import com.hbm.entity.EntityMappings; +import com.hbm.entity.grenade.*; +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.mob.siege.SiegeTier; +import com.hbm.handler.*; +import com.hbm.handler.imc.IMCBlastFurnace; +import com.hbm.handler.imc.IMCCentrifuge; +import com.hbm.handler.imc.IMCCrystallizer; +import com.hbm.handler.imc.IMCHandler; +import com.hbm.handler.neutron.NeutronHandler; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.hazard.HazardRegistry; +import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.recipes.*; +import com.hbm.inventory.recipes.anvil.AnvilRecipes; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAchievementType; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemFertilizer; +import com.hbm.items.weapon.ItemGenericGrenade; +import com.hbm.lib.HbmWorld; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.potion.HbmPotion; +import com.hbm.saveddata.satellites.Satellite; +import com.hbm.tileentity.TileMappings; +import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; +import com.hbm.tileentity.bomb.TileEntityNukeCustom; +import com.hbm.tileentity.machine.TileEntityNukeFurnace; +import com.hbm.tileentity.machine.rbmk.RBMKDials; +import com.hbm.util.*; +import com.hbm.world.biome.BiomeGenCraterBase; +import com.hbm.world.feature.BedrockOre; +import com.hbm.world.feature.OreCave; +import com.hbm.world.feature.OreLayer3D; +import com.hbm.world.feature.SchistStratum; +import com.hbm.world.generator.CellularDungeonFactory; +import cpw.mods.fml.common.*; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.Mod.Metadata; +import cpw.mods.fml.common.event.*; +import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; +import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; import net.minecraft.block.BlockDispenser; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; @@ -25,12 +86,9 @@ import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.util.EnumHelper; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.Mod.Metadata; -import cpw.mods.fml.common.ModMetadata; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.io.File; import java.util.HashMap; @@ -39,74 +97,9 @@ import java.util.List; import java.util.Map.Entry; import java.util.Random; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import com.google.common.collect.ImmutableList; -import com.hbm.blocks.BlockEnums.EnumStoneType; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockMotherOfAllOres; -import com.hbm.blocks.generic.BlockToolConversion; -import com.hbm.commands.CommandDebugChunkLoad; -import com.hbm.commands.CommandReloadRecipes; -import com.hbm.config.*; -import com.hbm.crafting.RodRecipes; -import com.hbm.creativetabs.*; -import com.hbm.entity.EntityMappings; -import com.hbm.entity.grenade.*; -import com.hbm.entity.logic.*; -import com.hbm.entity.mob.siege.*; -import com.hbm.handler.*; -import com.hbm.handler.imc.*; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.hazard.HazardRegistry; -import com.hbm.inventory.*; -import com.hbm.inventory.OreDictManager.DictFrame; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.recipes.*; -import com.hbm.inventory.recipes.anvil.AnvilRecipes; -import com.hbm.inventory.recipes.loader.SerializableRecipe; -import com.hbm.items.ModItems; -import com.hbm.items.tool.ItemFertilizer; -import com.hbm.items.weapon.ItemGenericGrenade; -import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; -import com.hbm.items.ItemEnums.EnumAchievementType; -import com.hbm.lib.HbmWorld; -import com.hbm.lib.Library; -import com.hbm.lib.RefStrings; -import com.hbm.packet.PacketDispatcher; -import com.hbm.potion.HbmPotion; -import com.hbm.saveddata.satellites.Satellite; -import com.hbm.tileentity.TileMappings; -import com.hbm.tileentity.bomb.TileEntityNukeCustom; -import com.hbm.tileentity.machine.*; -import com.hbm.tileentity.machine.rbmk.RBMKDials; -import com.hbm.util.AchievementHandler; -import com.hbm.util.ArmorUtil; -import com.hbm.util.Compat; -import com.hbm.util.StatHelper; -import com.hbm.util.SuicideThreadDump; -import com.hbm.world.feature.*; -import com.hbm.world.generator.CellularDungeonFactory; - -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent; -import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; -import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartedEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; - @Mod(modid = RefStrings.MODID, name = RefStrings.NAME, version = RefStrings.VERSION) public class MainRegistry { - + @Instance(RefStrings.MODID) public static MainRegistry instance; @@ -128,7 +121,7 @@ public class MainRegistry { public static ToolMaterial tMatCMB = EnumHelper.addToolMaterial("HBM_CMB", 3, 8500, 40.0F, 55F, 100); public static ToolMaterial tMatElec = EnumHelper.addToolMaterial("HBM_ELEC", 3, 0, 30.0F, 12.0F, 2); public static ToolMaterial tMatDesh = EnumHelper.addToolMaterial("HBM_DESH", 2, 0, 7.5F, 2.0F, 10); - public static ToolMaterial tMatCobalt = EnumHelper.addToolMaterial("HBM_COBALT", 3, 750, 9.0F, 2.5F, 15); + public static ToolMaterial tMatCobalt = EnumHelper.addToolMaterial("HBM_COBALT", 3, 750, 9.0F, 2.5F, 60); public static ToolMaterial enumToolMaterialSaw = EnumHelper.addToolMaterial("SAW", 2, 750, 2.0F, 3.5F, 25); public static ToolMaterial enumToolMaterialBat = EnumHelper.addToolMaterial("BAT", 0, 500, 1.5F, 3F, 25); @@ -143,7 +136,6 @@ public class MainRegistry { public static ToolMaterial enumToolMaterialMultitool = EnumHelper.addToolMaterial("MULTITOOL", 3, 5000, 25F, 5.5F, 25); // Armor Materials - public static ArmorMaterial enumArmorMaterialEmerald = EnumHelper.addArmorMaterial("HBM_TEST", 2500, new int[] { 3, 8, 6, 3 }, 30); public static ArmorMaterial aMatSchrab = EnumHelper.addArmorMaterial("HBM_SCHRABIDIUM", 100, new int[] { 3, 8, 6, 3 }, 50); public static ArmorMaterial aMatEuph = EnumHelper.addArmorMaterial("HBM_EUPHEMIUM", 15000000, new int[] { 3, 8, 6, 3 }, 100); public static ArmorMaterial aMatHaz = EnumHelper.addArmorMaterial("HBM_HAZMAT", 60, new int[] { 2, 5, 4, 1 }, 5); @@ -157,12 +149,12 @@ public class MainRegistry { public static ArmorMaterial aMatCMB = EnumHelper.addArmorMaterial("HBM_CMB", 60, new int[] { 3, 8, 6, 3 }, 50); public static ArmorMaterial aMatAus3 = EnumHelper.addArmorMaterial("HBM_AUSIII", 375, new int[] { 2, 6, 5, 2 }, 0); public static ArmorMaterial aMatSecurity = EnumHelper.addArmorMaterial("HBM_SECURITY", 100, new int[] { 3, 8, 6, 3 }, 15); - public static ArmorMaterial aMatCobalt = EnumHelper.addArmorMaterial("HBM_COBALT", 70, new int[] { 3, 8, 6, 3 }, 25); + public static ArmorMaterial aMatCobalt = EnumHelper.addArmorMaterial("HBM_COBALT", 70, new int[] { 3, 8, 6, 3 }, 60); public static ArmorMaterial aMatStarmetal = EnumHelper.addArmorMaterial("HBM_STARMETAL", 150, new int[] { 3, 8, 6, 3 }, 100); public static ArmorMaterial aMatBismuth = EnumHelper.addArmorMaterial("HBM_BISMUTH", 100, new int[] { 3, 8, 6, 3 }, 100); // Creative Tabs - + public static CreativeTabs partsTab = new PartsTab(CreativeTabs.getNextID(), "tabParts"); // ingots, nuggets, wires, machine parts public static CreativeTabs controlTab = new ControlTab(CreativeTabs.getNextID(), "tabControl"); // items that belong in machines, fuels, etc public static CreativeTabs templateTab = new TemplateTab(CreativeTabs.getNextID(), "tabTemplate"); // templates, siren tracks @@ -177,9 +169,7 @@ public class MainRegistry { public static Achievement achSacrifice; public static Achievement achImpossible; public static Achievement achTOB; - public static Achievement achFreytag; public static Achievement achPotato; - public static Achievement achC44; public static Achievement achC20_5; public static Achievement achFiend; public static Achievement achFiend2; @@ -190,10 +180,10 @@ public class MainRegistry { public static Achievement achSomeWounds; public static Achievement achSlimeball; public static Achievement achSulfuric; - public static Achievement achWitchtaunter; public static Achievement achGoFish; public static Achievement achNo9; public static Achievement achInferno; + public static Achievement achRedRoom; public static Achievement bobHidden; public static Achievement horizonsStart; public static Achievement horizonsEnd; @@ -208,7 +198,7 @@ public class MainRegistry { public static Achievement digammaKnow; public static Achievement digammaKauaiMoho; public static Achievement digammaUpOnTop; - + public static Achievement achBurnerPress; public static Achievement achBlastFurnace; public static Achievement achAssembly; @@ -240,25 +230,26 @@ public class MainRegistry { public static Achievement achBreeding; public static Achievement achFusion; public static Achievement achMeltdown; - + public static int generalOverride = 0; public static int polaroidID = 1; - + public static long startupTime = 0; public static File configDir; public static File configHbmDir; - Random rand = new Random(); + public Random rand = new Random(); @EventHandler public void PreLoad(FMLPreInitializationEvent PreEvent) { - + CrashHelper.init(); + startupTime = System.currentTimeMillis(); configDir = PreEvent.getModConfigurationDirectory(); configHbmDir = new File(configDir.getAbsolutePath() + File.separatorChar + "hbmConfig"); if(!configHbmDir.exists()) configHbmDir.mkdir(); - + logger.info("Let us celebrate the fact that the logger finally works again!"); // Reroll Polaroid @@ -270,10 +261,15 @@ public class MainRegistry { polaroidID = rand.nextInt(18) + 1; } + //ShadyUtil.test(); loadConfig(PreEvent); HbmPotion.init(); - + + /* For whichever fucking reason, replacing the bolt items with a bolt autogen broke all autogen items, most likely due to the load order. + * This "fix" just makes sure that the material system is loaded first no matter what. */ + Mats.MAT_STONE.getUnlocalizedName(); Fluids.init(); + proxy.registerPreRenderInfo(); ModBlocks.mainRegistry(); ModItems.mainRegistry(); proxy.registerRenderInfo(); @@ -284,18 +280,16 @@ public class MainRegistry { Satellite.register(); HTTPHandler.loadStats(); CraftingManager.mainRegistry(); - AssemblerRecipes.preInit(PreEvent.getModConfigurationDirectory()); SiegeTier.registerTiers(); HazardRegistry.registerItems(); HazardRegistry.registerTrafos(); - OreDictManager.registerGroups(); - Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8"); - Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e"); - Library.superuser.add("937c9804-e11f-4ad2-a5b1-42e62ac73077"); - Library.superuser.add("3af1c262-61c0-4b12-a4cb-424cc3a9c8c0"); - Library.superuser.add("4729b498-a81c-42fd-8acd-20d6d9f759e0"); - Library.superuser.add("c3f5e449-6d8c-4fe3-acc9-47ef50e7e7ae"); + OreDictManager oreMan = new OreDictManager(); + MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent + OreDictManager.registerGroups(); //important to run first + OreDictManager.registerOres(); + + if(WorldConfig.enableCraterBiomes) BiomeGenCraterBase.initDictionary(); aMatSchrab.customCraftingMaterial = ModItems.ingot_schrabidium; aMatHaz.customCraftingMaterial = ModItems.hazmat_cloth; @@ -322,12 +316,13 @@ public class MainRegistry { tMatDesh.setRepairItem(new ItemStack(ModItems.ingot_desh)); NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GUIHandler()); - + TileMappings.writeMappings(); MachineDynConfig.initialize(); - + TileEntityLaunchPadBase.registerLaunchables(); + for(Entry, String[]> e : TileMappings.map.entrySet()) { - + if(e.getValue().length == 1) GameRegistry.registerTileEntity(e.getKey(), e.getValue()[0]); else @@ -339,7 +334,9 @@ public class MainRegistry { ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.bathwater), 1, 1, 1)); ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.serum), 1, 1, 5)); ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.no9), 1, 1, 5)); + ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.key_red_cracked), 1, 1, 5)); ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.heart_piece), 1, 1, 1)); + ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.key_red_cracked), 1, 1, 5)); ChestGenHooks.addItem(ChestGenHooks.PYRAMID_DESERT_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.heart_piece), 1, 1, 1)); ChestGenHooks.addItem(ChestGenHooks.PYRAMID_JUNGLE_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.heart_piece), 1, 1, 1)); ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.scrumpy), 1, 1, 1)); @@ -347,7 +344,8 @@ public class MainRegistry { ChestGenHooks.addItem(ChestGenHooks.BONUS_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.no9), 1, 1, 7)); EntityMappings.writeMappings(); - + //CompatNER.init(); + ForgeChunkManager.setForcedChunkLoadingCallback(this, new LoadingCallback() { @Override @@ -635,7 +633,7 @@ public class MainRegistry { private boolean dispenseSound = true; @Override protected ItemStack dispenseStack(IBlockSource source, ItemStack stack) { - + EnumFacing facing = BlockDispenser.func_149937_b(source.getBlockMetadata()); World world = source.getWorld(); int x = source.getXInt() + facing.getFrontOffsetX(); @@ -656,29 +654,27 @@ public class MainRegistry { @EventHandler public static void load(FMLInitializationEvent event) { - + RodRecipes.registerInit(); achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", -3, 1, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); achImpossible = new Achievement("achievement.impossible", "impossible", 18, 10, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 3, 10, new ItemStack(ModItems.fluid_icon, 1, Fluids.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); achGoFish = new Achievement("achievement.goFish", "goFish", 5, 10, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.GOFISH), null).initIndependentStat().setSpecial().registerStat(); - achFreytag = new Achievement("achievement.freytag", "freytag", 0, -4, ModItems.gun_mp40, null).initIndependentStat().setSpecial().registerStat(); achPotato = new Achievement("achievement.potato", "potato", -2, -2, ModItems.battery_potatos, null).initIndependentStat().setSpecial().registerStat(); - achC44 = new Achievement("achievement.c44", "c44", 2, -4, ModItems.gun_revolver_pip, null).initIndependentStat().setSpecial().registerStat(); - achC20_5 = new Achievement("achievement.c20_5", "c20_5", 3, 6, ModItems.gun_dampfmaschine, null).initIndependentStat().setSpecial().registerStat(); + achC20_5 = new Achievement("achievement.c20_5", "c20_5", 3, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.QUESTIONMARK), null).initIndependentStat().setSpecial().registerStat(); achFiend = new Achievement("achievement.fiend", "fiend", -6, 8, ModItems.shimmer_sledge, null).initIndependentStat().setSpecial().registerStat(); achFiend2 = new Achievement("achievement.fiend2", "fiend2", -4, 9, ModItems.shimmer_axe, null).initIndependentStat().setSpecial().registerStat(); achStratum = new Achievement("achievement.stratum", "stratum", -4, -2, new ItemStack(ModBlocks.stone_gneiss), null).initIndependentStat().setSpecial().registerStat(); achOmega12 = new Achievement("achievement.omega12", "omega12", 17, -1, ModItems.particle_digamma, null).initIndependentStat().setSpecial().registerStat(); - achWitchtaunter = new Achievement("achievement.witchtaunter", "witchtaunter", -8, 7, ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VAMPIRE), null).initIndependentStat().setSpecial().registerStat(); achNo9 = new Achievement("achievement.no9", "no9", -8, 12, ModItems.no9, null).initIndependentStat().registerStat(); achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.ACID), null).initIndependentStat().registerStat(); achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.BALLS), achSlimeball).initIndependentStat().setSpecial().registerStat(); achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat(); - - bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat(); + achRedRoom = new Achievement("achievement.redRoom", "redRoom", -10, 10, ModItems.key_red, null).initIndependentStat().setSpecial().registerStat(); + + bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.QUESTIONMARK), null).initIndependentStat().registerStat(); horizonsStart = new Achievement("achievement.horizonsStart", "horizonsStart", -5, 4, ModItems.sat_gerald, null).initIndependentStat().registerStat(); horizonsEnd = new Achievement("achievement.horizonsEnd", "horizonsEnd", -3, 4, ModItems.sat_gerald, horizonsStart).initIndependentStat().registerStat(); @@ -694,13 +690,13 @@ public class MainRegistry { achRadDeath = new Achievement("achievement.radDeath", "radDeath", 0, 6, Items.skull, achRadPoison).initIndependentStat().registerStat().setSpecial(); achSomeWounds = new Achievement("achievement.someWounds", "someWounds", -2, 10, ModItems.injector_knife, null).initIndependentStat().registerStat(); - + digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMASEE), null).initIndependentStat().registerStat(); digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAFEEL), digammaSee).initIndependentStat().registerStat(); digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKNOW), digammaFeel).initIndependentStat().registerStat().setSpecial(); digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKAUAIMOHO), digammaKnow).initIndependentStat().registerStat().setSpecial(); digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAUPONTOP), digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); - + //progression achieves achBurnerPress = new Achievement("achievement.burnerPress", "burnerPress", 0, 0, new ItemStack(ModBlocks.machine_press), null).initIndependentStat().registerStat(); achBlastFurnace = new Achievement("achievement.blastFurnace", "blastFurnace", 1, 3, new ItemStack(ModBlocks.machine_difurnace_off), achBurnerPress).initIndependentStat().registerStat(); @@ -723,7 +719,7 @@ public class MainRegistry { achZIRNOXBoom = new Achievement("achievement.ZIRNOXBoom", "ZIRNOXBoom", 14, -1, ModItems.debris_element, achCentrifuge).initIndependentStat().setSpecial().registerStat(); achChicagoPile = new Achievement("achievement.chicagoPile", "chicagoPile", 13, 0, ModItems.pile_rod_plutonium, achCentrifuge).initIndependentStat().registerStat(); achSILEX = new Achievement("achievement.SILEX", "SILEX", 12, 7, new ItemStack(ModBlocks.machine_silex), achAcidizer).initIndependentStat().registerStat(); - achWatz = new Achievement("achievement.watz", "watz", 14, 3, ModItems.pellet_schrabidium, achSchrab).initIndependentStat().registerStat(); + achWatz = new Achievement("achievement.watz", "watz", 14, 3, ModItems.watz_pellet, achSchrab).initIndependentStat().registerStat(); achWatzBoom = new Achievement("achievement.watzBoom", "watzBoom", 14, 5, ModItems.bucket_mud, achWatz).initIndependentStat().setSpecial().registerStat(); achRBMK = new Achievement("achievement.RBMK", "RBMK", 9, -5, ModItems.rbmk_fuel_ueu, achConcrete).initIndependentStat().registerStat(); achRBMKBoom = new Achievement("achievement.RBMKBoom", "RBMKBoom", 9, -7, ModItems.debris_fuel, achRBMK).initIndependentStat().setSpecial().registerStat(); @@ -733,93 +729,96 @@ public class MainRegistry { achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.powder_balefire, achFusion).initIndependentStat().setSpecial().registerStat(); achRedBalloons = new Achievement("achievement.redBalloons", "redBalloons", 11, 0, ModItems.missile_nuclear, achPolymer).initIndependentStat().setSpecial().registerStat(); achManhattan = new Achievement("achievement.manhattan", "manhattan", 11, -4, new ItemStack(ModBlocks.nuke_boy), achPolymer).initIndependentStat().setSpecial().registerStat(); - + AchievementPage.registerAchievementPage(new AchievementPage("Nuclear Tech", new Achievement[] { - achSacrifice, - achImpossible, - achTOB, - achGoFish, - achFreytag, - achPotato, - achC44, - achC20_5, - achFiend, - achFiend2, - achStratum, - achOmega12, - bobHidden, - horizonsStart, - horizonsEnd, - horizonsBonus, - achRadPoison, - achRadDeath, - achWitchtaunter, - achNo9, - achInferno, - achSlimeball, - achSulfuric, - bossCreeper, - bossMeltdown, - bossMaskman, - bossWorm, - bossUFO, - achSomeWounds, - digammaSee, - digammaFeel, - digammaKnow, - digammaKauaiMoho, - digammaUpOnTop, - - achBurnerPress, - achBlastFurnace, - achAssembly, - achSelenium, - achChemplant, - achConcrete, - achPolymer, - achDesh, - achTantalum, - achGasCent, - achCentrifuge, - achFOEQ, - achSoyuz, - achSpace, - achSchrab, - achAcidizer, - achRadium, - achTechnetium, - achZIRNOXBoom, - achChicagoPile, - achSILEX, - achWatz, - achWatzBoom, - achRBMK, - achRBMKBoom, - achBismuth, - achBreeding, - achFusion, - achMeltdown, - achRedBalloons, - achManhattan + achSacrifice, + achImpossible, + achTOB, + achGoFish, + achPotato, + achC20_5, + achFiend, + achFiend2, + achStratum, + achOmega12, + bobHidden, + horizonsStart, + horizonsEnd, + horizonsBonus, + achRadPoison, + achRadDeath, + achNo9, + achInferno, + achRedRoom, + achSlimeball, + achSulfuric, + bossCreeper, + bossMeltdown, + bossMaskman, + bossWorm, + bossUFO, + achSomeWounds, + digammaSee, + digammaFeel, + digammaKnow, + digammaKauaiMoho, + digammaUpOnTop, + + achBurnerPress, + achBlastFurnace, + achAssembly, + achSelenium, + achChemplant, + achConcrete, + achPolymer, + achDesh, + achTantalum, + achGasCent, + achCentrifuge, + achFOEQ, + achSoyuz, + achSpace, + achSchrab, + achAcidizer, + achRadium, + achTechnetium, + achZIRNOXBoom, + achChicagoPile, + achSILEX, + achWatz, + achWatzBoom, + achRBMK, + achRBMKBoom, + achBismuth, + achBreeding, + achFusion, + achMeltdown, + achRedBalloons, + achManhattan })); // MUST be initialized AFTER achievements!! BobmazonOfferFactory.init(); - OreDictManager.registerOres(); IMCHandler.registerHandler("blastfurnace", new IMCBlastFurnace()); IMCHandler.registerHandler("crystallizer", new IMCCrystallizer()); IMCHandler.registerHandler("centrifuge", new IMCCentrifuge()); + + if (Loader.isModLoaded("NotEnoughItems")){ + if (Loader.instance().getIndexedModList().get("NotEnoughItems").getVersion().contains("GTNH")) { + proxy.handleNHNEICompat(); + } + } } - + @EventHandler public static void initIMC(IMCEvent event) { - + ImmutableList inbox = event.getMessages(); //tee-hee - + for(IMCMessage message : inbox) { IMCHandler handler = IMCHandler.getHandler(message.key); - + if(handler != null) { MainRegistry.logger.info("Received IMC of type >" + message.key + "< from " + message.getSender() + "!"); handler.process(message); @@ -832,34 +831,41 @@ public class MainRegistry { @EventHandler public static void PostLoad(FMLPostInitializationEvent PostEvent) { TileEntityNukeFurnace.registerFuels(); - AssemblerRecipes.loadRecipes(); MagicRecipes.register(); + LemegetonRecipes.register(); SILEXRecipes.register(); - AnvilRecipes.register(); RefineryRecipes.registerRefinery(); GasCentrifugeRecipes.register(); + CustomMachineConfigJSON.initialize(); + //the good stuff SerializableRecipe.registerAllHandlers(); SerializableRecipe.initialize(); + //Anvil has to come after serializables (i.e. anvil) + AnvilRecipes.register(); + //has to register after cracking, and therefore after all serializable recipes RadiolysisRecipes.registerRadiolysis(); - + FalloutConfigJSON.initialize(); + ItemPoolConfigJSON.initialize(); + ClientConfig.initConfig(); TileEntityNukeCustom.registerBombItems(); ArmorUtil.register(); HazmatRegistry.registerHazmats(); + DamageResistanceHandler.init(); FluidContainerRegistry.register(); - TileEntityMachineReactorLarge.registerAll(); BlockToolConversion.registerRecipes(); AchievementHandler.register(); proxy.registerMissileItems(); - - BlockMotherOfAllOres.init(); - + + // Load compatibility for OC. + CompatHandler.init(); + //expand for the largest entity we have (currently Quackos who is 17.5m in diameter, that's one fat duck) World.MAX_ENTITY_RADIUS = Math.max(World.MAX_ENTITY_RADIUS, 8.75); @@ -873,10 +879,11 @@ public class MainRegistry { //new BiomeCave().setThreshold(1.5D).setRangeMult(20).setYLevel(40).setMaxRange(20); //new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); BedrockOre.init(); - + Compat.handleRailcraftNonsense(); SuicideThreadDump.register(); - + CommandReloadClient.register(); + //ExplosionTests.runTest(); } @@ -895,10 +902,7 @@ public class MainRegistry { FMLCommonHandler.instance().bus().register(impactHandler); MinecraftForge.EVENT_BUS.register(impactHandler); MinecraftForge.TERRAIN_GEN_BUS.register(impactHandler); - - OreDictManager oreMan = new OreDictManager(); - MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent - + PacketDispatcher.registerPackets(); ChunkRadiationManager radiationSystem = new ChunkRadiationManager(); @@ -908,33 +912,43 @@ public class MainRegistry { PollutionHandler pollution = new PollutionHandler(); MinecraftForge.EVENT_BUS.register(pollution); FMLCommonHandler.instance().bus().register(pollution); - + + DamageResistanceHandler dmgHandler = new DamageResistanceHandler(); + MinecraftForge.EVENT_BUS.register(dmgHandler); + + NeutronHandler neutronHandler = new NeutronHandler(); + MinecraftForge.EVENT_BUS.register(neutronHandler); + FMLCommonHandler.instance().bus().register(neutronHandler); + if(event.getSide() == Side.CLIENT) { HbmKeybinds.register(); HbmKeybinds keyHandler = new HbmKeybinds(); FMLCommonHandler.instance().bus().register(keyHandler); } } - + //yes kids, this is where we would usually register commands @EventHandler public void serverStart(FMLServerStartingEvent event) { World world = event.getServer().getEntityWorld(); RBMKDials.createDials(world); - SiegeOrchestrator.createGameRules(world); event.registerServerCommand(new CommandReloadRecipes()); event.registerServerCommand(new CommandDebugChunkLoad()); + event.registerServerCommand(new CommandSatellites()); + event.registerServerCommand(new CommandRadiation()); + event.registerServerCommand(new CommandPacketInfo()); } - + @EventHandler public void serverStart(FMLServerStartedEvent event) { - + if(GeneralConfig.enableStatReRegistering) { logger.info("Attempting to re-register item stats..."); StatHelper.resetStatShitFuck(); //shit yourself + logger.info("Item stats re-registered"); } } - + private void loadConfig(FMLPreInitializationEvent event) { Configuration config = new Configuration(event.getSuggestedConfigurationFile()); @@ -950,32 +964,32 @@ public class MainRegistry { WeaponConfig.loadFromConfig(config); MobConfig.loadFromConfig(config); StructureConfig.loadFromConfig(config); - - try { - if(GeneralConfig.enableThermosPreventer && Class.forName("thermos.Thermos") != null) { - throw new IllegalStateException("The mod tried to start on a Thermos server and therefore stopped. To allow the server to start on Thermos, change the appropriate " - + "config entry (0.00 in hbm.cfg). This was done because, by default, Thermos " - + "uses a so-called \"optimization\" feature that reduces tile ticking a lot, which will inevitably break a lot of machines. Most people aren't even aware " - + "of this, and start blaming random mods for all their stuff breaking. In order to adjust or even disable this feature, edit \"tileentities.yml\" in your " - + "Thermos install folder. If you believe that crashing the server until a config option is changed is annoying, then I would agree, but it's still preferable " - + "over wasting hours trying to fix an issue that is really just an \"intended feature\" added by Thermos itself, and not a bug in the mod. You'll have to " - + "change Thermos' config anyway so that extra change in NTM's config can't be that big of a burden."); - } - } catch(ClassNotFoundException e) { } config.save(); + + try { + if(GeneralConfig.enableThermosPreventer && Class.forName("thermos.ThermosClassTransformer") != null) { + throw new IllegalStateException("The mod tried to start on a Thermos or its fork server and therefore stopped. To allow the server to start on Thermos, change the appropriate " + + "config entry (0.00 in hbm.cfg). This was done because, by default, Thermos " + + "uses a so-called \"optimization\" feature that reduces tile ticking a lot, which will inevitably break a lot of machines. Most people aren't even aware " + + "of this, and start blaming random mods for all their stuff breaking. In order to adjust or even disable this feature, edit \"tileentities.yml\" in your " + + "Thermos install folder. If you believe that crashing the server until a config option is changed is annoying, then I would agree, but it's still preferable " + + "over wasting hours trying to fix an issue that is really just an \"intended feature\" added by Thermos itself, and not a bug in the mod. You'll have to " + + "change Thermos' config anyway so that extra change in NTM's config can't be that big of a burden."); + } + } catch(ClassNotFoundException e) { } } - + private static HashSet ignoreMappings = new HashSet(); private static HashMap remapItems = new HashMap(); - + @EventHandler public void handleMissingMappings(FMLMissingMappingsEvent event) { - + ignoreMappings.clear(); remapItems.clear(); - + /// IGNORE /// for(int i = 1; i <= 8; i++) ignoreMappings.add("hbm:item.gasflame" + i); ignoreMappings.add("hbm:item.cyclotron_tower"); @@ -1123,14 +1137,501 @@ public class MainRegistry { ignoreMappings.add("hbm:item.digamma_know"); ignoreMappings.add("hbm:item.digamma_kauai_moho"); ignoreMappings.add("hbm:item.digamma_up_on_top"); - + ignoreMappings.add("hbm:tile.oil_duct_solid"); + ignoreMappings.add("hbm:tile.oil_duct"); + ignoreMappings.add("hbm:tile.gas_duct_solid"); + ignoreMappings.add("hbm:tile.gas_duct"); + ignoreMappings.add("hbm:tile.dummy_block_assembler"); + ignoreMappings.add("hbm:tile.dummy_port_assembler"); + ignoreMappings.add("hbm:item.canned_beef"); + ignoreMappings.add("hbm:item.canned_tuna"); + ignoreMappings.add("hbm:item.canned_mystery"); + ignoreMappings.add("hbm:item.canned_pashtet"); + ignoreMappings.add("hbm:item.canned_cheese"); + ignoreMappings.add("hbm:item.canned_jizz"); + ignoreMappings.add("hbm:item.canned_milk"); + ignoreMappings.add("hbm:item.canned_ass"); + ignoreMappings.add("hbm:item.canned_pizza"); + ignoreMappings.add("hbm:item.canned_tube"); + ignoreMappings.add("hbm:item.canned_tomato"); + ignoreMappings.add("hbm:item.canned_asbestos"); + ignoreMappings.add("hbm:item.canned_bhole"); + ignoreMappings.add("hbm:item.canned_hotdogs"); + ignoreMappings.add("hbm:item.canned_leftovers"); + ignoreMappings.add("hbm:item.canned_yogurt"); + ignoreMappings.add("hbm:item.canned_stew"); + ignoreMappings.add("hbm:item.canned_chinese"); + ignoreMappings.add("hbm:item.canned_oil"); + ignoreMappings.add("hbm:item.canned_fist"); + ignoreMappings.add("hbm:item.canned_spam"); + ignoreMappings.add("hbm:item.canned_fried"); + ignoreMappings.add("hbm:item.canned_napalm"); + ignoreMappings.add("hbm:item.canned_diesel"); + ignoreMappings.add("hbm:item.canned_kerosene"); + ignoreMappings.add("hbm:item.canned_recursion"); + ignoreMappings.add("hbm:item.canned_bark"); + ignoreMappings.add("hbm:item.primer_357"); + ignoreMappings.add("hbm:item.primer_44"); + ignoreMappings.add("hbm:item.primer_9"); + ignoreMappings.add("hbm:item.primer_50"); + ignoreMappings.add("hbm:item.primer_buckshot"); + ignoreMappings.add("hbm:tile.ore_bedrock_coltan"); + ignoreMappings.add("hbm:item.recycled_ground"); + ignoreMappings.add("hbm:item.recycled_rock"); + ignoreMappings.add("hbm:item.recycled_metal"); + ignoreMappings.add("hbm:item.recycled_refined"); + ignoreMappings.add("hbm:item.recycled_organic"); + ignoreMappings.add("hbm:item.recycled_crystal"); + ignoreMappings.add("hbm:item.recycled_explosive"); + ignoreMappings.add("hbm:item.recycled_electronic"); + ignoreMappings.add("hbm:item.recycled_nuclear"); + ignoreMappings.add("hbm:item.recycled_misc"); + ignoreMappings.add("hbm:item.gun_bf_ammo"); + ignoreMappings.add("hbm:tile.brick_dungeon"); + ignoreMappings.add("hbm:tile.brick_dungeon_flat"); + ignoreMappings.add("hbm:tile.brick_dungeon_tile"); + ignoreMappings.add("hbm:tile.brick_dungeon_circle"); + ignoreMappings.add("hbm:tile.bomber"); + ignoreMappings.add("hbm:item.bolt_tungsten"); + ignoreMappings.add("hbm:item.bolt_dura_steel"); + ignoreMappings.add("hbm:tile.rail_large_curve_wide"); + ignoreMappings.add("hbm:tile.nuke_n45"); + ignoreMappings.add("hbm:tile.machine_coal_off"); + ignoreMappings.add("hbm:tile.machine_coal_on"); + ignoreMappings.add("hbm:tile.machine_drill"); + ignoreMappings.add("hbm:tile.drill_pipe"); + ignoreMappings.add("hbm:tile.dummy_block_drill"); + ignoreMappings.add("hbm:tile.dummy_port_drill"); + ignoreMappings.add("hbm:tile.machine_combine_factory"); + ignoreMappings.add("hbm:tile.watz_core"); + ignoreMappings.add("hbm:tile.watz_hatch"); + ignoreMappings.add("hbm:tile.marker_structure"); + ignoreMappings.add("hbm:tile.reactor_element"); + ignoreMappings.add("hbm:tile.reactor_control"); + ignoreMappings.add("hbm:tile.reactor_hatch"); + ignoreMappings.add("hbm:tile.reactor_ejector"); + ignoreMappings.add("hbm:tile.reactor_inserter"); + ignoreMappings.add("hbm:tile.reactor_conductor"); + ignoreMappings.add("hbm:tile.reactor_computer"); + ignoreMappings.add("hbm:tile.ff"); + ignoreMappings.add("hbm:tile.muffler"); + ignoreMappings.add("hbm:tile.basalt_sulfur"); + ignoreMappings.add("hbm:tile.basalt_fluorite"); + ignoreMappings.add("hbm:tile.basalt_asbestos"); + ignoreMappings.add("hbm:tile.basalt_gem"); + ignoreMappings.add("hbm:item.missile_endo"); + ignoreMappings.add("hbm:item.missile_exo"); + ignoreMappings.add("hbm:item.warhead_thermo_endo"); + ignoreMappings.add("hbm:item.warhead_thermo_exo"); + ignoreMappings.add("hbm:item.gun_dampfmaschine"); + ignoreMappings.add("hbm:item.canteen_13"); + ignoreMappings.add("hbm:tile.residue"); + ignoreMappings.add("hbm:item.powder_cloud"); + ignoreMappings.add("hbm:item.gun_detonator"); + ignoreMappings.add("hbm:item.gun_avenger"); + ignoreMappings.add("hbm:tile.block_cap_nuka"); + ignoreMappings.add("hbm:tile.block_cap_quantum"); + ignoreMappings.add("hbm:tile.block_cap_rad"); + ignoreMappings.add("hbm:tile.block_cap_sparkle"); + ignoreMappings.add("hbm:tile.block_cap_korl"); + ignoreMappings.add("hbm:tile.block_cap_fritz"); + ignoreMappings.add("hbm:tile.block_cap_sunset"); + ignoreMappings.add("hbm:tile.block_cap_star"); + ignoreMappings.add("hbm:tile.machine_deaerator"); + ignoreMappings.add("hbm:item.bottle2_sunset"); + ignoreMappings.add("hbm:item.cap_sunset"); + ignoreMappings.add("hbm:item.cap_star"); + ignoreMappings.add("hbm:tile.test_render"); + ignoreMappings.add("hbm:tile.test_bomb"); + ignoreMappings.add("hbm:tile.test_bomb_advanced"); + ignoreMappings.add("hbm:tile.test_nuke"); + ignoreMappings.add("hbm:tile.test_pipe"); + ignoreMappings.add("hbm:tile.test_ct"); + ignoreMappings.add("hbm:tile.test_rail"); + ignoreMappings.add("hbm:tile.block_niter_reinforced"); + ignoreMappings.add("hbm:tile.siege_shield"); + ignoreMappings.add("hbm:tile.siege_internal"); + ignoreMappings.add("hbm:tile.siege_circuit"); + ignoreMappings.add("hbm:tile.siege_emergency"); + ignoreMappings.add("hbm:tile.siege_hole"); + ignoreMappings.add("hbm:tile.machine_shredder_large"); + ignoreMappings.add("hbm:tile.turret_brandon"); + ignoreMappings.add("hbm:item.bottle2_sunset"); + ignoreMappings.add("hbm:item.pellet_schrabidium"); + ignoreMappings.add("hbm:item.pellet_hes"); + ignoreMappings.add("hbm:item.pellet_mes"); + ignoreMappings.add("hbm:item.pellet_les"); + ignoreMappings.add("hbm:item.pellet_beryllium"); + ignoreMappings.add("hbm:item.pellet_neptunium"); + ignoreMappings.add("hbm:item.pellet_lead"); + ignoreMappings.add("hbm:item.pellet_advanced"); + ignoreMappings.add("hbm:item.board_copper"); + ignoreMappings.add("hbm:item.titanium_filter"); + ignoreMappings.add("hbm:item.battery_steam"); + ignoreMappings.add("hbm:item.battery_steam_large"); + ignoreMappings.add("hbm:item.hull_small_steel"); + ignoreMappings.add("hbm:item.hull_small_aluminium"); + ignoreMappings.add("hbm:item.hull_big_steel"); + ignoreMappings.add("hbm:item.hull_big_aluminium"); + ignoreMappings.add("hbm:item.hull_big_titanium"); + ignoreMappings.add("hbm:item.rod_zirnox_natural_uranium_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_uranium_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_th232"); + ignoreMappings.add("hbm:item.rod_zirnox_thorium_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_mox_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_plutonium_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_u233_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_u235_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_les_fuel"); + ignoreMappings.add("hbm:item.rod_zirnox_lithium"); + ignoreMappings.add("hbm:item.rod_zirnox_zfb_mox"); + ignoreMappings.add("hbm:item.gas_petroleum"); + ignoreMappings.add("hbm:item.gas_biogas"); + ignoreMappings.add("hbm:item.gas_lpg"); + ignoreMappings.add("hbm:item.gun_coilgun_ammo"); + ignoreMappings.add("hbm:item.rotor_steel"); + ignoreMappings.add("hbm:item.generator_steel"); + ignoreMappings.add("hbm:item.bolt_compound"); + ignoreMappings.add("hbm:tile.anvil_meteorite"); + ignoreMappings.add("hbm:tile.anvil_starmetal"); + ignoreMappings.add("hbm:tile.anvil_bismuth"); + ignoreMappings.add("hbm:tile.lamp_uv_off"); + ignoreMappings.add("hbm:tile.lamp_uv_on"); + ignoreMappings.add("hbm:tile.ams_base"); + ignoreMappings.add("hbm:tile.ams_emitter"); + ignoreMappings.add("hbm:tile.ams_limiter"); + ignoreMappings.add("hbm:tile.dummy_block_ams_limiter"); + ignoreMappings.add("hbm:tile.dummy_port_ams_limiter"); + ignoreMappings.add("hbm:tile.dummy_block_ams_emitter"); + ignoreMappings.add("hbm:tile.dummy_port_ams_emitter"); + ignoreMappings.add("hbm:tile.dummy_block_ams_base"); + ignoreMappings.add("hbm:tile.dummy_port_ams_base"); + ignoreMappings.add("hbm:tile.machine_selenium"); + ignoreMappings.add("hbm:tile.fwatz_conductor"); + ignoreMappings.add("hbm:tile.fwatz_cooler"); + ignoreMappings.add("hbm:tile.fwatz_tank"); + ignoreMappings.add("hbm:tile.fwatz_scaffold"); + ignoreMappings.add("hbm:tile.fwatz_hatch"); + ignoreMappings.add("hbm:tile.fwatz_computer"); + ignoreMappings.add("hbm:tile.fwatz_core"); + ignoreMappings.add("hbm:tile.fwatz_plasma"); + ignoreMappings.add("hbm:tile.ore_meteor_uranium"); + ignoreMappings.add("hbm:tile.ore_meteor_thorium"); + ignoreMappings.add("hbm:tile.ore_meteor_titanium"); + ignoreMappings.add("hbm:tile.ore_meteor_sulfur"); + ignoreMappings.add("hbm:tile.ore_meteor_copper"); + ignoreMappings.add("hbm:tile.ore_meteor_tungsten"); + ignoreMappings.add("hbm:tile.ore_meteor_aluminium"); + ignoreMappings.add("hbm:tile.ore_meteor_lead"); + ignoreMappings.add("hbm:tile.ore_meteor_lithium"); + ignoreMappings.add("hbm:tile.ore_meteor_starmetal"); + ignoreMappings.add("hbm:tile.machine_generator"); + ignoreMappings.add("hbm:item.v1"); + ignoreMappings.add("hbm:item.arc_electrode_desh"); + ignoreMappings.add("hbm:tile.sand_gold"); + ignoreMappings.add("hbm:tile.sand_gold198"); + ignoreMappings.add("hbm:tile.ore_weidanium"); + ignoreMappings.add("hbm:tile.ore_reiium"); + ignoreMappings.add("hbm:tile.ore_unobtainium"); + ignoreMappings.add("hbm:tile.ore_daffergon"); + ignoreMappings.add("hbm:tile.ore_verticium"); + ignoreMappings.add("hbm:item.warhead_mirvlet"); + ignoreMappings.add("hbm:item.generator_front"); + ignoreMappings.add("hbm:tile.rbmk_heatex"); + ignoreMappings.add("hbm:tile.machine_boiler_on"); + ignoreMappings.add("hbm:tile.machine_boiler_electric_off"); + ignoreMappings.add("hbm:tile.machine_boiler_electric_on"); + ignoreMappings.add("hbm:tile.watz_control"); + ignoreMappings.add("hbm:item.circuit_raw"); + ignoreMappings.add("hbm:item.circuit_aluminium"); + ignoreMappings.add("hbm:item.circuit_copper"); + ignoreMappings.add("hbm:item.circuit_red_copper"); + ignoreMappings.add("hbm:item.circuit_gold"); + ignoreMappings.add("hbm:item.circuit_schrabidium"); + ignoreMappings.add("hbm:item.circuit_bismuth_raw"); + ignoreMappings.add("hbm:item.circuit_bismuth"); + ignoreMappings.add("hbm:item.circuit_arsenic_raw"); + ignoreMappings.add("hbm:item.circuit_arsenic"); + ignoreMappings.add("hbm:item.circuit_tantalium_raw"); + ignoreMappings.add("hbm:item.circuit_tantalium"); + ignoreMappings.add("hbm:item.circuit_targeting_tier1"); + ignoreMappings.add("hbm:item.circuit_targeting_tier2"); + ignoreMappings.add("hbm:item.circuit_targeting_tier3"); + ignoreMappings.add("hbm:item.circuit_targeting_tier4"); + ignoreMappings.add("hbm:item.circuit_targeting_tier5"); + ignoreMappings.add("hbm:item.circuit_targeting_tier6"); + ignoreMappings.add("hbm:tile.fluid_duct"); + ignoreMappings.add("hbm:tile.fluid_duct_solid"); + ignoreMappings.add("hbm:item.void_anim"); + ignoreMappings.add("hbm:item.pellet_mercury"); + ignoreMappings.add("hbm:item.pellet_meteorite"); + ignoreMappings.add("hbm:item.d_smoke1"); + ignoreMappings.add("hbm:item.d_smoke2"); + ignoreMappings.add("hbm:item.d_smoke3"); + ignoreMappings.add("hbm:item.d_smoke4"); + ignoreMappings.add("hbm:item.d_smoke5"); + ignoreMappings.add("hbm:item.d_smoke6"); + ignoreMappings.add("hbm:item.d_smoke7"); + ignoreMappings.add("hbm:item.d_smoke8"); + ignoreMappings.add("hbm:item.smoke1"); + ignoreMappings.add("hbm:item.smoke2"); + ignoreMappings.add("hbm:item.smoke3"); + ignoreMappings.add("hbm:item.smoke4"); + ignoreMappings.add("hbm:item.smoke5"); + ignoreMappings.add("hbm:item.smoke6"); + ignoreMappings.add("hbm:item.smoke7"); + ignoreMappings.add("hbm:item.smoke8"); + ignoreMappings.add("hbm:item.battery_su"); + ignoreMappings.add("hbm:item.battery_su_l"); + ignoreMappings.add("hbm:item.redstone_depleted"); + ignoreMappings.add("hbm:item.euphemium_stopper"); + ignoreMappings.add("hbm:item.energy_ball"); + ignoreMappings.add("hbm:item.discharge"); + ignoreMappings.add("hbm:item.empblast"); + ignoreMappings.add("hbm:tile.crystal_power"); + ignoreMappings.add("hbm:tile.crystal_energy"); + ignoreMappings.add("hbm:tile.crystal_robust"); + ignoreMappings.add("hbm:tile.crystal_trixite"); + ignoreMappings.add("hbm:tile.hazmat"); + ignoreMappings.add("hbm:item.pellet_coal"); + ignoreMappings.add("hbm:item.test_helmet"); + ignoreMappings.add("hbm:item.test_chestplate"); + ignoreMappings.add("hbm:item.test_leggings"); + ignoreMappings.add("hbm:item.test_boots"); + ignoreMappings.add("hbm:item.cape_test"); + ignoreMappings.add("hbm:item.spill1"); + ignoreMappings.add("hbm:item.spill2"); + ignoreMappings.add("hbm:item.spill3"); + ignoreMappings.add("hbm:item.spill4"); + ignoreMappings.add("hbm:item.spill5"); + ignoreMappings.add("hbm:item.spill6"); + ignoreMappings.add("hbm:item.spill7"); + ignoreMappings.add("hbm:item.spill8"); + ignoreMappings.add("hbm:item.gas1"); + ignoreMappings.add("hbm:item.gas2"); + ignoreMappings.add("hbm:item.gas3"); + ignoreMappings.add("hbm:item.gas4"); + ignoreMappings.add("hbm:item.gas5"); + ignoreMappings.add("hbm:item.gas6"); + ignoreMappings.add("hbm:item.gas7"); + ignoreMappings.add("hbm:item.gas8"); + ignoreMappings.add("hbm:tile.brick_forgotten"); + ignoreMappings.add("hbm:tile.watz_conductor"); + ignoreMappings.add("hbm:item.flame_1"); + ignoreMappings.add("hbm:item.flame_2"); + ignoreMappings.add("hbm:item.flame_3"); + ignoreMappings.add("hbm:item.flame_3"); + ignoreMappings.add("hbm:item.flame_4"); + ignoreMappings.add("hbm:item.flame_5"); + ignoreMappings.add("hbm:item.flame_6"); + ignoreMappings.add("hbm:item.flame_7"); + ignoreMappings.add("hbm:item.flame_8"); + ignoreMappings.add("hbm:item.flame_9"); + ignoreMappings.add("hbm:item.flame_10"); + ignoreMappings.add("hbm:tile.dummy_block_uf6"); + ignoreMappings.add("hbm:tile.dummy_block_puf6"); + ignoreMappings.add("hbm:item.wire_aluminium"); + ignoreMappings.add("hbm:item.wire_copper"); + ignoreMappings.add("hbm:item.wire_red_copper"); + ignoreMappings.add("hbm:item.wire_tungsten"); + ignoreMappings.add("hbm:item.wire_gold"); + ignoreMappings.add("hbm:item.wire_schrabidium"); + ignoreMappings.add("hbm:item.wire_advanced_alloy"); + ignoreMappings.add("hbm:item.wire_magnetized_tungsten"); + ignoreMappings.add("hbm:item.nugget_weidanium"); + ignoreMappings.add("hbm:item.nugget_reiium"); + ignoreMappings.add("hbm:item.nugget_unobtainium"); + ignoreMappings.add("hbm:item.nugget_daffergon"); + ignoreMappings.add("hbm:item.nugget_verticium"); + ignoreMappings.add("hbm:item.ingot_weidanium"); + ignoreMappings.add("hbm:item.ingot_reiium"); + ignoreMappings.add("hbm:item.ingot_unobtainium"); + ignoreMappings.add("hbm:item.ingot_daffergon"); + ignoreMappings.add("hbm:item.ingot_verticium"); + ignoreMappings.add("hbm:item.powder_weidanium"); + ignoreMappings.add("hbm:item.powder_reiium"); + ignoreMappings.add("hbm:item.powder_unobtainium"); + ignoreMappings.add("hbm:item.powder_daffergon"); + ignoreMappings.add("hbm:item.powder_verticium"); + ignoreMappings.add("hbm:tile.ore_random"); + ignoreMappings.add("hbm:item.crate_caller"); + ignoreMappings.add("hbm:item.pellet_rtg_berkelium"); + ignoreMappings.add("hbm:item.folly_shell"); + ignoreMappings.add("hbm:item.folly_bullet"); + ignoreMappings.add("hbm:item.folly_bullet_nuclear"); + ignoreMappings.add("hbm:item.folly_bullet_du"); + ignoreMappings.add("hbm:item.ammo_folly"); + ignoreMappings.add("hbm:item.ammo_folly_nuclear"); + ignoreMappings.add("hbm:item.ammo_folly_du"); + ignoreMappings.add("hbm:item.clip_revolver_iron"); + ignoreMappings.add("hbm:item.clip_revolver"); + ignoreMappings.add("hbm:item.clip_revolver_gold"); + ignoreMappings.add("hbm:item.clip_revolver_lead"); + ignoreMappings.add("hbm:item.clip_revolver_schrabidium"); + ignoreMappings.add("hbm:item.clip_revolver_cursed"); + ignoreMappings.add("hbm:item.clip_revolver_nightmare"); + ignoreMappings.add("hbm:item.clip_revolver_nightmare2"); + ignoreMappings.add("hbm:item.clip_revolver_pip"); + ignoreMappings.add("hbm:item.clip_revolver_nopip"); + ignoreMappings.add("hbm:item.clip_rpg"); + ignoreMappings.add("hbm:item.clip_stinger"); + ignoreMappings.add("hbm:item.clip_fatman"); + ignoreMappings.add("hbm:item.clip_mirv"); + ignoreMappings.add("hbm:item.clip_bf"); + ignoreMappings.add("hbm:item.clip_mp40"); + ignoreMappings.add("hbm:item.clip_uzi"); + ignoreMappings.add("hbm:item.clip_uboinik"); + ignoreMappings.add("hbm:item.clip_lever_action"); + ignoreMappings.add("hbm:item.clip_bolt_action"); + ignoreMappings.add("hbm:item.clip_xvl1456"); + ignoreMappings.add("hbm:item.clip_osipr"); + ignoreMappings.add("hbm:item.clip_immolator"); + ignoreMappings.add("hbm:item.clip_cryolator"); + ignoreMappings.add("hbm:item.clip_mp"); + ignoreMappings.add("hbm:item.clip_emp"); + ignoreMappings.add("hbm:item.clip_jack"); + ignoreMappings.add("hbm:item.clip_spark"); + ignoreMappings.add("hbm:item.clip_hp"); + ignoreMappings.add("hbm:item.clip_euthanasia"); + ignoreMappings.add("hbm:item.clip_defabricator"); + ignoreMappings.add("hbm:item.ammo_folly_du"); + ignoreMappings.add("hbm:tile.#null"); + ignoreMappings.add("hbm:tile.#void"); + ignoreMappings.add("hbm:tile.#ngtv"); + ignoreMappings.add("hbm:item.gun_rpg"); + ignoreMappings.add("hbm:item.gun_karl"); + ignoreMappings.add("hbm:item.gun_hk69"); + ignoreMappings.add("hbm:item.gun_skystinger"); + ignoreMappings.add("hbm:item.gun_revolver"); + ignoreMappings.add("hbm:item.gun_revolver_saturnite"); + ignoreMappings.add("hbm:item.gun_revolver_gold"); + ignoreMappings.add("hbm:item.gun_revolver_schrabidium"); + ignoreMappings.add("hbm:item.gun_revolver_cursed"); + ignoreMappings.add("hbm:item.gun_revolver_nightmare"); + ignoreMappings.add("hbm:item.gun_revolver_nightmare2"); + ignoreMappings.add("hbm:item.gun_revolver_pip"); + ignoreMappings.add("hbm:item.gun_revolver_nopip"); + ignoreMappings.add("hbm:item.gun_revolver_blackjack"); + ignoreMappings.add("hbm:item.gun_revolver_silver"); + ignoreMappings.add("hbm:item.gun_revolver_red"); + ignoreMappings.add("hbm:item.gun_bio_revolver"); + ignoreMappings.add("hbm:item.gun_deagle"); + ignoreMappings.add("hbm:item.gun_flechette"); + ignoreMappings.add("hbm:item.gun_ar15"); + ignoreMappings.add("hbm:item.gun_calamity"); + ignoreMappings.add("hbm:item.gun_lacunae"); + ignoreMappings.add("hbm:item.gun_proto"); + ignoreMappings.add("hbm:item.gun_mirv"); + ignoreMappings.add("hbm:item.gun_bf"); + ignoreMappings.add("hbm:item.gun_mp40"); + ignoreMappings.add("hbm:item.gun_thompson"); + ignoreMappings.add("hbm:item.gun_uzi_silencer"); + ignoreMappings.add("hbm:item.gun_uzi_saturnite"); + ignoreMappings.add("hbm:item.gun_uzi_saturnite_silencer"); + ignoreMappings.add("hbm:item.gun_uboinik"); + ignoreMappings.add("hbm:item.gun_remington"); + ignoreMappings.add("hbm:item.gun_supershotgun"); + ignoreMappings.add("hbm:item.gun_benelli"); + ignoreMappings.add("hbm:item.gun_ks23"); + ignoreMappings.add("hbm:item.gun_sauer"); + ignoreMappings.add("hbm:item.gun_lever_action"); + ignoreMappings.add("hbm:item.gun_lever_action_dark"); + ignoreMappings.add("hbm:item.gun_lever_action_sonata"); + ignoreMappings.add("hbm:item.gun_bolt_action"); + ignoreMappings.add("hbm:item.gun_bolt_action_green"); + ignoreMappings.add("hbm:item.gun_bolt_action_saturnite"); + ignoreMappings.add("hbm:item.gun_mymy"); + ignoreMappings.add("hbm:item.gun_b93"); + ignoreMappings.add("hbm:item.gun_xvl1456"); + ignoreMappings.add("hbm:item.gun_xvl1456_ammo"); + ignoreMappings.add("hbm:item.gun_osipr"); + ignoreMappings.add("hbm:item.gun_osipr_ammo"); + ignoreMappings.add("hbm:item.gun_osipr_ammo2"); + ignoreMappings.add("hbm:item.gun_immolator"); + ignoreMappings.add("hbm:item.gun_immolator_ammo"); + ignoreMappings.add("hbm:item.gun_cryolator"); + ignoreMappings.add("hbm:item.gun_mp"); + ignoreMappings.add("hbm:item.gun_bolter_digamma"); + ignoreMappings.add("hbm:item.gun_zomg"); + ignoreMappings.add("hbm:item.gun_super_shotgun"); + ignoreMappings.add("hbm:item.gun_moist_nugget"); + ignoreMappings.add("hbm:item.gun_revolver_inverted"); + ignoreMappings.add("hbm:item.gun_emp"); + ignoreMappings.add("hbm:item.gun_emp_ammo"); + ignoreMappings.add("hbm:item.gun_jack"); + ignoreMappings.add("hbm:item.gun_jack_ammo"); + ignoreMappings.add("hbm:item.gun_spark"); + ignoreMappings.add("hbm:item.gun_spark_ammo"); + ignoreMappings.add("hbm:item.gun_hp"); + ignoreMappings.add("hbm:item.gun_hp_ammo"); + ignoreMappings.add("hbm:item.gun_euthanasia"); + ignoreMappings.add("hbm:item.gun_euthanasia_ammo"); + ignoreMappings.add("hbm:item.gun_defabricator"); + ignoreMappings.add("hbm:item.gun_defabricator_ammo"); + ignoreMappings.add("hbm:item.gun_vortex"); + ignoreMappings.add("hbm:item.gun_waluigi"); + ignoreMappings.add("hbm:item.gun_darter"); + ignoreMappings.add("hbm:item.gun_glass_cannon"); + ignoreMappings.add("hbm:item.gun_lunatic_marksman"); + ignoreMappings.add("hbm:item.gun_uac_pistol"); + ignoreMappings.add("hbm:item.ammo_misc"); + ignoreMappings.add("hbm:item.ammo_12gauge"); + ignoreMappings.add("hbm:item.ammo_20gauge"); + ignoreMappings.add("hbm:item.ammo_4gauge"); + ignoreMappings.add("hbm:item.ammo_357"); + ignoreMappings.add("hbm:item.ammo_44"); + ignoreMappings.add("hbm:item.ammo_5mm"); + ignoreMappings.add("hbm:item.ammo_9mm"); + ignoreMappings.add("hbm:item.ammo_45"); + ignoreMappings.add("hbm:item.ammo_556"); + ignoreMappings.add("hbm:item.ammo_762"); + ignoreMappings.add("hbm:item.ammo_22lr"); + ignoreMappings.add("hbm:item.ammo_50ae"); + ignoreMappings.add("hbm:item.ammo_50bmg"); + ignoreMappings.add("hbm:item.ammo_75bolt"); + ignoreMappings.add("hbm:item.ammo_rocket"); + ignoreMappings.add("hbm:item.ammo_grenade"); + ignoreMappings.add("hbm:item.ammo_shell"); + ignoreMappings.add("hbm:item.ammo_nuke"); + ignoreMappings.add("hbm:item.ammo_fuel"); + ignoreMappings.add("hbm:item.ammo_fireext"); + ignoreMappings.add("hbm:item.ammo_dart"); + ignoreMappings.add("hbm:item.ammo_stinger_rocket"); + ignoreMappings.add("hbm:item.ammo_luna_sniper"); + ignoreMappings.add("hbm:item.ammo_coilgun"); + ignoreMappings.add("hbm:item.ammo_cell"); + ignoreMappings.add("hbm:item.b_smoke1"); + ignoreMappings.add("hbm:item.b_smoke2"); + ignoreMappings.add("hbm:item.b_smoke3"); + ignoreMappings.add("hbm:item.b_smoke4"); + ignoreMappings.add("hbm:item.b_smoke5"); + ignoreMappings.add("hbm:item.b_smoke6"); + ignoreMappings.add("hbm:item.b_smoke7"); + ignoreMappings.add("hbm:item.b_smoke8"); + ignoreMappings.add("hbm:item.ln2_1"); + ignoreMappings.add("hbm:item.ln2_2"); + ignoreMappings.add("hbm:item.ln2_3"); + ignoreMappings.add("hbm:item.ln2_4"); + ignoreMappings.add("hbm:item.ln2_5"); + ignoreMappings.add("hbm:item.ln2_6"); + ignoreMappings.add("hbm:item.ln2_7"); + ignoreMappings.add("hbm:item.ln2_8"); + ignoreMappings.add("hbm:item.ln2_9"); + ignoreMappings.add("hbm:item.ln2_10"); + ignoreMappings.add("hbm:item.casing_357"); + ignoreMappings.add("hbm:item.casing_44"); + ignoreMappings.add("hbm:item.casing_9"); + ignoreMappings.add("hbm:item.casing_50"); + ignoreMappings.add("hbm:item.casing_buckshot"); + /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); remapItems.put("hbm:item.man_explosive8", ModItems.explosive_lenses); remapItems.put("hbm:item.briquette_lignite", ModItems.briquette); - + remapItems.put("hbm:item.antiknock", ModItems.fuel_additive); + for(MissingMapping mapping : event.get()) { - + // ignore all ammo prefixes because those are from the time we threw out all the ammo items if(mapping.name.startsWith("hbm:item.ammo_")) { mapping.ignore(); @@ -1141,9 +1642,9 @@ public class MainRegistry { mapping.ignore(); continue; } - + if(mapping.type == GameRegistry.Type.ITEM) { - + if(remapItems.get(mapping.name) != null) { mapping.remap(remapItems.get(mapping.name)); continue; diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 800a62fbb..9debc9d25 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1,32 +1,18 @@ package com.hbm.main; -import java.lang.reflect.Field; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Random; - -import org.apache.commons.lang3.math.NumberUtils; -import org.apache.logging.log4j.Level; - +import api.hbm.energymk2.Nodespace; +import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.hbm.blocks.IStepTickReceiver; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; -import com.hbm.entity.missile.EntityMissileBaseAdvanced; -import com.hbm.entity.missile.EntityMissileCustom; -import com.hbm.entity.mob.EntityCyberCrab; -import com.hbm.entity.mob.EntityDuck; -import com.hbm.entity.mob.EntityCreeperNuclear; -import com.hbm.entity.mob.EntityQuackos; +import com.hbm.config.RadiationConfig; +import com.hbm.entity.mob.*; +import com.hbm.entity.mob.ai.EntityAIFireGun; import com.hbm.entity.mob.EntityCreeperTainted; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.entity.projectile.EntityBurningFOEQ; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.extprop.HbmLivingProps; @@ -34,49 +20,39 @@ import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; import com.hbm.handler.BobmazonOfferFactory; import com.hbm.handler.BossSpawnHandler; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.EntityEffectHandler; import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IBomb; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.handler.neutron.NeutronNodeWorld; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.handler.SiegeOrchestrator; +import com.hbm.handler.threading.PacketThreading; import com.hbm.items.IEquipReceiver; import com.hbm.items.ModItems; -import com.hbm.items.armor.ArmorFSB; -import com.hbm.items.armor.IAttackHandler; -import com.hbm.items.armor.IDamageHandler; -import com.hbm.items.armor.ItemArmorMod; -import com.hbm.items.armor.ItemModRevive; -import com.hbm.items.armor.ItemModShackles; +import com.hbm.items.armor.*; import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.tool.ItemGuideBook.BookType; import com.hbm.items.weapon.ItemGunBase; -import com.hbm.lib.HbmCollection; -import com.hbm.lib.Library; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.factory.XFactory12ga; import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PermaSyncPacket; -import com.hbm.packet.PlayerInformPacket; +import com.hbm.packet.toclient.PermaSyncPacket; +import com.hbm.packet.toclient.PlayerInformPacket; +import com.hbm.particle.helper.BlackPowderCreator; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.network.RTTYSystem; -import com.hbm.util.AchievementHandler; -import com.hbm.util.ArmorRegistry; -import com.hbm.util.ArmorUtil; -import com.hbm.util.ContaminationUtil; -import com.hbm.util.EnchantmentUtil; -import com.hbm.util.EntityDamageUtil; -import com.hbm.util.EnumUtil; -import com.hbm.util.InventoryUtil; +import com.hbm.tileentity.network.RequestNetwork; +import com.hbm.util.*; import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.world.generator.TimedGenerator; - import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; @@ -84,20 +60,23 @@ import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.ReflectionHelper; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.PooledByteBufAllocator; import net.minecraft.block.Block; +import net.minecraft.command.CommandGameRule; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAITasks; +import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.monster.EntityCaveSpider; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntitySkeleton; -import net.minecraft.entity.monster.EntitySpider; -import net.minecraft.entity.monster.EntityZombie; -import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.monster.*; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.passive.EntityCow; import net.minecraft.entity.passive.EntityMooshroom; @@ -115,84 +94,87 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntitySign; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.ChatStyle; -import net.minecraft.util.EntityDamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.FoodStats; -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; +import net.minecraft.util.*; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.AnvilUpdateEvent; +import net.minecraftforge.event.CommandEvent; import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.event.entity.EntityEvent; import net.minecraftforge.event.entity.EntityEvent.EnteringChunk; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingDropsEvent; +import net.minecraftforge.event.entity.living.*; import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.living.LivingHurtEvent; -import net.minecraftforge.event.entity.living.LivingSpawnEvent; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.event.entity.player.PlayerUseItemEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; +import net.minecraftforge.event.entity.player.PlayerUseItemEvent; import net.minecraftforge.event.world.BlockEvent.BreakEvent; import net.minecraftforge.event.world.WorldEvent; +import org.apache.commons.lang3.math.NumberUtils; +import org.apache.logging.log4j.Level; + +import java.lang.reflect.Field; +import java.util.*; public class ModEventHandler { - + private static Random rand = new Random(); - + @SubscribeEvent public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { if(!event.player.worldObj.isRemote) { - event.player.addChatMessage(new ChatComponentText("Loaded world with Hbm's Nuclear Tech Mod " + RefStrings.VERSION + " for Minecraft 1.7.10!")); - if(HTTPHandler.newVersion) { - event.player.addChatMessage( - new ChatComponentText("New version " + HTTPHandler.versionNumber + " is available! Click ") - .setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)) - .appendSibling(new ChatComponentText("[here]") - .setChatStyle(new ChatStyle() - .setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT/releases")) - .setUnderlined(true) - .setColor(EnumChatFormatting.RED) + if(GeneralConfig.enableMOTD) { + event.player.addChatMessage(new ChatComponentText("Loaded world with Hbm's Nuclear Tech Mod " + RefStrings.VERSION + " for Minecraft 1.7.10!")); + + if(HTTPHandler.newVersion) { + event.player.addChatMessage( + new ChatComponentText("New version " + HTTPHandler.versionNumber + " is available! Click ") + .setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)) + .appendSibling(new ChatComponentText("[here]") + .setChatStyle(new ChatStyle() + .setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT/releases")) + .setUnderlined(true) + .setColor(EnumChatFormatting.RED) + ) ) - ) - .appendSibling(new ChatComponentText(" to download!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))) - ); + .appendSibling(new ChatComponentText(" to download!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))) + ); + } } - + if(MobConfig.enableDucks && event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasDucked")) PacketDispatcher.wrapper.sendTo(new PlayerInformPacket("Press O to Duck!", MainRegistry.proxy.ID_DUCK, 30_000), (EntityPlayerMP) event.player); - - if(event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasGuide")) { - event.player.inventory.addItemStackToInventory(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal())); - event.player.inventoryContainer.detectAndSendChanges(); - event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).setBoolean("hasGuide", true); + + + if(GeneralConfig.enableGuideBook) { + HbmPlayerProps props = HbmPlayerProps.getData(event.player); + + if(!props.hasReceivedBook) { + event.player.inventory.addItemStackToInventory(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal())); + event.player.inventoryContainer.detectAndSendChanges(); + props.hasReceivedBook = true; + } } } } - + @SubscribeEvent public void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event) { - + EntityPlayer player = event.player; - - if((player.getUniqueID().toString().equals(Library.Dr_Nostalgia) || player.getDisplayName().equals("Dr_Nostalgia")) && !player.worldObj.isRemote) { - + + if((player.getUniqueID().toString().equals(ShadyUtil.Dr_Nostalgia) || player.getDisplayName().equals("Dr_Nostalgia")) && !player.worldObj.isRemote) { + if(!player.inventory.hasItem(ModItems.hat)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.hat)); - + if(!player.inventory.hasItem(ModItems.beta)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.beta)); } @@ -200,68 +182,68 @@ public class ModEventHandler { @SubscribeEvent public void onEntityConstructing(EntityEvent.EntityConstructing event) { - + if(event.entity instanceof EntityPlayer) { - + EntityPlayer player = (EntityPlayer) event.entity; HbmPlayerProps.getData(player); //this already calls the register method if it's null so no further action required - + if(event.entity == MainRegistry.proxy.me()) BlockAshes.ashes = 0; } - + if(event.entity instanceof EntityLivingBase) { - + EntityLivingBase living = (EntityLivingBase) event.entity; HbmLivingProps.getData(living); //ditto } } @SubscribeEvent - public void onPlayerChaangeDimension(PlayerChangedDimensionEvent event) { + public void onPlayerChangeDimension(PlayerChangedDimensionEvent event) { EntityPlayer player = event.player; HbmPlayerProps data = HbmPlayerProps.getData(player); data.setKeyPressed(EnumKeybind.JETPACK, false); data.setKeyPressed(EnumKeybind.DASH, false); } - + @SubscribeEvent(priority = EventPriority.HIGHEST) public void onEntityDeathFirst(LivingDeathEvent event) { - + for(int i = 1; i < 5; i++) { - + ItemStack stack = event.entityLiving.getEquipmentInSlot(i); - + if(stack != null && stack.getItem() instanceof ItemArmor && ArmorModHandler.hasMods(stack)) { - + ItemStack revive = ArmorModHandler.pryMods(stack)[ArmorModHandler.extra]; - + if(revive != null) { - + //Classic revive if(revive.getItem() instanceof ItemModRevive) { revive.setItemDamage(revive.getItemDamage() + 1); - + if(revive.getItemDamage() >= revive.getMaxDamage()) { ArmorModHandler.removeMod(stack, ArmorModHandler.extra); } else { ArmorModHandler.applyMod(stack, revive); } - + event.entityLiving.setHealth(event.entityLiving.getMaxHealth()); event.entityLiving.addPotionEffect(new PotionEffect(Potion.resistance.id, 60, 99)); event.setCanceled(true); return; } - + //Shackles if(revive.getItem() instanceof ItemModShackles && HbmLivingProps.getRadiation(event.entityLiving) < 1000F) { - + revive.setItemDamage(revive.getItemDamage() + 1); - + int dmg = revive.getItemDamage(); ArmorModHandler.applyMod(stack, revive); - + event.entityLiving.setHealth(event.entityLiving.getMaxHealth()); HbmLivingProps.incrementRadiation(event.entityLiving, dmg * dmg); event.setCanceled(true); @@ -270,125 +252,104 @@ public class ModEventHandler { } } } - + } - + @SubscribeEvent public void onEntityDeath(LivingDeathEvent event) { - + HbmLivingProps.setRadiation(event.entityLiving, 0); - + if(event.entity.worldObj.isRemote) return; - + if(GeneralConfig.enableCataclysm) { EntityBurningFOEQ foeq = new EntityBurningFOEQ(event.entity.worldObj); foeq.setPositionAndRotation(event.entity.posX, 500, event.entity.posZ, 0.0F, 0.0F); event.entity.worldObj.spawnEntityInWorld(foeq); } - - if(event.entity.getUniqueID().toString().equals(Library.HbMinecraft) || event.entity.getCommandSenderName().equals("HbMinecraft")) { + + if(event.entity.getUniqueID().toString().equals(ShadyUtil.HbMinecraft) || event.entity.getCommandSenderName().equals("HbMinecraft")) { event.entity.dropItem(ModItems.book_of_, 1); } - + if(event.entity instanceof EntityCreeperTainted && event.source == ModDamageSource.boxcar) { - + for(Object o : event.entity.worldObj.getEntitiesWithinAABB(EntityPlayer.class, event.entity.boundingBox.expand(50, 50, 50))) { EntityPlayer player = (EntityPlayer)o; player.triggerAchievement(MainRegistry.bobHidden); } } - + if(!event.entityLiving.worldObj.isRemote) { - + if(event.source instanceof EntityDamageSource && ((EntityDamageSource)event.source).getEntity() instanceof EntityPlayer && !(((EntityDamageSource)event.source).getEntity() instanceof FakePlayer)) { - + if(event.entityLiving instanceof EntitySpider && event.entityLiving.getRNG().nextInt(500) == 0) { event.entityLiving.dropItem(ModItems.spider_milk, 1); } - + if(event.entityLiving instanceof EntityCaveSpider && event.entityLiving.getRNG().nextInt(100) == 0) { event.entityLiving.dropItem(ModItems.serum, 1); } - + if(event.entityLiving instanceof EntityAnimal && event.entityLiving.getRNG().nextInt(500) == 0) { event.entityLiving.dropItem(ModItems.bandaid, 1); } - - if(event.entityLiving instanceof IMob && event.entityLiving.getRNG().nextInt(1000) == 0) { - event.entityLiving.dropItem(ModItems.heart_piece, 1); + + if(event.entityLiving instanceof IMob) { + if(event.entityLiving.getRNG().nextInt(1000) == 0) event.entityLiving.dropItem(ModItems.heart_piece, 1); + if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.key_red_cracked, 1); + if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.launch_code_piece, 1); } - + if(event.entityLiving instanceof EntityCyberCrab && event.entityLiving.getRNG().nextInt(500) == 0) { event.entityLiving.dropItem(ModItems.wd40, 1); } } } } - + @SubscribeEvent(priority = EventPriority.LOWEST) public void onEntityDeathLast(LivingDeathEvent event) { - - EntityLivingBase entity = event.entityLiving; - - if(EntityDamageUtil.wasAttackedByV1(event.source)) { - NBTTagCompound vdat = new NBTTagCompound(); - vdat.setString("type", "giblets"); - vdat.setInteger("ent", entity.getEntityId()); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, entity.posX, entity.posY + entity.height * 0.5, entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY + entity.height * 0.5, entity.posZ, 150)); - - entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + entity.worldObj.rand.nextFloat() * 0.2F); - - EntityPlayer attacker = (EntityPlayer) ((EntityDamageSource)event.source).getEntity(); - - if(attacker.getDistanceSqToEntity(entity) < 100) { - attacker.heal(entity.getMaxHealth() * 0.25F); - } - } - if(event.entityLiving instanceof EntityPlayer) { - + EntityPlayer player = (EntityPlayer) event.entityLiving; - + for(int i = 0; i < player.inventory.getSizeInventory(); i++) { - + ItemStack stack = player.inventory.getStackInSlot(i); - + if(stack != null && stack.getItem() == ModItems.detonator_deadman) { - + if(stack.stackTagCompound != null) { - + int x = stack.stackTagCompound.getInteger("x"); int y = stack.stackTagCompound.getInteger("y"); int z = stack.stackTagCompound.getInteger("z"); if(!player.worldObj.isRemote && player.worldObj.getBlock(x, y, z) instanceof IBomb) { - + ((IBomb) player.worldObj.getBlock(x, y, z)).explode(player.worldObj, x, y, z); - + if(GeneralConfig.enableExtendedLogging) MainRegistry.logger.log(Level.INFO, "[DET] Tried to detonate block at " + x + " / " + y + " / " + z + " by dead man's switch from " + player.getDisplayName() + "!"); } - + player.inventory.setInventorySlotContents(i, null); } } } - - SiegeOrchestrator.playerDeathHook(player, event.source); - - } else { - SiegeOrchestrator.mobDeathHook(entity, event.source); } } - + @SubscribeEvent public void decorateMob(LivingSpawnEvent event) { EntityLivingBase entity = event.entityLiving; World world = event.world; - + if(!MobConfig.enableMobGear || entity.isChild() || world.isRemote) return; @@ -407,7 +368,7 @@ public class ModEventHandler { entity.setCurrentItemOrArmor(4, new ItemStack(ModItems.mask_of_infamy, 1, world.rand.nextInt(100))); if(rand.nextInt(1024) == 0) entity.setCurrentItemOrArmor(3, new ItemStack(ModItems.starmetal_plate, 1, world.rand.nextInt(ModItems.starmetal_plate.getMaxDamage()))); - + if(rand.nextInt(128) == 0) entity.setCurrentItemOrArmor(0, new ItemStack(ModItems.pipe_lead, 1, world.rand.nextInt(100))); if(rand.nextInt(128) == 0) @@ -435,98 +396,154 @@ public class ModEventHandler { } if(rand.nextInt(64) == 0) entity.setCurrentItemOrArmor(3, new ItemStack(ModItems.steel_plate, 1, world.rand.nextInt(ModItems.steel_plate.getMaxDamage()))); + + float soot = PollutionHandler.getPollution(entity.worldObj, MathHelper.floor_double(event.x), MathHelper.floor_double(event.y), MathHelper.floor_double(event.z), PollutionType.SOOT); + ItemStack bowReplacement = getSkelegun(soot, entity.worldObj.rand); + if(bowReplacement != null) { + entity.setCurrentItemOrArmor(0, bowReplacement); + addFireTask((EntityLiving) entity); + } } } - + + private static ItemStack getSkelegun(float soot, Random rand) { + if(!MobConfig.enableMobWeapons) return null; + if(rand.nextDouble() > Math.log(soot) * 0.25) return null; + + ArrayList pool = new ArrayList(); + pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_light_revolver), 12)); + pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_heavy_revolver), 8)); + + if(soot > 2) pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_pepperbox), 10)); + if(soot > 2) pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_henry), 8)); + if(soot > 2) pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_greasegun), 6)); + + if(soot > 4) pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_maresleg), 4)); + if(soot > 4) pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_uzi), 6)); + + if(soot > 8) pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_spas12), 3)); + if(soot > 8) pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_am180), 4)); + + if(soot > 12) pool.add(new WeightedRandomObject(new ItemStack(ModItems.gun_congolake), 1)); + + WeightedRandomObject selected = (WeightedRandomObject) WeightedRandom.getRandomItem(rand, pool); + + return selected.asStack(); + } + + // these fucking tasks keep stacking on top of themselves + private static void addFireTask(EntityLiving entity) { + entity.setEquipmentDropChance(0, 0); // Prevent dropping guns + + for(Object entry : entity.tasks.taskEntries) { + EntityAITasks.EntityAITaskEntry task = (EntityAITasks.EntityAITaskEntry) entry; + if(task.action instanceof EntityAIFireGun) return; + } + + entity.tasks.addTask(3, new EntityAIFireGun(entity)); + } + + @SubscribeEvent + public void addAITasks(EntityJoinWorldEvent event) { + if(event.world.isRemote || !(event.entity instanceof EntityLiving)) return; + + EntityLiving living = (EntityLiving) event.entity; + ItemStack held = living.getHeldItem(); + + if(held != null && held.getItem() instanceof ItemGunBaseNT) { + addFireTask(living); + } + } + @SubscribeEvent public void onItemToss(ItemTossEvent event) { - + ItemStack yeet = event.entityItem.getEntityItem(); - + if(yeet.getItem() instanceof ItemArmor && ArmorModHandler.hasMods(yeet)) { - + ItemStack[] mods = ArmorModHandler.pryMods(yeet); ItemStack cladding = mods[ArmorModHandler.cladding]; - + if(cladding != null && cladding.getItem() == ModItems.cladding_obsidian) { ReflectionHelper.setPrivateValue(Entity.class, event.entityItem, true, "field_149119_a", "field_83001_bt", "field_149500_a", "invulnerable"); } } - + if(yeet.getItem() == ModItems.bismuth_tool) { ReflectionHelper.setPrivateValue(Entity.class, event.entityItem, true, "field_149119_a", "field_83001_bt", "field_149500_a", "invulnerable"); } } - + @SubscribeEvent public void onLivingDrop(LivingDropsEvent event) { - + if(!event.entityLiving.worldObj.isRemote) { boolean contaminated = HbmLivingProps.getContagion(event.entityLiving) > 0; - + if(contaminated) { - + for(EntityItem item : event.drops) { ItemStack stack = item.getEntityItem(); - + if(!stack.hasTagCompound()) { stack.stackTagCompound = new NBTTagCompound(); } - + stack.stackTagCompound.setBoolean("ntmContagion", true); } } } } - + @SubscribeEvent public void onLivingUpdate(LivingUpdateEvent event) { - + ItemStack[] prevArmor = event.entityLiving.previousEquipment; - if(event.entityLiving instanceof EntityPlayer && prevArmor != null && event.entityLiving.getHeldItem() != null + if(event.entityLiving instanceof EntityPlayer && prevArmor != null && event.entityLiving.getHeldItem() != null && (prevArmor[0] == null || prevArmor[0].getItem() != event.entityLiving.getHeldItem().getItem()) && event.entityLiving.getHeldItem().getItem() instanceof IEquipReceiver) { - ((IEquipReceiver)event.entityLiving.getHeldItem().getItem()).onEquip((EntityPlayer) event.entityLiving); + ((IEquipReceiver)event.entityLiving.getHeldItem().getItem()).onEquip((EntityPlayer) event.entityLiving, event.entityLiving.getHeldItem()); } - + for(int i = 1; i < 5; i++) { - + ItemStack prev = prevArmor != null ? prevArmor[i] : null; ItemStack armor = event.entityLiving.getEquipmentInSlot(i); - + boolean reapply = prevArmor != null && !ItemStack.areItemStacksEqual(prev, armor); - + if(reapply) { - + if(prev != null && ArmorModHandler.hasMods(prev)) { - + for(ItemStack mod : ArmorModHandler.pryMods(prev)) { - + if(mod != null && mod.getItem() instanceof ItemArmorMod) { - + Multimap map = ((ItemArmorMod)mod.getItem()).getModifiers(prev); - + if(map != null) event.entityLiving.getAttributeMap().removeAttributeModifiers(map); } } } } - + if(armor != null && ArmorModHandler.hasMods(armor)) { - + for(ItemStack mod : ArmorModHandler.pryMods(armor)) { - + if(mod != null && mod.getItem() instanceof ItemArmorMod) { ((ItemArmorMod)mod.getItem()).modUpdate(event.entityLiving, armor); HazardSystem.applyHazards(mod, event.entityLiving); - + if(reapply) { - + Multimap map = ((ItemArmorMod)mod.getItem()).getModifiers(armor); - + if(map != null) event.entityLiving.getAttributeMap().applyAttributeModifiers(map); } @@ -534,55 +551,73 @@ public class ModEventHandler { } } } - + EntityEffectHandler.onUpdate(event.entityLiving); - + if(!event.entity.worldObj.isRemote && !(event.entityLiving instanceof EntityPlayer)) { HazardSystem.updateLivingInventory(event.entityLiving); } } - + @SubscribeEvent(priority = EventPriority.LOWEST) public void onLoad(WorldEvent.Load event) { BobmazonOfferFactory.init(); } - + + @SubscribeEvent + public void onUnload(WorldEvent.Unload event) { + NeutronNodeWorld.removeAllWorlds(); // Remove world from worlds when unloaded to avoid world issues. + NeutronNodeWorld.removeAllNodes(); // Remove all nodes. + } + + public static boolean didSit = false; + public static Field reference = null; + @SubscribeEvent public void worldTick(WorldTickEvent event) { - + /// RADIATION STUFF START /// if(event.world != null && !event.world.isRemote) { - + + if(reference != null) { + for(Object player : event.world.playerEntities) { + if(((EntityPlayer) player).ridingEntity != null) { didSit = true; } + } + if(didSit && event.world.getTotalWorldTime() % (1 * 20 * 20) == 0) { + try { reference.setFloat(null, (float) (rand.nextGaussian() * 0.1 + Math.PI)); } catch(Throwable e) { } + } + } + int thunder = AuxSavedData.getThunder(event.world); - + if(thunder > 0) AuxSavedData.setThunder(event.world, thunder - 1); - + if(!event.world.loadedEntityList.isEmpty()) { - + List oList = new ArrayList(); oList.addAll(event.world.loadedEntityList); - + /** * REMOVE THIS V V V */ for(Object e : oList) { if(e instanceof EntityLivingBase) { - + //effect for radiation EntityLivingBase entity = (EntityLivingBase) e; - + if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode) continue; - + float eRad = HbmLivingProps.getRadiation(entity); - + if(entity.getClass().equals(EntityCreeper.class) && eRad >= 200 && entity.getHealth() > 0) { - + if(event.world.rand.nextInt(3) == 0 ) { EntityCreeperNuclear creep = new EntityCreeperNuclear(event.world); creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - + if(!entity.isDead) if(!event.world.isRemote) event.world.spawnEntityInWorld(creep); @@ -591,7 +626,7 @@ public class ModEventHandler { entity.attackEntityFrom(ModDamageSource.radiation, 100F); } continue; - + } else if(entity instanceof EntityCow && !(entity instanceof EntityMooshroom) && eRad >= 50) { EntityMooshroom creep = new EntityMooshroom(event.world); creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); @@ -601,47 +636,47 @@ public class ModEventHandler { event.world.spawnEntityInWorld(creep); entity.setDead(); continue; - + } else if(entity instanceof EntityVillager && eRad >= 500) { EntityZombie creep = new EntityZombie(event.world); creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - + if(!entity.isDead) if(!event.world.isRemote) event.world.spawnEntityInWorld(creep); entity.setDead(); continue; } else if(entity.getClass().equals(EntityDuck.class) && eRad >= 200) { - + EntityQuackos quacc = new EntityQuackos(event.world); quacc.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - + if(!entity.isDead && !event.world.isRemote) event.world.spawnEntityInWorld(quacc); - + entity.setDead(); continue; } - + if(eRad < 200 || ContaminationUtil.isRadImmune(entity)) continue; - + if(eRad > 2500) HbmLivingProps.setRadiation(entity, 2500); - + if(eRad >= 1000) { entity.attackEntityFrom(ModDamageSource.radiation, 1000F); HbmLivingProps.setRadiation(entity, 0); - + if(entity.getHealth() > 0) { entity.setHealth(0); entity.onDeath(ModDamageSource.radiation); } - + if(entity instanceof EntityPlayer) ((EntityPlayer)entity).triggerAchievement(MainRegistry.achRadDeath); - + } else if(eRad >= 800) { if(event.world.rand.nextInt(300) == 0) entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 30, 0)); @@ -653,7 +688,7 @@ public class ModEventHandler { entity.addPotionEffect(new PotionEffect(Potion.poison.id, 3 * 20, 2)); if(event.world.rand.nextInt(700) == 0) entity.addPotionEffect(new PotionEffect(Potion.wither.id, 3 * 20, 1)); - + } else if(eRad >= 600) { if(event.world.rand.nextInt(300) == 0) entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 30, 0)); @@ -663,7 +698,7 @@ public class ModEventHandler { entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 10 * 20, 2)); if(event.world.rand.nextInt(500) == 0) entity.addPotionEffect(new PotionEffect(Potion.poison.id, 3 * 20, 1)); - + } else if(eRad >= 400) { if(event.world.rand.nextInt(300) == 0) entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 30, 0)); @@ -671,18 +706,18 @@ public class ModEventHandler { entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 5 * 20, 0)); if(event.world.rand.nextInt(300) == 0) entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 5 * 20, 1)); - + } else if(eRad >= 200) { if(event.world.rand.nextInt(300) == 0) entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 0)); if(event.world.rand.nextInt(500) == 0) entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 5 * 20, 0)); - + if(entity instanceof EntityPlayer) ((EntityPlayer)entity).triggerAchievement(MainRegistry.achRadPoison); } } - + if(e instanceof EntityItem) { EntityItem item = (EntityItem) e; HazardSystem.updateDroppedItem(item); @@ -693,37 +728,36 @@ public class ModEventHandler { */ } /// RADIATION STUFF END /// - - + + if(event.phase == Phase.END) { EntityRailCarBase.updateMotion(event.world); } } - + if(event.phase == Phase.START) { BossSpawnHandler.rollTheDice(event.world); TimedGenerator.automaton(event.world, 100); - SiegeOrchestrator.update(event.world); } } - + @SubscribeEvent public void onEntityAttacked(LivingAttackEvent event) { - + EntityLivingBase e = event.entityLiving; if(e instanceof EntityPlayer) { - + EntityPlayer player = (EntityPlayer) e; - + if(ArmorUtil.checkArmor(player, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots)) { HbmPlayerProps.plink(player, "random.break", 0.5F, 1.0F + e.getRNG().nextFloat() * 0.5F); event.setCanceled(true); } - + if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof ArmorFSB) ((ArmorFSB)player.inventory.armorInventory[2].getItem()).handleAttack(event); - + for(ItemStack stack : player.inventory.armorInventory) { if(stack != null && stack.getItem() instanceof IAttackHandler) { ((IAttackHandler)stack.getItem()).handleAttack(event, stack); @@ -731,16 +765,16 @@ public class ModEventHandler { } } } - + @SubscribeEvent public void onEntityDamaged(LivingHurtEvent event) { - + EntityLivingBase e = event.entityLiving; - + if(e instanceof EntityPlayer) { - + EntityPlayer player = (EntityPlayer) e; - + HbmPlayerProps props = HbmPlayerProps.getData(player); if(props.shield > 0) { float reduce = Math.min(props.shield, event.ammount); @@ -749,52 +783,35 @@ public class ModEventHandler { } props.lastDamage = player.ticksExisted; } - + if(HbmLivingProps.getContagion(e) > 0 && event.ammount < 100) event.ammount *= 2F; - - /// V1 /// - if(EntityDamageUtil.wasAttackedByV1(event.source)) { - EntityPlayer attacker = (EntityPlayer) ((EntityDamageSource)event.source).getEntity(); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setInteger("count", (int)Math.min(e.getMaxHealth() / 2F, 250)); - data.setDouble("motion", 0.1D); - data.setString("mode", "blockdust"); - data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY, e.posZ, 50)); - - if(attacker.getDistanceSqToEntity(e) < 25) { - attacker.heal(event.ammount * 0.5F); - } - } - + /// ARMOR MODS /// for(int i = 1; i < 5; i++) { - + ItemStack armor = e.getEquipmentInSlot(i); - + if(armor != null && ArmorModHandler.hasMods(armor)) { - + for(ItemStack mod : ArmorModHandler.pryMods(armor)) { - + if(mod != null && mod.getItem() instanceof ItemArmorMod) { ((ItemArmorMod)mod.getItem()).modDamage(event, armor); } } } } - + if(e instanceof EntityPlayer) { - + EntityPlayer player = (EntityPlayer) e; - + /// FSB ARMOR /// if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof ArmorFSB) ((ArmorFSB)player.inventory.armorInventory[2].getItem()).handleHurt(event); - - + + for(ItemStack stack : player.inventory.armorInventory) { if(stack != null && stack.getItem() instanceof IDamageHandler) { ((IDamageHandler)stack.getItem()).handleDamage(event, stack); @@ -802,120 +819,152 @@ public class ModEventHandler { } } } - + @SubscribeEvent public void onPlayerFall(PlayerFlyableFallEvent event) { - + EntityPlayer e = event.entityPlayer; - + if(e.inventory.armorInventory[2] != null && e.inventory.armorInventory[2].getItem() instanceof ArmorFSB) ((ArmorFSB)e.inventory.armorInventory[2].getItem()).handleFall(e); } - + + // only for the ballistic gauntlet! contains dangerous conditional returns! @SubscribeEvent public void onPlayerPunch(AttackEntityEvent event) { - + EntityPlayer player = event.entityPlayer; ItemStack chestplate = player.inventory.armorInventory[2]; - - if(player.getHeldItem() == null && chestplate != null && ArmorModHandler.hasMods(chestplate)) { + + if(!player.worldObj.isRemote && chestplate != null && ArmorModHandler.hasMods(chestplate)) { + + if(player.getHeldItem() != null && player.getHeldItem().getAttributeModifiers().containsKey(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName())) return; + ItemStack[] mods = ArmorModHandler.pryMods(chestplate); ItemStack servo = mods[ArmorModHandler.servos]; - - if(servo != null && servo.getItem() == ModItems.ballistic_gauntlet) { - - BulletConfiguration firedConfig = null; - for(Integer config : HbmCollection.g12) { - BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); - - if(InventoryUtil.doesPlayerHaveAStack(player, cfg.ammo, true, true)) { - firedConfig = cfg; + if(servo != null && servo.getItem() == ModItems.ballistic_gauntlet) { + + BulletConfig firedConfig = null; + BulletConfig[] gauntletConfigs = new BulletConfig[] {XFactory12ga.g12_bp, XFactory12ga.g12_bp_magnum, XFactory12ga.g12_bp_slug, XFactory12ga.g12, XFactory12ga.g12_slug, XFactory12ga.g12_flechette, XFactory12ga.g12_magnum, XFactory12ga.g12_explosive, XFactory12ga.g12_phosphorus}; + + for(BulletConfig config : gauntletConfigs) { + + if(InventoryUtil.doesPlayerHaveAStack(player, config.ammo, true, true)) { + firedConfig = config; break; } } - + if(firedConfig != null) { - int bullets = firedConfig.bulletsMin; - - if(firedConfig.bulletsMax > firedConfig.bulletsMin) { - bullets += player.getRNG().nextInt(firedConfig.bulletsMax - firedConfig.bulletsMin); + int bullets = firedConfig.projectilesMin; + + if(firedConfig.projectilesMax > firedConfig.projectilesMin) { + bullets += player.getRNG().nextInt(firedConfig.projectilesMax - firedConfig.projectilesMin); } - + for(int i = 0; i < bullets; i++) { - EntityBulletBase bullet = new EntityBulletBase(player.worldObj, BulletConfigSyncingUtil.getKey(firedConfig), player); - player.worldObj.spawnEntityInWorld(bullet); + EntityBulletBaseMK4 mk4 = new EntityBulletBaseMK4(player, firedConfig, 15F, 0F, -0.1875, -0.0625, 0.5); + player.worldObj.spawnEntityInWorld(mk4); + if(i == 0 && firedConfig.blackPowder) BlackPowderCreator.composeEffect(player.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F); } - + player.worldObj.playSoundAtEntity(player, "hbm:weapon.shotgunShoot", 1.0F, 1.0F); } } } } - + @SubscribeEvent public void onEntityJump(LivingJumpEvent event) { - + EntityLivingBase e = event.entityLiving; - + if(e instanceof EntityPlayer && ((EntityPlayer)e).inventory.armorInventory[2] != null && ((EntityPlayer)e).inventory.armorInventory[2].getItem() instanceof ArmorFSB) ((ArmorFSB)((EntityPlayer)e).inventory.armorInventory[2].getItem()).handleJump((EntityPlayer)e); } - + @SubscribeEvent public void onEntityFall(LivingFallEvent event) { - + EntityLivingBase e = event.entityLiving; - + if(e instanceof EntityPlayer && ((EntityPlayer)e).inventory.armorInventory[2] != null && ((EntityPlayer)e).inventory.armorInventory[2].getItem() instanceof ArmorFSB) ((ArmorFSB)((EntityPlayer)e).inventory.armorInventory[2].getItem()).handleFall((EntityPlayer)e); } - + + private static final UUID fopSpeed = UUID.fromString("e5a8c95d-c7a0-4ecf-8126-76fb8c949389"); + @SubscribeEvent public void onWingFlop(TickEvent.PlayerTickEvent event) { EntityPlayer player = event.player; - + if(event.phase == TickEvent.Phase.START) { - + if(player.getCurrentArmor(2) == null && !player.onGround) { - - boolean isBob = player.getUniqueID().toString().equals(Library.HbMinecraft) || player.getDisplayName().equals("HbMinecraft"); - boolean isOther = player.getUniqueID().toString().equals(Library.SolsticeUnlimitd) || player.getDisplayName().equals("SolsticeUnlimitd") || - player.getUniqueID().toString().equals(Library.the_NCR) || player.getDisplayName().equals("the_NCR"); - - if(isBob || isOther) { - + + if(player.getUniqueID().toString().equals(ShadyUtil.Barnaby99_x) || player.getDisplayName().equals("pheo7")) { + ArmorUtil.resetFlightTime(player); - + HbmPlayerProps props = HbmPlayerProps.getData(player); + + if(props.isJetpackActive()) { + + if(player.motionY < 0.4D) + player.motionY += 0.1D; + + Vec3 look = player.getLookVec(); + + if(Vec3.createVectorHelper(player.motionX, player.motionY, player.motionZ).lengthVector() < 2) { + player.motionX += look.xCoord * 0.2; + player.motionY += look.yCoord * 0.2; + player.motionZ += look.zCoord * 0.2; + + if(look.yCoord > 0) + player.fallDistance = 0; + } + } else if(props.enableBackpack && !player.isSneaking()) { + if(player.motionY < -0.2) player.motionY += 0.075D; + if(player.fallDistance > 0) player.fallDistance = 0; + } + } + + boolean isBob = player.getUniqueID().toString().equals(ShadyUtil.HbMinecraft) || player.getDisplayName().equals("HbMinecraft"); + boolean isOther = player.getUniqueID().toString().equals(ShadyUtil.the_NCR) || player.getDisplayName().equals("the_NCR"); + + if(isBob || isOther) { + + ArmorUtil.resetFlightTime(player); + if(player.fallDistance > 0) player.fallDistance = 0; - + if(player.motionY < -0.4D) player.motionY = -0.4D; - + HbmPlayerProps props = HbmPlayerProps.getData(player); - + if(isBob || player.getFoodStats().getFoodLevel() > 6) { - + if(props.isJetpackActive()) { - + double cap = (isBob ? 0.8D : 0.4D); - + if(player.motionY < cap) player.motionY += 0.15D; else player.motionY = cap + 0.15D; - + if(isOther) { if(player.getFoodStats().getSaturationLevel() > 0F) player.addExhaustion(4F); //burn up saturation so that super-saturating foods have no effect else player.addExhaustion(0.2F); //4:1 -> 0.05 hunger per tick or 1 per second } - + } else if(props.enableBackpack && !player.isSneaking()) { - + if(player.motionY < -1) player.motionY += 0.4D; else if(player.motionY < -0.1) @@ -929,35 +978,35 @@ public class ModEventHandler { else player.addExhaustion(0.04F); } - + } else if(!props.enableBackpack && player.isSneaking()) { - + if(player.motionY < -0.08) { - + double mo = player.motionY * (isBob ? -0.6 : -0.4); player.motionY += mo; - + Vec3 vec = player.getLookVec(); vec.xCoord *= mo; vec.yCoord *= mo; vec.zCoord *= mo; - + player.motionX += vec.xCoord; player.motionY += vec.yCoord; player.motionZ += vec.zCoord; } } } - + Vec3 orig = player.getLookVec(); Vec3 look = Vec3.createVectorHelper(orig.xCoord, 0, orig.zCoord).normalize(); double mod = props.enableBackpack ? (isBob ? 0.5D : 0.25D) : 0.125D; - + if(player.moveForward != 0) { player.motionX += look.xCoord * 0.35 * player.moveForward * mod; player.motionZ += look.zCoord * 0.35 * player.moveForward * mod; } - + if(player.moveStrafing != 0) { look.rotateAroundY((float) Math.PI * 0.5F); player.motionX += look.xCoord * 0.15 * player.moveStrafing * mod; @@ -965,54 +1014,65 @@ public class ModEventHandler { } } } + + if(player.getUniqueID().toString().equals(ShadyUtil.LePeeperSauvage) || player.getDisplayName().equals("LePeeperSauvage")) { + + Multimap multimap = HashMultimap.create(); + multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(fopSpeed, "FOP SPEED", 0.5, 1)); + player.getAttributeMap().removeAttributeModifiers(multimap); + + if(player.isSprinting()) { + player.getAttributeMap().applyAttributeModifiers(multimap); + } + } } } - + @SubscribeEvent public void onPlayerTick(TickEvent.PlayerTickEvent event) { - + EntityPlayer player = event.player; - + if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof ArmorFSB) ((ArmorFSB)player.inventory.armorInventory[2].getItem()).handleTick(event); - + if(player.ticksExisted == 100 || player.ticksExisted == 200) CraftingManager.crumple(); - + if(event.phase == TickEvent.Phase.START) { int x = MathHelper.floor_double(player.posX); int y = MathHelper.floor_double(player.posY - player.yOffset - 0.01); int z = MathHelper.floor_double(player.posZ); Block b = player.worldObj.getBlock(x, y, z); - + if(b instanceof IStepTickReceiver && !player.capabilities.isFlying) { IStepTickReceiver step = (IStepTickReceiver) b; step.onPlayerStep(player.worldObj, x, y, z, player); } } - + if(!player.worldObj.isRemote && event.phase == TickEvent.Phase.START) { - + /// GHOST FIX START /// - + if(!Float.isFinite(player.getHealth()) || !Float.isFinite(player.getAbsorptionAmount())) { player.addChatComponentMessage(new ChatComponentText("Your health has been restored!")); player.worldObj.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); player.setHealth(player.getMaxHealth()); player.setAbsorptionAmount(0); } - + /// GHOST FIX END /// - + /// BETA HEALTH START /// if(player.inventory.hasItem(ModItems.beta)) { - + if(player.getFoodStats().getFoodLevel() > 10) { player.heal(player.getFoodStats().getFoodLevel() - 10); } - + if(player.getFoodStats().getFoodLevel() != 10) { - + // Why can't you be normal?? try { Field food = ReflectionHelper.findField(FoodStats.class, "field_75127_a", "foodLevel"); @@ -1023,27 +1083,27 @@ public class ModEventHandler { /// BETA HEALTH END /// /// PU RADIATION START /// - - if(player.getUniqueID().toString().equals(Library.Pu_238)) { - + + if(player.getUniqueID().toString().equals(ShadyUtil.Pu_238)) { + List entities = player.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, player.boundingBox.expand(3, 3, 3)); - + for(EntityLivingBase e : entities) { - + if(e != player) { e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 300, 2)); } } } - + /// PU RADIATION END /// - + /*if(player instanceof EntityPlayerMP) { int x = (int) Math.floor(player.posX); int y = (int) Math.floor(player.posY - 0.01); int z = (int) Math.floor(player.posZ); - + if(player.worldObj.getTileEntity(x, y, z) instanceof IEnergyConductor) { PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(((IEnergyConductor) player.worldObj.getTileEntity(x, y, z)).getPowerNet() + ""), (EntityPlayerMP) player); } @@ -1052,96 +1112,161 @@ public class ModEventHandler { /// NEW ITEM SYS START /// HazardSystem.updatePlayerInventory(player); /// NEW ITEM SYS END /// - + /// SYNC START /// - if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new PermaSyncPacket((EntityPlayerMP) player), (EntityPlayerMP) player); + if(!player.worldObj.isRemote && player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new PermaSyncPacket((EntityPlayerMP) player), (EntityPlayerMP) player); /// SYNC END /// } - //TODO: rewrite this so it doesn't look like shit if(player.worldObj.isRemote && event.phase == event.phase.START && !player.isInvisible() && !player.isSneaking()) { - - if(player.getUniqueID().toString().equals(Library.HbMinecraft)) { - - int i = player.ticksExisted * 3; - - Vec3 vec = Vec3.createVectorHelper(3, 0, 0); - - vec.rotateAroundY((float) (i * Math.PI / 180D)); - - for(int k = 0; k < 5; k++) { - - vec.rotateAroundY((float) (1F * Math.PI / 180D)); - player.worldObj.spawnParticle("townaura", player.posX + vec.xCoord, player.posY + 1 + player.worldObj.rand.nextDouble() * 0.05, player.posZ + vec.zCoord, 0.0, 0.0, 0.0); - } - } - - if(player.getUniqueID().toString().equals(Library.Pu_238)) { - + + if(player.getUniqueID().toString().equals(ShadyUtil.Pu_238)) { + Vec3 vec = Vec3.createVectorHelper(3 * rand.nextDouble(), 0, 0); - vec.rotateAroundZ((float) (rand.nextDouble() * Math.PI)); vec.rotateAroundY((float) (rand.nextDouble() * Math.PI * 2)); - player.worldObj.spawnParticle("townaura", player.posX + vec.xCoord, player.posY + 1 + vec.yCoord, player.posZ + vec.zCoord, 0.0, 0.0, 0.0); } } + + // OREDBG + /*if(!event.player.worldObj.isRemote) { + for(BedrockOreType type : BedrockOreType.values()) { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name") + ": " + ((int) (ItemBedrockOreBase.getOreLevel((int) Math.floor(player.posX), (int) Math.floor(player.posZ), type) * 100) / 100D), 777 + type.ordinal()), (EntityPlayerMP) player); + } + }*/ + + // PRISMDBG + /*if(!event.player.worldObj.isRemote) { + ChunkRadiationHandlerPRISM prism = (ChunkRadiationHandlerPRISM) ChunkRadiationManager.proxy; + + RadPerWorld perWorld = prism.perWorld.get(player.worldObj); + + if(perWorld != null) { + SubChunk[] chunk = perWorld.radiation.get(new ChunkCoordIntPair(((int) Math.floor(player.posX)) >> 4, ((int) Math.floor(player.posZ)) >> 4)); + + if(chunk != null) { + + int y = ((int) Math.floor(player.posY)) >> 4; + + if(y >= 0 && y <= 15) { + SubChunk sub = chunk[y]; + + if(sub != null) { + float xSum = 0, ySum = 0, zSum = 0; + for(int i = 0; i < 16; i++) { + xSum += sub.xResist[i]; ySum += sub.yResist[i]; zSum += sub.zResist[i]; + } + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "FREE SPACE", 1), (EntityPlayerMP) player); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "FREE SPACE", 2), (EntityPlayerMP) player); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "" + sub.checksum + " - " + ((int) sub.radiation) + "RAD/s - " + sub.needsRebuild + + " - " + (int) xSum+ " - " + (int) ySum + " - " + (int) zSum, 3), (EntityPlayerMP) player); + } else { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "SUB IS NULL", 1), (EntityPlayerMP) player); + } + } else { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "OUTSIDE OF WORLD", 1), (EntityPlayerMP) player); + } + } else { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "CHUNK IS NULL", 1), (EntityPlayerMP) player); + } + } else { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "PERWORLD IS NULL", 1), (EntityPlayerMP) player); + } + }*/ } - + @SubscribeEvent public void onServerTick(TickEvent.ServerTickEvent event) { - - if(event.phase == event.phase.START) { + + if(event.phase == Phase.START) { + + // do other shit I guess? RTTYSystem.updateBroadcastQueue(); + RequestNetwork.updateEntries(); + TileEntityMachineRadarNT.updateSystem(); + Nodespace.updateNodespace(); + // bob i beg of you i need fluid nodespace :pray: + } + + // There is an issue here somewhere... + // I cannot, for the life of me, figure out why a single certain bug happens. + // Every 20-30 or so ticks, players will receive wrong/outdated/weird information in packets + // I have tried everything to see if I can get this to stop, but it just doesn't seem to work. + + // ^ Update ^ - I figured it out, when the packets were being made for some machines they were being created inside the thread, + // meaning sometimes the machine would change data *after* the packet was supposed to be sent, meaning incorrect data was being sent. + // This has since been fixed. + + if(event.phase == Phase.END) { + // As ByteBufs are added to the queue in `com.hbm.packet.toclient.PacketThreading`, they are processed by the packet thread. + // This waits until the thread is finished, which most of the time will be instantly since it has plenty of time to process in parallel to everything else. + PacketThreading.waitUntilThreadFinished(); + + NetworkHandler.flush(); // Flush ALL network packets. } } - + + @SubscribeEvent + public void commandEvent(CommandEvent event) { + ICommand command = event.command; + ICommandSender sender = event.sender; + if(command instanceof CommandGameRule) { + if(command.canCommandSenderUseCommand(sender)) { + command.processCommand(sender,event.parameters); + RBMKDials.refresh(sender.getEntityWorld()); // Refresh RBMK gamerules. + event.setCanceled(true); + } + } + } + @SubscribeEvent public void enteringChunk(EnteringChunk evt) { - - if(evt.entity instanceof EntityMissileBaseAdvanced) { - ((EntityMissileBaseAdvanced) evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); + + /*if(evt.entity instanceof EntityMissileBaseNT) { + ((EntityMissileBaseNT) evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); } if(evt.entity instanceof EntityMissileCustom) { ((EntityMissileCustom) evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); - } + }*/ } - + @SubscribeEvent public void onPlayerClone(net.minecraftforge.event.entity.player.PlayerEvent.Clone event) { - - NBTTagCompound data = new NBTTagCompound(); - HbmPlayerProps.getData(event.original).saveNBTData(data); - HbmPlayerProps.getData(event.entityPlayer).loadNBTData(data); + + ByteBuf buf = PooledByteBufAllocator.DEFAULT.buffer(); + HbmPlayerProps.getData(event.original).serialize(buf); + HbmPlayerProps.getData(event.entityPlayer).deserialize(buf); + buf.release(); } - + @SubscribeEvent public void itemCrafted(PlayerEvent.ItemCraftedEvent e) { AchievementHandler.fire(e.player, e.crafting); } - + @SubscribeEvent public void itemSmelted(PlayerEvent.ItemSmeltedEvent e) { AchievementHandler.fire(e.player, e.smelting); - + if(!e.player.worldObj.isRemote && e.smelting.getItem() == Items.iron_ingot && e.player.getRNG().nextInt(64) == 0) { - + if(!e.player.inventory.addItemStackToInventory(new ItemStack(ModItems.lodestone))) e.player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.lodestone), false); else e.player.inventoryContainer.detectAndSendChanges(); } - + if(!e.player.worldObj.isRemote && e.smelting.getItem() == ModItems.ingot_uranium && e.player.getRNG().nextInt(64) == 0) { - + if(!e.player.inventory.addItemStackToInventory(new ItemStack(ModItems.quartz_plutonium))) e.player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.quartz_plutonium), false); else e.player.inventoryContainer.detectAndSendChanges(); } } - + @SubscribeEvent public void onItemPickup(PlayerEvent.ItemPickupEvent event) { if(event.pickedUp.getEntityItem().getItem() == ModItems.canned_conserve && EnumUtil.grabEnumSafely(EnumFoodType.class, event.pickedUp.getEntityItem().getItemDamage()) == EnumFoodType.JIZZ) @@ -1149,51 +1274,51 @@ public class ModEventHandler { if(event.pickedUp.getEntityItem().getItem() == Items.slime_ball) event.player.triggerAchievement(MainRegistry.achSlimeball); } - + @SubscribeEvent public void onBlockBreak(BreakEvent event) { - + EntityPlayer player = event.getPlayer(); - + if(!(player instanceof EntityPlayerMP)) return; - + if(event.block == ModBlocks.stone_gneiss && !((EntityPlayerMP) player).func_147099_x().hasAchievementUnlocked(MainRegistry.achStratum)) { event.getPlayer().triggerAchievement(MainRegistry.achStratum); event.setExpToDrop(500); } - + if(event.block == Blocks.coal_ore || event.block == Blocks.coal_block || event.block == ModBlocks.ore_lignite) { - + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { int x = event.x + dir.offsetX; int y = event.y + dir.offsetY; int z = event.z + dir.offsetZ; - + if(event.world.rand.nextInt(2) == 0 && event.world.getBlock(x, y, z) == Blocks.air) event.world.setBlock(x, y, z, ModBlocks.gas_coal); } } - - if(!ArmorRegistry.hasProtection(player, 3, HazardClass.PARTICLE_FINE)) { - - float metal = PollutionHandler.getPollution(player.worldObj, event.x, event.y, event.z, PollutionType.HEAVYMETAL); - - if(metal < 5) return; - - if(metal < 10) { - player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 0)); - } else if(metal < 25) { - player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 1)); - } else { - player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + + if(RadiationConfig.enablePollution && RadiationConfig.enableLeadFromBlocks) { + if(!ArmorRegistry.hasProtection(player, 3, HazardClass.PARTICLE_FINE)) { + + float metal = PollutionHandler.getPollution(player.worldObj, event.x, event.y, event.z, PollutionType.HEAVYMETAL); + + if(metal < 5) return; + + if(metal < 10) { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 0)); + } else if(metal < 25) { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 1)); + } else { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + } } } } - - private static final String hash = "41eb77f138ce350932e33b6b26b233df9aad0c0c80c6a49cb9a54ddd8fae3f83"; - + @SubscribeEvent public void onClickSign(PlayerInteractEvent event) { @@ -1201,184 +1326,128 @@ public class ModEventHandler { int y = event.y; int z = event.z; World world = event.world; - - if(!world.isRemote && event.action == Action.RIGHT_CLICK_BLOCK && world.getBlock(x, y, z) == Blocks.standing_sign) { - + + if(!world.isRemote && event.action == Action.RIGHT_CLICK_BLOCK && world.getTileEntity(x, y, z) instanceof TileEntitySign) { + TileEntitySign sign = (TileEntitySign)world.getTileEntity(x, y, z); - - String result = smoosh(sign.signText[0], sign.signText[1], sign.signText[2], sign.signText[3]); - //System.out.println(result); - - if(result.equals(hash)) { + + String result = ShadyUtil.smoosh(sign.signText[0], sign.signText[1], sign.signText[2], sign.signText[3]); + + if(ShadyUtil.hashes.contains(result)) { world.func_147480_a(x, y, z, false); EntityItem entityitem = new EntityItem(world, x, y, z, new ItemStack(ModItems.bobmazon_hidden)); entityitem.delayBeforeCanPickup = 10; world.spawnEntityInWorld(entityitem); } } - } - - private String smoosh(String s1, String s2, String s3, String s4) { - - Random rand = new Random(); - String s = ""; - byte[] b1 = s1.getBytes(); - byte[] b2 = s2.getBytes(); - byte[] b3 = s3.getBytes(); - byte[] b4 = s4.getBytes(); - - if(b1.length == 0 || b2.length == 0 || b3.length == 0 || b4.length == 0) - return ""; - - s += s1; - rand.setSeed(b1[0]); - s += rand.nextInt(0xffffff); - - s += s2; - rand.setSeed(rand.nextInt(0xffffff) + b2[0]); - rand.setSeed(b2[0]); - s += rand.nextInt(0xffffff); - - s += s3; - rand.setSeed(rand.nextInt(0xffffff) + b3[0]); - rand.setSeed(b3[0]); - s += rand.nextInt(0xffffff); - - s += s4; - rand.setSeed(rand.nextInt(0xffffff) + b4[0]); - rand.setSeed(b4[0]); - s += rand.nextInt(0xffffff); - - //System.out.println(s); - - return getHash(s); - } - - private String getHash(String inp) { - - try { - MessageDigest sha256 = MessageDigest.getInstance("SHA-256"); - byte[] bytes = sha256.digest(inp.getBytes()); - String str = ""; - - for(int b : bytes) - str = str + Integer.toString((b & 0xFF) + 256, 16).substring(1); - - return str; - - } catch (NoSuchAlgorithmException e) { } - - return ""; - } - @SubscribeEvent public void chatEvent(ServerChatEvent event) { - + EntityPlayerMP player = event.player; String message = event.message; - + //boolean conditions for the illiterate, edition 1 //bellow you can see the header of an if-block. inside the brackets, there is a boolean statement. //that means nothing other than its value totaling either 'true' or 'false' //examples: 'true' would just mean true //'1 > 3' would equal false //'i < 10' would equal true if 'i' is smaller than 10, if equal or greater, it will result in false - + //let's start from the back: - - //this part means that the message's first character has to equal a '!': --------------------------+ - // | - //this is a logical AND operator: --------------------------------------------------------------+ | - // | | - //this is a reference to a field in | | - //Library.java containing a reference UUID: ---------------------------------------+ | | - // | | | - //this will compare said UUID with | | | - //the string representation of the | | | - //current player's UUID: -----------+ | | | - // | | | | - //another AND operator: ---------+ | | | | - // | | | | | - //this is a reference to a | | | | | - //boolean called | | | | | - //'enableDebugMode' which is | | | | | - //only set once by the mod's | | | | | - //config and is disabled by | | | | | - //default. "debug" is not a | | | | | - //substring of the message, nor | | | | | - //something that can be toggled | | | | | - //in any other way except for | | | | | - //the config file: | | | | | | - // V V V V V V - if(GeneralConfig.enableDebugMode && player.getUniqueID().toString().equals(Library.HbMinecraft) && message.startsWith("!")) { - + + //this part means that the message's first character has to equal a '!': ----------------------------+ + // | + //this is a logical AND operator: ----------------------------------------------------------------+ | + // | | + //this is a reference to a field in | | + //Library.java containing a reference UUID: -----------------------------------------+ | | + // | | | + //this will compare said UUID with | | | + //the string representation of the | | | + //current player's UUID: -----------+ | | | + // | | | | + //another AND operator: ---------+ | | | | + // | | | | | + //this is a reference to a | | | | | + //boolean called | | | | | + //'enableDebugMode' which is | | | | | + //only set once by the mod's | | | | | + //config and is disabled by | | | | | + //default. "debug" is not a | | | | | + //substring of the message, nor | | | | | + //something that can be toggled | | | | | + //in any other way except for | | | | | + //the config file: | | | | | | + // V V V V V V + if(GeneralConfig.enableDebugMode && player.getUniqueID().toString().equals(ShadyUtil.HbMinecraft) && message.startsWith("!")) { + String[] msg = message.split(" "); - + String m = msg[0].substring(1, msg[0].length()).toLowerCase(Locale.US); - + if("gv".equals(m)) { - + int id = 0; int size = 1; int meta = 0; - + if(msg.length > 1 && NumberUtils.isNumber(msg[1])) { id = (int)(double)NumberUtils.createDouble(msg[1]); } - + if(msg.length > 2 && NumberUtils.isNumber(msg[2])) { size = (int)(double)NumberUtils.createDouble(msg[2]); } - + if(msg.length > 3 && NumberUtils.isNumber(msg[3])) { meta = (int)(double)NumberUtils.createDouble(msg[3]); } - + Item item = Item.getItemById(id); - + if(item != null && size > 0 && meta >= 0) { player.inventory.addItemStackToInventory(new ItemStack(item, size, meta)); } } - + player.inventoryContainer.detectAndSendChanges(); event.setCanceled(true); } } - + @SubscribeEvent public void anvilUpdateEvent(AnvilUpdateEvent event) { - + if(event.left.getItem() instanceof ItemGunBase && event.right.getItem() == Items.enchanted_book) { - + event.output = event.left.copy(); - + Map mapright = EnchantmentHelper.getEnchantments(event.right); Iterator itr = mapright.keySet().iterator(); - + while(itr.hasNext()) { - + int i = ((Integer) itr.next()).intValue(); int j = ((Integer) mapright.get(Integer.valueOf(i))).intValue(); Enchantment e = Enchantment.enchantmentsList[i]; - + EnchantmentUtil.removeEnchantment(event.output, e); EnchantmentUtil.addEnchantment(event.output, e, j); } - + event.cost = 10; } } - + @SubscribeEvent public void onFoodEaten(PlayerUseItemEvent.Finish event) { - + ItemStack stack = event.item; - + if(stack != null && stack.getItem() instanceof ItemFood) { - + if(stack.hasTagCompound() && stack.getTagCompound().getBoolean("ntmCyanide")) { for(int i = 0; i < 10; i++) { event.entityPlayer.attackEntityFrom(rand.nextBoolean() ? ModDamageSource.euthanizedSelf : ModDamageSource.euthanizedSelf2, 1000); @@ -1386,17 +1455,17 @@ public class ModEventHandler { } } } - + @SubscribeEvent public void filterBrokenEntity(EntityJoinWorldEvent event) { - + Entity entity = event.entity; Entity[] parts = entity.getParts(); - + //MainRegistry.logger.error("Trying to spawn entity " + entity.getClass().getCanonicalName()); - + if(parts != null) { - + for(int i = 0; i < parts.length; i++) { if(parts[i] == null) { MainRegistry.logger.error("Prevented spawning of multipart entity " + entity.getClass().getCanonicalName() + " due to parts being null!"); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 9e3463f96..79ea907c7 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1,24 +1,10 @@ package com.hbm.main; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; -import java.util.Random; - -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; - import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.MoveContext; -import com.hbm.blocks.rail.IRailNTM.RailCheckType; -import com.hbm.blocks.rail.IRailNTM.RailContext; +import com.hbm.config.ClientConfig; import com.hbm.config.GeneralConfig; -import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; import com.hbm.entity.train.EntityRailCarRidable; @@ -28,30 +14,35 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.handler.GunConfiguration; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HazmatRegistry; +import com.hbm.handler.HbmKeybinds; import com.hbm.handler.ImpactWorldHandler; +import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IHoldableWeapon; import com.hbm.interfaces.IItemHUD; import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIArmorTable; -import com.hbm.items.ISyncButtons; +import com.hbm.inventory.gui.GUIScreenPreview; +import com.hbm.inventory.gui.GUIScreenWikiRender; import com.hbm.items.ModItems; -import com.hbm.items.armor.ArmorFSB; -import com.hbm.items.armor.ArmorFSBPowered; -import com.hbm.items.armor.ArmorNo9; -import com.hbm.items.armor.ItemArmorMod; -import com.hbm.items.armor.JetpackBase; +import com.hbm.items.armor.*; +import com.hbm.items.machine.ItemDepletedFuel; +import com.hbm.items.machine.ItemFluidDuct; +import com.hbm.items.machine.ItemRBMKPellet; import com.hbm.items.weapon.ItemGunBase; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.SyncButtonsPacket; +import com.hbm.packet.toserver.AuxButtonPacket; +import com.hbm.packet.toserver.GunButtonPacket; +import com.hbm.packet.toserver.KeybindPacket; import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations.Animation; import com.hbm.render.block.ct.CTStitchReceiver; +import com.hbm.render.item.weapon.sedna.ItemRenderWeaponBase; import com.hbm.render.util.RenderAccessoryUtility; import com.hbm.render.util.RenderOverhead; import com.hbm.render.util.RenderScreenOverlay; @@ -62,34 +53,26 @@ import com.hbm.sound.MovingSoundChopper; import com.hbm.sound.MovingSoundChopperMine; import com.hbm.sound.MovingSoundCrashing; import com.hbm.sound.MovingSoundPlayerLoop; -import com.hbm.sound.MovingSoundXVL1456; +import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound; import com.hbm.tileentity.bomb.TileEntityNukeCustom; import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry; import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType; import com.hbm.tileentity.machine.TileEntityNukeFurnace; -import com.hbm.util.I18nUtil; -import com.hbm.util.ItemStackUtil; -import com.hbm.util.LoggingUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.*; +import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; -import com.hbm.util.ArmorRegistry.HazardClass; +import com.hbm.util.DamageResistanceHandler; import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type; - -import api.hbm.item.IButtonReceiver; -import api.hbm.item.IClickReceiver; - -import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound; - import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent; -import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; @@ -111,6 +94,7 @@ import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.Slot; import net.minecraft.item.Item; @@ -120,100 +104,117 @@ import net.minecraft.network.play.client.C03PacketPlayer; import net.minecraft.network.play.client.C0CPacketInput; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; +import net.minecraft.util.*; import net.minecraft.world.World; import net.minecraft.world.WorldProviderSurface; import net.minecraftforge.client.GuiIngameForge; +import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.IRenderHandler; -import net.minecraftforge.client.event.FOVUpdateEvent; -import net.minecraftforge.client.event.GuiOpenEvent; -import net.minecraftforge.client.event.MouseEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.MinecraftForgeClient; +import net.minecraftforge.client.event.*; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.client.event.RenderHandEvent; -import net.minecraftforge.client.event.RenderItemInFrameEvent; -import net.minecraftforge.client.event.RenderLivingEvent; -import net.minecraftforge.client.event.RenderPlayerEvent; -import net.minecraftforge.client.event.RenderWorldLastEvent; -import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent17; import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.event.entity.player.ItemTooltipEvent; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +import java.lang.reflect.Method; +import java.util.*; public class ModEventHandlerClient { - + + public static final int flashDuration = 5_000; + public static long flashTimestamp; + public static final int shakeDuration = 1_500; + public static long shakeTimestamp; + @SubscribeEvent public void onOverlayRender(RenderGameOverlayEvent.Pre event) { - + EntityPlayer player = Minecraft.getMinecraft().thePlayer; - + + /// NUKE FLASH /// + if(event.type == ElementType.CROSSHAIRS && (flashTimestamp + flashDuration - System.currentTimeMillis()) > 0 && ClientConfig.NUKE_HUD_FLASH.get()) { + int width = event.resolution.getScaledWidth(); + int height = event.resolution.getScaledHeight(); + Tessellator tess = Tessellator.instance; + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F); + GL11.glDepthMask(false); + tess.startDrawingQuads(); + float brightness = (flashTimestamp + flashDuration - System.currentTimeMillis()) / (float) flashDuration; + tess.setColorRGBA_F(1F, 1F, 1F, brightness * 1F); + tess.addVertex(width, 0, 0); + tess.addVertex(0, 0, 0); + tess.addVertex(0, height, 0); + tess.addVertex(width, height, 0); + tess.draw(); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDepthMask(true); + return; + } + /// HANDLE GUN OVERLAYS /// if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemHUD) { ((IItemHUD)player.getHeldItem().getItem()).renderHUD(event, event.type, player, player.getHeldItem()); } - + /// HANDLE GEIGER COUNTER HUD /// if(event.type == ElementType.HOTBAR) { - + if(!(ArmorFSB.hasFSBArmor(player) && ((ArmorFSB)player.inventory.armorInventory[2].getItem()).customGeiger)) { - + if(player.inventory.hasItem(ModItems.geiger_counter)) { - + float rads = HbmLivingProps.getRadiation(player); - + RenderScreenOverlay.renderRadCounter(event.resolution, rads, Minecraft.getMinecraft().ingameGUI); } } } /// DODD DIAG HOOK FOR RBMK - if(event.type == ElementType.CROSSHAIRS) { + if(event.type == ElementType.CROSSHAIRS && ClientConfig.DODD_RBMK_DIAGNOSTIC.get()) { Minecraft mc = Minecraft.getMinecraft(); World world = mc.theWorld; MovingObjectPosition mop = mc.objectMouseOver; - + if(mop != null) { - + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { - + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ILookOverlay) { ((ILookOverlay) player.getHeldItem().getItem()).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); - + } else if(world.getBlock(mop.blockX, mop.blockY, mop.blockZ) instanceof ILookOverlay) { ((ILookOverlay) world.getBlock(mop.blockX, mop.blockY, mop.blockZ)).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); } + + /*List text = new ArrayList(); + text.add("Meta: " + world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ)); + ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text);*/ + } else if(mop.typeOfHit == mop.typeOfHit.ENTITY) { Entity entity = mop.entityHit; - + if(entity instanceof ILookOverlay) { ((ILookOverlay) entity).printHook(event, world, 0, 0, 0); } } } - - List torex = world.getEntitiesWithinAABB(EntityNukeTorex.class, player.boundingBox.expand(100, 100, 100)); - - if(!torex.isEmpty()) { - EntityNukeTorex t = torex.get(0); - List text = new ArrayList(); - text.add("Speed: " + t.getSimulationSpeed()); - text.add("Alpha: " + t.getAlpha()); - text.add("Age: " + t.ticksExisted + " / " + t.getMaxAge()); - text.add("Clouds: " + t.cloudlets.size()); - ILookOverlay.printGeneric(event, "DEBUG", 0xff0000, 0x4040000, text); - } - + /*List text = new ArrayList(); text.add("IMPACT: " + ImpactWorldHandler.getImpactForClient(world)); text.add("DUST: " + ImpactWorldHandler.getDustForClient(world)); text.add("FIRE: " + ImpactWorldHandler.getFireForClient(world)); ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text);*/ - + /*if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { ScaledResolution resolution = event.resolution; GL11.glPushMatrix(); @@ -225,139 +226,165 @@ public class ModEventHandlerClient { GL11.glPopMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); }*/ - + /*List text = new ArrayList(); MovingObjectPosition pos = Library.rayTrace(player, 500, 1, false, true, false); - + for(int i = 0; i < 2; i++) if(pos != null && pos.typeOfHit == pos.typeOfHit.BLOCK) { - + float yaw = player.rotationYaw; - + Vec3 next = Vec3.createVectorHelper(pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord); int it = 0; - + BlockPos anchor = new BlockPos(pos.blockX, pos.blockY, pos.blockZ); - + double distanceToCover = 4D * (i == 0 ? 1 : -1); - + + if(distanceToCover < 0) { + distanceToCover *= -1; + yaw += 180; + } + do { - + it++; - + if(it > 30) { world.createExplosion(player, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 5F, false); break; } - + int x = anchor.getX(); int y = anchor.getY(); int z = anchor.getZ(); Block block = world.getBlock(x, y, z); - + Vec3 rot = Vec3.createVectorHelper(0, 0, 1); rot.rotateAroundY((float) (-yaw * Math.PI / 180D)); - + if(block instanceof IRailNTM) { IRailNTM rail = (IRailNTM) block; RailContext info = new RailContext(); - + boolean flip = distanceToCover < 0; - + if(it == 1) { Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info, new MoveContext(RailCheckType.CORE, 0)); if(i == 0) world.spawnParticle("reddust", snap.xCoord, snap.yCoord + 0.25, snap.zCoord, 0.1, 1, 0.1); } - + Vec3 prev = next; next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info, new MoveContext(i == 0 ? RailCheckType.FRONT : RailCheckType.BACK, 0)); distanceToCover = info.overshoot; anchor = info.pos; if(i == 0) world.spawnParticle("reddust", next.xCoord, next.yCoord + 0.25, next.zCoord, 0, distanceToCover != 0 ? 0.5 : 0, 0); else world.spawnParticle("reddust", next.xCoord, next.yCoord + 0.25, next.zCoord, 0, distanceToCover != 0 ? 0.5 : 0, 1); - + double deltaX = next.xCoord - prev.xCoord; double deltaZ = next.zCoord - prev.zCoord; double radians = -Math.atan2(deltaX, deltaZ); yaw = (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI + (flip ? 180 : 0)); - + text.add(it + ": " + yaw); - + } else { break; } - + } while(distanceToCover != 0); - + ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text); }*/ } - + /// HANLDE ANIMATION BUSES /// - + for(int i = 0; i < HbmAnimations.hotbar.length; i++) { - - Animation animation = HbmAnimations.hotbar[i]; - - if(animation == null) - continue; - - long time = System.currentTimeMillis() - animation.startMillis; - - if(time > animation.animation.getDuration()) - HbmAnimations.hotbar[i] = null; + for(int j = 0; j < HbmAnimations.hotbar[i].length; j++) { + + Animation animation = HbmAnimations.hotbar[i][j]; + + if(animation == null) + continue; + + if(animation.holdLastFrame) + continue; + + long time = System.currentTimeMillis() - animation.startMillis; + + if(time > animation.animation.getDuration()) + HbmAnimations.hotbar[i][j] = null; + } } - + if(!ducked && Keyboard.isKeyDown(Keyboard.KEY_O) && Minecraft.getMinecraft().currentScreen == null) { ducked = true; PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(0, 0, 0, 999, 0)); } - + /// HANDLE SCOPE OVERLAY /// ItemStack held = player.getHeldItem(); - + if(player.isSneaking() && held != null && held.getItem() instanceof ItemGunBase && event.type == event.type.HOTBAR) { GunConfiguration config = ((ItemGunBase) held.getItem()).mainConfig; - + if(config.scopeTexture != null) { ScaledResolution resolution = event.resolution; RenderScreenOverlay.renderScope(resolution, config.scopeTexture); } } - + + if(held != null && held.getItem() instanceof ItemGunBaseNT && ItemGunBaseNT.aimingProgress == ItemGunBaseNT.prevAimingProgress && ItemGunBaseNT.aimingProgress == 1F && event.type == event.type.HOTBAR) { + ItemGunBaseNT gun = (ItemGunBaseNT) held.getItem(); + GunConfig cfg = gun.getConfig(held, 0); + if(cfg.getScopeTexture(held) != null) { + ScaledResolution resolution = event.resolution; + RenderScreenOverlay.renderScope(resolution, cfg.getScopeTexture(held)); + } + } + /// HANDLE FSB HUD /// ItemStack helmet = player.inventory.armorInventory[3]; - + if(helmet != null && helmet.getItem() instanceof ArmorFSB) { ((ArmorFSB)helmet.getItem()).handleOverlay(event, player); } if(!event.isCanceled() && event.type == event.type.HOTBAR) { - + HbmPlayerProps props = HbmPlayerProps.getData(player); if(props.getDashCount() > 0) { RenderScreenOverlay.renderDashBar(event.resolution, Minecraft.getMinecraft().ingameGUI, props); - + } } } - - @SubscribeEvent - public void onOverlayRender(RenderGameOverlayEvent.Post event) { - - /// HANDLE ELECTRIC FSB HUD /// - + + @SubscribeEvent(receiveCanceled = true) + public void onHUDRenderShield(RenderGameOverlayEvent.Pre event) { + EntityPlayer player = Minecraft.getMinecraft().thePlayer; - Tessellator tess = Tessellator.instance; - - if(!event.isCanceled() && event.type == event.type.HEALTH) { + + if(event.type == event.type.ARMOR) { + HbmPlayerProps props = HbmPlayerProps.getData(player); - if(props.maxShield > 0) { + if(props.getEffectiveMaxShield() > 0) { RenderScreenOverlay.renderShieldBar(event.resolution, Minecraft.getMinecraft().ingameGUI); } } - - if(!event.isCanceled() && event.type == event.type.ARMOR) { - - if(ForgeHooks.getTotalArmorValue(player) == 0/* && GuiIngameForge.left_height == 59*/) { + } + + @SubscribeEvent(receiveCanceled = true, priority = EventPriority.LOW) + public void onHUDRenderBar(RenderGameOverlayEvent.Post event) { + + /// HANDLE ELECTRIC FSB HUD /// + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + Tessellator tess = Tessellator.instance; + + if(event.type == event.type.ARMOR) { + + if(ForgeHooks.getTotalArmorValue(player) == 0) { GuiIngameForge.left_height -= 10; } @@ -373,8 +400,8 @@ public class ModEventHandlerClient { tess.startDrawingQuads(); for(int i = 0; i < (noHelmet ? 3 : 4); i++) { - - int top = height - GuiIngameForge.left_height + 6; + + int top = height - GuiIngameForge.left_height + 7; ItemStack stack = player.inventory.armorInventory[i]; @@ -402,12 +429,12 @@ public class ModEventHandlerClient { GL11.glEnable(GL11.GL_TEXTURE_2D); - } else if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof JetpackBase) { + } else if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof JetpackFueledBase) { ItemStack stack = player.inventory.armorInventory[2]; - float tot = (float) ((JetpackBase) stack.getItem()).getFuel(stack) / (float) ((JetpackBase) stack.getItem()).getMaxFill(stack); - + float tot = (float) ((JetpackFueledBase) stack.getItem()).getFuel(stack) / (float) ((JetpackFueledBase) stack.getItem()).getMaxFill(stack); + int top = height - GuiIngameForge.left_height + 3; GL11.glDisable(GL11.GL_TEXTURE_2D); @@ -428,48 +455,61 @@ public class ModEventHandlerClient { GL11.glEnable(GL11.GL_TEXTURE_2D); } - } } - + @SubscribeEvent public void setupFOV(FOVUpdateEvent event) { - + EntityPlayer player = Minecraft.getMinecraft().thePlayer; ItemStack held = player.getHeldItem(); - + if(held == null) return; if(!(held.getItem() instanceof ItemGunBase)) return; - + GunConfiguration config = ((ItemGunBase) held.getItem()).mainConfig; - + if(config == null) return; if(config.zoomFOV == 0F || !player.isSneaking()) return; - + if(config.absoluteFOV) { event.newfov = config.zoomFOV; } else { event.newfov += config.zoomFOV; } } - + + @SubscribeEvent + public void setupNewFOV(FOVUpdateEvent event) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + ItemStack held = player.getHeldItem(); + + if(held == null) return; + + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + if(!(customRenderer instanceof ItemRenderWeaponBase)) return; + ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; + event.newfov = renderGun.getViewFOV(held, event.fov); + } + public static boolean ducked = false; - + @SubscribeEvent public void preRenderEvent(RenderPlayerEvent.Pre event) { - + RenderPlayer renderer = event.renderer; AbstractClientPlayer player = (AbstractClientPlayer)event.entityPlayer; - + PotionEffect invis = player.getActivePotionEffect(Potion.invisibility); - + if(invis != null && invis.getAmplifier() > 0) event.setCanceled(true); if(player.getDisplayName().toLowerCase(Locale.US).equals("martmn")) { - + event.setCanceled(true); - + float pX = (float) (player.prevPosX + (player.posX - player.prevPosX) * (double)event.partialRenderTick); float pY = (float) (player.prevPosY + (player.posY - player.prevPosY) * (double)event.partialRenderTick); float pZ = (float) (player.prevPosZ + (player.posZ - player.prevPosZ) * (double)event.partialRenderTick); @@ -493,84 +533,73 @@ public class ModEventHandlerClient { t.addVertexWithUV(1, -1, 0, 1, 1); t.addVertexWithUV(-1, -1, 0, 0, 1); t.draw(); - + GL11.glEnable(GL11.GL_LIGHTING); - + GL11.glPopMatrix(); } - + ResourceLocation cloak = RenderAccessoryUtility.getCloakFromPlayer(player); - + if(cloak != null) player.func_152121_a(Type.CAPE, cloak); - + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IHoldableWeapon) { renderer.modelBipedMain.aimedBow = true; renderer.modelArmor.aimedBow = true; renderer.modelArmorChestplate.aimedBow = true; } } - + @SubscribeEvent public void onRenderArmorEvent(RenderPlayerEvent.SetArmorModel event) { - + EntityPlayer player = event.entityPlayer; - + for(int i = 0; i < 4; i++) { - + ItemStack armor = player.getCurrentArmor(i); - + if(armor != null && ArmorModHandler.hasMods(armor)) { - + for(ItemStack mod : ArmorModHandler.pryMods(armor)) { - + if(mod != null && mod.getItem() instanceof ItemArmorMod) { ((ItemArmorMod)mod.getItem()).modRender(event, armor); } } } - + //because armor that isn't ItemArmor doesn't render at all if(armor != null && armor.getItem() instanceof JetpackBase) { ((ItemArmorMod)armor.getItem()).modRender(event, armor); } } - + if(player.getCurrentArmor(2) == null && !player.isPotionActive(Potion.invisibility)) { - if(player.getUniqueID().toString().equals(Library.SolsticeUnlimitd) || player.getDisplayName().equals("SolsticeUnlimitd")) - RenderAccessoryUtility.renderSol(event); - if(player.getUniqueID().toString().equals(Library.HbMinecraft) || player.getDisplayName().equals("HbMinecraft")) - RenderAccessoryUtility.renderWings(event, 2); - if(player.getUniqueID().toString().equals(Library.the_NCR) || player.getDisplayName().equals("the_NCR")) - RenderAccessoryUtility.renderWings(event, 3); + if(player.getUniqueID().toString().equals(ShadyUtil.HbMinecraft) || player.getDisplayName().equals("HbMinecraft")) RenderAccessoryUtility.renderWings(event, 2); + if(player.getUniqueID().toString().equals(ShadyUtil.the_NCR) || player.getDisplayName().equals("the_NCR")) RenderAccessoryUtility.renderWings(event, 3); + if(player.getUniqueID().toString().equals(ShadyUtil.Barnaby99_x) || player.getDisplayName().equals("pheo7")) RenderAccessoryUtility.renderAxePack(event); + if(player.getUniqueID().toString().equals(ShadyUtil.LePeeperSauvage) || player.getDisplayName().equals("LePeeperSauvage")) RenderAccessoryUtility.renderFaggot(event); } } @SubscribeEvent public void clickHandler(MouseEvent event) { - + EntityPlayer player = Minecraft.getMinecraft().thePlayer; - + if(player.getHeldItem() != null) { - + Item held = player.getHeldItem().getItem(); - - if(held instanceof IClickReceiver) { - IClickReceiver rec = (IClickReceiver) held; - - if(rec.handleMouseInput(player.getHeldItem(), player, event.button, event.buttonstate)) { - event.setCanceled(true); - return; - } - } - + if(held instanceof ItemGunBase) { - + if(event.button == 0) event.setCanceled(true); - + ItemGunBase item = (ItemGunBase)player.getHeldItem().getItem(); - + if(event.button == 0 && !item.m1 && !item.m2) { item.m1 = true; PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 0)); @@ -582,98 +611,61 @@ public class ModEventHandlerClient { item.startActionClient(player.getHeldItem(), player.worldObj, player, false); } } - - if(held instanceof ISyncButtons) { - ISyncButtons rec = (ISyncButtons) held; - - if(rec.canReceiveMouse(player, player.getHeldItem(), event, event.button, event.buttonstate)) { - PacketDispatcher.wrapper.sendToServer(new SyncButtonsPacket(event.buttonstate, event.button)); - } - } - } - } - - @SubscribeEvent - public void keyEvent(KeyInputEvent event) { - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - if(player.getHeldItem() != null) { - - Item held = player.getHeldItem().getItem(); - - if(held instanceof IButtonReceiver) { - IButtonReceiver rec = (IButtonReceiver) held; - rec.handleKeyboardInput(player.getHeldItem(), player); - } } } @Spaghetti("please get this shit out of my face") @SubscribeEvent public void onPlaySound(PlaySoundEvent17 e) { - + EntityPlayer player = MainRegistry.proxy.me(); Minecraft mc = Minecraft.getMinecraft(); - + if(player != null && mc.theWorld != null) { int i = MathHelper.floor_double(player.posX); int j = MathHelper.floor_double(player.posY); int k = MathHelper.floor_double(player.posZ); Block block = mc.theWorld.getBlock(i, j, k); - + if(block == ModBlocks.vacuum) { e.result = null; return; } } - + ResourceLocation r = e.sound.getPositionedSoundLocation(); WorldClient wc = mc.theWorld; - + //Alright, alright, I give the fuck up, you've wasted my time enough with this bullshit. You win. //A winner is you. //Conglaturations. //Fuck you. - if(r.toString().equals("hbm:misc.nullTau") && Library.getClosestPlayerForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null) - { - EntityPlayer ent = Library.getClosestPlayerForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2); - - if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop) == null) { - MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundXVL1456(new ResourceLocation("hbm:weapon.tauChargeLoop2"), ent, EnumHbmSound.soundTauLoop)); - MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).setPitch(0.5F); - } else { - if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).getPitch() < 1.5F) - MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).setPitch(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).getPitch() + 0.01F); - } - } - if(r.toString().equals("hbm:misc.nullChopper") && Library.getClosestChopperForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null) { EntityHunterChopper ent = Library.getClosestChopperForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2); - + if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundChopperLoop) == null) { MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundChopper(new ResourceLocation("hbm:entity.chopperFlyingLoop"), ent, EnumHbmSound.soundChopperLoop)); MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundChopperLoop).setVolume(10.0F); } } - + if(r.toString().equals("hbm:misc.nullCrashing") && Library.getClosestChopperForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null) { EntityHunterChopper ent = Library.getClosestChopperForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2); - + if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundCrashingLoop) == null) { MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundCrashing(new ResourceLocation("hbm:entity.chopperCrashingLoop"), ent, EnumHbmSound.soundCrashingLoop)); MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundCrashingLoop).setVolume(10.0F); } } - + if(r.toString().equals("hbm:misc.nullMine") && Library.getClosestMineForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null) { EntityChopperMine ent = Library.getClosestMineForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2); - + if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundMineLoop) == null) { MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundChopperMine(new ResourceLocation("hbm:entity.chopperMineLoop"), ent, EnumHbmSound.soundMineLoop)); MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundMineLoop).setVolume(10.0F); @@ -689,67 +681,70 @@ public class ModEventHandlerClient { } } } - + @SubscribeEvent public void drawTooltip(ItemTooltipEvent event) { - + ItemStack stack = event.itemStack; List list = event.toolTip; - + + /// DAMAGE RESISTANCE /// + DamageResistanceHandler.addInfo(stack, list); + /// HAZMAT INFO /// List hazInfo = ArmorRegistry.hazardClasses.get(stack.getItem()); - + if(hazInfo != null) { - + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("hazard.prot")); for(HazardClass clazz : hazInfo) { list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey(clazz.lang)); } } else { - + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display protection info"); } } - + /// CLADDING (LEGACY) /// double rad = HazmatRegistry.getResistance(stack); rad = ((int)(rad * 1000)) / 1000D; if(rad > 0) list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.radResistance", rad)); - + /// ARMOR MODS /// if(stack.getItem() instanceof ItemArmor && ArmorModHandler.hasMods(stack)) { - + if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) && !(Minecraft.getMinecraft().currentScreen instanceof GUIArmorTable)) { - + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display installed armor mods"); - + } else { - + list.add(EnumChatFormatting.YELLOW + "Mods:"); - + ItemStack[] mods = ArmorModHandler.pryMods(stack); - + for(int i = 0; i < 8; i++) { - + if(mods[i] != null && mods[i].getItem() instanceof ItemArmorMod) { - + ((ItemArmorMod)mods[i].getItem()).addDesc(list, mods[i], stack); } } } } - + /// HAZARDS /// HazardSystem.addFullTooltip(stack, event.entityPlayer, list); - - if(event.showAdvancedItemTooltips) { + + if(event.showAdvancedItemTooltips && ClientConfig.ITEM_TOOLTIP_SHOW_OREDICT.get()) { List names = ItemStackUtil.getOreDictNames(stack); - + if(names.size() > 0) { list.add(EnumChatFormatting.BLUE + "Ore Dict:"); for(String s : names) { @@ -759,65 +754,73 @@ public class ModEventHandlerClient { list.add(EnumChatFormatting.RED + "No Ore Dict data!"); } } - + /// NUCLEAR FURNACE FUELS /// int breeder = TileEntityNukeFurnace.getFuelValue(stack); - + if(breeder != 0) { list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.furnace", breeder)); } - + /// CUSTOM NUKE /// ComparableStack comp = new ComparableStack(stack).makeSingular(); - CustomNukeEntry entry = TileEntityNukeCustom.entries.get(comp); - - if(entry != null) { - - if(!list.isEmpty()) - list.add(""); - - if(entry.entry == EnumEntryType.ADD) - list.add(EnumChatFormatting.GOLD + "Adds " + entry.value + " to the custom nuke stage " + entry.type); - if(entry.entry == EnumEntryType.MULT) - list.add(EnumChatFormatting.GOLD + "Adds multiplier " + entry.value + " to the custom nuke stage " + entry.type); + if(ClientConfig.ITEM_TOOLTIP_SHOW_CUSTOM_NUKE.get()) { + CustomNukeEntry entry = TileEntityNukeCustom.entries.get(comp); + + if(entry != null) { + + if(!list.isEmpty()) + list.add(""); + + if(entry.entry == EnumEntryType.ADD) + list.add(EnumChatFormatting.GOLD + "Adds " + entry.value + " to the custom nuke stage " + entry.type); + + if(entry.entry == EnumEntryType.MULT) + list.add(EnumChatFormatting.GOLD + "Adds multiplier " + entry.value + " to the custom nuke stage " + entry.type); + } } - + try { CanneryBase cannery = Jars.canneries.get(comp); if(cannery != null) { list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("cannery.f1")); + lastCannery = comp; + canneryTimestamp = System.currentTimeMillis(); } } catch(Exception ex) { list.add(EnumChatFormatting.RED + "Error loading cannery: " + ex.getLocalizedMessage()); } - + /*ItemStack copy = stack.copy(); List materials = Mats.getMaterialsFromItem(copy); - + if(!materials.isEmpty()) { for(MaterialStack mat : materials) { list.add(EnumChatFormatting.DARK_PURPLE + mat.material.names[0] + ": " + Mats.formatAmount(mat.amount * stack.stackSize)); } }*/ } - + + private static long canneryTimestamp; + private static ComparableStack lastCannery = null; + private ResourceLocation ashes = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_ash.png"); - + @SideOnly(Side.CLIENT) //@SubscribeEvent public void onRenderStorm(RenderHandEvent event) { - + if(BlockAshes.ashes == 0) return; - + GL11.glPushMatrix(); - + Minecraft mc = Minecraft.getMinecraft(); GL11.glRotatef((float)-mc.thePlayer.rotationYaw, 0, 1, 0); GL11.glRotatef((float)(mc.thePlayer.rotationPitch), 1, 0, 0); - + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); GL11.glDisable(GL11.GL_DEPTH_TEST); @@ -825,12 +828,12 @@ public class ModEventHandlerClient { GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glEnable(GL11.GL_ALPHA_TEST); - + int w = resolution.getScaledWidth(); int h = resolution.getScaledHeight(); double off = System.currentTimeMillis() / -10000D % 10000D; double aw = 25; - + Tessellator tessellator = Tessellator.instance; //int d = mc.theWorld.getLightBrightnessForSkyBlocks(MathHelper.floor_double(mc.thePlayer.posX), MathHelper.floor_double(mc.thePlayer.posY), MathHelper.floor_double(mc.thePlayer.posZ), 0); @@ -839,21 +842,21 @@ public class ModEventHandlerClient { int lX = lastBrightness % 65536; int lY = lastBrightness / 65536; float interp = (mc.theWorld.getTotalWorldTime() % 20) * 0.05F; - + if(mc.theWorld.getTotalWorldTime() == 1) lastBrightness = currentBrightness; - + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)(lX + (cX - lX) * interp) / 1.0F, (float)(lY + (cY - lY) * interp) / 1.0F); mc.entityRenderer.enableLightmap((double)event.partialTicks); - + mc.getTextureManager().bindTexture(ashes); - + for(int i = 1; i < 3; i++) { - + GL11.glRotatef(-15, 0, 0, 1); GL11.glColor4f(1.0F, 1.0F, 1.0F, BlockAshes.ashes / 256F * 0.98F / i); - + tessellator.startDrawingQuads(); tessellator.addVertexWithUV(-w * 0.25, h * 0.25, aw, 0.0D + off * i, 1.0D); tessellator.addVertexWithUV(w * 0.25, h * 0.25, aw, 1.0D + off * i, 1.0D); @@ -863,7 +866,7 @@ public class ModEventHandlerClient { } mc.entityRenderer.disableLightmap((double)event.partialTicks); - + GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL11.GL_BLEND); @@ -874,91 +877,204 @@ public class ModEventHandlerClient { public static int currentBrightness = 0; public static int lastBrightness = 0; - + + static boolean isRenderingItems = false; + @SubscribeEvent - public void clentTick(ClientTickEvent event) { - + public void clientTick(ClientTickEvent event) { + Minecraft mc = Minecraft.getMinecraft(); ArmorNo9.updateWorldHook(mc.theWorld); - - if(mc.gameSettings.renderDistanceChunks > 16 && GeneralConfig.enableRenderDistCheck && ! FMLClientHandler.instance().hasOptifine()) { + + boolean supportsHighRenderDistance = FMLClientHandler.instance().hasOptifine() || Loader.isModLoaded("angelica"); + + if(mc.gameSettings.renderDistanceChunks > 16 && GeneralConfig.enableRenderDistCheck && !supportsHighRenderDistance) { mc.gameSettings.renderDistanceChunks = 16; LoggingUtil.errorWithHighlight("========================== WARNING =========================="); - LoggingUtil.errorWithHighlight("Dangerous render distance detected: Values over 16 only work on 1.8+ or with Optifine installed!!"); + LoggingUtil.errorWithHighlight("Dangerous render distance detected: Values over 16 only work on 1.8+ or with Optifine/Angelica installed!!"); LoggingUtil.errorWithHighlight("Set '1.25_enableRenderDistCheck' in hbm.cfg to 'false' to disable this check."); LoggingUtil.errorWithHighlight("========================== WARNING =========================="); - LoggingUtil.errorWithHighlight("If you got this error after removing Optifine: Consider deleting your option files after removing mods."); + LoggingUtil.errorWithHighlight("If you got this error after removing Optifine/Angelica: Consider deleting your option files after removing mods."); LoggingUtil.errorWithHighlight("If you got this error after downgrading your Minecraft version: Consider using a launcher that doesn't reuse the same folders for every game instance. MultiMC for example, it's really good and it comes with a dedicated cat button. You like cats, right? Are you using the Microsoft launcher? The one launcher that turns every version switch into a tightrope act because all the old config and options files are still here because different instances all use the same folder structure instead of different folders like a competent launcher would, because some MO-RON thought that this was an acceptable way of doing things? Really? The launcher that circumcises every crashlog into indecipherable garbage, tricking oblivious people into posting that as a \"crash report\", effectively wasting everyone's time? The launcher made by the company that thought it would be HI-LA-RI-OUS to force everyone to use Microsoft accounts, effectively breaking every other launcher until they implement their terrible auth system?"); LoggingUtil.errorWithHighlight("========================== WARNING =========================="); } - + if(mc.theWorld == null || mc.thePlayer == null) return; - + if(event.phase == Phase.START && event.side == Side.CLIENT) { - + if(BlockAshes.ashes > 256) BlockAshes.ashes = 256; if(BlockAshes.ashes > 0) BlockAshes.ashes -= 2; if(BlockAshes.ashes < 0) BlockAshes.ashes = 0; - + if(mc.theWorld.getTotalWorldTime() % 20 == 0) { this.lastBrightness = this.currentBrightness; currentBrightness = mc.theWorld.getLightBrightnessForSkyBlocks(MathHelper.floor_double(mc.thePlayer.posX), MathHelper.floor_double(mc.thePlayer.posY), MathHelper.floor_double(mc.thePlayer.posZ), 0); } - + if(ArmorUtil.isWearingEmptyMask(mc.thePlayer)) { MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "Your mask has no filter!", MainRegistry.proxy.ID_FILTER); } } - - if(mc.currentScreen instanceof GuiContainer && Keyboard.isKeyDown(Keyboard.KEY_F1)) { + + if(Keyboard.isKeyDown(Keyboard.KEY_F1) && Minecraft.getMinecraft().currentScreen != null) { + + ComparableStack comp = canneryTimestamp > System.currentTimeMillis() - 100 ? lastCannery : null; + + if(comp == null) { + ItemStack stack = getMouseOverStack(); + if(stack != null) comp = new ComparableStack(stack).makeSingular(); + } + + if(comp != null) { + CanneryBase cannery = Jars.canneries.get(comp); + if(cannery != null) { + FMLCommonHandler.instance().showGuiScreen(new GuiWorldInAJar(cannery.createScript(), cannery.getName(), cannery.getIcon(), cannery.seeAlso())); + } + } + } + + if(Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) && Keyboard.isKeyDown(Keyboard.KEY_LMENU)) { + + ItemStack stack = getMouseOverStack(); + if(stack != null) { + stack = stack.copy(); + stack.stackSize = 1; + FMLCommonHandler.instance().showGuiScreen(new GUIScreenPreview(stack)); + } + } + + if(Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) && Keyboard.isKeyDown(Keyboard.KEY_0) && Keyboard.isKeyDown(Keyboard.KEY_1)) { + if (!isRenderingItems) { + isRenderingItems = true; + + MainRegistry.logger.info("Taking a screenshot of ALL items, if you did this by mistake: fucking lmao get rekt nerd"); + + List ignoredItems = Arrays.asList( + ModItems.assembly_template, + ModItems.crucible_template, + ModItems.chemistry_template, + ModItems.chemistry_icon, + ModItems.achievement_icon, + Items.spawn_egg, + Item.getItemFromBlock(Blocks.mob_spawner) + ); + + List> collapsedClasses = Arrays.asList( + ItemRBMKPellet.class, + ItemDepletedFuel.class, + ItemFluidDuct.class + ); + + List stacks = new ArrayList(); + for (Object reg : Item.itemRegistry) { + Item item = (Item) reg; + if(ignoredItems.contains(item)) continue; + if(collapsedClasses.contains(item.getClass())) { + stacks.add(new ItemStack(item)); + } else { + item.getSubItems(item, null, stacks); + } + } + + FMLCommonHandler.instance().showGuiScreen(new GUIScreenWikiRender(stacks.toArray(new ItemStack[0]), "Block ", "wiki-block-renders-256", 8)); + } + } else { + isRenderingItems = false; + } + + EntityPlayer player = mc.thePlayer; + + if(event.phase == Phase.START) { + + float discriminator = 0.003F; + float defaultStepSize = 0.5F; + int newStepSize = 0; + + if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof ArmorFSB) { + ArmorFSB plate = (ArmorFSB) player.inventory.armorInventory[2].getItem(); + if(plate.hasFSBArmor(player)) newStepSize = plate.stepSize; + } + + if(newStepSize > 0) { + player.stepHeight = newStepSize + discriminator; + } else { + for(int i = 1; i < 4; i++) if(player.stepHeight == i + discriminator) player.stepHeight = defaultStepSize; + } + } + + if(event.phase == Phase.END) { + + if(ClientConfig.GUN_VISUAL_RECOIL.get()) { + ItemGunBaseNT.offsetVertical += ItemGunBaseNT.recoilVertical; + ItemGunBaseNT.offsetHorizontal += ItemGunBaseNT.recoilHorizontal; + player.rotationPitch -= ItemGunBaseNT.recoilVertical; + player.rotationYaw -= ItemGunBaseNT.recoilHorizontal; + + ItemGunBaseNT.recoilVertical *= ItemGunBaseNT.recoilDecay; + ItemGunBaseNT.recoilHorizontal *= ItemGunBaseNT.recoilDecay; + float dV = ItemGunBaseNT.offsetVertical * ItemGunBaseNT.recoilRebound; + float dH = ItemGunBaseNT.offsetHorizontal * ItemGunBaseNT.recoilRebound; + + ItemGunBaseNT.offsetVertical -= dV; + ItemGunBaseNT.offsetHorizontal -= dH; + player.rotationPitch += dV; + player.rotationYaw += dH; + } else { + ItemGunBaseNT.offsetVertical = 0; + ItemGunBaseNT.offsetHorizontal = 0; + ItemGunBaseNT.recoilVertical = 0; + ItemGunBaseNT.recoilHorizontal = 0; + } + } + } + + public static ItemStack getMouseOverStack() { + + Minecraft mc = Minecraft.getMinecraft(); + if(mc.currentScreen instanceof GuiContainer) { ScaledResolution scaledresolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); int width = scaledresolution.getScaledWidth(); int height = scaledresolution.getScaledHeight(); int mouseX = Mouse.getX() * width / mc.displayWidth; int mouseY = height - Mouse.getY() * height / mc.displayHeight - 1; - + GuiContainer container = (GuiContainer) mc.currentScreen; - + for(Object o : container.inventorySlots.inventorySlots) { Slot slot = (Slot) o; - + if(slot.getHasStack()) { try { Method isMouseOverSlot = ReflectionHelper.findMethod(GuiContainer.class, container, new String[] {"func_146981_a", "isMouseOverSlot"}, Slot.class, int.class, int.class); - + if((boolean) isMouseOverSlot.invoke(container, slot, mouseX, mouseY)) { - - ComparableStack comp = new ComparableStack(slot.getStack()).makeSingular(); - CanneryBase cannery = Jars.canneries.get(comp); - - if(cannery != null) { - FMLCommonHandler.instance().showGuiScreen(new GuiWorldInAJar(cannery.createScript(), cannery.getName(), cannery.getIcon(), cannery.seeAlso())); - } - - break; + return slot.getStack(); } - + } catch(Exception ex) { } } } } + + return null; } - + @SideOnly(Side.CLIENT) @SubscribeEvent(priority = EventPriority.LOWEST) public void onClientTickLast(ClientTickEvent event) { - + if(event.phase == Phase.START && GeneralConfig.enableSkyboxes) { - + World world = Minecraft.getMinecraft().theWorld; if(world == null) return; - + IRenderHandler sky = world.provider.getSkyRenderer(); - + if(world.provider instanceof WorldProviderSurface) { - + if(ImpactWorldHandler.getDustForClient(world) > 0 || ImpactWorldHandler.getFireForClient(world) > 0) { //using a chainloader isn't necessary since none of the sky effects should render anyway @@ -968,34 +1084,28 @@ public class ModEventHandlerClient { } } } - + if(world.provider.dimensionId == 0) { - + if(!(sky instanceof RenderNTMSkyboxChainloader)) { world.provider.setSkyRenderer(new RenderNTMSkyboxChainloader(sky)); } } } - } - @SideOnly(Side.CLIENT) - @SubscribeEvent - public void onMouseClicked(InputEvent.KeyInputEvent event) { + if(event.phase == Phase.START) { - Minecraft mc = Minecraft.getMinecraft(); - if(GeneralConfig.enableKeybindOverlap && (mc.currentScreen == null || mc.currentScreen.allowUserInput)) { - boolean state = Mouse.getEventButtonState(); - int keyCode = Mouse.getEventButton() - 100; - - //if anything errors here, run ./gradlew clean setupDecompWorkSpace - for(Object o : KeyBinding.keybindArray) { - KeyBinding key = (KeyBinding) o; - - if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { - - key.pressed = state; - if(state) { - key.pressTime++; + Minecraft mc = Minecraft.getMinecraft(); + + if(mc.currentScreen != null && mc.currentScreen.allowUserInput) { + HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me()); + + for(EnumKeybind key : EnumKeybind.values()) { + boolean last = props.getKeyPressed(key); + + if(last) { + PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, !last)); + props.setKeyPressed(key, !last); } } } @@ -1003,29 +1113,72 @@ public class ModEventHandlerClient { } @SideOnly(Side.CLIENT) - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.LOW) + public void onMouseClicked(InputEvent.MouseInputEvent event) { + + Minecraft mc = Minecraft.getMinecraft(); + if(GeneralConfig.enableKeybindOverlap && (mc.currentScreen == null || mc.currentScreen.allowUserInput)) { + boolean state = Mouse.getEventButtonState(); + int keyCode = Mouse.getEventButton() - 100; + + //if anything errors here, run ./gradlew clean setupDecompWorkSpace + for(Object o : KeyBinding.keybindArray) { + KeyBinding key = (KeyBinding) o; + + if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { + + key.pressed = state; + if(state && key.pressTime == 0) { + key.pressTime = 1; + } + } + } + + boolean gunKey = keyCode == HbmKeybinds.gunPrimaryKey.getKeyCode() || keyCode == HbmKeybinds.gunSecondaryKey.getKeyCode() || + keyCode == HbmKeybinds.gunTertiaryKey.getKeyCode() || keyCode == HbmKeybinds.reloadKey.getKeyCode(); + + EntityPlayer player = mc.thePlayer; + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT) { + + /* Shoot in favor of attacking */ + if(gunKey && keyCode == mc.gameSettings.keyBindAttack.getKeyCode()) { + mc.gameSettings.keyBindAttack.pressed = false; + mc.gameSettings.keyBindAttack.pressTime = 0; + } + + if(gunKey && keyCode == mc.gameSettings.keyBindPickBlock.getKeyCode()) { + mc.gameSettings.keyBindPickBlock.pressed = false; + mc.gameSettings.keyBindPickBlock.pressTime = 0; + } + } + } + } + + @SideOnly(Side.CLIENT) + @SubscribeEvent(priority = EventPriority.LOW) public void onKeyTyped(InputEvent.KeyInputEvent event) { Minecraft mc = Minecraft.getMinecraft(); if(GeneralConfig.enableKeybindOverlap && (mc.currentScreen == null || mc.currentScreen.allowUserInput)) { boolean state = Keyboard.getEventKeyState(); int keyCode = Keyboard.getEventKey(); - + //if anything errors here, run ./gradlew clean setupDecompWorkSpace for(Object o : KeyBinding.keybindArray) { KeyBinding key = (KeyBinding) o; - + if(keyCode != 0 && key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { - + key.pressed = state; - if(state) { - key.pressTime++; + if(state && key.pressTime == 0) { + key.pressTime = 1; } } } } } - + @SideOnly(Side.CLIENT) @SubscribeEvent public void onRenderWorldLastEvent(RenderWorldLastEvent event) { @@ -1096,7 +1249,7 @@ public class ModEventHandlerClient { GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } - + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); RenderHelper.disableStandardItemLighting(); @@ -1105,85 +1258,71 @@ public class ModEventHandlerClient { } GL11.glPopMatrix(); - + boolean hudOn = HbmPlayerProps.getData(player).enableHUD; - + if(hudOn) { RenderOverhead.renderMarkers(event.partialTicks); - + if(ArmorFSB.hasFSBArmor(player)) { ItemStack plate = player.inventory.armorInventory[2]; ArmorFSB chestplate = (ArmorFSB) plate.getItem(); - + if(chestplate.thermal) RenderOverhead.renderThermalSight(event.partialTicks); } } } - + @SubscribeEvent(priority = EventPriority.HIGHEST) public void preRenderEventFirst(RenderLivingEvent.Pre event) { - + if(MainRegistry.proxy.isVanished(event.entity)) event.setCanceled(true); } - + @SubscribeEvent public void preRenderEvent(RenderLivingEvent.Pre event) { - + EntityPlayer player = Minecraft.getMinecraft().thePlayer; - + if(ArmorFSB.hasFSBArmor(player) && HbmPlayerProps.getData(player).enableHUD) { ItemStack plate = player.inventory.armorInventory[2]; ArmorFSB chestplate = (ArmorFSB)plate.getItem(); - + if(chestplate.vats) { - + int count = (int)Math.min(event.entity.getMaxHealth(), 100); - + int bars = (int)Math.ceil(event.entity.getHealth() * count / event.entity.getMaxHealth()); - + String bar = EnumChatFormatting.RED + ""; - + for(int i = 0; i < count; i++) { - + if(i == bars) bar += EnumChatFormatting.RESET + ""; - + bar += "|"; } RenderOverhead.renderTag(event.entity, event.x, event.y, event.z, event.renderer, bar, chestplate.thermal); } } } - - /*@SubscribeEvent - public void setupFog(RenderFogEvent event) { - event.setResult(Result.DENY); - } - - @SubscribeEvent - public void thickenFog(FogDensity event) { - event.density = 0.05F; - event.setCanceled(true); - } - - @SubscribeEvent - public void tintFog(FogColors event) { - event.red = 0.5F; - event.green = 0.0F; - event.blue = 0.0F; - }*/ public static IIcon particleBase; public static IIcon particleLeaf; + public static IIcon particleSplash; + public static IIcon particleAshes; @SubscribeEvent public void onTextureStitch(TextureStitchEvent.Pre event) { - + if(event.map.getTextureType() == 0) { particleBase = event.map.registerIcon(RefStrings.MODID + ":particle/particle_base"); particleLeaf = event.map.registerIcon(RefStrings.MODID + ":particle/dead_leaf"); + particleSplash = event.map.registerIcon(RefStrings.MODID + ":particle/particle_splash"); + particleAshes = event.map.registerIcon(RefStrings.MODID + ":particle/particle_ashes"); } } @@ -1194,16 +1333,16 @@ public class ModEventHandlerClient { private static final ResourceLocation poster = new ResourceLocation(RefStrings.MODID + ":textures/models/misc/poster.png"); private static final ResourceLocation poster_cat = new ResourceLocation(RefStrings.MODID + ":textures/models/misc/poster_cat.png"); - + @SubscribeEvent public void renderFrame(RenderItemInFrameEvent event) { - + if(event.item != null && event.item.getItem() == ModItems.flame_pony) { event.setCanceled(true); - + double p = 0.0625D; double o = p * 2.75D; - + GL11.glDisable(GL11.GL_LIGHTING); Minecraft.getMinecraft().renderEngine.bindTexture(poster); Tessellator tess = Tessellator.instance; @@ -1215,10 +1354,10 @@ public class ModEventHandlerClient { tess.draw(); GL11.glEnable(GL11.GL_LIGHTING); } - + if(event.item != null && event.item.getItem() == Items.paper) { event.setCanceled(true); - + double p = 0.0625D; double o = p * 2.75D; @@ -1234,16 +1373,16 @@ public class ModEventHandlerClient { GL11.glEnable(GL11.GL_LIGHTING); } } - + @SubscribeEvent public void worldTick(WorldTickEvent event) { - + EntityPlayer player = Minecraft.getMinecraft().thePlayer; - + if(player != null && player.ridingEntity instanceof EntityRailCarRidable && player instanceof EntityClientPlayerMP) { EntityRailCarRidable train = (EntityRailCarRidable) player.ridingEntity; EntityClientPlayerMP client = (EntityClientPlayerMP) player; - + //mojank compensation, because apparently the "this makes the render work" method also determines the fucking input if(!train.shouldRiderSit()) { client.sendQueue.addToSendQueue(new C03PacketPlayer.C05PacketPlayerLook(client.rotationYaw, client.rotationPitch, client.onGround)); @@ -1251,29 +1390,33 @@ public class ModEventHandlerClient { } } } - + @SubscribeEvent public void onOpenGUI(GuiOpenEvent event) { - - if(event.gui instanceof GuiMainMenu) { + + if(event.gui instanceof GuiMainMenu && ClientConfig.MAIN_MENU_WACKY_SPLASHES.get()) { GuiMainMenu main = (GuiMainMenu) event.gui; int rand = (int)(Math.random() * 150); - + switch(rand) { case 0: main.splashText = "Floppenheimer!"; break; case 1: main.splashText = "i should dip my balls in sulfuric acid"; break; case 2: main.splashText = "All answers are popbob!"; break; - case 3: main.splashText = "None shall enter The Orb!"; break; + case 3: main.splashText = "None may enter The Orb!"; break; case 4: main.splashText = "Wacarb was here"; break; case 5: main.splashText = "SpongeBoy me Bob I am overdosing on keramine agagagagaga"; break; - case 6: main.splashText = "I know where you live, " + System.getProperty("user.name"); break; + case 6: main.splashText = EnumChatFormatting.RED + "I know where you live, " + System.getProperty("user.name"); break; case 7: main.splashText = "Nice toes, now hand them over."; break; case 8: main.splashText = "I smell burnt toast!"; break; case 9: main.splashText = "There are bugs under your skin!"; break; case 10: main.splashText = "Fentanyl!"; break; case 11: main.splashText = "Do drugs!"; break; - case 12: main.splashText = "post this on r/feedthememes for free internet points!"; break; + case 12: main.splashText = "Imagine being scared by splash texts!"; break; } + + double d = Math.random(); + if(d < 0.1) main.splashText = "Redditors aren't people!"; + else if(d < 0.2) main.splashText = "Can someone tell me what corrosive fumes the people on Reddit are huffing so I can avoid those more effectively?"; } } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerImpact.java b/src/main/java/com/hbm/main/ModEventHandlerImpact.java index fbad76c79..723410c6d 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerImpact.java +++ b/src/main/java/com/hbm/main/ModEventHandlerImpact.java @@ -1,26 +1,16 @@ package com.hbm.main; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.handler.ImpactWorldHandler; import com.hbm.saveddata.TomSaveData; import com.hbm.world.WorldProviderNTM; - +import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; -import net.minecraft.block.Block; -import net.minecraft.block.BlockBush; -import net.minecraft.block.BlockCrops; -import net.minecraft.block.BlockDoor; -import net.minecraft.block.BlockLeaves; -import net.minecraft.block.BlockLog; +import net.minecraft.block.*; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.passive.EntityWaterMob; @@ -31,52 +21,57 @@ import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; import net.minecraftforge.common.DimensionManager; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.living.LivingSpawnEvent.CheckSpawn; import net.minecraftforge.event.terraingen.BiomeEvent; import net.minecraftforge.event.terraingen.DecorateBiomeEvent; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate; import net.minecraftforge.event.world.WorldEvent; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + public class ModEventHandlerImpact { - + ////////////////////////////////////////// private static Random rand = new Random(); ////////////////////////////////////////// - + @SubscribeEvent public void worldTick(WorldTickEvent event) { if(event.world != null && !event.world.isRemote && event.phase == Phase.START) { float settle = 1F / 14400000F; // 600 days to completely clear all dust. float cool = 1F / 24000F; // One MC day between initial impact and total darkness. - + ImpactWorldHandler.impactEffects(event.world); TomSaveData data = TomSaveData.forWorld(event.world); - + if(data.dust > 0 && data.fire == 0) { data.dust = Math.max(0, data.dust - settle); data.markDirty(); } - + if(data.fire > 0) { data.fire = Math.max(0, (data.fire - cool)); data.dust = Math.min(1, (data.dust + cool)); data.markDirty(); } - + if(!event.world.loadedEntityList.isEmpty()) { - + List oList = new ArrayList(); oList.addAll(event.world.loadedEntityList); - + for(Object e : oList) { if(e instanceof EntityLivingBase) { EntityLivingBase entity = (EntityLivingBase) e; - + if(entity.worldObj.provider.dimensionId == 0 && data.fire > 0 && data.dust < 0.75f && event.world.getSavedLightValue(EnumSkyBlock.Sky, (int) entity.posX, (int) entity.posY, (int) entity.posZ) > 7) { - + entity.setFire(5); entity.attackEntityFrom(DamageSource.onFire, 2); } @@ -100,31 +95,47 @@ public class ModEventHandlerImpact { }*/ @SubscribeEvent - public void extinction(EntityJoinWorldEvent event) { - + public void extinction(CheckSpawn event) { + TomSaveData data = TomSaveData.forWorld(event.world); - + if(data.impact) { - if(!(event.entity instanceof EntityPlayer) && event.entity instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) event.entity; + if(!(event.entityLiving instanceof EntityPlayer) && event.entityLiving instanceof EntityLivingBase) { if(event.world.provider.dimensionId == 0) { - if(event.entity.height >= 0.85f || event.entity.width >= 0.85f && event.entity.ticksExisted < 20 && !(event.entity instanceof EntityWaterMob) && !living.isChild()) { - event.setCanceled(true); + if(event.entityLiving.height >= 0.85F || event.entityLiving.width >= 0.85F && !(event.entity instanceof EntityWaterMob) && !event.entityLiving.isChild()) { + event.setResult(Result.DENY); + event.entityLiving.setDead(); } } - if(event.entity instanceof EntityWaterMob && event.entity.ticksExisted < 20) { + if(event.entityLiving instanceof EntityWaterMob) { Random rand = new Random(); - if(rand.nextInt(9) != 0) { - event.setCanceled(true); + if(rand.nextInt(5) != 0) { + event.setResult(Result.DENY); + event.entityLiving.setDead(); } } } } } - + + @SubscribeEvent + public void onPopulate(Populate event) { + + if(event.type == Populate.EventType.ANIMALS) { + + TomSaveData data = TomSaveData.forWorld(event.world); + + if(data.impact) { + event.setResult(Result.DENY); + } + } + } + @SubscribeEvent(priority = EventPriority.LOWEST) public void onLoad(WorldEvent.Load event) { - + + TomSaveData.resetLastCached(); + if(GeneralConfig.enableImpactWorldProvider) { DimensionManager.unregisterProviderType(0); DimensionManager.registerProviderType(0, WorldProviderNTM.class, true); @@ -135,18 +146,18 @@ public class ModEventHandlerImpact { public void modifyVillageGen(BiomeEvent.GetVillageBlockID event) { Block b = event.original; Material mat = event.original.getMaterial(); - + TomSaveData data = TomSaveData.getLastCachedOrNull(); - + if(data == null || event.biome == null) { return; } - + if(data.impact) { if(mat == Material.wood || mat == Material.glass || b == Blocks.ladder || b instanceof BlockCrops || b == Blocks.chest || b instanceof BlockDoor || mat == Material.cloth || mat == Material.water || b == Blocks.stone_slab) { event.replacement = Blocks.air; - + } else if(b == Blocks.cobblestone || b == Blocks.stonebrick) { if(rand.nextInt(3) == 1) { event.replacement = Blocks.gravel; @@ -159,19 +170,19 @@ public class ModEventHandlerImpact { event.replacement = Blocks.dirt; } } - + if(event.replacement != null) { event.setResult(Result.DENY); } } - + @SubscribeEvent public void postImpactGeneration(BiomeEvent event) { /// Disables post-impact surface replacement for superflat worlds /// because they are retarded and crash with a NullPointerException if /// you try to look for biome-specific blocks. - TomSaveData data = TomSaveData.getLastCachedOrNull(); //despite forcing the data, we cannot rule out canceling events or custom firing shenanigans + TomSaveData data = TomSaveData.getLastCachedOrNull(); //despite forcing the data, we cannot rule out canceling events or custom firing shenanigans if(data != null && event.biome != null) { if(event.biome.topBlock != null) { if(event.biome.topBlock == Blocks.grass) { @@ -187,18 +198,18 @@ public class ModEventHandlerImpact { @SubscribeEvent public void postImpactDecoration(DecorateBiomeEvent.Decorate event) { - + TomSaveData data = TomSaveData.forWorld(event.world); - + if(data.impact) { EventType type = event.type; - + if(data.dust > 0 || data.fire > 0) { if(type == event.type.TREE || type == event.type.BIG_SHROOM || type == event.type.GRASS || type == event.type.REED || type == event.type.FLOWERS || type == event.type.DEAD_BUSH || type == event.type.CACTUS || type == event.type.PUMPKIN || type == event.type.LILYPAD) { event.setResult(Result.DENY); } - + } else if(data.dust == 0 && data.fire == 0) { if(type == event.type.TREE || type == event.type.BIG_SHROOM || type == event.type.CACTUS) { if(event.world.rand.nextInt(9) == 0) { @@ -207,12 +218,12 @@ public class ModEventHandlerImpact { event.setResult(Result.DENY); } } - + if(type == event.type.GRASS || type == event.type.REED) { event.setResult(Result.DEFAULT); } } - + } else { event.setResult(Result.DEFAULT); } @@ -225,20 +236,20 @@ public class ModEventHandlerImpact { @SubscribeEvent public void populateChunkPost(PopulateChunkEvent.Post event) { - + TomSaveData data = TomSaveData.forWorld(event.world); - + if(data.impact) { Chunk chunk = event.world.getChunkFromChunkCoords(event.chunkX, event.chunkZ); - + for(ExtendedBlockStorage storage : chunk.getBlockStorageArray()) { - + if(storage != null) { - + for(int x = 0; x < 16; ++x) { for(int y = 0; y < 16; ++y) { for(int z = 0; z < 16; ++z) { - + if(data.dust > 0.25 || data.fire > 0) { if(storage.getBlockByExtId(x, y, z) == Blocks.grass) { storage.func_150818_a(x, y, z, ModBlocks.impact_dirt); diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index e01007977..d19c8bd2f 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -1,24 +1,29 @@ package com.hbm.main; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GLContext; - import com.hbm.blocks.ICustomBlockHighlight; +import com.hbm.config.ClientConfig; +import com.hbm.config.RadiationConfig; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.armor.IArmorDisableModel; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.packet.PermaSyncHandler; +import com.hbm.render.item.weapon.sedna.ItemRenderWeaponBase; import com.hbm.render.model.ModelMan; - +import com.hbm.world.biome.BiomeGenCraterBase; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.AbstractClientPlayer; +import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.client.settings.GameSettings; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.EnumAction; @@ -26,10 +31,23 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors; import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.client.event.RenderHandEvent; import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.common.ForgeModContainer; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; +import org.lwjgl.opengl.GLContext; public class ModEventHandlerRenderer { @@ -41,6 +59,7 @@ public class ModEventHandlerRenderer { EntityPlayer player = event.entityPlayer; RenderPlayer renderer = event.renderer; + ItemStack held = player.getHeldItem(); boolean isManly = PermaSyncHandler.boykissers.contains(player.getEntityId()); @@ -56,6 +75,18 @@ public class ModEventHandlerRenderer { } } + if(held != null) { + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + if(customRenderer instanceof ItemRenderWeaponBase) { + ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; + if(renderGun.isAkimbo()) { + partsHidden[EnumPlayerPart.LEFT_ARM.ordinal()] = true; + ModelRenderer box = getBoxFromType(renderer, EnumPlayerPart.LEFT_ARM); + box.isHidden = true; + } + } + } + if(isManly) { return; } @@ -84,8 +115,34 @@ public class ModEventHandlerRenderer { EntityPlayer player = event.entityPlayer; RenderPlayer renderer = event.renderer; + boolean akimbo = false; + + ItemStack held = player.getHeldItem(); + + if(held != null) { + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + if(customRenderer instanceof ItemRenderWeaponBase) { + ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; + if(renderGun.isAkimbo()) { + akimbo = true; + } + } + } + boolean isManly = PermaSyncHandler.boykissers.contains(player.getEntityId()); + if(akimbo) { + ModelBiped biped = renderer.modelBipedMain; + renderer.modelArmorChestplate.bipedLeftArm.rotateAngleY = renderer.modelArmor.bipedLeftArm.rotateAngleY = biped.bipedLeftArm.rotateAngleY = + 0.1F + biped.bipedHead.rotateAngleY; + if(!isManly) { + AbstractClientPlayer acp = (AbstractClientPlayer) player; + Minecraft.getMinecraft().getTextureManager().bindTexture(acp.getLocationSkin()); + biped.bipedLeftArm.isHidden = false; + biped.bipedLeftArm.render(0.0625F); + } + } + if(isManly) { if(manlyModel == null) manlyModel = new ModelMan(); @@ -100,6 +157,7 @@ public class ModEventHandlerRenderer { if(f6 > 1.0F) { f6 = 1.0F; } + manlyModel.render(event.entityPlayer, f7, f6, yawWrapped, yaw, pitch, 0.0625F, renderer); } } @@ -117,6 +175,69 @@ public class ModEventHandlerRenderer { } } + @SubscribeEvent + public void onRenderHeldGun(RenderPlayerEvent.Pre event) { + + EntityPlayer player = event.entityPlayer; + RenderPlayer renderer = event.renderer; + ItemStack held = player.getHeldItem(); + + if(held != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT) { + renderer.modelBipedMain.aimedBow = true; + renderer.modelArmor.aimedBow = true; + renderer.modelArmorChestplate.aimedBow = true; + + //technically not necessary but it probably fixes some issues with mods that implement their armor weirdly + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + if(customRenderer instanceof ItemRenderWeaponBase) { + ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; + if(renderGun.isAkimbo()) { + ModelBiped biped = renderer.modelBipedMain; + renderer.modelArmorChestplate.bipedLeftArm.rotateAngleY = renderer.modelArmor.bipedLeftArm.rotateAngleY = biped.bipedLeftArm.rotateAngleY = 0.1F + biped.bipedHead.rotateAngleY; + } + } + } + } + + @SubscribeEvent + public void onRenderAkimbo(RenderPlayerEvent.Specials.Pre event) { + + EntityPlayer player = event.entityPlayer; + RenderPlayer renderer = event.renderer; + ItemStack held = player.getHeldItem(); + if(held == null) return; + + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + + if(customRenderer instanceof ItemRenderWeaponBase) { + ItemRenderWeaponBase renderWeapon = (ItemRenderWeaponBase) customRenderer; + if(renderWeapon.isAkimbo()) { + GL11.glPushMatrix(); + renderer.modelBipedMain.bipedLeftArm.isHidden = false; + renderer.modelBipedMain.bipedLeftArm.postRender(0.0625F); + //vanilla bullshit + GL11.glTranslatef(-0.0625F, 0.4375F, 0.0625F); + float scale = 0.375F; + GL11.glTranslatef(0.25F, 0.1875F, -0.1875F); + GL11.glScalef(scale, scale, scale); + GL11.glRotatef(60.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(20.0F, 0.0F, 0.0F, 1.0F); + // forge bullshit + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glTranslatef(0.0F, -0.3F, 0.0F); + GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glRotatef(50.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(335.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-0.9375F, -0.0625F, 0.0F); + renderWeapon.setupThirdPersonAkimbo(held); + renderWeapon.renderEquippedAkimbo(held); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + } + } + @SubscribeEvent public void onRenderHeldItem(RenderPlayerEvent.Specials.Pre event) { @@ -124,22 +245,20 @@ public class ModEventHandlerRenderer { //RenderPlayer renderer = event.renderer; boolean isManly = PermaSyncHandler.boykissers.contains(player.getEntityId()); - - if(!isManly) - return; + if(!isManly) return; if(manlyModel == null) manlyModel = new ModelMan(); - + event.renderItem = false; float f2 = 1.3333334F; ItemStack held = player.getHeldItem(); - + if(held == null) return; - + GL11.glPushMatrix(); manlyModel.rightArm.postRender(0.0625F); GL11.glTranslatef(-0.0625F, 0.4375F, 0.0625F); @@ -154,8 +273,8 @@ public class ModEventHandlerRenderer { enumaction = held.getItemUseAction(); } - net.minecraftforge.client.IItemRenderer customRenderer = net.minecraftforge.client.MinecraftForgeClient.getItemRenderer(held, net.minecraftforge.client.IItemRenderer.ItemRenderType.EQUIPPED); - boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(net.minecraftforge.client.IItemRenderer.ItemRenderType.EQUIPPED, held, net.minecraftforge.client.IItemRenderer.ItemRendererHelper.BLOCK_3D)); + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); + boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(IItemRenderer.ItemRenderType.EQUIPPED, held, IItemRenderer.ItemRendererHelper.BLOCK_3D)); if(is3D || held.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(held.getItem()).getRenderType())) { f2 = 0.5F; @@ -237,16 +356,16 @@ public class ModEventHandlerRenderer { default: return null; } } - + @SubscribeEvent public void onDrawHighlight(DrawBlockHighlightEvent event) { MovingObjectPosition mop = event.target; - + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { Block b = event.player.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); if(b instanceof ICustomBlockHighlight) { ICustomBlockHighlight cus = (ICustomBlockHighlight) b; - + if(cus.shouldDrawHighlight(event.player.worldObj, mop.blockX, mop.blockY, mop.blockZ)) { cus.drawHighlight(event, event.player.worldObj, mop.blockX, mop.blockY, mop.blockZ); event.setCanceled(true); @@ -324,17 +443,17 @@ public class ModEventHandlerRenderer { GL11.glPopMatrix(); } }*/ - + float renderSoot = 0; - + @SubscribeEvent public void worldTick(WorldTickEvent event) { - - if(event.phase == event.phase.START) { + + if(event.phase == event.phase.START && RadiationConfig.enableSootFog) { float step = 0.05F; float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; - + if(Math.abs(renderSoot - soot) < step) { renderSoot = soot; } else if(renderSoot < soot) { @@ -347,11 +466,11 @@ public class ModEventHandlerRenderer { @SubscribeEvent(priority = EventPriority.LOW) public void thickenFog(FogDensity event) { - float soot = renderSoot - 35; - if(soot > 0) { - //event.density = Math.min((soot - 5) * 0.01F, 0.5F); + float soot = (float) (renderSoot - RadiationConfig.sootFogThreshold); + if(soot > 0 && RadiationConfig.enableSootFog) { + float farPlaneDistance = (float) (Minecraft.getMinecraft().gameSettings.renderDistanceChunks * 16); - float fogDist = farPlaneDistance / (1 + soot * 0.05F); + float fogDist = farPlaneDistance / (1 + soot * 5F / (float) RadiationConfig.sootFogDivisor); GL11.glFogf(GL11.GL_FOG_START, 0); GL11.glFogf(GL11.GL_FOG_END, fogDist); @@ -363,17 +482,129 @@ public class ModEventHandlerRenderer { event.setCanceled(true); } } - + @SubscribeEvent(priority = EventPriority.LOW) public void tintFog(FogColors event) { - float soot = renderSoot - 35; + + EntityPlayer player = MainRegistry.proxy.me(); + if(player.worldObj.getBlock((int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ)).getMaterial() != Material.water) { + Vec3 color = getFogBlendColor(player.worldObj, (int) Math.floor(player.posX), (int) Math.floor(player.posZ), event.red, event.green, event.blue, event.renderPartialTicks); + if(color != null) { + event.red = (float) color.xCoord; + event.green = (float) color.yCoord; + event.blue = (float) color.zCoord; + } + } + + float soot = (float) (renderSoot - RadiationConfig.sootFogThreshold); float sootColor = 0.15F; - float sootReq = 100F; - if(soot > 0) { + float sootReq = (float) RadiationConfig.sootFogDivisor; + if(soot > 0 && RadiationConfig.enableSootFog) { float interp = Math.min(soot / sootReq, 1F); event.red = event.red * (1 - interp) + sootColor * interp; event.green = event.green * (1 - interp) + sootColor * interp; event.blue = event.blue * (1 - interp) + sootColor * interp; } } + + @SubscribeEvent(priority = EventPriority.HIGHEST) + public void onRenderHUD(RenderGameOverlayEvent.Pre event) { + + if(event.type == ElementType.HOTBAR && (ModEventHandlerClient.shakeTimestamp + ModEventHandlerClient.shakeDuration - System.currentTimeMillis()) > 0 && ClientConfig.NUKE_HUD_SHAKE.get()) { + double mult = (ModEventHandlerClient.shakeTimestamp + ModEventHandlerClient.shakeDuration - System.currentTimeMillis()) / (double) ModEventHandlerClient.shakeDuration * 2; + double horizontal = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.02), -0.7, 0.7) * 15; + double vertical = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.01 + 2), -0.7, 0.7) * 3; + GL11.glTranslated(horizontal * mult, vertical * mult, 0); + } + } + + @SubscribeEvent + public void onRenderHand(RenderHandEvent event) { + + //can't use plaxer.getHeldItem() here because the item rendering persists for a few frames after hitting the switch key + ItemStack toRender = Minecraft.getMinecraft().entityRenderer.itemRenderer.itemToRender; + + if(toRender != null) { + IItemRenderer renderer = MinecraftForgeClient.getItemRenderer(toRender, ItemRenderType.EQUIPPED_FIRST_PERSON); + + if(renderer instanceof ItemRenderWeaponBase) { + ((ItemRenderWeaponBase) renderer).setPerspectiveAndRender(toRender, event.partialTicks); + event.setCanceled(true); + } + } + } + + private static boolean fogInit = false; + private static int fogX; + private static int fogZ; + private static Vec3 fogRGBMultiplier; + private static boolean doesBiomeApply = false; + private static long fogTimer = 0; + + /** Same procedure as getting the blended sky color but for fog */ + public static Vec3 getFogBlendColor(World world, int playerX, int playerZ, float red, float green, float blue, double partialTicks) { + + long millis = System.currentTimeMillis() - fogTimer; + if(playerX == fogX && playerZ == fogZ && fogInit && millis < 3000) return fogRGBMultiplier; + + fogInit = true; + fogTimer = System.currentTimeMillis(); + GameSettings settings = Minecraft.getMinecraft().gameSettings; + int[] ranges = ForgeModContainer.blendRanges; + int distance = 0; + + if(settings.fancyGraphics && settings.renderDistanceChunks >= 0) { + distance = ranges[Math.min(settings.renderDistanceChunks, ranges.length - 1)]; + } + + float r = 0F; + float g = 0F; + float b = 0F; + + int divider = 0; + doesBiomeApply = false; + + for(int x = -distance; x <= distance; x++) { + for(int z = -distance; z <= distance; z++) { + BiomeGenBase biome = world.getBiomeGenForCoords(playerX + x, playerZ + z); + Vec3 color = getBiomeFogColors(world, biome, red, green, blue, partialTicks); + r += color.xCoord; + g += color.yCoord; + b += color.zCoord; + divider++; + } + } + + fogX = playerX; + fogZ = playerZ; + + if(doesBiomeApply) { + fogRGBMultiplier = Vec3.createVectorHelper(r / divider, g / divider, b / divider); + } else { + fogRGBMultiplier = null; + } + + return fogRGBMultiplier; + } + + /** Returns the current biome's fog color adjusted for brightness if in a crater, or the world's cached fog color if not */ + public static Vec3 getBiomeFogColors(World world, BiomeGenBase biome, float r, float g, float b, double partialTicks) { + + if(biome instanceof BiomeGenCraterBase) { + int color = biome.getSkyColorByTemp(biome.temperature); + r = ((color & 0xff0000) >> 16) / 255F; + g = ((color & 0x00ff00) >> 8) / 255F; + b = (color & 0x0000ff) / 255F; + + float celestialAngle = world.getCelestialAngle((float) partialTicks); + float skyBrightness = MathHelper.clamp_float(MathHelper.cos(celestialAngle * (float) Math.PI * 2.0F) * 2.0F + 0.5F, 0F, 1F); + r *= skyBrightness; + g *= skyBrightness; + b *= skyBrightness; + + doesBiomeApply = true; + } + + return Vec3.createVectorHelper(r, g, b); + } } diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 1a2cd65a6..2e94e548c 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -1,91 +1,57 @@ package com.hbm.main; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; -import com.hbm.config.VersatileConfig; -import com.hbm.handler.nei.*; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBattery; -import com.hbm.lib.RefStrings; - import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; import codechicken.nei.api.IHighlightHandler; import codechicken.nei.api.ItemInfo.Layout; -import codechicken.nei.recipe.ICraftingHandler; -import codechicken.nei.recipe.IUsageHandler; +import codechicken.nei.recipe.*; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.handler.nei.CustomMachineHandler; +import com.hbm.items.ItemEnums.EnumSecretType; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBattery; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; +import com.hbm.lib.RefStrings; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import java.util.List; + public class NEIConfig implements IConfigureNEI { @Override public void loadConfig() { - registerHandler(new AlloyFurnaceRecipeHandler()); - registerHandler(new ShredderRecipeHandler()); - registerHandler(new PressRecipeHandler()); - registerHandler(new CentrifugeRecipeHandler()); - registerHandler(new GasCentrifugeRecipeHandler()); - registerHandler(new BreederRecipeHandler()); - registerHandler(new CyclotronRecipeHandler()); - registerHandler(new AssemblerRecipeHandler()); - registerHandler(new RefineryRecipeHandler()); - registerHandler(new VacuumRecipeHandler()); - registerHandler(new CrackingHandler()); - registerHandler(new ReformingHandler()); - registerHandler(new BoilerRecipeHandler()); - registerHandler(new ChemplantRecipeHandler()); - registerHandler(new CrystallizerRecipeHandler()); - registerHandler(new BookRecipeHandler()); - registerHandler(new FusionRecipeHandler()); - registerHandler(new HadronRecipeHandler()); - registerHandler(new SILEXRecipeHandler()); - registerHandler(new SmithingRecipeHandler()); - registerHandler(new AnvilRecipeHandler()); - registerHandler(new FuelPoolHandler()); - registerHandler(new RadiolysisRecipeHandler()); - registerHandler(new CrucibleSmeltingHandler()); - registerHandler(new CrucibleAlloyingHandler()); - registerHandler(new CrucibleCastingHandler()); - registerHandler(new ToolingHandler()); - registerHandler(new ConstructionHandler()); - - //universal boyes - registerHandler(new ZirnoxRecipeHandler()); - if(VersatileConfig.rtgDecay()) { - registerHandler(new RTGRecipeHandler()); + for (TemplateRecipeHandler handler: NEIRegistry.listAllHandlers()) { + registerHandler(handler); } - registerHandler(new LiquefactionHandler()); - registerHandler(new SolidificationHandler()); - registerHandler(new CokingHandler()); - registerHandler(new FractioningHandler()); - registerHandler(new BoilingHandler()); - registerHandler(new CombinationHandler()); - registerHandler(new SawmillHandler()); - registerHandler(new MixerHandler()); - registerHandler(new OutgasserHandler()); - - //fluids - registerHandler(new FluidRecipeHandler()); + + for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) { + registerHandlerBypass(new CustomMachineHandler(conf)); + } + + for(Item item : ItemGunBaseNT.secrets) { + API.hideItem(new ItemStack(item)); + } + + for(int i = 0; i < EnumAmmoSecret.values().length; i++) API.hideItem(new ItemStack(ModItems.ammo_secret, 1, i)); //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); API.hideItem(ItemBattery.getFullBattery(ModItems.memory)); - - API.hideItem(new ItemStack(ModBlocks.machine_coal_on)); + + for(int i = 0; i < EnumSecretType.values().length; i++) API.hideItem(new ItemStack(ModItems.item_secret, 1, i)); API.hideItem(new ItemStack(ModBlocks.machine_electric_furnace_on)); API.hideItem(new ItemStack(ModBlocks.machine_difurnace_on)); API.hideItem(new ItemStack(ModBlocks.machine_nuke_furnace_on)); API.hideItem(new ItemStack(ModBlocks.machine_rtg_furnace_on)); API.hideItem(new ItemStack(ModBlocks.reinforced_lamp_on)); - API.hideItem(new ItemStack(ModBlocks.statue_elb)); - API.hideItem(new ItemStack(ModBlocks.statue_elb_g)); - API.hideItem(new ItemStack(ModBlocks.statue_elb_w)); API.hideItem(new ItemStack(ModBlocks.statue_elb_f)); API.hideItem(new ItemStack(ModBlocks.cheater_virus)); API.hideItem(new ItemStack(ModBlocks.cheater_virus_seed)); @@ -99,20 +65,8 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModItems.burnt_bark)); API.hideItem(new ItemStack(ModItems.ams_core_thingy)); } - API.hideItem(new ItemStack(ModBlocks.dummy_block_assembler)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_drill)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_base)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_emitter)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_limiter)); API.hideItem(new ItemStack(ModBlocks.dummy_block_vault)); API.hideItem(new ItemStack(ModBlocks.dummy_block_blast)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_uf6)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_puf6)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_assembler)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_drill)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_base)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_emitter)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_limiter)); API.hideItem(new ItemStack(ModBlocks.dummy_port_compact_launcher)); API.hideItem(new ItemStack(ModBlocks.dummy_port_launch_table)); API.hideItem(new ItemStack(ModBlocks.dummy_plate_compact_launcher)); @@ -124,38 +78,39 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.pink_slab)); API.hideItem(new ItemStack(ModBlocks.pink_double_slab)); API.hideItem(new ItemStack(ModBlocks.pink_stairs)); - - API.registerHighlightIdentifier(ModBlocks.ore_random, new IHighlightHandler() { - @Override - public ItemStack identifyHighlight(World world, EntityPlayer player, MovingObjectPosition mop) { + API.hideItem(new ItemStack(ModBlocks.spotlight_incandescent_off)); + API.hideItem(new ItemStack(ModBlocks.spotlight_fluoro_off)); + API.hideItem(new ItemStack(ModBlocks.spotlight_halogen_off)); + API.hideItem(new ItemStack(ModBlocks.spotlight_beam)); + + API.registerHighlightIdentifier(ModBlocks.plushie, new IHighlightHandler() { + @Override public ItemStack identifyHighlight(World world, EntityPlayer player, MovingObjectPosition mop) { int x = mop.blockX; int y = mop.blockY; int z = mop.blockZ; - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityRandomOre) { - TileEntityRandomOre ore = (TileEntityRandomOre) te; - return new ItemStack(ModBlocks.ore_random, 1, ore.getStackId()); + if(te instanceof TileEntityPlushie) { + TileEntityPlushie plush = (TileEntityPlushie) te; + return new ItemStack(ModBlocks.plushie, 1, plush.type.ordinal()); } - return null; } - - @Override - public List handleTextData(ItemStack itemStack, World world, EntityPlayer player, MovingObjectPosition mop, List currenttip, Layout layout) { - return currenttip; - } - + @Override public List handleTextData(ItemStack itemStack, World world, EntityPlayer player, MovingObjectPosition mop, List currenttip, Layout layout) { return currenttip; } }); } - + public static void registerHandler(Object o) { API.registerRecipeHandler((ICraftingHandler) o); API.registerUsageHandler((IUsageHandler) o); } + /** Bypasses the utterly useless restriction of one registered handler per class */ + public static void registerHandlerBypass(Object o) { + GuiCraftingRecipe.craftinghandlers.add((ICraftingHandler) o); + GuiUsageRecipe.usagehandlers.add((IUsageHandler) o); + } + @Override public String getName() { return "Nuclear Tech NEI Plugin"; diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java new file mode 100644 index 000000000..3e6589cd6 --- /dev/null +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -0,0 +1,76 @@ +package com.hbm.main; + +import codechicken.nei.recipe.TemplateRecipeHandler; +import com.hbm.config.VersatileConfig; +import com.hbm.handler.nei.*; + +import java.util.ArrayList; +import java.util.List; + +public class NEIRegistry { + + public static List handlers = new ArrayList(); + + public static List listAllHandlers() { + + if(!handlers.isEmpty()) return handlers; + + handlers.add(new AnvilRecipeHandler()); + handlers.add(new SmithingRecipeHandler()); + handlers.add(new AlloyFurnaceRecipeHandler()); + handlers.add(new ShredderRecipeHandler()); + handlers.add(new PressRecipeHandler()); + handlers.add(new CentrifugeRecipeHandler()); + handlers.add(new GasCentrifugeRecipeHandler()); + handlers.add(new BreederRecipeHandler()); + handlers.add(new CyclotronRecipeHandler()); + handlers.add(new AssemblerRecipeHandler()); + handlers.add(new RefineryRecipeHandler()); + handlers.add(new VacuumRecipeHandler()); + handlers.add(new CrackingHandler()); + handlers.add(new RadiolysisRecipeHandler()); + handlers.add(new ReformingHandler()); + handlers.add(new HydrotreatingHandler()); + handlers.add(new ChemplantRecipeHandler()); + handlers.add(new CrystallizerRecipeHandler()); + handlers.add(new BookRecipeHandler()); + handlers.add(new FusionRecipeHandler()); + handlers.add(new HadronRecipeHandler()); + handlers.add(new SILEXRecipeHandler()); + handlers.add(new FuelPoolHandler()); + handlers.add(new CrucibleSmeltingHandler()); + handlers.add(new CrucibleAlloyingHandler()); + handlers.add(new CrucibleCastingHandler()); + handlers.add(new ToolingHandler()); + handlers.add(new ConstructionHandler()); + + //universal boyes + handlers.add(new ZirnoxRecipeHandler()); + if(VersatileConfig.rtgDecay()) handlers.add(new RTGRecipeHandler()); + handlers.add(new LiquefactionHandler()); + handlers.add(new SolidificationHandler()); + handlers.add(new CokingHandler()); + handlers.add(new PyroHandler()); + handlers.add(new FractioningHandler()); + handlers.add(new BoilingHandler()); + handlers.add(new CombinationHandler()); + handlers.add(new SawmillHandler()); + handlers.add(new MixerHandler()); + handlers.add(new OutgasserHandler()); + handlers.add(new ElectrolyserFluidHandler()); + handlers.add(new ElectrolyserMetalHandler()); + handlers.add(new AshpitHandler()); + handlers.add(new ArcWelderHandler()); + handlers.add(new SolderingStationHandler()); + handlers.add(new ExposureChamberHandler()); + handlers.add(new ArcFurnaceSolidHandler()); + handlers.add(new ArcFurnaceFluidHandler()); + handlers.add(new RotaryFurnaceHandler()); + handlers.add(new AmmoPressHandler()); + + //this shit comes last + handlers.add(new FluidRecipeHandler()); + + return handlers; + } +} diff --git a/src/main/java/com/hbm/main/NetworkHandler.java b/src/main/java/com/hbm/main/NetworkHandler.java new file mode 100644 index 000000000..06ff25dc1 --- /dev/null +++ b/src/main/java/com/hbm/main/NetworkHandler.java @@ -0,0 +1,215 @@ +package com.hbm.main; + +import com.hbm.handler.threading.PacketThreading; +import com.hbm.packet.PrecompiledPacket; +import cpw.mods.fml.common.network.FMLEmbeddedChannel; +import cpw.mods.fml.common.network.FMLOutboundHandler; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.network.internal.FMLProxyPacket; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper; +import cpw.mods.fml.relauncher.Side; +import gnu.trove.map.hash.TByteObjectHashMap; +import gnu.trove.map.hash.TObjectByteHashMap; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.PooledByteBufAllocator; +import io.netty.buffer.Unpooled; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.CodecException; +import io.netty.handler.codec.MessageToMessageCodec; +import net.minecraft.entity.player.EntityPlayerMP; + +import java.lang.ref.WeakReference; +import java.util.EnumMap; +import java.util.List; + +import static cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.INBOUNDPACKETTRACKER; + +// Essentially the `SimpleNetworkWrapper` from FML but doesn't flush the packets immediately. Also now with a custom codec! +public class NetworkHandler { + + // Network codec for allowing packets to be "precompiled". + @ChannelHandler.Sharable + private static class PrecompilingNetworkCodec extends MessageToMessageCodec { + + private final TByteObjectHashMap> discriminators = new TByteObjectHashMap<>(); + private final TObjectByteHashMap> types = new TObjectByteHashMap<>(); + + public void addDiscriminator(int discriminator, Class type) { + discriminators.put((byte) discriminator, type); + types.put(type, (byte) discriminator); + } + + @Override + public void handlerAdded(ChannelHandlerContext ctx) { + ctx.attr(INBOUNDPACKETTRACKER).set(new ThreadLocal<>()); + } + + @Override + protected void encode(ChannelHandlerContext ctx, Object msg, List out) { + ByteBuf outboundBuf = PooledByteBufAllocator.DEFAULT.heapBuffer(); + byte discriminator; + Class msgClass = msg.getClass(); + discriminator = types.get(msgClass); + outboundBuf.writeByte(discriminator); + + if(msg instanceof PrecompiledPacket) // Precompiled packet to avoid race conditions/speed up serialization. + outboundBuf.writeBytes(((PrecompiledPacket) msg).getPreBuf()); + else if(msg instanceof IMessage) + ((IMessage) msg).toBytes(outboundBuf); + else + throw new CodecException("Unknown packet codec requested during encoding, expected IMessage/PrecompiledPacket, got " + msg.getClass().getName()); + + FMLProxyPacket proxy = new FMLProxyPacket(Unpooled.buffer().writeBytes(outboundBuf), ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get()); + outboundBuf.release(); + WeakReference ref = ctx.attr(INBOUNDPACKETTRACKER).get().get(); + FMLProxyPacket old = ref == null ? null : ref.get(); + if (old != null) { + proxy.setDispatcher(old.getDispatcher()); + } + out.add(proxy); + } + + @Override + protected void decode(ChannelHandlerContext ctx, FMLProxyPacket msg, List out) throws Exception { + ByteBuf inboundBuf = msg.payload(); + byte discriminator = inboundBuf.readByte(); + Class originalMsgClass = discriminators.get(discriminator); + + if(originalMsgClass == null) + throw new CodecException("Undefined message for discriminator " + discriminator + " in channel " + msg.channel()); + + Object newMsg = originalMsgClass.newInstance(); + ctx.attr(INBOUNDPACKETTRACKER).get().set(new WeakReference<>(msg)); + + if(newMsg instanceof IMessage) // pretty much always the case + ((IMessage) newMsg).fromBytes(inboundBuf.slice()); + else + throw new CodecException("Unknown packet codec requested during decoding, expected IMessage/PrecompiledPacket, got " + msg.getClass().getName()); + + out.add(newMsg); + } + } + + private static FMLEmbeddedChannel clientChannel; + private static FMLEmbeddedChannel serverChannel; + + private static PrecompilingNetworkCodec packetCodec; + + public NetworkHandler(String name) { + packetCodec = new PrecompilingNetworkCodec(); + EnumMap channels = NetworkRegistry.INSTANCE.newChannel(name, packetCodec); + clientChannel = channels.get(Side.CLIENT); + serverChannel = channels.get(Side.SERVER); + } + + public void registerMessage(Class> messageHandler, Class requestMessageType, int discriminator, Side side) { + + packetCodec.addDiscriminator(discriminator, requestMessageType); + + FMLEmbeddedChannel channel; + if(side.isClient()) + channel = clientChannel; + else + channel = serverChannel; + String type = channel.findChannelHandlerNameForType(PrecompilingNetworkCodec.class); + SimpleChannelHandlerWrapper handler; + handler = new SimpleChannelHandlerWrapper<>(messageHandler, side, requestMessageType); + channel.pipeline().addAfter(type, messageHandler.getName(), handler); + } + + public static void flush() { + clientChannel.flush(); + serverChannel.flush(); + } + + public void sendToServer(IMessage message) { // No thread protection needed here, since the client never threads packets to the server. + clientChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.TOSERVER); + clientChannel.write(message); + } + + public void sendToDimension(IMessage message, int dimensionId) { + if(!Thread.currentThread().getName().contains(PacketThreading.threadPrefix)) { + try { + PacketThreading.lock.lock(); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.DIMENSION); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(dimensionId); + serverChannel.write(message); + } finally { + PacketThreading.lock.unlock(); + } + } else { + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.DIMENSION); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(dimensionId); + serverChannel.write(message); + } + } + + public void sendToAllAround(IMessage message, NetworkRegistry.TargetPoint point) { + if(!Thread.currentThread().getName().contains(PacketThreading.threadPrefix)) { + try { + PacketThreading.lock.lock(); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALLAROUNDPOINT); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(point); + serverChannel.write(message); + } finally { + PacketThreading.lock.unlock(); + } + } else { + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALLAROUNDPOINT); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(point); + serverChannel.write(message); + } + } + + public void sendToAllAround(ByteBuf message, NetworkRegistry.TargetPoint point) { + if(!Thread.currentThread().getName().contains(PacketThreading.threadPrefix)) { + try { + PacketThreading.lock.lock(); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALLAROUNDPOINT); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(point); + serverChannel.write(message); + } finally { + PacketThreading.lock.unlock(); + } + } else { + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALLAROUNDPOINT); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(point); + serverChannel.write(message); + } + } + + public void sendTo(IMessage message, EntityPlayerMP player) { + if(!Thread.currentThread().getName().contains(PacketThreading.threadPrefix)) { + try { + PacketThreading.lock.lock(); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(player); + serverChannel.write(message); + } finally { + PacketThreading.lock.unlock(); + } + } else { + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(player); + serverChannel.write(message); + } + } + + public void sendToAll(IMessage message) { + if(!Thread.currentThread().getName().contains(PacketThreading.threadPrefix)) { + try { + PacketThreading.lock.lock(); + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALL); + serverChannel.write(message); + } finally { + PacketThreading.lock.unlock(); + } + } else { + serverChannel.attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALL); + serverChannel.write(message); + } + } +} diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index cf4b0f9df..4efabb02f 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -4,130 +4,139 @@ import com.hbm.animloader.AnimatedModel; import com.hbm.animloader.Animation; import com.hbm.animloader.ColladaLoader; import com.hbm.lib.RefStrings; +import com.hbm.render.anim.AnimationLoader; +import com.hbm.render.anim.BusAnimation; import com.hbm.render.loader.HFRWavefrontObject; -import com.hbm.render.loader.WavefrontObjDisplayList; - +import com.hbm.render.loader.IModelCustomNamed; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; +import java.util.HashMap; + public class ResourceManager { - - //public static final Shader test_shader = ShaderManager.loadShader(new ResourceLocation(RefStrings.MODID, "shaders/test_shader")); - //God - public static final IModelCustom error = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/error.obj")); - ////Obj TEs - - //Turrets - public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj")); - public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj")); - public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj")); - public static final IModelCustom turret_richard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_richard.obj")); - public static final IModelCustom turret_howard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard.obj")); - public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj")); - public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj")); - public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj")); - public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")).asDisplayList(); // test! - public static final IModelCustom turret_himars = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_himars.obj")).asDisplayList(); - public static final IModelCustom turret_sentry = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_sentry.obj")); - public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")); - + //Turrets + public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj")).asVBO(); + public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj")).asVBO(); + public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj")).asVBO(); + public static final IModelCustom turret_richard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_richard.obj")).asVBO(); + public static final IModelCustom turret_howard = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard.obj")).asVBO(); + public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj")).asVBO(); + public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj")).asVBO(); + public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj")).asVBO(); + public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")).asVBO(); + public static final IModelCustom turret_himars = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_himars.obj")).asVBO(); + public static final IModelCustom turret_sentry = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_sentry.obj")).asVBO(); + + public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")).asVBO(); + //Heaters - public static final IModelCustom heater_firebox = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj")); - public static final IModelCustom heater_oven = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj")); - public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj")); - public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false); - public static final IModelCustom heater_heatex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heatex.obj")); - + public static final IModelCustom heater_firebox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj"), false).asVBO(); + public static final IModelCustom heater_oven = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heating_oven.obj"), false).asVBO(); + public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj")).asVBO(); + public static final IModelCustom heater_electric = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electric_heater.obj"), false).asVBO(); + public static final IModelCustom heater_heatex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/heatex.obj")).asVBO(); + //Heat Engines public static final IModelCustom stirling = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/stirling.obj")); public static final IModelCustom sawmill = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/sawmill.obj")); public static final IModelCustom crucible_heat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/crucible.obj")); - public static final IModelCustom boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler.obj")); - public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj")); - public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")); - + public static final IModelCustom boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler.obj")).asVBO(); + public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj")).asVBO(); + public static final IModelCustom boiler_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/industrial_boiler.obj")).asVBO(); + public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")).asVBO(); + + //Caster o' Strands + public static final IModelCustom strand_caster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/strand_caster.obj")); + //Furnaces public static final IModelCustom furnace_iron = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_iron.obj")); public static final IModelCustom furnace_steel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_steel.obj")); public static final IModelCustom combination_oven = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/combination_oven.obj")); - + //Landmines - public static final IModelCustom mine_ap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_ap.obj")); - public static final IModelCustom mine_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_he.obj")); - public static final IModelCustom mine_marelet = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/marelet.obj")); + public static final IModelCustom mine_ap = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ap_mine.obj")).asVBO(); + public static final IModelCustom mine_marelet = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/marelet.obj")).asVBO(); public static final IModelCustom mine_fat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_fat.obj")); - + //Oil Pumps - public static final IModelCustom derrick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/derrick.obj")); - public static final IModelCustom pumpjack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pumpjack.obj")); - public static final IModelCustom fracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fracking_tower.obj")); - + public static final IModelCustom derrick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/derrick.obj")).asVBO(); + public static final IModelCustom pumpjack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pumpjack.obj")).asVBO(); + public static final IModelCustom fracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fracking_tower.obj")).asVBO(); + //Refinery - public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj")); - public static final IModelCustom vacuum_distill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/vacuum_distill.obj")); - public static final IModelCustom refinery_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery_exploded.obj")); + public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj")).asVBO(); + public static final IModelCustom vacuum_distill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/vacuum_distill.obj")).asVBO(); + public static final IModelCustom refinery_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery_exploded.obj")).asVBO(); public static final IModelCustom fraction_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_tower.obj")); 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 catalytic_reformer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/catalytic_reformer.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")); - public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj")); - public static final IModelCustom coker = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/coker.obj")); - + public static final IModelCustom cracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cracking_tower.obj")).asVBO(); + public static final IModelCustom catalytic_reformer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/catalytic_reformer.obj")).asVBO(); + public static final IModelCustom hydrotreater = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hydrotreater.obj")).asVBO(); + public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj")).asVBO(); + public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")).asVBO(); + public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj")).asVBO(); + public static final IModelCustom coker = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/coker.obj")).asVBO(); + public static final IModelCustom pyrooven = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pyrooven.obj")).asVBO(); + //Flare Stack - public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")); + public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")).asVBO(); + public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj")).asVBO(); + public static final IModelCustom chimney_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_industrial.obj")).asVBO(); //Tank - public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")); - public static final IModelCustom fluidtank_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank_exploded.obj")); - public static final IModelCustom bat9000 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/bat9000.obj")); - public static final IModelCustom orbus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/orbus.obj")); - + public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")).asVBO(); + public static final IModelCustom fluidtank_exploded = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank_exploded.obj")).asVBO(); + public static final IModelCustom bat9000 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/bat9000.obj")).asVBO(); + public static final IModelCustom orbus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/orbus.obj")).asVBO(); + //Turbofan - public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj")); - + public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj")).asVBO(); + //Gas Turbine - public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj")); - + public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj")).asVBO(); + + //Pumps + public static final IModelCustom pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pump.obj")).asVBO(); + //Large Turbine - public static final IModelCustom steam_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/steam_engine.obj")).asDisplayList(); + public static final IModelCustom steam_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/steam_engine.obj")).asVBO(); public static final IModelCustom turbine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbine.obj")); - public static final IModelCustom chungus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chungus.obj")).asDisplayList(); - + public static final IModelCustom chungus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chungus.obj")).asVBO(); + //Cooling Tower - public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")); - public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")); - + public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")).asVBO(); + public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")).asVBO(); + public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")).asVBO(); + + //Wood burner + public static final IModelCustom wood_burner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/wood_burner.obj")); + //IGen public static final IModelCustom igen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/igen.obj")); - - //Selenium Engine - public static final IModelCustom selenium_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/selenium_engine_body.obj")); - public static final IModelCustom selenium_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/selenium_engine_rotor.obj")); - public static final IModelCustom selenium_piston = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/selenium_engine_piston.obj")); - + //Combustion Engine public static final IModelCustom dieselgen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/dieselgen.obj")); - public static final IModelCustom combustion_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/combustion_engine.obj")).asDisplayList(); - + public static final IModelCustom combustion_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/combustion_engine.obj")).asVBO(); + //Press public static final IModelCustom press_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/press_body.obj")); public static final IModelCustom press_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/press_head.obj")); public static final IModelCustom epress_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_body.obj")); public static final IModelCustom epress_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_head.obj")); - + public static final IModelCustom conveyor_press = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/conveyor_press.obj")); + public static final IModelCustom ammo_press = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/ammo_press.obj")).asVBO(); + //Assembler public static final IModelCustom assembler_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_body.obj")); public static final IModelCustom assembler_cog = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_cog.obj")); public static final IModelCustom assembler_slider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_slider.obj")); public static final IModelCustom assembler_arm = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_arm.obj")); public static final IModelCustom assemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/assemfac.obj")); - + //Chemplant public static final IModelCustom chemplant_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_body.obj")); public static final IModelCustom chemplant_spinner = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_spinner.obj")); @@ -135,131 +144,127 @@ public class ResourceManager { public static final IModelCustom chemplant_fluid = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_fluid.hmf")); public static final IModelCustom chemplant_fluidcap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_fluidcap.hmf")); public static final IModelCustom chemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemfac.obj")); - + //Mixer public static final IModelCustom mixer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mixer.obj")); - + + //Arc Welder + public static final IModelCustom arc_welder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/arc_welder.obj"), false).asVBO(); + + //Solderer + public static final IModelCustom soldering_station = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/soldering_station.obj"), false).asVBO(); + + //Arc Furnace + public static final IModelCustom arc_furnace = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/arc_furnace.obj")).asVBO(); + //F6 TANKS public static final IModelCustom tank = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/tank.obj")); - + //Centrifuge - public static final IModelCustom centrifuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/centrifuge.obj")); - public static final IModelCustom gascent = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/gascent.obj")); - public static final IModelCustom silex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/silex.obj")); - public static final IModelCustom fel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fel.obj")); - + public static final IModelCustom centrifuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/centrifuge.obj")).asVBO(); + public static final IModelCustom gascent = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/gascent.obj")).asVBO(); + public static final IModelCustom silex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/silex.obj")).asVBO(); + public static final IModelCustom fel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fel.obj")).asVBO(); + //Magnusson Device public static final IModelCustom microwave = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/microwave.obj")); - + //Big Man Johnson public static final IModelCustom autosaw = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/autosaw.obj")); - + //Mining Drill - public static final IModelCustom drill_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_main.obj")); - public static final IModelCustom drill_bolt = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_bolt.obj")); - public static final IModelCustom mining_drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_drill.obj")).asDisplayList(); - + public static final IModelCustom mining_drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_drill.obj")).asVBO(); + public static final IModelCustom ore_slopper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/ore_slopper.obj")).asVBO(); + //Laser Miner - public static final IModelCustom mining_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_laser.obj")); - + public static final IModelCustom mining_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_laser.obj")).asVBO(); + //Crystallizer - public static final IModelCustom crystallizer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/crystallizer.obj")); - + public static final IModelCustom crystallizer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/acidizer.obj")).asVBO(); + //Cyclotron - public static final IModelCustom cyclotron = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cyclotron.obj")); - + public static final IModelCustom cyclotron = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cyclotron.obj")).asVBO(); + + //Exposure Chamber + public static final IModelCustom exposure_chamber = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/exposure_chamber.obj")).asVBO(); + //RTG public static final IModelCustom rtg = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/rtg.obj")); //Waste Drum public static final IModelCustom waste_drum = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/drum.obj")); - + //Deuterium Tower - public static final IModelCustom deuterium_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/machine_deuterium_tower.obj")); - - //Anti Mass Spectrometer - public static final IModelCustom ams_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_base.obj")); - public static final IModelCustom ams_emitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_emitter.obj")); - public static final IModelCustom ams_emitter_destroyed = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_emitter_destroyed.obj")); - public static final IModelCustom ams_limiter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_limiter.obj")); - public static final IModelCustom ams_limiter_destroyed = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_limiter_destroyed.obj")); - + public static final IModelCustom deuterium_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/machine_deuterium_tower.obj")).asVBO(); + //Dark Matter Core public static final IModelCustom dfc_emitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/core_emitter.obj")); public static final IModelCustom dfc_receiver = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/core_receiver.obj")); public static final IModelCustom dfc_injector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/core_injector.obj")); - + //Fan public static final IModelCustom fan = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fan.obj")); - + //Piston Inserter public static final IModelCustom piston_inserter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/piston_inserter.obj")); - + //Sphere public static final IModelCustom sphere_ruv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_ruv.obj")); public static final IModelCustom sphere_iuv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_iuv.obj")); public static final IModelCustom sphere_uv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_uv.obj")); public static final IModelCustom sphere_uv_anim = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_uv.hmf")); - + //Meteor public static final IModelCustom meteor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/meteor.obj")); - + //Radgen public static final IModelCustom radgen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radgen.obj")); - + //Small Reactor public static final IModelCustom reactor_small_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/reactors/reactor_small_base.obj")); public static final IModelCustom reactor_small_rods = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/reactors/reactor_small_rods.obj")); - + //Breeder public static final IModelCustom breeder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/breeder.obj")); - + //ITER - public static final IModelCustom iter = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/iter.obj")); - + public static final IModelCustom iter = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/iter.obj")).asVBO(); + + //ICF + public static final IModelCustom icf = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/icf.obj")).asVBO(); + + //ICF + public static final IModelCustom lpw2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/lpw2.obj")).asVBO(); + //Watz - public static final IModelCustom watz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/watz.obj")); - public static final IModelCustom watz_pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/watz_pump.obj")); - + public static final IModelCustom watz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/watz.obj")).asVBO(); + public static final IModelCustom watz_pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/watz_pump.obj")).asVBO(); + //FENSU - public static final IModelCustom fensu = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu.obj")); - + public static final IModelCustom fensu = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu.obj")).asVBO(); + //Radar - public static final IModelCustom radar_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj")); - public static final IModelCustom radar_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj")); - public static final IModelCustom radar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj")); - + public static final IModelCustom radar_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj"), false).asVBO(); + public static final IModelCustom radar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj"), false).asVBO(); + public static final IModelCustom radar_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_large.obj"), false).asVBO(); + public static final IModelCustom radar_screen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj"), false).asVBO(); + //Forcefield public static final IModelCustom forcefield_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/forcefield_top.obj")); - - //Shredder - public static final IModelCustom shredder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/shredder.obj")); - + //Bombs - public static final IModelCustom bomb_gadget = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/TheGadget3.obj")); + public static final IModelCustom bomb_gadget = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/gadget.obj")).asVBO(); public static final IModelCustom bomb_boy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/LilBoy1.obj")); - public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/FatMan.obj")).asDisplayList(); + public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/FatMan.obj")).asVBO(); public static final IModelCustom bomb_mike = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ivymike.obj")); - public static final IModelCustom bomb_tsar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/TsarBomba.obj")); + public static final IModelCustom bomb_tsar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/tsar.obj")).asVBO(); public static final IModelCustom bomb_prototype = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Prototype.obj")); public static final IModelCustom bomb_fleija = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Fleija.obj")); public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")); public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj")); public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj")); - public static final IModelCustom n45_globe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_globe.obj")); - public static final IModelCustom n45_knob = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_knob.obj")); - public static final IModelCustom n45_rod = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_rod.obj")); - public static final IModelCustom n45_stand = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_stand.obj")); - public static final IModelCustom n45_chain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n45_chain.obj")); - public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")); - public static final IModelCustom dud = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/BalefireCrashed.obj")); - - //Cel-Prime - public static final IModelCustom cp_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_tower.obj")); - public static final IModelCustom cp_terminal = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_terminal.obj")); - public static final IModelCustom cp_battery = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_battery.obj")); - public static final IModelCustom cp_tanks = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_tanks.obj")); - public static final IModelCustom cp_port = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_port.obj")); + public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO(); + public static final IModelCustom dud = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/BalefireCrashed.obj")).asVBO(); //Satellites public static final IModelCustom sat_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_base.obj")); @@ -274,28 +279,74 @@ public class ResourceManager { //SatDock public static final IModelCustom satDock = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_dock.obj")); - + //Solar Tower - public static final IModelCustom solar_boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solar_boiler.obj")); + public static final IModelCustom solar_boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solar_boiler.obj")).asVBO(); public static final IModelCustom solar_mirror = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/solar_mirror.obj")); - + + //Drain + public static final IModelCustom drain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/drain.obj")); + //Vault Door public static final IModelCustom vault_cog = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_cog.obj")); public static final IModelCustom vault_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_frame.obj")); public static final IModelCustom vault_teeth = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_teeth.obj")); public static final IModelCustom vault_label = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_label.obj")); - + //Blast Door public static final IModelCustom blast_door_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_base.obj")); public static final IModelCustom blast_door_tooth = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_tooth.obj")); public static final IModelCustom blast_door_slider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_slider.obj")); public static final IModelCustom blast_door_block = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_block.obj")); - + + //Sliding Blast Door + public static final ResourceLocation sliding_blast_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door.png"); + public static final ResourceLocation sliding_blast_door_variant1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door_variant1.png"); + public static final ResourceLocation sliding_blast_door_variant2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door_variant2.png"); + + public static AnimatedModel sliding_blast_door = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae")); + public static Animation sliding_blast_door_anim = ColladaLoader.loadAnim(1200, new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae")); + //Doors - public static AnimatedModel transition_seal; - public static Animation transition_seal_anim; - public static final WavefrontObjDisplayList fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asDisplayList(); - + public static AnimatedModel transition_seal = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"), true); + public static Animation transition_seal_anim = ColladaLoader.loadAnim(24040, new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae")); + public static final IModelCustomNamed fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asVBO(); + + //Secure Access Door + public static final ResourceLocation secure_access_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/secure_access_door.png"); + public static IModelCustomNamed secure_access_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/secure_access_door.obj")).asVBO(); + + public static final ResourceLocation water_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/water_door.png"); + public static IModelCustomNamed water_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/water_door.obj")).asVBO(); + + public static final ResourceLocation sliding_seal_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_seal_door.png"); + public static IModelCustomNamed sliding_seal_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_seal_door.obj")).asVBO(); + + public static final ResourceLocation round_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/round_airlock_door.png"); + public static IModelCustomNamed round_airlock_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/round_airlock_door.obj")).asVBO(); + + public static final ResourceLocation qe_sliding_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_sliding_door.png"); + public static IModelCustomNamed qe_sliding_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_sliding_door.obj")).asVBO(); + + public static final ResourceLocation qe_containment_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment.png"); + public static IModelCustomNamed qe_containment = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_containment.obj")).asVBO(); + + public static final ResourceLocation large_vehicle_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/large_vehicle_door.png"); + public static IModelCustomNamed large_vehicle_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/large_vehicle_door.obj")).asVBO(); + public static final ResourceLocation qe_containment_decal = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment_decal.png"); + + public static final ResourceLocation silo_hatch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch.png"); + public static IModelCustomNamed silo_hatch = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch.obj")).asVBO(); + public static final ResourceLocation silo_hatch_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/silo_hatch_large.png"); + public static IModelCustomNamed silo_hatch_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch_large.obj")).asVBO(); + + + //Lights + public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); + public static final IModelCustom cage_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/cage_lamp.obj")); + public static final IModelCustom fluorescent_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/fluorescent_lamp.obj")); + public static final IModelCustom flood_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/flood_lamp.obj")); + //Tesla Coil public static final IModelCustom tesla = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/tesla.obj")); public static final IModelCustom teslacrab = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/teslacrab.obj")); @@ -307,36 +358,43 @@ public class ResourceManager { public static final IModelCustom siege_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/siege_ufo.obj")); public static final IModelCustom glyphid = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/glyphid.obj")); public static final IModelCustom drone = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/quadcopter.obj")); - + //ZIRNOX - public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj")); - public static final IModelCustom zirnox_destroyed = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox_destroyed.obj")); - + public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj")).asVBO(); + public static final IModelCustom zirnox_destroyed = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox_destroyed.obj")).asVBO(); + //Belt public static final IModelCustom arrow = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/arrow.obj")); - + //Network public static final IModelCustom connector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/connector.obj")); + public static final IModelCustom pylon_medium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_medium.obj")); public static final IModelCustom pylon_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_large.obj")); public static final IModelCustom substation = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/substation.obj")); - + //Radiolysis public static final IModelCustom radiolysis = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radiolysis.obj")); - + + //RotaryFurnace + public static final IModelCustom rotary_furnace = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/rotary_furnace.obj")).asVBO(); + //Electrolyser - public static final IModelCustom electrolyser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electrolyser.obj")); - - //Belt + public static final IModelCustom electrolyser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electrolyser.obj")).asVBO(); + + //Charging Station public static final IModelCustom charger = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/charger.obj")); - + //DecoContainer (File Cabinet for now) public static final IModelCustom file_cabinet = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/file_cabinet.obj")); - + + //TELEX + public static final IModelCustom telex = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/telex.obj")); + ////Textures TEs - + public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); public static final ResourceLocation universal_bright = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_blades.png"); - + public static final ResourceLocation turret_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/base.png"); public static final ResourceLocation turret_base_friendly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/base_friendly.png"); public static final ResourceLocation turret_carriage_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/carriage.png"); @@ -356,6 +414,7 @@ public class ResourceManager { public static final ResourceLocation turret_arty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/arty.png"); public static final ResourceLocation turret_himars_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/himars.png"); public static final ResourceLocation turret_sentry_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/sentry.png"); + public static final ResourceLocation turret_sentry_damaged_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/sentry_damaged.png"); public static final ResourceLocation himars_standard_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/himars_standard.png"); public static final ResourceLocation himars_single_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/himars_single.png"); @@ -364,41 +423,50 @@ public class ResourceManager { public static final ResourceLocation turret_carriage_ciws_rusted = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/rusted/carriage_ciws.png"); public static final ResourceLocation turret_howard_rusted = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/rusted/howard.png"); public static final ResourceLocation turret_howard_barrels_rusted = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/rusted/howard_barrels.png"); - + public static final ResourceLocation brandon_explosive = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/brandon_drum.png"); //Landmines - public static final ResourceLocation mine_ap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_ap.png"); + public static final ResourceLocation mine_ap_grass_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_ap_grass.png"); + public static final ResourceLocation mine_ap_desert_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_ap_desert.png"); + public static final ResourceLocation mine_ap_snow_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_ap_snow.png"); + public static final ResourceLocation mine_ap_stone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_ap_stone.png"); //public static final ResourceLocation mine_he_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_he.png"); public static final ResourceLocation mine_marelet_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_marelet.png"); - public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_shrap.png"); + public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_shrapnel.png"); public static final ResourceLocation mine_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_fat.png"); - + //Heaters public static final ResourceLocation heater_firebox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/firebox.png"); public static final ResourceLocation heater_oven_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/heating_oven.png"); + public static final ResourceLocation ashpit_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ashpit.png"); public static final ResourceLocation heater_oilburner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/oilburner.png"); public static final ResourceLocation heater_electric_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/electric_heater.png"); public static final ResourceLocation heater_heatex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/heater_heatex.png"); - + //Heat Engines public static final ResourceLocation stirling_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling.png"); public static final ResourceLocation stirling_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling_steel.png"); + public static final ResourceLocation stirling_creative_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling_creative.png"); public static final ResourceLocation sawmill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/sawmill.png"); public static final ResourceLocation crucible_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crucible_heat.png"); public static final ResourceLocation boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/boiler.png"); + public static final ResourceLocation boiler_industrial_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/industrial_boiler.png"); public static final ResourceLocation hephaestus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/hephaestus.png"); - + + //Strand Caster + public static final ResourceLocation strand_caster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/strand_caster.png"); + //Furnaces public static final ResourceLocation furnace_iron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_iron.png"); public static final ResourceLocation furnace_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_steel.png"); public static final ResourceLocation combination_oven_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/combination_oven.png"); - + //Oil Pumps public static final ResourceLocation derrick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/derrick.png"); public static final ResourceLocation pumpjack_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pumpjack.png"); public static final ResourceLocation fracking_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fracking_tower.png"); - + //Refinery public static final ResourceLocation refinery_tex = new ResourceLocation(RefStrings.MODID, "textures/models/refinery.png"); public static final ResourceLocation vacuum_distill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/vacuum_distill.png"); @@ -406,111 +474,127 @@ 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 catalytic_reformer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/catalytic_reformer.png"); + public static final ResourceLocation hydrotreater_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/hydrotreater.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"); public static final ResourceLocation compressor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/compressor.png"); public static final ResourceLocation coker_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/coker.png"); - + public static final ResourceLocation pyrooven_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pyrooven.png"); + //Flare Stack public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/flare_stack.png"); - + public static final ResourceLocation chimney_brick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chimney_brick.png"); + public static final ResourceLocation chimney_industrial_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chimney_industrial.png"); + //Tank public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png"); public static final ResourceLocation tank_inner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank/tank_inner.png"); public static final ResourceLocation tank_label_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank/tank_NONE.png"); public static final ResourceLocation bat9000_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/bat9000.png"); public static final ResourceLocation orbus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/orbus.png"); - + //Turbofan public static final ResourceLocation turbofan_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan.png"); public static final ResourceLocation turbofan_back_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan_back.png"); public static final ResourceLocation turbofan_afterburner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan_afterburner.png"); - + //Gas Turbine public static final ResourceLocation turbinegas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbinegas.png"); + //Pumps + public static final ResourceLocation pump_steam_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pump_steam.png"); + public static final ResourceLocation pump_electric_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pump_electric.png"); + //Large Turbine public static final ResourceLocation steam_engine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/steam_engine.png"); public static final ResourceLocation turbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbine.png"); public static final ResourceLocation chungus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chungus.png"); - + //Cooling Tower public static final ResourceLocation tower_small_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/tower_small.png"); public static final ResourceLocation tower_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/tower_large.png"); - + public static final ResourceLocation condenser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/condenser.png"); + //Deuterium Tower public static final ResourceLocation deuterium_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/machine_deuterium_tower.png"); - + + //Wood Burner + public static final ResourceLocation wood_burner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/wood_burner.png"); + //IGen public static final ResourceLocation igen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen.png"); public static final ResourceLocation igen_rotor = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen_rotor.png"); public static final ResourceLocation igen_cog = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen_cog.png"); public static final ResourceLocation igen_arm = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen_arm.png"); public static final ResourceLocation igen_pistons = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen_pistons.png"); - - //Selenium Engine - public static final ResourceLocation selenium_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_body.png"); - public static final ResourceLocation selenium_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_piston.png"); - public static final ResourceLocation selenium_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_rotor.png"); - + //Combustion Engine public static final ResourceLocation dieselgen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/dieselgen.png"); public static final ResourceLocation combustion_engine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/combustion_engine.png"); - + //Press public static final ResourceLocation press_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/press_body.png"); public static final ResourceLocation press_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/press_head.png"); public static final ResourceLocation epress_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/epress_body.png"); public static final ResourceLocation epress_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/epress_head.png"); - + public static final ResourceLocation conveyor_press_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/conveyor_press.png"); + public static final ResourceLocation conveyor_press_belt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/conveyor_press_belt.png"); + public static final ResourceLocation ammo_press_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ammo_press.png"); + //Assembler public static final ResourceLocation assembler_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_base_new.png"); public static final ResourceLocation assembler_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_cog_new.png"); public static final ResourceLocation assembler_slider_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_slider_new.png"); public static final ResourceLocation assembler_arm_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_arm_new.png"); public static final ResourceLocation assemfac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/assemfac.png"); - + //Chemplant public static final ResourceLocation chemplant_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_base_new.png"); public static final ResourceLocation chemplant_spinner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_spinner_new.png"); public static final ResourceLocation chemplant_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_piston_new.png"); public static final ResourceLocation chemplant_fluid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/lavabase_small.png"); public static final ResourceLocation chemfac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemfac.png"); - + //Mixer public static final ResourceLocation mixer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mixer.png"); + //Welder + public static final ResourceLocation arc_welder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/arc_welder.png"); + + //Solderer + public static final ResourceLocation soldering_station_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/soldering_station.png"); + + //Arc Furnace + public static final ResourceLocation arc_furnace_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/arc_furnace.png"); + //F6 TANKS public static final ResourceLocation uf6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/UF6Tank.png"); public static final ResourceLocation puf6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/PUF6Tank.png"); - + //Centrifuge public static final ResourceLocation centrifuge_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/centrifuge.png"); public static final ResourceLocation gascent_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/gascent.png"); public static final ResourceLocation fel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fel.png"); public static final ResourceLocation silex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/silex.png"); - + //Magnusson Device public static final ResourceLocation microwave_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/microwave.png"); - + //Big Man Johnson public static final ResourceLocation autosaw_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/autosaw.png"); - + //Mining Drill - public static final ResourceLocation drill_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mining_drill.png"); - public static final ResourceLocation drill_bolt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png"); public static final ResourceLocation mining_drill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_drill.png"); + public static final ResourceLocation ore_slopper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ore_slopper.png"); //Laser Miner public static final ResourceLocation mining_laser_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_laser_base.png"); public static final ResourceLocation mining_laser_pivot_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_laser_pivot.png"); public static final ResourceLocation mining_laser_laser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_laser_laser.png"); - + //Crystallizer - public static final ResourceLocation crystallizer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crystallizer.png"); - public static final ResourceLocation crystallizer_spinner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crystallizer_spinner.png"); - public static final ResourceLocation crystallizer_window_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crystallizer_window.png"); - + public static final ResourceLocation crystallizer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/acidizer.png"); + //Cyclotron public static final ResourceLocation cyclotron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cyclotron.png"); public static final ResourceLocation cyclotron_ashes = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cyclotron_ashes.png"); @@ -521,43 +605,40 @@ public class ResourceManager { public static final ResourceLocation cyclotron_gavel_filled = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cyclotron_gavel_filled.png"); public static final ResourceLocation cyclotron_coin = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cyclotron_coin.png"); public static final ResourceLocation cyclotron_coin_filled = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cyclotron_coin_filled.png"); - + + //Exposure Chamber + public static final ResourceLocation exposure_chamber_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/exposure_chamber.png"); + //RTG public static final ResourceLocation rtg_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg.png"); public static final ResourceLocation rtg_cell_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg_cell.png"); public static final ResourceLocation rtg_polonium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg_polonium.png"); - + //Waste Drum public static final ResourceLocation waste_drum_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drum_gray.png"); - - //Anti Mass Spectrometer - public static final ResourceLocation ams_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_base.png"); - public static final ResourceLocation ams_emitter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_emitter.png"); - public static final ResourceLocation ams_limiter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_limiter.png"); - public static final ResourceLocation ams_destroyed_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_destroyed.png"); - + //Dark Matter Core public static final ResourceLocation dfc_emitter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_emitter.png"); public static final ResourceLocation dfc_receiver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_receiver.png"); public static final ResourceLocation dfc_injector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_injector.png"); public static final ResourceLocation dfc_stabilizer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_stabilizer.png"); - + //Fan public static final ResourceLocation fan_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fan.png"); - + //Piston_Inserter public static final ResourceLocation piston_inserter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/piston_inserter.png"); - + //Radgen public static final ResourceLocation radgen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radgen.png"); - + //Small Reactor public static final ResourceLocation reactor_small_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/reactor_small_base.png"); public static final ResourceLocation reactor_small_rods_tex = new ResourceLocation(RefStrings.MODID, "textures/models/reactor_small_rods.png"); //Breeder public static final ResourceLocation breeder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/breeder.png"); - + //ITER public static final ResourceLocation iter_glass = new ResourceLocation(RefStrings.MODID, "textures/models/iter/glass.png"); public static final ResourceLocation iter_microwave = new ResourceLocation(RefStrings.MODID, "textures/models/iter/microwave.png"); @@ -571,33 +652,40 @@ public class ResourceManager { public static final ResourceLocation iter_torus_desh = new ResourceLocation(RefStrings.MODID, "textures/models/iter/torus_desh.png"); public static final ResourceLocation iter_torus_chlorophyte = new ResourceLocation(RefStrings.MODID, "textures/models/iter/torus_chlorophyte.png"); public static final ResourceLocation iter_torus_vaporwave = new ResourceLocation(RefStrings.MODID, "textures/models/iter/torus_vaporwave.png"); - + + //ICF + public static final ResourceLocation icf_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/icf.png"); + + //Fat Fuck + public static final ResourceLocation lpw2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/lpw2.png"); + public static final ResourceLocation lpw2_term_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/lpw2_term.png"); + public static final ResourceLocation lpw2_error_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/lpw2_term_error.png"); + //Watz public static final ResourceLocation watz_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/watz.png"); public static final ResourceLocation watz_pump_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/watz_pump.png"); - + //FENSU public static final ResourceLocation fensu_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu.png"); - + //Radar public static final ResourceLocation radar_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_base.png"); public static final ResourceLocation radar_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_head.png"); public static final ResourceLocation radar_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_base.png"); public static final ResourceLocation radar_dish_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_dish.png"); - + public static final ResourceLocation radar_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_large.png"); + public static final ResourceLocation radar_screen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_screen.png"); + //Forcefield public static final ResourceLocation forcefield_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/forcefield_base.png"); public static final ResourceLocation forcefield_top_tex = new ResourceLocation(RefStrings.MODID, "textures/models/forcefield_top.png"); - - //Shredder - public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/shredder.png"); - + //Bombs - public static final ResourceLocation bomb_gadget_tex = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_tex.png"); + public static final ResourceLocation bomb_gadget_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/gadget.png"); public static final ResourceLocation bomb_boy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/lilboy.png"); public static final ResourceLocation bomb_man_tex = new ResourceLocation(RefStrings.MODID, "textures/models/FatMan.png"); public static final ResourceLocation bomb_mike_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/ivymike.png"); - public static final ResourceLocation bomb_tsar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/TsarBomba.png"); + public static final ResourceLocation bomb_tsar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/tsar.png"); public static final ResourceLocation bomb_prototype_tex = new ResourceLocation(RefStrings.MODID, "textures/models/Prototype.png"); public static final ResourceLocation bomb_fleija_tex = new ResourceLocation(RefStrings.MODID, "textures/models/Fleija.png"); public static final ResourceLocation bomb_solinium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/ufp.png"); @@ -611,7 +699,7 @@ public class ResourceManager { public static final ResourceLocation n45_chain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_chain.png"); public static final ResourceLocation fstbmb_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/fstbmb.png"); public static final ResourceLocation dud_tex = new ResourceLocation(RefStrings.MODID, "textures/models/BalefireCrashed.png"); - + //Satellites public static final ResourceLocation sat_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_base.png"); public static final ResourceLocation sat_radar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_radar.png"); @@ -621,10 +709,10 @@ public class ResourceManager { public static final ResourceLocation sat_laser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_laser.png"); public static final ResourceLocation sat_foeq_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_foeq.png"); public static final ResourceLocation sat_foeq_burning_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_foeq_burning.png"); - + //SatDock public static final ResourceLocation satdock_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_dock.png"); - + //Vault Door public static final ResourceLocation vault_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog.png"); public static final ResourceLocation vault_frame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_frame.png"); @@ -637,21 +725,28 @@ public class ResourceManager { public static final ResourceLocation vault4_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault4_cog.png"); public static final ResourceLocation vault4_label_111_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault4_label_111.png"); public static final ResourceLocation vault4_label_81_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault4_label_81.png"); - + //Solar Tower public static final ResourceLocation solar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solar_boiler.png"); public static final ResourceLocation solar_mirror_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solar_mirror.png"); - + + //Drain + public static final ResourceLocation drain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drain.png"); + //Blast Door public static final ResourceLocation blast_door_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_base.png"); public static final ResourceLocation blast_door_tooth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_tooth.png"); public static final ResourceLocation blast_door_slider_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_slider.png"); public static final ResourceLocation blast_door_block_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_block.png"); - + //Doors public static final ResourceLocation transition_seal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/transition_seal.png"); public static final ResourceLocation fire_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/fire_door.png"); + //Lantern + public static final ResourceLocation lantern_tex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/lantern.png"); + public static final ResourceLocation lantern_rusty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/lantern_rusty.png"); + //Tesla Coil public static final ResourceLocation tesla_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tesla.png"); public static final ResourceLocation teslacrab_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/teslacrab.png"); @@ -668,36 +763,46 @@ public class ResourceManager { public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png"); public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png"); public static final ResourceLocation glyphid_nuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_nuclear.png"); - + public static final ResourceLocation glyphid_digger_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_digger.png"); + //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); public static final ResourceLocation zirnox_destroyed_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox_destroyed.png"); - + //Electricity public static final ResourceLocation connector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/connector.png"); + public static final ResourceLocation pylon_medium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium.png"); + public static final ResourceLocation pylon_medium_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium_steel.png"); public static final ResourceLocation pylon_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_large.png"); public static final ResourceLocation substation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/substation.png"); + public static final ResourceLocation wire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire.png"); + public static final ResourceLocation wire_greyscale_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire_greyscale.png"); //Radiolysis public static final ResourceLocation radiolysis_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radiolysis.png"); - + + //Rotary Furnace + public static final ResourceLocation rotary_furnace_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rotary_furnace.png"); + //Electrolyser public static final ResourceLocation electrolyser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/electrolyser.png"); - + //Charger public static final ResourceLocation charger_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/charger.png"); - + //DecoContainer public static final ResourceLocation file_cabinet_tex = new ResourceLocation(RefStrings.MODID, "textures/models/file_cabinet.png"); public static final ResourceLocation file_cabinet_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/file_cabinet_steel.png"); - + + //TELEX + public static final ResourceLocation telex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/telex.png"); + ////Obj Items - + //Shimmer Sledge public static final IModelCustom shimmer_sledge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/shimmer_sledge.obj")); public static final IModelCustom shimmer_axe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/shimmer_axe.obj")); public static final IModelCustom stopsign = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/stopsign.obj")); - public static final IModelCustom pch = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/pch.obj")); public static final IModelCustom gavel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/gavel.obj")); public static final IModelCustom crucible = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/crucible.obj")); public static final IModelCustom chainsaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chainsaw.obj"), false); @@ -707,9 +812,7 @@ public class ResourceManager { public static final IModelCustom deagle = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/deagle.obj")); public static final IModelCustom shotty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/supershotty.obj")); public static final IModelCustom ks23 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/ks23.obj")); - public static final IModelCustom flamer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/flamer.obj")); public static final IModelCustom flechette = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/flechette.obj")); - public static final IModelCustom quadro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/quadro.obj")); public static final IModelCustom sauergun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/sauergun.obj")); public static final IModelCustom vortex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/vortex.obj")); public static final IModelCustom thompson = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/thompson.obj")); @@ -719,7 +822,6 @@ public class ResourceManager { public static final IModelCustom ff_nightmare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/nightmare.obj")); public static final IModelCustom fireext = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/fireext.obj")); public static final IModelCustom ar15 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/ar15.obj")); - public static final IModelCustom stinger = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/stinger.obj")); public static final IModelCustom mg42 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mg42.obj")); public static final IModelCustom rem700 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/rem700.obj")); public static final IModelCustom rem700poly = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/rem700poly.obj")); @@ -727,17 +829,61 @@ public class ResourceManager { public static final IModelCustom cursed_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cursed.obj")); public static final IModelCustom detonator_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/detonator_laser.obj")); public static final IModelCustom remington = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/remington.obj")); - public static final IModelCustom spas_12 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/spas-12.obj")); public static final IModelCustom nightmare_dark = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/nightmare_dark.obj")); public static final IModelCustom glass_cannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/glass_cannon.obj")); - public static final IModelCustom bio_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/bio_revolver.obj")); - public static final IModelCustom chemthrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chemthrower.obj")).asDisplayList(); public static final IModelCustom novac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/novac.obj")); - public static final IModelCustom novac_scoped = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/novac_scoped.obj")); - public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asDisplayList(); //large fella should be a display list - public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_sniper.obj")).asDisplayList(); - public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")); - + public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_sniper.obj")).asVBO(); + public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")).asVBO(); + public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asVBO(); + public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon.obj")).asVBO(); + public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asVBO(); + + public static final IModelCustom pepperbox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/pepperbox.obj")).asVBO(); + public static final IModelCustom bio_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/bio_revolver.obj")).asVBO(); + public static final IModelCustom henry = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/henry.obj")).asVBO(); + public static final IModelCustom greasegun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/greasegun.obj")).asVBO(); + public static final IModelCustom maresleg = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/maresleg.obj")).asVBO(); + public static final IModelCustom flaregun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/flaregun.obj")).asVBO(); + public static final IModelCustom am180 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/am180.obj")).asVBO(); + public static final IModelCustom liberator = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/liberator.obj")).asVBO(); + public static final IModelCustom congolake = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/congolake.obj")).asVBO(); + public static final IModelCustom flamethrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/flamethrower.obj")).asVBO(); + public static final IModelCustom lilmac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lilmac.obj")).asVBO(); + public static final IModelCustom carbine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/carbine.obj")).asVBO(); + public static final IModelCustom uzi = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/uzi.obj")).asVBO(); + public static final IModelCustom spas_12 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/spas-12.obj")).asVBO(); + public static final IModelCustom panzerschreck = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/panzerschreck.obj")).asVBO(); + public static final IModelCustom g3 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/g3.obj")).asVBO(); + public static final IModelCustom stinger = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/stinger.obj")).asVBO(); + public static final IModelCustom chemthrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chemthrower.obj")).asVBO(); + public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asVBO(); + public static final IModelCustom shredder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/shredder.obj")).asVBO(); + public static final IModelCustom quadro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/quadro.obj")).asVBO(); + public static final IModelCustom mike_hawk = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mike_hawk.obj")).asVBO(); + public static final IModelCustom minigun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/minigun.obj")).asVBO(); + public static final IModelCustom missile_launcher = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/missile_launcher.obj")).asVBO(); + public static final IModelCustom tesla_cannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tesla_cannon.obj")).asVBO(); + public static final IModelCustom stg77 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/stg77.obj")).asVBO(); + public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")).asVBO(); + public static final IModelCustom fatman = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/fatman.obj")).asVBO(); + public static final IModelCustom lasrifle = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lasrifle.obj")).asVBO(); + public static final IModelCustom hangman = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/hangman.obj")).asVBO(); + public static final IModelCustom folly = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/folly.obj")).asVBO(); + public static final IModelCustom double_barrel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/sacred_dragon.obj")).asVBO(); + + public static final HashMap python_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/python.json")); + public static final HashMap cursed_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/cursed.json")); + public static final HashMap novac_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/novac.json")); + public static final HashMap ks23_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/ks23.json")); + public static final HashMap spas_12_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/spas12.json")); + public static final HashMap supershotty_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/supershotty.json")); + public static final HashMap benelli_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/benelli.json")); + public static final HashMap congolake_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/congolake.json")); + public static final HashMap am180_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/am180.json")); + public static final HashMap flamethrower_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/flamethrower.json")); + public static final HashMap stg77_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/stg77.json")); + public static final HashMap lag_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/lag.json")); + public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); public static final IModelCustom grenade_frag = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_frag.obj")); @@ -757,9 +903,12 @@ public class ResourceManager { public static final IModelCustom armor_bismuth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/bismuth.obj")); public static final IModelCustom armor_mod_tesla = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/mod_tesla.obj")); public static final IModelCustom armor_wings = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/murk.obj")); - public static final IModelCustom armor_solstice = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/solstice.obj")); + public static final IModelCustom armor_axepack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/wings_pheo.obj")); + public static final IModelCustom armor_tail = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/tail_peep.obj")); public static final IModelCustom player_manly_af = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/armor/player_fem.obj")); - + public static final IModelCustom armor_envsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/envsuit.obj")); + public static final IModelCustom armor_trenchmaster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/trenchmaster.obj")); + ////Texture Items //Shimmer Sledge @@ -783,7 +932,6 @@ public class ResourceManager { public static final ResourceLocation deagle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/deagle.png"); public static final ResourceLocation ks23_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ks23.png"); public static final ResourceLocation shotty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shotty.png"); - public static final ResourceLocation flamer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamer.png"); public static final ResourceLocation flechette_body = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_body.png"); public static final ResourceLocation flechette_barrel = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_barrel.png"); public static final ResourceLocation flechette_gren_tube = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_gren_tube.png"); @@ -795,8 +943,6 @@ public class ResourceManager { public static final ResourceLocation flechette_drum = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_drum.png"); public static final ResourceLocation flechette_trigger = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_trigger.png"); public static final ResourceLocation flechette_stock = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_stock.png"); - public static final ResourceLocation quadro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro.png"); - public static final ResourceLocation quadro_rocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro_rocket.png"); public static final ResourceLocation sauergun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sauergun.png"); public static final ResourceLocation vortex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/vortex.png"); public static final ResourceLocation thompson_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/thompson.png"); @@ -816,18 +962,63 @@ public class ResourceManager { public static final ResourceLocation remington_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/remington.png"); public static final ResourceLocation spas_12_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/spas-12.png"); public static final ResourceLocation glass_cannon_panel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/glass_cannon_panel.png"); - public static final ResourceLocation bio_revolver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/bio_revolver.png"); public static final ResourceLocation chemthrower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/chemthrower.png"); public static final ResourceLocation novac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/novac.png"); - public static final ResourceLocation novac_scope_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/novac_scope.png"); - public static final ResourceLocation lil_pip_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lil_pip.png"); public static final ResourceLocation blackjack_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/blackjack.png"); public static final ResourceLocation lent_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lent_gun.png"); public static final ResourceLocation red_key_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/red_key.png"); public static final ResourceLocation m2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/m2_browning.png"); public static final ResourceLocation lunatic_sniper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lunatic_sniper.png"); + public static final ResourceLocation benelli_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/benelli_tex.png"); + public static final ResourceLocation coilgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/coilgun.png"); + public static final ResourceLocation cryocannon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon.png"); + public static final ResourceLocation uac_pistol_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pistol_texture.png"); + public static final ResourceLocation congolake_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/congolake.png"); + + public static final ResourceLocation debug_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/debug_gun.png"); + public static final ResourceLocation pepperbox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pepperbox.png"); + public static final ResourceLocation bio_revolver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/bio_revolver.png"); + public static final ResourceLocation bio_revolver_atlas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/bio_revolver_atlas.png"); + public static final ResourceLocation dani_celestial_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/dani_celestial.png"); + public static final ResourceLocation dani_lunar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/dani_lunar.png"); + public static final ResourceLocation henry_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/henry.png"); + public static final ResourceLocation greasegun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/greasegun.png"); + public static final ResourceLocation maresleg_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/maresleg.png"); + public static final ResourceLocation maresleg_broken_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/maresleg_broken.png"); + public static final ResourceLocation flaregun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flaregun.png"); + public static final ResourceLocation heavy_revolver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/heavy_revolver.png"); + public static final ResourceLocation heavy_revolver_protege_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/protege.png"); + public static final ResourceLocation lilmac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac.png"); + public static final ResourceLocation lilmac_scope_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_scope.png"); + public static final ResourceLocation carbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/huntsman.png"); + public static final ResourceLocation am180_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/am180.png"); + public static final ResourceLocation liberator_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/liberator.png"); + public static final ResourceLocation flamethrower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower.png"); + public static final ResourceLocation flamethrower_topaz_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower_topaz.png"); + public static final ResourceLocation flamethrower_daybreaker_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower_daybreaker.png"); + public static final ResourceLocation mike_hawk_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lag.png"); + public static final ResourceLocation uzi_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/uzi.png"); + public static final ResourceLocation panzerschreck_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/panzerschreck.png"); + public static final ResourceLocation g3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/g3.png"); + public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder.png"); + public static final ResourceLocation shredder_orig_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder_orig.png"); + public static final ResourceLocation sexy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy.png"); + public static final ResourceLocation quadro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro.png"); + public static final ResourceLocation quadro_rocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro_rocket.png"); + public static final ResourceLocation minigun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/minigun.png"); + public static final ResourceLocation minigun_lacunae_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/minigun_lacunae.png"); + public static final ResourceLocation missile_launcher_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/missile_launcher.png"); + public static final ResourceLocation tesla_cannon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tesla_cannon.png"); + public static final ResourceLocation stg77_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/stg77.png"); public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png"); - + public static final ResourceLocation fatman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman.png"); + public static final ResourceLocation fatman_mininuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman_mininuke.png"); + public static final ResourceLocation lasrifle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle.png"); + public static final ResourceLocation hangman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hangman.png"); + public static final ResourceLocation folly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/moonlight.png"); + public static final ResourceLocation double_barrel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/double_barrel.png"); + public static final ResourceLocation double_barrel_sacred_dragon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/double_barrel_sacred_dragon.png"); + public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); public static final ResourceLocation ff_gold = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/gold.png"); @@ -853,6 +1044,12 @@ public class ResourceManager { public static final ResourceLocation bj_jetpack = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_jetpack.png"); public static final ResourceLocation bj_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_arm.png"); + public static final ResourceLocation envsuit_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_helmet.png"); + public static final ResourceLocation envsuit_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_leg.png"); + public static final ResourceLocation envsuit_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_chest.png"); + public static final ResourceLocation envsuit_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_arm.png"); + public static final ResourceLocation envsuit_tail = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_tail.png"); + public static final ResourceLocation hev_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/hev_helmet.png"); public static final ResourceLocation hev_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/hev_leg.png"); public static final ResourceLocation hev_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/hev_chest.png"); @@ -894,68 +1091,75 @@ public class ResourceManager { public static final ResourceLocation rpa_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_chest.png"); public static final ResourceLocation rpa_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_arm.png"); + public static final ResourceLocation trenchmaster_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_helmet.png"); + public static final ResourceLocation trenchmaster_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_leg.png"); + public static final ResourceLocation trenchmaster_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_chest.png"); + public static final ResourceLocation trenchmaster_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_arm.png"); + public static final ResourceLocation mod_tesla = new ResourceLocation(RefStrings.MODID, "textures/armor/mod_tesla.png"); - + public static final ResourceLocation armor_bismuth_tex = new ResourceLocation(RefStrings.MODID, "textures/armor/bismuth.png"); public static final ResourceLocation wings_murk = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_murk.png"); public static final ResourceLocation wings_bob = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_bob.png"); public static final ResourceLocation wings_black = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_black.png"); - public static final ResourceLocation wings_solstice = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_solstice.png"); + public static final ResourceLocation wings_pheo = new ResourceLocation(RefStrings.MODID, "textures/armor/axepack.png"); + public static final ResourceLocation tail_peep = new ResourceLocation(RefStrings.MODID, "textures/armor/tail_peep.png"); public static final ResourceLocation hat = new ResourceLocation(RefStrings.MODID, "textures/armor/hat.png"); public static final ResourceLocation no9 = new ResourceLocation(RefStrings.MODID, "textures/armor/no9.png"); public static final ResourceLocation no9_insignia = new ResourceLocation(RefStrings.MODID, "textures/armor/no9_insignia.png"); public static final ResourceLocation goggles = new ResourceLocation(RefStrings.MODID, "textures/armor/goggles.png"); - - public static final ResourceLocation player_manly_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/player_fem.png"); - - - + + public static final ResourceLocation player_manly_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/player_fem.png"); + + + ////Obj Entities - + //Boxcar public static final IModelCustom boxcar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/boxcar.obj")); public static final IModelCustom duchessgambit = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/duchessgambit.obj")); public static final IModelCustom building = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/building.obj")); + public static final IModelCustom torpedo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/torpedo.obj")); public static final IModelCustom rpc = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rpc.obj")); public static final IModelCustom tom_main = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/tom_main.obj")); public static final IModelCustom tom_flame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/tom_flame.hmf")); public static final IModelCustom nikonium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/nikonium.obj")); - + //Projectiles public static final IModelCustom projectiles = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/projectiles/projectiles.obj")); + public static final IModelCustom leadburster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/projectiles/leadburster.obj")); public static final IModelCustom casings = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/casings.obj")); - + //Bomber public static final IModelCustom dornier = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/dornier.obj")); public static final IModelCustom b29 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/b29.obj")); - + public static final IModelCustom c130 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/c130.obj")).asVBO(); + //Missiles - public static final IModelCustom missileV2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileV2.obj")); - public static final IModelCustom missileStrong = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileGeneric.obj")); - public static final IModelCustom missileHuge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileHuge.obj")); - public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); - public static final IModelCustom missileMIRV = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileMIRV.obj")); - public static final IModelCustom missileThermo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileThermo.obj")); - public static final IModelCustom missileDoomsday = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileDoomsday.obj")); - public static final IModelCustom missileTaint = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileTaint.obj")); + public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asVBO(); + public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asVBO(); + public static final IModelCustom missileStealth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_stealth.obj"), false).asVBO(); + public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")).asVBO(); + public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")).asVBO(); + public static final IModelCustom missileNuclear = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_atlas.obj")).asVBO(); + public static final IModelCustom missileMicro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_micro.obj")).asVBO(); public static final IModelCustom missileShuttle = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileShuttle.obj")); - public static final IModelCustom missileCarrier = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileCarrier.obj")); - public static final IModelCustom missileBooster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileBooster.obj")); public static final IModelCustom minerRocket = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/minerRocket.obj")); - public static final IModelCustom soyuz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz.obj")).asDisplayList(); - public static final IModelCustom soyuz_lander = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_lander.obj")).asDisplayList(); - public static final IModelCustom soyuz_module = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_module.obj")).asDisplayList(); - public static final IModelCustom soyuz_launcher_legs = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_legs.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_table = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_table.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_tower_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower_base.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_support_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support_base.obj"), false).asDisplayList(); - public static final IModelCustom soyuz_launcher_support = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support.obj"), false).asDisplayList(); - + public static final IModelCustom soyuz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz.obj")).asVBO(); + public static final IModelCustom soyuz_lander = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_lander.obj")).asVBO(); + public static final IModelCustom soyuz_module = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_module.obj")).asVBO(); + public static final IModelCustom soyuz_launcher_legs = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_legs.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_table = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_table.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_tower_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower_base.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_support_base = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support_base.obj"), false).asVBO(); + public static final IModelCustom soyuz_launcher_support = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_support.obj"), false).asVBO(); + //Missile Parts - public static final IModelCustom missile_pad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missilePad.obj")); + public static final IModelCustom missile_pad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/launch_pad_silo.obj")); + public static final IModelCustom missile_erector = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/launch_pad_erector.obj")).asVBO(); public static final IModelCustom missile_assembly = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_assembly.obj")); public static final IModelCustom strut = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/strut.obj")); public static final IModelCustom compact_launcher = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/compact_launcher.obj")); @@ -1003,7 +1207,7 @@ public class ResourceManager { public static final IModelCustom mp_f_15_hydrogen = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_15_hydrogen.obj")); public static final IModelCustom mp_f_15_20_kerosene = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_15_20_kerosene.obj")); public static final IModelCustom mp_f_20 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_20.obj")); - + public static final IModelCustom mp_w_10_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_10_he.obj")); public static final IModelCustom mp_w_10_incendiary = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_10_incendiary.obj")); public static final IModelCustom mp_w_10_buster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_10_buster.obj")); @@ -1018,30 +1222,35 @@ public class ResourceManager { public static final IModelCustom mp_w_15_balefire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15_balefire.obj")); public static final IModelCustom mp_w_15_turbine = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15_turbine.obj")); public static final IModelCustom mp_w_20 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_20.obj")); - + //Carts public static final IModelCustom cart = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart.obj")); public static final IModelCustom cart_destroyer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_destroyer.obj")); public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj")); public static final IModelCustom train_cargo_tram = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram.obj")); public static final IModelCustom train_cargo_tram_trailer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram_trailer.obj")); - + public static final IModelCustom tunnel_bore = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/vehicles/tunnel_bore.obj")); + + //Drones + public static final IModelCustom delivery_drone = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/drone.obj")); + ////Texture Entities - + //Blast public static final ResourceLocation fireball = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/fireball.png"); public static final ResourceLocation balefire = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/balefire.png"); public static final ResourceLocation tomblast = new ResourceLocation(RefStrings.MODID, "textures/models/explosion/tomblast.png"); - + //Boxcar public static final ResourceLocation boxcar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/boxcar.png"); public static final ResourceLocation duchessgambit_tex = new ResourceLocation(RefStrings.MODID, "textures/models/duchessgambit.png"); public static final ResourceLocation building_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/building.png"); + public static final ResourceLocation torpedo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/torpedo.png"); public static final ResourceLocation rpc_tex = new ResourceLocation(RefStrings.MODID, "textures/models/rpc.png"); public static final ResourceLocation tom_main_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tom_main.png"); public static final ResourceLocation tom_flame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tom_flame.png"); public static final ResourceLocation nikonium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/misc/nikonium.png"); - + //Projectiles public static final ResourceLocation bullet_pistol_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/bullet_pistol.png"); public static final ResourceLocation bullet_rifle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/bullet_rifle.png"); @@ -1052,52 +1261,54 @@ public class ResourceManager { public static final ResourceLocation rocket_mirv_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/rocket_mirv.png"); public static final ResourceLocation mini_nuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/mini_nuke.png"); public static final ResourceLocation mini_mirv_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/mini_mirv.png"); + public static final ResourceLocation leadburster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/leadburster.png"); public static final ResourceLocation casings_tex = new ResourceLocation(RefStrings.MODID, "textures/particle/casings.png"); - + //Bomber - public static final ResourceLocation dornier_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_0.png"); public static final ResourceLocation dornier_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_1.png"); public static final ResourceLocation dornier_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_2.png"); - public static final ResourceLocation dornier_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_3.png"); public static final ResourceLocation dornier_4_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_4.png"); public static final ResourceLocation b29_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_0.png"); public static final ResourceLocation b29_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_1.png"); public static final ResourceLocation b29_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_2.png"); public static final ResourceLocation b29_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_3.png"); - + public static final ResourceLocation c130_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/c130_0.png"); + //Missiles - public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_HE.png"); - public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_IN.png"); - public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_CL.png"); - public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_BU.png"); - public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileAA.png"); - public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png"); - public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png"); - public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_IN.png"); - public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_CL.png"); - public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_BU.png"); - public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_HE.png"); - public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_IN.png"); - public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_CL.png"); - public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_BU.png"); - public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeon.png"); - public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonH.png"); - public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonV.png"); - public static final ResourceLocation missileEndo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileEndo.png"); - public static final ResourceLocation missileExo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileExo.png"); - public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileDoomsday.png"); - public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileTaint.png"); + public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2.png"); + public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_inc.png"); + public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_cl.png"); + public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_bu.png"); + public static final ResourceLocation missileV2_decoy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_decoy.png"); + public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png"); + public static final ResourceLocation missileStealth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_stealth.png"); + public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong.png"); + public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_emp.png"); + public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_inc.png"); + public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_cl.png"); + public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_bu.png"); + public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge.png"); + public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_inc.png"); + public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_cl.png"); + public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_bu.png"); + public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_nuclear.png"); + public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_thermo.png"); + public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_tectonic.png"); + public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_doomsday.png"); + public static final ResourceLocation missileDoomsdayRusted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_doomsday_weathered.png"); + public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_taint.png"); public static final ResourceLocation missileShuttle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileShuttle.png"); - public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicro.png"); + public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro.png"); public static final ResourceLocation missileCarrier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileCarrier.png"); public static final ResourceLocation missileBooster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileBooster.png"); public static final ResourceLocation minerRocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/minerRocket.png"); public static final ResourceLocation bobmazon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bobmazon.png"); public static final ResourceLocation siege_dropship_tex = new ResourceLocation(RefStrings.MODID, "textures/models/siege_dropship.png"); - public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroBHole.png"); - public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroSchrab.png"); - public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroEMP.png"); - + public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_bhole.png"); + public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_schrab.png"); + public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_emp.png"); + public static final ResourceLocation missileMicroTest_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_test.png"); + public static final ResourceLocation soyuz_engineblock = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/engineblock.png"); public static final ResourceLocation soyuz_bottomstage = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/bottomstage.png"); public static final ResourceLocation soyuz_topstage = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/topstage.png"); @@ -1136,6 +1347,7 @@ public class ResourceManager { public static final ResourceLocation soyuz_lander_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/soyuz_lander.png"); public static final ResourceLocation soyuz_lander_rust_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/soyuz_lander_rust.png"); public static final ResourceLocation soyuz_chute_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/soyuz_chute.png"); + public static final ResourceLocation supply_crate = new ResourceLocation(RefStrings.MODID, "textures/blocks/crate_can.png"); public static final ResourceLocation soyuz_module_dome_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/module_dome.png"); public static final ResourceLocation soyuz_module_lander_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/module_lander.png"); @@ -1148,9 +1360,17 @@ public class ResourceManager { public static final ResourceLocation soyuz_launcher_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_launcher/launcher_tower.png"); public static final ResourceLocation soyuz_launcher_support_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_launcher/launcher_support_base.png"); public static final ResourceLocation soyuz_launcher_support_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_launcher/launcher_support.png"); - + //Missile Parts - public static final ResourceLocation missile_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missilePad.png"); + public static final ResourceLocation missile_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/silo.png"); + public static final ResourceLocation missile_pad_rusted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/silo_rusted.png"); + public static final ResourceLocation missile_erector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/pad.png"); + public static final ResourceLocation missile_erector_micro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_micro.png"); + public static final ResourceLocation missile_erector_v2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_v2.png"); + public static final ResourceLocation missile_erector_strong_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_strong.png"); + public static final ResourceLocation missile_erector_huge_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_huge.png"); + public static final ResourceLocation missile_erector_atlas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_atlas.png"); + public static final ResourceLocation missile_erector_abm_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_abm.png"); public static final ResourceLocation missile_assembly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_assembly.png"); public static final ResourceLocation strut_tex = new ResourceLocation(RefStrings.MODID, "textures/models/strut.png"); public static final ResourceLocation compact_launcher_tex = new ResourceLocation(RefStrings.MODID, "textures/models/compact_launcher.png"); @@ -1161,7 +1381,7 @@ public class ResourceManager { public static final ResourceLocation launch_table_large_scaffold_connector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/launch_table_large_scaffold_connector.png"); public static final ResourceLocation launch_table_small_scaffold_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/launch_table_small_scaffold_base.png"); public static final ResourceLocation launch_table_small_scaffold_connector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/launch_table_small_scaffold_connector.png"); - + public static final ResourceLocation mp_t_10_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_10_kerosene.png"); public static final ResourceLocation mp_t_10_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_10_solid.png"); public static final ResourceLocation mp_t_10_xenon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_10_xenon.png"); @@ -1175,7 +1395,7 @@ public class ResourceManager { public static final ResourceLocation mp_t_15_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_balefire.png"); public static final ResourceLocation mp_t_15_balefire_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_balefire_large.png"); public static final ResourceLocation mp_t_15_balefire_large_rad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_balefire_large_rad.png"); - + public static final ResourceLocation mp_t_20_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_20_kerosene.png"); public static final ResourceLocation mp_t_20_kerosene_dual_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_20_kerosene_dual.png"); public static final ResourceLocation mp_t_20_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_20_solid.png"); @@ -1198,7 +1418,7 @@ public class ResourceManager { public static final ResourceLocation mp_f_10_kerosene_sleek_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_kerosene_sleek.png"); public static final ResourceLocation mp_f_10_kerosene_metal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_kerosene_metal.png"); public static final ResourceLocation mp_f_10_kerosene_taint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/contest/mp_f_10_kerosene_taint.png"); - + public static final ResourceLocation mp_f_10_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_solid.png"); public static final ResourceLocation mp_f_10_solid_flames_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_solid_flames.png"); public static final ResourceLocation mp_f_10_solid_insulation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_solid_insulation.png"); @@ -1211,7 +1431,7 @@ public class ResourceManager { public static final ResourceLocation mp_f_10_xenon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_xenon.png"); public static final ResourceLocation mp_f_10_xenon_bhole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/contest/mp_f_10_xenon_bhole.png"); - + public static final ResourceLocation mp_f_10_long_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_kerosene.png"); public static final ResourceLocation mp_f_10_long_kerosene_camo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_camo.png"); public static final ResourceLocation mp_f_10_long_kerosene_desert_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_desert.png"); @@ -1223,7 +1443,7 @@ public class ResourceManager { public static final ResourceLocation mp_f_10_long_kerosene_dash_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/contest/mp_f_10_long_kerosene_dash.png"); public static final ResourceLocation mp_f_10_long_kerosene_taint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/contest/mp_f_10_long_kerosene_taint.png"); public static final ResourceLocation mp_f_10_long_kerosene_vap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/contest/mp_f_10_long_kerosene_vap.png"); - + public static final ResourceLocation mp_f_10_long_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_solid.png"); public static final ResourceLocation mp_f_10_long_solid_flames_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_solid_flames.png"); public static final ResourceLocation mp_f_10_long_solid_insulation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_solid_insulation.png"); @@ -1231,12 +1451,12 @@ public class ResourceManager { public static final ResourceLocation mp_f_10_long_solid_soviet_glory_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_solid_soviet_glory.png"); public static final ResourceLocation mp_f_10_long_solid_bullet_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/contest/mp_f_10_long_solid_bullet.png"); public static final ResourceLocation mp_f_10_long_solid_silvermoonlight_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/contest/mp_f_10_long_solid_silvermoonlight.png"); - + public static final ResourceLocation mp_f_10_15_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_15_kerosene.png"); public static final ResourceLocation mp_f_10_15_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_15_solid.png"); public static final ResourceLocation mp_f_10_15_hydrogen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_15_hydrogen.png"); public static final ResourceLocation mp_f_10_15_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_15_balefire.png"); - + public static final ResourceLocation mp_f_15_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene.png"); public static final ResourceLocation mp_f_15_kerosene_camo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene_camo.png"); public static final ResourceLocation mp_f_15_kerosene_desert_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene_desert.png"); @@ -1252,7 +1472,7 @@ public class ResourceManager { public static final ResourceLocation mp_f_15_kerosene_pip_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/contest/mp_f_15_kerosene_pip.png"); public static final ResourceLocation mp_f_15_kerosene_taint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/contest/mp_f_15_kerosene_taint.png"); public static final ResourceLocation mp_f_15_kerosene_yuck_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene_yuck.png"); - + public static final ResourceLocation mp_f_15_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_solid.png"); public static final ResourceLocation mp_f_15_solid_insulation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_solid_insulation.png"); public static final ResourceLocation mp_f_15_solid_desh_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_solid_desh.png"); @@ -1273,7 +1493,7 @@ public class ResourceManager { public static final ResourceLocation mp_f_15_20_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_20_kerosene.png"); public static final ResourceLocation mp_f_15_20_kerosene_magnusson_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_20_kerosene_magnusson.png"); public static final ResourceLocation mp_f_15_20_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_20_solid.png"); - + public static final ResourceLocation mp_w_10_he_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_10_he.png"); public static final ResourceLocation mp_w_10_incendiary_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_10_incendiary.png"); public static final ResourceLocation mp_w_10_buster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_10_buster.png"); @@ -1289,7 +1509,7 @@ public class ResourceManager { public static final ResourceLocation mp_w_15_n2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_n2.png"); public static final ResourceLocation mp_w_15_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_balefire.png"); public static final ResourceLocation mp_w_15_turbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_turbine.png"); - + //Carts public static final ResourceLocation cart_metal = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_metal.png"); public static final ResourceLocation cart_blank = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_metal_naked.png"); @@ -1300,7 +1520,12 @@ public class ResourceManager { public static final ResourceLocation cart_semtex_top = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_bottom.png"); public static final ResourceLocation train_tram = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram.png"); public static final ResourceLocation tram_trailer = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram_trailer.png"); - + + //Drone + public static final ResourceLocation delivery_drone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone.png"); + public static final ResourceLocation delivery_drone_express_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone_express.png"); + public static final ResourceLocation delivery_drone_request_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone_request.png"); + //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); public static final IModelCustom taperecorder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/taperecorder.obj")); @@ -1316,15 +1541,20 @@ public class ResourceManager { public static final IModelCustom pipe_quad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_quad.obj")); public static final IModelCustom pipe_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_frame.obj")); public static final IModelCustom rtty = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rtty.obj")); + public static final IModelCustom crt = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crt.obj")); + public static final IModelCustom toaster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/toaster.obj")); public static final IModelCustom deco_computer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/puter.obj")); - + + // Some RBMK elements are loaded twice due to VBOs not supporting tessellation public static final IModelCustom rbmk_element = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj")); + public static final IModelCustom rbmk_element_vbo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj")).asVBO(); public static final IModelCustom rbmk_reflector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_reflector.obj")); public static final IModelCustom rbmk_rods = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_rods.obj")); - public static final IModelCustom rbmk_crane_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane_console.obj")); - public static final IModelCustom rbmk_crane = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane.obj")); - public static final IModelCustom rbmk_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_console.obj")); + public static final IModelCustom rbmk_rods_vbo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_rods.obj")).asVBO(); + public static final IModelCustom rbmk_crane_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane_console.obj")).asVBO(); + public static final IModelCustom rbmk_crane = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane.obj")).asVBO(); + public static final IModelCustom rbmk_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_console.obj")).asVBO(); public static final IModelCustom rbmk_debris = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/debris.obj")); public static final ResourceLocation rbmk_crane_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crane_console.png"); public static final ResourceLocation rbmk_crane_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_crane.png"); @@ -1339,17 +1569,24 @@ public class ResourceManager { public static final IModelCustom pipe_neo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_neo.obj")); public static final IModelCustom difurnace_extension = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/difurnace_extension.obj")); public static final IModelCustom splitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/splitter.obj")); + public static final IModelCustom crane_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/crane_buffer.obj")); public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); + public static final IModelCustom rail_standard_straight_short = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_short.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); + public static final IModelCustom rail_standard_curve_wide7 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide.obj")); + public static final IModelCustom rail_standard_curve_wide9 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide9.obj")); public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); public static final IModelCustom rail_standard_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")); + public static final IModelCustom rail_standard_switch = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch.obj")); + public static final IModelCustom rail_standard_switch_flipped = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch_flipped.obj")); public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); + public static final IModelCustom funnel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/funnel.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); - + //RBMK DEBRIS public static final IModelCustom deb_blank = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/projectiles/deb_blank.obj")); public static final IModelCustom deb_element = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/projectiles/deb_element.obj")); @@ -1363,9 +1600,5 @@ public class ResourceManager { public static final IModelCustom deb_zirnox_element = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/zirnox/deb_element.obj")); public static final IModelCustom deb_zirnox_exchanger = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/zirnox/deb_exchanger.obj")); public static final IModelCustom deb_zirnox_shrapnel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/zirnox/deb_shrapnel.obj")); - - public static void loadAnimatedModels(){ - transition_seal = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"), true); - transition_seal_anim = ColladaLoader.loadAnim(24040, new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae")); - } + } diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 783dc4df3..25f965437 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -1,18 +1,17 @@ package com.hbm.main; -import java.util.ArrayList; -import java.util.List; - import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.saveddata.TomSaveData; import com.hbm.sound.AudioWrapper; - import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import java.util.ArrayList; +import java.util.List; + public class ServerProxy { //sort by estimated time of display. longer lasting ones should be sorted at the top. @@ -20,39 +19,40 @@ public class ServerProxy { public static final int ID_FILTER = 1; public static final int ID_COMPASS = 2; public static final int ID_CABLE = 3; - public static final int ID_JETPACK = 4; - public static final int ID_HUD = 5; - public static final int ID_DETONATOR = 6; - public static final int ID_FLUID_ID = 7; - public static final int ID_TOOLABILITY = 8; - public static final int ID_GUN_MODE = 9; - public static final int ID_GAS_HAZARD = 10; - + public static final int ID_DRONE = 4; + public static final int ID_JETPACK = 5; + public static final int ID_HUD = 6; + public static final int ID_DETONATOR = 7; + public static final int ID_FLUID_ID = 8; + public static final int ID_TOOLABILITY = 9; + public static final int ID_GUN_MODE = 10; + public static final int ID_GAS_HAZARD = 11; + + public void registerPreRenderInfo() { } public void registerRenderInfo() { } public void registerTileEntitySpecialRenderer() { } public void registerItemRenderer() { } public void registerEntityRenderer() { } public void registerBlockRenderer() { } - - public void particleControl(double x, double y, double z, int type) { } + public void registerGunCfg() { } + public void handleNHNEICompat() { } public void spawnParticle(double x, double y, double z, String type, float[] args) { } - + public void effectNT(NBTTagCompound data) { } public void registerMissileItems() { } public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch) { return null; } public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch, int keepAlive) { return null; } - public AudioWrapper getLoopedSoundStartStop(World world, String sound, String start, String stop, float x, float y, float z, float volume, float pitch) { return null; } - + public void playSound(String sound, Object data) { } public void displayTooltip(String msg, int id) { displayTooltip(msg, 1000, id); } public void displayTooltip(String msg, int time, int id) { } - + public boolean getIsKeyPressed(EnumKeybind key) { return false; } @@ -65,25 +65,29 @@ public class ServerProxy { } public void openLink(String url) { } - + public List getSubItems(ItemStack stack) { - + List list = new ArrayList(); list.add(stack); return list; } - + public float getImpactDust(World world) { return TomSaveData.forWorld(world).dust; } - + public float getImpactFire(World world) { return TomSaveData.forWorld(world).fire; } - + public boolean getImpact(World world) { return TomSaveData.forWorld(world).impact; } - - public void playSoundFuckMojang(double x, double y, double z, String sound, float volume, float pitch) { } -} \ No newline at end of file + + public void playSoundClient(double x, double y, double z, String sound, float volume, float pitch) { } + + public String getLanguageCode() { return "en_US"; } + + public int getStackColor(ItemStack stack, boolean amplify) { return 0x000000; } +} diff --git a/src/main/java/com/hbm/module/ModulePatternMatcher.java b/src/main/java/com/hbm/module/ModulePatternMatcher.java index 097bc6859..279a2c1e9 100644 --- a/src/main/java/com/hbm/module/ModulePatternMatcher.java +++ b/src/main/java/com/hbm/module/ModulePatternMatcher.java @@ -2,8 +2,10 @@ package com.hbm.module; import java.util.List; +import com.hbm.util.BufferUtil; import com.hbm.util.ItemStackUtil; +import io.netty.buffer.ByteBuf; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -151,4 +153,16 @@ public class ModulePatternMatcher { } } } + + public void serialize(ByteBuf buf) { + for(int i = 0; i < modes.length; i++) { + BufferUtil.writeString(buf, modes[i]); + } + } + + public void deserialize(ByteBuf buf) { + for(int i = 0; i < modes.length; i++) { + modes[i] = BufferUtil.readString(buf); + } + } } diff --git a/src/main/java/com/hbm/packet/AuxElectricityPacket.java b/src/main/java/com/hbm/packet/AuxElectricityPacket.java deleted file mode 100644 index bebb4e9c1..000000000 --- a/src/main/java/com/hbm/packet/AuxElectricityPacket.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.packet; - -import api.hbm.energy.IEnergyUser; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -@Deprecated //use the NBT packet instead -public class AuxElectricityPacket implements IMessage { - - int x; - int y; - int z; - long charge; - - public AuxElectricityPacket() - { - - } - - public AuxElectricityPacket(int x, int y, int z, long charge) - { - this.x = x; - this.y = y; - this.z = z; - this.charge = charge; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - charge = buf.readLong(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeLong(charge); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(AuxElectricityPacket m, MessageContext ctx) { - try { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te instanceof IEnergyUser) { - - IEnergyUser gen = (IEnergyUser) te; - gen.setPower(m.charge); - } - } catch (Exception x) { } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java deleted file mode 100644 index 299dee72f..000000000 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.hbm.packet; - -import com.hbm.interfaces.Spaghetti; -import com.hbm.items.weapon.ItemMissile.PartSize; -import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.tileentity.bomb.TileEntityCompactLauncher; -import com.hbm.tileentity.bomb.TileEntityLaunchTable; -import com.hbm.tileentity.bomb.TileEntityNukeN45; -import com.hbm.tileentity.deco.TileEntityBomber; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; -import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; -import com.hbm.tileentity.machine.TileEntityMachineBoiler; -import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric; -import com.hbm.tileentity.machine.TileEntityMachineCoal; -import com.hbm.tileentity.machine.TileEntityMachineDiesel; -import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge.ReactorFuelType; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -@Spaghetti("Changing all machines to use TileEntityMachineBase will reduce the total chaos in this class") -@Deprecated //use the NBT packet instead -public class AuxGaugePacket implements IMessage { - - int x; - int y; - int z; - int value; - int id; - - public AuxGaugePacket() - { - - } - - public AuxGaugePacket(int x, int y, int z, int value, int id) - { - this.x = x; - this.y = y; - this.z = z; - this.value = value; - this.id = id; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - value = buf.readInt(); - id = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(value); - buf.writeInt(id); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(AuxGaugePacket m, MessageContext ctx) { - try { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter limiter = (TileEntityAMSLimiter)te; - if(m.id == 0) - limiter.locked = m.value == 1; - else if(m.id == 1) - limiter.efficiency = m.value; - } - if (te instanceof TileEntityAMSEmitter) { - TileEntityAMSEmitter emitter = (TileEntityAMSEmitter)te; - if(m.id == 0) - emitter.locked = m.value == 1; - else if(m.id == 1) - emitter.efficiency = m.value; - } - if (te instanceof TileEntityAMSBase) { - TileEntityAMSBase base = (TileEntityAMSBase)te; - - if(m.id == 0) - base.locked = m.value == 1; - else if(m.id == 1) - base.color = m.value; - else if(m.id == 2) - base.efficiency = m.value; - else if(m.id == 3) - base.field = m.value; - } - if (te instanceof TileEntityMachineSeleniumEngine) { - TileEntityMachineSeleniumEngine selenium = (TileEntityMachineSeleniumEngine)te; - - if(m.id == 0) - selenium.pistonCount = m.value; - if(m.id == 1) - selenium.powerCap = m.value; - } - if (te instanceof TileEntityMachineDiesel) { - TileEntityMachineDiesel selenium = (TileEntityMachineDiesel)te; - - selenium.powerCap = m.value; - } - if (te instanceof TileEntityBomber) { - TileEntityBomber bomber = (TileEntityBomber)te; - - if(m.id == 0) - bomber.yaw = m.value; - if(m.id == 1) - bomber.pitch = m.value; - if(m.id == 2) - bomber.type = m.value; - } - if (te instanceof TileEntityMachineBoiler) { - TileEntityMachineBoiler boiler = (TileEntityMachineBoiler)te; - - if(m.id == 0) - boiler.heat = m.value; - if(m.id == 1) - boiler.burnTime = m.value; - } - if (te instanceof TileEntityMachineCoal) { - TileEntityMachineCoal coalgen = (TileEntityMachineCoal)te; - - if(m.id == 0) - coalgen.burnTime = m.value; - } - if (te instanceof TileEntityMachineElectricFurnace) { - TileEntityMachineElectricFurnace furn = (TileEntityMachineElectricFurnace)te; - - if(m.id == 0) - furn.progress = m.value; - } - if (te instanceof TileEntityMachineArcFurnace) { - TileEntityMachineArcFurnace furn = (TileEntityMachineArcFurnace)te; - - if(m.id == 0) - furn.dualCookTime = m.value; - } - if (te instanceof TileEntityMachineBoilerElectric) { - TileEntityMachineBoilerElectric boiler = (TileEntityMachineBoilerElectric)te; - - if(m.id == 0) - boiler.heat = m.value; - } - if (te instanceof TileEntityNukeN45) { - TileEntityNukeN45 nuke = (TileEntityNukeN45)te; - - nuke.primed = m.value == 1; - } - if (te instanceof TileEntityMachineReactorLarge) { - TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge)te; - - if(m.id == 0) - reactor.rods = m.value; - if(m.id == 1) - reactor.coreHeat = m.value; - if(m.id == 2) - reactor.hullHeat = m.value; - if(m.id == 3) - reactor.size = m.value; - if(m.id == 4) - reactor.fuel = m.value; - if(m.id == 5) - reactor.waste = m.value; - if(m.id == 6) - reactor.type = ReactorFuelType.getEnum(m.value); - } - if (te instanceof TileEntityCompactLauncher) { - TileEntityCompactLauncher launcher = (TileEntityCompactLauncher)te; - - launcher.solid = m.value; - } - if (te instanceof TileEntityLaunchTable) { - TileEntityLaunchTable launcher = (TileEntityLaunchTable)te; - - if(m.id == 0) - launcher.solid = m.value; - if(m.id == 1) - launcher.padSize = PartSize.values()[m.value]; - } - - if(te instanceof TileEntityMachineBase) { - ((TileEntityMachineBase)te).processGauge(m.value, m.id); - } - - } catch (Exception x) {} - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/AuxParticlePacket.java b/src/main/java/com/hbm/packet/AuxParticlePacket.java deleted file mode 100644 index 1483e297d..000000000 --- a/src/main/java/com/hbm/packet/AuxParticlePacket.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.hbm.packet; - -import com.hbm.main.MainRegistry; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; - -public class AuxParticlePacket implements IMessage { - - double x; - double y; - double z; - int type; - - public AuxParticlePacket() - { - - } - - public AuxParticlePacket(double x, double y, double z, int type) - { - this.x = x; - this.y = y; - this.z = z; - this.type = type; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readDouble(); - y = buf.readDouble(); - z = buf.readDouble(); - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeDouble(x); - buf.writeDouble(y); - buf.writeDouble(z); - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(AuxParticlePacket m, MessageContext ctx) { - - try { - - MainRegistry.proxy.particleControl(m.x, m.y, m.z, m.type); - - } catch(Exception x) { } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/BiomeSyncPacket.java b/src/main/java/com/hbm/packet/BiomeSyncPacket.java deleted file mode 100644 index aa8f992ea..000000000 --- a/src/main/java/com/hbm/packet/BiomeSyncPacket.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.packet; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; - -public class BiomeSyncPacket implements IMessage { - - int chunkX; - int chunkZ; - byte blockX; - byte blockZ; - byte biome; - byte[] biomeArray; - - public BiomeSyncPacket() { } - - public BiomeSyncPacket(int chunkX, int chunkZ, byte[] biomeArray) { - this.chunkX = chunkX; - this.chunkZ = chunkZ; - this.biomeArray = biomeArray; - } - - public BiomeSyncPacket(int blockX, int blockZ, byte biome) { - this.chunkX = blockX << 4; - this.chunkZ = blockZ << 4; - this.blockX = (byte) (blockX & 15); - this.blockZ = (byte) (blockZ & 15); - this.biome = biome; - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(this.chunkX); - buf.writeInt(this.chunkZ); - - if(this.biomeArray == null) { - buf.writeBoolean(false); - buf.writeByte(this.biome); - buf.writeByte(this.blockX); - buf.writeByte(this.blockZ); - } else { - buf.writeBoolean(true); - for(int i = 0; i < 256; i++) { - buf.writeByte(this.biomeArray[i]); - } - } - } - - @Override - public void fromBytes(ByteBuf buf) { - this.chunkX = buf.readInt(); - this.chunkZ = buf.readInt(); - - if(!buf.readBoolean()) { - this.biome = buf.readByte(); - this.blockX = buf.readByte(); - this.blockZ = buf.readByte(); - } else { - buf.writeBoolean(true); - this.biomeArray = new byte[256]; - for(int i = 0; i < 256; i++) { - this.biomeArray[i] = buf.readByte(); - } - } - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(BiomeSyncPacket m, MessageContext ctx) { - - World world = Minecraft.getMinecraft().theWorld; - if(!world.getChunkProvider().chunkExists(m.chunkX, m.chunkZ)) return null; - Chunk chunk = world.getChunkFromChunkCoords(m.chunkX, m.chunkZ); - - if(m.biomeArray == null) { - chunk.getBiomeArray()[(m.blockZ & 15) << 4 | (m.blockX & 15)] = m.biome; - } else { - for(int i = 0; i < 256; i++) { - chunk.getBiomeArray()[i] = m.biomeArray[i]; - } - } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/ExtPropPacket.java b/src/main/java/com/hbm/packet/ExtPropPacket.java deleted file mode 100644 index 641bc9b68..000000000 --- a/src/main/java/com/hbm/packet/ExtPropPacket.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.packet; - -import java.io.IOException; - -import com.hbm.extprop.HbmLivingProps; -import com.hbm.extprop.HbmPlayerProps; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import net.minecraft.client.Minecraft; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.PacketBuffer; - -public class ExtPropPacket implements IMessage { - - PacketBuffer buffer; - - public ExtPropPacket() { } - - public ExtPropPacket(NBTTagCompound nbt) { - - this.buffer = new PacketBuffer(Unpooled.buffer()); - - try { - buffer.writeNBTTagCompoundToBuffer(nbt); - - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void fromBytes(ByteBuf buf) { - - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } - buffer.writeBytes(buf); - } - - @Override - public void toBytes(ByteBuf buf) { - - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } - buf.writeBytes(buffer); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(ExtPropPacket m, MessageContext ctx) { - - if(Minecraft.getMinecraft().theWorld == null) - return null; - - try { - - NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer(); - HbmLivingProps props = HbmLivingProps.getData(Minecraft.getMinecraft().thePlayer); - HbmPlayerProps pprps = HbmPlayerProps.getData(Minecraft.getMinecraft().thePlayer); - props.loadNBTData(nbt); - pprps.loadNBTData(nbt); - - } catch (IOException e) { - e.printStackTrace(); - } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/GunAnimationPacket.java b/src/main/java/com/hbm/packet/GunAnimationPacket.java deleted file mode 100644 index 3a98fdffb..000000000 --- a/src/main/java/com/hbm/packet/GunAnimationPacket.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.hbm.packet; - -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.HbmAnimations; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.anim.HbmAnimations.Animation; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public class GunAnimationPacket implements IMessage { - - int type; - - public GunAnimationPacket() { } - - public GunAnimationPacket(int type) { - this.type = type; - } - - @Override - public void fromBytes(ByteBuf buf) { - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(GunAnimationPacket m, MessageContext ctx) { - - try { - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - ItemStack stack = player.getHeldItem(); - int slot = player.inventory.currentItem; - - if(stack == null) - return null; - - if(!(stack.getItem() instanceof ItemGunBase)) - return null; - - if(m.type < 0 || m.type >= AnimType.values().length) - return null; - - AnimType type = AnimType.values()[m.type]; - BusAnimation animation = ((ItemGunBase) stack.getItem()).getAnimation(stack, type); - - if(animation != null) { - HbmAnimations.hotbar[slot] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); - } - - } catch(Exception x) { } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/LoopedEntitySoundPacket.java b/src/main/java/com/hbm/packet/LoopedEntitySoundPacket.java deleted file mode 100644 index 0d364608f..000000000 --- a/src/main/java/com/hbm/packet/LoopedEntitySoundPacket.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.hbm.packet; - -import com.hbm.entity.logic.EntityBomber; -import com.hbm.sound.MovingSoundBomber; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class LoopedEntitySoundPacket implements IMessage { - - int entityID; - - public LoopedEntitySoundPacket() - { - - } - - public LoopedEntitySoundPacket(int entityID) - { - this.entityID = entityID; - } - - @Override - public void fromBytes(ByteBuf buf) { - entityID = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(entityID); - } - - public static class Handler implements IMessageHandler { - - @Override - //Tamaized, I love you! - @SideOnly(Side.CLIENT) - public IMessage onMessage(LoopedEntitySoundPacket m, MessageContext ctx) { - - Entity e = Minecraft.getMinecraft().theWorld.getEntityByID(m.entityID); - - if(e instanceof EntityBomber) { - - int n = 1; - int x = e.getDataWatcher().getWatchableObjectByte(16); - - switch(x) { - case 0: - case 1: - case 2: - case 3: - case 4: n = 2; break; - case 5: - case 6: - case 7: - case 8: n = 1; break; - default: n = 2; break; - } - - boolean flag = true; - for(int i = 0; i < MovingSoundBomber.globalSoundList.size(); i++) { - if(MovingSoundBomber.globalSoundList.get(i).bomber == e && !MovingSoundBomber.globalSoundList.get(i).isDonePlaying()) - flag = false; - } - - if(flag) { - if(n == 2) - Minecraft.getMinecraft().getSoundHandler().playSound(new MovingSoundBomber(new ResourceLocation("hbm:entity.bomberSmallLoop"), (EntityBomber)e)); - if(n == 1) - Minecraft.getMinecraft().getSoundHandler().playSound(new MovingSoundBomber(new ResourceLocation("hbm:entity.bomberLoop"), (EntityBomber)e)); - } - } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/LoopedSoundPacket.java b/src/main/java/com/hbm/packet/LoopedSoundPacket.java deleted file mode 100644 index 44d9339bf..000000000 --- a/src/main/java/com/hbm/packet/LoopedSoundPacket.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.hbm.packet; - -import com.hbm.interfaces.Spaghetti; -import com.hbm.sound.SoundLoopAssembler; -import com.hbm.sound.SoundLoopBroadcaster; -import com.hbm.sound.SoundLoopCentrifuge; -import com.hbm.sound.SoundLoopMiner; -import com.hbm.sound.SoundLoopTurbofan; -import com.hbm.tileentity.machine.TileEntityBroadcaster; -import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; -import com.hbm.tileentity.machine.TileEntityMachineGasCent; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; -import com.hbm.tileentity.machine.TileEntityMachineTurbofan; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -@Spaghetti("this class should be destroyed") -public class LoopedSoundPacket implements IMessage { - - int x; - int y; - int z; - - public LoopedSoundPacket() - { - - } - - public LoopedSoundPacket(int x, int y, int z) - { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - } - - public static class Handler implements IMessageHandler { - - @Override - //Tamaized, I love you! - @SideOnly(Side.CLIENT) - public IMessage onMessage(LoopedSoundPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineMiningDrill) { - - boolean flag = true; - for(int i = 0; i < SoundLoopMiner.list.size(); i++) { - if(SoundLoopMiner.list.get(i).getTE() == te && !SoundLoopMiner.list.get(i).isDonePlaying()) - flag = false; - } - - if(flag && te.getWorldObj().isRemote && ((TileEntityMachineMiningDrill)te).torque > 0.2F) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopMiner(new ResourceLocation("hbm:block.minerOperate"), te)); - } - - if (te != null && te instanceof TileEntityMachineAssembler) { - - boolean flag = true; - for(int i = 0; i < SoundLoopAssembler.list.size(); i++) { - if(SoundLoopAssembler.list.get(i).getTE() == te && !SoundLoopAssembler.list.get(i).isDonePlaying()) - flag = false; - } - - if(flag && te.getWorldObj().isRemote && ((TileEntityMachineAssembler)te).isProgressing) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopAssembler(new ResourceLocation("hbm:block.assemblerOperate"), te)); - } - - if (te != null && te instanceof TileEntityMachineTurbofan) { - - boolean flag = true; - for(int i = 0; i < SoundLoopTurbofan.list.size(); i++) { - if(SoundLoopTurbofan.list.get(i).getTE() == te && !SoundLoopTurbofan.list.get(i).isDonePlaying()) - flag = false; - } - - if(flag && te.getWorldObj().isRemote && ((TileEntityMachineTurbofan)te).wasOn) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopTurbofan(new ResourceLocation("hbm:block.turbofanOperate"), te)); - } - - if (te != null && te instanceof TileEntityBroadcaster) { - - boolean flag = true; - for(int i = 0; i < SoundLoopBroadcaster.list.size(); i++) { - if(SoundLoopBroadcaster.list.get(i).getTE() == te && !SoundLoopBroadcaster.list.get(i).isDonePlaying()) - flag = false; - } - - int j = te.xCoord + te.zCoord + te.yCoord; - - if(flag && te.getWorldObj().isRemote) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopBroadcaster(new ResourceLocation("hbm:block.broadcast" + (Math.abs(j) % 3 + 1)), te)); - } - - if (te != null && te instanceof TileEntityMachineCentrifuge) { - - boolean flag = true; - for(int i = 0; i < SoundLoopCentrifuge.list.size(); i++) { - if(SoundLoopCentrifuge.list.get(i).getTE() == te && !SoundLoopCentrifuge.list.get(i).isDonePlaying()) - flag = false; - } - - if(flag && te.getWorldObj().isRemote && ((TileEntityMachineCentrifuge)te).isProgressing) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopCentrifuge(new ResourceLocation("hbm:block.centrifugeOperate"), te)); - } - - if (te != null && te instanceof TileEntityMachineGasCent) { - - boolean flag = true; - for(int i = 0; i < SoundLoopCentrifuge.list.size(); i++) { - if(SoundLoopCentrifuge.list.get(i).getTE() == te && !SoundLoopCentrifuge.list.get(i).isDonePlaying()) - flag = false; - } - - if(flag && te.getWorldObj().isRemote && ((TileEntityMachineGasCent)te).isProgressing) - Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopCentrifuge(new ResourceLocation("hbm:block.centrifugeOperate"), te)); - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/NBTPacket.java b/src/main/java/com/hbm/packet/NBTPacket.java deleted file mode 100644 index 80645347d..000000000 --- a/src/main/java/com/hbm/packet/NBTPacket.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.packet; - -import java.io.IOException; - -import com.hbm.tileentity.INBTPacketReceiver; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import net.minecraft.client.Minecraft; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.PacketBuffer; -import net.minecraft.tileentity.TileEntity; - -public class NBTPacket implements IMessage { - - PacketBuffer buffer; - int x; - int y; - int z; - - public NBTPacket() { } - - public NBTPacket(NBTTagCompound nbt, int x, int y, int z) { - - this.buffer = new PacketBuffer(Unpooled.buffer()); - this.x = x; - this.y = y; - this.z = z; - - try { - buffer.writeNBTTagCompoundToBuffer(nbt); - - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void fromBytes(ByteBuf buf) { - - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } - buffer.writeBytes(buf); - } - - @Override - public void toBytes(ByteBuf buf) { - - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } - buf.writeBytes(buffer); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(NBTPacket m, MessageContext ctx) { - - if(Minecraft.getMinecraft().theWorld == null) - return null; - - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - try { - - NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer(); - - if(nbt != null) { - - if(te instanceof INBTPacketReceiver) - ((INBTPacketReceiver) te).networkUnpack(nbt); - } - - } catch (IOException e) { - e.printStackTrace(); - } - - return null; - } - } - -} diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 3d94f2d10..b749cfdd3 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -1,48 +1,26 @@ package com.hbm.packet; import com.hbm.lib.RefStrings; +import com.hbm.main.NetworkHandler; +import com.hbm.packet.toclient.*; +import com.hbm.packet.toserver.*; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import cpw.mods.fml.relauncher.Side; public class PacketDispatcher { - //Mark 1 Packet Sending Device - public static final SimpleNetworkWrapper wrapper = NetworkRegistry.INSTANCE.newSimpleChannel(RefStrings.MODID); + //Mark 1.5 Packet Sending Device + public static final NetworkHandler wrapper = new NetworkHandler(RefStrings.MODID); - public static final void registerPackets() - { + public static void registerPackets() { int i = 0; - - //Machine type for marker rendering - wrapper.registerMessage(TEStructurePacket.Handler.class, TEStructurePacket.class, i++, Side.CLIENT); - //Mining drill rotation for rendering - wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, i++, Side.CLIENT); - //Mining drill torque for sounds - wrapper.registerMessage(TEDrillSoundPacket.Handler.class, TEDrillSoundPacket.class, i++, Side.CLIENT); - //Assembler cog rotation for rendering - wrapper.registerMessage(TEAssemblerPacket.Handler.class, TEAssemblerPacket.class, i++, Side.CLIENT); - //Missile type for rendering - wrapper.registerMessage(TEMissilePacket.Handler.class, TEMissilePacket.class, i++, Side.CLIENT); - //Fluid packet for GUI - wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); - //Sound packet that keeps client and server separated - wrapper.registerMessage(LoopedSoundPacket.Handler.class, LoopedSoundPacket.class, i++, Side.CLIENT); + //Signals server to consume items and create template wrapper.registerMessage(ItemFolderPacket.Handler.class, ItemFolderPacket.class, i++, Side.SERVER); - //Electricity gauge for GUI rendering - wrapper.registerMessage(AuxElectricityPacket.Handler.class, AuxElectricityPacket.class, i++, Side.CLIENT); - //Universal package for machine gauges and states - wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); //Siren packet for looped sounds wrapper.registerMessage(TESirenPacket.Handler.class, TESirenPacket.class, i++, Side.CLIENT); //Signals server to change ItemStacks wrapper.registerMessage(ItemDesignatorPacket.Handler.class, ItemDesignatorPacket.class, i++, Side.SERVER); - //Siren packet for looped sounds - wrapper.registerMessage(TERadarPacket.Handler.class, TERadarPacket.class, i++, Side.CLIENT); - //Siren packet for looped sounds - wrapper.registerMessage(TERadarDestructorPacket.Handler.class, TERadarDestructorPacket.class, i++, Side.CLIENT); //Signals server to perform orbital strike, among other things wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER); //Universal package for sending small info packs back to server @@ -55,20 +33,14 @@ public class PacketDispatcher { wrapper.registerMessage(ParticleBurstPacket.Handler.class, ParticleBurstPacket.class, i++, Side.CLIENT); //Packet to send chunk radiation info to individual players wrapper.registerMessage(ExtPropPacket.Handler.class, ExtPropPacket.class, i++, Side.CLIENT); - //Entity sound packet that keeps client and server separated - wrapper.registerMessage(LoopedEntitySoundPacket.Handler.class, LoopedEntitySoundPacket.class, i++, Side.CLIENT); - //Entity sound packet that keeps client and server separated + //Packet for force fields wrapper.registerMessage(TEFFPacket.Handler.class, TEFFPacket.class, i++, Side.CLIENT); //Sends button information for ItemGunBase wrapper.registerMessage(GunButtonPacket.Handler.class, GunButtonPacket.class, i++, Side.SERVER); - //Packet to send block break particles - wrapper.registerMessage(AuxParticlePacket.Handler.class, AuxParticlePacket.class, i++, Side.CLIENT); //Signals server to buy offer from bobmazon wrapper.registerMessage(ItemBobmazonPacket.Handler.class, ItemBobmazonPacket.class, i++, Side.SERVER); //Packet to send missile multipart information to TEs wrapper.registerMessage(TEMissileMultipartPacket.Handler.class, TEMissileMultipartPacket.class, i++, Side.CLIENT); - //Packet to send NBT data to tile entities - wrapper.registerMessage(NBTPacket.Handler.class, NBTPacket.class, i++, Side.CLIENT); //Aux Particle Packet, New Technology: like the APP but with NBT wrapper.registerMessage(AuxParticlePacketNT.Handler.class, AuxParticlePacketNT.class, i++, Side.CLIENT); //Signals server to do coord based satellite stuff @@ -91,12 +63,12 @@ public class PacketDispatcher { wrapper.registerMessage(ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.Handler.class, ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.class, i++, Side.CLIENT); //Packet to send NBT data from clients to the serverside held item wrapper.registerMessage(NBTItemControlPacket.Handler.class, NBTItemControlPacket.class, i++, Side.SERVER); - //sends a button press to the held item, assuming it is an ISyncButtons - wrapper.registerMessage(SyncButtonsPacket.Handler.class, SyncButtonsPacket.class, i++, Side.SERVER); //General syncing for global values wrapper.registerMessage(PermaSyncPacket.Handler.class, PermaSyncPacket.class, i++, Side.CLIENT); //Syncs biome information for single positions or entire chunks wrapper.registerMessage(BiomeSyncPacket.Handler.class, BiomeSyncPacket.class, i++, Side.CLIENT); + //The not-so-convenient but not laggy one + wrapper.registerMessage(BufPacket.Handler.class, BufPacket.class, i++, Side.CLIENT); } - + } diff --git a/src/main/java/com/hbm/packet/PrecompiledPacket.java b/src/main/java/com/hbm/packet/PrecompiledPacket.java new file mode 100644 index 000000000..30d4c456d --- /dev/null +++ b/src/main/java/com/hbm/packet/PrecompiledPacket.java @@ -0,0 +1,35 @@ +package com.hbm.packet; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + +/** + * Abstract class for precompiled packets. This should be used if the packet is going to be threaded through the `PacketThreading` handler. + */ +public abstract class PrecompiledPacket implements IMessage { + + ByteBuf preCompiledBuf; + + /** + * Returns a precompiled buffer used to avoid race conditions when sending certain packets in threads. + * @return The precompiled packet in a `ByteBuf`. + */ + public ByteBuf getPreBuf() { + if(preCompiledBuf == null || preCompiledBuf.readableBytes() <= 0 /* No data written */) + this.makePreBuf(); + return preCompiledBuf; + } + + /** + * Forcefully creates the precompiled buffer, use `getPreBuf()` whenever possible. + */ + public void makePreBuf() { + if(preCompiledBuf != null) + preCompiledBuf.release(); + + preCompiledBuf = Unpooled.buffer(); + + this.toBytes(preCompiledBuf); // Create buffer and read data to it. + } +} diff --git a/src/main/java/com/hbm/packet/SyncButtonsPacket.java b/src/main/java/com/hbm/packet/SyncButtonsPacket.java deleted file mode 100644 index b460a4141..000000000 --- a/src/main/java/com/hbm/packet/SyncButtonsPacket.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.hbm.packet; - -import com.hbm.items.ISyncButtons; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; - -public class SyncButtonsPacket implements IMessage { - - boolean state; - int button; - - public SyncButtonsPacket() { } - - public SyncButtonsPacket(boolean s, int b) { - state = s; - button = b; - } - - @Override - public void fromBytes(ByteBuf buf) { - state = buf.readBoolean(); - button = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeBoolean(state); - buf.writeInt(button); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(SyncButtonsPacket m, MessageContext ctx) { - - if(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) - return null; - - EntityPlayer p = ctx.getServerHandler().playerEntity; - - if(p.getHeldItem() != null && p.getHeldItem().getItem() instanceof ISyncButtons) { - - ISyncButtons item = (ISyncButtons)p.getHeldItem().getItem(); - item.receiveMouse(p, p.getHeldItem(), m.button, m.state); - } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEAssemblerPacket.java b/src/main/java/com/hbm/packet/TEAssemblerPacket.java deleted file mode 100644 index fddaeedcb..000000000 --- a/src/main/java/com/hbm/packet/TEAssemblerPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineAssembler; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEAssemblerPacket implements IMessage { - - int x; - int y; - int z; - boolean progress; - - public TEAssemblerPacket() - { - - } - - public TEAssemblerPacket(int x, int y, int z, boolean bool) - { - this.x = x; - this.y = y; - this.z = z; - this.progress = bool; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - progress = buf.readBoolean(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeBoolean(progress); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEAssemblerPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineAssembler) { - - TileEntityMachineAssembler gen = (TileEntityMachineAssembler) te; - gen.isProgressing = m.progress; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEDrillPacket.java b/src/main/java/com/hbm/packet/TEDrillPacket.java deleted file mode 100644 index f157550f0..000000000 --- a/src/main/java/com/hbm/packet/TEDrillPacket.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEDrillPacket implements IMessage { - - int x; - int y; - int z; - float spin; - float torque; - - public TEDrillPacket() - { - - } - - public TEDrillPacket(int x, int y, int z, float spin, float torque) - { - this.x = x; - this.y = y; - this.z = z; - this.spin = spin; - this.torque = torque; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - spin = buf.readFloat(); - torque = buf.readFloat(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeFloat(spin); - buf.writeFloat(torque); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEDrillPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineMiningDrill) { - - TileEntityMachineMiningDrill gen = (TileEntityMachineMiningDrill) te; - gen.rotation = m.spin; - gen.torque = m.torque; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEDrillSoundPacket.java b/src/main/java/com/hbm/packet/TEDrillSoundPacket.java deleted file mode 100644 index 5e8ba4a6c..000000000 --- a/src/main/java/com/hbm/packet/TEDrillSoundPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEDrillSoundPacket implements IMessage { - - int x; - int y; - int z; - float spin; - - public TEDrillSoundPacket() - { - - } - - public TEDrillSoundPacket(int x, int y, int z, float spin) - { - this.x = x; - this.y = y; - this.z = z; - this.spin = spin; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - spin = buf.readFloat(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeFloat(spin); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEDrillSoundPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineMiningDrill) { - - TileEntityMachineMiningDrill gen = (TileEntityMachineMiningDrill) te; - gen.torque = m.spin; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEFluidPacket.java b/src/main/java/com/hbm/packet/TEFluidPacket.java deleted file mode 100644 index 49338eab5..000000000 --- a/src/main/java/com/hbm/packet/TEFluidPacket.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hbm.packet; - -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -@Deprecated -public class TEFluidPacket implements IMessage { - - int x; - int y; - int z; - int fill; - int index; - int type; - - public TEFluidPacket() { } - - public TEFluidPacket(int x, int y, int z, int fill, int index, FluidType type) - { - this.x = x; - this.y = y; - this.z = z; - this.fill = fill; - this.index = index; - this.type = type.getID(); - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - fill = buf.readInt(); - index = buf.readInt(); - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(fill); - buf.writeInt(index); - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEFluidPacket m, MessageContext ctx) { - try{ - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof IFluidContainer) { - - IFluidContainer gen = (IFluidContainer) te; - gen.setFillForSync(m.fill, m.index); - gen.setTypeForSync(Fluids.fromID(m.type), m.index); - } - } catch(Exception x) { } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEMissilePacket.java b/src/main/java/com/hbm/packet/TEMissilePacket.java deleted file mode 100644 index 86933573a..000000000 --- a/src/main/java/com/hbm/packet/TEMissilePacket.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.hbm.packet; - -import com.hbm.interfaces.Spaghetti; -import com.hbm.items.ModItems; -import com.hbm.tileentity.bomb.TileEntityLaunchPad; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; - -public class TEMissilePacket implements IMessage { - - int x; - int y; - int z; - int type; - - public TEMissilePacket() { } - - @Spaghetti("die") - public TEMissilePacket(int x, int y, int z, ItemStack stack) { - - this.x = x; - this.y = y; - this.z = z; - this.type = 0; - if(stack != null) { - if(stack.getItem() == ModItems.missile_generic) - type = 1; - if(stack.getItem() == ModItems.missile_strong) - type = 2; - if(stack.getItem() == ModItems.missile_cluster) - type = 3; - if(stack.getItem() == ModItems.missile_nuclear) - type = 4; - if(stack.getItem() == ModItems.missile_incendiary) - type = 5; - if(stack.getItem() == ModItems.missile_buster) - type = 6; - if(stack.getItem() == ModItems.missile_incendiary_strong) - type = 7; - if(stack.getItem() == ModItems.missile_cluster_strong) - type = 8; - if(stack.getItem() == ModItems.missile_buster_strong) - type = 9; - if(stack.getItem() == ModItems.missile_burst) - type = 10; - if(stack.getItem() == ModItems.missile_inferno) - type = 11; - if(stack.getItem() == ModItems.missile_rain) - type = 12; - if(stack.getItem() == ModItems.missile_drill) - type = 13; - if(stack.getItem() == ModItems.missile_endo) - type = 14; - if(stack.getItem() == ModItems.missile_exo) - type = 15; - if(stack.getItem() == ModItems.missile_nuclear_cluster) - type = 16; - if(stack.getItem() == ModItems.missile_doomsday) - type = 17; - if(stack.getItem() == ModItems.missile_taint) - type = 18; - if(stack.getItem() == ModItems.missile_micro) - type = 19; - if(stack.getItem() == ModItems.missile_carrier) - type = 20; - if(stack.getItem() == ModItems.missile_anti_ballistic) - type = 21; - if(stack.getItem() == ModItems.missile_bhole) - type = 22; - if(stack.getItem() == ModItems.missile_schrabidium) - type = 23; - if(stack.getItem() == ModItems.missile_emp) - type = 24; - if(stack.getItem() == ModItems.missile_emp_strong) - type = 25; - if(stack.getItem() == ModItems.missile_volcano) - type = 26; - if(stack.getItem() == ModItems.missile_shuttle) - type = 27; - - } - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEMissilePacket m, MessageContext ctx) { - - try { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityLaunchPad) { - - TileEntityLaunchPad gen = (TileEntityLaunchPad)te; - gen.state = m.type; - } - } catch(Exception e) { } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TERadarDestructorPacket.java b/src/main/java/com/hbm/packet/TERadarDestructorPacket.java deleted file mode 100644 index 4b5a14763..000000000 --- a/src/main/java/com/hbm/packet/TERadarDestructorPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TERadarDestructorPacket implements IMessage { - - int x; - int y; - int z; - - public TERadarDestructorPacket() { - - } - - public TERadarDestructorPacket(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(TERadarDestructorPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - try { - if (te != null && te instanceof TileEntityMachineRadar) { - - TileEntityMachineRadar radar = (TileEntityMachineRadar) te; - radar.nearbyMissiles.clear(); - } - } catch (Exception x) { - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TERadarPacket.java b/src/main/java/com/hbm/packet/TERadarPacket.java deleted file mode 100644 index 661438627..000000000 --- a/src/main/java/com/hbm/packet/TERadarPacket.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TERadarPacket implements IMessage { - - int x; - int y; - int z; - int conX; - int conY; - int conZ; - int alt; - - public TERadarPacket() { - - } - - public TERadarPacket(int x, int y, int z, int conX, int conY, int conZ, int alt) { - this.x = x; - this.y = y; - this.z = z; - this.conX = conX; - this.conY = conY; - this.conZ = conZ; - this.alt = alt; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - conX = buf.readInt(); - conY = buf.readInt(); - conZ = buf.readInt(); - alt = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(conX); - buf.writeInt(conY); - buf.writeInt(conZ); - buf.writeInt(alt); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(TERadarPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - try { - if (te != null && te instanceof TileEntityMachineRadar) { - - TileEntityMachineRadar radar = (TileEntityMachineRadar) te; - radar.nearbyMissiles.add(new int[]{m.conX, m.conY, m.conZ, m.alt}); - } - } catch (Exception x) { - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEStructurePacket.java b/src/main/java/com/hbm/packet/TEStructurePacket.java deleted file mode 100644 index 59af50274..000000000 --- a/src/main/java/com/hbm/packet/TEStructurePacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityStructureMarker; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEStructurePacket implements IMessage { - - int x; - int y; - int z; - int type; - - public TEStructurePacket() - { - - } - - public TEStructurePacket(int x, int y, int z, int type) - { - this.x = x; - this.y = y; - this.z = z; - this.type = type; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEStructurePacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityStructureMarker) { - - TileEntityStructureMarker marker = (TileEntityStructureMarker) te; - marker.type = m.type; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/AuxParticlePacketNT.java b/src/main/java/com/hbm/packet/toclient/AuxParticlePacketNT.java similarity index 95% rename from src/main/java/com/hbm/packet/AuxParticlePacketNT.java rename to src/main/java/com/hbm/packet/toclient/AuxParticlePacketNT.java index f3b311e3a..a9d44e0b7 100644 --- a/src/main/java/com/hbm/packet/AuxParticlePacketNT.java +++ b/src/main/java/com/hbm/packet/toclient/AuxParticlePacketNT.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import java.io.IOException; @@ -14,22 +14,22 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; public class AuxParticlePacketNT implements IMessage { - + PacketBuffer buffer; public AuxParticlePacketNT() { } public AuxParticlePacketNT(NBTTagCompound nbt, double x, double y, double z) { - + this.buffer = new PacketBuffer(Unpooled.buffer()); nbt.setDouble("posX", x); nbt.setDouble("posY", y); nbt.setDouble("posZ", z); - + try { buffer.writeNBTTagCompoundToBuffer(nbt); - + } catch (IOException e) { e.printStackTrace(); } @@ -37,7 +37,7 @@ public class AuxParticlePacketNT implements IMessage { @Override public void fromBytes(ByteBuf buf) { - + if (buffer == null) { buffer = new PacketBuffer(Unpooled.buffer()); } @@ -46,7 +46,7 @@ public class AuxParticlePacketNT implements IMessage { @Override public void toBytes(ByteBuf buf) { - + if (buffer == null) { buffer = new PacketBuffer(Unpooled.buffer()); } @@ -54,25 +54,27 @@ public class AuxParticlePacketNT implements IMessage { } public static class Handler implements IMessageHandler { - + @Override public IMessage onMessage(AuxParticlePacketNT m, MessageContext ctx) { - + if(Minecraft.getMinecraft().theWorld == null) return null; - + try { NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer(); - + if(nbt != null) MainRegistry.proxy.effectNT(nbt); - + } catch (IOException e) { e.printStackTrace(); + } finally { + m.buffer.release(); } - + return null; } } diff --git a/src/main/java/com/hbm/packet/toclient/BiomeSyncPacket.java b/src/main/java/com/hbm/packet/toclient/BiomeSyncPacket.java new file mode 100644 index 000000000..aee64d099 --- /dev/null +++ b/src/main/java/com/hbm/packet/toclient/BiomeSyncPacket.java @@ -0,0 +1,133 @@ +package com.hbm.packet.toclient; + +import cpw.mods.fml.common.Loader; +import com.hbm.util.Compat; +import com.hbm.world.WorldUtil; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; + +public class BiomeSyncPacket implements IMessage { + + int chunkX; + int chunkZ; + byte blockX; + byte blockZ; + short biome; + short[] biomeArray; + + public BiomeSyncPacket() { } + + public BiomeSyncPacket(int chunkX, int chunkZ, byte[] biomeArray) { + this(chunkX, chunkZ, bytesToShorts(biomeArray)); + } + + public BiomeSyncPacket(int blockX, int blockZ, byte biome) { + this(blockX, blockZ, (short) biome); + } + + public BiomeSyncPacket(int chunkX, int chunkZ, short[] biomeArray) { + this.chunkX = chunkX; + this.chunkZ = chunkZ; + this.biomeArray = biomeArray; + } + + public BiomeSyncPacket(int blockX, int blockZ, short biome) { + this.chunkX = blockX >> 4; + this.chunkZ = blockZ >> 4; + this.blockX = (byte) (blockX & 15); + this.blockZ = (byte) (blockZ & 15); + this.biome = biome; + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(this.chunkX); + buf.writeInt(this.chunkZ); + + if(this.biomeArray == null) { + buf.writeBoolean(false); + buf.writeShort(this.biome); + buf.writeByte(this.blockX); + buf.writeByte(this.blockZ); + } else { + buf.writeBoolean(true); + for(int i = 0; i < 256; i++) { + buf.writeShort(this.biomeArray[i]); + } + } + } + + @Override + public void fromBytes(ByteBuf buf) { + this.chunkX = buf.readInt(); + this.chunkZ = buf.readInt(); + + if(!buf.readBoolean()) { + this.biome = buf.readShort(); + this.blockX = buf.readByte(); + this.blockZ = buf.readByte(); + } else { + this.biomeArray = new short[256]; + for(int i = 0; i < 256; i++) { + this.biomeArray[i] = buf.readShort(); + } + } + } + + private final static short[] bytesToShorts(byte[] byteArray) { + int size = byteArray.length; + short[] shortArray = new short[size]; + + for(int index = 0; index < size; index++) + shortArray[index] = (short) byteArray[index]; + + return shortArray; + } + + public static class Handler implements IMessageHandler { + + @Override + @SideOnly(Side.CLIENT) + public IMessage onMessage(BiomeSyncPacket m, MessageContext ctx) { + + World world = Minecraft.getMinecraft().theWorld; + if(!world.getChunkProvider().chunkExists(m.chunkX, m.chunkZ)) return null; + Chunk chunk = world.getChunkFromChunkCoords(m.chunkX, m.chunkZ); + chunk.isModified = true; + + if(Loader.isModLoaded(Compat.MOD_EIDS)) { + short[] target = WorldUtil.getBiomeShortArray(chunk); + if(m.biomeArray == null) { + target[(m.blockZ & 15) << 4 | m.blockX & 15] = m.biome; + world.markBlockRangeForRenderUpdate(m.chunkX << 4, 0, m.chunkZ << 4, m.chunkX << 4, 255, m.chunkZ << 4); + } else { + for(int i = 0; i < 255; ++i) { + target[i] = m.biomeArray[i]; + world.markBlockRangeForRenderUpdate(m.chunkX << 4, 0, m.chunkZ << 4, (m.chunkX << 4) + 15, 255, (m.chunkZ << 4) + 15); + } + } + } else { + byte[] target = chunk.getBiomeArray(); + if(m.biomeArray == null) { + target[(m.blockZ & 15) << 4 | (m.blockX & 15)] = (byte) m.biome; + world.markBlockRangeForRenderUpdate(m.chunkX << 4, 0, m.chunkZ << 4, m.chunkX << 4, 255, m.chunkZ << 4); + } else { + for(int i = 0; i < 256; i++) { + target[i] = (byte) m.biomeArray[i]; + world.markBlockRangeForRenderUpdate(m.chunkX << 4, 0, m.chunkZ << 4, (m.chunkX << 4) + 15, 255, (m.chunkZ << 4) + 15); + } + } + } + + return null; + } + } +} diff --git a/src/main/java/com/hbm/packet/toclient/BufPacket.java b/src/main/java/com/hbm/packet/toclient/BufPacket.java new file mode 100644 index 000000000..2cc78b657 --- /dev/null +++ b/src/main/java/com/hbm/packet/toclient/BufPacket.java @@ -0,0 +1,72 @@ +package com.hbm.packet.toclient; + +import com.hbm.main.MainRegistry; +import com.hbm.packet.PrecompiledPacket; +import com.hbm.tileentity.IBufPacketReceiver; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class BufPacket extends PrecompiledPacket { + + int x; + int y; + int z; + IBufPacketReceiver rec; + ByteBuf buf; + + public BufPacket() { } + + public BufPacket(int x, int y, int z, IBufPacketReceiver rec) { + this.x = x; + this.y = y; + this.z = z; + this.rec = rec; + } + + @Override + public void fromBytes(ByteBuf buf) { + this.x = buf.readInt(); + this.y = buf.readInt(); + this.z = buf.readInt(); + this.buf = buf; + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + this.rec.serialize(buf); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(BufPacket m, MessageContext ctx) { + + if(Minecraft.getMinecraft().theWorld == null) + return null; + + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if (te instanceof IBufPacketReceiver) { + try { + ((IBufPacketReceiver) te).deserialize(m.buf); + } catch(Exception e) { // just in case I fucked up + MainRegistry.logger.warn("A ByteBuf packet failed to be read and has thrown an error. This normally means that there was a buffer underflow and more data was read than was actually in the packet."); + MainRegistry.logger.warn("Tile: {}", te.getBlockType().getUnlocalizedName()); + MainRegistry.logger.warn(e.getMessage()); + } finally { + m.buf.release(); + } + } + + return null; + } + } +} diff --git a/src/main/java/com/hbm/packet/ExplosionKnockbackPacket.java b/src/main/java/com/hbm/packet/toclient/ExplosionKnockbackPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/ExplosionKnockbackPacket.java rename to src/main/java/com/hbm/packet/toclient/ExplosionKnockbackPacket.java index 9d0aa99c2..0a4972bfe 100644 --- a/src/main/java/com/hbm/packet/ExplosionKnockbackPacket.java +++ b/src/main/java/com/hbm/packet/toclient/ExplosionKnockbackPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; diff --git a/src/main/java/com/hbm/packet/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java b/src/main/java/com/hbm/packet/toclient/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java rename to src/main/java/com/hbm/packet/toclient/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java index c8300a0da..e11d45dc4 100644 --- a/src/main/java/com/hbm/packet/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java +++ b/src/main/java/com/hbm/packet/toclient/ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket.java @@ -1,10 +1,11 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; +import com.hbm.interfaces.NotableComments; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; @@ -20,6 +21,7 @@ import net.minecraft.world.ChunkPosition; * @author hbm * */ +@NotableComments public class ExplosionVanillaNewTechnologyCompressedAffectedBlockPositionDataForClientEffectsAndParticleHandlingPacket implements IMessage { private double posX; diff --git a/src/main/java/com/hbm/packet/toclient/ExtPropPacket.java b/src/main/java/com/hbm/packet/toclient/ExtPropPacket.java new file mode 100644 index 000000000..97ac8016a --- /dev/null +++ b/src/main/java/com/hbm/packet/toclient/ExtPropPacket.java @@ -0,0 +1,59 @@ +package com.hbm.packet.toclient; + +import com.hbm.extprop.HbmLivingProps; +import com.hbm.extprop.HbmPlayerProps; + +import com.hbm.packet.PrecompiledPacket; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; + +public class ExtPropPacket extends PrecompiledPacket { + + HbmLivingProps props; + HbmPlayerProps pprps; + ByteBuf buf; + + public ExtPropPacket() { } + + public ExtPropPacket(HbmLivingProps props, HbmPlayerProps pprps) { + this.props = props; + this.pprps = pprps; + } + + @Override + public void fromBytes(ByteBuf buf) { + this.buf = buf; + } + + @Override + public void toBytes(ByteBuf buf) { + props.serialize(buf); + pprps.serialize(buf); + } + + public static class Handler implements IMessageHandler { + + @Override + @SideOnly(Side.CLIENT) + public IMessage onMessage(ExtPropPacket m, MessageContext ctx) { + + if(Minecraft.getMinecraft().theWorld == null) + return null; + + HbmLivingProps props = HbmLivingProps.getData(Minecraft.getMinecraft().thePlayer); + HbmPlayerProps pprps = HbmPlayerProps.getData(Minecraft.getMinecraft().thePlayer); + + props.deserialize(m.buf); + pprps.deserialize(m.buf); + + m.buf.release(); + + return null; + } + } +} diff --git a/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java b/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java new file mode 100644 index 000000000..922d19200 --- /dev/null +++ b/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java @@ -0,0 +1,150 @@ +package com.hbm.packet.toclient; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.weapon.ItemGunBase; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.HbmAnimations; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.render.anim.HbmAnimations.Animation; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class GunAnimationPacket implements IMessage { + + public short type; + public int receiverIndex; + public int gunIndex; + + public GunAnimationPacket() { } + + public GunAnimationPacket(int type) { + this.type = (short) type; + this.receiverIndex = 0; + this.gunIndex = 0; + } + + public GunAnimationPacket(int type, int rec) { + this.type = (short) type; + this.receiverIndex = rec; + this.gunIndex = 0; + } + + public GunAnimationPacket(int type, int rec, int gun) { + this.type = (short) type; + this.receiverIndex = rec; + this.gunIndex = gun; + } + + @Override + public void fromBytes(ByteBuf buf) { + type = buf.readShort(); + receiverIndex = buf.readInt(); + gunIndex = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeShort(type); + buf.writeInt(receiverIndex); + buf.writeInt(gunIndex); + } + + public static class Handler implements IMessageHandler { + + @Override + @SideOnly(Side.CLIENT) + public IMessage onMessage(GunAnimationPacket m, MessageContext ctx) { + + try { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + ItemStack stack = player.getHeldItem(); + int slot = player.inventory.currentItem; + + if(stack == null) + return null; + + if(stack.getItem() instanceof ItemGunBaseNT) { + handleSedna(player, stack, slot, AnimType.values()[m.type], m.receiverIndex, m.gunIndex); + } + + if(!(stack.getItem() instanceof ItemGunBase)) + return null; + + if(m.type < 0 || m.type >= AnimType.values().length) + return null; + + AnimType type = AnimType.values()[m.type]; + ItemGunBase base = (ItemGunBase) stack.getItem(); + + BusAnimation animation = base.getAnimation(stack, type); + + // Fallback to regular reload if no empty reload animation + if(animation == null && type == AnimType.RELOAD_EMPTY) { + animation = base.getAnimation(stack, AnimType.RELOAD); + } + + // Fallback to regular CYCLE if no ALT_CYCLE (or CYCLE_EMPTY) exists + if(animation == null && (type == AnimType.ALT_CYCLE || type == AnimType.CYCLE_EMPTY)) { + animation = base.getAnimation(stack, AnimType.CYCLE); + } + + if(animation != null) { + boolean isReloadAnimation = type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE || type == AnimType.RELOAD_EMPTY; + HbmAnimations.hotbar[slot][0] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, isReloadAnimation && base.mainConfig.reloadAnimationsSequential); + } + + } catch(Exception x) { } + + return null; + } + + public static void handleSedna(EntityPlayer player, ItemStack stack, int slot, AnimType type, int receiverIndex, int gunIndex) { + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + GunConfig config = gun.getConfig(stack, gunIndex); + + if(type == AnimType.CYCLE) { + if(gunIndex < gun.lastShot.length) gun.lastShot[gunIndex] = System.currentTimeMillis(); + gun.shotRand = player.worldObj.rand.nextDouble(); + + Receiver[] receivers = config.getReceivers(stack); + if(receiverIndex >= 0 && receiverIndex < receivers.length) { + Receiver rec = receivers[receiverIndex]; + BiConsumer onRecoil= rec.getRecoil(stack); + if(onRecoil != null) onRecoil.accept(stack, new LambdaContext(config, player, player.inventory, receiverIndex)); + } + } + + BiFunction anims = config.getAnims(stack); + BusAnimation animation = anims.apply(stack, type); + + if(animation == null && type == AnimType.RELOAD_EMPTY) { + animation = anims.apply(stack, AnimType.RELOAD); + } + if(animation == null && (type == AnimType.ALT_CYCLE || type == AnimType.CYCLE_EMPTY)) { + animation = anims.apply(stack, AnimType.CYCLE); + } + + if(animation != null) { + Minecraft.getMinecraft().entityRenderer.itemRenderer.resetEquippedProgress(); + Minecraft.getMinecraft().entityRenderer.itemRenderer.itemToRender = stack; + boolean isReloadAnimation = type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE || type == AnimType.RELOAD_EMPTY; + HbmAnimations.hotbar[slot][gunIndex] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, isReloadAnimation && config.getReloadAnimSequential(stack)); + } + } + } +} diff --git a/src/main/java/com/hbm/packet/ParticleBurstPacket.java b/src/main/java/com/hbm/packet/toclient/ParticleBurstPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/ParticleBurstPacket.java rename to src/main/java/com/hbm/packet/toclient/ParticleBurstPacket.java index c6b58a8b7..6be55c831 100644 --- a/src/main/java/com/hbm/packet/ParticleBurstPacket.java +++ b/src/main/java/com/hbm/packet/toclient/ParticleBurstPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; diff --git a/src/main/java/com/hbm/packet/PermaSyncPacket.java b/src/main/java/com/hbm/packet/toclient/PermaSyncPacket.java similarity index 89% rename from src/main/java/com/hbm/packet/PermaSyncPacket.java rename to src/main/java/com/hbm/packet/toclient/PermaSyncPacket.java index 2415e3696..f756d9f3e 100644 --- a/src/main/java/com/hbm/packet/PermaSyncPacket.java +++ b/src/main/java/com/hbm/packet/toclient/PermaSyncPacket.java @@ -1,4 +1,6 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; + +import com.hbm.packet.PermaSyncHandler; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; @@ -11,7 +13,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; public class PermaSyncPacket implements IMessage { - + EntityPlayerMP player; //server only, for writing ByteBuf out; //client only, for reading @@ -32,18 +34,20 @@ public class PermaSyncPacket implements IMessage { } public static class Handler implements IMessageHandler { - + @Override @SideOnly(Side.CLIENT) public IMessage onMessage(PermaSyncPacket m, MessageContext ctx) { - + try { EntityPlayer player = Minecraft.getMinecraft().thePlayer; if(player != null) PermaSyncHandler.readPacket(m.out, player.worldObj, player); - - } catch(Exception x) { } - + + } catch(Exception x) { } finally { + m.out.release(); + } + return null; } } diff --git a/src/main/java/com/hbm/packet/PlayerInformPacket.java b/src/main/java/com/hbm/packet/toclient/PlayerInformPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/PlayerInformPacket.java rename to src/main/java/com/hbm/packet/toclient/PlayerInformPacket.java index 01bb8b599..0cdb23d20 100644 --- a/src/main/java/com/hbm/packet/PlayerInformPacket.java +++ b/src/main/java/com/hbm/packet/toclient/PlayerInformPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.main.MainRegistry; diff --git a/src/main/java/com/hbm/packet/SatPanelPacket.java b/src/main/java/com/hbm/packet/toclient/SatPanelPacket.java similarity index 95% rename from src/main/java/com/hbm/packet/SatPanelPacket.java rename to src/main/java/com/hbm/packet/toclient/SatPanelPacket.java index 89252d7e1..e3b815808 100644 --- a/src/main/java/com/hbm/packet/SatPanelPacket.java +++ b/src/main/java/com/hbm/packet/toclient/SatPanelPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import java.io.IOException; @@ -17,7 +17,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; public class SatPanelPacket implements IMessage { - + PacketBuffer buffer; int type; @@ -31,10 +31,10 @@ public class SatPanelPacket implements IMessage { this.buffer = new PacketBuffer(Unpooled.buffer()); NBTTagCompound nbt = new NBTTagCompound(); sat.writeToNBT(nbt); - + try { buffer.writeNBTTagCompoundToBuffer(nbt); - + } catch (IOException e) { e.printStackTrace(); } @@ -42,9 +42,9 @@ public class SatPanelPacket implements IMessage { @Override public void fromBytes(ByteBuf buf) { - + type = buf.readInt(); - + if (buffer == null) { buffer = new PacketBuffer(Unpooled.buffer()); } @@ -53,9 +53,9 @@ public class SatPanelPacket implements IMessage { @Override public void toBytes(ByteBuf buf) { - + buf.writeInt(type); - + if (buffer == null) { buffer = new PacketBuffer(Unpooled.buffer()); } @@ -67,18 +67,20 @@ public class SatPanelPacket implements IMessage { @Override @SideOnly(Side.CLIENT) public IMessage onMessage(SatPanelPacket m, MessageContext ctx) { - + Minecraft.getMinecraft(); try { - + NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer(); ItemSatInterface.currentSat = Satellite.create(m.type); - + if(nbt != null) ItemSatInterface.currentSat.readFromNBT(nbt); - + } catch (Exception x) { + } finally { + m.buffer.release(); } return null; } diff --git a/src/main/java/com/hbm/packet/TEDoorAnimationPacket.java b/src/main/java/com/hbm/packet/toclient/TEDoorAnimationPacket.java similarity index 86% rename from src/main/java/com/hbm/packet/TEDoorAnimationPacket.java rename to src/main/java/com/hbm/packet/toclient/TEDoorAnimationPacket.java index 9ffa77c65..3511f0d07 100644 --- a/src/main/java/com/hbm/packet/TEDoorAnimationPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TEDoorAnimationPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.interfaces.IAnimatedDoor; @@ -15,20 +15,22 @@ public class TEDoorAnimationPacket implements IMessage { public int x, y, z; public byte state; + public byte skinIndex; public byte texture; public TEDoorAnimationPacket() { } public TEDoorAnimationPacket(int x, int y, int z, byte state) { - this(x, y, z, state, (byte) -1); + this(x, y, z, state, (byte) 0, (byte) -1); } - public TEDoorAnimationPacket(int x, int y, int z, byte state, byte tex) { + public TEDoorAnimationPacket(int x, int y, int z, byte state, byte skinIndex, byte tex) { this.x = x; this.y = y; this.z = z; this.state = state; + this.skinIndex = skinIndex; this.texture = tex; } @@ -38,6 +40,7 @@ public class TEDoorAnimationPacket implements IMessage { y = buf.readInt(); z = buf.readInt(); state = buf.readByte(); + skinIndex = buf.readByte(); if(buf.readableBytes() == 1){ texture = buf.readByte(); } @@ -49,6 +52,7 @@ public class TEDoorAnimationPacket implements IMessage { buf.writeInt(y); buf.writeInt(z); buf.writeByte(state); + buf.writeByte(skinIndex); if(texture != -1){ buf.writeByte(texture); } @@ -63,6 +67,7 @@ public class TEDoorAnimationPacket implements IMessage { TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); if(te instanceof IAnimatedDoor){ ((IAnimatedDoor) te).handleNewState(m.state); + ((IAnimatedDoor) te).setSkinIndex(m.skinIndex); ((IAnimatedDoor) te).setTextureState(m.texture); } diff --git a/src/main/java/com/hbm/packet/TEFFPacket.java b/src/main/java/com/hbm/packet/toclient/TEFFPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/TEFFPacket.java rename to src/main/java/com/hbm/packet/toclient/TEFFPacket.java index 4549dfc11..26de5bd91 100644 --- a/src/main/java/com/hbm/packet/TEFFPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TEFFPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.tileentity.machine.TileEntityForceField; import cpw.mods.fml.common.network.simpleimpl.IMessage; diff --git a/src/main/java/com/hbm/packet/TEMissileMultipartPacket.java b/src/main/java/com/hbm/packet/toclient/TEMissileMultipartPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/TEMissileMultipartPacket.java rename to src/main/java/com/hbm/packet/toclient/TEMissileMultipartPacket.java index 9bf955906..e25d5bbac 100644 --- a/src/main/java/com/hbm/packet/TEMissileMultipartPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TEMissileMultipartPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.handler.MissileStruct; import com.hbm.tileentity.bomb.TileEntityCompactLauncher; diff --git a/src/main/java/com/hbm/packet/TESirenPacket.java b/src/main/java/com/hbm/packet/toclient/TESirenPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/TESirenPacket.java rename to src/main/java/com/hbm/packet/toclient/TESirenPacket.java index bdd3d0ea0..8e6f79825 100644 --- a/src/main/java/com/hbm/packet/TESirenPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TESirenPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.items.machine.ItemCassette.SoundType; import com.hbm.items.machine.ItemCassette.TrackType; diff --git a/src/main/java/com/hbm/packet/TEVaultPacket.java b/src/main/java/com/hbm/packet/toclient/TEVaultPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/TEVaultPacket.java rename to src/main/java/com/hbm/packet/toclient/TEVaultPacket.java index 2b0139e92..84721d0b9 100644 --- a/src/main/java/com/hbm/packet/TEVaultPacket.java +++ b/src/main/java/com/hbm/packet/toclient/TEVaultPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toclient; import com.hbm.tileentity.machine.TileEntityBlastDoor; import com.hbm.tileentity.machine.TileEntityVaultDoor; diff --git a/src/main/java/com/hbm/packet/AnvilCraftPacket.java b/src/main/java/com/hbm/packet/toserver/AnvilCraftPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/AnvilCraftPacket.java rename to src/main/java/com/hbm/packet/toserver/AnvilCraftPacket.java index d8b1049a4..1a33e48a6 100644 --- a/src/main/java/com/hbm/packet/AnvilCraftPacket.java +++ b/src/main/java/com/hbm/packet/toserver/AnvilCraftPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; diff --git a/src/main/java/com/hbm/packet/AuxButtonPacket.java b/src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java similarity index 83% rename from src/main/java/com/hbm/packet/AuxButtonPacket.java rename to src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java index 3cb163883..7f41feeb1 100644 --- a/src/main/java/com/hbm/packet/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java @@ -1,10 +1,8 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityDuck; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityTickingBase; import com.hbm.tileentity.bomb.TileEntityLaunchTable; @@ -13,12 +11,11 @@ import com.hbm.tileentity.machine.TileEntityCoreStabilizer; import com.hbm.tileentity.machine.TileEntityForceField; import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; import com.hbm.tileentity.machine.TileEntitySoyuzLauncher; import com.hbm.tileentity.machine.storage.TileEntityBarrel; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; -import api.hbm.energy.IEnergyConnector.ConnectionPriority; +import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; @@ -71,6 +68,7 @@ public class AuxButtonPacket implements IMessage { public static class Handler implements IMessageHandler { + @SuppressWarnings("incomplete-switch") @Override public IMessage onMessage(AuxButtonPacket m, MessageContext ctx) { @@ -85,30 +83,6 @@ public class AuxButtonPacket implements IMessage { field.isOn = !field.isOn; } - if (te instanceof TileEntityMachineReactorLarge) { - TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge)te; - - if(m.id == 0) - reactor.rods = m.value; - - if(m.id == 1) { - FluidType type = Fluids.STEAM; - int fill = reactor.tanks[2].getFill(); - - switch(m.value) { - case 0: type = Fluids.HOTSTEAM; fill = (int)Math.floor(fill / 10D); break; - case 1: type = Fluids.SUPERHOTSTEAM; fill = (int)Math.floor(fill / 10D); break; - case 2: type = Fluids.STEAM; fill = (int)Math.floor(fill * 100); break; - } - - if(fill > reactor.tanks[2].getMaxFill()) - fill = reactor.tanks[2].getMaxFill(); - - reactor.tanks[2].setTankType(type); - reactor.tanks[2].setFill(fill); - } - } - if (te instanceof TileEntityMachineMissileAssembly) { TileEntityMachineMissileAssembly assembly = (TileEntityMachineMissileAssembly)te; diff --git a/src/main/java/com/hbm/packet/GunButtonPacket.java b/src/main/java/com/hbm/packet/toserver/GunButtonPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/GunButtonPacket.java rename to src/main/java/com/hbm/packet/toserver/GunButtonPacket.java index a9688de1d..0dc5f0e99 100644 --- a/src/main/java/com/hbm/packet/GunButtonPacket.java +++ b/src/main/java/com/hbm/packet/toserver/GunButtonPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.items.weapon.ItemGunBase; diff --git a/src/main/java/com/hbm/packet/ItemBobmazonPacket.java b/src/main/java/com/hbm/packet/toserver/ItemBobmazonPacket.java similarity index 95% rename from src/main/java/com/hbm/packet/ItemBobmazonPacket.java rename to src/main/java/com/hbm/packet/toserver/ItemBobmazonPacket.java index 8e9047038..9866b4596 100644 --- a/src/main/java/com/hbm/packet/ItemBobmazonPacket.java +++ b/src/main/java/com/hbm/packet/toserver/ItemBobmazonPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import java.util.Random; @@ -128,9 +128,7 @@ public class ItemBobmazonPacket implements IMessage { item == ModItems.cap_nuka || item == ModItems.cap_quantum || item == ModItems.cap_rad || - item == ModItems.cap_sparkle || - item == ModItems.cap_star || - item == ModItems.cap_sunset) + item == ModItems.cap_sparkle) count += stack.stackSize; } @@ -157,9 +155,7 @@ public class ItemBobmazonPacket implements IMessage { item == ModItems.cap_nuka || item == ModItems.cap_quantum || item == ModItems.cap_rad || - item == ModItems.cap_sparkle || - item == ModItems.cap_star || - item == ModItems.cap_sunset) { + item == ModItems.cap_sparkle) { int size = stack.stackSize; for(int j = 0; j < size; j++) { diff --git a/src/main/java/com/hbm/packet/ItemDesignatorPacket.java b/src/main/java/com/hbm/packet/toserver/ItemDesignatorPacket.java similarity index 98% rename from src/main/java/com/hbm/packet/ItemDesignatorPacket.java rename to src/main/java/com/hbm/packet/toserver/ItemDesignatorPacket.java index 126325b16..8acdcc808 100644 --- a/src/main/java/com/hbm/packet/ItemDesignatorPacket.java +++ b/src/main/java/com/hbm/packet/toserver/ItemDesignatorPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.items.ModItems; diff --git a/src/main/java/com/hbm/packet/ItemFolderPacket.java b/src/main/java/com/hbm/packet/toserver/ItemFolderPacket.java similarity index 99% rename from src/main/java/com/hbm/packet/ItemFolderPacket.java rename to src/main/java/com/hbm/packet/toserver/ItemFolderPacket.java index 7f70ce19a..e6258ba19 100644 --- a/src/main/java/com/hbm/packet/ItemFolderPacket.java +++ b/src/main/java/com/hbm/packet/toserver/ItemFolderPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.AssemblerRecipes; diff --git a/src/main/java/com/hbm/packet/KeybindPacket.java b/src/main/java/com/hbm/packet/toserver/KeybindPacket.java similarity index 84% rename from src/main/java/com/hbm/packet/KeybindPacket.java rename to src/main/java/com/hbm/packet/toserver/KeybindPacket.java index 3b3f2a80c..945d21e69 100644 --- a/src/main/java/com/hbm/packet/KeybindPacket.java +++ b/src/main/java/com/hbm/packet/toserver/KeybindPacket.java @@ -1,7 +1,7 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; -import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.handler.HbmKeybindsServer; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; @@ -39,9 +39,7 @@ public class KeybindPacket implements IMessage { public IMessage onMessage(KeybindPacket m, MessageContext ctx) { EntityPlayer p = ctx.getServerHandler().playerEntity; - HbmPlayerProps props = HbmPlayerProps.getData(p); - - props.setKeyPressed(EnumKeybind.values()[m.key], m.pressed); + HbmKeybindsServer.onPressedServer(p, EnumKeybind.values()[m.key], m.pressed); return null; } diff --git a/src/main/java/com/hbm/packet/NBTControlPacket.java b/src/main/java/com/hbm/packet/toserver/NBTControlPacket.java similarity index 85% rename from src/main/java/com/hbm/packet/NBTControlPacket.java rename to src/main/java/com/hbm/packet/toserver/NBTControlPacket.java index 8ce47aa3c..6a2a58c16 100644 --- a/src/main/java/com/hbm/packet/NBTControlPacket.java +++ b/src/main/java/com/hbm/packet/toserver/NBTControlPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import java.io.IOException; @@ -15,7 +15,7 @@ import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; public class NBTControlPacket implements IMessage { - + PacketBuffer buffer; int x; int y; @@ -24,15 +24,14 @@ public class NBTControlPacket implements IMessage { public NBTControlPacket() { } public NBTControlPacket(NBTTagCompound nbt, int x, int y, int z) { - + this.buffer = new PacketBuffer(Unpooled.buffer()); this.x = x; this.y = y; this.z = z; - + try { buffer.writeNBTTagCompoundToBuffer(nbt); - } catch (IOException e) { e.printStackTrace(); } @@ -40,60 +39,62 @@ public class NBTControlPacket implements IMessage { @Override public void fromBytes(ByteBuf buf) { - + x = buf.readInt(); y = buf.readInt(); z = buf.readInt(); - - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } + + if(buffer == null) buffer = new PacketBuffer(Unpooled.buffer()); + buffer.writeBytes(buf); } @Override public void toBytes(ByteBuf buf) { - + buf.writeInt(x); buf.writeInt(y); buf.writeInt(z); - - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } + + if (buffer == null) buffer = new PacketBuffer(Unpooled.buffer()); + buf.writeBytes(buffer); } public static class Handler implements IMessageHandler { - + @Override public IMessage onMessage(NBTControlPacket m, MessageContext ctx) { EntityPlayer p = ctx.getServerHandler().playerEntity; - + if(p.worldObj == null) return null; - + TileEntity te = p.worldObj.getTileEntity(m.x, m.y, m.z); - + try { - + NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer(); - + if(nbt != null) { if(te instanceof IControlReceiver) { - + IControlReceiver tile = (IControlReceiver)te; - - if(tile.hasPermission(p)) + + if(tile.hasPermission(p)) { + tile.receiveControl(p, nbt); tile.receiveControl(nbt); + } } } - + } catch (IOException e) { e.printStackTrace(); + } finally { + m.buffer.release(); } - + return null; } } diff --git a/src/main/java/com/hbm/packet/NBTItemControlPacket.java b/src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java similarity index 95% rename from src/main/java/com/hbm/packet/NBTItemControlPacket.java rename to src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java index 7f03f6894..499617bac 100644 --- a/src/main/java/com/hbm/packet/NBTItemControlPacket.java +++ b/src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import java.io.IOException; @@ -15,18 +15,18 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; public class NBTItemControlPacket implements IMessage { - + PacketBuffer buffer; public NBTItemControlPacket() { } public NBTItemControlPacket(NBTTagCompound nbt) { - + this.buffer = new PacketBuffer(Unpooled.buffer()); - + try { buffer.writeNBTTagCompoundToBuffer(nbt); - + } catch (IOException e) { e.printStackTrace(); } @@ -34,7 +34,7 @@ public class NBTItemControlPacket implements IMessage { @Override public void fromBytes(ByteBuf buf) { - + if (buffer == null) { buffer = new PacketBuffer(Unpooled.buffer()); } @@ -43,7 +43,7 @@ public class NBTItemControlPacket implements IMessage { @Override public void toBytes(ByteBuf buf) { - + if (buffer == null) { buffer = new PacketBuffer(Unpooled.buffer()); } @@ -51,28 +51,30 @@ public class NBTItemControlPacket implements IMessage { } public static class Handler implements IMessageHandler { - + @Override public IMessage onMessage(NBTItemControlPacket m, MessageContext ctx) { EntityPlayer p = ctx.getServerHandler().playerEntity; - + try { - + NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer(); - + if(nbt != null) { ItemStack held = p.getHeldItem(); - + if(held != null && held.getItem() instanceof IItemControlReceiver) { ((IItemControlReceiver) held.getItem()).receiveControl(held, nbt); } } - + } catch (IOException e) { e.printStackTrace(); + } finally { + m.buffer.release(); } - + return null; } } diff --git a/src/main/java/com/hbm/packet/SatCoordPacket.java b/src/main/java/com/hbm/packet/toserver/SatCoordPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/SatCoordPacket.java rename to src/main/java/com/hbm/packet/toserver/SatCoordPacket.java index 0d165165d..b36ef3245 100644 --- a/src/main/java/com/hbm/packet/SatCoordPacket.java +++ b/src/main/java/com/hbm/packet/toserver/SatCoordPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.items.ISatChip; import com.hbm.items.tool.ItemSatInterface; diff --git a/src/main/java/com/hbm/packet/SatLaserPacket.java b/src/main/java/com/hbm/packet/toserver/SatLaserPacket.java similarity index 97% rename from src/main/java/com/hbm/packet/SatLaserPacket.java rename to src/main/java/com/hbm/packet/toserver/SatLaserPacket.java index 1dc430a7b..9b0bacea8 100644 --- a/src/main/java/com/hbm/packet/SatLaserPacket.java +++ b/src/main/java/com/hbm/packet/toserver/SatLaserPacket.java @@ -1,4 +1,4 @@ -package com.hbm.packet; +package com.hbm.packet.toserver; import com.hbm.items.ISatChip; import com.hbm.items.tool.ItemSatInterface; diff --git a/src/main/java/com/hbm/particle/EntityFXRotating.java b/src/main/java/com/hbm/particle/EntityFXRotating.java new file mode 100644 index 000000000..0c05cd9ca --- /dev/null +++ b/src/main/java/com/hbm/particle/EntityFXRotating.java @@ -0,0 +1,72 @@ +package com.hbm.particle; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class EntityFXRotating extends EntityFX { + + protected EntityFXRotating(World world, double x, double y, double z) { + super(world, x, y, z); + } + + @Override + public int getFXLayer() { + return 1; + } + + public void renderParticleRotated(Tessellator tess, float interp, float sX, float sY, float sZ, float dX, float dZ, double scale) { + + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + float rotation = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * interp; + + double x1 = 0 - sX * scale - dX * scale; + double y1 = 0 - sY * scale; + double z1 = 0 - sZ * scale - dZ * scale; + double x2 = 0 - sX * scale + dX * scale; + double y2 = 0 + sY * scale; + double z2 = 0 - sZ * scale + dZ * scale; + double x3 = 0 + sX * scale + dX * scale; + double y3 = 0 + sY * scale; + double z3 = 0 + sZ * scale + dZ * scale; + double x4 = 0 + sX * scale - dX * scale; + double y4 = 0 - sY * scale; + double z4 = 0 + sZ * scale - dZ * scale; + + double nX = ((y2 - y1) * (z3 - z1)) - ((z2 - z1) * (y3 - y1)); + double nY = ((z2 - z1) * (x3 - x1)) - ((x2 - x1) * (z3 - z1)); + double nZ = ((x2 - x1) * (y3 - y1)) - ((y2 - y1) * (x3 - x1)); + + Vec3 vec = Vec3.createVectorHelper(nX, nY, nZ).normalize(); + nX = vec.xCoord; + nY = vec.yCoord; + nZ = vec.zCoord; + + double cosTh = Math.cos(rotation * Math.PI / 180D); + double sinTh = Math.sin(rotation * Math.PI / 180D); + + double x01 = x1 * cosTh + (nY * z1 - nZ * y1) * sinTh; + double y01 = y1 * cosTh + (nZ * x1 - nX * z1) * sinTh; + double z01 = z1 * cosTh + (nX * y1 - nY * x1) * sinTh; + double x02 = x2 * cosTh + (nY * z2 - nZ * y2) * sinTh; + double y02 = y2 * cosTh + (nZ * x2 - nX * z2) * sinTh; + double z02 = z2 * cosTh + (nX * y2 - nY * x2) * sinTh; + double x03 = x3 * cosTh + (nY * z3 - nZ * y3) * sinTh; + double y03 = y3 * cosTh + (nZ * x3 - nX * z3) * sinTh; + double z03 = z3 * cosTh + (nX * y3 - nY * x3) * sinTh; + double x04 = x4 * cosTh + (nY * z4 - nZ * y4) * sinTh; + double y04 = y4 * cosTh + (nZ * x4 - nX * z4) * sinTh; + double z04 = z4 * cosTh + (nX * y4 - nY * x4) * sinTh; + + tess.addVertexWithUV(pX + x01, pY + y01, pZ + z01, particleIcon.getMaxU(), particleIcon.getMaxV()); + tess.addVertexWithUV(pX + x02, pY + y02, pZ + z02, particleIcon.getMaxU(), particleIcon.getMinV()); + tess.addVertexWithUV(pX + x03, pY + y03, pZ + z03, particleIcon.getMinU(), particleIcon.getMinV()); + tess.addVertexWithUV(pX + x04, pY + y04, pZ + z04, particleIcon.getMinU(), particleIcon.getMaxV()); + } +} diff --git a/src/main/java/com/hbm/particle/ParticleAshes.java b/src/main/java/com/hbm/particle/ParticleAshes.java new file mode 100644 index 000000000..4b76c52ac --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleAshes.java @@ -0,0 +1,87 @@ +package com.hbm.particle; + +import com.hbm.main.ModEventHandlerClient; +import com.hbm.util.Vec3NT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleAshes extends EntityFXRotating { + + public ParticleAshes(World world, double x, double y, double z, float scale) { + super(world, x, y, z); + particleIcon = ModEventHandlerClient.particleBase; + this.particleMaxAge = 1200 + rand.nextInt(20); + this.particleScale = scale * 0.9F + rand.nextFloat() * 0.2F; + + this.particleGravity = 0.01F; + + this.particleRed = this.particleGreen = this.particleBlue = this.rand.nextFloat() * 0.1F + 0.1F; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.particleAge++; + + if(this.particleAge >= this.particleMaxAge) { + this.setDead(); + } + + this.motionY -= particleGravity; + this.prevRotationPitch = this.rotationPitch; + + if(!this.onGround) this.rotationPitch += 2 * ((this.getEntityId() % 2) - 0.5); + + this.motionX *= 0.95D; + this.motionY *= 0.99D; + this.motionZ *= 0.95D; + + boolean wasOnGround = this.onGround; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + if(!wasOnGround && this.onGround) this.rotationPitch = rand.nextFloat() * 360F; + + if(this.getEntityId() % 5 == 0 && this.onGround && rand.nextInt(15) == 0) { + worldObj.spawnParticle("smoke", posX, posY + 0.125, posZ, 0, 0.05, 0); + } + } + + @Override + public void renderParticle(Tessellator tess, float interp, float sX, float sY, float sZ, float dX, float dZ) { + + float timeLeft = this.particleMaxAge - (this.particleAge + interp); + + if(timeLeft < 40) { + this.particleAlpha = timeLeft / 40F; + } else { + this.particleAlpha = 1F; + } + + tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); + tess.setNormal(0.0F, 1.0F, 0.0F); + + if(this.onGround) { + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + + Vec3NT vec = new Vec3NT(particleScale, 0, particleScale).rotateAroundYDeg(this.rotationPitch); + + tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMaxU(), particleIcon.getMaxV()); + vec.rotateAroundYDeg(90); + tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMaxU(), particleIcon.getMinV()); + vec.rotateAroundYDeg(90); + tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMinU(), particleIcon.getMinV()); + vec.rotateAroundYDeg(90); + tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMinU(), particleIcon.getMaxV()); + } else { + renderParticleRotated(tess, interp, sX, sY, sZ, dX, dZ, this.particleScale); + } + } +} diff --git a/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java b/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java new file mode 100644 index 000000000..9469bac57 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java @@ -0,0 +1,78 @@ +package com.hbm.particle; + +import java.awt.Color; + +import com.hbm.main.ModEventHandlerClient; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleBlackPowderSmoke extends EntityFXRotating { + + public float hue; + + public ParticleBlackPowderSmoke(World world, double x, double y, double z, float scale) { + super(world, x, y, z); + particleIcon = ModEventHandlerClient.particleBase; + this.particleMaxAge = 30 + rand.nextInt(15); + this.particleScale = scale * 0.9F + rand.nextFloat() * 0.2F; + + this.particleGravity = 0F; + + this.hue = 20F + rand.nextFloat() * 20F; + Color color = Color.getHSBColor(hue / 255F, 1F, 1F); + this.particleRed = color.getRed() / 255F; + this.particleGreen = color.getGreen() / 255F; + this.particleBlue = color.getBlue() / 255F; + + this.noClip = true; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.particleAge++; + + if(this.particleAge >= this.particleMaxAge) { + this.setDead(); + } + + this.motionY -= particleGravity; + this.prevRotationPitch = this.rotationPitch; + + float ageScaled = (float) this.particleAge / (float) this.particleMaxAge; + this.rotationPitch += (1 - ageScaled) * 2 * ((this.getEntityId() % 2) - 0.5); + + this.motionX *= 0.65D; + this.motionY *= 0.65D; + this.motionZ *= 0.65D; + + this.moveEntity(this.motionX, this.motionY, this.motionZ); + } + + @Override + public void renderParticle(Tessellator tess, float interp, float sX, float sY, float sZ, float dX, float dZ) { + + double ageScaled = (double) (this.particleAge + interp) / (double) this.particleMaxAge; + + Color color = Color.getHSBColor(hue / 255F, Math.max(1F - (float) ageScaled * 4F, 0), MathHelper.clamp_float(1.25F - (float) ageScaled * 2F, 0.7F, 1F)); + this.particleRed = color.getRed() / 255F; + this.particleGreen = color.getGreen() / 255F; + this.particleBlue = color.getBlue() / 255F; + + this.particleAlpha = (float) Math.pow(1 - Math.min(ageScaled, 1), 0.25); + + tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha * 0.25F); + tess.setNormal(0.0F, 1.0F, 0.0F); + + double scale = (0.25 + ageScaled + (this.particleAge + interp) * 0.025) * this.particleScale; + renderParticleRotated(tess, interp, sX, sY, sZ, dX, dZ, scale); + } +} diff --git a/src/main/java/com/hbm/particle/ParticleBlackPowderSpark.java b/src/main/java/com/hbm/particle/ParticleBlackPowderSpark.java new file mode 100644 index 000000000..7c0e9ea22 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleBlackPowderSpark.java @@ -0,0 +1,51 @@ +package com.hbm.particle; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleBlackPowderSpark extends EntityFX { + + public ParticleBlackPowderSpark(World world, double x, double y, double z, double mX, double mY, double mZ) { + super(world, x, y, z, mX, mY, mZ); + + this.motionX = mX; + this.motionY = mY; + this.motionZ = mZ; + + float f = this.rand.nextFloat() * 0.1F + 0.2F; + this.particleRed = f + 0.7F; + this.particleGreen = f + 0.5F; + this.particleBlue = f; + this.setParticleTextureIndex(0); + this.setSize(0.02F, 0.02F); + this.particleScale *= this.rand.nextFloat() * 0.6F + 0.5F; + this.particleMaxAge = 15 + this.rand.nextInt(5); + + this.particleGravity = 0.01F; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + this.motionY -= particleGravity; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.95D; + this.motionY *= 0.95D; + this.motionZ *= 0.95D; + + if(this.particleMaxAge-- <= 0) { + this.setDead(); + } + } + + @Override + @SideOnly(Side.CLIENT) + public int getBrightnessForRender(float interp) { + return 15728880; + } +} diff --git a/src/main/java/com/hbm/particle/ParticleContrail.java b/src/main/java/com/hbm/particle/ParticleContrail.java index 9a972bee4..5bdacfcad 100644 --- a/src/main/java/com/hbm/particle/ParticleContrail.java +++ b/src/main/java/com/hbm/particle/ParticleContrail.java @@ -8,11 +8,13 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -28,9 +30,9 @@ public class ParticleContrail extends EntityFX { super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); theRenderEngine = p_i1213_1_; maxAge = 100 + rand.nextInt(40); - - this.particleRed = this.particleGreen = this.particleBlue = 0; - this.particleScale = 1F; + + this.particleRed = this.particleGreen = this.particleBlue = 0; + this.particleScale = 1F; } public ParticleContrail(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_, float red, float green, float blue, float scale) { @@ -38,24 +40,23 @@ public class ParticleContrail extends EntityFX { theRenderEngine = p_i1213_1_; maxAge = 100 + rand.nextInt(40); - this.particleRed = red; - this.particleGreen = green; - this.particleBlue = blue; - - this.particleScale = scale; + this.particleRed = red; + this.particleGreen = green; + this.particleBlue = blue; + + this.particleScale = scale; } public void onUpdate() { this.prevPosX = this.posX; this.prevPosY = this.posY; this.prevPosZ = this.posZ; - - particleAlpha = 1 - ((float) age / (float) maxAge); - - ++this.age; - - if (this.age == this.maxAge) { + particleAlpha = 1 - ((float) age / (float) maxAge); + + ++this.age; + + if(this.age == this.maxAge) { this.setDead(); } } @@ -65,40 +66,44 @@ public class ParticleContrail extends EntityFX { } public void renderParticle(Tessellator p_70539_1_, float p_70539_2_, float p_70539_3_, float p_70539_4_, float p_70539_5_, float p_70539_6_, float p_70539_7_) { - + this.theRenderEngine.bindTexture(texture); - + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_BLEND); GL11.glDepthMask(false); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); RenderHelper.disableStandardItemLighting(); - + Random urandom = new Random(this.getEntityId()); + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)p_70539_2_; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)p_70539_2_; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)p_70539_2_; + for(int i = 0; i < 6; i++) { - + p_70539_1_.startDrawingQuads(); - float mod = urandom.nextFloat() * 0.2F + 0.2F; p_70539_1_.setColorRGBA_F(this.particleRed + mod, this.particleGreen + mod, this.particleBlue + mod, this.particleAlpha); p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); p_70539_1_.setBrightness(240); - - float scale = particleAlpha + 0.5F * this.particleScale; - float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double)p_70539_2_ - interpPosX) + urandom.nextGaussian() * 0.5); - float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double)p_70539_2_ - interpPosY) + urandom.nextGaussian() * 0.5); - float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double)p_70539_2_ - interpPosZ) + urandom.nextGaussian() * 0.5); - - p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale - p_70539_7_ * scale), 1, 1); - p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale + p_70539_7_ * scale), 1, 0); - p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale + p_70539_7_ * scale), 0, 0); - p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale - p_70539_7_ * scale), 0, 1); + + float scale = (particleAlpha + 0.5F) * this.particleScale; + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - dX) + urandom.nextGaussian() * 0.5 * this.particleScale); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - dY) + urandom.nextGaussian() * 0.5 * this.particleScale); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - dZ) + urandom.nextGaussian() * 0.5 * this.particleScale); + + p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale - p_70539_6_ * scale), (double) (pY - p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale - p_70539_7_ * scale), 1, 1); + p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale + p_70539_6_ * scale), (double) (pY + p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale + p_70539_7_ * scale), 1, 0); + p_70539_1_.addVertexWithUV((double) (pX + p_70539_3_ * scale + p_70539_6_ * scale), (double) (pY + p_70539_4_ * scale), (double) (pZ + p_70539_5_ * scale + p_70539_7_ * scale), 0, 0); + p_70539_1_.addVertexWithUV((double) (pX + p_70539_3_ * scale - p_70539_6_ * scale), (double) (pY - p_70539_4_ * scale), (double) (pZ + p_70539_5_ * scale - p_70539_7_ * scale), 0, 1); p_70539_1_.draw(); } - + GL11.glPolygonOffset(0.0F, 0.0F); GL11.glEnable(GL11.GL_LIGHTING); } diff --git a/src/main/java/com/hbm/particle/ParticleCoolingTower.java b/src/main/java/com/hbm/particle/ParticleCoolingTower.java index ced14c05f..cf9d39559 100644 --- a/src/main/java/com/hbm/particle/ParticleCoolingTower.java +++ b/src/main/java/com/hbm/particle/ParticleCoolingTower.java @@ -15,6 +15,9 @@ public class ParticleCoolingTower extends EntityFX { private float baseScale = 1.0F; private float maxScale = 1.0F; private float lift = 0.3F; + private float strafe = 0.075F; + private boolean windDir = true; + private float alphaMod = 0.25F; public ParticleCoolingTower(TextureManager texman, World world, double x, double y, double z) { super(world, x, y, z); @@ -23,21 +26,13 @@ public class ParticleCoolingTower extends EntityFX { this.noClip = true; } - public void setBaseScale(float f) { - this.baseScale = f; - } - - public void setMaxScale(float f) { - this.maxScale = f; - } - - public void setLift(float f) { - this.lift = f; - } - - public void setLife(int i) { - this.particleMaxAge = i; - } + public void setBaseScale(float f) { this.baseScale = f; } + public void setMaxScale(float f) { this.maxScale = f; } + public void setLift(float f) { this.lift = f; } + public void setLife(int i) { this.particleMaxAge = i; } + public void setStrafe(float f) { this.strafe = f; } + public void noWind() { this.windDir = false; } + public void alphaMod(float mod) { this.alphaMod = mod; } public void onUpdate() { @@ -47,20 +42,25 @@ public class ParticleCoolingTower extends EntityFX { float ageScale = (float) this.particleAge / (float) this.particleMaxAge; - this.particleAlpha = 0.25F - ageScale * 0.25F; + this.particleAlpha = alphaMod - ageScale * alphaMod; this.particleScale = baseScale + (float)Math.pow((maxScale * ageScale - baseScale), 2); this.particleAge++; - - if(this.motionY < this.lift) { + + if(lift > 0 && this.motionY < this.lift) { this.motionY += 0.01F; } + if(lift < 0 && this.motionY > this.lift) { + this.motionY -= 0.01F; + } - this.motionX += rand.nextGaussian() * 0.075D * ageScale; - this.motionZ += rand.nextGaussian() * 0.075D * ageScale; + this.motionX += rand.nextGaussian() * strafe * ageScale; + this.motionZ += rand.nextGaussian() * strafe * ageScale; - this.motionX += 0.02 * ageScale; - this.motionX -= 0.01 * ageScale; + if(windDir) { + this.motionX += 0.02 * ageScale; + this.motionZ -= 0.01 * ageScale; + } if(this.particleAge == this.particleMaxAge) { this.setDead(); diff --git a/src/main/java/com/hbm/particle/ParticleDebris.java b/src/main/java/com/hbm/particle/ParticleDebris.java new file mode 100644 index 000000000..fe6c93aa7 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleDebris.java @@ -0,0 +1,124 @@ +package com.hbm.particle; + +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.wiaj.WorldInAJar; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public class ParticleDebris extends EntityFX { + + private RenderBlocks renderer; + public WorldInAJar world; + public static Random rng = new Random(); + + public ParticleDebris(World world, double x, double y, double z) { + super(world, x, y, z); + } + + public ParticleDebris(World world, double x, double y, double z, double mx, double my, double mz) { + super(world, x, y, z); + double mult = 3; + this.motionX = mx * mult; + this.motionY = my * mult; + this.motionZ = mz * mult; + this.particleMaxAge = 100; + this.particleGravity = 0.15F; + this.noClip = true; + } + + @Override + public int getFXLayer() { + return 3; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + if(this.particleAge > 5) this.noClip = false; + + rng.setSeed(this.getEntityId()); + this.prevRotationPitch = this.rotationPitch; + this.prevRotationYaw = this.rotationYaw; + this.rotationPitch += rng.nextFloat() * 10; + this.rotationYaw += rng.nextFloat() * 10; + + if(this.getEntityId() % 3 == 0) { + TextureManager man = Minecraft.getMinecraft().renderEngine; + ParticleRocketFlame fx = new ParticleRocketFlame(man, worldObj, posX, posY, posZ).setScale(1F * Math.max(world.sizeY, 6) / 16F); + fx.prevPosX = fx.posX; + fx.prevPosY = fx.posY; + fx.prevPosZ = fx.posZ; + fx.setMaxAge(50); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + + this.motionY -= this.particleGravity; + + this.moveEntity(this.motionX, this.motionY, this.motionZ); + + this.particleAge++; + if(this.onGround || this.isInWeb) this.setDead(); + } + + @Override + public void renderParticle(Tessellator tess, float interp, float fX, float fY, float fZ, float sX, float sZ) { + + if(world == null) return; + + if(renderer == null) { + renderer = new RenderBlocks(world); + } + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)interp; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)interp; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; + + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) interp - dX)); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) interp - dY)); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - dZ)); + + renderer.enableAO = true; + world.lightlevel = worldObj.getLightBrightnessForSkyBlocks((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), 0); + + RenderHelper.disableStandardItemLighting(); + GL11.glDisable(GL11.GL_BLEND); + //OpenGlHelper.glBlendFunc(770, 771, 1, 0); + + GL11.glPushMatrix(); + GL11.glTranslatef(pX, pY, pZ); + GL11.glRotated(prevRotationPitch + (rotationPitch - prevRotationPitch) * interp, 0, 1, 0); + GL11.glRotated(prevRotationYaw + (rotationYaw - prevRotationYaw) * interp, 0, 0, 1); + GL11.glTranslated(-world.sizeX / 2D, -world.sizeY / 2D, -world.sizeZ / 2D); + + Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture); + GL11.glShadeModel(GL11.GL_SMOOTH); + Tessellator.instance.startDrawingQuads(); + + for(int ix = 0; ix < world.sizeX; ix++) { + for(int iy = 0; iy < world.sizeY; iy++) { + for(int iz = 0; iz < world.sizeZ; iz++) { + try { renderer.renderBlockByRenderType(world.getBlock(ix, iy, iz), ix, iy, iz); } catch(Exception ex) { } + } + } + } + + Tessellator.instance.draw(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/particle/ParticleDebugLine.java b/src/main/java/com/hbm/particle/ParticleDebugLine.java new file mode 100644 index 000000000..5207e7658 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleDebugLine.java @@ -0,0 +1,72 @@ +package com.hbm.particle; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.World; + +public class ParticleDebugLine extends EntityFX { + + int color; + + public ParticleDebugLine(World world, double x, double y, double z, double lx, double ly, double lz, int color) { + super(world, x, y, z, lx, ly, lz); + this.motionX = lx; + this.motionY = ly; + this.motionZ = lz; + this.color = color; + this.particleMaxAge = 60; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + if(this.particleAge++ >= this.particleMaxAge) { + this.setDead(); + } + } + + @Override + public int getFXLayer() { + return 3; + } + + @Override + public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { + + double pX = this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX; + double pY = this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY; + double pZ = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ; + + double mX = pX + motionX; + double mY = pY + motionY; + double mZ = pZ + motionZ; + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_COLOR_MATERIAL); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_POINT_SMOOTH); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA); + + tess.startDrawing(GL11.GL_LINES); + tess.setBrightness((int) (240 - (240 * (this.particleAge + interp) / this.particleMaxAge))); + tess.setColorOpaque_I(color); + tess.addVertex(pX, pY, pZ); + tess.addVertex(mX, mY, mZ); + tess.draw(); + + GL11.glEnable(GL11.GL_COLOR_MATERIAL); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_POINT_SMOOTH); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/particle/ParticleExplosionSmall.java b/src/main/java/com/hbm/particle/ParticleExplosionSmall.java new file mode 100644 index 000000000..18c7158bd --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleExplosionSmall.java @@ -0,0 +1,80 @@ +package com.hbm.particle; + +import java.awt.Color; + +import com.hbm.main.ModEventHandlerClient; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleExplosionSmall extends EntityFXRotating { + + public float hue; + + public ParticleExplosionSmall(World world, double x, double y, double z, float scale, float speedMult) { + super(world, x, y, z); + particleIcon = ModEventHandlerClient.particleBase; + this.particleMaxAge = 25 + rand.nextInt(10); + this.particleScale = scale * 0.9F + rand.nextFloat() * 0.2F; + + this.motionX = world.rand.nextGaussian() * speedMult; + this.motionZ = world.rand.nextGaussian() * speedMult; + + this.particleGravity = rand.nextFloat() * -0.01F; + + this.hue = 20F + rand.nextFloat() * 20F; + Color color = Color.getHSBColor(hue / 255F, 1F, 1F); + this.particleRed = color.getRed() / 255F; + this.particleGreen = color.getGreen() / 255F; + this.particleBlue = color.getBlue() / 255F; + + this.noClip = true; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.particleAge++; + + if(this.particleAge >= this.particleMaxAge) { + this.setDead(); + } + + this.motionY -= particleGravity; + this.prevRotationPitch = this.rotationPitch; + + float ageScaled = (float) this.particleAge / (float) this.particleMaxAge; + this.rotationPitch += (1 - ageScaled) * 5 * ((this.getEntityId() % 2) - 0.5); + + this.motionX *= 0.65D; + this.motionZ *= 0.65D; + + this.moveEntity(this.motionX, this.motionY, this.motionZ); + } + + @Override + public void renderParticle(Tessellator tess, float interp, float sX, float sY, float sZ, float dX, float dZ) { + + double ageScaled = (double) (this.particleAge + interp) / (double) this.particleMaxAge; + + Color color = Color.getHSBColor(hue / 255F, Math.max(1F - (float) ageScaled * 2F, 0), MathHelper.clamp_float(1.25F - (float) ageScaled * 2F, hue * 0.01F - 0.1F, 1F)); + this.particleRed = color.getRed() / 255F; + this.particleGreen = color.getGreen() / 255F; + this.particleBlue = color.getBlue() / 255F; + + this.particleAlpha = (float) Math.pow(1 - Math.min(ageScaled, 1), 0.25); + + tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha * 0.5F); + tess.setNormal(0.0F, 1.0F, 0.0F); + + double scale = (0.25 + 1 - Math.pow(1 - ageScaled, 4) + (this.particleAge + interp) * 0.02) * this.particleScale; + renderParticleRotated(tess, interp, sX, sY, sZ, dX, dZ, scale); + } +} diff --git a/src/main/java/com/hbm/particle/ParticleFlamethrower.java b/src/main/java/com/hbm/particle/ParticleFlamethrower.java new file mode 100644 index 000000000..636ef82a9 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleFlamethrower.java @@ -0,0 +1,80 @@ +package com.hbm.particle; + +import java.awt.Color; + +import com.hbm.main.ModEventHandlerClient; +import com.hbm.particle.helper.FlameCreator; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleFlamethrower extends EntityFXRotating { + + public ParticleFlamethrower(World world, double x, double y, double z, int type) { + super(world, x, y, z); + particleIcon = ModEventHandlerClient.particleBase; + this.particleMaxAge = 20 + rand.nextInt(10); + this.particleScale = 0.5F; + + this.motionX = world.rand.nextGaussian() * 0.02; + this.motionZ = world.rand.nextGaussian() * 0.02; + + float initialColor = 15F + rand.nextFloat() * 25F; + + if(type == FlameCreator.META_BALEFIRE) initialColor = 65F + rand.nextFloat() * 35F; + if(type == FlameCreator.META_DIGAMMA) initialColor = 0F - rand.nextFloat() * 15F; + + Color color = Color.getHSBColor(initialColor / 255F, 1F, 1F); + this.particleRed = color.getRed() / 255F; + this.particleGreen = color.getGreen() / 255F; + this.particleBlue = color.getBlue() / 255F; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.particleAge++; + + if(this.particleAge >= this.particleMaxAge) { + this.setDead(); + } + + this.motionX *= 0.91D; + this.motionY *= 0.91D; + this.motionZ *= 0.91D; + + this.motionY += 0.01D; + this.prevRotationPitch = this.rotationPitch; + this.rotationPitch += 30 * ((this.getEntityId() % 2) - 0.5); + + this.moveEntity(this.motionX, this.motionY, this.motionZ); + } + + @Override + public void renderParticle(Tessellator tess, float interp, float sX, float sY, float sZ, float dX, float dZ) { + + double ageScaled = (double) this.particleAge / (double) this.particleMaxAge; + + this.particleAlpha = (float) Math.pow(1 - Math.min(ageScaled, 1), 0.5); + float add = 0.75F - (float) ageScaled; + + tess.setColorRGBA_F(this.particleRed + add, this.particleGreen + add, this.particleBlue + add, this.particleAlpha * 0.5F); + tess.setNormal(0.0F, 1.0F, 0.0F); + tess.setBrightness(240); + + double scale = (ageScaled * 1.25 + 0.25) * particleScale; + renderParticleRotated(tess, interp, sX, sY, sZ, dX, dZ, scale); + } + + @Override + @SideOnly(Side.CLIENT) + public int getBrightnessForRender(float p_70070_1_) { + return 15728880; + } +} diff --git a/src/main/java/com/hbm/particle/ParticleFoundry.java b/src/main/java/com/hbm/particle/ParticleFoundry.java index ff224f350..bd113eb3f 100644 --- a/src/main/java/com/hbm/particle/ParticleFoundry.java +++ b/src/main/java/com/hbm/particle/ParticleFoundry.java @@ -82,7 +82,7 @@ public class ParticleFoundry extends EntityFX { int r = (int) (255D - (255D - color.getRed()) * brightener); int g = (int) (255D - (255D - color.getGreen()) * brightener); int b = (int) (255D - (255D - color.getBlue()) * brightener); - + GL11.glColor3f(r / 255F, g / 255F, b / 255F); GL11.glPushMatrix(); @@ -170,9 +170,8 @@ public class ParticleFoundry extends EntityFX { tess.addVertexWithUV(dirXG - rotXW, 0, dirZG - rotZW, uMin, vMin + add + 0.75); tess.addVertexWithUV(-rotXW, girth, -rotZW, uMin, vMax + add + 0.75); tess.addVertexWithUV(rotXW, girth, rotZW, uMax, vMax + add + 0.75); - - tess.draw(); + tess.draw(); GL11.glColor3f(1F, 1F, 1F); GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/src/main/java/com/hbm/particle/ParticleGiblet.java b/src/main/java/com/hbm/particle/ParticleGiblet.java index c09a00799..a5fdd3439 100644 --- a/src/main/java/com/hbm/particle/ParticleGiblet.java +++ b/src/main/java/com/hbm/particle/ParticleGiblet.java @@ -9,10 +9,12 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -66,6 +68,7 @@ public class ParticleGiblet extends EntityFX { GL11.glPushMatrix(); GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); this.theRenderEngine.bindTexture(texture); /* use this instead of EntityFX.interpPosN since interpPosN isn't set up correctly for the current tick for layer 3 particles */ @@ -79,9 +82,17 @@ public class ParticleGiblet extends EntityFX { float f12 = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - dY); float f13 = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - dZ); + double pX = prevPosX + (posX - prevPosX) * interp; + double pY = prevPosY + (posY - prevPosY) * interp; + double pZ = prevPosZ + (posZ - prevPosZ) * interp; + int brightness = worldObj.getLightBrightnessForSkyBlocks(MathHelper.floor_double(pX), MathHelper.floor_double(pY), MathHelper.floor_double(pZ), 0); + int lX = brightness % 65536; + int lY = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); + tess.startDrawingQuads(); tess.setNormal(0.0F, 1.0F, 0.0F); - tess.setBrightness(240); + //tess.setBrightness(240); tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); tess.addVertexWithUV((double) (f11 - x * f10 - tx * f10), (double) (f12 - y * f10), (double) (f13 - z * f10 - tz * f10), (double) 0, (double) 0); tess.addVertexWithUV((double) (f11 - x * f10 + tx * f10), (double) (f12 + y * f10), (double) (f13 - z * f10 + tz * f10), (double) 0, (double) 1); diff --git a/src/main/java/com/hbm/particle/ParticleHadron.java b/src/main/java/com/hbm/particle/ParticleHadron.java index 923ca8b58..46b5e3d7c 100644 --- a/src/main/java/com/hbm/particle/ParticleHadron.java +++ b/src/main/java/com/hbm/particle/ParticleHadron.java @@ -6,10 +6,12 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -50,11 +52,16 @@ public class ParticleHadron extends EntityFX { float scale = (this.particleAge + interp) * 0.15F; tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, this.particleAlpha); + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)interp; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)interp; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; - float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double)interp - interpPosX); - float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double)interp - interpPosY); - float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double)interp - interpPosZ); - + double pX = this.prevPosX + (this.posX - this.prevPosX) * (double) interp - dX; + double pY = this.prevPosY + (this.posY - this.prevPosY) * (double) interp - dY; + double pZ = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - dZ; + tess.addVertexWithUV((double)(pX - x * scale - tx * scale), (double)(pY - y * scale), (double)(pZ - z * scale - tz * scale), 1, 1); tess.addVertexWithUV((double)(pX - x * scale + tx * scale), (double)(pY + y * scale), (double)(pZ - z * scale + tz * scale), 1, 0); tess.addVertexWithUV((double)(pX + x * scale + tx * scale), (double)(pY + y * scale), (double)(pZ + z * scale + tz * scale), 0, 0); @@ -63,6 +70,7 @@ public class ParticleHadron extends EntityFX { GL11.glPolygonOffset(0.0F, 0.0F); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_LIGHTING); } } diff --git a/src/main/java/com/hbm/particle/ParticleLargeFlame.java b/src/main/java/com/hbm/particle/ParticleLargeFlame.java deleted file mode 100644 index 38e96e04b..000000000 --- a/src/main/java/com/hbm/particle/ParticleLargeFlame.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.hbm.particle; - -import net.minecraft.client.particle.EntityFX; -import net.minecraft.world.World; - -//TODO: everything -public class ParticleLargeFlame extends EntityFX { - - protected ParticleLargeFlame(World world, double x, double y, double z) { - super(world, x, y, z); - } -} diff --git a/src/main/java/com/hbm/particle/ParticleMukeCloud.java b/src/main/java/com/hbm/particle/ParticleMukeCloud.java index b9b479b2a..e265396ea 100644 --- a/src/main/java/com/hbm/particle/ParticleMukeCloud.java +++ b/src/main/java/com/hbm/particle/ParticleMukeCloud.java @@ -54,27 +54,29 @@ public class ParticleMukeCloud extends EntityFX { return 3; } - public void onUpdate() { - - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; + public void onUpdate() { + + this.noClip = this.particleAge <= 2; - if (this.particleAge++ >= this.particleMaxAge - 2) { - this.setDead(); - } + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; - this.motionY -= 0.04D * (double)this.particleGravity; - this.moveEntity(this.motionX, this.motionY, this.motionZ); - this.motionX *= friction; - this.motionY *= friction; - this.motionZ *= friction; + if(this.particleAge++ >= this.particleMaxAge - 2) { + this.setDead(); + } - if (this.onGround) { - this.motionX *= 0.7D; - this.motionZ *= 0.7D; - } - } + this.motionY -= 0.04D * (double) this.particleGravity; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= friction; + this.motionY *= friction; + this.motionZ *= friction; + + if(this.onGround) { + this.motionX *= 0.7D; + this.motionZ *= 0.7D; + } + } public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { diff --git a/src/main/java/com/hbm/particle/ParticleMukeFlash.java b/src/main/java/com/hbm/particle/ParticleMukeFlash.java index 9510c5e47..407439029 100644 --- a/src/main/java/com/hbm/particle/ParticleMukeFlash.java +++ b/src/main/java/com/hbm/particle/ParticleMukeFlash.java @@ -21,9 +21,9 @@ public class ParticleMukeFlash extends EntityFX { private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/flare.png"); private TextureManager theRenderEngine; - + boolean bf; - + public ParticleMukeFlash(TextureManager texman, World world, double x, double y, double z, boolean bf) { super(world, x, y, z); this.theRenderEngine = texman; @@ -34,55 +34,57 @@ public class ParticleMukeFlash extends EntityFX { public int getFXLayer() { return 3; } - - public void onUpdate() { - super.onUpdate(); - - if(this.particleAge == 15) { - - //Stem - for(double d = 0.0D; d <= 1.8D; d += 0.1) { - ParticleMukeCloud cloud = getCloud(theRenderEngine, worldObj, posX, posY, posZ, rand.nextGaussian() * 0.05, d + rand.nextGaussian() * 0.02, rand.nextGaussian() * 0.05); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); - } - - //Ground - for(int i = 0; i < 100; i++) { - ParticleMukeCloud cloud = getCloud(theRenderEngine, worldObj, posX, posY + 0.5, posZ, rand.nextGaussian() * 0.5, rand.nextInt(5) == 0 ? 0.02 : 0, rand.nextGaussian() * 0.5); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); - } - - //Mush - for(int i = 0; i < 75; i++) { - double x = rand.nextGaussian() * 0.5; - double z = rand.nextGaussian() * 0.5; - - if(x * x + z * z > 1.5) { - x *= 0.5; - z *= 0.5; - } - - double y = 1.8 + (rand.nextDouble() * 3 - 1.5) * (0.75 - (x * x + z * z)) * 0.5; - - ParticleMukeCloud cloud = getCloud(theRenderEngine, worldObj, posX, posY, posZ, x, y + rand.nextGaussian() * 0.02, z); - Minecraft.getMinecraft().effectRenderer.addEffect(cloud); - } - } - } - - private ParticleMukeCloud getCloud(TextureManager texman, World world, double x, double y, double z, double mx, double my, double mz) { - - if(this.bf) { - return new ParticleMukeCloudBF(theRenderEngine, world, x, y, z, mx, my, mz); - } else { - return new ParticleMukeCloud(theRenderEngine, world, x, y, z, mx, my, mz); - } - } + + public void onUpdate() { + super.onUpdate(); + + if(this.particleAge == 15) { + + // Stem + for(double d = 0.0D; d <= 1.8D; d += 0.1) { + ParticleMukeCloud cloud = getCloud(theRenderEngine, worldObj, posX, posY, posZ, rand.nextGaussian() * 0.05, d + rand.nextGaussian() * 0.02, rand.nextGaussian() * 0.05); + Minecraft.getMinecraft().effectRenderer.addEffect(cloud); + } + + // Ground + for(int i = 0; i < 100; i++) { + ParticleMukeCloud cloud = getCloud(theRenderEngine, worldObj, posX, posY + 0.5, posZ, rand.nextGaussian() * 0.5, rand.nextInt(5) == 0 ? 0.02 : 0, rand.nextGaussian() * 0.5); + Minecraft.getMinecraft().effectRenderer.addEffect(cloud); + } + + // Mush + for(int i = 0; i < 75; i++) { + double x = rand.nextGaussian() * 0.5; + double z = rand.nextGaussian() * 0.5; + + if(x * x + z * z > 1.5) { + x *= 0.5; + z *= 0.5; + } + + double y = 1.8 + (rand.nextDouble() * 3 - 1.5) * (0.75 - (x * x + z * z)) * 0.5; + + ParticleMukeCloud cloud = getCloud(theRenderEngine, worldObj, posX, posY, posZ, x, y + rand.nextGaussian() * 0.02, z); + Minecraft.getMinecraft().effectRenderer.addEffect(cloud); + } + } + } + + private ParticleMukeCloud getCloud(TextureManager texman, World world, double x, double y, double z, double mx, double my, double mz) { + + if(this.bf) { + return new ParticleMukeCloudBF(theRenderEngine, world, x, y, z, mx, my, mz); + } else { + return new ParticleMukeCloud(theRenderEngine, world, x, y, z, mx, my, mz); + } + } public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { - + this.theRenderEngine.bindTexture(texture); - + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + if(fog) GL11.glDisable(GL11.GL_FOG); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_BLEND); @@ -90,40 +92,41 @@ public class ParticleMukeFlash extends EntityFX { GL11.glAlphaFunc(GL11.GL_GREATER, 0); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); RenderHelper.disableStandardItemLighting(); - + tess.startDrawingQuads(); - + tess.setNormal(0.0F, 1.0F, 0.0F); tess.setBrightness(240); - - this.particleAlpha = 1 - (((float)this.particleAge + interp) / (float)this.particleMaxAge); + + this.particleAlpha = 1 - (((float) this.particleAge + interp) / (float) this.particleMaxAge); float scale = (this.particleAge + interp) * 3F + 1F; - + tess.setColorRGBA_F(1.0F, 0.9F, 0.75F, this.particleAlpha * 0.5F); float dX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); float dY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); float dZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); - + Random rand = new Random(); for(int i = 0; i < 24; i++) { - + rand.setSeed(i * 31 + 1); float pX = (float) (dX + rand.nextDouble() * 15 - 7.5); float pY = (float) (dY + rand.nextDouble() * 7.5 - 3.75); float pZ = (float) (dZ + rand.nextDouble() * 15 - 7.5); - + tess.addVertexWithUV((double) (pX - x * scale - tx * scale), (double) (pY - y * scale), (double) (pZ - z * scale - tz * scale), 1, 1); tess.addVertexWithUV((double) (pX - x * scale + tx * scale), (double) (pY + y * scale), (double) (pZ - z * scale + tz * scale), 1, 0); tess.addVertexWithUV((double) (pX + x * scale + tx * scale), (double) (pY + y * scale), (double) (pZ + z * scale + tz * scale), 0, 0); tess.addVertexWithUV((double) (pX + x * scale - tx * scale), (double) (pY - y * scale), (double) (pZ + z * scale - tz * scale), 0, 1); } tess.draw(); - + GL11.glPolygonOffset(0.0F, 0.0F); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glEnable(GL11.GL_LIGHTING); + if(fog) GL11.glEnable(GL11.GL_FOG); } } diff --git a/src/main/java/com/hbm/particle/ParticleMukeWave.java b/src/main/java/com/hbm/particle/ParticleMukeWave.java index 54267a38e..1c147ba02 100644 --- a/src/main/java/com/hbm/particle/ParticleMukeWave.java +++ b/src/main/java/com/hbm/particle/ParticleMukeWave.java @@ -18,6 +18,8 @@ public class ParticleMukeWave extends EntityFX { private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/shockwave.png"); private TextureManager theRenderEngine; + + private float waveScale = 45F; public ParticleMukeWave(TextureManager texman,World world, double x, double y, double z) { super(world, x, y, z); @@ -28,6 +30,11 @@ public class ParticleMukeWave extends EntityFX { public int getFXLayer() { return 3; } + + public void setup(float scale, int maxAge) { + this.waveScale = scale; + this.particleMaxAge = maxAge; + } public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { @@ -41,6 +48,9 @@ public class ParticleMukeWave extends EntityFX { GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); GL11.glDisable(GL11.GL_CULL_FACE); RenderHelper.disableStandardItemLighting(); + + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + if(fog) GL11.glDisable(GL11.GL_FOG); tess.startDrawingQuads(); @@ -48,14 +58,14 @@ public class ParticleMukeWave extends EntityFX { tess.setBrightness(240); this.particleAlpha = 1 - (((float)this.particleAge + interp) / (float)this.particleMaxAge); - float scale = (1 - (float)Math.pow(Math.E, (this.particleAge + interp) * -0.125)) * 45; + float scale = (1 - (float)Math.pow(Math.E, (this.particleAge + interp) * -0.125)) * waveScale; tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, this.particleAlpha); - float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double)interp - interpPosX); - float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double)interp - interpPosY); - float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double)interp - interpPosZ); - + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + tess.addVertexWithUV((double)(pX - 1 * scale), (double)(pY - 0.25), (double)(pZ - 1 * scale), 1, 1); tess.addVertexWithUV((double)(pX - 1 * scale), (double)(pY - 0.25), (double)(pZ + 1 * scale), 1, 0); tess.addVertexWithUV((double)(pX + 1 * scale), (double)(pY - 0.25), (double)(pZ + 1 * scale), 0, 0); @@ -66,5 +76,6 @@ public class ParticleMukeWave extends EntityFX { GL11.glEnable(GL11.GL_CULL_FACE); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glEnable(GL11.GL_LIGHTING); + if(fog) GL11.glEnable(GL11.GL_FOG); } } diff --git a/src/main/java/com/hbm/particle/ParticlePlasmaBlast.java b/src/main/java/com/hbm/particle/ParticlePlasmaBlast.java index 18430e811..8f449ef14 100644 --- a/src/main/java/com/hbm/particle/ParticlePlasmaBlast.java +++ b/src/main/java/com/hbm/particle/ParticlePlasmaBlast.java @@ -7,6 +7,7 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; @@ -76,17 +77,18 @@ public class ParticlePlasmaBlast extends EntityFX { tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); - tess.addVertexWithUV((double)(- 1 * scale), (double)(- 0.25), (double)(- 1 * scale), 1, 1); - tess.addVertexWithUV((double)(- 1 * scale), (double)(- 0.25), (double)(+ 1 * scale), 1, 0); - tess.addVertexWithUV((double)(+ 1 * scale), (double)(- 0.25), (double)(+ 1 * scale), 0, 0); - tess.addVertexWithUV((double)(+ 1 * scale), (double)(- 0.25), (double)(- 1 * scale), 0, 1); + tess.addVertexWithUV((double)(- 1 * scale), 0, (double)(- 1 * scale), 1, 1); + tess.addVertexWithUV((double)(- 1 * scale), 0, (double)(+ 1 * scale), 1, 0); + tess.addVertexWithUV((double)(+ 1 * scale), 0, (double)(+ 1 * scale), 0, 0); + tess.addVertexWithUV((double)(+ 1 * scale), 0, (double)(- 1 * scale), 0, 1); tess.draw(); if(fog) GL11.glEnable(GL11.GL_FOG); GL11.glPolygonOffset(0.0F, 0.0F); - GL11.glEnable(GL11.GL_CULL_FACE); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthMask(true); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/particle/ParticleRBMKFlame.java b/src/main/java/com/hbm/particle/ParticleRBMKFlame.java index 262e407cc..c3452431e 100644 --- a/src/main/java/com/hbm/particle/ParticleRBMKFlame.java +++ b/src/main/java/com/hbm/particle/ParticleRBMKFlame.java @@ -34,6 +34,8 @@ public class ParticleRBMKFlame extends EntityFX { public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { this.theRenderEngine.bindTexture(getTexture()); + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + if(fog) GL11.glDisable(GL11.GL_FOG); GL11.glPushMatrix(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); @@ -93,6 +95,7 @@ public class ParticleRBMKFlame extends EntityFX { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_BLEND); GL11.glPopMatrix(); + if(fog) GL11.glEnable(GL11.GL_FOG); } protected ResourceLocation getTexture() { diff --git a/src/main/java/com/hbm/particle/ParticleRocketFlame.java b/src/main/java/com/hbm/particle/ParticleRocketFlame.java index 72981706a..ac60a5bf5 100644 --- a/src/main/java/com/hbm/particle/ParticleRocketFlame.java +++ b/src/main/java/com/hbm/particle/ParticleRocketFlame.java @@ -21,8 +21,20 @@ public class ParticleRocketFlame extends EntityFX { super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); particleIcon = ModEventHandlerClient.particleBase; maxAge = 300 + rand.nextInt(50); + this.particleScale = 1F; + } + + public ParticleRocketFlame setScale(float scale) { + this.particleScale = scale; + return this; + } + + public ParticleRocketFlame setMaxAge(int maxAge) { + this.maxAge = maxAge; + return this; } + @Override public void onUpdate() { this.prevPosX = this.posX; this.prevPosY = this.posY; @@ -30,51 +42,54 @@ public class ParticleRocketFlame extends EntityFX { this.age++; - if (this.age == this.maxAge) { + if(this.age == this.maxAge) { this.setDead(); } - this.motionX *= 0.9099999785423279D; - this.motionY *= 0.9099999785423279D; - this.motionZ *= 0.9099999785423279D; + this.motionX *= 0.91D; + this.motionY *= 0.91D; + this.motionZ *= 0.91D; - this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.moveEntity(this.motionX, this.motionY, this.motionZ); } + @Override public int getFXLayer() { - return 1; - } - - public void renderParticle(Tessellator p_70539_1_, float p_70539_2_, float p_70539_3_, float p_70539_4_, float p_70539_5_, float p_70539_6_, float p_70539_7_) { - - Random urandom = new Random(this.getEntityId()); - - for(int i = 0; i < 10; i++) { - - float add = urandom.nextFloat() * 0.3F; - float dark = 1 - Math.min(((float)(age) / (float)(maxAge * 0.25F)), 1); - - this.particleRed = 1 * dark + add; - this.particleGreen = 0.6F * dark + add; - this.particleBlue = 0 + add; - - this.particleAlpha = (float) Math.pow(1 - Math.min(((float)(age) / (float)(maxAge)), 1), 0.5); - - p_70539_1_.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha * 0.75F); - p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); - p_70539_1_.setBrightness(240); - - float spread = (float) Math.pow(((float)(age) / (float)maxAge) * 4F, 1.5) + 1F; - - float scale = urandom.nextFloat() * 0.5F + 0.1F + ((float)(age) / (float)maxAge) * 2F; - float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double)p_70539_2_ - interpPosX) + (urandom.nextGaussian() - 1D) * 0.2F * spread); - float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double)p_70539_2_ - interpPosY) + (urandom.nextGaussian() - 1D) * 0.5F * spread); - float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double)p_70539_2_ - interpPosZ) + (urandom.nextGaussian() - 1D) * 0.2F * spread); - - p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale - p_70539_7_ * scale), particleIcon.getMaxU(), particleIcon.getMaxV()); - p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale + p_70539_7_ * scale), particleIcon.getMaxU(), particleIcon.getMinV()); - p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale + p_70539_7_ * scale), particleIcon.getMinU(), particleIcon.getMinV()); - p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale - p_70539_7_ * scale), particleIcon.getMinU(), particleIcon.getMaxV()); - } - } + return 1; + } + + @Override + public void renderParticle(Tessellator p_70539_1_, float interp, float sX, float sY, float sZ, float dX, float dZ) { + + Random urandom = new Random(this.getEntityId()); + + for(int i = 0; i < 10; i++) { + + float add = urandom.nextFloat() * 0.3F; + float dark = 1 - Math.min(((float) (age) / (float) (maxAge * 0.25F)), 1); + + this.particleRed = 1 * dark + add; + this.particleGreen = 0.6F * dark + add; + this.particleBlue = 0 + add; + + this.particleAlpha = (float) Math.pow(1 - Math.min(((float) (age) / (float) (maxAge)), 1), 0.5); + + p_70539_1_.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha * 0.75F); + p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); + p_70539_1_.setBrightness(240); + + float spread = (float) Math.pow(((float) (age) / (float) maxAge) * 4F, 1.5) + 1F; + spread *= this.particleScale; + + float scale = (urandom.nextFloat() * 0.5F + 0.1F + ((float) (age) / (float) maxAge) * 2F) * particleScale; + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX) + (urandom.nextGaussian() - 1D) * 0.2F * spread); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY) + (urandom.nextGaussian() - 1D) * 0.5F * spread); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ) + (urandom.nextGaussian() - 1D) * 0.2F * spread); + + p_70539_1_.addVertexWithUV((double) (pX - sX * scale - dX * scale), (double) (pY - sY * scale), (double) (pZ - sZ * scale - dZ * scale), particleIcon.getMaxU(), particleIcon.getMaxV()); + p_70539_1_.addVertexWithUV((double) (pX - sX * scale + dX * scale), (double) (pY + sY * scale), (double) (pZ - sZ * scale + dZ * scale), particleIcon.getMaxU(), particleIcon.getMinV()); + p_70539_1_.addVertexWithUV((double) (pX + sX * scale + dX * scale), (double) (pY + sY * scale), (double) (pZ + sZ * scale + dZ * scale), particleIcon.getMinU(), particleIcon.getMinV()); + p_70539_1_.addVertexWithUV((double) (pX + sX * scale - dX * scale), (double) (pY - sY * scale), (double) (pZ + sZ * scale - dZ * scale), particleIcon.getMinU(), particleIcon.getMaxV()); + } + } } diff --git a/src/main/java/com/hbm/particle/ParticleSkeleton.java b/src/main/java/com/hbm/particle/ParticleSkeleton.java new file mode 100644 index 000000000..a3eb3f4c9 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleSkeleton.java @@ -0,0 +1,161 @@ +package com.hbm.particle; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.particle.helper.SkeletonCreator.EnumSkeletonType; +import com.hbm.render.loader.HFRWavefrontObject; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.client.model.IModelCustom; + +@SideOnly(Side.CLIENT) +public class ParticleSkeleton extends EntityFX { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/skeleton.png"); + public static final ResourceLocation texture_ext = new ResourceLocation(RefStrings.MODID + ":textures/particle/skoilet.png"); + public static final IModelCustom skeleton = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/skeleton.obj"), false).asVBO(); + protected EnumSkeletonType type; + + private float momentumYaw; + private float momentumPitch; + private int initialDelay; + + private final TextureManager textureManager; + + public ParticleSkeleton(TextureManager textureManager, World world, double x, double y, double z, float r, float g, float b, EnumSkeletonType type) { + super(world, x, y, z); + this.textureManager = textureManager; + this.type = type; + + this.particleMaxAge = 1200 + rand.nextInt(20); + + this.particleRed = r; + this.particleGreen = g; + this.particleBlue = b; + this.particleGravity = 0.02F; + this.initialDelay = 20; + + this.momentumPitch = rand.nextFloat() * 5 * (rand.nextBoolean() ? 1 : -1); + this.momentumYaw = rand.nextFloat() * 5 * (rand.nextBoolean() ? 1 : -1); + } + + @Override + public void onUpdate() { + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + this.prevRotationPitch = this.rotationPitch; + this.prevRotationYaw = this.rotationYaw; + + if(initialDelay-- > 0) return; + + if(initialDelay == -1) { + this.motionX = rand.nextGaussian() * 0.025; + this.motionZ = rand.nextGaussian() * 0.025; + } + + if(this.particleAge++ >= this.particleMaxAge) { + this.setDead(); + } + boolean wasOnGround = this.onGround; + + this.motionY -= this.particleGravity; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.98D; + this.motionY *= 0.98D; + this.motionZ *= 0.98D; + + if(!this.onGround) { + this.rotationPitch += this.momentumPitch; + this.rotationYaw += this.momentumYaw; + } else { + this.motionX = 0; + this.motionY = 0; + this.motionZ = 0; + + if(!wasOnGround) { + MainRegistry.proxy.playSoundClient(posX, posY, posZ, "mob.skeleton.hurt", 0.25F, 0.8F + rand.nextFloat() * 0.4F); + } + } + } + + @Override + public int getFXLayer() { + return 3; + } + + @Override + public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + RenderHelper.enableStandardItemLighting(); + + double pX = prevPosX + (posX - prevPosX) * interp; + double pY = prevPosY + (posY - prevPosY) * interp; + double pZ = prevPosZ + (posZ - prevPosZ) * interp; + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)interp; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)interp; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; + + GL11.glTranslated(pX - dX, pY - dY, pZ - dZ); + + GL11.glRotated(this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * interp, 0, 1, 0); + GL11.glRotated(this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * interp, 1, 0, 0); + + float timeLeft = this.particleMaxAge - (this.particleAge + interp); + if(timeLeft < 40) { + this.particleAlpha = timeLeft / 40F; + } else { + this.particleAlpha = 1F; + } + + int brightness = worldObj.getLightBrightnessForSkyBlocks(MathHelper.floor_double(pX), MathHelper.floor_double(pY), MathHelper.floor_double(pZ), 0); + int lX = brightness % 65536; + int lY = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); + + GL11.glColor4f(particleRed, particleGreen, particleBlue, particleAlpha); + GL11.glRotated(-90, 0, 1, 0); + + switch(type) { + case SKULL: + this.textureManager.bindTexture(texture); + skeleton.renderPart("Skull"); break; + case TORSO: + this.textureManager.bindTexture(texture); + skeleton.renderPart("Torso"); break; + case LIMB: + this.textureManager.bindTexture(texture); + skeleton.renderPart("Limb"); break; + case SKULL_VILLAGER: + this.textureManager.bindTexture(texture_ext); + skeleton.renderPart("SkullVillager"); break; + } + + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/particle/ParticleSmokePlume.java b/src/main/java/com/hbm/particle/ParticleSmokePlume.java index bc6c9c2c5..9ccd4d6ee 100644 --- a/src/main/java/com/hbm/particle/ParticleSmokePlume.java +++ b/src/main/java/com/hbm/particle/ParticleSmokePlume.java @@ -8,11 +8,13 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -28,7 +30,8 @@ public class ParticleSmokePlume extends EntityFX { public ParticleSmokePlume(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_) { super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); theRenderEngine = p_i1213_1_; - maxAge = 100 + rand.nextInt(40); + maxAge = 80 + rand.nextInt(20); + this.particleScale = 0.25F; } public void onUpdate() { @@ -37,6 +40,8 @@ public class ParticleSmokePlume extends EntityFX { this.prevPosZ = this.posZ; particleAlpha = 1 - ((float) age / (float) maxAge); + float prevScale = this.particleScale; + this.particleScale = 0.25F + ((float) age / (float) maxAge) * 2; ++this.age; @@ -46,9 +51,9 @@ public class ParticleSmokePlume extends EntityFX { double bak = Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector(); - this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.moveEntity(this.motionX, this.motionY + (this.particleScale - prevScale), this.motionZ); - if(Math.abs(motionX) < 0.025 && Math.abs(motionZ) < 0.025) { + if(this.isCollidedVertically) { motionY = bak; } @@ -73,21 +78,26 @@ public class ParticleSmokePlume extends EntityFX { RenderHelper.disableStandardItemLighting(); Random urandom = new Random(this.getEntityId()); + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)p_70539_2_; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)p_70539_2_; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)p_70539_2_; for(int i = 0; i < 6; i++) { p_70539_1_.startDrawingQuads(); - this.particleRed = this.particleGreen = this.particleBlue = urandom.nextFloat() * 0.7F + 0.2F; + this.particleRed = this.particleGreen = this.particleBlue = urandom.nextFloat() * 0.75F + 0.1F; p_70539_1_.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); p_70539_1_.setBrightness(240); - float scale = 0.5F; - float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - interpPosX) + urandom.nextGaussian() * 0.5); - float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - interpPosY) + urandom.nextGaussian() * 0.5); - float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - interpPosZ) + urandom.nextGaussian() * 0.5); + float scale = this.particleScale; + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) p_70539_2_ - dX) + urandom.nextGaussian() * 0.5 * scale); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) p_70539_2_ - dY) + urandom.nextGaussian() * 0.5 * scale); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) p_70539_2_ - dZ) + urandom.nextGaussian() * 0.5 * scale); p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale - p_70539_6_ * scale), (double) (pY - p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale - p_70539_7_ * scale), 1, 1); p_70539_1_.addVertexWithUV((double) (pX - p_70539_3_ * scale + p_70539_6_ * scale), (double) (pY + p_70539_4_ * scale), (double) (pZ - p_70539_5_ * scale + p_70539_7_ * scale), 1, 0); diff --git a/src/main/java/com/hbm/particle/ParticleSpentCasing.java b/src/main/java/com/hbm/particle/ParticleSpentCasing.java index 59e6ae201..a21aad162 100644 --- a/src/main/java/com/hbm/particle/ParticleSpentCasing.java +++ b/src/main/java/com/hbm/particle/ParticleSpentCasing.java @@ -42,10 +42,8 @@ public class ParticleSpentCasing extends EntityFX { private boolean isSmoking; private float momentumPitch, momentumYaw; - private boolean onGroundPreviously = false; - private double maxHeight; - public ParticleSpentCasing(TextureManager textureManager, World world, double x, double y, double z, double mx, double my, double mz, float momentumPitch, float momentumYaw, SpentCasing config) { + public ParticleSpentCasing(TextureManager textureManager, World world, double x, double y, double z, double mx, double my, double mz, float momentumPitch, float momentumYaw, SpentCasing config, boolean smoking, int smokeLife, double smokeLift, int nodeLife) { super(world, x, y, z, 0, 0, 0); this.textureManager = textureManager; this.momentumPitch = momentumPitch; @@ -53,10 +51,11 @@ public class ParticleSpentCasing extends EntityFX { this.config = config; this.particleMaxAge = config.getMaxAge(); - this.isSmoking = rand.nextFloat() < config.getSmokeChance(); - this.maxSmokeGen = config.getSmokeDuration(); - this.smokeLift = config.getSmokeLift(); - this.nodeLife = config.getSmokeNodeLife(); + + this.isSmoking = smoking; + this.maxSmokeGen = smokeLife; + this.smokeLift = smokeLift; + this.nodeLife = nodeLife; this.prevPosX = x; this.prevPosY = y; @@ -66,9 +65,7 @@ public class ParticleSpentCasing extends EntityFX { this.motionY = my; this.motionZ = mz; - particleGravity = 8F; - - maxHeight = y; + particleGravity = 1F; } @Override @@ -78,24 +75,34 @@ public class ParticleSpentCasing extends EntityFX { @Override public void onUpdate() { - super.onUpdate(); + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; - if(motionY > 0 && posY > maxHeight) - maxHeight = posY; + if(this.particleAge++ >= this.particleMaxAge) { + this.setDead(); + } - if(!onGroundPreviously && onGround) - tryPlayBounceSound(); + this.motionY -= 0.04D * (double) this.particleGravity; + double prevMotionY = this.motionY; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.98D; + this.motionY *= 0.98D; + this.motionZ *= 0.98D; - if(!onGroundPreviously && onGround) { + if(this.onGround) { + this.motionX *= 0.7D; + this.motionZ *= 0.7D; + } + + if(onGround) { + this.onGround = false; + motionY = prevMotionY * -0.5; + this.rotationPitch = 0; + //momentumPitch = (float) rand.nextGaussian() * config.getBouncePitch(); + //momentumYaw = (float) rand.nextGaussian() * config.getBounceYaw(); - onGroundPreviously = true; - motionY = Math.log10(maxHeight - posY + 2); - momentumPitch = (float) rand.nextGaussian() * config.getBouncePitch(); - momentumYaw = (float) rand.nextGaussian() * config.getBounceYaw(); - maxHeight = posY; - - } else if(onGroundPreviously && !onGround) { - onGroundPreviously = false; } if(particleAge > maxSmokeGen && !smokeNodes.isEmpty()) @@ -193,8 +200,6 @@ public class ParticleSpentCasing extends EntityFX { GL11.glPushMatrix(); GL11.glTranslated(pX - dX, pY - dY - this.height / 4, pZ - dZ); - //GL11.glScalef(dScale, dScale, dScale); - //GL11.glScalef(config.getScaleX(), config.getScaleY(), config.getScaleZ()); if(!smokeNodes.isEmpty()) { tessellator.startDrawingQuads(); @@ -271,24 +276,15 @@ public class ParticleSpentCasing extends EntityFX { @Override @SideOnly(Side.CLIENT) public int getBrightnessForRender(float p_70070_1_) { - int i = MathHelper.floor_double(this.posX); - int j = MathHelper.floor_double(this.posZ); + int x = MathHelper.floor_double(this.posX); + int z = MathHelper.floor_double(this.posZ); - if(this.worldObj.blockExists(i, 0, j)) { + if(this.worldObj.blockExists(x, 0, z)) { double d0 = (this.boundingBox.maxY - this.boundingBox.minY) * 0.66D; - int k = MathHelper.floor_double(this.posY - (double) this.yOffset + d0); - return this.worldObj.getLightBrightnessForSkyBlocks(i, k, j, 0); + int y = MathHelper.floor_double(this.posY - (double) this.yOffset + d0); + return this.worldObj.getLightBrightnessForSkyBlocks(x, y, z, 0); } else { return 0; - } - } - - private void tryPlayBounceSound() { - - String sound = config.getSound(); - - if(sound != null && !sound.isEmpty()) { - worldObj.playSoundAtEntity(this, sound, 2, 1); } } } \ No newline at end of file diff --git a/src/main/java/com/hbm/particle/ParticleSplash.java b/src/main/java/com/hbm/particle/ParticleSplash.java new file mode 100644 index 000000000..0411a3f62 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleSplash.java @@ -0,0 +1,68 @@ +package com.hbm.particle; + +import com.hbm.main.ModEventHandlerClient; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleSplash extends EntityFX { + + public ParticleSplash(TextureManager texman, World world, double x, double y, double z) { + super(world, x, y, z); + particleIcon = ModEventHandlerClient.particleSplash; + this.particleRed = this.particleGreen = this.particleBlue = 1F - world.rand.nextFloat() * 0.2F; + this.particleAlpha = 0.5F; + this.particleScale = 0.4F; + this.particleMaxAge = 200 + world.rand.nextInt(50); + this.particleGravity = 0.4F; + } + + public int getFXLayer() { + return 1; + } + + public void onUpdate() { + super.onUpdate(); + + if(!this.onGround) { + this.motionX += rand.nextGaussian() * 0.002D; + this.motionZ += rand.nextGaussian() * 0.002D; + + if(this.motionY < -0.5D) + this.motionY = -0.5D; + } else { + this.setDead(); + } + } + + @Override + public void renderParticle(Tessellator tess, float interp, float fX, float fY, float fZ, float sX, float sZ) { + + tess.setNormal(0.0F, 1.0F, 0.0F); + + tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); + + float scale = this.particleScale; + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + + boolean flipU = this.getEntityId() % 2 == 0; + boolean flipV = this.getEntityId() % 4 < 2; + + double minU = flipU ? particleIcon.getMaxU() : particleIcon.getMinU(); + double maxU = flipU ? particleIcon.getMinU() : particleIcon.getMaxU(); + double minV = flipV ? particleIcon.getMaxV() : particleIcon.getMinV(); + double maxV = flipV ? particleIcon.getMinV() : particleIcon.getMaxV(); + + tess.addVertexWithUV((double) (pX - fX * scale - sX * scale), (double) (pY - fY * scale), (double) (pZ - fZ * scale - sZ * scale), maxU, maxV); + tess.addVertexWithUV((double) (pX - fX * scale + sX * scale), (double) (pY + fY * scale), (double) (pZ - fZ * scale + sZ * scale), maxU, minV); + tess.addVertexWithUV((double) (pX + fX * scale + sX * scale), (double) (pY + fY * scale), (double) (pZ + fZ * scale + sZ * scale), minU, minV); + tess.addVertexWithUV((double) (pX + fX * scale - sX * scale), (double) (pY - fY * scale), (double) (pZ + fZ * scale - sZ * scale), minU, maxV); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/particle/SpentCasing.java b/src/main/java/com/hbm/particle/SpentCasing.java index a44534a3f..13f79ef89 100644 --- a/src/main/java/com/hbm/particle/SpentCasing.java +++ b/src/main/java/com/hbm/particle/SpentCasing.java @@ -9,14 +9,16 @@ import java.util.HashMap; public class SpentCasing implements Cloneable { public static final int COLOR_CASE_BRASS = 0xEBC35E; + public static final int COLOR_CASE_EQUESTRIAN = 0x957BA0; public static final int COLOR_CASE_12GA = 0x757575; public static final int COLOR_CASE_4GA = 0xD8D8D8; public static final int COLOR_CASE_44 = 0x3E3E3E; public static final int COLOR_CASE_16INCH = 0xD89128; public static final int COLOR_CASE_16INCH_PHOS = 0xC8C8C8; public static final int COLOR_CASE_16INCH_NUKE = 0x495443; + public static final int COLOR_CASE_40MM = 0x515151; - public static final HashMap casingMap = new HashMap(); + public static final HashMap casingMap = new HashMap(); public enum CasingType { STRAIGHT("Straight"), @@ -31,17 +33,13 @@ public class SpentCasing implements Cloneable { } } - private String registryName; + private String registryName = "CHANGEME"; private float scaleX = 1F; private float scaleY = 1F; private float scaleZ = 1F; private int[] colors; private CasingType type; private String bounceSound; - private float smokeChance; - private int smokeDuration; - private double smokeLift; - private int smokeNodeLife; private float bounceYaw = 0F; private float bouncePitch = 0F; private int maxAge = 240; @@ -82,13 +80,7 @@ public class SpentCasing implements Cloneable { return this; } - public SpentCasing setupSmoke(float chance, double lift, int duration, int nodeLife) { - this.smokeChance = chance; - this.smokeDuration = duration; - this.smokeLift = lift; - this.smokeNodeLife = nodeLife; - return this; - } + @Deprecated public SpentCasing setupSmoke(float chance, double lift, int duration, int nodeLife) { return this; } public static SpentCasing fromName(String name) { return casingMap.get(name); @@ -112,13 +104,9 @@ public class SpentCasing implements Cloneable { public int[] getColors() { return this.colors; } public CasingType getType() { return this.type; } public String getSound() { return this.bounceSound; } - public float getSmokeChance() { return this.smokeChance; } public float getBounceYaw() { return this.bounceYaw; } public float getBouncePitch() { return this.bouncePitch; } public int getMaxAge() { return this.maxAge; } - public int getSmokeDuration() { return this.smokeDuration; } - public double getSmokeLift() { return this.smokeLift; } - public int getSmokeNodeLife() { return this.smokeNodeLife; } @Override public SpentCasing clone() { diff --git a/src/main/java/com/hbm/particle/helper/AshesCreator.java b/src/main/java/com/hbm/particle/helper/AshesCreator.java new file mode 100644 index 000000000..56a36acc5 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/AshesCreator.java @@ -0,0 +1,54 @@ +package com.hbm.particle.helper; + +import java.util.Random; + +import com.hbm.main.ClientProxy; +import com.hbm.particle.ParticleAshes; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.EntityFlameFX; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class AshesCreator implements IParticleCreator { + + public static void composeEffect(World world, Entity toPulverize, int ashesCount, float ashesScale) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "ashes"); + data.setInteger("entityID", toPulverize.getEntityId()); + data.setInteger("ashesCount", ashesCount); + data.setFloat("ashesScale", ashesScale); + IParticleCreator.sendPacket(world, toPulverize.posX, toPulverize.posY, toPulverize.posZ, 100, data); + } + + @Override + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data) { + + int entityID = data.getInteger("entityID"); + Entity entity = world.getEntityByID(entityID); + if(entity == null) return; + + ClientProxy.vanish(entityID); + + int amount = data.getInteger("ashesCount"); + float scale = data.getFloat("ashesScale"); + + for(int i = 0; i < amount; i++) { + ParticleAshes particle = new ParticleAshes(world, + entity.posX + (entity.width + scale * 2) * (rand.nextDouble() - 0.5), + entity.posY + entity.height * rand.nextDouble(), + entity.posZ + (entity.width + scale * 2) * (rand.nextDouble() - 0.5), + scale); + Minecraft.getMinecraft().effectRenderer.addEffect(particle); + EntityFlameFX flame = new EntityFlameFX(world, particle.posX, particle.posY, particle.posZ, 0.0, 0.0, 0.0); + Minecraft.getMinecraft().effectRenderer.addEffect(flame); + } + } +} diff --git a/src/main/java/com/hbm/particle/helper/BlackPowderCreator.java b/src/main/java/com/hbm/particle/helper/BlackPowderCreator.java new file mode 100644 index 000000000..6705449f7 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/BlackPowderCreator.java @@ -0,0 +1,67 @@ +package com.hbm.particle.helper; + +import java.util.Random; + +import com.hbm.particle.ParticleBlackPowderSmoke; +import com.hbm.particle.ParticleBlackPowderSpark; +import com.hbm.util.Vec3NT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class BlackPowderCreator implements IParticleCreator { + + public static void composeEffect(World world, double x, double y, double z, double headingX, double headingY, double headingZ, int cloudCount, float cloudScale, float cloudSpeedMult, int sparkCount, float sparkSpeedMult) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "blackPowder"); + data.setInteger("cloudCount", cloudCount); + data.setFloat("cloudScale", cloudScale); + data.setFloat("cloudSpeedMult", cloudSpeedMult); + data.setInteger("sparkCount", sparkCount); + data.setFloat("sparkSpeedMult", sparkSpeedMult); + data.setDouble("hX", headingX); + data.setDouble("hY", headingY); + data.setDouble("hZ", headingZ); + IParticleCreator.sendPacket(world, x, y, z, 200, data); + } + + @Override + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data) { + + double headingX = data.getDouble("hX"); + double headingY = data.getDouble("hY"); + double headingZ = data.getDouble("hZ"); + int cloudCount = data.getInteger("cloudCount"); + float cloudScale = data.getFloat("cloudScale"); + float cloudSpeedMult = data.getFloat("cloudSpeedMult"); + int sparkCount = data.getInteger("sparkCount"); + float sparkSpeedMult = data.getFloat("sparkSpeedMult"); + + Vec3NT heading = new Vec3NT(headingX, headingY, headingZ).normalizeSelf(); + + for(int i = 0; i < cloudCount; i++) { + ParticleBlackPowderSmoke particle = new ParticleBlackPowderSmoke(world, x, y, z, cloudScale); + double speedMult = 0.85 + rand.nextDouble() * 0.3; + particle.motionX = heading.xCoord * cloudSpeedMult * speedMult + rand.nextGaussian() * 0.05; + particle.motionY = heading.yCoord * cloudSpeedMult * speedMult + rand.nextGaussian() * 0.05; + particle.motionZ = heading.zCoord * cloudSpeedMult * speedMult + rand.nextGaussian() * 0.05; + Minecraft.getMinecraft().effectRenderer.addEffect(particle); + } + + for(int i = 0; i < sparkCount; i++) { + double speedMult = 0.85 + rand.nextDouble() * 0.3; + ParticleBlackPowderSpark particle = new ParticleBlackPowderSpark(world, x, y, z, + heading.xCoord * sparkSpeedMult * speedMult + rand.nextGaussian() * 0.02, + heading.yCoord * sparkSpeedMult * speedMult + rand.nextGaussian() * 0.02, + heading.zCoord * sparkSpeedMult * speedMult + rand.nextGaussian() * 0.02); + Minecraft.getMinecraft().effectRenderer.addEffect(particle); + } + } +} diff --git a/src/main/java/com/hbm/particle/helper/CasingCreator.java b/src/main/java/com/hbm/particle/helper/CasingCreator.java new file mode 100644 index 000000000..967f6a381 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/CasingCreator.java @@ -0,0 +1,83 @@ +package com.hbm.particle.helper; + +import java.util.Random; + +import com.hbm.particle.ParticleSpentCasing; +import com.hbm.particle.SpentCasing; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class CasingCreator implements IParticleCreator { + + /** Casing without smoke */ + public static void composeEffect(World world, EntityLivingBase player, double frontOffset, double heightOffset, double sideOffset, double frontMotion, double heightMotion, double sideMotion, double motionVariance, String casing) { + composeEffect(world, player, frontOffset, heightOffset, sideOffset, frontMotion, heightMotion, sideMotion, motionVariance, casing, false, 0, 0, 0); + } + + public static void composeEffect(World world, EntityLivingBase player, double frontOffset, double heightOffset, double sideOffset, double frontMotion, double heightMotion, double sideMotion, double motionVariance, String casing, boolean smoking, int smokeLife, double smokeLift, int nodeLife) { + + if(player.isSneaking()) heightOffset -= 0.075F; + + Vec3 offset = Vec3.createVectorHelper(sideOffset, heightOffset, frontOffset); + offset.rotateAroundX(-player.rotationPitch / 180F * (float) Math.PI); + offset.rotateAroundY(-player.rotationYaw / 180F * (float) Math.PI); + + double x = player.posX + offset.xCoord; + double y = player.posY + player.getEyeHeight() + offset.yCoord; + double z = player.posZ + offset.zCoord; + + Vec3 motion = Vec3.createVectorHelper(sideMotion, heightMotion, frontMotion); + motion.rotateAroundX(-player.rotationPitch / 180F * (float) Math.PI); + motion.rotateAroundY(-player.rotationYaw / 180F * (float) Math.PI); + + double mX = player.motionX + motion.xCoord + player.getRNG().nextGaussian() * motionVariance; + double mY = player.motionY + motion.yCoord + player.getRNG().nextGaussian() * motionVariance; + double mZ = player.motionZ + motion.zCoord + player.getRNG().nextGaussian() * motionVariance; + + if(player instanceof EntityPlayer && ((EntityPlayer) player).capabilities.isFlying) mY -= 0.04D; + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "casingNT"); + data.setDouble("mX", mX); + data.setDouble("mY", mY); + data.setDouble("mZ", mZ); + data.setFloat("yaw", player.rotationYaw); + data.setFloat("pitch", player.rotationPitch); + data.setString("name", casing); + data.setBoolean("smoking", smoking); + data.setInteger("smokeLife", smokeLife); + data.setDouble("smokeLift", smokeLift); + data.setInteger("nodeLife", nodeLife); + + IParticleCreator.sendPacket(world, x, y, z, 50, data); + } + + @Override + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data) { + + String name = data.getString("name"); + SpentCasing casingConfig = SpentCasing.casingMap.get(name); + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + float yaw = data.getFloat("yaw"); + float pitch = data.getFloat("pitch"); + boolean smoking = data.getBoolean("smoking"); + int smokeLife = data.getInteger("smokeLife"); + double smokeLift = data.getDouble("smokeLift"); + int nodeLife = data.getInteger("nodeLife"); + ParticleSpentCasing casing = new ParticleSpentCasing(texman, world, x, y, z, mX, mY, mZ, 0, 0, casingConfig, smoking, smokeLife, smokeLift, nodeLife); + casing.prevRotationYaw = casing.rotationYaw = yaw; + casing.prevRotationPitch = casing.rotationPitch = pitch; + Minecraft.getMinecraft().effectRenderer.addEffect(casing); + } +} diff --git a/src/main/java/com/hbm/particle/helper/ExplosionCreator.java b/src/main/java/com/hbm/particle/helper/ExplosionCreator.java new file mode 100644 index 000000000..dc59694ff --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/ExplosionCreator.java @@ -0,0 +1,143 @@ +package com.hbm.particle.helper; + +import java.util.Random; + +import com.hbm.particle.ParticleDebris; +import com.hbm.particle.ParticleMukeWave; +import com.hbm.particle.ParticleRocketFlame; +import com.hbm.wiaj.WorldInAJar; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class ExplosionCreator implements IParticleCreator { + + public static final double speedOfSound = (17.15D) * 0.5; + + public static void composeEffect(World world, double x, double y, double z, int cloudCount, float cloudScale, float cloudSpeedMult, float waveScale, + int debrisCount, int debrisSize, int debrisRetry, float debrisVelocity, float debrisHorizontalDeviation, float debrisVerticalOffset, float soundRange) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "explosionLarge"); + data.setByte("cloudCount", (byte) cloudCount); + data.setFloat("cloudScale", cloudScale); + data.setFloat("cloudSpeedMult", cloudSpeedMult); + data.setFloat("waveScale", waveScale); + data.setByte("debrisCount", (byte) debrisCount); + data.setByte("debrisSize", (byte) debrisSize); + data.setShort("debrisRetry", (byte) debrisRetry); + data.setFloat("debrisVelocity", debrisVelocity); + data.setFloat("debrisHorizontalDeviation", debrisHorizontalDeviation); + data.setFloat("debrisVerticalOffset", debrisVerticalOffset); + data.setFloat("soundRange", soundRange); + IParticleCreator.sendPacket(world, x, y, z, Math.max(300, (int) soundRange), data); + } + + /** Downscaled for small bombs */ + public static void composeEffectSmall(World world, double x, double y, double z) { composeEffect(world, x, y, z, 10, 2F, 0.5F, 25F, 5, 8, 20, 0.75F, 1F, -2F, 150); } + + /** Development version */ + public static void composeEffectStandard(World world, double x, double y, double z) { composeEffect(world, x, y, z, 15, 5F, 1F, 45F, 10, 16, 50, 1F, 3F, -2F, 200); } + + /** Upscaled version, ATACMS go brrt */ + public static void composeEffectLarge(World world, double x, double y, double z) { composeEffect(world, x, y, z, 30, 6.5F, 2F, 65F, 25, 16, 50, 1.25F, 3F, -2F, 350); } + + @Override + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager man, Random rand, double x, double y, double z, NBTTagCompound data) { + + int cloudCount = data.getByte("cloudCount"); + float cloudScale = data.getFloat("cloudScale"); + float cloudSpeedMult = data.getFloat("cloudSpeedMult"); + float waveScale = data.getFloat("waveScale"); + int debrisCount = data.getByte("debrisCount"); + int debrisSize = data.getByte("debrisSize"); + int debrisRetry = data.getShort("debrisRetry"); + float debrisVelocity = data.getFloat("debrisVelocity"); + float debrisHorizontalDeviation = data.getFloat("debrisHorizontalDeviation"); + float debrisVerticalOffset = data.getFloat("debrisVerticalOffset"); + float soundRange = data.getFloat("soundRange"); + + float dist = (float) player.getDistance(x, y, z); + + if(dist <= soundRange) { + String sound = dist <= soundRange * 0.4 ? "hbm:weapon.explosionLargeNear" : "hbm:weapon.explosionLargeFar"; + PositionedSoundRecord positionedsoundrecord = new PositionedSoundRecord(new ResourceLocation(sound), 1000F, 0.9F + rand.nextFloat() * 0.2F, (float) x, (float) y, (float) z); + Minecraft.getMinecraft().getSoundHandler().playDelayedSound(positionedsoundrecord, (int) (dist / speedOfSound)); + } + + // WAVE + ParticleMukeWave wave = new ParticleMukeWave(man, world, x, y + 2, z); + wave.setup(waveScale, (int) (25F * waveScale / 45)); + Minecraft.getMinecraft().effectRenderer.addEffect(wave); + + // SMOKE PLUME + for(int i = 0; i < cloudCount; i++) { + ParticleRocketFlame fx = new ParticleRocketFlame(man, world, x, y, z).setScale(cloudScale); + fx.prevPosX = fx.posX; + fx.prevPosY = fx.posY; + fx.prevPosZ = fx.posZ; + fx.motionX = rand.nextGaussian() * 0.5 * cloudSpeedMult; + fx.motionY = rand.nextDouble() * 3 * cloudSpeedMult; + fx.motionZ = rand.nextGaussian() * 0.5 * cloudSpeedMult; + fx.setMaxAge(70 + rand.nextInt(20)); + fx.noClip = true; + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + + // DEBRIS + + for(int c = 0; c < debrisCount; c++) { + + double oX = rand.nextGaussian() * debrisHorizontalDeviation; + double oY = debrisVerticalOffset; + double oZ = rand.nextGaussian() * debrisHorizontalDeviation; + int cX = (int) Math.floor(x + oX + 0.5); + int cY = (int) Math.floor(y + oY + 0.5); + int cZ = (int) Math.floor(z + oZ + 0.5); + + Vec3 motion = Vec3.createVectorHelper(debrisVelocity, 0, 0); + motion.rotateAroundZ((float) -Math.toRadians(45 + rand.nextFloat() * 25)); + motion.rotateAroundY((float) (rand.nextDouble() * Math.PI * 2)); + ParticleDebris particle = new ParticleDebris(world, x, y, z, motion.xCoord, motion.yCoord, motion.zCoord); + WorldInAJar wiaj = new WorldInAJar(debrisSize, debrisSize, debrisSize); + particle.world = wiaj; + + if(debrisSize > 0) { + int middle = debrisSize / 2 - 1; + + for(int i = 0; i < 2; i++) for(int j = 0; j < 2; j++) for(int k = 0; k < 2; k++) + wiaj.setBlock(middle + i, middle + j, middle + k, world.getBlock(cX + i, cY + j, cZ + k), world.getBlockMetadata(cX + i, cY+ j, cZ + k)); + + for(int layer = 2; layer <= (debrisSize / 2); layer++) { + for(int i = 0; i < debrisRetry; i++) { + int jx = -layer + rand.nextInt(layer * 2 + 1); + int jy = -layer + rand.nextInt(layer * 2 + 1); + int jz = -layer + rand.nextInt(layer * 2 + 1); + + if(wiaj.getBlock(middle + jx + 1, middle + jy, middle + jz) != Blocks.air || wiaj.getBlock(middle + jx - 1, middle + jy, middle + jz) != Blocks.air || + wiaj.getBlock(middle + jx, middle + jy + 1, middle + jz) != Blocks.air || wiaj.getBlock(middle + jx, middle + jy - 1, middle + jz) != Blocks.air || + wiaj.getBlock(middle + jx, middle + jy, middle + jz + 1) != Blocks.air || wiaj.getBlock(middle + jx, middle + jy, middle + jz - 1) != Blocks.air) { + + Block b = world.getBlock(cX + jx, cY + jy, cZ + jz); + int m = world.getBlockMetadata(cX + jx, cY + jy, cZ + jz); + wiaj.setBlock(middle + jx, middle + jy, middle + jz, b, m); + } + } + } + } + + Minecraft.getMinecraft().effectRenderer.addEffect(particle); + } + } +} diff --git a/src/main/java/com/hbm/particle/helper/ExplosionSmallCreator.java b/src/main/java/com/hbm/particle/helper/ExplosionSmallCreator.java new file mode 100644 index 000000000..8c8862738 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/ExplosionSmallCreator.java @@ -0,0 +1,77 @@ +package com.hbm.particle.helper; + +import java.util.Random; + +import com.hbm.particle.ParticleExplosionSmall; + +import cpw.mods.fml.relauncher.ReflectionHelper; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.particle.EntityBlockDustFX; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class ExplosionSmallCreator implements IParticleCreator { + + public static final double speedOfSound = (17.15D) * 0.5; + + public static void composeEffect(World world, double x, double y, double z, int cloudCount, float cloudScale, float cloudSpeedMult) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "explosionSmall"); + data.setInteger("cloudCount", cloudCount); + data.setFloat("cloudScale", cloudScale); + data.setFloat("cloudSpeedMult", cloudSpeedMult); + data.setInteger("debris", 15); + IParticleCreator.sendPacket(world, x, y, z, 200, data); + } + + @Override + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data) { + + int cloudCount = data.getInteger("cloudCount"); + float cloudScale = data.getFloat("cloudScale"); + float cloudSpeedMult = data.getFloat("cloudSpeedMult"); + int debris = data.getInteger("debris"); + + float dist = (float) player.getDistance(x, y, z); + float soundRange = 200F; + + if(dist <= soundRange) { + String sound = dist <= soundRange * 0.4 ? "hbm:weapon.explosionSmallNear" : "hbm:weapon.explosionSmallFar"; + PositionedSoundRecord positionedsoundrecord = new PositionedSoundRecord(new ResourceLocation(sound), 100F, 0.9F + rand.nextFloat() * 0.2F, (float) x, (float) y, (float) z); + Minecraft.getMinecraft().getSoundHandler().playDelayedSound(positionedsoundrecord, (int) (dist / speedOfSound)); + } + + for(int i = 0; i < cloudCount; i++) { + ParticleExplosionSmall particle = new ParticleExplosionSmall(world, x, y, z, cloudScale, cloudSpeedMult); + Minecraft.getMinecraft().effectRenderer.addEffect(particle); + } + + Block b = Blocks.air; + int meta = 0; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + b = world.getBlock((int) Math.floor(x) + dir.offsetX, (int) Math.floor(y) + dir.offsetY, (int) Math.floor(z) + dir.offsetZ); + meta = world.getBlockMetadata((int) Math.floor(x) + dir.offsetX, (int) Math.floor(y) + dir.offsetY, (int) Math.floor(z) + dir.offsetZ); + if(b != Blocks.air) break; + } + + if(b != Blocks.air) for(int i = 0; i < debris; i++) { + EntityBlockDustFX fx = new EntityBlockDustFX(world, x, y + 0.1, z, world.rand.nextGaussian() * 0.2, 0.5F + world.rand.nextDouble() * 0.7, world.rand.nextGaussian() * 0.2, b, meta); + fx.multipleParticleScaleBy(2); + ReflectionHelper.setPrivateValue(EntityFX.class, fx, 50 + rand.nextInt(20), "particleMaxAge", "field_70547_e"); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + } +} diff --git a/src/main/java/com/hbm/particle/helper/FlameCreator.java b/src/main/java/com/hbm/particle/helper/FlameCreator.java new file mode 100644 index 000000000..d47fd0095 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/FlameCreator.java @@ -0,0 +1,45 @@ +package com.hbm.particle.helper; + +import java.util.Random; + +import com.hbm.main.MainRegistry; +import com.hbm.particle.ParticleFlamethrower; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class FlameCreator implements IParticleCreator { + + public static int META_FIRE = 0; + public static int META_BALEFIRE = 1; + public static int META_DIGAMMA = 2; + + public static void composeEffect(World world, double x, double y, double z, int meta) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "flamethrower"); + data.setInteger("meta", meta); + IParticleCreator.sendPacket(world, x, y, z, 50, data); + } + + public static void composeEffectClient(World world, double x, double y, double z, int meta) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "flamethrower"); + data.setInteger("meta", meta); + data.setDouble("posX", x); + data.setDouble("posY", y); + data.setDouble("posZ", z); + MainRegistry.proxy.effectNT(data); + } + + @Override + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data) { + ParticleFlamethrower particle = new ParticleFlamethrower(world, x, y, z, data.getInteger("meta")); + Minecraft.getMinecraft().effectRenderer.addEffect(particle); + } +} diff --git a/src/main/java/com/hbm/particle/helper/IParticleCreator.java b/src/main/java/com/hbm/particle/helper/IParticleCreator.java new file mode 100644 index 000000000..dce577ced --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/IParticleCreator.java @@ -0,0 +1,31 @@ +package com.hbm.particle.helper; + +import java.util.Random; + +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +/** + * Does two cool things: + *
- requires no more additions to ClientProxy which is already bloated, full of other stuff and cumbersome to work with + *
- being a separate class, we can get as messy as we want without affecting other particles, so effects can overall have more logic behind them without turning into a big ugly clump + * @author hbm + * + */ +public interface IParticleCreator { + + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data); + + public static void sendPacket(World world, double x, double y, double z, int range, NBTTagCompound data) { + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, range)); + } +} diff --git a/src/main/java/com/hbm/particle/helper/ParticleCreators.java b/src/main/java/com/hbm/particle/helper/ParticleCreators.java new file mode 100644 index 000000000..2f23f88f4 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/ParticleCreators.java @@ -0,0 +1,18 @@ +package com.hbm.particle.helper; + +import java.util.HashMap; + +public class ParticleCreators { + + public static HashMap particleCreators = new HashMap(); + + static { + particleCreators.put("explosionLarge", new ExplosionCreator()); + particleCreators.put("casingNT", new CasingCreator()); + particleCreators.put("flamethrower", new FlameCreator()); + particleCreators.put("explosionSmall", new ExplosionSmallCreator()); + particleCreators.put("blackPowder", new BlackPowderCreator()); + particleCreators.put("ashes", new AshesCreator()); + particleCreators.put("skeleton", new SkeletonCreator()); + } +} diff --git a/src/main/java/com/hbm/particle/helper/SkeletonCreator.java b/src/main/java/com/hbm/particle/helper/SkeletonCreator.java new file mode 100644 index 000000000..48ee29761 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/SkeletonCreator.java @@ -0,0 +1,171 @@ +package com.hbm.particle.helper; + +import java.util.HashMap; +import java.util.Random; +import java.util.function.Function; + +import com.hbm.entity.mob.EntityDummy; +import com.hbm.main.ClientProxy; +import com.hbm.particle.ParticleSkeleton; +import com.hbm.util.Vec3NT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityClientPlayerMP; +import net.minecraft.client.entity.EntityOtherPlayerMP; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.monster.EntityPigZombie; +import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.entity.monster.EntityWitch; +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.entity.passive.EntityVillager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class SkeletonCreator implements IParticleCreator { + + public static HashMap> skullanizer = new HashMap(); + + public static void composeEffect(World world, Entity toSkeletonize, float brightness) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "skeleton"); + data.setInteger("entityID", toSkeletonize.getEntityId()); + data.setFloat("brightness", brightness); + IParticleCreator.sendPacket(world, toSkeletonize.posX, toSkeletonize.posY, toSkeletonize.posZ, 100, data); + } + + @Override + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data) { + + if(skullanizer.isEmpty()) init(); + + int entityID = data.getInteger("entityID"); + Entity entity = world.getEntityByID(entityID); + if(!(entity instanceof EntityLivingBase)) return; + EntityLivingBase living = (EntityLivingBase) entity; + + ClientProxy.vanish(entityID); + + float brightness = data.getFloat("brightness"); + + Function bonealizer = skullanizer.get(entity.getClass().getSimpleName()); + + if(bonealizer != null) { + BoneDefinition[] bones = bonealizer.apply(living); + for(BoneDefinition bone : bones) { + ParticleSkeleton skeleton = new ParticleSkeleton(Minecraft.getMinecraft().getTextureManager(), world, bone.x, bone.y, bone.z, brightness, brightness, brightness, bone.type); + skeleton.prevRotationYaw = skeleton.rotationYaw = bone.yaw; + skeleton.prevRotationPitch = skeleton.rotationPitch = bone.pitch; + Minecraft.getMinecraft().effectRenderer.addEffect(skeleton); + } + } + } + + public static class BoneDefinition { + public EnumSkeletonType type; + public float yaw; + public float pitch; + public double x; + public double y; + public double z; + + public BoneDefinition(EnumSkeletonType type, float yaw, float pitch, double x, double y, double z) { + this.type = type; + this.yaw = yaw; + this.pitch = pitch; + this.x = x; + this.y = y; + this.z = z; + } + } + + public static enum EnumSkeletonType { + SKULL, TORSO, LIMB, SKULL_VILLAGER + } + + public static Function BONES_BIPED = (entity) -> { + Vec3NT leftarm = new Vec3NT(0.375, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT leftleg = new Vec3NT(0.125, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + return new BoneDefinition[] { + new BoneDefinition(EnumSkeletonType.SKULL, -entity.rotationYawHead, entity.rotationPitch, entity.posX, entity.posY + 1.75, entity.posZ), + new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1.125, entity.posZ), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftarm.xCoord, entity.posY + 1.125, entity.posZ + leftarm.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftarm.xCoord, entity.posY + 1.125, entity.posZ - leftarm.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord), + }; + }; + + public static Function BONES_ZOMBIE = (entity) -> { + Vec3NT leftarm = new Vec3NT(0.375, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT forward = new Vec3NT(0, 0, 0.25).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT leftleg = new Vec3NT(0.125, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + return new BoneDefinition[] { + new BoneDefinition(EnumSkeletonType.SKULL, -entity.rotationYawHead, entity.rotationPitch, entity.posX, entity.posY + 1.75, entity.posZ), + new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1.125, entity.posZ), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -90, entity.posX + leftarm.xCoord + forward.xCoord, entity.posY + 1.375, entity.posZ + leftarm.zCoord + forward.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -90, entity.posX - leftarm.xCoord + forward.xCoord, entity.posY + 1.375, entity.posZ - leftarm.zCoord + forward.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord), + }; + }; + + public static Function BONES_VILLAGER = (entity) -> { + Vec3NT leftarm = new Vec3NT(0.375, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT forward = new Vec3NT(0, 0, 0.25).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT leftleg = new Vec3NT(0.125, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + return new BoneDefinition[] { + new BoneDefinition(EnumSkeletonType.SKULL_VILLAGER, -entity.rotationYawHead, entity.rotationPitch, entity.posX, entity.posY + 1.6875, entity.posZ), + new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1, entity.posZ), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -45, entity.posX + leftarm.xCoord + forward.xCoord, entity.posY + 1.125, entity.posZ + leftarm.zCoord + forward.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -45, entity.posX - leftarm.xCoord + forward.xCoord, entity.posY + 1.125, entity.posZ - leftarm.zCoord + forward.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord), + }; + }; + + public static Function BONES_DUMMY = (entity) -> { + Vec3NT leftarm = new Vec3NT(0.375, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT leftleg = new Vec3NT(0.125, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + return new BoneDefinition[] { + new BoneDefinition(EnumSkeletonType.SKULL, -entity.rotationYawHead, entity.rotationPitch, entity.posX, entity.posY + 1.75, entity.posZ), + new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1.125, entity.posZ), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftarm.xCoord, entity.posY + 1.125, entity.posZ + leftarm.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftarm.xCoord, entity.posY + 1.125, entity.posZ - leftarm.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord), + }; + }; + + public static void init() { + skullanizer.put(EntityOtherPlayerMP.class.getSimpleName(), BONES_BIPED); + skullanizer.put(EntityClientPlayerMP.class.getSimpleName(), BONES_BIPED); + skullanizer.put(EntityPlayerSP.class.getSimpleName(), BONES_BIPED); + + skullanizer.put(EntityZombie.class.getSimpleName(), BONES_ZOMBIE); + skullanizer.put(EntitySkeleton.class.getSimpleName(), BONES_ZOMBIE); + skullanizer.put(EntityPigZombie.class.getSimpleName(), BONES_ZOMBIE); + + skullanizer.put(EntityVillager.class.getSimpleName(), BONES_VILLAGER); + skullanizer.put(EntityWitch.class.getSimpleName(), BONES_VILLAGER); + + skullanizer.put(EntityDummy.class.getSimpleName(), BONES_DUMMY); + + //techguns compat, for some reason + //not alwayss accurate because of variable arm position, but better than nothing + skullanizer.put("ArmySoldier", BONES_ZOMBIE); + skullanizer.put("PsychoSteve", BONES_ZOMBIE); + skullanizer.put("SkeletonSoldier", BONES_ZOMBIE); + skullanizer.put("ZombieFarmer", BONES_ZOMBIE); + skullanizer.put("ZombieMiner", BONES_ZOMBIE); + skullanizer.put("ZombiePigmanSoldier", BONES_ZOMBIE); + skullanizer.put("ZombieSoldier", BONES_ZOMBIE); + } +} diff --git a/src/main/java/com/hbm/particle/psys/engine/EventHandlerParticleEngine.java b/src/main/java/com/hbm/particle/psys/engine/EventHandlerParticleEngine.java index 17c189f19..30b798e35 100644 --- a/src/main/java/com/hbm/particle/psys/engine/EventHandlerParticleEngine.java +++ b/src/main/java/com/hbm/particle/psys/engine/EventHandlerParticleEngine.java @@ -21,7 +21,7 @@ public class EventHandlerParticleEngine { @SubscribeEvent public void onRenderWorldLast(RenderWorldLastEvent event) { - float interp = event.partialTicks; + //float interp = event.partialTicks; } @SubscribeEvent diff --git a/src/main/java/com/hbm/render/anim/AnimationLoader.java b/src/main/java/com/hbm/render/anim/AnimationLoader.java new file mode 100644 index 000000000..686e13965 --- /dev/null +++ b/src/main/java/com/hbm/render/anim/AnimationLoader.java @@ -0,0 +1,211 @@ +package com.hbm.render.anim; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import com.google.gson.JsonElement; +import com.google.gson.JsonArray; + +import net.minecraft.client.Minecraft; +import net.minecraft.util.ResourceLocation; + +import com.hbm.render.anim.BusAnimationKeyframe.IType; +import com.hbm.render.anim.BusAnimationKeyframe.EType; +import com.hbm.render.anim.BusAnimationKeyframe.HType; +import com.hbm.render.anim.BusAnimationSequence.Dimension; + +public class AnimationLoader { + + // The collada loader is great, but is not so backwards compatible and spews keyframes rather than doing interpolation + // Yeah - more animation loading is not so great, but 3mb for a single door opening is maybe overkill on a 50mb mod + // and even though the format supports multiple animations, no fucking animation software will actually export multiple animations, + // (even though blender even has a fucking toggle for it, but it doesn't _do_ anything) + // This instead just loads transformation data from a JSON file, turning it into a set of BusAnimations + // See ntm-animator.blend for a JSON format creation script + + // "How do I make animations?" + // See ntm-animator.blend, it has the Colt/Python already setup and animated as an example, it'll generate JSON data that this can load + + public static final Gson gson = new Gson(); + + + public static HashMap load(ResourceLocation file) { + HashMap animations = new HashMap(); + + InputStream in; + try { + in = Minecraft.getMinecraft().getResourceManager().getResource(file).getInputStream(); + } catch (IOException ex) { + return null; + } + + InputStreamReader reader = new InputStreamReader(in); + JsonObject json = gson.fromJson(reader, JsonObject.class); + + // Load our model offsets, we'll place these into all the sequences that share the name of the offset + // The offsets are only required when sequences are played for an object, which is why we don't globally offset! The obj rendering handles the non-animated case fine + // Effectively, this removes double translation AND ensures that rotations occur around the individual object origin, rather than the weapon origin + HashMap offsets = new HashMap(); + for(Map.Entry root : json.getAsJsonObject("offset").entrySet()) { + JsonArray array = root.getValue().getAsJsonArray(); + + double[] offset = new double[3]; + for(int i = 0; i < 3; i++) { + offset[i] = array.get(i).getAsDouble(); + } + + offsets.put(root.getKey(), offset); + } + + // Rotation modes, swizzled into our local space. YZX in blender becomes XYZ due to: + // * rotation order reversed in blender (XYZ -> ZYX) + // * dimensions Y and Z are swapped in blender (ZYX -> YZX) + HashMap rotModes = new HashMap(); + if(json.has("rotmode")) { + for(Map.Entry root : json.getAsJsonObject("rotmode").entrySet()) { + String mode = root.getValue().getAsString(); + + double[] rotMode = new double[3]; + rotMode[0] = getRot(mode.charAt(2)); + rotMode[1] = getRot(mode.charAt(0)); + rotMode[2] = getRot(mode.charAt(1)); + } + } + + + // Top level parsing, this is for the animation name as set in Blender + for(Map.Entry root : json.getAsJsonObject("anim").entrySet()) { + BusAnimation animation = new BusAnimation(); + + // Loading the buses for this animation + JsonObject entryObject = root.getValue().getAsJsonObject(); + for(Map.Entry model : entryObject.entrySet()) { + String modelName = model.getKey(); + double[] offset = new double[3]; + double[] rotMode = new double[] { 0, 1, 2 }; + if(offsets.containsKey(modelName)) offset = offsets.get(modelName); + if(rotModes.containsKey(modelName)) rotMode = rotModes.get(modelName); + animation.addBus(modelName, loadSequence(model.getValue().getAsJsonObject(), offset, rotMode)); + } + + animations.put(root.getKey(), animation); + } + + return animations; + } + + private static double getRot(char value) { + switch(value) { + case 'X': return 0; + case 'Y': return 1; + case 'Z': return 2; + default: return 0; + } + } + + private static BusAnimationSequence loadSequence(JsonObject json, double[] offset, double[] rotMode) { + BusAnimationSequence sequence = new BusAnimationSequence(); + + // Location fcurves + if(json.has("location")) { + JsonObject location = json.getAsJsonObject("location"); + + if(location.has("x")) { + addToSequence(sequence, Dimension.TX, location.getAsJsonArray("x")); + } + if(location.has("y")) { + addToSequence(sequence, Dimension.TY, location.getAsJsonArray("y")); + } + if(location.has("z")) { + addToSequence(sequence, Dimension.TZ, location.getAsJsonArray("z")); + } + } + + // Rotation fcurves, only euler at the moment + if(json.has("rotation_euler")) { + JsonObject rotation = json.getAsJsonObject("rotation_euler"); + + if(rotation.has("x")) { + addToSequence(sequence, Dimension.RX, rotation.getAsJsonArray("x")); + } + if(rotation.has("y")) { + addToSequence(sequence, Dimension.RY, rotation.getAsJsonArray("y")); + } + if(rotation.has("z")) { + addToSequence(sequence, Dimension.RZ, rotation.getAsJsonArray("z")); + } + } + + // Scale fcurves + if(json.has("scale")) { + JsonObject scale = json.getAsJsonObject("scale"); + + if(scale.has("x")) { + addToSequence(sequence, Dimension.SX, scale.getAsJsonArray("x")); + } + if(scale.has("y")) { + addToSequence(sequence, Dimension.SY, scale.getAsJsonArray("y")); + } + if(scale.has("z")) { + addToSequence(sequence, Dimension.SZ, scale.getAsJsonArray("z")); + } + } + + sequence.offset = offset; + sequence.rotMode = rotMode; + + return sequence; + } + + private static void addToSequence(BusAnimationSequence sequence, Dimension dimension, JsonArray array) { + IType prevInterp = null; + for(JsonElement element : array) { + BusAnimationKeyframe keyframe = loadKeyframe(element, prevInterp); + prevInterp = keyframe.interpolationType; + sequence.addKeyframe(dimension, keyframe); + } + } + + private static BusAnimationKeyframe loadKeyframe(JsonElement element, IType prevInterp) { + JsonArray array = element.getAsJsonArray(); + + double value = array.get(0).getAsDouble(); + int duration = array.get(1).getAsInt(); + IType interpolation = array.size() >= 3 ? IType.valueOf(array.get(2).getAsString()) : IType.LINEAR; + EType easing = array.size() >= 4 ? EType.valueOf(array.get(3).getAsString()) : EType.AUTO; + + BusAnimationKeyframe keyframe = new BusAnimationKeyframe(value, duration, interpolation, easing); + + int i = 4; + + if(prevInterp == IType.BEZIER) { + keyframe.leftX = array.get(i++).getAsDouble(); + keyframe.leftY = array.get(i++).getAsDouble(); + keyframe.leftType = HType.valueOf(array.get(i++).getAsString()); + } + + if(interpolation == IType.LINEAR || interpolation == IType.CONSTANT) + return keyframe; + + if(interpolation == IType.BEZIER) { + keyframe.rightX = array.get(i++).getAsDouble(); + keyframe.rightY = array.get(i++).getAsDouble(); + keyframe.rightType = HType.valueOf(array.get(i++).getAsString()); + } + + if(interpolation == IType.ELASTIC) { + keyframe.amplitude = array.get(i++).getAsDouble(); + keyframe.period = array.get(i++).getAsDouble(); + } else if(interpolation == IType.BACK) { + keyframe.back = array.get(i++).getAsDouble(); + } + + return keyframe; + } + +} diff --git a/src/main/java/com/hbm/render/anim/BusAnimation.java b/src/main/java/com/hbm/render/anim/BusAnimation.java index cef75c8a9..0639aa71c 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimation.java +++ b/src/main/java/com/hbm/render/anim/BusAnimation.java @@ -6,11 +6,11 @@ import java.util.Map.Entry; //a """simple""" implementation of an animation system //it's the first thing i came up with and i suppose it's relatively simple but //it's probably not since i suck at everything -//i could have jut used collada XML animations but where's the fun in that? +//i could have just used collada XML animations but where's the fun in that? public class BusAnimation { //"buses" with one S since it's not a vehicle - private final HashMap animationBuses= new HashMap(); + private final HashMap animationBuses = new HashMap(); //multiples buses exist simultaneously and start with 0. //a bus has one authority, i.e. the translation of a single part of a model or the rotation of the entire thing. //imagine the busses being film strips that hang from the ceiling, with the tape player diff --git a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java index db0e18261..988a3f552 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationKeyframe.java @@ -2,52 +2,604 @@ package com.hbm.render.anim; //"pieces" that make up a bus public class BusAnimationKeyframe { - - //whether the next frame "snaps" to the intended value or has interpolation - //it's an enum so stuff like accelerated animations between just - //two frames could be implemented - public static enum InterpolationType { - NONE, - SMOOTH + + // whether the next frame "snaps" to the intended value or has interpolation + // it's an enum so stuff like accelerated animations between just + // two frames could be implemented + public static enum IType { + /** Teleport */ + CONSTANT, + /** Linear interpolation */ + LINEAR, + /** "Sine wave up", quarter of a sine peak that goes from neutral to rising */ + SIN_UP, + /** "Sine wave down", quarter of a sine peak that goes from rising back to neutral */ + SIN_DOWN, + /** "Sine wave", first half of a sine peak, accelerating up and then decelerating, makes for smooth movement */ + SIN_FULL, + + // blender magic curves + BEZIER, + + // blender inertial + SINE, + QUAD, + CUBIC, + QUART, + QUINT, + EXPO, + CIRC, + + // blendor dynamic + BOUNCE, + ELASTIC, + BACK, } - - //unimplemented, all current animations are absolute - //whether the transformation happens on its own or relative to the last state - //i.e. 5 with 15 being the previous would be 20 additive and 5 absolute, simple enough - public static enum StateType { - ADDITIVE, - ABSOLTE + + // Easing + public static enum EType { + AUTO, + EASE_IN, + EASE_OUT, + EASE_IN_OUT, } - - public double x; - public double y; - public double z; - public InterpolationType interpolationType; + + // Handle type + public static enum HType { + FREE, + ALIGNED, + VECTOR, + AUTO, + AUTO_CLAMPED, + } + + public double value; + public IType interpolationType; + public EType easingType; public int duration; - - public double[] toArray() { - return new double[] {x, y, z}; - } - - //this one can be used for "reset" type keyframes + + // bezier handles + public double leftX; + public double leftY; + public HType leftType; + public double rightX; + public double rightY; + public HType rightType; + + // elastics + public double amplitude; + public double period; + + // back (overshoot) + public double back; + + // this one can be used for "reset" type keyframes public BusAnimationKeyframe() { - this.x = 0; - this.y = 0; - this.z = 0; + this.value = 0; this.duration = 1; - this.interpolationType = InterpolationType.SMOOTH; + this.interpolationType = IType.LINEAR; + this.easingType = EType.AUTO; } - - public BusAnimationKeyframe(double x, double y, double z, int duration) { + + public BusAnimationKeyframe(double value, int duration) { this(); - this.x = x; - this.y = y; - this.z = z; + this.value = value; this.duration = duration; } - - public BusAnimationKeyframe(double x, double y, double z, int duration, InterpolationType interpolation) { - this(x, y, z, duration); + + public BusAnimationKeyframe(double value, int duration, IType interpolation) { + this(value, duration); this.interpolationType = interpolation; } + + public BusAnimationKeyframe(double value, int duration, IType interpolation, EType easing) { + this(value, duration, interpolation); + this.easingType = easing; + } + + public double interpolate(double startTime, double currentTime, BusAnimationKeyframe previous) { + if(previous == null) + previous = new BusAnimationKeyframe(); + + double a = value; + double b = previous.value; + double t = time(startTime, currentTime, duration); + + double begin = previous.value; + double change = value - previous.value; + double time = currentTime - startTime; + + // Constant value optimisation + if(Math.abs(previous.value - value) < 0.000001) return value; + + if(previous.interpolationType == IType.BEZIER) { + double v1x = startTime; + double v1y = previous.value; + double v2x = previous.rightX; + double v2y = previous.rightY; + + double v3x = leftX; + double v3y = leftY; + double v4x = startTime + duration; + double v4y = value; + + // correct beziers into non-looping fcurves + double h1x = v1x - v2x; + double h1y = v1y - v2y; + + double h2x = v4x - v3x; + double h2y = v4y - v3y; + + double len = v4x - v1x; + double len1 = Math.abs(h1x); + double len2 = Math.abs(h2x); + + if(len1 + len2 != 0) { + if(len1 > len) { + double fac = len / len1; + v2x = v1x - fac * h1x; + v2y = v1y - fac * h1y; + } + + if(len2 > len) { + double fac = len / len2; + v3x = v4x - fac * h2x; + v3y = v4y - fac * h2y; + } + } + + double curveT = findZero(currentTime, v1x, v2x, v3x, v4x); + return cubicBezier(v1y, v2y, v3y, v4y, curveT); + } else if(previous.interpolationType == IType.BACK) { + switch (previous.easingType) { + case EASE_IN: return BLI_easing_back_ease_in(time, begin, change, duration, previous.back); + case EASE_IN_OUT: return BLI_easing_back_ease_in_out(time, begin, change, duration, previous.back); + default: return BLI_easing_back_ease_out(time, begin, change, duration, previous.back); + } + } else if(previous.interpolationType == IType.BOUNCE) { + switch (previous.easingType) { + case EASE_IN: return BLI_easing_bounce_ease_in(time, begin, change, duration); + case EASE_IN_OUT: return BLI_easing_bounce_ease_in_out(time, begin, change, duration); + default: return BLI_easing_bounce_ease_out(time, begin, change, duration); + } + } else if(previous.interpolationType == IType.CIRC) { + switch (previous.easingType) { + case EASE_OUT: return BLI_easing_circ_ease_out(time, begin, change, duration); + case EASE_IN_OUT: return BLI_easing_circ_ease_in_out(time, begin, change, duration); + default: return BLI_easing_circ_ease_in(time, begin, change, duration); + } + } else if(previous.interpolationType == IType.CUBIC) { + switch (previous.easingType) { + case EASE_OUT: return BLI_easing_cubic_ease_out(time, begin, change, duration); + case EASE_IN_OUT: return BLI_easing_cubic_ease_in_out(time, begin, change, duration); + default: return BLI_easing_cubic_ease_in(time, begin, change, duration); + } + } else if(previous.interpolationType == IType.ELASTIC) { + switch (previous.easingType) { + case EASE_IN: return BLI_easing_elastic_ease_in(time, begin, change, duration, previous.amplitude, previous.period); + case EASE_IN_OUT: return BLI_easing_elastic_ease_in_out(time, begin, change, duration, previous.amplitude, previous.period); + default: return BLI_easing_elastic_ease_out(time, begin, change, duration, previous.amplitude, previous.period); + } + } else if(previous.interpolationType == IType.EXPO) { + switch (previous.easingType) { + case EASE_OUT: return BLI_easing_expo_ease_out(time, begin, change, duration); + case EASE_IN_OUT: return BLI_easing_expo_ease_in_out(time, begin, change, duration); + default: return BLI_easing_expo_ease_in(time, begin, change, duration); + } + } else if(previous.interpolationType == IType.QUAD) { + switch (previous.easingType) { + case EASE_OUT: return BLI_easing_quad_ease_out(time, begin, change, duration); + case EASE_IN_OUT: return BLI_easing_quad_ease_in_out(time, begin, change, duration); + default: return BLI_easing_quad_ease_in(time, begin, change, duration); + } + } else if(previous.interpolationType == IType.QUART) { + switch (previous.easingType) { + case EASE_OUT: return BLI_easing_quart_ease_out(time, begin, change, duration); + case EASE_IN_OUT: return BLI_easing_quart_ease_in_out(time, begin, change, duration); + default: return BLI_easing_quart_ease_in(time, begin, change, duration); + } + } else if(previous.interpolationType == IType.QUINT) { + switch (previous.easingType) { + case EASE_OUT: return BLI_easing_quint_ease_out(time, begin, change, duration); + case EASE_IN_OUT: return BLI_easing_quint_ease_in_out(time, begin, change, duration); + default: return BLI_easing_quint_ease_in(time, begin, change, duration); + } + } else if(previous.interpolationType == IType.SINE) { + switch (previous.easingType) { + case EASE_OUT: return BLI_easing_sine_ease_out(time, begin, change, duration); + case EASE_IN_OUT: return BLI_easing_sine_ease_in_out(time, begin, change, duration); + default: return BLI_easing_sine_ease_in(time, begin, change, duration); + } + } + + return (a - b) * t + b; + } + + private double sqrt3(double d) { + if(d > 0.000001) { + return Math.exp(Math.log(d) / 3.0); + } else if(d > -0.000001) { + return 0; + } else { + return -Math.exp(Math.log(-d) / 3.0); + } + } + + private double time(double start, double end, double duration) { + if(interpolationType == IType.SIN_UP) return -Math.sin(((end - start) / duration * Math.PI + Math.PI) / 2) + 1; + if(interpolationType == IType.SIN_DOWN) return Math.sin((end - start) / duration * Math.PI / 2); + if(interpolationType == IType.SIN_FULL) return (-Math.cos((end - start) / duration * Math.PI) + 1) / 2D; + return (end - start) / duration; + } + + // Blender bezier solvers, but rewritten (pain) + private double solveCubic(double c0, double c1, double c2, double c3) { + if(c3 > 0.000001) { + double a = c2 / c3; + double b = c1 / c3; + double c = c0 / c3; + a = a / 3; + + double p = b / 3 - a * a; + double q = (2 * a * a * a - a * b + c) / 2; + double d = q * q + p * p * p; + + if(d > 0.000001) { + double t = Math.sqrt(d); + return sqrt3(-q + t) + sqrt3(-q - t) - a; + } else if(d > -0.000001) { + double t = sqrt3(-q); + double result = 2 * t - a; + if(result < 0.000001 || result > 1.000001) { + result = -t - a; + } + return result; + } + + double phi = Math.acos(-q / Math.sqrt(-(p * p * p))); + double t = Math.sqrt(-p); + p = Math.cos(phi / 3); + q = Math.sqrt(3 - 3 * p * p); + double result = 2 * t * p - a; + if(result < 0.000001 || result > 1.000001) { + result = -t * (p + q) - a; + } + if(result < 0.000001 || result > 1.000001) { + result = -t * (p - q) - a; + } + return result; + } + + double a = c2; + double b = c1; + double c = c0; + + if(a > 0.000001) { + double p = b * b - 4 * a * c; + + if(p > 0.000001) { + p = Math.sqrt(p); + double result = (-b - p) / (2 * a); + if(result < 0.000001 || result > 1.000001) { + result = (-b + p) / (2 * a); + } + return result; + } else if(p > -0.000001) { + return -b / (2 * a); + } + } + + if(b > 0.000001) { + return -c / b; + } + + return 0; + } + + private double findZero(double t, double x1, double x2, double x3, double x4) { + double c0 = x1 - t; + double c1 = 3.0f * (x2 - x1); + double c2 = 3.0f * (x1 - 2.0f * x2 + x3); + double c3 = x4 - x1 + 3.0f * (x2 - x3); + + return solveCubic(c0, c1, c2, c3); + } + + private double cubicBezier(double y1, double y2, double y3, double y4, double t) { + double c0 = y1; + double c1 = 3.0f * (y2 - y1); + double c2 = 3.0f * (y1 - 2.0f * y2 + y3); + double c3 = y4 - y1 + 3.0f * (y2 - y3); + + return c0 + t * c1 + t * t * c2 + t * t * t * c3; + } + + /** + * EASING FUNCTIONS, taken directly from Blender `easing.c` + */ + + double BLI_easing_back_ease_in(double time, double begin, double change, double duration, double overshoot) { + time /= duration; + return change * time * time * ((overshoot + 1) * time - overshoot) + begin; + } + + double BLI_easing_back_ease_out(double time, double begin, double change, double duration, double overshoot) { + time = time / duration - 1; + return change * (time * time * ((overshoot + 1) * time + overshoot) + 1) + begin; + } + + double BLI_easing_back_ease_in_out(double time, double begin, double change, double duration, double overshoot) { + overshoot *= 1.525f; + if((time /= duration / 2) < 1.0f) { + return change / 2 * (time * time * ((overshoot + 1) * time - overshoot)) + begin; + } + time -= 2.0f; + return change / 2 * (time * time * ((overshoot + 1) * time + overshoot) + 2) + begin; + } + + double BLI_easing_bounce_ease_out(double time, double begin, double change, double duration) { + time /= duration; + if(time < (1 / 2.75f)) { + return change * (7.5625f * time * time) + begin; + } + if(time < (2 / 2.75f)) { + time -= (1.5f / 2.75f); + return change * ((7.5625f * time) * time + 0.75f) + begin; + } + if(time < (2.5f / 2.75f)) { + time -= (2.25f / 2.75f); + return change * ((7.5625f * time) * time + 0.9375f) + begin; + } + time -= (2.625f / 2.75f); + return change * ((7.5625f * time) * time + 0.984375f) + begin; + } + + double BLI_easing_bounce_ease_in(double time, double begin, double change, double duration) { + return change - BLI_easing_bounce_ease_out(duration - time, 0, change, duration) + begin; + } + + double BLI_easing_bounce_ease_in_out(double time, double begin, double change, double duration) { + if(time < duration / 2) { + return BLI_easing_bounce_ease_in(time * 2, 0, change, duration) * 0.5f + begin; + } + return BLI_easing_bounce_ease_out(time * 2 - duration, 0, change, duration) * 0.5f + change * 0.5f + begin; + } + + double BLI_easing_circ_ease_in(double time, double begin, double change, double duration) { + time /= duration; + return -change * (Math.sqrt(1 - time * time) - 1) + begin; + } + + double BLI_easing_circ_ease_out(double time, double begin, double change, double duration) { + time = time / duration - 1; + return change * Math.sqrt(1 - time * time) + begin; + } + + double BLI_easing_circ_ease_in_out(double time, double begin, double change, double duration) { + if((time /= duration / 2) < 1.0f) { + return -change / 2 * (Math.sqrt(1 - time * time) - 1) + begin; + } + time -= 2.0f; + return change / 2 * (Math.sqrt(1 - time * time) + 1) + begin; + } + + double BLI_easing_cubic_ease_in(double time, double begin, double change, double duration) { + time /= duration; + return change * time * time * time + begin; + } + + double BLI_easing_cubic_ease_out(double time, double begin, double change, double duration) { + time = time / duration - 1; + return change * (time * time * time + 1) + begin; + } + + double BLI_easing_cubic_ease_in_out(double time, double begin, double change, double duration) { + if((time /= duration / 2) < 1.0f) { + return change / 2 * time * time * time + begin; + } + time -= 2.0f; + return change / 2 * (time * time * time + 2) + begin; + } + + double elastic_blend(double time, double change, double duration, double amplitude, double s, double f) { + if(change != 0) { + /* + * Looks like a magic number, + * but this is a part of the sine curve we need to blend from + */ + double t = Math.abs(s); + if(amplitude != 0) { + f *= amplitude / Math.abs(change); + } else { + f = 0.0f; + } + + if(Math.abs(time * duration) < t) { + double l = Math.abs(time * duration) / t; + f = (f * l) + (1.0f - l); + } + } + + return f; + } + + double BLI_easing_elastic_ease_in(double time, double begin, double change, double duration, double amplitude, double period) { + double s; + double f = 1.0f; + + if(time == 0.0f) { + return begin; + } + + if((time /= duration) == 1.0f) { + return begin + change; + } + time -= 1.0f; + if(period == 0) { + period = duration * 0.3f; + } + if(amplitude == 0 || amplitude < Math.abs(change)) { + s = period / 4; + f = elastic_blend(time, change, duration, amplitude, s, f); + amplitude = change; + } else { + s = period / (2 * (double) Math.PI) * Math.asin(change / amplitude); + } + + return (-f * (amplitude * Math.pow(2, 10 * time) * Math.sin((time * duration - s) * (2 * (double) Math.PI) / period))) + begin; + } + + double BLI_easing_elastic_ease_out(double time, double begin, double change, double duration, double amplitude, double period) { + double s; + double f = 1.0f; + + if(time == 0.0f) { + return begin; + } + if((time /= duration) == 1.0f) { + return begin + change; + } + time = -time; + if(period == 0) { + period = duration * 0.3f; + } + if(amplitude == 0 || amplitude < Math.abs(change)) { + s = period / 4; + f = elastic_blend(time, change, duration, amplitude, s, f); + amplitude = change; + } else { + s = period / (2 * (double) Math.PI) * Math.asin(change / amplitude); + } + + return (f * (amplitude * Math.pow(2, 10 * time) * Math.sin((time * duration - s) * (2 * (double) Math.PI) / period))) + change + begin; + } + + double BLI_easing_elastic_ease_in_out(double time, double begin, double change, double duration, double amplitude, double period) { + double s; + double f = 1.0f; + + if(time == 0.0f) { + return begin; + } + if((time /= duration / 2) == 2.0f) { + return begin + change; + } + time -= 1.0f; + if(period == 0) { + period = duration * (0.3f * 1.5f); + } + if(amplitude == 0 || amplitude < Math.abs(change)) { + s = period / 4; + f = elastic_blend(time, change, duration, amplitude, s, f); + amplitude = change; + } else { + s = period / (2 * (double) Math.PI) * Math.asin(change / amplitude); + } + + if(time < 0.0f) { + f *= -0.5f; + return (f * (amplitude * Math.pow(2, 10 * time) * Math.sin((time * duration - s) * (2 * (double) Math.PI) / period))) + begin; + } + + time = -time; + f *= 0.5f; + return (f * (amplitude * Math.pow(2, 10 * time) * Math.sin((time * duration - s) * (2 * (double) Math.PI) / period))) + change + begin; + } + + static final double pow_min = 0.0009765625f; /* = 2^(-10) */ + static final double pow_scale = 1.0f / (1.0f - 0.0009765625f); + + double BLI_easing_expo_ease_in(double time, double begin, double change, double duration) { + if(time == 0.0) { + return begin; + } + return change * (Math.pow(2, 10 * (time / duration - 1)) - pow_min) * pow_scale + begin; + } + + double BLI_easing_expo_ease_out(double time, double begin, double change, double duration) { + if(time == 0.0) { + return begin; + } + return change * (1 - (Math.pow(2, -10 * time / duration) - pow_min) * pow_scale) + begin; + } + + double BLI_easing_expo_ease_in_out(double time, double begin, double change, double duration) { + double duration_half = duration / 2.0f; + double change_half = change / 2.0f; + if(time <= duration_half) { + return BLI_easing_expo_ease_in(time, begin, change_half, duration_half); + } + return BLI_easing_expo_ease_out(time - duration_half, begin + change_half, change_half, duration_half); + } + + double BLI_easing_linear_ease(double time, double begin, double change, double duration) { + return change * time / duration + begin; + } + + double BLI_easing_quad_ease_in(double time, double begin, double change, double duration) { + time /= duration; + return change * time * time + begin; + } + + double BLI_easing_quad_ease_out(double time, double begin, double change, double duration) { + time /= duration; + return -change * time * (time - 2) + begin; + } + + double BLI_easing_quad_ease_in_out(double time, double begin, double change, double duration) { + if((time /= duration / 2) < 1.0f) { + return change / 2 * time * time + begin; + } + time -= 1.0f; + return -change / 2 * (time * (time - 2) - 1) + begin; + } + + double BLI_easing_quart_ease_in(double time, double begin, double change, double duration) { + time /= duration; + return change * time * time * time * time + begin; + } + + double BLI_easing_quart_ease_out(double time, double begin, double change, double duration) { + time = time / duration - 1; + return -change * (time * time * time * time - 1) + begin; + } + + double BLI_easing_quart_ease_in_out(double time, double begin, double change, double duration) { + if((time /= duration / 2) < 1.0f) { + return change / 2 * time * time * time * time + begin; + } + time -= 2.0f; + return -change / 2 * (time * time * time * time - 2) + begin; + } + + double BLI_easing_quint_ease_in(double time, double begin, double change, double duration) { + time /= duration; + return change * time * time * time * time * time + begin; + } + + double BLI_easing_quint_ease_out(double time, double begin, double change, double duration) { + time = time / duration - 1; + return change * (time * time * time * time * time + 1) + begin; + } + + double BLI_easing_quint_ease_in_out(double time, double begin, double change, double duration) { + if((time /= duration / 2) < 1.0f) { + return change / 2 * time * time * time * time * time + begin; + } + time -= 2.0f; + return change / 2 * (time * time * time * time * time + 2) + begin; + } + + double BLI_easing_sine_ease_in(double time, double begin, double change, double duration) { + return -change * Math.cos(time / duration * (double) Math.PI / 2) + change + begin; + } + + double BLI_easing_sine_ease_out(double time, double begin, double change, double duration) { + return change * Math.sin(time / duration * (double) Math.PI / 2) + begin; + } + + double BLI_easing_sine_ease_in_out(double time, double begin, double change, double duration) { + return -change / 2 * (Math.cos((double) Math.PI * time / duration) - 1) + begin; + } + } diff --git a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java index f9de9f4ba..1e0f7d061 100644 --- a/src/main/java/com/hbm/render/anim/BusAnimationSequence.java +++ b/src/main/java/com/hbm/render/anim/BusAnimationSequence.java @@ -3,109 +3,134 @@ package com.hbm.render.anim; import java.util.ArrayList; import java.util.List; -import com.hbm.render.anim.BusAnimationKeyframe.InterpolationType; +import com.hbm.render.anim.BusAnimationKeyframe.IType; //the actual bus, a sequence of keyframes with their own behavior and such public class BusAnimationSequence { - - //not actually useful for anything since the renderer usually handles - //this part, but it's nice to have for distinction just in case - public static enum EnumTransformation { - UNDEFINED, - ROTATION, - TRANSLATION, - SCALE + + public static enum Dimension { + TX, + TY, + TZ, + RX, + RY, + RZ, + SX, + SY, + SZ } - private List keyframes = new ArrayList(); - public EnumTransformation transformationType; + + // Storing a matrix of keyframe data, each keyframe stores a SINGLE dimension, so we can stagger frames over each parameter + private List> transformKeyframes = new ArrayList>(9); + + public double[] offset = new double[3]; + + // swizzle me timbers + public double[] rotMode = new double[] { 0, 1, 2 }; + + + public BusAnimationSequence() { + // Initialise our keyframe storage, since it's multidimensional + for(int i = 0; i < 9; i++) { + transformKeyframes.add(new ArrayList()); + } + } + + - //appends a keyframe at the end of the sequence - public BusAnimationSequence addKeyframe(BusAnimationKeyframe keyframe) { - - keyframes.add(keyframe); + // Adds a keyframe to the given dimension + public BusAnimationSequence addKeyframe(Dimension dimension, BusAnimationKeyframe keyframe) { + transformKeyframes.get(dimension.ordinal()).add(keyframe); return this; } + + public BusAnimationSequence addKeyframe(Dimension dimension, double value, int duration) { + return addKeyframe(dimension, new BusAnimationKeyframe(value, duration)); + } + + + // Two helper methods for the old hard-coded animations + public BusAnimationSequence addPos(double x, double y, double z, int duration) { + return addPos(x, y, z, duration, IType.LINEAR); + } + public BusAnimationSequence addPos(double x, double y, double z, int duration, IType type) { + addKeyframe(Dimension.TX, new BusAnimationKeyframe(x, duration, type)); + addKeyframe(Dimension.TY, new BusAnimationKeyframe(y, duration, type)); + addKeyframe(Dimension.TZ, new BusAnimationKeyframe(z, duration, type)); + return this; + } + + public BusAnimationSequence addRot(double x, double y, double z, int duration) { + addKeyframe(Dimension.RX, new BusAnimationKeyframe(x, duration)); + addKeyframe(Dimension.RY, new BusAnimationKeyframe(y, duration)); + addKeyframe(Dimension.RZ, new BusAnimationKeyframe(z, duration)); + return this; + } //all transformation data is absolute, additive transformations have not yet been implemented public double[] getTransformation(int millis) { - - BusAnimationKeyframe frame = getFrameAtTime(millis); - - if(frame == null) - return null; - - //if no interpolation type is set, just return the new coords - if(frame.interpolationType == InterpolationType.NONE) - return frame.toArray(); - - //if this is the first frame, the "previous" values are 0 - double[] previous = new double[] {0, 0, 0}; - - BusAnimationKeyframe lastFrame = getPreviousFrame(frame); - - if(lastFrame != null) - previous = lastFrame.toArray(); - - //the time elapsed during the frame is the total current time minus the starting timie of the current frame - int frameTime = millis - getStartingTime(frame); - double interpolation = (double)frameTime / (double)frame.duration; + double[] transform = new double[15]; - double interX = (frame.x - previous[0]) * interpolation + previous[0]; - double interY = (frame.y - previous[1]) * interpolation + previous[1]; - double interZ = (frame.z - previous[2]) * interpolation + previous[2]; - - return new double[] {interX, interY, interZ}; - } - - public BusAnimationKeyframe getFrameAtTime(int millis) { + for(int i = 0; i < 9; i++) { + List keyframes = transformKeyframes.get(i); - int time = 0; - - for(BusAnimationKeyframe frame : keyframes) { - time += frame.duration; - - if(millis < time) - return frame; + BusAnimationKeyframe currentFrame = null; + BusAnimationKeyframe previousFrame = null; + + int startTime = 0; + int endTime = 0; + for(BusAnimationKeyframe keyframe : keyframes) { + startTime = endTime; + endTime += keyframe.duration; + previousFrame = currentFrame; + currentFrame = keyframe; + if(millis < endTime) break; + } + + if(currentFrame == null) { + // Scale defaults to 1, others are 0 + transform[i] = i >= 6 ? 1 : 0; + continue; + } + + if(millis >= endTime) { + transform[i] = currentFrame.value; + continue; + } + + if(previousFrame != null && previousFrame.interpolationType == IType.CONSTANT) { + transform[i] = previousFrame.value; + continue; + } + + transform[i] = currentFrame.interpolate(startTime, millis, previousFrame); } - - return null; - } - - public BusAnimationKeyframe getPreviousFrame(BusAnimationKeyframe frame) { - int index = keyframes.indexOf(frame); - - if(index == 0) - return null; - - return keyframes.get(index - 1); - } - - public int getStartingTime(BusAnimationKeyframe start) { - - int time = 0; - - for(BusAnimationKeyframe frame : keyframes) { - - if(frame == start) - break; - - time += frame.duration; - } - - return time; + transform[9] = offset[0]; + transform[10] = offset[1]; + transform[11] = offset[2]; + + transform[12] = rotMode[0]; + transform[13] = rotMode[1]; + transform[14] = rotMode[2]; + + return transform; } public int getTotalTime() { + int highestTime = 0; - int time = 0; - - for(BusAnimationKeyframe frame : keyframes) { - time += frame.duration; + for(List keyframes : transformKeyframes) { + int time = 0; + for(BusAnimationKeyframe frame : keyframes) { + time += frame.duration; + } + + highestTime = Math.max(time, highestTime); } - return time; + return highestTime; } } diff --git a/src/main/java/com/hbm/render/anim/HbmAnimations.java b/src/main/java/com/hbm/render/anim/HbmAnimations.java index ca9e9f986..e5cc8becd 100644 --- a/src/main/java/com/hbm/render/anim/HbmAnimations.java +++ b/src/main/java/com/hbm/render/anim/HbmAnimations.java @@ -4,6 +4,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import org.lwjgl.opengl.GL11; + public class HbmAnimations { //in flans mod and afaik also MW, there's an issue that there is only one @@ -13,15 +15,26 @@ public class HbmAnimations { //my approach adds 9 timers, one for every inventory slot. you can still //"trick" the system by putting a weapon into a different slot while an //animation is playing, though this will cancel the animation entirely. - public static final Animation[] hotbar = new Animation[9]; + public static final Animation[][] hotbar = new Animation[9][8]; //now with 8 parallel rails per slot! time to get railed! public static enum AnimType { - RELOAD, //animation for every reload cycle - CYCLE, //animation for every firing cycle - ALT_CYCLE, //animation for alt fire cycles - SPINUP, //animation for actionstart - SPINDOWN //animation for actionend + RELOAD, //either a full reload or start of a reload + @Deprecated RELOAD_EMPTY, //same as reload, but the mag is completely empty + RELOAD_CYCLE, //animation that plays for every individual round (for shotguns and similar single round loading weapons) + RELOAD_END, //animation for transitioning from our RELOAD_CYCLE to idle + CYCLE, //animation for every firing cycle + CYCLE_EMPTY, //animation for the final shot in the magazine + CYCLE_DRY, //animation for trying to fire, but no round is available + ALT_CYCLE, //animation for alt fire cycles + SPINUP, //animation for actionstart + SPINDOWN, //animation for actionend + EQUIP, //animation for drawing the weapon + INSPECT, //animation for inspecting the weapon + JAMMED //animation for jammed weapons } + + // A NOTE ON SHOTGUN STYLE RELOADS + // Make sure the RELOAD and RELOAD_EMPTY adds shells, not just RELOAD_CYCLE, they all proc once for each loaded shell public static class Animation { @@ -32,15 +45,25 @@ public class HbmAnimations { public long startMillis; //the animation bus public BusAnimation animation; + // If set, don't cancel this animation when the timer ends, instead wait for the next to start + public boolean holdLastFrame = false; public Animation(String key, long startMillis, BusAnimation animation) { this.key = key; this.startMillis = startMillis; this.animation = animation; } + + public Animation(String key, long startMillis, BusAnimation animation, boolean holdLastFrame) { + this.key = key; + this.startMillis = startMillis; + this.animation = animation; + this.holdLastFrame = holdLastFrame; + } } - - public static Animation getRelevantAnim() { + + public static Animation getRelevantAnim() { return getRelevantAnim(0); } + public static Animation getRelevantAnim(int index) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; int slot = player.inventory.currentItem; @@ -53,19 +76,20 @@ public class HbmAnimations { slot = Math.abs(slot) % 9; } - if(hotbar[slot] == null) + if(hotbar[slot][index] == null) return null; - if(hotbar[slot].key.equals(stack.getItem().getUnlocalizedName())) { - return hotbar[slot]; + if(hotbar[slot][index].key.equals(stack.getItem().getUnlocalizedName())) { + return hotbar[slot][index]; } return null; } - - public static double[] getRelevantTransformation(String bus) { + + public static double[] getRelevantTransformation(String bus) { return getRelevantTransformation(bus, 0); } + public static double[] getRelevantTransformation(String bus, int index) { - Animation anim = HbmAnimations.getRelevantAnim(); + Animation anim = HbmAnimations.getRelevantAnim(index); if(anim != null) { @@ -81,8 +105,27 @@ public class HbmAnimations { return trans; } } + + return new double[] { + 0, 0, 0, // position + 0, 0, 0, // rotation + 1, 1, 1, // scale + 0, 0, 0, // offset + 0, 1, 2, // XYZ order + }; + } + + public static void applyRelevantTransformation(String bus) { applyRelevantTransformation(bus, 0); } + public static void applyRelevantTransformation(String bus, int index) { + double[] transform = getRelevantTransformation(bus, index); + int[] rot = new int[] { (int)transform[12], (int)transform[13], (int)transform[14] }; - return new double[] {0, 0, 0}; + GL11.glTranslated(transform[0], transform[1], transform[2]); + GL11.glRotated(transform[3 + rot[0]], rot[0] == 0 ? 1 : 0, rot[0] == 1 ? 1 : 0, rot[0] == 2 ? 1 : 0); + GL11.glRotated(transform[3 + rot[1]], rot[1] == 0 ? 1 : 0, rot[1] == 1 ? 1 : 0, rot[1] == 2 ? 1 : 0); + GL11.glRotated(transform[3 + rot[2]], rot[2] == 0 ? 1 : 0, rot[2] == 1 ? 1 : 0, rot[2] == 2 ? 1 : 0); + GL11.glTranslated(-transform[9], -transform[10], -transform[11]); + GL11.glScaled(transform[6], transform[7], transform[8]); } } diff --git a/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java b/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java index 171cba047..d0441fa3a 100644 --- a/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java +++ b/src/main/java/com/hbm/render/block/RenderBlockDecoModel.java @@ -38,7 +38,7 @@ public class RenderBlockDecoModel implements ISimpleBlockRenderingHandler { GL11.glTranslated(0, 0.1D, 0); GL11.glScaled(1.2D, 1.2D, 1.2D); tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, modelId, false); + ObjUtil.renderWithIcon((WavefrontObject) model, iicon, tessellator, 0, false); tessellator.draw(); diff --git a/src/main/java/com/hbm/render/block/RenderBlockMultipass.java b/src/main/java/com/hbm/render/block/RenderBlockMultipass.java index 9932ae2a1..b4f567573 100644 --- a/src/main/java/com/hbm/render/block/RenderBlockMultipass.java +++ b/src/main/java/com/hbm/render/block/RenderBlockMultipass.java @@ -1,21 +1,13 @@ package com.hbm.render.block; -import java.awt.Color; - import org.lwjgl.opengl.GL11; import com.hbm.blocks.IBlockMultiPass; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockMotherOfAllOres; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ModItems; -import com.hbm.util.ColorUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.item.ItemStack; import net.minecraft.world.IBlockAccess; public class RenderBlockMultipass implements ISimpleBlockRenderingHandler { @@ -41,34 +33,38 @@ public class RenderBlockMultipass implements ISimpleBlockRenderingHandler { renderer.setRenderBoundsFromBlock(block); GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + IBlockMultiPass multi = (IBlockMultiPass) block; - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); - tessellator.draw(); + for(int i = 0; i < (multi.shouldRenderItemMulti() ? multi.getPasses() : 1); i++) { + this.currentPass = i; + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); + tessellator.draw(); + } /** terrible hack to make this shit work */ - if(block == ModBlocks.ore_random) { + /*if(block == ModBlocks.ore_random) { this.currentPass = 1; renderer.setOverrideBlockTexture(block.getIcon(0, metadata)); @@ -119,7 +115,7 @@ public class RenderBlockMultipass implements ISimpleBlockRenderingHandler { renderer.clearOverrideBlockTexture(); GL11.glColor3f(1F, 1F, 1F); - } + }*/ GL11.glTranslatef(0.5F, 0.5F, 0.5F); } diff --git a/src/main/java/com/hbm/render/block/RenderBoxDuct.java b/src/main/java/com/hbm/render/block/RenderBoxDuct.java index eb0d53002..ccb2ab6dc 100644 --- a/src/main/java/com/hbm/render/block/RenderBoxDuct.java +++ b/src/main/java/com/hbm/render/block/RenderBoxDuct.java @@ -6,6 +6,7 @@ import com.hbm.blocks.network.FluidDuctBox; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; +import com.hbm.render.util.RenderBlocksNT; import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.util.ColorUtil; @@ -23,7 +24,7 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { Tessellator tessellator = Tessellator.instance; FluidDuctBox duct = (FluidDuctBox) block; - int type = metadata % 3; + int type = duct.rectify(metadata); float lower = 0.125F; float upper = 0.875F; @@ -60,12 +61,30 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { FluidType type = Fluids.NONE; + renderer = RenderBlocksNT.INSTANCE.setWorld(world); + TileEntity te = world.getTileEntity(x, y, z); Tessellator tessellator = Tessellator.instance; tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); int meta = world.getBlockMetadata(x, y, z); + boolean pX = false; + boolean nX = false; + boolean pY = false; + boolean nY = false; + boolean pZ = false; + boolean nZ = false; + FluidDuctBox.cachedColor = 0xffffff; + FluidDuctBox duct = (FluidDuctBox) block; + + pX = duct.canConnectTo(world, x, y, z, Library.POS_X, te); + nX = duct.canConnectTo(world, x, y, z, Library.NEG_X, te); + pY = duct.canConnectTo(world, x, y, z, Library.POS_Y, te); + nY = duct.canConnectTo(world, x, y, z, Library.NEG_Y, te); + pZ = duct.canConnectTo(world, x, y, z, Library.POS_Z, te); + nZ = duct.canConnectTo(world, x, y, z, Library.NEG_Z, te); + if(te instanceof TileEntityPipeBaseNT) { TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; type = pipe.getType(); @@ -74,13 +93,6 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { } } - boolean pX = Library.canConnectFluid(world, x + 1, y, z, Library.POS_X, type); - boolean nX = Library.canConnectFluid(world, x - 1, y, z, Library.NEG_X, type); - boolean pY = Library.canConnectFluid(world, x, y + 1, z, Library.POS_Y, type); - boolean nY = Library.canConnectFluid(world, x, y - 1, z, Library.NEG_Y, type); - boolean pZ = Library.canConnectFluid(world, x, y, z + 1, Library.POS_Z, type); - boolean nZ = Library.canConnectFluid(world, x, y, z - 1, Library.NEG_Z, type); - int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); diff --git a/src/main/java/com/hbm/render/block/RenderCRT.java b/src/main/java/com/hbm/render/block/RenderCRT.java new file mode 100644 index 000000000..a048efafc --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderCRT.java @@ -0,0 +1,83 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockDecoCRT; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderCRT implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, metadata * 4); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crt, iicon, tessellator, (float) Math.PI * -0.5F, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z)); + + int brightness = block.getMixedBrightnessForBlock(world, x, y, z); + tessellator.setBrightness(brightness); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + float rotation = 0; + int metaOrig = world.getBlockMetadata(x, y, z); + int meta = metaOrig % 4; + + switch(meta) { + default: rotation = 0.5F * (float) Math.PI; break; + case 1: break; + case 2: rotation = 1.5F * (float) Math.PI; break; + case 3: rotation = (float) Math.PI; break; + } + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crt, "Monitor", iicon, tessellator, rotation, true); + if(metaOrig >= 8) tessellator.setBrightness(240); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crt, "Screen", iicon, tessellator, rotation, true); + tessellator.setBrightness(brightness); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockDecoCRT.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderCrystal.java b/src/main/java/com/hbm/render/block/RenderCrystal.java deleted file mode 100644 index 6cf4f830d..000000000 --- a/src/main/java/com/hbm/render/block/RenderCrystal.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockCrystal; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderCrystal implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); - tessellator.setColorOpaque_F(1, 1, 1); - - if(renderer.hasOverrideBlockTexture()) { - iicon = renderer.overrideBlockTexture; - } - - GL11.glRotated(180, 0, 1, 0); - tessellator.startDrawingQuads(); - - if(block == ModBlocks.crystal_power) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_power, iicon, tessellator, 0, false); - if(block == ModBlocks.crystal_energy) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_energy, iicon, tessellator, 0, false); - if(block == ModBlocks.crystal_robust) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_robust, iicon, tessellator, 0, false); - if(block == ModBlocks.crystal_trixite) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_trixite, iicon, tessellator, 0, false); - - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); - tessellator.setColorOpaque_F(1, 1, 1); - - if(renderer.hasOverrideBlockTexture()) { - iicon = renderer.overrideBlockTexture; - } - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float flip = 0; - float rotation = 0; - - int meta = world.getBlockMetadata(x, y, z); - - if(meta == 0) - flip = (float)Math.PI; - - if(meta == 2) - rotation = 90F / 180F * (float) Math.PI; - - if(meta == 3) - rotation = 270F / 180F * (float) Math.PI; - - if(meta == 4) - rotation = 180F / 180F * (float)Math.PI; - - if(rotation != 0F || meta == 5) - flip = (float)Math.PI * 0.5F; - - tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); - - if(block == ModBlocks.crystal_power) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_power, iicon, tessellator, rotation, flip, true); - if(block == ModBlocks.crystal_energy) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_energy, iicon, tessellator, rotation, flip, true); - if(block == ModBlocks.crystal_robust) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_robust, iicon, tessellator, rotation, flip, true); - if(block == ModBlocks.crystal_trixite) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_trixite, iicon, tessellator, rotation, flip, true); - - tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return BlockCrystal.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderFence.java b/src/main/java/com/hbm/render/block/RenderFence.java index f86d128cc..5dd5a9012 100644 --- a/src/main/java/com/hbm/render/block/RenderFence.java +++ b/src/main/java/com/hbm/render/block/RenderFence.java @@ -5,7 +5,6 @@ import com.hbm.blocks.generic.BlockMetalFence; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.world.IBlockAccess; @@ -19,58 +18,55 @@ public class RenderFence implements ISimpleBlockRenderingHandler { @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - BlockFence fence = (BlockFence) ModBlocks.fence_metal; + BlockMetalFence fence = (BlockMetalFence) ModBlocks.fence_metal; + int meta = world.getBlockMetadata(x, y, z); + + boolean xNeg = fence.canConnectFenceTo(world, x - 1, y, z); + boolean xPos = fence.canConnectFenceTo(world, x + 1, y, z); + boolean zNeg = fence.canConnectFenceTo(world, x, y, z - 1); + boolean zPos = fence.canConnectFenceTo(world, x, y, z + 1); + + boolean hasX = xNeg || xPos; + boolean hasZ = zNeg || zPos; - float f = 0.375F; - float f1 = 0.625F; - renderer.setRenderBounds((double)f, 0.0D, (double)f, (double)f1, 1.0D, (double)f1); - renderer.renderStandardBlock(fence, x, y, z); - boolean flag1 = false; - boolean flag2 = false; + boolean straightX = !hasZ && xNeg && xPos; + boolean straightZ = !hasX && zNeg && zPos; + boolean showPost = meta == 1 || (!straightX && !straightZ); - if (fence.canConnectFenceTo(world, x - 1, y, z) || fence.canConnectFenceTo(world, x + 1, y, z)) - { - flag1 = true; - } + if (!hasX && !hasZ) { + hasX = true; + } - if (fence.canConnectFenceTo(world, x, y, z - 1) || fence.canConnectFenceTo(world, x, y, z + 1)) - { - flag2 = true; - } + float f = 0.4375F; + float f1 = 0.5625F; + float f4 = xNeg ? 0.0F : f; + float f5 = xPos ? 1.0F : f1; + float f6 = zNeg ? 0.0F : f; + float f7 = zPos ? 1.0F : f1; + renderer.field_152631_f = true; - boolean flag3 = fence.canConnectFenceTo(world, x - 1, y, z); - boolean flag4 = fence.canConnectFenceTo(world, x + 1, y, z); - boolean flag5 = fence.canConnectFenceTo(world, x, y, z - 1); - boolean flag6 = fence.canConnectFenceTo(world, x, y, z + 1); + if (hasX) { + renderer.setRenderBounds((double)f4, (double)0, (double)0.5, (double)f5, (double)1, (double)0.5); + renderer.renderStandardBlock(fence, x, y, z); + } - if (!flag1 && !flag2) - { - flag1 = true; - } + if (hasZ) { + renderer.setRenderBounds((double)0.5, (double)0, (double)f6, (double)0.5, (double)1, (double)f7); + renderer.renderStandardBlock(fence, x, y, z); + } - f = 0.4375F; - f1 = 0.5625F; - float f4 = flag3 ? 0.0F : f; - float f5 = flag4 ? 1.0F : f1; - float f6 = flag5 ? 0.0F : f; - float f7 = flag6 ? 1.0F : f1; - renderer.field_152631_f = true; + if(showPost) { + f = 0.375F; + f1 = 0.625F; + renderer.setOverrideBlockTexture(fence.postIcon); + renderer.setRenderBounds((double)f, 0.0D, (double)f, (double)f1, 1.0D, (double)f1); + renderer.renderStandardBlock(fence, x, y, z); + renderer.clearOverrideBlockTexture(); + } - if (flag1) - { - renderer.setRenderBounds((double)f4, (double)0, (double)0.5, (double)f5, (double)1, (double)0.5); - renderer.renderStandardBlock(fence, x, y, z); - } - - if (flag2) - { - renderer.setRenderBounds((double)0.5, (double)0, (double)f6, (double)0.5, (double)1, (double)f7); - renderer.renderStandardBlock(fence, x, y, z); - } - - renderer.field_152631_f = false; - fence.setBlockBoundsBasedOnState(world, x, y, z); - return true; + renderer.field_152631_f = false; + fence.setBlockBoundsBasedOnState(world, x, y, z); + return true; } @Override diff --git a/src/main/java/com/hbm/render/block/RenderFoundryBasin.java b/src/main/java/com/hbm/render/block/RenderFoundryBasin.java index 342ec7838..17917603a 100644 --- a/src/main/java/com/hbm/render/block/RenderFoundryBasin.java +++ b/src/main/java/com/hbm/render/block/RenderFoundryBasin.java @@ -23,8 +23,6 @@ public class RenderFoundryBasin implements ISimpleBlockRenderingHandler { double z = 0; GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - basin.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); tessellator.startDrawingQuads(); tessellator.setNormal(0F, 1F, 0F); diff --git a/src/main/java/com/hbm/render/block/RenderFoundryMold.java b/src/main/java/com/hbm/render/block/RenderFoundryMold.java index 5958ba8e5..8d266227a 100644 --- a/src/main/java/com/hbm/render/block/RenderFoundryMold.java +++ b/src/main/java/com/hbm/render/block/RenderFoundryMold.java @@ -24,7 +24,7 @@ public class RenderFoundryMold implements ISimpleBlockRenderingHandler { GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - basin.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); + renderer.setRenderBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); tessellator.startDrawingQuads(); tessellator.setNormal(0F, 1F, 0F); diff --git a/src/main/java/com/hbm/render/block/RenderGrate.java b/src/main/java/com/hbm/render/block/RenderGrate.java index cf8eb161a..ca5f37aa6 100644 --- a/src/main/java/com/hbm/render/block/RenderGrate.java +++ b/src/main/java/com/hbm/render/block/RenderGrate.java @@ -22,7 +22,16 @@ public class RenderGrate implements ISimpleBlockRenderingHandler { tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); tessellator.setColorOpaque_F(1, 1, 1); - renderer.setRenderBounds(0.0D, meta * 0.125D, 0D, 1D, meta * 0.125D + 0.125D, 1D); + float fy = ((BlockGrate)block).getY(meta); + if(fy < 0) { + fy++; + y--; + } else if(fy >= 1) { + fy--; + y++; + } + + renderer.setRenderBounds(0.0D, fy, 0D, 1D, fy + 0.125D, 1D); renderer.renderStandardBlock(block, x, y, z); return true; } diff --git a/src/main/java/com/hbm/render/block/RenderLight.java b/src/main/java/com/hbm/render/block/RenderLight.java new file mode 100644 index 000000000..465bae66e --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderLight.java @@ -0,0 +1,118 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.machine.Spotlight; +import com.hbm.blocks.machine.SpotlightModular; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; + +public class RenderLight implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + if (!(block instanceof Spotlight)) return; + Spotlight spot = (Spotlight) block; + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, 0); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glRotated(-90, 0, 1, 0); + GL11.glScaled(1.5D, 1.5D, 1.5D); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon(spot.getModel(), spot.getPartName(0), iicon, tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if (!(block instanceof Spotlight)) return true; + Spotlight spot = (Spotlight) block; + + Tessellator tessellator = Tessellator.instance; + ForgeDirection dir = spot.getDirection(world, x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float ox = 0.5F - dir.offsetX * 0.5F, oy = 0.5F - dir.offsetY * 0.5F, oz = 0.5F - dir.offsetZ * 0.5F; + float rot = ObjUtil.getYaw(dir); + float pitch = ObjUtil.getPitch(dir); + float roll = 0; + + int connectionCount = 0; + if (spot instanceof SpotlightModular) { + ForgeDirection connectionDirection = null; + SpotlightModular modular = (SpotlightModular) spot; + + // Searching through only adjacent blocks is simple, iterate through all directions ignoring the root and its opposite + // Once we have found any valid connection, we'll only connect in that one axis + for (ForgeDirection availableDir : ForgeDirection.VALID_DIRECTIONS) { + if (availableDir == dir || availableDir == dir.getOpposite()) continue; + if (modular.canConnectTo(world, x + availableDir.offsetX, y + availableDir.offsetY, z + availableDir.offsetZ)) { + connectionCount++; + connectionDirection = availableDir; + + break; + } + } + + if (connectionDirection != null) { + // Check if we're sandwiched between two lights + if (modular.canConnectTo(world, x - connectionDirection.offsetX, y - connectionDirection.offsetY, z - connectionDirection.offsetZ)) { + connectionCount++; + } + + roll = getRotation(connectionDirection, dir); + } + } + + tessellator.addTranslation(x + ox, y + oy, z + oz); + ObjUtil.renderPartWithIcon(spot.getModel(), spot.getPartName(connectionCount), block.getIcon(0, 0), tessellator, rot, pitch, roll, false); + tessellator.addTranslation(-x - ox, -y - oy, -z - oz); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return Spotlight.renderID; + } + + // This is very ad-hoc, which isn't ideal + private float getRotation(ForgeDirection dir, ForgeDirection axis) { + float flipX = axis == ForgeDirection.DOWN || axis == ForgeDirection.NORTH || axis == ForgeDirection.WEST ? -0.5F : 0.5F; + float addX = axis == ForgeDirection.NORTH || axis == ForgeDirection.SOUTH ? -0.5F : 0; + boolean flipNS = axis == ForgeDirection.WEST; + switch (dir) { + case NORTH: return flipNS ? (float)Math.PI : 0; + case SOUTH: return !flipNS ? (float)Math.PI : 0; + case EAST: return (float)Math.PI * (flipX + addX); + case WEST: return (float)Math.PI * (-flipX + addX); + case UP: return (float)Math.PI * -0.5F; + case DOWN: return (float)Math.PI * 0.5F; + default: return 0; + } + } + +} diff --git a/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java b/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java deleted file mode 100644 index 0cb029690..000000000 --- a/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailNarrowCurve; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderNarrowCurveRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glScaled(0.2, 0.2, 0.2); - GL11.glTranslated(2.5, -0.0625, -1.5); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 12) - rotation = 90F / 180F * (float) Math.PI; - if(meta == 14) - rotation = 180F / 180F * (float) Math.PI; - if(meta == 13) - rotation = 270F / 180F * (float) Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailNarrowCurve.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java b/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java deleted file mode 100644 index 3f2c40c78..000000000 --- a/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailNarrowStraight; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderNarrowStraightRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - int meta = world.getBlockMetadata(x, y, z); - - float rotation = 0; - - if(meta == 2 || meta == 3 || meta == 12 || meta == 13) - rotation = 90F / 180F * (float) Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailNarrowStraight.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderPartitioner.java b/src/main/java/com/hbm/render/block/RenderPartitioner.java new file mode 100644 index 000000000..f70b68577 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderPartitioner.java @@ -0,0 +1,75 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.network.CranePartitioner; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderPartitioner implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + tessellator.setColorOpaque_F(1, 1, 1); + + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslatef(0F, -0.5F, 0F); + + tessellator.startDrawingQuads(); + drawPartitioner(tessellator, block, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + + int meta = world.getBlockMetadata(x, y, z); + float rotation = 0; + if(meta == 2) rotation = 90F / 180F * (float) Math.PI; + if(meta == 4) rotation = 180F / 180F * (float) Math.PI; + if(meta == 5) rotation = 0F / 180F * (float) Math.PI; + if(meta == 3) rotation = 270F / 180F * (float)Math.PI; + drawPartitioner(tessellator, block, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + private static void drawPartitioner(Tessellator tessellator, Block block, float rotation, boolean shadeNormals) { + CranePartitioner partitioner = (CranePartitioner) block; + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Side", partitioner.getIcon(0, 0), tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Back", partitioner.iconBack, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Top_Top.001", partitioner.iconTop, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Inner", partitioner.iconInner, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "InnerSide", partitioner.iconInnerSide, tessellator, rotation, shadeNormals); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.crane_buffer, "Belt", partitioner.iconBelt, tessellator, rotation, shadeNormals); + } + + @Override + public int getRenderId() { + return CranePartitioner.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderPedestal.java b/src/main/java/com/hbm/render/block/RenderPedestal.java new file mode 100644 index 000000000..5c8eef3dc --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderPedestal.java @@ -0,0 +1,68 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockPedestal; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public class RenderPedestal implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + + for(int i = 0; i < 3; i++) { + if(i == 0) renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 0.25, 1.0); + if(i == 1) renderer.setRenderBounds(0.0, 0.75, 0.0, 1.0, 1.0, 1.0); + if(i == 2) renderer.setRenderBounds(0.125, 0.25, 0.125, 0.875, 0.75, 0.875); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); + } + + tessellator.draw(); + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 0.25, 1.0); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.0, 0.75, 0.0, 1.0, 1.0, 1.0); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.125, 0.25, 0.125, 0.875, 0.75, 0.875); + renderer.renderStandardBlock(block, x, y, z); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockPedestal.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderRTTY.java b/src/main/java/com/hbm/render/block/RenderRTTY.java index 0f657c636..68b3af3ec 100644 --- a/src/main/java/com/hbm/render/block/RenderRTTY.java +++ b/src/main/java/com/hbm/render/block/RenderRTTY.java @@ -4,6 +4,7 @@ import com.hbm.blocks.network.RadioTorchBase; import com.hbm.main.ResourceManager; import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.network.TileEntityRadioTorchBase; +import com.hbm.tileentity.network.TileEntityRadioTorchLogic; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; @@ -39,6 +40,14 @@ public class RenderRTTY implements ISimpleBlockRenderingHandler { icon = block.getIcon(1, 0); } } + //consequences of my actions + if(tile instanceof TileEntityRadioTorchLogic) { + TileEntityRadioTorchLogic rtty = (TileEntityRadioTorchLogic) tile; + + if(rtty.lastState > 0) { + icon = block.getIcon(1, 0); + } + } float flip = 0; float rotation = 0; diff --git a/src/main/java/com/hbm/render/block/RenderRail.java b/src/main/java/com/hbm/render/block/RenderRail.java new file mode 100644 index 000000000..ab366486b --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderRail.java @@ -0,0 +1,45 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.IRenderBlock; +import com.hbm.blocks.rail.RailStandardStraight; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public class RenderRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IRenderBlock rail = (IRenderBlock) block; + rail.renderInventory(tessellator, block, metadata); + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + Tessellator tessellator = Tessellator.instance; + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + int meta = world.getBlockMetadata(x, y, z); + IRenderBlock rail = (IRenderBlock) block; + rail.renderWorld(tessellator, block, meta, world, x, y, z); + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailStandardStraight.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderReeds.java b/src/main/java/com/hbm/render/block/RenderReeds.java index a237a79c8..a07a16a31 100644 --- a/src/main/java/com/hbm/render/block/RenderReeds.java +++ b/src/main/java/com/hbm/render/block/RenderReeds.java @@ -1,6 +1,7 @@ package com.hbm.render.block; import com.hbm.blocks.generic.BlockReeds; +import com.hbm.config.ClientConfig; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; @@ -27,10 +28,15 @@ public class RenderReeds implements ISimpleBlockRenderingHandler { tessellator.setColorOpaque_F(r * m, g * m, b * m); int depth = 0; - for(int i = y - 1; i > 0 ; i--) { - Block water = world.getBlock(x, i, z); - depth = y - i; - if(water != Blocks.water && water != Blocks.flowing_water) break; + + if(!ClientConfig.RENDER_REEDS.get()) { + depth = 1; + } else { + for(int i = y - 1; i > 0 ; i--) { + Block water = world.getBlock(x, i, z); + depth = y - i; + if(water != Blocks.water && water != Blocks.flowing_water) break; + } } BlockReeds reeds = (BlockReeds) block; diff --git a/src/main/java/com/hbm/render/block/RenderScaffoldBlock.java b/src/main/java/com/hbm/render/block/RenderScaffoldBlock.java index 69be9500e..0298b24ad 100644 --- a/src/main/java/com/hbm/render/block/RenderScaffoldBlock.java +++ b/src/main/java/com/hbm/render/block/RenderScaffoldBlock.java @@ -49,14 +49,31 @@ public class RenderScaffoldBlock implements ISimpleBlockRenderingHandler { iicon = renderer.overrideBlockTexture; } - float rotation = (float) -Math.PI; + float ox = x + 0.5F; + float oy = y; + float oz = z + 0.5F; - if((world.getBlockMetadata(x, y, z) & 8) == 0) - rotation = -90F / 180F * (float) Math.PI; + float rotation = (float) Math.PI * -0.5F; + float pitch = 0; - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.scaffold, iicon, tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + int meta = world.getBlockMetadata(x, y, z); + + if(meta >= 12) { + pitch = (float) Math.PI * 0.5F; + rotation = (float) -Math.PI; + ox = x + 1.0F; + oy = y + 0.5F; + } else if(meta >= 8) { + rotation = (float) -Math.PI; + } else if(meta >= 4) { + pitch = (float) Math.PI * 0.5F; + oy = y + 0.5F; + oz = z; + } + + tessellator.addTranslation(ox, oy, oz); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.scaffold, iicon, tessellator, rotation, pitch, true); + tessellator.addTranslation(-ox, -oy, -oz); return true; } diff --git a/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java b/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java deleted file mode 100644 index 5cf6381e1..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardBuffer; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardBufferRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(0.3, 0.3, 0.3); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 12) rotation = (float) Math.PI; - if(meta == 14) rotation = 270F / 180F * (float) Math.PI; - if(meta == 15) rotation = 90F / 180F * (float) Math.PI; - - if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardBuffer.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java b/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java deleted file mode 100644 index a238d461d..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardCurve; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardCurveRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glScaled(0.2, 0.2, 0.2); - GL11.glTranslated(2.5, -0.0625, -1.5); - GL11.glRotated(90, 0, 1, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 15) - rotation = 90F / 180F * (float) Math.PI; - if(meta == 12) - rotation = 180F / 180F * (float) Math.PI; - if(meta == 14) - rotation = 270F / 180F * (float) Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardCurve.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderStandardRampRail.java b/src/main/java/com/hbm/render/block/RenderStandardRampRail.java deleted file mode 100644 index eb1e245fd..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardRampRail.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardRamp; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardRampRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(0.3, 0.3, 0.3); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 15) - rotation = 90F / 180F * (float) Math.PI; - if(meta == 12) - rotation = 180F / 180F * (float) Math.PI; - if(meta == 14) - rotation = 270F / 180F * (float) Math.PI; - - if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardRamp.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java deleted file mode 100644 index 5108aaea2..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardStraight; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardStraightRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(0.3, 0.3, 0.3); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; - - if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardStraight.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderSteelCorner.java b/src/main/java/com/hbm/render/block/RenderSteelCorner.java new file mode 100644 index 000000000..9867847cb --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderSteelCorner.java @@ -0,0 +1,94 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.DecoBlock; +import com.hbm.render.util.RenderBlocksNT; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public class RenderSteelCorner implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + tessellator.startDrawingQuads(); + + + renderer.setRenderBounds(0D, 0D, 0.875D, 0.75D, 1D, 1D); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, -1F, 0F); renderer.renderFaceYNeg(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, 0, 0, 0, block.getIcon(0, 0)); + + + renderer.setRenderBounds(0.75D, 0D, 0.75D, 1D, 1D, 1D); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, -1F, 0F); renderer.renderFaceYNeg(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, 0, 0, 0, block.getIcon(0, 0)); + + renderer.setRenderBounds(0.875D, 0D, 0D, 1D, 1D, 0.75D); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, -1F, 0F); renderer.renderFaceYNeg(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, 0, 0, 0, block.getIcon(0, 0)); + + tessellator.draw(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + Tessellator tessellator = Tessellator.instance; + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + int meta = world.getBlockMetadata(x, y, z); + + renderer = RenderBlocksNT.INSTANCE.setWorld(world); + + switch(meta) { + case 2: + renderer.setRenderBounds(0.25D, 0D, 0.875D, 1D, 1D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0D, 0D, 0.75D, 0.25D, 1D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0D, 0D, 0D, 0.125D, 1D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + break; + case 3: + renderer.setRenderBounds(0D, 0D, 0D, 0.75D, 1D, 0.125D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.75D, 0D, 0D, 1D, 1D, 0.25D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.875D, 0D, 0.25D, 1D, 1D, 1D); renderer.renderStandardBlock(block, x, y, z); + break; + case 4: + renderer.setRenderBounds(0.875D, 0D, 0D, 1D, 1D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.75D, 0D, 0.75D, 1D, 1D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0D, 0D, 0.875D, 0.75D, 1D, 1D); renderer.renderStandardBlock(block, x, y, z); + break; + case 5: + renderer.setRenderBounds(0D, 0D, 0.25D, 0.125D, 1D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0D, 0D, 0D, 0.25D, 1D, 0.25D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.25D, 0D, 0D, 1D, 1D, 0.125D); renderer.renderStandardBlock(block, x, y, z); + break; + } + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return DecoBlock.renderIDCorner; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderSteelWall.java b/src/main/java/com/hbm/render/block/RenderSteelWall.java new file mode 100644 index 000000000..a9744ab5b --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderSteelWall.java @@ -0,0 +1,61 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.DecoBlock; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public class RenderSteelWall implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + GL11.glTranslatef(-0.5F, -0.5F, -0.9375F); + + renderer.setRenderBounds(0D, 0D, 0.875D, 1D, 1D, 1D); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, -1F, 0F); renderer.renderFaceYNeg(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, 0, 0, 0, block.getIcon(0, 0)); + tessellator.draw(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + Tessellator tessellator = Tessellator.instance; + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + int meta = world.getBlockMetadata(x, y, z); + + switch(meta) { + case 2: renderer.setRenderBounds(0D, 0D, 0.875D, 1D, 1D, 1D); break; + case 3: renderer.setRenderBounds(0D, 0D, 0D, 1D, 1D, 0.125D); break; + case 4: renderer.setRenderBounds(0.875D, 0D, 0D, 1D, 1D, 1D); break; + case 5: renderer.setRenderBounds(0D, 0D, 0D, 0.125D, 1D, 1D); break; + } + + renderer.renderStandardBlock(block, x, y, z); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return DecoBlock.renderIDWall; + } + +} diff --git a/src/main/java/com/hbm/render/block/RenderTestPipe.java b/src/main/java/com/hbm/render/block/RenderTestPipe.java index 770e2ed7f..e535eccc5 100644 --- a/src/main/java/com/hbm/render/block/RenderTestPipe.java +++ b/src/main/java/com/hbm/render/block/RenderTestPipe.java @@ -2,7 +2,7 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; -import com.hbm.blocks.test.TestPipe; +import com.hbm.blocks.network.FluidDuctStandard; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; @@ -146,6 +146,6 @@ public class RenderTestPipe implements ISimpleBlockRenderingHandler { @Override public int getRenderId() { - return TestPipe.renderID; + return FluidDuctStandard.renderID; } } diff --git a/src/main/java/com/hbm/render/block/RenderToaster.java b/src/main/java/com/hbm/render/block/RenderToaster.java new file mode 100644 index 000000000..a5938e20c --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderToaster.java @@ -0,0 +1,80 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockDecoToaster; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderToaster implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, metadata * 4); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.25, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.toaster, iicon, tessellator, (float) Math.PI * -0.5F, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z)); + + int brightness = block.getMixedBrightnessForBlock(world, x, y, z); + tessellator.setBrightness(brightness); + tessellator.setColorOpaque_F(1, 1, 1); + + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + float rotation = 0; + int metaOrig = world.getBlockMetadata(x, y, z); + int meta = metaOrig % 4; + + switch(meta) { + default: rotation = 0.5F * (float) Math.PI; break; + case 1: break; + case 2: rotation = 1.5F * (float) Math.PI; break; + case 3: rotation = (float) Math.PI; break; + } + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.toaster, iicon, tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockDecoToaster.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/ct/CTContext.java b/src/main/java/com/hbm/render/block/ct/CTContext.java index 30e1e9126..d028d2933 100644 --- a/src/main/java/com/hbm/render/block/ct/CTContext.java +++ b/src/main/java/com/hbm/render/block/ct/CTContext.java @@ -80,7 +80,7 @@ public class CTContext { int[] coord = dirs[j]; Block neighbor = world.getBlock(x + coord[0], y + coord[1], z + coord[2]); - if(neighbor instanceof IBlockCT && ((IBlockCT) neighbor).canConnect(world, x + coord[0], y + coord[1], z + coord[2], (IBlockCT)block)) { + if(((IBlockCT) block).canConnect(world, x + coord[0], y + coord[1], z + coord[2], neighbor)) { cons[j] = true; } } diff --git a/src/main/java/com/hbm/render/block/ct/IBlockCT.java b/src/main/java/com/hbm/render/block/ct/IBlockCT.java index 66bd967c0..c672784c0 100644 --- a/src/main/java/com/hbm/render/block/ct/IBlockCT.java +++ b/src/main/java/com/hbm/render/block/ct/IBlockCT.java @@ -1,5 +1,6 @@ package com.hbm.render.block.ct; +import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -8,7 +9,7 @@ public interface IBlockCT { public IIcon[] getFragments(IBlockAccess world, int x, int y, int z); - public default boolean canConnect(IBlockAccess world, int x, int y, int z, IBlockCT block) { + public default boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { return this == block; } diff --git a/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java b/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java index e59c4a6b5..498e81e3a 100644 --- a/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java +++ b/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java @@ -26,18 +26,15 @@ public class RenderBlocksCT extends RenderBlocks { VertInfo bc; VertInfo br; - Tessellator tess; - public RenderBlocksCT() { super(); - this.tess = Tessellator.instance; } public void prepWorld(IBlockAccess acc) { this.blockAccess = acc; } - private void initSideInfo() { + private void initSideInfo(int side) { if(!this.enableAO) return; @@ -49,15 +46,42 @@ public class RenderBlocksCT extends RenderBlocks { * it's only the color in ONE PARTICULAR SIDE. well thanks for that i think that's rather poggers, lex. */ - float red = (colorRedTopLeft + colorRedTopRight + colorRedBottomLeft + colorRedBottomRight) / 4F; + /*float red = (colorRedTopLeft + colorRedTopRight + colorRedBottomLeft + colorRedBottomRight) / 4F; float green = (colorGreenTopLeft + colorGreenTopRight + colorGreenBottomLeft + colorGreenBottomRight) / 4F; float blue = (colorBlueTopLeft + colorBlueTopRight + colorBlueBottomLeft + colorBlueBottomRight) / 4F; - int light = (brightnessTopLeft + brightnessTopRight + brightnessBottomLeft + brightnessBottomRight) / 4; + int light = (brightnessTopLeft + brightnessTopRight + brightnessBottomLeft + brightnessBottomRight) / 4;*/ - this.tl = new VertInfo(red, green, blue, light); - this.tr = new VertInfo(red, green, blue, light); - this.bl = new VertInfo(red, green, blue, light); - this.br = new VertInfo(red, green, blue, light); + if(side == ForgeDirection.SOUTH.ordinal()) { + this.tl = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.tr = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.bl = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.br = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else if(side == ForgeDirection.NORTH.ordinal()) { + this.tr = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.br = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.tl = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.bl = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else if(side == ForgeDirection.EAST.ordinal()) { + this.bl = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.tl = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.br = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.tr = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else if(side == ForgeDirection.WEST.ordinal()) { + this.tr = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.br = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.tl = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.bl = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else if(side == ForgeDirection.UP.ordinal()) { + this.br = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.bl = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.tr = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.tl = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else { + this.tl = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.tr = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.bl = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.br = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } this.tc = VertInfo.avg(tl, tr); this.bc = VertInfo.avg(bl, br); @@ -82,7 +106,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.EAST.ordinal()); CTFace face = CTContext.faces[ForgeDirection.EAST.ordinal()]; /// ORDER: LEXICAL /// @@ -99,7 +123,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceXNeg(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.WEST.ordinal()); CTFace face = CTContext.faces[ForgeDirection.WEST.ordinal()]; /// ORDER: LEXICAL /// @@ -116,7 +140,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceYPos(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.UP.ordinal()); CTFace face = CTContext.faces[ForgeDirection.UP.ordinal()]; /// ORDER: LEXICAL /// @@ -133,7 +157,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceYNeg(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.DOWN.ordinal()); CTFace face = CTContext.faces[ForgeDirection.DOWN.ordinal()]; /// ORDER: LEXICAL /// @@ -150,7 +174,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceZPos(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.SOUTH.ordinal()); CTFace face = CTContext.faces[ForgeDirection.SOUTH.ordinal()]; /// ORDER: LEXICAL /// @@ -167,7 +191,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.NORTH.ordinal()); CTFace face = CTContext.faces[ForgeDirection.NORTH.ordinal()]; /// ORDER: LEXICAL /// @@ -213,13 +237,13 @@ public class RenderBlocksCT extends RenderBlocks { boolean debugColor = false; /// ORDER: ROTATIONAL /// - if(debugColor) tess.setColorOpaque_F(1F, 1F, 0F); + if(debugColor) Tessellator.instance.setColorOpaque_F(1F, 1F, 0F); drawVert(ftr, icon.getMaxU(), icon.getMinV(), ntr); - if(debugColor) tess.setColorOpaque_F(1F, 0F, 0F); + if(debugColor) Tessellator.instance.setColorOpaque_F(1F, 0F, 0F); drawVert(ftl, icon.getMinU(), icon.getMinV(), ntl); - if(debugColor) tess.setColorOpaque_F(0F, 0F, 1F); + if(debugColor) Tessellator.instance.setColorOpaque_F(0F, 0F, 1F); drawVert(fbl, icon.getMinU(), icon.getMaxV(), nbl); - if(debugColor) tess.setColorOpaque_F(0F, 1F, 0F); + if(debugColor) Tessellator.instance.setColorOpaque_F(0F, 1F, 0F); drawVert(fbr, icon.getMaxU(), icon.getMaxV(), nbr); } @@ -230,11 +254,11 @@ public class RenderBlocksCT extends RenderBlocks { private void drawVert(double x, double y, double z, double u, double v, VertInfo info) { if(this.enableAO) { - tess.setColorOpaque_F(info.red, info.green, info.blue); - tess.setBrightness(info.brightness); + Tessellator.instance.setColorOpaque_F(info.red, info.green, info.blue); + Tessellator.instance.setBrightness(info.brightness); } - tess.addVertexWithUV(x, y, z, u, v); + Tessellator.instance.addVertexWithUV(x, y, z, u, v); } private double[] avgCoords(double[] first, double[] second) { @@ -288,32 +312,32 @@ public class RenderBlocksCT extends RenderBlocks { GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tess.startDrawingQuads(); - tess.setNormal(0.0F, -1.0F, 0.0F); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, -1.0F, 0.0F); super.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 0, meta)); - tess.draw(); - tess.startDrawingQuads(); - tess.setNormal(0.0F, 1.0F, 0.0F); + Tessellator.instance.draw(); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 1.0F, 0.0F); super.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 1, meta)); - tess.draw(); + Tessellator.instance.draw(); - tess.startDrawingQuads(); - tess.setNormal(0.0F, 0.0F, -1.0F); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, -1.0F); super.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 2, meta)); - tess.draw(); - tess.startDrawingQuads(); - tess.setNormal(0.0F, 0.0F, 1.0F); + Tessellator.instance.draw(); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(0.0F, 0.0F, 1.0F); super.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 3, meta)); - tess.draw(); + Tessellator.instance.draw(); - tess.startDrawingQuads(); - tess.setNormal(-1.0F, 0.0F, 0.0F); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(-1.0F, 0.0F, 0.0F); super.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 4, meta)); - tess.draw(); - tess.startDrawingQuads(); - tess.setNormal(1.0F, 0.0F, 0.0F); + Tessellator.instance.draw(); + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(1.0F, 0.0F, 0.0F); super.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, this.getBlockIconFromSideAndMetadata(block, 5, meta)); - tess.draw(); + Tessellator.instance.draw(); GL11.glTranslatef(0.5F, 0.5F, 0.5F); } diff --git a/src/main/java/com/hbm/render/entity/effect/BSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/BSmokeRenderer.java deleted file mode 100644 index 66ad9eb7a..000000000 --- a/src/main/java/com/hbm/render/entity/effect/BSmokeRenderer.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityBSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class BSmokeRenderer extends Render { - private Item field_94151_a; - public BSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public BSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.b_smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.b_smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.b_smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.b_smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.b_smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.b_smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.b_smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.b_smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java deleted file mode 100644 index 9daadd21f..000000000 --- a/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityDSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class DSmokeRenderer extends Render { - private Item field_94151_a; - public DSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public DSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - - if (p_76986_1_ instanceof EntityDSmokeFX) { - EntityDSmokeFX fx = (EntityDSmokeFX) p_76986_1_; - - if (fx.particleAge <= fx.maxAge && fx.particleAge >= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.d_smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.d_smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.d_smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.d_smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.d_smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.d_smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.d_smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.d_smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - //GL11.glScalef(0.5F, 0.5F, 0.5F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/ElectricityRenderer.java b/src/main/java/com/hbm/render/entity/effect/ElectricityRenderer.java deleted file mode 100644 index 6fe82111c..000000000 --- a/src/main/java/com/hbm/render/entity/effect/ElectricityRenderer.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class ElectricityRenderer extends Render { - private Item field_94151_a; - public ElectricityRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public ElectricityRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.gas8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.gas7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.gas6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.gas5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.gas4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.gas3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.gas2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.gas1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java b/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java deleted file mode 100644 index 39f136324..000000000 --- a/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntitySmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class ModEffectRenderer extends Render { - private Item field_94151_a; - public ModEffectRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public ModEffectRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderBigNuke.java b/src/main/java/com/hbm/render/entity/effect/RenderBigNuke.java deleted file mode 100644 index f05f050ef..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderBigNuke.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.hbm.render.entity.effect; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudBig; -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderBigNuke extends Render { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/NukeCloudHuge.obj"); - private IModelCustom blastModel; - private ResourceLocation blastTexture; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private ResourceLocation ringTexture; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - private ResourceLocation ringBigTexture; - public float scale = 0; - public float ring = 0; - - public RenderBigNuke() { - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/NukeCloudFire.png"); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - ringBigTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - scale = 0; - ring = 0; - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - if(((EntityNukeCloudBig)p_76986_1_).age > 100) - { - this.renderMush((EntityNukeCloudBig)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - this.renderCloud((EntityNukeCloudBig)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } else { - this.renderFlare((EntityNukeCloudBig)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - this.renderRing((EntityNukeCloudBig)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - public void renderMush(EntityNukeCloudBig p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - if(p_76986_1_.age < 150) - { - //GL11.glTranslatef(0.0F, -60F + ((p_76986_1_.age - 100) * 60 / 50), 0.0F); - GL11.glTranslatef(0.0F, p_76986_1_.height, 0.0F); - } - GL11.glScalef(10.0F, 10.0F, 10.0F); - - bindTexture(blastTexture); - blastModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderCloud(EntityNukeCloudBig p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslatef(0.0F, 80F, 0.0F); - /*if(scale < 1.5) - { - scale += 0.02; - }*/ - GL11.glScalef(p_76986_1_.scale, 1.0F, p_76986_1_.scale); - GL11.glScalef(125F, 25.0F, 125F); - - bindTexture(ringBigTexture); - ringBigModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderRing(EntityNukeCloudBig p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslatef(0.0F, 23F, 0.0F); - //ring += 0.1F; - GL11.glScalef(p_76986_1_.ring * 10, 50F, p_76986_1_.ring * 10); - - bindTexture(ringTexture); - ringModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderFlare(EntityNukeCloudBig p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - Tessellator tessellator = Tessellator.instance; - RenderHelper.disableStandardItemLighting(); - float f1 = (p_76986_1_.ticksExisted + 2.0F) / 200.0F; - float f2 = 0.0F; - int count = 250; - - if(p_76986_1_.ticksExisted < 250) - { - count = p_76986_1_.ticksExisted * 3; - } - - if (f1 > 0.8F) - { - f2 = (f1 - 0.8F) / 0.2F; - } - - Random random = new Random(432L); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - GL11.glPushMatrix(); - //GL11.glTranslatef(0.0F, -1.0F, -2.0F); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_ + 15, (float)p_76986_6_); - GL11.glScalef(7.5F, 7.5F, 7.5F); - - //for (int i = 0; (float)i < (f1 + f1 * f1) / 2.0F * 60.0F; ++i) - for(int i = 0; i < count; i++) - { - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F + f1 * 90.0F, 0.0F, 0.0F, 1.0F); - tessellator.startDrawing(6); - float f3 = random.nextFloat() * 20.0F + 5.0F + f2 * 10.0F; - float f4 = random.nextFloat() * 2.0F + 1.0F + f2 * 2.0F; - //tessellator.setColorRGBA_I(16777215, (int)(255.0F * (1.0F - f2))); - tessellator.setColorRGBA_I(59345715, (int)(255.0F * (1.0F - f2))); - tessellator.addVertex(0.0D, 0.0D, 0.0D); - //tessellator.setColorRGBA_I(16711935, 0); - tessellator.setColorRGBA_I(59345735, 0); - tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4); - tessellator.addVertex(0.866D * f4, f3, -0.5F * f4); - tessellator.addVertex(0.0D, f3, 1.0F * f4); - tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4); - tessellator.draw(); - } - - GL11.glPopMatrix(); - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_BLEND); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_ALPHA_TEST); - RenderHelper.enableStandardItemLighting(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderFallout.java b/src/main/java/com/hbm/render/entity/effect/RenderFallout.java index 1b3131ad1..fb565fd31 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderFallout.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderFallout.java @@ -17,45 +17,34 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraftforge.client.IRenderHandler; public class RenderFallout extends Render { - private Minecraft mc; + private static final ResourceLocation falloutTexture = new ResourceLocation(RefStrings.MODID, "textures/entity/fallout.png"); private Random random = new Random(); float[] rainXCoords; float[] rainYCoords; - private int rendererUpdateCount; long lastTime = System.nanoTime(); - private static final ResourceLocation falloutTexture = new ResourceLocation(RefStrings.MODID, - "textures/entity/fallout.png"); @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { - if (p_76986_1_ instanceof EntityFalloutRain) - this.render((EntityFalloutRain) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + if(entity instanceof EntityFalloutRain) + this.render((EntityFalloutRain) entity, x, y, z, f0, f1); } - public void render(EntityFalloutRain p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, - float p_76986_8_, float p_76986_9_) { - - this.mc = Minecraft.getMinecraft(); + public void render(EntityFalloutRain entity, double x, double y, double z, float f0, float f1) { - EntityLivingBase entitylivingbase = this.mc.renderViewEntity; - Vec3 vector = Vec3.createVectorHelper(entitylivingbase.posX - p_76986_1_.posX, - entitylivingbase.posY - p_76986_1_.posY, entitylivingbase.posZ - p_76986_1_.posZ); - - double d = vector.lengthVector(); - - if (d <= p_76986_1_.getScale()) { - rendererUpdateCount++; + Minecraft mc = Minecraft.getMinecraft(); + + EntityLivingBase entitylivingbase = mc.renderViewEntity; + Vec3 vector = Vec3.createVectorHelper(entitylivingbase.posX - entity.posX, entitylivingbase.posY - entity.posY, entitylivingbase.posZ - entity.posZ); + + if(vector.lengthVector() <= entity.getScale()) { long time = System.nanoTime(); - float t = (time - lastTime) / 50000000; - if (t <= 1.0F) + float t = (time - lastTime) / 50_000_000; + if(t <= 1.0F) renderRainSnow(t); else renderRainSnow(1.0F); @@ -65,31 +54,25 @@ public class RenderFallout extends Render { } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; + protected ResourceLocation getEntityTexture(Entity entity) { + return this.falloutTexture; } - protected void renderRainSnow(float p_78474_1_) { + protected void renderRainSnow(float interp) { - IRenderHandler renderer = null; - if ((renderer = this.mc.theWorld.provider.getWeatherRenderer()) != null) { - renderer.render(p_78474_1_, this.mc.theWorld, mc); - return; - } + Minecraft mc = Minecraft.getMinecraft(); + int timer = mc.thePlayer.ticksExisted; - // float f1 = this.mc.theWorld.getRainStrength(p_78474_1_); + float intensity = 1F; - float f1 = 1; + if(intensity > 0.0F) { - if (f1 > 0.0F) { - // this.enableLightmap((double)p_78474_1_); - - if (this.rainXCoords == null) { + if(this.rainXCoords == null) { this.rainXCoords = new float[1024]; this.rainYCoords = new float[1024]; - for (int i = 0; i < 32; ++i) { - for (int j = 0; j < 32; ++j) { + for(int i = 0; i < 32; ++i) { + for(int j = 0; j < 32; ++j) { float f2 = j - 16; float f3 = i - 16; float f4 = MathHelper.sqrt_float(f2 * f2 + f3 * f3); @@ -99,185 +82,88 @@ public class RenderFallout extends Render { } } - EntityLivingBase entitylivingbase = this.mc.renderViewEntity; - WorldClient worldclient = this.mc.theWorld; - int k2 = MathHelper.floor_double(entitylivingbase.posX); - int l2 = MathHelper.floor_double(entitylivingbase.posY); - int i3 = MathHelper.floor_double(entitylivingbase.posZ); + WorldClient worldclient = mc.theWorld; + EntityLivingBase camera = mc.renderViewEntity; + + int playerX = MathHelper.floor_double(camera.posX); + int playerY = MathHelper.floor_double(camera.posY); + int playerZ = MathHelper.floor_double(camera.posZ); + double dX = camera.lastTickPosX + (camera.posX - camera.lastTickPosX) * interp; + double dY = camera.lastTickPosY + (camera.posY - camera.lastTickPosY) * interp; + double dZ = camera.lastTickPosZ + (camera.posZ - camera.lastTickPosZ) * interp; + + int playerHeight = MathHelper.floor_double(dY); + byte renderLayerCount = 5; + byte layer = -1; + + if(mc.gameSettings.fancyGraphics) renderLayerCount = 10; + Tessellator tessellator = Tessellator.instance; GL11.glDisable(GL11.GL_CULL_FACE); GL11.glNormal3f(0.0F, 1.0F, 0.0F); GL11.glEnable(GL11.GL_BLEND); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - double d0 = entitylivingbase.lastTickPosX - + (entitylivingbase.posX - entitylivingbase.lastTickPosX) * p_78474_1_; - double d1 = entitylivingbase.lastTickPosY - + (entitylivingbase.posY - entitylivingbase.lastTickPosY) * p_78474_1_; - double d2 = entitylivingbase.lastTickPosZ - + (entitylivingbase.posZ - entitylivingbase.lastTickPosZ) * p_78474_1_; - int k = MathHelper.floor_double(d1); - byte b0 = 5; - - if (this.mc.gameSettings.fancyGraphics) { - b0 = 10; - } - - byte b1 = -1; - float f5 = this.rendererUpdateCount + p_78474_1_; - - if (this.mc.gameSettings.fancyGraphics) { - b0 = 10; - } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - for (int l = i3 - b0; l <= i3 + b0; ++l) { - for (int i1 = k2 - b0; i1 <= k2 + b0; ++i1) { - int j1 = (l - i3 + 16) * 32 + i1 - k2 + 16; - float f6 = this.rainXCoords[j1] * 0.5F; - float f7 = this.rainYCoords[j1] * 0.5F; - BiomeGenBase biomegenbase = worldclient.getBiomeGenForCoords(i1, l); - if (true) { - int k1 = worldclient.getPrecipitationHeight(i1, l); - int l1 = l2 - b0; - int i2 = l2 + b0; + for(int layerZ = playerZ - renderLayerCount; layerZ <= playerZ + renderLayerCount; ++layerZ) { + for(int layerX = playerX - renderLayerCount; layerX <= playerX + renderLayerCount; ++layerX) { + int rainCoord = (layerZ - playerZ + 16) * 32 + layerX - playerX + 16; + float rainCoordX = this.rainXCoords[rainCoord] * 0.5F; + float rainCoordY = this.rainYCoords[rainCoord] * 0.5F; - if (l1 < k1) { - l1 = k1; - } + int rainHeight = worldclient.getPrecipitationHeight(layerX, layerZ); + int minHeight = playerY - renderLayerCount; + int maxHeight = playerY + renderLayerCount; - if (i2 < k1) { - i2 = k1; - } + if(minHeight < rainHeight) minHeight = rainHeight; + if(maxHeight < rainHeight) maxHeight = rainHeight; + + int layerY = rainHeight; + if(rainHeight < playerHeight) layerY = playerHeight; - float f8 = 1.0F; - int j2 = k1; + if(minHeight != maxHeight) { + this.random.setSeed(layerX * layerX * 3121 + layerX * 45238971 ^ layerZ * layerZ * 418711 + layerZ * 13761); - if (k1 < k) { - j2 = k; - } - - if (l1 != i2) { - this.random.setSeed(i1 * i1 * 3121 + i1 * 45238971 ^ l * l * 418711 + l * 13761); - biomegenbase.getFloatTemperature(i1, l1, l); - float f10; - double d4; - - /* - * if (false) { if (b1 != 0) { if (b1 >= 0) { - * tessellator.draw(); } - * - * b1 = 0; - * this.mc.getTextureManager().bindTexture(this. - * falloutTexture); tessellator.startDrawingQuads(); - * //System.out.println("Called!"); } - * - * f10 = ((float)(this.rendererUpdateCount + i1 * i1 - * * 3121 + i1 * 45238971 + l * l * 418711 + l * - * 13761 & 31) + p_78474_1_) / 32.0F * (3.0F + - * this.random.nextFloat()); double d3 = - * (double)((float)i1 + 0.5F) - - * entitylivingbase.posX; d4 = (double)((float)l + - * 0.5F) - entitylivingbase.posZ; float f12 = - * MathHelper.sqrt_double(d3 * d3 + d4 * d4) / - * (float)b0; float f13 = 1.0F; - * tessellator.setBrightness(worldclient. - * getLightBrightnessForSkyBlocks(i1, j2, l, 0)); - * tessellator.setColorRGBA_F(f13, f13, f13, ((1.0F - * - f12 * f12) * 0.5F + 0.5F) * f1); - * tessellator.setTranslation(-d0 * 1.0D, -d1 * - * 1.0D, -d2 * 1.0D); - * tessellator.addVertexWithUV((double)((float)i1 - - * f6) + 0.5D, (double)l1, (double)((float)l - f7) + - * 0.5D, (double)(0.0F * f8), (double)((float)l1 * - * f8 / 4.0F + f10 * f8)); - * tessellator.addVertexWithUV((double)((float)i1 + - * f6) + 0.5D, (double)l1, (double)((float)l + f7) + - * 0.5D, (double)(1.0F * f8), (double)((float)l1 * - * f8 / 4.0F + f10 * f8)); - * tessellator.addVertexWithUV((double)((float)i1 + - * f6) + 0.5D, (double)i2, (double)((float)l + f7) + - * 0.5D, (double)(1.0F * f8), (double)((float)i2 * - * f8 / 4.0F + f10 * f8)); - * tessellator.addVertexWithUV((double)((float)i1 - - * f6) + 0.5D, (double)i2, (double)((float)l - f7) + - * 0.5D, (double)(0.0F * f8), (double)((float)i2 * - * f8 / 4.0F + f10 * f8)); - * tessellator.setTranslation(0.0D, 0.0D, 0.0D); } - * else - */ - { - if (b1 != 1) { - if (b1 >= 0) { - tessellator.draw(); - } - - b1 = 1; - this.mc.getTextureManager().bindTexture(RenderFallout.falloutTexture); - tessellator.startDrawingQuads(); - } - - f10 = ((this.rendererUpdateCount & 511) + p_78474_1_) / 512.0F; - float f16 = this.random.nextFloat() + f5 * 0.01F * (float) this.random.nextGaussian(); - float f11 = this.random.nextFloat() + f5 * (float) this.random.nextGaussian() * 0.001F; - d4 = i1 + 0.5F - entitylivingbase.posX; - double d5 = l + 0.5F - entitylivingbase.posZ; - float f14 = MathHelper.sqrt_double(d4 * d4 + d5 * d5) / b0; - float f15 = 1.0F; - tessellator.setBrightness( - (worldclient.getLightBrightnessForSkyBlocks(i1, j2, l, 0) * 3 + 15728880) / 4); - tessellator.setColorRGBA_F(f15, f15, f15, ((1.0F - f14 * f14) * 0.3F + 0.5F) * f1); - tessellator.setTranslation(-d0 * 1.0D, -d1 * 1.0D, -d2 * 1.0D); - tessellator.addVertexWithUV(i1 - f6 + 0.5D, l1, - l - f7 + 0.5D, 0.0F * f8 + f16, - l1 * f8 / 4.0F + f10 * f8 + f11); - tessellator.addVertexWithUV(i1 + f6 + 0.5D, l1, - l + f7 + 0.5D, 1.0F * f8 + f16, - l1 * f8 / 4.0F + f10 * f8 + f11); - tessellator.addVertexWithUV(i1 + f6 + 0.5D, i2, - l + f7 + 0.5D, 1.0F * f8 + f16, - i2 * f8 / 4.0F + f10 * f8 + f11); - tessellator.addVertexWithUV(i1 - f6 + 0.5D, i2, - l - f7 + 0.5D, 0.0F * f8 + f16, - i2 * f8 / 4.0F + f10 * f8 + f11); - tessellator.setTranslation(0.0D, 0.0D, 0.0D); + if(layer != 1) { + if(layer >= 0) { + tessellator.draw(); } + + layer = 1; + mc.getTextureManager().bindTexture(RenderFallout.falloutTexture); + tessellator.startDrawingQuads(); } + + float fallSpeed = 1.0F; + float swayLoop = ((timer & 511) + interp) / 512.0F; + float fallVariation = 0.4F + this.random.nextFloat() * 0.2F; + float swayVariation = this.random.nextFloat(); + double distX = layerX + 0.5F - camera.posX; + double distZ = layerZ + 0.5F - camera.posZ; + float intensityMod = MathHelper.sqrt_double(distX * distX + distZ * distZ) / renderLayerCount; + float colorMod = 1.0F; + + tessellator.setBrightness((worldclient.getLightBrightnessForSkyBlocks(layerX, layerY, layerZ, 0) * 3 + 15728880) / 4); + tessellator.setColorRGBA_F(colorMod, colorMod, colorMod, ((1.0F - intensityMod * intensityMod) * 0.3F + 0.5F) * intensity); + tessellator.setTranslation(-dX * 1.0D, -dY * 1.0D, -dZ * 1.0D); + tessellator.addVertexWithUV(layerX - rainCoordX + 0.5D, minHeight, layerZ - rainCoordY + 0.5D, 0.0F * fallSpeed + fallVariation, minHeight * fallSpeed / 4.0F + swayLoop * fallSpeed + swayVariation); + tessellator.addVertexWithUV(layerX + rainCoordX + 0.5D, minHeight, layerZ + rainCoordY + 0.5D, 1.0F * fallSpeed + fallVariation, minHeight * fallSpeed / 4.0F + swayLoop * fallSpeed + swayVariation); + tessellator.addVertexWithUV(layerX + rainCoordX + 0.5D, maxHeight, layerZ + rainCoordY + 0.5D, 1.0F * fallSpeed + fallVariation, maxHeight * fallSpeed / 4.0F + swayLoop * fallSpeed + swayVariation); + tessellator.addVertexWithUV(layerX - rainCoordX + 0.5D, maxHeight, layerZ - rainCoordY + 0.5D, 0.0F * fallSpeed + fallVariation, maxHeight * fallSpeed / 4.0F + swayLoop * fallSpeed + swayVariation); + tessellator.setTranslation(0.0D, 0.0D, 0.0D); } } } - if (b1 >= 0) { + if(layer >= 0) { tessellator.draw(); - // System.out.println("Fired!"); } GL11.glEnable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_BLEND); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - // this.disableLightmap((double)p_78474_1_); } } - - /* - * public void enableLightmap(double p_78463_1_) { - * OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit); - * GL11.glMatrixMode(GL11.GL_TEXTURE); GL11.glLoadIdentity(); float f = - * 0.00390625F; GL11.glScalef(f, f, f); GL11.glTranslatef(8.0F, 8.0F, 8.0F); - * GL11.glMatrixMode(GL11.GL_MODELVIEW); - * this.mc.getTextureManager().bindTexture(this.locationLightMap); - * GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, - * GL11.GL_LINEAR); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, - * GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); - * GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, - * GL11.GL_LINEAR); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, - * GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); - * GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, - * GL11.GL_CLAMP); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, - * GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP); GL11.glColor4f(1.0F, 1.0F, 1.0F, - * 1.0F); GL11.glEnable(GL11.GL_TEXTURE_2D); - * OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit); } - */ - } diff --git a/src/main/java/com/hbm/render/entity/effect/RenderFireball.java b/src/main/java/com/hbm/render/entity/effect/RenderFireball.java deleted file mode 100644 index 32036a1b4..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderFireball.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.projectile.EntityFire; -import com.hbm.items.ModItems; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class RenderFireball extends Render { - private Item field_94151_a; - public RenderFireball(Item p_i1259_1_, int p_i1259_2_) - { - this.field_94151_a = p_i1259_1_; - } - - public RenderFireball(Item p_i1260_1_) - { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then - * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic - * (Render= fx.maxAge / 10 * 9) - { - field_94151_a = ModItems.flame_10; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 9 && fx.ticksExisted >= fx.maxAge / 10 * 8) - { - field_94151_a = ModItems.flame_9; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 8 && fx.ticksExisted >= fx.maxAge / 10 * 7) - { - field_94151_a = ModItems.flame_8; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 7 && fx.ticksExisted >= fx.maxAge / 10 * 6) - { - field_94151_a = ModItems.flame_7; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 6 && fx.ticksExisted >= fx.maxAge / 10 * 5) - { - field_94151_a = ModItems.flame_6; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 5 && fx.ticksExisted >= fx.maxAge / 10 * 4) - { - field_94151_a = ModItems.flame_5; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 4 && fx.ticksExisted >= fx.maxAge / 10 * 3) - { - field_94151_a = ModItems.flame_4; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 3 && fx.ticksExisted >= fx.maxAge / 10 * 2) - { - field_94151_a = ModItems.flame_3; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 2 && fx.ticksExisted >= fx.maxAge / 10 * 1) - { - field_94151_a = ModItems.flame_2; - } - - if(fx.ticksExisted < fx.maxAge / 10 && fx.ticksExisted >= 0 && !fx.isDead) - { - field_94151_a = ModItems.flame_1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) - { - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - GL11.glTranslatef(0.0F, -0.25F, 0.0F); - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) - { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) - { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderSmallNuke.java b/src/main/java/com/hbm/render/entity/effect/RenderSmallNuke.java deleted file mode 100644 index 7eda6e0f4..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderSmallNuke.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderSmallNuke extends Render { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/NukeCloudSmall.obj"); - private IModelCustom blastModel; - private ResourceLocation blastTexture; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private ResourceLocation ringTexture; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - private ResourceLocation ringBigTexture; - public float scale = 0; - public float ring = 0; - public float color = 0; - public int alpha = 0; - - public RenderSmallNuke() { - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/NukeCloudFire.png"); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - ringBigTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - scale = 0; - ring = 0; - color = 0; - alpha = 0; - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glScalef(4.0F, 4.0F, 4.0F); - if(scale < 1) - scale += 0.01F; - { - GL11.glScalef(scale, scale, scale); - } - - if(((EntityNukeCloudSmall)p_76986_1_).age > ((EntityNukeCloudSmall)p_76986_1_).maxAge - 150) - { - if(color < 0.75) - color += 0.005; - } - - GL11.glColor4f(1.0f - color, 1.0f - color, 1.0f - color, 1.0F - alpha); - - //GL11.glTranslatef(0.0F, -2.5F, 0.0F); - //GL11.glTranslatef(0.0F, 11F, 0.0F); - - bindTexture(blastTexture); - blastModel.renderAll(); - - GL11.glTranslatef(0, 15F, 0); - GL11.glScalef(20.0F, 5.0F, 20.0F); - - bindTexture(ringBigTexture); - ringBigModel.renderAll(); - - GL11.glScalef(1/scale, 1/scale, 1/scale); - GL11.glTranslatef(0, -4.75F, 0); - //GL11.glScalef(1/20.0F, 1/5.0F, 1/20.0F); - ring += 0.1F; - { - GL11.glScalef(ring, 5, ring); - } - - GL11.glTranslatef(0, 1F, 0); - bindTexture(ringTexture); - ringModel.renderAll(); - - GL11.glPopMatrix(); - - if(((EntityNukeCloudSmall)p_76986_1_).age >= ((EntityNukeCloudSmall)p_76986_1_).maxAge - 1) - { - scale = 0; - ring = 0; - color = 0; - } - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeAlt.java b/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeAlt.java deleted file mode 100644 index b62f5b58b..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeAlt.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.hbm.render.entity.effect; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderSmallNukeAlt extends Render { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/NukeCloudSmall.obj"); - private IModelCustom blastModel; - private ResourceLocation blastTexture; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private ResourceLocation ringTexture; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - private ResourceLocation ringBigTexture; - public float scale = 0; - public float ring = 0; - - public RenderSmallNukeAlt() { - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/NukeCloudFire.png"); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - ringBigTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); - scale = 0; - ring = 0; - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - if(((EntityNukeCloudSmall)p_76986_1_).age > 100) - { - this.renderMush((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - this.renderCloud((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } else { - this.renderFlare((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - this.renderRing((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - public void renderMush(EntityNukeCloudSmall p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - if(p_76986_1_.age < 150) - { - //GL11.glTranslatef(0.0F, -60F + ((p_76986_1_.age - 100) * 60 / 50), 0.0F); - GL11.glTranslatef(0.0F, p_76986_1_.height, 0.0F); - } - GL11.glScalef(4.0F, 4.0F, 4.0F); - - bindTexture(blastTexture); - blastModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderCloud(EntityNukeCloudSmall p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslatef(0.0F, 60F, 0.0F); - /*if(scale < 1.5) - { - scale += 0.02; - }*/ - //GL11.glScalef(p_76986_1_.scale, 1.0F, p_76986_1_.scale); - GL11.glScalef(50F, 25.0F, 50F); - - bindTexture(ringBigTexture); - ringBigModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderRing(EntityNukeCloudSmall p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslatef(0.0F, 18F, 0.0F); - //ring += 0.1F; - - bindTexture(ringTexture); - ringModel.renderAll(); - GL11.glPopMatrix(); - } - - public void renderFlare(EntityNukeCloudSmall p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - Tessellator tessellator = Tessellator.instance; - RenderHelper.disableStandardItemLighting(); - float f1 = (p_76986_1_.age + 2.0F) / 200.0F; - float f2 = 0.0F; - int count = 250; - - if(p_76986_1_.age < 250) - { - count = p_76986_1_.age * 3; - } - - if (f1 > 0.8F) - { - f2 = (f1 - 0.8F) / 0.2F; - } - - Random random = new Random(432L); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - GL11.glPushMatrix(); - //GL11.glTranslatef(0.0F, -1.0F, -2.0F); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_ + 15, (float)p_76986_6_); - GL11.glScalef(5F, 5F, 5F); - - //for (int i = 0; (float)i < (f1 + f1 * f1) / 2.0F * 60.0F; ++i) - for(int i = 0; i < count; i++) - { - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F + f1 * 90.0F, 0.0F, 0.0F, 1.0F); - tessellator.startDrawing(6); - float f3 = random.nextFloat() * 20.0F + 5.0F + f2 * 10.0F; - float f4 = random.nextFloat() * 2.0F + 1.0F + f2 * 2.0F; - //tessellator.setColorRGBA_I(16777215, (int)(255.0F * (1.0F - f2))); - tessellator.setColorRGBA_I(59345715, (int)(255.0F * (1.0F - f2))); - tessellator.addVertex(0.0D, 0.0D, 0.0D); - //tessellator.setColorRGBA_I(16711935, 0); - tessellator.setColorRGBA_I(59345735, 0); - tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4); - tessellator.addVertex(0.866D * f4, f3, -0.5F * f4); - tessellator.addVertex(0.0D, f3, 1.0F * f4); - tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4); - tessellator.draw(); - } - - GL11.glPopMatrix(); - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_BLEND); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_ALPHA_TEST); - RenderHelper.enableStandardItemLighting(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK3.java b/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK3.java deleted file mode 100644 index 5434244c0..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK3.java +++ /dev/null @@ -1,217 +0,0 @@ -package com.hbm.render.entity.effect; - - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.lib.RefStrings; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderSmallNukeMK3 extends Render { - - //what the fuck is all this, i thought you made the resource manager - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/mush.hmf"); - private IModelCustom blastModel; - private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); - private IModelCustom ringModel; - private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); - private IModelCustom ringBigModel; - public float scale = 0; - public float ring = 0; - - //can't you just instantiate the AMLs as a whole like a normal person smh - public RenderSmallNukeMK3() { - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - ringModel = AdvancedModelLoader.loadModel(ringModelRL); - ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); - scale = 0; - ring = 0; - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - render((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - //choreographic analysis of a nuclear blast - //by VeeTee McFuckface - - //shockwave: rapidly expanding sphere of compressed air - // optional: wave of ground dust, make sphere white to pair it with the flash - // use multiple rings if necessary, but make them thinner (maybe fire-y) - // duration: something like two seconds, the thing is fast - - //fireball: similar story to the shockwave, but with color - // slower expanding bubble that raises upwards - // use one of those large donuts for the dust on the ground - // optional: dust clouds descending from top to bottom of the sphere (adjust radius based on height for smoothness) - // use lighter tone (vapor) - // duration: ~5 seconds, maybe less - - //mushroom: large donut to simulate breakthrough of the cloud layer (more vapor) - // use more rings around the shaft, make them wobble (use a sine function for the height, look at RR for reference) - // make the thing larger, this isn't a children's birthday and your excuses "too big" are shit - // make the fireball fade so it looks like the cloud is formed by it - // use more rings. really. - // more polygons, this is a cloud, not a metal pillar made by a seven-yo - // duration: as long as you want - - // - - - //your other render classes look like shit, write code like a sensible person for once. good luck, you'll need it - public void render(EntityNukeCloudSmall cloud, double posX, double posY, double posZ, float fa, float fb) { - GL11.glPushMatrix(); - GL11.glTranslatef((float)posX, (float)posY + 0.25F, (float)posZ); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - - float size = cloud.getDataWatcher().getWatchableObjectFloat(18); - GL11.glScalef(size, size, size); - - int age = cloud.age; - int shockScale = age * 4; - int fireScale = (int)((age - 25) * 1.5); - - if(age < 50) { - GL11.glPushMatrix(); - GL11.glColor4f(0.2F, 0.2F, 0.2F, 0.9F); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - - GL11.glScalef(shockScale, shockScale, shockScale); - GL11.glScalef(2, 2, 2); - - for(float i = 0.9F; i <= 1; i += 0.05F) { - GL11.glScalef(i, i, i); - ResourceManager.sphere_ruv.renderAll(); - ResourceManager.sphere_iuv.renderAll(); - GL11.glScalef(1/i, 1/i, 1/i); - } - - GL11.glDisable(GL11.GL_BLEND); - - GL11.glColor4f(0.4F, 0.4F, 0.4F, 1F); - - GL11.glScalef(0.6F, 1F / shockScale * 5, 0.6F); - ringModel.renderAll(); - GL11.glScalef(1.1F, 1F, 1.1F); - ringModel.renderAll(); - GL11.glScalef(1.1F, 1F, 1.1F); - ringModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - if(age >= 50 && age < 150) { - GL11.glPushMatrix(); - - if(cloud.getDataWatcher().getWatchableObjectByte(19) == 1) - GL11.glColor4f(0.2F, 0.7F, 0.0F, 0.9F); - else - GL11.glColor4f(0.4F, 0.15F, 0.0F, 0.9F); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glTranslatef(0, fireScale * 0.75F, 0); - - GL11.glScalef(fireScale * 0.85F, fireScale, fireScale * 0.85F); - - for(float i = 0.6F; i <= 1; i += 0.2F) { - GL11.glScalef(i, i, i); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/i, 1/i, 1/i); - } - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - if(age >= 150) { - GL11.glPushMatrix(); - bindTexture(getEntityTexture(cloud)); - GL11.glTranslatef(0, -50, 0); - GL11.glScalef(6, 6, 6); - GL11.glDisable(GL11.GL_CULL_FACE); - blastModel.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glColor4f(0.4F, 0.4F, 0.4F, 1F); - GL11.glScalef(10, 10, 10); - float f = 1.8F + (((float)Math.sin(((double)age) / 20 + 90) * 0.25F) * 0.5F); - float f1 = 1 + ((float)Math.sin(((double)age) / 10) * 0.15F); - GL11.glScalef(f, 1, f); - GL11.glTranslatef(0, 3.5F + f1 * 0.25F, 0); - ringModel.renderAll(); - GL11.glTranslatef(0, - f1 * 0.25F * 2, 0); - ringModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - if(age >= 50) { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glScalef(2, 2, 2); - GL11.glColor4f(0.4F, 0.4F, 0.4F, 1F); - float f = (float)Math.min((age - 50) * 0.5, 20); - GL11.glScalef(f, 15, f); - //ringBigModel.renderAll(); - GL11.glScalef(1.5F, 1, 1.5F); - GL11.glTranslatef(0, -0.15F, 0); - //ringBigModel.renderAll(); - GL11.glScalef(1.5F, 1, 1.5F); - GL11.glTranslatef(0, -0.15F, 0); - //ringBigModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glScalef(2, 2, 2); - GL11.glColor4f(0.6F, 0.6F, 0.6F, 1F); - float f0 = (float)Math.min((age - 50) * 0.25, 20) * 5F; - GL11.glScalef(f0, 15, f0); - GL11.glTranslatef(0, 3.5F, 0); - ringBigModel.renderAll(); - GL11.glTranslatef(0, 1F, 0); - GL11.glScalef(0.65F, 1, 0.65F); - ringModel.renderAll(); - //GL11.glTranslatef(0, -2F, 0); - //ringModel.renderAll(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } - - //very professional, i love me some null textures /s - - //there, fixed it ~bob - @Override - protected ResourceLocation getEntityTexture(Entity ent) { - - if(ent.getDataWatcher().getWatchableObjectByte(19) == 1) - return ResourceManager.balefire; - - return ResourceManager.fireball; - } - -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java b/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java deleted file mode 100644 index bb2f8b852..000000000 --- a/src/main/java/com/hbm/render/entity/effect/RenderSmallNukeMK4.java +++ /dev/null @@ -1,379 +0,0 @@ -package com.hbm.render.entity.effect; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.effect.EntityNukeCloudSmall.Cloudlet; -import com.hbm.lib.RefStrings; -import com.hbm.main.ResourceManager; -import com.hbm.render.loader.HFRWavefrontObject; - -import net.minecraft.client.renderer.ActiveRenderInfo; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderSmallNukeMK4 extends Render { - - public static final IModelCustom mush = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/mush.obj")); - public static final IModelCustom shockwave = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/ring_roller.obj")); - public static final IModelCustom thinring = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/ring_thin.obj")); - private static final ResourceLocation cloudlet = new ResourceLocation(RefStrings.MODID + ":textures/particle/particle_base.png"); - - /* - * // // ////// ////// // // - * //// //// // // // //// // - * // // // ////// // // //// - * // // // // // // // - * // // // // ////// // // - */ - - /** - * Look how nice and clean this is! - */ - @Override - public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { - - GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - - EntityNukeCloudSmall cloud = (EntityNukeCloudSmall)entity; - - mushWrapper(cloud, interp); - cloudletWrapper(cloud, interp); - flashWrapper(cloud, interp); - - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) { - return null; - } - - /* - * // // ////// ////// ////// ////// ////// ////// ////// - * // // // // // // // // // // // // // // - * // // // //// ////// ////// ////// //// //// ////// - * //// //// // // // // // // // // // // - * // // // // // // // // ////// // // ////// - */ - - /** - * Wrapper for the initial flash - * Caps the rendering at 60 ticks and sets the alpha function - * @param cloud - * @param interp - */ - private void flashWrapper(EntityNukeCloudSmall cloud, float interp) { - - if(cloud.age < 60) { - - GL11.glPushMatrix(); - //Function [0, 1] that determines the scale and intensity (inverse!) of the flash - double scale = (cloud.ticksExisted + interp) / 60D; - GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F); - - //Euler function to slow down the scale as it progresses - //Makes it start fast and the fade-out is nice and smooth - scale = scale * Math.pow(Math.E, -scale) * 2.717391304D; - - renderFlash(scale); - GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - GL11.glPopMatrix(); - } - } - - /** - * Wrapper for the entire mush (head + stem) - * Renders the entire thing twice to allow for smooth color gradients - * @param cloud - * @param interp - */ - private void mushWrapper(EntityNukeCloudSmall cloud, float interp) { - - float size = cloud.getDataWatcher().getWatchableObjectFloat(18) * 5; - - GL11.glPushMatrix(); - - GL11.glScalef(size, size, size); - - boolean balefire = cloud.getDataWatcher().getWatchableObjectByte(19) == 1; - - if(balefire) - bindTexture(ResourceManager.balefire); - else - bindTexture(ResourceManager.fireball); - - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - //Float [0, 1] for the initial solid-colored layer fade-in - float func = MathHelper.clamp_float((cloud.ticksExisted + interp) * 0.0075F, 0, 1); - //Function that determines how high the cloud has risen. The values are the results of trial and error and i forgot what they mean - double height = Math.max(20 - 30 * 20 / ((((cloud.ticksExisted + interp) * 0.5) - 60 * 0.1) + 1), 0); - - if(balefire) - GL11.glColor4f(1.0F - (1.0F - 0.64F) * func, 1.0F, 1.0F - (1.0F - 0.5F) * func, 1F); - else - GL11.glColor4f(1.0F, 1.0F - (1.0F - 0.7F) * func, 1.0F - (1.0F - 0.48F) * func, 1F); - - renderMushHead(cloud.ticksExisted + interp, height); - renderMushStem(cloud.ticksExisted + interp, height); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - - //Float [0.75, 0] That determines the occupancy of the texture layer - float texAlpha = func * 0.875F; - - GL11.glColor4f(1F, 1F, 1F, texAlpha); - //Sets blend to "how you'd expect it" mode - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glEnable(GL11.GL_BLEND); - - //And now we fuck with texture transformations - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glLoadIdentity(); - - GL11.glTranslated(0, -(cloud.ticksExisted + interp) * 0.035, 0); - - GL11.glMatrixMode(GL11.GL_MODELVIEW); - - GL11.glPushMatrix(); - //It's the thing that makes glow-in-the-dark work - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); - renderMushHead(cloud.ticksExisted + interp, height); - renderMushStem(cloud.ticksExisted + interp, height); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopAttrib(); - GL11.glPopMatrix(); - - //Clean this up otherwise the game becomes one-dimensional - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glLoadIdentity(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } - - /** - * Adds all cloudlets to the tessellator and then draws them - * @param cloud - * @param interp - */ - private void cloudletWrapper(EntityNukeCloudSmall cloud, float interp) { - - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - //To prevent particles cutting off before fully fading out - GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.01F); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDepthMask(false); - - bindTexture(cloudlet); - - Tessellator tess = Tessellator.instance; - tess.startDrawingQuads(); - - for(Cloudlet cloudlet : cloud.cloudlets) { - float scale = cloud.age + interp - cloudlet.age; - tessellateCloudlet(tess, cloudlet.posX, cloudlet.posY - cloud.posY + 2, cloudlet.posZ, scale, cloud.getDataWatcher().getWatchableObjectByte(19)); - } - - /*Random rand = new Random(cloud.getEntityId()); - float size = cloud.getDataWatcher().getWatchableObjectFloat(18); - - for(int i = 0; i < 300 * size; i++) { - - float scale = size * 10; - Vec3 vec = Vec3.createVectorHelper(rand.nextGaussian() * scale, 0, rand.nextGaussian() * scale); - - tessellateCloudlet(tess, vec.xCoord, (scale - vec.lengthVector()) * rand.nextDouble() * 0.5, vec.zCoord - 10, (float)(cloud.age * cloud.cloudletLife) / cloud.maxAge, cloud.getDataWatcher().getWatchableObjectByte(19)); - }*/ - - tess.draw(); - - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_ALPHA_TEST); - RenderHelper.enableStandardItemLighting(); - GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - GL11.glDisable(GL11.GL_BLEND); - GL11.glPopMatrix(); - } - - /* - * ////// ////// // // //// ////// ////// ////// ////// ////// - * // // // //// // // // // // // // // // // - * //// //// // //// // // //// //// //// //// ////// - * // // // // // // // // // // // // // // - * // // ////// // // //// ////// // // ////// // // ////// - */ - - /** - * Once again the recycled ender dragon death animation - * It worked so well the last 14 times, let's go for 15 - * @param intensity Double [0, 1] that determines scale and alpha - */ - private void renderFlash(double intensity) { - - GL11.glScalef(0.2F, 0.2F, 0.2F); - - double inverse = 1.0D - intensity; - - Tessellator tessellator = Tessellator.instance; - RenderHelper.disableStandardItemLighting(); - - Random random = new Random(432L); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - - GL11.glPushMatrix(); - - float scale = 100; - - for(int i = 0; i < 300; i++) { - - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F); - - float vert1 = (random.nextFloat() * 20.0F + 5.0F + 1 * 10.0F) * (float)(intensity * scale); - float vert2 = (random.nextFloat() * 2.0F + 1.0F + 1 * 2.0F) * (float)(intensity * scale); - - tessellator.startDrawing(6); - - tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, (float) inverse); - tessellator.addVertex(0.0D, 0.0D, 0.0D); - tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 0.0F); - tessellator.addVertex(-0.866D * vert2, vert1, -0.5F * vert2); - tessellator.addVertex(0.866D * vert2, vert1, -0.5F * vert2); - tessellator.addVertex(0.0D, vert1, 1.0F * vert2); - tessellator.addVertex(-0.866D * vert2, vert1, -0.5F * vert2); - tessellator.draw(); - } - - GL11.glPopMatrix(); - - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_BLEND); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_ALPHA_TEST); - RenderHelper.enableStandardItemLighting(); - } - - /** - * Render call for the mush head model - * Includes offset and smoothing - * Also scales the fireball along XZ - * @param progress Lifetime + interpolation number - * @param height The current animation offset - */ - private void renderMushHead(float progress, double height) { - - GL11.glPushMatrix(); - - double expansion = 100; - double width = Math.min(progress, expansion) / expansion * 0.3 + 0.7; - - GL11.glTranslated(0, -26 + height, 0); - GL11.glScaled(width, 1, width); - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glDisable(GL11.GL_ALPHA_TEST); - mush.renderPart("Ball"); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } - - /** - * Render call for the mush stem model - * Includes offset and smoothing - * @param progress Lifetime + interpolation number - * @param height The current animation offset - */ - private void renderMushStem(float progress, double height) { - - GL11.glPushMatrix(); - - GL11.glTranslated(0, -26 + height, 0); - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glDisable(GL11.GL_ALPHA_TEST); - mush.renderPart("Stem"); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } - - /** - * Adds one cloudlet (one face) to the tessellator. - * Rotation is done using ActiveRenderInfo, which I'd assume runs on magic - * But hey, if it works for particles, why not here too? - * @param tess - * @param posX - * @param posY - * @param posZ - * @param age The mush' age when the cloudlet was created - * @param type DataWatcher byte #19 which differentiates between different mush types - */ - private void tessellateCloudlet(Tessellator tess, double posX, double posY, double posZ, float age, int type) { - - float alpha = 1F - Math.max(age / (float)(EntityNukeCloudSmall.cloudletLife), 0F); - float alphaorig = alpha; - - float scale = 5F * (alpha * 0.5F + 0.5F); - - if(age < 3) - alpha = age * 0.333F; - - float f1 = ActiveRenderInfo.rotationX; - float f2 = ActiveRenderInfo.rotationZ; - float f3 = ActiveRenderInfo.rotationYZ; - float f4 = ActiveRenderInfo.rotationXY; - float f5 = ActiveRenderInfo.rotationXZ; - - Random rand = new Random((long) ((posX * 5 + posY * 25 + posZ * 125) * 1000D)); - - float brightness = rand.nextFloat() * 0.25F + 0.25F; - - if(type == 1) { - tess.setColorRGBA_F(0.25F * alphaorig, alphaorig - brightness * 0.5F, 0.25F * alphaorig, alpha); - } else { - - tess.setColorRGBA_F(brightness, brightness, brightness, alpha); - } - - tess.addVertexWithUV((double)(posX - f1 * scale - f3 * scale), (double)(posY - f5 * scale), (double)(posZ - f2 * scale - f4 * scale), 1, 1); - tess.addVertexWithUV((double)(posX - f1 * scale + f3 * scale), (double)(posY + f5 * scale), (double)(posZ - f2 * scale + f4 * scale), 1, 0); - tess.addVertexWithUV((double)(posX + f1 * scale + f3 * scale), (double)(posY + f5 * scale), (double)(posZ + f2 * scale + f4 * scale), 0, 0); - tess.addVertexWithUV((double)(posX + f1 * scale - f3 * scale), (double)(posY - f5 * scale), (double)(posZ + f2 * scale - f4 * scale), 0, 1); - - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index 661b57773..674eb8818 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.effect; import java.util.ArrayList; import java.util.Comparator; +import java.util.Random; import org.lwjgl.opengl.GL11; @@ -9,6 +10,7 @@ import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.effect.EntityNukeTorex.Cloudlet; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.main.ModEventHandlerClient; import net.minecraft.client.renderer.ActiveRenderInfo; import net.minecraft.client.renderer.OpenGlHelper; @@ -23,14 +25,28 @@ import net.minecraft.util.Vec3; public class RenderTorex extends Render { private static final ResourceLocation cloudlet = new ResourceLocation(RefStrings.MODID + ":textures/particle/particle_base.png"); + private static final ResourceLocation flash = new ResourceLocation(RefStrings.MODID + ":textures/particle/flare.png"); @Override public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + if(fog) GL11.glDisable(GL11.GL_FOG); EntityNukeTorex cloud = (EntityNukeTorex)entity; cloudletWrapper(cloud, interp); + if(cloud.ticksExisted < 101) flashWrapper(cloud, interp); + if(cloud.ticksExisted < 10 && System.currentTimeMillis() - ModEventHandlerClient.flashTimestamp > 1_000) ModEventHandlerClient.flashTimestamp = System.currentTimeMillis(); + if(cloud.didPlaySound && !cloud.didShake && System.currentTimeMillis() - ModEventHandlerClient.shakeTimestamp > 1_000) { + ModEventHandlerClient.shakeTimestamp = System.currentTimeMillis(); + cloud.didShake = true; + EntityPlayer player = MainRegistry.proxy.me(); + player.hurtTime = 15; + player.maxHurtTime = 15; + player.attackedAtYaw = 0F; + } + if(fog) GL11.glEnable(GL11.GL_FOG); GL11.glPopMatrix(); } @@ -69,7 +85,47 @@ public class RenderTorex extends Render { for(Cloudlet cloudlet : cloudlets) { Vec3 vec = cloudlet.getInterpPos(interp); - tessellateCloudlet(tess, vec.xCoord - cloud.posX, vec.yCoord - cloud.posY, vec.zCoord - cloud.posZ, cloudlet, interp); + double x = vec.xCoord - cloud.posX; + double y = vec.yCoord - cloud.posY; + double z = vec.zCoord - cloud.posZ; + tessellateCloudlet(tess, x, y, z, cloudlet, interp); + } + + tess.draw(); + + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_ALPHA_TEST); + RenderHelper.enableStandardItemLighting(); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } + + private void flashWrapper(EntityNukeTorex cloud, float interp) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDepthMask(false); + RenderHelper.disableStandardItemLighting(); + + bindTexture(flash); + + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + + double age = Math.min(cloud.ticksExisted + interp, 100); + float alpha = (float) ((100D - age) / 100F); + + Random rand = new Random(cloud.getEntityId()); + + for(int i = 0; i < 3; i++) { + float x = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); + float y = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); + float z = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); + tessellateFlash(tess, x, y + cloud.coreHeight, z, (float) (25 * cloud.rollerSize), alpha, interp); } tess.draw(); @@ -93,7 +149,7 @@ public class RenderTorex extends Render { float f4 = ActiveRenderInfo.rotationXY; float f5 = ActiveRenderInfo.rotationXZ; - float brightness = 0.75F * cloud.colorMod; + float brightness = cloud.type == cloud.type.CONDENSATION ? 0.9F : 0.75F * cloud.colorMod; Vec3 color = cloud.getInterpColor(interp); tess.setColorRGBA_F((float)color.xCoord * brightness, (float)color.yCoord * brightness, (float)color.zCoord * brightness, alpha); @@ -104,6 +160,23 @@ public class RenderTorex extends Render { } + private void tessellateFlash(Tessellator tess, double posX, double posY, double posZ, float scale, float alpha, float interp) { + + float f1 = ActiveRenderInfo.rotationX; + float f2 = ActiveRenderInfo.rotationZ; + float f3 = ActiveRenderInfo.rotationYZ; + float f4 = ActiveRenderInfo.rotationXY; + float f5 = ActiveRenderInfo.rotationXZ; + + tess.setColorRGBA_F(1F, 1F, 1F, alpha); + + tess.addVertexWithUV((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale), 1, 1); + tess.addVertexWithUV((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale), 1, 0); + tess.addVertexWithUV((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale), 0, 0); + tess.addVertexWithUV((double) (posX + f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ + f2 * scale - f4 * scale), 0, 1); + + } + @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return null; diff --git a/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java deleted file mode 100644 index 5a4d6c3fa..000000000 --- a/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class SSmokeRenderer extends Render { - private Item field_94151_a; - public SSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public SSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/SpillRenderer.java b/src/main/java/com/hbm/render/entity/effect/SpillRenderer.java deleted file mode 100644 index 6d492e823..000000000 --- a/src/main/java/com/hbm/render/entity/effect/SpillRenderer.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityOilSpillFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class SpillRenderer extends Render { - private Item field_94151_a; - public SpillRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public SpillRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.spill8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.spill7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.spill6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.spill5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.spill4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.spill3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.spill2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.spill1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java deleted file mode 100644 index 263869a51..000000000 --- a/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityTSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class TSmokeRenderer extends Render { - private Item field_94151_a; - public TSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public TSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - - if (p_76986_1_ instanceof EntityTSmokeFX) { - EntityTSmokeFX fx = (EntityTSmokeFX) p_76986_1_; - - if (fx.particleAge <= fx.maxAge && fx.particleAge >= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.d_smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.d_smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.d_smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.d_smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.d_smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.d_smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.d_smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.d_smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - // - //GL11.glScalef(0.5F, 0.5F, 0.5F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java b/src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java new file mode 100644 index 000000000..963c936d7 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java @@ -0,0 +1,74 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.item.EntityBoatRubber; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBoat; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class RenderBoatRubber extends Render { + + private static final ResourceLocation boatTextures = new ResourceLocation(RefStrings.MODID + ":textures/entity/boat_rubber.png"); + protected ModelBase modelBoat; + + public RenderBoatRubber() { + this.shadowSize = 0.5F; + this.modelBoat = new ModelBoat(); + } + + public void doRender(EntityBoatRubber entity, double x, double y, double z, float yaw, float interp) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(180.0F - yaw, 0.0F, 1.0F, 0.0F); + float f2 = (float) entity.getTimeSinceHit() - interp; + float f3 = entity.getDamageTaken() - interp; + + if(f3 < 0.0F) { + f3 = 0.0F; + } + + if(f2 > 0.0F) { + GL11.glRotatef(MathHelper.sin(f2) * f2 * f3 / 10.0F * (float) entity.getForwardDirection(), 1.0F, 0.0F, 0.0F); + } + + EntityPlayer me = Minecraft.getMinecraft().getMinecraft().thePlayer; + + if(entity.riddenByEntity == me) { + float diff = MathHelper.wrapAngleTo180_float(entity.rotationYaw - entity.prevRenderYaw); + me.rotationYaw += diff; + me.rotationYawHead += diff; + } + + entity.prevRenderYaw = entity.rotationYaw; + + float f4 = 0.75F; + GL11.glScalef(f4, f4, f4); + GL11.glScalef(1.0F / f4, 1.0F / f4, 1.0F / f4); + this.bindEntityTexture(entity); + GL11.glScalef(-1.0F, -1.0F, 1.0F); + this.modelBoat.render(entity, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); + GL11.glPopMatrix(); + } + + protected ResourceLocation getEntityTexture(EntityBoatRubber entity) { + return boatTextures; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityBoatRubber) entity); + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + this.doRender((EntityBoatRubber) entity, x, y, z, f0, f1); + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderBomber.java b/src/main/java/com/hbm/render/entity/item/RenderBomber.java index 16d32f88f..4cc33a349 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderBomber.java +++ b/src/main/java/com/hbm/render/entity/item/RenderBomber.java @@ -28,36 +28,16 @@ public class RenderBomber extends Render { int i = entity.getDataWatcher().getWatchableObjectByte(16); switch(i) { - case 0: - bindTexture(ResourceManager.dornier_0_tex); - break; - case 1: - bindTexture(ResourceManager.dornier_1_tex); - break; - case 2: - bindTexture(ResourceManager.dornier_2_tex); - break; - case 3: - bindTexture(ResourceManager.dornier_3_tex); - break; - case 4: - bindTexture(ResourceManager.dornier_4_tex); - break; - case 5: - bindTexture(ResourceManager.b29_0_tex); - break; - case 6: - bindTexture(ResourceManager.b29_1_tex); - break; - case 7: - bindTexture(ResourceManager.b29_2_tex); - break; - case 8: - bindTexture(ResourceManager.b29_3_tex); - break; - default: - bindTexture(ResourceManager.dornier_1_tex); - break; + case 0: bindTexture(ResourceManager.dornier_1_tex); break; + case 1: bindTexture(ResourceManager.dornier_1_tex); break; + case 2: bindTexture(ResourceManager.dornier_2_tex); break; + case 3: bindTexture(ResourceManager.dornier_1_tex); break; + case 4: bindTexture(ResourceManager.dornier_4_tex); break; + case 5: bindTexture(ResourceManager.b29_0_tex); break; + case 6: bindTexture(ResourceManager.b29_1_tex); break; + case 7: bindTexture(ResourceManager.b29_2_tex); break; + case 8: bindTexture(ResourceManager.b29_3_tex); break; + default: bindTexture(ResourceManager.dornier_1_tex); break; } GL11.glRotatef((float) Math.sin((entity.ticksExisted + interp) * 0.05) * 10, 1F, 0F, 0F); diff --git a/src/main/java/com/hbm/render/entity/item/RenderC130.java b/src/main/java/com/hbm/render/entity/item/RenderC130.java new file mode 100644 index 000000000..9d2d7d4d4 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderC130.java @@ -0,0 +1,67 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderC130 extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(90, 0F, 0F, 1F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.c130_0_tex); + ResourceManager.c130.renderPart("Plane"); + + double spin = System.currentTimeMillis() * 15D % 360D; + + GL11.glPushMatrix(); + GL11.glTranslated(10, 4.2, -20.5); + GL11.glRotated(spin, 1, 0, 0); + GL11.glTranslated(-10, -4.2, 20.5); + ResourceManager.c130.renderPart("Prop1"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(10, 4.2, -11.16); + GL11.glRotated(spin, 1, 0, 0); + GL11.glTranslated(-10, -4.2, 11.16); + ResourceManager.c130.renderPart("Prop2"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(10, 4.2, 11.16); + GL11.glRotated(spin, 1, 0, 0); + GL11.glTranslated(-10, -4.2, -11.16); + ResourceManager.c130.renderPart("Prop3"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(10, 4.2, 20.5); + GL11.glRotated(spin, 1, 0, 0); + GL11.glTranslated(-10, -4.2, -20.5); + ResourceManager.c130.renderPart("Prop4"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.c130_0_tex; + } + +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java new file mode 100644 index 000000000..04bbcf027 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java @@ -0,0 +1,48 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.item.EntityDroneBase; +import com.hbm.entity.item.EntityRequestDrone; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderDeliveryDrone extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + if(entity instanceof EntityRequestDrone) { + bindTexture(ResourceManager.delivery_drone_request_tex); + } else if(entity.getDataWatcher().getWatchableObjectByte(11) == 1) + bindTexture(ResourceManager.delivery_drone_express_tex); + else + bindTexture(ResourceManager.delivery_drone_tex); + ResourceManager.delivery_drone.renderPart("Drone"); + + EntityDroneBase drone = (EntityDroneBase) entity; + int style = drone.getAppearance(); + + if(style == 1) ResourceManager.delivery_drone.renderPart("Crate"); + if(style == 2) ResourceManager.delivery_drone.renderPart("Barrel"); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity drone) { + return ResourceManager.delivery_drone_tex; + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java new file mode 100644 index 000000000..ad73dcc96 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java @@ -0,0 +1,73 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockFallingNT; +import com.hbm.entity.item.EntityFallingBlockNT; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class RenderFallingBlockNT extends Render { + + private final RenderBlocks renderBlocks = new RenderBlocks(); + + public RenderFallingBlockNT() { + this.shadowSize = 0.5F; + } + + public void doRender(EntityFallingBlockNT entity, double x, double y, double z, float f0, float f1) { + + World world = entity.getWorldForRender(); + Block block = entity.getBlockForRender(); + + int iX = MathHelper.floor_double(entity.posX); + int iY = MathHelper.floor_double(entity.posY); + int iZ = MathHelper.floor_double(entity.posZ); + + GL11.glPushMatrix(); + try { + if(block != null && block != world.getBlock(iX, iY, iZ)) { + GL11.glTranslated(x, y, z); + this.bindEntityTexture(entity); + GL11.glDisable(GL11.GL_LIGHTING); + + this.renderBlocks.blockAccess = world; + + if(block instanceof BlockFallingNT && ((BlockFallingNT) block).shouldOverrideRenderer()) { + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + ((BlockFallingNT) block).overrideRenderer(entity, renderBlocks, tessellator); + tessellator.draw(); + } else { + this.renderBlocks.setRenderBoundsFromBlock(block); + this.renderBlocks.renderBlockSandFalling(block, world, iX, iY, iZ, entity.getDataWatcher().getWatchableObjectInt(11)); + } + + GL11.glEnable(GL11.GL_LIGHTING); + } + } catch(Exception ex) { } + GL11.glPopMatrix(); + } + + protected ResourceLocation getEntityTexture(EntityFallingBlockNT entity) { + return TextureMap.locationBlocksTexture; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityFallingBlockNT) entity); + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + this.doRender((EntityFallingBlockNT) entity, x, y, z, f0, f1); + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderParachuteCrate.java b/src/main/java/com/hbm/render/entity/item/RenderParachuteCrate.java new file mode 100644 index 000000000..3bf1ab7c5 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderParachuteCrate.java @@ -0,0 +1,50 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderParachuteCrate extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float i, float j) { + + GL11.glPushMatrix(); + + GL11.glTranslated(x, y, z); + + double time = (entity.worldObj.getTotalWorldTime()); + double sine = Math.sin(time * 0.05) * 5; + double sin3 = Math.sin(time * 0.05 + Math.PI * 0.5) * 5; + + int height = 7; + + GL11.glTranslated(0.0F, height, 0.0F); + GL11.glRotated(sine, 0, 0, 1); + GL11.glRotated(sin3, 1, 0, 0); + GL11.glTranslated(0.0F, -height, 0.0F); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + bindTexture(ResourceManager.supply_crate); + ResourceManager.conservecrate.renderAll(); + + GL11.glTranslated(0, -1, 0); + + bindTexture(ResourceManager.soyuz_chute_tex); + ResourceManager.soyuz_lander.renderPart("Chute"); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return ResourceManager.soyuz_lander_tex; + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java b/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java index 7c121733c..118074dd7 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java @@ -44,7 +44,7 @@ public class RenderTNTPrimedBase extends Render { f2 = (1.0F - ((float) tnt.fuse - f1 + 1.0F) / 100.0F) * 0.8F; this.bindEntityTexture(tnt); - this.blockRenderer.renderBlockAsItem(tnt.getBomb(), 0, tnt.getBrightness(f1)); + this.blockRenderer.renderBlockAsItem(tnt.getBlock(), 0, tnt.getBrightness(f1)); if(tnt.fuse / 5 % 2 == 0) { @@ -56,7 +56,7 @@ public class RenderTNTPrimedBase extends Render { GL11.glColor4f(1.0F, 1.0F, 1.0F, f2); boolean prev = this.blockRenderer.useInventoryTint; this.blockRenderer.useInventoryTint = false; - this.blockRenderer.renderBlockAsItem(tnt.getBomb(), 0, 1.0F); + this.blockRenderer.renderBlockAsItem(tnt.getBlock(), 0, 1.0F); this.blockRenderer.useInventoryTint = prev; GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_BLEND); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTunnelBore.java b/src/main/java/com/hbm/render/entity/item/RenderTunnelBore.java new file mode 100644 index 000000000..98c8c1f69 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderTunnelBore.java @@ -0,0 +1,60 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderTunnelBore extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float swing, float interp) { + GL11.glPushMatrix(); + + EntityRailCarBase train = (EntityRailCarBase) entity; + double iX = train.prevPosX + (train.posX - train.prevPosX) * interp; + double iY = train.prevPosY + (train.posY - train.prevPosY) * interp; + double iZ = train.prevPosZ + (train.posZ - train.prevPosZ) * interp; + double rX = train.lastRenderX + (train.renderX - train.lastRenderX) * interp; + double rY = train.lastRenderY + (train.renderY - train.lastRenderY) * interp; + double rZ = train.lastRenderZ + (train.renderZ - train.lastRenderZ) * interp; + x -= iX - rX; + y -= iY - rY; + z -= iZ - rZ; + + GL11.glTranslated(x, y - 0.0625D, z); + + float yaw = entity.rotationYaw; + float prevYaw = entity.prevRotationYaw; + + if(yaw - prevYaw > 180) yaw -= 360; + if(prevYaw - yaw > 180) prevYaw -= 360; + + float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720; + + GL11.glRotated(-yawInterp, 0, 1, 0); + + float pitch = entity.rotationPitch; + float prevPitch = entity.prevRotationPitch; + float pitchInterp = prevPitch + (pitch - prevPitch) * interp; + GL11.glRotated(-pitchInterp, 1, 0, 0); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.universal); + ResourceManager.tunnel_bore.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.universal; + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java index 2a13025aa..113742e0f 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java @@ -37,5 +37,4 @@ public class RenderBalls extends Render { protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return ResourceManager.universal_bright; } - } diff --git a/src/main/java/com/hbm/render/entity/mob/RenderDummy.java b/src/main/java/com/hbm/render/entity/mob/RenderDummy.java new file mode 100644 index 000000000..a85d4ea5e --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderDummy.java @@ -0,0 +1,31 @@ +package com.hbm.render.entity.mob; + +import com.hbm.entity.mob.EntityDummy; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.entity.RenderBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.util.ResourceLocation; + +public class RenderDummy extends RenderBiped { + + public RenderDummy() { + super(new ModelBiped(0.0F), 0.5F, 1.0F); + } + + @Override + protected ResourceLocation getEntityTexture(EntityLiving entity) { + return this.getEntityTexture((EntityDummy) entity); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityDummy) entity); + } + + protected ResourceLocation getEntityTexture(EntityDummy entity) { + return new ResourceLocation(RefStrings.MODID + ":textures/entity/dummy.png"); + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java index c64649c77..f5dc00064 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java @@ -2,7 +2,8 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; -import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import net.minecraft.client.model.ModelBase; @@ -13,10 +14,13 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; public class RenderGlyphid extends RenderLiving { + + public static final ResourceLocation glyphid_infested_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_infestation.png"); public RenderGlyphid() { super(new ModelGlyphid(), 1.0F); this.shadowOpaque = 0.0F; + this.setRenderPassModel(this.mainModel); } @Override @@ -24,6 +28,21 @@ public class RenderGlyphid extends RenderLiving { EntityGlyphid glyphid = (EntityGlyphid) entity; return glyphid.getSkin(); } + + @Override + protected int shouldRenderPass(EntityLivingBase entity, int pass, float interp) { + if(pass != 0) { + return -1; + } else { + if(entity.getDataWatcher().getWatchableObjectByte(EntityGlyphid.DW_SUBTYPE) == EntityGlyphid.TYPE_INFECTED) { + this.bindTexture(glyphid_infested_tex); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + return 1; + } + return -1; + } + } public static class ModelGlyphid extends ModelBase { @@ -43,17 +62,23 @@ public class RenderGlyphid extends RenderLiving { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); + this.renderModel(entity, limbSwing); + + GL11.glPopMatrix(); + } + + public void renderModel(Entity entity, float limbSwing) { + + GL11.glPushMatrix(); + double s = ((EntityGlyphid) entity).getScale(); GL11.glScaled(s, s, s); EntityLivingBase living = (EntityLivingBase) entity; - byte armor = living.getDataWatcher().getWatchableObjectByte(17); - //MainRegistry.proxy.displayTooltip("" + limbSwingAmount, 999); + byte armor = living.getDataWatcher().getWatchableObjectByte(EntityGlyphid.DW_ARMOR); double walkCycle = limbSwing; - double speed = 100000D; - double chewing = 200000D; double cy0 = Math.sin(walkCycle % (Math.PI * 2)); double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java index 5c91e44a1..2cd0abf45 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java @@ -2,8 +2,8 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; -import com.hbm.entity.mob.EntityGlyphid; -import com.hbm.entity.mob.EntityGlyphidNuclear; +import com.hbm.entity.mob.glyphid.EntityGlyphid; +import com.hbm.entity.mob.glyphid.EntityGlyphidNuclear; import com.hbm.main.ResourceManager; import net.minecraft.client.Minecraft; @@ -108,8 +108,6 @@ public class RenderGlyphidNuclear extends RenderLiving { double walkCycle = limbSwing; - double speed = 100000D; - double chewing = 200000D; double cy0 = Math.sin(walkCycle % (Math.PI * 2)); double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderMaggot.java b/src/main/java/com/hbm/render/entity/mob/RenderMaggot.java new file mode 100644 index 000000000..6fa0184cc --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderMaggot.java @@ -0,0 +1,28 @@ +package com.hbm.render.entity.mob; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.model.ModelSilverfish; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ResourceLocation; + +public class RenderMaggot extends RenderLiving { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/parasite_maggot.png"); + + public RenderMaggot() { + super(new ModelSilverfish(), 0.3F); + } + + @Override + protected float getDeathMaxRotation(EntityLivingBase entity) { + return 180.0F; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return texture; + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java new file mode 100644 index 000000000..8acc1a550 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java @@ -0,0 +1,39 @@ +package com.hbm.render.entity.mob; + +import com.hbm.entity.mob.EntityPigeon; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class RenderPigeon extends RenderLiving { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/pigeon.png"); + + public RenderPigeon(ModelBase p_i1252_1_, float p_i1252_2_) { + super(p_i1252_1_, p_i1252_2_); + } + + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityPigeon) entity); + } + + protected ResourceLocation getEntityTexture(EntityPigeon entity) { + return texture; + } + + protected float handleRotationFloat(EntityPigeon entity, float interp) { + float f1 = entity.prevFallTime + (entity.fallTime - entity.prevFallTime) * interp; + float f2 = entity.prevDest + (entity.dest - entity.prevDest) * interp; + return (MathHelper.sin(f1) + 1.0F) * f2; + } + + @Override + protected float handleRotationFloat(EntityLivingBase entity, float interp) { + return this.handleRotationFloat((EntityPigeon) entity, interp); + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java b/src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java new file mode 100644 index 000000000..2d6a210f4 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java @@ -0,0 +1,41 @@ +package com.hbm.render.entity.mob; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderPlasticBag extends Render { + + private static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/plasticbag.obj")); + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/plasticbag.png"); + + public RenderPlasticBag() { + this.shadowOpaque = 0.0F; + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * f1 + 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * f1 - 90, 0.0F, 0.0F, 1.0F); + + this.bindEntityTexture(entity); + model.renderAll(); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return texture; + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java b/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java index 068ce2365..8e37a801f 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderRADBeast.java @@ -20,95 +20,86 @@ import net.minecraft.util.Vec3; public class RenderRADBeast extends RenderLiving { - private static final ResourceLocation blazeTextures = new ResourceLocation(RefStrings.MODID, "textures/entity/radbeast.png"); - private static final ResourceLocation mask = new ResourceLocation(RefStrings.MODID, "textures/models/ModelM65Blaze.png"); - private int field_77068_a; + private static final ResourceLocation blazeTextures = new ResourceLocation(RefStrings.MODID, "textures/entity/radbeast.png"); + private static final ResourceLocation mask = new ResourceLocation(RefStrings.MODID, "textures/models/ModelM65Blaze.png"); + private int blazeModel; - public RenderRADBeast() - { - super(new ModelBlaze(), 0.5F); - this.field_77068_a = ((ModelBlaze)this.mainModel).func_78104_a(); - } - - public void doRender(EntityRADBeast entity, double x, double y, double z, float r0, float r1) - { - int i = ((ModelBlaze)this.mainModel).func_78104_a(); + public RenderRADBeast() { + super(new ModelBlaze(), 0.5F); + this.blazeModel = ((ModelBlaze) this.mainModel).func_78104_a(); + } - if (i != this.field_77068_a) - { - this.field_77068_a = i; - this.mainModel = new ModelBlaze(); - } - - Entity victim = entity.getUnfortunateSoul(); - - if(victim != null) { + public void doRender(EntityRADBeast entity, double x, double y, double z, float r0, float r1) { + int i = ((ModelBlaze) this.mainModel).func_78104_a(); - GL11.glPushMatrix(); - - GL11.glTranslated(x, y + 1.25, z); - - double sx = entity.posX; - double sy = entity.posY + 1.25; - double sz = entity.posZ; - - double tX = victim.posX; - double tY = victim.posY + victim.height / 2; - double tZ = victim.posZ; - - if(victim == Minecraft.getMinecraft().thePlayer) - tY -= 1.5; - - double length = Math.sqrt(Math.pow(tX - sx, 2) + Math.pow(tY - sy, 2) + Math.pow(tZ - sz, 2)); - BeamPronter.prontBeam(Vec3.createVectorHelper(tX - sx, tY - sy, tZ - sz), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x004000, 0x004000, (int) (entity.worldObj.getTotalWorldTime() % 1000 + 1), (int) (length * 5), 0.125F, 2, 0.03125F); - - GL11.glPopMatrix(); + if(i != this.blazeModel) { + this.blazeModel = i; + this.mainModel = new ModelBlaze(); } - super.doRender((EntityLiving)entity, x, y, z, r0, r1); - } - - protected ResourceLocation getEntityTexture(EntityRADBeast p_110775_1_) - { - return blazeTextures; - } - - public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) - { - this.doRender((EntityRADBeast)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - public void doRender(EntityLivingBase p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) - { - this.doRender((EntityRADBeast)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - protected ResourceLocation getEntityTexture(Entity p_110775_1_) - { - return this.getEntityTexture((EntityRADBeast)p_110775_1_); - } - - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) - { - this.doRender((EntityRADBeast)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } + Entity victim = entity.getUnfortunateSoul(); + + if(victim != null && entity.posY > 0.1) { + + GL11.glPushMatrix(); + + GL11.glTranslated(x, y + 1.25, z); + + double sx = entity.posX; + double sy = entity.posY + 1.25; + double sz = entity.posZ; + + double tX = victim.posX; + double tY = victim.posY + victim.height / 2; + double tZ = victim.posZ; + + if(victim == Minecraft.getMinecraft().thePlayer) + tY -= 1.5; + + double length = Math.sqrt(Math.pow(tX - sx, 2) + Math.pow(tY - sy, 2) + Math.pow(tZ - sz, 2)); + if(length < 200) BeamPronter.prontBeam(Vec3.createVectorHelper(tX - sx, tY - sy, tZ - sz), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x004000, 0x004000, (int) (entity.worldObj.getTotalWorldTime() % 1000 + 1), (int) (length * 5), 0.125F, 2, 0.03125F); + + GL11.glPopMatrix(); + } + + super.doRender((EntityLiving) entity, x, y, z, r0, r1); + } + + protected ResourceLocation getEntityTexture(EntityRADBeast p_110775_1_) { + return blazeTextures; + } + + public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + } + + public void doRender(EntityLivingBase p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + } + + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return this.getEntityTexture((EntityRADBeast) p_110775_1_); + } + + public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + } private ModelM65Blaze modelM65; - protected int shouldRenderPass(EntityLivingBase p_77032_1_, int p_77032_2_, float p_77032_3_) - { - - if(p_77032_2_ == 0) { - this.bindTexture(mask); - - if (this.modelM65 == null) { + protected int shouldRenderPass(EntityLivingBase p_77032_1_, int p_77032_2_, float p_77032_3_) { + + if(p_77032_2_ == 0) { + this.bindTexture(mask); + + if(this.modelM65 == null) { this.modelM65 = new ModelM65Blaze(); } - - this.setRenderPassModel(modelM65); - return 1; - } - - return super.shouldRenderPass(p_77032_1_, p_77032_2_, p_77032_3_); - } + + this.setRenderPassModel(modelM65); + return 1; + } + + return super.shouldRenderPass(p_77032_1_, p_77032_2_, p_77032_3_); + } } diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBaleflare.java b/src/main/java/com/hbm/render/entity/projectile/RenderBaleflare.java deleted file mode 100644 index f3c1d9fc9..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBaleflare.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelBaleflare; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderBaleflare extends Render { - - private ModelBaleflare miniNuke; - - public RenderBaleflare() { - miniNuke = new ModelBaleflare(); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_ + 180, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png")); - miniNuke.renderAll(0.0625F); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBeam.java b/src/main/java/com/hbm/render/entity/projectile/RenderBeam.java index 6a0e4a6fe..2ee6039ed 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBeam.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBeam.java @@ -1,80 +1,41 @@ package com.hbm.render.entity.projectile; -import java.util.Random; - import org.lwjgl.opengl.GL11; -import com.hbm.lib.RefStrings; -import net.minecraft.client.renderer.Tessellator; +import com.hbm.entity.projectile.EntityBulletBeamBase; +import com.hbm.main.ResourceManager; + import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderBeam extends Render { - - Random rand = new Random(); @Override - public void doRender(Entity rocket, double x, double y, double z, float p_76986_8_, float p_76986_9_) { - float radius = 0.12F; - //float radius = 0.06F; - int distance = 4; - Tessellator tessellator = Tessellator.instance; - + public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { + EntityBulletBeamBase bullet = (EntityBulletBeamBase) entity; + if(bullet.config == null) bullet.config = bullet.getBulletConfig(); + if(bullet.config == null) return; + GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); GL11.glTranslatef((float) x, (float) y, (float) z); - - GL11.glRotatef(rocket.rotationYaw, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-rocket.rotationPitch, 1.0F, 0.0F, 0.0F); - - boolean red = false; - boolean green = true; - boolean blue = false; - - for (float o = 0; o <= radius; o += radius / 8) { - float color = 1f - (o * 8.333f); - if (color < 0) - color = 0; - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(red ? 1 : color, green ? 1 : color, blue ? 1 : color, 1f); - tessellator.addVertex(0 + o, 0 - o, 0); - tessellator.addVertex(0 + o, 0 + o, 0); - tessellator.addVertex(0 + o, 0 + o, 0 + distance); - tessellator.addVertex(0 + o, 0 - o, 0 + distance); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(red ? 1 : color, green ? 1 : color, blue ? 1 : color, 1f); - tessellator.addVertex(0 - o, 0 - o, 0); - tessellator.addVertex(0 + o, 0 - o, 0); - tessellator.addVertex(0 + o, 0 - o, 0 + distance); - tessellator.addVertex(0 - o, 0 - o, 0 + distance); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(red ? 1 : color, green ? 1 : color, blue ? 1 : color, 1f); - tessellator.addVertex(0 - o, 0 + o, 0); - tessellator.addVertex(0 - o, 0 - o, 0); - tessellator.addVertex(0 - o, 0 - o, 0 + distance); - tessellator.addVertex(0 - o, 0 + o, 0 + distance); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(red ? 1 : color, green ? 1 : color, blue ? 1 : color, 1f); - tessellator.addVertex(0 + o, 0 + o, 0); - tessellator.addVertex(0 - o, 0 + o, 0); - tessellator.addVertex(0 - o, 0 + o, 0 + distance); - tessellator.addVertex(0 + o, 0 + o, 0 + distance); - tessellator.draw(); + + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + GL11.glDisable(GL11.GL_FOG); + + if(bullet.config.renderRotations) { + GL11.glRotatef(bullet.prevRotationYaw + (bullet.rotationYaw - bullet.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(bullet.prevRotationPitch + (bullet.rotationPitch - bullet.prevRotationPitch) * interp + 180, 0.0F, 0.0F, 1.0F); } - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_TEXTURE_2D); + + if(bullet.config.rendererBeam != null) { + bullet.config.rendererBeam.accept(bullet, interp); + } + + if(fog) GL11.glEnable(GL11.GL_FOG); + GL11.glPopMatrix(); } - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/PlasmaBeam.png"); - } + @Override protected ResourceLocation getEntityTexture(Entity entity) { return ResourceManager.universal; } } diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBombletSelena.java b/src/main/java/com/hbm/render/entity/projectile/RenderBombletSelena.java deleted file mode 100644 index 1c8850bed..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBombletSelena.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderBombletSelena extends Render { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/bombletSelena.obj"); - private IModelCustom boyModel; - private ResourceLocation boyTexture; - - public RenderBombletSelena() { - boyModel = AdvancedModelLoader.loadModel(objTesterModelRL); - boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - GL11.glScalef(2, 2, 2); - - bindTexture(boyTexture); - boyModel.renderAll(); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID +":textures/models/TheGadget3_.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java b/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java index 275a6083d..ca4dfe348 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBoxcar.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.entity.projectile.EntityBoxcar; import com.hbm.entity.projectile.EntityBuilding; import com.hbm.entity.projectile.EntityDuchessGambit; +import com.hbm.entity.projectile.EntityTorpedo; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -14,43 +15,50 @@ import net.minecraft.util.ResourceLocation; public class RenderBoxcar extends Render { @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - - if(p_76986_1_ instanceof EntityBoxcar) { - GL11.glTranslatef(0, 0, -1.5F); - GL11.glRotated(180, 0, 0, 1); - GL11.glRotated(90, 1, 0, 0); - - bindTexture(ResourceManager.boxcar_tex); - ResourceManager.boxcar.renderAll(); - } - - if(p_76986_1_ instanceof EntityDuchessGambit) { - GL11.glTranslatef(0, 0, -1.0F); - - bindTexture(ResourceManager.duchessgambit_tex); - ResourceManager.duchessgambit.renderAll(); - } - - if(p_76986_1_ instanceof EntityBuilding) { - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.building_tex); - ResourceManager.building.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - } - + GL11.glTranslated(x, y, z); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + + if(entity instanceof EntityBoxcar) { + GL11.glTranslatef(0, 0, -1.5F); + GL11.glRotated(180, 0, 0, 1); + GL11.glRotated(90, 1, 0, 0); + + bindTexture(ResourceManager.boxcar_tex); + ResourceManager.boxcar.renderAll(); + } + + if(entity instanceof EntityDuchessGambit) { + GL11.glTranslatef(0, 0, -1.0F); + + bindTexture(ResourceManager.duchessgambit_tex); + ResourceManager.duchessgambit.renderAll(); + } + + if(entity instanceof EntityBuilding) { + GL11.glDisable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.building_tex); + ResourceManager.building.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + } + + if(entity instanceof EntityTorpedo) { + float f = entity.ticksExisted + f1; + GL11.glRotatef(Math.min(85, f * 3), 1, 0, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.torpedo_tex); + ResourceManager.torpedo.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + GL11.glPopMatrix(); } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + protected ResourceLocation getEntityTexture(Entity entity) { return ResourceManager.boxcar_tex; } - -} \ No newline at end of file +} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java index 0c8f15481..6c57fbd37 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java @@ -3,13 +3,14 @@ package com.hbm.render.entity.projectile; import java.util.Random; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.IBulletBase; import com.hbm.handler.BulletConfiguration; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.render.model.ModelBaleflare; import com.hbm.render.model.ModelBullet; import com.hbm.render.util.RenderSparks; import com.hbm.util.Tuple.Pair; @@ -29,11 +30,9 @@ import net.minecraft.util.Vec3; public class RenderBullet extends Render { private ModelBullet bullet; - private ModelBaleflare bf; public RenderBullet() { bullet = new ModelBullet(); - bf = new ModelBaleflare(); } @Override @@ -63,15 +62,12 @@ public class RenderBullet extends Render { case BulletConfiguration.STYLE_PELLET: renderBuckshot(); break; case BulletConfiguration.STYLE_ROCKET: renderRocket(trail); break; case BulletConfiguration.STYLE_GRENADE: renderGrenade(trail); break; - case BulletConfiguration.STYLE_NUKE: renderNuke(0); break; - case BulletConfiguration.STYLE_MIRV: renderNuke(1); break; - case BulletConfiguration.STYLE_BF: renderNuke(2); break; case BulletConfiguration.STYLE_ORB: renderOrb(trail); break; case BulletConfiguration.STYLE_METEOR: renderMeteor(trail); break; case BulletConfiguration.STYLE_APDS: renderAPDS(); break; case BulletConfiguration.STYLE_BLADE: renderBlade(); break; - case BulletConfiguration.STYLE_BARREL: renderNuke(3); break; - case BulletConfiguration.STYLE_TAU: renderTau((EntityBulletBase) bullet, trail, f1); break; + case BulletConfiguration.STYLE_TAU: renderTau(bullet, trail, f1); break; + case BulletConfiguration.STYLE_LEADBURSTER: renderLeadburster(bullet, f1); break; default: renderBullet(trail); break; } @@ -175,21 +171,6 @@ public class RenderBullet extends Render { GL11.glScalef(0.25F, 0.25F, 0.25F); GL11.glRotated(90, 0, 0, 1); GL11.glRotated(90, 0, 1, 0); - - switch(type) { - case 0: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelGrenade.png")); break; - case 1: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelGrenadeHE.png")); break; - case 2: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelGrenadeIncendiary.png")); break; - case 3: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelGrenadeToxic.png")); break; - case 4: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelGrenadeSleek.png")); break; - case 5: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelGrenadeTraining.png")); break; - } GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.grenade_tex); @@ -197,41 +178,6 @@ public class RenderBullet extends Render { GL11.glShadeModel(GL11.GL_FLAT); } - private void renderNuke(int type) { - - switch(type) { - case 0: - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glRotated(90, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.mini_nuke_tex); - ResourceManager.projectiles.renderPart("MiniNuke"); - GL11.glShadeModel(GL11.GL_FLAT); - break; - case 1: - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glRotated(90, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.mini_mirv_tex); - ResourceManager.projectiles.renderPart("MiniMIRV"); - GL11.glShadeModel(GL11.GL_FLAT); - break; - case 2: - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png")); - bf.renderAll(0.0625F); break; - case 3: - GL11.glRotated(90, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glTranslated(0, -0.5, 0); - bindTexture(ResourceManager.waste_drum_tex); - ResourceManager.waste_drum.renderAll(); - break; - } - - } - private void renderOrb(int type) { GL11.glEnable(GL11.GL_CULL_FACE); @@ -482,7 +428,7 @@ public class RenderBullet extends Render { GL11.glPopMatrix(); } - private void renderTau(EntityBulletBase bullet, int trail, float interp) { + private void renderTau(Entity bullet, int trail, float interp) { Tessellator tessellator = Tessellator.instance; @@ -492,15 +438,17 @@ public class RenderBullet extends Render { double pY = bullet.prevPosY + (bullet.posY - bullet.prevPosY) * interp; double pZ = bullet.prevPosZ + (bullet.posZ - bullet.prevPosZ) * interp; - if(bullet.prevRenderY == 0) { - bullet.prevRenderX = pX; - bullet.prevRenderY = pY; - bullet.prevRenderZ = pZ; + IBulletBase iface = (IBulletBase) bullet; + + if(iface.prevY() == 0) { + iface.prevX(pX); + iface.prevY(pY); + iface.prevZ(pZ); } - double deltaX = bullet.prevRenderX - pX; - double deltaY = bullet.prevRenderY - pY; - double deltaZ = bullet.prevRenderZ - pZ; + double deltaX = iface.prevX() - pX; + double deltaY = iface.prevY() - pY; + double deltaZ = iface.prevZ() - pZ; EntityPlayer player = Minecraft.getMinecraft().thePlayer; double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)interp; @@ -521,7 +469,7 @@ public class RenderBullet extends Render { b = 1; } - for(Pair pair : bullet.trailNodes) { + for(Pair pair : iface.nodes()) { Vec3 pos = pair.getKey(); double mult = 1D; @@ -533,8 +481,8 @@ public class RenderBullet extends Render { tessellator.startDrawingQuads(); tessellator.setNormal(0F, 1F, 0F); - for(int i = 0; i < bullet.trailNodes.size() - 1; i++) { - final Pair node = bullet.trailNodes.get(i), past = bullet.trailNodes.get(i + 1); + for(int i = 0; i < iface.nodes().size() - 1; i++) { + final Pair node = iface.nodes().get(i), past = iface.nodes().get(i + 1); final Vec3 nodeLoc = node.getKey(), pastLoc = past.getKey(); float nodeAlpha = node.getValue().floatValue(); float pastAlpha = past.getValue().floatValue(); @@ -582,9 +530,27 @@ public class RenderBullet extends Render { GL11.glDisable(GL11.GL_BLEND); GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); - bullet.prevRenderX = pX; - bullet.prevRenderY = pY; - bullet.prevRenderZ = pZ; + iface.prevX(pX); + iface.prevY(pY); + iface.prevZ(pZ); + } + + private void renderLeadburster(Entity bullet, float interp) { + EntityBulletBaseNT bulletnt = (EntityBulletBaseNT) bullet; + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glRotated(90, 0, 0, -1); + double scale = 0.05; + GL11.glScaled(scale, scale, scale); + bindTexture(ResourceManager.leadburster_tex); + ResourceManager.leadburster.renderPart("Based"); + if(bulletnt.getStuckIn() != -1) { + GL11.glRotated((bullet.ticksExisted + interp) * -18, 0, 1, 0); + } + ResourceManager.leadburster.renderPart("Based.001"); + ResourceManager.leadburster.renderPart("Backlight"); + GL11.glPopMatrix(); } @Override diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBulletMK4.java b/src/main/java/com/hbm/render/entity/projectile/RenderBulletMK4.java new file mode 100644 index 000000000..561a71271 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBulletMK4.java @@ -0,0 +1,36 @@ +package com.hbm.render.entity.projectile; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderBulletMK4 extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { + EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; + if(bullet.config == null) bullet.config = bullet.getBulletConfig(); + if(bullet.config == null) return; + + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + + if(bullet.config.renderRotations) { + GL11.glRotatef(bullet.prevRotationYaw + (bullet.rotationYaw - bullet.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(bullet.prevRotationPitch + (bullet.rotationPitch - bullet.prevRotationPitch) * interp + 180, 0.0F, 0.0F, 1.0F); + } + + if(bullet.config.renderer != null) { + bullet.config.renderer.accept(bullet, interp); + } + + GL11.glPopMatrix(); + } + + @Override protected ResourceLocation getEntityTexture(Entity entity) { return ResourceManager.universal; } +} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java b/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java index cca75e72d..06ecc70fa 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java @@ -1,9 +1,11 @@ package com.hbm.render.entity.projectile; +import com.hbm.entity.grenade.EntityDisperserCanister; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import com.hbm.entity.grenade.IGenericGrenade; +import com.hbm.inventory.fluid.FluidType; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; @@ -17,21 +19,43 @@ public class RenderGenericGrenade extends Render { @Override public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { - IGenericGrenade grenade = (IGenericGrenade) entity; + boolean disperser = entity instanceof EntityDisperserCanister; - IIcon iicon = grenade.getGrenade().getIconFromDamage(0); - - if(iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - this.bindEntityTexture(entity); - Tessellator tessellator = Tessellator.instance; - - this.renderItem(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); + for(int i = 0; i < (disperser ? 2 : 1); i++) { + + IIcon iicon; + if(disperser){ + EntityDisperserCanister canister = (EntityDisperserCanister) entity; + FluidType fluid = canister.getFluid(); + iicon = canister.getType().getIconFromDamageForRenderPass(fluid.getID(), i); + + if(i == 1) { + int hex = fluid.getColor(); + int r = (hex & 0xFF0000) >> 16; + int g = (hex & 0xFF00) >> 8; + int b = (hex & 0xFF); + GL11.glColor3b((byte) (r / 2), (byte) (g / 2), (byte) (b / 2)); + } + + } else { + IGenericGrenade grenade = (IGenericGrenade) entity; + iicon = grenade.getGrenade().getIconFromDamage(i); + } + + if(iicon != null) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glScalef(0.5F, 0.5F, 0.5F); + this.bindEntityTexture(entity); + Tessellator tessellator = Tessellator.instance; + + this.renderItem(tessellator, iicon); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + + GL11.glColor3f(1F, 1F, 1F); } } diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderLN2.java b/src/main/java/com/hbm/render/entity/projectile/RenderLN2.java deleted file mode 100644 index 923677c39..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderLN2.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.projectile.EntityLN2; -import com.hbm.items.ModItems; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class RenderLN2 extends Render { - private Item field_94151_a; - public RenderLN2(Item p_i1259_1_, int p_i1259_2_) - { - this.field_94151_a = p_i1259_1_; - } - - public RenderLN2(Item p_i1260_1_) - { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then - * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic - * (Render= fx.maxAge / 10 * 9) - { - field_94151_a = ModItems.ln2_10; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 9 && fx.ticksExisted >= fx.maxAge / 10 * 8) - { - field_94151_a = ModItems.ln2_9; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 8 && fx.ticksExisted >= fx.maxAge / 10 * 7) - { - field_94151_a = ModItems.ln2_8; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 7 && fx.ticksExisted >= fx.maxAge / 10 * 6) - { - field_94151_a = ModItems.ln2_7; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 6 && fx.ticksExisted >= fx.maxAge / 10 * 5) - { - field_94151_a = ModItems.ln2_6; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 5 && fx.ticksExisted >= fx.maxAge / 10 * 4) - { - field_94151_a = ModItems.ln2_5; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 4 && fx.ticksExisted >= fx.maxAge / 10 * 3) - { - field_94151_a = ModItems.ln2_4; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 3 && fx.ticksExisted >= fx.maxAge / 10 * 2) - { - field_94151_a = ModItems.ln2_3; - } - - if(fx.ticksExisted < fx.maxAge / 10 * 2 && fx.ticksExisted >= fx.maxAge / 10 * 1) - { - field_94151_a = ModItems.ln2_2; - } - - if(fx.ticksExisted < fx.maxAge / 10 && fx.ticksExisted >= 0 && !fx.isDead) - { - field_94151_a = ModItems.ln2_1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) - { - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - GL11.glTranslatef(0.0F, -0.25F, 0.0F); - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) - { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) - { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } - -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderLaser.java b/src/main/java/com/hbm/render/entity/projectile/RenderLaser.java deleted file mode 100644 index b87d393ac..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderLaser.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.projectile.EntityLaser; -import com.hbm.lib.Library; -import com.hbm.render.util.BeamPronter; -import com.hbm.render.util.BeamPronter.EnumBeamType; -import com.hbm.render.util.BeamPronter.EnumWaveType; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; - -public class RenderLaser extends Render { - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - this.doRender((EntityLaser)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - public void doRender(EntityLaser laser, double x, double y, double z, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - - EntityPlayer player = laser.worldObj.getPlayerEntityByName(laser.getDataWatcher().getWatchableObjectString(20)); - - if(player != null) { - - - - //GL11.glTranslated(x - dX, y - dY, z - dZ); - - GL11.glTranslated(x, y, z); - - MovingObjectPosition pos = Library.rayTrace(player, 100, 1); - - Vec3 skeleton = Vec3.createVectorHelper(pos.hitVec.xCoord - player.posX, pos.hitVec.yCoord - player.posY - player.getEyeHeight(), pos.hitVec.zCoord - player.posZ); - int init = (int) -(System.currentTimeMillis() % 360); - - //BeamPronter.prontHelix(skeleton, 0, 0, 0, EnumWaveType.SPIRAL, EnumBeamType.LINE, 0x0000ff, 0x8080ff, 0, (int)(skeleton.lengthVector() * 5), 0.2F); - BeamPronter.prontBeam(skeleton, EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xff5000, 0xff5000, init, (int) skeleton.lengthVector() + 1, 0.1F, 4, 0.05F); - BeamPronter.prontBeam(skeleton, EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xff3000, 0xff3000, init, 1, 0F, 4, 0.05F); - } - - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; - } - -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderMiniMIRV.java b/src/main/java/com/hbm/render/entity/projectile/RenderMiniMIRV.java deleted file mode 100644 index 6a225cc32..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderMiniMIRV.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMIRV; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMiniMIRV extends Render { - - private ModelMIRV miniNuke; - - public RenderMiniMIRV() { - miniNuke = new ModelMIRV(); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_ + 180, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/Mirv.png")); - miniNuke.renderAll(0.0625F); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/Mirv.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderMiniNuke.java b/src/main/java/com/hbm/render/entity/projectile/RenderMiniNuke.java deleted file mode 100644 index 6295fb83b..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderMiniNuke.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMiniNuke; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMiniNuke extends Render { - - private ModelMiniNuke miniNuke; - - public RenderMiniNuke() { - miniNuke = new ModelMiniNuke(); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_ + 180, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/MiniNuke.png")); - miniNuke.renderAll(0.0625F); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/MiniNuke.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderMirv.java b/src/main/java/com/hbm/render/entity/projectile/RenderMirv.java index 810ad9960..7c7e57866 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderMirv.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderMirv.java @@ -25,17 +25,17 @@ public class RenderMirv extends Render { public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - bindTexture(boyTexture); - boyModel.renderAll(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + + bindTexture(boyTexture); + boyModel.renderAll(); GL11.glPopMatrix(); } @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID +":textures/models/TheGadget3_.png"); + return new ResourceLocation(RefStrings.MODID + ":textures/models/TheGadget3_.png"); } } diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderOminousBullet.java b/src/main/java/com/hbm/render/entity/projectile/RenderOminousBullet.java deleted file mode 100644 index 09bec73a2..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderOminousBullet.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.hbm.render.entity.projectile; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderOminousBullet extends Render { - - Random rand = new Random(); - - @Override - public void doRender(Entity rocket, double x, double y, double z, float p_76986_8_, float p_76986_9_) { - float radius = 0.12F; - int distance = 4; - - radius = 0.03F; - - Tessellator tessellator = Tessellator.instance; - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glTranslatef((float) x, (float) y, (float) z); - - GL11.glRotatef(rocket.rotationYaw, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-rocket.rotationPitch, 1.0F, 0.0F, 0.0F); - - boolean red = false; - boolean green = false; - boolean blue = false; - - green = true; - red = true; - - //for (float o = 0; o <= radius; o += radius / 8) { - for (float o = 0; o <= radius; o += radius / 1) { - float color = 1f - (o * 8.333f); - if (color < 0) - color = 0; - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(red ? 1 : color, green ? 1 : color, blue ? 1 : color, 1f); - tessellator.addVertex(0 + o, 0 - o, 0); - tessellator.addVertex(0 + o, 0 + o, 0); - tessellator.addVertex(0 + o, 0 + o, 0 + distance); - tessellator.addVertex(0 + o, 0 - o, 0 + distance); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(red ? 1 : color, green ? 1 : color, blue ? 1 : color, 1f); - tessellator.addVertex(0 - o, 0 - o, 0); - tessellator.addVertex(0 + o, 0 - o, 0); - tessellator.addVertex(0 + o, 0 - o, 0 + distance); - tessellator.addVertex(0 - o, 0 - o, 0 + distance); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(red ? 1 : color, green ? 1 : color, blue ? 1 : color, 1f); - tessellator.addVertex(0 - o, 0 + o, 0); - tessellator.addVertex(0 - o, 0 - o, 0); - tessellator.addVertex(0 - o, 0 - o, 0 + distance); - tessellator.addVertex(0 - o, 0 + o, 0 + distance); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(red ? 1 : color, green ? 1 : color, blue ? 1 : color, 1f); - tessellator.addVertex(0 + o, 0 + o, 0); - tessellator.addVertex(0 - o, 0 + o, 0); - tessellator.addVertex(0 - o, 0 + o, 0 + distance); - tessellator.addVertex(0 + o, 0 + o, 0 + distance); - tessellator.draw(); - } - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/Rainbow.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderSRocket.java b/src/main/java/com/hbm/render/entity/projectile/RenderSRocket.java deleted file mode 100644 index 7ac3f210e..000000000 --- a/src/main/java/com/hbm/render/entity/projectile/RenderSRocket.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.hbm.render.entity.projectile; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.projectile.EntityRocketHoming; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelSRocket; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderSRocket extends Render { - - private ModelSRocket missile; - - public RenderSRocket() { - missile = new ModelSRocket(); - } - - public void doRender(EntityRocketHoming rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glRotatef(rocket.prevRotationYaw + (rocket.rotationYaw - rocket.prevRotationYaw) * p_76986_9_ - 90.0F, - 0.0F, 1.0F, 0.0F); - GL11.glRotatef(rocket.prevRotationPitch + (rocket.rotationPitch - rocket.prevRotationPitch) * p_76986_9_ + 180, - 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - if(rocket.getIsCritical()) - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelSVTRocket.png")); - else - bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/ModelSRocket.png")); - missile.renderAll(0.0625F); - GL11.glPopMatrix(); - } - - @Override - public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - doRender((EntityRocketHoming)rocket, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID + ":textures/models/ModelSRocket.png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderBoosterMissile.java b/src/main/java/com/hbm/render/entity/rocket/RenderBoosterMissile.java deleted file mode 100644 index c586ec6d5..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderBoosterMissile.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderBoosterMissile extends Render { - - public RenderBoosterMissile() { } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glScalef(2F, 2F, 2F); - - bindTexture(ResourceManager.missileBooster_tex); - ResourceManager.missileBooster.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileBooster_tex; - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderCarrierMissile.java b/src/main/java/com/hbm/render/entity/rocket/RenderCarrierMissile.java deleted file mode 100644 index ad6391fe6..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderCarrierMissile.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderCarrierMissile extends Render { - - public RenderCarrierMissile() { } - - @Override - public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glScalef(1.0F, 1.0F, 1.0F); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileCarrier_tex); - ResourceManager.missileCarrier.renderAll(); - - if(rocket.getDataWatcher().getWatchableObjectInt(8) == 1) { - GL11.glTranslated(0.0D, 0.5D, 0.0D); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - bindTexture(ResourceManager.missileBooster_tex); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(-2.5D, 0.0D, 0.0D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, -2.5D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - } - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileCarrier_tex; - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java b/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java index 1031f515d..b3c89b5f3 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java @@ -3,7 +3,6 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; import com.hbm.entity.missile.EntityMinerRocket; -import com.hbm.entity.missile.EntitySiegeDropship; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -22,12 +21,7 @@ public class RenderMinerRocket extends Render { if(entity instanceof EntityMinerRocket) { bindTexture(ResourceManager.minerRocket_tex); } else { - - if(entity instanceof EntitySiegeDropship) { - bindTexture(ResourceManager.siege_dropship_tex); - } else { - bindTexture(ResourceManager.bobmazon_tex); - } + bindTexture(ResourceManager.bobmazon_tex); GL11.glRotatef(180, 1, 0, 0); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileCustom.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileCustom.java index e7fd50aa1..be59b8aa1 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileCustom.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileCustom.java @@ -16,27 +16,26 @@ import net.minecraft.util.ResourceLocation; public class RenderMissileCustom extends Render { @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + + int w = entity.getDataWatcher().getWatchableObjectInt(9); + int f = entity.getDataWatcher().getWatchableObjectInt(10); + int s = entity.getDataWatcher().getWatchableObjectInt(11); + int t = entity.getDataWatcher().getWatchableObjectInt(12); + MissileMultipart missile = new MissileMultipart(); + missile.warhead = MissilePart.getPart(Item.getItemById(w)); + missile.fuselage = MissilePart.getPart(Item.getItemById(f)); + missile.fins = MissilePart.getPart(Item.getItemById(s)); + missile.thruster = MissilePart.getPart(Item.getItemById(t)); + + MissilePronter.prontMissile(missile, Minecraft.getMinecraft().getTextureManager()); - int w = p_76986_1_.getDataWatcher().getWatchableObjectInt(9); - int f = p_76986_1_.getDataWatcher().getWatchableObjectInt(10); - int s = p_76986_1_.getDataWatcher().getWatchableObjectInt(11); - int t = p_76986_1_.getDataWatcher().getWatchableObjectInt(12); - - MissileMultipart missile = new MissileMultipart(); - missile.warhead = MissilePart.getPart(Item.getItemById(w)); - missile.fuselage = MissilePart.getPart(Item.getItemById(f)); - missile.fins = MissilePart.getPart(Item.getItemById(s)); - missile.thruster = MissilePart.getPart(Item.getItemById(t)); - - MissilePronter.prontMissile(missile, Minecraft.getMinecraft().getTextureManager()); - GL11.glPopMatrix(); } @@ -44,5 +43,4 @@ public class RenderMissileCustom extends Render { protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return ResourceManager.universal; } - } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java deleted file mode 100644 index f67f888e0..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileDoomsday.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMissileDoomsday extends Render { - - public RenderMissileDoomsday() { } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - GL11.glScalef(2F, 2F, 2F); - - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.missileDoomsday_tex); - ResourceManager.missileDoomsday.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileDoomsday_tex; - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 268cca1cf..cf420dd0b 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -3,10 +3,9 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; import com.hbm.entity.missile.EntityMissileAntiBallistic; -import com.hbm.entity.missile.EntityMissileBunkerBuster; -import com.hbm.entity.missile.EntityMissileCluster; -import com.hbm.entity.missile.EntityMissileGeneric; -import com.hbm.entity.missile.EntityMissileIncendiary; +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileStealth; +import com.hbm.entity.missile.EntityMissileTier1.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -14,28 +13,51 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderMissileGeneric extends Render { - - public RenderMissileGeneric() { } + + public RenderMissileGeneric() { + } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - if(p_76986_1_ instanceof EntityMissileGeneric) - bindTexture(ResourceManager.missileV2_HE_tex); - if(p_76986_1_ instanceof EntityMissileIncendiary) - bindTexture(ResourceManager.missileV2_IN_tex); - if(p_76986_1_ instanceof EntityMissileCluster) - bindTexture(ResourceManager.missileV2_CL_tex); - if(p_76986_1_ instanceof EntityMissileBunkerBuster) - bindTexture(ResourceManager.missileV2_BU_tex); - if(p_76986_1_ instanceof EntityMissileAntiBallistic) - bindTexture(ResourceManager.missileAA_tex); - ResourceManager.missileV2.renderAll(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + 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; + } + + if(entity instanceof EntityMissileAntiBallistic) { + bindTexture(ResourceManager.missileAA_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileABM.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } else if(entity instanceof EntityMissileStealth) { + bindTexture(ResourceManager.missileStealth_tex); + ResourceManager.missileStealth.renderAll(); + } else { + + if(entity instanceof EntityMissileGeneric) + bindTexture(ResourceManager.missileV2_HE_tex); + if(entity instanceof EntityMissileIncendiary) + bindTexture(ResourceManager.missileV2_IN_tex); + if(entity instanceof EntityMissileCluster) + bindTexture(ResourceManager.missileV2_CL_tex); + if(entity instanceof EntityMissileBunkerBuster) + bindTexture(ResourceManager.missileV2_BU_tex); + if(entity instanceof EntityMissileDecoy) + bindTexture(ResourceManager.missileV2_decoy_tex); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java index af95674e1..70edc8592 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java @@ -2,10 +2,8 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileBurst; -import com.hbm.entity.missile.EntityMissileDrill; -import com.hbm.entity.missile.EntityMissileInferno; -import com.hbm.entity.missile.EntityMissileRain; +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -13,27 +11,33 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderMissileHuge extends Render { - - public RenderMissileHuge() { } + + public RenderMissileHuge() { + } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glScalef(2F, 2F, 2F); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - if(p_76986_1_ instanceof EntityMissileBurst) - bindTexture(ResourceManager.missileHuge_HE_tex); - if(p_76986_1_ instanceof EntityMissileInferno) - bindTexture(ResourceManager.missileHuge_IN_tex); - if(p_76986_1_ instanceof EntityMissileRain) - bindTexture(ResourceManager.missileHuge_CL_tex); - if(p_76986_1_ instanceof EntityMissileDrill) - bindTexture(ResourceManager.missileHuge_BU_tex); - ResourceManager.missileHuge.renderAll(); + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + 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; + } + + if(entity instanceof EntityMissileBurst) bindTexture(ResourceManager.missileHuge_HE_tex); + if(entity instanceof EntityMissileInferno) bindTexture(ResourceManager.missileHuge_IN_tex); + if(entity instanceof EntityMissileRain) bindTexture(ResourceManager.missileHuge_CL_tex); + if(entity instanceof EntityMissileDrill) bindTexture(ResourceManager.missileHuge_BU_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java deleted file mode 100644 index 413da7814..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileMirv.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMissileMirv extends Render { - - public RenderMissileMirv() { } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - bindTexture(ResourceManager.missileMIRV_tex); - ResourceManager.missileNuclear.renderAll(); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileMIRV_tex; - } -} diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java index 7719b2612..51abf8cd7 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java @@ -2,7 +2,8 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileVolcano; +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -14,19 +15,31 @@ public class RenderMissileNuclear extends Render { public RenderMissileNuclear() { } @Override - public void doRender(Entity missile, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - if(missile instanceof EntityMissileVolcano) - bindTexture(ResourceManager.missileVolcano_tex); - else - bindTexture(ResourceManager.missileNuclear_tex); + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + 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; + } + if(entity instanceof EntityMissileNuclear) bindTexture(ResourceManager.missileNuclear_tex); + if(entity instanceof EntityMissileMirv) bindTexture(ResourceManager.missileMIRV_tex); + if(entity instanceof EntityMissileDoomsday) bindTexture(ResourceManager.missileDoomsday_tex); + if(entity instanceof EntityMissileDoomsdayRusted) bindTexture(ResourceManager.missileDoomsdayRusted_tex); + if(entity instanceof EntityMissileVolcano) bindTexture(ResourceManager.missileVolcano_tex); + + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileNuclear.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileShuttle.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileShuttle.java index eff8e7b16..a874418d6 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileShuttle.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileShuttle.java @@ -13,16 +13,16 @@ public class RenderMissileShuttle extends Render { public RenderMissileShuttle() { } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glScalef(1F, 1F, 1F); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - bindTexture(ResourceManager.missileShuttle_tex); - ResourceManager.missileShuttle.renderAll(); + bindTexture(ResourceManager.missileShuttle_tex); + ResourceManager.missileShuttle.renderAll(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java index cbe85f692..d02c2b35c 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java @@ -2,11 +2,8 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileBusterStrong; -import com.hbm.entity.missile.EntityMissileClusterStrong; -import com.hbm.entity.missile.EntityMissileEMPStrong; -import com.hbm.entity.missile.EntityMissileIncendiaryStrong; -import com.hbm.entity.missile.EntityMissileStrong; +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileTier2.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -18,25 +15,30 @@ public class RenderMissileStrong extends Render { public RenderMissileStrong() { } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - if(p_76986_1_ instanceof EntityMissileStrong) - bindTexture(ResourceManager.missileStrong_HE_tex); - if(p_76986_1_ instanceof EntityMissileIncendiaryStrong) - bindTexture(ResourceManager.missileStrong_IN_tex); - if(p_76986_1_ instanceof EntityMissileClusterStrong) - bindTexture(ResourceManager.missileStrong_CL_tex); - if(p_76986_1_ instanceof EntityMissileBusterStrong) - bindTexture(ResourceManager.missileStrong_BU_tex); - if(p_76986_1_ instanceof EntityMissileEMPStrong) - bindTexture(ResourceManager.missileStrong_EMP_tex); - ResourceManager.missileStrong.renderAll(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); + GL11.glScalef(1.5F, 1.5F, 1.5F); + + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + 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; + } + + if(entity instanceof EntityMissileStrong) bindTexture(ResourceManager.missileStrong_HE_tex); + if(entity instanceof EntityMissileIncendiaryStrong) bindTexture(ResourceManager.missileStrong_IN_tex); + if(entity instanceof EntityMissileClusterStrong) bindTexture(ResourceManager.missileStrong_CL_tex); + if(entity instanceof EntityMissileBusterStrong) bindTexture(ResourceManager.missileStrong_BU_tex); + if(entity instanceof EntityMissileEMPStrong) bindTexture(ResourceManager.missileStrong_EMP_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java index 19c49616a..09d45cba4 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java @@ -2,10 +2,8 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileBHole; -import com.hbm.entity.missile.EntityMissileEMP; -import com.hbm.entity.missile.EntityMissileSchrabidium; -import com.hbm.entity.missile.EntityMissileTaint; +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileTier0.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -18,18 +16,26 @@ public class RenderMissileTaint extends Render { } @Override - public void doRender(Entity missile, double x, double y, double z, float f1, float f2) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)x, (float)y, (float)z); - GL11.glRotatef(missile.prevRotationYaw + (missile.rotationYaw - missile.prevRotationYaw) * f2 - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(missile.prevRotationPitch + (missile.rotationPitch - missile.prevRotationPitch) * f2, 0.0F, 0.0F, 1.0F); - GL11.glScalef(2F, 2F, 2F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, -1.0F, 0.0F); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(getEntityTexture(missile)); - ResourceManager.missileTaint.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); + if(entity instanceof EntityMissileBaseNT) switch(entity.getDataWatcher().getWatchableObjectByte(3)) { + 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; + } + + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(getEntityTexture(entity)); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileMicro.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } @@ -43,6 +49,8 @@ public class RenderMissileTaint extends Render { return ResourceManager.missileMicroSchrab_tex; if(p_110775_1_ instanceof EntityMissileEMP) return ResourceManager.missileMicroEMP_tex; + if(p_110775_1_ instanceof EntityMissileTest) + return ResourceManager.missileMicroTest_tex; return ResourceManager.missileMicro_tex; } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java deleted file mode 100644 index 644dc3c81..000000000 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.render.entity.rocket; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.missile.EntityMissileEndo; -import com.hbm.entity.missile.EntityMissileExo; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderMissileThermo extends Render { - - public RenderMissileThermo() { } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - - if(p_76986_1_ instanceof EntityMissileEndo) - bindTexture(ResourceManager.missileEndo_tex); - if(p_76986_1_ instanceof EntityMissileExo) - bindTexture(ResourceManager.missileExo_tex); - ResourceManager.missileThermo.renderAll(); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.missileEndo_tex; - } - -} diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 52222f734..5923c0337 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -93,22 +93,6 @@ public class ItemRenderLibrary { bindTexture(ResourceManager.epress_head_tex); ResourceManager.epress_head.renderAll(); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_crystallizer), new ItemRenderBase() { - public void renderNonInv() { - GL11.glScaled(0.5, 0.5, 0.5); - } - public void renderInventory() { - GL11.glTranslated(0, -4, 0); - GL11.glScaled(1.75, 1.75, 1.75); - } - public void renderCommon() { - GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.crystallizer_tex); ResourceManager.crystallizer.renderPart("Body"); - bindTexture(ResourceManager.crystallizer_window_tex); ResourceManager.crystallizer.renderPart("Windows"); - bindTexture(ResourceManager.crystallizer_spinner_tex); ResourceManager.crystallizer.renderPart("Spinner"); - GL11.glShadeModel(GL11.GL_FLAT); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_reactor_breeding), new ItemRenderBase() { public void renderInventory() { GL11.glTranslated(0, -4, 0); @@ -138,24 +122,6 @@ public class ItemRenderLibrary { GL11.glShadeModel(GL11.GL_FLAT); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_selenium), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, -4, 0); - GL11.glScaled(4, 4, 4); - } - public void renderCommon() { - GL11.glScaled(2, 2, 2); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.selenium_body_tex); ResourceManager.selenium_body.renderAll(); - GL11.glTranslated(0.0D, 1.0D, 0.0D); - bindTexture(ResourceManager.selenium_rotor_tex); ResourceManager.selenium_rotor.renderAll(); - bindTexture(ResourceManager.selenium_piston_tex); - for(int i = 0; i < 7; i++) { - ResourceManager.selenium_piston.renderAll(); GL11.glRotatef(360F/7F, 0, 0, 1); - } - GL11.glEnable(GL11.GL_CULL_FACE); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.reactor_research), new ItemRenderBase() { public void renderInventory() { GL11.glTranslated(0, -4, 0); @@ -291,7 +257,9 @@ public class ItemRenderLibrary { GL11.glDisable(GL11.GL_CULL_FACE); GL11.glScaled(0.5, 0.5, 0.5); GL11.glTranslatef(0, 0, 3); + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.pumpjack_tex); ResourceManager.pumpjack.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glEnable(GL11.GL_CULL_FACE); }}); @@ -322,19 +290,6 @@ public class ItemRenderLibrary { GL11.glShadeModel(GL11.GL_FLAT); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_drill), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, -2, 0); - GL11.glScaled(3, 3, 3); - } - public void renderCommon() { - GL11.glRotated(180, 0, 1, 0); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.drill_body_tex); ResourceManager.drill_body.renderAll(); - bindTexture(ResourceManager.drill_bolt_tex); ResourceManager.drill_bolt.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_mining_laser), new ItemRenderBase() { public void renderInventory() { GL11.glTranslated(0, -0.5, 0); @@ -351,7 +306,7 @@ public class ItemRenderLibrary { renderers.put(Item.getItemFromBlock(ModBlocks.machine_turbofan), new ItemRenderBase() { public void renderInventory() { GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(2, 2, 2); + GL11.glScaled(2.25, 2.25, 2.25); } public void renderCommon() { GL11.glShadeModel(GL11.GL_SMOOTH); @@ -408,30 +363,7 @@ public class ItemRenderLibrary { public void renderCommon() { GL11.glScaled(0.5, 0.5, 0.5); GL11.glTranslatef(0, 0, -3); - bindTexture(ResourceManager.duchessgambit_tex); ResourceManager.duchessgambit.renderAll(); - }}); - - renderers.put(Item.getItemFromBlock(ModBlocks.bomber), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, 1, 0); - GL11.glScaled(2.25, 2.25, 2.25); - } - public void renderCommon() { - GL11.glRotated(-90, 0, 1, 0); - GL11.glScaled(2, 2, 2); - GL11.glTranslatef(0, 0, -0.25F); - bindTexture(ResourceManager.dornier_0_tex); ResourceManager.dornier.renderAll(); - }}); - - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_gadget), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, -3, 0); - GL11.glScaled(5, 5, 5); - } - public void renderCommon() { - GL11.glTranslated(0.25, 0, 0); - bindTexture(ResourceManager.bomb_gadget_tex); - ResourceManager.bomb_gadget.renderAll(); + bindTexture(ResourceManager.duchessgambit_tex); ResourceManager.duchessgambit.renderAll(); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_boy), new ItemRenderBase() { @@ -444,16 +376,6 @@ public class ItemRenderLibrary { ResourceManager.bomb_boy.renderAll(); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_tsar), new ItemRenderBase() { - public void renderInventory() { - GL11.glScaled(2.25, 2.25, 2.25); - } - public void renderCommon() { - GL11.glTranslated(1.5, 0, 0); - bindTexture(ResourceManager.bomb_tsar_tex); - ResourceManager.bomb_tsar.renderAll(); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_prototype), new ItemRenderBase() { public void renderInventory() { GL11.glScaled(2.25, 2.25, 2.25); @@ -559,12 +481,12 @@ public class ItemRenderLibrary { GL11.glScaled(8, 8, 8); } public void renderCommon() { - GL11.glScaled(6, 6, 6); - GL11.glRotatef(22.5F, 0F, 1F, 0F); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.mine_ap_tex); - ResourceManager.mine_ap.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glScaled(1.25, 1.25, 1.25); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.mine_ap_grass_tex); ResourceManager.mine_ap.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); }}); renderers.put(Item.getItemFromBlock(ModBlocks.mine_he), new ItemRenderBase() { @@ -588,12 +510,15 @@ public class ItemRenderLibrary { renderers.put(Item.getItemFromBlock(ModBlocks.mine_shrap), new ItemRenderBase() { public void renderInventory() { - GL11.glScaled(6, 6, 6); + GL11.glScaled(8, 8, 8); } public void renderCommon() { - GL11.glScaled(4, 4, 4); - bindTexture(ResourceManager.mine_shrap_tex); - ResourceManager.mine_he.renderAll(); + GL11.glScaled(1.25, 1.25, 1.25); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.mine_shrap_tex); ResourceManager.mine_ap.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); }}); renderers.put(Item.getItemFromBlock(ModBlocks.mine_fat), new ItemRenderBase() { @@ -737,6 +662,132 @@ public class ItemRenderLibrary { bindTexture(ResourceManager.vault_cog_tex); ResourceManager.vault_cog.renderAll(); bindTexture(ResourceManager.vault_label_101_tex); ResourceManager.vault_label.renderAll(); }}); + renderers.put(Item.getItemFromBlock(ModBlocks.secure_access_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(2.4, 2.4, 2.4); + } + public void renderCommon() { + bindTexture(ResourceManager.secure_access_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.secure_access_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + + renderers.put(Item.getItemFromBlock(ModBlocks.large_vehicle_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(1.8, 1.8, 1.8); + } + public void renderCommon() { + bindTexture(ResourceManager.large_vehicle_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.large_vehicle_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.water_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(4, 4, 4); + } + public void renderCommon() { + bindTexture(ResourceManager.water_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.water_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.silo_hatch), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(2, 2, 2); + } + public void renderCommon() { + bindTexture(ResourceManager.silo_hatch_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glRotated(90, 0, 1, 0); + ResourceManager.silo_hatch.renderPart("Frame"); + GL11.glTranslated(0, 0.875, -1.875); + GL11.glRotated(-120, 1, 0, 0); + GL11.glTranslated(0, -0.875, 1.875); + GL11.glTranslated(0, 0.25, 0); + ResourceManager.silo_hatch.renderPart("Hatch"); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.silo_hatch_large), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(1.5, 1.5, 1.5); + } + public void renderCommon() { + bindTexture(ResourceManager.silo_hatch_large_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glTranslated(1, 0, 0); + GL11.glRotated(90, 0, 1, 0); + ResourceManager.silo_hatch_large.renderPart("Frame"); + GL11.glTranslated(0, 0.875, -2.875); + GL11.glRotated(-120, 1, 0, 0); + GL11.glTranslated(0, -0.875, 2.875); + GL11.glTranslated(0, 0.25, 0); + ResourceManager.silo_hatch_large.renderPart("Hatch"); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.qe_containment), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -3.5, 0); + GL11.glScaled(3.8, 3.8, 3.8); + } + public void renderCommon() { + bindTexture(ResourceManager.qe_containment_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.qe_containment.renderAllExcept("decal"); + bindTexture(ResourceManager.qe_containment_decal); + ResourceManager.qe_containment.renderPart("decal"); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.qe_sliding_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -3.5, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommon() { + bindTexture(ResourceManager.qe_sliding_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.qe_sliding_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + + renderers.put(Item.getItemFromBlock(ModBlocks.round_airlock_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + bindTexture(ResourceManager.round_airlock_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.round_airlock_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + + renderers.put(Item.getItemFromBlock(ModBlocks.sliding_seal_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(7, 7, 7); + } + public void renderCommon() { + bindTexture(ResourceManager.sliding_seal_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.sliding_seal_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); renderers.put(Item.getItemFromBlock(ModBlocks.blast_door), new ItemRenderBase() { public void renderInventory() { @@ -1094,7 +1145,9 @@ public class ItemRenderLibrary { public void renderCommon() { GL11.glScaled(0.25, 0.25, 0.25); GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.fracking_tower_tex); ResourceManager.fracking_tower.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_FLAT); }}); @@ -1191,17 +1244,6 @@ public class ItemRenderLibrary { GL11.glShadeModel(GL11.GL_FLAT); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_electrolyser), new ItemRenderBase( ) { - public void renderInventory() { - GL11.glScaled(3, 3, 3); - } - public void renderCommon() { - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.electrolyser_tex); ResourceManager.electrolyser.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.red_pylon_large), new ItemRenderBase( ) { public void renderInventory() { GL11.glTranslated(0, -5, 0); diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java new file mode 100644 index 000000000..9985a4c4c --- /dev/null +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -0,0 +1,172 @@ +package com.hbm.render.item; + +import java.util.HashMap; +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.IModelCustom; + +public class ItemRenderMissileGeneric implements IItemRenderer { + + public static HashMap> renderers = new HashMap(); + + protected RenderMissileType type; + + public static enum RenderMissileType { + TYPE_TIER0, + TYPE_TIER1, + TYPE_TIER2, + TYPE_TIER3, + TYPE_STEALTH, + TYPE_ABM, + TYPE_NUCLEAR, + TYPE_CARRIER, + TYPE_ROBIN + } + + public ItemRenderMissileGeneric(RenderMissileType type) { + this.type = type; + } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + Consumer renderer = renderers.get(new ComparableStack(item).makeSingular()); + if(renderer == null) return; + + GL11.glPushMatrix(); + + double guiScale = 1; + double guiOffset = 0; + + switch(this.type) { + case TYPE_TIER0: guiScale = 3.75D; guiOffset = 10.75D; break; + case TYPE_TIER1: guiScale = 2.5D; guiOffset = 8.5D; break; + case TYPE_TIER2: guiScale = 2D; guiOffset = 6.5D; break; + case TYPE_TIER3: guiScale = 1.25D; guiOffset = 1D; break; + case TYPE_STEALTH: guiScale = 1.75D; guiOffset = 4.75D; break; + case TYPE_ABM: guiScale = 2.25D; guiOffset = 7D; break; + case TYPE_NUCLEAR: guiScale = 1.375D; guiOffset = 1.5D; break; + case TYPE_CARRIER: guiScale = 0.625D; guiOffset = -17D; break; + case TYPE_ROBIN: guiScale = 1.25D; guiOffset = 2D; break; + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + + switch(type) { + case EQUIPPED: + double s = 0.15; + GL11.glTranslated(0.5, -0.25, 0); + GL11.glScaled(s, s, s); + break; + case EQUIPPED_FIRST_PERSON: + double heldScale = 0.1; + GL11.glTranslated(0.5, 0.25, 0); + GL11.glScaled(heldScale, heldScale, heldScale); + break; + case ENTITY: + double s2 = 0.15; + GL11.glScaled(s2, s2, s2); + break; + case INVENTORY: + RenderHelper.enableGUIStandardItemLighting(); + GL11.glScaled(guiScale, guiScale, guiScale); + GL11.glRotated(135, 0, 0, 1); + GL11.glRotatef(System.currentTimeMillis() / 15 % 360, 0, 1, 0); + GL11.glTranslated(0, -16 + guiOffset, 0); + break; + default: break; + } + + GL11.glDisable(GL11.GL_CULL_FACE); + renderer.accept(Minecraft.getMinecraft().renderEngine); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + public static Consumer generateStandard(ResourceLocation texture, IModelCustom model) { return generateWithScale(texture, model, 1F); } + public static Consumer generateLarge(ResourceLocation texture, IModelCustom model) { return generateWithScale(texture, model, 1.5F); } + public static Consumer generateDouble(ResourceLocation texture, IModelCustom model) { return generateWithScale(texture, model, 2F); } + + public static Consumer generateWithScale(ResourceLocation texture, IModelCustom model, float scale) { + return x -> { + GL11.glScalef(scale, scale, scale); + GL11.glShadeModel(GL11.GL_SMOOTH); + x.bindTexture(texture); model.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }; + } + + public static void init() { + + renderers.put(new ComparableStack(ModItems.missile_test), generateStandard(ResourceManager.missileMicroTest_tex, ResourceManager.missileMicro)); + renderers.put(new ComparableStack(ModItems.missile_taint), generateStandard(ResourceManager.missileTaint_tex, ResourceManager.missileMicro)); + renderers.put(new ComparableStack(ModItems.missile_micro), generateStandard(ResourceManager.missileMicro_tex, ResourceManager.missileMicro)); + renderers.put(new ComparableStack(ModItems.missile_bhole), generateStandard(ResourceManager.missileMicroBHole_tex, ResourceManager.missileMicro)); + renderers.put(new ComparableStack(ModItems.missile_schrabidium), generateStandard(ResourceManager.missileMicroSchrab_tex, ResourceManager.missileMicro)); + renderers.put(new ComparableStack(ModItems.missile_emp), generateStandard(ResourceManager.missileMicroEMP_tex, ResourceManager.missileMicro)); + + renderers.put(new ComparableStack(ModItems.missile_stealth), x -> { + GL11.glShadeModel(GL11.GL_SMOOTH); + x.bindTexture(ResourceManager.missileStealth_tex); ResourceManager.missileStealth.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }); + + renderers.put(new ComparableStack(ModItems.missile_generic), generateStandard(ResourceManager.missileV2_HE_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_incendiary), generateStandard(ResourceManager.missileV2_IN_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_cluster), generateStandard(ResourceManager.missileV2_CL_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_buster), generateStandard(ResourceManager.missileV2_BU_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_decoy), generateStandard(ResourceManager.missileV2_decoy_tex, ResourceManager.missileV2)); + renderers.put(new ComparableStack(ModItems.missile_anti_ballistic), generateStandard(ResourceManager.missileAA_tex, ResourceManager.missileABM)); + + renderers.put(new ComparableStack(ModItems.missile_strong), generateLarge(ResourceManager.missileStrong_HE_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_incendiary_strong), generateLarge(ResourceManager.missileStrong_IN_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_cluster_strong), generateLarge(ResourceManager.missileStrong_CL_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_buster_strong), generateLarge(ResourceManager.missileStrong_BU_tex, ResourceManager.missileStrong)); + renderers.put(new ComparableStack(ModItems.missile_emp_strong), generateLarge(ResourceManager.missileStrong_EMP_tex, ResourceManager.missileStrong)); + + renderers.put(new ComparableStack(ModItems.missile_burst), generateStandard(ResourceManager.missileHuge_HE_tex, ResourceManager.missileHuge)); + renderers.put(new ComparableStack(ModItems.missile_inferno), generateStandard(ResourceManager.missileHuge_IN_tex, ResourceManager.missileHuge)); + renderers.put(new ComparableStack(ModItems.missile_rain), generateStandard(ResourceManager.missileHuge_CL_tex, ResourceManager.missileHuge)); + renderers.put(new ComparableStack(ModItems.missile_drill), generateStandard(ResourceManager.missileHuge_BU_tex, ResourceManager.missileHuge)); + + renderers.put(new ComparableStack(ModItems.missile_nuclear), generateStandard(ResourceManager.missileNuclear_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateStandard(ResourceManager.missileMIRV_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_volcano), generateStandard(ResourceManager.missileVolcano_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_doomsday), generateStandard(ResourceManager.missileDoomsday_tex, ResourceManager.missileNuclear)); + renderers.put(new ComparableStack(ModItems.missile_doomsday_rusted), generateStandard(ResourceManager.missileDoomsdayRusted_tex, ResourceManager.missileNuclear)); + + renderers.put(new ComparableStack(ModItems.missile_shuttle), generateStandard(ResourceManager.missileShuttle_tex, ResourceManager.missileShuttle)); + } +} diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissilePart.java b/src/main/java/com/hbm/render/item/ItemRenderMissilePart.java index 3c3988c19..9f40cd590 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMissilePart.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMissilePart.java @@ -2,7 +2,7 @@ package com.hbm.render.item; import org.lwjgl.opengl.GL11; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import com.hbm.render.util.MissilePart; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/render/item/ItemRenderTransformer.java b/src/main/java/com/hbm/render/item/ItemRenderTransformer.java index d8370c5c3..c461f2803 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderTransformer.java +++ b/src/main/java/com/hbm/render/item/ItemRenderTransformer.java @@ -3,9 +3,11 @@ package com.hbm.render.item; import org.lwjgl.opengl.GL11; import com.hbm.render.util.RenderItemStack; +import com.hbm.render.util.RenderMiscEffects; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.entity.EntityLivingBase; @@ -99,9 +101,96 @@ public class ItemRenderTransformer implements IItemRenderer { TextureUtil.func_152777_a(false, false, 1.0F); Tessellator tessellator = Tessellator.instance; ItemRenderer.renderItemIn2D(tessellator, iicon.getMaxU(), iicon.getMinV(), iicon.getMinU(), iicon.getMaxV(), iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); + if(item.hasEffect()) renderGlint3D(tessellator, 0.0625F); } else { RenderItemStack.renderItemStackNoEffect(0, 0, 0, item); + if(item.hasEffect()) renderGlintFlat(); } } + + public void renderGlintFlat() { + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(RenderMiscEffects.glint); + + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDepthMask(false); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + + for(int j1 = 0; j1 < 2; ++j1) { + OpenGlHelper.glBlendFunc(772, 1, 0, 0); + float scaleU = 0.00390625F; + float scaleV = 0.00390625F; + float anim = (float) (Minecraft.getSystemTime() % (long) (3000 + j1 * 1873)) / (3000.0F + (float) (j1 * 1873)) * 256.0F; + float offsetV = 0.0F; + Tessellator tessellator = Tessellator.instance; + float sizeMultU = 4.0F; + + if(j1 == 1) { + sizeMultU = -1.0F; + } + + float in = 0.76F; + GL11.glColor4f(0.5F * in, 0.25F * in, 0.8F * in, 1.0F); + + int x = 0; + int sizeX = 16; + int y = 0; + int sizeY = 16; + int zLevel = 0; + + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(x + 0, y + sizeY, zLevel, (anim + sizeY * sizeMultU) * scaleU, (offsetV + sizeY) * scaleV); + tessellator.addVertexWithUV(x + sizeX, y + sizeY, zLevel, (anim + sizeX + sizeY * sizeMultU) * scaleU, (offsetV + sizeY) * scaleV); + tessellator.addVertexWithUV(x + sizeX, y + 0, zLevel, (anim + sizeX) * scaleU, (offsetV + 0.0F) * scaleV); + tessellator.addVertexWithUV(x + 0, y + 0, zLevel, (anim + 0.0F) * scaleU, (offsetV + 0.0F) * scaleV); + tessellator.draw(); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDepthMask(true); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthFunc(GL11.GL_LEQUAL); + } + + public void renderGlint3D(Tessellator tessellator, float depth) { + + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(RenderMiscEffects.glint); + + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + + float in = 0.76F; + GL11.glColor4f(0.5F * in, 0.25F * in, 0.8F * in, 1.0F); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + + GL11.glPushMatrix(); + float scale = 0.125F; + GL11.glScalef(scale, scale, scale); + float offset = (float) (Minecraft.getSystemTime() % 3000L) / 3000.0F * 8.0F; + GL11.glTranslatef(offset, 0.0F, 0.0F); + GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, depth); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glScalef(scale, scale, scale); + offset = (float) (Minecraft.getSystemTime() % 4873L) / 4873.0F * 8.0F; + GL11.glTranslatef(-offset, 0.0F, 0.0F); + GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, depth); + GL11.glPopMatrix(); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthFunc(GL11.GL_LEQUAL); + } } diff --git a/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java b/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java index fa0dc5387..27834f8e0 100644 --- a/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java +++ b/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java @@ -6,10 +6,14 @@ import com.hbm.render.util.RenderItemStack; import com.hbm.render.util.RenderMiscEffects; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureUtil; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; import net.minecraftforge.client.IItemRenderer; public class ItemRendererMeteorSword implements IItemRenderer { @@ -17,16 +21,16 @@ public class ItemRendererMeteorSword implements IItemRenderer { float r; float g; float b; - + public ItemRendererMeteorSword(float r, float g, float b) { this.r = r; this.g = g; this.b = b; } - + @Override public boolean handleRenderType(ItemStack stack, ItemRenderType type) { - return type == ItemRenderType.INVENTORY; + return type != ItemRenderType.ENTITY; } @Override @@ -39,56 +43,138 @@ public class ItemRendererMeteorSword implements IItemRenderer { GL11.glPushMatrix(); RenderHelper.enableGUIStandardItemLighting(); - Minecraft mc = Minecraft.getMinecraft(); - RenderItemStack.renderItem.renderItemIntoGUI(mc.fontRenderer, mc.renderEngine, item, 0, 0); + switch(type) { - mc.renderEngine.bindTexture(RenderMiscEffects.glint); + case EQUIPPED_FIRST_PERSON: + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(-90, 0, 0, 1); + GL11.glTranslated(0.5, 0.5, 0); + GL11.glTranslated(-0.5, -0.5, 0); + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(-90, 0, 0, 1); + GL11.glTranslated(0.5, 0.5, 0); + GL11.glScaled(1.36 * 2, 1.36 * 2, 0.68 * 2); + GL11.glTranslated(-0.5, -0.5, 0.25); + break; + case EQUIPPED: + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(-90, 0, 0, 1); + GL11.glTranslated(0.2, 0.55, 0); + GL11.glRotated(45, 0, 0, 1); + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(-45, 0, 0, 1); + GL11.glScaled(1.7, 1.7, 0.85); + break; + case INVENTORY: + break; + + default: break; + } - GL11.glDepthFunc(GL11.GL_EQUAL); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDepthMask(false); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_BLEND); - - for (int j1 = 0; j1 < 2; ++j1) { - OpenGlHelper.glBlendFunc(772, 1, 0, 0); - float f = 0.00390625F; - float f1 = 0.00390625F; - float f2 = (float)(Minecraft.getSystemTime() % (long)(3000 + j1 * 1873)) / (3000.0F + (float)(j1 * 1873)) * 256.0F; - float f3 = 0.0F; - Tessellator tessellator = Tessellator.instance; - float f4 = 4.0F; + if(data.length > 1 && data[1] instanceof EntityLivingBase) { + EntityLivingBase entity = (EntityLivingBase) data[1]; + IIcon iicon = entity.getItemIcon(item, 0); - if (j1 == 1) - { - f4 = -1.0F; - } - - float in = 0.36F; - - GL11.glColor4f(r * in, g * in, b * in, 1.0F); - - int p_77018_2_ = 0; - int p_77018_4_ = 16; - int p_77018_3_ = 0; - int p_77018_5_ = 16; - int zLevel = 0; + if(iicon == null) { + return; + } - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV((double)(p_77018_2_ + 0), (double)(p_77018_3_ + p_77018_5_), (double)zLevel, (double)((f2 + (float)p_77018_5_ * f4) * f), (double)((f3 + (float)p_77018_5_) * f1)); - tessellator.addVertexWithUV((double)(p_77018_2_ + p_77018_4_), (double)(p_77018_3_ + p_77018_5_), (double)zLevel, (double)((f2 + (float)p_77018_4_ + (float)p_77018_5_ * f4) * f), (double)((f3 + (float)p_77018_5_) * f1)); - tessellator.addVertexWithUV((double)(p_77018_2_ + p_77018_4_), (double)(p_77018_3_ + 0), (double)zLevel, (double)((f2 + (float)p_77018_4_) * f), (double)((f3 + 0.0F) * f1)); - tessellator.addVertexWithUV((double)(p_77018_2_ + 0), (double)(p_77018_3_ + 0), (double)zLevel, (double)((f2 + 0.0F) * f), (double)((f3 + 0.0F) * f1)); - tessellator.draw(); - } + Minecraft.getMinecraft().getTextureManager().bindTexture(Minecraft.getMinecraft().getTextureManager().getResourceLocation(item.getItemSpriteNumber())); + TextureUtil.func_152777_a(false, false, 1.0F); + Tessellator tessellator = Tessellator.instance; + ItemRenderer.renderItemIn2D(tessellator, iicon.getMaxU(), iicon.getMinV(), iicon.getMinU(), iicon.getMaxV(), iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); + renderGlint3D(tessellator, 0.0625F); + } else { + RenderItemStack.renderItemStackNoEffect(0, 0, 0, item); + renderGlintFlat(); + } - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); } + + public void renderGlintFlat() { + + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(RenderMiscEffects.glint); + + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDepthMask(false); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + + for(int j1 = 0; j1 < 2; ++j1) { + OpenGlHelper.glBlendFunc(772, 1, 0, 0); + float scaleU = 0.00390625F; + float scaleV = 0.00390625F; + float anim = (float) (Minecraft.getSystemTime() % (long) (3000 + j1 * 1873)) / (3000.0F + (float) (j1 * 1873)) * 256.0F; + float offsetV = 0.0F; + Tessellator tessellator = Tessellator.instance; + float sizeMultU = 4.0F; + + if(j1 == 1) { + sizeMultU = -1.0F; + } + + float in = 0.36F; + GL11.glColor4f(r * in, g * in, b * in, 1.0F); + + int x = 0; + int sizeX = 16; + int y = 0; + int sizeY = 16; + int zLevel = 0; + + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(x + 0, y + sizeY, zLevel, (anim + sizeY * sizeMultU) * scaleU, (offsetV + sizeY) * scaleV); + tessellator.addVertexWithUV(x + sizeX, y + sizeY, zLevel, (anim + sizeX + sizeY * sizeMultU) * scaleU, (offsetV + sizeY) * scaleV); + tessellator.addVertexWithUV(x + sizeX, y + 0, zLevel, (anim + sizeX) * scaleU, (offsetV + 0.0F) * scaleV); + tessellator.addVertexWithUV(x + 0, y + 0, zLevel, (anim + 0.0F) * scaleU, (offsetV + 0.0F) * scaleV); + tessellator.draw(); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDepthMask(true); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthFunc(GL11.GL_LEQUAL); + } + + public void renderGlint3D(Tessellator tessellator, float depth) { + + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(RenderMiscEffects.glint); + + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + + float in = 0.36F; + GL11.glColor4f(r * in, g * in, b * in, 1.0F); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + + GL11.glPushMatrix(); + float scale = 0.125F; + GL11.glScalef(scale, scale, scale); + float offset = (float) (Minecraft.getSystemTime() % 3000L) / 3000.0F * 8.0F; + GL11.glTranslatef(offset, 0.0F, 0.0F); + GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, depth); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glScalef(scale, scale, scale); + offset = (float) (Minecraft.getSystemTime() % 4873L) / 4873.0F * 8.0F; + GL11.glTranslatef(-offset, 0.0F, 0.0F); + GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, depth); + GL11.glPopMatrix(); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthFunc(GL11.GL_LEQUAL); + } } diff --git a/src/main/java/com/hbm/render/item/block/ItemRenderDecoBlock.java b/src/main/java/com/hbm/render/item/block/ItemRenderDecoBlock.java index 1e48e83ae..b8d09b204 100644 --- a/src/main/java/com/hbm/render/item/block/ItemRenderDecoBlock.java +++ b/src/main/java/com/hbm/render/item/block/ItemRenderDecoBlock.java @@ -4,11 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelSteelBeam; -import com.hbm.render.model.ModelSteelCorner; import com.hbm.render.model.ModelSteelRoof; -import com.hbm.render.model.ModelSteelScaffold; -import com.hbm.render.model.ModelSteelWall; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; @@ -19,18 +15,10 @@ import net.minecraftforge.client.IItemRenderer; public class ItemRenderDecoBlock implements IItemRenderer { - protected ModelSteelWall wall; - protected ModelSteelCorner corner; protected ModelSteelRoof roof; - protected ModelSteelBeam beam; - protected ModelSteelScaffold scaffold; public ItemRenderDecoBlock() { - wall = new ModelSteelWall(); - corner = new ModelSteelCorner(); roof = new ModelSteelRoof(); - beam = new ModelSteelBeam(); - scaffold = new ModelSteelScaffold(); } @Override @@ -51,16 +39,8 @@ public class ItemRenderDecoBlock implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_wall)) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/SteelWall.png")); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_corner)) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/SteelCorner.png")); if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_roof)) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/SteelRoof.png")); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_beam)) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/SteelBeam.png")); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_scaffold)) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/SteelScaffold.png")); switch(type) { case ENTITY: @@ -68,32 +48,16 @@ public class ItemRenderDecoBlock implements IItemRenderer { GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); GL11.glTranslatef(0.0F, -1.0F, 0.0F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_wall)) - wall.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_corner)) - corner.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_roof)) roof.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_beam)) - beam.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_scaffold)) - scaffold.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); break; case EQUIPPED: GL11.glPushMatrix(); GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glTranslatef(0.8F, -0.3F, 0.2F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_wall)) - wall.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_corner)) - corner.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_roof)) roof.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_beam)) - beam.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_scaffold)) - scaffold.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); break; case EQUIPPED_FIRST_PERSON: @@ -101,16 +65,8 @@ public class ItemRenderDecoBlock implements IItemRenderer { GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(-0.6F, -0.6F, -0.1F); GL11.glScalef(0.5F, 0.5F, 0.5F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_wall)) - wall.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_corner)) - corner.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_roof)) roof.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_beam)) - beam.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == Item.getItemFromBlock(ModBlocks.steel_scaffold)) - scaffold.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); break; default: break; diff --git a/src/main/java/com/hbm/render/item/block/ItemRenderSteelPoles.java b/src/main/java/com/hbm/render/item/block/ItemRenderSteelPoles.java deleted file mode 100644 index 5af78716a..000000000 --- a/src/main/java/com/hbm/render/item/block/ItemRenderSteelPoles.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.render.item.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelPoles; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderSteelPoles implements IItemRenderer { - - protected ModelPoles swordModel; - - public ItemRenderSteelPoles() { - swordModel = new ModelPoles(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/Poles.png")); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -1.0F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/Poles.png")); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(0.8F, -0.3F, 0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/Poles.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.6F, -0.6F, -0.1F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/block/ItemRenderTapeRecorder.java b/src/main/java/com/hbm/render/item/block/ItemRenderTapeRecorder.java deleted file mode 100644 index fc49686f3..000000000 --- a/src/main/java/com/hbm/render/item/block/ItemRenderTapeRecorder.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hbm.render.item.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelTapeRecorder; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderTapeRecorder implements IItemRenderer { - - protected ModelTapeRecorder swordModel; - - public ItemRenderTapeRecorder() { - swordModel = new ModelTapeRecorder(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTapeRecorder.png")); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -1.0F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTapeRecorder.png")); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(0.8F, 1.7F, 0.2F); - GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(90.0F, 0.0F, -1.0F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTapeRecorder.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.6F, -0.6F, -0.1F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java deleted file mode 100644 index 5893a0c46..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBFLauncher.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelBFLauncher; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderBFLauncher implements IItemRenderer { - - protected ModelBFLauncher swordModel; - - public ItemRenderBFLauncher() { - swordModel = new ModelBFLauncher(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BFLauncher.png")); - GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.8F, -0.1F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BFLauncher.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBaleflare.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBaleflare.java deleted file mode 100644 index 96671ff58..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBaleflare.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelBaleflare; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderBaleflare implements IItemRenderer { - - protected ModelBaleflare swordModel; - - public ItemRenderBaleflare() { - swordModel = new ModelBaleflare(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BaleFlare.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BaleFlare.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java deleted file mode 100644 index ec65b0ef2..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBio; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderBioRevolver implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glDisable(GL11.GL_CULL_FACE); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bio_revolver_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.1D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.0, 0.25, -0.25); - GL11.glRotated(80, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - double width = 0.5D; - - GL11.glPushMatrix(); - GL11.glTranslated(0.0, 1.75, 10.0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(0, -recoil[2] * 1.5, recoil[2]); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - if(ItemGunBio.smokeNodes.size() > 1) { - - Tessellator tess = Tessellator.instance; - tess.startDrawingQuads(); - tess.setNormal(0F, 1F, 0F); - - for(int i = 0; i < ItemGunBio.smokeNodes.size() - 1; i++) { - double[] node = ItemGunBio.smokeNodes.get(i); - double[] past = ItemGunBio.smokeNodes.get(i + 1); - - tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); - tess.addVertex(node[0], node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(node[0] + width, node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(past[0] + width, past[1], past[2]); - tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); - tess.addVertex(past[0], past[1], past[2]); - - tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); - tess.addVertex(node[0], node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(node[0] - width, node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(past[0] - width, past[1], past[2]); - tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); - tess.addVertex(past[0], past[1], past[2]); - } - GL11.glAlphaFunc(GL11.GL_GREATER, 0F); - GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_TEXTURE_2D); - tess.draw(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_BLEND); - GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); - } - - GL11.glPopMatrix(); - GL11.glTranslated(recoil[0], recoil[1], recoil[2]); - GL11.glRotated(recoil[2] * 10, 1, 0, 0); - - double[] reloadMove = HbmAnimations.getRelevantTransformation("RELOAD_MOVE"); - GL11.glTranslated(reloadMove[0], reloadMove[1], reloadMove[2]); - - double[] reloadRot = HbmAnimations.getRelevantTransformation("RELOAD_ROT"); - GL11.glRotated(reloadRot[0], 1, 0, 0); - GL11.glRotated(reloadRot[2], 0, 0, 1); - GL11.glRotated(reloadRot[1], 0, 1, 0); - ResourceManager.bio_revolver.renderPart("Grip"); - - GL11.glPushMatrix(); /// FRONT PUSH /// - GL11.glRotated(HbmAnimations.getRelevantTransformation("FRONT")[2], 1, 0, 0); - ResourceManager.bio_revolver.renderPart("Barrel"); - GL11.glPushMatrix(); /// LATCH PUSH /// - GL11.glTranslated(0, 2.3125, -0.875); - GL11.glRotated(HbmAnimations.getRelevantTransformation("LATCH")[2], 1, 0, 0); - GL11.glTranslated(0, -2.3125, 0.875); - ResourceManager.bio_revolver.renderPart("Latch"); - GL11.glPopMatrix(); /// LATCH POP /// - - GL11.glPushMatrix(); /// DRUM PUSH /// - GL11.glTranslated(0, 1, 0); - GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * 60, 0, 0, 1); - GL11.glTranslated(0, -1, 0); - GL11.glTranslated(0, 0, HbmAnimations.getRelevantTransformation("DRUM_PUSH")[2]); - ResourceManager.bio_revolver.renderPart("Drum"); - GL11.glPopMatrix(); /// DRUM POP /// - - GL11.glPopMatrix(); /// FRONT POP /// - - GL11.glPushMatrix(); /// HAMMER /// - GL11.glTranslated(0, 0, -4.5); - GL11.glRotated(-45 + 45 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 1, 0, 0); - GL11.glTranslated(0, 0, 4.5); - ResourceManager.bio_revolver.renderPart("Hammer"); - GL11.glPopMatrix(); - - GL11.glShadeModel(GL11.GL_FLAT); - - break; - - case EQUIPPED: - - double scale = 0.1D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(4F, 1F, 4F); - - break; - - case ENTITY: - - double s1 = 0.075D; - GL11.glScaled(s1, s1, s1); - GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0F, 1F, 0F); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 0.8D; - GL11.glTranslated(8, 7, 0); - GL11.glRotated(-90, 0, 1, 0); - GL11.glRotated(-135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.bio_revolver.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java deleted file mode 100644 index d66b937f2..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBullshit.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelBaleflare; -import com.hbm.render.model.ModelMP40; -import com.hbm.render.model.ModelPip; -import com.hbm.render.model.ModelSpark; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderBullshit implements IItemRenderer { - - protected ModelSpark sparkPlug; - protected ModelPip pip; - protected ModelMP40 mp40; - protected ModelBaleflare bomb; - - public ItemRenderBullshit() { - sparkPlug = new ModelSpark(); - pip = new ModelPip(); - mp40 = new ModelMP40(); - bomb = new ModelBaleflare(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - - renderWhatever(type, item, data); - - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - //GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-1.4F, 0.0F, 0.0F); - - renderWhatever(type, item, data); - - GL11.glPopMatrix(); - default: break; - } - } - - private void renderWhatever(ItemRenderType type, ItemStack item, Object... data) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP40.png")); - GL11.glScalef(0.75F, 0.75F, 0.75F); - mp40.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); - GL11.glScalef(4/3F, 4/3F, 4/3F); - GL11.glTranslatef(-0.5F, 0.0F, 0.0F); - sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); - GL11.glTranslatef(0.0F, 0.2F, 0.0F); - GL11.glTranslatef(0.5F, 0.0F, 0.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/BaleFlare.png")); - GL11.glScalef(4/3F, 4/3F, 4/3F); - GL11.glTranslatef(-1.5F, 0.0F, 0.0F); - bomb.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java deleted file mode 100644 index ce1505174..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderCryolator.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelCryolator; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderCryolator implements IItemRenderer { - - protected ModelCryolator swordModel; - - public ItemRenderCryolator() { - swordModel = new ModelCryolator(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCryolator.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelCryolator.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.25F, 1.25F, 1.25F); - GL11.glTranslatef(-0.8F, 0.0F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java deleted file mode 100644 index cf4889d23..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderEMPRay.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelEMPRay; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderEMPRay implements IItemRenderer { - - protected ModelEMPRay swordModel; - - public ItemRenderEMPRay() { - swordModel = new ModelEMPRay(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - float f = 0; - - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEMPRay.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-0.8F, -0.2F, 0.0F); - GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEMPRay.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-1.8F, -0.2F, 0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java deleted file mode 100644 index e669de40f..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderFatMan.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelFatman; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderFatMan implements IItemRenderer { - - protected ModelFatman swordModel; - - public ItemRenderFatMan() { - swordModel = new ModelFatman(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/FatmanLauncher.png")); - GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.8F, -0.1F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/FatmanLauncher.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java index 492a2be44..055b53708 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java @@ -4,11 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92; -import com.hbm.items.weapon.GunLeverActionS; import com.hbm.lib.RefStrings; import com.hbm.render.model.ModelB92; -import com.hbm.render.model.ModelB93; -import com.hbm.render.model.ModelLeverAction; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; @@ -17,14 +14,10 @@ import net.minecraftforge.client.IItemRenderer; public class ItemRenderGunAnim implements IItemRenderer { - protected ModelLeverAction flippedGun; protected ModelB92 b92; - protected ModelB93 b93; public ItemRenderGunAnim() { - flippedGun = new ModelLeverAction(); b92 = new ModelB92(); - b93 = new ModelB93(); } @Override @@ -52,30 +45,14 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_lever_action_sonata) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverAction.png")); if(item.getItem() == ModItems.gun_b92) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB92SM.png")); - if(item.getItem() == ModItems.gun_b93) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB93.png")); GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(-0.5F, 0.0F, -0.2F); GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - - if(item.getItem() == ModItems.gun_lever_action_sonata) { - GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(2.3F, 0.2F, 0.8F); - } - - if((item.getItem() == ModItems.gun_lever_action_sonata) && GunLeverActionS.getRotationFromAnim(item) > 0) { - GL11.glRotatef(GunLeverActionS.getRotationFromAnim(item) * -25, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(GunLeverActionS.getOffsetFromAnim(item) * 1.5F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, GunLeverActionS.getOffsetFromAnim(item) * -1.5F, 0.0F); - } if(item.getItem() == ModItems.gun_b92 && GunB92.getRotationFromAnim(item) > 0) { float off = GunB92.getRotationFromAnim(item) * 2; @@ -83,18 +60,8 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glTranslatef(off * -0.5F, off * -0.5F, 0.0F); } - if(item.getItem() == ModItems.gun_b93 && GunB92.getRotationFromAnim(item) > 0) { - float off = GunB92.getRotationFromAnim(item) * 2; - GL11.glRotatef(GunB92.getRotationFromAnim(item) * -90, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(off * -0.5F, off * -0.5F, 0.0F); - } - - if(item.getItem() == ModItems.gun_lever_action_sonata) - flippedGun.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunLeverActionS.getRotationFromAnim(item)); if(item.getItem() == ModItems.gun_b92) b92.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); - if(item.getItem() == ModItems.gun_b93) - b93.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); GL11.glPopMatrix(); break; @@ -102,20 +69,8 @@ public class ItemRenderGunAnim implements IItemRenderer { case ENTITY: GL11.glPushMatrix(); GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_sonata) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverAction.png")); - if(item.getItem() == ModItems.gun_bolt_action) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionDark.png")); - if(item.getItem() == ModItems.gun_lever_action_dark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverActionDark.png")); - if(item.getItem() == ModItems.gun_bolt_action_green) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionGreen.png")); - if(item.getItem() == ModItems.gun_bolt_action_saturnite) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionSaturnite.png")); if(item.getItem() == ModItems.gun_b92) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB92SM.png")); - if(item.getItem() == ModItems.gun_b93) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB93.png")); GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); @@ -125,18 +80,8 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glTranslatef(-0.3F, -0.4F, 0.15F); - if(item.getItem() == ModItems.gun_lever_action_sonata) { - GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(2.3F, 0.2F, 0.8F); - } - - if(item.getItem() == ModItems.gun_lever_action_sonata) - flippedGun.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunLeverActionS.getRotationFromAnim(item)); if(item.getItem() == ModItems.gun_b92) b92.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); - if(item.getItem() == ModItems.gun_b93) - b93.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); GL11.glPopMatrix(); default: break; } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java deleted file mode 100644 index f5d298186..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderImmolator.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelImmolator; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderImmolator implements IItemRenderer { - - protected ModelImmolator swordModel; - - public ItemRenderImmolator() { - swordModel = new ModelImmolator(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelImmolator.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelImmolator.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.25F, 1.25F, 1.25F); - GL11.glTranslatef(-0.8F, 0.0F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderLunaticSniper.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderLunaticSniper.java deleted file mode 100644 index a5de274b8..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderLunaticSniper.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderLunaticSniper implements IItemRenderer { - - public ItemRenderLunaticSniper() { - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: - return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION); - } - - static final String slide = "Slide_Cube.020_Cube.007"; - static final String everythingElse = "Full_Cylinder.007"; - static final String spentShell = "Spent_Casing_Casing"; - static final String fullRound = "Full_Round_Bullet"; - - static final float scale1 = 0.2F; - static final float scale2 = 0.1F; - static final float scale3 = 0.15F; - static final float scale4 = 0.7F; - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); -// double[] eject = HbmAnimations.getRelevantTransformation("EJECT"); - double[] tilt = HbmAnimations.getRelevantTransformation("TILT"); -// double[] insert = HbmAnimations.getRelevantTransformation("INSERT_ROUND"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lunatic_sniper_tex); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - switch (type) { - case EQUIPPED_FIRST_PERSON:// In hand from POV - - if(Minecraft.getMinecraft().thePlayer.isSneaking()) { - GL11.glPopMatrix(); - return; - } - - GL11.glRotatef(-10F, 0F, 1F, 0F); - GL11.glRotatef(-10F, 0F, 0F, 1F); - GL11.glRotatef(90F, 1F, 0F, 0F); - GL11.glRotatef(-58.5F, 0F, 1F, 0F); - GL11.glRotatef(90F, 0F, 0F, 1F); - GL11.glTranslatef(-0.5F, 0F, 0F); - GL11.glScalef(scale1, scale1, scale1); - - /// Begin animations /// - - // Move on recoil - GL11.glTranslated(0, 0, recoil[1] * 10); - GL11.glRotated(recoil[0] * 10, 0, 0, 1); - // Move on reload - GL11.glPushMatrix(); - GL11.glRotated(tilt[0] * 2, 0, 0, 1); - GL11.glRotated(-tilt[1] * 2, 0, 1, 0); - GL11.glTranslated(0, 0, -tilt[1] / 8); - ResourceManager.lunatic_sniper.renderPart(everythingElse); - GL11.glPopMatrix(); - // Release slide - GL11.glPushMatrix(); - GL11.glRotated(tilt[0] * 2, 0, 0, 1); - GL11.glRotated(-tilt[1] * 2, 0, 1, 0); - GL11.glTranslated(0, 0, -tilt[2] * 15); - ResourceManager.lunatic_sniper.renderPart(slide); - GL11.glPopMatrix(); - // Drop in new round - GL11.glPushMatrix(); - GL11.glRotated(tilt[0], 0, 0, 1); - GL11.glTranslated(0, tilt[1], tilt[2]); - ResourceManager.lunatic_sniper.renderPart(fullRound); - GL11.glPopMatrix(); - // Eject casing - GL11.glPushMatrix(); - GL11.glTranslated(0, 2, 0);//FIXME Where on earth is it?! -// ResourceManager.lunatic_sniper.renderPart(spentShell); - GL11.glPopMatrix(); - break; - case EQUIPPED:// In hand from other's POV - GL11.glRotatef(-5F, 0F, 1F, 0F); - GL11.glRotatef(-5F, 0F, 0F, 1F); - GL11.glRotatef(90F, 1F, 0F, 0F); - GL11.glRotatef(-50F, 0F, 1F, 0F); - GL11.glRotatef(90F, 0F, 0F, 1F); - GL11.glTranslatef(-0.05F, -0.2F, -0.75F); - GL11.glScalef(scale2 - scale2 * 2, scale2, scale2); - GL11.glPushMatrix(); -// GL11.glTranslated(eject[0] / 2, 0, -5); -// ResourceManager.lunatic_sniper.renderPart(spentShell); - GL11.glPopMatrix(); - break; - case ENTITY:// Dropped item - GL11.glScalef(scale3, scale3, scale3); - break; - case INVENTORY: - GL11.glTranslatef(10F, 11.5F, 0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-135F, 1.0F, 0.0F, 0.0F); - GL11.glScalef(-scale4, scale4, scale4); - break; - default: - break; - } - - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - ResourceManager.lunatic_sniper.renderAllExcept(fullRound, spentShell); - } - - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java deleted file mode 100644 index 519caa36d..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; -import com.hbm.render.item.ItemRenderBase; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; - -public class ItemRenderM2 extends ItemRenderBase { - - public ItemRenderM2() { } - - static final float scale1 = 0.35F, scale2 = 2.25F, scale3 = 0.25F, scale4 = 0.5F; - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) - { - switch (type) { - case ENTITY: - GL11.glTranslated(0, -0.25, 0); - GL11.glRotatef(90, 0, 1, 0); - GL11.glScalef(scale4, scale4, scale4); - break; - case EQUIPPED: - GL11.glScalef(scale1, scale1, -scale1); - GL11.glRotatef(-90, 0, 1, 0); - GL11.glTranslatef(-0.4f, 0.5f, -5); - GL11.glRotatef(30, 1, 0, 0); - break; - case EQUIPPED_FIRST_PERSON: - GL11.glRotatef(-90, 0, 1, 0); - - if (Minecraft.getMinecraft().thePlayer.isSneaking()) { - GL11.glTranslatef(-0.96f, -0.9f, -2); - GL11.glRotatef(-5.6f, 0, 1, 1); - - /* vvv remove to restore original look vvv */ - GL11.glRotatef(1.9F, 0, 0, 1); - GL11.glTranslatef(0.06F, 0, 0); - GL11.glRotatef(-0.2F, 0, 1, 0); - GL11.glRotatef(1F, 1, 0, 0); - GL11.glTranslatef(0, 1.15F, -1.75F); - - } else { - GL11.glTranslatef(0, -1, -3); - } - GL11.glRotatef(25, 1, 0, 0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(0, 0, recoil[0] * 0.35); - - break; - case INVENTORY: - GL11.glScalef(scale2, scale2, scale2); - GL11.glTranslated(2.75, 5, 0); - GL11.glRotatef(90, 0, 1, 0); - GL11.glRotatef(-45, 1, 0, 0); - GL11.glRotatef(180, 0, 0, 1); - break; - default: break; - } - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.m2_tex); - ResourceManager.m2.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRV.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRV.java deleted file mode 100644 index db3d40b87..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRV.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMIRV; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMIRV implements IItemRenderer { - - protected ModelMIRV swordModel; - - public ItemRenderMIRV() { - swordModel = new ModelMIRV(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/Mirv.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/Mirv.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java deleted file mode 100644 index f7d174b2b..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMIRVLauncher.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMIRVLauncher; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMIRVLauncher implements IItemRenderer { - - protected ModelMIRVLauncher swordModel; - - public ItemRenderMIRVLauncher() { - swordModel = new ModelMIRVLauncher(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MIRVLauncher.png")); - GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.8F, -0.1F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MIRVLauncher.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java deleted file mode 100644 index 8c957bd95..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMP; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMP implements IItemRenderer { - - protected ModelMP swordModel; - - public ItemRenderMP() { - swordModel = new ModelMP(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP.png")); - - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glTranslatef(1.0F, 0.75F, 0.0F); - GL11.glRotatef(150F, 0.0F, 0.0F, -1.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - break; - - case EQUIPPED: - GL11.glTranslatef(0.35F, 0.5F, 0.0F); - GL11.glRotatef(100F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(170F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(15F, 0.0F, 0.0F, -1.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - break; - - case ENTITY: - GL11.glTranslatef(0.0F, 1.0F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - break; - - default: break; - } - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java deleted file mode 100644 index 27f454765..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMP40.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMP40; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMP40 implements IItemRenderer { - - protected ModelMP40 swordModel; - - public ItemRenderMP40() { - swordModel = new ModelMP40(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP40.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.8F, -0.2F, 0.0F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP40.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-1.8F, -0.2F, 0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderMiniNuke.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderMiniNuke.java deleted file mode 100644 index 6a5d094dd..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderMiniNuke.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelMiniNuke; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderMiniNuke implements IItemRenderer { - - protected ModelMiniNuke swordModel; - - public ItemRenderMiniNuke() { - swordModel = new ModelMiniNuke(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MiniNuke.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MiniNuke.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderNukeGadget.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderNukeGadget.java deleted file mode 100644 index 2b188c95c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderNukeGadget.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class ItemRenderNukeGadget implements IItemRenderer { - - private IModelCustom gadgetModel; - private ResourceLocation gadgetTexture; - float f = -1; - - public ItemRenderNukeGadget() { - gadgetModel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/TheGadget3.obj")); - gadgetTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(gadgetTexture); - //GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(15.0F, 0.0F, 0.0F, -1.0F); - GL11.glTranslatef(0.8F, 0.2F, 0.5F); - GL11.glScalef(0.25F, 0.25F, 0.25F); - gadgetModel.renderAll(); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java deleted file mode 100644 index 9dd1937ae..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderOSIPR.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelOSIPR; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderOSIPR implements IItemRenderer { - - protected ModelOSIPR swordModel; - - public ItemRenderOSIPR() { - swordModel = new ModelOSIPR(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelOSIPR.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-0.4F, -0.2F, -0.1F); - GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelOSIPR.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - //GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glTranslatef(-0.4F, -0.1F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java deleted file mode 100644 index 153b07ee5..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java +++ /dev/null @@ -1,381 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.items.weapon.GunFolly; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelDash; -import com.hbm.render.model.ModelDefabricator; -import com.hbm.render.model.ModelEuthanasia; -import com.hbm.render.model.ModelFolly; -import com.hbm.render.model.ModelHP; -import com.hbm.render.model.ModelJack; -import com.hbm.render.model.ModelLacunae; -import com.hbm.render.model.ModelPip; -import com.hbm.render.model.ModelSpark; -import com.hbm.render.model.ModelTwiGun; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderOverkill implements IItemRenderer { - - protected ModelJack powerJack; - protected ModelSpark sparkPlug; - protected ModelHP hppLaserjet; - protected ModelEuthanasia euthanasia; - protected ModelDefabricator defab; - protected ModelDash dasher; - protected ModelTwiGun rgottp; - protected ModelPip pip; - protected ModelLacunae lacunae; - protected ModelFolly folly; - - public ItemRenderOverkill() { - powerJack = new ModelJack(); - sparkPlug = new ModelSpark(); - hppLaserjet = new ModelHP(); - euthanasia = new ModelEuthanasia(); - defab = new ModelDefabricator(); - dasher = new ModelDash(); - rgottp = new ModelTwiGun(); - pip = new ModelPip(); - lacunae = new ModelLacunae(); - folly = new ModelFolly(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - float f = 0; - - if((Entity)data[1] instanceof EntityPlayer) - f = ((EntityPlayer)data[1]).getItemInUseDuration(); - - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - - if(item.getItem() == ModItems.gun_jack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png")); - if(item.getItem() == ModItems.gun_spark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); - if(item.getItem() == ModItems.gun_hp) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png")); - if(item.getItem() == ModItems.gun_euthanasia) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); - if(item.getItem() == ModItems.gun_defabricator) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_dash) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDash.png")); - if(item.getItem() == ModItems.gun_twigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTwiGun.png")); - if(item.getItem() == ModItems.gun_revolver_pip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); - if(item.getItem() == ModItems.gun_revolver_nopip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipNoScope.png")); - if(item.getItem() == ModItems.gun_revolver_blackjack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); - if(item.getItem() == ModItems.gun_revolver_silver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipSilver.png")); - if(item.getItem() == ModItems.gun_revolver_red) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); - if(item.getItem() == ModItems.gun_minigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png")); - if(item.getItem() == ModItems.gun_avenger) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png")); - if(item.getItem() == ModItems.gun_lacunae) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - if(item.getItem() == ModItems.gun_folly) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelFolly.png")); - - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.2F, -0.1F, -0.1F); - - if(item.getItem() == ModItems.gun_defabricator) - GL11.glTranslatef(0, 0.5F, 0.4F); - - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) { - GL11.glScalef(0.60F, 0.60F, 0.60F); - GL11.glTranslatef(0.0F, 0.0F, -0.1F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - } - - if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) { - GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(180, 0, 1, 0); - GL11.glTranslatef(0.5F, 0.3F, -0.2F); - } - - if(item.getItem() == ModItems.gun_folly) { - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - } - - if(item.getItem() == ModItems.gun_jack) - powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_spark) - sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_hp) - hppLaserjet.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_euthanasia) - euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_defabricator) - defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_dash) - dasher.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_twigun) - rgottp.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) - pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) - lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ItemGunBase.readNBT(item, "rot")); - - if(item.getItem() == ModItems.gun_folly) { - int state = GunFolly.getState(item); - int time = GunFolly.getTimer(item); - folly.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, state, time); - } - - GL11.glPopMatrix(); - break; - case EQUIPPED: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_jack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png")); - if(item.getItem() == ModItems.gun_spark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); - if(item.getItem() == ModItems.gun_hp) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png")); - if(item.getItem() == ModItems.gun_euthanasia) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); - if(item.getItem() == ModItems.gun_defabricator) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_dash) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDash.png")); - if(item.getItem() == ModItems.gun_twigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTwiGun.png")); - if(item.getItem() == ModItems.gun_revolver_pip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); - if(item.getItem() == ModItems.gun_revolver_nopip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipNoScope.png")); - if(item.getItem() == ModItems.gun_revolver_blackjack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); - if(item.getItem() == ModItems.gun_revolver_silver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipSilver.png")); - if(item.getItem() == ModItems.gun_revolver_red) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); - if(item.getItem() == ModItems.gun_minigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png")); - if(item.getItem() == ModItems.gun_avenger) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png")); - if(item.getItem() == ModItems.gun_lacunae) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - if(item.getItem() == ModItems.gun_folly) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelFolly.png")); - - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - //GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-1.4F, 0.0F, 0.0F); - if(item.getItem() == ModItems.gun_jack) - GL11.glTranslatef(0.3F, 0, 0); - if(item.getItem() == ModItems.gun_spark) - GL11.glTranslatef(0.4F, 0, 0); - if(item.getItem() == ModItems.gun_hp) - GL11.glTranslatef(0.5F, 0.2F, 0); - if(item.getItem() == ModItems.gun_defabricator) - GL11.glTranslatef(0.5F, 0.6F, -0.2F); - - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) { - GL11.glScalef(0.60F, 0.60F, 0.60F); - GL11.glTranslatef(0.7F, 0.3F, 0.0F); - } - if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) { - GL11.glRotatef(5.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(185, 0, 1, 0); - GL11.glTranslatef(0.5F, 0.6F, 0.2F); - } - if(item.getItem() == ModItems.gun_folly) { - GL11.glTranslatef(0.6F, 0.0F, 0.0F); - } - - if(item.getItem() == ModItems.gun_jack) - powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_spark) - sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_hp) - hppLaserjet.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_euthanasia) - euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_defabricator) - defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_dash) - dasher.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_twigun) - rgottp.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) - pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) - lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - - if(item.getItem() == ModItems.gun_folly) { - int state = GunFolly.getState(item); - int time = GunFolly.getTimer(item); - folly.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, state, time); - } - GL11.glPopMatrix(); - break; - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_jack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelJack.png")); - if(item.getItem() == ModItems.gun_spark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelSpark.png")); - if(item.getItem() == ModItems.gun_hp) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelHP.png")); - if(item.getItem() == ModItems.gun_euthanasia) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelEuthanasia.png")); - if(item.getItem() == ModItems.gun_defabricator) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDefabricator.png")); - if(item.getItem() == ModItems.gun_dash) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelDash.png")); - if(item.getItem() == ModItems.gun_twigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelTwiGun.png")); - if(item.getItem() == ModItems.gun_revolver_pip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPip.png")); - if(item.getItem() == ModItems.gun_revolver_nopip) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipNoScope.png")); - if(item.getItem() == ModItems.gun_revolver_blackjack) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipGrey.png")); - if(item.getItem() == ModItems.gun_revolver_silver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipSilver.png")); - if(item.getItem() == ModItems.gun_revolver_red) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); - if(item.getItem() == ModItems.gun_minigun) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunae.png")); - if(item.getItem() == ModItems.gun_avenger) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeAvenger.png")); - if(item.getItem() == ModItems.gun_lacunae) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - if(item.getItem() == ModItems.gun_folly) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelFolly.png")); - - - GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); - - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) { - GL11.glScalef(0.60F, 0.60F, 0.60F); - } - if(item.getItem() == ModItems.gun_calamity) { - GL11.glScalef(0.75F, 0.75F, 0.75F); - } - if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) { - GL11.glTranslatef(0, -1, 0); - GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); - } - - if(item.getItem() == ModItems.gun_jack) - powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_spark) - sparkPlug.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_hp) - hppLaserjet.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_euthanasia) - euthanasia.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_defabricator) - defab.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_dash) - dasher.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_twigun) - rgottp.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_revolver_pip || - item.getItem() == ModItems.gun_revolver_nopip || - item.getItem() == ModItems.gun_revolver_blackjack || - item.getItem() == ModItems.gun_revolver_silver || - item.getItem() == ModItems.gun_revolver_red) - pip.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_lacunae || - item.getItem() == ModItems.gun_minigun || - item.getItem() == ModItems.gun_avenger) - lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - - if(item.getItem() == ModItems.gun_folly) { - int state = GunFolly.getState(item); - int time = GunFolly.getTimer(item); - folly.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, state, time); - } - GL11.glPopMatrix(); - break; - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolver.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolver.java deleted file mode 100644 index b7f8ce1c0..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolver.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolver implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolver() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - - if(item.getItem() == ModItems.gun_revolver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolver.png")); - if(item.getItem() == ModItems.gun_revolver_saturnite) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverSaturnite.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - - //((EntityPlayer)data[1]).isSwingInProgress = false; - - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - if(item.getItem() == ModItems.gun_revolver) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolver.png")); - if(item.getItem() == ModItems.gun_revolver_saturnite) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverSaturnite.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java deleted file mode 100644 index 937c936bb..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverCursed.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelGun; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverCursed implements IItemRenderer { - - protected ModelGun swordModel; - - public ItemRenderRevolverCursed() { - swordModel = new ModelGun(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGun.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGun.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverGold.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverGold.java deleted file mode 100644 index 76cb564ea..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverGold.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverGold implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverGold() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverGold.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverGold.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java deleted file mode 100644 index c2f5b537d..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverInverted.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverInverted implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverInverted() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - boolean inUse = false; - if(data != null && data.length > 1 && data[1] instanceof EntityPlayer) - inUse = (((EntityPlayer)data[1]).getItemInUse() != null && ((EntityPlayer)data[1]).getItemInUse().getItemUseAction() == EnumAction.bow); - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 1.5D; - GL11.glTranslated(0.75, 0.5, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(100, 0, -1, 0); - GL11.glRotated(25, 1, 0, 0); - - if(inUse) { - GL11.glTranslated(-0.4, 0, 0); - GL11.glRotated(198, 0, 1, 0); - GL11.glRotated(-10, 1, 0, 0); - } - - break; - - case EQUIPPED: - - double scale = 1.5D; - GL11.glRotated(195, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(-10, 1, 0, 0); - GL11.glTranslated(-0.5, 0.1, -0.25); - GL11.glScaled(scale, scale, scale); - - if(inUse) { - GL11.glTranslated(-0.05, 0, 0); - GL11.glRotated(-15, 0, 0, 1); - GL11.glRotated(160, 0, 1, 0); - } - - break; - - case ENTITY: - - double s1 = 1D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 17D; - GL11.glTranslated(8, 8, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_gun_bright); - ResourceManager.ff_python.renderPart("Body"); - ResourceManager.ff_python.renderPart("Cylinder"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_wood); - ResourceManager.ff_python.renderPart("Grip"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_iron); - ResourceManager.ff_python.renderPart("Hammer"); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverIron.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverIron.java deleted file mode 100644 index a84199cf8..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverIron.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverIron implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverIron() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverIron.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverIron.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverLead.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverLead.java deleted file mode 100644 index 6833e5184..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverLead.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverLead implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverLead() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverLead.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverLead.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java deleted file mode 100644 index 900012ce6..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverNightmare.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelNightmare; -import com.hbm.render.model.ModelNightmare2; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverNightmare implements IItemRenderer { - - protected ModelNightmare n1; - protected ModelNightmare2 n2; - protected Item item; - - public ItemRenderRevolverNightmare(Item item) { - n1 = new ModelNightmare(); - n2 = new ModelNightmare2(); - this.item = item; - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - if(this.item == ModItems.gun_revolver_nightmare) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare.png")); - if(this.item == ModItems.gun_revolver_nightmare2) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare2.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - if(this.item == ModItems.gun_revolver_nightmare) - n1.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - if(this.item == ModItems.gun_revolver_nightmare2) - n2.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - if(this.item == ModItems.gun_revolver_nightmare) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare.png")); - if(this.item == ModItems.gun_revolver_nightmare2) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelNightmare2.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - if(this.item == ModItems.gun_revolver_nightmare) - n1.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - if(this.item == ModItems.gun_revolver_nightmare2) - n2.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverSchrabidium.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverSchrabidium.java deleted file mode 100644 index 0766c6fb5..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRevolverSchrabidium.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRevolver; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRevolverSchrabidium implements IItemRenderer { - - protected ModelRevolver swordModel; - - public ItemRenderRevolverSchrabidium() { - swordModel = new ModelRevolver(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverSchrabidium.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRevolverSchrabidium.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRocket.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRocket.java deleted file mode 100644 index 8a2533a48..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRocket.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelRocket; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRocket implements IItemRenderer { - - protected ModelRocket swordModel; - - public ItemRenderRocket() { - swordModel = new ModelRocket(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRocket.png")); - GL11.glRotatef(-45.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.0F, 0.6F, -0.5F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelRocket.png")); - GL11.glRotatef(-110.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 2.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, 0.5F, 0.0F); - GL11.glScalef(2.0F, 2.0F, 2.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java deleted file mode 100644 index 7b4b427b5..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderRpg.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelGustav; -import com.hbm.render.model.ModelPanzerschreck; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderRpg implements IItemRenderer { - - protected ModelGustav swordModel; - protected ModelPanzerschreck panz; - - public ItemRenderRpg() { - swordModel = new ModelGustav(); - panz = new ModelPanzerschreck(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - if(item.getItem() == ModItems.gun_rpg) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustav.png")); - if(item.getItem() == ModItems.gun_karl) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustavYellow.png")); - if(item.getItem() == ModItems.gun_panzerschreck) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPanzerschreck.png")); - - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(0.4F, -1.0F, -0.7F); - - if(item.getItem() == ModItems.gun_panzerschreck) { - GL11.glScalef(1.5F, 1.5F, 1.5F); - - if(Minecraft.getMinecraft().thePlayer.isSneaking()) - GL11.glTranslatef(-0.2F, -0.3F, -0.5F); - else - GL11.glTranslatef(-0.1F, 0.0F, 0.0F); - } else { - GL11.glTranslatef(0F, -0.1F, -0.4F); - } - - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - - if(item.getItem() == ModItems.gun_rpg) - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_karl) - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_panzerschreck) - panz.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - if(item.getItem() == ModItems.gun_rpg) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustav.png")); - if(item.getItem() == ModItems.gun_karl) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustavYellow.png")); - if(item.getItem() == ModItems.gun_panzerschreck) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPanzerschreck.png")); - - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.9F, 0.0F, 0.1F); - - if(item.getItem() == ModItems.gun_panzerschreck) { - GL11.glTranslatef(-0.5F, -0.1F, 0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - } - - if(item.getItem() == ModItems.gun_rpg) - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_karl) - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - if(item.getItem() == ModItems.gun_panzerschreck) - panz.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java deleted file mode 100644 index 5e5b5d36d..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderStinger.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.main.ResourceManager; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderStinger implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - ResourceLocation stingerTex = item.getItem() == ModItems.gun_stinger ? ResourceManager.stinger_tex : ResourceManager.sky_stinger_tex; - Minecraft.getMinecraft().renderEngine.bindTexture(stingerTex); - GL11.glPushMatrix(); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(-0.5, -0.7, -0.5); - GL11.glRotated(-100, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2F, -3F, 4.0F); - - break; - - case ENTITY: - - double s1 = 0.2D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslatef(0F, -2.5F, 0F); - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.75D; - GL11.glTranslated(4, 11, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glRotated(135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - ResourceManager.stinger.renderAll(); - GL11.glPopMatrix(); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderTestBombAdvanced.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderTestBombAdvanced.java deleted file mode 100644 index 90a3275c4..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderTestBombAdvanced.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.bomb.TileEntityTestBombAdvanced; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderTestBombAdvanced implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, - ItemRendererHelper helper) { - return true; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - //TileEntityRendererDispatcher.instance.renderTileEntityAt(new TileEntityTestBombAdvanced(), 0.0D, 0.0D, 0.0D, 0.0F); - - switch(type) { - case INVENTORY: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/NukeTestBomb.png")); - GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); - GL11.glScalef(0.65F, 0.65F, 0.65F); - GL11.glTranslatef(0.0F, -0.75F, 0.0F); - //bombModel.render((Entity)data[0], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - TileEntityRendererDispatcher.instance.renderTileEntityAt(new TileEntityTestBombAdvanced(), 0.0D, 0.0D, 0.0D, 0.0F); - GL11.glPopMatrix(); - break; - case EQUIPPED: - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/NukeTestBomb.png")); - GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-1.5F, 0.0F, 0.0F); - //bombModel.render((Entity)data[0], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - TileEntityRendererDispatcher.instance.renderTileEntityAt(new TileEntityTestBombAdvanced(), 0.0D, 0.0D, 0.0D, 0.0F); - GL11.glPopMatrix(); - break; - case EQUIPPED_FIRST_PERSON: - case ENTITY: - TileEntityRendererDispatcher.instance.renderTileEntityAt(new TileEntityTestBombAdvanced(), 0.0D, 0.0D, 0.0D, 0.0F); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderUZI.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderUZI.java deleted file mode 100644 index 75466cb35..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderUZI.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelUzi; -import com.hbm.render.model.ModelUziBarrel; -import com.hbm.render.model.ModelUziSilencer; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderUZI implements IItemRenderer { - - protected ModelUzi uzi; - protected ModelUziBarrel barrel; - protected ModelUziSilencer silencer; - - public ItemRenderUZI() { - uzi = new ModelUzi(); - barrel = new ModelUziBarrel(); - silencer = new ModelUziSilencer(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glScalef(0.25F, 0.25F, 0.25F); - GL11.glTranslatef(-2.5F, -0.5F, -0.9F); - - GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png")); - if(item.getItem() == ModItems.gun_uzi_saturnite || item.getItem() == ModItems.gun_uzi_saturnite_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSaturnite.png")); - - uzi.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_saturnite) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziBarrel.png")); - barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - if(item.getItem() == ModItems.gun_uzi_silencer || item.getItem() == ModItems.gun_uzi_saturnite_silencer) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSilencer.png")); - silencer.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - GL11.glPopMatrix(); - break; - case EQUIPPED: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - - GL11.glScalef(0.5F, 0.5F, 0.5F); - - GL11.glTranslatef(0.2F, -0.8F, -1.0F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png")); - if(item.getItem() == ModItems.gun_uzi_saturnite || item.getItem() == ModItems.gun_uzi_saturnite_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSaturnite.png")); - uzi.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_saturnite) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziBarrel.png")); - barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - if(item.getItem() == ModItems.gun_uzi_silencer || item.getItem() == ModItems.gun_uzi_saturnite_silencer) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSilencer.png")); - silencer.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - GL11.glPopMatrix(); - break; - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - - GL11.glScalef(0.5F, 0.5F, 0.5F); - - GL11.glTranslatef(0.0F, -1.0F, 0.0F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png")); - if(item.getItem() == ModItems.gun_uzi_saturnite || item.getItem() == ModItems.gun_uzi_saturnite_silencer) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSaturnite.png")); - uzi.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - - if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_saturnite) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziBarrel.png")); - barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - if(item.getItem() == ModItems.gun_uzi_silencer || item.getItem() == ModItems.gun_uzi_saturnite_silencer) { - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSilencer.png")); - silencer.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - } - - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java deleted file mode 100644 index 173716ef6..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderUboinik.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelUboinik; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderUboinik implements IItemRenderer { - - protected ModelUboinik swordModel; - - public ItemRenderUboinik() { - swordModel = new ModelUboinik(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUboinik.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - //GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - GL11.glTranslatef(-0.2F, -0.4F, -0.1F); - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - break; - case EQUIPPED: - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUboinik.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-1.4F, 0.0F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, item); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java deleted file mode 100644 index 62d35a29d..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponAR15 implements IItemRenderer { - - public ItemRenderWeaponAR15() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ar15_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.125D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.0, 0.0, -0.5); - GL11.glRotated(80, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.125D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(4F, -2F, 5F); - - break; - - case ENTITY: - - double s1 = 0.1D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 0.75D; - GL11.glTranslated(6, 9, 0); - GL11.glRotated(-90, 0, 1, 0); - GL11.glRotated(-135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.ar15.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java deleted file mode 100644 index 7683fa149..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponBolter implements IItemRenderer { - - public ItemRenderWeaponBolter() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - if(item.getItem() == ModItems.gun_bolter) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bolter_tex); - if(item.getItem() == ModItems.gun_bolter_digamma) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bolter_digamma_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.25, -0.25, -0.25); - GL11.glRotated(-100, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glRotated(recoil[0] * 5, 1, 0, 0); - GL11.glTranslated(0, 0, recoil[0]); - - double[] tilt = HbmAnimations.getRelevantTransformation("TILT"); - GL11.glTranslated(0, tilt[0], 3); - GL11.glRotated(tilt[0] * 35, 1, 0, 0); - GL11.glTranslated(0, 0, -3); - - ResourceManager.bolter.renderPart("Body"); - - double[] mag = HbmAnimations.getRelevantTransformation("MAG"); - GL11.glPushMatrix(); - GL11.glTranslated(0, 0, 5); - GL11.glRotated(mag[0] * 60 * (mag[2] == 1 ? 2.5 : 1), -1, 0, 0); - GL11.glTranslated(0, 0, -5); - ResourceManager.bolter.renderPart("Mag"); - if(mag[2] != 1) - ResourceManager.bolter.renderPart("Bullet"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - double[] casing = HbmAnimations.getRelevantTransformation("EJECT"); - GL11.glTranslated(casing[2] * 5, casing[2] * 2, 0); - GL11.glRotated(casing[2] * 60, 1, 0, 0); - ResourceManager.bolter.renderPart("Casing"); - GL11.glPopMatrix(); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2F, -0.9F, -0.75F); - - break; - - case ENTITY: - - double s1 = 0.2D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, 1, 0); - GL11.glRotatef(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 2.5D; - GL11.glTranslated(6, 10, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glRotated(135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - ResourceManager.bolter.renderAll(); - } - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPushMatrix(); - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); - - FontRenderer font = Minecraft.getMinecraft().fontRenderer; - String s = ((ItemGunBase) item.getItem()).getMag(item) + ""; - float f3 = 0.04F; - GL11.glTranslatef(0.025F - (font.getStringWidth(s) / 2) * 0.04F, 2.11F, 2.91F); - GL11.glScalef(f3, -f3, f3); - GL11.glRotatef(45, 1, 0, 0); - GL11.glNormal3f(0.0F, 0.0F, -1.0F * f3); - font.drawString(s, 0, 0, 0xff0000); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopAttrib(); - GL11.glPopMatrix(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponChemthrower.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponChemthrower.java deleted file mode 100644 index 4996d353e..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponChemthrower.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunChemthrower; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponChemthrower implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.chemthrower_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.0, 0.0, 0.0); - GL11.glRotated(170, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotated(100, 0, 1, 0); - GL11.glRotated(-10, 1, 0, 0); - GL11.glRotated(10, 0, 0, 1); - GL11.glTranslatef(-0.25F, -2.5F, 1.75F); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.5D; - GL11.glTranslated(9, 9, 0); - GL11.glRotated(180, 1, 0, 0); - GL11.glRotated(45, 0, 0, -1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - ItemGunChemthrower chem = (ItemGunChemthrower) item.getItem(); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - ResourceManager.chemthrower.renderPart("Gun"); - ResourceManager.chemthrower.renderPart("Hose"); - ResourceManager.chemthrower.renderPart("Nozzle"); - - GL11.glTranslated(0, 0.875, 1.75); - double d = (double) chem.getMag(item) / (double) chem.mainConfig.ammoCap; - GL11.glRotated(135 - d * 270, 1, 0, 0); - GL11.glTranslated(0, -0.875, -1.75); - - ResourceManager.chemthrower.renderPart("Gauge"); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java new file mode 100644 index 000000000..b368c30f5 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java @@ -0,0 +1,118 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.ItemCryoCannon; +import com.hbm.items.weapon.ItemGunBase; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderWeaponCryoCannon implements IItemRenderer { + + public static final ResourceLocation[] fill_tex = new ResourceLocation[15]; + public static final ResourceLocation[] pressure_tex = new ResourceLocation[12]; + public static final ResourceLocation[] turbine_tex = new ResourceLocation[9]; + + public ItemRenderWeaponCryoCannon() { + for(int i = 0; i < fill_tex.length; i++) fill_tex[i] = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon/fill_" + i + ".png"); + for(int i = 0; i < pressure_tex.length; i++) pressure_tex[i] = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon/pressure_" + i + ".png"); + for(int i = 0; i < turbine_tex.length; i++) turbine_tex[i] = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon/turbine_" + i + ".png"); + } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.cryocannon_tex); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.25D; + GL11.glRotated(25, 0, 0, 1); + GL11.glTranslated(1, 0, -0.3); + GL11.glRotated(80, 0, 1, 0); + GL11.glScaled(s0, s0, s0); + + ItemGunBase gun = (ItemGunBase) item.getItem(); + + ResourceManager.cryocannon.renderPart("Gun"); + ResourceManager.cryocannon.renderPart("Rotor"); + Minecraft.getMinecraft().renderEngine.bindTexture(fill_tex[MathHelper.clamp_int(ItemGunBase.getMag(item) * fill_tex.length / gun.mainConfig.ammoCap, 0, fill_tex.length - 1)]); + ResourceManager.cryocannon.renderPart("Fuel"); + Minecraft.getMinecraft().renderEngine.bindTexture(turbine_tex[MathHelper.clamp_int(turbine_tex.length - 1 - ItemCryoCannon.getTurbine(item) * turbine_tex.length / 100, 0, turbine_tex.length - 1)]); + ResourceManager.cryocannon.renderPart("Spin"); + Minecraft.getMinecraft().renderEngine.bindTexture(pressure_tex[MathHelper.clamp_int(ItemCryoCannon.getPressure(item) * pressure_tex.length / 1000, 0, pressure_tex.length - 1)]); + ResourceManager.cryocannon.renderPart("Pressure"); + + break; + + case EQUIPPED: + + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(0.75F, -2.5F, 3.5F); + + break; + + case ENTITY: + + double s1 = 0.25D; + GL11.glScaled(s1, s1, s1); + GL11.glTranslated(0, 0, 3); + + break; + + case INVENTORY: + + double s = 2.5D; + GL11.glTranslated(1, 6, 0); + GL11.glRotated(-135, 0, 0, 1); + GL11.glRotated(-90, 0, 1, 0); + GL11.glScaled(s, s, -s); + + break; + + default: break; + } + + if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) ResourceManager.cryocannon.renderAll(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java deleted file mode 100644 index 4573ea079..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.model.IModelCustom; - -public class ItemRenderWeaponFFBolt implements IItemRenderer { - - ResourceLocation texture; - IModelCustom model; - - public ItemRenderWeaponFFBolt(IModelCustom model, ResourceLocation texture) { - this.model = model; - this.texture = texture; - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - boolean renderBolt = true; - Minecraft.getMinecraft().renderEngine.bindTexture(texture); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.5D; - GL11.glTranslated(0.5, 0.25, -0.2); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(15, 0, 0, 1); - GL11.glRotated(20, 0, -1, 0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(recoil[0] * -0.5, 0, 0); - - double[] pull = HbmAnimations.getRelevantTransformation("LEVER_PULL"); - double[] rotate = HbmAnimations.getRelevantTransformation("LEVER_ROTATE"); - - GL11.glPushMatrix(); - GL11.glTranslated(pull[0], 0, 0); - double heightOffset = 0.52D; - GL11.glTranslated(0, heightOffset, 0); - GL11.glRotated(rotate[0] * 35, -1, 0, 0); - GL11.glTranslated(0, -heightOffset, 0); - model.renderPart("Bolt"); - GL11.glPopMatrix(); - - renderBolt = false; - - /*if(item.getItem() == ModItems.gun_bolt_action_saturnite) { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - Tessellator tessellator = Tessellator.instance; - int color = 0x00FF00; - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(5, 0, 0); - tessellator.addVertex(150, 0, 0); - tessellator.draw(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - }*/ - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glRotated(-75, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(10, 1, 0, 0); - GL11.glTranslated(0.3, 0.15, -0.5); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.5D; - GL11.glTranslated(10, 11, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - model.renderPart("Gun"); - if(renderBolt) - model.renderPart("Bolt"); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java deleted file mode 100644 index a51de09ef..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFColt implements IItemRenderer { - - ResourceLocation main; - ResourceLocation hammer; - ResourceLocation grip; - - public ItemRenderWeaponFFColt(ResourceLocation main, ResourceLocation hammer, ResourceLocation grip) { - this.main = main; - this.hammer = hammer; - this.grip = grip; - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 1.5D; - GL11.glTranslated(0.75, 0.5, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(100, 0, -1, 0); - GL11.glRotated(25, 1, 0, 0); - - break; - - case EQUIPPED: - - double scale = 1.5D; - GL11.glRotated(195, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(-10, 1, 0, 0); - GL11.glTranslated(-0.5, 0.1, -0.25); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 1D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 17D; - GL11.glTranslated(8, 8, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - Minecraft.getMinecraft().renderEngine.bindTexture(main); - ResourceManager.ff_python.renderPart("Body"); - ResourceManager.ff_python.renderPart("Cylinder"); - Minecraft.getMinecraft().renderEngine.bindTexture(grip); - ResourceManager.ff_python.renderPart("Grip"); - Minecraft.getMinecraft().renderEngine.bindTexture(hammer); - ResourceManager.ff_python.renderPart("Hammer"); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java deleted file mode 100644 index a7d7e585b..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFCursed implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glTranslated(0.75, 0.25, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(170, 0, 1, 0); - GL11.glRotated(25, 0, 0, -1); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glRotated(105, 0, 1, 0); - GL11.glRotated(-10, 1, 0, 0); - GL11.glRotated(10, 0, 0, 1); - GL11.glTranslated(0.2, 0.05, 0.45); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 0.125D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(1, 0, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 2.75D; - GL11.glTranslated(10, 11.5, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(180, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_cursed); - ResourceManager.cursed_revolver.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMG42.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMG42.java deleted file mode 100644 index 880faa2b5..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMG42.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFMG42 implements IItemRenderer { - - public ItemRenderWeaponFFMG42() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mg42_tex); - boolean renderMag = true; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.65D; - GL11.glRotated(170, 0, 1, 0); - GL11.glRotated(-25, 0, 0, 1); - GL11.glTranslated(-0.125, 0, 0); - GL11.glScaled(s0, s0, s0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(recoil[0] * 0.25, 0, 0); - - double[] reload = HbmAnimations.getRelevantTransformation("MAG"); - GL11.glRotated(reload[1] * 15, 1, 0, 0); - - GL11.glPushMatrix(); - - GL11.glRotated(reload[1] * -45, 1, 0, 0); - GL11.glTranslated(0, reload[1] * 0.25, -reload[1]); - ResourceManager.mg42.renderPart("Mag"); - GL11.glPopMatrix(); - - renderMag = false; - - break; - - case EQUIPPED: - - double scale = 0.35D; - GL11.glScaled(scale, scale, scale); - GL11.glRotated(100, 0, 1, 0); - GL11.glRotated(-10, 1, 0, 0); - GL11.glRotated(10, 0, 0, 1); - GL11.glTranslated(-0.5, 0.75, 1.25); - - break; - - case ENTITY: - - double s1 = 0.3D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.75D; - GL11.glTranslated(10, 9.5, 0); - GL11.glRotated(180, 1, 0, 0); - GL11.glRotated(-45, 0, 0, 1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - ResourceManager.mg42.renderPart("Gun"); - if(renderMag) ResourceManager.mg42.renderPart("Mag"); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java deleted file mode 100644 index f63f1d68e..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFMaresLeg implements IItemRenderer { - - ResourceLocation main; - ResourceLocation grip; - - public ItemRenderWeaponFFMaresLeg(ResourceLocation main, ResourceLocation grip) { - this.main = main; - this.grip = grip; - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - double lever = 0; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 1.25D; - GL11.glTranslated(0.75, 0.5, 0); - GL11.glScaled(s0, s0, s0); - - if(!player.isSneaking()) { - GL11.glRotated(100, 0, -1, 0); - GL11.glRotated(-5, 0, 1, 0); - GL11.glRotated(20, 1, 0, 0); - } else { - GL11.glRotated(97.5, 0, -1, 0); - GL11.glTranslated(-0.71, 0.375, 0); - GL11.glRotated(25, 1, 0, 0); - GL11.glRotated(1, 0, 1, 0); - GL11.glRotated(-3, 0, 0, 1); - GL11.glRotated(0.2, 0, 1, 0); - GL11.glTranslated(-0.006, -0.005, 0.4); - } - - double[] recoil = HbmAnimations.getRelevantTransformation("LEVER_RECOIL"); - GL11.glTranslated(0, 0, recoil[0] * 0.5); - - double[] rotation = HbmAnimations.getRelevantTransformation("LEVER_ROTATE"); - lever = rotation[2]; - GL11.glTranslated(0, 0, 0.5); - GL11.glRotated(Math.min(lever, 30), 1, 0, 0); - GL11.glTranslated(0, 0, -0.5); - - break; - - case EQUIPPED: - - double scale = 1.25D; - GL11.glRotated(195, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(-10, 1, 0, 0); - GL11.glTranslated(-0.45, 0.1, -0.5); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 1D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 9D; - GL11.glTranslated(8, 9, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - Minecraft.getMinecraft().renderEngine.bindTexture(grip); - ResourceManager.ff_maresleg.renderPart("Grip"); - Minecraft.getMinecraft().renderEngine.bindTexture(main); - ResourceManager.ff_maresleg.renderPart("Gun"); - GL11.glTranslated(0, 0.1, 0.25); - GL11.glRotated(lever * 1.5, 1, 0, 0); - GL11.glTranslated(0, -0.1, -0.25); - ResourceManager.ff_maresleg.renderPart("Lever"); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmare.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmare.java deleted file mode 100644 index 6a7b3f37c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmare.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFNightmare implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.2D; - GL11.glTranslated(0.75, 0.55, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(100, 0, -1, 0); - GL11.glRotated(25, 1, 0, 0); - - break; - - case EQUIPPED: - - double scale = 0.2D; - GL11.glRotated(195, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(-10, 1, 0, 0); - GL11.glTranslated(-0.5, 0.3, -0.25); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 0.15D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.75D; - GL11.glTranslated(10, 9, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_nightmare_orig_tex); - ResourceManager.ff_nightmare.renderPart("Gun"); - - int ammo = ItemGunBase.getMag(item); - for(int i = 0; i < ammo; i++) { - ResourceManager.ff_nightmare.renderPart("Bullet" + (i + 1)); - } - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmareDark.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmareDark.java deleted file mode 100644 index 52f7d4226..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmareDark.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFNightmareDark implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.4D; - GL11.glTranslated(0.75, 0.45, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(170, 0, 1, 0); - GL11.glRotated(25, 0, 0, -1); - - break; - - case EQUIPPED: - - double scale = 0.4D; - GL11.glRotated(105, 0, 1, 0); - GL11.glRotated(-10, 1, 0, 0); - GL11.glRotated(10, 0, 0, 1); - GL11.glTranslated(-0.125, 0.1, 0.5); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 3D; - GL11.glTranslated(10, 9, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(180, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_nightmare_tex); - ResourceManager.nightmare_dark.renderAll(); - - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java deleted file mode 100644 index aa8e186e4..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponGlass.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.handler.BulletConfiguration; -import com.hbm.items.weapon.gununified.ItemEnergyGunBase; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponGlass implements IItemRenderer { - - public ItemRenderWeaponGlass() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.5D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(2.25, 0.0, 0.125); - GL11.glRotatef(-10, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(-scale, scale, scale); - GL11.glRotatef(20F, -3.0F, -0.75F, -1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30F, 2.0F, -1F, -5.0F); - GL11.glTranslatef(5F, -0.35F, 0.25F); - - break; - - case ENTITY: - - double s1 = 0.5D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - double s = 1.65D; - GL11.glTranslatef(8F, 8F, 0F); - GL11.glRotated(90, 0, 0, 1); - GL11.glRotated(135, 0, 0, 1); - GL11.glScaled(s, s, s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_TEXTURE_2D); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glAlphaFunc(GL11.GL_GREATER, 0); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(0.9F, 1.0F, 1.0F, 0.5F); - GL11.glDepthMask(false); - - ResourceManager.glass_cannon.renderPart("Gun"); - - 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.glDisable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.glass_cannon_panel_tex); - ResourceManager.glass_cannon.renderPart("Panel"); - - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_TEXTURE_2D); - - int color = 0xFFFFFF; - double freq = 1; - - if(item.getItem() instanceof ItemEnergyGunBase) { - BulletConfiguration config = ((ItemEnergyGunBase)item.getItem()).getConfig(item); - String name = config.modeName; - switch(name) { - case "weapon.elecGun.glass_cannon.radio": color = 0xaa2200; freq = 0.5; break; - case "weapon.elecGun.glass_cannon.micro": color = 0xdc221f; freq = 1; break; - case "weapon.elecGun.glass_cannon.ir": color = 0xfc3d3a; freq = 1.5; break; - case "weapon.elecGun.glass_cannon.visible": color = 0x8fe325; freq = 2; break; - case "weapon.elecGun.glass_cannon.uv": color = 0x37d5f3; freq = 2.5; break; - case "weapon.elecGun.glass_cannon.xray": color = 0x2542fd; freq = 3; break; - case "weapon.elecGun.glass_cannon.gamma": color = 0xdc20f3; freq = 3.5; break; - } - } - - float px = 0.0625F; - GL11.glTranslatef(-2F, px * 18, -px * 14); - GL11.glRotatef(90, 0, 1, 0); - GL11.glTranslatef(-0.7F, -0.86F, -0.33F); - - Tessellator tess = Tessellator.instance; - tess.startDrawing(GL11.GL_QUADS); - - int sub = 32; - double width = px * 21.25; - double len = width / sub; - double time = System.currentTimeMillis() / -100D; - double amplitude = 0.075; - - tess.setColorOpaque_I(color); - - for(int i = 0; i < sub; i++) { - double h0 = Math.sin(freq * i * 0.5 + time) * amplitude; - double h1 = Math.sin(freq * (i + 1) * 0.5 + time) * amplitude; - tess.addVertex(0, -px * 0.25 + h1, len * (i + 1)); - tess.addVertex(0, px * 0.25 + h1, len * (i + 1)); - tess.addVertex(0, px * 0.25 + h0, len * i); - tess.addVertex(0, -px * 0.25 + h0, len * i); - } - tess.setColorOpaque_F(1F, 1F, 1F); - - tess.draw(); - - GL11.glEnable(GL11.GL_TEXTURE_2D); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopAttrib(); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java deleted file mode 100644 index f99591f9d..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponNovac implements IItemRenderer { - - public ItemRenderWeaponNovac() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - //prevent rendering when using scope - if(item.getItem() == ModItems.gun_revolver_pip && type == ItemRenderType.EQUIPPED_FIRST_PERSON && MainRegistry.proxy.me().isSneaking()) return; - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - if(item.getItem() == ModItems.gun_revolver_nopip) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.novac_tex); - if(item.getItem() == ModItems.gun_revolver_pip) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lil_pip_tex); - if(item.getItem() == ModItems.gun_revolver_blackjack) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.blackjack_tex); - if(item.getItem() == ModItems.gun_revolver_silver) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lent_gun_tex); - if(item.getItem() == ModItems.gun_revolver_red) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.red_key_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.4D; - GL11.glRotated(25, 0, 0, 1); - GL11.glRotated(80, 0, 1, 0); - GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.0F, 0.0F, -1.25F); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.35D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-5, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-1.25F, 0.25F, -1F); - - break; - - case ENTITY: - - double s1 = 0.3D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 3D; - GL11.glTranslated(7, 8, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glRotated(135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - if(item.getItem() == ModItems.gun_revolver_pip) { - ResourceManager.novac_scoped.renderPart("Gun"); - ResourceManager.novac_scoped.renderPart("Hammer"); - ResourceManager.novac_scoped.renderPart("Cylinder"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.novac_scope_tex); - ResourceManager.novac_scoped.renderPart("Scope"); - } else { - ResourceManager.novac.renderAll(); - } - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java deleted file mode 100644 index 0e8e2603e..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java +++ /dev/null @@ -1,358 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponObj implements IItemRenderer { - - public ItemRenderWeaponObj() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - case INVENTORY: - return item.getItem() == ModItems.gun_ks23 || item.getItem() == ModItems.gun_hk69 - || item.getItem() == ModItems.gun_flamer || item.getItem() == ModItems.gun_deagle - || item.getItem() == ModItems.gun_flechette || item.getItem() == ModItems.gun_quadro; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_CULL_FACE); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - if(item.getItem() == ModItems.gun_hk69) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hk69_tex); - - if(item.getItem() == ModItems.gun_deagle) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.universal_bright); - - if(item.getItem() == ModItems.gun_ks23) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ks23_tex); - - if(item.getItem() == ModItems.gun_flamer) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flamer_tex); - - if(item.getItem() == ModItems.gun_quadro) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.quadro_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glTranslatef(1.0F, 0.5F, 0.0F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-25F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - - if(player.isSneaking()) { - GL11.glTranslatef(1.16F, 0.35F, -0.8F); - GL11.glRotatef(5.5F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(4F, 1.0F, 0.0F, 0.0F); - } - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(25F, -1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.2F, 0.2F, 0.8F); - GL11.glScaled(0.2, 0.2, 0.2); - - if(player.isSneaking()) { - GL11.glTranslatef(3.7F, 1.7F, 0F); - GL11.glRotatef(-5F, 0.0F, 1.0F, 0.0F); - } - } - - if(item.getItem() == ModItems.gun_ks23) { - GL11.glTranslatef(1.0F, 0.5F, -0.25F); - GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - - if(player.isSneaking()) { - GL11.glRotatef(4.5F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-2.5F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.3F, 0.2F, -0.875F); - } - } - - if(item.getItem() == ModItems.gun_flamer) { - GL11.glTranslatef(1.0F, 0.0F, -0.15F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-25F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.5, 0.5, 0.5); - - if(player.isSneaking()) { - GL11.glTranslatef(0.75F, 0.2F, 0.3F); - } - } - - if(item.getItem() == ModItems.gun_flechette) { - - GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(1.0F, -1.0F, -0.0F); - GL11.glRotatef(170F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.25, 0.25, 0.25); - - if(player.isSneaking()) { - GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-2F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-2.0F, 1.2F, 3.7F); - } - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(recoil[0], recoil[1], recoil[2]); - } - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glTranslatef(0.75F, 0.0F, -0.15F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-25F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.5, 0.5, 0.5); - - if(player.isSneaking()) { - GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(1.0F, 0.5F, 0.3F); - } - - double[] recoil = HbmAnimations.getRelevantTransformation("QUADRO_RECOIL"); - GL11.glTranslated(0, 0, recoil[2]); - - double[] reload = HbmAnimations.getRelevantTransformation("QUADRO_RELOAD_ROTATE"); - GL11.glRotated(reload[2], 1, 0, 0); - } - - break; - - case EQUIPPED: - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); - GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.4F, 0.0F, 0.55F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(35F, -1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.1F, 0.8F); - GL11.glScaled(0.15, 0.15, 0.15); - } - - if(item.getItem() == ModItems.gun_ks23) { - GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); - GL11.glRotatef(-80F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.9F, 0.0F, -0.5F); - GL11.glScaled(0.5, 0.5, 0.5); - } - - if(item.getItem() == ModItems.gun_flamer) { - GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); - GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.4F, -0.25F, 0.2F); - GL11.glScaled(0.35, 0.35, 0.35); - } - - if(item.getItem() == ModItems.gun_flechette) { - GL11.glRotatef(35F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-1.4F, -0.55F, 0.0F); - GL11.glScaled(0.125, 0.125, 0.125); - } - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); - GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.4F, -0.35F, -0.4F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - break; - - case ENTITY: - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glTranslatef(0.0F, 0.2F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glTranslatef(0.0F, 0.2F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.25, 0.25, 0.25); - } - - if(item.getItem() == ModItems.gun_ks23) { - GL11.glTranslatef(0.3F, 0.2F, 0.0F); - GL11.glScaled(0.5, 0.5, 0.5); - } - - if(item.getItem() == ModItems.gun_flamer) { - GL11.glTranslatef(0.25F, 0.2F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.25, 0.25, 0.25); - } - - if(item.getItem() == ModItems.gun_flechette) { - GL11.glTranslatef(-0.25F, 0.0F, 0.0F); - GL11.glScaled(0.125, 0.125, 0.125); - } - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.0F, 0.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glScaled(7.5, 7.5, -7.5); - GL11.glTranslatef(0.85F, 1.2F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glScaled(2.5, 2.5, -2.5); - GL11.glTranslatef(3.5F, 3F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); - } - - if(item.getItem() == ModItems.gun_ks23) { - GL11.glTranslatef(7F, 8F, 0.0F); - GL11.glScaled(4, 4, -4); - GL11.glRotatef(-135F, 0.0F, 0.0F, 1.0F); - } - - if(item.getItem() == ModItems.gun_flamer) { - GL11.glScaled(2.0, 2.0, -2.0); - GL11.glTranslatef(4.0F, 5.0F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); - } - - if(item.getItem() == ModItems.gun_flechette) { - GL11.glScaled(1.2, 1.2, -1.2); - GL11.glTranslatef(2.5F, 8.0F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-45F, 0.0F, 0.0F, 1.0F); - } - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glScaled(4.5, 4.5, -4.5); - GL11.glTranslatef(1.0F, 2.5F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); - } - - break; - - default: break; - } - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.hk69.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.deagle.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - - if(item.getItem() == ModItems.gun_ks23) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.ks23.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - - if(item.getItem() == ModItems.gun_flamer) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.flamer.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - - if(item.getItem() == ModItems.gun_flechette) { - renderFlechette(); - } - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.quadro.renderPart("Launcher"); - GL11.glShadeModel(GL11.GL_FLAT); - } - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } - - public void renderFlechette() { - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_body); - ResourceManager.flechette.renderPart("body"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_chamber); - ResourceManager.flechette.renderPart("chamber"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_barrel); - ResourceManager.flechette.renderPart("barrel"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_gren_tube); - ResourceManager.flechette.renderPart("gren_tube"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_grenades); - ResourceManager.flechette.renderPart("grenades"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_pivot); - ResourceManager.flechette.renderPart("pivot"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_top); - ResourceManager.flechette.renderPart("top"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_drum); - ResourceManager.flechette.renderPart("drum"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_base); - ResourceManager.flechette.renderPart("base"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_trigger); - ResourceManager.flechette.renderPart("trigger"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_stock); - ResourceManager.flechette.renderPart("stock"); - GL11.glShadeModel(GL11.GL_FLAT); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponQuadro.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponQuadro.java deleted file mode 100644 index ecfa3056c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponQuadro.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponQuadro implements IItemRenderer { - - public ItemRenderWeaponQuadro() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_CULL_FACE); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glTranslatef(0.75F, 0.0F, -0.15F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-25F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.5, 0.5, 0.5); - - if(player.isSneaking()) { - GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(1.0F, 0.5F, 0.3F); - } - - double[] recoil = HbmAnimations.getRelevantTransformation("QUADRO_RECOIL"); - GL11.glTranslated(0, 0, recoil[2]); - - double[] reload = HbmAnimations.getRelevantTransformation("QUADRO_RELOAD_ROTATE"); - GL11.glRotated(reload[2], 1, 0, 0); - } - - break; - - case EQUIPPED: - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); - GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.4F, -0.35F, -0.4F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - break; - - case ENTITY: - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.0F, 0.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glScaled(4.5, 4.5, -4.5); - GL11.glTranslatef(1.0F, 2.5F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); - } - - break; - - default: break; - } - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.quadro_tex); - ResourceManager.quadro.renderPart("Launcher"); - - if(ItemGunBase.getMag(item) > 0 || ItemGunBase.getIsReloading(item) && type != ItemRenderType.INVENTORY) { - GL11.glPushMatrix(); - - GL11.glTranslated(0, -1, 0); - - double[] push = HbmAnimations.getRelevantTransformation("QUADRO_RELOAD_PUSH"); - GL11.glTranslated(0, 3, 0); - GL11.glRotated(push[1] * 30, 1, 0, 0); - GL11.glTranslated(0, -3, 0); - GL11.glTranslated(0, 0, push[0] * 3); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.quadro_rocket_tex); - ResourceManager.quadro.renderPart("Rockets"); - GL11.glPopMatrix(); - } - - GL11.glShadeModel(GL11.GL_FLAT); - } - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponRemington.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponRemington.java deleted file mode 100644 index e49b57531..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponRemington.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponRemington implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.remington_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double[] recoilT = HbmAnimations.getRelevantTransformation("RECOIL_TRANSLATE"); - double[] pump = HbmAnimations.getRelevantTransformation("PUMP"); - - double s0 = 0.35D; - GL11.glRotated(25, 0, 0, 1); - GL11.glRotated(-10, 0, 1, 0); - GL11.glTranslated(1.25, -1.25, -0.25); - GL11.glScaled(s0, s0, s0); - - GL11.glTranslated(recoilT[2], 0, 0); - - ResourceManager.remington.renderPart("Gun"); - - GL11.glTranslated(pump[2] * 0.5, 0, 0); - - ResourceManager.remington.renderPart("Pump"); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-80, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(2.5F, -3.5F, -2F); - - ResourceManager.remington.renderAll(); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, -3, 0); - - ResourceManager.remington.renderAll(); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.25D; - GL11.glTranslated(4, 11, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glScaled(s, s, -s); - - ResourceManager.remington.renderAll(); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSauer.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSauer.java deleted file mode 100644 index 9d4d204de..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSauer.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponSauer implements IItemRenderer { - - public ItemRenderWeaponSauer() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sauergun_tex); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double[] recoil = HbmAnimations.getRelevantTransformation("SAUER_RECOIL"); - double[] tilt = HbmAnimations.getRelevantTransformation("SAUER_TILT"); - double[] cock = HbmAnimations.getRelevantTransformation("SAUER_COCK"); - double[] eject = HbmAnimations.getRelevantTransformation("SAUER_SHELL_EJECT"); - - double s0 = 0.5D; - GL11.glScaled(s0, s0, s0); - - GL11.glTranslatef(0.0F, -0.5F, 0.0F); - GL11.glRotatef(-100F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(20F, 1.0F, 0.0F, 0.0F); - - if(recoil != null) - GL11.glTranslated(0, 0, recoil[0]); - - if(player.isSneaking()) { - GL11.glRotatef(-3F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(2F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(3F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2.0F, 0.5F, 0.3F); - } - - if(tilt != null) { - GL11.glTranslated(0, -5, 0); - GL11.glRotated(tilt[2] * -0.5, 1, 0, 0); - GL11.glTranslated(0, 5, 0); - GL11.glRotated(tilt[0], 0, 0, 1); - - GL11.glTranslated(0, 0, cock[0] * 2); - ResourceManager.sauergun.renderPart("Lever"); - GL11.glTranslated(0, 0, -cock[0] * 2); - - GL11.glTranslated(eject[2] * 10, -eject[2], 0); - GL11.glRotated(eject[2] * 90, -1, 0, 0); - ResourceManager.sauergun.renderPart("Shell"); - GL11.glRotated(eject[2] * 90, 1, 0, 0); - GL11.glTranslated(-eject[2] * 10, eject[2], 0); - - } else { - - ResourceManager.sauergun.renderPart("Lever"); - } - - break; - - case EQUIPPED: - - double scale = 0.5D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-1F, -0.3F, 0.0F); - ResourceManager.sauergun.renderPart("Lever"); - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.0F, 0.0F, 0.5F); - GL11.glScaled(s1, s1, s1); - ResourceManager.sauergun.renderPart("Lever"); - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 2.25D; - GL11.glScaled(s, s, -s); - GL11.glTranslatef(4.0F, 4.5F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(45F, 1.0F, 0.0F, 0.0F); - ResourceManager.sauergun.renderPart("Lever"); - - break; - - default: break; - } - - ResourceManager.sauergun.renderPart("Gun"); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java deleted file mode 100644 index 25840aa8c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponShotty implements IItemRenderer { - - public ItemRenderWeaponShotty() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - case INVENTORY: - return false; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - String barrel = "Body_Cube.008"; - String handle = "handle_Cylinder.005"; - String shells = "boolets_Cylinder.008"; - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.shotty_tex); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double[] recoil = HbmAnimations.getRelevantTransformation("SHOTTY_RECOIL"); - double[] eject = HbmAnimations.getRelevantTransformation("SHOTTY_BREAK"); - double[] ejectShell = HbmAnimations.getRelevantTransformation("SHOTTY_EJECT"); - double[] insertShell = HbmAnimations.getRelevantTransformation("SHOTTY_INSERT"); - - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(1.75F, -0.2F, -0.3F); - - if(player.isSneaking()) { - GL11.glTranslatef(0F, 1.0F, -2.05F); - GL11.glRotatef(3.5F, 0.0F, 1.0F, 0.0F); - } else { - - GL11.glRotated(-eject[2] * 0.25, 0, 0, 1); - } - - GL11.glTranslated(-recoil[0] * 2, 0, 0); - GL11.glRotated(recoil[0] * 5, 0, 0, 1); - - GL11.glPushMatrix(); - GL11.glRotated(-eject[2] * 0.8, 0, 0, 1); - ResourceManager.shotty.renderPart(barrel); - - GL11.glPushMatrix(); - GL11.glRotated(ejectShell[0] * 90, 0, 0, 1); - GL11.glTranslated(-ejectShell[0] * 10, 0, 0); - ResourceManager.shotty.renderPart(shells); - GL11.glPopMatrix(); - - if(ItemGunBase.getBeltSize(player, ItemGunBase.getBeltType(player, item, true)) > 0) { - GL11.glPushMatrix(); - GL11.glTranslated(-insertShell[0], insertShell[2] * -2, insertShell[2] * -1); - ResourceManager.shotty.renderPart(shells); - GL11.glPopMatrix(); - } - - GL11.glPopMatrix(); - - ResourceManager.shotty.renderPart(handle); - - break; - - case EQUIPPED: - - GL11.glRotatef(-80F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-10F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.5F, 0.0F, -0.4F); - GL11.glScaled(0.35, 0.35, 0.35); - ResourceManager.shotty.renderPart(handle); - ResourceManager.shotty.renderPart(barrel); - - break; - - case ENTITY: - - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glTranslatef(-1.0F, 0.2F, 0.0F); - ResourceManager.shotty.renderPart(handle); - ResourceManager.shotty.renderPart(barrel); - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java deleted file mode 100644 index 33de43282..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponSpas12 implements IItemRenderer { - - public ItemRenderWeaponSpas12() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.spas_12_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double[] recoilT = HbmAnimations.getRelevantTransformation("SPAS_RECOIL_TRANSLATE"); - double[] recoilR = HbmAnimations.getRelevantTransformation("SPAS_RECOIL_ROT"); - double[] pump = HbmAnimations.getRelevantTransformation("SPAS_PUMP"); - - double s0 = 0.5D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(0, -0.8, 0.1); - GL11.glRotated(80, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - int m = 2; - - GL11.glTranslated(recoilT[0]*m, recoilT[1]*m, recoilT[2]*m); - GL11.glRotated(2, recoilR[0]*m, recoilR[1]*m, recoilR[2]*m); - - ResourceManager.spas_12.renderPart("MainBody"); - - GL11.glTranslated(pump[0], pump[1], pump[2]); - - ResourceManager.spas_12.renderPart("PumpGrip"); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(2F, -1F, -2F); - - ResourceManager.spas_12.renderAll(); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, 0, -4); - - ResourceManager.spas_12.renderAll(); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.6D; - GL11.glTranslated(12, 13.5, 0); - GL11.glRotated(-90, 0, 1, 0); - GL11.glRotated(-135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - ResourceManager.spas_12.renderAll(); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponTau.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponTau.java deleted file mode 100644 index b46f19474..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponTau.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunGauss; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponTau implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.tau_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.35D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.5, 0, 0.1); - GL11.glRotated(80, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(0, 0, recoil[0] * -1); - GL11.glTranslated(0, 0, -3); - GL11.glRotated(recoil[0] * -5, 1, 0, 0); - GL11.glTranslated(0, 0, 3); - - ResourceManager.tau.renderPart("Body"); - - if(ItemGunGauss.getCharge(item) > 0) { - GL11.glTranslated(0, -0.2, 0); - GL11.glRotated(System.currentTimeMillis() % 360D, 0, 0, 1); - GL11.glTranslated(0, 0.2, 0); - } - - ResourceManager.tau.renderPart("Rotor"); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(2F, 1F, 3F); - - ResourceManager.tau.renderAll(); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, 1, 0); - - ResourceManager.tau.renderAll(); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.6D; - GL11.glTranslated(8, 7, 0); - GL11.glRotated(-90, 0, 1, 0); - GL11.glRotated(-135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - ResourceManager.tau.renderAll(); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponThompson.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponThompson.java deleted file mode 100644 index f8bd5c12c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponThompson.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponThompson implements IItemRenderer { - - public ItemRenderWeaponThompson() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.thompson_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(0.5, -0.5, -0.5); - GL11.glRotated(-100, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2F, -3F, -0.5F); - - break; - - case ENTITY: - - double s1 = 0.2D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.75D; - GL11.glTranslated(4, 11, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glRotated(135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - ResourceManager.thompson.renderAll(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponVortex.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponVortex.java deleted file mode 100644 index 80de6557d..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponVortex.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponVortex implements IItemRenderer { - - public ItemRenderWeaponVortex() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.vortex_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.05D; - GL11.glScaled(s0, s0, s0); - GL11.glRotated(25, 0, 0, 1); - GL11.glRotated(-5, 0, 1, 0); - GL11.glTranslated(17, -5, -5); - - break; - - case EQUIPPED: - - double scale = 0.075D; - GL11.glScaled(scale, scale, scale); - GL11.glRotated(-75, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(15, 1, 0, 0); - GL11.glTranslated(7, -4, -6); - - break; - - case ENTITY: - - double s1 = 0.05D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 0.3D; - GL11.glTranslated(7, 11, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - ResourceManager.vortex.renderAll(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java deleted file mode 100644 index f30dfa967..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderZOMG.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelZOMG; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderZOMG implements IItemRenderer { - - protected ModelZOMG swordModel; - - public ItemRenderZOMG() { - swordModel = new ModelZOMG(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelZOMG.png")); - GL11.glRotatef(-150.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-0.4F, -0.5F, -0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - - case EQUIPPED: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelZOMG.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glTranslatef(-0.4F, -0.1F, -0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - break; - - case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelZOMG.png")); - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glTranslatef(0F, -0.5F, 0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); - default: break; - } - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java new file mode 100644 index 000000000..a21b57e25 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java @@ -0,0 +1,146 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderAm180 extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1F * offset, -1F * offset, 1F * offset, + 0, -4.1875 / 8D, 0.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.am180_tex); + double scale = 0.1875D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] magazine = HbmAnimations.getRelevantTransformation("MAG"); + double[] magTurn = HbmAnimations.getRelevantTransformation("MAGTURN"); + double[] magSpin = HbmAnimations.getRelevantTransformation("MAGSPIN"); + double[] bolt = HbmAnimations.getRelevantTransformation("BOLT"); + double[] turn = HbmAnimations.getRelevantTransformation("TURN"); + + GL11.glTranslated(0, -2, -6); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 6); + + GL11.glRotated(turn[2], 0, 0, 1); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glTranslated(0, 0, recoil[2]); + + HbmAnimations.applyRelevantTransformation("Gun"); + ResourceManager.am180.renderPart("Gun"); + ResourceManager.am180.renderPart("Silencer"); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Trigger"); + ResourceManager.am180.renderPart("Trigger"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, bolt[2]); + HbmAnimations.applyRelevantTransformation("Bolt"); + ResourceManager.am180.renderPart("Bolt"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(magazine[0], magazine[1], magazine[2]); + + GL11.glTranslated(0, 2.0625, 3.75); + GL11.glRotated(magTurn[0], 1, 0, 0); + GL11.glRotated(magTurn[2], 0, 0, 1); + GL11.glTranslated(0, -2.0625, -3.75); + + GL11.glTranslated(0, 2.3125, 1.5); + GL11.glRotated(magSpin[0], 1, 0, 0); + GL11.glTranslated(0, -2.3125, -1.5); + + HbmAnimations.applyRelevantTransformation("Mag"); + + GL11.glPushMatrix(); + int mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); + GL11.glTranslated(0, 0, 1.5); + GL11.glRotated(mag / 59D * 360D, 0, -1, 0); + GL11.glTranslated(0, 0, -1.5); + ResourceManager.am180.renderPart("Mag"); + GL11.glPopMatrix(); + + ResourceManager.am180.renderPart("MagPlate"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.875, 17); + GL11.glRotated(turn[2], 0, 0, -1); + GL11.glRotated(90, 0, 1, 0); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.25D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.875, 16.75); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(0.5, 0.5, 0.5); + this.renderMuzzleFlash(gun.lastShot[0], 75, 5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -0.5, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(1.5, 0, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.am180_tex); + ResourceManager.am180.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java new file mode 100644 index 000000000..85be22898 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java @@ -0,0 +1,138 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class ItemRenderAtlas extends ItemRenderWeaponBase { + + public ResourceLocation texture; + + public ItemRenderAtlas(ResourceLocation texture) { + this.texture = texture; + } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.0F * offset, -0.75F * offset, 1F * offset, + 0, -3.125 / 8D, 0.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + GL11.glShadeModel(GL11.GL_SMOOTH); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] reloadMove = HbmAnimations.getRelevantTransformation("RELOAD_MOVE"); + double[] reloadRot = HbmAnimations.getRelevantTransformation("RELOAD_ROT"); + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 10, 1, 0, 0); + + GL11.glTranslated(0, 0, -7); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 7); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 9.25); + GL11.glRotated(-recoil[2] * 10, 1, 0, 0); + GL11.glRotated(90, 0, 1, 0); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glTranslated(reloadMove[0], reloadMove[1], reloadMove[2]); + + GL11.glRotated(reloadRot[0], 1, 0, 0); + GL11.glRotated(reloadRot[2], 0, 0, 1); + GL11.glRotated(reloadRot[1], 0, 1, 0); + ResourceManager.bio_revolver.renderPart("Grip"); + + GL11.glPushMatrix(); /// FRONT PUSH /// + GL11.glRotated(HbmAnimations.getRelevantTransformation("FRONT")[2], 1, 0, 0); + ResourceManager.bio_revolver.renderPart("Barrel"); + GL11.glPushMatrix(); /// LATCH PUSH /// + GL11.glTranslated(0, 2.3125, -0.875); + GL11.glRotated(HbmAnimations.getRelevantTransformation("LATCH")[2], 1, 0, 0); + GL11.glTranslated(0, -2.3125, 0.875); + ResourceManager.bio_revolver.renderPart("Latch"); + GL11.glPopMatrix(); /// LATCH POP /// + + GL11.glPushMatrix(); /// DRUM PUSH /// + GL11.glTranslated(0, 1, 0); + GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * 60, 0, 0, 1); + GL11.glTranslated(0, -1, 0); + GL11.glTranslated(0, 0, HbmAnimations.getRelevantTransformation("DRUM_PUSH")[2]); + ResourceManager.bio_revolver.renderPart("Drum"); + GL11.glPopMatrix(); /// DRUM POP /// + + GL11.glPopMatrix(); /// FRONT POP /// + + GL11.glPushMatrix(); /// HAMMER /// + GL11.glTranslated(0, 0, -4.5); + GL11.glRotated(-45 + 45 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 1, 0, 0); + GL11.glTranslated(0, 0, 4.5); + ResourceManager.bio_revolver.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 9.25); + GL11.glRotated(90, 0, 1, 0); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 1, 3); + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.125D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 1.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + ResourceManager.bio_revolver.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java new file mode 100644 index 000000000..165cd20cc --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java @@ -0,0 +1,119 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.item.ItemStack; + +public class ItemRenderBolter extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -2F * offset, 2.5F * offset, + 0, -10.5 / 8D, 1.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bolter_tex); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + + GL11.glRotated(180, 0, 1, 0); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glRotated(recoil[0] * 5, 1, 0, 0); + GL11.glTranslated(0, 0, recoil[0]); + + double[] tilt = HbmAnimations.getRelevantTransformation("TILT"); + GL11.glTranslated(0, tilt[0], 3); + GL11.glRotated(tilt[0] * 35, 1, 0, 0); + GL11.glTranslated(0, 0, -3); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.bolter.renderPart("Body"); + + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 5); + GL11.glRotated(mag[0] * 60 * (mag[2] == 1 ? 2.5 : 1), -1, 0, 0); + GL11.glTranslated(0, 0, -5); + ResourceManager.bolter.renderPart("Mag"); + if(mag[2] != 1) ResourceManager.bolter.renderPart("Bullet"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + String s = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null) + ""; + float f3 = 0.04F; + GL11.glTranslatef(0.025F - (font.getStringWidth(s) / 2) * 0.04F, 2.11F, 2.91F); + GL11.glScalef(f3, -f3, f3); + GL11.glRotatef(45, 1, 0, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * f3); + font.drawString(s, 0, 0, 0xff0000); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 2.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -0.75, 1.25); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 2.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.25, -0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glRotated(180, 0, 1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bolter_tex); + ResourceManager.bolter.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java new file mode 100644 index 000000000..829aa1a3a --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java @@ -0,0 +1,120 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderCarbine extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1.5F * offset, 0.875F * offset, + 0, -6.25 / 8D, 0.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.carbine_tex); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] slide = HbmAnimations.getRelevantTransformation("SLIDE"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] bullet = HbmAnimations.getRelevantTransformation("BULLET"); + double[] rel = HbmAnimations.getRelevantTransformation("REL"); + + GL11.glTranslated(0, -1, -2); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 2); + + GL11.glTranslated(0, 0, -2); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 0, 2); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.carbine.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, slide[2]); + ResourceManager.carbine.renderPart("Slide"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.carbine.renderPart("Magazine"); + GL11.glTranslated(rel[0], rel[1], rel[2]); + if(bullet[0] != 1) ResourceManager.carbine.renderPart("Bullet"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 8); + GL11.glRotated(90, 0, 1, 0); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.25D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 8); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(0.5, 0.5, 0.5); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.375D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0, 2); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.375D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.carbine_tex); + ResourceManager.carbine.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChemthrower.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChemthrower.java new file mode 100644 index 000000000..582bdfaa5 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChemthrower.java @@ -0,0 +1,93 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderChemthrower extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -2F * offset, -2F * offset, 2.5F * offset, + 0, -4.375 / 8D, 1); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.chemthrower_tex); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + + GL11.glTranslated(0, -2, -4); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 2, 4); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glRotated(90, 0, 1, 0); + ResourceManager.chemthrower.renderPart("Gun"); + ResourceManager.chemthrower.renderPart("Hose"); + ResourceManager.chemthrower.renderPart("Nozzle"); + + GL11.glTranslated(0, 0.875, 1.75); + IMagazine mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack); + double d = (double) mag.getAmount(stack, MainRegistry.proxy.me().inventory) / (double) mag.getCapacity(stack); + GL11.glRotated(135 - d * 270, 1, 0, 0); + GL11.glTranslated(0, -0.875, -1.75); + + ResourceManager.chemthrower.renderPart("Gauge"); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 2D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -2.5, 0.5); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 2D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0.875, 0, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glRotated(90, 0, 1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.chemthrower_tex); + ResourceManager.chemthrower.renderPart("Gun"); + ResourceManager.chemthrower.renderPart("Hose"); + ResourceManager.chemthrower.renderPart("Nozzle"); + ResourceManager.chemthrower.renderPart("Gauge"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java new file mode 100644 index 000000000..111232870 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java @@ -0,0 +1,88 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderCoilgun extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1.5F * offset, 2.5F * offset, + 0, -7.5 / 8D, 1); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flaregun_tex); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + + GL11.glRotated(-90, 0, 1, 0); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glTranslated(-1.5 - recoil[0] * 0.5, 0, 0); + GL11.glRotated(recoil[0] * 45, 0, 0, 1); + GL11.glTranslated(1.5, 0, 0); + + double[] reload = HbmAnimations.getRelevantTransformation("RELOAD"); + GL11.glTranslated(-2.5, 0, 0); + GL11.glRotated(reload[0] * -45, 0, 0, 1); + GL11.glTranslated(2.5, 0, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.coilgun_tex); + ResourceManager.coilgun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 3D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.25, 1.25); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 4D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.25, -0.25, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glRotated(-90, 0, 1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.coilgun_tex); + ResourceManager.coilgun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java new file mode 100644 index 000000000..b2b7250f4 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java @@ -0,0 +1,171 @@ +package com.hbm.render.item.weapon.sedna; + +import java.awt.Color; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.particle.SpentCasing; +import com.hbm.render.anim.HbmAnimations; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderCongoLake extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -2F * offset, 1.25F * offset, + 0, -10 / 8D, 0.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.congolake_tex); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + + HbmAnimations.applyRelevantTransformation("Gun"); + ResourceManager.congolake.renderPart("Gun"); + + + GL11.glPushMatrix(); + { + HbmAnimations.applyRelevantTransformation("Pump"); + ResourceManager.congolake.renderPart("Pump"); + } + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + HbmAnimations.applyRelevantTransformation("Sight"); + GL11.glTranslated(0, 2.125, 3); + GL11.glRotated(aimingProgress * -90, 1, 0, 0); + GL11.glTranslated(0, -2.125, -3); + ResourceManager.congolake.renderPart("Sight"); + } + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + { + HbmAnimations.applyRelevantTransformation("Loop"); + ResourceManager.congolake.renderPart("Loop"); + } + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + { + HbmAnimations.applyRelevantTransformation("GuardOuter"); + ResourceManager.congolake.renderPart("GuardOuter"); + + GL11.glPushMatrix(); + { + HbmAnimations.applyRelevantTransformation("GuardInner"); + ResourceManager.congolake.renderPart("GuardInner"); + } + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + { + IMagazine mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack); + if(gun.getLastAnim(stack, 0) != AnimType.INSPECT || mag.getAmount(stack, MainRegistry.proxy.me().inventory) > 0) { //omit when inspecting and no shell is loaded + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); + + HbmAnimations.applyRelevantTransformation("Shell"); + + SpentCasing casing = mag.getCasing(stack, MainRegistry.proxy.me().inventory); + int[] colors = casing != null ? casing.getColors() : new int[] { SpentCasing.COLOR_CASE_40MM }; + + Color shellColor = new Color(colors[0]); + GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); + ResourceManager.congolake.renderPart("Shell"); + + Color shellForeColor = new Color(colors.length > 1 ? colors[1] : colors[0]); + GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); + ResourceManager.congolake.renderPart("ShellFore"); + + GL11.glColor3f(1F, 1F, 1F); + } + } + GL11.glPopMatrix(); + + double smokeScale = 0.25; + + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.75, 4.25); + double[] transform = HbmAnimations.getRelevantTransformation("Gun"); + GL11.glRotated(-transform[5], 0, 0, 1); + GL11.glRotated(-transform[4], 0, 1, 0); + GL11.glRotated(-transform[3], 1, 0, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 1D); + GL11.glPopMatrix(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.75, 4.25); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(0.5, 0.5, 0.5); + this.renderMuzzleFlash(gun.lastShot[0], 150, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, -2.5, 4); + double scale = 2.5D; + GL11.glScaled(scale, scale, scale); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 2.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, -1.25, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.congolake_tex); + ResourceManager.congolake.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java new file mode 100644 index 000000000..af2507d02 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java @@ -0,0 +1,187 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderDANI extends ItemRenderWeaponBase { + + @Override public boolean isAkimbo() { return true; } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + float offset = 0.8F; + + for(int i = -1; i <= 1; i += 2) { + + int index = i == -1 ? 0 : 1; + Minecraft.getMinecraft().renderEngine.bindTexture(index == 0 ? ResourceManager.dani_celestial_tex : ResourceManager.dani_lunar_tex); + + GL11.glPushMatrix(); + + standardAimingTransform(stack, + -1.5F * offset * i, -0.75F * offset, 1F * offset, + 0, -3.125 / 8D, 0.25); + + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + GL11.glShadeModel(GL11.GL_SMOOTH); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL", index); + double[] reloadMove = HbmAnimations.getRelevantTransformation("RELOAD_MOVE", index); + double[] reloadRot = HbmAnimations.getRelevantTransformation("RELOAD_ROT", index); + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP", index); + + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 10, 1, 0, 0); + + GL11.glTranslated(0, -2, -2); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 2, 2); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 9.25); + GL11.glRotated(-recoil[2] * 10, 1, 0, 0); + GL11.glRotated(90, 0, 1, 0); + this.renderSmokeNodes(gun.getConfig(stack, index).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glTranslated(reloadMove[0], reloadMove[1], reloadMove[2]); + + GL11.glRotated(reloadRot[0], 1, 0, 0); + GL11.glRotated(reloadRot[2] * i, 0, 0, 1); + GL11.glRotated(reloadRot[1] * i, 0, 1, 0); + ResourceManager.bio_revolver.renderPart("Grip"); + + GL11.glPushMatrix(); /// FRONT PUSH /// + GL11.glRotated(HbmAnimations.getRelevantTransformation("FRONT", index)[2], 1, 0, 0); + ResourceManager.bio_revolver.renderPart("Barrel"); + GL11.glPushMatrix(); /// LATCH PUSH /// + GL11.glTranslated(0, 2.3125, -0.875); + GL11.glRotated(HbmAnimations.getRelevantTransformation("LATCH", index)[2], 1, 0, 0); + GL11.glTranslated(0, -2.3125, 0.875); + ResourceManager.bio_revolver.renderPart("Latch"); + GL11.glPopMatrix(); /// LATCH POP /// + + GL11.glPushMatrix(); /// DRUM PUSH /// + GL11.glTranslated(0, 1, 0); + GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM", index)[2] * 60, 0, 0, 1); + GL11.glTranslated(0, -1, 0); + GL11.glTranslated(0, 0, HbmAnimations.getRelevantTransformation("DRUM_PUSH", index)[2]); + ResourceManager.bio_revolver.renderPart("Drum"); + GL11.glPopMatrix(); /// DRUM POP /// + + GL11.glPopMatrix(); /// FRONT POP /// + + GL11.glPushMatrix(); /// HAMMER /// + GL11.glTranslated(0, 0, -4.5); + GL11.glRotated(-45 + 45 * HbmAnimations.getRelevantTransformation("HAMMER", index)[2], 1, 0, 0); + GL11.glTranslated(0, 0, 4.5); + ResourceManager.bio_revolver.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 9.25); + GL11.glRotated(90, 0, 1, 0); + this.renderMuzzleFlash(gun.lastShot[index], 75, 7.5); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, 1, 3); + } + + @Override + public void setupThirdPersonAkimbo(ItemStack stack) { + super.setupThirdPersonAkimbo(stack); + GL11.glTranslated(0, 1, 3); + } + + @Override + public void setupInv(ItemStack stack) { + GL11.glScaled(1, 1, -1); + GL11.glTranslated(8, 6, 0); + double scale = 1.125D; + GL11.glScaled(scale, scale, scale); + } + + @Override + public void renderInv(ItemStack stack) { + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(2, 0, 0); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_celestial_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glPopMatrix(); + + GL11.glTranslated(0, 0, 5); + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(-90, 0, 1, 0); + GL11.glRotated(-90, 1, 0, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(-45, 0, 1, 0); + GL11.glTranslated(-2, 0, 0); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_lunar_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderEquipped(ItemStack stack) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_lunar_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderEquippedAkimbo(ItemStack stack) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_celestial_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_celestial_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java new file mode 100644 index 000000000..f4875de7f --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java @@ -0,0 +1,133 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderDebug extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 1); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.0F * offset, -0.75F * offset, 1F * offset, + 0, -3.875 / 8D, 0); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + + double[] equipSpin = HbmAnimations.getRelevantTransformation("ROTATE"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] reloadLift = HbmAnimations.getRelevantTransformation("RELOAD_LIFT"); + double[] reloadJolt = HbmAnimations.getRelevantTransformation("RELOAD_JOLT"); + double[] reloadTilt = HbmAnimations.getRelevantTransformation("RELAOD_TILT"); + double[] cylinderFlip = HbmAnimations.getRelevantTransformation("RELOAD_CYLINDER"); + double[] reloadBullets = HbmAnimations.getRelevantTransformation("RELOAD_BULLETS"); + + GL11.glRotated(equipSpin[0], 0, 0, 1); + + standardAimingTransform(stack, 0, 0, recoil[2], -recoil[2], 0, 0); + GL11.glRotated(recoil[2] * 10, 0, 0, 1); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + GL11.glTranslated(-9, 2.5, 0); + GL11.glRotated(recoil[2] * -10, 0, 0, 1); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glRotated(reloadLift[0], 0, 0, 1); + GL11.glTranslated(reloadJolt[0], 0, 0); + GL11.glRotated(reloadTilt[0], 1, 0, 0); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.debug_gun_tex); + ResourceManager.lilmac.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glRotated(cylinderFlip[0], 1, 0, 0); + ResourceManager.lilmac.renderPart("Pivot"); + GL11.glTranslated(0, 1.75, 0); + GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * -60, 1, 0, 0); + GL11.glTranslated(0, -1.75, 0); + ResourceManager.lilmac.renderPart("Cylinder"); + GL11.glTranslated(reloadBullets[0], reloadBullets[1], reloadBullets[2]); + if(HbmAnimations.getRelevantTransformation("RELOAD_BULLETS_CON")[0] != 1) + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); /// HAMMER /// + GL11.glTranslated(4, 1.25, 0); + GL11.glRotated(-30 + 30 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 0, 0, 1); + GL11.glTranslated(-4, -1.25, 0); + ResourceManager.lilmac.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0.125, 2.5, 0); + this.renderGapFlash(gun.lastShot[0]); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(-9.5, 2.5, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + //this.renderMuzzleFlash(gun.lastShot); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glTranslated(0, 1, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + + GL11.glRotated(90, 0, 1, 0); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.debug_gun_tex); + ResourceManager.lilmac.renderPart("Gun"); + ResourceManager.lilmac.renderPart("Cylinder"); + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + ResourceManager.lilmac.renderPart("Pivot"); + ResourceManager.lilmac.renderPart("Hammer"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDoubleBarrel.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDoubleBarrel.java new file mode 100644 index 000000000..5647da9ae --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDoubleBarrel.java @@ -0,0 +1,170 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class ItemRenderDoubleBarrel extends ItemRenderWeaponBase { + + protected ResourceLocation texture; + + public ItemRenderDoubleBarrel(ResourceLocation texture) { + this.texture = texture; + } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1F * offset, 2F * offset, + 0, -2 / 8D, 1); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] turn = HbmAnimations.getRelevantTransformation("TURN"); + double[] barrel = HbmAnimations.getRelevantTransformation("BARREL"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] shells = HbmAnimations.getRelevantTransformation("SHELLS"); + double[] shellFlip = HbmAnimations.getRelevantTransformation("SHELL_FLIP"); + double[] lever = HbmAnimations.getRelevantTransformation("LEVER"); + double[] buckle = HbmAnimations.getRelevantTransformation("BUCKLE"); + double[] no_ammo = HbmAnimations.getRelevantTransformation("NO_AMMO"); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glTranslated(recoil[0] * 3, recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 10, 1, 0, 0); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 4); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(turn[1], 0, 1, 0); + GL11.glTranslated(0, 0, 4); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(lift[0], -1, 0, 0); + GL11.glTranslated(0, 0, 4); + + ResourceManager.double_barrel.renderPart("Stock"); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, -0.4375, -0.875); + GL11.glRotated(barrel[0], 1, 0, 0); + GL11.glTranslated(0, 0.4375, 0.875); + + ResourceManager.double_barrel.renderPart("BarrelShort"); + if(!isSawedOff(stack)) ResourceManager.double_barrel.renderPart("Barrel"); + + GL11.glPushMatrix(); + GL11.glTranslated(0.75, 0, -0.6875); + GL11.glRotated(buckle[1], 0, 1, 0); + GL11.glTranslated(-0.75, 0, 0.6875); + ResourceManager.double_barrel.renderPart("Buckle"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(-0.3125, 0.3125, 0); + GL11.glRotated(lever[2], 0, 0, 1); + GL11.glTranslated(0.3125, -0.3125, 0); + ResourceManager.double_barrel.renderPart("Lever"); + GL11.glPopMatrix(); + + if(no_ammo[0] == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(shells[0], shells[1], shells[2]); + GL11.glTranslated(0, 0, -1); + GL11.glRotated(shellFlip[0], 1, 0, 0); + GL11.glTranslated(0, 0, 1); + ResourceManager.double_barrel.renderPart("Shells"); + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 8); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(2, 2, 2); + this.renderMuzzleFlash(gun.lastShot[0], 75, 5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 1, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + if(isSawedOff(stack)) { + double scale = 2D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-2, 0.5, 0); + } else { + double scale = 1.375D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, 0.5, 0); + } + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + ResourceManager.double_barrel.renderPart("Stock"); + ResourceManager.double_barrel.renderPart("BarrelShort"); + if(!isSawedOff(stack)) ResourceManager.double_barrel.renderPart("Barrel"); + ResourceManager.double_barrel.renderPart("Buckle"); + ResourceManager.double_barrel.renderPart("Lever"); + ResourceManager.double_barrel.renderPart("Shells"); + GL11.glShadeModel(GL11.GL_FLAT); + } + + public boolean isSawedOff(ItemStack stack) { + return stack.getItem() == ModItems.gun_double_barrel_sacred_dragon; + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java new file mode 100644 index 000000000..8991d63f6 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java @@ -0,0 +1,130 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderFatMan extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1.25F * offset, 0.5F * offset, + -1F * offset, -1.25F * offset, 0F * offset); + } + + protected static String label = "AUTO"; + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_tex); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + + boolean isLoaded = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null) > 0; + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] lid = HbmAnimations.getRelevantTransformation("LID"); + double[] nuke = HbmAnimations.getRelevantTransformation("NUKE"); + double[] piston = HbmAnimations.getRelevantTransformation("PISTON"); + double[] handle = HbmAnimations.getRelevantTransformation("HANDLE"); + double[] gauge = HbmAnimations.getRelevantTransformation("GAUGE"); + + GL11.glTranslated(0, 1, -2); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, -1, 2); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.fatman.renderPart("Launcher"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, handle[2]); + ResourceManager.fatman.renderPart("Handle"); + + GL11.glTranslated(0.4375, -0.875, 0); + GL11.glRotated(gauge[2], 0, 0, 1); + GL11.glTranslated(-0.4375, 0.875, 0); + ResourceManager.fatman.renderPart("Gauge"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0.25, 0.125, 0); + GL11.glRotated(lid[2], 0, 0, 1); + GL11.glTranslated(-0.25, -0.125, 0); + ResourceManager.fatman.renderPart("Lid"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, piston[2]); + if(!isLoaded && piston[2] == 0) GL11.glTranslated(0, 0, 3); + ResourceManager.fatman.renderPart("Piston"); + GL11.glPopMatrix(); + + if(isLoaded || nuke[0] != 0 || nuke[1] != 0 || nuke[2] != 0) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); + GL11.glPushMatrix(); + GL11.glTranslated(nuke[0], nuke[1], nuke[2]); + ResourceManager.fatman.renderPart("MiniNuke"); + GL11.glPopMatrix(); + } + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 2.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(-0.5, 0.5, -3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.375D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, -0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_tex); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.fatman.renderPart("Launcher"); + ResourceManager.fatman.renderPart("Handle"); + ResourceManager.fatman.renderPart("Gauge"); + ResourceManager.fatman.renderPart("Lid"); + ResourceManager.fatman.renderPart("Piston"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + if(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null) > 0) ResourceManager.fatman.renderPart("MiniNuke"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java new file mode 100644 index 000000000..5ec21511a --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java @@ -0,0 +1,122 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class ItemRenderFlamer extends ItemRenderWeaponBase { + + public ResourceLocation texture; + + public ItemRenderFlamer(ResourceLocation texture) { + this.texture = texture; + } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1.5F * offset, 2.75F * offset, + 0, -4.625 / 8D, 0.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] rotate = HbmAnimations.getRelevantTransformation("ROTATE"); + + GL11.glTranslated(0, 2, -6); + GL11.glRotated(-equip[0], 1, 0, 0); + GL11.glTranslated(0, -2, 6); + + GL11.glTranslated(0, 1, 0); + GL11.glRotated(rotate[2], 0, 0, 1); + GL11.glTranslated(0, -1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Gun"); + ResourceManager.flamethrower.renderPart("Gun"); + if(hasShield(stack)) ResourceManager.flamethrower.renderPart("HeatShield"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Tank"); + ResourceManager.flamethrower.renderPart("Tank"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Gauge"); + GL11.glTranslated(1.25, 1.25, 0); + IMagazine mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack); + GL11.glRotated(-135 + (mag.getAmount(stack, MainRegistry.proxy.me().inventory) * 270D / mag.getCapacity(stack)), 0, 0, 1); + GL11.glTranslated(-1.25, -1.25, 0); + ResourceManager.flamethrower.renderPart("Gauge"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -3, 4); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-1, 1, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + ResourceManager.flamethrower.renderPart("Gun"); + ResourceManager.flamethrower.renderPart("Tank"); + ResourceManager.flamethrower.renderPart("Gauge"); + if(hasShield(stack)) ResourceManager.flamethrower.renderPart("HeatShield"); + GL11.glShadeModel(GL11.GL_FLAT); + } + + public boolean hasShield(ItemStack stack) { + return stack.getItem() == ModItems.gun_flamer_daybreaker; + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java new file mode 100644 index 000000000..d97381832 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java @@ -0,0 +1,117 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderFlaregun extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1.5F * offset, 2F * offset, + 0, -5.5 / 8D, 0.5); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flaregun_tex); + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] hammer = HbmAnimations.getRelevantTransformation("HAMMER"); + double[] open = HbmAnimations.getRelevantTransformation("OPEN"); + double[] shell = HbmAnimations.getRelevantTransformation("SHELL"); + double[] flip = HbmAnimations.getRelevantTransformation("FLIP"); + + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 10, 1, 0, 0); + GL11.glRotated(flip[0], 1, 0, 0); + + GL11.glTranslated(0, 0, -8); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 8); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.flaregun.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.8125, -4); + GL11.glRotated(hammer[0] - 15, 1, 0, 0); + GL11.glTranslated(0, -1.8125, 4); + ResourceManager.flaregun.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 2.156, 1.78); + GL11.glRotated(open[0], 1, 0, 0); + GL11.glTranslated(0, -2.156, -1.78); + ResourceManager.flaregun.renderPart("Barrel"); + GL11.glTranslated(shell[0], shell[1], shell[2]); + ResourceManager.flaregun.renderPart("Flare"); + GL11.glPopMatrix(); + + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 4, 9); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 2.5D); + GL11.glTranslated(0, 0, 0.1); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 2D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.25, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flaregun_tex); + ResourceManager.flaregun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java new file mode 100644 index 000000000..a38c70419 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java @@ -0,0 +1,250 @@ +package com.hbm.render.item.weapon.sedna; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; +import com.hbm.util.EntityDamageUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; + +public class ItemRenderFolly extends ItemRenderWeaponBase { + + public static long timeAiming; + public static boolean jingle = false; + public static boolean wasAiming = false; + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2F : 2.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + float aim = 0.75F; + standardAimingTransform(stack, + -2.5F * offset, -1.5F * offset, 2.75F * offset, + -2 * aim, -1 * aim, 2.25F * offset); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.folly_tex); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] load = HbmAnimations.getRelevantTransformation("LOAD"); + double[] shell = HbmAnimations.getRelevantTransformation("SHELL"); + double[] screw = HbmAnimations.getRelevantTransformation("SCREW"); + double[] breech = HbmAnimations.getRelevantTransformation("BREECH"); + + GL11.glTranslated(0, 1, -4); + GL11.glRotated(-equip[0], 1, 0, 0); + GL11.glTranslated(0, -1, 4); + + GL11.glTranslated(0, -2, -2); + GL11.glRotated(load[0], 1, 0, 0); + GL11.glTranslated(0, 2, 2); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.folly.renderPart("Cannon"); + + GL11.glPushMatrix(); + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + ResourceManager.folly.renderPart("Barrel"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(shell[0], shell[1], shell[2]); + ResourceManager.folly.renderPart("Shell"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(breech[0], breech[1], breech[2]); + ResourceManager.folly.renderPart("Breech"); + GL11.glTranslated(0, 1, 0); + GL11.glRotated(screw[2], 0, 0, 1); + GL11.glTranslated(0, -1, 0); + ResourceManager.folly.renderPart("Cog"); + GL11.glPopMatrix(); + + + boolean isAiming = gun.prevAimingProgress >= 1F && gun.aimingProgress >= 1F; + if(isAiming & !wasAiming) timeAiming = System.currentTimeMillis(); + + if(isAiming) { + + String splash = getBootSplash(); + + if(!jingle && !splash.isEmpty()) { + MainRegistry.proxy.playSoundClient(player.posX, player.posY, player.posZ, "hbm:weapon.fire.vstar", 0.5F, 1F); + jingle = true; + } + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + float variance = 0.85F + player.getRNG().nextFloat() * 0.15F; + + if(System.currentTimeMillis() - timeAiming > 5000 && load[0] == 0) { + IMagazine mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack); + String msg = mag.getAmount(stack, player.inventory) > 0 ? "+" : "No ammo"; + GL11.glPushMatrix(); + float crosshairSize = 0.01F; + GL11.glTranslatef((font.getStringWidth(msg) / 2) * crosshairSize + 2, 1F + font.FONT_HEIGHT * crosshairSize / 2F, -2.75F); + GL11.glScalef(crosshairSize, -crosshairSize, crosshairSize); + GL11.glRotated(180D, 0, 1, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * crosshairSize); + font.drawString(msg, 0, 0, new Color(variance, variance * 0.5F, 0F).getRGB()); + GL11.glPopMatrix(); + } + + GL11.glPushMatrix(); + float splashSize = 0.02F; + GL11.glTranslatef((font.getStringWidth(splash) / 2) * splashSize + 2, 1F + font.FONT_HEIGHT * splashSize / 2F, -2.75F); + GL11.glScalef(splashSize, -splashSize, splashSize); + GL11.glRotated(180D, 0, 1, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * splashSize); + font.drawString(splash, 0, 0, new Color(variance, variance * 0.5F, 0F).getRGB()); + GL11.glPopMatrix(); + + List tty = getTTY(); + if(!tty.isEmpty()) { + GL11.glPushMatrix(); + float fontSize = 0.005F; + GL11.glTranslatef(2.5F, 1.375F, -2.75F); + GL11.glScalef(fontSize, -fontSize, fontSize); + GL11.glRotated(180D, 0, 1, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * fontSize); + for(String line : tty) { + font.drawString(line, 0, 0, new Color(variance, variance * 0.5F, 0F).getRGB()); + GL11.glTranslated(0, (font.FONT_HEIGHT + 2), 0); + } + GL11.glPopMatrix(); + } + + GL11.glColor3f(1F, 1F, 1F); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + + int brightness = player.worldObj.getLightBrightnessForSkyBlocks(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ), 0); + int j = brightness % 65536; + int k = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F); + } else { + jingle = false; + } + + wasAiming = isAiming; + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 3D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(-0.25, 0.5, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, -0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.folly_tex); + ResourceManager.folly.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + public static String getBootSplash() { + long now = System.currentTimeMillis(); + if(timeAiming + 5000 < now) return ""; + if(timeAiming + 3000 > now) return ""; + int splashIndex = (int)((now - timeAiming - 3000) * 35 / 2000) - 10; + //use the StringBuilder this, can't eat the drywall that, this used to be a free country + char[] letters = "VStarOS".toCharArray(); + String splash = ""; + for(int i = 0; i < letters.length; i++) { + if(i < splashIndex - 1) splash += EnumChatFormatting.LIGHT_PURPLE; + if(i == splashIndex - 1) splash += EnumChatFormatting.AQUA; + if(i == splashIndex) splash += EnumChatFormatting.WHITE; + if(i == splashIndex + 1) splash += EnumChatFormatting.AQUA; + if(i == splashIndex + 2) splash += EnumChatFormatting.LIGHT_PURPLE; + if(i > splashIndex + 2) splash += EnumChatFormatting.BLACK; + splash += letters[i]; + } + return splash; + } + + public static List getTTY() { + List tty = new ArrayList(); + long now = System.currentTimeMillis(); + int time = (int)((now - timeAiming)); + if(time < 3000) { + if(time > 250) tty.add(EnumChatFormatting.GREEN + "POST successful - Code 0"); + if(time > 500) tty.add(EnumChatFormatting.GREEN + "8,388,608 bytes of RAM installed"); + if(time > 500) tty.add(EnumChatFormatting.GREEN + "5,187,427 bytes available"); + if(time > 750) tty.add(EnumChatFormatting.GREEN + "Reticulating splines..."); + if(time > 1500) tty.add(EnumChatFormatting.GREEN + "No keyboard found!"); + if(time > 2000) tty.add(EnumChatFormatting.GREEN + "Booting from /dev/sda1..."); + } + if(time > 5000) { + EntityPlayer player = MainRegistry.proxy.me(); + MovingObjectPosition mop = EntityDamageUtil.getMouseOver(player, 250); + String target = EnumChatFormatting.GREEN + "Target: "; + if(mop.typeOfHit == mop.typeOfHit.MISS) target += "N/A"; + if(mop.typeOfHit == mop.typeOfHit.BLOCK) target += mop.blockX + "/" + mop.blockY + "/" + mop.blockZ; + if(mop.typeOfHit == mop.typeOfHit.ENTITY) target += mop.entityHit.getCommandSenderName(); + tty.add(target); + tty.add(EnumChatFormatting.GREEN + "Angle: " + ((int)(-player.rotationPitch * 100) / 100D)); + } + return tty; + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java new file mode 100644 index 000000000..82d881174 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java @@ -0,0 +1,154 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderG3 extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1F * offset, 2.75F * offset, + 0, -3.5625 / 8D, 1.75); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.g3_tex); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] speen = HbmAnimations.getRelevantTransformation("SPEEN"); + double[] bolt = HbmAnimations.getRelevantTransformation("BOLT"); + double[] handle = HbmAnimations.getRelevantTransformation("HANDLE"); + double[] bullet = HbmAnimations.getRelevantTransformation("BULLET"); + + GL11.glTranslated(0, -2, -6); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 6); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 0, 4); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.g3.renderPart("Rifle"); + ResourceManager.g3.renderPart("Stock"); + ResourceManager.g3.renderPart("Flash_Hider"); + ResourceManager.g3.renderPart("Trigger_Rifle.002"); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + GL11.glTranslated(0, -1.75, -0.5); + GL11.glRotated(speen[2], 0, 0, 1); + GL11.glRotated(speen[1], 0, 1, 0); + GL11.glTranslated(0, 1.75, 0.5); + ResourceManager.g3.renderPart("Magazine"); + if(bullet[0] == 0) ResourceManager.g3.renderPart("Bullet"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, bolt[2]); + ResourceManager.g3.renderPart("Bolt"); + GL11.glTranslated(0, 0.625, 0); + GL11.glRotated(handle[2], 0, 0, 1); + GL11.glTranslated(0, -0.625, 0); + ResourceManager.g3.renderPart("Handle"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -0.875, -3.5); + GL11.glRotated(-30 * (1 - ItemGunBaseNT.getMode(stack, 0)), 1, 0, 0); + GL11.glTranslated(0, 0.875, 3.5); + ResourceManager.g3.renderPart("Selector_Rifle.001"); + GL11.glPopMatrix(); + + double smokeScale = 0.75; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 13); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 12); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(-25 + gun.shotRand * 10, 1, 0, 0); + GL11.glScaled(0.75, 0.75, 0.75); + this.renderMuzzleFlash(gun.lastShot[0], 75, 10); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 2, 4); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 0.875D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.g3_tex); + ResourceManager.g3.renderPart("Rifle"); + ResourceManager.g3.renderPart("Stock"); + ResourceManager.g3.renderPart("Magazine"); + ResourceManager.g3.renderPart("Flash_Hider"); + ResourceManager.g3.renderPart("Bolt"); + ResourceManager.g3.renderPart("Handle"); + ResourceManager.g3.renderPart("Trigger_Rifle.002"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -0.875, -3.5); + GL11.glRotated(-30, 1, 0, 0); + GL11.glTranslated(0, 0.875, 3.5); + ResourceManager.g3.renderPart("Selector_Rifle.001"); + GL11.glPopMatrix(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java new file mode 100644 index 000000000..41c7f287d --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java @@ -0,0 +1,146 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderGreasegun extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1F * offset, 1.75F * offset, + 0, -2.625 / 8D, 1.125); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.greasegun_tex); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] stock = HbmAnimations.getRelevantTransformation("STOCK"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] flap = HbmAnimations.getRelevantTransformation("FLAP"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] handle = HbmAnimations.getRelevantTransformation("HANDLE"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] turn = HbmAnimations.getRelevantTransformation("TURN"); + double[] bullet = HbmAnimations.getRelevantTransformation("BULLET"); + + GL11.glTranslated(0, -3, -3); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 3, 3); + + GL11.glTranslated(0, -3, -3); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 3, 3); + + if(gun.aimingProgress < 1F) GL11.glRotated(turn[2], 0, 0, 1); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.greasegun.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, -4 - stock[2]); + ResourceManager.greasegun.renderPart("Stock"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.greasegun.renderPart("Magazine"); + if(bullet[0] != 1) ResourceManager.greasegun.renderPart("Bullet"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -1.4375, -0.125); + GL11.glRotated(handle[0], 1, 0, 0); + GL11.glTranslated(0, 1.4375, 0.125); + ResourceManager.greasegun.renderPart("Handle"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.53125, 0); + GL11.glRotated(flap[2], 0, 0, 1); + GL11.glTranslated(0, -0.5125, 0); + ResourceManager.greasegun.renderPart("Flap"); + GL11.glPopMatrix(); + + double smokeScale = 0.25; + + GL11.glPushMatrix(); + GL11.glTranslated(-0.25, 0, 1.5); + GL11.glRotated(turn[2], 0, 0, -1); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 1D); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 8); + GL11.glRotated(turn[2], 0, 0, -1); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 1D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 8); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(0.5, 0.5, 0.5); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, 1, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 2, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.greasegun_tex); + ResourceManager.greasegun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java new file mode 100644 index 000000000..f02c22562 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java @@ -0,0 +1,132 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderHangman extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -0.875F * offset, 1.75F * offset, + 0, -1.5 / 8D, 1.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hangman_tex); + float offset = 0.8F; + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] roll = HbmAnimations.getRelevantTransformation("ROLL"); + double[] turn = HbmAnimations.getRelevantTransformation("TURN"); + double[] smack = HbmAnimations.getRelevantTransformation("SMACK"); + double[] lid = HbmAnimations.getRelevantTransformation("LID"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] bullets = HbmAnimations.getRelevantTransformation("BULLETS"); + + GL11.glTranslated(1.5F * offset, 0, -1); + GL11.glRotated(turn[1], 0, 1, 0); + GL11.glTranslated(-1.5F * offset, 0, 1); + + GL11.glRotated(roll[2], 0, 0, 1); + GL11.glTranslated(smack[0], smack[1], smack[2]); + + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + GL11.glTranslated(0, -4, -10); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 4, 10); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.hangman.renderPart("Rifle"); + ResourceManager.hangman.renderPart("Internals"); + + GL11.glPushMatrix(); + //i give the fuck up + GL11.glTranslated(-2.1875, -1.75, 0); + GL11.glRotated(lid[2], 0, 0, 1); + GL11.glTranslated(2.1875, 1.75, 0); + ResourceManager.hangman.renderPart("Lid"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.hangman.renderPart("Magazine"); + if(bullets[0] == 0) ResourceManager.hangman.renderPart("Bullets"); + GL11.glPopMatrix(); + + double smokeScale = 1.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 29); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 29); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(2, 2, 2); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 4.25, 11); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 2.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hangman_tex); + ResourceManager.hangman.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java new file mode 100644 index 000000000..7e1d6e858 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java @@ -0,0 +1,178 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class ItemRenderHeavyRevolver extends ItemRenderWeaponBase { + + protected ResourceLocation texture; + + public ItemRenderHeavyRevolver(ResourceLocation texture) { + this.texture = texture; + } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * (isScoped(stack) ? 0.66F : 0.33F)); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 1); + + boolean isScoped = this.isScoped(stack); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.0F * offset, -0.75F * offset, 1F * offset, + 0, isScoped ? (-4.75 / 8D) : (-3.875 / 8D), isScoped ? -0.25 : 0); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + boolean isScoped = this.isScoped(stack); + if(isScoped && ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + + + double[] equipSpin = HbmAnimations.getRelevantTransformation("ROTATE"); + double[] spin = HbmAnimations.getRelevantTransformation("SPIN"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] reloadLift = HbmAnimations.getRelevantTransformation("RELOAD_LIFT"); + double[] reloadJolt = HbmAnimations.getRelevantTransformation("RELOAD_JOLT"); + double[] reloadTilt = HbmAnimations.getRelevantTransformation("RELAOD_TILT"); + double[] cylinderFlip = HbmAnimations.getRelevantTransformation("RELOAD_CYLINDER"); + double[] reloadBullets = HbmAnimations.getRelevantTransformation("RELOAD_BULLETS"); + + GL11.glRotated(spin[0], 0, 0, 1); + + GL11.glTranslated(6, -3, 0); + GL11.glRotated(equipSpin[0], 0, 0, 1); + GL11.glTranslated(-6, 3, 0); + + standardAimingTransform(stack, 0, 0, recoil[2], -recoil[2], 0, 0); + GL11.glRotated(recoil[2] * 10, 0, 0, 1); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + GL11.glTranslated(-9, 2.5, 0); + GL11.glRotated(recoil[2] * -10, 0, 0, 1); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glRotated(reloadLift[0], 0, 0, 1); + GL11.glTranslated(reloadJolt[0], 0, 0); + GL11.glRotated(reloadTilt[0], 1, 0, 0); + + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + ResourceManager.lilmac.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glRotated(cylinderFlip[0], 1, 0, 0); + ResourceManager.lilmac.renderPart("Pivot"); + GL11.glTranslated(0, 1.75, 0); + GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * -60, 1, 0, 0); + GL11.glTranslated(0, -1.75, 0); + ResourceManager.lilmac.renderPart("Cylinder"); + GL11.glTranslated(reloadBullets[0], reloadBullets[1], reloadBullets[2]); + if(HbmAnimations.getRelevantTransformation("RELOAD_BULLETS_CON")[0] != 1) + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); /// HAMMER /// + GL11.glTranslated(4, 1.25, 0); + GL11.glRotated(-30 + 30 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 0, 0, 1); + GL11.glTranslated(-4, -1.25, 0); + ResourceManager.lilmac.renderPart("Hammer"); + GL11.glPopMatrix(); + + if(isScoped) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_scope_tex); + ResourceManager.lilmac.renderPart("Scope"); + } + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0.125, 2.5, 0); + this.renderGapFlash(gun.lastShot[0]); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(-9.5, 2.5, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + //this.renderMuzzleFlash(gun.lastShot); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glTranslated(0, 1, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + if(isScoped(stack)) { + double scale = 1.125D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, -0.5, 0); + } else { + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + } + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + + GL11.glRotated(90, 0, 1, 0); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + ResourceManager.lilmac.renderPart("Gun"); + ResourceManager.lilmac.renderPart("Cylinder"); + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + ResourceManager.lilmac.renderPart("Pivot"); + ResourceManager.lilmac.renderPart("Hammer"); + if(isScoped(stack)) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_scope_tex); + ResourceManager.lilmac.renderPart("Scope"); + } + GL11.glShadeModel(GL11.GL_FLAT); + } + + public boolean isScoped(ItemStack stack) { + return stack.getItem() == ModItems.gun_heavy_revolver_lilmac; + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java new file mode 100644 index 000000000..ff014f479 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java @@ -0,0 +1,157 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderHenry extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1F * offset, 1.75F * offset, + 0, -5 / 8D, 1); + + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + double r = -2.5 * aimingProgress; + GL11.glRotated(r, 1, 0, 0); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.henry_tex); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] sight = HbmAnimations.getRelevantTransformation("SIGHT"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] hammer = HbmAnimations.getRelevantTransformation("HAMMER"); + double[] lever = HbmAnimations.getRelevantTransformation("LEVER"); + double[] turn = HbmAnimations.getRelevantTransformation("TURN"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] twist = HbmAnimations.getRelevantTransformation("TWIST"); + double[] bullet = HbmAnimations.getRelevantTransformation("BULLET"); + double[] yeet = HbmAnimations.getRelevantTransformation("YEET"); + double[] roll = HbmAnimations.getRelevantTransformation("ROLL"); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glTranslated(recoil[0] * 2, recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 5, 1, 0, 0); + GL11.glRotated(turn[2], 0, 0, 1); + + GL11.glTranslated(yeet[0], yeet[1], yeet[2]); + + GL11.glTranslated(0, 1, 0); + GL11.glRotated(roll[2], 0, 0, 1); + GL11.glTranslated(0, -1, 0); + + GL11.glTranslated(0, -4, 4); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 4, -4); + + GL11.glTranslated(0, 2, -4); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, -2, 4); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 8); + GL11.glRotated(turn[2], 0, 0, -1); + GL11.glRotated(90, 0, 1, 0); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.25D); + GL11.glPopMatrix(); + + ResourceManager.henry.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.25, -0.1875); + GL11.glRotated(sight[0], 1, 0, 0); + GL11.glTranslated(0, -1.25, 0.1875); + ResourceManager.henry.renderPart("Sight"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.625, -3); + GL11.glRotated(-30 + hammer[0], 1, 0, 0); + GL11.glTranslated(0, -0.625, 3); + ResourceManager.henry.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, -2.3125); + GL11.glRotated(lever[0], 1, 0, 0); + GL11.glTranslated(0, -0.25, 2.3125); + ResourceManager.henry.renderPart("Lever"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 0); + GL11.glRotated(twist[2], 0, 0, 1); + GL11.glTranslated(0, -1, 0); + ResourceManager.henry.renderPart("Front"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(bullet[0], bullet[1], bullet[2] - 1); + ResourceManager.henry.renderPart("Bullet"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 8); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[0], 75, 5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.25, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.henry_tex); + ResourceManager.henry.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java new file mode 100644 index 000000000..1a3f532a5 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java @@ -0,0 +1,141 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderLAG extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1F * offset, 1.5F * offset, + 0, -3.375 / 8D, 0.5); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mike_hawk_tex); + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + //double[] hammer = HbmAnimations.getRelevantTransformation("HAMMER"); + double[] addTrans = HbmAnimations.getRelevantTransformation("ADD_TRANS"); + double[] addRot = HbmAnimations.getRelevantTransformation("ADD_ROT"); + //Animation anim = HbmAnimations.getRelevantAnim(0); + + GL11.glTranslated(4, -4, 0); + GL11.glRotated(-equip[0], 0, 0, 1); + GL11.glTranslated(-4, 4, 0); + + GL11.glTranslated(addTrans[0], addTrans[1], addTrans[2]); + GL11.glRotated(addRot[2], 0, 0, 1); + GL11.glRotated(addRot[1], 0, 1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Grip"); + ResourceManager.mike_hawk.renderPart("Grip"); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Slide"); + + /*if(anim != null) { + BusAnimationSequence slideSeq = anim.animation.getBus("Hammer"); + if(slideSeq != null) GL11.glTranslated(0, 0.75, 0); + }*/ + + ResourceManager.mike_hawk.renderPart("Slide"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(3.125, 0.125, 0); + GL11.glRotated(-25, 0, 0, 1); + GL11.glTranslated(-3.125, -0.125, 0); + HbmAnimations.applyRelevantTransformation("Hammer"); + ResourceManager.mike_hawk.renderPart("Hammer"); + GL11.glPopMatrix(); + + if(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null) > 0) { + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Bullet"); + ResourceManager.mike_hawk.renderPart("Bullet"); + GL11.glPopMatrix(); + } + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Magazine"); + ResourceManager.mike_hawk.renderPart("Magazine"); + GL11.glPopMatrix(); + + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(-10.25, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(-10.25, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, 1, 1); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(2.5, 1, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glRotated(90, 0, 1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mike_hawk_tex); + ResourceManager.mike_hawk.renderPart("Grip"); + ResourceManager.mike_hawk.renderPart("Slide"); + ResourceManager.mike_hawk.renderPart("Hammer"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java new file mode 100644 index 000000000..8f2e30bff --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java @@ -0,0 +1,107 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderLasrifle extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.75F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1.5F * offset, 2.5F * offset, + 0, -7.375 / 8D, 0.75); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + if(ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lasrifle_tex); + double scale = 0.3125D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] lever = HbmAnimations.getRelevantTransformation("LEVER"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + + GL11.glTranslated(0, -1, -6); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 6); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.lasrifle.renderPart("Gun"); + ResourceManager.lasrifle.renderPart("Barrel"); + ResourceManager.lasrifle.renderPart("Stock"); + ResourceManager.lasrifle.renderPart("Scope"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -0.375, 2.375); + GL11.glRotated(lever[0], 1, 0, 0); + GL11.glTranslated(0, 0.375, -2.375); + ResourceManager.lasrifle.renderPart("Lever"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.lasrifle.renderPart("Battery"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0, 4); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.0625D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0.5, 0, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lasrifle_tex); + ResourceManager.lasrifle.renderPart("Gun"); + ResourceManager.lasrifle.renderPart("Barrel"); + ResourceManager.lasrifle.renderPart("Stock"); + ResourceManager.lasrifle.renderPart("Scope"); + ResourceManager.lasrifle.renderPart("Lever"); + ResourceManager.lasrifle.renderPart("Battery"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java new file mode 100644 index 000000000..58cdfeb8e --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java @@ -0,0 +1,154 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderLiberator extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1.25F * offset, 1.25F * offset, + 0, -4.625 / 8D, 0.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.liberator_tex); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] latch = HbmAnimations.getRelevantTransformation("LATCH"); + double[] brk = HbmAnimations.getRelevantTransformation("BREAK"); + double[] shell1 = HbmAnimations.getRelevantTransformation("SHELL1"); + double[] shell2 = HbmAnimations.getRelevantTransformation("SHELL2"); + double[] shell3 = HbmAnimations.getRelevantTransformation("SHELL3"); + double[] shell4 = HbmAnimations.getRelevantTransformation("SHELL4"); + + GL11.glTranslated(0, -1, -3); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 3); + + GL11.glTranslated(0, -3, -3); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 3, 3); + + GL11.glTranslated(recoil[0] * 2, recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 10, 1, 0, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.liberator.renderPart("Gun"); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, -0.5, 0.75); + GL11.glRotated(brk[0], 1, 0, 0); + GL11.glTranslated(0, 0.5, -0.75); + ResourceManager.liberator.renderPart("Barrel"); + + GL11.glPushMatrix(); + GL11.glTranslated(shell1[0], shell1[1], shell1[2]); + ResourceManager.liberator.renderPart("Shell1"); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslated(shell2[0], shell2[1], shell2[2]); + ResourceManager.liberator.renderPart("Shell2"); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslated(shell3[0], shell3[1], shell3[2]); + ResourceManager.liberator.renderPart("Shell3"); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslated(shell4[0], shell4[1], shell4[2]); + ResourceManager.liberator.renderPart("Shell4"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.15625, 0.75); + GL11.glRotated(latch[0], 1, 0, 0); + GL11.glTranslated(0, -1.15625, -0.75); + ResourceManager.liberator.renderPart("Latch"); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + double smokeScale = 0.375; + + GunConfig cfg = gun.getConfig(stack, 0); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 7.25); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + GL11.glTranslated(0, 0, 0.25 / smokeScale); + this.renderSmokeNodes(cfg.smokeNodes, 1D); + GL11.glTranslated(0, 0, -0.5 / smokeScale); + this.renderSmokeNodes(cfg.smokeNodes, 1D); + GL11.glTranslated(0, 0.5 / smokeScale, 0); + this.renderSmokeNodes(cfg.smokeNodes, 1D); + GL11.glTranslated(0, 0, 0.5 / smokeScale); + this.renderSmokeNodes(cfg.smokeNodes, 1D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 8); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(1.5, 1.5, 1.5); + this.renderMuzzleFlash(gun.lastShot[0], 75, 5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, 1, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.liberator_tex); + ResourceManager.liberator.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java new file mode 100644 index 000000000..80ebca69f --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java @@ -0,0 +1,106 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderM2 extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -2.5F * offset, 1.75F * offset, + 0, -12.5 / 8D, 1.75); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.greasegun_tex); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + + GL11.glTranslated(0, 1, -2.25); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, -1, 2.25); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + GL11.glRotated(180, 0, 1, 0); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.m2_tex); + ResourceManager.m2.renderAll(); + GL11.glPopMatrix(); + + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.625, 5); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.375D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.625, 5); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(0.5, 0.5, 0.5); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0.5, -2, 3); + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 2.625D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0.5, -1.25, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glRotated(180, 0, 1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.m2_tex); + ResourceManager.m2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java new file mode 100644 index 000000000..81ca1a2ec --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java @@ -0,0 +1,168 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class ItemRenderMaresleg extends ItemRenderWeaponBase { + + public ResourceLocation texture; + + public ItemRenderMaresleg(ResourceLocation texture) { + this.texture = texture; + } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1F * offset, 2F * offset, + 0, -3.875 / 8D, 1); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + boolean shortened = getShort(stack); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] lever = HbmAnimations.getRelevantTransformation("LEVER"); + double[] turn = HbmAnimations.getRelevantTransformation("TURN"); + double[] flip = HbmAnimations.getRelevantTransformation("FLIP"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] shell = HbmAnimations.getRelevantTransformation("SHELL"); + double[] flag = HbmAnimations.getRelevantTransformation("FLAG"); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glTranslated(recoil[0] * 2, recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 5, 1, 0, 0); + GL11.glRotated(turn[2], 0, 0, 1); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 0, 4); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 4); + + GL11.glTranslated(0, 0, -2); + GL11.glRotated(flip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 2); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, shortened ? 3.75 : 8); + GL11.glRotated(turn[2], 0, 0, -1); + GL11.glRotated(flip[0], 1, 0, 0); + GL11.glRotated(90, 0, 1, 0); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.25D); + GL11.glPopMatrix(); + + ResourceManager.maresleg.renderPart("Gun"); + if(!shortened) { + ResourceManager.maresleg.renderPart("Stock"); + ResourceManager.maresleg.renderPart("Barrel"); + } + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.125, -2.875); + GL11.glRotated(lever[0], 1, 0, 0); + GL11.glTranslated(0, -0.125, 2.875); + ResourceManager.maresleg.renderPart("Lever"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(shell[0], shell[1] - 0.75, shell[2]); + ResourceManager.maresleg.renderPart("Shell"); + GL11.glPopMatrix(); + + if(flag[0] != 0) { + GL11.glPushMatrix(); + GL11.glTranslated(0, -0.5, 0); + ResourceManager.maresleg.renderPart("Shell"); + GL11.glPopMatrix(); + } + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, shortened ? 3.75 : 8); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[0], 75, 5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.25, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + + if(getShort(stack)) { + double scale = 2.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-1, 0, 0); + } else { + double scale = 1.4375D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0.5, 0); + } + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + ResourceManager.maresleg.renderPart("Gun"); + ResourceManager.maresleg.renderPart("Lever"); + if(!getShort(stack)) { + ResourceManager.maresleg.renderPart("Stock"); + ResourceManager.maresleg.renderPart("Barrel"); + } + GL11.glShadeModel(GL11.GL_FLAT); + } + + public boolean getShort(ItemStack stack) { + return stack.getItem() == ModItems.gun_maresleg_broken; + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java new file mode 100644 index 000000000..5a60a4aaf --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java @@ -0,0 +1,180 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderMareslegAkimbo extends ItemRenderWeaponBase { + + @Override public boolean isAkimbo() { return true; } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + float offset = 0.8F; + + for(int i = -1; i <= 1; i += 2) { + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.maresleg_tex); + GL11.glPushMatrix(); + + int index = i == -1 ? 0 : 1; + + standardAimingTransform(stack, -1.5F * offset * i, -1F * offset, 2F * offset, 0, -3.875 / 8D, 1); + + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP", index); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL", index); + double[] lever = HbmAnimations.getRelevantTransformation("LEVER", index); + double[] turn = HbmAnimations.getRelevantTransformation("TURN", index); + double[] flip = HbmAnimations.getRelevantTransformation("FLIP", index); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT", index); + double[] shell = HbmAnimations.getRelevantTransformation("SHELL", index); + double[] flag = HbmAnimations.getRelevantTransformation("FLAG", index); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glTranslated(recoil[0] * 2, recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 5, 1, 0, 0); + GL11.glRotated(turn[2], 0, 0, 1); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 0, 4); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 4); + + GL11.glTranslated(0, 0, -2); + GL11.glRotated(flip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 2); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 3.75); + GL11.glRotated(turn[2], 0, 0, -1); + GL11.glRotated(flip[0], 1, 0, 0); + GL11.glRotated(90, 0, 1, 0); + this.renderSmokeNodes(gun.getConfig(stack, index).smokeNodes, 0.25D); + GL11.glPopMatrix(); + + ResourceManager.maresleg.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.125, -2.875); + GL11.glRotated(lever[0], 1, 0, 0); + GL11.glTranslated(0, -0.125, 2.875); + ResourceManager.maresleg.renderPart("Lever"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(shell[0], shell[1] - 0.75, shell[2]); + ResourceManager.maresleg.renderPart("Shell"); + GL11.glPopMatrix(); + + if(flag[0] != 0) { + GL11.glPushMatrix(); + GL11.glTranslated(0, -0.5, 0); + ResourceManager.maresleg.renderPart("Shell"); + GL11.glPopMatrix(); + } + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 3.75); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[index], 75, 5); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.25, 3); + } + + @Override + public void setupThirdPersonAkimbo(ItemStack stack) { + super.setupThirdPersonAkimbo(stack); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.25, 3); + } + + @Override + public void setupInv(ItemStack stack) { + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glScaled(1, 1, -1); + GL11.glTranslated(8, 8, 0); + double scale = 2.5D; + GL11.glScaled(scale, scale, scale); + } + + @Override + public void renderInv(ItemStack stack) { + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.maresleg_tex); + + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-1, 0, 0); + ResourceManager.maresleg.renderPart("Gun"); + ResourceManager.maresleg.renderPart("Lever"); + GL11.glPopMatrix(); + + GL11.glTranslated(0, 0, 5); + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(-90, 0, 1, 0); + GL11.glRotated(-90, 1, 0, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(-45, 0, 1, 0); + GL11.glTranslated(1, 0, 0); + ResourceManager.maresleg.renderPart("Gun"); + ResourceManager.maresleg.renderPart("Lever"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.maresleg_tex); + ResourceManager.maresleg.renderPart("Gun"); + ResourceManager.maresleg.renderPart("Lever"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java new file mode 100644 index 000000000..ed44d201f --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java @@ -0,0 +1,115 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class ItemRenderMinigun extends ItemRenderWeaponBase { + + protected ResourceLocation texture; + + public ItemRenderMinigun(ResourceLocation texture) { + this.texture = texture; + } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.75F * offset, -1.75F * offset, 3.5F * offset, + 0, -6.25 / 8D, 1); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] rotate = HbmAnimations.getRelevantTransformation("ROTATE"); + + GL11.glTranslated(0, 3, -6); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, -3, 6); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.minigun.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glRotated(rotate[2], 0, 0, 1); + ResourceManager.minigun.renderPart("Barrels"); + GL11.glPopMatrix(); + + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(-2, 1.25, -3.5); + GL11.glRotated(45, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 12); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(gun.shotRand * 90, 1, 0, 0); + GL11.glScaled(1.5, 1.5, 1.5); + this.renderMuzzleFlash(gun.lastShot[0], 75, 5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(1, -3.5, 8); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 0.875D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.25, 0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + ResourceManager.minigun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMissileLauncher.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMissileLauncher.java new file mode 100644 index 000000000..f5d651a4e --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMissileLauncher.java @@ -0,0 +1,149 @@ +package com.hbm.render.item.weapon.sedna; + +import java.awt.Color; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; + +public class ItemRenderMissileLauncher extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1.25F * offset, 0.5F * offset, + -1F * offset, -1.25F * offset, 0F * offset); + } + + protected static String label = "AUTO"; + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.missile_launcher_tex); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] barrel = HbmAnimations.getRelevantTransformation("BARREL"); + double[] open = HbmAnimations.getRelevantTransformation("OPEN"); + double[] missile = HbmAnimations.getRelevantTransformation("MISSILE"); + + GL11.glTranslated(0, -2, -2); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 2); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.missile_launcher.renderPart("Launcher"); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, 0.25, 1.6875); + GL11.glRotated(open[0], 1, 0, 0); + GL11.glTranslated(0, -0.25, -1.6875); + + ResourceManager.missile_launcher.renderPart("Front"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, barrel[2]); + ResourceManager.missile_launcher.renderPart("Barrel"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(missile[0], missile[1], missile[2]); + ResourceManager.missile_launcher.renderPart("Missile"); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + + if(gun.prevAimingProgress >= 1F && gun.aimingProgress >= 1F) { + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + float f3 = 0.04F; + GL11.glTranslatef(0.9375F, 2.25F, -0.5625F + (font.getStringWidth(label) / 2) * f3); + GL11.glScalef(f3, -f3, f3); + GL11.glRotated(90D, 0, 1, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * f3); + float variance = 0.7F + player.getRNG().nextFloat() * 0.3F; + font.drawString(label, 0, 0, new Color(variance, 0F, 0F).getRGB()); + GL11.glColor3f(1F, 1F, 1F); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + + int brightness = player.worldObj.getLightBrightnessForSkyBlocks(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ), 0); + int j = brightness % 65536; + int k = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F); + } + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 6.75); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(gun.shotRand * 90, 1, 0, 0); + GL11.glScaled(0.75, 0.75, 0.75); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 2.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -0.5, -2); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, -0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.missile_launcher_tex); + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missile_launcher.renderPart("Launcher"); + ResourceManager.missile_launcher.renderPart("Barrel"); + ResourceManager.missile_launcher.renderPart("Front"); + if(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null) > 0) ResourceManager.missile_launcher.renderPart("Missile"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java new file mode 100644 index 000000000..f0e5380ff --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java @@ -0,0 +1,103 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderPanzerschreck extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -2.75F * offset, -2F * offset, 2.5F * offset, + -0.9375, -9.25 / 8D, 0.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.panzerschreck_tex); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] reload = HbmAnimations.getRelevantTransformation("RELOAD"); + double[] rocket = HbmAnimations.getRelevantTransformation("ROCKET"); + + GL11.glTranslated(0, -1, -1); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 1); + + GL11.glTranslated(0, -4, -3); + GL11.glRotated(reload[0], 1, 0, 0); + GL11.glTranslated(0, 4, 3); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.panzerschreck.renderPart("Tube"); + ResourceManager.panzerschreck.renderPart("Shield"); + + GL11.glPushMatrix(); + GL11.glTranslated(rocket[0], rocket[1], rocket[2]); + ResourceManager.panzerschreck.renderPart("Rocket"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 6.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(0.75, 0.75, 0.75); + this.renderMuzzleFlash(gun.lastShot[0], 150, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 3D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.5, 1); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.panzerschreck_tex); + ResourceManager.panzerschreck.renderPart("Tube"); + ResourceManager.panzerschreck.renderPart("Shield"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java new file mode 100644 index 000000000..7f06a4509 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java @@ -0,0 +1,135 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderPepperbox extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 1.5); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -0.75F * offset, 1F * offset, + 0, -2.5 / 8D, 0.5); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] cylinder = HbmAnimations.getRelevantTransformation("ROTATE"); + double[] hammer = HbmAnimations.getRelevantTransformation("HAMMER"); + double[] trigger = HbmAnimations.getRelevantTransformation("TRIGGER"); + double[] translate = HbmAnimations.getRelevantTransformation("TRANSLATE"); + double[] loader = HbmAnimations.getRelevantTransformation("LOADER"); + double[] shot = HbmAnimations.getRelevantTransformation("SHOT"); + + GL11.glTranslated(translate[0], translate[1], translate[2]); + + GL11.glTranslated(0, 0, -5); + GL11.glRotated(recoil[0], -1, 0, 0); + GL11.glTranslated(0, 0, 5); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 7); + GL11.glRotated(90, 0, 1, 0); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.pepperbox_tex); + + if(loader[0] != 0 || loader[1] != 0 || loader[2] != 0) { + GL11.glPushMatrix(); + GL11.glTranslated(loader[0], loader[1], loader[2]); + ResourceManager.pepperbox.renderPart("Speedloader"); + if(shot[0] != 0) ResourceManager.pepperbox.renderPart("Shot"); + GL11.glPopMatrix(); + } + + ResourceManager.pepperbox.renderPart("Grip"); + + GL11.glPushMatrix(); + GL11.glRotated(cylinder[0], 0, 0, 1); + ResourceManager.pepperbox.renderPart("Cylinder"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.375, -1.875); + GL11.glRotated(hammer[0], 1, 0, 0); + GL11.glTranslated(0, -0.375, 1.875); + ResourceManager.pepperbox.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, -trigger[0] * 0.5); + ResourceManager.pepperbox.renderPart("Trigger"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 7); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[0]); + GL11.glRotated(45, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[0]); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, 1, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0.5, 0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.pepperbox_tex); + ResourceManager.pepperbox.renderPart("Grip"); + ResourceManager.pepperbox.renderPart("Cylinder"); + ResourceManager.pepperbox.renderPart("Hammer"); + ResourceManager.pepperbox.renderPart("Trigger"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderQuadro.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderQuadro.java new file mode 100644 index 000000000..8e65e5edf --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderQuadro.java @@ -0,0 +1,142 @@ +package com.hbm.render.item.weapon.sedna; + +import java.awt.Color; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; + +public class ItemRenderQuadro extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -2.5F * offset, -3.5F * offset, 2.5F * offset, + -1.5F * offset, -3F * offset, 2.5F * offset); + } + + protected static String label = ">> <<"; + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] reloadPush = HbmAnimations.getRelevantTransformation("RELOAD_PUSH"); + double[] reloadRotate = HbmAnimations.getRelevantTransformation("RELOAD_ROTATE"); + + GL11.glTranslated(0, -1, -1); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 1); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glTranslated(0, -1, -1); + GL11.glRotated(reloadRotate[2], 1, 0, 0); + GL11.glTranslated(0, 1, 1); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.quadro_tex); + ResourceManager.quadro.renderPart("Launcher"); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, -1, 0); + GL11.glTranslated(0, 3, 0); + GL11.glRotated(reloadPush[1] * 30, 1, 0, 0); + GL11.glTranslated(0, -3, 0); + GL11.glTranslated(0, 0, reloadPush[0] * 3); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.quadro_rocket_tex); + ResourceManager.quadro.renderPart("Rockets"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + if(gun.prevAimingProgress >= 1F && gun.aimingProgress >= 1F) { + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + float f3 = 0.04F; + GL11.glTranslatef(-0.375F, 2.25F, 0.875F); + GL11.glRotated(180D + (System.currentTimeMillis() / 2) % 360D, 0, -1, 0); + GL11.glTranslated(-(font.getStringWidth(label) / 2) * f3, 0, 0); + GL11.glScalef(f3, -f3, f3); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * f3); + float variance = 0.7F + player.getRNG().nextFloat() * 0.3F; + font.drawString(label, 0, 0, new Color(0F, variance, variance).getRGB()); + GL11.glColor3f(1F, 1F, 1F); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + + int brightness = player.worldObj.getLightBrightnessForSkyBlocks(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ), 0); + int j = brightness % 65536; + int k = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F); + } + + GL11.glPushMatrix(); + GL11.glTranslated(-1, 0.75, 6.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(0.75, 0.75, 0.75); + this.renderMuzzleFlash(gun.lastShot[0], 150, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 7.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -0.5, -0.25); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 4.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, -1, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.quadro_tex); + ResourceManager.quadro.renderPart("Launcher"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java new file mode 100644 index 000000000..baff66af8 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java @@ -0,0 +1,136 @@ +package com.hbm.render.item.weapon.sedna; + +import java.awt.Color; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.particle.SpentCasing; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderSPAS12 extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1.75F * offset, -0.5F * offset, + 0, 0, 0); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.spas_12_tex); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(180, 0, 1, 0); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + + GL11.glRotated(equip[0], 1, 0, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + HbmAnimations.applyRelevantTransformation("MainBody"); + ResourceManager.spas_12.renderPart("MainBody"); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("PumpGrip"); + ResourceManager.spas_12.renderPart("PumpGrip"); + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); + + HbmAnimations.applyRelevantTransformation("Shell"); + SpentCasing casing = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getCasing(stack, MainRegistry.proxy.me().inventory); + int color0 = SpentCasing.COLOR_CASE_BRASS; + int color1 = SpentCasing.COLOR_CASE_BRASS; + + if(casing != null) { + int[] colors = casing.getColors(); + color0 = colors[0]; + color1 = colors[colors.length > 1 ? 1 : 0]; + } + + Color shellColor = new Color(color1); + GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); + ResourceManager.spas_12.renderPart("Shell"); + + Color shellForeColor = new Color(color0); + GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); + ResourceManager.spas_12.renderPart("ShellFore"); + + GL11.glColor3f(1F, 1F, 1F); + + double smokeScale = 0.25; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, -11); + GL11.glRotated(-90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.75D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, -11); + GL11.glRotated(-90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -0.75, 0); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 2D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(4.25, -0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glRotated(180, 0, 1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.spas_12_tex); + ResourceManager.spas_12.renderPart("MainBody"); + ResourceManager.spas_12.renderPart("PumpGrip"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java new file mode 100644 index 000000000..1d7c1e123 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java @@ -0,0 +1,181 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderSTG77 extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 0.5F : -0.25F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1F * offset, 2.5F * offset, + 0, -5.75 / 8D, 2); + } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.66F); + } + + @Override + protected float getBaseFOV(ItemStack stack) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return 70F - aimingProgress * 65; + } + + @Override + public void renderFirstPerson(ItemStack stack) { + if(ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.stg77_tex); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] bolt = HbmAnimations.getRelevantTransformation("BOLT"); + double[] handle = HbmAnimations.getRelevantTransformation("HANDLE"); + double[] safety = HbmAnimations.getRelevantTransformation("SAFETY"); + + double[] inspectGun = HbmAnimations.getRelevantTransformation("INSPECT_GUN"); + double[] inspectBarrel = HbmAnimations.getRelevantTransformation("INSPECT_BARREL"); + double[] inspectMove = HbmAnimations.getRelevantTransformation("INSPECT_MOVE"); + double[] inspectLever = HbmAnimations.getRelevantTransformation("INSPECT_LEVER"); + + GL11.glTranslated(0, -1, -4); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 4); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 0, 4); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + + //GL11.glRotated(-70, 0, 0, 1); + //GL11.glRotated(15, 1, 0, 0); + GL11.glRotated(inspectGun[2], 0, 0, 1); + GL11.glRotated(inspectGun[0], 1, 0, 0); + + HbmAnimations.applyRelevantTransformation("Gun"); + ResourceManager.stg77.renderPart("Gun"); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Magazine"); + ResourceManager.stg77.renderPart("Magazine"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glRotated(inspectLever[2], 0, 0, 1); + HbmAnimations.applyRelevantTransformation("Lever"); + ResourceManager.stg77.renderPart("Lever"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, bolt[2]); + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Breech"); + ResourceManager.stg77.renderPart("Breech"); + GL11.glPopMatrix(); + GL11.glTranslated(0.125, 0, 0); + GL11.glRotated(handle[2], 0, 0, 1); + GL11.glTranslated(-0.125, 0, 0); + HbmAnimations.applyRelevantTransformation("Handle"); + ResourceManager.stg77.renderPart("Handle"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(safety[0], 0, 0); + HbmAnimations.applyRelevantTransformation("Safety"); + ResourceManager.stg77.renderPart("Safety"); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + //GL11.glTranslated(2, 0.75, 0); + //GL11.glRotated(15, 1, 0, 0); + //GL11.glRotated(0, 0, 0, 1); + + GL11.glTranslated(inspectMove[0], inspectMove[1], inspectMove[2]); + GL11.glRotated(inspectBarrel[0], 1, 0, 0); + GL11.glRotated(inspectBarrel[2], 0, 0, 1); + HbmAnimations.applyRelevantTransformation("Gun"); + HbmAnimations.applyRelevantTransformation("Barrel"); + ResourceManager.stg77.renderPart("Barrel"); + GL11.glPopMatrix(); + + double smokeScale = 0.75; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 8); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 7.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.25, 0.25, 0.25); + GL11.glRotated(-5 + gun.shotRand * 10, 1, 0, 0); + this.renderGapFlash(gun.lastShot[0]); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 1, 2); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.375D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.stg77_tex); + ResourceManager.stg77.renderPart("Gun"); + ResourceManager.stg77.renderPart("Barrel"); + ResourceManager.stg77.renderPart("Lever"); + ResourceManager.stg77.renderPart("Magazine"); + ResourceManager.stg77.renderPart("Safety"); + ResourceManager.stg77.renderPart("Handle"); + ResourceManager.stg77.renderPart("Breech"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java new file mode 100644 index 000000000..fbb11f533 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java @@ -0,0 +1,170 @@ +package com.hbm.render.item.weapon.sedna; + +import java.awt.Color; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class ItemRenderShredder extends ItemRenderWeaponBase { + + protected ResourceLocation texture; + + public ItemRenderShredder(ResourceLocation texture) { + this.texture = texture; + } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1.25F * offset, 1.5F * offset, + 0, -6.25 / 8D, 0.5); + } + + protected static String label = "[> <]"; + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] speen = HbmAnimations.getRelevantTransformation("SPEEN"); + double[] cycle = HbmAnimations.getRelevantTransformation("CYCLE"); + + GL11.glTranslated(0, -2, -6); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 6); + + GL11.glTranslated(0, 0, -4); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 0, 4); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + boolean sexy = stack.getItem() == ModItems.gun_autoshotgun_sexy; + + if(sexy || (gun.prevAimingProgress >= 1F && gun.aimingProgress >= 1F)) { + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + float f3 = 0.04F; + GL11.glTranslatef((font.getStringWidth(label) / 2) * f3, 3.25F, -1.75F); + GL11.glScalef(f3, -f3, f3); + GL11.glRotated(180D, 0, 1, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * f3); + float variance = 0.9F + player.getRNG().nextFloat() * 0.1F; + font.drawString(label, 0, 0, new Color(sexy ? variance : 0F, sexy ? 0F : variance, 0F).getRGB()); + GL11.glColor3f(1F, 1F, 1F); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + + int brightness = player.worldObj.getLightBrightnessForSkyBlocks(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ), 0); + int j = brightness % 65536; + int k = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F); + } + + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + + ResourceManager.shredder.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + GL11.glTranslated(0, -1, -0.5); + GL11.glRotated(speen[0], 1, 0, 0); + GL11.glTranslated(0, 1, 0.5); + ResourceManager.shredder.renderPart("Magazine"); + GL11.glTranslated(0, -1, -0.5); + GL11.glRotated(cycle[2], 0, 0, 1); + GL11.glTranslated(0, 1, 0.5); + ResourceManager.shredder.renderPart("Shells"); + GL11.glPopMatrix(); + + double smokeScale = 0.75; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 7.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 7.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(gun.shotRand * 90, 1, 0, 0); + GL11.glScaled(0.75, 0.75, 0.75); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.5, 4); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-1.5, 0, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + ResourceManager.shredder.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java new file mode 100644 index 000000000..384383688 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java @@ -0,0 +1,131 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.item.ItemStack; + +public class ItemRenderStinger extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.5F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -3.75F * offset, -9F * offset, -3.5F * offset, + -2.625F * offset, -6.5, -8.5F); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + if(ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.stinger_tex); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] reload = HbmAnimations.getRelevantTransformation("RELOAD"); + double[] rocket = HbmAnimations.getRelevantTransformation("ROCKET"); + + GL11.glTranslated(0, -1, -1); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 1); + + GL11.glTranslated(0, -4, -3); + GL11.glRotated(reload[0], 1, 0, 0); + GL11.glTranslated(0, 4, 3); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + GL11.glRotated(180, 0, 1, 0); + ResourceManager.stinger.renderAll(); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.panzerschreck_tex); + GL11.glTranslated(rocket[0], rocket[1] + 3.5, rocket[2] - 3); + ResourceManager.panzerschreck.renderPart("Rocket"); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + String label = "Not accurate"; + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + float f3 = 0.04F; + GL11.glTranslatef(0.025F, -0.5F, (font.getStringWidth(label) / 2) * f3 - 3); + GL11.glScalef(f3, -f3, f3); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(45, -1, 0, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * f3); + font.drawString(label, 0, 0, 0xff0000); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 6.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(0.75, 0.75, 0.75); + this.renderMuzzleFlash(gun.lastShot[0], 150, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -2.5, -3.5); + GL11.glRotated(180, 0, 1, 0); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.0625D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(225, 0, 1, 0); + GL11.glTranslated(0.25, -2.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glEnable(GL11.GL_CULL_FACE); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.stinger_tex); + ResourceManager.stinger.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTau.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTau.java new file mode 100644 index 000000000..54226be04 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTau.java @@ -0,0 +1,94 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderTau extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.75F * offset, -1.75F * offset, 3.5F * offset, + -1.75F * offset, -1.75F * offset, 3.5F * offset); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.tau_tex); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] rotate = HbmAnimations.getRelevantTransformation("ROTATE"); + + GL11.glTranslated(0, -1, -4); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 4); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glTranslated(0, 0, -2); + GL11.glRotated(recoil[2] * 5, 1, 0, 0); + GL11.glTranslated(0, 0, 2); + + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); + + ResourceManager.tau.renderPart("Body"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -0.25, 0); + GL11.glRotated(rotate[2], 0, 0, 1); + GL11.glTranslated(0, 0.25, 0); + ResourceManager.tau.renderPart("Rotor"); + GL11.glPopMatrix(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 2.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 1, 2); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 2D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.25, 0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.tau_tex); + ResourceManager.tau.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java new file mode 100644 index 000000000..e961d5517 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java @@ -0,0 +1,156 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; +import com.hbm.render.tileentity.RenderPlushie; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderTeslaCannon extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.75F * offset, -0.5F * offset, 1.75F * offset, + -1.3125F * offset, 0F * offset, -0.5F * offset); + } + + protected static String label = "AUTO"; + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.tesla_cannon_tex); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] cycle = HbmAnimations.getRelevantTransformation("CYCLE"); + double[] count = HbmAnimations.getRelevantTransformation("COUNT"); + double[] yomi = HbmAnimations.getRelevantTransformation("YOMI"); + double[] squeeze = HbmAnimations.getRelevantTransformation("SQUEEZE"); + + GL11.glTranslated(0, -2, -2); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 2); + + GL11.glTranslated(0, 0, recoil[2]); + GL11.glRotated(recoil[2] * 2, 1, 0, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + int amount = Math.max((int) count[0], gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory)); + + ResourceManager.tesla_cannon.renderPart("Gun"); + ResourceManager.tesla_cannon.renderPart("Extension"); + + double cogAngle = cycle[2]; + + GL11.glPushMatrix(); + GL11.glTranslated(0, -1.625, 0); + GL11.glRotated(cogAngle, 0, 0, 1); + GL11.glTranslated(0, 1.625, 0); + ResourceManager.tesla_cannon.renderPart("Cog"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, -1.625, 0); + GL11.glRotated(cogAngle, 0, 0, 1); + GL11.glTranslated(0, 1.625, 0); + + for(int i = 0; i < Math.min(amount, 8); i++) { + ResourceManager.tesla_cannon.renderPart("Capacitor"); + + if(i < 4) { + GL11.glTranslated(0, -1.625, 0); + GL11.glRotated(-22.5, 0, 0, 1); + GL11.glTranslated(0, 1.625, 0); + } else { + if(i == 4) { + GL11.glTranslated(0, -1.625, 0); + GL11.glRotated(-cogAngle, 0, 0, 1); + GL11.glTranslated(0, 1.625, 0); + GL11.glTranslated(-cogAngle * 0.5 / 22.5, 0, 0); + } + GL11.glTranslated(0.5, 0, 0); + } + } + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(yomi[0], yomi[1], yomi[2]); + GL11.glRotated(135, 0, 1, 0); + GL11.glScaled(squeeze[0], squeeze[1], squeeze[2]); + Minecraft.getMinecraft().renderEngine.bindTexture(RenderPlushie.yomiTex); + RenderPlushie.yomiModel.renderAll(); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 2.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 1.5, 1); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, 0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.tesla_cannon_tex); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.tesla_cannon.renderPart("Gun"); + ResourceManager.tesla_cannon.renderPart("Extension"); + ResourceManager.tesla_cannon.renderPart("Cog"); + + GL11.glPushMatrix(); + for(int i = 0; i < 10; i++) { + ResourceManager.tesla_cannon.renderPart("Capacitor"); + + if(i < 4) { + GL11.glTranslated(0, -1.625, 0); + GL11.glRotated(-22.5, 0, 0, 1); + GL11.glTranslated(0, 1.625, 0); + } else { + GL11.glTranslated(0.5, 0, 0); + } + } + GL11.glPopMatrix(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java new file mode 100644 index 000000000..40e267595 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java @@ -0,0 +1,140 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderUzi extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.75F * offset, -1.5F * offset, 2.5F * offset, + 0, -4.375 / 8D, 1); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] stockFront = HbmAnimations.getRelevantTransformation("STOCKFRONT"); + double[] stockBack = HbmAnimations.getRelevantTransformation("STOCKBACK"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] bullet = HbmAnimations.getRelevantTransformation("BULLET"); + double[] slide = HbmAnimations.getRelevantTransformation("SLIDE"); + double[] yeet = HbmAnimations.getRelevantTransformation("YEET"); + double[] speen = HbmAnimations.getRelevantTransformation("SPEEN"); + + GL11.glTranslated(yeet[0], yeet[1], yeet[2]); + GL11.glRotated(speen[0], 0, 0, 1); + + GL11.glTranslated(0, -2, -4); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 4); + + GL11.glTranslated(0, 0, -6); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 0, 6); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.uzi.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.3125D, -5.75); + GL11.glRotated(180 - stockFront[0], 1, 0, 0); + GL11.glTranslated(0, -0.3125D, 5.75); + ResourceManager.uzi.renderPart("StockFront"); + + GL11.glTranslated(0, -0.3125D, -3); + GL11.glRotated(-200 - stockBack[0], 1, 0, 0); + GL11.glTranslated(0, 0.3125D, 3); + ResourceManager.uzi.renderPart("StockBack"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, slide[2]); + ResourceManager.uzi.renderPart("Slide"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.uzi.renderPart("Magazine"); + if(bullet[0] == 1) ResourceManager.uzi.renderPart("Bullet"); + GL11.glPopMatrix(); + + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.75, 8.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.75D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.75, 8.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, 1, 1); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, 1, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("Gun"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java new file mode 100644 index 000000000..dded1cc0d --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java @@ -0,0 +1,204 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderUziAkimbo extends ItemRenderWeaponBase { + + @Override public boolean isAkimbo() { return true; } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + float offset = 0.8F; + + for(int i = -1; i <= 1; i += 2) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + + GL11.glPushMatrix(); + int index = i == -1 ? 0 : 1; + standardAimingTransform(stack, -2.25F * offset * i, -1.5F * offset, 2.5F * offset, 0, -4.375 / 8D, 1); + + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP", index); + double[] stockFront = HbmAnimations.getRelevantTransformation("STOCKFRONT", index); + double[] stockBack = HbmAnimations.getRelevantTransformation("STOCKBACK", index); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL", index); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT", index); + double[] mag = HbmAnimations.getRelevantTransformation("MAG", index); + double[] bullet = HbmAnimations.getRelevantTransformation("BULLET", index); + double[] slide = HbmAnimations.getRelevantTransformation("SLIDE", index); + double[] yeet = HbmAnimations.getRelevantTransformation("YEET", index); + double[] speen = HbmAnimations.getRelevantTransformation("SPEEN", index); + + GL11.glTranslated(yeet[0], yeet[1], yeet[2]); + GL11.glRotated(speen[0], 0, 0, 1); + + GL11.glTranslated(0, -2, -4); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 4); + + GL11.glTranslated(0, 0, -6); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 0, 6); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.uzi.renderPart(index == 0 ? "GunMirror" : "Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.3125D, -5.75); + GL11.glRotated(180 - stockFront[0], 1, 0, 0); + GL11.glTranslated(0, -0.3125D, 5.75); + ResourceManager.uzi.renderPart("StockFront"); + + GL11.glTranslated(0, -0.3125D, -3); + GL11.glRotated(-200 - stockBack[0], 1, 0, 0); + GL11.glTranslated(0, 0.3125D, 3); + ResourceManager.uzi.renderPart("StockBack"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, slide[2]); + ResourceManager.uzi.renderPart("Slide"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.uzi.renderPart("Magazine"); + if(bullet[0] == 1) ResourceManager.uzi.renderPart("Bullet"); + GL11.glPopMatrix(); + + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.75, 8.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, index).smokeNodes, 0.75D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.75, 8.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[index], 75, 7.5); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, 1, 1); + } + + @Override + public void setupThirdPersonAkimbo(ItemStack stack) { + super.setupThirdPersonAkimbo(stack); + GL11.glTranslated(0, 1, 1); + } + + @Override + public void setupInv(ItemStack stack) { + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glScaled(1, 1, -1); + GL11.glTranslated(8, 8, 0); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + } + + @Override + public void renderEquipped(ItemStack stack) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("Gun"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderEquippedAkimbo(ItemStack stack) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("GunMirror"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, 1, 0); + ResourceManager.uzi.renderPart("Gun"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glPopMatrix(); + + GL11.glTranslated(0, 0, 5); + + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(-90, 0, 1, 0); + GL11.glRotated(-90, 1, 0, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(-45, 0, 1, 0); + GL11.glTranslated(0, 1, 0); + ResourceManager.uzi.renderPart("GunMirror"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java new file mode 100644 index 000000000..d432c31d8 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java @@ -0,0 +1,409 @@ +package com.hbm.render.item.weapon.sedna; + +import java.util.List; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; +import org.lwjgl.util.glu.Project; + +import com.hbm.config.ClientConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.SmokeNode; +import com.hbm.lib.RefStrings; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; + +public abstract class ItemRenderWeaponBase implements IItemRenderer { + + public static final ResourceLocation flash_plume = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_plume.png"); + + public static float interp; + + public boolean isAkimbo() { return false; } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return type != ItemRenderType.FIRST_PERSON_MAP; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION; + } + + @SuppressWarnings("incomplete-switch") //shut the fuck up + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_CULL_FACE); + switch(type) { + case EQUIPPED_FIRST_PERSON: setupFirstPerson(item); renderFirstPerson(item); break; + case EQUIPPED: setupThirdPerson(item); renderEquipped(item); break; + case INVENTORY: setupInv(item); renderInv(item); break; + case ENTITY: setupEntity(item); renderEntity(item); break; + } + GL11.glPopMatrix(); + } + + public void renderEquipped(ItemStack stack) { renderOther(stack, ItemRenderType.EQUIPPED); } + public void renderEquippedAkimbo(ItemStack stack) { renderOther(stack, ItemRenderType.EQUIPPED); } + public void renderInv(ItemStack stack) { renderOther(stack, ItemRenderType.INVENTORY); } + public void renderEntity(ItemStack stack) { renderOther(stack, ItemRenderType.ENTITY); } + + public void setPerspectiveAndRender(ItemStack stack, float interp) { + + this.interp = interp; + + Minecraft mc = Minecraft.getMinecraft(); + EntityRenderer entityRenderer = mc.entityRenderer; + float farPlaneDistance = mc.gameSettings.renderDistanceChunks * 16; + + GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT); + GL11.glMatrixMode(GL11.GL_PROJECTION); + GL11.glLoadIdentity(); + + Project.gluPerspective(this.getFOVModifier(interp, ClientConfig.GUN_MODEL_FOV.get()), (float) mc.displayWidth / (float) mc.displayHeight, 0.05F, farPlaneDistance * 2.0F); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glLoadIdentity(); + + GL11.glPushMatrix(); + + if(mc.gameSettings.thirdPersonView == 0 && !mc.renderViewEntity.isPlayerSleeping() && !mc.gameSettings.hideGUI && !mc.playerController.enableEverythingIsScrewedUpMode()) { + entityRenderer.enableLightmap(interp); + this.setupTransformsAndRender(stack); + entityRenderer.disableLightmap(interp); + } + + GL11.glPopMatrix(); + + if(mc.gameSettings.thirdPersonView == 0 && !mc.renderViewEntity.isPlayerSleeping()) { + entityRenderer.itemRenderer.renderOverlays(interp); + } + } + + private float getFOVModifier(float interp, boolean useFOVSetting) { + + Minecraft mc = Minecraft.getMinecraft(); + EntityLivingBase entityplayer = (EntityLivingBase) mc.renderViewEntity; + float fov = getBaseFOV(entityplayer.getHeldItem()); + + if(useFOVSetting) fov = mc.gameSettings.fovSetting; + + if(entityplayer.getHealth() <= 0.0F) { + float f2 = (float) entityplayer.deathTime + interp; + fov /= (1.0F - 500.0F / (f2 + 500.0F)) * 2.0F + 1.0F; + } + + Block block = ActiveRenderInfo.getBlockAtEntityViewpoint(mc.theWorld, entityplayer, interp); + if(block.getMaterial() == Material.water) fov = fov * 60.0F / 70.0F; + + return fov; + } + + protected float getBaseFOV(ItemStack stack) { return 70F; } + public float getViewFOV(ItemStack stack, float fov) { return fov; } + protected float getSwayMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 0.1F : 0.5F; } + protected float getSwayPeriod(ItemStack stack) { return 0.75F; } + protected float getTurnMagnitude(ItemStack stack) { return 2.75F; } + + protected void setupTransformsAndRender(ItemStack stack) { + Minecraft mc = Minecraft.getMinecraft(); + EntityPlayer player = mc.thePlayer; + + float swayMagnitude = getSwayMagnitude(stack); + float swayPeriod = getSwayPeriod(stack); + float turnMagnitude = getTurnMagnitude(stack); + + //lighting setup (item lighting changes based on player rotation) + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * interp; + float yaw = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * interp; + + GL11.glPushMatrix(); + GL11.glRotatef(pitch, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(yaw, 0.0F, 1.0F, 0.0F); + RenderHelper.enableStandardItemLighting(); + GL11.glPopMatrix(); + + //floppyness + EntityPlayerSP entityplayersp = (EntityPlayerSP) player; + float armPitch = entityplayersp.prevRenderArmPitch + (entityplayersp.renderArmPitch - entityplayersp.prevRenderArmPitch) * interp; + float armYaw = entityplayersp.prevRenderArmYaw + (entityplayersp.renderArmYaw - entityplayersp.prevRenderArmYaw) * interp; + GL11.glRotatef((player.rotationPitch - armPitch) * 0.1F * turnMagnitude, 1.0F, 0.0F, 0.0F); + GL11.glRotatef((player.rotationYaw - armYaw) * 0.1F * turnMagnitude, 0.0F, 1.0F, 0.0F); + + //brightness setup + int brightness = mc.theWorld.getLightBrightnessForSkyBlocks(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ), 0); + int j = brightness % 65536; + int k = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + //color setup + int color = stack.getItem().getColorFromItemStack(stack, 0); + float r = (float) (color >> 16 & 255) / 255.0F; + float g = (float) (color >> 8 & 255) / 255.0F; + float b = (float) (color & 255) / 255.0F; + GL11.glColor4f(r, g, b, 1.0F); + + GL11.glPushMatrix(); + + //swing + /*float swing = player.getSwingProgress(interp); + float swingZ = MathHelper.sin(swing * (float) Math.PI); + float swingX = MathHelper.sin(MathHelper.sqrt_float(swing) * (float) Math.PI); + GL11.glTranslatef(-swingX * 0.4F, MathHelper.sin(MathHelper.sqrt_float(swing) * (float) Math.PI * 2.0F) * 0.2F, -swingZ * 0.2F); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + float swingYaw = MathHelper.sin(swing * swing * (float) Math.PI); + float swingPitchRoll = MathHelper.sin(MathHelper.sqrt_float(swing) * (float) Math.PI); + GL11.glRotatef(-swingYaw * 20.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-swingPitchRoll * 20.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-swingPitchRoll * 80.0F, 1.0F, 0.0F, 0.0F);*/ + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); //! + + GL11.glRotated(180, 0, 1, 0); + + //viewbob + if(mc.renderViewEntity instanceof EntityPlayer) { + EntityPlayer entityplayer = (EntityPlayer) mc.renderViewEntity; + float distanceDelta = entityplayer.distanceWalkedModified - entityplayer.prevDistanceWalkedModified; + float distanceInterp = -(entityplayer.distanceWalkedModified + distanceDelta * interp); + float camYaw = entityplayer.prevCameraYaw + (entityplayer.cameraYaw - entityplayer.prevCameraYaw) * interp; + float camPitch = entityplayer.prevCameraPitch + (entityplayer.cameraPitch - entityplayer.prevCameraPitch) * interp; + GL11.glTranslatef(MathHelper.sin(distanceInterp * (float) Math.PI * swayPeriod) * camYaw * 0.5F * swayMagnitude, -Math.abs(MathHelper.cos(distanceInterp * (float) Math.PI * swayPeriod) * camYaw) * swayMagnitude, 0.0F); + GL11.glRotatef(MathHelper.sin(distanceInterp * (float) Math.PI * swayPeriod) * camYaw * 3.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(Math.abs(MathHelper.cos(distanceInterp * (float) Math.PI * swayPeriod - 0.2F) * camYaw) * 5.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(camPitch, 1.0F, 0.0F, 0.0F); + } + + this.renderItem(ItemRenderType.EQUIPPED_FIRST_PERSON, stack, null, player); + + GL11.glPopMatrix(); + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + RenderHelper.disableStandardItemLighting(); + } + + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 1); + + if(Minecraft.getMinecraft().thePlayer.isSneaking()) { + GL11.glTranslated(0, -3.875 / 8D, 0); + } else { + float offset = 0.8F; + GL11.glRotated(180, 0, 1, 0); + GL11.glTranslatef(1.0F * offset, -0.75F * offset, -0.5F * offset); + GL11.glRotated(180, 0, 1, 0); + } + } + + public void setupThirdPerson(ItemStack stack) { + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + GL11.glRotatef(15.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(12.5F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(15.0F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslated(3.5, 0, 0); + + } + + public void setupThirdPersonAkimbo(ItemStack stack) { + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + GL11.glRotatef(15.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(12.5F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(10.0F, 1.0F, 0.0F, 0.0F); + + GL11.glTranslated(5, 0, 0); + + } + + public void setupInv(ItemStack stack) { + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + + GL11.glScaled(1, 1, -1); + GL11.glTranslated(8, 8, 0); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + } + + public void setupEntity(ItemStack stack) { + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + } + + public abstract void renderFirstPerson(ItemStack stack); + public void renderOther(ItemStack stack, ItemRenderType type) { } + + public static void standardAimingTransform(ItemStack stack, double sX, double sY, double sZ, double aX, double aY, double aZ) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + double x = sX + (aX - sX) * aimingProgress; + double y = sY + (aY - sY) * aimingProgress; + double z = sZ + (aZ - sZ) * aimingProgress; + GL11.glTranslated(x, y, z); + } + + public static void renderSmokeNodes(List nodes, double scale) { + Tessellator tess = Tessellator.instance; + + if(nodes.size() > 1) { + + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glDepthMask(false); + + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + + for(int i = 0; i < nodes.size() - 1; i++) { + SmokeNode node = nodes.get(i); + SmokeNode past = nodes.get(i + 1); + + tess.setColorRGBA_F(1F, 1F, 1F, (float) node.alpha); + tess.addVertex(node.forward, node.lift, node.side); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(node.forward, node.lift, node.side + node.width * scale); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(past.forward, past.lift, past.side + past.width * scale); + tess.setColorRGBA_F(1F, 1F, 1F, (float) past.alpha); + tess.addVertex(past.forward, past.lift, past.side); + + tess.setColorRGBA_F(1F, 1F, 1F, (float) node.alpha); + tess.addVertex(node.forward, node.lift, node.side); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(node.forward, node.lift, node.side - node.width * scale); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(past.forward, past.lift, past.side - past.width * scale); + tess.setColorRGBA_F(1F, 1F, 1F, (float) past.alpha); + tess.addVertex(past.forward, past.lift, past.side); + } + tess.draw(); + + GL11.glDepthMask(true); + GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_BLEND); + } + } + + public static void renderMuzzleFlash(long lastShot) { + renderMuzzleFlash(lastShot, 75, 15); + } + + public static void renderMuzzleFlash(long lastShot, int duration, double l) { + Tessellator tess = Tessellator.instance; + + int flash = duration; + + if(System.currentTimeMillis() - lastShot < flash) { + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glPushMatrix(); + + double fire = (System.currentTimeMillis() - lastShot) / (double) flash; + + double width = 6 * fire; + double length = l * fire; + double inset = 2; + Minecraft.getMinecraft().renderEngine.bindTexture(flash_plume); + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + tess.setColorRGBA_F(1F, 1F, 1F, 1F); + + tess.addVertexWithUV(0, -width, - inset, 1, 1); + tess.addVertexWithUV(0, width, - inset, 0, 1); + tess.addVertexWithUV(0.1, width, length - inset, 0 ,0); + tess.addVertexWithUV(0.1, -width, length - inset, 1, 0); + + tess.addVertexWithUV(0, width, inset, 0, 1); + tess.addVertexWithUV(0, -width, inset, 1, 1); + tess.addVertexWithUV(0.1, -width, -length + inset, 1, 0); + tess.addVertexWithUV(0.1, width, -length + inset, 0 ,0); + + tess.addVertexWithUV(0, - inset, width, 0, 1); + tess.addVertexWithUV(0, - inset, -width, 1, 1); + tess.addVertexWithUV(0.1, length - inset, -width, 1, 0); + tess.addVertexWithUV(0.1, length - inset, width, 0 ,0); + + tess.addVertexWithUV(0, inset, -width, 1, 1); + tess.addVertexWithUV(0, inset, width, 0, 1); + tess.addVertexWithUV(0.1, -length + inset, width, 0 ,0); + tess.addVertexWithUV(0.1, -length + inset, -width, 1, 0); + + tess.draw(); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + } + + public static void renderGapFlash(long lastShot) { + Tessellator tess = Tessellator.instance; + + int flash = 75; + + if(System.currentTimeMillis() - lastShot < flash) { + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glPushMatrix(); + + double fire = (System.currentTimeMillis() - lastShot) / (double) flash; + + double height = 4 * fire; + double length = 15 * fire; + double lift = 3 * fire; + double offset = 1 * fire; + double lengthOffset = 0.125; + Minecraft.getMinecraft().renderEngine.bindTexture(flash_plume); + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + tess.setColorRGBA_F(1F, 1F, 1F, 1F); + + tess.addVertexWithUV(0, -height, -offset, 1, 1); + tess.addVertexWithUV(0, height, -offset, 0, 1); + tess.addVertexWithUV(0, height + lift, length - offset, 0 ,0); + tess.addVertexWithUV(0, -height + lift, length - offset, 1, 0); + + tess.addVertexWithUV(0, height, offset, 0, 1); + tess.addVertexWithUV(0, -height, offset, 1, 1); + tess.addVertexWithUV(0, -height + lift, -length + offset, 1, 0); + tess.addVertexWithUV(0, height + lift, -length + offset, 0 ,0); + + tess.addVertexWithUV(0, -height, -offset, 1, 1); + tess.addVertexWithUV(0, height, -offset, 0, 1); + tess.addVertexWithUV(lengthOffset, height, length - offset, 0 ,0); + tess.addVertexWithUV(lengthOffset, -height, length - offset, 1, 0); + + tess.addVertexWithUV(0, height, offset, 0, 1); + tess.addVertexWithUV(0, -height, offset, 1, 1); + tess.addVertexWithUV(lengthOffset, -height, -length + offset, 1, 0); + tess.addVertexWithUV(lengthOffset, height, -length + offset, 0 ,0); + + tess.draw(); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + } +} diff --git a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java index 3b27a781c..a3e443e99 100644 --- a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java +++ b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -16,12 +17,11 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.IResource; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.IModelCustom; import net.minecraftforge.client.model.ModelFormatException; import net.minecraftforge.client.model.obj.TextureCoordinate; import net.minecraftforge.client.model.obj.Vertex; -public class HFRWavefrontObject implements IModelCustom { +public class HFRWavefrontObject implements IModelCustomNamed { private static Pattern vertexPattern = Pattern.compile("(v( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *\\n)|(v( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *$)"); private static Pattern vertexNormalPattern = Pattern.compile("(vn( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *\\n)|(vn( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *$)"); private static Pattern textureCoordinatePattern = Pattern.compile("(vt( (\\-){0,1}\\d+\\.\\d+){2,3} *\\n)|(vt( (\\-){0,1}\\d+(\\.\\d+)?){2,3} *$)"); @@ -482,6 +482,19 @@ public class HFRWavefrontObject implements IModelCustom { public String getType() { return "obj"; } + + @Override + public List getPartNames() { + List names = new ArrayList(); + for(S_GroupObject data : groupObjects) { + names.add(data.name); + } + return names; + } + + public WavefrontObjVBO asVBO() { + return new WavefrontObjVBO(this); + } public WavefrontObjDisplayList asDisplayList() { return new WavefrontObjDisplayList(this); diff --git a/src/main/java/com/hbm/render/loader/IModelCustomNamed.java b/src/main/java/com/hbm/render/loader/IModelCustomNamed.java new file mode 100644 index 000000000..a12e1bdb4 --- /dev/null +++ b/src/main/java/com/hbm/render/loader/IModelCustomNamed.java @@ -0,0 +1,13 @@ +package com.hbm.render.loader; + +import java.util.List; + +import net.minecraftforge.client.model.IModelCustom; + +public interface IModelCustomNamed extends IModelCustom { + + // A little messy, but this is the cleanest refactor, and can be useful in the future + + public List getPartNames(); + +} diff --git a/src/main/java/com/hbm/render/loader/ModelRendererObj.java b/src/main/java/com/hbm/render/loader/ModelRendererObj.java index e9ba2885f..b7e85a58d 100644 --- a/src/main/java/com/hbm/render/loader/ModelRendererObj.java +++ b/src/main/java/com/hbm/render/loader/ModelRendererObj.java @@ -12,12 +12,17 @@ public class ModelRendererObj { public float rotationPointX; public float rotationPointY; public float rotationPointZ; + public float originPointX; + public float originPointY; + public float originPointZ; public float rotateAngleX; public float rotateAngleY; public float rotateAngleZ; public float offsetX; public float offsetY; public float offsetZ; + + public boolean doRender = true; String[] parts; IModelCustom model; @@ -35,9 +40,9 @@ public class ModelRendererObj { } public ModelRendererObj setRotationPoint(float x, float y, float z) { - this.rotationPointX = x; - this.rotationPointY = y; - this.rotationPointZ = z; + this.originPointX = this.rotationPointX = x; + this.originPointY = this.rotationPointY = y; + this.originPointZ = this.rotationPointZ = z; return this; } @@ -90,15 +95,17 @@ public class ModelRendererObj { GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); } - GL11.glTranslatef(-this.rotationPointX * scale, -this.rotationPointY * scale, -this.rotationPointZ * scale); + GL11.glTranslatef(-this.rotationPointX * scale, -this.rotationPointY * scale, -this.originPointZ * scale); //yes, that is correct GL11.glScalef(scale, scale, scale); - if(parts.length > 0) - for(String part : parts) - model.renderPart(part); - else - model.renderAll(); + if(doRender) { + if(parts.length > 0) + for(String part : parts) + model.renderPart(part); + else + model.renderAll(); + } GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/loader/ModelRendererTest.java b/src/main/java/com/hbm/render/loader/ModelRendererTest.java new file mode 100644 index 000000000..0a8063a94 --- /dev/null +++ b/src/main/java/com/hbm/render/loader/ModelRendererTest.java @@ -0,0 +1,172 @@ +package com.hbm.render.loader; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBox; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.client.renderer.Tessellator; + +public class ModelRendererTest extends ModelRenderer { + + //TODO: blow up mojank HQ with a JDAM + private boolean compiled; + private int displayList; + + public ModelRendererTest(ModelBase p_i1173_1_) { + super(p_i1173_1_); + } + + public ModelRendererTest(ModelBase p_i1174_1_, int p_i1174_2_, int p_i1174_3_) { + this(p_i1174_1_); + this.setTextureOffset(p_i1174_2_, p_i1174_3_); + } + + @SideOnly(Side.CLIENT) + public void render(float p_78785_1_) { + if(!this.isHidden) { + if(this.showModel) { + if(!this.compiled) { + this.compileDisplayList(p_78785_1_); + } + + GL11.glTranslatef(this.offsetX, this.offsetY, this.offsetZ); + int i; + + if(this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) { + if(this.rotationPointX == 0.0F && this.rotationPointY == 0.0F && this.rotationPointZ == 0.0F) { + GL11.glCallList(this.displayList); + + if(this.childModels != null) { + for(i = 0; i < this.childModels.size(); ++i) { + ((ModelRenderer) this.childModels.get(i)).render(p_78785_1_); + } + } + } else { + GL11.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_); + GL11.glCallList(this.displayList); + + if(this.childModels != null) { + for(i = 0; i < this.childModels.size(); ++i) { + ((ModelRenderer) this.childModels.get(i)).render(p_78785_1_); + } + } + + GL11.glTranslatef(-this.rotationPointX * p_78785_1_, -this.rotationPointY * p_78785_1_, -this.rotationPointZ * p_78785_1_); + } + } else { + GL11.glPushMatrix(); + GL11.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_); + + if(this.rotateAngleZ != 0.0F) { + GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); + } + + if(this.rotateAngleY != 0.0F) { + GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); + } + + if(this.rotateAngleX != 0.0F) { + GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); + } + + GL11.glPushMatrix(); + GL11.glScaled(0.1, 0.1, 0.1); + ResourceManager.chemplant_body.renderAll(); + GL11.glPopMatrix(); + + //GL11.glCallList(this.displayList); + + if(this.childModels != null) { + for(i = 0; i < this.childModels.size(); ++i) { + ((ModelRenderer) this.childModels.get(i)).render(p_78785_1_); + } + } + + GL11.glPopMatrix(); + } + + GL11.glTranslatef(-this.offsetX, -this.offsetY, -this.offsetZ); + } + } + } + + @SideOnly(Side.CLIENT) + public void renderWithRotation(float p_78791_1_) { + if(!this.isHidden) { + if(this.showModel) { + if(!this.compiled) { + this.compileDisplayList(p_78791_1_); + } + + GL11.glPushMatrix(); + GL11.glTranslatef(this.rotationPointX * p_78791_1_, this.rotationPointY * p_78791_1_, this.rotationPointZ * p_78791_1_); + + if(this.rotateAngleY != 0.0F) { + GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); + } + + if(this.rotateAngleX != 0.0F) { + GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); + } + + if(this.rotateAngleZ != 0.0F) { + GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); + } + + GL11.glCallList(this.displayList); + GL11.glPopMatrix(); + } + } + } + + @SideOnly(Side.CLIENT) + public void postRender(float p_78794_1_) { + if(!this.isHidden) { + if(this.showModel) { + if(!this.compiled) { + this.compileDisplayList(p_78794_1_); + } + + if(this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) { + if(this.rotationPointX != 0.0F || this.rotationPointY != 0.0F || this.rotationPointZ != 0.0F) { + GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_); + } + } else { + GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_); + + if(this.rotateAngleZ != 0.0F) { + GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); + } + + if(this.rotateAngleY != 0.0F) { + GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); + } + + if(this.rotateAngleX != 0.0F) { + GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); + } + } + } + } + } + + @SideOnly(Side.CLIENT) + private void compileDisplayList(float p_78788_1_) { + this.displayList = GLAllocation.generateDisplayLists(1); + GL11.glNewList(this.displayList, GL11.GL_COMPILE); + Tessellator tessellator = Tessellator.instance; + + for(int i = 0; i < this.cubeList.size(); ++i) { + ((ModelBox) this.cubeList.get(i)).render(tessellator, p_78788_1_); + } + + GL11.glEndList(); + this.compiled = true; + } +} diff --git a/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java b/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java index 99eef4360..b797be151 100644 --- a/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java +++ b/src/main/java/com/hbm/render/loader/WavefrontObjDisplayList.java @@ -7,11 +7,10 @@ import org.apache.commons.lang3.tuple.Pair; import org.lwjgl.opengl.GL11; import net.minecraft.client.renderer.Tessellator; -import net.minecraftforge.client.model.IModelCustom; import net.minecraftforge.client.model.obj.GroupObject; import net.minecraftforge.client.model.obj.WavefrontObject; -public class WavefrontObjDisplayList implements IModelCustom { +public class WavefrontObjDisplayList implements IModelCustomNamed { public List> nameToCallList = new ArrayList<>(); @@ -95,4 +94,13 @@ public class WavefrontObjDisplayList implements IModelCustom { } } } + + @Override + public List getPartNames() { + List names = new ArrayList(); + for(Pair data : nameToCallList) { + names.add(data.getLeft()); + } + return names; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java b/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java new file mode 100644 index 000000000..fe7eb985f --- /dev/null +++ b/src/main/java/com/hbm/render/loader/WavefrontObjVBO.java @@ -0,0 +1,158 @@ +package com.hbm.render.loader; + +import java.nio.FloatBuffer; +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.*; + +import net.minecraftforge.client.model.obj.TextureCoordinate; +import net.minecraftforge.client.model.obj.Vertex; + +public class WavefrontObjVBO implements IModelCustomNamed { + + class VBOBufferData { + + String name; + int vertices = 0; + int vertexHandle; + int uvHandle; + int normalHandle; + + } + + List groups = new ArrayList(); + + static int VERTEX_SIZE = 3; + static int UV_SIZE = 3; + + public WavefrontObjVBO(HFRWavefrontObject obj) { + for(S_GroupObject g : obj.groupObjects) { + VBOBufferData data = new VBOBufferData(); + data.name = g.name; + + FloatBuffer vertexData = BufferUtils.createFloatBuffer(g.faces.size() * 3 * VERTEX_SIZE); + FloatBuffer uvData = BufferUtils.createFloatBuffer(g.faces.size() * 3 * UV_SIZE); + FloatBuffer normalData = BufferUtils.createFloatBuffer(g.faces.size() * 3 * VERTEX_SIZE); + + for(S_Face face : g.faces) { + for(int i = 0; i < face.vertices.length; i++) { + Vertex vert = face.vertices[i]; + TextureCoordinate tex = new TextureCoordinate(0, 0); + Vertex normal = face.vertexNormals[i]; + + if(face.textureCoordinates != null && face.textureCoordinates.length > 0) { + tex = face.textureCoordinates[i]; + } + + data.vertices++; + vertexData.put(new float[] { vert.x, vert.y, vert.z }); + uvData.put(new float[] { tex.u, tex.v, tex.w }); + normalData.put(new float[] { normal.x, normal.y, normal.z }); + } + } + vertexData.flip(); + uvData.flip(); + normalData.flip(); + + data.vertexHandle = GL15.glGenBuffers(); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.vertexHandle); + GL15.glBufferData(GL15.GL_ARRAY_BUFFER, vertexData, GL15.GL_STATIC_DRAW); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); + + data.uvHandle = GL15.glGenBuffers(); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.uvHandle); + GL15.glBufferData(GL15.GL_ARRAY_BUFFER, uvData, GL15.GL_STATIC_DRAW); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); + + data.normalHandle = GL15.glGenBuffers(); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.normalHandle); + GL15.glBufferData(GL15.GL_ARRAY_BUFFER, normalData, GL15.GL_STATIC_DRAW); + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); + + groups.add(data); + } + } + + @Override + public String getType() { + return "obj_vbo"; + } + + private void renderVBO(VBOBufferData data) { + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.vertexHandle); + GL11.glVertexPointer(VERTEX_SIZE, GL11.GL_FLOAT, 0, 0l); + + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.uvHandle); + GL11.glTexCoordPointer(UV_SIZE, GL11.GL_FLOAT, 0, 0l); + + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, data.normalHandle); + GL11.glNormalPointer(GL11.GL_FLOAT, 0, 0l); + + GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY); + GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY); + GL11.glEnableClientState(GL11.GL_NORMAL_ARRAY); + + GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, data.vertices); + + GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY); + GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY); + GL11.glDisableClientState(GL11.GL_NORMAL_ARRAY); + + GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); + } + + @Override + public void renderAll() { + for(VBOBufferData data : groups) { + renderVBO(data); + } + } + + @Override + public void renderOnly(String... groupNames) { + for(VBOBufferData data : groups) { + for(String name : groupNames) { + if(data.name.equalsIgnoreCase(name)) { + renderVBO(data); + } + } + } + } + + @Override + public void renderPart(String partName) { + for(VBOBufferData data : groups) { + if(data.name.equalsIgnoreCase(partName)) { + renderVBO(data); + } + } + } + + @Override + public void renderAllExcept(String... excludedGroupNames) { + for(VBOBufferData data : groups) { + boolean skip = false; + for(String name : excludedGroupNames) { + if(data.name.equalsIgnoreCase(name)) { + skip = true; + break; + } + } + if(!skip) { + renderVBO(data); + } + } + } + + @Override + public List getPartNames() { + List names = new ArrayList(); + for(VBOBufferData data : groups) { + names.add(data.name); + } + return names; + } + +} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelArmorBase.java b/src/main/java/com/hbm/render/model/ModelArmorBase.java index 70134b4f6..99085fa94 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorBase.java +++ b/src/main/java/com/hbm/render/model/ModelArmorBase.java @@ -5,6 +5,8 @@ import com.hbm.render.loader.ModelRendererObj; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; @@ -39,16 +41,16 @@ public class ModelArmorBase extends ModelBiped { rightFoot = new ModelRendererObj(null).setRotationPoint(-1.9F, 12.0F, 0.0F); } - public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity entity) { + public void setRotationAngles(float walkCycle, float walkAmplitude, float idleCycle, float headYaw, float headPitch, float scale, Entity entity) { - head.rotateAngleY = p_78087_4_ / (180F / (float) Math.PI); - head.rotateAngleX = p_78087_5_ / (180F / (float) Math.PI); - rightArm.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float) Math.PI) * 2.0F * p_78087_2_ * 0.5F; - leftArm.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 2.0F * p_78087_2_ * 0.5F; + head.rotateAngleY = headYaw / (180F / (float) Math.PI); + head.rotateAngleX = headPitch / (180F / (float) Math.PI); + rightArm.rotateAngleX = MathHelper.cos(walkCycle * 0.6662F + (float) Math.PI) * 2.0F * walkAmplitude * 0.5F; + leftArm.rotateAngleX = MathHelper.cos(walkCycle * 0.6662F) * 2.0F * walkAmplitude * 0.5F; rightArm.rotateAngleZ = 0.0F; leftArm.rotateAngleZ = 0.0F; - rightFoot.rotateAngleX = rightLeg.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.4F * p_78087_2_; - leftFoot.rotateAngleX = leftLeg.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float) Math.PI) * 1.4F * p_78087_2_; + rightFoot.rotateAngleX = rightLeg.rotateAngleX = MathHelper.cos(walkCycle * 0.6662F) * 1.4F * walkAmplitude; + leftFoot.rotateAngleX = leftLeg.rotateAngleX = MathHelper.cos(walkCycle * 0.6662F + (float) Math.PI) * 1.4F * walkAmplitude; rightFoot.rotateAngleY = rightLeg.rotateAngleY = 0.0F; leftFoot.rotateAngleY = leftLeg.rotateAngleY = 0.0F; @@ -77,11 +79,11 @@ public class ModelArmorBase extends ModelBiped { rightArm.rotateAngleX = rightArm.rotateAngleX * 0.5F - ((float) Math.PI / 10F) * hold; } - - this.isSneak = player.isSneaking(); - this.isRiding = player.isRiding(); } + this.isSneak = entity.isSneaking(); + this.isRiding = entity.isRiding(); + if(this.isRiding) { rightArm.rotateAngleX += -((float) Math.PI / 5F); leftArm.rotateAngleX += -((float) Math.PI / 5F); @@ -143,10 +145,10 @@ public class ModelArmorBase extends ModelBiped { head.offsetY = 0.0F; } - rightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - leftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - rightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; - leftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; + rightArm.rotateAngleZ += MathHelper.cos(idleCycle * 0.09F) * 0.05F + 0.05F; + leftArm.rotateAngleZ -= MathHelper.cos(idleCycle * 0.09F) * 0.05F + 0.05F; + rightArm.rotateAngleX += MathHelper.sin(idleCycle * 0.067F) * 0.05F; + leftArm.rotateAngleX -= MathHelper.sin(idleCycle * 0.067F) * 0.05F; if(this.aimedBow) { f6 = 0.0F; @@ -159,10 +161,19 @@ public class ModelArmorBase extends ModelBiped { leftArm.rotateAngleX = -((float) Math.PI / 2F) + head.rotateAngleX; rightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; leftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; - rightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - leftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - rightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; - leftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; + rightArm.rotateAngleZ += MathHelper.cos(idleCycle * 0.09F) * 0.05F + 0.05F; + leftArm.rotateAngleZ -= MathHelper.cos(idleCycle * 0.09F) * 0.05F + 0.05F; + rightArm.rotateAngleX += MathHelper.sin(idleCycle * 0.067F) * 0.05F; + leftArm.rotateAngleX -= MathHelper.sin(idleCycle * 0.067F) * 0.05F; + } + + if(entity instanceof EntityPlayer) { + Object o = RenderManager.instance.entityRenderMap.get(EntityPlayer.class); + if(o instanceof RenderPlayer) { + RenderPlayer render = (RenderPlayer) o; + leftArm.copyRotationFrom(render.modelBipedMain.bipedLeftArm); + rightArm.copyRotationFrom(render.modelBipedMain.bipedRightArm); + } } } diff --git a/src/main/java/com/hbm/render/model/ModelArmorEnvsuit.java b/src/main/java/com/hbm/render/model/ModelArmorEnvsuit.java new file mode 100644 index 000000000..0f5e0aa7a --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorEnvsuit.java @@ -0,0 +1,80 @@ +package com.hbm.render.model; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.Entity; + +public class ModelArmorEnvsuit extends ModelArmorBase { + + ModelRendererObj lamps; + + public ModelArmorEnvsuit(int type) { + super(type); + + head = new ModelRendererObj(ResourceManager.armor_envsuit, "Helmet"); + lamps = new ModelRendererObj(ResourceManager.armor_envsuit, "Lamps"); + body = new ModelRendererObj(ResourceManager.armor_envsuit, "Chest"); + leftArm = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F); + rightArm = new ModelRendererObj(ResourceManager.armor_envsuit, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F); + leftLeg = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F); + rightLeg = new ModelRendererObj(ResourceManager.armor_envsuit, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F); + leftFoot = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftFoot").setRotationPoint(1.9F, 12.0F, 0.0F); + rightFoot = new ModelRendererObj(ResourceManager.armor_envsuit, "RightFoot").setRotationPoint(-1.9F, 12.0F, 0.0F); + } + + @Override + public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { + setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); + head.copyTo(lamps); + + GL11.glPushMatrix(); + + if(type == 0) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_helmet); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + head.render(par7); + GL11.glDisable(GL11.GL_BLEND); + + /// START GLOW /// + float lastX = OpenGlHelper.lastBrightnessX; + float lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glColor3f(1F, 1F, 0.8F); + lamps.render(par7); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + /// END GLOW /// + } + if(type == 1) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_chest); + body.render(par7); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_arm); + leftArm.render(par7); + rightArm.render(par7); + } + if(type == 2) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_leg); + leftLeg.render(par7); + rightLeg.render(par7); + } + if(type == 3) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_leg); + leftFoot.render(par7); + rightFoot.render(par7); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/model/ModelArmorSolstice.java b/src/main/java/com/hbm/render/model/ModelArmorSolstice.java deleted file mode 100644 index 868254bb4..000000000 --- a/src/main/java/com/hbm/render/model/ModelArmorSolstice.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.hbm.render.model; - -import com.hbm.main.ResourceManager; -import com.hbm.render.loader.ModelRendererObj; - -import net.minecraft.util.ResourceLocation; - -public class ModelArmorSolstice extends ModelArmorWings { - - public ModelArmorSolstice() { - super(0); - - wingLB = new ModelRendererObj(ResourceManager.armor_solstice, "WingLB"); - wingLT = new ModelRendererObj(ResourceManager.armor_solstice, "WingLT"); - wingRB = new ModelRendererObj(ResourceManager.armor_solstice, "WingRB"); - wingRT = new ModelRendererObj(ResourceManager.armor_solstice, "WingRT"); - } - - @Override - protected boolean doesRotateZ() { - return false; - } - - @Override - protected ResourceLocation getTexture() { - return ResourceManager.wings_solstice; - } -} diff --git a/src/main/java/com/hbm/render/model/ModelArmorTailPeep.java b/src/main/java/com/hbm/render/model/ModelArmorTailPeep.java new file mode 100644 index 000000000..5a8cb8370 --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorTailPeep.java @@ -0,0 +1,26 @@ +package com.hbm.render.model; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; + +public class ModelArmorTailPeep extends ModelArmorBase { + + ModelRendererObj tail; + + public ModelArmorTailPeep() { + super(0); + tail = new ModelRendererObj(ResourceManager.armor_tail, "FaggyAssFuckingTailThing"); + } + + @Override + public void render(Entity entity, float par2, float par3, float par4, float par5, float par6, float par7) { + setRotationAngles(par2, par3, par4, par5, par6, par7, entity); + body.copyTo(tail); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.tail_peep); + tail.render(par7); + } +} diff --git a/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java b/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java new file mode 100644 index 000000000..533190861 --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java @@ -0,0 +1,76 @@ +package com.hbm.render.model; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.Entity; + +public class ModelArmorTrenchmaster extends ModelArmorBase { + + ModelRendererObj light; + + public ModelArmorTrenchmaster(int type) { + super(type); + + head = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Helmet"); + light = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Light"); + body = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Chest"); + leftArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F); + rightArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F); + leftLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F); + rightLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F); + leftFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F); + rightFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightBoot").setRotationPoint(-1.9F, 12.0F, 0.0F); + } + + @Override + public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { + setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); + head.copyTo(light); + + GL11.glPushMatrix(); + + if(type == 0) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_helmet); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + head.render(par7); + GL11.glDisable(GL11.GL_BLEND); + + /// START GLOW /// + float lastX = OpenGlHelper.lastBrightnessX; + float lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_LIGHTING); + light.render(par7); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + /// END GLOW /// + } + if(type == 1) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_chest); + body.render(par7); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_arm); + leftArm.render(par7); + rightArm.render(par7); + } + if(type == 2) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + leftLeg.render(par7); + rightLeg.render(par7); + } + if(type == 3) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + leftFoot.render(par7); + rightFoot.render(par7); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/model/ModelArmorWingsPheo.java b/src/main/java/com/hbm/render/model/ModelArmorWingsPheo.java new file mode 100644 index 000000000..eade0094e --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorWingsPheo.java @@ -0,0 +1,224 @@ +package com.hbm.render.model; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.Entity; + +public class ModelArmorWingsPheo extends ModelArmorBase { + + ModelRendererObj axe; + + public ModelArmorWingsPheo() { + super(0); + axe = new ModelRendererObj(ResourceManager.armor_axepack, "Wings"); + } + + @Override + public void render(Entity entity, float par2, float par3, float par4, float par5, float par6, float par7) { + setRotationAngles(par2, par3, par4, par5, par6, par7, entity); + body.copyTo(axe); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.wings_pheo); + axe.render(par7); + + GL11.glPushMatrix(); + float lastX = OpenGlHelper.lastBrightnessX; + float lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + + double pixel = 0.0625D; + + if(entity.isSneaking()) { + GL11.glRotated(28.6479D, 1, 0, 0); + } + + GL11.glPushMatrix(); + GL11.glTranslated(0, pixel * 15, pixel * 5.5); + this.renderFlame(); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, pixel * 3, pixel * 5.5); + GL11.glRotated(-25, 0, 1, 0); + GL11.glRotated(-90, 0, 0, 1); + GL11.glTranslated(0, pixel * 5, 0); + this.renderFlame(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -pixel * 5, 0); + GL11.glRotated(45, 0, 0, 1); + GL11.glTranslated(-pixel, pixel * 5.5, 0); + this.renderFlame(); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -pixel * 5, 0); + GL11.glRotated(-45, 0, 0, 1); + GL11.glTranslated(pixel, pixel * 5.5, 0); + this.renderFlame(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, pixel * 15, pixel * 5.5); + this.renderFlame(); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, pixel * 3, pixel * 5.5); + GL11.glRotated(25, 0, 1, 0); + GL11.glRotated(90, 0, 0, 1); + GL11.glTranslated(0, pixel * 5, 0); + this.renderFlame(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -pixel * 5, 0); + GL11.glRotated(45, 0, 0, 1); + GL11.glTranslated(-pixel, pixel * 5.5, 0); + this.renderFlame(); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -pixel * 5, 0); + GL11.glRotated(-45, 0, 0, 1); + GL11.glTranslated(pixel, pixel * 5.5, 0); + this.renderFlame(); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + private static void renderFlame() { + + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_TRIANGLES); + + double b = 0.125D; + double t = 0.375; + double w = 0.0625D; + double s2 = Math.sqrt(2D) / 2D * w; + int colorBase = 0x808080; + int colorFlame = 0x004040; + int colorTip = 0x000000; + + tess.setColorOpaque_I(colorBase); + tess.addVertex(0, 0, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(w, b, 0); + tess.addVertex(s2, b, s2); + + tess.setColorOpaque_I(colorBase); + tess.addVertex(0, 0, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(s2, b, s2); + tess.addVertex(0, b, w); + + tess.setColorOpaque_I(colorBase); + tess.addVertex(0, 0, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(0, b, w); + tess.addVertex(-s2, b, s2); + + tess.setColorOpaque_I(colorBase); + tess.addVertex(0, 0, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(-s2, b, s2); + tess.addVertex(-w, b, 0); + + tess.setColorOpaque_I(colorBase); + tess.addVertex(0, 0, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(-w, b, 0); + tess.addVertex(-s2, b, -s2); + + tess.setColorOpaque_I(colorBase); + tess.addVertex(0, 0, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(-s2, b, -s2); + tess.addVertex(0, b, -w); + + tess.setColorOpaque_I(colorBase); + tess.addVertex(0, 0, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(0, b, -w); + tess.addVertex(s2, b, -s2); + + tess.setColorOpaque_I(colorBase); + tess.addVertex(0, 0, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(s2, b, -s2); + tess.addVertex(w, b, 0); + + //////////////////////// + + tess.setColorOpaque_I(colorTip); + tess.addVertex(0, t, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(w, b, 0); + tess.addVertex(s2, b, s2); + + tess.setColorOpaque_I(colorTip); + tess.addVertex(0, t, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(s2, b, s2); + tess.addVertex(0, b, w); + + tess.setColorOpaque_I(colorTip); + tess.addVertex(0, t, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(0, b, w); + tess.addVertex(-s2, b, s2); + + tess.setColorOpaque_I(colorTip); + tess.addVertex(0, t, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(-s2, b, s2); + tess.addVertex(-w, b, 0); + + tess.setColorOpaque_I(colorTip); + tess.addVertex(0, t, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(-w, b, 0); + tess.addVertex(-s2, b, -s2); + + tess.setColorOpaque_I(colorTip); + tess.addVertex(0, t, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(-s2, b, -s2); + tess.addVertex(0, b, -w); + + tess.setColorOpaque_I(colorTip); + tess.addVertex(0, t, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(0, b, -w); + tess.addVertex(s2, b, -s2); + + tess.setColorOpaque_I(colorTip); + tess.addVertex(0, t, 0); + tess.setColorOpaque_I(colorFlame); + tess.addVertex(s2, b, -s2); + tess.addVertex(w, b, 0); + + tess.draw(); + } +} diff --git a/src/main/java/com/hbm/render/model/ModelAt4.java b/src/main/java/com/hbm/render/model/ModelAt4.java deleted file mode 100644 index f2f15512f..000000000 --- a/src/main/java/com/hbm/render/model/ModelAt4.java +++ /dev/null @@ -1,134 +0,0 @@ -// Date: 06.04.2016 17:39:42 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelAt4 extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelAt4() - { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 18, 3, 2); - Shape1.setRotationPoint(-8F, 0F, 0F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 5); - Shape2.addBox(0F, 0F, 0F, 18, 2, 3); - Shape2.setRotationPoint(-8F, 0.5F, -0.5F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 3, 4, 4); - Shape3.setRotationPoint(10F, -0.5F, -1F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 18); - Shape4.addBox(0F, 0F, 0F, 1, 3, 3); - Shape4.setRotationPoint(-9F, 0F, -0.5F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 14, 10); - Shape5.addBox(0F, 0F, 0F, 1, 4, 4); - Shape5.setRotationPoint(-10F, -0.5F, -1F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 24); - Shape6.addBox(0F, 0F, 0F, 1, 3, 1); - Shape6.setRotationPoint(-6F, 3F, 0.5F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 4, 24); - Shape7.addBox(0F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(-3F, 3F, 0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 8, 18); - Shape8.addBox(0F, 0F, 0F, 3, 1, 1); - Shape8.setRotationPoint(-6F, -0.5F, -2F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 28); - Shape9.addBox(0F, 0F, 0F, 1, 1, 2); - Shape9.setRotationPoint(-5F, 0F, -1.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - public void renderModel(float f5) - { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelB93.java b/src/main/java/com/hbm/render/model/ModelB93.java deleted file mode 100644 index 5b42ca2ef..000000000 --- a/src/main/java/com/hbm/render/model/ModelB93.java +++ /dev/null @@ -1,487 +0,0 @@ -// Date: 26.04.2018 22:13:08 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.entity.Entity; - -public class ModelB93 extends ModelBase { - // fields - ModelRenderer Muzzle1; - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer Grip; - ModelRenderer Front1; - ModelRenderer Front2; - ModelRenderer Body; - ModelRenderer Top; - ModelRenderer GripBottom; - ModelRenderer Handle; - ModelRenderer HandleBack; - ModelRenderer Frame1; - ModelRenderer Frame2; - ModelRenderer Frame3; - ModelRenderer Trigger; - ModelRenderer BackPlate1; - ModelRenderer Back; - ModelRenderer BackPlate2; - ModelRenderer Pump1; - ModelRenderer Pump2; - ModelRenderer BodyPlate; - ModelRenderer Muz1; - ModelRenderer Muz2; - ModelRenderer Muz3; - ModelRenderer Damp1; - ModelRenderer Damp2; - ModelRenderer Damp3; - ModelRenderer DampFront; - ModelRenderer EmitterRod; - ModelRenderer EmitterCrystal; - ModelRenderer EmitterClamp1; - ModelRenderer EmitterClamp2; - ModelRenderer EmitterClamp3; - ModelRenderer EmitterClamp4; - ModelRenderer EmitterClamp5; - ModelRenderer EmitterClamp6; - ModelRenderer EmitterClamp7; - ModelRenderer EmitterClamp8; - ModelRenderer PowBox; - ModelRenderer PowPanel; - ModelRenderer Nix1; - ModelRenderer Nix2; - ModelRenderer Nix3; - ModelRenderer Nix11; - ModelRenderer Nix21; - ModelRenderer Nix31; - ModelRenderer Nix12; - ModelRenderer Nix22; - ModelRenderer Nix32; - ModelRenderer Pylon; - ModelRenderer Wire1; - ModelRenderer Wire2; - ModelRenderer Wire3; - ModelRenderer PowPylon; - - public ModelB93() { - textureWidth = 128; - textureHeight = 64; - - Muzzle1 = new ModelRenderer(this, 22, 36); - Muzzle1.addBox(0F, 0F, 0F, 2, 3, 2); - Muzzle1.setRotationPoint(-24F, 0.5F, -1F); - Muzzle1.setTextureSize(64, 32); - Muzzle1.mirror = true; - setRotation(Muzzle1, 0F, 0F, 0F); - Barrel1 = new ModelRenderer(this, 0, 0); - Barrel1.addBox(0F, 0F, 0F, 24, 2, 3); - Barrel1.setRotationPoint(-24F, 1F, -1.5F); - Barrel1.setTextureSize(64, 32); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 0, 5); - Barrel2.addBox(0F, 0F, 0F, 22, 1, 2); - Barrel2.setRotationPoint(-22F, 0.5F, -1F); - Barrel2.setTextureSize(64, 32); - Barrel2.mirror = true; - setRotation(Barrel2, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 8); - Grip.addBox(0F, 0F, 0F, 20, 3, 4); - Grip.setRotationPoint(-20F, 3F, -2F); - Grip.setTextureSize(64, 32); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Front1 = new ModelRenderer(this, 10, 36); - Front1.addBox(0F, 0F, 0F, 2, 4, 4); - Front1.setRotationPoint(-22F, 0.5F, -2F); - Front1.setTextureSize(64, 32); - Front1.mirror = true; - setRotation(Front1, 0F, 0F, 0F); - Front2 = new ModelRenderer(this, 0, 36); - Front2.addBox(0F, 0F, 0F, 2, 6, 3); - Front2.setRotationPoint(-22F, 0F, -1.5F); - Front2.setTextureSize(64, 32); - Front2.mirror = true; - setRotation(Front2, 0F, 0F, 0F); - Body = new ModelRenderer(this, 0, 15); - Body.addBox(0F, 0F, 0F, 15, 7, 4); - Body.setRotationPoint(0F, 0.5F, -2F); - Body.setTextureSize(64, 32); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Top = new ModelRenderer(this, 28, 60); - Top.addBox(0F, 0F, 0F, 15, 1, 3); - Top.setRotationPoint(0F, 0F, -1.5F); - Top.setTextureSize(64, 32); - Top.mirror = true; - setRotation(Top, 0F, 0F, 0F); - GripBottom = new ModelRenderer(this, 24, 43); - GripBottom.addBox(0F, 0F, 0F, 18, 1, 2); - GripBottom.setRotationPoint(-18F, 5.5F, -1F); - GripBottom.setTextureSize(64, 32); - GripBottom.mirror = true; - setRotation(GripBottom, 0F, 0F, 0F); - Handle = new ModelRenderer(this, 0, 45); - Handle.addBox(0F, 0F, 0F, 6, 15, 4); - Handle.setRotationPoint(6F, 7F, -2F); - Handle.setTextureSize(64, 32); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.2268928F); - HandleBack = new ModelRenderer(this, 20, 46); - HandleBack.addBox(5.5F, 0F, 0F, 1, 15, 3); - HandleBack.setRotationPoint(6F, 7F, -1.5F); - HandleBack.setTextureSize(64, 32); - HandleBack.mirror = true; - setRotation(HandleBack, 0F, 0F, -0.2268928F); - Frame1 = new ModelRenderer(this, 28, 57); - Frame1.addBox(0F, 0F, 0F, 7, 1, 2); - Frame1.setRotationPoint(0.5F, 11F, -1F); - Frame1.setTextureSize(64, 32); - Frame1.mirror = true; - setRotation(Frame1, 0F, 0F, 0F); - Frame2 = new ModelRenderer(this, 28, 51); - Frame2.addBox(0F, 0F, 0F, 2, 4, 2); - Frame2.setRotationPoint(-2F, 6.5F, -1F); - Frame2.setTextureSize(64, 32); - Frame2.mirror = true; - setRotation(Frame2, 0F, 0F, 0F); - Frame3 = new ModelRenderer(this, 46, 57); - Frame3.addBox(0F, -1F, 0F, 3, 1, 2); - Frame3.setRotationPoint(-2F, 10.5F, -1F); - Frame3.setTextureSize(64, 32); - Frame3.mirror = true; - setRotation(Frame3, 0F, 0F, 0.5235988F); - Trigger = new ModelRenderer(this, 36, 53); - Trigger.addBox(0F, 0F, 0F, 2, 3, 1); - Trigger.setRotationPoint(4F, 7F, -0.5F); - Trigger.setTextureSize(64, 32); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.1919862F); - BackPlate1 = new ModelRenderer(this, 56, 53); - BackPlate1.addBox(-1F, 0F, 0F, 1, 4, 3); - BackPlate1.setRotationPoint(15F, 0F, -1.5F); - BackPlate1.setTextureSize(64, 32); - BackPlate1.mirror = true; - setRotation(BackPlate1, 0F, 0F, -0.5235988F); - Back = new ModelRenderer(this, 42, 49); - Back.addBox(0F, 0F, 0F, 2, 4, 4); - Back.setRotationPoint(15F, 3.5F, -2F); - Back.setTextureSize(64, 32); - Back.mirror = true; - setRotation(Back, 0F, 0F, 0F); - BackPlate2 = new ModelRenderer(this, 48, 5); - BackPlate2.addBox(-2F, 0F, 0F, 2, 4, 4); - BackPlate2.setRotationPoint(15F, 0.5F, -2F); - BackPlate2.setTextureSize(64, 32); - BackPlate2.mirror = true; - setRotation(BackPlate2, 0F, 0F, -0.4886922F); - Pump1 = new ModelRenderer(this, 46, 29); - Pump1.addBox(0F, 0F, 0F, 7, 2, 2); - Pump1.setRotationPoint(10F, 1F, -1F); - Pump1.setTextureSize(64, 32); - Pump1.mirror = true; - setRotation(Pump1, 0F, 0F, 0F); - Pump2 = new ModelRenderer(this, 44, 33); - Pump2.addBox(0F, 0F, 0F, 3, 3, 7); - Pump2.setRotationPoint(17F, 0.5F, -3.5F); - Pump2.setTextureSize(64, 32); - Pump2.mirror = true; - setRotation(Pump2, 0F, 0F, 0F); - BodyPlate = new ModelRenderer(this, 0, 26); - BodyPlate.addBox(0F, 0F, 0F, 14, 5, 5); - BodyPlate.setRotationPoint(1.5F, 2F, -2.5F); - BodyPlate.setTextureSize(64, 32); - BodyPlate.mirror = true; - setRotation(BodyPlate, 0F, 0F, 0F); - Muz1 = new ModelRenderer(this, 90, 3); - Muz1.addBox(0F, 0F, 0F, 2, 5, 3); - Muz1.setRotationPoint(-26F, -0.5F, -1.5F); - Muz1.setTextureSize(64, 32); - Muz1.mirror = true; - setRotation(Muz1, 0F, 0F, 0F); - Muz2 = new ModelRenderer(this, 64, 2); - Muz2.addBox(0F, 0F, 0F, 2, 3, 5); - Muz2.setRotationPoint(-26F, 0.5F, -2.5F); - Muz2.setTextureSize(64, 32); - Muz2.mirror = true; - setRotation(Muz2, 0F, 0F, 0F); - Muz3 = new ModelRenderer(this, 78, 3); - Muz3.addBox(0F, 0F, 0F, 2, 4, 4); - Muz3.setRotationPoint(-26F, 0F, -2F); - Muz3.setTextureSize(64, 32); - Muz3.mirror = true; - setRotation(Muz3, 0F, 0F, 0F); - Damp1 = new ModelRenderer(this, 64, 53); - Damp1.addBox(0F, 0F, 0F, 24, 7, 4); - Damp1.setRotationPoint(-50F, -1.5F, -2F); - Damp1.setTextureSize(64, 32); - Damp1.mirror = true; - setRotation(Damp1, 0F, 0F, 0F); - Damp2 = new ModelRenderer(this, 64, 42); - Damp2.addBox(0F, 0F, 0F, 24, 4, 7); - Damp2.setRotationPoint(-50F, 0F, -3.5F); - Damp2.setTextureSize(64, 32); - Damp2.mirror = true; - setRotation(Damp2, 0F, 0F, 0F); - Damp3 = new ModelRenderer(this, 64, 30); - Damp3.addBox(0F, 0F, 0F, 24, 6, 6); - Damp3.setRotationPoint(-50F, -1F, -3F); - Damp3.setTextureSize(64, 32); - Damp3.mirror = true; - setRotation(Damp3, 0F, 0F, 0F); - DampFront = new ModelRenderer(this, 64, 22); - DampFront.addBox(0F, 0F, 0F, 2, 4, 4); - DampFront.setRotationPoint(-51.1F, 0F, -2F); - DampFront.setTextureSize(64, 32); - DampFront.mirror = true; - setRotation(DampFront, 0F, 0F, 0F); - EmitterRod = new ModelRenderer(this, 64, 18); - EmitterRod.addBox(0F, 0F, 0F, 4, 2, 2); - EmitterRod.setRotationPoint(-55F, 1F, -1F); - EmitterRod.setTextureSize(64, 32); - EmitterRod.mirror = true; - setRotation(EmitterRod, 0F, 0F, 0F); - EmitterCrystal = new ModelRenderer(this, 76, 24); - EmitterCrystal.addBox(0F, -1.5F, -1.5F, 3, 3, 3); - EmitterCrystal.setRotationPoint(-57F, 2F, 0F); - EmitterCrystal.setTextureSize(64, 32); - EmitterCrystal.mirror = true; - setRotation(EmitterCrystal, 0.7853982F, 0F, 0F); - EmitterClamp1 = new ModelRenderer(this, 88, 27); - EmitterClamp1.addBox(-5F, 0F, 0F, 5, 2, 1); - EmitterClamp1.setRotationPoint(-50F, 1F, -0.5F); - EmitterClamp1.setTextureSize(64, 32); - EmitterClamp1.mirror = true; - setRotation(EmitterClamp1, 0F, 0F, 1.047198F); - EmitterClamp2 = new ModelRenderer(this, 88, 24); - EmitterClamp2.addBox(-5F, -2F, 0F, 5, 2, 1); - EmitterClamp2.setRotationPoint(-50F, 3F, -0.5F); - EmitterClamp2.setTextureSize(64, 32); - EmitterClamp2.mirror = true; - setRotation(EmitterClamp2, 0F, 0F, -1.047198F); - EmitterClamp3 = new ModelRenderer(this, 100, 27); - EmitterClamp3.addBox(-5F, 0F, 0F, 5, 1, 2); - EmitterClamp3.setRotationPoint(-50F, 1.5F, -1F); - EmitterClamp3.setTextureSize(64, 32); - EmitterClamp3.mirror = true; - setRotation(EmitterClamp3, 0F, -1.047198F, 0F); - EmitterClamp4 = new ModelRenderer(this, 100, 24); - EmitterClamp4.addBox(-5F, 0F, -2F, 5, 1, 2); - EmitterClamp4.setRotationPoint(-50F, 1.5F, 1F); - EmitterClamp4.setTextureSize(64, 32); - EmitterClamp4.mirror = true; - setRotation(EmitterClamp4, 0F, 1.047198F, 0F); - EmitterClamp5 = new ModelRenderer(this, 76, 22); - EmitterClamp5.addBox(-6F, 0F, 0F, 7, 1, 1); - EmitterClamp5.setRotationPoint(-53F, -4F, -0.5F); - EmitterClamp5.setTextureSize(64, 32); - EmitterClamp5.mirror = true; - setRotation(EmitterClamp5, 0F, 0F, -0.5235988F); - EmitterClamp6 = new ModelRenderer(this, 76, 20); - EmitterClamp6.addBox(-6F, -1F, 0F, 7, 1, 1); - EmitterClamp6.setRotationPoint(-53F, 8F, -0.5F); - EmitterClamp6.setTextureSize(64, 32); - EmitterClamp6.mirror = true; - setRotation(EmitterClamp6, 0F, 0F, 0.5235988F); - EmitterClamp7 = new ModelRenderer(this, 92, 22); - EmitterClamp7.addBox(-6F, 0F, 0F, 7, 1, 1); - EmitterClamp7.setRotationPoint(-53F, 1.5F, -6F); - EmitterClamp7.setTextureSize(64, 32); - EmitterClamp7.mirror = true; - setRotation(EmitterClamp7, 0F, 0.5235988F, 0F); - EmitterClamp8 = new ModelRenderer(this, 92, 20); - EmitterClamp8.addBox(-6F, 0F, -1F, 7, 1, 1); - EmitterClamp8.setRotationPoint(-53F, 1.5F, 6F); - EmitterClamp8.setTextureSize(64, 32); - EmitterClamp8.mirror = true; - setRotation(EmitterClamp8, 0F, -0.5235988F, 0F); - PowBox = new ModelRenderer(this, 76, 11); - PowBox.addBox(0F, 0F, 0F, 10, 5, 4); - PowBox.setRotationPoint(4F, 2F, 2.5F); - PowBox.setTextureSize(64, 32); - PowBox.mirror = true; - setRotation(PowBox, 0F, 0F, 0F); - PowPanel = new ModelRenderer(this, 44, 24); - PowPanel.addBox(0F, 0F, 0F, 9, 4, 1); - PowPanel.setRotationPoint(4.5F, 2.5F, 6F); - PowPanel.setTextureSize(64, 32); - PowPanel.mirror = true; - setRotation(PowPanel, 0F, 0F, 0F); - Nix1 = new ModelRenderer(this, 56, 17); - Nix1.addBox(0F, 0F, 0F, 2, 5, 2); - Nix1.setRotationPoint(11F, -3F, 4F); - Nix1.setTextureSize(64, 32); - Nix1.mirror = true; - setRotation(Nix1, 0F, 0F, 0F); - Nix2 = new ModelRenderer(this, 48, 17); - Nix2.addBox(0F, 0F, 0F, 2, 5, 2); - Nix2.setRotationPoint(8F, -3F, 4F); - Nix2.setTextureSize(64, 32); - Nix2.mirror = true; - setRotation(Nix2, 0F, 0F, 0F); - Nix3 = new ModelRenderer(this, 40, 17); - Nix3.addBox(0F, 0F, 0F, 2, 5, 2); - Nix3.setRotationPoint(5F, -3F, 4F); - Nix3.setTextureSize(64, 32); - Nix3.mirror = true; - setRotation(Nix3, 0F, 0F, 0F); - Nix11 = new ModelRenderer(this, 72, 15); - Nix11.addBox(0F, 0F, 0F, 1, 2, 1); - Nix11.setRotationPoint(11.5F, -5F, 4.5F); - Nix11.setTextureSize(64, 32); - Nix11.mirror = true; - setRotation(Nix11, 0F, 0F, 0F); - Nix21 = new ModelRenderer(this, 68, 15); - Nix21.addBox(0F, 0F, 0F, 1, 2, 1); - Nix21.setRotationPoint(8.5F, -5F, 4.5F); - Nix21.setTextureSize(64, 32); - Nix21.mirror = true; - setRotation(Nix21, 0F, 0F, 0F); - Nix31 = new ModelRenderer(this, 64, 15); - Nix31.addBox(0F, 0F, 0F, 1, 2, 1); - Nix31.setRotationPoint(5.5F, -5F, 4.5F); - Nix31.setTextureSize(64, 32); - Nix31.mirror = true; - setRotation(Nix31, 0F, 0F, 0F); - Nix12 = new ModelRenderer(this, 72, 10); - Nix12.addBox(0F, 0F, 0F, 1, 4, 1); - Nix12.setRotationPoint(11.5F, -1.5F, 4.5F); - Nix12.setTextureSize(64, 32); - Nix12.mirror = true; - setRotation(Nix12, 0F, 0F, 0F); - Nix22 = new ModelRenderer(this, 68, 10); - Nix22.addBox(0F, 0F, 0F, 1, 4, 1); - Nix22.setRotationPoint(8.5F, -1.5F, 4.5F); - Nix22.setTextureSize(64, 32); - Nix22.mirror = true; - setRotation(Nix22, 0F, 0F, 0F); - Nix32 = new ModelRenderer(this, 64, 10); - Nix32.addBox(0F, 0F, 0F, 1, 4, 1); - Nix32.setRotationPoint(5.5F, -1.5F, 4.5F); - Nix32.setTextureSize(64, 32); - Nix32.mirror = true; - setRotation(Nix32, 0F, 0F, 0F); - Pylon = new ModelRenderer(this, 114, 24); - Pylon.addBox(0F, 0F, 0F, 2, 2, 4); - Pylon.setRotationPoint(-35F, 1F, 3.5F); - Pylon.setTextureSize(64, 32); - Pylon.mirror = true; - setRotation(Pylon, 0F, 0F, 0F); - Wire1 = new ModelRenderer(this, 82, 0); - Wire1.addBox(0F, 0F, 0F, 20, 0, 3); - Wire1.setRotationPoint(-24F, 7F, 4F); - Wire1.setTextureSize(64, 32); - Wire1.mirror = true; - setRotation(Wire1, 0F, 0F, 0F); - Wire2 = new ModelRenderer(this, 104, 3); - Wire2.addBox(0F, 0F, 0F, 9, 0, 3); - Wire2.setRotationPoint(-4F, 7F, 4F); - Wire2.setTextureSize(64, 32); - Wire2.mirror = true; - setRotation(Wire2, 0F, 0F, -0.4363323F); - Wire3 = new ModelRenderer(this, 100, 6); - Wire3.addBox(-11F, 0F, 0F, 11, 0, 3); - Wire3.setRotationPoint(-24F, 7F, 4F); - Wire3.setTextureSize(64, 32); - Wire3.mirror = true; - setRotation(Wire3, 0F, 0F, 0.4363323F); - PowPylon = new ModelRenderer(this, 108, 17); - PowPylon.addBox(0F, 0F, 0F, 2, 2, 5); - PowPylon.setRotationPoint(2.5F, 3F, 2.5F); - PowPylon.setTextureSize(64, 32); - PowPylon.mirror = true; - setRotation(PowPylon, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Muzzle1.render(f5); - Barrel1.render(f5); - Barrel2.render(f5); - Grip.render(f5); - Front1.render(f5); - Front2.render(f5); - Body.render(f5); - Top.render(f5); - GripBottom.render(f5); - Handle.render(f5); - HandleBack.render(f5); - Frame1.render(f5); - Frame2.render(f5); - Frame3.render(f5); - Trigger.render(f5); - BackPlate1.render(f5); - Back.render(f5); - BackPlate2.render(f5); - Pump1.render(f5); - Pump2.render(f5); - BodyPlate.render(f5); - Muz1.render(f5); - Muz2.render(f5); - Muz3.render(f5); - Damp1.render(f5); - Damp2.render(f5); - Damp3.render(f5); - DampFront.render(f5); - EmitterRod.render(f5); - EmitterCrystal.render(f5); - EmitterClamp1.render(f5); - EmitterClamp2.render(f5); - EmitterClamp3.render(f5); - EmitterClamp4.render(f5); - EmitterClamp5.render(f5); - EmitterClamp6.render(f5); - EmitterClamp7.render(f5); - EmitterClamp8.render(f5); - PowBox.render(f5); - PowPanel.render(f5); - Nix11.render(f5); - Nix21.render(f5); - Nix31.render(f5); - Nix12.render(f5); - Nix22.render(f5); - Nix32.render(f5); - GL11.glEnable(GL11.GL_BLEND); - //GL11.glDisable(GL11.GL_ALPHA_TEST); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - Nix1.render(f5); - Nix2.render(f5); - Nix3.render(f5); - GL11.glDisable(GL11.GL_BLEND); - Pylon.render(f5); - Wire1.render(f5); - Wire2.render(f5); - Wire3.render(f5); - PowPylon.render(f5); - } - - public void renderAnim(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float tran) { - - Pump1.offsetX += tran; - Pump2.offsetX += tran; - - render(entity, f, f1, f2, f3, f4, f5); - - Pump1.offsetX -= tran; - Pump2.offsetX -= tran; - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelBFLauncher.java b/src/main/java/com/hbm/render/model/ModelBFLauncher.java deleted file mode 100644 index dadb9847e..000000000 --- a/src/main/java/com/hbm/render/model/ModelBFLauncher.java +++ /dev/null @@ -1,261 +0,0 @@ -// Date: 14.11.2016 11:46:56 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelBFLauncher extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - - public ModelBFLauncher() { - textureWidth = 128; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 40, 2, 4); - Shape1.setRotationPoint(-20F, 0F, 0F); - Shape1.setTextureSize(128, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 6, 2, 2); - Shape2.setRotationPoint(-19F, 2F, 1F); - Shape2.setTextureSize(128, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 1, 4, 1); - Shape3.setRotationPoint(-12F, 2F, 1.5F); - Shape3.setTextureSize(128, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 6); - Shape4.addBox(0F, 0F, 0F, 6, 1, 4); - Shape4.setRotationPoint(-10F, 2F, 0F); - Shape4.setTextureSize(128, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 15); - Shape5.addBox(0F, 0F, 0F, 2, 3, 1); - Shape5.setRotationPoint(-7F, 3F, 1.5F); - Shape5.setTextureSize(128, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 4, 10); - Shape6.addBox(0F, 0F, 0F, 3, 3, 1); - Shape6.setRotationPoint(-10F, 3F, 1.5F); - Shape6.setTextureSize(128, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 12, 10); - Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(-7F, 3F, 1.5F); - Shape7.setTextureSize(128, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.5235988F); - Shape8 = new ModelRenderer(this, 36, 6); - Shape8.addBox(0F, 0F, 0F, 10, 1, 4); - Shape8.setRotationPoint(-3F, 2F, 0F); - Shape8.setTextureSize(128, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 64, 6); - Shape9.addBox(0F, 0F, 0F, 2, 3, 2); - Shape9.setRotationPoint(7F, 2F, 1F); - Shape9.setTextureSize(128, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 88, 0); - Shape10.addBox(0F, 0F, 0F, 3, 4, 4); - Shape10.setRotationPoint(17F, -4F, 0F); - Shape10.setTextureSize(128, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 72, 6); - Shape11.addBox(0F, 0F, 0F, 2, 3, 1); - Shape11.setRotationPoint(18F, -7F, 0F); - Shape11.setTextureSize(128, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 78, 6); - Shape12.addBox(0F, 0F, 0F, 2, 3, 1); - Shape12.setRotationPoint(18F, -7F, 3F); - Shape12.setTextureSize(128, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape27 = new ModelRenderer(this, 18, 27); - Shape27.addBox(0F, 0F, 0F, 2, 5, 1); - Shape27.setRotationPoint(13F, -5F, 1.5F); - Shape27.setTextureSize(128, 64); - Shape27.mirror = true; - setRotation(Shape27, 0F, 0F, 0F); - Shape28 = new ModelRenderer(this, 84, 6); - Shape28.addBox(0F, 0F, 0F, 1, 3, 1); - Shape28.setRotationPoint(16F, -3F, 1.5F); - Shape28.setTextureSize(128, 64); - Shape28.mirror = true; - setRotation(Shape28, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 30, 15); - Shape30.addBox(0F, 0F, 0F, 12, 2, 2); - Shape30.setRotationPoint(-7F, -1F, 4F); - Shape30.setTextureSize(128, 64); - Shape30.mirror = true; - setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 44, 19); - Shape31.addBox(0F, 0F, 0F, 14, 1, 1); - Shape31.setRotationPoint(5F, -0.5F, 4.5F); - Shape31.setTextureSize(128, 64); - Shape31.mirror = true; - setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 12, 27); - Shape32.addBox(0F, 0F, 0F, 1, 1, 1); - Shape32.setRotationPoint(18F, -0.5F, 3.5F); - Shape32.setTextureSize(128, 64); - Shape32.mirror = true; - setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 24, 29); - Shape33.addBox(0F, 0F, 0F, 31, 1, 2); - Shape33.setRotationPoint(-18F, -1F, 1F); - Shape33.setTextureSize(128, 64); - Shape33.mirror = true; - setRotation(Shape33, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 0, 34); - Shape13.addBox(0F, 0F, 0F, 22, 5, 3); - Shape13.setRotationPoint(-15F, -6F, 0.5F); - Shape13.setTextureSize(128, 64); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 0, 42); - Shape14.addBox(0F, 0F, 0F, 22, 3, 5); - Shape14.setRotationPoint(-15F, -5F, -0.5F); - Shape14.setTextureSize(128, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 0, 50); - Shape15.addBox(0F, 0F, 0F, 1, 3, 3); - Shape15.setRotationPoint(-16F, -5F, 0.5F); - Shape15.setTextureSize(128, 64); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 8, 50); - Shape16.addBox(0F, 0F, 0F, 2, 3, 3); - Shape16.setRotationPoint(7F, -5F, 0.5F); - Shape16.setTextureSize(128, 64); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 18, 50); - Shape17.addBox(0F, 0F, 0F, 4, 1, 3); - Shape17.setRotationPoint(9F, -2F, 0.5F); - Shape17.setTextureSize(128, 64); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 32, 50); - Shape18.addBox(0F, 0F, 0F, 4, 1, 3); - Shape18.setRotationPoint(9F, -6F, 0.5F); - Shape18.setTextureSize(128, 64); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 46, 50); - Shape19.addBox(0F, 0F, 0F, 4, 3, 1); - Shape19.setRotationPoint(9F, -5F, -0.5F); - Shape19.setTextureSize(128, 64); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 56, 50); - Shape20.addBox(0F, 0F, 0F, 4, 3, 1); - Shape20.setRotationPoint(9F, -5F, 3.5F); - Shape20.setTextureSize(128, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape2.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape6.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape7.render(f5); - Shape8.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape9.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape27.render(f5); - Shape28.render(f5); - Shape30.render(f5); - Shape31.render(f5); - Shape32.render(f5); - Shape33.render(f5); - - int ammo = ItemGunBase.getMag(item); - if(ammo > 0) { - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - } - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelBaleflare.java b/src/main/java/com/hbm/render/model/ModelBaleflare.java deleted file mode 100644 index 1449240eb..000000000 --- a/src/main/java/com/hbm/render/model/ModelBaleflare.java +++ /dev/null @@ -1,114 +0,0 @@ -// Date: 14.11.2016 12:21:58 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelBaleflare extends ModelBase { - // fields - ModelRenderer Shape9; - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - - public ModelBaleflare() { - textureWidth = 128; - textureHeight = 32; - - Shape9 = new ModelRenderer(this, 0, 0); - Shape9.addBox(0F, 0F, 0F, 22, 5, 3); - Shape9.setRotationPoint(-11F, -2.5F, -1.5F); - Shape9.setTextureSize(128, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape1 = new ModelRenderer(this, 0, 8); - Shape1.addBox(0F, 0F, 0F, 22, 3, 5); - Shape1.setRotationPoint(-11F, -1.5F, -2.5F); - Shape1.setTextureSize(128, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 16); - Shape2.addBox(0F, 0F, 0F, 1, 3, 3); - Shape2.setRotationPoint(-12F, -1.5F, -1.5F); - Shape2.setTextureSize(128, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 8, 16); - Shape3.addBox(0F, 0F, 0F, 2, 3, 3); - Shape3.setRotationPoint(11F, -1.5F, -1.5F); - Shape3.setTextureSize(128, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 18, 16); - Shape4.addBox(0F, 0F, 0F, 4, 1, 3); - Shape4.setRotationPoint(13F, 1.5F, -1.5F); - Shape4.setTextureSize(128, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 32, 16); - Shape5.addBox(0F, 0F, 0F, 4, 1, 3); - Shape5.setRotationPoint(13F, -2.5F, -1.5F); - Shape5.setTextureSize(128, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 46, 16); - Shape6.addBox(0F, 0F, 0F, 4, 3, 1); - Shape6.setRotationPoint(13F, -1.5F, -2.5F); - Shape6.setTextureSize(128, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 56, 16); - Shape7.addBox(0F, 0F, 0F, 4, 3, 1); - Shape7.setRotationPoint(13F, -1.5F, 1.5F); - Shape7.setTextureSize(128, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape9.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - public void renderAll(float f5) { - Shape9.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelBoltAction.java b/src/main/java/com/hbm/render/model/ModelBoltAction.java deleted file mode 100644 index 287421431..000000000 --- a/src/main/java/com/hbm/render/model/ModelBoltAction.java +++ /dev/null @@ -1,250 +0,0 @@ -// Date: 14.01.2018 22:26:04 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; - -public class ModelBoltAction extends ModelBase { - // fields - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer Grip; - ModelRenderer BodyFront; - ModelRenderer BodyMain; - ModelRenderer LeverFront; - ModelRenderer LeverBottom; - ModelRenderer LeverMid; - ModelRenderer Trigger; - ModelRenderer GripFront; - ModelRenderer GropFrontBottom; - ModelRenderer GripBottom; - ModelRenderer Bolt; - ModelRenderer ChamberFront; - ModelRenderer ChamberBack; - ModelRenderer BodyBack; - ModelRenderer LeverTip; - ModelRenderer Lever; - ModelRenderer HandleFront; - ModelRenderer Pointer; - ModelRenderer HandleBottom; - ModelRenderer HandleGrip; - - public ModelBoltAction() { - textureWidth = 128; - textureHeight = 64; - - Barrel1 = new ModelRenderer(this, 0, 0); - Barrel1.addBox(0F, 0F, 0F, 60, 3, 2); - Barrel1.setRotationPoint(-60F, 1.5F, -1F); - Barrel1.setTextureSize(64, 32); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 0, 5); - Barrel2.addBox(0F, 0F, 0F, 60, 2, 3); - Barrel2.setRotationPoint(-60F, 2F, -1.5F); - Barrel2.setTextureSize(64, 32); - Barrel2.mirror = true; - setRotation(Barrel2, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 10); - Grip.addBox(0F, 0F, 0F, 28, 5, 4); - Grip.setRotationPoint(-28F, 3F, -2F); - Grip.setTextureSize(64, 32); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 0, 19); - BodyFront.addBox(0F, 0F, 0F, 3, 7, 4); - BodyFront.setRotationPoint(0F, 2.5F, -2F); - BodyFront.setTextureSize(64, 32); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - BodyMain = new ModelRenderer(this, 14, 19); - BodyMain.addBox(0F, 0F, 0F, 8, 7, 4); - BodyMain.setRotationPoint(3F, 2.5F, -2F); - BodyMain.setTextureSize(64, 32); - BodyMain.mirror = true; - setRotation(BodyMain, 0F, 0F, 0F); - LeverFront = new ModelRenderer(this, 62, 30); - LeverFront.addBox(-1F, 0F, 0F, 2, 4, 2); - LeverFront.setRotationPoint(7F, 9F, -1F); - LeverFront.setTextureSize(64, 32); - LeverFront.mirror = true; - setRotation(LeverFront, 0F, 0F, 0F); - LeverBottom = new ModelRenderer(this, 70, 30); - LeverBottom.addBox(0F, 4F, 0F, 6, 1, 2); - LeverBottom.setRotationPoint(7F, 9F, -1F); - LeverBottom.setTextureSize(64, 32); - LeverBottom.mirror = true; - setRotation(LeverBottom, 0F, 0F, 0F); - LeverMid = new ModelRenderer(this, 62, 36); - LeverMid.addBox(6F, 0F, 0F, 1, 5, 2); - LeverMid.setRotationPoint(7F, 9F, -1F); - LeverMid.setTextureSize(64, 32); - LeverMid.mirror = true; - setRotation(LeverMid, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 88, 30); - Trigger.addBox(-1F, 0F, 0F, 1, 3, 1); - Trigger.setRotationPoint(12.5F, 9F, -0.5F); - Trigger.setTextureSize(64, 32); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.3490659F); - GripFront = new ModelRenderer(this, 0, 30); - GripFront.addBox(0F, 0F, 0F, 18, 3, 4); - GripFront.setRotationPoint(-46F, 3F, -2F); - GripFront.setTextureSize(128, 64); - GripFront.mirror = true; - setRotation(GripFront, 0F, 0F, 0F); - GropFrontBottom = new ModelRenderer(this, 0, 37); - GropFrontBottom.addBox(0F, 0F, 0F, 18, 1, 2); - GropFrontBottom.setRotationPoint(-46F, 6F, -1F); - GropFrontBottom.setTextureSize(128, 64); - GropFrontBottom.mirror = true; - setRotation(GropFrontBottom, 0F, 0F, 0F); - GripBottom = new ModelRenderer(this, 0, 40); - GripBottom.addBox(0F, 0F, 0F, 28, 1, 2); - GripBottom.setRotationPoint(-28F, 8F, -1F); - GripBottom.setTextureSize(128, 64); - GripBottom.mirror = true; - setRotation(GripBottom, 0F, 0F, 0F); - Bolt = new ModelRenderer(this, 0, 43); - Bolt.addBox(0F, 0F, 0F, 10, 2, 2); - Bolt.setRotationPoint(3F, 2F, -1F); - Bolt.setTextureSize(128, 64); - Bolt.mirror = true; - setRotation(Bolt, 0F, 0F, 0F); - ChamberFront = new ModelRenderer(this, 0, 47); - ChamberFront.addBox(0F, 0F, 0F, 3, 1, 3); - ChamberFront.setRotationPoint(0F, 1.5F, -1.5F); - ChamberFront.setTextureSize(128, 64); - ChamberFront.mirror = true; - setRotation(ChamberFront, 0F, 0F, 0F); - ChamberBack = new ModelRenderer(this, 12, 47); - ChamberBack.addBox(0F, 0F, 0F, 3, 1, 3); - ChamberBack.setRotationPoint(8F, 1.5F, -1.5F); - ChamberBack.setTextureSize(128, 64); - ChamberBack.mirror = true; - setRotation(ChamberBack, 0F, 0F, 0F); - BodyBack = new ModelRenderer(this, 0, 51); - BodyBack.addBox(0F, 0F, 0F, 4, 6, 4); - BodyBack.setRotationPoint(11F, 3.5F, -2F); - BodyBack.setTextureSize(128, 64); - BodyBack.mirror = true; - setRotation(BodyBack, 0F, 0F, 0F); - LeverTip = new ModelRenderer(this, 24, 43); - LeverTip.addBox(0F, -1F, 3F, 2, 2, 2); - LeverTip.setRotationPoint(11F, 3F, 0F); - LeverTip.setTextureSize(128, 64); - LeverTip.mirror = true; - setRotation(LeverTip, -0.4363323F, 0F, 0F); - Lever = new ModelRenderer(this, 32, 43); - Lever.addBox(0F, -0.5F, 0F, 1, 1, 4); - Lever.setRotationPoint(11.5F, 3F, 0F); - Lever.setTextureSize(128, 64); - Lever.mirror = true; - setRotation(Lever, -0.4363323F, 0F, 0F); - HandleFront = new ModelRenderer(this, 16, 51); - HandleFront.addBox(0F, 0F, 0F, 9, 5, 4); - HandleFront.setRotationPoint(15F, 4.5F, -2F); - HandleFront.setTextureSize(128, 64); - HandleFront.mirror = true; - setRotation(HandleFront, 0F, 0F, 0.4363323F); - Pointer = new ModelRenderer(this, 42, 43); - Pointer.addBox(0F, 0F, 0F, 3, 1, 1); - Pointer.setRotationPoint(-49F, 5.5F, -0.5F); - Pointer.setTextureSize(128, 64); - Pointer.mirror = true; - setRotation(Pointer, 0F, 0F, 0F); - HandleBottom = new ModelRenderer(this, 64, 10); - HandleBottom.addBox(0F, -8F, 0F, 23, 8, 4); - HandleBottom.setRotationPoint(19F, 16F, -2F); - HandleBottom.setTextureSize(128, 64); - HandleBottom.mirror = true; - setRotation(HandleBottom, 0F, 0F, 0F); - HandleGrip = new ModelRenderer(this, 38, 19); - HandleGrip.addBox(0F, 0F, 0F, 2, 5, 4); - HandleGrip.setRotationPoint(17F, 9.5F, -2F); - HandleGrip.setTextureSize(128, 64); - HandleGrip.mirror = true; - setRotation(HandleGrip, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Barrel1.render(f5); - Barrel2.render(f5); - Grip.render(f5); - BodyFront.render(f5); - BodyMain.render(f5); - LeverFront.render(f5); - LeverBottom.render(f5); - LeverMid.render(f5); - Trigger.render(f5); - GripFront.render(f5); - GropFrontBottom.render(f5); - GripBottom.render(f5); - Bolt.render(f5); - ChamberFront.render(f5); - ChamberBack.render(f5); - BodyBack.render(f5); - LeverTip.render(f5); - Lever.render(f5); - HandleFront.render(f5); - Pointer.render(f5); - HandleBottom.render(f5); - HandleGrip.render(f5); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - Tessellator tessellator = Tessellator.instance; - int color = 0x00FF00; - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, 0, 0); - tessellator.draw(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - public void renderAnim(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float rot, float tran) { - - LeverTip.rotateAngleX += rot; - Lever.rotateAngleX += rot; - Bolt.offsetX += tran; - LeverTip.offsetX += tran; - Lever.offsetX += tran; - - render(entity, f, f1, f2, f3, f4, f5); - - setRotation(LeverTip, -0.4363323F, 0F, 0F); - setRotation(Lever, -0.4363323F, 0F, 0F); - Bolt.offsetX -= tran; - LeverTip.offsetX -= tran; - Lever.offsetX -= tran; - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelCalBarrel.java b/src/main/java/com/hbm/render/model/ModelCalBarrel.java deleted file mode 100644 index 81bf3b31e..000000000 --- a/src/main/java/com/hbm/render/model/ModelCalBarrel.java +++ /dev/null @@ -1,108 +0,0 @@ -// Date: 24.10.2018 09:56:30 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelCalBarrel extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - - public ModelCalBarrel() { - textureWidth = 128; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 30, 6, 3); - Shape1.setRotationPoint(-30F, 0F, -1.5F); - Shape1.setTextureSize(128, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 19); - Shape2.addBox(0F, 0F, 0F, 30, 3, 6); - Shape2.setRotationPoint(-30F, 1.5F, -3F); - Shape2.setTextureSize(128, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 9); - Shape3.addBox(0F, 0F, 0F, 30, 5, 5); - Shape3.setRotationPoint(-30F, 0.5F, -2.5F); - Shape3.setTextureSize(128, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 28); - Shape4.addBox(0F, 0F, 0F, 1, 2, 2); - Shape4.setRotationPoint(-30.5F, 0.5F, -1F); - Shape4.setTextureSize(128, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 6, 28); - Shape5.addBox(0F, 0F, 0F, 3, 2, 2); - Shape5.setRotationPoint(-33F, 3.5F, -1F); - Shape5.setTextureSize(128, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 66, 0); - Shape6.addBox(0F, 0F, 0F, 4, 2, 4); - Shape6.setRotationPoint(-20F, -1F, -2F); - Shape6.setTextureSize(128, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 82, 0); - Shape7.addBox(0F, -1F, -4F, 4, 1, 4); - Shape7.setRotationPoint(-20F, -1F, 2F); - Shape7.setTextureSize(128, 32); - Shape7.mirror = true; - setRotation(Shape7, -0.3490659F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - public void renderAll(float f5) { - GL11.glPushMatrix(); - GL11.glTranslated(0, 1D/16D * 1, 0); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - GL11.glPopMatrix(); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelCalDualStock.java b/src/main/java/com/hbm/render/model/ModelCalDualStock.java deleted file mode 100644 index a9b94fdfd..000000000 --- a/src/main/java/com/hbm/render/model/ModelCalDualStock.java +++ /dev/null @@ -1,243 +0,0 @@ -// Date: 24.10.2018 10:31:22 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelCalDualStock extends ModelBase { - // fields - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - - public ModelCalDualStock() { - textureWidth = 64; - textureHeight = 32; - - Shape8 = new ModelRenderer(this, 0, 0); - Shape8.addBox(0F, 0F, 0F, 15, 6, 3); - Shape8.setRotationPoint(0F, 1F, -1.5F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 9); - Shape9.addBox(0F, 0F, 0F, 6, 1, 2); - Shape9.setRotationPoint(7F, 7F, -1F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 0, 12); - Shape10.addBox(0F, 0F, 0F, 2, 5, 2); - Shape10.setRotationPoint(10F, 8F, -1F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, -0.2617994F); - Shape11 = new ModelRenderer(this, 0, 26); - Shape11.addBox(0F, 0F, 0F, 3, 4, 2); - Shape11.setRotationPoint(19F, 3F, -1F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 0, 22); - Shape12.addBox(-4F, 0F, 0F, 4, 2, 2); - Shape12.setRotationPoint(19F, 3F, -1F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, -0.1115358F); - Shape13 = new ModelRenderer(this, 10, 28); - Shape13.addBox(-5F, -2F, 0F, 5, 2, 2); - Shape13.setRotationPoint(19F, 7F, -1F); - Shape13.setTextureSize(64, 32); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0.2617994F); - Shape14 = new ModelRenderer(this, 12, 23); - Shape14.addBox(0F, 0F, 0F, 1, 3, 2); - Shape14.setRotationPoint(22F, 3F, -1F); - Shape14.setTextureSize(64, 32); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0.3490659F); - Shape15 = new ModelRenderer(this, 42, 0); - Shape15.addBox(0F, 0F, 0F, 3, 5, 8); - Shape15.setRotationPoint(3F, 4F, -9.5F); - Shape15.setTextureSize(64, 32); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 36, 0); - Shape16.addBox(0F, 0F, 0F, 2, 1, 1); - Shape16.setRotationPoint(3.5F, 3.5F, -4F); - Shape16.setTextureSize(64, 32); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 36, 0); - Shape17.addBox(0F, 0F, 0F, 2, 1, 1); - Shape17.setRotationPoint(3.5F, 2.7F, -3.5F); - Shape17.setTextureSize(64, 32); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 36, 0); - Shape18.addBox(0F, 0F, 0F, 2, 1, 1); - Shape18.setRotationPoint(3.5F, 2.2F, -2.8F); - Shape18.setTextureSize(64, 32); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 36, 0); - Shape19.addBox(0F, 0F, 0F, 2, 1, 1); - Shape19.setRotationPoint(3.5F, 1.8F, -2F); - Shape19.setTextureSize(64, 32); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 16, 9); - Shape20.addBox(0F, 0F, 0F, 6, 1, 4); - Shape20.setRotationPoint(7F, 4F, -2F); - Shape20.setTextureSize(64, 32); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 8, 12); - Shape21.addBox(0F, 0F, 0F, 2, 1, 1); - Shape21.setRotationPoint(11F, 0F, 0F); - Shape21.setTextureSize(64, 32); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 8, 14); - Shape22.addBox(0F, 0F, 0F, 2, 1, 2); - Shape22.setRotationPoint(11F, -1F, 0F); - Shape22.setTextureSize(64, 32); - Shape22.mirror = true; - setRotation(Shape22, -0.3490659F, 0F, 0F); - Shape1 = new ModelRenderer(this, 42, 0); - Shape1.addBox(0F, 0F, 0F, 3, 5, 8); - Shape1.setRotationPoint(3F, 4F, 1.5F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 36, 0); - Shape2.addBox(0F, 0F, 0F, 2, 1, 1); - Shape2.setRotationPoint(3.5F, 3.5F, 3F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 36, 0); - Shape3.addBox(0F, 0F, 0F, 2, 1, 1); - Shape3.setRotationPoint(3.5F, 2.7F, 2.5F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 36, 0); - Shape4.addBox(0F, 0F, 0F, 2, 1, 1); - Shape4.setRotationPoint(3.5F, 2.2F, 1.8F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 36, 0); - Shape5.addBox(0F, 0F, 0F, 2, 1, 1); - Shape5.setRotationPoint(3.5F, 1.8F, 1F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 18, 17); - Shape6.addBox(0F, 0F, 0F, 1, 5, 6); - Shape6.setRotationPoint(-1F, 1F, -3F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 32, 13); - Shape7.addBox(0F, 0F, 0F, 1, 4, 15); - Shape7.setRotationPoint(-2F, 2F, -7.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - public void renderAll(float f5) { - GL11.glPushMatrix(); - GL11.glTranslated(1D/16D * 2, 0, 0); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - GL11.glPopMatrix(); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelCalStock.java b/src/main/java/com/hbm/render/model/ModelCalStock.java deleted file mode 100644 index f6902b24c..000000000 --- a/src/main/java/com/hbm/render/model/ModelCalStock.java +++ /dev/null @@ -1,175 +0,0 @@ -// Date: 24.10.2018 10:23:38 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelCalStock extends ModelBase { - // fields - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - - public ModelCalStock() { - textureWidth = 64; - textureHeight = 32; - - Shape8 = new ModelRenderer(this, 0, 0); - Shape8.addBox(0F, 0F, 0F, 15, 6, 3); - Shape8.setRotationPoint(0F, 1F, -1.5F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 9); - Shape9.addBox(0F, 0F, 0F, 6, 1, 2); - Shape9.setRotationPoint(7F, 7F, -1F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 0, 12); - Shape10.addBox(0F, 0F, 0F, 2, 5, 2); - Shape10.setRotationPoint(10F, 8F, -1F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, -0.2617994F); - Shape11 = new ModelRenderer(this, 0, 26); - Shape11.addBox(0F, 0F, 0F, 3, 4, 2); - Shape11.setRotationPoint(19F, 3F, -1F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 0, 22); - Shape12.addBox(-4F, 0F, 0F, 4, 2, 2); - Shape12.setRotationPoint(19F, 3F, -1F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, -0.1115358F); - Shape13 = new ModelRenderer(this, 10, 28); - Shape13.addBox(-5F, -2F, 0F, 5, 2, 2); - Shape13.setRotationPoint(19F, 7F, -1F); - Shape13.setTextureSize(64, 32); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0.2617994F); - Shape14 = new ModelRenderer(this, 12, 23); - Shape14.addBox(0F, 0F, 0F, 1, 3, 2); - Shape14.setRotationPoint(22F, 3F, -1F); - Shape14.setTextureSize(64, 32); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0.3490659F); - Shape15 = new ModelRenderer(this, 42, 0); - Shape15.addBox(0F, 0F, 0F, 3, 5, 8); - Shape15.setRotationPoint(3F, 4F, -9.5F); - Shape15.setTextureSize(64, 32); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 36, 0); - Shape16.addBox(0F, 0F, 0F, 2, 1, 1); - Shape16.setRotationPoint(3.5F, 3.5F, -4F); - Shape16.setTextureSize(64, 32); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 36, 0); - Shape17.addBox(0F, 0F, 0F, 2, 1, 1); - Shape17.setRotationPoint(3.5F, 2.7F, -3.5F); - Shape17.setTextureSize(64, 32); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 36, 0); - Shape18.addBox(0F, 0F, 0F, 2, 1, 1); - Shape18.setRotationPoint(3.5F, 2.2F, -2.8F); - Shape18.setTextureSize(64, 32); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 36, 0); - Shape19.addBox(0F, 0F, 0F, 2, 1, 1); - Shape19.setRotationPoint(3.5F, 1.8F, -2F); - Shape19.setTextureSize(64, 32); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 16, 9); - Shape20.addBox(0F, 0F, 0F, 6, 1, 4); - Shape20.setRotationPoint(7F, 4F, -2F); - Shape20.setTextureSize(64, 32); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 8, 12); - Shape21.addBox(0F, 0F, 0F, 2, 1, 1); - Shape21.setRotationPoint(11F, 0F, 0F); - Shape21.setTextureSize(64, 32); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 8, 14); - Shape22.addBox(0F, 0F, 0F, 2, 1, 2); - Shape22.setRotationPoint(11F, -1F, 0F); - Shape22.setTextureSize(64, 32); - Shape22.mirror = true; - setRotation(Shape22, -0.3490659F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - } - - public void renderAll(float f5) { - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelCryolator.java b/src/main/java/com/hbm/render/model/ModelCryolator.java deleted file mode 100644 index e73a18fca..000000000 --- a/src/main/java/com/hbm/render/model/ModelCryolator.java +++ /dev/null @@ -1,417 +0,0 @@ -// Date: 26.11.2016 20:13:04 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelCryolator extends ModelBase { - // fields - ModelRenderer Body; - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer BarrelBack; - ModelRenderer BarrelNozzle; - ModelRenderer TankF1; - ModelRenderer TankF2; - ModelRenderer TankF3; - ModelRenderer TankB1; - ModelRenderer TankB2; - ModelRenderer TankB3; - ModelRenderer Drum1; - ModelRenderer Drum2; - ModelRenderer BodyBACK; - ModelRenderer PipeLPlate; - ModelRenderer BodyBottom; - ModelRenderer Handle; - ModelRenderer Trigger; - ModelRenderer CoolingBlock; - ModelRenderer BodyCenter; - ModelRenderer PipeRPlate; - ModelRenderer StockTop; - ModelRenderer StockFront; - ModelRenderer StockBack; - ModelRenderer StockBottom; - ModelRenderer PipeLPlateB; - ModelRenderer PipeRPlateB; - ModelRenderer StockConnector; - ModelRenderer PipeTL; - ModelRenderer PipeBL; - ModelRenderer PipeTR; - ModelRenderer PipeBR; - ModelRenderer PipeL; - ModelRenderer PipiR; - ModelRenderer ConnectorFront; - ModelRenderer ConnectorBFront; - ModelRenderer ConnectorBBack; - ModelRenderer Connector; - ModelRenderer ConnectorStrut; - ModelRenderer PipeLarge; - ModelRenderer PipeLargeBack; - ModelRenderer PipiLargeConnector; - ModelRenderer PlateFront; - ModelRenderer ScaffoldFront; - ModelRenderer ScaffoldBottom; - ModelRenderer ScaffoldBack; - - public ModelCryolator() { - textureWidth = 128; - textureHeight = 64; - - Body = new ModelRenderer(this, 0, 6); - Body.addBox(0F, 0F, 0F, 15, 2, 3); - Body.setRotationPoint(-12F, 0F, -1.5F); - Body.setTextureSize(128, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Barrel1 = new ModelRenderer(this, 0, 57); - Barrel1.addBox(0F, 0F, 0F, 2, 4, 3); - Barrel1.setRotationPoint(-15F, 0F, -1.5F); - Barrel1.setTextureSize(128, 64); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 10, 57); - Barrel2.addBox(0F, 0F, 0F, 2, 3, 4); - Barrel2.setRotationPoint(-15F, 0.5F, -2F); - Barrel2.setTextureSize(128, 64); - Barrel2.mirror = true; - setRotation(Barrel2, 0F, 0F, 0F); - BarrelBack = new ModelRenderer(this, 0, 51); - BarrelBack.addBox(0F, 0F, 0F, 1, 3, 3); - BarrelBack.setRotationPoint(-13F, 0.5F, -1.5F); - BarrelBack.setTextureSize(128, 64); - BarrelBack.mirror = true; - setRotation(BarrelBack, 0F, 0F, 0F); - BarrelNozzle = new ModelRenderer(this, 0, 49); - BarrelNozzle.addBox(0F, 0F, 0F, 1, 1, 1); - BarrelNozzle.setRotationPoint(-15.5F, 0.5F, -0.5F); - BarrelNozzle.setTextureSize(128, 64); - BarrelNozzle.mirror = true; - setRotation(BarrelNozzle, 0F, 0F, 0F); - TankF1 = new ModelRenderer(this, 22, 55); - TankF1.addBox(0F, 0F, 0F, 4, 5, 4); - TankF1.setRotationPoint(-10.5F, 2F, -2F); - TankF1.setTextureSize(128, 64); - TankF1.mirror = true; - setRotation(TankF1, 0F, 0F, 0F); - TankF2 = new ModelRenderer(this, 38, 56); - TankF2.addBox(0F, 0F, 0F, 6, 4, 4); - TankF2.setRotationPoint(-11.5F, 2.5F, -2F); - TankF2.setTextureSize(128, 64); - TankF2.mirror = true; - setRotation(TankF2, 0F, 0F, 0F); - TankF3 = new ModelRenderer(this, 58, 55); - TankF3.addBox(0F, 0F, 0F, 4, 4, 5); - TankF3.setRotationPoint(-10.5F, 2.5F, -2.5F); - TankF3.setTextureSize(128, 64); - TankF3.mirror = true; - setRotation(TankF3, 0F, 0F, 0F); - TankB1 = new ModelRenderer(this, 8, 52); - TankB1.addBox(0F, 0F, 0F, 4, 2, 3); - TankB1.setRotationPoint(-5F, 3F, -1.5F); - TankB1.setTextureSize(128, 64); - TankB1.mirror = true; - setRotation(TankB1, 0F, 0F, 0F); - TankB2 = new ModelRenderer(this, 0, 42); - TankB2.addBox(0F, 0F, 0F, 2, 4, 3); - TankB2.setRotationPoint(-4F, 2F, -1.5F); - TankB2.setTextureSize(128, 64); - TankB2.mirror = true; - setRotation(TankB2, 0F, 0F, 0F); - TankB3 = new ModelRenderer(this, 0, 36); - TankB3.addBox(0F, 0F, 0F, 2, 2, 4); - TankB3.setRotationPoint(-4F, 3F, -2F); - TankB3.setTextureSize(128, 64); - TankB3.mirror = true; - setRotation(TankB3, 0F, 0F, 0F); - Drum1 = new ModelRenderer(this, 38, 49); - Drum1.addBox(0F, 0F, 0F, 6, 4, 3); - Drum1.setRotationPoint(-2F, 6F, -4F); - Drum1.setTextureSize(128, 64); - Drum1.mirror = true; - setRotation(Drum1, 0F, 0F, 0F); - Drum2 = new ModelRenderer(this, 24, 46); - Drum2.addBox(0F, 0F, 0F, 4, 6, 3); - Drum2.setRotationPoint(-1F, 5F, -4F); - Drum2.setTextureSize(128, 64); - Drum2.mirror = true; - setRotation(Drum2, 0F, 0F, 0F); - BodyBACK = new ModelRenderer(this, 38, 44); - BodyBACK.addBox(0F, 0F, 0F, 7, 2, 3); - BodyBACK.setRotationPoint(3F, 0F, -1.5F); - BodyBACK.setTextureSize(128, 64); - BodyBACK.mirror = true; - setRotation(BodyBACK, 0F, 0F, 0.2617994F); - PipeLPlate = new ModelRenderer(this, 10, 46); - PipeLPlate.addBox(0F, 0F, 0F, 2, 4, 2); - PipeLPlate.setRotationPoint(-1F, 1F, -3F); - PipeLPlate.setTextureSize(128, 64); - PipeLPlate.mirror = true; - setRotation(PipeLPlate, 0F, 0F, 0F); - BodyBottom = new ModelRenderer(this, 26, 41); - BodyBottom.addBox(0F, 0F, 0F, 4, 3, 2); - BodyBottom.setRotationPoint(3F, 2F, -1F); - BodyBottom.setTextureSize(128, 64); - BodyBottom.mirror = true; - setRotation(BodyBottom, 0F, 0F, 0F); - Handle = new ModelRenderer(this, 0, 29); - Handle.addBox(0F, 0F, 0F, 2, 5, 2); - Handle.setRotationPoint(5F, 5F, -1F); - Handle.setTextureSize(128, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.2617994F); - Trigger = new ModelRenderer(this, 10, 43); - Trigger.addBox(0F, 0F, 0F, 3, 2, 1); - Trigger.setRotationPoint(3F, 5F, -0.5F); - Trigger.setTextureSize(128, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0F); - CoolingBlock = new ModelRenderer(this, 58, 46); - CoolingBlock.addBox(0F, 0F, 0F, 3, 6, 3); - CoolingBlock.setRotationPoint(-1F, 6F, 0.5F); - CoolingBlock.setTextureSize(128, 64); - CoolingBlock.mirror = true; - setRotation(CoolingBlock, 0F, 0F, 0.2617994F); - BodyCenter = new ModelRenderer(this, 12, 33); - BodyCenter.addBox(0F, 0F, 0F, 3, 8, 2); - BodyCenter.setRotationPoint(-0.5F, 2F, -1F); - BodyCenter.setTextureSize(128, 64); - BodyCenter.mirror = true; - setRotation(BodyCenter, 0F, 0F, 0F); - PipeRPlate = new ModelRenderer(this, 0, 21); - PipeRPlate.addBox(0F, 0F, 0F, 2, 6, 2); - PipeRPlate.setRotationPoint(-1F, 1F, 1F); - PipeRPlate.setTextureSize(128, 64); - PipeRPlate.mirror = true; - setRotation(PipeRPlate, 0F, 0F, 0F); - StockTop = new ModelRenderer(this, 38, 39); - StockTop.addBox(0F, 0F, 0F, 6, 2, 3); - StockTop.setRotationPoint(9F, 1.8F, -1.5F); - StockTop.setTextureSize(128, 64); - StockTop.mirror = true; - setRotation(StockTop, 0F, 0F, 0F); - StockFront = new ModelRenderer(this, 30, 34); - StockFront.addBox(0F, 0F, 0F, 2, 5, 2); - StockFront.setRotationPoint(10F, 3F, -1F); - StockFront.setTextureSize(128, 64); - StockFront.mirror = true; - setRotation(StockFront, 0F, 0F, 0F); - StockBack = new ModelRenderer(this, 38, 32); - StockBack.addBox(0F, 0F, 0F, 2, 5, 2); - StockBack.setRotationPoint(13F, 3F, -1F); - StockBack.setTextureSize(128, 64); - StockBack.mirror = true; - setRotation(StockBack, 0F, 0F, 0F); - StockBottom = new ModelRenderer(this, 46, 35); - StockBottom.addBox(0F, 0F, 0F, 1, 2, 2); - StockBottom.setRotationPoint(12F, 6F, -1F); - StockBottom.setTextureSize(128, 64); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - PipeLPlateB = new ModelRenderer(this, 8, 28); - PipeLPlateB.addBox(0F, 0F, 0F, 3, 3, 2); - PipeLPlateB.setRotationPoint(4F, 2F, -3F); - PipeLPlateB.setTextureSize(128, 64); - PipeLPlateB.mirror = true; - setRotation(PipeLPlateB, 0F, 0F, 0F); - PipeRPlateB = new ModelRenderer(this, 8, 23); - PipeRPlateB.addBox(0F, 0F, 0F, 3, 3, 2); - PipeRPlateB.setRotationPoint(4F, 2F, 1F); - PipeRPlateB.setTextureSize(128, 64); - PipeRPlateB.mirror = true; - setRotation(PipeRPlateB, 0F, 0F, 0F); - StockConnector = new ModelRenderer(this, 22, 30); - StockConnector.addBox(0F, -1F, 0F, 5, 1, 3); - StockConnector.setRotationPoint(6F, 5F, -1.5F); - StockConnector.setTextureSize(128, 64); - StockConnector.mirror = true; - setRotation(StockConnector, 0F, 0F, 0.3490659F); - PipeTL = new ModelRenderer(this, 58, 44); - PipeTL.addBox(0F, 0F, 0F, 12, 1, 1); - PipeTL.setRotationPoint(-3F, 2.3F, -2.5F); - PipeTL.setTextureSize(128, 64); - PipeTL.mirror = true; - setRotation(PipeTL, 0F, 0F, 0F); - PipeBL = new ModelRenderer(this, 56, 40); - PipeBL.addBox(0F, 0F, 0F, 10, 1, 1); - PipeBL.setRotationPoint(-1F, 3.7F, -2.5F); - PipeBL.setTextureSize(128, 64); - PipeBL.mirror = true; - setRotation(PipeBL, 0F, 0F, 0F); - PipeTR = new ModelRenderer(this, 56, 42); - PipeTR.addBox(0F, 0F, 0F, 12, 1, 1); - PipeTR.setRotationPoint(-3F, 2.3F, 1.5F); - PipeTR.setTextureSize(128, 64); - PipeTR.mirror = true; - setRotation(PipeTR, 0F, 0F, 0F); - PipeBR = new ModelRenderer(this, 56, 38); - PipeBR.addBox(0F, 0F, 0F, 10, 1, 1); - PipeBR.setRotationPoint(-1F, 3.7F, 1.5F); - PipeBR.setTextureSize(128, 64); - PipeBR.mirror = true; - setRotation(PipeBR, 0F, 0F, 0F); - PipeL = new ModelRenderer(this, 52, 36); - PipeL.addBox(0F, 0F, 0F, 11, 1, 1); - PipeL.setRotationPoint(-13F, 1.5F, -2.5F); - PipeL.setTextureSize(128, 64); - PipeL.mirror = true; - setRotation(PipeL, 0F, 0F, 0F); - PipiR = new ModelRenderer(this, 52, 34); - PipiR.addBox(0F, 0F, 0F, 11, 1, 1); - PipiR.setRotationPoint(-13F, 1.5F, 1.5F); - PipiR.setTextureSize(128, 64); - PipiR.mirror = true; - setRotation(PipiR, 0F, 0F, 0F); - ConnectorFront = new ModelRenderer(this, 0, 17); - ConnectorFront.addBox(0F, 0F, 0F, 3, 3, 1); - ConnectorFront.setRotationPoint(-14.5F, 4F, -0.5F); - ConnectorFront.setTextureSize(128, 64); - ConnectorFront.mirror = true; - setRotation(ConnectorFront, 0F, 0F, 0F); - ConnectorBFront = new ModelRenderer(this, 8, 18); - ConnectorBFront.addBox(0F, 0F, -1F, 1, 4, 1); - ConnectorBFront.setRotationPoint(-14F, 6F, 0.5F); - ConnectorBFront.setTextureSize(128, 64); - ConnectorBFront.mirror = true; - setRotation(ConnectorBFront, -0.7853982F, 0F, 0F); - ConnectorBBack = new ModelRenderer(this, 12, 18); - ConnectorBBack.addBox(0F, 0F, -1F, 1, 4, 1); - ConnectorBBack.setRotationPoint(-3F, 6F, 0.5F); - ConnectorBBack.setTextureSize(128, 64); - ConnectorBBack.mirror = true; - setRotation(ConnectorBBack, -0.7853982F, 0F, 0F); - Connector = new ModelRenderer(this, 18, 26); - Connector.addBox(0F, 3.5F, -1.5F, 12, 2, 2); - Connector.setRotationPoint(-14F, 6F, 0.5F); - Connector.setTextureSize(128, 64); - Connector.mirror = true; - setRotation(Connector, -0.7853982F, 0F, 0F); - ConnectorStrut = new ModelRenderer(this, 18, 24); - ConnectorStrut.addBox(0F, 2F, -1F, 10, 1, 1); - ConnectorStrut.setRotationPoint(-13F, 6F, 0.5F); - ConnectorStrut.setTextureSize(128, 64); - ConnectorStrut.mirror = true; - setRotation(ConnectorStrut, -0.7853982F, 0F, 0F); - PipeLarge = new ModelRenderer(this, 46, 30); - PipeLarge.addBox(0F, 0F, 0F, 8, 2, 2); - PipeLarge.setRotationPoint(-9.5F, 7F, -1F); - PipeLarge.setTextureSize(128, 64); - PipeLarge.mirror = true; - setRotation(PipeLarge, 0F, 0F, 0F); - PipeLargeBack = new ModelRenderer(this, 46, 22); - PipeLargeBack.addBox(0F, 0F, 0F, 2, 7, 1); - PipeLargeBack.setRotationPoint(-4F, 2F, 2F); - PipeLargeBack.setTextureSize(128, 64); - PipeLargeBack.mirror = true; - setRotation(PipeLargeBack, 0F, 0F, 0F); - PipiLargeConnector = new ModelRenderer(this, 40, 23); - PipiLargeConnector.addBox(0F, 0F, 0F, 2, 2, 1); - PipiLargeConnector.setRotationPoint(-4F, 7F, 1F); - PipiLargeConnector.setTextureSize(128, 64); - PipiLargeConnector.mirror = true; - setRotation(PipiLargeConnector, 0F, 0F, 0F); - PlateFront = new ModelRenderer(this, 20, 15); - PlateFront.addBox(0F, 0F, 0F, 1, 4, 5); - PlateFront.setRotationPoint(-13F, 1.5F, -2.5F); - PlateFront.setTextureSize(128, 64); - PlateFront.mirror = true; - setRotation(PlateFront, 0F, 0F, 0.6108652F); - ScaffoldFront = new ModelRenderer(this, 0, 13); - ScaffoldFront.addBox(0F, 0F, 0F, 1, 1, 3); - ScaffoldFront.setRotationPoint(-13F, 7F, -0.5F); - ScaffoldFront.setTextureSize(128, 64); - ScaffoldFront.mirror = true; - setRotation(ScaffoldFront, 0F, 0F, 0F); - ScaffoldBottom = new ModelRenderer(this, 0, 11); - ScaffoldBottom.addBox(0F, 0F, 0F, 8, 1, 1); - ScaffoldBottom.setRotationPoint(-12F, 7F, 1.5F); - ScaffoldBottom.setTextureSize(128, 64); - ScaffoldBottom.mirror = true; - setRotation(ScaffoldBottom, 0F, 0F, 0F); - ScaffoldBack = new ModelRenderer(this, 32, 18); - ScaffoldBack.addBox(0F, 0F, 0F, 1, 5, 1); - ScaffoldBack.setRotationPoint(-5F, 2.5F, 1.5F); - ScaffoldBack.setTextureSize(128, 64); - ScaffoldBack.mirror = true; - setRotation(ScaffoldBack, 0F, 0F, 0F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Body.render(f5); - Barrel1.render(f5); - Barrel2.render(f5); - BarrelBack.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - BarrelNozzle.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - TankF1.render(f5); - TankF2.render(f5); - TankF3.render(f5); - TankB1.render(f5); - TankB2.render(f5); - TankB3.render(f5); - Drum1.render(f5); - Drum2.render(f5); - BodyBACK.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - PipeLPlate.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - BodyBottom.render(f5); - Handle.render(f5); - Trigger.render(f5); - CoolingBlock.render(f5); - BodyCenter.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - PipeRPlate.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - StockTop.render(f5); - StockFront.render(f5); - StockBack.render(f5); - StockBottom.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - PipeLPlateB.render(f5); - PipeRPlateB.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - StockConnector.render(f5); - PipeTL.render(f5); - PipeBL.render(f5); - PipeTR.render(f5); - PipeBR.render(f5); - PipeL.render(f5); - PipiR.render(f5); - ConnectorFront.render(f5); - ConnectorBFront.render(f5); - ConnectorBBack.render(f5); - Connector.render(f5); - ConnectorStrut.render(f5); - PipeLarge.render(f5); - PipeLargeBack.render(f5); - PipiLargeConnector.render(f5); - PlateFront.render(f5); - ScaffoldFront.render(f5); - ScaffoldBottom.render(f5); - ScaffoldBack.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelDash.java b/src/main/java/com/hbm/render/model/ModelDash.java deleted file mode 100755 index 24f56ecc2..000000000 --- a/src/main/java/com/hbm/render/model/ModelDash.java +++ /dev/null @@ -1,122 +0,0 @@ -//This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0 -// Copyright (C) 2017 Minecraft-SMP.de -// This file is for Flan's Flying Mod Version 4.0.x+ - -// Model: ModelDash -// Model Creator: -// Created on: 01.11.2017 - 20:07:57 -// Last changed on: 01.11.2017 - 20:07:57 - -package com.hbm.render.model; //Path where the model is located - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelDash extends ModelBase //Same as Filename -{ - int textureX = 64; - int textureY = 64; - ModelRenderer[] bodyModel; - - public ModelDash() //Same as Filename - { - textureWidth = 64; - textureHeight = 64; - bodyModel = new ModelRenderer[16]; - bodyModel[0] = new ModelRenderer(this, 1, 1); // Box 0 - bodyModel[1] = new ModelRenderer(this, 25, 1); // Box 1 - bodyModel[2] = new ModelRenderer(this, 1, 9); // Box 2 - bodyModel[3] = new ModelRenderer(this, 33, 9); // Box 3 - bodyModel[4] = new ModelRenderer(this, 57, 1); // Box 4 - bodyModel[5] = new ModelRenderer(this, 1, 17); // Box 5 - bodyModel[6] = new ModelRenderer(this, 9, 17); // Box 6 - bodyModel[7] = new ModelRenderer(this, 17, 17); // Box 7 - bodyModel[8] = new ModelRenderer(this, 41, 17); // Box 8 - bodyModel[9] = new ModelRenderer(this, 1, 25); // Box 9 - bodyModel[10] = new ModelRenderer(this, 17, 25); // Box 10 - bodyModel[11] = new ModelRenderer(this, 41, 25); // Box 11 - bodyModel[12] = new ModelRenderer(this, 49, 25); // Box 12 - bodyModel[13] = new ModelRenderer(this, 1, 33); // Box 13 - bodyModel[14] = new ModelRenderer(this, 17, 33); // Box 14 - bodyModel[15] = new ModelRenderer(this, 25, 33); // Box 16 - - bodyModel[0].addBox(0F, 0F, 0F, 7, 3, 3, 0F); // Box 0 - bodyModel[0].setRotationPoint(0F, 0F, -1.5F); - - bodyModel[1].addBox(0F, 0F, -1F, 12, 3, 2, 0F); // Box 1 - bodyModel[1].setRotationPoint(-12F, 1F, 0F); - - bodyModel[2].addBox(0F, 0F, -1F, 12, 3, 2, 0F); // Box 2 - bodyModel[2].setRotationPoint(-12F, 1F, 0F); - bodyModel[2].rotateAngleX = 2.0943951F; - - bodyModel[3].addBox(0F, 0F, -1F, 12, 3, 2, 0F); // Box 3 - bodyModel[3].setRotationPoint(-12F, 1F, 0F); - bodyModel[3].rotateAngleX = -2.0943951F; - - bodyModel[4].addBox(0F, 1.5F, -0.5F, 1, 1, 1, 0F); // Box 4 - bodyModel[4].setRotationPoint(-12.5F, 1F, 0F); - - bodyModel[5].addBox(0F, 1.5F, -0.5F, 1, 1, 1, 0F); // Box 5 - bodyModel[5].setRotationPoint(-12.5F, 1F, 0F); - bodyModel[5].rotateAngleX = 2.0943951F; - - bodyModel[6].addBox(0F, 1.5F, -0.5F, 1, 1, 1, 0F); // Box 6 - bodyModel[6].setRotationPoint(-12.5F, 1F, 0F); - bodyModel[6].rotateAngleX = -2.0943951F; - - bodyModel[7].addBox(0F, 0F, 0F, 7, 1, 2, 0F); // Box 7 - bodyModel[7].setRotationPoint(0F, -0.5F, -1F); - - bodyModel[8].addBox(0F, 0F, 0F, 7, 2, 2, 0F); // Box 8 - bodyModel[8].setRotationPoint(7F, 0.5F, -1F); - - bodyModel[9].addBox(0F, 0F, 0F, 2, 2, 2, 0F); // Box 9 - bodyModel[9].setRotationPoint(12F, 2.5F, -1F); - - bodyModel[10].addBox(-6F, -2F, 0F, 6, 2, 2, 0F); // Box 10 - bodyModel[10].setRotationPoint(12F, 4.5F, -1F); - bodyModel[10].rotateAngleZ = 0.29670597F; - - bodyModel[11].addBox(0F, 0F, 0F, 1, 3, 1, 0F); // Box 11 - bodyModel[11].setRotationPoint(6F, 3F, -0.5F); - bodyModel[11].rotateAngleZ = -0.26179939F; - - bodyModel[12].addBox(0F, 0F, 0F, 5, 2, 2, 0F); // Box 12 - bodyModel[12].setRotationPoint(0F, 3F, -1F); - - bodyModel[13].addBox(0F, 0F, 0F, 6, 1, 1, 0F); // Box 13 - bodyModel[13].setRotationPoint(2F, 5F, -0.5F); - - bodyModel[14].addBox(0F, 0F, 0F, 1, 4, 1, 0F); // Box 14 - bodyModel[14].setRotationPoint(0.5F, 1F, -1.5F); - bodyModel[14].rotateAngleX = -0.61086524F; - - bodyModel[15].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 16 - bodyModel[15].setRotationPoint(3F, -1F, -0.5F); - - for(int i = 0; i < 16; i++) - { - bodyModel[i].setTextureSize(textureX, textureY); - bodyModel[i].mirror = true; - } - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - for(int i = 0; i < 16; i++) - { - bodyModel[i].render(f5); - } - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelDefabricator.java b/src/main/java/com/hbm/render/model/ModelDefabricator.java deleted file mode 100755 index bc156eb79..000000000 --- a/src/main/java/com/hbm/render/model/ModelDefabricator.java +++ /dev/null @@ -1,231 +0,0 @@ -//This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0 -// Copyright (C) 2017 Minecraft-SMP.de -// This file is for Flan's Flying Mod Version 4.0.x+ - -// Model: Defabricator -// Model Creator: -// Created on:05.06.2017 - 11:21:40 -// Last changed on: 05.06.2017 - 11:21:40 - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelDefabricator extends ModelBase -{ - int textureX = 128; - int textureY = 64; - ModelRenderer[] modeldefabricatorModel; - - public ModelDefabricator() - { - textureWidth = 128; - textureHeight = 64; - modeldefabricatorModel = new ModelRenderer[40]; - modeldefabricatorModel[0] = new ModelRenderer(this, 1, 1); // Box 0 - modeldefabricatorModel[1] = new ModelRenderer(this, 25, 1); // Box 1 - modeldefabricatorModel[2] = new ModelRenderer(this, 41, 1); // Box 2 - modeldefabricatorModel[3] = new ModelRenderer(this, 57, 1); // Box 3 - modeldefabricatorModel[4] = new ModelRenderer(this, 89, 1); // Box 4 - modeldefabricatorModel[5] = new ModelRenderer(this, 105, 1); // Box 5 - modeldefabricatorModel[6] = new ModelRenderer(this, 1, 9); // Box 6 - modeldefabricatorModel[7] = new ModelRenderer(this, 25, 9); // Box 7 - modeldefabricatorModel[8] = new ModelRenderer(this, 49, 1); // Box 8 - modeldefabricatorModel[9] = new ModelRenderer(this, 57, 9); // Box 9 - modeldefabricatorModel[10] = new ModelRenderer(this, 33, 9); // Box 10 - modeldefabricatorModel[11] = new ModelRenderer(this, 89, 9); // Box 11 - modeldefabricatorModel[12] = new ModelRenderer(this, 113, 9); // Box 12 - modeldefabricatorModel[13] = new ModelRenderer(this, 17, 1); // Box 13 - modeldefabricatorModel[14] = new ModelRenderer(this, 1, 17); // Box 14 - modeldefabricatorModel[15] = new ModelRenderer(this, 17, 17); // Box 15 - modeldefabricatorModel[16] = new ModelRenderer(this, 41, 17); // Box 16 - modeldefabricatorModel[17] = new ModelRenderer(this, 73, 17); // Box 17 - modeldefabricatorModel[18] = new ModelRenderer(this, 97, 17); // Box 18 - modeldefabricatorModel[19] = new ModelRenderer(this, 113, 17); // Box 19 - modeldefabricatorModel[20] = new ModelRenderer(this, 1, 25); // Box 20 - modeldefabricatorModel[21] = new ModelRenderer(this, 9, 25); // Box 21 - modeldefabricatorModel[22] = new ModelRenderer(this, 17, 25); // Box 22 - modeldefabricatorModel[23] = new ModelRenderer(this, 33, 25); // Box 23 - modeldefabricatorModel[24] = new ModelRenderer(this, 49, 25); // Box 24 - modeldefabricatorModel[25] = new ModelRenderer(this, 65, 25); // Box 25 - modeldefabricatorModel[26] = new ModelRenderer(this, 81, 25); // Box 26 - modeldefabricatorModel[27] = new ModelRenderer(this, 97, 1); // Box 27 - modeldefabricatorModel[28] = new ModelRenderer(this, 1, 33); // Box 28 - modeldefabricatorModel[29] = new ModelRenderer(this, 105, 17); // Box 29 - modeldefabricatorModel[30] = new ModelRenderer(this, 89, 25); // Box 30 - modeldefabricatorModel[31] = new ModelRenderer(this, 49, 33); // Box 31 - modeldefabricatorModel[32] = new ModelRenderer(this, 1, 41); // Box 32 - modeldefabricatorModel[33] = new ModelRenderer(this, 89, 25); // Box 33 - modeldefabricatorModel[34] = new ModelRenderer(this, 89, 33); // Box 34 - modeldefabricatorModel[35] = new ModelRenderer(this, 41, 41); // Box 35 - modeldefabricatorModel[36] = new ModelRenderer(this, 105, 25); // Box 36 - modeldefabricatorModel[37] = new ModelRenderer(this, 113, 25); // Box 39 - modeldefabricatorModel[38] = new ModelRenderer(this, 121, 25); // Box 40 - modeldefabricatorModel[39] = new ModelRenderer(this, 57, 41); // Box 41 - - modeldefabricatorModel[0].addBox(0F, 0F, 0F, 5, 2, 3); // Box 0 - modeldefabricatorModel[0].setRotationPoint(0F, 0.5F, -1.5F); - - modeldefabricatorModel[1].addBox(0F, 0F, 0F, 5, 3, 2); // Box 1 - modeldefabricatorModel[1].setRotationPoint(0F, 0F, -1F); - - modeldefabricatorModel[2].addBox(0F, 0F, 0F, 2, 7, 3); // Box 2 - modeldefabricatorModel[2].setRotationPoint(-2F, -2F, -1.5F); - - modeldefabricatorModel[3].addBox(0F, 0F, 0F, 11, 1, 3); // Box 3 - modeldefabricatorModel[3].setRotationPoint(0F, -2F, -1.5F); - - modeldefabricatorModel[4].addBox(0F, 0F, 0F, 1, 3, 3); // Box 4 - modeldefabricatorModel[4].setRotationPoint(10F, -1F, -1.5F); - - modeldefabricatorModel[5].addBox(0F, 0F, 0F, 6, 1, 2); // Box 5 - modeldefabricatorModel[5].setRotationPoint(0F, 4F, -1F); - - modeldefabricatorModel[6].addBox(0F, -1F, 0F, 6, 1, 2); // Box 6 - modeldefabricatorModel[6].setRotationPoint(6F, 5F, -1F); - modeldefabricatorModel[6].rotateAngleZ = -0.61086524F; - - modeldefabricatorModel[7].addBox(0F, 0F, 0F, 1, 2, 2); // Box 7 - modeldefabricatorModel[7].setRotationPoint(5F, 0.5F, -1F); - - modeldefabricatorModel[8].addBox(0F, 0F, 0F, 4, 1, 1); // Box 8 - modeldefabricatorModel[8].setRotationPoint(6F, 1F, -0.5F); - - modeldefabricatorModel[9].addBox(0F, 0F, 0F, 12, 1, 2); // Box 9 - modeldefabricatorModel[9].setRotationPoint(11F, 0F, -1F); - - modeldefabricatorModel[10].addBox(0F, 0F, 0F, 1, 6, 2); // Box 10 - modeldefabricatorModel[10].setRotationPoint(22F, -6F, -1F); - - modeldefabricatorModel[11].addBox(0F, 0F, 0F, 8, 2, 2); // Box 11 - modeldefabricatorModel[11].setRotationPoint(14F, -2.5F, -1F); - - modeldefabricatorModel[12].addBox(0F, 0F, 0F, 3, 1, 1); // Box 12 - modeldefabricatorModel[12].setRotationPoint(11F, -2F, -0.5F); - - modeldefabricatorModel[13].addBox(0F, 0F, 0F, 1, 1, 1); // Box 13 - modeldefabricatorModel[13].setRotationPoint(1F, 3.5F, -0.5F); - - modeldefabricatorModel[14].addBox(0F, 0F, 0F, 5, 1, 2); // Box 14 - modeldefabricatorModel[14].setRotationPoint(13.5F, -4.5F, -1F); - - modeldefabricatorModel[15].addBox(0F, 0F, 0F, 4, 1, 2); // Box 15 - modeldefabricatorModel[15].setRotationPoint(18F, -5F, -1F); - - modeldefabricatorModel[16].addBox(0F, 0F, 0F, 10, 1, 2); // Box 16 - modeldefabricatorModel[16].setRotationPoint(4F, -5F, -1F); - - modeldefabricatorModel[17].addBox(-6F, 0F, 0F, 6, 1, 2); // Box 17 - modeldefabricatorModel[17].setRotationPoint(4F, -5F, -1F); - modeldefabricatorModel[17].rotateAngleZ = -0.52359878F; - - modeldefabricatorModel[18].addBox(0F, 0F, 0F, 1, 3, 3); // Box 18 - modeldefabricatorModel[18].setRotationPoint(22F, -9F, -1.5F); - - modeldefabricatorModel[19].addBox(0F, 0F, 0F, 5, 2, 2); // Box 19 - modeldefabricatorModel[19].setRotationPoint(17F, -8.5F, -1F); - - modeldefabricatorModel[20].addBox(-4F, -3F, 0F, 1, 3, 2); // Box 20 - modeldefabricatorModel[20].setRotationPoint(4F, -5F, -1F); - modeldefabricatorModel[20].rotateAngleZ = -0.52359878F; - - modeldefabricatorModel[21].addBox(-4F, -4F, 0F, 1, 1, 2); // Box 21 - modeldefabricatorModel[21].setRotationPoint(4F, -5F, -1F); - modeldefabricatorModel[21].rotateAngleZ = -0.52359878F; - - modeldefabricatorModel[22].addBox(0F, 0F, 0F, 4, 3, 2); // Box 22 - modeldefabricatorModel[22].setRotationPoint(-6F, 0F, -1F); - - modeldefabricatorModel[23].addBox(0F, 0F, 0F, 4, 2, 3); // Box 23 - modeldefabricatorModel[23].setRotationPoint(-6F, 0.5F, -1.5F); - - modeldefabricatorModel[24].addBox(0F, 0F, 0F, 5, 2, 2); // Box 24 - modeldefabricatorModel[24].setRotationPoint(-11F, 0.5F, -1F); - - modeldefabricatorModel[25].addBox(0F, 0F, 0F, 2, 3, 2); // Box 25 - modeldefabricatorModel[25].setRotationPoint(-10.5F, 0F, -1F); - - modeldefabricatorModel[26].addBox(0F, 0F, 0F, 2, 2, 3); // Box 26 - modeldefabricatorModel[26].setRotationPoint(-10.5F, 0.5F, -1.5F); - - modeldefabricatorModel[27].addBox(0F, -2.5F, -0.5F, 1, 1, 1); // Box 27 - modeldefabricatorModel[27].setRotationPoint(-3F, 1.5F, 0F); - - modeldefabricatorModel[28].addBox(0F, -3F, -0.5F, 20, 1, 1); // Box 28 - modeldefabricatorModel[28].setRotationPoint(-23F, 1.5F, 0F); - - modeldefabricatorModel[29].addBox(0F, -2.5F, -0.5F, 1, 1, 1); // Box 29 - modeldefabricatorModel[29].setRotationPoint(-3F, 1.5F, 0F); - modeldefabricatorModel[29].rotateAngleX = 2.0943951F; - - modeldefabricatorModel[30].addBox(0F, -2.5F, -0.5F, 1, 1, 1); // Box 30 - modeldefabricatorModel[30].setRotationPoint(-3F, 1.5F, 0F); - modeldefabricatorModel[30].rotateAngleX = -2.0943951F; - - modeldefabricatorModel[31].addBox(0F, -3F, -0.5F, 20, 1, 1); // Box 31 - modeldefabricatorModel[31].setRotationPoint(-23F, 1.5F, 0F); - modeldefabricatorModel[31].rotateAngleX = -2.0943951F; - - modeldefabricatorModel[32].addBox(0F, -3F, -0.5F, 20, 1, 1); // Box 32 - modeldefabricatorModel[32].setRotationPoint(-23F, 1.5F, 0F); - modeldefabricatorModel[32].rotateAngleX = 2.0943951F; - - modeldefabricatorModel[33].addBox(0F, -2F, -3F, 2, 1, 6); // Box 33 - modeldefabricatorModel[33].setRotationPoint(-22F, 1.5F, 0F); - modeldefabricatorModel[33].rotateAngleX = 1.04719755F; - - modeldefabricatorModel[34].addBox(0F, -2F, -3F, 2, 1, 6); // Box 34 - modeldefabricatorModel[34].setRotationPoint(-22F, 1.5F, 0F); - modeldefabricatorModel[34].rotateAngleX = -3.14159265F; - - modeldefabricatorModel[35].addBox(0F, -2F, -3F, 2, 1, 6); // Box 35 - modeldefabricatorModel[35].setRotationPoint(-22F, 1.5F, 0F); - modeldefabricatorModel[35].rotateAngleX = -1.04719755F; - - modeldefabricatorModel[36].addBox(0.5F, -2.5F, -0.5F, 1, 1, 1); // Box 36 - modeldefabricatorModel[36].setRotationPoint(-24F, 1.5F, 0F); - - modeldefabricatorModel[37].addBox(0.5F, -2.5F, -0.5F, 1, 1, 1); // Box 39 - modeldefabricatorModel[37].setRotationPoint(-24F, 1.5F, 0F); - modeldefabricatorModel[37].rotateAngleX = 2.0943951F; - - modeldefabricatorModel[38].addBox(0.5F, -2.5F, -0.5F, 1, 1, 1); // Box 40 - modeldefabricatorModel[38].setRotationPoint(-24F, 1.5F, 0F); - modeldefabricatorModel[38].rotateAngleX = -2.0943951F; - - modeldefabricatorModel[39].addBox(0F, 0F, 0F, 13, 0, 1); // Box 41 - modeldefabricatorModel[39].setRotationPoint(5F, -5F, -0.5F); - modeldefabricatorModel[39].rotateAngleZ = 0.17453293F; - - for(int i = 0; i < 40; i++) - { - modeldefabricatorModel[i].setTextureSize(textureX, textureY); - modeldefabricatorModel[i].mirror = true; - } - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - for(int i = 0; i < 40; i++) - { - if(i == 20) - GL11.glDisable(GL11.GL_CULL_FACE); - modeldefabricatorModel[i].render(f5); - if(i == 20) - GL11.glEnable(GL11.GL_CULL_FACE); - } - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelEMPRay.java b/src/main/java/com/hbm/render/model/ModelEMPRay.java deleted file mode 100644 index 54f8d321f..000000000 --- a/src/main/java/com/hbm/render/model/ModelEMPRay.java +++ /dev/null @@ -1,393 +0,0 @@ -// Date: 07.11.2016 21:36:37 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelEMPRay extends ModelBase -{ - //fields - ModelRenderer Body; - ModelRenderer BodyConnector; - ModelRenderer BodyFront; - ModelRenderer BodyPlateLeft; - ModelRenderer BodyPlateRight; - ModelRenderer BodyPlateBottom; - ModelRenderer Rib1; - ModelRenderer Rib2; - ModelRenderer Rib3; - ModelRenderer Rib4; - ModelRenderer Rib5; - ModelRenderer Rib6; - ModelRenderer Rib7; - ModelRenderer Stock; - ModelRenderer StockBottom; - ModelRenderer StockPlate; - ModelRenderer CrankPivot; - ModelRenderer CrankPlate; - ModelRenderer CrankHandleBase; - ModelRenderer CrankHandle; - ModelRenderer HandlePivot; - ModelRenderer HandleLeft; - ModelRenderer HandleRight; - ModelRenderer Handle; - ModelRenderer ShieldTop; - ModelRenderer ShieldBottom; - ModelRenderer Battery; - ModelRenderer BatteryTop; - ModelRenderer BatteryBottom; - ModelRenderer Wire; - ModelRenderer SpindelPivot; - ModelRenderer SpindelBase1; - ModelRenderer Coil1; - ModelRenderer SpindelTip1; - ModelRenderer SpindelBase2; - ModelRenderer Coil2; - ModelRenderer SpindelTip2; - ModelRenderer SpindelBase3; - ModelRenderer Coil3; - ModelRenderer SpindelTip3; - ModelRenderer WireRight; - ModelRenderer WireLeft; - - public ModelEMPRay() - { - textureWidth = 256; - textureHeight = 128; - - Body = new ModelRenderer(this, 0, 96); - Body.addBox(0F, 0F, 0F, 20, 16, 16); - Body.setRotationPoint(0F, 0F, -8F); - Body.setTextureSize(64, 32); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - BodyConnector = new ModelRenderer(this, 0, 80); - BodyConnector.addBox(0F, 0F, 0F, 15, 8, 8); - BodyConnector.setRotationPoint(-15F, 0F, -4F); - BodyConnector.setTextureSize(64, 32); - BodyConnector.mirror = true; - setRotation(BodyConnector, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 72, 96); - BodyFront.addBox(0F, 0F, 0F, 5, 16, 16); - BodyFront.setRotationPoint(-20F, 0F, -8F); - BodyFront.setTextureSize(64, 32); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - BodyPlateLeft = new ModelRenderer(this, 46, 84); - BodyPlateLeft.addBox(-16F, 0F, 0F, 16, 8, 4); - BodyPlateLeft.setRotationPoint(0F, 0F, -8F); - BodyPlateLeft.setTextureSize(64, 32); - BodyPlateLeft.mirror = true; - setRotation(BodyPlateLeft, 0F, 0.2617994F, 0F); - BodyPlateRight = new ModelRenderer(this, 86, 84); - BodyPlateRight.addBox(-16F, 0F, -4F, 16, 8, 4); - BodyPlateRight.setRotationPoint(0F, 0F, 8F); - BodyPlateRight.setTextureSize(64, 32); - BodyPlateRight.mirror = true; - setRotation(BodyPlateRight, 0F, -0.2617994F, 0F); - BodyPlateBottom = new ModelRenderer(this, 0, 65); - BodyPlateBottom.addBox(-18F, -7F, 0F, 18, 7, 8); - BodyPlateBottom.setRotationPoint(0F, 16F, -4F); - BodyPlateBottom.setTextureSize(64, 32); - BodyPlateBottom.mirror = true; - setRotation(BodyPlateBottom, 0F, 0F, 0.4886922F); - Rib1 = new ModelRenderer(this, 240, 0); - Rib1.addBox(0F, 0F, 0F, 0, 8, 8); - Rib1.setRotationPoint(-13.5F, 8F, -4F); - Rib1.setTextureSize(64, 32); - Rib1.mirror = true; - setRotation(Rib1, 0F, 0F, 0F); - Rib2 = new ModelRenderer(this, 222, 0); - Rib2.addBox(0F, 0F, 0F, 0, 8, 9); - Rib2.setRotationPoint(-11.5F, 8F, -4.5F); - Rib2.setTextureSize(64, 32); - Rib2.mirror = true; - setRotation(Rib2, 0F, 0F, 0F); - Rib3 = new ModelRenderer(this, 202, 0); - Rib3.addBox(0F, 0F, 0F, 0, 8, 10); - Rib3.setRotationPoint(-9.5F, 8F, -5F); - Rib3.setTextureSize(64, 32); - Rib3.mirror = true; - setRotation(Rib3, 0F, 0F, 0F); - Rib4 = new ModelRenderer(this, 180, 0); - Rib4.addBox(0F, 0F, 0F, 0, 8, 11); - Rib4.setRotationPoint(-7.5F, 8F, -5.5F); - Rib4.setTextureSize(64, 32); - Rib4.mirror = true; - setRotation(Rib4, 0F, 0F, 0F); - Rib5 = new ModelRenderer(this, 156, 0); - Rib5.addBox(0F, 0F, 0F, 0, 8, 12); - Rib5.setRotationPoint(-5.5F, 8F, -6F); - Rib5.setTextureSize(64, 32); - Rib5.mirror = true; - setRotation(Rib5, 0F, 0F, 0F); - Rib6 = new ModelRenderer(this, 130, 0); - Rib6.addBox(0F, 0F, 0F, 0, 8, 13); - Rib6.setRotationPoint(-3.5F, 8F, -6.5F); - Rib6.setTextureSize(64, 32); - Rib6.mirror = true; - setRotation(Rib6, 0F, 0F, 0F); - Rib7 = new ModelRenderer(this, 102, 0); - Rib7.addBox(0F, 0F, 0F, 0, 8, 14); - Rib7.setRotationPoint(-1.5F, 8F, -7F); - Rib7.setTextureSize(64, 32); - Rib7.mirror = true; - setRotation(Rib7, 0F, 0F, 0F); - Stock = new ModelRenderer(this, 114, 116); - Stock.addBox(0F, 0F, 0F, 25, 6, 6); - Stock.setRotationPoint(20F, 10F, -3F); - Stock.setTextureSize(64, 32); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - StockBottom = new ModelRenderer(this, 114, 104); - StockBottom.addBox(0F, 0F, 0F, 4, 6, 6); - StockBottom.setRotationPoint(41F, 16F, -3F); - StockBottom.setTextureSize(64, 32); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 134, 92); - StockPlate.addBox(0F, -18F, 0F, 6, 18, 6); - StockPlate.setRotationPoint(41F, 22F, -3F); - StockPlate.setTextureSize(64, 32); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, -1.22173F); - CrankPivot = new ModelRenderer(this, 0, 63); - CrankPivot.addBox(0F, -0.5F, -0.5F, 3, 1, 1); - CrankPivot.setRotationPoint(20F, 2F, 0F); - CrankPivot.setTextureSize(64, 32); - CrankPivot.mirror = true; - setRotation(CrankPivot, -0.4363323F, 0F, 0F); - CrankPlate = new ModelRenderer(this, 0, 55); - CrankPlate.addBox(0F, -1F, -1F, 1, 6, 2); - CrankPlate.setRotationPoint(21.5F, 2F, 0F); - CrankPlate.setTextureSize(64, 32); - CrankPlate.mirror = true; - setRotation(CrankPlate, -0.4363323F, 0F, 0F); - CrankHandleBase = new ModelRenderer(this, 0, 53); - CrankHandleBase.addBox(0F, 3.5F, -0.5F, 2, 1, 1); - CrankHandleBase.setRotationPoint(22F, 2F, 0F); - CrankHandleBase.setTextureSize(64, 32); - CrankHandleBase.mirror = true; - setRotation(CrankHandleBase, -0.4363323F, 0F, 0F); - CrankHandle = new ModelRenderer(this, 0, 49); - CrankHandle.addBox(0F, 3F, -1F, 6, 2, 2); - CrankHandle.setRotationPoint(24F, 2F, 0F); - CrankHandle.setTextureSize(64, 32); - CrankHandle.mirror = true; - setRotation(CrankHandle, -0.4363323F, 0F, 0F); - HandlePivot = new ModelRenderer(this, 52, 60); - HandlePivot.addBox(-1F, -1F, 0F, 2, 2, 22); - HandlePivot.setRotationPoint(7F, 7F, -11F); - HandlePivot.setTextureSize(64, 32); - HandlePivot.mirror = true; - setRotation(HandlePivot, 0F, 0F, 0.4363323F); - HandleLeft = new ModelRenderer(this, 100, 67); - HandleLeft.addBox(-1.5F, -14F, 0F, 3, 16, 1); - HandleLeft.setRotationPoint(7F, 7F, -9.5F); - HandleLeft.setTextureSize(64, 32); - HandleLeft.mirror = true; - setRotation(HandleLeft, 0F, 0F, 0.4363323F); - HandleRight = new ModelRenderer(this, 108, 67); - HandleRight.addBox(-1.5F, -14F, 0F, 3, 16, 1); - HandleRight.setRotationPoint(7F, 7F, 8.5F); - HandleRight.setTextureSize(64, 32); - HandleRight.mirror = true; - setRotation(HandleRight, 0F, 0F, 0.4363323F); - Handle = new ModelRenderer(this, 52, 31); - Handle.addBox(-2.5F, -19F, 0F, 5, 5, 24); - Handle.setRotationPoint(7F, 7F, -12F); - Handle.setTextureSize(64, 32); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, 0.4363323F); - ShieldTop = new ModelRenderer(this, 64, 0); - ShieldTop.addBox(0F, 0F, 0F, 0, 12, 18); - ShieldTop.setRotationPoint(-11F, -14F, -9F); - ShieldTop.setTextureSize(64, 32); - ShieldTop.mirror = true; - setRotation(ShieldTop, 0F, 0F, 0F); - ShieldBottom = new ModelRenderer(this, 36, 0); - ShieldBottom.addBox(0F, 0F, 0F, 0, 9, 14); - ShieldBottom.setRotationPoint(-11F, -2F, -7F); - ShieldBottom.setTextureSize(64, 32); - ShieldBottom.mirror = true; - setRotation(ShieldBottom, 0F, 0F, -0.6981317F); - Battery = new ModelRenderer(this, 10, 56); - Battery.addBox(0F, 0F, 0F, 4, 6, 3); - Battery.setRotationPoint(13F, 6F, -11F); - Battery.setTextureSize(64, 32); - Battery.mirror = true; - setRotation(Battery, 0F, 0F, 0F); - BatteryTop = new ModelRenderer(this, 24, 60); - BatteryTop.addBox(0F, 0F, 0F, 5, 1, 4); - BatteryTop.setRotationPoint(12.5F, 5F, -11.5F); - BatteryTop.setTextureSize(64, 32); - BatteryTop.mirror = true; - setRotation(BatteryTop, 0F, 0F, 0F); - BatteryBottom = new ModelRenderer(this, 24, 55); - BatteryBottom.addBox(0F, 0F, 0F, 5, 1, 4); - BatteryBottom.setRotationPoint(12.5F, 12F, -11.5F); - BatteryBottom.setTextureSize(64, 32); - BatteryBottom.mirror = true; - setRotation(BatteryBottom, 0F, 0F, 0F); - Wire = new ModelRenderer(this, 0, 44); - Wire.addBox(0F, -4F, 0F, 2, 4, 1); - Wire.setRotationPoint(14F, 5F, -10F); - Wire.setTextureSize(64, 32); - Wire.mirror = true; - setRotation(Wire, -0.5235988F, 0F, 0F); - SpindelPivot = new ModelRenderer(this, 0, 36); - SpindelPivot.addBox(0F, 0F, 0F, 4, 3, 3); - SpindelPivot.setRotationPoint(-24F, 8.5F, -1.5F); - SpindelPivot.setTextureSize(64, 32); - SpindelPivot.mirror = true; - setRotation(SpindelPivot, 0F, 0F, 0F); - SpindelBase1 = new ModelRenderer(this, 0, 27); - SpindelBase1.addBox(0F, -5F, -1F, 2, 5, 2); - SpindelBase1.setRotationPoint(-23F, 10F, 0F); - SpindelBase1.setTextureSize(64, 32); - SpindelBase1.mirror = true; - setRotation(SpindelBase1, 0F, 0F, 0F); - Coil1 = new ModelRenderer(this, 0, 17); - Coil1.addBox(0F, -6F, -2F, 12, 4, 4); - Coil1.setRotationPoint(-35F, 10F, 0F); - Coil1.setTextureSize(64, 32); - Coil1.mirror = true; - setRotation(Coil1, 0F, 0F, 0F); - SpindelTip1 = new ModelRenderer(this, 0, 11); - SpindelTip1.addBox(0F, -5F, -1F, 1, 2, 2); - SpindelTip1.setRotationPoint(-36F, 10F, 0F); - SpindelTip1.setTextureSize(64, 32); - SpindelTip1.mirror = true; - setRotation(SpindelTip1, 0F, 0F, 0F); - SpindelBase2 = new ModelRenderer(this, 0, 27); - SpindelBase2.addBox(0F, -5F, -1F, 2, 5, 2); - SpindelBase2.setRotationPoint(-23F, 10F, 0F); - SpindelBase2.setTextureSize(64, 32); - SpindelBase2.mirror = true; - setRotation(SpindelBase2, 2.094395F, 0F, 0F); - Coil2 = new ModelRenderer(this, 0, 17); - Coil2.addBox(0F, -6F, -2F, 12, 4, 4); - Coil2.setRotationPoint(-35F, 10F, 0F); - Coil2.setTextureSize(64, 32); - Coil2.mirror = true; - setRotation(Coil2, 2.094395F, 0F, 0F); - SpindelTip2 = new ModelRenderer(this, 0, 11); - SpindelTip2.addBox(0F, -5F, -1F, 1, 2, 2); - SpindelTip2.setRotationPoint(-36F, 10F, 0F); - SpindelTip2.setTextureSize(64, 32); - SpindelTip2.mirror = true; - setRotation(SpindelTip2, 2.094395F, 0F, 0F); - SpindelBase3 = new ModelRenderer(this, 0, 27); - SpindelBase3.addBox(0F, -5F, -1F, 2, 5, 2); - SpindelBase3.setRotationPoint(-23F, 10F, 0F); - SpindelBase3.setTextureSize(64, 32); - SpindelBase3.mirror = true; - setRotation(SpindelBase3, -2.094395F, 0F, 0F); - Coil3 = new ModelRenderer(this, 0, 17); - Coil3.addBox(0F, -6F, -2F, 12, 4, 4); - Coil3.setRotationPoint(-35F, 10F, 0F); - Coil3.setTextureSize(64, 32); - Coil3.mirror = true; - setRotation(Coil3, -2.094395F, 0F, 0F); - SpindelTip3 = new ModelRenderer(this, 0, 11); - SpindelTip3.addBox(0F, -5F, -1F, 1, 2, 2); - SpindelTip3.setRotationPoint(-36F, 10F, 0F); - SpindelTip3.setTextureSize(64, 32); - SpindelTip3.mirror = true; - setRotation(SpindelTip3, -2.094395F, 0F, 0F); - WireRight = new ModelRenderer(this, 0, 2); - WireRight.addBox(0F, 0F, 0F, 15, 1, 1); - WireRight.setRotationPoint(-15F, 13F, 4F); - WireRight.setTextureSize(64, 32); - WireRight.mirror = true; - setRotation(WireRight, 0F, 0F, 0F); - WireLeft = new ModelRenderer(this, 0, 0); - WireLeft.addBox(0F, 0F, 0F, 15, 1, 1); - WireLeft.setRotationPoint(-15F, 13F, -5F); - WireLeft.setTextureSize(64, 32); - WireLeft.mirror = true; - setRotation(WireLeft, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float rot) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Body.render(f5); - BodyConnector.render(f5); - BodyFront.render(f5); - BodyPlateLeft.render(f5); - BodyPlateRight.render(f5); - BodyPlateBottom.render(f5); - Rib1.render(f5); - Rib2.render(f5); - Rib3.render(f5); - Rib4.render(f5); - Rib5.render(f5); - Rib6.render(f5); - Rib7.render(f5); - Stock.render(f5); - StockBottom.render(f5); - StockPlate.render(f5); - CrankPivot.render(f5); - CrankPlate.render(f5); - CrankHandleBase.render(f5); - CrankHandle.render(f5); - HandlePivot.render(f5); - HandleLeft.render(f5); - HandleRight.render(f5); - Handle.render(f5); - ShieldTop.render(f5); - ShieldBottom.render(f5); - Battery.render(f5); - BatteryTop.render(f5); - BatteryBottom.render(f5); - Wire.render(f5); - SpindelPivot.render(f5); - SpindelBase1.rotateAngleX += rot; - Coil1.rotateAngleX += rot; - SpindelTip1.rotateAngleX += rot; - SpindelBase2.rotateAngleX += rot; - Coil2.rotateAngleX += rot; - SpindelTip2.rotateAngleX += rot; - SpindelBase3.rotateAngleX += rot; - Coil3.rotateAngleX += rot; - SpindelTip3.rotateAngleX += rot; - SpindelBase1.render(f5); - Coil1.render(f5); - SpindelTip1.render(f5); - SpindelBase2.render(f5); - Coil2.render(f5); - SpindelTip2.render(f5); - SpindelBase3.render(f5); - Coil3.render(f5); - SpindelTip3.render(f5); - WireRight.render(f5); - WireLeft.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelEuthanasia.java b/src/main/java/com/hbm/render/model/ModelEuthanasia.java deleted file mode 100644 index 5d55bbabb..000000000 --- a/src/main/java/com/hbm/render/model/ModelEuthanasia.java +++ /dev/null @@ -1,169 +0,0 @@ -// Date: 21.02.2017 21:26:09 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelEuthanasia extends ModelBase -{ - //fields - ModelRenderer Barrel; - ModelRenderer Tank; - ModelRenderer ConnectorBF; - ModelRenderer ConnectorBB; - ModelRenderer ConnectorBeam; - ModelRenderer ConnectorTF; - ModelRenderer ConnectorTB; - ModelRenderer Body; - ModelRenderer Plate; - ModelRenderer Beam; - ModelRenderer Stock; - ModelRenderer StockBack; - ModelRenderer StockPlate; - ModelRenderer Handle; - ModelRenderer Trigger; - - public ModelEuthanasia() - { - textureWidth = 64; - textureHeight = 64; - - Barrel = new ModelRenderer(this, 0, 0); - Barrel.addBox(0F, 0F, 0F, 18, 3, 3); - Barrel.setRotationPoint(-11F, 0.5F, -1.5F); - Barrel.setTextureSize(64, 64); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - Tank = new ModelRenderer(this, 0, 6); - Tank.addBox(0F, 0F, 0F, 9, 5, 5); - Tank.setRotationPoint(-3F, -0.5F, -2.5F); - Tank.setTextureSize(64, 64); - Tank.mirror = true; - setRotation(Tank, 0F, 0F, 0F); - ConnectorBF = new ModelRenderer(this, 52, 0); - ConnectorBF.addBox(0F, 0F, 0F, 2, 8, 4); - ConnectorBF.setRotationPoint(-6F, 0F, -2F); - ConnectorBF.setTextureSize(64, 64); - ConnectorBF.mirror = true; - setRotation(ConnectorBF, 0F, 0F, 0F); - ConnectorBB = new ModelRenderer(this, 28, 6); - ConnectorBB.addBox(0F, 0F, 0F, 2, 8, 4); - ConnectorBB.setRotationPoint(7F, 0F, -2F); - ConnectorBB.setTextureSize(64, 64); - ConnectorBB.mirror = true; - setRotation(ConnectorBB, 0F, 0F, 0F); - ConnectorBeam = new ModelRenderer(this, 0, 18); - ConnectorBeam.addBox(0F, 0F, 0F, 11, 2, 4); - ConnectorBeam.setRotationPoint(-4F, 6F, -2F); - ConnectorBeam.setTextureSize(64, 64); - ConnectorBeam.mirror = true; - setRotation(ConnectorBeam, 0F, 0F, 0F); - ConnectorTF = new ModelRenderer(this, 40, 12); - ConnectorTF.addBox(0F, 0F, 0F, 2, 8, 4); - ConnectorTF.setRotationPoint(-9F, -4F, -2F); - ConnectorTF.setTextureSize(64, 64); - ConnectorTF.mirror = true; - setRotation(ConnectorTF, 0F, 0F, 0F); - ConnectorTB = new ModelRenderer(this, 52, 12); - ConnectorTB.addBox(0F, 0F, 0F, 2, 8, 4); - ConnectorTB.setRotationPoint(9F, -4F, -2F); - ConnectorTB.setTextureSize(64, 64); - ConnectorTB.mirror = true; - setRotation(ConnectorTB, 0F, 0F, 0F); - Body = new ModelRenderer(this, 0, 24); - Body.addBox(0F, 0F, 0F, 4, 5, 4); - Body.setRotationPoint(11F, -1F, -2F); - Body.setTextureSize(64, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Plate = new ModelRenderer(this, 16, 24); - Plate.addBox(0F, 0F, 0F, 5, 3, 4); - Plate.setRotationPoint(11F, -4F, -2F); - Plate.setTextureSize(64, 64); - Plate.mirror = true; - setRotation(Plate, 0F, 0F, 0.6457718F); - Beam = new ModelRenderer(this, 0, 33); - Beam.addBox(0F, 0F, 0F, 16, 1, 1); - Beam.setRotationPoint(-7F, -3.5F, -0.5F); - Beam.setTextureSize(64, 64); - Beam.mirror = true; - setRotation(Beam, 0F, 0F, 0F); - Stock = new ModelRenderer(this, 0, 35); - Stock.addBox(0F, 0F, 0F, 10, 2, 2); - Stock.setRotationPoint(15F, 1F, -1F); - Stock.setTextureSize(64, 64); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - StockBack = new ModelRenderer(this, 0, 39); - StockBack.addBox(0F, 0F, 0F, 1, 4, 2); - StockBack.setRotationPoint(24F, 3F, -1F); - StockBack.setTextureSize(64, 64); - StockBack.mirror = true; - setRotation(StockBack, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 6, 39); - StockPlate.addBox(0F, -5F, 0F, 1, 5, 2); - StockPlate.setRotationPoint(24F, 7F, -1F); - StockPlate.setTextureSize(64, 64); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, -0.2094395F); - Handle = new ModelRenderer(this, 12, 39); - Handle.addBox(0F, 0F, 0F, 2, 6, 2); - Handle.setRotationPoint(13F, 4F, -1F); - Handle.setTextureSize(64, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.2094395F); - Trigger = new ModelRenderer(this, 20, 39); - Trigger.addBox(0F, 0F, 0F, 1, 4, 2); - Trigger.setRotationPoint(12F, 4F, -1F); - Trigger.setTextureSize(64, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Barrel.render(f5); - Tank.render(f5); - ConnectorBF.render(f5); - ConnectorBB.render(f5); - ConnectorBeam.render(f5); - ConnectorTF.render(f5); - ConnectorTB.render(f5); - Body.render(f5); - Plate.render(f5); - Beam.render(f5); - Stock.render(f5); - StockBack.render(f5); - StockPlate.render(f5); - Handle.render(f5); - Trigger.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelFatman.java b/src/main/java/com/hbm/render/model/ModelFatman.java deleted file mode 100644 index fc65ff140..000000000 --- a/src/main/java/com/hbm/render/model/ModelFatman.java +++ /dev/null @@ -1,318 +0,0 @@ -// Date: 26.01.2016 14:54:33 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelFatman extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - ModelRenderer Shape26; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - - public ModelFatman() { - textureWidth = 128; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 40, 2, 4); - Shape1.setRotationPoint(-20F, 0F, 0F); - Shape1.setTextureSize(128, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 6, 2, 2); - Shape2.setRotationPoint(-19F, 2F, 1F); - Shape2.setTextureSize(128, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 1, 4, 1); - Shape3.setRotationPoint(-12F, 2F, 1.5F); - Shape3.setTextureSize(128, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 6); - Shape4.addBox(0F, 0F, 0F, 6, 1, 4); - Shape4.setRotationPoint(-10F, 2F, 0F); - Shape4.setTextureSize(128, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 15); - Shape5.addBox(0F, 0F, 0F, 2, 3, 1); - Shape5.setRotationPoint(-7F, 3F, 1.5F); - Shape5.setTextureSize(128, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 4, 10); - Shape6.addBox(0F, 0F, 0F, 3, 3, 1); - Shape6.setRotationPoint(-10F, 3F, 1.5F); - Shape6.setTextureSize(128, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 12, 10); - Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(-7F, 3F, 1.5F); - Shape7.setTextureSize(128, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.5235988F); - Shape8 = new ModelRenderer(this, 36, 6); - Shape8.addBox(0F, 0F, 0F, 10, 1, 4); - Shape8.setRotationPoint(-3F, 2F, 0F); - Shape8.setTextureSize(128, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 64, 6); - Shape9.addBox(0F, 0F, 0F, 2, 3, 2); - Shape9.setRotationPoint(7F, 2F, 1F); - Shape9.setTextureSize(128, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 88, 0); - Shape10.addBox(0F, 0F, 0F, 3, 4, 4); - Shape10.setRotationPoint(17F, -4F, 0F); - Shape10.setTextureSize(128, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 72, 6); - Shape11.addBox(0F, 0F, 0F, 2, 3, 1); - Shape11.setRotationPoint(18F, -7F, 0F); - Shape11.setTextureSize(128, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 78, 6); - Shape12.addBox(0F, 0F, 0F, 2, 3, 1); - Shape12.setRotationPoint(18F, -7F, 3F); - Shape12.setTextureSize(128, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 0, 19); - Shape13.addBox(0F, -4F, 0F, 22, 4, 0); - Shape13.setRotationPoint(-17F, 0F, 1F); - Shape13.setTextureSize(128, 64); - Shape13.mirror = true; - setRotation(Shape13, 0.4363323F, 0F, 0F); - Shape14 = new ModelRenderer(this, 16, 11); - Shape14.addBox(0F, 0F, 0F, 33, 1, 1); - Shape14.setRotationPoint(-17F, -4F, -1F); - Shape14.setTextureSize(128, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 0, 23); - Shape15.addBox(0F, -4F, 0F, 22, 4, 0); - Shape15.setRotationPoint(-17F, 0F, 3F); - Shape15.setTextureSize(128, 64); - Shape15.mirror = true; - setRotation(Shape15, -0.4363323F, 0F, 0F); - Shape16 = new ModelRenderer(this, 16, 13); - Shape16.addBox(0F, 0F, 0F, 33, 1, 1); - Shape16.setRotationPoint(-17F, -4F, 4F); - Shape16.setTextureSize(128, 64); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 44, 25); - Shape17.addBox(0F, -4F, 0F, 8, 4, 0); - Shape17.setRotationPoint(8F, 0F, 1F); - Shape17.setTextureSize(128, 64); - Shape17.mirror = true; - setRotation(Shape17, 0.4363323F, 0F, 0F); - Shape18 = new ModelRenderer(this, 44, 21); - Shape18.addBox(0F, -4F, 0F, 8, 4, 0); - Shape18.setRotationPoint(8F, 0F, 3F); - Shape18.setTextureSize(128, 64); - Shape18.mirror = true; - setRotation(Shape18, -0.4363323F, 0F, 0F); - Shape19 = new ModelRenderer(this, 0, 37); - Shape19.addBox(0F, 0F, 0F, 5, 4, 2); - Shape19.setRotationPoint(5F, -6F, 1F); - Shape19.setTextureSize(128, 64); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 0, 31); - Shape20.addBox(0F, 0F, 0F, 5, 2, 4); - Shape20.setRotationPoint(5F, -5F, 0F); - Shape20.setTextureSize(128, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 0, 27); - Shape21.addBox(0F, 0F, 0F, 1, 2, 2); - Shape21.setRotationPoint(4F, -5F, 1F); - Shape21.setTextureSize(128, 64); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 6, 27); - Shape22.addBox(0F, 0F, 0F, 1, 2, 2); - Shape22.setRotationPoint(10F, -5F, 1F); - Shape22.setTextureSize(128, 64); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 8, 43); - Shape23.addBox(0F, 0F, 0F, 2, 2, 1); - Shape23.setRotationPoint(11F, -5F, 0F); - Shape23.setTextureSize(128, 64); - Shape23.mirror = true; - setRotation(Shape23, 0F, 0F, 0F); - Shape24 = new ModelRenderer(this, 8, 46); - Shape24.addBox(0F, 0F, 0F, 2, 2, 1); - Shape24.setRotationPoint(11F, -5F, 3F); - Shape24.setTextureSize(128, 64); - Shape24.mirror = true; - setRotation(Shape24, 0F, 0F, 0F); - Shape25 = new ModelRenderer(this, 0, 43); - Shape25.addBox(0F, 0F, 0F, 2, 1, 2); - Shape25.setRotationPoint(11F, -6F, 1F); - Shape25.setTextureSize(128, 64); - Shape25.mirror = true; - setRotation(Shape25, 0F, 0F, 0F); - Shape26 = new ModelRenderer(this, 0, 46); - Shape26.addBox(0F, 0F, 0F, 2, 1, 2); - Shape26.setRotationPoint(11F, -3F, 1F); - Shape26.setTextureSize(128, 64); - Shape26.mirror = true; - setRotation(Shape26, 0F, 0F, 0F); - Shape27 = new ModelRenderer(this, 18, 27); - Shape27.addBox(0F, 0F, 0F, 2, 5, 1); - Shape27.setRotationPoint(13F, -5F, 1.5F); - Shape27.setTextureSize(128, 64); - Shape27.mirror = true; - setRotation(Shape27, 0F, 0F, 0F); - Shape28 = new ModelRenderer(this, 84, 6); - Shape28.addBox(0F, 0F, 0F, 1, 3, 1); - Shape28.setRotationPoint(16F, -3F, 1.5F); - Shape28.setTextureSize(128, 64); - Shape28.mirror = true; - setRotation(Shape28, 0F, 0F, 0F); - Shape29 = new ModelRenderer(this, 6, 15); - Shape29.addBox(0F, 0F, 0F, 10, 2, 2); - Shape29.setRotationPoint(3F, -2F, 1F); - Shape29.setTextureSize(128, 64); - Shape29.mirror = true; - setRotation(Shape29, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 30, 15); - Shape30.addBox(0F, 0F, 0F, 12, 2, 2); - Shape30.setRotationPoint(-7F, -1F, 4F); - Shape30.setTextureSize(128, 64); - Shape30.mirror = true; - setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 44, 19); - Shape31.addBox(0F, 0F, 0F, 14, 1, 1); - Shape31.setRotationPoint(5F, -0.5F, 4.5F); - Shape31.setTextureSize(128, 64); - Shape31.mirror = true; - setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 12, 27); - Shape32.addBox(0F, 0F, 0F, 1, 1, 1); - Shape32.setRotationPoint(18F, -0.5F, 3.5F); - Shape32.setTextureSize(128, 64); - Shape32.mirror = true; - setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 24, 29); - Shape33.addBox(0F, 0F, 0F, 21, 1, 2); - Shape33.setRotationPoint(-18F, -1F, 1F); - Shape33.setTextureSize(128, 64); - Shape33.mirror = true; - setRotation(Shape33, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape2.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape6.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape7.render(f5); - Shape8.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape9.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - - int ammo = ItemGunBase.getMag(item); - if(ammo > 0) { - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - Shape24.render(f5); - Shape25.render(f5); - Shape26.render(f5); - } - - Shape27.render(f5); - Shape28.render(f5); - Shape29.render(f5); - Shape30.render(f5); - Shape31.render(f5); - Shape32.render(f5); - Shape33.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelFolly.java b/src/main/java/com/hbm/render/model/ModelFolly.java deleted file mode 100644 index cdf189d7d..000000000 --- a/src/main/java/com/hbm/render/model/ModelFolly.java +++ /dev/null @@ -1,322 +0,0 @@ -// Date: 13.01.2019 13:32:43 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; - -public class ModelFolly extends ModelBase { - // fields - ModelRenderer SB1; - ModelRenderer SB2; - ModelRenderer SB3; - ModelRenderer SB4; - ModelRenderer SB5; - ModelRenderer SB6; - ModelRenderer SB7; - ModelRenderer SB8; - ModelRenderer SP; - ModelRenderer B1; - ModelRenderer B2; - ModelRenderer B3; - ModelRenderer SF1; - ModelRenderer SF2; - ModelRenderer SF3; - ModelRenderer SF4; - ModelRenderer P1; - ModelRenderer P2; - ModelRenderer P3; - ModelRenderer P4; - ModelRenderer Grip; - ModelRenderer SPointer; - - public ModelFolly() { - textureWidth = 64; - textureHeight = 64; - - SB1 = new ModelRenderer(this, 0, 0); - SB1.addBox(-16F, -1F, 0F, 16, 1, 3); - SB1.setRotationPoint(0F, 4F, -1.5F); - SB1.setTextureSize(64, 32); - SB1.mirror = true; - setRotation(SB1, 0F, 0F, 0F); - SB2 = new ModelRenderer(this, 0, 16); - SB2.addBox(-16F, -1.5F, 0F, 16, 1, 1); - SB2.setRotationPoint(0F, 4F, 1F); - SB2.setTextureSize(64, 32); - SB2.mirror = true; - setRotation(SB2, 0F, 0F, 0F); - SB3 = new ModelRenderer(this, 0, 18); - SB3.addBox(-16F, -1.5F, 0F, 16, 1, 1); - SB3.setRotationPoint(0F, 4F, -2F); - SB3.setTextureSize(64, 32); - SB3.mirror = true; - setRotation(SB3, 0F, 0F, 0F); - SB4 = new ModelRenderer(this, 0, 8); - SB4.addBox(-16F, -4F, 0F, 16, 3, 1); - SB4.setRotationPoint(0F, 4F, -2.5F); - SB4.setTextureSize(64, 32); - SB4.mirror = true; - setRotation(SB4, 0F, 0F, 0F); - SB5 = new ModelRenderer(this, 0, 12); - SB5.addBox(-16F, -4F, 0F, 16, 3, 1); - SB5.setRotationPoint(0F, 4F, 1.5F); - SB5.setTextureSize(64, 32); - SB5.mirror = true; - setRotation(SB5, 0F, 0F, 0F); - SB6 = new ModelRenderer(this, 0, 20); - SB6.addBox(-16F, -4.5F, 0F, 16, 1, 1); - SB6.setRotationPoint(0F, 4F, 1F); - SB6.setTextureSize(64, 32); - SB6.mirror = true; - setRotation(SB6, 0F, 0F, 0F); - SB7 = new ModelRenderer(this, 0, 22); - SB7.addBox(-16F, -4.5F, 0F, 16, 1, 1); - SB7.setRotationPoint(0F, 4F, -2F); - SB7.setTextureSize(64, 32); - SB7.mirror = true; - setRotation(SB7, 0F, 0F, 0F); - SB8 = new ModelRenderer(this, 0, 4); - SB8.addBox(-16F, -5F, 0F, 16, 1, 3); - SB8.setRotationPoint(0F, 4F, -1.5F); - SB8.setTextureSize(64, 32); - SB8.mirror = true; - setRotation(SB8, 0F, 0F, 0F); - SP = new ModelRenderer(this, 58, 0); - SP.addBox(0F, -4F, 0F, 0, 3, 3); - SP.setRotationPoint(-0.5F, 4F, -1.5F); - SP.setTextureSize(64, 32); - SP.mirror = true; - setRotation(SP, 0F, 0F, 0F); - B1 = new ModelRenderer(this, 0, 40); - B1.addBox(0F, 0F, 0F, 5, 5, 3); - B1.setRotationPoint(0F, -1F, -1.5F); - B1.setTextureSize(64, 32); - B1.mirror = true; - setRotation(B1, 0F, 0F, 0F); - B2 = new ModelRenderer(this, 0, 48); - B2.addBox(0F, 0F, 0F, 5, 3, 5); - B2.setRotationPoint(0F, 0F, -2.5F); - B2.setTextureSize(64, 32); - B2.mirror = true; - setRotation(B2, 0F, 0F, 0F); - B3 = new ModelRenderer(this, 0, 56); - B3.addBox(0F, 0F, 0F, 5, 4, 4); - B3.setRotationPoint(0F, -0.5F, -2F); - B3.setTextureSize(64, 32); - B3.mirror = true; - setRotation(B3, 0F, 0F, 0F); - SF1 = new ModelRenderer(this, 0, 24); - SF1.addBox(-32F, -1.5F, 0F, 16, 1, 3); - SF1.setRotationPoint(0F, 4F, -1.5F); - SF1.setTextureSize(64, 32); - SF1.mirror = true; - setRotation(SF1, 0F, 0F, 0F); - SF2 = new ModelRenderer(this, 0, 28); - SF2.addBox(-32F, -4.5F, 0F, 16, 1, 3); - SF2.setRotationPoint(0F, 4F, -1.5F); - SF2.setTextureSize(64, 32); - SF2.mirror = true; - setRotation(SF2, 0F, 0F, 0F); - SF3 = new ModelRenderer(this, 0, 32); - SF3.addBox(-32F, -4F, 0F, 16, 3, 1); - SF3.setRotationPoint(0F, 4F, -2F); - SF3.setTextureSize(64, 32); - SF3.mirror = true; - setRotation(SF3, 0F, 0F, 0F); - SF4 = new ModelRenderer(this, 0, 36); - SF4.addBox(-32F, -4F, 0F, 16, 3, 1); - SF4.setRotationPoint(0F, 4F, 1F); - SF4.setTextureSize(64, 32); - SF4.mirror = true; - setRotation(SF4, 0F, 0F, 0F); - P1 = new ModelRenderer(this, 58, 6); - P1.addBox(0F, 0F, 0F, 1, 4, 2); - P1.setRotationPoint(5F, 1F, -1F); - P1.setTextureSize(64, 32); - P1.mirror = true; - setRotation(P1, 0F, 0F, 0F); - P2 = new ModelRenderer(this, 52, 0); - P2.addBox(-1F, -2F, 0F, 1, 2, 2); - P2.setRotationPoint(6F, 1F, -1F); - P2.setTextureSize(64, 32); - P2.mirror = true; - setRotation(P2, 0F, 0F, -0.5235988F); - P3 = new ModelRenderer(this, 42, 0); - P3.addBox(0F, 0F, 0F, 1, 1, 4); - P3.setRotationPoint(4.5F, 1F, -2F); - P3.setTextureSize(64, 32); - P3.mirror = true; - setRotation(P3, 0F, 0F, 0F); - P4 = new ModelRenderer(this, 44, 5); - P4.addBox(0F, 0F, 0F, 5, 1, 2); - P4.setRotationPoint(0F, 4F, -1F); - P4.setTextureSize(64, 32); - P4.mirror = true; - setRotation(P4, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 52, 8); - Grip.addBox(0F, 0F, 0F, 2, 4, 1); - Grip.setRotationPoint(2F, 5F, -0.5F); - Grip.setTextureSize(64, 32); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, -0.2617994F); - SPointer = new ModelRenderer(this, 56, 13); - SPointer.addBox(-32F, -0.5F, 0F, 3, 1, 1); - SPointer.setRotationPoint(0F, 4F, -0.5F); - SPointer.setTextureSize(64, 32); - SPointer.mirror = true; - setRotation(SPointer, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - SB1.render(f5); - SB2.render(f5); - SB3.render(f5); - SB4.render(f5); - SB5.render(f5); - SB6.render(f5); - SB7.render(f5); - SB8.render(f5); - SP.render(f5); - B1.render(f5); - B2.render(f5); - B3.render(f5); - SF1.render(f5); - SF2.render(f5); - SF3.render(f5); - SF4.render(f5); - P1.render(f5); - P2.render(f5); - P3.render(f5); - P4.render(f5); - Grip.render(f5); - SPointer.render(f5); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, int state, int timer) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - float rotate = (float) (Math.PI * -70D / 180D); - - if(state == 1 || state == 2) { - SB1.rotateAngleZ = rotate; - SB2.rotateAngleZ = rotate; - SB3.rotateAngleZ = rotate; - SB4.rotateAngleZ = rotate; - SB5.rotateAngleZ = rotate; - SB6.rotateAngleZ = rotate; - SB7.rotateAngleZ = rotate; - SB8.rotateAngleZ = rotate; - SP.rotateAngleZ = rotate; - SPointer.rotateAngleZ = rotate; - SF1.rotateAngleZ = rotate; - SF2.rotateAngleZ = rotate; - SF3.rotateAngleZ = rotate; - SF4.rotateAngleZ = rotate; - } else { - SB1.rotateAngleZ = 0; - SB2.rotateAngleZ = 0; - SB3.rotateAngleZ = 0; - SB4.rotateAngleZ = 0; - SB5.rotateAngleZ = 0; - SB6.rotateAngleZ = 0; - SB7.rotateAngleZ = 0; - SB8.rotateAngleZ = 0; - SP.rotateAngleZ = 0; - SPointer.rotateAngleZ = 0; - SF1.rotateAngleZ = 0; - SF2.rotateAngleZ = 0; - SF3.rotateAngleZ = 0; - SF4.rotateAngleZ = 0; - } - - SB1.render(f5); - SB2.render(f5); - SB3.render(f5); - SB4.render(f5); - SB5.render(f5); - SB6.render(f5); - SB7.render(f5); - SB8.render(f5); - - if(state == 2 || state == 3) { - SP.render(f5); - } - - B1.render(f5); - B2.render(f5); - B3.render(f5); - SF1.render(f5); - SF2.render(f5); - SF3.render(f5); - SF4.render(f5); - P1.render(f5); - P2.render(f5); - P3.render(f5); - P4.render(f5); - Grip.render(f5); - SPointer.render(f5); - - if(state == 3 && timer > -1) { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - Tessellator tessellator = Tessellator.instance; - int color = 0x00FF00; - - if(timer == 0) - color = 0xFF0000; - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, timer, 0); - tessellator.draw(); - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, -timer, 0); - tessellator.draw(); - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, 0, timer); - tessellator.draw(); - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, 0, -timer); - tessellator.draw(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelGloves.java b/src/main/java/com/hbm/render/model/ModelGloves.java deleted file mode 100644 index 797d82d0d..000000000 --- a/src/main/java/com/hbm/render/model/ModelGloves.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.hbm.render.model; - -public class ModelGloves { - - //TODO: make the rubber gloves actually render when worn - public ModelGloves() { - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelGrenade.java b/src/main/java/com/hbm/render/model/ModelGrenade.java deleted file mode 100644 index 88ee4dddb..000000000 --- a/src/main/java/com/hbm/render/model/ModelGrenade.java +++ /dev/null @@ -1,67 +0,0 @@ -// Date: 23.01.2019 10:30:04 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelGrenade extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - - public ModelGrenade() { - textureWidth = 32; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 8, 8, 8); - Shape1.setRotationPoint(-4F, -4F, -4F); - Shape1.setTextureSize(32, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 16); - Shape2.addBox(0F, 0F, 0F, 4, 6, 6); - Shape2.setRotationPoint(-8F, -3F, -3F); - Shape2.setTextureSize(32, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 20, 16); - Shape3.addBox(0F, 0F, 0F, 1, 4, 4); - Shape3.setRotationPoint(-9F, -2F, -2F); - Shape3.setTextureSize(32, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - } - - public void renderAll(float f5) { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelGustav.java b/src/main/java/com/hbm/render/model/ModelGustav.java deleted file mode 100644 index 43fcd28bc..000000000 --- a/src/main/java/com/hbm/render/model/ModelGustav.java +++ /dev/null @@ -1,313 +0,0 @@ -// Date: 21.01.2019 10:38:11 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelGustav extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - ModelRenderer Shape26; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape34; - - public ModelGustav() { - textureWidth = 128; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 40, 1, 3); - Shape1.setRotationPoint(-30F, 0F, -1.5F); - Shape1.setTextureSize(128, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 4); - Shape2.addBox(0F, 0F, 0F, 40, 1, 1); - Shape2.setRotationPoint(-30F, -0.5F, -2F); - Shape2.setTextureSize(128, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 6); - Shape3.addBox(0F, 0F, 0F, 40, 1, 1); - Shape3.setRotationPoint(-30F, -0.5F, 1F); - Shape3.setTextureSize(128, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 8); - Shape4.addBox(0F, 0F, 0F, 40, 3, 1); - Shape4.setRotationPoint(-30F, -3F, -2.5F); - Shape4.setTextureSize(128, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 12); - Shape5.addBox(0F, 0F, 0F, 40, 3, 1); - Shape5.setRotationPoint(-30F, -3F, 1.5F); - Shape5.setTextureSize(128, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 16); - Shape6.addBox(0F, 0F, 0F, 40, 1, 1); - Shape6.setRotationPoint(-30F, -3.5F, -2F); - Shape6.setTextureSize(128, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 18); - Shape7.addBox(0F, 0F, 0F, 40, 1, 1); - Shape7.setRotationPoint(-30F, -3.5F, 1F); - Shape7.setTextureSize(128, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 0, 20); - Shape8.addBox(0F, 0F, 0F, 40, 1, 3); - Shape8.setRotationPoint(-30F, -4F, -1.5F); - Shape8.setTextureSize(128, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 24); - Shape9.addBox(0F, 0F, 0F, 2, 5, 1); - Shape9.setRotationPoint(-23F, 1F, -0.5F); - Shape9.setTextureSize(128, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 6, 24); - Shape10.addBox(0F, 0F, 0F, 4, 1, 1); - Shape10.setRotationPoint(-16F, 1F, -0.5F); - Shape10.setTextureSize(128, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 6, 26); - Shape11.addBox(0F, 0F, 0F, 2, 4, 1); - Shape11.setRotationPoint(-14F, 2F, -0.5F); - Shape11.setTextureSize(128, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 16, 24); - Shape12.addBox(0F, 0F, 0F, 2, 1, 1); - Shape12.setRotationPoint(-16F, 2F, -0.5F); - Shape12.setTextureSize(128, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 22, 24); - Shape13.addBox(0F, 0F, 0F, 7, 1, 1); - Shape13.setRotationPoint(-4F, -7F, -0.5F); - Shape13.setTextureSize(128, 32); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 38, 24); - Shape14.addBox(0F, 0F, 0F, 5, 1, 1); - Shape14.setRotationPoint(3F, -7F, -0.5F); - Shape14.setTextureSize(128, 32); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0.6108652F); - Shape15 = new ModelRenderer(this, 50, 24); - Shape15.addBox(-5F, 0F, 0F, 5, 1, 1); - Shape15.setRotationPoint(-4F, -7F, -0.5F); - Shape15.setTextureSize(128, 32); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, -0.6108652F); - Shape16 = new ModelRenderer(this, 104, 0); - Shape16.addBox(0F, 0F, 0F, 7, 5, 5); - Shape16.setRotationPoint(10F, -4F, -2.5F); - Shape16.setTextureSize(128, 32); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 86, 0); - Shape17.addBox(0F, 0F, 0F, 3, 3, 2); - Shape17.setRotationPoint(17F, -3F, -1F); - Shape17.setTextureSize(128, 32); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 82, 5); - Shape18.addBox(0F, 0F, 0F, 3, 2, 3); - Shape18.setRotationPoint(17F, -2.5F, -1.5F); - Shape18.setTextureSize(128, 32); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 82, 10); - Shape19.addBox(0F, 0F, 0F, 4, 4, 3); - Shape19.setRotationPoint(20F, -3.5F, -1.5F); - Shape19.setTextureSize(128, 32); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 96, 10); - Shape20.addBox(0F, 0F, 0F, 4, 3, 4); - Shape20.setRotationPoint(20F, -3F, -2F); - Shape20.setTextureSize(128, 32); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 112, 10); - Shape21.addBox(0F, 0F, 0F, 4, 5, 4); - Shape21.setRotationPoint(24F, -4F, -2F); - Shape21.setTextureSize(128, 32); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 86, 17); - Shape22.addBox(0F, 0F, 0F, 4, 4, 5); - Shape22.setRotationPoint(24F, -3.5F, -2.5F); - Shape22.setTextureSize(128, 32); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 96, 0); - Shape23.addBox(0F, 0F, 0F, 2, 5, 2); - Shape23.setRotationPoint(-4F, 1F, -1F); - Shape23.setTextureSize(128, 32); - Shape23.mirror = true; - setRotation(Shape23, 0F, 0F, 0F); - Shape24 = new ModelRenderer(this, 104, 17); - Shape24.addBox(0F, 0F, 0F, 1, 5, 1); - Shape24.setRotationPoint(-3.5F, 6F, -0.5F); - Shape24.setTextureSize(128, 32); - Shape24.mirror = true; - setRotation(Shape24, 0F, 0F, 0F); - Shape25 = new ModelRenderer(this, 96, 7); - Shape25.addBox(0F, 0F, 0F, 2, 1, 2); - Shape25.setRotationPoint(-4F, 11F, -1F); - Shape25.setTextureSize(128, 32); - Shape25.mirror = true; - setRotation(Shape25, 0F, 0F, 0F); - Shape26 = new ModelRenderer(this, 120, 19); - Shape26.addBox(0F, 0F, 0F, 2, 5, 2); - Shape26.setRotationPoint(-1.5F, 1F, -1F); - Shape26.setTextureSize(128, 32); - Shape26.mirror = true; - setRotation(Shape26, 0F, 0F, 0F); - Shape27 = new ModelRenderer(this, 114, 19); - Shape27.addBox(-1F, -6F, 0F, 1, 6, 2); - Shape27.setRotationPoint(0.5F, 6F, -1F); - Shape27.setTextureSize(128, 32); - Shape27.mirror = true; - setRotation(Shape27, 0F, 0F, 0.2617994F); - Shape28 = new ModelRenderer(this, 12, 26); - Shape28.addBox(0F, 0F, 0F, 5, 2, 2); - Shape28.setRotationPoint(11F, -2.5F, -4.5F); - Shape28.setTextureSize(128, 32); - Shape28.mirror = true; - setRotation(Shape28, 0F, 0F, 0F); - Shape29 = new ModelRenderer(this, 26, 26); - Shape29.addBox(0F, 0F, 0F, 2, 2, 2); - Shape29.setRotationPoint(-18F, -3F, -4.5F); - Shape29.setTextureSize(128, 32); - Shape29.mirror = true; - setRotation(Shape29, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 12, 30); - Shape30.addBox(0F, 0F, 0F, 5, 1, 1); - Shape30.setRotationPoint(-21F, -1F, -3.5F); - Shape30.setTextureSize(128, 32); - Shape30.mirror = true; - setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 62, 24); - Shape31.addBox(0F, 0F, 0F, 7, 1, 1); - Shape31.setRotationPoint(-21F, -3.5F, -5.5F); - Shape31.setTextureSize(128, 32); - Shape31.mirror = true; - setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 34, 26); - Shape32.addBox(0F, 0F, 0F, 1, 2, 2); - Shape32.setRotationPoint(-14F, -4F, -6F); - Shape32.setTextureSize(128, 32); - Shape32.mirror = true; - setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 40, 26); - Shape33.addBox(0F, -2F, 0F, 1, 2, 2); - Shape33.setRotationPoint(-13F, -2F, -6F); - Shape33.setTextureSize(128, 32); - Shape33.mirror = true; - setRotation(Shape33, 0F, 0F, -0.4363323F); - Shape34 = new ModelRenderer(this, 78, 24); - Shape34.addBox(0F, 0F, 0F, 3, 1, 1); - Shape34.setRotationPoint(-29F, -2F, -3F); - Shape34.setTextureSize(128, 32); - Shape34.mirror = true; - setRotation(Shape34, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - Shape24.render(f5); - Shape25.render(f5); - Shape26.render(f5); - Shape27.render(f5); - Shape28.render(f5); - Shape29.render(f5); - Shape30.render(f5); - Shape31.render(f5); - Shape32.render(f5); - Shape33.render(f5); - Shape34.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelHP.java b/src/main/java/com/hbm/render/model/ModelHP.java deleted file mode 100644 index dcdf2ec40..000000000 --- a/src/main/java/com/hbm/render/model/ModelHP.java +++ /dev/null @@ -1,194 +0,0 @@ -// Date: 21.02.2017 20:44:50 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.entity.Entity; - -public class ModelHP extends ModelBase -{ - //fields - ModelRenderer Printer; - ModelRenderer Hatch; - ModelRenderer Display; - ModelRenderer Stock; - ModelRenderer StockBottom; - ModelRenderer StockPlate; - ModelRenderer Barrel; - ModelRenderer Lens1; - ModelRenderer Lens2; - ModelRenderer Lens3; - ModelRenderer Beam; - ModelRenderer Handle; - ModelRenderer Dot; - ModelRenderer Back; - ModelRenderer BackShaft; - ModelRenderer Muzzle; - ModelRenderer BarrelPlate; - - public ModelHP() - { - textureWidth = 64; - textureHeight = 64; - - Printer = new ModelRenderer(this, 0, 0); - Printer.addBox(0F, 0F, 0F, 12, 9, 6); - Printer.setRotationPoint(-6F, -3F, -3F); - Printer.setTextureSize(64, 64); - Printer.mirror = true; - setRotation(Printer, 0F, 0F, 0F); - Hatch = new ModelRenderer(this, 0, 15); - Hatch.addBox(0F, 0F, 0F, 6, 5, 1); - Hatch.setRotationPoint(-3F, -1F, -3F); - Hatch.setTextureSize(64, 64); - Hatch.mirror = true; - setRotation(Hatch, 0F, 0F, 0F); - Display = new ModelRenderer(this, 14, 15); - Display.addBox(0F, -2F, 0F, 2, 2, 1); - Display.setRotationPoint(3.5F, 0F, -3F); - Display.setTextureSize(64, 64); - Display.mirror = true; - setRotation(Display, 0.7853982F, 0F, 0F); - Stock = new ModelRenderer(this, 0, 21); - Stock.addBox(0F, 0F, 0F, 12, 3, 2); - Stock.setRotationPoint(6F, 0F, -1F); - Stock.setTextureSize(64, 64); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - StockBottom = new ModelRenderer(this, 20, 15); - StockBottom.addBox(0F, 0F, 0F, 3, 3, 2); - StockBottom.setRotationPoint(15F, 3F, -1F); - StockBottom.setTextureSize(64, 64); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 0, 26); - StockPlate.addBox(-8F, -3F, 0F, 8, 3, 2); - StockPlate.setRotationPoint(15F, 6F, -1F); - StockPlate.setTextureSize(64, 64); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, 0.3839724F); - Barrel = new ModelRenderer(this, 0, 31); - Barrel.addBox(0F, 0F, 0F, 15, 2, 2); - Barrel.setRotationPoint(-21F, 0F, -1F); - Barrel.setTextureSize(64, 64); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - Lens1 = new ModelRenderer(this, 0, 35); - Lens1.addBox(0F, 0F, 0F, 1, 3, 3); - Lens1.setRotationPoint(-19F, -3F, -1.5F); - Lens1.setTextureSize(64, 64); - Lens1.mirror = true; - setRotation(Lens1, 0F, 0F, 0F); - Lens2 = new ModelRenderer(this, 8, 35); - Lens2.addBox(0F, 0F, 0F, 1, 4, 4); - Lens2.setRotationPoint(-16F, -3.5F, -2F); - Lens2.setTextureSize(64, 64); - Lens2.mirror = true; - setRotation(Lens2, 0F, 0F, 0F); - Lens3 = new ModelRenderer(this, 0, 41); - Lens3.addBox(0F, 0F, 0F, 1, 3, 3); - Lens3.setRotationPoint(-13F, -3F, -1.466667F); - Lens3.setTextureSize(64, 64); - Lens3.mirror = true; - setRotation(Lens3, 0F, 0F, 0F); - Beam = new ModelRenderer(this, 0, 47); - Beam.addBox(0F, 0F, 0F, 12, 1, 1); - Beam.setRotationPoint(-18F, -2F, -0.5F); - Beam.setTextureSize(64, 64); - Beam.mirror = true; - setRotation(Beam, 0F, 0F, 0F); - Handle = new ModelRenderer(this, 18, 35); - Handle.addBox(0F, 0F, 0F, 2, 6, 1); - Handle.setRotationPoint(-16F, 2F, -0.5F); - Handle.setTextureSize(64, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.1745329F); - Dot = new ModelRenderer(this, 0, 49); - Dot.addBox(0F, 0F, 0F, 2, 1, 1); - Dot.setRotationPoint(-20F, 2F, -0.5F); - Dot.setTextureSize(64, 64); - Dot.mirror = true; - setRotation(Dot, 0F, 0F, 0F); - Back = new ModelRenderer(this, 0, 51); - Back.addBox(-1F, -3F, 0F, 1, 3, 2); - Back.setRotationPoint(7F, 0F, -1F); - Back.setTextureSize(64, 64); - Back.mirror = true; - setRotation(Back, 0F, 0F, -0.3490659F); - BackShaft = new ModelRenderer(this, 0, 56); - BackShaft.addBox(0F, 0F, 0F, 4, 1, 1); - BackShaft.setRotationPoint(6F, -1F, -0.5F); - BackShaft.setTextureSize(64, 64); - BackShaft.mirror = true; - setRotation(BackShaft, 0F, 0F, 0F); - Muzzle = new ModelRenderer(this, 0, 58); - Muzzle.addBox(0F, 0F, 0F, 1, 2, 2); - Muzzle.setRotationPoint(-6.5F, -2.5F, -1F); - Muzzle.setTextureSize(64, 64); - Muzzle.mirror = true; - setRotation(Muzzle, 0F, 0F, 0F); - BarrelPlate = new ModelRenderer(this, 6, 58); - BarrelPlate.addBox(-4F, -2F, 0F, 4, 2, 1); - BarrelPlate.setRotationPoint(-6F, 4F, -0.5F); - BarrelPlate.setTextureSize(64, 64); - BarrelPlate.mirror = true; - setRotation(BarrelPlate, 0F, 0F, 0.5235988F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Printer.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Hatch.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Display.render(f5); - Stock.render(f5); - StockBottom.render(f5); - StockPlate.render(f5); - Barrel.render(f5); - GL11.glEnable(GL11.GL_BLEND); - //GL11.glDisable(GL11.GL_ALPHA_TEST); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - Lens1.render(f5); - Lens2.render(f5); - Lens3.render(f5); - Beam.render(f5); - GL11.glDisable(GL11.GL_BLEND); - Handle.render(f5); - Dot.render(f5); - Back.render(f5); - BackShaft.render(f5); - Muzzle.render(f5); - BarrelPlate.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelImmolator.java b/src/main/java/com/hbm/render/model/ModelImmolator.java deleted file mode 100644 index c94ca7deb..000000000 --- a/src/main/java/com/hbm/render/model/ModelImmolator.java +++ /dev/null @@ -1,247 +0,0 @@ -// Date: 22.11.2016 22:40:09 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelImmolator extends ModelBase { - // fields - ModelRenderer CylinderBase; - ModelRenderer CylinderFront; - ModelRenderer PipeBBase; - ModelRenderer PipeB; - ModelRenderer TipBase; - ModelRenderer PipeL; - ModelRenderer PipeLFront; - ModelRenderer TipFront; - ModelRenderer ChamberH; - ModelRenderer ChamberW; - ModelRenderer PipeTBack; - ModelRenderer PipeTBase; - ModelRenderer PipeT; - ModelRenderer PipeTFront; - ModelRenderer Body; - ModelRenderer Tank; - ModelRenderer HandleBase; - ModelRenderer HandleBar; - ModelRenderer HandleGrip; - ModelRenderer BodyPlate; - ModelRenderer ValveFront; - ModelRenderer ValveCenter; - ModelRenderer Stock; - ModelRenderer LatchBase; - ModelRenderer LatchHandle; - ModelRenderer ValveBack; - - public ModelImmolator() { - textureWidth = 64; - textureHeight = 32; - - CylinderBase = new ModelRenderer(this, 0, 0); - CylinderBase.addBox(0F, 0F, 0F, 2, 4, 4); - CylinderBase.setRotationPoint(0F, 0F, -2F); - CylinderBase.setTextureSize(64, 32); - CylinderBase.mirror = true; - setRotation(CylinderBase, 0F, 0F, 0F); - CylinderFront = new ModelRenderer(this, 0, 8); - CylinderFront.addBox(0F, 0F, 0F, 1, 3, 3); - CylinderFront.setRotationPoint(-1F, 0.5F, -1.5F); - CylinderFront.setTextureSize(64, 32); - CylinderFront.mirror = true; - setRotation(CylinderFront, 0F, 0F, 0F); - PipeBBase = new ModelRenderer(this, 0, 14); - PipeBBase.addBox(0F, 0F, 0F, 2, 2, 2); - PipeBBase.setRotationPoint(-2F, 2F, 0F); - PipeBBase.setTextureSize(64, 32); - PipeBBase.mirror = true; - setRotation(PipeBBase, 0F, 0F, 0F); - PipeB = new ModelRenderer(this, 0, 18); - PipeB.addBox(0F, 0F, 0F, 8, 1, 1); - PipeB.setRotationPoint(-10F, 2.5F, 0.5F); - PipeB.setTextureSize(64, 32); - PipeB.mirror = true; - setRotation(PipeB, 0F, 0F, 0F); - TipBase = new ModelRenderer(this, 8, 8); - TipBase.addBox(0F, 0F, 0F, 2, 2, 2); - TipBase.setRotationPoint(-12F, 1.5F, -0.5F); - TipBase.setTextureSize(64, 32); - TipBase.mirror = true; - setRotation(TipBase, 0F, 0F, 0F); - PipeL = new ModelRenderer(this, 0, 20); - PipeL.addBox(0F, 0F, 0F, 7, 1, 1); - PipeL.setRotationPoint(-7F, 2.5F, -1.5F); - PipeL.setTextureSize(64, 32); - PipeL.mirror = true; - setRotation(PipeL, 0F, 0F, 0F); - PipeLFront = new ModelRenderer(this, 0, 22); - PipeLFront.addBox(-4F, 0F, 0F, 4, 1, 1); - PipeLFront.setRotationPoint(-7F, 2.5F, -1.5F); - PipeLFront.setTextureSize(64, 32); - PipeLFront.mirror = true; - setRotation(PipeLFront, 0F, 0.4363323F, 0F); - TipFront = new ModelRenderer(this, 8, 12); - TipFront.addBox(0F, 0F, 0F, 2, 1, 1); - TipFront.setRotationPoint(-14F, 2F, 0F); - TipFront.setTextureSize(64, 32); - TipFront.mirror = true; - setRotation(TipFront, 0F, 0F, 0F); - ChamberH = new ModelRenderer(this, 24, 0); - ChamberH.addBox(0F, 0F, 0F, 4, 5, 4); - ChamberH.setRotationPoint(2F, -0.5F, -2F); - ChamberH.setTextureSize(64, 32); - ChamberH.mirror = true; - setRotation(ChamberH, 0F, 0F, 0F); - ChamberW = new ModelRenderer(this, 40, 0); - ChamberW.addBox(0F, 0F, 0F, 4, 4, 5); - ChamberW.setRotationPoint(2F, 0F, -2.5F); - ChamberW.setTextureSize(64, 32); - ChamberW.mirror = true; - setRotation(ChamberW, 0F, 0F, 0F); - PipeTBack = new ModelRenderer(this, 0, 24); - PipeTBack.addBox(0F, 0F, 0F, 6, 1, 1); - PipeTBack.setRotationPoint(0F, -2F, 2.5F); - PipeTBack.setTextureSize(64, 32); - PipeTBack.mirror = true; - setRotation(PipeTBack, -0.4363323F, 0F, 0F); - PipeTBase = new ModelRenderer(this, 8, 14); - PipeTBase.addBox(0F, 1F, 0F, 1, 2, 1); - PipeTBase.setRotationPoint(1F, -2F, 2.5F); - PipeTBase.setTextureSize(64, 32); - PipeTBase.mirror = true; - setRotation(PipeTBase, -0.4363323F, 0F, 0F); - PipeT = new ModelRenderer(this, 0, 26); - PipeT.addBox(-9F, 0F, 0F, 9, 1, 1); - PipeT.setRotationPoint(0F, -2F, 2.5F); - PipeT.setTextureSize(64, 32); - PipeT.mirror = true; - setRotation(PipeT, -0.4363323F, -0.296706F, -0.4014257F); - PipeTFront = new ModelRenderer(this, 0, 28); - PipeTFront.addBox(0F, 0F, 0F, 3, 1, 1); - PipeTFront.setRotationPoint(-10F, 1.5F, 0F); - PipeTFront.setTextureSize(64, 32); - PipeTFront.mirror = true; - setRotation(PipeTFront, 0F, 0F, 0F); - Body = new ModelRenderer(this, 24, 9); - Body.addBox(0F, 0F, 0F, 10, 4, 4); - Body.setRotationPoint(6F, 0.5F, -1.5F); - Body.setTextureSize(64, 32); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Tank = new ModelRenderer(this, 12, 0); - Tank.addBox(0F, 0F, 0F, 3, 3, 2); - Tank.setRotationPoint(6F, 1F, -3F); - Tank.setTextureSize(64, 32); - Tank.mirror = true; - setRotation(Tank, 0F, 0F, 0F); - HandleBase = new ModelRenderer(this, 24, 17); - HandleBase.addBox(0F, 0F, 0F, 2, 2, 1); - HandleBase.setRotationPoint(4F, 1F, -3F); - HandleBase.setTextureSize(64, 32); - HandleBase.mirror = true; - setRotation(HandleBase, 0F, 0F, 0F); - HandleBar = new ModelRenderer(this, 30, 17); - HandleBar.addBox(0F, 0F, 0F, 1, 1, 2); - HandleBar.setRotationPoint(4.5F, 1.5F, -5F); - HandleBar.setTextureSize(64, 32); - HandleBar.mirror = true; - setRotation(HandleBar, 0F, 0F, 0F); - HandleGrip = new ModelRenderer(this, 36, 17); - HandleGrip.addBox(0F, 0F, -2F, 1, 1, 2); - HandleGrip.setRotationPoint(4.5F, 1.5F, -5F); - HandleGrip.setTextureSize(64, 32); - HandleGrip.mirror = true; - setRotation(HandleGrip, 0F, -0.3490659F, 0F); - BodyPlate = new ModelRenderer(this, 24, 20); - BodyPlate.addBox(0F, 0F, 0F, 10, 1, 2); - BodyPlate.setRotationPoint(6F, 0F, 0F); - BodyPlate.setTextureSize(64, 32); - BodyPlate.mirror = true; - setRotation(BodyPlate, 0F, 0F, 0F); - ValveFront = new ModelRenderer(this, 0, 30); - ValveFront.addBox(0F, 0F, 0F, 1, 1, 1); - ValveFront.setRotationPoint(8F, -0.5F, 0.5F); - ValveFront.setTextureSize(64, 32); - ValveFront.mirror = true; - setRotation(ValveFront, 0F, 0F, 0F); - ValveCenter = new ModelRenderer(this, 4, 30); - ValveCenter.addBox(0F, 0F, 0F, 1, 1, 1); - ValveCenter.setRotationPoint(11F, -0.5F, 0.5F); - ValveCenter.setTextureSize(64, 32); - ValveCenter.mirror = true; - setRotation(ValveCenter, 0F, 0F, 0F); - Stock = new ModelRenderer(this, 24, 23); - Stock.addBox(0F, 0F, 0F, 2, 4, 2); - Stock.setRotationPoint(16F, 0.5F, 0F); - Stock.setTextureSize(64, 32); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - LatchBase = new ModelRenderer(this, 8, 28); - LatchBase.addBox(0F, 0F, 0F, 2, 1, 1); - LatchBase.setRotationPoint(16F, 0.5F, 2F); - LatchBase.setTextureSize(64, 32); - LatchBase.mirror = true; - setRotation(LatchBase, 0F, 0F, 0F); - LatchHandle = new ModelRenderer(this, 32, 23); - LatchHandle.addBox(0F, 0F, 0F, 2, 3, 1); - LatchHandle.setRotationPoint(16F, 0.5F, 3F); - LatchHandle.setTextureSize(64, 32); - LatchHandle.mirror = true; - setRotation(LatchHandle, 0F, 0F, 0F); - ValveBack = new ModelRenderer(this, 8, 30); - ValveBack.addBox(0F, 0F, 0F, 1, 1, 1); - ValveBack.setRotationPoint(17.5F, 1F, 0.5F); - ValveBack.setTextureSize(64, 32); - ValveBack.mirror = true; - setRotation(ValveBack, 0F, 0F, 0F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - CylinderBase.render(f5); - CylinderFront.render(f5); - PipeBBase.render(f5); - PipeB.render(f5); - TipBase.render(f5); - PipeL.render(f5); - PipeLFront.render(f5); - TipFront.render(f5); - ChamberH.render(f5); - ChamberW.render(f5); - PipeTBack.render(f5); - PipeTBase.render(f5); - PipeT.render(f5); - PipeTFront.render(f5); - Body.render(f5); - Tank.render(f5); - HandleBase.render(f5); - HandleBar.render(f5); - HandleGrip.render(f5); - BodyPlate.render(f5); - ValveFront.render(f5); - ValveCenter.render(f5); - Stock.render(f5); - LatchBase.render(f5); - LatchHandle.render(f5); - ValveBack.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelJack.java b/src/main/java/com/hbm/render/model/ModelJack.java deleted file mode 100644 index c0621d054..000000000 --- a/src/main/java/com/hbm/render/model/ModelJack.java +++ /dev/null @@ -1,129 +0,0 @@ -// Date: 14.02.2017 18:33:04 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelJack extends ModelBase -{ - //fields - ModelRenderer BarrelBR; - ModelRenderer BarrelBL; - ModelRenderer BarrelTR; - ModelRenderer BarrelTL; - ModelRenderer Body; - ModelRenderer Back; - ModelRenderer Plate; - ModelRenderer StockMain; - ModelRenderer StockBottom; - ModelRenderer StockPlate; - - public ModelJack() - { - textureWidth = 64; - textureHeight = 64; - - BarrelBR = new ModelRenderer(this, 0, 6); - BarrelBR.addBox(0F, 0F, 0F, 21, 3, 3); - BarrelBR.setRotationPoint(-18F, 0F, 0.2F); - BarrelBR.setTextureSize(64, 64); - BarrelBR.mirror = true; - setRotation(BarrelBR, 0F, 0F, 0F); - BarrelBL = new ModelRenderer(this, 0, 0); - BarrelBL.addBox(0F, 0F, 0F, 21, 3, 3); - BarrelBL.setRotationPoint(-18F, 0F, -3.2F); - BarrelBL.setTextureSize(64, 64); - BarrelBL.mirror = true; - setRotation(BarrelBL, 0F, 0F, 0F); - BarrelTR = new ModelRenderer(this, 0, 12); - BarrelTR.addBox(0F, 0F, 0F, 21, 3, 3); - BarrelTR.setRotationPoint(-18F, -3.2F, 0.2F); - BarrelTR.setTextureSize(64, 64); - BarrelTR.mirror = true; - setRotation(BarrelTR, 0F, 0F, 0F); - BarrelTL = new ModelRenderer(this, 0, 18); - BarrelTL.addBox(0F, 0F, 0F, 21, 3, 3); - BarrelTL.setRotationPoint(-18F, -3.2F, -3.2F); - BarrelTL.setTextureSize(64, 64); - BarrelTL.mirror = true; - setRotation(BarrelTL, 0F, 0F, 0F); - Body = new ModelRenderer(this, 0, 24); - Body.addBox(0F, 0F, 0F, 15, 7, 4); - Body.setRotationPoint(-9F, -2F, -2F); - Body.setTextureSize(64, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Back = new ModelRenderer(this, 38, 24); - Back.addBox(0F, 0F, 0F, 3, 5, 3); - Back.setRotationPoint(6F, 0F, -1.5F); - Back.setTextureSize(64, 64); - Back.mirror = true; - setRotation(Back, 0F, 0F, 0F); - Plate = new ModelRenderer(this, 0, 35); - Plate.addBox(0F, 0F, 0F, 4, 2, 3); - Plate.setRotationPoint(6F, -2F, -1.5F); - Plate.setTextureSize(64, 64); - Plate.mirror = true; - setRotation(Plate, 0F, 0F, 0.4363323F); - StockMain = new ModelRenderer(this, 0, 40); - StockMain.addBox(0F, 0F, 0F, 13, 3, 3); - StockMain.setRotationPoint(9F, 2F, -1.5F); - StockMain.setTextureSize(64, 64); - StockMain.mirror = true; - setRotation(StockMain, 0F, 0F, 0F); - StockBottom = new ModelRenderer(this, 0, 46); - StockBottom.addBox(0F, 0F, 0F, 6, 3, 3); - StockBottom.setRotationPoint(16F, 5F, -1.5F); - StockBottom.setTextureSize(64, 64); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 18, 46); - StockPlate.addBox(-8F, -3F, 0F, 8, 3, 3); - StockPlate.setRotationPoint(16F, 8F, -1.5F); - StockPlate.setTextureSize(64, 64); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, 0.4014257F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - BarrelBR.render(f5); - BarrelBL.render(f5); - BarrelTR.render(f5); - BarrelTL.render(f5); - Body.render(f5); - Back.render(f5); - Plate.render(f5); - StockMain.render(f5); - StockBottom.render(f5); - StockPlate.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelLacunae.java b/src/main/java/com/hbm/render/model/ModelLacunae.java deleted file mode 100644 index ba9c0a519..000000000 --- a/src/main/java/com/hbm/render/model/ModelLacunae.java +++ /dev/null @@ -1,598 +0,0 @@ -// Date: 30.12.2018 13:53:06 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelLacunae extends ModelBase { - // fields - ModelRenderer FrontP1; - ModelRenderer FrontP2; - ModelRenderer FrontP3; - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer Barrel3; - ModelRenderer Barrel4; - ModelRenderer Barrel5; - ModelRenderer Barrel6; - ModelRenderer Brace1; - ModelRenderer Brace2; - ModelRenderer Brace3; - ModelRenderer Brace4; - ModelRenderer Brace5; - ModelRenderer Brace6; - ModelRenderer Brace7; - ModelRenderer Brace8; - ModelRenderer Brace9; - ModelRenderer Brace10; - ModelRenderer Brace11; - ModelRenderer Brace12; - ModelRenderer Disc1; - ModelRenderer Disc2; - ModelRenderer Disc3; - ModelRenderer Disc4; - ModelRenderer Disc5; - ModelRenderer Disc6; - ModelRenderer Disc7; - ModelRenderer Disc8; - ModelRenderer BodyF1; - ModelRenderer BodyF2; - ModelRenderer BodyF3; - ModelRenderer BodyR1; - ModelRenderer BodyR2; - ModelRenderer BodyL1; - ModelRenderer BodyL2; - ModelRenderer BackP1; - ModelRenderer BackP2; - ModelRenderer BackP3; - ModelRenderer Block; - ModelRenderer AchsleF; - ModelRenderer Drum1; - ModelRenderer Drum2; - ModelRenderer DrumT; - ModelRenderer StickBase; - ModelRenderer Stick; - ModelRenderer AchsleB; - ModelRenderer Motor1; - ModelRenderer Motor2; - ModelRenderer Pipe1; - ModelRenderer Frame1; - ModelRenderer Frame2; - ModelRenderer Frame3; - ModelRenderer Frame4; - ModelRenderer Grip; - ModelRenderer Pipe2; - ModelRenderer PipeT; - ModelRenderer Pipe3; - ModelRenderer Pipe4; - ModelRenderer AmmoFrame; - ModelRenderer ClampB; - ModelRenderer ClampF; - ModelRenderer AmmoBox; - - public ModelLacunae() { - textureWidth = 128; - textureHeight = 128; - - FrontP1 = new ModelRenderer(this, 0, 52); - FrontP1.addBox(0F, 0F, 0F, 3, 8, 4); - FrontP1.setRotationPoint(-2F, 0F, -2F); - FrontP1.setTextureSize(128, 128); - FrontP1.mirror = true; - setRotation(FrontP1, 0F, 0F, 0F); - FrontP2 = new ModelRenderer(this, 14, 52); - FrontP2.addBox(0F, 0F, 0F, 3, 4, 8); - FrontP2.setRotationPoint(-2F, 2F, -4F); - FrontP2.setTextureSize(128, 128); - FrontP2.mirror = true; - setRotation(FrontP2, 0F, 0F, 0F); - FrontP3 = new ModelRenderer(this, 0, 38); - FrontP3.addBox(0F, 0F, 0F, 3, 7, 7); - FrontP3.setRotationPoint(-2F, 0.5F, -3.5F); - FrontP3.setTextureSize(128, 128); - FrontP3.mirror = true; - setRotation(FrontP3, 0F, 0F, 0F); - Barrel1 = new ModelRenderer(this, 64, 62); - Barrel1.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel1.setRotationPoint(1F, 4F, 0F); - Barrel1.setTextureSize(128, 128); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 64, 62); - Barrel2.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel2.setRotationPoint(1F, 4F, 0F); - Barrel2.setTextureSize(128, 128); - Barrel2.mirror = true; - setRotation(Barrel2, 0.6457718F, 0F, 0F); - Barrel3 = new ModelRenderer(this, 64, 62); - Barrel3.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel3.setRotationPoint(1F, 4F, 0F); - Barrel3.setTextureSize(128, 128); - Barrel3.mirror = true; - setRotation(Barrel3, 2.268928F, 0F, 0F); - Barrel4 = new ModelRenderer(this, 64, 62); - Barrel4.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel4.setRotationPoint(1F, 4F, 0F); - Barrel4.setTextureSize(128, 128); - Barrel4.mirror = true; - setRotation(Barrel4, 2.9147F, 0F, 0F); - Barrel5 = new ModelRenderer(this, 64, 62); - Barrel5.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel5.setRotationPoint(1F, 4F, 0F); - Barrel5.setTextureSize(128, 128); - Barrel5.mirror = true; - setRotation(Barrel5, -1.919862F, 0F, 0F); - Barrel6 = new ModelRenderer(this, 64, 62); - Barrel6.addBox(0F, -2.5F, -0.5F, 31, 1, 1); - Barrel6.setRotationPoint(1F, 4F, 0F); - Barrel6.setTextureSize(128, 128); - Barrel6.mirror = true; - setRotation(Barrel6, -1.27409F, 0F, 0F); - Brace1 = new ModelRenderer(this, 20, 48); - Brace1.addBox(0F, -3F, -1F, 5, 2, 2); - Brace1.setRotationPoint(25F, 4F, 0F); - Brace1.setTextureSize(128, 128); - Brace1.mirror = true; - setRotation(Brace1, 0F, 0F, 0F); - Brace2 = new ModelRenderer(this, 20, 48); - Brace2.addBox(0F, -3F, -1F, 5, 2, 2); - Brace2.setRotationPoint(25F, 4F, 0F); - Brace2.setTextureSize(128, 128); - Brace2.mirror = true; - setRotation(Brace2, 0.6457718F, 0F, 0F); - Brace3 = new ModelRenderer(this, 20, 44); - Brace3.addBox(0F, -3F, -1F, 5, 2, 2); - Brace3.setRotationPoint(4F, 4F, 0F); - Brace3.setTextureSize(128, 128); - Brace3.mirror = true; - setRotation(Brace3, 2.268928F, 0F, 0F); - Brace4 = new ModelRenderer(this, 20, 44); - Brace4.addBox(0F, -3F, -1F, 5, 2, 2); - Brace4.setRotationPoint(4F, 4F, 0F); - Brace4.setTextureSize(128, 128); - Brace4.mirror = true; - setRotation(Brace4, 2.9147F, 0F, 0F); - Brace5 = new ModelRenderer(this, 20, 44); - Brace5.addBox(0F, -3F, -1F, 5, 2, 2); - Brace5.setRotationPoint(4F, 4F, 0F); - Brace5.setTextureSize(128, 128); - Brace5.mirror = true; - setRotation(Brace5, -1.919862F, 0F, 0F); - Brace6 = new ModelRenderer(this, 20, 44); - Brace6.addBox(0F, -3F, -1F, 5, 2, 2); - Brace6.setRotationPoint(4F, 4F, 0F); - Brace6.setTextureSize(128, 128); - Brace6.mirror = true; - setRotation(Brace6, -1.27409F, 0F, 0F); - Brace7 = new ModelRenderer(this, 20, 44); - Brace7.addBox(0F, -3F, -1F, 5, 2, 2); - Brace7.setRotationPoint(4F, 4F, 0F); - Brace7.setTextureSize(128, 128); - Brace7.mirror = true; - setRotation(Brace7, 0F, 0F, 0F); - Brace8 = new ModelRenderer(this, 20, 44); - Brace8.addBox(0F, -3F, -1F, 5, 2, 2); - Brace8.setRotationPoint(4F, 4F, 0F); - Brace8.setTextureSize(128, 128); - Brace8.mirror = true; - setRotation(Brace8, 0.6457718F, 0F, 0F); - Brace9 = new ModelRenderer(this, 20, 48); - Brace9.addBox(0F, -3F, -1F, 5, 2, 2); - Brace9.setRotationPoint(25F, 4F, 0F); - Brace9.setTextureSize(128, 128); - Brace9.mirror = true; - setRotation(Brace9, 2.268928F, 0F, 0F); - Brace10 = new ModelRenderer(this, 20, 48); - Brace10.addBox(0F, -3F, -1F, 5, 2, 2); - Brace10.setRotationPoint(25F, 4F, 0F); - Brace10.setTextureSize(128, 128); - Brace10.mirror = true; - setRotation(Brace10, 2.9147F, 0F, 0F); - Brace11 = new ModelRenderer(this, 20, 48); - Brace11.addBox(0F, -3F, -1F, 5, 2, 2); - Brace11.setRotationPoint(25F, 4F, 0F); - Brace11.setTextureSize(128, 128); - Brace11.mirror = true; - setRotation(Brace11, -1.919862F, 0F, 0F); - Brace12 = new ModelRenderer(this, 20, 48); - Brace12.addBox(0F, -3F, -1F, 5, 2, 2); - Brace12.setRotationPoint(25F, 4F, 0F); - Brace12.setTextureSize(128, 128); - Brace12.mirror = true; - setRotation(Brace12, -1.27409F, 0F, 0F); - Disc1 = new ModelRenderer(this, 36, 54); - Disc1.addBox(0F, -3.5F, -1.5F, 2, 7, 3); - Disc1.setRotationPoint(15F, 4F, 0F); - Disc1.setTextureSize(128, 128); - Disc1.mirror = true; - setRotation(Disc1, 0F, 0F, 0F); - Disc2 = new ModelRenderer(this, 46, 54); - Disc2.addBox(0F, -3.5F, -1.5F, 2, 7, 3); - Disc2.setRotationPoint(15F, 4F, 0F); - Disc2.setTextureSize(128, 128); - Disc2.mirror = true; - setRotation(Disc2, 0.7853982F, 0F, 0F); - Disc3 = new ModelRenderer(this, 36, 44); - Disc3.addBox(0F, -3.5F, -1.5F, 2, 7, 3); - Disc3.setRotationPoint(15F, 4F, 0F); - Disc3.setTextureSize(128, 128); - Disc3.mirror = true; - setRotation(Disc3, 1.570796F, 0F, 0F); - Disc4 = new ModelRenderer(this, 46, 44); - Disc4.addBox(0F, -3.5F, -1.5F, 2, 7, 3); - Disc4.setRotationPoint(15F, 4F, 0F); - Disc4.setTextureSize(128, 128); - Disc4.mirror = true; - setRotation(Disc4, 2.356194F, 0F, 0F); - Disc5 = new ModelRenderer(this, 56, 54); - Disc5.addBox(0F, -3.5F, -1.5F, 1, 7, 3); - Disc5.setRotationPoint(2F, 4F, 0F); - Disc5.setTextureSize(128, 128); - Disc5.mirror = true; - setRotation(Disc5, 0F, 0F, 0F); - Disc6 = new ModelRenderer(this, 56, 44); - Disc6.addBox(0F, -3.5F, -1.5F, 1, 7, 3); - Disc6.setRotationPoint(2F, 4F, 0F); - Disc6.setTextureSize(128, 128); - Disc6.mirror = true; - setRotation(Disc6, 1.570796F, 0F, 0F); - Disc7 = new ModelRenderer(this, 64, 52); - Disc7.addBox(0F, -3.5F, -1.5F, 1, 7, 3); - Disc7.setRotationPoint(2F, 4F, 0F); - Disc7.setTextureSize(128, 128); - Disc7.mirror = true; - setRotation(Disc7, 0.7853982F, 0F, 0F); - Disc8 = new ModelRenderer(this, 72, 52); - Disc8.addBox(0F, -3.5F, -1.5F, 1, 7, 3); - Disc8.setRotationPoint(2F, 4F, 0F); - Disc8.setTextureSize(128, 128); - Disc8.mirror = true; - setRotation(Disc8, 2.356194F, 0F, 0F); - BodyF1 = new ModelRenderer(this, 80, 48); - BodyF1.addBox(0F, 0F, 0F, 7, 10, 4); - BodyF1.setRotationPoint(-9F, -1F, -2F); - BodyF1.setTextureSize(128, 128); - BodyF1.mirror = true; - setRotation(BodyF1, 0F, 0F, 0F); - BodyF2 = new ModelRenderer(this, 64, 34); - BodyF2.addBox(0F, 0F, 0F, 7, 4, 10); - BodyF2.setRotationPoint(-9F, 2F, -5F); - BodyF2.setTextureSize(128, 128); - BodyF2.mirror = true; - setRotation(BodyF2, 0F, 0F, 0F); - BodyF3 = new ModelRenderer(this, 98, 32); - BodyF3.addBox(0F, 0F, 0F, 7, 8, 8); - BodyF3.setRotationPoint(-9F, 0F, -4F); - BodyF3.setTextureSize(128, 128); - BodyF3.mirror = true; - setRotation(BodyF3, 0F, 0F, 0F); - BodyR1 = new ModelRenderer(this, 102, 55); - BodyR1.addBox(0F, 0F, 0F, 8, 4, 3); - BodyR1.setRotationPoint(-9.5F, 4.5F, -6F); - BodyR1.setTextureSize(128, 128); - BodyR1.mirror = true; - setRotation(BodyR1, 0F, 0F, 0F); - BodyR2 = new ModelRenderer(this, 102, 48); - BodyR2.addBox(0F, 0F, 0F, 8, 3, 4); - BodyR2.setRotationPoint(-9.5F, 5F, -6.5F); - BodyR2.setTextureSize(128, 128); - BodyR2.mirror = true; - setRotation(BodyR2, 0F, 0F, 0F); - BodyL1 = new ModelRenderer(this, 106, 17); - BodyL1.addBox(0F, 0F, 0F, 8, 4, 3); - BodyL1.setRotationPoint(-9.5F, 4.5F, 3F); - BodyL1.setTextureSize(128, 128); - BodyL1.mirror = true; - setRotation(BodyL1, 0F, 0F, 0F); - BodyL2 = new ModelRenderer(this, 104, 10); - BodyL2.addBox(0F, 0F, 0F, 8, 3, 4); - BodyL2.setRotationPoint(-9.5F, 5F, 2.5F); - BodyL2.setTextureSize(128, 128); - BodyL2.mirror = true; - setRotation(BodyL2, 0F, 0F, 0F); - BackP1 = new ModelRenderer(this, 54, 32); - BackP1.addBox(0F, 0F, 0F, 1, 8, 4); - BackP1.setRotationPoint(-10F, 0F, -2F); - BackP1.setTextureSize(128, 128); - BackP1.mirror = true; - setRotation(BackP1, 0F, 0F, 0F); - BackP2 = new ModelRenderer(this, 36, 32); - BackP2.addBox(0F, 0F, 0F, 1, 4, 8); - BackP2.setRotationPoint(-10F, 2F, -4F); - BackP2.setTextureSize(128, 128); - BackP2.mirror = true; - setRotation(BackP2, 0F, 0F, 0F); - BackP3 = new ModelRenderer(this, 20, 30); - BackP3.addBox(0F, 0F, 0F, 1, 7, 7); - BackP3.setRotationPoint(-10F, 0.5F, -3.5F); - BackP3.setTextureSize(128, 128); - BackP3.mirror = true; - setRotation(BackP3, 0F, 0F, 0F); - Block = new ModelRenderer(this, 98, 64); - Block.addBox(0F, 0F, 0F, 5, 9, 10); - Block.setRotationPoint(-27F, -1F, -5F); - Block.setTextureSize(128, 128); - Block.mirror = true; - setRotation(Block, 0F, 0F, 0F); - AchsleF = new ModelRenderer(this, 0, 34); - AchsleF.addBox(0F, 0F, 0F, 1, 2, 2); - AchsleF.setRotationPoint(-22F, 3F, -1F); - AchsleF.setTextureSize(128, 128); - AchsleF.mirror = true; - setRotation(AchsleF, 0F, 0F, 0F); - Drum1 = new ModelRenderer(this, 100, 24); - Drum1.addBox(0F, 0F, 0F, 11, 5, 3); - Drum1.setRotationPoint(-21F, 1.5F, -1.5F); - Drum1.setTextureSize(128, 128); - Drum1.mirror = true; - setRotation(Drum1, 0F, 0F, 0F); - Drum2 = new ModelRenderer(this, 96, 2); - Drum2.addBox(0F, 0F, 0F, 11, 3, 5); - Drum2.setRotationPoint(-21F, 2.5F, -2.5F); - Drum2.setTextureSize(128, 128); - Drum2.mirror = true; - setRotation(Drum2, 0F, 0F, 0F); - DrumT = new ModelRenderer(this, 34, 26); - DrumT.addBox(0F, 0F, 0F, 12, 1, 5); - DrumT.setRotationPoint(-22F, 0F, -2.5F); - DrumT.setTextureSize(128, 128); - DrumT.mirror = true; - setRotation(DrumT, 0F, 0F, 0F); - StickBase = new ModelRenderer(this, 6, 33); - StickBase.addBox(0F, 0F, 0F, 3, 2, 3); - StickBase.setRotationPoint(-26F, -3F, -1.5F); - StickBase.setTextureSize(128, 128); - StickBase.mirror = true; - setRotation(StickBase, 0F, 0F, 0F); - Stick = new ModelRenderer(this, 28, 72); - Stick.addBox(0F, -7F, 0F, 2, 7, 2); - Stick.setRotationPoint(-25.5F, -3F, -1F); - Stick.setTextureSize(128, 128); - Stick.mirror = true; - setRotation(Stick, 0F, 0F, 0.5235988F); - AchsleB = new ModelRenderer(this, 56, 66); - AchsleB.addBox(0F, 0F, 0F, 3, 2, 2); - AchsleB.setRotationPoint(-30F, 3F, -1F); - AchsleB.setTextureSize(128, 128); - AchsleB.mirror = true; - setRotation(AchsleB, 0F, 0F, 0F); - Motor1 = new ModelRenderer(this, 80, 66); - Motor1.addBox(0F, 0F, 0F, 5, 6, 4); - Motor1.setRotationPoint(-35F, 1F, -2F); - Motor1.setTextureSize(128, 128); - Motor1.mirror = true; - setRotation(Motor1, 0F, 0F, 0F); - Motor2 = new ModelRenderer(this, 76, 76); - Motor2.addBox(0F, 0F, 0F, 5, 4, 6); - Motor2.setRotationPoint(-35F, 2F, -3F); - Motor2.setTextureSize(128, 128); - Motor2.mirror = true; - setRotation(Motor2, 0F, 0F, 0F); - Pipe1 = new ModelRenderer(this, 62, 64); - Pipe1.addBox(0F, 0F, 0F, 16, 1, 1); - Pipe1.setRotationPoint(-23F, -1F, -6F); - Pipe1.setTextureSize(128, 128); - Pipe1.mirror = true; - setRotation(Pipe1, 0F, 0F, 0.2617994F); - Frame1 = new ModelRenderer(this, 0, 103); - Frame1.addBox(0F, 0F, 0F, 1, 1, 11); - Frame1.setRotationPoint(-1F, -2F, -5.5F); - Frame1.setTextureSize(128, 128); - Frame1.mirror = true; - setRotation(Frame1, 0F, 0F, 0F); - Frame2 = new ModelRenderer(this, 24, 73); - Frame2.addBox(0F, 0F, 0F, 1, 5, 1); - Frame2.setRotationPoint(-1F, -1.5F, -6F); - Frame2.setTextureSize(128, 128); - Frame2.mirror = true; - setRotation(Frame2, 0F, 0F, 0F); - Frame3 = new ModelRenderer(this, 28, 70); - Frame3.addBox(0F, 0F, 0F, 6, 1, 1); - Frame3.setRotationPoint(-6.5F, 3F, -6F); - Frame3.setTextureSize(128, 128); - Frame3.mirror = true; - setRotation(Frame3, 0F, 0F, 0F); - Frame4 = new ModelRenderer(this, 52, 66); - Frame4.addBox(0F, 0F, 0F, 1, 3, 1); - Frame4.setRotationPoint(-1F, -1.5F, 5F); - Frame4.setTextureSize(128, 128); - Frame4.mirror = true; - setRotation(Frame4, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 95); - Grip.addBox(0F, 0F, 0F, 2, 2, 6); - Grip.setRotationPoint(-3F, 0F, 5F); - Grip.setTextureSize(128, 128); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Pipe2 = new ModelRenderer(this, 28, 68); - Pipe2.addBox(-11F, 0F, 0F, 11, 1, 1); - Pipe2.setRotationPoint(-26F, -1F, -6F); - Pipe2.setTextureSize(128, 128); - Pipe2.mirror = true; - setRotation(Pipe2, 0F, 0F, -0.6108652F); - PipeT = new ModelRenderer(this, 0, 84); - PipeT.addBox(0F, 0F, 0F, 1, 1, 10); - PipeT.setRotationPoint(-34.5F, 4.5F, -5F); - PipeT.setTextureSize(128, 128); - PipeT.mirror = true; - setRotation(PipeT, 0F, 0F, 0F); - Pipe3 = new ModelRenderer(this, 28, 66); - Pipe3.addBox(-11F, 0F, 0F, 11, 1, 1); - Pipe3.setRotationPoint(-26F, -1F, 5F); - Pipe3.setTextureSize(128, 128); - Pipe3.mirror = true; - setRotation(Pipe3, 0F, 0F, -0.6108652F); - Pipe4 = new ModelRenderer(this, 28, 64); - Pipe4.addBox(0F, 0F, 0F, 16, 1, 1); - Pipe4.setRotationPoint(-23F, -1F, 5F); - Pipe4.setTextureSize(128, 128); - Pipe4.mirror = true; - setRotation(Pipe4, 0F, 0F, 0.2617994F); - AmmoFrame = new ModelRenderer(this, 0, 0); - AmmoFrame.addBox(0F, 0F, 0F, 10, 12, 12); - AmmoFrame.setRotationPoint(-21F, 9F, -6F); - AmmoFrame.setTextureSize(128, 128); - AmmoFrame.mirror = true; - setRotation(AmmoFrame, 0F, 0F, 0F); - ClampB = new ModelRenderer(this, 0, 73); - ClampB.addBox(0F, 0F, 0F, 4, 3, 8); - ClampB.setRotationPoint(-25F, 8F, -4F); - ClampB.setTextureSize(128, 128); - ClampB.mirror = true; - setRotation(ClampB, 0F, 0F, 0F); - ClampF = new ModelRenderer(this, 0, 64); - ClampF.addBox(0F, 0F, 0F, 8, 3, 6); - ClampF.setRotationPoint(-11F, 9F, -3F); - ClampF.setTextureSize(128, 128); - ClampF.mirror = true; - setRotation(ClampF, 0F, 0F, 0F); - AmmoBox = new ModelRenderer(this, 44, 0); - AmmoBox.addBox(0F, 0F, 0F, 9, 11, 11); - AmmoBox.setRotationPoint(-20.5F, 9.5F, -5.5F); - AmmoBox.setTextureSize(128, 128); - AmmoBox.mirror = true; - setRotation(AmmoBox, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float rot) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - rot *= Math.PI / 180F; - - Barrel1.rotateAngleX += rot; - Barrel2.rotateAngleX += rot; - Barrel3.rotateAngleX += rot; - Barrel4.rotateAngleX += rot; - Barrel5.rotateAngleX += rot; - Barrel6.rotateAngleX += rot; - Brace1.rotateAngleX += rot; - Brace2.rotateAngleX += rot; - Brace3.rotateAngleX += rot; - Brace4.rotateAngleX += rot; - Brace5.rotateAngleX += rot; - Brace6.rotateAngleX += rot; - Brace7.rotateAngleX += rot; - Brace8.rotateAngleX += rot; - Brace9.rotateAngleX += rot; - Brace10.rotateAngleX += rot; - Brace11.rotateAngleX += rot; - Brace12.rotateAngleX += rot; - Disc1.rotateAngleX += rot; - Disc2.rotateAngleX += rot; - Disc3.rotateAngleX += rot; - Disc4.rotateAngleX += rot; - Disc5.rotateAngleX += rot; - Disc6.rotateAngleX += rot; - Disc7.rotateAngleX += rot; - Disc8.rotateAngleX += rot; - - FrontP1.render(f5); - FrontP2.render(f5); - FrontP3.render(f5); - Barrel1.render(f5); - Barrel2.render(f5); - Barrel3.render(f5); - Barrel4.render(f5); - Barrel5.render(f5); - Barrel6.render(f5); - Brace1.render(f5); - Brace2.render(f5); - Brace3.render(f5); - Brace4.render(f5); - Brace5.render(f5); - Brace6.render(f5); - Brace7.render(f5); - Brace8.render(f5); - Brace9.render(f5); - Brace10.render(f5); - Brace11.render(f5); - Brace12.render(f5); - Disc1.render(f5); - Disc2.render(f5); - Disc3.render(f5); - Disc4.render(f5); - Disc5.render(f5); - Disc6.render(f5); - Disc7.render(f5); - Disc8.render(f5); - BodyF1.render(f5); - BodyF2.render(f5); - BodyF3.render(f5); - BodyR1.render(f5); - BodyR2.render(f5); - BodyL1.render(f5); - BodyL2.render(f5); - BackP1.render(f5); - BackP2.render(f5); - BackP3.render(f5); - Block.render(f5); - AchsleF.render(f5); - Drum1.render(f5); - Drum2.render(f5); - DrumT.render(f5); - StickBase.render(f5); - Stick.render(f5); - AchsleB.render(f5); - Motor1.render(f5); - Motor2.render(f5); - Pipe1.render(f5); - Frame1.render(f5); - Frame2.render(f5); - Frame3.render(f5); - Frame4.render(f5); - Grip.render(f5); - Pipe2.render(f5); - PipeT.render(f5); - Pipe3.render(f5); - Pipe4.render(f5); - AmmoFrame.render(f5); - ClampB.render(f5); - ClampF.render(f5); - AmmoBox.render(f5); - - Barrel1.rotateAngleX -= rot; - Barrel2.rotateAngleX -= rot; - Barrel3.rotateAngleX -= rot; - Barrel4.rotateAngleX -= rot; - Barrel5.rotateAngleX -= rot; - Barrel6.rotateAngleX -= rot; - Brace1.rotateAngleX -= rot; - Brace2.rotateAngleX -= rot; - Brace3.rotateAngleX -= rot; - Brace4.rotateAngleX -= rot; - Brace5.rotateAngleX -= rot; - Brace6.rotateAngleX -= rot; - Brace7.rotateAngleX -= rot; - Brace8.rotateAngleX -= rot; - Brace9.rotateAngleX -= rot; - Brace10.rotateAngleX -= rot; - Brace11.rotateAngleX -= rot; - Brace12.rotateAngleX -= rot; - Disc1.rotateAngleX -= rot; - Disc2.rotateAngleX -= rot; - Disc3.rotateAngleX -= rot; - Disc4.rotateAngleX -= rot; - Disc5.rotateAngleX -= rot; - Disc6.rotateAngleX -= rot; - Disc7.rotateAngleX -= rot; - Disc8.rotateAngleX -= rot; - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelLeverAction.java b/src/main/java/com/hbm/render/model/ModelLeverAction.java deleted file mode 100644 index c45cc2986..000000000 --- a/src/main/java/com/hbm/render/model/ModelLeverAction.java +++ /dev/null @@ -1,233 +0,0 @@ -// Date: 13.01.2018 16:04:59 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelLeverAction extends ModelBase { - // fields - ModelRenderer Barrel1; - ModelRenderer Barrel2; - ModelRenderer Barrel3; - ModelRenderer Barrel4; - ModelRenderer Grip; - ModelRenderer Front1; - ModelRenderer Front2; - ModelRenderer BodyFront; - ModelRenderer BodyTop; - ModelRenderer BodyMain; - ModelRenderer BodyPlate; - ModelRenderer HandleMain; - ModelRenderer HandleBottom; - ModelRenderer HandleBack; - ModelRenderer LeverFront; - ModelRenderer LeverBottom; - ModelRenderer LeverMid; - ModelRenderer LeverFrontPlate; - ModelRenderer LeverBackBottom; - ModelRenderer Trigger; - ModelRenderer LeverBackTop; - ModelRenderer LeverBack; - - public ModelLeverAction() { - textureWidth = 128; - textureHeight = 64; - - Barrel1 = new ModelRenderer(this, 0, 0); - Barrel1.addBox(0F, 0F, 0F, 60, 3, 2); - Barrel1.setRotationPoint(-60F, 1.5F, -1F); - Barrel1.setTextureSize(64, 32); - Barrel1.mirror = true; - setRotation(Barrel1, 0F, 0F, 0F); - Barrel2 = new ModelRenderer(this, 0, 5); - Barrel2.addBox(0F, 0F, 0F, 60, 2, 3); - Barrel2.setRotationPoint(-60F, 2F, -1.5F); - Barrel2.setTextureSize(64, 32); - Barrel2.mirror = true; - setRotation(Barrel2, 0F, 0F, 0F); - Barrel3 = new ModelRenderer(this, 0, 10); - Barrel3.addBox(0F, 0F, 0F, 10, 2, 3); - Barrel3.setRotationPoint(-46F, 6F, -1.5F); - Barrel3.setTextureSize(64, 32); - Barrel3.mirror = true; - setRotation(Barrel3, 0F, 0F, 0F); - Barrel4 = new ModelRenderer(this, 26, 10); - Barrel4.addBox(0F, 0F, 0F, 10, 3, 2); - Barrel4.setRotationPoint(-46F, 5.5F, -1F); - Barrel4.setTextureSize(64, 32); - Barrel4.mirror = true; - setRotation(Barrel4, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 15); - Grip.addBox(0F, 0F, 0F, 36, 6, 4); - Grip.setRotationPoint(-36F, 3F, -2F); - Grip.setTextureSize(64, 32); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Front1 = new ModelRenderer(this, 50, 10); - Front1.addBox(0F, 0F, 0F, 3, 2, 1); - Front1.setRotationPoint(-50F, 4.5F, -0.5F); - Front1.setTextureSize(64, 32); - Front1.mirror = true; - setRotation(Front1, 0F, 0F, 0F); - Front2 = new ModelRenderer(this, 58, 10); - Front2.addBox(0F, 0F, 0F, 3, 1, 2); - Front2.setRotationPoint(-50F, 6.5F, -1F); - Front2.setTextureSize(64, 32); - Front2.mirror = true; - setRotation(Front2, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 0, 25); - BodyFront.addBox(0F, 0F, 0F, 3, 8, 4); - BodyFront.setRotationPoint(0F, 1.5F, -2F); - BodyFront.setTextureSize(64, 32); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - BodyTop = new ModelRenderer(this, 14, 25); - BodyTop.addBox(0F, 0F, 0F, 3, 1, 3); - BodyTop.setRotationPoint(0F, 1F, -1.5F); - BodyTop.setTextureSize(64, 32); - BodyTop.mirror = true; - setRotation(BodyTop, 0F, 0F, 0F); - BodyMain = new ModelRenderer(this, 0, 37); - BodyMain.addBox(0F, 0F, 0F, 12, 7, 4); - BodyMain.setRotationPoint(3F, 2.5F, -2F); - BodyMain.setTextureSize(64, 32); - BodyMain.mirror = true; - setRotation(BodyMain, 0F, 0F, 0F); - BodyPlate = new ModelRenderer(this, 26, 25); - BodyPlate.addBox(0F, 0F, 0F, 10, 2, 3); - BodyPlate.setRotationPoint(3F, 1F, -1.5F); - BodyPlate.setTextureSize(64, 32); - BodyPlate.mirror = true; - setRotation(BodyPlate, 0F, 0F, 0.1570796F); - HandleMain = new ModelRenderer(this, 0, 48); - HandleMain.addBox(0F, 0F, 0F, 18, 5, 4); - HandleMain.setRotationPoint(15F, 4F, -2F); - HandleMain.setTextureSize(128, 64); - HandleMain.mirror = true; - setRotation(HandleMain, 0F, 0F, 0.4363323F); - HandleBottom = new ModelRenderer(this, 0, 57); - HandleBottom.addBox(4F, 4.5F, 0F, 13, 1, 4); - HandleBottom.setRotationPoint(15F, 4F, -2F); - HandleBottom.setTextureSize(128, 64); - HandleBottom.mirror = true; - setRotation(HandleBottom, 0F, 0F, 0.4363323F); - HandleBack = new ModelRenderer(this, 34, 57); - HandleBack.addBox(17.5F, 0.5F, 0F, 1, 4, 3); - HandleBack.setRotationPoint(15F, 4F, -1.5F); - HandleBack.setTextureSize(128, 64); - HandleBack.mirror = true; - setRotation(HandleBack, 0F, 0F, 0.4363323F); - LeverFront = new ModelRenderer(this, 62, 30); - LeverFront.addBox(-1F, 0F, 0F, 2, 4, 2); - LeverFront.setRotationPoint(7F, 9F, -1F); - LeverFront.setTextureSize(128, 64); - LeverFront.mirror = true; - setRotation(LeverFront, 0F, 0F, 0F); - LeverBottom = new ModelRenderer(this, 70, 30); - LeverBottom.addBox(0F, 4F, 0F, 6, 1, 2); - LeverBottom.setRotationPoint(7F, 9F, -1F); - LeverBottom.setTextureSize(128, 64); - LeverBottom.mirror = true; - setRotation(LeverBottom, 0F, 0F, 0F); - LeverMid = new ModelRenderer(this, 62, 36); - LeverMid.addBox(6F, 0F, 0F, 1, 5, 2); - LeverMid.setRotationPoint(7F, 9F, -1F); - LeverMid.setTextureSize(128, 64); - LeverMid.mirror = true; - setRotation(LeverMid, 0F, 0F, 0F); - LeverFrontPlate = new ModelRenderer(this, 68, 39); - LeverFrontPlate.addBox(7F, -1.5F, 0F, 9, 1, 2); - LeverFrontPlate.setRotationPoint(7F, 9F, -1F); - LeverFrontPlate.setTextureSize(128, 64); - LeverFrontPlate.mirror = true; - setRotation(LeverFrontPlate, 0F, 0F, 0.7853982F); - LeverBackBottom = new ModelRenderer(this, 70, 33); - LeverBackBottom.addBox(12F, 10F, 0F, 6, 1, 2); - LeverBackBottom.setRotationPoint(7F, 9F, -1F); - LeverBackBottom.setTextureSize(128, 64); - LeverBackBottom.mirror = true; - setRotation(LeverBackBottom, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 88, 30); - Trigger.addBox(-1F, 0F, 0F, 1, 3, 1); - Trigger.setRotationPoint(12.5F, 9F, -0.5F); - Trigger.setTextureSize(128, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.3490659F); - LeverBackTop = new ModelRenderer(this, 68, 36); - LeverBackTop.addBox(8F, -2F, 0F, 11, 1, 2); - LeverBackTop.setRotationPoint(7F, 9F, -1F); - LeverBackTop.setTextureSize(128, 64); - LeverBackTop.mirror = true; - setRotation(LeverBackTop, 0F, 0F, 0.4363323F); - LeverBack = new ModelRenderer(this, 62, 43); - LeverBack.addBox(17F, 6F, 0F, 1, 4, 2); - LeverBack.setRotationPoint(7F, 9F, -1F); - LeverBack.setTextureSize(128, 64); - LeverBack.mirror = true; - setRotation(LeverBack, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Barrel1.render(f5); - Barrel2.render(f5); - Barrel3.render(f5); - Barrel4.render(f5); - Grip.render(f5); - Front1.render(f5); - Front2.render(f5); - BodyFront.render(f5); - BodyTop.render(f5); - BodyMain.render(f5); - BodyPlate.render(f5); - HandleMain.render(f5); - HandleBottom.render(f5); - HandleBack.render(f5); - LeverFront.render(f5); - LeverBottom.render(f5); - LeverMid.render(f5); - LeverFrontPlate.render(f5); - LeverBackBottom.render(f5); - Trigger.render(f5); - LeverBackTop.render(f5); - LeverBack.render(f5); - } - - public void renderAnim(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float anim) { - LeverFront.rotateAngleZ += anim; - LeverBottom.rotateAngleZ += anim; - LeverMid.rotateAngleZ += anim; - LeverFrontPlate.rotateAngleZ += anim; - LeverBackBottom.rotateAngleZ += anim; - LeverBackTop.rotateAngleZ += anim; - LeverBack.rotateAngleZ += anim; - - render(entity, f, f1, f2, f3, f4, f5); - - setRotation(LeverFront, 0F, 0F, 0F); - setRotation(LeverBottom, 0F, 0F, 0F); - setRotation(LeverMid, 0F, 0F, 0F); - setRotation(LeverFrontPlate, 0F, 0F, 0.7853982F); - setRotation(LeverBackBottom, 0F, 0F, 0F); - setRotation(LeverBackTop, 0F, 0F, 0.4363323F); - setRotation(LeverBack, 0F, 0F, 0F); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMIRV.java b/src/main/java/com/hbm/render/model/ModelMIRV.java deleted file mode 100644 index 69cbe99e5..000000000 --- a/src/main/java/com/hbm/render/model/ModelMIRV.java +++ /dev/null @@ -1,95 +0,0 @@ -// Date: 13.11.2016 12:38:48 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMIRV extends ModelBase -{ - //fields - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - - public ModelMIRV() - { - textureWidth = 64; - textureHeight = 32; - - Shape9 = new ModelRenderer(this, 0, 0); - Shape9.addBox(0F, 0F, 0F, 10, 4, 2); - Shape9.setRotationPoint(-3F, -2F, -1F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 0, 6); - Shape10.addBox(0F, 0F, 0F, 10, 2, 4); - Shape10.setRotationPoint(-3F, -1F, -2F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 0, 12); - Shape11.addBox(0F, 0F, 0F, 10, 3, 3); - Shape11.setRotationPoint(-3F, -1.5F, -1.5F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 0, 18); - Shape12.addBox(0F, 0F, 0F, 4, 1, 1); - Shape12.setRotationPoint(0F, -3F, -1F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - } - - public void renderAll(float f5) - { - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape12.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape12.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMIRVLauncher.java b/src/main/java/com/hbm/render/model/ModelMIRVLauncher.java deleted file mode 100644 index a6dad112d..000000000 --- a/src/main/java/com/hbm/render/model/ModelMIRVLauncher.java +++ /dev/null @@ -1,287 +0,0 @@ -// Date: 13.11.2016 12:34:14 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelMIRVLauncher extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape27; - ModelRenderer Shape28; - ModelRenderer Shape29; - ModelRenderer Shape30; - ModelRenderer Shape31; - ModelRenderer Shape32; - ModelRenderer Shape33; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - - public ModelMIRVLauncher() { - textureWidth = 128; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 40, 2, 4); - Shape1.setRotationPoint(-20F, 0F, 0F); - Shape1.setTextureSize(128, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 6, 2, 2); - Shape2.setRotationPoint(-19F, 2F, 1F); - Shape2.setTextureSize(128, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 1, 4, 1); - Shape3.setRotationPoint(-12F, 2F, 1.5F); - Shape3.setTextureSize(128, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 6); - Shape4.addBox(0F, 0F, 0F, 6, 1, 4); - Shape4.setRotationPoint(-10F, 2F, 0F); - Shape4.setTextureSize(128, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 15); - Shape5.addBox(0F, 0F, 0F, 2, 3, 1); - Shape5.setRotationPoint(-7F, 3F, 1.5F); - Shape5.setTextureSize(128, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 4, 10); - Shape6.addBox(0F, 0F, 0F, 3, 3, 1); - Shape6.setRotationPoint(-10F, 3F, 1.5F); - Shape6.setTextureSize(128, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 12, 10); - Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(-7F, 3F, 1.5F); - Shape7.setTextureSize(128, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.5235988F); - Shape8 = new ModelRenderer(this, 36, 6); - Shape8.addBox(0F, 0F, 0F, 10, 1, 4); - Shape8.setRotationPoint(-3F, 2F, 0F); - Shape8.setTextureSize(128, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 64, 6); - Shape9.addBox(0F, 0F, 0F, 2, 3, 2); - Shape9.setRotationPoint(7F, 2F, 1F); - Shape9.setTextureSize(128, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 88, 0); - Shape10.addBox(0F, 0F, 0F, 3, 4, 4); - Shape10.setRotationPoint(17F, -4F, 0F); - Shape10.setTextureSize(128, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 72, 6); - Shape11.addBox(0F, 0F, 0F, 2, 3, 1); - Shape11.setRotationPoint(18F, -7F, 0F); - Shape11.setTextureSize(128, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 78, 6); - Shape12.addBox(0F, 0F, 0F, 2, 3, 1); - Shape12.setRotationPoint(18F, -7F, 3F); - Shape12.setTextureSize(128, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 0, 19); - Shape13.addBox(0F, -4F, 0F, 22, 4, 0); - Shape13.setRotationPoint(-17F, 0F, 1F); - Shape13.setTextureSize(128, 64); - Shape13.mirror = true; - setRotation(Shape13, 0.4363323F, 0F, 0F); - Shape14 = new ModelRenderer(this, 16, 11); - Shape14.addBox(0F, 0F, 0F, 33, 1, 1); - Shape14.setRotationPoint(-17F, -4F, -1F); - Shape14.setTextureSize(128, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 0, 23); - Shape15.addBox(0F, -4F, 0F, 22, 4, 0); - Shape15.setRotationPoint(-17F, 0F, 3F); - Shape15.setTextureSize(128, 64); - Shape15.mirror = true; - setRotation(Shape15, -0.4363323F, 0F, 0F); - Shape16 = new ModelRenderer(this, 16, 13); - Shape16.addBox(0F, 0F, 0F, 33, 1, 1); - Shape16.setRotationPoint(-17F, -4F, 4F); - Shape16.setTextureSize(128, 64); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 44, 25); - Shape17.addBox(0F, -4F, 0F, 8, 4, 0); - Shape17.setRotationPoint(8F, 0F, 1F); - Shape17.setTextureSize(128, 64); - Shape17.mirror = true; - setRotation(Shape17, 0.4363323F, 0F, 0F); - Shape18 = new ModelRenderer(this, 44, 21); - Shape18.addBox(0F, -4F, 0F, 8, 4, 0); - Shape18.setRotationPoint(8F, 0F, 3F); - Shape18.setTextureSize(128, 64); - Shape18.mirror = true; - setRotation(Shape18, -0.4363323F, 0F, 0F); - Shape27 = new ModelRenderer(this, 18, 27); - Shape27.addBox(0F, 0F, 0F, 2, 5, 1); - Shape27.setRotationPoint(13F, -5F, 1.5F); - Shape27.setTextureSize(128, 64); - Shape27.mirror = true; - setRotation(Shape27, 0F, 0F, 0F); - Shape28 = new ModelRenderer(this, 84, 6); - Shape28.addBox(0F, 0F, 0F, 1, 3, 1); - Shape28.setRotationPoint(16F, -3F, 1.5F); - Shape28.setTextureSize(128, 64); - Shape28.mirror = true; - setRotation(Shape28, 0F, 0F, 0F); - Shape29 = new ModelRenderer(this, 6, 15); - Shape29.addBox(0F, 0F, 0F, 10, 2, 2); - Shape29.setRotationPoint(3F, -2F, 1F); - Shape29.setTextureSize(128, 64); - Shape29.mirror = true; - setRotation(Shape29, 0F, 0F, 0F); - Shape30 = new ModelRenderer(this, 30, 15); - Shape30.addBox(0F, 0F, 0F, 12, 2, 2); - Shape30.setRotationPoint(-7F, -1F, 4F); - Shape30.setTextureSize(128, 64); - Shape30.mirror = true; - setRotation(Shape30, 0F, 0F, 0F); - Shape31 = new ModelRenderer(this, 44, 19); - Shape31.addBox(0F, 0F, 0F, 14, 1, 1); - Shape31.setRotationPoint(5F, -0.5F, 4.5F); - Shape31.setTextureSize(128, 64); - Shape31.mirror = true; - setRotation(Shape31, 0F, 0F, 0F); - Shape32 = new ModelRenderer(this, 12, 27); - Shape32.addBox(0F, 0F, 0F, 1, 1, 1); - Shape32.setRotationPoint(18F, -0.5F, 3.5F); - Shape32.setTextureSize(128, 64); - Shape32.mirror = true; - setRotation(Shape32, 0F, 0F, 0F); - Shape33 = new ModelRenderer(this, 24, 29); - Shape33.addBox(0F, 0F, 0F, 21, 1, 2); - Shape33.setRotationPoint(-18F, -1F, 1F); - Shape33.setTextureSize(128, 64); - Shape33.mirror = true; - setRotation(Shape33, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 0, 33); - Shape19.addBox(0F, 0F, 0F, 10, 4, 2); - Shape19.setRotationPoint(-9F, -5F, 1F); - Shape19.setTextureSize(128, 64); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, 0F); - Shape20 = new ModelRenderer(this, 0, 39); - Shape20.addBox(0F, 0F, 0F, 10, 2, 4); - Shape20.setRotationPoint(-9F, -4F, 0F); - Shape20.setTextureSize(128, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 0, 45); - Shape21.addBox(0F, 0F, 0F, 10, 3, 3); - Shape21.setRotationPoint(-9F, -4.5F, 0.5F); - Shape21.setTextureSize(128, 64); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 0, 51); - Shape22.addBox(0F, 0F, 0F, 4, 1, 1); - Shape22.setRotationPoint(-6F, -6F, 1F); - Shape22.setTextureSize(128, 64); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape2.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape6.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape7.render(f5); - Shape8.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape9.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape27.render(f5); - Shape28.render(f5); - Shape29.render(f5); - Shape30.render(f5); - Shape31.render(f5); - Shape32.render(f5); - Shape33.render(f5); - - int ammo = ItemGunBase.getMag(item); - if(ammo > 0) { - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape22.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMP.java b/src/main/java/com/hbm/render/model/ModelMP.java deleted file mode 100644 index b9c8c4ebf..000000000 --- a/src/main/java/com/hbm/render/model/ModelMP.java +++ /dev/null @@ -1,234 +0,0 @@ -// Date: 29.08.2016 12:31:19 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMP extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - ModelRenderer Shape24; - ModelRenderer Shape25; - - public ModelMP() { - textureWidth = 128; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 3, 6, 1); - Shape1.setRotationPoint(-25F, -3F, -2F); - Shape1.setTextureSize(128, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 8, 0); - Shape2.addBox(0F, 0F, 0F, 3, 6, 1); - Shape2.setRotationPoint(-25F, -3F, 2F); - Shape2.setTextureSize(128, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 8); - Shape3.addBox(0F, 0F, 0F, 2, 3, 3); - Shape3.setRotationPoint(-24F, 0F, -1F); - Shape3.setTextureSize(128, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 14); - Shape4.addBox(0F, 0F, 0F, 20, 3, 1); - Shape4.setRotationPoint(-22F, -3F, -2F); - Shape4.setTextureSize(128, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 18); - Shape5.addBox(0F, 0F, 0F, 20, 3, 1); - Shape5.setRotationPoint(-22F, -3F, 2F); - Shape5.setTextureSize(128, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 22); - Shape6.addBox(0F, 0F, 0F, 24, 1, 3); - Shape6.setRotationPoint(-24F, -1F, -1F); - Shape6.setTextureSize(128, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 26); - Shape7.addBox(0F, 0F, 0F, 26, 4, 5); - Shape7.setRotationPoint(-25F, 3F, -2F); - Shape7.setTextureSize(128, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 16, 0); - Shape8.addBox(0F, 0F, 0F, 3, 6, 1); - Shape8.setRotationPoint(-2F, -3F, -2F); - Shape8.setTextureSize(128, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 24, 0); - Shape9.addBox(0F, 0F, 0F, 3, 6, 1); - Shape9.setRotationPoint(-2F, -3F, 2F); - Shape9.setTextureSize(128, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 90, 22); - Shape10.addBox(0F, 0F, 0F, 11, 3, 3); - Shape10.setRotationPoint(-2F, 0F, -1F); - Shape10.setTextureSize(128, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 19, 38); - Shape11.addBox(0F, 0F, 0F, 26, 1, 4); - Shape11.setRotationPoint(-25F, 7F, -1.5F); - Shape11.setTextureSize(128, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 78, 35); - Shape12.addBox(0F, 0F, 0F, 20, 5, 5); - Shape12.setRotationPoint(-25F, 8F, -2F); - Shape12.setTextureSize(128, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 54, 45); - Shape13.addBox(0F, 0F, 0F, 32, 2, 5); - Shape13.setRotationPoint(-5F, 8F, -2F); - Shape13.setTextureSize(128, 64); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 108, 28); - Shape14.addBox(0F, -6F, 0F, 8, 6, 1); - Shape14.setRotationPoint(1F, 8F, -2F); - Shape14.setTextureSize(128, 64); - Shape14.mirror = true; - setRotation(Shape14, -0.0872665F, 0F, 0F); - Shape15 = new ModelRenderer(this, 84, 52); - Shape15.addBox(0F, 0F, 0F, 18, 9, 3); - Shape15.setRotationPoint(9F, -1F, -1F); - Shape15.setTextureSize(128, 64); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 0, 43); - Shape16.addBox(0F, -9F, 0F, 18, 9, 1); - Shape16.setRotationPoint(9F, 8F, -2F); - Shape16.setTextureSize(128, 64); - Shape16.mirror = true; - setRotation(Shape16, -0.0872665F, 0F, 0F); - Shape17 = new ModelRenderer(this, 90, 28); - Shape17.addBox(0F, -6F, -1F, 8, 6, 1); - Shape17.setRotationPoint(1F, 8F, 3F); - Shape17.setTextureSize(128, 64); - Shape17.mirror = true; - setRotation(Shape17, 0.0872665F, 0F, 0F); - Shape18 = new ModelRenderer(this, 46, 54); - Shape18.addBox(0F, -9F, -1F, 18, 9, 1); - Shape18.setRotationPoint(9F, 8F, 3F); - Shape18.setTextureSize(128, 64); - Shape18.mirror = true; - setRotation(Shape18, 0.0872665F, 0F, 0F); - Shape19 = new ModelRenderer(this, 0, 35); - Shape19.addBox(0F, -3F, 0F, 4, 3, 5); - Shape19.setRotationPoint(-5F, 13F, -2F); - Shape19.setTextureSize(128, 64); - Shape19.mirror = true; - setRotation(Shape19, 0F, 0F, -0.8726646F); - Shape20 = new ModelRenderer(this, 0, 53); - Shape20.addBox(0F, 0F, 0F, 18, 6, 5); - Shape20.setRotationPoint(9F, 10F, -2F); - Shape20.setTextureSize(128, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 42, 16); - Shape21.addBox(0F, 0F, 0F, 3, 5, 1); - Shape21.setRotationPoint(1F, 10F, 0F); - Shape21.setTextureSize(128, 64); - Shape21.mirror = true; - setRotation(Shape21, 0F, 0F, 0F); - Shape22 = new ModelRenderer(this, 62, 27); - Shape22.addBox(0F, 0F, 0F, 11, 1, 3); - Shape22.setRotationPoint(-2F, 15F, -1F); - Shape22.setTextureSize(128, 64); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 62, 31); - Shape23.addBox(-6F, -1F, 0F, 6, 1, 3); - Shape23.setRotationPoint(-2F, 16F, -1F); - Shape23.setTextureSize(128, 64); - Shape23.mirror = true; - setRotation(Shape23, 0F, 0F, 0.5235988F); - Shape24 = new ModelRenderer(this, 20, 10); - Shape24.addBox(0F, 0F, 0F, 2, 1, 3); - Shape24.setRotationPoint(-21F, -2F, -1F); - Shape24.setTextureSize(128, 64); - Shape24.mirror = true; - setRotation(Shape24, 0F, 0F, 0F); - Shape25 = new ModelRenderer(this, 10, 10); - Shape25.addBox(0F, 0F, 0F, 2, 1, 3); - Shape25.setRotationPoint(-5F, -2F, -1F); - Shape25.setTextureSize(128, 64); - Shape25.mirror = true; - setRotation(Shape25, 0F, 0F, 0F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - Shape24.render(f5); - Shape25.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMP40.java b/src/main/java/com/hbm/render/model/ModelMP40.java deleted file mode 100644 index ccd31ff80..000000000 --- a/src/main/java/com/hbm/render/model/ModelMP40.java +++ /dev/null @@ -1,165 +0,0 @@ -// Date: 03.11.2016 19:00:33 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMP40 extends ModelBase { - // fields - ModelRenderer Body; - ModelRenderer Barrel; - ModelRenderer Scope; - ModelRenderer ClipPivot; - ModelRenderer ClipPivotBack; - ModelRenderer Clip; - ModelRenderer BarrelBottom; - ModelRenderer BodyStock; - ModelRenderer BodyStockBottom; - ModelRenderer BodyBack; - ModelRenderer Handle; - ModelRenderer TriggerFrame; - ModelRenderer Trigger; - ModelRenderer Bar; - ModelRenderer BarFront; - - public ModelMP40() { - textureWidth = 128; - textureHeight = 64; - - Body = new ModelRenderer(this, 0, 0); - Body.addBox(0F, 0F, 0F, 40, 4, 4); - Body.setRotationPoint(-10F, 0F, -2F); - Body.setTextureSize(128, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Barrel = new ModelRenderer(this, 88, 0); - Barrel.addBox(0F, 0F, 0F, 17, 2, 2); - Barrel.setRotationPoint(-27F, 1F, -1F); - Barrel.setTextureSize(128, 64); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - Scope = new ModelRenderer(this, 88, 4); - Scope.addBox(0F, 0F, 0F, 2, 3, 2); - Scope.setRotationPoint(-25F, -2F, -1F); - Scope.setTextureSize(128, 64); - Scope.mirror = true; - setRotation(Scope, 0F, 0F, 0F); - ClipPivot = new ModelRenderer(this, 0, 17); - ClipPivot.addBox(0F, 0F, 0F, 4, 5, 3); - ClipPivot.setRotationPoint(-3F, 4F, -1.5F); - ClipPivot.setTextureSize(128, 64); - ClipPivot.mirror = true; - setRotation(ClipPivot, 0F, 0F, 0F); - ClipPivotBack = new ModelRenderer(this, 14, 17); - ClipPivotBack.addBox(0F, 0F, 0F, 3, 3, 3); - ClipPivotBack.setRotationPoint(1F, 4F, -1.5F); - ClipPivotBack.setTextureSize(128, 64); - ClipPivotBack.mirror = true; - setRotation(ClipPivotBack, 0F, 0F, 0F); - Clip = new ModelRenderer(this, 0, 25); - Clip.addBox(0F, 0F, 0F, 3, 18, 2); - Clip.setRotationPoint(-2.5F, 9F, -1F); - Clip.setTextureSize(128, 64); - Clip.mirror = true; - setRotation(Clip, 0F, 0F, 0F); - BarrelBottom = new ModelRenderer(this, 96, 4); - BarrelBottom.addBox(0F, 0F, 0F, 14, 1, 1); - BarrelBottom.setRotationPoint(-24F, 2.5F, -0.5F); - BarrelBottom.setTextureSize(128, 64); - BarrelBottom.mirror = true; - setRotation(BarrelBottom, 0F, 0F, 0F); - BodyStock = new ModelRenderer(this, 0, 8); - BodyStock.addBox(0F, 0F, 0F, 26, 4, 5); - BodyStock.setRotationPoint(4F, 3F, -2.5F); - BodyStock.setTextureSize(128, 64); - BodyStock.mirror = true; - setRotation(BodyStock, 0F, 0F, 0F); - BodyStockBottom = new ModelRenderer(this, 62, 11); - BodyStockBottom.addBox(0F, 0F, 0F, 26, 3, 3); - BodyStockBottom.setRotationPoint(4F, 7F, -1.5F); - BodyStockBottom.setTextureSize(128, 64); - BodyStockBottom.mirror = true; - setRotation(BodyStockBottom, 0F, 0F, 0F); - BodyBack = new ModelRenderer(this, 10, 25); - BodyBack.addBox(0F, 0F, 0F, 7, 7, 3); - BodyBack.setRotationPoint(30F, 0F, -1.5F); - BodyBack.setTextureSize(128, 64); - BodyBack.mirror = true; - setRotation(BodyBack, 0F, 0F, 0.7853982F); - Handle = new ModelRenderer(this, 30, 17); - Handle.addBox(0F, 0F, 0F, 4, 10, 3); - Handle.setRotationPoint(27F, 10F, -1.5F); - Handle.setTextureSize(128, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.4363323F); - TriggerFrame = new ModelRenderer(this, 44, 17); - TriggerFrame.addBox(0F, 0F, 0F, 6, 4, 2); - TriggerFrame.setRotationPoint(23F, 10F, -1F); - TriggerFrame.setTextureSize(128, 64); - TriggerFrame.mirror = true; - setRotation(TriggerFrame, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 26, 17); - Trigger.addBox(-1F, 0F, 0F, 1, 3, 1); - Trigger.setRotationPoint(27F, 10F, -0.5F); - Trigger.setTextureSize(128, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.4363323F); - Bar = new ModelRenderer(this, 60, 17); - Bar.addBox(0F, 0F, 0F, 23, 1, 1); - Bar.setRotationPoint(7F, 7.5F, -3F); - Bar.setTextureSize(128, 64); - Bar.mirror = true; - setRotation(Bar, 0F, 0F, 0F); - BarFront = new ModelRenderer(this, 0, 45); - BarFront.addBox(-2.5F, -0.5F, 0F, 5, 1, 1); - BarFront.setRotationPoint(7F, 8F, -3F); - BarFront.setTextureSize(128, 64); - BarFront.mirror = true; - setRotation(BarFront, 0F, 0F, 0.7853982F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Body.render(f5); - Barrel.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Scope.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - ClipPivot.render(f5); - ClipPivotBack.render(f5); - Clip.render(f5); - BarrelBottom.render(f5); - BodyStock.render(f5); - BodyStockBottom.render(f5); - BodyBack.render(f5); - Handle.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - TriggerFrame.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Trigger.render(f5); - Bar.render(f5); - BarFront.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelMiniNuke.java b/src/main/java/com/hbm/render/model/ModelMiniNuke.java deleted file mode 100644 index 04deee6a8..000000000 --- a/src/main/java/com/hbm/render/model/ModelMiniNuke.java +++ /dev/null @@ -1,125 +0,0 @@ -// Date: 26.01.2016 16:09:23 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMiniNuke extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - - public ModelMiniNuke() - { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 5, 4, 2); - Shape1.setRotationPoint(-2F, -2F, -1F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 5, 2, 4); - Shape2.setRotationPoint(-2F, -1F, -2F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 58, 0); - Shape3.addBox(0F, 0F, 0F, 1, 2, 2); - Shape3.setRotationPoint(-3F, -1F, -1F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 52, 0); - Shape4.addBox(0F, 0F, 0F, 1, 2, 2); - Shape4.setRotationPoint(3F, -1F, -1F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 46, 0); - Shape5.addBox(0F, 0F, 0F, 2, 2, 1); - Shape5.setRotationPoint(4F, -1F, -2F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 40, 0); - Shape6.addBox(0F, 0F, 0F, 2, 2, 1); - Shape6.setRotationPoint(4F, -1F, 1F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 24, 0); - Shape7.addBox(0F, 0F, 0F, 2, 1, 2); - Shape7.setRotationPoint(4F, -2F, -1F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 32, 0); - Shape8.addBox(0F, 0F, 0F, 2, 1, 2); - Shape8.setRotationPoint(4F, 1F, -1F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - } - - public void renderAll(float f5) - { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelNightmare.java b/src/main/java/com/hbm/render/model/ModelNightmare.java deleted file mode 100644 index 750e64b28..000000000 --- a/src/main/java/com/hbm/render/model/ModelNightmare.java +++ /dev/null @@ -1,198 +0,0 @@ -// Date: 08.12.2016 20:24:28 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelNightmare extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Bullet1; - ModelRenderer Bullet2; - ModelRenderer Bullet3; - ModelRenderer Bullet4; - ModelRenderer Bullet5; - ModelRenderer Bullet6; - - public ModelNightmare() { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 3, 8, 2); - Shape1.setRotationPoint(0F, 0F, 0F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, -0.3490659F); - Shape2 = new ModelRenderer(this, 42, 0); - Shape2.addBox(0F, 0F, 0F, 9, 6, 2); - Shape2.setRotationPoint(-8F, -5F, 0F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 14); - Shape3.addBox(0F, 0F, 0F, 4, 2, 1); - Shape3.setRotationPoint(-0.03333334F, -3F, 0.5F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0.715585F); - Shape4 = new ModelRenderer(this, 22, 0); - Shape4.addBox(0F, 0F, 0F, 6, 4, 3); - Shape4.setRotationPoint(-7F, -4F, 0F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 0); - Shape5.addBox(0F, 0F, 0F, 1, 1, 1); - Shape5.setRotationPoint(0F, 0F, 0F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 34, 8); - Shape6.addBox(0F, 0F, 0F, 13, 2, 2); - Shape6.setRotationPoint(-21F, -4F, 0F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 17); - Shape7.addBox(0F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(2F, -3F, 0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.715585F); - Shape8 = new ModelRenderer(this, 4, 17); - Shape8.addBox(0F, 0F, 0F, 2, 1, 1); - Shape8.setRotationPoint(2F, -4F, 0.5F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0.715585F); - Shape9 = new ModelRenderer(this, 0, 20); - Shape9.addBox(0F, 0F, 0F, 6, 1, 1); - Shape9.setRotationPoint(-14F, -2F, 0.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 26, 8); - Shape10.addBox(0F, 0F, 0F, 2, 2, 2); - Shape10.setRotationPoint(-19F, -5F, 0F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0.6108652F); - Shape11 = new ModelRenderer(this, 0, 10); - Shape11.addBox(0F, 0F, 0F, 4, 3, 1); - Shape11.setRotationPoint(-2F, 1F, 0.5F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 10, 0); - Shape12.addBox(0F, 0F, 0F, 1, 3, 1); - Shape12.setRotationPoint(0F, 0F, 0.5F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0.5235988F); - Bullet1 = new ModelRenderer(this, 6, 22); - Bullet1.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet1.setRotationPoint(-7.5F, -4F, -1F); - Bullet1.setTextureSize(64, 32); - Bullet1.mirror = true; - setRotation(Bullet1, 0F, 0F, 0F); - Bullet2 = new ModelRenderer(this, 0, 22); - Bullet2.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet2.setRotationPoint(-6.5F, -4F, -1F); - Bullet2.setTextureSize(64, 32); - Bullet2.mirror = true; - setRotation(Bullet2, 0F, 0F, 0F); - Bullet3 = new ModelRenderer(this, 6, 22); - Bullet3.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet3.setRotationPoint(-4.5F, -4F, -1F); - Bullet3.setTextureSize(64, 32); - Bullet3.mirror = true; - setRotation(Bullet3, 0F, 0F, 0F); - Bullet4 = new ModelRenderer(this, 0, 22); - Bullet4.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet4.setRotationPoint(-3.5F, -4F, -1F); - Bullet4.setTextureSize(64, 32); - Bullet4.mirror = true; - setRotation(Bullet4, 0F, 0F, 0F); - Bullet5 = new ModelRenderer(this, 6, 22); - Bullet5.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet5.setRotationPoint(-1.5F, -4F, -1F); - Bullet5.setTextureSize(64, 32); - Bullet5.mirror = true; - setRotation(Bullet5, 0F, 0F, 0F); - Bullet6 = new ModelRenderer(this, 0, 22); - Bullet6.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet6.setRotationPoint(-0.5F, -4F, -1F); - Bullet6.setTextureSize(64, 32); - Bullet6.mirror = true; - setRotation(Bullet6, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - - int ammo = ItemGunBase.getMag(item); - - if(ammo > 0) - Bullet1.render(f5); - if(ammo > 1) - Bullet2.render(f5); - if(ammo > 2) - Bullet3.render(f5); - if(ammo > 3) - Bullet4.render(f5); - if(ammo > 4) - Bullet5.render(f5); - if(ammo > 5) - Bullet6.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelNightmare2.java b/src/main/java/com/hbm/render/model/ModelNightmare2.java deleted file mode 100644 index 143dfe549..000000000 --- a/src/main/java/com/hbm/render/model/ModelNightmare2.java +++ /dev/null @@ -1,265 +0,0 @@ -// Date: 08.12.2016 20:42:59 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelNightmare2 extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Bullet1; - ModelRenderer Bullet2; - ModelRenderer Bullet3; - ModelRenderer Bullet4; - ModelRenderer Bullet5; - ModelRenderer Bullet6; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - - public ModelNightmare2() { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 3, 8, 2); - Shape1.setRotationPoint(0F, 0F, 0F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, -0.3490659F); - Shape2 = new ModelRenderer(this, 42, 0); - Shape2.addBox(0F, 0F, 0F, 9, 6, 2); - Shape2.setRotationPoint(-8F, -5F, 0F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 14); - Shape3.addBox(0F, 0F, 0F, 4, 2, 1); - Shape3.setRotationPoint(-0.03333334F, -3F, 0.5F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0.715585F); - Shape4 = new ModelRenderer(this, 22, 0); - Shape4.addBox(0F, 0F, 0F, 6, 4, 3); - Shape4.setRotationPoint(-7F, -4F, 0F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 34, 8); - Shape6.addBox(0F, 0F, 0F, 13, 2, 2); - Shape6.setRotationPoint(-21F, -4F, 0F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 17); - Shape7.addBox(0F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(2F, -3F, 0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.715585F); - Shape8 = new ModelRenderer(this, 4, 17); - Shape8.addBox(0F, 0F, 0F, 2, 1, 1); - Shape8.setRotationPoint(2F, -4F, 0.5F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0.715585F); - Shape9 = new ModelRenderer(this, 0, 20); - Shape9.addBox(0F, 0F, 0F, 6, 1, 1); - Shape9.setRotationPoint(-14F, -2F, 0.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 26, 8); - Shape10.addBox(0F, 0F, 0F, 2, 2, 2); - Shape10.setRotationPoint(-19F, -5F, 0F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0.6108652F); - Shape11 = new ModelRenderer(this, 0, 10); - Shape11.addBox(0F, 0F, 0F, 4, 3, 1); - Shape11.setRotationPoint(-2F, 1F, 0.5F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 10, 0); - Shape12.addBox(0F, 0F, 0F, 1, 3, 1); - Shape12.setRotationPoint(0F, 0F, 0.5F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0.5235988F); - Bullet1 = new ModelRenderer(this, 6, 22); - Bullet1.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet1.setRotationPoint(-7.5F, -4F, -1F); - Bullet1.setTextureSize(64, 32); - Bullet1.mirror = true; - setRotation(Bullet1, 0F, 0F, 0F); - Bullet2 = new ModelRenderer(this, 0, 22); - Bullet2.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet2.setRotationPoint(-6.5F, -4F, -1F); - Bullet2.setTextureSize(64, 32); - Bullet2.mirror = true; - setRotation(Bullet2, 0F, 0F, 0F); - Bullet3 = new ModelRenderer(this, 6, 22); - Bullet3.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet3.setRotationPoint(-4.5F, -4F, -1F); - Bullet3.setTextureSize(64, 32); - Bullet3.mirror = true; - setRotation(Bullet3, 0F, 0F, 0F); - Bullet4 = new ModelRenderer(this, 0, 22); - Bullet4.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet4.setRotationPoint(-3.5F, -4F, -1F); - Bullet4.setTextureSize(64, 32); - Bullet4.mirror = true; - setRotation(Bullet4, 0F, 0F, 0F); - Bullet5 = new ModelRenderer(this, 6, 22); - Bullet5.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet5.setRotationPoint(-1.5F, -4F, -1F); - Bullet5.setTextureSize(64, 32); - Bullet5.mirror = true; - setRotation(Bullet5, 0F, 0F, 0F); - Bullet6 = new ModelRenderer(this, 0, 22); - Bullet6.addBox(0F, 0F, 0F, 1, 2, 1); - Bullet6.setRotationPoint(-0.5F, -4F, -1F); - Bullet6.setTextureSize(64, 32); - Bullet6.mirror = true; - setRotation(Bullet6, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 14, 0); - Shape13.addBox(0F, 0F, 0F, 1, 1, 2); - Shape13.setRotationPoint(-13F, -3.5F, -2F); - Shape13.setTextureSize(64, 32); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 34, 12); - Shape14.addBox(0F, 0F, 0F, 6, 1, 1); - Shape14.setRotationPoint(-19F, -3.5F, -1.533333F); - Shape14.setTextureSize(64, 32); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 10, 4); - Shape15.addBox(0F, 0F, 0F, 1, 5, 1); - Shape15.setRotationPoint(-4F, -5F, 3F); - Shape15.setTextureSize(64, 32); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 10, 10); - Shape16.addBox(-1F, -4F, 0F, 1, 4, 1); - Shape16.setRotationPoint(-3F, -5F, 3F); - Shape16.setTextureSize(64, 32); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, -0.5235988F); - Shape17 = new ModelRenderer(this, 14, 8); - Shape17.addBox(0F, 0F, 0F, 5, 1, 1); - Shape17.setRotationPoint(-10F, -8.5F, 3F); - Shape17.setTextureSize(64, 32); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, 0F); - Shape18 = new ModelRenderer(this, 14, 12); - Shape18.addBox(-9F, 0F, 0F, 9, 1, 1); - Shape18.setRotationPoint(-10F, -8.5F, 3F); - Shape18.setTextureSize(64, 32); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, -0.6108652F); - Shape19 = new ModelRenderer(this, 14, 10); - Shape19.addBox(-5F, 0F, -1F, 5, 1, 1); - Shape19.setRotationPoint(-16F, -3.5F, 4F); - Shape19.setTextureSize(64, 32); - Shape19.mirror = true; - setRotation(Shape19, 0F, -0.4461433F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - - int ammo = ItemGunBase.getMag(item); - - if(ammo > 0) - Bullet1.render(f5); - if(ammo > 1) - Bullet2.render(f5); - if(ammo > 2) - Bullet3.render(f5); - if(ammo > 3) - Bullet4.render(f5); - if(ammo > 4) - Bullet5.render(f5); - if(ammo > 5) - Bullet6.render(f5); - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - Tessellator tessellator = Tessellator.instance; - int color = 0xFF0000; - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-19F / 16F, -3F / 16F, -1F / 16F); - tessellator.addVertex(-150, 0, 0); - tessellator.draw(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelOSIPR.java b/src/main/java/com/hbm/render/model/ModelOSIPR.java deleted file mode 100644 index f63c32e50..000000000 --- a/src/main/java/com/hbm/render/model/ModelOSIPR.java +++ /dev/null @@ -1,249 +0,0 @@ -// Date: 29.08.2016 09:41:02 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelOSIPR extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - ModelRenderer Shape19; - ModelRenderer Shape20; - ModelRenderer Shape21; - ModelRenderer Shape22; - ModelRenderer Shape23; - - public ModelOSIPR() { - textureWidth = 64; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 8, 3, 3); - Shape1.setRotationPoint(0F, 0F, -0.5F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 6); - Shape2.addBox(0F, 0F, 0F, 11, 2, 2); - Shape2.setRotationPoint(8F, 0F, 0F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 2, 3, 2); - Shape3.setRotationPoint(17F, 2F, 0F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 15); - Shape4.addBox(-5F, -3F, 0F, 5, 3, 2); - Shape4.setRotationPoint(17F, 5F, 0F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0.4363323F); - Shape5 = new ModelRenderer(this, 8, 10); - Shape5.addBox(-8F, -1F, 0F, 3, 1, 2); - Shape5.setRotationPoint(17F, 5F, 0F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0.4363323F); - Shape6 = new ModelRenderer(this, 30, 0); - Shape6.addBox(0F, 0F, 0F, 10, 2, 2); - Shape6.setRotationPoint(-10F, 0.5F, 0F); - Shape6.setTextureSize(64, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 54, 0); - Shape7.addBox(0F, 0F, 0F, 3, 2, 1); - Shape7.setRotationPoint(-13F, 0.5F, 0.5F); - Shape7.setTextureSize(64, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 30, 4); - Shape8.addBox(0F, 0F, 0F, 10, 3, 3); - Shape8.setRotationPoint(-16F, 2F, -0.5F); - Shape8.setTextureSize(64, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 30, 10); - Shape9.addBox(0F, 0F, 0F, 3, 1, 3); - Shape9.setRotationPoint(-19F, 4F, -0.5F); - Shape9.setTextureSize(64, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - Shape10 = new ModelRenderer(this, 42, 10); - Shape10.addBox(0F, 0F, 0F, 3, 1, 3); - Shape10.setRotationPoint(-19F, 2F, -0.5F); - Shape10.setTextureSize(64, 64); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 0, 20); - Shape11.addBox(0F, 0F, 0F, 1, 1, 2); - Shape11.setRotationPoint(8F, -1F, 0F); - Shape11.setTextureSize(64, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 30, 14); - Shape12.addBox(0F, 0F, 0F, 7, 3, 2); - Shape12.setRotationPoint(0F, 3F, 0F); - Shape12.setTextureSize(64, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 30, 19); - Shape13.addBox(0F, -2F, 0F, 5, 2, 2); - Shape13.setRotationPoint(7F, 6F, 0F); - Shape13.setTextureSize(64, 64); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, -0.9599311F); - Shape14 = new ModelRenderer(this, 30, 23); - Shape14.addBox(0F, 0F, 0F, 2, 5, 1); - Shape14.setRotationPoint(5F, 6F, 0.5F); - Shape14.setTextureSize(64, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, -0.3490659F); - Shape15 = new ModelRenderer(this, 0, 23); - Shape15.addBox(0F, 0F, 0F, 7, 2, 1); - Shape15.setRotationPoint(-6F, 5F, 0.5F); - Shape15.setTextureSize(64, 64); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 0, 26); - Shape16.addBox(0F, 0F, 0F, 8, 1, 2); - Shape16.setRotationPoint(-6F, 7F, 0F); - Shape16.setTextureSize(64, 64); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 0, 29); - Shape17.addBox(0F, 0F, 0F, 3, 6, 6); - Shape17.setRotationPoint(-9F, 9F, -3F); - Shape17.setTextureSize(64, 64); - Shape17.mirror = true; - setRotation(Shape17, 0.6108652F, 0F, 0F); - Shape18 = new ModelRenderer(this, 0, 41); - Shape18.addBox(0F, 0F, 0F, 3, 6, 7); - Shape18.setRotationPoint(-9F, 8F, -4F); - Shape18.setTextureSize(64, 64); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - Shape19 = new ModelRenderer(this, 30, 29); - Shape19.addBox(0F, 1F, 6F, 2, 4, 3); - Shape19.setRotationPoint(-8.5F, 9F, -3F); - Shape19.setTextureSize(64, 64); - Shape19.mirror = true; - setRotation(Shape19, 0.6108652F, 0F, 0F); - Shape20 = new ModelRenderer(this, 30, 36); - Shape20.addBox(0F, 0F, 0F, 1, 6, 3); - Shape20.setRotationPoint(-8F, 1F, 3F); - Shape20.setTextureSize(64, 64); - Shape20.mirror = true; - setRotation(Shape20, 0F, 0F, 0F); - Shape21 = new ModelRenderer(this, 30, 45); - Shape21.addBox(0F, -3F, 0F, 1, 5, 4); - Shape21.setRotationPoint(-8F, 2F, 3F); - Shape21.setTextureSize(64, 64); - Shape21.mirror = true; - setRotation(Shape21, 0.9599311F, 0F, 0F); - Shape22 = new ModelRenderer(this, 0, 54); - Shape22.addBox(0F, 0F, 0F, 2, 2, 2); - Shape22.setRotationPoint(-11F, 7F, 0F); - Shape22.setTextureSize(64, 64); - Shape22.mirror = true; - setRotation(Shape22, 0F, 0F, 0F); - Shape23 = new ModelRenderer(this, 0, 58); - Shape23.addBox(-7F, -2F, 0F, 7, 2, 2); - Shape23.setRotationPoint(-11F, 9F, 0F); - Shape23.setTextureSize(64, 64); - Shape23.mirror = true; - setRotation(Shape23, 0F, 0F, 0.148353F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - } - - public void renderAll(float f5) { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - Shape16.render(f5); - Shape17.render(f5); - Shape18.render(f5); - Shape19.render(f5); - Shape20.render(f5); - Shape21.render(f5); - Shape22.render(f5); - Shape23.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelOxygenMask.java b/src/main/java/com/hbm/render/model/ModelOxygenMask.java deleted file mode 100644 index 893bf5bda..000000000 --- a/src/main/java/com/hbm/render/model/ModelOxygenMask.java +++ /dev/null @@ -1,114 +0,0 @@ - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; - -public class ModelOxygenMask extends ModelBiped { - // fields - ModelRenderer mask; - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - - public ModelOxygenMask() { - textureWidth = 64; - textureHeight = 32; - - mask = new ModelRenderer(this, 0, 0); - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 8, 8, 3); - Shape1.setRotationPoint(0F - 4, 0F - 8 + 0.075F / 2, 0F - 4); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - convertToChild(mask, Shape1); - Shape2 = new ModelRenderer(this, 22, 0); - Shape2.addBox(0F, 0F, 0F, 2, 2, 1); - Shape2.setRotationPoint(1F - 4, 3F - 8 + 0.075F / 2, -0.5333334F - 4); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - convertToChild(mask, Shape2); - Shape3 = new ModelRenderer(this, 22, 0); - Shape3.addBox(0F, 0F, 0F, 2, 2, 1); - Shape3.setRotationPoint(5F - 4, 3F - 8 + 0.075F / 2, -0.5F - 4); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - convertToChild(mask, Shape3); - Shape4 = new ModelRenderer(this, 0, 11); - Shape4.addBox(0F, 0F, 0F, 2, 2, 2); - Shape4.setRotationPoint(3F - 4, 5F - 8 + 0.075F / 2, 0F - 4); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, -0.7853982F, 0F, 0F); - convertToChild(mask, Shape4); - Shape5 = new ModelRenderer(this, 0, 15); - Shape5.addBox(0F, 2F, -0.5F, 3, 4, 3); - Shape5.setRotationPoint(2.5F - 4, 5F - 8 + 0.075F / 2, 0F - 4); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, -0.7853982F, 0F, 0F); - convertToChild(mask, Shape5); - Shape6 = new ModelRenderer(this, 0, 22); - Shape6.addBox(0F, 0F, 0F, 8, 1, 5); - Shape6.setRotationPoint(0F - 4, 3F - 8 + 0.075F / 2, 3F - 4); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - - - convertToChild(mask, Shape6); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - EntityPlayer player = (EntityPlayer) entity; - if (player.isSneaking()) { - this.isSneak = true; - } else { - this.isSneak = false; - } - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.mask.rotationPointX = this.bipedHead.rotationPointX; - this.mask.rotationPointY = this.bipedHead.rotationPointY; - this.mask.rotateAngleY = this.bipedHead.rotateAngleY; - this.mask.rotateAngleX = this.bipedHead.rotateAngleX; - } - - @Override - public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { - setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); - GL11.glPushMatrix(); - GL11.glScalef(1.15F, 1.15F, 1.15F); - this.mask.render(par7); - GL11.glPopMatrix(); - } - - protected void convertToChild(ModelRenderer parParent, ModelRenderer parChild) { - // move child rotation point to be relative to parent - parChild.rotationPointX -= parParent.rotationPointX; - parChild.rotationPointY -= parParent.rotationPointY; - parChild.rotationPointZ -= parParent.rotationPointZ; - // make rotations relative to parent - parChild.rotateAngleX -= parParent.rotateAngleX; - parChild.rotateAngleY -= parParent.rotateAngleY; - parChild.rotateAngleZ -= parParent.rotateAngleZ; - // create relationship - parParent.addChild(parChild); - } -} diff --git a/src/main/java/com/hbm/render/model/ModelPanzerschreck.java b/src/main/java/com/hbm/render/model/ModelPanzerschreck.java deleted file mode 100644 index 573b8cbe0..000000000 --- a/src/main/java/com/hbm/render/model/ModelPanzerschreck.java +++ /dev/null @@ -1,187 +0,0 @@ -// Date: 20.02.2019 22:40:59 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelPanzerschreck extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer Shape15; - ModelRenderer Shape16; - ModelRenderer Shape17; - ModelRenderer Shape18; - - public ModelPanzerschreck() { - textureWidth = 128; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 40, 2, 3); - Shape1.setRotationPoint(-20F, 0F, -1.5F); - Shape1.setTextureSize(128, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 5); - Shape2.addBox(0F, 0F, 0F, 40, 3, 2); - Shape2.setRotationPoint(-20F, -0.5F, -1F); - Shape2.setTextureSize(128, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 10); - Shape3.addBox(0F, 0F, 0F, 2, 3, 1); - Shape3.setRotationPoint(-7.5F, 2.5F, -0.5F); - Shape3.setTextureSize(128, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 6, 10); - Shape4.addBox(0F, 0F, 0F, 6, 1, 1); - Shape4.setRotationPoint(-7.5F, 5.5F, -0.5F); - Shape4.setTextureSize(128, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 14); - Shape5.addBox(0F, 0F, 0F, 2, 3, 1); - Shape5.setRotationPoint(-1.5F, 2.5F, -0.5F); - Shape5.setTextureSize(128, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 6, 12); - Shape6.addBox(0F, 0F, 0F, 1, 3, 1); - Shape6.setRotationPoint(0.5F, 2.5F, -0.5F); - Shape6.setTextureSize(128, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 10, 12); - Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); - Shape7.setRotationPoint(-2F, 2.5F, -0.5F); - Shape7.setTextureSize(128, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.3490659F); - Shape8 = new ModelRenderer(this, 0, 18); - Shape8.addBox(0F, 0F, 0F, 1, 4, 4); - Shape8.setRotationPoint(22F, -1F, -2F); - Shape8.setTextureSize(128, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 20, 10); - Shape9.addBox(-3F, 0F, 0F, 3, 1, 1); - Shape9.setRotationPoint(22F, -1F, -0.5F); - Shape9.setTextureSize(128, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, -0.2617994F); - Shape10 = new ModelRenderer(this, 14, 12); - Shape10.addBox(-3F, 0F, 0F, 3, 1, 1); - Shape10.setRotationPoint(22F, 0.5F, -2F); - Shape10.setTextureSize(128, 32); - Shape10.mirror = true; - setRotation(Shape10, 0F, 0.2617994F, 0F); - Shape11 = new ModelRenderer(this, 14, 14); - Shape11.addBox(-3F, 0F, -1F, 3, 1, 1); - Shape11.setRotationPoint(22F, 0.5F, 2F); - Shape11.setTextureSize(128, 32); - Shape11.mirror = true; - setRotation(Shape11, 0F, -0.2617994F, 0F); - Shape12 = new ModelRenderer(this, 28, 10); - Shape12.addBox(-3F, -1F, 0F, 3, 1, 1); - Shape12.setRotationPoint(22F, 3F, -0.5F); - Shape12.setTextureSize(128, 32); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0.2617994F); - Shape13 = new ModelRenderer(this, 22, 12); - Shape13.addBox(0F, 0F, 0F, 1, 1, 3); - Shape13.setRotationPoint(-20F, -1.5F, -1.5F); - Shape13.setTextureSize(128, 32); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 30, 12); - Shape14.addBox(0F, 0F, 0F, 1, 1, 3); - Shape14.setRotationPoint(-20F, -2.5F, -1.5F); - Shape14.setTextureSize(128, 32); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - Shape15 = new ModelRenderer(this, 36, 10); - Shape15.addBox(0F, 0F, 0F, 3, 1, 1); - Shape15.setRotationPoint(15F, -1F, -2F); - Shape15.setTextureSize(128, 32); - Shape15.mirror = true; - setRotation(Shape15, 0F, 0F, 0F); - Shape16 = new ModelRenderer(this, 108, 10); - Shape16.addBox(0F, 0F, 0F, 0, 12, 10); - Shape16.setRotationPoint(-10F, -5F, -8.5F); - Shape16.setTextureSize(128, 32); - Shape16.mirror = true; - setRotation(Shape16, 0F, 0F, 0F); - Shape17 = new ModelRenderer(this, 38, 12); - Shape17.addBox(0F, 0F, 0F, 1, 3, 1); - Shape17.setRotationPoint(3.5F, 2.5F, -0.5F); - Shape17.setTextureSize(128, 32); - Shape17.mirror = true; - setRotation(Shape17, 0F, 0F, -0.4363323F); - Shape18 = new ModelRenderer(this, 10, 15); - Shape18.addBox(0F, 0F, 0F, 1, 3, 1); - Shape18.setRotationPoint(5F, 2.5F, -0.5F); - Shape18.setTextureSize(128, 32); - Shape18.mirror = true; - setRotation(Shape18, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - Shape15.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Shape16.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Shape17.render(f5); - Shape18.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelPigeon.java b/src/main/java/com/hbm/render/model/ModelPigeon.java new file mode 100644 index 000000000..14c4dc3ac --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelPigeon.java @@ -0,0 +1,110 @@ +package com.hbm.render.model; + +import com.hbm.entity.mob.EntityPigeon; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; + +public class ModelPigeon extends ModelBase { + + public ModelRenderer head; + public ModelRenderer beak; + public ModelRenderer body; + public ModelRenderer bodyFat; + public ModelRenderer leftLeg; + public ModelRenderer rightLeg; + public ModelRenderer leftWing; + public ModelRenderer rightWing; + public ModelRenderer ass; + public ModelRenderer feathers; + + public ModelPigeon() { + initModel(); + } + + private void initModel() { + + this.head = new ModelRenderer(this, 0, 0); + this.head.addBox(-2F, -6F, -2F, 4, 6, 4); + this.head.setRotationPoint(0F, 16F, -2F); + this.beak = new ModelRenderer(this, 14, 0); + this.beak.addBox(-1F, -4F, -4F, 2, 2, 2); + this.beak.setRotationPoint(0F, 16F, -2F); + + this.body = new ModelRenderer(this, 0, 10); + this.body.addBox(-3F, -3F, -4F, 6, 6, 8, 0); + this.body.setRotationPoint(0F, 17F, 0F); + this.bodyFat = new ModelRenderer(this, 0, 10); + this.bodyFat.addBox(-3F, -3F, -4F, 6, 6, 8, 1); + this.bodyFat.setRotationPoint(0F, 17F, 0F); + this.ass = new ModelRenderer(this, 0, 24); + this.ass.addBox(-2F, -2F, -2F, 4, 4, 4); + this.ass.setRotationPoint(0F, 20F, 4F); + this.feathers = new ModelRenderer(this, 16, 24); + this.feathers.addBox(-1F, -0.5F, -2F, 2, 1, 4); + this.feathers.setRotationPoint(0F, 21.5F, 7.5F); + + this.leftLeg = new ModelRenderer(this, 20, 0); + this.leftLeg.addBox(-1F, 0F, 0F, 2, 4, 2); + this.leftLeg.setRotationPoint(1F, 20F, -1F); + this.rightLeg = new ModelRenderer(this, 20, 0); + this.rightLeg.addBox(-1F, 0F, 0F, 2, 4, 2); + this.rightLeg.setRotationPoint(-1F, 20F, -1F); + + this.leftWing = new ModelRenderer(this, 28, 0); + this.leftWing.addBox(0F, 0F, -3F, 1, 4, 6); + this.leftWing.setRotationPoint(3F, -2F, 0F); + this.rightWing = new ModelRenderer(this, 28, 10); + this.rightWing.addBox(-1F, 0F, -3F, 1, 4, 6); + this.rightWing.setRotationPoint(-3F, -2F, 0F); + + this.body.addChild(this.leftWing); + this.body.addChild(this.rightWing); + this.bodyFat.addChild(this.leftWing); + this.bodyFat.addChild(this.rightWing); + } + + public void render(Entity entity, float f0, float f1, float f2, float f3, float f4, float scale) { + this.setRotationAngles(f0, f1, f2, f3, f4, scale, entity); + this.head.render(scale); + this.beak.render(scale); + if(((EntityPigeon) entity).isFat()) { + this.bodyFat.render(scale); + } else { + this.body.render(scale); + } + this.rightLeg.render(scale); + this.leftLeg.render(scale); + this.ass.render(scale); + this.feathers.render(scale); + } + + public void setRotationAngles(float walkLoop, float legAmplitude, float armSwing, float headYaw, float headPitch, float scale, Entity entity) { + this.head.rotateAngleX = this.beak.rotateAngleX = headPitch / (180F / (float) Math.PI); + this.head.rotateAngleY = this.beak.rotateAngleY = headYaw / (180F / (float) Math.PI); + this.body.rotateAngleX = this.bodyFat.rotateAngleX = this.ass.rotateAngleX = -((float) Math.PI / 4F); + this.feathers.rotateAngleX = -((float) Math.PI / 8F); + this.rightLeg.rotateAngleX = MathHelper.cos(walkLoop * 0.6662F) * 1.4F * legAmplitude; + this.leftLeg.rotateAngleX = MathHelper.cos(walkLoop * 0.6662F + (float) Math.PI) * 1.4F * legAmplitude; + this.rightWing.rotateAngleZ = armSwing; + this.leftWing.rotateAngleZ = -armSwing; + + if(((EntityPigeon) entity).isFat()) { + this.head.rotationPointZ = -4F; + this.beak.rotationPointZ = -4F; + this.ass.rotationPointZ = 5F; + this.feathers.rotationPointZ = 8.5F; + this.leftWing.rotationPointX = 4F; + this.rightWing.rotationPointX = -4F; + } else { + this.head.rotationPointZ = -2F; + this.beak.rotationPointZ = -2F; + this.ass.rotationPointZ = 4F; + this.feathers.rotationPointZ = 7.5F; + this.leftWing.rotationPointX = 3F; + this.rightWing.rotationPointX = -3F; + } + } +} diff --git a/src/main/java/com/hbm/render/model/ModelPip.java b/src/main/java/com/hbm/render/model/ModelPip.java deleted file mode 100755 index 6fe5f40c2..000000000 --- a/src/main/java/com/hbm/render/model/ModelPip.java +++ /dev/null @@ -1,223 +0,0 @@ -//This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0 -// Copyright (C) 2017 Minecraft-SMP.de -// This file is for Flan's Flying Mod Version 4.0.x+ - -// Model: Pip -// Model Creator: -// Created on:09.12.2017 - 12:48:52 -// Last changed on: 09.12.2017 - 12:48:52 - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelPip extends ModelBase -{ - - public ModelRenderer pipModel[]; - - int textureX = 128; - int textureY = 128; - - public ModelPip() - { - textureWidth = 128; - textureHeight = 128; - pipModel = new ModelRenderer[39]; - pipModel[0] = new ModelRenderer(this, 1, 1); // Box 0 - pipModel[1] = new ModelRenderer(this, 49, 1); // Box 1 - pipModel[2] = new ModelRenderer(this, 97, 1); // Box 2 - pipModel[3] = new ModelRenderer(this, 1, 9); // Box 3 - pipModel[4] = new ModelRenderer(this, 25, 9); // Box 4 - pipModel[5] = new ModelRenderer(this, 49, 9); // Box 5 - pipModel[6] = new ModelRenderer(this, 73, 9); // Box 6 - pipModel[7] = new ModelRenderer(this, 81, 17); // Box 7 - pipModel[8] = new ModelRenderer(this, 97, 17); // Box 10 - pipModel[9] = new ModelRenderer(this, 1, 25); // Box 12 - pipModel[10] = new ModelRenderer(this, 1, 9); // Box 14 - pipModel[11] = new ModelRenderer(this, 17, 25); // Box 15 - pipModel[12] = new ModelRenderer(this, 41, 25); // Box 16 - pipModel[13] = new ModelRenderer(this, 49, 9); // Box 17 - pipModel[14] = new ModelRenderer(this, 113, 17); // Box 18 - pipModel[15] = new ModelRenderer(this, 73, 17); // Box 19 - pipModel[16] = new ModelRenderer(this, 65, 25); // Box 20 - pipModel[17] = new ModelRenderer(this, 113, 25); // Box 22 - pipModel[18] = new ModelRenderer(this, 65, 25); // Box 23 - pipModel[19] = new ModelRenderer(this, 1, 33); // Box 24 - pipModel[20] = new ModelRenderer(this, 81, 33); // Box 25 - pipModel[21] = new ModelRenderer(this, 1, 41); // Box 26 - pipModel[22] = new ModelRenderer(this, 89, 33); // Box 27 - pipModel[23] = new ModelRenderer(this, 105, 33); // Box 28 - pipModel[24] = new ModelRenderer(this, 33, 41); // Box 29 - pipModel[25] = new ModelRenderer(this, 49, 41); // Box 30 - pipModel[26] = new ModelRenderer(this, 65, 41); // Box 31 - pipModel[27] = new ModelRenderer(this, 105, 41); // Box 32 - pipModel[28] = new ModelRenderer(this, 1, 49); // Box 33 - pipModel[29] = new ModelRenderer(this, 17, 49); // Box 34 - pipModel[30] = new ModelRenderer(this, 33, 49); // Box 35 - pipModel[31] = new ModelRenderer(this, 57, 49); // Box 36 - pipModel[32] = new ModelRenderer(this, 81, 49); // Box 37 - pipModel[33] = new ModelRenderer(this, 105, 49); // Box 38 - pipModel[34] = new ModelRenderer(this, 1, 57); // Box 39 - pipModel[35] = new ModelRenderer(this, 89, 25); // Box 40 - pipModel[36] = new ModelRenderer(this, 97, 41); // Box 41 - pipModel[37] = new ModelRenderer(this, 49, 49); // Box 42 - pipModel[38] = new ModelRenderer(this, 73, 57); // Box 43 - - pipModel[0].addBox(0F, 0F, 0F, 20, 3, 2, 0F); // Box 0 - pipModel[0].setRotationPoint(-20F, -5.5F, -1F); - - pipModel[1].addBox(0F, 0F, 0F, 20, 2, 3, 0F); // Box 1 - pipModel[1].setRotationPoint(-20F, -5F, -1.5F); - - pipModel[2].addBox(0F, 0F, 0F, 10, 8, 3, 0F); // Box 2 - pipModel[2].setRotationPoint(0F, -6F, -1.5F); - - pipModel[3].addBox(0F, 0F, 0F, 6, 5, 5, 0F); // Box 3 - pipModel[3].setRotationPoint(2F, -5F, -2.5F); - - pipModel[4].addBox(0F, 0F, 0F, 6, 6, 4, 0F); // Box 4 - pipModel[4].setRotationPoint(2F, -5.5F, -2F); - - pipModel[5].addBox(0F, 0F, 0F, 6, 4, 6, 0F); // Box 5 - pipModel[5].setRotationPoint(2F, -4.5F, -3F); - - pipModel[6].addBox(0F, 0F, 0F, 7, 2, 1, 0F); // Box 6 - pipModel[6].setRotationPoint(-7F, -2.5F, -0.5F); - - pipModel[7].addBox(-6F, 0F, 0F, 6, 3, 1, 0F); // Box 7 - pipModel[7].setRotationPoint(15F, -2.5F, -1.5F); - pipModel[7].rotateAngleZ = 0.61086524F; - - pipModel[8].addBox(0F, 0F, 0F, 5, 5, 3, 0F); // Box 10 - pipModel[8].setRotationPoint(10F, -2.5F, -1.5F); - - pipModel[9].addBox(-6F, 0F, 0F, 6, 3, 1, 0F); // Box 12 - pipModel[9].setRotationPoint(15F, -2.5F, 0.5F); - pipModel[9].rotateAngleZ = 0.61086524F; - - pipModel[10].addBox(-6F, 0F, 0F, 1, 3, 1, 0F); // Box 14 - pipModel[10].setRotationPoint(15F, -2.5F, -0.5F); - pipModel[10].rotateAngleZ = 0.61086524F; - - pipModel[11].addBox(0F, 0F, 0F, 6, 6, 4, 0F); // Box 15 - pipModel[11].setRotationPoint(12F, 4F, -2F); - - pipModel[12].addBox(-5F, -7F, 0F, 5, 7, 4, 0F); // Box 16 - pipModel[12].setRotationPoint(18F, 4F, -2F); - pipModel[12].rotateAngleZ = -0.52359878F; - - pipModel[13].addBox(0F, -2F, 0F, 1, 2, 1, 0F); // Box 17 - pipModel[13].setRotationPoint(12F, -2.5F, -0.5F); - pipModel[13].rotateAngleZ = 0.34906585F; - - pipModel[14].addBox(-0.5F, -3F, 0F, 3, 1, 1, 0F); // Box 18 - pipModel[14].setRotationPoint(12F, -2.5F, -0.5F); - pipModel[14].rotateAngleZ = 0.34906585F; - - pipModel[15].addBox(0F, 0F, 0F, 1, 3, 5, 0F); // Box 19 - pipModel[15].setRotationPoint(8F, -4F, -2.5F); - - pipModel[16].addBox(0F, 0F, 0F, 1, 3, 5, 0F); // Box 20 - pipModel[16].setRotationPoint(1F, -4F, -2.5F); - - pipModel[17].addBox(0F, 0F, 0F, 5, 3, 2, 0F); // Box 22 - pipModel[17].setRotationPoint(5F, 2F, -1F); - - pipModel[18].addBox(-1F, -0.5F, 0F, 1, 3, 1, 0F); // Box 23 - pipModel[18].setRotationPoint(9F, 2F, -0.5F); - pipModel[18].rotateAngleZ = 0.43633231F; - - pipModel[19].addBox(0F, 0F, 0F, 5, 1, 2, 0F); // Box 24 - pipModel[19].setRotationPoint(-19.5F, -6.5F, -1F); - - pipModel[20].addBox(0F, 0F, 0F, 4, 1, 1, 0F); // Box 25 - pipModel[20].setRotationPoint(-19F, -7.5F, -0.5F); - pipModel[20].rotateAngleZ = 0.26179939F; - - pipModel[21].addBox(0F, 0F, 0F, 15, 1, 2, 0F); // Box 26 - pipModel[21].setRotationPoint(-4F, -7F, -1F); - - pipModel[22].addBox(1F, 0F, 0F, 3, 4, 3, 0F); // Box 27 - pipModel[22].setRotationPoint(-3F, -12F, -1.5F); - - pipModel[23].addBox(1F, 0F, 0F, 3, 3, 4, 0F); // Box 28 - pipModel[23].setRotationPoint(-3F, -11.5F, -2F); - - pipModel[24].addBox(0F, 0F, 0F, 3, 3, 4, 0F); // Box 29 - pipModel[24].setRotationPoint(6F, -11.5F, -2F); - - pipModel[25].addBox(0F, 0F, 0F, 3, 4, 3, 0F); // Box 30 - pipModel[25].setRotationPoint(6F, -12F, -1.5F); - - pipModel[26].addBox(0F, 0F, 0F, 13, 3, 3, 0F); // Box 31 - pipModel[26].setRotationPoint(-3F, -11.5F, -1.5F); - - pipModel[27].addBox(0F, 0F, 0F, 3, 4, 3, 0F); // Box 32 - pipModel[27].setRotationPoint(-6F, -12F, -1.5F); - - pipModel[28].addBox(0F, 0F, 0F, 3, 3, 4, 0F); // Box 33 - pipModel[28].setRotationPoint(-6F, -11.5F, -2F); - - pipModel[29].addBox(0F, 0F, 0F, 4, 5, 3, 0F); // Box 34 - pipModel[29].setRotationPoint(-10F, -12.5F, -1.5F); - - pipModel[30].addBox(0F, 0F, 0F, 4, 3, 5, 0F); // Box 35 - pipModel[30].setRotationPoint(-10F, -11.5F, -2.5F); - - pipModel[31].addBox(0F, 0F, 0F, 4, 4, 4, 0F); // Box 36 - pipModel[31].setRotationPoint(-10F, -12F, -2F); - - pipModel[32].addBox(0F, 0F, 0F, 5, 3, 4, 0F); // Box 37 - pipModel[32].setRotationPoint(10F, -11.5F, -2F); - - pipModel[33].addBox(0F, 0F, 0F, 5, 4, 3, 0F); // Box 38 - pipModel[33].setRotationPoint(10F, -12F, -1.5F); - - pipModel[34].addBox(0F, 0F, 0F, 3, 4, 4, 0F); // Box 39 - pipModel[34].setRotationPoint(2F, -12F, -2F); - - pipModel[35].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 40 - pipModel[35].setRotationPoint(-2F, -8F, -0.5F); - - pipModel[36].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 41 - pipModel[36].setRotationPoint(6F, -8F, -0.5F); - - pipModel[37].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 42 - pipModel[37].setRotationPoint(2.5F, -12.5F, -1F); - - pipModel[38].addBox(0F, 0F, 0F, 3, 1, 3, 0F); // Box 43 - pipModel[38].setRotationPoint(2F, -13.5F, -1.5F); - - - for(int i = 0; i < 39; i++) - { - pipModel[i].setTextureSize(textureX, textureY); - pipModel[i].mirror = true; - } - - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - GL11.glDisable(GL11.GL_CULL_FACE); - for(int i = 0; i < 39; i++) - { - pipModel[i].render(f5); - } - GL11.glEnable(GL11.GL_CULL_FACE); - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelPoles.java b/src/main/java/com/hbm/render/model/ModelPoles.java deleted file mode 100644 index 8c18b69ed..000000000 --- a/src/main/java/com/hbm/render/model/ModelPoles.java +++ /dev/null @@ -1,134 +0,0 @@ -// Date: 04.10.2015 20:54:36 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelPoles extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelPoles() - { - textureWidth = 64; - textureHeight = 64; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 2, 16, 2); - Shape1.setRotationPoint(-1F, 8F, 4F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 0); - Shape2.addBox(0F, 0F, 0F, 2, 16, 2); - Shape2.setRotationPoint(4F, 8F, -6F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 0); - Shape3.addBox(0F, 0F, 0F, 2, 16, 2); - Shape3.setRotationPoint(-6F, 8F, -6F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 41); - Shape4.addBox(0F, -1F, 0F, 13, 1, 1); - Shape4.setRotationPoint(-4F, 21F, -5.5F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, -0.7853982F); - Shape5 = new ModelRenderer(this, 0, 41); - Shape5.addBox(0F, 0F, 0F, 13, 1, 1); - Shape5.setRotationPoint(4F, 21F, -5.5F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, -2.356194F); - Shape6 = new ModelRenderer(this, 0, 18); - Shape6.addBox(0F, -1F, 0F, 1, 1, 15); - Shape6.setRotationPoint(-5.533333F, 21F, -4F); - Shape6.setTextureSize(64, 64); - Shape6.mirror = true; - setRotation(Shape6, 0.7853982F, 0.4886922F, 0F); - Shape7 = new ModelRenderer(this, 0, 18); - Shape7.addBox(0F, 0F, 0F, 1, 1, 15); - Shape7.setRotationPoint(-5.5F, 12F, -4F); - Shape7.setTextureSize(64, 64); - Shape7.mirror = true; - setRotation(Shape7, -0.7853982F, 0.4886922F, 0F); - Shape8 = new ModelRenderer(this, 0, 18); - Shape8.addBox(-1F, 0F, 0F, 1, 1, 15); - Shape8.setRotationPoint(5.5F, 12F, -4F); - Shape8.setTextureSize(64, 64); - Shape8.mirror = true; - setRotation(Shape8, -0.7853982F, -0.4886922F, 0F); - Shape9 = new ModelRenderer(this, 0, 18); - Shape9.addBox(-1F, -1F, 0F, 1, 1, 15); - Shape9.setRotationPoint(5.5F, 21F, -4F); - Shape9.setTextureSize(64, 64); - Shape9.mirror = true; - setRotation(Shape9, 0.7853982F, -0.4886922F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void renderModel(float f) - { - Shape1.render(f); - Shape2.render(f); - Shape3.render(f); - Shape4.render(f); - Shape5.render(f); - Shape6.render(f); - Shape7.render(f); - Shape8.render(f); - Shape9.render(f); - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelRPG.java b/src/main/java/com/hbm/render/model/ModelRPG.java deleted file mode 100644 index a09361821..000000000 --- a/src/main/java/com/hbm/render/model/ModelRPG.java +++ /dev/null @@ -1,133 +0,0 @@ -// Date: 20.07.2015 22:06:51 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelRPG extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelRPG() - { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 27); - Shape1.addBox(0F, 0F, 0F, 1, 4, 1); - Shape1.setRotationPoint(0F, -1F, 0F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 24); - Shape2.addBox(0F, 0F, 0F, 1, 2, 1); - Shape2.setRotationPoint(3F, 0F, 0F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 18); - Shape3.addBox(0F, 0F, 0F, 8, 2, 2); - Shape3.setRotationPoint(2F, -2F, -0.5F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 16); - Shape4.addBox(0F, 0F, 0F, 4, 1, 1); - Shape4.setRotationPoint(10F, -1.5F, 0F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 12); - Shape5.addBox(0F, 0F, 0F, 3, 2, 2); - Shape5.setRotationPoint(14F, -2F, -0.5F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 4, 30); - Shape6.addBox(0F, 0F, 0F, 4, 1, 1); - Shape6.setRotationPoint(-2F, -1.5F, 0F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 30, 0); - Shape7.addBox(0F, 0F, 0F, 1, 2, 2); - Shape7.setRotationPoint(-3F, -2F, -0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 13, 0); - Shape8.addBox(0F, 0F, 0F, 5, 1, 1); - Shape8.setRotationPoint(-8F, -1.5F, 0F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 0); - Shape9.addBox(0F, 0F, 0F, 3, 2, 2); - Shape9.setRotationPoint(-6.5F, -2F, -0.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - public void renderModel(float f) { - Shape1.render(f); - Shape2.render(f); - Shape3.render(f); - Shape4.render(f); - Shape5.render(f); - Shape6.render(f); - Shape7.render(f); - Shape8.render(f); - Shape9.render(f); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelRainbow.java b/src/main/java/com/hbm/render/model/ModelRainbow.java deleted file mode 100644 index f9d1a6ed0..000000000 --- a/src/main/java/com/hbm/render/model/ModelRainbow.java +++ /dev/null @@ -1,125 +0,0 @@ -// Date: 30.07.2016 17:36:41 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelRainbow extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - - public ModelRainbow() - { - textureWidth = 32; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 8, 2, 2); - Shape1.setRotationPoint(-4F, -1F, 1F); - Shape1.setTextureSize(32, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 16); - Shape2.addBox(0F, 0F, 0F, 8, 1, 1); - Shape2.setRotationPoint(-5F, -4F, -1F); - Shape2.setTextureSize(32, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 4); - Shape3.addBox(0F, 0F, 0F, 6, 1, 1); - Shape3.setRotationPoint(-1F, -1F, -2F); - Shape3.setTextureSize(32, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 6); - Shape4.addBox(0F, 0F, 0F, 8, 1, 1); - Shape4.setRotationPoint(-6F, 2F, -1F); - Shape4.setTextureSize(32, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 14); - Shape5.addBox(0F, 0F, 0F, 6, 1, 1); - Shape5.setRotationPoint(-3F, -3F, 2F); - Shape5.setTextureSize(32, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 12); - Shape6.addBox(0F, 0F, 0F, 8, 1, 1); - Shape6.setRotationPoint(-3F, -4F, 4F); - Shape6.setTextureSize(32, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 10); - Shape7.addBox(0F, 0F, 0F, 7, 1, 1); - Shape7.setRotationPoint(-6F, 0F, 5F); - Shape7.setTextureSize(32, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 0, 8); - Shape8.addBox(0F, 0F, 0F, 6, 1, 1); - Shape8.setRotationPoint(-2F, 2F, 3F); - Shape8.setTextureSize(32, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - - public void renderAll(float f5) - { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelRocket.java b/src/main/java/com/hbm/render/model/ModelRocket.java deleted file mode 100644 index 78dbc2895..000000000 --- a/src/main/java/com/hbm/render/model/ModelRocket.java +++ /dev/null @@ -1,121 +0,0 @@ -// Date: 20.01.2019 12:33:09 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelRocket extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelRocket() { - textureWidth = 32; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 7, 2, 2); - Shape1.setRotationPoint(0F, -1F, -1F); - Shape1.setTextureSize(32, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 4); - Shape2.addBox(0F, 0F, 0F, 3, 1, 1); - Shape2.setRotationPoint(-3F, -0.5F, -0.5F); - Shape2.setTextureSize(32, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 8, 4); - Shape3.addBox(0F, 0F, 0F, 3, 1, 1); - Shape3.setRotationPoint(-3F, -0.5F, -0.5F); - Shape3.setTextureSize(32, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0.1745329F, 0F); - Shape4 = new ModelRenderer(this, 0, 6); - Shape4.addBox(0F, 0F, -1F, 3, 1, 1); - Shape4.setRotationPoint(-3F, -0.5F, 0.5F); - Shape4.setTextureSize(32, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, -0.1745329F, 0F); - Shape5 = new ModelRenderer(this, 8, 6); - Shape5.addBox(0F, 0F, 0F, 3, 1, 1); - Shape5.setRotationPoint(-3F, -0.5F, -0.5F); - Shape5.setTextureSize(32, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, -0.1745329F); - Shape6 = new ModelRenderer(this, 0, 8); - Shape6.addBox(0F, -1F, 0F, 3, 1, 1); - Shape6.setRotationPoint(-3F, 0.5F, -0.5F); - Shape6.setTextureSize(32, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0.1745329F); - Shape7 = new ModelRenderer(this, 0, 10); - Shape7.addBox(0F, 0F, 0F, 4, 4, 0); - Shape7.setRotationPoint(4F, 0F, 0F); - Shape7.setTextureSize(32, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, -0.7853982F); - Shape8 = new ModelRenderer(this, 0, 14); - Shape8.addBox(0F, 0F, 0F, 4, 0, 4); - Shape8.setRotationPoint(4F, 0F, 0F); - Shape8.setTextureSize(32, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0.7853982F, 0F); - Shape9 = new ModelRenderer(this, 8, 8); - Shape9.addBox(0F, 0F, 0F, 1, 1, 1); - Shape9.setRotationPoint(7F, -0.5F, -0.5F); - Shape9.setTextureSize(32, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - public void renderAll(float f5) { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelRocketOld.java b/src/main/java/com/hbm/render/model/ModelRocketOld.java deleted file mode 100644 index a1c846d49..000000000 --- a/src/main/java/com/hbm/render/model/ModelRocketOld.java +++ /dev/null @@ -1,63 +0,0 @@ -// Date: 20.07.2015 22:08:24 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelRocketOld extends ModelBase { - // fields - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - - public ModelRocketOld() { - textureWidth = 64; - textureHeight = 32; - - Shape7 = new ModelRenderer(this, 10, 0); - Shape7.addBox(0F, 0F, 0F, 1, 2, 2); - Shape7.setRotationPoint(-3F, -2F, -0.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 0, 4); - Shape8.addBox(0F, 0F, 0F, 10, 1, 1); - Shape8.setRotationPoint(-8F, -1.5F, 0F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 0); - Shape9.addBox(0F, 0F, 0F, 3, 2, 2); - Shape9.setRotationPoint(-6.5F, -2F, -0.5F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelSRocket.java b/src/main/java/com/hbm/render/model/ModelSRocket.java deleted file mode 100644 index 6185db735..000000000 --- a/src/main/java/com/hbm/render/model/ModelSRocket.java +++ /dev/null @@ -1,94 +0,0 @@ -// Date: 23.02.2018 15:06:23 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelSRocket extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - - public ModelSRocket() { - textureWidth = 64; - textureHeight = 16; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 24, 2, 2); - Shape1.setRotationPoint(-12F, -1F, -1F); - Shape1.setTextureSize(64, 16); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 4); - Shape2.addBox(0F, 0F, 0F, 1, 6, 0); - Shape2.setRotationPoint(7F, -3F, 0F); - Shape2.setTextureSize(64, 16); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 2, 4); - Shape3.addBox(0F, 0F, 0F, 1, 0, 6); - Shape3.setRotationPoint(7F, 0F, -3F); - Shape3.setTextureSize(64, 16); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 4); - Shape4.addBox(0F, 0F, 0F, 1, 4, 0); - Shape4.setRotationPoint(-10F, -2F, 0F); - Shape4.setTextureSize(64, 16); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 10); - Shape5.addBox(0F, 0F, 0F, 1, 0, 4); - Shape5.setRotationPoint(-10F, 0F, -2F); - Shape5.setTextureSize(64, 16); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 18, 4); - Shape6.addBox(0F, 0F, 0F, 2, 3, 3); - Shape6.setRotationPoint(9F, -1.5F, -1.5F); - Shape6.setTextureSize(64, 16); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - - public void renderAll(float f5) { - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelSpark.java b/src/main/java/com/hbm/render/model/ModelSpark.java deleted file mode 100644 index 9125c0944..000000000 --- a/src/main/java/com/hbm/render/model/ModelSpark.java +++ /dev/null @@ -1,189 +0,0 @@ -// Date: 14.02.2017 20:27:10 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelSpark extends ModelBase -{ - //fields - ModelRenderer BarrelMain; - ModelRenderer BarrelSide; - ModelRenderer PlateFront; - ModelRenderer Sight; - ModelRenderer Grip; - ModelRenderer Cell1; - ModelRenderer Cell2; - ModelRenderer Cell3; - ModelRenderer Cell4; - ModelRenderer Cell5; - ModelRenderer Cell8; - ModelRenderer Cell7; - ModelRenderer Cell6; - ModelRenderer PlateBack; - ModelRenderer Body; - ModelRenderer Handle1; - ModelRenderer Handle2; - - public ModelSpark() - { - textureWidth = 64; - textureHeight = 64; - - BarrelMain = new ModelRenderer(this, 0, 0); - BarrelMain.addBox(0F, 0F, 0F, 18, 6, 6); - BarrelMain.setRotationPoint(-18F, 0F, -3F); - BarrelMain.setTextureSize(64, 64); - BarrelMain.mirror = true; - setRotation(BarrelMain, 0F, 0F, 0F); - BarrelSide = new ModelRenderer(this, 0, 12); - BarrelSide.addBox(0F, -3F, -3F, 14, 6, 6); - BarrelSide.setRotationPoint(-14F, 3F, 0F); - BarrelSide.setTextureSize(64, 64); - BarrelSide.mirror = true; - setRotation(BarrelSide, 0.7853982F, 0F, 0F); - PlateFront = new ModelRenderer(this, 40, 12); - PlateFront.addBox(0F, 0F, 0F, 2, 8, 8); - PlateFront.setRotationPoint(0F, -1F, -4F); - PlateFront.setTextureSize(64, 64); - PlateFront.mirror = true; - setRotation(PlateFront, 0F, 0F, 0F); - Sight = new ModelRenderer(this, 48, 0); - Sight.addBox(0F, 0F, 0F, 1, 4, 2); - Sight.setRotationPoint(-16F, -4F, -1F); - Sight.setTextureSize(64, 64); - Sight.mirror = true; - setRotation(Sight, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 0, 24); - Grip.addBox(0F, 0F, 0F, 12, 2, 2); - Grip.setRotationPoint(-10F, 5F, -6F); - Grip.setTextureSize(64, 64); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Cell1 = new ModelRenderer(this, 0, 28); - Cell1.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell1.setRotationPoint(2F, 3F, 0F); - Cell1.setTextureSize(64, 64); - Cell1.mirror = true; - setRotation(Cell1, 0F, 0F, 0F); - Cell2 = new ModelRenderer(this, 0, 32); - Cell2.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell2.setRotationPoint(2F, 3F, 0F); - Cell2.setTextureSize(64, 64); - Cell2.mirror = true; - setRotation(Cell2, 0.7853982F, 0F, 0F); - Cell3 = new ModelRenderer(this, 0, 36); - Cell3.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell3.setRotationPoint(2F, 3F, 0F); - Cell3.setTextureSize(64, 64); - Cell3.mirror = true; - setRotation(Cell3, 1.570796F, 0F, 0F); - Cell4 = new ModelRenderer(this, 0, 40); - Cell4.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell4.setRotationPoint(2F, 3F, 0F); - Cell4.setTextureSize(64, 64); - Cell4.mirror = true; - setRotation(Cell4, 2.356194F, 0F, 0F); - Cell5 = new ModelRenderer(this, 0, 44); - Cell5.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell5.setRotationPoint(2F, 3F, 0F); - Cell5.setTextureSize(64, 64); - Cell5.mirror = true; - setRotation(Cell5, 3.141593F, 0F, 0F); - Cell8 = new ModelRenderer(this, 0, 48); - Cell8.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell8.setRotationPoint(2F, 3F, 0F); - Cell8.setTextureSize(64, 64); - Cell8.mirror = true; - setRotation(Cell8, -0.7853982F, 0F, 0F); - Cell7 = new ModelRenderer(this, 0, 52); - Cell7.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell7.setRotationPoint(2F, 3F, 0F); - Cell7.setTextureSize(64, 64); - Cell7.mirror = true; - setRotation(Cell7, -1.570796F, 0F, 0F); - Cell6 = new ModelRenderer(this, 0, 56); - Cell6.addBox(0F, -3.5F, -1F, 3, 2, 2); - Cell6.setRotationPoint(2F, 3F, 0F); - Cell6.setTextureSize(64, 64); - Cell6.mirror = true; - setRotation(Cell6, -2.356194F, 0F, 0F); - PlateBack = new ModelRenderer(this, 10, 28); - PlateBack.addBox(0F, 0F, 0F, 2, 8, 8); - PlateBack.setRotationPoint(5F, -1F, -4F); - PlateBack.setTextureSize(64, 64); - PlateBack.mirror = true; - setRotation(PlateBack, 0F, 0F, 0F); - Body = new ModelRenderer(this, 10, 44); - Body.addBox(0F, 0F, 0F, 8, 6, 4); - Body.setRotationPoint(7F, 1F, -2F); - Body.setTextureSize(64, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Handle1 = new ModelRenderer(this, 10, 54); - Handle1.addBox(0F, 0F, 0F, 2, 2, 2); - Handle1.setRotationPoint(15F, 4F, -1F); - Handle1.setTextureSize(64, 64); - Handle1.mirror = true; - setRotation(Handle1, 0F, 0F, 0F); - Handle2 = new ModelRenderer(this, 18, 54); - Handle2.addBox(0F, 0F, 0F, 1, 4, 1); - Handle2.setRotationPoint(17F, 2F, -0.5F); - Handle2.setTextureSize(64, 64); - Handle2.mirror = true; - setRotation(Handle2, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - BarrelMain.render(f5); - BarrelSide.render(f5); - PlateFront.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Sight.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Grip.render(f5); - Cell1.render(f5); - Cell2.render(f5); - Cell3.render(f5); - Cell4.render(f5); - Cell5.render(f5); - Cell8.render(f5); - Cell7.render(f5); - Cell6.render(f5); - PlateBack.render(f5); - Body.render(f5); - Handle1.render(f5); - Handle2.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelSteelBeam.java b/src/main/java/com/hbm/render/model/ModelSteelBeam.java deleted file mode 100644 index 2626ccb3f..000000000 --- a/src/main/java/com/hbm/render/model/ModelSteelBeam.java +++ /dev/null @@ -1,62 +0,0 @@ -// Date: 10.12.2015 21:02:25 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelSteelBeam extends ModelBase -{ - //fields - ModelRenderer Shape1; - - public ModelSteelBeam() - { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 2, 16, 2); - Shape1.setRotationPoint(-1F, 8F, -1F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void renderModel(float f) - { - Shape1.render(f); - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelSteelCorner.java b/src/main/java/com/hbm/render/model/ModelSteelCorner.java deleted file mode 100644 index 46be6fa19..000000000 --- a/src/main/java/com/hbm/render/model/ModelSteelCorner.java +++ /dev/null @@ -1,89 +0,0 @@ -// Date: 10.12.2015 20:58:33 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelSteelCorner extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - - public ModelSteelCorner() - { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 16, 16, 1); - Shape1.setRotationPoint(-8F, 8F, -8F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 34, 0); - Shape2.addBox(0F, 0F, 0F, 2, 16, 2); - Shape2.setRotationPoint(2F, 8F, -7F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 0); - Shape3.addBox(0F, 0F, 0F, 1, 16, 15); - Shape3.setRotationPoint(-8F, 8F, -7F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 34, 0); - Shape4.addBox(0F, 0F, 0F, 2, 16, 2); - Shape4.setRotationPoint(-7F, 8F, -2F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void renderModel(float f) - { - Shape1.render(f); - Shape2.render(f); - Shape3.render(f); - Shape4.render(f); - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelSteelScaffold.java b/src/main/java/com/hbm/render/model/ModelSteelScaffold.java deleted file mode 100644 index 6e736a19d..000000000 --- a/src/main/java/com/hbm/render/model/ModelSteelScaffold.java +++ /dev/null @@ -1,161 +0,0 @@ -// Date: 10.12.2015 21:15:17 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelSteelScaffold extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer Shape10; - ModelRenderer Shape11; - ModelRenderer Shape12; - - public ModelSteelScaffold() - { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 2, 16, 2); - Shape1.setRotationPoint(6F, 8F, -6F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 0); - Shape2.addBox(0F, 0F, 0F, 2, 16, 2); - Shape2.setRotationPoint(-8F, 8F, -6F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 0); - Shape3.addBox(0F, 0F, 0F, 2, 16, 2); - Shape3.setRotationPoint(-8F, 8F, 4F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 0); - Shape4.addBox(0F, 0F, 0F, 2, 16, 2); - Shape4.setRotationPoint(6F, 8F, 4F); - Shape4.setTextureSize(64, 32); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 8, 0); - Shape5.addBox(-8F, -0.5F, 0F, 16, 1, 1); - Shape5.setRotationPoint(0F, 15.5F, 4.5F); - Shape5.setTextureSize(64, 32); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, -0.6108652F); - Shape6 = new ModelRenderer(this, 8, 0); - Shape6.addBox(-8F, -0.5F, 0F, 16, 1, 1); - Shape6.setRotationPoint(0F, 15.5F, 4.5F); - Shape6.setTextureSize(64, 32); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0.6108652F); - Shape7 = new ModelRenderer(this, 8, 0); - Shape7.addBox(-8F, -0.5F, 0F, 16, 1, 1); - Shape7.setRotationPoint(0F, 15.5F, -5.5F); - Shape7.setTextureSize(64, 32); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0.6108652F); - Shape8 = new ModelRenderer(this, 8, 0); - Shape8.addBox(-8F, 0F, 0F, 16, 1, 1); - Shape8.setRotationPoint(0F, 15.5F, -5.5F); - Shape8.setTextureSize(64, 32); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, -0.6108652F); - Shape9 = new ModelRenderer(this, 0, 19); - Shape9.addBox(-0.5F, -0.5F, -6F, 1, 1, 12); - Shape9.setRotationPoint(-7F, 15.5F, 0F); - Shape9.setTextureSize(64, 32); - Shape9.mirror = true; - setRotation(Shape9, 0.6108652F, 0F, 0F); - Shape10 = new ModelRenderer(this, 0, 19); - Shape10.addBox(-0.5F, -0.5F, -6F, 1, 1, 12); - Shape10.setRotationPoint(-7F, 15.5F, 0F); - Shape10.setTextureSize(64, 32); - Shape10.mirror = true; - setRotation(Shape10, -0.6108652F, 0F, 0F); - Shape11 = new ModelRenderer(this, 0, 19); - Shape11.addBox(-0.5F, -0.5F, -6F, 1, 1, 12); - Shape11.setRotationPoint(7F, 15.5F, 0F); - Shape11.setTextureSize(64, 32); - Shape11.mirror = true; - setRotation(Shape11, 0.6108652F, 0F, 0F); - Shape12 = new ModelRenderer(this, 0, 19); - Shape12.addBox(-0.5F, -0.5F, -6F, 1, 1, 12); - Shape12.setRotationPoint(7F, 15.5F, 0F); - Shape12.setTextureSize(64, 32); - Shape12.mirror = true; - setRotation(Shape12, -0.6108652F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - Shape10.render(f5); - Shape11.render(f5); - Shape12.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void renderModel(float f) - { - Shape1.render(f); - Shape2.render(f); - Shape3.render(f); - Shape4.render(f); - Shape5.render(f); - Shape6.render(f); - Shape7.render(f); - Shape8.render(f); - Shape9.render(f); - Shape10.render(f); - Shape11.render(f); - Shape12.render(f); - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelSteelWall.java b/src/main/java/com/hbm/render/model/ModelSteelWall.java deleted file mode 100644 index 6810eac5a..000000000 --- a/src/main/java/com/hbm/render/model/ModelSteelWall.java +++ /dev/null @@ -1,71 +0,0 @@ -// Date: 10.12.2015 20:54:28 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelSteelWall extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - - public ModelSteelWall() - { - textureWidth = 64; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 16, 16, 1); - Shape1.setRotationPoint(-8F, 8F, -8F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 34, 0); - Shape2.addBox(0F, 0F, 0F, 2, 16, 2); - Shape2.setRotationPoint(-4F, 8F, -7F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void renderModel(float f) - { - Shape1.render(f); - Shape2.render(f); - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelT45Boots.java b/src/main/java/com/hbm/render/model/ModelT45Boots.java index f12008588..57a9e5e55 100644 --- a/src/main/java/com/hbm/render/model/ModelT45Boots.java +++ b/src/main/java/com/hbm/render/model/ModelT45Boots.java @@ -11,7 +11,6 @@ import org.lwjgl.opengl.GL11; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; public class ModelT45Boots extends ModelBiped { // fields @@ -74,14 +73,8 @@ public class ModelT45Boots extends ModelBiped { @Override public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - if (entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) entity; - if (player.isSneaking()) { - this.isSneak = true; - } else { - this.isSneak = false; - } - } + this.isSneak = entity.isSneaking(); + this.isRiding = entity.isRiding(); super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); this.leftleg.rotationPointX = this.bipedLeftLeg.rotationPointX; diff --git a/src/main/java/com/hbm/render/model/ModelT45Chest.java b/src/main/java/com/hbm/render/model/ModelT45Chest.java index 07f4cda1f..1935cf7b8 100644 --- a/src/main/java/com/hbm/render/model/ModelT45Chest.java +++ b/src/main/java/com/hbm/render/model/ModelT45Chest.java @@ -9,6 +9,7 @@ package com.hbm.render.model; import org.lwjgl.opengl.GL11; import com.hbm.interfaces.IHoldableWeapon; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; @@ -207,13 +208,9 @@ public class ModelT45Chest extends ModelBiped { @Override public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { + if (entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) entity; - if (player.isSneaking()) { - this.isSneak = true; - } else { - this.isSneak = false; - } ItemStack itemstack = player.inventory.getCurrentItem(); this.heldItemRight = itemstack != null ? 1 : 0; @@ -227,9 +224,13 @@ public class ModelT45Chest extends ModelBiped { } } - if(itemstack != null && player.getHeldItem().getItem() instanceof IHoldableWeapon) - this.aimedBow = true; + if(itemstack != null && player.getHeldItem().getItem() instanceof IHoldableWeapon) this.aimedBow = true; + if(itemstack != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT) this.aimedBow = true; } + + this.isSneak = entity.isSneaking(); + this.isRiding = entity.isRiding(); + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); this.chest.rotationPointX = this.bipedBody.rotationPointX; this.chest.rotationPointY = this.bipedBody.rotationPointY; diff --git a/src/main/java/com/hbm/render/model/ModelT45Helmet.java b/src/main/java/com/hbm/render/model/ModelT45Helmet.java index 1c42c2604..b49a4a870 100644 --- a/src/main/java/com/hbm/render/model/ModelT45Helmet.java +++ b/src/main/java/com/hbm/render/model/ModelT45Helmet.java @@ -11,7 +11,6 @@ import org.lwjgl.opengl.GL11; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; public class ModelT45Helmet extends ModelBiped { // fields @@ -106,14 +105,8 @@ public class ModelT45Helmet extends ModelBiped { @Override public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - if (entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) entity; - if (player.isSneaking()) { - this.isSneak = true; - } else { - this.isSneak = false; - } - } + this.isSneak = entity.isSneaking(); + this.isRiding = entity.isRiding(); super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); this.helmet.rotationPointX = this.bipedHead.rotationPointX; diff --git a/src/main/java/com/hbm/render/model/ModelT45Legs.java b/src/main/java/com/hbm/render/model/ModelT45Legs.java index fbe3d740c..56c0e182c 100644 --- a/src/main/java/com/hbm/render/model/ModelT45Legs.java +++ b/src/main/java/com/hbm/render/model/ModelT45Legs.java @@ -11,7 +11,6 @@ import org.lwjgl.opengl.GL11; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; public class ModelT45Legs extends ModelBiped { // fields @@ -91,14 +90,8 @@ public class ModelT45Legs extends ModelBiped { @Override public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - if (entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) entity; - if (player.isSneaking()) { - this.isSneak = true; - } else { - this.isSneak = false; - } - } + this.isSneak = entity.isSneaking(); + this.isRiding = entity.isRiding(); super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); this.leftleg.rotationPointX = this.bipedLeftLeg.rotationPointX; diff --git a/src/main/java/com/hbm/render/model/ModelTestBombAdvanced.java b/src/main/java/com/hbm/render/model/ModelTestBombAdvanced.java deleted file mode 100644 index 07c1ea779..000000000 --- a/src/main/java/com/hbm/render/model/ModelTestBombAdvanced.java +++ /dev/null @@ -1,125 +0,0 @@ -// Date: 18.05.2015 21:04:52 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelTestBombAdvanced extends ModelBase -{ - //fields - ModelRenderer FinEnd; - ModelRenderer BombTip; - ModelRenderer FinBase; - ModelRenderer FinTop; - ModelRenderer FinBottom; - ModelRenderer FinLeft; - ModelRenderer FinRight; - ModelRenderer BombBody; - - public ModelTestBombAdvanced() - { - textureWidth = 128; - textureHeight = 128; - - FinEnd = new ModelRenderer(this, 0, 0); - FinEnd.addBox(0F, 0F, 0F, 8, 8, 4); - FinEnd.setRotationPoint(-4F, 16F, 20F); - FinEnd.setTextureSize(128, 128); - FinEnd.mirror = true; - setRotation(FinEnd, 0F, 0F, 0F); - BombTip = new ModelRenderer(this, 55, 0); - BombTip.addBox(0F, 0F, 0F, 6, 6, 2); - BombTip.setRotationPoint(-3F, 17F, -24F); - BombTip.setTextureSize(128, 128); - BombTip.mirror = true; - setRotation(BombTip, 0F, 0F, 0F); - FinBase = new ModelRenderer(this, 74, 0); - FinBase.addBox(0F, 0F, 0F, 6, 6, 2); - FinBase.setRotationPoint(-3F, 17F, 14F); - FinBase.setTextureSize(128, 128); - FinBase.mirror = true; - setRotation(FinBase, 0F, 0F, 0F); - FinTop = new ModelRenderer(this, 0, 74); - FinTop.addBox(0F, 0F, -6F, 8, 0, 6); - FinTop.setRotationPoint(-4F, 16F, 20F); - FinTop.setTextureSize(128, 128); - FinTop.mirror = true; - setRotation(FinTop, 0.4363323F, 0F, 0F); - FinBottom = new ModelRenderer(this, 0, 74); - FinBottom.addBox(0F, 0F, -6F, 8, 0, 6); - FinBottom.setRotationPoint(-4F, 24F, 20F); - FinBottom.setTextureSize(128, 128); - FinBottom.mirror = true; - setRotation(FinBottom, -0.4363323F, 0F, 0F); - FinLeft = new ModelRenderer(this, 0, 51); - FinLeft.addBox(0F, 0F, -6F, 0, 8, 6); - FinLeft.setRotationPoint(4F, 16F, 20F); - FinLeft.setTextureSize(128, 128); - FinLeft.mirror = true; - setRotation(FinLeft, 0F, 0.4363323F, 0F); - FinRight = new ModelRenderer(this, 0, 51); - FinRight.addBox(0F, 0F, -6F, 0, 8, 6); - FinRight.setRotationPoint(-4F, 16F, 20F); - FinRight.setTextureSize(128, 128); - FinRight.mirror = true; - setRotation(FinRight, 0F, -0.4363323F, 0F); - BombBody = new ModelRenderer(this, 0, 0); - BombBody.addBox(0F, 0F, 0F, 8, 8, 36); - BombBody.setRotationPoint(-4F, 16F, -22F); - BombBody.setTextureSize(128, 128); - BombBody.mirror = true; - setRotation(BombBody, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - FinEnd.render(f5); - BombTip.render(f5); - FinBase.render(f5); - FinTop.render(f5); - FinBottom.render(f5); - FinLeft.render(f5); - FinRight.render(f5); - BombBody.render(f5); - } - - public void renderModel(float f) - { - FinEnd.render(f); - BombTip.render(f); - FinBase.render(f); - FinTop.render(f); - FinBottom.render(f); - FinLeft.render(f); - FinRight.render(f); - BombBody.render(f); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelTestRender.java b/src/main/java/com/hbm/render/model/ModelTestRender.java deleted file mode 100644 index 7c02b0da5..000000000 --- a/src/main/java/com/hbm/render/model/ModelTestRender.java +++ /dev/null @@ -1,61 +0,0 @@ -// Date: 16.05.2015 19:38:19 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - - - - - - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelTestRender extends ModelBase -{ - //fields - ModelRenderer MainBlock; - - public ModelTestRender() - { - textureWidth = 64; - textureHeight = 32; - - MainBlock = new ModelRenderer(this, 0, 0); - MainBlock.addBox(0F, 0F, 0F, 12, 16, 12); - MainBlock.setRotationPoint(-6F, 8F, -6F); - MainBlock.setTextureSize(64, 32); - MainBlock.mirror = true; - setRotation(MainBlock, 0F, 0F, 0F); - } - - @Override -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - MainBlock.render(f5); - } - - public void renderModel(float f) { - MainBlock.render(f); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelTwiGun.java b/src/main/java/com/hbm/render/model/ModelTwiGun.java deleted file mode 100755 index 2318476af..000000000 --- a/src/main/java/com/hbm/render/model/ModelTwiGun.java +++ /dev/null @@ -1,329 +0,0 @@ -//This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0 -// Copyright (C) 2017 Minecraft-SMP.de -// This file is for Flan's Flying Mod Version 4.0.x+ - -// Model: TwiGun -// Model Creator: -// Created on: 01.11.2017 - 20:26:01 -// Last changed on: 01.11.2017 - 20:26:01 - -package com.hbm.render.model; //Path where the model is located - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelTwiGun extends ModelBase //Same as Filename -{ - int textureX = 128; - int textureY = 128; - ModelRenderer[] bodyModel; - - public ModelTwiGun() //Same as Filename - { - textureWidth = 128; - textureHeight = 128; - bodyModel = new ModelRenderer[65]; - bodyModel[0] = new ModelRenderer(this, 1, 1); // Rotor5 - bodyModel[1] = new ModelRenderer(this, 17, 1); // Rotor4 - bodyModel[2] = new ModelRenderer(this, 33, 1); // Rotor1 - bodyModel[3] = new ModelRenderer(this, 49, 1); // Rotor6 - bodyModel[4] = new ModelRenderer(this, 65, 1); // Rotor3 - bodyModel[5] = new ModelRenderer(this, 81, 1); // Rotor2 - bodyModel[6] = new ModelRenderer(this, 89, 1); // Box 8 - bodyModel[7] = new ModelRenderer(this, 113, 1); // Box 9 - bodyModel[8] = new ModelRenderer(this, 1, 9); // Box 10 - bodyModel[9] = new ModelRenderer(this, 17, 9); // Box 11 - bodyModel[10] = new ModelRenderer(this, 33, 9); // Box 12 - bodyModel[11] = new ModelRenderer(this, 49, 9); // Box 13 - bodyModel[12] = new ModelRenderer(this, 65, 9); // Box 14 - bodyModel[13] = new ModelRenderer(this, 1, 17); // Box 15 - bodyModel[14] = new ModelRenderer(this, 9, 17); // Box 16 - bodyModel[15] = new ModelRenderer(this, 33, 17); // Box 17 - bodyModel[16] = new ModelRenderer(this, 73, 9); // Box 18 - bodyModel[17] = new ModelRenderer(this, 105, 9); // Box 19 - bodyModel[18] = new ModelRenderer(this, 57, 17); // Box 20 - bodyModel[19] = new ModelRenderer(this, 33, 17); // Box 21 - bodyModel[20] = new ModelRenderer(this, 1, 25); // Box 22 - bodyModel[21] = new ModelRenderer(this, 73, 17); // Box 23 - bodyModel[22] = new ModelRenderer(this, 25, 33); // Box 24 - bodyModel[23] = new ModelRenderer(this, 1, 25); // Box 25 - bodyModel[24] = new ModelRenderer(this, 57, 33); // Box 26 - bodyModel[25] = new ModelRenderer(this, 89, 33); // Box 27 - bodyModel[26] = new ModelRenderer(this, 1, 49); // Box 28 - bodyModel[27] = new ModelRenderer(this, 1, 49); // Box 29 - bodyModel[28] = new ModelRenderer(this, 97, 17); // Box 30 - bodyModel[29] = new ModelRenderer(this, 25, 49); // Box 31 - bodyModel[30] = new ModelRenderer(this, 65, 49); // Box 32 - bodyModel[31] = new ModelRenderer(this, 25, 57); // Box 33 - bodyModel[32] = new ModelRenderer(this, 65, 57); // Box 34 - bodyModel[33] = new ModelRenderer(this, 33, 65); // Box 35 - bodyModel[34] = new ModelRenderer(this, 97, 49); // Box 36 - bodyModel[35] = new ModelRenderer(this, 57, 25); // Box 37 - bodyModel[36] = new ModelRenderer(this, 73, 65); // Box 38 - bodyModel[37] = new ModelRenderer(this, 1, 73); // Box 40 - bodyModel[38] = new ModelRenderer(this, 33, 73); // Box 41 - bodyModel[39] = new ModelRenderer(this, 49, 73); // Box 42 - bodyModel[40] = new ModelRenderer(this, 105, 57); // Box 43 - bodyModel[41] = new ModelRenderer(this, 113, 65); // Box 44 - bodyModel[42] = new ModelRenderer(this, 113, 25); // Box 45 - bodyModel[43] = new ModelRenderer(this, 121, 9); // Box 46 - bodyModel[44] = new ModelRenderer(this, 73, 73); // Box 47 - bodyModel[45] = new ModelRenderer(this, 25, 73); // Box 48 - bodyModel[46] = new ModelRenderer(this, 89, 73); // Box 49 - bodyModel[47] = new ModelRenderer(this, 25, 25); // Box 50 - bodyModel[48] = new ModelRenderer(this, 17, 9); // Box 51 - bodyModel[49] = new ModelRenderer(this, 49, 33); // Box 52 - bodyModel[50] = new ModelRenderer(this, 81, 33); // Box 53 - bodyModel[51] = new ModelRenderer(this, 57, 1); // Box 54 - bodyModel[52] = new ModelRenderer(this, 73, 1); // Box 55 - bodyModel[53] = new ModelRenderer(this, 105, 73); // Box 56 - bodyModel[54] = new ModelRenderer(this, 89, 73); // Box 57 - bodyModel[55] = new ModelRenderer(this, 17, 81); // Box 58 - bodyModel[56] = new ModelRenderer(this, 73, 81); // Box 59 - bodyModel[57] = new ModelRenderer(this, 1, 89); // Box 60 - bodyModel[58] = new ModelRenderer(this, 33, 89); // Box 61 - bodyModel[59] = new ModelRenderer(this, 49, 41); // Box 63 - bodyModel[60] = new ModelRenderer(this, 89, 81); // Box 64 - bodyModel[61] = new ModelRenderer(this, 113, 81); // Box 65 - bodyModel[62] = new ModelRenderer(this, 1, 89); // Box 66 - bodyModel[63] = new ModelRenderer(this, 89, 89); // Box 67 - bodyModel[64] = new ModelRenderer(this, 17, 97); // Box 68 - - bodyModel[0].addBox(0F, 1F, -1F, 3, 4, 2, 0F); // Rotor5 - bodyModel[0].setRotationPoint(-12F, 0F, 0F); - - bodyModel[1].addBox(0F, 1F, -1F, 3, 4, 2, 0F); // Rotor4 - bodyModel[1].setRotationPoint(-12F, 0F, 0F); - bodyModel[1].rotateAngleX = 2.0943951F; - - bodyModel[2].addBox(0F, 1F, -1F, 3, 4, 2, 0F); // Rotor1 - bodyModel[2].setRotationPoint(-12F, 0F, 0F); - bodyModel[2].rotateAngleX = -2.0943951F; - - bodyModel[3].addBox(0F, 4.5F, -0.5F, 3, 1, 1, 0F); // Rotor6 - bodyModel[3].setRotationPoint(-12F, 0F, 0F); - - bodyModel[4].addBox(0F, 4.5F, -0.5F, 3, 1, 1, 0F); // Rotor3 - bodyModel[4].setRotationPoint(-12F, 0F, 0F); - bodyModel[4].rotateAngleX = 2.0943951F; - - bodyModel[5].addBox(0F, 4.5F, -0.5F, 3, 1, 1, 0F); // Rotor2 - bodyModel[5].setRotationPoint(-12F, 0F, 0F); - bodyModel[5].rotateAngleX = -2.0943951F; - - bodyModel[6].addBox(0F, 0F, 0F, 5, 0, 8, 0F); // Box 8 - bodyModel[6].setRotationPoint(-13F, -6F, -4F); - - bodyModel[7].addBox(0F, -1F, -1F, 5, 2, 2, 0F); // Box 9 - bodyModel[7].setRotationPoint(-13F, 0F, 0F); - - bodyModel[8].addBox(0F, -1F, -1F, 5, 2, 2, 0F); // Box 10 - bodyModel[8].setRotationPoint(-13F, 0F, 0F); - bodyModel[8].rotateAngleX = 0.78539816F; - - bodyModel[9].addBox(0F, 0F, 0F, 5, 0, 5, 0F); // Box 11 - bodyModel[9].setRotationPoint(-13F, -6F, 4F); - bodyModel[9].rotateAngleX = -0.78539816F; - - bodyModel[10].addBox(0F, 0F, 0F, 9, 1, 1, 0F); // Box 12 - bodyModel[10].setRotationPoint(-15F, -3F, 7F); - - bodyModel[11].addBox(0F, 0F, -5F, 5, 0, 5, 0F); // Box 13 - bodyModel[11].setRotationPoint(-13F, -6F, -4F); - bodyModel[11].rotateAngleX = 0.78539816F; - - bodyModel[12].addBox(0F, 0F, 0F, 9, 1, 1, 0F); // Box 14 - bodyModel[12].setRotationPoint(-15F, -3F, -8F); - - bodyModel[13].addBox(0F, 0F, 0F, 5, 0, 7, 0F); // Box 15 - bodyModel[13].setRotationPoint(-13F, 6.5F, -3.5F); - - bodyModel[14].addBox(0F, 0F, 0F, 5, 0, 10, 0F); // Box 16 - bodyModel[14].setRotationPoint(-13F, 6.5F, 3.5F); - bodyModel[14].rotateAngleX = 1.13446401F; - - bodyModel[15].addBox(0F, 0F, -10F, 5, 0, 10, 0F); // Box 17 - bodyModel[15].setRotationPoint(-13F, 6.5F, -3.5F); - bodyModel[15].rotateAngleX = -1.13446401F; - - bodyModel[16].addBox(0F, 0F, 0F, 2, 2, 16, 0F); // Box 18 - bodyModel[16].setRotationPoint(-15F, -2F, -8F); - - bodyModel[17].addBox(0F, 0F, 0F, 3, 4, 4, 0F); // Box 19 - bodyModel[17].setRotationPoint(-16F, -2F, -2F); - - bodyModel[18].addBox(0F, 0F, 0F, 5, 1, 1, 0F); // Box 20 - bodyModel[18].setRotationPoint(-13F, 6F, -0.5F); - - bodyModel[19].addBox(0F, 0F, 0F, 2, 5, 2, 0F); // Box 21 - bodyModel[19].setRotationPoint(-15F, 2F, -1F); - - bodyModel[20].addBox(0F, 0F, 0F, 0, 10, 10, 0F); // Box 22 - bodyModel[20].setRotationPoint(-13F, -5F, -5F); - - bodyModel[21].addBox(0F, -1.5F, -1.5F, 3, 3, 3, 0F); // Box 23 - bodyModel[21].setRotationPoint(-19F, 0F, 0F); - - bodyModel[22].addBox(0F, -2F, -2F, 8, 4, 4, 0F); // Box 24 - bodyModel[22].setRotationPoint(-27F, 0F, 0F); - - bodyModel[23].addBox(0F, -1.5F, -1.5F, 3, 3, 3, 0F); // Box 25 - bodyModel[23].setRotationPoint(-19F, 0F, 0F); - bodyModel[23].rotateAngleX = -0.78539816F; - - bodyModel[24].addBox(0F, -2F, -2F, 8, 4, 4, 0F); // Box 26 - bodyModel[24].setRotationPoint(-27F, 0F, 0F); - bodyModel[24].rotateAngleX = -0.78539816F; - - bodyModel[25].addBox(0F, 0F, 0F, 14, 6, 4, 0F); // Box 27 - bodyModel[25].setRotationPoint(-6F, -3F, -2F); - - bodyModel[26].addBox(0F, 0F, 0F, 2, 2, 16, 0F); // Box 28 - bodyModel[26].setRotationPoint(-8F, -2F, -8F); - - bodyModel[27].addBox(0F, 0F, 0F, 3, 4, 4, 0F); // Box 29 - bodyModel[27].setRotationPoint(-9F, -2F, -2F); - - bodyModel[28].addBox(0F, 0F, 0F, 2, 5, 2, 0F); // Box 30 - bodyModel[28].setRotationPoint(-8F, 2F, -1F); - - bodyModel[29].addBox(0F, 0F, 0F, 14, 1, 5, 0F); // Box 31 - bodyModel[29].setRotationPoint(-6F, -3F, 2F); - bodyModel[29].rotateAngleX = -0.26179939F; - - bodyModel[30].addBox(0F, 0F, 0F, 14, 1, 1, 0F); // Box 32 - bodyModel[30].setRotationPoint(-6F, -1.5F, 6F); - - bodyModel[31].addBox(0F, -1F, 0F, 14, 1, 5, 0F); // Box 33 - bodyModel[31].setRotationPoint(-6F, 1F, 2F); - bodyModel[31].rotateAngleX = 0.26179939F; - - bodyModel[32].addBox(0F, -1F, -5F, 14, 1, 5, 0F); // Box 34 - bodyModel[32].setRotationPoint(-6F, 1F, -2F); - bodyModel[32].rotateAngleX = -0.26179939F; - - bodyModel[33].addBox(0F, 0F, -5F, 14, 1, 5, 0F); // Box 35 - bodyModel[33].setRotationPoint(-6F, -3F, -2F); - bodyModel[33].rotateAngleX = 0.26179939F; - - bodyModel[34].addBox(0F, 0F, 0F, 14, 1, 1, 0F); // Box 36 - bodyModel[34].setRotationPoint(-6F, -1.5F, -7F); - - bodyModel[35].addBox(0F, 0F, 0F, 5, 0, 4, 0F); // Box 37 - bodyModel[35].setRotationPoint(-8F, -6F, -2F); - bodyModel[35].rotateAngleZ = 0.78539816F; - - bodyModel[36].addBox(0F, 0F, 0F, 16, 4, 2, 0F); // Box 38 - bodyModel[36].setRotationPoint(-6F, 3F, -1F); - - bodyModel[37].addBox(0F, 0F, 0F, 6, 6, 6, 0F); // Box 40 - bodyModel[37].setRotationPoint(8F, -3F, -3F); - - bodyModel[38].addBox(0F, 0F, 0F, 3, 2, 10, 0F); // Box 41 - bodyModel[38].setRotationPoint(8F, -2F, -5F); - - bodyModel[39].addBox(0F, 0F, 0F, 4, 1, 13, 0F); // Box 42 - bodyModel[39].setRotationPoint(8F, -1.5F, -6.5F); - - bodyModel[40].addBox(0F, 0F, 0F, 8, 3, 3, 0F); // Box 43 - bodyModel[40].setRotationPoint(14F, -1F, -1.5F); - - bodyModel[41].addBox(0F, 0F, 0F, 1, 7, 3, 0F); // Box 44 - bodyModel[41].setRotationPoint(22.5F, -1F, -1.5F); - - bodyModel[42].addBox(0F, 0F, 0F, 4, 4, 3, 0F); // Box 45 - bodyModel[42].setRotationPoint(18F, 2F, -1.5F); - - bodyModel[43].addBox(0F, 0F, 0F, 2, 4, 1, 0F); // Box 46 - bodyModel[43].setRotationPoint(13F, 2F, 0F); - - bodyModel[44].addBox(0F, -5F, 0F, 2, 5, 3, 0F); // Box 47 - bodyModel[44].setRotationPoint(18F, 6F, -1.5F); - bodyModel[44].rotateAngleZ = -0.43633231F; - - bodyModel[45].addBox(0F, 0F, 0F, 6, 1, 2, 0F); // Box 48 - bodyModel[45].setRotationPoint(10F, 6F, -1F); - - bodyModel[46].addBox(0F, 0F, 0F, 3, 2, 2, 0F); // Box 49 - bodyModel[46].setRotationPoint(14F, -3F, -1F); - bodyModel[46].rotateAngleZ = 0.78539816F; - - bodyModel[47].addBox(0F, 0F, 0F, 2, 1, 5, 0F); // Box 50 - bodyModel[47].setRotationPoint(14F, 0F, -2.5F); - - bodyModel[48].addBox(0F, 0F, 0F, 1, 1, 1, 0F); // Box 51 - bodyModel[48].setRotationPoint(10.5F, -3.5F, -0.5F); - - bodyModel[49].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 52 - bodyModel[49].setRotationPoint(9F, -3.5F, -2F); - - bodyModel[50].addBox(0F, 0F, 0F, 3, 1, 1, 0F); // Box 53 - bodyModel[50].setRotationPoint(10F, -3.5F, 1F); - - bodyModel[51].addBox(0F, 0F, 0F, 1, 1, 3, 0F); // Box 54 - bodyModel[51].setRotationPoint(9F, -3.5F, -1F); - - bodyModel[52].addBox(0F, 0F, 0F, 1, 1, 3, 0F); // Box 55 - bodyModel[52].setRotationPoint(12F, -3.5F, -2F); - - bodyModel[53].addBox(0F, 0F, 0F, 1, 6, 2, 0F); // Box 56 - bodyModel[53].setRotationPoint(22F, -0.5F, -1F); - - bodyModel[54].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 57 - bodyModel[54].setRotationPoint(-5F, -0.5F, -6F); - - bodyModel[55].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 58 - bodyModel[55].setRotationPoint(-4F, -0.5F, -6F); - - bodyModel[56].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 59 - bodyModel[56].setRotationPoint(-3F, -0.5F, -6F); - - bodyModel[57].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 60 - bodyModel[57].setRotationPoint(-2F, -0.5F, -6F); - - bodyModel[58].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 61 - bodyModel[58].setRotationPoint(-1F, -0.5F, -6F); - - bodyModel[59].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 63 - bodyModel[59].setRotationPoint(-4F, -3.5F, -1F); - - bodyModel[60].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 64 - bodyModel[60].setRotationPoint(-1F, -3.5F, -1F); - - bodyModel[61].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 65 - bodyModel[61].setRotationPoint(2F, -3.5F, -1F); - - bodyModel[62].addBox(0F, 0F, 0F, 2, 1, 2, 0F); // Box 66 - bodyModel[62].setRotationPoint(5F, -3.5F, -1F); - - bodyModel[63].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 67 - bodyModel[63].setRotationPoint(0F, -0.5F, -6F); - - bodyModel[64].addBox(0F, 0F, 0F, 0, 3, 12, 0F); // Box 68 - bodyModel[64].setRotationPoint(1F, -0.5F, -6F); - - for(int i = 0; i < 65; i++) - { - bodyModel[i].setTextureSize(textureX, textureY); - bodyModel[i].mirror = true; - } - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - for(int i = 0; i < 65; i++) - { - bodyModel[i].render(f5); - } - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/model/ModelUboinik.java b/src/main/java/com/hbm/render/model/ModelUboinik.java deleted file mode 100644 index 17125c06c..000000000 --- a/src/main/java/com/hbm/render/model/ModelUboinik.java +++ /dev/null @@ -1,320 +0,0 @@ -// Date: 03.12.2016 21:30:48 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; - -public class ModelUboinik extends ModelBase { - // fields - ModelRenderer Barrel; - ModelRenderer ConnectorFront; - ModelRenderer ConnectorBack; - ModelRenderer Grip; - ModelRenderer Coil; - ModelRenderer FrontBase; - ModelRenderer FrontTip; - ModelRenderer DrumCenter; - ModelRenderer DrumBack; - ModelRenderer DrumBottom; - ModelRenderer Shell1; - ModelRenderer Shell2; - ModelRenderer Shell3; - ModelRenderer Shell4; - ModelRenderer Shell5; - ModelRenderer Shell6; - ModelRenderer Clip1; - ModelRenderer Clip2; - ModelRenderer Clip3; - ModelRenderer ChamberBack; - ModelRenderer ChamberBackConnector; - ModelRenderer ChamberTop; - ModelRenderer Chamber; - ModelRenderer Stock; - ModelRenderer TriggerFrame; - ModelRenderer Trigger; - ModelRenderer Handle; - ModelRenderer StockBottom; - - public ModelUboinik() { - textureWidth = 64; - textureHeight = 64; - - Barrel = new ModelRenderer(this, 0, 11); - Barrel.addBox(0F, 0F, 0F, 24, 2, 2); - Barrel.setRotationPoint(-24F, 0F, -1F); - Barrel.setTextureSize(64, 64); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - ConnectorFront = new ModelRenderer(this, 0, 53); - ConnectorFront.addBox(0F, 0F, 0F, 1, 8, 3); - ConnectorFront.setRotationPoint(-16F, -0.5F, -1.5F); - ConnectorFront.setTextureSize(64, 64); - ConnectorFront.mirror = true; - setRotation(ConnectorFront, 0F, 0F, 0F); - ConnectorBack = new ModelRenderer(this, 8, 53); - ConnectorBack.addBox(0F, 0F, 0F, 1, 8, 3); - ConnectorBack.setRotationPoint(0F, -0.5F, -1.5F); - ConnectorBack.setTextureSize(64, 64); - ConnectorBack.mirror = true; - setRotation(ConnectorBack, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 16, 57); - Grip.addBox(0F, 0F, 0F, 15, 4, 3); - Grip.setRotationPoint(-15F, 3.5F, -1.5F); - Grip.setTextureSize(64, 64); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, 0F); - Coil = new ModelRenderer(this, 16, 51); - Coil.addBox(0F, 0F, 0F, 15, 3, 3); - Coil.setRotationPoint(-15F, -0.5F, -1.5F); - Coil.setTextureSize(64, 64); - Coil.mirror = true; - setRotation(Coil, 0F, 0F, 0F); - FrontBase = new ModelRenderer(this, 0, 49); - FrontBase.addBox(0F, 0F, 0F, 1, 2, 2); - FrontBase.setRotationPoint(-17F, 4.5F, -1F); - FrontBase.setTextureSize(64, 64); - FrontBase.mirror = true; - setRotation(FrontBase, 0F, 0F, 0F); - FrontTip = new ModelRenderer(this, 6, 51); - FrontTip.addBox(0F, 0F, 0F, 4, 1, 1); - FrontTip.setRotationPoint(-21F, 5F, -0.5F); - FrontTip.setTextureSize(64, 64); - FrontTip.mirror = true; - setRotation(FrontTip, 0F, 0F, 0F); - DrumCenter = new ModelRenderer(this, 6, 49); - DrumCenter.addBox(0F, 0F, 0F, 6, 1, 1); - DrumCenter.setRotationPoint(1F, 3F, -0.5F); - DrumCenter.setTextureSize(64, 64); - DrumCenter.mirror = true; - setRotation(DrumCenter, 0F, 0F, 0F); - DrumBack = new ModelRenderer(this, 0, 40); - DrumBack.addBox(0F, 0F, 0F, 1, 7, 2); - DrumBack.setRotationPoint(7F, 1F, -1F); - DrumBack.setTextureSize(64, 64); - DrumBack.mirror = true; - setRotation(DrumBack, 0F, 0F, 0F); - DrumBottom = new ModelRenderer(this, 6, 46); - DrumBottom.addBox(0F, 0F, 0F, 7, 1, 2); - DrumBottom.setRotationPoint(0F, 7.5F, -1F); - DrumBottom.setTextureSize(64, 64); - DrumBottom.mirror = true; - setRotation(DrumBottom, 0F, 0F, 0F); - Shell1 = new ModelRenderer(this, 0, 34); - Shell1.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell1.setRotationPoint(1.5F, 3.5F, 0F); - Shell1.setTextureSize(64, 64); - Shell1.mirror = true; - setRotation(Shell1, 1.047198F, 0F, 0F); - Shell2 = new ModelRenderer(this, 0, 34); - Shell2.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell2.setRotationPoint(1.5F, 3.5F, 0F); - Shell2.setTextureSize(64, 64); - Shell2.mirror = true; - setRotation(Shell2, 2.094395F, 0F, 0F); - Shell3 = new ModelRenderer(this, 0, 34); - Shell3.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell3.setRotationPoint(1.5F, 3.5F, 0F); - Shell3.setTextureSize(64, 64); - Shell3.mirror = true; - setRotation(Shell3, 3.141593F, 0F, 0F); - Shell4 = new ModelRenderer(this, 0, 34); - Shell4.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell4.setRotationPoint(1.5F, 3.5F, 0F); - Shell4.setTextureSize(64, 64); - Shell4.mirror = true; - setRotation(Shell4, -2.094395F, 0F, 0F); - Shell5 = new ModelRenderer(this, 0, 34); - Shell5.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell5.setRotationPoint(1.5F, 3.5F, 0F); - Shell5.setTextureSize(64, 64); - Shell5.mirror = true; - setRotation(Shell5, -1.047198F, 0F, 0F); - Shell6 = new ModelRenderer(this, 0, 34); - Shell6.addBox(0F, -3.5F, -1F, 5, 2, 2); - Shell6.setRotationPoint(1.5F, 3.5F, 0F); - Shell6.setTextureSize(64, 64); - Shell6.mirror = true; - setRotation(Shell6, 0F, 0F, 0F); - Clip1 = new ModelRenderer(this, 6, 42); - Clip1.addBox(0F, -1.5F, -0.5F, 2, 3, 1); - Clip1.setRotationPoint(4F, 3.5F, 0F); - Clip1.setTextureSize(64, 64); - Clip1.mirror = true; - setRotation(Clip1, 0F, 0F, 0F); - Clip2 = new ModelRenderer(this, 6, 42); - Clip2.addBox(0F, -1.5F, -0.5F, 2, 3, 1); - Clip2.setRotationPoint(4F, 3.5F, 0F); - Clip2.setTextureSize(64, 64); - Clip2.mirror = true; - setRotation(Clip2, 1.047198F, 0F, 0F); - Clip3 = new ModelRenderer(this, 6, 42); - Clip3.addBox(0F, -1.5F, -0.5F, 2, 3, 1); - Clip3.setRotationPoint(4F, 3.5F, 0F); - Clip3.setTextureSize(64, 64); - Clip3.mirror = true; - setRotation(Clip3, 2.094395F, 0F, 0F); - ChamberBack = new ModelRenderer(this, 0, 28); - ChamberBack.addBox(0F, 0F, 0F, 8, 2, 2); - ChamberBack.setRotationPoint(8F, 1F, -1F); - ChamberBack.setTextureSize(64, 64); - ChamberBack.mirror = true; - setRotation(ChamberBack, 0F, 0F, 0F); - ChamberBackConnector = new ModelRenderer(this, 12, 43); - ChamberBackConnector.addBox(0F, 0F, 0F, 4, 1, 2); - ChamberBackConnector.setRotationPoint(12F, 0F, -1F); - ChamberBackConnector.setTextureSize(64, 64); - ChamberBackConnector.mirror = true; - setRotation(ChamberBackConnector, 0F, 0F, 0F); - ChamberTop = new ModelRenderer(this, 0, 25); - ChamberTop.addBox(0F, 0F, 0F, 9, 1, 2); - ChamberTop.setRotationPoint(7F, -1F, -1F); - ChamberTop.setTextureSize(64, 64); - ChamberTop.mirror = true; - setRotation(ChamberTop, 0F, 0F, 0F); - Chamber = new ModelRenderer(this, 0, 20); - Chamber.addBox(0F, 0F, 0F, 6, 2, 3); - Chamber.setRotationPoint(1F, -1F, -1.5F); - Chamber.setTextureSize(64, 64); - Chamber.mirror = true; - setRotation(Chamber, 0F, 0F, 0F); - Stock = new ModelRenderer(this, 0, 15); - Stock.addBox(0F, 0F, 0F, 23, 3, 2); - Stock.setRotationPoint(13F, 3F, -1F); - Stock.setTextureSize(64, 64); - Stock.mirror = true; - setRotation(Stock, 0F, 0F, 0F); - TriggerFrame = new ModelRenderer(this, 24, 45); - TriggerFrame.addBox(0F, 0F, 0F, 5, 5, 1); - TriggerFrame.setRotationPoint(8F, 3F, -0.5F); - TriggerFrame.setTextureSize(64, 64); - TriggerFrame.mirror = true; - setRotation(TriggerFrame, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 36, 46); - Trigger.addBox(-1F, 0F, 0F, 1, 4, 1); - Trigger.setRotationPoint(12.5F, 3F, -0.5F); - Trigger.setTextureSize(64, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.4363323F); - Handle = new ModelRenderer(this, 40, 43); - Handle.addBox(0F, 0F, 0F, 3, 6, 2); - Handle.setRotationPoint(13F, 6F, -1F); - Handle.setTextureSize(64, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, -0.1745329F); - StockBottom = new ModelRenderer(this, 26, 36); - StockBottom.addBox(0F, 0F, 0F, 10, 5, 2); - StockBottom.setRotationPoint(26F, 6F, -1F); - StockBottom.setTextureSize(64, 64); - StockBottom.mirror = true; - setRotation(StockBottom, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ItemStack item) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Barrel.render(f5); - ConnectorFront.render(f5); - ConnectorBack.render(f5); - Grip.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Coil.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - FrontBase.render(f5); - FrontTip.render(f5); - DrumCenter.render(f5); - DrumBack.render(f5); - DrumBottom.render(f5); - - int ammo = ItemGunBase.getMag(item); - - if(ammo > 5) - Shell5.render(f5); - if(ammo > 4) - Shell4.render(f5); - if(ammo > 3) - Shell3.render(f5); - if(ammo > 2) - Shell2.render(f5); - if(ammo > 1) - Shell1.render(f5); - if(ammo > 0) - Shell6.render(f5); - - Clip1.render(f5); - Clip2.render(f5); - Clip3.render(f5); - ChamberBack.render(f5); - ChamberBackConnector.render(f5); - ChamberTop.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Chamber.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Stock.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - TriggerFrame.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Trigger.render(f5); - Handle.render(f5); - StockBottom.render(f5); - } - - public void renderDud(float f5) { - Barrel.render(f5); - ConnectorFront.render(f5); - ConnectorBack.render(f5); - Grip.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Coil.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - FrontBase.render(f5); - FrontTip.render(f5); - DrumCenter.render(f5); - DrumBack.render(f5); - DrumBottom.render(f5); - Shell5.render(f5); - Shell4.render(f5); - Shell3.render(f5); - Shell2.render(f5); - Shell1.render(f5); - Shell6.render(f5); - Clip1.render(f5); - Clip2.render(f5); - Clip3.render(f5); - ChamberBack.render(f5); - ChamberBackConnector.render(f5); - ChamberTop.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Chamber.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Stock.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - TriggerFrame.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Trigger.render(f5); - Handle.render(f5); - StockBottom.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelUzi.java b/src/main/java/com/hbm/render/model/ModelUzi.java deleted file mode 100644 index 473dd6fe1..000000000 --- a/src/main/java/com/hbm/render/model/ModelUzi.java +++ /dev/null @@ -1,420 +0,0 @@ -// Date: 22.07.2018 14:18:53 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelUzi extends ModelBase { - // fields - ModelRenderer BodyBack; - ModelRenderer BodyBottom; - ModelRenderer BodySide; - ModelRenderer Ejector; - ModelRenderer BodyFront; - ModelRenderer GripFront; - ModelRenderer StockFront; - ModelRenderer StockPlate; - ModelRenderer HandleBase; - ModelRenderer Handle; - ModelRenderer HandleBack; - ModelRenderer HandleBottom; - ModelRenderer HandlePlate; - ModelRenderer HandleTop; - ModelRenderer Muzzle1; - ModelRenderer Muzzle2; - ModelRenderer StockBack; - ModelRenderer StockPlate1; - ModelRenderer Stock1; - ModelRenderer Stock2; - ModelRenderer Stcok3; - ModelRenderer Stock4; - ModelRenderer Hump1; - ModelRenderer Hump2; - ModelRenderer Hump3; - ModelRenderer Hump4; - ModelRenderer Hump5; - ModelRenderer Hump6; - ModelRenderer SightBack; - ModelRenderer Sight1; - ModelRenderer Sight2; - ModelRenderer Hump7; - ModelRenderer Hump8; - ModelRenderer Hump9; - ModelRenderer Hump10; - ModelRenderer Hump11; - ModelRenderer Hump12; - ModelRenderer Sight3; - ModelRenderer SightFront; - ModelRenderer Knob1; - ModelRenderer Knob2; - ModelRenderer Bolt1; - ModelRenderer Bolt2; - ModelRenderer Mag; - ModelRenderer Trigger; - ModelRenderer Frame1; - ModelRenderer Frame2; - - public ModelUzi() { - textureWidth = 128; - textureHeight = 64; - - BodyBack = new ModelRenderer(this, 0, 0); - BodyBack.addBox(0F, 0F, 0F, 14, 6, 4); - BodyBack.setRotationPoint(0F, 0F, 0F); - BodyBack.setTextureSize(128, 64); - BodyBack.mirror = true; - setRotation(BodyBack, 0F, 0F, 0F); - BodyBottom = new ModelRenderer(this, 82, 0); - BodyBottom.addBox(0F, 0F, 0F, 6, 3, 4); - BodyBottom.setRotationPoint(-6F, 3F, 0F); - BodyBottom.setTextureSize(128, 64); - BodyBottom.mirror = true; - setRotation(BodyBottom, 0F, 0F, 0F); - BodySide = new ModelRenderer(this, 102, 0); - BodySide.addBox(0F, 0F, 0F, 6, 3, 2); - BodySide.setRotationPoint(-6F, 0F, 0F); - BodySide.setTextureSize(128, 64); - BodySide.mirror = true; - setRotation(BodySide, 0F, 0F, 0F); - Ejector = new ModelRenderer(this, 102, 5); - Ejector.addBox(0F, 0F, 0F, 6, 3, 2); - Ejector.setRotationPoint(-6F, 0.5F, 1.5F); - Ejector.setTextureSize(128, 64); - Ejector.mirror = true; - setRotation(Ejector, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 36, 0); - BodyFront.addBox(0F, 0F, 0F, 19, 6, 4); - BodyFront.setRotationPoint(-25F, 0F, 0F); - BodyFront.setTextureSize(128, 64); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - GripFront = new ModelRenderer(this, 0, 10); - GripFront.addBox(0F, 0F, 0F, 14, 5, 5); - GripFront.setRotationPoint(-24.5F, 1.5F, -0.5F); - GripFront.setTextureSize(128, 64); - GripFront.mirror = true; - setRotation(GripFront, 0F, 0F, 0F); - StockFront = new ModelRenderer(this, 38, 10); - StockFront.addBox(0F, 0F, 0F, 14, 3, 4); - StockFront.setRotationPoint(3F, 6F, 0F); - StockFront.setTextureSize(128, 64); - StockFront.mirror = true; - setRotation(StockFront, 0F, 0F, 0F); - StockPlate = new ModelRenderer(this, 118, 0); - StockPlate.addBox(0F, -4F, 0F, 1, 4, 4); - StockPlate.setRotationPoint(3F, 9F, 0F); - StockPlate.setTextureSize(128, 64); - StockPlate.mirror = true; - setRotation(StockPlate, 0F, 0F, -0.3490659F); - HandleBase = new ModelRenderer(this, 0, 20); - HandleBase.addBox(0F, 0F, 0F, 12, 3, 5); - HandleBase.setRotationPoint(-10F, 4F, -0.5F); - HandleBase.setTextureSize(128, 64); - HandleBase.mirror = true; - setRotation(HandleBase, 0F, 0F, 0F); - Handle = new ModelRenderer(this, 0, 28); - Handle.addBox(0F, 0F, 0F, 4, 10, 3); - Handle.setRotationPoint(-5F, 7F, 0.5F); - Handle.setTextureSize(128, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, 0F); - HandleBack = new ModelRenderer(this, 14, 28); - HandleBack.addBox(0F, 0F, 0F, 2, 4, 3); - HandleBack.setRotationPoint(-1F, 11F, 0.5F); - HandleBack.setTextureSize(128, 64); - HandleBack.mirror = true; - setRotation(HandleBack, 0F, 0F, 0F); - HandleBottom = new ModelRenderer(this, 14, 35); - HandleBottom.addBox(-2F, 0F, 0F, 2, 3, 3); - HandleBottom.setRotationPoint(1F, 15F, 0.5F); - HandleBottom.setTextureSize(128, 64); - HandleBottom.mirror = true; - setRotation(HandleBottom, 0F, 0F, 0.7853982F); - HandlePlate = new ModelRenderer(this, 24, 28); - HandlePlate.addBox(-2F, -3F, 0F, 2, 3, 3); - HandlePlate.setRotationPoint(1F, 11F, 0.5F); - HandlePlate.setTextureSize(128, 64); - HandlePlate.mirror = true; - setRotation(HandlePlate, 0F, 0F, -0.4886922F); - HandleTop = new ModelRenderer(this, 24, 34); - HandleTop.addBox(-2F, 0F, 0F, 2, 3, 3); - HandleTop.setRotationPoint(1F, 7F, 0.5F); - HandleTop.setTextureSize(128, 64); - HandleTop.mirror = true; - setRotation(HandleTop, 0F, 0F, 0.5235988F); - Muzzle1 = new ModelRenderer(this, 82, 12); - Muzzle1.addBox(0F, 0F, 0F, 3, 3, 2); - Muzzle1.setRotationPoint(-28F, 1.5F, 1F); - Muzzle1.setTextureSize(128, 64); - Muzzle1.mirror = true; - setRotation(Muzzle1, 0F, 0F, 0F); - Muzzle2 = new ModelRenderer(this, 82, 7); - Muzzle2.addBox(0F, 0F, 0F, 3, 2, 3); - Muzzle2.setRotationPoint(-28F, 2F, 0.5F); - Muzzle2.setTextureSize(128, 64); - Muzzle2.mirror = true; - setRotation(Muzzle2, 0F, 0F, 0F); - StockBack = new ModelRenderer(this, 34, 20); - StockBack.addBox(0F, 0F, 0F, 1, 11, 3); - StockBack.setRotationPoint(14F, 7F, 0.5F); - StockBack.setTextureSize(128, 64); - StockBack.mirror = true; - setRotation(StockBack, 0F, 0F, 0F); - StockPlate1 = new ModelRenderer(this, 42, 17); - StockPlate1.addBox(-1F, -11F, 0F, 1, 11, 3); - StockPlate1.setRotationPoint(15F, 18F, 0.5F); - StockPlate1.setTextureSize(128, 64); - StockPlate1.mirror = true; - setRotation(StockPlate1, 0F, 0F, 0.0959931F); - Stock1 = new ModelRenderer(this, 50, 17); - Stock1.addBox(-1F, -3F, 0F, 1, 3, 4); - Stock1.setRotationPoint(17F, 6F, 0F); - Stock1.setTextureSize(128, 64); - Stock1.mirror = true; - setRotation(Stock1, 0F, 0F, -0.3490659F); - Stock2 = new ModelRenderer(this, 60, 17); - Stock2.addBox(0F, -3F, 0F, 1, 3, 4); - Stock2.setRotationPoint(14F, 6F, 0F); - Stock2.setTextureSize(128, 64); - Stock2.mirror = true; - setRotation(Stock2, 0F, 0F, 0.3490659F); - Stcok3 = new ModelRenderer(this, 50, 24); - Stcok3.addBox(0F, 0F, 0F, 1, 3, 4); - Stcok3.setRotationPoint(15F, 3F, 0F); - Stcok3.setTextureSize(128, 64); - Stcok3.mirror = true; - setRotation(Stcok3, 0F, 0F, 0F); - Stock4 = new ModelRenderer(this, 60, 24); - Stock4.addBox(0F, 0F, 0F, 2, 5, 3); - Stock4.setRotationPoint(13.5F, 1.5F, 0.5F); - Stock4.setTextureSize(128, 64); - Stock4.mirror = true; - setRotation(Stock4, 0F, 0F, 0F); - Hump1 = new ModelRenderer(this, 74, 10); - Hump1.addBox(-2F, -3F, 0F, 2, 3, 1); - Hump1.setRotationPoint(14F, 0F, 0F); - Hump1.setTextureSize(128, 64); - Hump1.mirror = true; - setRotation(Hump1, 0F, 0F, -0.2617994F); - Hump2 = new ModelRenderer(this, 74, 14); - Hump2.addBox(0F, -3F, 0F, 2, 3, 1); - Hump2.setRotationPoint(10F, 0F, 0F); - Hump2.setTextureSize(128, 64); - Hump2.mirror = true; - setRotation(Hump2, 0F, 0F, 0.2617994F); - Hump3 = new ModelRenderer(this, 74, 18); - Hump3.addBox(0F, 0F, 0F, 2, 1, 1); - Hump3.setRotationPoint(11F, -3F, 0F); - Hump3.setTextureSize(128, 64); - Hump3.mirror = true; - setRotation(Hump3, 0F, 0F, 0F); - Hump4 = new ModelRenderer(this, 70, 20); - Hump4.addBox(-2F, -3F, 0F, 2, 3, 1); - Hump4.setRotationPoint(14F, 0F, 3F); - Hump4.setTextureSize(128, 64); - Hump4.mirror = true; - setRotation(Hump4, 0F, 0F, -0.2617994F); - Hump5 = new ModelRenderer(this, 70, 24); - Hump5.addBox(0F, -3F, 0F, 2, 3, 1); - Hump5.setRotationPoint(10F, 0F, 3F); - Hump5.setTextureSize(128, 64); - Hump5.mirror = true; - setRotation(Hump5, 0F, 0F, 0.2617994F); - Hump6 = new ModelRenderer(this, 70, 28); - Hump6.addBox(0F, 0F, 0F, 2, 1, 1); - Hump6.setRotationPoint(11F, -3F, 3F); - Hump6.setTextureSize(128, 64); - Hump6.mirror = true; - setRotation(Hump6, 0F, 0F, 0F); - SightBack = new ModelRenderer(this, 80, 17); - SightBack.addBox(0F, 0F, 0F, 1, 1, 1); - SightBack.setRotationPoint(11.5F, -2F, 1.5F); - SightBack.setTextureSize(128, 64); - SightBack.mirror = true; - setRotation(SightBack, 0F, 0F, 0F); - Sight1 = new ModelRenderer(this, 80, 19); - Sight1.addBox(0F, 0F, 0F, 1, 1, 1); - Sight1.setRotationPoint(11.5F, -1F, 1.5F); - Sight1.setTextureSize(128, 64); - Sight1.mirror = true; - setRotation(Sight1, 0F, 0F, 0F); - Sight2 = new ModelRenderer(this, 84, 17); - Sight2.addBox(0F, 0F, 0F, 2, 1, 2); - Sight2.setRotationPoint(11F, -0.5F, 1F); - Sight2.setTextureSize(128, 64); - Sight2.mirror = true; - setRotation(Sight2, 0F, 0F, 0F); - Hump7 = new ModelRenderer(this, 94, 7); - Hump7.addBox(-2F, -3F, 0F, 2, 3, 1); - Hump7.setRotationPoint(-21F, 0F, 0F); - Hump7.setTextureSize(128, 64); - Hump7.mirror = true; - setRotation(Hump7, 0F, 0F, -0.2617994F); - Hump8 = new ModelRenderer(this, 94, 11); - Hump8.addBox(0F, -3F, 0F, 2, 3, 1); - Hump8.setRotationPoint(-25F, 0F, 0F); - Hump8.setTextureSize(128, 64); - Hump8.mirror = true; - setRotation(Hump8, 0F, 0F, 0.2617994F); - Hump9 = new ModelRenderer(this, 94, 15); - Hump9.addBox(0F, 0F, 0F, 2, 1, 1); - Hump9.setRotationPoint(-24F, -3F, 0F); - Hump9.setTextureSize(128, 64); - Hump9.mirror = true; - setRotation(Hump9, 0F, 0F, 0F); - Hump10 = new ModelRenderer(this, 100, 10); - Hump10.addBox(-2F, -3F, 0F, 2, 3, 1); - Hump10.setRotationPoint(-21F, 0F, 3F); - Hump10.setTextureSize(128, 64); - Hump10.mirror = true; - setRotation(Hump10, 0F, 0F, -0.2617994F); - Hump11 = new ModelRenderer(this, 100, 14); - Hump11.addBox(0F, -3F, 0F, 2, 3, 1); - Hump11.setRotationPoint(-25F, 0F, 3F); - Hump11.setTextureSize(128, 64); - Hump11.mirror = true; - setRotation(Hump11, 0F, 0F, 0.2617994F); - Hump12 = new ModelRenderer(this, 100, 18); - Hump12.addBox(0F, 0F, 0F, 2, 1, 1); - Hump12.setRotationPoint(-24F, -3F, 3F); - Hump12.setTextureSize(128, 64); - Hump12.mirror = true; - setRotation(Hump12, 0F, 0F, 0F); - Sight3 = new ModelRenderer(this, 34, 34); - Sight3.addBox(0F, 0F, 0F, 2, 1, 2); - Sight3.setRotationPoint(-24F, -0.5F, 1F); - Sight3.setTextureSize(128, 64); - Sight3.mirror = true; - setRotation(Sight3, 0F, 0F, 0F); - SightFront = new ModelRenderer(this, 34, 37); - SightFront.addBox(0F, 0F, 0F, 1, 2, 0); - SightFront.setRotationPoint(-23.5F, -1.5F, 2F); - SightFront.setTextureSize(128, 64); - SightFront.mirror = true; - setRotation(SightFront, 0F, 0F, 0F); - Knob1 = new ModelRenderer(this, 42, 31); - Knob1.addBox(0F, 0F, 0F, 2, 2, 2); - Knob1.setRotationPoint(-15F, -2F, 1F); - Knob1.setTextureSize(128, 64); - Knob1.mirror = true; - setRotation(Knob1, 0F, 0F, 0F); - Knob2 = new ModelRenderer(this, 50, 31); - Knob2.addBox(-1F, 0F, -1F, 2, 2, 2); - Knob2.setRotationPoint(-14F, -2F, 2F); - Knob2.setTextureSize(128, 64); - Knob2.mirror = true; - setRotation(Knob2, 0F, 0.7853982F, 0F); - Bolt1 = new ModelRenderer(this, 42, 35); - Bolt1.addBox(0F, 0F, 0F, 1, 1, 1); - Bolt1.setRotationPoint(11.5F, -2F, -0.5F); - Bolt1.setTextureSize(128, 64); - Bolt1.mirror = true; - setRotation(Bolt1, 0F, 0F, 0F); - Bolt2 = new ModelRenderer(this, 46, 35); - Bolt2.addBox(0F, 0F, 0F, 1, 1, 1); - Bolt2.setRotationPoint(11.5F, -2F, 3.5F); - Bolt2.setTextureSize(128, 64); - Bolt2.mirror = true; - setRotation(Bolt2, 0F, 0F, 0F); - Mag = new ModelRenderer(this, 118, 8); - Mag.addBox(0F, 0F, 0F, 3, 10, 2); - Mag.setRotationPoint(-4.5F, 17F, 1F); - Mag.setTextureSize(128, 64); - Mag.mirror = true; - setRotation(Mag, 0F, 0F, 0F); - Trigger = new ModelRenderer(this, 0, 41); - Trigger.addBox(-1F, 0F, 0F, 1, 3, 1); - Trigger.setRotationPoint(-6F, 7F, 1.5F); - Trigger.setTextureSize(128, 64); - Trigger.mirror = true; - setRotation(Trigger, 0F, 0F, 0.3490659F); - Frame1 = new ModelRenderer(this, 4, 41); - Frame1.addBox(0F, 0F, 0F, 3, 4, 2); - Frame1.setRotationPoint(-10F, 7F, 1F); - Frame1.setTextureSize(128, 64); - Frame1.mirror = true; - setRotation(Frame1, 0F, 0F, 0F); - Frame2 = new ModelRenderer(this, 14, 41); - Frame2.addBox(0F, -1F, 0F, 3, 1, 2); - Frame2.setRotationPoint(-7F, 11F, 1F); - Frame2.setTextureSize(128, 64); - Frame2.mirror = true; - setRotation(Frame2, 0F, 0F, -0.4363323F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - GL11.glDisable(GL11.GL_CULL_FACE); - BodyBack.render(f5); - BodyBottom.render(f5); - BodySide.render(f5); - Ejector.render(f5); - BodyFront.render(f5); - GripFront.render(f5); - StockFront.render(f5); - StockPlate.render(f5); - HandleBase.render(f5); - Handle.render(f5); - HandleBack.render(f5); - HandleBottom.render(f5); - HandlePlate.render(f5); - HandleTop.render(f5); - Muzzle1.render(f5); - Muzzle2.render(f5); - StockBack.render(f5); - StockPlate1.render(f5); - Stock1.render(f5); - Stock2.render(f5); - Stcok3.render(f5); - Stock4.render(f5); - Hump1.render(f5); - Hump2.render(f5); - Hump3.render(f5); - Hump4.render(f5); - Hump5.render(f5); - Hump6.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - SightBack.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - Sight1.render(f5); - Sight2.render(f5); - Hump7.render(f5); - Hump8.render(f5); - Hump9.render(f5); - Hump10.render(f5); - Hump11.render(f5); - Hump12.render(f5); - Sight3.render(f5); - SightFront.render(f5); - Knob1.render(f5); - Knob2.render(f5); - Bolt1.render(f5); - Bolt2.render(f5); - Mag.render(f5); - GL11.glDisable(GL11.GL_CULL_FACE); - Trigger.render(f5); - Frame1.render(f5); - Frame2.render(f5); - GL11.glEnable(GL11.GL_CULL_FACE); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelUziBarrel.java b/src/main/java/com/hbm/render/model/ModelUziBarrel.java deleted file mode 100644 index c699eb13d..000000000 --- a/src/main/java/com/hbm/render/model/ModelUziBarrel.java +++ /dev/null @@ -1,45 +0,0 @@ -// Date: 22.07.2018 14:26:58 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelUziBarrel extends ModelBase { - // fields - ModelRenderer Barrel; - - public ModelUziBarrel() { - textureWidth = 32; - textureHeight = 32; - - Barrel = new ModelRenderer(this, 0, 0); - Barrel.addBox(0F, 0F, 0F, 12, 2, 2); - Barrel.setRotationPoint(-40F, 2F, 1F); - Barrel.setTextureSize(32, 32); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Barrel.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelUziSilencer.java b/src/main/java/com/hbm/render/model/ModelUziSilencer.java deleted file mode 100644 index 5066db4c4..000000000 --- a/src/main/java/com/hbm/render/model/ModelUziSilencer.java +++ /dev/null @@ -1,61 +0,0 @@ -// Date: 22.07.2018 14:32:28 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelUziSilencer extends ModelBase { - // fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - - public ModelUziSilencer() { - textureWidth = 128; - textureHeight = 32; - - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(0F, 0F, 0F, 32, 5, 3); - Shape1.setRotationPoint(-60F, 0.5F, 0.5F); - Shape1.setTextureSize(128, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 8); - Shape2.addBox(0F, 0F, 0F, 32, 3, 5); - Shape2.setRotationPoint(-60F, 1.5F, -0.5F); - Shape2.setTextureSize(128, 32); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 16); - Shape3.addBox(0F, 0F, 0F, 32, 4, 4); - Shape3.setRotationPoint(-60F, 1F, 0F); - Shape3.setTextureSize(128, 32); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelXVL1456.java b/src/main/java/com/hbm/render/model/ModelXVL1456.java deleted file mode 100644 index 2d60edd3f..000000000 --- a/src/main/java/com/hbm/render/model/ModelXVL1456.java +++ /dev/null @@ -1,293 +0,0 @@ -// Date: 12.07.2016 17:01:02 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelXVL1456 extends ModelBase { - // fields - ModelRenderer CoilFront; - ModelRenderer Panel1; - ModelRenderer Panel2; - ModelRenderer Panel3; - ModelRenderer CoilBack; - ModelRenderer SpinPivot; - ModelRenderer Barrel; - ModelRenderer CoilBarrel; - ModelRenderer PipeBarrel; - ModelRenderer PipeHolder; - ModelRenderer Rail1; - ModelRenderer Rail2; - ModelRenderer Rail3; - ModelRenderer Rail4; - ModelRenderer Rail5; - ModelRenderer Rail6; - ModelRenderer TankHolder; - ModelRenderer HandleBase; - ModelRenderer HandleShaft; - ModelRenderer HanldeGrip; - ModelRenderer SpinC1; - ModelRenderer SpinC2; - ModelRenderer SpinC3; - ModelRenderer SpinP1; - ModelRenderer SpinP2; - ModelRenderer SpinP3; - ModelRenderer Battery1; - ModelRenderer Battery2; - ModelRenderer StockBase; - ModelRenderer StockTrigger; - ModelRenderer Shape1; - int i = 0; - - public ModelXVL1456() { - textureWidth = 128; - textureHeight = 64; - - CoilFront = new ModelRenderer(this, 0, 0); - CoilFront.addBox(0F, 0F, 0F, 4, 10, 10); - CoilFront.setRotationPoint(0F, 0F, 0F); - CoilFront.setTextureSize(128, 64); - CoilFront.mirror = true; - setRotation(CoilFront, 0F, 0F, 0F); - Panel1 = new ModelRenderer(this, 0, 40); - Panel1.addBox(0F, 0F, 0F, 5, 11, 3); - Panel1.setRotationPoint(4F, -1F, 3.5F); - Panel1.setTextureSize(128, 64); - Panel1.mirror = true; - setRotation(Panel1, 0F, 0F, 0F); - Panel2 = new ModelRenderer(this, 0, 54); - Panel2.addBox(0F, 0F, 0F, 5, 3, 3); - Panel2.setRotationPoint(9F, -1F, 3.5F); - Panel2.setTextureSize(128, 64); - Panel2.mirror = true; - setRotation(Panel2, 0F, 0F, 0F); - Panel3 = new ModelRenderer(this, 16, 40); - Panel3.addBox(0F, 0F, 0F, 3, 11, 3); - Panel3.setRotationPoint(14F, -1F, 3.5F); - Panel3.setTextureSize(128, 64); - Panel3.mirror = true; - setRotation(Panel3, 0F, 0F, 0F); - CoilBack = new ModelRenderer(this, 0, 20); - CoilBack.addBox(0F, 0F, 0F, 4, 10, 10); - CoilBack.setRotationPoint(17F, 0F, 0F); - CoilBack.setTextureSize(128, 64); - CoilBack.mirror = true; - setRotation(CoilBack, 0F, 0F, 0F); - SpinPivot = new ModelRenderer(this, 66, 42); - SpinPivot.addBox(0F, 0F, 0F, 5, 1, 1); - SpinPivot.setRotationPoint(9F, 5.5F, 4.5F); - SpinPivot.setTextureSize(128, 64); - SpinPivot.mirror = true; - setRotation(SpinPivot, 0F, 0F, 0F); - Barrel = new ModelRenderer(this, 64, 0); - Barrel.addBox(0F, 0F, 0F, 28, 1, 1); - Barrel.setRotationPoint(-28F, 4.5F, 4.5F); - Barrel.setTextureSize(128, 64); - Barrel.mirror = true; - setRotation(Barrel, 0F, 0F, 0F); - CoilBarrel = new ModelRenderer(this, 28, 4); - CoilBarrel.addBox(0F, 0F, 0F, 9, 7, 7); - CoilBarrel.setRotationPoint(-19F, 1.5F, 1.5F); - CoilBarrel.setTextureSize(128, 64); - CoilBarrel.mirror = true; - setRotation(CoilBarrel, 0F, 0F, 0F); - PipeBarrel = new ModelRenderer(this, 28, 0); - PipeBarrel.addBox(0F, 0F, 0F, 16, 2, 2); - PipeBarrel.setRotationPoint(-13F, 6F, -0.4666667F); - PipeBarrel.setTextureSize(128, 64); - PipeBarrel.mirror = true; - setRotation(PipeBarrel, 0F, 0F, 0F); - PipeHolder = new ModelRenderer(this, 42, 37); - PipeHolder.addBox(0F, 0F, 0F, 3, 4, 1); - PipeHolder.setRotationPoint(0.5F, 5F, -1F); - PipeHolder.setTextureSize(128, 64); - PipeHolder.mirror = true; - setRotation(PipeHolder, 0F, 0F, 0F); - Rail1 = new ModelRenderer(this, 28, 27); - Rail1.addBox(0F, 0F, 0F, 1, 5, 1); - Rail1.setRotationPoint(5F, -2F, 2.5F); - Rail1.setTextureSize(128, 64); - Rail1.mirror = true; - setRotation(Rail1, 0F, 0F, 0F); - Rail2 = new ModelRenderer(this, 32, 27); - Rail2.addBox(0F, 0F, 0F, 1, 5, 1); - Rail2.setRotationPoint(5F, -2F, 6.5F); - Rail2.setTextureSize(128, 64); - Rail2.mirror = true; - setRotation(Rail2, 0F, 0F, 0F); - Rail3 = new ModelRenderer(this, 28, 23); - Rail3.addBox(0F, 0F, 0F, 18, 1, 1); - Rail3.setRotationPoint(-12F, -3F, 2.5F); - Rail3.setTextureSize(128, 64); - Rail3.mirror = true; - setRotation(Rail3, 0F, 0F, 0F); - Rail4 = new ModelRenderer(this, 28, 25); - Rail4.addBox(0F, 0F, 0F, 18, 1, 1); - Rail4.setRotationPoint(-12F, -3F, 6.5F); - Rail4.setTextureSize(128, 64); - Rail4.mirror = true; - setRotation(Rail4, 0F, 0F, 0F); - Rail5 = new ModelRenderer(this, 28, 18); - Rail5.addBox(0F, 0F, 0F, 1, 4, 1); - Rail5.setRotationPoint(-12F, -2F, 2.5F); - Rail5.setTextureSize(128, 64); - Rail5.mirror = true; - setRotation(Rail5, 0F, 0F, 0F); - Rail6 = new ModelRenderer(this, 32, 18); - Rail6.addBox(0F, 0F, 0F, 1, 4, 1); - Rail6.setRotationPoint(-12F, -2F, 6.5F); - Rail6.setTextureSize(128, 64); - Rail6.mirror = true; - setRotation(Rail6, 0F, 0F, 0F); - TankHolder = new ModelRenderer(this, 42, 27); - TankHolder.addBox(0F, 0F, 0F, 4, 2, 1); - TankHolder.setRotationPoint(4.5F, 4F, 2.5F); - TankHolder.setTextureSize(128, 64); - TankHolder.mirror = true; - setRotation(TankHolder, 0F, 0F, 0F); - HandleBase = new ModelRenderer(this, 28, 33); - HandleBase.addBox(0F, 0F, 0F, 6, 1, 1); - HandleBase.setRotationPoint(9F, -2F, 4.5F); - HandleBase.setTextureSize(128, 64); - HandleBase.mirror = true; - setRotation(HandleBase, 0F, 0F, 0F); - HandleShaft = new ModelRenderer(this, 28, 35); - HandleShaft.addBox(0F, 0F, 0F, 1, 3, 1); - HandleShaft.setRotationPoint(8F, -4F, 4.5F); - HandleShaft.setTextureSize(128, 64); - HandleShaft.mirror = true; - setRotation(HandleShaft, 0F, 0F, 0F); - HanldeGrip = new ModelRenderer(this, 28, 39); - HanldeGrip.addBox(0F, 0F, 0F, 5, 2, 2); - HanldeGrip.setRotationPoint(9F, -5F, 4F); - HanldeGrip.setTextureSize(128, 64); - HanldeGrip.mirror = true; - setRotation(HanldeGrip, 0F, 0F, 0F); - SpinC1 = new ModelRenderer(this, 66, 21); - SpinC1.addBox(0F, -3.5F, -2F, 4, 3, 4); - SpinC1.setRotationPoint(9.5F, 6F, 5F); - SpinC1.setTextureSize(128, 64); - SpinC1.mirror = true; - setRotation(SpinC1, 0F, 0F, 0F); - SpinC2 = new ModelRenderer(this, 66, 28); - SpinC2.addBox(0F, -3.5F, -2F, 4, 3, 4); - SpinC2.setRotationPoint(9.5F, 6F, 5F); - SpinC2.setTextureSize(128, 64); - SpinC2.mirror = true; - setRotation(SpinC2, 2.094395F, 0F, 0F); - SpinC3 = new ModelRenderer(this, 66, 35); - SpinC3.addBox(0F, -3.5F, -2F, 4, 3, 4); - SpinC3.setRotationPoint(9.5F, 6F, 5F); - SpinC3.setTextureSize(128, 64); - SpinC3.mirror = true; - setRotation(SpinC3, -2.094395F, 0F, 0F); - SpinP1 = new ModelRenderer(this, 82, 21); - SpinP1.addBox(0F, -3F, -1.5F, 3, 2, 3); - SpinP1.setRotationPoint(10F, 6F, 5F); - SpinP1.setTextureSize(128, 64); - SpinP1.mirror = true; - setRotation(SpinP1, 1.047198F, 0F, 0F); - SpinP2 = new ModelRenderer(this, 82, 26); - SpinP2.addBox(0F, -3F, -1.5F, 3, 2, 3); - SpinP2.setRotationPoint(10F, 6F, 5F); - SpinP2.setTextureSize(128, 64); - SpinP2.mirror = true; - setRotation(SpinP2, 3.141593F, 0F, 0F); - SpinP3 = new ModelRenderer(this, 82, 31); - SpinP3.addBox(0F, -3F, -1.5F, 3, 2, 3); - SpinP3.setRotationPoint(10F, 6F, 5F); - SpinP3.setTextureSize(128, 64); - SpinP3.mirror = true; - setRotation(SpinP3, -1.047198F, 0F, 0F); - Battery1 = new ModelRenderer(this, 64, 2); - Battery1.addBox(0F, 0F, 0F, 1, 1, 3); - Battery1.setRotationPoint(17.8F, -1F, 3.5F); - Battery1.setTextureSize(128, 64); - Battery1.mirror = true; - setRotation(Battery1, 0F, 0F, 0F); - Battery2 = new ModelRenderer(this, 72, 2); - Battery2.addBox(0F, 0F, 0F, 1, 1, 3); - Battery2.setRotationPoint(19.3F, -1F, 3.5F); - Battery2.setTextureSize(128, 64); - Battery2.mirror = true; - setRotation(Battery2, 0F, 0F, 0F); - StockBase = new ModelRenderer(this, 60, 12); - StockBase.addBox(0F, 0F, 0F, 12, 6, 3); - StockBase.setRotationPoint(22F, 7F, 3.5F); - StockBase.setTextureSize(128, 64); - StockBase.mirror = true; - setRotation(StockBase, 0F, 0F, 0F); - StockTrigger = new ModelRenderer(this, 60, 6); - StockTrigger.addBox(-3.5F, -1.5F, 0F, 5, 4, 2); - StockTrigger.setRotationPoint(22F, 10F, 4F); - StockTrigger.setTextureSize(128, 64); - StockTrigger.mirror = true; - setRotation(StockTrigger, 0F, 0F, 0.7853982F); - Shape1 = new ModelRenderer(this, 42, 30); - Shape1.addBox(0F, -1F, -1F, 2, 5, 2); - Shape1.setRotationPoint(5.5F, 6F, 2.5F); - Shape1.setTextureSize(128, 64); - Shape1.mirror = true; - setRotation(Shape1, -0.7853982F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float rot) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - CoilFront.render(f5); - Panel1.render(f5); - Panel2.render(f5); - Panel3.render(f5); - CoilBack.render(f5); - SpinPivot.render(f5); - Barrel.render(f5); - CoilBarrel.render(f5); - PipeBarrel.render(f5); - PipeHolder.render(f5); - Rail1.render(f5); - Rail2.render(f5); - Rail3.render(f5); - Rail4.render(f5); - Rail5.render(f5); - Rail6.render(f5); - TankHolder.render(f5); - HandleBase.render(f5); - HandleShaft.render(f5); - HanldeGrip.render(f5); - SpinC1.rotateAngleX += rot; - SpinC2.rotateAngleX += rot; - SpinC3.rotateAngleX += rot; - SpinP1.rotateAngleX += rot; - SpinP2.rotateAngleX += rot; - SpinP3.rotateAngleX += rot; - SpinC1.render(f5); - SpinC2.render(f5); - SpinC3.render(f5); - SpinP1.render(f5); - SpinP2.render(f5); - SpinP3.render(f5); - Battery1.render(f5); - Battery2.render(f5); - StockBase.render(f5); - StockTrigger.render(f5); - Shape1.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/model/ModelZOMG.java b/src/main/java/com/hbm/render/model/ModelZOMG.java deleted file mode 100644 index 9d338ad96..000000000 --- a/src/main/java/com/hbm/render/model/ModelZOMG.java +++ /dev/null @@ -1,255 +0,0 @@ -// Date: 14.08.2016 18:55:34 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelZOMG extends ModelBase { - // fields - ModelRenderer Body; - ModelRenderer BodyFront; - ModelRenderer BodyFrontPlate; - ModelRenderer PipeLeft; - ModelRenderer PipeRight; - ModelRenderer PipeBottom; - ModelRenderer Head; - ModelRenderer HeadBottom; - ModelRenderer HeadBottomPlate; - ModelRenderer BodyTop; - ModelRenderer BodyCenter; - ModelRenderer BodyBack; - ModelRenderer BodyBackPlate; - ModelRenderer StockTop; - ModelRenderer StockBack; - ModelRenderer StockBackPlate; - ModelRenderer Handle; - ModelRenderer PistonBack; - ModelRenderer PistonFront; - ModelRenderer BarrelVertical; - ModelRenderer BarrelHorizontal; - ModelRenderer BarrelCenter; - ModelRenderer HandleBack; - ModelRenderer BarrelPipe; - ModelRenderer PistonPivot; - ModelRenderer Scope; - ModelRenderer ScopePivot; - - public ModelZOMG() { - textureWidth = 128; - textureHeight = 64; - - Body = new ModelRenderer(this, 0, 0); - Body.addBox(0F, 0F, 0F, 12, 5, 4); - Body.setRotationPoint(-6F, 0F, 0F); - Body.setTextureSize(128, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - BodyFront = new ModelRenderer(this, 32, 14); - BodyFront.addBox(0F, 0F, 0F, 1, 4, 4); - BodyFront.setRotationPoint(-7F, 0F, 0F); - BodyFront.setTextureSize(128, 64); - BodyFront.mirror = true; - setRotation(BodyFront, 0F, 0F, 0F); - BodyFrontPlate = new ModelRenderer(this, 46, 6); - BodyFrontPlate.addBox(-2F, -1F, 0F, 2, 1, 4); - BodyFrontPlate.setRotationPoint(-6F, 5F, 0F); - BodyFrontPlate.setTextureSize(128, 64); - BodyFrontPlate.mirror = true; - setRotation(BodyFrontPlate, 0F, 0F, 0.6981317F); - PipeLeft = new ModelRenderer(this, 0, 29); - PipeLeft.addBox(0F, 0F, 0F, 6, 1, 1); - PipeLeft.setRotationPoint(-13F, 0.5F, 0.5F); - PipeLeft.setTextureSize(128, 64); - PipeLeft.mirror = true; - setRotation(PipeLeft, 0F, 0F, 0F); - PipeRight = new ModelRenderer(this, 14, 29); - PipeRight.addBox(0F, 0F, 0F, 6, 1, 1); - PipeRight.setRotationPoint(-13F, 0.5F, 2.5F); - PipeRight.setTextureSize(128, 64); - PipeRight.mirror = true; - setRotation(PipeRight, 0F, 0F, 0F); - PipeBottom = new ModelRenderer(this, 14, 25); - PipeBottom.addBox(0F, 0F, 0F, 6, 2, 2); - PipeBottom.setRotationPoint(-13F, 2F, 1F); - PipeBottom.setTextureSize(128, 64); - PipeBottom.mirror = true; - setRotation(PipeBottom, 0F, 0F, 0F); - Head = new ModelRenderer(this, 32, 0); - Head.addBox(0F, 0F, 0F, 3, 4, 4); - Head.setRotationPoint(-16F, 0F, 0F); - Head.setTextureSize(128, 64); - Head.mirror = true; - setRotation(Head, 0F, 0F, 0F); - HeadBottom = new ModelRenderer(this, 46, 0); - HeadBottom.addBox(0F, 0F, 0F, 2, 2, 4); - HeadBottom.setRotationPoint(-15F, 4F, 0F); - HeadBottom.setTextureSize(128, 64); - HeadBottom.mirror = true; - setRotation(HeadBottom, 0F, 0F, 0F); - HeadBottomPlate = new ModelRenderer(this, 32, 8); - HeadBottomPlate.addBox(0F, 0F, 0F, 1, 2, 4); - HeadBottomPlate.setRotationPoint(-16F, 4F, 0F); - HeadBottomPlate.setTextureSize(128, 64); - HeadBottomPlate.mirror = true; - setRotation(HeadBottomPlate, 0F, 0F, -0.4363323F); - BodyTop = new ModelRenderer(this, 0, 17); - BodyTop.addBox(0F, 0F, 0F, 10, 1, 3); - BodyTop.setRotationPoint(-5F, -0.5F, 0.5F); - BodyTop.setTextureSize(128, 64); - BodyTop.mirror = true; - setRotation(BodyTop, 0F, 0F, 0F); - BodyCenter = new ModelRenderer(this, 0, 9); - BodyCenter.addBox(0F, 0F, 0F, 11, 3, 5); - BodyCenter.setRotationPoint(-5.5F, 1F, -0.5F); - BodyCenter.setTextureSize(128, 64); - BodyCenter.mirror = true; - setRotation(BodyCenter, 0F, 0F, 0F); - BodyBack = new ModelRenderer(this, 42, 11); - BodyBack.addBox(0F, 0F, 0F, 1, 3, 4); - BodyBack.setRotationPoint(6F, 2F, 0F); - BodyBack.setTextureSize(128, 64); - BodyBack.mirror = true; - setRotation(BodyBack, 0F, 0F, 0F); - BodyBackPlate = new ModelRenderer(this, 58, 0); - BodyBackPlate.addBox(-1F, -3F, 0F, 1, 4, 2); - BodyBackPlate.setRotationPoint(7F, 2F, 1F); - BodyBackPlate.setTextureSize(128, 64); - BodyBackPlate.mirror = true; - setRotation(BodyBackPlate, 0F, 0F, -0.4363323F); - StockTop = new ModelRenderer(this, 0, 21); - StockTop.addBox(0F, 0F, 0F, 8, 2, 2); - StockTop.setRotationPoint(7F, 3F, 1F); - StockTop.setTextureSize(128, 64); - StockTop.mirror = true; - setRotation(StockTop, 0F, 0F, 0F); - StockBack = new ModelRenderer(this, 20, 21); - StockBack.addBox(0F, 0F, 0F, 4, 2, 2); - StockBack.setRotationPoint(11F, 5F, 1F); - StockBack.setTextureSize(128, 64); - StockBack.mirror = true; - setRotation(StockBack, 0F, 0F, 0F); - StockBackPlate = new ModelRenderer(this, 0, 25); - StockBackPlate.addBox(-5F, -2F, 0F, 5, 2, 2); - StockBackPlate.setRotationPoint(11F, 7F, 1F); - StockBackPlate.setTextureSize(128, 64); - StockBackPlate.mirror = true; - setRotation(StockBackPlate, 0F, 0F, 0.418879F); - Handle = new ModelRenderer(this, 64, 8); - Handle.addBox(0F, 0F, 0F, 2, 4, 2); - Handle.setRotationPoint(-4F, 5F, 1F); - Handle.setTextureSize(128, 64); - Handle.mirror = true; - setRotation(Handle, 0F, 0F, 0F); - PistonBack = new ModelRenderer(this, 30, 26); - PistonBack.addBox(0F, -4F, 0F, 2, 4, 2); - PistonBack.setRotationPoint(1F, 4F, -0.5F); - PistonBack.setTextureSize(128, 64); - PistonBack.mirror = true; - setRotation(PistonBack, 0.7853982F, 0F, 0F); - PistonFront = new ModelRenderer(this, 52, 11); - PistonFront.addBox(0F, -4F, 0F, 2, 4, 2); - PistonFront.setRotationPoint(-3F, 4F, -0.5F); - PistonFront.setTextureSize(128, 64); - PistonFront.mirror = true; - setRotation(PistonFront, 0.7853982F, 0F, 0F); - BarrelVertical = new ModelRenderer(this, 38, 22); - BarrelVertical.addBox(0F, 0F, 0F, 8, 3, 2); - BarrelVertical.setRotationPoint(-4F, 1F, 5F); - BarrelVertical.setTextureSize(128, 64); - BarrelVertical.mirror = true; - setRotation(BarrelVertical, 0F, 0F, 0F); - BarrelHorizontal = new ModelRenderer(this, 38, 27); - BarrelHorizontal.addBox(0F, 0F, 0F, 8, 2, 3); - BarrelHorizontal.setRotationPoint(-4F, 1.5F, 4.5F); - BarrelHorizontal.setTextureSize(128, 64); - BarrelHorizontal.mirror = true; - setRotation(BarrelHorizontal, 0F, 0F, 0F); - BarrelCenter = new ModelRenderer(this, 64, 0); - BarrelCenter.addBox(0F, 0F, 0F, 10, 2, 2); - BarrelCenter.setRotationPoint(-5F, 1.5F, 5F); - BarrelCenter.setTextureSize(128, 64); - BarrelCenter.mirror = true; - setRotation(BarrelCenter, 0F, 0F, 0F); - HandleBack = new ModelRenderer(this, 60, 8); - HandleBack.addBox(0F, 0F, 0F, 1, 4, 1); - HandleBack.setRotationPoint(-2.5F, 5F, 1.5F); - HandleBack.setTextureSize(128, 64); - HandleBack.mirror = true; - setRotation(HandleBack, 0F, 0F, 0F); - BarrelPipe = new ModelRenderer(this, 64, 4); - BarrelPipe.addBox(-10F, 0F, -1F, 10, 1, 1); - BarrelPipe.setRotationPoint(-5F, 2F, 6.5F); - BarrelPipe.setTextureSize(128, 64); - BarrelPipe.mirror = true; - setRotation(BarrelPipe, 0F, -0.2602503F, 0F); - PistonPivot = new ModelRenderer(this, 60, 14); - PistonPivot.addBox(0F, -2F, 0.5F, 7, 2, 1); - PistonPivot.setRotationPoint(-3.5F, 4F, -0.5F); - PistonPivot.setTextureSize(128, 64); - PistonPivot.mirror = true; - setRotation(PistonPivot, 0.7853982F, 0F, 0F); - Scope = new ModelRenderer(this, 48, 18); - Scope.addBox(0F, 0F, 0F, 6, 2, 2); - Scope.setRotationPoint(-3F, -3F, 1F); - Scope.setTextureSize(128, 64); - Scope.mirror = true; - setRotation(Scope, 0F, 0F, 0F); - ScopePivot = new ModelRenderer(this, 58, 6); - ScopePivot.addBox(0F, 0F, 0F, 4, 1, 1); - ScopePivot.setRotationPoint(-2F, -1F, 1.5F); - ScopePivot.setTextureSize(128, 64); - ScopePivot.mirror = true; - setRotation(ScopePivot, 0F, 0F, 0F); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Body.render(f5); - BodyFront.render(f5); - BodyFrontPlate.render(f5); - PipeLeft.render(f5); - PipeRight.render(f5); - PipeBottom.render(f5); - Head.render(f5); - HeadBottom.render(f5); - HeadBottomPlate.render(f5); - BodyTop.render(f5); - BodyCenter.render(f5); - BodyBack.render(f5); - BodyBackPlate.render(f5); - StockTop.render(f5); - StockBack.render(f5); - StockBackPlate.render(f5); - Handle.render(f5); - PistonBack.render(f5); - PistonFront.render(f5); - BarrelVertical.render(f5); - BarrelHorizontal.render(f5); - BarrelCenter.render(f5); - HandleBack.render(f5); - BarrelPipe.render(f5); - PistonPivot.render(f5); - Scope.render(f5); - ScopePivot.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAMSBase.java b/src/main/java/com/hbm/render/tileentity/RenderAMSBase.java deleted file mode 100644 index f98abf111..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderAMSBase.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityAMSBase; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderAMSBase extends TileEntitySpecialRenderer { - - public RenderAMSBase() { } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - - bindTexture(ResourceManager.ams_base_tex); - - ResourceManager.ams_base.renderAll(); - - GL11.glPopMatrix(); - - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity; - if(base.color > -1) - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y + 5.5, z + 0.5D); - //GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - - int rot = (int) ((System.nanoTime()/100000000)%360) * 3; - - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity; - - double maxSize = 5; - double minSize = 0.5; - double scale = minSize; - scale += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - GL11.glScaled(scale, scale, scale); - - //bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/EMPBlast.png")); - GL11.glDisable(GL11.GL_TEXTURE_2D); - - GL11.glRotatef(rot, 0F, 1F, 0F); - GL11.glScalef(1.1F, 1.1F, 1.1F); - GL11.glColor3ub((byte)(0x20), (byte)(0x20), (byte)(0x40)); - ResourceManager.sphere_iuv.renderAll(); - GL11.glScalef(1/1.1F, 1/1.1F, 1/1.1F); - - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - - renderTileEntityAt3(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt3(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y + 5.5, z + 0.5D); - //GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity; - - double maxSize = 5; - double minSize = 0.5; - double scale = minSize; - scale += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - GL11.glScaled(scale, scale, scale); - - GL11.glColor3ub((byte)((base.color & 0xFF0000) >> 16), (byte)((base.color & 0x00FF00) >> 8), (byte)((base.color & 0x0000FF) >> 0)); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - - int rot = (int) ((System.nanoTime()/100000000)%360) * 3; - - GL11.glRotatef(rot, 0F, 1F, 0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.5F, 1/0.5F, 1/0.5F); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - - GL11.glRotatef(-rot * 2, 0F, 1F, 0F); - GL11.glScalef(0.6F, 0.6F, 0.6F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.6F, 1/0.6F, 1/0.6F); - - GL11.glRotatef(rot * 2, 0F, 1F, 0F); - GL11.glScalef(0.7F, 0.7F, 0.7F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.7F, 1/0.7F, 1/0.7F); - - GL11.glRotatef(-rot * 2, 0F, 1F, 0F); - GL11.glScalef(0.8F, 0.8F, 0.8F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.8F, 1/0.8F, 1/0.8F); - - GL11.glRotatef(rot * 2, 0F, 1F, 0F); - GL11.glScalef(0.9F, 0.9F, 0.9F); - ResourceManager.sphere_ruv.renderAll(); - GL11.glScalef(1/0.9F, 1/0.9F, 1/0.9F); - - GL11.glRotatef(-rot * 2, 0F, 1F, 0F); - ResourceManager.sphere_ruv.renderAll(); - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAMSEmitter.java b/src/main/java/com/hbm/render/tileentity/RenderAMSEmitter.java deleted file mode 100644 index 0454f808d..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderAMSEmitter.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.hbm.render.tileentity; - -import java.util.Random; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderAMSEmitter extends TileEntitySpecialRenderer { - - public RenderAMSEmitter() { } - Random rand = new Random(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - - - if(((TileEntityAMSEmitter)tileEntity).locked) - bindTexture(ResourceManager.ams_destroyed_tex); - else - bindTexture(ResourceManager.ams_emitter_tex); - - if(((TileEntityAMSEmitter)tileEntity).locked) - ResourceManager.ams_emitter_destroyed.renderAll(); - else - ResourceManager.ams_emitter.renderAll(); - - GL11.glPopMatrix(); - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - float radius = 0.04F; - int distance = 1; - int layers = 3; - Tessellator tessellator = Tessellator.instance; - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glTranslatef((float) x + 0.5F, (float) y - 7, (float) z + 0.5F); - - TileEntityAMSEmitter emitter = (TileEntityAMSEmitter)tileEntity; - - if(emitter.getWorldObj().getTileEntity(emitter.xCoord, emitter.yCoord - 9, emitter.zCoord) instanceof TileEntityAMSBase && !emitter.locked || true) { - - if(emitter.efficiency > 0 || true) { - - double lastPosX = 0; - double lastPosZ = 0; - - for(int i = 7; i > 0; i -= distance) { - - double posX = rand.nextDouble() - 0.5; - double posZ = rand.nextDouble() - 0.5; - - for(int j = 1; j <= layers; j++) { - - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 0.5F, 0, 1f); - tessellator.addVertex(lastPosX + (radius * j), i, lastPosZ + (radius * j)); - tessellator.addVertex(lastPosX + (radius * j), i, lastPosZ - (radius * j)); - tessellator.addVertex(posX + (radius * j), i - distance, posZ - (radius * j)); - tessellator.addVertex(posX + (radius * j), i - distance, posZ + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 0.5F, 0, 1f); - tessellator.addVertex(lastPosX - (radius * j), i, lastPosZ + (radius * j)); - tessellator.addVertex(lastPosX - (radius * j), i, lastPosZ - (radius * j)); - tessellator.addVertex(posX - (radius * j), i - distance, posZ - (radius * j)); - tessellator.addVertex(posX - (radius * j), i - distance, posZ + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 0.5F, 0, 1f); - tessellator.addVertex(lastPosX + (radius * j), i, lastPosZ + (radius * j)); - tessellator.addVertex(lastPosX - (radius * j), i, lastPosZ + (radius * j)); - tessellator.addVertex(posX - (radius * j), i - distance, posZ + (radius * j)); - tessellator.addVertex(posX + (radius * j), i - distance, posZ + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 0.5F, 0, 1f); - tessellator.addVertex(lastPosX + (radius * j), i, lastPosZ - (radius * j)); - tessellator.addVertex(lastPosX - (radius * j), i, lastPosZ - (radius * j)); - tessellator.addVertex(posX - (radius * j), i - distance, posZ - (radius * j)); - tessellator.addVertex(posX + (radius * j), i - distance, posZ - (radius * j)); - tessellator.draw(); - } - - lastPosX = posX; - lastPosZ = posZ; - } - } - - for(int j = 1; j <= 2; j++) { - - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 1, 0, 1f); - tessellator.addVertex(0 + (radius * j), 7, 0 + (radius * j)); - tessellator.addVertex(0 + (radius * j), 7, 0 - (radius * j)); - tessellator.addVertex(0 + (radius * j), 0, 0 - (radius * j)); - tessellator.addVertex(0 + (radius * j), 0, 0 + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 1, 0, 1f); - tessellator.addVertex(0 - (radius * j), 7, 0 + (radius * j)); - tessellator.addVertex(0 - (radius * j), 7, 0 - (radius * j)); - tessellator.addVertex(0 - (radius * j), 0, 0 - (radius * j)); - tessellator.addVertex(0 - (radius * j), 0, 0 + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 1, 0, 1f); - tessellator.addVertex(0 + (radius * j), 7, 0 + (radius * j)); - tessellator.addVertex(0 - (radius * j), 7, 0 + (radius * j)); - tessellator.addVertex(0 - (radius * j), 0, 0 + (radius * j)); - tessellator.addVertex(0 + (radius * j), 0, 0 + (radius * j)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(1, 1, 0, 1f); - tessellator.addVertex(0 + (radius * j), 7, 0 - (radius * j)); - tessellator.addVertex(0 - (radius * j), 7, 0 - (radius * j)); - tessellator.addVertex(0 - (radius * j), 0, 0 - (radius * j)); - tessellator.addVertex(0 + (radius * j), 0, 0 - (radius * j)); - tessellator.draw(); - } - } - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAMSLimiter.java b/src/main/java/com/hbm/render/tileentity/RenderAMSLimiter.java deleted file mode 100644 index 8d3abdd52..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderAMSLimiter.java +++ /dev/null @@ -1,297 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderAMSLimiter extends TileEntitySpecialRenderer { - - public RenderAMSLimiter() { } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(-90, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - if(((TileEntityAMSLimiter)tileEntity).locked) - bindTexture(ResourceManager.ams_destroyed_tex); - else - bindTexture(ResourceManager.ams_limiter_tex); - - if(((TileEntityAMSLimiter)tileEntity).locked) - ResourceManager.ams_limiter_destroyed.renderAll(); - else - ResourceManager.ams_limiter.renderAll(); - - GL11.glPopMatrix(); - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(-90, 0F, 1F, 0F); - - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - // bindTexture(ResourceManager.universal); - - TileEntityAMSLimiter limiter = (TileEntityAMSLimiter)tileEntity; - - int meta = tileEntity.getBlockMetadata(); - boolean flag = false; - double maxSize = 5; - double minSize = 0.5; - if(meta == 2 && tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord - 6) instanceof TileEntityAMSBase && !limiter.locked) { - flag = true; - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord - 6); - maxSize += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - } - if(meta == 3 && tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord + 6) instanceof TileEntityAMSBase && !limiter.locked) { - flag = true; - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord + 6); - maxSize += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - } - if(meta == 4 && tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord - 6, tileEntity.yCoord, tileEntity.zCoord) instanceof TileEntityAMSBase && !limiter.locked) { - flag = true; - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord - 6, tileEntity.yCoord, tileEntity.zCoord); - maxSize += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - } - if(meta == 5 && tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord + 6, tileEntity.yCoord, tileEntity.zCoord) instanceof TileEntityAMSBase && !limiter.locked) { - flag = true; - TileEntityAMSBase base = (TileEntityAMSBase)tileEntity.getWorldObj().getTileEntity(tileEntity.xCoord + 6, tileEntity.yCoord, tileEntity.zCoord); - maxSize += ((((double)base.tanks[2].getFill()) / ((double)base.tanks[2].getMaxFill())) + (((double)base.tanks[3].getFill()) / ((double)base.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2); - } - - if(flag) { - - GL11.glRotatef(-90, 0F, 1F, 0F); - - double posX = 0; - double posY = 0; - double posZ = 0; - double length = 4; - double radius = 0.12; - GL11.glTranslated(2.5, 5.5, 0); - - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ - radius); - tessellator.addVertex(posX + length, posY - radius, posZ + radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY - radius, posZ + radius); - tessellator.addVertex(posX, posY - radius, posZ - radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY + radius, posZ + radius); - tessellator.addVertex(posX + length, posY + radius, posZ - radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ - radius); - tessellator.addVertex(posX, posY + radius, posZ + radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ - radius); - tessellator.addVertex(posX + length, posY + radius, posZ - radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ - radius); - tessellator.addVertex(posX, posY - radius, posZ - radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ + radius); - tessellator.addVertex(posX + length, posY + radius, posZ + radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ + radius); - tessellator.addVertex(posX, posY - radius, posZ + radius); - tessellator.draw(); - - if(limiter.efficiency > 0) { - - radius *= 2; - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDepthMask(false); - tessellator.startDrawingQuads(); - //tessellator.setColorRGBA_F(0.494F, 0.8F, 0.796F, 0f); - //tessellator.setColorRGBA_F(0, 0.627F, 0.627F, 0f); - //tessellator.setColorRGBA_F(0, 0.765F, 0.765F, 0f); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ - radius); - tessellator.addVertex(posX + length, posY - radius, posZ + radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY - radius, posZ + radius); - tessellator.addVertex(posX, posY - radius, posZ - radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY + radius, posZ + radius); - tessellator.addVertex(posX + length, posY + radius, posZ - radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ - radius); - tessellator.addVertex(posX, posY + radius, posZ + radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ - radius); - tessellator.addVertex(posX + length, posY + radius, posZ - radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ - radius); - tessellator.addVertex(posX, posY - radius, posZ - radius); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 0f); - tessellator.addVertex(posX + length, posY - radius, posZ + radius); - tessellator.addVertex(posX + length, posY + radius, posZ + radius); - tessellator.setColorRGBA_F(0.408F - 0.175F, 0.686F - 0.175F, 0.686F - 0.175F, 1); - tessellator.addVertex(posX, posY + radius, posZ + radius); - tessellator.addVertex(posX, posY - radius, posZ + radius); - tessellator.draw(); - - /*double iRadiusB = 0.3; - double oRadiusB = 2; - double iRadiusS = iRadiusB * 0.75; - double oRadiusS = oRadiusB * 0.60; - double bLength = rad; - - int rot = (int) ((System.nanoTime()/100000000)%360) * 3; - - GL11.glRotatef(rot, 1F, 0F, 0F); - - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0, 0, 1F, 0f); - tessellator.addVertex(posX + bLength, posY - oRadiusB, posZ - oRadiusS); - tessellator.addVertex(posX + bLength, posY - oRadiusB, posZ + oRadiusS); - tessellator.setColorRGBA_F(0, 0, 1F, 1f); - tessellator.addVertex(posX, posY - iRadiusB, posZ + iRadiusS); - tessellator.addVertex(posX, posY - iRadiusB, posZ - iRadiusS); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0, 0, 1F, 0f); - tessellator.addVertex(posX + bLength, posY + oRadiusB, posZ - oRadiusS); - tessellator.addVertex(posX + bLength, posY + oRadiusB, posZ + oRadiusS); - tessellator.setColorRGBA_F(0, 0, 1F, 1f); - tessellator.addVertex(posX, posY + iRadiusB, posZ + iRadiusS); - tessellator.addVertex(posX, posY + iRadiusB, posZ - iRadiusS); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0, 0, 1F, 0f); - tessellator.addVertex(posX + bLength, posY - oRadiusS, posZ - oRadiusB); - tessellator.addVertex(posX + bLength, posY + oRadiusS, posZ - oRadiusB); - tessellator.setColorRGBA_F(0, 0, 1F, 1f); - tessellator.addVertex(posX, posY + iRadiusS, posZ - iRadiusB); - tessellator.addVertex(posX, posY - iRadiusS, posZ - iRadiusB); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0, 0, 1F, 0f); - tessellator.addVertex(posX + bLength, posY - oRadiusS, posZ + oRadiusB); - tessellator.addVertex(posX + bLength, posY + oRadiusS, posZ + oRadiusB); - tessellator.setColorRGBA_F(0, 0, 1F, 1f); - tessellator.addVertex(posX, posY + iRadiusS, posZ + iRadiusB); - tessellator.addVertex(posX, posY - iRadiusS, posZ + iRadiusB); - tessellator.draw(); - - iRadiusB *= 0.60; - oRadiusB *= 0.60; - iRadiusS = iRadiusB * 0.75; - oRadiusS = oRadiusB * 0.60; - bLength = 2.5; - - GL11.glRotatef(-2 * rot, 1F, 0F, 0F); - - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.25F, 0.25F, 1F, 1f); - tessellator.addVertex(posX + bLength, posY - oRadiusB, posZ - oRadiusS); - tessellator.addVertex(posX + bLength, posY - oRadiusB, posZ + oRadiusS); - tessellator.addVertex(posX, posY - iRadiusB, posZ + iRadiusS); - tessellator.addVertex(posX, posY - iRadiusB, posZ - iRadiusS); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.25F, 0.25F, 1F, 1f); - tessellator.addVertex(posX + bLength, posY + oRadiusB, posZ - oRadiusS); - tessellator.addVertex(posX + bLength, posY + oRadiusB, posZ + oRadiusS); - tessellator.addVertex(posX, posY + iRadiusB, posZ + iRadiusS); - tessellator.addVertex(posX, posY + iRadiusB, posZ - iRadiusS); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.25F, 0.25F, 1F, 1f); - tessellator.addVertex(posX + bLength, posY - oRadiusS, posZ - oRadiusB); - tessellator.addVertex(posX + bLength, posY + oRadiusS, posZ - oRadiusB); - tessellator.addVertex(posX, posY + iRadiusS, posZ - iRadiusB); - tessellator.addVertex(posX, posY - iRadiusS, posZ - iRadiusB); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F(0.25F, 0.25F, 1F, 1f); - tessellator.addVertex(posX + bLength, posY - oRadiusS, posZ + oRadiusB); - tessellator.addVertex(posX + bLength, posY + oRadiusS, posZ + oRadiusB); - tessellator.addVertex(posX, posY + iRadiusS, posZ + iRadiusB); - tessellator.addVertex(posX, posY - iRadiusS, posZ + iRadiusB); - tessellator.draw();*/ - } - - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glShadeModel(GL11.GL_FLAT); - RenderHelper.enableStandardItemLighting(); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(GL11.GL_TEXTURE_2D); - } - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAmmoPress.java b/src/main/java/com/hbm/render/tileentity/RenderAmmoPress.java new file mode 100644 index 000000000..3eb232496 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderAmmoPress.java @@ -0,0 +1,75 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineAmmoPress; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderAmmoPress extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + TileEntityMachineAmmoPress tile = (TileEntityMachineAmmoPress) tileEntity; + + 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; + } + + float press = tile.prevPress + (tile.press - tile.prevPress) * f; + float lift = tile.prevLift + (tile.lift - tile.prevLift) * f; + + bindTexture(ResourceManager.ammo_press_tex); + ResourceManager.ammo_press.renderPart("Frame"); + + GL11.glPushMatrix(); + GL11.glTranslatef(0, -press * 0.25F, 0); + ResourceManager.ammo_press.renderPart("Press"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslatef(0, lift * 0.5F - 0.5F, 0); + ResourceManager.ammo_press.renderPart("Shells"); + if(tile.animState == tile.animState.RETRACTING || tile.animState == tile.animState.LOWERING) ResourceManager.ammo_press.renderPart("Bullets"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_ammo_press); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2.5, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + bindTexture(ResourceManager.ammo_press_tex); + ResourceManager.ammo_press.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderArcFurnace.java b/src/main/java/com/hbm/render/tileentity/RenderArcFurnace.java new file mode 100644 index 000000000..362522f2f --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderArcFurnace.java @@ -0,0 +1,148 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderArcFurnace extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - 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; + } + + TileEntityMachineArcFurnaceLarge arc = (TileEntityMachineArcFurnaceLarge) tile; + float lift = arc.prevLid + (arc.lid - arc.prevLid) * interp; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.arc_furnace_tex); + ResourceManager.arc_furnace.renderPart("Furnace"); + + if(!arc.liquids.isEmpty()) { + fullbright(true); + GL11.glTranslated(0, -1.75 + arc.getStackAmount(arc.liquids) * 1.75 / arc.maxLiquid, 0); + ResourceManager.arc_furnace.renderPart("ContentsHot"); + fullbright(false); + } else if(arc.hasMaterial) { + ResourceManager.arc_furnace.renderPart("ContentsCold"); + } + + GL11.glTranslated(0, 2 * lift, 0); + if(arc.isProgressing) GL11.glTranslated(0, 0, Math.sin((arc.getWorldObj().getTotalWorldTime() + interp)) * 0.005); + ResourceManager.arc_furnace.renderPart("Lid"); + if(arc.electrodes[0] != arc.ELECTRODE_NONE) ResourceManager.arc_furnace.renderPart("Ring1"); + if(arc.electrodes[1] != arc.ELECTRODE_NONE) ResourceManager.arc_furnace.renderPart("Ring2"); + if(arc.electrodes[2] != arc.ELECTRODE_NONE) ResourceManager.arc_furnace.renderPart("Ring3"); + if(arc.electrodes[0] == arc.ELECTRODE_FRESH) ResourceManager.arc_furnace.renderPart("Electrode1"); + if(arc.electrodes[1] == arc.ELECTRODE_FRESH) ResourceManager.arc_furnace.renderPart("Electrode2"); + if(arc.electrodes[2] == arc.ELECTRODE_FRESH) ResourceManager.arc_furnace.renderPart("Electrode3"); + fullbright(true); + if(arc.electrodes[0] == arc.ELECTRODE_USED) ResourceManager.arc_furnace.renderPart("Electrode1Hot"); + if(arc.electrodes[1] == arc.ELECTRODE_USED) ResourceManager.arc_furnace.renderPart("Electrode2Hot"); + if(arc.electrodes[2] == arc.ELECTRODE_USED) ResourceManager.arc_furnace.renderPart("Electrode3Hot"); + if(arc.electrodes[0] == arc.ELECTRODE_DEPLETED) ResourceManager.arc_furnace.renderPart("Electrode1Short"); + if(arc.electrodes[1] == arc.ELECTRODE_DEPLETED) ResourceManager.arc_furnace.renderPart("Electrode2Short"); + if(arc.electrodes[2] == arc.ELECTRODE_DEPLETED) ResourceManager.arc_furnace.renderPart("Electrode3Short"); + fullbright(false); + + if(arc.electrodes[0] != arc.ELECTRODE_NONE) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 5.5, 0.5); + if(arc.isProgressing) GL11.glRotated(Math.sin((arc.getWorldObj().getTotalWorldTime() + interp) / 2) * 30, 1, 0, 0); + GL11.glTranslated(0, -5.5, -0.5); + ResourceManager.arc_furnace.renderPart("Cable1"); + GL11.glPopMatrix(); + } + if(arc.electrodes[1] != arc.ELECTRODE_NONE) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 5.5, 0); + if(arc.isProgressing) GL11.glRotated(Math.sin((arc.getWorldObj().getTotalWorldTime() + interp) / 2) * 30, 1, 0, 0); + GL11.glTranslated(0, -5.5, 0); + ResourceManager.arc_furnace.renderPart("Cable2"); + GL11.glPopMatrix(); + } + if(arc.electrodes[2] != arc.ELECTRODE_NONE) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 5.5, -0.5); + if(arc.isProgressing) GL11.glRotated(Math.sin((arc.getWorldObj().getTotalWorldTime() + interp) / 2) * 30, 1, 0, 0); + GL11.glTranslated(0, -5.5, 0.5); + ResourceManager.arc_furnace.renderPart("Cable3"); + GL11.glPopMatrix(); + } + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + private static float lastX; + private static float lastY; + + public static void fullbright(boolean on) { + + if(on) { + lastX = OpenGlHelper.lastBrightnessX; + lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + } else { + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_arc_furnace); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(3.5, 3.5, 3.5); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.arc_furnace_tex); + ResourceManager.arc_furnace.renderPart("Furnace"); + ResourceManager.arc_furnace.renderPart("Lid"); + ResourceManager.arc_furnace.renderPart("Ring1"); + ResourceManager.arc_furnace.renderPart("Ring2"); + ResourceManager.arc_furnace.renderPart("Ring3"); + ResourceManager.arc_furnace.renderPart("Electrode1"); + ResourceManager.arc_furnace.renderPart("Electrode2"); + ResourceManager.arc_furnace.renderPart("Electrode3"); + ResourceManager.arc_furnace.renderPart("Cable1"); + ResourceManager.arc_furnace.renderPart("Cable2"); + ResourceManager.arc_furnace.renderPart("Cable3"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java b/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java new file mode 100644 index 000000000..e87c1d7e4 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java @@ -0,0 +1,86 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.RenderDecoItem; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderArcWelder extends TileEntitySpecialRenderer implements IItemRendererProvider { + + private RenderItem itemRenderer = new RenderDecoItem(this); + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - 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; + } + + GL11.glTranslated(-0.5, 0, 0); + + bindTexture(ResourceManager.arc_welder_tex); + ResourceManager.arc_welder.renderAll(); + + TileEntityMachineArcWelder welder = (TileEntityMachineArcWelder) tile; + if(welder.display != null) { + GL11.glPushMatrix(); + GL11.glTranslated(0.0625D * 2.5D, 1.125D, 0D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glRotatef(-90, 1F, 0F, 0F); + + if(welder.display != null) { + ItemStack stack = welder.display.copy(); + + EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); + item.getEntityItem().stackSize = 1; + item.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + GL11.glScaled(1.5, 1.5, 1.5); + this.itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + } + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_arc_welder); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(4, 4, 4); + } + public void renderCommon() { + bindTexture(ResourceManager.arc_welder_tex); + ResourceManager.arc_welder.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAshpit.java b/src/main/java/com/hbm/render/tileentity/RenderAshpit.java new file mode 100644 index 000000000..cfee40260 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderAshpit.java @@ -0,0 +1,71 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderAshpit extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + GL11.glRotatef(-90, 0F, 1F, 0F); + + TileEntityAshpit oven = (TileEntityAshpit) tile; + + bindTexture(ResourceManager.ashpit_tex); + ResourceManager.heater_oven.renderPart("Main"); + + GL11.glPushMatrix(); + float door = oven.prevDoorAngle + (oven.doorAngle - oven.prevDoorAngle) * interp; + GL11.glTranslated(0, 0, door * 0.75D / 135D); + ResourceManager.heater_oven.renderPart("Door"); + GL11.glPopMatrix(); + + if(oven.isFull) { + ResourceManager.heater_oven.renderPart("InnerBurning"); + } else { + ResourceManager.heater_oven.renderPart("Inner"); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_ashpit); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -1, 0); + GL11.glScaled(3.25, 3.25, 3.25); + } + public void renderCommon() { + bindTexture(ResourceManager.ashpit_tex); + ResourceManager.heater_oven.renderPart("Main"); + ResourceManager.heater_oven.renderPart("Door"); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAssembler.java b/src/main/java/com/hbm/render/tileentity/RenderAssembler.java index b03698a8b..7f9436fd9 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderAssembler.java +++ b/src/main/java/com/hbm/render/tileentity/RenderAssembler.java @@ -33,16 +33,16 @@ public class RenderAssembler extends TileEntitySpecialRenderer { GL11.glRotatef(180, 0F, 1F, 0F); switch(tileEntity.getBlockMetadata()) { - case 2: + case 14: GL11.glRotatef(180, 0F, 1F, 0F); GL11.glTranslated(0.5D, 0.0D, -0.5D); break; - case 4: + case 13: GL11.glRotatef(270, 0F, 1F, 0F); GL11.glTranslated(0.5D, 0.0D, -0.5D); break; - case 3: + case 15: GL11.glRotatef(0, 0F, 1F, 0F); GL11.glTranslated(0.5D, 0.0D, -0.5D); break; - case 5: + case 12: GL11.glRotatef(90, 0F, 1F, 0F); GL11.glTranslated(0.5D, 0.0D, -0.5D); break; } @@ -99,15 +99,15 @@ public class RenderAssembler extends TileEntitySpecialRenderer { GL11.glRotatef(180, 0F, 1F, 0F); switch(tileEntity.getBlockMetadata()) { - case 2: + case 14: GL11.glTranslated(-1, 0, 0); GL11.glRotatef(180, 0F, 1F, 0F); break; - case 4: + case 13: GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: + case 15: GL11.glTranslated(0, 0, -1); GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: + case 12: GL11.glTranslated(-1, 0, -1); GL11.glRotatef(90, 0F, 1F, 0F); break; } @@ -150,15 +150,15 @@ public class RenderAssembler extends TileEntitySpecialRenderer { GL11.glRotatef(180, 0F, 1F, 0F); switch(tileEntity.getBlockMetadata()) { - case 2: + case 14: GL11.glTranslated(-1, 0, 0); GL11.glRotatef(180, 0F, 1F, 0F); break; - case 4: + case 13: GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: + case 15: GL11.glTranslated(0, 0, -1); GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: + case 12: GL11.glTranslated(-1, 0, -1); GL11.glRotatef(90, 0F, 1F, 0F); break; } diff --git a/src/main/java/com/hbm/render/tileentity/RenderBobble.java b/src/main/java/com/hbm/render/tileentity/RenderBobble.java index 649bd7ce5..d5039e39b 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBobble.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBobble.java @@ -8,7 +8,6 @@ import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.render.model.ModelUboinik; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -30,6 +29,8 @@ public class RenderBobble extends TileEntitySpecialRenderer { public static final IModelCustom bobble = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/bobble.obj")); public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/socket.png"); + public static final ResourceLocation glow = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/glow.png"); + public static final ResourceLocation lamp = new ResourceLocation(RefStrings.MODID, "textures/blocks/fluorescent_lamp.png"); public static final ResourceLocation bobble_vaultboy = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/vaultboy.png"); public static final ResourceLocation bobble_hbm = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/hbm.png"); @@ -46,6 +47,8 @@ public class RenderBobble extends TileEntitySpecialRenderer { public static final ResourceLocation bobble_drillgon = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/drillgon200.png"); public static final ResourceLocation bobble_cirno = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/cirno.png"); public static final ResourceLocation bobble_microwave = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/microwave.png"); + public static final ResourceLocation bobble_peep = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/peep.png"); + public static final ResourceLocation bobble_mellow = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/mellowrpg8.png"); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float intero) { @@ -95,7 +98,9 @@ public class RenderBobble extends TileEntitySpecialRenderer { case VAER: bindTexture(bobble_vaer); break; case NOS: bindTexture(bobble_nos); break; case DRILLGON: bindTexture(bobble_drillgon); break; - case MICROWAVE: bindTexture(bobble_microwave); break; + case MICROWAVE: bindTexture(bobble_microwave); break; + case PEEP: bindTexture(bobble_peep); break; + case MELLOW: bindTexture(bobble_mellow); break; default: bindTexture(ResourceManager.universal); } @@ -200,6 +205,16 @@ public class RenderBobble extends TileEntitySpecialRenderer { rotLeftArm = new double[]{0, -5, 45}; rotRightArm = new double[]{0, 15, 45}; break; + case PEEP: + rotLeftArm = new double[]{0, 0, 1}; + rotRightArm = new double[]{0, 0, 1}; + break; + case MELLOW: + rotLeftArm = new double[]{0, 10, 0}; + rotRightArm = new double[]{0, -10, 0}; + rotLeftLeg = new double[]{3, 5, 2}; + rotRightLeg = new double[]{-3, -5, 0}; + break; } } @@ -211,6 +226,8 @@ public class RenderBobble extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glRotated(rotBody, 0, 1, 0); + if(type == BobbleType.PEEP) bobble.renderPart("PeepTail"); + GL11.glDisable(GL11.GL_CULL_FACE); String suffix = type.skinLayers ? "" : "17"; @@ -280,9 +297,9 @@ public class RenderBobble extends TileEntitySpecialRenderer { GL11.glTranslated(0, -1.75, 0); bobble.renderPart("Head" + suffix); - - if(type == BobbleType.VT) - bobble.renderPart("Horn"); + + if(type == BobbleType.VT) bobble.renderPart("Horn"); + if(type == BobbleType.PEEP) bobble.renderPart("PeepHat"); if(type == BobbleType.VAER) { GL11.glTranslated(0.25, 1.9, 0.075); @@ -362,7 +379,6 @@ public class RenderBobble extends TileEntitySpecialRenderer { bobble.renderPart("Drillgon"); } - private ModelUboinik shotgun = new ModelUboinik(); private ResourceLocation shot_tex = new ResourceLocation(RefStrings.MODID +":textures/models/ModelUboinik.png"); /* @@ -397,9 +413,9 @@ public class RenderBobble extends TileEntitySpecialRenderer { renderItem(new ItemStack(ModItems.coin_maskman, 1, 5)); break; case ADAM29: - GL11.glTranslated(0.45, 1.15, 0.4); + GL11.glTranslated(0.4, 1.15, 0.4); GL11.glScaled(0.5, 0.5, 0.5); - renderItem(new ItemStack(ModItems.coffee)); + renderItem(new ItemStack(ModItems.can_redbomb)); break; case PHEO: GL11.glTranslated(0.5, 1.15, 0.45); @@ -433,7 +449,21 @@ public class RenderBobble extends TileEntitySpecialRenderer { GL11.glRotated(-60, 0, 1, 0); GL11.glTranslated(-0.2, 0, 0); GL11.glScaled(0.5, 0.5, 0.5); - shotgun.renderDud(0.0625F); + //shotgun.renderDud(0.0625F); + break; + case MELLOW: + GL11.glEnable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + this.bindTexture(lamp); + bobble.renderPart("Fluoro"); + this.bindTexture(glow); + bobble.renderPart("Glow"); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopAttrib(); break; } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderChimneyBrick.java b/src/main/java/com/hbm/render/tileentity/RenderChimneyBrick.java new file mode 100644 index 000000000..bbab3e1ad --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderChimneyBrick.java @@ -0,0 +1,56 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderChimneyBrick extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @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.glRotatef(180, 0F, 1F, 0F); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_brick_tex); + ResourceManager.chimney_brick.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.chimney_brick); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(2.25, 2.25, 2.25); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_brick_tex); + ResourceManager.chimney_brick.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java b/src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java new file mode 100644 index 000000000..b29da43dd --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java @@ -0,0 +1,56 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderChimneyIndustrial extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @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.glRotatef(180, 0F, 1F, 0F); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_industrial_tex); + ResourceManager.chimney_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.chimney_industrial); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(2.75, 2.75, 2.75); + } + public void renderCommon() { + GL11.glScaled(0.25, 0.25, 0.25); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_industrial_tex); + ResourceManager.chimney_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderCondenser.java b/src/main/java/com/hbm/render/tileentity/RenderCondenser.java new file mode 100644 index 000000000..40af1e6dc --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderCondenser.java @@ -0,0 +1,81 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityCondenserPowered; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderCondenser extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @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() - 10) { + 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; + } + + TileEntityCondenserPowered condenser = (TileEntityCondenserPowered) tileEntity; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.condenser_tex); + ResourceManager.condenser.renderPart("Condenser"); + + float rot = condenser.lastSpin + (condenser.spin - condenser.lastSpin) * f; + + GL11.glPushMatrix(); + GL11.glTranslated(0,1.5, 0); + GL11.glRotatef(rot, 1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.condenser.renderPart("Fan1"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0,1.5, 0); + GL11.glRotatef(rot, -1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.condenser.renderPart("Fan2"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_condenser_powered); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(-1, -1, 0); + GL11.glScaled(2.75, 2.75, 2.75); + } + public void renderCommon() { + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glTranslated(0.5, 0, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.condenser_tex); ResourceManager.condenser.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderConnector.java b/src/main/java/com/hbm/render/tileentity/RenderConnector.java index bbd6b0c5e..64a3eb44e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderConnector.java +++ b/src/main/java/com/hbm/render/tileentity/RenderConnector.java @@ -12,6 +12,7 @@ public class RenderConnector extends RenderPylonBase { @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { TileEntityConnector con = (TileEntityConnector) te; + GL11.glEnable(GL11.GL_LIGHTING); GL11.glPushMatrix(); @@ -33,7 +34,7 @@ public class RenderConnector extends RenderPylonBase { GL11.glPopMatrix(); GL11.glPushMatrix(); - this.renderSingleLine(con, x, y, z); + this.renderLinesGeneric(con, x, y, z); GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java b/src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java new file mode 100644 index 000000000..1bfb50fae --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java @@ -0,0 +1,80 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityConveyorPress; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderConveyorPress extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - 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; + } + + TileEntityConveyorPress press = (TileEntityConveyorPress) tile; + + bindTexture(ResourceManager.conveyor_press_tex); + ResourceManager.conveyor_press.renderPart("Press"); + + if(press.syncStack != null) { + GL11.glPushMatrix(); + double piston = press.lastPress + (press.renderPress - press.lastPress) * interp; + GL11.glTranslated(0, -piston * 0.75, 0); + ResourceManager.conveyor_press.renderPart("Piston"); + GL11.glPopMatrix(); + } + + bindTexture(ResourceManager.conveyor_press_belt_tex); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + int ticks = (int)(tile.getWorldObj().getTotalWorldTime() % 16) - 2; + GL11.glTranslated(0, ticks / 16D, 0); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + ResourceManager.conveyor_press.renderPart("Belt"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_conveyor_press); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(4.5, 4.5, 4.5); + } + public void renderCommon() { + bindTexture(ResourceManager.conveyor_press_tex); + ResourceManager.conveyor_press.renderPart("Press"); + ResourceManager.conveyor_press.renderPart("Piston"); + bindTexture(ResourceManager.conveyor_press_belt_tex); + ResourceManager.conveyor_press.renderPart("Belt"); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderCraneConsole.java b/src/main/java/com/hbm/render/tileentity/RenderCraneConsole.java index d06119605..467f1fc22 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCraneConsole.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCraneConsole.java @@ -108,18 +108,40 @@ public class RenderCraneConsole extends TileEntitySpecialRenderer { double posX = (console.lastPosFront + (console.posFront - console.lastPosFront) * interp); double posZ = (console.lastPosLeft + (console.posLeft - console.lastPosLeft) * interp); - GL11.glTranslated(0, 0, posZ); + GL11.glTranslated(-posX, 0, posZ); + + int craneRotationOffset = ((TileEntityCraneConsole)te).craneRotationOffset; + GL11.glRotatef(craneRotationOffset, 0F, 1F, 0F); GL11.glPushMatrix(); - GL11.glTranslated(-console.spanL, height - 1, 0); + int girderSpan = 0; + GL11.glRotatef(-craneRotationOffset, 0F, 1F, 0F); + switch(craneRotationOffset) { + case 0: + girderSpan = console.spanL + console.spanR + 1; + GL11.glTranslated(posX - console.spanL, 0, 0); + break; + case 90: + girderSpan = console.spanF + console.spanB + 1; + GL11.glTranslated(0, 0, -posZ + console.spanB); + break; + case 180: + girderSpan = console.spanL + console.spanR + 1; + GL11.glTranslated(posX + console.spanR, 0, 0); + break; + case 270: + girderSpan = console.spanF + console.spanB + 1; + GL11.glTranslated(0, 0, -posZ - console.spanF); + break; + } + GL11.glRotatef(craneRotationOffset, 0F, 1F, 0F); - for(int i = -console.spanL; i <= console.spanR; i++) { + for(int i = 0; i < girderSpan; i++) { ResourceManager.rbmk_crane.renderPart("Girder"); GL11.glTranslated(1, 0, 0); } GL11.glPopMatrix(); - GL11.glTranslated(-posX, 0, 0); ResourceManager.rbmk_crane.renderPart("Main"); GL11.glPushMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderCrystallizer.java b/src/main/java/com/hbm/render/tileentity/RenderCrystallizer.java index 75015f4b6..158eb34bd 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCrystallizer.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCrystallizer.java @@ -2,46 +2,82 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderCrystallizer extends TileEntitySpecialRenderer { +public class RenderCrystallizer extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float inter) { - - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + switch(te.getBlockMetadata() - 10) { 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; } - - TileEntityMachineCrystallizer crys = (TileEntityMachineCrystallizer)te; + + TileEntityMachineCrystallizer crys = (TileEntityMachineCrystallizer) te; GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.crystallizer_tex); - ResourceManager.crystallizer.renderPart("Body"); - bindTexture(ResourceManager.crystallizer_window_tex); - ResourceManager.crystallizer.renderPart("Windows"); - - GL11.glPushMatrix(); - GL11.glRotatef(crys.prevAngle + (crys.angle - crys.prevAngle) * inter, 0, 1, 0); - bindTexture(ResourceManager.crystallizer_spinner_tex); - ResourceManager.crystallizer.renderPart("Spinner"); - GL11.glPopMatrix(); - + bindTexture(ResourceManager.crystallizer_tex); + ResourceManager.crystallizer.renderPart("Body"); + + GL11.glPushMatrix(); + GL11.glRotatef(crys.prevAngle + (crys.angle - crys.prevAngle) * inter, 0, 1, 0); + ResourceManager.crystallizer.renderPart("Spinner"); + GL11.glPopMatrix(); + + if(crys.prevAngle != crys.angle) { + GL11.glEnable(GL11.GL_BLEND); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + bindTexture(crys.tank.getTankType().getTexture()); + ResourceManager.crystallizer.renderPart("Fluid"); + GL11.glDepthMask(true); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_crystallizer); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderNonInv() { + GL11.glScaled(0.5, 0.5, 0.5); + } + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(2, 2, 2); + } + public void renderCommon() { + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.crystallizer_tex); + ResourceManager.crystallizer.renderPart("Body"); + ResourceManager.crystallizer.renderPart("Spinner"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java b/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java new file mode 100644 index 000000000..1c5d6835a --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java @@ -0,0 +1,50 @@ +package com.hbm.render.tileentity; + +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.render.util.SmallBlockPronter; +import com.hbm.tileentity.machine.TileEntityCustomMachine; + +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import org.lwjgl.opengl.GL11; + +public class RenderCustomMachine extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + TileEntityCustomMachine custom = (TileEntityCustomMachine) tile; + CustomMachineConfigJSON.MachineConfiguration config = custom.config; + + ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + if(config != null && !custom.structureOK) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + bindTexture(TextureMap.locationBlocksTexture); + SmallBlockPronter.startDrawing(); + for(CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition comp : config.components) { + int rx = -dir.offsetX * comp.x + rot.offsetX * comp.x; + int ry = +comp.y; + int rz = -dir.offsetZ * comp.z + rot.offsetZ * comp.z; + if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { + rx = +dir.offsetZ * comp.z - rot.offsetZ * comp.z; + rz = +dir.offsetX * comp.x - rot.offsetX * comp.x; + } + + int index = (int) ((System.currentTimeMillis() / 1000) % comp.metas.size()); + SmallBlockPronter.drawSmolBlockAt(comp.block, comp.metas.get(index).getAsInt(), rx, ry, rz); + + } + + SmallBlockPronter.draw(); + + GL11.glPopMatrix(); + } + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java b/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java index 38905a176..724423e3c 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java @@ -8,44 +8,28 @@ import com.hbm.main.ResourceManager; import com.hbm.render.model.ModelBroadcaster; import com.hbm.render.model.ModelGeiger; import com.hbm.render.model.ModelRadio; -import com.hbm.render.model.ModelSteelBeam; -import com.hbm.render.model.ModelSteelCorner; import com.hbm.render.model.ModelSteelRoof; -import com.hbm.render.model.ModelSteelScaffold; -import com.hbm.render.model.ModelSteelWall; -import com.hbm.tileentity.deco.TileEntityBomber; +import net.minecraft.block.Block; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; public class RenderDecoBlock extends TileEntitySpecialRenderer { - private static final ResourceLocation texture1 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/SteelWall.png"); - private static final ResourceLocation texture2 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/SteelCorner.png"); private static final ResourceLocation texture3 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/SteelRoof.png"); - private static final ResourceLocation texture4 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/SteelBeam.png"); - private static final ResourceLocation texture5 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/SteelScaffold.png"); private static final ResourceLocation texture6 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelBroadcaster.png"); private static final ResourceLocation texture7 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelRadio.png"); private static final ResourceLocation texture8 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelRadioReceiver.png"); private static final ResourceLocation texture9 = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelGeiger.png"); - private ModelSteelWall model1; - private ModelSteelCorner model2; private ModelSteelRoof model3; - private ModelSteelBeam model4; - private ModelSteelScaffold model5; private ModelBroadcaster model6; private ModelRadio model7; private ModelGeiger model8; public RenderDecoBlock() { - this.model1 = new ModelSteelWall(); - this.model2 = new ModelSteelCorner(); this.model3 = new ModelSteelRoof(); - this.model4 = new ModelSteelBeam(); - this.model5 = new ModelSteelScaffold(); this.model6 = new ModelBroadcaster(); this.model7 = new ModelRadio(); this.model8 = new ModelGeiger(); @@ -54,366 +38,221 @@ public class RenderDecoBlock extends TileEntitySpecialRenderer { @Override public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { GL11.glPushMatrix(); - GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); + GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); + GL11.glRotatef(180, 0F, 0F, 1F); + + GL11.glEnable(GL11.GL_LIGHTING); + + Block b = tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord); + + if(b == ModBlocks.steel_roof) { + this.bindTexture(texture3); + } + if(b == ModBlocks.broadcaster_pc) { + this.bindTexture(texture6); + switch(tileentity.getBlockMetadata()) + { + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + } + if(b == ModBlocks.geiger) { + this.bindTexture(texture9); + switch(tileentity.getBlockMetadata()) + { + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + } + if(b == ModBlocks.radiorec) { + this.bindTexture(texture8); + switch(tileentity.getBlockMetadata()) + { + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + } + if(b == ModBlocks.radiobox) { + this.bindTexture(texture7); + switch(tileentity.getBlockMetadata()) + { + case 4: + case 8: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: + case 6: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: + case 9: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: + case 7: GL11.glRotatef(180, 0F, 1F, 0F); break; + } + GL11.glTranslatef(0, 0, 1); + } + + GL11.glPushMatrix(); + if(b == ModBlocks.steel_roof) this.model3.renderModel(0.0625F); + if(b == ModBlocks.broadcaster_pc) this.model6.renderModel(0.0625F); + if(b== ModBlocks.geiger) this.model8.renderModel(0.0625F); + if(b == ModBlocks.radiobox) this.model7.renderModel(0.0625F, tileentity.getBlockMetadata() > 5 ? 160 : 20); + if(b == ModBlocks.radiorec) this.model6.renderModel(0.0625F); + GL11.glPopMatrix(); + + if(b == ModBlocks.boxcar) { + GL11.glRotatef(180, 0F, 0F, 1F); - - GL11.glEnable(GL11.GL_LIGHTING); - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_wall) - { - this.bindTexture(texture1); - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_corner) - { - this.bindTexture(texture2); - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_roof) - { - this.bindTexture(texture3); - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_beam) - { - this.bindTexture(texture4); - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_scaffold) - { - this.bindTexture(texture5); - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.broadcaster_pc) - { - this.bindTexture(texture6); - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.geiger) - { - this.bindTexture(texture9); - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.radiorec) - { - this.bindTexture(texture8); - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.radiobox) - { - this.bindTexture(texture7); - switch(tileentity.getBlockMetadata()) - { - case 4: - case 8: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 2: - case 6: - GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: - case 9: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 3: - case 7: - GL11.glRotatef(180, 0F, 1F, 0F); break; - } - GL11.glTranslatef(0, 0, 1); - } - - GL11.glPushMatrix(); - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_wall) - this.model1.renderModel(0.0625F); - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_corner) - this.model2.renderModel(0.0625F); - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_roof) - this.model3.renderModel(0.0625F); - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_beam) - this.model4.renderModel(0.0625F); - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.steel_scaffold) - this.model5.renderModel(0.0625F); - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.broadcaster_pc) - this.model6.renderModel(0.0625F); - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.geiger) - this.model8.renderModel(0.0625F); - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.radiobox) - this.model7.renderModel(0.0625F, tileentity.getBlockMetadata() > 5 ? 160 : 20); - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.radiorec) - this.model6.renderModel(0.0625F); - GL11.glPopMatrix(); - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.boxcar) { + GL11.glTranslatef(0, -1.5F, 0); + switch(tileentity.getBlockMetadata()) { + case 4: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(90, 0F, 1F, 0F); break; + default: GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glTranslatef(0, -1.5F, 0); - - switch(tileentity.getBlockMetadata()) { - case 4: GL11.glRotatef(0, 0F, 1F, 0F); break; - case 2: GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: GL11.glRotatef(90, 0F, 1F, 0F); break; - default: - GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glRotated(90, 1, 0, 0); - GL11.glTranslatef(0, -1.5F, 0); - break; - } - - GL11.glEnable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.boxcar_tex); - ResourceManager.boxcar.renderAll(); + GL11.glRotated(90, 1, 0, 0); + GL11.glTranslatef(0, -1.5F, 0); break; } - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.boat) { - GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glTranslatef(0, 0, -1.5F); - GL11.glTranslatef(0, 0.5F, 0); - GL11.glEnable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.duchessgambit_tex); - ResourceManager.duchessgambit.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.boxcar_tex); + ResourceManager.boxcar.renderAll(); + } + + if(b == ModBlocks.boat) { + GL11.glRotatef(180, 0F, 0F, 1F); + GL11.glTranslatef(0, 0, -1.5F); + GL11.glTranslatef(0, 0.5F, 0); + + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.duchessgambit_tex); + ResourceManager.duchessgambit.renderAll(); + } + + if(b == ModBlocks.sat_radar) { + GL11.glRotatef(180, 0F, 0F, 1F); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glRotated(90, 0, 1, 0); + + switch(tileentity.getBlockMetadata()) { + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; } - - if(tileentity instanceof TileEntityBomber) - { - TileEntityBomber bomber = (TileEntityBomber)tileentity; - float yaw = (float)(((double)bomber.yaw) / 180D * Math.PI); - float pitch = (float)(((double)bomber.pitch) / 180D * Math.PI); - - GL11.glRotatef(yaw - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(90, 0F, 0F, 1F); - GL11.glRotatef(pitch, 0.0F, 0.0F, 1.0F); + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.sat_base_tex); + ResourceManager.sat_base.renderAll(); + bindTexture(ResourceManager.sat_radar_tex); + ResourceManager.sat_radar.renderAll(); + } - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glScalef(5F, 5F, 5F); - - int i = bomber.type; - - switch(i) { - case 0: bindTexture(ResourceManager.dornier_0_tex); break; - case 1: bindTexture(ResourceManager.dornier_1_tex); break; - case 2: bindTexture(ResourceManager.dornier_2_tex); break; - default: bindTexture(ResourceManager.dornier_1_tex); break; - } + if(b == ModBlocks.sat_resonator) { + GL11.glRotatef(180, 0F, 0F, 1F); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glRotated(90, 0, 1, 0); - ResourceManager.dornier.renderAll(); + switch(tileentity.getBlockMetadata()) { + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; } - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_radar) { - GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glTranslatef(0, -1.5F, 0); - GL11.glRotated(90, 0, 1, 0); - - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.sat_base_tex); + ResourceManager.sat_base.renderAll(); + bindTexture(ResourceManager.sat_resonator_tex); + ResourceManager.sat_resonator.renderAll(); + } - GL11.glEnable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.sat_base_tex); - ResourceManager.sat_base.renderAll(); - bindTexture(ResourceManager.sat_radar_tex); - ResourceManager.sat_radar.renderAll(); + if(b == ModBlocks.sat_scanner) { + GL11.glRotatef(180, 0F, 0F, 1F); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glRotated(90, 0, 1, 0); + + switch(tileentity.getBlockMetadata()) { + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; } - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_resonator) { - GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glTranslatef(0, -1.5F, 0); - GL11.glRotated(90, 0, 1, 0); - - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.sat_base_tex); + ResourceManager.sat_base.renderAll(); + bindTexture(ResourceManager.sat_scanner_tex); + ResourceManager.sat_scanner.renderAll(); + } - GL11.glEnable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.sat_base_tex); - ResourceManager.sat_base.renderAll(); - bindTexture(ResourceManager.sat_resonator_tex); - ResourceManager.sat_resonator.renderAll(); + if(b == ModBlocks.sat_mapper) { + GL11.glRotatef(180, 0F, 0F, 1F); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glRotated(90, 0, 1, 0); + + switch(tileentity.getBlockMetadata()) { + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; } - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_scanner) { - GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glTranslatef(0, -1.5F, 0); - GL11.glRotated(90, 0, 1, 0); - - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.sat_base_tex); + ResourceManager.sat_base.renderAll(); + bindTexture(ResourceManager.sat_mapper_tex); + ResourceManager.sat_mapper.renderAll(); + } - GL11.glEnable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.sat_base_tex); - ResourceManager.sat_base.renderAll(); - bindTexture(ResourceManager.sat_scanner_tex); - ResourceManager.sat_scanner.renderAll(); + if(b == ModBlocks.sat_laser) { + GL11.glRotatef(180, 0F, 0F, 1F); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glRotated(90, 0, 1, 0); + + switch(tileentity.getBlockMetadata()) { + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; } - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_mapper) { - GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glTranslatef(0, -1.5F, 0); - GL11.glRotated(90, 0, 1, 0); - - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.sat_base_tex); + ResourceManager.sat_base.renderAll(); + bindTexture(ResourceManager.sat_laser_tex); + ResourceManager.sat_laser.renderAll(); + } - GL11.glEnable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.sat_base_tex); - ResourceManager.sat_base.renderAll(); - bindTexture(ResourceManager.sat_mapper_tex); - ResourceManager.sat_mapper.renderAll(); + if(b == ModBlocks.sat_foeq) { + GL11.glRotatef(180, 0F, 0F, 1F); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glRotated(90, 0, 1, 0); + + switch(tileentity.getBlockMetadata()) { + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; } - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_laser) { - GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glTranslatef(0, -1.5F, 0); - GL11.glRotated(90, 0, 1, 0); - - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.sat_foeq_tex); + ResourceManager.sat_foeq.renderAll(); + } - GL11.glEnable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.sat_base_tex); - ResourceManager.sat_base.renderAll(); - bindTexture(ResourceManager.sat_laser_tex); - ResourceManager.sat_laser.renderAll(); - } - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_foeq) { - GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glTranslatef(0, -1.5F, 0); + if(b == ModBlocks.sat_dock) { + GL11.glRotatef(180, 0F, 0F, 1F); + GL11.glTranslatef(0, -1.5F, 0); - GL11.glRotated(90, 0, 1, 0); - - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } + bindTexture(ResourceManager.satdock_tex); + ResourceManager.satDock.renderAll(); + } - GL11.glEnable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.sat_foeq_tex); - ResourceManager.sat_foeq.renderAll(); - } - - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_dock) { - GL11.glRotatef(180, 0F, 0F, 1F); - GL11.glTranslatef(0, -1.5F, 0); - - bindTexture(ResourceManager.satdock_tex); - ResourceManager.satDock.renderAll(); - } - GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderDerrick.java b/src/main/java/com/hbm/render/tileentity/RenderDerrick.java index 14b67b290..d5fab539a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDerrick.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDerrick.java @@ -2,12 +2,17 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderDerrick extends TileEntitySpecialRenderer { +public class RenderDerrick extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { @@ -16,7 +21,14 @@ public class RenderDerrick extends TileEntitySpecialRenderer { GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); + GL11.glRotatef(90, 0F, 1F, 0F); + + 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; + } GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.derrick_tex); @@ -25,4 +37,25 @@ public class RenderDerrick extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_well); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.derrick_tex); ResourceManager.derrick.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java b/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java index 1849842df..33bdb32d9 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java @@ -2,7 +2,6 @@ package com.hbm.render.tileentity; import java.nio.DoubleBuffer; -import org.apache.commons.lang3.tuple.Pair; import org.lwjgl.opengl.GL11; import com.hbm.animloader.AnimatedModel; @@ -11,7 +10,7 @@ import com.hbm.animloader.AnimationWrapper; import com.hbm.animloader.AnimationWrapper.EndResult; import com.hbm.animloader.AnimationWrapper.EndType; import com.hbm.blocks.BlockDummyable; -import com.hbm.render.loader.WavefrontObjDisplayList; +import com.hbm.render.loader.IModelCustomNamed; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.TileEntityDoorGeneric; @@ -65,7 +64,7 @@ public class RenderDoorGeneric extends TileEntitySpecialRenderer { AnimatedModel animModel = door.getAnimatedModel(); if(animModel != null){ Animation anim = door.getAnim(); - bindTexture(door.getTextureForPart("")); + bindTexture(door.getTextureForPart(te.getSkinIndex(), "")); long time = System.currentTimeMillis(); long startTime = te.state > 1 ? te.animStartTime : time; boolean reverse = te.state == 1 || te.state == 2; @@ -75,25 +74,33 @@ public class RenderDoorGeneric extends TileEntitySpecialRenderer { animModel.controller.setAnim(w); animModel.renderAnimated(System.currentTimeMillis()); } else { - WavefrontObjDisplayList model = door.getModel(); + IModelCustomNamed model = door.getModel(); long ms = System.currentTimeMillis()-te.animStartTime; float openTicks = MathHelper.clamp_float(te.state == 2 || te.state == 0 ? door.timeToOpen()*50-ms : ms, 0, door.timeToOpen()*50)*0.02F; - for(Pair p : model.nameToCallList){ - if(!door.doesRender(p.getLeft(), false)) + + for(String partName : model.getPartNames()) { + if(!door.doesRender(partName, false)) continue; + GL11.glPushMatrix(); - bindTexture(door.getTextureForPart(p.getLeft())); - doPartTransform(door, p.getLeft(), openTicks, false); - GL11.glCallList(p.getRight()); - for(String name : door.getChildren(p.getLeft())){ - if(!door.doesRender(name, true)) - continue; - GL11.glPushMatrix(); - bindTexture(door.getTextureForPart(name)); - doPartTransform(door, name, openTicks, true); - model.renderPart(name); - GL11.glPopMatrix(); + { + bindTexture(door.getTextureForPart(te.getSkinIndex(), partName)); + doPartTransform(door, partName, openTicks, false); + model.renderPart(partName); + + for(String innerPartName : door.getChildren(partName)) { + if(!door.doesRender(innerPartName, true)) + continue; + + GL11.glPushMatrix(); + { + bindTexture(door.getTextureForPart(te.getSkinIndex(), innerPartName)); + doPartTransform(door, innerPartName, openTicks, true); + model.renderPart(innerPartName); + } + GL11.glPopMatrix(); + } } GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderDrain.java b/src/main/java/com/hbm/render/tileentity/RenderDrain.java new file mode 100644 index 000000000..e2fdcfce0 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderDrain.java @@ -0,0 +1,58 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderDrain extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(te.getBlockMetadata() - BlockDummyable.offset) { + 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; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + bindTexture(ResourceManager.drain_tex); + ResourceManager.drain.renderAll(); + + GL11.glPopMatrix(); + + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_drain); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(-1, -1, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glRotatef(180, 0F, 1F, 0F); + GL11.glTranslated(0.75, 0, 0); + bindTexture(ResourceManager.drain_tex); ResourceManager.drain.renderAll(); + } + }; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderElectrolyser.java b/src/main/java/com/hbm/render/tileentity/RenderElectrolyser.java index 9784333e1..f8054adc4 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderElectrolyser.java +++ b/src/main/java/com/hbm/render/tileentity/RenderElectrolyser.java @@ -3,19 +3,20 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityElectrolyser; +import com.hbm.render.item.ItemRenderBase; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderElectrolyser extends TileEntitySpecialRenderer { +public class RenderElectrolyser extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { - TileEntityElectrolyser electrolyser = (TileEntityElectrolyser) te; - GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); @@ -40,4 +41,25 @@ public class RenderElectrolyser extends TileEntitySpecialRenderer { } + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_electrolyser); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(-1, -1, 0); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.electrolyser_tex); ResourceManager.electrolyser.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } + } diff --git a/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java new file mode 100644 index 000000000..acfb9bbf9 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java @@ -0,0 +1,137 @@ +package com.hbm.render.tileentity; + +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.BeamPronter.EnumBeamType; +import com.hbm.render.util.BeamPronter.EnumWaveType; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.client.IItemRenderer; + +public class RenderExposureChamber extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float interp) { + + 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 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; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + TileEntityMachineExposureChamber chamber = (TileEntityMachineExposureChamber) tileEntity; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.exposure_chamber_tex); + ResourceManager.exposure_chamber.renderPart("Chamber"); + + double rotation = chamber.prevRotation + (chamber.rotation - chamber.prevRotation) * interp; + + GL11.glPushMatrix(); + GL11.glRotated(rotation, 0, 1, 0); + ResourceManager.exposure_chamber.renderPart("Magnets"); + GL11.glPopMatrix(); + + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + if(chamber.isOn) { + GL11.glPushMatrix(); + GL11.glRotated(rotation / 2D, 0, 1, 0); + GL11.glTranslated(0, Math.sin((tileEntity.getWorldObj().getTotalWorldTime() % (Math.PI * 16D) + interp) * 0.125) * 0.0625, 0); + ResourceManager.exposure_chamber.renderPart("Core"); + GL11.glPopMatrix(); + } + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + if(chamber.isOn) { + + int duration = 8; + Random rand = new Random(chamber.getWorldObj().getTotalWorldTime() / duration); + int chance = 2; + int color = chamber.getWorldObj().getTotalWorldTime() % duration >= duration / 2 ? 0x80d0ff : 0xffffff; + rand.nextInt(chance); //RNG behaves weirldy in the first iteration + if(rand.nextInt(chance) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 3.675, -7.5); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, 5), EnumWaveType.RANDOM, EnumBeamType.LINE, color, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + if(rand.nextInt(chance) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(1.1875, 2.5, -7.5); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, 5), EnumWaveType.RANDOM, EnumBeamType.LINE, color, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + if(rand.nextInt(chance) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(-1.1875, 2.5, -7.5); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, 5), EnumWaveType.RANDOM, EnumBeamType.LINE, color, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.75, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 1.5, 0), EnumWaveType.RANDOM, EnumBeamType.LINE, 0x80d0ff, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 10, 0.125F, 1, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 1.5, 0), EnumWaveType.RANDOM, EnumBeamType.LINE, 0x8080ff, 0xffffff, (int)(System.currentTimeMillis() + 5 % 1000) / 50, 10, 0.125F, 1, 0); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 2.5, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -1), EnumWaveType.SPIRAL, EnumBeamType.LINE, 0xffff80, 0xffffff, (int)(System.currentTimeMillis() % 360), 15, 0.125F, 1, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -1), EnumWaveType.SPIRAL, EnumBeamType.LINE, 0xff8080, 0xffffff, (int)(System.currentTimeMillis() % 360) + 180, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_exposure_chamber); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glTranslated(1.5, 0, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.exposure_chamber_tex); + ResourceManager.exposure_chamber.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFloodlight.java b/src/main/java/com/hbm/render/tileentity/RenderFloodlight.java new file mode 100644 index 000000000..bed0b0fd6 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderFloodlight.java @@ -0,0 +1,91 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.Floodlight.TileEntityFloodlight; +import com.hbm.lib.RefStrings; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.loader.HFRWavefrontObject; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderFloodlight extends TileEntitySpecialRenderer implements IItemRendererProvider { + + public static final IModelCustom floodlight = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/floodlight.obj")); + public static final ResourceLocation tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/floodlight.png"); + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y + 0.5D, z + 0.5D); + + int meta = tileEntity.getBlockMetadata(); + switch(meta) { + case 0: case 6: GL11.glRotated(180, 1, 0, 0); break; + case 1: case 7: break; + case 2: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(180, 0, 0, 1); break; + case 3: GL11.glRotated(90, 1, 0, 0); break; + case 4: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(90, 0, 0, 1); break; + case 5: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(270, 0, 0, 1); break; + } + + GL11.glTranslated(0, -0.5, 0); + + if(meta != 0 && meta != 1) GL11.glRotated(90, 0, 1, 0); + + bindTexture(tex); + floodlight.renderPart("Base"); + + TileEntityFloodlight floodtile = (TileEntityFloodlight) tileEntity; + float rotation = floodtile.rotation; + if(meta == 0 || meta == 6) rotation -= 90; + if(meta == 1 || meta == 7) rotation += 90; + GL11.glTranslated(0, 0.5, 0); + GL11.glRotatef(rotation, 0, 0, 1); + GL11.glTranslated(0, -0.5, 0); + + floodlight.renderPart("Lights"); + + if(floodtile.isOn) { + RenderArcFurnace.fullbright(true); + floodlight.renderPart("Lamps"); + RenderArcFurnace.fullbright(false); + } else { + GL11.glColor4f(0.25F, 0.25F, 0.25F, 1F); + floodlight.renderPart("Lamps"); + GL11.glColor4f(1F, 1F, 1F, 1F); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.floodlight); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + GL11.glScaled(6.5, 6.5, 6.5); + } + public void renderCommon() { + bindTexture(tex); + floodlight.renderPart("Base"); + GL11.glTranslated(0, 0.5, 0); + GL11.glRotatef(-30, 0, 0, 1); + GL11.glTranslated(0, -0.5, 0); + floodlight.renderPart("Lights"); + floodlight.renderPart("Lamps"); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java b/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java deleted file mode 100644 index afa01d9ee..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java +++ /dev/null @@ -1,194 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityFluidDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderFluidDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/fluid_duct.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityFluidDuct cable = (TileEntityFluidDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i], cable.getType().getColor()); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - } - - public void drawConnection(ForgeDirection direction, int hex) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - float p = 0.01F; - float n = -0.01F; - int r = (hex & 0xFF0000) >> 16; - int g = (hex & 0xFF00) >> 8; - int b = (hex & 0xFF); - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_TEXTURE_2D); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java index 6a6f12176..acb9a0b0c 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java @@ -56,6 +56,7 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR ResourceManager.fluidtank_exploded.renderPart("Tank"); } + GL11.glColor3d(1D, 1D, 1D); GL11.glShadeModel(GL11.GL_FLAT); if(type != null && type != Fluids.NONE) { @@ -74,12 +75,23 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR DiamondPronter.pront(type.poison, type.flammability, type.reactivity, type.symbol); GL11.glPopMatrix(); } - + + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); RenderHelper.enableStandardItemLighting(); } public String getTextureFromType(FluidType type) { + + if(type.customFluid) { + int color = type.getTint(); + double r = ((color & 0xff0000) >> 16) / 255D; + double g = ((color & 0x00ff00) >> 8) / 255D; + double b = ((color & 0x0000ff) >> 0) / 255D; + GL11.glColor3d(r, g, b); + return "textures/models/tank/tank_NONE.png"; + } + String s = type.getName(); if(type.isAntimatter() || (type.hasTrait(FT_Corrosive.class) && type.getTrait(FT_Corrosive.class).isHighlyCorrosive())) @@ -108,7 +120,7 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glDisable(GL11.GL_CULL_FACE); - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); boolean exploded = false; if(item.hasTagCompound() && item.getTagCompound().hasKey(IPersistentNBT.NBT_PERSISTENT_KEY)) { tank.readFromNBT(item.getTagCompound().getCompoundTag(IPersistentNBT.NBT_PERSISTENT_KEY), "tank"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderGasDuct.java b/src/main/java/com/hbm/render/tileentity/RenderGasDuct.java deleted file mode 100644 index 460d20b52..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderGasDuct.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityGasDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderGasDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/gas_duct.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityGasDuct cable = (TileEntityGasDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i]); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - } - - public void drawConnection(ForgeDirection direction) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderHydrotreater.java b/src/main/java/com/hbm/render/tileentity/RenderHydrotreater.java new file mode 100644 index 000000000..b2e3b319a --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderHydrotreater.java @@ -0,0 +1,52 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderHydrotreater extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.hydrotreater_tex); + ResourceManager.hydrotreater.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_hydrotreater); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(4, 4, 4); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.hydrotreater_tex); + ResourceManager.hydrotreater.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderICF.java b/src/main/java/com/hbm/render/tileentity/RenderICF.java new file mode 100644 index 000000000..1bfd169f9 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderICF.java @@ -0,0 +1,63 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderICF extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslatef((float) x + 0.5F, (float) y, (float) z + 0.5F); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + switch(te.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; + } + + bindTexture(ResourceManager.icf_tex); + ResourceManager.icf.renderAll(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.icf); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + double scale = 2.125; + GL11.glScaled(scale, scale, scale); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.icf_tex); ResourceManager.icf.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderICFController.java b/src/main/java/com/hbm/render/tileentity/RenderICFController.java new file mode 100644 index 000000000..9bc0d69ba --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderICFController.java @@ -0,0 +1,45 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.BeamPronter.EnumBeamType; +import com.hbm.render.util.BeamPronter.EnumWaveType; +import com.hbm.tileentity.machine.TileEntityICFController; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; + +public class RenderICFController extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) { + + TileEntityICFController controller = (TileEntityICFController) tile; + + if(controller.laserLength > 0) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + GL11.glRotatef(90, 0F, 1F, 0F); + switch(tile.getBlockMetadata()) { + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + BeamPronter.prontBeam(Vec3.createVectorHelper(controller.laserLength, 0, 0), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0x202020, 0x100000, 0, 1, 0F, 10, 0.125F); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + + GL11.glPopMatrix(); + } + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderICFMultiblock.java b/src/main/java/com/hbm/render/tileentity/RenderICFMultiblock.java new file mode 100644 index 000000000..a44dd345d --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderICFMultiblock.java @@ -0,0 +1,48 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.render.util.SmallBlockPronter; + +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderICFMultiblock extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + + switch(tile.getBlockMetadata()) { + case 2: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(180, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5, 0, -0.5); + + bindTexture(TextureMap.locationBlocksTexture); + SmallBlockPronter.startDrawing(); + + for(int i = -8; i <= 8; i++) { + SmallBlockPronter.drawSmolBlockAt(ModBlocks.icf_component, 0, 1F, 0F, i); + if(i != 0) SmallBlockPronter.drawSmolBlockAt(ModBlocks.icf_component, 0, 0F, 0F, i); + SmallBlockPronter.drawSmolBlockAt(ModBlocks.icf_component, 0, -1F, 0F, i); + SmallBlockPronter.drawSmolBlockAt(ModBlocks.icf_component, 2, 0F, 3F, i); + for(int j = -1; j <= 1; j++) SmallBlockPronter.drawSmolBlockAt(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 1F, i); + for(int j = -2; j <= 2; j++) SmallBlockPronter.drawSmolBlockAt(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 2F, i); + for(int j = -2; j <= 2; j++) if(j != 0) SmallBlockPronter.drawSmolBlockAt(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 3F, i); + for(int j = -2; j <= 2; j++) SmallBlockPronter.drawSmolBlockAt(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 4F, i); + for(int j = -1; j <= 1; j++) SmallBlockPronter.drawSmolBlockAt(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 5F, i); + } + + SmallBlockPronter.draw(); + + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java b/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java index 5431dc93c..3fd621158 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java +++ b/src/main/java/com/hbm/render/tileentity/RenderIGenerator.java @@ -1,6 +1,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; @@ -30,6 +31,11 @@ public class RenderIGenerator extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + GL11.glTranslated(0, 0, 1); + GL11.glScaled(1D/6D, 1D/6D, 1D/6D); + GL11.glTranslated(0, 0, -0.5); bindTexture(ResourceManager.igen_tex); ResourceManager.igen.renderPart("Body"); @@ -39,6 +45,8 @@ public class RenderIGenerator extends TileEntitySpecialRenderer { GL11.glRotatef(-rot, 0, 0, 1); GL11.glTranslated(0, -1.5D, 0); ResourceManager.igen.renderPart("Rotor"); + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java b/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java new file mode 100644 index 000000000..f2d0da729 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java @@ -0,0 +1,51 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderIndustrialBoiler extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.boiler_industrial_tex); + ResourceManager.boiler_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_industrial_boiler); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.boiler_industrial_tex); + ResourceManager.boiler_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLPW2.java b/src/main/java/com/hbm/render/tileentity/RenderLPW2.java new file mode 100644 index 000000000..4e4eacf41 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLPW2.java @@ -0,0 +1,277 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; +import com.hbm.util.BobMathUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderLPW2 extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + switch(te.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; + } + + long time = te.getWorldObj().getTotalWorldTime(); + + double swayTimer = ((time + interp) / 3D) % (Math.PI * 4); + double sway = (Math.sin(swayTimer) + Math.sin(swayTimer * 2) + Math.sin(swayTimer * 4) + 2.23255D) * 0.5; + + double bellTimer = ((time + interp) / 5D) % (Math.PI * 4); + double h = (Math.sin(bellTimer + Math.PI) + Math.sin(bellTimer * 1.5D)) / 1.90596D; + double v = (Math.sin(bellTimer) + Math.sin(bellTimer * 1.5D)) / 1.90596D; + + double pistonTimer = ((time + interp) / 5D) % (Math.PI * 2); + double piston = BobMathUtil.sps(pistonTimer); + double rotorTimer = ((time + interp) / 5D) % (Math.PI * 16); + double rotor = (BobMathUtil.sps(rotorTimer) + rotorTimer / 2D - 1) / 25.1327412287D; + double turbine = ((time + interp) % 100) / 100D; + + bindTexture(ResourceManager.lpw2_tex); + ResourceManager.lpw2.renderPart("Frame"); + + renderMainAssembly(sway, h, v, piston, rotor, turbine); + + GL11.glPushMatrix(); + GL11.glTranslated(-2.9375, 0, 2.375); + GL11.glRotated(sway * 10, 0, 1, 0); + GL11.glTranslated(2.9375, 0, -2.375); + ResourceManager.lpw2.renderPart("WireLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(2.9375, 0, 2.375); + GL11.glRotated(sway * -10, 0, 1, 0); + GL11.glTranslated(-2.9375, 0, -2.375); + ResourceManager.lpw2.renderPart("WireRight"); + GL11.glPopMatrix(); + + double coverTimer = ((time + interp) / 5D) % (Math.PI * 4); + double cover = (Math.sin(coverTimer) + Math.sin(coverTimer * 2) + Math.sin(coverTimer * 4)) * 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, -cover * 0.125); + ResourceManager.lpw2.renderPart("Cover"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 3.5); + GL11.glScaled(1, 1, (3 + cover * 0.125) / 3); + GL11.glTranslated(0, 0, -3.5); + ResourceManager.lpw2.renderPart("SuspensionCoverFront"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, -5.5); + GL11.glScaled(1, 1, (1.5 - cover * 0.125) / 1.5); + GL11.glTranslated(0, 0, 5.5); + ResourceManager.lpw2.renderPart("SuspensionCoverBack"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, -9); + GL11.glScaled(1, 1, (1.25 - sway * 0.125) / 1.25); + GL11.glTranslated(0, 0, 9); + ResourceManager.lpw2.renderPart("SuspensionBackOuter"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, -9.5); + GL11.glScaled(1, 1, (1.75 - sway * 0.125) / 1.75); + GL11.glTranslated(0, 0, 9.5); + ResourceManager.lpw2.renderPart("SuspensionBackCenter"); + GL11.glPopMatrix(); + + double serverTimer = ((time + interp) / 2D) % (Math.PI * 4); + double sx = (Math.sin(serverTimer + Math.PI) + Math.sin(serverTimer * 1.5D)) / 1.90596D; + double sy = (Math.sin(serverTimer) + Math.sin(serverTimer * 1.5D)) / 1.90596D; + + double serverSway = 0.0625D * 0.25D; + + GL11.glPushMatrix(); + GL11.glTranslated(sx * serverSway, 0, sy * serverSway); + ResourceManager.lpw2.renderPart("Server1"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(-sy * serverSway, 0, sx * serverSway); + ResourceManager.lpw2.renderPart("Server2"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(sy * serverSway, 0, -sx * serverSway); + ResourceManager.lpw2.renderPart("Server3"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(-sx * serverSway, 0, -sy * serverSway); + ResourceManager.lpw2.renderPart("Server4"); + GL11.glPopMatrix(); + + double errorTimer = ((time + interp) / 3D); + + GL11.glPushMatrix(); + GL11.glTranslated(sy * serverSway, 0, sx * serverSway); + + ResourceManager.lpw2.renderPart("Monitor"); + + /*Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.lpw2_term_tex); + ResourceManager.lpw2.renderPart("Screen");*/ + + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.lpw2_error_tex); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glTranslated(0, (BobMathUtil.sps(errorTimer) + errorTimer / 2D) % 1, 0); + ResourceManager.lpw2.renderPart("Screen"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } + + public static void renderMainAssembly(double sway, double h, double v, double piston, double rotor, double turbine) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, -sway * 0.125); + ResourceManager.lpw2.renderPart("Center"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 3.5, 0); + + GL11.glPushMatrix(); + GL11.glRotated(rotor * 360, 0, 0, -1); + GL11.glTranslated(0, -3.5, 0); + ResourceManager.lpw2.renderPart("Rotor"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glRotated(turbine * 360, 0, 0, 1); + GL11.glTranslated(0, -3.5, 0); + ResourceManager.lpw2.renderPart("TurbineFront"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glRotated(turbine * 360, 0, 0, -1); + GL11.glTranslated(0, -3.5, 0); + ResourceManager.lpw2.renderPart("TurbineBack"); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, piston * 0.375D + 0.375D); + ResourceManager.lpw2.renderPart("Piston"); + GL11.glPopMatrix(); + + renderBell(h, v); + GL11.glPopMatrix(); + + renderShroud(h, v); + } + + public static void renderBell(double h, double v) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 3.5, 2.75); + double magnitude = 2D; + GL11.glRotated(v * magnitude, 0, 1, 0); + GL11.glRotated(h * magnitude, 1, 0, 0); + GL11.glTranslated(0, -3.5, -2.75); + ResourceManager.lpw2.renderPart("Engine"); + GL11.glPopMatrix(); + } + + public static void renderShroud(double h, double v) { + + double magnitude = 0.125D; + double rotation = 5D; + double offset = 10D; + + GL11.glPushMatrix(); + GL11.glTranslated(0, -h * magnitude, 0); + ResourceManager.lpw2.renderPart("ShroudH"); + + renderFlap(90 + 22.5D, rotation * v + offset); + renderFlap(90 - 22.5D, rotation * v + offset); + renderFlap(270 + 22.5D, rotation * -v + offset); + renderFlap(270 - 22.5D, rotation * -v + offset); + + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(v * magnitude, 0, 0); + ResourceManager.lpw2.renderPart("ShroudV"); + + renderFlap(22.5D, rotation * h + offset); + renderFlap(-22.5D, rotation * h + offset); + renderFlap(180 + 22.5D, rotation * -h + offset); + renderFlap(180 - 22.5D, rotation * -h + offset); + + GL11.glPopMatrix(); + + double length = 0.6875D; + + GL11.glPushMatrix(); + GL11.glTranslated(-2.625D, 0, 0); + GL11.glScaled((length + v * magnitude) / length, 1, 1); + GL11.glTranslated(2.625D, 0, 0); + ResourceManager.lpw2.renderPart("SuspensionLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(2.625D, 0, 0); + GL11.glScaled((length - v * magnitude) / length, 1, 1); + GL11.glTranslated(-2.625D, 0, 0); + ResourceManager.lpw2.renderPart("SuspensionRight"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 6.125D, 0); + GL11.glScaled(1, (length + h * magnitude) / length, 1); + GL11.glTranslated(0, -6.125D, 0); + ResourceManager.lpw2.renderPart("SuspensionTop"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.875D, 0); + GL11.glScaled(1, (length - h * magnitude) / length, 1); + GL11.glTranslated(0, -0.875D, 0); + ResourceManager.lpw2.renderPart("SuspensionBottom"); + GL11.glPopMatrix(); + } + + public static void renderFlap(double position, double rotation) { + GL11.glPushMatrix(); + + GL11.glTranslated(0, 3.5D, 0); + GL11.glRotated(position, 0, 0, 1); + GL11.glTranslated(0, -3.5D, 0); + + GL11.glTranslated(0, 6.96875D, 8.5D); + GL11.glRotated(rotation, 1, 0, 0); + GL11.glTranslated(0, -6.96875D, -8.5D); + + ResourceManager.lpw2.renderPart("Flap"); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLandmine.java b/src/main/java/com/hbm/render/tileentity/RenderLandmine.java index 33314bb68..4e8ee9def 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLandmine.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLandmine.java @@ -1,6 +1,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; @@ -8,6 +9,7 @@ import com.hbm.main.ResourceManager; import net.minecraft.block.Block; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.biome.BiomeGenBase; public class RenderLandmine extends TileEntitySpecialRenderer { @@ -17,15 +19,20 @@ public class RenderLandmine extends TileEntitySpecialRenderer { GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glRotatef(180, 0F, 1F, 0F); Block block = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); if(block == ModBlocks.mine_ap) { - GL11.glTranslated(0, -0.075, 0); - GL11.glScaled(1.5D, 1.5D, 1.5D); - bindTexture(ResourceManager.mine_ap_tex); + GL11.glScaled(0.375D, 0.375D, 0.375D); + GL11.glTranslated(0, -0.0625 * 3.5, 0); + BiomeGenBase biome = tileEntity.getWorldObj().getBiomeGenForCoords(tileEntity.xCoord, tileEntity.zCoord); + if(tileEntity.getWorldObj().getHeightValue(tileEntity.xCoord, tileEntity.zCoord) > tileEntity.yCoord + 2) bindTexture(ResourceManager.mine_ap_stone_tex); + else if(biome.getEnableSnow()) bindTexture(ResourceManager.mine_ap_snow_tex); + else if(biome.temperature >= 1.5F && biome.rainfall <= 0.1F) bindTexture(ResourceManager.mine_ap_desert_tex); + else bindTexture(ResourceManager.mine_ap_grass_tex); ResourceManager.mine_ap.renderAll(); } if(block == ModBlocks.mine_he) { @@ -36,8 +43,11 @@ public class RenderLandmine extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); } if(block == ModBlocks.mine_shrap) { + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glScaled(0.375D, 0.375D, 0.375D); + GL11.glTranslated(0, -0.0625 * 3.5, 0); bindTexture(ResourceManager.mine_shrap_tex); - ResourceManager.mine_he.renderAll(); + ResourceManager.mine_ap.renderAll(); } if(block == ModBlocks.mine_fat) { GL11.glScaled(0.25D, 0.25D, 0.25D); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLantern.java b/src/main/java/com/hbm/render/tileentity/RenderLantern.java new file mode 100644 index 000000000..d61594f60 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLantern.java @@ -0,0 +1,69 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderLantern extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + bindTexture(ResourceManager.lantern_tex); + ResourceManager.lantern.renderPart("Lantern"); + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5) * 0.1F + 0.9F; + GL11.glColor3f(1F * mult, 1F * mult, 0.7F * mult); + ResourceManager.lantern.renderPart("Light"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.lantern); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + double scale = 2.75; + GL11.glScaled(scale, scale, scale); + } + public void renderCommon() { + bindTexture(ResourceManager.lantern_tex); + ResourceManager.lantern.renderPart("Lantern"); + GL11.glDisable(GL11.GL_TEXTURE_2D); + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5) * 0.1F + 0.9F; + GL11.glColor3f(1F * mult, 1F * mult, 0.7F * mult); + ResourceManager.lantern.renderPart("Light"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java b/src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java new file mode 100644 index 000000000..b7d18c4f5 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java @@ -0,0 +1,53 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.deco.TileEntityLanternBehemoth; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderLanternBehemoth extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + TileEntityLanternBehemoth lantern = (TileEntityLanternBehemoth) tile; + if(lantern.isBroken) { + GL11.glRotated(5, 1, 0, 0); + GL11.glRotated(10, 0, 0, 1); + } + + bindTexture(ResourceManager.lantern_rusty_tex); + ResourceManager.lantern.renderPart("Lantern"); + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + if(lantern.isBroken) { + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5); + GL11.glColor3f(1F * mult, 0, 0); + } else { + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5) * 0.5F + 0.5F; + GL11.glColor3f(0, 1F * mult, 0); + } + ResourceManager.lantern.renderPart("Light"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java new file mode 100644 index 000000000..a57b0cce3 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPad.java @@ -0,0 +1,52 @@ +package com.hbm.render.tileentity; + +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderMissileGeneric; +import com.hbm.tileentity.bomb.TileEntityLaunchPad; + +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class RenderLaunchPad extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + bindTexture(ResourceManager.missile_pad_tex); + ResourceManager.missile_pad.renderAll(); + + if(tileEntity instanceof TileEntityLaunchPad) { + ItemStack toRender = ((TileEntityLaunchPad) tileEntity).toRender; + + if(toRender != null) { + GL11.glTranslated(0, 1, 0); + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(toRender).makeSingular()); + if(renderer != null) renderer.accept(this.field_147501_a.field_147553_e); + } + } + + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java new file mode 100644 index 000000000..4ddd583dd --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadLarge.java @@ -0,0 +1,131 @@ +package com.hbm.render.tileentity; + +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.items.weapon.ItemMissile.MissileFormFactor; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.item.ItemRenderMissileGeneric; +import com.hbm.tileentity.bomb.TileEntityLaunchPadLarge; + +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderLaunchPadLarge extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 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; + } + + TileEntityLaunchPadLarge pad = (TileEntityLaunchPadLarge) tileEntity; + + bindTexture(ResourceManager.missile_erector_tex); + ResourceManager.missile_erector.renderPart("Pad"); + + if(pad.formFactor >= 0 && pad.formFactor < ItemMissile.MissileFormFactor.values().length) { + + MissileFormFactor formFactor = MissileFormFactor.values()[pad.formFactor]; + String[] parts = null; + double[] offset = null; + + switch(formFactor) { + case ABM: parts = new String[] {"ABM_Pad", "ABM_Erector", "ABM_Pivot", "ABM_Rope"}; + offset = new double[] {1.5D, 1.25D}; + bindTexture(ResourceManager.missile_erector_abm_tex); break; + case MICRO: parts = new String[] {"Micro_Pad", "Micro_Erector", "Micro_Pivot", "Micro_Rope"}; + offset = new double[] {1.5D, 1.25D}; + bindTexture(ResourceManager.missile_erector_micro_tex); break; + case V2: parts = new String[] {"V2_Pad", "V2_Erector", "V2_Pivot", "V2_Rope"}; + offset = new double[] {1.75D, 1.25D}; + bindTexture(ResourceManager.missile_erector_v2_tex); break; + case STRONG: parts = new String[] {"Strong_Pad", "Strong_Erector", "Strong_Pivot", "Strong_Rope"}; + offset = new double[] {3D, 1.5D}; + bindTexture(ResourceManager.missile_erector_strong_tex); break; + case HUGE: parts = new String[] {"Huge_Pad", "Huge_Erector", "Huge_Pivot", "Huge_Rope"}; + offset = new double[] {3D, 1.5D}; + bindTexture(ResourceManager.missile_erector_huge_tex); break; + case ATLAS: parts = new String[] {"Atlas_Pad", "Atlas_Erector", "Atlas_Pivot", "Atlas_Rope"}; + offset = new double[] {4D, 1.5D}; + bindTexture(ResourceManager.missile_erector_atlas_tex); break; + case OTHER: parts = new String[] {"ABM_Pad", "ABM_Erector", "ABM_Pivot", "ABM_Rope"}; + offset = new double[] {1.5D, 1.25D}; + bindTexture(ResourceManager.missile_erector_abm_tex); break; + } + + float erectorAngle = pad.prevErector + (pad.erector - pad.prevErector) * f; + float erectorLift = pad.prevLift + (pad.lift - pad.prevLift) * f; + + GL11.glPushMatrix(); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missile_erector.renderPart(parts[0]); + if(pad.toRender != null && pad.erected) ResourceManager.missile_erector.renderPart(parts[3]); + GL11.glTranslated(0, offset[1], -offset[0]); + GL11.glRotatef(-erectorAngle, 1, 0, 0); + GL11.glTranslated(0, -offset[1], offset[0]); + ResourceManager.missile_erector.renderPart(parts[2]); + GL11.glTranslatef(0, erectorLift, 0); + ResourceManager.missile_erector.renderPart(parts[1]); + GL11.glShadeModel(GL11.GL_FLAT); + + if(pad.erected) { + GL11.glPopMatrix(); + GL11.glPushMatrix(); + } + + if(pad.toRender != null && (pad.erected || pad.readyToLoad)) { + GL11.glTranslated(0, 2, 0); + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(pad.toRender).makeSingular()); + if(renderer != null) renderer.accept(this.field_147501_a.field_147553_e); + } + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.launch_pad_large); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3.75, 0); + GL11.glScaled(1.625, 1.625, 1.625); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.missile_erector_tex); + ResourceManager.missile_erector.renderPart("Pad"); + bindTexture(ResourceManager.missile_erector_atlas_tex); + ResourceManager.missile_erector.renderPart("Atlas_Pad"); + ResourceManager.missile_erector.renderPart("Atlas_Erector"); + ResourceManager.missile_erector.renderPart("Atlas_Pivot"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadRusted.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadRusted.java new file mode 100644 index 000000000..3b0dec424 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadRusted.java @@ -0,0 +1,72 @@ +package com.hbm.render.tileentity; + +import java.util.function.Consumer; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.item.ItemRenderMissileGeneric; +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; + +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderLaunchPadRusted extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + bindTexture(ResourceManager.missile_pad_rusted_tex); + ResourceManager.missile_pad.renderAll(); + + if(tileEntity instanceof TileEntityLaunchPadRusted) { + TileEntityLaunchPadRusted launchpad = (TileEntityLaunchPadRusted) tileEntity; + if(launchpad.missileLoaded) { + GL11.glTranslated(0, 1, 0); + Consumer renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(ModItems.missile_doomsday_rusted).makeSingular()); + if(renderer != null) renderer.accept(this.field_147501_a.field_147553_e); + } + } + + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.launch_pad_rusted); + } + + @Override + public IItemRenderer getRenderer() { + + return new ItemRenderBase() { + @Override public void renderInventory() { + GL11.glTranslated(0, -1, 0); + GL11.glScaled(3, 3, 3); + } + @Override public void renderCommon() { + bindTexture(ResourceManager.missile_pad_rusted_tex); ResourceManager.missile_pad.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java deleted file mode 100644 index 047155832..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ /dev/null @@ -1,212 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.bomb.TileEntityLaunchPad; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderLaunchPadTier1 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); - - bindTexture(ResourceManager.missile_pad_tex); - ResourceManager.missile_pad.renderAll(); - - GL11.glDisable(GL11.GL_CULL_FACE); - int state = 0; - - if(tileEntity instanceof TileEntityLaunchPad) - state = ((TileEntityLaunchPad)tileEntity).state; - - GL11.glTranslated(0, 1, 0); - - if(state == 1) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_HE_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 2) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_HE_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 3) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_CL_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 4) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileNuclear_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(state == 5) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_IN_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 6) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_BU_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 7) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_IN_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 8) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_CL_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 9) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_BU_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 10) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_HE_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 11) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_IN_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 12) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_CL_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 13) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_BU_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 14) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileEndo_tex); - ResourceManager.missileThermo.renderAll(); - } - if(state == 15) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileExo_tex); - ResourceManager.missileThermo.renderAll(); - } - if(state == 16) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileMIRV_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(state == 17) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileDoomsday_tex); - ResourceManager.missileDoomsday.renderAll(); - } - if(state == 18) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileTaint_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 19) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicro_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 20) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileCarrier_tex); - ResourceManager.missileCarrier.renderAll(); - GL11.glTranslated(0.0D, 0.5D, 0.0D); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - bindTexture(ResourceManager.missileBooster_tex); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(-2.5D, 0.0D, 0.0D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, -2.5D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - } - if(state == 21) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileAA_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 22) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroBHole_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 23) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroSchrab_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 24) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroEMP_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 25) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_EMP_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 26) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileVolcano_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(state == 27) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileShuttle_tex); - ResourceManager.missileShuttle.renderAll(); - } - - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java index 20e1c131b..7f8b6b0c8 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchTable.java @@ -2,8 +2,8 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.main.ResourceManager; import com.hbm.render.util.MissileMultipart; import com.hbm.render.util.MissilePronter; @@ -87,7 +87,7 @@ public class RenderLaunchTable extends TileEntitySpecialRenderer { emptyM.renderAll(); } else { - if(launcher.load != null && launcher.load.fuselage != null && ((ItemMissile)launcher.load.fuselage).top == launcher.padSize) { + if(launcher.load != null && launcher.load.fuselage != null && ((ItemCustomMissilePart)launcher.load.fuselage).top == launcher.padSize) { bindTexture(connector); connectorM.renderAll(); } else { diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index d25492de0..738152d74 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -1,16 +1,18 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; +import com.hbm.items.armor.ArmorTrenchmaster; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.main.ResourceManager; -import com.hbm.render.model.ModelFatman; -import com.hbm.render.model.ModelLeverAction; import com.hbm.util.Tuple.Quartet; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureMap; @@ -18,7 +20,6 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; public class RenderLoot extends TileEntitySpecialRenderer { @@ -38,15 +39,14 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(item.getX(), item.getY(), item.getZ()); - if(stack.getItem() == ModItems.ammo_nuke) { + if(stack.getItem() == ModItems.ammo_standard && stack.getItemDamage() >= EnumAmmo.NUKE_STANDARD.ordinal() && stack.getItemDamage() <= EnumAmmo.NUKE_HIVE.ordinal()) { renderNuke(); - } else if(stack.getItem() == ModItems.gun_fatman || stack.getItem() == ModItems.gun_proto || stack.getItem() == ModItems.gun_mirv) { - renderLauncher(); - - } else if(stack.getItem() == ModItems.gun_lever_action) { + } else if(stack.getItem() == ModItems.gun_maresleg) { renderShotgun(); + } else if(stack.getItem() instanceof ArmorTrenchmaster) { + renderTrenchmaster(stack); } else { renderStandardItem(item.getW()); } @@ -57,6 +57,57 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + private void renderTrenchmaster(ItemStack stack) { + GL11.glPushMatrix(); + GL11.glTranslated(0.5, 1.5, 0.5); + GL11.glScaled(0.0625, 0.0625, 0.0625); + GL11.glRotated(180, 1, 0, 0); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + if(stack.getItem() == ModItems.trenchmaster_helmet) { + bindTexture(ResourceManager.trenchmaster_helmet); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + ResourceManager.armor_trenchmaster.renderPart("Helmet"); + GL11.glDisable(GL11.GL_BLEND); + float lastX = OpenGlHelper.lastBrightnessX; + float lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_LIGHTING); + ResourceManager.armor_trenchmaster.renderPart("Light"); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + } + if(stack.getItem() == ModItems.trenchmaster_plate) { + bindTexture(ResourceManager.trenchmaster_chest); + ResourceManager.armor_trenchmaster.renderPart("Chest"); + bindTexture(ResourceManager.trenchmaster_arm); + GL11.glPushMatrix(); + GL11.glRotated(-3, 1, 0, 0); + ResourceManager.armor_trenchmaster.renderPart("LeftArm"); + ResourceManager.armor_trenchmaster.renderPart("RightArm"); + GL11.glPopMatrix(); + } + if(stack.getItem() == ModItems.trenchmaster_legs) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + ResourceManager.armor_trenchmaster.renderPart("LeftLeg"); + GL11.glPushMatrix(); + GL11.glRotated(-0.1, 1, 0, 0); + ResourceManager.armor_trenchmaster.renderPart("RightLeg"); + GL11.glPopMatrix(); + } + if(stack.getItem() == ModItems.trenchmaster_boots) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + ResourceManager.armor_trenchmaster.renderPart("LeftBoot"); + GL11.glPushMatrix(); + GL11.glRotated(-0.1, 1, 0, 0); + ResourceManager.armor_trenchmaster.renderPart("RightBoot"); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + private void renderNuke() { GL11.glScaled(0.5, 0.5, 0.5); GL11.glTranslated(1, 0.5, 1); @@ -66,45 +117,43 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); } - protected ModelFatman launcher; - private void renderLauncher() { - - if(launcher == null) - launcher = new ModelFatman(); - - GL11.glRotated(180, 1, 0, 0); - GL11.glRotated(3, 0, 0, 1); - GL11.glTranslated(0.5, -0.3751, -0.625); - - bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/FatmanLauncher.png")); - launcher.render(null, 0F, 0F, 0F, 0F, 0F, 0.0625F, new ItemStack(ModItems.gun_fatman)); - } - - protected ModelLeverAction shotgun; private void renderShotgun() { - - if(shotgun == null) - shotgun = new ModelLeverAction(); - GL11.glScaled(0.25, 0.25, 0.25); - GL11.glTranslated(3, 0.0625, 2); - GL11.glRotated(-25, 0, 1, 0); + GL11.glScaled(0.125, 0.125, 0.125); + GL11.glTranslated(3, 0, 0); + GL11.glRotated(25, 0, 1, 0); GL11.glRotated(90, 1, 0, 0); - bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverAction.png")); - shotgun.render(null, 0F, 0F, 0F, 0F, 0F, 0.0625F); + GL11.glRotated(90, 0, 1, 0); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + bindTexture(ResourceManager.maresleg_tex); + ResourceManager.maresleg.renderAll(); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); } private void renderStandardItem(ItemStack stack) { GL11.glTranslated(0.25, 0, 0.25); GL11.glScaled(0.5, 0.5, 0.5); GL11.glRotated(90, 1, 0, 0); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); bindTexture(TextureMap.locationItemsTexture); - IIcon icon = stack.getIconIndex(); - float f14 = icon.getMinU(); - float f15 = icon.getMaxU(); - float f4 = icon.getMinV(); - float f5 = icon.getMaxV(); - ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + + for(int i = 0; i < stack.getItem().getRenderPasses(stack.getItemDamage()); i++) { + + IIcon icon = stack.getItem().getIcon(stack, i); + float f14 = icon.getMinU(); + float f15 = icon.getMaxU(); + float f4 = icon.getMinV(); + float f5 = icon.getMaxV(); + + int k1 = stack.getItem().getColorFromItemStack(stack, i); + float f10 = (float) (k1 >> 16 & 255) / 255.0F; + float f11 = (float) (k1 >> 8 & 255) / 255.0F; + float f12 = (float) (k1 & 255) / 255.0F; + GL11.glColor4f(1.0F * f10, 1.0F * f11, 1.0F * f12, 1.0F); + + ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + } } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java b/src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java deleted file mode 100644 index fbcc4b08c..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderMachineShredder extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glRotatef(180, 0F, 1F, 0F); - - bindTexture(ResourceManager.shredder_tex); - ResourceManager.shredder.renderPart("Base"); - - double side = 0.3D; - double height = 2.75D; - float rot = (System.currentTimeMillis() / 5) % 360; - - GL11.glPushMatrix(); - GL11.glTranslated(side, height, 0); - GL11.glRotatef(rot, 0F, 0F, 1F); - ResourceManager.shredder.renderPart("Blades1"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(-side, height, 0); - GL11.glRotatef(rot, 0F, 0F, -1F); - ResourceManager.shredder.renderPart("Blades2"); - GL11.glPopMatrix(); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java b/src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java deleted file mode 100644 index a034556c5..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderMiningDrill.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderMiningDrill 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); - GL11.glRotatef(180, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(90, 0F, 1F, 0F); break; - } - - bindTexture(ResourceManager.drill_body_tex); - - ResourceManager.drill_body.renderAll(); - - GL11.glPopMatrix(); - - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - GL11.glRotatef(((TileEntityMachineMiningDrill)tileEntity).rotation, 0F, 1F, 0F); - - bindTexture(ResourceManager.drill_bolt_tex); - ResourceManager.drill_bolt.renderAll(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java b/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java index a41bdf06b..3168f7c12 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java @@ -2,38 +2,66 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderNukeGadget extends TileEntitySpecialRenderer { +public class RenderNukeGadget extends TileEntitySpecialRenderer implements IItemRendererProvider { - @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()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata()) { + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; } - bindTexture(ResourceManager.bomb_gadget_tex); - ResourceManager.bomb_gadget.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_gadget_tex); + ResourceManager.bomb_gadget.renderPart("Body"); + + if(Minecraft.getMinecraft().gameSettings.fancyGraphics) + ResourceManager.bomb_gadget.renderPart("Wires"); + GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.nuke_gadget); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glRotatef(-90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_gadget_tex); + ResourceManager.bomb_gadget.renderPart("Body"); + + if(Minecraft.getMinecraft().gameSettings.fancyGraphics) + ResourceManager.bomb_gadget.renderPart("Wires"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java b/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java deleted file mode 100644 index 415d2c26f..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderNukeN45 extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - boolean standing = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord - 1, tileEntity.zCoord).isNormalCube(); - - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.universal); - - GL11.glPushMatrix(); - - //GL11.glScaled(2.0D, 2.0D, 2.0D); - - if(standing) { - ResourceManager.n45_stand.renderAll(); - } - - double d = 0.25; - - if(((TileEntityNukeN45)tileEntity).primed) - d /= 4D; - - GL11.glTranslated(0, standing ? 1D : 0.5D, 0); - - ResourceManager.n45_globe.renderAll(); - - GL11.glRotated(90, 1, 0, 0); - - for(int i = 0; i < 8; i++) { - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(45, 0, 0, 1); - } - - GL11.glRotated(45, 0, 0, 1); - - for(int i = 0; i < 4; i++) { - GL11.glRotated(-45, 1, 0, 0); - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(45, 1, 0, 0); - GL11.glRotated(90, 0, 0, 1); - } - - GL11.glRotated(-90, 0, 0, 1); - - for(int i = 0; i < 4; i++) { - GL11.glRotated(45, 1, 0, 0); - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(-45, 1, 0, 0); - GL11.glRotated(90, 0, 0, 1); - } - - GL11.glRotated(45, 0, 0, 1); - GL11.glRotated(-90, 1, 0, 0); - - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - - if(!standing) { - int depth = 0; - - for(int i = 0; i < 51; i++) { - - if(!tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord - i - 1, tileEntity.zCoord).isNormalCube()) { - depth++; - } else { - break; - } - } - - if(depth != 0 && depth < 51) { - - GL11.glTranslated(0, -1D, 0); - - for(int i = 0; i < depth + 1; i++) { - - ResourceManager.n45_chain.renderAll(); - GL11.glTranslated(0, -1, 0); - } - } - } - - GL11.glPopMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java b/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java index 64f452ea5..c1a5032c3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java @@ -2,38 +2,58 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderNukeTsar extends TileEntitySpecialRenderer { +public class RenderNukeTsar extends TileEntitySpecialRenderer implements IItemRendererProvider { - @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()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata()) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; } - bindTexture(ResourceManager.bomb_tsar_tex); - ResourceManager.bomb_tsar.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_tsar_tex); + ResourceManager.bomb_tsar.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.nuke_tsar); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glScaled(2.25, 2.25, 2.25); + } + public void renderCommon() { + GL11.glTranslated(1.5, 0, 0); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_tsar_tex); ResourceManager.bomb_tsar.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderOilDuct.java b/src/main/java/com/hbm/render/tileentity/RenderOilDuct.java deleted file mode 100644 index ec867972c..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderOilDuct.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityOilDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderOilDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/oil_duct_alt.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityOilDuct cable = (TileEntityOilDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i]); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - } - - public void drawConnection(ForgeDirection direction) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderOreSlopper.java b/src/main/java/com/hbm/render/tileentity/RenderOreSlopper.java new file mode 100644 index 000000000..9f251eda2 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderOreSlopper.java @@ -0,0 +1,129 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.RenderDecoItem; +import com.hbm.tileentity.machine.TileEntityMachineOreSlopper; + +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.IItemRenderer; + +public class RenderOreSlopper extends TileEntitySpecialRenderer implements IItemRendererProvider { + + private RenderItem itemRenderer = new RenderDecoItem(this); + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + TileEntityMachineOreSlopper slopper = (TileEntityMachineOreSlopper) tile; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.ore_slopper_tex); + ResourceManager.ore_slopper.renderPart("Base"); + + GL11.glPushMatrix(); + + double slide = slopper.prevSlider + (slopper.slider - slopper.prevSlider) * interp; + GL11.glTranslated(0, 0, slide * -3); + ResourceManager.ore_slopper.renderPart("Slider"); + + GL11.glPushMatrix(); + double extend = (slopper.prevBucket + (slopper.bucket - slopper.prevBucket) * interp) * 1.5; + GL11.glTranslated(0, -MathHelper.clamp_double(extend - 0.25, 0, 1.25), 0); + ResourceManager.ore_slopper.renderPart("Hydraulics"); + GL11.glTranslated(0, -MathHelper.clamp_double(extend, 0, 1.25), 0); + ResourceManager.ore_slopper.renderPart("Bucket"); + + if(slopper.animation == slopper.animation.LIFTING) { + GL11.glTranslated(0.0625D, 4.3125D, 2D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glRotatef(-90, 1F, 0F, 0F); + ItemStack stack = new ItemStack(ModItems.bedrock_ore, 1, 0); + EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); + item.getEntityItem().stackSize = 1; + item.hoverStart = 0.0F; + RenderItem.renderInFrame = true; + GL11.glScaled(1.75, 1.75, 1.75); + itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + bindTexture(ResourceManager.ore_slopper_tex); + } + + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + double blades = slopper.prevBlades + (slopper.blades - slopper.prevBlades) * interp; + + GL11.glPushMatrix(); + GL11.glTranslated(0.375, 2.75, 0); + GL11.glRotated(blades, 0, 0, 1); + GL11.glTranslated(-0.375, -2.75, 0); + ResourceManager.ore_slopper.renderPart("BladesLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(-0.375, 2.75, 0); + GL11.glRotated(-blades, 0, 0, 1); + GL11.glTranslated(0.375, -2.75, 0); + ResourceManager.ore_slopper.renderPart("BladesRight"); + GL11.glPopMatrix(); + + double fan = slopper.prevFan + (slopper.fan - slopper.prevFan) * interp; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.875, -1); + GL11.glRotated(-fan, 1, 0, 0); + GL11.glTranslated(0, -1.875, 1); + ResourceManager.ore_slopper.renderPart("Fan"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_ore_slopper); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(3.75, 3.75, 3.75); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotatef(-90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.ore_slopper_tex); + ResourceManager.ore_slopper.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java b/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java new file mode 100644 index 000000000..6f39d7389 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java @@ -0,0 +1,61 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; + +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class RenderPedestalTile extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 1, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + RenderHelper.enableStandardItemLighting(); + + TileEntityPedestal pedestal = (TileEntityPedestal) te; + + if(pedestal.item != null) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + ItemStack stack = pedestal.item.copy(); + GL11.glScaled(1.5, 1.5, 1.5); + + if(!(stack.getItemSpriteNumber() == 0 && stack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(stack.getItem()).getRenderType()))) { + GL11.glTranslated(0, 0.125, 0); + GL11.glRotatef(player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * interp + 180, 0.0F, -1.0F, 0.0F); + + if(!RenderManager.instance.options.fancyGraphics) { + GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); + } + + GL11.glTranslated(0, Math.sin((player.ticksExisted + interp) * 0.1) * 0.0625, 0); + } else { + GL11.glTranslated(0, Math.sin((player.ticksExisted + interp) * 0.1) * 0.0625 + 0.0625, 0); + } + + EntityItem dummy = new EntityItem(te.getWorldObj(), 0, 0, 0, stack); + dummy.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + } + + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPlasmaHeater.java b/src/main/java/com/hbm/render/tileentity/RenderPlasmaHeater.java index f16e7205a..0a268b920 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPlasmaHeater.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPlasmaHeater.java @@ -14,27 +14,26 @@ public class RenderPlasmaHeater extends TileEntitySpecialRenderer { public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { GL11.glPushMatrix(); - GL11.glTranslatef((float)x + 0.5F, (float)y, (float)z + 0.5F); - + GL11.glTranslatef((float) x + 0.5F, (float) y, (float) z + 0.5F); + GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glShadeModel(GL11.GL_SMOOTH); - + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + switch(te.getBlockMetadata() - BlockDummyable.offset) { case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; } - - GL11.glTranslatef(0, 0, 18); - - bindTexture(ResourceManager.iter_microwave); - ResourceManager.iter.renderPart("Microwave"); - GL11.glShadeModel(GL11.GL_FLAT); + GL11.glTranslatef(0, 0, 18); + + bindTexture(ResourceManager.iter_microwave); + ResourceManager.iter.renderPart("Microwave"); + + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } - } diff --git a/src/main/java/com/hbm/render/tileentity/RenderPlushie.java b/src/main/java/com/hbm/render/tileentity/RenderPlushie.java new file mode 100644 index 000000000..702817abe --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPlushie.java @@ -0,0 +1,146 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockPlushie.PlushieType; +import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.loader.HFRWavefrontObject; +import com.hbm.render.util.HorsePronter; +import com.hbm.util.EnumUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderPlushie extends TileEntitySpecialRenderer implements IItemRendererProvider { + + public static final IModelCustom yomiModel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/yomi.obj"), false).asVBO(); + public static final IModelCustom poohModel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/pooh.obj"), false).asVBO(); + public static final ResourceLocation yomiTex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/yomi.png"); + public static final ResourceLocation numbernineTex = new ResourceLocation(RefStrings.MODID, "textures/models/horse/numbernine.png"); + public static final ResourceLocation poohTex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/pooh.png"); + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glRotated(22.5D * tile.getBlockMetadata() + 90, 0, -1, 0); + TileEntityPlushie te = (TileEntityPlushie) tile; + + if(te.squishTimer > 0) { + double squish = te.squishTimer - interp; + GL11.glScaled(1, 1 + (-(Math.sin(squish)) * squish) * 0.025, 1); + } + + switch(te.type) { + case NONE: break; + case YOMI: GL11.glScaled(0.5, 0.5, 0.5); break; + case NUMBERNINE: GL11.glScaled(0.75, 0.75, 0.75); break; + case POOH: GL11.glScaled(0.75, 0.75, 0.75); break; + } + renderPlushie(te.type); + + GL11.glPopMatrix(); + } + + public static void renderPlushie(PlushieType type) { + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + switch(type) { + case NONE: break; + case YOMI: + Minecraft.getMinecraft().getTextureManager().bindTexture(yomiTex); + yomiModel.renderAll(); + break; + case NUMBERNINE: + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(15, -1, 0, 0); + GL11.glTranslated(0, -0.25, 0.75); + Minecraft.getMinecraft().getTextureManager().bindTexture(numbernineTex); + HorsePronter.reset(); + double r = 45; + HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); + HorsePronter.pose(HorsePronter.id_tail, 0, 60, 90); + HorsePronter.pose(HorsePronter.id_lbl, 0, -75 + r, 35); + HorsePronter.pose(HorsePronter.id_rbl, 0, -75 + r, -35); + HorsePronter.pose(HorsePronter.id_lfl, 0, r - 25, 5); + HorsePronter.pose(HorsePronter.id_rfl, 0, r - 25, -5); + HorsePronter.pose(HorsePronter.id_head, 0, r + 15, 0); + HorsePronter.pront(); + GL11.glRotated(15, 1, 0, 0); + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glTranslated(0, 1, -0.6875); + double s = 1.125D; + GL11.glScaled(0.0625 * s, 0.0625 * s, 0.0625 * s); + GL11.glRotated(180, 1, 0, 0); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.no9); + ResourceManager.armor_no9.renderPart("Helmet"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.no9_insignia); + ResourceManager.armor_no9.renderPart("Insignia"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + ItemStack stack = new ItemStack(ModItems.cigarette); + double scale = 0.25; + GL11.glTranslated(-0.06, 1.13, -0.42); + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(60, 0, 0, -1); + Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationItemsTexture); + IIcon icon = stack.getIconIndex(); + ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + break; + case POOH: + Minecraft.getMinecraft().getTextureManager().bindTexture(poohTex); + poohModel.renderAll(); + break; + } + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.plushie); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -6, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glTranslated(0, 0.25, 0); + GL11.glEnable(GL11.GL_CULL_FACE); + PlushieType type = EnumUtil.grabEnumSafely(PlushieType.class, item.getItemDamage()); + + switch(type) { + case NONE: break; + case YOMI: GL11.glScaled(1.25, 1.25, 1.25); break; + case NUMBERNINE: GL11.glTranslated(0, 0.25, 0.25); GL11.glScaled(1.25, 1.25, 1.25); break; + case POOH: GL11.glTranslated(0, 0.25, 0); GL11.glScaled(1.5, 1.5, 1.5); break; + } + renderPlushie(type); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPump.java b/src/main/java/com/hbm/render/tileentity/RenderPump.java new file mode 100644 index 000000000..8b9dc8756 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPump.java @@ -0,0 +1,102 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachinePumpBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPump extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityMachinePumpBase engine = (TileEntityMachinePumpBase) tile; + float angle = engine.lastRotor + (engine.rotor - engine.lastRotor) * interp; + renderCommon(angle, engine.getBlockType() == ModBlocks.pump_steam ? 0 : 1); + //renderCommon(0, engine.getBlockType() == ModBlocks.pump_steam ? 0 : 1); + + GL11.glPopMatrix(); + } + + private void renderCommon(double rot, int type) { + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + if(type == 0) bindTexture(ResourceManager.pump_steam_tex); + else bindTexture(ResourceManager.pump_electric_tex); + ResourceManager.pump.renderPart("Base"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 2.25, 0); + GL11.glRotated(rot - 90, 0, 0, 1); + GL11.glTranslated(0, -2.25, 0); + ResourceManager.pump.renderPart("Rotor"); + GL11.glPopMatrix(); + + double sin = Math.sin(rot * Math.PI / 180D) * 0.5D - 0.5D; + double cos = Math.cos(rot * Math.PI / 180D) * 0.5D; + double ang = Math.acos(cos / 2D); + double cath = Math.sqrt(1 + (cos * cos) / 2); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1 - cath + sin, 0); + GL11.glTranslated(0, 4.75, 0); + GL11.glRotated(ang * 180D / Math.PI - 90D, 0, 0, -1); + GL11.glTranslated(0, -4.75, 0); + ResourceManager.pump.renderPart("Arms"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1 - cath + sin, 0); + ResourceManager.pump.renderPart("Piston"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.pump_steam); + } + + @Override + public Item[] getItemsForRenderer() { + return new Item[] { + Item.getItemFromBlock(ModBlocks.pump_steam), + Item.getItemFromBlock(ModBlocks.pump_electric) + }; + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommonWithStack(ItemStack item) { + RenderPump.this.renderCommon(System.currentTimeMillis() % 3600 * 0.1F, item.getItem() == Item.getItemFromBlock(ModBlocks.pump_steam) ? 0 : 1); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylon.java b/src/main/java/com/hbm/render/tileentity/RenderPylon.java index f36a62bbf..ef270f2f3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylon.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylon.java @@ -23,6 +23,8 @@ public class RenderPylon extends RenderPylonBase { public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { TileEntityPylon pyl = (TileEntityPylon)te; + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F - ((1F / 16F) * 14F), (float) z + 0.5F); GL11.glRotatef(180, 0F, 0F, 1F); @@ -31,7 +33,7 @@ public class RenderPylon extends RenderPylonBase { GL11.glPopMatrix(); GL11.glPushMatrix(); - this.renderSingleLine(pyl, x, y, z); + this.renderLinesGeneric(pyl, x, y, z); GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java index 2dda796c5..4db727ba5 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonBase.java @@ -2,10 +2,10 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.config.ClientConfig; +import com.hbm.main.ResourceManager; import com.hbm.tileentity.network.TileEntityPylonBase; -import com.hbm.tileentity.network.TileEntityPylonBase.ConnectionType; -import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -15,63 +15,6 @@ import net.minecraft.world.World; public abstract class RenderPylonBase extends TileEntitySpecialRenderer { - //TODO: adapt this into a more generic form for multi wire pylons - @Deprecated - public void renderSingleLine(TileEntityPylonBase pyl, double x, double y, double z) { - - for(int i = 0; i < pyl.connected.size(); i++) { - - int[] wire = pyl.connected.get(i); - TileEntity tile = pyl.getWorldObj().getTileEntity(wire[0], wire[1], wire[2]); - - if(tile instanceof TileEntityPylonBase) { - TileEntityPylonBase pylon = (TileEntityPylonBase) tile; - Vec3 myOffset = pyl.getMountPos()[0]; - Vec3 theirOffset = pylon.getMountPos()[0]; - - double conX0 = pyl.xCoord + myOffset.xCoord; - double conY0 = pyl.yCoord + myOffset.yCoord; - double conZ0 = pyl.zCoord + myOffset.zCoord; - double conX1 = pylon.xCoord + theirOffset.xCoord; - double conY1 = pylon.yCoord + theirOffset.yCoord; - double conZ1 = pylon.zCoord + theirOffset.zCoord; - - double wX = (conX1 - conX0) / 2D; - double wY = (conY1 - conY0) / 2D; - double wZ = (conZ1 - conZ0) / 2D; - - float count = 10; - Vec3 delta = Vec3.createVectorHelper(conX1 - conX0, conY1 - conY0, conZ1 - conZ0); - double hang = delta.lengthVector() / 15D; - - for(float j = 0; j < count; j++) { - - float k = j + 1; - - double ja = j + 0.5D; - double ix = conX0 + delta.xCoord / (double)(count * 2) * ja; - double iy = conY0 + delta.yCoord / (double)(count * 2) * ja - Math.sin(j / count * Math.PI * 0.5) * hang; - double iz = conZ0 + delta.zCoord / (double)(count * 2) * ja; - - //pylon.getWorldObj().spawnParticle("reddust", ix, iy, iz, 0.01 + j * 0.1, 0, 0); - - int brightness = pyl.getWorldObj().getLightBrightnessForSkyBlocks(MathHelper.floor_double(ix), MathHelper.floor_double(iy), MathHelper.floor_double(iz), 0); - int lX = brightness % 65536; - int lY = brightness / 65536; - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); - - drawLineSegment( - x + myOffset.xCoord + (wX * j / count), - y + myOffset.yCoord + (wY * j / count) - Math.sin(j / count * Math.PI * 0.5) * hang, - z + myOffset.zCoord + (wZ * j / count), - x + myOffset.xCoord + (wX * k / count), - y + myOffset.yCoord + (wY * k / count) - Math.sin(k / count * Math.PI * 0.5) * hang, - z + myOffset.zCoord + (wZ * k / count)); - } - } - } - } - /** * The closest we have to a does-all solution. It will figure out if it needs to draw multiple lines, * iterate through all the mounting points, try to find the matching mounting points and then draw the lines. @@ -82,6 +25,8 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { */ public void renderLinesGeneric(TileEntityPylonBase pyl, double x, double y, double z) { + this.bindTexture(pyl.color == 0 ? ResourceManager.wire_tex : ResourceManager.wire_greyscale_tex); + for(int i = 0; i < pyl.connected.size(); i++) { int[] wire = pyl.connected.get(i); @@ -93,7 +38,7 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { Vec3[] m1 = pyl.getMountPos(); Vec3[] m2 = pylon.getMountPos(); - int lineCount = Math.max(pyl.getConnectionType() == ConnectionType.QUAD ? 4 : 1, pylon.getConnectionType() == ConnectionType.QUAD ? 4 : 1); + int lineCount = Math.min(m1.length, m2.length); for(int line = 0; line < lineCount; line++) { @@ -155,33 +100,69 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); float count = 10; + Tessellator tess = Tessellator.instance; - for(float j = 0; j < count; j++) { + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + tess.startDrawingQuads(); + Vec3 delta = Vec3.createVectorHelper(x0 - x1, y0 - y1, z0 - z1); + + double girth = 0.03125D; + double hyp = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double yaw = Math.atan2(delta.xCoord, delta.zCoord); + double pitch = Math.atan2(delta.yCoord, hyp); + double rotator = Math.PI * 0.5D; + double newPitch = pitch + rotator; + double newYaw = yaw + rotator; + double iZ = Math.cos(yaw) * Math.cos(newPitch) * girth; + double iX = Math.sin(yaw) * Math.cos(newPitch) * girth; + double iY = Math.sin(newPitch) * girth; + double jZ = Math.cos(newYaw) * girth; + double jX = Math.sin(newYaw) * girth; + + if(!ClientConfig.RENDER_CABLE_HANG.get()) { + tess.setColorOpaque_I(pyl.color == 0 ? 0xffffff : pyl.color); + drawLineSegment(tess, x0, y0, z0, x1, y1, z1, iX, iY, iZ, jX, jZ); + } else { - float k = j + 1; + double hang = Math.min(delta.lengthVector() / 15D, 2.5D); - double deltaX = x1 - x0; - double deltaY = y1 - y0; - double deltaZ = z1 - z0; - - double ja = j + 0.5D; - double ix = pyl.xCoord + x0 + deltaX / (double)(count * 2) * ja; - double iy = pyl.yCoord + y0 + deltaY / (double)(count * 2) * ja - Math.sin(j / count * Math.PI * 0.5); - double iz = pyl.zCoord + z0 + deltaZ / (double)(count * 2) * ja; - - int brightness = world.getLightBrightnessForSkyBlocks(MathHelper.floor_double(ix), MathHelper.floor_double(iy), MathHelper.floor_double(iz), 0); - int lX = brightness % 65536; - int lY = brightness / 65536; - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); - - drawLineSegment( - x0 + (deltaX * j / count), - y0 + (deltaY * j / count) - Math.sin(j / count * Math.PI * 0.5), - z0 + (deltaZ * j / count), - x0 + (deltaX * k / count), - y0 + (deltaY * k / count) - Math.sin(k / count * Math.PI * 0.5), - z0 + (deltaZ * k / count)); + for(float j = 0; j < count; j++) { + + float k = j + 1; + + double sagJ = Math.sin(j / count * Math.PI * 0.5) * hang; + double sagK = Math.sin(k / count * Math.PI * 0.5) * hang; + double sagMean = (sagJ + sagK) / 2D; + + double deltaX = x1 - x0; + double deltaY = y1 - y0; + double deltaZ = z1 - z0; + + double ja = j + 0.5D; + double ix = pyl.xCoord + x0 + deltaX / (double)(count) * ja; + double iy = pyl.yCoord + y0 + deltaY / (double)(count) * ja - sagMean; + double iz = pyl.zCoord + z0 + deltaZ / (double)(count) * ja; + + int brightness = world.getLightBrightnessForSkyBlocks(MathHelper.floor_double(ix), MathHelper.floor_double(iy), MathHelper.floor_double(iz), 0); + tess.setBrightness(brightness); + + tess.setColorOpaque_I(pyl.color == 0 ? 0xffffff : pyl.color); + + drawLineSegment(tess, + x0 + (deltaX * j / count), + y0 + (deltaY * j / count) - sagJ, + z0 + (deltaZ * j / count), + x0 + (deltaX * k / count), + y0 + (deltaY * k / count) - sagK, + z0 + (deltaZ * k / count), + iX, iY, iZ, jX, jZ); + } } + tess.draw(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); } @@ -196,32 +177,28 @@ public abstract class RenderPylonBase extends TileEntitySpecialRenderer { * @param b * @param c */ - public void drawLineSegment(double x, double y, double z, double a, double b, double c) { + public void drawLineSegment(Tessellator tessellator, double x, double y, double z, double a, double b, double c, double iX, double iY, double iZ, double jX, double jZ) { - double girth = 0.03125D; + double deltaX = a - x; + double deltaY = b - y; + double deltaZ = c - z; + double length = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); + int wrap = (int) Math.ceil(length * 8); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawing(5); - tessellator.setColorOpaque_I(LINE_COLOR); - tessellator.addVertex(x, y + girth, z); - tessellator.addVertex(x, y - girth, z); - tessellator.addVertex(a, b + girth, c); - tessellator.addVertex(a, b - girth, c); - tessellator.addVertex(x + girth, y, z); - tessellator.addVertex(x - girth, y, z); - tessellator.addVertex(a + girth, b, c); - tessellator.addVertex(a - girth, b, c); - tessellator.addVertex(x, y, z + girth); - tessellator.addVertex(x, y, z - girth); - tessellator.addVertex(a, b, c + girth); - tessellator.addVertex(a, b, c - girth); - tessellator.draw(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_CULL_FACE); + if(deltaX + deltaZ < 0) { + wrap *= -1; + jZ *= -1; + jX *= -1; + } + + tessellator.addVertexWithUV(x + iX, y + iY, z + iZ, 0, 0); + tessellator.addVertexWithUV(x - iX, y - iY, z - iZ, 0, 1); + tessellator.addVertexWithUV(a - iX, b - iY, c - iZ, wrap, 1); + tessellator.addVertexWithUV(a + iX, b + iY, c + iZ, wrap, 0); + tessellator.addVertexWithUV(x + jX, y, z + jZ, 0, 0); + tessellator.addVertexWithUV(x - jX, y, z - jZ, 0, 1); + tessellator.addVertexWithUV(a - jX, b, c - jZ, wrap, 1); + tessellator.addVertexWithUV(a + jX, b, c + jZ, wrap, 0); } public static final int LINE_COLOR = 0xBB3311; diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java b/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java index a5fca8bb9..a70616ce7 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonLarge.java @@ -14,6 +14,7 @@ public class RenderPylonLarge extends RenderPylonBase { public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); switch(tile.getBlockMetadata() - BlockDummyable.offset) { case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; @@ -34,5 +35,4 @@ public class RenderPylonLarge extends RenderPylonBase { this.renderLinesGeneric(pyl, x, y, z); GL11.glPopMatrix(); } - } diff --git a/src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java b/src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java new file mode 100644 index 000000000..c37cd2881 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPylonMedium.java @@ -0,0 +1,87 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.network.TileEntityPylonMedium; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPylonMedium extends RenderPylonBase implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + TileEntityPylonMedium pyl = (TileEntityPylonMedium)tile; + + + if(tile.getBlockType() == ModBlocks.red_pylon_medium_steel || tile.getBlockType() == ModBlocks.red_pylon_medium_steel_transformer) + bindTexture(ResourceManager.pylon_medium_steel_tex); + else + bindTexture(ResourceManager.pylon_medium_tex); + + ResourceManager.pylon_medium.renderPart("Pylon"); + if(pyl.hasTransformer()) ResourceManager.pylon_medium.renderPart("Transformer"); + + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + this.renderLinesGeneric(pyl, x, y, z); + GL11.glPopMatrix(); + } + + @Override + public Item[] getItemsForRenderer() { + return new Item[] { + Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood), + Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood_transformer), + Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel), + Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel_transformer) + }; + } + + @Override + public Item getItemForRenderer() { return Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood); } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(1, -5, 0); + GL11.glScaled(4.5, 4.5, 4.5); + } + public void renderCommonWithStack(ItemStack stack) { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glTranslated(0.75, 0, 0); + + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel) || stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel_transformer)) + bindTexture(ResourceManager.pylon_medium_steel_tex); + else + bindTexture(ResourceManager.pylon_medium_tex); + + ResourceManager.pylon_medium.renderPart("Pylon"); + + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_wood_transformer) || stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon_medium_steel_transformer)) + ResourceManager.pylon_medium.renderPart("Transformer"); + } + }; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPyroOven.java b/src/main/java/com/hbm/render/tileentity/RenderPyroOven.java new file mode 100644 index 000000000..bd42f1fc1 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPyroOven.java @@ -0,0 +1,79 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.oil.TileEntityMachinePyroOven; +import com.hbm.util.BobMathUtil; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPyroOven extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + TileEntityMachinePyroOven pyro = (TileEntityMachinePyroOven) tile; + float anim = pyro.prevAnim + (pyro.anim - pyro.prevAnim) * f; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.pyrooven_tex); + ResourceManager.pyrooven.renderPart("Oven"); + + GL11.glPushMatrix(); + GL11.glTranslated(BobMathUtil.sps(anim * 0.125) / 2 - 0.5, 0, 0); + ResourceManager.pyrooven.renderPart("Slider"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(1.5, 0, 1.5); + GL11.glRotated(anim * -15D % 360D, 0, 1, 0); + GL11.glTranslated(-1.5, 0, -1.5); + ResourceManager.pyrooven.renderPart("Fan"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_pyrooven); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -1, 0); + GL11.glScaled(3.5, 3.5, 3.5); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.pyrooven_tex); + ResourceManager.pyrooven.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java index 0420f0ecb..2c19afce5 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java @@ -48,7 +48,7 @@ public class RenderRBMKControlRod extends TileEntitySpecialRenderer { double level = control.lastLevel + (control.level - control.lastLevel) * i; GL11.glTranslated(0, level, 0); - ResourceManager.rbmk_rods.renderPart("Lid"); + ResourceManager.rbmk_rods_vbo.renderPart("Lid"); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java index 465c33e67..a72e81da4 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java @@ -35,7 +35,7 @@ public class RenderRBMKLid extends TileEntitySpecialRenderer { if(rod.hasRod) hasRod = true; - if(rod.fluxFast + rod.fluxSlow > 5) + if(rod.lastFluxQuantity > 5) cherenkov = true; } @@ -71,36 +71,37 @@ public class RenderRBMKLid extends TileEntitySpecialRenderer { if(meta == RBMKBase.DIR_GLASS_LID.ordinal()) { bindTexture(texture_glass); } else { - if(control.getBlockType() instanceof RBMKBase) { bindTexture(((RBMKBase)control.getBlockType()).coverTexture); } else { bindTexture(texture); } + cherenkov = false; } - if((control instanceof TileEntityRBMKBoiler || control instanceof TileEntityRBMKHeater) && meta != RBMKBase.DIR_GLASS_LID.ordinal()) - ResourceManager.rbmk_rods.renderPart("Lid"); - ResourceManager.rbmk_element.renderPart("Lid"); + if((control instanceof TileEntityRBMKBoiler || control instanceof TileEntityRBMKHeater) && meta != RBMKBase.DIR_GLASS_LID.ordinal()) { + ResourceManager.rbmk_rods_vbo.renderPart("Lid"); + } else { + ResourceManager.rbmk_element_vbo.renderPart("Lid"); + } + GL11.glPopMatrix(); } if(hasRod) { - GL11.glPushMatrix(); bindTexture(texture_rods); for(int j = 0; j <= offset; j++) { - - ResourceManager.rbmk_element.renderPart("Rods"); + ResourceManager.rbmk_element_vbo.renderPart("Rods"); GL11.glTranslated(0, 1, 0); } + GL11.glPopMatrix(); } if(cherenkov) { - GL11.glTranslated(0, 0.75, 0); GL11.glDisable(GL11.GL_CULL_FACE); diff --git a/src/main/java/com/hbm/render/tileentity/RenderRFCable.java b/src/main/java/com/hbm/render/tileentity/RenderRFCable.java deleted file mode 100644 index 918d88d6a..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderRFCable.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityRFDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderRFCable extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/rf_cable.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityRFDuct cable = (TileEntityRFDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i]); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - - // Muehsam muss ich hier im BSH meine genialen Mods schreiben, obwohl ich die Zeit eigentlich doch besser nutzen koennte. - // Da mir das aber Spass macht, wird auch in Zukunft gutes Zeug von mir geben (und damit meine ich NICHT Drogen, etc.) - // Danke. - - //I didn't write this, but I'm gonna leave it there. - } - - public void drawConnection(ForgeDirection direction) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadar.java b/src/main/java/com/hbm/render/tileentity/RenderRadar.java index 45cc19fd0..6910c9b6e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadar.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadar.java @@ -3,7 +3,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineRadar; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -21,8 +21,8 @@ public class RenderRadar extends TileEntitySpecialRenderer { bindTexture(ResourceManager.radar_base_tex); ResourceManager.radar.renderPart("Base"); - TileEntityMachineRadar radar = (TileEntityMachineRadar) tileEntity; - GL11.glRotatef(radar.prevRotation + (radar.rotation - radar.prevRotation) * f, 0F, 1F, 0F); + TileEntityMachineRadarNT radar = (TileEntityMachineRadarNT) tileEntity; + GL11.glRotatef(radar.prevRotation + (radar.rotation - radar.prevRotation) * f, 0F, -1F, 0F); GL11.glTranslated(-0.125D, 0, 0); bindTexture(ResourceManager.radar_dish_tex); @@ -30,5 +30,4 @@ public class RenderRadar extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } - } diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadarLarge.java b/src/main/java/com/hbm/render/tileentity/RenderRadarLarge.java new file mode 100644 index 000000000..ab6c3bfad --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderRadarLarge.java @@ -0,0 +1,58 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderRadarLarge extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + bindTexture(ResourceManager.radar_large_tex); + ResourceManager.radar_large.renderPart("Radar"); + + TileEntityMachineRadarNT radar = (TileEntityMachineRadarNT) tileEntity; + GL11.glRotatef(radar.prevRotation + (radar.rotation - radar.prevRotation) * f, 0F, -1F, 0F); + + ResourceManager.radar_large.renderPart("Dish"); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_radar_large); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glRotated(180, 0, 1, 0); + GL11.glScaled(0.5, 0.5, 0.5); + bindTexture(ResourceManager.radar_large_tex); + ResourceManager.radar_large.renderPart("Radar"); + GL11.glRotated(System.currentTimeMillis() % 3600 * 0.1D, 0, -1, 0); + ResourceManager.radar_large.renderPart("Dish"); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java new file mode 100644 index 000000000..5980da6a6 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java @@ -0,0 +1,117 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineRadarNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; + +import api.hbm.entity.RadarEntry; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderRadarScreen extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @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; + } + + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) tileEntity; + + bindTexture(ResourceManager.radar_screen_tex); + ResourceManager.radar_screen.renderAll(); + + bindTexture(GUIMachineRadarNT.texture); + Tessellator tess = Tessellator.instance; + + if(screen.linked) { + GL11.glDepthMask(false); + tess.startDrawingQuads(); + + double offset = ((tileEntity.getWorldObj().getTotalWorldTime() % 56) + f) / 30D; + tess.setColorRGBA_I(0x00ff00, 0); + tess.addVertex(0.38, 2 - offset, 1.375); + tess.addVertex(0.38, 2 - offset, -0.375); + tess.setColorRGBA_I(0x00ff00, 50); + tess.addVertex(0.38, 2 - offset - 0.125, -0.375); + tess.addVertex(0.38, 2 - offset - 0.125, 1.375); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_SMOOTH); + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_FLAT); + + if(!screen.entries.isEmpty()) { + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + + for(RadarEntry entry : screen.entries) { + + double sX = (entry.posX - screen.refX) / ((double) screen.range + 1) * (0.875D); + double sZ = (entry.posZ - screen.refZ) / ((double) screen.range + 1) * (0.875D); + double size = 0.0625D; + tess.addVertexWithUV(0.38, 1 - sZ + size, 0.5 - sX + size, 216D / 256D, (entry.blipLevel * 8F + 8F) / 256F); + tess.addVertexWithUV(0.38, 1 - sZ + size, 0.5 - sX - size, 224D / 256D, (entry.blipLevel * 8F + 8F) / 256F); + tess.addVertexWithUV(0.38, 1 - sZ - size, 0.5 - sX - size, 224D / 256D, entry.blipLevel * 8F / 256F); + tess.addVertexWithUV(0.38, 1 - sZ - size, 0.5 - sX + size, 216D / 256D, entry.blipLevel * 8F / 256F); + } + tess.draw(); + } + GL11.glDepthMask(true); + } else { + int offset = 118 + tileEntity.getWorldObj().rand.nextInt(81); + tess.startDrawingQuads(); + tess.setColorOpaque_I(0xffffff); + tess.setNormal(0F, 1F, 0F); + tess.addVertexWithUV(0.38, 1.875, 1.375, 216D / 256D, (offset + 40F) / 256F); + tess.addVertexWithUV(0.38, 1.875, -0.375, 256D / 256D, (offset + 40F) / 256F); + tess.addVertexWithUV(0.38, 0.125, -0.375, 256D / 256D, offset / 256F); + tess.addVertexWithUV(0.38, 0.125, 1.375, 216D / 256D, offset / 256F); + tess.draw(); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.radar_screen); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(5.5, 5.5, 5.5); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glTranslated(0, 0, -0.5); + bindTexture(ResourceManager.radar_screen_tex); + ResourceManager.radar_screen.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRedBarrel.java b/src/main/java/com/hbm/render/tileentity/RenderRedBarrel.java deleted file mode 100644 index 8e6974cfd..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderRedBarrel.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelTestRender; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class RenderRedBarrel extends TileEntitySpecialRenderer { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelRedBarrel.png"); - - private ModelTestRender model; - - public RenderRedBarrel() { - this.model = new ModelTestRender(); - } - - @Override - public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GL11.glRotatef(180, 0F, 0F, 1F); - - this.bindTexture(texture); - - GL11.glPushMatrix(); - this.model.renderModel(0.0625F); - GL11.glPopMatrix(); - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRotaryFurnace.java b/src/main/java/com/hbm/render/tileentity/RenderRotaryFurnace.java new file mode 100644 index 000000000..e326c7445 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderRotaryFurnace.java @@ -0,0 +1,71 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineRotaryFurnace; +import com.hbm.util.BobMathUtil; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderRotaryFurnace extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - 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; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.rotary_furnace_tex); + ResourceManager.rotary_furnace.renderPart("Furnace"); + GL11.glPushMatrix(); + + TileEntityMachineRotaryFurnace furnace = (TileEntityMachineRotaryFurnace) tile; + float anim = furnace.lastAnim + (furnace.anim - furnace.lastAnim) * f; + + GL11.glTranslated(0, BobMathUtil.sps((anim * 0.75) * 0.125) * 0.5 - 0.5, 0); + ResourceManager.rotary_furnace.renderPart("Piston"); + GL11.glPopMatrix(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_rotary_furnace); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(3.5, 3.5, 3.5); + } + public void renderCommon() { + GL11.glScaled(0.625, 0.625, 0.625); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.rotary_furnace_tex); + ResourceManager.rotary_furnace.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSelenium.java b/src/main/java/com/hbm/render/tileentity/RenderSelenium.java deleted file mode 100644 index 8ee84a595..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderSelenium.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderSelenium 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); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(-90, 0F, 1F, 0F); - - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - bindTexture(ResourceManager.selenium_body_tex); - ResourceManager.selenium_body.renderAll(); - - GL11.glTranslated(0.0D, 1.0D, 0.0D); - - int count = ((TileEntityMachineSeleniumEngine)tileEntity).pistonCount; - - float rot = 360F / count; - - bindTexture(ResourceManager.selenium_piston_tex); - for(int i = 0; i < count; i++) { - ResourceManager.selenium_piston.renderAll(); - GL11.glRotatef(rot, 0, 0, 1); - } - - if(count > 2 && ((TileEntityMachineSeleniumEngine)tileEntity).hasAcceptableFuel() && ((TileEntityMachineSeleniumEngine)tileEntity).tank.getFill() > 0) - GL11.glRotatef((System.currentTimeMillis() / 2) % 360, 0F, 0F, -1F); - - bindTexture(ResourceManager.selenium_rotor_tex); - ResourceManager.selenium_rotor.renderAll(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java index 44dcab19f..852329df1 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java @@ -3,88 +3,107 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockSnowglobe.SnowglobeType; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.lib.RefStrings; -import com.hbm.wiaj.WorldInAJar; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.loader.HFRWavefrontObject; +import com.hbm.util.EnumUtil; -import net.minecraft.block.Block; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.model.IModelCustom; -public class RenderSnowglobe extends TileEntitySpecialRenderer { +public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemRendererProvider { - public static final IModelCustom snowglobe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/snowglobe.obj")); + public static final IModelCustom snowglobe = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/snowglobe.obj"), false).asVBO(); public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe.png"); - public static RenderBlocks renderer = new RenderBlocks(); + public static final ResourceLocation glass = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_glass.png"); + public static final ResourceLocation features = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_features.png"); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glRotated(22.5D * tile.getBlockMetadata() + 90, 0, -1, 0); + + TileEntitySnowglobe te = (TileEntitySnowglobe) tile; + renderSnowglobe(te.type); + + GL11.glPopMatrix(); + } + + public static void renderSnowglobe(SnowglobeType type) { + GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL12.GL_RESCALE_NORMAL); - - GL11.glRotated(22.5D * tile.getBlockMetadata() + 90, 0, -1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); double scale = 0.0625D; GL11.glScaled(scale, scale, scale); - - this.bindTexture(socket); + + Minecraft.getMinecraft().getTextureManager().bindTexture(socket); snowglobe.renderPart("Socket"); - - TileEntitySnowglobe te = (TileEntitySnowglobe) tile; + Minecraft.getMinecraft().getTextureManager().bindTexture(glass); + snowglobe.renderPart("Glass"); - if(te.type.scene != null) { - - WorldInAJar world = te.type.scene; - renderer.blockAccess = world; - - double size = Math.max(world.sizeX, world.sizeZ); - scale = 4D / size; - GL11.glScaled(scale, scale, scale); - GL11.glTranslated(0, 1, 0); - GL11.glScaled(scale, scale, scale); - - GL11.glTranslated(world.sizeX * -0.5, 0, world.sizeZ * -0.5); - - RenderHelper.disableStandardItemLighting(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - bindTexture(TextureMap.locationBlocksTexture); - Minecraft.getMinecraft().entityRenderer.disableLightmap(interp); - - Tessellator tess = Tessellator.instance; - tess.startDrawingQuads(); - tess.setColorOpaque_F(1F, 1F, 1F); - - for(int a = 0; a < world.sizeX; a++) { - for(int b = 0; b < world.sizeY; b++) { - for(int c = 0; c < world.sizeZ; c++) { - Block block = world.getBlock(a, b, c); - renderer.renderBlockByRenderType(block, a, b, c); - } - } - } - - tess.draw(); - GL11.glShadeModel(GL11.GL_FLAT); - + Minecraft.getMinecraft().getTextureManager().bindTexture(features); + + switch(type) { + case NONE: break; + case RIVETCITY: snowglobe.renderPart("RivetCity"); break; + case TENPENNYTOWER: snowglobe.renderPart("TenpennyTower"); break; + case LUCKY38: snowglobe.renderPart("Lucky38"); break; + case SIERRAMADRE: snowglobe.renderPart("SierraMadre"); break; + case PRYDWEN: snowglobe.renderPart("Prydwen"); break; + default: break; } - GL11.glPopMatrix(); - Minecraft.getMinecraft().entityRenderer.enableLightmap(interp); - RenderHelper.enableStandardItemLighting(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glDisable(GL11.GL_LIGHTING); + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + float f3 = 0.05F; + GL11.glTranslated(4.025, 0.5, 0); + GL11.glScalef(f3, -f3, f3); + GL11.glTranslated(0, -font.FONT_HEIGHT / 2F, font.getStringWidth(type.label) * 0.5D); + GL11.glRotatef(90, 0, 1, 0); + GL11.glDepthMask(false); + GL11.glTranslatef(0, 1, 0); + font.drawString(type.label, 0, 0, 0xffffff); + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_LIGHTING); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.snowglobe); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glTranslated(0, 0.25, 0); + GL11.glScaled(3, 3, 3); + SnowglobeType type = EnumUtil.grabEnumSafely(SnowglobeType.class, item.getItemDamage()); + renderSnowglobe(type); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + }}; } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java index 0dad6fd63..f15a7d778 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java @@ -38,7 +38,7 @@ public class RenderSolarBoiler extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); - if(te instanceof TileEntitySolarBoiler && Minecraft.getMinecraft().gameSettings.particleSetting < 2) { + if(te instanceof TileEntitySolarBoiler && Minecraft.getMinecraft().gameSettings.fancyGraphics) { TileEntitySolarBoiler boiler = (TileEntitySolarBoiler) te; Tessellator tess = Tessellator.instance; diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolderingStation.java b/src/main/java/com/hbm/render/tileentity/RenderSolderingStation.java new file mode 100644 index 000000000..44acb97b7 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderSolderingStation.java @@ -0,0 +1,86 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.RenderDecoItem; +import com.hbm.tileentity.machine.TileEntityMachineSolderingStation; + +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderSolderingStation extends TileEntitySpecialRenderer implements IItemRendererProvider { + + private RenderItem itemRenderer = new RenderDecoItem(this); + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - 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; + } + + GL11.glTranslated(-0.5, 0, 0.5); + + bindTexture(ResourceManager.soldering_station_tex); + ResourceManager.soldering_station.renderAll(); + + TileEntityMachineSolderingStation solderer = (TileEntityMachineSolderingStation) tile; + if(solderer.display != null) { + GL11.glPushMatrix(); + GL11.glTranslated(0.0625D * 2.5D, 1.125D, 0D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glRotatef(-90, 1F, 0F, 0F); + + if(solderer.display != null) { + ItemStack stack = solderer.display.copy(); + + EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); + item.getEntityItem().stackSize = 1; + item.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + GL11.glScaled(1.5, 1.5, 1.5); + this.itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + } + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_soldering_station); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -1, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + bindTexture(ResourceManager.soldering_station_tex); + ResourceManager.soldering_station.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java b/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java index f4b35ac7b..ff5e30bde 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java @@ -71,7 +71,7 @@ public class RenderSteamEngine extends TileEntitySpecialRenderer implements IIte GL11.glPopMatrix(); GL11.glPushMatrix(); - double cath = Math.sqrt(3.515625D - (cos * cos)); + double cath = Math.sqrt(3.515625D - (cos * cos) / 2); GL11.glTranslated(1.875 - cath + sin, 0, 0); //the difference that "1.875 - cath" makes is minuscule but very much noticeable ResourceManager.steam_engine.renderPart("Piston"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderSteelPoles.java b/src/main/java/com/hbm/render/tileentity/RenderSteelPoles.java deleted file mode 100644 index 475bdcf9c..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderSteelPoles.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelPoles; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class RenderSteelPoles extends TileEntitySpecialRenderer { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/Poles.png"); - - private ModelPoles model; - - public RenderSteelPoles() { - this.model = new ModelPoles(); - } - - @Override - public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GL11.glRotatef(180, 0F, 0F, 1F); - - switch(tileentity.getBlockMetadata()) - { - case 4: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 2: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } - - this.bindTexture(texture); - - GL11.glPushMatrix(); - this.model.renderModel(0.0625F); - GL11.glPopMatrix(); - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderStirling.java b/src/main/java/com/hbm/render/tileentity/RenderStirling.java index d1544382d..3957f074e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderStirling.java +++ b/src/main/java/com/hbm/render/tileentity/RenderStirling.java @@ -47,6 +47,8 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe if(type == 0) bindTexture(ResourceManager.stirling_tex); + else if(type == 2) + bindTexture(ResourceManager.stirling_creative_tex); else bindTexture(ResourceManager.stirling_steel_tex); @@ -86,7 +88,8 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe public Item[] getItemsForRenderer() { return new Item[] { Item.getItemFromBlock(ModBlocks.machine_stirling), - Item.getItemFromBlock(ModBlocks.machine_stirling_steel) + Item.getItemFromBlock(ModBlocks.machine_stirling_steel), + Item.getItemFromBlock(ModBlocks.machine_stirling_creative) }; } @@ -100,7 +103,7 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe public void renderCommonWithStack(ItemStack item) { GL11.glRotatef(90, 0F, 1F, 0F); boolean cog = item.getItemDamage() != 1; - RenderStirling.this.renderCommon(cog ? System.currentTimeMillis() % 3600 * 0.1F : 0, cog, item.getItem() == Item.getItemFromBlock(ModBlocks.machine_stirling) ? 0 : 1); + RenderStirling.this.renderCommon(cog ? System.currentTimeMillis() % 3600 * 0.1F : 0, cog, item.getItem() == Item.getItemFromBlock(ModBlocks.machine_stirling) ? 0 : item.getItem() == Item.getItemFromBlock(ModBlocks.machine_stirling_creative) ? 2 : 1); }}; } diff --git a/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java new file mode 100644 index 000000000..5655e97fc --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderStrandCaster.java @@ -0,0 +1,124 @@ +package com.hbm.render.tileentity; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import org.lwjgl.opengl.GL11; + +import java.nio.DoubleBuffer; + +public class RenderStrandCaster extends TileEntitySpecialRenderer implements IItemRendererProvider { + public static final ResourceLocation lava = new ResourceLocation(RefStrings.MODID, "textures/models/machines/lava_gray.png"); + private static DoubleBuffer buf = null; + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) te; + + if(buf == null){ + buf = GLAllocation.createDirectByteBuffer(8*4).asDoubleBuffer(); + } + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + switch(te.getBlockMetadata() - BlockDummyable.offset) { + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + GL11.glTranslated( 0.5, 0, 0.5); + GL11.glRotated(180, 0, 1, 0); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + bindTexture(ResourceManager.strand_caster_tex); + ResourceManager.strand_caster.renderPart("caster"); + + + if (caster.amount != 0 && caster.getInstalledMold() != null) { + + double level = ((double) caster.amount / (double) caster.getCapacity()) * 0.675D; + double offset = ((double) caster.amount / (double) caster.getInstalledMold().getCost()) * 0.375D; + + int color = caster.type.moltenColor; + + int r = color >> 16 & 0xFF; + int g = color >> 8 & 0xFF; + int b = color & 0xFF; + + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + + GL11.glPushMatrix(); + GL11.glColor3f( r/ 255F, g/ 255F, b/ 255F); + GL11.glEnable(GL11.GL_CLIP_PLANE0); + buf.put(new double[] { 0, 0, -1, 0.5} ); + buf.rewind(); + GL11.glClipPlane(GL11.GL_CLIP_PLANE0, buf); + GL11.glTranslated(0,0,Math.max(-offset + 3.4, 0)); + ResourceManager.strand_caster.renderPart("plate"); + GL11.glDisable(GL11.GL_CLIP_PLANE0); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + Tessellator tess = Tessellator.instance; + tess.setNormal(0F, 1F, 0F); + tess.setColorOpaque_F(r / 255F, g / 255F, b / 255F); + bindTexture(lava); + tess.startDrawingQuads(); + tess.addVertexWithUV(-0.9, 2.3 + level, -0.999, 0, 0); + tess.addVertexWithUV(-0.9, 2.3 + level, 0.999, 0, 1); + tess.addVertexWithUV(0.9, 2.3 + level, 0.999, 1, 1); + tess.addVertexWithUV(0.9, 2.3 + level, -0.999, 1, 0); + tess.draw(); + + GL11.glPopMatrix(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + } + + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_strand_caster); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(2, 0, 2); + GL11.glScaled( 2, 2, 2); + } + public void renderCommon() { + GL11.glScaled(1, 1, 1); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.strand_caster_tex); ResourceManager.strand_caster.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } + +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java b/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java deleted file mode 100644 index 20d55b4d6..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java +++ /dev/null @@ -1,239 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL14; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityStructureMarker; -import com.hbm.world.machine.FWatz; -import com.hbm.world.machine.NuclearReactor; -import com.hbm.world.machine.Watz; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.init.Blocks; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class RenderStructureMaker extends TileEntitySpecialRenderer { - - float pixel = 1F/16F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glRotatef(180, 0F, 0F, 1F); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_BLEND); - GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL14.glBlendEquation(GL14.GL_FUNC_ADD); - GL11.glColor4f(0.5f, 0.25f, 1.0f, 1f); - this.renderBlocks((int)x, (int)y, (int)z, ((TileEntityStructureMarker)tileentity).type, tileentity.getWorldObj().getBlockMetadata(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord)); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_BLEND); - GL11.glPopMatrix(); - } - - public void renderBlocks(int x, int y, int z, int type, int meta) { - int offsetX = 0; - int offsetZ = 0; - if(type == 0) { - - if(meta == 6) { - offsetZ = 3; - } - if(meta == 7) { - offsetX = 3; - } - if(meta == 8) { - offsetZ = -3; - } - if(meta == 9) { - offsetX = -3; - } - - GL11.glTranslatef(-2 + offsetX, -3, -2 + offsetZ); - for(int a = 0; a < 5; a++) { - for(int b = 0; b < 5; b++) { - for(int c = 0; c < 5; c++) { - - Block block = Blocks.air; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("R")) - block = ModBlocks.reactor_element; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("#")) - block = ModBlocks.reactor_computer; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.reactor_control; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("A")) - block = ModBlocks.reactor_hatch; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("I")) - block = ModBlocks.reactor_conductor; - //if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("B")) - // block = ModBlocks.brick_concrete; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - if(type == 1) { - - if(meta == 6) { - offsetZ = 4; - } - if(meta == 7) { - offsetX = 4; - } - if(meta == 8) { - offsetZ = -4; - } - if(meta == 9) { - offsetX = -4; - } - - GL11.glTranslatef(-3 + offsetX, -12, -3 + offsetZ); - for(int a = 0; a < 7; a++) { - for(int b = 0; b < 13; b++) { - for(int c = 0; c < 7; c++) { - - Block block = Blocks.air; - if(Watz.array[b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.reinforced_brick; - if(Watz.array[b][a].substring(c, c + 1).equals("A")) - block = ModBlocks.watz_hatch; - if(Watz.array[b][a].substring(c, c + 1).equals("R")) - block = ModBlocks.watz_control; - if(Watz.array[b][a].substring(c, c + 1).equals("S")) - block = ModBlocks.watz_end; - if(Watz.array[b][a].substring(c, c + 1).equals("I")) - block = ModBlocks.watz_conductor; - if(Watz.array[b][a].substring(c, c + 1).equals("#")) - block = ModBlocks.watz_core; - if(Watz.array[b][a].substring(c, c + 1).equals("K")) - block = ModBlocks.watz_cooler; - if(Watz.array[b][a].substring(c, c + 1).equals("W")) - block = ModBlocks.watz_element; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - if(type == 2) { - - if(meta == 6) { - offsetZ = 10; - } - if(meta == 7) { - offsetX = 10; - } - if(meta == 8) { - offsetZ = -10; - } - if(meta == 9) { - offsetX = -10; - } - - GL11.glTranslatef(-9 + offsetX, -18, -9 + offsetZ); - for(int a = 0; a < 19; a++) { - for(int b = 0; b < 19; b++) { - for(int c = 0; c < 19; c++) { - - Block block = Blocks.air; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("X")) - block = ModBlocks.fwatz_scaffold; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("H")) - block = ModBlocks.fwatz_hatch; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("S")) - block = ModBlocks.fwatz_cooler; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("T")) - block = ModBlocks.fwatz_tank; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("M")) - block = ModBlocks.fwatz_conductor; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.fwatz_computer; - if(FWatz.fwatz[18 - b][a].substring(c, c + 1).equals("#")) - block = ModBlocks.fwatz_core; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - } - - public void renderSmolBlockAt(ResourceLocation loc1, ResourceLocation loc2, int x, int y, int z) { - GL11.glPushMatrix(); - GL11.glTranslatef(x, y, z); - GL11.glRotatef(180, 0F, 0F, 1F); - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); - this.bindTexture(loc2); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 1, 1); - this.bindTexture(loc2); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 1, 1); - this.bindTexture(loc2); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); - this.bindTexture(loc2); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); - this.bindTexture(loc1); - tesseract.draw(); - - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 1, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0, 0); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); - this.bindTexture(loc1); - tesseract.draw(); - GL11.glPopMatrix(); - - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderTelex.java b/src/main/java/com/hbm/render/tileentity/RenderTelex.java new file mode 100644 index 000000000..9761d83e3 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderTelex.java @@ -0,0 +1,56 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderTelex extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tile.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; + } + + bindTexture(ResourceManager.telex_tex); + ResourceManager.telex.renderAll(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.radio_telex); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommon() { + GL11.glTranslated(0, 0, -0.5); + bindTexture(ResourceManager.telex_tex); + ResourceManager.telex.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderTestBombAdvanced.java b/src/main/java/com/hbm/render/tileentity/RenderTestBombAdvanced.java deleted file mode 100644 index d28da090f..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderTestBombAdvanced.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelTestBombAdvanced; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class RenderTestBombAdvanced extends TileEntitySpecialRenderer { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/NukeTestBomb.png"); - - private ModelTestBombAdvanced modelBomb; - - public RenderTestBombAdvanced() { - this.modelBomb = new ModelTestBombAdvanced(); - } - - @Override - public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GL11.glRotatef(180, 0F, 0F, 1F); - - this.bindTexture(texture); - - GL11.glPushMatrix(); - this.modelBomb.renderModel(0.0625F); - GL11.glPopMatrix(); - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderTestMissile.java b/src/main/java/com/hbm/render/tileentity/RenderTestMissile.java deleted file mode 100644 index b39ff2863..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderTestMissile.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -public class RenderTestMissile extends Render { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Missile.obj"); - private IModelCustom boyModel; - private ResourceLocation boyTexture; - - public RenderTestMissile() { - boyModel = AdvancedModelLoader.loadModel(objTesterModelRL); - boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Missile.png"); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - bindTexture(boyTexture); - boyModel.renderAll(); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return new ResourceLocation(RefStrings.MODID +":textures/models/Missile.png"); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderTestRender.java b/src/main/java/com/hbm/render/tileentity/RenderTestRender.java deleted file mode 100644 index bb590ebb4..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderTestRender.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelTestRender; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class RenderTestRender extends TileEntitySpecialRenderer { - - private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelTestRender.png"); - - private ModelTestRender model; - - public RenderTestRender() { - this.model = new ModelTestRender(); - } - - @Override - public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); - GL11.glRotatef(180, 0F, 0F, 1F); - - this.bindTexture(texture); - - GL11.glPushMatrix(); - this.model.renderModel(0.0625F); - GL11.glPopMatrix(); - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java b/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java index 99536327f..5bc5939dd 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java @@ -37,7 +37,7 @@ public abstract class RenderTurretBase extends TileEntitySpecialRenderer { private void checkPlug(World world, int x, int y, int z, boolean power, boolean fluid, FluidType type, int ox, int oz, int rot, ForgeDirection dir) { - if((power && Library.canConnect(world, x, y, z, dir)) || (fluid && Library.checkFluidConnectables(world, x, y, z, type)) || (fluid && Library.canConnectFluid(world, x, y, z, dir, type))) { + if((power && Library.canConnect(world, x, y, z, dir)) || (fluid && Library.canConnectFluid(world, x, y, z, dir, type))) { GL11.glPushMatrix(); GL11.glRotated(rot, 0, 1, 0); diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretSentry.java b/src/main/java/com/hbm/render/tileentity/RenderTurretSentry.java index 480de1536..107e37973 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurretSentry.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretSentry.java @@ -6,6 +6,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; import com.hbm.tileentity.turret.TileEntityTurretSentry; +import com.hbm.tileentity.turret.TileEntityTurretSentryDamaged; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; @@ -26,8 +27,14 @@ public class RenderTurretSentry extends TileEntitySpecialRenderer implements IIt GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); + + boolean damaged = te instanceof TileEntityTurretSentryDamaged; - bindTexture(ResourceManager.turret_sentry_tex); + if(damaged) + bindTexture(ResourceManager.turret_sentry_damaged_tex); + else + bindTexture(ResourceManager.turret_sentry_tex); + ResourceManager.turret_sentry.renderPart("Base"); double yaw = -Math.toDegrees(turret.lastRotationYaw + (turret.rotationYaw - turret.lastRotationYaw) * interp); @@ -48,7 +55,13 @@ public class RenderTurretSentry extends TileEntitySpecialRenderer implements IIt GL11.glPopMatrix(); GL11.glPushMatrix(); - GL11.glTranslated(0, 0, (turret.lastBarrelRightPos + (turret.barrelRightPos - turret.lastBarrelRightPos) * interp) * -0.5); + if(damaged) { + GL11.glTranslated(0, 1.5, 0.5); + GL11.glRotated(25, 1, 0, 0); + GL11.glTranslated(0, -1.5, -0.5); + } else { + GL11.glTranslated(0, 0, (turret.lastBarrelRightPos + (turret.barrelRightPos - turret.lastBarrelRightPos) * interp) * -0.5); + } ResourceManager.turret_sentry.renderPart("BarrelR"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java b/src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java new file mode 100644 index 000000000..14362d898 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java @@ -0,0 +1,61 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderWoodBurner extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5, 0, -0.5); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.wood_burner_tex); + ResourceManager.wood_burner.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_wood_burner); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3.5, 3.5, 3.5); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.wood_burner_tex); + ResourceManager.wood_burner.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 467a4c14a..8762c01c0 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -9,34 +9,74 @@ import org.lwjgl.opengl.GL12; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.HorsePronter; +import com.hbm.wiaj.WorldInAJar; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; public class RendererObjTester extends TileEntitySpecialRenderer { - - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/TestObj.obj"); + private static RenderBlocks renderer; + private static WorldInAJar world; + private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png"); + @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y, z + 0.5); - GL11.glEnable(GL11.GL_LIGHTING); + GL11.glTranslated(x + 0.5, y + 1, z + 0.5); + GL11.glRotated(15, 0, 0, 1); GL11.glDisable(GL11.GL_CULL_FACE); + + GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); + + if(world == null) { + world = new WorldInAJar(5, 3, 5); + for(int i = 0; i < 25; i++) world.setBlock(i / 5, 1, i % 5, Blocks.brick_block, 0); + for(int i = 0; i < 9; i++) world.setBlock(1 + i / 3, 0, 1 + i % 3, Blocks.brick_block, 0); + } + + if(renderer == null) { + renderer = new RenderBlocks(world); + } + renderer.enableAO = true; + world.lightlevel = tileEntity.getWorldObj().getLightBrightnessForSkyBlocks(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, 0); - /*GL11.glTranslated(0, 0, 0.75); - this.bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png")); + RenderHelper.disableStandardItemLighting(); + + GL11.glPushMatrix(); + GL11.glTranslated(-2.5, 0, -2.5); + Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture); + GL11.glShadeModel(GL11.GL_SMOOTH); + Tessellator.instance.startDrawingQuads(); + + for(int ix = 0; ix < world.sizeX; ix++) { + for(int iy = 0; iy < world.sizeY; iy++) { + for(int iz = 0; iz < world.sizeZ; iz++) { + try { renderer.renderBlockByRenderType(world.getBlock(ix, iy, iz), ix, iy, iz); } catch(Exception ex) { } + } + } + } + + Tessellator.instance.draw(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + + RenderHelper.enableStandardItemLighting(); + GL11.glTranslated(0, 2.1, 0.5); + + this.bindTexture(extra); HorsePronter.reset(); - //HorsePronter.pose(HorsePronter.id_lfl, 0, System.currentTimeMillis() % 360 / 10D, 0); double r = 60; HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90); @@ -57,130 +97,7 @@ public class RendererObjTester extends TileEntitySpecialRenderer { GL11.glRotated(60, 0, 0, -1); bindTexture(TextureMap.locationItemsTexture); IIcon icon = stack.getIconIndex(); - float f14 = icon.getMinU(); - float f15 = icon.getMaxU(); - float f4 = icon.getMinV(); - float f5 = icon.getMaxV(); - ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);*/ - - double speed = 100D; - double chewing = 200D; - double cy0 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2)); - double cy1 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.5); - double cy2 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI); - double cy3 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.75); - - double cy4 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2)); - double cy5 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2) - Math.PI * 0.5); - - this.bindTexture(ResourceManager.glyphid_tex); - ResourceManager.glyphid.renderPart("Body"); - ResourceManager.glyphid.renderPart("ArmorFront"); - ResourceManager.glyphid.renderPart("ArmorLeft"); - ResourceManager.glyphid.renderPart("ArmorRight"); - - /// LEFT ARM /// - GL11.glPushMatrix(); - GL11.glTranslated(0.25, 0.625, 0.0625); - GL11.glRotated(10, 0, 1, 0); - GL11.glRotated(35 + cy1 * 20, 1, 0, 0); - GL11.glTranslated(-0.25, -0.625, -0.0625); - ResourceManager.glyphid.renderPart("ArmLeftUpper"); - GL11.glTranslated(0.25, 0.625, 0.4375); - GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0); - GL11.glTranslated(-0.25, -0.625, -0.4375); - ResourceManager.glyphid.renderPart("ArmLeftMid"); - GL11.glTranslated(0.25, 0.625, 0.9375); - GL11.glRotated(90 - cy0 * 45, 1, 0, 0); - GL11.glTranslated(-0.25, -0.625, -0.9375); - ResourceManager.glyphid.renderPart("ArmLeftLower"); - ResourceManager.glyphid.renderPart("ArmLeftArmor"); - GL11.glPopMatrix(); - - /// RIGHT ARM /// - GL11.glPushMatrix(); - GL11.glTranslated(-0.25, 0.625, 0.0625); - GL11.glRotated(-10, 0, 1, 0); - GL11.glRotated(35 + cy2 * 20, 1, 0, 0); - GL11.glTranslated(0.25, -0.625, -0.0625); - ResourceManager.glyphid.renderPart("ArmRightUpper"); - GL11.glTranslated(-0.25, 0.625, 0.4375); - GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0); - GL11.glTranslated(0.25, -0.625, -0.4375); - ResourceManager.glyphid.renderPart("ArmRightMid"); - GL11.glTranslated(-0.25, 0.625, 0.9375); - GL11.glRotated(90 - cy3 * 45, 1, 0, 0); - GL11.glTranslated(0.25, -0.625, -0.9375); - ResourceManager.glyphid.renderPart("ArmRightLower"); - ResourceManager.glyphid.renderPart("ArmRightArmor"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(cy5 * 15 + 15, 0, 0, 1); - GL11.glTranslated(0, -0.5, -0.25); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(-7.5 - cy4 * 7.5, 1, 0, 0); - GL11.glTranslated(0, -0.5, -0.25); - ResourceManager.glyphid.renderPart("JawTop"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(7.5 + cy4 * 7.5, 0, 1, 0); - GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); - GL11.glTranslated(0, -0.5, -0.25); - ResourceManager.glyphid.renderPart("JawLeft"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(-7.5 - cy4 * 7.5, 0, 1, 0); - GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); - GL11.glTranslated(0, -0.5, -0.25); - ResourceManager.glyphid.renderPart("JawRight"); - GL11.glPopMatrix(); - GL11.glPopMatrix(); - - double steppy = 15; - double bend = 60; - - for(int i = 0; i < 3; i++) { - - double c0 = cy0 * (i == 1 ? -1 : 1); - double c1 = cy1 * (i == 1 ? -1 : 1); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.25, 0); - GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0); - GL11.glRotated(steppy + c1 * steppy, 0, 0, 1); - GL11.glTranslated(0, -0.25, 0); - ResourceManager.glyphid.renderPart("LegLeftUpper"); - GL11.glTranslated(0.5625, 0.25, 0); - GL11.glRotated(-bend - c1 * steppy, 0, 0, 1); - GL11.glTranslated(-0.5625, -0.25, 0); - ResourceManager.glyphid.renderPart("LegLeftLower"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.25, 0); - GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0); - GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1); - GL11.glTranslated(0, -0.25, 0); - ResourceManager.glyphid.renderPart("LegRightUpper"); - GL11.glTranslated(-0.5625, 0.25, 0); - GL11.glRotated(bend - c1 * steppy, 0, 0, 1); - GL11.glTranslated(0.5625, -0.25, 0); - ResourceManager.glyphid.renderPart("LegRightLower"); - GL11.glPopMatrix(); - } - - this.bindTexture(ResourceManager.universal); - GL11.glScaled(0.05, 0.05, 0.05); - ResourceManager.sphere_uv.renderAll(); + ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/util/ErrorPronter.java b/src/main/java/com/hbm/render/util/ErrorPronter.java deleted file mode 100644 index 421e83c08..000000000 --- a/src/main/java/com/hbm/render/util/ErrorPronter.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.hbm.render.util; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; - -public class ErrorPronter { - - public static void prontError() { - - GL11.glDisable(GL11.GL_CULL_FACE); - - GL11.glScaled(2, 2, 2); - - GL11.glColor3d(Math.sin(System.currentTimeMillis() % 1000 / 1000D * Math.PI) * 0.5 + 0.5, 0.0, 0.0); - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.universal_bright); - ResourceManager.error.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); - } - -} diff --git a/src/main/java/com/hbm/render/util/GaugeUtil.java b/src/main/java/com/hbm/render/util/GaugeUtil.java index e31455bac..751edabdf 100644 --- a/src/main/java/com/hbm/render/util/GaugeUtil.java +++ b/src/main/java/com/hbm/render/util/GaugeUtil.java @@ -1,10 +1,14 @@ package com.hbm.render.util; +import org.lwjgl.opengl.GL11; + import com.hbm.lib.RefStrings; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; public class GaugeUtil { @@ -55,5 +59,35 @@ public class GaugeUtil { tess.addVertexWithUV(x, y, z, 0, frameOffset); tess.draw(); } + + public static void drawSmoothGauge(int x, int y, double z, double progress, double tipLength, double backLength, double backSide, int color) { + GL11.glDisable(GL11.GL_TEXTURE_2D); + + progress = MathHelper.clamp_double(progress, 0, 1); + + float angle = (float) Math.toRadians(-progress * 270 - 45); + Vec3 tip = Vec3.createVectorHelper(0, tipLength, 0); + Vec3 left = Vec3.createVectorHelper(backSide, -backLength, 0); + Vec3 right = Vec3.createVectorHelper(-backSide, -backLength, 0); + tip.rotateAroundZ(angle); + left.rotateAroundZ(angle); + right.rotateAroundZ(angle); + + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_TRIANGLES); + tess.setColorOpaque_F(0F, 0F, 0F); + double mult = 1.5; + tess.addVertex(x + tip.xCoord * mult, y + tip.yCoord * mult, z); + tess.addVertex(x + left.xCoord * mult, y + left.yCoord * mult, z); + tess.addVertex(x + right.xCoord * mult, y + right.yCoord * mult, z); + tess.setColorOpaque_I(color); + tess.addVertex(x + tip.xCoord, y + tip.yCoord, z); + tess.addVertex(x + left.xCoord, y + left.yCoord, z); + tess.addVertex(x + right.xCoord, y + right.yCoord, z); + tess.draw(); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } } diff --git a/src/main/java/com/hbm/render/util/HorsePronter.java b/src/main/java/com/hbm/render/util/HorsePronter.java index 6cba0146c..bec1e9ef6 100644 --- a/src/main/java/com/hbm/render/util/HorsePronter.java +++ b/src/main/java/com/hbm/render/util/HorsePronter.java @@ -11,7 +11,7 @@ import net.minecraftforge.client.model.IModelCustom; public class HorsePronter { - public static final IModelCustom horse = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/horse.obj"), false).asDisplayList(); + public static final IModelCustom horse = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/horse.obj"), false).asVBO(); public static final ResourceLocation tex_demohorse = new ResourceLocation(RefStrings.MODID, "textures/models/horse/horse_demo.png"); diff --git a/src/main/java/com/hbm/render/util/MissileMultipart.java b/src/main/java/com/hbm/render/util/MissileMultipart.java index 979a53b15..025343b30 100644 --- a/src/main/java/com/hbm/render/util/MissileMultipart.java +++ b/src/main/java/com/hbm/render/util/MissileMultipart.java @@ -1,7 +1,7 @@ package com.hbm.render.util; import com.hbm.handler.MissileStruct; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/render/util/MissilePart.java b/src/main/java/com/hbm/render/util/MissilePart.java index bbaf1e539..dbec574c4 100644 --- a/src/main/java/com/hbm/render/util/MissilePart.java +++ b/src/main/java/com/hbm/render/util/MissilePart.java @@ -2,7 +2,7 @@ package com.hbm.render.util; import java.util.HashMap; import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import com.hbm.main.ResourceManager; import net.minecraft.item.Item; diff --git a/src/main/java/com/hbm/render/util/MissilePronter.java b/src/main/java/com/hbm/render/util/MissilePronter.java index 406499470..c5f979ede 100644 --- a/src/main/java/com/hbm/render/util/MissilePronter.java +++ b/src/main/java/com/hbm/render/util/MissilePronter.java @@ -2,7 +2,7 @@ package com.hbm.render.util; import org.lwjgl.opengl.GL11; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import net.minecraft.client.renderer.texture.TextureManager; diff --git a/src/main/java/com/hbm/render/util/ObjUtil.java b/src/main/java/com/hbm/render/util/ObjUtil.java index 9385fa1e8..69bb79457 100644 --- a/src/main/java/com/hbm/render/util/ObjUtil.java +++ b/src/main/java/com/hbm/render/util/ObjUtil.java @@ -8,14 +8,19 @@ import net.minecraftforge.client.model.obj.GroupObject; import net.minecraftforge.client.model.obj.TextureCoordinate; import net.minecraftforge.client.model.obj.Vertex; import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; public class ObjUtil { public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes, float rot, boolean shadow) { - renderWithIcon(model, icon, tes, rot, 0, shadow); + renderWithIcon(model, icon, tes, rot, 0, 0, shadow); } public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes, float rot, float pitch, boolean shadow) { + renderWithIcon(model, icon, tes, rot, pitch, 0, shadow); + } + + public static void renderWithIcon(WavefrontObject model, IIcon icon, Tessellator tes, float rot, float pitch, float roll, boolean shadow) { for(GroupObject go : model.groupObjects) { for(Face f : go.faces) { @@ -41,6 +46,7 @@ public class ObjUtil { Vertex v = f.vertices[i]; Vec3 vec = Vec3.createVectorHelper(v.x, v.y, v.z); + vec.rotateAroundX(roll); vec.rotateAroundZ(pitch); vec.rotateAroundY(rot); @@ -61,10 +67,14 @@ public class ObjUtil { } public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, boolean shadow) { - renderPartWithIcon(model, name, icon, tes, rot, 0, shadow); + renderPartWithIcon(model, name, icon, tes, rot, 0, 0, shadow); } public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, float pitch, boolean shadow) { + renderPartWithIcon(model, name, icon, tes, rot, pitch, 0, shadow); + } + + public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, float pitch, float roll, boolean shadow) { GroupObject go = null; @@ -108,6 +118,7 @@ public class ObjUtil { Vertex v = f.vertices[i]; Vec3 vec = Vec3.createVectorHelper(v.x, v.y, v.z); + vec.rotateAroundX(roll); vec.rotateAroundZ(pitch); vec.rotateAroundY(rot); @@ -120,7 +131,7 @@ public class ObjUtil { // The shoddy way of rendering a tringulated model with a quad // tessellator - if(i % 3 == 2) + if(f.vertices.length == 3 && i % 3 == 2) tes.addVertexWithUV(x, y, z, icon.getInterpolatedU(t.u * 16D), icon.getInterpolatedV(t.v * 16D)); } } @@ -148,4 +159,20 @@ public class ObjUtil { public static void clearColor() { hasColor = false; } + + // Both methods assume model is facing towards +X (EAST) + // Why not +Z (NORTH)? Pitch doesn't rotate as you would expect in that case using the (current) draw methods + public static float getPitch(ForgeDirection dir) { + if (dir == ForgeDirection.UP) return (float)Math.PI * -0.5F; + if (dir == ForgeDirection.DOWN) return (float)Math.PI * 0.5F; + return 0; + } + + public static float getYaw(ForgeDirection dir) { + if (dir == ForgeDirection.NORTH) return (float)Math.PI * 0.5f;; + if (dir == ForgeDirection.SOUTH) return (float)Math.PI * -0.5f; + if (dir == ForgeDirection.WEST) return (float)Math.PI; + return 0; + } + } diff --git a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java index d2ea47b0f..943faf575 100644 --- a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java +++ b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java @@ -1,10 +1,11 @@ package com.hbm.render.util; -import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.render.model.ModelArmorSolstice; +import com.hbm.render.model.ModelArmorTailPeep; import com.hbm.render.model.ModelArmorWings; +import com.hbm.render.model.ModelArmorWingsPheo; +import com.hbm.util.ShadyUtil; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderPlayer; @@ -41,89 +42,97 @@ public class RenderAccessoryUtility { private static ResourceLocation rightnugget = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeRightNugget.png"); private static ResourceLocation tankish = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeTankish.png"); private static ResourceLocation frizzlefrazzle = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeFrizzleFrazzle.png"); - private static ResourceLocation pheo = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapePheo.png"); + //private static ResourceLocation pheo = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapePheo.png"); private static ResourceLocation vaer = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeVaer.png"); private static ResourceLocation adam = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeAdam.png"); + private static ResourceLocation alcater = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeAlcater.png"); + private static ResourceLocation jame = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeJame.png"); public static ResourceLocation getCloakFromPlayer(EntityPlayer player) { String uuid = player.getUniqueID().toString(); String name = player.getDisplayName(); - if(uuid.equals(Library.HbMinecraft)) { - return (MainRegistry.polaroidID == 11 ? hbm : hbm2); + if(uuid.equals(ShadyUtil.HbMinecraft)) { + return (MainRegistry.polaroidID == 11 ? hbm2 : hbm); } - if(uuid.equals(Library.Drillgon)) { + if(uuid.equals(ShadyUtil.Drillgon)) { return drillgon; } - if(uuid.equals(Library.Dafnik)) { + if(uuid.equals(ShadyUtil.Dafnik)) { return dafnik; } - if(uuid.equals(Library.LPkukin)) { + if(uuid.equals(ShadyUtil.LPkukin)) { return lpkukin; } - if(uuid.equals(Library.LordVertice)) { + if(uuid.equals(ShadyUtil.LordVertice)) { return vertice; } - if(uuid.equals(Library.CodeRed_)) { + if(uuid.equals(ShadyUtil.CodeRed_)) { return red; } - if(uuid.equals(Library.dxmaster769)) { + if(uuid.equals(ShadyUtil.dxmaster769)) { return ayy; } - if(uuid.equals(Library.Dr_Nostalgia)) { + if(uuid.equals(ShadyUtil.Dr_Nostalgia)) { return (MainRegistry.polaroidID == 11 ? nostalgia2 : nostalgia); } - if(uuid.equals(Library.Samino2)) { + if(uuid.equals(ShadyUtil.Samino2)) { return sam; } - if(uuid.equals(Library.Hoboy03new)) { + if(uuid.equals(ShadyUtil.Hoboy03new)) { return hoboy; } - if(uuid.equals(Library.Dragon59MC)) { + if(uuid.equals(ShadyUtil.Dragon59MC)) { return master; } - if(uuid.equals(Library.Steelcourage)) { + if(uuid.equals(ShadyUtil.Steelcourage)) { return mek; } - if(uuid.equals(Library.ZippySqrl)) { + if(uuid.equals(ShadyUtil.ZippySqrl)) { return zippy; } - if(uuid.equals(Library.Schrabby)) { + if(uuid.equals(ShadyUtil.Schrabby)) { return schrabby; } - if(uuid.equals(Library.SweatySwiggs)) { + if(uuid.equals(ShadyUtil.SweatySwiggs)) { return swiggs; } - if(uuid.equals(Library.Doctor17) || uuid.equals(Library.Doctor17PH)) { + if(uuid.equals(ShadyUtil.Doctor17) || uuid.equals(ShadyUtil.Doctor17PH)) { return doctor17; } - if(uuid.equals(Library.ShimmeringBlaze)) { + if(uuid.equals(ShadyUtil.ShimmeringBlaze)) { return (MainRegistry.polaroidID == 11 ? blaze2 : shimmeringblaze); } - if(uuid.equals(Library.FifeMiner)) { + if(uuid.equals(ShadyUtil.FifeMiner)) { return leftnugget; } - if(uuid.equals(Library.lag_add)) { + if(uuid.equals(ShadyUtil.lag_add)) { return rightnugget; } - if(uuid.equals(Library.Tankish)) { + if(uuid.equals(ShadyUtil.Tankish)) { return tankish; } - if(uuid.equals(Library.FrizzleFrazzle)) { + if(uuid.equals(ShadyUtil.FrizzleFrazzle)) { return frizzlefrazzle; } - if(uuid.equals(Library.Barnaby99_x)) { + /*if(uuid.equals(ShadyUtil.Barnaby99_x)) { return pheo; - } - if(uuid.equals(Library.Ma118)) { + }*/ + if(uuid.equals(ShadyUtil.Ma118)) { return vaer; } - if(uuid.equals(Library.Adam29Adam29)) { + if(uuid.equals(ShadyUtil.Adam29Adam29)) { return adam; } - if(Library.contributors.contains(uuid)) { + if(uuid.equals(ShadyUtil.Alcater)) { + return alcater; + } + if(uuid.equals(ShadyUtil.ege444)) { + return jame; + } + if(ShadyUtil.contributors.contains(uuid)) { return wiki; } if(name.startsWith("Player")) { @@ -133,28 +142,6 @@ public class RenderAccessoryUtility { return null; } - private static ModelBiped solModel; - public static void renderSol(RenderPlayerEvent.SetArmorModel event) { - - if(solModel == null) - solModel = new ModelArmorSolstice(); - - RenderPlayer renderer = event.renderer; - ModelBiped model = renderer.modelArmor; - EntityPlayer player = event.entityPlayer; - - solModel.isSneak = model.isSneak; - - float interp = event.partialRenderTick; - float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp; - float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * interp; - float yaw = yawHead - yawOffset; - float yawWrapped = MathHelper.wrapAngleTo180_float(yawHead - yawOffset); - float pitch = player.rotationPitch; - - solModel.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); - } - private static ModelBiped[] wingModels = new ModelBiped[10]; public static void renderWings(RenderPlayerEvent.SetArmorModel event, int mode) { @@ -176,4 +163,48 @@ public class RenderAccessoryUtility { wingModels[mode].render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); } + + private static ModelBiped axePackModel; + public static void renderAxePack(RenderPlayerEvent.SetArmorModel event) { + + if(axePackModel == null) + axePackModel = new ModelArmorWingsPheo(); + + RenderPlayer renderer = event.renderer; + ModelBiped model = renderer.modelArmor; + EntityPlayer player = event.entityPlayer; + + axePackModel.isSneak = model.isSneak; + + float interp = event.partialRenderTick; + float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * interp; + float yaw = yawHead - yawOffset; + float yawWrapped = MathHelper.wrapAngleTo180_float(yawHead - yawOffset); + float pitch = player.rotationPitch; + + axePackModel.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); + } + + private static ModelBiped tailModel; + public static void renderFaggot(RenderPlayerEvent.SetArmorModel event) { + + if(tailModel == null) + tailModel = new ModelArmorTailPeep(); + + RenderPlayer renderer = event.renderer; + ModelBiped model = renderer.modelArmor; + EntityPlayer player = event.entityPlayer; + + tailModel.isSneak = model.isSneak; + + float interp = event.partialRenderTick; + float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * interp; + float yaw = yawHead - yawOffset; + float yawWrapped = MathHelper.wrapAngleTo180_float(yawHead - yawOffset); + float pitch = player.rotationPitch; + + tailModel.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); + } } diff --git a/src/main/java/com/hbm/render/util/RenderBlocksNT.java b/src/main/java/com/hbm/render/util/RenderBlocksNT.java new file mode 100644 index 000000000..db0990f07 --- /dev/null +++ b/src/main/java/com/hbm/render/util/RenderBlocksNT.java @@ -0,0 +1,239 @@ +package com.hbm.render.util; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class RenderBlocksNT extends RenderBlocks { + + public static final RenderBlocksNT INSTANCE = new RenderBlocksNT(); + + public RenderBlocksNT(IBlockAccess world) { + super(world); + } + + public RenderBlocksNT() { + super(); + } + + public RenderBlocksNT setWorld(IBlockAccess world) { + this.blockAccess = world; + this.field_152631_f = false; + this.flipTexture = false; + return this; + } + + @Override + public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon) { + Tessellator tessellator = Tessellator.instance; + + if(this.hasOverrideBlockTexture()) { + icon = this.overrideBlockTexture; + } + + double minU = (double) icon.getInterpolatedU(16.0D - this.renderMinX * 16.0D); // **FIX** + double maxU = (double) icon.getInterpolatedU(16.0D - this.renderMaxX * 16.0D); // **FIX** + + if(this.field_152631_f) { + minU = (double) icon.getInterpolatedU(this.renderMinX * 16.0D); // **FIX** + maxU = (double) icon.getInterpolatedU(this.renderMaxX * 16.0D); // **FIX** + } + + double maxV = (double) icon.getInterpolatedV(16.0D - this.renderMaxY * 16.0D); + double minV = (double) icon.getInterpolatedV(16.0D - this.renderMinY * 16.0D); + double minU2; + + if(this.flipTexture) { + minU2 = maxU; + maxU = minU; + minU = minU2; + } + + if(this.renderMinX < 0.0D || this.renderMaxX > 1.0D) { + maxU = (double) icon.getMinU(); + minU = (double) icon.getMaxU(); + } + + if(this.renderMinY < 0.0D || this.renderMaxY > 1.0D) { + maxV = (double) icon.getMinV(); + minV = (double) icon.getMaxV(); + } + + minU2 = minU; + double maxU2 = maxU; + double maxV2 = maxV; + double minV2 = minV; + + if(this.uvRotateEast == 2) { + maxU = (double) icon.getInterpolatedU(this.renderMinY * 16.0D); + minU = (double) icon.getInterpolatedU(this.renderMaxY * 16.0D); + maxV = (double) icon.getInterpolatedV(16.0D - this.renderMinX * 16.0D); + minV = (double) icon.getInterpolatedV(16.0D - this.renderMaxX * 16.0D); + maxV2 = maxV; + minV2 = minV; + minU2 = maxU; + maxU2 = minU; + maxV = minV; + minV = maxV2; + } else if(this.uvRotateEast == 1) { + maxU = (double) icon.getInterpolatedU(16.0D - this.renderMaxY * 16.0D); + minU = (double) icon.getInterpolatedU(16.0D - this.renderMinY * 16.0D); + maxV = (double) icon.getInterpolatedV(this.renderMaxX * 16.0D); + minV = (double) icon.getInterpolatedV(this.renderMinX * 16.0D); + minU2 = minU; + maxU2 = maxU; + maxU = minU; + minU = maxU2; + maxV2 = minV; + minV2 = maxV; + } else if(this.uvRotateEast == 3) { + maxU = (double) icon.getInterpolatedU(16.0D - this.renderMinX * 16.0D); + minU = (double) icon.getInterpolatedU(16.0D - this.renderMaxX * 16.0D); + maxV = (double) icon.getInterpolatedV(this.renderMaxY * 16.0D); + minV = (double) icon.getInterpolatedV(this.renderMinY * 16.0D); + minU2 = minU; + maxU2 = maxU; + maxV2 = maxV; + minV2 = minV; + } + + double minX = x + this.renderMinX; + double maxX = x + this.renderMaxX; + double minY = y + this.renderMinY; + double maxY = y + this.renderMaxY; + double minZ = z + this.renderMinZ; + + if(this.renderFromInside) { + minX = x + this.renderMaxX; + maxX = x + this.renderMinX; + } + + if(this.enableAO) { + tessellator.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft); + tessellator.setBrightness(this.brightnessTopLeft); + tessellator.addVertexWithUV(minX, maxY, minZ, minU2, maxV2); + tessellator.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft); + tessellator.setBrightness(this.brightnessBottomLeft); + tessellator.addVertexWithUV(maxX, maxY, minZ, maxU, maxV); + tessellator.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight); + tessellator.setBrightness(this.brightnessBottomRight); + tessellator.addVertexWithUV(maxX, minY, minZ, maxU2, minV2); + tessellator.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight); + tessellator.setBrightness(this.brightnessTopRight); + tessellator.addVertexWithUV(minX, minY, minZ, minU, minV); + } else { + tessellator.addVertexWithUV(minX, maxY, minZ, minU2, maxV2); + tessellator.addVertexWithUV(maxX, maxY, minZ, maxU, maxV); + tessellator.addVertexWithUV(maxX, minY, minZ, maxU2, minV2); + tessellator.addVertexWithUV(minX, minY, minZ, minU, minV); + } + } + + @Override + public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon) { + Tessellator tessellator = Tessellator.instance; + + if(this.hasOverrideBlockTexture()) { + icon = this.overrideBlockTexture; + } + + double minU = (double) icon.getInterpolatedU(16D - this.renderMinZ * 16.0D); // **FIX** + double maxU = (double) icon.getInterpolatedU(16D - this.renderMaxZ * 16.0D); // **FIX** + + if(this.field_152631_f) { + minU = (double) icon.getInterpolatedU(this.renderMinZ * 16.0D); // **FIX** + maxU = (double) icon.getInterpolatedU(this.renderMaxZ * 16.0D); // **FIX** + } + + double maxV = (double) icon.getInterpolatedV(16.0D - this.renderMaxY * 16.0D); + double minV = (double) icon.getInterpolatedV(16.0D - this.renderMinY * 16.0D); + double minU2; + + if(this.flipTexture) { + minU2 = maxU; + maxU = minU; + minU = minU2; + } + + if(this.renderMinZ < 0.0D || this.renderMaxZ > 1.0D) { + maxU = (double) icon.getMinU(); + minU = (double) icon.getMaxU(); + } + + if(this.renderMinY < 0.0D || this.renderMaxY > 1.0D) { + maxV = (double) icon.getMinV(); + minV = (double) icon.getMaxV(); + } + + minU2 = minU; + double maxU2 = maxU; + double maxV2 = maxV; + double minV2 = minV; + + if(this.uvRotateSouth == 2) { + maxU = (double) icon.getInterpolatedU(this.renderMinY * 16.0D); + maxV = (double) icon.getInterpolatedV(16.0D - this.renderMinZ * 16.0D); + minU = (double) icon.getInterpolatedU(this.renderMaxY * 16.0D); + minV = (double) icon.getInterpolatedV(16.0D - this.renderMaxZ * 16.0D); + maxV2 = maxV; + minV2 = minV; + minU2 = maxU; + maxU2 = minU; + maxV = minV; + minV = maxV2; + } else if(this.uvRotateSouth == 1) { + maxU = (double) icon.getInterpolatedU(16.0D - this.renderMaxY * 16.0D); + maxV = (double) icon.getInterpolatedV(this.renderMaxZ * 16.0D); + minU = (double) icon.getInterpolatedU(16.0D - this.renderMinY * 16.0D); + minV = (double) icon.getInterpolatedV(this.renderMinZ * 16.0D); + minU2 = minU; + maxU2 = maxU; + maxU = minU; + minU = maxU2; + maxV2 = minV; + minV2 = maxV; + } else if(this.uvRotateSouth == 3) { + maxU = (double) icon.getInterpolatedU(16.0D - this.renderMinZ * 16.0D); + minU = (double) icon.getInterpolatedU(16.0D - this.renderMaxZ * 16.0D); + maxV = (double) icon.getInterpolatedV(this.renderMaxY * 16.0D); + minV = (double) icon.getInterpolatedV(this.renderMinY * 16.0D); + minU2 = minU; + maxU2 = maxU; + maxV2 = maxV; + minV2 = minV; + } + + double maxX = x + this.renderMaxX; + double minY = y + this.renderMinY; + double maxY = y + this.renderMaxY; + double minZ = z + this.renderMinZ; + double maxZ = z + this.renderMaxZ; + + if(this.renderFromInside) { + minZ = z + this.renderMaxZ; + maxZ = z + this.renderMinZ; + } + + if(this.enableAO) { + tessellator.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft); + tessellator.setBrightness(this.brightnessTopLeft); + tessellator.addVertexWithUV(maxX, minY, maxZ, maxU2, minV2); + tessellator.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft); + tessellator.setBrightness(this.brightnessBottomLeft); + tessellator.addVertexWithUV(maxX, minY, minZ, minU, minV); + tessellator.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight); + tessellator.setBrightness(this.brightnessBottomRight); + tessellator.addVertexWithUV(maxX, maxY, minZ, minU2, maxV2); + tessellator.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight); + tessellator.setBrightness(this.brightnessTopRight); + tessellator.addVertexWithUV(maxX, maxY, maxZ, maxU, maxV); + } else { + tessellator.addVertexWithUV(maxX, minY, maxZ, maxU2, minV2); + tessellator.addVertexWithUV(maxX, minY, minZ, minU, minV); + tessellator.addVertexWithUV(maxX, maxY, minZ, minU2, maxV2); + tessellator.addVertexWithUV(maxX, maxY, maxZ, maxU, maxV); + } + } +} diff --git a/src/main/java/com/hbm/render/util/RenderBlocksWrapper.java b/src/main/java/com/hbm/render/util/RenderBlocksWrapper.java new file mode 100644 index 000000000..3da1e2b22 --- /dev/null +++ b/src/main/java/com/hbm/render/util/RenderBlocksWrapper.java @@ -0,0 +1,150 @@ +package com.hbm.render.util; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockAnvil; +import net.minecraft.block.BlockBeacon; +import net.minecraft.block.BlockBrewingStand; +import net.minecraft.block.BlockCauldron; +import net.minecraft.block.BlockCocoa; +import net.minecraft.block.BlockDoublePlant; +import net.minecraft.block.BlockDragonEgg; +import net.minecraft.block.BlockEndPortalFrame; +import net.minecraft.block.BlockFence; +import net.minecraft.block.BlockFenceGate; +import net.minecraft.block.BlockFire; +import net.minecraft.block.BlockFlowerPot; +import net.minecraft.block.BlockHopper; +import net.minecraft.block.BlockPane; +import net.minecraft.block.BlockRailBase; +import net.minecraft.block.BlockRedstoneComparator; +import net.minecraft.block.BlockRedstoneDiode; +import net.minecraft.block.BlockRedstoneRepeater; +import net.minecraft.block.BlockStairs; +import net.minecraft.block.BlockStem; +import net.minecraft.block.BlockWall; +import net.minecraft.block.material.Material; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class RenderBlocksWrapper extends RenderBlocks { + + public static final RenderBlocksWrapper INSTANCE = new RenderBlocksWrapper(); + public RenderBlocks rb; + + public void setup(RenderBlocks rb) { this.rb = rb; } + + @Override + public boolean renderStandardBlock(Block block, int x, int y, int z) { + int color = block.colorMultiplier(this.blockAccess, x, y, z); + float r = (float) (color >> 16 & 255) / 255.0F; + float g = (float) (color >> 8 & 255) / 255.0F; + float b = (float) (color & 255) / 255.0F; + + if(EntityRenderer.anaglyphEnable) { + float ar = (r * 30.0F + g * 59.0F + b * 11.0F) / 100.0F; + float ag = (r * 30.0F + g * 70.0F) / 100.0F; + float ab = (r * 30.0F + b * 70.0F) / 100.0F; + r = ar; + g = ag; + b = ab; + } + + return Minecraft.isAmbientOcclusionEnabled() && block.getLightValue() == 0 + ? (this.partialRenderBounds ? this.renderStandardBlockWithAmbientOcclusionPartial(block, x, y, z, r, g, b) + : this.renderStandardBlockWithAmbientOcclusion(block, x, y, z, r, g, b)) + : this.renderStandardBlockWithColorMultiplier(block, x, y, z, r, g, b); + } + + // the unholy mass + @Override public void setOverrideBlockTexture(IIcon p_147757_1_) { rb.setOverrideBlockTexture(p_147757_1_); } + @Override public void clearOverrideBlockTexture() { rb.clearOverrideBlockTexture(); } + @Override public boolean hasOverrideBlockTexture() { return rb.hasOverrideBlockTexture(); } + @Override public void setRenderFromInside(boolean p_147786_1_) { rb.setRenderFromInside(p_147786_1_); } + @Override public void setRenderAllFaces(boolean p_147753_1_) { rb.setRenderAllFaces(p_147753_1_); } + @Override public void setRenderBounds(double p_147782_1_, double p_147782_3_, double p_147782_5_, double p_147782_7_, double p_147782_9_, double p_147782_11_) { rb.setRenderBounds(p_147782_1_, p_147782_3_, p_147782_5_, p_147782_7_, p_147782_9_, p_147782_11_); } + @Override public void setRenderBoundsFromBlock(Block p_147775_1_) { rb.setRenderBoundsFromBlock(p_147775_1_); } + @Override public void overrideBlockBounds(double p_147770_1_, double p_147770_3_, double p_147770_5_, double p_147770_7_, double p_147770_9_, double p_147770_11_) { rb.overrideBlockBounds(p_147770_1_, p_147770_3_, p_147770_5_, p_147770_7_, p_147770_9_, p_147770_11_); } + @Override public void unlockBlockBounds() { rb.unlockBlockBounds(); } + @Override public void renderBlockUsingTexture(Block p_147792_1_, int p_147792_2_, int p_147792_3_, int p_147792_4_, IIcon p_147792_5_) { rb.renderBlockUsingTexture(p_147792_1_, p_147792_2_, p_147792_3_, p_147792_4_, p_147792_5_); } + @Override public void renderBlockAllFaces(Block p_147769_1_, int p_147769_2_, int p_147769_3_, int p_147769_4_) { rb.renderBlockAllFaces(p_147769_1_, p_147769_2_, p_147769_3_, p_147769_4_); } + @Override public boolean renderBlockByRenderType(Block p_147805_1_, int p_147805_2_, int p_147805_3_, int p_147805_4_) { return rb.renderBlockByRenderType(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_); } + @Override public boolean renderBlockEndPortalFrame(BlockEndPortalFrame p_147743_1_, int p_147743_2_, int p_147743_3_, int p_147743_4_) { return rb.renderBlockEndPortalFrame(p_147743_1_, p_147743_2_, p_147743_3_, p_147743_4_); } + @Override public boolean renderBlockBed(Block p_147773_1_, int p_147773_2_, int p_147773_3_, int p_147773_4_) { return rb.renderBlockBed(p_147773_1_, p_147773_2_, p_147773_3_, p_147773_4_); } + @Override public boolean renderBlockBrewingStand(BlockBrewingStand p_147741_1_, int p_147741_2_, int p_147741_3_, int p_147741_4_) { return rb.renderBlockBrewingStand(p_147741_1_, p_147741_2_, p_147741_3_, p_147741_4_); } + @Override public boolean renderBlockCauldron(BlockCauldron p_147785_1_, int p_147785_2_, int p_147785_3_, int p_147785_4_) { return rb.renderBlockCauldron(p_147785_1_, p_147785_2_, p_147785_3_, p_147785_4_); } + @Override public boolean renderBlockFlowerpot(BlockFlowerPot p_147752_1_, int p_147752_2_, int p_147752_3_, int p_147752_4_) { return rb.renderBlockFlowerpot(p_147752_1_, p_147752_2_, p_147752_3_, p_147752_4_); } + @Override public boolean renderBlockAnvil(BlockAnvil p_147725_1_, int p_147725_2_, int p_147725_3_, int p_147725_4_) { return rb.renderBlockAnvil(p_147725_1_, p_147725_2_, p_147725_3_, p_147725_4_); } + @Override public boolean renderBlockAnvilMetadata(BlockAnvil p_147780_1_, int p_147780_2_, int p_147780_3_, int p_147780_4_, int p_147780_5_) { return rb.renderBlockAnvilMetadata(p_147780_1_, p_147780_2_, p_147780_3_, p_147780_4_, p_147780_5_); } + @Override public boolean renderBlockAnvilOrient(BlockAnvil p_147728_1_, int p_147728_2_, int p_147728_3_, int p_147728_4_, int p_147728_5_, boolean p_147728_6_) { return rb.renderBlockAnvilOrient(p_147728_1_, p_147728_2_, p_147728_3_, p_147728_4_, p_147728_5_, p_147728_6_); } + @Override public float renderBlockAnvilRotate(BlockAnvil p_147737_1_, int p_147737_2_, int p_147737_3_, int p_147737_4_, int p_147737_5_, float p_147737_6_, float p_147737_7_, float p_147737_8_, float p_147737_9_, boolean p_147737_10_, boolean p_147737_11_, int p_147737_12_) { return rb.renderBlockAnvilRotate(p_147737_1_, p_147737_2_, p_147737_3_, p_147737_4_, p_147737_5_, p_147737_6_, p_147737_7_, p_147737_8_, p_147737_9_, p_147737_10_, p_147737_11_, p_147737_12_); } + @Override public boolean renderBlockTorch(Block p_147791_1_, int p_147791_2_, int p_147791_3_, int p_147791_4_) { return rb.renderBlockTorch(p_147791_1_, p_147791_2_, p_147791_3_, p_147791_4_); } + @Override public boolean renderBlockRepeater(BlockRedstoneRepeater p_147759_1_, int p_147759_2_, int p_147759_3_, int p_147759_4_) { return rb.renderBlockRepeater(p_147759_1_, p_147759_2_, p_147759_3_, p_147759_4_); } + @Override public boolean renderBlockRedstoneComparator(BlockRedstoneComparator p_147781_1_, int p_147781_2_, int p_147781_3_, int p_147781_4_) { return rb.renderBlockRedstoneComparator(p_147781_1_, p_147781_2_, p_147781_3_, p_147781_4_); } + @Override public boolean renderBlockRedstoneDiode(BlockRedstoneDiode p_147748_1_, int p_147748_2_, int p_147748_3_, int p_147748_4_) { return rb.renderBlockRedstoneDiode(p_147748_1_, p_147748_2_, p_147748_3_, p_147748_4_); } + @Override public void renderBlockRedstoneDiodeMetadata(BlockRedstoneDiode p_147732_1_, int p_147732_2_, int p_147732_3_, int p_147732_4_, int p_147732_5_) { rb.renderBlockRedstoneDiodeMetadata(p_147732_1_, p_147732_2_, p_147732_3_, p_147732_4_, p_147732_5_); } + @Override public void renderPistonBaseAllFaces(Block p_147804_1_, int p_147804_2_, int p_147804_3_, int p_147804_4_) { rb.renderPistonBaseAllFaces(p_147804_1_, p_147804_2_, p_147804_3_, p_147804_4_); } + @Override public boolean renderPistonBase(Block p_147731_1_, int p_147731_2_, int p_147731_3_, int p_147731_4_, boolean p_147731_5_) { return rb.renderPistonBase(p_147731_1_, p_147731_2_, p_147731_3_, p_147731_4_, p_147731_5_); } + @Override public void renderPistonRodUD(double p_147763_1_, double p_147763_3_, double p_147763_5_, double p_147763_7_, double p_147763_9_, double p_147763_11_, float p_147763_13_, double p_147763_14_) { rb.renderPistonRodUD(p_147763_1_, p_147763_3_, p_147763_5_, p_147763_7_, p_147763_9_, p_147763_11_, p_147763_13_, p_147763_14_); } + @Override public void renderPistonRodSN(double p_147789_1_, double p_147789_3_, double p_147789_5_, double p_147789_7_, double p_147789_9_, double p_147789_11_, float p_147789_13_, double p_147789_14_) { rb.renderPistonRodSN(p_147789_1_, p_147789_3_, p_147789_5_, p_147789_7_, p_147789_9_, p_147789_11_, p_147789_13_, p_147789_14_); } + @Override public void renderPistonRodEW(double p_147738_1_, double p_147738_3_, double p_147738_5_, double p_147738_7_, double p_147738_9_, double p_147738_11_, float p_147738_13_, double p_147738_14_) { rb.renderPistonRodEW(p_147738_1_, p_147738_3_, p_147738_5_, p_147738_7_, p_147738_9_, p_147738_11_, p_147738_13_, p_147738_14_); } + @Override public void renderPistonExtensionAllFaces(Block p_147750_1_, int p_147750_2_, int p_147750_3_, int p_147750_4_, boolean p_147750_5_) { rb.renderPistonExtensionAllFaces(p_147750_1_, p_147750_2_, p_147750_3_, p_147750_4_, p_147750_5_); } + @Override public boolean renderPistonExtension(Block p_147809_1_, int p_147809_2_, int p_147809_3_, int p_147809_4_, boolean p_147809_5_) { return rb.renderPistonExtension(p_147809_1_, p_147809_2_, p_147809_3_, p_147809_4_, p_147809_5_); } + @Override public boolean renderBlockLever(Block p_147790_1_, int p_147790_2_, int p_147790_3_, int p_147790_4_) { return rb.renderBlockLever(p_147790_1_, p_147790_2_, p_147790_3_, p_147790_4_); } + @Override public boolean renderBlockTripWireSource(Block p_147723_1_, int p_147723_2_, int p_147723_3_, int p_147723_4_) { return rb.renderBlockTripWireSource(p_147723_1_, p_147723_2_, p_147723_3_, p_147723_4_); } + @Override public boolean renderBlockTripWire(Block p_147756_1_, int p_147756_2_, int p_147756_3_, int p_147756_4_) { return rb.renderBlockTripWire(p_147756_1_, p_147756_2_, p_147756_3_, p_147756_4_); } + @Override public boolean renderBlockFire(BlockFire p_147801_1_, int p_147801_2_, int p_147801_3_, int p_147801_4_) { return rb.renderBlockFire(p_147801_1_, p_147801_2_, p_147801_3_, p_147801_4_); } + @Override public boolean renderBlockRedstoneWire(Block p_147788_1_, int p_147788_2_, int p_147788_3_, int p_147788_4_) { return rb.renderBlockRedstoneWire(p_147788_1_, p_147788_2_, p_147788_3_, p_147788_4_); } + @Override public boolean renderBlockMinecartTrack(BlockRailBase p_147766_1_, int p_147766_2_, int p_147766_3_, int p_147766_4_) { return rb.renderBlockMinecartTrack(p_147766_1_, p_147766_2_, p_147766_3_, p_147766_4_); } + @Override public boolean renderBlockLadder(Block p_147794_1_, int p_147794_2_, int p_147794_3_, int p_147794_4_) { return rb.renderBlockLadder(p_147794_1_, p_147794_2_, p_147794_3_, p_147794_4_); } + @Override public boolean renderBlockVine(Block p_147726_1_, int p_147726_2_, int p_147726_3_, int p_147726_4_) { return rb.renderBlockVine(p_147726_1_, p_147726_2_, p_147726_3_, p_147726_4_); } + @Override public boolean renderBlockStainedGlassPane(Block p_147733_1_, int p_147733_2_, int p_147733_3_, int p_147733_4_) { return rb.renderBlockStainedGlassPane(p_147733_1_, p_147733_2_, p_147733_3_, p_147733_4_); } + @Override public boolean renderBlockPane(BlockPane p_147767_1_, int p_147767_2_, int p_147767_3_, int p_147767_4_) { return rb.renderBlockPane(p_147767_1_, p_147767_2_, p_147767_3_, p_147767_4_); } + @Override public boolean renderCrossedSquares(Block p_147746_1_, int p_147746_2_, int p_147746_3_, int p_147746_4_) { return rb.renderCrossedSquares(p_147746_1_, p_147746_2_, p_147746_3_, p_147746_4_); } + @Override public boolean renderBlockDoublePlant(BlockDoublePlant p_147774_1_, int p_147774_2_, int p_147774_3_, int p_147774_4_) { return rb.renderBlockDoublePlant(p_147774_1_, p_147774_2_, p_147774_3_, p_147774_4_); } + @Override public boolean renderBlockStem(Block p_147724_1_, int p_147724_2_, int p_147724_3_, int p_147724_4_) { return rb.renderBlockStem(p_147724_1_, p_147724_2_, p_147724_3_, p_147724_4_); } + @Override public boolean renderBlockCrops(Block p_147796_1_, int p_147796_2_, int p_147796_3_, int p_147796_4_) { return rb.renderBlockCrops(p_147796_1_, p_147796_2_, p_147796_3_, p_147796_4_); } + @Override public void renderTorchAtAngle(Block p_147747_1_, double p_147747_2_, double p_147747_4_, double p_147747_6_, double p_147747_8_, double p_147747_10_, int p_147747_12_) { rb.renderTorchAtAngle(p_147747_1_, p_147747_2_, p_147747_4_, p_147747_6_, p_147747_8_, p_147747_10_, p_147747_12_); } + @Override public void drawCrossedSquares(IIcon p_147765_1_, double p_147765_2_, double p_147765_4_, double p_147765_6_, float p_147765_8_) { rb.drawCrossedSquares(p_147765_1_, p_147765_2_, p_147765_4_, p_147765_6_, p_147765_8_); } + @Override public void renderBlockStemSmall(Block p_147730_1_, int p_147730_2_, double p_147730_3_, double p_147730_5_, double p_147730_7_, double p_147730_9_) { rb.renderBlockStemSmall(p_147730_1_, p_147730_2_, p_147730_3_, p_147730_5_, p_147730_7_, p_147730_9_); } + @Override public boolean renderBlockLilyPad(Block p_147783_1_, int p_147783_2_, int p_147783_3_, int p_147783_4_) { return rb.renderBlockLilyPad(p_147783_1_, p_147783_2_, p_147783_3_, p_147783_4_); } + @Override public void renderBlockStemBig(BlockStem p_147740_1_, int p_147740_2_, int p_147740_3_, double p_147740_4_, double p_147740_6_, double p_147740_8_, double p_147740_10_) { rb.renderBlockStemBig(p_147740_1_, p_147740_2_, p_147740_3_, p_147740_4_, p_147740_6_, p_147740_8_, p_147740_10_); } + @Override public void renderBlockCropsImpl(Block p_147795_1_, int p_147795_2_, double p_147795_3_, double p_147795_5_, double p_147795_7_) { rb.renderBlockCropsImpl(p_147795_1_, p_147795_2_, p_147795_3_, p_147795_5_, p_147795_7_); } + @Override public boolean renderBlockLiquid(Block p_147721_1_, int p_147721_2_, int p_147721_3_, int p_147721_4_) { return rb.renderBlockLiquid(p_147721_1_, p_147721_2_, p_147721_3_, p_147721_4_); } + @Override public float getLiquidHeight(int p_147729_1_, int p_147729_2_, int p_147729_3_, Material p_147729_4_) { return rb.getLiquidHeight(p_147729_1_, p_147729_2_, p_147729_3_, p_147729_4_); } + @Override public void renderBlockSandFalling(Block p_147749_1_, World p_147749_2_, int p_147749_3_, int p_147749_4_, int p_147749_5_, int p_147749_6_) { rb.renderBlockSandFalling(p_147749_1_, p_147749_2_, p_147749_3_, p_147749_4_, p_147749_5_, p_147749_6_); } + @Override public boolean renderBlockLog(Block p_147742_1_, int p_147742_2_, int p_147742_3_, int p_147742_4_) { return rb.renderBlockLog(p_147742_1_, p_147742_2_, p_147742_3_, p_147742_4_); } + @Override public boolean renderBlockQuartz(Block p_147779_1_, int p_147779_2_, int p_147779_3_, int p_147779_4_) { return rb.renderBlockQuartz(p_147779_1_, p_147779_2_, p_147779_3_, p_147779_4_); } + @Override public boolean renderStandardBlockWithAmbientOcclusion(Block p_147751_1_, int p_147751_2_, int p_147751_3_, int p_147751_4_, float p_147751_5_, float p_147751_6_, float p_147751_7_) { return rb.renderStandardBlockWithAmbientOcclusion(p_147751_1_, p_147751_2_, p_147751_3_, p_147751_4_, p_147751_5_, p_147751_6_, p_147751_7_); } + @Override public boolean renderStandardBlockWithAmbientOcclusionPartial(Block p_147808_1_, int p_147808_2_, int p_147808_3_, int p_147808_4_, float p_147808_5_, float p_147808_6_, float p_147808_7_) { return rb.renderStandardBlockWithAmbientOcclusionPartial(p_147808_1_, p_147808_2_, p_147808_3_, p_147808_4_, p_147808_5_, p_147808_6_, p_147808_7_); } + @Override public int getAoBrightness(int p_147778_1_, int p_147778_2_, int p_147778_3_, int p_147778_4_) { return rb.getAoBrightness(p_147778_1_, p_147778_2_, p_147778_3_, p_147778_4_); } + @Override public int mixAoBrightness(int p_147727_1_, int p_147727_2_, int p_147727_3_, int p_147727_4_, double p_147727_5_, double p_147727_7_, double p_147727_9_, double p_147727_11_) { return rb.mixAoBrightness(p_147727_1_, p_147727_2_, p_147727_3_, p_147727_4_, p_147727_5_, p_147727_7_, p_147727_9_, p_147727_11_); } + @Override public boolean renderStandardBlockWithColorMultiplier(Block p_147736_1_, int p_147736_2_, int p_147736_3_, int p_147736_4_, float p_147736_5_, float p_147736_6_, float p_147736_7_) { return rb.renderStandardBlockWithColorMultiplier(p_147736_1_, p_147736_2_, p_147736_3_, p_147736_4_, p_147736_5_, p_147736_6_, p_147736_7_); } + @Override public boolean renderBlockCocoa(BlockCocoa p_147772_1_, int p_147772_2_, int p_147772_3_, int p_147772_4_) { return rb.renderBlockCocoa(p_147772_1_, p_147772_2_, p_147772_3_, p_147772_4_); } + @Override public boolean renderBlockBeacon(BlockBeacon p_147797_1_, int p_147797_2_, int p_147797_3_, int p_147797_4_) { return rb.renderBlockBeacon(p_147797_1_, p_147797_2_, p_147797_3_, p_147797_4_); } + @Override public boolean renderBlockCactus(Block p_147755_1_, int p_147755_2_, int p_147755_3_, int p_147755_4_) { return rb.renderBlockCactus(p_147755_1_, p_147755_2_, p_147755_3_, p_147755_4_); } + @Override public boolean renderBlockCactusImpl(Block p_147754_1_, int p_147754_2_, int p_147754_3_, int p_147754_4_, float p_147754_5_, float p_147754_6_, float p_147754_7_) { return rb.renderBlockCactusImpl(p_147754_1_, p_147754_2_, p_147754_3_, p_147754_4_, p_147754_5_, p_147754_6_, p_147754_7_); } + @Override public boolean renderBlockFence(BlockFence p_147735_1_, int p_147735_2_, int p_147735_3_, int p_147735_4_) { return rb.renderBlockFence(p_147735_1_, p_147735_2_, p_147735_3_, p_147735_4_); } + @Override public boolean renderBlockWall(BlockWall p_147807_1_, int p_147807_2_, int p_147807_3_, int p_147807_4_) { return rb.renderBlockWall(p_147807_1_, p_147807_2_, p_147807_3_, p_147807_4_); } + @Override public boolean renderBlockDragonEgg(BlockDragonEgg p_147802_1_, int p_147802_2_, int p_147802_3_, int p_147802_4_) { return rb.renderBlockDragonEgg(p_147802_1_, p_147802_2_, p_147802_3_, p_147802_4_); } + @Override public boolean renderBlockFenceGate(BlockFenceGate p_147776_1_, int p_147776_2_, int p_147776_3_, int p_147776_4_) { return rb.renderBlockFenceGate(p_147776_1_, p_147776_2_, p_147776_3_, p_147776_4_); } + @Override public boolean renderBlockHopper(BlockHopper p_147803_1_, int p_147803_2_, int p_147803_3_, int p_147803_4_) { return rb.renderBlockHopper(p_147803_1_, p_147803_2_, p_147803_3_, p_147803_4_); } + @Override public boolean renderBlockHopperMetadata(BlockHopper p_147799_1_, int p_147799_2_, int p_147799_3_, int p_147799_4_, int p_147799_5_, boolean p_147799_6_) { return rb.renderBlockHopperMetadata(p_147799_1_, p_147799_2_, p_147799_3_, p_147799_4_, p_147799_5_, p_147799_6_); } + @Override public boolean renderBlockStairs(BlockStairs p_147722_1_, int p_147722_2_, int p_147722_3_, int p_147722_4_) { return rb.renderBlockStairs(p_147722_1_, p_147722_2_, p_147722_3_, p_147722_4_); } + @Override public boolean renderBlockDoor(Block p_147760_1_, int p_147760_2_, int p_147760_3_, int p_147760_4_) { return rb.renderBlockDoor(p_147760_1_, p_147760_2_, p_147760_3_, p_147760_4_); } + @Override public void renderFaceYNeg(Block p_147768_1_, double p_147768_2_, double p_147768_4_, double p_147768_6_, IIcon p_147768_8_) { rb.renderFaceYNeg(p_147768_1_, p_147768_2_, p_147768_4_, p_147768_6_, p_147768_8_); } + @Override public void renderFaceYPos(Block p_147806_1_, double p_147806_2_, double p_147806_4_, double p_147806_6_, IIcon p_147806_8_) { rb.renderFaceYPos(p_147806_1_, p_147806_2_, p_147806_4_, p_147806_6_, p_147806_8_); } + @Override public void renderFaceZNeg(Block p_147761_1_, double p_147761_2_, double p_147761_4_, double p_147761_6_, IIcon p_147761_8_) { rb.renderFaceZNeg(p_147761_1_, p_147761_2_, p_147761_4_, p_147761_6_, p_147761_8_); } + @Override public void renderFaceZPos(Block p_147734_1_, double p_147734_2_, double p_147734_4_, double p_147734_6_, IIcon p_147734_8_) { rb.renderFaceZPos(p_147734_1_, p_147734_2_, p_147734_4_, p_147734_6_, p_147734_8_); } + @Override public void renderFaceXNeg(Block p_147798_1_, double p_147798_2_, double p_147798_4_, double p_147798_6_, IIcon p_147798_8_) { rb.renderFaceXNeg(p_147798_1_, p_147798_2_, p_147798_4_, p_147798_6_, p_147798_8_); } + @Override public void renderFaceXPos(Block p_147764_1_, double p_147764_2_, double p_147764_4_, double p_147764_6_, IIcon p_147764_8_) { rb.renderFaceXPos(p_147764_1_, p_147764_2_, p_147764_4_, p_147764_6_, p_147764_8_); } + @Override public void renderBlockAsItem(Block p_147800_1_, int p_147800_2_, float p_147800_3_) { rb.renderBlockAsItem(p_147800_1_, p_147800_2_, p_147800_3_); } + @Override public IIcon getBlockIcon(Block p_147793_1_, IBlockAccess p_147793_2_, int p_147793_3_, int p_147793_4_, int p_147793_5_, int p_147793_6_) { return rb.getBlockIcon(p_147793_1_, p_147793_2_, p_147793_3_, p_147793_4_, p_147793_5_, p_147793_6_); } + @Override public IIcon getBlockIconFromSideAndMetadata(Block block, int side, int meta) { return rb.getBlockIconFromSideAndMetadata(block, side, meta); } + @Override public IIcon getBlockIconFromSide(Block block, int side) { return rb.getBlockIconFromSide(block, side); } + @Override public IIcon getBlockIcon(Block block) { return rb.getBlockIcon(block); } + @Override public IIcon getIconSafe(IIcon icon) { return rb.getIconSafe(icon); } +} diff --git a/src/main/java/com/hbm/render/util/RenderDecoItem.java b/src/main/java/com/hbm/render/util/RenderDecoItem.java index bfca8e9ff..b7e6d2a70 100644 --- a/src/main/java/com/hbm/render/util/RenderDecoItem.java +++ b/src/main/java/com/hbm/render/util/RenderDecoItem.java @@ -1,6 +1,7 @@ package com.hbm.render.util; import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; @@ -9,7 +10,9 @@ import net.minecraft.item.ItemStack; * @author hbm */ public class RenderDecoItem extends RenderItem { + public RenderDecoItem(TileEntitySpecialRenderer render) { + this.setRenderManager(RenderManager.instance); } @Override diff --git a/src/main/java/com/hbm/render/util/RenderInfoSystem.java b/src/main/java/com/hbm/render/util/RenderInfoSystem.java index da618d194..773c5e618 100644 --- a/src/main/java/com/hbm/render/util/RenderInfoSystem.java +++ b/src/main/java/com/hbm/render/util/RenderInfoSystem.java @@ -7,7 +7,7 @@ import java.util.List; import org.lwjgl.opengl.GL11; -import com.hbm.config.GeneralConfig; +import com.hbm.config.ClientConfig; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; @@ -44,11 +44,14 @@ public class RenderInfoSystem { } } - @SubscribeEvent + @SubscribeEvent(receiveCanceled = true) public void onOverlayRender(RenderGameOverlayEvent.Pre event) { if(event.type != ElementType.CROSSHAIRS) return; + + //this.messages.put(-666, new InfoEntry(Minecraft.getMinecraft().theWorld.getCelestialAngle(0) + "", 666_666)); + //this.messages.put(-665, new InfoEntry(Minecraft.getMinecraft().theWorld.getMoonPhase() + "", 666_666)); if(this.messages.isEmpty()) return; @@ -72,15 +75,18 @@ public class RenderInfoSystem { longest = length; } - int mode = GeneralConfig.hintPos; + int mode = ClientConfig.INFO_POSITION.get(); int pX = mode == 0 ? 15 : mode == 1 ? (resolution.getScaledWidth() - longest - 15) : mode == 2 ? (resolution.getScaledWidth() / 2 + 7) : (resolution.getScaledWidth() / 2 - longest - 6); int pZ = mode == 0 ? 15 : mode == 1 ? 15 : resolution.getScaledHeight() / 2 + 7; + + pX += ClientConfig.INFO_OFFSET_HORIZONTAL.get(); + pZ += ClientConfig.INFO_OFFSET_VERTICAL.get(); int side = pX + 5 + longest; int height = messages.size() * 10 + pZ + 2; int z = 0; - + GL11.glDisable(GL11.GL_TEXTURE_2D); Tessellator tess = Tessellator.instance; tess.startDrawingQuads(); @@ -164,13 +170,8 @@ public class RenderInfoSystem { @Override public int compareTo(Object o) { - - if(!(o instanceof InfoEntry)) { - return 0; - } - + if(!(o instanceof InfoEntry)) { return 0; } InfoEntry other = (InfoEntry) o; - return this.millis < other.millis ? -1 : this.millis > other.millis ? 1 : 0; } } diff --git a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java index 50ef61541..25dc54906 100644 --- a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java +++ b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java @@ -3,9 +3,12 @@ package com.hbm.render.util; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.config.ClientConfig; import com.hbm.extprop.HbmPlayerProps; import com.hbm.interfaces.Spaghetti; import com.hbm.interfaces.Untested; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.impl.ItemGunStinger; import com.hbm.lib.RefStrings; import net.minecraft.client.Minecraft; @@ -23,8 +26,8 @@ import net.minecraftforge.client.GuiIngameForge; public class RenderScreenOverlay { - private static final ResourceLocation misc = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_misc.png"); - private static final RenderItem itemRenderer = RenderItem.getInstance(); + public static final ResourceLocation misc = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_misc.png"); + public static final RenderItem itemRenderer = RenderItem.getInstance(); private static long lastSurvey; private static float prevResult; @@ -36,8 +39,6 @@ public class RenderScreenOverlay { GL11.glPushMatrix(); GL11.glEnable(GL11.GL_BLEND); - // GL11.glDisable(GL11.GL_DEPTH_TEST); - // GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_ALPHA_TEST); @@ -57,8 +58,8 @@ public class RenderScreenOverlay { int bar = getScaled(in, maxRad, 74); - int posX = 16; - int posY = resolution.getScaledHeight() - 18 - 2; + int posX = 16 + ClientConfig.GEIGER_OFFSET_HORIZONTAL.get(); + int posY = resolution.getScaledHeight() - 20 - ClientConfig.GEIGER_OFFSET_VERTICAL.get(); Minecraft.getMinecraft().renderEngine.bindTexture(misc); gui.drawTexturedModalRect(posX, posY, 0, 0, 94, 18); @@ -96,7 +97,7 @@ public class RenderScreenOverlay { public static void renderCustomCrosshairs(ScaledResolution resolution, Gui gui, Crosshair cross) { - + if(cross == Crosshair.NONE) { Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); return; @@ -105,13 +106,26 @@ public class RenderScreenOverlay { int size = cross.size; GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(misc); - GL11.glEnable(GL11.GL_BLEND); - OpenGlHelper.glBlendFunc(GL11.GL_ONE_MINUS_DST_COLOR, GL11.GL_ONE_MINUS_SRC_COLOR, 1, 0); - gui.drawTexturedModalRect(resolution.getScaledWidth() / 2 - (size / 2), resolution.getScaledHeight() / 2 - (size / 2), cross.x, cross.y, size, size); - OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); - GL11.glDisable(GL11.GL_BLEND); - GL11.glPopMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(misc); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(GL11.GL_ONE_MINUS_DST_COLOR, GL11.GL_ONE_MINUS_SRC_COLOR, 1, 0); + gui.drawTexturedModalRect(resolution.getScaledWidth() / 2 - (size / 2), resolution.getScaledHeight() / 2 - (size / 2), cross.x, cross.y, size, size); + OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); + } + + public static void renderStingerLockon(ScaledResolution resolution, Gui gui) { + + int progress = (int) (ItemGunStinger.lockon * 28); + + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(misc); + GL11.glDisable(GL11.GL_BLEND); + gui.drawTexturedModalRect(resolution.getScaledWidth() / 2 - 15, resolution.getScaledHeight() / 2 + 18, 146, 18, 30, 10); + gui.drawTexturedModalRect(resolution.getScaledWidth() / 2 - 14, resolution.getScaledHeight() / 2 + 19, 147, 29, progress, 8); + GL11.glPopMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); } @@ -230,11 +244,10 @@ public class RenderScreenOverlay { int bar = barID; if(stamina % 30 >= 25) bar++; - int yPos = y; if(bar / 3 != y) y++; bar = bar % 3; - gui.drawTexturedModalRect(posX + (width+2)*bar, posY - 12*y, 76, 58, width, 10); + gui.drawTexturedModalRect(posX + (width + 2) * bar, posY - 12 * y, 76, 58, width, 10); fadeOut -= 0.04F; GL11.glColor4f(1F, 1F, 1F, 1F); } @@ -297,7 +310,7 @@ public class RenderScreenOverlay { Minecraft.getMinecraft().renderEngine.bindTexture(misc); gui.drawTexturedModalRect(left, top, 146, 0, 81, 9); - int i = (int) Math.ceil(props.shield * 79 / props.maxShield); + int i = (int) Math.ceil(props.shield * 79 / props.getEffectiveMaxShield()); gui.drawTexturedModalRect(left + 1, top, 147, 9, i, 9); String label = "" + ((int) (props.shield * 10F)) / 10D; @@ -353,37 +366,4 @@ public class RenderScreenOverlay { GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } - - public enum Crosshair { - - NONE(0, 0, 0), - CROSS(1, 55, 16), - CIRCLE(19, 55, 16), - SEMI(37, 55, 16), - KRUCK(55, 55, 16), - DUAL(1, 73, 16), - SPLIT(19, 73, 16), - CLASSIC(37, 73, 16), - BOX(55, 73, 16), - L_CROSS(0, 90, 32), - L_KRUCK(32, 90, 32), - L_CLASSIC(64, 90, 32), - L_CIRCLE(96, 90, 32), - L_SPLIT(0, 122, 32), - L_ARROWS(32, 122, 32), - L_BOX(64, 122, 32), - L_CIRCUMFLEX(96, 122, 32), - L_RAD(0, 154, 32); - - public int x; - public int y; - public int size; - - private Crosshair(int x, int y, int size) { - this.x = x; - this.y = y; - this.size = size; - } - } - } diff --git a/src/main/java/com/hbm/saveddata/SatelliteSavedData.java b/src/main/java/com/hbm/saveddata/SatelliteSavedData.java index 2e5fe33c1..a0dd2a624 100644 --- a/src/main/java/com/hbm/saveddata/SatelliteSavedData.java +++ b/src/main/java/com/hbm/saveddata/SatelliteSavedData.java @@ -1,35 +1,38 @@ package com.hbm.saveddata; -import java.util.HashMap; -import java.util.Map.Entry; - import com.hbm.saveddata.satellites.Satellite; - import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.WorldSavedData; +import java.util.HashMap; +import java.util.Map.Entry; + public class SatelliteSavedData extends WorldSavedData { - public HashMap sats = new HashMap(); + public final HashMap sats = new HashMap<>(); - public SatelliteSavedData(String p_i2141_1_) { - super(p_i2141_1_); + /** + * Constructor used for deserialization + * @param name - Map data name + */ + public SatelliteSavedData(String name) { + super(name); } - public SatelliteSavedData() - { + /** + * Default constructor for satellites map data. + */ + public SatelliteSavedData() { super("satellites"); this.markDirty(); } public boolean isFreqTaken(int freq) { - return getSatFromFreq(freq) != null; } public Satellite getSatFromFreq(int freq) { - return sats.get(freq); } @@ -38,7 +41,6 @@ public class SatelliteSavedData extends WorldSavedData { int satCount = nbt.getInteger("satCount"); for(int i = 0; i < satCount; i++) { - Satellite sat = Satellite.create(nbt.getInteger("sat_id_" + i)); sat.readFromNBT((NBTTagCompound) nbt.getTag("sat_data_" + i)); @@ -55,7 +57,6 @@ public class SatelliteSavedData extends WorldSavedData { int i = 0; for(Entry struct : sats.entrySet()) { - NBTTagCompound data = new NBTTagCompound(); struct.getValue().writeToNBT(data); @@ -67,7 +68,6 @@ public class SatelliteSavedData extends WorldSavedData { } public static SatelliteSavedData getData(World worldObj) { - SatelliteSavedData data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); if(data == null) { worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData()); @@ -77,5 +77,4 @@ public class SatelliteSavedData extends WorldSavedData { return data; } - } diff --git a/src/main/java/com/hbm/saveddata/TomSaveData.java b/src/main/java/com/hbm/saveddata/TomSaveData.java index be36cecb5..0ccc22395 100644 --- a/src/main/java/com/hbm/saveddata/TomSaveData.java +++ b/src/main/java/com/hbm/saveddata/TomSaveData.java @@ -32,6 +32,10 @@ public class TomSaveData extends WorldSavedData { public static TomSaveData getLastCachedOrNull() { return lastCachedUnsafe; } + + public static void resetLastCached() { + lastCachedUnsafe = null; + } public TomSaveData(String tagName) { super(tagName); diff --git a/src/main/java/com/hbm/saveddata/satellites/Satellite.java b/src/main/java/com/hbm/saveddata/satellites/Satellite.java index 70c65e0ac..e1a3ff431 100644 --- a/src/main/java/com/hbm/saveddata/satellites/Satellite.java +++ b/src/main/java/com/hbm/saveddata/satellites/Satellite.java @@ -1,23 +1,22 @@ package com.hbm.saveddata.satellites; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - import com.hbm.items.ModItems; import com.hbm.saveddata.SatelliteSavedData; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + public abstract class Satellite { - public static List satellites = new ArrayList(); - public static HashMap itemToClass = new HashMap(); + public static final List> satellites = new ArrayList<>(); + public static final HashMap> itemToClass = new HashMap<>(); - public static enum InterfaceActions { + public enum InterfaceActions { HAS_MAP, //lets the interface display loaded chunks CAN_CLICK, //enables onClick events SHOW_COORDS, //enables coordinates as a mouse tooltip @@ -25,18 +24,18 @@ public abstract class Satellite { HAS_ORES //like HAS_MAP but only shows ores } - public static enum CoordActions { + public enum CoordActions { HAS_Y //enables the Y-coord field which is disabled by default } - public static enum Interfaces { + public enum Interfaces { NONE, //does not interact with any sat interface (i.e. asteroid miners) SAT_PANEL, //allows to interact with the sat interface panel (for graphical applications) SAT_COORD //allows to interact with the sat coord remote (for teleportation or other coord related actions) } - public List ifaceAcs = new ArrayList(); - public List coordAcs = new ArrayList(); + public List ifaceAcs = new ArrayList<>(); + public List coordAcs = new ArrayList<>(); public Interfaces satIface = Interfaces.NONE; public static void register() { @@ -64,10 +63,13 @@ public abstract class Satellite { } public static void orbit(World world, int id, int freq, double x, double y, double z) { - + if(world.isRemote) { + return; + } + Satellite sat = create(id); - if(sat != null && !world.isRemote) { + if(sat != null) { SatelliteSavedData data = SatelliteSavedData.getData(world); data.sats.put(freq, sat); sat.onOrbit(world, x, y, z); @@ -76,25 +78,22 @@ public abstract class Satellite { } public static Satellite create(int id) { - Satellite sat = null; try { - Class c = satellites.get(id); - sat = (Satellite) c.newInstance(); - } catch(Exception ex) { - + Class c = satellites.get(id); + sat = c.newInstance(); + } catch(Exception e) { + e.printStackTrace(); } return sat; } public static int getIDFromItem(Item item) { - Class sat = itemToClass.get(item); - int i = satellites.indexOf(sat); - - return i; + + return satellites.indexOf(sat); } public int getID() { diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java index 99195b6d5..4249dd8db 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java @@ -1,3 +1,10 @@ package com.hbm.saveddata.satellites; -public class SatelliteLunarMiner extends SatelliteMiner { } \ No newline at end of file +import com.hbm.itempool.ItemPoolsSatellite; + +public class SatelliteLunarMiner extends SatelliteMiner { + + static { + registerCargo(SatelliteLunarMiner.class, ItemPoolsSatellite.POOL_SAT_LUNAR); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java index f54beb254..8481a54e9 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java @@ -1,9 +1,17 @@ package com.hbm.saveddata.satellites; +import com.hbm.itempool.ItemPoolsSatellite; +import com.hbm.util.WeightedRandomObject; import net.minecraft.nbt.NBTTagCompound; +import java.util.HashMap; + public class SatelliteMiner extends Satellite { - + /** + * {@link WeightedRandomObject} array with loot the satellite will deliver. + */ + private static final HashMap, String> CARGO = new HashMap<>(); + public long lastOp; public SatelliteMiner() { @@ -17,4 +25,24 @@ public class SatelliteMiner extends Satellite { public void readFromNBT(NBTTagCompound nbt) { lastOp = nbt.getLong("lastOp"); } + + /** + * Replaces cargo of the satellite. + * @param cargo - Array of {@link WeightedRandomObject} representing the loot that will be delivered. + */ + public static void registerCargo(Class minerSatelliteClass, String cargo) { + CARGO.put(minerSatelliteClass, cargo); + } + + /** + * Gets items the satellite can deliver. + * @return - Array of {@link WeightedRandomObject} of satellite loot. + */ + public String getCargo() { + return CARGO.get(getClass()); + } + + static { + registerCargo(SatelliteMiner.class, ItemPoolsSatellite.POOL_SAT_MINER); + } } diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMinerCargoRegistry.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMinerCargoRegistry.java deleted file mode 100644 index 7caf98f02..000000000 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMinerCargoRegistry.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.hbm.saveddata.satellites; - -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; -import com.hbm.util.WeightedRandomObject; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import java.util.HashMap; - -public class SatelliteMinerCargoRegistry { - private static final HashMap cargo = new HashMap() {{ - put(SatelliteMiner.class.getName(), new WeightedRandomObject[] { - new WeightedRandomObject(new ItemStack(ModItems.powder_aluminium, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_titanium, 2), 8), - new WeightedRandomObject(new ItemStack(ModItems.crystal_tungsten, 2), 7), - new WeightedRandomObject(new ItemStack(ModItems.powder_coal, 4), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_uranium, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_thorium, 2), 7), - new WeightedRandomObject(new ItemStack(ModItems.powder_desh_mix, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_diamond, 2), 7), - new WeightedRandomObject(new ItemStack(Items.redstone, 5), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_nitan_mix, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_power, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_copper, 5), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_lead, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.fluorite, 4), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_lapis, 4), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_combine_steel, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_aluminium, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_gold, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_phosphorus, 1), 10), - new WeightedRandomObject(new ItemStack(ModBlocks.gravel_diamond, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_uranium, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_plutonium, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_trixite, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_starmetal, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 2), 4) - }); - put(SatelliteLunarMiner.class.getName(), new WeightedRandomObject[] { - new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 48), 5), - new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 32), 7), - new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 16), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_lithium, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_iron, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 1), 1), - }); - }}; - - /** - * Register cargo for specified satellite object - * @param o - Satellite object - * @param cargo - WeightedRandomObject array with loot - */ - public static void register(Object o, WeightedRandomObject[] cargo) { - SatelliteMinerCargoRegistry.cargo.put(o.getClass().getName(), cargo); - } - - /** - * Register cargo for specified satellite class - * @param c - Satellite class - * @param cargo - WeightedRandomObject array with loot - */ - public static void register(Class c, WeightedRandomObject[] cargo) { - SatelliteMinerCargoRegistry.cargo.put(c.getName(), cargo); - } - - /** - * Get loot by satellite class name - * @param satelliteName - Satellite class name, like com.hbm.saveddata.satellites.SatelliteMiner - * @return - WeightedRandomObject array with loot - */ - public static WeightedRandomObject[] getCargo(String satelliteName) { - if(cargo.containsKey(satelliteName)) { - return cargo.get(satelliteName); - } - return new WeightedRandomObject[0]; - } -} diff --git a/src/main/java/com/hbm/sound/AudioDynamic.java b/src/main/java/com/hbm/sound/AudioDynamic.java index 3799b7d05..db13d09b3 100644 --- a/src/main/java/com/hbm/sound/AudioDynamic.java +++ b/src/main/java/com/hbm/sound/AudioDynamic.java @@ -62,7 +62,7 @@ public class AudioDynamic extends MovingSound { } public void setVolume(float volume) { - this.volume = volume; + this.maxVolume = volume; } public void setRange(float range) { diff --git a/src/main/java/com/hbm/sound/AudioWrapperClient.java b/src/main/java/com/hbm/sound/AudioWrapperClient.java index bc259c1dd..ca5d038ba 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClient.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClient.java @@ -72,8 +72,10 @@ public class AudioWrapperClient extends AudioWrapper { @Override public void stopSound() { - if(sound != null) + if(sound != null) { sound.stop(); + sound.setKeepAlive(0); + } } @Override diff --git a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java b/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java deleted file mode 100644 index 6df22c652..000000000 --- a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.sound; - -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -/** Only used for doors */ -public class AudioWrapperClientStartStop extends AudioWrapperClient { - - public String start; - public String stop; - public World world; - public float ssVol; - public float x, y, z; - - public AudioWrapperClientStartStop(World world, ResourceLocation source, String start, String stop, float vol){ - super(source); - if(sound != null){ - sound.setVolume(vol); - } - this.ssVol = vol; - this.world = world; - this.start = start; - this.stop = stop; - } - - @Override - public void updatePosition(float x, float y, float z){ - this.x = x; - this.y = y; - this.z = z; - super.updatePosition(x, y, z); - } - - @Override - public void startSound(){ - if(start != null){ - world.playSound(x, y, z, start, ssVol * 0.2F, 1, false); - } - super.startSound(); - } - - @Override - public void stopSound(){ - if(stop != null){ - world.playSound(x, y, z, stop, ssVol * 0.2F, 1, false); - } - super.stopSound(); - } - - @Override - public float getVolume(){ - return ssVol; - } -} diff --git a/src/main/java/com/hbm/sound/MovingSoundBomber.java b/src/main/java/com/hbm/sound/MovingSoundBomber.java deleted file mode 100644 index c20a0cfe0..000000000 --- a/src/main/java/com/hbm/sound/MovingSoundBomber.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.logic.EntityBomber; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.ISound; -import net.minecraft.client.audio.MovingSound; -import net.minecraft.client.entity.EntityClientPlayerMP; -import net.minecraft.util.ResourceLocation; - -public class MovingSoundBomber extends MovingSound { - - public static List globalSoundList = new ArrayList(); - public EntityBomber bomber; - - public MovingSoundBomber(ResourceLocation loc, EntityBomber bomber) { - super(loc); - this.bomber = bomber; - globalSoundList.add(this); - this.repeat = true; - this.field_147666_i = ISound.AttenuationType.NONE; - } - - @Override - public void update() { - - float iVolume = 150; - - if(this.bomber == null || this.bomber.isDead || this.bomber.health <= 0) { - this.stop(); - } else { - this.xPosF = (float)bomber.posX; - this.yPosF = (float)bomber.posY; - this.zPosF = (float)bomber.posZ; - - EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; - float f = 0; - - if(player != null) { - f = (float)Math.sqrt(Math.pow(xPosF - player.posX, 2) + Math.pow(yPosF - player.posY, 2) + Math.pow(zPosF - player.posZ, 2)); - volume = (f / iVolume) * -2 + 2; - } else { - volume = iVolume; - } - } - - if(!Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(this)) { - stop(); - } - - } - - public void stop() { - this.donePlaying = true; - this.repeat = false; - - globalSoundList.remove(this); - } - - public void setPitch(float f) { - this.field_147663_c = f; - } - - public void setVolume(float f) { - this.volume = f; - } - - public void setDone(boolean b) { - this.donePlaying = b; - } - -} diff --git a/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java b/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java index 23714debb..e712391ee 100644 --- a/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java +++ b/src/main/java/com/hbm/sound/MovingSoundPlayerLoop.java @@ -7,6 +7,7 @@ import net.minecraft.client.audio.MovingSound; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; +@Deprecated //wtf is this horseshit public abstract class MovingSoundPlayerLoop extends MovingSound { public static List globalSoundList = new ArrayList(); diff --git a/src/main/java/com/hbm/sound/MovingSoundXVL1456.java b/src/main/java/com/hbm/sound/MovingSoundXVL1456.java deleted file mode 100644 index 304e123ef..000000000 --- a/src/main/java/com/hbm/sound/MovingSoundXVL1456.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hbm.sound; - -import com.hbm.items.ModItems; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -public class MovingSoundXVL1456 extends MovingSoundPlayerLoop { - - public MovingSoundXVL1456(ResourceLocation p_i45104_1_, Entity player, EnumHbmSound type) { - super(p_i45104_1_, player, type); - this.setPitch(0.5F); - } - - @Override - public void update() { - super.update(); - - ItemStack i = null; - - if(this.player != null) { - i = ((EntityPlayer)this.player).getItemInUse(); - } - - //this.setPitch(this.getPitch() + 0.1F); - - if(i == null || (i != null && i.getItem() != ModItems.gun_xvl1456) || !((EntityPlayer)this.player).isSneaking() || ((EntityPlayer)this.player).getItemInUseDuration() <= 0) - this.stop(); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/sound/SoundLoopAssembler.java b/src/main/java/com/hbm/sound/SoundLoopAssembler.java deleted file mode 100644 index c69ea40c6..000000000 --- a/src/main/java/com/hbm/sound/SoundLoopAssembler.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class SoundLoopAssembler extends SoundLoopMachine { - - public static List list = new ArrayList(); - - public SoundLoopAssembler(ResourceLocation path, TileEntity te) { - super(path, te); - list.add(this); - } - - @Override - public void update() { - super.update(); - - if(te instanceof TileEntityMachineAssembler) { - TileEntityMachineAssembler drill = (TileEntityMachineAssembler)te; - - if(this.volume != 3) - volume = 3; - - if(!drill.isProgressing) - this.donePlaying = true; - } - } - - public TileEntity getTE() { - return te; - } - -} diff --git a/src/main/java/com/hbm/sound/SoundLoopBroadcaster.java b/src/main/java/com/hbm/sound/SoundLoopBroadcaster.java deleted file mode 100644 index 3b00039a5..000000000 --- a/src/main/java/com/hbm/sound/SoundLoopBroadcaster.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.tileentity.machine.TileEntityBroadcaster; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.ISound; -import net.minecraft.client.entity.EntityClientPlayerMP; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class SoundLoopBroadcaster extends SoundLoopMachine { - - public static List list = new ArrayList(); - public float intendedVolume = 25.0F; - - public SoundLoopBroadcaster(ResourceLocation path, TileEntity te) { - super(path, te); - list.add(this); - this.field_147666_i = ISound.AttenuationType.NONE; - } - - @Override - public void update() { - super.update(); - - EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; - float f = 0; - - if(player != null) { - f = (float)Math.sqrt(Math.pow(xPosF - player.posX, 2) + Math.pow(yPosF - player.posY, 2) + Math.pow(zPosF - player.posZ, 2)); - volume = func(f, intendedVolume); - - if(!(player.worldObj.getTileEntity((int)xPosF, (int)yPosF, (int)zPosF) instanceof TileEntityBroadcaster)) { - this.donePlaying = true; - volume = 0; - } - } else { - volume = intendedVolume; - } - } - - public TileEntity getTE() { - return te; - } - - public float func(float f, float v) { - return (f / v) * -2 + 2; - } - -} diff --git a/src/main/java/com/hbm/sound/SoundLoopCentrifuge.java b/src/main/java/com/hbm/sound/SoundLoopCentrifuge.java deleted file mode 100644 index 2989ddf9c..000000000 --- a/src/main/java/com/hbm/sound/SoundLoopCentrifuge.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; -import com.hbm.tileentity.machine.TileEntityMachineGasCent; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class SoundLoopCentrifuge extends SoundLoopMachine { - - public static List list = new ArrayList(); - - public SoundLoopCentrifuge(ResourceLocation path, TileEntity te) { - super(path, te); - list.add(this); - } - - @Override - public void update() { - super.update(); - - if(te instanceof TileEntityMachineCentrifuge) { - TileEntityMachineCentrifuge plant = (TileEntityMachineCentrifuge)te; - - if(this.volume != 1) - volume = 1; - - if(!plant.isProgressing) - this.donePlaying = true; - } - - if(te instanceof TileEntityMachineGasCent) { - TileEntityMachineGasCent plant = (TileEntityMachineGasCent)te; - - if(this.volume != 1) - volume = 1; - - if(!plant.isProgressing) - this.donePlaying = true; - } - - if(!Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(this)) { - stop(); - } - } - - public TileEntity getTE() { - return te; - } - -} diff --git a/src/main/java/com/hbm/sound/SoundLoopMiner.java b/src/main/java/com/hbm/sound/SoundLoopMiner.java deleted file mode 100644 index 0655f0bdf..000000000 --- a/src/main/java/com/hbm/sound/SoundLoopMiner.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class SoundLoopMiner extends SoundLoopMachine { - - public static List list = new ArrayList(); - - public SoundLoopMiner(ResourceLocation path, TileEntity te) { - super(path, te); - list.add(this); - } - - @Override - public void update() { - super.update(); - - if(te instanceof TileEntityMachineMiningDrill) { - TileEntityMachineMiningDrill drill = (TileEntityMachineMiningDrill)te; - - if(this.volume != 3) - volume = 3; - - if(drill.torque <= 0.5F) - this.donePlaying = true; - } - } - - public TileEntity getTE() { - return te; - } - -} diff --git a/src/main/java/com/hbm/sound/SoundLoopTurbofan.java b/src/main/java/com/hbm/sound/SoundLoopTurbofan.java deleted file mode 100644 index 4b08d0471..000000000 --- a/src/main/java/com/hbm/sound/SoundLoopTurbofan.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.tileentity.machine.TileEntityMachineTurbofan; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class SoundLoopTurbofan extends SoundLoopMachine { - - public static List list = new ArrayList(); - - public SoundLoopTurbofan(ResourceLocation path, TileEntity te) { - super(path, te); - list.add(this); - } - - @Override - public void update() { - super.update(); - - if(te instanceof TileEntityMachineTurbofan) { - TileEntityMachineTurbofan drill = (TileEntityMachineTurbofan)te; - - if(this.volume != 10) - volume = 10; - - if(!drill.wasOn) - this.donePlaying = true; - } - } - - public TileEntity getTE() { - return te; - } - -} diff --git a/src/main/java/com/hbm/test/ExplosionTests.java b/src/main/java/com/hbm/test/ExplosionTests.java index 544a61157..bbc3dcd78 100644 --- a/src/main/java/com/hbm/test/ExplosionTests.java +++ b/src/main/java/com/hbm/test/ExplosionTests.java @@ -1,32 +1,33 @@ package com.hbm.test; -import com.hbm.test.MK5Frame.*; +import com.hbm.test.MK5Frame.BufferArray; +import com.hbm.test.MK5Frame.BufferMap; +import com.hbm.test.MK5Frame.BufferNone; import com.hbm.util.TimeAnalyzer; - import cpw.mods.fml.common.FMLCommonHandler; public class ExplosionTests { private static ExplosionWorld world = new ExplosionWorld(); public static double BUFFER_THRESHOLD = 0.25D; - + public static void runTest() { - + int standardSpeed = (int)Math.ceil(100000 / 300); double[] thresholds = new double[] {0.25, 0.5}; int[] radii = new int[] {100, 250}; - + int x = 200; int y = 70; int z = 200; long mem = 0; - + for(int radius : radii) { - + int strength = radius * 2; int length = radius; - + System.gc(); mem = getMem(); System.out.println("#### STARTING TEST WITH NO PROXIMITY BUFFER " + radius + " ####"); @@ -36,7 +37,7 @@ public class ExplosionTests { TimeAnalyzer.endCount(); TimeAnalyzer.dump(); System.out.println("Mem diff: " + ((getMem() - mem) / 1_048_576) + "MB"); - + for(double threshold : thresholds) { BUFFER_THRESHOLD = threshold; @@ -61,10 +62,10 @@ public class ExplosionTests { System.out.println("Mem diff: " + ((getMem() - mem) / 1_048_576) + "MB"); } } - + FMLCommonHandler.instance().exitJava(0, true); } - + public static long getMem() { return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); } diff --git a/src/main/java/com/hbm/test/MK5Frame.java b/src/main/java/com/hbm/test/MK5Frame.java index a20fd01aa..383ecc043 100644 --- a/src/main/java/com/hbm/test/MK5Frame.java +++ b/src/main/java/com/hbm/test/MK5Frame.java @@ -1,19 +1,14 @@ package com.hbm.test; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; - import com.hbm.util.TimeAnalyzer; import com.hbm.util.fauxpointtwelve.BlockPos; - import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; +import java.util.*; + public class MK5Frame { public HashMap> perChunk = new HashMap(); //for future: optimize blockmap further by using sub-chunks instead of chunks @@ -52,7 +47,7 @@ public class MK5Frame { } private void generateGspUp(){ - + if (this.gspNum < this.gspNumMax) { int k = this.gspNum + 1; double hk = -1.0 + 2.0 * (k - 1.0) / (this.gspNumMax - 1.0); @@ -77,7 +72,7 @@ public class MK5Frame { } public void collectTip(int count) { - + TimeAnalyzer.startCount("collect"); int amountProcessed = 0; @@ -107,24 +102,24 @@ public class MK5Frame { double fac = 100 - ((double) i) / ((double) length) * 100; fac *= 0.07D; - + Block block = null; boolean withinThreshold = (double) i / (double) length <= ExplosionTests.BUFFER_THRESHOLD; - + Float buffered = withinThreshold ? buffer.getBufferedResult(iX, iY, iZ) : null; - + float f = 0; - + if(buffered == null) { - + block = world.getBlock(iX, iY, iZ); if(!block.getMaterial().isLiquid()) { f = (float) Math.pow(block.getExplosionResistance(null), 7.5D - fac); } - + if(withinThreshold) buffer.setBufferedResult(iX, iY, iZ, f); - + } else { f = buffered; } @@ -142,18 +137,18 @@ public class MK5Frame { break; } } - + for(ChunkCoordIntPair pos : chunkCoords) { List triplets = perChunk.get(pos); - + if(triplets == null) { triplets = new ArrayList(); perChunk.put(pos, triplets); //we re-use the same pos instead of using individualized per-chunk ones to save on RAM } - + triplets.add(lastPos); } - + // Raise one generalized spiral points this.generateGspUp(); @@ -163,14 +158,14 @@ public class MK5Frame { return; } } - + orderedChunks.addAll(perChunk.keySet()); orderedChunks.sort(comparator); - + isCollectionComplete = true; TimeAnalyzer.endCount(); } - + /* TEST INSERT START */ private ResultBuffer buffer; public MK5Frame setBuffer(ResultBuffer buffer) { @@ -205,7 +200,7 @@ public class MK5Frame { } } /* TEST INSERT END */ - + /** little comparator for roughly sorting chunks by distance to the center */ public class CoordComparator implements Comparator { @@ -217,29 +212,29 @@ public class MK5Frame { int diff1 = Math.abs((chunkX - o1.chunkXPos)) + Math.abs((chunkZ - o1.chunkZPos)); int diff2 = Math.abs((chunkX - o2.chunkXPos)) + Math.abs((chunkZ - o2.chunkZPos)); - + return diff1 > diff2 ? 1 : diff1 < diff2 ? -1 : 0; } } public void processChunk() { - + TimeAnalyzer.startCount("processChunk"); if(this.perChunk.isEmpty()) { TimeAnalyzer.endCount(); return; } - + ChunkCoordIntPair coord = orderedChunks.get(0); List list = perChunk.get(coord); HashSet toRem = new HashSet(); int chunkX = coord.chunkXPos; int chunkZ = coord.chunkZPos; - + int enter = (int) (Math.min( Math.abs(posX - (chunkX << 4)), Math.abs(posZ - (chunkZ << 4)))) - 16; //jump ahead to cut back on NOPs - + for(FloatTriplet triplet : list) { float x = triplet.xCoord; float y = triplet.yCoord; @@ -248,13 +243,13 @@ public class MK5Frame { double pX = vec.xCoord / vec.lengthVector(); double pY = vec.yCoord / vec.lengthVector(); double pZ = vec.zCoord / vec.lengthVector(); - + boolean inChunk = false; for(int i = enter; i < vec.lengthVector(); i++) { int x0 = (int) Math.floor(posX + pX * i); int y0 = (int) Math.floor(posY + pY * i); int z0 = (int) Math.floor(posZ + pZ * i); - + if(x0 >> 4 != chunkX || z0 >> 4 != chunkZ) { if(inChunk) { break; @@ -262,7 +257,7 @@ public class MK5Frame { continue; } } - + inChunk = true; if(!world.isAirBlock(x0, y0, z0)) { @@ -270,22 +265,22 @@ public class MK5Frame { } } } - + for(BlockPos pos : toRem) { world.setBlock(pos.getX(), pos.getY(), pos.getZ(), Blocks.air); } - + perChunk.remove(coord); orderedChunks.remove(0); - + TimeAnalyzer.endCount(); } - + public class FloatTriplet { public float xCoord; public float yCoord; public float zCoord; - + public FloatTriplet(float x, float y, float z) { xCoord = x; yCoord = y; diff --git a/src/main/java/com/hbm/test/ReEvalTest.java b/src/main/java/com/hbm/test/ReEvalTest.java deleted file mode 100644 index 9c137c481..000000000 --- a/src/main/java/com/hbm/test/ReEvalTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.hbm.test; - -import java.util.HashMap; - -import com.hbm.main.MainRegistry; - -import api.hbm.energy.IEnergyConductor; - -public class ReEvalTest { - - /** - * Runs a collision test on a relatively large scale. So large in fact that it will most certainly OOM. - * Not an issue, since by that point we will already have our results. - * @throws OutOfMemoryError - */ - public static void runTest() throws OutOfMemoryError { - - HashMap collisions = new HashMap(); - - int minX = -130; - int maxX = 140; - int minZ = 300; - int maxZ = 520; - - MainRegistry.logger.info("Starting collision test..."); - - for(int x = minX; x <= maxX; x++) { - for(int y = 1; y <= 255; y++) { - for(int z = minZ; z <= maxZ; z++) { - int identity = IEnergyConductor.getIdentityFromPos(x, y, z); - - if(collisions.containsKey(identity)) { - int[] collision = collisions.get(identity); - MainRegistry.logger.info("Position " + x + "/" + y + "/" + z + " collides with " + collision[0] + "/" + collision[1] + "/" + collision[2] + "!"); - } else { - collisions.put(identity, new int[] {x, y, z}); - } - } - } - } - - MainRegistry.logger.info("Collision test complete!"); - } -} diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index b770acb68..d28ae1e22 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -1,79 +1,79 @@ package com.hbm.tileentity; -import org.lwjgl.opengl.GL11; - import com.hbm.animloader.AnimatedModel; import com.hbm.animloader.Animation; +import com.hbm.lib.Library; import com.hbm.main.ResourceManager; -import com.hbm.render.loader.WavefrontObjDisplayList; +import com.hbm.render.loader.IModelCustomNamed; import com.hbm.util.BobMathUtil; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + public abstract class DoorDecl { - -public static final DoorDecl TRANSITION_SEAL = new DoorDecl(){ - + + public static final DoorDecl TRANSITION_SEAL = new DoorDecl() { + @Override public String getOpenSoundStart() { return "hbm:door.TransitionSealOpen"; - }; - + } + @Override - public float getSoundVolume(){ + public float getSoundVolume() { return 6; } - + @Override @SideOnly(Side.CLIENT) public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if(!partName.equals("base")){ - set(trans, 0, 3.5F*getNormTime(openTicks), 0); + if(!partName.equals("base")) { + set(trans, 0, 3.5F * getNormTime(openTicks), 0); } else { super.getTranslation(partName, openTicks, child, trans); } - }; - + } + @Override @SideOnly(Side.CLIENT) public void doOffsetTransform() { GL11.glTranslated(0, 0, 0.5); - }; - + } + @Override @SideOnly(Side.CLIENT) public double[][] getClippingPlanes() { return super.getClippingPlanes(); - }; - + } + @Override public int timeToOpen() { return 480; - }; - - @Override - public int[][] getDoorOpenRanges(){ - //3 is tall - //4 is wide - return new int[][]{{-9, 2, 0, 20, 20, 1}}; } @Override - public int[] getDimensions(){ - return new int[]{23, 0, 0, 0, 13, 12}; + public int[][] getDoorOpenRanges() { + // 3 is tall + // 4 is wide + return new int[][] { { -9, 2, 0, 20, 20, 1 } }; } - + + @Override + public int[] getDimensions() { + return new int[] { 23, 0, 0, 0, 13, 12 }; + } + @Override public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { return super.getBlockBound(x, y, z, open); - }; + } @Override @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ + public ResourceLocation getTextureForPart(int skinIndex, String partName) { return ResourceManager.transition_seal_tex; } @@ -81,226 +81,1129 @@ public static final DoorDecl TRANSITION_SEAL = new DoorDecl(){ @SideOnly(Side.CLIENT) public Animation getAnim() { return ResourceManager.transition_seal_anim; - }; - + } + @Override @SideOnly(Side.CLIENT) public AnimatedModel getAnimatedModel() { return ResourceManager.transition_seal; - }; - + } + @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ + public IModelCustomNamed getModel() { return null; } }; - -public static final DoorDecl FIRE_DOOR = new DoorDecl(){ - + + public static final DoorDecl FIRE_DOOR = new DoorDecl() { + @Override - public String getOpenSoundEnd() { + public String getOpenSoundEnd() { return "hbm:door.wghStop"; - }; + } + @Override - public String getOpenSoundLoop() { + public String getOpenSoundLoop() { return "hbm:door.wghStart"; - }; + } + @Override - public String getSoundLoop2() { + public String getSoundLoop2() { return "hbm:door.alarm6"; - }; - + } + @Override - public float getSoundVolume(){ + public float getSoundVolume() { return 2; } - + @Override @SideOnly(Side.CLIENT) public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if(!partName.equals("frame")){ - set(trans, 0, 3*getNormTime(openTicks), 0); + if(!partName.equals("frame")) { + set(trans, 0, 3 * getNormTime(openTicks), 0); } else { super.getTranslation(partName, openTicks, child, trans); } - }; - + } + @Override @SideOnly(Side.CLIENT) public void doOffsetTransform() { GL11.glTranslated(0, 0, 0.5); - }; - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{{0, -1, 0, 3.0001}}; - }; - - @Override - public int timeToOpen() { - return 160; - }; - - @Override - public int[][] getDoorOpenRanges(){ - return new int[][]{{-1, 0, 0, 3, 4, 1}}; } @Override - public int[] getDimensions(){ - return new int[]{2, 0, 0, 0, 2, 1}; + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, -1, 0, 3.0001 } }; } - + + @Override + public int timeToOpen() { + return 160; + } + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -1, 0, 0, 3, 4, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 2, 0, 0, 0, 2, 1 }; + } + @Override public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { if(!open) return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); - if(z == 1){ + if(z == 1) { return AxisAlignedBB.getBoundingBox(0.5, 0, 0, 1, 1, 1); - } else if(z == -2){ + } else if(z == -2) { return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.5, 1, 1); - } else if(y > 1){ + } else if(y > 1) { return AxisAlignedBB.getBoundingBox(0, 0.75, 0, 1, 1, 1); } else if(y == 0) { return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.1, 1); } else { return super.getBlockBound(x, y, z, open); } - }; + } @Override @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ + public ResourceLocation getTextureForPart(int skinIndex, String partName) { return ResourceManager.fire_door_tex; } @Override @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ + public IModelCustomNamed getModel() { return ResourceManager.fire_door; } }; - //Format: x, y, z, tangent amount 1 (how long the door would be if it moved up), tangent amount 2 (door places blocks in this direction), axis (0-x, 1-y, 2-z) + public static final DoorDecl SLIDE_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.sliding_door_opened"; + } + + @Override + public String getCloseSoundEnd() { + return "hbm:door.sliding_door_shut"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.sliding_door_opening"; + } + + @Override + public String getSoundLoop2() { + return "hbm:door.sliding_door_opening"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glRotated(-90, 0, 1, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { -1, 0, 0, 3.50001 }, { 1, 0, 0, 3.50001 } }; + } + + @Override + public int timeToOpen() { + return 24; + } + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -2, 0, 0, 4, 5, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 3, 0, 0, 0, 3, 3 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open) { + if(y == 3) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.08, 1); + } + } + return super.getBlockBound(x, y, z, open); + } + + @Override + public boolean hasSkins() { + return true; + } + + @Override + public int getSkinCount() { + return 3; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return new ResourceLocation[] { ResourceManager.sliding_blast_door_tex, ResourceManager.sliding_blast_door_variant1_tex, ResourceManager.sliding_blast_door_variant2_tex }[skinIndex]; + } + + @Override + public IModelCustomNamed getModel() { + return null; + } + + @Override + public Animation getAnim() { + return ResourceManager.sliding_blast_door_anim; + } + + @Override + public AnimatedModel getAnimatedModel() { + return ResourceManager.sliding_blast_door; + } + }; + + public static final DoorDecl SLIDING_SEAL_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.sliding_seal_stop"; + } + + @Override + public String getOpenSoundStart() { + return "hbm:door.sliding_seal_open"; + } + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(partName.startsWith("door")) { + set(trans, 0, 0, Library.smoothstep(getNormTime(openTicks), 0, 1)); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, 0, -1, 0.5001 } }; + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.375, 0, 0); + }; + + @Override + public int timeToOpen() { + return 20; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open) { + if(y == 0) return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.25, 1, 0, 1); + return AxisAlignedBB.getBoundingBox(0, 0.9375, 1 - 0.25, 1, 1, 1); + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.25, 1, 1, 1); + } + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, 1, 2, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 1, 0, 0, 0, 0, 0 }; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.sliding_seal_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.sliding_seal_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public IModelCustomNamed getModel() { + return ResourceManager.sliding_seal_door; + } + }; + + public static final DoorDecl SECURE_ACCESS_DOOR = new DoorDecl() { + + @Override + public String getCloseSoundLoop() { + return "hbm:door.garage_move"; + } + + @Override + public String getCloseSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("base")) { + set(trans, 0, 3.5F * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glRotated(90, 0, 1, 0); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, -1, 0, 5 } }; + }; + + @Override + public int timeToOpen() { + return 120; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -2, 1, 0, 4, 5, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 4, 0, 0, 0, 2, 2 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) { + if(y > 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0.375, 1, 1, 0.625); + } + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + } + if(y == 1) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); + } else if(y == 4) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0.15, 1, 1, 0.85); + } else { + return super.getBlockBound(x, y, z, open); + } + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.secure_access_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.secure_access_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public IModelCustomNamed getModel() { + return ResourceManager.secure_access_door; + } + }; + + public static final DoorDecl ROUND_AIRLOCK_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + } + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("doorLeft".equals(partName)) { + set(trans, 0, 0, 1.5F * getNormTime(openTicks)); + } else if("doorRight".equals(partName)) { + set(trans, 0, 0, -1.5F * getNormTime(openTicks)); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0.0, 0.0, 1.0, 2.0001 }, { 0.0, 0.0, -1.0, 2.0001 } }; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return super.getBlockBound(x, y, z, open); + if(z == 1) { + return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); + } else if(z == -2) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); + } else if(y == 3) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, -2, 4, 2 }, { 0, 0, 0, 3, 4, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 3, 0, 0, 0, 2, 1 }; + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.round_airlock_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.round_airlock_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public IModelCustomNamed getModel() { + return ResourceManager.round_airlock_door; + } + }; + + public static final DoorDecl QE_SLIDING = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.qe_sliding_opened"; + }; + + @Override + public String getCloseSoundEnd() { + return "hbm:door.qe_sliding_shut"; + }; + + @Override + public String getOpenSoundLoop() { + return "hbm:door.qe_sliding_opening"; + }; + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(partName.startsWith("left")) { + set(trans, 0, 0, 0.99F * getNormTime(openTicks)); + } else { + set(trans, 0, 0, -0.99F * getNormTime(openTicks)); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.4375, 0, 0.5); + }; + + @Override + public int timeToOpen() { + return 10; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open) { + if(z == 0) { + return AxisAlignedBB.getBoundingBox(1 - 0.125, 0, 1 - 0.125, 1, 1, 1); + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.125, 0.125, 1, 1); + } + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.125, 1, 1, 1); + } + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, 2, 2, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 1, 0, 0, 0, 1, 0 }; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.qe_sliding_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return getTextureForPart(partName); + } + + @Override + @SideOnly(Side.CLIENT) + public IModelCustomNamed getModel() { + return ResourceManager.qe_sliding_door; + } + + }; + + public static final DoorDecl QE_CONTAINMENT = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wgh_stop"; + }; + + @Override + public String getOpenSoundLoop() { + return "hbm:door.wgh_start"; + }; + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("frame")) { + set(trans, 0, 3 * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.25, 0, 0); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, -1, 0, 3.0001 } }; + }; + + @Override + public int timeToOpen() { + return 160; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -1, 0, 0, 3, 3, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 2, 0, 0, 0, 1, 1 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 1, 1); + if(y > 1) + return AxisAlignedBB.getBoundingBox(0, 0.5, 0.5, 1, 1, 1); + else if(y == 0) + return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 0.1, 1); + return super.getBlockBound(x, y, z, open); + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + if(partName.equals("decal")) + return ResourceManager.qe_containment_decal; + return ResourceManager.qe_containment_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return getTextureForPart(partName); + } + + @Override + @SideOnly(Side.CLIENT) + public IModelCustomNamed getModel() { + return ResourceManager.qe_containment; + } + + }; + + public static final DoorDecl WATER_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wgh_big_stop"; + }; + + @Override + public String getOpenSoundLoop() { + return "hbm:door.wgh_big_start"; + }; + + @Override + public String getOpenSoundStart() { + return "hbm:door.lever"; + }; + + @Override + public String getCloseSoundStart() { + return null; + }; + + @Override + public String getCloseSoundEnd() { + return "hbm:door.lever"; + }; + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("bolt".equals(partName)) { + set(trans, 0, 0, 0.4F * Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1)); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.375, 0, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + if("door".equals(partName) || "bolt".equals(partName)) { + set(orig, 0.125F, 1.5F, 1.18F); + return; + } else if("spinny_upper".equals(partName)) { + set(orig, 0.041499F, 2.43569F, -0.587849F); + return; + } else if("spinny_lower".equals(partName)) { + set(orig, 0.041499F, 0.571054F, -0.587849F); + return; + } + super.getOrigin(partName, orig); + }; + + @Override + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + if(partName.startsWith("spinny")) { + set(rot, Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1) * 360, 0, 0); + return; + } else if("door".equals(partName) || "bolt".equals(partName)) { + set(rot, 0, Library.smoothstep(getNormTime(openTicks, 30, 60), 0, 1) * -134, 0); + return; + } + super.getRotation(partName, openTicks, rot); + }; + + @Override + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return child || !partName.startsWith("spinny"); + }; + + @Override + @SideOnly(Side.CLIENT) + public String[] getChildren(String partName) { + if("door".equals(partName)) + return new String[] { "spinny_lower", "spinny_upper" }; + return super.getChildren(partName); + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) { + return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 1, 1); + } else if(y > 1) { + return AxisAlignedBB.getBoundingBox(0, 0.85, 0.75, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 0.15, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 1, 0, 0, -3, 3, 2 } }; + } + + public float getDoorRangeOpenTime(int ticks, int idx) { + return getNormTime(ticks, 35, 40); + }; + + @Override + public int[] getDimensions() { + return new int[] { 2, 0, 0, 0, 1, 1 }; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.water_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.water_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public IModelCustomNamed getModel() { + return ResourceManager.water_door; + } + + }; + + public static final DoorDecl SILO_HATCH = new DoorDecl() { + + @Override public String getOpenSoundEnd() { return "hbm:door.wgh_big_stop"; }; + @Override public String getOpenSoundLoop() { return "hbm:door.wgh_big_start"; }; + @Override public String getOpenSoundStart() { return null; }; + @Override public String getCloseSoundStart() { return null; }; + @Override public String getCloseSoundEnd() { return "hbm:door.wgh_big_stop"; }; + @Override public float getSoundVolume() { return 2; } + @Override public boolean remoteControllable() { return true; } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("Hatch".equals(partName)) { + set(trans, 0, 0.25F * Library.smoothstep(getNormTime(openTicks, 0, 10), 0, 1), 0); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + if("Hatch".equals(partName)) { + set(orig, 0F, 0.875F, -1.875F); + return; + } + set(orig, 0, 0, 0); + super.getOrigin(partName, orig); + }; + + @Override + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + if("Hatch".equals(partName)) { + set(rot, Library.smoothstep(getNormTime(openTicks, 20, 100), 0, 1) * -240, 0, 0); + return; + } + super.getRotation(partName, openTicks, rot); + }; + + @Override + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return true; + }; + + @Override public int timeToOpen() { return 60; }; + @Override public int[][] getDoorOpenRanges() { return new int[][] { { 1, 0, 1, -3, 3, 0 }, { 0, 0, 1, -3, 3, 0 }, { -1, 0, 1, -3, 3, 0 } }; } + @Override public float getDoorRangeOpenTime(int ticks, int idx) { return getNormTime(ticks, 20, 20); }; + + + @Override public int getBlockOffset() { return 2; } + @Override public int[] getDimensions() { return new int[] { 0, 0, 2, 2, 2, 2 }; } + @Override @SideOnly(Side.CLIENT) public ResourceLocation getTextureForPart(String partName) { return ResourceManager.silo_hatch_tex; } + @Override public ResourceLocation getTextureForPart(int skinIndex, String partName) { return ResourceManager.silo_hatch_tex; } + @Override @SideOnly(Side.CLIENT) public IModelCustomNamed getModel() { return ResourceManager.silo_hatch; } + + }; + + public static final DoorDecl SILO_HATCH_LARGE = new DoorDecl() { + + @Override public String getOpenSoundEnd() { return "hbm:door.wgh_big_stop"; }; + @Override public String getOpenSoundLoop() { return "hbm:door.wgh_big_start"; }; + @Override public String getOpenSoundStart() { return null; }; + @Override public String getCloseSoundStart() { return null; }; + @Override public String getCloseSoundEnd() { return "hbm:door.wgh_big_stop"; }; + @Override public float getSoundVolume() { return 2; } + @Override public boolean remoteControllable() { return true; } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("Hatch".equals(partName)) { + set(trans, 0, 0.25F * Library.smoothstep(getNormTime(openTicks, 0, 10), 0, 1), 0); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + if("Hatch".equals(partName)) { + set(orig, 0F, 0.875F, -2.875F); + return; + } + set(orig, 0, 0, 0); + super.getOrigin(partName, orig); + }; + + @Override + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + if("Hatch".equals(partName)) { + set(rot, Library.smoothstep(getNormTime(openTicks, 20, 100), 0, 1) * -240, 0, 0); + return; + } + super.getRotation(partName, openTicks, rot); + }; + + @Override + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return true; + }; + + @Override public int timeToOpen() { return 60; }; + @Override public int[][] getDoorOpenRanges() { return new int[][] { { 2, 0, 1, -3, 3, 0 }, { 1, 0, 2, -5, 3, 0 }, { 0, 0, 2, -5, 3, 0 }, { -1, 0, 2, -5, 3, 0 }, { -2, 0, 1, -3, 3, 0 } }; } + @Override public float getDoorRangeOpenTime(int ticks, int idx) { return getNormTime(ticks, 20, 20); }; + + + @Override public int getBlockOffset() { return 3; } + @Override public int[] getDimensions() { return new int[] { 0, 0, 3, 3, 3, 3 }; } + @Override @SideOnly(Side.CLIENT) public ResourceLocation getTextureForPart(String partName) { return ResourceManager.silo_hatch_large_tex; } + @Override public ResourceLocation getTextureForPart(int skinIndex, String partName) { return ResourceManager.silo_hatch_large_tex; } + @Override @SideOnly(Side.CLIENT) public IModelCustomNamed getModel() { return ResourceManager.silo_hatch_large; } + + }; + + public static final DoorDecl LARGE_VEHICLE_DOOR = new DoorDecl() { + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("doorLeft".equals(partName)) { + set(trans, 0, 0, 3 * getNormTime(openTicks)); + } else if("doorRight".equals(partName)) { + set(trans, 0, 0, -3 * getNormTime(openTicks)); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + }; + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0.0, 0.0, 1.0, 3.50001 }, { 0.0, 0.0, -1.0, 3.50001 } }; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return super.getBlockBound(x, y, z, open); + if(z == 3) { + return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); + } else if(z == -3) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, -4, 6, 2 }, { 0, 0, 0, 4, 6, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 5, 0, 0, 0, 3, 3 }; + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.large_vehicle_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.large_vehicle_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public IModelCustomNamed getModel() { + return ResourceManager.large_vehicle_door; + } + + }; + + // Format: x, y, z, tangent amount 1 (how long the door would be if it moved + // up), tangent amount 2 (door places blocks in this direction), axis (0-x, + // 1-y, 2-z) public abstract int[][] getDoorOpenRanges(); - + public abstract int[] getDimensions(); - public float getDoorRangeOpenTime(int ticks, int idx){ - return getNormTime(ticks); + public int getBlockOffset() { + return 0; } - - public int timeToOpen(){ - return 20; - } - - public float getNormTime(float time){ - return getNormTime(time, 0, timeToOpen()); - } - - public float getNormTime(float time, float min, float max){ - return BobMathUtil.remap01_clamp(time, min, max); - } - - @SideOnly(Side.CLIENT) - public abstract ResourceLocation getTextureForPart(String partName); - - @SideOnly(Side.CLIENT) - public abstract WavefrontObjDisplayList getModel(); - - @SideOnly(Side.CLIENT) - public AnimatedModel getAnimatedModel(){ - return null; - } - - @SideOnly(Side.CLIENT) - public Animation getAnim(){ - return null; - } - - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans){ - set(trans, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public void getRotation(String partName, float openTicks, float[] rot){ - set(rot, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public void getOrigin(String partName, float[] orig){ - set(orig, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public boolean doesRender(String partName, boolean child){ - return true; - } - - private static final String[] nothing = new String[]{}; - - @SideOnly(Side.CLIENT) - public String[] getChildren(String partName){ - return nothing; - } - - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes(){ - return new double[][]{}; - } - - @SideOnly(Side.CLIENT) - public void doOffsetTransform(){ - } - - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open){ - return open ? AxisAlignedBB.getBoundingBox(0, 0, 0, 0, 0, 0) : AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); - } - - public boolean isLadder(boolean open){ + + public boolean remoteControllable() { return false; } - - public String getOpenSoundLoop(){ + + public float getDoorRangeOpenTime(int ticks, int idx) { + return getNormTime(ticks); + } + + public int timeToOpen() { + return 20; + } + + public float getNormTime(float time) { + return getNormTime(time, 0, timeToOpen()); + } + + public float getNormTime(float time, float min, float max) { + return BobMathUtil.remap01_clamp(time, min, max); + } + + public boolean hasSkins() { + return false; + } + + public int getSkinCount() { + return 0; + } + + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return getTextureForPart(0, partName); + } + + @SideOnly(Side.CLIENT) + public abstract ResourceLocation getTextureForPart(int skinIndex, String partName); + + @SideOnly(Side.CLIENT) + public abstract IModelCustomNamed getModel(); + + @SideOnly(Side.CLIENT) + public AnimatedModel getAnimatedModel() { return null; } - - //Hack - public String getSoundLoop2(){ + + @SideOnly(Side.CLIENT) + public Animation getAnim() { return null; } - - public String getCloseSoundLoop(){ + + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + set(trans, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + set(rot, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + set(orig, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return true; + } + + private static final String[] nothing = new String[] {}; + + @SideOnly(Side.CLIENT) + public String[] getChildren(String partName) { + return nothing; + } + + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] {}; + } + + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + } + + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + return open ? AxisAlignedBB.getBoundingBox(0, 0, 0, 0, 0, 0) : AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + } + + public boolean isLadder(boolean open) { + return false; + } + + public String getOpenSoundLoop() { + return null; + } + + // Hack + public String getSoundLoop2() { + return null; + } + + public String getCloseSoundLoop() { return getOpenSoundLoop(); } - - public String getOpenSoundStart(){ + + public String getOpenSoundStart() { return null; } - - public String getCloseSoundStart(){ + + public String getCloseSoundStart() { return getOpenSoundStart(); } - - public String getOpenSoundEnd(){ + + public String getOpenSoundEnd() { return null; } - - public String getCloseSoundEnd(){ + + public String getCloseSoundEnd() { return getOpenSoundEnd(); } - - public float getSoundVolume(){ + + public float getSoundVolume() { return 1; } - - public float[] set(float[] f, float x, float y, float z){ + + public float[] set(float[] f, float x, float y, float z) { f[0] = x; f[1] = y; f[2] = z; return f; - }; + } } diff --git a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java new file mode 100644 index 000000000..4250d6edd --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity; + +import io.netty.buffer.ByteBuf; + +public interface IBufPacketReceiver { + + public void serialize(ByteBuf buf); + public void deserialize(ByteBuf buf); +} diff --git a/src/main/java/com/hbm/tileentity/IConditionalInvAccess.java b/src/main/java/com/hbm/tileentity/IConditionalInvAccess.java new file mode 100644 index 000000000..d66553efa --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IConditionalInvAccess.java @@ -0,0 +1,17 @@ +package com.hbm.tileentity; + +import net.minecraft.item.ItemStack; + +/** + * Masks operation such as isItemValidForSlot and getAccessibleSlotsFromSide found in ISidedInveotry + * Intended to be used to return a different result depending on the port, assuming the port detects IConditionalInvAccess + * + * @author hbm + */ +public interface IConditionalInvAccess { + + public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack); + public default boolean canInsertItem(int x, int y, int z, int slot, ItemStack stack, int side) { return isItemValidForSlot(x, y, z, slot, stack); } + public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side); + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side); +} diff --git a/src/main/java/com/hbm/tileentity/IControlReceiverFilter.java b/src/main/java/com/hbm/tileentity/IControlReceiverFilter.java new file mode 100644 index 000000000..0a418577b --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IControlReceiverFilter.java @@ -0,0 +1,102 @@ +package com.hbm.tileentity; + +import com.hbm.interfaces.IControlReceiver; + +import com.hbm.interfaces.ICopiable; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public interface IControlReceiverFilter extends IControlReceiver, ICopiable { + + void nextMode(int i); + + /* + default ModulePatternMatcher getMatcher(){ + + }*/ + + @Override + default void receiveControl(NBTTagCompound data) { + if(data.hasKey("slot")) { + setFilterContents(data); + } + } + + /** + * Expects the implementor to be a tile entity and an IInventory + * @param nbt + */ + default void setFilterContents(NBTTagCompound nbt) { + TileEntity tile = (TileEntity) this; + IInventory inv = (IInventory) this; + int slot = nbt.getInteger("slot"); + NBTTagCompound stack = nbt.getCompoundTag("stack"); + ItemStack item = ItemStack.loadItemStackFromNBT(stack); + inv.setInventorySlotContents(slot, item); + nextMode(slot); + tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + } + /** + * Used for the copy tool + * @return The start and end (start inclusive, end exclusive) of the filter slots of the TE + */ + int[] getFilterSlots(); + + @Override + default NBTTagCompound getSettings(World world, int x, int y, int z) { + IInventory inv = (IInventory) this; + NBTTagCompound nbt = new NBTTagCompound(); + NBTTagList tags = new NBTTagList(); + int count = 0; + for (int i = getFilterSlots()[0]; i < getFilterSlots()[1]; i++) { + NBTTagCompound slotNBT = new NBTTagCompound(); + if(inv.getStackInSlot(i) != null) { + slotNBT.setByte("slot", (byte) count); + inv.getStackInSlot(i).writeToNBT(slotNBT); + tags.appendTag(slotNBT); + } + count++; + } + nbt.setTag("items", tags); + + return nbt; + } + + @Override + default void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + TileEntity tile = (TileEntity) this; + IInventory inv = (IInventory) this; + NBTTagList items = nbt.getTagList("items", 10); + int listSize = items.tagCount(); + if(listSize > 0) { + int count = 0; + + for (int i = getFilterSlots()[0]; i < getFilterSlots()[1]; i++) { + if (i < listSize) { + NBTTagCompound slotNBT = items.getCompoundTagAt(count); + byte slot = slotNBT.getByte("slot"); + ItemStack loadedStack = ItemStack.loadItemStackFromNBT(slotNBT); + //whether the filter info came from a router + boolean router = nbt.hasKey("modes") && slot > index * 5 && slot < index * + 5; + + if (loadedStack != null && index < listSize && (slot < getFilterSlots()[1] || router)) { + inv.setInventorySlotContents(slot + getFilterSlots()[0], ItemStack.loadItemStackFromNBT(slotNBT)); + nextMode(slot); + tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + } + } + count++; + } + } + } + + @Override + default String[] infoForDisplay(World world, int x, int y, int z) { + return new String[] { "copytool.filter" }; + } +} diff --git a/src/main/java/com/hbm/tileentity/IFluidCopiable.java b/src/main/java/com/hbm/tileentity/IFluidCopiable.java new file mode 100644 index 000000000..c7606e64c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IFluidCopiable.java @@ -0,0 +1,70 @@ +package com.hbm.tileentity; + +import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.fluid.IFluidUser; +import com.hbm.interfaces.ICopiable; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.BobMathUtil; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import java.util.ArrayList; + +public interface IFluidCopiable extends ICopiable { + + /** + * @return First type for the normal paste, second type for the alt paste, + * none if there is no alt paste support + */ + default int[] getFluidIDToCopy() { + IFluidUser tile = (IFluidUser) this; + ArrayList types = new ArrayList<>(); + + for(FluidTank tank : tile.getAllTanks()) { + if(!tank.getTankType().hasNoID()) + types.add(tank.getTankType().getID()); + } + + return BobMathUtil.intCollectionToArray(types); + } + + default FluidTank getTankToPaste() { + TileEntity te = (TileEntity) this; + if(te instanceof IFluidStandardTransceiver) { + IFluidStandardTransceiver tile = (IFluidStandardTransceiver) this; + return tile.getReceivingTanks() != null ? tile.getReceivingTanks()[0] : null; + } + return null; + } + + @Override + default NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound tag = new NBTTagCompound(); + if(getFluidIDToCopy().length > 0) tag.setIntArray("fluidID", getFluidIDToCopy()); + return tag; + } + + @Override + default void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + if(getTankToPaste() != null) { + int[] ids = nbt.getIntArray("fluidID"); + if(ids.length > 0 && index < ids.length) { + int id = ids[index]; + getTankToPaste().setTankType(Fluids.fromID(id)); + } + } + } + + @Override + default String[] infoForDisplay(World world, int x, int y, int z) { + int[] ids = getFluidIDToCopy(); + String[] names = new String[ids.length]; + for(int i = 0; i < ids.length; i++) { + names[i] = Fluids.fromID(ids[i]).getUnlocalizedName(); + } + return names; + } +} diff --git a/src/main/java/com/hbm/tileentity/IGUIProvider.java b/src/main/java/com/hbm/tileentity/IGUIProvider.java index f707f3d61..54fd42935 100644 --- a/src/main/java/com/hbm/tileentity/IGUIProvider.java +++ b/src/main/java/com/hbm/tileentity/IGUIProvider.java @@ -1,8 +1,5 @@ package com.hbm.tileentity; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.world.World; @@ -10,6 +7,5 @@ import net.minecraft.world.World; public interface IGUIProvider { public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z); - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z); + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z); } diff --git a/src/main/java/com/hbm/tileentity/IMetalCopiable.java b/src/main/java/com/hbm/tileentity/IMetalCopiable.java new file mode 100644 index 000000000..5720608c3 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IMetalCopiable.java @@ -0,0 +1,30 @@ +package com.hbm.tileentity; + +import com.hbm.interfaces.ICopiable; +import com.hbm.inventory.material.Mats; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public interface IMetalCopiable extends ICopiable { + + int[] getMatsToCopy(); + + @Override + default NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound tag = new NBTTagCompound(); + if(getMatsToCopy().length > 0) tag.setIntArray("matFilter", getMatsToCopy()); + return tag; + } + + @Override + default String[] infoForDisplay(World world, int x, int y, int z) { + int[] ids = getMatsToCopy(); + String[] names = new String[ids.length]; + for(int i = 0; i < ids.length; i++) names[i] = Mats.matById.get(ids[i]).getUnlocalizedName(); + return names; + } + + @Override + default void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { }; +} diff --git a/src/main/java/com/hbm/tileentity/INBTPacketReceiver.java b/src/main/java/com/hbm/tileentity/INBTPacketReceiver.java deleted file mode 100644 index fa230a3ba..000000000 --- a/src/main/java/com/hbm/tileentity/INBTPacketReceiver.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.tileentity; - -import com.hbm.packet.NBTPacket; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; - -public interface INBTPacketReceiver { - - public void networkUnpack(NBTTagCompound nbt); - - public static void networkPack(TileEntity that, NBTTagCompound data, int range) { - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, that.xCoord, that.yCoord, that.zCoord), new TargetPoint(that.getWorldObj().provider.dimensionId, that.xCoord, that.yCoord, that.zCoord, range)); - } -} diff --git a/src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java b/src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java new file mode 100644 index 000000000..0351ec055 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity; + +import net.minecraft.entity.Entity; + +public interface IRadarCommandReceiver { + + public boolean sendCommandPosition(int x, int y, int z); + public boolean sendCommandEntity(Entity target); +} diff --git a/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java b/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java index 829bfba2f..5f737b6e8 100644 --- a/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java +++ b/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java @@ -1,6 +1,7 @@ package com.hbm.tileentity; import java.util.List; +import java.util.Locale; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; @@ -139,11 +140,11 @@ public interface IRadioisotopeFuel if (showAdv) { tooltip.add("EXTENDED INFO:"); - tooltip.add(String.format("%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); + tooltip.add(String.format(Locale.US, "%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); final String[] timeLeft = BobMathUtil.ticksToDate(instance.getLifespan(stack)); final String[] maxLife = BobMathUtil.ticksToDate(instance.getMaxLifespan()); - tooltip.add(String.format("Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); - tooltip.add(String.format("Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); + tooltip.add(String.format(Locale.US, "Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); + tooltip.add(String.format(Locale.US, "Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); } } } diff --git a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java new file mode 100644 index 000000000..1539d3eb0 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java @@ -0,0 +1,31 @@ +package com.hbm.tileentity; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.Block; +import net.minecraft.util.EnumChatFormatting; + +public interface IUpgradeInfoProvider { + + /** If any of the automated display stuff should be applied for this upgrade. A level of 0 is used by the GUI's indicator, as opposed to the item tooltips */ + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo); + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo); + public HashMap getValidUpgrades(); + + public static String getStandardLabel(Block block) { + return EnumChatFormatting.GREEN.YELLOW + ">>> " + I18nUtil.resolveKey(block.getUnlocalizedName() + ".name") + " <<<"; + } + + public static final String KEY_ACID = "upgrade.acid"; + public static final String KEY_BURN = "upgrade.burn"; + public static final String KEY_CONSUMPTION = "upgrade.consumption"; + public static final String KEY_COOLANT_CONSUMPTION = "upgrade.coolantConsumption"; + public static final String KEY_DELAY = "upgrade.delay"; + public static final String KEY_EFFICIENCY = "upgrade.efficiency"; + public static final String KEY_FORTUNE = "upgrade.fortune"; + public static final String KEY_RANGE = "upgrade.range"; +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityData.java b/src/main/java/com/hbm/tileentity/TileEntityData.java new file mode 100644 index 000000000..df740c776 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/TileEntityData.java @@ -0,0 +1,26 @@ +package com.hbm.tileentity; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; + +// A whole ass TE just for 2 extra bits +// My kingdom for 2 fucking flags + +// Use this TE if you need more bits, that's it. Blame Mojang +public class TileEntityData extends TileEntity { + + public int metadata; + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + metadata = nbt.getInteger("meta"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("meta", metadata); + } + +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 386737ab3..d05ac0843 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -10,7 +10,7 @@ import com.hbm.interfaces.IAnimatedDoor; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEDoorAnimationPacket; +import com.hbm.packet.toclient.TEDoorAnimationPacket; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.machine.TileEntityLockableBase; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -33,6 +33,8 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public long animStartTime = 0; public int redstonePower; public boolean shouldUseBB = false; + private byte skinIndex = 0; + public Set activatedBlocks = new HashSet<>(4); private AudioWrapper audio; @@ -52,9 +54,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } } - if(worldObj.isRemote) { - - } else { + if(!worldObj.isRemote) { BlockPos pos = new BlockPos(this); @@ -140,11 +140,11 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn if(state == 2 && openTicks == 0) { state = 0; } - PacketDispatcher.wrapper.sendToAllAround(new TEDoorAnimationPacket(xCoord, yCoord, zCoord, state, (byte)(shouldUseBB ? 1 : 0)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 100)); + PacketDispatcher.wrapper.sendToAllAround(new TEDoorAnimationPacket(xCoord, yCoord, zCoord, state, skinIndex, (byte)(shouldUseBB ? 1 : 0)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 100)); - if(redstonePower == -1 && state == 0){ + if(redstonePower == -1 && state == 1){ tryToggle(-1); - } else if(redstonePower > 0 && state == 1){ + } else if(redstonePower > 0 && state == 0){ tryToggle(-1); } if(redstonePower == -1){ @@ -167,7 +167,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public DoorDecl getDoorType(){ - if(this.doorType == null) + if(this.doorType == null && this.getBlockType() instanceof BlockDoorGeneric) this.doorType = ((BlockDoorGeneric)this.getBlockType()).type; return this.doorType; @@ -175,6 +175,8 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public boolean tryToggle(EntityPlayer player){ + if(this.isLocked() && player == null) return false; + if(state == 0 && redstonePower > 0){ //Redstone "power locks" doors, just like minecraft iron doors return false; @@ -241,27 +243,54 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public void handleNewState(byte state){ if(this.state != state) { - if(this.state == 0 && state == 3){ - if(audio == null){ - audio = MainRegistry.proxy.getLoopedSoundStartStop(worldObj, getDoorType().getOpenSoundLoop(), getDoorType().getOpenSoundStart(), getDoorType().getOpenSoundEnd(), xCoord, yCoord, zCoord, getDoorType().getSoundVolume(), 1); + DoorDecl doorType = getDoorType(); + + if(this.state == 0 && state == 3){ // Door transitioning to open + if(audio != null) { + audio.stopSound(); + audio.setKeepAlive(0); + } + + if(doorType.getOpenSoundLoop() != null){ + audio = MainRegistry.proxy.getLoopedSound(doorType.getOpenSoundLoop(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); audio.startSound(); } - if(audio2 == null && getDoorType().getSoundLoop2() != null){ - audio2 = MainRegistry.proxy.getLoopedSoundStartStop(worldObj, getDoorType().getSoundLoop2(), null, null, xCoord, yCoord, zCoord, getDoorType().getSoundVolume(), 1); + + if(doorType.getOpenSoundStart() != null){ + worldObj.playSound(xCoord, yCoord, zCoord, doorType.getOpenSoundStart(), doorType.getSoundVolume(), 1F, false); + } + + if(doorType.getSoundLoop2() != null){ + if(audio2 != null) audio2.stopSound(); + + audio2 = MainRegistry.proxy.getLoopedSound(doorType.getSoundLoop2(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); audio2.startSound(); } } - if(this.state == 1 && state == 2){ - if(audio == null){ - audio = MainRegistry.proxy.getLoopedSoundStartStop(worldObj, getDoorType().getCloseSoundLoop(), getDoorType().getCloseSoundStart(), getDoorType().getCloseSoundEnd(), xCoord, yCoord, zCoord, getDoorType().getSoundVolume(), 1); + + if(this.state == 1 && state == 2){ // Door transitioning to closed + if(audio != null) { + audio.stopSound(); + } + + if(doorType.getCloseSoundLoop() != null){ + audio = MainRegistry.proxy.getLoopedSound(doorType.getCloseSoundLoop(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); audio.startSound(); } - if(audio2 == null && getDoorType().getSoundLoop2() != null){ - audio2 = MainRegistry.proxy.getLoopedSoundStartStop(worldObj, getDoorType().getSoundLoop2(), null, null, xCoord, yCoord, zCoord, getDoorType().getSoundVolume(), 1); + + if(doorType.getCloseSoundStart() != null){ + worldObj.playSound(xCoord, yCoord, zCoord, doorType.getCloseSoundStart(), doorType.getSoundVolume(), 1F, false); + } + + if(doorType.getSoundLoop2() != null){ + if(audio2 != null) audio2.stopSound(); + + audio2 = MainRegistry.proxy.getLoopedSound(doorType.getSoundLoop2(), xCoord, yCoord, zCoord, doorType.getSoundVolume(), 10F, 1F); audio2.startSound(); } } - if((this.state == 3 && state == 1) || (this.state == 2 && state == 0)){ + + if(state == 1 || state == 0){ // Door finished any transition if(audio != null){ audio.stopSound(); audio = null; @@ -271,6 +300,18 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn audio2 = null; } } + + if(this.state == 3 && state == 1){ // Door finished transitioning to open + if(doorType.getOpenSoundEnd() != null){ + worldObj.playSound(xCoord, yCoord, zCoord, doorType.getOpenSoundEnd(), doorType.getSoundVolume(), 1F, false); + } + } + + if(this.state == 2 && state == 0){ // Door finished transitioning to closed + if(doorType.getCloseSoundEnd() != null){ + worldObj.playSound(xCoord, yCoord, zCoord, doorType.getCloseSoundEnd(), doorType.getSoundVolume(), 1F, false); + } + } this.state = state; @@ -282,10 +323,22 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn //Ah yes piggy backing on this packet @Override public void setTextureState(byte tex){ - if(tex > 0) - shouldUseBB = true; - else - shouldUseBB = false; + shouldUseBB = tex > 0; + } + + public int getSkinIndex() { + return skinIndex; + } + + @Override + public boolean setSkinIndex(byte skinIndex) { + if(!getDoorType().hasSkins()) + return false; + if(getDoorType().getSkinCount() < skinIndex) { + return false; + } + this.skinIndex = skinIndex; + return true; } @Override @@ -299,35 +352,38 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } @Override - public void readFromNBT(NBTTagCompound tag){ + public void readFromNBT(NBTTagCompound tag) { this.state = tag.getByte("state"); this.openTicks = tag.getInteger("openTicks"); this.animStartTime = tag.getInteger("animStartTime"); this.redstonePower = tag.getInteger("redstoned"); this.shouldUseBB = tag.getBoolean("shouldUseBB"); + this.skinIndex = tag.getByte("skin"); NBTTagCompound activatedBlocks = tag.getCompoundTag("activatedBlocks"); this.activatedBlocks.clear(); - for(int i = 0; i < activatedBlocks.func_150296_c().size()/3; i ++){ - this.activatedBlocks.add(new BlockPos(activatedBlocks.getInteger("x"+i), activatedBlocks.getInteger("y"+i), activatedBlocks.getInteger("z"+i))); + for(int i = 0; i < activatedBlocks.func_150296_c().size() / 3; i++) { + this.activatedBlocks.add(new BlockPos(activatedBlocks.getInteger("x" + i), activatedBlocks.getInteger("y" + i), activatedBlocks.getInteger("z" + i))); } super.readFromNBT(tag); } @Override - public void writeToNBT(NBTTagCompound tag){ + public void writeToNBT(NBTTagCompound tag) { super.writeToNBT(tag); - + tag.setByte("state", state); tag.setInteger("openTicks", openTicks); tag.setLong("animStartTime", animStartTime); tag.setInteger("redstoned", redstonePower); tag.setBoolean("shouldUseBB", shouldUseBB); + if(getDoorType().hasSkins()) + tag.setByte("skin", skinIndex); NBTTagCompound activatedBlocks = new NBTTagCompound(); int i = 0; - for(BlockPos p : this.activatedBlocks){ - activatedBlocks.setInteger("x"+i, p.getX()); - activatedBlocks.setInteger("y"+i, p.getY()); - activatedBlocks.setInteger("z"+i, p.getZ()); + for(BlockPos p : this.activatedBlocks) { + activatedBlocks.setInteger("x" + i, p.getX()); + activatedBlocks.setInteger("y" + i, p.getY()); + activatedBlocks.setInteger("z" + i, p.getZ()); i++; } tag.setTag("activatedBlocks", activatedBlocks); @@ -351,7 +407,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } } - public void updateRedstonePower(int x, int y, int z){ + public void updateRedstonePower(int x, int y, int z) { //Drillgon200: Best I could come up with without having to use dummy tile entities BlockPos pos = new BlockPos(x, y, z); boolean powered = worldObj.isBlockIndirectlyGettingPowered(x, y, z); diff --git a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java index f2ab912aa..74b61d7b0 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java @@ -1,14 +1,20 @@ package com.hbm.tileentity; +import com.hbm.handler.threading.PacketThreading; +import com.hbm.packet.toclient.BufPacket; import com.hbm.sound.AudioWrapper; -import api.hbm.energy.ILoadedTile; +import api.hbm.tile.ILoadedTile; +import cpw.mods.fml.common.network.NetworkRegistry; +import io.netty.buffer.ByteBuf; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -public class TileEntityLoadedBase extends TileEntity implements ILoadedTile { - +public class TileEntityLoadedBase extends TileEntity implements ILoadedTile, IBufPacketReceiver { + public boolean isLoaded = true; - + public boolean muffled = false; + @Override public boolean isLoaded() { return isLoaded; @@ -19,13 +25,68 @@ public class TileEntityLoadedBase extends TileEntity implements ILoadedTile { super.onChunkUnload(); this.isLoaded = false; } - + public AudioWrapper createAudioLoop() { return null; } - + public AudioWrapper rebootAudio(AudioWrapper wrapper) { wrapper.stopSound(); AudioWrapper audio = createAudioLoop(); audio.startSound(); return audio; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.muffled = nbt.getBoolean("muffled"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("muffled", muffled); + } + + public float getVolume(float baseVolume) { + return muffled ? baseVolume * 0.1F : baseVolume; + } + + private ByteBuf lastPackedBuf; + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(muffled); + } + + @Override + public void deserialize(ByteBuf buf) { + this.muffled = buf.readBoolean(); + } + + /** Sends a sync packet that uses ByteBuf for efficient information-cramming */ + public void networkPackNT(int range) { + if(worldObj.isRemote) { + return; + } + + BufPacket packet = new BufPacket(xCoord, yCoord, zCoord, this); + + ByteBuf preBuf = packet.getPreBuf(); + + // Don't send unnecessary packets, except for maybe one every second or so. + // If we stop sending duplicate packets entirely, this causes issues when + // a client unloads and then loads back a chunk with an unchanged tile entity. + // For that client, the tile entity will appear default until anything changes about it. + // In my testing, this can be reliably reproduced with a full fluid barrel, for instance. + // I think it might be fixable by doing something with getDescriptionPacket() and onDataPacket(), + // but this sidesteps the problem for the mean time. + if (preBuf.equals(lastPackedBuf) && this.worldObj.getWorldTime() % 20 != 0) { + return; + } + + this.lastPackedBuf = preBuf.copy(); + + PacketThreading.createAllAroundThreadedPacket(packet, new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index d71c1ab66..e38bf2f63 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -1,11 +1,8 @@ package com.hbm.tileentity; -import com.hbm.blocks.ModBlocks; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.NBTPacket; -import com.hbm.packet.PacketDispatcher; +import com.hbm.util.fauxpointtwelve.DirPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -14,16 +11,16 @@ import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidTank; -public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver { +public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory { public ItemStack slots[]; - + private String customName; - - public TileEntityMachineBase(int scount) { - slots = new ItemStack[scount]; + + public TileEntityMachineBase(int slotCount) { + slots = new ItemStack[slotCount]; } - + /** The "chunks is modified, pls don't forget to save me" effect of markDirty, minus the block updates */ public void markChanged() { this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); @@ -64,14 +61,14 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : getName(); } - + public abstract String getName(); @Override public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } - + public void setCustomName(String name) { this.customName = name; } @@ -83,40 +80,38 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme @Override public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; } } - + @Override public void openInventory() {} @Override public void closeInventory() {} @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { + public boolean isItemValidForSlot(int slot, ItemStack itemStack) { return false; } - + @Override public ItemStack decrStackSize(int slot, int amount) { - if(slots[slot] != null) - { - if(slots[slot].stackSize <= amount) - { + if(slots[slot] != null) { + + if(slots[slot].stackSize <= amount) { ItemStack itemStack = slots[slot]; slots[slot] = null; return itemStack; } + ItemStack itemStack1 = slots[slot].splitStack(amount); - if (slots[slot].stackSize == 0) - { + if(slots[slot].stackSize == 0) { slots[slot] = null; } - + return itemStack1; } else { return null; @@ -124,20 +119,20 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme } @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); + public boolean canInsertItem(int slot, ItemStack itemStack, int side) { + return this.isItemValidForSlot(slot, itemStack); } @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { return false; } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + public int[] getAccessibleSlotsFromSide(int side) { return new int[] { }; } - + public int getGaugeScaled(int i, FluidTank tank) { return tank.getFluidAmount() * i / tank.getCapacity(); } @@ -148,33 +143,15 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme //shit i don't know man @Override public abstract void updateEntity(); - - @Deprecated - public void updateGauge(int val, int id, int range) { - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, val, id), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); - } - - @Deprecated - public void processGauge(int val, int id) { } - - public void networkPack(NBTTagCompound nbt, int range) { - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); - } - - public void networkUnpack(NBTTagCompound nbt) { } - @Deprecated public void handleButtonPacket(int value, int meta) { } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - + for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound nbt1 = list.getCompoundTagAt(i); @@ -185,12 +162,12 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme } } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); NBTTagList list = new NBTTagList(); - + for(int i = 0; i < slots.length; i++) { if(slots[i] != null) @@ -203,22 +180,27 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme } nbt.setTag("items", list); } - - public int countMufflers() { - - int count = 0; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - if(worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ) == ModBlocks.muffler) - count++; - - return count; - } - - public float getVolume(int toSilence) { - - float volume = 1 - (countMufflers() / (float)toSilence); - - return Math.max(volume, 0); + + public void updateRedstoneConnection(DirPos pos) { + + int x = pos.getX(); + int y = pos.getY(); + int z = pos.getZ(); + ForgeDirection dir = pos.getDir(); + Block block1 = worldObj.getBlock(x, y, z); + + block1.onNeighborChange(worldObj, x, y, z, xCoord, yCoord, zCoord); + block1.onNeighborBlockChange(worldObj, x, y, z, this.getBlockType()); + if(block1.isNormalCube(worldObj, x, y, z)) { + x += dir.offsetX; + y += dir.offsetY; + z += dir.offsetZ; + Block block2 = worldObj.getBlock(x, y, z); + + if(block2.getWeakChanges(worldObj, x, y, z)) { + block2.onNeighborChange(worldObj, x, y, z, xCoord, yCoord, zCoord); + block2.onNeighborBlockChange(worldObj, x, y, z, this.getBlockType()); + } + } } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java b/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java new file mode 100644 index 000000000..692d2dbb7 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java @@ -0,0 +1,97 @@ +package com.hbm.tileentity; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; + +import api.hbm.fluid.IFluidUser; +import com.hbm.inventory.fluid.trait.FT_Polluting; +import com.hbm.inventory.fluid.trait.FluidTrait; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.HashMap; +import java.util.Map; + +public abstract class TileEntityMachinePolluting extends TileEntityMachineBase implements IFluidUser { + + public FluidTank smoke; + public FluidTank smoke_leaded; + public FluidTank smoke_poison; + + public TileEntityMachinePolluting(int scount, int buffer) { + super(scount); + smoke = new FluidTank(Fluids.SMOKE, buffer); + smoke_leaded = new FluidTank(Fluids.SMOKE_LEADED, buffer); + smoke_poison = new FluidTank(Fluids.SMOKE_POISON, buffer); + } + + public void pollute(PollutionType type, float amount) { + FluidTank tank = type == PollutionType.SOOT ? smoke : type == PollutionType.HEAVYMETAL ? smoke_leaded : smoke_poison; + + int fluidAmount = (int) Math.ceil(amount * 100); + tank.setFill(tank.getFill() + fluidAmount); + + if(tank.getFill() > tank.getMaxFill()) { + int overflow = tank.getFill() - tank.getMaxFill(); + tank.setFill(tank.getMaxFill()); + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, type, overflow / 100F); + + if(worldObj.rand.nextInt(3) == 0) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.fizz", 0.1F, 1.5F); + } + } + public void pollute(FluidType type, FluidTrait.FluidReleaseType release, float amount) { + FluidTank tank; + FT_Polluting trait = type.getTrait(FT_Polluting.class); + if(trait == null) return; + if(release == FluidTrait.FluidReleaseType.VOID) return; + + HashMap map = release == FluidTrait.FluidReleaseType.BURN ? trait.burnMap : trait.releaseMap; + + for(Map.Entry entry : map.entrySet()) { + + tank = entry.getKey() == PollutionType.SOOT ? smoke : entry.getKey() == PollutionType.HEAVYMETAL ? smoke_leaded : smoke_poison; + int fluidAmount = (int) Math.ceil(entry.getValue() * amount * 100); + tank.setFill(tank.getFill() + fluidAmount); + + if (tank.getFill() > tank.getMaxFill()) { + int overflow = tank.getFill() - tank.getMaxFill(); + tank.setFill(tank.getMaxFill()); + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, entry.getKey(), overflow / 100F); + + if (worldObj.rand.nextInt(3) == 0) + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.fizz", 0.1F, 1.5F); + } + } + } + + public void sendSmoke(int x, int y, int z, ForgeDirection dir) { + if(this.smoke.getFill() > 0) this.sendFluid(smoke, worldObj, x, y, z, dir); + if(this.smoke_leaded.getFill() > 0) this.sendFluid(smoke_leaded, worldObj, x, y, z, dir); + if(this.smoke_poison.getFill() > 0) this.sendFluid(smoke_poison, worldObj, x, y, z, dir); + } + + public FluidTank[] getSmokeTanks() { + return new FluidTank[] {smoke, smoke_leaded, smoke_poison}; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + smoke.readFromNBT(nbt, "smoke0"); + smoke_leaded.readFromNBT(nbt, "smoke1"); + smoke_poison.readFromNBT(nbt, "smoke2"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + smoke.writeToNBT(nbt, "smoke0"); + smoke_leaded.writeToNBT(nbt, "smoke1"); + smoke_poison.writeToNBT(nbt, "smoke2"); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java b/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java index 182e1f1bc..61b3cbd44 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java @@ -3,16 +3,29 @@ package com.hbm.tileentity; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IProxyController; import com.hbm.util.Compat; +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; public class TileEntityProxyBase extends TileEntityLoadedBase { + + public BlockPos cachedPosition; public boolean canUpdate() { return false; } public TileEntity getTE() { + + if(worldObj == null) return null; + + if(cachedPosition != null) { + TileEntity te = Compat.getTileStandard(worldObj, cachedPosition.getX(), cachedPosition.getY(), cachedPosition.getZ()); + if(te != null && !(te instanceof TileEntityProxyBase)) return te; + cachedPosition = null; + this.markDirty(); + } if(this.getBlockType() instanceof BlockDummyable) { @@ -23,7 +36,7 @@ public class TileEntityProxyBase extends TileEntityLoadedBase { if(pos != null) { TileEntity te = Compat.getTileStandard(worldObj, pos[0], pos[1], pos[2]); - if(te != null && te != this) return te; + if(te != null && !(te instanceof TileEntityProxyBase)) return te; } } @@ -31,9 +44,28 @@ public class TileEntityProxyBase extends TileEntityLoadedBase { IProxyController controller = (IProxyController) this.getBlockType(); TileEntity tile = controller.getCore(worldObj, xCoord, yCoord, zCoord); - if(tile != null && tile != this) return tile; + if(tile != null && !(tile instanceof TileEntityProxyBase)) return tile; } return null; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + if(nbt.getBoolean("hasPos")) cachedPosition = new BlockPos(nbt.getInteger("pX"), nbt.getInteger("pY"), nbt.getInteger("pZ")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + if(this.cachedPosition != null) { + nbt.setBoolean("hasPos", true); + nbt.setInteger("pX", this.cachedPosition.getX()); + nbt.setInteger("pY", this.cachedPosition.getY()); + nbt.setInteger("pZ", this.cachedPosition.getZ()); + } + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index c4b8404d3..ae43788db 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -1,29 +1,44 @@ package com.hbm.tileentity; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; +import api.hbm.block.ICrucibleAcceptor; +import com.hbm.handler.CompatHandler; +import com.hbm.handler.CompatHandler.OCComponent; import com.hbm.inventory.fluid.FluidType; -import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidConnector; import api.hbm.tile.IHeatSource; +import com.hbm.inventory.material.Mats; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.Optional; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyUser, IFluidAcceptor, ISidedInventory, IFluidConnector, IHeatSource { +@Optional.InterfaceList({ + @Optional.Interface(iface = "com.hbm.handler.CompatHandler.OCComponent", modid = "opencomputers"), + @Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers") +}) +public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent { TileEntity tile; boolean inventory; boolean power; boolean fluid; boolean heat; - + public boolean moltenMetal; + + // due to some issues with OC deciding that it's gonna call the component name function before the worldObj is loaded + // the component name must be cached to prevent it from shitting itself + String componentName = CompatHandler.nullComponent; + public TileEntityProxyCombo() { } public TileEntityProxyCombo(boolean inventory, boolean power, boolean fluid) { @@ -41,7 +56,10 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy this.power = true; return this; } - + public TileEntityProxyCombo moltenMetal() { + this.moltenMetal = true; + return this; + } public TileEntityProxyCombo fluid() { this.fluid = true; return this; @@ -62,109 +80,14 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return tile; } - @Override - public void setFillForSync(int fill, int index) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setFillForSync(fill, index); - } - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setFluidFill(fill, type); - } - } - - @Override - public int getFluidFillForReceive(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getFluidFillForReceive(type); - } - return 0; - } - - @Override - public int getMaxFluidFillForReceive(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getMaxFluidFillForReceive(type); - } - - return 0; - } - - @Override - public void receiveFluid(int amount, FluidType type) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidAcceptor) { - ((IFluidAcceptor)getTile()).receiveFluid(amount, type); - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setTypeForSync(type, index); - } - } - - @Override - public int getFluidFill(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidContainer) { - return ((IFluidContainer)getTile()).getFluidFill(type); - } - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getMaxFluidFill(type); - } - - return 0; - } - @Override public void setPower(long i) { if(!power) return; - if(getTile() instanceof IEnergyUser) { - ((IEnergyUser)getTile()).setPower(i); + if(getTile() instanceof IEnergyReceiverMK2) { + ((IEnergyReceiverMK2)getTile()).setPower(i); } } @@ -174,8 +97,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return 0; - if(getTile() instanceof IEnergyConnector) { - return ((IEnergyConnector)getTile()).getPower(); + if(getTile() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTile()).getPower(); } return 0; @@ -187,8 +110,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return 0; - if(getTile() instanceof IEnergyConnector) { - return ((IEnergyConnector)getTile()).getMaxPower(); + if(getTile() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTile()).getMaxPower(); } return 0; @@ -200,8 +123,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!this.power) return power; - if(getTile() instanceof IEnergyConnector) { - return ((IEnergyConnector)getTile()).transferPower(power); + if(getTile() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTile()).transferPower(power); } return power; @@ -213,11 +136,11 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return false; - if(getTile() instanceof IEnergyConnector) { - return ((IEnergyConnector)getTile()).canConnect(dir); + if(getTile() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTile()).canConnect(dir); } - return false; + return true; } @Override @@ -361,6 +284,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return false; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).isItemValidForSlot(xCoord, yCoord, zCoord, slot, stack); + return ((ISidedInventory)getTile()).isItemValidForSlot(slot, stack); } @@ -374,6 +300,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return new int[0]; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).getAccessibleSlotsFromSide(xCoord, yCoord, zCoord, side); + return ((ISidedInventory)getTile()).getAccessibleSlotsFromSide(side); } @@ -387,6 +316,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return false; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).canInsertItem(xCoord, yCoord, zCoord, i, stack, j); + return ((ISidedInventory)getTile()).canInsertItem(i, stack, j); } @@ -400,6 +332,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return false; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).canExtractItem(xCoord, yCoord, zCoord, i, stack, j); + return ((ISidedInventory)getTile()).canExtractItem(i, stack, j); } @@ -413,7 +348,11 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy this.inventory = nbt.getBoolean("inv"); this.power = nbt.getBoolean("power"); this.fluid = nbt.getBoolean("fluid"); + this.moltenMetal = nbt.getBoolean("metal"); this.heat = nbt.getBoolean("heat"); + if(Loader.isModLoaded("OpenComputers")) + this.componentName = nbt.getString("ocname"); + } @Override @@ -423,7 +362,10 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy nbt.setBoolean("inv", inventory); nbt.setBoolean("power", power); nbt.setBoolean("fluid", fluid); + nbt.setBoolean("metal", moltenMetal); nbt.setBoolean("heat", heat); + if(Loader.isModLoaded("OpenComputers")) + nbt.setString("ocname", componentName); } @Override @@ -459,7 +401,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(getTile() instanceof IFluidConnector) { return ((IFluidConnector)getTile()).canConnect(type, dir); } - return false; + return true; } @Override @@ -485,4 +427,76 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy ((IHeatSource)getTile()).useUpHeat(heat); } } + + @Override + public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getTile()).canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack); + } + return false; + } + + @Override + public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getTile()).pour(world, x, y, z, dX, dY, dZ, side, stack); + } + return null; + } + + @Override + public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getTile()).canAcceptPartialFlow(world, x, y, z, side, stack); + } + return false; + } + + @Override + public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getTile()).flow(world, x, y, z, side, stack); + } + return null; + } + + @Override // please work + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + if(this.worldObj == null) // OC is going too fast, grab from NBT! + return componentName; + if(this.getTile() instanceof OCComponent) { + if (componentName == null || componentName.equals(OCComponent.super.getComponentName())) { + componentName = ((OCComponent) this.getTile()).getComponentName(); + } + return componentName; + } + return OCComponent.super.getComponentName(); + } + + @Override + @Optional.Method(modid = "OpenComputers") + public boolean canConnectNode(ForgeDirection side) { + if(this.getTile() instanceof OCComponent) + return (this.getBlockMetadata() >= 6 && this.getBlockMetadata() <= 11) + && (power || fluid) && + ((OCComponent) this.getTile()).canConnectNode(side); + return OCComponent.super.canConnectNode(null); + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + if(this.getTile() instanceof OCComponent) + return ((OCComponent) this.getTile()).methods(); + return OCComponent.super.methods(); + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + if(this.getTile() instanceof OCComponent) + return ((OCComponent) this.getTile()).invoke(method, context, args); + return OCComponent.super.invoke(null, null, null); + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java b/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java index 1bcbaa6cb..f7b16aec9 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java @@ -1,87 +1,11 @@ package com.hbm.tileentity; -import java.util.ArrayList; -import java.util.List; +import api.hbm.energymk2.IEnergyConnectorMK2; -import api.hbm.energy.IEnergyConductor; -import api.hbm.energy.IPowerNet; -import net.minecraft.tileentity.TileEntity; - -public class TileEntityProxyConductor extends TileEntityProxyBase implements IEnergyConductor { +public class TileEntityProxyConductor extends TileEntityProxyBase implements IEnergyConnectorMK2 { @Override public boolean canUpdate() { return false; } - - @Override - public long transferPower(long power) { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).transferPower(power); - } - - return 0; - } - - @Override - public long getPower() { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).getPower(); - } - - return 0; - } - - @Override - public long getMaxPower() { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).getMaxPower(); - } - - return 0; - } - - @Override - public IPowerNet getPowerNet() { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).getPowerNet(); - } - - return null; - } - - @Override - public void setPowerNet(IPowerNet network) { - - TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - ((IEnergyConductor)te).setPowerNet(network); - } - } - - @Override - public List getConnectionPoints() { - - /*TileEntity te = this.getTE(); - - if(te instanceof IEnergyConductor) { - return ((IEnergyConductor)te).getConnectionPoints(); - }*/ - - /* Proxy TE doesn't need to implement proxying here because the conductor main TE already has a network-specific proxying system */ - return new ArrayList(); - } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyEnergy.java b/src/main/java/com/hbm/tileentity/TileEntityProxyEnergy.java index f4ae0e810..65c983e23 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyEnergy.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyEnergy.java @@ -1,24 +1,23 @@ package com.hbm.tileentity; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; //can be used as a soruce too since the core TE handles that anyway -public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnergyUser { +public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnergyReceiverMK2 { - public boolean canUpdate() - { - return false; - } + public boolean canUpdate() { + return false; + } @Override public void setPower(long i) { TileEntity te = getTE(); - if(te instanceof IEnergyUser) { - ((IEnergyUser)te).setPower(i); + if(te instanceof IEnergyReceiverMK2) { + ((IEnergyReceiverMK2)te).setPower(i); } } @@ -27,8 +26,8 @@ public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnerg TileEntity te = getTE(); - if(te instanceof IEnergyUser) { - return ((IEnergyUser)te).getPower(); + if(te instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)te).getPower(); } return 0; @@ -39,8 +38,8 @@ public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnerg TileEntity te = getTE(); - if(te instanceof IEnergyUser) { - return ((IEnergyUser)te).getMaxPower(); + if(te instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)te).getMaxPower(); } return 0; @@ -49,8 +48,8 @@ public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnerg @Override public long transferPower(long power) { - if(getTE() instanceof IEnergyUser) { - return ((IEnergyUser)getTE()).transferPower(power); + if(getTE() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getTE()).transferPower(power); } return 0; @@ -60,8 +59,8 @@ public class TileEntityProxyEnergy extends TileEntityProxyBase implements IEnerg public boolean canConnect(ForgeDirection dir) { TileEntity te = getTE(); - if(te instanceof IEnergyUser) { - return ((IEnergyUser)te).canConnect(dir); //for some reason two consecutive getTE calls return different things? + if(te instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)te).canConnect(dir); //for some reason two consecutive getTE calls return different things? } return false; diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java b/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java index 9e348c0b4..ce4208ccc 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java @@ -5,6 +5,7 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +@Deprecated public class TileEntityProxyInventory extends TileEntityProxyBase implements ISidedInventory { @Override diff --git a/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java b/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java index aa11fb99a..2924a3467 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java @@ -1,18 +1,13 @@ package com.hbm.tileentity; -import com.hbm.packet.NBTPacket; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidTank; -public abstract class TileEntityTickingBase extends TileEntityLoadedBase implements INBTPacketReceiver { - +public abstract class TileEntityTickingBase extends TileEntityLoadedBase { + public TileEntityTickingBase() { } - + public abstract String getInventoryName(); - + public int getGaugeScaled(int i, FluidTank tank) { return tank.getFluidAmount() * i / tank.getCapacity(); } @@ -22,16 +17,9 @@ public abstract class TileEntityTickingBase extends TileEntityLoadedBase impleme //was it update? onUpdate? updateTile? did it have any args? //shit i don't know man @Override - public abstract void updateEntity(); - - public void networkPack(NBTTagCompound nbt, int range) { + public abstract void updateEntity(); - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); - } - - public void networkUnpack(NBTTagCompound nbt) { } - @Deprecated public void handleButtonPacket(int value, int meta) { } + } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index e9ba74599..d2edfe72d 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -11,21 +11,27 @@ import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; -import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; +import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; +import com.hbm.blocks.generic.BlockSupplyCrate.TileEntitySupplyCrate; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; +import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; +import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; +import com.hbm.blocks.machine.Floodlight.TileEntityFloodlight; +import com.hbm.blocks.machine.FloodlightBeam.TileEntityFloodlightBeam; import com.hbm.blocks.machine.MachineCapacitor.TileEntityCapacitor; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; +import com.hbm.blocks.network.BlockCableGauge.TileEntityCableGauge; import com.hbm.blocks.network.BlockCablePaintable.TileEntityCablePaintable; import com.hbm.blocks.network.CableDiode.TileEntityDiode; +import com.hbm.blocks.network.CranePartitioner.TileEntityCranePartitioner; import com.hbm.blocks.network.FluidDuctGauge.TileEntityPipeGauge; import com.hbm.blocks.network.FluidDuctPaintable.TileEntityPipePaintable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; import com.hbm.tileentity.bomb.*; -import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; @@ -34,21 +40,16 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; -import com.hbm.util.LoggingUtil; -import api.hbm.fluid.IFluidConnector; import net.minecraft.tileentity.TileEntity; public class TileMappings { - public static HashMap, String[]> map = new HashMap(); - public static List> configurables = new ArrayList(); + public static HashMap, String[]> map = new HashMap, String[]>(); + public static List> configurables = new ArrayList>(); public static void writeMappings() { - put(TileEntityTestBombAdvanced.class, "tilentity_testbombadvanced"); put(TileEntityDiFurnace.class, "tilentity_diFurnace"); - put(TileEntityTestNuke.class, "tilentity_testnuke"); - put(TileEntityTestRender.class, "tilentity_testrenderer"); put(TileEntityObjTester.class, "tilentity_objtester"); put(TileEntityMachineCentrifuge.class, "tileentity_centrifuge"); put(TileEntityNukeMan.class, "tileentity_nukeman"); @@ -64,10 +65,12 @@ public class TileMappings { put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer"); put(TileEntityMachineBattery.class, "tileentity_battery"); put(TileEntityCapacitor.class, "tileentity_capacitor"); - put(TileEntityMachineCoal.class, "tileentity_coal"); + put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner"); put(TileEntityRedBarrel.class, "tileentity_barrel"); put(TileEntityYellowBarrel.class, "tileentity_nukebarrel"); put(TileEntityLaunchPad.class, "tileentity_launch1"); + put(TileEntityLaunchPadRusted.class, "tileentity_launchpad_rusted"); + put(TileEntityLaunchPadLarge.class, "tileentity_launchpad_large"); put(TileEntityDecoBlock.class, "tileentity_deco"); put(TileEntityDecoBlockAltW.class, "tileentity_deco_w"); put(TileEntityDecoBlockAltG.class, "tileentity_deco_g"); @@ -77,44 +80,37 @@ public class TileMappings { put(TileEntityConverterRfHe.class, "tileentity_converter_rfhe"); put(TileEntityMachineSchrabidiumTransmutator.class, "tileentity_schrabidium_transmutator"); put(TileEntityMachineDiesel.class, "tileentity_diesel_generator"); - put(TileEntityWatzCore.class, "tileentity_watz_multiblock"); put(TileEntityMachineShredder.class, "tileentity_machine_shredder"); - put(TileEntityMachineCMBFactory.class, "tileentity_machine_cmb"); - put(TileEntityFWatzCore.class, "tileentity_fwatz_multiblock"); put(TileEntityMachineTeleporter.class, "tileentity_teleblock"); put(TileEntityHatch.class, "tileentity_seal_lid"); put(TileEntityMachineIGenerator.class, "tileentity_igenerator"); put(TileEntityPartEmitter.class, "tileentity_partemitter"); put(TileEntityDummy.class, "tileentity_dummy"); put(TileEntityMachineCyclotron.class, "tileentity_cyclotron"); - put(TileEntityOilDuct.class, "tileentity_oil_duct"); - put(TileEntityOilDuctSolid.class, "tileentity_oil_duct_solid"); - put(TileEntityGasDuct.class, "tileentity_gas_duct"); - put(TileEntityGasDuctSolid.class, "tileentity_gas_duct_solid"); + put(TileEntityMachineExposureChamber.class, "tileentity_exposure_chamber"); put(TileEntityMachineRTG.class, "tileentity_machine_rtg"); - put(TileEntityStructureMarker.class, "tileentity_structure_marker"); - put(TileEntityMachineMiningDrill.class, "tileentity_mining_drill"); put(TileEntityMachineExcavator.class, "tileentity_ntm_excavator"); - put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple"); - put(TileEntityFluidDuct.class, "tileentity_universal_duct"); + put(TileEntityMachineOreSlopper.class, "tileentity_ore_slopper"); + put(TileEntityMachineDrain.class, "tileentity_fluid_drain"); put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank"); put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan"); put(TileEntityMachineTurbineGas.class, "tileentity_machine_gasturbine"); + put(TileEntityMachineLPW2.class, "tileentity_machine_lpw2"); + put(TileEntityCrateTemplate.class, "tileentity_crate_template"); put(TileEntityCrateIron.class, "tileentity_crate_iron"); put(TileEntityCrateSteel.class, "tileentity_crate_steel"); put(TileEntityCrateDesh.class, "tileentity_crate_desh"); put(TileEntityMassStorage.class, "tileentity_mass_storage"); put(TileEntityMachinePress.class, "tileentity_press"); - put(TileEntityAMSBase.class, "tileentity_ams_base"); - put(TileEntityAMSEmitter.class, "tileentity_ams_emitter"); - put(TileEntityAMSLimiter.class, "tileentity_ams_limiter"); + put(TileEntityMachineAmmoPress.class, "tileentity_ammo_press"); put(TileEntityMachineSiren.class, "tileentity_siren"); put(TileEntityMachineSPP.class, "tileentity_spp"); put(TileEntityMachineRadGen.class, "tileentity_radgen"); put(TileEntityMachineTransformer.class, "tileentity_transformer"); - put(TileEntityMachineRadar.class, "tileentity_radar"); + put(TileEntityMachineRadarNT.class, "tileentity_radar"); + put(TileEntityMachineRadarLarge.class, "tileentity_radar_large"); + put(TileEntityMachineRadarScreen.class, "tileentity_radar_screen"); put(TileEntityBroadcaster.class, "tileentity_pink_cloud_broadcaster"); - put(TileEntityMachineSeleniumEngine.class, "tileentity_selenium_engine"); put(TileEntityMachineSatLinker.class, "tileentity_satlinker"); put(TileEntityReactorResearch.class, "tileentity_small_reactor"); put(TileEntityVaultDoor.class, "tileentity_vault_door"); @@ -122,26 +118,20 @@ public class TileMappings { put(TileEntityRadioRec.class, "tileentity_radio_receiver"); put(TileEntityVent.class, "tileentity_vent"); put(TileEntityLandmine.class, "tileentity_landmine"); - put(TileEntityBomber.class, "tileentity_bomber"); put(TileEntityMachineKeyForge.class, "tileentity_key_forge"); put(TileEntitySellafield.class, "tileentity_sellafield_core"); - put(TileEntityNukeN45.class, "tileentity_n45"); put(TileEntityBlastDoor.class, "tileentity_blast_door"); put(TileEntitySafe.class, "tileentity_safe"); put(TileEntityMachineGasCent.class, "tileentity_gas_centrifuge"); - put(TileEntityMachineBoiler.class, "tileentity_boiler"); - put(TileEntityMachineBoilerElectric.class, "tileentity_electric_boiler"); put(TileEntityGeiger.class, "tileentity_geiger"); put(TileEntityFF.class, "tileentity_forcefield"); put(TileEntityForceField.class, "tileentity_machine_field"); - put(TileEntityMachineShredderLarge.class, "tileentity_machine_big_shredder"); - put(TileEntityRFDuct.class, "tileentity_hbm_rfduct"); put(TileEntityReactorControl.class, "tileentity_reactor_remote_control"); - put(TileEntityMachineReactorLarge.class, "tileentity_large_reactor"); put(TileEntityWasteDrum.class, "tileentity_waste_drum"); put(TileEntityDecon.class, "tileentity_decon"); put(TileEntityMachineSatDock.class, "tileentity_miner_dock"); put(TileEntityMachineEPress.class, "tileentity_electric_press"); + put(TileEntityConveyorPress.class, "tileentity_conveyor_press"); put(TileEntityCoreEmitter.class, "tileentity_v0_emitter"); put(TileEntityCoreReceiver.class, "tileentity_v0_receiver"); put(TileEntityCoreInjector.class, "tileentity_v0_injector"); @@ -161,6 +151,8 @@ public class TileMappings { put(TileEntityBarrel.class, "tileentity_fluid_barrel"); put(TileEntityCyberCrab.class, "tileentity_crabs"); put(TileEntitySoyuzCapsule.class, "tileentity_soyuz_capsule"); + put(TileEntitySupplyCrate.class, "tileentity_supply_crate"); + put(TileEntityMachineRotaryFurnace.class, "tileentity_rotary_furnace"); put(TileEntityMachineCrystallizer.class, "tileentity_acidomatic"); put(TileEntitySoyuzStruct.class, "tileentity_soyuz_struct"); put(TileEntityITERStruct.class, "tileentity_iter_struct"); @@ -169,11 +161,16 @@ public class TileMappings { put(TileEntityMicrowave.class, "tileentity_microwave"); put(TileEntityMachineMiniRTG.class, "tileentity_mini_rtg"); put(TileEntityITER.class, "tileentity_iter"); + put(TileEntityBlockICF.class, "tileentity_block_icf"); + put(TileEntityICFPress.class, "tileentity_icf_press"); + put(TileEntityICFController.class, "tileentity_icf_controller"); + put(TileEntityICF.class, "tileentity_icf"); put(TileEntityMachinePlasmaHeater.class, "tileentity_plasma_heater"); put(TileEntityMachineFENSU.class, "tileentity_fensu"); put(TileEntityTrappedBrick.class, "tileentity_trapped_brick"); put(TileEntityPlasmaStruct.class, "tileentity_plasma_struct"); put(TileEntityWatzStruct.class, "tileentity_watz_struct"); + put(TileEntityICFStruct.class, "tileentity_icf_struct"); put(TileEntityHadronDiode.class, "tileentity_hadron_diode"); put(TileEntityHadronPower.class, "tileentity_hadron_power"); put(TileEntityHadron.class, "tileentity_hadron"); @@ -185,20 +182,29 @@ public class TileMappings { put(TileEntitySILEX.class, "tileentity_silex"); put(TileEntityFEL.class, "tileentity_fel"); put(TileEntityDemonLamp.class, "tileentity_demonlamp"); + put(TileEntityFloodlight.class, "tileentity_floodlight"); + put(TileEntityFloodlightBeam.class, "tileentity_floodlight_beam"); + put(TileEntityLantern.class, "tileentity_lantern_ordinary"); + put(TileEntityLanternBehemoth.class, "tileentity_lantern_behemoth"); put(TileEntityStorageDrum.class, "tileentity_waste_storage_drum"); - put(TileEntityDeaerator.class, "tileentity_deaerator"); put(TileEntityCableBaseNT.class, "tileentity_ohgod"); // what? put(TileEntityCablePaintable.class, "tileentity_cable_paintable"); + put(TileEntityCableGauge.class, "tileentity_cable_gauge"); put(TileEntityPipeBaseNT.class, "tileentity_pipe_base"); put(TileEntityPipePaintable.class, "tileentity_pipe_paintable"); put(TileEntityPipeGauge.class, "tileentity_pipe_gauge"); + put(TileEntityPipeExhaust.class, "tileentity_pipe_exhaust"); + put(TileEntityFluidValve.class, "tileentity_pipe_valve"); put(TileEntityMachineBAT9000.class, "tileentity_bat9000"); put(TileEntityMachineOrbus.class, "tileentity_orbus"); put(TileEntityGlpyhidSpawner.class, "tileentity_glyphid_spawner"); + put(TileEntityCustomMachine.class, "tileentity_custom_machine"); put(TileEntityLoot.class, "tileentity_ntm_loot"); + put(TileEntityPedestal.class, "tileentity_ntm_pedestal"); put(TileEntityBobble.class, "tileentity_ntm_bobblehead"); put(TileEntitySnowglobe.class, "tileentity_ntm_snowglobe"); + put(TileEntityPlushie.class, "tileentity_ntm_plushie"); put(TileEntityEmitter.class, "tileentity_ntm_emitter"); put(TileEntityDoorGeneric.class, "tileentity_ntm_door"); @@ -212,8 +218,12 @@ public class TileMappings { put(TileEntityProxyCombo.class, "tileentity_proxy_combo"); put(TileEntityProxyConductor.class, "tileentity_proxy_conductor"); - put(TileEntityRandomOre.class, "tileentity_mother_of_all_ores"); put(TileEntityBedrockOre.class, "tileentity_bedrock_ore"); + + put(TileEntityBlockPWR.class, "tileentity_block_pwr"); + put(TileEntityPWRController.class, "tileentity_pwr_controller"); + + put(TileEntityData.class, "tileentity_data"); putNetwork(); putBombs(); @@ -221,6 +231,9 @@ public class TileMappings { putMachines(); putPile(); putRBMK(); + + TileEntityMachineRadarNT.registerEntityClasses(); + TileEntityMachineRadarNT.registerConverters(); } private static void putBombs() { @@ -252,22 +265,29 @@ public class TileMappings { put(TileEntityTurretArty.class, "tileentity_turret_arty"); put(TileEntityTurretHIMARS.class, "tileentity_turret_himars"); put(TileEntityTurretSentry.class, "tileentity_turret_sentry"); + put(TileEntityTurretSentryDamaged.class, "tileentity_turret_sentry_damaged"); } private static void putMachines() { put(TileEntityHeaterFirebox.class, "tileentity_firebox"); put(TileEntityHeaterOven.class, "tileentity_heating_oven"); + put(TileEntityAshpit.class, "tileentity_ashpit"); put(TileEntityHeaterOilburner.class, "tileentity_oilburner"); put(TileEntityHeaterElectric.class, "tileentity_electric_heater"); put(TileEntityHeaterHeatex.class, "tileentity_heater_heatex"); put(TileEntityFurnaceIron.class, "tileentity_furnace_iron"); + put(TileEntityFurnaceBrick.class, "tileentity_furnace_brick"); put(TileEntityFurnaceSteel.class, "tileentity_furnace_steel"); put(TileEntityFurnaceCombination.class, "tileentity_combination_oven"); put(TileEntityStirling.class, "tileentity_stirling"); put(TileEntitySawmill.class, "tileentity_sawmill"); put(TileEntityCrucible.class, "tileentity_crucible"); put(TileEntityHeatBoiler.class, "tileentity_heat_boiler"); + put(TileEntityHeatBoilerIndustrial.class, "tileentity_heat_boiler_industrial"); + put(TileEntityMachinePumpSteam.class, "tileentity_steam_pump"); + put(TileEntityMachinePumpElectric.class, "tileentity_electric_pump"); + put(TileEntityFoundryMold.class, "tileentity_foundry_mold"); put(TileEntityFoundryBasin.class, "tileentity_foundry_basin"); put(TileEntityFoundryChannel.class, "tileentity_foundry_channel"); @@ -275,16 +295,18 @@ public class TileMappings { put(TileEntityFoundryOutlet.class, "tileentity_foundry_outlet"); put(TileEntityFoundrySlagtap.class, "tileentity_foundry_slagtap"); put(TileEntitySlag.class, "tileentity_foundry_slag"); - + put(TileEntityMachineStrandCaster.class, "tileentity_strand_caster"); + put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); + put(TileEntityMachineFunnel.class, "tileentity_funnel"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); - put(TileEntityUVLamp.class, "tileentity_uv_lamp"); put(TileEntityMachineAutosaw.class, "tileentity_autosaw"); put(TileEntityCondenser.class, "tileentity_condenser"); put(TileEntityTowerSmall.class, "tileentity_cooling_tower_small"); put(TileEntityTowerLarge.class, "tileentity_cooling_tower_large"); + put(TileEntityCondenserPowered.class, "tileentity_condenser_powered"); put(TileEntityDeuteriumExtractor.class, "tileentity_deuterium_extractor"); put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower"); put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor"); @@ -292,6 +314,9 @@ public class TileMappings { put(TileEntityMachineCompressor.class, "tileentity_compressor"); put(TileEntityElectrolyser.class, "tileentity_electrolyser"); put(TileEntityMachineMixer.class, "tileentity_mixer"); + put(TileEntityMachineArcWelder.class, "tileentity_arc_welder"); + put(TileEntityMachineSolderingStation.class, "tileentity_soldering_station"); + put(TileEntityMachineArcFurnaceLarge.class, "tileentity_arc_furnace_large"); put(TileEntitySteamEngine.class, "tileentity_steam_engine"); put(TileEntityMachineTurbine.class, "tileentity_turbine"); @@ -315,7 +340,11 @@ public class TileMappings { put(TileEntitySpacer.class, "tileentity_fraction_spacer"); put(TileEntityMachineCatalyticCracker.class, "tileentity_catalytic_cracker"); put(TileEntityMachineCatalyticReformer.class, "tileentity_catalytic_reformer"); + put(TileEntityMachineHydrotreater.class, "tileentity_hydrotreater"); put(TileEntityMachineCoker.class, "tileentity_coker"); + put(TileEntityMachinePyroOven.class, "tileentity_pyrooven"); + put(TileEntityChimneyBrick.class, "tileentity_chimney_brick"); + put(TileEntityChimneyIndustrial.class, "tileentity_chimney_industrial"); put(TileEntityReactorZirnox.class, "tileentity_zirnox"); put(TileEntityZirnoxDestroyed.class, "tileentity_zirnox_destroyed"); @@ -358,6 +387,7 @@ public class TileMappings { put(TileEntityConnector.class, "tileentity_connector_redwire"); put(TileEntityPylon.class, "tileentity_pylon_redwire"); + put(TileEntityPylonMedium.class, "tileentity_pylon_medium"); put(TileEntityPylonLarge.class, "tileentity_pylon_large"); put(TileEntitySubstation.class, "tileentity_substation"); @@ -368,19 +398,32 @@ public class TileMappings { put(TileEntityCraneUnboxer.class, "tileentity_unboxer"); put(TileEntityCraneRouter.class, "tileentity_router"); put(TileEntityCraneSplitter.class, "tileentity_splitter"); + put(TileEntityCranePartitioner.class, "tileentity_partitioner"); put(TileEntityFan.class, "tileentity_fan"); put(TileEntityPistonInserter.class, "tileentity_piston_inserter"); put(TileEntityRadioTorchSender.class, "tileentity_rtty_sender"); put(TileEntityRadioTorchReceiver.class, "tileentity_rtty_rec"); + put(TileEntityRadioTorchCounter.class, "tileentity_rtty_counter"); + put(TileEntityRadioTorchLogic.class, "tileentity_rtty_logic"); + put(TileEntityRadioTelex.class, "tileentity_rtty_telex"); + + put(TileEntityDroneWaypoint.class, "tileentity_drone_waypoint"); + put(TileEntityDroneCrate.class, "tileentity_drone_crate"); + put(TileEntityDroneWaypointRequest.class, "tileentity_drone_waypoint_request"); + put(TileEntityDroneDock.class, "tileentity_drone_dock"); + put(TileEntityDroneProvider.class, "tileentity_drone_provider"); + put(TileEntityDroneRequester.class, "tileentity_drone_requester"); + + put(TileEntityRailSwitch.class, "tileentity_rail_switch"); } private static void put(Class clazz, String... names) { map.put(clazz, names); - if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { + /*if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { LoggingUtil.errorWithHighlight(clazz.getCanonicalName() + " implements the old interfaces but not IFluidConnector!"); - } + }*/ if(IConfigurableMachine.class.isAssignableFrom(clazz)) { configurables.add((Class) clazz); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java index 0eeae10f0..2955f12f4 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -290,7 +289,7 @@ public class TileEntityBombMulti extends TileEntity implements ISidedInventory, @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBombMulti(player.inventory, this); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java index 6467ac91e..18a08483e 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCharge.java @@ -1,65 +1,64 @@ package com.hbm.tileentity.bomb; import com.hbm.blocks.bomb.BlockChargeBase; -import com.hbm.packet.NBTPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.INBTPacketReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; +import com.hbm.tileentity.TileEntityLoadedBase; +import io.netty.buffer.ByteBuf; + +public class TileEntityCharge extends TileEntityLoadedBase { -public class TileEntityCharge extends TileEntity implements INBTPacketReceiver { - public boolean started; public int timer; @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(started) { timer--; - + if(timer % 20 == 0 && timer > 0) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.fstbmbPing", 1.0F, 1.0F); - + if(timer <= 0) { ((BlockChargeBase)this.getBlockType()).explode(worldObj, xCoord, yCoord, zCoord); } } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("timer", timer); - data.setBoolean("started", started); - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 100)); + + networkPackNT(100); } } @Override - public void networkUnpack(NBTTagCompound data) { - timer = data.getInteger("timer"); - started = data.getBoolean("started"); + public void serialize(ByteBuf buf) { + buf.writeLong(this.timer); + buf.writeBoolean(this.started); } - + + @Override + public void deserialize(ByteBuf buf) { + this.timer = buf.readInt(); + this.started = buf.readBoolean(); + } + public String getMinutes() { - + String mins = "" + (timer / 1200); - + if(mins.length() == 1) mins = "0" + mins; - + return mins; } - + public String getSeconds() { - + String mins = "" + ((timer / 20) % 60); - + if(mins.length() == 1) mins = "0" + mins; - + return mins; } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 24a739811..12dd8bab2 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -4,8 +4,6 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCompactLauncher; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -13,26 +11,26 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineCompactLauncher; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemCustomMissile; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.packet.toclient.TEMissileMultipartPacket; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.item.IDesignatorItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -47,7 +45,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyUser, IFluidStandardReceiver, IGUIProvider { +public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IBufPacketReceiver, IRadarCommandReceiver { private ItemStack slots[]; @@ -56,7 +54,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I public int solid; public static final int maxSolid = 25000; public FluidTank[] tanks; - + public MissileStruct load; private static final int[] access = new int[] { 0 }; @@ -66,8 +64,8 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I public TileEntityCompactLauncher() { slots = new ItemStack[8]; tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.NONE, 25000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 25000, 1); + tanks[0] = new FluidTank(Fluids.NONE, 25000); + tanks[1] = new FluidTank(Fluids.NONE, 25000); } @Override @@ -159,11 +157,11 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I return null; } } - + public long getPowerScaled(long i) { return (power * i) / maxPower; } - + public int getSolidScaled(int i) { return (solid * i) / maxSolid; } @@ -172,31 +170,27 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I public void updateEntity() { if (!worldObj.isRemote) { - + updateTypes(); tanks[0].loadTank(2, 6, slots); tanks[1].loadTank(3, 7, slots); - for (int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - power = Library.chargeTEFromItems(slots, 5, power, maxPower); - + if(slots[4] != null && slots[4].getItem() == ModItems.rocket_fuel && solid + 250 <= maxSolid) { - + this.decrStackSize(4, 1); solid += 250; } if(worldObj.getTotalWorldTime() % 20 == 0) this.updateConnections(); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, solid, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - + + networkPackNT(50); + MissileStruct multipart = getStruct(slots[0]); - + if(multipart != null) PacketDispatcher.wrapper.sendToAllAround(new TEMissileMultipartPacket(xCoord, yCoord, zCoord, multipart), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); else @@ -205,45 +199,67 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I outer: for(int x = -1; x <= 1; x++) { for(int z = -1; z <= 1; z++) { - + if(worldObj.isBlockIndirectlyGettingPowered(xCoord + x, yCoord, zCoord + z) && canLaunch()) { - launch(); + launchFromDesignator(); break outer; } } } } else { - + List entities = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); - + for(Entity e : entities) { - + if(e instanceof EntityMissileCustom) { - + for(int i = 0; i < 15; i++) { - + boolean dir = worldObj.rand.nextBoolean(); float moX = (float) (dir ? 0 : worldObj.rand.nextGaussian() * 0.5F); float moZ = (float) (!dir ? 0 : worldObj.rand.nextGaussian() * 0.5F); - - MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] {moX, 0, moZ}); + + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posY", yCoord + 0.25); + data.setDouble("posZ", zCoord + 0.5); + data.setString("type", "launchSmoke"); + data.setDouble("moX", moX); + data.setDouble("moY", 0); + data.setDouble("moZ", moZ); + MainRegistry.proxy.effectNT(data); } - + break; } } } } - + + @Override public void serialize(ByteBuf buf) { + buf.writeLong(power); + buf.writeInt(solid); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.solid = buf.readInt(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } + private void updateConnections() { - + for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + public DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), @@ -260,62 +276,86 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I new DirPos(xCoord - 1, yCoord - 1, zCoord - 1, Library.NEG_Y) }; } - + public boolean canLaunch() { - + if(power >= maxPower * 0.75 && isMissileValid() && hasDesignator() && hasFuel()) return true; - + return false; } - - public void launch() { + + @Override + public boolean sendCommandEntity(Entity target) { + return sendCommandPosition((int) Math.floor(target.posX), yCoord, (int) Math.floor(target.posX)); + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + if(!canLaunch()) return false; + this.launchTo(x, z); + return true; + } + + public void launchFromDesignator() { + + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); + + if(designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) { + Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); + int tX = (int) Math.floor(coords.xCoord); + int tZ = (int) Math.floor(coords.zCoord); + + this.launchTo(tX, tZ); + } + } + } + + public void launchTo(int tX, int tZ) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); - int tX = slots[1].stackTagCompound.getInteger("xCoord"); - int tZ = slots[1].stackTagCompound.getInteger("zCoord"); - - ItemMissile chip = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); + ItemCustomMissilePart chip = (ItemCustomMissilePart) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); float c = (Float)chip.attributes[0]; float f = 1.0F; - + if(getStruct(slots[0]).fins != null) { - ItemMissile fins = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "stability")); + ItemCustomMissilePart fins = (ItemCustomMissilePart) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "stability")); f = (Float) fins.attributes[0]; } - + Vec3 target = Vec3.createVectorHelper(xCoord - tX, 0, zCoord - tZ); target.xCoord *= c * f; target.zCoord *= c * f; - + target.rotateAroundY(worldObj.rand.nextFloat() * 360); - + EntityMissileCustom missile = new EntityMissileCustom(worldObj, xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, tX + (int)target.xCoord, tZ + (int)target.zCoord, getStruct(slots[0])); worldObj.spawnEntityInWorld(missile); - + subtractFuel(); - + slots[0] = null; } - + private boolean hasFuel() { return solidState() != 0 && liquidState() != 0 && oxidizerState() != 0; } - + private void subtractFuel() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + float f = (Float)fuselage.attributes[1]; int fuel = (int)f; - + switch((FuelType)fuselage.attributes[0]) { case KEROSENE: tanks[0].setFill(tanks[0].getFill() - fuel); @@ -336,118 +376,118 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I this.solid -= fuel; break; default: break; } - + this.power -= maxPower * 0.75; } - + public static MissileStruct getStruct(ItemStack stack) { - + return ItemCustomMissile.getStruct(stack); } - + public boolean isMissileValid() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return false; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + return fuselage.top == PartSize.SIZE_10; } - + public boolean hasDesignator() { - + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem && ((IDesignatorItem)slots[1].getItem()).isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) { return true; } - + return false; } - + public int solidState() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return -1; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + if((FuelType)fuselage.attributes[0] == FuelType.SOLID) { - + if(solid >= (Float)fuselage.attributes[1]) return 1; else return 0; } - + return -1; } - + public int liquidState() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return -1; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + switch((FuelType)fuselage.attributes[0]) { case KEROSENE: case HYDROGEN: case XENON: case BALEFIRE: - + if(tanks[0].getFill() >= (Float)fuselage.attributes[1]) return 1; else return 0; default: break; } - + return -1; } - + public int oxidizerState() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return -1; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + switch((FuelType)fuselage.attributes[0]) { case KEROSENE: case HYDROGEN: case BALEFIRE: - + if(tanks[1].getFill() >= (Float)fuselage.attributes[1]) return 1; else return 0; default: break; } - + return -1; } - + public void updateTypes() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + switch((FuelType)fuselage.attributes[0]) { case KEROSENE: tanks[0].setTankType(Fluids.KEROSENE); - tanks[1].setTankType(Fluids.ACID); + tanks[1].setTankType(Fluids.PEROXIDE); break; case HYDROGEN: tanks[0].setTankType(Fluids.HYDROGEN); @@ -458,7 +498,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I break; case BALEFIRE: tanks[0].setTankType(Fluids.BALEFIRE); - tanks[1].setTankType(Fluids.ACID); + tanks[1].setTankType(Fluids.PEROXIDE); break; default: break; } @@ -488,7 +528,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + NBTTagList list = new NBTTagList(); tanks[0].writeToNBT(nbt, "fuel"); @@ -522,51 +562,11 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I return false; } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() @@ -591,16 +591,16 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I @Override public long transferPower(long power) { - + this.power += power; - + if(this.power > this.getMaxPower()) { - + long overshoot = this.power - this.getMaxPower(); this.power = this.getMaxPower(); return overshoot; } - + return 0; } @@ -631,7 +631,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineCompactLauncher(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityFireworks.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityFireworks.java index be34e001c..ed97928b7 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityFireworks.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityFireworks.java @@ -1,8 +1,8 @@ package com.hbm.tileentity.bomb; import com.hbm.entity.item.EntityFireworks; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java index b6b909f62..e9320c85d 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java @@ -2,13 +2,14 @@ package com.hbm.tileentity.bomb; import java.util.List; -import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.Landmine; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.passive.EntityBat; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -16,55 +17,59 @@ import net.minecraft.util.AxisAlignedBB; public class TileEntityLandmine extends TileEntity { private boolean isPrimed = false; + public boolean waitingForPlayer = false; public void updateEntity() { + if(worldObj.isRemote) return; + + Block block = worldObj.getBlock(xCoord, yCoord, zCoord); - if(!worldObj.isRemote) { - Block block = worldObj.getBlock(xCoord, yCoord, zCoord); - double range = 1; - double height = 1; + if(!(block instanceof Landmine)) return; + Landmine landmine = (Landmine) block; - if (block == ModBlocks.mine_ap) { - range = 1.5D; - } - if (block == ModBlocks.mine_he) { - range = 2; - height = 5; - } - if (block == ModBlocks.mine_shrap) { - range = 1.5D; - } - if (block == ModBlocks.mine_fat) { - range = 2.5D; - } - - if(!isPrimed) - range *= 2; - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - height, zCoord - range, xCoord + range + 1, yCoord + height, zCoord + range + 1)); - - boolean flag = false; - for(Object o : list) { + double range = landmine.range; + double height = landmine.height; + if(waitingForPlayer) { + range = 25; + height = 25; + } else if(!isPrimed) { + range *= 2; + height *= 2; + } + + @SuppressWarnings("unchecked") + List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, + AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - height, zCoord - range, xCoord + range + 1, yCoord + height, zCoord + range + 1)); + + for(Object o : list) { + if(o instanceof EntityBat) continue; + if(waitingForPlayer) { + // This mine has been generated by worldgen and is ignoring mobs until a player is close enough + // This is to prevent worldgen mines from detonating well before they become gameplay relevant + + if(o instanceof EntityPlayer) { + waitingForPlayer = false; + return; + } + } else { if(o instanceof EntityLivingBase) { - - flag = true; - if(isPrimed) { - //why did i do it like that? - ((Landmine) block).explode(worldObj, xCoord, yCoord, zCoord); + //the explosion is part of the mine block so that the IBomb interface works, i remember now + landmine.explode(worldObj, xCoord, yCoord, zCoord); } - + return; } } + } - if(!isPrimed && !flag) { - - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:weapon.fstbmbStart", 3.0F, 1.0F); - isPrimed = true; - } + // After placing, the mine needs to prime itself in order to not immediately kill the placer + // The mine will prime itself only after all entities have left its trigger radius * 2 + // I'm leaving this note because I made a dumb assumption on what this was meant to do + if(!isPrimed && !waitingForPlayer) { + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:weapon.fstbmbStart", 3.0F, 1.0F); + isPrimed = true; } } @@ -72,18 +77,19 @@ public class TileEntityLandmine extends TileEntity { super.readFromNBT(nbt); isPrimed = nbt.getBoolean("primed"); + waitingForPlayer = nbt.getBoolean("waiting"); } public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setBoolean("primed", isPrimed); + nbt.setBoolean("waiting", waitingForPlayer); } @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 9e7084101..11650a3ff 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -1,337 +1,130 @@ package com.hbm.tileentity.bomb; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.bomb.LaunchPad; -import com.hbm.inventory.container.ContainerLaunchPadTier1; -import com.hbm.inventory.gui.GUILaunchPadTier1; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEMissilePacket; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; +import java.util.List; + +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; -import api.hbm.item.IDesignatorItem; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; +import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, SimpleComponent, IGUIProvider { +public class TileEntityLaunchPad extends TileEntityLaunchPadBase { - public ItemStack slots[]; - - public long power; - public final long maxPower = 100000; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] { 0, 1, 2}; - private static final int[] slots_side = new int[] {0}; - public int state = 0; - private String customName; - - public TileEntityLaunchPad() { - slots = new ItemStack[3]; - } + @Override public boolean isReadyForLaunch() { return delay <= 0; } + @Override public double getLaunchOffset() { return 1D; } - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.launchPad"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - power = nbt.getLong("power"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - nbt.setLong("power", power); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } + public int delay = 0; @Override public void updateEntity() { - + if(!worldObj.isRemote) { - - power = Library.chargeTEFromItems(slots, 2, power, maxPower); - this.updateConnections(); - - PacketDispatcher.wrapper.sendToAllAround(new TEMissilePacket(xCoord, yCoord, zCoord, slots[0]), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + if(this.delay > 0) delay--; + + if(!this.isMissileValid() || !this.hasFuel()) { + this.delay = 100; + } + + if(!this.hasFuel() || !this.isMissileValid()) { + this.state = this.STATE_MISSING; + } else { + if(this.delay > 0) { + this.state = this.STATE_LOADING; + } else { + this.state = this.STATE_READY; + } + } + + } else { + + List entities = worldObj.getEntitiesWithinAABB(EntityMissileBaseNT.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); + + if(!entities.isEmpty()) { + for(int i = 0; i < 15; i++) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + if(worldObj.rand.nextBoolean()) dir = dir.getOpposite(); + if(worldObj.rand.nextBoolean()) dir = dir.getRotation(ForgeDirection.UP); + float moX = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetX; + float moZ = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetZ; + + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posY", yCoord + 0.25); + data.setDouble("posZ", zCoord + 0.5); + data.setString("type", "launchSmoke"); + data.setDouble("moX", moX); + data.setDouble("moY", 0); + data.setDouble("moZ", moZ); + MainRegistry.proxy.effectNT(data); + } + } } + + super.updateEntity(); } - - private void updateConnections() { - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); + + @Override + public void finalizeLaunch(Entity missile) { + super.finalizeLaunch(missile); + this.delay = 100; } - + + @Override + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.delay = nbt.getInteger("delay"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("delay", delay); + } + + AxisAlignedBB bb = null; + @Override public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - @Override - public void setPower(long i) { - power = i; - - } - - @Override - public long getPower() { - return power; - - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public long transferPower(long power) { - - this.power += power; - - if(this.power > this.getMaxPower()) { - - long overshoot = this.power - this.getMaxPower(); - this.power = this.getMaxPower(); - return overshoot; + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 15, + zCoord + 3 + ); } - - return 0; + + return bb; } - @Override - public boolean canConnect(ForgeDirection dir) { - return dir != ForgeDirection.UP && dir != ForgeDirection.UNKNOWN; - } - @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } - - // do some opencomputer stuff - @Override - public String getComponentName() { - return "launch_pad"; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower()}; - } - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower()}; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getCoords(Context context, Arguments args) { - if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { - int xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); - int zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); - - // Not sure if i should have this - if(xCoord2 == xCoord && zCoord2 == zCoord) { - xCoord2 += 1; - } - - return new Object[] {xCoord2, zCoord2}; - } - return new Object[] {"Designator not found"}; - } - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] setCoords(Context context, Arguments args) { - if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { - slots[1].stackTagCompound.setInteger("xCoord", args.checkInteger(0)); - slots[1].stackTagCompound.setInteger("zCoord", args.checkInteger(1)); - - return new Object[] {"Success"}; - } - return new Object[] {"Designator not found"}; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] launch(Context context, Arguments args) { - //worldObj.getBlock(xCoord, yCoord, zCoord).explode(worldObj, xCoord, yCoord, zCoord); - ((LaunchPad) ModBlocks.launch_pad).explode(worldObj, xCoord, yCoord, zCoord); - return new Object[] {}; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerLaunchPadTier1(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUILaunchPadTier1(player.inventory, this); - } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java new file mode 100644 index 000000000..997cd1f07 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -0,0 +1,568 @@ +package com.hbm.tileentity.bomb; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +import com.hbm.handler.CompatHandler; +import com.hbm.tileentity.IFluidCopiable; +import cpw.mods.fml.common.Optional; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; +import org.apache.logging.log4j.Level; + +import com.hbm.config.GeneralConfig; +import com.hbm.entity.missile.*; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; +import com.hbm.interfaces.IBomb.BombReturnCode; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.container.ContainerLaunchPadLarge; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUILaunchPadLarge; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.items.weapon.ItemMissile.MissileFuel; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.TrackerUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.item.IDesignatorItem; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable { + + /** Automatic instantiation of generic missiles, i.e. everything that both extends EntityMissileBaseNT and needs a designator */ + public static final HashMap> missiles = new HashMap(); + + public static void registerLaunchables() { + + //Tier 0 + missiles.put(new ComparableStack(ModItems.missile_test), EntityMissileTest.class); + missiles.put(new ComparableStack(ModItems.missile_micro), EntityMissileMicro.class); + missiles.put(new ComparableStack(ModItems.missile_schrabidium), EntityMissileSchrabidium.class); + missiles.put(new ComparableStack(ModItems.missile_bhole), EntityMissileBHole.class); + missiles.put(new ComparableStack(ModItems.missile_taint), EntityMissileTaint.class); + missiles.put(new ComparableStack(ModItems.missile_emp), EntityMissileEMP.class); + //Tier 1 + missiles.put(new ComparableStack(ModItems.missile_generic), EntityMissileGeneric.class); + missiles.put(new ComparableStack(ModItems.missile_decoy), EntityMissileDecoy.class); + missiles.put(new ComparableStack(ModItems.missile_incendiary), EntityMissileIncendiary.class); + missiles.put(new ComparableStack(ModItems.missile_cluster), EntityMissileCluster.class); + missiles.put(new ComparableStack(ModItems.missile_buster), EntityMissileBunkerBuster.class); + //Tier 2 + missiles.put(new ComparableStack(ModItems.missile_strong), EntityMissileStrong.class); + missiles.put(new ComparableStack(ModItems.missile_incendiary_strong), EntityMissileIncendiaryStrong.class); + missiles.put(new ComparableStack(ModItems.missile_cluster_strong), EntityMissileClusterStrong.class); + missiles.put(new ComparableStack(ModItems.missile_buster_strong), EntityMissileBusterStrong.class); + missiles.put(new ComparableStack(ModItems.missile_emp_strong), EntityMissileEMPStrong.class); + //Tier 3 + missiles.put(new ComparableStack(ModItems.missile_burst), EntityMissileBurst.class); + missiles.put(new ComparableStack(ModItems.missile_inferno), EntityMissileInferno.class); + missiles.put(new ComparableStack(ModItems.missile_rain), EntityMissileRain.class); + missiles.put(new ComparableStack(ModItems.missile_drill), EntityMissileDrill.class); + missiles.put(new ComparableStack(ModItems.missile_shuttle), EntityMissileShuttle.class); + //Tier 4 + missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class); + missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class); + missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class); + missiles.put(new ComparableStack(ModItems.missile_doomsday), EntityMissileDoomsday.class); + + missiles.put(new ComparableStack(ModItems.missile_stealth), EntityMissileStealth.class); + } + + public ItemStack toRender; + + public long power; + public final long maxPower = 100_000; + + public int prevRedstonePower; + public int redstonePower; + public Set activatedBlocks = new HashSet<>(4); + + public int state = 0; + public static final int STATE_MISSING = 0; + public static final int STATE_LOADING = 1; + public static final int STATE_READY = 2; + + public FluidTank[] tanks; + + public TileEntityLaunchPadBase() { + super(7); + this.tanks = new FluidTank[2]; + this.tanks[0] = new FluidTank(Fluids.NONE, 24_000); + this.tanks[1] = new FluidTank(Fluids.NONE, 24_000); + } + + @Override + public String getName() { + return "container.launchPad"; + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0 }; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot == 0 && this.isMissileValid(stack); + } + + public abstract DirPos[] getConPos(); + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[0].getTankType() != Fluids.NONE) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[1].getTankType() != Fluids.NONE) this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + if(this.redstonePower > 0 && this.prevRedstonePower <= 0) { + this.launchFromDesignator(); + } + + this.prevRedstonePower = this.redstonePower; + + this.power = Library.chargeTEFromItems(slots, 2, power, maxPower); + tanks[0].loadTank(3, 4, slots); + tanks[1].loadTank(5, 6, slots); + + if(this.isMissileValid()) { + if(slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) slots[0].getItem(); + setFuel(missile); + } + } + + this.networkPackNT(250); + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeLong(this.power); + buf.writeInt(this.state); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + + if(slots[0] != null) { + buf.writeBoolean(true); + buf.writeInt(Item.getIdFromItem(slots[0].getItem())); + buf.writeShort((short) slots[0].getItemDamage()); + } else { + buf.writeBoolean(false); + } + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.power = buf.readLong(); + this.state = buf.readInt(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + + if(buf.readBoolean()) { + this.toRender = new ItemStack(Item.getItemById(buf.readInt()), 1, buf.readShort()); + } else { + this.toRender = null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); + + this.redstonePower = nbt.getInteger("redstonePower"); + this.prevRedstonePower = nbt.getInteger("prevRedstonePower"); + NBTTagCompound activatedBlocks = nbt.getCompoundTag("activatedBlocks"); + this.activatedBlocks.clear(); + for(int i = 0; i < activatedBlocks.func_150296_c().size() / 3; i++) { + this.activatedBlocks.add(new BlockPos(activatedBlocks.getInteger("x" + i), activatedBlocks.getInteger("y" + i), activatedBlocks.getInteger("z" + i))); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + tanks[0].writeToNBT(nbt, "t0"); + tanks[1].writeToNBT(nbt, "t1"); + + nbt.setInteger("redstonePower", redstonePower); + nbt.setInteger("prevRedstonePower", prevRedstonePower); + NBTTagCompound activatedBlocks = new NBTTagCompound(); + int i = 0; + for(BlockPos p : this.activatedBlocks) { + activatedBlocks.setInteger("x" + i, p.getX()); + activatedBlocks.setInteger("y" + i, p.getY()); + activatedBlocks.setInteger("z" + i, p.getZ()); + i++; + } + nbt.setTag("activatedBlocks", activatedBlocks); + } + + public void updateRedstonePower(int x, int y, int z) { + BlockPos pos = new BlockPos(x, y, z); + boolean powered = worldObj.isBlockIndirectlyGettingPowered(x, y, z); + boolean contained = activatedBlocks.contains(pos); + if(!contained && powered){ + activatedBlocks.add(pos); + if(redstonePower == -1){ + redstonePower = 0; + } + redstonePower++; + } else if(contained && !powered){ + activatedBlocks.remove(pos); + redstonePower--; + if(redstonePower == 0){ + redstonePower = -1; + } + } + } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + @Override public FluidTank[] getAllTanks() { return this.tanks; } + @Override public FluidTank[] getReceivingTanks() { return this.tanks; } + + @Override public boolean canConnect(ForgeDirection dir) { + return dir != ForgeDirection.UP && dir != ForgeDirection.DOWN; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerLaunchPadLarge(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUILaunchPadLarge(player.inventory, this); + } + + @SuppressWarnings("incomplete-switch") //shut up + public void setFuel(ItemMissile missile) { + switch(missile.fuel) { + case ETHANOL_PEROXIDE: + tanks[0].setTankType(Fluids.ETHANOL); + tanks[1].setTankType(Fluids.PEROXIDE); + break; + case KEROSENE_PEROXIDE: + tanks[0].setTankType(Fluids.KEROSENE); + tanks[1].setTankType(Fluids.PEROXIDE); + break; + case KEROSENE_LOXY: + tanks[0].setTankType(Fluids.KEROSENE); + tanks[1].setTankType(Fluids.OXYGEN); + break; + case JETFUEL_LOXY: + tanks[0].setTankType(Fluids.KEROSENE_REFORM); + tanks[1].setTankType(Fluids.OXYGEN); + break; + } + } + + /** Requires the missile slot to be non-null and he item to be compatible */ + public boolean isMissileValid() { + return slots[0] != null && isMissileValid(slots[0]); + } + + public boolean isMissileValid(ItemStack stack) { + return stack.getItem() instanceof ItemMissile && ((ItemMissile) stack.getItem()).launchable; + } + + public boolean hasFuel() { + if(this.power < 75_000) return false; + + if(slots[0] != null && slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) slots[0].getItem(); + if(this.tanks[0].getFill() < missile.fuelCap) return false; + if(this.tanks[1].getFill() < missile.fuelCap) return false; + + return true; + } + + return false; + } + + public Entity instantiateMissile(int targetX, int targetZ) { + + if(slots[0] == null) return null; + + Class clazz = TileEntityLaunchPadBase.missiles.get(new ComparableStack(slots[0]).makeSingular()); + + if(clazz != null) { + try { + EntityMissileBaseNT missile = clazz.getConstructor(World.class, float.class, float.class, float.class, int.class, int.class).newInstance(worldObj, xCoord + 0.5F, yCoord + (float) getLaunchOffset() /* Position arguments need to be floats, jackass */, zCoord + 0.5F, targetX, targetZ); + if(GeneralConfig.enableExtendedLogging) MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + xCoord + " / " + yCoord + " / " + zCoord + " to " + xCoord + " / " + zCoord + "!"); + missile.getDataWatcher().updateObject(3, (byte) MathHelper.clamp_int(this.getBlockMetadata() - 10, 2, 5)); + return missile; + } catch(Exception e) { } + } + + if(slots[0].getItem() == ModItems.missile_anti_ballistic) { + EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(worldObj); + missile.posX = xCoord + 0.5D; + missile.posY = yCoord + getLaunchOffset(); + missile.posZ = zCoord + 0.5D; + return missile; + } + + return null; + } + + public void finalizeLaunch(Entity missile) { + worldObj.spawnEntityInWorld(missile); + TrackerUtil.setTrackingRange(worldObj, missile, 500); + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); + + this.power -= 75_000; + + if(slots[0] != null && slots[0].getItem() instanceof ItemMissile) { + ItemMissile item = (ItemMissile) slots[0].getItem(); + tanks[0].setFill(tanks[0].getFill() - item.fuelCap); + tanks[1].setFill(tanks[1].getFill() - item.fuelCap); + } + + this.decrStackSize(0, 1); + } + + public BombReturnCode launchFromDesignator() { + if(!canLaunch()) return BombReturnCode.ERROR_MISSING_COMPONENT; + + boolean needsDesignator = needsDesignator(slots[0].getItem()); + + int targetX = 0; + int targetZ = 0; + + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); + + if(!designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord) && needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); + targetX = (int) Math.floor(coords.xCoord); + targetZ = (int) Math.floor(coords.zCoord); + + } else { + if(needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + return this.launchToCoordinate(targetX, targetZ); + } + + public BombReturnCode launchToEntity(Entity entity) { + if(!canLaunch()) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Entity e = instantiateMissile((int) Math.floor(entity.posX), (int) Math.floor(entity.posZ)); + if(e != null) { + + if(e instanceof EntityMissileAntiBallistic) { + EntityMissileAntiBallistic abm = (EntityMissileAntiBallistic) e; + abm.tracking = entity; + } + + finalizeLaunch(e); + return BombReturnCode.LAUNCHED; + } + return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + public BombReturnCode launchToCoordinate(int targetX, int targetZ) { + if(!canLaunch()) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Entity e = instantiateMissile(targetX, targetZ); + if(e != null) { + finalizeLaunch(e); + return BombReturnCode.LAUNCHED; + } + return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + return this.launchToCoordinate(x, z) == BombReturnCode.LAUNCHED; + } + + @Override + public boolean sendCommandEntity(Entity target) { + return this.launchToEntity(target) == BombReturnCode.LAUNCHED; + } + + public boolean needsDesignator(Item item) { + return item != ModItems.missile_anti_ballistic; + } + + /** Full launch condition, checks if the item is launchable, fuel and power are present and any additional checks based on launch pad type */ + public boolean canLaunch() { + return this.isMissileValid() && this.hasFuel() && this.isReadyForLaunch(); + } + + public int getFuelState() { + return getGaugeState(0); + } + + public int getOxidizerState() { + return getGaugeState(1); + } + + public int getGaugeState(int tank) { + if(slots[0] == null) return 0; + + if(slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) slots[0].getItem(); + MissileFuel fuel = missile.fuel; + + if(fuel == MissileFuel.SOLID) return 0; + return tanks[tank].getFill() >= missile.fuelCap ? 1 : -1; + } + + return 0; + } + + /** Any extra conditions for launching in addition to the missile being valid and fueled */ + public abstract boolean isReadyForLaunch(); + public abstract double getLaunchOffset(); + + // do some opencomputer stuff + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_launch_pad"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] { + this.tanks[0].getFill(), this.tanks[0].getMaxFill(), this.tanks[0].getTankType().getUnlocalizedName(), + this.tanks[1].getFill(), this.tanks[1].getMaxFill(), this.tanks[1].getTankType().getUnlocalizedName() + }; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] canLaunch(Context context, Arguments args) { + return new Object[] {canLaunch()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getTier(Context context, Arguments args) { + if(!isMissileValid()) + return new Object[] {}; + ItemMissile missile = (ItemMissile) slots[0].getItem(); + if(missile.tier == ItemMissile.MissileTier.TIER0) + return new Object[] {0}; + if(missile.tier == ItemMissile.MissileTier.TIER1) + return new Object[] {1}; + if(missile.tier == ItemMissile.MissileTier.TIER2) + return new Object[] {2}; + if(missile.tier == ItemMissile.MissileTier.TIER3) + return new Object[] {3}; + if(missile.tier == ItemMissile.MissileTier.TIER4) + return new Object[] {4}; + return new Object[] {5}; // unknown tier + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] launch(Context context, Arguments args) { + if(canLaunch()) { + return new Object[] {sendCommandPosition(args.checkInteger(0), -1 /*unused anyway*/, args.checkInteger(1))}; + } + return new Object[] {false}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getEnergyInfo", + "getFluid", + "canLaunch", + "getTier", + "launch" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch(method) { + case ("getEnergyInfo"): + return getEnergyInfo(context, args); + case ("getFluid"): + return getFluid(context, args); + case ("canLaunch"): + return canLaunch(context, args); + case ("getTier"): + return getTier(context, args); + case ("launch"): + return launch(context, args); + } + throw new NoSuchMethodException(); + } + + @Override + public int[] getFluidIDToCopy() { + return new int[]{tanks[0].getTankType().getID(), tanks[1].getTankType().getID()}; + } + + @Override + public FluidTank getTankToPaste() { + return null; + } +} diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java new file mode 100644 index 000000000..ef3868d79 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadLarge.java @@ -0,0 +1,334 @@ +package com.hbm.tileentity.bomb; + +import java.util.List; + +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.items.weapon.ItemMissile.MissileFormFactor; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.util.fauxpointtwelve.DirPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityLaunchPadLarge extends TileEntityLaunchPadBase { + + public int formFactor = -1; + /** Whether the missile has already been placed on the launchpad. Missile will render statically on the pad if true */ + public boolean erected = false; + /** Whether the missile can be lifted. Missile will not render at all if false and not erected */ + public boolean readyToLoad = false; + /** Instead of setting erected to true outright, this makes it so that it ties into the delay, + * which prevents a jerky transition due to the animation of the erector lagging behind a bit */ + public boolean scheduleErect = false; + public float lift = 1F; + public float erector = 90F; + public float prevLift = 1F; + public float prevErector = 90F; + public float syncLift; + public float syncErector; + private int sync; + /** Delay between erector movements */ + public int delay = 20; + + private AudioWrapper audioLift; + private AudioWrapper audioErector; + + protected boolean liftMoving = false; + protected boolean erectorMoving = false; + + @Override public boolean isReadyForLaunch() { return this.erected && this.readyToLoad; } + @Override public double getLaunchOffset() { return 2D; } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.prevLift = this.lift; + this.prevErector = this.erector; + + float erectorSpeed = 1.5F; + float liftSpeed = 0.025F; + + if(this.isMissileValid()) { + if(slots[0].getItem() instanceof ItemMissile) { + ItemMissile missile = (ItemMissile) slots[0].getItem(); + this.formFactor = missile.formFactor.ordinal(); + + if(missile.formFactor == MissileFormFactor.ATLAS || missile.formFactor == MissileFormFactor.HUGE) { + erectorSpeed /= 2F; + liftSpeed /= 2F; + } + } + + if(this.erector == 90F && this.lift == 1F) { + this.readyToLoad = true; + } + } else { + readyToLoad = false; + erected = false; + delay = 20; + } + + if(this.power >= 75_000) { + if(delay > 0) { + delay--; + + if(delay < 10 && scheduleErect) { + this.erected = true; + this.scheduleErect = false; + } + + // if there is no missile or the missile isn't ready (i.e. the erector hasn't returned to zero position yet), retract + if(slots[0] == null || !readyToLoad) { + //fold back erector + if(erector < 90F) { + erector = Math.min(erector + erectorSpeed, 90F); + if(erector == 90F) delay = 20; + //extend lift + } else if(lift < 1F) { + lift = Math.min(lift + liftSpeed, 1F); + if(erector == 1F) { + //if the lift is fully extended, the loading can begin + readyToLoad = true; + delay = 20; + } + } + } + + } else { + + //only extend if the erector isn't up yet and the missile can be loaded + if(!erected && readyToLoad) { + this.state = this.STATE_LOADING; + + //first, rotate the erector + if(erector != 0F) { + erector = Math.max(erector - erectorSpeed, 0F); + if(erector == 0F) delay = 20; + //then retract the lift + } else if(lift > 0) { + lift = Math.max(lift - liftSpeed, 0F); + if(lift == 0F) { + //once the lift is at the bottom, the missile is deployed + scheduleErect = true; + delay = 20; + } + } + } else { + //first, fold back the erector + if(erector < 90F) { + erector = Math.min(erector + erectorSpeed, 90F); + if(erector == 90F) delay = 20; + //then extend the lift again + } else if(lift < 1F) { + lift = Math.min(lift + liftSpeed, 1F); + if(erector == 1F) { + //if the lift is fully extended, the loading can begin + readyToLoad = true; + delay = 20; + } + } + } + } + } + + if(!this.hasFuel() || !this.isMissileValid()) this.state = this.STATE_MISSING; + if(this.erected && this.canLaunch()) this.state = this.STATE_READY; + + boolean prevLiftMoving = this.liftMoving; + boolean prevErectorMoving = this.erectorMoving; + this.liftMoving = false; + this.erectorMoving = false; + if(this.prevLift != this.lift) this.liftMoving = true; + if(this.prevErector != this.erector) this.erectorMoving = true; + + if(prevLiftMoving && !this.liftMoving) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:door.wgh_stop", 2F, 1F); + if(prevErectorMoving && !this.erectorMoving) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:door.garage_stop", 2F, 1F); + + } else { + this.prevLift = this.lift; + this.prevErector = this.erector; + + if(this.sync > 0) { + this.lift = this.lift + ((this.syncLift - this.lift) / (float) this.sync); + this.erector = this.erector + ((this.syncErector - this.erector) / (float) this.sync); + --this.sync; + } else { + this.lift = this.syncLift; + this.erector = this.syncErector; + } + + if(this.liftMoving) { + if(this.audioLift == null || !this.audioLift.isPlaying()) { + this.audioLift = MainRegistry.proxy.getLoopedSound("hbm:door.wgh_start", xCoord, yCoord, zCoord, 0.75F, 25F, 1.0F, 5); + this.audioLift.startSound(); + } + this.audioLift.keepAlive(); + } else { + if(this.audioLift != null) { + this.audioLift.stopSound(); + this.audioLift = null; + } + } + + if(this.erectorMoving) { + if(this.audioErector == null || !this.audioErector.isPlaying()) { + this.audioErector = MainRegistry.proxy.getLoopedSound("hbm:door.garage_move", xCoord, yCoord, zCoord, 1.5F, 25F, 1.0F, 5); + this.audioErector.startSound(); + } + this.audioErector.keepAlive(); + } else { + if(this.audioErector != null) { + this.audioErector.stopSound(); + this.audioErector = null; + } + } + + if(this.erected && (this.formFactor == MissileFormFactor.HUGE.ordinal() || this.formFactor == MissileFormFactor.ATLAS.ordinal()) && this.tanks[1].getFill() > 0) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", 0F); + data.setFloat("base", 0.5F); + data.setFloat("max", 2F); + data.setInteger("life", 70 + worldObj.rand.nextInt(30)); + data.setDouble("posX", xCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); + data.setDouble("posZ", zCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); + data.setDouble("posY", yCoord + 2); + data.setBoolean("noWind", true); + data.setFloat("alphaMod", 2F); + data.setFloat("strafe", 0.05F); + for(int i = 0; i < 3; i++) MainRegistry.proxy.effectNT(data); + } + + List entities = worldObj.getEntitiesWithinAABB(EntityMissileBaseNT.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); + + if(!entities.isEmpty()) { + for(int i = 0; i < 15; i++) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + if(worldObj.rand.nextBoolean()) dir = dir.getOpposite(); + float moX = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetX; + float moZ = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetZ; + + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posY", yCoord + 0.25); + data.setDouble("posZ", zCoord + 0.5); + data.setString("type", "launchSmoke"); + data.setDouble("moX", moX); + data.setDouble("moY", 0); + data.setDouble("moZ", moZ); + MainRegistry.proxy.effectNT(data); + } + } + } + + super.updateEntity(); + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeBoolean(this.liftMoving); + buf.writeBoolean(this.erectorMoving); + buf.writeBoolean(this.erected); + buf.writeBoolean(this.readyToLoad); + buf.writeByte((byte) this.formFactor); + buf.writeFloat(this.lift); + buf.writeFloat(this.erector); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.liftMoving = buf.readBoolean(); + this.erectorMoving = buf.readBoolean(); + this.erected = buf.readBoolean(); + this.readyToLoad = buf.readBoolean(); + this.formFactor = buf.readByte(); + this.syncLift = buf.readFloat(); + this.syncErector = buf.readFloat(); + + if(this.lift != this.syncLift || this.erector != this.syncErector) { + this.sync = 3; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.erected = nbt.getBoolean("erected"); + this.readyToLoad = nbt.getBoolean("readyToLoad"); + this.lift = nbt.getFloat("lift"); + this.erector = nbt.getFloat("erector"); + this.formFactor = nbt.getInteger("formFactor"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setBoolean("erected", erected); + nbt.setBoolean("readyToLoad", readyToLoad); + nbt.setFloat("lift", lift); + nbt.setFloat("erector", erector); + nbt.setInteger("formFactor", formFactor); + } + + @Override + public void finalizeLaunch(Entity missile) { + super.finalizeLaunch(missile); + this.erected = false; + } + + @Override + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 5, yCoord, zCoord - 2, Library.POS_X), + new DirPos(xCoord + 5, yCoord, zCoord + 2, Library.POS_X), + new DirPos(xCoord - 5, yCoord, zCoord - 2, Library.NEG_X), + new DirPos(xCoord - 5, yCoord, zCoord + 2, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord + 5, Library.POS_Z), + new DirPos(xCoord + 2, yCoord, zCoord + 5, Library.POS_Z), + new DirPos(xCoord - 2, yCoord, zCoord - 5, Library.NEG_Z), + new DirPos(xCoord + 2, yCoord, zCoord - 5, Library.NEG_Z) + }; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 10, + yCoord, + zCoord - 10, + xCoord + 11, + yCoord + 15, + zCoord + 11 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java new file mode 100644 index 000000000..973a078da --- /dev/null +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadRusted.java @@ -0,0 +1,234 @@ +package com.hbm.tileentity.bomb; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileTier4.EntityMissileDoomsdayRusted; +import com.hbm.interfaces.IBomb.BombReturnCode; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerLaunchPadRusted; +import com.hbm.inventory.gui.GUILaunchPadRusted; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.TrackerUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.item.IDesignatorItem; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { + + public int prevRedstonePower; + public int redstonePower; + public Set activatedBlocks = new HashSet<>(4); + + public boolean missileLoaded; + + public TileEntityLaunchPadRusted() { + super(4); + } + + @Override + public String getName() { + return "container.launchPadRusted"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(this.redstonePower > 0 && this.prevRedstonePower <= 0) { + this.launch(); + } + + this.prevRedstonePower = this.redstonePower; + this.networkPackNT(250); + } else { + + List entities = worldObj.getEntitiesWithinAABB(EntityMissileBaseNT.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); + + if(!entities.isEmpty()) { + for(int i = 0; i < 15; i++) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + if(worldObj.rand.nextBoolean()) dir = dir.getOpposite(); + if(worldObj.rand.nextBoolean()) dir = dir.getRotation(ForgeDirection.UP); + float moX = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetX; + float moZ = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetZ; + + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posY", yCoord + 0.25); + data.setDouble("posZ", zCoord + 0.5); + data.setString("type", "launchSmoke"); + data.setDouble("moX", moX); + data.setDouble("moY", 0); + data.setDouble("moZ", moZ); + MainRegistry.proxy.effectNT(data); + + } + } + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(this.missileLoaded); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.missileLoaded = buf.readBoolean(); + } + + public BombReturnCode launch() { + + if(slots[1] != null && slots[2] != null && slots[3] != null && this.missileLoaded) { + if(slots[1].getItem() == ModItems.launch_code && slots[2].getItem() == ModItems.launch_key) { + if(slots[3] != null && slots[3].getItem() instanceof IDesignatorItem) { + IDesignatorItem designator = (IDesignatorItem) slots[3].getItem(); + + if(!designator.isReady(worldObj, slots[3], xCoord, yCoord, zCoord)) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Vec3 coords = designator.getCoords(worldObj, slots[3], xCoord, yCoord, zCoord); + int targetX = (int) Math.floor(coords.xCoord); + int targetZ = (int) Math.floor(coords.zCoord); + + EntityMissileDoomsdayRusted missile = new EntityMissileDoomsdayRusted(worldObj, xCoord + 0.5F, yCoord + 1F, zCoord + 0.5F, targetX, targetZ); + worldObj.spawnEntityInWorld(missile); + TrackerUtil.setTrackingRange(worldObj, missile, 500); + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); + this.missileLoaded = false; + this.decrStackSize(1, 1); + this.markDirty(); + + return BombReturnCode.LAUNCHED; + } + } + } + + return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.missileLoaded = nbt.getBoolean("missileLoaded"); + + this.redstonePower = nbt.getInteger("redstonePower"); + this.prevRedstonePower = nbt.getInteger("prevRedstonePower"); + NBTTagCompound activatedBlocks = nbt.getCompoundTag("activatedBlocks"); + this.activatedBlocks.clear(); + for(int i = 0; i < activatedBlocks.func_150296_c().size() / 3; i++) { + this.activatedBlocks.add(new BlockPos(activatedBlocks.getInteger("x" + i), activatedBlocks.getInteger("y" + i), activatedBlocks.getInteger("z" + i))); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setBoolean("missileLoaded", missileLoaded); + + nbt.setInteger("redstonePower", redstonePower); + nbt.setInteger("prevRedstonePower", prevRedstonePower); + NBTTagCompound activatedBlocks = new NBTTagCompound(); + int i = 0; + for(BlockPos p : this.activatedBlocks) { + activatedBlocks.setInteger("x" + i, p.getX()); + activatedBlocks.setInteger("y" + i, p.getY()); + activatedBlocks.setInteger("z" + i, p.getZ()); + i++; + } + nbt.setTag("activatedBlocks", activatedBlocks); + } + + public void updateRedstonePower(int x, int y, int z) { + BlockPos pos = new BlockPos(x, y, z); + boolean powered = worldObj.isBlockIndirectlyGettingPowered(x, y, z); + boolean contained = activatedBlocks.contains(pos); + if(!contained && powered){ + activatedBlocks.add(pos); + if(redstonePower == -1){ + redstonePower = 0; + } + redstonePower++; + } else if(contained && !powered){ + activatedBlocks.remove(pos); + redstonePower--; + if(redstonePower == 0){ + redstonePower = -1; + } + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 15, + zCoord + 3 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerLaunchPadRusted(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUILaunchPadRusted(player.inventory, this); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("release")) { + if(this.missileLoaded && slots[0] == null) { + this.missileLoaded = false; + slots[0] = new ItemStack(ModItems.missile_doomsday_rusted); + this.markDirty(); + } + } + } +} diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 71a0d7289..a5e49a870 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -3,9 +3,8 @@ package com.hbm.tileentity.bomb; import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; +import com.hbm.handler.CompatHandler; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerLaunchTable; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -13,37 +12,45 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineLaunchTable; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemCustomMissile; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.PartSize; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.packet.toclient.TEMissileMultipartPacket; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.item.IDesignatorItem; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IBufPacketReceiver, IRadarCommandReceiver, CompatHandler.OCComponent { private ItemStack slots[]; @@ -54,7 +61,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public FluidTank[] tanks; public PartSize padSize; public int height; - + public MissileStruct load; private static final int[] access = new int[] { 0 }; @@ -64,8 +71,8 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public TileEntityLaunchTable() { slots = new ItemStack[8]; tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.NONE, 100000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 100000, 1); + tanks[0] = new FluidTank(Fluids.NONE, 100000); + tanks[1] = new FluidTank(Fluids.NONE, 100000); padSize = PartSize.SIZE_10; height = 10; } @@ -159,11 +166,11 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return null; } } - + public long getPowerScaled(long i) { return (power * i) / maxPower; } - + public int getSolidScaled(int i) { return (solid * i) / maxSolid; } @@ -172,32 +179,27 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public void updateEntity() { if (!worldObj.isRemote) { - + updateTypes(); - + if(worldObj.getTotalWorldTime() % 20 == 0) this.updateConnections(); tanks[0].loadTank(2, 6, slots); tanks[1].loadTank(3, 7, slots); - for (int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - power = Library.chargeTEFromItems(slots, 5, power, maxPower); - + if(slots[4] != null && slots[4].getItem() == ModItems.rocket_fuel && solid + 250 <= maxSolid) { - + this.decrStackSize(4, 1); solid += 250; } - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, solid, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, padSize.ordinal(), 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - + + networkPackNT(50); + MissileStruct multipart = getStruct(slots[0]); - + if(multipart != null) PacketDispatcher.wrapper.sendToAllAround(new TEMissileMultipartPacket(xCoord, yCoord, zCoord, multipart), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); else @@ -206,30 +208,54 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide outer: for(int x = -4; x <= 4; x++) { for(int z = -4; z <= 4; z++) { - + if(worldObj.isBlockIndirectlyGettingPowered(xCoord + x, yCoord, zCoord + z) && canLaunch()) { - launch(); + launchFromDesignator(); break outer; } } } } else { - + List entities = worldObj.getEntitiesWithinAABB(EntityMissileCustom.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); - + if(!entities.isEmpty()) { for(int i = 0; i < 15; i++) { boolean dir = worldObj.rand.nextBoolean(); float moX = (float) (dir ? 0 : worldObj.rand.nextGaussian() * 0.65F); float moZ = (float) (!dir ? 0 : worldObj.rand.nextGaussian() * 0.65F); - - MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] {moX, 0, moZ}); + + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posY", yCoord + 0.25); + data.setDouble("posZ", zCoord + 0.5); + data.setString("type", "launchSmoke"); + data.setDouble("moX", moX); + data.setDouble("moY", 0); + data.setDouble("moZ", moZ); + MainRegistry.proxy.effectNT(data); } } } } - + + @Override public void serialize(ByteBuf buf) { + buf.writeLong(power); + buf.writeInt(solid); + buf.writeByte((byte) padSize.ordinal()); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.solid = buf.readInt(); + this.padSize = PartSize.values()[buf.readByte()]; + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } + private void updateConnections() { for(int i = -4; i <= 4; i++) { @@ -237,7 +263,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide this.trySubscribe(worldObj, xCoord + i, yCoord, zCoord - 5, Library.NEG_Z); this.trySubscribe(worldObj, xCoord + 5, yCoord, zCoord + i, Library.POS_X); this.trySubscribe(worldObj, xCoord - 5, yCoord, zCoord + i, Library.NEG_X); - + for(int j = 0; j < 2; j++) { this.trySubscribe(tanks[j].getTankType(), worldObj, xCoord + i, yCoord, zCoord + 5, Library.POS_Z); this.trySubscribe(tanks[j].getTankType(), worldObj, xCoord + i, yCoord, zCoord - 5, Library.NEG_Z); @@ -246,47 +272,86 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide } } } - + public boolean canLaunch() { - - if(power >= maxPower * 0.75 && isMissileValid() && hasDesignator() && hasFuel()) + + if(power >= maxPower * 0.75 && isMissileValid() && hasFuel()) return true; - + return false; } - - public void launch() { + + @Override + public boolean sendCommandEntity(Entity target) { + return sendCommandPosition((int) Math.floor(target.posX), yCoord, (int) Math.floor(target.posX)); + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + if(!canLaunch()) return false; + this.launchTo(x, z); + return true; + } + + public void launchFromDesignator() { + + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); + + if(designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) { + Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); + int tX = (int) Math.floor(coords.xCoord); + int tZ = (int) Math.floor(coords.zCoord); + + this.launchTo(tX, tZ); + } + } + } + + public void launchTo(int tX, int tZ) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); - int tX = slots[1].stackTagCompound.getInteger("xCoord"); - int tZ = slots[1].stackTagCompound.getInteger("zCoord"); - - EntityMissileCustom missile = new EntityMissileCustom(worldObj, xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, tX, tZ, getStruct(slots[0])); + ItemCustomMissilePart chip = (ItemCustomMissilePart) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); + float c = (Float)chip.attributes[0]; + float f = 1.0F; + + if(getStruct(slots[0]).fins != null) { + ItemCustomMissilePart fins = (ItemCustomMissilePart) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "stability")); + f = (Float) fins.attributes[0]; + } + + Vec3 target = Vec3.createVectorHelper(xCoord - tX, 0, zCoord - tZ); + target.xCoord *= c * f; + target.zCoord *= c * f; + + target.rotateAroundY(worldObj.rand.nextFloat() * 360); + + EntityMissileCustom missile = new EntityMissileCustom(worldObj, xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, tX + (int)target.xCoord, tZ + (int)target.zCoord, getStruct(slots[0])); worldObj.spawnEntityInWorld(missile); - + subtractFuel(); - + slots[0] = null; } - + private boolean hasFuel() { return solidState() != 0 && liquidState() != 0 && oxidizerState() != 0; } - + private void subtractFuel() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + float f = (Float)fuselage.attributes[1]; int fuel = (int)f; - + switch((FuelType)fuselage.attributes[0]) { case KEROSENE: tanks[0].setFill(tanks[0].getFill() - fuel); @@ -307,118 +372,118 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide this.solid -= fuel; break; default: break; } - + this.power -= maxPower * 0.75; } - + public static MissileStruct getStruct(ItemStack stack) { - + return ItemCustomMissile.getStruct(stack); } - + public boolean isMissileValid() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return false; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + return fuselage.top == padSize; } - + public boolean hasDesignator() { - + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem && ((IDesignatorItem)slots[1].getItem()).isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) { return true; } - + return false; } - + public int solidState() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return -1; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + if((FuelType)fuselage.attributes[0] == FuelType.SOLID) { - + if(solid >= (Float)fuselage.attributes[1]) return 1; else return 0; } - + return -1; } - + public int liquidState() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return -1; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + switch((FuelType)fuselage.attributes[0]) { case KEROSENE: case HYDROGEN: case XENON: case BALEFIRE: - + if(tanks[0].getFill() >= (Float)fuselage.attributes[1]) return 1; else return 0; default: break; } - + return -1; } - + public int oxidizerState() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return -1; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + switch((FuelType)fuselage.attributes[0]) { case KEROSENE: case HYDROGEN: case BALEFIRE: - + if(tanks[1].getFill() >= (Float)fuselage.attributes[1]) return 1; else return 0; default: break; } - + return -1; } - + public void updateTypes() { - + MissileStruct multipart = getStruct(slots[0]); - + if(multipart == null || multipart.fuselage == null) return; - - ItemMissile fuselage = (ItemMissile)multipart.fuselage; - + + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)multipart.fuselage; + switch((FuelType)fuselage.attributes[0]) { case KEROSENE: tanks[0].setTankType(Fluids.KEROSENE); - tanks[1].setTankType(Fluids.ACID); + tanks[1].setTankType(Fluids.PEROXIDE); break; case HYDROGEN: tanks[0].setTankType(Fluids.HYDROGEN); @@ -429,7 +494,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide break; case BALEFIRE: tanks[0].setTankType(Fluids.BALEFIRE); - tanks[1].setTankType(Fluids.ACID); + tanks[1].setTankType(Fluids.PEROXIDE); break; default: break; } @@ -460,7 +525,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + NBTTagList list = new NBTTagList(); tanks[0].writeToNBT(nbt, "fuel"); @@ -495,51 +560,11 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return false; } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() @@ -561,19 +586,19 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public long getMaxPower() { return this.maxPower; } - + @Override public long transferPower(long power) { - + this.power += power; - + if(this.power > this.getMaxPower()) { - + long overshoot = this.power - this.getMaxPower(); this.power = this.getMaxPower(); return overshoot; } - + return 0; } @@ -597,6 +622,107 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return tanks; } + // do some opencomputer stuff + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_custom_launch_pad"; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getContents(Context context, Arguments args) { + return new Object[] { + tanks[0].getFill(), tanks[0].getMaxFill(), tanks[0].getTankType().getUnlocalizedName(), + tanks[1].getFill(), tanks[1].getMaxFill(), tanks[1].getTankType().getUnlocalizedName(), + solid, maxSolid + }; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getLaunchInfo(Context context, Arguments args) { + return new Object[] {canLaunch(), isMissileValid(), hasDesignator(), hasFuel()}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getCoords(Context context, Arguments args) { + if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + int xCoord2; + int zCoord2; + if (slots[1].stackTagCompound != null) { + xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); + zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); + } else + return new Object[] {false}; + + return new Object[] {xCoord2, zCoord2}; + } + return new Object[] {false, "Designator not found"}; + } + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] setCoords(Context context, Arguments args) { + if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + slots[1].stackTagCompound = new NBTTagCompound(); + slots[1].stackTagCompound.setInteger("xCoord", args.checkInteger(0)); + slots[1].stackTagCompound.setInteger("zCoord", args.checkInteger(1)); + + return new Object[] {true}; + } + return new Object[] {false, "Designator not found"}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] launch(Context context, Arguments args) { + if(this.canLaunch()) { + this.launchFromDesignator(); + return new Object[] {true}; + } + return new Object[] {false}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getEnergyInfo", + "getContents", + "getLaunchInfo", + "getCoords", + "setCoords", + "launch" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch(method) { + case ("getEnergyInfo"): + return getEnergyInfo(context, args); + case ("getContents"): + return getContents(context, args); + case ("getLaunchInfo"): + return getLaunchInfo(context, args); + case ("getCoords"): + return getCoords(context, args); + case ("setCoords"): + return setCoords(context, args); + case ("launch"): + return launch(context, args); + } + throw new NoSuchMethodException(); +} + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerLaunchTable(player.inventory, this); @@ -604,7 +730,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineLaunchTable(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java index 6403145d4..f88b7070b 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java @@ -1,6 +1,6 @@ package com.hbm.tileentity.bomb; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.inventory.container.ContainerNukeFstbmb; import com.hbm.inventory.gui.GUINukeFstbmb; @@ -8,10 +8,10 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IBatteryItem; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; @@ -54,22 +54,29 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU if(timer <= 0) { explode(); } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("timer", timer); - data.setBoolean("loaded", this.isLoaded()); - data.setBoolean("started", started); - networkPack(data, 250); + + networkPackNT(250); } } - - public void networkUnpack(NBTTagCompound data) { - - timer = data.getInteger("timer"); - started = data.getBoolean("started"); - loaded = data.getBoolean("loaded"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeInt(this.timer); + buf.writeBoolean(this.started); + buf.writeBoolean(this.loaded); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.timer = buf.readInt(); + this.started = buf.readBoolean(); + this.loaded = buf.readBoolean(); + } + public void handleButtonPacket(int value, int meta) { if(meta == 0 && this.isLoaded()) { @@ -103,12 +110,12 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU public int getBattery() { if(slots[1] != null && slots[1].getItem() == ModItems.battery_spark && - ((IBatteryItem)ModItems.battery_spark).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_spark).getMaxCharge()) { + ((IBatteryItem)ModItems.battery_spark).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_spark).getMaxCharge(slots[1])) { return 1; } if(slots[1] != null && slots[1].getItem() == ModItems.battery_trixite && - ((IBatteryItem)ModItems.battery_trixite).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_trixite).getMaxCharge()) { + ((IBatteryItem)ModItems.battery_trixite).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_trixite).getMaxCharge(slots[1])) { return 2; } @@ -128,7 +135,7 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU bf.posZ = zCoord + 0.5; bf.destructionRange = (int) 250; worldObj.spawnEntityInWorld(bf); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, 250 * 1.5F, 1000)); + EntityNukeTorex.statFacBale(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 250); } public String getMinutes() { @@ -186,7 +193,7 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeFstbmb(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java index 39a3f4e54..5fdaa194d 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -213,7 +212,7 @@ public class TileEntityNukeBoy extends TileEntity implements ISidedInventory, IG @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeBoy(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java index e52ad8dc1..e245c8669 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java @@ -12,7 +12,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -446,7 +445,7 @@ public class TileEntityNukeCustom extends TileEntity implements ISidedInventory, @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeCustom(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java index 9209af0e7..b843bdb3e 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -222,7 +221,7 @@ public class TileEntityNukeFleija extends TileEntity implements ISidedInventory, @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeFleija(player.inventory, this); } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java index 31e4b24f8..8eb136372 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -275,7 +274,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory, @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeGadget(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java index 0c208e92e..021789895 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -249,7 +248,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory, IG @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeMan(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java index eef1a2dc2..1d924acd1 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -234,7 +233,7 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory, I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeMike(player.inventory, this); } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java index 382858356..099807c3a 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -223,7 +222,7 @@ public class TileEntityNukeN2 extends TileEntity implements ISidedInventory, IGU @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeN2(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java deleted file mode 100644 index 19fe5165d..000000000 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java +++ /dev/null @@ -1,331 +0,0 @@ -package com.hbm.tileentity.bomb; - -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.inventory.container.ContainerNukeN45; -import com.hbm.inventory.gui.GUINukeN45; -import com.hbm.items.ModItems; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.potion.Potion; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityNukeN45 extends TileEntity implements ISidedInventory, IGUIProvider { - - public ItemStack slots[]; - private String customName; - - public boolean primed = false; - - public TileEntityNukeN45() { - slots = new ItemStack[2]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.nukeN45"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() { - - } - - @Override - public void closeInventory() { - - } - - @Override - public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { - return false; - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return new int[0]; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - primed = nbt.getBoolean("primed"); - - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - nbt.setBoolean("primed", primed); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - public void updateEntity() { - - if(!worldObj.isRemote) { - - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, primed ? 1 : 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - - if(primed) { - - if(getType() == 0) { - return; - } - - int rad = 0; - - if(slots[1] != null) { - - if(slots[1].getItem() == ModItems.upgrade_effect_1) - rad = 5; - if(slots[1].getItem() == ModItems.upgrade_effect_2) - rad = 10; - if(slots[1].getItem() == ModItems.upgrade_effect_3) - rad = 15; - } - - if(rad == 0) { - primed = false; - return; - } - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - rad, yCoord + 0.5 - rad, zCoord + 0.5 - rad, xCoord + 0.5 + rad, yCoord + 0.5 + rad, zCoord + 0.5 + rad)); - - for(Object o : list) { - - Entity e = (Entity)o; - - if(e instanceof EntityLivingBase && e.width * e.width * e.height >= 0.5 && !((EntityLivingBase)e).isPotionActive(Potion.invisibility.id)) { - int t = getType(); - this.clearSlots(); - explode(worldObj, xCoord, yCoord, zCoord, t); - break; - } - } - } - } - - } - - public static void explode(World world, int x, int y, int z, int type) { - - if(!world.isRemote) { - world.setBlockToAir(x, y, z); - - //System.out.println(type); - - switch(type) { - case 1: - world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 1.5F, true); - break; - case 2: - world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 4.0F, true); - break; - case 3: - ExplosionLarge.explode(world, x, y, z, 15, true, false, false); - break; - case 4: - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int)(BombConfig.missileRadius * 0.75F), x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.missileRadius * 0.005F * 0.75F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); - break; - } - } - } - - public int getType() { - - if(!primed && slots[1] != null) { - - if(slots[1].getItem() == ModItems.upgrade_effect_1 || - slots[1].getItem() == ModItems.upgrade_effect_2 || - slots[1].getItem() == ModItems.upgrade_effect_3) - return 100; - } - - if(slots[0] != null) { - - if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_cord)) - return 1; - if(slots[0].getItem() == Item.getItemFromBlock(Blocks.tnt)) - return 2; - if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_charge)) - return 3; - if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_nuke)) - return 4; - } - - return 0; - } - - public void clearSlots() { - for(int i = 0; i < slots.length; i++) - { - slots[i] = null; - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerNukeN45(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUINukeN45(player.inventory, this); - } - -} diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java index 3fcc4d460..b3fa2dd11 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java @@ -8,7 +8,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -226,7 +225,7 @@ public class TileEntityNukePrototype extends TileEntity implements ISidedInvento @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukePrototype(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java index 5535654c7..45f5ccbf1 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -220,7 +219,7 @@ public class TileEntityNukeSolinium extends TileEntity implements ISidedInventor @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeSolinium(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java index a604b9271..f01665074 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -232,7 +231,7 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory, I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeTsar(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityTestBombAdvanced.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityTestBombAdvanced.java deleted file mode 100644 index f47eb33f5..000000000 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityTestBombAdvanced.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.hbm.tileentity.bomb; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityTestBombAdvanced extends TileEntity { - -} diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityTestNuke.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityTestNuke.java deleted file mode 100644 index d18dbcc55..000000000 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityTestNuke.java +++ /dev/null @@ -1,222 +0,0 @@ -package com.hbm.tileentity.bomb; - -import com.hbm.inventory.container.ContainerTestNuke; -import com.hbm.inventory.gui.GUITestNuke; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class TileEntityTestNuke extends TileEntity implements ISidedInventory, IGUIProvider { - - private ItemStack slots[]; - private String customName; - - public TileEntityTestNuke() { - slots = new ItemStack[5]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.testNuke"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() { - - } - - @Override - public void closeInventory() { - - } - - @Override - public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { - return false; - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return new int[0]; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return j != 0 || i != 1 || itemStack.getItem() == Items.bucket; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - public int getNukeTier() { - if(this.slots[0] != null && this.slots[1] != null && this.slots[2] != null && this.slots[3] != null && this.slots[4] != null) - { - if(this.slots[0].getItem() == ModItems.test_nuke_tier1_shielding && this.slots[1].getItem() == ModItems.test_nuke_tier1_target && this.slots[2].getItem() == ModItems.test_nuke_tier1_bullet && this.slots[3].getItem() == ModItems.test_nuke_propellant && this.slots[4].getItem() == ModItems.test_nuke_igniter) - { - return 1; - } - if(this.slots[0].getItem() == ModItems.test_nuke_tier2_shielding && this.slots[1].getItem() == ModItems.test_nuke_tier2_target && this.slots[2].getItem() == ModItems.test_nuke_tier2_bullet && this.slots[3].getItem() == ModItems.test_nuke_propellant && this.slots[4].getItem() == ModItems.test_nuke_igniter) - { - return 2; - } - if(this.slots[0].getItem() == Item.getItemFromBlock(Blocks.obsidian) && this.slots[1].getItem() == Items.nether_star && this.slots[2].getItem() == Items.diamond && this.slots[3].getItem() == Item.getItemFromBlock(Blocks.tnt) && this.slots[4].getItem() == Items.repeater) - { - return 999; - } - else - { - return 0; - } - } - else - { - return 0; - } - } - - public void clearSlots() { - for(int i = 0; i < slots.length; i++) - { - slots[i] = null; - } - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerTestNuke(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUITestNuke(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java deleted file mode 100644 index f169b7647..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.tileentity.conductor; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class TileEntityFluidDuct extends TileEntityFluidDuctSimple { - - public TileEntityFluidDuct() { } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java deleted file mode 100644 index 60e93c1fd..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.Library; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.WorldServer; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct { - - private FluidType lastType = Fluids.NONE; - protected FluidType type = Fluids.NONE; - public List uoteab = new ArrayList(); - - - public ForgeDirection[] connections = new ForgeDirection[6]; - - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - this.writeToNBT(nbt); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); - } - - @Override - public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { - this.readFromNBT(pkt.func_148857_g()); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = Fluids.fromID(nbt.getInteger("fluid")); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("fluid", type.getID()); - } - - public boolean setType(FluidType type) { - - if(this.type == type) - return true; - - this.type = type; - this.markDirty(); - - if(worldObj instanceof WorldServer) { - WorldServer world = (WorldServer) worldObj; - world.getPlayerManager().markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return true; - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public void updateEntity() { - /*this.updateConnections(); - - if(lastType != type) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - lastType = type; - }*/ - - if(this.getBlockType() == ModBlocks.fluid_duct) worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_neo); - if(this.getBlockType() == ModBlocks.fluid_duct_solid) worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_paintable); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - public void updateConnections() { - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) connections[0] = ForgeDirection.UP; - else connections[0] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) connections[1] = ForgeDirection.DOWN; - else connections[1] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) connections[2] = ForgeDirection.NORTH; - else connections[2] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) connections[3] = ForgeDirection.EAST; - else connections[3] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) connections[4] = ForgeDirection.SOUTH; - else connections[4] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) connections[5] = ForgeDirection.WEST; - else connections[5] = null; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuct.java deleted file mode 100644 index bcc06b8a4..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuct.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.Library; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityGasDuct extends TileEntity implements IFluidDuct { - - public ForgeDirection[] connections = new ForgeDirection[6]; - public FluidType type = Fluids.GAS; - public List uoteab = new ArrayList(); - - @Override - public void updateEntity() { - - //this.updateConnections(); - - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_neo, 1, 3); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - public void updateConnections() { - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) - connections[0] = ForgeDirection.UP; - else - connections[0] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) - connections[1] = ForgeDirection.DOWN; - else - connections[1] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) - connections[2] = ForgeDirection.NORTH; - else - connections[2] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) - connections[3] = ForgeDirection.EAST; - else - connections[3] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) - connections[4] = ForgeDirection.SOUTH; - else - connections[4] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) - connections[5] = ForgeDirection.WEST; - else - connections[5] = null; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = Fluids.GAS; - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public boolean setType(FluidType type) { - return false; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuctSolid.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuctSolid.java deleted file mode 100644 index a78c2a6e3..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuctSolid.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityGasDuctSolid extends TileEntity implements IFluidDuct { - - public FluidType type = Fluids.GAS; - public List uoteab = new ArrayList(); - - @Override - public void updateEntity() { - - //if(!worldObj.isRemote) - // PacketDispatcher.wrapper.sendToAll(new TEFluidPipePacket(xCoord, yCoord, zCoord, type)); - - //this.updateConnections(); - - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_paintable); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public boolean setType(FluidType type) { - return false; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuct.java deleted file mode 100644 index 9db606172..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuct.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.Library; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityOilDuct extends TileEntity implements IFluidDuct { - - public ForgeDirection[] connections = new ForgeDirection[6]; - public FluidType type = Fluids.OIL; - public List uoteab = new ArrayList(); - - public TileEntityOilDuct() { - - } - - @Override - public void updateEntity() { - - //if(!worldObj.isRemote) - // PacketDispatcher.wrapper.sendToAll(new TEFluidPipePacket(xCoord, yCoord, zCoord, type)); - - //this.updateConnections(); - - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_neo, 2, 3); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - public void updateConnections() { - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) connections[0] = ForgeDirection.UP; - else connections[0] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) connections[1] = ForgeDirection.DOWN; - else connections[1] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) connections[2] = ForgeDirection.NORTH; - else connections[2] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) connections[3] = ForgeDirection.EAST; - else connections[3] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) connections[4] = ForgeDirection.SOUTH; - else connections[4] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) connections[5] = ForgeDirection.WEST; - else connections[5] = null; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) - { - super.readFromNBT(nbt); - type = Fluids.OIL; - } - - @Override - public void writeToNBT(NBTTagCompound nbt) - { - super.writeToNBT(nbt); - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public boolean setType(FluidType type) { - return false; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuctSolid.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuctSolid.java deleted file mode 100644 index 940494cbc..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuctSolid.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityOilDuctSolid extends TileEntity implements IFluidDuct { - - public FluidType type = Fluids.OIL; - public List uoteab = new ArrayList(); - - @Override - public void updateEntity() { - - //if(!worldObj.isRemote) - // PacketDispatcher.wrapper.sendToAll(new TEFluidPipePacket(xCoord, yCoord, zCoord, type)); - - //this.updateConnections(); - - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_paintable); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public boolean setType(FluidType type) { - return false; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityRFDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityRFDuct.java deleted file mode 100644 index 1054a5b41..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityRFDuct.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.hbm.tileentity.conductor; - -import cofh.api.energy.EnergyStorage; -import cofh.api.energy.IEnergyConnection; -import cofh.api.energy.IEnergyHandler; -import cofh.api.energy.IEnergyReceiver; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityRFDuct extends TileEntity implements IEnergyHandler { - - public ForgeDirection[] connections = new ForgeDirection[6]; - protected EnergyStorage storage; - public int output; - - public TileEntityRFDuct(int output) { - this.output = output; - this.storage = new EnergyStorage(200); - - storage.setMaxReceive(output); - storage.setMaxExtract(output); - storage.setMaxTransfer(output); - } - - public void updateEntity() { - this.updateConnections(); - - if (storage.getEnergyStored() > 0) { - for (int i = 0; i < 6; i++) { - - int targetX = xCoord + ForgeDirection.getOrientation(i).offsetX; - int targetY = yCoord + ForgeDirection.getOrientation(i).offsetY; - int targetZ = zCoord + ForgeDirection.getOrientation(i).offsetZ; - - TileEntity tile = worldObj.getTileEntity(targetX, targetY, targetZ); - if (tile instanceof IEnergyReceiver) { - int maxExtract = storage.getMaxExtract(); - int maxAvailable = storage.extractEnergy(maxExtract, true); - int energyTransferred = ((IEnergyReceiver) tile) - .receiveEnergy(ForgeDirection.getOrientation(i).getOpposite(), maxAvailable, false); - - storage.extractEnergy(energyTransferred, false); - } - } - } - - } - - public void updateConnections() { - if (this.worldObj.getTileEntity(xCoord, yCoord + 1, zCoord) instanceof IEnergyConnection) - connections[0] = ForgeDirection.UP; - else - connections[0] = null; - - if (this.worldObj.getTileEntity(xCoord, yCoord - 1, zCoord) instanceof IEnergyConnection) - connections[1] = ForgeDirection.DOWN; - else - connections[1] = null; - - if (this.worldObj.getTileEntity(xCoord, yCoord, zCoord - 1) instanceof IEnergyConnection) - connections[2] = ForgeDirection.NORTH; - else - connections[2] = null; - - if (this.worldObj.getTileEntity(xCoord, yCoord, zCoord + 1) instanceof IEnergyConnection) - connections[3] = ForgeDirection.SOUTH; - else - connections[3] = null; - - if (this.worldObj.getTileEntity(xCoord + 1, yCoord, zCoord) instanceof IEnergyConnection) - connections[4] = ForgeDirection.EAST; - else - connections[4] = null; - - if (this.worldObj.getTileEntity(xCoord - 1, yCoord, zCoord) instanceof IEnergyConnection) - connections[5] = ForgeDirection.WEST; - else - connections[5] = null; - } - - public boolean onlyOneOpposite(ForgeDirection[] directions) { - ForgeDirection mainDirection = null; - boolean isOpposite = false; - - for (int i = 0; i < directions.length; i++) { - - if (mainDirection == null && directions[i] != null) - mainDirection = directions[i]; - - if (directions[i] != null && mainDirection != directions[i]) { - if (!isOpposite(mainDirection, directions[i])) - return false; - else - isOpposite = true; - } - } - - return isOpposite; - } - - public boolean isOpposite(ForgeDirection firstDirection, ForgeDirection secondDirection) { - - if ((firstDirection.equals(ForgeDirection.NORTH) && secondDirection.equals(ForgeDirection.SOUTH)) - || firstDirection.equals(ForgeDirection.SOUTH) && secondDirection.equals(ForgeDirection.NORTH)) - return true; - - if ((firstDirection.equals(ForgeDirection.EAST) && secondDirection.equals(ForgeDirection.WEST)) - || firstDirection.equals(ForgeDirection.WEST) && secondDirection.equals(ForgeDirection.EAST)) - return true; - - if ((firstDirection.equals(ForgeDirection.UP) && secondDirection.equals(ForgeDirection.DOWN)) - || firstDirection.equals(ForgeDirection.DOWN) && secondDirection.equals(ForgeDirection.UP)) - return true; - - return false; - } - - @Override - public boolean canConnectEnergy(ForgeDirection from) { - return true; - } - - @Override - public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { - return this.storage.receiveEnergy(Math.min(output, maxReceive), simulate); - } - - @Override - public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { - - return storage.extractEnergy(storage.getMaxExtract(), simulate); - } - - @Override - public int getEnergyStored(ForgeDirection from) { - return storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(ForgeDirection from) { - return storage.getMaxEnergyStored(); - } - -} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java b/src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java deleted file mode 100644 index ea08b8e6a..000000000 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.hbm.tileentity.deco; - -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; - -public class TileEntityBomber extends TileEntity { - - public int yaw; - public int pitch; - public int type = 1; - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, yaw, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, pitch, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, type, 2), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - } - } - - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - - yaw = nbt.getInteger("bomberYaw"); - pitch = nbt.getInteger("bomberPitch"); - type = nbt.getInteger("bomberType"); - } - - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("bomberYaw", yaw); - nbt.setInteger("bomberPitch", pitch); - nbt.setInteger("bomberType", type); - } - -} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java b/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java index 122e52ba3..ac6bfec24 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java @@ -7,8 +7,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.particle.EntityOrangeFX; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.entity.projectile.EntityWaterSplash; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java new file mode 100644 index 000000000..a3db452bb --- /dev/null +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java @@ -0,0 +1,53 @@ +package com.hbm.tileentity.deco; + +import java.util.List; + +import com.hbm.entity.mob.glyphid.EntityGlyphid; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityLantern extends TileEntity { + + @Override + public void updateEntity() { + + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 20 == 0) { + + List glyphids = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 5.5, zCoord + 0.5, xCoord + 0.5, yCoord + 5.5, zCoord + 0.5).expand(7.5, 7.5, 7.5)); + + for(EntityGlyphid glyphid : glyphids) { + glyphid.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 0)); + } + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord, + yCoord, + zCoord, + xCoord + 1, + yCoord + 6, + zCoord + 1 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java new file mode 100644 index 000000000..eb5e45113 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java @@ -0,0 +1,155 @@ +package com.hbm.tileentity.deco; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.missile.EntityBobmazon; +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import com.hbm.items.special.ItemKitCustom; +import com.hbm.tileentity.IRepairable; + +import com.hbm.tileentity.TileEntityLoadedBase; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class TileEntityLanternBehemoth extends TileEntityLoadedBase implements IRepairable { + + public boolean isBroken = false; + public int comTimer = -1; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(comTimer == 360) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornNearSingle", 10F, 1F); + if(comTimer == 280) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornFarSingle", 10000F, 1F); + if(comTimer == 220) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornNearDual", 10F, 1F); + if(comTimer == 100) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornFarDual", 10000F, 1F); + + if(comTimer == 0) { + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord - 10, yCoord - 10, zCoord - 10, xCoord + 11, yCoord + 11, zCoord + 11)); + EntityPlayer first = players.isEmpty() ? null : players.get(0); + boolean bonus = first == null ? false : (HbmPlayerProps.getData(first).reputation >= 10); + EntityBobmazon shuttle = new EntityBobmazon(worldObj); + shuttle.posX = xCoord + 0.5 + worldObj.rand.nextGaussian() * 10; + shuttle.posY = 300; + shuttle.posZ = zCoord + 0.5 + worldObj.rand.nextGaussian() * 10; + ItemStack payload = ItemKitCustom.create("Supplies", null, 0xffffff, 0x008000, + DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC, 4 + worldObj.rand.nextInt(4)), + DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED, 4 + worldObj.rand.nextInt(2)), + bonus ? new ItemStack(ModItems.gem_alexandrite) : new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), + new ItemStack(Blocks.red_flower)); + shuttle.payload = payload; + + worldObj.spawnEntityInWorld(shuttle); + } + + if(comTimer >= 0) { + comTimer--; + } + + networkPackNT(250); + } + } + + @Override + public void invalidate() { + super.invalidate(); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord - 50, yCoord - 50, zCoord - 50, xCoord + 51, yCoord + 51, zCoord + 51)); + for(EntityPlayer player : players) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + if(props.reputation > -10) props.reputation--; + } + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.isBroken); + } + + @Override + public void deserialize(ByteBuf buf) { + this.isBroken = buf.readBoolean(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + isBroken = nbt.getBoolean("isBroken"); + comTimer = nbt.getInteger("comTimer"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isBroken", isBroken); + nbt.setInteger("comTimer", comTimer); + } + + @Override + public boolean isDamaged() { + return isBroken; + } + + List repair = new ArrayList(); + @Override + public List getRepairMaterials() { + + if(!repair.isEmpty()) + return repair; + + repair.add(new OreDictStack(OreDictManager.STEEL.plate(), 2)); + repair.add(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC)); + return repair; + } + + @Override + public void repair() { + this.isBroken = false; + this.comTimer = 400; + this.markDirty(); + } + + @Override public void tryExtinguish(World world, int x, int y, int z, EnumExtinguishType type) { } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord, + yCoord, + zCoord, + xCoord + 1, + yCoord + 6, + zCoord + 1 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityTestRender.java b/src/main/java/com/hbm/tileentity/deco/TileEntityTestRender.java deleted file mode 100644 index 251dbc96a..000000000 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityTestRender.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.hbm.tileentity.deco; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityTestRender extends TileEntity { - -} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java b/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java index af014a09c..c35d0d795 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java @@ -6,9 +6,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.TrappedBrick.Trap; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.entity.projectile.EntityRubble; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.items.ModItems; import net.minecraft.entity.monster.EntityCaveSpider; @@ -77,11 +75,7 @@ public class TileEntityTrappedBrick extends TileEntity { worldObj.setBlock(xCoord, yCoord - 1 - i, zCoord, ModBlocks.concrete_pillar); break; case POISON_DART: - EntityBulletBase dart = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.G20_CAUSTIC); - dart.setPosition(xCoord + 0.5 + dir.offsetX, yCoord + 0.5, zCoord + 0.5 + dir.offsetZ); - dart.motionX = dir.offsetX; - dart.motionZ = dir.offsetZ; - worldObj.spawnEntityInWorld(dart); + //TBI break; case ZOMBIE: EntityZombie zombie = new EntityZombie(worldObj); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java deleted file mode 100644 index 9be891eba..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSBase.java +++ /dev/null @@ -1,548 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerAMSBase; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIAMSBase; -import com.hbm.items.ISatChip; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCatalyst; -import com.hbm.items.special.ItemAMSCore; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.SatelliteResonator; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IFluidContainer, IFluidAcceptor, IGUIProvider { - - private ItemStack slots[]; - - public long power = 0; - public static final long maxPower = 1000000000000000L; - public int field = 0; - public static final int maxField = 100; - public int efficiency = 0; - public static final int maxEfficiency = 100; - public int heat = 0; - public static final int maxHeat = 5000; - public int age = 0; - public int warning = 0; - public int mode = 0; - public boolean locked = false; - public FluidTank[] tanks; - public int color = -1; - - Random rand = new Random(); - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0 }; - private static final int[] slots_side = new int[] { 0 }; - - private String customName; - - public TileEntityAMSBase() { - slots = new ItemStack[16]; - tanks = new FluidTank[4]; - tanks[0] = new FluidTank(Fluids.COOLANT, 8000, 0); - tanks[1] = new FluidTank(Fluids.CRYOGEL, 8000, 1); - tanks[2] = new FluidTank(Fluids.DEUTERIUM, 8000, 2); - tanks[3] = new FluidTank(Fluids.TRITIUM, 8000, 3); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.amsBase"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tanks[0].readFromNBT(nbt, "coolant1"); - tanks[1].readFromNBT(nbt, "coolant2"); - tanks[2].readFromNBT(nbt, "fuel1"); - tanks[3].readFromNBT(nbt, "fuel2"); - field = nbt.getInteger("field"); - efficiency = nbt.getInteger("efficiency"); - heat = nbt.getInteger("heat"); - locked = nbt.getBoolean("locked"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - tanks[0].writeToNBT(nbt, "coolant1"); - tanks[1].writeToNBT(nbt, "coolant2"); - tanks[2].writeToNBT(nbt, "fuel1"); - tanks[3].writeToNBT(nbt, "fuel2"); - nbt.setInteger("field", field); - nbt.setInteger("efficiency", efficiency); - nbt.setInteger("heat", heat); - nbt.setBoolean("locked", locked); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - for(int i = 0; i < tanks.length; i++) - tanks[i].setFill(tanks[i].getMaxFill()); - - if(!locked) { - - age++; - if(age >= 20) - { - age = 0; - } - - tanks[0].setType(0, 1, slots); - tanks[1].setType(2, 3, slots); - tanks[2].setType(4, 5, slots); - tanks[3].setType(6, 7, slots); - - for(int i = 0; i < 4; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - int f1 = 0, f2 = 0, f3 = 0, f4 = 0; - int booster = 0; - - if(worldObj.getTileEntity(xCoord + 6, yCoord, zCoord) instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter te = (TileEntityAMSLimiter)worldObj.getTileEntity(xCoord + 6, yCoord, zCoord); - if(!te.locked && worldObj.getBlockMetadata(xCoord + 6, yCoord, zCoord) == 4) { - f1 = te.efficiency; - if(te.mode == 2) - booster++; - } - } - if(worldObj.getTileEntity(xCoord - 6, yCoord, zCoord) instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter te = (TileEntityAMSLimiter)worldObj.getTileEntity(xCoord - 6, yCoord, zCoord); - if(!te.locked && worldObj.getBlockMetadata(xCoord - 6, yCoord, zCoord) == 5) { - f2 = te.efficiency; - if(te.mode == 2) - booster++; - } - } - if(worldObj.getTileEntity(xCoord, yCoord, zCoord + 6) instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter te = (TileEntityAMSLimiter)worldObj.getTileEntity(xCoord, yCoord, zCoord + 6); - if(!te.locked && worldObj.getBlockMetadata(xCoord, yCoord, zCoord + 6) == 2) { - f3 = te.efficiency; - if(te.mode == 2) - booster++; - } - } - if(worldObj.getTileEntity(xCoord, yCoord, zCoord - 6) instanceof TileEntityAMSLimiter) { - TileEntityAMSLimiter te = (TileEntityAMSLimiter)worldObj.getTileEntity(xCoord, yCoord, zCoord - 6); - if(!te.locked && worldObj.getBlockMetadata(xCoord, yCoord, zCoord - 6) == 3) { - f4 = te.efficiency; - if(te.mode == 2) - booster++; - } - } - - this.field = Math.round(calcField(f1, f2, f3, f4)); - - mode = 0; - if(field > 0) - mode = 1; - if(booster > 0) - mode = 2; - - if(worldObj.getTileEntity(xCoord, yCoord + 9, zCoord) instanceof TileEntityAMSEmitter) { - TileEntityAMSEmitter te = (TileEntityAMSEmitter)worldObj.getTileEntity(xCoord, yCoord + 9, zCoord); - this.efficiency = te.efficiency; - } - - this.color = -1; - - float heatMod = 1; - float fuelMod = 1; - int heatBase = 0; - int fuelBase = 0; - - if(slots[8] != null && slots[9] != null && slots[10] != null && slots[11] != null && slots[12] != null && - slots[8].getItem() instanceof ItemCatalyst && slots[9].getItem() instanceof ItemCatalyst && - slots[10].getItem() instanceof ItemCatalyst && slots[11].getItem() instanceof ItemCatalyst && - slots[12].getItem() instanceof ItemAMSCore && hasResonators() && efficiency > 0) { - int a = ((ItemCatalyst)slots[8].getItem()).getColor(); - int b = ((ItemCatalyst)slots[9].getItem()).getColor(); - int c = ((ItemCatalyst)slots[10].getItem()).getColor(); - int d = ((ItemCatalyst)slots[11].getItem()).getColor(); - - int e = this.calcAvgHex(a, b); - int f = this.calcAvgHex(c, d); - - int g = this.calcAvgHex(e, f); - - this.color = g; - - - for(int i = 8; i < 12; i++) { - heatMod *= ItemCatalyst.getHeatMod(slots[i]); - fuelMod *= ItemCatalyst.getFuelMod(slots[i]); - } - - heatBase = ItemAMSCore.getHeatBase(slots[12]); - fuelBase = ItemAMSCore.getFuelBase(slots[12]); - - heatBase *= Math.pow(1.25F, booster); - heatBase *= (100 - field); - - if(this.getFuelPower(tanks[2].getTankType()) > 0 && this.getFuelPower(tanks[3].getTankType()) > 0 && - tanks[2].getFill() > 0 && tanks[3].getFill() > 0) { - - //power += (powerBase * powerMod * gauss(1, (heat - (maxHeat / 2)) / maxHeat)) / 1000 * getFuelPower(tanks[2].getTankType()) * getFuelPower(tanks[3].getTankType()); - heat += (heatBase * heatMod) / (float)(this.field / 100F); - tanks[2].setFill((int)(tanks[2].getFill() - fuelBase * fuelMod)); - tanks[3].setFill((int)(tanks[3].getFill() - fuelBase * fuelMod)); - if(tanks[2].getFill() <= 0) - tanks[2].setFill(0); - if(tanks[3].getFill() <= 0) - tanks[3].setFill(0); - - if(heat > maxHeat) { - heat = maxHeat; - } - } - } - - if(power > maxPower) - power = maxPower; - - - if(heat > 0 && tanks[0].getFill() > 0 && tanks[1].getFill() > 0) { - heat -= (this.getCoolingStrength(tanks[0].getTankType()) * this.getCoolingStrength(tanks[1].getTankType())); - - tanks[0].setFill(tanks[0].getFill() - 10); - tanks[1].setFill(tanks[1].getFill() - 10); - - if(tanks[0].getFill() < 0) - tanks[0].setFill(0); - if(tanks[1].getFill() < 0) - tanks[1].setFill(0); - - if(heat < 0) - heat = 0; - } - - } else { - field = 0; - efficiency = 0; - power = 0; - warning = 3; - } - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, locked ? 1 : 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, color, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, efficiency, 2), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, field, 3), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - } - } - - private int getCoolingStrength(FluidType type) { - - if(type == Fluids.WATER) return 5; - if(type == Fluids.OIL) return 15; - if(type == Fluids.COOLANT) return this.heat / 250; - if(type == Fluids.CRYOGEL) return this.heat > heat/2 ? 25 : 5; - return 0; - } - - private int getFuelPower(FluidType type) { - if(type == Fluids.DEUTERIUM) return 50; - if(type == Fluids.TRITIUM) return 75; - return 0; - } - - private float calcField(int a, int b, int c, int d) { - return (float)(a + b + c + d) * (a * 25 + b * 25 + c * 25 + d * 25) / 40000; - } - - private int calcAvgHex(int h1, int h2) { - - int r1 = ((h1 & 0xFF0000) >> 16); - int g1 = ((h1 & 0x00FF00) >> 8); - int b1 = ((h1 & 0x0000FF) >> 0); - - int r2 = ((h2 & 0xFF0000) >> 16); - int g2 = ((h2 & 0x00FF00) >> 8); - int b2 = ((h2 & 0x0000FF) >> 0); - - int r = (((r1 + r2) / 2) << 16); - int g = (((g1 + g2) / 2) << 8); - int b = (((b1 + b2) / 2) << 0); - - return r | g | b; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getEfficiencyScaled(int i) { - return (efficiency * i) / maxEfficiency; - } - - public int getFieldScaled(int i) { - return (field * i) / maxField; - } - - public int getHeatScaled(int i) { - return (heat * i) / maxHeat; - } - - public boolean hasResonators() { - - if(slots[13] != null && slots[14] != null && slots[15] != null && - slots[13].getItem() == ModItems.sat_chip && slots[14].getItem() == ModItems.sat_chip && slots[15].getItem() == ModItems.sat_chip) { - - SatelliteSavedData data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - if(data == null) { - worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData()); - data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - } - data.markDirty(); - - int i1 = ISatChip.getFreqS(slots[13]); - int i2 = ISatChip.getFreqS(slots[14]); - int i3 = ISatChip.getFreqS(slots[15]); - - if(data.getSatFromFreq(i1) != null && data.getSatFromFreq(i2) != null && data.getSatFromFreq(i3) != null && - data.getSatFromFreq(i1) instanceof SatelliteResonator && data.getSatFromFreq(i2) instanceof SatelliteResonator && data.getSatFromFreq(i3) instanceof SatelliteResonator && - i1 != i2 && i1 != i3 && i2 != i3) - return true; - - } - - return true; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getMaxFill(); - else if(type.name().equals(tanks[3].getTankType().name())) - return tanks[3].getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - else if(type.name().equals(tanks[3].getTankType().name())) - tanks[3].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else if(type.name().equals(tanks[3].getTankType().name())) - return tanks[3].getFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 4 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 4 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerAMSBase(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIAMSBase(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java deleted file mode 100644 index 3595c47ea..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSEmitter.java +++ /dev/null @@ -1,425 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerAMSEmitter; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIAMSEmitter; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityAMSEmitter extends TileEntity implements ISidedInventory, IFluidContainer, IFluidAcceptor, IGUIProvider { - - private ItemStack slots[]; - - public long power = 0; - public static final long maxPower = 100000000; - public int efficiency = 0; - public static final int maxEfficiency = 100; - public int heat = 0; - public static final int maxHeat = 2500; - public int age = 0; - public int warning = 0; - public boolean locked = false; - public FluidTank tank; - - Random rand = new Random(); - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0 }; - private static final int[] slots_side = new int[] { 0 }; - - private String customName; - - public TileEntityAMSEmitter() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.COOLANT, 16000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.amsEmitter"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tank.readFromNBT(nbt, "coolant"); - efficiency = nbt.getInteger("efficiency"); - heat = nbt.getInteger("heat"); - locked = nbt.getBoolean("locked"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - tank.writeToNBT(nbt, "coolant"); - nbt.setInteger("efficiency", efficiency); - nbt.setInteger("heat", heat); - nbt.setBoolean("locked", locked); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - if(!locked) { - - tank.setType(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if(power > 0) { - //" - (maxHeat / 2)" offsets center to 50% instead of 0% - efficiency = Math.round(calcEffect(power, heat - (maxHeat / 2)) * 100); - power -= Math.ceil(power * 0.025); - warning = 0; - } else { - efficiency = 0; - warning = 1; - } - - if(tank.getTankType() == Fluids.CRYOGEL) { - - if(tank.getFill() >= 15) { - if(heat > 0) - tank.setFill(tank.getFill() - 15); - - if(heat <= maxHeat / 2) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 10; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 10; i++) - if(heat > maxHeat / 2) - heat--; - } else { - heat += efficiency; - } - } else if(tank.getTankType() == Fluids.COOLANT) { - - if(tank.getFill() >= 15) { - if(heat > 0) - tank.setFill(tank.getFill() - 15); - - if(heat <= maxHeat / 4) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 5; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 5; i++) - if(heat > maxHeat / 4) - heat--; - } else { - heat += efficiency; - } - } else if(tank.getTankType() == Fluids.WATER) { - - if(tank.getFill() >= 45) { - if(heat > 0) - tank.setFill(tank.getFill() - 45); - - if(heat <= maxHeat * 0.85) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 2; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 2; i++) - if(heat > maxHeat * 0.85) - heat--; - } else { - heat += efficiency; - } - } else { - heat += efficiency; - warning = 2; - } - - if(slots[2] != null) { - if(slots[2].getItem() != ModItems.ams_muzzle) { - this.efficiency = 0; - this.warning = 2; - } - } else { - this.efficiency = 0; - this.warning = 2; - } - - if(tank.getFill() <= 5 || heat > maxHeat * 0.9) - warning = 2; - - if(heat > maxHeat) { - heat = maxHeat; - locked = true; - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 3); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 2.5); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 2); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 1.5); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 36, 1); - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:entity.oldExplosion", 10.0F, 1); - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.shutdown", 10.0F, 1.0F); - } - - power = Library.chargeTEFromItems(slots, 3, power, maxPower); - - } else { - //fire particles n stuff - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord - 0.5, zCoord + 0.5, rand.nextInt(10), 1); - - efficiency = 0; - power = 0; - warning = 3; - } - - tank.setTankType(Fluids.CRYOGEL); - tank.setFill(tank.getMaxFill()); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, locked ? 1 : 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, efficiency, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - } - } - - private float gauss(float a, float x) { - - //Greater values -> less difference of temperate impact - double amplifier = 0.10; - - return (float) ( (1/Math.sqrt(a * Math.PI)) * Math.pow(Math.E, -1 * Math.pow(x, 2)/amplifier) ); - } - - private float calcEffect(float a, float x) { - return (float) (gauss( 1 / a, x / maxHeat) * Math.sqrt(Math.PI * 2) / (Math.sqrt(2) * Math.sqrt(maxPower))); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getEfficiencyScaled(int i) { - return (efficiency * i) / maxEfficiency; - } - - public int getHeatScaled(int i) { - return (heat * i) / maxHeat; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerAMSEmitter(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIAMSEmitter(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java deleted file mode 100644 index 2d8163463..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java +++ /dev/null @@ -1,435 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerAMSLimiter; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIAMSLimiter; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.util.ParticleUtil; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, IFluidContainer, IFluidAcceptor, IGUIProvider { - - private ItemStack slots[]; - - public long power = 0; - public static final long maxPower = 10000000; - public int efficiency = 0; - public static final int maxEfficiency = 100; - public int heat = 0; - public static final int maxHeat = 2500; - public int age = 0; - public int warning = 0; - public int mode = 0; - public boolean locked = false; - public FluidTank tank; - - Random rand = new Random(); - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0 }; - private static final int[] slots_side = new int[] { 0 }; - - private String customName; - - public TileEntityAMSLimiter() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.COOLANT, 8000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.amsLimiter"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tank.readFromNBT(nbt, "coolant"); - efficiency = nbt.getInteger("efficiency"); - heat = nbt.getInteger("heat"); - locked = nbt.getBoolean("locked"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - tank.writeToNBT(nbt, "coolant"); - nbt.setInteger("efficiency", efficiency); - nbt.setInteger("heat", heat); - nbt.setBoolean("locked", locked); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - if(!locked) { - - tank.setType(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if(power > 0) { - //" - (maxHeat / 2)" offsets center to 50% instead of 0% - efficiency = Math.round(calcEffect(power, heat - (maxHeat / 2)) * 100); - power -= Math.ceil(power * 0.025); - warning = 0; - } else { - efficiency = 0; - warning = 1; - } - - if(tank.getTankType() == Fluids.CRYOGEL) { - - if(tank.getFill() >= 5) { - if(heat > 0) - tank.setFill(tank.getFill() - 5); - - if(heat <= maxHeat / 2) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 10; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 10; i++) - if(heat > maxHeat / 2) - heat--; - } else { - heat += efficiency; - } - } else if(tank.getTankType() == Fluids.COOLANT) { - - if(tank.getFill() >= 5) { - if(heat > 0) - tank.setFill(tank.getFill() - 5); - - if(heat <= maxHeat / 4) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 5; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 5; i++) - if(heat > maxHeat / 4) - heat--; - } else { - heat += efficiency; - } - } else if(tank.getTankType() == Fluids.WATER) { - - if(tank.getFill() >= 15) { - if(heat > 0) - tank.setFill(tank.getFill() - 15); - - if(heat <= maxHeat * 0.85) - if(efficiency > 0) - heat += efficiency; - else - for(int i = 0; i < 2; i++) - if(heat > 0) - heat--; - - for(int i = 0; i < 2; i++) - if(heat > maxHeat * 0.85) - heat--; - } else { - heat += efficiency; - } - } else { - heat += efficiency; - warning = 2; - } - - mode = 0; - if(slots[2] != null) { - if(slots[2].getItem() == ModItems.ams_focus_limiter) - mode = 1; - else if(slots[2].getItem() == ModItems.ams_focus_booster) - mode = 2; - else { - this.efficiency = 0; - this.warning = 2; - } - } else { - this.efficiency = 0; - this.warning = 2; - } - - if(tank.getFill() <= 5 || heat > maxHeat * 0.9) - warning = 2; - - if(heat > maxHeat) { - heat = maxHeat; - locked = true; - ExplosionLarge.spawnShock(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 24, 3); - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord, zCoord + 0.5, 24, 3); - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:entity.oldExplosion", 10.0F, 1); - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.shutdown", 10.0F, 1.0F); - } - - power = Library.chargeTEFromItems(slots, 3, power, maxPower); - - } else { - //fire particles n stuff - int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); - double pos = rand.nextDouble() * 2.5; - double off = 0.25; - if(meta == 2) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 + off, yCoord + 5.5, zCoord + 0.5 - pos, 0.0, 0.0, 0.0); - if(meta == 3) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 - off, yCoord + 5.5, zCoord + 0.5 + pos, 0.0, 0.0, 0.0); - if(meta == 4) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 - pos, yCoord + 5.5, zCoord + 0.5 - off, 0.0, 0.0, 0.0); - if(meta == 5) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 + pos, yCoord + 5.5, zCoord + 0.5 + off, 0.0, 0.0, 0.0); - - efficiency = 0; - power = 0; - warning = 3; - } - - tank.setTankType(Fluids.CRYOGEL); - tank.setFill(tank.getMaxFill()); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, locked ? 1 : 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, efficiency, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - } - } - - private float gauss(float a, float x) { - - //Greater values -> less difference of temperate impact - double amplifier = 0.10; - - return (float) ( (1/Math.sqrt(a * Math.PI)) * Math.pow(Math.E, -1 * Math.pow(x, 2)/amplifier) ); - } - - private float calcEffect(float a, float x) { - return (float) (gauss( 1 / a, x / maxHeat) * Math.sqrt(Math.PI * 2) / (Math.sqrt(2) * Math.sqrt(maxPower))); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getEfficiencyScaled(int i) { - return (efficiency * i) / maxEfficiency; - } - - public int getHeatScaled(int i) { - return (heat * i) / maxHeat; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerAMSLimiter(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIAMSLimiter(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java new file mode 100644 index 000000000..b99ea830a --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java @@ -0,0 +1,224 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.container.ContainerAshpit; +import com.hbm.inventory.gui.GUIAshpit; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvider, IConfigurableMachine { + + private int playersUsing = 0; + public float doorAngle = 0; + public float prevDoorAngle = 0; + public boolean isFull; + + public int ashLevelWood; + public int ashLevelCoal; + public int ashLevelMisc; + public int ashLevelFly; + public int ashLevelSoot; + + //Configurable values + public static int thresholdWood = 2000; + public static int thresholdCoal = 2000; + public static int thresholdMisc = 2000; + public static int thresholdFly = 2000; + public static int thresholdSoot = 8000; + + public TileEntityAshpit() { + super(5); + } + + @Override + public String getConfigName() { + return "ashpit"; + } + + @Override + public void readIfPresent(JsonObject obj) { + thresholdWood = IConfigurableMachine.grab(obj, "I:thresholdWood", thresholdWood); + thresholdCoal = IConfigurableMachine.grab(obj, "I:thresholdCoal", thresholdCoal); + thresholdMisc = IConfigurableMachine.grab(obj, "I:thresholdMisc", thresholdMisc); + thresholdFly = IConfigurableMachine.grab(obj, "I:thresholdFly", thresholdFly); + thresholdSoot = IConfigurableMachine.grab(obj, "I:thresholdSoot", thresholdSoot); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:thresholdWood").value(thresholdWood); + writer.name("I:thresholdCoal").value(thresholdCoal); + writer.name("I:thresholdMisc").value(thresholdMisc); + writer.name("I:thresholdFly").value(thresholdFly); + writer.name("I:thresholdSoot").value(thresholdSoot); + } + + @Override + public void openInventory() { + if(!worldObj.isRemote) this.playersUsing++; + } + + @Override + public void closeInventory() { + if(!worldObj.isRemote) this.playersUsing--; + } + + @Override + public String getName() { + return "container.ashpit"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + + if(processAsh(ashLevelWood, EnumAshType.WOOD, thresholdWood)) ashLevelWood -= thresholdWood; + if(processAsh(ashLevelCoal, EnumAshType.COAL, thresholdCoal)) ashLevelCoal -= thresholdCoal; + if(processAsh(ashLevelMisc, EnumAshType.MISC, thresholdMisc)) ashLevelMisc -= thresholdMisc; + if(processAsh(ashLevelFly, EnumAshType.FLY, thresholdFly)) ashLevelFly -= thresholdFly; + if(processAsh(ashLevelSoot, EnumAshType.SOOT, thresholdSoot)) ashLevelSoot -= thresholdSoot; + + isFull = false; + + for(int i = 0; i < 5; i++) { + if(slots[i] != null) isFull = true; + } + + this.networkPackNT(50); + + } else { + this.prevDoorAngle = this.doorAngle; + float swingSpeed = (doorAngle / 10F) + 3; + + if(this.playersUsing > 0) { + this.doorAngle += swingSpeed; + } else { + this.doorAngle -= swingSpeed; + } + + this.doorAngle = MathHelper.clamp_float(this.doorAngle, 0F, 135F); + } + } + + protected boolean processAsh(int level, EnumAshType type, int threshold) { + + if(level >= threshold) { + for(int i = 0; i < 5; i++) { + if(slots[i] == null) { + slots[i] = DictFrame.fromOne(ModItems.powder_ash, type); + ashLevelWood -= threshold; + return true; + } else if(slots[i].stackSize < slots[i].getMaxStackSize() && slots[i].getItem() == ModItems.powder_ash && slots[i].getItemDamage() == type.ordinal()) { + slots[i].stackSize++; + return true; + } + } + } + + return false; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeInt(this.playersUsing); + buf.writeBoolean(this.isFull); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.playersUsing = buf.readInt(); + this.isFull = buf.readBoolean(); + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 0, 1, 2, 3, 4 }; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.ashLevelWood = nbt.getInteger("ashLevelWood"); + this.ashLevelCoal = nbt.getInteger("ashLevelCoal"); + this.ashLevelMisc = nbt.getInteger("ashLevelMisc"); + this.ashLevelFly = nbt.getInteger("ashLevelFly"); + this.ashLevelSoot = nbt.getInteger("ashLevelSoot"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("ashLevelWood", ashLevelWood); + nbt.setInteger("ashLevelCoal", ashLevelCoal); + nbt.setInteger("ashLevelMisc", ashLevelMisc); + nbt.setInteger("ashLevelFly", ashLevelFly); + nbt.setInteger("ashLevelSoot", ashLevelSoot); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 1, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerAshpit(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIAshpit(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java index e13795a69..5d52acb62 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java @@ -3,7 +3,7 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.DummyBlockBlast; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEVaultPacket; +import com.hbm.packet.toclient.TEVaultPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -14,19 +14,19 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; public class TileEntityBlastDoor extends TileEntityLockableBase { - + public boolean isOpening = false; //0: closed, 1: opening/closing, 2:open public int state = 0; public long sysTime; private int timer = 0; public boolean redstoned = false; - + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() @@ -36,25 +36,25 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(!isLocked() && worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord) || worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord + 6, zCoord)) { - + if(!redstoned) { this.tryToggle(); } redstoned = true; - + } else { redstoned = false; } - + if(state != 1) { timer = 0; } else { timer++; - + if(isOpening) { if(timer >= 0) { removeDummy(xCoord, yCoord + 1, zCoord); @@ -88,20 +88,20 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { placeDummy(xCoord, yCoord + 1, zCoord); } } - + if(timer >= 100) { - + if(isOpening) finishOpen(); else finishClose(); } } - + PacketDispatcher.wrapper.sendToAllAround(new TEVaultPacket(xCoord, yCoord, zCoord, isOpening, state, 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); } } - + public void open() { if(state == 0) { PacketDispatcher.wrapper.sendToAllAround(new TEVaultPacket(xCoord, yCoord, zCoord, isOpening, state, 1, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); @@ -112,17 +112,17 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { 0.75F); } } - + public void finishOpen() { state = 2; this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStop", 0.5F, 1.0F); } - + public void close() { if(state == 2) { - PacketDispatcher.wrapper.sendToAll(new TEVaultPacket(xCoord, yCoord, zCoord, isOpening, state, 1, 0)); + PacketDispatcher.wrapper.sendToAllAround(new TEVaultPacket(xCoord, yCoord, zCoord, isOpening, state, 1, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); isOpening = false; state = 1; @@ -130,116 +130,116 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { 0.75F); } } - + public void finishClose() { state = 0; this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStop", 0.5F, 1.0F); } - + public void openNeigh() { TileEntity te0 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord); TileEntity te1 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord); TileEntity te2 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 1); TileEntity te3 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 1); - + if(te0 instanceof TileEntityBlastDoor) { - + if(((TileEntityBlastDoor)te0).canOpen() && (!((TileEntityBlastDoor)te0).isLocked() || ((TileEntityBlastDoor)te0).lock == lock)) { ((TileEntityBlastDoor)te0).open(); ((TileEntityBlastDoor)te0).openNeigh(); } } - + if(te1 instanceof TileEntityBlastDoor) { - + if(((TileEntityBlastDoor)te1).canOpen() && (!((TileEntityBlastDoor)te1).isLocked() || ((TileEntityBlastDoor)te1).lock == lock)) { ((TileEntityBlastDoor)te1).open(); ((TileEntityBlastDoor)te1).openNeigh(); } } - + if(te2 instanceof TileEntityBlastDoor) { - + if(((TileEntityBlastDoor)te2).canOpen() && (!((TileEntityBlastDoor)te2).isLocked() || ((TileEntityBlastDoor)te2).lock == lock)) { ((TileEntityBlastDoor)te2).open(); ((TileEntityBlastDoor)te2).openNeigh(); } } - + if(te3 instanceof TileEntityBlastDoor) { - + if(((TileEntityBlastDoor)te3).canOpen() && (!((TileEntityBlastDoor)te3).isLocked() || ((TileEntityBlastDoor)te3).lock == lock)) { ((TileEntityBlastDoor)te3).open(); ((TileEntityBlastDoor)te3).openNeigh(); } } } - + @Override public void lock() { super.lock(); lockNeigh(); } - + public void closeNeigh() { TileEntity te0 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord); TileEntity te1 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord); TileEntity te2 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 1); TileEntity te3 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 1); - + if(te0 instanceof TileEntityBlastDoor) { - + if(((TileEntityBlastDoor)te0).canClose() && (!((TileEntityBlastDoor)te0).isLocked() || ((TileEntityBlastDoor)te0).lock == lock)) { ((TileEntityBlastDoor)te0).close(); ((TileEntityBlastDoor)te0).closeNeigh(); } } - + if(te1 instanceof TileEntityBlastDoor) { - + if(((TileEntityBlastDoor)te1).canClose() && (!((TileEntityBlastDoor)te1).isLocked() || ((TileEntityBlastDoor)te1).lock == lock)) { ((TileEntityBlastDoor)te1).close(); ((TileEntityBlastDoor)te1).closeNeigh(); } } - + if(te2 instanceof TileEntityBlastDoor) { - + if(((TileEntityBlastDoor)te2).canClose() && (!((TileEntityBlastDoor)te2).isLocked() || ((TileEntityBlastDoor)te2).lock == lock)) { ((TileEntityBlastDoor)te2).close(); ((TileEntityBlastDoor)te2).closeNeigh(); } } - + if(te3 instanceof TileEntityBlastDoor) { - + if(((TileEntityBlastDoor)te3).canClose() && (!((TileEntityBlastDoor)te3).isLocked() || ((TileEntityBlastDoor)te3).lock == lock)) { ((TileEntityBlastDoor)te3).close(); ((TileEntityBlastDoor)te3).closeNeigh(); } } } - + public void lockNeigh() { TileEntity te0 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord); TileEntity te1 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord); TileEntity te2 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 1); TileEntity te3 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 1); - + if(te0 instanceof TileEntityBlastDoor) { - + if(!((TileEntityBlastDoor)te0).isLocked()) { ((TileEntityBlastDoor)te0).setPins(this.lock); ((TileEntityBlastDoor)te0).lock(); ((TileEntityBlastDoor)te0).setMod(lockMod); } } - + if(te1 instanceof TileEntityBlastDoor) { if(!((TileEntityBlastDoor)te1).isLocked()) { @@ -248,7 +248,7 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { ((TileEntityBlastDoor)te1).setMod(lockMod); } } - + if(te2 instanceof TileEntityBlastDoor) { if(!((TileEntityBlastDoor)te2).isLocked()) { @@ -257,7 +257,7 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { ((TileEntityBlastDoor)te2).setMod(lockMod); } } - + if(te3 instanceof TileEntityBlastDoor) { if(!((TileEntityBlastDoor)te3).isLocked()) { @@ -267,15 +267,15 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { } } } - + public boolean canOpen() { return state == 0; } - + public boolean canClose() { return state == 2; } - + public void tryToggle() { if(canOpen()) { @@ -286,28 +286,28 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { closeNeigh(); } } - + public boolean placeDummy(int x, int y, int z) { - + if(!worldObj.getBlock(x, y, z).isReplaceable(worldObj, x, y, z)) return false; - + worldObj.setBlock(x, y, z, ModBlocks.dummy_block_blast); - + TileEntity te = worldObj.getTileEntity(x, y, z); - + if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te; dummy.targetX = xCoord; dummy.targetY = yCoord; dummy.targetZ = zCoord; } - + return true; } - + public void removeDummy(int x, int y, int z) { - + if(worldObj.getBlock(x, y, z) == ModBlocks.dummy_block_blast) { DummyBlockBlast.safeBreak = true; worldObj.setBlock(x, y, z, Blocks.air); @@ -317,7 +317,7 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + isOpening = nbt.getBoolean("isOpening"); state = nbt.getInteger("state"); sysTime = nbt.getLong("sysTime"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java index 0c580bf65..e1b261544 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityBroadcaster.java @@ -1,38 +1,42 @@ package com.hbm.tileentity.machine; import java.util.List; +import java.util.Random; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.LoopedSoundPacket; -import com.hbm.packet.PacketDispatcher; +import com.hbm.main.MainRegistry; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.TileEntityLoadedBase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -public class TileEntityBroadcaster extends TileEntity { - +public class TileEntityBroadcaster extends TileEntityLoadedBase { + + private AudioWrapper audio; + @Override public void updateEntity() { - + List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - 25, yCoord + 0.5 - 25, zCoord + 0.5 - 25, xCoord + 0.5 + 25, yCoord + 0.5 + 25, zCoord + 0.5 + 25)); - + for(int i = 0; i < list.size(); i++) { if(list.get(i) instanceof EntityLivingBase) { EntityLivingBase e = (EntityLivingBase)list.get(i); double d = Math.sqrt(Math.pow(e.posX - (xCoord + 0.5), 2) + Math.pow(e.posY - (yCoord + 0.5), 2) + Math.pow(e.posZ - (zCoord + 0.5), 2)); - + if(d <= 25) { if(e.getActivePotionEffect(Potion.confusion) == null || e.getActivePotionEffect(Potion.confusion).getDuration() < 100) e.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 0)); } - + if(d <= 15) { double t = (15 - d) / 15 * 10; e.attackEntityFrom(ModDamageSource.broadcast, (float) t); @@ -40,16 +44,59 @@ public class TileEntityBroadcaster extends TileEntity { } } - if(!worldObj.isRemote) { - PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); + if (worldObj.isRemote) { + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + int intendedVolume = 25; + + EntityPlayer player = MainRegistry.proxy.me(); + float volume; + if(player != null) { + float f = (float)Math.sqrt(Math.pow(xCoord - player.posX, 2) + Math.pow(yCoord - player.posY, 2) + Math.pow(zCoord - player.posZ, 2)); + volume = (f / intendedVolume) * -2 + 2; + } else { + volume = intendedVolume; + } + + audio.updateVolume(getVolume(volume)); + audio.keepAlive(); } } - + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public AudioWrapper createAudioLoop() { + Random rand = new Random(xCoord + yCoord + zCoord); + return MainRegistry.proxy.getLoopedSound("hbm:block.broadcast" + (rand.nextInt(3) + 1), xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); + } + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java index 9e47668de..313d19986 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java @@ -4,72 +4,68 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -import com.hbm.tileentity.INBTPacketReceiver; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver { - +public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyReceiverMK2, IBufPacketReceiver { + private List players = new ArrayList(); private long charge = 0; private int lastOp = 0; - + boolean particles = false; - + public int usingTicks; public int lastUsingTicks; public static final int delay = 20; @Override public void updateEntity() { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); - + if(!worldObj.isRemote) { this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir); - + players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(0.5, 0.0, 0.5)); - + charge = 0; - + for(EntityPlayer player : players) { - + for(int i = 0; i < 5; i++) { - + ItemStack stack = player.getEquipmentInSlot(i); - + if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); - charge += Math.min(battery.getMaxCharge() - battery.getCharge(stack), battery.getChargeRate()); + charge += Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate()); } } } - + particles = lastOp > 0; - + if(particles) { - + lastOp--; - + if(worldObj.getTotalWorldTime() % 20 == 0) worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 0.2F, 0.5F); } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("c", charge); - data.setBoolean("p", particles); - INBTPacketReceiver.networkPack(this, data, 50); + + networkPackNT(50); } - + lastUsingTicks = usingTicks; - + if((charge > 0 || particles) && usingTicks < delay) { usingTicks++; if(usingTicks == 2) @@ -80,7 +76,7 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyUs if(usingTicks == 4) worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "tile.piston.in", 0.5F, 0.5F); } - + if(particles) { Random rand = worldObj.rand; worldObj.spawnParticle("magicCrit", @@ -94,9 +90,15 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyUs } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.charge = nbt.getLong("c"); - this.particles = nbt.getBoolean("p"); + public void serialize(ByteBuf buf) { + buf.writeLong(this.charge); + buf.writeBoolean(this.particles); + } + + @Override + public void deserialize(ByteBuf buf) { + this.charge = buf.readLong(); + this.particles = buf.readBoolean(); } @Override @@ -111,32 +113,32 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyUs @Override public void setPower(long power) { } - + @Override public long transferPower(long power) { - + if(this.usingTicks < delay || power == 0) return power; - + for(EntityPlayer player : players) { - + for(int i = 0; i < 5; i++) { - + ItemStack stack = player.getEquipmentInSlot(i); - + if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); - - long toCharge = Math.min(battery.getMaxCharge() - battery.getCharge(stack), battery.getChargeRate()); + + long toCharge = Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate()); toCharge = Math.min(toCharge, power / 5); battery.chargeBattery(stack, toCharge); power -= toCharge; - + lastOp = 4; } } } - + return power; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java new file mode 100644 index 000000000..3638afecb --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java @@ -0,0 +1,120 @@ +package com.hbm.tileentity.machine; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.lib.Library; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; + +import api.hbm.fluid.IFluidUser; +import io.netty.buffer.ByteBuf; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class TileEntityChimneyBase extends TileEntityLoadedBase implements IFluidUser, IBufPacketReceiver { + + public long ashTick = 0; + public long sootTick = 0; + public int onTicks; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + FluidType[] types = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON}; + + for(FluidType type : types) { + this.trySubscribe(type, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); + this.trySubscribe(type, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); + this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); + this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); + } + } + + if(ashTick > 0 || sootTick > 0) { + + TileEntity below = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(below instanceof TileEntityAshpit) { + TileEntityAshpit ashpit = (TileEntityAshpit) below; + ashpit.ashLevelFly += ashTick; + ashpit.ashLevelSoot += sootTick; + } + this.ashTick = 0; + this.sootTick = 0; + } + + networkPackNT(150); + + if(onTicks > 0) onTicks--; + + } else { + + if(onTicks > 0) { + this.spawnParticles(); + } + } + } + + public boolean cpaturesAsh() { + return true; + } + + public boolean cpaturesSoot() { + return false; + } + + public void spawnParticles() { } + + @Override + public void serialize(ByteBuf buf) { + buf.writeInt(this.onTicks); + } + + @Override + public void deserialize(ByteBuf buf) { + this.onTicks = buf.readInt(); + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return (dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH || dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) && + (type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON); + } + + @Override + public long transferFluid(FluidType type, int pressure, long fluid) { + + if(type != Fluids.SMOKE && type != Fluids.SMOKE_LEADED && type != Fluids.SMOKE_POISON) return fluid; + + onTicks = 20; + + if(cpaturesAsh()) ashTick += fluid; + if(cpaturesSoot()) sootTick += fluid; + + fluid *= getPollutionMod(); + + if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 100F); + if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 100F); + if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 100F); + + return 0; + } + + public abstract double getPollutionMod(); + + @Override + public long getDemand(FluidType type, int pressure) { + return 1_000_000; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {}; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java new file mode 100644 index 000000000..c237c9be9 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java @@ -0,0 +1,61 @@ +package com.hbm.tileentity.machine; + + +import com.hbm.config.MobConfig; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityChimneyBrick extends TileEntityChimneyBase { + + @Override + public void spawnParticles() { + + if(worldObj.getTotalWorldTime() % 2 == 0) { + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 10F); + fx.setFloat("base", 0.5F); + fx.setFloat("max", 3F); + fx.setInteger("life", 250 + worldObj.rand.nextInt(50)); + fx.setInteger("color",0x404040); + fx.setDouble("posX", xCoord + 0.5); + fx.setDouble("posY", yCoord + 12); + fx.setDouble("posZ", zCoord + 0.5); + MainRegistry.proxy.effectNT(fx); + } + } + + @Override + public double getPollutionMod() { + return MobConfig.rampantMode ? MobConfig.rampantSmokeStackOverride : 0.25D; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 13, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java new file mode 100644 index 000000000..80006caf3 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java @@ -0,0 +1,65 @@ +package com.hbm.tileentity.machine; + +import com.hbm.config.MobConfig; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityChimneyIndustrial extends TileEntityChimneyBase { + + @Override + public void spawnParticles() { + + if(worldObj.getTotalWorldTime() % 2 == 0) { + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 10F); + fx.setFloat("base", 0.75F); + fx.setFloat("max", 3F); + fx.setInteger("life", 250 + worldObj.rand.nextInt(50)); + fx.setInteger("color",0x404040); + fx.setDouble("posX", xCoord + 0.5); + fx.setDouble("posY", yCoord + 22); + fx.setDouble("posZ", zCoord + 0.5); + MainRegistry.proxy.effectNT(fx); + } + } + + @Override + public double getPollutionMod() { + return MobConfig.rampantMode ? MobConfig.rampantSmokeStackOverride/2 : 0.1D; + } + + @Override + public boolean cpaturesSoot() { + return true; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 23, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 4a0226d96..9aa33070d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -1,66 +1,110 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; import java.util.Random; +import java.io.IOException; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; -import com.hbm.lib.Library; -import com.hbm.packet.NBTPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import api.hbm.tile.IInfoProviderEC; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine, IBufPacketReceiver, IFluidCopiable{ public long power; - public static final long maxPower = 100000000000L; private int turnTimer; public float rotor; public float lastRotor; public float fanAcceleration = 0F; - - public List list2 = new ArrayList(); - + public FluidTank[] tanks; - + protected double[] info = new double[3]; + + private AudioWrapper audio; + private float audioDesync; + + //Configurable values + public static long maxPower = 100000000000L; + public static int inputTankSize = 1_000_000_000; + public static int outputTankSize = 1_000_000_000; + public static double efficiency = 0.85D; + public TileEntityChungus() { - tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, 1000000000, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 1000000000, 1); + tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize); + + Random rand = new Random(); + audioDesync = rand.nextFloat() * 0.05F; } + @Override + public String getConfigName() { + return "steamturbineLeviathan"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "L:maxPower", maxPower); + inputTankSize = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSize); + outputTankSize = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSize); + efficiency = IConfigurableMachine.grab(obj, "D:efficiency", efficiency); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:maxPower").value(maxPower); + writer.name("INFO").value("leviathan steam turbine consumes all availible steam per tick"); + writer.name("I:inputTankSize").value(inputTankSize); + writer.name("I:outputTankSize").value(outputTankSize); + writer.name("D:efficiency").value(efficiency); + } + + + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + + this.info = new double[3]; + boolean operational = false; FluidType in = tanks[0].getTankType(); boolean valid = false; if(in.hasTrait(FT_Coolable.class)) { FT_Coolable trait = in.getTrait(FT_Coolable.class); - double eff = trait.getEfficiency(CoolingType.TURBINE) * 0.85D; //85% efficiency + double eff = trait.getEfficiency(CoolingType.TURBINE) * efficiency; //85% efficiency by default if(eff > 0) { tanks[1].setTankType(trait.coolsTo); int inputOps = tanks[0].getFill() / trait.amountReq; @@ -69,56 +113,51 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc tanks[0].setFill(tanks[0].getFill() - ops * trait.amountReq); tanks[1].setFill(tanks[1].getFill() + ops * trait.amountProduced); this.power += (ops * trait.heatEnergy * eff); + info[0] = ops * trait.amountReq; + info[1] = ops * trait.amountProduced; + info[2] = ops * trait.heatEnergy * eff; valid = true; operational = ops > 0; } } - + if(!valid) tanks[1].setTankType(Fluids.NONE); if(power > maxPower) power = maxPower; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.sendPower(worldObj, xCoord - dir.offsetX * 11, yCoord, zCoord - dir.offsetZ * 11, dir.getOpposite()); - + this.tryProvide(worldObj, xCoord - dir.offsetX * 11, yCoord, zCoord - dir.offsetZ * 11, dir.getOpposite()); + for(DirPos pos : this.getConPos()) { this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - + if(power > maxPower) power = maxPower; - + turnTimer--; - - if(operational) - turnTimer = 25; - - this.fillFluidInit(tanks[1].getTankType()); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("type", tanks[0].getTankType().getID()); - data.setInteger("operational", turnTimer); - this.networkPack(data, 150); - + + if(operational) turnTimer = 25; + networkPackNT(150); + } else { - + this.lastRotor = this.rotor; this.rotor += this.fanAcceleration; - + if(this.rotor >= 360) { this.rotor -= 360; this.lastRotor -= 360; } - - if(turnTimer > 0) { - this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration += 0.1F)); + if(turnTimer > 0) { + // Fan accelerates with a random offset to ensure the audio doesn't perfectly align, makes for a more pleasant hum + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration += 0.075F + audioDesync)); Random rand = worldObj.rand; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection side = dir.getRotation(ForgeDirection.UP); - + for(int i = 0; i < 10; i++) { worldObj.spawnParticle("cloud", xCoord + 0.5 + dir.offsetX * (rand.nextDouble() + 1.25) + rand.nextGaussian() * side.offsetX * 0.65, @@ -126,19 +165,39 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc zCoord + 0.5 + dir.offsetZ * (rand.nextDouble() + 1.25) + rand.nextGaussian() * side.offsetZ * 0.65, -dir.offsetX * 0.2, 0, -dir.offsetZ * 0.2); } - } - if(turnTimer < 0) { + + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.chungusTurbineRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); + audio.startSound(); + } + + float turbineSpeed = this.fanAcceleration / 25F; + audio.updateVolume(getVolume(0.5f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + } else { this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration -= 0.1F)); - } + + if(audio != null) { + if(this.fanAcceleration > 0) { + float turbineSpeed = this.fanAcceleration / 25F; + audio.updateVolume(getVolume(0.5f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + } else { + audio.stopSound(); + audio = null; + } + } + } } } - + public void onLeverPull(FluidType previous) { for(BlockPos pos : getConPos()) { this.tryUnsubscribe(previous, worldObj, pos.getX(), pos.getY(), pos.getZ()); } } - + public DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -148,18 +207,23 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc new DirPos(xCoord - rot.offsetX * 3, yCoord, zCoord - rot.offsetZ * 3, rot.getOpposite()) }; } - - public void networkPack(NBTTagCompound nbt, int range) { - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + + @Override + public void serialize(ByteBuf buf) { + buf.writeLong(this.power); + buf.writeInt(this.turnTimer); + this.tanks[0].serialize(buf); + this.tanks[1].serialize(buf); } @Override - public void networkUnpack(NBTTagCompound data) { - this.power = data.getLong("power"); - this.turnTimer = data.getInteger("operational"); - this.tanks[0].setTankType(Fluids.fromID(data.getInteger("type"))); + public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.turnTimer = buf.readInt(); + this.tanks[0].deserialize(buf); + this.tanks[1].deserialize(buf); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -167,7 +231,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc tanks[1].readFromNBT(nbt, "steam"); power = nbt.getLong("power"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -176,79 +240,11 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc nbt.setLong("power", power); } - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - dir = dir.getRotation(ForgeDirection.UP); - - fillFluid(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, getTact(), type); - fillFluid(xCoord + dir.offsetX * -3, yCoord, zCoord + dir.offsetZ * -3, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -275,6 +271,84 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc this.power = power; } + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_turbine"; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getFluid", + "getType", + "setType", + "getInfo" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch(method) { + case ("getFluid"): + return getFluid(context, args); + case ("getType"): + return getType(context, args); + case ("setType"): + return setType(context, args); + case ("getInfo"): + return getInfo(context, args); + } + throw new NoSuchMethodException(); + } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[1]}; @@ -289,4 +363,17 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public FluidTank[] getAllTanks() { return tanks; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, info[1] > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, info[0]); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]); + } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index 8b42674b0..f29d0c0c1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -1,91 +1,124 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; +import java.io.IOException; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.lib.Library; import com.hbm.saveddata.TomSaveData; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.EnumSkyBlock; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, INBTPacketReceiver { +public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidStandardTransceiver, IInfoProviderEC, IConfigurableMachine, IBufPacketReceiver, IFluidCopiable { public int age = 0; public FluidTank[] tanks; - public List list = new ArrayList(); - + public int waterTimer = 0; - + protected int throughput; + + //Configurable values + public static int inputTankSize = 100; + public static int outputTankSize = 100; + public TileEntityCondenser() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 100, 0); - tanks[1] = new FluidTank(Fluids.WATER, 100, 1); + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, inputTankSize); + tanks[1] = new FluidTank(Fluids.WATER, outputTankSize); } - + + @Override + public String getConfigName() { + return "condenser"; + } + + @Override + public void readIfPresent(JsonObject obj) { + inputTankSize = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSize); + outputTankSize = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSize); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:inputTankSize").value(inputTankSize); + writer.name("I:outputTankSize").value(outputTankSize); + } + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + age++; if(age >= 2) { age = 0; } - + if(this.waterTimer > 0) this.waterTimer--; - + int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); - tanks[0].setFill(tanks[0].getFill() - convert); - - if(convert > 0) - this.waterTimer = 20; - - int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); - - if(TomSaveData.forWorld(worldObj).fire > 1e-5 && light > 7) { // Make both steam and water evaporate during firestorms... - tanks[1].setFill(tanks[1].getFill() - convert); - } else { - tanks[1].setFill(tanks[1].getFill() + convert); + this.throughput = convert; + + if(extraCondition(convert)) { + tanks[0].setFill(tanks[0].getFill() - convert); + + if(convert > 0) + this.waterTimer = 20; + + int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); + + if(TomSaveData.forWorld(worldObj).fire > 1e-5 && light > 7) { // Make both steam and water evaporate during firestorms... + tanks[1].setFill(tanks[1].getFill() - convert); + } else { + tanks[1].setFill(tanks[1].getFill() + convert); + } + + postConvert(convert); } - + this.subscribeToAllAround(tanks[0].getTankType(), this); this.sendFluidToAll(tanks[1], this); - - fillFluidInit(tanks[1].getTankType()); - - NBTTagCompound data = new NBTTagCompound(); - this.tanks[0].writeToNBT(data, "0"); - this.tanks[1].writeToNBT(data, "1"); - data.setByte("timer", (byte) this.waterTimer); - INBTPacketReceiver.networkPack(this, data, 150); + + networkPackNT(150); } } + public void packExtra(NBTTagCompound data) { } + public boolean extraCondition(int convert) { return true; } + public void postConvert(int convert) { } + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.tanks[0].readFromNBT(nbt, "0"); - this.tanks[1].readFromNBT(nbt, "1"); - this.waterTimer = nbt.getByte("timer"); + public void serialize(ByteBuf buf) { + this.tanks[0].serialize(buf); + this.tanks[1].serialize(buf); + buf.writeByte(this.waterTimer); } - + + @Override + public void deserialize(ByteBuf buf) { + this.tanks[0].deserialize(buf); + this.tanks[1].deserialize(buf); + this.waterTimer = buf.readByte(); + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); tanks[0].readFromNBT(nbt, "water"); tanks[1].readFromNBT(nbt, "steam"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -93,76 +126,6 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA tanks[1].writeToNBT(nbt, "steam"); } - @Override - public void fillFluidInit(FluidType type) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - fillFluid(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks [1]}; @@ -177,4 +140,15 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA public FluidTank[] getAllTanks() { return tanks; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, throughput); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, throughput); + } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java new file mode 100644 index 000000000..2240477cd --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java @@ -0,0 +1,204 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityCondenserPowered extends TileEntityCondenser implements IEnergyReceiverMK2 { + + public long power; + public float spin; + public float lastSpin; + + //Configurable values + public static long maxPower = 10_000_000; + public static int inputTankSizeP = 1_000_000; + public static int outputTankSizeP = 1_000_000; + public static int powerConsumption = 10; + + public TileEntityCondenserPowered() { + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, inputTankSizeP); + tanks[1] = new FluidTank(Fluids.WATER, outputTankSizeP); + } + + @Override + public String getConfigName() { + return "condenserPowered"; + } + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "L:maxPower", maxPower); + inputTankSizeP = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSizeP); + outputTankSizeP = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSizeP); + powerConsumption = IConfigurableMachine.grab(obj, "I:powerConsumption", powerConsumption); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:maxPower").value(maxPower); + writer.name("I:inputTankSize").value(inputTankSizeP); + writer.name("I:outputTankSize").value(outputTankSizeP); + writer.name("I:powerConsumption").value(powerConsumption); + } + + @Override + public void updateEntity() { + super.updateEntity(); + + if(worldObj.isRemote) { + + this.lastSpin = this.spin; + + if(this.waterTimer > 0) { + this.spin += 30F; + + if(this.spin >= 360F) { + this.spin -= 360F; + this.lastSpin -= 360F; + } + + if(worldObj.getTotalWorldTime() % 4 == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + worldObj.spawnParticle("cloud", xCoord + 0.5 + dir.offsetX * 1.5, yCoord + 1.5, zCoord + 0.5 + dir.offsetZ * 1.5, dir.offsetX * 0.1, 0, dir.offsetZ * 0.1); + worldObj.spawnParticle("cloud", xCoord + 0.5 - dir.offsetX * 1.5, yCoord + 1.5, zCoord + 0.5 - dir.offsetZ * 1.5, dir.offsetX * -0.1, 0, dir.offsetZ * -0.1); + } + } + } + } + + @Override + public void packExtra(NBTTagCompound data) { + data.setLong("power", power); + } + + @Override + public boolean extraCondition(int convert) { + return power >= convert * 10; + } + + @Override + public void postConvert(int convert) { + this.power -= convert * powerConsumption; + if(this.power < 0) this.power = 0; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + this.tanks[0].serialize(buf); + this.tanks[1].serialize(buf); + buf.writeByte(this.waterTimer); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.tanks[0].deserialize(buf); + this.tanks[1].deserialize(buf); + this.waterTimer = buf.readByte(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "steam"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "steam"); + } + + @Override + public void subscribeToAllAround(FluidType type, TileEntity te) { + for(DirPos pos : getConPos()) { + this.trySubscribe(this.tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + @Override + public void sendFluidToAll(FluidTank tank, TileEntity te) { + for(DirPos pos : getConPos()) { + this.sendFluid(this.tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 4, yCoord + 1, zCoord + rot.offsetZ * 4, rot), + new DirPos(xCoord - rot.offsetX * 4, yCoord + 1, zCoord - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 2 - rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 2 - rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord + 1, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord + 1, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()) + }; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 3, + yCoord, + zCoord - 3, + xCoord + 4, + yCoord + 3, + zCoord + 4 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public long getPower() { + return this.power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return this.maxPower; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java new file mode 100644 index 000000000..d7a93653e --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java @@ -0,0 +1,266 @@ +package com.hbm.tileentity.machine; + +import java.util.List; + +import com.hbm.entity.item.EntityMovingItem; +import com.hbm.inventory.recipes.PressRecipes; +import com.hbm.items.machine.ItemStamp; +import com.hbm.lib.Library; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityConveyorPress extends TileEntityMachineBase implements IEnergyReceiverMK2 { + + public int usage = 100; + public long power = 0; + public final static long maxPower = 50000; + + public double speed = 0.125; + public double press; + public double renderPress; + public double lastPress; + private double syncPress; + private int turnProgress; + protected boolean isRetracting = false; + private int delay; + + public ItemStack syncStack; + + public TileEntityConveyorPress() { + super(1); + } + + @Override + public String getName() { + return ""; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.updateConnections(); + + if(delay <= 0) { + + if(isRetracting) { + + if(this.canRetract()) { + this.press -= speed; + this.power -= this.usage; + + if(press <= 0) { + press = 0; + this.isRetracting = false; + delay = 0; + } + } + + } else { + + if(this.canExtend()) { + this.press += speed; + this.power -= this.usage; + + if(press >= 1) { + press = 1; + this.isRetracting = true; + delay = 5; + this.process(); + } + } + } + + } else { + delay--; + } + + this.networkPackNT(50); + } else { + + // approach-based interpolation, GO! + this.lastPress = this.renderPress; + + if(this.turnProgress > 0) { + this.renderPress = this.renderPress + ((this.syncPress - this.renderPress) / (double) this.turnProgress); + --this.turnProgress; + } else { + this.renderPress = this.syncPress; + } + } + } + + protected void updateConnections() { + for(DirPos pos : getConPos()) this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + protected DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z), + }; + } + + public boolean canExtend() { + + if(this.power < usage) return false; + if(slots[0] == null) return false; + + List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 1.5, zCoord + 1)); + if(items.isEmpty()) return false; + + for(EntityMovingItem item : items) { + ItemStack stack = item.getItemStack(); + if(PressRecipes.getOutput(stack, slots[0]) != null && stack.stackSize == 1) { + + double d0 = 0.35; + double d1 = 0.65; + if(item.posX > xCoord + d0 && item.posX < xCoord + d1 && item.posZ > zCoord + d0 && item.posZ < zCoord + d1) { + item.setPosition(xCoord + 0.5, item.posY, zCoord + 0.5); + } + + return true; + } + } + + return false; + } + + public void process() { + + List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 1.5, zCoord + 1)); + + for(EntityMovingItem item : items) { + ItemStack stack = item.getItemStack(); + ItemStack output = PressRecipes.getOutput(stack, slots[0]); + + if(output != null && stack.stackSize == 1) { + item.setDead(); + EntityMovingItem out = new EntityMovingItem(worldObj); + out.setPosition(item.posX, item.posY, item.posZ); + out.setItemStack(output.copy()); + worldObj.spawnEntityInWorld(out); + } + } + + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", getVolume(1.5F), 1.0F); + + if(slots[0].getMaxDamage() != 0) { + slots[0].setItemDamage(slots[0].getItemDamage() + 1); + if(slots[0].getItemDamage() >= slots[0].getMaxDamage()) { + slots[0] = null; + } + } + } + + public boolean canRetract() { + return this.power >= usage; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeLong(this.power); + buf.writeDouble(this.press); + BufferUtil.writeItemStack(buf, slots[0]); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.power = buf.readLong(); + this.syncPress = buf.readDouble(); + this.syncStack = BufferUtil.readItemStack(buf); + + this.turnProgress = 2; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return stack.getItem() instanceof ItemStamp; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0 }; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + return dir != ForgeDirection.DOWN; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.press = nbt.getDouble("press"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setDouble("press", press); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java index 24817d855..767575fa9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java @@ -21,10 +21,12 @@ import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ArmorUtil; +import com.hbm.util.CompatEnergyControl; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -33,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityCore extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityCore extends TileEntityMachineBase implements IGUIProvider, IInfoProviderEC { public int field; public int heat; @@ -41,12 +43,14 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide public FluidTank[] tanks; private boolean lastTickValid = false; public boolean meltdownTick = false; + protected int consumption; + protected int prevConsumption; public TileEntityCore() { super(3); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000, 0); - tanks[1] = new FluidTank(Fluids.TRITIUM, 128000, 1); + tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000); + tanks[1] = new FluidTank(Fluids.TRITIUM, 128000); } @Override @@ -59,6 +63,9 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide if(!worldObj.isRemote) { + this.prevConsumption = this.consumption; + this.consumption = 0; + int chunkX = xCoord >> 4; int chunkZ = zCoord >> 4; @@ -131,17 +138,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide if(heat > 0) radiation(); - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("tank0", tanks[0].getTankType().ordinal()); - data.setInteger("tank1", tanks[1].getTankType().ordinal()); - data.setInteger("fill0", tanks[0].getFill()); - data.setInteger("fill1", tanks[1].getFill()); - data.setInteger("field", field); - data.setInteger("heat", heat); - data.setInteger("color", color); - data.setBoolean("melt", meltdownTick); - networkPack(data, 250); + + networkPackNT(250); heat = 0; @@ -156,17 +154,29 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide } } - - public void networkUnpack(NBTTagCompound data) { - tanks[0].setTankType(Fluids.fromID(data.getInteger("tank0"))); - tanks[1].setTankType(Fluids.fromID(data.getInteger("tank1"))); - tanks[0].setFill(data.getInteger("fill0")); - tanks[1].setFill(data.getInteger("fill1")); - field = data.getInteger("field"); - heat = data.getInteger("heat"); - color = data.getInteger("color"); - meltdownTick = data.getBoolean("melt"); + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + tanks[0].serialize(buf); + tanks[1].serialize(buf); + buf.writeInt(field); + buf.writeInt(heat); + buf.writeInt(color); + buf.writeBoolean(meltdownTick); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + this.field = buf.readInt(); + this.heat = buf.readInt(); + this.color = buf.readInt(); + this.meltdownTick = buf.readBoolean(); } private void radiation() { @@ -230,6 +240,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide if(tanks[0].getFill() < demand || tanks[1].getFill() < demand) return joules; + this.consumption += demand; + heat += (int)Math.ceil((double)joules / 10000D); tanks[0].setFill(tanks[0].getFill() - demand); @@ -247,7 +259,7 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide return 1.7F; if(type == Fluids.OXYGEN) return 1.2F; - if(type == Fluids.ACID) + if(type == Fluids.PEROXIDE) return 1.4F; if(type == Fluids.XENON) return 1.5F; @@ -351,7 +363,12 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICore(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.prevConsumption); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 218168090..3a6712af9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -1,8 +1,11 @@ package com.hbm.tileentity.machine; import api.hbm.block.ILaserable; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; + +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerCoreEmitter; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -10,15 +13,17 @@ import com.hbm.inventory.gui.GUICoreEmitter; import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; + import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -33,7 +38,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider { +public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyReceiverMK2, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long power; public static final long maxPower = 1000000000L; @@ -48,7 +53,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public TileEntityCoreEmitter() { super(0); - tank = new FluidTank(Fluids.CRYOGEL, 64000, 0); + tank = new FluidTank(Fluids.CRYOGEL, 64000); } @Override @@ -60,8 +65,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public void updateEntity() { if (!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); this.subscribeToAllAround(tank.getTankType(), this); watts = MathHelper.clamp_int(watts, 1, 100); @@ -93,7 +97,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne if(joules > 0) { - long out = joules * 98 / 100; + long out = joules * 95 / 100; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); for(int i = 1; i <= range; i++) { @@ -107,26 +111,13 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne Block block = worldObj.getBlock(x, y, z); TileEntity te = worldObj.getTileEntity(x, y, z); - if(block instanceof ILaserable) { - - ((ILaserable)block).addEnergy(worldObj, x, y, z, out * 98 / 100, dir); - break; - } - - if(te instanceof ILaserable) { - - ((ILaserable)te).addEnergy(worldObj, x, y, z, out * 98 / 100, dir); - break; - } - - if(te instanceof TileEntityCore) { - out = ((TileEntityCore)te).burn(out); - continue; - } + if(block instanceof ILaserable) { ((ILaserable)block).addEnergy(worldObj, x, y, z, out, dir); break; } + if(te instanceof ILaserable) { ((ILaserable)te).addEnergy(worldObj, x, y, z, out, dir); break; } + if(te instanceof TileEntityCore) { out = ((TileEntityCore)te).burn(out); continue; } Block b = worldObj.getBlock(x, y, z); - if(b != Blocks.air) { + if(!b.isAir(worldObj, x, y, z)) { if(b.getMaterial().isLiquid()) { worldObj.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.fizz", 1.0F, 1.0F); @@ -167,25 +158,32 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne this.markDirty(); - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("watts", watts); - data.setLong("prev", prev); - data.setInteger("beam", beam); - data.setBoolean("isOn", isOn); - tank.writeToNBT(data, "tank"); - this.networkPack(data, 250); + this.networkPackNT(250); } } - - public void networkUnpack(NBTTagCompound data) { - power = data.getLong("power"); - watts = data.getInteger("watts"); - prev = data.getLong("prev"); - beam = data.getInteger("beam"); - isOn = data.getBoolean("isOn"); - tank.readFromNBT(data, "tank"); + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeLong(power); + buf.writeInt(watts); + buf.writeLong(prev); + buf.writeInt(beam); + buf.writeBoolean(isOn); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.power = buf.readLong(); + this.watts = buf.readInt(); + this.prev = buf.readLong(); + this.beam = buf.readInt(); + this.isOn = buf.readBoolean(); + tank.deserialize(buf); } public long getPowerScaled(long i) { @@ -272,63 +270,53 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "dfc_emitter"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower()}; + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower()}; - } - - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower(), tank.getFill(), watts, isOn}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isActive(Context context, Arguments args) { return new Object[] {isOn}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setActive(Context context, Arguments args) { isOn = args.checkBoolean(0); return new Object[] {}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); - if (newOutput > 100) { - newOutput = 100; - } else if (newOutput < 0) { - newOutput = 0; - } - watts = newOutput; + watts = MathHelper.clamp_int(newOutput, 0, 100); return new Object[] {}; } @@ -339,7 +327,13 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICoreEmitter(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, joules > 0 || prev > 0 ? 20 : 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, maxPower * watts / 2000); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index 7285639bd..5380702cf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -1,8 +1,7 @@ package com.hbm.tileentity.machine; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerCoreInjector; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICoreInjector; @@ -13,13 +12,12 @@ import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -28,7 +26,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, SimpleComponent, IGUIProvider { +public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidStandardReceiver, SimpleComponent, IGUIProvider, CompatHandler.OCComponent { public FluidTank[] tanks; public static final int range = 15; @@ -37,8 +35,8 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl public TileEntityCoreInjector() { super(4); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000, 0); - tanks[1] = new FluidTank(Fluids.TRITIUM, 128000, 1); + tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000); + tanks[1] = new FluidTank(Fluids.TRITIUM, 128000); } @Override @@ -97,74 +95,42 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl break; } - if(worldObj.getBlock(x, y, z) != Blocks.air) + if(!worldObj.getBlock(x, y, z).isAir(worldObj, x, y, z)) break; } this.markDirty(); - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("beam", beam); - this.networkPack(data, 250); + this.networkPackNT(250); } } - - public void networkUnpack(NBTTagCompound data) { - beam = data.getInteger("beam"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeInt(beam); + tanks[0].serialize(buf); + tanks[1].serialize(buf); } @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } + public void deserialize(ByteBuf buf) { + super.deserialize(buf); - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); + this.beam = buf.readInt(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); } @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } @@ -196,26 +162,27 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "dfc_injector"; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") - public Object[] getFirstFuel(Context context, Arguments args) { - return new Object[] {tanks[0].getFill()}; + public Object[] getFuel(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") - public Object[] getSecondFuel(Context context, Arguments args) { - return new Object[] {tanks[1].getFill()}; + public Object[] getTypes(Context context, Arguments args) { + return new Object[] {tanks[0].getTankType().getName(), tanks[1].getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; + return new Object[] {tanks[0].getFill(), tanks[0].getTankType().getName(), tanks[1].getFill(), tanks[1].getTankType().getName()}; } @Override @@ -225,7 +192,7 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICoreInjector(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 51b79e242..c85a206c7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -1,25 +1,26 @@ package com.hbm.tileentity.machine; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerCoreReceiver; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICoreReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import api.hbm.block.ILaserable; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; @@ -30,7 +31,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider { +public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long power; public long joules; @@ -38,7 +39,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn public TileEntityCoreReceiver() { super(0); - tank = new FluidTank(Fluids.CRYOGEL, 64000, 0); + tank = new FluidTank(Fluids.CRYOGEL, 64000); } @Override @@ -51,13 +52,12 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn if (!worldObj.isRemote) { - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.subscribeToAllAround(tank.getTankType(), this); power = joules * 5000; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); if(joules > 0) { @@ -69,16 +69,26 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn } } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("joules", joules); - this.networkPack(data, 50); + this.networkPackNT(50); joules = 0; } } - - public void networkUnpack(NBTTagCompound data) { - joules = data.getLong("joules"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeLong(joules); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + joules = buf.readLong(); + tank.deserialize(buf); } @Override @@ -98,39 +108,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn @Override public long getMaxPower() { - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); + return this.power; } @Override @@ -152,8 +130,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } @@ -187,32 +164,27 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "dfc_receiver"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") - public Object[] getInput(Context context, Arguments args) { - return new Object[] {joules}; + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {joules, getPower()}; //literally only doing this for the consistency between components } - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getOutput(Context context, Arguments args) { - return new Object[] {power}; - } - - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {joules, power, tank.getFill()}; + return new Object[] {joules, getPower(), tank.getFill()}; } @Override @@ -222,7 +194,13 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICoreReceiver(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, joules > 0 ? 20 : 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, joules * 5000); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index de41bd82a..2647d4c6e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -1,23 +1,25 @@ package com.hbm.tileentity.machine; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerCoreStabilizer; import com.hbm.inventory.gui.GUICoreStabilizer; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemLens; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -27,7 +29,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyUser, SimpleComponent, IGUIProvider { +public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyReceiverMK2, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long power; public static final long maxPower = 2500000000L; @@ -86,16 +88,12 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I break; } - if(worldObj.getBlock(x, y, z) != Blocks.air) + if(!worldObj.getBlock(x, y, z).isAir(worldObj, x, y, z)) break; } } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("watts", watts); - data.setInteger("beam", beam); - this.networkPack(data, 250); + this.networkPackNT(250); } } @@ -104,12 +102,23 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } - - public void networkUnpack(NBTTagCompound data) { - power = data.getLong("power"); - watts = data.getInteger("watts"); - beam = data.getInteger("beam"); + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeLong(power); + buf.writeInt(watts); + buf.writeInt(beam); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.power = buf.readLong(); + this.watts = buf.readInt(); + this.beam = buf.readInt(); } public long getPowerScaled(long i) { @@ -169,29 +178,24 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "dfc_stabilizer"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {power}; + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {maxPower}; - } - - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDurability(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() == ModItems.ams_lens && ItemLens.getLensDamage(slots[0]) < ((ItemLens)ModItems.ams_lens).maxDamage) { @@ -200,7 +204,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object lens_damage_buf; @@ -212,16 +216,11 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {power, maxPower, watts, lens_damage_buf}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); - if (newOutput > 100) { - newOutput = 100; - } else if (newOutput < 0) { - newOutput = 0; - } - watts = newOutput; + watts = MathHelper.clamp_int(newOutput, 0, 100); return new Object[] {}; } @@ -232,7 +231,18 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICoreStabilizer(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + int demand = (int) Math.pow(watts, 4); + long damage = ItemLens.getLensDamage(slots[0]); + ItemLens lens = (ItemLens) com.hbm.items.ModItems.ams_lens; + if(getPower() >= demand && slots[0] != null && slots[0].getItem() == lens && damage < 432000000L) + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, demand); + else + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, 0); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index a6ee9501c..fd3f5248d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -18,11 +18,13 @@ import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.inventory.recipes.CrucibleRecipes.CrucibleRecipe; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IMetalCopiable; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; import com.hbm.util.CrucibleUtil; import api.hbm.block.ICrucibleAcceptor; @@ -30,7 +32,7 @@ import api.hbm.tile.IHeatSource; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -44,11 +46,11 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCrucible extends TileEntityMachineBase implements IGUIProvider, ICrucibleAcceptor, IConfigurableMachine { +public class TileEntityCrucible extends TileEntityMachineBase implements IGUIProvider, ICrucibleAcceptor, IConfigurableMachine, IMetalCopiable { public int heat; public int progress; - + public List recipeStack = new ArrayList(); public List wasteStack = new ArrayList(); @@ -100,21 +102,21 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro @Override public void updateEntity() { - + if(!worldObj.isRemote) { tryPullHeat(); - + /* collect items */ if(worldObj.getTotalWorldTime() % 5 == 0) { List list = worldObj.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord + 0.5, zCoord - 0.5, xCoord + 1.5, yCoord + 1, zCoord + 1.5)); - + for(EntityItem item : list) { ItemStack stack = item.getEntityItem(); if(this.isItemSmeltable(stack)) { - + for(int i = 1; i < 10; i++) { if(slots[i] == null) { - + if(stack.stackSize == 1) { slots[i] = stack.copy(); item.setDead(); @@ -124,7 +126,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro slots[i].stackSize = 1; stack.stackSize--; } - + this.markChanged(); } } @@ -137,29 +139,29 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro for(MaterialStack stack : recipeStack) totalMass += stack.amount; for(MaterialStack stack : wasteStack) totalMass += stack.amount; - + double level = ((double) totalMass / (double) totalCap) * 0.875D; - + List living = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5 + level, zCoord + 0.5).expand(1, 0, 1)); for(EntityLivingBase entity : living) { entity.attackEntityFrom(DamageSource.lava, 5F); entity.setFire(5); } - + /* smelt items from buffer */ if(!trySmelt()) { this.progress = 0; } - + tryRecipe(); - + /* pour waste stack */ if(!this.wasteStack.isEmpty()) { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); Vec3 impact = Vec3.createVectorHelper(0, 0, 0); - MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord + 0.25D, zCoord + 0.5D + dir.offsetZ * 1.875D, 6, true, this.wasteStack, MaterialShapes.NUGGET.q(2), impact); - + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord + 0.25D, zCoord + 0.5D + dir.offsetZ * 1.875D, 6, true, this.wasteStack, MaterialShapes.NUGGET.q(3), impact); + if(didPour != null) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "foundry"); @@ -169,24 +171,24 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro data.setFloat("base", 0.625F); data.setFloat("len", Math.max(1F, yCoord - (float) (Math.ceil(impact.yCoord) - 0.875))); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord, zCoord + 0.5D + dir.offsetZ * 1.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); - + } - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND / 2F); + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND / 20F); } - + /* pour recipe stack */ if(!this.recipeStack.isEmpty()) { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); List toCast = new ArrayList(); - + CrucibleRecipe recipe = this.getLoadedRecipe(); //if no recipe is loaded, everything from the recipe stack will be drainable if(recipe == null) { toCast.addAll(this.recipeStack); } else { - + for(MaterialStack stack : this.recipeStack) { for(MaterialStack output : recipe.output) { if(stack.material == output.material) { @@ -196,9 +198,9 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro } } } - + Vec3 impact = Vec3.createVectorHelper(0, 0, 0); - MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord + 0.25D, zCoord + 0.5D + dir.offsetZ * 1.875D, 6, true, toCast, MaterialShapes.NUGGET.q(2), impact); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord + 0.25D, zCoord + 0.5D + dir.offsetZ * 1.875D, 6, true, toCast, MaterialShapes.NUGGET.q(3), impact); if(didPour != null) { NBTTagCompound data = new NBTTagCompound(); @@ -209,50 +211,72 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro data.setFloat("base", 0.625F); data.setFloat("len", Math.max(1F, yCoord - (float) (Math.ceil(impact.yCoord) - 0.875))); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord, zCoord + 0.5D + dir.offsetZ * 1.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); - + } - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND / 2F); + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND / 20F); } /* clean up stacks */ this.recipeStack.removeIf(o -> o.amount <= 0); this.wasteStack.removeIf(x -> x.amount <= 0); - + /* sync */ - NBTTagCompound data = new NBTTagCompound(); - int[] rec = new int[recipeStack.size() * 2]; - int[] was = new int[wasteStack.size() * 2]; - for(int i = 0; i < recipeStack.size(); i++) { MaterialStack sta = recipeStack.get(i); rec[i * 2] = sta.material.id; rec[i * 2 + 1] = sta.amount; } - for(int i = 0; i < wasteStack.size(); i++) { MaterialStack sta = wasteStack.get(i); was[i * 2] = sta.material.id; was[i * 2 + 1] = sta.amount; } - data.setIntArray("rec", rec); - data.setIntArray("was", was); - data.setInteger("progress", progress); - data.setInteger("heat", heat); - this.networkPack(data, 25); + this.networkPackNT(25); } } @Override - public void networkUnpack(NBTTagCompound nbt) { + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(progress); + buf.writeInt(heat); - this.recipeStack.clear(); - this.wasteStack.clear(); - - int[] rec = nbt.getIntArray("rec"); - for(int i = 0; i < rec.length / 2; i++) { - recipeStack.add(new MaterialStack(Mats.matById.get(rec[i * 2]), rec[i * 2 + 1])); + buf.writeShort(recipeStack.size()); + for(MaterialStack sta : recipeStack) { + if (sta.material == null) + buf.writeInt(-1); + else + buf.writeInt(sta.material.id); + buf.writeInt(sta.amount); } - - int[] was = nbt.getIntArray("was"); - for(int i = 0; i < was.length / 2; i++) { - wasteStack.add(new MaterialStack(Mats.matById.get(was[i * 2]), was[i * 2 + 1])); + + buf.writeShort(wasteStack.size()); + for(MaterialStack sta : wasteStack) { + if (sta.material == null) + buf.writeInt(-1); + else + buf.writeInt(sta.material.id); + buf.writeInt(sta.amount); } - - this.progress = nbt.getInteger("progress"); - this.heat = nbt.getInteger("heat"); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + progress = buf.readInt(); + heat = buf.readInt(); + + recipeStack.clear(); + wasteStack.clear(); + + int mats = buf.readShort(); + for(int i = 0; i < mats; i++) { + int id = buf.readInt(); + if (id == -1) + continue; + recipeStack.add(new MaterialStack(Mats.matById.get(id), buf.readInt())); + } + + mats = buf.readShort(); + for(int i = 0; i < mats; i++) { + int id = buf.readInt(); + if (id == -1) + continue; + wasteStack.add(new MaterialStack(Mats.matById.get(id), buf.readInt())); + } + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -261,20 +285,20 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro for(int i = 0; i < rec.length / 2; i++) { recipeStack.add(new MaterialStack(Mats.matById.get(rec[i * 2]), rec[i * 2 + 1])); } - + int[] was = nbt.getIntArray("was"); for(int i = 0; i < was.length / 2; i++) { wasteStack.add(new MaterialStack(Mats.matById.get(was[i * 2]), was[i * 2 + 1])); } - + this.progress = nbt.getInteger("progress"); this.heat = nbt.getInteger("heat"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + int[] rec = new int[recipeStack.size() * 2]; int[] was = new int[wasteStack.size() * 2]; for(int i = 0; i < recipeStack.size(); i++) { MaterialStack sta = recipeStack.get(i); rec[i * 2] = sta.material.id; rec[i * 2 + 1] = sta.amount; } @@ -284,21 +308,21 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro nbt.setInteger("progress", progress); nbt.setInteger("heat", heat); } - + protected void tryPullHeat() { - + if(this.heat >= this.maxHeat) return; - + TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); - + if(con instanceof IHeatSource) { IHeatSource source = (IHeatSource) con; int diff = source.getHeatStored() - this.heat; - + if(diff == 0) { return; } - + if(diff > 0) { diff = (int) Math.ceil(diff * diffusion); source.useUpHeat(diff); @@ -308,171 +332,170 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro return; } } - + this.heat = Math.max(this.heat - Math.max(this.heat / 1000, 1), 0); } - + protected boolean trySmelt() { - + if(this.heat < maxHeat / 2) return false; - + int slot = this.getFirstSmeltableSlot(); if(slot == -1) return false; - + int delta = this.heat - (maxHeat / 2); delta *= 0.05; - + this.progress += delta; this.heat -= delta; - + if(this.progress >= processTime) { this.progress = 0; - + List materials = Mats.getSmeltingMaterialsFromItem(slots[slot]); CrucibleRecipe recipe = getLoadedRecipe(); - + for(MaterialStack material : materials) { boolean mainStack = recipe != null && (getQuantaFromType(recipe.input, material.material) > 0 || getQuantaFromType(recipe.output, material.material) > 0); - + if(mainStack) { this.addToStack(this.recipeStack, material); } else { this.addToStack(this.wasteStack, material); } } - + this.decrStackSize(slot, 1); } - + return true; } - + protected void tryRecipe() { CrucibleRecipe recipe = this.getLoadedRecipe(); - + if(recipe == null) return; if(worldObj.getTotalWorldTime() % recipe.frequency > 0) return; - + for(MaterialStack stack : recipe.input) { if(getQuantaFromType(this.recipeStack, stack.material) < stack.amount) return; } - + for(MaterialStack stack : this.recipeStack) { stack.amount -= getQuantaFromType(recipe.input, stack.material); } - + outer: for(MaterialStack out : recipe.output) { - + for(MaterialStack stack : this.recipeStack) { if(stack.material == out.material) { stack.amount += out.amount; continue outer; } } - + this.recipeStack.add(out.copy()); } } - + protected int getFirstSmeltableSlot() { - + for(int i = 1; i < 10; i++) { - + ItemStack stack = slots[i]; - + if(stack != null && isItemSmeltable(stack)) { return i; } } - + return -1; } @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - + if(i == 0) { return stack.getItem() == ModItems.crucible_template; } - + return isItemSmeltable(stack); } - + public boolean isItemSmeltable(ItemStack stack) { - + List materials = Mats.getSmeltingMaterialsFromItem(stack); - + //if there's no materials in there at all, don't smelt if(materials.isEmpty()) return false; - CrucibleRecipe recipe = getLoadedRecipe(); - + //needs to be true, will always be true if there's no recipe loaded boolean matchesRecipe = recipe == null; - + //the amount of material in the entire recipe input int recipeContent = recipe != null ? recipe.getInputAmount() : 0; //the total amount of the current waste stack, used for simulation int recipeAmount = getQuantaFromType(this.recipeStack, null); int wasteAmount = getQuantaFromType(this.wasteStack, null); - + for(MaterialStack mat : materials) { //if no recipe is loaded, everything will land in the waste stack int recipeInputRequired = recipe != null ? getQuantaFromType(recipe.input, mat.material) : 0; - + //this allows pouring the ouput material back into the crucible if(recipe != null && getQuantaFromType(recipe.output, mat.material) > 0) { recipeAmount += mat.amount; matchesRecipe = true; continue; } - + if(recipeInputRequired == 0) { //if this type isn't required by the recipe, add it to the waste stack wasteAmount += mat.amount; } else { - + //the maximum is the recipe's ratio scaled up to the recipe stack's capacity int matMaximum = recipeInputRequired * this.recipeZCapacity / recipeContent; int amountStored = getQuantaFromType(recipeStack, mat.material); - + matchesRecipe = true; - + recipeAmount += mat.amount; - + //if the amount of that input would exceed the amount dictated by the recipe, return false if(recipe != null && amountStored + mat.amount > matMaximum) return false; } } - + //if the amount doesn't exceed the capacity and the recipe matches (or isn't null), return true return recipeAmount <= this.recipeZCapacity && wasteAmount <= this.wasteZCapacity && matchesRecipe; } - + public void addToStack(List stack, MaterialStack matStack) { - + for(MaterialStack mat : stack) { if(mat.material == matStack.material) { mat.amount += matStack.amount; return; } } - + stack.add(matStack.copy()); } - + public CrucibleRecipe getLoadedRecipe() { - + if(slots[0] != null && slots[0].getItem() == ModItems.crucible_template) { return CrucibleRecipes.indexMapping.get(slots[0].getItemDamage()); } - + return null; } - + /* "Arrays and Lists don't have a common ancestor" my fucking ass */ public int getQuantaFromType(MaterialStack[] stacks, NTMMaterial mat) { for(MaterialStack stack : stacks) { @@ -482,7 +505,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro } return 0; } - + public int getQuantaFromType(List stacks, NTMMaterial mat) { int sum = 0; for(MaterialStack stack : stacks) { @@ -508,15 +531,15 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrucible(player.inventory, this); } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -527,10 +550,10 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -539,30 +562,30 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro @Override public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) { - + CrucibleRecipe recipe = getLoadedRecipe(); - + if(recipe == null) { return getQuantaFromType(this.wasteStack, null) < this.wasteZCapacity; } - + int recipeContent = recipe.getInputAmount(); int recipeInputRequired = getQuantaFromType(recipe.input, stack.material); int matMaximum = recipeInputRequired * this.recipeZCapacity / recipeContent; int amountStored = getQuantaFromType(recipeStack, stack.material); - + return amountStored < matMaximum && getQuantaFromType(this.recipeStack, null) < this.recipeZCapacity; } @Override public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) { - + CrucibleRecipe recipe = getLoadedRecipe(); - + if(recipe == null) { - + int amount = getQuantaFromType(this.wasteStack, null); - + if(amount + stack.amount <= this.wasteZCapacity) { this.addToStack(this.wasteStack, stack.copy()); return null; @@ -572,16 +595,16 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro return new MaterialStack(stack.material, stack.amount - toAdd); } } - + int recipeContent = recipe.getInputAmount(); int recipeInputRequired = getQuantaFromType(recipe.input, stack.material); int matMaximum = recipeInputRequired * this.recipeZCapacity / recipeContent; - + if(recipeInputRequired + stack.amount <= matMaximum) { this.addToStack(this.recipeStack, stack.copy()); return null; } - + int toAdd = matMaximum - stack.amount; toAdd = Math.min(toAdd, this.recipeZCapacity - getQuantaFromType(this.recipeStack, null)); this.addToStack(this.recipeStack, new MaterialStack(stack.material, toAdd)); @@ -590,4 +613,18 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro @Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; } @Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return null; } + + @Override + public int[] getMatsToCopy() { + ArrayList types = new ArrayList<>(); + + for (MaterialStack stack : recipeStack) { + types.add(stack.material.id); + } + for (MaterialStack stack : wasteStack) { + types.add(stack.material.id); + } + return BobMathUtil.intCollectionToArray(types); + } + } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java new file mode 100644 index 000000000..4ea41461d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -0,0 +1,611 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import api.hbm.tile.IHeatSource; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.ReactorResearch; +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.inventory.container.ContainerMachineCustom; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineCustom; +import com.hbm.inventory.recipes.CustomMachineRecipes; +import com.hbm.inventory.recipes.CustomMachineRecipes.CustomMachineRecipe; +import com.hbm.lib.Library; +import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.tileentity.TileEntityProxyBase; +import com.hbm.util.BufferUtil; +import com.hbm.util.Compat; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityCustomMachine extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IEnergyProviderMK2, IEnergyReceiverMK2, IGUIProvider { + + public String machineType; + public MachineConfiguration config; + + public long power; + public int flux; + public int heat; + public int maxHeat; + public int progress; + public int maxProgress = 1; + public FluidTank[] inputTanks; + public FluidTank[] outputTanks; + public ModulePatternMatcher matcher; + public int structureCheckDelay; + public boolean structureOK = false; + public CustomMachineRecipe cachedRecipe; + + public List connectionPos = new ArrayList(); + public List fluxPos = new ArrayList(); + public List heatPos = new ArrayList(); + + public TileEntityCustomMachine() { + /* + * 0: Battery + * 1-3: Fluid IDs + * 4-9: Inputs + * 10-15: Template + * 16-21: Output + */ + super(22, 100); + } + + public void init() { + MachineConfiguration config = CustomMachineConfigJSON.customMachines.get(this.machineType); + + if (config != null) { + this.config = config; + + inputTanks = new FluidTank[config.fluidInCount]; + for (int i = 0; i < inputTanks.length; i++) inputTanks[i] = new FluidTank(Fluids.NONE, config.fluidInCap); + outputTanks = new FluidTank[config.fluidOutCount]; + for (int i = 0; i < outputTanks.length; i++) + outputTanks[i] = new FluidTank(Fluids.NONE, config.fluidOutCap); + maxHeat = config.maxHeat; + matcher = new ModulePatternMatcher(config.itemInCount); + smoke.changeTankSize(config.maxPollutionCap); + smoke_leaded.changeTankSize(config.maxPollutionCap); + smoke_poison.changeTankSize(config.maxPollutionCap); + + } else { + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + } + } + + @Override + public String getName() { + return config != null ? config.localizedName : "INVALID"; + } + + @Override + public void updateEntity() { + + if (!worldObj.isRemote) { + + if (config == null) { + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + return; + } + + this.power = Library.chargeTEFromItems(slots, 0, power, this.config.maxPower); + + if (this.inputTanks.length > 0) this.inputTanks[0].setType(1, slots); + if (this.inputTanks.length > 1) this.inputTanks[1].setType(2, slots); + if (this.inputTanks.length > 2) this.inputTanks[2].setType(3, slots); + + this.structureCheckDelay--; + if (this.structureCheckDelay <= 0) this.checkStructure(); + + if (this.worldObj.getTotalWorldTime() % 20 == 0) { + for (DirPos pos : this.connectionPos) { + for (FluidTank tank : this.inputTanks) { + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + if (!config.generatorMode) + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + for (byte d = 2; d < 6; d++) { + ForgeDirection dir = ForgeDirection.getOrientation(d); + for (DirPos pos : this.fluxPos) { + Block b = worldObj.getBlock(pos.getX() + dir.offsetX, pos.getY(), pos.getZ() + dir.offsetZ); + if (b == ModBlocks.reactor_research) { + int[] source = ((ReactorResearch) ModBlocks.reactor_research).findCore(worldObj, pos.getX() + dir.offsetX, pos.getY(), pos.getZ() + dir.offsetZ); + if (source != null) { + + TileEntity tile = worldObj.getTileEntity(source[0], source[1], source[2]); + + if (tile instanceof TileEntityReactorResearch) { + + TileEntityReactorResearch reactor = (TileEntityReactorResearch) tile; + this.flux = reactor.totalFlux; + } + } + } + } + if(config.maxHeat>0){ + for (DirPos pos : this.heatPos){ + this.tryPullHeat(pos.getX() + dir.offsetX, pos.getY()-1, pos.getZ() + dir.offsetZ); + } + } + } + } + + for (DirPos pos : this.connectionPos) { + if (config.generatorMode && power > 0) + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + for (FluidTank tank : this.outputTanks) + if (tank.getFill() > 0) + this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + if (this.structureOK) { + + if (config.generatorMode) { + if (this.cachedRecipe == null) { + CustomMachineRecipe recipe = this.getMatchingRecipe(); + if (recipe != null && this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { + this.cachedRecipe = recipe; + this.useUpInput(recipe); + } + } + + if (this.cachedRecipe != null) { + this.maxProgress = (int) Math.max(cachedRecipe.duration / this.config.recipeSpeedMult, 1); + int powerReq = (int) Math.max(cachedRecipe.consumptionPerTick * this.config.recipeConsumptionMult, 1); + + this.progress++; + this.power += powerReq; + this.heat -= cachedRecipe.heat; + if (power > config.maxPower) power = config.maxPower; + if (worldObj.getTotalWorldTime() % 20 == 0) { + pollution(cachedRecipe); + radiation(cachedRecipe); + } + if (progress >= this.maxProgress) { + this.progress = 0; + this.processRecipe(cachedRecipe); + this.cachedRecipe = null; + } + } + + } else { + CustomMachineRecipe recipe = this.getMatchingRecipe(); + + if (recipe != null) { + this.maxProgress = (int) Math.max(recipe.duration / this.config.recipeSpeedMult, 1); + int powerReq = (int) Math.max(recipe.consumptionPerTick * this.config.recipeConsumptionMult, 1); + + if (this.power >= powerReq && this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { + this.progress++; + this.power -= powerReq; + this.heat -= recipe.heat; + if (worldObj.getTotalWorldTime() % 20 == 0) { + pollution(recipe); + radiation(recipe); + } + if (progress >= this.maxProgress) { + this.progress = 0; + this.useUpInput(recipe); + this.processRecipe(recipe); + } + } + } else { + this.progress = 0; + } + } + } else { + this.progress = 0; + } + this.networkPackNT(50); + } + + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeLong(power); + buf.writeInt(progress); + buf.writeInt(flux); + buf.writeInt(heat); + buf.writeBoolean(structureOK); + buf.writeInt(maxProgress); + for (FluidTank inputTank : inputTanks) inputTank.serialize(buf); + for (FluidTank outputTank : outputTanks) outputTank.serialize(buf); + this.matcher.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.machineType = BufferUtil.readString(buf); + if(this.config == null) this.init(); + + this.power = buf.readLong(); + this.progress = buf.readInt(); + this.flux = buf.readInt(); + this.heat = buf.readInt(); + this.structureOK = buf.readBoolean(); + this.maxProgress = buf.readInt(); + for (FluidTank inputTank : inputTanks) inputTank.deserialize(buf); + for (FluidTank outputTank : outputTanks) outputTank.deserialize(buf); + this.matcher.deserialize(buf); + } + + /** Only accepts inputs in a fixed order, saves a ton of performance because there's no permutations to check for */ + public CustomMachineRecipe getMatchingRecipe() { + List recipes = CustomMachineRecipes.recipes.get(this.config.recipeKey); + if(recipes == null || recipes.isEmpty()) return null; + + outer: + for(CustomMachineRecipe recipe : recipes) { + for(int i = 0; i < recipe.inputFluids.length; i++) { + if(this.inputTanks[i].getTankType() != recipe.inputFluids[i].type || this.inputTanks[i].getPressure() != recipe.inputFluids[i].pressure) continue outer; + } + + for(int i = 0; i < recipe.inputItems.length; i++) { + if(recipe.inputItems[i] != null && slots[i + 4] == null) continue outer; + if(!recipe.inputItems[i].matchesRecipe(slots[i + 4], true)) continue outer; + } + + return recipe; + } + + return null; + } + public void pollution(CustomMachineRecipe recipe) { + if(recipe.pollutionAmount > 0) { + this.pollute(PollutionHandler.PollutionType.valueOf(recipe.pollutionType), recipe.pollutionAmount); + } else if(recipe.pollutionAmount < 0 && PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionHandler.PollutionType.valueOf(recipe.pollutionType)) >= -recipe.pollutionAmount) { + PollutionHandler.decrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionHandler.PollutionType.valueOf(recipe.pollutionType), -recipe.pollutionAmount); + } + } + public void radiation(CustomMachineRecipe recipe){ + if(recipe.radiationAmount > 0) { + ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, recipe.radiationAmount); + } else if (recipe.radiationAmount < 0) { + ChunkRadiationManager.proxy.decrementRad(worldObj, xCoord, yCoord, zCoord, -recipe.radiationAmount); + } + } + protected void tryPullHeat(int x, int y, int z) { + TileEntity con = worldObj.getTileEntity(x, y, z); + + if(con instanceof IHeatSource) { + IHeatSource source = (IHeatSource) con; + int diff = source.getHeatStored() - this.heat; + + if(diff == 0) { + return; + } + + if(diff > 0) { + source.useUpHeat(diff); + this.heat += diff; + if(this.heat > this.maxHeat) + this.heat = this.maxHeat; + } + } + } + public boolean hasRequiredQuantities(CustomMachineRecipe recipe) { + + for(int i = 0; i < recipe.inputFluids.length; i++) { + if(this.inputTanks[i].getFill() < recipe.inputFluids[i].fill) return false; + } + + for(int i = 0; i < recipe.inputItems.length; i++) { + if(slots[i + 4] != null && slots[i + 4].stackSize < recipe.inputItems[i].stacksize) return false; + } + if(config.fluxMode ? this.flux < recipe.flux : false) return false; + if(config.maxHeat>0 && recipe.heat>0 ? this.heat < recipe.heat : false) return false; + return true; + } + + public boolean hasSpace(CustomMachineRecipe recipe) { + + for(int i = 0; i < recipe.outputFluids.length; i++) { + if(this.outputTanks[i].getTankType() == recipe.outputFluids[i].type && this.outputTanks[i].getFill() + recipe.outputFluids[i].fill > this.outputTanks[i].getMaxFill()) return false; + } + + for(int i = 0; i < recipe.outputItems.length; i++) { + if(slots[i + 16] != null && (slots[i + 16].getItem() != recipe.outputItems[i].key.getItem() || slots[i + 16].getItemDamage() != recipe.outputItems[i].key.getItemDamage())) return false; + if(slots[i + 16] != null && slots[16 + i].stackSize + recipe.outputItems[i].key.stackSize > slots[i + 16].getMaxStackSize()) return false; + } + + return true; + } + + public void useUpInput(CustomMachineRecipe recipe) { + + for(int i = 0; i < recipe.inputFluids.length; i++) { + this.inputTanks[i].setFill(this.inputTanks[i].getFill() - recipe.inputFluids[i].fill); + } + + for(int i = 0; i < recipe.inputItems.length; i++) { + this.decrStackSize(i + 4, recipe.inputItems[i].stacksize); + } + } + + public void processRecipe(CustomMachineRecipe recipe) { + + for(int i = 0; i < recipe.outputFluids.length; i++) { + if(this.outputTanks[i].getTankType() != recipe.outputFluids[i].type) this.outputTanks[i].setTankType(recipe.outputFluids[i].type); + this.outputTanks[i].setFill(this.outputTanks[i].getFill() + recipe.outputFluids[i].fill); + } + + for(int i = 0; i < recipe.outputItems.length; i++) { + + if(worldObj.rand.nextFloat() < recipe.outputItems[i].value) { + if(slots[i + 16] == null) { + slots[i + 16] = recipe.outputItems[i].key.copy(); + } else { + slots[i + 16].stackSize += recipe.outputItems[i].key.stackSize; + } + } + } + } + + public boolean checkStructure() { + + this.connectionPos.clear(); + this.structureCheckDelay = 300; + this.structureOK = false; + if(this.config == null) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + for(ComponentDefinition comp : config.components) { + + /* vvv precisely the same method used for defining ports vvv */ + int x = xCoord - dir.offsetX * comp.x + rot.offsetX * comp.x; + int y = yCoord + comp.y; + int z = zCoord - dir.offsetZ * comp.z + rot.offsetZ * comp.z; + /* but for EW directions it just stops working entirely */ + /* there is absolutely zero reason why this should be required */ + if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { + x = xCoord + dir.offsetZ * comp.z - rot.offsetZ * comp.z; + z = zCoord + dir.offsetX * comp.x - rot.offsetX * comp.x; + } + /* i wholeheartedly believe it is the computer who is wrong here */ + + Block b = worldObj.getBlock(x, y, z); + if(b != comp.block) return false; + + int meta = worldObj.getBlockMetadata(x, y, z); + if(!comp.allowedMetas.contains(meta)) return false; + + TileEntity tile = Compat.getTileStandard(worldObj, x, y, z); + if(tile instanceof TileEntityProxyBase) { + TileEntityProxyBase proxy = (TileEntityProxyBase) tile; + proxy.cachedPosition = new BlockPos(xCoord, yCoord, zCoord); + proxy.markDirty(); + + for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { + this.connectionPos.add(new DirPos(x + facing.offsetX, y + facing.offsetY, z + facing.offsetZ, facing)); + } + } + if(worldObj.getBlock(x,y,z) == ModBlocks.cm_flux){ + for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { + this.fluxPos.add(new DirPos(x + facing.offsetX, y + facing.offsetY, z + facing.offsetZ, facing)); + } + } + else if(worldObj.getBlock(x,y,z) == ModBlocks.cm_heat){ + for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { + this.heatPos.add(new DirPos(x + facing.offsetX, y + facing.offsetY, z + facing.offsetZ, facing)); + } + } + + } + for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { + this.connectionPos.add(new DirPos(xCoord + facing.offsetX, yCoord + facing.offsetY, zCoord + facing.offsetZ, facing)); + } + + this.structureOK = true; + return true; + } + + public void buildStructure() { + + if(this.config == null) return; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + for(ComponentDefinition comp : config.components) { + + int x = xCoord - dir.offsetX * comp.x + rot.offsetX * comp.x; + int y = yCoord + comp.y; + int z = zCoord - dir.offsetZ * comp.z + rot.offsetZ * comp.z; + if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { + x = xCoord + dir.offsetZ * comp.z - rot.offsetZ * comp.z; + z = zCoord + dir.offsetX * comp.x - rot.offsetX * comp.x; + } + + worldObj.setBlock(x, y, z, comp.block, (int) comp.allowedMetas.toArray()[0], 3); + } + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + if(this.config == null) return new int[] { }; + if(this.config.itemInCount > 5) return new int[] { 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 4) return new int[] { 4, 5, 6, 7, 8, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 3) return new int[] { 4, 5, 6, 7, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 2) return new int[] { 4, 5, 6, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 1) return new int[] { 4, 5, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 0) return new int[] { 4, 16, 17, 18, 19, 20, 21 }; + return new int[] { 16, 17, 18, 19, 20, 21 }; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return i >= 16 && i <= 21; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot < 4 || slot > 9) return false; + + int index = slot - 4; + int filterSlot = slot + 6; + + if(slots[filterSlot] == null) return true; + + return matcher.isValidForFilter(slots[filterSlot], index, stack); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + + this.machineType = nbt.getString("machineType"); + this.init(); + + super.readFromNBT(nbt); + + if(this.config != null) { + + for(int i = 0; i < inputTanks.length; i++) inputTanks[i].readFromNBT(nbt, "i" + i); + for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); + + this.matcher.readFromNBT(nbt); + + int index = nbt.getInteger("cachedIndex"); + if(index != -1) { + this.cachedRecipe = CustomMachineRecipes.recipes.get(this.config.recipeKey).get(index); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + + if(machineType == null || this.config == null) { + super.writeToNBT(nbt); + return; + } + + nbt.setString("machineType", machineType); + + super.writeToNBT(nbt); + + for(int i = 0; i < inputTanks.length; i++) inputTanks[i].writeToNBT(nbt, "i" + i); + for(int i = 0; i < outputTanks.length; i++) outputTanks[i].writeToNBT(nbt, "o" + i); + + this.matcher.writeToNBT(nbt); + + if(this.cachedRecipe != null) { + int index = CustomMachineRecipes.recipes.get(this.config.recipeKey).indexOf(this.cachedRecipe); + nbt.setInteger("cachedIndex", index); + } else { + nbt.setInteger("cachedIndex", -1); + } + } + + @Override + public FluidTank[] getAllTanks() { + + FluidTank[] all = new FluidTank[inputTanks.length + outputTanks.length]; + + for(int i = 0; i < inputTanks.length; i++) all[i] = inputTanks[i]; + for(int i = 0; i < outputTanks.length; i++) all[inputTanks.length + i] = outputTanks[i]; + + return all; + } + + @Override + public FluidTank[] getSendingTanks() { + FluidTank[] all = new FluidTank[outputTanks.length + this.getSmokeTanks().length]; + for(int i = 0; i < outputTanks.length; i++) all[i] = outputTanks[i]; + for(int i = 0; i < this.getSmokeTanks().length; i++) all[outputTanks.length + i] = this.getSmokeTanks()[i]; + //return outputTanks != null ? outputTanks : new FluidTank[0]; + return all; + } + + @Override + public FluidTank[] getReceivingTanks() { + return inputTanks != null ? inputTanks : new FluidTank[0]; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(this.config == null) return null; + return new ContainerMachineCustom(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(this.config == null) return null; + return new GUIMachineCustom(player.inventory, this); + } + + @Override + public long getPower() { + return this.power; + } + + @Override + public long getMaxPower() { + return this.config != null ? this.config.maxPower : 1; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long transferPower(long power) { + if(this.config != null && this.config.generatorMode) return power; + + this.setPower(this.getPower() + power); + + if(this.getPower() > this.getMaxPower()) { + + long overshoot = this.getPower() - this.getMaxPower(); + this.setPower(this.getMaxPower()); + return overshoot; + } + + return 0; + } + + @Override + public long getReceiverSpeed() { + if(this.config != null && !this.config.generatorMode) return this.getMaxPower(); + return 0; + } + + @Override + public long getProviderSpeed() { + if(this.config != null && this.config.generatorMode) return this.getMaxPower(); + return 0; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java index df1c3f774..9cdfd6e3d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java @@ -20,7 +20,7 @@ public class TileEntityCyberCrab extends TileEntity { if (!this.worldObj.isRemote) { age++; - if(age > 200 && worldObj.getBlock(xCoord, yCoord + 1, zCoord) == Blocks.air) { + if(age > 200 && worldObj.getBlock(xCoord, yCoord + 1, zCoord) == Blocks.air && worldObj.getClosestPlayer(xCoord + 0.5, yCoord + 1, zCoord + 0.5, 25) != null) { List entities = this.worldObj.getEntitiesWithinAABB(EntityCyberCrab.class, AxisAlignedBB.getBoundingBox(this.xCoord - 5, this.yCoord - 2, this.zCoord - 5, this.xCoord + 6, this.yCoord + 4, this.zCoord + 6)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeaerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeaerator.java deleted file mode 100644 index 9877146e6..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeaerator.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.tileentity.TileEntityMachineBase; - -public class TileEntityDeaerator extends TileEntityMachineBase { - - public TileEntityDeaerator() { - super(0); - } - - @Override - public String getName() { - return "container.deaerator"; - } - - @Override - public void updateEntity() { - - } - -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index b902dfd3e..50a277d3a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -2,14 +2,16 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver { +public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IFluidCopiable { public long power = 0; public FluidTank[] tanks; @@ -44,13 +46,8 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen this.subscribeToAllAround(tanks[0].getTankType(), this); this.sendFluidToAll(tanks[1], this); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - tanks[0].writeToNBT(data, "water"); - tanks[1].writeToNBT(data, "heavyWater"); - this.networkPack(data, 50); + this.networkPackNT(50); } } @@ -60,10 +57,20 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } - public void networkUnpack(NBTTagCompound data) { - this.power = data.getLong("power"); - tanks[0].readFromNBT(data, "water"); - tanks[1].readFromNBT(data, "heavyWater"); + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); } public boolean hasPower() { @@ -119,4 +126,9 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen public FluidTank[] getAllTanks() { return tanks; } + + @Override + public FluidTank getTankToPaste() { + return null; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java index a05b6fe01..c320c81e7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java @@ -17,8 +17,8 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { public TileEntityDeuteriumTower() { super(); - tanks[0] = new FluidTank(Fluids.WATER, 50000, 0); - tanks[1] = new FluidTank(Fluids.HEAVYWATER, 5000, 1); + tanks[0] = new FluidTank(Fluids.WATER, 50000); + tanks[1] = new FluidTank(Fluids.HEAVYWATER, 5000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java index 57aa32c9c..ea816adae 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java @@ -5,16 +5,19 @@ import com.hbm.blocks.machine.MachineDiFurnace; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.container.ContainerDiFurnace; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIDiFurnace; import com.hbm.inventory.recipes.BlastFurnaceRecipes; import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.INBTPacketReceiver; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.CompatEnergyControl; +import api.hbm.fluid.IFluidStandardSender; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -23,8 +26,9 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityDiFurnace extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider, IInfoProviderEC { public int progress; public int fuel; @@ -37,7 +41,7 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr public byte sideLower = 1; public TileEntityDiFurnace() { - super(4); + super(4, 50); } @Override @@ -129,32 +133,19 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr } public boolean canProcess() { - if(slots[0] == null || slots[1] == null) { - return false; - } + if(slots[0] == null || slots[1] == null) return false; + if(!this.hasPower()) return false; - if(!this.hasPower()) { - return false; - } - - ItemStack itemStack = BlastFurnaceRecipes.getOutput(slots[0], slots[1]); - if(itemStack == null) { - return false; - } + ItemStack output = BlastFurnaceRecipes.getOutput(slots[0], slots[1]); + if(output == null) return false; + if(slots[3] == null) return true; + if(!slots[3].isItemEqual(output)) return false; - if(slots[3] == null) { + if(slots[3].stackSize + output.stackSize <= slots[3].getMaxStackSize()) { return true; } - - if(!slots[3].isItemEqual(itemStack)) { - return false; - } - - if(slots[3].stackSize < getInventoryStackLimit() && slots[3].stackSize < slots[3].getMaxStackSize()) { - return true; - } else { - return slots[3].stackSize < itemStack.getMaxStackSize(); - } + + return false; } private void processItem() { @@ -183,6 +174,14 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr public void updateEntity() { if(!worldObj.isRemote) { + + boolean extension = worldObj.getBlock(xCoord, yCoord + 1, zCoord) == ModBlocks.machine_difurnace_extension; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } + + if(extension) this.sendSmoke(xCoord, yCoord + 2, zCoord, ForgeDirection.UP); boolean markDirty = false; @@ -198,7 +197,6 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr } if(canProcess()) { - boolean extension = worldObj.getBlock(xCoord, yCoord + 1, zCoord) == ModBlocks.machine_difurnace_extension; //fuel -= extension ? 2 : 1; fuel -= 1; //switch it up on me, fuel efficiency, on fumes i'm running - running - running - running @@ -214,7 +212,7 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr fuel = 0; } - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (extension ? 3 : 1)); + if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (extension ? 3 : 1)); } else { progress = 0; @@ -231,11 +229,7 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr MachineDiFurnace.updateBlockState(this.progress > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } - NBTTagCompound data = new NBTTagCompound(); - data.setShort("time", (short) this.progress); - data.setShort("fuel", (short) this.fuel); - data.setByteArray("modes", new byte[] { (byte) sideFuel, (byte) sideUpper, (byte) sideLower }); - INBTPacketReceiver.networkPack(this, data, 15); + networkPackNT(15); if(markDirty) { this.markDirty(); @@ -244,10 +238,21 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.progress = nbt.getShort("time"); - this.fuel = nbt.getShort("fuel"); - byte[] modes = nbt.getByteArray("modes"); + public void serialize(ByteBuf buf) { + buf.writeShort(this.progress); + buf.writeShort(this.fuel); + buf.writeBytes(new byte[] { + this.sideFuel, + this.sideUpper, + this.sideLower}); + } + + @Override + public void deserialize(ByteBuf buf) { + this.progress = buf.readShort(); + this.fuel = buf.readShort(); + byte[] modes = new byte[3]; + buf.readBytes(modes); this.sideFuel = modes[0]; this.sideUpper = modes[1]; this.sideLower = modes[2]; @@ -260,7 +265,24 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIDiFurnace(player.inventory, this); } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[0]; + } + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_ENERGY_, this.fuel); + data.setLong(CompatEnergyControl.L_CAPACITY_, this.maxFuel); + data.setInteger(CompatEnergyControl.I_PROGRESS, this.progress); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java index 7b5d5e485..8481f713a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java @@ -4,27 +4,32 @@ import com.hbm.blocks.machine.MachineDiFurnaceRTG; import com.hbm.inventory.container.ContainerMachineDiFurnaceRTG; import com.hbm.inventory.gui.GUIMachineDiFurnaceRTG; import com.hbm.inventory.recipes.BlastFurnaceRecipes; +import com.hbm.items.machine.ItemRTGPellet; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.RTGUtil; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGUIProvider -{ +public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGUIProvider, IInfoProviderEC { + public short progress; private short processSpeed = 0; // Edit as needed private static final short timeRequired = 1200; private static final int[] rtgIn = new int[] {3, 4, 5, 6, 7, 8}; private String name; + public byte sideUpper = 1; + public byte sideLower = 1; public TileEntityDiFurnaceRTG() { super(9); @@ -67,18 +72,28 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU MachineDiFurnaceRTG.updateBlockState(isProcessing() || (canProcess() && hasPower()), getWorldObj(), xCoord, yCoord, zCoord); - NBTTagCompound data = new NBTTagCompound(); - data.setShort("progress", progress); - data.setShort("speed", processSpeed); - networkPack(data, 10); + networkPackNT(10); } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - progress = nbt.getShort("progress"); - processSpeed = nbt.getShort("speed"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeShort(progress); + buf.writeShort(processSpeed); + buf.writeBytes(new byte[] {sideUpper, sideLower}); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + progress = buf.readShort(); + processSpeed = buf.readShort(); + byte[] bytes = new byte[2]; + buf.readBytes(bytes); + this.sideUpper = bytes[0]; + this.sideLower = bytes[1]; + } + private void processItem() { if(canProcess()) { @@ -105,6 +120,10 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU super.readFromNBT(nbt); progress = nbt.getShort("progress"); processSpeed = nbt.getShort("speed"); + + byte[] modes = nbt.getByteArray("modes"); + this.sideUpper = modes[0]; + this.sideLower = modes[1]; } @Override @@ -112,6 +131,7 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU super.writeToNBT(nbt); nbt.setShort("progress", progress); nbt.setShort("speed", processSpeed); + nbt.setByteArray("modes", new byte[] {(byte) sideUpper, (byte) sideLower}); } public int getDiFurnaceProgressScaled(int i) { @@ -159,21 +179,33 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU return 64; } + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + if(i == 0 && this.sideUpper != j) return false; + if(i == 1 && this.sideLower != j) return false; + + return this.isItemValidForSlot(i, itemStack); + } + @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 2) { - return false; - } - return true; + if(i == 2) return false; + if(stack.getItem() instanceof ItemRTGPellet) return i > 2; + return !(stack.getItem() instanceof ItemRTGPellet); } @Override public int[] getAccessibleSlotsFromSide(int side) { - return side == 0 ? new int[] {2} : side == 1 ? new int[] {0} : new int[] {1}; + return new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8}; } @Override public boolean canExtractItem(int slot, ItemStack stack, int side) { + + if(slot > 2) { + return !(stack.getItem() instanceof ItemRTGPellet); + } + return slot == 2; } @@ -189,8 +221,13 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineDiFurnaceRTG(player.inventory, this); } + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_FUEL, this.getPower()); + data.setInteger(CompatEnergyControl.I_PROGRESS, this.progress); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index c2eb12a1a..2626569a2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -1,204 +1,605 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.container.ContainerElectrolyser; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIElectrolyser; -import com.hbm.lib.Library; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.energy.IEnergyUser; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IGUIProvider /* TODO: new fluid API */ { - - public long power; - public static final long maxPower = 20000000; - public static final int usageBase = 10000; - public int usage; - - public int progressFluid; - public static final int processFluidTimeBase = 100; - public int processFluidTime; - public int progressOre; - public static final int processOreTimeBase = 1000; - public int processOreTime; - - public FluidTank[] tanks; - - public TileEntityElectrolyser() { - super(24); - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.WATER, 16000, 0); - tanks[1] = new FluidTank(Fluids.HYDROGEN, 16000, 1); - tanks[2] = new FluidTank(Fluids.OXYGEN, 16000, 2); - } - - @Override - public String getName() { - return "container.machineElectrolyser"; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - this.tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setInteger("progressFluid", this.progressFluid); - data.setInteger("progressOre", this.progressOre); - data.setInteger("usage", this.usage); - data.setInteger("processFluidTime", this.processFluidTime); - data.setInteger("processOreTime", this.processOreTime); - this.networkPack(data, 50); - - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); - } - - } - - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * -1, getTact(), type); - fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * 1, getTact(), type); - fillFluid(xCoord + dir.offsetX * -5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * -1, getTact(), type); - fillFluid(xCoord + dir.offsetX * -5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * 1, getTact(), type); - - } - - AxisAlignedBB bb = null; - - @Override - public AxisAlignedBB getRenderBoundingBox() { - - if(bb == null) { - bb = AxisAlignedBB.getBoundingBox( - xCoord - 3, - yCoord - 0, - zCoord - 4, - xCoord + 3, - yCoord + 4, - zCoord + 4 - ); - } - - return bb; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } - - @Override - public long getPower() { - return this.power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void setFillForSync(int fill, int index) { - tanks[index].setFill(fill); - - } - - @Override - public void setFluidFill(int fill, FluidType type) { - for(int i = 0; i < 3; i++) { - if(type == tanks[i].getTankType()) - tanks[i].setFill(fill); - } - - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tanks[index].setTankType(type); - - } - - @Override - public int getFluidFill(FluidType type) { - for(int i = 0; i < 3; i++) { - if(type == tanks[i].getTankType() && tanks[i].getFill() != 0) - return tanks[i].getFill(); - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - for(int i = 0; i < 3; i++) { - if(type == tanks[i].getTankType() && tanks[i].getMaxFill() != 0) - return tanks[i].getMaxFill(); - } - return 0; - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public List getFluidList(FluidType type) { - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - return; - } - - @Override - public void setPower(long power) { - this.power = power; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerElectrolyser(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIElectrolyser(player.inventory, this); - } - -} +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.container.ContainerElectrolyserFluid; +import com.hbm.inventory.container.ContainerElectrolyserMetal; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIElectrolyserFluid; +import com.hbm.inventory.gui.GUIElectrolyserMetal; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.recipes.ElectrolyserFluidRecipes; +import com.hbm.inventory.recipes.ElectrolyserFluidRecipes.ElectrolysisRecipe; +import com.hbm.inventory.recipes.ElectrolyserMetalRecipes; +import com.hbm.inventory.recipes.ElectrolyserMetalRecipes.ElectrolysisMetalRecipe; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.*; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.BobMathUtil; +import com.hbm.util.CrucibleUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable, IMetalCopiable { + + public long power; + public static final long maxPower = 20000000; + public static final int usageOreBase = 10_000; + public static final int usageFluidBase = 10_000; + public int usageOre; + public int usageFluid; + + public int progressFluid; + public int processFluidTime = 100; + public int progressOre; + public int processOreTime = 600; + + public MaterialStack leftStack; + public MaterialStack rightStack; + public int maxMaterial = MaterialShapes.BLOCK.q(16); + + public FluidTank[] tanks; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + + public TileEntityElectrolyser() { + //0: Battery + //1-2: Upgrades + //// FLUID + //3-4: Fluid ID + //5-10: Fluid IO + //11-13: Byproducts + //// METAL + //14: Crystal + //15-20: Outputs + super(21); + tanks = new FluidTank[4]; + tanks[0] = new FluidTank(Fluids.WATER, 16000); + tanks[1] = new FluidTank(Fluids.HYDROGEN, 16000); + tanks[2] = new FluidTank(Fluids.OXYGEN, 16000); + tanks[3] = new FluidTank(Fluids.NITRIC_ACID, 16000); + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + if(i == 14) return ElectrolyserMetalRecipes.getRecipe(itemStack) != null; + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i != 14; + } + + @Override + public String getName() { + return "container.machineElectrolyser"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); + this.tanks[0].setType(3, 4, slots); + this.tanks[0].loadTank(5, 6, slots); + this.tanks[1].unloadTank(7, 8, slots); + this.tanks[2].unloadTank(9, 10, slots); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : this.getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[3].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + upgradeManager.checkSlots(this, slots, 1, 2); + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); + + usageOre = usageOreBase - usageOreBase * powerLevel / 4 + usageOreBase * speedLevel; + usageFluid = usageFluidBase - usageFluidBase * powerLevel / 4 + usageFluidBase * speedLevel; + + for(int i = 0; i < getCycleCount(); i++) { + if (this.canProcessFluid()) { + this.progressFluid++; + this.power -= this.usageFluid; + + if (this.progressFluid >= this.getDurationFluid()) { + this.processFluids(); + this.progressFluid = 0; + this.markChanged(); + } + } + + if (this.canProcessMetal()) { + this.progressOre++; + this.power -= this.usageOre; + + if (this.progressOre >= this.getDurationMetal()) { + this.processMetal(); + this.progressOre = 0; + this.markChanged(); + } + } + } + + if(this.leftStack != null) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); + List toCast = new ArrayList(); + toCast.add(this.leftStack); + + Vec3 impact = Vec3.createVectorHelper(0, 0, 0); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(3) * Math.max (getCycleCount() * speedLevel, 1), impact); + + if(didPour != null) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "foundry"); + data.setInteger("color", didPour.material.moltenColor); + data.setByte("dir", (byte) dir.ordinal()); + data.setFloat("off", 0.625F); + data.setFloat("base", 0.625F); + data.setFloat("len", Math.max(1F, yCoord - (float) (Math.ceil(impact.yCoord) - 0.875) + 2)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2, zCoord + 0.5D + dir.offsetZ * 5.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); + + if(this.leftStack.amount <= 0) this.leftStack = null; + } + } + + if(this.rightStack != null) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + List toCast = new ArrayList(); + toCast.add(this.rightStack); + + Vec3 impact = Vec3.createVectorHelper(0, 0, 0); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(3) * Math.max (getCycleCount() * speedLevel, 1), impact); + + if(didPour != null) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "foundry"); + data.setInteger("color", didPour.material.moltenColor); + data.setByte("dir", (byte) dir.ordinal()); + data.setFloat("off", 0.625F); + data.setFloat("base", 0.625F); + data.setFloat("len", Math.max(1F, yCoord - (float) (Math.ceil(impact.yCoord) - 0.875) + 2)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2, zCoord + 0.5D + dir.offsetZ * 5.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); + + if(this.rightStack.amount <= 0) this.rightStack = null; + } + } + + this.networkPackNT(50); + } + } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 6, yCoord, zCoord - dir.offsetZ * 6, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 6 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 6 + rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 6 - rot.offsetX, yCoord, zCoord - dir.offsetZ * 6 - rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 6, yCoord, zCoord + dir.offsetZ * 6, dir), + new DirPos(xCoord + dir.offsetX * 6 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 6 + rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX * 6 - rot.offsetX, yCoord, zCoord + dir.offsetZ * 6 - rot.offsetZ, dir) + }; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeInt(this.progressFluid); + buf.writeInt(this.progressOre); + buf.writeInt(this.usageOre); + buf.writeInt(this.usageFluid); + buf.writeInt(this.getDurationFluid()); + buf.writeInt(this.getDurationMetal()); + for(int i = 0; i < 4; i++) tanks[i].serialize(buf); + buf.writeBoolean(this.leftStack != null); + buf.writeBoolean(this.rightStack != null); + if(this.leftStack != null) { + buf.writeInt(leftStack.material.id); + buf.writeInt(leftStack.amount); + } + if(this.rightStack != null) { + buf.writeInt(rightStack.material.id); + buf.writeInt(rightStack.amount); + } + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.progressFluid = buf.readInt(); + this.progressOre = buf.readInt(); + this.usageOre = buf.readInt(); + this.usageFluid = buf.readInt(); + this.processFluidTime = buf.readInt(); + this.processOreTime = buf.readInt(); + for(int i = 0; i < 4; i++) tanks[i].deserialize(buf); + boolean left = buf.readBoolean(); + boolean right = buf.readBoolean(); + if(left) { + this.leftStack = new MaterialStack(Mats.matById.get(buf.readInt()), buf.readInt()); + } + if(right) { + this.rightStack = new MaterialStack(Mats.matById.get(buf.readInt()), buf.readInt()); + } + } + + public boolean canProcessFluid() { + + if(this.power < usageFluid) return false; + + ElectrolysisRecipe recipe = ElectrolyserFluidRecipes.recipes.get(tanks[0].getTankType()); + + if(recipe == null) return false; + if(recipe.amount > tanks[0].getFill()) return false; + if(recipe.output1.type == tanks[1].getTankType() && recipe.output1.fill + tanks[1].getFill() > tanks[1].getMaxFill()) return false; + if(recipe.output2.type == tanks[2].getTankType() && recipe.output2.fill + tanks[2].getFill() > tanks[2].getMaxFill()) return false; + + if(recipe.byproduct != null) { + + for(int i = 0; i < recipe.byproduct.length; i++) { + ItemStack slot = slots[11 + i]; + ItemStack byproduct = recipe.byproduct[i]; + + if(slot == null) continue; + if(!slot.isItemEqual(byproduct)) return false; + if(slot.stackSize + byproduct.stackSize > slot.getMaxStackSize()) return false; + } + } + + return true; + } + + public void processFluids() { + + ElectrolysisRecipe recipe = ElectrolyserFluidRecipes.recipes.get(tanks[0].getTankType()); + tanks[0].setFill(tanks[0].getFill() - recipe.amount); + tanks[1].setTankType(recipe.output1.type); + tanks[2].setTankType(recipe.output2.type); + tanks[1].setFill(tanks[1].getFill() + recipe.output1.fill); + tanks[2].setFill(tanks[2].getFill() + recipe.output2.fill); + + if(recipe.byproduct != null) { + + for(int i = 0; i < recipe.byproduct.length; i++) { + ItemStack slot = slots[11 + i]; + ItemStack byproduct = recipe.byproduct[i]; + + if(slot == null) { + slots[11 + i] = byproduct.copy(); + } else { + slots[11 + i].stackSize += byproduct.stackSize; + } + } + } + } + + public boolean canProcessMetal() { + + if(slots[14] == null) return false; + if(this.power < usageOre) return false; + if(this.tanks[3].getFill() < 100) return false; + + ElectrolysisMetalRecipe recipe = ElectrolyserMetalRecipes.getRecipe(slots[14]); + if(recipe == null) return false; + + if(leftStack != null && recipe.output1 != null) { + if(recipe.output1.material != leftStack.material) return false; + if(recipe.output1.amount + leftStack.amount > this.maxMaterial) return false; + } + + if(rightStack != null && recipe.output2 != null) { + if(recipe.output2.material != rightStack.material) return false; + if(recipe.output2.amount + rightStack.amount > this.maxMaterial) return false; + } + + if(recipe.byproduct != null) { + + for(int i = 0; i < recipe.byproduct.length; i++) { + ItemStack slot = slots[15 + i]; + ItemStack byproduct = recipe.byproduct[i]; + + if(slot == null) continue; + if(!slot.isItemEqual(byproduct)) return false; + if(slot.stackSize + byproduct.stackSize > slot.getMaxStackSize()) return false; + } + } + + return true; + } + + public void processMetal() { + + ElectrolysisMetalRecipe recipe = ElectrolyserMetalRecipes.getRecipe(slots[14]); + if(recipe.output1 != null) + if(leftStack == null) { + leftStack = new MaterialStack(recipe.output1.material, recipe.output1.amount); + } else { + leftStack.amount += recipe.output1.amount; + } + + if(recipe.output2 != null) + if(rightStack == null ) { + rightStack = new MaterialStack(recipe.output2.material, recipe.output2.amount); + } else { + rightStack.amount += recipe.output2.amount; + } + + if(recipe.byproduct != null) { + + for(int i = 0; i < recipe.byproduct.length; i++) { + ItemStack slot = slots[15 + i]; + ItemStack byproduct = recipe.byproduct[i]; + + if(slot == null) { + slots[15 + i] = byproduct.copy(); + } else { + slots[15 + i].stackSize += byproduct.stackSize; + } + } + } + + this.tanks[3].setFill(this.tanks[3].getFill() - 100); + this.decrStackSize(14, 1); + } + + public int getDurationMetal() { + ElectrolysisMetalRecipe result = ElectrolyserMetalRecipes.getRecipe(slots[14]); + int base = result != null ? result.duration : 600; + int speed = upgradeManager.getLevel(UpgradeType.SPEED) - Math.min(upgradeManager.getLevel(UpgradeType.POWER), 1); + return (int) Math.ceil((base * Math.max(1F - 0.25F * speed, 0.2))); + } + public int getDurationFluid() { + ElectrolysisRecipe result = ElectrolyserFluidRecipes.getRecipe(tanks[0].getTankType()); + int base = result != null ? result.duration : 100; + int speed = upgradeManager.getLevel(UpgradeType.SPEED) - Math.min(upgradeManager.getLevel(UpgradeType.POWER), 1); + return (int) Math.ceil((base * Math.max(1F - 0.25F * speed, 0.2))); + + } + + public int getCycleCount() { + int speed = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + return Math.min(1 + speed * 2, 7); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + this.progressFluid = nbt.getInteger("progressFluid"); + this.progressOre = nbt.getInteger("progressOre"); + this.processFluidTime = nbt.getInteger("processFluidTime"); + this.processOreTime = nbt.getInteger("processOreTime"); + if(nbt.hasKey("leftType")) this.leftStack = new MaterialStack(Mats.matById.get(nbt.getInteger("leftType")), nbt.getInteger("leftAmount")); + else this.leftStack = null; + if(nbt.hasKey("rightType")) this.rightStack = new MaterialStack(Mats.matById.get(nbt.getInteger("rightType")), nbt.getInteger("rightAmount")); + else this.rightStack = null; + for(int i = 0; i < 4; i++) tanks[i].readFromNBT(nbt, "t" + i); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", this.power); + nbt.setInteger("progressFluid", this.progressFluid); + nbt.setInteger("progressOre", this.progressOre); + nbt.setInteger("processFluidTime", getDurationFluid()); + nbt.setInteger("processOreTime", getDurationMetal()); + if(this.leftStack != null) { + nbt.setInteger("leftType", leftStack.material.id); + nbt.setInteger("leftAmount", leftStack.amount); + } + if(this.rightStack != null) { + nbt.setInteger("rightType", rightStack.material.id); + nbt.setInteger("rightAmount", rightStack.amount); + } + for(int i = 0; i < 4; i++) tanks[i].writeToNBT(nbt, "t" + i); + + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 5, + yCoord - 0, + zCoord - 5, + xCoord + 6, + yCoord + 4, + zCoord + 6 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public long getPower() { + return this.power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {tanks[1], tanks[2]}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tanks[0], tanks[3]}; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(ID == 0) return new ContainerElectrolyserFluid(player.inventory, this); + return new ContainerElectrolyserMetal(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(ID == 0) return new GUIElectrolyserFluid(player.inventory, this); + return new GUIElectrolyserMetal(player.inventory, this); + } + + @Override + public void receiveControl(NBTTagCompound data) { } + + @Override + public void receiveControl(EntityPlayer player, NBTTagCompound data) { + + if(data.hasKey("sgm")) FMLNetworkHandler.openGui(player, MainRegistry.instance, 1, worldObj, xCoord, yCoord, zCoord); + if(data.hasKey("sgf")) FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, worldObj, xCoord, yCoord, zCoord); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electrolyser)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (25) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); + return upgrades; + } + + @Override + public FluidTank getTankToPaste() { + return tanks[0]; + } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound tag = new NBTTagCompound(); + if(getFluidIDToCopy().length > 0) + tag.setIntArray("fluidID", getFluidIDToCopy()); + if(getMatsToCopy().length > 0) + tag.setIntArray("matFilter", getMatsToCopy()); + return tag; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + IFluidCopiable.super.pasteSettings(nbt, index, world, player, x, y, z); + } + + @Override + public String[] infoForDisplay(World world, int x, int y, int z) { + ArrayList names = new ArrayList<>(); + int[] fluidIDs = getFluidIDToCopy(); + int[] matIDs = getMatsToCopy(); + + for (int fluidID : fluidIDs) { + names.add(Fluids.fromID(fluidID).getUnlocalizedName()); + } + for (int matID : matIDs) { + names.add(Mats.matById.get(matID).getUnlocalizedName()); + } + + return names.toArray(new String[0]); + } + + @Override + public int[] getMatsToCopy() { + ArrayList types = new ArrayList<>(); + if(leftStack != null) types.add(leftStack.material.id); + if(rightStack != null) types.add(rightStack.material.id); + return BobMathUtil.intCollectionToArray(types); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index 8fe8b6f4d..e7f1e3858 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -13,17 +13,19 @@ import com.hbm.items.machine.ItemFELCrystal; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -36,10 +38,11 @@ import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityFEL extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { public long power; public static final long maxPower = 20000000; @@ -49,6 +52,8 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, public boolean missingValidSilex = true ; public int distance; public List entities = new ArrayList(); + private int audioDuration = 0; + private AudioWrapper audio; public TileEntityFEL() { @@ -68,7 +73,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, if(!worldObj.isRemote) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.trySubscribe(worldObj, xCoord + dir.offsetX * -5, yCoord + 1, zCoord + dir.offsetZ * -5, dir); + this.trySubscribe(worldObj, xCoord + dir.offsetX * -5, yCoord + 1, zCoord + dir.offsetZ * -5, dir.getOpposite()); this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); if(this.isOn && !(this.slots[1] == null)) { @@ -160,7 +165,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, } float hardness = b.getExplosionResistance(null); - if(hardness < 2400 && worldObj.rand.nextInt(5) == 0) { + if(hardness < 75 && worldObj.rand.nextInt(5) == 0) { worldObj.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.fizz", 1.0F, 1.0F); Block block = (this.mode != EnumWavelengths.DRX) ? Blocks.fire : (MainRegistry.polaroidID == 11) ? ModBlocks.digamma_matter : ModBlocks.fire_digamma; worldObj.setBlock(x, y, z, block); @@ -172,13 +177,36 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, } } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setString("mode", mode.toString()); - data.setBoolean("isOn", isOn); - data.setBoolean("valid", missingValidSilex); - data.setInteger("distance", distance); - this.networkPack(data, 250); + this.networkPackNT(250); + } else { + + if(power > powerReq * Math.pow(2, mode.ordinal()) && isOn && !(mode == EnumWavelengths.NULL) && distance - 3 > 0) { + audioDuration += 2; + } else { + audioDuration -= 3; + } + + audioDuration = MathHelper.clamp_int(audioDuration, 0, 60); + + if(audioDuration > 10) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.updateVolume(getVolume(2F)); + audio.updatePitch((audioDuration - 10) / 100F + 0.5F); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } } } @@ -191,14 +219,25 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, return false; } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); - this.isOn = nbt.getBoolean("isOn"); - this.distance = nbt.getInteger("distance"); - this.missingValidSilex = nbt.getBoolean("valid"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + BufferUtil.writeString(buf, mode.toString()); + buf.writeBoolean(isOn); + buf.writeBoolean(missingValidSilex); + buf.writeInt(distance); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + mode = EnumWavelengths.valueOf(BufferUtil.readString(buf)); + isOn = buf.readBoolean(); + missingValidSilex = buf.readBoolean(); + distance = buf.readInt(); } @Override @@ -234,7 +273,12 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, nbt.setBoolean("valid", missingValidSilex); nbt.setInteger("distance", distance); } - + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.fel", xCoord, yCoord, zCoord, 2.0F, 10F, 2.0F); + } + @Override public AxisAlignedBB getRenderBoundingBox() { return INFINITE_EXTENT_AABB; @@ -268,7 +312,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIFEL(player.inventory, this); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java deleted file mode 100644 index ff3e3a1ee..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java +++ /dev/null @@ -1,464 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IReactor; -import com.hbm.inventory.container.ContainerFWatzCore; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIFWatzCore; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; -import com.hbm.util.fauxpointtwelve.DirPos; -import com.hbm.world.machine.FWatz; - -import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.world.World; - -public class TileEntityFWatzCore extends TileEntityLoadedBase implements ISidedInventory, IReactor, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { - - public long power; - public final static long maxPower = 10000000000L; - public boolean cooldown = false; - - public FluidTank tanks[]; - - Random rand = new Random(); - - private ItemStack slots[]; - - private String customName; - - public TileEntityFWatzCore() { - slots = new ItemStack[7]; - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.COOLANT, 128000, 0); - tanks[1] = new FluidTank(Fluids.AMAT, 64000, 1); - tanks[2] = new FluidTank(Fluids.ASCHRAB, 64000, 2); - } - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.fusionaryWatzPlant"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return true; - } - } - - @Override - public void openInventory() {} - - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return null; - } - - @Override - public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { - return false; - } - - @Override - public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tanks[0].readFromNBT(nbt, "cool"); - tanks[1].readFromNBT(nbt, "amat"); - tanks[2].readFromNBT(nbt, "aschrab"); - - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - nbt.setLong("power", power); - tanks[0].writeToNBT(nbt, "cool"); - tanks[1].writeToNBT(nbt, "amat"); - tanks[2].writeToNBT(nbt, "aschrab"); - - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public boolean isStructureValid(World world) { - return FWatz.checkHull(world, this.xCoord, this.yCoord, this.zCoord); - } - - @Override - public boolean isCoatingValid(World world) { - { - return true; - } - } - - @Override - public boolean hasFuse() { - return slots[1] != null && (slots[1].getItem() == ModItems.fuse || slots[1].getItem() == ModItems.screwdriver); - } - - @Override - public int getCoolantScaled(int i) { - return 0; - } - - @Override - public long getPowerScaled(long i) { - return (power/100 * i) / (maxPower/100); - } - - @Override - public int getWaterScaled(int i) { - return 0; - } - - @Override - public int getHeatScaled(int i) { - return 0; - } - - public int getSingularityType() { - - if(slots[2] != null) { - Item item = slots[2].getItem(); - - if(item == ModItems.singularity) - return 1; - if(item == ModItems.singularity_counter_resonant) - return 2; - if(item == ModItems.singularity_super_heated) - return 3; - if(item == ModItems.black_hole) - return 4; - if(item == ModItems.overfuse) - return 5; - } - - return 0; - } - - public DirPos[] getConPos() { - return new DirPos[] { - new DirPos(xCoord + 10, yCoord - 11, zCoord, Library.POS_X), - new DirPos(xCoord - 10, yCoord - 11, zCoord, Library.NEG_X), - new DirPos(xCoord, yCoord - 11, zCoord + 10, Library.POS_Z), - new DirPos(xCoord, yCoord - 11, zCoord - 10, Library.NEG_Z) - }; - } - - @Override - public void updateEntity() { - if(!worldObj.isRemote && this.isStructureValid(this.worldObj)) { - - for(DirPos pos : this.getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - - this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - this.trySubscribe(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } - - if (hasFuse() && getSingularityType() > 0) { - if(cooldown) { - - int i = getSingularityType(); - - if(i == 1) - tanks[0].setFill(tanks[0].getFill() + 1500); - if(i == 2) - tanks[0].setFill(tanks[0].getFill() + 3000); - if(i == 3) - tanks[0].setFill(tanks[0].getFill() + 750); - if(i == 4) - tanks[0].setFill(tanks[0].getFill() + 7500); - if(i == 5) - tanks[0].setFill(tanks[0].getFill() + 15000); - - if(tanks[0].getFill() >= tanks[0].getMaxFill()) { - cooldown = false; - tanks[0].setFill(tanks[0].getMaxFill()); - } - - } else { - int i = getSingularityType(); - - if(i == 1 && tanks[1].getFill() - 75 >= 0 && tanks[2].getFill() - 75 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 150); - tanks[1].setFill(tanks[1].getFill() - 75); - tanks[2].setFill(tanks[2].getFill() - 75); - power += 5000000; - } - if(i == 2 && tanks[1].getFill() - 75 >= 0 && tanks[2].getFill() - 35 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 75); - tanks[1].setFill(tanks[1].getFill() - 35); - tanks[2].setFill(tanks[2].getFill() - 30); - power += 2500000; - } - if(i == 3 && tanks[1].getFill() - 75 >= 0 && tanks[2].getFill() - 140 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 300); - tanks[1].setFill(tanks[1].getFill() - 75); - tanks[2].setFill(tanks[2].getFill() - 140); - power += 10000000; - } - if(i == 4 && tanks[1].getFill() - 100 >= 0 && tanks[2].getFill() - 100 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 100); - tanks[1].setFill(tanks[1].getFill() - 100); - tanks[2].setFill(tanks[2].getFill() - 100); - power += 10000000; - } - if(i == 5 && tanks[1].getFill() - 15 >= 0 && tanks[2].getFill() - 15 >= 0) { - tanks[0].setFill(tanks[0].getFill() - 150); - tanks[1].setFill(tanks[1].getFill() - 15); - tanks[2].setFill(tanks[2].getFill() - 15); - power += 100000000; - } - - if(power > maxPower) - power = maxPower; - - if(tanks[0].getFill() <= 0) { - cooldown = true; - tanks[0].setFill(0); - } - } - } - - if(power > maxPower) - power = maxPower; - - power = Library.chargeItemsFromTE(slots, 0, power, maxPower); - - tanks[1].loadTank(3, 5, slots); - tanks[2].loadTank(4, 6, slots); - - for(int i = 0; i < 3; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - - if(this.isRunning() && (tanks[1].getFill() <= 0 || tanks[2].getFill() <= 0 || !hasFuse() || getSingularityType() == 0) || cooldown || !this.isStructureValid(worldObj)) - this.emptyPlasma(); - - if(!this.isRunning() && tanks[1].getFill() >= 100 && tanks[2].getFill() >= 100 && hasFuse() && getSingularityType() > 0 && !cooldown && this.isStructureValid(worldObj)) - this.fillPlasma(); - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - - public void fillPlasma() { - if(!this.worldObj.isRemote) - FWatz.fillPlasma(worldObj, this.xCoord, this.yCoord, this.zCoord); - } - - public void emptyPlasma() { - if(!this.worldObj.isRemote) - FWatz.emptyPlasma(worldObj, this.xCoord, this.yCoord, this.zCoord); - } - - public boolean isRunning() { - return FWatz.getPlasma(worldObj, this.xCoord, this.yCoord, this.zCoord) && this.isStructureValid(worldObj); - } - - @Override - public long getMaxPower() { - return this.maxPower; - } - - @Override - public long getPower() { - return power; - } - - @Override - public void setPower(long i) { - this.power = i; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getMaxFill(); - else - return 0; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] { tanks[1], tanks[2] }; - } - - @Override - public FluidTank[] getAllTanks() { - return tanks; - } - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerFWatzCore(player.inventory, this); - } - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIFWatzCore(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index b4d5a109c..9f49f439e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -1,22 +1,31 @@ package com.hbm.tileentity.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.ItemStackUtil; +import api.hbm.fluid.IFluidStandardSender; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityFireboxBase extends TileEntityMachineBase implements IGUIProvider, IHeatSource { +public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider, IHeatSource { public int maxBurnTime; public int burnTime; @@ -31,7 +40,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem public TileEntityFireboxBase() { - super(2); + super(2, 50); } @Override @@ -49,6 +58,15 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem if(!worldObj.isRemote) { + for(int i = 2; i < 6; i++) { + ForgeDirection dir = ForgeDirection.getOrientation(i); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + for(int j = -1; j <= 1; j++) { + this.sendSmoke(xCoord + dir.offsetX * 2 + rot.offsetX * j, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * j, dir); + } + } + wasOn = false; if(burnTime <= 0) { @@ -56,9 +74,21 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem for(int i = 0; i < 2; i++) { if(slots[i] != null) { - int fuel = (int) (getModule().getBurnTime(slots[i]) * getTimeMult()); + int baseTime = getModule().getBurnTime(slots[i]); - if(fuel > 0) { + if(baseTime > 0) { + int fuel = (int) (baseTime * getTimeMult()); + + TileEntity below = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(below instanceof TileEntityAshpit) { + TileEntityAshpit ashpit = (TileEntityAshpit) below; + EnumAshType type = this.getAshFromFuel(slots[i]); + if(type == EnumAshType.WOOD) ashpit.ashLevelWood += baseTime; + if(type == EnumAshType.COAL) ashpit.ashLevelCoal += baseTime; + if(type == EnumAshType.MISC) ashpit.ashLevelMisc += baseTime; + } + this.maxBurnTime = this.burnTime = fuel; this.burnHeat = getModule().getBurnHeat(getBaseHeat(), slots[i]); slots[i].stackSize--; @@ -76,11 +106,11 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem if(this.heatEnergy < getMaxHeat()) { burnTime--; - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); + if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } this.wasOn = true; - if(worldObj.rand.nextInt(15) == 0) { + if(worldObj.rand.nextInt(15) == 0 && !this.muffled) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "fire.fire", 1.0F, 0.5F + worldObj.rand.nextFloat() * 0.5F); } } @@ -92,14 +122,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem this.burnHeat = 0; } - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("maxBurnTime", this.maxBurnTime); - data.setInteger("burnTime", this.burnTime); - data.setInteger("burnHeat", this.burnHeat); - data.setInteger("heatEnergy", this.heatEnergy); - data.setInteger("playersUsing", this.playersUsing); - data.setBoolean("wasOn", this.wasOn); - this.networkPack(data, 50); + this.networkPackNT(50); } else { this.prevDoorAngle = this.doorAngle; float swingSpeed = (doorAngle / 10F) + 3; @@ -121,6 +144,44 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem } } } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(maxBurnTime); + buf.writeInt(burnTime); + buf.writeInt(burnHeat); + buf.writeInt(heatEnergy); + buf.writeInt(playersUsing); + buf.writeBoolean(wasOn); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + maxBurnTime = buf.readInt(); + burnTime = buf.readInt(); + burnHeat = buf.readInt(); + heatEnergy = buf.readInt(); + playersUsing = buf.readInt(); + wasOn = buf.readBoolean(); + } + + public static EnumAshType getAshFromFuel(ItemStack stack) { + + List names = ItemStackUtil.getOreDictNames(stack); + + for(String name : names) { + if(name.contains("Coke")) return EnumAshType.COAL; + if(name.contains("Coal")) return EnumAshType.COAL; + if(name.contains("Lignite")) return EnumAshType.COAL; + if(name.startsWith("log")) return EnumAshType.WOOD; + if(name.contains("Wood")) return EnumAshType.WOOD; + if(name.contains("Sapling")) return EnumAshType.WOOD; + } + + return EnumAshType.MISC; + } public abstract ModuleBurnTime getModule(); public abstract int getBaseHeat(); @@ -136,16 +197,6 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem public boolean isItemValidForSlot(int i, ItemStack itemStack) { return getModule().getBurnTime(itemStack) > 0; } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - this.maxBurnTime = nbt.getInteger("maxBurnTime"); - this.burnTime = nbt.getInteger("burnTime"); - this.burnHeat = nbt.getInteger("burnHeat"); - this.heatEnergy = nbt.getInteger("heatEnergy"); - this.playersUsing = nbt.getInteger("playersUsing"); - this.wasOn = nbt.getBoolean("wasOn"); - } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -201,4 +252,19 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[0]; + } + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.DOWN; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java index 6259e1eb1..7ddaaca52 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java @@ -1,23 +1,26 @@ package com.hbm.tileentity.machine; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.container.ContainerForceField; import com.hbm.inventory.gui.GUIForceField; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEFFPacket; +import com.hbm.packet.toclient.TEFFPacket; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -31,10 +34,10 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityForceField extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider { +public class TileEntityForceField extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider, IConfigurableMachine { private ItemStack slots[]; - + public int health = 100; public int maxHealth = 100; public long power; @@ -44,17 +47,55 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided public float radius = 16; public boolean isOn = false; public int color = 0x0000FF; - public final int baseCon = 1000; - public final int radCon = 500; - public final int shCon = 250; - public static final long maxPower = 1000000; - + public static int baseCon = 1000; + public static int radCon = 500; + public static int shCon = 250; + public static long maxPower = 1000000; + private static final int[] slots_top = new int[] {0}; private static final int[] slots_bottom = new int[] {0}; private static final int[] slots_side = new int[] {0}; - + private String customName; - + + // config options stuff. + public static int baseRadius = 16; + public static int radUpgrade = 16; + public static int shUpgrade = 50; + public static double cooldownModif = 1; + public static double healthRegenModif = 1; + + @Override + public String getConfigName() { + return "forcefield"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); + baseCon = IConfigurableMachine.grab(obj, "I:baseConsumption", baseCon); + radCon = IConfigurableMachine.grab(obj, "I:radiusConsumption", radCon); + shCon = IConfigurableMachine.grab(obj, "I:shieldConsumption", shCon); + baseRadius = IConfigurableMachine.grab(obj, "I:baseRadius", baseRadius); + radUpgrade = IConfigurableMachine.grab(obj, "I:radiusUpgrade", radUpgrade); + shUpgrade = IConfigurableMachine.grab(obj, "I:shieldUpgrade", shUpgrade); + cooldownModif = IConfigurableMachine.grab(obj, "D:cooldownModifier", cooldownModif); + healthRegenModif = IConfigurableMachine.grab(obj, "D:healthRegenModifier", healthRegenModif); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:powerCap").value(maxPower); + writer.name("I:baseConsumption").value(baseCon); + writer.name("I:radiusConsumption").value(radCon); + writer.name("I:shieldConsumption").value(shCon); + writer.name("I:baseRadius").value(baseRadius); + writer.name("I:radiusUpgrade").value(radUpgrade); + writer.name("I:shieldUpgrade").value(shUpgrade); + writer.name("D:cooldownModifier").value(cooldownModif); + writer.name("D:healthRegenModifier").value(healthRegenModif); + } + public TileEntityForceField() { slots = new ItemStack[3]; } @@ -99,7 +140,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } - + public void setCustomName(String name) { this.customName = name; } @@ -118,7 +159,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; } } - + //You scrubs aren't needed for anything (right now) @Override public void openInventory() {} @@ -130,13 +171,13 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided if(i == 0) if(itemStack.getItem() instanceof IBatteryItem) return true; - + if(i == 1) return true; - + return false; } - + @Override public ItemStack decrStackSize(int i, int j) { if(slots[i] != null) @@ -152,18 +193,18 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided { slots[i] = null; } - + return itemStack1; } else { return null; } } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - + this.power = nbt.getLong("powerTime"); this.health = nbt.getInteger("health"); this.maxHealth = nbt.getInteger("maxHealth"); @@ -171,9 +212,9 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided this.blink = nbt.getInteger("blink"); this.radius = nbt.getFloat("radius"); this.isOn = nbt.getBoolean("isOn"); - + slots = new ItemStack[getSizeInventory()]; - + for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound nbt1 = list.getCompoundTagAt(i); @@ -184,7 +225,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided } } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -195,9 +236,9 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided nbt.setInteger("blink", blink); nbt.setFloat("radius", radius); nbt.setBoolean("isOn", isOn); - + NBTTagList list = new NBTTagList(); - + for(int i = 0; i < slots.length; i++) { if(slots[i] != null) @@ -210,7 +251,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided } nbt.setTag("items", list); } - + @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { @@ -226,41 +267,41 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided public boolean canExtractItem(int i, ItemStack itemStack, int j) { return false; } - + public int getHealthScaled(int i) { return (health * i) / maxHealth; } - + public long getPowerScaled(long i) { return (power * i) / maxPower; } - + @Override public void updateEntity() { if(!worldObj.isRemote) { - + updateConnections(); - + int rStack = 0; int hStack = 0; - radius = 16; + radius = baseRadius; maxHealth = 100; - + if(slots[1] != null && slots[1].getItem() == ModItems.upgrade_radius) { rStack = slots[1].stackSize; - radius += rStack * 16; + radius += rStack * radUpgrade; } - + if(slots[2] != null && slots[2].getItem() == ModItems.upgrade_health) { hStack = slots[2].stackSize; - maxHealth += hStack * 50; + maxHealth += hStack * shUpgrade; } - - this.powerCons = this.baseCon + rStack * this.radCon + hStack * this.shCon; - + + this.powerCons = baseCon + rStack * radCon + hStack * shCon; + power = Library.chargeTEFromItems(slots, 0, power, maxPower); - + if(blink > 0) { blink--; color = 0xFF0000; @@ -268,20 +309,20 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided color = 0x00FF00; } } - + if(cooldown > 0) { cooldown--; } else { if(health < maxHealth) - health += maxHealth / 100; - + health += (maxHealth / 100) * healthRegenModif; + if(health > maxHealth) health = maxHealth; } - + if(isOn && cooldown == 0 && health > 0 && power >= powerCons) { doField(radius); - + if(!worldObj.isRemote) { power -= powerCons; } @@ -294,34 +335,34 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided if(power < powerCons) power = 0; } - + if(!worldObj.isRemote) { PacketDispatcher.wrapper.sendToAllAround(new TEFFPacket(xCoord, yCoord, zCoord, radius, health, maxHealth, (int) power, isOn, color, cooldown), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 500)); } } - + private int impact(Entity e) { - + double mass = e.height * e.width * e.width; double speed = getMotionWithFallback(e); return (int)(mass * speed * 50); } - + private void damage(int ouch) { health -= ouch; - + if(ouch >= (this.maxHealth / 250)) blink = 5; - + if(health <= 0) { health = 0; - cooldown = (int) (100 + radius); + cooldown = (int) (100 + radius * (float)cooldownModif); } } List outside = new ArrayList(); List inside = new ArrayList(); - + private void doField(float rad) { List oLegacy = new ArrayList(outside); @@ -329,18 +370,18 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided outside.clear(); inside.clear(); - + List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - (rad + 25), yCoord + 0.5 - (rad + 25), zCoord + 0.5 - (rad + 25), xCoord + 0.5 + (rad + 25), yCoord + 0.5 + (rad + 25), zCoord + 0.5 + (rad + 25))); - + for(Object o : list) { - + if(o instanceof Entity && !(o instanceof EntityPlayer)) { Entity entity = (Entity)o; - + double dist = Math.sqrt(Math.pow(xCoord + 0.5 - entity.posX, 2) + Math.pow(yCoord + 0.5 - entity.posY, 2) + Math.pow(zCoord + 0.5 - entity.posZ, 2)); - + boolean out = dist > rad; - + //if the entity has not been registered yet if(!oLegacy.contains(entity) && !iLegacy.contains(entity)) { if(out) { @@ -348,21 +389,21 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided } else { inside.add(entity); } - + //if the entity has been detected before } else { - + //if the entity has crossed inwards if(oLegacy.contains(entity) && !out) { Vec3 vec = Vec3.createVectorHelper(xCoord + 0.5 - entity.posX, yCoord + 0.5 - entity.posY, zCoord + 0.5 - entity.posZ); vec = vec.normalize(); - + double mx = -vec.xCoord * (rad + 1); double my = -vec.yCoord * (rad + 1); double mz = -vec.zCoord * (rad + 1); - + entity.setLocationAndAngles(xCoord + 0.5 + mx, yCoord + 0.5 + my, zCoord + 0.5 + mz, 0, 0); - + double mo = Math.sqrt(Math.pow(entity.motionX, 2) + Math.pow(entity.motionY, 2) + Math.pow(entity.motionZ, 2)); entity.motionX = vec.xCoord * -mo; @@ -375,24 +416,24 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided worldObj.playSoundAtEntity(entity, "hbm:weapon.sparkShoot", 2.5F, 1.0F); outside.add(entity); - + if(!worldObj.isRemote) { this.damage(this.impact(entity)); } - + } else - + //if the entity has crossed outwards if(iLegacy.contains(entity) && out) { Vec3 vec = Vec3.createVectorHelper(xCoord + 0.5 - entity.posX, yCoord + 0.5 - entity.posY, zCoord + 0.5 - entity.posZ); vec = vec.normalize(); - + double mx = -vec.xCoord * (rad - 1); double my = -vec.yCoord * (rad - 1); double mz = -vec.zCoord * (rad - 1); entity.setLocationAndAngles(xCoord + 0.5 + mx, yCoord + 0.5 + my, zCoord + 0.5 + mz, 0, 0); - + double mo = Math.sqrt(Math.pow(entity.motionX, 2) + Math.pow(entity.motionY, 2) + Math.pow(entity.motionZ, 2)); entity.motionX = vec.xCoord * mo; @@ -405,13 +446,13 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided worldObj.playSoundAtEntity(entity, "hbm:weapon.sparkShoot", 2.5F, 1.0F); inside.add(entity); - + if(!worldObj.isRemote) { this.damage(this.impact(entity)); } - + } else { - + if(out) { outside.add(entity); } else { @@ -422,7 +463,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided } } } - + private double getMotionWithFallback(Entity e) { Vec3 v1 = Vec3.createVectorHelper(e.motionX, e.motionY, e.motionZ); @@ -430,13 +471,13 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided double s1 = v1.lengthVector(); double s2 = v2.lengthVector(); - + if(s1 == 0) return s2; - + if(s2 == 0) return s1; - + return Math.min(s1, s2); } @@ -449,7 +490,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided @Override public long getPower() { return power; - + } @Override @@ -461,7 +502,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided public boolean canConnect(ForgeDirection dir) { return dir != ForgeDirection.UP && dir != ForgeDirection.UNKNOWN; } - + private void updateConnections() { this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X); this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X); @@ -474,7 +515,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() @@ -489,7 +530,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIForceField(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBase.java index 9d522c1c0..5c5b8969c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBase.java @@ -1,15 +1,17 @@ package com.hbm.tileentity.machine; +import com.hbm.interfaces.ICopiable; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.material.Mats.MaterialStack; import api.hbm.block.ICrucibleAcceptor; +import com.hbm.tileentity.TileEntityLoadedBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -19,25 +21,25 @@ import net.minecraftforge.common.util.ForgeDirection; * @author hbm * */ -public abstract class TileEntityFoundryBase extends TileEntity implements ICrucibleAcceptor { - +public abstract class TileEntityFoundryBase extends TileEntityLoadedBase implements ICrucibleAcceptor, ICopiable { + public NTMMaterial type; protected NTMMaterial lastType; public int amount; protected int lastAmount; - + @Override public void updateEntity() { - + if(worldObj.isRemote) { - + if(shouldClientReRender() && this.lastType != this.type || this.lastAmount != this.amount) { worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); this.lastType = this.type; this.lastAmount = this.amount; } } else { - + if(this.lastType != this.type || this.lastAmount != this.amount) { worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); this.lastType = this.type; @@ -45,7 +47,7 @@ public abstract class TileEntityFoundryBase extends TileEntity implements ICruci } } } - + /** Recommended FALSE for things that update a whole lot. TRUE if updates only happen once every few ticks. */ protected boolean shouldClientReRender() { return true; @@ -57,7 +59,7 @@ public abstract class TileEntityFoundryBase extends TileEntity implements ICruci this.writeToNBT(nbt); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); } - + @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); @@ -73,18 +75,18 @@ public abstract class TileEntityFoundryBase extends TileEntity implements ICruci @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + if(this.type == null) { nbt.setInteger("type", -1); } else { nbt.setInteger("type", this.type.id); } - + nbt.setInteger("amount", this.amount); } - + public abstract int getCapacity(); - + /** * Standard check for testing if this material stack can be added to the casting block. Checks:
* - type matching
@@ -95,7 +97,7 @@ public abstract class TileEntityFoundryBase extends TileEntity implements ICruci if(this.amount >= this.getCapacity()) return false; //reject if the buffer is already full return true; } - + /** * Standardized adding of material via pouring or flowing. Does:
* - sets material to match the input @@ -104,17 +106,17 @@ public abstract class TileEntityFoundryBase extends TileEntity implements ICruci */ public MaterialStack standardAdd(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { this.type = stack.material; - + if(stack.amount + this.amount <= this.getCapacity()) { this.amount += stack.amount; return null; } - + int required = this.getCapacity() - this.amount; this.amount = this.getCapacity(); - + stack.amount -= required; - + return stack; } @@ -123,7 +125,7 @@ public abstract class TileEntityFoundryBase extends TileEntity implements ICruci public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return this.standardCheck(world, x, y, z, side, stack); } - + /** Standard flow, no special handling required */ @Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { @@ -142,4 +144,16 @@ public abstract class TileEntityFoundryBase extends TileEntity implements ICruci public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) { return standardAdd(world, x, y, z, side, stack); } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound nbt = new NBTTagCompound(); + if(type != null) nbt.setIntArray("matFilter", new int[]{ type.id }); + return nbt; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java index 145c2159a..6c65fb4c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryBasin.java @@ -7,7 +7,11 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityFoundryBasin extends TileEntityFoundryCastingBase implements IRenderFoundry { - + + public TileEntityFoundryBasin() { + super(2); + } + @Override public void updateEntity() { super.updateEntity(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java index bf2e63a95..578565ae9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryCastingBase.java @@ -19,10 +19,12 @@ import net.minecraftforge.common.util.ForgeDirection; * */ public abstract class TileEntityFoundryCastingBase extends TileEntityFoundryBase implements ISidedInventory { - - public ItemStack slots[] = new ItemStack[2]; + public ItemStack[] slots; + public TileEntityFoundryCastingBase(int slotCount) { + slots = new ItemStack[slotCount]; + } public int cooloff = 100; - + @Override public void updateEntity() { super.updateEntity(); @@ -52,6 +54,7 @@ public abstract class TileEntityFoundryCastingBase extends TileEntityFoundryBase } cooloff = 200; + this.markDirty(); } } else { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryChannel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryChannel.java index dd09a8a59..3156aada3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryChannel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryChannel.java @@ -110,7 +110,7 @@ public class TileEntityFoundryChannel extends TileEntityFoundryBase { @Override public int getCapacity() { - return MaterialShapes.INGOT.q(1); + return MaterialShapes.INGOT.q(2); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java index 607b1d13c..f2e476a3e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryMold.java @@ -3,7 +3,11 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.material.NTMMaterial; public class TileEntityFoundryMold extends TileEntityFoundryCastingBase implements IRenderFoundry { - + + public TileEntityFoundryMold() { + super(2); + } + @Override public void updateEntity() { super.updateEntity(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryOutlet.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryOutlet.java index 1414283fe..a52ce34f3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryOutlet.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryOutlet.java @@ -2,20 +2,23 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.inventory.material.NTMMaterial; import com.hbm.util.CrucibleUtil; import api.hbm.block.ICrucibleAcceptor; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFoundryOutlet extends TileEntityFoundryBase { +import java.util.ArrayList; + +public class TileEntityFoundryOutlet extends TileEntityFoundryBase{ public NTMMaterial filter = null; public NTMMaterial lastFilter = null; @@ -121,4 +124,39 @@ public class TileEntityFoundryOutlet extends TileEntityFoundryBase { nbt.setBoolean("invertFilter", this.invertFilter); nbt.setShort("filter", this.filter == null ? -1 : (short) this.filter.id); } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound nbt = new NBTTagCompound(); + + nbt.setBoolean("invert", this.invertRedstone); + nbt.setBoolean("invertFilter", this.invertFilter); + if(filter != null){ + nbt.setIntArray("matFilter", new int[]{ filter.id }); + } + + return nbt; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + + if(nbt.hasKey("invert")) this.invertRedstone = nbt.getBoolean("invert"); + if(nbt.hasKey("invertFilter")) this.invertFilter = nbt.getBoolean("invertFilter"); + if(nbt.hasKey("matFilter")) { + int[] ids = nbt.getIntArray("matFilter"); + if(ids.length > 0 && index < ids.length) + this.filter = Mats.matById.get(ids[index]); + } + + } + + @Override + public String[] infoForDisplay(World world, int x, int y, int z) { + ArrayList info = new ArrayList<>(); + info.add("copytool.invertRedstone"); + info.add("copytool.invertFilter"); + if (filter != null) info.add(filter.getUnlocalizedName()); + return info.toArray(new String[0]); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java index ef09f7257..ecf625688 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java @@ -3,24 +3,26 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; import com.hbm.inventory.material.Mats.MaterialStack; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.Compat; import api.hbm.block.ICrucibleAcceptor; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFoundrySlagtap extends TileEntity implements ICrucibleAcceptor { +public class TileEntityFoundrySlagtap extends TileEntityFoundryOutlet implements ICrucibleAcceptor { @Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { + if(filter != null && (filter != stack.material ^ invertFilter)) return false; + if(isClosed()) return false; + if(side != ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite()) return false; Vec3 start = Vec3.createVectorHelper(x + 0.5, y - 0.125, z + 0.5); Vec3 end = Vec3.createVectorHelper(x + 0.5, y + 0.125 - 15, z + 0.5); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryTank.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryTank.java index a9c8c91c5..fc6e9d182 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryTank.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundryTank.java @@ -112,6 +112,6 @@ public class TileEntityFoundryTank extends TileEntityFoundryBase { @Override public int getCapacity() { - return MaterialShapes.BLOCK.q(1); + return MaterialShapes.BLOCK.q(4); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java new file mode 100644 index 000000000..2a87235c9 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceBrick.java @@ -0,0 +1,233 @@ +package com.hbm.tileentity.machine; + +import java.util.HashMap; + +import com.hbm.blocks.machine.MachineBrickFurnace; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.container.ContainerFurnaceBrick; +import com.hbm.inventory.gui.GUIFurnaceBrick; +import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.world.World; + +public class TileEntityFurnaceBrick extends TileEntityMachineBase implements IGUIProvider { + + private static final int[] slotsTop = new int[] { 0 }; + private static final int[] slotsBottom = new int[] { 2, 1, 3 }; + private static final int[] slotsSides = new int[] {1}; + + public static HashMap burnSpeed = new HashMap(); + + static { + burnSpeed.put(Items.clay_ball, 4); + burnSpeed.put(ModItems.ball_fireclay, 4); + burnSpeed.put(Item.getItemFromBlock(Blocks.netherrack), 4); + burnSpeed.put(Item.getItemFromBlock(Blocks.cobblestone), 2); + burnSpeed.put(Item.getItemFromBlock(Blocks.sand), 2); + burnSpeed.put(Item.getItemFromBlock(Blocks.log), 2); + burnSpeed.put(Item.getItemFromBlock(Blocks.log2), 2); + } + + public int burnTime; + public int maxBurnTime; + public int progress; + + public int ashLevelWood; + public int ashLevelCoal; + public int ashLevelMisc; + + public TileEntityFurnaceBrick() { + super(4); + } + + @Override + public String getName() { + return "container.furnaceBrick"; + } + + @Override + + public void updateEntity() { + + if(!worldObj.isRemote) { + boolean wasBurning = this.burnTime > 0; + boolean markDirty = false; + + if(this.burnTime > 0) { + this.burnTime--; + } + + if(this.burnTime != 0 || this.slots[1] != null && this.slots[0] != null) { + if(this.burnTime == 0 && this.canSmelt()) { + this.maxBurnTime = this.burnTime = TileEntityFurnace.getItemBurnTime(this.slots[1]); + + if(this.burnTime > 0) { + markDirty = true; + + if(this.slots[1] != null) { + this.slots[1].stackSize--; + + EnumAshType type = TileEntityFireboxBase.getAshFromFuel(slots[1]); + if(type == EnumAshType.WOOD) ashLevelWood += burnTime; + if(type == EnumAshType.COAL) ashLevelCoal += burnTime; + if(type == EnumAshType.MISC) ashLevelMisc += burnTime; + int threshold = 2000; + if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; + if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; + if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + + if(this.slots[1].stackSize == 0) { + this.slots[1] = slots[1].getItem().getContainerItem(slots[1]); + } + } + } + } + + if(this.burnTime > 0 && this.canSmelt()) { + this.progress += this.getBurnSpeed(); + + if(this.progress >= 200) { + this.progress = 0; + this.smeltItem(); + markDirty = true; + } + } else { + this.progress = 0; + } + } + + if(wasBurning != this.burnTime > 0) { + markDirty = true; + MachineBrickFurnace.updateBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); + } + + if(markDirty) { + this.markDirty(); + } + + this.networkPackNT(15); + } + } + + public int getBurnSpeed() { + Integer speed = burnSpeed.get(slots[0].getItem()); + if(speed != null) return speed; + return 1; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot >= 2 ? false : (slot == 1 ? TileEntityFurnace.getItemBurnTime(stack) > 0 : true); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return side == 0 ? slotsBottom : (side == 1 ? slotsTop : slotsSides); + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(burnTime); + buf.writeInt(maxBurnTime); + buf.writeInt(progress); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.burnTime = buf.readInt(); + this.maxBurnTime = buf.readInt(); + this.progress = buf.readInt(); + } + + protected boolean processAsh(int level, EnumAshType type, int threshold) { + + if(level >= threshold) { + if(slots[3] == null) { + slots[3] = DictFrame.fromOne(ModItems.powder_ash, type); + return true; + } else if(slots[3].stackSize < slots[3].getMaxStackSize() && slots[3].getItem() == ModItems.powder_ash && slots[3].getItemDamage() == type.ordinal()) { + slots[3].stackSize++; + return true; + } + } + + return false; + } + + private boolean canSmelt() { + if(this.slots[0] == null) { + return false; + } else { + ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); + if(itemstack == null) + return false; + if(this.slots[2] == null) + return true; + if(!this.slots[2].isItemEqual(itemstack)) + return false; + int result = slots[2].stackSize + itemstack.stackSize; + return result <= getInventoryStackLimit() && result <= this.slots[2].getMaxStackSize(); + } + } + + public void smeltItem() { + if(this.canSmelt()) { + ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); + + if(this.slots[2] == null) { + this.slots[2] = itemstack.copy(); + } else if(this.slots[2].getItem() == itemstack.getItem()) { + this.slots[2].stackSize += itemstack.stackSize; + } + + --this.slots[0].stackSize; + + if(this.slots[0].stackSize <= 0) { + this.slots[0] = null; + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.burnTime = nbt.getInteger("burnTime"); + this.maxBurnTime = nbt.getInteger("maxBurn"); + this.progress = nbt.getInteger("progress"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("burnTime", this.burnTime); + nbt.setInteger("maxBurn", this.maxBurnTime); + nbt.setInteger("progress", this.progress); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerFurnaceBrick(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIFurnaceBrick(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index aeb9e670c..38dcca45f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -10,15 +10,16 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIFurnaceCombo; import com.hbm.inventory.recipes.CombinationRecipes; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.Tuple.Pair; import api.hbm.fluid.IFluidStandardSender; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -29,7 +30,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFurnaceCombination extends TileEntityMachineBase implements IFluidStandardSender, IGUIProvider { +public class TileEntityFurnaceCombination extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider, IFluidCopiable { public boolean wasOn; public int progress; @@ -42,7 +43,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen public FluidTank tank; public TileEntityFurnaceCombination() { - super(4); + super(4, 50); this.tank = new FluidTank(Fluids.NONE, 24_000); } @@ -65,6 +66,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen for(int y = yCoord; y <= yCoord + 1; y++) { for(int j = -1; j <= 1; j++) { if(tank.getFill() > 0) this.sendFluid(tank, worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * j, y, zCoord + dir.offsetZ * 2 + rot.offsetZ * j, dir); + this.sendSmoke(xCoord + dir.offsetX * 2 + rot.offsetX * j, y, zCoord + dir.offsetZ * 2 + rot.offsetZ * j, dir); } } } @@ -72,6 +74,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen for(int x = xCoord - 1; x <= xCoord + 1; x++) { for(int z = zCoord - 1; z <= zCoord + 1; z++) { if(tank.getFill() > 0) this.sendFluid(tank, worldObj, x, yCoord + 2, z, ForgeDirection.UP); + this.sendSmoke(x, yCoord + 2, z, ForgeDirection.UP); } } } @@ -120,19 +123,13 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen for(Entity e : entities) e.setFire(5); if(worldObj.getTotalWorldTime() % 10 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 1, this.zCoord, "hbm:weapon.flamethrowerShoot", 0.25F, 0.5F); + if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } - - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } else { this.progress = 0; } - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("wasOn", this.wasOn); - data.setInteger("heat", this.heat); - data.setInteger("progress", this.progress); - tank.writeToNBT(data, "t"); - this.networkPack(data, 50); + this.networkPackNT(50); } else { if(this.wasOn && worldObj.rand.nextInt(15) == 0) { @@ -141,6 +138,24 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(wasOn); + buf.writeInt(heat); + buf.writeInt(progress); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + wasOn = buf.readBoolean(); + heat = buf.readInt(); + progress = buf.readInt(); + tank.deserialize(buf); + } + public boolean canSmelt() { if(slots[0] == null) return false; Pair pair = CombinationRecipes.getOutput(slots[0]); @@ -164,14 +179,6 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen return true; } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - this.wasOn = nbt.getBoolean("wasOn"); - this.heat = nbt.getInteger("heat"); - this.progress = nbt.getInteger("progress"); - this.tank.readFromNBT(nbt, "t"); - } protected void tryPullHeat() { @@ -238,7 +245,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIFurnaceCombo(player.inventory, this); } @@ -274,6 +281,6 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] {tank}; + return new FluidTank[] {tank, smoke, smoke_leaded, smoke_poison}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 0a5dfbd92..76cb76189 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -1,42 +1,51 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerFurnaceIron; import com.hbm.inventory.gui.GUIFurnaceIron; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider { - +public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider, IUpgradeInfoProvider { + public int maxBurnTime; public int burnTime; public boolean wasOn = false; public int progress; public int processingTime; - public static final int baseTime = 200; - + public static final int baseTime = 160; + public ModuleBurnTime burnModule; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityFurnaceIron() { super(5); - + burnModule = new ModuleBurnTime() .setLigniteTimeMod(1.25) .setCoalTimeMod(1.25) @@ -53,22 +62,21 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI @Override public void updateEntity() { - + if(!worldObj.isRemote) { - - UpgradeManager.eval(slots, 4, 4); - this.processingTime = baseTime - (100 * Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) / 3); - + + upgradeManager.checkSlots(this, slots, 4, 4); + this.processingTime = baseTime - ((baseTime / 2) * upgradeManager.getLevel(UpgradeType.SPEED) / 3); + wasOn = false; - + if(burnTime <= 0) { - + for(int i = 1; i < 3; i++) { if(slots[i] != null) { - + int fuel = burnModule.getBurnTime(slots[i]); - //int fuel = TileEntityFurnace.getItemBurnTime(slots[i]); - + if(fuel > 0) { this.maxBurnTime = this.burnTime = fuel; slots[i].stackSize--; @@ -76,33 +84,33 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI if(slots[i].stackSize == 0) { slots[i] = slots[i].getItem().getContainerItem(slots[i]); } - + break; } } - } + } } - + if(canSmelt()) { wasOn = true; this.progress++; this.burnTime--; - - if(this.progress % 15 == 0) { + + if(this.progress % 15 == 0 && !this.muffled) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "fire.fire", 1.0F, 0.5F + worldObj.rand.nextFloat() * 0.5F); } - + if(this.progress >= this.processingTime) { ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(slots[0]); - + if(slots[3] == null) { slots[3] = result.copy(); } else { slots[3].stackSize += result.stackSize; } - + this.decrStackSize(0, 1); - + this.progress = 0; this.markDirty(); } @@ -110,23 +118,17 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI } else { this.progress = 0; } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("maxBurnTime", this.maxBurnTime); - data.setInteger("burnTime", this.burnTime); - data.setInteger("progress", this.progress); - data.setInteger("processingTime", this.processingTime); - data.setBoolean("wasOn", this.wasOn); - this.networkPack(data, 50); + + this.networkPackNT(50); } else { - + if(this.progress > 0) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + double offset = this.progress % 2 == 0 ? 1 : 0.5; worldObj.spawnParticle("smoke", xCoord + 0.5 - dir.offsetX * offset - rot.offsetX * 0.1875, yCoord + 2, zCoord + 0.5 - dir.offsetZ * offset - rot.offsetZ * 0.1875, 0.0, 0.01, 0.0); - + if(this.progress % 5 == 0) { double rand = worldObj.rand.nextDouble(); worldObj.spawnParticle("flame", xCoord + 0.5 + dir.offsetX * 0.25 + rot.offsetX * rand, yCoord + 0.25 + worldObj.rand.nextDouble() * 0.25, zCoord + 0.5 + dir.offsetZ * 0.25 + rot.offsetZ * rand, 0.0, 0.0, 0.0); @@ -136,30 +138,41 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.maxBurnTime = nbt.getInteger("maxBurnTime"); - this.burnTime = nbt.getInteger("burnTime"); - this.progress = nbt.getInteger("progress"); - this.processingTime = nbt.getInteger("processingTime"); - this.wasOn = nbt.getBoolean("wasOn"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.maxBurnTime); + buf.writeInt(this.burnTime); + buf.writeInt(this.progress); + buf.writeInt(this.processingTime); + buf.writeBoolean(this.wasOn); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.maxBurnTime = buf.readInt(); + this.burnTime = buf.readInt(); + this.progress = buf.readInt(); + this.processingTime = buf.readInt(); + this.wasOn = buf.readBoolean(); + } + public boolean canSmelt() { - + if(this.burnTime <= 0) return false; if(slots[0] == null) return false; - + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(slots[0]); - + if(result == null) return false; if(slots[3] == null) return true; - + if(!result.isItemEqual(slots[3])) return false; if(result.stackSize + slots[3].stackSize > slots[3].getMaxStackSize()) return false; - + return true; } - + @Override public int[] getAccessibleSlotsFromSide(int meta) { return new int[] { 0, 1, 2, 3 }; @@ -167,13 +180,13 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - + if(i == 0) return FurnaceRecipes.smelting().getSmeltingResult(itemStack) != null; - + if(i < 3) return burnModule.getBurnTime(itemStack) > 0; - + return false; } @@ -181,7 +194,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI public boolean canExtractItem(int i, ItemStack itemStack, int j) { return i == 3; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -190,7 +203,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI this.burnTime = nbt.getInteger("burnTime"); this.progress = nbt.getInteger("progress"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -207,15 +220,15 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIFurnaceIron(player.inventory, this); } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -226,13 +239,33 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.furnace_iron)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 50 / 3) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + return upgrades; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java index 77d212d9e..73a470859 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java @@ -8,12 +8,13 @@ import com.hbm.inventory.container.ContainerFurnaceSteel; import com.hbm.inventory.gui.GUIFurnaceSteel; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; import com.hbm.util.ItemStackUtil; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -96,13 +97,9 @@ public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGU } } - - NBTTagCompound data = new NBTTagCompound(); - data.setIntArray("progress", progress); - data.setIntArray("bonus", bonus); - data.setInteger("heat", heat); - data.setBoolean("wasOn", wasOn); - this.networkPack(data, 50); + + this.networkPackNT(50); + } else { if(this.wasOn) { @@ -122,11 +119,21 @@ public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGU } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.progress = nbt.getIntArray("progress"); - this.bonus = nbt.getIntArray("bonus"); - this.heat = nbt.getInteger("heat"); - this.wasOn = nbt.getBoolean("wasOn"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + BufferUtil.writeIntArray(buf, this.progress); + BufferUtil.writeIntArray(buf, this.bonus); + buf.writeInt(this.heat); + buf.writeBoolean(this.wasOn); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.progress = BufferUtil.readIntArray(buf); + this.bonus = BufferUtil.readIntArray(buf); + this.heat = buf.readInt(); + this.wasOn = buf.readBoolean(); } @Override @@ -247,7 +254,7 @@ public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGU @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIFurnaceSteel(player.inventory, this); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index ac7bddef0..4ad991c38 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -3,16 +3,22 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; +import com.hbm.handler.CompatHandler; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.ContaminationUtil; + +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityGeiger extends TileEntity implements SimpleComponent { +public class TileEntityGeiger extends TileEntity implements SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { int timer = 0; int ticker = 0; @@ -64,14 +70,21 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent { return rads; } @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "ntm_geiger"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getRads(Context context, Arguments args) { return new Object[] {check()}; } + @Override + public void provideExtraInfo(NBTTagCompound data) { + int rads = check(); + String chunkPrefix = ContaminationUtil.getPreffixFromRad(rads); + data.setString(CompatEnergyControl.S_CHUNKRAD, chunkPrefix + rads + " RAD/s"); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 215f5d766..c2c737fda 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; import com.hbm.blocks.ModBlocks; @@ -14,19 +15,19 @@ import com.hbm.inventory.recipes.HadronRecipes; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.TileEntityHadronDiode.DiodeConfig; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -36,14 +37,17 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityHadron extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { public long power; public static final long maxPower = 10000000; public boolean isOn = false; public boolean analysisOnly = false; - public boolean hopperMode = false; + public int ioMode = 0; + public static final int MODE_DEFAULT = 0; + public static final int MODE_HOPPER = 1; + public static final int MODE_SINGLE = 2; private int delay; public EnumHadronState state = EnumHadronState.IDLE; @@ -71,8 +75,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override public int[] getAccessibleSlotsFromSide(int side) { - return access; - } + return access; + } @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { @@ -81,7 +85,19 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return i == 0 || i == 1; + if(i != 0 && i != 1) return false; + + if(this.ioMode == MODE_SINGLE) { + return slots[i] == null; + } + + //makes sure that equal items like the antimatter capsules are spread out evenly + if(slots[0] != null && slots[1] != null && slots[0].getItem() == slots[1].getItem() && slots[0].getItemDamage() == slots[1].getItemDamage()) { + if(i == 0) return slots[1].stackSize - slots[0].stackSize >= 0; + if(i == 1) return slots[0].stackSize - slots[1].stackSize >= 0; + } + + return true; } @Override @@ -91,10 +107,13 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs power = Library.chargeTEFromItems(slots, 4, power, maxPower); drawPower(); + + particles.addAll(particlesToAdd); + particlesToAdd.clear(); if(delay <= 0 && this.isOn && particles.size() < maxParticles && slots[0] != null && slots[1] != null && power >= maxPower * 0.75) { - if(!hopperMode || (slots[0].stackSize > 1 && slots[1].stackSize > 1)) { + if(ioMode != MODE_HOPPER || (slots[0].stackSize > 1 && slots[1].stackSize > 1)) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); particles.add(new Particle(slots[0], slots[1], dir, xCoord, yCoord, zCoord)); this.decrStackSize(0, 1); @@ -118,12 +137,31 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs } particlesToRemove.clear(); + + //Sort the virtual particles by momentum, and run through them until we have enough momentum to complete the recipe + //If we succeed, "collapse" the cheapest particle that had enough momentum + //If we fail to make anything, "collapse" the most expensive particle + if(particles.isEmpty() && !particlesCompleted.isEmpty()) { + ItemStack[] result = null; + Particle particle = null; + + particlesCompleted.sort((p1, p2) -> { return p1.momentum - p2.momentum; }); + for(Particle p : particlesCompleted) { + particle = p; + result = HadronRecipes.getOutput(p.item1, p.item2, p.momentum, analysisOnly); + if(result != null) break; + } + + process(particle, result); + + particlesCompleted.clear(); + } NBTTagCompound data = new NBTTagCompound(); data.setBoolean("isOn", isOn); data.setLong("power", power); data.setBoolean("analysis", analysisOnly); - data.setBoolean("hopperMode", hopperMode); + data.setInteger("ioMode", ioMode); data.setByte("state", (byte) state.ordinal()); data.setBoolean("stat_success", stat_success); @@ -132,13 +170,13 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs data.setInteger("stat_x", stat_x); data.setInteger("stat_y", stat_y); data.setInteger("stat_z", stat_z); - this.networkPack(data, 50); + this.networkPackNT(50); } } - private void process(Particle p) { - - ItemStack[] result = HadronRecipes.getOutput(p.item1, p.item2, p.momentum, analysisOnly); + private void process(Particle p, ItemStack[] result) { + //Collapse this particle to real by consuming power + p.consumePower(); if(result == null) { this.state = HadronRecipes.returnCode; @@ -151,9 +189,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if((slots[2] == null || (slots[2].getItem() == result[0].getItem() && slots[2].stackSize < slots[2].getMaxStackSize())) && (slots[3] == null || (slots[3].getItem() == result[1].getItem() && slots[3].stackSize < slots[3].getMaxStackSize()))) { - for(int i = 2; i <= 3; i++ ) { - - //System.out.println("yes"); + for(int i = 2; i <= 3; i++) { if(slots[i] == null) slots[i] = result[i - 2].copy(); else @@ -177,19 +213,37 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs } @Override - public void networkUnpack(NBTTagCompound data) { - this.isOn = data.getBoolean("isOn"); - this.power = data.getLong("power"); - this.analysisOnly = data.getBoolean("analysis"); - this.hopperMode = data.getBoolean("hopperMode"); - this.state = EnumHadronState.values()[data.getByte("state")]; + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(this.isOn); + buf.writeLong(this.power); + buf.writeBoolean(this.analysisOnly); + buf.writeInt(this.ioMode); + buf.writeByte((byte) this.state.ordinal()); - this.stat_success = data.getBoolean("stat_success"); - this.stat_state = EnumHadronState.values()[data.getByte("stat_state")]; - this.stat_charge = data.getInteger("stat_charge"); - this.stat_x = data.getInteger("stat_x"); - this.stat_y = data.getInteger("stat_y"); - this.stat_z = data.getInteger("stat_z"); + buf.writeBoolean(this.stat_success); + buf.writeByte((byte) this.stat_state.ordinal()); + buf.writeInt(this.stat_charge); + buf.writeInt(this.stat_x); + buf.writeInt(this.stat_y); + buf.writeInt(this.stat_z); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.isOn = buf.readBoolean(); + this.power = buf.readLong(); + this.analysisOnly = buf.readBoolean(); + this.ioMode = buf.readInt(); + this.state = EnumHadronState.values()[buf.readByte()]; + + this.stat_success = buf.readBoolean(); + this.stat_state = EnumHadronState.values()[buf.readByte()]; + this.stat_charge = buf.readInt(); + this.stat_x = buf.readInt(); + this.stat_y = buf.readInt(); + this.stat_z = buf.readInt(); } @Override @@ -199,8 +253,12 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.isOn = !this.isOn; if(meta == 1) this.analysisOnly = !this.analysisOnly; - if(meta == 2) - this.hopperMode = !this.hopperMode; + if(meta == 2) { + this.ioMode++; + if(ioMode > 2) ioMode = 0; + } + + this.markChanged(); } private void drawPower() { @@ -231,17 +289,18 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs particlesToRemove.add(p); if(!p.isExpired()) - process(p); + particlesCompleted.add(p); p.expired = true; } static final int maxParticles = 1; - List particles = new ArrayList(); - List particlesToRemove = new ArrayList(); + List particles = new ArrayList(); + List particlesToRemove = new ArrayList(); + List particlesToAdd = new ArrayList(); + List particlesCompleted = new ArrayList(); private void updateParticles() { - for(Particle particle : particles) { particle.update(); } @@ -254,7 +313,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.isOn = nbt.getBoolean("isOn"); this.power = nbt.getLong("power"); this.analysisOnly = nbt.getBoolean("analysis"); - this.hopperMode = nbt.getBoolean("hopperMode"); + this.ioMode = nbt.getInteger("ioMode"); } @Override @@ -264,7 +323,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs nbt.setBoolean("isOn", isOn); nbt.setLong("power", power); nbt.setBoolean("analysis", analysisOnly); - nbt.setBoolean("hopperMode", hopperMode); + nbt.setInteger("ioMode", ioMode); } public int getPowerScaled(int i) { @@ -306,6 +365,25 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.stat_z = z; this.stat_success = false; } + + public void expire(Particle particle, EnumHadronState reason) { + if(particle.expired) + return; + + particle.consumePower(); + for(Particle p : particles) { + p.expired = true; + particlesToRemove.add(p); + } + worldObj.newExplosion(null, particle.posX + 0.5, particle.posY + 0.5, particle.posZ + 0.5, 10, false, false); + + //If any particles expire, cancel any succeeding particles, since they'll confuse the player + particlesCompleted.clear(); + + state = reason; + delay = delayError; + setExpireStats(reason, particle.momentum, particle.posX, particle.posY, particle.posZ); + } public class Particle { @@ -322,8 +400,20 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs int charge; int analysis; boolean isCheckExempt = false; + int cl0 = 0; + int cl1 = 0; boolean expired = false; + boolean cloned = false; + + //Quantum mechanical ass particle + //Virtual particles traverse the accelerator without consuming electrical power + //The cheapest valid route to the analysis chamber is then turned into a real particle, consuming power + List plugs = new ArrayList(); + + //Quantum particles should only traverse a schottky direction ONCE + //Keep a list of traversed diodes and directions + HashMap> history = new HashMap>(); public Particle(ItemStack item1, ItemStack item2, ForgeDirection dir, int posX, int posY, int posZ) { this.item1 = item1.copy(); @@ -338,22 +428,27 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.charge = 750; this.momentum = 0; } - - public void expire(EnumHadronState reason) { - - if(expired) - return; - - this.expired = true; - particlesToRemove.add(this); - worldObj.newExplosion(null, posX + 0.5, posY + 0.5, posZ + 0.5, 10, false, false); - //System.out.println("Last dir: " + dir.name()); - //System.out.println("Last pos: " + posX + " " + posY + " " + posZ); - //Thread.currentThread().dumpStack(); - TileEntityHadron.this.state = reason; - TileEntityHadron.this.delay = delayError; - TileEntityHadron.this.setExpireStats(reason, this.momentum, posX, posY, posZ); + //Clones the particle and gives it a new direction + public Particle clone(ForgeDirection dir) { + Particle p = new Particle(item1, item2, dir, posX, posY, posZ); + p.momentum = momentum; + p.charge = charge; + p.analysis = analysis; + p.isCheckExempt = isCheckExempt; + p.cl0 = cl0; + p.cl1 = cl1; + p.expired = expired; + p.plugs = new ArrayList(plugs); + p.cloned = true; + + //Deep clone the history + p.history = new HashMap>(history); + for(TileEntityHadronDiode diode : p.history.keySet()) { + p.history.put(diode, new ArrayList(p.history.get(diode))); + } + + return p; } public boolean isExpired() { @@ -365,7 +460,13 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(expired) //just in case return; - changeDirection(this); + //Recently cloned particles have already a set direction, this prevents infinite recursion + if(cloned) { + cloned = false; + } else { + changeDirection(this); + } + makeSteppy(this); if(!this.isExpired()) //only important for when the current segment is the core @@ -374,7 +475,37 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs isCheckExempt = false; //clearing up the exemption we might have held from the previous turn, AFTER stepping if(charge < 0) - this.expire(EnumHadronState.ERROR_NO_CHARGE); + expire(this, EnumHadronState.ERROR_NO_CHARGE); + + if(cl0 > 0) cl0--; + if(cl1 > 0) cl1--; + } + + public void incrementCharge(int coilVal) { + //not the best code ever made but it works, dammit + if(cl1 > 0) { + + double mult = 2D - (cl1 - 15D) * (cl1 - 15D) / 225D; + mult = Math.max(mult, 0.1D); + coilVal *= mult; + + } else if(cl0 > 0) { + if(cl0 > 10) { + coilVal *= 0.75; + } else { + coilVal *= 1.10; + } + } + + this.momentum += coilVal; + } + + public void consumePower() { + for(TileEntityHadronPower plug : plugs) { + long bit = 10000; + int times = (int) (plug.getPower() / bit); + plug.setPower(plug.getPower() - times * bit); + } } } @@ -401,7 +532,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(te instanceof TileEntityHadron) { if(p.analysis != 3) - p.expire(EnumHadronState.ERROR_NO_ANALYSIS); + expire(p, EnumHadronState.ERROR_NO_ANALYSIS); else this.finishParticle(p); @@ -409,12 +540,12 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs } if(block.getMaterial() != Material.air && block != ModBlocks.hadron_diode) - p.expire(EnumHadronState.ERROR_OBSTRUCTED_CHANNEL); + expire(p, EnumHadronState.ERROR_OBSTRUCTED_CHANNEL); if(block == ModBlocks.hadron_diode) p.isCheckExempt = true; - if(coilValue(worldObj.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) > 0) + if(isValidCoil(worldObj.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ))) p.isCheckExempt = true; } @@ -439,12 +570,15 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //-> all coils have to be air //-> all platings have to be analysis chamber walls boolean analysis = true; + //ensures coolers are useful throughout their initial segment + int totalValue = 0; for(int a = x - dX * 2; a <= x + dX * 2; a++) { for(int b = y - dY * 2; b <= y + dY * 2; b++) { for(int c = z - dZ * 2; c <= z + dZ * 2;c++) { Block block = worldObj.getBlock(a, b, c); + int meta = worldObj.getBlockMetadata(a, b, c); /** ignore the center for now */ if(a == x && b == y && c == z) { @@ -479,11 +613,16 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs int coilVal = coilValue(block); //not a valid coil: kablam! - if(coilVal == 0) { - p.expire(EnumHadronState.ERROR_EXPECTED_COIL); + if(!isValidCoil(block)) { + expire(p, EnumHadronState.ERROR_EXPECTED_COIL); } else { - p.momentum += coilVal; p.charge -= coilVal; + totalValue += coilVal; + + if(block == ModBlocks.hadron_cooler) { + if(meta == 0) p.cl0 += 10; + if(meta == 1) p.cl1 += 5; + } } continue; @@ -514,7 +653,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs int times = (int) (plug.getPower() / bit); //how many charges the plug has to offer p.charge += times; - plug.setPower(plug.getPower() - times * bit); + p.plugs.add(plug); continue; } @@ -523,15 +662,14 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(p.isCheckExempt && ix + iy + iz == 2) { continue; } - - //System.out.println("Was exempt: " + p.isCheckExempt); - //worldObj.setBlock(a, b, c, Blocks.dirt); - p.expire(EnumHadronState.ERROR_MALFORMED_SEGMENT); + expire(p, EnumHadronState.ERROR_MALFORMED_SEGMENT); } } } } + //all errors prior to this point come from bad construction, where exact momentum is irrelevant + p.incrementCharge(totalValue); if(analysis) { @@ -539,14 +677,17 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //if the analysis chamber is too big, destroy if(p.analysis > 3) - p.expire(EnumHadronState.ERROR_ANALYSIS_TOO_LONG); + expire(p, EnumHadronState.ERROR_ANALYSIS_TOO_LONG); if(p.analysis == 2) { - this.worldObj.playSoundEffect(p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, "fireworks.blast", 2.0F, 2F); + //Only pop for the first particle + if(this.state != EnumHadronState.ANALYSIS) { + this.worldObj.playSoundEffect(p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, "fireworks.blast", 2.0F, 2F); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "hadron"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5), new TargetPoint(worldObj.provider.dimensionId, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, 25)); + } this.state = EnumHadronState.ANALYSIS; - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "hadron"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5), new TargetPoint(worldObj.provider.dimensionId, p.posX + 0.5, p.posY + 0.5, p.posZ + 0.5, 25)); } //if operating in line accelerator mode, halt after 2 blocks and staart the reading @@ -558,7 +699,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //if the analysis stops despite being short of 3 steps in the analysis chamber, destroy if(p.analysis > 0 && p.analysis < 3) - p.expire(EnumHadronState.ERROR_ANALYSIS_TOO_SHORT); + expire(p, EnumHadronState.ERROR_ANALYSIS_TOO_SHORT); } } @@ -589,7 +730,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(diode.getConfig(p.dir.getOpposite().ordinal()) != DiodeConfig.IN) { //it appears as if we have slammed into the side of a diode, ouch - p.expire(EnumHadronState.ERROR_DIODE_COLLISION); + expire(p, EnumHadronState.ERROR_DIODE_COLLISION); } //there's a diode ahead, turn off checks so we can make the curve @@ -611,29 +752,36 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs p.isCheckExempt = true; TileEntityHadronDiode diode = (TileEntityHadronDiode)te; - - //the direction in which we were going anyway is an output, so we will keep going - if(diode.getConfig(dir.ordinal()) == DiodeConfig.OUT) { - return; - - //well then, iterate through some random directions and hope a valid output shows up - } else { - - List dirs = getRandomDirs(); - - for(ForgeDirection d : dirs) { - - if(d == dir || d == dir.getOpposite()) - continue; - - //looks like we can leave! - if(diode.getConfig(d.ordinal()) == DiodeConfig.OUT) { - //set the direction and leave this hellhole + + boolean hasTurnedCurrent = false; + + if(!p.history.containsKey(diode)) + p.history.put(diode, new ArrayList()); + + List usedDirections = p.history.get(diode); + + //Instance a new particle for each required fork + for(ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) { + if(!usedDirections.contains(d) && diode.getConfig(d.ordinal()) == DiodeConfig.OUT) { + if(!hasTurnedCurrent) { p.dir = d; - return; + hasTurnedCurrent = true; + } else { + Particle clone = p.clone(d); + clone.history.get(diode).add(d); + particlesToAdd.add(clone); } } } + + //Add the used direction to the main particle AFTER cloning, so the clones don't get incorrect travel history + usedDirections.add(p.dir); + + //If we failed to exit, raise DIODE_COLLISION + if(!hasTurnedCurrent) + expire(p, EnumHadronState.ERROR_DIODE_COLLISION); + + return; } //next step is air or the core, proceed @@ -641,7 +789,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs return; //so, the next block is most certainly a wall. not good. perhaps we could try turning? - if(coilValue(next) > 0) { + if(isValidCoil(next)) { ForgeDirection validDir = ForgeDirection.UNKNOWN; @@ -662,7 +810,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //it seems like there are two or more possible ways, which is not allowed without a diode //sorry kid, nothing personal } else { - p.expire(EnumHadronState.ERROR_BRANCHING_TURN); + expire(p, EnumHadronState.ERROR_BRANCHING_TURN); return; } } @@ -674,7 +822,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs return; } - p.expire(EnumHadronState.ERROR_OBSTRUCTED_CHANNEL); + expire(p, EnumHadronState.ERROR_OBSTRUCTED_CHANNEL); } /** @@ -692,6 +840,14 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs return dirs; } + public boolean isValidCoil(Block b) { + if(coilValue(b) > 0) return true; + + if(b == ModBlocks.hadron_cooler) return true; + + return false; + } + public int coilValue(Block b) { if(b instanceof BlockHadronCoil) @@ -706,7 +862,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs b instanceof BlockHadronCoil || b == ModBlocks.hadron_plating_glass || b == ModBlocks.hadron_analysis_glass || - b == ModBlocks.hadron_access; + b == ModBlocks.hadron_access || + b == ModBlocks.hadron_cooler; } public boolean isAnalysis(Block b) { @@ -755,7 +912,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIHadron(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronDiode.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronDiode.java index d77c5339a..f9c89de10 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronDiode.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronDiode.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine; import com.hbm.tileentity.TileEntityTickingBase; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; @@ -25,7 +26,7 @@ public class TileEntityHadronDiode extends TileEntityTickingBase { if(age >= 20) { age = 0; - sendSides(); + this.networkPackNT(250); } } else { @@ -35,27 +36,18 @@ public class TileEntityHadronDiode extends TileEntityTickingBase { } } } - - public void sendSides() { - - NBTTagCompound data = new NBTTagCompound(); - + + @Override public void serialize(ByteBuf buf) { for(int i = 0; i < 6; i++) { - - if(sides[i] != null) - data.setInteger("" + i, sides[i].ordinal()); + buf.writeByte(sides[i].ordinal()); } - - this.networkPack(data, 250); } - @Override - public void networkUnpack(NBTTagCompound nbt) { - + @Override public void deserialize(ByteBuf buf) { for(int i = 0; i < 6; i++) { - sides[i] = DiodeConfig.values()[nbt.getInteger("" + i)]; + sides[i] = DiodeConfig.values()[buf.readByte()]; } - + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } @@ -75,7 +67,7 @@ public class TileEntityHadronDiode extends TileEntityTickingBase { public void setConfig(int side, int config) { sides[side] = DiodeConfig.values()[config]; this.markDirty(); - sendSides(); + this.networkPackNT(250); } public static enum DiodeConfig { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java index 4e8bcf815..3423d2583 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java @@ -1,15 +1,16 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.machine.BlockHadronPower; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHadronPower extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver { +public class TileEntityHadronPower extends TileEntityLoadedBase implements IEnergyReceiverMK2, IBufPacketReceiver { public long power; @@ -17,24 +18,27 @@ public class TileEntityHadronPower extends TileEntityLoadedBase implements IEner public boolean canUpdate() { return true; //yeah idk wtf happened with the old behavior and honestly i'm not keen on figuring that one out } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - INBTPacketReceiver.networkPack(this, data, 15); + + networkPackNT(15); } } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); + public void serialize(ByteBuf buf) { + buf.writeLong(power); + } + + @Override + public void deserialize(ByteBuf buf) { + power = buf.readLong(); } @Override @@ -50,13 +54,13 @@ public class TileEntityHadronPower extends TileEntityLoadedBase implements IEner @Override public long getMaxPower() { - + Block b = this.getBlockType(); - + if(b instanceof BlockHadronPower) { return ((BlockHadronPower)b).power; } - + return 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index bcda9f18b..e6aef59a0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -1,8 +1,6 @@ package com.hbm.tileentity.machine; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -11,9 +9,6 @@ import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; @@ -23,8 +18,9 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; @@ -32,88 +28,95 @@ import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.EnumSkyBlock; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluidSource, IFluidAcceptor, INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { +public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine, IFluidCopiable { public int heat; public FluidTank[] tanks; - public List list = new ArrayList(); public boolean isOn; public boolean hasExploded = false; - + private AudioWrapper audio; private int audioTime; - + /* CONFIGURABLE */ - public static int maxHeat = 12_800_000; //the heat required to turn 64k of water into steam + public static int maxHeat = 3_200_000; public static double diffusion = 0.1D; public static boolean canExplode = true; public TileEntityHeatBoiler() { this.tanks = new FluidTank[2]; - this.tanks[0] = new FluidTank(Fluids.WATER, 64_000, 0); - this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100, 1); + this.tanks[0] = new FluidTank(Fluids.WATER, 16_000); + this.tanks[1] = new FluidTank(Fluids.STEAM, 16_000 * 100); } - + + ByteBuf buf; + @Override public void updateEntity() { if(!worldObj.isRemote) { - - NBTTagCompound data = new NBTTagCompound(); - + + if(this.buf != null) + this.buf.release(); + this.buf = Unpooled.buffer(); + + buf.writeBoolean(this.hasExploded); + if(!this.hasExploded) { this.setupTanks(); this.updateConnections(); this.tryPullHeat(); int lastHeat = this.heat; - + int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); if(light > 7 && TomSaveData.forWorld(worldObj).fire > 1e-5) { this.heat += ((maxHeat - heat) * 0.000005D); //constantly heat up 0.0005% of the remaining heat buffer for rampant but diminishing heating } - - data.setInteger("heat", lastHeat); - tanks[0].writeToNBT(data, "0"); + buf.writeInt(lastHeat); + + tanks[0].serialize(buf); this.isOn = false; this.tryConvert(); - tanks[1].writeToNBT(data, "1"); - + tanks[1].serialize(buf); + if(this.tanks[1].getFill() > 0) { this.sendFluid(); - fillFluidInit(tanks[1].getTankType()); } } - data.setBoolean("exploded", this.hasExploded); - data.setBoolean("isOn", this.isOn); - INBTPacketReceiver.networkPack(this, data, 25); + buf.writeBoolean(this.muffled); + buf.writeBoolean(this.isOn); + networkPackNT(25); } else { - + if(this.isOn) audioTime = 20; - + if(audioTime > 0) { - + audioTime--; - + if(audio == null) { audio = createAudioLoop(); audio.startSound(); } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); - + } else { - + if(audio != null) { audio.stopSound(); audio = null; @@ -121,7 +124,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid } } } - + @Override public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:block.boiler", xCoord, yCoord, zCoord, 0.125F, 10F, 1.0F, 20); @@ -148,25 +151,33 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.hasExploded = nbt.getBoolean("exploded"); - this.heat = nbt.getInteger("heat"); - this.tanks[0].readFromNBT(nbt, "0"); - this.tanks[1].readFromNBT(nbt, "1"); - this.isOn = nbt.getBoolean("isOn"); + public void serialize(ByteBuf buf) { + buf.writeBytes(this.buf); } - + + @Override + public void deserialize(ByteBuf buf) { + this.hasExploded = buf.readBoolean(); + if (!this.hasExploded) { + this.heat = buf.readInt(); + this.tanks[0].deserialize(buf); + this.tanks[1].deserialize(buf); + this.muffled = buf.readBoolean(); + this.isOn = buf.readBoolean(); + } + } + protected void tryPullHeat() { TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); - + if(con instanceof IHeatSource) { IHeatSource source = (IHeatSource) con; int diff = source.getHeatStored() - this.heat; - + if(diff == 0) { return; } - + if(diff > 0) { diff = (int) Math.ceil(diff * diffusion); source.useUpHeat(diff); @@ -176,12 +187,12 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid return; } } - + this.heat = Math.max(this.heat - Math.max(this.heat / 1000, 1), 0); } - + protected void setupTanks() { - + if(tanks[0].getTankType().hasTrait(FT_Heatable.class)) { FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); if(trait.getEfficiency(HeatingType.BOILER) > 0) { @@ -195,32 +206,32 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid tanks[0].setTankType(Fluids.NONE); tanks[1].setTankType(Fluids.NONE); } - + protected void tryConvert() { - + if(tanks[0].getTankType().hasTrait(FT_Heatable.class)) { FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); if(trait.getEfficiency(HeatingType.BOILER) > 0) { - + HeatingStep entry = trait.getFirstStep(); int inputOps = this.tanks[0].getFill() / entry.amountReq; int outputOps = (this.tanks[1].getMaxFill() - this.tanks[1].getFill()) / entry.amountProduced; int heatOps = this.heat / entry.heatReq; - + int ops = Math.min(inputOps, Math.min(outputOps, heatOps)); this.tanks[0].setFill(this.tanks[0].getFill() - entry.amountReq * ops); this.tanks[1].setFill(this.tanks[1].getFill() + entry.amountProduced * ops); this.heat -= entry.heatReq * ops; - + if(ops > 0 && worldObj.rand.nextInt(400) == 0) { worldObj.playSoundEffect(xCoord + 0.5, yCoord + 2, zCoord + 0.5, "hbm:block.boilerGroan", 0.5F, 1.0F); } - + if(ops > 0) { this.isOn = true; } - + if(outputOps == 0 && canExplode) { this.hasExploded = true; BlockDummyable.safeRem = true; @@ -232,33 +243,33 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid } } worldObj.setBlockToAir(xCoord, yCoord + 1, zCoord); - + ExplosionVNT xnt = new ExplosionVNT(worldObj, xCoord + 0.5, yCoord + 2, zCoord + 0.5, 5F); xnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(3F)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); xnt.setSFX(new ExplosionEffectStandard()); xnt.explode(); - + BlockDummyable.safeRem = false; } } } } - + private void updateConnections() { - + for(DirPos pos : getConPos()) { this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + private void sendFluid() { - + for(DirPos pos : getConPos()) { this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir().getOpposite()); } } - + private DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getRotation(ForgeDirection.UP); return new DirPos[] { @@ -267,7 +278,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid new DirPos(xCoord, yCoord + 4, zCoord, Library.POS_Y), }; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -276,7 +287,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid heat = nbt.getInteger("heat"); hasExploded = nbt.getBoolean("exploded"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -286,62 +297,6 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid nbt.setBoolean("exploded", hasExploded); } - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - return; - } - } - } - - @Override public void setFillForSync(int fill, int index) { } - @Override public void setTypeForSync(FluidType type, int index) { } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tanks[0].getTankType() ? tanks[0].getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getRotation(ForgeDirection.UP); - this.fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, this.getTact(), type); - this.fillFluid(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, this.getTact(), type); - this.fillFluid(xCoord, yCoord + 4, zCoord, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } - @Override public FluidTank[] getAllTanks() { return tanks; @@ -356,12 +311,12 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -372,10 +327,10 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java new file mode 100644 index 000000000..21d273973 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java @@ -0,0 +1,320 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.saveddata.TomSaveData; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IHeatSource; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.EnumSkyBlock; + +public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine, IFluidCopiable { + + public int heat; + public FluidTank[] tanks; + public boolean isOn; + + private AudioWrapper audio; + private int audioTime; + + /* CONFIGURABLE */ + public static int maxHeat = 12_800_000; + public static double diffusion = 0.1D; + + public TileEntityHeatBoilerIndustrial() { + this.tanks = new FluidTank[2]; + + this.tanks[0] = new FluidTank(Fluids.WATER, 64_000); + this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100); + } + + ByteBuf buf; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(this.buf != null) + this.buf.release(); + this.buf = Unpooled.buffer(); + + this.setupTanks(); + this.updateConnections(); + this.tryPullHeat(); + int lastHeat = this.heat; + + int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); + if(light > 7 && TomSaveData.forWorld(worldObj).fire > 1e-5) { + this.heat += ((maxHeat - heat) * 0.000005D); //constantly heat up 0.0005% of the remaining heat buffer for rampant but diminishing heating + } + + buf.writeInt(lastHeat); + + tanks[0].serialize(buf); + this.isOn = false; + this.tryConvert(); + tanks[1].serialize(buf); + + if(this.tanks[1].getFill() > 0) { + this.sendFluid(); + } + + buf.writeBoolean(this.isOn); + buf.writeBoolean(this.muffled); + networkPackNT(25); + + } else { + + if(this.isOn) audioTime = 20; + + if(audioTime > 0) { + + audioTime--; + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.updateVolume(getVolume(1F)); + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.boiler", xCoord, yCoord, zCoord, 0.125F, 10F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBytes(this.buf); + } + + @Override + public void deserialize(ByteBuf buf) { + this.heat = buf.readInt(); + this.tanks[0].deserialize(buf); + this.tanks[1].deserialize(buf); + this.isOn = buf.readBoolean(); + this.muffled = buf.readBoolean(); + } + + protected void tryPullHeat() { + TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(con instanceof IHeatSource) { + IHeatSource source = (IHeatSource) con; + int diff = source.getHeatStored() - this.heat; + + if(diff == 0) { + return; + } + + if(diff > 0) { + diff = (int) Math.ceil(diff * diffusion); + source.useUpHeat(diff); + this.heat += diff; + if(this.heat > this.maxHeat) + this.heat = this.maxHeat; + return; + } + } + + this.heat = Math.max(this.heat - Math.max(this.heat / 1000, 1), 0); + } + + protected void setupTanks() { + + if(tanks[0].getTankType().hasTrait(FT_Heatable.class)) { + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + if(trait.getEfficiency(HeatingType.BOILER) > 0) { + HeatingStep entry = trait.getFirstStep(); + tanks[1].setTankType(entry.typeProduced); + tanks[1].changeTankSize(tanks[0].getMaxFill() * entry.amountProduced / entry.amountReq); + return; + } + } + + tanks[0].setTankType(Fluids.NONE); + tanks[1].setTankType(Fluids.NONE); + } + + protected void tryConvert() { + + if(tanks[0].getTankType().hasTrait(FT_Heatable.class)) { + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + if(trait.getEfficiency(HeatingType.BOILER) > 0) { + + HeatingStep entry = trait.getFirstStep(); + int inputOps = this.tanks[0].getFill() / entry.amountReq; + int outputOps = (this.tanks[1].getMaxFill() - this.tanks[1].getFill()) / entry.amountProduced; + int heatOps = this.heat / entry.heatReq; + + int ops = Math.min(inputOps, Math.min(outputOps, heatOps)); + + this.tanks[0].setFill(this.tanks[0].getFill() - entry.amountReq * ops); + this.tanks[1].setFill(this.tanks[1].getFill() + entry.amountProduced * ops); + this.heat -= entry.heatReq * ops; + + if(ops > 0 && worldObj.rand.nextInt(400) == 0) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 2, zCoord + 0.5, "hbm:block.boilerGroan", 0.5F, 1.0F); + } + + if(ops > 0) { + this.isOn = true; + } + } + } + } + + private void updateConnections() { + + for(DirPos pos : getConPos()) { + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private void sendFluid() { + + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir().getOpposite()); + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord, yCoord + 5, zCoord, Library.POS_Y), + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "steam"); + heat = nbt.getInteger("heat"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "steam"); + nbt.setInteger("heat", heat); + } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {tanks[1]}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tanks[0]}; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 5, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public String getConfigName() { + return "boilerIndustrial"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxHeat = IConfigurableMachine.grab(obj, "I:maxHeat", maxHeat); + diffusion = IConfigurableMachine.grab(obj, "D:diffusion", diffusion); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:maxHeat").value(maxHeat); + writer.name("D:diffusion").value(diffusion); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java index 35569da50..1ad302c0b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java @@ -1,41 +1,47 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.ICopiable; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.tile.IHeatSource; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyUser, INBTPacketReceiver { - +public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyReceiverMK2, IBufPacketReceiver, ICopiable, IInfoProviderEC { + public long power; public int heatEnergy; public boolean isOn; protected int setting = 0; - + private AudioWrapper audio; @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(worldObj.getTotalWorldTime() % 20 == 0) { //doesn't have to happen constantly ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); this.trySubscribe(worldObj, xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, dir); } - + this.heatEnergy *= 0.999; - + this.tryPullHeat(); this.isOn = false; @@ -44,27 +50,24 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH this.heatEnergy += getHeatGen(); this.isOn = true; } - - NBTTagCompound data = new NBTTagCompound(); - data.setByte("s", (byte) this.setting); - data.setInteger("h", this.heatEnergy); - data.setBoolean("o", isOn); - INBTPacketReceiver.networkPack(this, data, 25); + + networkPackNT(25); } else { - + if(isOn) { - + if(audio == null) { audio = createAudioLoop(); audio.startSound(); } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); - + } else { - + if(audio != null) { audio.stopSound(); audio = null; @@ -72,7 +75,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH } } } - + @Override public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:block.electricHum", xCoord, yCoord, zCoord, 0.25F, 7.5F, 1.0F, 20); @@ -99,12 +102,21 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.setting = nbt.getByte("s"); - this.heatEnergy = nbt.getInteger("h"); - this.isOn = nbt.getBoolean("o"); + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.muffled); + buf.writeByte(this.setting); + buf.writeInt(this.heatEnergy); + buf.writeBoolean(this.isOn); } - + + @Override + public void deserialize(ByteBuf buf) { + this.muffled = buf.readBoolean(); + this.setting = buf.readByte(); + this.heatEnergy = buf.readInt(); + this.isOn = buf.readBoolean(); + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -113,7 +125,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH this.setting = nbt.getInteger("setting"); this.heatEnergy = nbt.getInteger("heatEnergy"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -122,20 +134,20 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH nbt.setInteger("setting", setting); nbt.setInteger("heatEnergy", heatEnergy); } - + protected void tryPullHeat() { TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); - + if(con instanceof IHeatSource) { IHeatSource source = (IHeatSource) con; this.heatEnergy += source.getHeatStored() * 0.85; source.useUpHeat(source.getHeatStored()); } } - + public void toggleSetting() { setting++; - + if(setting > 10) setting = 0; } @@ -144,7 +156,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH public long getPower() { return power; } - + public long getConsumption() { return (long) (Math.pow(setting, 1.4D) * 200D); } @@ -153,7 +165,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH public long getMaxPower() { return getConsumption() * 20; } - + public int getHeatGen() { return this.setting * 100; } @@ -172,12 +184,12 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH public void useUpHeat(int heat) { this.heatEnergy = Math.max(0, this.heatEnergy - heat); } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 2, @@ -188,13 +200,32 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH zCoord + 3 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setLong(CompatEnergyControl.D_CONSUMPTION_HE, getConsumption()); + data.setLong(CompatEnergyControl.L_ENERGY_TU, getHeatStored()); + data.setLong(CompatEnergyControl.D_OUTPUT_TU, getHeatGen()); + } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setInteger("setting", setting); + return nbt; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + this.setting = nbt.getInteger("setting"); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterFirebox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterFirebox.java index c58b395e0..616fc978a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterFirebox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterFirebox.java @@ -12,7 +12,6 @@ import com.hbm.tileentity.IConfigurableMachine; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.util.ResourceLocation; @@ -76,7 +75,7 @@ public class TileEntityHeaterFirebox extends TileEntityFireboxBase implements IC @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { if(texture == null) texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_firebox.png"); return new GUIFirebox(player.inventory, this, texture); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java index e1dffc2b1..7a1a9a18c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java @@ -9,8 +9,8 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.gui.GUIHeaterHeatex; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.DirPos; @@ -18,26 +18,28 @@ import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHeatSource, INBTPacketReceiver, IFluidStandardTransceiver, IGUIProvider, IControlReceiver { - +public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHeatSource, IFluidStandardTransceiver, IGUIProvider, IControlReceiver, IFluidCopiable { + public FluidTank[] tanks; - public int amountToCool = 1; + public int amountToCool = 24_000; public int tickDelay = 1; public int heatEnergy; - + public TileEntityHeaterHeatex() { super(1); this.tanks = new FluidTank[2]; - this.tanks[0] = new FluidTank(Fluids.COOLANT_HOT, 24_000, 0); - this.tanks[1] = new FluidTank(Fluids.COOLANT, 24_000, 1); + this.tanks[0] = new FluidTank(Fluids.COOLANT_HOT, 24_000); + this.tanks[1] = new FluidTank(Fluids.COOLANT, 24_000); } @Override @@ -45,42 +47,56 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe return "container.heaterHeatex"; } + ByteBuf buf; + @Override public void updateEntity() { - + if(!worldObj.isRemote) { + + if(this.buf != null) + this.buf.release(); + this.buf = Unpooled.buffer(); + this.tanks[0].setType(0, slots); this.setupTanks(); this.updateConnections(); - + this.heatEnergy *= 0.999; - - NBTTagCompound data = new NBTTagCompound(); - tanks[0].writeToNBT(data, "0"); + + tanks[0].serialize(buf); + this.tryConvert(); - tanks[1].writeToNBT(data, "1"); - data.setInteger("heat", heatEnergy); - data.setInteger("toCool", amountToCool); - data.setInteger("delay", tickDelay); - INBTPacketReceiver.networkPack(this, data, 25); - + + tanks[1].serialize(buf); + + networkPackNT(25); + for(DirPos pos : getConPos()) { if(this.tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - tanks[0].readFromNBT(nbt, "0"); - tanks[1].readFromNBT(nbt, "1"); - this.heatEnergy = nbt.getInteger("heat"); - this.amountToCool = nbt.getInteger("toCool"); - this.tickDelay = nbt.getInteger("delay"); + public void serialize(ByteBuf buf) { + buf.writeBytes(this.buf); + buf.writeInt(this.heatEnergy); + buf.writeInt(this.amountToCool); + buf.writeInt(this.tickDelay); } - + + @Override + public void deserialize(ByteBuf buf) { + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + this.heatEnergy = buf.readInt(); + this.amountToCool = buf.readInt(); + this.tickDelay = buf.readInt(); + } + protected void setupTanks() { - + if(tanks[0].getTankType().hasTrait(FT_Coolable.class)) { FT_Coolable trait = tanks[0].getTankType().getTrait(FT_Coolable.class); if(trait.getEfficiency(CoolingType.HEATEXCHANGER) > 0) { @@ -92,37 +108,37 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe tanks[0].setTankType(Fluids.NONE); tanks[1].setTankType(Fluids.NONE); } - + protected void updateConnections() { - + for(DirPos pos : getConPos()) { this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + protected void tryConvert() { - + if(!tanks[0].getTankType().hasTrait(FT_Coolable.class)) return; if(tickDelay < 1) tickDelay = 1; if(worldObj.getTotalWorldTime() % tickDelay != 0) return; - + FT_Coolable trait = tanks[0].getTankType().getTrait(FT_Coolable.class); - + int inputOps = tanks[0].getFill() / trait.amountReq; int outputOps = (tanks[1].getMaxFill() - tanks[1].getFill()) / trait.amountProduced; int opCap = this.amountToCool; - + int ops = Math.min(inputOps, Math.min(outputOps, opCap)); tanks[0].setFill(tanks[0].getFill() - trait.amountReq * ops); tanks[1].setFill(tanks[1].getFill() + trait.amountProduced * ops); this.heatEnergy += trait.heatEnergy * ops * trait.getEfficiency(CoolingType.HEATEXCHANGER); this.markChanged(); } - + private DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + return new DirPos[] { new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir), new DirPos(xCoord + dir.offsetX * 2 - rot.offsetX, yCoord, zCoord + dir.offsetZ * 2 - rot.offsetZ, dir), @@ -130,7 +146,7 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()) }; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -141,7 +157,7 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe this.amountToCool = nbt.getInteger("toCool"); this.tickDelay = nbt.getInteger("delay"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -191,15 +207,15 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIHeaterHeatex(player.inventory, this); } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -210,10 +226,10 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -227,9 +243,28 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe @Override public void receiveControl(NBTTagCompound data) { - if(data.hasKey("toCool")) this.amountToCool = Math.max(data.getInteger("toCool"), 1); + if(data.hasKey("toCool")) this.amountToCool = MathHelper.clamp_int(data.getInteger("toCool"), 1, tanks[0].getMaxFill()); if(data.hasKey("delay")) this.tickDelay = Math.max(data.getInteger("delay"), 1); - + this.markChanged(); } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setInteger("toCool", amountToCool); + if(getFluidIDToCopy().length > 0) + nbt.setIntArray("fluidID", getFluidIDToCopy()); + return nbt; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + int[] ids = nbt.getIntArray("fluidID"); + if(ids.length > 0) { + int id = ids[index]; + tanks[0].setTankType(Fluids.fromID(id)); + } + if(nbt.hasKey("toCool")) amountToCool = nbt.getInteger("toCool"); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 555704c86..e236a9090 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -1,32 +1,30 @@ package com.hbm.tileentity.machine; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerOilburner; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.gui.GUIOilburner; import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class TileEntityHeaterOilburner extends TileEntityMachineBase implements IGUIProvider, IFluidStandardReceiver, IHeatSource, IControlReceiver, IFluidAcceptor { +public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implements IGUIProvider, IFluidStandardTransceiver, IHeatSource, IControlReceiver, IFluidCopiable { public boolean isOn = false; public FluidTank tank; @@ -36,14 +34,23 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements public static final int maxHeatEnergy = 100_000; public TileEntityHeaterOilburner() { - super(3); - tank = new FluidTank(Fluids.HEATINGOIL, 16000, 0); + super(3, 100); + tank = new FluidTank(Fluids.HEATINGOIL, 16000); } @Override public String getName() { return "container.heaterOilburner"; } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; + } @Override public void updateEntity() { @@ -53,10 +60,10 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements tank.loadTank(0, 1, slots); tank.setType(2, slots); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); + for(DirPos pos : this.getConPos()) { + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } boolean shouldCool = true; @@ -74,9 +81,8 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements this.heatEnergy += heat * toBurn; - if(worldObj.getTotalWorldTime() % 20 == 0) { - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); - if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * burnRate * 0.5F); + if(worldObj.getTotalWorldTime() % 5 == 0 && toBurn > 0) { + super.pollute(tank.getTankType(), FluidReleaseType.BURN, toBurn * 5); } shouldCool = false; @@ -89,21 +95,28 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements if(shouldCool) this.heatEnergy = Math.max(this.heatEnergy - Math.max(this.heatEnergy / 1000, 1), 0); - NBTTagCompound data = new NBTTagCompound(); - tank.writeToNBT(data, "tank"); - data.setBoolean("isOn", isOn); - data.setInteger("h", heatEnergy); - data.setByte("s", (byte) this.setting); - this.networkPack(data, 25); + this.networkPackNT(25); } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - tank.readFromNBT(nbt, "tank"); - isOn = nbt.getBoolean("isOn"); - heatEnergy = nbt.getInteger("h"); - setting = nbt.getByte("s"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + tank.serialize(buf); + + buf.writeBoolean(isOn); + buf.writeInt(heatEnergy); + buf.writeByte((byte) this.setting); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + tank.deserialize(buf); + + isOn = buf.readBoolean(); + heatEnergy = buf.readInt(); + setting = buf.readByte(); } @Override @@ -143,7 +156,7 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIOilburner(player.inventory, this); } @@ -157,28 +170,6 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements this.heatEnergy = Math.max(0, this.heatEnergy - heat); } - @Override - public void setFillForSync(int fill, int index) { } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { } - - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getMaxFill() : 0; - } - @Override public boolean hasPermission(EntityPlayer player) { return player.getDistanceSq(xCoord, yCoord, zCoord) <= 256; @@ -221,4 +212,26 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements public FluidTank[] getAllTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setIntArray("fluidID", new int[]{tank.getTankType().getID()}); + tag.setInteger("burnRate", setting); + tag.setBoolean("isOn", isOn); + return tag; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + int id = nbt.getIntArray("fluidID")[index]; + tank.setTankType(Fluids.fromID(id)); + if(nbt.hasKey("isOn")) isOn = nbt.getBoolean("isOn"); + if(nbt.hasKey("burnRate")) setting = nbt.getInteger("burnRate"); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOven.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOven.java index 2deec61e8..3453c2c19 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOven.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOven.java @@ -13,7 +13,6 @@ import com.hbm.tileentity.IConfigurableMachine; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.tileentity.TileEntity; @@ -100,7 +99,7 @@ public class TileEntityHeaterOven extends TileEntityFireboxBase implements IConf @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { if(texture == null) texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_heating_oven.png"); return new GUIFirebox(player.inventory, this, texture); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java new file mode 100644 index 000000000..b89dc9b42 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -0,0 +1,381 @@ +package com.hbm.tileentity.machine; + +import com.hbm.handler.CompatHandler; +import com.hbm.inventory.container.ContainerICF; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; +import com.hbm.inventory.gui.GUIICF; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemICFPellet; +import com.hbm.lib.Library; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider, IFluidStandardTransceiver, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable { + + public long laser; + public long maxLaser; + public long heat; + public static final long maxHeat = 1_000_000_000_000L; + public long heatup; + public int consumption; + public int output; + + public FluidTank[] tanks; + + public TileEntityICF() { + super(12); + this.tanks = new FluidTank[3]; + this.tanks[0] = new FluidTank(Fluids.SODIUM, 512_000); + this.tanks[1] = new FluidTank(Fluids.SODIUM_HOT, 512_000); + this.tanks[2] = new FluidTank(Fluids.STELLAR_FLUX, 24_000); + } + + @Override + public String getName() { + return "container.machineICF"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + tanks[0].setType(11, slots); + + for(DirPos pos : getConPos()) { + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + boolean markDirty = false; + + //eject depleted pellet + if(slots[5] != null && slots[5].getItem() == ModItems.icf_pellet_depleted) { + for(int i = 6; i < 11; i++) { + if(slots[i] == null) { + slots[i] = slots[5].copy(); + slots[5] = null; + markDirty = true; + break; + } + } + } + + //insert fresh pellet + if(slots[5] == null) { + for(int i = 0; i < 5; i++) { + if(slots[i] != null && slots[i].getItem() == ModItems.icf_pellet) { + slots[5] = slots[i].copy(); + slots[i] = null; + markDirty = true; + break; + } + } + } + + this.heatup = 0; + + if(slots[5] != null && slots[5].getItem() == ModItems.icf_pellet) { + if(ItemICFPellet.getFusingDifficulty(slots[5]) <= this.laser) { + this.heatup = ItemICFPellet.react(slots[5], this.laser); + this.heat += heatup; + if(ItemICFPellet.getDepletion(slots[5]) >= ItemICFPellet.getMaxDepletion(slots[5])) { + slots[5] = new ItemStack(ModItems.icf_pellet_depleted); + markDirty = true; + } + + tanks[2].setFill(tanks[2].getFill() + (int) Math.ceil(this.heat * 2.5D / this.maxHeat)); + if(tanks[2].getFill() > tanks[2].getMaxFill()) tanks[2].setFill(tanks[2].getMaxFill()); + + NBTTagCompound dPart = new NBTTagCompound(); + dPart.setString("type", "hadron"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(dPart, xCoord + 0.5, yCoord + 3.5, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); + } + } + + if(heatup == 0) { + this.heat += this.laser * 0.25D; + } + + this.consumption = 0; + this.output = 0; + + if(tanks[0].getTankType().hasTrait(FT_Heatable.class)) { + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + HeatingStep step = trait.getFirstStep(); + tanks[1].setTankType(step.typeProduced); + + int coolingCycles = tanks[0].getFill() / step.amountReq; + int heatingCycles = (tanks[1].getMaxFill() - tanks[1].getFill()) / step.amountProduced; + int heatCycles = (int) Math.min(this.heat / 4D / step.heatReq * trait.getEfficiency(HeatingType.ICF), this.heat / step.heatReq); //25% cooling per tick + int cycles = Math.min(coolingCycles, Math.min(heatingCycles, heatCycles)); + + tanks[0].setFill(tanks[0].getFill() - step.amountReq * cycles); + tanks[1].setFill(tanks[1].getFill() + step.amountProduced * cycles); + this.heat -= step.heatReq * cycles; + + this.consumption = step.amountReq * cycles; + this.output = step.amountProduced * cycles; + } + + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + this.heat *= 0.999D; + if(this.heat > this.maxHeat) this.heat = this.maxHeat; + if(markDirty) this.markDirty(); + + this.networkPackNT(150); + this.laser = 0; + this.maxLaser = 0; + } + } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord, yCoord + 6, zCoord, Library.POS_Y), + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord + dir.offsetX * 3 + rot.offsetX * 6, yCoord + 3, zCoord + dir.offsetZ * 3 + rot.offsetZ * 6, dir), + new DirPos(xCoord + dir.offsetX * 3 - rot.offsetX * 6, yCoord + 3, zCoord + dir.offsetZ * 3 - rot.offsetZ * 6, dir), + new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX * 6, yCoord + 3, zCoord - dir.offsetZ * 3 + rot.offsetZ * 6, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 3 - rot.offsetX * 6, yCoord + 3, zCoord - dir.offsetZ * 3 - rot.offsetZ * 6, dir.getOpposite()) + }; + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(laser); + buf.writeLong(maxLaser); + buf.writeLong(heat); + for(int i = 0; i < 3; i++) tanks[i].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.laser = buf.readLong(); + this.maxLaser = buf.readLong(); + this.heat = buf.readLong(); + for(int i = 0; i < 3; i++) tanks[i].deserialize(buf); + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot < 5 && stack.getItem() == ModItems.icf_pellet; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + return slot > 5; + } + + public static final int[] io = new int[] {0, 1, 2, 3, 4, 6, 7, 8, 9, 10}; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return io; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + for(int i = 0; i < 3; i++) tanks[i].readFromNBT(nbt, "t" + i); + + this.heat = nbt.getLong("heat"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + for(int i = 0; i < 3; i++) tanks[i].writeToNBT(nbt, "t" + i); + + nbt.setLong("heat", heat); + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 256; + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord + 0.5 - 8, + yCoord, + zCoord + 0.5 - 8, + xCoord + 0.5 + 9, + yCoord + 0.5 + 5, + zCoord + 0.5 + 9 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {tanks[1], tanks[2]}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tanks[0]}; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerICF(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIICF(player.inventory, this); + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, heatup > 0); + data.setLong(CompatEnergyControl.L_CAPACITY_TU, this.maxHeat); + data.setLong(CompatEnergyControl.L_ENERGY_TU, this.heat); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.consumption); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, this.output); + } + + //OC stuff + + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_icf_reactor"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getHeat(Context context, Arguments args) { + return new Object[] {this.heat}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getHeatingRate(Context context, Arguments args) { + return new Object[] {this.heatup}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getMaxHeat(Context context, Arguments args) { + return new Object[] {maxHeat}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {this.laser}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] { + tanks[0].getFill(), tanks[0].getMaxFill(), tanks[0].getTankType().getUnlocalizedName(), + tanks[1].getFill(), tanks[1].getMaxFill(), tanks[1].getTankType().getUnlocalizedName(), + tanks[2].getFill(), tanks[2].getMaxFill() + }; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPelletStats(Context context, Arguments args) { + return new Object[] { + ItemICFPellet.getDepletion(slots[5]), + ItemICFPellet.getMaxDepletion(slots[5]), + ItemICFPellet.getFusingDifficulty(slots[5]), + ItemICFPellet.getType(slots[5], true).name(), + ItemICFPellet.getType(slots[5], false).name() + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getHeat", + "getHeatingRate", + "getMaxHeat", + "getPower", + "getFluid", + "getPelletStats" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch (method) { + case ("getHeat"): + return getHeat(context, args); + case ("getHeatingRate"): + return getHeatingRate(context, args); + case ("getMaxHeat"): + return getMaxHeat(context, args); + case ("getPower"): + return getPower(context, args); + case ("getFluid"): + return getFluid(context, args); + case ("getPelletStats"): + return getPelletStats(context, args); + } + throw new NoSuchMethodException(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java new file mode 100644 index 000000000..a08f20fde --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java @@ -0,0 +1,249 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.TileEntityTickingBase; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityICFController extends TileEntityTickingBase implements IEnergyReceiverMK2 { + + public long power; + public int laserLength; + + public int cellCount; + public int emitterCount; + public int capacitorCount; + public int turbochargerCount; + + protected List ports = new ArrayList(); + + public boolean assembled; + + public void setup(HashSet ports, HashSet cells, HashSet emitters, HashSet capacitors, HashSet turbochargers) { + + this.cellCount = 0; + this.emitterCount = 0; + this.capacitorCount = 0; + this.turbochargerCount = 0; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); + BlockPos pos = new BlockPos(0, 0, 0); + + HashSet validCells = new HashSet(); + HashSet validEmitters = new HashSet(); + HashSet validCapacitors = new HashSet(); + + for(int i = 0; i < cells.size(); i++) { + int j = i + 1; + + if(cells.contains(pos.mutate(xCoord + dir.offsetX * j, yCoord, zCoord + dir.offsetZ * j))) { + this.cellCount++; + validCells.add(pos.clone()); + } else { + break; + } + } + + for(BlockPos emitter : emitters) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { + pos.mutate(emitter.getX() + offset.offsetX, emitter.getY() + offset.offsetY, emitter.getZ() + offset.offsetZ); + if(validCells.contains(pos)) { this.emitterCount++; validEmitters.add(emitter.clone()); break; } + } + } + + for(BlockPos capacitor : capacitors) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { + pos.mutate(capacitor.getX() + offset.offsetX, capacitor.getY() + offset.offsetY, capacitor.getZ() + offset.offsetZ); + if(validEmitters.contains(pos)) { this.capacitorCount++; validCapacitors.add(capacitor.clone()); break; } + } + } + + for(BlockPos turbo : turbochargers) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { + pos.mutate(turbo.getX() + offset.offsetX, turbo.getY() + offset.offsetY, turbo.getZ() + offset.offsetZ); + if(validCapacitors.contains(pos)) { this.turbochargerCount++; break; } + } + } + + this.ports.addAll(ports); + } + + @Override + public String getInventoryName() { + return "container.icfController"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.networkPackNT(50); + + if(this.assembled) { + for(BlockPos pos : ports) { + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + BlockPos portPos = pos.offset(dir); + if(this.getMaxPower() > 0) this.trySubscribe(worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); + } + } + + if(this.power > 0) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + + for(int i = 1; i < 50; i++) { + this.laserLength = i; + + Block b = worldObj.getBlock(xCoord + dir.offsetX * i, yCoord, zCoord + dir.offsetZ * i); + if(b == ModBlocks.icf) { + TileEntity tile = worldObj.getTileEntity(xCoord + dir.offsetX * (i + 8), yCoord - 3, zCoord + dir.offsetZ * (i + 8)); + if(tile instanceof TileEntityICF) { + TileEntityICF icf = (TileEntityICF) tile; + icf.laser += this.getPower(); + icf.maxLaser += this.getMaxPower(); + break; + } + } + + if(!b.isAir(worldObj, xCoord + dir.offsetX * i, yCoord, zCoord + dir.offsetZ * i)) { + float hardness = b.getExplosionResistance(null); + if(hardness < 6000) worldObj.func_147480_a(xCoord + dir.offsetX * i, yCoord, zCoord + dir.offsetZ * i, false); + break; + } + } + + double blx = Math.min(xCoord, xCoord + dir.offsetX * laserLength) + 0.2; + double bux = Math.max(xCoord, xCoord + dir.offsetX * laserLength) + 0.8; + double bly = Math.min(yCoord, yCoord + dir.offsetY * laserLength) + 0.2; + double buy = Math.max(yCoord, yCoord + dir.offsetY * laserLength) + 0.8; + double blz = Math.min(zCoord, zCoord + dir.offsetZ * laserLength) + 0.2; + double buz = Math.max(zCoord, zCoord + dir.offsetZ * laserLength) + 0.8; + + List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(blx, bly, blz, bux, buy, buz)); + + for(Entity e : list) { + e.attackEntityFrom(DamageSource.inFire, 50); + e.setFire(5); + } + + this.setPower(0); + } else { + this.laserLength = 0; + } + + } else { + this.laserLength = 0; + } + } else { + + if(this.laserLength > 0 && worldObj.rand.nextInt(5) == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + double offXZ = worldObj.rand.nextDouble() * 0.25 - 0.125; + double offY = worldObj.rand.nextDouble() * 0.25 - 0.125; + double dist = 0.55; + worldObj.spawnParticle("reddust", xCoord + 0.5 + dir.offsetX * dist + rot.offsetX * offXZ, yCoord + 0.5 + offY, zCoord + 0.5 + dir.offsetZ * dist + rot.offsetZ * offXZ, 0, 0, 0); + } + } + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(capacitorCount); + buf.writeInt(turbochargerCount); + buf.writeInt(laserLength); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.capacitorCount = buf.readInt(); + this.turbochargerCount = buf.readInt(); + this.laserLength = buf.readInt(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + + this.assembled = nbt.getBoolean("assembled"); + this.cellCount = nbt.getInteger("cellCount"); + this.emitterCount = nbt.getInteger("emitterCount"); + this.capacitorCount = nbt.getInteger("capacitorCount"); + this.turbochargerCount = nbt.getInteger("turbochargerCount"); + + ports.clear(); + int portCount = nbt.getInteger("portCount"); + for(int i = 0; i < portCount; i++) { + int[] port = nbt.getIntArray("p" + i); + ports.add(new BlockPos(port[0], port[1], port[2])); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + + nbt.setBoolean("assembled", assembled); + nbt.setInteger("cellCount", cellCount); + nbt.setInteger("emitterCount", emitterCount); + nbt.setInteger("capacitorCount", capacitorCount); + nbt.setInteger("turbochargerCount", turbochargerCount); + + nbt.setInteger("portCount", ports.size()); + for(int i = 0; i < ports.size(); i++) { + BlockPos pos = ports.get(i); + nbt.setIntArray("p" + i, new int[] { pos.getX(), pos.getY(), pos.getZ() }); + } + } + + @Override + public long getPower() { + return Math.min(power, this.getMaxPower()); + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return (long) (Math.sqrt(capacitorCount) * 2_500_000 + Math.sqrt(Math.min(turbochargerCount, capacitorCount)) * 5_000_000); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord + 0.5 - 50, + yCoord, + zCoord + 0.5 - 50, + xCoord + 0.5 + 50, + yCoord + 1, + zCoord + 0.5 + 50 + ); + } + + return bb; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java new file mode 100644 index 000000000..459f93bed --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java @@ -0,0 +1,198 @@ +package com.hbm.tileentity.machine; + +import java.util.List; + +import com.hbm.inventory.container.ContainerICFPress; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIICFPress; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemICFPellet; +import com.hbm.items.machine.ItemICFPellet.EnumICFFuel; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class TileEntityICFPress extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IFluidCopiable { + + public FluidTank[] tanks; + public int muon; + public static final int maxMuon = 16; + + public TileEntityICFPress() { + super(8); + this.tanks = new FluidTank[2]; + this.tanks[0] = new FluidTank(Fluids.DEUTERIUM, 16_000); + this.tanks[1] = new FluidTank(Fluids.TRITIUM, 16_000); + } + + @Override + public String getName() { + return "container.machineICFPress"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.tanks[0].setType(6, slots); + this.tanks[1].setType(7, slots); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.subscribeToAllAround(tanks[0].getTankType(), this); + this.subscribeToAllAround(tanks[1].getTankType(), this); + } + + if(muon <= 0 && slots[2] != null && slots[2].getItem() == ModItems.particle_muon) { + + ItemStack container = slots[2].getItem().getContainerItem(slots[2]); + boolean canStore = false; + + if(container == null) { + canStore = true; + } else if(slots[3] == null) { + slots[3] = container.copy(); + canStore = true; + } else if(slots[3].getItem() == container.getItem() && slots[3].getItemDamage() == container.getItemDamage() && slots[3].stackSize < slots[3].getMaxStackSize()) { + slots[3].stackSize++; + canStore = true; + } + + if(canStore) { + this.muon = this.maxMuon; + this.decrStackSize(2, 1); + this.markDirty(); + } + } + + press(); + + this.networkPackNT(15); + } + } + + public void press() { + if(slots[0] == null || slots[0].getItem() != ModItems.icf_pellet_empty) return; + if(slots[1] != null) return; + + ItemICFPellet.init(); + + EnumICFFuel fuel1 = getFuel(tanks[0], slots[4], 0); + EnumICFFuel fuel2 = getFuel(tanks[1], slots[5], 1); + + if(fuel1 == null || fuel2 == null || fuel1 == fuel2) return; + + slots[1] = ItemICFPellet.setup(fuel1, fuel2, muon > 0); + + if(muon > 0) muon--; + + this.decrStackSize(0, 1); + if(usedFluid[0]) tanks[0].setFill(tanks[0].getFill() - 1000); else this.decrStackSize(4, 1); + if(usedFluid[1]) tanks[1].setFill(tanks[1].getFill() - 1000); else this.decrStackSize(5, 1); + + this.markChanged(); + } + + public static boolean[] usedFluid = new boolean[2]; + + public EnumICFFuel getFuel(FluidTank tank, ItemStack slot, int index) { + usedFluid[index] = false; + if(tank.getFill() >= 1000 && ItemICFPellet.fluidMap.containsKey(tank.getTankType())) { + usedFluid[index] = true; + return ItemICFPellet.fluidMap.get(tank.getTankType()); + } + if(slot == null) return null; + List mats = Mats.getMaterialsFromItem(slot); + if(mats == null || mats.size() != 1) return null; + MaterialStack mat = mats.get(0); + if(mat.amount != MaterialShapes.INGOT.q(1)) return null; + return ItemICFPellet.materialMap.get(mat.material); + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeByte((byte) muon); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.muon = buf.readByte(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(stack.getItem() == ModItems.icf_pellet_empty) return slot == 0; + if(stack.getItem() == ModItems.particle_muon) return slot == 2; + return slot == 4 || slot == 5; + } + + public static final int[] topBottom = new int[] {0, 1, 2, 3, 4}; + public static final int[] sides = new int[] {0, 1, 2, 3, 5}; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return side == 0 || side == 1 ? topBottom : sides; + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return slot == 1 || slot == 3; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); + this.muon = nbt.getByte("muon"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + tanks[0].writeToNBT(nbt, "t0"); + tanks[1].writeToNBT(nbt, "t1"); + nbt.setByte("muon", (byte) muon); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerICFPress(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIICFPress(player.inventory, this); + } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getReceivingTanks() { + return tanks; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFStruct.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFStruct.java new file mode 100644 index 000000000..57711f8eb --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFStruct.java @@ -0,0 +1,64 @@ +package com.hbm.tileentity.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.MachineICF; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityICFStruct extends TileEntity { + + @Override + public void updateEntity() { + if(worldObj.isRemote) return; + if(worldObj.getTotalWorldTime() % 20 != 0) return; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + + for(int i = -8; i <= 8; i++) { + + if(!cbarp(ModBlocks.icf_component, 0, 1, 0, i, dir)) return; + if(i != 0) if(!cbarp(ModBlocks.icf_component, 0, 0, 0, i, dir)) return; + if(!cbarp(ModBlocks.icf_component, 0, -1, 0, i, dir)) return; + if(!cbarp(ModBlocks.icf_component, 2, 0, 3, i, dir)) return; + + for(int j = -1; j <= 1; j++) if(!cbarp(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 1, i, dir)) return; + for(int j = -2; j <= 2; j++) if(!cbarp(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 2, i, dir)) return; + for(int j = -2; j <= 2; j++) if(j != 0) if(!cbarp(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 3, i, dir)) return; + for(int j = -2; j <= 2; j++) if(!cbarp(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 4, i, dir)) return; + for(int j = -1; j <= 1; j++) if(!cbarp(ModBlocks.icf_component, Math.abs(i) <= 2 ? 2 : 4, j, 5, i, dir)) return; + } + + BlockDummyable.safeRem = true; + worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.icf, this.getBlockMetadata() + BlockDummyable.offset, 3); + ((MachineICF) ModBlocks.icf).fillSpace(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir, -((MachineICF) ModBlocks.icf).getOffset()); + BlockDummyable.safeRem = false; + } + + /** check block at relative position */ + public boolean cbarp(Block block, int meta, int widthwiseOffset, int y, int lengthwiseOffset, ForgeDirection dir) { + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + int ix = xCoord + rot.offsetX * lengthwiseOffset + dir.offsetX * widthwiseOffset; + int iy = yCoord + y; + int iz = zCoord + rot.offsetZ * lengthwiseOffset + dir.offsetZ * widthwiseOffset; + + return worldObj.getBlock(ix, iy, iz) == block && worldObj.getBlockMetadata(ix, iy, iz) == meta; + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 9802070ac..30ea58b03 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -8,8 +8,7 @@ import com.hbm.blocks.machine.MachineITER; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerITER; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -22,18 +21,27 @@ import com.hbm.items.ModItems; import com.hbm.items.special.ItemFusionShield; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -43,18 +51,18 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider /* TODO: finish fluid API impl */ { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable { public long power; public static final long maxPower = 10000000; public static final int powerReq = 100000; - public int age = 0; - public List list = new ArrayList(); public FluidTank[] tanks; public FluidTank plasma; public int progress; public static final int duration = 100; + public long totalRuntime; @SideOnly(Side.CLIENT) public int blanket; @@ -63,12 +71,16 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser public float lastRotor; public boolean isOn; + private float rotorSpeed = 0F; + + private AudioWrapper audio; + public TileEntityITER() { super(5); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.WATER, 1280000, 0); - tanks[1] = new FluidTank(Fluids.ULTRAHOTSTEAM, 128000, 1); - plasma = new FluidTank(Fluids.PLASMA_DT, 16000, 2); + tanks[0] = new FluidTank(Fluids.WATER, 1280000); + tanks[1] = new FluidTank(Fluids.ULTRAHOTSTEAM, 128000); + plasma = new FluidTank(Fluids.PLASMA_DT, 16000); } @Override @@ -81,14 +93,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser if(!worldObj.isRemote) { - age++; - if (age >= 20) { - age = 0; - } - - if (age == 9 || age == 19) - fillFluidInit(tanks[1].getTankType()); - this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); @@ -107,11 +111,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser power -= powerReq; if(plasma.getFill() > 0) { - - int chance = FusionRecipes.getByproductChance(plasma.getTankType()); - - if(chance > 0 && worldObj.rand.nextInt(chance) == 0) - produceByproduct(); + this.totalRuntime++; + int delay = FusionRecipes.getByproductDelay(plasma.getTankType()); + if(delay > 0 && totalRuntime % delay == 0) produceByproduct(); } if(plasma.getFill() > 0 && this.getShield() != 0) { @@ -150,9 +152,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser /// END Processing part /// /// START Notif packets /// - for(int i = 0; i < tanks.length; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - plasma.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); for(DirPos pos : getConPos()) { if(tanks[1].getFill() > 0) { @@ -160,37 +159,42 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser } } - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("isOn", isOn); - data.setLong("power", power); - data.setInteger("progress", progress); - - if(slots[3] == null) { - data.setInteger("blanket", 0); - } else if(slots[3].getItem() == ModItems.fusion_shield_tungsten) { - data.setInteger("blanket", 1); - } else if(slots[3].getItem() == ModItems.fusion_shield_desh) { - data.setInteger("blanket", 2); - } else if(slots[3].getItem() == ModItems.fusion_shield_chlorophyte) { - data.setInteger("blanket", 3); - } else if(slots[3].getItem() == ModItems.fusion_shield_vaporwave) { - data.setInteger("blanket", 4); - } - - this.networkPack(data, 250); + this.networkPackNT(250); /// END Notif packets /// } else { - + this.lastRotor = this.rotor; + this.rotor += this.rotorSpeed; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } - if(this.isOn && this.power >= this.powerReq) { + if(this.isOn && this.power >= powerReq) { + this.rotorSpeed = Math.max(0F, Math.min(15F, this.rotorSpeed + 0.05F)); + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.fusionReactorRunning", xCoord, yCoord, zCoord, 1.0F, 30F, 1.0F); + audio.startSound(); + } + + float rotorSpeed = this.rotorSpeed / 15F; + audio.updateVolume(getVolume(0.5f * rotorSpeed)); + audio.updatePitch(0.25F + 0.75F * rotorSpeed); + } else { + this.rotorSpeed = Math.max(0F, Math.min(15F, this.rotorSpeed - 0.1F)); - this.rotor += 15F; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; + if(audio != null) { + if(this.rotorSpeed > 0) { + float rotorSpeed = this.rotorSpeed / 15F; + audio.updateVolume(getVolume(0.5f * rotorSpeed)); + audio.updatePitch(0.25F + 0.75F * rotorSpeed); + } else { + audio.stopSound(); + audio = null; + } } } } @@ -355,124 +359,68 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser } @Override - public void networkUnpack(NBTTagCompound data) { - this.isOn = data.getBoolean("isOn"); - this.power = data.getLong("power"); - this.blanket = data.getInteger("blanket"); - this.progress = data.getInteger("progress"); // + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(this.isOn); + buf.writeLong(this.power); + buf.writeInt(this.progress); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + plasma.serialize(buf); + if(slots[3] == null) { + buf.writeInt(0); + } else if(slots[3].getItem() == ModItems.fusion_shield_tungsten) { + buf.writeInt(1); + } else if(slots[3].getItem() == ModItems.fusion_shield_desh) { + buf.writeInt(2); + } else if(slots[3].getItem() == ModItems.fusion_shield_chlorophyte) { + buf.writeInt(3); + } else if(slots[3].getItem() == ModItems.fusion_shield_vaporwave) { + buf.writeInt(4); + } + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.isOn = buf.readBoolean(); + this.power = buf.readLong(); + this.progress = buf.readInt(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + plasma.deserialize(buf); + this.blanket = buf.readInt(); } @Override public void handleButtonPacket(int value, int meta) { - - if(meta == 0) { - this.isOn = !this.isOn; + if(meta == 0) this.isOn = !this.isOn; + } + + public long getPowerScaled(long i) { return (power * i) / maxPower; } + public long getProgressScaled(long i) { return (progress * i) / duration; } + @Override public void setPower(long i) { this.power = i; } + @Override public long getPower() { return power; } + @Override public long getMaxPower() { return maxPower; } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public long getProgressScaled(long i) { - return (progress * i) / duration; - } - @Override - public void setPower(long i) { - this.power = i; - } + public void invalidate() { + super.invalidate(); - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - - if(index == 2) - plasma.setFill(fill); - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(plasma.getTankType().name())) - plasma.setFill(i); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - - if(index == 2) - plasma.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getFill(); - else - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(xCoord, yCoord - 3, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 3, zCoord, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; + if(audio != null) { + audio.stopSound(); + audio = null; } - - return false; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getMaxFill(); - else - return 0; } @Override @@ -481,6 +429,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); + this.totalRuntime = nbt.getLong("totalRuntime"); tanks[0].readFromNBT(nbt, "water"); tanks[1].readFromNBT(nbt, "steam"); @@ -493,6 +442,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser nbt.setLong("power", this.power); nbt.setBoolean("isOn", isOn); + nbt.setLong("totalRuntime", this.totalRuntime); tanks[0].writeToNBT(nbt, "water"); tanks[1].writeToNBT(nbt, "steam"); @@ -544,7 +494,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser int b = layout[ly][x][z]; switch(b) { - case 1: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_conductor); break; + case 1: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_conductor, 1, 3); break; case 2: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_center); break; case 3: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_motor); break; case 4: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.reinforced_glass); break; @@ -597,7 +547,114 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIITER(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.isOn && plasma.getFill() > 0); + int output = FusionRecipes.getSteamProduction(plasma.getTankType()); + data.setDouble("consumption", output * 10); + data.setDouble("outputmb", output); + } + + + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_fusion"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] isActive(Context context, Arguments args) { + return new Object[] {isOn}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setActive(Context context, Arguments args) { + isOn = args.checkBoolean(0); + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] { + tanks[0].getFill(), tanks[0].getMaxFill(), + tanks[1].getFill(), tanks[1].getMaxFill(), + plasma.getFill(), plasma.getMaxFill(), plasma.getTankType().getUnlocalizedName() + }; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPlasmaTemp(Context context, Arguments args) { + return new Object[] {plasma.getTankType().temperature}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getMaxTemp(Context context, Arguments args) { + if (slots[3] != null && (slots[3].getItem() instanceof ItemFusionShield)) + return new Object[] {((ItemFusionShield) slots[3].getItem()).maxTemp}; + return new Object[] {"N/A"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getBlanketDamage(Context context, Arguments args) { + if (slots[3] != null && (slots[3].getItem() instanceof ItemFusionShield)) + return new Object[]{ItemFusionShield.getShieldDamage(slots[3]), ((ItemFusionShield)slots[3].getItem()).maxDamage}; + return new Object[] {"N/A", "N/A"}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getEnergyInfo", + "isActive", + "setActive", + "getFluid", + "getPlasmaTemp", + "getMaxTemp", + "getBlanketDamage" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch (method) { + case ("getEnergyInfo"): + return getEnergyInfo(context, args); + case ("isActive"): + return isActive(context, args); + case ("setActive"): + return setActive(context, args); + case ("getFluid"): + return getFluid(context, args); + case ("getPlasmaTemp"): + return getPlasmaTemp(context, args); + case ("getMaxTemp"): + return getMaxTemp(context, args); + case ("getBlanketDamage"): + return getBlanketDamage(context, args); + } + throw new NoSuchMethodException(); + } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java index 7e32bc7b7..2f8bb86d2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java @@ -3,15 +3,15 @@ package com.hbm.tileentity.machine; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemKey; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.ArmorUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -public abstract class TileEntityLockableBase extends TileEntity { - +public abstract class TileEntityLockableBase extends TileEntityLoadedBase { + protected int lock; private boolean isLocked = false; protected double lockMod = 0.1D; @@ -19,106 +19,94 @@ public abstract class TileEntityLockableBase extends TileEntity { public boolean isLocked() { return isLocked; } - + public void lock() { - if(lock == 0) { MainRegistry.logger.error("A block has been set to locked state before setting pins, this should not happen and may cause errors! " + this.toString()); } - isLocked = true; } - - public void setPins(int pins) { - lock = pins; - } - - public int getPins() { - return lock; - } - - public void setMod(double mod) { - lockMod = mod; - } - - public double getMod() { - return lockMod; - } - + + public void setPins(int pins) { lock = pins; } + public int getPins() { return lock; } + public void setMod(double mod) { lockMod = mod; } + public double getMod() { return lockMod; } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + lock = nbt.getInteger("lock"); isLocked = nbt.getBoolean("isLocked"); lockMod = nbt.getDouble("lockMod"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setInteger("lock", lock); nbt.setBoolean("isLocked", isLocked); nbt.setDouble("lockMod", lockMod); } public boolean canAccess(EntityPlayer player) { - + if(!isLocked) { return true; } else { + if(player == null) + return false; ItemStack stack = player.getHeldItem(); - - if(stack != null && stack.getItem() instanceof ItemKey && - ItemKey.getPins(stack) == this.lock) { - worldObj.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); + + if(stack != null && stack.getItem() instanceof ItemKey && ItemKey.getPins(stack) == this.lock) { + worldObj.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); return true; } - + if(stack != null && stack.getItem() == ModItems.key_red) { - worldObj.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); + worldObj.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); return true; } - + return tryPick(player); } } - + private boolean tryPick(EntityPlayer player) { boolean canPick = false; ItemStack stack = player.getHeldItem(); double chanceOfSuccess = this.lockMod * 100; - - if(stack != null && stack.getItem() == ModItems.pin && player.inventory.hasItem(ModItems.screwdriver)) { - + + if(stack != null && stack.getItem() == ModItems.pin && (player.inventory.hasItem(ModItems.screwdriver) || player.inventory.hasItem(ModItems.screwdriver_desh))) { + stack.stackSize--; canPick = true; } - - if(stack != null && stack.getItem() == ModItems.screwdriver && player.inventory.hasItem(ModItems.pin)) { - + + if(stack != null && (stack.getItem() == ModItems.screwdriver || stack.getItem() == ModItems.screwdriver_desh) && player.inventory.hasItem(ModItems.pin)) { + player.inventory.consumeInventoryItem(ModItems.pin); player.inventoryContainer.detectAndSendChanges(); canPick = true; } - + if(canPick) { - + if(ArmorUtil.checkArmorPiece(player, ModItems.jackt, 2) || ArmorUtil.checkArmorPiece(player, ModItems.jackt2, 2)) chanceOfSuccess *= 100D; - + double rand = player.worldObj.rand.nextDouble() * 100; - + if(chanceOfSuccess > rand) { - worldObj.playSoundAtEntity(player, "hbm:item.pinUnlock", 1.0F, 1.0F); + worldObj.playSoundAtEntity(player, "hbm:item.pinUnlock", 1.0F, 1.0F); return true; } - worldObj.playSoundAtEntity(player, "hbm:item.pinBreak", 1.0F, 0.8F + player.worldObj.rand.nextFloat() * 0.2F); + worldObj.playSoundAtEntity(player, "hbm:item.pinBreak", 1.0F, 0.8F + player.worldObj.rand.nextFloat() * 0.2F); } - + return false; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java index a88a7db69..7777ac492 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java @@ -1,41 +1,42 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; -import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.tile.IInfoProviderEC; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEnergyGenerator { +public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC { public long power; public long maxPower = 500; + protected long output = 0; @Override public void updateEntity() { if(!worldObj.isRemote) { + + this.output = 0; Block block = worldObj.getBlock(xCoord, yCoord, zCoord); - if(block == ModBlocks.machine_amgen) { - float rad = ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord); - power += rad; - ChunkRadiationManager.proxy.decrementRad(worldObj, xCoord, yCoord, zCoord, 5F); - - } else if(block == ModBlocks.machine_geo) { + if(block == ModBlocks.machine_geo) { this.checkGeoInteraction(xCoord, yCoord + 1, zCoord); this.checkGeoInteraction(xCoord, yCoord - 1, zCoord); } + this.power += this.output; if(power > maxPower) power = maxPower; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } } @@ -44,21 +45,21 @@ public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEne Block b = worldObj.getBlock(x, y, z); if(b == ModBlocks.geysir_water) { - power += 75; + this.output += 75; } else if(b == ModBlocks.geysir_chlorine) { - power += 100; + this.output += 100; } else if(b == ModBlocks.geysir_vapor) { - power += 50; + this.output += 50; } else if(b == ModBlocks.geysir_nether) { - power += 500; + this.output += 500; } else if(b == Blocks.lava) { - power += 100; + this.output += 100; if(worldObj.rand.nextInt(6000) == 0) { worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.obsidian); } } else if(b == Blocks.flowing_lava) { - power += 25; + this.output += 25; if(worldObj.rand.nextInt(3000) == 0) { worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.cobblestone); @@ -80,4 +81,10 @@ public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEne public long getMaxPower() { return this.maxPower; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.output > 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java new file mode 100644 index 000000000..52e8c65a5 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java @@ -0,0 +1,234 @@ +package com.hbm.tileentity.machine; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerMachineAmmoPress; +import com.hbm.inventory.gui.GUIMachineAmmoPress; +import com.hbm.inventory.recipes.AmmoPressRecipes; +import com.hbm.inventory.recipes.AmmoPressRecipes.AmmoPressRecipe; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class TileEntityMachineAmmoPress extends TileEntityMachineBase implements IControlReceiver, IGUIProvider { + + public int selectedRecipe = -1; + + public AnimationState animState = AnimationState.LIFTING; + + public int playAnimation = 0; + public float prevLift = 0F; + public float lift = 0F; + public float prevPress = 0F; + public float press = 0F; + + public static enum AnimationState { + LIFTING, PRESSING, RETRACTING, LOWERING + } + + public TileEntityMachineAmmoPress() { + super(10); + } + + @Override + public String getName() { + return "container.machineAmmoPress"; + } + + @Override + public void updateEntity() { + if(!worldObj.isRemote) { + if(this.playAnimation > 0) this.playAnimation--; + this.performRecipe(); + this.networkPackNT(25); + } else { + + this.prevLift = this.lift; + this.prevPress = this.press; + + if(playAnimation > 0 || lift > 0) switch(animState) { + case LIFTING: + this.lift += 1F / 40F; + if(this.lift >= 1F) { + this.lift = 1F; + this.animState = AnimationState.PRESSING; + } break; + case PRESSING: + this.press += 1F / 20F; + if(this.press >= 1F) { + this.press = 1F; + this.animState = AnimationState.RETRACTING; + } break; + case RETRACTING: + this.press -= 1F / 20F; + if(this.press <= 0F) { + this.press = 0F; + this.animState = AnimationState.LOWERING; + } break; + case LOWERING: + this.lift -= 1F / 40F; + if(this.lift <= 0F) { + this.lift = 0F; + this.animState = AnimationState.LIFTING; + } break; + } + } + } + + // we want to update the output every time the grid changes, but producing output changes the grid again, so we just put a recursion brake on this fucker + public static boolean recipeLock = false; + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + super.setInventorySlotContents(slot, stack); + /*if(this.worldObj.isRemote) return; + + //while this allowed one shift click to process absolutely everything, it also caused a fuckton of issues + if(!recipeLock) { + recipeLock = true; + if(slot < 10) this.performRecipe(); + recipeLock = false; + }*/ + } + + public void performRecipe() { + if(selectedRecipe < 0 || selectedRecipe >= AmmoPressRecipes.recipes.size()) return; + + AmmoPressRecipe recipe = AmmoPressRecipes.recipes.get(selectedRecipe); + + if(slots[9] != null) { + if(slots[9].getItem() != recipe.output.getItem()) return; + if(slots[9].getItemDamage() != recipe.output.getItemDamage()) return; + if(slots[9].stackSize + recipe.output.stackSize > slots[9].getMaxStackSize()) return; + } + + if(this.hasIngredients(recipe)) { + this.produceAmmo(recipe); + performRecipe(); + } + } + + public boolean hasIngredients(AmmoPressRecipe recipe) { + + for(int i = 0; i < 9; i++) { + if(recipe.input[i] == null && slots[i] == null) continue; + if(recipe.input[i] != null && slots[i] == null) return false; + if(recipe.input[i] == null && slots[i] != null) return false; + if(!recipe.input[i].matchesRecipe(slots[i], false)) return false; + } + + return true; + } + + //implies hasIngredients returns true, will violently explode otherwise + protected void produceAmmo(AmmoPressRecipe recipe) { + + for(int i = 0; i < 9; i++) { + if(recipe.input[i] != null) this.decrStackSize(i, recipe.input[i].stacksize); + } + + if(slots[9] == null) { + slots[9] = recipe.output.copy(); + } else { + slots[9].stackSize += recipe.output.stackSize; + } + + this.playAnimation = 40; + } + + public int[] access = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return access; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return i == 9; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot > 8) return false; + if(selectedRecipe < 0 || selectedRecipe >= AmmoPressRecipes.recipes.size()) return false; + + AmmoPressRecipe recipe = AmmoPressRecipes.recipes.get(selectedRecipe); + if(recipe.input[slot] == null) return false; + return recipe.input[slot].matchesRecipe(stack, true); + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.selectedRecipe); + buf.writeInt(this.playAnimation); + + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.selectedRecipe = buf.readInt(); + this.playAnimation = buf.readInt(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.selectedRecipe = nbt.getInteger("recipe"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("recipe", selectedRecipe); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + int newRecipe = data.getInteger("selection"); + if(newRecipe == selectedRecipe) this.selectedRecipe = -1; + else this.selectedRecipe = newRecipe; + this.markDirty(); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineAmmoPress(player.inventory, this); } + @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineAmmoPress(player.inventory, this); } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 195b5f43e..15a099436 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -6,17 +6,15 @@ import com.hbm.inventory.container.ContainerMachineArcFurnace; import com.hbm.inventory.gui.GUIMachineArcFurnace; import com.hbm.items.ModItems; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyUser; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -25,16 +23,17 @@ import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider { +public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider, IInfoProviderEC { private ItemStack slots[]; - + public int dualCookTime; public long power; public static final long maxPower = 50000; public static final int processingSpeed = 20; - + //0: i //1: o //2: 1 @@ -42,9 +41,9 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements //4: 3 //5: b private static final int[] slots_io = new int[] {0, 1, 2, 3, 4, 5}; - + private String customName; - + public TileEntityMachineArcFurnace() { slots = new ItemStack[6]; } @@ -89,7 +88,7 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } - + public void setCustomName(String name) { this.customName = name; } @@ -108,7 +107,7 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; } } - + //You scrubs aren't needed for anything (right now) @Override public void openInventory() {} @@ -117,16 +116,16 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - + if(i == 2 || i == 3 || i == 4) - return itemStack.getItem() == ModItems.arc_electrode || itemStack.getItem() == ModItems.arc_electrode_desh; - + return itemStack.getItem() == ModItems.arc_electrode; + if(i == 0) return FurnaceRecipes.smelting().getSmeltingResult(itemStack) != null; - + return false; } - + @Override public ItemStack decrStackSize(int i, int j) { if(slots[i] != null) @@ -142,22 +141,22 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements { slots[i] = null; } - + return itemStack1; } else { return null; } } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - + this.power = nbt.getLong("powerTime"); this.dualCookTime = nbt.getInteger("cookTime"); slots = new ItemStack[getSizeInventory()]; - + for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound nbt1 = list.getCompoundTagAt(i); @@ -168,14 +167,14 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements } } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setLong("powerTime", power); nbt.setInteger("cookTime", dualCookTime); NBTTagList list = new NBTTagList(); - + for(int i = 0; i < slots.length; i++) { if(slots[i] != null) @@ -188,7 +187,7 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements } nbt.setTag("items", list); } - + @Override public int[] getAccessibleSlotsFromSide(int side) { return slots_io; @@ -201,92 +200,92 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - + if(i == 1) return true; - + if(i == 2 || i == 3 || i == 4) return itemStack.getItem() == ModItems.arc_electrode_burnt; - + return false; } - + public int getDiFurnaceProgressScaled(int i) { return (dualCookTime * i) / processingSpeed; } - + public long getPowerRemainingScaled(long i) { return (power * i) / maxPower; } - + public boolean hasPower() { return power >= 250; } - + public boolean isProcessing() { return this.dualCookTime > 0; } - + private boolean hasElectrodes() { - + if(slots[2] != null && slots[3] != null && slots[4] != null) { - if((slots[2].getItem() == ModItems.arc_electrode || slots[2].getItem() == ModItems.arc_electrode_desh) && - (slots[3].getItem() == ModItems.arc_electrode || slots[3].getItem() == ModItems.arc_electrode_desh) && - (slots[4].getItem() == ModItems.arc_electrode || slots[4].getItem() == ModItems.arc_electrode_desh)) + if((slots[2].getItem() == ModItems.arc_electrode) && + (slots[3].getItem() == ModItems.arc_electrode) && + (slots[4].getItem() == ModItems.arc_electrode)) return true; } - + return false; } - + public boolean canProcess() { - + if(!hasElectrodes()) return false; - + if(slots[0] == null) { return false; } ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); - + if(itemStack == null) { return false; } - + if(slots[1] == null) { return true; } - + if(!slots[1].isItemEqual(itemStack)) { return false; } - + if(slots[1].stackSize < getInventoryStackLimit() && slots[1].stackSize < slots[1].getMaxStackSize()) { return true; }else{ return slots[1].stackSize < itemStack.getMaxStackSize(); } } - + private void processItem() { if(canProcess()) { ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); - + if(slots[1] == null) { slots[1] = itemStack.copy(); }else if(slots[1].isItemEqual(itemStack)) { slots[1].stackSize += itemStack.stackSize; } - + for(int i = 0; i < 1; i++) { if(slots[i].stackSize <= 0) { - slots[i] = new ItemStack(slots[i].getItem().setFull3D()); + slots[i] = new ItemStack(slots[i].getItem()); }else{ slots[i].stackSize--; } @@ -295,36 +294,28 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements slots[i] = null; } } - - for(int i = 2; i < 5; i++) { - if(slots[i] != null && slots[i].getItem() == ModItems.arc_electrode) { - if(slots[i].getItemDamage() < slots[i].getMaxDamage()) - slots[i].setItemDamage(slots[i].getItemDamage() + 1); - else - slots[i] = new ItemStack(ModItems.arc_electrode_burnt); - } - } } } - + //TODO: fix this punjabi trash @Override public void updateEntity() { boolean flag1 = false; - + if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); - + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) + this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + if(hasPower() && canProcess()) { dualCookTime++; - + power -= 250; - + if(power < 0) power = 0; - + if(this.dualCookTime == processingSpeed) { this.dualCookTime = 0; @@ -334,22 +325,22 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements }else{ dualCookTime = 0; } - + boolean trigger = true; - + if(hasPower() && canProcess() && this.dualCookTime == 0) { trigger = false; } - + if(trigger) { flag1 = true; MachineArcFurnace.updateBlockState(this.dualCookTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } - + if(worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_arc_furnace_off) { - + int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); if(hasElectrodes() && meta <= 5) { @@ -359,30 +350,42 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, meta - 4, 2); } } - + power = Library.chargeTEFromItems(slots, 5, power, maxPower); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, dualCookTime, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + networkPackNT(50); // it makes no sense to refactor this to some, but I want to delete the AuxElectricityPacket already } - - + if(flag1) { this.markDirty(); } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(dualCookTime); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + dualCookTime = buf.readInt(); + } + @Override public void setPower(long i) { power = i; - + } @Override public long getPower() { return power; - + } @Override @@ -397,7 +400,13 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineArcFurnace(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.hasPower() && this.canProcess()); + data.setInteger(CompatEnergyControl.I_PROGRESS, this.dualCookTime); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java new file mode 100644 index 000000000..7ec5ae47f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java @@ -0,0 +1,592 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.container.ContainerMachineArcFurnaceLarge; +import com.hbm.inventory.gui.GUIMachineArcFurnaceLarge; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.recipes.ArcFurnaceRecipes; +import com.hbm.inventory.recipes.ArcFurnaceRecipes.ArcFurnaceRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemArcElectrode; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CrucibleUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase implements IEnergyReceiverMK2, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { + + public long power; + public static final long maxPower = 2_500_000; + public boolean liquidMode = false; + public float progress; + public boolean isProgressing; + public boolean hasMaterial; + public int delay; + public int upgrade; + + public float lid; + public float prevLid; + public int approachNum; + public float syncLid; + + private AudioWrapper audioLid; + private AudioWrapper audioProgress; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + + public byte[] electrodes = new byte[3]; + public static final byte ELECTRODE_NONE = 0; + public static final byte ELECTRODE_FRESH = 1; + public static final byte ELECTRODE_USED = 2; + public static final byte ELECTRODE_DEPLETED = 3; + + public int getMaxInputSize() { + return upgrade == 0 ? 1 : upgrade == 1 ? 4 : upgrade == 2 ? 8 : 16; + } + + public static final int maxLiquid = MaterialShapes.BLOCK.q(128); + public List liquids = new ArrayList(); + + public TileEntityMachineArcFurnaceLarge() { + super(25); + } + + @Override + public String getName() { + return "container.machineArcFurnaceLarge"; + } + + @Override + public void setInventorySlotContents(int i, ItemStack stack) { + super.setInventorySlotContents(i, stack); + + if(stack != null && stack.getItem() instanceof ItemMachineUpgrade && i == 4) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + } + } + + @Override + public void updateEntity() { + + upgradeManager.checkSlots(this, slots, 4, 4); + this.upgrade = upgradeManager.getLevel(UpgradeType.SPEED); + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 3, power, maxPower); + this.isProgressing = false; + + for(DirPos pos : getConPos()) this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + + if(power > 0) { + + boolean ingredients = this.hasIngredients(); + boolean electrodes = this.hasElectrodes(); + + int consumption = (int) (1_000 * Math.pow(5, upgrade)); + + if(ingredients && electrodes && delay <= 0 && this.liquids.isEmpty()) { + if(lid > 0) { + lid -= 1F / (60F / (upgrade * 0.5 + 1)); + if(lid < 0) lid = 0; + this.progress = 0; + } else { + + if(power >= consumption) { + int duration = 400 / (upgrade * 2 + 1); + this.progress += 1F / duration; + this.isProgressing = true; + this.power -= consumption; + if(this.progress >= 1F) { + this.process(); + this.progress = 0; + this.markDirty(); + this.delay = (int) (120 / (upgrade * 0.5 + 1)); + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, 10F); + } + } + } + } else { + if(this.delay > 0) delay--; + this.progress = 0; + if(lid < 1 && this.electrodes[0] != 0 && this.electrodes[1] != 0 && this.electrodes[2] != 0) { + lid += 1F / (60F / (upgrade * 0.5 + 1)); + if(lid > 1) lid = 1; + } + } + + hasMaterial = ingredients; + } + + this.decideElectrodeState(); + + if(!hasMaterial) hasMaterial = this.hasIngredients(); + + if(!this.liquids.isEmpty() && this.lid > 0F) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + + Vec3 impact = Vec3.createVectorHelper(0, 0, 0); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 2.875D, yCoord + 1.25D, zCoord + 0.5D + dir.offsetZ * 2.875D, 6, true, this.liquids, MaterialShapes.INGOT.q(1), impact); + + if(didPour != null) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "foundry"); + data.setInteger("color", didPour.material.moltenColor); + data.setByte("dir", (byte) dir.ordinal()); + data.setFloat("off", 0.625F); + data.setFloat("base", 0.625F); + data.setFloat("len", Math.max(1F, yCoord + 1 - (float) (Math.ceil(impact.yCoord) - 0.875))); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 2.875D, yCoord + 1, zCoord + 0.5D + dir.offsetZ * 2.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); + } + } + + this.liquids.removeIf(o -> o.amount <= 0); + + this.networkPackNT(150); + } else { + + this.prevLid = this.lid; + + if(this.approachNum > 0) { + this.lid = this.lid + ((this.syncLid - this.lid) / (float) this.approachNum); + --this.approachNum; + } else { + this.lid = this.syncLid; + } + + if(this.lid != this.prevLid) { + if(this.audioLid == null || !this.audioLid.isPlaying()) { + this.audioLid = MainRegistry.proxy.getLoopedSound("hbm:door.wgh_start", xCoord, yCoord, zCoord, this.getVolume(0.75F), 15F, 1.0F, 5); + this.audioLid.startSound(); + } + this.audioLid.keepAlive(); + } else { + if(this.audioLid != null) { + this.audioLid.stopSound(); + this.audioLid = null; + } + } + + if((lid == 1 || lid == 0) && lid != prevLid && !(this.prevLid == 0 && this.lid == 1)) { + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:door.wgh_stop", this.getVolume(1), 1F); + } + + if(this.isProgressing) { + if(this.audioProgress == null || !this.audioProgress.isPlaying()) { + this.audioProgress = MainRegistry.proxy.getLoopedSound("hbm:block.electricHum", xCoord, yCoord, zCoord, this.getVolume(1.5F), 15F, 0.75F, 5); + this.audioProgress.startSound(); + } + this.audioProgress.updatePitch(0.75F); + this.audioProgress.keepAlive(); + } else { + if(this.audioProgress != null) { + this.audioProgress.stopSound(); + this.audioProgress = null; + } + } + + if(this.lid != this.prevLid && this.lid > this.prevLid && !(this.prevLid == 0 && this.lid == 1) && MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 4, zCoord + 0.5) < 50) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", 0.01F); + data.setFloat("base", 0.5F); + data.setFloat("max", 2F); + data.setInteger("life", 70 + worldObj.rand.nextInt(30)); + data.setDouble("posX", xCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); + data.setDouble("posZ", zCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); + data.setDouble("posY", yCoord + 4); + data.setBoolean("noWind", true); + data.setFloat("alphaMod", prevLid / lid); + data.setInteger("color", 0x000000); + data.setFloat("strafe", 0.05F); + for(int i = 0; i < 3; i++) MainRegistry.proxy.effectNT(data); + } + + if(this.lid != this.prevLid && this.lid < this.prevLid && this.lid > 0.5F && this.hasMaterial && MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 4, zCoord + 0.5) < 50) { + /*NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", 0.01F); + data.setFloat("base", 0.5F); + data.setFloat("max", 2F); + data.setInteger("life", 50 + worldObj.rand.nextInt(20)); + data.setDouble("posX", xCoord + 0.5 + worldObj.rand.nextGaussian() * 0.25); + data.setDouble("posZ", zCoord + 0.5 + worldObj.rand.nextGaussian() * 0.25); + data.setDouble("posY", yCoord + 4); + data.setBoolean("noWind", true); + data.setFloat("alphaMod", prevLid / lid); + data.setInteger("color", 0x808080); + data.setFloat("strafe", 0.15F); + MainRegistry.proxy.effectNT(data);*/ + + if(worldObj.rand.nextInt(5) == 0) { + NBTTagCompound flame = new NBTTagCompound(); + flame.setString("type", "rbmkflame"); + flame.setDouble("posX", xCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); + flame.setDouble("posZ", zCoord + 0.5 + worldObj.rand.nextGaussian() * 0.5); + flame.setDouble("posY", yCoord + 2.75); + flame.setInteger("maxAge", 50); + for(int i = 0; i < 2; i++) MainRegistry.proxy.effectNT(flame); + } + } + } + } + + public void decideElectrodeState() { + for(int i = 0; i < 3; i++) { + + if(slots[i] != null) { + if(slots[i].getItem() == ModItems.arc_electrode_burnt) { this.electrodes[i] = this.ELECTRODE_DEPLETED; continue; } + if(slots[i].getItem() == ModItems.arc_electrode) { + if(this.isProgressing || ItemArcElectrode.getDurability(slots[i]) > 0) this.electrodes[i] = this.ELECTRODE_USED; + else this.electrodes[i] = this.ELECTRODE_FRESH; + continue; + } + } + this.electrodes[i] = this.ELECTRODE_NONE; + } + } + + public void process() { + + for(int i = 5; i < 25; i++) { + if(slots[i] == null) continue; + ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(slots[i], this.liquidMode); + if(recipe == null) continue; + + if(!liquidMode && recipe.solidOutput != null) { + int amount = slots[i].stackSize; + slots[i] = recipe.solidOutput.copy(); + slots[i].stackSize *= amount; + } + + if(liquidMode && recipe.fluidOutput != null) { + + while(slots[i] != null && slots[i].stackSize > 0) { + int liquid = this.getStackAmount(liquids); + int toAdd = this.getStackAmount(recipe.fluidOutput); + + if(liquid + toAdd <= this.maxLiquid) { + this.decrStackSize(i, 1); + for(MaterialStack stack : recipe.fluidOutput) { + this.addToStack(stack); + } + } else { + break; + } + } + } + } + + for(int i = 0; i < 3; i++) { + if(ItemArcElectrode.damage(slots[i])) { + slots[i] = new ItemStack(ModItems.arc_electrode_burnt, 1, slots[i].getItemDamage()); + } + } + } + + public boolean hasIngredients() { + + for(int i = 5; i < 25; i++) { + if(slots[i] == null) continue; + ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(slots[i], this.liquidMode); + if(recipe == null) continue; + if(liquidMode && recipe.fluidOutput != null) return true; + if(!liquidMode && recipe.solidOutput != null) return true; + } + + return false; + } + + public boolean hasElectrodes() { + for(int i = 0; i < 3; i++) { + if(slots[i] == null || slots[i].getItem() != ModItems.arc_electrode) return false; + } + return true; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24}; + } + + @Override + public boolean canInsertItem(int slot, ItemStack stack, int side) { + if(lid <= 0) return false; + if(slot < 3) return stack.getItem() == ModItems.arc_electrode; + if(slot > 4) { + ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(stack, this.liquidMode); + if(recipe == null) return false; + if(liquidMode) { + if(recipe.fluidOutput == null) return false; + int sta = slots[slot] != null ? slots[slot].stackSize : 0; + sta += stack.stackSize; + return sta <= getMaxInputSize(); + } else { + if(recipe.solidOutput == null) return false; + int sta = slots[slot] != null ? slots[slot].stackSize : 0; + sta += stack.stackSize; + return sta * recipe.solidOutput.stackSize <= recipe.solidOutput.getMaxStackSize() && sta <= getMaxInputSize(); + } + } + return false; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot < 3) return stack.getItem() == ModItems.arc_electrode; + if(slot > 4) { + ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(stack, this.liquidMode); + if(recipe == null) return false; + if(liquidMode) { + return recipe.fluidOutput != null; + } else { + return recipe.solidOutput != null; + } + } + return false; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + if(slot < 3) return lid >= 1 && stack.getItem() != ModItems.arc_electrode; + if(slot > 4) return lid > 0 && ArcFurnaceRecipes.getOutput(stack, this.liquidMode) == null; + return false; + } + + public void addToStack(MaterialStack matStack) { + + for(MaterialStack mat : liquids) { + if(mat.material == matStack.material) { + mat.amount += matStack.amount; + return; + } + } + + liquids.add(matStack.copy()); + } + + public static int getStackAmount(List stack) { + int amount = 0; + for(MaterialStack mat : stack) amount += mat.amount; + return amount; + } + + public static int getStackAmount(MaterialStack[] stack) { + int amount = 0; + for(MaterialStack mat : stack) amount += mat.amount; + return amount; + } + + protected DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX * 3 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 3 + rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX * 3 - rot.offsetX, yCoord, zCoord + dir.offsetZ * 3 - rot.offsetZ, dir), + new DirPos(xCoord + rot.offsetX * 3 + dir.offsetX, yCoord, zCoord + rot.offsetZ * 3 + dir.offsetZ, rot), + new DirPos(xCoord + rot.offsetX * 3 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 3 - dir.offsetZ, rot), + new DirPos(xCoord - rot.offsetX * 3 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 3 + dir.offsetZ, rot.getOpposite()), + new DirPos(xCoord - rot.offsetX * 3 - dir.offsetX, yCoord, zCoord - rot.offsetZ * 3 - dir.offsetZ, rot.getOpposite()) + }; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeFloat(progress); + buf.writeFloat(lid); + buf.writeBoolean(isProgressing); + buf.writeBoolean(liquidMode); + buf.writeBoolean(hasMaterial); + + for(int i = 0; i < 3; i++) buf.writeByte(electrodes[i]); + + buf.writeShort(liquids.size()); + + for(MaterialStack mat : liquids) { + buf.writeInt(mat.material.id); + buf.writeInt(mat.amount); + } + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.progress = buf.readFloat(); + this.syncLid = buf.readFloat(); + this.isProgressing = buf.readBoolean(); + this.liquidMode = buf.readBoolean(); + this.hasMaterial = buf.readBoolean(); + + for(int i = 0; i < 3; i++) electrodes[i] = buf.readByte(); + + int mats = buf.readShort(); + + this.liquids.clear(); + for(int i = 0; i < mats; i++) { + liquids.add(new MaterialStack(Mats.matById.get(buf.readInt()), buf.readInt())); + } + + if(syncLid != 0 && syncLid != 1) this.approachNum = 2; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + this.liquidMode = nbt.getBoolean("liquidMode"); + this.progress = nbt.getFloat("progress"); + this.lid = nbt.getFloat("lid"); + this.delay = nbt.getInteger("delay"); + + int count = nbt.getShort("count"); + liquids.clear(); + + for(int i = 0; i < count; i++) { + liquids.add(new MaterialStack(Mats.matById.get(nbt.getInteger("m" + i)), nbt.getInteger("a" + i))); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setBoolean("liquidMode", liquidMode); + nbt.setFloat("progress", progress); + nbt.setFloat("lid", lid); + nbt.setInteger("delay", delay); + + int count = liquids.size(); + nbt.setShort("count", (short) count); + for(int i = 0; i < count; i++) { + MaterialStack mat = liquids.get(i); + nbt.setInteger("m" + i, mat.material.id); + nbt.setInteger("a" + i, mat.amount); + } + } + + @Override + public long getPower() { + return power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 3, + yCoord, + zCoord - 3, + xCoord + 4, + yCoord + 6, + zCoord + 4 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineArcFurnaceLarge(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineArcFurnaceLarge(player.inventory, this); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.getBoolean("liquid")) { + this.liquidMode = !this.liquidMode; + this.markDirty(); + } + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_arc_furnace)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level * 2 + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + ((int) Math.pow(5, level) * 100 - 100) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + return upgrades; + } + +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java new file mode 100644 index 000000000..6ab6585c6 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -0,0 +1,400 @@ +package com.hbm.tileentity.machine; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.container.ContainerMachineArcWelder; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineArcWelder; +import com.hbm.inventory.recipes.ArcWelderRecipes; +import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.*; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable { + + public long power; + public long maxPower = 2_000; + public long consumption; + + public int progress; + public int processTime = 1; + + public FluidTank tank; + public ItemStack display; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + + public TileEntityMachineArcWelder() { + super(8); + this.tank = new FluidTank(Fluids.NONE, 24_000); + } + + @Override + public String getName() { + return "container.machineArcWelder"; + } + + @Override + public void setInventorySlotContents(int i, ItemStack stack) { + super.setInventorySlotContents(i, stack); + + if(stack != null && stack.getItem() instanceof ItemMachineUpgrade && i >= 6 && i <= 7) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + } + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 4, this.getPower(), this.getMaxPower()); + this.tank.setType(5, slots); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tank.getTankType() != Fluids.NONE) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + ArcWelderRecipe recipe = ArcWelderRecipes.getRecipe(slots[0], slots[1], slots[2]); + long intendedMaxPower; + + upgradeManager.checkSlots(this, slots, 6, 7); + int redLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int blueLevel = upgradeManager.getLevel(UpgradeType.POWER); + + if(recipe != null) { + this.processTime = recipe.duration - (recipe.duration * redLevel / 6) + (recipe.duration * blueLevel / 3); + this.consumption = recipe.consumption + (recipe.consumption * redLevel) - (recipe.consumption * blueLevel / 6); + intendedMaxPower = recipe.consumption * 20; + + if(canProcess(recipe)) { + this.progress++; + this.power -= this.consumption; + + if(progress >= processTime) { + this.progress = 0; + this.consumeItems(recipe); + + if(slots[3] == null) { + slots[3] = recipe.output.copy(); + } else { + slots[3].stackSize += recipe.output.stackSize; + } + + this.markDirty(); + } + + if(worldObj.getTotalWorldTime() % 2 == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + NBTTagCompound dPart = new NBTTagCompound(); + dPart.setString("type", worldObj.getTotalWorldTime() % 20 == 0 ? "tau" : "hadron"); + dPart.setByte("count", (byte) 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(dPart, xCoord + 0.5 - dir.offsetX * 0.5, yCoord + 1.25, zCoord + 0.5 - dir.offsetZ * 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); + } + + } else { + this.progress = 0; + } + + } else { + this.progress = 0; + this.consumption = 100; + intendedMaxPower = 2000; + } + + this.maxPower = Math.max(intendedMaxPower, power); + + this.networkPackNT(25); + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeLong(maxPower); + buf.writeLong(consumption); + buf.writeInt(progress); + buf.writeInt(processTime); + + tank.serialize(buf); + + ArcWelderRecipe recipe = ArcWelderRecipes.getRecipe(slots[0], slots[1], slots[2]); + + if(recipe != null) { + buf.writeBoolean(true); + buf.writeInt(Item.getIdFromItem(recipe.output.getItem())); + buf.writeInt(recipe.output.getItemDamage()); + } else + buf.writeBoolean(false); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + maxPower = buf.readLong(); + consumption = buf.readLong(); + progress = buf.readInt(); + processTime = buf.readInt(); + + tank.deserialize(buf); + + if(buf.readBoolean()) { + this.display = new ItemStack(Item.getItemById(buf.readInt()), 1, buf.readInt()); + } else + this.display = null; + } + + public boolean canProcess(ArcWelderRecipe recipe) { + + if(this.power < this.consumption) return false; + + if(recipe.fluid != null) { + if(this.tank.getTankType() != recipe.fluid.type) return false; + if(this.tank.getFill() < recipe.fluid.fill) return false; + } + + if(slots[3] != null) { + if(slots[3].getItem() != recipe.output.getItem()) return false; + if(slots[3].getItemDamage() != recipe.output.getItemDamage()) return false; + if(slots[3].stackSize + recipe.output.stackSize > slots[3].getMaxStackSize()) return false; + } + + return true; + } + + public void consumeItems(ArcWelderRecipe recipe) { + + for(AStack aStack : recipe.ingredients) { + + for(int i = 0; i < 3; i++) { + ItemStack stack = slots[i]; + if(aStack.matchesRecipe(stack, true) && stack.stackSize >= aStack.stacksize) { + this.decrStackSize(i, aStack.stacksize); + break; + } + } + } + + if(recipe.fluid != null) { + this.tank.setFill(tank.getFill() - recipe.fluid.fill); + } + } + + protected DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir), + new DirPos(xCoord + dir.offsetX + rot.offsetX, yCoord, zCoord + dir.offsetZ + rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX - rot.offsetX, yCoord, zCoord + dir.offsetZ - rot.offsetZ, dir), + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), + new DirPos(xCoord - dir.offsetX + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ + rot.offsetZ * 2, rot), + new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ - rot.offsetZ * 2, rot.getOpposite()) + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + this.progress = nbt.getInteger("progress"); + this.processTime = nbt.getInteger("processTime"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + nbt.setLong("maxPower", maxPower); + nbt.setInteger("progress", progress); + nbt.setInteger("processTime", processTime); + tank.writeToNBT(nbt, "t"); + } + + @Override + public long getPower() { + return Math.max(Math.min(power, maxPower), 0); + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {tank}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot < 3; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + return slot == 3; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 1, 3 }; + } + + @Override + public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack) { + return slot < 3; + } + + @Override + public boolean canInsertItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return slot < 3; + } + + @Override + public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return slot == 3; + } + + @Override + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) { + BlockPos pos = new BlockPos(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + BlockPos core = new BlockPos(xCoord, yCoord, zCoord); + + //Red + if(pos.equals(core.clone().offset(rot)) || pos.equals(core.clone().offset(rot.getOpposite()).offset(dir.getOpposite()))) + return new int[] { 0, 3 }; + + //Yellow + if(pos.equals(core.clone().offset(dir.getOpposite()))) + return new int[] { 1, 3 }; + + //Green + if(pos.equals(core.clone().offset(rot.getOpposite())) || pos.equals(core.clone().offset(rot).offset(dir.getOpposite()))) + return new int[] { 2, 3 }; + + return new int[] { }; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineArcWelder(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineArcWelder(player.inventory, this); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_arc_welder)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 100 / 6) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 100 / 6) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 100 / 3) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + return upgrades; + } + + @Override + public FluidTank getTankToPaste() { + return tank; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 33c973b89..fd7d1b822 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -1,62 +1,44 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Random; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.RecipesCommon.AStack; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.inventory.UpgradeManager; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerMachineAssembler; import com.hbm.inventory.gui.GUIMachineAssembler; -import com.hbm.inventory.recipes.AssemblerRecipes; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.tileentity.machine.storage.TileEntityCrateBase; -import com.hbm.tileentity.machine.storage.TileEntityCrateIron; -import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.tileentity.TileEntityHopper; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssembler extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase implements IUpgradeInfoProvider { + + public int recipe = -1; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); - public long power; - public static final long maxPower = 100000; - public int progress; - public int maxProgress = 100; - public boolean isProgressing; - int age = 0; - int consumption = 100; - int speed = 100; - - @SideOnly(Side.CLIENT) - public int recipe; - - private AudioWrapper audio; - Random rand = new Random(); - + public TileEntityMachineAssembler() { super(18); } @@ -71,73 +53,51 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements if(i == 0) if(itemStack.getItem() instanceof IBatteryItem) return true; - + if(i == 1) return true; - + return false; } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.power = nbt.getLong("powerTime"); - this.progress = nbt.getInteger("progress"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - nbt.setInteger("progress", progress); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (progress * i) / maxProgress; - } - + @Override public void updateEntity() { - + super.updateEntity(); + if(!worldObj.isRemote) { - + + //meta below 12 means that it's an old multiblock configuration + if(this.getBlockMetadata() < 12) { + int meta = this.getBlockMetadata(); + if(meta == 2 || meta == 14) meta = 4; + else if(meta == 4 || meta == 13) meta = 3; + else if(meta == 3 || meta == 15) meta = 5; + else if(meta == 5 || meta == 12) meta = 2; + //get old direction + ForgeDirection dir = ForgeDirection.getOrientation(meta); + //remove tile from the world to prevent inventory dropping + worldObj.removeTileEntity(xCoord, yCoord, zCoord); + //use fillspace to create a new multiblock configuration + worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.machine_assembler, dir.ordinal() + 10, 3); + MultiblockHandlerXR.fillSpace(worldObj, xCoord, yCoord, zCoord, ((BlockDummyable) ModBlocks.machine_assembler).getDimensions(), ModBlocks.machine_assembler, dir); + //load the tile data to restore the old values + NBTTagCompound data = new NBTTagCompound(); + this.writeToNBT(data); + worldObj.getTileEntity(xCoord, yCoord, zCoord).readFromNBT(data); + return; + } + this.updateConnections(); this.consumption = 100; this.speed = 100; - - UpgradeManager.eval(slots, 1, 3); - int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); - + upgradeManager.checkSlots(this, slots, 1, 3); + + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); + int overLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + speed -= speedLevel * 25; consumption += speedLevel * 300; speed += powerLevel * 5; @@ -145,96 +105,19 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements speed /= (overLevel + 1); consumption *= (overLevel + 1); - isProgressing = false; - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - if(AssemblerRecipes.getOutputFromTempate(slots[4]) != null && AssemblerRecipes.getRecipeFromTempate(slots[4]) != null) { - this.maxProgress = (ItemAssemblyTemplate.getProcessTime(slots[4]) * speed) / 100; - - if(power >= consumption && removeItems(AssemblerRecipes.getRecipeFromTempate(slots[4]), cloneItemStackProper(slots))) { - - if(slots[5] == null || (slots[5] != null && slots[5].getItem() == AssemblerRecipes.getOutputFromTempate(slots[4]).copy().getItem()) && slots[5].stackSize + AssemblerRecipes.getOutputFromTempate(slots[4]).copy().stackSize <= slots[5].getMaxStackSize()) { - progress++; - isProgressing = true; - - if(progress >= maxProgress) { - progress = 0; - if(slots[5] == null) { - slots[5] = AssemblerRecipes.getOutputFromTempate(slots[4]).copy(); - } else { - slots[5].stackSize += AssemblerRecipes.getOutputFromTempate(slots[4]).copy().stackSize; - } - - removeItems(AssemblerRecipes.getRecipeFromTempate(slots[4]), slots); - - if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_alloyed) - slots[0] = new ItemStack(ModItems.meteorite_sword_machined); - } - - power -= consumption; - } - } else - progress = 0; - } else - progress = 0; - - int meta = worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord); - - TileEntity te1 = null; - TileEntity te2 = null; - - if(meta == 2) { - te1 = worldObj.getTileEntity(xCoord - 2, yCoord, zCoord); - te2 = worldObj.getTileEntity(xCoord + 3, yCoord, zCoord - 1); - } - if(meta == 3) { - te1 = worldObj.getTileEntity(xCoord + 2, yCoord, zCoord); - te2 = worldObj.getTileEntity(xCoord - 3, yCoord, zCoord + 1); - } - if(meta == 4) { - te1 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 2); - te2 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord - 3); - } - if(meta == 5) { - te1 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 2); - te2 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord + 3); - } - - tryExchangeTemplates(te1, te2); - - //OUTPUT - if(te1 instanceof TileEntityCrateBase || te1 instanceof TileEntityChest) { - IInventory chest = (IInventory)te1; - tryFillContainer(chest, 5); - } - - if(te2 instanceof TileEntityCrateBase || te2 instanceof TileEntityChest) { - IInventory chest = (IInventory)te2; - - for(int i = 0; i < chest.getSizeInventory(); i++) - if(tryFillAssembler(chest, i)) - break; - } - - int rec = -1; + /*int rec = -1; if(AssemblerRecipes.getOutputFromTempate(slots[4]) != null) { ComparableStack comp = ItemAssemblyTemplate.readType(slots[4]); rec = AssemblerRecipes.recipeList.indexOf(comp); - } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("progress", progress); - data.setInteger("maxProgress", maxProgress); - data.setBoolean("isProgressing", isProgressing); - data.setInteger("recipe", rec); - this.networkPack(data, 150); + }*/ + + this.networkPackNT(150); } else { - - float volume = this.getVolume(2); + + float volume = this.getVolume(2F); if(isProgressing && volume > 0) { - + if(audio == null) { audio = this.createAudioLoop(); audio.updateVolume(volume); @@ -243,9 +126,9 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements audio = rebootAudio(audio); audio.updateVolume(volume); } - + } else { - + if(audio != null) { audio.stopSound(); audio = null; @@ -253,365 +136,128 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements } } } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + for(int i = 0; i < getRecipeCount(); i++) { + buf.writeInt(progress[i]); + buf.writeInt(maxProgress[i]); + } + + buf.writeBoolean(isProgressing); + buf.writeInt(recipe); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + for(int i = 0; i < getRecipeCount(); i++) { + progress[i] = buf.readInt(); + maxProgress[i] = buf.readInt(); + } + + isProgressing = buf.readBoolean(); + recipe = buf.readInt(); + } + @Override public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:block.assemblerOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } - + private void updateConnections() { - this.getBlockMetadata(); - - if(this.blockMetadata == 5) { - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - - } else if(this.blockMetadata == 3) { - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z); - - } else if(this.blockMetadata == 4) { - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); - - } else if(this.blockMetadata == 2) { - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); - } - } - - public void onChunkUnload() { - - if(audio != null) { - audio.stopSound(); - audio = null; - } - } - - public void invalidate() { - - super.invalidate(); - - if(audio != null) { - audio.stopSound(); - audio = null; - } - } - - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.progress = nbt.getInteger("progress"); - this.maxProgress = nbt.getInteger("maxProgress"); - this.isProgressing = nbt.getBoolean("isProgressing"); - this.recipe = nbt.getInteger("recipe"); - } - - private boolean removeItems(List stack, ItemStack[] array) { - if(stack == null) - return false; - - for(int i = 0; i < stack.size(); i++) { - for(int j = 0; j < stack.get(i).stacksize; j++) { - AStack sta = stack.get(i).copy(); - sta.stacksize = 1; - - if(!canRemoveItemFromArray(sta, array)) - return false; - } + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - - return true; } - - public boolean canRemoveItemFromArray(AStack stack, ItemStack[] array) { - AStack st = stack.copy(); - - if(st == null) - return true; - - for(int i = 6; i < 18; i++) { - - if(array[i] != null) { - - ItemStack sta = array[i].copy(); - sta.stackSize = 1; - - if(sta != null && st.isApplicable(sta) && array[i].stackSize > 0) { - array[i].stackSize--; - - if(array[i].stackSize <= 0) - array[i] = null; - - return true; - } - } - } - - return false; - } - - public boolean tryExchangeTemplates(TileEntity te1, TileEntity te2) { - //validateTe sees if it's a valid inventory tile entity - boolean te1Valid = validateTe(te1); - boolean te2Valid = validateTe(te2); - - if(te1Valid && te2Valid){ - IInventory iTe1 = (IInventory)te1; - IInventory iTe2 = (IInventory)te2; - boolean openSlot = false; - boolean existingTemplate = false; - boolean filledContainer = false; - //Check if there's an existing template and an open slot - for(int i = 0; i < iTe1.getSizeInventory(); i++){ - if(iTe1.getStackInSlot(i) == null){ - openSlot = true; - - } - - } - if(this.slots[4] != null){ - existingTemplate = true; - } - //Check if there's a template in input - for(int i = 0; i < iTe2.getSizeInventory(); i++){ - if(iTe2.getStackInSlot(i) != null && iTe2.getStackInSlot(i).getItem() instanceof ItemAssemblyTemplate){ - if(openSlot && existingTemplate){ - filledContainer = tryFillContainer(iTe1, 4); - - } - if(filledContainer){ - ItemStack copy = iTe2.getStackInSlot(i).copy(); - iTe2.setInventorySlotContents(i, null); - this.slots[4] = copy; - } - } - - } - - - } - return false; - - } - - private boolean validateTe(TileEntity te) { - if(te instanceof TileEntityChest) { - return true; - } - - if(te instanceof TileEntityHopper) { - return true; - } - - if(te instanceof TileEntityCrateIron) { - return true; - } - - if(te instanceof TileEntityCrateSteel) { - return true; - } - - return false; - } - - //I can't believe that worked. - public ItemStack[] cloneItemStackProper(ItemStack[] array) { - ItemStack[] stack = new ItemStack[array.length]; - - for(int i = 0; i < array.length; i++) - if(array[i] != null) - stack[i] = array[i].copy(); - else - stack[i] = null; - - return stack; - } - - //Unloads output into chests - public boolean tryFillContainer(IInventory inventory, int slot) { - - int size = inventory.getSizeInventory(); + public DirPos[] getConPos() { - for(int i = 0; i < size; i++) { - if(inventory.getStackInSlot(i) != null) { - - if(slots[slot] == null) - return false; - - ItemStack sta1 = inventory.getStackInSlot(i).copy(); - ItemStack sta2 = slots[slot].copy(); - if(sta1 != null && sta2 != null) { - sta1.stackSize = 1; - sta2.stackSize = 1; - - if(ItemStack.areItemStacksEqual(sta1, sta2) && ItemStack.areItemStackTagsEqual(sta1, sta2) && inventory.getStackInSlot(i).stackSize < inventory.getStackInSlot(i).getMaxStackSize()) { - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - ItemStack sta3 = inventory.getStackInSlot(i).copy(); - sta3.stackSize++; - inventory.setInventorySlotContents(i, sta3); - - return true; - } - } - } - } - for(int i = 0; i < size; i++) { - - if(slots[slot] == null) - return false; - - ItemStack sta2 = slots[slot].copy(); - if(inventory.getStackInSlot(i) == null && sta2 != null) { - sta2.stackSize = 1; - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - inventory.setInventorySlotContents(i, sta2); - - return true; - } - } - - return false; - } - - public boolean tryFillAssembler(IInventory inventory, int slot) { - - if(AssemblerRecipes.getOutputFromTempate(slots[4]) == null || AssemblerRecipes.getRecipeFromTempate(slots[4]) == null) - return false; - else { - List list = copyItemStackList(AssemblerRecipes.getRecipeFromTempate(slots[4])); - - for(int i = 0; i < list.size(); i++) - list.get(i).stacksize = 1; + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - if(inventory.getStackInSlot(slot) == null) - return false; - - ItemStack stack = inventory.getStackInSlot(slot).copy(); - stack.stackSize = 1; - - boolean flag = false; - - for(int i = 0; i < list.size(); i++) - if(list.get(i).isApplicable(stack)) - flag = true; - - if(!flag) - return false; - - } - - for(int i = 6; i < 18; i++) { - - if(slots[i] != null) { - - ItemStack sta1 = inventory.getStackInSlot(slot).copy(); - ItemStack sta2 = slots[i].copy(); - if(sta1 != null && sta2 != null) { - sta1.stackSize = 1; - sta2.stackSize = 1; - - if(sta1.isItemEqual(sta2) && slots[i].stackSize < slots[i].getMaxStackSize()) { - ItemStack sta3 = inventory.getStackInSlot(slot).copy(); - sta3.stackSize--; - if(sta3.stackSize <= 0) - sta3 = null; - inventory.setInventorySlotContents(slot, sta3); - - slots[i].stackSize++; - return true; - } - } - } - } - - for(int i = 6; i < 18; i++) { - - ItemStack sta2 = inventory.getStackInSlot(slot).copy(); - if(slots[i] == null && sta2 != null) { - sta2.stackSize = 1; - slots[i] = sta2.copy(); - - ItemStack sta3 = inventory.getStackInSlot(slot).copy(); - sta3.stackSize--; - if(sta3.stackSize <= 0) - sta3 = null; - inventory.setInventorySlotContents(slot, sta3); - - return true; - } - } - - return false; - } - - public static List copyItemStackList(List list){ - List newList = new ArrayList(); - if(list == null || list.isEmpty()) - return newList; - for(AStack stack : list){ - newList.add(stack.copy()); - } - return newList; - } - - @Override - public void setPower(long i) { - power = i; - + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, rot), + new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord + rot.offsetX * 3 + dir.offsetX, yCoord, zCoord + rot.offsetZ * 3 + dir.offsetZ, rot), + new DirPos(xCoord - rot.offsetX * 2 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 2 + dir.offsetZ, rot.getOpposite()) + }; } @Override - public long getPower() { - return power; - + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + private AudioWrapper audio; + + @Override + public int getRecipeCount() { + return 1; + } + + @Override + public int getTemplateIndex(int index) { + return 4; + } + + @Override + public int[] getSlotIndicesFromIndex(int index) { + return new int[] {6, 17, 5}; + } + + @Override + public DirPos[] getInputPositions() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] {new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ, dir.getOpposite())}; + } + + @Override + public DirPos[] getOutputPositions() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + return new DirPos[] {new DirPos(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, dir)}; + } + + @Override + public int getPowerSlot() { + return 0; } @Override public long getMaxPower() { - return maxPower; + return 100_000; } - + @Override public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).expand(2, 1, 2); } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } - - public int countMufflers() { - - int count = 0; - - for(int x = xCoord - 1; x <= xCoord + 1; x++) - for(int z = zCoord - 1; z <= zCoord + 1; z++) - if(worldObj.getBlock(x, yCoord - 1, z) == ModBlocks.muffler) - count++; - - return count; - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -620,7 +266,37 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineAssembler(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); + return upgrades; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index 587b14e85..d0d58dfb4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; import java.util.List; import com.hbm.inventory.RecipesCommon.AStack; @@ -9,50 +10,55 @@ import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; import com.hbm.util.InventoryUtil; +import com.hbm.util.ItemStackUtil; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChunkCoordinates; -public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { public long power; public int[] progress; public int[] maxProgress; public boolean isProgressing; - + public boolean[] needsTemplateSwitch; + int consumption = 100; int speed = 100; public TileEntityMachineAssemblerBase(int scount) { super(scount); - + int count = this.getRecipeCount(); progress = new int[count]; maxProgress = new int[count]; + needsTemplateSwitch = new boolean[count]; } @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + int count = this.getRecipeCount(); - + this.isProgressing = false; - this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); - + this.power = Library.chargeTEFromItems(slots, getPowerSlot(), power, this.getMaxPower()); + for(int i = 0; i < count; i++) { - loadItems(i); unloadItems(i); + loadItems(i); } - + for(int i = 0; i < count; i++) { if(!canProcess(i)) { this.progress[i] = 0; @@ -63,130 +69,170 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } } - + protected boolean canProcess(int index) { - + int template = getTemplateIndex(index); - + if(slots[template] == null || slots[template].getItem() != ModItems.assembly_template) return false; List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); ItemStack output = AssemblerRecipes.getOutputFromTempate(slots[template]); - + if(recipe == null) return false; - + if(this.power < this.consumption) return false; if(!hasRequiredItems(recipe, index)) return false; if(!hasSpaceForItems(output, index)) return false; - + return true; } - + + public HashMap cachedItems = new HashMap<>(); + private boolean hasRequiredItems(List recipe, int index) { int[] indices = getSlotIndicesFromIndex(index); - return InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], recipe.toArray(new AStack[0])); + ItemStack[] copy = ItemStackUtil.carefulCopyArrayTruncate(slots, indices[0], indices[1]); + if (cachedItems.get(copy) != null) + return cachedItems.get(copy); + else { + boolean hasItems = InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], recipe.toArray(new AStack[0])); + cachedItems.put(copy, hasItems); + return hasItems; + } } - + private boolean hasSpaceForItems(ItemStack recipe, int index) { int[] indices = getSlotIndicesFromIndex(index); return InventoryUtil.doesArrayHaveSpace(slots, indices[2], indices[2], new ItemStack[] { recipe }); } - + protected void process(int index) { - + this.power -= this.consumption; this.progress[index]++; - + if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_alloyed) slots[0] = new ItemStack(ModItems.meteorite_sword_machined); //fisfndmoivndlmgindgifgjfdnblfm - + int template = getTemplateIndex(index); List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); ItemStack output = AssemblerRecipes.getOutputFromTempate(slots[template]); int time = ItemAssemblyTemplate.getProcessTime(slots[template]); - + this.maxProgress[index] = time * this.speed / 100; - + if(this.progress[index] >= this.maxProgress[index]) { consumeItems(recipe, index); produceItems(output, index); this.progress[index] = 0; + this.needsTemplateSwitch[index] = true; this.markDirty(); } } - + private void consumeItems(List recipe, int index) { - + int[] indices = getSlotIndicesFromIndex(index); - + for(AStack in : recipe) { if(in != null) InventoryUtil.tryConsumeAStack(slots, indices[0], indices[1], in); } } - + private void produceItems(ItemStack out, int index) { - + int[] indices = getSlotIndicesFromIndex(index); - + if(out != null) { InventoryUtil.tryAddItemToInventory(slots, indices[2], indices[2], out.copy()); } } - - private void loadItems(int index) { - - int template = getTemplateIndex(index); - if(slots[template] == null || slots[template].getItem() != ModItems.assembly_template) - return; - List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); - - if(recipe != null) { - - ChunkCoordinates[] positions = getInputPositions(); - int[] indices = getSlotIndicesFromIndex(index); - - for(ChunkCoordinates coord : positions) { - - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); - - if(te instanceof IInventory) { - - IInventory inv = (IInventory) te; - ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; - - for(AStack ingredient : recipe) { - - if(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { - - for(int i = 0; i < inv.getSizeInventory(); i++) { - - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { - - for(int j = indices[0]; j <= indices[1]; j++) { - - if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); - slots[j].stackSize++; - return; + private void loadItems(int index) { + + int template = getTemplateIndex(index); + + DirPos[] positions = getInputPositions(); + int[] indices = getSlotIndicesFromIndex(index); + + for(DirPos coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); + + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; + boolean templateCrate = te instanceof TileEntityCrateTemplate; + + if(templateCrate && slots[template] == null) { + + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); + + if(stack != null && stack.getItem() == ModItems.assembly_template && (sided == null || sided.canExtractItem(slot, stack, 0))) { + slots[template] = stack.copy(); + sided.setInventorySlotContents(slot, null); + this.needsTemplateSwitch[index] = false; + break; + } + } + } + + boolean noTemplate = slots[template] == null || slots[template].getItem() != ModItems.assembly_template; + + if(!noTemplate) { + + List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); + + if(recipe != null) { + + for(AStack ingredient : recipe) { + + int tracker = 0; + + outer: while(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { + + if(tracker++ > 10) break; + + boolean found = false; + + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(slot, stack, 0))) { + found = true; + + for(int j = indices[0]; j <= indices[1]; j++) { + + if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { + inv.decrStackSize(slot, 1); + slots[j].stackSize++; + continue outer; + } } - } - - for(int j = indices[0]; j <= indices[1]; j++) { - - if(slots[j] == null) { - slots[j] = stack.copy(); - slots[j].stackSize = 1; - inv.decrStackSize(i, 1); - return; + + for(int j = indices[0]; j <= indices[1]; j++) { + + if(slots[j] == null) { + slots[j] = stack.copy(); + slots[j].stackSize = 1; + inv.decrStackSize(slot, 1); + continue outer; + } } } } + + if(!found) break outer; } } } @@ -194,32 +240,41 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } } - + private void unloadItems(int index) { - ChunkCoordinates[] positions = getOutputPositions(); + DirPos[] positions = getOutputPositions(); int[] indices = getSlotIndicesFromIndex(index); - - for(ChunkCoordinates coord : positions) { - - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); - - if(te instanceof IInventory) { - - IInventory inv = (IInventory) te; - - int i = indices[2]; + for(DirPos coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); + + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; + + int i = indices[2]; ItemStack out = slots[i]; + int template = getTemplateIndex(index); + if(this.needsTemplateSwitch[index] && te instanceof TileEntityCrateTemplate && slots[template] != null) { + out = slots[template]; + i = template; + } + if(out != null) { - for(int j = 0; j < inv.getSizeInventory(); j++) { - - if(!inv.isItemValidForSlot(j, out)) + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; + + if(!(sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) continue; - - ItemStack target = inv.getStackInSlot(j); + + ItemStack target = inv.getStackInSlot(slot); if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { this.decrStackSize(i, 1); @@ -228,15 +283,17 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } - for(int j = 0; j < inv.getSizeInventory(); j++) { - - if(!inv.isItemValidForSlot(j, out)) + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; + + if(!inv.isItemValidForSlot(slot, out)) continue; - if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) { ItemStack copy = out.copy(); copy.stackSize = 1; - inv.setInventorySlotContents(j, copy); + inv.setInventorySlotContents(slot, copy); this.decrStackSize(i, 1); return; } @@ -246,6 +303,24 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + if(nbt.hasKey("progress")) this.progress = nbt.getIntArray("progress"); + if(nbt.hasKey("maxProgress")) this.maxProgress = nbt.getIntArray("maxProgress"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + nbt.setIntArray("progress", progress); + nbt.setIntArray("maxProgress", maxProgress); + } + @Override public long getPower() { return this.power; @@ -258,12 +333,13 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa public abstract int getRecipeCount(); public abstract int getTemplateIndex(int index); - + /** * @param index * @return A size 3 int array containing min input, max input and output indices in that order. */ public abstract int[] getSlotIndicesFromIndex(int index); - public abstract ChunkCoordinates[] getInputPositions(); - public abstract ChunkCoordinates[] getOutputPositions(); + public abstract DirPos[] getInputPositions(); + public abstract DirPos[] getOutputPositions(); + public abstract int getPowerSlot(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 8a7c4e55f..9919ffec1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -1,53 +1,55 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.UpgradeManager; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerAssemfac; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIAssemfac; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; -import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IFluidAcceptor, IFluidSource { - +public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IUpgradeInfoProvider, IFluidCopiable { + public AssemblerArm[] arms; public FluidTank water; public FluidTank steam; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineAssemfac() { super(14 * 8 + 4 + 1); //8 assembler groups with 14 slots, 4 upgrade slots, 1 battery slot - + arms = new AssemblerArm[6]; for(int i = 0; i < arms.length; i++) { arms[i] = new AssemblerArm(i % 3 == 1 ? 1 : 0); //the second of every group of three becomes a welder } - water = new FluidTank(Fluids.WATER, 64_000, 0); - steam = new FluidTank(Fluids.SPENTSTEAM, 64_000, 1); + water = new FluidTank(Fluids.WATER, 64_000); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); } @Override @@ -58,7 +60,7 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im @Override public void setInventorySlotContents(int i, ItemStack stack) { super.setInventorySlotContents(i, stack); - + if(stack != null && i >= 1 && i <= 4 && stack.getItem() instanceof ItemMachineUpgrade) { worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); } @@ -67,50 +69,37 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im @Override public void updateEntity() { super.updateEntity(); - + if(!worldObj.isRemote) { - + if(worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); } - + this.speed = 100; this.consumption = 100; - - UpgradeManager.eval(slots, 1, 4); - int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 6); - int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); - + upgradeManager.checkSlots(this, slots, 1, 4); + + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); + int overLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + this.speed -= speedLevel * 15; this.consumption += speedLevel * 300; this.speed += powerLevel * 5; this.consumption -= powerLevel * 30; this.speed /= (overLevel + 1); this.consumption *= (overLevel + 1); - + for(DirPos pos : getConPos()) { this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - - if(steam.getFill() > 0) { - this.fillFluidInit(steam.getTankType()); - } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setIntArray("progress", this.progress); - data.setIntArray("maxProgress", this.maxProgress); - data.setBoolean("isProgressing", isProgressing); - - water.writeToNBT(data, "w"); - steam.writeToNBT(data, "s"); - - this.networkPack(data, 150); - + + this.networkPackNT(150); + } else { - + for(AssemblerArm arm : arms) { arm.updateInterp(); if(isProgressing) { @@ -121,16 +110,31 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.progress = nbt.getIntArray("progress"); - this.maxProgress = nbt.getIntArray("maxProgress"); - this.isProgressing = nbt.getBoolean("isProgressing"); - - water.readFromNBT(nbt, "w"); - steam.readFromNBT(nbt, "s"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + for(int i = 0; i < getRecipeCount(); i++) { + buf.writeInt(progress[i]); + buf.writeInt(maxProgress[i]); + } + buf.writeBoolean(isProgressing); + water.serialize(buf); + steam.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + for(int i = 0; i < getRecipeCount(); i++) { + progress[i] = buf.readInt(); + maxProgress[i] = buf.readInt(); + } + isProgressing = buf.readBoolean(); + water.deserialize(buf); + steam.deserialize(buf); + } + private int getWaterRequired() { return 1000 / this.speed; } @@ -146,19 +150,19 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im this.water.setFill(this.water.getFill() - getWaterRequired()); this.steam.setFill(this.steam.getFill() + getWaterRequired()); } - + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + public DirPos[] getConPos() { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + return new DirPos[] { new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ * 5, rot), new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 5, rot), @@ -170,22 +174,22 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 2, dir) }; } - + public static class AssemblerArm { public double[] angles = new double[4]; public double[] prevAngles = new double[4]; public double[] targetAngles = new double[4]; public double[] speed = new double[4]; - + Random rand = new Random(); - + int actionMode; ArmActionState state; int actionDelay = 0; - + public AssemblerArm(int actionMode) { this.actionMode = actionMode; - + if(this.actionMode == 0) { speed[0] = 15; //Pivot speed[1] = 15; //Arm @@ -197,19 +201,19 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im speed[2] = 1; //Piston speed[3] = 0.125; //Striker } - + state = ArmActionState.ASSUME_POSITION; chooseNewArmPoistion(); actionDelay = rand.nextInt(20); } - + public void updateArm() { - + if(actionDelay > 0) { actionDelay--; return; } - + switch(state) { //Move. If done moving, set a delay and progress to EXTEND case ASSUME_POSITION: @@ -253,12 +257,12 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im state = ArmActionState.ASSUME_POSITION; } break; - + } } - + public void chooseNewArmPoistion() { - + if(this.actionMode == 0) { targetAngles[0] = -rand.nextInt(50); //Pivot targetAngles[1] = -targetAngles[0]; //Arm @@ -269,45 +273,45 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im targetAngles[2] = rand.nextInt(10) + 10; //Piston } } - + private void updateInterp() { for(int i = 0; i < angles.length; i++) { prevAngles[i] = angles[i]; } } - + /** * @return True when it has finished moving */ private boolean move() { boolean didMove = false; - + for(int i = 0; i < angles.length; i++) { if(angles[i] == targetAngles[i]) continue; - + didMove = true; - + double angle = angles[i]; double target = targetAngles[i]; double turn = speed[i]; double delta = Math.abs(angle - target); - + if(delta <= turn) { angles[i] = targetAngles[i]; continue; } - + if(angle < target) { angles[i] += turn; } else { angles[i] -= turn; } } - + return !didMove; } - + public static enum ArmActionState { ASSUME_POSITION, EXTEND_STRIKER, @@ -315,12 +319,12 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im RETRACT_STRIKER } } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 5, @@ -331,10 +335,10 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im zCoord + 5 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -361,47 +365,52 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im return new int[] { 5 + index * 14, 16 + index * 14, 18 + index * 14}; } - ChunkCoordinates[] inpos; - ChunkCoordinates[] outpos; - + DirPos[] inpos; + DirPos[] outpos; + @Override - public ChunkCoordinates[] getInputPositions() { - + public DirPos[] getInputPositions() { + if(inpos != null) return inpos; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - inpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5) + + inpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1, dir), + new DirPos(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5, rot) }; - + return inpos; } @Override - public ChunkCoordinates[] getOutputPositions() { - + public DirPos[] getOutputPositions() { + if(outpos != null) return outpos; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - outpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5) + + outpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5, rot) }; - + return outpos; } + @Override + public int getPowerSlot() { + return 0; + } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { steam }; @@ -412,59 +421,6 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im return new FluidTank[] { water }; } - @Override - public void setFillForSync(int fill, int index) { } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == water.getTankType()) water.setFill(fill); - if(type == steam.getTankType()) steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { } - - @Override - public int getFluidFill(FluidType type) { - if(type == water.getTankType()) return water.getFill(); - if(type == steam.getTankType()) return steam.getFill(); - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - for(DirPos pos : getConPos()) { - this.fillFluid(pos.getX(), pos.getY(), pos.getZ(), this.getTact(), type); - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - private List list = new ArrayList(); - - @Override - public List getFluidList(FluidType type) { - return type == steam.getTankType() ? this.list : new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == water.getTankType() ? water.getMaxFill() : 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[] { water, steam }; @@ -477,7 +433,42 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIAssemfac(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assemfac)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 15) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 6); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 12); + return upgrades; + } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index 6b964c3a0..a9bc5fc86 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -6,14 +6,15 @@ import java.util.List; import com.hbm.inventory.container.ContainerAutocrafter; import com.hbm.inventory.gui.GUIAutocrafter; import com.hbm.lib.Library; +import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IControlReceiverFilter; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.ItemStackUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; @@ -22,101 +23,30 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAutocrafter extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineAutocrafter extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IControlReceiverFilter { - public static final String MODE_EXACT = "exact"; - public static final String MODE_WILDCARD = "wildcard"; - public String[] modes = new String[9]; public List recipes = new ArrayList(); public int recipeIndex; public int recipeCount; + public ModulePatternMatcher matcher; + public TileEntityMachineAutocrafter() { super(21); + this.matcher = new ModulePatternMatcher(9); } - - public void initPattern(ItemStack stack, int i) { - - if(worldObj.isRemote) return; - - if(stack == null) { - modes[i] = null; - return; - } - - List names = ItemStackUtil.getOreDictNames(stack); - if(iterateAndCheck(names, i ,"ingot")) return; - if(iterateAndCheck(names, i ,"block")) return; - if(iterateAndCheck(names, i ,"dust")) return; - if(iterateAndCheck(names, i ,"nugget")) return; - if(iterateAndCheck(names, i ,"plate")) return; - - if(stack.getHasSubtypes()) { - modes[i] = MODE_EXACT; - } else { - modes[i] = MODE_WILDCARD; - } - } - - private boolean iterateAndCheck(List names, int i, String prefix) { - - for(String s : names) { - if(s.startsWith(prefix)) { - modes[i] = s; - return true; - } - } - - return false; - } - + @Override public void nextMode(int i) { - - if(worldObj.isRemote) return; - - ItemStack stack = slots[i]; - - if(stack == null) { - modes[i] = null; - return; - } - - if(modes[i] == null) { - modes[i] = MODE_EXACT; - } else if(MODE_EXACT.equals(modes[i])) { - modes[i] = MODE_WILDCARD; - } else if(MODE_WILDCARD.equals(modes[i])) { - - List names = ItemStackUtil.getOreDictNames(stack); - - if(names.isEmpty()) { - modes[i] = MODE_EXACT; - } else { - modes[i] = names.get(0); - } - } else { - - List names = ItemStackUtil.getOreDictNames(stack); - - if(names.size() < 2 || modes[i].equals(names.get(names.size() - 1))) { - modes[i] = MODE_EXACT; - } else { - - for(int j = 0; j < names.size() - 1; j++) { - - if(modes[i].equals(names.get(j))) { - modes[i] = names.get(j + 1); - return; - } - } - } - } + this.matcher.nextMode(worldObj, slots[i], i); } - + public void nextTemplate() { if(worldObj.isRemote) return; @@ -146,7 +76,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 20, power, maxPower); - this.updateStandardConnections(worldObj, this); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); if(!this.recipes.isEmpty() && this.power >= this.consumption) { IRecipe recipe = this.recipes.get(recipeIndex); @@ -192,31 +122,26 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen } } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - for(int i = 0; i < 9; i++) { - if(modes[i] != null) { - data.setString("mode" + i, modes[i]); - } - } - data.setInteger("count", this.recipeCount); - data.setInteger("rec", this.recipeIndex); - this.networkPack(data, 15); + this.networkPackNT(15); } } @Override - public void networkUnpack(NBTTagCompound data) { - this.power = data.getLong("power"); - - modes = new String[9]; - for(int i = 0; i < 9; i++) { - if(data.hasKey("mode" + i)) { - modes[i] = data.getString("mode" + i); - } - } - this.recipeCount = data.getInteger("count"); - this.recipeIndex = data.getInteger("rec"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + matcher.serialize(buf); + buf.writeInt(recipeCount); + buf.writeInt(recipeIndex); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + matcher.deserialize(buf); + recipeCount = buf.readInt(); + recipeIndex = buf.readInt(); } public void updateTemplateGrid() { @@ -260,15 +185,8 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen if(i > 9 && i < 19) { ItemStack filter = slots[i - 10]; - String mode = modes[i - 10]; - - if(filter == null || mode == null || mode.isEmpty()) return true; - - if(isValidForFilter(filter, mode, stack)) { - return false; - } - - return true; + if(filter == null || matcher.modes[i - 10] == null || matcher.modes[i - 10].isEmpty()) return true; + return !matcher.isValidForFilter(filter, i - 10, stack); } return false; @@ -277,9 +195,8 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { - //automatically prohibit any stacked item with a container - if(stack.stackSize > 1 && stack.getItem().hasContainerItem(stack)) - return false; + //automatically prohibit stacked container items + if(stack.stackSize > 1 && stack.getItem().hasContainerItem(stack)) return false; //only allow insertion for the nine recipe slots if(slot < 10 || slot > 18) @@ -289,15 +206,17 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen if(slots[slot - 10] == null) return false; + //do not permit total stacking beyond 4 items + if(slots[slot] != null && slots[slot].stackSize + stack.stackSize > 4) return false; + if(stack.stackSize > 4) return false; + //let's find all slots that this item could potentially go in List validSlots = new ArrayList(); for(int i = 0; i < 9; i++) { ItemStack filter = slots[i]; - String mode = modes[i]; - - if(filter == null || mode == null || mode.isEmpty()) continue; - - if(isValidForFilter(filter, mode, stack)) { + if(filter == null || matcher.modes[i] == null || matcher.modes[i].isEmpty()) continue; + + if(matcher.isValidForFilter(filter, i, stack)) { validSlots.add(i + 10); //if the current slot is valid and has no item in it, shortcut to true [*] @@ -335,17 +254,6 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen return true; } - private boolean isValidForFilter(ItemStack filter, String mode, ItemStack input) { - - switch(mode) { - case MODE_EXACT: return input.isItemEqual(filter) && ItemStack.areItemStackTagsEqual(input, filter); - case MODE_WILDCARD: return input.getItem() == filter.getItem() && ItemStack.areItemStackTagsEqual(input, filter); - default: - List keys = ItemStackUtil.getOreDictNames(input); - return keys.contains(mode); - } - } - public InventoryCrafting getTemplateGrid() { this.craftingInventory.loadIventory(slots, 0); return this.craftingInventory; @@ -355,7 +263,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen this.craftingInventory.loadIventory(slots, 10); return this.craftingInventory; } - + public static class InventoryCraftingAuto extends InventoryCrafting { public InventoryCraftingAuto(int width, int height) { @@ -369,6 +277,10 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen } } + public void clear() { + for(int i = 0; i < this.getSizeInventory(); i++) this.setInventorySlotContents(i, null); + } + public static class ContainerBlank extends Container { @Override public void onCraftMatrixChanged(IInventory inventory) { } @Override public boolean canInteractWith(EntityPlayer player) { return false; } @@ -398,13 +310,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.power = nbt.getLong("power"); - - for(int i = 0; i < 9; i++) { - if(nbt.hasKey("mode" + i)) { - modes[i] = nbt.getString("mode" + i); - } - } - + matcher.readFromNBT(nbt); this.recipes = getMatchingRecipes(this.getTemplateGrid()); this.recipeCount = recipes.size(); this.recipeIndex = nbt.getInteger("rec"); @@ -420,13 +326,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setLong("power", power); - - for(int i = 0; i < 9; i++) { - if(modes[i] != null) { - nbt.setString("mode" + i, modes[i]); - } - } - + matcher.writeToNBT(nbt); nbt.setInteger("rec", this.recipeIndex); } @@ -437,7 +337,30 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIAutocrafter(player.inventory, this); } + + @Override + public boolean hasPermission(EntityPlayer player) { + return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; + } + + @Override + public void setFilterContents(NBTTagCompound nbt) { + TileEntity tile = this; + IInventory inv = this; + int slot = nbt.getInteger("slot"); + if(slot > 8) return; + NBTTagCompound stack = nbt.getCompoundTag("stack"); + ItemStack item = ItemStack.loadItemStackFromNBT(stack); + inv.setInventorySlotContents(slot, item); + matcher.initPatternSmart(getWorldObj(), item, slot); + tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + updateTemplateGrid(); + } + @Override + public int[] getFilterSlots() { + return new int[]{0,9}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java index 2ca86eb13..b5bba66f0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -1,21 +1,25 @@ package com.hbm.tileentity.machine; +import java.util.HashSet; import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockTallPlant.EnumTallFlower; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.block.BlockLeaves; import net.minecraft.block.material.Material; @@ -27,10 +31,19 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; -public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardReceiver { - +public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardReceiver, IFluidCopiable { + + public static final HashSet acceptedFuels = new HashSet(); + + static { + acceptedFuels.add(Fluids.WOODOIL); + acceptedFuels.add(Fluids.ETHANOL); + acceptedFuels.add(Fluids.FISHOIL); + acceptedFuels.add(Fluids.HEAVYOIL); + } + public FluidTank tank; - + public boolean isOn; public float syncYaw; public float rotationYaw; @@ -38,24 +51,24 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN public float syncPitch; public float rotationPitch; public float prevRotationPitch; - + // 0: searching, 1: extending, 2: retracting private int state = 0; - + private int turnProgress; - + public float spin; public float lastSpin; - + public TileEntityMachineAutosaw() { this.tank = new FluidTank(Fluids.WOODOIL, 100); } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(worldObj.getTotalWorldTime() % 20 == 0) { if(tank.getFill() > 0) { tank.setFill(tank.getFill() - 1); @@ -63,7 +76,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN } else { this.isOn = false; } - + this.subscribeToAllAround(tank.getTankType(), this); } @@ -77,13 +90,13 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN lowerArm.rotateAroundY(-(float) Math.toRadians(rotationYaw)); Vec3 armTip = Vec3.createVectorHelper(0, 0, -2); armTip.rotateAroundY(-(float) Math.toRadians(rotationYaw)); - + double cX = pivot.xCoord + upperArm.xCoord + lowerArm.xCoord + armTip.xCoord; double cY = pivot.yCoord; double cZ = pivot.zCoord + upperArm.zCoord + lowerArm.zCoord + armTip.zCoord; - + List affected = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(cX - 1, cY - 0.25, cZ - 1, cX + 1, cY + 0.25, cZ + 1)); - + for(EntityLivingBase e : affected) { if(e.isEntityAlive() && e.attackEntityFrom(ModDamageSource.turbofan, 100)) { worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); @@ -97,34 +110,34 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY, e.posZ, 50)); } } - + if(state == 0) { - + this.rotationYaw += 1; - + if(this.rotationYaw >= 360) { this.rotationYaw -= 360; } - + Vec3 grace = Vec3.createVectorHelper(0, 0, -3.5); grace.rotateAroundY(-(float) Math.toRadians(rotationYaw)); grace.xCoord += pivot.xCoord; grace.yCoord += pivot.yCoord; grace.zCoord += pivot.zCoord; - + Vec3 detector = Vec3.createVectorHelper(0, 0, -9); detector.rotateAroundY(-(float) Math.toRadians(rotationYaw)); detector.xCoord += pivot.xCoord; detector.yCoord += pivot.yCoord; detector.zCoord += pivot.zCoord; MovingObjectPosition pos = worldObj.func_147447_a(grace, detector, false, false, false); - + if(pos != null && pos.typeOfHit == pos.typeOfHit.BLOCK) { - + Block b = worldObj.getBlock(pos.blockX, pos.blockY, pos.blockZ); - + if(b.getMaterial() == Material.wood || b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { - + int meta = worldObj.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ); if(!shouldIgnore(b, meta)) { state = 1; @@ -143,7 +156,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN this.tryInteract(hitX1, hitY, hitZ0); this.tryInteract(hitX0, hitY, hitZ1); this.tryInteract(hitX1, hitY, hitZ1); - + if(state == 1) { this.rotationPitch += 2; @@ -152,36 +165,31 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN state = 2; } } - + if(state == 2) { this.rotationPitch -= 2; - + if(this.rotationPitch <= 0) { this.rotationPitch = 0; state = 0; } } } - - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("isOn", isOn); - data.setFloat("yaw", this.rotationYaw); - data.setFloat("pitch", this.rotationPitch); - tank.writeToNBT(data, "t"); - INBTPacketReceiver.networkPack(this, data, 100); + + networkPackNT(100); } else { - + this.lastSpin = this.spin; - + if(isOn) { this.spin += 15F; - + Vec3 vec = Vec3.createVectorHelper(0.625, 0, 1.625); vec.rotateAroundY(-(float) Math.toRadians(rotationYaw)); - + worldObj.spawnParticle("smoke", xCoord + 0.5 + vec.xCoord, yCoord + 2.0625, zCoord + 0.5 + vec.zCoord, 0, 0, 0); } - + if(this.spin >= 360F) { this.spin -= 360F; this.lastSpin -= 360F; @@ -189,7 +197,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN this.prevRotationYaw = this.rotationYaw; this.prevRotationPitch = this.rotationPitch; - + if(this.turnProgress > 0) { double d0 = MathHelper.wrapAngleTo180_double(this.syncYaw - (double) this.rotationYaw); double d1 = MathHelper.wrapAngleTo180_double(this.syncPitch - (double) this.rotationPitch); @@ -202,30 +210,30 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN } } } - + /** Anything additionally that the detector nor the blades should pick up on, like non-mature willows */ public static boolean shouldIgnore(Block b, int meta) { if(b == ModBlocks.plant_tall) { return meta == EnumTallFlower.CD2.ordinal() + 8 || meta == EnumTallFlower.CD3.ordinal() + 8; } - + return false; } - + protected void tryInteract(int x, int y, int z) { - + Block b = worldObj.getBlock(x, y, z); int meta = worldObj.getBlockMetadata(x, y, z); - + if(shouldIgnore(b, meta)) { return; } - + if(b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { worldObj.func_147480_a(x, y, z, true); return; } - + if(b.getMaterial() == Material.wood) { fellTree(x, y, z); if(state == 1) { @@ -233,22 +241,22 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN } } } - + protected void fellTree(int x, int y, int z) { - + if(worldObj.getBlock(x, y - 1, z).getMaterial() == Material.wood) { y--; if(worldObj.getBlock(x, y - 2, z).getMaterial() == Material.wood) { y--; } } - + int meta = -1; - + for(int i = y; i < y + 10; i++) { - + int[][] dir = new int[][] {{0, 0}, {1, 0}, {-1, 0}, {0, 1}, {0, -1}}; - + for(int[] d : dir) { Block b = worldObj.getBlock(x + d[0], i, z + d[1]); @@ -260,7 +268,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN } } } - + if(meta >= 0) { if(Blocks.sapling.canPlaceBlockAt(worldObj, x, y, z)) { worldObj.setBlock(x, y, z, Blocks.sapling, meta, 3); @@ -269,14 +277,22 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.isOn = nbt.getBoolean("isOn"); - this.syncYaw = nbt.getFloat("yaw"); - this.syncPitch = nbt.getFloat("pitch"); - this.turnProgress = 3; //use 3-ply for extra smoothness - this.tank.readFromNBT(nbt, "t"); + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.isOn); + buf.writeFloat(this.rotationYaw); + buf.writeFloat(this.rotationPitch); + this.tank.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + this.isOn = buf.readBoolean(); + this.syncYaw = buf.readFloat(); + this.syncPitch = buf.readFloat(); + this.turnProgress = 3; //use 3-ply for extra smoothness + this.tank.deserialize(buf); + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -286,7 +302,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN this.state = nbt.getInteger("state"); this.tank.readFromNBT(nbt, "t"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -306,12 +322,12 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 12, @@ -322,13 +338,17 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN zCoord + 13 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } + @Override + public FluidTank getTankToPaste() { + return tank; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java deleted file mode 100644 index 7882e3e8c..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ /dev/null @@ -1,427 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.machine.MachineBoiler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.container.ContainerMachineBoiler; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineBoiler; -import com.hbm.inventory.recipes.MachineRecipes; -import com.hbm.lib.Library; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.fluid.IFluidStandardTransceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.world.World; - -public class TileEntityMachineBoiler extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider { - - private ItemStack slots[]; - - public int burnTime; - public int heat = 2000; - public static final int maxHeat = 50000; - public int age = 0; - public List list = new ArrayList(); - public FluidTank[] tanks; - - private String customName; - - public TileEntityMachineBoiler() { - slots = new ItemStack[7]; - tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.OIL, 8000, 0); - tanks[1] = new FluidTank(Fluids.HOTOIL, 8000, 1); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineBoiler"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return i == 4 && TileEntityFurnace.getItemBurnTime(stack) > 0; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - heat = nbt.getInteger("heat"); - burnTime = nbt.getInteger("burnTime"); - tanks[0].readFromNBT(nbt, "water"); - tanks[1].readFromNBT(nbt, "steam"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("heat", heat); - nbt.setInteger("burnTime", burnTime); - tanks[0].writeToNBT(nbt, "water"); - tanks[1].writeToNBT(nbt, "steam"); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int side) { - return new int[] { 4 }; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return i == 4 && !this.isItemValidForSlot(i, itemStack); - } - - public int getHeatScaled(int i) { - return (heat * i) / maxHeat; - } - - @Override - public void updateEntity() { - - boolean mark = false; - - if(!worldObj.isRemote) { - - this.subscribeToAllAround(tanks[0].getTankType(), this); - this.sendFluidToAll(tanks[1], this); - - age++; - if(age >= 20) - { - age = 0; - } - - if(age == 9 || age == 19) - fillFluidInit(tanks[1].getTankType()); - - tanks[0].setType(0, 1, slots); - tanks[0].loadTank(2, 3, slots); - - Object[] outs = MachineRecipes.getBoilerOutput(tanks[0].getTankType()); - - if(outs == null) { - tanks[1].setTankType(Fluids.NONE); - } else { - tanks[1].setTankType((FluidType) outs[0]); - } - - tanks[1].unloadTank(5, 6, slots); - - for(int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - boolean flag1 = false; - - if(heat > 2000) { - heat -= 15; - } - - if(burnTime > 0) { - burnTime--; - heat += 50; - flag1 = true; - } - - if(burnTime == 0 && flag1) { - mark = true; - } - - if(burnTime <= 0 && worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_boiler_on) - MachineBoiler.updateBlockState(false, worldObj, xCoord, yCoord, zCoord); - - if(heat > maxHeat) - heat = maxHeat; - - if(burnTime == 0 && TileEntityFurnace.getItemBurnTime(slots[4]) > 0) { - burnTime = (int) (TileEntityFurnace.getItemBurnTime(slots[4]) * 0.25); - slots[4].stackSize--; - - if(slots[4].stackSize <= 0) { - - if(slots[4].getItem().getContainerItem() != null) - slots[4] = new ItemStack(slots[4].getItem().getContainerItem()); - else - slots[4] = null; - } - - if(!flag1) { - mark = true; - } - } - - if(burnTime > 0 && worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_boiler_off) - MachineBoiler.updateBlockState(true, worldObj, xCoord, yCoord, zCoord); - - if(outs != null) { - - for(int i = 0; i < (heat / ((Integer)outs[3]).intValue()); i++) { - if(tanks[0].getFill() >= ((Integer)outs[2]).intValue() && tanks[1].getFill() + ((Integer)outs[1]).intValue() <= tanks[1].getMaxFill()) { - tanks[0].setFill(tanks[0].getFill() - ((Integer)outs[2]).intValue()); - tanks[1].setFill(tanks[1].getFill() + ((Integer)outs[1]).intValue()); - - if(i == 0) - heat -= 25; - else - heat -= 40; - } - } - } - - if(heat < 2000) { - heat = 2000; - } - - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, heat, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, burnTime, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - - if(mark) { - this.markDirty(); - } - } - - public boolean isItemValid() { - - if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0) - { - return true; - } - - return false; - } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age >= 0 && age < 10) - { - return true; - } - - return false; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - - @Override - public FluidTank[] getSendingTanks() { - return new FluidTank[] {tanks[1]}; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tanks[0]}; - } - - @Override - public FluidTank[] getAllTanks() { - return tanks; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineBoiler(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineBoiler(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java deleted file mode 100644 index e29757724..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ /dev/null @@ -1,449 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.machine.MachineBoiler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.container.ContainerMachineBoilerElectric; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineBoilerElectric; -import com.hbm.inventory.recipes.MachineRecipes; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; -import api.hbm.fluid.IFluidStandardTransceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyUser, IFluidStandardTransceiver, IGUIProvider { - - private ItemStack slots[]; - - public long power; - public int heat = 2000; - public static final long maxPower = 10000; - public static final int maxHeat = 80000; - public int age = 0; - public List list = new ArrayList(); - public FluidTank[] tanks; - - private String customName; - - public TileEntityMachineBoilerElectric() { - slots = new ItemStack[7]; - tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.OIL, 16000, 0); - tanks[1] = new FluidTank(Fluids.HOTOIL, 16000, 1); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineElectricBoiler"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - - if(i == 4) - if(stack != null && stack.getItem() instanceof IBatteryItem) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - heat = nbt.getInteger("heat"); - power = nbt.getLong("power"); - tanks[0].readFromNBT(nbt, "water"); - tanks[1].readFromNBT(nbt, "steam"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("heat", heat); - nbt.setLong("power", power); - tanks[0].writeToNBT(nbt, "water"); - tanks[1].writeToNBT(nbt, "steam"); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int side) { - return new int[0]; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - public int getHeatScaled(int i) { - return (heat * i) / maxHeat; - } - - public long getPowerScaled(int i) { - return (power * i) / maxPower; - } - - @Override - public void updateEntity() { - - boolean mark = false; - - if(!worldObj.isRemote) - { - this.updateConnections(); - this.subscribeToAllAround(tanks[0].getTankType(), this); - this.sendFluidToAll(tanks[1], this); - - age++; - if(age >= 20) - { - age = 0; - } - - if(age == 9 || age == 19) - fillFluidInit(tanks[1].getTankType()); - - power = Library.chargeTEFromItems(slots, 4, power, maxPower); - - tanks[0].setType(0, 1, slots); - tanks[0].loadTank(2, 3, slots); - - Object[] outs = MachineRecipes.getBoilerOutput(tanks[0].getTankType()); - - if(outs == null) { - tanks[1].setTankType(Fluids.NONE); - } else { - tanks[1].setTankType((FluidType) outs[0]); - } - - tanks[1].unloadTank(5, 6, slots); - - for(int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if(heat > 2000) { - heat -= 30; - } - - if(power >= 150) { - power -= 150; - heat += Math.min(((double)power / (double)maxPower * 300), 150); - } else { - heat -= 100; - } - - if(power <= 0 && worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_boiler_electric_on) { - power = 0; - MachineBoiler.updateBlockState(false, worldObj, xCoord, yCoord, zCoord); - mark = true; - } - - if(heat > maxHeat) - heat = maxHeat; - - if(power > 0 && worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_boiler_electric_off) { - MachineBoiler.updateBlockState(true, worldObj, xCoord, yCoord, zCoord); - mark = true; - } - - if(outs != null) { - - for(int i = 0; i < (heat / ((Integer)outs[3]).intValue()); i++) { - if(tanks[0].getFill() >= ((Integer)outs[2]).intValue() && tanks[1].getFill() + ((Integer)outs[1]).intValue() <= tanks[1].getMaxFill()) { - tanks[0].setFill(tanks[0].getFill() - ((Integer)outs[2]).intValue()); - tanks[1].setFill(tanks[1].getFill() + ((Integer)outs[1]).intValue()); - - if(i == 0) - heat -= 35; - else - heat -= 50; - } - } - } - - if(heat < 2000) { - heat = 2000; - } - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, heat, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - - if(mark) { - this.markDirty(); - } - } - - private void updateConnections() { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - } - - public boolean isItemValid() { - - if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0) - { - return true; - } - - return false; - } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age >= 0 && age < 10) - { - return true; - } - - return false; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getPower() { - return power; - - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public FluidTank[] getSendingTanks() { - return new FluidTank[] {tanks[1]}; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tanks[0]}; - } - - @Override - public FluidTank[] getAllTanks() { - return tanks; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineBoilerElectric(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineBoilerElectric(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java deleted file mode 100644 index 9232bc0da..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCMBFactory.java +++ /dev/null @@ -1,385 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerMachineCMBFactory; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineCMBFactory; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; -import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.world.World; - -public class TileEntityMachineCMBFactory extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { - - private ItemStack slots[]; - - public long power = 0; - public int process = 0; - public int soundCycle = 0; - public static final long maxPower = 100000000; - public static final int processSpeed = 200; - public FluidTank tank; - - private static final int[] slots_top = new int[] {1, 3}; - private static final int[] slots_bottom = new int[] {0, 2, 4}; - private static final int[] slots_side = new int[] {0, 2}; - - private String customName; - - public TileEntityMachineCMBFactory() { - slots = new ItemStack[6]; - tank = new FluidTank(Fluids.WATZ, 8000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineCMB"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - switch(i) - { - case 0: - if(stack.getItem() instanceof IBatteryItem) - return true; - break; - case 1: - if(stack.getItem() == ModItems.ingot_magnetized_tungsten || stack.getItem() == ModItems.powder_magnetized_tungsten) - return true; - break; - case 2: - if(stack.getItem() == ModItems.bucket_mud) - return true; - break; - case 3: - if(stack.getItem() == ModItems.ingot_advanced_alloy || stack.getItem() == ModItems.powder_advanced_alloy) - return true; - break; - } - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tank.readFromNBT(nbt, "watz"); - process = nbt.getShort("process"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - tank.writeToNBT(nbt, "watz"); - nbt.setShort("process", (short) process); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 4) - return true; - if(i == 0) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) - return true; - if(i == 2) - if(itemStack.getItem() == Items.bucket) - return true; - - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (process * i) / processSpeed; - } - - public boolean canProcess() { - - boolean b = false; - - if(tank.getFill() >= 1 && power >= 100000 && slots[1] != null && slots[3] != null && (slots[4] == null || slots[4].stackSize <= 60)) - { - boolean flag0 = slots[1].getItem() == ModItems.ingot_magnetized_tungsten || slots[1].getItem() == ModItems.powder_magnetized_tungsten; - boolean flag1 = slots[3].getItem() == ModItems.ingot_advanced_alloy || slots[3].getItem() == ModItems.powder_advanced_alloy; - - b = flag0 && flag1; - } - - return b; - } - - public boolean isProcessing() { - return process > 0; - } - - public void process() { - tank.setFill(tank.getFill() - 1); - power -= 100000; - - process++; - - if(process >= processSpeed) { - - slots[1].stackSize--; - if (slots[1].stackSize == 0) { - slots[1] = null; - } - - slots[3].stackSize--; - if (slots[3].stackSize == 0) { - slots[3] = null; - } - - if(slots[4] == null) - { - slots[4] = new ItemStack(ModItems.ingot_combine_steel, 4); - } else { - - slots[4].stackSize += 4; - } - - process = 0; - } - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - this.updateConnections(); - - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - tank.loadTank(2, 5, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if (canProcess()) { - process(); - if(soundCycle == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "minecart.base", 1.0F, 1.5F); - soundCycle++; - - if(soundCycle >= 25) - soundCycle = 0; - } else { - process = 0; - } - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - - private void updateConnections() { - this.updateStandardConnections(worldObj, this); - this.subscribeToAllAround(tank.getTankType(), this); - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] { tank }; - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] { tank }; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineCMBFactory(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineCMBFactory(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index 8add21027..aeb067770 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -1,6 +1,13 @@ package com.hbm.tileentity.machine; -import com.hbm.inventory.UpgradeManager; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerCentrifuge; import com.hbm.inventory.gui.GUIMachineCentrifuge; import com.hbm.inventory.recipes.CentrifugeRecipes; @@ -8,35 +15,65 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.I18nUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IConfigurableMachine{ -public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { - public int progress; public long power; public boolean isProgressing; - public static final int maxPower = 100000; - public static final int processingSpeed = 200; private int audioDuration = 0; - + private AudioWrapper audio; + //configurable values + public static int maxPower = 100000; + public static int processingSpeed = 200; + public static int baseConsumption = 200; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + + public String getConfigName() { + return "centrifuge"; + } + /* reads the JSON object and sets the machine's parameters, use defaults and ignore if a value is not yet present */ + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "I:powerCap", maxPower); + processingSpeed = IConfigurableMachine.grab(obj, "I:timeToProcess", processingSpeed); + baseConsumption = IConfigurableMachine.grab(obj, "I:consumption", baseConsumption); + } + /* writes the entire config for this machine using the relevant values */ + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:powerCap").value(maxPower); + writer.name("I:timeToProcess").value(processingSpeed); + writer.name("I:consumption").value(baseConsumption); + } + + /* * So why do we do this now? You have a funny mekanism/thermal/whatever pipe and you want to output stuff from a side - * that isn't the bottom, what do? Answer: make all slots accessible from all sides and regulate in/output in the + * that isn't the bottom, what do? Answer: make all slots accessible from all sides and regulate in/output in the * dedicated methods. Duh. */ private static final int[] slot_io = new int[] { 0, 2, 3, 4, 5 }; @@ -44,11 +81,11 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement public TileEntityMachineCentrifuge() { super(8); } - + public String getName() { return "container.centrifuge"; } - + @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { return i == 0; @@ -92,7 +129,7 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement return false; } ItemStack[] out = CentrifugeRecipes.getOutput(slots[0]); - + if(out == null) { return false; } @@ -141,27 +178,27 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement public boolean isProcessing() { return this.progress > 0; } - + @Override public void updateEntity() { if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); power = Library.chargeTEFromItems(slots, 1, power, maxPower); - - int consumption = 200; + + int consumption = baseConsumption; int speed = 1; - - UpgradeManager.eval(slots, 6, 7); - speed += Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - consumption += Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) * 200; - - speed *= (1 + Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 5); - consumption += Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 10000; - - consumption /= (1 + Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3)); + + upgradeManager.checkSlots(this, slots, 6, 7); + speed += upgradeManager.getLevel(UpgradeType.SPEED); + consumption += upgradeManager.getLevel(UpgradeType.SPEED) * baseConsumption; + + speed *= (1 + upgradeManager.getLevel(UpgradeType.OVERDRIVE) * 5); + consumption += upgradeManager.getLevel(UpgradeType.OVERDRIVE) * baseConsumption * 50; + + consumption /= (1 + upgradeManager.getLevel(UpgradeType.POWER)); if(hasPower() && isProcessing()) { this.power -= consumption; @@ -187,35 +224,32 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement } else { progress = 0; } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("progress", progress); - data.setBoolean("isProgressing", isProgressing); - this.networkPack(data, 50); + + this.networkPackNT(50); } else { - + if(isProgressing) { audioDuration += 2; } else { audioDuration -= 3; } - + audioDuration = MathHelper.clamp_int(audioDuration, 0, 60); - + if(audioDuration > 10) { - + if(audio == null) { audio = createAudioLoop(); audio.startSound(); } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.updatePitch((audioDuration - 10) / 100F + 0.5F); - + } else { - + if(audio != null) { audio.stopSound(); audio = null; @@ -225,10 +259,19 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement } @Override - public void networkUnpack(NBTTagCompound data) { - this.power = data.getLong("power"); - this.progress = data.getInteger("progress"); - this.isProgressing = data.getBoolean("isProgressing"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(progress); + buf.writeBoolean(isProgressing); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + progress = buf.readInt(); + isProgressing = buf.readBoolean(); } @Override @@ -255,12 +298,12 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement audio = null; } } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord, @@ -271,7 +314,7 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement zCoord + 1 ); } - + return bb; } @@ -304,7 +347,42 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineCentrifuge(player.inventory, this); } -} \ No newline at end of file + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_centrifuge)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); + return upgrades; + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setInteger(CompatEnergyControl.B_ACTIVE, this.progress); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 539ea2f42..e845b225b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -1,11 +1,13 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; -import com.hbm.inventory.UpgradeManager; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerChemfac; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -13,22 +15,26 @@ import com.hbm.inventory.gui.GUIChemfac; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { - +public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase implements IUpgradeInfoProvider, IFluidCopiable { + float rotSpeed; public float rot; public float prevRot; @@ -36,17 +42,19 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { public FluidTank water; public FluidTank steam; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineChemfac() { super(77); - water = new FluidTank(Fluids.WATER, 64_000, tanks.length); - steam = new FluidTank(Fluids.SPENTSTEAM, 64_000, tanks.length + 1); + water = new FluidTank(Fluids.WATER, 64_000); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); } @Override public void setInventorySlotContents(int i, ItemStack stack) { super.setInventorySlotContents(i, stack); - + if(stack != null && i >= 1 && i <= 4 && stack.getItem() instanceof ItemMachineUpgrade) { worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); } @@ -55,14 +63,14 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { @Override public void updateEntity() { super.updateEntity(); - + if(!worldObj.isRemote) { - + if(worldObj.getTotalWorldTime() % 60 == 0) { - + for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - + for(FluidTank tank : inTanks()) { if(tank.getTankType() != Fluids.NONE) { this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -70,82 +78,70 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { } } } - + for(DirPos pos : getConPos()) for(FluidTank tank : outTanks()) { if(tank.getTankType() != Fluids.NONE && tank.getFill() > 0) { this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + this.speed = 100; this.consumption = 100; - - UpgradeManager.eval(slots, 1, 4); - int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 6); - int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); - + upgradeManager.checkSlots(this, slots, 1, 4); + + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); + int overLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + this.speed -= speedLevel * 15; this.consumption += speedLevel * 300; this.speed += powerLevel * 5; - this.consumption -= powerLevel * 30; + this.consumption -= powerLevel * 20; this.speed /= (overLevel + 1); this.consumption *= (overLevel + 1); - + if(this.speed <= 0) { this.speed = 1; } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setIntArray("progress", this.progress); - data.setIntArray("maxProgress", this.maxProgress); - data.setBoolean("isProgressing", isProgressing); - - for(int i = 0; i < tanks.length; i++) { - tanks[i].writeToNBT(data, "t" + i); - } - water.writeToNBT(data, "w"); - steam.writeToNBT(data, "s"); - - this.networkPack(data, 150); + + this.networkPackNT(150); } else { - + float maxSpeed = 30F; - + if(isProgressing) { - + rotSpeed += 0.1; - + if(rotSpeed > maxSpeed) rotSpeed = maxSpeed; - + if(rotSpeed == maxSpeed && this.worldObj.getTotalWorldTime() % 5 == 0) { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); Random rand = worldObj.rand; - + double x = xCoord + 0.5 - rot.offsetX * 0.5; double y = yCoord + 3; double z = zCoord + 0.5 - rot.offsetZ * 0.5; - + worldObj.spawnParticle("cloud", x + dir.offsetX * 1.5 + rand.nextGaussian() * 0.15, y, z + dir.offsetZ * 1.5 + rand.nextGaussian() * 0.15, 0.0, 0.15, 0.0); worldObj.spawnParticle("cloud", x - dir.offsetX * 0.5 + rand.nextGaussian() * 0.15, y, z - dir.offsetZ * 0.5 + rand.nextGaussian() * 0.15, 0.0, 0.15, 0.0); } } else { - + rotSpeed -= 0.1; - + if(rotSpeed < 0) rotSpeed = 0; } - + prevRot = rot; - + rot += rotSpeed; - + if(rot >= 360) { rot -= 360; prevRot -= 360; @@ -154,19 +150,39 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.progress = nbt.getIntArray("progress"); - this.maxProgress = nbt.getIntArray("maxProgress"); - this.isProgressing = nbt.getBoolean("isProgressing"); - - for(int i = 0; i < tanks.length; i++) { - tanks[i].readFromNBT(nbt, "t" + i); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + for(int i = 0; i < getRecipeCount(); i++) { + buf.writeInt(progress[i]); + buf.writeInt(maxProgress[i]); } - water.readFromNBT(nbt, "w"); - steam.readFromNBT(nbt, "s"); + + buf.writeBoolean(isProgressing); + + for(int i = 0; i < tanks.length; i++) tanks[i].serialize(buf); + + water.serialize(buf); + steam.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + for(int i = 0; i < getRecipeCount(); i++) { + progress[i] = buf.readInt(); + maxProgress[i] = buf.readInt(); + } + + isProgressing = buf.readBoolean(); + + for(int i = 0; i < tanks.length; i++) tanks[i].deserialize(buf); + + water.deserialize(buf); + steam.deserialize(buf); + } + private int getWaterRequired() { return 1000 / this.speed; } @@ -188,19 +204,19 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { public long getMaxPower() { return 10_000_000; } - + protected List conPos; - + protected List getConPos() { - + if(conPos != null && !conPos.isEmpty()) return conPos; - + conPos = new ArrayList(); ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - + for(int i = 0; i < 6; i++) { conPos.add(new DirPos(xCoord + dir.offsetX * (3 - i) + rot.offsetX * 3, yCoord + 4, zCoord + dir.offsetZ * (3 - i) + rot.offsetZ * 3, Library.POS_Y)); conPos.add(new DirPos(xCoord + dir.offsetX * (3 - i) - rot.offsetX * 2, yCoord + 4, zCoord + dir.offsetZ * (3 - i) - rot.offsetZ * 2, Library.POS_Y)); @@ -210,7 +226,7 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { conPos.add(new DirPos(xCoord + dir.offsetX * (3 - i) - rot.offsetX * 4, yCoord + 1 + j, zCoord + dir.offsetZ * (3 - i) - rot.offsetZ * 4, rot.getOpposite())); } } - + return conPos; } @@ -234,54 +250,54 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { return new int[] {5 + index * 9, 8 + index * 9, 9 + index * 9, 12 + index * 9}; } - ChunkCoordinates[] inpos; - ChunkCoordinates[] outpos; - + DirPos[] inpos; + DirPos[] outpos; + @Override - public ChunkCoordinates[] getInputPositions() { - + public DirPos[] getInputPositions() { + if(inpos != null) return inpos; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - inpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5) + + inpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1, dir), + new DirPos(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5, rot) }; - + return inpos; } @Override - public ChunkCoordinates[] getOutputPositions() { - + public DirPos[] getOutputPositions() { + if(outpos != null) return outpos; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - outpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5) + + outpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5, rot) }; - + return outpos; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); water.readFromNBT(nbt, "w"); steam.readFromNBT(nbt, "s"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -296,27 +312,27 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { @Override protected List inTanks() { - + List inTanks = super.inTanks(); inTanks.add(water); - + return inTanks; } @Override protected List outTanks() { - + List outTanks = super.outTanks(); outTanks.add(steam); - + return outTanks; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 5, @@ -327,10 +343,10 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { zCoord + 5 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -344,7 +360,42 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIChemfac(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemfac)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 15) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 6); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 12); + return upgrades; + } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 8055c8d11..d352430a5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -1,15 +1,13 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; -import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerMachineChemplant; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineChemplant; @@ -21,15 +19,18 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; @@ -38,25 +39,28 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; public int progress; public int maxProgress = 100; public boolean isProgressing; - + private AudioWrapper audio; - + public FluidTank[] tanks; - + //upgraded stats int consumption = 100; int speed = 100; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineChemplant() { super(21); /* @@ -70,10 +74,10 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements * 17-18 FIn In * 19-20 FIn Out */ - + tanks = new FluidTank[4]; for(int i = 0; i < 4; i++) { - tanks[i] = new FluidTank(Fluids.NONE, 24_000, i); + tanks[i] = new FluidTank(Fluids.NONE, 24_000); } } @@ -82,78 +86,80 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements return "container.chemplant"; } + // last successful load + int lsl0 = 0; + int lsl1 = 0; + int lsu0 = 0; + int lsu1 = 0; + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + this.speed = 100; this.consumption = 100; - + this.isProgressing = false; this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); - if(!tanks[0].loadTank(17, 19, slots) && (slots[17] == null || slots[17].getItem() != ModItems.fluid_barrel_infinite)) tanks[0].unloadTank(17, 19, slots); - if(!tanks[1].loadTank(18, 20, slots) && (slots[18] == null || slots[18].getItem() != ModItems.fluid_barrel_infinite)) tanks[1].unloadTank(18, 20, slots); - + int fluidDelay = 40; + + if(lsu0 >= fluidDelay && tanks[0].loadTank(17, 19, slots)) lsl0 = 0; + if(lsu1 >= fluidDelay && tanks[1].loadTank(18, 20, slots)) lsl1 = 0; + + if(lsl0 >= fluidDelay && slots[17] != null && !FluidTank.noDualUnload.contains(slots[17].getItem())) if(tanks[0].unloadTank(17, 19, slots)) lsu0 = 0; + if(lsl1 >= fluidDelay && slots[18] != null && !FluidTank.noDualUnload.contains(slots[18].getItem())) if(tanks[1].unloadTank(18, 20, slots)) lsu1 = 0; + tanks[2].unloadTank(9, 11, slots); tanks[3].unloadTank(10, 12, slots); - + + if(lsl0 < fluidDelay) lsl0++; + if(lsl1 < fluidDelay) lsl1++; + if(lsu0 < fluidDelay) lsu0++; + if(lsu1 < fluidDelay) lsu1++; + loadItems(); unloadItems(); - - if(worldObj.getTotalWorldTime() % 10 == 0) { - this.fillFluidInit(tanks[2].getTankType()); - this.fillFluidInit(tanks[3].getTankType()); - } + if(worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); } - + for(DirPos pos : getConPos()) { if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(tanks[3].getFill() > 0) this.sendFluid(tanks[3], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - - UpgradeManager.eval(slots, 1, 3); - int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); - + upgradeManager.checkSlots(this, slots, 1, 3); + + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); + int overLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + this.speed -= speedLevel * 25; this.consumption += speedLevel * 300; this.speed += powerLevel * 5; - this.consumption -= powerLevel * 30; + this.consumption -= powerLevel * 20; this.speed /= (overLevel + 1); this.consumption *= (overLevel + 1); - + if(this.speed <= 0) { this.speed = 1; } - + if(!canProcess()) { this.progress = 0; } else { isProgressing = true; process(); } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setInteger("progress", this.progress); - data.setInteger("maxProgress", this.maxProgress); - data.setBoolean("isProgressing", isProgressing); - - for(int i = 0; i < tanks.length; i++) { - tanks[i].writeToNBT(data, "t" + i); - } - - this.networkPack(data, 150); + + this.networkPackNT(150); } else { - + if(isProgressing && this.worldObj.getTotalWorldTime() % 3 == 0) { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); double x = xCoord + 0.5 + dir.offsetX * 1.125 + rot.offsetX * 0.125; @@ -161,11 +167,11 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements double z = zCoord + 0.5 + dir.offsetZ * 1.125 + rot.offsetZ * 0.125; worldObj.spawnParticle("cloud", x, y, z, 0.0, 0.1, 0.0); } - - float volume = 1;//this.getVolume(2); - + + float volume = this.getVolume(1F); + if(isProgressing && volume > 0) { - + if(audio == null) { audio = this.createAudioLoop(); audio.updateVolume(volume); @@ -174,9 +180,9 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements audio = rebootAudio(audio); audio.updateVolume(volume); } - + } else { - + if(audio != null) { audio.stopSound(); audio = null; @@ -184,22 +190,34 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } } } - + @Override - public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(progress); + buf.writeInt(maxProgress); + buf.writeBoolean(isProgressing); + + for(int i = 0; i < tanks.length; i++) + tanks[i].serialize(buf); } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.progress = nbt.getInteger("progress"); - this.maxProgress = nbt.getInteger("maxProgress"); - this.isProgressing = nbt.getBoolean("isProgressing"); + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + progress = buf.readInt(); + maxProgress = buf.readInt(); + isProgressing = buf.readBoolean(); - for(int i = 0; i < tanks.length; i++) { - tanks[i].readFromNBT(nbt, "t" + i); - } + for(int i = 0; i < tanks.length; i++) + tanks[i].deserialize(buf); + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } @Override @@ -221,21 +239,21 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements audio = null; } } - + private void updateConnections() { - + for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + public DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - + return new DirPos[] { new DirPos(xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, rot), new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), @@ -243,67 +261,69 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements new DirPos(xCoord - rot.offsetX * 2 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 2 + dir.offsetZ, rot.getOpposite()) }; } - + private boolean canProcess() { - + if(slots[4] == null || slots[4].getItem() != ModItems.chemistry_template) return false; - + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[4].getItemDamage()); - + if(recipe == null) return false; - + setupTanks(recipe); - + if(this.power < this.consumption) return false; if(!hasRequiredFluids(recipe)) return false; if(!hasSpaceForFluids(recipe)) return false; if(!hasRequiredItems(recipe)) return false; if(!hasSpaceForItems(recipe)) return false; - + return true; } - + private void setupTanks(ChemRecipe recipe) { if(recipe.inputFluids[0] != null) tanks[0].withPressure(recipe.inputFluids[0].pressure).setTankType(recipe.inputFluids[0].type); else tanks[0].setTankType(Fluids.NONE); if(recipe.inputFluids[1] != null) tanks[1].withPressure(recipe.inputFluids[1].pressure).setTankType(recipe.inputFluids[1].type); else tanks[1].setTankType(Fluids.NONE); if(recipe.outputFluids[0] != null) tanks[2].withPressure(recipe.outputFluids[0].pressure).setTankType(recipe.outputFluids[0].type); else tanks[2].setTankType(Fluids.NONE); if(recipe.outputFluids[1] != null) tanks[3].withPressure(recipe.outputFluids[1].pressure).setTankType(recipe.outputFluids[1].type); else tanks[3].setTankType(Fluids.NONE); } - + private boolean hasRequiredFluids(ChemRecipe recipe) { if(recipe.inputFluids[0] != null && tanks[0].getFill() < recipe.inputFluids[0].fill) return false; if(recipe.inputFluids[1] != null && tanks[1].getFill() < recipe.inputFluids[1].fill) return false; return true; } - + private boolean hasSpaceForFluids(ChemRecipe recipe) { if(recipe.outputFluids[0] != null && tanks[2].getFill() + recipe.outputFluids[0].fill > tanks[2].getMaxFill()) return false; if(recipe.outputFluids[1] != null && tanks[3].getFill() + recipe.outputFluids[1].fill > tanks[3].getMaxFill()) return false; return true; } - + private boolean hasRequiredItems(ChemRecipe recipe) { return InventoryUtil.doesArrayHaveIngredients(slots, 13, 16, recipe.inputs); } - + private boolean hasSpaceForItems(ChemRecipe recipe) { return InventoryUtil.doesArrayHaveSpace(slots, 5, 8, recipe.outputs); } - + private void process() { - + this.power -= this.consumption; this.progress++; - + if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_machined) slots[0] = new ItemStack(ModItems.meteorite_sword_treated); //fisfndmoivndlmgindgifgjfdnblfm - + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[4].getItemDamage()); - + this.maxProgress = recipe.getDuration() * this.speed / 100; - + + if(maxProgress <= 0) maxProgress = 1; + if(this.progress >= this.maxProgress) { consumeFluids(recipe); produceFluids(recipe); @@ -313,135 +333,158 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements this.markDirty(); } } - + private void consumeFluids(ChemRecipe recipe) { if(recipe.inputFluids[0] != null) tanks[0].setFill(tanks[0].getFill() - recipe.inputFluids[0].fill); if(recipe.inputFluids[1] != null) tanks[1].setFill(tanks[1].getFill() - recipe.inputFluids[1].fill); } - + private void produceFluids(ChemRecipe recipe) { if(recipe.outputFluids[0] != null) tanks[2].setFill(tanks[2].getFill() + recipe.outputFluids[0].fill); if(recipe.outputFluids[1] != null) tanks[3].setFill(tanks[3].getFill() + recipe.outputFluids[1].fill); } - + private void consumeItems(ChemRecipe recipe) { - + for(AStack in : recipe.inputs) { if(in != null) InventoryUtil.tryConsumeAStack(slots, 13, 16, in); } } - + private void produceItems(ChemRecipe recipe) { - + for(ItemStack out : recipe.outputs) { if(out != null) InventoryUtil.tryAddItemToInventory(slots, 5, 8, out.copy()); } } - + //TODO: move this into a util class private void loadItems() { - + if(slots[4] == null || slots[4].getItem() != ModItems.chemistry_template) return; - + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[4].getItemDamage()); - + if(recipe != null) { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); int x = xCoord - dir.offsetX * 2; int z = zCoord - dir.offsetZ * 2; - + TileEntity te = worldObj.getTileEntity(x, yCoord, z); - + if(te instanceof IInventory) { - + IInventory inv = (IInventory) te; ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; - + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(dir.ordinal()) : null; + for(AStack ingredient : recipe.inputs) { - - if(!InventoryUtil.doesArrayHaveIngredients(slots, 13, 16, ingredient)) { - - for(int i = 0; i < inv.getSizeInventory(); i++) { - - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { - + + outer: + while(!InventoryUtil.doesArrayHaveIngredients(slots, 13, 16, ingredient)) { + + boolean found = false; + + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); + + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(slot, stack, 0))) { + for(int j = 13; j <= 16; j++) { - + if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); slots[j].stackSize++; - return; + continue outer; } } - + for(int j = 13; j <= 16; j++) { - + if(slots[j] == null) { slots[j] = stack.copy(); slots[j].stackSize = 1; - inv.decrStackSize(i, 1); - return; + inv.decrStackSize(slot, 1); + continue outer; } } } } + + if(!found) break outer; } } } } } - + private void unloadItems() { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); int x = xCoord + dir.offsetX * 3 + rot.offsetX; int z = zCoord + dir.offsetZ * 3 + rot.offsetZ; - + TileEntity te = worldObj.getTileEntity(x, yCoord, z); - + if(te instanceof IInventory) { - + IInventory inv = (IInventory) te; - - for(int i = 5; i <= 8; i++) { - - ItemStack out = slots[i]; - - if(out != null) { - - for(int j = 0; j < inv.getSizeInventory(); j++) { - - if(!inv.isItemValidForSlot(j, out)) - continue; - - ItemStack target = inv.getStackInSlot(j); - - if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize()) { - this.decrStackSize(i, 1); - target.stackSize++; - return; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(dir.ordinal()) : null; + + boolean shouldOutput = true; + + while(shouldOutput) { + shouldOutput = false; + outer: + for(int i = 5; i <= 8; i++) { + + ItemStack out = slots[i]; + + if(out != null) { + + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; + + if(!inv.isItemValidForSlot(slot, out)) + continue; + + ItemStack target = inv.getStackInSlot(slot); + + if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < Math.min(target.getMaxStackSize(), inv.getInventoryStackLimit())) { + int toDec = Math.min(out.stackSize, Math.min(target.getMaxStackSize(), inv.getInventoryStackLimit()) - target.stackSize); + this.decrStackSize(i, toDec); + target.stackSize += toDec; + shouldOutput = true; + break outer; + } } - } - - for(int j = 0; j < inv.getSizeInventory(); j++) { - - if(!inv.isItemValidForSlot(j, out)) - continue; - - if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { - ItemStack copy = out.copy(); - copy.stackSize = 1; - inv.setInventorySlotContents(j, copy); - this.decrStackSize(i, 1); - return; + + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; + + if(!inv.isItemValidForSlot(slot, out)) + continue; + + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, dir.ordinal()) : inv.isItemValidForSlot(slot, out))) { + ItemStack copy = out.copy(); + copy.stackSize = 1; + inv.setInventorySlotContents(slot, copy); + this.decrStackSize(i, 1); + shouldOutput = true; + break outer; + } } } } @@ -461,138 +504,38 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements @Override public long getMaxPower() { - return this.maxPower; + return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - if(index >= 0 && index < tanks.length) tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - return; - } - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index >= 0 && index < tanks.length) tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - for(int i = 0; i < 2; i++) { - if(tanks[i].getTankType() == type) { - return tanks[i].getMaxFill(); - } - } - - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - - /* - * #### - * X####X - * X##O#X - * #### - */ - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - fillFluid(xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, this.getTact(), type); - fillFluid(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, this.getTact(), type); - fillFluid(xCoord + rot.offsetX * 3 + dir.offsetX, yCoord, zCoord + rot.offsetZ * 3 + dir.offsetZ, this.getTact(), type); - fillFluid(xCoord - rot.offsetX * 2 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 2 + dir.offsetZ, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - List[] lists = new List[] { - new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList() - }; - - @Override - public List getFluidList(FluidType type) { - - for(int i = 0; i < tanks.length; i++) { - if(tanks[i].getTankType() == type) { - return lists[i]; - } - } - - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - - for(int i = 0; i < tanks.length; i++) { - if(tanks[i].getTankType() == type) { - lists[i].clear(); - } - } - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); - + for(int i = 0; i < tanks.length; i++) { tanks[i].readFromNBT(nbt, "t" + i); } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setLong("power", power); nbt.setInteger("progress", progress); - + for(int i = 0; i < tanks.length; i++) { tanks[i].writeToNBT(nbt, "t" + i); } } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 2, @@ -603,10 +546,10 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements zCoord + 3 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -635,7 +578,37 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineChemplant(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemplant)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 9); + return upgrades; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 6d6caf6e2..64930bf2d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import com.hbm.inventory.RecipesCommon.AStack; @@ -14,15 +15,16 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.InventoryUtil; +import com.hbm.util.ItemStackUtil; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidUser; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChunkCoordinates; /** * Base class for single and multi chemplants. @@ -32,48 +34,48 @@ import net.minecraft.util.ChunkCoordinates; * Tanks follow the order R1(I1, I2, O1, O2), R2(I1, I2, O1, O2) ... * @author hbm */ -public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBase implements IEnergyUser, IFluidUser, IGUIProvider { +public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidUser, IGUIProvider { public long power; public int[] progress; public int[] maxProgress; public boolean isProgressing; - + public FluidTank[] tanks; - + int consumption = 100; int speed = 100; public TileEntityMachineChemplantBase(int scount) { super(scount); - + int count = this.getRecipeCount(); progress = new int[count]; maxProgress = new int[count]; - + tanks = new FluidTank[4 * count]; for(int i = 0; i < 4 * count; i++) { - tanks[i] = new FluidTank(Fluids.NONE, getTankCapacity(), i); + tanks[i] = new FluidTank(Fluids.NONE, getTankCapacity()); } } @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + int count = this.getRecipeCount(); - + this.isProgressing = false; this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); - + for(int i = 0; i < count; i++) { loadItems(i); unloadItems(i); } - + for(int i = 0; i < count; i++) { if(!canProcess(i)) { this.progress[i] = 0; @@ -84,72 +86,83 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } } } - + protected boolean canProcess(int index) { - + int template = getTemplateIndex(index); - + if(slots[template] == null || slots[template].getItem() != ModItems.chemistry_template) return false; - + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[template].getItemDamage()); - + if(recipe == null) return false; - + setupTanks(recipe, index); - + if(this.power < this.consumption) return false; if(!hasRequiredFluids(recipe, index)) return false; if(!hasSpaceForFluids(recipe, index)) return false; if(!hasRequiredItems(recipe, index)) return false; if(!hasSpaceForItems(recipe, index)) return false; - + return true; } - + private void setupTanks(ChemRecipe recipe, int index) { if(recipe.inputFluids[0] != null) tanks[index * 4].withPressure(recipe.inputFluids[0].pressure).setTankType(recipe.inputFluids[0].type); else tanks[index * 4].setTankType(Fluids.NONE); if(recipe.inputFluids[1] != null) tanks[index * 4 + 1].withPressure(recipe.inputFluids[1].pressure).setTankType(recipe.inputFluids[1].type); else tanks[index * 4 + 1].setTankType(Fluids.NONE); if(recipe.outputFluids[0] != null) tanks[index * 4 + 2].withPressure(recipe.outputFluids[0].pressure).setTankType(recipe.outputFluids[0].type); else tanks[index * 4 + 2].setTankType(Fluids.NONE); if(recipe.outputFluids[1] != null) tanks[index * 4 + 3].withPressure(recipe.outputFluids[1].pressure).setTankType(recipe.outputFluids[1].type); else tanks[index * 4 + 3].setTankType(Fluids.NONE); } - + private boolean hasRequiredFluids(ChemRecipe recipe, int index) { if(recipe.inputFluids[0] != null && tanks[index * 4].getFill() < recipe.inputFluids[0].fill) return false; if(recipe.inputFluids[1] != null && tanks[index * 4 + 1].getFill() < recipe.inputFluids[1].fill) return false; return true; } - + private boolean hasSpaceForFluids(ChemRecipe recipe, int index) { if(recipe.outputFluids[0] != null && tanks[index * 4 + 2].getFill() + recipe.outputFluids[0].fill > tanks[index * 4 + 2].getMaxFill()) return false; if(recipe.outputFluids[1] != null && tanks[index * 4 + 3].getFill() + recipe.outputFluids[1].fill > tanks[index * 4 + 3].getMaxFill()) return false; return true; } - + + public HashMap cachedItems = new HashMap<>(); + private boolean hasRequiredItems(ChemRecipe recipe, int index) { int[] indices = getSlotIndicesFromIndex(index); - return InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], recipe.inputs); + ItemStack[] copy = ItemStackUtil.carefulCopyArrayTruncate(slots, indices[0], indices[1]); + if (cachedItems.get(copy) != null) + return cachedItems.get(copy); + else { + boolean hasItems = InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], recipe.inputs); + cachedItems.put(copy, hasItems); + return hasItems; + } } - + private boolean hasSpaceForItems(ChemRecipe recipe, int index) { int[] indices = getSlotIndicesFromIndex(index); return InventoryUtil.doesArrayHaveSpace(slots, indices[2], indices[3], recipe.outputs); } - + protected void process(int index) { - + this.power -= this.consumption; this.progress[index]++; - + if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_machined) slots[0] = new ItemStack(ModItems.meteorite_sword_treated); //fisfndmoivndlmgindgifgjfdnblfm - + int template = getTemplateIndex(index); ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[template].getItemDamage()); - + this.maxProgress[index] = recipe.getDuration() * this.speed / 100; - + + if(maxProgress[index] <= 0) maxProgress[index] = 1; + if(this.progress[index] >= this.maxProgress[index]) { consumeFluids(recipe, index); produceFluids(recipe, index); @@ -159,140 +172,160 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa this.markDirty(); } } - + private void consumeFluids(ChemRecipe recipe, int index) { if(recipe.inputFluids[0] != null) tanks[index * 4].setFill(tanks[index * 4].getFill() - recipe.inputFluids[0].fill); if(recipe.inputFluids[1] != null) tanks[index * 4 + 1].setFill(tanks[index * 4 + 1].getFill() - recipe.inputFluids[1].fill); } - + private void produceFluids(ChemRecipe recipe, int index) { if(recipe.outputFluids[0] != null) tanks[index * 4 + 2].setFill(tanks[index * 4 + 2].getFill() + recipe.outputFluids[0].fill); if(recipe.outputFluids[1] != null) tanks[index * 4 + 3].setFill(tanks[index * 4 + 3].getFill() + recipe.outputFluids[1].fill); } - + private void consumeItems(ChemRecipe recipe, int index) { - + int[] indices = getSlotIndicesFromIndex(index); - + for(AStack in : recipe.inputs) { if(in != null) InventoryUtil.tryConsumeAStack(slots, indices[0], indices[1], in); } } - + private void produceItems(ChemRecipe recipe, int index) { - + int[] indices = getSlotIndicesFromIndex(index); - + for(ItemStack out : recipe.outputs) { if(out != null) InventoryUtil.tryAddItemToInventory(slots, indices[2], indices[3], out.copy()); } } - + private void loadItems(int index) { - + int template = getTemplateIndex(index); if(slots[template] == null || slots[template].getItem() != ModItems.chemistry_template) return; - + ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[template].getItemDamage()); - + if(recipe != null) { - - ChunkCoordinates[] positions = getInputPositions(); + + DirPos[] positions = getInputPositions(); int[] indices = getSlotIndicesFromIndex(index); - - for(ChunkCoordinates coord : positions) { - - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); - + + for(DirPos coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); + if(te instanceof IInventory) { - + IInventory inv = (IInventory) te; ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; - + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; + for(AStack ingredient : recipe.inputs) { - - if(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { - - for(int i = 0; i < inv.getSizeInventory(); i++) { - - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { - + + outer: + while(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { + + boolean found = false; + + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(slot, stack, 0))) { + for(int j = indices[0]; j <= indices[1]; j++) { - + if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); slots[j].stackSize++; - return; + continue outer; } } - + for(int j = indices[0]; j <= indices[1]; j++) { - + if(slots[j] == null) { slots[j] = stack.copy(); slots[j].stackSize = 1; - inv.decrStackSize(i, 1); - return; + inv.decrStackSize(slot, 1); + continue outer; } } } } + + if(!found) break outer; } } } } } } - + private void unloadItems(int index) { - ChunkCoordinates[] positions = getOutputPositions(); + DirPos[] positions = getOutputPositions(); int[] indices = getSlotIndicesFromIndex(index); - - for(ChunkCoordinates coord : positions) { - - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); - + + for(DirPos coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); + if(te instanceof IInventory) { - + IInventory inv = (IInventory) te; - //ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; - - for(int i = indices[2]; i <= indices[3]; i++) { - - ItemStack out = slots[i]; - - if(out != null) { - - for(int j = 0; j < inv.getSizeInventory(); j++) { - - if(!inv.isItemValidForSlot(j, out)) - continue; - - ItemStack target = inv.getStackInSlot(j); - - if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { - this.decrStackSize(i, 1); - target.stackSize++; - return; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; + + boolean shouldOutput = true; + while(shouldOutput) { + shouldOutput = false; + outer: + for(int i = indices[2]; i <= indices[3]; i++) { + + ItemStack out = slots[i]; + + if(out != null) { + + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; + + if(!inv.isItemValidForSlot(slot, out)) + continue; + + ItemStack target = inv.getStackInSlot(slot); + + if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { + int toDec = Math.min(out.stackSize, Math.min(target.getMaxStackSize(), inv.getInventoryStackLimit()) - target.stackSize); + this.decrStackSize(i, toDec); + target.stackSize += toDec; + shouldOutput = true; + break outer; + } } - } - - for(int j = 0; j < inv.getSizeInventory(); j++) { - - if(!inv.isItemValidForSlot(j, out)) - continue; - - if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { - ItemStack copy = out.copy(); - copy.stackSize = 1; - inv.setInventorySlotContents(j, copy); - this.decrStackSize(i, 1); - return; + + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; + + if(!inv.isItemValidForSlot(slot, out)) + continue; + + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) { + ItemStack copy = out.copy(); + copy.stackSize = 1; + inv.setInventorySlotContents(slot, copy); + this.decrStackSize(i, 1); + shouldOutput = true; + break outer; + } } } } @@ -312,105 +345,105 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } /*public int getFluidFill(FluidType type) { - + int fill = 0; - + for(FluidTank tank : inTanks()) { if(tank.getTankType() == type) { fill += tank.getFill(); } } - + for(FluidTank tank : outTanks()) { if(tank.getTankType() == type) { fill += tank.getFill(); } } - + return fill; }*/ /* For input only! */ public int getMaxFluidFill(FluidType type) { - + int maxFill = 0; - + for(FluidTank tank : inTanks()) { if(tank.getTankType() == type) { maxFill += tank.getMaxFill(); } } - + return maxFill; } - + protected List inTanks() { List inTanks = new ArrayList(); - + for(int i = 0; i < tanks.length; i++) { FluidTank tank = tanks[i]; - if(tank.index % 4 < 2) { + if(i % 4 < 2) { inTanks.add(tank); } } - + return inTanks; } /*public void receiveFluid(int amount, FluidType type) { - + if(amount <= 0) return; - + List rec = new ArrayList(); - + for(FluidTank tank : inTanks()) { if(tank.getTankType() == type) { rec.add(tank); } } - + if(rec.size() == 0) return; - + int demand = 0; List weight = new ArrayList(); - + for(FluidTank tank : rec) { int fillWeight = tank.getMaxFill() - tank.getFill(); demand += fillWeight; weight.add(fillWeight); } - + for(int i = 0; i < rec.size(); i++) { - + if(demand <= 0) break; - + FluidTank tank = rec.get(i); int fillWeight = weight.get(i); int part = (int) (Math.min((long)amount, (long)demand) * (long)fillWeight / (long)demand); - + tank.setFill(tank.getFill() + part); } }*/ public int getFluidFillForTransfer(FluidType type, int pressure) { - + int fill = 0; - + for(FluidTank tank : outTanks()) { if(tank.getTankType() == type && tank.getPressure() == pressure) { fill += tank.getFill(); } } - + return fill; } - + public void transferFluid(int amount, FluidType type, int pressure) { - + /* * this whole new fluid mumbo jumbo extra abstraction layer might just be a bandaid * on the gushing wound that is the current fluid systemm but i'll be damned if it @@ -419,44 +452,44 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa */ if(amount <= 0) return; - + List send = new ArrayList(); - + for(FluidTank tank : outTanks()) { if(tank.getTankType() == type && tank.getPressure() == pressure) { send.add(tank); } } - + if(send.size() == 0) return; - + int offer = 0; List weight = new ArrayList(); - + for(FluidTank tank : send) { int fillWeight = tank.getFill(); offer += fillWeight; weight.add(fillWeight); } - + int tracker = amount; - + for(int i = 0; i < send.size(); i++) { - + FluidTank tank = send.get(i); int fillWeight = weight.get(i); int part = amount * fillWeight / offer; - + tank.setFill(tank.getFill() - part); tracker -= part; } - + //making sure to properly deduct even the last mB lost by rounding errors for(int i = 0; i < 100 && tracker > 0; i++) { - + FluidTank tank = send.get(i % send.size()); - + if(tank.getFill() > 0) { int total = Math.min(tank.getFill(), tracker); tracker -= total; @@ -464,18 +497,18 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } } } - + protected List outTanks() { - + List outTanks = new ArrayList(); - + for(int i = 0; i < tanks.length; i++) { FluidTank tank = tanks[i]; - if(tank.index % 4 > 1) { + if(i % 4 > 1) { outTanks.add(tank); } } - + return outTanks; } @@ -487,43 +520,43 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa @Override public long transferFluid(FluidType type, int pressure, long fluid) { int amount = (int) fluid; - + if(amount <= 0) return 0; - + List rec = new ArrayList(); - + for(FluidTank tank : inTanks()) { if(tank.getTankType() == type && tank.getPressure() == pressure) { rec.add(tank); } } - + if(rec.size() == 0) return fluid; - + int demand = 0; List weight = new ArrayList(); - + for(FluidTank tank : rec) { int fillWeight = tank.getMaxFill() - tank.getFill(); demand += fillWeight; weight.add(fillWeight); } - + for(int i = 0; i < rec.size(); i++) { - + if(demand <= 0) break; - + FluidTank tank = rec.get(i); int fillWeight = weight.get(i); int part = (int) (Math.min((long)amount, (long)demand) * (long)fillWeight / (long)demand); - + tank.setFill(tank.getFill() + part); fluid -= part; } - + return fluid; } @@ -541,29 +574,29 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa public void removeFluidForTransfer(FluidType type, int pressure, long amount) { this.transferFluid((int) amount, type, pressure); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + this.power = nbt.getLong("power"); this.progress = nbt.getIntArray("progress"); - + if(progress.length == 0) progress = new int[this.getRecipeCount()]; - + for(int i = 0; i < tanks.length; i++) { tanks[i].readFromNBT(nbt, "t" + i); } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setLong("power", power); nbt.setIntArray("progress", progress); - + for(int i = 0; i < tanks.length; i++) { tanks[i].writeToNBT(nbt, "t" + i); } @@ -572,12 +605,12 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa public abstract int getRecipeCount(); public abstract int getTankCapacity(); public abstract int getTemplateIndex(int index); - + /** * @param index * @return A size 4 int array containing min input, max input, min output and max output indices in that order. */ public abstract int[] getSlotIndicesFromIndex(int index); - public abstract ChunkCoordinates[] getInputPositions(); - public abstract ChunkCoordinates[] getOutputPositions(); + public abstract DirPos[] getInputPositions(); + public abstract DirPos[] getOutputPositions(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java deleted file mode 100644 index 449e3aea4..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ /dev/null @@ -1,398 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.io.IOException; - -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; -import com.hbm.blocks.machine.MachineCoal; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.FluidContainerRegistry; -import com.hbm.inventory.container.ContainerMachineCoal; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineCoal; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider { - - private ItemStack slots[]; - - public long power; - public int burnTime; - public static final long maxPower = 100000; - public FluidTank tank; - - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {0, 2}; - private static final int[] slots_side = new int[] {0, 2}; - - private String customName; - - /* CONFIGURABLE CONSTANTS */ - public static int waterCap = 5000; - public static int genRate = 25; - public static double fuelMod = 0.5D; - - public TileEntityMachineCoal() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.WATER, waterCap, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineCoal"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0) - if(FluidContainerRegistry.getFluidContent(stack, Fluids.WATER) > 0) - return true; - if(i == 2) - if(stack.getItem() instanceof IBatteryItem) - return true; - if(i == 1) - if(TileEntityFurnace.getItemBurnTime(stack) > 0) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - this.power = nbt.getLong("powerTime"); - tank.readFromNBT(nbt, "water"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - tank.writeToNBT(nbt, "water"); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 0) - if(itemStack.getItem() == Items.bucket || itemStack.getItem() == ModItems.rod_empty || itemStack.getItem() == ModItems.rod_dual_empty || itemStack.getItem() == ModItems.rod_quad_empty) - return true; - if(i == 2) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) - return true; - - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - - this.subscribeToAllAround(Fluids.WATER, this); - - //Water - tank.loadTank(0, 3, slots); - - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - //Battery Item - power = Library.chargeItemsFromTE(slots, 2, power, maxPower); - - boolean trigger = true; - - if(isItemValid() && this.burnTime == 0) - { - trigger = false; - } - - if(trigger) - { - MachineCoal.updateBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, burnTime, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - - generate(); - } - } - - public void generate() { - - if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0 && burnTime <= 0) - { - burnTime = (int) (TileEntityFurnace.getItemBurnTime(slots[1]) * fuelMod); - slots[1].stackSize -= 1; - if(slots[1].stackSize == 0) - { - if(slots[1].getItem().getContainerItem() != null) - slots[1] = new ItemStack(slots[1].getItem().getContainerItem()); - else - slots[1] = null; - } - } - - if(burnTime > 0) { - burnTime--; - - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); - - if(tank.getFill() > 0) { - tank.setFill(tank.getFill() - 1); - - power += genRate; - - if(power > maxPower) - power = maxPower; - } - } - } - - public boolean isItemValid() { - - if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0) - { - return true; - } - - return false; - } - - @Override - public long getPower() { - return power; - } - - @Override - public void setPower(long i) { - this.power = i; - } - - @Override - public long getMaxPower() { - return this.maxPower; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tank}; - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] { tank }; - } - - @Override - public String getConfigName() { - return "combustiongen"; - } - - @Override - public void readIfPresent(JsonObject obj) { - waterCap = IConfigurableMachine.grab(obj, "I:waterCapacity", waterCap); - genRate = IConfigurableMachine.grab(obj, "I:powerGen", genRate); - fuelMod = IConfigurableMachine.grab(obj, "D:burnTimeMod", fuelMod); - } - - @Override - public void writeConfig(JsonWriter writer) throws IOException { - writer.name("I:waterCapacity").value(waterCap); - writer.name("I:powerGen").value(genRate); - writer.name("D:burnTimeMod").value(fuelMod); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineCoal(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineCoal(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 1527a9e17..7c56a59f1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -1,31 +1,30 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCombustionEngine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.gui.GUICombustionEngine; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; @@ -34,26 +33,26 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCombustionEngine extends TileEntityMachineBase implements IEnergyGenerator, IFluidStandardReceiver, IControlReceiver, IGUIProvider { - +public class TileEntityMachineCombustionEngine extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IFluidCopiable { + public boolean isOn = false; public static long maxPower = 2_500_000; public long power; private int playersUsing = 0; public int setting = 0; public boolean wasOn = false; - + public float doorAngle = 0; public float prevDoorAngle = 0; - + private AudioWrapper audio; - + public FluidTank tank; public int tenth = 0; public TileEntityMachineCombustionEngine() { - super(5); - this.tank = new FluidTank(Fluids.DIESEL, 24_000, 0); + super(5, 50); + this.tank = new FluidTank(Fluids.DIESEL, 24_000); } @Override @@ -63,89 +62,85 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp @Override public void updateEntity() { - + if(!worldObj.isRemote) { this.tank.loadTank(0, 1, slots); if(this.tank.setType(4, slots)) { this.tenth = 0; } - + wasOn = false; int fill = tank.getFill() * 10 + tenth; if(isOn && setting > 0 && slots[2] != null && slots[2].getItem() == ModItems.piston_set && fill > 0 && tank.getTankType().hasTrait(FT_Combustible.class)) { EnumPistonType piston = EnumUtil.grabEnumSafely(EnumPistonType.class, slots[2].getItemDamage()); FT_Combustible trait = tank.getTankType().getTrait(FT_Combustible.class); - + double eff = piston.eff[trait.getGrade().ordinal()]; - + if(eff > 0) { int speed = setting * 2; - + int toBurn = Math.min(fill, speed); this.power += toBurn * (trait.getCombustionEnergy() / 10_000D) * eff; fill -= toBurn; - - if(worldObj.getTotalWorldTime() % 20 == 0) { - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); - if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * setting * 0.1F); + + if(worldObj.getTotalWorldTime() % 5 == 0 && toBurn > 0) { + super.pollute(tank.getTankType(), FluidReleaseType.BURN, toBurn * 0.5F); } - + if(toBurn > 0) { wasOn = true; } - + tank.setFill(fill / 10); tenth = fill % 10; } } - + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", Math.min(power, maxPower)); - + this.power = Library.chargeItemsFromTE(slots, 3, power, power); - + for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - + if(power > maxPower) power = maxPower; - - data.setInteger("playersUsing", playersUsing); - data.setInteger("setting", setting); - data.setBoolean("isOn", isOn); - data.setBoolean("wasOn", wasOn); - tank.writeToNBT(data, "tank"); - this.networkPack(data, 50); - + + this.networkPackNT(50); + } else { this.prevDoorAngle = this.doorAngle; float swingSpeed = (doorAngle / 10F) + 3; - + if(this.playersUsing > 0) { this.doorAngle += swingSpeed; } else { this.doorAngle -= swingSpeed; } - + this.doorAngle = MathHelper.clamp_float(this.doorAngle, 0F, 135F); if(wasOn) { - + if(audio == null) { audio = createAudioLoop(); audio.startSound(); } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + audio.keepAlive(); - + audio.updateVolume(this.getVolume(1F)); + } else { - + if(audio != null) { audio.stopSound(); audio = null; @@ -153,11 +148,11 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp } } } - + private DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + return new DirPos[] { new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ, dir), new DirPos(xCoord + dir.offsetX * 1 - rot.offsetX, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ, dir), @@ -165,7 +160,8 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()) }; } - + + @Override public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F, 20); } @@ -181,7 +177,6 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp @Override public void invalidate() { - super.invalidate(); if(audio != null) { @@ -201,13 +196,25 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.playersUsing = nbt.getInteger("playersUsing"); - this.setting = nbt.getInteger("setting"); - this.power = nbt.getLong("power"); - this.isOn = nbt.getBoolean("isOn"); - this.wasOn = nbt.getBoolean("wasOn"); - this.tank.readFromNBT(nbt, "tank"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.playersUsing); + buf.writeInt(this.setting); + buf.writeLong(this.power); + buf.writeBoolean(this.isOn); + buf.writeBoolean(this.wasOn); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.playersUsing = buf.readInt(); + this.setting = buf.readInt(); + this.power = buf.readLong(); + this.isOn = buf.readBoolean(); + this.wasOn = buf.readBoolean(); + tank.deserialize(buf); } @Override @@ -229,12 +236,12 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp tank.writeToNBT(nbt, "tank"); nbt.setInteger("tenth", tenth); } - + @Override public void openInventory() { if(!worldObj.isRemote) this.playersUsing++; } - + @Override public void closeInventory() { if(!worldObj.isRemote) this.playersUsing--; @@ -262,7 +269,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICombustionEngine(player.inventory, this); } @@ -275,12 +282,17 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } - + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 3, @@ -291,10 +303,10 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp zCoord + 4 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -310,7 +322,24 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp public void receiveControl(NBTTagCompound data) { if(data.hasKey("turnOn")) this.isOn = !this.isOn; if(data.hasKey("setting")) this.setting = data.getInteger("setting"); - + this.markChanged(); } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setIntArray("fluidID", new int[]{tank.getTankType().getID()}); + tag.setBoolean("isOn", isOn); + tag.setInteger("burnRate", setting); + return tag; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + int id = nbt.getIntArray("fluidID")[index]; + tank.setTankType(Fluids.fromID(id)); + if(nbt.hasKey("isOn")) isOn = nbt.getBoolean("isOn"); + if(nbt.hasKey("burnRate")) setting = nbt.getInteger("burnRate"); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index a21a30834..e7e5ad2d5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -1,8 +1,12 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; -import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerCompressor; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -12,45 +16,46 @@ import com.hbm.inventory.recipes.CompressorRecipes.CompressorRecipe; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.*; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyUser, IFluidStandardTransceiver { - +public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider, IFluidCopiable { + public FluidTank[] tanks; public long power; - public static final long maxPower = 1_000_000; + public static final long maxPower = 100_000; public boolean isOn; public int progress; public int processTime = 100; public static final int processTimeBase = 100; public int powerRequirement; - public static final int powerRequirementBase = 10_000; - + public static final int powerRequirementBase = 2_500; + public float fanSpin; public float prevFanSpin; public float piston; public float prevPiston; public boolean pistonDir; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineCompressor() { super(4); this.tanks = new FluidTank[2]; @@ -65,76 +70,76 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); } - + this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); this.tanks[0].setType(0, slots); this.setupTanks(); - - UpgradeManager.eval(slots, 1, 3); - int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); + upgradeManager.checkSlots(this, slots, 1, 3); + + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); + int overLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + + CompressorRecipe rec = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); + int timeBase = this.processTimeBase; + if(rec != null) timeBase = rec.duration; //there is a reason to do this but i'm not telling you - this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : this.processTimeBase; + // ^ a few months later i have to wonder what the fuck this guy was on about, and if i ever see him i will punch him in the nuts + if(rec == null) this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : timeBase; + else this.processTime = timeBase / (speedLevel + 1); this.powerRequirement = this.powerRequirementBase / (powerLevel + 1); this.processTime = this.processTime / (overLevel + 1); this.powerRequirement = this.powerRequirement * ((overLevel * 2) + 1); - + + if(processTime <= 0) processTime = 1; + if(canProcess()) { this.progress++; this.isOn = true; this.power -= powerRequirement; - + if(progress >= this.processTime) { progress = 0; this.process(); this.markChanged(); } - + } else { this.progress = 0; this.isOn = false; } - + for(DirPos pos : getConPos()) { this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("progress", progress); - data.setInteger("processTime", processTime); - data.setInteger("powerRequirement", powerRequirement); - data.setLong("power", power); - tanks[0].writeToNBT(data, "0"); - tanks[1].writeToNBT(data, "1"); - data.setBoolean("isOn", isOn); - this.networkPack(data, 100); - + + this.networkPackNT(100); + } else { - + this.prevFanSpin = this.fanSpin; this.prevPiston = this.piston; - + if(this.isOn) { this.fanSpin += 15; - + if(this.fanSpin >= 360) { this.prevFanSpin -= 360; this.fanSpin -= 360; } - + if(this.pistonDir) { this.piston -= randSpeed; if(this.piston <= 0) { - MainRegistry.proxy.playSoundFuckMojang(xCoord, yCoord, zCoord, "hbm:item.boltgun", 0.5F, 0.75F); + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:item.boltgun", this.getVolume(0.5F), 0.75F); this.pistonDir = !this.pistonDir; } } else { @@ -144,59 +149,73 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement this.pistonDir = !this.pistonDir; } } - + this.piston = MathHelper.clamp_float(this.piston, 0F, 1F); } } } - + private float randSpeed = 0.1F; - - public void networkUnpack(NBTTagCompound nbt) { - this.progress = nbt.getInteger("progress"); - this.processTime = nbt.getInteger("processTime"); - this.powerRequirement = nbt.getInteger("powerRequirement"); - this.power = nbt.getLong("power"); - tanks[0].readFromNBT(nbt, "0"); - tanks[1].readFromNBT(nbt, "1"); - this.isOn = nbt.getBoolean("isOn"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.progress); + buf.writeInt(this.processTime); + buf.writeInt(this.powerRequirement); + buf.writeLong(this.power); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + buf.writeBoolean(this.isOn); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.progress = buf.readInt(); + this.processTime = buf.readInt(); + this.powerRequirement = buf.readInt(); + this.power = buf.readLong(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + this.isOn = buf.readBoolean(); + } + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + public DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + return new DirPos[] { new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), - new DirPos(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), }; } - + public boolean canProcess() { - + if(this.power <= powerRequirement) return false; - + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); - + if(recipe == null) { return tanks[0].getFill() >= 1000 && tanks[1].getFill() + 1000 <= tanks[1].getMaxFill(); } - + return tanks[0].getFill() > recipe.inputAmount && tanks[1].getFill() + recipe.output.fill <= tanks[1].getMaxFill(); } - + public void process() { - + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); - + if(recipe == null) { tanks[0].setFill(tanks[0].getFill() - 1_000); tanks[1].setFill(tanks[1].getFill() + 1_000); @@ -205,18 +224,18 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement tanks[1].setFill(tanks[1].getFill() + recipe.output.fill); } } - + protected void setupTanks() { - + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); - + if(recipe == null) { tanks[1].withPressure(tanks[0].getPressure() + 1).setTankType(tanks[0].getTankType()); } else { tanks[1].withPressure(recipe.output.pressure).setTankType(recipe.output.type); } } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -225,7 +244,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement tanks[0].readFromNBT(nbt, "0"); tanks[1].readFromNBT(nbt, "1"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -242,7 +261,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICompressor(player.inventory, this); } @@ -254,18 +273,18 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement @Override public void receiveControl(NBTTagCompound data) { int compression = data.getInteger("compression"); - + if(compression != tanks[0].getPressure()) { tanks[0].withPressure(compression); - + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), compression)); - + if(recipe == null) { tanks[1].withPressure(compression + 1); } else { tanks[1].withPressure(recipe.output.pressure).setTankType(recipe.output.type); } - + this.markChanged(); } } @@ -299,12 +318,12 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 2, @@ -315,13 +334,72 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement zCoord + 3 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_compressor)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + "Generic compression: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level == 3 ? 90 : level == 2 ? 80 : level == 1 ? 40 : 0) + "%")); + info.add(EnumChatFormatting.GREEN + "Recipe: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 9); + return upgrades; + } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setIntArray("fluidID", getFluidIDToCopy()); + tag.setInteger("compression", tanks[0].getPressure()); + return tag; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + if(nbt.hasKey("compression")) { + int compression = nbt.getInteger("compression"); + + if (compression != tanks[0].getPressure()) { + tanks[0].withPressure(compression); + + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), compression)); + + if (recipe == null) { + tanks[1].withPressure(compression + 1); + } else { + tanks[1].withPressure(recipe.output.pressure).setTankType(recipe.output.type); + } + + this.markChanged(); + } + } + IFluidCopiable.super.pasteSettings(nbt, index, world, player, x, y, z); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 7c19d40bb..23771df85 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -1,50 +1,61 @@ package com.hbm.tileentity.machine; -import com.hbm.blocks.BlockDummyable; +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerCrystallizer; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICrystallizer; import com.hbm.inventory.recipes.CrystallizerRecipes; import com.hbm.inventory.recipes.CrystallizerRecipes.CrystallizerRecipe; -import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.*; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider { - +public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable { + public long power; public static final long maxPower = 1000000; public static final int demand = 1000; public short progress; public short duration = 600; - + public boolean isOn; + public float angle; public float prevAngle; - + public FluidTank tank; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineCrystallizer() { super(8); - tank = new FluidTank(Fluids.ACID, 8000); + tank = new FluidTank(Fluids.PEROXIDE, 8000); } @Override @@ -54,240 +65,206 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + + this.isOn = false; + this.updateConnections(); - + power = Library.chargeTEFromItems(slots, 1, power, maxPower); tank.setType(7, slots); tank.loadTank(3, 4, slots); - + + upgradeManager.checkSlots(this, slots, 5, 6); + for(int i = 0; i < getCycleCount(); i++) { - + if(canProcess()) { - + progress++; power -= getPowerRequired(); - + isOn = true; + if(progress > getDuration()) { progress = 0; processItem(); - + this.markDirty(); } - + } else { progress = 0; } } - - NBTTagCompound data = new NBTTagCompound(); - data.setShort("progress", progress); - data.setShort("duration", getDuration()); - data.setLong("power", power); - tank.writeToNBT(data, "t"); - this.networkPack(data, 25); + + this.networkPackNT(25); } else { - + prevAngle = angle; - - if(progress > 0) { + + if(isOn) { angle += 5F * this.getCycleCount(); - + if(angle >= 360) { angle -= 360; prevAngle -= 360; } + + if(worldObj.rand.nextInt(20) == 0 && MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 6, zCoord + 0.5) < 50) { + worldObj.spawnParticle("cloud", xCoord + worldObj.rand.nextDouble(), yCoord + 6.5D, zCoord + worldObj.rand.nextDouble(), 0.0, 0.1, 0.0); + } } } + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.25, yCoord + 1, zCoord + 0.25, xCoord + 0.75, yCoord + 6, zCoord + 0.75).offset(rot.offsetX * 1.5, 0, rot.offsetZ * 1.5)); + + for(EntityPlayer player : players) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.isOnLadder = true; + } } - + private void updateConnections() { - + for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + protected DirPos[] getConPos() { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - - if(dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH) { - - return new DirPos[] { - new DirPos(xCoord + 2, yCoord + 5, zCoord, Library.POS_X), - new DirPos(xCoord - 2, yCoord + 5, zCoord, Library.NEG_X) - }; - } - - if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { - - return new DirPos[] { - new DirPos(xCoord, yCoord + 5, zCoord + 2, Library.POS_Z), - new DirPos(xCoord, yCoord + 5, zCoord - 2, Library.NEG_Z) - }; - } - - return new DirPos[0]; + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z) + }; } - - public void networkUnpack(NBTTagCompound data) { - - this.power = data.getLong("power"); - this.progress = data.getShort("progress"); - this.duration = data.getShort("duration"); - this.tank.readFromNBT(data, "t"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeShort(progress); + buf.writeShort(getDuration()); + buf.writeLong(power); + buf.writeBoolean(isOn); + tank.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + progress = buf.readShort(); + duration = buf.readShort(); + power = buf.readLong(); + isOn = buf.readBoolean(); + tank.deserialize(buf); + } + private void processItem() { CrystallizerRecipe result = CrystallizerRecipes.getOutput(slots[0], tank.getTankType()); - + if(result == null) //never happens but you can't be sure enough return; - + ItemStack stack = result.output.copy(); - + if(slots[2] == null) slots[2] = stack; else if(slots[2].stackSize + stack.stackSize <= slots[2].getMaxStackSize()) slots[2].stackSize += stack.stackSize; - - tank.setFill(tank.getFill() - result.acidAmount); - + + tank.setFill(tank.getFill() - getRequiredAcid(result.acidAmount)); + float freeChance = this.getFreeChance(); - + if(freeChance == 0 || freeChance < worldObj.rand.nextFloat()) this.decrStackSize(0, result.itemAmount); } - + private boolean canProcess() { - + //Is there no input? if(slots[0] == null) return false; - + if(power < getPowerRequired()) return false; - + CrystallizerRecipe result = CrystallizerRecipes.getOutput(slots[0], tank.getTankType()); - + //Or output? if(result == null) return false; - + //Not enough of the input item? if(slots[0].stackSize < result.itemAmount) return false; - - if(tank.getFill() < result.acidAmount) return false; - + + if(tank.getFill() < getRequiredAcid(result.acidAmount)) return false; + ItemStack stack = result.output.copy(); - + //Does the output not match? if(slots[2] != null && (slots[2].getItem() != stack.getItem() || slots[2].getItemDamage() != stack.getItemDamage())) return false; - + //Or is the output slot already full? if(slots[2] != null && slots[2].stackSize + stack.stackSize > slots[2].getMaxStackSize()) return false; - + return true; } - - public int getRequiredAcid(int base) { - - for(int i = 5; i <= 6; i++) { - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_1) - base *= 3; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_2) - base *= 4; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_3) - base *= 5; + public int getRequiredAcid(int base) { + int efficiency = upgradeManager.getLevel(UpgradeType.EFFECT); + if(efficiency > 0) { + return base * (efficiency + 2); } - return base; } - + public float getFreeChance() { - - float chance = 0.0F; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_1) - chance += 0.05F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_2) - chance += 0.1F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_3) - chance += 0.15F; + int efficiency = upgradeManager.getLevel(UpgradeType.EFFECT); + if(efficiency > 0) { + return Math.min(efficiency * 0.05F, 0.15F); } - - return Math.min(chance, 0.15F); + return 0; } - + public short getDuration() { - - float durationMod = 1; CrystallizerRecipe result = CrystallizerRecipes.getOutput(slots[0], tank.getTankType()); - int base = result != null ? result.duration : 600; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_1) - durationMod -= 0.25F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_2) - durationMod -= 0.50F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_3) - durationMod -= 0.75F; + int speed = upgradeManager.getLevel(UpgradeType.SPEED); + if(speed > 0) { + return (short) Math.ceil((base * Math.max(1F - 0.25F * speed, 0.25F))); } - - return (short) Math.ceil((base * Math.max(durationMod, 0.25F))); + return (short) base; } - + public int getPowerRequired() { - - int consumption = 0; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_1) - consumption += 1000; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_2) - consumption += 2000; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_3) - consumption += 3000; - } - - return (int) (demand + Math.min(consumption, 3000)); + int speed = upgradeManager.getLevel(UpgradeType.SPEED); + return (int) (demand + Math.min(speed * 1000, 3000)); } - + public float getCycleCount() { - - int cycles = 1; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_1) - cycles += 2; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_2) - cycles += 4; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_3) - cycles += 6; - } - - return Math.min(cycles, 4); + int speed = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + return Math.min(1 + speed * 2, 7); } - + public long getPowerScaled(int i) { return (power * i) / maxPower; } - + public int getProgressScaled(int i) { return (progress * i) / duration; } @@ -306,34 +283,34 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme public long getMaxPower() { return maxPower; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + power = nbt.getLong("power"); tank.readFromNBT(nbt, "tank"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setLong("power", power); tank.writeToNBT(nbt, "tank"); } @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - + CrystallizerRecipe recipe = CrystallizerRecipes.getOutput(itemStack, tank.getTankType()); if(i == 0 && recipe != null) { return true; } - + if(i == 1 && itemStack.getItem() instanceof IBatteryItem) return true; - + return false; } @@ -344,15 +321,15 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme @Override public int[] getAccessibleSlotsFromSide(int side) { - + return side == 0 ? new int[] { 2 } : new int[] { 0, 2 }; } - + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -362,7 +339,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme @Override public void setInventorySlotContents(int i, ItemStack stack) { super.setInventorySlotContents(i, stack); - + if(stack != null && i >= 5 && i <= 6 && stack.getItem() instanceof ItemMachineUpgrade) { worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); } @@ -385,7 +362,47 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrystallizer(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_crystallizer)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (level * 5) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_ACID, "+" + (level * 100 + 100) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.EFFECT, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); + return upgrades; + } + + @Override + public int[] getFluidIDToCopy() { + return new int[]{ tank.getTankType().getID()}; + } + + @Override + public FluidTank getTankToPaste() { + return tank; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 0fa7a053f..b254d0fdf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -1,71 +1,66 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityBlackHole; -import com.hbm.entity.logic.EntityBalefire; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionThermo; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerMachineCyclotron; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineCyclotron; import com.hbm.inventory.recipes.CyclotronRecipes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.*; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.I18nUtil; +import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable { -public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider { - public long power; public static final long maxPower = 100000000; - public int consumption = 1000000; - - public boolean isOn; - - private int age; - private int countdown; - - private byte plugs; - + public static int consumption = 1_000_000; + + private byte plugs; + public int progress; public static final int duration = 690; - - public FluidTank coolant; - public FluidTank amat; - - public List list = new ArrayList(); + + public FluidTank[] tanks; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); public TileEntityMachineCyclotron() { - super(16); + super(12); - coolant = new FluidTank(Fluids.COOLANT, 32000, 0); - amat = new FluidTank(Fluids.AMAT, 8000, 1); + this.tanks = new FluidTank[3]; + this.tanks[0] = new FluidTank(Fluids.WATER, 32000); + this.tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 32000); + this.tanks[2] = new FluidTank(Fluids.AMAT, 8000); } @Override @@ -75,108 +70,77 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + this.updateConnections(); - age++; - if(age >= 20) - { - age = 0; - } - - if(age == 9 || age == 19) - fillFluidInit(amat.getTankType()); + this.power = Library.chargeTEFromItems(slots, 9, power, maxPower); - this.power = Library.chargeTEFromItems(slots, 13, power, maxPower); - this.coolant.loadTank(11, 12, slots); - this.amat.unloadTank(9, 10, slots); - - if(isOn) { - - int defConsumption = consumption - 100000 * getConsumption(); - - if(canProcess() && power >= defConsumption) { - - progress += this.getSpeed(); - power -= defConsumption; - - if(progress >= duration) { - process(); - progress = 0; - this.markDirty(); - } - - if(coolant.getFill() > 0) { + upgradeManager.checkSlots(this, slots, 10, 11); - countdown = 0; - - if(worldObj.rand.nextInt(3) == 0) - coolant.setFill(coolant.getFill() - 1); - - } else if(worldObj.rand.nextInt(this.getSafety()) == 0) { - - countdown++; - - int chance = 7 - Math.min((int) Math.ceil(countdown / 200D), 6); - - if(worldObj.rand.nextInt(chance) == 0) - ExplosionLarge.spawnTracers(worldObj, xCoord + 0.5, yCoord + 3.25, zCoord + 0.5, 1); - - if(countdown > 1000) { - ExplosionThermo.setEntitiesOnFire(worldObj, xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, 25); - ExplosionThermo.scorchLight(worldObj, xCoord, yCoord, zCoord, 7); - - if(countdown % 4 == 0) - ExplosionLarge.spawnBurst(worldObj, xCoord + 0.5, yCoord + 3.25, zCoord + 0.5, 18, 1); - - } else if(countdown > 600) { - ExplosionThermo.setEntitiesOnFire(worldObj, xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, 10); - } - - if(countdown == 1140) - worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, "hbm:block.shutdown", 10.0F, 1.0F); - - if(countdown > 1200) - explode(); - } - - } else { + if(canProcess()) { + progress += getSpeed(); + power -= getConsumption(); + + int convert = getCoolantConsumption(); + tanks[0].setFill(tanks[0].getFill() - convert); + tanks[1].setFill(tanks[1].getFill() + convert); + + if(progress >= duration) { + process(); progress = 0; + this.markDirty(); } - + } else { progress = 0; } - + this.sendFluid(); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("progress", progress); - data.setBoolean("isOn", isOn); - data.setByte("plugs", plugs); - this.networkPack(data, 25); - - coolant.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - amat.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + this.networkPackNT(25); } } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(progress); + buf.writeByte(plugs); + + for(int i = 0; i < 3; i++) + tanks[i].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + progress = buf.readInt(); + plugs = buf.readByte(); + + for(int i = 0; i < 3; i++) + tanks[i].deserialize(buf); + } + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - this.trySubscribe(coolant.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + private void sendFluid() { - for(DirPos pos : getConPos()) { - this.sendFluid(amat, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + for(int i = 1; i < 3; i++) { + if(tanks[i].getFill() > 0) { + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } } } - + public DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord + 3, yCoord, zCoord + 1, Library.POS_X), @@ -189,180 +153,95 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements new DirPos(xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z) }; } - - public void networkUnpack(NBTTagCompound data) { - this.isOn = data.getBoolean("isOn"); - this.power = data.getLong("power"); - this.progress = data.getInteger("progress"); - this.plugs = data.getByte("plugs"); - } - - public void handleButtonPacket(int value, int meta) { - - this.isOn = !this.isOn; - } - - private void explode() { - ExplosionLarge.explodeFire(worldObj, xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, 25, true, false, true); - - int rand = worldObj.rand.nextInt(10); - - if(rand < 2) { - - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)(BombConfig.fatmanRadius * 1.5), xCoord + 0.5, yCoord + 1.5, zCoord + 0.5).mute()); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 250)); - worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); - - } else if(rand < 4) { - - EntityBalefire bf = new EntityBalefire(worldObj).mute(); - bf.posX = xCoord + 0.5; - bf.posY = yCoord + 1.5; - bf.posZ = zCoord + 0.5; - bf.destructionRange = (int)(BombConfig.fatmanRadius * 1.5); - worldObj.spawnEntityInWorld(bf); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - data.setBoolean("balefire", true); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 250)); - worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); - - } else if(rand < 5) { - - EntityBlackHole bl = new EntityBlackHole(worldObj, 1.5F + worldObj.rand.nextFloat()); - bl.posX = xCoord + 0.5F; - bl.posY = yCoord + 1.5F; - bl.posZ = zCoord + 0.5F; - worldObj.spawnEntityInWorld(bl); - } - } - public boolean canProcess() { - + + if(power < getConsumption()) + return false; + + int convert = getCoolantConsumption(); + + if(tanks[0].getFill() < convert) + return false; + + if(tanks[1].getFill() + convert > tanks[1].getMaxFill()) + return false; + for(int i = 0; i < 3; i++) { - + Object[] res = CyclotronRecipes.getOutput(slots[i + 3], slots[i]); - + if(res == null) continue; - + ItemStack out = (ItemStack)res[0]; - + if(out == null) continue; - + if(slots[i + 6] == null) return true; - + if(slots[i + 6].getItem() == out.getItem() && slots[i + 6].getItemDamage() == out.getItemDamage() && slots[i + 6].stackSize < out.getMaxStackSize()) return true; } - + return false; } - + public void process() { - + for(int i = 0; i < 3; i++) { - + Object[] res = CyclotronRecipes.getOutput(slots[i + 3], slots[i]); - + if(res == null) continue; - + ItemStack out = (ItemStack)res[0]; - + if(out == null) continue; - + if(slots[i + 6] == null) { - + this.decrStackSize(i, 1); this.decrStackSize(i + 3, 1); slots[i + 6] = out; - - this.amat.setFill(this.amat.getFill() + (Integer)res[1]); - + + this.tanks[2].setFill(this.tanks[2].getFill() + (Integer)res[1]); + continue; } - + if(slots[i + 6].getItem() == out.getItem() && slots[i + 6].getItemDamage() == out.getItemDamage() && slots[i + 6].stackSize < out.getMaxStackSize()) { - + this.decrStackSize(i, 1); this.decrStackSize(i + 3, 1); slots[i + 6].stackSize++; - - this.amat.setFill(this.amat.getFill() + (Integer)res[1]); + + this.tanks[2].setFill(this.tanks[2].getFill() + (Integer)res[1]); } } - - if(this.amat.getFill() > this.amat.getMaxFill()) - this.amat.setFill(this.amat.getMaxFill()); + + if(this.tanks[2].getFill() > this.tanks[2].getMaxFill()) + this.tanks[2].setFill(this.tanks[2].getMaxFill()); } - + public int getSpeed() { - - int speed = 1; - - for(int i = 14; i < 16; i++) { - - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_speed_1) - speed += 1; - else if(slots[i].getItem() == ModItems.upgrade_speed_2) - speed += 2; - else if(slots[i].getItem() == ModItems.upgrade_speed_3) - speed += 3; - } - } - - return Math.min(speed, 4); + return upgradeManager.getLevel(UpgradeType.SPEED) + 1; } - + public int getConsumption() { - - int speed = 0; - - for(int i = 14; i < 16; i++) { - - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_power_1) - speed += 1; - else if(slots[i].getItem() == ModItems.upgrade_power_2) - speed += 2; - else if(slots[i].getItem() == ModItems.upgrade_power_3) - speed += 3; - } - } - - return Math.min(speed, 3); + int efficiency = upgradeManager.getLevel(UpgradeType.POWER); + + return consumption - 100_000 * efficiency; } - - public int getSafety() { - - int speed = 1; - - for(int i = 14; i < 16; i++) { - - if(slots[i] != null) { - - if(slots[i].getItem() == ModItems.upgrade_effect_1) - speed += 1; - else if(slots[i].getItem() == ModItems.upgrade_effect_2) - speed += 2; - else if(slots[i].getItem() == ModItems.upgrade_effect_3) - speed += 3; - } - } - - return Math.min(speed, 4); + + public int getCoolantConsumption() { + int efficiency = upgradeManager.getLevel(UpgradeType.EFFECT); + //half a small tower's worth + return 500 / (efficiency + 1) * getSpeed(); } public long getPowerScaled(long i) { @@ -373,148 +252,66 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements return (progress * i) / duration; } - @Override - public void setFillForSync(int fill, int index) { - - if(index == 0) - coolant.setFill(fill); - else if(index == 1) - amat.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.COOLANT) - coolant.setFill(fill); - else if(type == Fluids.AMAT) - amat.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index == 0) - coolant.setTankType(type); - else if(index == 1) - amat.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.COOLANT) - return coolant.getFill(); - else if(type == Fluids.AMAT) - return amat.getFill(); - - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(xCoord + 3, yCoord, zCoord + 1, getTact(), type); - fillFluid(xCoord + 3, yCoord, zCoord - 1, getTact(), type); - fillFluid(xCoord - 3, yCoord, zCoord + 1, getTact(), type); - fillFluid(xCoord - 3, yCoord, zCoord - 1, getTact(), type); - - fillFluid(xCoord + 1, yCoord, zCoord + 3, getTact(), type); - fillFluid(xCoord - 1, yCoord, zCoord + 3, getTact(), type); - fillFluid(xCoord + 1, yCoord, zCoord - 3, getTact(), type); - fillFluid(xCoord - 1, yCoord, zCoord - 3, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return age >= 0 && age < 10; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == Fluids.COOLANT) - return coolant.getMaxFill(); - - return 0; - } - @Override public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 4, zCoord + 3); } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - - coolant.readFromNBT(nbt, "coolant"); - amat.readFromNBT(nbt, "amat"); - - this.isOn = nbt.getBoolean("isOn"); - this.countdown = nbt.getInteger("countdown"); + + for(int i = 0; i < 3; i++) + tanks[i].readFromNBT(nbt, "t" + i); + this.progress = nbt.getInteger("progress"); this.power = nbt.getLong("power"); this.plugs = nbt.getByte("plugs"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - - coolant.writeToNBT(nbt, "coolant"); - amat.writeToNBT(nbt, "amat"); - - nbt.setBoolean("isOn", isOn); - nbt.setInteger("countdown", countdown); + + for(int i = 0; i < 3; i++) + tanks[i].writeToNBT(nbt, "t" + i); + nbt.setInteger("progress", progress); nbt.setLong("power", power); nbt.setByte("plugs", plugs); } - + public void setPlug(int index) { this.plugs |= (1 << index); this.markDirty(); } - + public boolean getPlug(int index) { return (this.plugs & (1 << index)) > 0; } - + public static Item getItemForPlug(int i) { - + switch(i) { case 0: return ModItems.powder_balefire; case 1: return ModItems.book_of_; case 2: return ModItems.diamond_gavel; case 3: return ModItems.coin_maskman; } - + return null; } @Override public void setInventorySlotContents(int i, ItemStack stack) { super.setInventorySlotContents(i, stack); - + if(stack != null && i >= 14 && i <= 15 && stack.getItem() instanceof ItemMachineUpgrade) worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.5F, 1.0F); } @@ -536,17 +333,17 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] { amat }; + return new FluidTank[] { tanks[1], tanks[2] }; } @Override public FluidTank[] getReceivingTanks() { - return new FluidTank[] { coolant }; + return new FluidTank[] { tanks[0] }; } @Override public FluidTank[] getAllTanks() { - return new FluidTank[] { amat, coolant }; + return tanks; } @Override @@ -556,7 +353,89 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineCyclotron(player.inventory, this); } + + @Override + public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack) { + + if(slot < 3) { + for(Entry, Pair> entry : CyclotronRecipes.recipes.entrySet()) { + if(entry.getKey().getKey().matchesRecipe(stack, true)) return true; + } + } else if(slot < 6) { + + for(Entry, Pair> entry : CyclotronRecipes.recipes.entrySet()) { + if(entry.getKey().getValue().matchesRecipe(stack, true)) return true; + } + } + + return false; + } + + @Override + public boolean canInsertItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return this.isItemValidForSlot(x, y, z, slot, stack); + } + + @Override + public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return slot >= 6 && slot <= 8; + } + + @Override + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) { + + for(int i = 2; i < 6; i++) { + ForgeDirection dir = ForgeDirection.getOrientation(i); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + if(x == xCoord + dir.offsetX * 2 + rot.offsetX && z == zCoord + dir.offsetZ * 2 + rot.offsetZ) return new int[] {0, 3, 6, 7, 8}; + if(x == xCoord + dir.offsetX * 2 && z == zCoord + dir.offsetZ * 2) return new int[] {1, 4, 6, 7, 8}; + if(x == xCoord + dir.offsetX * 2 - rot.offsetX && z == zCoord + dir.offsetZ * 2 - rot.offsetZ) return new int[] {2, 5, 6, 7, 8}; + } + + return new int[] {6, 7, 8}; + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.EFFECT; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_cyclotron)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_COOLANT_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 10) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_COOLANT_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.EFFECT, 3); + return upgrades; + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.progress > 0 ? getConsumption() : 0); + } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java index e71df5eab..b4d1a8d39 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java @@ -2,15 +2,15 @@ package com.hbm.tileentity.machine; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDetector extends TileEntityLoadedBase implements IEnergyUser { +public class TileEntityMachineDetector extends TileEntityLoadedBase implements IEnergyReceiverMK2 { long power; @Override - public void updateEntity() { + public void updateEntity() { if(!worldObj.isRemote) { @@ -52,4 +52,8 @@ public class TileEntityMachineDetector extends TileEntityLoadedBase implements I return 5; } + @Override + public ConnectionPriority getPriority() { + return ConnectionPriority.HIGH; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index dcb1f443a..808554c37 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -6,10 +6,6 @@ import java.util.HashMap; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerMachineDiesel; import com.hbm.inventory.fluid.FluidType; @@ -17,20 +13,23 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.gui.GUIMachineDiesel; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -38,7 +37,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDiesel extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider { +public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC, IFluidCopiable { public long power; public int soundCycle = 0; @@ -61,8 +60,8 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE private static final int[] slots_side = new int[] { 2 }; public TileEntityMachineDiesel() { - super(5); - tank = new FluidTank(Fluids.DIESEL, 4_000, 0); + super(5, 100); + tank = new FluidTank(Fluids.DIESEL, 4_000); } @Override @@ -113,7 +112,7 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE } } if(i == 2) { - if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == ((IBatteryItem) stack.getItem()).getMaxCharge()) { + if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == ((IBatteryItem) stack.getItem()).getMaxCharge(stack)) { return true; } } @@ -130,14 +129,15 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE if(!worldObj.isRemote) { - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } //Tank Management FluidType last = tank.getTankType(); if(tank.setType(3, 4, slots)) this.unsubscribeToAllAround(last, this); tank.loadTank(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.subscribeToAllAround(tank.getTankType(), this); @@ -152,19 +152,26 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE generate(); - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("power", (int) power); - data.setInteger("powerCap", (int) powerCap); - this.networkPack(data, 50); + this.networkPackNT(50); } } - - public void networkUnpack(NBTTagCompound data) { - power = data.getInteger("power"); - powerCap = data.getInteger("powerCap"); + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt((int) power); + buf.writeInt((int) powerCap); + tank.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readInt(); + this.powerCap = buf.readInt(); + tank.deserialize(buf); + } + public boolean hasAcceptableFuel() { return getHEFromFuel() > 0; } @@ -195,7 +202,7 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE if(!shutUp) { if (soundCycle == 0) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", 0.75F * this.getVolume(3), 0.5F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", this.getVolume(0.75F), 0.5F); } soundCycle++; } @@ -207,8 +214,9 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE if(tank.getFill() < 0) tank.setFill(0); - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 0.5F); - if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 0.5F); + if(worldObj.getTotalWorldTime() % 5 == 0) { + super.pollute(tank.getTankType(), FluidReleaseType.BURN, 5F); + } if(power + getHEFromFuel() <= powerCap) { power += getHEFromFuel(); @@ -234,32 +242,6 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE return this.maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; @@ -315,7 +297,21 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineDiesel(player.inventory, this); } + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + long he = getHEFromFuel(tank.getTankType()); + boolean active = tank.getFill() > 0 && he > 0; + data.setBoolean(CompatEnergyControl.B_ACTIVE, active); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, active ? 1D : 0D); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, he); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java new file mode 100644 index 000000000..22b99e917 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDrain.java @@ -0,0 +1,163 @@ +package com.hbm.tileentity.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.fluid.trait.FT_Polluting; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Amat; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFluidStandardReceiver, IBufPacketReceiver, IFluidCopiable { + + public FluidTank tank; + + public TileEntityMachineDrain() { + this.tank = new FluidTank(Fluids.NONE, 2_000); + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + networkPackNT(50); + + if(tank.getFill() > 0) { + if(tank.getTankType().hasTrait(FT_Amat.class)) { + worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10F, true, true); + return; + } + int toSpill = Math.max(tank.getFill() / 2, 1); + tank.setFill(tank.getFill() - toSpill); + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, toSpill); + + if(toSpill >= 100 && worldObj.rand.nextInt(20) == 0 && tank.getTankType().hasTrait(FT_Liquid.class) && tank.getTankType().hasTrait(FT_Viscous.class) && tank.getTankType().hasTrait(FT_Flammable.class)) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + Vec3 start = Vec3.createVectorHelper(xCoord + 0.5 - dir.offsetX * 3, yCoord + 0.5, zCoord + 0.5 - dir.offsetZ * 3); + Vec3 end = start.addVector(worldObj.rand.nextGaussian() * 5, -25, worldObj.rand.nextGaussian() * 5); + MovingObjectPosition mop = worldObj.func_147447_a(start, end, false, true, false); + + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK && mop.sideHit == 1) { + Block block = worldObj.getBlock(mop.blockX, mop.blockY + 1, mop.blockZ); + if(!block.getMaterial().isLiquid() && block.isReplaceable(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ) && ModBlocks.oil_spill.canPlaceBlockAt(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ)) { + worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.oil_spill); + } + } + } + } + + } else { + + if(tank.getFill() > 0 && MainRegistry.proxy.me().getDistance(xCoord, yCoord, zCoord) < 100) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + + NBTTagCompound data = new NBTTagCompound(); + if(tank.getTankType().hasTrait(FT_Gaseous.class)) { + data.setString("type", "tower"); + data.setFloat("lift", 0.5F); + data.setFloat("base", 0.375F); + data.setFloat("max", 3F); + data.setInteger("life", 100 + worldObj.rand.nextInt(50)); + } else { + data.setString("type", "splash"); + } + + data.setInteger("color", tank.getTankType().getColor()); + data.setDouble("posX", xCoord + 0.5 - dir.offsetX * 2.5); + data.setDouble("posZ", zCoord + 0.5 - dir.offsetZ * 2.5); + data.setDouble("posY", yCoord + 0.5); + + MainRegistry.proxy.effectNT(data); + } + } + } + + public DirPos[] getConPos() { + ForgeDirection dir0 = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection dir1 = dir0.getRotation(ForgeDirection.UP); + ForgeDirection dir2 = dir0.getRotation(ForgeDirection.DOWN); + return new DirPos[] { + new DirPos(xCoord + dir0.offsetX, yCoord, zCoord + dir0.offsetZ, dir0), + new DirPos(xCoord + dir1.offsetX, yCoord, zCoord + dir1.offsetZ, dir1), + new DirPos(xCoord + dir2.offsetX, yCoord, zCoord + dir2.offsetZ, dir2) + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + this.tank.writeToNBT(nbt, "t"); + } + + @Override public void serialize(ByteBuf buf) { tank.serialize(buf); } + @Override public void deserialize(ByteBuf buf) { tank.deserialize(buf); } + + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return dir != ForgeDirection.UP && dir != ForgeDirection.DOWN; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 1, + zCoord + 3 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public FluidTank getTankToPaste() { + return tank; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index 01ba0af31..0462f77f7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -1,6 +1,10 @@ package com.hbm.tileentity.machine; -import com.hbm.inventory.UpgradeManager; +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerMachineEPress; import com.hbm.inventory.gui.GUIMachineEPress; import com.hbm.inventory.recipes.PressRecipes; @@ -8,21 +12,27 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemStamp; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.I18nUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power = 0; public final static long maxPower = 50000; @@ -35,9 +45,11 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE public final static int maxPress = 200; boolean isRetracting = false; private int delay; - + public ItemStack syncStack; - + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineEPress() { super(5); } @@ -46,41 +58,41 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE public String getName() { return "container.epress"; } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); - + boolean canProcess = this.canProcess(); - + if((canProcess || this.isRetracting || this.delay > 0) && power >= 100) { - + power -= 100; - + if(delay <= 0) { - - UpgradeManager.eval(slots, 4, 4); - int speed = 1 + Math.min(3, UpgradeManager.getLevel(UpgradeType.SPEED)); - + + upgradeManager.checkSlots(this, slots, 4, 4); + int speed = 1 + upgradeManager.getLevel(UpgradeType.SPEED); + int stampSpeed = this.isRetracting ? 20 : 45; stampSpeed *= (1D + (double) speed / 4D); - + if(this.isRetracting) { this.press -= stampSpeed; - + if(this.press <= 0) { this.isRetracting = false; this.delay = 5 - speed + 1; } } else if(canProcess) { this.press += stampSpeed; - + if(this.press >= this.maxPress) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", getVolume(1.5F), 1.0F); ItemStack output = PressRecipes.getOutput(slots[2], slots[1]); if(slots[3] == null) { slots[3] = output.copy(); @@ -88,17 +100,17 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE slots[3].stackSize += output.stackSize; } this.decrStackSize(2, 1); - + if(slots[1].getMaxDamage() != 0) { slots[1].setItemDamage(slots[1].getItemDamage() + 1); if(slots[1].getItemDamage() >= slots[1].getMaxDamage()) { slots[1] = null; } } - + this.isRetracting = true; this.delay = 5 - speed + 1; - + this.markDirty(); } } else if(this.press > 0){ @@ -108,23 +120,14 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE delay--; } } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("press", press); - if(slots[2] != null) { - NBTTagCompound stack = new NBTTagCompound(); - slots[2].writeToNBT(stack); - data.setTag("stack", stack); - } - - this.networkPack(data, 50); - + + this.networkPackNT(50); + } else { - + // approach-based interpolation, GO! this.lastPress = this.renderPress; - + if(this.turnProgress > 0) { this.renderPress = this.renderPress + ((this.syncPress - this.renderPress) / (double) this.turnProgress); --this.turnProgress; @@ -133,50 +136,58 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE } } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.syncPress = nbt.getInteger("press"); - - if(nbt.hasKey("stack")) { - NBTTagCompound stack = nbt.getCompoundTag("stack"); - this.syncStack = ItemStack.loadItemStackFromNBT(stack); - } else { - this.syncStack = null; - } - + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(press); + if (slots[2] == null) + buf.writeShort(-1); // indicate that the NBT doesn't actually exist to avoid null pointer errors. + else + BufferUtil.writeNBT(buf, slots[2].stackTagCompound); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.syncPress = buf.readInt(); + + NBTTagCompound stack = BufferUtil.readNBT(buf); + this.syncStack = ItemStack.loadItemStackFromNBT(stack); + this.turnProgress = 2; } - + public boolean canProcess() { if(power < 100) return false; if(slots[1] == null || slots[2] == null) return false; - + ItemStack output = PressRecipes.getOutput(slots[2], slots[1]); - + if(output == null) return false; - + if(slots[3] == null) return true; if(slots[3].stackSize + output.stackSize <= slots[3].getMaxStackSize() && slots[3].getItem() == output.getItem() && slots[3].getItemDamage() == output.getItemDamage()) return true; return false; } - + private void updateConnections() { - + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - + if(stack.getItem() instanceof ItemStamp) return i == 1; - + return i == 2; } - + @Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] { 1, 2, 3 }; @@ -191,16 +202,16 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE public boolean canExtractItem(int i, ItemStack itemStack, int j) { return i == 3; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + press = nbt.getInteger("press"); power = nbt.getInteger("power"); isRetracting = nbt.getBoolean("ret"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -213,7 +224,7 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE @Override public void setPower(long i) { power = i; - + } @Override @@ -225,19 +236,19 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE public long getMaxPower() { return maxPower; } - + AxisAlignedBB aabb; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(aabb != null) return aabb; - + aabb = AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 3, zCoord + 1); return aabb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -251,7 +262,32 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineEPress(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_epress)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (50 * level / 3) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + return upgrades; + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setInteger(CompatEnergyControl.I_PROGRESS, this.press); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 53e8c3f74..3f8223d23 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -1,29 +1,38 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineElectricFurnace; -import com.hbm.inventory.UpgradeManager; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerElectricFurnace; import com.hbm.inventory.gui.GUIMachineElectricFurnace; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IGUIProvider { +public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider { // HOLY FUCKING SHIT I SPENT 5 DAYS ON THIS SHITFUCK CLASS FILE // thanks Martin, vaer and Bob for the help @@ -36,6 +45,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl private static final int[] slots_io = new int[] { 0, 1, 2 }; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineElectricFurnace() { super(4); } @@ -61,7 +72,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); } @@ -106,7 +117,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl } public boolean canProcess() { - + if(slots[1] == null || cooldown > 0) { return false; } @@ -159,7 +170,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl boolean markDirty = false; if(!worldObj.isRemote) { - + if(cooldown > 0) { cooldown--; } @@ -171,16 +182,16 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl this.consumption = 50; this.maxProgress = 100; - UpgradeManager.eval(slots, 3, 3); + upgradeManager.checkSlots(this, slots, 3, 3); - int speedLevel = UpgradeManager.getLevel(UpgradeType.SPEED); - int powerLevel = UpgradeManager.getLevel(UpgradeType.POWER); + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); maxProgress -= speedLevel * 25; consumption += speedLevel * 50; maxProgress += powerLevel * 10; consumption -= powerLevel * 15; - + if(!hasPower()) { cooldown = 20; } @@ -190,6 +201,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl power -= consumption; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + if(this.progress >= maxProgress) { this.progress = 0; this.processItem(); @@ -210,11 +223,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl MachineElectricFurnace.updateBlockState(this.progress > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setInteger("MaxProgress", this.maxProgress); - data.setInteger("progress", this.progress); - this.networkPack(data, 50); + this.networkPackNT(50); if(markDirty) { @@ -223,19 +232,28 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(maxProgress); + buf.writeInt(progress); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + maxProgress = buf.readInt(); + progress = buf.readInt(); + } + private void updateConnections() { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.maxProgress = nbt.getInteger("MaxProgress"); - this.progress = nbt.getInteger("progress"); - - } - @Override public void setPower(long i) { power = i; @@ -260,7 +278,33 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineElectricFurnace(player.inventory, this); } -} \ No newline at end of file + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electric_furnace_off)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + return upgrades; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 5ea2a2cbd..0892fa27b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -1,10 +1,7 @@ package com.hbm.tileentity.machine; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Random; +import java.util.*; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; @@ -12,7 +9,7 @@ import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.blocks.network.CraneInserter; import com.hbm.entity.item.EntityMovingItem; import com.hbm.interfaces.IControlReceiver; -import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerMachineExcavator; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -22,23 +19,28 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemDrillbit; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.items.special.ItemBedrockOreBase; import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Compat; import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.InventoryUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.conveyor.IConveyorBelt; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -50,22 +52,23 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable { public static final long maxPower = 1_000_000; public long power; public boolean operational = false; - + public boolean enableDrill = false; public boolean enableCrusher = false; public boolean enableWalling = false; public boolean enableVeinMiner = false; public boolean enableSilkTouch = false; - + protected int ticksWorked = 0; protected int targetDepth = 0; //0 is the first block below null position protected boolean bedrockDrilling = false; @@ -77,13 +80,15 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements public float crusherRotation = 0F; public float prevCrusherRotation = 0F; public int chuteTimer = 0; - + public double speed = 1.0D; public final long baseConsumption = 10_000L; public long consumption = baseConsumption; - + public FluidTank tank; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineExcavator() { super(14); this.tank = new FluidTank(Fluids.SULFURIC_ACID, 16_000); @@ -96,48 +101,48 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements @Override public void updateEntity() { - + //needs to happen on client too for GUI rendering - UpgradeManager.eval(slots, 2, 3); - int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - + upgradeManager.checkSlots(this, slots, 2, 3); + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); + consumption = baseConsumption * (1 + speedLevel); consumption /= (1 + powerLevel); - + if(!worldObj.isRemote) { - + this.tank.setType(1, slots); - + if(worldObj.getTotalWorldTime() % 20 == 0) { tryEjectBuffer(); - + for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + if(chuteTimer > 0) chuteTimer--; - + this.power = Library.chargeTEFromItems(slots, 0, this.getPower(), this.getMaxPower()); this.operational = false; - int radiusLevel = Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); - + int radiusLevel = upgradeManager.getLevel(UpgradeType.EFFECT); + EnumDrillType type = this.getInstalledDrill(); if(this.enableDrill && type != null && this.power >= this.getPowerConsumption()) { - + operational = true; this.power -= this.getPowerConsumption(); - + this.speed = type.speed; this.speed *= (1 + speedLevel / 2D); - + int maxDepth = this.yCoord - 4; if((bedrockDrilling || targetDepth <= maxDepth) && tryDrill(1 + radiusLevel * 2)) { targetDepth++; - + if(targetDepth > maxDepth) { this.enableDrill = false; } @@ -145,28 +150,17 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } else { this.targetDepth = 0; } - - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("d", enableDrill); - data.setBoolean("c", enableCrusher); - data.setBoolean("w", enableWalling); - data.setBoolean("v", enableVeinMiner); - data.setBoolean("s", enableSilkTouch); - data.setBoolean("o", operational); - data.setInteger("t", targetDepth); - data.setInteger("g", chuteTimer); - data.setLong("p", power); - tank.writeToNBT(data, "tank"); - this.networkPack(data, 150); - + + this.networkPackNT(150); + } else { - + this.prevDrillExtension = this.drillExtension; - + if(this.drillExtension != this.targetDepth) { float diff = Math.abs(this.drillExtension - this.targetDepth); float speed = Math.max(0.15F, diff / 10F); - + if(diff <= speed) { this.drillExtension = this.targetDepth; } else { @@ -177,31 +171,31 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements this.prevDrillRotation = this.drillRotation; this.prevCrusherRotation = this.crusherRotation; - + if(this.operational) { this.drillRotation += 15F; - + if(this.enableCrusher) { this.crusherRotation += 15F; } } - + if(this.drillRotation >= 360F) { this.drillRotation -= 360F; this.prevDrillRotation -= 360F; } - + if(this.crusherRotation >= 360F) { this.crusherRotation -= 360F; this.prevCrusherRotation -= 360F; } } } - + protected DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + return new DirPos[] { new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 4 + rot.offsetZ, dir), new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 4 - rot.offsetZ, dir), @@ -209,24 +203,41 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements new DirPos(xCoord - rot.offsetX * 4, yCoord + 1, zCoord - rot.offsetZ * 4, rot.getOpposite()) }; } - - public void networkUnpack(NBTTagCompound nbt) { - this.enableDrill = nbt.getBoolean("d"); - this.enableCrusher = nbt.getBoolean("c"); - this.enableWalling = nbt.getBoolean("w"); - this.enableVeinMiner = nbt.getBoolean("v"); - this.enableSilkTouch = nbt.getBoolean("s"); - this.operational = nbt.getBoolean("o"); - this.targetDepth = nbt.getInteger("t"); - this.chuteTimer = nbt.getInteger("g"); - this.power = nbt.getLong("p"); - this.tank.readFromNBT(nbt, "tank"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(enableDrill); + buf.writeBoolean(enableCrusher); + buf.writeBoolean(enableWalling); + buf.writeBoolean(enableVeinMiner); + buf.writeBoolean(enableSilkTouch); + buf.writeBoolean(operational); + buf.writeInt(targetDepth); + buf.writeInt(chuteTimer); + buf.writeLong(power); + tank.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + enableDrill = buf.readBoolean(); + enableCrusher = buf.readBoolean(); + enableWalling = buf.readBoolean(); + enableVeinMiner = buf.readBoolean(); + enableSilkTouch = buf.readBoolean(); + operational = buf.readBoolean(); + targetDepth = buf.readInt(); + chuteTimer = buf.readInt(); + power = buf.readLong(); + tank.deserialize(buf); + } + protected int getY() { return yCoord - targetDepth - 4; } - + /** Works outwards and tries to break a ring, returns true if all rings are broken (or ignorable) and the drill should extend. */ protected boolean tryDrill(int radius) { int y = getY(); @@ -234,47 +245,47 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements if(targetDepth == 0 || y == 0) { radius = 1; } - + for(int ring = 1; ring <= radius; ring++) { - + boolean ignoreAll = true; float combinedHardness = 0F; BlockPos bedrockOre = null; bedrockDrilling = false; - + for(int x = xCoord - ring; x <= xCoord + ring; x++) { for(int z = zCoord - ring; z <= zCoord + ring; z++) { - + /* Process blocks either if we are in the inner ring (1 = 3x3) or if the target block is on the outer edge */ if(ring == 1 || (x == xCoord - ring || x == xCoord + ring || z == zCoord - ring || z == zCoord + ring)) { - + Block b = worldObj.getBlock(x, y, z); - + if(b == ModBlocks.ore_bedrock) { - combinedHardness = 60 * 20; + combinedHardness = 5 * 60 * 20; bedrockOre = new BlockPos(x, y, z); bedrockDrilling = true; enableCrusher = false; ignoreAll = false; break; } - + if(shouldIgnoreBlock(b, x, y ,z)) continue; - + ignoreAll = false; - + combinedHardness += b.getBlockHardness(worldObj, x, y, z); } } } - + if(!ignoreAll) { ticksWorked++; - + int ticksToWork = (int) Math.ceil(combinedHardness / this.speed); - + if(ticksWorked >= ticksToWork) { - + if(bedrockOre == null) { breakBlocks(ring); buildWall(ring + 1, ring == radius && this.enableWalling); @@ -285,7 +296,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } ticksWorked = 0; } - + return false; } else { tryCollect(radius + 1); @@ -296,88 +307,92 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements ticksWorked = 0; return true; } - + protected void collectBedrock(BlockPos pos) { TileEntity oreTile = Compat.getTileStandard(worldObj, pos.getX(), pos.getY(), pos.getZ()); - + if(oreTile instanceof TileEntityBedrockOre) { TileEntityBedrockOre ore = (TileEntityBedrockOre) oreTile; - + if(ore.resource == null) return; if(ore.tier > this.getInstalledDrill().tier) return; if(ore.acidRequirement != null) { - + if(ore.acidRequirement.type != tank.getTankType() || ore.acidRequirement.fill > tank.getFill()) return; - + tank.setFill(tank.getFill() - ore.acidRequirement.fill); } - + ItemStack stack = ore.resource.copy(); List stacks = new ArrayList(); stacks.add(stack); + if(stack.getItem() == ModItems.bedrock_ore_base) { + ItemBedrockOreBase.setOreAmount(stack, pos.getX(), pos.getZ()); + } + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); int x = xCoord + dir.offsetX * 4; int y = yCoord - 3; int z = zCoord + dir.offsetZ * 4; - + /* try to insert into a valid container */ TileEntity tile = worldObj.getTileEntity(x, y, z); if(tile instanceof IInventory) { supplyContainer((IInventory) tile, stacks, dir.getOpposite()); } - + if(stack.stackSize <= 0) return; - + /* try to place on conveyor belt */ Block b = worldObj.getBlock(x, y, z); if(b instanceof IConveyorBelt) { supplyConveyor((IConveyorBelt) b, stacks, x, y, z); } - + if(stack.stackSize <= 0) return; - + for(int i = 5; i < 14; i++) { - + if(slots[i] != null && slots[i].stackSize < slots[i].getMaxStackSize() && stack.isItemEqual(slots[i]) && ItemStack.areItemStackTagsEqual(stack, slots[i])) { int toAdd = Math.min(slots[i].getMaxStackSize() - slots[i].stackSize, stack.stackSize); slots[i].stackSize += toAdd; stack.stackSize -= toAdd; - + chuteTimer = 40; - + if(stack.stackSize <= 0) { return; } } } - + /* add leftovers to empty slots */ for(int i = 5; i < 14; i++) { - + if(slots[i] == null) { - + chuteTimer = 40; - + slots[i] = stack.copy(); return; } } } } - + /** breaks and drops all blocks in the specified ring */ protected void breakBlocks(int ring) { int y = getY(); - + for(int x = xCoord - ring; x <= xCoord + ring; x++) { for(int z = zCoord - ring; z <= zCoord + ring; z++) { - + if(ring == 1 || (x == xCoord - ring || x == xCoord + ring || z == zCoord - ring || z == zCoord + ring)) { - + Block b = worldObj.getBlock(x, y, z); - + if(!this.shouldIgnoreBlock(b, x, y, z)) { tryMineAtLocation(x, y, z); } @@ -385,13 +400,13 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } } } - + public void tryMineAtLocation(int x ,int y, int z) { Block b = worldObj.getBlock(x, y, z); - + if(this.enableVeinMiner && this.getInstalledDrill().vein) { - + if(isOre(x, y, z, b)) { minX = x; minY = y; @@ -401,51 +416,51 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements maxZ = z; breakRecursively(x, y, z, 10); recursionBrake.clear(); - + /* move all excavated items to the last drillable position which is also within collection range */ List items = worldObj.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX + 1, maxY + 1, maxZ + 1)); for(EntityItem item : items) item.setPosition(x + 0.5, y + 0.5, z + 0.5); - + return; } } breakSingleBlock(b, x, y, z); } - + protected boolean isOre(int x ,int y, int z, Block b) { - + /* doing this isn't terribly accurate but just for figuring out if there's OD it works */ Item blockItem = Item.getItemFromBlock(b); - + if(blockItem != null) { List names = ItemStackUtil.getOreDictNames(new ItemStack(blockItem)); - + for(String name : names) { if(name.startsWith("ore")) { return true; } } } - + return false; } - + private HashSet recursionBrake = new HashSet(); private int minX = 0, minY = 0, minZ = 0, maxX = 0, maxY = 0, maxZ = 0; protected void breakRecursively(int x ,int y, int z, int depth) { - + if(depth < 0) return; BlockPos pos = new BlockPos(x, y, z); if(recursionBrake.contains(pos)) return; recursionBrake.add(pos); - + Block b = worldObj.getBlock(x, y, z); - + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { int ix = x + dir.offsetX; int iy = y + dir.offsetY; int iz = z + dir.offsetZ; - + if(worldObj.getBlock(ix, iy, iz) == b) { breakRecursively(ix, iy, iz, depth - 1); } @@ -459,36 +474,36 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements if(y > maxY) maxY = y; if(z < minZ) minZ = z; if(z > maxZ) maxZ = z; - + if(this.enableWalling) { worldObj.setBlock(x, y, z, ModBlocks.barricade); } } - + protected void breakSingleBlock(Block b, int x ,int y, int z) { - + List items = b.getDrops(worldObj, x, y, z, worldObj.getBlockMetadata(x, y, z), this.getFortuneLevel()); - + if(this.canSilkTouch()) { - + try { Method createStackedBlock = ReflectionHelper.findMethod(Block.class, b, new String[] {"createStackedBlock", "func_149644_j"}, int.class); ItemStack result = (ItemStack) createStackedBlock.invoke(b, worldObj.getBlockMetadata(x, y, z)); - + if(result != null) { items.clear(); items.add(result.copy()); } } catch(Exception ex) { } } - + if(this.enableCrusher) { - + List list = new ArrayList(); - + for(ItemStack stack : items) { ItemStack crushed = ShredderRecipes.getShredderResult(stack).copy(); - + if(crushed.getItem() == ModItems.scrap || crushed.getItem() == ModItems.dust) { list.add(stack); } else { @@ -496,36 +511,36 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements list.add(crushed); } } - + items = list; } - + if(b == ModBlocks.barricade) items.clear(); - + for(ItemStack item : items) { worldObj.spawnEntityInWorld(new EntityItem(worldObj, x + 0.5, y + 0.5, z + 0.5, item)); } - + worldObj.func_147480_a(x, y, z, false); } - + /** builds a wall along the specified ring, replacing fluid blocks. if wallEverything is set, it will also wall off replacable blocks like air or grass */ protected void buildWall(int ring, boolean wallEverything) { int y = getY(); - + for(int x = xCoord - ring; x <= xCoord + ring; x++) { for(int z = zCoord - ring; z <= zCoord + ring; z++) { - + Block b = worldObj.getBlock(x, y, z); - + if(x == xCoord - ring || x == xCoord + ring || z == zCoord - ring || z == zCoord + ring) { - + if(b.isReplaceable(worldObj, x, y, z) && (wallEverything || b.getMaterial().isLiquid())) { worldObj.setBlock(x, y, z, ModBlocks.barricade); } } else { - + if(b.getMaterial().isLiquid()) { worldObj.setBlockToAir(x, y, z); continue; @@ -536,14 +551,14 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } protected void mineOuterOres(int ring) { int y = getY(); - + for(int x = xCoord - ring; x <= xCoord + ring; x++) { for(int z = zCoord - ring; z <= zCoord + ring; z++) { - + if(ring == 1 || (x == xCoord - ring || x == xCoord + ring || z == zCoord - ring || z == zCoord + ring)) { - + Block b = worldObj.getBlock(x, y, z); - + if(!this.shouldIgnoreBlock(b, x, y, z) && this.isOre(x, y, z, b)) { tryMineAtLocation(x, y, z); } @@ -551,7 +566,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } } } - + protected void tryEjectBuffer() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); @@ -559,32 +574,32 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements int x = xCoord + dir.offsetX * 4; int y = yCoord - 3; int z = zCoord + dir.offsetZ * 4; - + List items = new ArrayList(); for(int i = 5; i < 14; i++) { ItemStack stack = slots[i]; - + if(stack != null) { items.add(stack.copy()); } } - + TileEntity tile = worldObj.getTileEntity(x, y, z); if(tile instanceof IInventory) { supplyContainer((IInventory) tile, items, dir.getOpposite()); } - + Block b = worldObj.getBlock(x, y, z); if(b instanceof IConveyorBelt) { supplyConveyor((IConveyorBelt) b, items, x, y, z); } - + items.removeIf(i -> i == null || i.stackSize <= 0); for(int i = 5; i < 14; i++) { int index = i - 5; - + if(items.size() > index) { slots[i] = items.get(index).copy(); } else { @@ -592,66 +607,66 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } } } - + /** pulls up an AABB around the drillbit and tries to either conveyor output or buffer collected items */ protected void tryCollect(int radius) { int yLevel = getY(); - + List items = worldObj.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(xCoord - radius, yLevel - 1, zCoord - radius, xCoord + radius + 1, yLevel + 2, zCoord + radius + 1)); - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); int x = xCoord + dir.offsetX * 4; int y = yCoord - 3; int z = zCoord + dir.offsetZ * 4; - + List stacks = new ArrayList(); items.forEach(i -> stacks.add(i.getEntityItem())); - + /* try to insert into a valid container */ TileEntity tile = worldObj.getTileEntity(x, y, z); if(tile instanceof IInventory) { supplyContainer((IInventory) tile, stacks, dir.getOpposite()); } - + /* try to place on conveyor belt */ Block b = worldObj.getBlock(x, y, z); if(b instanceof IConveyorBelt) { supplyConveyor((IConveyorBelt) b, stacks, x, y, z); } - + items.removeIf(i -> i.isDead || i.getEntityItem().stackSize <= 0); - + /* collect remaining items in internal buffer */ outer: for(EntityItem item : items) { - + ItemStack stack = item.getEntityItem(); - + /* adding items to existing stacks */ for(int i = 5; i < 14; i++) { - + if(slots[i] != null && slots[i].stackSize < slots[i].getMaxStackSize() && stack.isItemEqual(slots[i]) && ItemStack.areItemStackTagsEqual(stack, slots[i])) { int toAdd = Math.min(slots[i].getMaxStackSize() - slots[i].stackSize, stack.stackSize); slots[i].stackSize += toAdd; stack.stackSize -= toAdd; - + chuteTimer = 40; - + if(stack.stackSize <= 0) { item.setDead(); continue outer; } } } - + /* add leftovers to empty slots */ for(int i = 5; i < 14; i++) { - + if(slots[i] == null) { - + chuteTimer = 40; - + slots[i] = stack.copy(); item.setDead(); break; @@ -659,60 +674,60 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } } } - + /** places all items into a connected container, if possible */ protected void supplyContainer(IInventory inv, List items, ForgeDirection dir) { - + int side = dir.ordinal(); int[] access = null; - + if(inv instanceof ISidedInventory) { ISidedInventory sided = (ISidedInventory) inv; - access = CraneInserter.masquerade(sided, dir.ordinal()); + access = InventoryUtil.masquerade(sided, dir.ordinal()); } - + for(ItemStack item : items) { - + if(item.stackSize <= 0) continue; - + CraneInserter.addToInventory(inv, access, item, side); chuteTimer = 40; } } - + /** moves all items onto a connected conveyor belt */ protected void supplyConveyor(IConveyorBelt belt, List items, int x, int y, int z) { - + Random rand = worldObj.rand; - + for(ItemStack item : items) { - + if(item.stackSize <= 0) continue; - + Vec3 base = Vec3.createVectorHelper(x + rand.nextDouble(), y + 0.5, z + rand.nextDouble()); Vec3 vec = belt.getClosestSnappingPosition(worldObj, x, y, z, base); - + EntityMovingItem moving = new EntityMovingItem(worldObj); moving.setPosition(base.xCoord, vec.yCoord, base.zCoord); moving.setItemStack(item.copy()); worldObj.spawnEntityInWorld(moving); item.stackSize = 0; - + chuteTimer = 40; } } - + public long getPowerConsumption() { return consumption; } - + public int getFortuneLevel() { EnumDrillType type = getInstalledDrill(); - + if(type != null) return type.fortune; return 0; } - + public boolean shouldIgnoreBlock(Block block, int x, int y, int z) { return block.isAir(worldObj, x, y, z) || block.getMaterial() == ModBlocks.materialGas || block.getBlockHardness(worldObj, x, y, z) < 0 || block.getMaterial().isLiquid() || block == Blocks.bedrock; } @@ -724,32 +739,32 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements if(data.hasKey("walling")) this.enableWalling = !this.enableWalling; if(data.hasKey("veinminer")) this.enableVeinMiner = !this.enableVeinMiner; if(data.hasKey("silktouch")) this.enableSilkTouch = !this.enableSilkTouch; - + this.markChanged(); } - + public EnumDrillType getInstalledDrill() { if(slots[4] != null && slots[4].getItem() instanceof ItemDrillbit) { return EnumUtil.grabEnumSafely(EnumDrillType.class, slots[4].getItemDamage()); } - + return null; } - + public boolean canVeinMine() { EnumDrillType type = getInstalledDrill(); return this.enableVeinMiner && type != null && type.vein; } - + public boolean canSilkTouch() { EnumDrillType type = getInstalledDrill(); return this.enableSilkTouch && type != null && type.silk; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + this.enableDrill = nbt.getBoolean("d"); this.enableCrusher = nbt.getBoolean("c"); this.enableWalling = nbt.getBoolean("w"); @@ -759,11 +774,11 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements this.power = nbt.getLong("p"); this.tank.readFromNBT(nbt, "tank"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setBoolean("d", enableDrill); nbt.setBoolean("c", enableCrusher); nbt.setBoolean("w", enableWalling); @@ -786,15 +801,15 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineExcavator(player.inventory, this); } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 3, @@ -805,10 +820,10 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements zCoord + 4 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -839,4 +854,35 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_excavator)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 200 / (level + 2)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.EFFECT, 3); + return upgrades; + } + + @Override + public FluidTank getTankToPaste() { + return tank; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java new file mode 100644 index 000000000..77ac2635a --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -0,0 +1,350 @@ +package com.hbm.tileentity.machine; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.container.ContainerMachineExposureChamber; +import com.hbm.inventory.gui.GUIMachineExposureChamber; +import com.hbm.inventory.recipes.ExposureChamberRecipes; +import com.hbm.inventory.recipes.ExposureChamberRecipes.ExposureChamberRecipe; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider, IEnergyReceiverMK2, IUpgradeInfoProvider { + + public long power; + public static final long maxPower = 1_000_000; + + public int progress; + public static final int processTimeBase = 200; + public int processTime = processTimeBase; + public static final int consumptionBase = 10_000; + public int consumption = consumptionBase; + public int savedParticles; + public static final int maxParticles = 8; + public boolean isOn = false; + public float rotation; + public float prevRotation; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.progress = nbt.getInteger("progress"); + this.power = nbt.getLong("power"); + this.savedParticles = nbt.getInteger("savedParticles"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("progress", progress); + nbt.setLong("power", power); + nbt.setInteger("savedParticles", savedParticles); + } + + public TileEntityMachineExposureChamber() { + /* + * 0: Particle + * 1: Particle internal + * 2: Particle container + * 3: Ingredient + * 4: Output + * 5: Battery + * 6-7: Upgrades + */ + super(8); + } + + @Override + public String getName() { + return "container.exposureChamber"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.isOn = false; + this.power = Library.chargeTEFromItems(slots, 5, power, maxPower); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + upgradeManager.checkSlots(this, slots, 6, 7); + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); + int overdriveLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + + this.consumption = this.consumptionBase; + + this.processTime = this.processTimeBase - this.processTimeBase / 4 * speedLevel; + this.consumption *= (speedLevel / 2 + 1); + this.processTime *= (powerLevel / 2 + 1); + this.consumption /= (powerLevel + 1); + this.processTime /= (overdriveLevel + 1); + this.consumption *= (overdriveLevel * 2 + 1); + + if(slots[1] == null && slots[0] != null && slots[3] != null && this.savedParticles <= 0) { + ExposureChamberRecipe recipe = this.getRecipe(slots[0], slots[3]); + + if(recipe != null) { + + ItemStack container = slots[0].getItem().getContainerItem(slots[0]); + + boolean canStore = false; + + if(container == null) { + canStore = true; + } else if(slots[2] == null) { + slots[2] = container.copy(); + canStore = true; + } else if(slots[2].getItem() == container.getItem() && slots[2].getItemDamage() == container.getItemDamage() && slots[2].stackSize < slots[2].getMaxStackSize()) { + slots[2].stackSize++; + canStore = true; + } + + if(canStore) { + slots[1] = slots[0].copy(); + slots[1].stackSize = 0; + this.decrStackSize(0, 1); + this.savedParticles = this.maxParticles; + } + } + } + + if(slots[1] != null && this.savedParticles > 0 && this.power >= this.consumption) { + ExposureChamberRecipe recipe = this.getRecipe(slots[1], slots[3]); + + if(recipe != null && (slots[4] == null || (slots[4].getItem() == recipe.output.getItem() && slots[4].getItemDamage() == recipe.output.getItemDamage() && slots[4].stackSize + recipe.output.stackSize <= slots[4].getMaxStackSize()))) { + this.progress++; + this.power -= this.consumption; + this.isOn = true; + + if(this.progress >= this.processTime) { + this.progress = 0; + this.savedParticles--; + this.decrStackSize(3, 1); + + if(slots[4] == null) { + slots[4] = recipe.output.copy(); + } else { + slots[4].stackSize += recipe.output.stackSize; + } + } + + } else { + this.progress = 0; + } + } else { + this.progress = 0; + } + + if(this.savedParticles <= 0) { + slots[1] = null; + } + + this.networkPackNT(50); + } else { + + this.prevRotation = this.rotation; + + if(this.isOn) { + + this.rotation += 10D; + + if(this.rotation >= 720D) { + this.rotation -= 720D; + this.prevRotation -= 720D; + } + } + } + } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP).getOpposite(); + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 7 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 7 + dir.offsetZ * 2, dir), + new DirPos(xCoord + rot.offsetX * 7 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 7 - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 8 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 8 + dir.offsetZ * 2, dir), + new DirPos(xCoord + rot.offsetX * 8 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 8 - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 9, yCoord, zCoord + rot.offsetZ * 9, rot) + }; + } + + public ExposureChamberRecipe getRecipe(ItemStack particle, ItemStack ingredient) { + return ExposureChamberRecipes.getRecipe(particle, ingredient); + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + + //will only load new capsules if there's no cached particles, this should prevent clogging + + //accept items when the slots are already partially filled, i.e. applicable + if(i == 0 && slots[0] != null) return true; + if(i == 3 && slots[3] != null) return true; + + //if there's no particle stored, use the un-consumed capsule for reference + ItemStack particle = slots[1] != null ? slots[1] : slots[0]; + + //if no particle is loaded and an ingot is present + if(i == 0 && particle == null && slots[3] != null) { + ExposureChamberRecipe recipe = getRecipe(stack, slots[3]); + return recipe != null; + } + + //if a particle is loaded but no ingot present + if(i == 3 && particle != null && slots[3] == null) { + ExposureChamberRecipe recipe = getRecipe(slots[0], stack); + return recipe != null; + } + + //if there's nothing at all, find a reference recipe and see if the item matches anything + if(particle == null && slots[3] == null) { + + for(ExposureChamberRecipe recipe : ExposureChamberRecipes.recipes) { + if(i == 0 && recipe.particle.matchesRecipe(stack, true)) return true; + if(i == 3 && recipe.ingredient.matchesRecipe(stack, true)) return true; + } + } + + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i == 2 || i == 4; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] {0, 2, 3, 4}; + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.isOn); + buf.writeInt(this.progress); + buf.writeInt(this.processTime); + buf.writeInt(this.consumption); + buf.writeLong(this.power); + buf.writeByte((byte) this.savedParticles); + } + + @Override + public void deserialize(ByteBuf buf) { + this.isOn = buf.readBoolean(); + this.progress = buf.readInt(); + this.processTime = buf.readInt(); + this.consumption = buf.readInt(); + this.power = buf.readLong(); + this.savedParticles = buf.readByte(); + } + + @Override + public long getPower() { + return power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 8, + yCoord, + zCoord - 8, + xCoord + 9, + yCoord + 5, + zCoord + 9 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineExposureChamber(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineExposureChamber(player.inventory, this); + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_exposure_chamber)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 50) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 50) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); + return upgrades; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java new file mode 100644 index 000000000..7243f1802 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java @@ -0,0 +1,179 @@ +package com.hbm.tileentity.machine; + +import java.util.HashMap; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.container.ContainerFunnel; +import com.hbm.inventory.gui.GUIFunnel; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.machine.TileEntityMachineAutocrafter.InventoryCraftingAuto; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class TileEntityMachineFunnel extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { + + public int mode = 0; + public static final int MODE_ALL = 0; + public static final int MODE_3x3 = 1; + public static final int MODE_2x2 = 2; + + public TileEntityMachineFunnel() { + super(18); + } + + @Override + public String getName() { + return "container.machineFunnel"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + for(int i = 0; i < 9; i++) { + + if(slots[i] != null) { + int stacksize = 9; + ItemStack compressed = (mode == MODE_2x2 || slots[i].stackSize < 9) ? null : this.getFrom9(slots[i]); + if(compressed == null) { + compressed = (mode == MODE_3x3 || slots[i].stackSize < 4) ? null : this.getFrom4(slots[i]); + stacksize = 4; + } + + if(compressed != null && slots[i].stackSize >= stacksize) { + if(slots[i + 9] == null) { + slots[i + 9] = compressed.copy(); + this.decrStackSize(i, stacksize); + } else if(slots[i + 9].getItem() == compressed.getItem() && slots[i + 9].getItemDamage() == compressed.getItemDamage() && slots[i + 9].stackSize + compressed.stackSize <= compressed.getMaxStackSize()) { + slots[i + 9].stackSize += compressed.stackSize; + this.decrStackSize(i, stacksize); + } + } + } + } + + this.networkPackNT(15); + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.mode); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.mode = buf.readInt(); + } + + public int[] topAccess = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; + public int[] bottomAccess = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return side == 0 ? bottomAccess : topAccess; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + if(j == 0) return i > 8; + return j != 1 && i < 9; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot > 8) return false; + if(slots[slot] != null) return true; //if the slot is already occupied, return true because then the same type merging skips the validity check + return this.getFrom9(stack) != null || this.getFrom4(stack) != null; + } + + protected InventoryCraftingAuto craftingInventory = new InventoryCraftingAuto(3, 3); + + //hashmap lookups are way faster than iterating over the entire ass crafting list all the fucking time + public static final HashMap from4Cache = new HashMap(); + public static final HashMap from9Cache = new HashMap(); + + public ItemStack getFrom4(ItemStack ingredient) { + ComparableStack singular = new ComparableStack(ingredient).makeSingular(); + if(from4Cache.containsKey(singular)) return from4Cache.get(singular); + this.craftingInventory.clear(); + this.craftingInventory.setInventorySlotContents(0, ingredient.copy()); + this.craftingInventory.setInventorySlotContents(1, ingredient.copy()); + this.craftingInventory.setInventorySlotContents(3, ingredient.copy()); + this.craftingInventory.setInventorySlotContents(4, ingredient.copy()); + ItemStack match = getMatch(this.craftingInventory); + from4Cache.put(singular, match != null ? match.copy() : null); + return match; + } + + public ItemStack getFrom9(ItemStack ingredient) { + ComparableStack singular = new ComparableStack(ingredient).makeSingular(); + if(from9Cache.containsKey(singular)) return from9Cache.get(singular); + this.craftingInventory.clear(); + for(int i = 0; i < 9; i++) this.craftingInventory.setInventorySlotContents(i, ingredient.copy()); + ItemStack match = getMatch(this.craftingInventory); + from9Cache.put(singular, match != null ? match.copy() : null); + return match; + } + + public ItemStack getMatch(InventoryCrafting grid) { + for(Object o : CraftingManager.getInstance().getRecipeList()) { + IRecipe recipe = (IRecipe) o; + + if(recipe.matches(grid, worldObj)) { + return recipe.getCraftingResult(grid); + } + } + return null; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.mode = nbt.getInteger("mode"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("mode", mode); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerFunnel(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIFunnel(player.inventory, this); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + this.mode++; + if(mode > 2) mode = 0; + this.markDirty(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index ac797a691..62e76ae0e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -1,96 +1,92 @@ package com.hbm.tileentity.machine; -import java.util.HashMap; - import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerMachineGasCent; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineGasCent; +import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType; import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.lib.Library; -import com.hbm.packet.LoopedSoundPacket; -import com.hbm.packet.PacketDispatcher; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; //epic! -public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { - +public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { + public long power; public int progress; public boolean isProgressing; public static final int maxPower = 100000; public static final int processingSpeed = 150; - + public FluidTank tank; public PseudoFluidTank inputTank; public PseudoFluidTank outputTank; - + + private int audioDuration = 0; + private AudioWrapper audio; + private static final int[] slots_io = new int[] { 0, 1, 2, 3 }; - - private static HashMap fluidConversions = new HashMap(); - - static { - fluidConversions.put(Fluids.UF6, PseudoFluidType.NUF6); - fluidConversions.put(Fluids.PUF6, PseudoFluidType.PF6); - fluidConversions.put(Fluids.WATZ, PseudoFluidType.MUD); - } - + public TileEntityMachineGasCent() { - super(7); - tank = new FluidTank(Fluids.UF6, 2000, 0); + super(7); + tank = new FluidTank(Fluids.UF6, 2000); inputTank = new PseudoFluidTank(PseudoFluidType.NUF6, 8000); outputTank = new PseudoFluidTank(PseudoFluidType.LEUF6, 8000); } - + @Override public String getName() { return "container.gasCentrifuge"; } - + @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { return i < 4; } - + @Override public int[] getAccessibleSlotsFromSide(int side) { return slots_io; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + power = nbt.getLong("power"); progress = nbt.getShort("progress"); tank.readFromNBT(nbt, "tank"); inputTank.readFromNBT(nbt, "inputTank"); outputTank.readFromNBT(nbt, "outputTank"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -100,138 +96,127 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I inputTank.writeToNBT(nbt, "inputTank"); outputTank.writeToNBT(nbt, "outputTank"); } - + public int getCentrifugeProgressScaled(int i) { return (progress * i) / getProcessingSpeed(); } - + public long getPowerRemainingScaled(int i) { return (power * i) / maxPower; } - + private boolean canEnrich() { if(power > 0 && this.inputTank.getFill() >= inputTank.getTankType().getFluidConsumed() && this.outputTank.getFill() + this.inputTank.getTankType().getFluidProduced() <= outputTank.getMaxFill()) { - + ItemStack[] list = inputTank.getTankType().getOutput(); - + if(this.inputTank.getTankType().getIfHighSpeed()) if(!(slots[6] != null && slots[6].getItem() == ModItems.upgrade_gc_speed)) return false; - + if(list == null) return false; - + if(list.length < 1) return false; - + if(InventoryUtil.doesArrayHaveSpace(slots, 0, 3, list)) return true; } - + return false; } - + private void enrich() { ItemStack[] output = inputTank.getTankType().getOutput(); - + this.progress = 0; - inputTank.setFill(inputTank.getFill() - inputTank.getTankType().getFluidConsumed()); - outputTank.setFill(outputTank.getFill() + inputTank.getTankType().getFluidProduced()); - + inputTank.setFill(inputTank.getFill() - inputTank.getTankType().getFluidConsumed()); + outputTank.setFill(outputTank.getFill() + inputTank.getTankType().getFluidProduced()); + for(byte i = 0; i < output.length; i++) InventoryUtil.tryAddItemToInventory(slots, 0, 3, output[i].copy()); //reference types almost got me again } - + private void attemptConversion() { if(inputTank.getFill() < inputTank.getMaxFill() && tank.getFill() > 0) { int fill = Math.min(inputTank.getMaxFill() - inputTank.getFill(), tank.getFill()); - + tank.setFill(tank.getFill() - fill); inputTank.setFill(inputTank.getFill() + fill); } } - + private boolean attemptTransfer(TileEntity te) { if(te instanceof TileEntityMachineGasCent) { TileEntityMachineGasCent cent = (TileEntityMachineGasCent) te; - + if(cent.tank.getFill() == 0 && cent.tank.getTankType() == tank.getTankType()) { if(cent.inputTank.getTankType() != outputTank.getTankType() && outputTank.getTankType() != PseudoFluidType.NONE) { cent.inputTank.setTankType(outputTank.getTankType()); cent.outputTank.setTankType(outputTank.getTankType().getOutputType()); } - + //God, why did I forget about the entirety of the fucking math library? if(cent.inputTank.getFill() < cent.inputTank.getMaxFill() && outputTank.getFill() > 0) { int fill = Math.min(cent.inputTank.getMaxFill() - cent.inputTank.getFill(), outputTank.getFill()); - + outputTank.setFill(outputTank.getFill() - fill); cent.inputTank.setFill(cent.inputTank.getFill() + fill); } - + return true; } } - + return false; } - - public void networkUnpack(NBTTagCompound data) { - this.power = data.getLong("power"); - this.progress = data.getInteger("progress"); - this.isProgressing = data.getBoolean("isProgressing"); - this.inputTank.setTankType(PseudoFluidType.valueOf(data.getString("inputType"))); - this.outputTank.setTankType(PseudoFluidType.valueOf(data.getString("outputType"))); - this.inputTank.setFill(data.getInteger("inputFill")); - this.outputTank.setFill(data.getInteger("outputFill")); - } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + updateConnections(); power = Library.chargeTEFromItems(slots, 4, power, maxPower); setTankType(5); - tank.updateTank(this); - - if(fluidConversions.containsValue(inputTank.getTankType())) { + + if(GasCentrifugeRecipes.fluidConversions.containsValue(inputTank.getTankType())) { attemptConversion(); } - + if(canEnrich()) { - + isProgressing = true; this.progress++; - + if(slots[6] != null && slots[6].getItem() == ModItems.upgrade_gc_speed) this.power -= 300; else this.power -= 200; - + if(this.power < 0) { power = 0; this.progress = 0; } - + if(progress >= getProcessingSpeed()) enrich(); - + } else { isProgressing = false; this.progress = 0; } - + if(worldObj.getTotalWorldTime() % 10 == 0) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); TileEntity te = worldObj.getTileEntity(this.xCoord - dir.offsetX, this.yCoord, this.zCoord - dir.offsetZ); - + //*AT THE MOMENT*, there's not really any need for a dedicated method for this. Yet. if(!attemptTransfer(te) && this.inputTank.getTankType() == PseudoFluidType.LEUF6) { ItemStack[] converted = new ItemStack[] { new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite) }; - + if(this.outputTank.getFill() >= 600 && InventoryUtil.doesArrayHaveSpace(slots, 0, 3, converted)) { this.outputTank.setFill(this.outputTank.getFill() - 600); for(ItemStack stack : converted) @@ -239,31 +224,86 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } } } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("progress", progress); - data.setBoolean("isProgressing", isProgressing); - data.setInteger("inputFill", inputTank.getFill()); - data.setInteger("outputFill", outputTank.getFill()); - data.setString("inputType", inputTank.getTankType().toString()); - data.setString("outputType", outputTank.getTankType().toString()); - this.networkPack(data, 50); - PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + this.networkPackNT(50); + + } else { + + if(isProgressing) { + audioDuration += 2; + } else { + audioDuration -= 3; + } + + audioDuration = MathHelper.clamp_int(audioDuration, 0, 60); + + if(audioDuration > 10) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.updateVolume(getVolume(1F)); + audio.updatePitch((audioDuration - 10) / 100F + 0.5F); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } } } - + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.centrifugeOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(progress); + buf.writeBoolean(isProgressing); + //pseudofluids can be refactored another day + buf.writeInt(inputTank.getFill()); + buf.writeInt(outputTank.getFill()); + BufferUtil.writeString(buf, inputTank.getTankType().name); //cough cough + BufferUtil.writeString(buf, outputTank.getTankType().name); + + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + progress = buf.readInt(); + isProgressing = buf.readBoolean(); + + inputTank.setFill(buf.readInt()); + outputTank.setFill(buf.readInt()); + inputTank.setTankType(PseudoFluidType.types.get(BufferUtil.readString(buf))); + outputTank.setTankType(PseudoFluidType.types.get(BufferUtil.readString(buf))); + + tank.deserialize(buf); + } + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - - if(fluidConversions.containsValue(inputTank.getTankType())) { + + if(GasCentrifugeRecipes.fluidConversions.containsValue(inputTank.getTankType())) { this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } } - + private DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), @@ -282,66 +322,40 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I @Override public long getPower() { return power; - + } @Override public long getMaxPower() { return maxPower; } - + public int getProcessingSpeed() { if(slots[6] != null && slots[6].getItem() == ModItems.upgrade_gc_speed) { return processingSpeed - 70; } return processingSpeed; } - + public void setTankType(int in) { - + if(slots[in] != null && slots[in].getItem() instanceof IItemFluidIdentifier) { IItemFluidIdentifier id = (IItemFluidIdentifier) slots[in].getItem(); - FluidType newType = id.getType(null, 0, 0, 0, slots[in]); - + FluidType newType = id.getType(worldObj, xCoord, yCoord, zCoord, slots[in]); + if(tank.getTankType() != newType) { - PseudoFluidType pseudo = fluidConversions.get(newType); - + PseudoFluidType pseudo = GasCentrifugeRecipes.fluidConversions.get(newType); + if(pseudo != null) { inputTank.setTankType(pseudo); outputTank.setTankType(pseudo.getOutputType()); tank.setTankType(newType); } } - + } } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public int getFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getMaxFill() : 0; - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; @@ -351,80 +365,80 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public FluidTank[] getAllTanks() { return new FluidTank[] { tank }; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 5, zCoord + 1); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } - + public class PseudoFluidTank { PseudoFluidType type; int fluid; int maxFluid; - + public PseudoFluidTank(PseudoFluidType type, int maxFluid) { this.type = type; this.maxFluid = maxFluid; } - + public void setFill(int i) { fluid = i; } - + public void setTankType(PseudoFluidType type) { - + if(this.type.equals(type)) return; - + if(type == null) this.type = PseudoFluidType.NONE; else this.type = type; - + this.setFill(0); } - + public PseudoFluidType getTankType() { return type; } - + public int getFill() { return fluid; } - + public int getMaxFill() { return maxFluid; } - + //Called by TE to save fillstate public void writeToNBT(NBTTagCompound nbt, String s) { nbt.setInteger(s, fluid); nbt.setInteger(s + "_max", maxFluid); - nbt.setString(s + "_type", type.toString()); + nbt.setString(s + "_type", type.name); } - + //Called by TE to load fillstate public void readFromNBT(NBTTagCompound nbt, String s) { fluid = nbt.getInteger(s); int max = nbt.getInteger(s + "_max"); - if(max > 0) - maxFluid = nbt.getInteger(s + "_max"); - type = PseudoFluidType.valueOf(nbt.getString(s + "_type")); + if(max > 0) maxFluid = nbt.getInteger(s + "_max"); + type = PseudoFluidType.types.get(nbt.getString(s + "_type")); + if(type == null) type = PseudoFluidType.NONE; } - + /* ______ ______ * _I____I_ _I____I_ * / \\\ / \\\ @@ -482,7 +496,13 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineGasCent(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setInteger(CompatEnergyControl.I_PROGRESS, this.progress); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java index f629c577b..3453ef320 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java @@ -8,25 +8,30 @@ import com.hbm.inventory.fluid.trait.FT_Heatable; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.lib.Library; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver { +public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver, IFluidCopiable { public FluidTank input; public FluidTank output; public int bufferedHeat; - + public float rot; public float prevRot; @@ -34,27 +39,35 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements this.input = new FluidTank(Fluids.OIL, 24_000); this.output = new FluidTank(Fluids.HOTOIL, 24_000); } - + private int[] heat = new int[10]; private long fissureScanTime; - + + private AudioWrapper audio; + + ByteBuf buf; + @Override public void updateEntity() { if(!worldObj.isRemote) { - + + if(this.buf != null) + this.buf.release(); + this.buf = Unpooled.buffer(); + setupTanks(); - + if(worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); } - + int height = (int) (worldObj.getTotalWorldTime() % 10); int range = 7; int y = yCoord - 1 - height; - + heat[height] = 0; - + if(y >= 0) { for(int x = -range; x <= range; x++) { for(int z = -range; z <= range; z++) { @@ -62,53 +75,62 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements } } } - - NBTTagCompound data = new NBTTagCompound(); - input.writeToNBT(data, "i"); - + + input.serialize(buf); + heatFluid(); - - output.writeToNBT(data, "o"); - + + output.serialize(buf); + if(output.getFill() > 0) { for(DirPos pos : getConPos()) { this.sendFluid(output, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - data.setInteger("heat", this.getTotalHeat()); - INBTPacketReceiver.networkPack(this, data, 150); - + buf.writeInt(this.getTotalHeat()); + networkPackNT(150); + } else { - + this.prevRot = this.rot; - + if(this.bufferedHeat > 0) { this.rot += 0.5F; - + if(worldObj.rand.nextInt(7) == 0) { double x = worldObj.rand.nextGaussian() * 2; double y = worldObj.rand.nextGaussian() * 3; double z = worldObj.rand.nextGaussian() * 2; worldObj.spawnParticle("cloud", xCoord + 0.5 + x, yCoord + 6 + y, zCoord + 0.5 + z, 0, 0, 0); } + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.hephaestusRunning", xCoord, yCoord + 5F, zCoord, 0.75F, 10F, 1.0F); + audio.startSound(); + } + } else { + if(audio != null) { + audio.stopSound(); + audio = null; + } } - + if(this.rot >= 360F) { this.prevRot -= 360F; this.rot -= 360F; } } } - + protected void heatFluid() { - + FluidType type = input.getTankType(); - + if(type.hasTrait(FT_Heatable.class)) { FT_Heatable trait = type.getTrait(FT_Heatable.class); int heat = this.getTotalHeat(); HeatingStep step = trait.getFirstStep(); - + int inputOps = input.getFill() / step.amountReq; int outputOps = (output.getMaxFill() - output.getFill()) / step.amountProduced; int heatOps = heat / step.heatReq; @@ -119,14 +141,14 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements worldObj.markTileEntityChunkModified(xCoord, yCoord, zCoord, this); } } - + protected void setupTanks() { - + FluidType type = input.getTankType(); - + if(type.hasTrait(FT_Heatable.class)) { FT_Heatable trait = type.getTrait(FT_Heatable.class); - + if(trait.getEfficiency(HeatingType.HEATEXCHANGER) > 0) { FluidType outType = trait.getFirstStep().typeProduced; output.setTankType(outType); @@ -137,55 +159,60 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements input.setTankType(Fluids.NONE); output.setTankType(Fluids.NONE); } - + protected int heatFromBlock(int x, int y, int z) { Block b = worldObj.getBlock(x, y, z); - + if(b == Blocks.lava || b == Blocks.flowing_lava) return 5; if(b == ModBlocks.volcanic_lava_block) return 150; - + if(b == ModBlocks.ore_volcano) { this.fissureScanTime = worldObj.getTotalWorldTime(); return 300; } - + return 0; } - + public int getTotalHeat() { boolean fissure = worldObj.getTotalWorldTime() - this.fissureScanTime < 20; int heat = 0; - + for(int h : this.heat) { heat += h; } - + if(fissure) { heat *= 3; } - + return heat; } @Override - public void networkUnpack(NBTTagCompound nbt) { - input.readFromNBT(nbt, "i"); - output.readFromNBT(nbt, "o"); - - this.bufferedHeat = nbt.getInteger("heat"); + public void serialize(ByteBuf buf) { + buf.writeBytes(this.buf); } - + + @Override + public void deserialize(ByteBuf buf) { + input.deserialize(buf); + output.deserialize(buf); + + this.bufferedHeat = buf.readInt(); + } + private void updateConnections() { - + if(input.getTankType() == Fluids.NONE) return; - + for(DirPos pos : getConPos()) { this.trySubscribe(input.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + private DirPos[] getConPos() { - + return new DirPos[] { new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), @@ -197,7 +224,7 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements new DirPos(xCoord, yCoord + 11, zCoord - 2, Library.NEG_Z) }; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -205,7 +232,7 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements this.input.readFromNBT(nbt, "0"); this.output.readFromNBT(nbt, "1"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -228,17 +255,37 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] {input}; } - + @Override public boolean canConnect(FluidType type, ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.UP && dir != ForgeDirection.DOWN; } - + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 3, @@ -249,10 +296,10 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements zCoord + 4 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index f980ca60b..34dbf6200 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -1,33 +1,22 @@ package com.hbm.tileentity.machine; -import java.io.IOException; - -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; -import com.hbm.config.GeneralConfig; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerIGenerator; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.gui.GUIIGenerator; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.RTGUtil; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -37,7 +26,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineIGenerator extends TileEntityMachineBase implements IFluidAcceptor, IEnergyGenerator, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider { +public class TileEntityMachineIGenerator extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { public long power; public int spin; @@ -61,58 +50,20 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public static int waterCap = 16000; public static int oilCap = 16000; public static int lubeCap = 4000; - public static int coalGenRate = 20; + public static int coalGenRate = 100; public static double rtgHeatMult = 0.15D; - public static double waterPowerMult = 1.0D; - public static double lubePowerMult = 1.5D; - public static double heatExponent = 1.15D; public static int waterRate = 10; public static int lubeRate = 1; public static long fluidHeatDiv = 1_000L; - - @Override - public String getConfigName() { - return "igen"; - } - - @Override - public void readIfPresent(JsonObject obj) { - maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); - waterCap = IConfigurableMachine.grab(obj, "I:waterCap", waterCap); - oilCap = IConfigurableMachine.grab(obj, "I:oilCap", oilCap); - lubeCap = IConfigurableMachine.grab(obj, "I:lubeCap", lubeCap); - coalGenRate = IConfigurableMachine.grab(obj, "I:solidFuelRate", coalGenRate); - rtgHeatMult = IConfigurableMachine.grab(obj, "D:rtgHeatMult", rtgHeatMult); - waterPowerMult = IConfigurableMachine.grab(obj, "D:waterPowerMult", waterPowerMult); - lubePowerMult = IConfigurableMachine.grab(obj, "D:lubePowerMult", lubePowerMult); - heatExponent = IConfigurableMachine.grab(obj, "D:heatExponent", heatExponent); - waterRate = IConfigurableMachine.grab(obj, "I:waterRate", waterRate); - lubeRate = IConfigurableMachine.grab(obj, "I:lubeRate", lubeRate); - fluidHeatDiv = IConfigurableMachine.grab(obj, "D:fluidHeatDiv", fluidHeatDiv); - } - - @Override - public void writeConfig(JsonWriter writer) throws IOException { - writer.name("L:powerCap").value(maxPower); - writer.name("I:waterCap").value(waterCap); - writer.name("I:oilCap").value(oilCap); - writer.name("I:lubeCap").value(lubeCap); - writer.name("I:solidFuelRate").value(coalGenRate); - writer.name("D:rtgHeatMult").value(rtgHeatMult); - writer.name("D:waterPowerMult").value(waterPowerMult); - writer.name("D:lubePowerMult").value(lubePowerMult); - writer.name("D:heatExponent").value(heatExponent); - writer.name("I:waterRate").value(waterRate); - writer.name("I:lubeRate").value(lubeRate); - writer.name("D:fluidHeatDiv").value(fluidHeatDiv); - } + + protected long output; public TileEntityMachineIGenerator() { super(21); tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.WATER, waterCap, 0); - tanks[1] = new FluidTank(Fluids.HEATINGOIL, oilCap, 1); - tanks[2] = new FluidTank(Fluids.LUBRICANT, lubeCap, 2); + tanks[0] = new FluidTank(Fluids.WATER, waterCap); + tanks[1] = new FluidTank(Fluids.HEATINGOIL, oilCap); + tanks[2] = new FluidTank(Fluids.LUBRICANT, lubeCap); } @Override @@ -124,6 +75,9 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); return new DirPos[] { new DirPos(xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * -2, yCoord - 1, zCoord + dir.offsetZ * -2, ForgeDirection.DOWN), + new DirPos(xCoord + dir.offsetX * -1, yCoord - 1, zCoord + dir.offsetZ * -1, ForgeDirection.DOWN), + new DirPos(xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN), new DirPos(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, dir), }; } @@ -131,7 +85,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement @Override public void updateEntity() { - if(!worldObj.isRemote) { + /*if(!worldObj.isRemote) { boolean con = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMIGen; @@ -212,19 +166,21 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement if(this.spin > 0) { - int powerGen = this.spin; + double genMult = 0.5D; + if(this.tanks[0].getFill() >= 10) { - powerGen += this.spin * waterPowerMult; + genMult += 0.5D; this.tanks[0].setFill(this.tanks[0].getFill() - waterRate); } if(this.tanks[2].getFill() >= 1) { - powerGen += this.spin * lubePowerMult; + genMult += 0.25D; this.tanks[2].setFill(this.tanks[2].getFill() - lubeRate); } - this.power += Math.pow(powerGen, heatExponent); + this.output = (long) (this.spin * genMult); + this.power += this.output; if(this.power > this.maxPower) this.power = this.maxPower; @@ -252,7 +208,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement this.rotation -= 360; this.prevRotation -= 360; } - } + }*/ } @Override @@ -265,59 +221,23 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement return new int[] { 3, 4, 5, 6 }; } + // o7 + /* @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.spin = nbt.getInteger("spin"); this.burn = nbt.getIntArray("burn"); this.hasRTG = nbt.getBoolean("hasRTG"); } + */ public int getPowerFromFuel(boolean con) { FluidType type = tanks[1].getTankType(); return type.hasTrait(FT_Flammable.class) ? (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() / (con ? 5000L : fluidHeatDiv)) : 0; } - - @Override - public void setFillForSync(int fill, int index) { - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(type == Fluids.WATER) - tanks[0].setFill(fill); - else if(type == Fluids.LUBRICANT) - tanks[2].setFill(fill); - else if(tanks[1].getTankType() == type) - tanks[1].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - - for(int i = 0; i < 3; i++) - if(tanks[i].getTankType() == type) - return tanks[i].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - for(int i = 0; i < 3; i++) - if(tanks[i].getTankType() == type) - return tanks[i].getMaxFill(); - - return 0; - } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -348,26 +268,10 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } - @Override - public void setPower(long power) { - this.power = power; - } - - @Override - public long getPower() { - return this.power; - } - - @Override - public long getMaxPower() { - return this.maxPower; - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0], tanks[1], tanks[2] }; @@ -385,7 +289,13 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIIGenerator(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.output > 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java deleted file mode 100644 index 3d2756304..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java +++ /dev/null @@ -1,351 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; - -public class TileEntityMachineInserter extends TileEntity implements ISidedInventory, IFluidContainer, IFluidSource, IFluidAcceptor { - - private ItemStack slots[]; - - //public static final int maxFill = 64 * 3; - public FluidTank tanks[]; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {0}; - private static final int[] slots_side = new int[] {0}; - public int age = 0; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - public List list3 = new ArrayList(); - - private String customName; - - public TileEntityMachineInserter() { - slots = new ItemStack[9]; - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.NONE, 32000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 32000, 0); - tanks[2] = new FluidTank(Fluids.NONE, 32000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.inserter"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tanks[0].readFromNBT(nbt, "content1"); - tanks[1].readFromNBT(nbt, "content2"); - tanks[2].readFromNBT(nbt, "content3"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tanks[0].writeToNBT(nbt, "content1"); - tanks[1].writeToNBT(nbt, "content2"); - tanks[2].writeToNBT(nbt, "content3"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - age++; - if(age >= 20) - { - age = 0; - } - - if(age == 9 || age == 19) { - if(dna1()) - fillFluidInit(tanks[0].getTankType()); - if(dna2()) - fillFluidInit(tanks[1].getTankType()); - if(dna3()) - fillFluidInit(tanks[2].getTankType()); - } - - tanks[0].setType(1, 2, slots); - tanks[1].setType(4, 5, slots); - tanks[2].setType(7, 8, slots); - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[2].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - public boolean dna1() { - if(slots[0] != null && (slots[0].getItem() == ModItems.fuse || slots[0].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - public boolean dna2() { - if(slots[3] != null && (slots[3].getItem() == ModItems.fuse || slots[3].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - public boolean dna3() { - if(slots[6] != null && (slots[6].getItem() == ModItems.fuse || slots[6].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getMaxFill(); - else - return 0; - } - - @Override - public List getFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return list1; - if(type.name().equals(tanks[1].getTankType().name())) - return list2; - if(type.name().equals(tanks[2].getTankType().name())) - return list3; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - list1.clear(); - if(type.name().equals(tanks[1].getTankType().name())) - list2.clear(); - if(type.name().equals(tanks[2].getTankType().name())) - list3.clear(); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java index 67016d814..59d6f43bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java @@ -2,14 +2,11 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.container.ContainerMachineKeyForge; import com.hbm.inventory.gui.GUIMachineKeyForge; -import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; -import com.hbm.items.ModItems; import com.hbm.items.tool.ItemKeyPin; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -191,11 +188,6 @@ public class TileEntityMachineKeyForge extends TileEntity implements ISidedInven if(slots[2] != null && slots[2].getItem() instanceof ItemKeyPin && ((ItemKeyPin)slots[2].getItem()).canTransfer()) { ItemKeyPin.setPins(slots[2], worldObj.rand.nextInt(900) + 100); } - - //DEBUG, remove later - if(slots[2] != null && slots[2].getItem() == ModItems.ammo_4gauge) { - slots[2] = ModItems.ammo_4gauge.stackFromEnum(slots[2].stackSize, Ammo4Gauge.QUACK); - } } } @@ -206,7 +198,7 @@ public class TileEntityMachineKeyForge extends TileEntity implements ISidedInven @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineKeyForge(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLPW2.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLPW2.java new file mode 100644 index 000000000..5a6eed357 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLPW2.java @@ -0,0 +1,23 @@ +package com.hbm.tileentity.machine; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityMachineLPW2 extends TileEntity { + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + if(bb == null) bb = AxisAlignedBB.getBoundingBox(xCoord - 10, yCoord, zCoord - 10, xCoord + 11, yCoord + 7, zCoord + 11); + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 5f37053e9..060710858 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -1,12 +1,12 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; +import java.util.Random; +import java.io.IOException; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerMachineLargeTurbine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -15,15 +15,26 @@ import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.gui.GUIMachineLargeTurbine; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; @@ -32,25 +43,59 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine, IFluidCopiable { public long power; - public static final long maxPower = 100000000; - public int age = 0; - public List list2 = new ArrayList(); public FluidTank[] tanks; + protected double[] info = new double[3]; private boolean shouldTurn; public float rotor; public float lastRotor; public float fanAcceleration = 0F; + + private AudioWrapper audio; + private float audioDesync; + //Configurable Values + public static long maxPower = 100000000; + public static int inputTankSize = 512_000; + public static int outputTankSize = 10_240_000; + public static double efficiency = 1.0; + + public TileEntityMachineLargeTurbine() { super(7); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, 512000, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 10240000, 1); + tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize); + + Random rand = new Random(); + audioDesync = rand.nextFloat() * 0.05F; + } + + @Override + public String getConfigName() { + return "steamturbineIndustrial"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "L:maxPower", maxPower); + inputTankSize = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSize); + outputTankSize = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSize); + efficiency = IConfigurableMachine.grab(obj, "D:efficiency", efficiency); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:maxPower").value(maxPower); + writer.name("INFO").value("industrial steam turbine consumes 20% of availible steam per tick"); + writer.name("I:inputTankSize").value(inputTankSize); + writer.name("I:outputTankSize").value(outputTankSize); + writer.name("D:efficiency").value(efficiency); } @Override @@ -58,35 +103,29 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme return "container.machineLargeTurbine"; } + private boolean operational; + @Override public void updateEntity() { if(!worldObj.isRemote) { - age++; - if(age >= 2) - { - age = 0; - } - - fillFluidInit(tanks[1].getTankType()); + this.info = new double[3]; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.sendPower(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); + this.tryProvide(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); for(DirPos pos : getConPos()) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); tanks[0].setType(0, 1, slots); tanks[0].loadTank(2, 3, slots); power = Library.chargeItemsFromTE(slots, 4, power, maxPower); - - boolean operational = false; - + FluidType in = tanks[0].getTankType(); boolean valid = false; if(in.hasTrait(FT_Coolable.class)) { FT_Coolable trait = in.getTrait(FT_Coolable.class); - double eff = trait.getEfficiency(CoolingType.TURBINE); //100% efficiency + double eff = trait.getEfficiency(CoolingType.TURBINE) * efficiency; //100% efficiency by default if(eff > 0) { tanks[1].setTankType(trait.coolsTo); int inputOps = (int) Math.floor(tanks[0].getFill() / trait.amountReq); //amount of cycles possible with the entire input buffer @@ -96,6 +135,9 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks[0].setFill(tanks[0].getFill() - ops * trait.amountReq); tanks[1].setFill(tanks[1].getFill() + ops * trait.amountProduced); this.power += (ops * trait.heatEnergy * eff); + info[0] = ops * trait.amountReq; + info[1] = ops * trait.amountProduced; + info[2] = ops * trait.heatEnergy * eff; valid = true; operational = ops > 0; } @@ -104,14 +146,9 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme if(power > maxPower) power = maxPower; tanks[1].unloadTank(5, 6, slots); - - for(int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setBoolean("operational", operational); - this.networkPack(data, 50); + + this.networkPackNT(50); + } else { this.lastRotor = this.rotor; this.rotor += this.fanAcceleration; @@ -122,11 +159,30 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } if(shouldTurn) { + // Fan accelerates with a random offset to ensure the audio doesn't perfectly align, makes for a more pleasant hum + this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.075F + audioDesync)); - this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.1F)); - } - if(!shouldTurn) { + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.largeTurbineRunning", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); + audio.startSound(); + } + + float turbineSpeed = this.fanAcceleration / 15F; + audio.updateVolume(getVolume(0.4f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + } else { this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration -= 0.1F)); + + if(audio != null) { + if(this.fanAcceleration > 0) { + float turbineSpeed = this.fanAcceleration / 15F; + audio.updateVolume(getVolume(0.4f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + } else { + audio.stopSound(); + audio = null; + } + } } } } @@ -140,10 +196,23 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme new DirPos(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, dir) }; } - - public void networkUnpack(NBTTagCompound data) { - this.power = data.getLong("power"); - this.shouldTurn = data.getBoolean("operational"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeBoolean(operational); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.shouldTurn = buf.readBoolean(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); } public long getPowerScaled(int i) { @@ -166,79 +235,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme nbt.setLong("power", power); } - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - dir = dir.getRotation(ForgeDirection.UP); - - fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, getTact(), type); - fillFluid(xCoord + dir.offsetX * -2, yCoord, zCoord + dir.offsetZ * -2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } - @Override public long getPower() { return power; @@ -280,6 +276,84 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme return new FluidTank[] {tanks[0]}; } + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_turbine"; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getFluid", + "getType", + "setType", + "getInfo" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch(method) { + case ("getFluid"): + return getFluid(context, args); + case ("getType"): + return getType(context, args); + case ("setType"): + return setType(context, args); + case ("getInfo"): + return getInfo(context, args); + } + throw new NoSuchMethodException(); + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineLargeTurbine(player.inventory, this); @@ -287,7 +361,15 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineLargeTurbine(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, info[1] > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, info[0]); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java index e9d41a607..ba194d48d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java @@ -2,11 +2,14 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.tile.IInfoProviderEC; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IEnergyGenerator { +public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC { public long power; boolean tact = false; @@ -16,27 +19,26 @@ public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IE if(!worldObj.isRemote) { - if(this.getBlockType() == ModBlocks.machine_powerrtg) - power += 2500; - else - power += 700; + power += this.getOutput(); if(power > getMaxPower()) power = getMaxPower(); - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } } } - + + public long getOutput() { + if(this.getBlockType() == ModBlocks.machine_powerrtg) return 2_500; + return 700; + } @Override public long getMaxPower() { - - if(this.getBlockType() == ModBlocks.machine_powerrtg) - return 50000; - - return 1400; + if(this.getBlockType() == ModBlocks.machine_powerrtg) return 50_000; + return 1_400; } @Override @@ -48,4 +50,11 @@ public class TileEntityMachineMiniRTG extends TileEntityLoadedBase implements IE public void setPower(long i) { power = i; } + + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, true); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.getOutput()); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java deleted file mode 100644 index f34c79c98..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningDrill.java +++ /dev/null @@ -1,495 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.UpgradeManager; -import com.hbm.inventory.container.ContainerMachineMiningDrill; -import com.hbm.inventory.gui.GUIMachineMiningDrill; -import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.LoopedSoundPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEDrillPacket; -import com.hbm.sound.SoundLoopMachine; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.block.IDrillInteraction; -import api.hbm.block.IMiningDrill; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityMachineMiningDrill extends TileEntityMachineBase implements IEnergyUser, IMiningDrill, IGUIProvider { - - public long power; - public int warning; - public static final long maxPower = 100000; - int age = 0; - int timer = 50; - int radius = 100; - int consumption = 100; - int fortune = 0; - boolean flag = true; - public float torque; - public float rotation; - SoundLoopMachine sound; - - public TileEntityMachineMiningDrill() { - super(13); - } - - @Override - public String getName() { - return "container.miningDrill"; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - return true; - - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.power = nbt.getLong("power"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - this.updateConnections(); - - this.consumption = 100; - this.timer = 50; - this.radius = 1; - this.fortune = 0; - - UpgradeManager.eval(slots, 10, 12); - this.radius += Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); - this.consumption += Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3) * 80; - - this.timer -= Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) * 15; - this.consumption += Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) * 300; - - this.consumption -= Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3) * 30; - this.timer += Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3) * 5; - - this.fortune += Math.min(UpgradeManager.getLevel(UpgradeType.FORTUNE), 3); - this.timer += Math.min(UpgradeManager.getLevel(UpgradeType.FORTUNE), 3) * 15; - - age++; - if(age >= timer) - age -= timer; - - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - if(power >= consumption) { - - //operation start - - if(age == timer - 1) { - warning = 0; - - //warning 0, green: drill is operational - //warning 1, red: drill is full, has no power or the drill is jammed - //warning 2, yellow: drill has reached max depth - - for(int i = this.yCoord - 1; i > this.yCoord - 1 - 100; i--) { - - if(i <= 3) { - //Code 2: The drilling ended - warning = 2; - break; - } - - if(worldObj.getBlock(xCoord, i, zCoord) != ModBlocks.drill_pipe) { - - if(worldObj.getBlock(xCoord, i, zCoord).isReplaceable(worldObj, xCoord, i, zCoord) || this.tryDrill(xCoord, i, zCoord)) { - - if(worldObj.getBlock(xCoord, i, zCoord).isReplaceable(worldObj, xCoord, i, zCoord)) { - worldObj.setBlock(xCoord, i, zCoord, ModBlocks.drill_pipe); - } - - break; - - } else { - this.warning = 1; - break; - } - } - - if(this.drill(xCoord, i, zCoord, radius)) - break; - } - } - - //operation end - - power -= consumption; - } else { - warning = 1; - } - - int meta = worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord); - TileEntity te = null; - if(meta == 2) { - te = worldObj.getTileEntity(xCoord - 2, yCoord, zCoord); - //worldObj.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - if(meta == 3) { - te = worldObj.getTileEntity(xCoord + 2, yCoord, zCoord); - //worldObj.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - if(meta == 4) { - te = worldObj.getTileEntity(xCoord, yCoord, zCoord + 2); - //worldObj.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - if(meta == 5) { - te = worldObj.getTileEntity(xCoord, yCoord, zCoord - 2); - //worldObj.setBlock(xCoord - 2, yCoord, zCoord, Blocks.dirt); - } - - if(te != null && te instanceof IInventory) { - IInventory chest = (IInventory)te; - - for(int i = 1; i < 10; i++) - if(tryFillContainer(chest, i)) - break; - } - - if(warning == 0) { - torque += 0.1; - if(torque > (100/timer)) - torque = (100/timer); - } else { - torque -= 0.1F; - if(torque < -(100/timer)) - torque = -(100/timer); - } - - if(torque < 0) { - torque = 0; - } - rotation += torque; - if(rotation >= 360) - rotation -= 360; - - PacketDispatcher.wrapper.sendToAllAround(new TEDrillPacket(xCoord, yCoord, zCoord, rotation, torque), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - - private void updateConnections() { - this.getBlockMetadata(); - - if(this.blockMetadata == 5 || this.blockMetadata == 4) { - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - - } else if(this.blockMetadata == 3 || this.blockMetadata == 2) { - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - } - } - - public boolean tryFillContainer(IInventory inventory, int slot) { - - int size = inventory.getSizeInventory(); - - for(int i = 0; i < size; i++) { - if(inventory.getStackInSlot(i) != null) { - - if(slots[slot] == null) - return false; - - ItemStack sta1 = inventory.getStackInSlot(i).copy(); - ItemStack sta2 = slots[slot].copy(); - - if(!inventory.isItemValidForSlot(i, sta2)) - continue; - - if(sta1 != null && sta2 != null) { - sta1.stackSize = 1; - sta2.stackSize = 1; - - if(ItemStack.areItemStacksEqual(sta1, sta2) && ItemStack.areItemStackTagsEqual(sta1, sta2) && inventory.getStackInSlot(i).stackSize < inventory.getStackInSlot(i).getMaxStackSize()) { - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - ItemStack sta3 = inventory.getStackInSlot(i).copy(); - sta3.stackSize++; - inventory.setInventorySlotContents(i, sta3); - - return true; - } - } - } - } - for(int i = 0; i < size; i++) { - - if(slots[slot] == null) - return false; - - ItemStack sta2 = slots[slot].copy(); - - if(!inventory.isItemValidForSlot(i, sta2)) - continue; - - if(inventory.getStackInSlot(i) == null && sta2 != null) { - sta2.stackSize = 1; - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - inventory.setInventorySlotContents(i, sta2); - - return true; - } - } - - return false; - } - - //Method: isOre - //"make it oreo!" - //"ok" - public boolean isOreo(int x, int y, int z) { - - Block b = worldObj.getBlock(x, y, z); - float hardness = b.getBlockHardness(worldObj, x, y, z); - - return hardness < 70 && hardness >= 0; - } - - public boolean isMinableOreo(int x, int y, int z) { - - Block b = worldObj.getBlock(x, y, z); - float hardness = b.getBlockHardness(worldObj, x, y, z); - - return (hardness < 70 && hardness >= 0) || b instanceof IDrillInteraction; - } - - /** - * returns true if there has been a successful mining operation - * returns false if no block could be mined and the drill is ready to extend - * */ - public boolean drill(int x, int y, int z, int rad) { - - if(!flag) - return false; - - for(int ix = x - rad; ix <= x + rad; ix++) { - for(int iz = z - rad; iz <= z + rad; iz++) { - - if(ix != x || iz != z) - if(tryDrill(ix, y, iz)) - return true; - } - } - - return false; - } - - /** - * returns true if there has been a successful mining operation - * returns false if no block could be mined, as it is either air or unmineable - * */ - public boolean tryDrill(int x, int y, int z) { - - if(worldObj.getBlock(x, y, z).isAir(worldObj, x, y, z) || !isMinableOreo(x, y, z)) - return false; - if(worldObj.getBlock(x, y, z).getMaterial().isLiquid()) { - worldObj.func_147480_a(x, y, z, false); - return false; - } - - Block b = worldObj.getBlock(x, y, z); - int meta = worldObj.getBlockMetadata(x, y, z); - - if(b instanceof IDrillInteraction) { - IDrillInteraction in = (IDrillInteraction) b; - - ItemStack sta = in.extractResource(worldObj, x, y, z, meta, this); - - if(sta != null && hasSpace(sta)) { - this.addItemToInventory(sta); - } - - if(!in.canBreak(worldObj, x, y, z, meta, this)) - return true; //true because the block is still there and mining should continue - } - - ItemStack stack = new ItemStack(b.getItemDropped(meta, worldObj.rand, fortune), b.quantityDropped(meta, fortune, worldObj.rand), b.damageDropped(meta)); - - //yup that worked - if(stack != null && stack.getItem() == null) { - worldObj.func_147480_a(x, y, z, false); - return true; - } - - if(hasSpace(stack)) { - this.addItemToInventory(stack); - worldObj.func_147480_a(x, y, z, false); - return true; - } - - return true; - } - - public boolean hasSpace(ItemStack stack) { - - ItemStack st = stack.copy(); - - if(st == null) - return true; - - for(int i = 1; i < 10; i++) { - if(slots[i] == null) - return true; - } - - st.stackSize = 1; - - ItemStack[] fakeArray = slots.clone(); - boolean flag = true; - for(int i = 0; i < stack.stackSize; i++) { - if(!canAddItemToArray(st, fakeArray)) - flag = false; - } - - return flag; - } - - public void addItemToInventory(ItemStack stack) { - - ItemStack st = stack.copy(); - - if(st == null) - return; - - int size = st.stackSize; - st.stackSize = 1; - - for(int i = 0; i < size; i++) - canAddItemToArray(st, this.slots); - - } - - public boolean canAddItemToArray(ItemStack stack, ItemStack[] array) { - - ItemStack st = stack.copy(); - - if(stack == null || st == null) - return true; - - for(int i = 1; i < 10; i++) { - - if(array[i] != null) { - ItemStack sta = array[i].copy(); - - if(stack == null || st == null) - return true; - - if(sta != null && sta.getItem() == st.getItem() && sta.stackSize < st.getMaxStackSize()) { - array[i].stackSize++; - return true; - } - } - } - - for(int i = 1; i < 10; i++) { - if(array[i] == null) { - array[i] = stack.copy(); - return true; - } - } - - return false; - } - - @Override - public void setPower(long i) { - power = i; - - } - - @Override - public long getPower() { - return power; - - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public DrillType getDrillTier() { - return DrillType.INDUSTRIAL; - } - - @Override - public int getDrillRating() { - return 50; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineMiningDrill(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineMiningDrill(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 82076c1cf..6dff13040 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -1,16 +1,13 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Set; import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerMiningLaser; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMiningLaser; @@ -23,17 +20,20 @@ import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import api.hbm.block.IDrillInteraction; import api.hbm.block.IMiningDrill; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -47,17 +47,17 @@ import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider { - +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { + public long power; public int age = 0; public static final long maxPower = 100000000; public static final int consumption = 10000; public FluidTank tank; - public List list = new ArrayList(); public boolean isOn; public int targetX; @@ -70,13 +70,15 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen boolean lock = false; double breakProgress; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineMiningLaser() { - + //slot 0: battery //slots 1 - 8: upgrades //slots 9 - 29: output super(30); - tank = new FluidTank(Fluids.OIL, 64000, 0); + tank = new FluidTank(Fluids.OIL, 64_000); } @Override @@ -84,81 +86,72 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen return "container.miningLaser"; } + private double clientBreakProgress; + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + this.updateConnections(); - age++; - if (age >= 20) { - age = 0; - } - - if (age == 9 || age == 19) - fillFluidInit(tank.getTankType()); - this.sendFluid(tank, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); this.sendFluid(tank, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); this.sendFluid(tank, worldObj, xCoord, yCoord + 2, zCoord, Library.POS_Z); this.sendFluid(tank, worldObj, xCoord, yCoord - 2, zCoord, Library.NEG_Z); - + power = Library.chargeTEFromItems(slots, 0, power, maxPower); - tank.updateTank(xCoord, yCoord, zCoord, this.worldObj.provider.dimensionId); - + //reset progress if the position changes if(lastTargetX != targetX || lastTargetY != targetY || lastTargetZ != targetZ) breakProgress = 0; - + //set last positions for interpolation and the like lastTargetX = targetX; lastTargetY = targetY; lastTargetZ = targetZ; - - double clientBreakProgress = 0; - + if(isOn) { - - UpgradeManager.eval(slots, 1, 8); - int cycles = 1 + UpgradeManager.getLevel(UpgradeType.OVERDRIVE); - int speed = 1 + Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 12); - int range = 1 + Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT) * 2, 24); - int fortune = Math.min(UpgradeManager.getLevel(UpgradeType.FORTUNE), 3); + + upgradeManager.checkSlots(this, slots, 1, 8); + int cycles = 1 + upgradeManager.getLevel(UpgradeType.OVERDRIVE); + int speed = 1 + upgradeManager.getLevel(UpgradeType.SPEED); + int range = 1 + upgradeManager.getLevel(UpgradeType.EFFECT) * 2; + int fortune = upgradeManager.getLevel(UpgradeType.FORTUNE); int consumption = this.consumption - - (this.consumption * Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 12) / 16) - + (this.consumption * Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 12) / 16); - + - (this.consumption * upgradeManager.getLevel(UpgradeType.POWER) / 16) + + (this.consumption * upgradeManager.getLevel(UpgradeType.SPEED) / 16); + for(int i = 0; i < cycles; i++) { - + if(power < consumption) { beam = false; break; } - + power -= consumption; - + if(targetY <= 0) targetY = yCoord - 2; - + scan(range); - - + + Block block = worldObj.getBlock(targetX, targetY, targetZ); - + if(block.getMaterial().isLiquid()) { worldObj.setBlockToAir(targetX, targetY, targetZ); buildDam(); continue; } - + if(beam && canBreak(block, targetX, targetY, targetZ)) { - + breakProgress += getBreakSpeed(speed); clientBreakProgress = Math.min(breakProgress, 1); - + if(breakProgress < 1) { worldObj.destroyBlockInWorldPartially(-1, targetX, targetY, targetZ, (int) Math.floor(breakProgress * 10)); } else { @@ -176,122 +169,124 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen this.tryFillContainer(xCoord - 2, yCoord, zCoord); this.tryFillContainer(xCoord, yCoord, zCoord + 2); this.tryFillContainer(xCoord, yCoord, zCoord - 2); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("lastX", lastTargetX); - data.setInteger("lastY", lastTargetY); - data.setInteger("lastZ", lastTargetZ); - data.setInteger("x", targetX); - data.setInteger("y", targetY); - data.setInteger("z", targetZ); - data.setBoolean("beam", beam); - data.setBoolean("isOn", isOn); - data.setDouble("progress", clientBreakProgress); - - this.networkPack(data, 250); + + this.networkPackNT(250); } } - + private void updateConnections() { this.trySubscribe(worldObj, xCoord, yCoord + 2, zCoord, ForgeDirection.UP); } - - public void networkUnpack(NBTTagCompound data) { - this.power = data.getLong("power"); - this.lastTargetX = data.getInteger("lastX"); - this.lastTargetY = data.getInteger("lastY"); - this.lastTargetZ = data.getInteger("lastZ"); - this.targetX = data.getInteger("x"); - this.targetY = data.getInteger("y"); - this.targetZ = data.getInteger("z"); - this.beam = data.getBoolean("beam"); - this.isOn = data.getBoolean("isOn"); - this.breakProgress = data.getDouble("progress"); + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeInt(this.lastTargetX); + buf.writeInt(this.lastTargetY); + buf.writeInt(this.lastTargetZ); + buf.writeInt(this.targetX); + buf.writeInt(this.targetY); + buf.writeInt(this.targetZ); + buf.writeBoolean(this.beam); + buf.writeBoolean(this.isOn); + buf.writeDouble(this.clientBreakProgress); + tank.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.lastTargetX = buf.readInt(); + this.lastTargetY = buf.readInt(); + this.lastTargetZ = buf.readInt(); + this.targetX = buf.readInt(); + this.targetY = buf.readInt(); + this.targetZ = buf.readInt(); + this.beam = buf.readBoolean(); + this.isOn = buf.readBoolean(); + this.breakProgress = buf.readDouble(); + tank.deserialize(buf); + } + private void buildDam() { - if(worldObj.getBlock(targetX + 1, targetY, targetZ).getMaterial().isLiquid()) - worldObj.setBlock(targetX + 1, targetY, targetZ, ModBlocks.barricade); - if(worldObj.getBlock(targetX - 1, targetY, targetZ).getMaterial().isLiquid()) - worldObj.setBlock(targetX - 1, targetY, targetZ, ModBlocks.barricade); - if(worldObj.getBlock(targetX, targetY, targetZ + 1).getMaterial().isLiquid()) - worldObj.setBlock(targetX, targetY, targetZ + 1, ModBlocks.barricade); - if(worldObj.getBlock(targetX, targetY, targetZ - 1).getMaterial().isLiquid()) - worldObj.setBlock(targetX, targetY, targetZ - 1, ModBlocks.barricade); + if(worldObj.getBlock(targetX + 1, targetY, targetZ).getMaterial().isLiquid()) worldObj.setBlock(targetX + 1, targetY, targetZ, ModBlocks.barricade); + if(worldObj.getBlock(targetX - 1, targetY, targetZ).getMaterial().isLiquid()) worldObj.setBlock(targetX - 1, targetY, targetZ, ModBlocks.barricade); + if(worldObj.getBlock(targetX, targetY, targetZ + 1).getMaterial().isLiquid()) worldObj.setBlock(targetX, targetY, targetZ + 1, ModBlocks.barricade); + if(worldObj.getBlock(targetX, targetY, targetZ - 1).getMaterial().isLiquid()) worldObj.setBlock(targetX, targetY, targetZ - 1, ModBlocks.barricade); } - + private void tryFillContainer(int x, int y, int z) { - + Block b = worldObj.getBlock(x, y, z); if(b != Blocks.chest && b != Blocks.trapped_chest && b != ModBlocks.crate_iron && b != ModBlocks.crate_desh && b != ModBlocks.crate_steel && b != ModBlocks.safe && b != Blocks.hopper) return; - + IInventory inventory = (IInventory)worldObj.getTileEntity(x, y, z); if(inventory == null) return; - + for(int i = 9; i <= 29; i++) { - + if(slots[i] != null) { int prev = slots[i].stackSize; slots[i] = InventoryUtil.tryAddItemToInventory(inventory, 0, inventory.getSizeInventory() - 1, slots[i]); - + if(slots[i] == null || slots[i].stackSize < prev) return; } } } - + private void breakBlock(int fortune) { - + Block b = worldObj.getBlock(targetX, targetY, targetZ); int meta = worldObj.getBlockMetadata(targetX, targetY, targetZ); boolean normal = true; boolean doesBreak = true; - + if(b == Blocks.lit_redstone_ore) b = Blocks.redstone_ore; - + ItemStack stack = new ItemStack(b, 1, meta); - + if(stack != null && stack.getItem() != null) { if(hasCrystallizer()) { - CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.ACID); + CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.PEROXIDE); if(result == null) result = CrystallizerRecipes.getOutput(stack, Fluids.SULFURIC_ACID); - + if(result != null) { worldObj.spawnEntityInWorld(new EntityItem(worldObj, targetX + 0.5, targetY + 0.5, targetZ + 0.5, result.output.copy())); normal = false; } - + } else if(hasCentrifuge()) { - + ItemStack[] result = CentrifugeRecipes.getOutput(stack); if(result != null) { for(ItemStack sta : result) { - + if(sta != null) { worldObj.spawnEntityInWorld(new EntityItem(worldObj, targetX + 0.5, targetY + 0.5, targetZ + 0.5, sta.copy())); normal = false; } } } - + } else if(hasShredder()) { - + ItemStack result = ShredderRecipes.getShredderResult(stack); if(result != null && result.getItem() != ModItems.scrap) { worldObj.spawnEntityInWorld(new EntityItem(worldObj, targetX + 0.5, targetY + 0.5, targetZ + 0.5, result.copy())); normal = false; } - + } else if(hasSmelter()) { - + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(stack); if(result != null) { worldObj.spawnEntityInWorld(new EntityItem(worldObj, targetX + 0.5, targetY + 0.5, targetZ + 0.5, result.copy())); @@ -299,32 +294,32 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen } } } - + if(normal && b instanceof IDrillInteraction) { IDrillInteraction in = (IDrillInteraction) b; ItemStack drop = in.extractResource(worldObj, targetX, targetY, targetZ, meta, this); - + if(drop != null) { worldObj.spawnEntityInWorld(new EntityItem(worldObj, targetX + 0.5, targetY + 0.5, targetZ + 0.5, drop.copy())); } - + doesBreak = in.canBreak(worldObj, targetX, targetY, targetZ, meta, this); } - + if(doesBreak) { if(normal) b.dropBlockAsItem(worldObj, targetX, targetY, targetZ, meta, fortune); worldObj.func_147480_a(targetX, targetY, targetZ, false); } - + suckDrops(); if(doesScream()) { worldObj.playSoundEffect(targetX + 0.5, targetY + 0.5, targetZ + 0.5, "hbm:block.screm", 2000.0F, 1.0F); } - + breakProgress = 0; } - + private static final Set bad = Sets.newHashSet(new Item[] { Item.getItemFromBlock(Blocks.dirt), Item.getItemFromBlock(Blocks.stone), @@ -338,14 +333,14 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen Items.snowball, Items.wheat_seeds }); - + //hahahahahahahaha he said "suck" private void suckDrops() { - + int rangeHor = 3; int rangeVer = 1; boolean nullifier = hasNullifier(); - + List items = worldObj.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox( targetX + 0.5 - rangeHor, targetY + 0.5 - rangeVer, @@ -354,36 +349,36 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen targetY + 0.5 + rangeVer, targetZ + 0.5 + rangeHor )); - + for(EntityItem item : items) { - + if(item.isDead) continue; - + if(nullifier && bad.contains(item.getEntityItem().getItem())) { item.setDead(); continue; } - + if(item.getEntityItem().getItem() == Item.getItemFromBlock(ModBlocks.ore_oil)) { - + tank.setTankType(Fluids.OIL); //just to be sure - + tank.setFill(tank.getFill() + 500); if(tank.getFill() > tank.getMaxFill()) tank.setFill(tank.getMaxFill()); - + item.setDead(); continue; } - + ItemStack stack = InventoryUtil.tryAddItemToInventory(slots, 9, 29, item.getEntityItem().copy()); - + if(stack == null) item.setDead(); else item.setEntityItemStack(stack.copy()); //copy is not necessary but i'm paranoid due to the kerfuffle of the old drill } - + List mobs = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox( targetX + 0.5 - 1, targetY + 0.5 - 1, @@ -392,31 +387,31 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen targetY + 0.5 + 1, targetZ + 0.5 + 1 )); - + for(EntityLivingBase mob : mobs) { mob.setFire(5); } } - + public double getBreakSpeed(int speed) { - + float hardness = worldObj.getBlock(targetX, targetY, targetZ).getBlockHardness(worldObj, targetX, targetY, targetZ) * 15 / speed; - + if(hardness == 0) return 1; - + return 1 / hardness; } - + public void scan(int range) { - + for(int x = -range; x <= range; x++) { for(int z = -range; z <= range; z++) { - + if(worldObj.getBlock(x + xCoord, targetY, z + zCoord).getMaterial().isLiquid()) { continue; } - + if(canBreak(worldObj.getBlock(x + xCoord, targetY, z + zCoord), x + xCoord, targetY, z + zCoord)) { targetX = x + xCoord; targetZ = z + zCoord; @@ -425,23 +420,23 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen } } } - + beam = false; targetY--; } - + private boolean canBreak(Block block, int x, int y, int z) { return !block.isAir(worldObj, x, y, z) && block.getBlockHardness(worldObj, x, y, z) >= 0 && !block.getMaterial().isLiquid() && block != Blocks.bedrock; } - + public int getRange() { - + int range = 1; - + for(int i = 1; i < 9; i++) { - + if(slots[i] != null) { - + if(slots[i].getItem() == ModItems.upgrade_effect_1) range += 2; else if(slots[i].getItem() == ModItems.upgrade_effect_2) @@ -450,100 +445,100 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen range += 6; } } - + return Math.min(range, 25); } - + public boolean hasNullifier() { - + for(int i = 1; i < 9; i++) { - + if(slots[i] != null) { - + if(slots[i].getItem() == ModItems.upgrade_nullifier) return true; } } - + return false; } - + public boolean hasSmelter() { - + for(int i = 1; i < 9; i++) { - + if(slots[i] != null) { - + if(slots[i].getItem() == ModItems.upgrade_smelter) return true; } } - + return false; } - + public boolean hasShredder() { - + for(int i = 1; i < 9; i++) { - + if(slots[i] != null) { - + if(slots[i].getItem() == ModItems.upgrade_shredder) return true; } } - + return false; } - + public boolean hasCentrifuge() { - + for(int i = 1; i < 9; i++) { - + if(slots[i] != null) { - + if(slots[i].getItem() == ModItems.upgrade_centrifuge) return true; } } - + return false; } - + public boolean hasCrystallizer() { - + for(int i = 1; i < 9; i++) { - + if(slots[i] != null) { - + if(slots[i].getItem() == ModItems.upgrade_crystallizer) return true; } } - + return false; } - + public boolean doesScream() { - + for(int i = 1; i < 9; i++) { - + if(slots[i] != null) { - + if(slots[i].getItem() == ModItems.upgrade_screm) return true; } } - + return false; } - + public int getConsumption() { return this.consumption; } - + public int getWidth() { - + return 1 + getRange() * 2; } @@ -554,12 +549,12 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen public int getProgressScaled(int i) { return (int) (breakProgress * i); } - + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() @@ -579,20 +574,20 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen @Override public int[] getAccessibleSlotsFromSide(int slot) { - + int[] slots = new int[21]; - + for(int i = 0; i < 21; i++) { slots[i] = i + 9; } - + return slots; } @Override public void setInventorySlotContents(int i, ItemStack stack) { super.setInventorySlotContents(i, stack); - + if(stack != null && i >= 1 && i <= 8 && stack.getItem() instanceof ItemMachineUpgrade) worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); } @@ -612,66 +607,10 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.OIL) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.OIL) - return tank.getFill(); - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(xCoord + 2, yCoord, zCoord, this.getTact(), type); - fillFluid(xCoord - 2, yCoord, zCoord, this.getTact(), type); - fillFluid(xCoord, yCoord, zCoord + 2, this.getTact(), type); - fillFluid(xCoord, yCoord, zCoord - 2, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + tank.readFromNBT(nbt, "oil"); isOn = nbt.getBoolean("isOn"); } @@ -679,7 +618,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + tank.writeToNBT(nbt, "oil"); nbt.setBoolean("isOn", isOn); } @@ -711,7 +650,44 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMiningLaser(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE || type == UpgradeType.EFFECT || type == UpgradeType.FORTUNE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_mining_laser)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (100 * level / 16) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 * level / 16) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_RANGE, "+" + (2 * level) + "m")); + } + if(type == UpgradeType.FORTUNE) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_FORTUNE, "+" + level)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 12); + upgrades.put(UpgradeType.POWER, 12); + upgrades.put(UpgradeType.EFFECT, 12); + upgrades.put(UpgradeType.FORTUNE, 3); + upgrades.put(UpgradeType.OVERDRIVE, 9); + return upgrades; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java index f47fc563f..c7e49bdfc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java @@ -4,17 +4,16 @@ import com.hbm.handler.MissileStruct; import com.hbm.inventory.container.ContainerMachineMissileAssembly; import com.hbm.inventory.gui.GUIMachineMissileAssembly; import com.hbm.items.weapon.ItemCustomMissile; -import com.hbm.items.weapon.ItemMissile; -import com.hbm.items.weapon.ItemMissile.FuelType; -import com.hbm.items.weapon.ItemMissile.PartType; +import com.hbm.items.weapon.ItemCustomMissilePart; +import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; +import com.hbm.items.weapon.ItemCustomMissilePart.PartType; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.packet.toclient.TEMissileMultipartPacket; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -190,9 +189,9 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public int fuselageState() { - if(slots[2] != null && slots[2].getItem() instanceof ItemMissile) { + if(slots[2] != null && slots[2].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[2].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[2].getItem(); if(part.type == PartType.FUSELAGE) return 1; @@ -203,9 +202,9 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public int chipState() { - if(slots[0] != null && slots[0].getItem() instanceof ItemMissile) { + if(slots[0] != null && slots[0].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[0].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[0].getItem(); if(part.type == PartType.CHIP) return 1; @@ -216,13 +215,13 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public int warheadState() { - if(slots[1] != null && slots[1].getItem() instanceof ItemMissile && - slots[2] != null && slots[2].getItem() instanceof ItemMissile && - slots[4] != null && slots[4].getItem() instanceof ItemMissile) { + if(slots[1] != null && slots[1].getItem() instanceof ItemCustomMissilePart && + slots[2] != null && slots[2].getItem() instanceof ItemCustomMissilePart && + slots[4] != null && slots[4].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[1].getItem(); - ItemMissile fuselage = (ItemMissile)slots[2].getItem(); - ItemMissile thruster = (ItemMissile)slots[4].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[1].getItem(); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)slots[2].getItem(); + ItemCustomMissilePart thruster = (ItemCustomMissilePart)slots[4].getItem(); if(part.type == PartType.WARHEAD && fuselage.type == PartType.FUSELAGE && thruster.type == PartType.THRUSTER) { float weight = (Float)part.attributes[2]; @@ -241,11 +240,11 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid if(slots[3] == null) return -1; - if(slots[3] != null && slots[3].getItem() instanceof ItemMissile && - slots[2] != null && slots[2].getItem() instanceof ItemMissile) { + if(slots[3] != null && slots[3].getItem() instanceof ItemCustomMissilePart && + slots[2] != null && slots[2].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[3].getItem(); - ItemMissile fuselage = (ItemMissile)slots[2].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[3].getItem(); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)slots[2].getItem(); if(part.top == fuselage.bottom && part.type == PartType.FINS) return 1; @@ -256,11 +255,11 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public int thrusterState() { - if(slots[4] != null && slots[4].getItem() instanceof ItemMissile && - slots[2] != null && slots[2].getItem() instanceof ItemMissile) { + if(slots[4] != null && slots[4].getItem() instanceof ItemCustomMissilePart && + slots[2] != null && slots[2].getItem() instanceof ItemCustomMissilePart) { - ItemMissile part = (ItemMissile)slots[4].getItem(); - ItemMissile fuselage = (ItemMissile)slots[2].getItem(); + ItemCustomMissilePart part = (ItemCustomMissilePart)slots[4].getItem(); + ItemCustomMissilePart fuselage = (ItemCustomMissilePart)slots[2].getItem(); if(part.type == PartType.THRUSTER && fuselage.type == PartType.FUSELAGE && part.top == fuselage.bottom && (FuelType)part.attributes[0] == (FuelType)fuselage.attributes[0]) { @@ -317,7 +316,7 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineMissileAssembly(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index 4f62b9aa8..b3b14eacd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -1,7 +1,11 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; -import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerMixer; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -10,39 +14,42 @@ import com.hbm.inventory.recipes.MixerRecipes; import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.INBTPacketReceiver; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.*; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver { - +public class TileEntityMachineMixer extends TileEntityMachineBase implements IControlReceiver, IGUIProvider, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider, IFluidCopiable { + public long power; public static final long maxPower = 10_000; public int progress; public int processTime; public int recipeIndex; - + public float rotation; public float prevRotation; public boolean wasOn = false; private int consumption = 50; - + public FluidTank[] tanks; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineMixer() { super(5); this.tanks = new FluidTank[3]; @@ -58,53 +65,53 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); tanks[2].setType(2, slots); - - UpgradeManager.eval(slots, 3, 4); - int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); - + + upgradeManager.checkSlots(this, slots, 3, 4); + int speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = upgradeManager.getLevel(UpgradeType.POWER); + int overLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + this.consumption = 50; this.consumption += speedLevel * 150; this.consumption -= this.consumption * powerLevel * 0.25; this.consumption *= (overLevel * 3 + 1); - + for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(tanks[0].getTankType() != Fluids.NONE) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(tanks[1].getTankType() != Fluids.NONE) this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - + this.wasOn = this.canProcess(); - + if(this.wasOn) { this.progress++; this.power -= this.getConsumption(); - + this.processTime -= this.processTime * speedLevel / 4; this.processTime /= (overLevel + 1); - + if(processTime <= 0) this.processTime = 1; - + if(this.progress >= this.processTime) { this.process(); this.progress = 0; } - + } else { this.progress = 0; } - + for(DirPos pos : getConPos()) { if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("processTime", processTime); @@ -114,16 +121,16 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB for(int i = 0; i < 3; i++) { tanks[i].writeToNBT(data, i + ""); } - this.networkPack(data, 50); - + this.networkPackNT(50); + } else { - + this.prevRotation = this.rotation; - + if(this.wasOn) { this.rotation += 20F; } - + if(this.rotation >= 360) { this.rotation -= 360; this.prevRotation -= 360; @@ -132,17 +139,29 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.processTime = nbt.getInteger("processTime"); - this.progress = nbt.getInteger("progress"); - this.recipeIndex = nbt.getInteger("recipe"); - this.wasOn = nbt.getBoolean("wasOn"); - for(int i = 0; i < 3; i++) { - tanks[i].readFromNBT(nbt, i + ""); - } + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(processTime); + buf.writeInt(progress); + buf.writeInt(recipeIndex); + buf.writeBoolean(wasOn); + + for(int i = 0; i < tanks.length; i++) tanks[i].serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + processTime = buf.readInt(); + progress = buf.readInt(); + recipeIndex = buf.readInt(); + wasOn = buf.readBoolean(); + + for(int i = 0; i < tanks.length; i++) tanks[i].deserialize(buf); + } + public boolean canProcess() { MixerRecipe[] recipes = MixerRecipes.getOutput(tanks[2].getTankType()); @@ -150,38 +169,38 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB this.recipeIndex = 0; return false; } - + this.recipeIndex = this.recipeIndex % recipes.length; MixerRecipe recipe = recipes[this.recipeIndex]; if(recipe == null) { this.recipeIndex = 0; return false; } - + tanks[0].setTankType(recipe.input1 != null ? recipe.input1.type : Fluids.NONE); tanks[1].setTankType(recipe.input2 != null ? recipe.input2.type : Fluids.NONE); if(recipe.input1 != null && tanks[0].getFill() < recipe.input1.fill) return false; if(recipe.input2 != null && tanks[1].getFill() < recipe.input2.fill) return false; - + /* simplest check would usually go first, but fluid checks also do the setup and we want that to happen even without power */ if(this.power < getConsumption()) return false; - + if(recipe.output + tanks[2].getFill() > tanks[2].getMaxFill()) return false; - + if(recipe.solidInput != null) { - + if(slots[1] == null) return false; - - if(!recipe.solidInput.matchesRecipe(slots[1], true) || recipe.solidInput.stacksize > slots[1].stackSize) return false; + + if(!recipe.solidInput.matchesRecipe(slots[1], true) || recipe.solidInput.stacksize > slots[1].stackSize) return false; } - + this.processTime = recipe.processTime; return true; } - + protected void process() { - + MixerRecipe[] recipes = MixerRecipes.getOutput(tanks[2].getTankType()); MixerRecipe recipe = recipes[this.recipeIndex % recipes.length]; @@ -190,11 +209,11 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB if(recipe.solidInput != null) this.decrStackSize(1, recipe.solidInput.stacksize); tanks[2].setFill(tanks[2].getFill() + recipe.output); } - + public int getConsumption() { return consumption; } - + protected DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), @@ -204,7 +223,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z), }; } - + @Override public int[] getAccessibleSlotsFromSide(int meta) { return new int[] { 1 }; @@ -212,16 +231,16 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - + MixerRecipe[] recipes = MixerRecipes.getOutput(tanks[2].getTankType()); if(recipes == null || recipes.length <= 0) return false; - + MixerRecipe recipe = recipes[this.recipeIndex % recipes.length]; if(recipe == null || recipe.solidInput == null) return false; - + return recipe.solidInput.matchesRecipe(itemStack, true); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -232,11 +251,11 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB this.recipeIndex = nbt.getInteger("recipe"); for(int i = 0; i < 3; i++) this.tanks[i].readFromNBT(nbt, i + ""); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setLong("power", power); nbt.setInteger("progress", progress); nbt.setInteger("processTime", processTime); @@ -281,22 +300,22 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMixer(player.inventory, this); } - + AxisAlignedBB aabb; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(aabb != null) return aabb; - + aabb = AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 3, zCoord + 1); return aabb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -310,7 +329,41 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public void receiveControl(NBTTagCompound data) { - if(data.hasKey("toggle")) this.recipeIndex++; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_mixer)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 6); + return upgrades; + } + + @Override + public FluidTank getTankToPaste() { + return this.tanks[2]; + } + } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java new file mode 100644 index 000000000..35fcc77e6 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java @@ -0,0 +1,411 @@ +package com.hbm.tileentity.machine; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.container.ContainerOreSlopper; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIOreSlopper; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.items.special.ItemBedrockOreBase; +import com.hbm.items.special.ItemBedrockOreNew; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; +import com.hbm.lib.Library; +import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineOreSlopper extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable { + + public long power; + public static final long maxPower = 100_000; + + public static final int waterUsedBase = 1_000; + public int waterUsed = waterUsedBase; + public static final long consumptionBase = 200; + public long consumption = consumptionBase; + + public float progress; + public boolean processing; + + public SlopperAnimation animation = SlopperAnimation.LOWERING; + public float slider; + public float prevSlider; + public float bucket; + public float prevBucket; + public float blades; + public float prevBlades; + public float fan; + public float prevFan; + public int delay; + + public FluidTank[] tanks; + public double[] ores = new double[BedrockOreType.values().length]; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + + public TileEntityMachineOreSlopper() { + super(11); + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(Fluids.WATER, 16_000); + tanks[1] = new FluidTank(Fluids.SLOP, 16_000); + } + + @Override + public String getName() { + return "container.machineOreSlopper"; + } + + public static enum SlopperAnimation { + LOWERING, LIFTING, MOVE_SHREDDER, DUMPING, MOVE_BUCKET + } + + @Override + public void updateEntity() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); + + tanks[0].setType(1, slots); + FluidType conversion = this.getFluidOutput(tanks[0].getTankType()); + if(conversion != null) tanks[1].setTankType(conversion); + + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + this.processing = false; + + upgradeManager.checkSlots(this, slots, 9, 10); + int speed = upgradeManager.getLevel(UpgradeType.SPEED); + int efficiency = upgradeManager.getLevel(UpgradeType.EFFECT); + + this.consumption = this.consumptionBase + (this.consumptionBase * speed) / 2 + (this.consumptionBase * efficiency); + + if(canSlop()) { + this.power -= this.consumption; + this.progress += 1F / (600 - speed * 150); + this.processing = true; + boolean markDirty = false; + + while(progress >= 1F && canSlop()) { + progress -= 1F; + + for(BedrockOreType type : BedrockOreType.values()) { + ores[type.ordinal()] += (ItemBedrockOreBase.getOreAmount(slots[2], type) * (1D + efficiency * 0.1)); + } + + this.decrStackSize(2, 1); + this.tanks[0].setFill(this.tanks[0].getFill() - waterUsed); + this.tanks[1].setFill(this.tanks[1].getFill() + waterUsed); + markDirty = true; + } + + if(markDirty) this.markDirty(); + + List entities = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord + 1, zCoord - 0.5, xCoord + 1.5, yCoord + 3, zCoord + 1.5).offset(dir.offsetX, 0, dir.offsetZ)); + + for(Entity e : entities) { + e.attackEntityFrom(ModDamageSource.turbofan, 1000F); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } + } + + } else { + this.progress = 0; + } + + for(BedrockOreType type : BedrockOreType.values()) { + ItemStack output = ItemBedrockOreNew.make(BedrockOreGrade.BASE, type); + outer: while(ores[type.ordinal()] >= 1) { + for(int i = 3; i <= 8; i++) if(slots[i] != null && slots[i].getItem() == output.getItem() && slots[i].getItemDamage() == output.getItemDamage() && slots[i].stackSize < output.getMaxStackSize()) { + slots[i].stackSize++; ores[type.ordinal()] -= 1F; continue outer; + } + for(int i = 3; i <= 8; i++) if(slots[i] == null) { + slots[i] = output; ores[type.ordinal()] -= 1F; continue outer; + } + break outer; + } + } + + this.networkPackNT(150); + + } else { + + this.prevSlider = this.slider; + this.prevBucket = this.bucket; + this.prevBlades = this.blades; + this.prevFan = this.fan; + + if(this.processing) { + + this.blades += 15F; + this.fan += 35F; + + if(blades >= 360) { + blades -= 360; + prevBlades -= 360; + } + + if(fan >= 360) { + fan -= 360; + prevFan -= 360; + } + + if(animation == animation.DUMPING && MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 4, zCoord + 0.5) <= 50) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(Blocks.iron_block)); + data.setDouble("posX", xCoord + 0.5 + dir.offsetX + worldObj.rand.nextGaussian() * 0.25); + data.setDouble("posY", yCoord + 4.25); + data.setDouble("posZ", zCoord + 0.5 + dir.offsetZ + worldObj.rand.nextGaussian() * 0.25); + data.setDouble("mY", -0.2D); + MainRegistry.proxy.effectNT(data); + } + + if(delay > 0) { + delay--; + return; + } + + switch(animation) { + case LOWERING: + this.bucket += 1F/40F; + if(bucket >= 1F) { + bucket = 1F; + animation = SlopperAnimation.LIFTING; + delay = 20; + } + break; + case LIFTING: + this.bucket -= 1F/40F; + if(bucket <= 0) { + bucket = 0F; + animation = SlopperAnimation.MOVE_SHREDDER; + delay = 10; + } + break; + case MOVE_SHREDDER: + this.slider += 1/50F; + if(slider >= 1F) { + slider = 1F; + animation = SlopperAnimation.DUMPING; + delay = 60; + } + break; + case DUMPING: + animation = SlopperAnimation.MOVE_BUCKET; + break; + case MOVE_BUCKET: + this.slider -= 1/50F; + if(slider <= 0F) { + animation = SlopperAnimation.LOWERING; + delay = 10; + } + break; + } + } + } + } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4, yCoord, zCoord + dir.offsetZ * 4, dir), + new DirPos(xCoord - dir.offsetX * 4, yCoord, zCoord - dir.offsetZ * 4, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), + new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 2, rot), + new DirPos(xCoord + dir.offsetX * 2 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2 - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 2, rot), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 2, rot.getOpposite()) + }; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot == 2 && stack.getItem() == ModItems.bedrock_ore_base; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return i >= 3 && i <= 8; + } + + private static final int[] slot_access = new int[] {2, 3, 4, 5, 6, 7, 8}; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return slot_access; + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeLong(consumption); + buf.writeFloat(progress); + buf.writeBoolean(processing); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.consumption = buf.readLong(); + this.progress = buf.readFloat(); + this.processing = buf.readBoolean(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.progress = nbt.getFloat("progress"); + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "slop"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setFloat("progress", progress); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "slop"); + } + + public boolean canSlop() { + if(this.getFluidOutput(tanks[0].getTankType()) == null) return false; + if(tanks[0].getFill() < waterUsed) return false; + if(tanks[1].getFill() + waterUsed > tanks[1].getMaxFill()) return false; + if(power < consumption) return false; + + return slots[2] != null && slots[2].getItem() == ModItems.bedrock_ore_base; + } + + public FluidType getFluidOutput(FluidType input) { + if(input == Fluids.WATER) return Fluids.SLOP; + return null; + } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + + @Override public FluidTank[] getAllTanks() { return tanks; } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[1]}; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 3, + yCoord, + zCoord - 3, + xCoord + 4, + yCoord + 7, + zCoord + 4 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerOreSlopper(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIOreSlopper(player.inventory, this); + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_ore_slopper)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 50) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (level * 10) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.EFFECT, 3); + return upgrades; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 0f91fdfb6..d8ed532d3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -6,21 +6,21 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineITER; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerPlasmaHeater; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIPlasmaHeater; import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; @@ -29,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyUser, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IFluidCopiable { public long power; public static final long maxPower = 100000000; @@ -40,9 +40,9 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme public TileEntityMachinePlasmaHeater() { super(5); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.DEUTERIUM, 16000, 0); - tanks[1] = new FluidTank(Fluids.TRITIUM, 16000, 1); - plasma = new FluidTank(Fluids.PLASMA_DT, 64000, 2); + tanks[0] = new FluidTank(Fluids.DEUTERIUM, 16_000); + tanks[1] = new FluidTank(Fluids.TRITIUM, 16_000); + plasma = new FluidTank(Fluids.PLASMA_DT, 64_000); } @Override @@ -69,7 +69,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme int powerReq = 10000; int convert = Math.min(tanks[0].getFill(), tanks[1].getFill()); - convert = Math.min(convert, (plasma.getMaxFill() - plasma.getFill())); + convert = Math.min(convert, (plasma.getMaxFill() - plasma.getFill()) / 2); convert = Math.min(convert, maxConv); convert = (int) Math.min(convert, power / powerReq); convert = Math.max(0, convert); @@ -123,13 +123,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme /// END Loading plasma into the ITER /// /// START Notif packets /// - for(int i = 0; i < tanks.length; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - plasma.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - this.networkPack(data, 50); + this.networkPackNT(50); /// END Notif packets /// } } @@ -149,9 +143,23 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme } } } - - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + plasma.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + plasma.deserialize(buf); } private void updateType() { @@ -174,7 +182,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme plasma.setTankType(Fluids.PLASMA_HT); return; } - if(types.contains(Fluids.XENON) && types.contains(Fluids.MERCURY)) { + if(types.contains(Fluids.HELIUM4) && types.contains(Fluids.OXYGEN)) { plasma.setTankType(Fluids.PLASMA_XM); return; } @@ -210,58 +218,6 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme plasma.writeToNBT(nbt, "plasma"); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(plasma.getTankType().name())) - plasma.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - - if(index == 2) - plasma.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - - if(index == 2) - plasma.setTankType(type); - } - @Override public void setPower(long i) { this.power = i; @@ -305,7 +261,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIPlasmaHeater(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java index c049d696e..c927edc0a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java @@ -8,9 +8,10 @@ import com.hbm.items.machine.ItemStamp; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -35,9 +36,9 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU public final static int maxPress = 200; // max tick count per operation assuming speed is 1 boolean isRetracting = false; // direction the press is currently going private int delay; // delay between direction changes to look a bit more appealing - + public ItemStack syncStack; - + public TileEntityMachinePress() { super(4); } @@ -46,26 +47,26 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU public String getName() { return "container.press"; } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + boolean preheated = false; - + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { if(worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ) == ModBlocks.press_preheater) { preheated = true; break; } } - + boolean canProcess = this.canProcess(); - + if((canProcess || this.isRetracting) && this.burnTime >= 200) { this.speed += preheated ? 4 : 1; - + if(this.speed > this.maxSpeed) { this.speed = this.maxSpeed; } @@ -75,23 +76,23 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU this.speed = 0; } } - + if(delay <= 0) { - + int stampSpeed = speed * progressAtMax / maxSpeed; - + if(this.isRetracting) { this.press -= stampSpeed; - + if(this.press <= 0) { this.isRetracting = false; this.delay = 5; } } else if(canProcess) { this.press += stampSpeed; - + if(this.press >= this.maxPress) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", getVolume(1.5F), 1.0F); ItemStack output = PressRecipes.getOutput(slots[2], slots[1]); if(slots[3] == null) { slots[3] = output.copy(); @@ -99,20 +100,20 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU slots[3].stackSize += output.stackSize; } this.decrStackSize(2, 1); - + if(slots[1].getMaxDamage() != 0) { slots[1].setItemDamage(slots[1].getItemDamage() + 1); if(slots[1].getItemDamage() >= slots[1].getMaxDamage()) { slots[1] = null; } } - + this.isRetracting = true; this.delay = 5; if(this.burnTime >= 200) { this.burnTime -= 200; // only subtract fuel if operation was actually successful } - + this.markDirty(); } } else if(this.press > 0){ @@ -121,10 +122,10 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU } else { delay--; } - + if(slots[0] != null && burnTime < 200 && TileEntityFurnace.getItemBurnTime(slots[0]) > 0) { // less than one operation stored? burn more fuel! burnTime += TileEntityFurnace.getItemBurnTime(slots[0]); - + if(slots[0].stackSize == 1 && slots[0].getItem().hasContainerItem(slots[0])) { slots[0] = slots[0].getItem().getContainerItem(slots[0]).copy(); } else { @@ -132,24 +133,14 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU } this.markChanged(); } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("speed", speed); - data.setInteger("burnTime", burnTime); - data.setInteger("press", press); - if(slots[2] != null) { - NBTTagCompound stack = new NBTTagCompound(); - slots[2].writeToNBT(stack); - data.setTag("stack", stack); - } - - this.networkPack(data, 50); - + + this.networkPackNT(50); + } else { - + // approach-based interpolation, GO! this.lastPress = this.renderPress; - + if(this.turnProgress > 0) { this.renderPress = this.renderPress + ((this.syncPress - this.renderPress) / (double) this.turnProgress); --this.turnProgress; @@ -158,31 +149,35 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU } } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.speed = nbt.getInteger("speed"); - this.burnTime = nbt.getInteger("burnTime"); - this.syncPress = nbt.getInteger("press"); - - if(nbt.hasKey("stack")) { - NBTTagCompound stack = nbt.getCompoundTag("stack"); - this.syncStack = ItemStack.loadItemStackFromNBT(stack); - } else { - this.syncStack = null; - } - + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.speed); + buf.writeInt(this.burnTime); + buf.writeInt(this.press); + BufferUtil.writeItemStack(buf, slots[2]); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.speed = buf.readInt(); + this.burnTime = buf.readInt(); + this.syncPress = buf.readInt(); + this.syncStack = BufferUtil.readItemStack(buf); + this.turnProgress = 2; } - + public boolean canProcess() { if(burnTime < 200) return false; if(slots[1] == null || slots[2] == null) return false; - + ItemStack output = PressRecipes.getOutput(slots[2], slots[1]); - + if(output == null) return false; - + if(slots[3] == null) return true; if(slots[3].stackSize + output.stackSize <= slots[3].getMaxStackSize() && slots[3].getItem() == output.getItem() && slots[3].getItemDamage() == output.getItemDamage()) return true; return false; @@ -190,16 +185,16 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - + if(stack.getItem() instanceof ItemStamp) return i == 1; - + if(TileEntityFurnace.getItemBurnTime(stack) > 0 && i == 0) return true; - + return i == 2; } - + @Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] { 0, 1, 2, 3 }; @@ -214,7 +209,7 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU public boolean canExtractItem(int i, ItemStack itemStack, int j) { return i == 3; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -232,19 +227,19 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU nbt.setInteger("speed", speed); nbt.setBoolean("ret", isRetracting); } - + AxisAlignedBB aabb; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(aabb != null) return aabb; - + aabb = AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 3, zCoord + 1); return aabb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -258,7 +253,7 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachinePress(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java new file mode 100644 index 000000000..46131c44b --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java @@ -0,0 +1,204 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; +import java.util.HashSet; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.*; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.util.AxisAlignedBB; + +public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver, IConfigurableMachine, IFluidCopiable { + + public static final HashSet validBlocks = new HashSet(); + + static { + validBlocks.add(Blocks.grass); + validBlocks.add(Blocks.dirt); + validBlocks.add(Blocks.sand); + validBlocks.add(Blocks.mycelium); + validBlocks.add(ModBlocks.waste_earth); + validBlocks.add(ModBlocks.dirt_dead); + validBlocks.add(ModBlocks.dirt_oily); + validBlocks.add(ModBlocks.sand_dirty); + validBlocks.add(ModBlocks.sand_dirty_red); + } + + public FluidTank water; + + public boolean isOn = false; + public float rotor; + public float lastRotor; + public boolean onGround = false; + public int groundCheckDelay = 0; + + public static int groundHeight = 70; + public static int groundDepth = 4; + public static int steamSpeed = 1_000; + public static int electricSpeed = 10_000; + + @Override + public String getConfigName() { + return "waterpump"; + } + + @Override + public void readIfPresent(JsonObject obj) { + groundHeight = IConfigurableMachine.grab(obj, "I:groundHeight", groundHeight); + groundDepth = IConfigurableMachine.grab(obj, "I:groundDepth", groundDepth); + steamSpeed = IConfigurableMachine.grab(obj, "I:steamSpeed", steamSpeed); + electricSpeed = IConfigurableMachine.grab(obj, "I:electricSpeed", electricSpeed); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:groundHeight").value(groundHeight); + writer.name("I:groundDepth").value(groundDepth); + writer.name("I:steamSpeed").value(steamSpeed); + writer.name("I:electricSpeed").value(electricSpeed); + } + + public void updateEntity() { + + if(!worldObj.isRemote) { + + for(DirPos pos : getConPos()) { + if(water.getFill() > 0) this.sendFluid(water, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + if(groundCheckDelay > 0) { + groundCheckDelay--; + } else { + onGround = this.checkGround(); + } + + this.isOn = false; + if(this.canOperate() && yCoord <= groundHeight && onGround) { + this.isOn = true; + this.operate(); + } + + networkPackNT(150); + + } else { + + this.lastRotor = this.rotor; + if(this.isOn) this.rotor += 10F; + + if(this.rotor >= 360F) { + this.rotor -= 360F; + this.lastRotor -= 360F; + + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", 0.5F, 0.75F); + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "game.neutral.swim.splash", 1F, 0.5F); + } + } + } + + protected boolean checkGround() { + + if(worldObj.provider.hasNoSky) return false; + + int validBlocks = 0; + int invalidBlocks = 0; + + for(int x = -1; x <= 1; x++) { + for(int y = -1; y >= -groundDepth; y--) { + for(int z = -1; z <= 1; z++) { + + Block b = worldObj.getBlock(xCoord + x, yCoord + y, zCoord + z); + + if(y == -1 && !b.isNormalCube()) return false; // first layer has to be full solid + + if(this.validBlocks.contains(b)) validBlocks++; + else invalidBlocks ++; + } + } + } + + return validBlocks >= invalidBlocks; // valid block count has to be at least 50% + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.isOn); + buf.writeBoolean(this.onGround); + water.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + this.isOn = buf.readBoolean(); + this.onGround = buf.readBoolean(); + water.deserialize(buf); + } + + protected abstract boolean canOperate(); + protected abstract void operate(); + + protected DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {water}; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {water}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[0]; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 5, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public FluidTank getTankToPaste() { + return null; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java new file mode 100644 index 000000000..d0990e5f2 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java @@ -0,0 +1,69 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import io.netty.buffer.ByteBuf; + +public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase implements IEnergyReceiverMK2 { + + public long power; + public static final long maxPower = 10_000; + + public TileEntityMachinePumpElectric() { + super(); + water = new FluidTank(Fluids.WATER, electricSpeed * 100); + } + + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + super.updateEntity(); + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + } + + @Override + protected boolean canOperate() { + return power >= 1_000 && water.getFill() < water.getMaxFill(); + } + + @Override + protected void operate() { + this.power -= 1_000; + water.setFill(Math.min(water.getFill() + electricSpeed, water.getMaxFill())); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void setPower(long power) { + this.power = power; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java new file mode 100644 index 000000000..eb37f7d03 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java @@ -0,0 +1,76 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.fauxpointtwelve.DirPos; + +import io.netty.buffer.ByteBuf; + +public class TileEntityMachinePumpSteam extends TileEntityMachinePumpBase { + + public FluidTank steam; + public FluidTank lps; + + public TileEntityMachinePumpSteam() { + super(); + water = new FluidTank(Fluids.WATER, steamSpeed * 100); + steam = new FluidTank(Fluids.STEAM, 1_000); + lps = new FluidTank(Fluids.SPENTSTEAM, 10); + } + + public void updateEntity() { + + if(!worldObj.isRemote) { + + for(DirPos pos : getConPos()) { + this.trySubscribe(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(lps.getFill() > 0) { + this.sendFluid(lps, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + } + + super.updateEntity(); + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {water, steam, lps}; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {water, lps}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {steam}; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + steam.serialize(buf); + lps.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + steam.deserialize(buf); + lps.deserialize(buf); + } + + @Override + protected boolean canOperate() { + return steam.getFill() >= 100 && lps.getMaxFill() - lps.getFill() > 0 && water.getFill() < water.getMaxFill(); + } + + @Override + protected void operate() { + steam.setFill(steam.getFill() - 100); + lps.setFill(lps.getFill() + 1); + water.setFill(Math.min(water.getFill() + steamSpeed, water.getMaxFill())); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index b770c4111..e5a502f0c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -4,17 +4,16 @@ import com.hbm.config.VersatileConfig; import com.hbm.inventory.container.ContainerMachineRTG; import com.hbm.inventory.gui.GUIMachineRTG; import com.hbm.items.machine.ItemRTGPellet; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.RTGUtil; -import api.hbm.energy.IEnergyGenerator; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -24,19 +23,19 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IGUIProvider { +public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISidedInventory, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC { private ItemStack slots[]; - + public int heat; public final int heatMax = VersatileConfig.rtgDecay() ? 600 : 200; public long power; public final long powerMax = 100000; - + public static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; - + private String customName; - + public TileEntityMachineRTG() { slots = new ItemStack[15]; } @@ -81,7 +80,7 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } - + public void setCustomName(String name) { this.customName = name; } @@ -100,7 +99,7 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; } } - + //You scrubs aren't needed for anything (right now) @Override public void openInventory() {} @@ -111,7 +110,7 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided public boolean isItemValidForSlot(int i, ItemStack itemStack) { return itemStack.getItem() instanceof ItemRTGPellet; } - + @Override public ItemStack decrStackSize(int i, int j) { if(slots[i] != null) @@ -127,22 +126,22 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided { slots[i] = null; } - + return itemStack1; } else { return null; } } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - power = nbt.getInteger("power"); + power = nbt.getLong("power"); heat = nbt.getInteger("heat"); slots = new ItemStack[getSizeInventory()]; - + for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound nbt1 = list.getCompoundTagAt(i); @@ -153,31 +152,29 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided } } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setInteger("power", (short) (power)); - nbt.setInteger("heat", (short) (heat)); + nbt.setLong("power", power); + nbt.setInteger("heat", heat); NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { + + for(int i = 0; i < slots.length; i++) { + if(slots[i] != null) { NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); + nbt1.setByte("slot", (byte) i); slots[i].writeToNBT(nbt1); list.appendTag(nbt1); } } nbt.setTag("items", list); } - + @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_){ - return slot_io; - } + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return slot_io; + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { @@ -188,19 +185,19 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided public boolean canExtractItem(int i, ItemStack itemStack, int j) { return false; } - + public long getPowerScaled(long i) { return (power * i) / powerMax; } - + public int getHeatScaled(int i) { return (heat * i) / heatMax; } - + public boolean hasPower() { return power > 0; } - + public boolean hasHeat() { return RTGUtil.hasHeat(slots, slot_io); } @@ -209,23 +206,35 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided public void updateEntity() { if(!worldObj.isRemote) { - + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir.getOpposite()); - + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + heat = RTGUtil.updateRTGs(slots, slot_io); - + if(heat > heatMax) heat = heatMax; - + power += heat * 5; if(power > powerMax) power = powerMax; - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + networkPackNT(50); } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + } + @Override public long getPower() { return power; @@ -248,7 +257,13 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineRTG(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.heat > 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, heat * 5D); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java index 6549a7e90..3c80edfc5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java @@ -11,13 +11,17 @@ import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.Tuple.Triplet; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -27,12 +31,13 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadGen extends TileEntityMachineBase implements IEnergyGenerator, IGUIProvider { +public class TileEntityMachineRadGen extends TileEntityMachineBase implements IEnergyProviderMK2, IGUIProvider, IInfoProviderEC { public int[] progress = new int[12]; public int[] maxProgress = new int[12]; public int[] production = new int[12]; public ItemStack[] processing = new ItemStack[12]; + protected int output; public long power; public static final long maxPower = 1000000; @@ -52,9 +57,11 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE public void updateEntity() { if(!worldObj.isRemote) { + + this.output = 0; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.sendPower(worldObj, this.xCoord - dir.offsetX * 4, this.yCoord, this.zCoord - dir.offsetZ * 4, dir.getOpposite()); + this.tryProvide(worldObj, this.xCoord - dir.offsetX * 4, this.yCoord, this.zCoord - dir.offsetZ * 4, dir.getOpposite()); //check if reload necessary for any queues for(int i = 0; i < 12; i++) { @@ -81,6 +88,7 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE this.isOn = true; this.power += production[i]; + this.output += production[i]; progress[i]++; if(progress[i] >= maxProgress[i]) { @@ -104,24 +112,29 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE if(this.power > maxPower) this.power = maxPower; - - NBTTagCompound data = new NBTTagCompound(); - data.setIntArray("progress", this.progress); - data.setIntArray("maxProgress", this.maxProgress); - data.setIntArray("production", this.production); - data.setLong("power", this.power); - data.setBoolean("isOn", this.isOn); - this.networkPack(data, 50); + + this.networkPackNT(50); } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.progress = nbt.getIntArray("progress"); - this.maxProgress = nbt.getIntArray("maxProgress"); - this.production = nbt.getIntArray("production"); - this.power = nbt.getLong("power"); - this.isOn = nbt.getBoolean("isOn"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + BufferUtil.writeIntArray(buf, this.progress); + BufferUtil.writeIntArray(buf, this.maxProgress); + BufferUtil.writeIntArray(buf, this.production); + buf.writeLong(this.power); + buf.writeBoolean(this.isOn); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.progress = BufferUtil.readIntArray(buf); + this.maxProgress = BufferUtil.readIntArray(buf); + this.production = BufferUtil.readIntArray(buf); + this.power = buf.readLong(); + this.isOn = buf.readBoolean(); } @Override @@ -212,15 +225,16 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE static { for(int i = 0; i < ItemWasteShort.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(150, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(15, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(1500, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(150, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); } for(int i = 0; i < ItemWasteLong.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(50, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(5, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(500, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(50, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); } - - fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(5, 5 * 60 * 20, null)); + + fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(50, 5 * 60 * 20, null)); + fuels.put( new ComparableStack(ModItems.gem_rad), new Triplet(25_000, 30 * 60 * 20, new ItemStack(Items.diamond))); } private Triplet grabResult(ItemStack stack) { @@ -283,7 +297,12 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineRadGen(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java deleted file mode 100644 index fb3d4b4e0..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ /dev/null @@ -1,342 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.WeaponConfig; -import com.hbm.extprop.HbmLivingProps; -import com.hbm.inventory.container.ContainerMachineRadar; -import com.hbm.inventory.gui.GUIMachineRadar; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityTickingBase; - -import api.hbm.energy.IEnergyUser; -import api.hbm.entity.IRadarDetectable; -import api.hbm.entity.IRadarDetectable.RadarTargetType; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; - -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineRadar extends TileEntityTickingBase implements IEnergyUser, IGUIProvider, SimpleComponent { - - public List entList = new ArrayList(); - public List nearbyMissiles = new ArrayList(); - int pingTimer = 0; - int lastPower; - final static int maxTimer = 80; - - public boolean scanMissiles = true; - public boolean scanPlayers = true; - public boolean smartMode = true; - public boolean redMode = true; - - public boolean jammed = false; - - public float prevRotation; - public float rotation; - - public long power = 0; - public static final int maxPower = 100000; - - @Override - public String getInventoryName() { - return ""; - } - - @Override - public void updateEntity() { - - if(this.yCoord < WeaponConfig.radarAltitude) - return; - - if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); - - nearbyMissiles.clear(); - - if(power > 0) { - - allocateMissiles(); - - power -= 500; - - if(power < 0) - power = 0; - } - - if(this.lastPower != getRedPower()) - worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); - - sendMissileData(); - lastPower = getRedPower(); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { - - pingTimer++; - - if(power > 0 && pingTimer >= maxTimer) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); - pingTimer = 0; - } - } - } else { - - prevRotation = rotation; - - if(power > 0) { - rotation += 5F; - } - - if(rotation >= 360) { - rotation -= 360F; - prevRotation -= 360F; - } - } - } - - public void handleButtonPacket(int value, int meta) { - - switch(meta) { - case 0: this.scanMissiles = !this.scanMissiles; break; - case 1: this.scanPlayers = !this.scanPlayers; break; - case 2: this.smartMode = !this.smartMode; break; - case 3: this.redMode = !this.redMode; break; - } - } - - private void allocateMissiles() { - - nearbyMissiles.clear(); - entList.clear(); - jammed = false; - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - WeaponConfig.radarRange, 0, zCoord + 0.5 - WeaponConfig.radarRange, xCoord + 0.5 + WeaponConfig.radarRange, 5000, zCoord + 0.5 + WeaponConfig.radarRange)); - - for(Entity e : list) { - - if(e.posY < yCoord + WeaponConfig.radarBuffer) - continue; - - if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { - this.jammed = true; - nearbyMissiles.clear(); - entList.clear(); - return; - } - - if(e instanceof EntityPlayer && this.scanPlayers) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, RadarTargetType.PLAYER.ordinal(), (int)e.posY }); - entList.add(e); - } - - if(e instanceof IRadarDetectable && this.scanMissiles) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, ((IRadarDetectable)e).getTargetType().ordinal(), (int)e.posY }); - - if(!this.smartMode || e.motionY <= 0) - entList.add(e); - } - } - } - - public int getRedPower() { - - if(!entList.isEmpty()) { - - /// PROXIMITY /// - if(redMode) { - - double maxRange = WeaponConfig.radarRange * Math.sqrt(2D); - - int power = 0; - - for(int i = 0; i < entList.size(); i++) { - - Entity e = entList.get(i); - double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); - int p = 15 - (int)Math.floor(dist / maxRange * 15); - - if(p > power) - power = p; - } - - return power; - - /// TIER /// - } else { - - int power = 0; - - for(int i = 0; i < nearbyMissiles.size(); i++) { - - if(nearbyMissiles.get(i)[3] + 1 > power) { - power = nearbyMissiles.get(i)[3] + 1; - } - } - - return power; - } - } - - return 0; - } - - private void sendMissileData() { - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setBoolean("scanMissiles", scanMissiles); - data.setBoolean("scanPlayers", scanPlayers); - data.setBoolean("smartMode", smartMode); - data.setBoolean("redMode", redMode); - data.setBoolean("jammed", jammed); - data.setInteger("count", this.nearbyMissiles.size()); - - for(int i = 0; i < this.nearbyMissiles.size(); i++) { - data.setInteger("x" + i, this.nearbyMissiles.get(i)[0]); - data.setInteger("z" + i, this.nearbyMissiles.get(i)[1]); - data.setInteger("type" + i, this.nearbyMissiles.get(i)[2]); - data.setInteger("y" + i, this.nearbyMissiles.get(i)[3]); - } - - this.networkPack(data, 15); - } - - public void networkUnpack(NBTTagCompound data) { - - this.nearbyMissiles.clear(); - this.power = data.getLong("power"); - this.scanMissiles = data.getBoolean("scanMissiles"); - this.scanPlayers = data.getBoolean("scanPlayers"); - this.smartMode = data.getBoolean("smartMode"); - this.redMode = data.getBoolean("redMode"); - this.jammed = data.getBoolean("jammed"); - - int count = data.getInteger("count"); - - for(int i = 0; i < count; i++) { - - int x = data.getInteger("x" + i); - int z = data.getInteger("z" + i); - int type = data.getInteger("type" + i); - int y = data.getInteger("y" + i); - - this.nearbyMissiles.add(new int[] {x, z, type, y}); - } - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.power = nbt.getLong("power"); - this.scanMissiles = nbt.getBoolean("scanMissiles"); - this.scanPlayers = nbt.getBoolean("scanPlayers"); - this.smartMode = nbt.getBoolean("smartMode"); - this.redMode = nbt.getBoolean("redMode"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - nbt.setBoolean("scanMissiles", scanMissiles); - nbt.setBoolean("scanPlayers", scanPlayers); - nbt.setBoolean("smartMode", smartMode); - nbt.setBoolean("redMode", redMode); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - // do some opencomputer stuff - - @Override - public String getComponentName() { - return "ntm_radar"; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getPower(Context context, Arguments args) { - return new Object[] {power}; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] isJammed(Context context, Arguments args) { - return new Object[] {jammed}; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getEntities(Context context, Arguments args) { - int index = args.checkInteger(0); - boolean raw = args.checkBoolean(1); - if(!raw && !jammed) { - Entity e = entList.get(index); - double a = (e.posX); - double b = (e.posY); - double c = (e.posZ); - boolean d = (e instanceof EntityPlayer); - return new Object[] {a, b, c, d}; - } else if (!jammed) { - return new Object[] {entList}; - } else { - return new Object[] {"Radar jammed!"}; - } - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineRadar(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineRadar(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java new file mode 100644 index 000000000..79b60e6b5 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarLarge.java @@ -0,0 +1,63 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.lib.Library; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.util.fauxpointtwelve.DirPos; + +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityMachineRadarLarge extends TileEntityMachineRadarNT { + + public static int radarLargeRange = 3_000; + + @Override + public String getConfigName() { + return "radar_large"; + } + + @Override + public void readIfPresent(JsonObject obj) { + radarLargeRange = IConfigurableMachine.grab(obj, "I:radarLargeRange", radarLargeRange); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:radarLargeRange").value(radarLargeRange); + } + + @Override + public int getRange() { + return radarLargeRange; + } + + @Override + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z), + }; + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 5, + yCoord, + zCoord - 5, + xCoord + 6, + yCoord + 10, + zCoord + 6 + ); + } + + return bb; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java new file mode 100644 index 000000000..b830abfe9 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -0,0 +1,736 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.handler.CompatHandler; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerMachineRadarNT; +import com.hbm.inventory.gui.GUIMachineRadarNT; +import com.hbm.inventory.gui.GUIMachineRadarNTSlots; +import com.hbm.items.ISatChip; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemCoordinateBase; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.saveddata.SatelliteSavedData; +import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.SatelliteHorizons; +import com.hbm.saveddata.satellites.SatelliteLaser; +import com.hbm.saveddata.satellites.SatelliteResonator; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Triplet; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.world.WorldUtil; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.entity.IRadarDetectable; +import api.hbm.entity.IRadarDetectableNT; +import api.hbm.entity.IRadarDetectableNT.RadarScanParams; +import api.hbm.entity.RadarEntry; +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +/** + * Now with SmЯt™ lag-free entity detection! (patent pending) + * @author hbm + */ +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IConfigurableMachine, IControlReceiver, SimpleComponent, CompatHandler.OCComponent { + + public boolean scanMissiles = true; + public boolean scanShells = true; + public boolean scanPlayers = true; + public boolean smartMode = true; + public boolean redMode = true; + public boolean showMap = false; + + public boolean jammed = false; + + public float prevRotation; + public float rotation; + + public long power = 0; + + protected int pingTimer = 0; + protected int lastPower; + protected final static int maxTimer = 80; + + public static int maxPower = 100_000; + public static int consumption = 500; + public static int radarRange = 1_000; + public static int radarBuffer = 30; + public static int radarAltitude = 55; + public static int chunkLoadCap = 10; + public static boolean generateChunks = false; + + public byte[] map = new byte[40_000]; + public boolean clearFlag = false; + + public List entries = new ArrayList(); + + @Override + public String getConfigName() { + return "radar"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); + consumption = IConfigurableMachine.grab(obj, "L:consumption", consumption); + radarRange = IConfigurableMachine.grab(obj, "I:radarRange", radarRange); + radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer); + radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude); + chunkLoadCap = IConfigurableMachine.grab(obj, "I:chunkLoadCap", chunkLoadCap); + generateChunks = IConfigurableMachine.grab(obj, "B:generateChunks", generateChunks); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:powerCap").value(maxPower); + writer.name("L:consumption").value(consumption); + writer.name("I:radarRange").value(radarRange); + writer.name("I:radarBuffer").value(radarBuffer); + writer.name("I:radarAltitude").value(radarAltitude); + writer.name("B:generateChunks").value(generateChunks); + } + + public TileEntityMachineRadarNT() { + super(10); + } + + @Override + public String getName() { + return "container.radar"; + } + + public int getRange() { + return radarRange; + } + + @Override + public void updateEntity() { + + if(this.map == null || this.map.length != 40_000) this.map = new byte[40_000]; + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 9, power, maxPower); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); + this.jammed = false; + allocateTargets(); + + if(this.lastPower != getRedPower()) { + this.markChanged(); + for(DirPos pos : getConPos()) this.updateRedstoneConnection(pos); + } + lastPower = getRedPower(); + + if(!this.muffled) { + + pingTimer++; + + if(power > 0 && pingTimer >= maxTimer) { + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); + pingTimer = 0; + } + } + + if(this.showMap) { + int chunkLoads = 0; + for(int i = 0; i < 100; i++) { + int index = (int) (worldObj.getTotalWorldTime() % 400) * 100 + i; + int iX = (index % 200) * getRange() * 2 / 200; + int iZ = index / 200 * getRange() * 2 / 200; + + int x = xCoord - getRange() + iX; + int z = zCoord - getRange() + iZ; + + if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) { + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + } else { + if(this.map[index] == 0 && chunkLoads < chunkLoadCap) { + if(this.generateChunks) { + worldObj.getChunkFromChunkCoords(x >> 4, z >> 4); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + chunkLoads++; + } else { + WorldUtil.provideChunk((WorldServer) worldObj, x >> 4, z >> 4); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) chunkLoads++; + } + } + } + } + } + + if(slots[8] != null && slots[8].getItem() == ModItems.radar_linker) { + BlockPos pos = ItemCoordinateBase.getPosition(slots[8]); + if(pos != null) { + TileEntity tile = worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + if(tile instanceof TileEntityMachineRadarScreen) { + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) tile; + screen.entries.clear(); + screen.entries.addAll(this.entries); + screen.refX = xCoord; + screen.refY = yCoord; + screen.refZ = zCoord; + screen.range = this.getRange(); + screen.linked = true; + networkPackNT(25); + } + } + } + + this.networkPackNT(50); + if(this.clearFlag) { + this.map = new byte[40_000]; + this.clearFlag = false; + } + } else { + prevRotation = rotation; + if(power > 0) rotation += 5F; + + if(rotation >= 360) { + rotation -= 360F; + prevRotation -= 360F; + } + } + } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z), + }; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeBoolean(this.scanMissiles); + buf.writeBoolean(this.scanShells); + buf.writeBoolean(this.scanPlayers); + buf.writeBoolean(this.smartMode); + buf.writeBoolean(this.redMode); + buf.writeBoolean(this.showMap); + buf.writeBoolean(this.jammed); + buf.writeInt(entries.size()); + for(RadarEntry entry : entries) entry.toBytes(buf); + if(this.clearFlag) { + buf.writeBoolean(true); + } else { + buf.writeBoolean(false); + if(this.showMap) { + buf.writeBoolean(true); + short index = (short) (worldObj.getTotalWorldTime() % 400); + buf.writeShort(index); + for(int i = index * 100; i < (index + 1) * 100; i++) { + buf.writeByte(this.map[i]); + } + } else { + buf.writeBoolean(false); + } + } + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.scanMissiles = buf.readBoolean(); + this.scanShells = buf.readBoolean(); + this.scanPlayers = buf.readBoolean(); + this.smartMode = buf.readBoolean(); + this.redMode = buf.readBoolean(); + this.showMap = buf.readBoolean(); + this.jammed = buf.readBoolean(); + int count = buf.readInt(); + this.entries.clear(); + for(int i = 0; i < count; i++) { + RadarEntry entry = new RadarEntry(); + entry.fromBytes(buf); + this.entries.add(entry); + } + if(buf.readBoolean()) { // clear flag + this.map = new byte[40_000]; + } else { + if(buf.readBoolean()) { // map enabled + int index = buf.readShort(); + for(int i = index * 100; i < (index + 1) * 100; i++) { + this.map[i] = buf.readByte(); + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.scanMissiles = nbt.getBoolean("scanMissiles"); + this.scanShells = nbt.getBoolean("scanShells"); + this.scanPlayers = nbt.getBoolean("scanPlayers"); + this.smartMode = nbt.getBoolean("smartMode"); + this.redMode = nbt.getBoolean("redMode"); + this.showMap = nbt.getBoolean("showMap"); + if(nbt.hasKey("map")) this.map = nbt.getByteArray("map"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setBoolean("scanMissiles", scanMissiles); + nbt.setBoolean("scanShells", scanShells); + nbt.setBoolean("scanPlayers", scanPlayers); + nbt.setBoolean("smartMode", smartMode); + nbt.setBoolean("redMode", redMode); + nbt.setBoolean("showMap", showMap); + nbt.setByteArray("map", map); + } + + protected void allocateTargets() { + this.entries.clear(); + + if(this.yCoord < radarAltitude) return; + if(this.power < consumption) return; + this.power -= consumption; + + int scan = this.getRange(); + + RadarScanParams params = new RadarScanParams(this.scanMissiles, this.scanShells, this.scanPlayers, this.smartMode); + + for(Entity e : matchingEntities) { + + if(e.dimension == worldObj.provider.dimensionId && Math.abs(e.posX - (xCoord + 0.5)) <= scan && Math.abs(e.posZ - (zCoord + 0.5)) <= scan && e.posY - yCoord > radarBuffer) { + + if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { + this.jammed = true; + entries.clear(); + return; + } + + for(Function, RadarEntry> converter : converters) { + + RadarEntry entry = converter.apply(new Triplet(e, this, params)); + if(entry != null) { + this.entries.add(entry); + break; + } + } + } + } + } + + public int getRedPower() { + + if(!entries.isEmpty()) { + + /// PROXIMITY /// + if(redMode) { + + double maxRange = this.getRange() * Math.sqrt(2D); + int power = 0; + + for(int i = 0; i < entries.size(); i++) { + RadarEntry e = entries.get(i); + if(!e.redstone) continue; + double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); + int p = 15 - (int)Math.floor(dist / maxRange * 15); + + if(p > power) power = p; + } + + return power; + + /// TIER /// + } else { + + int power = 0; + + for(int i = 0; i < entries.size(); i++) { + RadarEntry e = entries.get(i); + if(!e.redstone) continue; + if(e.blipLevel + 1 > power) { + power = e.blipLevel + 1; + } + } + + return power; + } + } + + return 0; + } + + @Override + public void setPower(long i) { + power = i; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override public void receiveControl(NBTTagCompound data) { } + + @Override + public void receiveControl(EntityPlayer player, NBTTagCompound data) { + + if(data.hasKey("missiles")) this.scanMissiles = !this.scanMissiles; + if(data.hasKey("shells")) this.scanShells = !this.scanShells; + if(data.hasKey("players")) this.scanPlayers = !this.scanPlayers; + if(data.hasKey("smart")) this.smartMode = !this.smartMode; + if(data.hasKey("red")) this.redMode = !this.redMode; + if(data.hasKey("map")) this.showMap = !this.showMap; + if(data.hasKey("clear")) this.clearFlag = true; + + if(data.hasKey("gui1")) FMLNetworkHandler.openGui(player, MainRegistry.instance, 1, worldObj, xCoord, yCoord, zCoord); + + if(data.hasKey("link")) { + int id = data.getInteger("link"); + ItemStack link = slots[id]; + + if(link != null && link.getItem() == ModItems.sat_relay) { + World world = player.getEntityWorld(); + Satellite sat = SatelliteSavedData.getData(world).getSatFromFreq(ISatChip.getFreqS(link)); + if(sat instanceof SatelliteLaser) { + if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + sat.onClick(world, x, z); + } + } + if(sat instanceof SatelliteHorizons) { + if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + int y = 60; //one day I will make radars transmit Y coordinate as well and you will be butchered alhamdulila + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + sat.onCoordAction(world, player, x, y, z); + } + } + if(sat instanceof SatelliteResonator) { + if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + int y = world.getTopSolidOrLiquidBlock(x, z); //the top fucking block because I will never make radars transmit Y coordinates as well! + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + sat.onCoordAction(world, player, x, y, z); + } + } + } + if(link != null && link.getItem() == ModItems.radar_linker) { + BlockPos pos = ItemCoordinateBase.getPosition(link); + + if(pos != null) { + TileEntity tile = worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + if(tile instanceof IRadarCommandReceiver) { + IRadarCommandReceiver rec = (IRadarCommandReceiver) tile; + + if(data.hasKey("launchEntity")) { + Entity entity = worldObj.getEntityByID(data.getInteger("launchEntity")); + if(entity != null) { + if(rec.sendCommandEntity(entity)) { + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } + } + } else if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + if(rec.sendCommandPosition(x, yCoord, z)) { + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } + } + } + } + } + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return true; + } + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(ID == 1) return new ContainerMachineRadarNT(player.inventory, this); + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(ID == 0) return new GUIMachineRadarNT(this); + if(ID == 1) return new GUIMachineRadarNTSlots(player.inventory, this); + return null; + } + + /** List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry + The converters coming first have the highest priority */ + public static List, RadarEntry>> converters = new ArrayList(); + public static List classes = new ArrayList(); + public static List matchingEntities = new ArrayList(); + + /** + * Iterates over every entity in the world and add them to the matchingEntities list if the class is in the detectable list + * From this compiled list, radars can easily grab the required entities since we can assume that the total amount of detectable entities is comparatively low + */ + public static void updateSystem() { + matchingEntities.clear(); + + for(WorldServer world : MinecraftServer.getServer().worldServers) { + for(Object entity : world.loadedEntityList) { + for(Class clazz : classes) { + if(clazz.isAssignableFrom(entity.getClass())) { + matchingEntities.add((Entity) entity); + break; + } + } + } + } + } + + /** Registers a class that if an entity inherits that class, it is picked up by the system */ + public static void registerEntityClasses() { + classes.add(IRadarDetectableNT.class); + classes.add(IRadarDetectable.class); + classes.add(EntityPlayer.class); + } + + /** Registers converters. Converters are used to go over the list of detected entities and turn them into a RadarEntry using the entity instance and the radar's instance. */ + public static void registerConverters() { + //IRadarDetectableNT + converters.add(x -> { + Entity e = x.getX(); + if(e instanceof IRadarDetectableNT) { + IRadarDetectableNT detectable = (IRadarDetectableNT) e; + if(detectable.canBeSeenBy(x.getY()) && detectable.paramsApplicable(x.getZ())) return new RadarEntry(detectable, e, detectable.suppliesRedstone(x.getZ())); + } + return null; + }); + //IRadarDetectable, Legacy + converters.add(x -> { + Entity e = x.getX(); + RadarScanParams params = x.getZ(); + if(e instanceof IRadarDetectable && params.scanMissiles) { + return new RadarEntry((IRadarDetectable) e, e); + } + return null; + }); + //Players + converters.add(x -> { + if(x.getX() instanceof EntityPlayer && x.getZ().scanPlayers) return new RadarEntry((EntityPlayer) x.getX()); + return null; + }); + } + + //OC compat! + + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_radar"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getSettings(Context context, Arguments args) { + return new Object[] {scanMissiles, scanShells, scanPlayers, smartMode}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getRange(Context context, Arguments args) { + return new Object[] {this.getRange()}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setSettings(Context context, Arguments args) { + this.scanMissiles = args.checkBoolean(0); + this.scanShells = args.checkBoolean(1); + this.scanPlayers = args.checkBoolean(2); + this.smartMode = args.checkBoolean(3); + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] isJammed(Context context, Arguments args) { + return new Object[] {this.jammed}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getAmount(Context context, Arguments args) { + return new Object[] {entries.size()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] isIndexPlayer(Context context, Arguments args) { + int index = args.checkInteger(0) - 1; + if(index > entries.size() || index < 0) { + return new Object[] {null, "No entity exists at that index."}; + } + RadarEntry e = entries.get(index); + return new Object[] {e.blipLevel == IRadarDetectableNT.PLAYER}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getIndexType(Context context, Arguments args) { + int index = args.checkInteger(0) - 1; + if(index > entries.size() || index < 0) { + return new Object[] {null, "No entity exists at that index."}; + } + RadarEntry e = entries.get(index); + return new Object[] {e.blipLevel}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getEntityAtIndex(Context context, Arguments args) { + int index = args.checkInteger(0) - 1; + if(index > entries.size() || index < 0) { + return new Object[] {null, "No entity exists at that index."}; + } + RadarEntry e = entries.get(index); + int type = e.blipLevel; + if(e.blipLevel == IRadarDetectableNT.PLAYER) { + return new Object[]{true, e.posX, e.posY, e.posZ, type, e.unlocalizedName}; + } + return new Object[]{false, e.posX, e.posY, e.posZ, type}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getSettings", + "getRange", + "setSettings", + "getEnergyInfo", + "isJammed", + "getAmount", + "isIndexPlayer", + "getIndexType", + "getEntityAtIndex" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch(method) { + case ("getSettings"): + return getSettings(context, args); + case ("getRange"): + return getRange(context, args); + case ("setSettings"): + return setSettings(context, args); + case ("getEnergyInfo"): + return getEnergyInfo(context, args); + case ("isJammed"): + return isJammed(context, args); + case ("getAmount"): + return getAmount(context, args); + case ("isIndexPlayer"): + return isIndexPlayer(context, args); + case ("getIndexType"): + return getIndexType(context, args); + case ("getEntityAtIndex"): + return getEntityAtIndex(context, args); + } + throw new NoSuchMethodException(); + } + +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java new file mode 100644 index 000000000..9b55ca183 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java @@ -0,0 +1,85 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.tileentity.IBufPacketReceiver; + +import api.hbm.entity.RadarEntry; +import com.hbm.tileentity.TileEntityLoadedBase; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityMachineRadarScreen extends TileEntityLoadedBase implements IBufPacketReceiver { + + public List entries = new ArrayList(); + public int refX; + public int refY; + public int refZ; + public int range; + public boolean linked; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + this.networkPackNT(100); + entries.clear(); + this.linked = false; + } + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(linked); + buf.writeInt(refX); + buf.writeInt(refY); + buf.writeInt(refZ); + buf.writeInt(range); + buf.writeInt(entries.size()); + for(RadarEntry entry : entries) entry.toBytes(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + linked = buf.readBoolean(); + refX = buf.readInt(); + refY = buf.readInt(); + refZ = buf.readInt(); + range = buf.readInt(); + int count = buf.readInt(); + this.entries.clear(); + for(int i = 0; i < count; i++) { + RadarEntry entry = new RadarEntry(); + entry.fromBytes(buf); + this.entries.add(entry); + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index 1cbe50ab4..67c8f316b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -1,11 +1,5 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerRadiolysis; import com.hbm.inventory.fluid.FluidType; @@ -17,17 +11,20 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPellet; import com.hbm.items.machine.ItemRTGPelletDepleted; import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.RTGUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemFood; @@ -37,32 +34,30 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider { - +public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, IFluidCopiable { + public long power; public static final int maxPower = 1000000; public int heat; public FluidTank[] tanks; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - + private static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13 }; private static final int[] slot_rtg = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - + public TileEntityMachineRadiolysis() { super(15); //10 rtg slots, 2 fluid ID slots (io), 2 irradiation slots (io), battery slot tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.NONE, 2000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 2000, 1); - tanks[2] = new FluidTank(Fluids.NONE, 2000, 2); + tanks[0] = new FluidTank(Fluids.NONE, 2_000); + tanks[1] = new FluidTank(Fluids.NONE, 2_000); + tanks[2] = new FluidTank(Fluids.NONE, 2_000); } - + @Override public String getName() { return "container.radiolysis"; } - + /* IO Methods */ @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { @@ -73,89 +68,93 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement public int[] getAccessibleSlotsFromSide(int side) { return slot_io; } - + @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { return (i < 10 && itemStack.getItem() instanceof ItemRTGPelletDepleted) || i == 13; } - + /* NBT Methods */ @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + this.power = nbt.getLong("power"); this.heat = nbt.getInteger("heat"); - + tanks[0].readFromNBT(nbt, "input"); tanks[1].readFromNBT(nbt, "output1"); tanks[2].readFromNBT(nbt, "output2"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setLong("power", power); nbt.setInteger("heat", heat); - + tanks[0].writeToNBT(nbt, "input"); tanks[1].writeToNBT(nbt, "output1"); tanks[2].writeToNBT(nbt, "output2"); } - - public void networkUnpack(NBTTagCompound data) { - this.power = data.getLong("power"); - this.heat = data.getInteger("heat"); - } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { power = Library.chargeItemsFromTE(slots, 14, power, maxPower); - + heat = RTGUtil.updateRTGs(slots, slot_rtg); power += heat * 10; - + if(power > maxPower) power = maxPower; - + tanks[0].setType(10, 11, slots); setupTanks(); - + if(heat > 100) { int crackTime = (int) Math.max(-0.1 * (heat - 100) + 30, 5); - + if(worldObj.getTotalWorldTime() % crackTime == 0) crack(); - + if(heat >= 200 && worldObj.getTotalWorldTime() % 100 == 0) sterilize(); } - - if(worldObj.getTotalWorldTime() % 10 == 0) { - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); - } - + for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("heat", heat); - this.networkPack(data, 50); - - for(byte i = 0; i < 3; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + + this.networkPackNT(50); } } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeInt(this.heat); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + tanks[2].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.heat = buf.readInt(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + tanks[2].deserialize(buf); + } + protected DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), @@ -164,17 +163,17 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) }; } - + /* Processing Methods */ private void crack() { - + Pair quart = RadiolysisRecipes.getRadiolysis(tanks[0].getTankType()); - + if(quart != null) { - + int left = quart.getKey().fill; int right = quart.getValue().fill; - + if(tanks[0].getFill() >= 100 && hasSpace(left, right)) { tanks[0].setFill(tanks[0].getFill() - 100); tanks[1].setFill(tanks[1].getFill() + left); @@ -182,15 +181,15 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement } } } - + private boolean hasSpace(int left, int right) { return tanks[1].getFill() + left <= tanks[1].getMaxFill() && tanks[2].getFill() + right <= tanks[2].getMaxFill(); } - + private void setupTanks() { - + Pair quart = RadiolysisRecipes.getRadiolysis(tanks[0].getTankType()); - + if(quart != null) { tanks[1].setTankType(quart.getKey().type); tanks[2].setTankType(quart.getValue().type); @@ -199,60 +198,48 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement tanks[1].setTankType(Fluids.NONE); tanks[2].setTankType(Fluids.NONE); } - + } - + // Code: pressure, sword, sterilize. private void sterilize() { if(slots[12] != null) { if(slots[12].getItem() instanceof ItemFood && !(slots[12].getItem() == ModItems.pancake)) { - slots[12].stackSize -= 1; - if(slots[12].stackSize <= 0) - slots[12] = null; + this.decrStackSize(12, 1); } - - if(!checkIfValid()) - return; - + + if(!checkIfValid()) return; + ItemStack output = slots[12].copy(); output.stackSize = 1; - + if(slots[13] == null) { - slots[12].stackSize -= output.stackSize; - if(slots[12].stackSize <= 0) - slots[12] = null; + this.decrStackSize(12, output.stackSize); slots[13] = output; slots[13].stackTagCompound.removeTag("ntmContagion"); if(slots[13].stackTagCompound.hasNoTags()) { slots[13].stackTagCompound = null; } } else if(slots[13].isItemEqual(output) && slots[13].stackSize + output.stackSize <= slots[13].getMaxStackSize()) { - slots[12].stackSize -= output.stackSize; - if(slots[12].stackSize <= 0) - slots[12] = null; - + this.decrStackSize(12, output.stackSize); slots[13].stackSize += output.stackSize; - slots[13].stackTagCompound.removeTag("ntmContagion"); - if(slots[13].stackTagCompound.hasNoTags()) { - slots[13].stackTagCompound = null; + if(slots[13].hasTagCompound()) { // redundant but just to be sure + slots[13].stackTagCompound.removeTag("ntmContagion"); + if(slots[13].stackTagCompound.hasNoTags()) { + slots[13].stackTagCompound = null; + } } } } } - + private boolean checkIfValid() { - if(slots[12] == null) - return false; - - if(!slots[12].hasTagCompound()) - return false; - - if(!slots[12].getTagCompound().getBoolean("ntmContagion")) - return false; - + if(slots[12] == null) return false; + if(!slots[12].hasTagCompound()) return false; + if(!slots[12].getTagCompound().getBoolean("ntmContagion")) return false; return true; } - + /* Power methods */ @Override public void setPower(long power) { @@ -268,80 +255,6 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement public long getMaxPower() { return maxPower; } - - /* Fluid Methods */ - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - } - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - this.tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(tanks[0].getTankType() == type) { - return tanks[0].getMaxFill(); - } - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, this.getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, this.getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, this.getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[1].getTankType()) - return list1; - if(type == tanks[2].getTankType()) - return list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[1].getTankType()) - list1.clear(); - if(type == tanks[2].getTankType()) - list2.clear(); - } @Override public FluidTank[] getAllTanks() { @@ -362,11 +275,11 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement public boolean canConnect(FluidType type, ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.DOWN; } - + public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord, zCoord - 1, xCoord + 2, yCoord + 3, zCoord + 2); } - + @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; @@ -379,7 +292,12 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRadiolysis(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.heat * 10); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java index 3a8cec7ca..3776b6701 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java @@ -2,22 +2,25 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.ReactorResearch; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerMachineReactorBreeding; import com.hbm.inventory.gui.GUIMachineReactorBreeding; import com.hbm.inventory.recipes.BreederRecipes; import com.hbm.inventory.recipes.BreederRecipes.BreederRecipe; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -28,7 +31,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineReactorBreeding extends TileEntityMachineBase implements SimpleComponent, IGUIProvider { +public class TileEntityMachineReactorBreeding extends TileEntityMachineBase implements SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public int flux; public float progress; @@ -63,39 +66,40 @@ public class TileEntityMachineReactorBreeding extends TileEntityMachineBase impl } else { progress = 0.0F; } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("flux", flux); - data.setFloat("progress", progress); - this.networkPack(data, 20); + + this.networkPackNT(20); } } - - public void networkUnpack(NBTTagCompound data) { - flux = data.getInteger("flux"); - progress = data.getFloat("progress"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(flux); + buf.writeFloat(progress); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.flux = buf.readInt(); + this.progress = buf.readFloat(); } public void getInteractions() { for(byte d = 2; d < 6; d++) { ForgeDirection dir = ForgeDirection.getOrientation(d); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); if(b == ModBlocks.reactor_research) { int[] pos = ((ReactorResearch) ModBlocks.reactor_research).findCore(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); if(pos != null) { - TileEntity tile = worldObj.getTileEntity(pos[0], pos[1], pos[2]); if(tile instanceof TileEntityReactorResearch) { - TileEntityReactorResearch reactor = (TileEntityReactorResearch) tile; - this.flux += reactor.totalFlux; } } @@ -217,6 +221,7 @@ public class TileEntityMachineReactorBreeding extends TileEntityMachineBase impl // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "breeding_reactor"; } @@ -246,7 +251,12 @@ public class TileEntityMachineReactorBreeding extends TileEntityMachineBase impl @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineReactorBreeding(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setInteger(CompatEnergyControl.I_FLUX, flux); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java deleted file mode 100644 index 9cfafeb0d..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java +++ /dev/null @@ -1,1017 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.MobConfig; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.container.ContainerReactorMultiblock; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIReactorMultiblock; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemFuelRod; -import com.hbm.lib.Library; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.fluid.IFluidStandardTransceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityMachineReactorLarge extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider { - - private ItemStack slots[]; - - public int hullHeat; - public final int maxHullHeat = 100000; - public int coreHeat; - public final int maxCoreHeat = 50000; - public int rods; - public final int rodsMax = 100; - public int age = 0; - public List list = new ArrayList(); - public FluidTank[] tanks; - public ReactorFuelType type; - public int fuel; - public int maxFuel = 240 * fuelMult; - public int waste; - public int maxWaste = 240 * fuelMult; - - public static int fuelMult = 1000; - public static int cycleDuration = 24000; - private static int fuelBase = 240 * fuelMult; - private static int waterBase = 128 * 1000; - private static int coolantBase = 64 * 1000; - private static int steamBase = 32 * 1000; - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16 }; - private static final int[] slots_side = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 }; - - private String customName; - - public TileEntityMachineReactorLarge() { - slots = new ItemStack[8]; - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.WATER, 128000, 0); - tanks[1] = new FluidTank(Fluids.COOLANT, 64000, 1); - tanks[2] = new FluidTank(Fluids.STEAM, 32000, 2); - type = ReactorFuelType.URANIUM; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.reactorLarge"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - coreHeat = nbt.getInteger("heat"); - hullHeat = nbt.getInteger("hullHeat"); - rods = nbt.getInteger("rods"); - fuel = nbt.getInteger("fuel"); - waste = nbt.getInteger("waste"); - slots = new ItemStack[getSizeInventory()]; - tanks[0].readFromNBT(nbt, "water"); - tanks[1].readFromNBT(nbt, "coolant"); - tanks[2].readFromNBT(nbt, "steam"); - type = ReactorFuelType.getEnum(nbt.getInteger("type")); - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("heat", coreHeat); - nbt.setInteger("hullHeat", hullHeat); - nbt.setInteger("rods", rods); - nbt.setInteger("fuel", fuel); - nbt.setInteger("waste", waste); - NBTTagList list = new NBTTagList(); - tanks[0].writeToNBT(nbt, "water"); - tanks[1].writeToNBT(nbt, "coolant"); - tanks[2].writeToNBT(nbt, "steam"); - nbt.setInteger("type", type.getID()); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - - } - - public int getCoreHeatScaled(int i) { - return (coreHeat * i) / maxCoreHeat; - } - - public int getHullHeatScaled(int i) { - return (hullHeat * i) / maxHullHeat; - } - - public int getFuelScaled(int i) { - return (fuel * i) / maxFuel; - } - - public int getWasteScaled(int i) { - return (waste * i) / maxWaste; - } - - public int getSteamScaled(int i) { - return (tanks[2].getFill() * i) / tanks[2].getMaxFill(); - } - - public boolean hasCoreHeat() { - return coreHeat > 0; - } - - public boolean hasHullHeat() { - return hullHeat > 0; - } - - public boolean checkBody() { - - return worldObj.getBlock(xCoord + 1, yCoord, zCoord + 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord - 1, yCoord, zCoord + 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord - 1, yCoord, zCoord - 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord + 1, yCoord, zCoord - 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord + 1, yCoord, zCoord) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord - 1, yCoord, zCoord) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord, zCoord + 1) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord, zCoord - 1) == ModBlocks.reactor_control; - } - - public boolean checkSegment(int offset) { - - return worldObj.getBlock(xCoord + 1, yCoord + offset, zCoord + 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord - 1, yCoord + offset, zCoord + 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord - 1, yCoord + offset, zCoord - 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord + 1, yCoord + offset, zCoord - 1) == ModBlocks.reactor_element && - worldObj.getBlock(xCoord + 1, yCoord + offset, zCoord) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord - 1, yCoord + offset, zCoord) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord + offset, zCoord + 1) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord + offset, zCoord - 1) == ModBlocks.reactor_control && - worldObj.getBlock(xCoord, yCoord + offset, zCoord) == ModBlocks.reactor_conductor; - } - - private float checkHull() { - - float max = getSize() * 12; - float count = 0; - - for(int y = yCoord - depth; y <= yCoord + height; y++) { - - if(blocksRad(xCoord - 1, y, zCoord + 2)) - count++; - if(blocksRad(xCoord, y, zCoord + 2)) - count++; - if(blocksRad(xCoord + 1, y, zCoord + 2)) - count++; - - if(blocksRad(xCoord - 1, y, zCoord - 2)) - count++; - if(blocksRad(xCoord, y, zCoord - 2)) - count++; - if(blocksRad(xCoord + 1, y, zCoord - 2)) - count++; - - if(blocksRad(xCoord + 2, y, zCoord - 1)) - count++; - if(blocksRad(xCoord + 2, y, zCoord)) - count++; - if(blocksRad(xCoord + 2, y, zCoord + 1)) - count++; - - if(blocksRad(xCoord - 2, y, zCoord - 1)) - count++; - if(blocksRad(xCoord - 2, y, zCoord)) - count++; - if(blocksRad(xCoord - 2, y, zCoord + 1)) - count++; - } - - if(count == 0) - return 1; - - //System.out.println(count + "/" + max); - - return 1 - (count / max); - } - - private boolean blocksRad(int x, int y, int z) { - - Block b = worldObj.getBlock(x, y, z); - - if(b == ModBlocks.block_lead || b == ModBlocks.block_desh || b == ModBlocks.brick_concrete) - return true; - - if(b.getExplosionResistance(null) >= 100) - return true; - - return false; - } - - int height; - int depth; - public int size; - - private void caluclateSize() { - - height = 0; - depth = 0; - - for(int i = 0; i < 7; i++) { - - if(checkSegment(i + 1)) - height++; - else - break; - } - - for(int i = 0; i < 7; i++) { - - if(checkSegment(-i - 1)) - depth++; - else - break; - } - - size = height + depth + 1; - } - - private int getSize() { - return size; - } - - private void generate() { - - int consumption = (int) (((double)maxFuel / cycleDuration) * rods / 100); - - if(consumption > fuel) - consumption = fuel; - - if(consumption + waste > maxWaste) - consumption = maxWaste - waste; - - fuel -= consumption; - waste += consumption; - - int heat = (int) (((double)consumption / size) * type.heat / fuelMult); - - this.coreHeat += heat; - - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote && checkBody()) { - - age++; - if (age >= 20) { - age = 0; - } - - fillFluidInit(tanks[2].getTankType()); - - caluclateSize(); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, size, 3), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - - tanks[0].changeTankSize(waterBase * getSize()); - tanks[1].changeTankSize(coolantBase * getSize()); - tanks[2].changeTankSize(steamBase * getSize()); - - maxWaste = maxFuel = fuelBase * getSize(); - - if(!worldObj.isRemote) { - - if(waste > maxWaste) - waste = maxWaste; - - if(fuel > maxFuel) - fuel = maxFuel; - - tanks[0].loadTank(0, 1, slots); - tanks[1].loadTank(2, 3, slots); - - //Change fuel type if empty - if(fuel == 0) { - - if(slots[4] != null && !getFuelType(slots[4].getItem()).toString().equals(ReactorFuelType.UNKNOWN.toString())) { - - this.type = getFuelType(slots[4].getItem()); - this.waste = 0; - - } - } - - //Meteorite sword - if(slots[4] != null && coreHeat > 0 && slots[4].getItem() == ModItems.meteorite_sword_bred) - slots[4] = new ItemStack(ModItems.meteorite_sword_irradiated); - - //Load fuel - if(slots[4] != null && getFuelContent(slots[4], type) > 0) { - - int cont = getFuelContent(slots[4], type) * fuelMult; - - if(fuel + cont <= maxFuel) { - - if(!slots[4].getItem().hasContainerItem()) { - - slots[4].stackSize--; - fuel += cont; - - } else if(slots[5] == null) { - - slots[5] = new ItemStack(slots[4].getItem().getContainerItem()); - slots[4].stackSize--; - fuel += cont; - - } else if(slots[4].getItem().getContainerItem() == slots[5].getItem() && slots[5].stackSize < slots[5].getMaxStackSize()) { - - slots[4].stackSize--; - slots[5].stackSize++; - fuel += cont; - - } - - if(slots[4].stackSize == 0) - slots[4] = null; - } - } - - //Unload waste - if(slots[6] != null && getWasteAbsorbed(slots[6].getItem(), type) > 0) { - - int absorbed = getWasteAbsorbed(slots[6].getItem(), type) * fuelMult; - - if(absorbed <= waste) { - - if(slots[7] == null) { - - waste -= absorbed; - slots[7] = new ItemStack(getWaste(slots[6].getItem(), type)); - slots[6].stackSize--; - - } else if(slots[7] != null && slots[7].getItem() == getWaste(slots[6].getItem(), type) && slots[7].stackSize < slots[7].getMaxStackSize()) { - - waste -= absorbed; - slots[7].stackSize++; - slots[6].stackSize--; - } - - if(slots[6].stackSize == 0) - slots[6] = null; - } - - } - - if(rods > 0) - generate(); - - if (this.coreHeat > 0 && this.tanks[1].getFill() > 0 && this.hullHeat < this.maxHullHeat) { - this.hullHeat += this.coreHeat * 0.175; - this.coreHeat -= this.coreHeat * 0.1; - - this.tanks[1].setFill(this.tanks[1].getFill() - 10); - - if (this.tanks[1].getFill() < 0) - this.tanks[1].setFill(0); - } - - if (this.hullHeat > maxHullHeat) { - this.hullHeat = maxHullHeat; - } - - if (this.hullHeat > 0 && this.tanks[0].getFill() > 0) { - generateSteam(); - this.hullHeat -= this.hullHeat * 0.085; - } - - if (this.coreHeat > maxCoreHeat) { - this.explode(); - } - - if (rods > 0 && coreHeat > 0 && age == 5) { - - float rad = (float)coreHeat / (float)maxCoreHeat * 50F; - rad *= checkHull(); - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, rad); - } - - for (int i = 0; i < 3; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if(worldObj.getBlock(xCoord, yCoord, zCoord - 2) == ModBlocks.reactor_ejector && worldObj.getBlockMetadata(xCoord, yCoord, zCoord - 2) == 2) - tryEjectInto(xCoord, yCoord, zCoord - 3); - if(worldObj.getBlock(xCoord, yCoord, zCoord + 2) == ModBlocks.reactor_ejector && worldObj.getBlockMetadata(xCoord, yCoord, zCoord + 2) == 3) - tryEjectInto(xCoord, yCoord, zCoord + 3); - if(worldObj.getBlock(xCoord - 2, yCoord, zCoord) == ModBlocks.reactor_ejector && worldObj.getBlockMetadata(xCoord - 2, yCoord, zCoord) == 4) - tryEjectInto(xCoord - 3, yCoord, zCoord); - if(worldObj.getBlock(xCoord + 2, yCoord, zCoord) == ModBlocks.reactor_ejector && worldObj.getBlockMetadata(xCoord + 2, yCoord, zCoord) == 5) - tryEjectInto(xCoord + 3, yCoord, zCoord); - - if(worldObj.getBlock(xCoord, yCoord, zCoord - 2) == ModBlocks.reactor_inserter && worldObj.getBlockMetadata(xCoord, yCoord, zCoord - 2) == 2) - tryInsertFrom(xCoord, yCoord, zCoord - 3); - if(worldObj.getBlock(xCoord, yCoord, zCoord + 2) == ModBlocks.reactor_inserter && worldObj.getBlockMetadata(xCoord, yCoord, zCoord + 2) == 3) - tryInsertFrom(xCoord, yCoord, zCoord + 3); - if(worldObj.getBlock(xCoord - 2, yCoord, zCoord) == ModBlocks.reactor_inserter && worldObj.getBlockMetadata(xCoord - 2, yCoord, zCoord) == 4) - tryInsertFrom(xCoord - 3, yCoord, zCoord); - if(worldObj.getBlock(xCoord + 2, yCoord, zCoord) == ModBlocks.reactor_inserter && worldObj.getBlockMetadata(xCoord + 2, yCoord, zCoord) == 5) - tryInsertFrom(xCoord + 3, yCoord, zCoord); - - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, rods, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, coreHeat, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, hullHeat, 2), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, fuel, 4), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, waste, 5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, type.getID(), 6), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - - private void tryEjectInto(int x, int y, int z) { - - int wSize = type.toString().equals(ReactorFuelType.SCHRABIDIUM.toString()) ? 60 * fuelMult : 6 * fuelMult; - - if(waste < wSize) - return; - - TileEntity te = worldObj.getTileEntity(x, y, z); - - if(te instanceof IInventory) { - - IInventory chest = (IInventory)te; - - Item waste = ModItems.waste_uranium; - - switch(type) { - case PLUTONIUM: - waste = ModItems.waste_plutonium; - break; - case MOX: - waste = ModItems.waste_mox; - break; - case SCHRABIDIUM: - waste = ModItems.waste_schrabidium; - break; - case THORIUM: - waste = ModItems.waste_thorium; - break; - default: - waste = ModItems.waste_uranium; - break; - } - - for(int i = 0; i < chest.getSizeInventory(); i++) { - - if(chest.isItemValidForSlot(i, new ItemStack(waste, 1, 1)) && chest.getStackInSlot(i) != null && chest.getStackInSlot(i).getItem() == waste && chest.getStackInSlot(i).stackSize < chest.getStackInSlot(i).getMaxStackSize()) { - chest.setInventorySlotContents(i, new ItemStack(waste, chest.getStackInSlot(i).stackSize + 1, 1)); - this.waste -= wSize; - return; - } - } - - for(int i = 0; i < chest.getSizeInventory(); i++) { - - if(chest.isItemValidForSlot(i, new ItemStack(waste, 1, 1)) && chest.getStackInSlot(i) == null) { - chest.setInventorySlotContents(i, new ItemStack(waste, 1, 1)); - this.waste -= wSize; - return; - } - } - } - } - - private void tryInsertFrom(int x, int y, int z) { - - TileEntity te = worldObj.getTileEntity(x, y, z); - - if(te instanceof IInventory) { - - IInventory chest = (IInventory)te; - - if(fuel > 0) { - for(int i = 0; i < chest.getSizeInventory(); i++) { - - if(chest.getStackInSlot(i) != null) { - int cont = getFuelContent(chest.getStackInSlot(i), type) * fuelMult; - - if(cont > 0 && fuel + cont <= maxFuel) { - - Item container = chest.getStackInSlot(i).getItem().getContainerItem(); - - chest.decrStackSize(i, 1); - fuel += cont; - - if(chest.getStackInSlot(i) == null && container != null) - chest.setInventorySlotContents(i, new ItemStack(container)); - } - } - } - } else { - for(int i = 0; i < chest.getSizeInventory(); i++) { - - if(chest.getStackInSlot(i) != null) { - int cont = getFuelContent(chest.getStackInSlot(i), getFuelType(chest.getStackInSlot(i).getItem())) * fuelMult; - - if(cont > 0 && fuel + cont <= maxFuel) { - - Item container = chest.getStackInSlot(i).getItem().getContainerItem(); - - type = getFuelType(chest.getStackInSlot(i).getItem()); - chest.decrStackSize(i, 1); - fuel += cont; - - if(chest.getStackInSlot(i) == null && container != null) - chest.setInventorySlotContents(i, new ItemStack(container)); - } - } - } - } - } - } - - private void generateSteam() { - - //function of SHS produced per tick - //maxes out at heat% * tank capacity / 20 - - double statSteMaFiFiLe = 8000; - - double steam = (((double)hullHeat / (double)maxHullHeat) * (/*(double)tanks[2].getMaxFill()*/statSteMaFiFiLe / 50D)) * size; - - double water = steam; - - FluidType type = tanks[2].getTankType(); - if(type == Fluids.STEAM) water /= 100D; - if(type == Fluids.HOTSTEAM) water /= 10; - - tanks[0].setFill(tanks[0].getFill() - (int)Math.ceil(water)); - tanks[2].setFill(tanks[2].getFill() + (int)Math.floor(steam)); - - if(tanks[0].getFill() < 0) - tanks[0].setFill(0); - - if(tanks[2].getFill() > tanks[2].getMaxFill()) - tanks[2].setFill(tanks[2].getMaxFill()); - - } - - private void explode() { - for (int i = 0; i < slots.length; i++) { - this.slots[i] = null; - } - - int rad = (int)(((long)fuel) * 25000L / (fuelBase * 15L)); - - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, rad); - - worldObj.createExplosion(null, this.xCoord, this.yCoord, this.zCoord, 7.5F, true); - ExplosionNukeGeneric.waste(worldObj, this.xCoord, this.yCoord, this.zCoord, 35); - - for(int i = yCoord - depth; i <= yCoord + height; i++) { - - if(worldObj.rand.nextInt(2) == 0) { - randomizeRadBlock(this.xCoord + 1, i, this.zCoord + 1); - } - if(worldObj.rand.nextInt(2) == 0) { - randomizeRadBlock(this.xCoord + 1, i, this.zCoord - 1); - } - if(worldObj.rand.nextInt(2) == 0) { - randomizeRadBlock(this.xCoord - 1, i, this.zCoord - 1); - } - if(worldObj.rand.nextInt(2) == 0) { - randomizeRadBlock(this.xCoord - 1, i, this.zCoord + 1); - } - - if(worldObj.rand.nextInt(5) == 0) { - worldObj.createExplosion(null, this.xCoord, this.yCoord, this.zCoord, 5.0F, true); - } - } - - worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, ModBlocks.sellafield, 5, 3); - - if(MobConfig.enableElementals) { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(100, 100, 100)); - - for(EntityPlayer player : players) { - player.getEntityData().getCompoundTag(player.PERSISTED_NBT_TAG).setBoolean("radMark", true); - } - } - } - - private void randomizeRadBlock(int x, int y, int z) { - - int rand = worldObj.rand.nextInt(20); - - if(rand < 7) - worldObj.setBlock(x, y, z, ModBlocks.toxic_block); - else if(rand < 10) - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 0, 3); - else if(rand < 14) - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 1, 3); - else if(rand < 17) - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 2, 3); - else if(rand < 19) - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 3, 3); - else - worldObj.setBlock(x, y, z, ModBlocks.sellafield, 4, 3); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public void fillFluidInit(FluidType type) { - - for(ForgeDirection dir : new ForgeDirection[] {Library.POS_X, Library.NEG_X, Library.POS_Z, Library.NEG_Z}) { - - if(worldObj.getBlock(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2) == ModBlocks.reactor_hatch) { - fillFluid(this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, getTact(), type); - for(int i = 0; i < 2; i++) this.trySubscribe(tanks[i].getTankType(), worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, Library.NEG_X); - this.sendFluid(tanks[2], worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, Library.NEG_X); - } else { - for(int i = 0; i < 2; i++) this.tryUnsubscribe(tanks[i].getTankType(), worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3); - } - } - - fillFluid(this.xCoord, this.yCoord + height + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - depth - 1, this.zCoord, getTact(), type); - - this.sendFluid(tanks[2], worldObj, this.xCoord, this.yCoord + height + 1, this.zCoord, Library.POS_Y); - this.sendFluid(tanks[2], worldObj, this.xCoord, this.yCoord - depth - 1, this.zCoord, Library.NEG_Y); - } - - @Override - public boolean getTact() { - return this.worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 3 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - - public enum ReactorFuelType { - - URANIUM(250000), - THORIUM(200000), - PLUTONIUM(312500), - MOX(250000), - SCHRABIDIUM(2085000), - UNKNOWN(1); - - private ReactorFuelType(int i) { - heat = i; - } - - //Heat per nugget burned - private int heat; - - public int getHeat() { - return heat; - } - - public int getID() { - return Arrays.asList(ReactorFuelType.values()).indexOf(this); - } - - public static ReactorFuelType getEnum(int i) { - if(i < ReactorFuelType.values().length) - return ReactorFuelType.values()[i]; - else - return ReactorFuelType.URANIUM; - } - } - - static class ReactorFuelEntry { - - int value; - ReactorFuelType type; - Item item; - - public ReactorFuelEntry(int value, ReactorFuelType type, Item item) { - this.value = value; - this.type = type; - this.item = item; - } - } - - static class ReactorWasteEntry { - - int value; - ReactorFuelType type; - Item in; - Item out; - - public ReactorWasteEntry(int value, ReactorFuelType type, Item in, Item out) { - this.value = value; - this.type = type; - this.in = in; - this.out = out; - } - } - - //TODO: turn this steaming hot garbage into hashmaps - static List fuels = new ArrayList(); - static List wastes = new ArrayList(); - - public static void registerAll() { - - TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.URANIUM, ModItems.nugget_uranium_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.URANIUM, ModItems.ingot_uranium_fuel); - - TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.PLUTONIUM, ModItems.nugget_plutonium_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.PLUTONIUM, ModItems.ingot_plutonium_fuel); - - TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.MOX, ModItems.nugget_mox_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.MOX, ModItems.ingot_mox_fuel); - - TileEntityMachineReactorLarge.registerFuelEntry(10, ReactorFuelType.SCHRABIDIUM, ModItems.nugget_schrabidium_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(90, ReactorFuelType.SCHRABIDIUM, ModItems.ingot_schrabidium_fuel); - - TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.THORIUM, ModItems.nugget_thorium_fuel); - TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.THORIUM, ModItems.ingot_thorium_fuel); - } - - public static void registerFuelEntry(int nuggets, ReactorFuelType type, Item fuel) { - - fuels.add(new ReactorFuelEntry(nuggets, type, fuel)); - } - - public static void registerWasteEntry(int nuggets, ReactorFuelType type, Item in, Item out) { - - wastes.add(new ReactorWasteEntry(nuggets, type, in, out)); - } - - public static int getFuelContent(ItemStack item, ReactorFuelType type) { - - if(item == null) - return 0; - - for(ReactorFuelEntry ent : fuels) { - if(ent.item == item.getItem() && type.toString().equals(ent.type.toString())) { - - int value = ent.value; - - //if it's a fuel rod that has been used up, multiply by damage and floor it - if(item.getItem() instanceof ItemFuelRod) { - - double mult = 1D - ((double)ItemFuelRod.getLifeTime(item) / (double)((ItemFuelRod)item.getItem()).lifeTime); - return (int)Math.floor(mult * value); - } - - return value; - } - } - - return 0; - } - - public static ReactorFuelType getFuelType(Item item) { - - for(ReactorFuelEntry ent : fuels) { - if(ent.item == item) - return ent.type; - } - - return ReactorFuelType.UNKNOWN; - } - - public static Item getWaste(Item item, ReactorFuelType type) { - - for(ReactorWasteEntry ent : wastes) { - if(ent.in == item && type.toString().equals(ent.type.toString())) - return ent.out; - } - - return null; - } - - public static int getWasteAbsorbed(Item item, ReactorFuelType type) { - - for(ReactorWasteEntry ent : wastes) { - if(ent.in == item && type.toString().equals(ent.type.toString())) - return ent.value; - } - - return 0; - } - - @Override - public FluidTank[] getAllTanks() { - return tanks; - } - - @Override - public FluidTank[] getSendingTanks() { - return new FluidTank[] {tanks[2]}; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tanks[0], tanks[1]}; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerReactorMultiblock(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIReactorMultiblock(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java new file mode 100644 index 000000000..a63acd692 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRotaryFurnace.java @@ -0,0 +1,374 @@ +package com.hbm.tileentity.machine; + +import java.util.Random; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.container.ContainerMachineRotaryFurnace; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineRotaryFurnace; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.recipes.RotaryFurnaceRecipes; +import com.hbm.inventory.recipes.RotaryFurnaceRecipes.RotaryFurnaceRecipe; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.tileentity.IConditionalInvAccess; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.CrucibleUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IGUIProvider, IFluidCopiable, IConditionalInvAccess { + + public FluidTank[] tanks; + public boolean isProgressing; + public float progress; + public int burnTime; + public int maxBurnTime; + public boolean isVenting; + public MaterialStack output; + public static final int maxOutput = MaterialShapes.BLOCK.q(16); + + public int anim; + public int lastAnim; + + public TileEntityMachineRotaryFurnace() { + super(5, 50); + tanks = new FluidTank[3]; + tanks[0] = new FluidTank(Fluids.NONE, 16_000); + tanks[1] = new FluidTank(Fluids.STEAM, 4_000); + tanks[2] = new FluidTank(Fluids.SPENTSTEAM, 40); + } + + @Override + public String getName() { + return "container.machineRotaryFurnace"; + } + + @Override + public void updateEntity() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + if(!worldObj.isRemote) { + + tanks[0].setType(3, slots); + + for(DirPos pos : getSteamPos()) { + this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + if(tanks[0].getTankType() != Fluids.NONE) for(DirPos pos : getFluidPos()) { + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + if(smoke.getFill() > 0) this.sendFluid(smoke, worldObj, xCoord + rot.offsetX, yCoord + 5, zCoord + rot.offsetZ, Library.POS_Y); + + if(this.output != null) { + + int prev = this.output.amount; + Vec3 impact = Vec3.createVectorHelper(0, 0, 0); + MaterialStack leftover = CrucibleUtil.pourSingleStack(worldObj, xCoord + 0.5D + rot.offsetX * 2.875D, yCoord + 1.25D, zCoord + 0.5D + rot.offsetZ * 2.875D, 6, true, this.output, MaterialShapes.INGOT.q(1), impact); + + if(prev != this.output.amount) { + this.output = leftover; + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "foundry"); + data.setInteger("color", leftover.material.moltenColor); + data.setByte("dir", (byte) rot.ordinal()); + data.setFloat("off", 0.625F); + data.setFloat("base", 0.625F); + data.setFloat("len", Math.max(1F, yCoord + 1 - (float) (Math.ceil(impact.yCoord) - 1.125))); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + rot.offsetX * 2.875D, yCoord + 0.75, zCoord + 0.5D + rot.offsetZ * 2.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); + } + + if(output.amount <= 0) this.output = null; + } + + RotaryFurnaceRecipe recipe = RotaryFurnaceRecipes.getRecipe(slots[0], slots[1], slots[2]); + this.isProgressing = false; + + if(recipe != null) { + + if(this.burnTime <= 0 && slots[4] != null && TileEntityFurnace.isItemFuel(slots[4])) { + this.maxBurnTime = this.burnTime = TileEntityFurnace.getItemBurnTime(slots[4]) / 2; + this.decrStackSize(4, 1); + this.markChanged(); + } + + if(this.canProcess(recipe)) { + this.progress += 1F / recipe.duration; + tanks[1].setFill(tanks[1].getFill() - recipe.steam); + tanks[2].setFill(tanks[2].getFill() + recipe.steam / 100); + this.isProgressing = true; + + if(this.progress >= 1F) { + this.progress -= 1F; + this.consumeItems(recipe); + + if(this.output == null) { + this.output = recipe.output.copy(); + } else { + this.output.amount += recipe.output.amount; + } + this.markDirty(); + } + + } else { + this.progress = 0; + } + } else { + this.progress = 0; + } + + this.isVenting = false; + if(this.burnTime > 0) { + this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND / 10F); + this.burnTime--; + } + + this.networkPackNT(50); + + } else { + + if(this.burnTime > 0 && MainRegistry.proxy.me().getDistance(xCoord, yCoord, zCoord) < 25) { + Random rand = worldObj.rand; + worldObj.spawnParticle("flame", xCoord + 0.5 + dir.offsetX * 0.5 + rot.offsetX + rand.nextGaussian() * 0.25, yCoord + 0.375, zCoord + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ + rand.nextGaussian() * 0.25, 0, 0, 0); + } + + if(isVenting && worldObj.getTotalWorldTime() % 2 == 0) { + + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 10F); + fx.setFloat("base", 0.25F); + fx.setFloat("max", 2.5F); + fx.setInteger("life", 100 + worldObj.rand.nextInt(20)); + fx.setInteger("color",0x202020); + fx.setDouble("posX", xCoord + 0.5 + rot.offsetX); + fx.setDouble("posY", yCoord + 5); + fx.setDouble("posZ", zCoord + 0.5 + rot.offsetZ); + MainRegistry.proxy.effectNT(fx); + } + this.lastAnim = this.anim; + if(this.isProgressing) { + this.anim++; + } + } + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + tanks[2].serialize(buf); + buf.writeBoolean(isVenting); + buf.writeBoolean(isProgressing); + buf.writeFloat(progress); + buf.writeInt(burnTime); + buf.writeInt(maxBurnTime); + + if(this.output != null) { + buf.writeBoolean(true); + buf.writeInt(this.output.material.id); + buf.writeInt(this.output.amount); + } else { + buf.writeBoolean(false); + } + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + tanks[2].deserialize(buf); + isVenting = buf.readBoolean(); + isProgressing = buf.readBoolean(); + progress = buf.readFloat(); + burnTime = buf.readInt(); + maxBurnTime = buf.readInt(); + + if(buf.readBoolean()) { + this.output = new MaterialStack(Mats.matById.get(buf.readInt()), buf.readInt()); + } else { + this.output = null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.tanks[0].readFromNBT(nbt, "t0"); + this.tanks[1].readFromNBT(nbt, "t1"); + this.tanks[2].readFromNBT(nbt, "t2"); + this.progress = nbt.getFloat("prog"); + this.burnTime = nbt.getInteger("burn"); + this.maxBurnTime = nbt.getInteger("maxBurn"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + this.tanks[0].writeToNBT(nbt, "t0"); + this.tanks[1].writeToNBT(nbt, "t1"); + this.tanks[2].writeToNBT(nbt, "t2"); + nbt.setFloat("prog", progress); + nbt.setInteger("burn", burnTime); + nbt.setInteger("maxBurn", maxBurnTime); + } + + public DirPos[] getSteamPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()) + }; + } + + public DirPos[] getFluidPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ + rot.offsetZ * 3, rot), + new DirPos(xCoord - dir.offsetX + rot.offsetX * 3, yCoord, zCoord - dir.offsetZ + rot.offsetZ * 3, rot) + }; + } + + public boolean canProcess(RotaryFurnaceRecipe recipe) { + + if(this.burnTime <= 0) return false; + + if(recipe.fluid != null) { + if(this.tanks[0].getTankType() != recipe.fluid.type) return false; + if(this.tanks[0].getFill() < recipe.fluid.fill) return false; + } + + if(tanks[1].getFill() < recipe.steam) return false; + if(tanks[2].getMaxFill() - tanks[2].getFill() < recipe.steam / 100) return false; + + if(this.output != null) { + if(this.output.material != recipe.output.material) return false; + if(this.output.amount + recipe.output.amount > this.maxOutput) return false; + } + + return true; + } + + public void consumeItems(RotaryFurnaceRecipe recipe) { + + for(AStack aStack : recipe.ingredients) { + + for(int i = 0; i < 3; i++) { + ItemStack stack = slots[i]; + if(aStack.matchesRecipe(stack, true) && stack.stackSize >= aStack.stacksize) { + this.decrStackSize(i, aStack.stacksize); + break; + } + } + } + + if(recipe.fluid != null) { + this.tanks[0].setFill(tanks[0].getFill() - recipe.fluid.fill); + } + } + + @Override + public void pollute(PollutionType type, float amount) { + FluidTank tank = type == PollutionType.SOOT ? smoke : type == PollutionType.HEAVYMETAL ? smoke_leaded : smoke_poison; + + int fluidAmount = (int) Math.ceil(amount * 100); + tank.setFill(tank.getFill() + fluidAmount); + + if(tank.getFill() > tank.getMaxFill()) { + int overflow = tank.getFill() - tank.getMaxFill(); + tank.setFill(tank.getMaxFill()); + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, type, overflow / 100F); + this.isVenting = true; + } + } + + @Override public int[] getAccessibleSlotsFromSide(int side) { return new int[0]; } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return slot < 3 || slot == 4; } + @Override public boolean canExtractItem(int slot, ItemStack stack, int side) { return false; } + + @Override public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack) { return slot < 3 || slot == 4; } + @Override public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side) { return false; } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 5, + zCoord + 3 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) { + BlockPos pos = new BlockPos(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + BlockPos core = new BlockPos(xCoord, yCoord, zCoord); + + //Red + if(side == dir.getOpposite().ordinal() && pos.equals(core.clone().offset(dir, -1).offset(rot, -2))) return new int[] {0}; + //Yellow + if(side == dir.getOpposite().ordinal() && pos.equals(core.clone().offset(dir, -1).offset(rot, -1))) return new int[] {1}; + //Green + if(side == dir.getOpposite().ordinal() && pos.equals(core.clone().offset(dir, -1))) return new int[] {2}; + //Fuel + if(side == dir.ordinal() && pos.equals(core.clone().offset(dir, 1).offset(rot, -1))) return new int[] {4}; + + return new int[] { }; + } + + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tanks[0], tanks[1], tanks[2], smoke}; } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[2], smoke}; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0], tanks[1]}; } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineRotaryFurnace(player.inventory, this); } + @Override public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineRotaryFurnace(player.inventory, this); } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java index ad3adb63d..f659905d0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSPP.java @@ -3,11 +3,14 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.tile.IInfoProviderEC; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; -public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnergyGenerator { +public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -19,11 +22,11 @@ public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnerg if(!worldObj.isRemote) { - this.sendPower(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X); - this.sendPower(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X); - this.sendPower(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z); - this.sendPower(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z); - this.sendPower(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); + this.tryProvide(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X); + this.tryProvide(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X); + this.tryProvide(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z); + this.tryProvide(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z); + this.tryProvide(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); if(worldObj.getTotalWorldTime() % 20 == 0) gen = checkStructure() * 15; @@ -86,4 +89,9 @@ public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnerg return this.maxPower; } + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.gen > 0); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.gen); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index 47dd95969..bbe713965 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -1,24 +1,17 @@ package com.hbm.tileentity.machine; -import java.util.List; -import java.util.Random; - import com.hbm.entity.missile.EntityMinerRocket; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.inventory.container.ContainerSatDock; import com.hbm.inventory.gui.GUISatDock; +import com.hbm.itempool.ItemPool; import com.hbm.items.ISatChip; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteMiner; -import com.hbm.saveddata.satellites.SatelliteMinerCargoRegistry; import com.hbm.tileentity.IGUIProvider; -import com.hbm.util.WeightedRandomObject; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; @@ -28,358 +21,325 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.WeightedRandom; +import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; +import java.util.List; + public class TileEntityMachineSatDock extends TileEntity implements ISidedInventory, IGUIProvider { + private ItemStack[] slots; - private ItemStack[] slots; - - private static final int[] access = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; - - private String customName; - - public TileEntityMachineSatDock() { - slots = new ItemStack[16]; + private static final int[] access = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; + + private String customName; + + private AxisAlignedBB renderBoundingBox; + + public TileEntityMachineSatDock() { + slots = new ItemStack[16]; + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if (slots[i] != null) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.satDock"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; + } + } + + //You scrubs aren't needed for anything (right now) + @Override + public void openInventory() { + } + + @Override + public void closeInventory() { + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return i != 2 && i != 3 && i != 4 && i != 5; } - @Override - public int getSizeInventory() { - return slots.length; - } + @Override + public ItemStack decrStackSize(int i, int j) { + if (slots[i] != null) { + if (slots[i].stackSize <= j) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) { + slots[i] = null; + } - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } + return itemStack1; + } else { + return null; + } + } - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + slots = new ItemStack[getSizeInventory()]; + + for (int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if (b0 >= 0 && b0 < slots.length) { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + NBTTagList list = new NBTTagList(); + + for (int i = 0; i < slots.length; i++) { + if (slots[i] != null) { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte) i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return access; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } + + @Override + public void updateEntity() { + if (!worldObj.isRemote) { + SatelliteSavedData data = SatelliteSavedData.getData(worldObj); + + if (slots[15] != null) { + int freq = ISatChip.getFreqS(slots[15]); + + Satellite sat = data.getSatFromFreq(freq); + + int delay = 10 * 60 * 1000; + + if (sat instanceof SatelliteMiner) { + SatelliteMiner miner = (SatelliteMiner) sat; + + if (miner.lastOp + delay < System.currentTimeMillis()) { + EntityMinerRocket rocket = new EntityMinerRocket(worldObj); + rocket.posX = xCoord + 0.5; + rocket.posY = 300; + rocket.posZ = zCoord + 0.5; + + rocket.getDataWatcher().updateObject(17, freq); + worldObj.spawnEntityInWorld(rocket); + miner.lastOp = System.currentTimeMillis(); + data.markDirty(); + } + } + } + + @SuppressWarnings("unchecked") + List list = worldObj.getEntitiesWithinAABBExcludingEntity( + null, + AxisAlignedBB.getBoundingBox(xCoord - 0.25 + 0.5, yCoord + 0.75, zCoord - 0.25 + 0.5, xCoord + 0.25 + 0.5, yCoord + 2, zCoord + 0.25 + 0.5), + entity -> entity instanceof EntityMinerRocket + ); + + for (EntityMinerRocket rocket : list) { + if (slots[15] != null && ISatChip.getFreqS(slots[15]) != rocket.getDataWatcher().getWatchableObjectInt(17)) { + rocket.setDead(); + ExplosionNukeSmall.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, ExplosionNukeSmall.PARAMS_TOTS); + break; + } + + if (rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) { + Satellite sat = data.getSatFromFreq(ISatChip.getFreqS(slots[15])); + unloadCargo((SatelliteMiner) sat); + } + } + + ejectInto(xCoord + 2, yCoord, zCoord); + ejectInto(xCoord - 2, yCoord, zCoord); + ejectInto(xCoord, yCoord, zCoord + 2); + ejectInto(xCoord, yCoord, zCoord - 2); + } + } + + private void unloadCargo(SatelliteMiner satellite) { + int itemAmount = worldObj.rand.nextInt(6) + 10; + + WeightedRandomChestContent[] cargo = ItemPool.getPool(satellite.getCargo()); + + for(int i = 0; i < itemAmount; i++) { + addToInv(ItemPool.getStack(cargo, worldObj.rand)); } } - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } - } + private void addToInv(ItemStack stack) { + for (int i = 0; i < 15; i++) { + if (slots[i] != null && slots[i].getItem() == stack.getItem() && slots[i].getItemDamage() == stack.getItemDamage() && slots[i].stackSize < slots[i].getMaxStackSize()) { + int toAdd = Math.min(slots[i].getMaxStackSize() - slots[i].stackSize, stack.stackSize); - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.satDock"; - } + slots[i].stackSize += toAdd; + stack.stackSize -= toAdd; - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } + if (stack.stackSize <= 0) return; + } + } - @Override - public int getInventoryStackLimit() { - return 64; - } + for (int i = 0; i < 15; i++) { + if (slots[i] == null) { + slots[i] = new ItemStack(stack.getItem(), 1, stack.getItemDamage()); + return; + } + } + } - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} + private void ejectInto(int x, int y, int z) { + TileEntity te = worldObj.getTileEntity(x, y, z); - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 2 || i == 3 || i == 4 || i == 5) { - return false; - } + if (te instanceof IInventory) { + IInventory chest = (IInventory) te; - return true; - } + for (int i = 0; i < 15; i++) { + if (slots[i] != null) { + for (int j = 0; j < chest.getSizeInventory(); j++) { + ItemStack sta = slots[i].copy(); + sta.stackSize = 1; - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) { - if(slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if(slots[i].stackSize == 0) { - slots[i] = null; - } + if (chest.getStackInSlot(j) != null && chest.getStackInSlot(j).isItemEqual(slots[i]) && ItemStack.areItemStackTagsEqual(chest.getStackInSlot(j), slots[i]) && + chest.getStackInSlot(j).stackSize < chest.getStackInSlot(j).getMaxStackSize()) { - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); + slots[i].stackSize--; - slots = new ItemStack[getSizeInventory()]; + if (slots[i].stackSize <= 0) + slots[i] = null; - for(int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); + chest.getStackInSlot(j).stackSize++; + return; + } + } + } + } - for(int i = 0; i < slots.length; i++) { - if(slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return access; - } + for (int i = 0; i < 15; i++) { + if (slots[i] != null) { + for (int j = 0; j < chest.getSizeInventory(); j++) { + ItemStack sta = slots[i].copy(); + sta.stackSize = 1; - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } + if (chest.getStackInSlot(j) == null && chest.isItemValidForSlot(j, sta)) { + slots[i].stackSize--; - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - SatelliteSavedData data = null; - - @Override - public void updateEntity() { + if (slots[i].stackSize <= 0) + slots[i] = null; - if(!worldObj.isRemote) { + chest.setInventorySlotContents(j, sta); + return; + } + } + } + } + } + } - if(data == null) - data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); + @Override + public AxisAlignedBB getRenderBoundingBox() { + if (renderBoundingBox == null) { + renderBoundingBox = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 1, + zCoord + 2 + ); + } - if(data == null) { - worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData()); - data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - } - data.markDirty(); + return renderBoundingBox; + } - if(data != null && slots[15] != null) { - int freq = ISatChip.getFreqS(slots[15]); + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } - Satellite sat = data.getSatFromFreq(freq); + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerSatDock(player.inventory, this); + } - int delay = 10 * 60 * 1000; - - if(sat instanceof SatelliteMiner) { - - SatelliteMiner miner = (SatelliteMiner) sat; - - if(miner.lastOp + delay < System.currentTimeMillis()) { - - EntityMinerRocket rocket = new EntityMinerRocket(worldObj); - rocket.posX = xCoord + 0.5; - rocket.posY = 300; - rocket.posZ = zCoord + 0.5; - - rocket.satelliteClassName = miner.getClass().getName(); - - rocket.getDataWatcher().updateObject(17, freq); - worldObj.spawnEntityInWorld(rocket); - miner.lastOp = System.currentTimeMillis(); - data.markDirty(); - } - } - } - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.25 + 0.5, yCoord + 0.75, zCoord - 0.25 + 0.5, xCoord + 0.25 + 0.5, yCoord + 2, zCoord + 0.25 + 0.5)); - - for(Entity e : list) { - - if(e instanceof EntityMinerRocket) { - - EntityMinerRocket rocket = (EntityMinerRocket) e; - - if(slots[15] != null && ISatChip.getFreqS(slots[15]) != rocket.getDataWatcher().getWatchableObjectInt(17)) { - rocket.setDead(); - ExplosionNukeSmall.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, ExplosionNukeSmall.PARAMS_TOTS); - break; - } - - if(rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) { - unloadCargo(rocket.satelliteClassName); - } - } - } - - ejectInto(xCoord + 2, yCoord, zCoord); - ejectInto(xCoord - 2, yCoord, zCoord); - ejectInto(xCoord, yCoord, zCoord + 2); - ejectInto(xCoord, yCoord, zCoord - 2); - } - } - - static Random rand = new Random(); - - private void unloadCargo(String satelliteClassName) { - int items = rand.nextInt(6) + 10; - - WeightedRandomObject[] cargo = SatelliteMinerCargoRegistry.getCargo(satelliteClassName); - - for(int i = 0; i < items; i++) { - - ItemStack stack = ((WeightedRandomObject)WeightedRandom.getRandomItem(rand, cargo)).asStack(); - addToInv(stack.copy()); - } - } - - private void addToInv(ItemStack stack) { - - for(int i = 0; i < 15; i++) { - - if(slots[i] != null && slots[i].getItem() == stack.getItem() && slots[i].getItemDamage() == stack.getItemDamage() && slots[i].stackSize < slots[i].getMaxStackSize()) { - - int toAdd = Math.min(slots[i].getMaxStackSize() - slots[i].stackSize, stack.stackSize); - - slots[i].stackSize += toAdd; - stack.stackSize -= toAdd; - - if(stack.stackSize <= 0) return; - } - } - - for(int i = 0; i < 15; i++) { - - if(slots[i] == null) { - slots[i] = new ItemStack(stack.getItem(), 1, stack.getItemDamage()); - return; - } - } - } - - private void ejectInto(int x, int y, int z) { - - TileEntity te = worldObj.getTileEntity(x, y, z); - - if(te instanceof IInventory) { - - IInventory chest = (IInventory)te; - - for(int i = 0; i < 15; i++) { - - if(slots[i] != null) { - - for(int j = 0; j < chest.getSizeInventory(); j++) { - - ItemStack sta = slots[i].copy(); - sta.stackSize = 1; - - if(chest.getStackInSlot(j) != null && chest.getStackInSlot(j).isItemEqual(slots[i]) && ItemStack.areItemStackTagsEqual(chest.getStackInSlot(j), slots[i]) && - chest.getStackInSlot(j).stackSize < chest.getStackInSlot(j).getMaxStackSize()) { - - slots[i].stackSize--; - - if(slots[i].stackSize <= 0) - slots[i] = null; - - chest.getStackInSlot(j).stackSize++; - return; - } - } - } - } - - for(int i = 0; i < 15; i++) { - - if(slots[i] != null) { - - for(int j = 0; j < chest.getSizeInventory(); j++) { - - ItemStack sta = slots[i].copy(); - sta.stackSize = 1; - - if(chest.getStackInSlot(j) == null && chest.isItemValidForSlot(j, sta)) { - - slots[i].stackSize--; - - if(slots[i].stackSize <= 0) - slots[i] = null; - - chest.setInventorySlotContents(j, sta); - return; - } - } - } - } - } - } - - AxisAlignedBB bb = null; - - @Override - public AxisAlignedBB getRenderBoundingBox() { - - if(bb == null) { - bb = AxisAlignedBB.getBoundingBox( - xCoord - 1, - yCoord, - zCoord - 1, - xCoord + 2, - yCoord + 1, - zCoord + 2 - ); - } - - return bb; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerSatDock(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUISatDock(player.inventory, this); - } + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUISatDock(player.inventory, this); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java index 2fd404480..7e95c91ad 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java @@ -3,11 +3,11 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.container.ContainerMachineSatLinker; import com.hbm.inventory.gui.GUIMachineSatLinker; import com.hbm.items.ISatChip; +import com.hbm.saveddata.SatelliteSavedData; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -18,8 +18,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class TileEntityMachineSatLinker extends TileEntity implements ISidedInventory, IGUIProvider { - - private ItemStack slots[]; + private ItemStack[] slots; //public static final int maxFill = 64 * 3; @@ -45,21 +44,19 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve @Override public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { + if(slots[i] != null) { ItemStack itemStack = slots[i]; slots[i] = null; return itemStack; } else { - return null; + return null; } } @Override public void setInventorySlotContents(int i, ItemStack itemStack) { slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { + if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { itemStack.stackSize = getInventoryStackLimit(); } } @@ -85,11 +82,10 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve @Override public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; } } @@ -105,17 +101,14 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve @Override public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { + if(slots[i] != null) { + if(slots[i].stackSize <= j) { ItemStack itemStack = slots[i]; slots[i] = null; return itemStack; } ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { + if (slots[i].stackSize == 0) { slots[i] = null; } @@ -132,12 +125,10 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve slots = new ItemStack[getSizeInventory()]; - for(int i = 0; i < list.tagCount(); i++) - { + for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound nbt1 = list.getCompoundTagAt(i); byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { + if(b0 >= 0 && b0 < slots.length) { slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } @@ -148,10 +139,8 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve super.writeToNBT(nbt); NBTTagList list = new NBTTagList(); - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { + for(int i = 0; i < slots.length; i++) { + if(slots[i] != null) { NBTTagCompound nbt1 = new NBTTagCompound(); nbt1.setByte("slot", (byte)i); slots[i].writeToNBT(nbt1); @@ -162,8 +151,7 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); } @@ -179,15 +167,17 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve @Override public void updateEntity() { - - if(!worldObj.isRemote) - { + if(!worldObj.isRemote) { if(slots[0] != null && slots[1] != null && slots[0].getItem() instanceof ISatChip && slots[1].getItem() instanceof ISatChip) { ISatChip.setFreqS(slots[1], ISatChip.getFreqS(slots[0])); } if(slots[2] != null && slots[2].getItem() instanceof ISatChip) { - ISatChip.setFreqS(slots[2], worldObj.rand.nextInt(100000)); + SatelliteSavedData satelliteData = SatelliteSavedData.getData(worldObj); + int newId = worldObj.rand.nextInt(100000); + if(!satelliteData.isFreqTaken(newId)) { + ISatChip.setFreqS(slots[2], newId); + } } } } @@ -199,7 +189,7 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineSatLinker(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index ba08db645..6f9016127 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -6,18 +6,17 @@ import com.hbm.inventory.container.ContainerMachineSchrabidiumTransmutator; import com.hbm.inventory.gui.GUIMachineSchrabidiumTransmutator; import com.hbm.inventory.recipes.MachineRecipes; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCapacitor; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -25,7 +24,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { public long power = 0; public int process = 0; @@ -34,9 +33,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB private AudioWrapper audio; - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 1, 2 }; - private static final int[] slots_side = new int[] { 3, 2 }; + private static final int[] slots_io = new int[] { 0, 1, 2, 3 }; public TileEntityMachineSchrabidiumTransmutator() { super(4); @@ -83,22 +80,24 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); + return slots_io; } @Override public boolean canExtractItem(int i, ItemStack stack, int j) { - if (i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(stack) <= 0) || stack.getItem() == ModItems.euphemium_capacitor) { + if(stack.getItem() == ModItems.euphemium_capacitor) return false; + + if(i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && stack.getItemDamage() == stack.getMaxDamage())) { return true; } - if (i == 1) { + if(i == 1) { return true; } - if (i == 3) { - if (stack.getItem() instanceof IBatteryItem && ((IBatteryItem)stack.getItem()).getCharge(stack) == 0) + if(i == 3) { + if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == 0) return true; } @@ -115,7 +114,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB public boolean canProcess() { if (power >= 4990000 && slots[0] != null && MachineRecipes.mODE(slots[0], OreDictManager.U.ingot()) && slots[2] != null - && (slots[2].getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(slots[2]) > 0 || slots[2].getItem() == ModItems.euphemium_capacitor) + && (slots[2].getItem() == ModItems.redcoil_capacitor && slots[2].getItemDamage() < slots[2].getMaxDamage() || slots[2].getItem() == ModItems.euphemium_capacitor) && (slots[1] == null || (slots[1] != null && slots[1].getItem() == VersatileConfig.getTransmutatorItem() && slots[1].stackSize < slots[1].getMaxStackSize()))) { return true; @@ -146,7 +145,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB slots[1].stackSize++; } if (slots[2] != null && slots[2].getItem() == ModItems.redcoil_capacitor) { - ItemCapacitor.setDura(slots[2], ItemCapacitor.getDura(slots[2]) - 1); + slots[2].setItemDamage(slots[2].getItemDamage() + 1); } this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "ambient.weather.thunder", 10000.0F, @@ -168,11 +167,8 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } else { process = 0; } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("progress", process); - this.networkPack(data, 50); + + this.networkPackNT(50); } else { @@ -184,6 +180,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } + audio.updateVolume(getVolume(1F)); } else { if(audio != null) { @@ -193,7 +190,21 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } } } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeInt(this.process); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.process = buf.readInt(); + } + @Override public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); @@ -224,13 +235,6 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB audio = null; } } - - @Override - public void networkUnpack(NBTTagCompound data) { - - this.power = data.getLong("power"); - this.process = data.getInteger("progress"); - } @Override public void setPower(long i) { @@ -254,7 +258,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineSchrabidiumTransmutator(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java deleted file mode 100644 index c55778131..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ /dev/null @@ -1,435 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.io.IOException; -import java.util.HashMap; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.FluidContainerRegistry; -import com.hbm.inventory.container.ContainerMachineSelenium; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.fluid.trait.FT_Combustible; -import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; -import com.hbm.inventory.gui.GUIMachineSelenium; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider { - - private ItemStack slots[]; - - public long power; - public int soundCycle = 0; - public long powerCap = 250000; - public FluidTank tank; - public int pistonCount = 0; - - public static long maxPower = 250000; - public static int fluidCap = 16000; - public static double pistonExp = 1.0D; - public static boolean shutUp = false; - public static HashMap fuelEfficiency = new HashMap(); - static { - fuelEfficiency.put(FuelGrade.LOW, 0.75D); - fuelEfficiency.put(FuelGrade.MEDIUM, 0.5D); - fuelEfficiency.put(FuelGrade.HIGH, 0.25D); - fuelEfficiency.put(FuelGrade.AERO, 0.00D); - } - - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 1, 2 }; - private static final int[] slots_side = new int[] { 2 }; - - private String customName; - - public TileEntityMachineSeleniumEngine() { - slots = new ItemStack[14]; - tank = new FluidTank(Fluids.DIESEL, fluidCap, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineSelenium"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if (i == 9) - if (FluidContainerRegistry.getFluidContent(stack, tank.getTankType()) > 0) - return true; - if (i == 13) - if (stack.getItem() instanceof IBatteryItem) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - this.power = nbt.getLong("powerTime"); - this.powerCap = nbt.getLong("powerCap"); - tank.readFromNBT(nbt, "fuel"); - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - nbt.setLong("powerCap", powerCap); - tank.writeToNBT(nbt, "fuel"); - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if (i == 1) - if (itemStack.getItem() == ModItems.canister_empty || itemStack.getItem() == ModItems.tank_steel) - return true; - if (i == 2) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) - return true; - - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / powerCap; - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - this.subscribeToAllAround(tank.getTankType(), this); - this.sendPower(worldObj, xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN); - - pistonCount = countPistons(); - - //Tank Management - tank.setType(11, 12, slots); - tank.loadTank(9, 10, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - FluidType type = tank.getTankType(); - if(type == Fluids.NITAN) - powerCap = maxPower * 10; - else - powerCap = maxPower; - - // Battery Item - power = Library.chargeItemsFromTE(slots, 13, power, powerCap); - - if(this.pistonCount > 2) - generate(); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, pistonCount, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, (int)powerCap, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - - public int countPistons() { - int count = 0; - - for(int i = 0; i < 9; i++) { - if(slots[i] != null && slots[i].getItem() == ModItems.piston_selenium) - count++; - } - - return count; - } - - public boolean hasAcceptableFuel() { - return getHEFromFuel() > 0; - } - - public long getHEFromFuel() { - return getHEFromFuel(tank.getTankType()); - } - - public static long getHEFromFuel(FluidType type) { - - if(type.hasTrait(FT_Combustible.class)) { - FT_Combustible fuel = type.getTrait(FT_Combustible.class); - FuelGrade grade = fuel.getGrade(); - double efficiency = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0; - return (long) (fuel.getCombustionEnergy() / 1000L * efficiency); - } - - return 0; - } - - public void generate() { - if (hasAcceptableFuel()) { - if (tank.getFill() > 0) { - - if(!shutUp) { - if (soundCycle == 0) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", 1.0F, 0.5F); - } - soundCycle++; - - if (soundCycle >= 3) - soundCycle = 0; - } - - tank.setFill(tank.getFill() - this.pistonCount); - if(tank.getFill() < 0) - tank.setFill(0); - - power += getHEFromFuel() * Math.pow(this.pistonCount, pistonExp); - - if(power > powerCap) - power = powerCap; - } - } - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void setPower(long i) { - this.power = i; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } - - @Override - public boolean canConnect(ForgeDirection dir) { - return dir == ForgeDirection.DOWN; - } - - @Override - public String getConfigName() { - return "radialengine"; - } - - @Override - public void readIfPresent(JsonObject obj) { - maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); - fluidCap = IConfigurableMachine.grab(obj, "I:fuelCap", fluidCap); - pistonExp = IConfigurableMachine.grab(obj, "D:pistonGenExponent", pistonExp); - - if(obj.has("D[:efficiency")) { - JsonArray array = obj.get("D[:efficiency").getAsJsonArray(); - for(FuelGrade grade : FuelGrade.values()) { - fuelEfficiency.put(grade, array.get(grade.ordinal()).getAsDouble()); - } - } - - shutUp = IConfigurableMachine.grab(obj, "B:shutUp", shutUp); - } - - @Override - public void writeConfig(JsonWriter writer) throws IOException { - writer.name("L:powerCap").value(maxPower); - writer.name("I:fuelCap").value(fluidCap); - writer.name("D:pistonGenExponent").value(pistonExp); - - String info = "Fuel grades in order: "; - for(FuelGrade grade : FuelGrade.values()) info += grade.name() + " "; - info = info.trim(); - writer.name("INFO").value(info); - - writer.name("D[:efficiency").beginArray().setIndent(""); - for(FuelGrade grade : FuelGrade.values()) { - double d = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0.0D; - writer.value(d); - } - writer.endArray().setIndent(" "); - writer.name("B:shutUp").value(shutUp); - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] {tank}; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tank}; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineSelenium(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineSelenium(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index ee1e8fb32..f948a67f4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -5,17 +5,14 @@ import com.hbm.inventory.gui.GUIMachineShredder; import com.hbm.inventory.recipes.ShredderRecipes; import com.hbm.items.machine.ItemBlades; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -25,7 +22,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineShredder extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IGUIProvider { +public class TileEntityMachineShredder extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IGUIProvider { private ItemStack slots[]; @@ -34,11 +31,11 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I public int soundCycle = 0; public static final long maxPower = 10000; public static final int processingSpeed = 60; - + private static final int[] slots_io = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}; - + private String customName; - + public TileEntityMachineShredder() { slots = new ItemStack[30]; } @@ -83,7 +80,7 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } - + public void setCustomName(String name) { this.customName = name; } @@ -102,7 +99,7 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; } } - + //You scrubs aren't needed for anything (right now) @Override public void openInventory() {} @@ -114,10 +111,10 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I if(i < 9) return ShredderRecipes.getShredderResult(stack) != null && !(stack.getItem() instanceof ItemBlades); if(i == 29) return stack.getItem() instanceof IBatteryItem; if(i == 27 || i == 28) return stack.getItem() instanceof ItemBlades; - + return false; } - + @Override public ItemStack decrStackSize(int i, int j) { if(slots[i] != null) @@ -133,21 +130,21 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I { slots[i] = null; } - + return itemStack1; } else { return null; } } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - + this.power = nbt.getLong("powerTime"); slots = new ItemStack[getSizeInventory()]; - + for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound nbt1 = list.getCompoundTagAt(i); @@ -158,13 +155,13 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I } } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setLong("powerTime", power); NBTTagList list = new NBTTagList(); - + for(int i = 0; i < slots.length; i++) { if(slots[i] != null) @@ -177,7 +174,7 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I } nbt.setTag("items", list); } - + @Override public int[] getAccessibleSlotsFromSide(int side) { return slots_io; @@ -187,20 +184,20 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I public boolean canInsertItem(int slot, ItemStack itemStack, int side) { if((slot >= 9 && slot != 27 && slot != 28) || !this.isItemValidForSlot(slot, itemStack)) return false; - + if(slots[slot] == null) return true; - + int size = slots[slot].stackSize; - + for(int k = 0; k < 9; k++) { if(slots[k] == null) return false; - + if(slots[k].getItem() == itemStack.getItem() && slots[k].getItemDamage() == itemStack.getItemDamage() && slots[k].stackSize < size) return false; } - + return true; } @@ -208,109 +205,121 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(i >= 9 && i <= 26) return true; if(i >= 27 && i <= 28) if(itemStack.getItemDamage() == itemStack.getMaxDamage() && itemStack.getMaxDamage() > 0) return true; - + return false; } - + public int getDiFurnaceProgressScaled(int i) { return (progress * i) / processingSpeed; } - + public boolean hasPower() { return power > 0; } - + public boolean isProcessing() { return this.progress > 0; } - + @Override public void updateEntity() { boolean flag1 = false; - + if(!worldObj.isRemote) { - + this.updateConnections(); - + if(hasPower() && canProcess()) { progress++; - + power -= 5; - + if(this.progress == TileEntityMachineShredder.processingSpeed) { for(int i = 27; i <= 28; i++) if(slots[i].getMaxDamage() > 0) this.slots[i].setItemDamage(this.slots[i].getItemDamage() + 1); - + this.progress = 0; this.processItem(); flag1 = true; } if(soundCycle == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "minecart.base", 1.0F, 0.75F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "minecart.base", getVolume(1.0F), 0.75F); soundCycle++; - + if(soundCycle >= 50) soundCycle = 0; }else{ progress = 0; } - + boolean trigger = true; - + if(hasPower() && canProcess() && this.progress == 0) { trigger = false; } - + if(trigger) { flag1 = true; } - + power = Library.chargeTEFromItems(slots, 29, power, maxPower); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + networkPackNT(50); } - + if(flag1) { this.markDirty(); } } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + } + private void updateConnections() { - + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } - + public void processItem() { - + for(int inpSlot = 0; inpSlot < 9; inpSlot++) { if(slots[inpSlot] != null && hasSpace(slots[inpSlot])) { ItemStack inp = slots[inpSlot]; ItemStack outp = ShredderRecipes.getShredderResult(inp); - + boolean flag = false; - + for (int outSlot = 9; outSlot < 27; outSlot++) { - if (slots[outSlot] != null && slots[outSlot].getItem() == outp.getItem() && + if (slots[outSlot] != null && slots[outSlot].getItem() == outp.getItem() && slots[outSlot].getItemDamage() == outp.getItemDamage() && slots[outSlot].stackSize + outp.stackSize <= outp.getMaxStackSize()) { - + slots[outSlot].stackSize += outp.stackSize; slots[inpSlot].stackSize -= 1; flag = true; break; } } - + if(!flag) for (int outSlot = 9; outSlot < 27; outSlot++) { @@ -320,18 +329,18 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I break; } } - + if(slots[inpSlot].stackSize <= 0) slots[inpSlot] = null; } } } - + public boolean canProcess() { - if(slots[27] != null && slots[28] != null && - this.getGearLeft() > 0 && this.getGearLeft() < 3 && + if(slots[27] != null && slots[28] != null && + this.getGearLeft() > 0 && this.getGearLeft() < 3 && this.getGearRight() > 0 && this.getGearRight() < 3) { - + for(int i = 0; i < 9; i++) { if(slots[i] != null && slots[i].stackSize > 0 && hasSpace(slots[i])) @@ -340,14 +349,14 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I } } } - + return false; } - + public boolean hasSpace(ItemStack stack) { - + ItemStack result = ShredderRecipes.getShredderResult(stack); - + if (result != null) for (int i = 9; i < 27; i++) { if (slots[i] == null) { @@ -359,16 +368,16 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I return true; } } - + return false; } @Override public void setPower(long i) { this.power = i; - + } - + public long getPowerScaled(long i) { return (power * i) / maxPower; } @@ -382,14 +391,14 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I public long getMaxPower() { return TileEntityMachineShredder.maxPower; } - + public int getGearLeft() { - + if(slots[27] != null && slots[27].getItem() instanceof ItemBlades) { if(slots[27].getMaxDamage() == 0) return 1; - + if(slots[27].getItemDamage() < slots[27].getItem().getMaxDamage()/2) { return 1; @@ -399,17 +408,17 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I return 3; } } - + return 0; } - + public int getGearRight() { - + if(slots[28] != null && slots[28].getItem() instanceof ItemBlades) { if(slots[28].getMaxDamage() == 0) return 1; - + if(slots[28].getItemDamage() < slots[28].getItem().getMaxDamage()/2) { return 1; @@ -419,7 +428,7 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I return 3; } } - + return 0; } @@ -430,7 +439,7 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineShredder(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java deleted file mode 100644 index 66454362c..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java +++ /dev/null @@ -1,220 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; - -import api.hbm.energy.IBatteryItem; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; - -public class TileEntityMachineShredderLarge extends TileEntity implements ISidedInventory { - - private ItemStack slots[]; - - public long power; - public static final long maxPower = 100000; - public int progress; - public int maxProgress = 100; - - Random rand = new Random(); - - private String customName; - - public TileEntityMachineShredderLarge() { - slots = new ItemStack[31]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.assembler"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - this.power = nbt.getLong("powerTime"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return new int[] { 0 }; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (progress * i) / maxProgress; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - } - - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java index a2ebd812f..7c10537d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java @@ -8,13 +8,12 @@ import com.hbm.items.machine.ItemCassette; import com.hbm.items.machine.ItemCassette.SoundType; import com.hbm.items.machine.ItemCassette.TrackType; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TESirenPacket; +import com.hbm.packet.toclient.TESirenPacket; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -233,7 +232,7 @@ public class TileEntityMachineSiren extends TileEntity implements ISidedInventor @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineSiren(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java new file mode 100644 index 000000000..bf1c795da --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java @@ -0,0 +1,402 @@ +package com.hbm.tileentity.machine; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.container.ContainerMachineSolderingStation; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineSolderingStation; +import com.hbm.inventory.recipes.SolderingRecipes; +import com.hbm.inventory.recipes.SolderingRecipes.SolderingRecipe; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineSolderingStation extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable { + + public long power; + public long maxPower = 2_000; + public long consumption; + public boolean collisionPrevention = false; + + public int progress; + public int processTime = 1; + + public FluidTank tank; + public ItemStack display; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + + public TileEntityMachineSolderingStation() { + super(11); + this.tank = new FluidTank(Fluids.NONE, 8_000); + } + + @Override + public String getName() { + return "container.machineSolderingStation"; + } + + @Override + public void setInventorySlotContents(int i, ItemStack stack) { + super.setInventorySlotContents(i, stack); + + if(stack != null && stack.getItem() instanceof ItemMachineUpgrade && i >= 9 && i <= 10) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + } + } + + private SolderingRecipe recipe; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 7, this.getPower(), this.getMaxPower()); + this.tank.setType(8, slots); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tank.getTankType() != Fluids.NONE) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + recipe = SolderingRecipes.getRecipe(new ItemStack[] {slots[0], slots[1], slots[2], slots[3], slots[4], slots[5]}); + long intendedMaxPower; + + upgradeManager.checkSlots(this, slots, 9, 10); + int redLevel = upgradeManager.getLevel(UpgradeType.SPEED); + int blueLevel = upgradeManager.getLevel(UpgradeType.POWER); + + if(recipe != null) { + this.processTime = recipe.duration - (recipe.duration * redLevel / 6) + (recipe.duration * blueLevel / 3); + this.consumption = recipe.consumption + (recipe.consumption * redLevel) - (recipe.consumption * blueLevel / 6); + intendedMaxPower = recipe.consumption * 20; + + if(canProcess(recipe)) { + this.progress++; + this.power -= this.consumption; + + if(progress >= processTime) { + this.progress = 0; + this.consumeItems(recipe); + + if(slots[6] == null) { + slots[6] = recipe.output.copy(); + } else { + slots[6].stackSize += recipe.output.stackSize; + } + + this.markDirty(); + } + + if(worldObj.getTotalWorldTime() % 20 == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + NBTTagCompound dPart = new NBTTagCompound(); + dPart.setString("type", "tau"); + dPart.setByte("count", (byte) 3); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(dPart, xCoord + 0.5 - dir.offsetX * 0.5 + rot.offsetX * 0.5, yCoord + 1.125, zCoord + 0.5 - dir.offsetZ * 0.5 + rot.offsetZ * 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); + } + + } else { + this.progress = 0; + } + + } else { + this.progress = 0; + this.consumption = 100; + intendedMaxPower = 2000; + } + + this.maxPower = Math.max(intendedMaxPower, power); + + this.networkPackNT(25); + } + } + + public boolean canProcess(SolderingRecipe recipe) { + + if(this.power < this.consumption) return false; + + if(recipe.fluid != null) { + if(this.tank.getTankType() != recipe.fluid.type) return false; + if(this.tank.getFill() < recipe.fluid.fill) return false; + } + + if(collisionPrevention && recipe.fluid == null && this.tank.getFill() > 0) return false; + + if(slots[6] != null) { + if(slots[6].getItem() != recipe.output.getItem()) return false; + if(slots[6].getItemDamage() != recipe.output.getItemDamage()) return false; + if(slots[6].stackSize + recipe.output.stackSize > slots[6].getMaxStackSize()) return false; + } + + return true; + } + + public void consumeItems(SolderingRecipe recipe) { + + for(AStack aStack : recipe.toppings) { + for(int i = 0; i < 3; i++) { + ItemStack stack = slots[i]; + if(aStack.matchesRecipe(stack, true) && stack.stackSize >= aStack.stacksize) { this.decrStackSize(i, aStack.stacksize); break; } + } + } + + for(AStack aStack : recipe.pcb) { + for(int i = 3; i < 5; i++) { + ItemStack stack = slots[i]; + if(aStack.matchesRecipe(stack, true) && stack.stackSize >= aStack.stacksize) { this.decrStackSize(i, aStack.stacksize); break; } + } + } + + for(AStack aStack : recipe.solder) { + for(int i = 5; i < 6; i++) { + ItemStack stack = slots[i]; + if(aStack.matchesRecipe(stack, true) && stack.stackSize >= aStack.stacksize) { this.decrStackSize(i, aStack.stacksize); break; } + } + } + + if(recipe.fluid != null) { + this.tank.setFill(tank.getFill() - recipe.fluid.fill); + } + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot < 3) { + for(int i = 0; i < 3; i++) if(i != slot && slots[i] != null && slots[i].isItemEqual(stack)) return false; + for(AStack t : SolderingRecipes.toppings) if(t.matchesRecipe(stack, true)) return true; + } else if(slot < 5) { + for(int i = 3; i < 5; i++) if(i != slot && slots[i] != null && slots[i].isItemEqual(stack)) return false; + for(AStack t : SolderingRecipes.pcb) if(t.matchesRecipe(stack, true)) return true; + } else if(slot < 6) { + for(int i = 5; i < 6; i++) if(i != slot && slots[i] != null && slots[i].isItemEqual(stack)) return false; + for(AStack t : SolderingRecipes.solder) if(t.matchesRecipe(stack, true)) return true; + } + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i == 6; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0, 1, 2, 3, 4, 5, 6 }; + } + + protected DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir), + new DirPos(xCoord + dir.offsetX + rot.offsetX, yCoord, zCoord + dir.offsetZ + rot.offsetZ, dir), + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - rot.offsetX, yCoord, zCoord - rot.offsetZ, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX - rot.offsetX, yCoord, zCoord - dir.offsetZ - rot.offsetZ, rot.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), + new DirPos(xCoord - dir.offsetX + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ + rot.offsetZ * 2, rot), + }; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeLong(this.maxPower); + buf.writeLong(this.consumption); + buf.writeInt(this.progress); + buf.writeInt(this.processTime); + buf.writeBoolean(this.collisionPrevention); + buf.writeBoolean(recipe != null); + if(recipe != null) { + buf.writeInt(Item.getIdFromItem(recipe.output.getItem())); + buf.writeInt(recipe.output.getItemDamage()); + } + this.tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.maxPower = buf.readLong(); + this.consumption = buf.readLong(); + this.progress = buf.readInt(); + this.processTime = buf.readInt(); + this.collisionPrevention = buf.readBoolean(); + + if(buf.readBoolean()) { + int id = buf.readInt(); + this.display = new ItemStack(Item.getItemById(id), 1, buf.readInt()); + } else { + this.display = null; + } + + this.tank.deserialize(buf); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + this.progress = nbt.getInteger("progress"); + this.processTime = nbt.getInteger("processTime"); + this.collisionPrevention = nbt.getBoolean("collisionPrevention"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + nbt.setLong("maxPower", maxPower); + nbt.setInteger("progress", progress); + nbt.setInteger("processTime", processTime); + nbt.setBoolean("collisionPrevention", collisionPrevention); + tank.writeToNBT(nbt, "t"); + } + + @Override + public long getPower() { + return Math.max(Math.min(power, maxPower), 0); + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {tank}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineSolderingStation(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineSolderingStation(player.inventory, this); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_soldering_station)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 100 / 6) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 100 / 6) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 100 / 3) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + return upgrades; + } + + @Override + public FluidTank getTankToPaste() { + return tank; + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + this.collisionPrevention = !this.collisionPrevention; + this.markDirty(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java new file mode 100644 index 000000000..00b4812ce --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -0,0 +1,357 @@ +package com.hbm.tileentity.machine; + +import api.hbm.block.ICrucibleAcceptor; +import api.hbm.fluid.IFluidStandardTransceiver; +import com.hbm.blocks.BlockDummyable; +import com.hbm.inventory.container.ContainerMachineStrandCaster; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineStrandCaster; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMold; +import com.hbm.items.machine.ItemScraps; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.util.fauxpointtwelve.DirPos; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +//god thank you bob for this base class +public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase implements IGUIProvider, ICrucibleAcceptor, ISidedInventory, IFluidStandardTransceiver, IInventory { + + public FluidTank water; + public FluidTank steam; + private long lastCastTick = 0; + + public String getName() { + return "container.machineStrandCaster"; + } + + @Override + public String getInventoryName() { + return getName(); + } + + public TileEntityMachineStrandCaster() { + super(7); + water = new FluidTank(Fluids.WATER, 64_000); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(this.lastType != this.type || this.lastAmount != this.amount) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + this.lastType = this.type; + this.lastAmount = this.amount; + } + + if (this.amount >= this.getCapacity()) { + //In case of overfill problems, spit out the excess as scrap + if (amount > getCapacity()) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, Math.max(amount - getCapacity(), 0))); + EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord + 2, zCoord + 0.5, scrap); + worldObj.spawnEntityInWorld(item); + } + this.amount = this.getCapacity(); + } + + if(this.amount == 0) { + this.type = null; + } + + this.updateConnections(); + + ItemMold.Mold mold = this.getInstalledMold(); + + if(canProcess()) { + int minAmount = mold.getCost() * 9; + + // Makes it flush the buffers after 10 seconds of inactivity + if(worldObj.getWorldTime() >= lastCastTick + 200) { + minAmount = mold.getCost(); + } + + if(this.amount >= minAmount) { + int itemsCasted = amount / mold.getCost(); + + for(int j = 0; j < itemsCasted; j++) { + this.amount -= mold.getCost(); + + ItemStack out = mold.getOutput(type); + + for(int i = 1; i < 7; i++) { + if(slots[i] == null) { + slots[i] = out.copy(); + break; + } + + if(slots[i].isItemEqual(out) && slots[i].stackSize + out.stackSize <= out.getMaxStackSize()) { + slots[i].stackSize += out.stackSize; + break; + } + + } + } + markChanged(); + + water.setFill(water.getFill() - getWaterRequired() * itemsCasted); + steam.setFill(steam.getFill() + getWaterRequired() * itemsCasted); + + lastCastTick = worldObj.getWorldTime(); + } + } + + networkPackNT(150); + + } + + } + + public boolean canProcess() { + ItemMold.Mold mold = this.getInstalledMold(); + if(type != null && mold != null && mold.getOutput(type) != null) { + for(int i = 1; i < 7; i++) { + if(slots[i] == null || slots[i].isItemEqual(mold.getOutput(type)) && slots[i].stackSize + mold.getOutput(type).stackSize <= mold.getOutput(type).getMaxStackSize()) + return water.getFill() >= getWaterRequired() && steam.getFill() < steam.getMaxFill(); + + } + } + + return false; + } + + public DirPos[] getFluidConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), + new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX * 5, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 5, rot), + new DirPos(xCoord - rot.offsetX - dir.offsetX * 5, yCoord, zCoord - rot.offsetZ - dir.offsetZ * 5, rot.getOpposite()) + }; + } + + public int[][] getMetalPourPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new int[][] { + new int[] { xCoord + rot.offsetX - dir.offsetX, yCoord + 2, zCoord + rot.offsetZ - dir.offsetZ }, + new int[] { xCoord - dir.offsetX, yCoord + 2, zCoord - dir.offsetZ }, + new int[] { xCoord + rot.offsetX, yCoord + 2, zCoord + rot.offsetZ }, + new int[] { xCoord, yCoord + 2, zCoord } + }; + } + + @Override + public ItemMold.Mold getInstalledMold() { + if(slots[0] == null) + return null; + + if(slots[0].getItem() == ModItems.mold) { + return ((ItemMold) slots[0].getItem()).getMold(slots[0]); + } + + return null; + } + + @Override + public int getMoldSize() { + return getInstalledMold().size; + } + + @Override + public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { + + if(side != ForgeDirection.UP) + return false; + for(int[] pos : getMetalPourPos()) { + if(pos[0] == x && pos[1] == y && pos[2] == z) { + return this.standardCheck(world, x, y, z, side, stack); + } + } + return false; + + } + + @Override + public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + if(this.type != null && this.type != stack.material) return false; + int limit = this.getInstalledMold() != null ? this.getInstalledMold().getCost() * 9 : this.getCapacity(); + return !(this.amount >= limit || getInstalledMold() == null); + } + + @Override + public int getCapacity() { + ItemMold.Mold mold = this.getInstalledMold(); + return mold == null ? 50000 : mold.getCost() * 10; + } + + private int getWaterRequired() { + return getInstalledMold() != null ? 5 * getInstalledMold().getCost() : 50; + } + + private void updateConnections() { + for(DirPos pos : getFluidConPos()) { + this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + @Override + public Mats.MaterialStack standardAdd(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { + this.type = stack.material; + int limit = this.getInstalledMold() != null ? this.getInstalledMold().getCost() * 9 : this.getCapacity(); + if(stack.amount + this.amount <= limit) { + this.amount += stack.amount; + return null; + } + + int required = limit - this.amount; + this.amount = limit; + + stack.amount -= required; + + return stack; + } + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { steam }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { water }; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { water, steam }; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineStrandCaster(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineStrandCaster(player.inventory, this); + } + + @Override + public void serialize(ByteBuf buf) { + water.serialize(buf); + steam.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + water.deserialize(buf); + steam.deserialize(buf); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + water.writeToNBT(nbt, "w"); + steam.writeToNBT(nbt, "s"); + nbt.setLong("t", lastCastTick); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + water.readFromNBT(nbt, "w"); + steam.readFromNBT(nbt, "s"); + lastCastTick = nbt.getLong("t"); + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + if(i == 0) return stack.getItem() == ModItems.mold; + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 1, 2, 3, 4, 5, 6 }; + } + + public void markChanged() { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + } + + @Override + public boolean canInsertItem(int slot, ItemStack itemStack, int side) { + return this.isItemValidForSlot(slot, itemStack); + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return !this.isItemValidForSlot(slot, itemStack); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 7, + yCoord, + zCoord - 7, + xCoord + 7, + yCoord + 3, + zCoord + 7); + } + return bb; + } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleporter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleporter.java index 9baaffd5f..cdcbea5a3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleporter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleporter.java @@ -3,12 +3,14 @@ package com.hbm.tileentity.machine; import java.util.Iterator; import java.util.List; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; +import com.hbm.util.BufferUtil; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.ReflectionHelper; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityTracker; @@ -27,8 +29,9 @@ import net.minecraft.util.IntHashMap; import net.minecraft.util.MathHelper; import net.minecraft.world.WorldServer; import net.minecraft.world.chunk.IChunkProvider; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver { +public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements IEnergyReceiverMK2, IBufPacketReceiver { public long power = 0; public int targetX = -1; @@ -40,25 +43,22 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements @Override public void updateEntity() { - + if(!this.worldObj.isRemote) { - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); - + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + if(this.targetY != -1) { List entities = this.worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(this.xCoord + 0.25, this.yCoord, this.zCoord + 0.25, this.xCoord + 0.75, this.yCoord + 2, this.zCoord + 0.75)); - + if(!entities.isEmpty()) { for(Entity e : entities) { teleport(e); } } } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setIntArray("target", new int[] {targetX, targetY, targetZ, targetDim}); - INBTPacketReceiver.networkPack(this, data, 15); - + + networkPackNT(15); + } else { if(this.targetY != -1 && power >= consumption) { @@ -71,9 +71,15 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - int[] target = nbt.getIntArray("target"); + public void serialize(ByteBuf buf) { + buf.writeLong(power); + BufferUtil.writeIntArray(buf, new int[] {targetX, targetY, targetZ, targetDim}); + } + + @Override + public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + int[] target = BufferUtil.readIntArray(buf); this.targetX = target[0]; this.targetY = target[1]; this.targetZ = target[2]; @@ -94,7 +100,7 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setLong("power", power); nbt.setInteger("x1", targetX); nbt.setInteger("y1", targetY); @@ -103,25 +109,25 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements } public void teleport(Entity entity) { - + if(this.power < consumption) return; - + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, "mob.endermen.portal", 1.0F, 1.0F); - + if((entity instanceof EntityPlayerMP)) { - + EntityPlayerMP player = (EntityPlayerMP) entity; if(entity.dimension == this.targetDim) { player.setPositionAndUpdate(this.targetX + 0.5D, this.targetY + 1.5D + entity.getYOffset(), this.targetZ + 0.5D); } else { teleportPlayerInterdimensionally(player, this.targetX + 0.5D, this.targetY + 1.5D + entity.getYOffset(), this.targetZ + 0.5D, this.targetDim); } - + } else { - + if(entity.dimension == this.targetDim) { entity.setPositionAndRotation(this.targetX + 0.5D, this.targetY + 1.5D + entity.getYOffset(), this.targetZ + 0.5D, entity.rotationYaw, entity.rotationPitch); - + try { EntityTracker entitytracker = ((WorldServer)worldObj).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); @@ -137,21 +143,21 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements teleportEntityInterdimensionally(entity, this.targetX + 0.5D, this.targetY + 1.5D + entity.getYOffset(), this.targetZ + 0.5D, this.targetDim); } } - + worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "mob.endermen.portal", 1.0F, 1.0F); - + this.power -= consumption; this.markDirty(); } - + /** Teleports a player to a different dimension, gracefully copied from ServerConfigurationManager */ public static boolean teleportPlayerInterdimensionally(EntityPlayerMP player, double x, double y, double z, int dim) { - + int prevDim = player.dimension; WorldServer prevWorld = player.mcServer.worldServerForDimension(prevDim); WorldServer newWorld = player.mcServer.worldServerForDimension(dim); player.dimension = dim; - + if(newWorld == null) return false; ServerConfigurationManager man = player.mcServer.getConfigurationManager(); @@ -159,15 +165,15 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements net.sendPacket(new S07PacketRespawn(player.dimension, player.worldObj.difficultySetting, newWorld.getWorldInfo().getTerrainType(), player.theItemInWorldManager.getGameType())); prevWorld.removePlayerEntityDangerously(player); player.isDead = false; - + if(player.isEntityAlive()) { player.setLocationAndAngles(x, y, z, player.rotationYaw, player.rotationPitch); newWorld.spawnEntityInWorld(player); newWorld.updateEntityWithOptionalForce(player, false); } - + player.setWorld(newWorld); - + man.func_72375_a(player, prevWorld); net.setPlayerLocation(player.posX, player.posY, player.posZ, player.rotationYaw, player.rotationPitch); player.theItemInWorldManager.setWorld(newWorld); @@ -182,18 +188,18 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements FMLCommonHandler.instance().firePlayerChangedDimensionEvent(player, prevDim, dim); return true; } - + /** Teleports non-player entities to different dimensions, gracefully copied from Entity */ public static boolean teleportEntityInterdimensionally(Entity oldEntity, double x, double y, double z, int dim) { MinecraftServer minecraftserver = MinecraftServer.getServer(); WorldServer newWorld = minecraftserver.worldServerForDimension(dim); - + if(newWorld == null) return false; oldEntity.worldObj.removeEntity(oldEntity); oldEntity.isDead = false; - + Entity entity = EntityList.createEntityByName(EntityList.getEntityString(oldEntity), newWorld); if(entity != null) { @@ -201,7 +207,7 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements entity.setLocationAndAngles(x, y, z, entity.rotationYaw, entity.rotationPitch); newWorld.updateEntityWithOptionalForce(entity, false); entity.setWorld(newWorld); - + IChunkProvider provider = newWorld.getChunkProvider(); provider.loadChunk(((int) Math.floor(x)) >> 4, ((int) Math.floor(z)) >> 4); newWorld.spawnEntityInWorld(entity); @@ -209,7 +215,7 @@ public class TileEntityMachineTeleporter extends TileEntityLoadedBase implements oldEntity.isDead = true; newWorld.resetUpdateEntityTick(); - + return true; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index eb4d3f731..88f1c3694 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -1,11 +1,10 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; +import java.io.IOException; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerMachineTurbine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -14,18 +13,25 @@ import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.gui.GUIMachineTurbine; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import api.hbm.tile.IInfoProviderEC; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -35,27 +41,56 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IEnergyProviderMK2, IFluidStandardTransceiver, IBufPacketReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine, IFluidCopiable{ private ItemStack slots[]; public long power; - public static final long maxPower = 1000000; public int age = 0; - public List list2 = new ArrayList(); public FluidTank[] tanks; - + private static final int[] slots_top = new int[] {4}; private static final int[] slots_bottom = new int[] {6}; private static final int[] slots_side = new int[] {4}; - + private String customName; - + protected double[] info = new double[3]; + + //Configurable values + public static long maxPower = 1_000_000; + public static int inputTankSize = 64_000; + public static int outputTankSize = 128_000; + public static int maxSteamPerTick = 6_000; + public static double efficiency = 0.85D; + public TileEntityMachineTurbine() { slots = new ItemStack[7]; tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, 64000, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 128000, 1); + tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize); + } + @Override + public String getConfigName() { + return "steamturbine"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "L:maxPower", maxPower); + inputTankSize = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSize); + outputTankSize = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSize); + maxSteamPerTick = IConfigurableMachine.grab(obj, "I:maxSteamPerTick", maxSteamPerTick); + efficiency = IConfigurableMachine.grab(obj, "D:efficiency", efficiency); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:maxPower").value(maxPower); + writer.name("I:inputTankSize").value(inputTankSize); + writer.name("I:outputTankSize").value(outputTankSize); + writer.name("I:maxSteamPerTick").value(maxSteamPerTick); + writer.name("D:efficiency").value(efficiency); } @Override @@ -98,7 +133,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } - + public void setCustomName(String name) { this.customName = name; } @@ -117,7 +152,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; } } - + //You scrubs aren't needed for anything (right now) @Override public void openInventory() {} @@ -126,14 +161,14 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - + if(i == 4) if(stack != null && stack.getItem() instanceof IBatteryItem) return true; - + return false; } - + @Override public ItemStack decrStackSize(int i, int j) { if(slots[i] != null) @@ -149,13 +184,13 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS { slots[i] = null; } - + return itemStack1; } else { return null; } } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -164,9 +199,9 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS tanks[0].readFromNBT(nbt, "water"); tanks[1].readFromNBT(nbt, "steam"); power = nbt.getLong("power"); - + slots = new ItemStack[getSizeInventory()]; - + for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound nbt1 = list.getCompoundTagAt(i); @@ -177,16 +212,16 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS } } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); tanks[0].writeToNBT(nbt, "water"); tanks[1].writeToNBT(nbt, "steam"); nbt.setLong("power", power); - + NBTTagList list = new NBTTagList(); - + for(int i = 0; i < slots.length; i++) { if(slots[i] != null) @@ -199,7 +234,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS } nbt.setTag("items", list); } - + @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { @@ -215,135 +250,73 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS public boolean canExtractItem(int i, ItemStack itemStack, int j) { return false; } - + public long getPowerScaled(int i) { return (power * i) / maxPower; } - + @Override public void updateEntity() { - - if(!worldObj.isRemote) - { + + if(!worldObj.isRemote) { + + this.info = new double[3]; + age++; - if(age >= 2) - { + if(age >= 2) { age = 0; } - + this.subscribeToAllAround(tanks[0].getTankType(), this); - fillFluidInit(tanks[1].getTankType()); - + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); tanks[0].setType(0, 1, slots); tanks[0].loadTank(2, 3, slots); power = Library.chargeItemsFromTE(slots, 4, power, maxPower); - + FluidType in = tanks[0].getTankType(); boolean valid = false; if(in.hasTrait(FT_Coolable.class)) { FT_Coolable trait = in.getTrait(FT_Coolable.class); - double eff = trait.getEfficiency(CoolingType.TURBINE) * 0.85D; //small turbine is only 85% efficient + double eff = trait.getEfficiency(CoolingType.TURBINE) * efficiency; //small turbine is only 85% efficient by default if(eff > 0) { tanks[1].setTankType(trait.coolsTo); int inputOps = tanks[0].getFill() / trait.amountReq; int outputOps = (tanks[1].getMaxFill() - tanks[1].getFill()) / trait.amountProduced; - int cap = 6_000 / trait.amountReq; + int cap = maxSteamPerTick / trait.amountReq; int ops = Math.min(inputOps, Math.min(outputOps, cap)); tanks[0].setFill(tanks[0].getFill() - ops * trait.amountReq); tanks[1].setFill(tanks[1].getFill() + ops * trait.amountProduced); this.power += (ops * trait.heatEnergy * eff); + info[0] = ops * trait.amountReq; + info[1] = ops * trait.amountProduced; + info[2] = ops * trait.heatEnergy * eff; valid = true; } } if(!valid) tanks[1].setTankType(Fluids.NONE); if(power > maxPower) power = maxPower; - + this.sendFluidToAll(tanks[1], this); - + tanks[1].unloadTank(5, 6, slots); - - for(int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + this.networkPackNT(25); } } - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); + @Override public void serialize(ByteBuf buf) { + buf.writeLong(power); + tanks[0].serialize(buf); + tanks[1].serialize(buf); } - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); + @Override public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); } @Override @@ -376,6 +349,37 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS return tanks; } + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineTurbine(player.inventory, this); @@ -383,7 +387,15 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineTurbine(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, info[1] > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, info[0]); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index f00709901..59081ba7c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -3,6 +3,9 @@ package com.hbm.tileentity.machine; import java.util.HashMap; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.CompatHandler; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; @@ -15,14 +18,22 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; @@ -31,41 +42,42 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider { - +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyProviderMK2, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IFluidCopiable { + public long power; public static final long maxPower = 1000000L; - + public int rpm; //0-100, crescent moon gauge, used for calculating the amount of power generated, starts past 10% public int temp; //0-800, used for figuring out how much water to boil, starts boiling at 300°C public int rpmIdle = 10; public int tempIdle = 300; - + public int powerSliderPos; //goes from 0 to 60, 0 is idle, 60 is max power public int throttle; //the same thing, but goes from 0 to 100 - + public boolean autoMode; public int state = 0; //0 is offline, -1 is startup, 1 is online - + public int counter = 0; //used to startup and shutdown public int instantPowerOutput; - + public FluidTank[] tanks; - + private AudioWrapper audio; - + public static HashMap fuelMaxCons = new HashMap(); //fuel consumption per tick at max power - + static { fuelMaxCons.put(Fluids.GAS, 50D); // natgas doesn't burn well so it burns faster to compensate fuelMaxCons.put(Fluids.SYNGAS, 10D); // syngas just fucks fuelMaxCons.put(Fluids.OXYHYDROGEN, 100D); // oxyhydrogen is terrible so it needs to burn a ton for the bare minimum - fuelMaxCons.put(Fluids.REFORMGAS, 2.5D); // halved because it's too powerful + fuelMaxCons.put(Fluids.REFORMGAS, 5D); // fuck it we ball // default to 5 if not in list } - + //TODO particles from heat exchanger maybe? maybe in a future - + public TileEntityMachineTurbineGas() { super(2); this.tanks = new FluidTank[4]; @@ -74,42 +86,28 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement tanks[2] = new FluidTank(Fluids.WATER, 16000); tanks[3] = new FluidTank(Fluids.HOTSTEAM, 160000); } - + + private long powerBeforeNet; + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + throttle = powerSliderPos * 100 / 60; - + if(slots[1] != null && slots[1].getItem() instanceof IItemFluidIdentifier) { FluidType fluid = ((IItemFluidIdentifier) slots[1].getItem()).getType(worldObj, xCoord, yCoord, zCoord, slots[1]); if(fluid.hasTrait(FT_Combustible.class) && fluid.getTrait(FT_Combustible.class).getGrade() == FuelGrade.GAS) { tanks[0].setTankType(fluid); } } - - switch(state) { //what to do when turbine offline, starting up and online - case 0: - shutdown(); - break; - case -1: - stopIfNotReady(); - startup(); - break; - case 1: - stopIfNotReady(); - run(); - break; - default: - break; - } - + if(autoMode) { //power production depending on power requirement - + //scales the slider proportionally to the power gauge int powerSliderTarget = 60 - (int) (60 * power / maxPower); - + if(powerSliderTarget > powerSliderPos) { //makes the auto slider slide instead of snapping into position powerSliderPos++; } @@ -117,21 +115,36 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement powerSliderPos--; } } - + + switch(state) { //what to do when turbine offline, starting up and online + case 0: + shutdown(); + break; + case -1: + stopIfNotReady(); + startup(); + break; + case 1: + stopIfNotReady(); + run(); + break; + default: + break; + } + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", Math.min(this.power, this.maxPower)); //set first to get an unmodified view of how much power was generated before deductions from the net - + + powerBeforeNet = Math.min(this.power, maxPower); + //do net/battery deductions first... power = Library.chargeItemsFromTE(slots, 0, power, maxPower); - this.sendPower(worldObj, xCoord - dir.offsetZ * 5, yCoord + 1, zCoord + dir.offsetX * 5, rot); //sends out power - + this.tryProvide(worldObj, xCoord - dir.offsetZ * 5, yCoord + 1, zCoord + dir.offsetX * 5, rot); //sends out power + //...and then cap it. Prevents potential future cases where power would be limited due to the fuel being too strong and the buffer too small. if(this.power > this.maxPower) this.power = this.maxPower; - + for(int i = 0; i < 2; i++) { //fuel and lube this.trySubscribe(tanks[i].getTankType(), worldObj, xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()); this.trySubscribe(tanks[i].getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir); @@ -141,47 +154,29 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement this.trySubscribe(tanks[2].getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -4, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -4, dir); //steam this.sendFluid(tanks[3], worldObj, xCoord + dir.offsetZ * 6, yCoord + 1, zCoord - dir.offsetX * 6, rot.getOpposite()); - - data.setInteger("rpm", this.rpm); - data.setInteger("temp", this.temp); - data.setInteger("state", this.state); - data.setBoolean("automode", this.autoMode); - data.setInteger("throttle", this.throttle); - data.setInteger("slidpos", this.powerSliderPos); - - if(state != 1) { - data.setInteger("counter", this.counter); //sent during startup and shutdown - } else { - data.setInteger("instantPow", this.instantPowerOutput); //sent while running - } - - tanks[0].writeToNBT(data, "fuel"); - tanks[1].writeToNBT(data, "lube"); - tanks[2].writeToNBT(data, "water"); - tanks[3].writeToNBT(data, "steam"); - - this.networkPack(data, 150); - + + this.networkPackNT(150); + } else { //client side, for sounds n shit - + if(rpm >= 10 && state != -1) { //if conditions are right, play the sound - + if(audio == null) { //if there is no sound playing, start it - - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); + + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, getVolume(1.0F), 20F, 2.0F); audio.startSound(); - + } else if(!audio.isPlaying()) { audio.stopSound(); - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, getVolume(1.0F), 20F, 2.0F); audio.startSound(); } - + audio.updatePitch((float) (0.55 + 0.1 * rpm / 10)); //dynamic pitch update based on rpm - audio.updateVolume(100F); //yeah i need this - + audio.updateVolume(getVolume(2F)); //yeah i need this + } else { - + if(audio != null) { audio.stopSound(); audio = null; @@ -189,9 +184,54 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement } } } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.powerBeforeNet); + buf.writeInt(this.rpm); + buf.writeInt(this.temp); + buf.writeInt(this.state); + buf.writeBoolean(this.autoMode); + buf.writeInt(this.throttle); + buf.writeInt(this.powerSliderPos); + + if(state != 1) { + buf.writeInt(this.counter); //sent during startup and shutdown + } else { + buf.writeInt(this.instantPowerOutput); //sent while running + } + + tanks[0].serialize(buf); + tanks[1].serialize(buf); + tanks[2].serialize(buf); + tanks[3].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.rpm = buf.readInt(); + this.temp = buf.readInt(); + this.state = buf.readInt(); + this.autoMode = buf.readBoolean(); + this.throttle = buf.readInt(); + this.powerSliderPos = buf.readInt(); + + if(state != 1) + this.counter = buf.readInt(); + else + this.instantPowerOutput = buf.readInt(); //state 1 + + this.tanks[0].deserialize(buf); + this.tanks[1].deserialize(buf); + this.tanks[2].deserialize(buf); + this.tanks[3].deserialize(buf); + } + private void stopIfNotReady() { - + if(tanks[0].getFill() == 0 || tanks[1].getFill() == 0) { state = 0; } @@ -199,20 +239,20 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement state = 0; } } - + public boolean hasAcceptableFuel() { - + if(tanks[0].getTankType().hasTrait(FT_Combustible.class)) { return tanks[0].getTankType().getTrait(FT_Combustible.class).getGrade() == FuelGrade.GAS; } - + return false; } - + private void startup() { - + counter++; - + if(counter <= 20) //rpm gauge 0-100-0 rpm = 5 * counter; else if (counter > 20 && counter <= 40) @@ -221,43 +261,43 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement rpm = (int) (rpmIdle * (counter - 50) / 530); //slowly ramps up temp and RPM temp = (int) (tempIdle * (counter - 50) / 530); } - + if(counter == 50) { - worldObj.playSoundEffect(xCoord, yCoord + 2, zCoord, "hbm:block.turbinegasStartup", 1F, 1.0F); + worldObj.playSoundEffect(xCoord, yCoord + 2, zCoord, "hbm:block.turbinegasStartup", getVolume(1.0F), 1.0F); } - + if(counter == 580) { state = 1; } } - - + + int rpmLast; //used to progressively slow down and cool the turbine without immediatly setting rpm and temp to 0 int tempLast; - + private void shutdown() { - + autoMode = false; instantPowerOutput = 0; - + if(powerSliderPos > 0) powerSliderPos--; - + if(rpm <= 10 && counter > 0) { - + if(counter == 225) { - - worldObj.playSoundEffect(xCoord, yCoord + 2, zCoord, "hbm:block.turbinegasShutdown", 1F, 1.0F); - + + worldObj.playSoundEffect(xCoord, yCoord + 2, zCoord, "hbm:block.turbinegasShutdown", getVolume(1.0F), 1.0F); + rpmLast = rpm; tempLast = temp; } - + counter--; - + rpm = (int) (rpmLast * (counter) / 225); temp = (int) (tempLast * (counter) / 225); - + } else if(rpm > 11) { //quickly slows down the turbine to idle before shutdown counter = 42069; //absolutely necessary to avoid fuckeries on shutdown rpm--; @@ -266,15 +306,15 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement rpm--; } } - + /** Dynamically calculates a (hopefully) sensible burn heat from the combustion energy, scales from 300°C - 800°C */ protected int getFluidBurnTemp(FluidType type) { double dFuel = type.hasTrait(FT_Combustible.class) ? type.getTrait(FT_Combustible.class).getCombustionEnergy() : 0; return (int) Math.floor(800D - (Math.pow(Math.E, -dFuel / 100_000D)) * 300D); } - + private void run() { - + if((int) (throttle * 0.9) > rpm - rpmIdle) { //simulates the rotor's moment of inertia if(worldObj.getTotalWorldTime() % 5 == 0) { rpm++; @@ -284,9 +324,9 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement rpm--; } } - + int maxTemp = getFluidBurnTemp(tanks[0].getTankType()); // fuelMaxTemp.get(tanks[0].getTankType()) - + if(throttle * 5 * (maxTemp - tempIdle) / 500 > temp - tempIdle) { //simulates the heat exchanger's resistance to temperature variation if(worldObj.getTotalWorldTime() % 2 == 0) { temp++; @@ -296,29 +336,30 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement temp--; } } - + double consumption = fuelMaxCons.containsKey(tanks[0].getTankType()) ? fuelMaxCons.get(tanks[0].getTankType()) : 5D; + if(worldObj.getTotalWorldTime() % 20 == 0 && tanks[0].getTankType() != Fluids.OXYHYDROGEN) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); makePower(consumption, throttle); } - - + + double fuelToConsume; //used to consume 1 mb of fuel at a time when consumption is <1 mb/tick double waterToBoil; double waterPerTick = 0; - + private void makePower(double consMax, int throttle) { - + double idleConsumption = consMax * 0.05D; double consumption = idleConsumption + consMax * throttle / 100; - + fuelToConsume += consumption; - + tanks[0].setFill(tanks[0].getFill() - (int) Math.floor(fuelToConsume)); fuelToConsume -= (int) Math.floor(fuelToConsume); - - if(worldObj.getTotalWorldTime() % 10 == 0) //lube consumption + + if(worldObj.getTotalWorldTime() % 10 == 0) //lube consumption tanks[1].setFill(tanks[1].getFill() - 1); - + if(tanks[0].getFill() < 0) { //avoids negative amounts of fluid tanks[0].setFill(0); state = 0; @@ -327,16 +368,16 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement tanks[1].setFill(0); state = 0; } - - + + long energy = 0; //energy per mb of fuel - + if(tanks[0].getTankType().hasTrait(FT_Combustible.class)) { energy = tanks[0].getTankType().getTrait(FT_Combustible.class).getCombustionEnergy() / 1000L; } - + int rpmEff = rpm - rpmIdle; // RPM above idle level, 0-90 - + //consMax*energy is equivalent to power production at 100% if(instantPowerOutput < (consMax * energy * rpmEff / 90)) { //this shit avoids power rising in steps of 2000 or so HE at a time, instead it does it smoothly instantPowerOutput += Math.random() * 0.005 * consMax * energy; @@ -349,46 +390,24 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement instantPowerOutput = (int) (consMax * energy * rpmEff / 90); } this.power += instantPowerOutput; - + waterPerTick = (consMax * energy * (temp - tempIdle) / 220000); //it just works fuck you - + if(tanks[2].getFill() >= Math.ceil(waterPerTick)) { //checks if there's enough water to boil - + waterToBoil += waterPerTick; - + if(tanks[3].getFill() <= 160000 - waterToBoil * 10) { //checks if there's room for steam in the tank - + tanks[2].setFill(tanks[2].getFill() - (int) Math.floor(waterToBoil)); tanks[3].setFill(tanks[3].getFill() + 10 * (int) Math.floor(waterToBoil)); waterToBoil -= (int) Math.floor(waterToBoil); } } } - + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - @Override - public void networkUnpack(NBTTagCompound nbt) { - - this.power = nbt.getLong("power"); - this.rpm = nbt.getInteger("rpm"); - this.temp = nbt.getInteger("temp"); - this.state = nbt.getInteger("state"); - this.autoMode = nbt.getBoolean("automode"); - this.powerSliderPos = nbt.getInteger("slidpos"); - this.throttle = nbt.getInteger("throttle"); - - if(nbt.hasKey("counter")) - this.counter = nbt.getInteger("counter"); //state 0 and -1 - else - this.instantPowerOutput = nbt.getInteger("instantPow"); //state 1 - - this.tanks[0].readFromNBT(nbt, "fuel"); - this.tanks[1].readFromNBT(nbt, "lube"); - this.tanks[2].readFromNBT(nbt, "water"); - this.tanks[3].readFromNBT(nbt, "steam"); - } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -405,11 +424,11 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement this.instantPowerOutput = nbt.getInteger("instPwr"); this.counter = nbt.getInteger("counter"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + tanks[0].writeToNBT(nbt, "gas"); tanks[1].writeToNBT(nbt, "lube"); tanks[2].writeToNBT(nbt, "water"); @@ -435,24 +454,24 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Override public void receiveControl(NBTTagCompound data) { - + if(data.hasKey("slidPos")) powerSliderPos = data.getInteger("slidPos"); - + if(data.hasKey("autoMode")) autoMode = data.getBoolean("autoMode"); - + if(data.hasKey("state")) state = data.getInteger("state"); this.markDirty(); } - + @Override public boolean hasPermission(EntityPlayer player) { return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 25; } - + @Override public void onChunkUnload() { @@ -482,17 +501,17 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement public long getPower() { return this.power; } - + @Override public long getMaxPower() { return this.maxPower; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 5, @@ -503,10 +522,10 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement zCoord + 6 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -532,7 +551,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement public FluidTank[] getSendingTanks() { return new FluidTank[] { tanks[3] }; } - + @Override public boolean canConnect(ForgeDirection dir) { return dir != ForgeDirection.DOWN; @@ -543,6 +562,139 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement return dir != ForgeDirection.DOWN; } + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_gas_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] { + tanks[0].getFill(), tanks[0].getMaxFill(), + tanks[1].getFill(), tanks[1].getMaxFill(), + tanks[2].getFill(), tanks[2].getMaxFill(), + tanks[3].getFill(), tanks[3].getMaxFill() + }; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return new Object[] {tanks[0].getTankType().getName()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getThrottle(Context context, Arguments args) { + return new Object[] {throttle}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getState(Context context, Arguments args) { + return new Object[] {state}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getAuto(Context context, Arguments args) { + return new Object[] {autoMode}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setThrottle(Context context, Arguments args) { + powerSliderPos = (int) (args.checkInteger(0) * 60D / 100D); + return new Object[] {}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setAuto(Context context, Arguments args) { + autoMode = args.checkBoolean(0); + return new Object[] {}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] start(Context context, Arguments args) { + state = -1; + return new Object[] {}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] stop(Context context, Arguments args) { + state = 0; + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {throttle, state, + tanks[0].getFill(), tanks[0].getMaxFill(), + tanks[1].getFill(), tanks[1].getMaxFill(), + tanks[2].getFill(), tanks[2].getMaxFill(), + tanks[3].getFill(), tanks[3].getMaxFill()}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getFluid", + "getType", + "getPower", + "getThrottle", + "getState", + "getAuto", + "setThrottle", + "setAuto", + "start", + "stop", + "getInfo" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch(method) { + case ("getFluid"): + return getFluid(context, args); + case ("getType"): + return getType(context, args); + case ("getPower"): + return getPower(context, args); + case ("getThrottle"): + return getThrottle(context, args); + case ("getState"): + return getState(context, args); + case ("getAuto"): + return getAuto(context, args); + case ("setThrottle"): + return setThrottle(context, args); + case ("setAuto"): + return setAuto(context, args); + case ("start"): + return start(context, args); + case ("stop"): + return stop(context, args); + case ("getInfo"): + return getInfo(context, args); + } + throw new NoSuchMethodException(); + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineTurbineGas(player.inventory, this); @@ -550,7 +702,18 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineTurbineGas(player.inventory, this); } -} \ No newline at end of file + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.state == 1); + data.setDouble(CompatEnergyControl.D_HEAT_C, Math.max(20D, this.temp)); + data.setDouble(CompatEnergyControl.D_TURBINE_PERCENT, this.powerSliderPos * 100D / 60D); + data.setInteger(CompatEnergyControl.I_TURBINE_SPEED, this.rpm); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.instantPowerOutput); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.waterToBoil); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, this.waterToBoil * 10); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 613032cb6..3af43d301 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -1,38 +1,42 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerMachineTurbofan; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; +import com.hbm.inventory.fluid.trait.FluidTrait; import com.hbm.inventory.gui.GUIMachineTurbofan; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -41,28 +45,33 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable { public long power; public static final long maxPower = 1_000_000; public FluidTank tank; public FluidTank blood; - + public int afterburner; public boolean wasOn; public boolean showBlood = false; + protected int output; + protected int consumption; public float spin; public float lastSpin; public int momentum = 0; - + private AudioWrapper audio; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineTurbofan() { - super(5); + super(5, 150); tank = new FluidTank(Fluids.KEROSENE, 24000); blood = new FluidTank(Fluids.BLOOD, 24000); } @@ -85,7 +94,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setLong("powerTime", power); tank.writeToNBT(nbt, "fuel"); blood.writeToNBT(nbt, "blood"); @@ -95,12 +104,12 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements public long getPowerScaled(long i) { return (power * i) / maxPower; } - + protected DirPos[] getConPos() { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - + return new DirPos[] { new DirPos(this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord + rot.offsetZ * 2, rot), new DirPos(this.xCoord + rot.offsetX * 2 - dir.offsetX, this.yCoord, this.zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), @@ -111,9 +120,12 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + + this.output = 0; + this.consumption = 0; + //meta below 12 means that it's an old multiblock configuration if(this.getBlockMetadata() < 12) { //get old direction @@ -135,49 +147,54 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements worldObj.getTileEntity(xCoord, yCoord, zCoord).readFromNBT(data); return; } - + tank.setType(4, slots); tank.loadTank(0, 1, slots); blood.setTankType(Fluids.BLOOD); - + this.wasOn = false; - - UpgradeManager.eval(slots, 2, 2); - this.afterburner = UpgradeManager.getLevel(UpgradeType.AFTERBURN); - + + upgradeManager.checkSlots(this, slots, 2, 2); + this.afterburner = upgradeManager.getLevel(UpgradeType.AFTERBURN); + if(slots[2] != null && slots[2].getItem() == ModItems.flame_pony) this.afterburner = 100; - + long burnValue = 0; int amount = 1 + this.afterburner; - + if(tank.getTankType().hasTrait(FT_Combustible.class) && tank.getTankType().getTrait(FT_Combustible.class).getGrade() == FuelGrade.AERO) { burnValue = tank.getTankType().getTrait(FT_Combustible.class).getCombustionEnergy() / 1_000; } - + int amountToBurn = Math.min(amount, this.tank.getFill()); - + if(amountToBurn > 0) { this.wasOn = true; this.tank.setFill(this.tank.getFill() - amountToBurn); - this.power += burnValue * amountToBurn; + this.output = (int) (burnValue * amountToBurn * (1 + Math.min(this.afterburner / 3D, 4))); + this.power += this.output; + this.consumption = amountToBurn; + + if(worldObj.getTotalWorldTime() % 20 == 0) super.pollute(tank.getTankType(), FluidTrait.FluidReleaseType.BURN, amountToBurn * 5);; } - + power = Library.chargeItemsFromTE(slots, 3, power, power); - + for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(this.blood.getFill() > 0) this.sendFluid(blood, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - + if(burnValue > 0 && amountToBurn > 0) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + if(this.afterburner > 0) { - + for(int i = 0; i < 2; i++) { double speed = 2 + worldObj.rand.nextDouble() * 3; double deviation = worldObj.rand.nextGaussian() * 0.2; @@ -188,15 +205,15 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements data.setFloat("scale", 8F); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, this.xCoord + 0.5F - dir.offsetX * (3 - i), this.yCoord + 1.5F, this.zCoord + 0.5F - dir.offsetZ * (3 - i)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); } - + /*if(this.afterburner > 90 && worldObj.rand.nextInt(60) == 0) { worldObj.newExplosion(null, xCoord + 0.5 + dir.offsetX * 3.5, yCoord + 0.5, zCoord + 0.5 + dir.offsetZ * 3.5, 3F, false, false); }*/ - + if(this.afterburner > 90 && worldObj.rand.nextInt(30) == 0) { worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, "hbm:block.damage", 3.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); } - + if(this.afterburner > 90) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "gasfire"); @@ -209,16 +226,16 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements ), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); } } - + double minX = this.xCoord + 0.5 - dir.offsetX * 3.5 - rot.offsetX * 1.5; double maxX = this.xCoord + 0.5 - dir.offsetX * 19.5 + rot.offsetX * 1.5; double minZ = this.zCoord + 0.5 - dir.offsetZ * 3.5 - rot.offsetZ * 1.5; double maxZ = this.zCoord + 0.5 - dir.offsetZ * 19.5 + rot.offsetZ * 1.5; - + List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); - + for(Entity e : list) { - + if(this.afterburner > 0) { e.setFire(5); e.attackEntityFrom(DamageSource.onFire, 5F); @@ -226,40 +243,40 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements e.motionX -= dir.offsetX * 0.2; e.motionZ -= dir.offsetZ * 0.2; } - + minX = this.xCoord + 0.5 + dir.offsetX * 3.5 - rot.offsetX * 1.5; maxX = this.xCoord + 0.5 + dir.offsetX * 8.5 + rot.offsetX * 1.5; minZ = this.zCoord + 0.5 + dir.offsetZ * 3.5 - rot.offsetZ * 1.5; maxZ = this.zCoord + 0.5 + dir.offsetZ * 8.5 + rot.offsetZ * 1.5; - + list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); - + for(Entity e : list) { e.motionX -= dir.offsetX * 0.2; e.motionZ -= dir.offsetZ * 0.2; } - + minX = this.xCoord + 0.5 + dir.offsetX * 3.5 - rot.offsetX * 1.5; maxX = this.xCoord + 0.5 + dir.offsetX * 3.75 + rot.offsetX * 1.5; minZ = this.zCoord + 0.5 + dir.offsetZ * 3.5 - rot.offsetZ * 1.5; maxZ = this.zCoord + 0.5 + dir.offsetZ * 3.75 + rot.offsetZ * 1.5; - + list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); - + for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); e.setInWeb(); - + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { NBTTagCompound vdat = new NBTTagCompound(); vdat.setString("type", "giblets"); vdat.setInteger("ent", e.getEntityId()); vdat.setInteger("cDiv", 5); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); - + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); - - blood.setFill(blood.getFill() + 50); + + blood.setFill(blood.getFill() + 50); if(blood.getFill() > blood.getMaxFill()) { blood.setFill(blood.getMaxFill()); } @@ -267,24 +284,17 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements } } } - + if(this.power > this.maxPower) { this.power = this.maxPower; } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setByte("after", (byte) afterburner); - data.setBoolean("wasOn", wasOn); - data.setBoolean("showBlood", showBlood); - tank.writeToNBT(data, "tank"); - blood.writeToNBT(data, "blood"); - this.networkPack(data, 150); - + + this.networkPackNT(150); + } else { - + this.lastSpin = this.spin; - + if(wasOn) { if(this.momentum < 100F) this.momentum++; @@ -292,16 +302,16 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements if(this.momentum > 0) this.momentum--; } - + this.spin += momentum / 2; - + if(this.spin >= 360) { this.spin -= 360F; this.lastSpin -= 360F; } if(momentum > 0) { - + if(audio == null) { audio = createAudioLoop(); audio.startSound(); @@ -310,11 +320,11 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements } audio.keepAlive(); - audio.updateVolume(momentum); + audio.updateVolume(getVolume(momentum / 50F)); audio.updatePitch(momentum / 200F + 0.5F + this.afterburner * 0.16F); - + } else { - + if(audio != null) { audio.stopSound(); audio = null; @@ -333,37 +343,37 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements double maxX = this.xCoord + 0.5 - dir.offsetX * 19.5 + rot.offsetX * 1.5; double minZ = this.zCoord + 0.5 - dir.offsetZ * 3.5 - rot.offsetZ * 1.5; double maxZ = this.zCoord + 0.5 - dir.offsetZ * 19.5 + rot.offsetZ * 1.5; - + List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); - + for(Entity e : list) { if(e == MainRegistry.proxy.me()) { e.motionX -= dir.offsetX * 0.2; e.motionZ -= dir.offsetZ * 0.2; } } - + minX = this.xCoord + 0.5 + dir.offsetX * 3.5 - rot.offsetX * 1.5; maxX = this.xCoord + 0.5 + dir.offsetX * 8.5 + rot.offsetX * 1.5; minZ = this.zCoord + 0.5 + dir.offsetZ * 3.5 - rot.offsetZ * 1.5; maxZ = this.zCoord + 0.5 + dir.offsetZ * 8.5 + rot.offsetZ * 1.5; - + list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); - + for(Entity e : list) { if(e == MainRegistry.proxy.me()) { e.motionX -= dir.offsetX * 0.2; e.motionZ -= dir.offsetZ * 0.2; } } - + minX = this.xCoord + 0.5 + dir.offsetX * 3.5 - rot.offsetX * 1.5; maxX = this.xCoord + 0.5 + dir.offsetX * 3.75 + rot.offsetX * 1.5; minZ = this.zCoord + 0.5 + dir.offsetZ * 3.5 - rot.offsetZ * 1.5; maxZ = this.zCoord + 0.5 + dir.offsetZ * 3.75 + rot.offsetZ * 1.5; - + list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); - + for(Entity e : list) { if(e == MainRegistry.proxy.me()) { e.setInWeb(); @@ -372,16 +382,29 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements } } } - - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.afterburner = nbt.getByte("after"); - this.wasOn = nbt.getBoolean("wasOn"); - this.showBlood = nbt.getBoolean("showBlood"); - tank.readFromNBT(nbt, "tank"); - blood.readFromNBT(nbt, "blood"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeByte((byte) afterburner); + buf.writeBoolean(wasOn); + buf.writeBoolean(showBlood); + tank.serialize(buf); + blood.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.afterburner = buf.readByte(); + this.wasOn = buf.readBoolean(); + this.showBlood = buf.readBoolean(); + tank.deserialize(buf); + blood.deserialize(buf); + } + public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:block.turbofanOperate", xCoord, yCoord, zCoord, 1.0F, 50F, 1.0F, 20); } @@ -421,32 +444,6 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements this.power = i; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; @@ -470,7 +467,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements @Override public FluidTank[] getAllTanks() { - return new FluidTank[] { tank, blood }; + return new FluidTank[] { tank, blood, smoke, smoke_leaded, smoke_poison }; } @Override @@ -480,7 +477,35 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineTurbofan(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.AFTERBURN; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_turbofan)); + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (int)(level * 100 * (1 + Math.min(level / 3D, 4D))) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.AFTERBURN, 3); + return upgrades; + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.output > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.consumption); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java new file mode 100644 index 000000000..3a1ebe90b --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -0,0 +1,331 @@ +package com.hbm.tileentity.machine; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.container.ContainerMachineWoodBurner; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.gui.GUIMachineWoodBurner; +import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.lib.Library; +import com.hbm.module.ModuleBurnTime; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC, IFluidCopiable { + + public long power; + public static final long maxPower = 100_000; + public int burnTime; + public int maxBurnTime; + public boolean liquidBurn = false; + public boolean isOn = false; + protected int powerGen = 0; + + public FluidTank tank; + + public static ModuleBurnTime burnModule = new ModuleBurnTime().setLogTimeMod(4).setWoodTimeMod(2); + + public int ashLevelWood; + public int ashLevelCoal; + public int ashLevelMisc; + + public TileEntityMachineWoodBurner() { + super(6); + this.tank = new FluidTank(Fluids.WOODOIL, 16_000); + } + + @Override + public String getName() { + return "container.machineWoodBurner"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + powerGen = 0; + + this.tank.setType(2, slots); + this.tank.loadTank(3, 4, slots); + this.power = Library.chargeItemsFromTE(slots, 5, power, maxPower); + + for(DirPos pos : getConPos()) { + if(power > 0) this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + if(!liquidBurn) { + + if(this.burnTime <= 0) { + + if(slots[0] != null) { + int burn = this.burnModule.getBurnTime(slots[0]); + if(burn > 0) { + EnumAshType type = TileEntityFireboxBase.getAshFromFuel(slots[0]); + if(type == EnumAshType.WOOD) ashLevelWood += burn; + if(type == EnumAshType.COAL) ashLevelCoal += burn; + if(type == EnumAshType.MISC) ashLevelMisc += burn; + int threshold = 2000; + if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; + if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; + if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + + this.maxBurnTime = this.burnTime = burn; + ItemStack container = slots[0].getItem().getContainerItem(slots[0]); + this.decrStackSize(0, 1); + if(slots[0] == null && container != null) slots[0] = container.copy(); + this.markChanged(); + } + } + + } else if(this.power < this.maxPower && isOn){ + this.burnTime--; + this.powerGen += 100; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + } + + } else { + + if(this.power < this.maxPower && tank.getFill() > 0 && isOn) { + FT_Flammable trait = tank.getTankType().getTrait(FT_Flammable.class); + + if(trait != null) { + + int toBurn = Math.min(tank.getFill(), 2); + + if(toBurn > 0) { + this.powerGen += trait.getHeatEnergy() * toBurn / 2_000L; + this.tank.setFill(this.tank.getFill() - toBurn); + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * toBurn / 2F); + } + } + } + } + + this.power += this.powerGen; + if(this.power > this.maxPower) this.power = this.maxPower; + + this.networkPackNT(25); + } else { + + if(powerGen > 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + worldObj.spawnParticle("smoke", xCoord + 0.5 - dir.offsetX + rot.offsetX, yCoord + 4, zCoord + 0.5 - dir.offsetZ + rot.offsetZ, 0, 0.05, 0); + } + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(burnTime); + buf.writeInt(powerGen); + buf.writeInt(maxBurnTime); + buf.writeBoolean(isOn); + buf.writeBoolean(liquidBurn); + + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + burnTime = buf.readInt(); + powerGen = buf.readInt(); + maxBurnTime = buf.readInt(); + isOn = buf.readBoolean(); + liquidBurn = buf.readBoolean(); + + tank.deserialize(buf); + } + + private DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()) + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.burnTime = nbt.getInteger("burnTime"); + this.maxBurnTime = nbt.getInteger("maxBurnTime"); + this.isOn = nbt.getBoolean("isOn"); + this.liquidBurn = nbt.getBoolean("liquidBurn"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setInteger("burnTime", burnTime); + nbt.setInteger("maxBurnTime", maxBurnTime); + nbt.setBoolean("isOn", isOn); + nbt.setBoolean("liquidBurn", liquidBurn); + tank.writeToNBT(nbt, "t"); + } + + protected boolean processAsh(int level, EnumAshType type, int threshold) { + + if(level >= threshold) { + if(slots[1] == null) { + slots[1] = DictFrame.fromOne(ModItems.powder_ash, type); + return true; + } else if(slots[1].stackSize < slots[1].getMaxStackSize() && slots[1].getItem() == ModItems.powder_ash && slots[1].getItemDamage() == type.ordinal()) { + slots[1].stackSize++; + return true; + } + } + + return false; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("toggle")) { + this.isOn = !this.isOn; + this.markChanged(); + } + if(data.hasKey("switch")) { + this.liquidBurn = !this.liquidBurn; + this.markChanged(); + } + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineWoodBurner(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineWoodBurner(player.inventory, this); + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 0, 1 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return i == 0 && burnModule.getBurnTime(itemStack) > 0; + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return slot == 1; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + ForgeDirection rot = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + return dir == rot.getOpposite(); + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + ForgeDirection rot = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + return dir == rot.getOpposite(); + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {tank}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 6, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, isOn); + if(this.liquidBurn) data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, 1D); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, power); + } + + @Override + public FluidTank getTankToPaste() { + return tank; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java index 6b5846286..5f81bccb6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java @@ -1,25 +1,40 @@ package com.hbm.tileentity.machine; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.CompatHandler; +import com.hbm.interfaces.ICopiable; import com.hbm.inventory.container.ContainerMicrowave; import com.hbm.inventory.gui.GUIMicrowave; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, SimpleComponent, CompatHandler.OCComponent, ICopiable { public long power; public static final long maxPower = 50000; @@ -42,8 +57,8 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg public void updateEntity() { if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); this.power = Library.chargeTEFromItems(slots, 2, power, maxPower); @@ -51,7 +66,11 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg if(speed >= maxSpeed) { worldObj.func_147480_a(xCoord, yCoord, zCoord, false); - worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 7.5F, true, true); + ExplosionVNT vnt = new ExplosionVNT(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 50)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); return; } @@ -65,19 +84,25 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg time += speed * 2; } } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("time", time); - data.setInteger("speed", speed); - networkPack(data, 50); + + networkPackNT(50); } } - - public void networkUnpack(NBTTagCompound data) { - power = data.getLong("power"); - time = data.getInteger("time"); - speed = data.getInteger("speed"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(time); + buf.writeInt(speed); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + time = buf.readInt(); + speed = buf.readInt(); } public void handleButtonPacket(int value, int meta) { @@ -122,11 +147,9 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg ItemStack stack = FurnaceRecipes.smelting().getSmeltingResult(slots[0]); - if(slots[1] == null) - return true; - - if(!stack.isItemEqual(slots[1])) - return false; + if(!(slots[0].getItem() instanceof ItemFood) && !(stack.getItem() instanceof ItemFood)) return false; + if(slots[1] == null) return true; + if(!stack.isItemEqual(slots[1])) return false; return stack.stackSize + slots[1].stackSize <= stack.getMaxStackSize(); } @@ -209,6 +232,31 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg nbt.setInteger("speed", speed); } + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "microwave"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] test(Context context, Arguments args) { + return new Object[] {"This is a testing device for everything OC."}; + } + + @Callback(direct = true, getter = true) + @Optional.Method(modid = "OpenComputers") + public Object[] variableget(Context context, Arguments args) { + return new Object[] {speed, "test of the `getter` callback function"}; + } + + @Callback(direct = true, setter = true) + @Optional.Method(modid = "OpenComputers") + public Object[] variableset(Context context, Arguments args) { + speed = MathHelper.clamp_int(args.checkInteger(0), 0, 5); + return new Object[] {"test of the `setter` callback function"}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMicrowave(player.inventory, this); @@ -216,7 +264,24 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMicrowave(player.inventory, this); } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setInteger("microSpeed", speed); + return null; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + if(nbt.hasKey("microSpeed")) speed = nbt.getInteger("microSpeed"); + } + + @Override + public String[] infoForDisplay(World world, int x, int y, int z) { + return new String[]{ "copyTool.speed"}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityNukeFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityNukeFurnace.java index 251ce6270..2db74b2fe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityNukeFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityNukeFurnace.java @@ -13,7 +13,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -407,7 +406,7 @@ public class TileEntityNukeFurnace extends TileEntity implements ISidedInventory @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUINukeFurnace(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java new file mode 100644 index 000000000..c7dceeda3 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -0,0 +1,631 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.CompatHandler; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerPWR; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_PWRModerator; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; +import com.hbm.inventory.gui.GUIPWR; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.EnumUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, SimpleComponent, IFluidStandardTransceiver, CompatHandler.OCComponent { + + public FluidTank[] tanks; + public long coreHeat; + public static final long coreHeatCapacityBase = 10_000_000; + public long coreHeatCapacity = 10_000_000; + public long hullHeat; + public static final long hullHeatCapacityBase = 10_000_000; + public double flux; + + public double rodLevel = 100; + public double rodTarget = 100; + + public int typeLoaded; + public int amountLoaded; + public double progress; + public double processTime; + + public int rodCount; + public int connections; + public int connectionsControlled; + public int heatexCount; + public int heatsinkCount; + public int channelCount; + public int sourceCount; + + public int unloadDelay = 0; + public boolean assembled; + + private AudioWrapper audio; + + protected List ports = new ArrayList(); + protected List rods = new ArrayList(); + + public TileEntityPWRController() { + super(3); + + this.tanks = new FluidTank[2]; + this.tanks[0] = new FluidTank(Fluids.COOLANT, 128_000); + this.tanks[1] = new FluidTank(Fluids.COOLANT_HOT, 128_000); + } + + /** The initial creation of the reactor, does all the pre-calculation and whatnot */ + public void setup(HashMap partMap, HashMap rodMap) { + + rodCount = 0; + connections = 0; + connectionsControlled = 0; + heatexCount = 0; + channelCount = 0; + heatsinkCount = 0; + sourceCount = 0; + ports.clear(); + rods.clear(); + + int connectionsDouble = 0; + int connectionsControlledDouble = 0; + + for(Entry entry : partMap.entrySet()) { + Block block = entry.getValue(); + + if(block == ModBlocks.pwr_fuel) rodCount++; + if(block == ModBlocks.pwr_heatex) heatexCount++; + if(block == ModBlocks.pwr_channel) channelCount++; + if(block == ModBlocks.pwr_heatsink) heatsinkCount++; + if(block == ModBlocks.pwr_neutron_source) sourceCount++; + if(block == ModBlocks.pwr_port) ports.add(entry.getKey()); + } + + for(Entry entry : rodMap.entrySet()) { + BlockPos fuelPos = entry.getKey(); + + rods.add(fuelPos); + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + boolean controlled = false; + + for(int i = 1; i < 16; i++) { + BlockPos checkPos = fuelPos.offset(dir, i); + Block atPos = partMap.get(checkPos); + if(atPos == null || atPos == ModBlocks.pwr_casing) break; + if(atPos == ModBlocks.pwr_control) controlled = true; + if(atPos == ModBlocks.pwr_fuel) { + if(controlled) { + connectionsControlledDouble++; + } else { + connectionsDouble++; + } + break; + } + if(atPos == ModBlocks.pwr_reflector) { + if(controlled) { + connectionsControlledDouble += 2; + } else { + connectionsDouble += 2; + } + break; + } + } + } + } + + connections = connectionsDouble / 2; + connectionsControlled = connectionsControlledDouble / 2; + heatsinkCount = Math.min(heatsinkCount, 80); + + //switching this to int64 because after 2127 heatsinks the capacity exceeds the int32 which is well within the 4000+ threshold we are working with. oops! + this.coreHeatCapacity = this.coreHeatCapacityBase + this.heatsinkCount * (this.coreHeatCapacityBase / 20); + } + + @Override + public String getName() { + return "container.pwrController"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.tanks[0].setType(2, slots); + setupTanks(); + + if(unloadDelay > 0) unloadDelay--; + + int chunkX = xCoord >> 4; + int chunkZ = zCoord >> 4; + + //since fluid sources are often not within 1 chunk, we just do 2 chunks distance and call it a day + if(!worldObj.getChunkProvider().chunkExists(chunkX, chunkZ) || + !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ + 2) || + !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ - 2) || + !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ + 2) || + !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ - 2)) { + this.unloadDelay = 60; + } + + if(this.assembled) { + for(BlockPos pos : ports) { + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + BlockPos portPos = pos.offset(dir); + + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); + if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tanks[0].getTankType(), worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); + } + } + + //only perform fission if the area has been loaded for 40 ticks or more + if(this.unloadDelay <= 0) { + + if((typeLoaded == -1 || amountLoaded <= 0) && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { + typeLoaded = slots[0].getItemDamage(); + amountLoaded++; + this.decrStackSize(0, 1); + this.markChanged(); + } else if(slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel && slots[0].getItemDamage() == typeLoaded && amountLoaded < rodCount){ + amountLoaded++; + this.decrStackSize(0, 1); + this.markChanged(); + } + double diff = this.rodLevel - this.rodTarget; + if(diff < 1 && diff > -1) this.rodLevel = this.rodTarget; + if(this.rodTarget > this.rodLevel) this.rodLevel++; + if(this.rodTarget < this.rodLevel) this.rodLevel--; + + int newFlux = this.sourceCount * 20; + + if(typeLoaded != -1 && amountLoaded > 0) { + + EnumPWRFuel fuel = EnumUtil.grabEnumSafely(EnumPWRFuel.class, typeLoaded); + double usedRods = getTotalProcessMultiplier(); + double fluxPerRod = this.flux / this.rodCount; + double outputPerRod = fuel.function.effonix(fluxPerRod); + double totalOutput = outputPerRod * amountLoaded * usedRods; + double totalHeatOutput = totalOutput * fuel.heatEmission; + + this.coreHeat += totalHeatOutput; + newFlux += totalOutput; + + this.processTime = (int) fuel.yield; + this.progress += totalOutput; + + if(this.progress >= this.processTime) { + this.progress -= this.processTime; + + if(slots[1] == null) { + slots[1] = new ItemStack(ModItems.pwr_fuel_hot, 1, typeLoaded); + } else if(slots[1].getItem() == ModItems.pwr_fuel_hot && slots[1].getItemDamage() == typeLoaded && slots[1].stackSize < slots[1].getMaxStackSize()) { + slots[1].stackSize++; + } + + this.amountLoaded--; + this.markChanged(); + } + } + + if(this.amountLoaded <= 0) { + this.typeLoaded = -1; + } + + if(amountLoaded > rodCount) amountLoaded = rodCount; + + /* CORE COOLING */ + double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) getRodCountForCoolant(), 2) / 2D; + long averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; + this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; + this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; + + updateCoolant(); + + this.coreHeat *= 0.999D; + this.hullHeat *= 0.999D; + + this.flux = newFlux; + + if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class) && tanks[0].getFill() > 0) { + this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); + } + + if(this.coreHeat > this.coreHeatCapacity) { + meltDown(); + } + } else { + this.hullHeat = 0; + this.coreHeat = 0; + } + } + + this.networkPackNT(150); + } else { + + if(amountLoaded > 0) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.updateVolume(getVolume(1F)); + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + protected void meltDown() { + + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + + double x = 0; + double y = 0; + double z = 0; + + for(BlockPos pos : this.rods) { + Block b = worldObj.getBlock(pos.getX(), pos.getY(), pos.getZ()); + b.breakBlock(worldObj, pos.getX(), pos.getY(), pos.getZ(), b, worldObj.getBlockMetadata(pos.getX(), pos.getY(), pos.getZ())); + worldObj.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.corium_block, 5, 3); + + x += pos.getX() + 0.5; + y += pos.getY() + 0.5; + z += pos.getZ() + 0.5; + } + + x /= rods.size(); + y /= rods.size(); + z /= rods.size(); + + worldObj.newExplosion(null, x, y, z, 15F, true, true); + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.reactorLoop", xCoord, yCoord, zCoord, 1F, 10F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + protected void updateCoolant() { + + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + if(trait == null || trait.getEfficiency(HeatingType.PWR) <= 0) return; + + double coolingEff = (double) this.channelCount / (double) getRodCountForCoolant() * 0.1D; //10% cooling if numbers match + if(coolingEff > 1D) coolingEff = 1D; + + //no use in trying to convert everythin to long since the internal tanks would never even support operation like that, just cap the heat cycle count to prevent overflows in the math + int heatToUse = (int) Math.min(Math.min(this.hullHeat, (long) (this.hullHeat * coolingEff * trait.getEfficiency(HeatingType.PWR))), 2_000_000_000); + HeatingStep step = trait.getFirstStep(); + int coolCycles = tanks[0].getFill() / step.amountReq; + int hotCycles = (tanks[1].getMaxFill() - tanks[1].getFill()) / step.amountProduced; + int heatCycles = heatToUse / step.heatReq; + int cycles = Math.min(coolCycles, Math.min(hotCycles, heatCycles)); + + this.hullHeat -= step.heatReq * cycles; + this.tanks[0].setFill(tanks[0].getFill() - step.amountReq * cycles); + this.tanks[1].setFill(tanks[1].getFill() + step.amountProduced * cycles); + } + + protected int getRodCountForCoolant() { + return this.rodCount + (int) Math.ceil(this.heatsinkCount / 4D); + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.rodCount); + buf.writeLong(this.coreHeat); + buf.writeLong(this.hullHeat); + buf.writeDouble(this.flux); + buf.writeDouble(this.processTime); + buf.writeDouble(this.progress); + buf.writeInt(this.typeLoaded); + buf.writeInt(this.amountLoaded); + buf.writeDouble(this.rodLevel); + buf.writeDouble(this.rodTarget); + buf.writeLong(this.coreHeatCapacity); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.rodCount = buf.readInt(); + this.coreHeat = buf.readLong(); + this.hullHeat = buf.readLong(); + this.flux = buf.readDouble(); + this.processTime = buf.readDouble(); + this.progress = buf.readDouble(); + this.typeLoaded = buf.readInt(); + this.amountLoaded = buf.readInt(); + this.rodLevel = buf.readDouble(); + this.rodTarget = buf.readDouble(); + this.coreHeatCapacity = buf.readLong(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } + + protected void setupTanks() { + + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + + if(trait == null || trait.getEfficiency(HeatingType.PWR) <= 0) { + tanks[0].setTankType(Fluids.NONE); + tanks[1].setTankType(Fluids.NONE); + return; + } + + tanks[1].setTankType(trait.getFirstStep().typeProduced); + } + + public double getTotalProcessMultiplier() { + double totalConnections = this.connections + this.connectionsControlled * (1D - (this.rodLevel / 100D)); + double connectionsEff = connectinFunc(totalConnections); + return connectionsEff; + } + + public double connectinFunc(double connections) { + return connections / 10D * (1D - getXOverE(connections, 300D)) + connections / 150D * getXOverE(connections, 300D); + } + + public double getXOverE(double x, double d) { + return 1 - Math.pow(Math.E, -x / d); + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot == 0) return stack.getItem() == ModItems.pwr_fuel; + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] {0, 1}; + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return slot == 1; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); + + this.assembled = nbt.getBoolean("assembled"); + this.coreHeat = Math.max(nbt.getInteger("coreHeat"), nbt.getLong("coreHeatL")); + this.hullHeat = Math.max(nbt.getInteger("hullHeat"), nbt.getLong("hullHeatL")); + this.flux = nbt.getDouble("flux"); + this.rodLevel = nbt.getDouble("rodLevel"); + this.rodTarget = nbt.getDouble("rodTarget"); + this.typeLoaded = nbt.getInteger("typeLoaded"); + this.amountLoaded = nbt.getInteger("amountLoaded"); + this.progress = nbt.getDouble("progress"); + this.processTime = nbt.getDouble("processTime"); + this.coreHeatCapacity = Math.max(nbt.getInteger("coreHeatCapacity"), nbt.getLong("coreHeatCapacityL")); + if(this.coreHeatCapacity < this.coreHeatCapacityBase) this.coreHeatCapacity = this.coreHeatCapacityBase; + + this.rodCount = nbt.getInteger("rodCount"); + this.connections = nbt.getInteger("connections"); + this.connectionsControlled = nbt.getInteger("connectionsControlled"); + this.heatexCount = nbt.getInteger("heatexCount"); + this.channelCount = nbt.getInteger("channelCount"); + this.sourceCount = nbt.getInteger("sourceCount"); + this.heatsinkCount = nbt.getInteger("heatsinkCount"); + + ports.clear(); + int portCount = nbt.getInteger("portCount"); + for(int i = 0; i < portCount; i++) { + int[] port = nbt.getIntArray("p" + i); + ports.add(new BlockPos(port[0], port[1], port[2])); + } + + rods.clear(); + int rodCount = nbt.getInteger("rodCount"); + for(int i = 0; i < rodCount; i++) { + if(nbt.hasKey("r" + i)) { + int[] port = nbt.getIntArray("r" + i); + rods.add(new BlockPos(port[0], port[1], port[2])); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + tanks[0].writeToNBT(nbt, "t0"); + tanks[1].writeToNBT(nbt, "t1"); + + nbt.setBoolean("assembled", assembled); + nbt.setLong("coreHeatL", coreHeat); + nbt.setLong("hullHeatL", hullHeat); + nbt.setDouble("flux", flux); + nbt.setDouble("rodLevel", rodLevel); + nbt.setDouble("rodTarget", rodTarget); + nbt.setInteger("typeLoaded", typeLoaded); + nbt.setInteger("amountLoaded", amountLoaded); + nbt.setDouble("progress", progress); + nbt.setDouble("processTime", processTime); + nbt.setLong("coreHeatCapacityL", coreHeatCapacity); + + nbt.setInteger("rodCount", rodCount); + nbt.setInteger("connections", connections); + nbt.setInteger("connectionsControlled", connectionsControlled); + nbt.setInteger("heatexCount", heatexCount); + nbt.setInteger("channelCount", channelCount); + nbt.setInteger("sourceCount", sourceCount); + nbt.setInteger("heatsinkCount", heatsinkCount); + + nbt.setInteger("portCount", ports.size()); + for(int i = 0; i < ports.size(); i++) { + BlockPos pos = ports.get(i); + nbt.setIntArray("p" + i, new int[] { pos.getX(), pos.getY(), pos.getZ() }); + } + + nbt.setInteger("rodCount", rods.size()); + for(int i = 0; i < rods.size(); i++) { + BlockPos pos = rods.get(i); + nbt.setIntArray("r" + i, new int[] { pos.getX(), pos.getY(), pos.getZ() }); + } + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + + if(data.hasKey("control")) { + this.rodTarget = MathHelper.clamp_int(data.getInteger("control"), 0, 100); + this.markChanged(); + } + } + + + // do some opencomputer stuff + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_pwr_control"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getHeat(Context context, Arguments args) { + return new Object[] {coreHeat, hullHeat}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFlux(Context context, Arguments args) { + return new Object[] {flux}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getLevel(Context context, Arguments args) { + return new Object[] {rodTarget, rodLevel}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getCoolantInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFuelInfo(Context context, Arguments args) { + return new Object[] {amountLoaded, progress, processTime}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {coreHeat, hullHeat, flux, rodTarget, rodLevel, amountLoaded, progress, processTime, tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setLevel(Context context, Arguments args) { + rodTarget = MathHelper.clamp_double(args.checkDouble(0), 0, 100); + this.markChanged(); + return new Object[] {true}; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerPWR(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIPWR(player.inventory, this); + } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[1] }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tanks[0] }; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityRadioRec.java b/src/main/java/com/hbm/tileentity/machine/TileEntityRadioRec.java index 7c1f7ea37..bc148cff5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityRadioRec.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityRadioRec.java @@ -1,40 +1,41 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.IControlReceiver; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.network.RTTYSystem; import com.hbm.tileentity.network.RTTYSystem.RTTYChannel; +import com.hbm.util.BufferUtil; import com.hbm.util.NoteBuilder; import com.hbm.util.NoteBuilder.Instrument; import com.hbm.util.NoteBuilder.Note; import com.hbm.util.NoteBuilder.Octave; import com.hbm.util.Tuple.Triplet; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -public class TileEntityRadioRec extends TileEntity implements INBTPacketReceiver, IControlReceiver { - +public class TileEntityRadioRec extends TileEntityLoadedBase implements IControlReceiver { + public String channel = ""; public boolean isOn = false; - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(this.isOn && !this.channel.isEmpty()) { RTTYChannel chan = RTTYSystem.listen(worldObj, this.channel); - + if(chan != null && chan.timeStamp == worldObj.getTotalWorldTime() - 1) { Triplet[] notes = NoteBuilder.translate(chan.signal + ""); - + for(Triplet note : notes) { Instrument i = note.getX(); Note n = note.getY(); Octave o = note.getZ(); - + int noteId = n.ordinal() + o.ordinal() * 12; String s = "harp"; @@ -48,28 +49,31 @@ public class TileEntityRadioRec extends TileEntity implements INBTPacketReceiver } } } - - NBTTagCompound data = new NBTTagCompound(); - data.setString("channel", channel); - data.setBoolean("isOn", isOn); - INBTPacketReceiver.networkPack(this, data, 15); + + networkPackNT(15); } } @Override - public void networkUnpack(NBTTagCompound nbt) { - channel = nbt.getString("channel"); - isOn = nbt.getBoolean("isOn"); + public void serialize(ByteBuf buf) { + BufferUtil.writeString(buf, this.channel); + buf.writeBoolean(this.isOn); } - + + @Override + public void deserialize(ByteBuf buf) { + this.channel = BufferUtil.readString(buf); + this.isOn = buf.readBoolean(); + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + channel = nbt.getString("channel"); isOn = nbt.getBoolean("isOn"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -87,7 +91,7 @@ public class TileEntityRadioRec extends TileEntity implements INBTPacketReceiver public void receiveControl(NBTTagCompound data) { if(data.hasKey("channel")) this.channel = data.getString("channel"); if(data.hasKey("isOn")) this.isOn = data.getBoolean("isOn"); - + this.markDirty(); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java index b2ca2d267..4391993ce 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java @@ -2,15 +2,16 @@ package com.hbm.tileentity.machine; import java.util.List; +import com.hbm.entity.mob.EntityFBI; +import com.hbm.entity.mob.EntityFBIDrone; import com.hbm.inventory.container.ContainerRadiobox; import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.monster.IMob; import net.minecraft.entity.player.EntityPlayer; @@ -20,7 +21,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityRadiobox extends TileEntityLoadedBase implements IEnergyUser, IGUIProvider { +public class TileEntityRadiobox extends TileEntityLoadedBase implements IEnergyReceiverMK2, IGUIProvider { long power; public static long maxPower = 500000; @@ -42,8 +43,13 @@ public class TileEntityRadiobox extends TileEntityLoadedBase implements IEnergyU int range = 15; List entities = worldObj.getEntitiesWithinAABB(IMob.class, AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - range, zCoord - range, xCoord + range, yCoord + range, zCoord + range)); - for(IMob entity : entities) + + for(IMob entity : entities) { + + if(entity instanceof EntityFBI || entity instanceof EntityFBIDrone) continue; + ((Entity)entity).attackEntityFrom(ModDamageSource.enervation, 20.0F); + } } } @@ -97,7 +103,7 @@ public class TileEntityRadiobox extends TileEntityLoadedBase implements IEnergyU @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index fb48aebab..407eeef44 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.ReactorResearch; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerReactorControl; import com.hbm.inventory.gui.GUIReactorControl; @@ -9,10 +10,15 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -23,7 +29,8 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityReactorControl extends TileEntityMachineBase implements IControlReceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityReactorControl extends TileEntityMachineBase implements IControlReceiver, IGUIProvider, SimpleComponent, CompatHandler.OCComponent { public TileEntityReactorControl() { super(1); @@ -101,9 +108,9 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + isLinked = establishLink(); if(isLinked) { @@ -129,31 +136,37 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I reactor.setTarget(level); } } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("heat", heat); - data.setDouble("level", level); - data.setInteger("flux", flux); - data.setBoolean("isLinked", isLinked); - data.setDouble("levelLower", levelLower); - data.setDouble("levelUpper", levelUpper); - data.setDouble("heatLower", heatLower); - data.setDouble("heatUpper", heatUpper); - data.setInteger("function", function.ordinal()); - this.networkPack(data, 150); + + this.networkPackNT(150); } } - - public void networkUnpack(NBTTagCompound data) { - this.heat = data.getInteger("heat"); - this.level = data.getDouble("level"); - this.flux = data.getInteger("flux"); - isLinked = data.getBoolean("isLinked"); - levelLower = data.getDouble("levelLower"); - levelUpper = data.getDouble("levelUpper"); - heatLower = data.getDouble("heatLower"); - heatUpper = data.getDouble("heatUpper"); - function = RodFunction.values()[data.getInteger("function")]; + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(heat); + buf.writeDouble(level); + buf.writeInt(flux); + buf.writeBoolean(isLinked); + buf.writeDouble(levelLower); + buf.writeDouble(levelUpper); + buf.writeDouble(heatLower); + buf.writeDouble(heatUpper); + buf.writeByte(function.ordinal()); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.heat = buf.readInt(); + this.level = buf.readDouble(); + this.flux = buf.readInt(); + isLinked = buf.readBoolean(); + levelLower = buf.readDouble(); + levelUpper = buf.readDouble(); + heatLower = buf.readDouble(); + heatUpper = buf.readDouble(); + function = RodFunction.values()[buf.readByte()]; } private boolean establishLink() { @@ -244,6 +257,47 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I LOG } + // do some opencomputer stuff + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "reactor_control"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] isLinked(Context context, Arguments args) { + return new Object[] {isLinked}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getReactor(Context context, Arguments args) { + return new Object[] {getDisplayData()}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setParams(Context context, Arguments args) { //i hate my life + int newFunction = args.checkInteger(0); + double newMaxHeat = args.checkDouble(1); + double newMinHeat = args.checkDouble(2); + double newMaxLevel = args.checkDouble(3)/100.0; + double newMinLevel = args.checkDouble(4)/100.0; + function = RodFunction.values()[MathHelper.clamp_int(newFunction, 0, 2)]; + heatUpper = MathHelper.clamp_double(newMaxHeat, 0, 9999); + heatLower = MathHelper.clamp_double(newMinHeat, 0, 9999); + levelUpper = MathHelper.clamp_double(newMaxLevel, 0, 1); + levelLower = MathHelper.clamp_double(newMinLevel, 0, 1); + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getParams(Context context, Arguments args) { + return new Object[] {function.ordinal(), heatUpper, heatLower, levelUpper, levelLower}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerReactorControl(player.inventory, this); @@ -251,7 +305,7 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIReactorControl(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 3e17bf1e0..db295cee4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.config.MobConfig; +import com.hbm.handler.CompatHandler; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -14,30 +15,35 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPlateFuel; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; +import com.hbm.util.CompatEnergyControl; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) //TODO: fix reactor control; -public class TileEntityReactorResearch extends TileEntityMachineBase implements IControlReceiver, SimpleComponent, IGUIProvider { +public class TileEntityReactorResearch extends TileEntityMachineBase implements IControlReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { @SideOnly(Side.CLIENT) public double lastLevel; @@ -146,25 +152,31 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements float rad = (float) heat / (float) maxHeat * 50F; ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, rad); } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("heat", heat); - data.setByte("water", water); - data.setDouble("level", level); - data.setDouble("targetLevel", targetLevel); - data.setIntArray("slotFlux", slotFlux); - data.setInteger("totalFlux", totalFlux); - this.networkPack(data, 150); + + this.networkPackNT(150); } } - - public void networkUnpack(NBTTagCompound data) { - this.heat = data.getInteger("heat"); - this.water = data.getByte("water"); - this.level = data.getDouble("level"); - this.targetLevel = data.getDouble("targetLevel"); - this.slotFlux = data.getIntArray("slotFlux"); - this.totalFlux = data.getInteger("totalFlux"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.heat); + buf.writeByte(this.water); + buf.writeDouble(this.level); + buf.writeDouble(this.targetLevel); + BufferUtil.writeIntArray(buf, this.slotFlux); + buf.writeInt(this.totalFlux); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.heat = buf.readInt(); + this.water = buf.readByte(); + this.level = buf.readDouble(); + this.targetLevel = buf.readDouble(); + this.slotFlux = BufferUtil.readIntArray(buf); + this.totalFlux = buf.readInt(); } public byte getWater() { @@ -211,6 +223,9 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements Block b = worldObj.getBlock(x, y, z); + if((b == Blocks.water || b == Blocks.flowing_water) && worldObj.getBlockMetadata(x, y, z) == 0) + return true; + if(b == ModBlocks.block_lead || b == ModBlocks.block_desh || b == ModBlocks.reactor_research || b == ModBlocks.machine_reactor_breeding) return true; @@ -387,50 +402,76 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "research_reactor"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTemp(Context context, Arguments args) { // or getHeat, whatever. return new Object[] {heat}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {level * 100}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFlux(Context context, Arguments args) { return new Object[] {totalFlux}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, level, targetLevel, totalFlux}; } - @Callback + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getTemp", + "getLevel", + "getTargetLevel", + "getFlux", + "getInfo" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch(method) { + case ("getTemp"): + return getTemp(context, args); + case ("getLevel"): + return getLevel(context, args); + case ("getTargetLevel"): + return getTargetLevel(context, args); + case ("getFlux"): + return getFlux(context, args); + case ("getInfo"): + return getInfo(context, args); + } + throw new NoSuchMethodException(); + } + + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; - if (newLevel > 1.0) { - newLevel = 1.0; - } else if (newLevel < 0.0) { - newLevel = 0.0; - } - targetLevel = newLevel; + targetLevel = MathHelper.clamp_double(newLevel, 0, 1.0); return new Object[] {}; } @@ -441,7 +482,14 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIReactorResearch(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_HEAT_C, Math.round(heat * 2.0E-5D * 980.0D + 20.0D)); + data.setInteger(CompatEnergyControl.I_FLUX, totalFlux); + data.setInteger(CompatEnergyControl.I_WATER, water); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index c605f96d6..ff9bfee76 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -10,36 +10,34 @@ import com.hbm.config.MobConfig; import com.hbm.entity.projectile.EntityZirnoxDebris; import com.hbm.entity.projectile.EntityZirnoxDebris.DebrisType; import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.handler.CompatHandler; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerReactorZirnox; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIReactorZirnox; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemZirnoxRod; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -50,7 +48,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider { +public class TileEntityReactorZirnox extends TileEntityMachineBase implements IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public int heat; public static final int maxHeat = 100000; @@ -58,12 +56,10 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public static final int maxPressure = 100000; public boolean isOn = false; - public List list = new ArrayList(); - public byte age; - public FluidTank steam; public FluidTank carbonDioxide; public FluidTank water; + protected int output; private static final int[] slots_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; @@ -84,9 +80,9 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public TileEntityReactorZirnox() { super(28); - steam = new FluidTank(Fluids.SUPERHOTSTEAM, 8000, 0); - carbonDioxide = new FluidTank(Fluids.CARBONDIOXIDE, 16000, 1); - water = new FluidTank(Fluids.WATER, 32000, 2); + steam = new FluidTank(Fluids.SUPERHOTSTEAM, 8000); + carbonDioxide = new FluidTank(Fluids.CARBONDIOXIDE, 16000); + water = new FluidTank(Fluids.WATER, 32000); } @Override @@ -132,12 +128,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } - public void networkUnpack(NBTTagCompound data) { - this.heat = data.getInteger("heat"); - this.pressure = data.getInteger("pressure"); - this.isOn = data.getBoolean("isOn"); - } - public int getGaugeScaled(int i, int type) { switch (type) { case 0: return (steam.getFill() * i) / steam.getMaxFill(); @@ -186,15 +176,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF if(!worldObj.isRemote) { - age++; - - if (age >= 20) { - age = 0; - } - - if(age == 9 || age == 19) { - fillFluidInit(steam.getTankType()); - } + this.output = 0; if(worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); @@ -234,29 +216,43 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } checkIfMeltdown(); - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("heat", heat); - data.setInteger("pressure", pressure); - data.setBoolean("isOn", isOn); - this.networkPack(data, 150); - - steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - carbonDioxide.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - water.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + + this.networkPackNT(150); } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.heat); + buf.writeInt(this.pressure); + buf.writeBoolean(this.isOn); + steam.serialize(buf); + carbonDioxide.serialize(buf); + water.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.heat = buf.readInt(); + this.pressure = buf.readInt(); + this.isOn = buf.readBoolean(); + steam.deserialize(buf); + carbonDioxide.deserialize(buf); + water.deserialize(buf); + } + private void generateSteam() { // function of SHS produced per tick // (heat - 10256)/100000 * steamFill (max efficiency at 14b) * 25 * 5 (should get rid of any rounding errors) if(this.heat > 10256) { - int Water = (int)((((float)heat - 10256F) / (float)maxHeat) * Math.min(((float)carbonDioxide.getFill() / 14000F), 1F) * 25F * 5F); - int Steam = Water * 1; + int cycle = (int)((((float)heat - 10256F) / (float)maxHeat) * Math.min(((float)carbonDioxide.getFill() / 14000F), 1F) * 25F * 5F); + this.output = cycle; - water.setFill(water.getFill() - Water); - steam.setFill(steam.getFill() + Steam); + water.setFill(water.getFill() - cycle); + steam.setFill(steam.getFill() + cycle); if(water.getFill() < 0) water.setFill(0); @@ -388,23 +384,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } } - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public void fillFluidInit(FluidType type) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 1, this.zCoord + rot.offsetZ * 3, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 3, this.zCoord + rot.offsetZ * 3, getTact(), type); - - fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 1, this.zCoord + rot.offsetZ * -3, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 3, this.zCoord + rot.offsetZ * -3, getTact(), type); - } - private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -424,59 +403,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF }; } - public boolean getTact() { - if(age >= 0 && age < 10) { - return true; - } - - return false; - } - - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) return 0; - if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getMaxFill(); - if(type == Fluids.WATER) return water.getMaxFill(); - - return 0; - } - - public void setFluidFill(int i, FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) steam.setFill(i); - if(type == Fluids.CARBONDIOXIDE) carbonDioxide.setFill(i); - if(type == Fluids.WATER) water.setFill(i); - } - - public int getFluidFill(FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) return steam.getFill(); - if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getFill(); - if(type == Fluids.WATER) return water.getFill(); - return 0; - } - - public void setFillForSync(int fill, int index) { - switch (index) { - case 0: steam.setFill(fill); - break; - case 1: carbonDioxide.setFill(fill); - break; - case 2: water.setFill(fill); - break; - default: break; - } - } - - public void setTypeForSync(FluidType type, int index) { - switch (index) { - case 0: steam.setTankType(type); - break; - case 1: carbonDioxide.setTankType(type); - break; - case 2: water.setTankType(type); - break; - default: break; - } - } - public List getTanks() { List list = new ArrayList(); list.add(steam); @@ -486,14 +412,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF return list; } - public List getFluidList(FluidType type) { - return list; - } - - public void clearFluidList(FluidType type) { - list.clear(); - } - public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 5, zCoord + 3); } @@ -541,59 +459,99 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "zirnox_reactor"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTemp(Context context, Arguments args) { return new Object[] {heat}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getPressure(Context context, Arguments args) { return new Object[] {pressure}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {water.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCarbonDioxide(Context context, Arguments args) { return new Object[] {carbonDioxide.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isActive(Context context, Arguments args) { return new Object[] {isOn}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, pressure, water.getFill(), steam.getFill(), carbonDioxide.getFill(), isOn}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setActive(Context context, Arguments args) { isOn = args.checkBoolean(0); return new Object[] {}; } + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getTemp", + "getPressure", + "getWater", + "getSteam", + "getCarbonDioxide", + "isActive", + "getInfo", + "setActive" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch(method) { + case ("getTemp"): + return getTemp(context, args); + case ("getPressure"): + return getPressure(context, args); + case ("getWater"): + return getWater(context, args); + case ("getSteam"): + return getSteam(context, args); + case ("getCarbonDioxide"): + return getCarbonDioxide(context, args); + case ("isActive"): + return isActive(context, args); + case ("getInfo"): + return getInfo(context, args); + case ("setActive"): + return setActive(context, args); + } + throw new NoSuchMethodException(); + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerReactorZirnox(player.inventory, this); @@ -601,7 +559,16 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIReactorZirnox(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_HEAT_C, Math.round(heat * 1.0E-5D * 780.0D + 20.0D)); + data.setDouble(CompatEnergyControl.D_MAXHEAT_C, Math.round(maxHeat * 1.0E-5D * 780.0D + 20.0D)); + data.setLong(CompatEnergyControl.L_PRESSURE_BAR, Math.round(pressure * 1.0E-5D * 30.0D)); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, output); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java index 0e9e87eaf..1b2c61d5b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java @@ -8,7 +8,6 @@ import com.hbm.util.RTGUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Container; @@ -303,7 +302,7 @@ public class TileEntityRtgFurnace extends TileEntity implements ISidedInventory, @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRtgFurnace(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index f89d0660f..923cc5e93 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.machine; import java.util.HashMap; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerSILEX; import com.hbm.inventory.fluid.FluidType; @@ -15,24 +14,26 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.InventoryUtil; import com.hbm.util.WeightedRandomObject; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.WeightedRandom; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntitySILEX extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { public EnumWavelengths mode = EnumWavelengths.NULL; public boolean hasLaser; @@ -51,7 +52,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce public TileEntitySILEX() { super(11); - tank = new FluidTank(Fluids.ACID, 16000, 0); + tank = new FluidTank(Fluids.PEROXIDE, 16000); } @Override @@ -82,37 +83,42 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce if(currentFill <= 0) { current = null; } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("fill", currentFill); - data.setInteger("progress", progress); - data.setString("mode", mode.toString()); - - if(this.current != null) { - data.setInteger("item", Item.getIdFromItem(this.current.item)); - data.setInteger("meta", this.current.meta); - } - - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - this.networkPack(data, 50); + + this.networkPackNT(50); this.mode = EnumWavelengths.NULL; } } - - public void networkUnpack(NBTTagCompound nbt) { - - this.currentFill = nbt.getInteger("fill"); - this.progress = nbt.getInteger("progress"); - this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); - - if(this.currentFill > 0) { - this.current = new ComparableStack(Item.getItemById(nbt.getInteger("item")), 1, nbt.getInteger("meta")); - - } else { - this.current = null; + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(currentFill); + buf.writeInt(progress); + BufferUtil.writeString(buf, mode.toString()); + + tank.serialize(buf); + + if(this.current != null) { + buf.writeInt(Item.getIdFromItem(this.current.item)); + buf.writeInt(this.current.meta); } } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + currentFill = buf.readInt(); + progress = buf.readInt(); + mode = EnumWavelengths.valueOf(BufferUtil.readString(buf)); + + tank.deserialize(buf); + + if(currentFill > 0) { + current = new ComparableStack(Item.getItemById(buf.readInt()), 1, buf.readInt()); + } else + current = null; + } public void handleButtonPacket(int value, int meta) { @@ -158,10 +164,26 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce if(current != null && current.equals(conv)) { - int toFill = Math.min(10, Math.min(maxFill - currentFill, tank.getFill())); + int toFill = Math.min(50, Math.min(maxFill - currentFill, tank.getFill())); currentFill += toFill; tank.setFill(tank.getFill() - toFill); } + } else { + ComparableStack direct = new ComparableStack(ModItems.fluid_icon, 1, tank.getTankType().getID()); + + if(SILEXRecipes.getOutput(direct.toStack()) != null) { + + if(currentFill == 0) { + current = (ComparableStack) direct.copy(); + } + + if(current != null && current.equals(direct)) { + + int toFill = Math.min(50, Math.min(maxFill - currentFill, tank.getFill())); + currentFill += toFill; + tank.setFill(tank.getFill() - toFill); + } + } } loadDelay++; @@ -169,7 +191,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce if(loadDelay > 20) loadDelay = 0; - if(loadDelay == 0 && slots[0] != null && tank.getTankType() == Fluids.ACID && (this.current == null || this.current.equals(new ComparableStack(slots[0]).makeSingular()))) { + if(loadDelay == 0 && slots[0] != null && tank.getTankType() == Fluids.PEROXIDE && (this.current == null || this.current.equals(new ComparableStack(slots[0]).makeSingular()))) { SILEXRecipe recipe = SILEXRecipes.getOutput(slots[0]); if(recipe == null) @@ -212,15 +234,33 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce if(progress >= processTime) { currentFill -= recipe.fluidConsumed; + + int totalWeight = 0; + for(WeightedRandomObject weighted : recipe.outputs) totalWeight += weighted.itemWeight; + this.recipeIndex %= Math.max(totalWeight, 1); + + int weight = 0; + + for(WeightedRandomObject weighted : recipe.outputs) { + weight += weighted.itemWeight; + + if(this.recipeIndex < weight) { + slots[4] = weighted.asStack().copy(); + break; + } + } - ItemStack out = ((WeightedRandomObject) WeightedRandom.getRandomItem(worldObj.rand, recipe.outputs)).asStack(); - slots[4] = out.copy(); progress = 0; this.markDirty(); + + this.recipeIndex += PRIME; } return true; } + + public static final int PRIME = 137; + public int recipeIndex = 0; private void dequeue() { @@ -270,6 +310,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce super.readFromNBT(nbt); this.tank.readFromNBT(nbt, "tank"); this.currentFill = nbt.getInteger("fill"); + this.recipeIndex = nbt.getInteger("recipeIndex"); this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); if(this.currentFill > 0) { @@ -282,6 +323,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce super.writeToNBT(nbt); this.tank.writeToNBT(nbt, "tank"); nbt.setInteger("fill", this.currentFill); + nbt.setInteger("recipeIndex", this.recipeIndex); nbt.setString("mode", mode.toString()); if(this.current != null) { @@ -301,41 +343,6 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce return 65536.0D; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == tank.getTankType()) - return tank.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == tank.getTankType()) - return tank.getMaxFill(); - - return 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; @@ -353,7 +360,16 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUISILEX(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + if(current == null) + data.setString("tank2", "N/A"); + else + data.setString("tank2", String.format("%s: %s mB", current.toStack().getDisplayName(), currentFill)); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java index f0b6a5500..a6f591167 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java @@ -8,17 +8,18 @@ import com.hbm.entity.projectile.EntitySawblade; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.TileEntityMachineAutocrafter.InventoryCraftingAuto; +import com.hbm.util.BufferUtil; import com.hbm.util.ItemStackUtil; import api.hbm.tile.IHeatSource; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Blocks; @@ -27,14 +28,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; public class TileEntitySawmill extends TileEntityMachineBase { - + public int heat; public static final double diffusion = 0.1D; private int warnCooldown = 0; @@ -42,7 +42,7 @@ public class TileEntitySawmill extends TileEntityMachineBase { public boolean hasBlade = true; public int progress = 0; public static final int processingTime = 600; - + public float spin; public float lastSpin; @@ -55,41 +55,41 @@ public class TileEntitySawmill extends TileEntityMachineBase { @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(hasBlade) { tryPullHeat(); - + if(warnCooldown > 0) warnCooldown--; - + if(heat >= 100) { - + ItemStack result = this.getOutput(slots[0]); - + if(result != null) { progress += heat / 10; - + if(progress >= this.processingTime) { progress = 0; slots[0] = null; slots[1] = result; - + if(result.getItem() != ModItems.powder_sawdust) { float chance = result.getItem() == Items.stick ? 0.1F : 0.5F; if(worldObj.rand.nextFloat() < chance) { slots[2] = new ItemStack(ModItems.powder_sawdust); } } - + this.markDirty(); } - + } else { this.progress = 0; } - + AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(-1D, 0.375D, -1D, -0.875, 2.375D, 1D); aabb = BlockDummyable.getAABBRotationOffset(aabb, xCoord + 0.5, yCoord, zCoord + 0.5, ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getRotation(ForgeDirection.UP)); for(Object o : worldObj.getEntitiesWithinAABB(EntityLivingBase.class, aabb)) { @@ -106,37 +106,37 @@ public class TileEntitySawmill extends TileEntityMachineBase { PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY, e.posZ, 50)); } } - + } else { this.progress = 0; } - + if(heat > 300) { - + this.overspeed++; - + if(overspeed > 60 && warnCooldown == 0) { warnCooldown = 100; worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1, zCoord + 0.5, "hbm:block.warnOverspeed", 2.0F, 1.0F); } - + if(overspeed > 300) { this.hasBlade = false; this.worldObj.newExplosion(null, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 5F, false, false); - + int orientation = this.getBlockMetadata() - BlockDummyable.offset; ForgeDirection dir = ForgeDirection.getOrientation(orientation); EntitySawblade cog = new EntitySawblade(worldObj, xCoord + 0.5 + dir.offsetX, yCoord + 1, zCoord + 0.5 + dir.offsetZ).setOrientation(orientation); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - + cog.motionX = rot.offsetX; cog.motionY = 1 + (heat - 100) * 0.0001D; cog.motionZ = rot.offsetZ; worldObj.spawnEntityInWorld(cog); - + this.markDirty(); } - + } else { this.overspeed = 0; } @@ -144,34 +144,18 @@ public class TileEntitySawmill extends TileEntityMachineBase { this.overspeed = 0; this.warnCooldown = 0; } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("heat", heat); - data.setInteger("progress", progress); - data.setBoolean("hasBlade", hasBlade); - NBTTagList list = new NBTTagList(); - for(int i = 0; i < slots.length; i++) { - if(slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - data.setTag("items", list); - - INBTPacketReceiver.networkPack(this, data, 150); - + networkPackNT(150); + this.heat = 0; - + } else { - + float momentum = heat * 25F / ((float) 300); - + this.lastSpin = this.spin; this.spin += momentum; - + if(this.spin >= 360F) { this.spin -= 360F; this.lastSpin -= 360F; @@ -180,54 +164,58 @@ public class TileEntitySawmill extends TileEntityMachineBase { } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.heat = nbt.getInteger("heat"); - this.progress = nbt.getInteger("progress"); - this.hasBlade = nbt.getBoolean("hasBlade"); - - NBTTagList list = nbt.getTagList("items", 10); + public void serialize(ByteBuf buf) { + buf.writeInt(heat); + buf.writeInt(progress); + buf.writeBoolean(hasBlade); - slots = new ItemStack[3]; - for(int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } + for (ItemStack slot : slots) { + BufferUtil.writeItemStack(buf, slot); } } - + + @Override + public void deserialize(ByteBuf buf) { + this.heat = buf.readInt(); + this.progress = buf.readInt(); + this.hasBlade = buf.readBoolean(); + + for(int i = 0; i < slots.length; i++) { + slots[i] = BufferUtil.readItemStack(buf); + } + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.hasBlade = nbt.getBoolean("hasBlade"); this.progress = nbt.getInteger("progress"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setBoolean("hasBlade", hasBlade); nbt.setInteger("progress", progress); } - + protected void tryPullHeat() { TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); - + if(con instanceof IHeatSource) { IHeatSource source = (IHeatSource) con; int heatSrc = (int) (source.getHeatStored() * diffusion); - + if(heatSrc > 0) { source.useUpHeat(heatSrc); this.heat += heatSrc; return; } } - + this.heat = Math.max(this.heat - Math.max(this.heat / 1000, 1), 0); } - + protected InventoryCraftingAuto craftingInventory = new InventoryCraftingAuto(1, 1); @Override @@ -244,20 +232,20 @@ public class TileEntitySawmill extends TileEntityMachineBase { public int[] getAccessibleSlotsFromSide(int side) { return new int[] {0, 1, 2}; } - + public ItemStack getOutput(ItemStack input) { - + if(input == null) return null; - + craftingInventory.setInventorySlotContents(0, input); - + List names = ItemStackUtil.getOreDictNames(input); - + if(names.contains("stickWood")) { return new ItemStack(ModItems.powder_sawdust); } - + if(names.contains("logWood")) { for(Object o : CraftingManager.getInstance().getRecipeList()) { IRecipe recipe = (IRecipe) o; @@ -271,35 +259,35 @@ public class TileEntitySawmill extends TileEntityMachineBase { } } } - + if(names.contains("plankWood")) { return new ItemStack(Items.stick, 6); } - + if(names.contains("treeSapling")) { return new ItemStack(Items.stick, 1); } - + return null; } public static HashMap getRecipes() { - + HashMap recipes = new HashMap(); recipes.put(new OreDictStack("logWood"), new ItemStack[] { new ItemStack(Blocks.planks, 6), ItemStackUtil.addTooltipToStack(new ItemStack(ModItems.powder_sawdust), EnumChatFormatting.RED + "50%") }); recipes.put(new OreDictStack("plankWood"), new ItemStack[] { new ItemStack(Items.stick, 6), ItemStackUtil.addTooltipToStack(new ItemStack(ModItems.powder_sawdust), EnumChatFormatting.RED + "10%") }); recipes.put(new OreDictStack("stickWood"), new ItemStack[] { new ItemStack(ModItems.powder_sawdust) }); recipes.put(new OreDictStack("treeSapling"), new ItemStack[] { new ItemStack(Items.stick, 1), ItemStackUtil.addTooltipToStack(new ItemStack(ModItems.powder_sawdust), EnumChatFormatting.RED + "10%") }); - + return recipes; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -310,10 +298,10 @@ public class TileEntitySawmill extends TileEntityMachineBase { zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index ab91d87c3..107fe54ab 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -1,55 +1,48 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; -public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver { +public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver, IFluidCopiable { private FluidTank water; private FluidTank steam; - public List list = new ArrayList(); public int heat; public HashSet primary = new HashSet(); public HashSet secondary = new HashSet(); - + public TileEntitySolarBoiler() { - water = new FluidTank(Fluids.WATER, 16000, 0); - steam = new FluidTank(Fluids.STEAM, 1600000, 1); + water = new FluidTank(Fluids.WATER, 100); + steam = new FluidTank(Fluids.STEAM, 10_000); } @Override public void updateEntity() { - + if(!worldObj.isRemote) { - - //if(worldObj.getTotalWorldTime() % 5 == 0) { - fillFluidInit(Fluids.STEAM); - //} this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); - + int process = heat / 50; process = Math.min(process, water.getFill()); process = Math.min(process, (steam.getMaxFill() - steam.getFill()) / 100); - + if(process < 0) process = 0; @@ -58,10 +51,12 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui this.sendFluid(steam, worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); this.sendFluid(steam, worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); - + heat = 0; + + networkPackNT(15); } else { - + //a delayed queue of mirror positions because we can't expect the boiler to always tick first secondary.clear(); secondary.addAll(primary); @@ -69,76 +64,6 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui } } - @Override - public void setFillForSync(int fill, int index) { - if(index == 0) - water.setFill(fill); - if(index == 1) - steam.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.WATER) - water.setFill(fill); - if(type == Fluids.STEAM) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index == 0) - water.setTankType(type); - if(index == 1) - steam.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.WATER) - return water.getFill(); - if(type == Fluids.STEAM) - return steam.getFill(); - - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord, this.yCoord + 3, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.WATER) - return water.getMaxFill(); - if(type == Fluids.STEAM) - return steam.getMaxFill(); - - return 0; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -154,12 +79,12 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui this.water.writeToNBT(nbt, "water"); this.steam.writeToNBT(nbt, "steam"); } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -170,10 +95,10 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -194,4 +119,21 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui public FluidTank[] getAllTanks() { return new FluidTank[] { water, steam }; } + + @Override + public void serialize(ByteBuf buf) { + water.serialize(buf); + steam.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + water.deserialize(buf); + steam.deserialize(buf); + } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarMirror.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarMirror.java index c64a83cec..f921d04ad 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarMirror.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarMirror.java @@ -4,6 +4,7 @@ import com.hbm.tileentity.TileEntityTickingBase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -28,7 +29,7 @@ public class TileEntitySolarMirror extends TileEntityTickingBase { if(!worldObj.isRemote) { if(worldObj.getTotalWorldTime() % 20 == 0) - sendUpdate(); + this.networkPackNT(200); if(tY < yCoord) { isOn = false; @@ -64,22 +65,18 @@ public class TileEntitySolarMirror extends TileEntityTickingBase { } } - public void sendUpdate() { - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("posX", tX); - data.setInteger("posY", tY); - data.setInteger("posZ", tZ); - data.setBoolean("isOn", isOn); - this.networkPack(data, 200); + @Override public void serialize(ByteBuf buf) { + buf.writeInt(this.tX); + buf.writeInt(this.tY); + buf.writeInt(this.tZ); + buf.writeBoolean(this.isOn); } - @Override - public void networkUnpack(NBTTagCompound nbt) { - tX = nbt.getInteger("posX"); - tY = nbt.getInteger("posY"); - tZ = nbt.getInteger("posZ"); - isOn = nbt.getBoolean("isOn"); + @Override public void deserialize(ByteBuf buf) { + this.tX = buf.readInt(); + this.tY = buf.readInt(); + this.tZ = buf.readInt(); + this.isOn = buf.readBoolean(); } public void setTarget(int x, int y, int z) { @@ -87,7 +84,7 @@ public class TileEntitySolarMirror extends TileEntityTickingBase { tY = y; tZ = z; this.markDirty(); - this.sendUpdate(); + this.networkPackNT(200); } public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index 6f85b34fd..10fb7aa82 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -5,8 +5,6 @@ import java.util.List; import com.hbm.entity.missile.EntitySoyuz; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerSoyuzLauncher; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -16,16 +14,17 @@ import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.item.IDesignatorItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -38,7 +37,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IFluidCopiable { public long power; public static final long maxPower = 1000000; @@ -57,8 +56,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS public TileEntitySoyuzLauncher() { super(27); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.KEROSENE, 128000, 0); - tanks[1] = new FluidTank(Fluids.OXYGEN, 128000, 1); + tanks[0] = new FluidTank(Fluids.KEROSENE, 128_000); + tanks[1] = new FluidTank(Fluids.OXYGEN, 128_000); } @Override @@ -81,9 +80,6 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS tanks[0].loadTank(4, 5, slots); tanks[1].loadTank(6, 7, slots); - - for (int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); power = Library.chargeTEFromItems(slots, 8, power, maxPower); @@ -99,13 +95,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } else { liftOff(); } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setByte("mode", mode); - data.setBoolean("starting", starting); - data.setByte("type", this.getType()); - networkPack(data, 250); + + networkPackNT(250); } if(worldObj.isRemote) { @@ -173,32 +164,48 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 2.0F, 100F, 1.0F); } - - public void onChunkUnload() { - - if(audio != null) { + + @Override + public void onChunkUnload() { + + if(audio != null) { audio.stopSound(); audio = null; - } - } - - public void invalidate() { - - super.invalidate(); - - if(audio != null) { - audio.stopSound(); - audio = null; - } - } - - public void networkUnpack(NBTTagCompound data) { - power = data.getLong("power"); - mode = data.getByte("mode"); - starting = data.getBoolean("starting"); - rocketType = data.getByte("type"); + } } - + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeByte(mode); + buf.writeBoolean(starting); + buf.writeByte(this.getType()); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + power = buf.readLong(); + mode = buf.readByte(); + starting = buf.readBoolean(); + rocketType = buf.readByte(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } + public void startCountdown() { if(canLaunch()) @@ -267,9 +274,9 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS public int getFuelRequired() { if(mode == 1) - return 20000 + getDist(); + return Math.min(5000 + getDist(), 128_000); - return 128000; + return 128_000; } public int getDist() { @@ -398,46 +405,6 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS nbt.setTag("items", list); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; @@ -487,7 +454,12 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUISoyuzLauncher(player.inventory, this); } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java index 2d70dc4c6..d0297d2f8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java @@ -1,58 +1,54 @@ package com.hbm.tileentity.machine; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; -import com.hbm.lib.Library; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine { +public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IBufPacketReceiver, IConfigurableMachine, IFluidCopiable { public long powerBuffer; public float rotor; public float lastRotor; private float syncRotor; - public List list2 = new ArrayList(); public FluidTank[] tanks; private int turnProgress; private float acceleration = 0F; - + /* CONFIGURABLE */ private static int steamCap = 2_000; private static int ldsCap = 20; private static double efficiency = 0.85D; - + public TileEntitySteamEngine() { - + tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, steamCap, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, ldsCap, 1); + tanks[0] = new FluidTank(Fluids.STEAM, steamCap); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, ldsCap); } @Override @@ -73,61 +69,64 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui writer.name("I:ldsCap").value(ldsCap); writer.name("D:efficiency").value(efficiency); } - + + ByteBuf buf; + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + + if(this.buf != null) + this.buf.release(); + this.buf = Unpooled.buffer(); + this.powerBuffer = 0; tanks[0].setTankType(Fluids.STEAM); tanks[1].setTankType(Fluids.SPENTSTEAM); - - NBTTagCompound data = new NBTTagCompound(); - tanks[0].writeToNBT(data, "s"); + + tanks[0].serialize(buf); FT_Coolable trait = tanks[0].getTankType().getTrait(FT_Coolable.class); double eff = trait.getEfficiency(CoolingType.TURBINE) * efficiency; - + int inputOps = tanks[0].getFill() / trait.amountReq; int outputOps = (tanks[1].getMaxFill() - tanks[1].getFill()) / trait.amountProduced; int ops = Math.min(inputOps, outputOps); tanks[0].setFill(tanks[0].getFill() - ops * trait.amountReq); tanks[1].setFill(tanks[1].getFill() + ops * trait.amountProduced); this.powerBuffer += (ops * trait.heatEnergy * eff); - + if(ops > 0) { this.acceleration += 0.1F; } else { this.acceleration -= 0.1F; } - + this.acceleration = MathHelper.clamp_float(this.acceleration, 0F, 40F); this.rotor += this.acceleration; - + if(this.rotor >= 360D) { this.rotor -= 360D; - - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", 1.0F, 0.5F + (acceleration / 80F)); + + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", getVolume(1.0F), 0.5F + (acceleration / 80F)); } - - data.setLong("power", this.powerBuffer); - data.setFloat("rotor", this.rotor); - tanks[1].writeToNBT(data, "w"); + + buf.writeLong(this.powerBuffer); + buf.writeFloat(this.rotor); + tanks[1].serialize(buf); for(DirPos pos : getConPos()) { - if(this.powerBuffer > 0) - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(this.powerBuffer > 0) this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - if(tanks[1].getFill() > 0) fillFluidInit(tanks[1].getTankType()); - - INBTPacketReceiver.networkPack(this, data, 150); + + networkPackNT(150); } else { this.lastRotor = this.rotor; - + if(this.turnProgress > 0) { double d = MathHelper.wrapAngleTo180_double(this.syncRotor - (double) this.rotor); this.rotor = (float) ((double) this.rotor + d / (double) this.turnProgress); @@ -137,18 +136,18 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui } } } - + protected DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + return new DirPos[] { new DirPos(xCoord + rot.offsetX * 2, yCoord + 1, zCoord + rot.offsetZ * 2, rot), new DirPos(xCoord + rot.offsetX * 2 + dir.offsetX, yCoord + 1, zCoord + rot.offsetZ * 2 + dir.offsetZ, rot), new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord + 1, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot) }; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -158,7 +157,7 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui this.tanks[0].readFromNBT(nbt, "s"); this.tanks[1].readFromNBT(nbt, "w"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -169,74 +168,11 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui tanks[1].writeToNBT(nbt, "w"); } - @Override - public void fillFluidInit(FluidType type) { - for(DirPos pos : getConPos()) fillFluid(pos.getX(), pos.getY(), pos.getZ(), getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -279,11 +215,21 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.powerBuffer = nbt.getLong("power"); - this.syncRotor = nbt.getFloat("rotor"); + public void serialize(ByteBuf buf) { + buf.writeBytes(this.buf); + } + + @Override + public void deserialize(ByteBuf buf) { + this.tanks[0].deserialize(buf); + this.powerBuffer = buf.readLong(); + this.syncRotor = buf.readFloat(); + this.tanks[1].deserialize(buf); this.turnProgress = 3; //use 3-ply for extra smoothness - this.tanks[0].readFromNBT(nbt, "s"); - this.tanks[1].readFromNBT(nbt, "w"); + } + + @Override + public FluidTank getTankToPaste() { + return null; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java index 19ecdf379..44a71b5d5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java @@ -8,31 +8,32 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityCog; import com.hbm.lib.Library; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityStirling extends TileEntityLoadedBase implements INBTPacketReceiver, IEnergyGenerator, IConfigurableMachine { - +public class TileEntityStirling extends TileEntityLoadedBase implements IBufPacketReceiver, IEnergyProviderMK2, IConfigurableMachine { + public long powerBuffer; public int heat; private int warnCooldown = 0; private int overspeed = 0; public boolean hasCog = true; - + public float spin; public float lastSpin; - + /* CONFIGURABLE CONSTANTS */ public static double diffusion = 0.1D; public static double efficiency = 0.5D; @@ -42,43 +43,44 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(hasCog) { + this.powerBuffer = 0; tryPullHeat(); - - this.powerBuffer = (long) (this.heat * this.efficiency); - + + this.powerBuffer = (long) (this.heat * (this.isCreative() ? 1 : this.efficiency)); + if(warnCooldown > 0) warnCooldown--; - - if(heat > maxHeat()) { - + + if(heat > maxHeat() && !isCreative()) { + this.overspeed++; - + if(overspeed > 60 && warnCooldown == 0) { warnCooldown = 100; worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1, zCoord + 0.5, "hbm:block.warnOverspeed", 2.0F, 1.0F); } - + if(overspeed > overspeedLimit) { this.hasCog = false; this.worldObj.newExplosion(null, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 5F, false, false); - + int orientation = this.getBlockMetadata() - BlockDummyable.offset; ForgeDirection dir = ForgeDirection.getOrientation(orientation); EntityCog cog = new EntityCog(worldObj, xCoord + 0.5 + dir.offsetX, yCoord + 1, zCoord + 0.5 + dir.offsetZ).setOrientation(orientation).setMeta(this.getGeatMeta()); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - + cog.motionX = rot.offsetX; cog.motionY = 1 + (heat - maxHeat()) * 0.0001D; cog.motionZ = rot.offsetZ; worldObj.spawnEntityInWorld(cog); - + this.markDirty(); } - + } else { this.overspeed = 0; } @@ -86,47 +88,48 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack this.overspeed = 0; this.warnCooldown = 0; } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", powerBuffer); - data.setInteger("heat", heat); - data.setBoolean("hasCog", hasCog); - INBTPacketReceiver.networkPack(this, data, 150); - + + networkPackNT(150); + if(hasCog) { for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - this.powerBuffer = 0; } else { - + if(this.powerBuffer > 0) this.powerBuffer--; } - + this.heat = 0; } else { - + float momentum = powerBuffer * 50F / ((float) maxHeat()); - + + if(this.isCreative()) momentum = Math.min(momentum, 45F); + this.lastSpin = this.spin; this.spin += momentum; - + if(this.spin >= 360F) { this.spin -= 360F; this.lastSpin -= 360F; } } } - + public int getGeatMeta() { - return this.getBlockType() == ModBlocks.machine_stirling ? 0 : 1; + return this.getBlockType() == ModBlocks.machine_stirling ? 0 : this.getBlockType() == ModBlocks.machine_stirling_creative ? 2 : 1; } - + public int maxHeat() { return this.getBlockType() == ModBlocks.machine_stirling ? 300 : 1500; } - + + public boolean isCreative() { + return this.getBlockType() == ModBlocks.machine_stirling_creative; + } + protected DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), @@ -137,29 +140,36 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.powerBuffer = nbt.getLong("power"); - this.heat = nbt.getInteger("heat"); - this.hasCog = nbt.getBoolean("hasCog"); + public void serialize(ByteBuf buf) { + buf.writeLong(this.powerBuffer); + buf.writeInt(this.heat); + buf.writeBoolean(this.hasCog); } - + + @Override + public void deserialize(ByteBuf buf) { + this.powerBuffer = buf.readLong(); + this.heat = buf.readInt(); + this.hasCog = buf.readBoolean(); + } + protected void tryPullHeat() { TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); - + if(con instanceof IHeatSource) { IHeatSource source = (IHeatSource) con; int heatSrc = (int) (source.getHeatStored() * diffusion); - + if(heatSrc > 0) { source.useUpHeat(heatSrc); this.heat += heatSrc; return; } } - + this.heat = Math.max(this.heat - Math.max(this.heat / 1000, 1), 0); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -168,7 +178,7 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack this.hasCog = nbt.getBoolean("hasCog"); this.overspeed = nbt.getInteger("overspeed"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -192,12 +202,12 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack public long getMaxPower() { return powerBuffer; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -208,10 +218,10 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 9b9a4432c..407c79868 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -1,22 +1,19 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; import com.hbm.config.VersatileConfig; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerStorageDrum; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIStorageDrum; import com.hbm.items.ModItems; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; -import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ContaminationUtil; @@ -26,7 +23,7 @@ import com.hbm.util.ContaminationUtil.HazardType; import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -37,19 +34,18 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidSource, IFluidStandardSender, IGUIProvider { +public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidStandardSender, IBufPacketReceiver, IGUIProvider, IFluidCopiable { + public FluidTank[] tanks; private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; - public List list = new ArrayList(); - public List list2 = new ArrayList(); public int age = 0; public TileEntityStorageDrum() { super(24); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.WASTEFLUID, 16000, 0); - tanks[1] = new FluidTank(Fluids.WASTEGAS, 16000, 1); + tanks[0] = new FluidTank(Fluids.WASTEFLUID, 16000); + tanks[1] = new FluidTank(Fluids.WASTEGAS, 16000); } @Override @@ -59,153 +55,162 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + float rad = 0; - + int liquid = 0; int gas = 0; - + for(int i = 0; i < 24; i++) { - + if(slots[i] != null) { - + Item item = slots[i].getItem(); - + if(worldObj.getTotalWorldTime() % 20 == 0) { rad += HazardSystem.getHazardLevelFromStack(slots[i], HazardRegistry.RADIATION); } - + int meta = slots[i].getItemDamage(); - + if(item == ModItems.nuclear_waste_long && worldObj.rand.nextInt(VersatileConfig.getLongDecayChance()) == 0) { ItemWasteLong.WasteClass wasteClass = ItemWasteLong.WasteClass.values()[ItemWasteLong.rectify(meta)]; liquid += wasteClass.liquid; gas += wasteClass.gas; slots[i] = new ItemStack(ModItems.nuclear_waste_long_depleted, 1, meta); } - + if(item == ModItems.nuclear_waste_long_tiny && worldObj.rand.nextInt(VersatileConfig.getLongDecayChance() / 10) == 0) { ItemWasteLong.WasteClass wasteClass = ItemWasteLong.WasteClass.values()[ItemWasteLong.rectify(meta)]; liquid += wasteClass.liquid / 10; gas += wasteClass.gas / 10; slots[i] = new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, meta); } - + if(item == ModItems.nuclear_waste_short && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance()) == 0) { ItemWasteShort.WasteClass wasteClass = ItemWasteShort.WasteClass.values()[ItemWasteLong.rectify(meta)]; liquid += wasteClass.liquid; gas += wasteClass.gas; slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted, 1, meta); } - + if(item == ModItems.nuclear_waste_short_tiny && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { ItemWasteShort.WasteClass wasteClass = ItemWasteShort.WasteClass.values()[ItemWasteLong.rectify(meta)]; liquid += wasteClass.liquid / 10; gas += wasteClass.gas / 10; slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, meta); } - - if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { + + if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 20) == 0) { slots[i] = new ItemStack(ModItems.ingot_mercury, 1, meta); } - if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 20) == 0) { + if(item == ModItems.nugget_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { slots[i] = new ItemStack(ModItems.nugget_mercury, 1, meta); } - - if(item == ModItems.ingot_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { + + if(item == ModItems.ingot_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { slots[i] = new ItemStack(ModItems.ingot_bismuth, 1, meta); } - if(item == ModItems.nugget_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { + if(item == ModItems.nugget_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { slots[i] = new ItemStack(ModItems.nugget_bismuth, 1, meta); } + + if(item == ModItems.powder_sr90 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { + slots[i] = new ItemStack(ModItems.powder_zirconium, 1, meta); + } + if(item == ModItems.nugget_sr90 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { + slots[i] = new ItemStack(ModItems.nugget_zirconium, 1, meta); + } } } this.tanks[0].setFill(this.tanks[0].getFill() + liquid); this.tanks[1].setFill(this.tanks[1].getFill() + gas); - + for(int i = 0; i < 2; i++) { - + int overflow = Math.max(this.tanks[i].getFill() - this.tanks[i].getMaxFill(), 0); - + if(overflow > 0) { this.tanks[i].setFill(this.tanks[i].getFill() - overflow); this.tanks[i].getTankType().onFluidRelease(this, this.tanks[i], overflow); } } - + age++; - + if(age >= 20) age -= 20; - - if(age == 9 || age == 19) { - fillFluidInit(tanks[0].getTankType()); - } - if(age == 8 || age == 18) { - fillFluidInit(tanks[1].getTankType()); - } this.sendFluidToAll(tanks[0], this); this.sendFluidToAll(tanks[1], this); - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - + this.networkPackNT(25); + if(rad > 0) { radiate(worldObj, xCoord, yCoord, zCoord, rad); } } } - + + @Override public void serialize(ByteBuf buf) { + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } + private void radiate(World world, int x, int y, int z, float rads) { - + double range = 32D; - + List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x + 0.5, y + 0.5, z + 0.5, x + 0.5, y + 0.5, z + 0.5).expand(range, range, range)); - + for(EntityLivingBase e : entities) { - + Vec3 vec = Vec3.createVectorHelper(e.posX - (x + 0.5), (e.posY + e.getEyeHeight()) - (y + 0.5), e.posZ - (z + 0.5)); double len = vec.lengthVector(); vec = vec.normalize(); - + float res = 0; - + for(int i = 1; i < len; i++) { int ix = (int)Math.floor(x + 0.5 + vec.xCoord * i); int iy = (int)Math.floor(y + 0.5 + vec.yCoord * i); int iz = (int)Math.floor(z + 0.5 + vec.zCoord * i); - + res += world.getBlock(ix, iy, iz).getExplosionResistance(null); } - + if(res < 1) res = 1; - + float eRads = rads; eRads /= (float)res; eRads /= (float)(len * len); - + ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); } } @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - + Item item = itemStack.getItem(); - - if(item == ModItems.nuclear_waste_long || - item == ModItems.nuclear_waste_long_tiny || - item == ModItems.nuclear_waste_short || - item == ModItems.nuclear_waste_short_tiny || + + if(item == ModItems.nuclear_waste_long || + item == ModItems.nuclear_waste_long_tiny || + item == ModItems.nuclear_waste_short || + item == ModItems.nuclear_waste_short_tiny || item == ModItems.ingot_au198) return true; - + return false; } @@ -218,14 +223,14 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu public boolean canExtractItem(int i, ItemStack itemStack, int j) { Item item = itemStack.getItem(); - - if(item == ModItems.nuclear_waste_long_depleted || - item == ModItems.nuclear_waste_long_depleted_tiny || - item == ModItems.nuclear_waste_short_depleted || - item == ModItems.nuclear_waste_short_depleted_tiny || + + if(item == ModItems.nuclear_waste_long_depleted || + item == ModItems.nuclear_waste_long_depleted_tiny || + item == ModItems.nuclear_waste_short_depleted || + item == ModItems.nuclear_waste_short_depleted_tiny || item == ModItems.ingot_mercury) return true; - + return false; } @@ -233,87 +238,19 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu public int getInventoryStackLimit() { return 1; } - + @Override public int[] getAccessibleSlotsFromSide(int side) { return slots_arr; } - @Override - public boolean getTact() { - return age < 10; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[0].getTankType()) - return list; - if(type == tanks[1].getTankType()) - return list2; - - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[0].getTankType()) - this.list.clear(); - if(type == tanks[1].getTankType()) - this.list2.clear(); - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.tanks[0].readFromNBT(nbt, "liquid"); this.tanks[1].readFromNBT(nbt, "gas"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -338,7 +275,12 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIStorageDrum(player.inventory, this); } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java deleted file mode 100644 index e6551423b..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEStructurePacket; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; - -public class TileEntityStructureMarker extends TileEntity { - - //0: Nuclear Reactor - //1: Watz Power Plant - //2: Fusionary Watz Plant - public int type = 0; - - @Override - public void updateEntity() { - - if(this.type > 2) - type -= 3; - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new TEStructurePacket(xCoord, yCoord, zCoord, type), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = nbt.getInteger("type"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("type", type); - } - -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java index f3c930d3e..30d3d8df5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java @@ -12,15 +12,15 @@ import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ArmorUtil; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; @@ -28,7 +28,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityTesla extends TileEntityMachineBase implements IEnergyUser { +public class TileEntityTesla extends TileEntityMachineBase implements IEnergyReceiverMK2 { public long power; public static final long maxPower = 100000; @@ -69,17 +69,7 @@ public class TileEntityTesla extends TileEntityMachineBase implements IEnergyUse this.targets = zap(worldObj, dx, dy, dz, range, null); } - NBTTagCompound data = new NBTTagCompound(); - data.setShort("length", (short)targets.size()); - int i = 0; - for(double[] d : this.targets) { - data.setDouble("x" + i, d[0]); - data.setDouble("y" + i, d[1]); - data.setDouble("z" + i, d[2]); - i++; - } - - this.networkPack(data, 100); + this.networkPackNT(100); } } @@ -145,18 +135,30 @@ public class TileEntityTesla extends TileEntityMachineBase implements IEnergyUse return ret; } - - public void networkUnpack(NBTTagCompound data) { - - int s = data.getShort("length"); - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeShort((short)targets.size()); + for(double[] d : this.targets) { + buf.writeDouble(d[0]); + buf.writeDouble(d[1]); + buf.writeDouble(d[2]); + } + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + int s = buf.readShort(); + this.targets.clear(); - + for(int i = 0; i < s; i++) this.targets.add(new double[] { - data.getDouble("x" + i), - data.getDouble("y" + i), - data.getDouble("z" + i) + buf.readDouble(), // X + buf.readDouble(), // Y + buf.readDouble() // Z }); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java index 03b16cf88..4e092d01c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java @@ -1,9 +1,15 @@ package com.hbm.tileentity.machine; +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IConfigurableMachine; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -14,19 +20,40 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityTowerLarge extends TileEntityCondenser { + //Configurable values + public static int inputTankSizeTL = 10_000; + public static int outputTankSizeTL = 10_000; + public TileEntityTowerLarge() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 10000, 0); - tanks[1] = new FluidTank(Fluids.WATER, 10000, 1); + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, inputTankSizeTL); + tanks[1] = new FluidTank(Fluids.WATER, outputTankSizeTL); } + @Override + public String getConfigName() { + return "condenserTowerLarge"; + } + + @Override + public void readIfPresent(JsonObject obj) { + inputTankSizeTL = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSizeTL); + outputTankSizeTL = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSizeTL); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:inputTankSize").value(inputTankSizeTL); + writer.name("I:outputTankSize").value(outputTankSizeTL); + } + @Override public void updateEntity() { super.updateEntity(); if(worldObj.isRemote) { - if(this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 4 == 0) { + if(GeneralConfig.enableSteamParticles && (this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 4 == 0)) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "tower"); data.setFloat("lift", 0.5F); @@ -43,18 +70,6 @@ public class TileEntityTowerLarge extends TileEntityCondenser { } } - @Override - public void fillFluidInit(FluidType type) { - - for(int i = 2; i < 6; i++) { - ForgeDirection dir = ForgeDirection.getOrientation(i); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - fillFluid(xCoord + dir.offsetX * 5, yCoord, zCoord + dir.offsetZ * 5, getTact(), type); - fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * 3, getTact(), type); - fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * -3, getTact(), type); - } - } - @Override public void subscribeToAllAround(FluidType type, TileEntity te) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java index 7dbb010bb..6414c1e4e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java @@ -1,33 +1,59 @@ package com.hbm.tileentity.machine; +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IConfigurableMachine; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; public class TileEntityTowerSmall extends TileEntityCondenser { + //Configurable values + public static int inputTankSizeTS = 1_000; + public static int outputTankSizeTS = 1_000; + public TileEntityTowerSmall() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 1000, 0); - tanks[1] = new FluidTank(Fluids.WATER, 1000, 1); + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, inputTankSizeTS); + tanks[1] = new FluidTank(Fluids.WATER, outputTankSizeTS); } + @Override + public String getConfigName() { + return "condenserTowerSmall"; + } + + @Override + public void readIfPresent(JsonObject obj) { + inputTankSizeTS = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSizeTS); + outputTankSizeTS = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSizeTS); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:inputTankSize").value(inputTankSizeTS); + writer.name("I:outputTankSize").value(outputTankSizeTS); + } + @Override public void updateEntity() { super.updateEntity(); if(worldObj.isRemote) { - if(this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 2 == 0) { + if(GeneralConfig.enableSteamParticles && (this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 2 == 0)) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "tower"); data.setFloat("lift", 1F); @@ -59,15 +85,6 @@ public class TileEntityTowerSmall extends TileEntityCondenser { this.sendFluid(this.tanks[1], worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); this.sendFluid(this.tanks[1], worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); } - - @Override - public void fillFluidInit(FluidType type) { - - for(int i = 2; i <= 6; i++) { - ForgeDirection dir = ForgeDirection.getOrientation(i); - fillFluid(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, getTact(), type); - } - } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityUVLamp.java b/src/main/java/com/hbm/tileentity/machine/TileEntityUVLamp.java deleted file mode 100644 index da9fe44ea..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityUVLamp.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.hbm.tileentity.machine; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityUVLamp extends TileEntity { - -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java index 8ca80eb24..8fa592af5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java @@ -3,7 +3,7 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.DummyBlockVault; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEVaultPacket; +import com.hbm.packet.toclient.TEVaultPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java index 14f86bab4..238a68c28 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java @@ -9,7 +9,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; @@ -229,7 +228,7 @@ public class TileEntityWasteDrum extends TileEntity implements ISidedInventory, @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIWasteDrum(player.inventory, this); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index 8b3e4baeb..20852c6e2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -18,8 +18,9 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemWatzPellet; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Compat; @@ -31,8 +32,8 @@ import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; @@ -44,7 +45,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityWatz extends TileEntityMachineBase implements IFluidStandardTransceiver, IControlReceiver, IGUIProvider { +public class TileEntityWatz extends TileEntityMachineBase implements IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IFluidCopiable { public FluidTank[] tanks; public int heat; @@ -120,7 +121,7 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand /* send sync packets (order doesn't matter) */ for(TileEntityWatz segment : segments) { segment.isOn = turnedOn; - segment.sendPacket(sharedTanks); + this.networkPackNT(25); segment.heat *= 0.99; //cool 1% per tick } @@ -169,7 +170,7 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand public void updateCoolant(FluidTank[] tanks) { - double coolingFactor = 0.1D; //10% per tick, TEMP + double coolingFactor = 0.2D; //20% per tick double heatToUse = this.heat * coolingFactor; FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); @@ -277,28 +278,28 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand } } } - - public void sendPacket(FluidTank[] tanks) { - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("heat", this.heat); - data.setBoolean("isOn", isOn); - data.setBoolean("lock", isLocked); - data.setDouble("flux", this.fluxLastReaction + this.fluxLastBase); - for(int i = 0; i < tanks.length; i++) { - tanks[i].writeToNBT(data, "t" + i); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeInt(this.heat); + buf.writeBoolean(isOn); + buf.writeBoolean(isLocked); + buf.writeDouble(this.fluxLastReaction + this.fluxLastBase); + for (FluidTank tank : tanks) { + tank.serialize(buf); } - this.networkPack(data, 25); } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.heat = nbt.getInteger("heat"); - this.isOn = nbt.getBoolean("isOn"); - this.isLocked = nbt.getBoolean("lock"); - this.fluxDisplay = nbt.getDouble("flux"); - for(int i = 0; i < tanks.length; i++) { - tanks[i].readFromNBT(nbt, "t" + i); + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.heat = buf.readInt(); + this.isOn = buf.readBoolean(); + this.isLocked = buf.readBoolean(); + this.fluxDisplay = buf.readDouble(); + for (FluidTank tank : tanks) { + tank.deserialize(buf); } } @@ -443,6 +444,12 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand return bb; } + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + private void disassemble() { int count = 20; @@ -494,6 +501,12 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand setBrokenColumn(1, ModBlocks.watz_end, 1, 2, -2); setBrokenColumn(1, ModBlocks.watz_end, 1, -2, 2); setBrokenColumn(1, ModBlocks.watz_end, 1, -2, -2); + + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.achWatzBoom); + } } private void setBrokenColumn(int minHeight, Block b, int meta, int x, int z) { @@ -509,12 +522,6 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand } } } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -523,7 +530,7 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIWatz(player.inventory, this); } @@ -541,4 +548,9 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0] }; } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java deleted file mode 100644 index 95db0d668..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ /dev/null @@ -1,787 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.interfaces.IReactor; -import com.hbm.inventory.container.ContainerWatzCore; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIWatzCore; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCapacitor; -import com.hbm.items.special.WatzFuel; -import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; - -import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardSender; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -@Deprecated -public class TileEntityWatzCore extends TileEntityLoadedBase implements ISidedInventory, IReactor, IEnergyGenerator, IFluidContainer, IFluidSource, IFluidStandardSender, IGUIProvider { - - public long power; - public final static long maxPower = 100000000; - public int heat; - - public int heatMultiplier; - public int powerMultiplier; - public int decayMultiplier; - - public int heatList; - public int wasteList; - public int powerList; - - Random rand = new Random(); - - private ItemStack slots[]; - public int age = 0; - public List list1 = new ArrayList(); - public FluidTank tank; - - private String customName; - - public TileEntityWatzCore() { - slots = new ItemStack[40]; - tank = new FluidTank(Fluids.WATZ, 64000, 0); - } - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.watzPowerplant"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return true; - } - } - - @Override - public void openInventory() {} - - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return null; - } - - @Override - public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { - return false; - } - - @Override - public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tank.readFromNBT(nbt, "watz"); - - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - nbt.setLong("power", power); - tank.writeToNBT(nbt, "watz"); - - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public boolean isStructureValid(World world) { - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 3, this.yCoord + i, this.zCoord - 1) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 3, this.yCoord + i, this.zCoord + 1) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord - 2) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 2, this.yCoord + i, this.zCoord + 2) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord - 3) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord - 2) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord) != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord + 2) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 1, this.yCoord + i, this.zCoord + 3) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 0, this.yCoord + i, this.zCoord - 2) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 0, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 0, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 0, this.yCoord + i, this.zCoord + 2) != ModBlocks.watz_control) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord - 3) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord - 2) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord) != ModBlocks.watz_cooler) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord + 2) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 1, this.yCoord + i, this.zCoord + 3) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord - 2) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord - 1) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord) != ModBlocks.watz_control) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord + 1) != ModBlocks.watz_element) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 2, this.yCoord + i, this.zCoord + 2) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 3, this.yCoord + i, this.zCoord - 1) != ModBlocks.reinforced_brick) - return false; - } - for(int i = -5; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 3, this.yCoord + i, this.zCoord + 1) != ModBlocks.reinforced_brick) - return false; - } - - - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord) != ModBlocks.watz_conductor) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord) != ModBlocks.watz_conductor) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord + 3, this.yCoord + i, this.zCoord) != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord + 3, this.yCoord + i, this.zCoord) != ModBlocks.reinforced_brick) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord - 3, this.yCoord + i, this.zCoord) != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord - 3, this.yCoord + i, this.zCoord) != ModBlocks.reinforced_brick) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord + 3) != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord + 3) != ModBlocks.reinforced_brick) - return false; - } - - for(int i = -5; i <= -1; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord - 3) != ModBlocks.reinforced_brick) - return false; - } - for(int i = 1; i <= 5; i++) - { - if(world.getBlock(this.xCoord, this.yCoord + i, this.zCoord - 3) != ModBlocks.reinforced_brick) - return false; - } - - if(world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord) != ModBlocks.watz_hatch) - return false; - - if(world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord) != ModBlocks.watz_hatch) - return false; - - if(world.getBlock(this.xCoord, this.yCoord, this.zCoord + 3) != ModBlocks.watz_hatch) - return false; - - if(world.getBlock(this.xCoord, this.yCoord, this.zCoord - 3) != ModBlocks.watz_hatch) - return false; - - for(int i = -3; i <= 3; i++) - { - for(int j = -3; j <= 3; j++) - { - if(world.getBlock(this.xCoord + i, this.yCoord + 6, this.zCoord + j) != ModBlocks.watz_end && world.getBlock(this.xCoord + i, this.yCoord + 6, this.zCoord + j) != ModBlocks.watz_conductor) - return false; - } - } - for(int i = -3; i <= 3; i++) - { - for(int j = -3; j <= 3; j++) - { - if(world.getBlock(this.xCoord + i, this.yCoord - 6, this.zCoord + j) != ModBlocks.watz_end && world.getBlock(this.xCoord + i, this.yCoord - 6, this.zCoord + j) != ModBlocks.watz_conductor) - return false; - } - } - - return true; - } - - @Override - public boolean isCoatingValid(World world) { - { - return true; - } - - //return false; - } - - @Override - public boolean hasFuse() { - return slots[38] != null && slots[38].getItem() == ModItems.titanium_filter && ItemCapacitor.getDura(slots[38]) > 0; - } - - @Override - public int getWaterScaled(int i) { - return 0; - } - - @Override - public long getPowerScaled(long i) { - return (power/100 * i) / (maxPower/100); - } - - @Override - public int getCoolantScaled(int i) { - return 0; - } - - @Override - public int getHeatScaled(int i) { - return 0; - } - - @Override - public void updateEntity() { - - if(this.isStructureValid(this.worldObj)) { - - powerMultiplier = 100; - heatMultiplier = 100; - decayMultiplier = 100; - powerList = 0; - heatList = 0; - heat = 0; - - if (hasFuse()) { - - //Adds power and heat - for (int i = 0; i < 36; i++) { - surveyPellet(slots[i]); - } - //Calculates modifiers - for (int i = 0; i < 36; i++) { - surveyPelletAgain(slots[i]); - } - //Decays pellet by (DECAYMULTIPLIER * DEFAULTDECAY=100)/100 ticks - for (int i = 0; i < 36; i++) { - decayPellet(i); - } - } - - if(!worldObj.isRemote) { - - age++; - if (age >= 20) { - age = 0; - } - - this.sendPower(worldObj, xCoord, yCoord + 7, zCoord, ForgeDirection.UP); - this.sendPower(worldObj, xCoord, yCoord - 7, zCoord, ForgeDirection.DOWN); - - this.sendFluid(tank, worldObj, xCoord + 4, yCoord, zCoord, Library.POS_X); - this.sendFluid(tank, worldObj, xCoord, yCoord, zCoord + 4, Library.POS_Z); - this.sendFluid(tank, worldObj, xCoord - 4, yCoord, zCoord, Library.NEG_X); - this.sendFluid(tank, worldObj, xCoord, yCoord, zCoord - 4, Library.NEG_Z); - - if (age == 9 || age == 19) { - fillFluidInit(tank.getTankType()); - } - - //Only damages filter when heat is present (thus waste being created) - if (heatList > 0) { - ItemCapacitor.setDura(slots[38], ItemCapacitor.getDura(slots[38]) - 1); - } - - heatList *= heatMultiplier; - heatList /= 100; - heat = heatList; - - powerList *= powerMultiplier; - powerList /= 100; - power += powerList; - - tank.setFill(tank.getFill() + ((decayMultiplier * heat) / 100) / 100); - - if(power > maxPower) - power = maxPower; - - //Gets rid of 1/4 of the total waste, if at least one access hatch is not occupied - if(tank.getFill() > tank.getMaxFill()) - emptyWaste(); - - power = Library.chargeItemsFromTE(slots, 37, power, maxPower); - - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tank.unloadTank(36, 39, slots); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - } - - public void surveyPellet(ItemStack stack) { - if(stack != null && stack.getItem() instanceof WatzFuel) - { - WatzFuel fuel = (WatzFuel)stack.getItem(); - this.powerList += fuel.power; - this.heatList += fuel.heat; - } - } - - public void surveyPelletAgain(ItemStack stack) { - if(stack != null && stack.getItem() instanceof WatzFuel) - { - WatzFuel fuel = (WatzFuel)stack.getItem(); - this.powerMultiplier *= fuel.powerMultiplier; - this.heatMultiplier *= fuel.heatMultiplier; - this.decayMultiplier *= fuel.decayMultiplier; - } - } - - public void decayPellet(int i) { - if(slots[i] != null && slots[i].getItem() instanceof WatzFuel) - { - WatzFuel fuel = (WatzFuel)slots[i].getItem(); - WatzFuel.setLifeTime(slots[i], WatzFuel.getLifeTime(slots[i]) + this.decayMultiplier); - WatzFuel.updateDamage(slots[i]); - if(WatzFuel.getLifeTime(slots[i]) >= fuel.lifeTime) - { - if(slots[i].getItem() == ModItems.pellet_lead) - slots[i] = new ItemStack(ModItems.powder_lead); - else - slots[i] = new ItemStack(ModItems.pellet_lead); - } - } - } - - public void emptyWaste() { - tank.setFill(tank.getFill() / 4); - tank.setFill(tank.getFill() * 3); - if (!worldObj.isRemote) { - if (this.worldObj.getBlock(this.xCoord + 4, this.yCoord, this.zCoord) == Blocks.air) - { - this.worldObj.setBlock(this.xCoord + 4, this.yCoord, this.zCoord, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - } - else if (this.worldObj.getBlock(this.xCoord - 4, this.yCoord, this.zCoord) == Blocks.air) - { - this.worldObj.setBlock(this.xCoord - 4, this.yCoord, this.zCoord, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - } - else if (this.worldObj.getBlock(this.xCoord, this.yCoord, this.zCoord + 4) == Blocks.air) - { - this.worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord + 4, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - } - else if (this.worldObj.getBlock(this.xCoord, this.yCoord, this.zCoord - 4) == Blocks.air) - { - this.worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord - 4, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - } - else { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, - AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 50, 50)); - - for(EntityPlayer player : players) { - player.triggerAchievement(MainRegistry.achWatzBoom); - } - - if (rand.nextInt(10) != 0) { - for (int i = -3; i <= 3; i++) - for (int j = -5; j <= 5; j++) - for (int k = -3; k <= 3; k++) - if (rand.nextInt(2) == 0) - this.worldObj.setBlock(this.xCoord + i, this.yCoord + j, this.zCoord + k, - ModBlocks.mud_block); - this.worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, ModBlocks.mud_block); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "random.explode", 3.0F, 0.75F); - } else { - EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, xCoord, yCoord, zCoord, BombConfig.fleijaRadius); - if(!ex.isDead) { - worldObj.spawnEntityInWorld(ex); - EntityCloudFleija cloud = new EntityCloudFleija(worldObj, BombConfig.fleijaRadius); - cloud.posX = xCoord + 0.5; - cloud.posY = yCoord + 0.5; - cloud.posZ = zCoord + 0.6; - worldObj.spawnEntityInWorld(cloud); - } - } - } - } - } - - @Override - public boolean getTact() { - if(age >= 0 && age < 10) - { - return true; - } - - return false; - } - - @Override - public long getPower() { - return power; - } - - @Override - public void setPower(long i) { - this.power = i; - } - - @Override - public long getMaxPower() { - return this.maxPower; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 4, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 4, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 4, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 4, getTact(), type); - - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - return tank.getFill(); - } - - @Override - public void setFluidFill(int i, FluidType type) { - tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return list1; - } - - @Override - public void clearFluidList(FluidType type) { - list1.clear(); - } - @Override - public FluidTank[] getSendingTanks() { - return new FluidTank[] { tank }; - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] { tank }; - } - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerWatzCore(player.inventory, this); - } - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIWatzCore(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java b/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java index 4fb2be3ef..562109830 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java @@ -3,8 +3,8 @@ package com.hbm.tileentity.machine; import java.util.List; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java index 37f9f4fb0..d4e2c6705 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java @@ -5,7 +5,8 @@ import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.CrackingRecipes; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; @@ -13,14 +14,15 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver { - +public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver, IFluidCopiable { + public FluidTank[] tanks; - + public TileEntityMachineCatalyticCracker() { tanks = new FluidTank[5]; tanks[0] = new FluidTank(Fluids.BITUMEN, 4000); @@ -29,10 +31,10 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl tanks[3] = new FluidTank(Fluids.PETROLEUM, 4000); tanks[4] = new FluidTank(Fluids.SPENTSTEAM, 800); } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { this.worldObj.theProfiler.startSection("catalyticCracker_setup_tanks"); @@ -46,47 +48,48 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl this.worldObj.theProfiler.endStartSection("catalyticCracker_send_fluid"); if(worldObj.getTotalWorldTime() % 10 == 0) { - + for(DirPos pos : getConPos()) { for(int i = 2; i <= 4; i++) { if(tanks[i].getFill() > 0) this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - - NBTTagCompound data = new NBTTagCompound(); - for(int i = 0; i < 5; i++) - tanks[i].writeToNBT(data, "tank" + i); - - INBTPacketReceiver.networkPack(this, data, 50); } this.worldObj.theProfiler.endSection(); + networkPackNT(25); } } @Override - public void networkUnpack(NBTTagCompound nbt) { - for(int i = 0; i < 5; i++) - tanks[i].readFromNBT(nbt, "tank" + i); + public void serialize(ByteBuf buf) { + for(FluidTank tank : tanks) + tank.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + for(FluidTank tank : tanks) + tank.deserialize(buf); + } + private void updateConnections() { - + for(DirPos pos : getConPos()) { this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + private void crack() { - + Pair quart = CrackingRecipes.getCracking(tanks[0].getTankType()); - + if(quart != null) { - + int left = quart.getKey().fill; int right = quart.getValue().fill; - + for(int i = 0; i < 2; i++) { if(tanks[0].getFill() >= 100 && tanks[1].getFill() >= 200 && hasSpace(left, right)) { tanks[0].setFill(tanks[0].getFill() - 100); @@ -98,29 +101,27 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl } } } - + private boolean hasSpace(int left, int right) { return tanks[2].getFill() + left <= tanks[2].getMaxFill() && tanks[3].getFill() + right <= tanks[3].getMaxFill() && tanks[4].getFill() + 2 <= tanks[4].getMaxFill(); } - + private void setupTanks() { - + Pair quart = CrackingRecipes.getCracking(tanks[0].getTankType()); - + if(quart != null) { tanks[1].setTankType(Fluids.STEAM); tanks[2].setTankType(quart.getKey().type); tanks[3].setTankType(quart.getValue().type); tanks[4].setTankType(Fluids.SPENTSTEAM); } else { - tanks[0].setTankType(Fluids.NONE); - tanks[1].setTankType(Fluids.NONE); tanks[2].setTankType(Fluids.NONE); tanks[3].setTankType(Fluids.NONE); tanks[4].setTankType(Fluids.NONE); } } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -128,7 +129,7 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "tank" + i); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -136,12 +137,12 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl for(int i = 0; i < 5; i++) tanks[i].writeToNBT(nbt, "tank" + i); } - + protected DirPos[] getConPos() { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + return new DirPos[] { new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 1, dir), new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 2, dir), @@ -153,12 +154,12 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4, rot.getOpposite()) }; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 3, @@ -169,10 +170,10 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl zCoord + 4 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -193,4 +194,9 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl public FluidTank[] getAllTanks() { return tanks; } + + @Override + public FluidTank getTankToPaste() { + return tanks[0]; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java index 04e534de5..abca3a2ea 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java @@ -10,17 +10,18 @@ import com.hbm.inventory.gui.GUIMachineCatalyticReformer; import com.hbm.inventory.recipes.ReformingRecipes; import com.hbm.items.ModItems; import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Triplet; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; @@ -28,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { +public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, IFluidCopiable { public long power; public static final long maxPower = 1_000_000; @@ -55,7 +56,7 @@ public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase im if(!worldObj.isRemote) { - this.updateConnections(); + if(this.worldObj.getTotalWorldTime() % 20 == 0) this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); tanks[0].setType(9, slots); tanks[0].loadTank(1, 2, slots); @@ -73,18 +74,23 @@ public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase im } } } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - for(int i = 0; i < 4; i++) tanks[i].writeToNBT(data, "" + i); - this.networkPack(data, 150); + + this.networkPackNT(150); } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - for(int i = 0; i < 4; i++) tanks[i].readFromNBT(nbt, "" + i); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + for(int i = 0; i < 4; i++) tanks[i].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + for(int i = 0; i < 4; i++) tanks[i].deserialize(buf); } private void reform() { @@ -246,7 +252,7 @@ public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase im @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineCatalyticReformer(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java index f2adcb771..3d1d6d2b9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java @@ -10,6 +10,7 @@ import com.hbm.inventory.gui.GUIMachineCoker; import com.hbm.inventory.recipes.CokerRecipes; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Triplet; @@ -19,7 +20,7 @@ import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -28,7 +29,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class TileEntityMachineCoker extends TileEntityMachineBase implements IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineCoker extends TileEntityMachineBase implements IFluidStandardTransceiver, IGUIProvider, IFluidCopiable { public boolean wasOn; public int progress; @@ -101,20 +102,14 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl } } - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 20); + if(wasOn && worldObj.getTotalWorldTime() % 5 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); } for(DirPos pos : getConPos()) { if(this.tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("wasOn", this.wasOn); - data.setInteger("heat", this.heat); - data.setInteger("progress", this.progress); - tanks[0].writeToNBT(data, "t0"); - tanks[1].writeToNBT(data, "t1"); - this.networkPack(data, 25); + + this.networkPackNT(25); } else { if(this.wasOn) { @@ -135,7 +130,9 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl } } } - + + + public DirPos[] getConPos() { return new DirPos[] { @@ -172,14 +169,25 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl return true; } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.wasOn = nbt.getBoolean("wasOn"); - this.heat = nbt.getInteger("heat"); - this.progress = nbt.getInteger("progress"); - tanks[0].readFromNBT(nbt, "t0"); - tanks[1].readFromNBT(nbt, "t1"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(this.wasOn); + buf.writeInt(this.heat); + buf.writeInt(this.progress); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.wasOn = buf.readBoolean(); + this.heat = buf.readInt(); + this.progress = buf.readInt(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); } protected void tryPullHeat() { @@ -284,7 +292,7 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineCoker(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 13fb8015b..3f1d1b7e8 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -1,30 +1,33 @@ package com.hbm.tileentity.machine.oil; import java.io.IOException; +import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineOilWell; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.world.feature.OilSpot; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase implements IFluidAcceptor { +public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase { protected static int maxPower = 5_000_000; protected static int consumption = 5000; @@ -42,9 +45,9 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple public TileEntityMachineFrackingTower() { super(); tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.OIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.GAS, 64_000, 1); - tanks[2] = new FluidTank(Fluids.FRACKSOL, 64_000, 2); + tanks[0] = new FluidTank(Fluids.OIL, 64_000); + tanks[1] = new FluidTank(Fluids.GAS, 64_000); + tanks[2] = new FluidTank(Fluids.FRACKSOL, 64_000); } @Override @@ -128,19 +131,6 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple OilSpot.generateOilSpot(worldObj, xCoord, zCoord, destructionRange, 10, false); } - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tanks[2].getTankType() ? tanks[2].getMaxFill() : 0; - } - @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { tanks[0], tanks[1] }; @@ -218,7 +208,26 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineOilWell(player.inventory, this); } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_fracking_tower)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_BURN, level * 10, level * 50)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java index 19ed18ecd..d186eb1e3 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java @@ -1,17 +1,12 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.FractionRecipes; import com.hbm.lib.Library; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; @@ -19,44 +14,42 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineFractionTower extends TileEntityLoadedBase implements IFluidSource, IFluidAcceptor, INBTPacketReceiver, IFluidStandardTransceiver { - +public class TileEntityMachineFractionTower extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver, IFluidCopiable { + public FluidTank[] tanks; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - + public TileEntityMachineFractionTower() { tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.HEAVYOIL, 4000, 0); - tanks[1] = new FluidTank(Fluids.BITUMEN, 4000, 1); - tanks[2] = new FluidTank(Fluids.SMEAR, 4000, 2); + tanks[0] = new FluidTank(Fluids.HEAVYOIL, 4000); + tanks[1] = new FluidTank(Fluids.BITUMEN, 4000); + tanks[2] = new FluidTank(Fluids.SMEAR, 4000); } - + @Override public void updateEntity() { if(!worldObj.isRemote) { - + TileEntity stack = worldObj.getTileEntity(xCoord, yCoord + 3, zCoord); - + if(stack instanceof TileEntityMachineFractionTower) { TileEntityMachineFractionTower frac = (TileEntityMachineFractionTower) stack; - + //make types equal for(int i = 0; i < 3; i++) { frac.tanks[i].setTankType(tanks[i].getTankType()); } - + //calculate transfer int oil = Math.min(tanks[0].getFill(), frac.tanks[0].getMaxFill() - frac.tanks[0].getFill()); int left = Math.min(frac.tanks[1].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); int right = Math.min(frac.tanks[2].getFill(), tanks[2].getMaxFill() - tanks[2].getFill()); - + //move oil up, pull fractions down tanks[0].setFill(tanks[0].getFill() - oil); tanks[1].setFill(tanks[1].getFill() + left); @@ -65,50 +58,46 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme frac.tanks[1].setFill(frac.tanks[1].getFill() - left); frac.tanks[2].setFill(frac.tanks[2].getFill() - right); } - + setupTanks(); this.updateConnections(); - - if(worldObj.getTotalWorldTime() % 20 == 0) - fractionate(); - - if(worldObj.getTotalWorldTime() % 10 == 0) { - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); - } - - this.sendFluid(); - - NBTTagCompound data = new NBTTagCompound(); - for(int i = 0; i < 3; i++) - tanks[i].writeToNBT(data, "tank" + i); - - INBTPacketReceiver.networkPack(this, data, 50); + if(worldObj.getTotalWorldTime() % 10 == 0) + fractionate(); + + this.sendFluid(); + + networkPackNT(50); } } @Override - public void networkUnpack(NBTTagCompound nbt) { + public void serialize(ByteBuf buf) { for(int i = 0; i < 3; i++) - tanks[i].readFromNBT(nbt, "tank" + i); + tanks[i].serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + for(int i = 0; i < 3; i++) + tanks[i].deserialize(buf); + } + private void updateConnections() { - + for(DirPos pos : getConPos()) { this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + private void sendFluid() { - + for(DirPos pos : getConPos()) { this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + private DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), @@ -117,11 +106,11 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) }; } - + private void setupTanks() { - + Pair quart = FractionRecipes.getFractions(tanks[0].getTankType()); - + if(quart != null) { tanks[1].setTankType(quart.getKey().type); tanks[2].setTankType(quart.getValue().type); @@ -131,16 +120,16 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme tanks[2].setTankType(Fluids.NONE); } } - + private void fractionate() { - + Pair quart = FractionRecipes.getFractions(tanks[0].getTankType()); - + if(quart != null) { - + int left = quart.getKey().fill; int right = quart.getValue().fill; - + if(tanks[0].getFill() >= 100 && hasSpace(left, right)) { tanks[0].setFill(tanks[0].getFill() - 100); tanks[1].setFill(tanks[1].getFill() + left); @@ -148,11 +137,11 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme } } } - + private boolean hasSpace(int left, int right) { return tanks[1].getFill() + left <= tanks[1].getMaxFill() && tanks[2].getFill() + right <= tanks[2].getMaxFill(); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -160,7 +149,7 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme for(int i = 0; i < 3; i++) tanks[i].readFromNBT(nbt, "tank" + i); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -169,81 +158,11 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme tanks[i].writeToNBT(nbt, "tank" + i); } - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - } - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - this.tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - else - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - - for(int i = 2; i < 6; i++) { - ForgeDirection dir = ForgeDirection.getOrientation(i); - fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, this.getTact(), type); - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[1].getTankType()) return list1; - if(type == tanks[2].getTankType()) return list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[1].getTankType()) list1.clear(); - if(type == tanks[2].getTankType()) list2.clear(); - } - AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -254,10 +173,10 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 8ad9a8e13..49eba901b 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -1,34 +1,38 @@ package com.hbm.tileentity.machine.oil; +import java.util.HashMap; import java.util.List; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerMachineGasFlare; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.fluid.trait.FT_Polluting; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUIMachineGasFlare; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.I18nUtil; import com.hbm.util.ParticleUtil; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -36,19 +40,24 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable { public long power; public static final long maxPower = 100000; public FluidTank tank; public boolean isOn = false; public boolean doesBurn = false; + protected int fluidUsed = 0; + protected int output = 0; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); public TileEntityMachineGasFlare() { super(6); - tank = new FluidTank(Fluids.GAS, 64000, 0); + tank = new FluidTank(Fluids.GAS, 64000); } @Override @@ -95,94 +104,93 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(!worldObj.isRemote) { - this.sendPower(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.sendPower(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.sendPower(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.sendPower(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); + this.fluidUsed = 0; + this.output = 0; - this.trySubscribe(tank.getTankType(), worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); + for(DirPos pos : getConPos()) { + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } tank.setType(3, slots); tank.loadTank(1, 2, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - + int maxVent = 50; int maxBurn = 10; - + if(isOn && tank.getFill() > 0) { - - UpgradeManager.eval(slots, 4, 5); - int burn = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - int yield = Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); + + upgradeManager.checkSlots(this, slots, 4, 5); + int burn = upgradeManager.getLevel(UpgradeType.SPEED); + int yield = upgradeManager.getLevel(UpgradeType.EFFECT); maxVent += maxVent * burn; maxBurn += maxBurn * burn; - + if(!doesBurn || !(tank.getTankType().hasTrait(FT_Flammable.class))) { - + if(tank.getTankType().hasTrait(FT_Gaseous.class) || tank.getTankType().hasTrait(FT_Gaseous_ART.class)) { int eject = Math.min(maxVent, tank.getFill()); + this.fluidUsed = eject; tank.setFill(tank.getFill() - eject); tank.getTankType().onFluidRelease(this, tank, eject); - + if(worldObj.getTotalWorldTime() % 7 == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", 1.5F, 0.5F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", getVolume(1.5F), 0.5F); + + if(worldObj.getTotalWorldTime() % 5 == 0 && eject > 0) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, eject * 5); + } } } else { - + if(tank.getTankType().hasTrait(FT_Flammable.class)) { int eject = Math.min(maxBurn, tank.getFill()); + this.fluidUsed = eject; tank.setFill(tank.getFill() - eject); - - int penalty = 2; + + int penalty = 5; if(!tank.getTankType().hasTrait(FT_Gaseous.class) && !tank.getTankType().hasTrait(FT_Gaseous_ART.class)) penalty = 10; - + long powerProd = tank.getTankType().getTrait(FT_Flammable.class).getHeatEnergy() * eject / 1_000; // divided by 1000 per mB powerProd /= penalty; powerProd += powerProd * yield / 3; - + + this.output = (int) powerProd; power += powerProd; - + if(power > maxPower) power = maxPower; - + ParticleUtil.spawnGasFlame(worldObj, this.xCoord + 0.5F, this.yCoord + 11.75F, this.zCoord + 0.5F, worldObj.rand.nextGaussian() * 0.15, 0.2, worldObj.rand.nextGaussian() * 0.15); - + List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord + 12, zCoord - 2, xCoord + 2, yCoord + 17, zCoord + 2)); for(Entity e : list) { e.setFire(5); e.attackEntityFrom(DamageSource.onFire, 5F); } - - if(worldObj.getTotalWorldTime() % 3 == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F); - if(worldObj.getTotalWorldTime() % 20 == 0) { - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); - if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 5); + if(worldObj.getTotalWorldTime() % 3 == 0) + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", getVolume(1.5F), 0.75F); + + if(worldObj.getTotalWorldTime() % 5 == 0 && eject > 0) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.BURN, eject * 5); } } } } power = Library.chargeItemsFromTE(slots, 0, power, maxPower); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setBoolean("isOn", isOn); - data.setBoolean("doesBurn", doesBurn); - this.networkPack(data, 50); + + this.networkPackNT(50); } else { - + if(isOn && tank.getFill() > 0) { - + if((!doesBurn || !(tank.getTankType().hasTrait(FT_Flammable.class))) && (tank.getTankType().hasTrait(FT_Gaseous.class) || tank.getTankType().hasTrait(FT_Gaseous_ART.class))) { - + NBTTagCompound data = new NBTTagCompound(); data.setString("type", "tower"); data.setFloat("lift", 1F); @@ -194,13 +202,13 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements data.setDouble("posX", xCoord + 0.5); data.setDouble("posZ", zCoord + 0.5); data.setDouble("posY", yCoord + 11); - + MainRegistry.proxy.effectNT(data); - + } - + if(doesBurn && tank.getTankType().hasTrait(FT_Flammable.class) && MainRegistry.proxy.me().getDistanceSq(xCoord, yCoord + 10, zCoord) <= 1024) { - + NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaExt"); data.setString("mode", "smoke"); @@ -216,19 +224,38 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements data.setDouble("posZ", zCoord - 0.5); data.setDouble("posY", yCoord + 11.75); } - + MainRegistry.proxy.effectNT(data); } } } - } - + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.isOn = nbt.getBoolean("isOn"); - this.doesBurn = nbt.getBoolean("doesBurn"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeBoolean(this.isOn); + buf.writeBoolean(this.doesBurn); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.isOn = buf.readBoolean(); + this.doesBurn = buf.readBoolean(); + tank.deserialize(buf); } @Override @@ -257,32 +284,6 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements this.power = i; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; @@ -300,7 +301,55 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineGasFlare(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_flare)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (100 * level / 3) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.EFFECT, 3); + return upgrades; + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.fluidUsed > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.fluidUsed); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output); + } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setIntArray("fluidID", new int[]{tank.getTankType().getID()}); + tag.setBoolean("isOn", isOn); + tag.setBoolean("doesBurn", doesBurn); + return tag; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + int id = nbt.getIntArray("fluidID")[index]; + tank.setTankType(Fluids.fromID(id)); + if(nbt.hasKey("isOn")) isOn = nbt.getBoolean("isOn"); + if(nbt.hasKey("doesBurn")) doesBurn = nbt.getBoolean("doesBurn"); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java new file mode 100644 index 000000000..7b9424546 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineHydrotreater.java @@ -0,0 +1,230 @@ +package com.hbm.tileentity.machine.oil; + +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.container.ContainerMachineHydrotreater; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineHydrotreater; +import com.hbm.inventory.recipes.HydrotreatingRecipes; +import com.hbm.items.ModItems; +import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IPersistentNBT; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Triplet; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineHydrotreater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, IFluidCopiable { + + public long power; + public static final long maxPower = 1_000_000; + + public FluidTank[] tanks; + + public TileEntityMachineHydrotreater() { + super(11); + + this.tanks = new FluidTank[4]; + this.tanks[0] = new FluidTank(Fluids.OIL, 64_000); + this.tanks[1] = new FluidTank(Fluids.HYDROGEN, 64_000).withPressure(1); + this.tanks[2] = new FluidTank(Fluids.OIL_DS, 24_000); + this.tanks[3] = new FluidTank(Fluids.SOURGAS, 24_000); + } + + @Override + public String getName() { + return "container.hydrotreater"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(this.worldObj.getTotalWorldTime() % 20 == 0) this.updateConnections(); + power = Library.chargeTEFromItems(slots, 0, power, maxPower); + tanks[0].setType(9, slots); + + tanks[0].loadTank(1, 2, slots); + tanks[1].loadTank(3, 4, slots); + + if(worldObj.getTotalWorldTime() % 2 == 0) reform(); + + tanks[2].unloadTank(5, 6, slots); + tanks[3].unloadTank(7, 8, slots); + + for(DirPos pos : getConPos()) { + for(int i = 2; i < 4; i++) { + if(tanks[i].getFill() > 0) { + this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + } + + this.networkPackNT(25); + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + for(int i = 0; i < 4; i++) tanks[i].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + for(int i = 0; i < 4; i++) tanks[i].deserialize(buf); + } + + private void reform() { + + Triplet out = HydrotreatingRecipes.getOutput(tanks[0].getTankType()); + if(out == null) { + tanks[2].setTankType(Fluids.NONE); + tanks[3].setTankType(Fluids.NONE); + return; + } + + tanks[1].withPressure(out.getX().pressure).setTankType(out.getX().type); + tanks[2].setTankType(out.getY().type); + tanks[3].setTankType(out.getZ().type); + + if(power < 20_000) return; + if(tanks[0].getFill() < 100) return; + if(tanks[1].getFill() < out.getX().fill) return; + if(slots[10] == null || slots[10].getItem() != ModItems.catalytic_converter) return; + + if(tanks[2].getFill() + out.getY().fill > tanks[2].getMaxFill()) return; + if(tanks[3].getFill() + out.getZ().fill > tanks[3].getMaxFill()) return; + + tanks[0].setFill(tanks[0].getFill() - 100); + tanks[1].setFill(tanks[1].getFill() - out.getX().fill); + tanks[2].setFill(tanks[2].getFill() + out.getY().fill); + tanks[3].setFill(tanks[3].getFill() + out.getZ().fill); + + power -= 20_000; + } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); + tanks[2].readFromNBT(nbt, "t2"); + tanks[3].readFromNBT(nbt, "t3"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + tanks[0].writeToNBT(nbt, "t0"); + tanks[1].writeToNBT(nbt, "t1"); + tanks[2].writeToNBT(nbt, "t2"); + tanks[3].writeToNBT(nbt, "t3"); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 7, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + @Override public FluidTank[] getAllTanks() { return tanks; } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[2], tanks[3]}; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0], tanks[1]}; } + @Override public boolean canConnect(ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.DOWN; } + @Override public boolean canConnect(FluidType type, ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.DOWN; } + + @Override + public void writeNBT(NBTTagCompound nbt) { + if(tanks[0].getFill() == 0 && tanks[1].getFill() == 0 && tanks[2].getFill() == 0 && tanks[3].getFill() == 0) return; + NBTTagCompound data = new NBTTagCompound(); + for(int i = 0; i < 4; i++) this.tanks[i].writeToNBT(data, "" + i); + nbt.setTag(NBT_PERSISTENT_KEY, data); + } + + @Override + public void readNBT(NBTTagCompound nbt) { + NBTTagCompound data = nbt.getCompoundTag(NBT_PERSISTENT_KEY); + for(int i = 0; i < 4; i++) this.tanks[i].readFromNBT(data, "" + i); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineHydrotreater(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineHydrotreater(player.inventory, this); + } + + @Override + public FluidTank getTankToPaste() { + return tanks[0]; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index edfeeff30..072acadcf 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -1,51 +1,58 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; +import java.util.HashMap; import java.util.List; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.FluidStack; -import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerLiquefactor; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUILiquefactor; import com.hbm.inventory.recipes.LiquefactionRecipes; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardSender; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender, IGUIProvider { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable { + public long power; public static final long maxPower = 100000; public static final int usageBase = 500; public int usage; public int progress; - public static final int processTimeBase = 200; + public static final int processTimeBase = 100; public int processTime; - + public FluidTank tank; - + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineLiquefactor() { super(4); - tank = new FluidTank(Fluids.NONE, 24000, 0); + tank = new FluidTank(Fluids.NONE, 24_000); } @Override @@ -55,52 +62,42 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen @Override public void updateEntity() { - + if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); - tank.updateTank(this); - + this.updateConnections(); - UpgradeManager.eval(slots, 2, 3); - int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - int power = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + upgradeManager.checkSlots(this, slots, 2, 3); + int speed = upgradeManager.getLevel(UpgradeType.SPEED); + int power = upgradeManager.getLevel(UpgradeType.POWER); this.processTime = processTimeBase - (processTimeBase / 4) * speed; this.usage = (usageBase + (usageBase * speed)) / (power + 1); - + if(this.canProcess()) this.process(); else this.progress = 0; - - if(worldObj.getTotalWorldTime() % 10 == 0) { - this.fillFluidInit(tank.getTankType()); - } - + this.sendFluid(); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setInteger("progress", this.progress); - data.setInteger("usage", this.usage); - data.setInteger("processTime", this.processTime); - this.networkPack(data, 50); + + this.networkPackNT(50); } } - + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + private void sendFluid() { for(DirPos pos : getConPos()) { this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + private DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord, yCoord + 4, zCoord, Library.POS_Y), @@ -121,62 +118,66 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public int[] getAccessibleSlotsFromSide(int side) { return new int[] { 0 }; } - + public boolean canProcess() { - - if(this.power < usage) - return false; - - if(slots[0] == null) - return false; - + + if(this.power < usage) return false; + if(slots[0] == null) return false; + FluidStack out = LiquefactionRecipes.getOutput(slots[0]); - - if(out == null) - return false; - - if(out.type != tank.getTankType() && tank.getFill() > 0) - return false; - - if(out.fill + tank.getFill() > tank.getMaxFill()) - return false; - + + if(out == null) return false; + if(out.type != tank.getTankType() && tank.getFill() > 0) return false; + if(out.fill + tank.getFill() > tank.getMaxFill()) return false; + return true; } - + public void process() { - + this.power -= usage; - + progress++; - + if(progress >= processTime) { - + FluidStack out = LiquefactionRecipes.getOutput(slots[0]); tank.setTankType(out.type); tank.setFill(tank.getFill() + out.fill); this.decrStackSize(0, 1); - + progress = 0; - + this.markDirty(); } } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.progress = nbt.getInteger("progress"); - this.usage = nbt.getInteger("usage"); - this.processTime = nbt.getInteger("processTime"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeInt(this.progress); + buf.writeInt(this.usage); + buf.writeInt(this.processTime); + tank.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.progress = buf.readInt(); + this.usage = buf.readInt(); + this.processTime = buf.readInt(); + tank.deserialize(buf); + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); tank.readFromNBT(nbt, "tank"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -198,64 +199,11 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(xCoord, yCoord - 1, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 4, zCoord, getTact(), type); - fillFluid(xCoord + 2, yCoord + 1, zCoord, getTact(), type); - fillFluid(xCoord - 2, yCoord + 1, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 1, zCoord + 2, getTact(), type); - fillFluid(xCoord, yCoord + 1, zCoord - 2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - private List consumers = new ArrayList(); - - @Override - public List getFluidList(FluidType type) { - return consumers; - } - - @Override - public void clearFluidList(FluidType type) { - consumers.clear(); - } - AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -266,10 +214,10 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -293,7 +241,38 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUILiquefactor(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_liquefactor)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + return upgrades; + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.usage); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java index 3e0c19f8b..942a10788 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -1,26 +1,29 @@ package com.hbm.tileentity.machine.oil; import java.io.IOException; +import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; -import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; @@ -65,8 +68,8 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { if("oreUranium".equals(name)) { for(int j = -1; j <= 1; j++) { for(int k = -1; k <= 1; k++) { - if(worldObj.getBlock(xCoord + j, yCoord + 7, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { - worldObj.setBlock(xCoord + k, yCoord + 7, zCoord + k, ModBlocks.gas_radon_dense); + if(worldObj.getBlock(xCoord + j, yCoord + 10, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { + worldObj.setBlock(xCoord + k, yCoord + 10, zCoord + k, ModBlocks.gas_radon_dense); } } } @@ -75,8 +78,8 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { if("oreAsbestos".equals(name)) { for(int j = -1; j <= 1; j++) { for(int k = -1; k <= 1; k++) { - if(worldObj.getBlock(xCoord + j, yCoord + 7, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { - worldObj.setBlock(xCoord + k, yCoord + 7, zCoord + k, ModBlocks.gas_asbestos); + if(worldObj.getBlock(xCoord + j, yCoord + 10, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { + worldObj.setBlock(xCoord + k, yCoord + 10, zCoord + k, ModBlocks.gas_asbestos); } } } @@ -87,7 +90,6 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { @Override public void onSuck(int x, int y, int z) { - ExplosionLarge.spawnOilSpills(worldObj, xCoord + 0.5F, yCoord + 5.5F, zCoord + 0.5F, 3); worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 2.0F, 0.5F); this.tanks[0].setFill(this.tanks[0].getFill() + oilPerDepsoit); @@ -99,14 +101,6 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { worldObj.setBlock(x, y, z, ModBlocks.ore_oil_empty); } } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, getTact(), type); - } AxisAlignedBB bb = null; @@ -119,7 +113,7 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { yCoord, zCoord - 1, xCoord + 2, - yCoord + 7, + yCoord + 10, zCoord + 2 ); } @@ -130,10 +124,10 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { @Override public DirPos[] getConPos() { return new DirPos[] { - new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), - new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), - new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), - new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z) }; } @@ -171,7 +165,26 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineOilWell(player.inventory, this); } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_well)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_BURN, level * 10, level * 50)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index fb2a78c4f..1dfee2567 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -1,26 +1,30 @@ package com.hbm.tileentity.machine.oil; import java.io.IOException; +import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.oredict.OreDictionary; @@ -105,21 +109,18 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { } } } - + + @Override - public void sendUpdate() { - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("indicator", this.indicator); - data.setFloat("speed", this.indicator == 0 ? (5F + (2F * this.speedLevel)) + (this.overLevel - 1F) * 10: 0F); - this.networkPack(data, 25); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeFloat(this.indicator == 0 ? (5F + (2F * this.speedLevel)) + (this.overLevel - 1F) * 10: 0F); } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.indicator = nbt.getInteger("indicator"); - this.speed = nbt.getFloat("speed"); + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.speed = buf.readFloat(); } @Override @@ -135,25 +136,6 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { } } - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - int pX2 = xCoord + rot.offsetX * 2; - int pZ2 = zCoord + rot.offsetZ * 2; - int pX4 = xCoord + rot.offsetX * 4; - int pZ4 = zCoord + rot.offsetZ * 4; - int oX = Math.abs(dir.offsetX) * 2; - int oZ = Math.abs(dir.offsetZ) * 2; - - fillFluid(pX2 + oX, this.yCoord, pZ2 + oZ, getTact(), type); - fillFluid(pX2 - oX, this.yCoord, pZ2 - oZ, getTact(), type); - fillFluid(pX4 + oX, this.yCoord, pZ4 + oZ, getTact(), type); - fillFluid(pX4 - oX, this.yCoord, pZ4 - oZ, getTact(), type); - } - AxisAlignedBB bb = null; @Override @@ -221,7 +203,26 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineOilWell(player.inventory, this); } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_pumpjack)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_BURN, level * 10, level * 50)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePyroOven.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePyroOven.java new file mode 100644 index 000000000..146a4629b --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePyroOven.java @@ -0,0 +1,388 @@ +package com.hbm.tileentity.machine.oil; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.container.ContainerPyroOven; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIPyroOven; +import com.hbm.inventory.recipes.PyroOvenRecipes; +import com.hbm.inventory.recipes.PyroOvenRecipes.PyroOvenRecipe; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachinePyroOven extends TileEntityMachinePolluting implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable { + + public long power; + public static final long maxPower = 10_000_000; + public boolean isVenting; + public boolean isProgressing; + public float progress; + public static int consumption = 10_000; + + public int prevAnim; + public int anim = 0; + + public FluidTank[] tanks; + + private AudioWrapper audio; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + + public TileEntityMachinePyroOven() { + super(6, 50); + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(Fluids.NONE, 24_000); + tanks[1] = new FluidTank(Fluids.NONE, 24_000); + } + + @Override + public void setInventorySlotContents(int i, ItemStack stack) { + super.setInventorySlotContents(i, stack); + + if(stack != null && stack.getItem() instanceof ItemMachineUpgrade && i >= 4 && i <= 5) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + } + } + + @Override + public String getName() { + return "container.machinePyroOven"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); + tanks[0].setType(3, slots); + + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[0].getTankType() != Fluids.NONE) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + if(smoke.getFill() > 0) this.sendFluid(smoke, worldObj, xCoord - rot.offsetX, yCoord + 3, zCoord - rot.offsetZ, Library.POS_Y); + + upgradeManager.checkSlots(this, slots, 4, 5); + int speed = upgradeManager.getLevel(UpgradeType.SPEED); + int powerSaving = upgradeManager.getLevel(UpgradeType.POWER); + int overdrive = upgradeManager.getLevel(UpgradeType.OVERDRIVE); + + this.isProgressing = false; + this.isVenting = false; + + if(this.canProcess()) { + PyroOvenRecipe recipe = getMatchingRecipe(); + this.progress += 1F / Math.max((recipe.duration - speed * (recipe.duration / 4)) / (overdrive * 2 + 1), 1); + this.isProgressing = true; + this.power -= this.getConsumption(speed + overdrive * 2, powerSaving); + + if(progress >= 1F) { + this.progress = 0F; + this.finishRecipe(recipe); + this.markDirty(); + } + + this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + + } else { + this.progress = 0F; + } + + this.networkPackNT(50); + } else { + + this.prevAnim = this.anim; + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + if(isProgressing) { + this.anim++; + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + audio.updateVolume(this.getVolume(1F)); + + if(MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 3, zCoord + 0.5) < 50) { + if(worldObj.rand.nextInt(20) == 0) worldObj.spawnParticle("cloud", xCoord + 0.5 - rot.offsetX - dir.offsetX * 0.875, yCoord + 3, zCoord + 0.5 - rot.offsetZ - dir.offsetZ * 0.875, 0.0, 0.05, 0.0); + if(worldObj.rand.nextInt(20) == 0) worldObj.spawnParticle("cloud", xCoord + 0.5 - rot.offsetX - dir.offsetX * 2.375, yCoord + 3, zCoord + 0.5 - rot.offsetZ - dir.offsetZ * 2.375, 0.0, 0.05, 0.0); + if(worldObj.rand.nextInt(20) == 0) worldObj.spawnParticle("cloud", xCoord + 0.5 - rot.offsetX + dir.offsetX * 0.875, yCoord + 3, zCoord + 0.5 - rot.offsetZ + dir.offsetZ * 0.875, 0.0, 0.05, 0.0); + if(worldObj.rand.nextInt(20) == 0) worldObj.spawnParticle("cloud", xCoord + 0.5 - rot.offsetX + dir.offsetX * 2.375, yCoord + 3, zCoord + 0.5 - rot.offsetZ + dir.offsetZ * 2.375, 0.0, 0.05, 0.0); + } + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + if(this.isVenting) { + + if(worldObj.getTotalWorldTime() % 2 == 0) { + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 10F); + fx.setFloat("base", 0.25F); + fx.setFloat("max", 2.5F); + fx.setInteger("life", 100 + worldObj.rand.nextInt(20)); + fx.setInteger("color",0x202020); + fx.setDouble("posX", xCoord + 0.5 - rot.offsetX); + fx.setDouble("posY", yCoord + 3); + fx.setDouble("posZ", zCoord + 0.5 - rot.offsetZ); + MainRegistry.proxy.effectNT(fx); + } + } + } + } + + public static int getConsumption(int speed, int powerSaving) { + return (int) (consumption * Math.pow(speed + 1, 2)) / (powerSaving + 1); + } + + protected PyroOvenRecipe lastValidRecipe; + + public PyroOvenRecipe getMatchingRecipe() { + + if(lastValidRecipe != null && doesRecipeMatch(lastValidRecipe)) return lastValidRecipe; + + for(PyroOvenRecipe rec : PyroOvenRecipes.recipes) { + if(doesRecipeMatch(rec)) { + lastValidRecipe = rec; + return rec; + } + } + + return null; + } + + public boolean doesRecipeMatch(PyroOvenRecipe recipe) { + + if(recipe.inputFluid != null) { + if(tanks[0].getTankType() != recipe.inputFluid.type) return false; // recipe needs fluid, fluid doesn't match + } + if(recipe.inputItem != null) { + if(slots[1] == null) return false; // recipe needs item, no item present + if(!recipe.inputItem.matchesRecipe(slots[1], true)) return false; // recipe needs item, item doesn't match + } else { + if(slots[1] != null) return false; // recipe does not need item, but item is present + } + + return true; + } + + public boolean canProcess() { + int speed = upgradeManager.getLevel(UpgradeType.SPEED); + int powerSaving = upgradeManager.getLevel(UpgradeType.POWER); + if(power < this.getConsumption(speed, powerSaving)) return false; // not enough power + + PyroOvenRecipe recipe = this.getMatchingRecipe(); + if(recipe == null) return false; // no matching recipe + if(recipe.inputFluid != null && tanks[0].getFill() < recipe.inputFluid.fill) return false; // not enough input fluid + if(recipe.inputItem != null && slots[1].stackSize < recipe.inputItem.stacksize) return false; // not enough input item + if(recipe.outputFluid != null && recipe.outputFluid.fill + tanks[1].getFill() > tanks[1].getMaxFill() && recipe.outputFluid.type == tanks[1].getTankType()) return false; // too much output fluid + if(recipe.outputItem != null && slots[2] != null && recipe.outputItem.stackSize + slots[2].stackSize > slots[2].getMaxStackSize()) return false; // too much output item + if(recipe.outputItem != null && slots[2] != null && recipe.outputItem.getItem() != slots[2].getItem()) return false; // output item doesn't match + if(recipe.outputItem != null && slots[2] != null && recipe.outputItem.getItemDamage() != slots[2].getItemDamage()) return false; // output meta doesn't match + + return true; + } + + public void finishRecipe(PyroOvenRecipe recipe) { + if(recipe.outputItem != null) { + if(slots[2] == null) { + slots[2] = recipe.outputItem.copy(); + } else { + slots[2].stackSize += recipe.outputItem.stackSize; + } + } + if(recipe.outputFluid != null) { + tanks[1].setTankType(recipe.outputFluid.type); + tanks[1].setFill(tanks[1].getFill() + recipe.outputFluid.fill); + } + if(recipe.inputItem != null) { + this.decrStackSize(1, recipe.inputItem.stacksize); + } + if(recipe.inputFluid != null) { + tanks[0].setFill(tanks[0].getFill() - recipe.inputFluid.fill); + } + } + + protected DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 3, rot), + new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 3, rot), + new DirPos(xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, rot), + new DirPos(xCoord - dir.offsetX * 1 + rot.offsetX * 3, yCoord, zCoord - dir.offsetZ * 1 + rot.offsetZ * 3, rot), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX * 3, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 3, rot), + }; + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + buf.writeLong(power); + buf.writeBoolean(isVenting); + buf.writeBoolean(isProgressing); + buf.writeFloat(progress); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + power = buf.readLong(); + isVenting = buf.readBoolean(); + isProgressing = buf.readBoolean(); + progress = buf.readFloat(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.tanks[0].readFromNBT(nbt, "t0"); + this.tanks[1].readFromNBT(nbt, "t1"); + this.progress = nbt.getFloat("prog"); + this.power = nbt.getLong("power"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + this.tanks[0].writeToNBT(nbt, "t0"); + this.tanks[1].writeToNBT(nbt, "t1"); + nbt.setFloat("prog", progress); + nbt.setLong("power", power); + } + + @Override public int[] getAccessibleSlotsFromSide(int meta) { return new int[] { 1, 2 }; } + @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { return i == 1; } + @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { return i == 2; } + + @Override + public void pollute(PollutionType type, float amount) { + FluidTank tank = type == PollutionType.SOOT ? smoke : type == PollutionType.HEAVYMETAL ? smoke_leaded : smoke_poison; + + int fluidAmount = (int) Math.ceil(amount * 100); + tank.setFill(tank.getFill() + fluidAmount); + + if(tank.getFill() > tank.getMaxFill()) { + int overflow = tank.getFill() - tank.getMaxFill(); + tank.setFill(tank.getMaxFill()); + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, type, overflow / 100F); + this.isVenting = true; + } + } + + @Override public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.pyroOperate", xCoord, yCoord, zCoord, 1.0F, 15F, 1.0F, 20); + } + + @Override public void onChunkUnload() { + if(audio != null) { audio.stopSound(); audio = null; } + } + + @Override public void invalidate() { + super.invalidate(); + if(audio != null) { audio.stopSound(); audio = null; } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + if(bb == null) bb = AxisAlignedBB.getBoundingBox(xCoord - 3, yCoord, zCoord - 3, xCoord + 4, yCoord + 3.5, zCoord + 4); + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + + @Override public FluidTank[] getAllTanks() { return new FluidTank[] { tanks[0], tanks[1], smoke }; } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { tanks[1], smoke }; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0] }; } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerPyroOven(player.inventory, this); } + @Override public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIPyroOven(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_pyrooven)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (Math.pow(level + 1, 2) * 100 - 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); + return upgrades; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 27e48d4a1..b474ce248 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -9,10 +9,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; @@ -28,20 +24,16 @@ import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.IOverpressurable; -import com.hbm.tileentity.IPersistentNBT; -import com.hbm.tileentity.IRepairable; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.*; import com.hbm.util.ParticleUtil; import com.hbm.util.Tuple.Quintet; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -49,22 +41,17 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyReceiverMK2, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider, IFluidCopiable { public long power = 0; public int sulfur = 0; public static final int maxSulfur = 100; public static final long maxPower = 1000; public FluidTank[] tanks; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - public List list3 = new ArrayList(); - public List list4 = new ArrayList(); public boolean hasExploded = false; public boolean onFire = false; @@ -77,13 +64,13 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements private static final int[] slot_access = new int[] {11}; public TileEntityMachineRefinery() { - super(12); + super(13); tanks = new FluidTank[5]; - tanks[0] = new FluidTank(Fluids.HOTOIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.HEAVYOIL, 24_000, 1); - tanks[2] = new FluidTank(Fluids.NAPHTHA, 24_000, 2); - tanks[3] = new FluidTank(Fluids.LIGHTOIL, 24_000, 3); - tanks[4] = new FluidTank(Fluids.PETROLEUM, 24_000, 4); + tanks[0] = new FluidTank(Fluids.HOTOIL, 64_000); + tanks[1] = new FluidTank(Fluids.HEAVYOIL, 24_000); + tanks[2] = new FluidTank(Fluids.NAPHTHA, 24_000); + tanks[3] = new FluidTank(Fluids.LIGHTOIL, 24_000); + tanks[4] = new FluidTank(Fluids.PETROLEUM, 24_000); } @Override @@ -164,14 +151,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - if(worldObj.getTotalWorldTime() % 10 == 0) { - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); - fillFluidInit(tanks[3].getTankType()); - fillFluidInit(tanks[4].getTankType()); - } - + tanks[0].setType(12, slots); tanks[0].loadTank(1, 2, slots); refine(); @@ -209,14 +189,9 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } } } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - for(int i = 0; i < 5; i++) tanks[i].writeToNBT(data, "" + i); - data.setBoolean("exploded", hasExploded); - data.setBoolean("onFire", onFire); - data.setBoolean("isOn", this.isOn); - this.networkPack(data, 150); + + this.networkPackNT(150); + } else { if(this.isOn) audioTime = 20; @@ -231,7 +206,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -268,29 +244,39 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements audio = null; } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); - this.hasExploded = nbt.getBoolean("exploded"); - this.onFire = nbt.getBoolean("onFire"); - this.isOn = nbt.getBoolean("isOn"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + for(int i = 0; i < 5; i++) tanks[i].serialize(buf); + buf.writeBoolean(this.hasExploded); + buf.writeBoolean(this.onFire); + buf.writeBoolean(this.isOn); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + for(int i = 0; i < 5; i++) tanks[i].deserialize(buf); + this.hasExploded = buf.readBoolean(); + this.onFire = buf.readBoolean(); + this.isOn = buf.readBoolean(); } private void refine() { Quintet refinery = RefineryRecipes.getRefinery(tanks[0].getTankType()); - - if(refinery == null) //usually not possible + if(refinery == null) { + for(int i = 1; i < 5; i++) tanks[i].setTankType(Fluids.NONE); return; + } FluidStack[] stacks = new FluidStack[] {refinery.getV(), refinery.getW(), refinery.getX(), refinery.getY()}; - for(int i = 0; i < stacks.length; i++) - tanks[i + 1].setTankType(stacks[i].type); + for(int i = 0; i < stacks.length; i++) tanks[i + 1].setTankType(stacks[i].type); - if(power < 5 || tanks[0].getFill() < 100) - return; + if(power < 5 || tanks[0].getFill() < 100) return; for(int i = 0; i < stacks.length; i++) { if(tanks[i + 1].getFill() + stacks[i].fill > tanks[i + 1].getMaxFill()) { @@ -301,8 +287,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements this.isOn = true; tanks[0].setFill(tanks[0].getFill() - 100); - for(int i = 0; i < stacks.length; i++) - tanks[i + 1].setFill(tanks[i + 1].getFill() + stacks[i].fill); + for(int i = 0; i < stacks.length; i++) tanks[i + 1].setFill(tanks[i + 1].getFill() + stacks[i].fill); this.sulfur++; @@ -327,7 +312,6 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); - this.power -= 5; } @@ -370,88 +354,6 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements public long getMaxPower() { return maxPower; } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 2, getTact(), type); - - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public int getFluidFill(FluidType type) { - - for(int i = 0; i < 5; i++) { - if(type == tanks[i].getTankType()) { - return tanks[i].getFill(); - } - } - - return 0; - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - for(int i = 0; i < 5; i++) { - if(type == tanks[i].getTankType()) { - tanks[i].setFill(fill); - } - } - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[1].getTankType()) return list1; - if(type == tanks[2].getTankType()) return list2; - if(type == tanks[3].getTankType()) return list3; - if(type == tanks[4].getTankType()) return list4; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[1].getTankType()) list1.clear(); - if(type == tanks[2].getTankType()) list2.clear(); - if(type == tanks[3].getTankType()) list3.clear(); - if(type == tanks[4].getTankType()) list4.clear(); - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 5 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 5 && tanks[index] != null) - tanks[index].setTankType(type); - } @Override public AxisAlignedBB getRenderBoundingBox() { @@ -464,28 +366,6 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements return 65536.0D; } - @Override - public boolean hasPermission(EntityPlayer player) { - return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 25; - } - - @Override - public void receiveControl(NBTTagCompound data) { - - if(data.hasKey("toggle")) { - - for(DirPos pos : getConPos()) { - this.tryUnsubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ()); - } - - if(tanks[0].getTankType() == Fluids.HOTOIL) { - tanks[0].setTankType(Fluids.HOTCRACKOIL); - } else { - tanks[0].setTankType(Fluids.HOTOIL); - } - } - } - @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { tanks[1], tanks[2], tanks[3], tanks[4] }; @@ -584,7 +464,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineRefinery(player.inventory, this); } + } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index c40e904ca..67cc1e661 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -1,47 +1,57 @@ package com.hbm.tileentity.machine.oil; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.inventory.UpgradeManager; +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerSolidifier; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUISolidifier; import com.hbm.inventory.recipes.SolidificationRecipes; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable { public long power; public static final long maxPower = 100000; public static final int usageBase = 500; public int usage; public int progress; - public static final int processTimeBase = 200; + public static final int processTimeBase = 100; public int processTime; - + public FluidTank tank; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityMachineSolidifier() { super(5); - tank = new FluidTank(Fluids.NONE, 24000, 0); + tank = new FluidTank(Fluids.NONE, 24_000); } @Override @@ -51,42 +61,36 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement @Override public void updateEntity() { - + if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); tank.setType(4, slots); - tank.updateTank(this); this.updateConnections(); - UpgradeManager.eval(slots, 2, 3); - int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - int power = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + upgradeManager.checkSlots(this, slots, 2, 3); + int speed = upgradeManager.getLevel(UpgradeType.SPEED); + int power = upgradeManager.getLevel(UpgradeType.POWER); this.processTime = processTimeBase - (processTimeBase / 4) * speed; this.usage = (usageBase + (usageBase * speed)) / (power + 1); - + if(this.canProcess()) this.process(); else this.progress = 0; - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setInteger("progress", this.progress); - data.setInteger("usage", this.usage); - data.setInteger("processTime", this.processTime); - this.networkPack(data, 50); + + this.networkPackNT(50); } } - + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - + private DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord, yCoord + 4, zCoord, Library.POS_Y), @@ -107,77 +111,89 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement 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"); - this.progress = nbt.getInteger("progress"); - this.usage = nbt.getInteger("usage"); - this.processTime = nbt.getInteger("processTime"); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeInt(this.progress); + buf.writeInt(this.usage); + buf.writeInt(this.processTime); + tank.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.progress = buf.readInt(); + this.usage = buf.readInt(); + this.processTime = buf.readInt(); + tank.deserialize(buf); + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); tank.readFromNBT(nbt, "tank"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -199,37 +215,11 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getMaxFill() : 0; - } - AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -240,10 +230,10 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement zCoord + 2 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -267,7 +257,43 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUISolidifier(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_solidifier)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + return upgrades; + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.usage); + } + + @Override + public FluidTank getTankToPaste() { + return tank; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index 9fc45de36..3653b2138 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine.oil; +import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerMachineVacuumDistill; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -9,16 +10,18 @@ import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Quartet; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; @@ -26,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { +public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, IFluidCopiable { public long power; public static final long maxPower = 1_000_000; @@ -38,7 +41,7 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem public boolean isOn; public TileEntityMachineVacuumDistill() { - super(11); + super(12); this.tanks = new FluidTank[5]; this.tanks[0] = new FluidTank(Fluids.OIL, 64_000).withPressure(2); @@ -62,6 +65,7 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); + tanks[0].setType(11, slots); tanks[0].loadTank(1, 2, slots); refine(); @@ -78,12 +82,9 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem } } } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); - data.setBoolean("isOn", this.isOn); - for(int i = 0; i < 5; i++) tanks[i].writeToNBT(data, "" + i); - this.networkPack(data, 150); + + this.networkPackNT(150); + } else { if(this.isOn) audioTime = 20; @@ -98,7 +99,8 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -135,30 +137,42 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem audio = null; } } - + @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.isOn = nbt.getBoolean("isOn"); - for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(this.power); + buf.writeBoolean(this.isOn); + for(int i = 0; i < 5; i++) tanks[i].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.isOn = buf.readBoolean(); + for(int i = 0; i < 5; i++) tanks[i].deserialize(buf); } private void refine() { + Quartet refinery = RefineryRecipes.getVacuum(tanks[0].getTankType()); + if(refinery == null) { + for(int i = 1; i < 5; i++) tanks[i].setTankType(Fluids.NONE); + return; + } + + FluidStack[] stacks = new FluidStack[] {refinery.getW(), refinery.getX(), refinery.getY(), refinery.getZ()}; + for(int i = 0; i < stacks.length; i++) tanks[i + 1].setTankType(stacks[i].type); if(power < 10_000) return; if(tanks[0].getFill() < 100) return; - if(tanks[1].getFill() + RefineryRecipes.vac_frac_heavy > tanks[1].getMaxFill()) return; - if(tanks[2].getFill() + RefineryRecipes.vac_frac_reform > tanks[2].getMaxFill()) return; - if(tanks[3].getFill() + RefineryRecipes.vac_frac_light > tanks[3].getMaxFill()) return; - if(tanks[4].getFill() + RefineryRecipes.vac_frac_sour > tanks[4].getMaxFill()) return; + for(int i = 0; i < stacks.length; i++) if(tanks[i + 1].getFill() + stacks[i].fill > tanks[i + 1].getMaxFill()) return; this.isOn = true; power -= 10_000; tanks[0].setFill(tanks[0].getFill() - 100); - tanks[1].setFill(tanks[1].getFill() + RefineryRecipes.vac_frac_heavy); - tanks[2].setFill(tanks[2].getFill() + RefineryRecipes.vac_frac_reform); - tanks[3].setFill(tanks[3].getFill() + RefineryRecipes.vac_frac_light); - tanks[4].setFill(tanks[4].getFill() + RefineryRecipes.vac_frac_sour); + + for(int i = 0; i < stacks.length; i++) tanks[i + 1].setFill(tanks[i + 1].getFill() + stacks[i].fill); } private void updateConnections() { @@ -291,7 +305,7 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineVacuumDistill(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 11d36657f..502d1bbbf 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -1,32 +1,26 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; -import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.UpgradeManager; -import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; -import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.IPersistentNBT; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.*; import com.hbm.util.BobMathUtil; import com.hbm.util.Tuple; import com.hbm.util.Tuple.Triplet; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -34,36 +28,36 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider { +public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable { public int indicator = 0; - + public long power; - - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); + public FluidTank[] tanks; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(); + public TileEntityOilDrillBase() { super(8); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.OIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.GAS, 64_000, 1); + tanks[0] = new FluidTank(Fluids.OIL, 64_000); + tanks[1] = new FluidTank(Fluids.GAS, 64_000); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + this.power = nbt.getLong("power"); for(int i = 0; i < this.tanks.length; i++) this.tanks[i].readFromNBT(nbt, "t" + i); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setLong("power", power); for(int i = 0; i < this.tanks.length; i++) this.tanks[i].writeToNBT(nbt, "t" + i); @@ -71,10 +65,10 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple @Override public void writeNBT(NBTTagCompound nbt) { - + boolean empty = power == 0; for(FluidTank tank : tanks) if(tank.getFill() > 0) empty = false; - + if(!empty) { nbt.setLong("power", power); for(int i = 0; i < this.tanks.length; i++) { @@ -96,90 +90,89 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple @Override public void updateEntity() { - - if(!worldObj.isRemote) { - + + if (!worldObj.isRemote) { + this.updateConnections(); - + this.tanks[0].unloadTank(1, 2, slots); this.tanks[1].unloadTank(3, 4, slots); - - UpgradeManager.eval(slots, 5, 7); - this.speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - this.energyLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - this.overLevel = Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) + 1; - int abLevel = Math.min(UpgradeManager.getLevel(UpgradeType.AFTERBURN), 3); - - for(int i = 0; i < tanks.length; i++) { - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - + + upgradeManager.checkSlots(this, slots, 5, 7); + this.speedLevel = upgradeManager.getLevel(UpgradeType.SPEED); + this.energyLevel = upgradeManager.getLevel(UpgradeType.POWER); + this.overLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE) + 1; + int abLevel = upgradeManager.getLevel(UpgradeType.AFTERBURN); + int toBurn = Math.min(tanks[1].getFill(), abLevel * 10); - - if(toBurn > 0) { + + if (toBurn > 0) { tanks[1].setFill(tanks[1].getFill() - toBurn); this.power += toBurn * 5; - - if(this.power > this.getMaxPower()) + + if (this.power > this.getMaxPower()) this.power = this.getMaxPower(); } - + power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); - if(this.worldObj.getTotalWorldTime() % 10 == 0) - this.fillFluidInit(tanks[0].getTankType()); - if(this.worldObj.getTotalWorldTime() % 10 == 5) - this.fillFluidInit(tanks[1].getTankType()); - - for(DirPos pos : getConPos()) { - if(tanks[0].getFill() > 0) this.sendFluid(tanks[0], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + for (DirPos pos : getConPos()) { + if (tanks[0].getFill() > 0) + this.sendFluid(tanks[0], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if (tanks[1].getFill() > 0) + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - - if(this.power >= this.getPowerReqEff() && this.tanks[0].getFill() < this.tanks[0].getMaxFill() && this.tanks[1].getFill() < this.tanks[1].getMaxFill()) { - + + if (this.power >= this.getPowerReqEff() && this.tanks[0].getFill() < this.tanks[0].getMaxFill() && this.tanks[1].getFill() < this.tanks[1].getMaxFill()) { + this.power -= this.getPowerReqEff(); - - if(worldObj.getTotalWorldTime() % getDelayEff() == 0) { + + if (worldObj.getTotalWorldTime() % getDelayEff() == 0) { this.indicator = 0; - - for(int y = yCoord - 1; y >= getDrillDepth(); y--) { - - if(worldObj.getBlock(xCoord, y, zCoord) != ModBlocks.oil_pipe) { - - if(trySuck(y)) { + + for (int y = yCoord - 1; y >= getDrillDepth(); y--) { + + if (worldObj.getBlock(xCoord, y, zCoord) != ModBlocks.oil_pipe) { + + if (trySuck(y)) { break; } else { tryDrill(y); break; } } - - if(y == getDrillDepth()) + + if (y == getDrillDepth()) this.indicator = 1; } } - + } else { this.indicator = 2; } - - this.sendUpdate(); + + this.networkPackNT(25); } } - - public void sendUpdate() { - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("indicator", this.indicator); - this.networkPack(data, 25); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeLong(this.power); + buf.writeInt(this.indicator); + for (FluidTank tank : tanks) tank.serialize(buf); } - - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.indicator = nbt.getInteger("indicator"); + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.power = buf.readLong(); + this.indicator = buf.readInt(); + for (FluidTank tank : tanks) tank.deserialize(buf); } - + public boolean canPump() { return true; } @@ -187,27 +180,27 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple @Override public void setInventorySlotContents(int i, ItemStack stack) { super.setInventorySlotContents(i, stack); - + if(stack != null && i >= 5 && i <= 7 && stack.getItem() instanceof ItemMachineUpgrade) worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); } - + public int getPowerReqEff() { int req = this.getPowerReq(); return (req + (req / 4 * this.speedLevel) - (req / 4 * this.energyLevel)) * this.overLevel; } - + public int getDelayEff() { int delay = getDelay(); return Math.max((delay - (delay / 4 * this.speedLevel) + (delay / 10 * this.energyLevel)) / this.overLevel, 1); } - + public abstract int getPowerReq(); public abstract int getDelay(); - + public void tryDrill(int y) { Block b = worldObj.getBlock(xCoord, y, zCoord); - + if(b.getExplosionResistance(null) < 1000) { onDrill(y); worldObj.setBlock(xCoord, y, zCoord, ModBlocks.oil_pipe); @@ -215,130 +208,74 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.indicator = 2; } } - + public void onDrill(int y) { } - + public int getDrillDepth() { return 5; } - + public boolean trySuck(int y) { - + Block b = worldObj.getBlock(xCoord, y, zCoord); - + if(!canSuckBlock(b)) return false; - + if(!this.canPump()) return true; - + trace.clear(); - + return suckRec(xCoord, y, zCoord, 0); } - + public boolean canSuckBlock(Block b) { return b == ModBlocks.ore_oil || b == ModBlocks.ore_oil_empty; } - + protected HashSet> trace = new HashSet(); - + public boolean suckRec(int x, int y, int z, int layer) { - + Triplet pos = new Triplet(x, y, z); - + if(trace.contains(pos)) return false; - + trace.add(pos); - + if(layer > 64) return false; - + Block b = worldObj.getBlock(x, y, z); - + if(b == ModBlocks.ore_oil || b == ModBlocks.ore_bedrock_oil) { doSuck(x, y, z); return true; } - + if(b == ModBlocks.ore_oil_empty) { ForgeDirection[] dirs = BobMathUtil.getShuffledDirs(); - + for(ForgeDirection dir : dirs) { if(suckRec(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, layer + 1)) return true; } } - + return false; } - + public void doSuck(int x, int y, int z) { - + if(worldObj.getBlock(x, y, z) == ModBlocks.ore_oil) { onSuck(x, y, z); } } - + public abstract void onSuck(int x, int y, int z); - @Override - public boolean getTact() { - return this.worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(type == tank.getTankType()) { - return tank.getFill(); - } - } - - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - for(FluidTank tank : tanks) { - if(type == tank.getTankType()) { - tank.setFill(i); - return; - } - } - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[0].getTankType()) return this.list1; - if(type == tanks[1].getTankType()) return this.list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[0].getTankType()) list1.clear(); - if(type == tanks[1].getTankType()) list2.clear(); - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < tanks.length && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < tanks.length && tanks[index] != null) - tanks[index].setTankType(type); - } - @Override public void setPower(long i) { this.power = i; @@ -374,7 +311,7 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple public FluidTank[] getAllTanks() { return tanks; } - + public abstract DirPos[] getConPos(); protected void updateConnections() { @@ -382,4 +319,24 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE || type == UpgradeType.AFTERBURN; + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.AFTERBURN, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); + return upgrades; + } + + @Override + public FluidTank getTankToPaste() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java index 8c06fd658..0463be416 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java @@ -1,96 +1,49 @@ package com.hbm.tileentity.machine.pile; -import java.util.List; -import java.util.Random; +import com.hbm.handler.neutron.NeutronNodeWorld; +import com.hbm.handler.neutron.PileNeutronHandler; +import com.hbm.handler.neutron.PileNeutronHandler.PileNeutronStream; +import com.hbm.handler.neutron.PileNeutronHandler.PileNeutronNode; -import com.hbm.blocks.ModBlocks; -import com.hbm.util.ContaminationUtil; -import com.hbm.util.ContaminationUtil.ContaminationType; -import com.hbm.util.ContaminationUtil.HazardType; - -import api.hbm.block.IPileNeutronReceiver; -import net.minecraft.block.Block; -import net.minecraft.entity.EntityLivingBase; +import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; public abstract class TileEntityPileBase extends TileEntity { @Override public abstract void updateEntity(); - - protected void castRay(int flux, int range) { - Random rand = worldObj.rand; - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ((float)(rand.nextDouble() * Math.PI * 2D)); - vec.rotateAroundY((float)(rand.nextDouble() * Math.PI * 2D)); - vec.rotateAroundX((float)(rand.nextDouble() * Math.PI * 2D)); - - int prevX = xCoord; - int prevY = yCoord; - int prevZ = zCoord; - - for(float i = 1; i <= range; i += 0.5F) { - int x = (int)Math.floor(xCoord + 0.5 + vec.xCoord * i); - int y = (int)Math.floor(yCoord + 0.5 + vec.yCoord * i); - int z = (int)Math.floor(zCoord + 0.5 + vec.zCoord * i); - - if(x == prevX && y == prevY && z == prevZ) - continue; + @Override + public void invalidate() { + super.invalidate(); - prevX = x; - prevY = y; - prevZ = z; - - /*if(i == range || i == 1) { - NBTTagCompound data2 = new NBTTagCompound(); - data2.setString("type", "vanillaExt"); - data2.setString("mode", i == range ? "greendust" : - i == 1 ? "reddust" : "bluedust"); - data2.setDouble("posX", xCoord + 0.5 + vec.xCoord * i); - data2.setDouble("posY", yCoord + 0.5 + vec.yCoord * i); - data2.setDouble("posZ", zCoord + 0.5 + vec.zCoord * i); - MainRegistry.proxy.effectNT(data2); - }*/ - - Block b = worldObj.getBlock(x, y, z); - - if(b == ModBlocks.concrete || b == ModBlocks.concrete_smooth || b == ModBlocks.concrete_asbestos || b == ModBlocks.concrete_colored || b == ModBlocks.brick_concrete) - flux *= 0.25; - - if(b == ModBlocks.block_boron) - return; - - int meta = worldObj.getBlockMetadata(x, y, z); - - if(b == ModBlocks.block_graphite_rod && (meta & 8) == 0) - return; - - TileEntity te = worldObj.getTileEntity(x, y, z); - - if(te instanceof IPileNeutronReceiver) { - - //this part throttles neutron efficiency for reactions that are way too close, efficiency reaches 100% after 1.5 meters - //This entire time, this multiplier has been using the max distance, not the actual one, meaning efficency has always been 100% - //float mult = Math.min((float)i / 1.5F, 1F); - //int n = (int)(flux * mult); - - IPileNeutronReceiver rec = (IPileNeutronReceiver) te; - rec.receiveNeutrons(flux); - - if(b != ModBlocks.block_graphite_detector || (meta & 8) == 0) - return; - } - - List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x + 0.5, y + 0.5, z + 0.5, x + 0.5, y + 0.5, z + 0.5)); - - if(entities != null) - for(EntityLivingBase e : entities) { - - ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, flux / 4F); - } + NeutronNodeWorld.removeNode(new BlockPos(this)); + } + + protected void castRay(int flux) { + + BlockPos pos = new BlockPos(this); + + if (flux == 0) { + // simple way to remove the node from the cache when no flux is going into it! + NeutronNodeWorld.removeNode(pos); + return; } + + PileNeutronNode node = (PileNeutronNode) NeutronNodeWorld.getNode(pos); + + if(node == null) { + node = PileNeutronHandler.makeNode(this); + NeutronNodeWorld.addNode(node); + } + + Vec3 neutronVector = Vec3.createVectorHelper(1, 0, 0); + + neutronVector.rotateAroundZ((float)(Math.PI * 2D * worldObj.rand.nextDouble())); + neutronVector.rotateAroundY((float)(Math.PI * 2D * worldObj.rand.nextDouble())); + neutronVector.rotateAroundX((float)(Math.PI * 2D * worldObj.rand.nextDouble())); + + new PileNeutronStream(node, neutronVector, flux); } } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java index 1bbe94acb..c1f775e0e 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java @@ -35,7 +35,7 @@ public class TileEntityPileBreedingFuel extends TileEntityPileBase implements IP return; for(int i = 0; i < 2; i++) - this.castRay(1, 5); + this.castRay(1); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java index 15233ad0c..2d44341e6 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java @@ -2,9 +2,8 @@ package com.hbm.tileentity.machine.pile; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import api.hbm.block.IPileNeutronReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -22,17 +21,17 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr @Override public void updateEntity() { - + if(!worldObj.isRemote) { dissipateHeat(); checkRedstone(react()); transmute(); - + if(this.heat >= this.maxHeat) { worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 4, true, true); worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.gas_radon_dense); } - + if(worldObj.rand.nextFloat() * 2F <= this.heat / (float)this.maxHeat) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaExt"); @@ -40,55 +39,54 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr data.setDouble("mY", 0.05); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.25 + worldObj.rand.nextDouble() * 0.5, yCoord + 1, zCoord + 0.25 + worldObj.rand.nextDouble() * 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 20)); - MainRegistry.proxy.effectNT(data); } - + if(this.progress >= this.maxProgress) { worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.block_graphite_plutonium, this.getBlockMetadata() & 7, 3); } } - + } - + private void dissipateHeat() { this.heat -= (this.getBlockMetadata() & 4) == 4 ? heat * 0.065 : heat * 0.05; //remove 5% of the stored heat per tick; 6.5% for windscale } - + private int react() { - + int reaction = (int) (this.neutrons * (1D - ((double)this.heat / (double)this.maxHeat) * 0.5D)); //max heat reduces reaction by 50% due to thermal expansion - + this.lastNeutrons = this.neutrons; this.neutrons = 0; - + int lastProgress = this.progress; - + this.progress += reaction; - + if(reaction <= 0) return lastProgress; - + this.heat += reaction; - + for(int i = 0; i < 12; i++) - this.castRay((int) Math.max(reaction * 0.25, 1), 5); - + this.castRay((int) Math.max(reaction * 0.25, 1)); + return lastProgress; } - + private void checkRedstone(int lastProgress) { int lastLevel = MathHelper.clamp_int((lastProgress * 16) / maxProgress, 0, 15); int newLevel = MathHelper.clamp_int((progress * 16) / maxProgress, 0, 15); if(lastLevel != newLevel) worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, this.getBlockType()); } - + private void transmute() { - + if((this.getBlockMetadata() & 8) == 8) { if(this.progress < this.maxProgress - 1000) //Might be subject to change, but 1000 seems like a good number. this.progress = maxProgress - 1000; - + return; } else if(this.progress >= maxProgress - 1000) { worldObj.setBlockMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata() | 8, 3); @@ -100,7 +98,7 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr public void receiveNeutrons(int n) { this.neutrons += n; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -108,7 +106,7 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr this.progress = nbt.getInteger("progress"); this.neutrons = nbt.getInteger("neutrons"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java index c297f9dfb..6b38b7875 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java @@ -12,7 +12,7 @@ public class TileEntityPileSource extends TileEntityPileBase { int n = this.getBlockType() == ModBlocks.block_graphite_source ? 1 : 2; for(int i = 0; i < 12; i++) { - this.castRay(n, 5); + this.castRay(n); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/IRBMKFluxReceiver.java b/src/main/java/com/hbm/tileentity/machine/rbmk/IRBMKFluxReceiver.java index 91824df0a..2b8464354 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/IRBMKFluxReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/IRBMKFluxReceiver.java @@ -1,5 +1,7 @@ package com.hbm.tileentity.machine.rbmk; +import com.hbm.handler.neutron.NeutronStream; + public interface IRBMKFluxReceiver { public enum NType { @@ -14,5 +16,5 @@ public interface IRBMKFluxReceiver { } } - public void receiveFlux(NType type, double flux); + public void receiveFlux(NeutronStream stream); } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java index a93498b6f..98bf32af6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java @@ -1,216 +1,311 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.config.GeneralConfig; +import com.hbm.main.MainRegistry; import com.hbm.util.GameRuleHelper; -import net.minecraft.util.MathHelper; +import com.hbm.util.Tuple; import net.minecraft.world.GameRules; import net.minecraft.world.World; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + public class RBMKDials { - public static final String KEY_SAVE_DIALS = "dialSaveDials"; - - public static final String KEY_PASSIVE_COOLING = "dialPassiveCooling"; - public static final String KEY_COLUMN_HEAT_FLOW = "dialColumnHeatFlow"; - public static final String KEY_FUEL_DIFFUSION_MOD = "dialDiffusionMod"; - public static final String KEY_HEAT_PROVISION = "dialHeatProvision"; - public static final String KEY_COLUMN_HEIGHT = "dialColumnHeight"; - public static final String KEY_PERMANENT_SCRAP = "dialEnablePermaScrap"; - public static final String KEY_BOILER_HEAT_CONSUMPTION = "dialBoilerHeatConsumption"; - public static final String KEY_CONTROL_SPEED_MOD = "dialControlSpeed"; - public static final String KEY_REACTIVITY_MOD = "dialReactivityMod"; - public static final String KEY_OUTGASSER_MOD = "dialOutgasserSpeedMod"; - public static final String KEY_SURGE_MOD = "dialControlSurgeMod"; - public static final String KEY_FLUX_RANGE = "dialFluxRange"; - public static final String KEY_REASIM_RANGE = "dialReasimRange"; - public static final String KEY_REASIM_COUNT = "dialReasimCount"; - public static final String KEY_REASIM_MOD = "dialReasimOutputMod"; - public static final String KEY_REASIM_BOILERS = "dialReasimBoilers"; - public static final String KEY_REASIM_BOILER_SPEED = "dialReasimBoilerSpeed"; - public static final String KEY_DISABLE_MELTDOWNS = "dialDisableMeltdowns"; - public static final String KEY_ENABLE_MELTDOWN_OVERPRESSURE = "dialEnableMeltdownOverpressure"; - - public static void createDials(World world) { - GameRules rules = world.getGameRules(); - - if(!rules.getGameRuleBooleanValue(KEY_SAVE_DIALS)) { - rules.setOrCreateGameRule(KEY_PASSIVE_COOLING, "1.0"); - rules.setOrCreateGameRule(KEY_COLUMN_HEAT_FLOW, "0.2"); - rules.setOrCreateGameRule(KEY_FUEL_DIFFUSION_MOD, "1.0"); - rules.setOrCreateGameRule(KEY_HEAT_PROVISION, "0.2"); - rules.setOrCreateGameRule(KEY_COLUMN_HEIGHT, "4"); - rules.setOrCreateGameRule(KEY_PERMANENT_SCRAP, "true"); - rules.setOrCreateGameRule(KEY_BOILER_HEAT_CONSUMPTION, "0.1"); - rules.setOrCreateGameRule(KEY_CONTROL_SPEED_MOD, "1.0"); - rules.setOrCreateGameRule(KEY_REACTIVITY_MOD, "1.0"); - rules.setOrCreateGameRule(KEY_SAVE_DIALS, "true"); - rules.setOrCreateGameRule(KEY_OUTGASSER_MOD, "1.0"); - rules.setOrCreateGameRule(KEY_SURGE_MOD, "1.0"); - rules.setOrCreateGameRule(KEY_FLUX_RANGE, "5"); - rules.setOrCreateGameRule(KEY_REASIM_RANGE, "10"); - rules.setOrCreateGameRule(KEY_REASIM_COUNT, "6"); - rules.setOrCreateGameRule(KEY_REASIM_MOD, "1.0"); - rules.setOrCreateGameRule(KEY_REASIM_BOILERS, "false"); - rules.setOrCreateGameRule(KEY_REASIM_BOILER_SPEED, "0.05"); - rules.setOrCreateGameRule(KEY_DISABLE_MELTDOWNS, "false"); - rules.setOrCreateGameRule(KEY_ENABLE_MELTDOWN_OVERPRESSURE, "false"); + public enum RBMKKeys { + KEY_SAVE_DIALS("dialSaveDials", true), + KEY_PASSIVE_COOLING("dialPassiveCooling", 1.0), + KEY_COLUMN_HEAT_FLOW("dialColumnHeatFlow", 0.2), + KEY_FUEL_DIFFUSION_MOD("dialDiffusionMod", 1.0), + KEY_HEAT_PROVISION("dialHeatProvision", 0.2), + KEY_COLUMN_HEIGHT("dialColumnHeight", 4), + KEY_PERMANENT_SCRAP("dialEnablePermaScrap", true), + KEY_BOILER_HEAT_CONSUMPTION("dialBoilerHeatConsumption", 0.1), + KEY_CONTROL_SPEED_MOD("dialControlSpeed", 1.0), + KEY_REACTIVITY_MOD("dialReactivityMod", 1.0), + KEY_OUTGASSER_MOD("dialOutgasserSpeedMod", 1.0), + KEY_SURGE_MOD("dialControlSurgeMod", 1.0), + KEY_FLUX_RANGE("dialFluxRange", 5), + KEY_REASIM_RANGE("dialReasimRange", 10), + KEY_REASIM_COUNT("dialReasimCount", 6), + KEY_REASIM_MOD("dialReasimOutputMod", 1.0), + KEY_REASIM_BOILERS("dialReasimBoilers", false), + KEY_REASIM_BOILER_SPEED("dialReasimBoilerSpeed", 0.05), + KEY_DISABLE_MELTDOWNS("dialDisableMeltdowns", false), + KEY_ENABLE_MELTDOWN_OVERPRESSURE("dialEnableMeltdownOverpressure", false), + KEY_MODERATOR_EFFICIENCY("dialModeratorEfficiency", 1.0), + KEY_ABSORBER_EFFICIENCY("dialAbsorberEfficiency", 1.0), + KEY_REFLECTOR_EFFICIENCY("dialReflectorEfficiency", 1.0); + + public final String keyString; + public final Object defValue; + + RBMKKeys(String key, Object def) { + keyString = key; + defValue = def; } } - + + public static HashMap>> gameRules = new HashMap<>(); + + public static void createDials(World world) { + createDials(world, false); + } + + public static void createDials(World world, boolean forceRecreate) { + GameRules rules = world.getGameRules(); + + for(RBMKKeys key : RBMKKeys.values()) + gameRules.put(key, new ArrayList<>()); + refresh(world); + + if(!rules.getGameRuleBooleanValue(RBMKKeys.KEY_SAVE_DIALS.keyString) || forceRecreate) { + for(RBMKKeys key : RBMKKeys.values()) + rules.setOrCreateGameRule(key.keyString, String.valueOf(key.defValue)); + } + } + + + /** + * Refresh all gamerules. + * @param world World to refresh for. + */ + public static void refresh(World world) { + List> toRemove = new ArrayList<>(); + for(List> values : gameRules.values()) { + + for(Tuple.Pair rulePair : values) + if(rulePair.key == world) + toRemove.add(rulePair); + + for(Tuple.Pair pair : toRemove) + values.remove(pair); + + toRemove.clear(); + } + + gameRules.get(RBMKKeys.KEY_PASSIVE_COOLING).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_PASSIVE_COOLING, 0.0D))); + gameRules.get(RBMKKeys.KEY_COLUMN_HEAT_FLOW).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_COLUMN_HEAT_FLOW, 0.0D, 1.0D))); + gameRules.get(RBMKKeys.KEY_FUEL_DIFFUSION_MOD).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_FUEL_DIFFUSION_MOD, 0.0D))); + gameRules.get(RBMKKeys.KEY_HEAT_PROVISION).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_HEAT_PROVISION, 0.0D, 1.0D))); + gameRules.get(RBMKKeys.KEY_COLUMN_HEIGHT).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedInt(world, RBMKKeys.KEY_COLUMN_HEIGHT, 2, 16) - 1)); + gameRules.get(RBMKKeys.KEY_PERMANENT_SCRAP).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_PERMANENT_SCRAP.keyString))); + gameRules.get(RBMKKeys.KEY_BOILER_HEAT_CONSUMPTION).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_BOILER_HEAT_CONSUMPTION, 0D))); + gameRules.get(RBMKKeys.KEY_CONTROL_SPEED_MOD).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_CONTROL_SPEED_MOD, 0.0D))); + gameRules.get(RBMKKeys.KEY_REACTIVITY_MOD).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_REACTIVITY_MOD, 0.0D))); + gameRules.get(RBMKKeys.KEY_OUTGASSER_MOD).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_OUTGASSER_MOD, 0.0D))); + gameRules.get(RBMKKeys.KEY_SURGE_MOD).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_SURGE_MOD, 0.0D))); + gameRules.get(RBMKKeys.KEY_FLUX_RANGE).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedInt(world, RBMKKeys.KEY_FLUX_RANGE, 1, 100))); + gameRules.get(RBMKKeys.KEY_REASIM_RANGE).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedInt(world, RBMKKeys.KEY_REASIM_RANGE, 1, 100))); + gameRules.get(RBMKKeys.KEY_REASIM_COUNT).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedInt(world, RBMKKeys.KEY_REASIM_COUNT, 1, 24))); + gameRules.get(RBMKKeys.KEY_REASIM_MOD).add(new Tuple.Pair<>(world, GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_REASIM_MOD, 0.0D))); + gameRules.get(RBMKKeys.KEY_REASIM_BOILERS).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_REASIM_BOILERS.keyString) || (GeneralConfig.enable528 && GeneralConfig.enable528ReasimBoilers))); + gameRules.get(RBMKKeys.KEY_REASIM_BOILER_SPEED).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_REASIM_BOILER_SPEED, 0.0D, 1.0D))); + gameRules.get(RBMKKeys.KEY_DISABLE_MELTDOWNS).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_DISABLE_MELTDOWNS.keyString))); + gameRules.get(RBMKKeys.KEY_ENABLE_MELTDOWN_OVERPRESSURE).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_ENABLE_MELTDOWN_OVERPRESSURE.keyString))); + gameRules.get(RBMKKeys.KEY_MODERATOR_EFFICIENCY).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_MODERATOR_EFFICIENCY, 0.0D, 1.0D))); + gameRules.get(RBMKKeys.KEY_ABSORBER_EFFICIENCY).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_ABSORBER_EFFICIENCY, 0.0D, 1.0D))); + gameRules.get(RBMKKeys.KEY_REFLECTOR_EFFICIENCY).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_REFLECTOR_EFFICIENCY, 0.0D, 1.0D))); + } + + /** + * Gets a gamerule from the internal cache. + * This will not work if called on the client. + * @param world World to get the gamerule for. + * @param rule Rule to get. + * @return The rule in an Object. + */ + public static Object getGameRule(World world, RBMKKeys rule) { + if(world.isRemote) { + MainRegistry.logger.error("Attempted to grab cached gamerules on client side, returning default value."); + MainRegistry.logger.error("Gamerule: {}, Default Value: {}.", rule.keyString, rule.defValue.toString()); + return rule.defValue; + } + return getGameRule(world, rule, false); + } + + public static Object getGameRule(World world, RBMKKeys rule, boolean isIteration) { + List> rulesList = new ArrayList<>(); + + for(Tuple.Pair rulePair : gameRules.get(rule)) { + if(rulePair.key == world) { + rulesList.add(rulePair); + } + } + + if(rulesList.isEmpty()) { + if(isIteration) + throw new NullPointerException("Cannot find gamerule for dial " + rule.keyString + " after creation."); + else { + world.getGameRules().setOrCreateGameRule(rule.keyString, rule.defValue.toString()); // fuck + refresh(world); + return getGameRule(world, rule, true); + } + } else if(rulesList.size() > 1) + // what??? why??? + MainRegistry.logger.warn("Duplicate values for gamerules detected! Found {} rules for gamerule {}", rulesList.size(), rule.keyString); + + return rulesList.get(0).value; // realistically there should only be one of this gamerule that satisfies the filter sooooo... + } + /** * Returns the amount of heat per tick removed from components passively * @param world * @return >0 */ public static double getPassiveCooling(World world) { - return Math.max(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_PASSIVE_COOLING), 1.0D), 0.0D); + return (double) getGameRule(world, RBMKKeys.KEY_PASSIVE_COOLING); } - + /** * Returns the percentual step size how quickly neighboring component heat equalizes. 1 is instant, 0.5 is in 50% steps, et cetera. * @param world * @return [0;1] */ public static double getColumnHeatFlow(World world) { - return MathHelper.clamp_double(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_COLUMN_HEAT_FLOW), 0.2D), 0.0D, 1.0D); + return (double) getGameRule(world, RBMKKeys.KEY_COLUMN_HEAT_FLOW); } - + /** * Returns a modifier for fuel rod diffusion, i.e. how quickly the core and hull temperatures equalize. * @param world * @return >0 */ public static double getFuelDiffusionMod(World world) { - return Math.max(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_FUEL_DIFFUSION_MOD), 1.0D), 0.0D); + return (double) getGameRule(world, RBMKKeys.KEY_FUEL_DIFFUSION_MOD); } - + /** * Returns the percentual step size how quickly the fuel hull heat and the component heat equalizes. 1 is instant, 0.5 is in 50% steps, et cetera. * @param world * @return [0;1] */ public static double getFuelHeatProvision(World world) { - return MathHelper.clamp_double(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_HEAT_PROVISION), 0.2D), 0.0D, 1.0D); + return (double) getGameRule(world, RBMKKeys.KEY_HEAT_PROVISION); } - + /** * Simple integer that decides how tall the structure is. * @param world * @return [0;15] */ public static int getColumnHeight(World world) { - return MathHelper.clamp_int(GameRuleHelper.parseInt(world.getGameRules().getGameRuleStringValue(KEY_COLUMN_HEIGHT), 4), 2, 16) - 1; + return (int) getGameRule(world, RBMKKeys.KEY_COLUMN_HEIGHT); } - + /** * Whether or not scrap entities despawn on their own or remain alive until picked up. * @param world * @return */ public static boolean getPermaScrap(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_PERMANENT_SCRAP); + return (boolean) getGameRule(world, RBMKKeys.KEY_PERMANENT_SCRAP); } - + /** * How many heat units are consumed per mB water used. * @param world * @return >0 */ public static double getBoilerHeatConsumption(World world) { - return Math.max(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_BOILER_HEAT_CONSUMPTION), 0.1D), 0D); + return (double) getGameRule(world, RBMKKeys.KEY_BOILER_HEAT_CONSUMPTION); } - + /** * A multiplier for how quickly the control rods move. * @param world * @return >0 */ public static double getControlSpeed(World world) { - return Math.max(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_CONTROL_SPEED_MOD), 1.0D), 0.0D); + return (double) getGameRule(world, RBMKKeys.KEY_CONTROL_SPEED_MOD); } - + /** * A multiplier for how much flux the rods give out. * @param world * @return >0 */ public static double getReactivityMod(World world) { - return Math.max(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_REACTIVITY_MOD), 1.0D), 0.0D); + return (double) getGameRule(world, RBMKKeys.KEY_REACTIVITY_MOD); } - + /** * A multiplier for how much flux the rods give out. * @param world * @return >0 */ public static double getOutgasserMod(World world) { - return Math.max(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_OUTGASSER_MOD), 1.0D), 0.0D); + return (double) getGameRule(world, RBMKKeys.KEY_OUTGASSER_MOD); } - + /** * A multiplier for how high the power surge goes when inserting control rods. * @param world * @return >0 */ public static double getSurgeMod(World world) { - return Math.max(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_SURGE_MOD), 1.0D), 0.0D); + if(world.isRemote) { // The control rods use this gamerule for RBMK diag, which happens to be calculated on the client side. whoops! + return GameRuleHelper.getDoubleMinimum(world, RBMKKeys.KEY_PASSIVE_COOLING, 0.0D); + } + return (double) getGameRule(world, RBMKKeys.KEY_SURGE_MOD); } - + /** * Simple integer that decides how far the flux of a normal fuel rod reaches. * @param world * @return [1;100] */ public static int getFluxRange(World world) { - return MathHelper.clamp_int(GameRuleHelper.parseInt(world.getGameRules().getGameRuleStringValue(KEY_FLUX_RANGE), 5), 1, 100); + return (int) getGameRule(world, RBMKKeys.KEY_FLUX_RANGE); } - + /** * Simple integer that decides how far the flux of a ReaSim fuel rod reaches. * @param world * @return [1;100] */ public static int getReaSimRange(World world) { - return MathHelper.clamp_int(GameRuleHelper.parseInt(world.getGameRules().getGameRuleStringValue(KEY_REASIM_RANGE), 10), 1, 100); + return (int) getGameRule(world, RBMKKeys.KEY_REASIM_RANGE); } - + /** * Simple integer that decides how many neutrons are created from ReaSim fuel rods. * @param world * @return [1;24] */ public static int getReaSimCount(World world) { - return MathHelper.clamp_int(GameRuleHelper.parseInt(world.getGameRules().getGameRuleStringValue(KEY_REASIM_COUNT), 6), 1, 24); + return (int) getGameRule(world, RBMKKeys.KEY_REASIM_COUNT); } - + /** * Returns a modifier for the outgoing flux of individual streams from the ReaSim fuel rod to compensate for the potentially increased stream count. * @param world * @return >0 */ public static double getReaSimOutputMod(World world) { - return Math.max(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_REASIM_MOD), 1.0D), 0.0D); + return (double) getGameRule(world, RBMKKeys.KEY_REASIM_MOD); } - + /** * Whether or not all components should act like boilers with dedicated in/outlet blocks * @param world * @return */ public static boolean getReasimBoilers(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_REASIM_BOILERS) || (GeneralConfig.enable528 && GeneralConfig.enable528ReasimBoilers); + return (boolean) getGameRule(world, RBMKKeys.KEY_REASIM_BOILERS); } - + /** * How much % of the possible steam ends up being produced per tick * @param world * @return [0;1] */ public static double getReaSimBoilerSpeed(World world) { - return MathHelper.clamp_double(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_REASIM_BOILER_SPEED), 0.05D), 0.0D, 1.0D); + return (double) getGameRule(world, RBMKKeys.KEY_REASIM_BOILER_SPEED); } - + /** * Whether or not fuel columns should initiate a meltdown when overheating * The method is in reverse because the default for older worlds will be 'false' @@ -218,15 +313,42 @@ public class RBMKDials { * @return */ public static boolean getMeltdownsDisabled(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_DISABLE_MELTDOWNS); + return (boolean) getGameRule(world, RBMKKeys.KEY_DISABLE_MELTDOWNS); } - + /** * Whether or not connected pipes and turbines should explode when the reactor undergoes a meltdown. * @param world * @return */ public static boolean getOverpressure(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_MELTDOWN_OVERPRESSURE); + return (boolean) getGameRule(world, RBMKKeys.KEY_ENABLE_MELTDOWN_OVERPRESSURE); + } + + /** + * The percentage of neutrons to moderate from fast to slow when they pass through a moderator. + * @param world + * @return + */ + public static double getModeratorEfficiency(World world) { + return (double) getGameRule(world, RBMKKeys.KEY_MODERATOR_EFFICIENCY); + } + + /** + * The percentage of neutrons to be absorbed when a stream hits an absorber column. + * @param world + * @return + */ + public static double getAbsorberEfficiency(World world) { + return (double) getGameRule(world, RBMKKeys.KEY_ABSORBER_EFFICIENCY); + } + + /** + * The percentage of neutron to reflect when a stream hits a reflector column. + * @param world + * @return + */ + public static double getReflectorEfficiency(World world) { + return (double) getGameRule(world, RBMKKeys.KEY_REFLECTOR_EFFICIENCY); } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index 344464db8..06970b7b6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -3,15 +3,14 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.CompatHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.items.machine.ItemRBMKRod; -import com.hbm.packet.NBTPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; import cpw.mods.fml.common.Optional; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; @@ -20,7 +19,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; @@ -28,21 +26,23 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCraneConsole extends TileEntity implements INBTPacketReceiver, SimpleComponent { - +public class TileEntityCraneConsole extends TileEntityLoadedBase implements SimpleComponent, CompatHandler.OCComponent { + public int centerX; public int centerY; public int centerZ; - + public int spanF; public int spanB; public int spanL; public int spanR; - + public int height; - + public boolean setUpCrane = false; + public int craneRotationOffset = 0; + public double lastTiltFront = 0; public double lastTiltLeft = 0; public double tiltFront = 0; @@ -53,11 +53,11 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece public double posFront = 0; public double posLeft = 0; private static final double speed = 0.05D; - + private boolean goesDown = false; public double lastProgress = 1D; public double progress = 1D; - + private ItemStack loadedItem; private boolean hasLoaded = false; public double loadedHeat; @@ -65,38 +65,40 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece @Override public void updateEntity() { - + if(worldObj.isRemote) { lastTiltFront = tiltFront; lastTiltLeft = tiltLeft; } - + if(goesDown) { - + if(progress > 0) { progress -= 0.04D; } else { progress = 0; goesDown = false; - + if(!worldObj.isRemote && this.canTargetInteract()) { - if(this.loadedItem != null) { - getColumnAtPos().load(this.loadedItem); - this.loadedItem = null; - } else { - IRBMKLoadable column = getColumnAtPos(); - this.loadedItem = column.provideNext(); - column.unload(); + IRBMKLoadable column = getColumnAtPos(); + if(column != null) { // canTargetInteract already assumes this, but there seems to be some freak race conditions that cause the column to be null anyway + if(this.loadedItem != null) { + column.load(this.loadedItem); + this.loadedItem = null; + } else { + this.loadedItem = column.provideNext(); + column.unload(); + } + + this.markDirty(); } - - this.markDirty(); } - + } } else if(progress != 1) { - + progress += 0.04D; - + if(progress > 1D) { progress = 1D; } @@ -108,7 +110,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece double maxX = xCoord + 0.5 + side.offsetX * 1.5 + dir.offsetX * 2; double minZ = zCoord + 0.5 - side.offsetZ * 1.5; double maxZ = zCoord + 0.5 + side.offsetZ * 1.5 + dir.offsetZ * 2; - + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox( Math.min(minX, maxX), yCoord, @@ -118,7 +120,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece Math.max(minZ, maxZ))); tiltFront = 0; tiltLeft = 0; - + if(players.size() > 0 && !isCraneLoading()) { EntityPlayer player = players.get(0); HbmPlayerProps props = HbmPlayerProps.getData(player); @@ -126,7 +128,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece boolean down = props.getKeyPressed(EnumKeybind.CRANE_DOWN); boolean left = props.getKeyPressed(EnumKeybind.CRANE_LEFT); boolean right = props.getKeyPressed(EnumKeybind.CRANE_RIGHT); - + if(up && !down) { tiltFront = 30; if(!worldObj.isRemote) posFront += speed; @@ -143,17 +145,17 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece tiltLeft = -30; if(!worldObj.isRemote) posLeft -= speed; } - + if(props.getKeyPressed(EnumKeybind.CRANE_LOAD)) { goesDown = true; } } - + posFront = MathHelper.clamp_double(posFront, -spanB, spanF); posLeft = MathHelper.clamp_double(posLeft, -spanR, spanL); - + if(!worldObj.isRemote) { - + if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) { this.loadedHeat = ItemRBMKRod.getHullHeat(loadedItem); this.loadedEnrichment = ItemRBMKRod.getEnrichment(loadedItem); @@ -161,72 +163,54 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece this.loadedHeat = 0; this.loadedEnrichment = 0; } - - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setBoolean("crane", setUpCrane); - - if(setUpCrane) { //no need to send any of this if there's NO FUCKING CRANE THERE - nbt.setInteger("centerX", centerX); - nbt.setInteger("centerY", centerY); - nbt.setInteger("centerZ", centerZ); - nbt.setInteger("spanF", spanF); - nbt.setInteger("spanB", spanB); - nbt.setInteger("spanL", spanL); - nbt.setInteger("spanR", spanR); - nbt.setInteger("height", height); - nbt.setDouble("posFront", posFront); - nbt.setDouble("posLeft", posLeft); - nbt.setBoolean("loaded", this.hasItemLoaded()); - nbt.setDouble("loadedHeat", loadedHeat); - nbt.setDouble("loadedEnrichment", loadedEnrichment); - } - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); + + networkPackNT(250); } } - + public boolean hasItemLoaded() { - + if(!worldObj.isRemote) return this.loadedItem != null; else return this.hasLoaded; } - + public boolean isCraneLoading() { return this.progress != 1D; } - + public boolean isAboveValidTarget() { return getColumnAtPos() != null; } - + public boolean canTargetInteract() { - + IRBMKLoadable column = getColumnAtPos(); - + if(column == null) return false; - + if(this.hasItemLoaded()) { return column.canLoad(loadedItem); } else { return column.canUnload(); } } - + public IRBMKLoadable getColumnAtPos() { - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection left = dir.getRotation(ForgeDirection.DOWN); int x = (int)Math.floor(this.centerX - dir.offsetX * this.posFront - left.offsetX * this.posLeft + 0.5D); int y = this.centerY - 1; int z = (int)Math.floor(this.centerZ - dir.offsetZ * this.posFront - left.offsetZ * this.posLeft + 0.5D); - + Block b = worldObj.getBlock(x, y, z); - + if(b instanceof RBMKBase) { - + int[] pos = ((BlockDummyable)b).findCore(worldObj, x, y, z); if(pos != null) { TileEntityRBMKBase column = (TileEntityRBMKBase)worldObj.getTileEntity(pos[0], pos[1], pos[2]); @@ -235,34 +219,58 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece } } } - + return null; } @Override - public void networkUnpack(NBTTagCompound nbt) { - + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.setUpCrane); + + if(this.setUpCrane) { //no need to send any of this if there's NO FUCKING CRANE THERE + buf.writeInt(this.craneRotationOffset); + buf.writeInt(this.centerX); + buf.writeInt(this.centerY); + buf.writeInt(this.centerZ); + buf.writeInt(this.spanF); + buf.writeInt(this.spanB); + buf.writeInt(this.spanL); + buf.writeInt(this.spanR); + buf.writeInt(this.height); + buf.writeDouble(this.posFront); + buf.writeDouble(this.posLeft); + buf.writeBoolean(this.hasItemLoaded()); + buf.writeDouble(this.loadedHeat); + buf.writeDouble(this.loadedEnrichment); + } + } + + @Override + public void deserialize(ByteBuf buf) { lastPosFront = posFront; lastPosLeft = posLeft; lastProgress = progress; - - this.setUpCrane = nbt.getBoolean("crane"); - this.centerX = nbt.getInteger("centerX"); - this.centerY = nbt.getInteger("centerY"); - this.centerZ = nbt.getInteger("centerZ"); - this.spanF = nbt.getInteger("spanF"); - this.spanB = nbt.getInteger("spanB"); - this.spanL = nbt.getInteger("spanL"); - this.spanR = nbt.getInteger("spanR"); - this.height = nbt.getInteger("height"); - this.posFront = nbt.getDouble("posFront"); - this.posLeft = nbt.getDouble("posLeft"); - this.hasLoaded = nbt.getBoolean("loaded"); - this.posLeft = nbt.getDouble("posLeft"); - this.loadedHeat = nbt.getDouble("loadedHeat"); - this.loadedEnrichment = nbt.getDouble("loadedEnrichment"); + + this.setUpCrane = buf.readBoolean(); + if (this.setUpCrane) { + this.craneRotationOffset = buf.readInt(); + this.centerX = buf.readInt(); + this.centerY = buf.readInt(); + this.centerZ = buf.readInt(); + this.spanF = buf.readInt(); + this.spanB = buf.readInt(); + this.spanL = buf.readInt(); + this.spanR = buf.readInt(); + this.height = buf.readInt(); + this.posFront = buf.readDouble(); + this.posLeft = buf.readDouble(); + this.hasLoaded = buf.readBoolean(); + this.posLeft = buf.readDouble(); + this.loadedHeat = buf.readDouble(); + this.loadedEnrichment = buf.readDouble(); + } } - + public void setTarget(int x, int y, int z) { this.centerX = x; this.centerY = y + RBMKDials.getColumnHeight(worldObj) + 1; @@ -272,18 +280,24 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece this.spanB = 7; this.spanL = 7; this.spanR = 7; - + this.height = 7; + this.setUpCrane = true; - + this.markDirty(); } - + + public void cycleCraneRotation() { + this.craneRotationOffset = (this.craneRotationOffset + 90) % 360; + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.setUpCrane = nbt.getBoolean("crane"); + this.craneRotationOffset = nbt.getInteger("craneRotationOffset"); this.centerX = nbt.getInteger("centerX"); this.centerY = nbt.getInteger("centerY"); this.centerZ = nbt.getInteger("centerZ"); @@ -294,16 +308,17 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece this.height = nbt.getInteger("height"); this.posFront = nbt.getDouble("posFront"); this.posLeft = nbt.getDouble("posLeft"); - + NBTTagCompound held = nbt.getCompoundTag("held"); this.loadedItem = ItemStack.loadItemStackFromNBT(held); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setBoolean("crane", setUpCrane); + nbt.setInteger("craneRotationOffset", craneRotationOffset); nbt.setInteger("centerX", centerX); nbt.setInteger("centerY", centerY); nbt.setInteger("centerZ", centerZ); @@ -314,38 +329,39 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece nbt.setInteger("height", height); nbt.setDouble("posFront", posFront); nbt.setDouble("posLeft", posLeft); - + if(this.loadedItem != null) { NBTTagCompound held = new NBTTagCompound(); this.loadedItem.writeToNBT(held); nbt.setTag("held", held); } } - + @Override public AxisAlignedBB getRenderBoundingBox() { return this.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } - + // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "rbmk_crane"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 2) //yknow computers are more efficient than humans, lets give an incentive to use OC @Optional.Method(modid = "OpenComputers") public Object[] move(Context context, Arguments args) { - if(setUpCrane == true) { - String textbruh = args.checkString(0); - - switch(textbruh) { + if(setUpCrane) { + String direction = args.checkString(0); + + switch(direction) { case "up": tiltFront = 30; if(!worldObj.isRemote) posFront += speed; @@ -363,23 +379,23 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece if(!worldObj.isRemote) posLeft -= speed; break; } - + return new Object[] {}; } return new Object[] {"Crane not found"}; } - - @Callback(direct = true, limit = 4) + + @Callback @Optional.Method(modid = "OpenComputers") public Object[] load(Context context, Arguments args) { - if (setUpCrane == true) { + if (setUpCrane) { goesDown = true; return new Object[] {}; } return new Object[] {"Crane not found"}; } - - @Callback(direct = true, limit = 4) + + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) { @@ -388,7 +404,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) { @@ -396,4 +412,14 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece } return new Object[] {"N/A"}; } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") //if this doesnt work im going to die + public Object[] getCranePos(Context context, Arguments args) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection left = dir.getRotation(ForgeDirection.DOWN); + int x = (int)Math.floor(this.centerX - dir.offsetX * this.posFront - left.offsetX * this.posLeft + 0.5D); + int z = (int)Math.floor(this.centerZ - dir.offsetZ * this.posFront - left.offsetZ * this.posLeft + 0.5D); + return new Object[] {x, z}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java index 20512c206..d1c585539 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java @@ -1,10 +1,11 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; public class TileEntityRBMKAbsorber extends TileEntityRBMKBase { - + @Override public void onMelt(int reduce) { @@ -17,6 +18,11 @@ public class TileEntityRBMKAbsorber extends TileEntityRBMKBase { super.onMelt(reduce); } + @Override + public RBMKType getRBMKType() { + return RBMKType.ABSORBER; + } + @Override public ColumnType getConsoleType() { return ColumnType.ABSORBER; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 9e7b3d63e..8ee80176b 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -8,20 +8,23 @@ import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.entity.effect.EntitySpear; import com.hbm.entity.projectile.EntityRBMKDebris; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.neutron.NeutronNodeWorld; +import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKType; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.saveddata.TomSaveData; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IOverpressurable; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.util.Compat; import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; @@ -38,34 +41,39 @@ import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; -import java.util.*; +import java.util.List; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.Set; +import java.util.HashSet; +import java.util.Iterator; /** * Base class for all RBMK components, active or passive. Handles heat and the explosion sequence * @author hbm * */ -public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements INBTPacketReceiver { - +public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements IBufPacketReceiver { + public double heat; - + public int water; public static final int maxWater = 16000; public int steam; public static final int maxSteam = 16000; public boolean hasLid() { - + if(!isLidRemovable()) return true; - + return this.getBlockMetadata() != RBMKBase.DIR_NO_LID.ordinal() + RBMKBase.offset; } public boolean isLidRemovable() { return true; } - + /** * Approx melting point of steel * Fuels often burn much hotter than this but it won't affect the column too much due to low diffusion @@ -74,7 +82,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements public double maxHeat() { return 1500D; } - + /** * Around the same for every component except boilers which do not have passive cooling * @return @@ -82,22 +90,22 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements public double passiveCooling() { return RBMKDials.getPassiveCooling(worldObj); //default: 1.0D } - + //necessary checks to figure out whether players are close enough to ensure that the reactor can be safely used public boolean shouldUpdate() { return true; } - + //unused public int trackingRange() { - return 25; + return 15; } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + this.worldObj.theProfiler.startSection("rbmkBase_heat_movement"); moveHeat(); if(RBMKDials.getReasimBoilers(worldObj)) { @@ -108,73 +116,74 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements this.worldObj.theProfiler.endStartSection("rbmkBase_rpassive_cooling"); coolPassively(); this.worldObj.theProfiler.endSection(); - - NBTTagCompound data = new NBTTagCompound(); - this.writeToNBT(data); - this.networkPack(data, trackingRange()); + + this.networkPackNT(trackingRange()); } } - + /** * The ReaSim boiler dial causes all RBMK parts to behave like boilers */ private void boilWater() { - + if(heat < 100D) return; - + double heatConsumption = RBMKDials.getBoilerHeatConsumption(worldObj); double availableHeat = (this.heat - 100) / heatConsumption; double availableWater = this.water; double availableSpace = this.maxSteam - this.steam; - - int processedWater = (int)Math.floor(Math.min(availableHeat, Math.min(availableWater, availableSpace)) * RBMKDials.getReaSimBoilerSpeed(worldObj)); - + + int processedWater = (int) Math.floor(Math.min(availableHeat, Math.min(availableWater, availableSpace)) * RBMKDials.getReaSimBoilerSpeed(worldObj)); + this.water -= processedWater; this.steam += processedWater; this.heat -= processedWater * heatConsumption; } - - public static final ForgeDirection[] heatDirs = new ForgeDirection[] { + + public static final ForgeDirection[] neighborDirs = new ForgeDirection[] { ForgeDirection.NORTH, ForgeDirection.EAST, ForgeDirection.SOUTH, ForgeDirection.WEST }; - - protected TileEntityRBMKBase[] heatCache = new TileEntityRBMKBase[4]; - + + protected TileEntityRBMKBase[] neighborCache = new TileEntityRBMKBase[4]; + /** * Moves heat to neighboring parts, if possible, in a relatively fair manner */ private void moveHeat() { - + + if(heat == 20 && RBMKDials.getReasimBoilers(worldObj)) + return; + List rec = new ArrayList(); rec.add(this); double heatTot = this.heat; int waterTot = this.water; int steamTot = this.steam; - + int index = 0; - for(ForgeDirection dir : heatDirs) { - - if(heatCache[index] != null && heatCache[index].isInvalid()) - heatCache[index] = null; - - if(heatCache[index] == null) { + for(ForgeDirection dir : neighborDirs) { + + if(neighborCache[index] != null && neighborCache[index].isInvalid()) + neighborCache[index] = null; + + if(neighborCache[index] == null) { TileEntity te = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); - + if(te instanceof TileEntityRBMKBase) { TileEntityRBMKBase base = (TileEntityRBMKBase) te; - heatCache[index] = base; + neighborCache[index] = base; } } - + index++; } - - for(TileEntityRBMKBase base : heatCache) { - + + for(TileEntityRBMKBase base : neighborCache) { + if(base != null) { rec.add(base); heatTot += base.heat; @@ -182,44 +191,51 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements steamTot += base.steam; } } - + int members = rec.size(); double stepSize = RBMKDials.getColumnHeatFlow(worldObj); - + if(members > 1) { - + double targetHeat = heatTot / (double)members; - + int tWater = waterTot / members; int rWater = waterTot % members; int tSteam = steamTot / members; int rSteam = steamTot % members; - + for(TileEntityRBMKBase rbmk : rec) { double delta = targetHeat - rbmk.heat; rbmk.heat += delta * stepSize; - + //set to the averages, rounded down rbmk.water = tWater; rbmk.steam = tSteam; } - + //add the modulo to make up for the losses coming from rounding this.water += rWater; this.steam += rSteam; - + this.markDirty(); } } - + + @Override + public void invalidate() { + super.invalidate(); + + NeutronNodeWorld.removeNode(new BlockPos(this)); // woo-fucking-hoo!!! + } + @Override public void markDirty() { - + if(this.worldObj != null) { this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); } } - + protected void coolPassively() { if(TomSaveData.forWorld(worldObj).fire > 1e-5) { @@ -228,18 +244,22 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements this.heat += this.passiveCooling() * 2; } } - + this.heat -= this.passiveCooling(); - + if(heat < 20) heat = 20D; } - + + public RBMKType getRBMKType() { + return RBMKType.OTHER; + } + protected static boolean diag = false; - + @Override public void readFromNBT(NBTTagCompound nbt) { - + if(!diag) { super.readFromNBT(nbt); } @@ -248,40 +268,39 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements this.water = nbt.getInteger("water"); this.steam = nbt.getInteger("steam"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { - + if(!diag) { super.writeToNBT(nbt); } - + nbt.setDouble("heat", this.heat); nbt.setInteger("water", this.water); nbt.setInteger("steam", this.steam); } - - public void networkPack(NBTTagCompound nbt, int range) { - diag = true; - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); - diag = false; + @Override + public void serialize(ByteBuf buf) { + buf.writeDouble(this.heat); + buf.writeInt(this.water); + buf.writeInt(this.steam); } - - public void networkUnpack(NBTTagCompound nbt) { - - diag = true; - this.readFromNBT(nbt); - diag = false; + + @Override + public void deserialize(ByteBuf buf) { + this.heat = buf.readDouble(); + this.water = buf.readInt(); + this.steam = buf.readInt(); } - + public void getDiagData(NBTTagCompound nbt) { diag = true; this.writeToNBT(nbt); diag = false; } - + @SideOnly(Side.CLIENT) public static void diagnosticPrintHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { @@ -310,6 +329,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements exceptions.add("z"); exceptions.add("items"); exceptions.add("id"); + exceptions.add("muffled"); String title = "Dump of Ordered Data Diagnostic (DODD)"; mc.fontRenderer.drawString(title, pX + 1, pZ - 19, 0x006000); @@ -336,80 +356,80 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements GL11.glPopMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); } - + public void onOverheat() { - + for(int i = 0; i < 4; i++) { worldObj.setBlock(xCoord, yCoord + i, zCoord, Blocks.lava); } } - + public void onMelt(int reduce) { - + standardMelt(reduce); - + if(this.getBlockMetadata() == RBMKBase.DIR_NORMAL_LID.ordinal() + RBMKBase.offset) spawnDebris(DebrisType.LID); } - + protected void standardMelt(int reduce) { - + int h = RBMKDials.getColumnHeight(worldObj); reduce = MathHelper.clamp_int(reduce, 1, h); - + if(worldObj.rand.nextInt(3) == 0) reduce++; - + for(int i = h; i >= 0; i--) { - + if(i <= h + 1 - reduce) { - + if(reduce > 1 && i == h + 1 - reduce) { worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.pribris_burning); } else { worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.pribris); } - + } else { worldObj.setBlock(xCoord, yCoord + i, zCoord, Blocks.air); } worldObj.markBlockForUpdate(xCoord, yCoord + i, zCoord); } } - + protected void spawnDebris(DebrisType type) { EntityRBMKDebris debris = new EntityRBMKDebris(worldObj, xCoord + 0.5D, yCoord + 4D, zCoord + 0.5D, type); debris.motionX = worldObj.rand.nextGaussian() * 0.25D; debris.motionZ = worldObj.rand.nextGaussian() * 0.25D; debris.motionY = 0.25D + worldObj.rand.nextDouble() * 1.25D; - + if(type == DebrisType.LID) { debris.motionX *= 0.5D; debris.motionY += 0.5D; debris.motionZ *= 0.5D; } - + worldObj.spawnEntityInWorld(debris); } - + public static HashSet columns = new HashSet(); public static HashSet pipes = new HashSet(); - + //assumes that !worldObj.isRemote public void meltdown() { - + RBMKBase.dropLids = false; - + columns.clear(); pipes.clear(); getFF(xCoord, yCoord, zCoord); - + int minX = xCoord; int maxX = xCoord; int minZ = zCoord; int maxZ = zCoord; - + //set meltdown bounds for(TileEntityRBMKBase rbmk : columns) { @@ -422,31 +442,31 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements if(rbmk.zCoord > maxZ) maxZ = rbmk.zCoord; } - + for(TileEntityRBMKBase rbmk : columns) { int distFromMinX = rbmk.xCoord - minX; int distFromMaxX = maxX - rbmk.xCoord; int distFromMinZ = rbmk.zCoord - minZ; int distFromMaxZ = maxZ - rbmk.zCoord; - + int minDist = Math.min(distFromMinX, Math.min(distFromMaxX, Math.min(distFromMinZ, distFromMaxZ))); - + rbmk.onMelt(minDist + 1); } - + for(TileEntityRBMKBase rbmk : columns) { - + if(rbmk instanceof TileEntityRBMKRod && worldObj.getBlock(rbmk.xCoord, rbmk.yCoord, rbmk.zCoord) == ModBlocks.corium_block) { - + for(int x = rbmk.xCoord - 1; x <= rbmk.xCoord + 1; x ++) { for(int y = rbmk.yCoord - 1; y <= rbmk.yCoord + 1; y ++) { for(int z = rbmk.zCoord - 1; z <= rbmk.zCoord + 1; z ++) { - + Block b = worldObj.getBlock(x, y, z); - + if(worldObj.rand.nextInt(3) == 0 && (b == ModBlocks.pribris || b == ModBlocks.pribris_burning)) { - + if(RBMKBase.digamma) worldObj.setBlock(x, y, z, ModBlocks.pribris_digamma); else @@ -457,23 +477,23 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements } } } - + /* Hanlde overpressure event */ if(RBMKDials.getOverpressure(worldObj) && !pipes.isEmpty()) { HashSet pipeBlocks = new HashSet(); HashSet pipeReceivers = new HashSet(); - + //unify all parts into single sets to prevent redundancy pipes.forEach(x -> { pipeBlocks.addAll(x.getLinks()); pipeReceivers.addAll(x.getSubscribers()); }); - + int count = 0; int max = Math.min(pipeBlocks.size() / 5, 100); Iterator itPipes = pipeBlocks.iterator(); Iterator itReceivers = pipeReceivers.iterator(); - + while(itPipes.hasNext() && count < max) { IFluidConductor pipe = itPipes.next(); if(pipe instanceof TileEntity) { @@ -482,7 +502,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements } count++; } - + while(itReceivers.hasNext()) { IFluidConnector con = itReceivers.next(); if(con instanceof TileEntity) { @@ -496,26 +516,26 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements } } } - + int smallDim = Math.min(maxX - minX, maxZ - minZ); int avgX = minX + (maxX - minX) / 2; int avgZ = minZ + (maxZ - minZ) / 2; - + NBTTagCompound data = new NBTTagCompound(); data.setString("type", "rbmkmush"); data.setFloat("scale", smallDim); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, avgX + 0.5, yCoord + 1, avgZ + 0.5), new TargetPoint(worldObj.provider.dimensionId,avgX + 0.5, yCoord + 1, avgZ + 0.5, 250)); MainRegistry.proxy.effectNT(data); - + worldObj.playSoundEffect(avgX + 0.5, yCoord + 1, avgZ + 0.5, "hbm:block.rbmk_explosion", 50.0F, 1.0F); - + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 50, 50)); - + for(EntityPlayer player : players) { player.triggerAchievement(MainRegistry.achRBMKBoom); } - + if(RBMKBase.digamma) { EntitySpear spear = new EntitySpear(worldObj); spear.posX = avgX + 0.5; @@ -523,19 +543,19 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements spear.posY = yCoord + 100; worldObj.spawnEntityInWorld(spear); } - + RBMKBase.dropLids = true; RBMKBase.digamma = false; } - + private void getFF(int x, int y, int z) { - + TileEntity te = Compat.getTileStandard(worldObj, x, y, z); - + if(te instanceof TileEntityRBMKBase) { - + TileEntityRBMKBase rbmk = (TileEntityRBMKBase) te; - + if(!columns.contains(rbmk)) { columns.add(rbmk); getFF(x + 1, y, z); @@ -545,21 +565,21 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase implements } } } - + public boolean isModerated() { return false; } - + public abstract ColumnType getConsoleType(); - + public NBTTagCompound getNBTForConsole() { return null; } - + public static List getFancyStats(NBTTagCompound nbt) { return null; } - + @Override public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 17, zCoord + 1); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 92dd33539..14f8a8b15 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -3,11 +3,12 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidUser; import api.hbm.fluid.IPipeNet; +import api.hbm.tile.IInfoProviderEC; + import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerRBMKGeneric; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -15,36 +16,35 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIRBMKBoiler; import com.hbm.lib.Library; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; +import com.hbm.util.CompatEnergyControl; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import java.util.ArrayList; -import java.util.List; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent { +public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; - public List list = new ArrayList(); + protected int consumption; + protected int output; public TileEntityRBMKBoiler() { super(0); - feed = new FluidTank(Fluids.WATER, 10000, 0); - steam = new FluidTank(Fluids.STEAM, 1000000, 1); + feed = new FluidTank(Fluids.WATER, 10000); + steam = new FluidTank(Fluids.STEAM, 1000000); } @Override @@ -56,8 +56,9 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public void updateEntity() { if(!worldObj.isRemote) { - feed.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + + this.consumption = 0; + this.output = 0; double heatCap = this.getHeatFromSteam(steam.getTankType()); double heatProvided = this.heat - heatCap; @@ -82,6 +83,9 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I steamProduced = (int)Math.floor((waterUsed * 100D) / steamFactor); } + this.consumption = waterUsed; + this.output = steamProduced; + feed.setFill(feed.getFill() - waterUsed); steam.setFill(steam.getFill() + steamProduced); @@ -91,8 +95,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I this.heat -= waterUsed * HEAT_PER_MB_WATER; } - fillFluidInit(steam.getTankType()); - this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -117,31 +119,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I if(type == Fluids.ULTRAHOTSTEAM) return 1000D; return 0D; } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type); - } - - if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type); - } - } protected DirPos[] getOutputPos() { @@ -169,74 +146,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I }; } } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated //why are we still doing this? - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public void setFluidFill(int i, FluidType type) { - - if(type == feed.getTankType()) - feed.setFill(i); - else if(type == steam.getTankType()) - steam.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getFill(); - else if(type == steam.getTankType()) - return steam.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getMaxFill(); - else if(type == steam.getTankType()) - return steam.getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - - if(index == 0) - feed.setFill(fill); - else if(index == 1) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(index == 0) - feed.setTankType(type); - else if(index == 1) - steam.setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -254,6 +163,20 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I steam.writeToNBT(nbt, "steam"); } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + steam.serialize(buf); + feed.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.steam.deserialize(buf); + this.feed.deserialize(buf); + } + @Override public boolean hasPermission(EntityPlayer player) { return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; @@ -263,17 +186,21 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public void receiveControl(NBTTagCompound data) { if(data.hasKey("compression")) { - - FluidType type = steam.getTankType(); - if(type == Fluids.STEAM) { steam.setTankType(Fluids.HOTSTEAM); steam.setFill(steam.getFill() / 10); } - if(type == Fluids.HOTSTEAM) { steam.setTankType(Fluids.SUPERHOTSTEAM); steam.setFill(steam.getFill() / 10); } - if(type == Fluids.SUPERHOTSTEAM) { steam.setTankType(Fluids.ULTRAHOTSTEAM); steam.setFill(steam.getFill() / 10); } - if(type == Fluids.ULTRAHOTSTEAM) { steam.setTankType(Fluids.STEAM); steam.setFill(Math.min(steam.getFill() * 1000, steam.getMaxFill())); } - - this.markDirty(); + this.cyceCompressor(); } } + public void cyceCompressor() { + + FluidType type = steam.getTankType(); + if(type == Fluids.STEAM) { steam.setTankType(Fluids.HOTSTEAM); steam.setFill(steam.getFill() / 10); } + if(type == Fluids.HOTSTEAM) { steam.setTankType(Fluids.SUPERHOTSTEAM); steam.setFill(steam.getFill() / 10); } + if(type == Fluids.SUPERHOTSTEAM) { steam.setTankType(Fluids.ULTRAHOTSTEAM); steam.setFill(steam.getFill() / 10); } + if(type == Fluids.ULTRAHOTSTEAM) { steam.setTankType(Fluids.STEAM); steam.setFill(Math.min(steam.getFill() * 1000, steam.getMaxFill())); } + + this.markDirty(); + } + @Override public void onMelt(int reduce) { @@ -328,90 +255,64 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "rbmk_boiler"; } - - @Callback(direct = true, limit = 16) + + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteamMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWaterMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - FluidType type = steam.getTankType(); - Object type_1; - if(type == Fluids.STEAM) {type_1 = "0";} - else if(type == Fluids.HOTSTEAM) {type_1 = "1";} - else if(type == Fluids.SUPERHOTSTEAM) {type_1 = "2";} - else if(type == Fluids.ULTRAHOTSTEAM) {type_1 = "3";} - else {type_1 = "Steam out-of-bounds";} + int type_1 = (int) CompatHandler.steamTypeToInt(steam.getTankType())[0]; return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { - FluidType type = steam.getTankType(); - if(type == Fluids.STEAM) {return new Object[] {0};} - else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} - else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} - else if(type == Fluids.ULTRAHOTSTEAM) {return new Object[] {3};} - else {return new Object[] {"Unknown Error"};} + return CompatHandler.steamTypeToInt(steam.getTankType()); } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setSteamType(Context context, Arguments args) { int type = args.checkInteger(0); - if(type > 3) { - type = 3; - } else if(type < 0) { - type = 0; - } - if(type == 0) { - steam.setTankType(Fluids.STEAM); - return new Object[] {true}; - } else if(type == 1) { - steam.setTankType(Fluids.HOTSTEAM); - return new Object[] {true}; - } else if(type == 2) { - steam.setTankType(Fluids.SUPERHOTSTEAM); - return new Object[] {true}; - } else { - steam.setTankType(Fluids.ULTRAHOTSTEAM); - return new Object[] {true}; - } + steam.setTankType(CompatHandler.intToSteamType(type)); + return new Object[] {true}; } @Override @@ -421,7 +322,13 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKBoiler(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, consumption); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, output); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index 4ce54e100..f41643047 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -5,18 +5,24 @@ import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.Set; +import java.util.LinkedHashMap; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GUIRBMKConsole; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; +import com.hbm.util.BufferUtil; +import com.hbm.util.Compat; +import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; @@ -27,13 +33,20 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityRBMKConsole extends TileEntityMachineBase implements IControlReceiver, IGUIProvider { +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityRBMKConsole extends TileEntityMachineBase implements IControlReceiver, IGUIProvider, SimpleComponent, CompatHandler.OCComponent { private int targetX; private int targetY; private int targetZ; - public int[] fluxBuffer = new int[20]; + public static final int fluxDisplayBuffer = 60; + public int[] fluxBuffer = new int[fluxDisplayBuffer]; //made this one-dimensional because it's a lot easier to serialize public RBMKColumn[] columns = new RBMKColumn[15 * 15]; @@ -65,8 +78,8 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.worldObj.theProfiler.endSection(); prepareScreenInfo(); } - - prepareNetworkPack(); + + this.networkPackNT(50); } } @@ -77,7 +90,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon for(int i = -7; i <= 7; i++) { for(int j = -7; j <= 7; j++) { - TileEntity te = worldObj.getTileEntity(targetX + i, targetY, targetZ + j); + TileEntity te = Compat.getTileStandard(worldObj, targetX + i, targetY, targetZ + j); int index = (i + 7) + (j + 7) * 15; if(te instanceof TileEntityRBMKBase) { @@ -91,7 +104,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon if(te instanceof TileEntityRBMKRod) { TileEntityRBMKRod fuel = (TileEntityRBMKRod) te; - flux += fuel.fluxFast + fuel.fluxSlow; + flux += fuel.lastFluxQuantity; } } else { @@ -104,7 +117,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.fluxBuffer[i] = this.fluxBuffer[i + 1]; } - this.fluxBuffer[19] = (int) flux; + this.fluxBuffer[this.fluxBuffer.length - 1] = (int) flux; } @SuppressWarnings("incomplete-switch") //shut up @@ -173,66 +186,65 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon screen.display = text; } } - - private void prepareNetworkPack() { - - NBTTagCompound data = new NBTTagCompound(); - - if(this.worldObj.getTotalWorldTime() % 10 == 0) { - - data.setBoolean("full", true); - - for(int i = 0; i < columns.length; i++) { - - if(this.columns[i] != null) { - data.setTag("column_" + i, this.columns[i].data); - data.setShort("type_" + i, (short)this.columns[i].type.ordinal()); - } - } - - data.setIntArray("flux", this.fluxBuffer); - - for(int i = 0; i < this.screens.length; i++) { - RBMKScreen screen = screens[i]; - if(screen.display != null) { - data.setString("t" + i, screen.display); - } - } - } - - for(int i = 0; i < this.screens.length; i++) { - RBMKScreen screen = screens[i]; - data.setByte("s" + i, (byte) screen.type.ordinal()); - } - - this.networkPack(data, 50); - } - @Override - public void networkUnpack(NBTTagCompound data) { - - if(data.getBoolean("full")) { - this.columns = new RBMKColumn[15 * 15]; - - for(int i = 0; i < columns.length; i++) { - - if(data.hasKey("type_" + i)) { - this.columns[i] = new RBMKColumn(ColumnType.values()[data.getShort("type_" + i)], (NBTTagCompound)data.getTag("column_" + i)); + public void serialize(ByteBuf buf) { + super.serialize(buf); + + if (this.worldObj.getTotalWorldTime() % 10 == 0) { + buf.writeBoolean(true); + + for (RBMKColumn column : this.columns) { + if (column == null || column.type == null) + buf.writeByte(-1); + else { + buf.writeByte((byte) column.type.ordinal()); + BufferUtil.writeNBT(buf, column.data); } } - - this.fluxBuffer = data.getIntArray("flux"); - - for(int i = 0; i < this.screens.length; i++) { - RBMKScreen screen = screens[i]; - screen.display = data.getString("t" + i); + + BufferUtil.writeIntArray(buf, fluxBuffer); + + for (RBMKScreen screen : this.screens) { + BufferUtil.writeString(buf, screen.display); + } + + } else { + + buf.writeBoolean(false); + + for (RBMKScreen screen : screens) { + buf.writeByte((byte) screen.type.ordinal()); } } - - for(int i = 0; i < this.screens.length; i++) { - RBMKScreen screen = screens[i]; - screen.type = ScreenType.values()[data.getByte("s" + i)]; + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + if (buf.readBoolean()) { // check if it should be a full packet + + for(int i = 0; i < this.columns.length; i++) { + byte ordinal = buf.readByte(); + if (ordinal == -1) + this.columns[i] = null; + else + this.columns[i] = new RBMKColumn(ColumnType.values()[ordinal], BufferUtil.readNBT(buf)); + } + + this.fluxBuffer = BufferUtil.readIntArray(buf); + + for (RBMKScreen screen : this.screens) { + screen.display = BufferUtil.readString(buf); + } + + } else { + + for (RBMKScreen screen : this.screens) { + screen.type = ScreenType.values()[buf.readByte()]; + } + } } @@ -255,7 +267,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon int x = data.getInteger(key) % 15 - 7; int z = data.getInteger(key) / 15 - 7; - TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + z); + TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + z); if(te instanceof TileEntityRBMKControlManual) { TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; @@ -287,6 +299,40 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon Integer[] cols = list.toArray(new Integer[0]); this.screens[slot].columns = cols; } + + if(data.hasKey("assignColor")) { + int color = data.getByte("assignColor"); + int[] cols = data.getIntArray("cols"); + + for(int i : cols) { + int x = i % 15 - 7; + int z = i / 15 - 7; + + TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + z); + + if(te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.color = EnumUtil.grabEnumSafely(RBMKColor.class, color); + te.markDirty(); + } + } + } + + if(data.hasKey("compressor")) { + int[] cols = data.getIntArray("cols"); + + for(int i : cols) { + int x = i % 15 - 7; + int z = i / 15 - 7; + + TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + z); + + if(te instanceof TileEntityRBMKBoiler) { + TileEntityRBMKBoiler rod = (TileEntityRBMKBoiler) te; + rod.cyceCompressor(); + } + } + } } @Override @@ -382,7 +428,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon case BOILER: stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("rbmk.boiler.water", this.data.getInteger("water"), this.data.getInteger("maxWater"))); stats.add(EnumChatFormatting.WHITE + I18nUtil.resolveKey("rbmk.boiler.steam", this.data.getInteger("steam"), this.data.getInteger("maxSteam"))); - stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()))); + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", Fluids.fromID(this.data.getShort("type")).getLocalizedName())); break; case CONTROL: @@ -398,10 +444,10 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon break; case HEATEX: - stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey(I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()) + " " + - this.data.getInteger("water") + "/" + this.data.getInteger("maxWater") + "mB")); - stats.add(EnumChatFormatting.RED + I18nUtil.resolveKey(I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("hottype")).getUnlocalizedName()) + " " + - this.data.getInteger("steam") + "/" + this.data.getInteger("maxSteam") + "mB")); + stats.add(EnumChatFormatting.BLUE + Fluids.fromID(this.data.getShort("type")).getLocalizedName() + " " + + this.data.getInteger("water") + "/" + this.data.getInteger("maxWater") + "mB"); + stats.add(EnumChatFormatting.RED + Fluids.fromID(this.data.getShort("hottype")).getLocalizedName() + " " + + this.data.getInteger("steam") + "/" + this.data.getInteger("maxSteam") + "mB"); break; } @@ -470,7 +516,207 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKConsole(player.inventory, this); } + + // do some opencomputer stuff + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "rbmk_console"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getColumnData(Context context, Arguments args) { + int x = args.checkInteger(0) - 7; + int y = -args.checkInteger(1) + 7; + + int i = (y + 7) * 15 + (x + 7); + + TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + y); + if (te instanceof TileEntityRBMKBase) { + TileEntityRBMKBase column = (TileEntityRBMKBase) te; + + NBTTagCompound column_data = columns[i].data; + LinkedHashMap data_table = new LinkedHashMap<>(); + data_table.put("type", column.getConsoleType().name()); + data_table.put("hullTemp", column_data.getDouble("heat")); + data_table.put("realSimWater", column_data.getDouble("water")); + data_table.put("realSimSteam", column_data.getDouble("steam")); + data_table.put("moderated", column_data.getBoolean("moderated")); + data_table.put("level", column_data.getDouble("level")); + data_table.put("color", column_data.getShort("color")); + data_table.put("enrichment", column_data.getDouble("enrichment")); + data_table.put("xenon", column_data.getDouble("xenon")); + data_table.put("coreSkinTemp", column_data.getDouble("c_heat")); + data_table.put("coreTemp", column_data.getDouble("c_coreHeat")); + data_table.put("coreMaxTemp", column_data.getDouble("c_maxHeat")); + + if(te instanceof TileEntityRBMKRod){ + TileEntityRBMKRod fuelChannel = (TileEntityRBMKRod)te; + data_table.put("fluxQuantity", fuelChannel.lastFluxQuantity); + data_table.put("fluxRatio", fuelChannel.fluxRatio); + } + + if(te instanceof TileEntityRBMKBoiler){ + TileEntityRBMKBoiler boiler = (TileEntityRBMKBoiler)te; + data_table.put("water", boiler.feed.getFill()); + data_table.put("steam", boiler.steam.getFill()); + } + + if(te instanceof TileEntityRBMKOutgasser){ + TileEntityRBMKOutgasser irradiationChannel = (TileEntityRBMKOutgasser)te; + data_table.put("fluxProgress", irradiationChannel.progress); + data_table.put("requiredFlux", irradiationChannel.duration); + } + + if(te instanceof TileEntityRBMKHeater){ + TileEntityRBMKHeater heaterChannel = (TileEntityRBMKHeater)te; + data_table.put("coolant", heaterChannel.feed.getFill()); + data_table.put("hotcoolant", heaterChannel.steam.getFill()); + } + + return new Object[] {data_table}; + } + return new Object[] {null}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getRBMKPos(Context context, Arguments args) { + if(!(targetX == 0 && targetY== 0 && targetZ==0)){ + LinkedHashMap data_table = new LinkedHashMap<>(); + data_table.put("rbmkCenterX", targetX); + data_table.put("rbmkCenterY", targetY); + data_table.put("rbmkCenterZ", targetZ); + + return new Object[] {data_table}; + } + return new Object[] {null}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setLevel(Context context, Arguments args) { + double new_level = args.checkDouble(0); + boolean foundRods = false; + for(int i = -7; i <= 7; i++) { + for(int j = -7; j <= 7; j++) { + TileEntity te = Compat.getTileStandard(worldObj, targetX + i, targetY, targetZ + j); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.startingLevel = rod.level; + new_level = Math.min(1, Math.max(0, new_level)); + + rod.setTarget(new_level); + te.markDirty(); + foundRods = true; + } + } + } + if(foundRods) + return new Object[] {}; + else + return new Object[] {"No control rods found"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColumnLevel(Context context, Arguments args) { + int x = args.checkInteger(0) - 7; + int y = -args.checkInteger(1) + 7; + double new_level = args.checkDouble(2); + + TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + y); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.startingLevel = rod.level; + new_level = Math.min(1, Math.max(0, new_level)); + + rod.setTarget(new_level); + te.markDirty(); + return new Object[] {}; + } + return new Object[] {"No control rod found at "+(x+7)+","+(7-y)}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColorLevel(Context context, Arguments args) { + int color = args.checkInteger(0); + double new_level = args.checkDouble(1); + boolean foundRods = false; + if(color >= 0 && color <=4){ + for(int i = -7; i <= 7; i++) { + for(int j = -7; j <= 7; j++) { + TileEntity te = Compat.getTileStandard(worldObj, targetX + i, targetY, targetZ + j); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + if(rod.color == RBMKColor.values()[color]){ + rod.startingLevel = rod.level; + new_level = Math.min(1, Math.max(0, new_level)); + + rod.setTarget(new_level); + te.markDirty(); + foundRods = true; + } + } + } + } + if(foundRods) + return new Object[] {}; + else + return new Object[] { "No rods for color "+color+" found" }; + } + return new Object[] {"Color "+color+" does not exist"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColor(Context context, Arguments args) { + int x = args.checkInteger(0) - 7; + int y = -args.checkInteger(1) + 7; + int new_color = args.checkInteger(2); + if(new_color >= 0 && new_color <=4){ + TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + y); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.color = RBMKColor.values()[new_color]; + te.markDirty(); + return new Object[] {}; + } + return new Object[] {"No control rod found at "+(x+7)+","+(7-y)}; + } + return new Object[] {"Color "+new_color+" does not exist"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] pressAZ5(Context context, Arguments args) { + boolean hasRods = false; + for(int i = -7; i <= 7; i++) { + for(int j = -7; j <= 7; j++) { + TileEntity te = Compat.getTileStandard(worldObj, targetX + i, targetY, targetZ + j); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.startingLevel = rod.level; + rod.setTarget(0); + te.markDirty(); + hasRods = true; + } + } + } + if(hasRods){ + return new Object[] {}; + } else { + return new Object[] {"No control rods found"}; + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index 945638b7e..9e6d43868 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -1,17 +1,21 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.CompatHandler; +import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKType; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase implements SimpleComponent { +public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase implements SimpleComponent, CompatHandler.OCComponent { @SideOnly(Side.CLIENT) public double lastLevel; @@ -67,7 +71,7 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im @Override public int trackingRange() { - return 150; + return 100; } @Override @@ -85,6 +89,20 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im nbt.setDouble("level", this.level); nbt.setDouble("targetLevel", this.targetLevel); } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeDouble(this.level); + buf.writeDouble(this.targetLevel); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.level = buf.readDouble(); + this.targetLevel = buf.readDouble(); + } @Override @SideOnly(Side.CLIENT) @@ -113,6 +131,11 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im this.standardMelt(reduce); } + @Override + public RBMKType getRBMKType() { + return RBMKType.CONTROL_ROD; + } + @Override public NBTTagCompound getNBTForConsole() { NBTTagCompound data = new NBTTagCompound(); @@ -122,50 +145,46 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "rbmk_control_rod"; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {getMult() * 100}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel * 100}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, getMult() * 100, targetLevel * 100, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; - if (newLevel > 1.0) { - newLevel = 1.0; - } else if (newLevel < 0.0) { - newLevel = 0.0; - } - targetLevel = newLevel; + targetLevel = MathHelper.clamp_double(newLevel, 0, 1); return new Object[] {}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java index dc4159964..3da017e91 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java @@ -8,7 +8,7 @@ import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; @@ -105,6 +105,24 @@ public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements nbt.setInteger("function", function.ordinal()); } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeDouble(this.levelLower); + buf.writeDouble(this.levelUpper); + buf.writeDouble(this.heatLower); + buf.writeDouble(this.heatUpper); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.levelLower = buf.readDouble(); + this.levelUpper = buf.readDouble(); + this.heatLower = buf.readDouble(); + this.heatUpper = buf.readDouble(); + } + @Override public void receiveControl(NBTTagCompound data) { @@ -141,7 +159,7 @@ public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKControlAuto(player.inventory, this); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java index f22e00b47..b34f99a5e 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java @@ -9,13 +9,14 @@ import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -90,7 +91,7 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement if(nbt.hasKey("startingLevel")) this.startingLevel = nbt.getDouble("startingLevel"); - + if(nbt.hasKey("color")) this.color = RBMKColor.values()[nbt.getInteger("color")]; else @@ -107,6 +108,24 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement if(color != null) nbt.setInteger("color", color.ordinal()); } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeDouble(this.startingLevel); + if(this.color != null) + buf.writeInt(this.color.ordinal()); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.startingLevel = buf.readDouble(); + if(buf.isReadable(1)) { + int color = buf.readInt(); + this.color = RBMKColor.values()[MathHelper.clamp_int(color, 0, RBMKColor.values().length)]; + } + } public static enum RBMKColor { RED, @@ -133,12 +152,22 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement return data; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getColor(Context context, Arguments args) { - return new Object[] {this.color}; + return new Object[] {this.color.ordinal()}; } + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColor(Context context, Arguments args) { + int colorI = args.checkInteger(0); + colorI = MathHelper.clamp_int(colorI, 0, 4); + this.color = RBMKColor.values()[colorI]; + return new Object[] {true}; + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerRBMKControl(player.inventory, this); @@ -146,7 +175,7 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKControl(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 8c15cd8d7..fe3ddc71d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -1,13 +1,13 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.inventory.fluid.FluidType; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import cpw.mods.fml.common.Optional; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; @@ -20,7 +20,7 @@ import net.minecraft.util.DamageSource; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAcceptor, IFluidStandardReceiver, SimpleComponent { +public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidStandardReceiver, SimpleComponent, CompatHandler.OCComponent { private FluidTank tank; private int lastCooled; @@ -28,7 +28,7 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc public TileEntityRBMKCooler() { super(); - this.tank = new FluidTank(Fluids.CRYOGEL, 8000, 0); + this.tank = new FluidTank(Fluids.CRYOGEL, 8_000); } @Override @@ -102,37 +102,25 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc nbt.setInteger("cooled", this.lastCooled); } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + this.tank.serialize(buf); + buf.writeInt(this.lastCooled); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.tank.deserialize(buf); + this.lastCooled = buf.readInt(); + } + @Override public ColumnType getConsoleType() { return ColumnType.COOLER; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getMaxFill() : 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[]{tank}; @@ -145,35 +133,36 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc //do some opencomputers stuff + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "rbmk_cooler"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[]{heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryo(Context context, Arguments args) { return new Object[]{tank.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryoMax(Context context, Arguments args) { return new Object[]{tank.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{heat, tank.getFill(), tank.getMaxFill(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 618f41a96..3965ea170 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -3,10 +3,8 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerRBMKHeater; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; @@ -19,30 +17,26 @@ import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import java.util.ArrayList; -import java.util.List; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, SimpleComponent { +public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidStandardTransceiver, SimpleComponent, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; - public List list = new ArrayList(); public TileEntityRBMKHeater() { super(1); - this.feed = new FluidTank(Fluids.COOLANT, 16_000, 0); - this.steam = new FluidTank(Fluids.COOLANT_HOT, 16_000, 1); + this.feed = new FluidTank(Fluids.COOLANT, 16_000); + this.steam = new FluidTank(Fluids.COOLANT_HOT, 16_000); } @Override @@ -56,18 +50,16 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I if(!worldObj.isRemote) { feed.setType(0, slots); - - feed.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - + if(feed.getTankType().hasTrait(FT_Heatable.class)) { FT_Heatable trait = feed.getTankType().getTrait(FT_Heatable.class); HeatingStep step = trait.getFirstStep(); steam.setTankType(step.typeProduced); double tempRange = this.heat - steam.getTankType().temperature; + double eff = trait.getEfficiency(HeatingType.HEATEXCHANGER); - if(tempRange > 0) { - double TU_PER_DEGREE = 2_000D; //based on 1mB of water absorbing 200 TU as well as 0.1°C from an RBMK column + if(tempRange > 0 && eff > 0) { + double TU_PER_DEGREE = 2_000D * eff; //based on 1mB of water absorbing 200 TU as well as 0.1°C from an RBMK column int inputOps = feed.getFill() / step.amountReq; int outputOps = (steam.getMaxFill() - steam.getFill()) / step.amountProduced; int tempOps = (int) Math.floor((tempRange * TU_PER_DEGREE) / step.heatReq); @@ -82,8 +74,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I steam.setTankType(Fluids.NONE); } - fillFluidInit(steam.getTankType()); - this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -92,7 +82,7 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I super.updateEntity(); } - + protected DirPos[] getOutputPos() { if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { @@ -119,99 +109,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I }; } } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type); - } - - if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type); - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated //why are we still doing this? - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public void setFluidFill(int i, FluidType type) { - - if(type == feed.getTankType()) - feed.setFill(i); - else if(type == steam.getTankType()) - steam.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getFill(); - else if(type == steam.getTankType()) - return steam.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getMaxFill(); - else if(type == steam.getTankType()) - return steam.getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - - if(index == 0) - feed.setFill(fill); - else if(index == 1) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(index == 0) - feed.setTankType(type); - else if(index == 1) - steam.setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -228,7 +125,21 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I feed.writeToNBT(nbt, "feed"); steam.writeToNBT(nbt, "steam"); } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + this.feed.serialize(buf); + this.steam.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.feed.deserialize(buf); + this.steam.deserialize(buf); + } + @Override public void onMelt(int reduce) { @@ -276,58 +187,59 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I //opencomputers stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "rbmk_heater"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFill(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFillMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExport(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExportMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFillType(Context context, Arguments args) { - return new Object[] {feed.getTankType().getID()}; + return new Object[] {feed.getTankType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExportType(Context context, Arguments args) { - return new Object[] {steam.getTankType().getID()}; + return new Object[] {steam.getTankType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getID(), steam.getTankType().getID(), xCoord, yCoord, zCoord}; + return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getName(), steam.getTankType().getName(), xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; @@ -340,7 +252,7 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKHeater(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java index ddd96c7de..301f5bb1c 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java @@ -2,23 +2,23 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardReceiver; import com.hbm.blocks.machine.rbmk.RBMKBase; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityRBMKInlet extends TileEntityLoadedBase implements IFluidAcceptor, IFluidStandardReceiver { +public class TileEntityRBMKInlet extends TileEntityLoadedBase implements IFluidStandardReceiver, IBufPacketReceiver { public FluidTank water; public TileEntityRBMKInlet() { - water = new FluidTank(Fluids.WATER, 32000, 0); + water = new FluidTank(Fluids.WATER, 32000); } @Override @@ -63,31 +63,12 @@ public class TileEntityRBMKInlet extends TileEntityLoadedBase implements IFluidA this.water.writeToNBT(nbt, "tank"); } - @Override - public void setFillForSync(int fill, int index) { - if(index == 0) water.setFill(fill); + public void serialize(ByteBuf buf) { + this.water.serialize(buf); } - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.WATER) water.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index == 0) water.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.WATER) return water.getFill(); - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.WATER) return water.getMaxFill(); - return 0; + public void deserialize(ByteBuf buf) { + this.water.deserialize(buf); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKModerator.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKModerator.java index 7abb95b12..989b0af42 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKModerator.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKModerator.java @@ -1,10 +1,11 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; public class TileEntityRBMKModerator extends TileEntityRBMKBase { - + @Override public void onMelt(int reduce) { @@ -17,6 +18,11 @@ public class TileEntityRBMKModerator extends TileEntityRBMKBase { super.onMelt(reduce); } + @Override + public RBMKType getRBMKType() { + return RBMKType.MODERATOR; + } + @Override public ColumnType getConsoleType() { return ColumnType.MODERATOR; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 8dbaa6360..eccf38e4c 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -3,6 +3,9 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardSender; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.CompatHandler; +import com.hbm.handler.neutron.NeutronStream; +import com.hbm.handler.neutron.RBMKNeutronHandler; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerRBMKOutgasser; import com.hbm.inventory.fluid.Fluids; @@ -16,11 +19,11 @@ import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -28,7 +31,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IFluidStandardSender, SimpleComponent { +public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IFluidStandardSender, SimpleComponent, CompatHandler.OCComponent { public FluidTank gas; public double progress; @@ -89,14 +92,13 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement } @Override - public void receiveFlux(NType type, double flux) { + public void receiveFlux(NeutronStream stream) { if(canProcess()) { - - if(type == NType.FAST) - flux *= 0.2D; - - progress += flux * RBMKDials.getOutgasserMod(worldObj); + + double efficiency = Math.min(1 - stream.fluxRatio * 0.8, 1); + + progress += stream.fluxQuantity * efficiency * RBMKDials.getOutgasserMod(worldObj); if(progress > duration) { process(); @@ -164,6 +166,11 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement super.onMelt(reduce); } + @Override + public RBMKNeutronHandler.RBMKType getRBMKType() { + return RBMKNeutronHandler.RBMKType.OUTGASSER; + } + @Override public ColumnType getConsoleType() { return ColumnType.OUTGASSER; @@ -195,6 +202,20 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement this.gas.writeToNBT(nbt, "gas"); } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + this.gas.serialize(buf); + buf.writeDouble(this.progress); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.gas.deserialize(buf); + this.progress = buf.readDouble(); + } + @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { return OutgasserRecipes.getOutput(itemStack) != null && i == 0; @@ -222,41 +243,42 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement //do some opencomputers stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "rbmk_outgasser"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGas(Context context, Arguments args) { return new Object[] {gas.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGasMax(Context context, Arguments args) { return new Object[] {gas.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGasType(Context context, Arguments args) { - return new Object[] {gas.getTankType().getID()}; + return new Object[] {gas.getTankType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getProgress(Context context, Arguments args) { return new Object[] {progress}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {gas.getFill(), gas.getMaxFill(), progress, gas.getTankType().getID(), xCoord, yCoord, zCoord}; @@ -269,7 +291,7 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKOutgasser(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java index 2c047cfd1..0dc4cd89b 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java @@ -1,30 +1,24 @@ package com.hbm.tileentity.machine.rbmk; -import java.util.ArrayList; -import java.util.List; - import api.hbm.fluid.IFluidStandardSender; import com.hbm.blocks.machine.rbmk.RBMKBase; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.lib.Library; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluidSource, IFluidStandardSender { +public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluidStandardSender, IBufPacketReceiver { - public List list = new ArrayList(); public FluidTank steam; public TileEntityRBMKOutlet() { - steam = new FluidTank(Fluids.SUPERHOTSTEAM, 32000, 0); + steam = new FluidTank(Fluids.SUPERHOTSTEAM, 32000); } @Override @@ -53,8 +47,7 @@ public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluid } } - fillFluidInit(this.steam.getTankType()); - this.sendFluidToAll(steam, this); + fillFluidInit(); } } @@ -71,48 +64,18 @@ public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluid } @Override - public void setFillForSync(int fill, int index) { - steam.setFill(fill); + public void serialize(ByteBuf buf) { + this.steam.serialize(buf); } @Override - public void setFluidFill(int fill, FluidType type) { - steam.setFill(fill); + public void deserialize(ByteBuf buf) { + this.steam.deserialize(buf); } - @Override - public void setTypeForSync(FluidType type, int index) { - steam.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return steam.getFill(); - } - - @Override - public void fillFluidInit(FluidType type) { + public void fillFluidInit() { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - fillFluid(this.xCoord + dir.offsetX, this.yCoord + dir.offsetY, this.zCoord + dir.offsetZ, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); + this.sendFluid(steam, worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java index ed5b1afc0..f2157f849 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.neutron.RBMKNeutronHandler; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; public class TileEntityRBMKReflector extends TileEntityRBMKBase { @@ -17,6 +18,11 @@ public class TileEntityRBMKReflector extends TileEntityRBMKBase { super.onMelt(reduce); } + @Override + public RBMKNeutronHandler.RBMKType getRBMKType() { + return RBMKNeutronHandler.RBMKType.REFLECTOR; + } + @Override public ColumnType getConsoleType() { return ColumnType.REFLECTOR; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index f13f34952..6a7acf1bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -4,37 +4,52 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.blocks.machine.rbmk.RBMKRod; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.CompatHandler; +import com.hbm.handler.neutron.NeutronNodeWorld; +import com.hbm.handler.neutron.RBMKNeutronHandler; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.handler.neutron.RBMKNeutronHandler.RBMKNeutronNode; +import com.hbm.handler.neutron.NeutronStream; import com.hbm.inventory.container.ContainerRBMKRod; import com.hbm.inventory.gui.GUIRBMKRod; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import com.hbm.util.Compat; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.ParticleUtil; + +import api.hbm.tile.IInfoProviderEC; +import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IRBMKLoadable, SimpleComponent { - - //amount of "neutron energy" buffered for the next tick to use for the reaction - public double fluxFast; - public double fluxSlow; +public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IRBMKLoadable, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { + + // New system!! + // Used for receiving flux (calculating outbound flux/burning rods) + public double fluxRatio; + public double fluxQuantity; + public double lastFluxQuantity; + public double lastFluxRatio; + public boolean hasRod; public TileEntityRBMKRod() { @@ -45,229 +60,212 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM public String getName() { return "container.rbmkRod"; } - + @Override public boolean isModerated() { return ((RBMKRod)this.getBlockType()).moderated; } - @SuppressWarnings("incomplete-switch") //shut the fuck up @Override - public void receiveFlux(NType type, double flux) { - - switch(type) { - case FAST: this.fluxFast += flux; break; - case SLOW: this.fluxSlow += flux; break; - } + public int trackingRange() { + return 25; } - + + @Override + public void receiveFlux(NeutronStream stream) { + double fastFlux = this.fluxQuantity * this.fluxRatio; + double fastFluxIn = stream.fluxQuantity * stream.fluxRatio; + + this.fluxQuantity += stream.fluxQuantity; + fluxRatio = (fastFlux + fastFluxIn) / fluxQuantity; + } + @Override public void updateEntity() { if(!worldObj.isRemote) { - + if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { - + ItemRBMKRod rod = ((ItemRBMKRod)slots[0].getItem()); - - double fluxIn = fluxFromType(rod.nType); - double fluxOut = rod.burn(worldObj, slots[0], fluxIn); - NType rType = rod.rType; - + + double fluxRatioOut; + double fluxQuantityOut; + + // Experimental flux ratio curve rods! + // Again, nothing really uses this so its just idle code at the moment. + if (rod.specialFluxCurve) { + + fluxRatioOut = rod.fluxRatioOut(this.fluxRatio, ItemRBMKRod.getEnrichment(slots[0])); + + double fluxIn; + + fluxIn = rod.fluxFromRatio(this.fluxQuantity, this.fluxRatio); + + fluxQuantityOut = rod.burn(worldObj, slots[0], fluxIn); + } else { + NType rType = rod.rType; + if (rType == NType.SLOW) + fluxRatioOut = 0; + else + fluxRatioOut = 1; + + double fluxIn = fluxFromType(rod.nType); + fluxQuantityOut = rod.burn(worldObj, slots[0], fluxIn); + } + rod.updateHeat(worldObj, slots[0], 1.0D); this.heat += rod.provideHeat(worldObj, slots[0], heat, 1.0D); - + if(!this.hasLid()) { - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, (float) ((this.fluxFast + this.fluxSlow) * 0.05F)); + ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, (float) (this.fluxQuantity * 0.05F)); } - + super.updateEntity(); - - if(this.heat > this.maxHeat() && !RBMKDials.getMeltdownsDisabled(worldObj)) { - this.meltdown(); + + if(this.heat > this.maxHeat()) { + + if(RBMKDials.getMeltdownsDisabled(worldObj)) { + ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5, yCoord + RBMKDials.getColumnHeight(worldObj) + 0.5, zCoord + 0.5, 0, 0.2, 0); + } else { + this.meltdown(); + } + this.lastFluxRatio = 0; + this.lastFluxQuantity = 0; + this.fluxQuantity = 0; return; } - - //for spreading, we want the buffered flux to be 0 because we want to know exactly how much gets reflected back - this.fluxFast = 0; - this.fluxSlow = 0; - this.worldObj.theProfiler.startSection("rbmkRod_flux_spread"); - spreadFlux(rType, fluxOut); - this.worldObj.theProfiler.endSection(); - + if(this.heat > 10_000) this.heat = 10_000; + + //for spreading, we want the buffered flux to be 0 because we want to know exactly how much gets reflected back + + this.lastFluxQuantity = this.fluxQuantity; + this.lastFluxRatio = this.fluxRatio; + + this.fluxQuantity = 0; + this.fluxRatio = 0; + + spreadFlux(fluxQuantityOut, fluxRatioOut); + hasRod = true; - + } else { - this.fluxFast = 0; - this.fluxSlow = 0; - + this.lastFluxRatio = 0; + this.lastFluxQuantity = 0; + this.fluxQuantity = 0; + this.fluxRatio = 0; + hasRod = false; - + super.updateEntity(); } } } - - /** - * SLOW: full efficiency for slow neutrons, fast neutrons have half efficiency - * FAST: fast neutrons have 100% efficiency, slow only 30% - * ANY: just add together whatever we have because who cares - * @param type - * @return - */ - + private double fluxFromType(NType type) { - + switch(type) { - case SLOW: return this.fluxFast * 0.5D + this.fluxSlow; - case FAST: return this.fluxFast + this.fluxSlow * 0.3D; - case ANY: return this.fluxFast + this.fluxSlow; + case SLOW: return (this.fluxQuantity * (1 - this.fluxRatio) + Math.min(this.fluxRatio * 0.5, 1)); + case FAST: return (this.fluxQuantity * (1 - this.fluxRatio) + Math.min(this.fluxRatio * 0.3, 1)); + case ANY: return this.fluxQuantity; } - + return 0.0D; } - + public static final ForgeDirection[] fluxDirs = new ForgeDirection[] { ForgeDirection.NORTH, ForgeDirection.EAST, ForgeDirection.SOUTH, ForgeDirection.WEST }; - - protected static NType stream; - - protected void spreadFlux(NType type, double fluxOut) { - - int range = RBMKDials.getFluxRange(worldObj); - - for(ForgeDirection dir : fluxDirs) { - - stream = type; - double flux = fluxOut; - - for(int i = 1; i <= range; i++) { - - flux = runInteraction(xCoord + dir.offsetX * i, yCoord, zCoord + dir.offsetZ * i, flux); - - if(flux <= 0) - break; - } - } - } - - protected double runInteraction(int x, int y, int z, double flux) { - - TileEntity te = Compat.getTileStandard(worldObj, x, y, z); - - if(te instanceof TileEntityRBMKBase) { - TileEntityRBMKBase base = (TileEntityRBMKBase) te; - - if(!base.hasLid()) - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, (float) (flux * 0.05F)); - - if(base.isModerated()) { - this.stream = NType.SLOW; - } + + private BlockPos pos; + + public void spreadFlux(double flux, double ratio) { + + if(pos == null) + pos = new BlockPos(this); + + if (flux == 0) { + // simple way to remove the node from the cache when no flux is going into it! + NeutronNodeWorld.removeNode(pos); + return; } - //burn baby burn - if(te instanceof TileEntityRBMKRod) { - TileEntityRBMKRod rod = (TileEntityRBMKRod)te; - - if(rod.getStackInSlot(0) != null && rod.getStackInSlot(0).getItem() instanceof ItemRBMKRod) { - rod.receiveFlux(stream, flux); - return 0; - } else { - return flux; - } + RBMKNeutronNode node = (RBMKNeutronNode) NeutronNodeWorld.getNode(pos); + + if(node == null) { + node = RBMKNeutronHandler.makeNode(this); + NeutronNodeWorld.addNode(node); } - - if(te instanceof TileEntityRBMKOutgasser) { - TileEntityRBMKOutgasser rod = (TileEntityRBMKOutgasser)te; - - if(!rod.canProcess()) { - return flux; - } + + for(ForgeDirection dir : fluxDirs) { + + Vec3 neutronVector = Vec3.createVectorHelper(dir.offsetX, dir.offsetY, dir.offsetZ); + + // Create new neutron streams + new RBMKNeutronHandler.RBMKNeutronStream(node, neutronVector, flux, ratio); } - - if(te instanceof IRBMKFluxReceiver) { - IRBMKFluxReceiver rod = (IRBMKFluxReceiver)te; - rod.receiveFlux(stream, flux); - return 0; - } - - //multiply neutron count with rod setting - if(te instanceof TileEntityRBMKControl) { - TileEntityRBMKControl control = (TileEntityRBMKControl)te; - - if(control.getMult() == 0.0D) - return 0; - - flux *= control.getMult(); - - return flux; - } - - //set neutrons to slow - if(te instanceof TileEntityRBMKModerator) { - stream = NType.SLOW; - return flux; - } - - //return the neutrons back to this with no further action required - if(te instanceof TileEntityRBMKReflector) { - this.receiveFlux(this.isModerated() ? NType.SLOW : stream, flux); - return 0; - } - - //break the neutron flow and nothign else - if(te instanceof TileEntityRBMKAbsorber) { - return 0; - } - - if(te instanceof TileEntityRBMKBase) { - return flux; - } - - int limit = RBMKDials.getColumnHeight(worldObj); - int hits = 0; - for(int h = 0; h <= limit; h++) { - - if(!worldObj.getBlock(x, y + h, z).isOpaqueCube()) - hits++; - } - - if(hits > 0) - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, (float) (flux * 0.05F * hits / (float)limit)); - - return 0; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - this.fluxFast = nbt.getDouble("fluxFast"); - this.fluxSlow = nbt.getDouble("fluxSlow"); + if (nbt.hasKey("fluxFast") || nbt.hasKey("fluxSlow")) { + // recalculate new values to keep stable operations + this.fluxQuantity = nbt.getDouble("fluxFast") + nbt.getDouble("fluxSlow"); + if (this.fluxQuantity > 0) + this.fluxRatio = nbt.getDouble("fluxFast") / fluxQuantity; + else + this.fluxRatio = 0; + } else { + this.fluxQuantity = nbt.getDouble("fluxQuantity"); + this.fluxRatio = nbt.getDouble("fluxMod"); + } this.hasRod = nbt.getBoolean("hasRod"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setDouble("fluxFast", this.fluxFast); - nbt.setDouble("fluxSlow", this.fluxSlow); + if (!diag) { + nbt.setDouble("fluxQuantity", this.lastFluxQuantity); + nbt.setDouble("fluxMod", this.lastFluxRatio); + } else { + nbt.setDouble("fluxSlow", this.fluxQuantity * (1 - fluxRatio)); + nbt.setDouble("fluxFast", this.fluxQuantity * fluxRatio); + } nbt.setBoolean("hasRod", this.hasRod); } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeDouble(this.lastFluxQuantity); + buf.writeDouble(this.lastFluxRatio); + buf.writeBoolean(this.hasRod); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.fluxQuantity = buf.readDouble(); + this.fluxRatio = buf.readDouble(); + this.hasRod = buf.readBoolean(); + } + public void getDiagData(NBTTagCompound nbt) { + diag = true; this.writeToNBT(nbt); - + diag = false; + if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { - + ItemRBMKRod rod = ((ItemRBMKRod)slots[0].getItem()); nbt.setString("f_yield", rod.getYield(slots[0]) + " / " + rod.yield + " (" + (rod.getEnrichment(slots[0]) * 100) + "%)"); @@ -275,60 +273,60 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM nbt.setString("f_heat", rod.getCoreHeat(slots[0]) + " / " + rod.getHullHeat(slots[0]) + " / " + rod.meltingPoint); } } - + @Override public void onMelt(int reduce) { boolean moderated = this.isModerated(); int h = RBMKDials.getColumnHeight(worldObj); reduce = MathHelper.clamp_int(reduce, 1, h); - + if(worldObj.rand.nextInt(3) == 0) reduce++; - + boolean corium = slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod; - - if(corium && slots[0].getItem() == ModItems.rbmk_fuel_drx) + + if(corium && slots[0].getItem() == ModItems.rbmk_fuel_drx) RBMKBase.digamma = true; - + slots[0] = null; if(corium) { - + for(int i = h; i >= 0; i--) { - - if(i <= h + 1 - reduce) { - worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.corium_block); - } else { - worldObj.setBlock(xCoord, yCoord + i, zCoord, Blocks.air); - } + worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.corium_block, 5, 3); worldObj.markBlockForUpdate(xCoord, yCoord + i, zCoord); } - + int count = 1 + worldObj.rand.nextInt(RBMKDials.getColumnHeight(worldObj)); - + for(int i = 0; i < count; i++) { spawnDebris(DebrisType.FUEL); } } else { this.standardMelt(reduce); } - + if(moderated) { - + int count = 2 + worldObj.rand.nextInt(2); - + for(int i = 0; i < count; i++) { spawnDebris(DebrisType.GRAPHITE); } } - + spawnDebris(DebrisType.ELEMENT); - + if(this.getBlockMetadata() == RBMKBase.DIR_NORMAL_LID.ordinal() + RBMKBase.offset) spawnDebris(DebrisType.LID); } + @Override + public RBMKNeutronHandler.RBMKType getRBMKType() { + return RBMKNeutronHandler.RBMKType.ROD; + } + @Override public ColumnType getConsoleType() { return ColumnType.FUEL; @@ -337,9 +335,9 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM @Override public NBTTagCompound getNBTForConsole() { NBTTagCompound data = new NBTTagCompound(); - + if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { - + ItemRBMKRod rod = ((ItemRBMKRod)slots[0].getItem()); data.setDouble("enrichment", rod.getEnrichment(slots[0])); data.setDouble("xenon", rod.getPoison(slots[0])); @@ -347,7 +345,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM data.setDouble("c_coreHeat", rod.getCoreHeat(slots[0])); data.setDouble("c_maxHeat", rod.meltingPoint); } - + return data; } @@ -377,32 +375,33 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM slots[0] = null; this.markDirty(); } - + // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "rbmk_fuel_rod"; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") - public Object[] getFluxSlow(Context context, Arguments args) { - return new Object[] {fluxSlow}; + public Object[] getFluxQuantity(Context context, Arguments args) { + return new Object[] {fluxQuantity}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") - public Object[] getFluxFast(Context context, Arguments args) { - return new Object[] {fluxFast}; + public Object[] getFluxRatio(Context context, Arguments args) { + return new Object[] {fluxRatio}; } - - @Callback(direct = true, limit = 16) + + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -411,7 +410,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -420,7 +419,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoreHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -429,7 +428,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSkinHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -438,34 +437,42 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") - public Object[] getInfo(Context context, Arguments args) { - Object OC_enrich_buf; - Object OC_poison_buf; - Object OC_hull_buf; - Object OC_core_buf; + public Object[] getType(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { - OC_enrich_buf = ItemRBMKRod.getEnrichment(slots[0]); - OC_poison_buf = ItemRBMKRod.getPoison(slots[0]); - OC_hull_buf = ItemRBMKRod.getHullHeat(slots[0]); - OC_core_buf = ItemRBMKRod.getCoreHeat(slots[0]); - } else { - OC_enrich_buf = "N/A"; - OC_poison_buf = "N/A"; - OC_hull_buf = "N/A"; - OC_core_buf = "N/A"; + return new Object[] {slots[0].getItem().getUnlocalizedName()}; } - return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + List returnValues = new ArrayList<>(); + if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { + returnValues.add(ItemRBMKRod.getHullHeat(slots[0])); + returnValues.add(ItemRBMKRod.getCoreHeat(slots[0])); + returnValues.add(ItemRBMKRod.getEnrichment(slots[0])); + returnValues.add(ItemRBMKRod.getPoison(slots[0])); + returnValues.add(slots[0].getItem().getUnlocalizedName()); + } else + for (int i = 0; i < 5; i++) + returnValues.add("N/A"); + + return new Object[] { + heat, returnValues.get(0), returnValues.get(1), + fluxQuantity, fluxRatio, returnValues.get(2), returnValues.get(3), returnValues.get(4), + ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + } + + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getModerated(Context context, Arguments args) { return new Object[] {((RBMKRod)this.getBlockType()).moderated}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; @@ -478,7 +485,18 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKRod(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { + data.setDouble(CompatEnergyControl.D_DEPLETION_PERCENT, ((1.0D - ItemRBMKRod.getEnrichment(slots[0])) * 100_000.0D) / 1_000.0D); + data.setDouble(CompatEnergyControl.D_XENON_PERCENT, ItemRBMKRod.getPoison(slots[0])); + data.setDouble(CompatEnergyControl.D_SKIN_C, ItemRBMKRod.getHullHeat(slots[0])); + data.setDouble(CompatEnergyControl.D_CORE_C, ItemRBMKRod.getCoreHeat(slots[0])); + data.setDouble(CompatEnergyControl.D_MELT_C, ((ItemRBMKRod) slots[0].getItem()).meltingPoint); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java index e8e284a07..a23c5f2e3 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java @@ -1,11 +1,16 @@ package com.hbm.tileentity.machine.rbmk; +import com.hbm.handler.neutron.NeutronNodeWorld; +import com.hbm.handler.neutron.RBMKNeutronHandler; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; +import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.util.Vec3; +import static com.hbm.handler.neutron.RBMKNeutronHandler.*; + public class TileEntityRBMKRodReaSim extends TileEntityRBMKRod { - + public TileEntityRBMKRodReaSim() { super(); } @@ -14,42 +19,37 @@ public class TileEntityRBMKRodReaSim extends TileEntityRBMKRod { public String getName() { return "container.rbmkReaSim"; } - + + private BlockPos pos; + @Override - protected void spreadFlux(NType type, double fluxOut) { + public void spreadFlux(double flux, double ratio) { + + if(pos == null) + pos = new BlockPos(this); + + if (flux == 0) { + // simple way to remove the node from the cache when no flux is going into it! + NeutronNodeWorld.removeNode(pos); + return; + } + + RBMKNeutronNode node = (RBMKNeutronNode) NeutronNodeWorld.getNode(pos); + + if(node == null) { + node = makeNode(this); + NeutronNodeWorld.addNode(node); + } - int range = RBMKDials.getReaSimRange(worldObj); int count = RBMKDials.getReaSimCount(worldObj); - - Vec3 dir = Vec3.createVectorHelper(1, 0, 0); - - for(int i = 0; i < count; i++) { - - stream = type; - double flux = fluxOut * RBMKDials.getReaSimOutputMod(worldObj); - - dir.rotateAroundY((float)(Math.PI * 2D * worldObj.rand.nextDouble())); - - for(int j = 1; j <= range; j++) { - int x = (int)Math.floor(0.5 + dir.xCoord * j); - int z = (int)Math.floor(0.5 + dir.zCoord * j); - int lastX = (int)Math.floor(0.5 + dir.xCoord * (j - 1)); - int lastZ = (int)Math.floor(0.5 + dir.zCoord * (j - 1)); - - //skip if the position is on the rod itself - if(x == 0 && z == 0) - continue; - - //skip if the current position is equal to the last position - if(x == lastX && z == lastZ) - continue; - - flux = runInteraction(xCoord + x, yCoord, zCoord + z, flux); - - if(flux <= 0) - break; - } + for (int i = 0; i < count; i++) { + Vec3 neutronVector = Vec3.createVectorHelper(1, 0, 0); + + neutronVector.rotateAroundY((float)(Math.PI * 2D * worldObj.rand.nextDouble())); + + new RBMKNeutronHandler.RBMKNeutronStream(makeNode(this), neutronVector, flux, ratio); + // Create new neutron streams } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java index 7c6278c84..0ebc3d3dc 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java @@ -1,15 +1,11 @@ package com.hbm.tileentity.machine.rbmk; -import com.hbm.packet.NBTPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.fluids.FluidTank; /** * Base class for RBMK components that have GUI slots and thus have to handle @@ -124,23 +120,6 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase return new int[] {}; } - public int getGaugeScaled(int i, FluidTank tank) { - return tank.getFluidAmount() * i / tank.getCapacity(); - } - - public void networkPack(NBTTagCompound nbt, int range) { - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); - } - - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - } - - public void handleButtonPacket(int value, int meta) { - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java index baa22c2c3..2fab338a9 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java @@ -1,24 +1,18 @@ package com.hbm.tileentity.machine.rbmk; +import com.hbm.handler.neutron.RBMKNeutronHandler; import com.hbm.inventory.container.ContainerRBMKStorage; import com.hbm.inventory.gui.GUIRBMKStorage; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements IRBMKLoadable, SimpleComponent { +public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements IRBMKLoadable { public TileEntityRBMKStorage() { super(12); @@ -46,6 +40,11 @@ public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements super.updateEntity(); } + @Override + public RBMKNeutronHandler.RBMKType getRBMKType() { + return RBMKNeutronHandler.RBMKType.OTHER; + } + @Override public ColumnType getConsoleType() { return ColumnType.STORAGE; @@ -91,35 +90,6 @@ public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements slots[0] = null; } - @Override - public String getComponentName() { - return "rbmk_storage_rod"; - } - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getCoordinates(Context context, Arguments args) { - return new Object[] {xCoord, yCoord, zCoord}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getHeat(Context context, Arguments args) { - return new Object[] {heat}; - } - - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getStored(Context context, Arguments args) { - return new Object[] {slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11]}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getInfo(Context context, Arguments args) { - return new Object[] {heat, slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11], xCoord, yCoord, zCoord}; - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerRBMKStorage(player.inventory, this); @@ -127,7 +97,7 @@ public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKStorage(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index d0bb7e4f8..fcffc21d1 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -2,17 +2,19 @@ package com.hbm.tileentity.machine.storage; import api.hbm.fluid.*; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerBarrel; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Corrosive; +import com.hbm.inventory.fluid.trait.FT_Polluting; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; import com.hbm.inventory.gui.GUIBarrel; import com.hbm.lib.Library; import com.hbm.saveddata.TomSaveData; +import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; @@ -20,17 +22,18 @@ import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.World; @@ -40,23 +43,23 @@ import java.util.List; import java.util.Set; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { - +public class TileEntityBarrel extends TileEntityMachineBase implements SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, CompatHandler.OCComponent, IFluidCopiable { + public FluidTank tank; public short mode = 0; public static final short modes = 4; public int age = 0; - public List list = new ArrayList(); protected boolean sendingBrake = false; + public byte lastRedstone = 0; public TileEntityBarrel() { super(6); - tank = new FluidTank(Fluids.NONE, 0, 0); + tank = new FluidTank(Fluids.NONE, 0); } public TileEntityBarrel(int capacity) { super(6); - tank = new FluidTank(Fluids.NONE, capacity, 0); + tank = new FluidTank(Fluids.NONE, capacity); } @Override @@ -64,37 +67,73 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return "container.barrel"; } + public byte getComparatorPower() { + if(tank.getFill() == 0) return 0; + double frac = (double) tank.getFill() / (double) tank.getMaxFill() * 15D; + return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); + } + + @Override + public long getDemand(FluidType type, int pressure) { + + if(this.mode == 2 || this.mode == 3 || this.sendingBrake) + return 0; + + if(tank.getPressure() != pressure) return 0; + + return type == tank.getTankType() ? tank.getMaxFill() - tank.getFill() : 0; + } + + @Override + public long transferFluid(FluidType type, int pressure, long fluid) { + long toTransfer = Math.min(getDemand(type, pressure), fluid); + tank.setFill(tank.getFill() + (int) toTransfer); + this.markChanged(); + return fluid - toTransfer; + } + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + + byte comp = this.getComparatorPower(); //do comparator shenanigans + if(comp != this.lastRedstone) { + this.markDirty(); + for(DirPos pos : getConPos()) this.updateRedstoneConnection(pos); + } + this.lastRedstone = comp; + tank.setType(0, 1, slots); tank.loadTank(2, 3, slots); tank.unloadTank(4, 5, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - + this.sendingBrake = true; tank.setFill(transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; - - age++; - if(age >= 20) - age = 0; - - if((mode == 1 || mode == 2) && (age == 9 || age == 19)) - fillFluidInit(tank.getTankType()); - + if(tank.getFill() > 0) { checkFluidInteraction(); } - - NBTTagCompound data = new NBTTagCompound(); - data.setShort("mode", mode); - this.networkPack(data, 50); + + this.networkPackNT(50); } } - + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeShort(mode); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + mode = buf.readShort(); + tank.deserialize(buf); + } + protected DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), @@ -105,18 +144,18 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z) }; } - + protected static int transmitFluidFairly(World world, FluidTank tank, IFluidConnector that, int fill, boolean connect, boolean send, DirPos[] connections) { - - Set nets = new HashSet(); - Set consumers = new HashSet(); + + Set nets = new HashSet<>(); + Set consumers = new HashSet<>(); FluidType type = tank.getTankType(); int pressure = tank.getPressure(); - + for(DirPos pos : connections) { - + TileEntity te = world.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); - + if(te instanceof IFluidConductor) { IFluidConductor con = (IFluidConductor) te; if(con.getPipeNet(type) != null) { @@ -124,38 +163,38 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc con.getPipeNet(type).unsubscribe(that); consumers.addAll(con.getPipeNet(type).getSubscribers()); } - + //if it's just a consumer, buffer it as a subscriber } else if(te instanceof IFluidConnector) { consumers.add((IFluidConnector) te); } } - + consumers.remove(that); if(fill > 0 && send) { - List con = new ArrayList(); + List con = new ArrayList<>(); con.addAll(consumers); con.removeIf(x -> x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid()); - + if(PipeNet.trackingInstances == null) { - PipeNet.trackingInstances = new ArrayList(); + PipeNet.trackingInstances = new ArrayList<>(); } - + PipeNet.trackingInstances.clear(); nets.forEach(x -> { if(x instanceof PipeNet) PipeNet.trackingInstances.add((PipeNet) x); }); - + fill = (int) PipeNet.fairTransfer(con, type, pressure, fill); } - + //resubscribe to buffered nets, if necessary if(connect) { nets.forEach(x -> x.subscribe(that)); } - + return fill; } @@ -169,7 +208,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc //if content is above 0 but still within capacity if(i == 2 && content > 0 && content <= tank.getMaxFill()) return true; - + return false; } @@ -182,23 +221,23 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc public int[] getAccessibleSlotsFromSide(int p_94128_1_) { return new int[] {2, 3, 4, 5}; } - + public void checkFluidInteraction() { - + Block b = this.getBlockType(); - + //for when you fill antimatter into a matter tank if(b != ModBlocks.barrel_antimatter && tank.getTankType().isAntimatter()) { worldObj.func_147480_a(xCoord, yCoord, zCoord, false); worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true); } - + //for when you fill hot or corrosive liquids into a plastic tank if(b == ModBlocks.barrel_plastic && (tank.getTankType().isCorrosive() || tank.getTankType().isHot())) { worldObj.func_147480_a(xCoord, yCoord, zCoord, false); worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F); } - + //for when you fill corrosive liquid into an iron tank if((b == ModBlocks.barrel_iron && tank.getTankType().isCorrosive()) || (b == ModBlocks.barrel_steel && tank.getTankType().hasTrait(FT_Corrosive.class) && tank.getTankType().getTrait(FT_Corrosive.class).getRating() > 50)) { @@ -206,109 +245,46 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc this.slots = new ItemStack[6]; worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.barrel_corroded); TileEntityBarrel barrel = (TileEntityBarrel)worldObj.getTileEntity(xCoord, yCoord, zCoord); - + if(barrel != null) { barrel.tank.setTankType(tank.getTankType()); barrel.tank.setFill(Math.min(barrel.tank.getMaxFill(), tank.getFill())); barrel.slots = copy; } - + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F); } - - if(b == ModBlocks.barrel_corroded && worldObj.rand.nextInt(3) == 0) { - tank.setFill(tank.getFill() - 1); + + if(b == ModBlocks.barrel_corroded ) { + if(worldObj.rand.nextInt(3) == 0) { + tank.setFill(tank.getFill() - 1); + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, 1F); + } + if(worldObj.rand.nextInt(3 * 60 * 20) == 0) worldObj.func_147480_a(xCoord, yCoord, zCoord, false); } - + //For when Tom's firestorm hits a barrel full of water if(tank.getTankType() == Fluids.WATER && TomSaveData.forWorld(worldObj).fire > 1e-5) { int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); - + if(light > 7) { worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true); } } } - - public void networkUnpack(NBTTagCompound data) { - mode = data.getShort("mode"); - } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(mode == 2 || mode == 3) - return 0; - - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + mode = nbt.getShort("mode"); tank.readFromNBT(nbt, "tank"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setShort("mode", mode); tank.writeToNBT(nbt, "tank"); } @@ -328,6 +304,16 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return new FluidTank[] { tank }; } + @Override + public int[] getFluidIDToCopy() { + return new int[] {tank.getTankType().getID()}; + } + + @Override + public FluidTank getTankToPaste() { + return tank; + } + @Override public void writeNBT(NBTTagCompound nbt) { if(tank.getFill() == 0) return; @@ -351,36 +337,64 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBarrel(player.inventory, this); } @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { return "ntm_fluid_tank"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluidStored(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getMaxStored(Context context, Arguments args) { return new Object[] {tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { return new Object[] {tank.getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getFluidStored", + "getMaxStored", + "getTypeStored", + "getInfo" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch (method) { + case "getFluidStored": + return getFluidStored(context, args); + case "getMaxStored": + return getMaxStored(context, args); + case "getTypeStored": + return getTypeStored(context, args); + case "getInfo": + return getInfo(context, args); + } + throw new NoSuchMethodException(); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java index e0c33c30a..45ede4cbc 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java @@ -5,7 +5,6 @@ import com.hbm.inventory.gui.GUICrateDesh; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.world.World; @@ -28,7 +27,7 @@ public class TileEntityCrateDesh extends TileEntityCrateBase { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrateDesh(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java index aec9bf3f2..88a398ca8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java @@ -5,7 +5,6 @@ import com.hbm.inventory.gui.GUICrateIron; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.world.World; @@ -28,9 +27,7 @@ public class TileEntityCrateIron extends TileEntityCrateBase { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrateIron(player.inventory, this); } - - } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java index 940f689c6..1af683e40 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java @@ -5,13 +5,11 @@ import com.hbm.inventory.gui.GUICrateSteel; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.world.World; -public class TileEntityCrateSteel extends TileEntityCrateBase implements ISidedInventory { +public class TileEntityCrateSteel extends TileEntityCrateBase { public TileEntityCrateSteel() { super(54); @@ -29,7 +27,7 @@ public class TileEntityCrateSteel extends TileEntityCrateBase implements ISidedI @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrateSteel(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTemplate.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTemplate.java new file mode 100644 index 000000000..a26b3e0b0 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTemplate.java @@ -0,0 +1,33 @@ +package com.hbm.tileentity.machine.storage; + +import com.hbm.inventory.container.ContainerCrateTemplate; +import com.hbm.inventory.gui.GUICrateTemplate; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public class TileEntityCrateTemplate extends TileEntityCrateBase { + + public TileEntityCrateTemplate() { + super(27); + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.crateTemplate"; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCrateTemplate(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICrateTemplate(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java index d6a1536b1..ecb1eca61 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java @@ -7,7 +7,6 @@ import com.hbm.items.ModItems; import api.hbm.block.ILaserable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -109,7 +108,7 @@ public class TileEntityCrateTungsten extends TileEntityCrateBase implements ILas @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrateTungsten(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java index 2d8782bcc..61acde31f 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java @@ -2,25 +2,21 @@ package com.hbm.tileentity.machine.storage; import com.hbm.inventory.container.ContainerFileCabinet; import com.hbm.inventory.gui.GUIFileCabinet; -import com.hbm.packet.NBTPacket; -import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.INBTPacketReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIProvider, INBTPacketReceiver { - +public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIProvider, IBufPacketReceiver { + private int timer = 0; private int playersUsing = 0; //meh, it's literally just two extra variables @@ -28,16 +24,16 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr public float prevLowerExtent = 0; public float upperExtent = 0; public float prevUpperExtent = 0; - + public TileEntityFileCabinet() { super(8); } - + @Override public String getInventoryName() { return "container.fileCabinet"; } - + @Override public void openInventory() { if(!worldObj.isRemote) this.playersUsing++; @@ -47,68 +43,69 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr public void closeInventory() { if(!worldObj.isRemote) this.playersUsing--; } - + + @Override public void serialize(ByteBuf buf) { + buf.writeInt(timer); + buf.writeInt(playersUsing); + } + + @Override public void deserialize(ByteBuf buf) { + timer = buf.readInt(); + playersUsing = buf.readInt(); + } + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(this.playersUsing > 0) { if(timer < 10) { timer++; } } else timer = 0; - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("timer", timer); - data.setInteger("playersUsing", this.playersUsing); - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); + + networkPackNT(25); } else { this.prevLowerExtent = lowerExtent; this.prevUpperExtent = upperExtent; } - + float openSpeed = playersUsing > 0 ? 1F / 16F : 1F / 25F; float maxExtent = 0.8F; - + if(this.playersUsing > 0) { if(lowerExtent == 0F && upperExtent == 0F) this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateOpen", 0.8F, 1.0F); else { if(upperExtent + openSpeed >= maxExtent && lowerExtent < maxExtent) this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateOpen", 0.5F, this.worldObj.rand.nextFloat() * 0.1F + 0.7F); - + if(lowerExtent + openSpeed >= maxExtent && lowerExtent < maxExtent) this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateOpen", 0.5F, this.worldObj.rand.nextFloat() * 0.1F + 0.7F); } - + this.lowerExtent += openSpeed; - + if(timer >= 10) this.upperExtent += openSpeed; - + } else if(lowerExtent > 0) { if(upperExtent - openSpeed < maxExtent / 2 && upperExtent >= maxExtent / 2 && upperExtent != lowerExtent) this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateClose", 0.8F, 1.0F); - + if(lowerExtent - openSpeed < maxExtent / 2 && lowerExtent >= maxExtent / 2) this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateClose", 0.8F, 1.0F); - + this.upperExtent -= openSpeed; this.lowerExtent -= openSpeed; } - + this.lowerExtent = MathHelper.clamp_float(lowerExtent, 0F, maxExtent); this.upperExtent = MathHelper.clamp_float(upperExtent, 0F, maxExtent); } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - this.timer = nbt.getInteger("timer"); - this.playersUsing = nbt.getInteger("playersUsing"); - } - + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerFileCabinet(player.inventory, this); @@ -116,7 +113,7 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIFileCabinet(player.inventory, this); } @@ -125,7 +122,7 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr public boolean isItemValidForSlot(int i, ItemStack stack) { return false; } - + @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { return false; @@ -135,12 +132,12 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr public boolean canExtractItem(int i, ItemStack itemStack, int j) { return false; } - + AxisAlignedBB bb = null; - + @Override public AxisAlignedBB getRenderBoundingBox() { - + if(bb == null) { bb = AxisAlignedBB.getBoundingBox( xCoord - 1, @@ -151,10 +148,10 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr zCoord + 1 ); } - + return bb; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java index 353573073..9ab3106a6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.inventory.fluid.FluidType; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.DirPos; @@ -42,18 +41,6 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { }; } - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord - 1, getTact(), type); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 594fec515..41681df6e 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -1,41 +1,47 @@ package com.hbm.tileentity.machine.storage; -import api.hbm.energy.*; +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyConductorMK2; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; +import api.hbm.tile.IInfoProviderEC; + import com.hbm.blocks.machine.MachineBattery; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.inventory.gui.GUIMachineBattery; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatEnergyControl; + import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyUser, IPersistentNBT, SimpleComponent, IGUIProvider { +public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long[] log = new long[20]; public long delta = 0; public long power = 0; + public long prevPowerState = 0; + + protected PowerNode node; //0: input only //1: buffer @@ -88,8 +94,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I switch(i) { case 0: case 1: - if(stack.getItem() instanceof IBatteryItem) - return true; + if(stack.getItem() instanceof IBatteryItem) return true; break; } @@ -135,7 +140,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(i == 0 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) { return true; } - if(i == 1 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) { + if(i == 1 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge(itemStack)) { return true; } } @@ -158,19 +163,43 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(!worldObj.isRemote && worldObj.getBlock(xCoord, yCoord, zCoord) instanceof MachineBattery) { + if(priority == null || priority.ordinal() == 0 || priority.ordinal() == 4) { + priority = ConnectionPriority.LOW; + } + + int mode = this.getRelevantMode(false); + + if(this.node == null || this.node.expired) { + + this.node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); + + if(this.node == null || this.node.expired) { + this.node = this.createNode(); + Nodespace.createNode(worldObj, this.node); + } + } + long prevPower = this.power; power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); - ////////////////////////////////////////////////////////////////////// - this.transmitPowerFairly(); - ////////////////////////////////////////////////////////////////////// + if(mode == mode_output || mode == mode_buffer) { + this.tryProvide(worldObj, xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN); + } else { + if(node != null && node.hasValidNet()) node.net.removeProvider(this); + } byte comp = this.getComparatorPower(); if(comp != this.lastRedstone) this.markDirty(); this.lastRedstone = comp; + if(mode == mode_input || mode == mode_buffer) { + if(node != null && node.hasValidNet()) node.net.addReceiver(this); + } else { + if(node != null && node.hasValidNet()) node.net.removeReceiver(this); + } + power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); long avg = (power + prevPower) / 2; @@ -182,133 +211,57 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I this.log[19] = avg; - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setLong("power", avg); - nbt.setLong("delta", delta); - nbt.setShort("redLow", redLow); - nbt.setShort("redHigh", redHigh); - nbt.setByte("priority", (byte) this.priority.ordinal()); - this.networkPack(nbt, 20); + prevPowerState = power; + + this.networkPackNT(20); } } - protected void transmitPowerFairly() { - - short mode = (short) this.getRelevantMode(); - - //HasSets to we don'T have any duplicates - Set nets = new HashSet(); - Set consumers = new HashSet(); - - //iterate over all sides - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - //if it's a cable, buffer both the network and all subscribers of the net - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - if(con.canConnect(dir.getOpposite()) && con.getPowerNet() != null) { - nets.add(con.getPowerNet()); - con.getPowerNet().unsubscribe(this); - consumers.addAll(con.getPowerNet().getSubscribers()); - } - - //if it's just a consumer, buffer it as a subscriber - } else if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - if(con.canConnect(dir.getOpposite())) { - consumers.add((IEnergyConnector) te); - } - } - } - - //send power to buffered consumers, independent of nets - if(this.power > 0 && (mode == mode_buffer || mode == mode_output)) { - List con = new ArrayList(); - con.addAll(consumers); - - if(PowerNet.trackingInstances == null) { - PowerNet.trackingInstances = new ArrayList(); - } - PowerNet.trackingInstances.clear(); - - nets.forEach(x -> { - if(x instanceof PowerNet) PowerNet.trackingInstances.add((PowerNet) x); - }); - - this.power = PowerNet.fairTransfer(con, this.power); - } - - //resubscribe to buffered nets, if necessary - if(mode == mode_buffer || mode == mode_input) { - nets.forEach(x -> x.subscribe(this)); - } - } - - protected void transmitPower() { - - short mode = (short) this.getRelevantMode(); - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - // first we make sure we're not subscribed to the network that we'll be supplying - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); - } - - //then we add energy - if(mode == mode_buffer || mode == mode_output) { - if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - - long max = getMaxTransfer(); - long toTransfer = Math.min(max, this.power); - long remainder = this.power - toTransfer; - this.power = toTransfer; - - long oldPower = this.power; - long transfer = this.power - con.transferPower(this.power); - this.power = oldPower - transfer; - - power += remainder; - } - } - - //then we subscribe if possible - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null) { - if(mode == mode_output || mode == mode_none) { - if(con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().unsubscribe(this); - } - } else if(!con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().subscribe(this); - } - } - } - } - } - - public long getMaxTransfer() { - return this.getMaxPower(); + public void onNodeDestroyedCallback() { + this.node = null; } @Override - public void networkUnpack(NBTTagCompound nbt) { + public void invalidate() { + super.invalidate(); + + if(!worldObj.isRemote) { + if(this.node != null) { + Nodespace.destroyNode(worldObj, xCoord, yCoord, zCoord); + } + } + } - this.power = nbt.getLong("power"); - this.delta = nbt.getLong("delta"); - this.redLow = nbt.getShort("redLow"); - this.redHigh = nbt.getShort("redHigh"); - this.priority = ConnectionPriority.values()[nbt.getByte("priority")]; + @Override public long getProviderSpeed() { + int mode = this.getRelevantMode(true); + return mode == mode_output || mode == mode_buffer ? this.getMaxPower() / 600 : 0; + } + + @Override public long getReceiverSpeed() { + int mode = this.getRelevantMode(true); + return mode == mode_input || mode == mode_buffer ? this.getMaxPower() / 200 : 0; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeLong(power); + buf.writeLong(delta); + buf.writeShort(redLow); + buf.writeShort(redHigh); + buf.writeByte(priority.ordinal()); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + power = buf.readLong(); + delta = buf.readLong(); + redLow = buf.readShort(); + redHigh = buf.readShort(); + priority = ConnectionPriority.values()[buf.readByte()]; } @Override @@ -316,13 +269,11 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return power; } - public short getRelevantMode() { - - if(worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord)) { - return this.redHigh; - } else { - return this.redLow; - } + private short modeCache = 0; + public short getRelevantMode(boolean useCache) { + if(useCache) return this.modeCache; + this.modeCache = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord) ? this.redHigh : this.redLow; + return this.modeCache; } private long bufferedMax; @@ -336,78 +287,25 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return bufferedMax; } - - /* - * SATAN - TECH - */ - @Override - public long transferPower(long power) { - int mode = this.getRelevantMode(); - - if(mode == mode_output || mode == mode_none) { - return power; - } - - this.power += power; - this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); - - if(this.power > this.getMaxPower()) { - - long overshoot = this.power - this.getMaxPower(); - this.power = this.getMaxPower(); - return overshoot; - } - - return 0; - } - - @Override - public long getTransferWeight() { - - int mode = this.getRelevantMode(); - - if(mode == mode_output || mode == mode_none) { - return 0; - } - - return Math.max(getMaxPower() - getPower(), 0); - } - - @Override - public boolean canConnect(ForgeDirection dir) { - return true; - } - - @Override - public void setPower(long power) { - this.power = power; - } - - @Override - public ConnectionPriority getPriority() { - return this.priority; - } + @Override public boolean canConnect(ForgeDirection dir) { return true; } + @Override public void setPower(long power) { this.power = power; } + @Override public ConnectionPriority getPriority() { return this.priority; } // do some opencomputer stuff @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { - return "ntm_energy_storage"; // need a way to somehow detect the first word of the energy storage block so people wont get confused when it comes to multiple energy storage blocks + return "ntm_energy_storage"; //ok if someone else can figure out how to do this that'd be nice (change the component name based on the type of storage block) } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower()}; + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower()}; - } - - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; @@ -417,6 +315,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public void writeNBT(NBTTagCompound nbt) { NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); + data.setLong("prevPowerState", prevPowerState); data.setShort("redLow", redLow); data.setShort("redHigh", redHigh); data.setInteger("priority", this.priority.ordinal()); @@ -427,6 +326,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public void readNBT(NBTTagCompound nbt) { NBTTagCompound data = nbt.getCompoundTag(NBT_PERSISTENT_KEY); this.power = data.getLong("power"); + this.prevPowerState = data.getLong("prevPowerState"); this.redLow = data.getShort("redLow"); this.redHigh = data.getShort("redHigh"); this.priority = ConnectionPriority.values()[data.getInteger("priority")]; @@ -439,7 +339,12 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineBattery(player.inventory, this); } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_DIFF_HE, (log[0] - log[19]) / 20L); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index b936d41b8..6065baa58 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -1,12 +1,13 @@ package com.hbm.tileentity.machine.storage; import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyConductor; -import api.hbm.energy.IEnergyConnector; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -17,25 +18,55 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { public float rotation = 0F; public static final long maxTransfer = 10_000_000_000_000_000L; + + @Override public long getProviderSpeed() { + int mode = this.getRelevantMode(true); + return mode == mode_output || mode == mode_buffer ? maxTransfer : 0; + } + + @Override public long getReceiverSpeed() { + int mode = this.getRelevantMode(true); + return mode == mode_input || mode == mode_buffer ? maxTransfer : 0; + } @Override public void updateEntity() { if(!worldObj.isRemote) { + + int mode = this.getRelevantMode(false); + + if(this.node == null || this.node.expired) { + + this.node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); + + if(this.node == null || this.node.expired) { + this.node = this.createNode(); + Nodespace.createNode(worldObj, this.node); + } + } long prevPower = this.power; power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); - ////////////////////////////////////////////////////////////////////// - this.transmitPowerFairly(); - ////////////////////////////////////////////////////////////////////// + if(mode == mode_output || mode == mode_buffer) { + this.tryProvide(worldObj, xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN); + } else { + if(node != null && node.hasValidNet()) node.net.removeProvider(this); + } byte comp = this.getComparatorPower(); if(comp != this.lastRedstone) this.markDirty(); this.lastRedstone = comp; + if(mode == mode_input || mode == mode_buffer) { + if(node != null && node.hasValidNet()) node.net.addReceiver(this); + } else { + if(node != null && node.hasValidNet()) node.net.removeReceiver(this); + } + power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); long avg = (power / 2 + prevPower / 2); @@ -47,13 +78,7 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { this.log[19] = avg; - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setLong("power", avg); - nbt.setLong("delta", delta); - nbt.setShort("redLow", redLow); - nbt.setShort("redHigh", redHigh); - nbt.setByte("priority", (byte) this.priority.ordinal()); - this.networkPack(nbt, 20); + this.networkPackNT(20); } if(worldObj.isRemote) { @@ -66,59 +91,15 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { } } } - - @Deprecated protected void transmitPower() { - - short mode = (short) this.getRelevantMode(); - - ForgeDirection dir = ForgeDirection.DOWN; - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); - } - - if(mode == 1 || mode == 2) { - if(te instanceof IEnergyConnector) { - IEnergyConnector con = (IEnergyConnector) te; - - long max = maxTransfer; - long toTransfer = Math.min(max, this.power); - long remainder = this.power - toTransfer; - this.power = toTransfer; - - long oldPower = this.power; - long transfer = this.power - con.transferPower(this.power); - this.power = oldPower - transfer; - - power += remainder; - } - } - - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null) { - if(mode == 2 || mode == 3) { - if(con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().unsubscribe(this); - } - } else if(!con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().subscribe(this); - } - } - } + @Override + public PowerNode createNode() { + return new PowerNode(new BlockPos(xCoord, yCoord, zCoord)).setConnections(new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y)); } @Override public long getPowerRemainingScaled(long i) { - double powerScaled = (double)power / (double)getMaxPower(); - return (long)(i * powerScaled); } @@ -126,11 +107,6 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { public long getMaxPower() { return Long.MAX_VALUE; } - - @Override - public long getTransferWeight() { - return Math.min(Math.max(this.getMaxPower() - getPower(), 0), maxTransfer); - } public float getSpeed() { return (float) Math.pow(Math.log(power * 0.75 + 1) * 0.05F, 5); @@ -146,4 +122,30 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public long transferPower(long power) { + + long overshoot = 0; + + // if power exceeds our transfer limit, truncate + if(power > maxTransfer) { + overshoot += power - maxTransfer; + power = maxTransfer; + } + + // this check is in essence the same as the default implementation, but re-arranged to never overflow the int64 range + // if the remaining power exceeds the power cap, truncate again + long freespace = this.getMaxPower() - this.getPower(); + + if(freespace < power) { + overshoot += power - freespace; + power = freespace; + } + + // what remains is sure to not exceed the transfer limit and the power cap (and therefore the int64 range) + this.setPower(this.getPower() + power); + + return overshoot; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 2b2c311b8..7c514664b 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -4,51 +4,41 @@ import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.CompatHandler.OCComponent; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.container.ContainerMachineFluidTank; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.trait.FT_Corrosive; -import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Amat; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; -import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; +import com.hbm.inventory.fluid.trait.*; +import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.inventory.gui.GUIMachineFluidTank; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.IOverpressurable; -import com.hbm.tileentity.IPersistentNBT; -import com.hbm.tileentity.IRepairable; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.*; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -58,7 +48,7 @@ import java.util.List; import java.util.Random; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineFluidTank extends TileEntityMachineBase implements IFluidContainer, SimpleComponent, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable { +public class TileEntityMachineFluidTank extends TileEntityMachineBase implements SimpleComponent, OCComponent, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable, IFluidCopiable{ public FluidTank tank; public short mode = 0; @@ -66,11 +56,10 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public boolean hasExploded = false; protected boolean sendingBrake = false; public boolean onFire = false; - + public byte lastRedstone = 0; public Explosion lastExplosion = null; public int age = 0; - public List list = new ArrayList(); public TileEntityMachineFluidTank() { super(6); @@ -81,7 +70,13 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public String getName() { return "container.fluidtank"; } - + + public byte getComparatorPower() { + if(tank.getFill() == 0) return 0; + double frac = (double) tank.getFill() / (double) tank.getMaxFill() * 15D; + return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); + } + @Override public void updateEntity() { @@ -106,20 +101,28 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements if(!hasExploded) { age++; - if(age >= 20) + if(age >= 20) { age = 0; + this.markChanged(); + } this.sendingBrake = true; tank.setFill(TileEntityBarrel.transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; - if((mode == 1 || mode == 2) && (age == 9 || age == 19)) - fillFluidInit(tank.getTankType()); - tank.loadTank(2, 3, slots); tank.setType(0, 1, slots); + } else { + for(DirPos pos : getConPos()) this.tryUnsubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ()); } - + + byte comp = this.getComparatorPower(); //comparator shit + if(comp != this.lastRedstone) { + this.markDirty(); + for(DirPos pos : getConPos()) this.updateRedstoneConnection(pos); + } + this.lastRedstone = comp; + if(tank.getFill() > 0) { if(tank.getTankType().isAntimatter()) { new ExplosionVNT(worldObj, xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, 5F).makeAmat().setBlockAllocator(null).setBlockProcessor(null).explode(); @@ -148,12 +151,33 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements tank.unloadTank(4, 5, slots); - NBTTagCompound data = new NBTTagCompound(); - data.setShort("mode", mode); - data.setBoolean("hasExploded", hasExploded); - this.tank.writeToNBT(data, "t"); - this.networkPack(data, 150); + this.networkPackNT(150); } + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 2.875, zCoord + 1).offset(dir.offsetX * 0.5 - rot.offsetX * 2.25, 0, dir.offsetZ * 0.5 - rot.offsetZ * 2.25)); + + for(EntityPlayer player : players) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.isOnLadder = true; + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeShort(mode); + buf.writeBoolean(hasExploded); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + mode = buf.readShort(); + hasExploded = buf.readBoolean(); + tank.deserialize(buf); } /** called when the tank breaks due to hazardous materials or external force, can be used to quickly void part of the tank or spawn a mushroom cloud */ @@ -182,9 +206,8 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements Random rand = worldObj.rand; ParticleUtil.spawnGasFlame(worldObj, xCoord + rand.nextDouble(), yCoord + 0.5 + rand.nextDouble(), zCoord + rand.nextDouble(), rand.nextGaussian() * 0.2, 0.1, rand.nextGaussian() * 0.2); - if(worldObj.getTotalWorldTime() % 20 == 0) { - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 50); - if(type.hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 50); + if(worldObj.getTotalWorldTime() % 5 == 0) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.BURN, amount * 5); } } else if(type.hasTrait(FT_Gaseous.class) || type.hasTrait(FT_Gaseous_ART.class)) { @@ -199,6 +222,10 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements data.setInteger("color", tank.getTankType().getColor()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 1, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); } + + if(worldObj.getTotalWorldTime() % 5 == 0 ) { + FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, amount * 5); + } } } @@ -244,12 +271,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements }; } - public void networkUnpack(NBTTagCompound data) { - this.mode = data.getShort("mode"); - this.hasExploded = data.getBoolean("hasExploded"); - this.tank.readFromNBT(data, "t"); - } - public void handleButtonPacket(int value, int meta) { mode = (short) ((mode + 1) % modes); this.markChanged(); @@ -279,72 +300,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public double getMaxRenderDistanceSquared() { return 65536.0D; } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(mode == 2 || mode == 3 || this.sendingBrake) - return 0; - - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -421,6 +376,16 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements return (mode == 0 || mode == 1) ? new FluidTank[] {tank} : new FluidTank[0]; } + @Override + public int[] getFluidIDToCopy() { + return new int[] {tank.getTankType().getID()}; + } + + @Override + public FluidTank getTankToPaste() { + return tank; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineFluidTank(player.inventory, (TileEntityMachineFluidTank) world.getTileEntity(x, y, z)); @@ -428,7 +393,7 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineFluidTank(player.inventory, (TileEntityMachineFluidTank) world.getTileEntity(x, y, z)); } @@ -437,7 +402,7 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements return this.hasExploded; } - List repair = new ArrayList(); + List repair = new ArrayList<>(); @Override public List getRepairMaterials() { @@ -455,31 +420,58 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements } @Override + @Optional.Method(modid = "OpenComputers") public String getComponentName() { - return "ntm_tank"; + return "ntm_fluid_tank"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluidStored(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getMaxStored(Context context, Arguments args) { return new Object[] {tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { return new Object[] {tank.getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { + return new String[] { + "getFluidStored", + "getMaxStored", + "getTypeStored", + "getInfo"}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch (method) { + case "getFluidStored": + return getFluidStored(context, args); + case "getMaxStored": + return getMaxStored(context, args); + case "getTypeStored": + return getTypeStored(context, args); + case "getInfo": + return getInfo(context, args); + } + throw new NoSuchMethodException(); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java index daade6ad6..395b8a9c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java @@ -1,7 +1,6 @@ package com.hbm.tileentity.machine.storage; import com.hbm.blocks.BlockDummyable; -import com.hbm.inventory.fluid.FluidType; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -23,20 +22,6 @@ public class TileEntityMachineOrbus extends TileEntityBarrel { @Override public void checkFluidInteraction() { } //NO! - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - for(int i = -1; i < 6; i += 6) { - this.fillFluid(xCoord, yCoord + i, zCoord, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + dir.offsetX, yCoord + i, zCoord + dir.offsetZ, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + rot.offsetX, yCoord + i, zCoord + rot.offsetZ, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + dir.offsetX + rot.offsetX, yCoord + i, zCoord + dir.offsetZ + rot.offsetZ, this.getTact(), this.tank.getTankType()); - } - } - protected DirPos[] conPos; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java index 4241ac5cc..454abb188 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java @@ -1,248 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerPuF6Tank; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachinePuF6Tank; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -public class TileEntityMachinePuF6Tank extends TileEntity implements ISidedInventory, IFluidContainer, IGUIProvider { - - private ItemStack slots[]; - - public FluidTank tank; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1, 3}; - private static final int[] slots_side = new int[] {2}; - - private String customName; - - public TileEntityMachinePuF6Tank() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.PUF6, 64000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.puf6_tank"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0 && stack.getItem() == ModItems.cell_puf6) - return true; - if(i == 2 && stack.getItem() == ModItems.cell_empty) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tank.readFromNBT(nbt, "content"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tank.writeToNBT(nbt, "content"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void updateEntity() { - if(!worldObj.isRemote) - { - tank.loadTank(0, 1, slots); - tank.unloadTank(2, 3, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerPuF6Tank(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachinePuF6Tank(player.inventory, this); - } -} +public class TileEntityMachinePuF6Tank extends TileEntity { } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java index 8cde23b50..2b84ce208 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java @@ -1,250 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerUF6Tank; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineUF6Tank; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInventory, IFluidContainer, IGUIProvider { - - private ItemStack slots[]; - - //public static final int maxFill = 64 * 3; - public FluidTank tank; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1, 3}; - private static final int[] slots_side = new int[] {2}; - - private String customName; - - public TileEntityMachineUF6Tank() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.UF6, 64000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.uf6_tank"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0 && stack.getItem() == ModItems.cell_uf6) - return true; - if(i == 2 && stack.getItem() == ModItems.cell_empty) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tank.readFromNBT(nbt, "content"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tank.writeToNBT(nbt, "content"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - tank.loadTank(0, 1, slots); - tank.unloadTank(2, 3, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerUF6Tank(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineUF6Tank(player.inventory, this); - } -} +public class TileEntityMachineUF6Tank extends TileEntity { } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index 61af46838..d0d5abda5 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -1,14 +1,15 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerMassStorage; import com.hbm.inventory.gui.GUIMassStorage; import com.hbm.items.ModItems; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IControlReceiverFilter; +import com.hbm.util.BufferUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -16,19 +17,19 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPacketReceiver, IControlReceiver { - +public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPacketReceiver, IControlReceiverFilter { + private int stack = 0; public boolean output = false; private int capacity; public int redstone = 0; - + @SideOnly(Side.CLIENT) public ItemStack type; - + public TileEntityMassStorage() { super(3); } - + public TileEntityMassStorage(int capacity) { this(); this.capacity = capacity; @@ -38,83 +39,85 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa public String getInventoryName() { return "container.massStorage"; } - + @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + int newRed = this.getStockpile() * 15 / this.capacity; - + if(newRed != this.redstone) { this.redstone = newRed; this.markDirty(); } - + if(slots[0] != null && slots[0].getItem() == ModItems.fluid_barrel_infinite) { this.stack = this.getCapacity(); } - + if(this.getType() == null) this.stack = 0; - + if(getType() != null && getStockpile() < getCapacity() && slots[0] != null && slots[0].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[0], getType())) { - + int remaining = getCapacity() - getStockpile(); int toRemove = Math.min(remaining, slots[0].stackSize); this.decrStackSize(0, toRemove); this.stack += toRemove; this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); } - + if(output && getType() != null) { - + if(slots[2] != null && !(slots[2].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[2], getType()))) { return; } - + int amount = Math.min(getStockpile(), getType().getMaxStackSize()); - + if(amount > 0) { if(slots[2] == null) { slots[2] = slots[1].copy(); slots[2].stackSize = amount; - this.stack -= amount; } else { amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); slots[2].stackSize += amount; - this.stack -= amount; } + this.stack -= amount; } } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("stack", getStockpile()); - data.setBoolean("output", output); - if(slots[1] != null) slots[1].writeToNBT(data); - INBTPacketReceiver.networkPack(this, data, 15); + + networkPackNT(15); } } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.stack = nbt.getInteger("stack"); - this.output = nbt.getBoolean("output"); - this.type = ItemStack.loadItemStackFromNBT(nbt); + public void serialize(ByteBuf buf) { + buf.writeInt(this.stack); + buf.writeBoolean(this.output); + BufferUtil.writeItemStack(buf, this.slots[1]); } - + + @Override + public void deserialize(ByteBuf buf) { + this.stack = buf.readInt(); + this.output = buf.readBoolean(); + this.type = BufferUtil.readItemStack(buf); + } + public int getCapacity() { return capacity; } - + public ItemStack getType() { return slots[1] == null ? null : slots[1].copy(); } - + public int getStockpile() { return stack; } - + public void setStockpile(int stack) { this.stack = stack; } @@ -141,7 +144,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa this.output = nbt.getBoolean("output"); this.capacity = nbt.getInteger("capacity"); this.redstone = nbt.getByte("redstone"); - + if(this.capacity <= 0) { this.capacity = 10_000; } @@ -156,35 +159,44 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa nbt.setByte("redstone", (byte) redstone); } + @Override + public void nextMode(int i) { + + } + @Override public void receiveControl(NBTTagCompound data) { + if(data.hasKey("provide") && slots[1] != null) { - + if(this.getStockpile() == 0) { return; } - + int amount = data.getBoolean("provide") ? slots[1].getMaxStackSize() : 1; amount = Math.min(amount, getStockpile()); - + if(slots[2] != null && !(slots[2].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[2], getType()))) { return; } - + if(slots[2] == null) { slots[2] = slots[1].copy(); slots[2].stackSize = amount; - this.stack -= amount; } else { amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); slots[2].stackSize += amount; - this.stack -= amount; } + this.stack -= amount; } - + if(data.hasKey("toggle")) { this.output = !output; } + if(data.hasKey("slot") && this.getStockpile() <= 0){ + setFilterContents(data); + if(slots[1] != null) slots[1].stackSize = 1; + } } @Override @@ -209,7 +221,12 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMassStorage(player.inventory, this); } + + @Override + public int[] getFilterSlots() { + return new int[]{1,2}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java index f9197b479..95f4c63cd 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java @@ -5,7 +5,6 @@ import com.hbm.inventory.gui.GUISafe; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; @@ -29,7 +28,7 @@ public class TileEntitySafe extends TileEntityCrateBase implements ISidedInvento @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUISafe(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySoyuzCapsule.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySoyuzCapsule.java index f4d785a7d..2d024986c 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySoyuzCapsule.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySoyuzCapsule.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.TileEntityInventoryBase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.util.AxisAlignedBB; @@ -37,7 +36,7 @@ public class TileEntitySoyuzCapsule extends TileEntityInventoryBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUISoyuzCapsule(player.inventory, this); } diff --git a/src/main/java/com/hbm/tileentity/network/IDroneLinkable.java b/src/main/java/com/hbm/tileentity/network/IDroneLinkable.java new file mode 100644 index 000000000..eae54d23e --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/IDroneLinkable.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity.network; + +import com.hbm.util.fauxpointtwelve.BlockPos; + +public interface IDroneLinkable { + + public BlockPos getPoint(); + public void setNextTarget(int x, int y, int z); +} diff --git a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java new file mode 100644 index 000000000..94e96b317 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java @@ -0,0 +1,117 @@ +package com.hbm.tileentity.network; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map.Entry; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.util.HashedSet; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; + +public class RequestNetwork { + + private static int timer = 0; + public static HashMap>> activeWaypoints = new HashMap(); + public static final int maxAge = 2_000; + + public static void updateEntries() { + + if(timer < 0) { + timer--; + return; + } + + timer = 20; + + Iterator worldIt = activeWaypoints.entrySet().iterator(); + + // iterate over each dim + while(worldIt.hasNext()) { + Entry>> worldEntry = (Entry) worldIt.next(); + Iterator chunkIt = worldEntry.getValue().entrySet().iterator(); + + // iterate over each chunk + while(chunkIt.hasNext()) { + + Entry> chunkEntry = (Entry) chunkIt.next(); + Iterator pathIt = chunkEntry.getValue().iterator(); + + // iterate over each path node + while(pathIt.hasNext()) { + PathNode node = pathIt.next(); + + // if the lease timestamp is too far back, time out the node + if(node.lease < System.currentTimeMillis() - maxAge) { + node.reachableNodes.clear(); // just to be sure there's no cyclical references happening creating memory leaks + pathIt.remove(); + } + } + + // if no more nodes exist, delete the chunk entry + if(chunkEntry.getValue().size() == 0) chunkIt.remove(); + } + + // if no more chunk entries exist, delete the world entry + if(worldEntry.getValue().size() == 0) worldIt.remove(); + + // cleaning up all the entries if the lists are empty ensures that even if a different save is loaded, + // the positions will eventually time out leading to all the old save crap being deleted, preventing a memory leak. + // it's probably an inconsequential memory leak but i'd rather we don't + } + + } + + /** Generic path node, contains nothing but a position and a timestamp */ + public static class PathNode { + public BlockPos pos; + public long lease; + public boolean active = true; + public HashedSet reachableNodes; + public PathNode(BlockPos pos, HashedSet reachableNodes) { + this.pos = pos; + this.reachableNodes = new HashedSet<>(reachableNodes); + this.lease = System.currentTimeMillis(); + } + + @Override public int hashCode() { return pos.hashCode(); } + @Override public boolean equals(Object toCompare) { + if(this == toCompare) { + return true; + } else if(!(toCompare instanceof PathNode)) { + return false; + } else { + PathNode node = (PathNode) toCompare; + if(this.pos.getX() != node.pos.getX()) { + return false; + } else if(this.pos.getY() != node.pos.getY()) { + return false; + } else { + return this.pos.getZ() == node.pos.getZ(); + } + } + } + } + + /** Node created by providers, lists available items */ + public static class OfferNode extends PathNode { + public List offer; + public OfferNode(BlockPos pos, HashedSet reachableNodes, List offer) { + super(pos, reachableNodes); + this.offer = offer; + } + } + + /** Node created by requesters, lists requested AStacks */ + public static class RequestNode extends PathNode { + public List request; + public RequestNode(BlockPos pos, HashedSet reachableNodes, List request) { + super(pos, reachableNodes); + this.request = request; + } + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java index 71b37ab3c..d88b68cc5 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java @@ -1,106 +1,55 @@ package com.hbm.tileentity.network; -import api.hbm.energy.IEnergyConductor; -import api.hbm.energy.IPowerNet; -import api.hbm.energy.PowerNet; -import net.minecraft.tileentity.TileEntity; +import api.hbm.energymk2.IEnergyConductorMK2; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; +import com.hbm.tileentity.TileEntityLoadedBase; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCableBaseNT extends TileEntity implements IEnergyConductor { - - protected IPowerNet network; +public class TileEntityCableBaseNT extends TileEntityLoadedBase implements IEnergyConductorMK2 { + + protected PowerNode node; @Override public void updateEntity() { - - if(!worldObj.isRemote && canUpdate()) { - - //we got here either because the net doesn't exist or because it's not valid, so that's safe to assume - this.setPowerNet(null); - - this.connect(); - - if(this.getPowerNet() == null) { - this.setPowerNet(new PowerNet().joinLink(this)); + + if(!worldObj.isRemote) { + + if(this.node == null || this.node.expired) { + + if(this.shouldCreateNode()) { + this.node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); + + if(this.node == null || this.node.expired) { + this.node = this.createNode(); + Nodespace.createNode(worldObj, this.node); + } + } } } } - - protected void connect() { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - if(te instanceof IEnergyConductor) { - - IEnergyConductor conductor = (IEnergyConductor) te; - - if(!conductor.canConnect(dir.getOpposite())) - continue; - - if(this.getPowerNet() == null && conductor.getPowerNet() != null) { - conductor.getPowerNet().joinLink(this); - } - - if(this.getPowerNet() != null && conductor.getPowerNet() != null && this.getPowerNet() != conductor.getPowerNet()) { - conductor.getPowerNet().joinNetworks(this.getPowerNet()); - } - } - } + + public boolean shouldCreateNode() { + return true; + } + + public void onNodeDestroyedCallback() { + this.node = null; } @Override public void invalidate() { super.invalidate(); - + if(!worldObj.isRemote) { - if(this.network != null) { - this.network.reevaluate(); - this.network = null; + if(this.node != null) { + Nodespace.destroyNode(worldObj, xCoord, yCoord, zCoord); } } } - /** - * Only update until a power net is formed, in >99% of the cases it should be the first tick. Everything else is handled by neighbors and the net itself. - */ - @Override - public boolean canUpdate() { - return (this.network == null || !this.network.isValid()) && !this.isInvalid(); - } - @Override public boolean canConnect(ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN; } - - @Override - public long getPower() { - return 0; - } - - @Override - public long getMaxPower() { - return 0; - } - - @Override - public void setPowerNet(IPowerNet network) { - this.network = network; - } - - @Override - public long transferPower(long power) { - - if(this.network == null) - return power; - - return this.network.transferPower(power); - } - - @Override - public IPowerNet getPowerNet() { - return this.network; - } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java b/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java index e8a80f871..acdffcd99 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCableSwitch.java @@ -1,33 +1,26 @@ package com.hbm.tileentity.network; -import api.hbm.energy.PowerNet; +import api.hbm.energymk2.Nodespace; public class TileEntityCableSwitch extends TileEntityCableBaseNT { @Override public boolean canUpdate() { - return this.worldObj != null && this.getBlockMetadata() == 1 && super.canUpdate(); + return super.canUpdate(); } public void updateState() { //if the meta is 0 (OFF) and there is a net present, destroy and de-reference it. //that should be all, since the state being 0 also prevents the TE from updating and joining the new net. - if(this.getBlockMetadata() == 0 && this.network != null) { - this.network.reevaluate(); - this.network = null; - } - - if(this.getBlockMetadata() == 1) { - this.connect(); - - if(this.getPowerNet() == null) { - new PowerNet().joinLink(this); - } + if(this.getBlockMetadata() == 0 && this.node != null) { + Nodespace.destroyNode(worldObj, xCoord, yCoord, zCoord); + this.node = null; } } - public boolean canReevaluate() { - return super.canReevaluate() && this.getBlockMetadata() == 1; + @Override + public boolean shouldCreateNode() { + return this.getBlockMetadata() == 1; } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java index dc20b8f8d..baa262982 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java @@ -1,9 +1,9 @@ package com.hbm.tileentity.network; -import java.util.ArrayList; -import java.util.List; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyConductor; +import api.hbm.energymk2.Nodespace.PowerNode; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; @@ -24,33 +24,16 @@ public class TileEntityConnector extends TileEntityPylonBase { public double getMaxWireLength() { return 10; } - + @Override - public List getConnectionPoints() { - List pos = new ArrayList(connected); - + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); - //pos.add(new int[] {xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ}); - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - if(te instanceof IEnergyConductor) { - - IEnergyConductor conductor = (IEnergyConductor) te; - - if(conductor.canConnect(dir.getOpposite())) { - - if(this.getPowerNet() == null && conductor.getPowerNet() != null) { - conductor.getPowerNet().joinLink(this); - } - - if(this.getPowerNet() != null && conductor.getPowerNet() != null && this.getPowerNet() != conductor.getPowerNet()) { - conductor.getPowerNet().joinNetworks(this.getPowerNet()); - } - } - } - - return pos; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN), + new DirPos(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir)); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + return node; } @Override diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java index 941f83c1c..3d7072304 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java @@ -1,108 +1,105 @@ package com.hbm.tileentity.network; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.calc.Location; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyConnector; +import api.hbm.energymk2.IEnergyReceiverMK2; +import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyReceiver; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEnergyConnector, IEnergyHandler { +import java.io.IOException; + +public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEnergyReceiverMK2, IEnergyHandler, IConfigurableMachine { //Thanks to the great people of Fusion Warfare for helping me with the original implementation of the RF energy API + + public long power; + public final long maxPower = 5_000_000; + public static long heInput = 5; + public static long rfOutput = 1; + public static double inputDecay = 0.0; + public EnergyStorage storage = new EnergyStorage(1_000_000, 1_000_000, 1_000_000); @Override public void updateEntity() { if (!worldObj.isRemote) { - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) + + long rfCreated = Math.min(storage.getMaxEnergyStored() - storage.getEnergyStored(), power / heInput * rfOutput); + this.power -= rfCreated * heInput / rfOutput; + this.storage.setEnergyStored((int) (storage.getEnergyStored() + rfCreated)); + if(power > 0) this.power *= (1D - inputDecay); + if(rfCreated > 0) this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + + for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - } - } - - @Override - public boolean canConnectEnergy(ForgeDirection from) { - return true; - } - - @Override - public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { - return 0; - } - - @Override - public int getEnergyStored(ForgeDirection from) { - return 0; - } - - @Override - public int getMaxEnergyStored(ForgeDirection from) { - return 0; - } - - @Override - public long getPower() { - return 0; - } - - @Override - public long getMaxPower() { - return Integer.MAX_VALUE / 4; - } - - private long lastTransfer = 0; - - @Override - public long getTransferWeight() { - - if(lastTransfer > 0) { - return lastTransfer * 2; - } else { - return getMaxPower(); - } - } - - @Override - public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { - return 0; - } - - private boolean recursionBrake = false; - - @Override - public long transferPower(long power) { - - if(recursionBrake) - return power; - - recursionBrake = true; - - // we have to limit the transfer amount because otherwise FEnSUs would overflow the RF output, twice - long out = Math.min(power, Long.MAX_VALUE / 4); - int toRF = (int) Math.min(Integer.MAX_VALUE, out * 4); - int rfTransferred = 0; - int totalTransferred = 0; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Location loc = new Location(worldObj, xCoord, yCoord, zCoord).add(dir); - TileEntity entity = loc.getTileEntity(); - - if(entity != null && entity instanceof IEnergyReceiver) { - IEnergyReceiver receiver = (IEnergyReceiver) entity; - rfTransferred = receiver.receiveEnergy(dir.getOpposite(), toRF, false); - totalTransferred += rfTransferred; - - toRF -= rfTransferred; //to prevent energy duping + Location loc = new Location(worldObj, xCoord, yCoord, zCoord).add(dir); + TileEntity entity = loc.getTileEntity(); + + if (entity != null && entity instanceof IEnergyReceiver) { + IEnergyReceiver receiver = (IEnergyReceiver) entity; + + int maxExtract = storage.getMaxExtract(); + int maxAvailable = storage.extractEnergy(maxExtract, true); + int energyTransferred = receiver.receiveEnergy(dir.getOpposite(), maxAvailable, false); + + storage.extractEnergy(energyTransferred, false); + } } } + } - recursionBrake = false; - lastTransfer = totalTransferred / 4; + @Override public boolean canConnectEnergy(ForgeDirection from) { return true; } + @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { return 0; } + @Override public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { return storage.extractEnergy(maxExtract, simulate); } + @Override public int getEnergyStored(ForgeDirection from) { return storage.getEnergyStored(); } + @Override public int getMaxEnergyStored(ForgeDirection from) { return storage.getMaxEnergyStored(); } + + @Override public void setPower(long i) { power = i; } + @Override public long getPower() { return power; } + @Override public long getMaxPower() { return maxPower; } + @Override public ConnectionPriority getPriority() { return ConnectionPriority.LOW; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); - return power - (totalTransferred / 4); + this.power = nbt.getLong("power"); + storage.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + storage.writeToNBT(nbt); + } + + @Override + public String getConfigName() { + return "HEToRFConverter"; + } + + @Override + public void readIfPresent(JsonObject obj) { + heInput = IConfigurableMachine.grab(obj, "L:HE_Used", heInput); + rfOutput = IConfigurableMachine.grab(obj, "L:RF_Created", rfOutput); + inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay2", inputDecay); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:HE_Used").value(heInput); + writer.name("L:RF_Created").value(rfOutput); + writer.name("D:inputDecay2").value(inputDecay); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java index 7346c5066..989b8e354 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java @@ -1,73 +1,87 @@ package com.hbm.tileentity.network; -import com.hbm.interfaces.Untested; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IEnergyGenerator; +import api.hbm.energymk2.IEnergyProviderMK2; +import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyHandler; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEnergyGenerator, IEnergyHandler { +import java.io.IOException; + +public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEnergyProviderMK2, IEnergyHandler, IConfigurableMachine { + + public long power; + public final long maxPower = 5_000_000; + public static long rfInput = 2; + public static long heOutput = 5; + public static double inputDecay = 0.0; + + public EnergyStorage storage = new EnergyStorage(1_000_000, 1_000_000, 1_000_000); @Override - public void setPower(long power) { - subBuffer = power; - } - - @Override - public long getPower() { - return subBuffer; - } - - @Override - public long getMaxPower() { - return subBuffer; - } - - @Override - public boolean canConnectEnergy(ForgeDirection from) { - return true; - } - - private long subBuffer; - private boolean recursionBrake = false; - - @Untested - @Override - public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { + public void updateEntity() { - if(recursionBrake) - return 0; - - if(simulate) - return maxReceive; - - recursionBrake = true; - - long capacity = maxReceive / 4L; - subBuffer = capacity; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + if (!worldObj.isRemote) { + + long rfCreated = Math.min(storage.getEnergyStored(), (maxPower - power) * rfInput / heOutput); + storage.setEnergyStored((int) (storage.getEnergyStored() - rfCreated)); + power += rfCreated * heOutput / rfInput; + if(storage.getEnergyStored() > 0) storage.extractEnergy((int) Math.ceil(storage.getEnergyStored() * inputDecay), false); + if(rfCreated > 0) this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } } + } + + @Override public boolean canConnectEnergy(ForgeDirection from) { return true; } + @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { return storage.receiveEnergy(maxReceive, simulate); } + @Override public int getEnergyStored(ForgeDirection from) { return storage.getEnergyStored(); } + @Override public int getMaxEnergyStored(ForgeDirection from) { return storage.getMaxEnergyStored(); } + @Override public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { return 0; } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); - recursionBrake = false; + this.power = nbt.getLong("power"); + storage.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); - return (int) ((capacity - subBuffer) * 4L); + nbt.setLong("power", power); + storage.writeToNBT(nbt); } @Override - public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { - return 0; + public String getConfigName() { + return "RFToHEConverter"; } @Override - public int getEnergyStored(ForgeDirection from) { - return 0; + public void readIfPresent(JsonObject obj) { + rfInput = IConfigurableMachine.grab(obj, "L:RF_Used2", rfInput); + heOutput = IConfigurableMachine.grab(obj, "L:HE_Created2", heOutput); + inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay2", inputDecay); } @Override - public int getMaxEnergyStored(ForgeDirection from) { - return 1000000; + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:RF_Used2").value(rfInput); + writer.name("L:HE_Created2").value(heOutput); + writer.name("D:inputDecay2").value(inputDecay); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java new file mode 100644 index 000000000..ef464547d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java @@ -0,0 +1,182 @@ +package com.hbm.tileentity.network; + +import com.hbm.interfaces.ICopiable; +import com.hbm.tileentity.IControlReceiverFilter; +import com.hbm.tileentity.TileEntityMachineBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.Constants; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class TileEntityCraneBase extends TileEntityMachineBase implements ICopiable { + + public TileEntityCraneBase(int scount) { + super(scount); + } + + // extension to the meta system + // for compatibility purposes, normal meta values are still used by default + private ForgeDirection outputOverride = ForgeDirection.UNKNOWN; + + // for extra stability in case the screwdriver action doesn't get synced to + // other clients + private ForgeDirection cachedOutputOverride = ForgeDirection.UNKNOWN; + + @Override + public void updateEntity() { + if(hasWorldObj() && worldObj.isRemote) { + if(cachedOutputOverride != outputOverride) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + cachedOutputOverride = outputOverride; + } + } + } + + public ForgeDirection getInputSide() { + return ForgeDirection.getOrientation(getBlockMetadata()); + } + + public ForgeDirection getOutputSide() { + ForgeDirection override = getOutputOverride(); + return override != ForgeDirection.UNKNOWN ? override : ForgeDirection.getOrientation(getBlockMetadata()).getOpposite(); + } + + public ForgeDirection getOutputOverride() { + return outputOverride; + } + + public void setOutputOverride(ForgeDirection direction) { + ForgeDirection oldSide = getOutputSide(); + if(oldSide == direction) direction = direction.getOpposite(); + + outputOverride = direction; + + if(direction == getInputSide()) + setInput(oldSide); + else + onBlockChanged(); + } + + public void setInput(ForgeDirection direction) { + outputOverride = getOutputSide(); // save the current output, if it isn't saved yet + + ForgeDirection oldSide = getInputSide(); + if(oldSide == direction) direction = direction.getOpposite(); + + boolean needSwapOutput = direction == getOutputSide(); + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, direction.ordinal(), needSwapOutput ? 4 : 3); + + if(needSwapOutput) + setOutputOverride(oldSide); + } + + protected void onBlockChanged() { + if(!hasWorldObj()) return; + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + worldObj.notifyBlockChange(xCoord, yCoord, zCoord, getBlockType()); + markDirty(); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + if(nbt.hasKey("CraneOutputOverride", Constants.NBT.TAG_BYTE)) + outputOverride = ForgeDirection.getOrientation(nbt.getByte("CraneOutputOverride")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setByte("CraneOutputOverride", (byte) outputOverride.ordinal()); + } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setInteger("inputSide", getInputSide().ordinal()); + nbt.setInteger("outputSide", getOutputSide().ordinal()); + + if(this instanceof IControlReceiverFilter){ + IControlReceiverFilter filter = ((IControlReceiverFilter) this); + IInventory inv = this; + NBTTagList tags = new NBTTagList(); + int count = 0; + + for (int i = filter.getFilterSlots()[0]; i < filter.getFilterSlots()[1]; i++) { + NBTTagCompound slotNBT = new NBTTagCompound(); + if(inv.getStackInSlot(i) != null) { + slotNBT.setByte("slot", (byte) count); + inv.getStackInSlot(i).writeToNBT(slotNBT); + tags.appendTag(slotNBT); + } + count++; + } + nbt.setTag("items", tags); + } + + return nbt; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + if(index == 1) { + if (nbt.hasKey("outputSide")) { + outputOverride = ForgeDirection.getOrientation(nbt.getInteger("outputSide")); + onBlockChanged(); + } + if (nbt.hasKey("inputSide")) { + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, nbt.getInteger("inputSide"), 3); + } + } else { + if (this instanceof IControlReceiverFilter) { + IControlReceiverFilter filter = ((IControlReceiverFilter) this); + IInventory inv = this; + + NBTTagList items = nbt.getTagList("items", 10); + int listSize = items.tagCount(); + if (listSize > 0) { + int count = 0; + for (int i = filter.getFilterSlots()[0]; i < filter.getFilterSlots()[1]; i++) { + if (i < listSize) { + NBTTagCompound slotNBT = items.getCompoundTagAt(count); + byte slot = slotNBT.getByte("slot"); + ItemStack loadedStack = ItemStack.loadItemStackFromNBT(slotNBT); + //whether the filter info came from a router + boolean router = nbt.hasKey("modes") && slot > index * 5 && slot < index * + 5; + if (loadedStack != null && (slot < filter.getFilterSlots()[1] || router)) { + inv.setInventorySlotContents(slot + filter.getFilterSlots()[0], ItemStack.loadItemStackFromNBT(slotNBT)); + filter.nextMode(slot); + this.getWorldObj().markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + } + count++; + } + } + } + } + } + + @Override + public String[] infoForDisplay(World world, int x, int y, int z) { + return new String[]{"copytool.filter", "copytool.orientation"}; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java index bca0a3f22..01a312685 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java @@ -1,17 +1,15 @@ package com.hbm.tileentity.network; +import api.hbm.conveyor.IConveyorBelt; import com.hbm.entity.item.EntityMovingPackage; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneBoxer; import com.hbm.inventory.gui.GUICraneBoxer; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -20,7 +18,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { +public class TileEntityCraneBoxer extends TileEntityCraneBase implements IGUIProvider, IControlReceiver { public byte mode = 0; public static final byte MODE_4 = 0; @@ -42,15 +40,15 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { boolean redstone = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord); if(mode == MODE_REDSTONE && redstone && !lastRedstone) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + ForgeDirection outputSide = getOutputSide(); + Block b = worldObj.getBlock(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); IConveyorBelt belt = null; if(b instanceof IConveyorBelt) { @@ -58,7 +56,7 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP } int pack = 0; - + for(int i = 0; i < slots.length; i++) { if(slots[i] != null) { pack++; @@ -79,8 +77,8 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP } EntityMovingPackage moving = new EntityMovingPackage(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStacks(box); worldObj.spawnEntityInWorld(moving); @@ -116,8 +114,8 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP } } - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + ForgeDirection outputSide = getOutputSide(); + Block b = worldObj.getBlock(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); IConveyorBelt belt = null; if(b instanceof IConveyorBelt) { @@ -138,22 +136,28 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP } EntityMovingPackage moving = new EntityMovingPackage(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStacks(box); worldObj.spawnEntityInWorld(moving); } } - - NBTTagCompound data = new NBTTagCompound(); - data.setByte("mode", mode); - this.networkPack(data, 15); + + this.networkPackNT(15); } } - - public void networkUnpack(NBTTagCompound nbt) { - this.mode = nbt.getByte("mode"); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeByte(this.mode); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.mode = buf.readByte(); } @Override @@ -187,7 +191,7 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICraneBoxer(player.inventory, this); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 1da88ce44..aab0e354d 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -1,19 +1,17 @@ package com.hbm.tileentity.network; +import api.hbm.conveyor.IConveyorBelt; import com.hbm.entity.item.EntityMovingItem; -import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneExtractor; import com.hbm.inventory.gui.GUICraneExtractor; import com.hbm.items.ModItems; import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IControlReceiverFilter; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; @@ -26,7 +24,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneExtractor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { +public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGUIProvider, IControlReceiverFilter { public boolean isWhitelist = false; public ModulePatternMatcher matcher; @@ -55,7 +53,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { int delay = 20; @@ -78,10 +76,11 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I case 2: amount = 64; break; } } - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + ForgeDirection inputSide = getOutputSide(); // note the switcheroo! + ForgeDirection outputSide = getInputSide(); + TileEntity te = worldObj.getTileEntity(xCoord + inputSide.offsetX, yCoord + inputSide.offsetY, zCoord + inputSide.offsetZ); + Block b = worldObj.getBlock(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); int[] access = null; ISidedInventory sided = null; @@ -89,7 +88,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I if(te instanceof ISidedInventory) { sided = (ISidedInventory) te; //access = sided.getAccessibleSlotsFromSide(dir.ordinal()); - access = masquerade(sided, dir.ordinal()); + access = masquerade(sided, inputSide.getOpposite().ordinal()); } boolean hasSent = false; @@ -108,7 +107,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I int index = access == null ? i : access[i]; ItemStack stack = inv.getStackInSlot(index); - if(stack != null && (sided == null || sided.canExtractItem(index, stack, dir.ordinal()))){ + if(stack != null && (sided == null || sided.canExtractItem(index, stack, inputSide.getOpposite().ordinal()))){ boolean match = this.matchesFilter(stack); @@ -119,8 +118,8 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I stack.stackSize = toSend; EntityMovingItem moving = new EntityMovingItem(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStack(stack); worldObj.spawnEntityInWorld(moving); @@ -144,8 +143,8 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I stack.stackSize = toSend; EntityMovingItem moving = new EntityMovingItem(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStack(stack); worldObj.spawnEntityInWorld(moving); @@ -155,13 +154,24 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I } } } - - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("isWhitelist", isWhitelist); - this.matcher.writeToNBT(data); - this.networkPack(data, 15); + + this.networkPackNT(15); } } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(isWhitelist); + this.matcher.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + isWhitelist = buf.readBoolean(); + this.matcher.deserialize(buf); + } public static int[] masquerade(ISidedInventory sided, int side) { @@ -172,12 +182,6 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I return sided.getAccessibleSlotsFromSide(side); } - public void networkUnpack(NBTTagCompound nbt) { - this.isWhitelist = nbt.getBoolean("isWhitelist"); - this.matcher.modes = new String[this.matcher.modes.length]; - this.matcher.readFromNBT(nbt); - } - public boolean matchesFilter(ItemStack stack) { for(int i = 0; i < 9; i++) { @@ -190,7 +194,8 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I return false; } - + + @Override public void nextMode(int i) { this.matcher.nextMode(worldObj, slots[i], i); } @@ -217,7 +222,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICraneExtractor(player.inventory, this); } @@ -245,5 +250,14 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I if(data.hasKey("whitelist")) { this.isWhitelist = !this.isWhitelist; } + if(data.hasKey("slot")){ + setFilterContents(data); + } + } + + @Override + public int[] getFilterSlots() { + return new int[]{0,9}; } } + diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java index ba50abcea..61d9df4de 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java @@ -1,22 +1,21 @@ package com.hbm.tileentity.network; -import java.util.List; - +import api.hbm.conveyor.IConveyorBelt; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.network.CraneInserter; import com.hbm.entity.item.EntityMovingItem; -import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneGrabber; import com.hbm.inventory.gui.GUICraneGrabber; import com.hbm.items.ModItems; import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IControlReceiverFilter; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.InventoryUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; @@ -29,16 +28,20 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { +import java.util.List; + +public class TileEntityCraneGrabber extends TileEntityCraneBase implements IGUIProvider, IControlReceiverFilter { public boolean isWhitelist = false; public ModulePatternMatcher matcher; + public long lastGrabbedTick = 0; public TileEntityCraneGrabber() { super(11); this.matcher = new ModulePatternMatcher(9); } - + + @Override public void nextMode(int i) { this.matcher.nextMode(worldObj, slots[i], i); } @@ -50,11 +53,11 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { - + int delay = 20; - + if(slots[10] != null && slots[10].getItem() == ModItems.upgrade_ejector) { switch(slots[10].getItemDamage()) { case 0: delay = 10; break; @@ -62,10 +65,10 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU case 2: delay = 2; break; } } - - if(worldObj.getTotalWorldTime() % delay == 0 && !this.worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord)) { + + if(worldObj.getTotalWorldTime() >= lastGrabbedTick + delay && !this.worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord)) { int amount = 1; - + if(slots[9] != null && slots[9].getItem() == ModItems.upgrade_stack) { switch(slots[9].getItemDamage()) { case 0: amount = 4; break; @@ -73,86 +76,128 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU case 2: amount = 64; break; } } - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); - - int[] access = null; - ISidedInventory sided = null; - - if(te instanceof ISidedInventory) { - sided = (ISidedInventory) te; - access = CraneInserter.masquerade(sided, dir.ordinal()); - } - - if(te instanceof IInventory) { - - /* - * due to this really primitive way of just offsetting the AABB instead of contracting it, there's a wacky - * edge-case where it's possible to feed the grabber by inserting items from the side if there's a triple - * lane conveyor in front of the grabbing end. this is such a non-issue that i'm not going to bother trying - * to fuck with the AABB further, since that's just a major headache for no practical benefit - */ + + ForgeDirection inputSide = getInputSide(); + ForgeDirection outputSide = getOutputSide(); + Block beltBlock = worldObj.getBlock(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); + + //unholy copy paste bullshit because i can't be assed to rework the entire thing + if(beltBlock instanceof IConveyorBelt) { + IConveyorBelt belt = (IConveyorBelt) beltBlock; + double reach = 1D; if(this.getBlockMetadata() > 1) { //ignore if pointing up or down - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + Block b = worldObj.getBlock(xCoord + inputSide.offsetX, yCoord + inputSide.offsetY, zCoord + inputSide.offsetZ); if(b == ModBlocks.conveyor_double) reach = 0.5D; if(b == ModBlocks.conveyor_triple) reach = 0.33D; } - double x = xCoord + dir.offsetX * reach; - double y = yCoord + dir.offsetY * reach; - double z = zCoord + dir.offsetZ * reach; + double x = xCoord + inputSide.offsetX * reach; + double y = yCoord + inputSide.offsetY * reach; + double z = zCoord + inputSide.offsetZ * reach; + List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(x + 0.1875D, y + 0.1875D, z + 0.1875D, x + 0.8125D, y + 0.8125D, z + 0.8125D)); - + for(EntityMovingItem item : items) { ItemStack stack = item.getItemStack(); boolean match = this.matchesFilter(stack); if(this.isWhitelist && !match || !this.isWhitelist && match) continue; - - ItemStack copy = stack.copy(); - int toAdd = Math.min(stack.stackSize, amount); - copy.stackSize = toAdd; - ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, copy, dir.ordinal()); - int didAdd = toAdd - (ret != null ? ret.stackSize : 0); - stack.stackSize -= didAdd; - - if(stack.stackSize <= 0) { - item.setDead(); + + lastGrabbedTick = worldObj.getTotalWorldTime(); + + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); + item.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); + break; + } + + } else { + + TileEntity te = worldObj.getTileEntity(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); + + int[] access = null; + ISidedInventory sided = null; + + if(te instanceof ISidedInventory) { + sided = (ISidedInventory) te; + access = InventoryUtil.masquerade(sided, outputSide.getOpposite().ordinal()); + } + + if(te instanceof IInventory) { + + /* + * due to this really primitive way of just offsetting the AABB instead of contracting it, there's a wacky + * edge-case where it's possible to feed the grabber by inserting items from the side if there's a triple + * lane conveyor in front of the grabbing end. this is such a non-issue that i'm not going to bother trying + * to fuck with the AABB further, since that's just a major headache for no practical benefit + */ + double reach = 1D; + if(this.getBlockMetadata() > 1) { //ignore if pointing up or down + Block b = worldObj.getBlock(xCoord + inputSide.offsetX, yCoord + inputSide.offsetY, zCoord + inputSide.offsetZ); + if(b == ModBlocks.conveyor_double) reach = 0.5D; + if(b == ModBlocks.conveyor_triple) reach = 0.33D; } - - amount -= didAdd; - if(amount <= 0) { - break; + + double x = xCoord + inputSide.offsetX * reach; + double y = yCoord + inputSide.offsetY * reach; + double z = zCoord + inputSide.offsetZ * reach; + List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(x + 0.1875D, y + 0.1875D, z + 0.1875D, x + 0.8125D, y + 0.8125D, z + 0.8125D)); + + for(EntityMovingItem item : items) { + ItemStack stack = item.getItemStack(); + boolean match = this.matchesFilter(stack); + if(this.isWhitelist && !match || !this.isWhitelist && match) continue; + + lastGrabbedTick = worldObj.getTotalWorldTime(); + + ItemStack copy = stack.copy(); + int toAdd = Math.min(stack.stackSize, amount); + copy.stackSize = toAdd; + ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, copy, outputSide.getOpposite().ordinal()); + int didAdd = toAdd - (ret != null ? ret.stackSize : 0); + stack.stackSize -= didAdd; + + if(stack.stackSize <= 0) { + item.setDead(); + } + + amount -= didAdd; + if(amount <= 0) { + break; + } } } } } - - - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("isWhitelist", isWhitelist); - this.matcher.writeToNBT(data); - this.networkPack(data, 15); + + this.networkPackNT(15); } } - - public void networkUnpack(NBTTagCompound nbt) { - this.isWhitelist = nbt.getBoolean("isWhitelist"); - this.matcher.modes = new String[this.matcher.modes.length]; - this.matcher.readFromNBT(nbt); + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(this.isWhitelist); + this.matcher.serialize(buf); } - + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.isWhitelist = buf.readBoolean(); + this.matcher.deserialize(buf); + } + public boolean matchesFilter(ItemStack stack) { - + for(int i = 0; i < 9; i++) { ItemStack filter = slots[i]; - + if(filter != null && this.matcher.isValidForFilter(filter, i, stack)) { return true; } } - + return false; } @@ -163,22 +208,24 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICraneGrabber(player.inventory, this); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.isWhitelist = nbt.getBoolean("isWhitelist"); this.matcher.readFromNBT(nbt); + this.lastGrabbedTick = nbt.getLong("lastGrabbedTick"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setBoolean("isWhitelist", this.isWhitelist); this.matcher.writeToNBT(nbt); + nbt.setLong("lastGrabbedTick", lastGrabbedTick); } @Override @@ -186,10 +233,18 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; } + @Override + public int[] getFilterSlots() { + return new int[]{0,9}; + } + @Override public void receiveControl(NBTTagCompound data) { if(data.hasKey("whitelist")) { this.isWhitelist = !this.isWhitelist; } + if(data.hasKey("slot")){ + setFilterContents(data); + } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index 205fe3115..afd6012ed 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -1,25 +1,29 @@ package com.hbm.tileentity.network; import com.hbm.blocks.network.CraneInserter; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneInserter; import com.hbm.inventory.gui.GUICraneInserter; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.InventoryUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneInserter extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUIProvider, IControlReceiver { + public boolean destroyer = true; public static final int[] access = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; public TileEntityCraneInserter() { @@ -33,18 +37,18 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); + ForgeDirection outputSide = getOutputSide(); + TileEntity te = worldObj.getTileEntity(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); int[] access = null; if(te instanceof ISidedInventory) { ISidedInventory sided = (ISidedInventory) te; //access = sided.getAccessibleSlotsFromSide(dir.ordinal()); - access = CraneInserter.masquerade(sided, dir.ordinal()); + access = InventoryUtil.masquerade(sided, outputSide.getOpposite().ordinal()); } if(te instanceof IInventory) { @@ -53,7 +57,7 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG ItemStack stack = slots[i]; if(stack != null) { - ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), dir.ordinal()); + ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), outputSide.getOpposite().ordinal()); if(ret == null || ret.stackSize != stack.stackSize) { slots[i] = ret; @@ -72,7 +76,7 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG if(stack != null) { stack = stack.copy(); stack.stackSize = 1; - ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), dir.ordinal()); + ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), outputSide.getOpposite().ordinal()); if(ret == null || ret.stackSize != stack.stackSize) { this.decrStackSize(i, 1); @@ -82,9 +86,23 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG } } } + + this.networkPackNT(15); } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(destroyer); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + destroyer = buf.readBoolean(); + } + @Override public int[] getAccessibleSlotsFromSide(int side) { return access; @@ -107,7 +125,29 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICraneInserter(player.inventory, this); } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.destroyer = nbt.getBoolean("destroyer"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("destroyer", this.destroyer); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("destroyer")) this.destroyer = !this.destroyer; + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java index 68db57165..6397584ea 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java @@ -1,23 +1,26 @@ package com.hbm.tileentity.network; -import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneRouter; import com.hbm.inventory.gui.GUICraneRouter; import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IControlReceiverFilter; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityCraneRouter extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { +public class TileEntityCraneRouter extends TileEntityMachineBase implements IGUIProvider, IControlReceiverFilter { public ModulePatternMatcher[] patterns = new ModulePatternMatcher[6]; //why did i make six matchers??? public int[] modes = new int[6]; @@ -44,24 +47,28 @@ public class TileEntityCraneRouter extends TileEntityMachineBase implements IGUI if(!worldObj.isRemote) { - NBTTagCompound data = new NBTTagCompound(); - for(int i = 0; i < patterns.length; i++) { - NBTTagCompound compound = new NBTTagCompound(); - patterns[i].writeToNBT(compound); - data.setTag("pattern" + i, compound); - } - data.setIntArray("modes", this.modes); - this.networkPack(data, 15); + this.networkPackNT(15); } } - + @Override - public void networkUnpack(NBTTagCompound data) { - for(int i = 0; i < patterns.length; i++) { - NBTTagCompound compound = data.getCompoundTag("pattern" + i); - patterns[i].readFromNBT(compound); + public void serialize(ByteBuf buf) { + super.serialize(buf); + for (ModulePatternMatcher pattern : patterns) { + pattern.serialize(buf); } - this.modes = data.getIntArray("modes"); + + BufferUtil.writeIntArray(buf, this.modes); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + for (ModulePatternMatcher pattern : patterns) { + pattern.deserialize(buf); + } + + this.modes = BufferUtil.readIntArray(buf); } @Override @@ -71,10 +78,10 @@ public class TileEntityCraneRouter extends TileEntityMachineBase implements IGUI @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICraneRouter(player.inventory, this); } - + @Override public void nextMode(int index) { int matcher = index / 5; @@ -118,12 +125,76 @@ public class TileEntityCraneRouter extends TileEntityMachineBase implements IGUI public boolean hasPermission(EntityPlayer player) { return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; } - + @Override + public int[] getFilterSlots() { + return new int[]{0, slots.length}; + } @Override public void receiveControl(NBTTagCompound data) { - int i = data.getInteger("toggle"); - modes[i]++; - if(modes[i] > 3) - modes [i] = 0; + if(data.hasKey("toggle")) { + int i = data.getInteger("toggle"); + modes[i]++; + if (modes[i] > 3) + modes[i] = 0; + } + if(data.hasKey("slot")){ + setFilterContents(data); + } + } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + IInventory inv = (IInventory) this; + NBTTagCompound nbt = new NBTTagCompound(); + NBTTagList tags = new NBTTagList(); + + int count = 0; + for (int i = getFilterSlots()[0]; i < getFilterSlots()[1]; i++) { + NBTTagCompound slotNBT = new NBTTagCompound(); + if (inv.getStackInSlot(i) != null) { + slotNBT.setByte("slot", (byte) count); + inv.getStackInSlot(i).writeToNBT(slotNBT); + tags.appendTag(slotNBT); + } + count++; + } + + nbt.setTag("items", tags); + nbt.setIntArray("modes", modes); + + return nbt; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + + NBTTagList items = nbt.getTagList("items", 10); + int listSize = items.tagCount(); + + if(listSize > 0 && nbt.hasKey("modes")) { + for (int i = 0; i < listSize; i++) { + NBTTagCompound slotNBT = items.getCompoundTagAt(i); + byte slot = slotNBT.getByte("slot"); + ItemStack loadedStack = ItemStack.loadItemStackFromNBT(slotNBT); + + if (loadedStack != null && slot > index * 5 && slot < Math.min(index * 5 + 5, 30)) { + this.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(slotNBT)); + nextMode(slot); + this.getWorldObj().markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + } + modes = nbt.getIntArray("modes"); + } else { + IControlReceiverFilter.super.pasteSettings(nbt, index, world, player, x, y, z); + } + } + + @Override + public String[] infoForDisplay(World world, int x, int y, int z) { + String[] options = new String[patterns.length]; + for (int i = 0; i < options.length; i++) { + options[i] = "copytool.pattern" + i; + } + return options; } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneUnboxer.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneUnboxer.java index 3cd1aa7da..37ea89d81 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneUnboxer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneUnboxer.java @@ -1,17 +1,14 @@ package com.hbm.tileentity.network; +import api.hbm.conveyor.IConveyorBelt; import com.hbm.entity.item.EntityMovingItem; import com.hbm.inventory.container.ContainerCraneUnboxer; import com.hbm.inventory.gui.GUICraneUnboxer; import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -19,7 +16,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneUnboxer extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityCraneUnboxer extends TileEntityCraneBase implements IGUIProvider { public TileEntityCraneUnboxer() { super(23); @@ -32,7 +29,7 @@ public class TileEntityCraneUnboxer extends TileEntityMachineBase implements IGU @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { int delay = 20; @@ -65,8 +62,8 @@ public class TileEntityCraneUnboxer extends TileEntityMachineBase implements IGU } } - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + ForgeDirection outputSide = getInputSide(); // note the switcheroo! + Block b = worldObj.getBlock(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); if(b instanceof IConveyorBelt) { @@ -82,8 +79,8 @@ public class TileEntityCraneUnboxer extends TileEntityMachineBase implements IGU stack.stackSize = toSend; EntityMovingItem moving = new EntityMovingItem(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStack(stack); worldObj.spawnEntityInWorld(moving); @@ -117,7 +114,7 @@ public class TileEntityCraneUnboxer extends TileEntityMachineBase implements IGU @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICraneUnboxer(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java new file mode 100644 index 000000000..fb4058296 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java @@ -0,0 +1,293 @@ +package com.hbm.tileentity.network; + +import java.util.List; + +import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.container.ContainerDroneCrate; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIDroneCrate; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; +import com.hbm.util.ParticleUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IDroneLinkable, IFluidStandardTransceiver, IFluidCopiable { + + public FluidTank tank; + + public int nextX = -1; + public int nextY = -1; + public int nextZ = -1; + + public boolean sendingMode = false; + public boolean itemType = true; + + public TileEntityDroneCrate() { + super(19); + this.tank = new FluidTank(Fluids.NONE, 64_000); + } + + @Override + public String getName() { + return "container.droneCrate"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + BlockPos pos = getCoord(); + this.tank.setType(18, slots); + + if(sendingMode && !itemType && worldObj.getTotalWorldTime() % 20 == 0) { + this.subscribeToAllAround(tank.getTankType(), this); + } + + if(!sendingMode && !itemType && worldObj.getTotalWorldTime() % 20 == 0) { + this.sendFluidToAll(tank, this); + } + + if(nextY != -1) { + + List drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 2, zCoord + 1)); + for(EntityDeliveryDrone drone : drones) { + if(Vec3.createVectorHelper(drone.motionX, drone.motionY, drone.motionZ).lengthVector() < 0.05) { + drone.setTarget(nextX + 0.5, nextY, nextZ + 0.5); + + if(sendingMode && itemType) loadItems(drone); + if(!sendingMode && itemType) unloadItems(drone); + if(sendingMode && !itemType) loadFluid(drone); + if(!sendingMode && !itemType) unloadFluid(drone); + } + } + + ParticleUtil.spawnDroneLine(worldObj, + pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, + (nextX - pos.getX()), (nextY - pos.getY()), (nextZ - pos.getZ()), 0x00ffff); + } + + networkPackNT(25); + } + } + + @Override + public void serialize(ByteBuf buf) { + BufferUtil.writeIntArray(buf, new int[] { + this.nextX, + this.nextY, + this.nextZ + }); + buf.writeBoolean(this.sendingMode); + buf.writeBoolean(this.itemType); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + int[] pos = BufferUtil.readIntArray(buf); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + this.sendingMode = buf.readBoolean(); + this.itemType = buf.readBoolean(); + tank.deserialize(buf); + } + + protected void loadItems(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 0) return; + + boolean loaded = false; + + for(int i = 0; i < 18; i++) { + if(this.slots[i] != null) { + loaded = true; + drone.setInventorySlotContents(i, this.slots[i].copy()); + this.slots[i] = null; + } + } + + if(loaded) { + this.markDirty(); + drone.setAppearance(1); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); + } + } + + protected void unloadItems(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 1) return; + + boolean emptied = true; + + for(int i = 0; i < 18; i++) { + ItemStack droneSlot = drone.getStackInSlot(i); + + if(this.slots[i] == null && droneSlot != null) { + this.slots[i] = droneSlot.copy(); + drone.setInventorySlotContents(i, null); + } else if(this.slots[i] != null && droneSlot != null) { + emptied = false; + } + } + + this.markDirty(); + + if(emptied) { + drone.setAppearance(0); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); + } + } + + protected void loadFluid(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 0) return; + + if(this.tank.getFill() > 0) { + drone.fluid = new FluidStack(tank.getTankType(), tank.getFill()); + this.tank.setFill(0); + drone.setAppearance(2); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); + + this.markDirty(); + } + } + + protected void unloadFluid(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 2) return; + + if(drone.fluid != null && drone.fluid.type == tank.getTankType()) { + + if(drone.fluid.fill + tank.getFill() <= tank.getMaxFill()) { + tank.setFill(tank.getFill() + drone.fluid.fill); + drone.fluid = null; + drone.setAppearance(0); + } else { + int overshoot = drone.fluid.fill + tank.getFill() - tank.getMaxFill(); + tank.setFill(tank.getMaxFill()); + drone.fluid.fill = overshoot; + } + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); + + this.markDirty(); + } + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return true; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } + + @Override + public BlockPos getPoint() { + return new BlockPos(xCoord, yCoord + 1, zCoord); + } + + @Override + public void setNextTarget(int x, int y, int z) { + this.nextX = x; + this.nextY = y; + this.nextZ = z; + this.markDirty(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + this.sendingMode = nbt.getBoolean("mode"); + this.itemType = nbt.getBoolean("type"); + tank.readFromNBT(nbt, "t"); + } + + public BlockPos getCoord() { + return new BlockPos(xCoord, yCoord + 1, zCoord); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + nbt.setBoolean("mode", sendingMode); + nbt.setBoolean("type", itemType); + tank.writeToNBT(nbt, "t"); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneCrate(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneCrate(player.inventory, this); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + + if(data.hasKey("mode")) { + this.sendingMode = !this.sendingMode; + this.markChanged(); + } + + if(data.hasKey("type")) { + this.itemType = !this.itemType; + this.markChanged(); + } + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } + + @Override + public FluidTank[] getSendingTanks() { + return !sendingMode && !itemType ? new FluidTank[] { tank } : new FluidTank[0]; + } + + @Override + public FluidTank[] getReceivingTanks() { + return sendingMode && !itemType ? new FluidTank[] { tank } : new FluidTank[0]; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java new file mode 100644 index 000000000..32382fc6e --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java @@ -0,0 +1,192 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import com.hbm.entity.item.EntityRequestDrone; +import com.hbm.entity.item.EntityRequestDrone.DroneProgram; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.container.ContainerDroneDock; +import com.hbm.inventory.gui.GUIDroneDock; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemDrone.EnumDroneType; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.network.RequestNetwork.OfferNode; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.tileentity.network.RequestNetwork.RequestNode; +import com.hbm.util.HashedSet; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class TileEntityDroneDock extends TileEntityRequestNetworkContainer implements IGUIProvider { + + public static final int pathingDepth = 10; + + public TileEntityDroneDock() { + super(9); + } + + @Override + public String getName() { + return "container.droneDock"; + } + + @Override + public void updateEntity() { + super.updateEntity(); + + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 20 == 0 && this.hasDrone()) { + + // grab all nodes in a 5 chunk radius + HashedSet localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 5); + List requests = new ArrayList(); + List offers = new ArrayList(); + + for(PathNode local : localNodes) { + if(local instanceof RequestNode) requests.add((RequestNode) local); + if(local instanceof OfferNode) offers.add((OfferNode) local); + } + + attempt: for(int i = 0; i < 5; i++) { + + // randomize! + Collections.shuffle(requests); + Collections.shuffle(offers); + RequestNode firstRequest = null; + + // simply pick the first request node that has unfulfilled requests + for(RequestNode request : requests) { + if(request.active && !request.request.isEmpty()) { + firstRequest = request; + break; + } + } + + if(firstRequest != null) { + + PathNode own = localNodes.getMap().get(new BlockPos(xCoord, yCoord + 1, zCoord).hashCode()); + AStack request = firstRequest.request.get(worldObj.rand.nextInt(firstRequest.request.size())); + + outer: for(OfferNode offer : offers) { + + for(ItemStack stack : offer.offer) { + if(offer.active && stack != null && request.matchesRecipe(stack, true)) { + if(tryEmbark(own, firstRequest, offer, request, localNodes)) break attempt; // if the drone can be pathed and spawned, stop doing more attempts + break outer; // if not, simply continue iterating over offer nodes + } + } + } + } + } + } + } + + public boolean tryEmbark(PathNode dock, RequestNode request, OfferNode offer, AStack item, HashedSet localNodes) { + + List dockToOffer = generatePath(dock, offer, localNodes); + if(dockToOffer == null) return false; + List offerToRequest = generatePath(offer, request, localNodes); + if(offerToRequest == null) return false; + List requestToDock = generatePath(request, dock, localNodes); + if(requestToDock == null) return false; + + + for(int i = 0; i < this.slots.length; i++) { + ItemStack stack = slots[i]; + if(stack != null && stack.getItem() == ModItems.drone && stack.getItemDamage() == EnumDroneType.REQUEST.ordinal()) { + this.decrStackSize(i, 1); + break; + } + } + + EntityRequestDrone drone = new EntityRequestDrone(worldObj); + drone.setPosition(xCoord + 0.5, yCoord + 1, zCoord + 0.5); + + // write programming + for(PathNode node : dockToOffer) drone.program.add(node.pos); + drone.program.add(offer.pos); + drone.program.add(item); + for(PathNode node : offerToRequest) drone.program.add(node.pos); + drone.program.add(request.pos); + drone.program.add(DroneProgram.UNLOAD); + for(PathNode node : requestToDock) drone.program.add(node.pos); + drone.program.add(dock.pos); + drone.program.add(DroneProgram.DOCK); + + worldObj.spawnEntityInWorld(drone); + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageOpen", 2.0F, 1.0F); + + return true; + } + + public List generatePath(PathNode start, PathNode end, HashedSet localNodes) { + + List> paths = new ArrayList(); + List init = new ArrayList(); + init.add(start); + paths.add(init); + + // breadth-first search + for(int i = 0; i < pathingDepth; i++) { + + List> newPaths = new ArrayList(); + + for(List oldPath : paths) { + for(PathNode connectedUnsafe : oldPath.get(oldPath.size() - 1).reachableNodes) { + + PathNode connectedSafe = localNodes.getMap().get(connectedUnsafe.hashCode()); // lookup to translate potentially outdated nodes into current ones + if(connectedSafe != null) { + + List newPath = new ArrayList(); + newPath.addAll(oldPath); + + if(connectedSafe.hashCode() == end.hashCode()) { + newPath.remove(0); // we only want the in-betweens + return newPath; + } + + newPath.add(connectedSafe); + newPaths.add(newPath); + } + } + } + + paths = newPaths; + } + + return null; + } + + public boolean hasDrone() { + + for(int i = 0; i < this.slots.length; i++) { + ItemStack stack = slots[i]; + if(stack != null && stack.getItem() == ModItems.drone && stack.getItemDamage() == EnumDroneType.REQUEST.ordinal()) return true; + } + + return false; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneDock(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneDock(player.inventory, this); + } + + @Override + public PathNode createNode(BlockPos pos) { + return new PathNode(pos, this.reachableNodes); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java new file mode 100644 index 000000000..d79ae02bc --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java @@ -0,0 +1,63 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.container.ContainerDroneProvider; +import com.hbm.inventory.gui.GUIDroneProvider; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.network.RequestNetwork.OfferNode; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class TileEntityDroneProvider extends TileEntityRequestNetworkContainer implements IGUIProvider { + + public TileEntityDroneProvider() { + super(9); + } + + @Override + public String getName() { + return "container.droneProvider"; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return true; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return false; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneProvider(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneProvider(player.inventory, this); + } + + @Override + public PathNode createNode(BlockPos pos) { + List offer = new ArrayList(); + for(ItemStack stack : slots) if(stack != null) offer.add(stack.copy()); + return new OfferNode(pos, this.reachableNodes, offer); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java new file mode 100644 index 000000000..f9a6f0a0a --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java @@ -0,0 +1,138 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.container.ContainerDroneRequester; +import com.hbm.inventory.gui.GUIDroneRequester; +import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IControlReceiverFilter; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.tileentity.network.RequestNetwork.RequestNode; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; + +public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer implements IGUIProvider, IControlReceiverFilter { + + public ModulePatternMatcher matcher; + + public TileEntityDroneRequester() { + super(18); + this.matcher = new ModulePatternMatcher(9); + } + + @Override + public String getName() { + return "container.droneRequester"; + } + + @Override + public void updateEntity() { + super.updateEntity(); + + if(!worldObj.isRemote) { + + networkPackNT(15); + } + } + + @Override public void serialize(ByteBuf buf) { + this.matcher.serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + this.matcher.deserialize(buf); + } + + @Override + public void nextMode(int i) { + this.matcher.nextMode(worldObj, slots[i], i); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return true; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.matcher.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + this.matcher.writeToNBT(nbt); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneRequester(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneRequester(player.inventory, this); + } + + @Override + public PathNode createNode(BlockPos pos) { + List request = new ArrayList(); + for(int i = 0; i < 9; i++) { + ItemStack filter = slots[i]; + ItemStack stock = slots[i + 9]; + if(filter == null) continue; + String mode = this.matcher.modes[i]; + AStack aStack = null; + + if(ModulePatternMatcher.MODE_EXACT.equals(mode)) { + aStack = new ComparableStack(filter).makeSingular(); + } else if(ModulePatternMatcher.MODE_WILDCARD.equals(mode)) { + aStack = new ComparableStack(filter.getItem(), 1, OreDictionary.WILDCARD_VALUE); + } else if(mode != null) { + aStack = new OreDictStack(mode); + } + + if(aStack == null) continue; + + if(stock == null || !this.matcher.isValidForFilter(filter, i, stock)) request.add(aStack); + } + return new RequestNode(pos, this.reachableNodes, request); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; + } + + @Override + public int[] getFilterSlots() { + return new int[]{0,9}; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java new file mode 100644 index 000000000..99908ee14 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java @@ -0,0 +1,111 @@ +package com.hbm.tileentity.network; + +import java.util.List; + +import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.ParticleUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import io.netty.buffer.ByteBuf; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityDroneWaypoint extends TileEntityLoadedBase implements IDroneLinkable { + + public int height = 5; + public int nextX = -1; + public int nextY = -1; + public int nextZ = -1; + + @Override + public void updateEntity() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + + if(!worldObj.isRemote) { + if(nextY != -1) { + List drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).offset(dir.offsetX * height, dir.offsetY * height, dir.offsetZ * height)); + for(EntityDeliveryDrone drone : drones) { + if(Vec3.createVectorHelper(drone.motionX, drone.motionY, drone.motionZ).lengthVector() < 0.05) { + drone.setTarget(nextX + 0.5, nextY, nextZ + 0.5); + } + } + } + + networkPackNT(15); + } else { + BlockPos pos = getCoord(dir); + if(nextY != -1 && worldObj.getTotalWorldTime() % 2 == 0) { + double x = xCoord + height * dir.offsetX + 0.5; + double y = yCoord + height * dir.offsetY + 0.5; + double z = zCoord + height * dir.offsetZ + 0.5; + + worldObj.spawnParticle("reddust", x, y, z, 0, 0, 0); + + ParticleUtil.spawnDroneLine(worldObj, + pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, + (nextX - pos.getX()), (nextY - pos.getY()), (nextZ - pos.getZ()), 0x0000ff); + } + } + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeInt(height); + buf.writeInt(nextX); + buf.writeInt(nextY); + buf.writeInt(nextZ); + } + + @Override + public void deserialize(ByteBuf buf) { + height = buf.readInt(); + nextX = buf.readInt(); + nextY = buf.readInt(); + nextZ = buf.readInt(); + } + + @Override + public BlockPos getPoint() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + return new BlockPos(xCoord, yCoord, zCoord).offset(dir, height); + } + + @Override + public void setNextTarget(int x, int y, int z) { + this.nextX = x; + this.nextY = y; + this.nextZ = z; + this.markDirty(); + } + + public void addHeight(int h) { + height += h; + height = MathHelper.clamp_int(height, 1, 15); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.height = nbt.getInteger("height"); + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("height", height); + nbt.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + } + public BlockPos getCoord(ForgeDirection dir) { + return new BlockPos(xCoord + height * dir.offsetX + 0.5, yCoord + height * dir.offsetY + 0.5, zCoord + height * dir.offsetZ + 0.5); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java new file mode 100644 index 000000000..677078341 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java @@ -0,0 +1,43 @@ +package com.hbm.tileentity.network; + +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityDroneWaypointRequest extends TileEntityRequestNetwork { + + public int height = 5; + + @Override + public BlockPos getCoord() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + return new BlockPos(xCoord + dir.offsetX * height, yCoord + dir.offsetY * height, zCoord + dir.offsetZ * height); + } + + public void addHeight(int h) { + height += h; + height = MathHelper.clamp_int(height, 1, 15); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.height = nbt.getInteger("height"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("height", height); + } + + @Override + public PathNode createNode(BlockPos pos) { + return new PathNode(pos, this.reachableNodes); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java b/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java new file mode 100644 index 000000000..7d6ff74d8 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java @@ -0,0 +1,36 @@ +package com.hbm.tileentity.network; + +import api.hbm.fluid.PipeNet; +import net.minecraft.block.Block; +import net.minecraft.world.World; + +public class TileEntityFluidValve extends TileEntityPipeBaseNT { + + @Override + public boolean shouldConnect() { + return this.worldObj != null && this.getBlockMetadata() == 1 && super.canUpdate(); + } + + public void updateState() { + + this.blockMetadata = -1; // delete cache + + if(this.getBlockMetadata() == 0 && this.network != null) { + this.network.destroy(); + this.network = null; + } + + if(this.getBlockMetadata() == 1) { + this.connect(); + + if(this.getPipeNet(type) == null) { + new PipeNet(type).joinLink(this); + } + } + } + + @Override + public boolean shouldRefresh(Block oldBlock, Block newBlock, int oldMeta, int newMeta, World world, int x, int y, int z) { + return oldBlock != newBlock; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java index c238da297..ea26263ba 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java @@ -1,21 +1,31 @@ package com.hbm.tileentity.network; +import com.hbm.blocks.network.IBlockFluidDuct; +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.HbmKeybinds; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import api.hbm.fluid.IFluidConductor; import api.hbm.fluid.IPipeNet; import api.hbm.fluid.PipeNet; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.Compat; + +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor { - +public class TileEntityPipeBaseNT extends TileEntityLoadedBase implements IFluidConductor, IFluidCopiable { + protected IPipeNet network; protected FluidType type = Fluids.NONE; protected FluidType lastType = Fluids.NONE; @@ -27,59 +37,59 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); lastType = type; } - - if(!worldObj.isRemote && canUpdate()) { - + + if(!worldObj.isRemote && shouldConnect()) { + //we got here either because the net doesn't exist or because it's not valid, so that's safe to assume this.setPipeNet(type, null); - + this.connect(); - + if(this.getPipeNet(type) == null) { this.setPipeNet(type, new PipeNet(type).joinLink(this)); } } } - + public FluidType getType() { return this.type; } - + public void setType(FluidType type) { this.type = type; this.markDirty(); - + if(worldObj instanceof WorldServer) { WorldServer world = (WorldServer) worldObj; world.getPlayerManager().markBlockForUpdate(xCoord, yCoord, zCoord); } - + if(this.network != null) this.network.destroy(); } - + @Override public boolean canConnect(FluidType type, ForgeDirection dir) { return dir != ForgeDirection.UNKNOWN && type == this.type; } - + protected void connect() { - + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - + + TileEntity te = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + if(te instanceof IFluidConductor) { - + IFluidConductor conductor = (IFluidConductor) te; - + if(!conductor.canConnect(type, dir.getOpposite())) continue; - + if(this.getPipeNet(type) == null && conductor.getPipeNet(type) != null) { conductor.getPipeNet(type).joinLink(this); } - + if(this.getPipeNet(type) != null && conductor.getPipeNet(type) != null && this.getPipeNet(type) != conductor.getPipeNet(type)) { conductor.getPipeNet(type).joinNetworks(this.getPipeNet(type)); } @@ -90,7 +100,7 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor @Override public void invalidate() { super.invalidate(); - + if(!worldObj.isRemote) { if(this.network != null) { this.network.destroy(); @@ -101,17 +111,16 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor /** * Only update until a power net is formed, in >99% of the cases it should be the first tick. Everything else is handled by neighbors and the net itself. */ - @Override - public boolean canUpdate() { + public boolean shouldConnect() { return (this.network == null || !this.network.isValid()) && !this.isInvalid(); } @Override public long transferFluid(FluidType type, int pressure, long fluid) { - + if(this.network == null) return fluid; - + return this.network.transferFluid(fluid, pressure); } @@ -136,7 +145,7 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor this.writeToNBT(nbt); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); } - + @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); @@ -153,4 +162,49 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor super.writeToNBT(nbt); nbt.setInteger("type", this.type.getID()); } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } + + @Override + public int[] getFluidIDToCopy() { + return new int[]{ type.getID() }; + } + + @Override + public FluidTank getTankToPaste() { + return null; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + int[] ids = nbt.getIntArray("fluidID"); + if(ids.length > 0) { + int id; + if (index < ids.length) + id = ids[index]; + else + id = 0; + + FluidType fluid = Fluids.fromID(id); + + if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_CTRL)){ + IBlockFluidDuct pipe = (IBlockFluidDuct)world.getBlock(x, y, z); + pipe.changeTypeRecursively(world, x, y, z, getType(), fluid, 64); + } else { + this.setType(fluid); + } + } + + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java new file mode 100644 index 000000000..5d4ac7d1c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java @@ -0,0 +1,128 @@ +package com.hbm.tileentity.network; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.util.Compat; + +import api.hbm.fluid.IFluidConductor; +import api.hbm.fluid.IPipeNet; +import api.hbm.fluid.PipeNet; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityPipeExhaust extends TileEntity implements IFluidConductor { + + public IPipeNet[] nets = new IPipeNet[3]; + + public FluidType[] getSmokes() { + return new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON}; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote && canUpdate()) { + + for(int i = 0; i < 3; i++) nets[i] = null; + + for(FluidType type : getSmokes()) { + this.connect(type); + + if(this.getPipeNet(type) == null) { + this.setPipeNet(type, new PipeNet(type).joinLink(this)); + } + } + } + } + + protected void connect(FluidType type) { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + TileEntity te = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + if(te instanceof IFluidConductor) { + + IFluidConductor conductor = (IFluidConductor) te; + + if(!conductor.canConnect(type, dir.getOpposite())) + continue; + + if(this.getPipeNet(type) == null && conductor.getPipeNet(type) != null) { + conductor.getPipeNet(type).joinLink(this); + } + + if(this.getPipeNet(type) != null && conductor.getPipeNet(type) != null && this.getPipeNet(type) != conductor.getPipeNet(type)) { + conductor.getPipeNet(type).joinNetworks(this.getPipeNet(type)); + } + } + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(!worldObj.isRemote) { + + for(int i = 0; i < 3; i++) { + if(nets[i] != null) { + nets[i].destroy(); + } + } + } + } + @Override + public boolean canUpdate() { + + if(this.isInvalid()) return false; + + for(IPipeNet net : nets) { + if(net == null || !net.isValid()) { + return true; + } + } + + return false; + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return dir != ForgeDirection.UNKNOWN && (type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON); + } + + @Override + public long getDemand(FluidType type, int pressure) { + return 0; + } + + @Override + public IPipeNet getPipeNet(FluidType type) { + + if(type == Fluids.SMOKE) return nets[0]; + if(type == Fluids.SMOKE_LEADED) return nets[1]; + if(type == Fluids.SMOKE_POISON) return nets[2]; + return null; + } + + @Override + public void setPipeNet(FluidType type, IPipeNet network) { + + if(type == Fluids.SMOKE) nets[0] = network; + if(type == Fluids.SMOKE_LEADED) nets[1] = network; + if(type == Fluids.SMOKE_POISON) nets[2] = network; + } + + public boolean isLoaded = true; + + @Override + public boolean isLoaded() { + return isLoaded; + } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + this.isLoaded = false; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java index 3dde2245e..03646593c 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylon.java @@ -1,8 +1,11 @@ package com.hbm.tileentity.network; -import java.util.ArrayList; -import java.util.List; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.energymk2.Nodespace.PowerNode; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; @@ -22,14 +25,20 @@ public class TileEntityPylon extends TileEntityPylonBase { public double getMaxWireLength() { return 25D; } - + @Override - public List getConnectionPoints() { - List pos = new ArrayList(connected); - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - pos.add(new int[] {xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ}); - } - return pos; + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections( + new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN), + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord + 1, zCoord, Library.POS_Y), + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z) + ); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + return node; } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java index c55fe51d7..7581ddaed 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java @@ -3,9 +3,15 @@ package com.hbm.tileentity.network; import java.util.ArrayList; import java.util.List; -import api.hbm.energy.IEnergyConductor; +import com.hbm.util.ColorUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; 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.network.NetworkManager; import net.minecraft.network.Packet; @@ -14,18 +20,20 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.ForgeDirection; public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { public List connected = new ArrayList(); + public int color; - public static boolean canConnect(TileEntityPylonBase first, TileEntityPylonBase second) { + public static int canConnect(TileEntityPylonBase first, TileEntityPylonBase second) { if(first.getConnectionType() != second.getConnectionType()) - return false; + return 1; if(first == second) - return false; + return 2; double len = Math.min(first.getMaxWireLength(), second.getMaxWireLength()); @@ -38,17 +46,40 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { (secondPos.zCoord) - (firstPos.zCoord) ); - return len >= delta.lengthVector(); + return len >= delta.lengthVector() ? 0 : 3; + } + + public boolean setColor(ItemStack stack) { + if(stack == null) return false; + int color = ColorUtil.getColorFromDye(stack); + if(color == 0 || color == this.color) return false; + stack.stackSize--; + this.color = color; + + this.markDirty(); + if(worldObj instanceof WorldServer) { + WorldServer world = (WorldServer) worldObj; + world.getPlayerManager().markBlockForUpdate(xCoord, yCoord, zCoord); + } + + return true; + } + + @Override + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections(new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN)); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + return node; } public void addConnection(int x, int y, int z) { connected.add(new int[] {x, y, z}); - if(this.getPowerNet() != null) { - this.getPowerNet().reevaluate(); - this.network = null; - } + PowerNode node = Nodespace.getNode(worldObj, xCoord, yCoord, zCoord); + node.recentlyChanged = true; + node.addConnection(new DirPos(x, y, z, ForgeDirection.UNKNOWN)); this.markDirty(); @@ -69,6 +100,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { if(te instanceof TileEntityPylonBase) { TileEntityPylonBase pylon = (TileEntityPylonBase) te; + Nodespace.destroyNode(worldObj, pos[0], pos[1], pos[2]); for(int i = 0; i < pylon.connected.size(); i++) { int[] conPos = pylon.connected.get(i); @@ -87,33 +119,8 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { } } } - } - - @Override - protected void connect() { - for(int[] pos : getConnectionPoints()) { - - TileEntity te = worldObj.getTileEntity(pos[0], pos[1], pos[2]); - - if(te instanceof IEnergyConductor) { - - IEnergyConductor conductor = (IEnergyConductor) te; - - if(this.getPowerNet() == null && conductor.getPowerNet() != null) { - conductor.getPowerNet().joinLink(this); - } - - if(this.getPowerNet() != null && conductor.getPowerNet() != null && this.getPowerNet() != conductor.getPowerNet()) { - conductor.getPowerNet().joinNetworks(this.getPowerNet()); - } - } - } - } - - @Override - public List getConnectionPoints() { - return new ArrayList(connected); + Nodespace.destroyNode(worldObj, xCoord, yCoord, zCoord); } public abstract ConnectionType getConnectionType(); @@ -132,8 +139,9 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setInteger("conCount", connected.size()); + nbt.setInteger("color", color); for(int i = 0; i < connected.size(); i++) { nbt.setIntArray("con" + i, connected.get(i)); @@ -145,6 +153,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { super.readFromNBT(nbt); int count = nbt.getInteger("conCount"); + this.color = nbt.getInteger("color"); this.connected.clear(); @@ -168,6 +177,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { public static enum ConnectionType { SINGLE, + TRIPLE, QUAD //more to follow } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java index f0ef0c3d5..03b588ed0 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonLarge.java @@ -37,5 +37,4 @@ public class TileEntityPylonLarge extends TileEntityPylonBase { public double getMaxWireLength() { return 100; } - } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java new file mode 100644 index 000000000..fd7cb146f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonMedium.java @@ -0,0 +1,59 @@ +package com.hbm.tileentity.network; + +import com.hbm.blocks.ModBlocks; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.Nodespace.PowerNode; +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityPylonMedium extends TileEntityPylonBase { + + @Override + public ConnectionType getConnectionType() { + return ConnectionType.TRIPLE; + } + + @Override + public Vec3[] getMountPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + double height = 7.5D; + + return new Vec3[] { + Vec3.createVectorHelper(0.5, height, 0.5), + Vec3.createVectorHelper(0.5 + dir.offsetX, height, 0.5 + dir.offsetZ), + Vec3.createVectorHelper(0.5 + dir.offsetX * 2, height, 0.5 + dir.offsetZ * 2), + }; + } + + @Override + public double getMaxWireLength() { + return 45; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + return this.hasTransformer() ? ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getOpposite() == dir : false; + } + + @Override + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord)).setConnections(new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN)); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + if(this.hasTransformer()) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getOpposite(); + node.addConnection(new DirPos(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir)); + } + return node; + } + + public boolean hasTransformer() { + Block block = this.getBlockType(); + return block == ModBlocks.red_pylon_medium_wood_transformer || block == ModBlocks.red_pylon_medium_steel_transformer; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java new file mode 100644 index 000000000..3db91ad96 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java @@ -0,0 +1,343 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.CompatHandler; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.gui.GuiScreenRadioTelex; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.network.RTTYSystem.RTTYChannel; +import com.hbm.util.BufferUtil; +import com.hbm.util.ItemStackUtil; + +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityRadioTelex extends TileEntityLoadedBase implements IControlReceiver, IGUIProvider, SimpleComponent, CompatHandler.OCComponent { + + public static final int lineWidth = 33; + public String txChannel = ""; + public String rxChannel = ""; + public String[] txBuffer = new String[] {"", "", "", "", ""}; + public String[] rxBuffer = new String[] {"", "", "", "", ""}; + public int sendingLine = 0; + public int sendingIndex = 0; + public boolean isSending = false; + public int sendingWait = 0; + public int writingLine = 0; + public boolean printAfterRx = false; + public boolean deleteOnReceive = true; + public char sendingChar = ' '; + + public static final char eol = '\n'; + public static final char eot = '\u0004'; + public static final char bell = '\u0007'; + public static final char print = '\u000c'; + public static final char pause = '\u0016'; + public static final char clear = '\u007f'; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.sendingChar = ' '; + + if(this.isSending && this.txChannel.isEmpty()) this.isSending = false; + + if(this.isSending) { + + if(sendingWait > 0) { + sendingWait--; + } else { + + String line = txBuffer[sendingLine]; + + if(line.length() > sendingIndex) { + char c = line.charAt(sendingIndex); + sendingIndex++; + if(c == pause) { + sendingWait = 20; + } else { + RTTYSystem.broadcast(worldObj, this.txChannel, c); + this.sendingChar = c; + } + } else { + + if(sendingLine >= 4) { + this.isSending = false; + RTTYSystem.broadcast(worldObj, this.txChannel, eot); + this.sendingLine = 0; + this.sendingIndex = 0; + } else { + RTTYSystem.broadcast(worldObj, this.txChannel, eol); + this.sendingLine++; + this.sendingIndex = 0; + } + } + } + } + + if(!this.rxChannel.isEmpty()) { + RTTYChannel chan = RTTYSystem.listen(worldObj, this.rxChannel); + + if(chan != null && chan.signal instanceof Character && (chan.timeStamp > worldObj.getTotalWorldTime() - 2 && chan.timeStamp != -1)) { + char c = (char) chan.signal; + + if(this.deleteOnReceive) { + this.deleteOnReceive = false; + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + } + + if(c == eot) { + if(this.printAfterRx) { + this.printAfterRx = false; + this.print(); + } + this.deleteOnReceive = true; + } else if(c == eol) { + if(this.writingLine < 4) this.writingLine++; + this.markDirty(); + } else if(c == bell) { + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.orb", 2F, 0.5F); + } else if(c == print) { + this.printAfterRx = true; + } else if(c == clear) { + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + } else { + this.rxBuffer[this.writingLine] += c; + this.markDirty(); + } + } + } + + networkPackNT(16); + } + } + + @Override + public void serialize(ByteBuf buf) { + for(int i = 0; i < 5; i++) { + BufferUtil.writeString(buf, txBuffer[i]); + BufferUtil.writeString(buf, rxBuffer[i]); + } + + BufferUtil.writeString(buf, this.txChannel); + BufferUtil.writeString(buf, this.rxChannel); + buf.writeChar(this.sendingChar); + } + + @Override + public void deserialize(ByteBuf buf) { + for(int i = 0; i < 5; i++) { + txBuffer[i] = BufferUtil.readString(buf); + rxBuffer[i] = BufferUtil.readString(buf); + } + + this.txChannel = BufferUtil.readString(buf); + this.rxChannel = BufferUtil.readString(buf); + this.sendingChar = buf.readChar(); + } + + @Override + public void receiveControl(NBTTagCompound data) { + + for(int i = 0; i < 5; i++) { + if(data.hasKey("tx" + i)) this.txBuffer[i] = data.getString("tx" + i); + } + + String cmd = data.getString("cmd"); + + if("snd".equals(cmd) && !this.isSending) { + this.isSending = true; + this.sendingLine = 0; + this.sendingIndex = 0; + } + + if("rxprt".equals(cmd)) { + print(); + } + + if("rxcls".equals(cmd)) { + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + } + + if("sve".equals(cmd)) { + this.txChannel = data.getString("txChan"); + this.rxChannel = data.getString("rxChan"); + this.markDirty(); + } + } + + public void print() { + ItemStack stack = new ItemStack(Items.paper); + List text = new ArrayList(); + for(int i = 0; i < 5; i++) { + if(!rxBuffer[i].isEmpty()) text.add(rxBuffer[i]); + } + ItemStackUtil.addTooltipToStack(stack, text.toArray(new String[0])); + stack.setStackDisplayName("Message"); + worldObj.spawnEntityInWorld(new EntityItem(worldObj, xCoord + 0.5, yCoord + 1, zCoord + 0.5, stack)); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 16 * 16; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + for(int i = 0; i < 5; i++) { + txBuffer[i] = nbt.getString("tx" + i); + rxBuffer[i] = nbt.getString("rx" + i); + } + this.txChannel = nbt.getString("txChan"); + this.rxChannel = nbt.getString("rxChan"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + for(int i = 0; i < 5; i++) { + nbt.setString("tx" + i, txBuffer[i]); + nbt.setString("rx" + i, rxBuffer[i]); + } + nbt.setString("txChan", txChannel); + nbt.setString("rxChan", rxChannel); + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GuiScreenRadioTelex(this); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_telex"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getChannels(Context context, Arguments args) { + return new Object[] {this.txChannel, this.rxChannel}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] setChannels(Context context, Arguments args) { + String[] old = {this.txChannel, this.rxChannel}; + this.rxChannel = args.checkString(0); + this.txChannel = args.checkString(1); + return new Object[] {old[0], old[1]}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getSendingTexts(Context context, Arguments args) { + return new Object[] {this.txBuffer[0], this.txBuffer[1], this.txBuffer[2], this.txBuffer[3], this.txBuffer[4]}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getReceivingText(Context context, Arguments args) { + return new Object[] {this.rxBuffer[0], this.rxBuffer[1], this.rxBuffer[2], this.rxBuffer[3], this.rxBuffer[4]}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] setSendingText(Context context, Arguments args) { // this function nearly killed me + for(int i = 0; i < 5; i++) { + // check if it was never given or if it's an empty string + // if it was never given then just assign it as an empty string + // this also checks if it's even a string at all + if(args.checkAny(i) == null || args.checkString(i).equals("")) + this.txBuffer[i] = ""; + if(!args.checkString(i).equals("")) { // if it isn't an empty string + if(args.checkString(i).length() > TileEntityRadioTelex.lineWidth) { // line longer than allowed + this.txBuffer[i] = args.checkString(i).substring(0, TileEntityRadioTelex.lineWidth); // truncate it + } else + this.txBuffer[i] = args.checkString(i); // else just set it directly + } + } + return new Object[] {true}; + } + + @Callback //you don't get to run this more than once per tick, that would be very very bad + @Optional.Method(modid = "OpenComputers") + public Object[] printMessage(Context context, Arguments args) { + this.print(); + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] clearAll(Context context, Arguments args) { + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + return new Object[] {}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] sendMessage(Context context, Arguments args) { + if(!this.isSending) { + this.isSending = true; + this.sendingLine = 0; + this.sendingIndex = 0; + return new Object[] {true}; + } + return new Object[] {false}; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchBase.java index e881b1ecf..e63a5b6e3 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchBase.java @@ -1,16 +1,17 @@ package com.hbm.tileentity.network; import com.hbm.interfaces.IControlReceiver; -import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.BufferUtil; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -public class TileEntityRadioTorchBase extends TileEntity implements INBTPacketReceiver, IControlReceiver { +public class TileEntityRadioTorchBase extends TileEntityLoadedBase implements IControlReceiver { /** channel we're broadcasting on/listening to */ public String channel = ""; @@ -29,13 +30,8 @@ public class TileEntityRadioTorchBase extends TileEntity implements INBTPacketRe public void updateEntity() { if(!worldObj.isRemote) { - - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("p", polling); - data.setBoolean("m", customMap); - if(channel != null) data.setString("c", channel); - for(int i = 0; i < 16; i++) if(mapping[i] != null) data.setString("m" + i, mapping[i]); - INBTPacketReceiver.networkPack(this, data, 50); + + networkPackNT(50); } } @@ -62,11 +58,19 @@ public class TileEntityRadioTorchBase extends TileEntity implements INBTPacketRe } @Override - public void networkUnpack(NBTTagCompound nbt) { - this.polling = nbt.getBoolean("p"); - this.customMap = nbt.getBoolean("m"); - this.channel = nbt.getString("c"); - for(int i = 0; i < 16; i++) this.mapping[i] = nbt.getString("m" + i); + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.polling); + buf.writeBoolean(this.customMap); + BufferUtil.writeString(buf, this.channel); + for(int i = 0; i < 16; i++) BufferUtil.writeString(buf, this.mapping[i]); + } + + @Override + public void deserialize(ByteBuf buf) { + this.polling = buf.readBoolean(); + this.customMap = buf.readBoolean(); + this.channel = BufferUtil.readString(buf); + for(int i = 0; i < 16; i++) this.mapping[i] = BufferUtil.readString(buf); } @Override @@ -75,7 +79,7 @@ public class TileEntityRadioTorchBase extends TileEntity implements INBTPacketRe nbt.setByte("l", (byte) this.lastState); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); } - + @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { int last = this.lastState; @@ -96,7 +100,7 @@ public class TileEntityRadioTorchBase extends TileEntity implements INBTPacketRe if(data.hasKey("m")) this.customMap = data.getBoolean("m"); if(data.hasKey("c")) this.channel = data.getString("c"); for(int i = 0; i < 16; i++) if(data.hasKey("m" + i)) this.mapping[i] = data.getString("m" + i); - + this.markDirty(); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java new file mode 100644 index 000000000..0bb73a49c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java @@ -0,0 +1,144 @@ +package com.hbm.tileentity.network; + +import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IControlReceiverFilter; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; +import com.hbm.util.Compat; + +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityRadioTorchCounter extends TileEntityMachineBase implements IControlReceiverFilter { + + public String[] channel; + public int[] lastCount; + public boolean polling = false; + public ModulePatternMatcher matcher; + + public TileEntityRadioTorchCounter() { + super(3); + this.channel = new String[3]; + for(int i = 0; i < 3; i++) this.channel[i] = ""; + this.lastCount = new int[3]; + this.matcher = new ModulePatternMatcher(3); + } + + @Override + public String getName() { + return "container.rttyCounter"; + } + @Override + public void nextMode(int i) { + this.matcher.nextMode(worldObj, slots[i], i); + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); + + TileEntity tile = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + if(tile instanceof IInventory) { + IInventory inv = (IInventory) tile; + ItemStack[] invSlots = new ItemStack[inv.getSizeInventory()]; + for(int i = 0; i < invSlots.length; i++) invSlots[i] = inv.getStackInSlot(i); + + for(int i = 0; i < 3; i++) { + if(channel[i].isEmpty()) continue; + if(slots[i] == null) continue; + ItemStack pattern = slots[i]; + + int count = 0; + + for(int j = 0; j < invSlots.length; j++) { + if(invSlots[j] != null && matcher.isValidForFilter(pattern, i, invSlots[j])) { + count += invSlots[j].stackSize; + } + } + + if(this.polling || this.lastCount[i] != count) { + RTTYSystem.broadcast(worldObj, this.channel[i], count); + } + + this.lastCount[i] = count; + } + } + + this.networkPackNT(15); + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(this.polling); + BufferUtil.writeIntArray(buf, this.lastCount); + this.matcher.serialize(buf); + for(int i = 0; i < 3; i++) BufferUtil.writeString(buf, this.channel[i]); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.polling = buf.readBoolean(); + this.lastCount = BufferUtil.readIntArray(buf); + this.matcher.deserialize(buf); + for(int i = 0; i < 3; i++) this.channel[i] = BufferUtil.readString(buf); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.polling = nbt.getBoolean("p"); + for(int i = 0; i < 3; i++) { + this.channel[i] = nbt.getString("c" + i); + this.lastCount[i] = nbt.getInteger("l" + i); + } + this.matcher.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("p", polling); + for(int i = 0; i < 3; i++) { + if(channel[i] != null) nbt.setString("c" + i, channel[i]); + nbt.setInteger("l" + i, lastCount[i]); + } + this.matcher.writeToNBT(nbt); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("polling")) { + this.polling = !this.polling; + this.markChanged(); + } else { + System.out.println("guh"); + for(int i = 0; i < 3; i++) { + this.channel[i] = data.getString("c" + i); + } + this.markChanged(); + } + if(data.hasKey("slot")){ + setFilterContents(data); + } + } + + @Override + public int[] getFilterSlots() { + return new int[]{0, slots.length}; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java new file mode 100644 index 000000000..82f1134cb --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchLogic.java @@ -0,0 +1,197 @@ +package com.hbm.tileentity.network; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.network.RTTYSystem.RTTYChannel; + +import com.hbm.util.BufferUtil; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; + +public class TileEntityRadioTorchLogic extends TileEntityLoadedBase implements IControlReceiver { + + /** channel we're broadcasting on/listening to */ + public String channel = ""; + /** previous redstone state for input/output, needed for state change detection */ + public int lastState = 0; + /** last update tick, needed for receivers listening for changes */ + public long lastUpdate; + /** switches state change mode to tick-based polling */ + public boolean polling = false; + /** switches evaluation of conditions from ascending to descending */ + public boolean descending = false; + /** mapping for constants to compare against */ + public String[] mapping; + /** mapping for conditions through [1, 10], being (<, <=, >=, >, ==, !=, equals, !equals, contains, !contains) */ + public int[] conditions; + + public TileEntityRadioTorchLogic() { + this.mapping = new String[16]; + for(int i = 0; i < 16; i++) this.mapping[i] = ""; + this.conditions = new int[16]; + for(int i = 0; i < 16; i++) this.conditions[i] = 0; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(!this.channel.isEmpty()) { + + RTTYChannel chan = RTTYSystem.listen(worldObj, this.channel); + + if(chan != null && (this.polling || (chan.timeStamp > this.lastUpdate - 1 && chan.timeStamp != -1))) { // if we're either polling or a new message has come in + String msg = "" + chan.signal; + this.lastUpdate = worldObj.getTotalWorldTime(); + int nextState = 0; //if no remap apply, default to 0 + + if(chan.timeStamp < this.lastUpdate - 2 && this.polling) { + /* the vast majority use-case for this is going to be inequalities, NOT parsing, and the input is undefined - not the output + * if no signal => 0 for polling, advanced users parsing strings can easily accommodate this fact instead of breaking numerical torches */ + msg = "0"; + } + + if(descending) { + for(int i = 15; i >= 0; i--) { + if(!mapping[i].equals("") && parseSignal(msg, i)) { + nextState = i; + break; + } + } + } else { + for(int i = 0; i <= 15; i++) { + if(!mapping[i].equals("") && parseSignal(msg, i)) { + nextState = i; + break; + } + } + } + + if(this.lastState != nextState) { + this.lastState = nextState; + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, this.getBlockType()); + this.markDirty(); + } + } + } + + networkPackNT(50); + } + } + + public boolean parseSignal(String signal, int index) { + if(conditions[index] <= 5) { //if a non-string operator + int sig = 0; + int map = 0; + try { sig = Integer.parseInt(signal); map = Integer.parseInt(mapping[index]); } catch(Exception x) { + return false; //not a valid input; skip! slightly annoying about the mapping but we'll restrict input anyway + }; + + switch(conditions[index]) { + default: + return sig < map; + case 1: + return sig <= map; + case 2: + return sig >= map; + case 3: + return sig > map; + case 4: + return sig == map; + case 5: + return sig != map; + } + } + + switch(conditions[index]) { + default: + return signal.equals(mapping[index]); + case 7: + return !signal.equals(mapping[index]); + case 8: + return signal.contains(mapping[index]); + case 9: + return !signal.contains(mapping[index]); + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.polling = nbt.getBoolean("p"); + this.descending = nbt.getBoolean("d"); + this.lastState = nbt.getInteger("l"); + this.lastUpdate = nbt.getLong("u"); + this.channel = nbt.getString("c"); + for(int i = 0; i < 16; i++) this.mapping[i] = nbt.getString("m" + i); + for(int i = 0; i < 16; i++) this.conditions[i] = nbt.getInteger("c" + i); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("p", polling); + nbt.setBoolean("d", descending); + nbt.setInteger("l", lastState); + nbt.setLong("u", lastUpdate); + if(channel != null) nbt.setString("c", channel); + for(int i = 0; i < 16; i++) if(!mapping[i].equals("")) nbt.setString("m" + i, mapping[i]); + for(int i = 0; i < 16; i++) if(conditions[i] > 0) nbt.setInteger("c" + i, conditions[i]); + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.polling); + BufferUtil.writeString(buf, this.channel); + buf.writeBoolean(this.descending); + for(int i = 0; i < 16; i++) BufferUtil.writeString(buf, this.mapping[i]); + for(int i = 0; i < 16; i++) buf.writeInt(this.conditions[i]); + } + + @Override + public void deserialize(ByteBuf buf) { + this.polling = buf.readBoolean(); + this.channel = BufferUtil.readString(buf); + this.descending = buf.readBoolean(); + for(int i = 0; i < 16; i++) this.mapping[i] = BufferUtil.readString(buf); + for(int i = 0; i < 16; i++) this.conditions[i] = buf.readInt(); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setByte("l", (byte) this.lastState); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + int last = this.lastState; + this.lastState = pkt.func_148857_g().getByte("l"); + if(this.lastState != last) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 16D; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("p")) this.polling = data.getBoolean("p"); + if(data.hasKey("c")) this.channel = data.getString("c"); + if(data.hasKey("d")) this.descending = data.getBoolean("d"); + for(int i = 0; i < 16; i++) if(data.hasKey("m" + i)) this.mapping[i] = data.getString("m" + i); + for(int i = 0; i < 16; i++) if(data.hasKey("c" + i)) this.conditions[i] = data.getInteger("c" + i); + + this.markDirty(); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java new file mode 100644 index 000000000..7da701b58 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java @@ -0,0 +1,192 @@ +package com.hbm.tileentity.network; + +import java.util.HashMap; +import java.util.Iterator; + +import com.hbm.interfaces.NotableComments; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.util.HashedSet; +import com.hbm.util.ParticleUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; + +/** + * i can see it clearly + * this simple idea, this concept of 4 individually acting objects performing basic tasks + * it is all spiraling out of control + * in a giant mess of nested generics, magic numbers and static global variables + * may god have mercy on my soul + * + * @author hbm + * + */ +@NotableComments +public abstract class TileEntityRequestNetwork extends TileEntityLoadedBase { + + public HashedSet reachableNodes = new HashedSet(); + public HashedSet knownNodes = new HashedSet(); + public static final int maxRange = 24; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + BlockPos pos = getCoord(); + + PathNode newNode = createNode(pos); + if(this.worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord)) newNode.active = false; + // push new node + push(worldObj, newNode); + + // remove known nodes that no longer exist + // since we can assume a sane number of nodes to exist at any given time, we can run this check in full every second + Iterator it = knownNodes.iterator(); + HashedSet localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 2); // this bit may spiral into multiple nested hashtable lookups but it's limited to only a few chunks so it shouldn't be an issue + localNodes.remove(pos); + + while(it.hasNext()) { + PathNode node = it.next(); + if(!localNodes.contains(node)) { + reachableNodes.remove(node); + it.remove(); + } + } + + // draw debug crap + for(PathNode known : knownNodes) { + if(reachableNodes.contains(known)) ParticleUtil.spawnDroneLine(worldObj, + pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, + (known.pos.getX() - pos.getX()) / 2D, (known.pos.getY() - pos.getY()) / 2D, (known.pos.getZ() - pos.getZ()) / 2D, + reachableNodes.contains(known) ? 0x00ff00 : 0xff0000); + } + + /*NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 1.5F); + data.setString("text", knownNodes.size() + " / " + reachableNodes.size() + " / " + localNodes.size()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + */ + + //both following checks run the `hasPath` function which is costly, so it only runs one op at a time + + //rescan known nodes + for(PathNode known : knownNodes) { + + if(!hasPath(worldObj, pos, known.pos)) { + reachableNodes.remove(known); + } else { + reachableNodes.add(known); + } + } + + //discover new nodes + int newNodeLimit = 5; + for(PathNode node : localNodes) { + + if(!knownNodes.contains(node) && !node.equals(pos)) { + newNodeLimit--; + knownNodes.add(node); + if(hasPath(worldObj, pos, node.pos)) reachableNodes.add(node); + } + + if(newNodeLimit <= 0) break; + } + } + } + } + + public abstract PathNode createNode(BlockPos pos); + + public BlockPos getCoord() { + return new BlockPos(xCoord, yCoord + 1, zCoord); + } + + /** + * Performs a bidirectional scan to see if the nodes have line of sight + * @param world + * @param pos1 + * @param pos2 + * @return + */ + public static boolean hasPath(World world, BlockPos pos1, BlockPos pos2) { + Vec3 vec1 = Vec3.createVectorHelper(pos1.getX() + 0.5, pos1.getY() + 0.5, pos1.getZ() + 0.5); + Vec3 vec2 = Vec3.createVectorHelper(pos2.getX() + 0.5, pos2.getY() + 0.5, pos2.getZ() + 0.5); + Vec3 vec3 = vec1.subtract(vec2); + if(vec3.lengthVector() > maxRange) return false; + //for some fucking reason beyond any human comprehension, this function will randomly yield incorrect results but only from one side + //therefore we just run the stupid fucking thing twice and then compare the results + //thanks for this marvelous piece of programming, mojang + MovingObjectPosition mop0 = world.func_147447_a(vec1, vec2, false, true, false); + MovingObjectPosition mop2 = world.func_147447_a(vec2, vec1, false, true, false); + return (mop0 == null || mop0.typeOfHit == mop0.typeOfHit.MISS) && (mop2 == null || mop2.typeOfHit == mop2.typeOfHit.MISS); + } + + /** + * Adds the position to that chunk's node list. + * @param world + */ + public static void push(World world, PathNode node) { + + HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); + + if(coordMap == null) { + coordMap = new HashMap(); + RequestNetwork.activeWaypoints.put(world, coordMap); + } + + ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(node.pos.getX() >> 4, node.pos.getZ() >> 4); + HashedSet posList = coordMap.get(chunkPos); + + if(posList == null) { + posList = new HashedSet(); + coordMap.put(chunkPos, posList); + } + + posList.add(node); + } + + /** + * Gets all active nodes in a 5x5 chunk area, centered around the given position. + * Used for finding neighbors to check connections to. + * @param world + * @param x + * @param z + * @return + */ + public static HashedSet getAllLocalNodes(World world, int x, int z, int range) { + + HashedSet nodes = new HashedSet(); + HashedSet pos = new HashedSet(); + + x >>= 4; + z >>= 4; + + HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); + + if(coordMap == null) return nodes; + + for(int i = -range; i <= range; i++) { + for(int j = -range; j <= range; j++) { + + HashedSet nodeList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); + + if(nodeList != null) for(PathNode node : nodeList) { + if(!pos.contains(node.pos)) { + nodes.add(node); + //pos.add(node.pos); + } + } + } + } + + return nodes; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java new file mode 100644 index 000000000..73e07b745 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java @@ -0,0 +1,139 @@ +package com.hbm.tileentity.network; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; + +/** + * "Multiple inheritance is bad because...uhhhh...i guess if you do it wrong then it can lead to bad things" + * ~ genuinely retarded people on StackOverflow + * like yeah, doing things wrong can lead to bad things + * no shit + * just like how java operates already + * you fucking dork + * + * this class has to extend TileEntityRequestNetwork for all the network stuff to work + * but it also needs slots and all the container boilerplate crap + * since multiple inheritance is a sin punishable by stoning, i had to cram the entire contents of TileEntityMachineBase into this class + * is this good code? is this what you wanted? was it worth avoiding those hypothetical scenarios where multiple inheritance is le bad? + * i believe that neither heaven nor hell awaits me when all is said and done + * saint peter will send me to southend + * + * @author hbm + */ +public abstract class TileEntityRequestNetworkContainer extends TileEntityRequestNetwork implements ISidedInventory { + + public ItemStack slots[]; + + private String customName; + + public TileEntityRequestNetworkContainer(int scount) { + slots = new ItemStack[scount]; + } + + @Override public int getSizeInventory() { return slots.length; } + @Override public ItemStack getStackInSlot(int i) { return slots[i]; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public boolean isItemValidForSlot(int slot, ItemStack itemStack) { return false; } + @Override public boolean canInsertItem(int slot, ItemStack itemStack, int side) { return this.isItemValidForSlot(slot, itemStack); } + @Override public boolean canExtractItem(int slot, ItemStack itemStack, int side) { return false; } + @Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] { }; } + + public void markChanged() { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if(slots[i] != null) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) + { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : getName(); } + public abstract String getName(); + @Override public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } + public void setCustomName(String name) { this.customName = name; } + @Override public int getInventoryStackLimit() { return 64; } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + if(slots[slot] != null) { + + if(slots[slot].stackSize <= amount) { + ItemStack itemStack = slots[slot]; + slots[slot] = null; + return itemStack; + } + + ItemStack itemStack1 = slots[slot].splitStack(amount); + if(slots[slot].stackSize == 0) { + slots[slot] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + for(int i = 0; i < list.tagCount(); i++) + { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if(b0 >= 0 && b0 < slots.length) + { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + NBTTagList list = new NBTTagList(); + + for(int i = 0; i < slots.length; i++) + { + if(slots[i] != null) + { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte)i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java index 6f4235e38..1f6b90818 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java @@ -1,12 +1,14 @@ package com.hbm.tileentity.network; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energy.IEnergyConductor; +import api.hbm.energymk2.Nodespace.PowerNode; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntitySubstation extends TileEntityPylonBase { @@ -45,33 +47,26 @@ public class TileEntitySubstation extends TileEntityPylonBase { public double getMaxWireLength() { return 20; } - - @Override - public List getConnectionPoints() { - List pos = new ArrayList(connected); - pos.add(new int[] {xCoord + 2, yCoord, zCoord - 1}); - pos.add(new int[] {xCoord + 2, yCoord, zCoord + 1}); - pos.add(new int[] {xCoord - 2, yCoord, zCoord - 1}); - pos.add(new int[] {xCoord - 2, yCoord, zCoord + 1}); - pos.add(new int[] {xCoord - 1, yCoord, zCoord + 2}); - pos.add(new int[] {xCoord + 1, yCoord, zCoord + 2}); - pos.add(new int[] {xCoord - 1, yCoord, zCoord - 2}); - pos.add(new int[] {xCoord + 1, yCoord, zCoord - 2}); - return pos; - } @Override - public boolean hasProxies() { - return true; - } - - @Override - public List getProxies() { - List proxies = new ArrayList(); - proxies.add(IEnergyConductor.getIdentityFromPos(xCoord + 1, yCoord, zCoord + 1)); - proxies.add(IEnergyConductor.getIdentityFromPos(xCoord + 1, yCoord, zCoord - 1)); - proxies.add(IEnergyConductor.getIdentityFromPos(xCoord - 1, yCoord, zCoord + 1)); - proxies.add(IEnergyConductor.getIdentityFromPos(xCoord - 1, yCoord, zCoord - 1)); - return proxies; + public PowerNode createNode() { + TileEntity tile = (TileEntity) this; + PowerNode node = new PowerNode(new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord), + new BlockPos(tile.xCoord + 1, tile.yCoord, tile.zCoord + 1), + new BlockPos(tile.xCoord + 1, tile.yCoord, tile.zCoord - 1), + new BlockPos(tile.xCoord - 1, tile.yCoord, tile.zCoord + 1), + new BlockPos(tile.xCoord - 1, tile.yCoord, tile.zCoord - 1)).setConnections( + new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN), + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z) + ); + for(int[] pos : this.connected) node.addConnection(new DirPos(pos[0], pos[1], pos[2], ForgeDirection.UNKNOWN)); + return node; } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index a32914fc3..60d4fc53d 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -3,7 +3,6 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.BlockDummyable; import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.handler.CasingEjector; import com.hbm.inventory.container.ContainerTurretBase; @@ -12,14 +11,18 @@ import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemAmmoArty; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.Item; @@ -27,7 +30,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implements IGUIProvider { @@ -221,20 +223,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen return 7; } - protected void updateConnections() { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - for(int i = 0; i < 2; i++) { - for(int j = 0; j < 4; j++) { - this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * -3, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * -3, ForgeDirection.SOUTH); - this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * 2, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * 2, ForgeDirection.NORTH); - this.trySubscribe(worldObj, xCoord + dir.offsetX * -2 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * -2 + rot.offsetZ * (1 - j), ForgeDirection.EAST); - this.trySubscribe(worldObj, xCoord + dir.offsetX * 3 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * 3 + rot.offsetZ * (1 - j), ForgeDirection.WEST); - } - } - } - @Override public void updateEntity() { @@ -254,24 +242,22 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen this.barrelPos = 0; } } - } - - if(this.mode == this.MODE_MANUAL) { - if(!this.targetQueue.isEmpty()) { - this.tPos = this.targetQueue.get(0); - } - } else { - this.targetQueue.clear(); - } - - if(worldObj.isRemote) { this.lastRotationPitch = this.rotationPitch; this.lastRotationYaw = this.rotationYaw; + this.rotationPitch = this.syncRotationPitch; + this.rotationYaw = this.syncRotationYaw; } - - this.aligned = false; if(!worldObj.isRemote) { + if(this.mode == this.MODE_MANUAL) { + if(!this.targetQueue.isEmpty()) { + this.tPos = this.targetQueue.get(0); + } + } else { + this.targetQueue.clear(); + } + + this.aligned = false; this.updateConnections(); @@ -279,15 +265,12 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen this.target = null; this.stattrak++; } - } - if(target != null && this.mode != this.MODE_MANUAL) { - if(!this.entityInLOS(this.target)) { - this.target = null; + if(target != null && this.mode != this.MODE_MANUAL) { + if(!this.entityInLOS(this.target)) { + this.target = null; + } } - } - - if(!worldObj.isRemote) { if(target != null) { this.tPos = this.getEntityPos(target); @@ -296,19 +279,17 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen this.tPos = null; } } - } - if(isOn() && hasPower()) { + if(isOn() && hasPower()) { + + if(tPos != null) + this.alignTurret(); + } else { + this.target = null; + this.tPos = null; + } - if(tPos != null) - this.alignTurret(); - } else { - - this.target = null; - this.tPos = null; - } - - if(!worldObj.isRemote) { + if(!isOn()) this.targetQueue.clear(); if(this.target != null && !target.isEntityAlive()) { this.target = null; @@ -336,9 +317,8 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen } this.power = Library.chargeTEFromItems(slots, 10, this.power, this.getMaxPower()); - - NBTTagCompound data = this.writePacket(); - this.networkPack(data, 250); + + this.networkPackNT(250); this.didJustShoot = false; @@ -350,10 +330,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen } else { - Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); - vec.rotateAroundZ((float) -this.rotationPitch); - vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - //this will fix the interpolation error when the turret crosses the 360° point if(Math.abs(this.lastRotationYaw - this.rotationYaw) > Math.PI) { @@ -432,20 +408,17 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen } @Override - protected NBTTagCompound writePacket() { - NBTTagCompound data = super.writePacket(); - data.setShort("mode", mode); - if(didJustShoot) - data.setBoolean("didJustShoot", didJustShoot); - return data; + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeShort(this.mode); + buf.writeBoolean(this.didJustShoot); } @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - this.mode = nbt.getShort("mode"); - if(nbt.getBoolean("didJustShoot")) - this.retracting = true; + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.mode = buf.readShort(); + this.retracting = buf.readBoolean(); } @Override @@ -488,7 +461,74 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretArty(player.inventory, this); } + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] addCoords(Context context, Arguments args) { + this.mode = MODE_MANUAL; + if(Math.sqrt(Math.pow(xCoord - args.checkDouble(0), 2)+Math.pow(yCoord - args.checkDouble(1), 2)+Math.pow(zCoord - args.checkDouble(2), 2)) >= this.getDecetorRange()) // check distance against range + return new Object[] {false}; + targetQueue.add(Vec3.createVectorHelper(args.checkDouble(0), args.checkDouble(1), args.checkDouble(2))); + return new Object[] {true}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { // :vomit: + return new String[] { + "setActive", + "isActive", + "getEnergyInfo", + "getWhitelisted", + "addWhitelist", + "removeWhitelist", + "setTargeting", + "getTargeting", + "hasTarget", + "getAngle", + "isAligned", + "getCurrentTarget", + "getTargetDistance", + "addCoords" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch (method) { + case "setActive": + return setActive(context, args); + case "isActive": + return isActive(context, args); + case "getEnergyInfo": + return getEnergyInfo(context, args); + case "getWhitelisted": + return getWhitelisted(context, args); + case "addWhitelist": + return addWhitelist(context, args); + case "removeWhitelist": + return removeWhitelist(context, args); + case "setTargeting": + return setTargeting(context, args); + case "getTargeting": + return getTargeting(context, args); + case "hasTarget": + return hasTarget(context, args); + case "getAngle": + return getAngle(context, args); + case "isAligned": + return isAligned(context, args); + case "getCurrentTarget": + return getCurrentTarget(context, args); + case "getTargetDistance": + return getTargetDistance(context, args); + case "addCoords": + return addCoords(context, args); + } + throw new NoSuchMethodException(); + } + } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java index 35d211872..be61fcf98 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java @@ -3,12 +3,30 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.IRadarCommandReceiver; + +import cpw.mods.fml.common.Optional; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; import net.minecraft.entity.Entity; import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBaseNT { +public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBaseNT implements IRadarCommandReceiver { protected List targetQueue = new ArrayList(); + + public boolean sendCommandPosition(int x, int y, int z) { + this.enqueueTarget(x + 0.5, y, z + 0.5); + return true; + } + + public boolean sendCommandEntity(Entity target) { + this.enqueueTarget(target.posX, target.posY, target.posZ); + return true; + } public void enqueueTarget(double x, double y, double z) { @@ -40,4 +58,37 @@ public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBase return height < (e.posY + e.height); } } + + @Override + protected void updateConnections() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + for(int i = 0; i < 2; i++) { + for(int j = 0; j < 4; j++) { + this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * -3, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * -3, ForgeDirection.SOUTH); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * 2, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * 2, ForgeDirection.NORTH); + this.trySubscribe(worldObj, xCoord + dir.offsetX * -2 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * -2 + rot.offsetZ * (1 - j), ForgeDirection.EAST); + this.trySubscribe(worldObj, xCoord + dir.offsetX * 3 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * 3 + rot.offsetZ * (1 - j), ForgeDirection.WEST); + } + } + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_artillery"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getCurrentTarget(Context context, Arguments args) { + return new Object[] {targetQueue.get(0).xCoord, targetQueue.get(0).yCoord, targetQueue.get(0).zCoord}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getTargetDistance(Context context, Arguments args) { + return new Object[] {Math.sqrt(Math.pow(xCoord - args.checkDouble(0), 2)+Math.pow(yCoord - args.checkDouble(1), 2)+Math.pow(zCoord - args.checkDouble(2), 2))}; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index b8217f1d3..c5e41d3b7 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -7,31 +7,38 @@ import java.util.function.BiFunction; import com.hbm.blocks.BlockDummyable; import com.hbm.entity.logic.EntityBomber; -import com.hbm.entity.missile.EntityMissileBaseAdvanced; +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileCustom; -import com.hbm.entity.missile.EntitySiegeDropship; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.entity.train.EntityRailCarBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemTurretBiometry; +import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.lib.Library; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BufferUtil; import com.hbm.util.CompatExternal; -import api.hbm.energy.IEnergyUser; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.entity.IRadarDetectableNT; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; @@ -58,7 +65,8 @@ import net.minecraftforge.common.util.ForgeDirection; * @author hbm * */ -public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase implements IEnergyUser, IControlReceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase implements IEnergyReceiverMK2, IControlReceiver, IGUIProvider, SimpleComponent, CompatHandler.OCComponent { @Override public boolean hasPermission(EntityPlayer player) { @@ -67,10 +75,10 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple @Override public void receiveControl(NBTTagCompound data) { - + if(data.hasKey("del")) { this.removeName(data.getInteger("del")); - + } else if(data.hasKey("name")) { this.addName(data.getString("name")); } @@ -83,13 +91,17 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple //only used by clients for interpolation public double lastRotationYaw; public double lastRotationPitch; + //only used by clients for approach + public double syncRotationYaw; + public double syncRotationPitch; + protected int turnProgress; //is the turret on? public boolean isOn = false; //is the turret aimed at the target? public boolean aligned = false; //how many ticks until the next check public int searchTimer; - + public long power; public boolean targetPlayers = false; @@ -99,32 +111,32 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public Entity target; public Vec3 tPos; - + //tally marks! public int stattrak; public int casingDelay; protected SpentCasing cachedCasingConfig = null; - + /** * X - * + * * YYY * YYY * YYY Z - * + * * X -> ai slot (0) * Y -> ammo slots (1 - 9) * Z -> battery slot (10) */ - + public TileEntityTurretBaseNT() { super(11); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); this.targetPlayers = nbt.getBoolean("targetPlayers"); @@ -133,11 +145,11 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple this.targetMachines = nbt.getBoolean("targetMachines"); this.stattrak = nbt.getInteger("stattrak"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + nbt.setLong("power", this.power); nbt.setBoolean("isOn", this.isOn); nbt.setBoolean("targetPlayers", this.targetPlayers); @@ -146,86 +158,80 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple nbt.setBoolean("targetMachines", this.targetMachines); nbt.setInteger("stattrak", this.stattrak); } - + public void manualSetup() { } - + @Override public void updateEntity() { - + if(worldObj.isRemote) { this.lastRotationPitch = this.rotationPitch; this.lastRotationYaw = this.rotationYaw; + this.rotationPitch = this.syncRotationPitch; + this.rotationYaw = this.syncRotationYaw; } - this.aligned = false; - if(!worldObj.isRemote) { - + + this.aligned = false; this.updateConnections(); - + if(this.target != null && !target.isEntityAlive()) { this.target = null; this.stattrak++; } - } - - if(target != null) { - if(!this.entityInLOS(this.target)) { - this.target = null; + + if(target != null) { + if(!this.entityInLOS(this.target)) { + this.target = null; + } } - } - - if(!worldObj.isRemote) { - + if(target != null) { this.tPos = this.getEntityPos(target); } else { this.tPos = null; } - } - - if(isOn() && hasPower()) { - - if(tPos != null) - this.alignTurret(); - } else { - this.target = null; - this.tPos = null; - } - - if(!worldObj.isRemote) { - + if(isOn() && hasPower()) { + + if(tPos != null) + this.alignTurret(); + } else { + + this.target = null; + this.tPos = null; + } + if(this.target != null && !target.isEntityAlive()) { this.target = null; this.tPos = null; this.stattrak++; } - + if(isOn() && hasPower()) { searchTimer--; - + this.setPower(this.getPower() - this.getConsumption()); - + if(searchTimer <= 0) { searchTimer = this.getDecetorInterval(); - + if(this.target == null) this.seekNewTarget(); } } else { searchTimer = 0; } - + if(this.aligned) { this.updateFiringTick(); } - + this.power = Library.chargeTEFromItems(slots, 10, this.power, this.getMaxPower()); - - NBTTagCompound data = this.writePacket(); - this.networkPack(data, 250); - + + this.networkPackNT(250); + if(usesCasings() && this.casingDelay() > 0) { if(casingDelay > 0) { casingDelay--; @@ -233,16 +239,12 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple spawnCasing(); } } - + } else { - - Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); - vec.rotateAroundZ((float) -this.rotationPitch); - vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - + //this will fix the interpolation error when the turret crosses the 360° point if(Math.abs(this.lastRotationYaw - this.rotationYaw) > Math.PI) { - + if(this.lastRotationYaw < this.rotationYaw) this.lastRotationYaw += Math.PI * 2; else @@ -250,26 +252,36 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple } } } - - protected NBTTagCompound writePacket() { - - NBTTagCompound data = new NBTTagCompound(); - if(this.tPos != null) { - data.setDouble("tX", this.tPos.xCoord); - data.setDouble("tY", this.tPos.yCoord); - data.setDouble("tZ", this.tPos.zCoord); - } - data.setLong("power", this.power); - data.setBoolean("isOn", this.isOn); - data.setBoolean("targetPlayers", this.targetPlayers); - data.setBoolean("targetAnimals", this.targetAnimals); - data.setBoolean("targetMobs", this.targetMobs); - data.setBoolean("targetMachines", this.targetMachines); - data.setInteger("stattrak", this.stattrak); - - return data; + + @Override + public void serialize(ByteBuf buf) { + BufferUtil.writeVec3(buf, this.tPos); + buf.writeDouble(this.rotationPitch); + buf.writeDouble(this.rotationYaw); + buf.writeLong(this.power); + buf.writeBoolean(this.isOn); + buf.writeBoolean(this.targetPlayers); + buf.writeBoolean(this.targetAnimals); + buf.writeBoolean(this.targetMobs); + buf.writeBoolean(this.targetMachines); + buf.writeInt(this.stattrak); } - + + @Override + public void deserialize(ByteBuf buf) { + this.turnProgress = 2; + this.tPos = BufferUtil.readVec3(buf); + this.syncRotationPitch = buf.readDouble(); + this.syncRotationYaw = buf.readDouble(); + this.power = buf.readLong(); + this.isOn = buf.readBoolean(); + this.targetPlayers = buf.readBoolean(); + this.targetAnimals = buf.readBoolean(); + this.targetMobs = buf.readBoolean(); + this.targetMachines = buf.readBoolean(); + this.stattrak = buf.readInt(); + } + protected void updateConnections() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -288,27 +300,9 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -1, dir); } - @Override - public void networkUnpack(NBTTagCompound nbt) { - - this.power = nbt.getLong("power"); - this.isOn = nbt.getBoolean("isOn"); - this.targetPlayers = nbt.getBoolean("targetPlayers"); - this.targetAnimals = nbt.getBoolean("targetAnimals"); - this.targetMobs = nbt.getBoolean("targetMobs"); - this.targetMachines = nbt.getBoolean("targetMachines"); - this.stattrak = nbt.getInteger("stattrak"); - - if(nbt.hasKey("tX")) { - this.tPos = Vec3.createVectorHelper(nbt.getDouble("tX"), nbt.getDouble("tY"), nbt.getDouble("tZ")); - } else { - this.tPos = null; - } - } - @Override public void handleButtonPacket(int value, int meta) { - + switch(meta) { case 0:this.isOn = !this.isOn; break; case 1:this.targetPlayers = !this.targetPlayers; break; @@ -317,51 +311,47 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple case 4:this.targetMachines = !this.targetMachines; break; } } - + public abstract void updateFiringTick(); - + public boolean usesCasings() { return false; } public int casingDelay() { return 0; } - - public BulletConfiguration getFirstConfigLoaded() { - + + public BulletConfig getFirstConfigLoaded() { + List list = getAmmoList(); - + if(list == null || list.isEmpty()) return null; - + //doing it like this will fire slots in the right order, not in the order of the configs //you know, the weird thing the IItemGunBase does for(int i = 1; i < 10; i++) { - + if(slots[i] != null) { - + for(Integer c : list) { //we can afford all this extra iteration trash on the count that a turret has at most like 4 bullet configs - - BulletConfiguration conf = BulletConfigSyncingUtil.pullConfig(c); - - if(conf.ammo != null && conf.ammo.matchesRecipe(slots[i], true)) - return conf; + + BulletConfig conf = BulletConfig.configs.get(c); + if(conf.ammo != null && conf.ammo.matchesRecipe(slots[i], true)) return conf; } } } - + return null; } - - public void spawnBullet(BulletConfiguration bullet) { - + + public void spawnBullet(BulletConfig bullet, float baseDamage) { + Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - - EntityBulletBase proj = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.getKey(bullet)); - proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); - - proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, bullet.velocity, bullet.spread); + + EntityBulletBaseMK4 proj = new EntityBulletBaseMK4(worldObj, bullet, baseDamage, bullet.spread, (float) rotationYaw, (float) rotationPitch); + proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, proj.rotationYaw, proj.rotationPitch); worldObj.spawnEntityInWorld(proj); - + if(usesCasings()) { if(this.casingDelay() == 0) { spawnCasing(); @@ -370,118 +360,118 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple } } } - + public void conusmeAmmo(ComparableStack ammo) { - + for(int i = 1; i < 10; i++) { - + if(slots[i] != null && ammo.matchesRecipe(slots[i], true)) { - + this.decrStackSize(i, 1); return; } } - + this.markDirty(); } - + /** * Reads the namelist from the AI chip in slot 0 * @return null if there is either no chip to be found or if the name list is empty, otherwise it just reads the strings from the chip's NBT */ public List getWhitelist() { - + if(slots[0] != null && slots[0].getItem() == ModItems.turret_chip) { - + String[] array = ItemTurretBiometry.getNames(slots[0]); - + if(array == null) return null; - + return Arrays.asList(ItemTurretBiometry.getNames(slots[0])); } - + return null; } - + /** * Appends a new name to the chip * @param name */ public void addName(String name) { - + if(slots[0] != null && slots[0].getItem() == ModItems.turret_chip) { ItemTurretBiometry.addName(slots[0], name); } } - + /** - * Removes the chip's entry at a given + * Removes the chip's entry at a given * @param index */ public void removeName(int index) { - + if(slots[0] != null && slots[0].getItem() == ModItems.turret_chip) { - + String[] array = ItemTurretBiometry.getNames(slots[0]); - + if(array == null) return; - + List names = new ArrayList(Arrays.asList(array)); ItemTurretBiometry.clearNames(slots[0]); - + names.remove(index); - + for(String name : names) ItemTurretBiometry.addName(slots[0], name); } } - + /** * Finds the nearest acceptable target within range and in line of sight */ protected void seekNewTarget() { - + Vec3 pos = this.getTurretPos(); double range = this.getDecetorRange(); List entities = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(pos.xCoord, pos.yCoord, pos.zCoord, pos.xCoord, pos.yCoord, pos.zCoord).expand(range, range, range)); - + Entity target = null; double closest = range; - + for(Entity entity : entities) { Vec3 ent = this.getEntityPos(entity); Vec3 delta = Vec3.createVectorHelper(ent.xCoord - pos.xCoord, ent.yCoord - pos.yCoord, ent.zCoord - pos.zCoord); - + double dist = delta.lengthVector(); - + //check if it's in range if(dist > range) continue; - + //check if we should even fire at this entity if(!entityAcceptableTarget(entity)) continue; - + //check for visibility if(!entityInLOS(entity)) continue; - + //replace current target if this one is closer if(dist < closest) { closest = dist; target = entity; } } - + this.target = target; - + if(target != null) this.tPos = this.getEntityPos(this.target); } - + /** * Turns the turret by a specific amount of degrees towards the target * Assumes that the target is not null @@ -489,7 +479,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple protected void alignTurret() { this.turnTowards(tPos); } - + /** * Turns the turret towards the specified position */ @@ -497,32 +487,32 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple Vec3 pos = this.getTurretPos(); Vec3 delta = Vec3.createVectorHelper(ent.xCoord - pos.xCoord, ent.yCoord - pos.yCoord, ent.zCoord - pos.zCoord); - + double targetPitch = Math.asin(delta.yCoord / delta.lengthVector()); double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); - + this.turnTowardsAngle(targetPitch, targetYaw); } - + public void turnTowardsAngle(double targetPitch, double targetYaw) { - + double turnYaw = Math.toRadians(this.getTurretYawSpeed()); double turnPitch = Math.toRadians(this.getTurretPitchSpeed()); double pi2 = Math.PI * 2; - + //if we are about to overshoot the target by turning, just snap to the correct rotation if(Math.abs(this.rotationPitch - targetPitch) < turnPitch || Math.abs(this.rotationPitch - targetPitch) > pi2 - turnPitch) { this.rotationPitch = targetPitch; } else { - + if(targetPitch > this.rotationPitch) this.rotationPitch += turnPitch; else this.rotationPitch -= turnPitch; } - + double deltaYaw = (targetYaw - this.rotationYaw) % pi2; - + //determines what direction the turret should turn //used to prevent situations where the turret would do almost a full turn when //the target is only a couple degrees off while being on the other side of the 360° line @@ -536,68 +526,68 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple dir = -1; else if(deltaYaw > 0) dir = 1; - + if(Math.abs(this.rotationYaw - targetYaw) < turnYaw || Math.abs(this.rotationYaw - targetYaw) > pi2 - turnYaw) { this.rotationYaw = targetYaw; } else { this.rotationYaw += turnYaw * dir; } - + double deltaPitch = targetPitch - this.rotationPitch; deltaYaw = targetYaw - this.rotationYaw; - + double deltaAngle = Math.sqrt(deltaYaw * deltaYaw + deltaPitch * deltaPitch); this.rotationYaw = this.rotationYaw % pi2; this.rotationPitch = this.rotationPitch % pi2; - + if(deltaAngle <= Math.toRadians(this.getAcceptableInaccuracy())) { this.aligned = true; } } - + /** * Checks line of sight to the passed entity along with whether the angle falls within swivel range * @return */ public boolean entityInLOS(Entity e) { - + if(e.isDead || !e.isEntityAlive()) return false; - + if(!hasThermalVision() && e instanceof EntityLivingBase && ((EntityLivingBase)e).isPotionActive(Potion.invisibility)) return false; - + Vec3 pos = this.getTurretPos(); Vec3 ent = this.getEntityPos(e); Vec3 delta = Vec3.createVectorHelper(ent.xCoord - pos.xCoord, ent.yCoord - pos.yCoord, ent.zCoord - pos.zCoord); double length = delta.lengthVector(); - + if(length < this.getDecetorGrace() || length > this.getDecetorRange() * 1.1) //the latter statement is only relevant for entities that have already been detected return false; - + delta = delta.normalize(); double pitch = Math.asin(delta.yCoord / delta.lengthVector()); double pitchDeg = Math.toDegrees(pitch); - + //check if the entity is within swivel range if(pitchDeg < -this.getTurretDepression() || pitchDeg > this.getTurretElevation()) return false; - + return !Library.isObstructedOpaque(worldObj, ent.xCoord, ent.yCoord, ent.zCoord, pos.xCoord, pos.yCoord, pos.zCoord); } - + /** * Returns true if the entity is considered for targeting * @return */ public boolean entityAcceptableTarget(Entity e) { - + if(e.isDead || !e.isEntityAlive()) return false; - + for(Class c : CompatExternal.turretTargetBlacklist) if(c.isAssignableFrom(e.getClass())) return false; - + for(Class c : CompatExternal.turretTargetCondition.keySet()) { if(c.isAssignableFrom(e.getClass())) { BiFunction lambda = CompatExternal.turretTargetCondition.get(c); @@ -610,9 +600,9 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple } List wl = getWhitelist(); - + if(wl != null) { - + if(e instanceof EntityPlayer) { if(wl.contains(((EntityPlayer)e).getDisplayName())) { return false; @@ -623,14 +613,14 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple } } } - + if(targetAnimals) { - + if(e instanceof IAnimals) return true; if(e instanceof INpc) return true; for(Class c : CompatExternal.turretTargetFriendly) if(c.isAssignableFrom(e.getClass())) return true; } - + if(targetMobs) { //never target the ender dragon directly @@ -639,30 +629,28 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(e instanceof IMob) return true; for(Class c : CompatExternal.turretTargetHostile) if(c.isAssignableFrom(e.getClass())) return true; } - + if(targetMachines) { - if(e instanceof EntityMissileBaseAdvanced) return true; - if(e instanceof EntityMissileCustom) return true; + if(e instanceof IRadarDetectableNT && !((IRadarDetectableNT)e).canBeSeenBy(this)) return false; + if(e instanceof EntityMissileBaseNT) return e.motionY < 0; + if(e instanceof EntityMissileCustom) return e.motionY < 0; if(e instanceof EntityMinecart) return true; if(e instanceof EntityRailCarBase) return true; if(e instanceof EntityBomber) return true; - if(e instanceof EntitySiegeDropship) return true; for(Class c : CompatExternal.turretTargetMachine) if(c.isAssignableFrom(e.getClass())) return true; } - + if(targetPlayers ) { - - if(e instanceof FakePlayer) - return false; - + + if(e instanceof FakePlayer) return false; if(e instanceof EntityPlayer) return true; for(Class c : CompatExternal.turretTargetPlayer) if(c.isAssignableFrom(e.getClass())) return true; } - + return false; } - + /** * How many degrees the turret can deviate from the target to be acceptable to fire at * @return @@ -670,7 +658,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public double getAcceptableInaccuracy() { return 5; } - + /** * How many degrees the turret can rotate per tick (4.5°/t = 90°/s or a half turn in two seconds) * @return @@ -678,7 +666,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public double getTurretYawSpeed() { return 4.5D; } - + /** * How many degrees the turret can lift per tick (3°/t = 60°/s or roughly the lowest to the highest point of an average turret in one second) * @return @@ -702,7 +690,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public double getTurretElevation() { return 30D; } - + /** * How many ticks until a target rescan is required * @return @@ -710,7 +698,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public int getDecetorInterval() { return 10; } - + /** * How far away an entity can be to be picked up * @return @@ -718,7 +706,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public double getDecetorRange() { return 32D; } - + /** * How far away an entity needs to be to be picked up * @return @@ -726,7 +714,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public double getDecetorGrace() { return 3D; } - + /** * The pivot point of the turret, larger models have a default of 1.5 * @return @@ -734,7 +722,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public double getHeightOffset() { return 1.5D; } - + /** * Horizontal offset for the spawn point of bullets * @return @@ -750,7 +738,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public boolean hasThermalVision() { return true; } - + /** * The pivot point of the turret, this position is used for LOS calculation and more * @return @@ -759,7 +747,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple Vec3 offset = getHorizontalOffset(); return Vec3.createVectorHelper(xCoord + offset.xCoord, yCoord + getHeightOffset(), zCoord + offset.zCoord); } - + /** * The XZ offset for a standard 2x2 turret base * @return @@ -773,10 +761,10 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple return Vec3.createVectorHelper(1, 0, 0); if(meta == 5) return Vec3.createVectorHelper(0, 0, 1); - + return Vec3.createVectorHelper(0, 0, 0); } - + /** * The pivot point of the turret, this position is used for LOS calculation and more * @return @@ -784,32 +772,32 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public Vec3 getEntityPos(Entity e) { return Vec3.createVectorHelper(e.posX, e.posY + e.height * 0.5 - e.getYOffset(), e.posZ); } - + /** * Yes, new turrets fire BulletNTs. * @return */ protected abstract List getAmmoList(); - + @SideOnly(Side.CLIENT) protected List ammoStacks; @SideOnly(Side.CLIENT) public List getAmmoTypesForDisplay() { - + if(ammoStacks != null) return ammoStacks; - + ammoStacks = new ArrayList(); - + for(Integer i : getAmmoList()) { - BulletConfiguration config = BulletConfigSyncingUtil.pullConfig(i); - + BulletConfig config = BulletConfig.configs.get(i); + if(config != null && config.ammo != null) { ammoStacks.add(config.ammo.toStack()); } } - + return ammoStacks; } @@ -826,11 +814,11 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public boolean hasPower() { return this.getPower() >= this.getConsumption(); } - + public boolean isOn() { return this.isOn; } - + @Override public void setPower(long i) { this.power = i; @@ -840,15 +828,15 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public long getPower() { return this.power; } - + public int getPowerScaled(int scale) { return (int)(power * scale / this.getMaxPower()); } - + public long getConsumption() { return 100; } - + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; @@ -869,20 +857,20 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public void closeInventory() { this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.closeC", 1.0F, 1.0F); } - + protected Vec3 getCasingSpawnPos() { return this.getTurretPos(); } - + protected CasingEjector getEjector() { return null; } - + protected void spawnCasing() { - + if(cachedCasingConfig == null) return; CasingEjector ej = getEjector(); - + Vec3 spawn = this.getCasingSpawnPos(); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "casing"); @@ -892,12 +880,172 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple data.setString("name", cachedCasingConfig.getName()); if(ej != null) data.setInteger("ej", ej.getId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, spawn.xCoord, spawn.yCoord, spawn.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - + cachedCasingConfig = null; } - + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerTurretBase(player.inventory, this); } + + // OC stuff + // This is a large compat, so I have to leave comments to know what I'm doing + + @Override + @Optional.Method(modid = "OpenComputers") + public String getComponentName() { + return "ntm_turret"; + } + + // On/Off + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setActive(Context context, Arguments args) { + this.isOn = args.checkBoolean(0); + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] isActive(Context context, Arguments args) { + return new Object[] {this.isOn}; + } + + // Energy information + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {this.getPower(), this.getMaxPower()}; + } + + /////////////////////// + // Whitelist Control // + /////////////////////// + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getWhitelisted(Context context, Arguments args) { + if(slots[0] != null && slots[0].getItem() == ModItems.turret_chip) { + String[] array = ItemTurretBiometry.getNames(slots[0]); + return new Object[] {array}; + } + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] addWhitelist(Context context, Arguments args) { + if(this.getWhitelist() != null) { + List names = this.getWhitelist(); + if (names.contains(args.checkString(0))) + return new Object[]{false}; + } + this.addName(args.checkString(0)); + return new Object[]{true}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] removeWhitelist(Context context, Arguments args) { + List names = this.getWhitelist(); + if(!names.contains(args.checkString(0))) + return new Object[] {false}; + this.removeName(names.indexOf(args.checkString(0))); + return new Object[] {true}; + } + + /////////////////////// + // Targeting Control // + /////////////////////// + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setTargeting(Context context, Arguments args) { + this.targetPlayers = args.checkBoolean(0); + this.targetAnimals = args.checkBoolean(1); + this.targetMobs = args.checkBoolean(2); + this.targetMachines = args.checkBoolean(3); + return new Object[] {}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getTargeting(Context context, Arguments args) { + return new Object[] {this.targetPlayers, this.targetAnimals, this.targetMobs, this.targetMachines}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] hasTarget(Context context, Arguments args) { + return new Object[] {this.target != null}; + } + + /////////////////// + // Angle Control // + /////////////////// + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getAngle(Context context, Arguments args) { + return new Object[] {Math.toDegrees(this.rotationPitch), Math.toDegrees(this.rotationYaw)}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] isAligned(Context context, Arguments args) { + return new Object[] {this.aligned}; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public boolean canConnectNode(ForgeDirection side) { + return side == ForgeDirection.DOWN; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public String[] methods() { // :vomit: + return new String[] { + "setActive", + "isActive", + "getEnergyInfo", + "getWhitelisted", + "addWhitelist", + "removeWhitelist", + "setTargeting", + "getTargeting", + "hasTarget", + "getAngle", + "isAligned" + }; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public Object[] invoke(String method, Context context, Arguments args) throws Exception { + switch (method) { + case "setActive": + return setActive(context, args); + case "isActive": + return isActive(context, args); + case "getEnergyInfo": + return getEnergyInfo(context, args); + case "getWhitelisted": + return getWhitelisted(context, args); + case "addWhitelist": + return addWhitelist(context, args); + case "removeWhitelist": + return removeWhitelist(context, args); + case "setTargeting": + return setTargeting(context, args); + case "getTargeting": + return getTargeting(context, args); + case "hasTarget": + return hasTarget(context, args); + case "getAngle": + return getAngle(context, args); + case "isAligned": + return isAligned(context, args); + } + throw new NoSuchMethodException(); + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBrandon.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBrandon.java index dd6c17687..e04fef2f6 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBrandon.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBrandon.java @@ -4,7 +4,6 @@ import java.util.List; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.world.World; @@ -42,7 +41,7 @@ public class TileEntityTurretBrandon extends TileEntityTurretBaseNT { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java index 6ca6c4e35..f7dd78176 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java @@ -3,17 +3,16 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.inventory.gui.GUITurretChekhov; -import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactory50; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; @@ -27,15 +26,11 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { //also having a floaty `static` like this looks fun //idk if it's just me though static { - configs.add(BulletConfigSyncingUtil.BMG50_NORMAL); - configs.add(BulletConfigSyncingUtil.BMG50_INCENDIARY); - configs.add(BulletConfigSyncingUtil.BMG50_EXPLOSIVE); - configs.add(BulletConfigSyncingUtil.BMG50_AP); - configs.add(BulletConfigSyncingUtil.BMG50_DU); - configs.add(BulletConfigSyncingUtil.BMG50_STAR); - configs.add(BulletConfigSyncingUtil.BMG50_PHOSPHORUS); - configs.add(BulletConfigSyncingUtil.BMG50_SLEEK); - configs.add(BulletConfigSyncingUtil.CHL_BMG50); + configs.add(XFactory50.bmg50_sp.id); + configs.add(XFactory50.bmg50_fmj.id); + configs.add(XFactory50.bmg50_jhp.id); + configs.add(XFactory50.bmg50_ap.id); + configs.add(XFactory50.bmg50_du.id); } @Override @@ -77,11 +72,11 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { if(timer > 20 && timer % getDelay() == 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + BulletConfig conf = this.getFirstConfigLoaded(); if(conf != null) { - this.cachedCasingConfig = conf.spentCasing; - this.spawnBullet(conf); + this.cachedCasingConfig = conf.casing; + this.spawnBullet(conf, 10F); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.chekhov_fire", 2.0F, 1.0F); @@ -175,7 +170,7 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretChekhov(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java index 3a0d0126d..c4c5c122b 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java @@ -3,13 +3,12 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.CasingEjector; import com.hbm.inventory.gui.GUITurretFriendly; +import com.hbm.items.weapon.sedna.factory.XFactory556mm; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; @@ -18,11 +17,10 @@ public class TileEntityTurretFriendly extends TileEntityTurretChekhov { static List configs = new ArrayList(); static { - configs.add(BulletConfigSyncingUtil.R5_NORMAL); - configs.add(BulletConfigSyncingUtil.R5_EXPLOSIVE); - configs.add(BulletConfigSyncingUtil.R5_DU); - configs.add(BulletConfigSyncingUtil.R5_STAR); - configs.add(BulletConfigSyncingUtil.CHL_R5); + configs.add(XFactory556mm.r556_sp.id); + configs.add(XFactory556mm.r556_fmj.id); + configs.add(XFactory556mm.r556_jhp.id); + configs.add(XFactory556mm.r556_ap.id); } @Override @@ -49,7 +47,7 @@ public class TileEntityTurretFriendly extends TileEntityTurretChekhov { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretFriendly(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 3121134f9..ccd00b3e1 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -4,10 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -16,14 +13,17 @@ import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.inventory.gui.GUITurretFritz; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.items.weapon.sedna.factory.XFactoryFlamer; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import api.hbm.fluid.IFluidStandardReceiver; +import com.hbm.tileentity.IFluidCopiable; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -31,13 +31,13 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidAcceptor, IFluidStandardReceiver { +public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidStandardReceiver, IFluidCopiable { public FluidTank tank; public TileEntityTurretFritz() { super(); - this.tank = new FluidTank(Fluids.DIESEL, 16000, 0); + this.tank = new FluidTank(Fluids.DIESEL, 16000); } @Override @@ -58,7 +58,7 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl ammoStacks = new ArrayList(); - ammoStacks.add(new ItemStack(ModItems.ammo_fuel)); + ammoStacks.add(new ItemStack(ModItems.ammo_standard, 1, EnumAmmo.FLAME_DIESEL.ordinal())); for(FluidType type : Fluids.getInNiceOrder()) { if(type.hasTrait(FT_Combustible.class) && type.hasTrait(FT_Liquid.class)) { @@ -105,7 +105,6 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl if(this.tank.getTankType().hasTrait(FT_Flammable.class) && this.tank.getTankType().hasTrait(FT_Liquid.class) && this.tank.getFill() >= 2) { FT_Flammable trait = this.tank.getTankType().getTrait(FT_Flammable.class); - BulletConfiguration conf = BulletConfigSyncingUtil.pullConfig(BulletConfigSyncingUtil.FLA_NORMAL); this.tank.setFill(this.tank.getFill() - 2); Vec3 pos = this.getTurretPos(); @@ -113,11 +112,8 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - EntityBulletBase proj = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.getKey(conf)); - proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); - proj.overrideDamage = (float) (trait.getHeatEnergy() / 500_000F); - - proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, conf.velocity, conf.spread); + EntityBulletBaseMK4 proj = new EntityBulletBaseMK4(worldObj, XFactoryFlamer.flame_nograv, (float) (trait.getHeatEnergy() / 500_000F), 0.05F, (float) rotationYaw, (float) rotationPitch); + proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, proj.rotationYaw, proj.rotationPitch); worldObj.spawnEntityInWorld(proj); worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.flamethrowerShoot", 2F, 1F + worldObj.rand.nextFloat() * 0.5F); @@ -142,11 +138,10 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl if(!worldObj.isRemote) { tank.setType(9, 9, slots); tank.loadTank(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); for(int i = 1; i < 10; i++) { - if(slots[i] != null && slots[i].getItem() == ModItems.ammo_fuel) { + if(slots[i] != null && slots[i].getItem() == ModItems.ammo_standard && slots[i].getItemDamage() == EnumAmmo.FLAME_DIESEL.ordinal()) { if(this.tank.getTankType() == Fluids.DIESEL && this.tank.getFill() + 1000 <= this.tank.getMaxFill()) { this.tank.setFill(this.tank.getFill() + 1000); this.decrStackSize(i, 1); @@ -156,6 +151,18 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl } } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + tank.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + tank.deserialize(buf); + } + @Override //TODO: clean this shit up protected void updateConnections() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); @@ -197,32 +204,6 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl return new int[] { 1, 2, 3, 4, 5, 6, 7, 8 }; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; @@ -240,7 +221,12 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretFritz(player.inventory, this); } + + @Override + public FluidTank getTankToPaste() { + return tank; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index 0b0718d44..30c24e571 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -14,9 +14,13 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -89,7 +93,7 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem @Override public double getDecetorGrace() { - return 32D; + return 250D; } @Override @@ -135,40 +139,38 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem @Override public void updateEntity() { - this.lastCrane = this.crane; - - if(this.mode == this.MODE_MANUAL) { - if(!this.targetQueue.isEmpty()) { - this.tPos = this.targetQueue.get(0); - } - } else { - this.targetQueue.clear(); - } - if(worldObj.isRemote) { this.lastRotationPitch = this.rotationPitch; this.lastRotationYaw = this.rotationYaw; + this.lastCrane = this.crane; + this.rotationPitch = this.syncRotationPitch; + this.rotationYaw = this.syncRotationYaw; } - - this.aligned = false; if(!worldObj.isRemote) { + if(this.mode == this.MODE_MANUAL) { + if(!this.targetQueue.isEmpty()) { + this.tPos = this.targetQueue.get(0); + } + } else { + this.targetQueue.clear(); + } + + this.aligned = false; + this.updateConnections(); if(this.target != null && !target.isEntityAlive()) { this.target = null; this.stattrak++; } - } - if(target != null && this.mode != this.MODE_MANUAL) { - if(!this.entityInLOS(this.target)) { - this.target = null; + if(target != null && this.mode != this.MODE_MANUAL) { + if(!this.entityInLOS(this.target)) { + this.target = null; + } } - } - - if(!worldObj.isRemote) { if(target != null) { this.tPos = this.getEntityPos(target); @@ -177,50 +179,49 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem this.tPos = null; } } - } - if(isOn() && hasPower()) { - - if(!this.hasAmmo() || this.crane > 0) { + if(isOn() && hasPower()) { - this.turnTowardsAngle(0, this.rotationYaw); - - if(this.aligned) { + if(!this.hasAmmo() || this.crane > 0) { - if(this.hasAmmo()) { - this.crane -= 0.0125F; - } else { - this.crane += 0.0125F; + this.turnTowardsAngle(0, this.rotationYaw); + + if(this.aligned) { - if(this.crane >= 1F && !worldObj.isRemote) { - int available = this.getSpareRocket(); + if(this.hasAmmo()) { + this.crane -= 0.0125F; + } else { + this.crane += 0.0125F; - if(available != -1) { - HIMARSRocket type = ItemAmmoHIMARS.itemTypes[available]; - this.typeLoaded = available; - this.ammo = type.amount; - this.conusmeAmmo(new ComparableStack(ModItems.ammo_himars, 1, available)); + if(this.crane >= 1F) { + int available = this.getSpareRocket(); + + if(available != -1) { + HIMARSRocket type = ItemAmmoHIMARS.itemTypes[available]; + this.typeLoaded = available; + this.ammo = type.amount; + this.conusmeAmmo(new ComparableStack(ModItems.ammo_himars, 1, available)); + } } } } + + this.crane = MathHelper.clamp_float(this.crane, 0F, 1F); + + } else { + + if(tPos != null) { + this.alignTurret(); + } } - this.crane = MathHelper.clamp_float(this.crane, 0F, 1F); - } else { - - if(tPos != null) { - this.alignTurret(); - } + + this.target = null; + this.tPos = null; } - } else { - - this.target = null; - this.tPos = null; - } - - if(!worldObj.isRemote) { + if(!isOn()) this.targetQueue.clear(); if(this.target != null && !target.isEntityAlive()) { this.target = null; @@ -248,16 +249,11 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem } this.power = Library.chargeTEFromItems(slots, 10, this.power, this.getMaxPower()); - - NBTTagCompound data = this.writePacket(); - this.networkPack(data, 250); + + this.networkPackNT(250); } else { - Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); - vec.rotateAroundZ((float) -this.rotationPitch); - vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - //this will fix the interpolation error when the turret crosses the 360° point if(Math.abs(this.lastRotationYaw - this.rotationYaw) > Math.PI) { @@ -270,20 +266,21 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem } @Override - protected NBTTagCompound writePacket() { - NBTTagCompound data = super.writePacket(); - data.setShort("mode", this.mode); - data.setInteger("type", this.typeLoaded); - data.setInteger("ammo", this.ammo); - return data; + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeShort(this.mode); + buf.writeShort(this.typeLoaded); + buf.writeInt(this.ammo); + buf.writeFloat(this.crane); } @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - this.mode = nbt.getShort("mode"); - this.typeLoaded = nbt.getShort("type"); - this.ammo = nbt.getInteger("ammo"); + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.mode = buf.readShort(); + this.typeLoaded = buf.readShort(); + this.ammo = buf.readInt(); + this.crane = buf.readFloat(); } public boolean hasAmmo() { @@ -355,6 +352,8 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem super.readFromNBT(nbt); this.mode = nbt.getShort("mode"); + this.typeLoaded = nbt.getShort("type"); + this.ammo = nbt.getInteger("ammo"); } @Override @@ -362,6 +361,8 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem super.writeToNBT(nbt); nbt.setShort("mode", this.mode); + nbt.setInteger("type", this.typeLoaded); + nbt.setInteger("ammo", this.ammo); } @Override @@ -371,7 +372,14 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretHIMARS(player.inventory, this); } + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] addCoords(Context context, Arguments args) { + this.mode = MODE_MANUAL; + targetQueue.add(Vec3.createVectorHelper(args.checkDouble(0), args.checkDouble(1), args.checkDouble(2))); + return new Object[] {}; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java index 5afbd8afa..71993d569 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java @@ -4,21 +4,20 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.WeaponConfig; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.guncfg.GunDGKFactory; import com.hbm.inventory.gui.GUITurretHoward; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactoryTurret; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.SpentCasing; import com.hbm.util.EntityDamageUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; @@ -29,7 +28,7 @@ public class TileEntityTurretHoward extends TileEntityTurretBaseNT { static List configs = new ArrayList(); static { - configs.add(BulletConfigSyncingUtil.DGK_NORMAL); + configs.add(XFactoryTurret.dgk_normal.id); } @Override @@ -115,7 +114,7 @@ public class TileEntityTurretHoward extends TileEntityTurretBaseNT { } else { if(loaded <= 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + BulletConfig conf = this.getFirstConfigLoaded(); if(conf != null) { this.conusmeAmmo(conf.ammo); @@ -216,7 +215,7 @@ public class TileEntityTurretHoward extends TileEntityTurretBaseNT { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretHoward(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java index 26536ffb5..4ef7fd51e 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java @@ -3,14 +3,13 @@ package com.hbm.tileentity.turret; import com.hbm.config.WeaponConfig; import com.hbm.handler.guncfg.GunDGKFactory; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.EntityDamageUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -108,7 +107,7 @@ public class TileEntityTurretHowardDamaged extends TileEntityTurretHoward { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java index f89b81cbd..b2af72b35 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java @@ -3,32 +3,31 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.inventory.gui.GUITurretJeremy; -import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactoryTurret; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; public class TileEntityTurretJeremy extends TileEntityTurretBaseNT { - + static List configs = new ArrayList(); static { - configs.add(BulletConfigSyncingUtil.SHELL_NORMAL); - configs.add(BulletConfigSyncingUtil.SHELL_EXPLOSIVE); - configs.add(BulletConfigSyncingUtil.SHELL_AP); - configs.add(BulletConfigSyncingUtil.SHELL_DU); - configs.add(BulletConfigSyncingUtil.SHELL_W9); + configs.add(XFactoryTurret.shell_normal.id); + configs.add(XFactoryTurret.shell_explosive.id); + configs.add(XFactoryTurret.shell_ap.id); + configs.add(XFactoryTurret.shell_du.id); + configs.add(XFactoryTurret.shell_w9.id); } @Override @@ -88,11 +87,11 @@ public class TileEntityTurretJeremy extends TileEntityTurretBaseNT { if(timer % 40 == 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + BulletConfig conf = this.getFirstConfigLoaded(); if(conf != null) { - this.cachedCasingConfig = conf.spentCasing; - this.spawnBullet(conf); + this.cachedCasingConfig = conf.casing; + this.spawnBullet(conf, 50F); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 4.0F, 1.0F); Vec3 pos = this.getTurretPos(); @@ -142,7 +141,7 @@ public class TileEntityTurretJeremy extends TileEntityTurretBaseNT { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretJeremy(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java index ea00c1637..5b8f99bbd 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java @@ -1,30 +1,37 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.gui.GUITurretMaxwell; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; import com.hbm.util.EntityDamageUtil; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { +public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT implements IUpgradeInfoProvider { @Override public String getName() { @@ -38,10 +45,10 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { @SideOnly(Side.CLIENT) public List getAmmoTypesForDisplay() { - + if(ammoStacks != null) return ammoStacks; - + ammoStacks = new ArrayList(); ammoStacks.add(new ItemStack(ModItems.upgrade_speed_1)); @@ -61,10 +68,46 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { ammoStacks.add(new ItemStack(ModItems.upgrade_overdrive_3)); ammoStacks.add(new ItemStack(ModItems.upgrade_5g)); ammoStacks.add(new ItemStack(ModItems.upgrade_screm)); - + return ammoStacks; } - + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT || type == UpgradeType.POWER || type == UpgradeType.AFTERBURN || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.turret_maxwell)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + "Damage +0." + (level * 25) + "/t"); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 3) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_RANGE, "+" + (level * 3) + "m")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + "Afterburn +3s"); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 27); + upgrades.put(UpgradeType.POWER, 27); + upgrades.put(UpgradeType.EFFECT, 27); + upgrades.put(UpgradeType.AFTERBURN, 27); + upgrades.put(UpgradeType.OVERDRIVE, 27); + return upgrades; + } + @Override public double getAcceptableInaccuracy() { return 2; @@ -119,28 +162,28 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { public double getHeightOffset() { return 2D; } - + public int beam; public double lastDist; - + @Override public void updateEntity() { - + if(worldObj.isRemote) { - + if(this.tPos != null) { Vec3 pos = this.getTurretPos(); double length = Vec3.createVectorHelper(tPos.xCoord - pos.xCoord, tPos.yCoord - pos.yCoord, tPos.zCoord - pos.zCoord).lengthVector(); this.lastDist = length; } - + if(beam > 0) beam--; } else { - + if(checkDelay <= 0) { checkDelay = 20; - + this.redLevel = 0; this.greenLevel = 0; this.blueLevel = 0; @@ -148,11 +191,11 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { this.pinkLevel = 0; this._5g = false; this.screm = false; - + for(int i = 1; i < 10; i++) { if(slots[i] != null) { Item item = slots[i].getItem(); - + if(item == ModItems.upgrade_speed_1) redLevel += 1; if(item == ModItems.upgrade_speed_2) redLevel += 2; if(item == ModItems.upgrade_speed_3) redLevel += 3; @@ -173,13 +216,13 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { } } } - + checkDelay--; } - + super.updateEntity(); } - + int redLevel; int greenLevel; int blueLevel; @@ -187,14 +230,14 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { int pinkLevel; boolean _5g; boolean screm; - + int checkDelay; @Override public void updateFiringTick() { - + long demand = this.getConsumption() * 10; - + if(this.target != null && this.getPower() >= demand) { if(_5g && target instanceof EntityPlayer) { @@ -203,42 +246,54 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { } else { EntityDamageUtil.attackEntityFromIgnoreIFrame(this.target, ModDamageSource.microwave, (this.blackLevel * 10 + this.redLevel + 1F) * 0.25F); } - + if(pinkLevel > 0) this.target.setFire(this.pinkLevel * 3); - + if(!this.target.isEntityAlive() && this.target instanceof EntityLivingBase) { NBTTagCompound vdat = new NBTTagCompound(); vdat.setString("type", "giblets"); vdat.setInteger("ent", this.target.getEntityId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, this.target.posX, this.target.posY + this.target.height * 0.5, this.target.posZ), new TargetPoint(this.target.dimension, this.target.posX, this.target.posY + this.target.height * 0.5, this.target.posZ, 150)); - + if(this.screm) worldObj.playSoundEffect(this.target.posX, this.target.posY, this.target.posZ, "hbm:block.screm", 20.0F, 1.0F); else worldObj.playSoundEffect(this.target.posX, this.target.posY, this.target.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); } - + this.power -= demand; - - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("shot", true); - this.networkPack(data, 250); + + this.shot = true; + this.networkPackNT(250); + this.shot = false; + } + } + + private boolean shot = false; + + @Override + public void serialize(ByteBuf buf) { + if (this.shot) + buf.writeBoolean(true); + else { + buf.writeBoolean(false); + super.serialize(buf); } } @Override - public void networkUnpack(NBTTagCompound nbt) { - - if(nbt.hasKey("shot")) - beam = 5; + public void deserialize(ByteBuf buf) { + boolean shot = buf.readBoolean(); + if(shot) + this.beam = 5; else - super.networkUnpack(nbt); + super.deserialize(buf); } @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretMaxwell(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java index c23f2595e..9e2162412 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java @@ -3,19 +3,16 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.inventory.gui.GUITurretRichard; -import com.hbm.items.ItemAmmoEnums.AmmoRocket; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactoryRocket; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; @@ -24,22 +21,11 @@ import net.minecraft.world.World; public class TileEntityTurretRichard extends TileEntityTurretBaseNT { static List configs = new ArrayList(); - + static { - configs.add(BulletConfigSyncingUtil.ROCKET_NORMAL); - configs.add(BulletConfigSyncingUtil.ROCKET_HE); - configs.add(BulletConfigSyncingUtil.ROCKET_INCENDIARY); - configs.add(BulletConfigSyncingUtil.ROCKET_SHRAPNEL); - configs.add(BulletConfigSyncingUtil.ROCKET_EMP); - configs.add(BulletConfigSyncingUtil.ROCKET_GLARE); - configs.add(BulletConfigSyncingUtil.ROCKET_SLEEK); - configs.add(BulletConfigSyncingUtil.ROCKET_NUKE); - configs.add(BulletConfigSyncingUtil.ROCKET_CHAINSAW); - configs.add(BulletConfigSyncingUtil.ROCKET_TOXIC); - configs.add(BulletConfigSyncingUtil.ROCKET_PHOSPHORUS); - configs.add(BulletConfigSyncingUtil.ROCKET_CANISTER); + for(BulletConfig cfg : XFactoryRocket.rocket_ml) configs.add(cfg.id); } - + @Override protected List getAmmoList() { return configs; @@ -69,7 +55,7 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { public long getMaxPower() { return 10000; } - + @Override public double getDecetorGrace() { return 8D; @@ -79,68 +65,80 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { public double getDecetorRange() { return 64D; } - + int timer; public int loaded; int reload; - + @Override public void updateEntity() { super.updateEntity(); - + if(!worldObj.isRemote) { - + if(reload > 0) { reload--; - + if(reload == 0) this.loaded = 17; } - + if(loaded <= 0 && reload <= 0 && this.getFirstConfigLoaded() != null) { reload = 100; } - + if(this.getFirstConfigLoaded() == null) { this.loaded = 0; } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("loaded", this.loaded); - this.networkPack(data, 250); + + this.isTurretPacket = true; + this.networkPackNT(250); + this.isTurretPacket = false; + } + } + + // wow so descriptive, i dont wanna hear it; it solves the problem + private boolean isTurretPacket = false; + + @Override + public void serialize(ByteBuf buf) { + if (this.isTurretPacket) { + buf.writeBoolean(true); + buf.writeInt(this.loaded); + } else { + buf.writeBoolean(false); + super.serialize(buf); } } @Override - public void networkUnpack(NBTTagCompound nbt) { - - if(nbt.hasKey("loaded")) - this.loaded = nbt.getInteger("loaded"); - else - super.networkUnpack(nbt); + public void deserialize(ByteBuf buf) { + if(buf.readBoolean()) { + this.loaded = buf.readInt(); + } else + super.deserialize(buf); } @Override public void updateFiringTick() { - + if(reload > 0) return; - + timer++; - + if(timer > 0 && timer % 10 == 0) { - - BulletConfiguration conf = this.getFirstConfigLoaded(); - + + BulletConfig conf = this.getFirstConfigLoaded(); + if(conf != null) { - this.spawnBullet(conf); + this.spawnBullet(conf, 30F); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.richard_fire", 2.0F, 1.0F); this.loaded--; - - if(conf.ammo.equals(new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR)))) - timer = -50; - + + //if(conf.ammo.equals(new ComparableStack(ModItems.ammo_standard, EnumAmmo.ROCKET_DEMO))) timer = -50; + } else { this.loaded = 0; } @@ -148,26 +146,25 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { } @Override - public void spawnBullet(BulletConfiguration bullet) { - + public void spawnBullet(BulletConfig bullet, float baseDamage) { + Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - - EntityBulletBase proj = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.getKey(bullet)); - proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); - - proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, bullet.velocity * 0.75F, bullet.spread); + + EntityBulletBaseMK4 proj = new EntityBulletBaseMK4(worldObj, bullet, baseDamage, bullet.spread, (float) rotationYaw, (float) rotationPitch); + proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, proj.rotationYaw, proj.rotationPitch); + proj.lockonTarget = this.target; worldObj.spawnEntityInWorld(proj); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.loaded = nbt.getInteger("loaded"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -176,7 +173,7 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretRichard(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java index 5a1a1326b..0561ee499 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java @@ -3,19 +3,19 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.inventory.gui.GUITurretSentry; -import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactory9mm; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -26,25 +26,24 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IGUIProvider { - private boolean didJustShootLeft = false; - private boolean retractingLeft = false; + protected boolean didJustShootLeft = false; + protected boolean retractingLeft = false; public double barrelLeftPos = 0; public double lastBarrelLeftPos = 0; - private boolean didJustShootRight = false; - private boolean retractingRight = false; + protected boolean didJustShootRight = false; + protected boolean retractingRight = false; public double barrelRightPos = 0; public double lastBarrelRightPos = 0; static List configs = new ArrayList(); - + static { - configs.add(BulletConfigSyncingUtil.R5_NORMAL); - configs.add(BulletConfigSyncingUtil.R5_EXPLOSIVE); - configs.add(BulletConfigSyncingUtil.R5_DU); - configs.add(BulletConfigSyncingUtil.R5_STAR); - configs.add(BulletConfigSyncingUtil.CHL_R5); + configs.add(XFactory9mm.p9_sp.id); + configs.add(XFactory9mm.p9_fmj.id); + configs.add(XFactory9mm.p9_jhp.id); + configs.add(XFactory9mm.p9_ap.id); } - + @Override protected List getAmmoList() { return configs; @@ -54,7 +53,7 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG public String getName() { return "container.turretSentry"; } - + @Override public double getTurretDepression() { return 20D; @@ -109,38 +108,38 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG public Vec3 getHorizontalOffset() { return Vec3.createVectorHelper(0.5, 0, 0.5); } - + @Override public void updateEntity() { - + if(worldObj.isRemote) { this.lastBarrelLeftPos = this.barrelLeftPos; this.lastBarrelRightPos = this.barrelRightPos; float retractSpeed = 0.5F; float pushSpeed = 0.25F; - + if(this.retractingLeft) { this.barrelLeftPos += retractSpeed; - + if(this.barrelLeftPos >= 1) { this.retractingLeft = false; } - + } else { this.barrelLeftPos -= pushSpeed; if(this.barrelLeftPos < 0) { this.barrelLeftPos = 0; } } - + if(this.retractingRight) { this.barrelRightPos += retractSpeed; - + if(this.barrelRightPos >= 1) { this.retractingRight = false; } - + } else { this.barrelRightPos -= pushSpeed; if(this.barrelRightPos < 0) { @@ -148,43 +147,43 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG } } } - + super.updateEntity(); } - + boolean shotSide = false; int timer; @Override public void updateFiringTick() { - + timer++; - + if(timer % 10 == 0) { - - BulletConfiguration conf = this.getFirstConfigLoaded(); - + + BulletConfig conf = this.getFirstConfigLoaded(); + if(conf != null) { - this.cachedCasingConfig = conf.spentCasing; - this.spawnBullet(conf); + this.cachedCasingConfig = conf.casing; + this.spawnBullet(conf, 5F); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.sentry_fire", 2.0F, 1.0F); - + Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - + Vec3 side = Vec3.createVectorHelper(0.125 * (shotSide ? 1 : -1), 0, 0); side.rotateAroundY((float) -(this.rotationYaw)); - + NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaExt"); data.setString("mode", "largeexplode"); data.setFloat("size", 1F); data.setByte("count", (byte)1); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord + vec.xCoord + side.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord + side.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - + if(shotSide) { this.didJustShootLeft = true; } else { @@ -197,54 +196,53 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG @Override protected Vec3 getCasingSpawnPos() { - + Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(0, 0.25,-0.125); vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - + return Vec3.createVectorHelper(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord); } protected static CasingEjector ejector = new CasingEjector().setMotion(-0.3, 0.6, 0).setAngleRange(0.01F, 0.01F); - + @Override protected CasingEjector getEjector() { return ejector.setMotion(0.3, 0.6, 0); } - + @Override public boolean usesCasings() { return true; } - + @Override protected void seekNewTarget() { Entity lastTarget = this.target; super.seekNewTarget(); - + if(lastTarget != this.target && this.target != null) { worldObj.playSoundAtEntity(target, "hbm:turret.sentry_lockon", 2.0F, 1.5F); } } @Override - protected NBTTagCompound writePacket() { - NBTTagCompound data = super.writePacket(); - if(didJustShootLeft) data.setBoolean("justShotLeft", didJustShootLeft); - if(didJustShootRight) data.setBoolean("justShotRight", didJustShootRight); + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBoolean(didJustShootLeft); + buf.writeBoolean(didJustShootRight); didJustShootLeft = false; didJustShootRight = false; - return data; } @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); - if(nbt.getBoolean("justShotLeft")) this.retractingLeft = true; - if(nbt.getBoolean("justShotRight")) this.retractingRight = true; + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.retractingLeft = buf.readBoolean(); + this.retractingRight = buf.readBoolean(); } - + protected void updateConnections() { this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN); } @@ -256,7 +254,7 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretSentry(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java new file mode 100644 index 000000000..5fa6c3ef0 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java @@ -0,0 +1,106 @@ +package com.hbm.tileentity.turret; + +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactory9mm; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; + +public class TileEntityTurretSentryDamaged extends TileEntityTurretSentry { + + @Override + public boolean hasPower() { //does not need power + return true; + } + + @Override + public boolean isOn() { //is always on + return true; + } + + @Override + public double getTurretYawSpeed() { + return 3D; + } + + @Override + public double getTurretPitchSpeed() { + return 2D; + } + + @Override + public boolean hasThermalVision() { + return false; + } + + @Override + public boolean entityAcceptableTarget(Entity e) { //will fire at any living entity + + if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) + return false; + + return e instanceof EntityLivingBase; + } + + @Override + public void updateFiringTick() { + + timer++; + + if(timer % 10 == 0) { + + BulletConfig conf = XFactory9mm.p9_fmj; + + if(conf != null) { + + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(0, 0, 0); + Vec3 side = Vec3.createVectorHelper(0, 0, 0); + + this.cachedCasingConfig = conf.casing; + + if(shotSide) { + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.sentry_fire", 2.0F, 1.0F); + this.spawnBullet(conf, 5F); + + vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + side = Vec3.createVectorHelper(0.125 * (shotSide ? 1 : -1), 0, 0); + side.rotateAroundY((float) -(this.rotationYaw)); + + } else { + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.sentry_fire", 2.0F, 0.75F); + if(usesCasings()) { + if(this.casingDelay() == 0) { + spawnCasing(); + } else { + casingDelay = this.casingDelay(); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "largeexplode"); + data.setFloat("size", 1F); + data.setByte("count", (byte) 1); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord + vec.xCoord + side.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord + side.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + if(shotSide) { + this.didJustShootLeft = true; + } else { + this.didJustShootRight = true; + } + shotSide = !shotSide; + } + } + } +} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java index d25acbc74..ea2b2f17d 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java @@ -3,17 +3,17 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.inventory.gui.GUITurretTauon; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactoryAccelerator; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; @@ -22,11 +22,11 @@ import net.minecraft.world.World; public class TileEntityTurretTauon extends TileEntityTurretBaseNT { static List configs = new ArrayList(); - + static { - configs.add(BulletConfigSyncingUtil.SPECIAL_GAUSS); + configs.add(XFactoryAccelerator.tau_uranium.id); } - + @Override protected List getAmmoList() { return configs; @@ -81,65 +81,65 @@ public class TileEntityTurretTauon extends TileEntityTurretBaseNT { public long getConsumption() { return 1000; } - + int timer; public int beam; public float spin; public float lastSpin; public double lastDist; - + @Override public void updateEntity() { - + if(worldObj.isRemote) { - + if(this.tPos != null) { Vec3 pos = this.getTurretPos(); double length = Vec3.createVectorHelper(tPos.xCoord - pos.xCoord, tPos.yCoord - pos.yCoord, tPos.zCoord - pos.zCoord).lengthVector(); this.lastDist = length; } - + if(beam > 0) beam--; - + this.lastSpin = this.spin; - + if(this.tPos != null) { this.spin += 45; } - + if(this.spin >= 360F) { this.spin -= 360F; this.lastSpin -= 360F; } } - + super.updateEntity(); } @Override public void updateFiringTick() { - + timer++; - + if(timer % 5 == 0) { - - BulletConfiguration conf = this.getFirstConfigLoaded(); - + + BulletConfig conf = this.getFirstConfigLoaded(); + if(conf != null && this.target != null) { this.target.attackEntityFrom(ModDamageSource.electricity, 30F + worldObj.rand.nextInt(11)); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.tauShoot", 4.0F, 0.9F + worldObj.rand.nextFloat() * 0.3F); - - NBTTagCompound data = new NBTTagCompound(); - data.setBoolean("shot", true); - this.networkPack(data, 250); - + + this.shot = true; + this.networkPackNT(250); + this.shot = false; + Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - + NBTTagCompound dPart = new NBTTagCompound(); dPart.setString("type", "tau"); dPart.setByte("count", (byte)5); @@ -148,18 +148,30 @@ public class TileEntityTurretTauon extends TileEntityTurretBaseNT { } } + private boolean shot = false; + @Override - public void networkUnpack(NBTTagCompound nbt) { - - if(nbt.hasKey("shot")) - beam = 3; + public void serialize(ByteBuf buf) { + if (this.shot) + buf.writeBoolean(true); + else { + buf.writeBoolean(false); + super.serialize(buf); + } + } + + @Override + public void deserialize(ByteBuf buf) { + boolean shot = buf.readBoolean(); + if(shot) + this.beam = 3; else - super.networkUnpack(nbt); + super.deserialize(buf); } @Override @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretTauon(player.inventory, this); } } diff --git a/src/main/java/com/hbm/util/AchievementHandler.java b/src/main/java/com/hbm/util/AchievementHandler.java index 3d395a43e..900509bfe 100644 --- a/src/main/java/com/hbm/util/AchievementHandler.java +++ b/src/main/java/com/hbm/util/AchievementHandler.java @@ -1,27 +1,23 @@ package com.hbm.util; -import java.util.HashMap; - import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; +import java.util.HashMap; + public class AchievementHandler { public static HashMap craftingAchievements = new HashMap(); - + public static void register() { - craftingAchievements.put(new ComparableStack(ModItems.gun_mp40), MainRegistry.achFreytag); craftingAchievements.put(new ComparableStack(ModItems.piston_selenium), MainRegistry.achSelenium); craftingAchievements.put(new ComparableStack(ModItems.gun_b92), MainRegistry.achSelenium); craftingAchievements.put(new ComparableStack(ModItems.battery_potatos), MainRegistry.achPotato); - craftingAchievements.put(new ComparableStack(ModItems.gun_revolver_pip), MainRegistry.achC44); craftingAchievements.put(new ComparableStack(ModBlocks.machine_press), MainRegistry.achBurnerPress); craftingAchievements.put(new ComparableStack(ModItems.rbmk_fuel_empty), MainRegistry.achRBMK); craftingAchievements.put(new ComparableStack(ModBlocks.machine_chemplant), MainRegistry.achChemplant); @@ -53,9 +49,8 @@ public class AchievementHandler { craftingAchievements.put(new ComparableStack(ModBlocks.machine_difurnace_off), MainRegistry.achBlastFurnace); craftingAchievements.put(new ComparableStack(ModBlocks.machine_assembler), MainRegistry.achAssembly); craftingAchievements.put(new ComparableStack(ModItems.billet_pu_mix), MainRegistry.achChicagoPile); - craftingAchievements.put(new ComparableStack(ModItems.ammo_4gauge, 1, ItemAmmoEnums.Ammo4Gauge.VAMPIRE.ordinal()), MainRegistry.achWitchtaunter); } - + public static void fire(EntityPlayer player, ItemStack stack) { if(player.worldObj.isRemote) return; ComparableStack comp = new ComparableStack(stack).makeSingular(); diff --git a/src/main/java/com/hbm/util/ArmorRegistry.java b/src/main/java/com/hbm/util/ArmorRegistry.java index fc1a20601..98b863080 100644 --- a/src/main/java/com/hbm/util/ArmorRegistry.java +++ b/src/main/java/com/hbm/util/ArmorRegistry.java @@ -1,74 +1,73 @@ package com.hbm.util; +import api.hbm.item.IGasMask; +import com.hbm.handler.ArmorModHandler; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; -import com.hbm.handler.ArmorModHandler; - -import api.hbm.item.IGasMask; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - public class ArmorRegistry { public static HashMap> hazardClasses = new HashMap(); - + public static void registerHazard(Item item, HazardClass... hazards) { hazardClasses.put(item, new ArrayList(Arrays.asList(hazards))); } - + public static boolean hasAllProtection(EntityLivingBase entity, int slot, HazardClass... clazz) { - + if(ArmorUtil.checkArmorNull(entity, slot)) return false; - + List list = getProtectionFromItem(entity.getEquipmentInSlot(slot + 1), entity); return list.containsAll(Arrays.asList(clazz)); } - + public static boolean hasAnyProtection(EntityLivingBase entity, int slot, HazardClass... clazz) { - + if(ArmorUtil.checkArmorNull(entity, slot)) return false; - + List list = getProtectionFromItem(entity.getEquipmentInSlot(slot + 1), entity); - + if(list == null) return false; - + for(HazardClass haz : clazz) { if(list.contains(haz)) return true; } - + return false; } - + public static boolean hasProtection(EntityLivingBase entity, int slot, HazardClass clazz) { - + if(ArmorUtil.checkArmorNull(entity, slot)) return false; - + List list = getProtectionFromItem(entity.getEquipmentInSlot(slot + 1), entity); - + if(list == null) return false; - + return list.contains(clazz); } - + public static List getProtectionFromItem(ItemStack stack, EntityLivingBase entity) { List prot = new ArrayList(); - + Item item = stack.getItem(); - + //if the item has HazardClasses assigned to it, add those if(hazardClasses.containsKey(item)) prot.addAll(hazardClasses.get(item)); - + if(item instanceof IGasMask) { IGasMask mask = (IGasMask) item; ItemStack filter = mask.getFilter(stack, entity); @@ -76,43 +75,43 @@ public class ArmorRegistry { if(filter != null) { //add the HazardClasses from the filter, then remove the ones blacklisted by the mask List filProt = hazardClasses.get(filter.getItem()); - + for(HazardClass c : mask.getBlacklist(stack, entity)) filProt.remove(c); - + prot.addAll(filProt); } } - + if(ArmorModHandler.hasMods(stack)) { - + ItemStack[] mods = ArmorModHandler.pryMods(stack); - + for(ItemStack mod : mods) { - + //recursion! run the exact same procedure on every mod, in case future mods will have filter support if(mod != null) prot.addAll(getProtectionFromItem(mod, entity)); } } - + return prot; } - + public static enum HazardClass { - GAS_CHLORINE("hazard.gasChlorine"), //also attacks eyes -> no half mask + GAS_LUNG("hazard.gasChlorine"), //also attacks eyes -> no half mask GAS_MONOXIDE("hazard.gasMonoxide"), //only affects lungs GAS_INERT("hazard.gasInert"), //SA PARTICLE_COARSE("hazard.particleCoarse"), //only affects lungs PARTICLE_FINE("hazard.particleFine"), //only affects lungs BACTERIA("hazard.bacteria"), //no half masks - NERVE_AGENT("hazard.nerveAgent"), //aggressive nerve agent, also attacks skin - GAS_CORROSIVE("hazard.corrosive"), //corrosive substance, also attacks skin + //NERVE_AGENT("hazard.nerveAgent"), //aggressive nerve agent, also attacks skin + GAS_BLISTERING("hazard.corrosive"), //corrosive substance, also attacks skin SAND("hazard.sand"), //blinding sand particles LIGHT("hazard.light"); //blinding light - + public final String lang; - + private HazardClass(String lang) { this.lang = lang; } diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index 6ece2e502..9fe8be58c 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -1,17 +1,12 @@ package com.hbm.util; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - +import api.hbm.item.IGasMask; import com.hbm.handler.ArmorModHandler; import com.hbm.handler.HazmatRegistry; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorRegistry.HazardClass; - -import api.hbm.item.IGasMask; import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -23,24 +18,28 @@ import net.minecraft.network.NetHandlerPlayServer; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.event.ForgeEventFactory; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + public class ArmorUtil { - + /* * The less horrifying part */ - + public static void register() { - ArmorRegistry.registerHazard(ModItems.gas_mask_filter, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.NERVE_AGENT); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA); ArmorRegistry.registerHazard(ModItems.gas_mask_filter_mono, HazardClass.PARTICLE_COARSE, HazardClass.GAS_MONOXIDE); - ArmorRegistry.registerHazard(ModItems.gas_mask_filter_combo, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.NERVE_AGENT); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter_combo, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE); ArmorRegistry.registerHazard(ModItems.gas_mask_filter_rag, HazardClass.PARTICLE_COARSE); - ArmorRegistry.registerHazard(ModItems.gas_mask_filter_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_CHLORINE); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_LUNG); ArmorRegistry.registerHazard(ModItems.gas_mask, HazardClass.SAND, HazardClass.LIGHT); ArmorRegistry.registerHazard(ModItems.gas_mask_m65, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.mask_rag, HazardClass.PARTICLE_COARSE); - ArmorRegistry.registerHazard(ModItems.mask_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_CHLORINE); - + ArmorRegistry.registerHazard(ModItems.mask_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_LUNG); + ArmorRegistry.registerHazard(ModItems.goggles, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.ashglasses, HazardClass.LIGHT, HazardClass.SAND); @@ -52,161 +51,163 @@ public class ArmorUtil { ArmorRegistry.registerHazard(ModItems.hazmat_helmet_grey, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.hazmat_paa_helmet, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.liquidator_helmet, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.t45_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.ajr_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.ajro_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.steamsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.hev_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.fau_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.dns_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.schrabidium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - + ArmorRegistry.registerHazard(ModItems.t45_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.ajr_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.ajro_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.steamsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.hev_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.fau_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.dns_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.schrabidium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.envsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.trenchmaster_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + //Ob ihr wirklich richtig steht, seht ihr wenn das Licht angeht! - registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.biochemgas.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.radiation.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.biochemgas.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.radiation.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); } - + private static void registerIfExists(String domain, String name, HazardClass... classes) { Item item = Compat.tryLoadItem(domain, name); if(item != null) ArmorRegistry.registerHazard(item, classes); } - + public static boolean checkArmor(EntityLivingBase entity, Item... armor) { - + for(int i = 0; i < 4; i++) { if(!checkArmorPiece(entity, armor[i], 3 - i)) return false; } - + return true; } - + public static boolean checkArmorPiece(EntityLivingBase entity, Item armor, int slot) { return !checkArmorNull(entity, slot) && entity.getEquipmentInSlot(slot + 1).getItem() == armor; } - + public static boolean checkArmorNull(EntityLivingBase player, int slot) { return player.getEquipmentInSlot(slot + 1) == null; } - + public static void damageSuit(EntityLivingBase entity, int slot, int amount) { - + if(entity.getEquipmentInSlot(slot + 1) == null) return; - + entity.getEquipmentInSlot(slot + 1).damageItem(amount, entity); if(entity.getEquipmentInSlot(slot + 1).stackSize == 0) { entity.setCurrentItemOrArmor(slot + 1, null); } } - + public static void resetFlightTime(EntityPlayer player) { - + if(player instanceof EntityPlayerMP) { EntityPlayerMP mp = (EntityPlayerMP) player; ReflectionHelper.setPrivateValue(NetHandlerPlayServer.class, mp.playerNetServerHandler, 0, "floatingTickCount", "field_147365_f"); } } - + /* * The more horrifying part */ public static boolean checkForHazmat(EntityLivingBase player) { - - if(checkArmor(player, ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots) || - checkArmor(player, ModItems.hazmat_helmet_red, ModItems.hazmat_plate_red, ModItems.hazmat_legs_red, ModItems.hazmat_boots_red) || - checkArmor(player, ModItems.hazmat_helmet_grey, ModItems.hazmat_plate_grey, ModItems.hazmat_legs_grey, ModItems.hazmat_boots_grey) || - checkArmor(player, ModItems.t45_helmet, ModItems.t45_plate, ModItems.t45_legs, ModItems.t45_boots) || - checkArmor(player, ModItems.schrabidium_helmet, ModItems.schrabidium_plate, ModItems.schrabidium_legs, ModItems.schrabidium_boots) || + + if(checkArmor(player, ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots) || + checkArmor(player, ModItems.hazmat_helmet_red, ModItems.hazmat_plate_red, ModItems.hazmat_legs_red, ModItems.hazmat_boots_red) || + checkArmor(player, ModItems.hazmat_helmet_grey, ModItems.hazmat_plate_grey, ModItems.hazmat_legs_grey, ModItems.hazmat_boots_grey) || + checkArmor(player, ModItems.t45_helmet, ModItems.t45_plate, ModItems.t45_legs, ModItems.t45_boots) || + checkArmor(player, ModItems.schrabidium_helmet, ModItems.schrabidium_plate, ModItems.schrabidium_legs, ModItems.schrabidium_boots) || checkForHaz2(player)) { - + return true; } - + if(player.isPotionActive(HbmPotion.mutation)) return true; - + return false; } - + public static boolean checkForHaz2(EntityLivingBase player) { - - if(checkArmor(player, ModItems.hazmat_paa_helmet, ModItems.hazmat_paa_plate, ModItems.hazmat_paa_legs, ModItems.hazmat_paa_boots) || - checkArmor(player, ModItems.liquidator_helmet, ModItems.liquidator_plate, ModItems.liquidator_legs, ModItems.liquidator_boots) || - checkArmor(player, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots) || - checkArmor(player, ModItems.rpa_helmet, ModItems.rpa_plate, ModItems.rpa_legs, ModItems.rpa_boots) || - checkArmor(player, ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots) || + + if(checkArmor(player, ModItems.hazmat_paa_helmet, ModItems.hazmat_paa_plate, ModItems.hazmat_paa_legs, ModItems.hazmat_paa_boots) || + checkArmor(player, ModItems.liquidator_helmet, ModItems.liquidator_plate, ModItems.liquidator_legs, ModItems.liquidator_boots) || + checkArmor(player, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots) || + checkArmor(player, ModItems.rpa_helmet, ModItems.rpa_plate, ModItems.rpa_legs, ModItems.rpa_boots) || + checkArmor(player, ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots) || checkArmor(player, ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots)) { return true; } - + return false; } - + public static boolean checkForAsbestos(EntityLivingBase player) { - + if(checkArmor(player, ModItems.asbestos_helmet, ModItems.asbestos_plate, ModItems.asbestos_legs, ModItems.asbestos_boots)) return true; return false; } - + public static boolean checkForDigamma(EntityPlayer player) { - + if(checkArmor(player, ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots)) return true; - + if(checkArmor(player, ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots)) return true; - - if(player.isPotionActive(HbmPotion.stability.id)) - return true; - - return false; - } - - public static boolean checkForDigamma2(EntityPlayer player) { - - if(!checkArmor(player, ModItems.robes_helmet, ModItems.robes_plate, ModItems.robes_legs, ModItems.robes_boots)) - return false; - + if(player.isPotionActive(HbmPotion.stability.id)) return true; - + + return false; + } + + public static boolean checkForDigamma2(EntityPlayer player) { + + if(!checkArmor(player, ModItems.robes_helmet, ModItems.robes_plate, ModItems.robes_legs, ModItems.robes_boots)) + return false; + + if(player.isPotionActive(HbmPotion.stability.id)) + return true; + for(int i = 0; i < 4; i++) { - + ItemStack armor = player.getCurrentArmor(i); - + if(armor != null && ArmorModHandler.hasMods(armor)) { - + ItemStack mods[] = ArmorModHandler.pryMods(armor); - + if(!(mods[ArmorModHandler.cladding] != null && mods[ArmorModHandler.cladding].getItem() == ModItems.cladding_iron)) return false; } } - + return player.getMaxHealth() < 3; } - + public static boolean checkForFaraday(EntityPlayer player) { - + ItemStack[] armor = player.inventory.armorInventory; - + if(armor[0] == null || armor[1] == null || armor[2] == null || armor[3] == null) return false; - + if(isFaradayArmor(armor[0]) && isFaradayArmor(armor[1]) && isFaradayArmor(armor[2]) && isFaradayArmor(armor[3])) return true; - + return false; } - + public static final String[] metals = new String[] { "chainmail", "iron", @@ -235,63 +236,63 @@ public class ArmorUtil { "rpa", "spacesuit" }; - + public static boolean isFaradayArmor(ItemStack item) { - + String name = item.getUnlocalizedName(); - + for(String metal : metals) { - + if(name.toLowerCase(Locale.US).contains(metal)) return true; } - + if(HazmatRegistry.getCladding(item) > 0) return true; - + return false; } - + public static boolean checkForFiend(EntityPlayer player) { - + return checkArmorPiece(player, ModItems.jackt, 2) && Library.checkForHeld(player, ModItems.shimmer_sledge); } - + public static boolean checkForFiend2(EntityPlayer player) { - + return checkArmorPiece(player, ModItems.jackt2, 2) && Library.checkForHeld(player, ModItems.shimmer_axe); } - + /* * Default implementations for IGasMask items */ public static final String FILTERK_KEY = "hfrFilter"; - + public static void installGasMaskFilter(ItemStack mask, ItemStack filter) { - + if(mask == null || filter == null) return; - + if(!mask.hasTagCompound()) mask.stackTagCompound = new NBTTagCompound(); - + NBTTagCompound attach = new NBTTagCompound(); filter.writeToNBT(attach); - + mask.stackTagCompound.setTag(FILTERK_KEY, attach); } - + public static void removeFilter(ItemStack mask) { - + if(mask == null) return; - + if(!mask.hasTagCompound()) return; - + mask.stackTagCompound.removeTag(FILTERK_KEY); } - + /** * Grabs the installed filter or the filter of the attachment, used for attachment rendering * @param mask @@ -299,126 +300,126 @@ public class ArmorUtil { * @return */ public static ItemStack getGasMaskFilterRecursively(ItemStack mask, EntityLivingBase entity) { - + ItemStack filter = getGasMaskFilter(mask); - + if(filter == null && ArmorModHandler.hasMods(mask)) { - + ItemStack mods[] = ArmorModHandler.pryMods(mask); - + if(mods[ArmorModHandler.helmet_only] != null && mods[ArmorModHandler.helmet_only].getItem() instanceof IGasMask) filter = ((IGasMask)mods[ArmorModHandler.helmet_only].getItem()).getFilter(mods[ArmorModHandler.helmet_only], entity); } - + return filter; } - + public static ItemStack getGasMaskFilter(ItemStack mask) { - + if(mask == null) return null; - + if(!mask.hasTagCompound()) return null; - + NBTTagCompound attach = mask.stackTagCompound.getCompoundTag(FILTERK_KEY); ItemStack filter = ItemStack.loadItemStackFromNBT(attach); - + return filter; } - + public static void damageGasMaskFilter(EntityLivingBase entity, int damage) { - + ItemStack mask = entity.getEquipmentInSlot(4); - + if(mask == null) return; - + if(!(mask.getItem() instanceof IGasMask)) { - + if(ArmorModHandler.hasMods(mask)) { - + ItemStack mods[] = ArmorModHandler.pryMods(mask); - + if(mods[ArmorModHandler.helmet_only] != null && mods[ArmorModHandler.helmet_only].getItem() instanceof IGasMask) mask = mods[ArmorModHandler.helmet_only]; } } - + if(mask != null) damageGasMaskFilter(mask, damage); } - + public static void damageGasMaskFilter(ItemStack mask, int damage) { ItemStack filter = getGasMaskFilter(mask); - + if(filter == null) { if(ArmorModHandler.hasMods(mask)) { ItemStack mods[] = ArmorModHandler.pryMods(mask); - + if(mods[ArmorModHandler.helmet_only] != null && mods[ArmorModHandler.helmet_only].getItem() instanceof IGasMask) filter = getGasMaskFilter(mods[ArmorModHandler.helmet_only]); } } - + if(filter == null || filter.getMaxDamage() == 0) return; - + filter.setItemDamage(filter.getItemDamage() + damage); - + if(filter.getItemDamage() > filter.getMaxDamage()) removeFilter(mask); else installGasMaskFilter(mask, filter); } - + public static void addGasMaskTooltip(ItemStack mask, EntityPlayer player, List list, boolean ext) { - + if(mask == null || !(mask.getItem() instanceof IGasMask)) return; - + ItemStack filter = ((IGasMask)mask.getItem()).getFilter(mask, player); - + if(filter == null) { list.add(EnumChatFormatting.RED + "No filter installed!"); return; } - + list.add(EnumChatFormatting.GOLD + "Installed filter:"); - + int meta = filter.getItemDamage(); int max = filter.getMaxDamage(); - + String append = ""; - + if(max > 0) { append = " (" + ((max - meta) * 100 / max) + "%)"; } - + List lore = new ArrayList(); list.add(" " + filter.getDisplayName() + append); filter.getItem().addInformation(filter, player, lore, ext); ForgeEventFactory.onItemTooltip(filter, player, lore, ext); lore.forEach(x -> list.add(EnumChatFormatting.YELLOW + " " + x)); } - + public static boolean isWearingEmptyMask(EntityPlayer player) { - + ItemStack mask = player.getEquipmentInSlot(4); - + if(mask == null) return false; - + if(mask.getItem() instanceof IGasMask) { return getGasMaskFilter(mask) == null; } - + ItemStack mod = ArmorModHandler.pryMods(mask)[ArmorModHandler.helmet_only]; - + if(mod != null && mod.getItem() instanceof IGasMask) { return getGasMaskFilter(mod) == null; } - + return false; } } diff --git a/src/main/java/com/hbm/util/BobMathUtil.java b/src/main/java/com/hbm/util/BobMathUtil.java index dde5fe762..5fa0b93ee 100644 --- a/src/main/java/com/hbm/util/BobMathUtil.java +++ b/src/main/java/com/hbm/util/BobMathUtil.java @@ -1,33 +1,31 @@ package com.hbm.util; -import java.lang.reflect.Field; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import javax.annotation.Nonnegative; - import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; +import javax.annotation.Nonnegative; +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.NumberFormat; +import java.util.*; +import java.util.function.ToIntFunction; + public class BobMathUtil { - + public static double safeClamp(double val, double min, double max) { val = MathHelper.clamp_double(val, min, max); - + if(val == Double.NaN) { val = (min + max) / 2D; } - + return val; } - + public static Vec3 interpVec(Vec3 vec1, Vec3 vec2, float interp) { return Vec3.createVectorHelper( interp(vec1.xCoord, vec2.xCoord, interp), @@ -35,73 +33,73 @@ public class BobMathUtil { interp(vec1.zCoord, vec2.zCoord, interp) ); } - + public static double interp(double x, double y, float interp) { return x + (y - x) * interp; } - + public static double getAngleFrom2DVecs(double x1, double z1, double x2, double z2) { - + double upper = x1 * x2 + z1 * z2; double lower = Math.sqrt(x1 * x1 + z1 * z1) * Math.sqrt(x2 * x2 + z2 * z2); - + double result = Math.toDegrees(Math.cos(upper / lower)); - + if(result >= 180) result -= 180; - + return result; } - + public static double getCrossAngle(Vec3 vel, Vec3 rel) { - + vel.normalize(); rel.normalize(); double vecProd = rel.xCoord * vel.xCoord + rel.yCoord * vel.yCoord + rel.zCoord * vel.zCoord; double bot = rel.lengthVector() * vel.lengthVector(); double angle = Math.acos(vecProd / bot) * 180 / Math.PI; - + if(angle >= 180) angle -= 180; - + return angle; } public static float remap(float num, float min1, float max1, float min2, float max2){ return ((num - min1) / (max1 - min1)) * (max2 - min2) + min2; } - + public static float remap01(float num, float min1, float max1){ return (num - min1) / (max1 - min1); } - + public static float remap01_clamp(float num, float min1, float max1){ return MathHelper.clamp_float((num - min1) / (max1 - min1), 0, 1); } - + public static ForgeDirection[] getShuffledDirs() { - + ForgeDirection[] dirs = new ForgeDirection[6]; List indices = new ArrayList() {{ add(0); add(1); add(2); add(3); add(4); add(5); }}; Collections.shuffle(indices); - + for(int i = 0; i < 6; i++) { dirs[i] = ForgeDirection.getOrientation(indices.get(i)); } - + return dirs; } public static String toPercentage(float amount, float total) { return NumberFormat.getPercentInstance().format(amount / total); } - + public static String[] ticksToDate(long ticks) { - + int tickDay = 48000; int tickYear = tickDay * 100; - + final String[] dateOut = new String[3]; long year = Math.floorDiv(ticks, tickYear); byte day = (byte) Math.floorDiv(ticks - tickYear * year, tickDay); @@ -112,7 +110,7 @@ public class BobMathUtil { dateOut[2] = String.valueOf(time); return dateOut; } - + /** * Rescale a number from one range to another * @param toScale - The integer to scale @@ -127,7 +125,7 @@ public class BobMathUtil { double newRange = newMax - newMin; return (((toScale - oldMin) * newRange) / prevRange) + newMin; } - + /** * Rounds a number to so many significant digits * @param num The number to round @@ -146,7 +144,7 @@ public class BobMathUtil { } public static String getShortNumber(long l) { - + if(l >= Math.pow(10, 18)) { double res = l / Math.pow(10, 18); res = Math.round(res * 100.0) / 100.0; @@ -177,33 +175,59 @@ public class BobMathUtil { res = Math.round(res * 100.0) / 100.0; return res + "k"; } - + return Long.toString(l); } - + /** * Adjusted sqrt, approaches standard sqrt but sqrt(x) is never bigger than x - * + * * ____________ * / 1 | 1 * _ / x + ―――――――― - ――――― * \/ (x + 2)² x + 2 - * + * * @param x * @return */ public static double squirt(double x) { return Math.sqrt(x + 1D / ((x + 2D) * (x + 2D))) - 1D / (x + 2D); } - + /** A convenient way to re-define the value of pi, should the laws of nature change. */ public static void setPi(double pi) { Field field = ReflectionHelper.findField(Math.class, "PI"); try { field.setDouble(null, pi); } catch(Exception e) { } } - + public static double angularDifference(double alpha, double beta) { double delta = (beta - alpha + 180) % 360 - 180; return delta < -180 ? delta + 360 : delta; } + + // I am sick of trying to remember the ridiculous quirks of Java 8 + // so I wrote this thing that can shit any int-ish list-ish into a regular fucking int[] + // made by mellow, thrown here by 70k + public static int[] intCollectionToArray(Collection in) { + return intCollectionToArray(in, i -> (int)i); + } + + public static int[] intCollectionToArray(Collection in, ToIntFunction mapper) { + return Arrays.stream(in.toArray()).mapToInt(mapper).toArray(); + } + + public static int[] collectionToIntArray(Collection in, ToIntFunction mapper) { + return Arrays.stream(in.toArray()).mapToInt(mapper).toArray(); + } + + /** Soft peak sine */ + public static double sps(double x) { + return Math.sin(Math.PI / 2D * Math.cos(x)); + } + + /** Square wave sine, make sure squarination is [0;1] */ + public static double sws(double x, double squarination) { + double s = Math.sin(x); + return Math.pow(Math.abs(s), 2 - squarination) / s; + } } diff --git a/src/main/java/com/hbm/util/BufferUtil.java b/src/main/java/com/hbm/util/BufferUtil.java new file mode 100644 index 000000000..4bdf26480 --- /dev/null +++ b/src/main/java/com/hbm/util/BufferUtil.java @@ -0,0 +1,161 @@ +package com.hbm.util; + +import io.netty.buffer.ByteBuf; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTSizeTracker; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +public class BufferUtil { + + private static final Charset CHARSET = StandardCharsets.UTF_8; + + // Writes a string to a byte buffer by encoding the length and raw bytes + public static void writeString(ByteBuf buf, String value) { + if(value == null) { + buf.writeInt(-1); + return; + } + + buf.writeInt(value.getBytes(CHARSET).length); + buf.writeBytes(value.getBytes(CHARSET)); + } + + // Reads a string from a byte buffer via the written length and raw bytes + public static String readString(ByteBuf buf) { + final int count = buf.readInt(); + if(count < 0) return null; + + final byte[] bytes = new byte[count]; + buf.readBytes(bytes); + + return new String(bytes, CHARSET); + } + + /** + * Writes an integer array to a buffer. + */ + public static void writeIntArray(ByteBuf buf, int[] array) { + buf.writeInt(array.length); + for (int value : array) { + buf.writeInt(value); + } + } + + /** + * Reads an integer array from a buffer. + */ + public static int[] readIntArray(ByteBuf buf) { + int length = buf.readInt(); + + int[] array = new int[length]; + + for (int i = 0; i < length; i++) { + array[i] = buf.readInt(); + } + + return array; + } + + /** + * Writes a vector to a buffer. + */ + public static void writeVec3(ByteBuf buf, Vec3 vector) { + buf.writeBoolean(vector != null); + if(vector == null) return; + buf.writeDouble(vector.xCoord); + buf.writeDouble(vector.yCoord); + buf.writeDouble(vector.zCoord); + } + + /** + * Reads a vector from a buffer. + */ + public static Vec3 readVec3(ByteBuf buf) { + boolean vectorExists = buf.readBoolean(); + if(!vectorExists) { + return null; + } + double x = buf.readDouble(); + double y = buf.readDouble(); + double z = buf.readDouble(); + + return Vec3.createVectorHelper(x, y, z); + } + + /** + * Writes a NBTTagCompound to a buffer. + */ + public static void writeNBT(ByteBuf buf, NBTTagCompound compound) { + if(compound != null) { + byte[] nbtData = new byte[0]; + try { + nbtData = CompressedStreamTools.compress(compound); + } catch(IOException e) { + e.printStackTrace(); + } + buf.writeShort((short) nbtData.length); + buf.writeBytes(nbtData); + } else + buf.writeShort(-1); + } + + /** + * Reads a NBTTagCompound from a buffer. + */ + public static NBTTagCompound readNBT(ByteBuf buf) { + short nbtLength = buf.readShort(); + + if (nbtLength == -1) // check if no compound was even given. + return new NBTTagCompound(); + byte[] tags = new byte[nbtLength]; + buf.readBytes(tags); + try { + return CompressedStreamTools.func_152457_a(tags, new NBTSizeTracker(2097152L)); + } catch(IOException e) { + e.printStackTrace(); + } + return new NBTTagCompound(); + } + + /** + * Writes the ItemStack to the buffer. + */ + public static void writeItemStack(ByteBuf buf, ItemStack item) { + if (item == null) + buf.writeShort(-1); + else { + buf.writeShort(Item.getIdFromItem(item.getItem())); + buf.writeByte(item.stackSize); + buf.writeShort(item.getItemDamage()); + NBTTagCompound nbtTagCompound = null; + + if (item.getItem().isDamageable() || item.getItem().getShareTag()) + nbtTagCompound = item.stackTagCompound; + + writeNBT(buf, nbtTagCompound); + } + } + + /** + * Reads an ItemStack from a buffer. + */ + public static ItemStack readItemStack(ByteBuf buf) { + ItemStack item = null; + short id = buf.readShort(); + + if (id >= 0) { + byte quantity = buf.readByte(); + short meta = buf.readShort(); + item = new ItemStack(Item.getItemById(id), quantity, meta); + item.stackTagCompound = readNBT(buf); + } + return item; + } +} diff --git a/src/main/java/com/hbm/util/ChatBuilder.java b/src/main/java/com/hbm/util/ChatBuilder.java index 9fc0c6169..84162877f 100644 --- a/src/main/java/com/hbm/util/ChatBuilder.java +++ b/src/main/java/com/hbm/util/ChatBuilder.java @@ -1,74 +1,69 @@ package com.hbm.util; +import net.minecraft.util.*; + import java.util.ArrayList; import java.util.List; import java.util.ListIterator; -import net.minecraft.util.ChatComponentStyle; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.ChatStyle; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IChatComponent; - public class ChatBuilder { private ChatComponentText text; private ChatComponentStyle last; - + private ChatBuilder(String text) { this.text = new ChatComponentText(text); this.last = this.text; } - + public static ChatBuilder start(String text) { ChatBuilder builder = new ChatBuilder(text); return builder; } - - public static ChatBuilder startTranslation(String text) { - ChatBuilder builder = new ChatBuilder("").nextTranslation(text); + + public static ChatBuilder startTranslation(String text, Object... o) { + ChatBuilder builder = new ChatBuilder("").nextTranslation(text, o); return builder; } - + public ChatBuilder next(String text) { ChatComponentText append = new ChatComponentText(text); this.last.appendSibling(append); this.last = append; return this; } - - public ChatBuilder nextTranslation(String text) { - ChatComponentTranslation append = new ChatComponentTranslation(text); + + public ChatBuilder nextTranslation(String text, Object... o) { + ChatComponentTranslation append = new ChatComponentTranslation(text, o); this.last.appendSibling(append); this.last = append; return this; } - + public ChatBuilder color(EnumChatFormatting format) { ChatStyle style = this.last.getChatStyle(); style.setColor(format); return this; } - + /** Will recursively go over all IChatComponents added to the root and then set the style */ public ChatBuilder colorAll(EnumChatFormatting format) { - + List list = new ArrayList(); list.add(text); - + ListIterator it = list.listIterator(); - + while(it.hasNext()) { Object o = it.next(); IChatComponent component = (IChatComponent) o; component.getChatStyle().setColor(format); for(Object s : component.getSiblings()) it.add(s); } - + return this; } - + public ChatComponentText flush() { return this.text; } diff --git a/src/main/java/com/hbm/util/ColorUtil.java b/src/main/java/com/hbm/util/ColorUtil.java index aec239b53..c863c5d02 100644 --- a/src/main/java/com/hbm/util/ColorUtil.java +++ b/src/main/java/com/hbm/util/ColorUtil.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Locale; import javax.imageio.ImageIO; @@ -22,34 +23,34 @@ public class ColorUtil { public static BufferedImage getImageFromStack(ItemStack stack) throws IOException { String iconName = stack.getItem().getIconFromDamage(stack.getItemDamage()).getIconName(); String domain = "minecraft"; - + if(iconName.contains(":")) { String[] parts = iconName.split(":"); domain = parts[0]; iconName = parts[1]; } - + ResourceLocation loc = new ResourceLocation(domain, "textures/items/" + iconName + ".png"); - + return ImageIO.read(Minecraft.getMinecraft().getResourceManager().getResource(loc).getInputStream()); } @SideOnly(Side.CLIENT) public static int getAverageColorFromStack(ItemStack stack) { - + try { BufferedImage tex = getImageFromStack(stack); - + int r = 0; int g = 0; int b = 0; int pixels = 0; - + for(int i = 0; i < tex.getWidth(); i++) { for(int j = 0; j < tex.getHeight(); j++) { - + Color pixel = new Color(tex.getRGB(i, j)); - + if(pixel.getAlpha() == 255) { r += pixel.getRed(); g += pixel.getGreen(); @@ -62,9 +63,9 @@ public class ColorUtil { int avgR = r / pixels; int avgG = g / pixels; int avgB = b / pixels; - + return (avgR << 16) | (avgG << 8) | avgB; - + } catch(Exception ex) { return 0xFFFFFF; } @@ -72,34 +73,34 @@ public class ColorUtil { @SideOnly(Side.CLIENT) public static int getMedianBrightnessColorFromStack(ItemStack stack) { - + try { BufferedImage tex = getImageFromStack(stack); - + HashMap brightMap = new HashMap(); List brightnesses = new ArrayList(); - + for(int i = 0; i < tex.getWidth(); i++) { for(int j = 0; j < tex.getHeight(); j++) { - + Color pixel = new Color(tex.getRGB(i, j)); int brightness = pixel.getRed() * pixel.getRed() + pixel.getGreen() * pixel.getGreen() + pixel.getBlue() * pixel.getBlue(); brightnesses.add(brightness); brightMap.put(brightness, pixel); //overlap possible, but we don't differentiate between colors anyway. } } - + Collections.sort(brightnesses); int median = brightnesses.get(brightnesses.size() / 2); Color medianColor = brightMap.get(median); - + return medianColor.getRGB(); - + } catch(Exception ex) { return 0xFFFFFF; } } - + /** * Decides whether a color is considered "colorful", i.e. weeds out colors that are too dark or too close to gray. * @param hex @@ -107,11 +108,11 @@ public class ColorUtil { */ public static boolean isColorColorful(int hex) { Color color = new Color(hex); - + /*double r = color.getRed(); double g = color.getBlue(); double b = color.getGreen(); - + if(r < 50 && g < 50 && b < 50) return false; @@ -121,13 +122,13 @@ public class ColorUtil { if(g / b > 1.5) return true; if(b / r > 1.5) return true; if(b / g > 1.5) return true;*/ - + float[] hsb = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), new float[3]); - + // saturation brightness return hsb[1] > 0.25 && hsb[2] > 0.25; } - + /** * Raises the highest RGB component to the specified limit, scaling the other components with it. * @param hex @@ -140,14 +141,14 @@ public class ColorUtil { int g = color.getGreen(); int b = color.getBlue(); int max = Math.max(Math.max(1, r), Math.max(g, b)); - + r = r * limit / max; g = g * limit / max; b = b * limit / max; - + return new Color(r, g, b).getRGB(); } - + /** * Same as the regular amplifyColor but it uses 255 as the limit. * @param hex @@ -156,7 +157,7 @@ public class ColorUtil { public static int amplifyColor(int hex) { return amplifyColor(hex, 255); } - + /** * Amplifies a given color by approaching all components to maximum by a given percentage. A percentage of 1 (100%) should always yield white. * @param hex @@ -168,18 +169,50 @@ public class ColorUtil { int r = color.getRed(); int g = color.getGreen(); int b = color.getBlue(); - + r = (int) (r + (255 - r) * percent); g = (int) (g + (255 - g) * percent); b = (int) (b + (255 - b) * percent); - + return new Color(r, g, b).getRGB(); } - + /** Converts a color into HSB and then returns the brightness component [] */ public static double getColorBrightness(int hex) { Color color = new Color(hex); float[] hsb = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), new float[3]); return hsb[2]; } + + public static HashMap nameToColor = new HashMap() {{ + put("black", 1973019); + put("red", 11743532); + put("green", 3887386); + put("brown", 5320730); + put("blue", 2437522); + put("purple", 8073150); + put("cyan", 2651799); + put("silver", 11250603); + put("gray", 4408131); + put("pink", 14188952); + put("lime", 4312372); + put("yellow", 14602026); + put("lightBlue", 6719955); + put("magenta", 12801229); + put("orange", 15435844); + put("white", 15790320); + }}; + + public static int getColorFromDye(ItemStack stack) { + List oreNames = ItemStackUtil.getOreDictNames(stack); + + for(String dict : oreNames) { + if(dict.length() > 3 && dict.startsWith("dye")) { + String color = dict.substring(3).toLowerCase(Locale.US); + if(nameToColor.containsKey(color)) return nameToColor.get(color); + } + } + + return 0; + } } diff --git a/src/main/java/com/hbm/util/Compat.java b/src/main/java/com/hbm/util/Compat.java index 3a8a4a9a6..cac127f1a 100644 --- a/src/main/java/com/hbm/util/Compat.java +++ b/src/main/java/com/hbm/util/Compat.java @@ -1,16 +1,12 @@ package com.hbm.util; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ConcurrentHashMap; - +import com.hbm.config.GeneralConfig; import com.hbm.handler.HazmatRegistry; import com.hbm.hazard.HazardRegistry; import com.hbm.inventory.FluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.fluid.Fluids; import com.hbm.main.MainRegistry; - import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.EventBus; @@ -24,8 +20,13 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + public class Compat { - + public static final String MOD_GT6 = "gregtech"; public static final String MOD_GCC = "GalacticraftCore"; public static final String MOD_AR = "advancedrocketry"; @@ -34,6 +35,8 @@ public class Compat { public static final String MOD_TIC = "TConstruct"; public static final String MOD_RC = "Railcraft"; public static final String MOD_TC = "tc"; + public static final String MOD_EIDS = "endlessids"; + public static final String MOD_ANG = "angelica"; public static Item tryLoadItem(String domain, String name) { return (Item) Item.itemRegistry.getObject(getReg(domain, name)); @@ -42,15 +45,15 @@ public class Compat { public static Block tryLoadBlock(String domain, String name) { return (Block) Block.blockRegistry.getObject(getReg(domain, name)); } - + private static String getReg(String domain, String name) { return domain + ":" + name; } - + public static boolean isModLoaded(String modid) { return Loader.isModLoaded(modid); } - + public static enum ReikaIsotope { C14(HazardRegistry.gen_10K), U235(HazardRegistry.u235), @@ -85,33 +88,33 @@ public class Compat { Ru103(HazardRegistry.gen_S), Pm149(HazardRegistry.gen_10D), Rh105(HazardRegistry.gen_H); - + private float rads; - + private ReikaIsotope(float rads) { this.rads = rads; } - + public float getRad() { return this.rads; } } - + public static List scrapeItemFromME(ItemStack meDrive) { List stacks = new ArrayList(); - + try { if(meDrive != null && meDrive.hasTagCompound()) { NBTTagCompound nbt = meDrive.getTagCompound(); int types = nbt.getShort("it"); //ITEM_TYPE_TAG - + for(int i = 0; i < types; i++) { NBTBase stackTag = nbt.getTag("#" + i); - + if(stackTag instanceof NBTTagCompound) { NBTTagCompound compound = (NBTTagCompound) stackTag; ItemStack stack = ItemStack.loadItemStackFromNBT(compound); - + int count = nbt.getInteger("@" + i); stack.stackSize = count; stacks.add(stack); @@ -119,66 +122,66 @@ public class Compat { } } } catch(Exception ex) { } - + return stacks; } - + public static void registerCompatHazmat() { - + double helmet = 0.2D; double chest = 0.4D; double legs = 0.3D; double boots = 0.1D; - + double p90 = 1.0D; // 90% double p99 = 2D; // 99% - + tryRegisterHazmat(Compat.MOD_GT6, "gt.armor.hazmat.radiation.head", p90 * helmet); tryRegisterHazmat(Compat.MOD_GT6, "gt.armor.hazmat.radiation.chest", p90 * chest); tryRegisterHazmat(Compat.MOD_GT6, "gt.armor.hazmat.radiation.legs", p90 * legs); tryRegisterHazmat(Compat.MOD_GT6, "gt.armor.hazmat.radiation.boots", p90 * boots); - + tryRegisterHazmat(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", p99 * helmet); tryRegisterHazmat(Compat.MOD_GT6, "gt.armor.hazmat.universal.chest", p99 * chest); tryRegisterHazmat(Compat.MOD_GT6, "gt.armor.hazmat.universal.legs", p99 * legs); tryRegisterHazmat(Compat.MOD_GT6, "gt.armor.hazmat.universal.boots", p99 * boots); - + tryRegisterHazmat(Compat.MOD_REC, "reactorcraft_item_hazhelmet", p99 * helmet); tryRegisterHazmat(Compat.MOD_REC, "reactorcraft_item_hazchest", p99 * chest); tryRegisterHazmat(Compat.MOD_REC, "reactorcraft_item_hazlegs", p99 * legs); tryRegisterHazmat(Compat.MOD_REC, "reactorcraft_item_hazboots", p99 * boots); - + tryRegisterHazmat(Compat.MOD_EF, "netherite_helmet", p90 * helmet); tryRegisterHazmat(Compat.MOD_EF, "netherite_chestplate", p90 * chest); tryRegisterHazmat(Compat.MOD_EF, "netherite_leggings", p90 * legs); tryRegisterHazmat(Compat.MOD_EF, "netherite_boots", p90 * boots); } - + private static void tryRegisterHazmat(String mod, String name, double resistance) { Item item = Compat.tryLoadItem(mod, name); if(item != null) { HazmatRegistry.registerHazmat(item, resistance); } } - + public static void registerCompatFluidContainers() { - - if(Compat.isModLoaded(Compat.MOD_TC)) { + + if(Compat.isModLoaded(Compat.MOD_TC) && GeneralConfig.enableFluidContainerCompat) { Item canister = Compat.tryLoadItem(Compat.MOD_TC, "emptyCanister"); Item diesel = Compat.tryLoadItem(Compat.MOD_TC, "diesel"); if(diesel != null && canister != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(diesel), new ItemStack(canister), Fluids.DIESEL, 1000)); } } - + public static void handleRailcraftNonsense() { - + if(!Loader.isModLoaded(MOD_RC)) return; MainRegistry.logger.info("#######################################################"); MainRegistry.logger.info("| Railcraft detected, deploying anti-nonsense measures..."); - + try { - + ConcurrentHashMap> listeners = ReflectionHelper.getPrivateValue(EventBus.class, FMLCommonHandler.instance().bus(), "listeners"); Object nonsense = null; for(Object o : listeners.keySet()) { @@ -188,16 +191,47 @@ public class Compat { break; } } - + FMLCommonHandler.instance().bus().unregister(nonsense); MainRegistry.logger.info("| Successfully removed Railcraft nonsense."); - + } catch(Exception x) { MainRegistry.logger.error("| Tried to remove Railcraft block but failed due to " + x.getMessage()); } MainRegistry.logger.info("#######################################################"); } - + + public static Class getChunkBiomeHook() { + try { + return Class.forName("com.falsepattern.endlessids.mixin.helpers.ChunkBiomeHook"); + } catch(ClassNotFoundException e) { + return null; + } + } + + public static Method getBiomeShortArray; + + public static Method getBiomeShortArray() { + if(getBiomeShortArray != null) return getBiomeShortArray; + try { + Method m = getChunkBiomeHook().getDeclaredMethod("getBiomeShortArray"); + getBiomeShortArray = m; + return m; + } catch(Exception e) { + return null; + } + } + + public static short[] getBiomeShortArray(Object instance) { + Method m = getBiomeShortArray(); + if(m != null) { + try { + return (short[]) m.invoke(instance); + } catch(Exception e) { } + } + return null; + } + /** A standard implementation of safely grabbing a tile entity without loading chunks, might have more fluff added to it later on. */ public static TileEntity getTileStandard(World world, int x, int y, int z) { if(!world.getChunkProvider().chunkExists(x >> 4, z >> 4)) return null; diff --git a/src/main/java/com/hbm/util/CompatEnergyControl.java b/src/main/java/com/hbm/util/CompatEnergyControl.java new file mode 100644 index 000000000..3542cd5fd --- /dev/null +++ b/src/main/java/com/hbm/util/CompatEnergyControl.java @@ -0,0 +1,169 @@ +package com.hbm.util; + +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyHandlerMK2; +import api.hbm.fluid.IFluidUser; +import api.hbm.tile.IInfoProviderEC; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.ModItems; +import com.hbm.tileentity.machine.TileEntityMachineGasCent; +import com.hbm.tileentity.machine.TileEntityMachineGasCent.PseudoFluidTank; +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +import java.util.ArrayList; +import java.util.List; + +/** Provides data specified by EC's CrossModBase */ +public class CompatEnergyControl { + + /** Returns the steel ingot to craft the sensor kit with */ + public static ItemStack getCraftingMaterial() { + return new ItemStack(ModItems.ingot_steel); //in the event that i do end up moving all ingots to metadata + } + + /** Returns true for stacks with electric items like batteries or powertools (i.e. implements IBatteryItem) */ + public static boolean isElectricItem(ItemStack stack) { + return stack.getItem() instanceof IBatteryItem; + } + + /** Standardized discharge for IBatteryItem, returns the amount that was removed */ + public static double dischargeItem(ItemStack stack, double needed) { + IBatteryItem battery = (IBatteryItem) stack.getItem(); + long toDischarge = Math.min(battery.getDischargeRate(), Math.min(battery.getCharge(stack), (long) needed)); + battery.dischargeBattery(stack, toDischarge); + return toDischarge; + } + + /** Returns the power and maxPower values for IEnergyUser */ + public static void getEnergyData(TileEntity tile, NBTTagCompound data) { + + data.setString(KEY_EUTYPE, "HE"); + + if(tile instanceof IEnergyHandlerMK2) { + IEnergyHandlerMK2 user = (IEnergyHandlerMK2) tile; + data.setDouble(L_ENERGY_HE, user.getPower()); + data.setDouble(L_CAPACITY_HE, user.getMaxPower()); + } + } + + /** Returns the heat for RBMKs */ + public static int getHeat(TileEntity tile) { + if(tile instanceof TileEntityRBMKBase) return (int) ((TileEntityRBMKBase) tile).heat; + //original implementation also used the SNR and LNR for some reason, but those no longer exist. neither ZINOX nor research reactor were part of the system. + return -1; + } + + /** Returns a list of Object arrays, one array for each fluid tank where the array contains fluid name, fill state and capacity (STRING, INTEGER, INTEGER) */ + public static List getAllTanks(TileEntity tile) { + + List list = new ArrayList(); + + if(tile instanceof IFluidUser) { + IFluidUser user = (IFluidUser) tile; + + for(FluidTank tank : user.getAllTanks()) { + if(tank.getTankType() == Fluids.SMOKE || tank.getTankType() == Fluids.SMOKE_LEADED || tank.getTankType() == Fluids.SMOKE_POISON) continue; + list.add(toFluidInfo(tank)); + } + } + + if(tile instanceof TileEntityMachineGasCent) { + TileEntityMachineGasCent cent = (TileEntityMachineGasCent) tile; + list.add(toFluidInfo(cent.inputTank)); + list.add(toFluidInfo(cent.outputTank)); + } + + if(!list.isEmpty()) return list; + + return null; + } + + private static Object[] toFluidInfo(FluidTank tank) { + return new Object[] {tank.getTankType().getName(), tank.getFill(), tank.getMaxFill()}; + } + + private static Object[] toFluidInfo(PseudoFluidTank tank) { + return new Object[] {tank.getTankType().getName(), tank.getFill(), tank.getMaxFill()}; + } + + /** Returns any non-standard data like progress, unique stats and so forth. Data comes from the IInfoProviderEC implementation */ + public static void getExtraData(TileEntity tile, NBTTagCompound data) { + + if(tile instanceof IInfoProviderEC) { + IInfoProviderEC provider = (IInfoProviderEC) tile; + provider.provideExtraInfo(data); + } + } + + /** Returns the core tile entity for that position, can resolve the MK1 "IMultiblock" and MK2 "BlockDummyable" systems. */ + public static TileEntity findTileEntity(World world, int x, int y, int z) { + return CompatExternal.getCoreFromPos(world, x, y, z); //CompatExternal you're just standing around, do something for once + } + + /** Returns the ResourceLocation for the given fluid name */ + public static ResourceLocation getFluidTexture(String name) { + FluidType type = Fluids.fromName(name); + return type == null ? null : type.getTexture(); + } + + /* + * [DATA TYPE] _ [NAME] _ [UNIT] + */ + + public static final String KEY_EUTYPE = "euType"; + + public static final String L_ENERGY_HE = "energy"; + public static final String L_ENERGY_TU = "energyTU"; + public static final String L_ENERGY_ = "energy_"; // Blast Furnace fuel + + public static final String L_CAPACITY_HE = "capacity"; + public static final String L_CAPACITY_TU = "capacityTU"; + public static final String L_CAPACITY_ = "capacity_"; // Blast Furnace fuel capacity + + public static final String D_CONSUMPTION_HE = "consumptionHE"; + public static final String D_CONSUMPTION_MB = "consumption"; + @Deprecated public static final String S_CONSUMPTION_ = "consumption_"; // FWatz fluid consumption rates + + public static final String D_OUTPUT_HE = "output"; + public static final String D_OUTPUT_MB = "outputmb"; + public static final String D_OUTPUT_TU = "outputTU"; + + public static final String L_DIFF_HE = "diff"; // Battery diff per tick + @Deprecated public static final String I_TEMP_K = "temp"; // Unused? + public static final String D_TURBINE_PERCENT = "turbine"; // CCGT slider + public static final String I_TURBINE_SPEED = "speed"; // CCGT RPM + public static final String L_COREHEAT_C = "core"; // Research Reactor core heat + public static final String L_HULLHEAT_C = "hull"; // Research Reactor hull heat + public static final String S_LEVEL_PERCENT = "level"; // Research Reactor rods + @Deprecated public static final String L_HEATL = "heatL"; // AMS and old Watz heat values + public static final String D_HEAT_C = "heat"; // Research Reactor and RBMK column heat + public static final String D_MAXHEAT_C = "maxHeat"; // ZIRNOX melting temp + public static final String L_PRESSURE_BAR = "bar"; // ZIRNOX pressure + public static final String L_FUEL = "fuel"; // RTG Blast Furnace heat + @Deprecated public static final String S_FUELTEXT = "fuelText"; // Large Nuclear Reactor only + @Deprecated public static final String S_DEPLETED = "depleted"; // Large Nuclear Reactor only + public static final String D_DEPLETION_PERCENT = "depletion"; // RBMK Fuel depletion + public static final String D_XENON_PERCENT = "xenon"; // RBMK Fuel xenon poisoning + public static final String D_SKIN_C = "skin"; // RBMK Fuel skin heat + public static final String D_CORE_C = "c_heat"; // RBMK Fuel core heat + public static final String D_MELT_C = "melt"; // RBMK Fuel melting point + public static final String I_PROGRESS = "progress"; + public static final String I_FLUX = "flux"; // Research and Breeding Reactor flux + public static final String I_WATER = "water"; // Research Reactor water gauge + public static final String L_DURABILITY = "durability"; // DFC Stabilizer Lens + public static final String S_TANK = "tank"; + public static final String S_TANK2 = "tank2"; + public static final String S_TANK3 = "tank3"; + public static final String S_TANK4 = "tank4"; + public static final String S_TANK5 = "tank5"; + @Deprecated public static final String I_PISTONS = "pistons"; // Radial Performance Engine piston count + public static final String S_CHUNKRAD = "chunkRad"; // Geiger Counter + public static final String B_ACTIVE = "active"; +} diff --git a/src/main/java/com/hbm/util/CompatExternal.java b/src/main/java/com/hbm/util/CompatExternal.java index 46f1fab61..2a7f1177c 100644 --- a/src/main/java/com/hbm/util/CompatExternal.java +++ b/src/main/java/com/hbm/util/CompatExternal.java @@ -5,21 +5,26 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Set; import java.util.function.BiFunction; +import java.util.function.Consumer; +import api.hbm.energymk2.IEnergyHandlerMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluid.IFluidUser; import com.hbm.blocks.BlockDummyable; +import com.hbm.entity.missile.EntityMissileCustom; +import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.weapon.ItemCustomMissilePart.WarheadType; import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.turret.TileEntityTurretSentry; - -import api.hbm.energy.IEnergyUser; -import api.hbm.fluid.IFluidUser; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.passive.EntityChicken; import net.minecraft.entity.passive.EntityCow; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; /** @@ -35,73 +40,73 @@ public class CompatExternal { * @return the core tile entity if the given position holds a dummy, the tile entity at that position if it doesn't or null if there is no tile entity */ public static TileEntity getCoreFromPos(World world, int x, int y, int z) { - + Block b = world.getBlock(x, y, z); - + //if the block at that pos is a Dummyable, use the mk2's system to find the core if(b instanceof BlockDummyable) { BlockDummyable dummy = (BlockDummyable) b; int[] pos = dummy.findCore(world, x, y, z); - + if(pos != null) { return world.getTileEntity(pos[0], pos[1], pos[2]); } } - + TileEntity tile = world.getTileEntity(x, y, z); - + //if the tile at that pos is an old dummy tile, use mk1 if(tile instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy) tile; return world.getTileEntity(dummy.targetX, dummy.targetY, dummy.targetZ); } - + //otherwise, return the tile at that position whihc could be null return tile; } - + /** * Returns the numeric value of the buffered energy held by that tile entity. Current implementation relies on IEnergyUser. * @param tile * @return power */ public static long getBufferedPowerFromTile(TileEntity tile) { - - if(tile instanceof IEnergyUser) { - return ((IEnergyUser) tile).getPower(); + + if(tile instanceof IEnergyHandlerMK2) { + return ((IEnergyHandlerMK2) tile).getPower(); } - + return 0L; } - + /** * Returns the numeric value of the energy capacity of this tile entity. Current implementation relies on IEnergyUser. * @param tile * @return max power */ public static long getMaxPowerFromTile(TileEntity tile) { - - if(tile instanceof IEnergyUser) { - return ((IEnergyUser) tile).getMaxPower(); + + if(tile instanceof IEnergyHandlerMK2) { + return ((IEnergyHandlerMK2) tile).getMaxPower(); } - + return 0L; } - + /** * Returns the ordinal of the energy priority from the supplied tile entity. 0 = low, 1 = normal, 2 = high. Returns -1 if not applicable. * @param tile * @return priority */ public static int getEnergyPriorityFromTile(TileEntity tile) { - - if(tile instanceof IEnergyUser) { - return ((IEnergyUser) tile).getPriority().ordinal(); + + if(tile instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2) tile).getPriority().ordinal(); } - + return -1; } - + /** * Returns a list of tank definitions from the supplied tile entity. Uses IFluidUser, if the tile is incompatible it returns an empty list. * @param tile @@ -114,24 +119,24 @@ public class CompatExternal { */ public static ArrayList getFluidInfoFromTile(TileEntity tile) { ArrayList list = new ArrayList(); - + if(!(tile instanceof IFluidUser)) { return list; } - + IFluidUser container = (IFluidUser) tile; - + for(FluidTank tank : container.getAllTanks()) { FluidType type = tank.getTankType(); list.add(new Object[] { - type.getName(), + type.getConditionalName(), type.getID(), type.getColor(), tank.getFill(), tank.getMaxFill() }); } - + return list; } @@ -139,14 +144,14 @@ public class CompatExternal { public static Set turretTargetFriendly = new HashSet(); public static Set turretTargetHostile = new HashSet(); public static Set turretTargetMachine = new HashSet(); - + /** * Registers a class for turret targeting * @param clazz is the class that should be targeted. * @param type determines what setting the turret needs to have enabled to target this class. 0 is player, 1 is friendly, 2 is hostile and 3 is machine. */ public static void registerTurretTargetSimple(Class clazz, int type) { - + switch(type) { case 0: turretTargetPlayer.add(clazz); break; case 1: turretTargetFriendly.add(clazz); break; @@ -154,9 +159,9 @@ public class CompatExternal { case 3: turretTargetMachine.add(clazz); break; } } - + public static Set turretTargetBlacklist = new HashSet(); - + /** * Registers a class to be fully ignored by turrets * @param clazz is the class that should be ignored. @@ -164,9 +169,9 @@ public class CompatExternal { public static void registerTurretTargetBlacklist(Class clazz) { turretTargetBlacklist.add(clazz); } - + public static HashMap> turretTargetCondition = new HashMap(); - + /** * Registers a BiFunction lambda for more complex targeting compatibility * @param clazz is the class that this rule should apply to @@ -175,9 +180,13 @@ public class CompatExternal { * class on the side of whoever is adding compat, allowing the compat class to be used entirely with reflection. */ public static void registerTurretTargetingCondition(Class clazz, BiFunction bi) { - turretTargetBlacklist.add(clazz); + turretTargetCondition.put(clazz, bi); } - + + public static void setWarheadLabel(WarheadType type, String label) { type.labelCustom = label; } + public static void setWarheadImpact(WarheadType type, Consumer impact) { type.impactCustom = impact; } + public static void setWarheadUpdate(WarheadType type, Consumer update) { type.updateCustom = update; } + public static void compatExamples() { // Makes all cows be targeted by turrets if player mode is active in addition to the existing rules. Applies to all entities that inherit EntityCow. CompatExternal.registerTurretTargetSimple(EntityCow.class, 0); @@ -189,5 +198,10 @@ public class CompatExternal { if(turret instanceof TileEntityTurretSentry) return -1; return 0; }); + //configures CUSTOM0 to have a custom label and impact effect + CompatExternal.setWarheadLabel(WarheadType.CUSTOM0, EnumChatFormatting.YELLOW + "Micro Nuke"); + CompatExternal.setWarheadImpact(WarheadType.CUSTOM0, (missile) -> { + ExplosionNukeSmall.explode(missile.worldObj, missile.posX, missile.posY + 0.5, missile.posZ, ExplosionNukeSmall.PARAMS_MEDIUM); + }); } } diff --git a/src/main/java/com/hbm/util/CompatNER.java b/src/main/java/com/hbm/util/CompatNER.java new file mode 100644 index 000000000..63ba2ae2e --- /dev/null +++ b/src/main/java/com/hbm/util/CompatNER.java @@ -0,0 +1,168 @@ +package com.hbm.util; + +import com.hbm.blocks.ModBlocks; +import com.hbm.entity.mob.EntityCreeperNuclear; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; +import cpw.mods.fml.common.event.FMLInterModComms; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; + +import java.util.ArrayList; +import java.util.List; + +public class CompatNER { + + /* + * INIT + */ + + public static void init() { + sendRegisterOre(new ItemStack(ModBlocks.ore_alexandrite), false, 0xff00ff, new ItemStack(ModItems.gem_alexandrite)); + sendRegisterMob(EntityCreeperNuclear.class, "-1", encodeDrops( + new DropItem(new ItemStack(Blocks.tnt), 0, 2), + new DropItem(new ItemStack(ModItems.coin_creeper), 1, 1, 0.33F))); + } + + /* + * REGISTERS + */ + + public static void sendRegisterOre(ItemStack ore, boolean silk, int color, ItemStack... drops) { + NBTTagCompound data = new NBTTagCompound(); + data.setTag(stack, ore.writeToNBT(new NBTTagCompound())); + data.setBoolean(silkTouch, silk); + data.setInteger(colour, color); + data.setTag(addDrops, encodeStacks(drops)); + int[] distribution = new int[256]; + for(int i = 0; i < 256; i++) distribution[i] = 100; + data.setIntArray("distribution", distribution); + + NBTTagCompound res = new NBTTagCompound(); + NBTTagCompound block = new NBTTagCompound(); + block.setTag("stack", new ItemStack(Blocks.stone).writeToNBT(new NBTTagCompound())); + res.setTag("block", block); + data.setTag(restriction, res); + + FMLInterModComms.sendMessage(notEnoughResources, registerOre, data); + } + + public static void sendRegisterMob(Class clazz, String light, NBTTagList drops) { + NBTTagCompound data = new NBTTagCompound(); + data.setString(name, clazz.getName()); + data.setString(lightLevel, light); + data.setTag(addDrops, drops); + MainRegistry.logger.info("Sending " + registerMob + " to " + notEnoughResources); + FMLInterModComms.sendMessage(notEnoughResources, registerMob, data); + } + + /* + * ENCODERS + */ + + public static String encodeLightLevel(int level, boolean below) { + return level + ":" + (below ? "b" : "a"); + } + + public static NBTTagList encodeDrops(DropItem... stacks) { + NBTTagList list = new NBTTagList(); + for(DropItem stack : stacks) list.appendTag(stack.writeToNBT()); + return list; + } + + public static NBTTagList encodeStacks(ItemStack... stacks) { + NBTTagList list = new NBTTagList(); + for(ItemStack stack : stacks) list.appendTag(stack.writeToNBT(new NBTTagCompound())); + return list; + } + + /* + * DROP SYSTEM + */ + + public static class DropItem { + public ItemStack drop; + public int min = 1; + public int max = 1; + public float chance = 1F; + List conditionals = new ArrayList(); + + public DropItem(ItemStack stack) { this(stack, 1, 1, 1F); } + public DropItem(ItemStack stack, int min, int max) { this(stack, min, max, 1F); } + public DropItem(ItemStack stack, int min, int max, float chance) { + this.drop = stack; + this.min = min; + this.max = max; + this.chance = chance; + } + + public NBTTagCompound writeToNBT() { + NBTTagCompound compound = new NBTTagCompound(); + compound.setTag("stack", this.drop.writeToNBT(new NBTTagCompound())); + compound.setInteger("min", this.min); + compound.setInteger("max", this.max); + compound.setFloat("chance", this.chance); + NBTTagList conditionals = new NBTTagList(); + for(String condition : this.conditionals) conditionals.appendTag(new NBTTagString(condition)); + compound.setTag("conditionals", conditionals); + return compound; + } + } + + /* + * CONSTANTS + */ + + public static final String notEnoughResources = "neresources"; + public static final String registerDungeon = "registerDungeon"; + public static final String registerMob = "registerMob"; + public static final String registerOre = "registerOre"; + public static final String registerPlant = "registerPlant"; + public static final String addToRegistry = "add"; + public static final String modifyMob = "modifyMob"; + public static final String modifyOre = "modifyOre"; + public static final String modifyPlant = "modifyPlant"; + public static final String removeMob = "removeMob"; + public static final String removeOre = "removeOre"; + public static final String removePlant = "removePlant"; + public static final String distribution = "distribution"; + public static final String bestHeight = "bestHeight"; + public static final String stack = "stack"; + public static final String name = "name"; + public static final String lightLevel = "lightLevel"; + public static final String conditionals = "conditionals"; + public static final String colour = "colour"; + public static final String itemList = "itemList"; + public static final String chance = "chance"; + public static final String min = "min"; + public static final String max = "max"; + public static final String priority = "priority"; + public static final String addPriority = "addPriority"; + public static final String removePriority = "removePriority"; + public static final String addDrops = "addDrops"; + public static final String removeDrops = "removeDrops"; + public static final String silkTouch = "silkTouch"; + public static final String wither = "wither"; + public static final String strict = "strict"; + public static final String biomeArray = "biomeArray"; + public static final String type = "type"; + public static final String restriction = "restriction"; + public static final String blockRestriction = "block"; + public static final String dimensionRestriction = "dimension"; + public static final String biomeRestriction = "biome"; + + public static final String conditional_rareDrop = "ner.rareDrop.text"; + public static final String conditional_silkTouch = "ner.ore.silkTouch"; + public static final String conditional_equipmentDrop = "ner.equipmentDrop.text"; + public static final String conditional_burning = "ner.burning.text"; + public static final String conditional_notBurning = "ner.notBurning.text"; + public static final String conditional_playerKill = "ner.playerKill.text"; + public static final String conditional_notPlayerKill = "ner.notPlayerKill.text"; + public static final String conditional_aboveLooting = "ner.aboveLooting.text"; + public static final String conditional_belowLooting = "ner.belowLooting.text"; + public static final String conditional_killedBy = "ner.killedBy.text"; + public static final String conditional_notKilledBy = "ner.notKilledBy.text"; +} diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index c09b3ba4a..35a8763e9 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -1,17 +1,14 @@ package com.hbm.util; -import java.util.HashSet; - -import com.hbm.entity.mob.EntityDuck; +import api.hbm.entity.IRadiationImmune; import com.hbm.entity.mob.EntityCreeperNuclear; +import com.hbm.entity.mob.EntityDuck; import com.hbm.entity.mob.EntityQuackos; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.HazmatRegistry; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorRegistry.HazardClass; - -import api.hbm.entity.IRadiationImmune; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntitySkeleton; @@ -25,25 +22,27 @@ import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import java.util.HashSet; + public class ContaminationUtil { - + /** * Calculates how much radiation can be applied to this entity by calculating resistance * @param entity * @return */ public static float calculateRadiationMod(EntityLivingBase entity) { - + if(entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)entity; - + float koeff = 10.0F; return (float) Math.pow(koeff, -HazmatRegistry.getResistance(player)); } - + return 1; } - + public static float getRads(Entity e) { if(!(e instanceof EntityLivingBase)) @@ -51,19 +50,19 @@ public class ContaminationUtil { if(isRadImmune(e)) return 0.0F; - + EntityLivingBase entity = (EntityLivingBase)e; - + return HbmLivingProps.getRadiation(entity); } - + public static HashSet immuneEntities = new HashSet(); - + public static boolean isRadImmune(Entity e) { if(e instanceof EntityLivingBase && ((EntityLivingBase)e).isPotionActive(HbmPotion.mutation)) return true; - + if(immuneEntities.isEmpty()) { immuneEntities.add(EntityCreeperNuclear.class); immuneEntities.add(EntityMooshroom.class); @@ -73,62 +72,62 @@ public class ContaminationUtil { immuneEntities.add(EntityOcelot.class); immuneEntities.add(IRadiationImmune.class); } - + Class entityClass = e.getClass(); - + for(Class clazz : immuneEntities) { if(clazz.isAssignableFrom(entityClass)) return true; } - + if("cyano.lootable.entities.EntityLootableBody".equals(entityClass.getName())) return true; - + return false; } - + /// ASBESTOS /// public static void applyAsbestos(Entity e, int i) { if(!(e instanceof EntityLivingBase)) return; - + if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) return; - + if(e instanceof EntityPlayer && e.ticksExisted < 200) return; - + EntityLivingBase entity = (EntityLivingBase)e; - + if(ArmorRegistry.hasAllProtection(entity, 3, HazardClass.PARTICLE_FINE)) ArmorUtil.damageGasMaskFilter(entity, i); else HbmLivingProps.incrementAsbestos(entity, i); } - + /// DIGAMMA /// public static void applyDigammaData(Entity e, float f) { if(!(e instanceof EntityLivingBase)) return; - + if(e instanceof EntityDuck || e instanceof EntityOcelot) return; - + if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) return; - + if(e instanceof EntityPlayer && e.ticksExisted < 200) return; - + EntityLivingBase entity = (EntityLivingBase)e; - + if(entity.isPotionActive(HbmPotion.stability.id)) return; - + if(!(entity instanceof EntityPlayer && ArmorUtil.checkForDigamma((EntityPlayer) entity))) HbmLivingProps.incrementDigamma(entity, f); } - + public static void applyDigammaDirect(Entity e, float f) { if(!(e instanceof EntityLivingBase)) @@ -136,23 +135,23 @@ public class ContaminationUtil { if(e instanceof IRadiationImmune) return; - + if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) return; - + EntityLivingBase entity = (EntityLivingBase)e; HbmLivingProps.incrementDigamma(entity, f); } - + public static float getDigamma(Entity e) { if(!(e instanceof EntityLivingBase)) return 0.0F; - + EntityLivingBase entity = (EntityLivingBase)e; return HbmLivingProps.getDigamma(entity); } - + public static void printGeigerData(EntityPlayer player) { World world = player.worldObj; @@ -161,7 +160,7 @@ public class ContaminationUtil { double rads = ((int)(ChunkRadiationManager.proxy.getRadiation(world, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ)) * 10)) / 10D; double env = ((int)(HbmLivingProps.getRadBuf(player) * 10D)) / 10D; - + double res = ((int)(10000D - ContaminationUtil.calculateRadiationMod(player) * 10000D)) / 100D; double resKoeff = ((int)(HazmatRegistry.getResistance(player) * 100D)) / 100D; @@ -169,7 +168,7 @@ public class ContaminationUtil { String envPrefix = getPreffixFromRad(env); String radPrefix = ""; String resPrefix = "" + EnumChatFormatting.WHITE; - + if(eRad < 200) radPrefix += EnumChatFormatting.GREEN; else if(eRad < 400) @@ -182,7 +181,7 @@ public class ContaminationUtil { radPrefix += EnumChatFormatting.DARK_RED; else radPrefix += EnumChatFormatting.DARK_GRAY; - + if(resKoeff > 0) resPrefix += EnumChatFormatting.GREEN; @@ -194,27 +193,27 @@ public class ContaminationUtil { player.addChatMessage(new ChatComponentTranslation("geiger.playerRad").appendSibling(new ChatComponentText(" " + radPrefix + eRad + " RAD")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); player.addChatMessage(new ChatComponentTranslation("geiger.playerRes").appendSibling(new ChatComponentText(" " + resPrefix + res + "% (" + resKoeff + ")")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); } - + public static void printDosimeterData(EntityPlayer player) { double env = ((int)(HbmLivingProps.getRadBuf(player) * 10D)) / 10D; boolean limit = false; - + if(env > 3.6D) { env = 3.6D; limit = true; } - + String envPrefix = getPreffixFromRad(env); - + player.addChatMessage(new ChatComponentText("===== ☢ ").appendSibling(new ChatComponentTranslation("geiger.title.dosimeter")).appendSibling(new ChatComponentText(" ☢ =====")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); player.addChatMessage(new ChatComponentTranslation("geiger.envRad").appendSibling(new ChatComponentText(" " + envPrefix + (limit ? ">" : "") + env + " RAD/s")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); } - + public static String getPreffixFromRad(double rads) { String chunkPrefix = ""; - + if(rads == 0) chunkPrefix += EnumChatFormatting.GREEN; else if(rads < 1) @@ -227,26 +226,26 @@ public class ContaminationUtil { chunkPrefix += EnumChatFormatting.DARK_RED; else chunkPrefix += EnumChatFormatting.DARK_GRAY; - + return chunkPrefix; } - + public static void printDiagnosticData(EntityPlayer player) { double digamma = ((int)(HbmLivingProps.getDigamma(player) * 100)) / 100D; double halflife = ((int)((1D - Math.pow(0.5, digamma)) * 10000)) / 100D; - + player.addChatMessage(new ChatComponentText("===== Ϝ ").appendSibling(new ChatComponentTranslation("digamma.title")).appendSibling(new ChatComponentText(" Ϝ =====")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.DARK_PURPLE))); player.addChatMessage(new ChatComponentTranslation("digamma.playerDigamma").appendSibling(new ChatComponentText(EnumChatFormatting.RED + " " + digamma + " DRX")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.LIGHT_PURPLE))); player.addChatMessage(new ChatComponentTranslation("digamma.playerHealth").appendSibling(new ChatComponentText(EnumChatFormatting.RED + " " + halflife + "%")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.LIGHT_PURPLE))); player.addChatMessage(new ChatComponentTranslation("digamma.playerRes").appendSibling(new ChatComponentText(EnumChatFormatting.BLUE + " " + "N/A")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.LIGHT_PURPLE))); } - + public static enum HazardType { RADIATION, DIGAMMA } - + public static enum ContaminationType { FARADAY, //preventable by metal armor HAZMAT, //preventable by hazmat @@ -254,26 +253,26 @@ public class ContaminationUtil { DIGAMMA, //preventable by fau armor or stability DIGAMMA2, //preventable by robes CREATIVE, //preventable by creative mode, for rad calculation armor piece bonuses still apply - RAD_BYPASS, //same as craative but will not apply radiation resistance calculation + RAD_BYPASS, //same as creative but will not apply radiation resistance calculation NONE //not preventable } - + /* * This system is nice but the cont types are a bit confusing. Cont types should have much better names and multiple cont types should be applicable. */ @SuppressWarnings("incomplete-switch") //just shut up //instead of this does-everything-but-nothing-well solution, please use the ArmorRegistry to check for protection and the HBM Props for applying contamination. still good for regular radiation tho public static boolean contaminate(EntityLivingBase entity, HazardType hazard, ContaminationType cont, float amount) { - + if(hazard == HazardType.RADIATION) { float radEnv = HbmLivingProps.getRadEnv(entity); HbmLivingProps.setRadEnv(entity, radEnv + amount); } - + if(entity instanceof EntityPlayer) { - + EntityPlayer player = (EntityPlayer)entity; - + switch(cont) { case FARADAY: if(ArmorUtil.checkForFaraday(player)) return false; break; case HAZMAT: if(ArmorUtil.checkForHazmat(player)) return false; break; @@ -281,22 +280,22 @@ public class ContaminationUtil { case DIGAMMA: if(ArmorUtil.checkForDigamma(player)) return false; if(ArmorUtil.checkForDigamma2(player)) return false; break; case DIGAMMA2: if(ArmorUtil.checkForDigamma2(player)) return false; break; } - + if(player.capabilities.isCreativeMode && cont != ContaminationType.NONE && cont != ContaminationType.DIGAMMA2) return false; - + if(player.ticksExisted < 200) return false; } - + if(hazard == HazardType.RADIATION && isRadImmune(entity)) return false; - + switch(hazard) { case RADIATION: HbmLivingProps.incrementRadiation(entity, amount * (cont == ContaminationType.RAD_BYPASS ? 1 : calculateRadiationMod(entity))); break; case DIGAMMA: HbmLivingProps.incrementDigamma(entity, amount); break; } - + return true; } } diff --git a/src/main/java/com/hbm/util/CrashHelper.java b/src/main/java/com/hbm/util/CrashHelper.java new file mode 100644 index 000000000..3eb440287 --- /dev/null +++ b/src/main/java/com/hbm/util/CrashHelper.java @@ -0,0 +1,32 @@ +package com.hbm.util; + +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.ICrashCallable; + +public class CrashHelper { + + public static void init() { + FMLCommonHandler.instance().registerCrashCallable(new CrashCallableRecipe()); + } + + public static class CrashCallableRecipe implements ICrashCallable { + + @Override + public String getLabel() { + return "NTM Modified recipes:"; + } + + @Override + public String call() throws Exception { + + String call = ""; + + for(SerializableRecipe rec : SerializableRecipe.recipeHandlers) { + if(rec.modified) call += "\n\t\t" + rec.getFileName(); + } + + return call; + } + } +} diff --git a/src/main/java/com/hbm/util/CrucibleUtil.java b/src/main/java/com/hbm/util/CrucibleUtil.java index e5d06cdbd..222abab88 100644 --- a/src/main/java/com/hbm/util/CrucibleUtil.java +++ b/src/main/java/com/hbm/util/CrucibleUtil.java @@ -1,19 +1,18 @@ package com.hbm.util; -import java.util.List; - +import api.hbm.block.ICrucibleAcceptor; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; - -import api.hbm.block.ICrucibleAcceptor; import net.minecraft.block.Block; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + public class CrucibleUtil { - + /** * Standard pouring, casting a hitscan straight down at the given coordinates with the given range. Returns the leftover material, just like ICrucibleAcceptor's pour. * The method directly modifies the original stack, so be careful and make a copy beforehand if you don't want that. @@ -21,21 +20,21 @@ public class CrucibleUtil { */ public static MaterialStack pourSingleStack(World world, double x, double y, double z, double range, boolean safe, MaterialStack stack, int quanta, Vec3 impactPosHolder) { - + Vec3 start = Vec3.createVectorHelper(x, y, z); Vec3 end = Vec3.createVectorHelper(x, y - range, z); - + MovingObjectPosition[] mopHolder = new MovingObjectPosition[1]; ICrucibleAcceptor acc = getPouringTarget(world, start, end, mopHolder); MovingObjectPosition mop = mopHolder[0]; - + if(acc == null) { spill(mop, safe, stack, quanta, impactPosHolder); return stack; } - + MaterialStack ret = tryPourStack(world, acc, mop, stack, impactPosHolder); - + if(ret != null) { return ret; } @@ -43,94 +42,95 @@ public class CrucibleUtil { spill(mop, safe, stack, quanta, impactPosHolder); return stack; } - + /** * Standard pouring, casting a hitscan straight down at the given coordinates with the given range. Returns the materialStack that has been removed. * The method doesn't make copies of the MaterialStacks in the list, so the materials being subtracted or outright removed will apply to the original list. * Pass an empty Vec3 instance in order to get the impact position of the stream. */ public static MaterialStack pourFullStack(World world, double x, double y, double z, double range, boolean safe, List stacks, int quanta, Vec3 impactPosHolder) { - + if(stacks.isEmpty()) return null; - + Vec3 start = Vec3.createVectorHelper(x, y, z); Vec3 end = Vec3.createVectorHelper(x, y - range, z); - + MovingObjectPosition[] mopHolder = new MovingObjectPosition[1]; ICrucibleAcceptor acc = getPouringTarget(world, start, end, mopHolder); MovingObjectPosition mop = mopHolder[0]; - + if(acc == null) { return spill(mop, safe, stacks, quanta, impactPosHolder); } - + for(MaterialStack stack : stacks) { - + if(stack.material == null) continue; + int amountToPour = Math.min(stack.amount, quanta); MaterialStack toPour = new MaterialStack(stack.material, amountToPour); MaterialStack left = tryPourStack(world, acc, mop, toPour, impactPosHolder); - + if(left != null) { stack.amount -= (amountToPour - left.amount); return new MaterialStack(stack.material, stack.amount - left.amount); } } - + return spill(mop, safe, stacks, quanta, impactPosHolder); } - + /** * Tries to pour the stack onto the supplied crucible acceptor instance. Also features our friend the Vec3 dummy, which will be filled with the stream's impact position. * Returns whatever is left of the stack when successful or null when unsuccessful (potential spillage). */ public static MaterialStack tryPourStack(World world, ICrucibleAcceptor acc, MovingObjectPosition mop, MaterialStack stack, Vec3 impactPosHolder) { Vec3 hit = mop.hitVec; - + if(stack.material.smeltable != SmeltingBehavior.SMELTABLE) { return null; } - + if(acc.canAcceptPartialPour(world, mop.blockX, mop.blockY, mop.blockZ, hit.xCoord, hit.yCoord, hit.zCoord, ForgeDirection.getOrientation(mop.sideHit), stack)) { MaterialStack left = acc.pour(world, mop.blockX, mop.blockY, mop.blockZ, hit.xCoord, hit.yCoord, hit.zCoord, ForgeDirection.getOrientation(mop.sideHit), stack); if(left == null) { left = new MaterialStack(stack.material, 0); } - + impactPosHolder.xCoord = hit.xCoord; impactPosHolder.yCoord = hit.yCoord; impactPosHolder.zCoord = hit.zCoord; - + return left; } - + return null; } - + /** * Uses hitscan to find the target of the pour, from start (the top) to end (the bottom). Pass a single cell MOP array to get the reference of the MOP for later use. * Now we're thinking with reference types. */ public static ICrucibleAcceptor getPouringTarget(World world, Vec3 start, Vec3 end, MovingObjectPosition[] mopHolder) { - + MovingObjectPosition mop = world.func_147447_a(start, end, true, true, true); - + if(mopHolder != null) { mopHolder[0] = mop; } - + if(mop == null || mop.typeOfHit != mop.typeOfHit.BLOCK) { return null; } - + Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); - + if(!(b instanceof ICrucibleAcceptor)) { return null; } - + return (ICrucibleAcceptor) b; } - + /** * Regular spillage routine but accepts a stack list instead of a stack. simply uses the first available stack from the list. Assumes list is not empty. */ @@ -140,30 +140,30 @@ public class CrucibleUtil { MaterialStack ret = spill(mop, safe, top, quanta, impactPos); //remove all stacks with no content stacks.removeIf(o -> o.amount <= 0); - + return ret; } - + /** * The routine used for then there is no valid crucible acceptor found. Will NOP with safe mode on. Returns the MaterialStack that was lost. */ public static MaterialStack spill(MovingObjectPosition mop, boolean safe, MaterialStack stack, int quanta, Vec3 impactPos) { - + //do nothing if safe mode is on if(safe) { return null; } - + MaterialStack toWaste = new MaterialStack(stack.material, Math.min(stack.amount, quanta)); stack.amount -= toWaste.amount; - + //if there is a vec3 reference, set the impact coordinates if(impactPos != null && mop != null) { impactPos.xCoord = mop.hitVec.xCoord; impactPos.yCoord = mop.hitVec.yCoord; impactPos.zCoord = mop.hitVec.zCoord; } - + return toWaste; } } diff --git a/src/main/java/com/hbm/util/DamageResistanceHandler.java b/src/main/java/com/hbm/util/DamageResistanceHandler.java new file mode 100644 index 000000000..100cead8b --- /dev/null +++ b/src/main/java/com/hbm/util/DamageResistanceHandler.java @@ -0,0 +1,396 @@ +package com.hbm.util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +import com.hbm.items.ModItems; +import com.hbm.util.Tuple.Quartet; + +import api.hbm.entity.IResistanceProvider; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +/** + * Basic handling/registry class for our custom resistance stats. + * Handles resistances for individual armor pieces, full sets as well as entity classes for innate damage resistance + * + * @author hbm + */ +public class DamageResistanceHandler { + + /** Currently cached DT reduction */ + public static float currentPDT = 0F; + /** Currently cached armor piercing % */ + public static float currentPDR = 0F; + + public static final String CATEGORY_EXPLOSION = "EXPL"; + public static final String CATEGORY_FIRE = "FIRE"; + public static final String CATEGORY_PROJECTILE = "PROJ"; + public static final String CATEGORY_ENERGY = "EN"; + + public static HashMap itemStats = new HashMap(); + public static HashMap, ResistanceStats> setStats = new HashMap(); + public static HashMap, ResistanceStats> entityStats = new HashMap(); + + public static HashMap>> itemInfoSet = new HashMap(); + + public static void init() { + + itemStats.clear(); + setStats.clear(); + entityStats.clear(); + itemInfoSet.clear(); + + entityStats.put(EntityCreeper.class, new ResistanceStats().addCategory(CATEGORY_EXPLOSION, 2F, 0.5F)); + + itemStats.put(ModItems.jackt, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F)); + itemStats.put(ModItems.jackt2, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F)); + + registerSet(ModItems.steel_helmet, ModItems.steel_plate, ModItems.steel_legs, ModItems.steel_boots, new ResistanceStats()); + registerSet(ModItems.titanium_helmet, ModItems.titanium_plate, ModItems.titanium_legs, ModItems.titanium_boots, new ResistanceStats()); + registerSet(ModItems.alloy_helmet, ModItems.alloy_plate, ModItems.alloy_legs, ModItems.alloy_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.1F)); + registerSet(ModItems.cobalt_helmet, ModItems.cobalt_plate, ModItems.cobalt_legs, ModItems.cobalt_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.1F)); + registerSet(ModItems.starmetal_helmet, ModItems.starmetal_plate, ModItems.starmetal_legs, ModItems.starmetal_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 3F, 0.25F) + .setOther(1F, 0.1F)); + registerSet(ModItems.zirconium_legs, ModItems.zirconium_legs, ModItems.zirconium_legs, ModItems.zirconium_legs, new ResistanceStats() + .setOther(0F, 1F)); + registerSet(ModItems.dnt_helmet, ModItems.dnt_plate, ModItems.dnt_legs, ModItems.dnt_boots, new ResistanceStats()); + registerSet(ModItems.cmb_helmet, ModItems.cmb_plate, ModItems.cmb_legs, ModItems.cmb_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) + .setOther(5F, 0.25F)); + registerSet(ModItems.schrabidium_helmet, ModItems.schrabidium_plate, ModItems.schrabidium_legs, ModItems.schrabidium_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 10F, 0.65F) + .setOther(5F, 0.5F)); + registerSet(ModItems.robes_helmet, ModItems.robes_plate, ModItems.robes_legs, ModItems.robes_boots, new ResistanceStats()); + + registerSet(ModItems.security_helmet, ModItems.security_plate, ModItems.security_legs, ModItems.security_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 2F, 0.25F)); + registerSet(ModItems.steamsuit_helmet, ModItems.steamsuit_plate, ModItems.steamsuit_legs, ModItems.steamsuit_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.25F) + .addExact(DamageSource.fall.damageType, 5F, 0.25F) + .setOther(0F, 0.1F)); + registerSet(ModItems.dieselsuit_helmet, ModItems.dieselsuit_plate, ModItems.dieselsuit_legs, ModItems.dieselsuit_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 1F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 2F, 0.15F) + .setOther(0F, 0.1F)); + registerSet(ModItems.t45_helmet, ModItems.t45_plate, ModItems.t45_legs, ModItems.t45_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) + .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) + .setOther(0F, 0.1F)); + registerSet(ModItems.ajr_helmet, ModItems.ajr_plate, ModItems.ajr_legs, ModItems.ajr_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 4F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) + .addCategory(CATEGORY_EXPLOSION, 7.5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) + .setOther(0F, 0.15F)); + registerSet(ModItems.ajro_helmet, ModItems.ajro_plate, ModItems.ajro_legs, ModItems.ajro_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 4F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) + .addCategory(CATEGORY_EXPLOSION, 7.5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) + .setOther(0F, 0.15F)); + registerSet(ModItems.rpa_helmet, ModItems.rpa_plate, ModItems.rpa_legs, ModItems.rpa_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 20F, 0.65F) + .addCategory(CATEGORY_FIRE, 10F, 0.75F) + .addCategory(CATEGORY_EXPLOSION, 15F, 0.25F) + .addExact(DamageClass.LASER.name(), 10F, 0.75F) + .addExact(DamageSource.fall.damageType, 0F, 1F) + .setOther(10F, 0.15F)); + ResistanceStats bj = new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) + .addCategory(CATEGORY_FIRE, 2.5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 10F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) + .setOther(2F, 0.15F); + registerSet(ModItems.bj_helmet, ModItems.bj_plate, ModItems.bj_legs, ModItems.bj_boots, bj); + registerSet(ModItems.bj_helmet, ModItems.bj_plate_jetpack, ModItems.bj_legs, ModItems.bj_boots, bj); + registerSet(ModItems.envsuit_helmet, ModItems.envsuit_plate, ModItems.envsuit_legs, ModItems.envsuit_boots, new ResistanceStats() + .addCategory(CATEGORY_FIRE, 2F, 0.75F) + .addExact(DamageSource.drown.damageType, 0F, 1F) + .addExact(DamageSource.fall.damageType, 5F, 0.75F) + .setOther(0F, 0.1F)); + registerSet(ModItems.hev_helmet, ModItems.hev_plate, ModItems.hev_legs, ModItems.hev_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.25F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageSource.onFire.damageType, 0F, 1F) + .addExact(DamageSource.fall.damageType, 10F, 0F) + .setOther(2F, 0.25F)); + registerSet(ModItems.bismuth_helmet, ModItems.bismuth_plate, ModItems.bismuth_legs, ModItems.bismuth_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) + .addCategory(CATEGORY_FIRE, 5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) + .setOther(2F, 0.25F)); + registerSet(ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots, new ResistanceStats() + .addCategory(CATEGORY_EXPLOSION, 50F, 0.95F) + .addExact(DamageClass.LASER.name(), 25F, 0.95F) + .addExact(DamageSource.fall.damageType, 0F, 1F) + .setOther(100F, 0.99F)); + registerSet(ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots, new ResistanceStats() + .addCategory(CATEGORY_EXPLOSION, 100F, 0.99F) + .setOther(100F, 1F)); + registerSet(ModItems.trenchmaster_helmet, ModItems.trenchmaster_plate, ModItems.trenchmaster_legs, ModItems.trenchmaster_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) + .addCategory(CATEGORY_FIRE, 5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageClass.LASER.name(), 15F, 0.9F) + .addExact(DamageSource.fall.damageType, 10F, 0.5F) + .setOther(5F, 0.25F)); + + registerSet(ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots, new ResistanceStats()); + registerSet(ModItems.hazmat_helmet_red, ModItems.hazmat_plate_red, ModItems.hazmat_legs_red, ModItems.hazmat_boots_red, new ResistanceStats()); + registerSet(ModItems.hazmat_helmet_grey, ModItems.hazmat_plate_grey, ModItems.hazmat_legs_grey, ModItems.hazmat_boots_grey, new ResistanceStats()); + registerSet(ModItems.liquidator_helmet, ModItems.liquidator_plate, ModItems.liquidator_legs, ModItems.liquidator_boots, new ResistanceStats()); + registerSet(ModItems.hazmat_paa_helmet, ModItems.hazmat_paa_plate, ModItems.hazmat_paa_legs, ModItems.hazmat_paa_boots, new ResistanceStats()); + registerSet(ModItems.asbestos_helmet, ModItems.asbestos_plate, ModItems.asbestos_legs, ModItems.asbestos_boots, new ResistanceStats() + .addCategory(CATEGORY_FIRE, 10F, 0.9F)); + } + + public static void registerSet(Item helmet, Item plate, Item legs, Item boots, ResistanceStats stats) { + Quartet set = new Quartet(helmet, plate, legs, boots); + setStats.put(set, stats); + addToListInHashMap(helmet, itemInfoSet, set); + addToListInHashMap(plate, itemInfoSet, set); + addToListInHashMap(legs, itemInfoSet, set); + addToListInHashMap(boots, itemInfoSet, set); + } + + public static void addToListInHashMap(Object key, HashMap map, Object listElement) { + List list = (List) map.get(key); + if(list == null) { + list = new ArrayList(); + map.put(key, list); + } + list.add(listElement); + } + + public static void addInfo(ItemStack stack, List desc) { + if(stack == null || stack.getItem() == null) return; + + if(itemInfoSet.containsKey(stack.getItem())) { + List> sets = itemInfoSet.get(stack.getItem()); + + for(Quartet set : sets) { + + ResistanceStats stats = setStats.get(set); + if(stats == null) continue; + + List toAdd = new ArrayList(); + + for(Entry entry : stats.categoryResistances.entrySet()) { + toAdd.add(I18nUtil.resolveKey("damage.category." + entry.getKey()) + ": " + entry.getValue().threshold + "/" + ((int)(entry.getValue().resistance * 100)) + "%"); + } + for(Entry entry : stats.exactResistances.entrySet()) { + toAdd.add(I18nUtil.resolveKey("damage.exact." + entry.getKey()) + ": " + entry.getValue().threshold + "/" + ((int)(entry.getValue().resistance * 100)) + "%"); + } + if(stats.otherResistance != null) toAdd.add(I18nUtil.resolveKey("damage.other") + ": " + stats.otherResistance.threshold + "/" + ((int)(stats.otherResistance.resistance * 100)) + "%"); + + if(!toAdd.isEmpty()) { + desc.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("damage.inset")); + //this sucks ass! + if(set.getW() != null) desc.add(EnumChatFormatting.DARK_PURPLE + " " + new ItemStack(set.getW()).getDisplayName()); + if(set.getX() != null) desc.add(EnumChatFormatting.DARK_PURPLE + " " + new ItemStack(set.getX()).getDisplayName()); + if(set.getY() != null) desc.add(EnumChatFormatting.DARK_PURPLE + " " + new ItemStack(set.getY()).getDisplayName()); + if(set.getZ() != null) desc.add(EnumChatFormatting.DARK_PURPLE + " " + new ItemStack(set.getZ()).getDisplayName()); + desc.addAll(toAdd); + } + + break; //TEMP, only show one set for now + } + } + + if(itemStats.containsKey(stack.getItem())) { + ResistanceStats stats = itemStats.get(stack.getItem()); + + List toAdd = new ArrayList(); + + for(Entry entry : stats.categoryResistances.entrySet()) { + toAdd.add(I18nUtil.resolveKey("damage.category." + entry.getKey()) + ": " + entry.getValue().threshold + "/" + ((int)(entry.getValue().resistance * 100)) + "%"); + } + for(Entry entry : stats.exactResistances.entrySet()) { + toAdd.add(I18nUtil.resolveKey("damage.exact." + entry.getKey()) + ": " + entry.getValue().threshold + "/" + ((int)(entry.getValue().resistance * 100)) + "%"); + } + if(stats.otherResistance != null) toAdd.add(I18nUtil.resolveKey("damage.other") + ": " + stats.otherResistance.threshold + "/" + ((int)(stats.otherResistance.resistance * 100)) + "%"); + + if(!toAdd.isEmpty()) { + desc.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("damage.item")); + desc.addAll(toAdd); + } + } + } + + public static enum DamageClass { + PHYSICAL, + FIRE, + EXPLOSIVE, + ELECTRIC, + LASER, + MICROWAVE, + SUBATOMIC, + OTHER + } + + public static void setup(float dt, float dr) { + currentPDT = dt; + currentPDR = dr; + } + + public static void reset() { + currentPDT = 0; + currentPDR = 0; + } + + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) { + EntityLivingBase e = event.entityLiving; + float amount = event.ammount; + + float[] vals = getDTDR(e, event.source, amount, currentPDT, currentPDR); + float dt = vals[0] - currentPDT; + + if(dt > 0 && dt >= event.ammount) { + event.setCanceled(true); + EntityDamageUtil.damageArmorNT(e, amount); + } + } + + @SubscribeEvent + public void onEntityDamaged(LivingHurtEvent event) { + event.ammount = calculateDamage(event.entityLiving, event.source, event.ammount, currentPDT, currentPDR); + if(event.entityLiving instanceof IResistanceProvider) { + IResistanceProvider irp = (IResistanceProvider) event.entityLiving; + irp.onDamageDealt(event.source, event.ammount); + } + } + + public static String typeToCategory(DamageSource source) { + if(source.isExplosion()) return CATEGORY_EXPLOSION; + if(source.isFireDamage()) return CATEGORY_FIRE; + if(source.isProjectile()) return CATEGORY_PROJECTILE; + if(source.damageType.equals(DamageClass.LASER.name())) return CATEGORY_ENERGY; + if(source.damageType.equals(DamageClass.MICROWAVE.name())) return CATEGORY_ENERGY; + if(source.damageType.equals(DamageClass.SUBATOMIC.name())) return CATEGORY_ENERGY; + return source.damageType; + } + + public static float calculateDamage(EntityLivingBase entity, DamageSource damage, float amount, float pierceDT, float pierce) { + if(damage.isDamageAbsolute()) return amount; + + float[] vals = getDTDR(entity, damage, amount, pierceDT, pierce); + float dt = vals[0]; + float dr = vals[1]; + + dt = Math.max(0F, dt - pierceDT); + if(dt >= amount) return 0F; + amount -= dt; + dr *= MathHelper.clamp_float(1F - pierce, 0F, 2F /* we allow up to -1 armor piercing, which can double effective armor values */); + + return amount *= (1F - dr); + } + + public static float[] getDTDR(EntityLivingBase entity, DamageSource damage, float amount, float pierceDT, float pierce) { + + float dt = 0; + float dr = 0; + + if(entity instanceof IResistanceProvider) { + IResistanceProvider irp = (IResistanceProvider) entity; + float[] res = irp.getCurrentDTDR(damage, amount, pierceDT, pierce); + dt += res[0]; + dr += res[1]; + } + + /// SET HANDLING /// + Quartet wornSet = new Quartet( + entity.getEquipmentInSlot(4) != null ? entity.getEquipmentInSlot(4).getItem() : null, + entity.getEquipmentInSlot(3) != null ? entity.getEquipmentInSlot(3).getItem() : null, + entity.getEquipmentInSlot(2) != null ? entity.getEquipmentInSlot(2).getItem() : null, + entity.getEquipmentInSlot(1) != null ? entity.getEquipmentInSlot(1).getItem() : null + ); + + ResistanceStats setResistance = setStats.get(wornSet); + if(setResistance != null) { + Resistance res = setResistance.getResistance(damage); + if(res != null) { + dt += res.threshold; + dr += res.resistance; + } + } + + /// ARMOR /// + for(int i = 1; i <= 4; i++) { + ItemStack armor = entity.getEquipmentInSlot(i); + if(armor == null) continue; + ResistanceStats stats = itemStats.get(armor.getItem()); + if(stats == null) continue; + Resistance res = stats.getResistance(damage); + if(res == null) continue; + dt += res.threshold; + dr += res.resistance; + } + + /// ENTITY CLASS HANDLING /// + ResistanceStats innateResistance = entityStats.get(entity.getClass()); + if(innateResistance != null) { + Resistance res = innateResistance.getResistance(damage); + if(res != null) { + dt += res.threshold; + dr += res.resistance; + } + } + + return new float[] {dt, dr}; + } + + public static class ResistanceStats { + + public HashMap exactResistances = new HashMap(); + public HashMap categoryResistances = new HashMap(); + public Resistance otherResistance; + + public Resistance getResistance(DamageSource source) { + Resistance exact = exactResistances.get(source.damageType); + if(exact != null) return exact; + Resistance category = categoryResistances.get(typeToCategory(source)); + if(category != null) return category; + return source.isUnblockable() ? null : otherResistance; + } + + public ResistanceStats addExact(String type, float threshold, float resistance) { exactResistances.put(type, new Resistance(threshold, resistance)); return this; } + public ResistanceStats addCategory(String type, float threshold, float resistance) { categoryResistances.put(type, new Resistance(threshold, resistance)); return this; } + public ResistanceStats setOther(float threshold, float resistance) { otherResistance = new Resistance(threshold, resistance); return this; } + } + + public static class Resistance { + + public float threshold; + public float resistance; + + public Resistance(float threshold, float resistance) { + this.threshold = threshold; + this.resistance = resistance; + } + } +} diff --git a/src/main/java/com/hbm/util/Either.java b/src/main/java/com/hbm/util/Either.java new file mode 100644 index 000000000..be2e5da75 --- /dev/null +++ b/src/main/java/com/hbm/util/Either.java @@ -0,0 +1,77 @@ +package com.hbm.util; + +import java.util.function.Function; + +/** + * Represents a value that is either of generic type L or R + * @author martinthedragon + */ +@SuppressWarnings("unchecked") +public final class Either { + + public static Either left(L value) { + return new Either<>(value, true); + } + + public static Either right(R value) { + return new Either<>(value, false); + } + + private final Object value; + private final boolean isLeft; + + private Either(Object value, boolean isLeft) { + this.value = value; + this.isLeft = isLeft; + } + + public boolean isLeft() { + return isLeft; + } + + public boolean isRight() { + return !isLeft; + } + + public L left() { + if(isLeft) + return (L) value; + else + throw new IllegalStateException("Tried accessing value as the L type, but was R type"); + } + + public R right() { + if(!isLeft) + return (R) value; + else + throw new IllegalStateException("Tried accessing value as the R type, but was L type"); + } + + public L leftOrNull() { + return isLeft ? (L) value : null; + } + + public R rightOrNull() { + return !isLeft ? (R) value : null; + } + + public V cast() { + return (V) value; + } + + public T run(Function leftFunc, Function rightFunc) { + return isLeft ? leftFunc.apply((L) value) : rightFunc.apply((R) value); + } + + public T runLeftOrNull(Function func) { + return isLeft ? func.apply((L) value) : null; + } + + public T runRightOrNull(Function func) { + return !isLeft ? func.apply((R) value) : null; + } + + public T runCasting(Function func) { + return func.apply((V) value); + } +} diff --git a/src/main/java/com/hbm/util/EntityDamageUtil.java b/src/main/java/com/hbm/util/EntityDamageUtil.java index f7cb5d36e..95193b3b4 100644 --- a/src/main/java/com/hbm/util/EntityDamageUtil.java +++ b/src/main/java/com/hbm/util/EntityDamageUtil.java @@ -1,67 +1,458 @@ package com.hbm.util; -import java.lang.reflect.Field; - -import com.hbm.handler.ArmorModHandler; -import com.hbm.items.ModItems; +import java.lang.reflect.Method; +import java.util.List; import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.passive.EntityTameable; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.potion.Potion; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; -import net.minecraft.util.EntityDamageSource; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeHooks; public class EntityDamageUtil { - + public static boolean attackEntityFromIgnoreIFrame(Entity victim, DamageSource src, float damage) { if(!victim.attackEntityFrom(src, damage)) { - try { - Field lastDamage = ReflectionHelper.findField(EntityLivingBase.class, "lastDamage", "field_110153_bc"); - - float dmg = (float) damage + lastDamage.getFloat(victim); - - return victim.attackEntityFrom(src, dmg); - } catch (Exception x) { - return false; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + + if(living.hurtResistantTime > living.maxHurtResistantTime / 2.0F) { + damage += living.lastDamage; + } } + return victim.attackEntityFrom(src, damage); } else { return true; } } - - public static float getLastDamage(Entity victim) { - - try { - Field lastDamage = ReflectionHelper.findField(EntityLivingBase.class, "lastDamage", "field_110153_bc"); - return lastDamage.getFloat(victim); - } catch(Exception x) { - return 0F; + public static boolean attackEntityFromNT(EntityLivingBase living, DamageSource source, float amount, boolean ignoreIFrame, boolean allowSpecialCancel, double knockbackMultiplier, float pierceDT, float pierce) { + if(living instanceof EntityPlayerMP && source.getEntity() instanceof EntityPlayer) { + EntityPlayerMP playerMP = (EntityPlayerMP) living; + EntityPlayer attacker = (EntityPlayer) source.getEntity(); + if(!playerMP.canAttackPlayer(attacker)) return false; //handles wack-ass no PVP rule as well as scoreboard friendly fire + } + DamageResistanceHandler.setup(pierceDT, pierce); + boolean ret = attackEntityFromNTInternal(living, source, amount, ignoreIFrame, allowSpecialCancel, knockbackMultiplier); + //boolean ret = living.attackEntityFrom(source, amount); + DamageResistanceHandler.reset(); + return ret; + } + + private static boolean attackEntityFromNTInternal(EntityLivingBase living, DamageSource source, float amount, boolean ignoreIFrame, boolean allowSpecialCancel, double knockbackMultiplier) { + if(ForgeHooks.onLivingAttack(living, source, amount) && allowSpecialCancel) return false; + if(living.isEntityInvulnerable()) return false; + if(living.worldObj.isRemote) return false; + if(living instanceof EntityPlayer && ((EntityPlayer) living).capabilities.disableDamage && !source.canHarmInCreative()) return false; + + living.entityAge = 0; + if(living.getHealth() <= 0.0F) return false; + if(source.isFireDamage() && living.isPotionActive(Potion.fireResistance)) return false; + + living.limbSwingAmount = 1.5F; + boolean didAttackRegister = true; + + if(living.hurtResistantTime > living.maxHurtResistantTime / 2.0F && !ignoreIFrame) { + if(amount <= living.lastDamage) { return false; } + damageEntityNT(living, source, amount - living.lastDamage); + living.lastDamage = amount; + didAttackRegister = false; + } else { + living.lastDamage = amount; + living.prevHealth = living.getHealth(); + living.hurtResistantTime = living.maxHurtResistantTime; + damageEntityNT(living, source, amount); + living.hurtTime = living.maxHurtTime = 10; + } + + living.attackedAtYaw = 0.0F; + Entity entity = source.getEntity(); + + if(entity != null) { + if(entity instanceof EntityLivingBase) { + living.setRevengeTarget((EntityLivingBase) entity); + } + + if(entity instanceof EntityPlayer) { + living.recentlyHit = 100; + living.attackingPlayer = (EntityPlayer) entity; + } else if(entity instanceof EntityTameable) { + EntityTameable entitywolf = (EntityTameable) entity; + + if(entitywolf.isTamed()) { + living.recentlyHit = 100; + living.attackingPlayer = null; + } + } + } + + if(didAttackRegister) { + living.worldObj.setEntityState(living, (byte) 2); + + if(source != DamageSource.drown) setBeenAttacked(living); //# + + if(entity != null) { + double deltaX = entity.posX - living.posX; + double deltaZ; + + for(deltaZ = entity.posZ - living.posZ; deltaX * deltaX + deltaZ * deltaZ < 1.0E-4D; deltaZ = (Math.random() - Math.random()) * 0.01D) { + deltaX = (Math.random() - Math.random()) * 0.01D; + } + + living.attackedAtYaw = (float) (Math.atan2(deltaZ, deltaX) * 180.0D / Math.PI) - living.rotationYaw; + if(knockbackMultiplier > 0) knockBack(living, entity, amount, deltaX, deltaZ, knockbackMultiplier); + } else { + living.attackedAtYaw = (float) ((int) (Math.random() * 2.0D) * 180); + } + } + + String sound; + + if(living.getHealth() <= 0.0F) { + sound = getDeathSound(living); + if(didAttackRegister && sound != null) living.playSound(sound, getSoundVolume(living), getSoundPitch(living)); //# + living.onDeath(source); + } else { + sound = getHurtSound(living); + if(didAttackRegister && sound != null) living.playSound(sound, getSoundVolume(living), getSoundPitch(living)); //# + } + + return true; + } + + public static void knockBack(EntityLivingBase living, Entity attacker, float damage, double motionX, double motionZ, double multiplier) { + if(living.getRNG().nextDouble() >= living.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()) { + living.isAirBorne = true; + double horizontal = Math.sqrt(motionX * motionX + motionZ * motionZ); + double magnitude = 0.4D * multiplier; + living.motionX /= 2.0D; + living.motionY /= 2.0D; + living.motionZ /= 2.0D; + living.motionX -= motionX / horizontal * magnitude; + living.motionY += (double) magnitude; + living.motionZ -= motionZ / horizontal * magnitude; + + if(living.motionY > 0.2D) { + living.motionY = 0.2D * multiplier; + } } } - - public static boolean wasAttackedByV1(DamageSource source) { - if(source instanceof EntityDamageSource) { - Entity attacker = ((EntityDamageSource) source).getEntity(); - - if(attacker instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) attacker; - ItemStack chestplate = player.inventory.armorInventory[2]; - - if(chestplate != null && ArmorModHandler.hasMods(chestplate)) { - ItemStack[] mods = ArmorModHandler.pryMods(chestplate); - - if(mods[ArmorModHandler.extra] != null && mods[ArmorModHandler.extra].getItem() == ModItems.v1) { - return true; + public static void damageEntityNT(EntityLivingBase living, DamageSource source, float amount) { + if(!living.isEntityInvulnerable()) { + amount = ForgeHooks.onLivingHurt(living, source, amount); + if(amount <= 0) return; + + amount = applyArmorCalculationsNT(living, source, amount); + amount = applyPotionDamageCalculations(living, source, amount); + + float originalAmount = amount; + amount = Math.max(amount - living.getAbsorptionAmount(), 0.0F); + living.setAbsorptionAmount(living.getAbsorptionAmount() - (originalAmount - amount)); + + if(amount != 0.0F) { + float health = living.getHealth(); + living.setHealth(health - amount); + living.func_110142_aN().func_94547_a(source, health, amount); + living.setAbsorptionAmount(living.getAbsorptionAmount() - amount); + } + } + } + + public static float applyArmorCalculationsNT(EntityLivingBase living, DamageSource source, float amount) { + if(!source.isUnblockable()) { + float i = 25F - (living.getTotalArmorValue() * (1 - DamageResistanceHandler.currentPDR)); + float armor = amount * (float) i; + damageArmorNT(living, amount); + amount = armor / 25.0F; + } + + return amount; + } + + public static void damageArmorNT(EntityLivingBase living, float amount) { + + } + + /** Currently just a copy of the vanilla damage code */ + @Deprecated public static boolean attackEntityFromNT(EntityLivingBase living, DamageSource source, float amount) { + + if(ForgeHooks.onLivingAttack(living, source, amount)) + return false; + if(living.isEntityInvulnerable()) { + return false; + } else if(living.worldObj.isRemote) { + return false; + } else { + living.entityAge = 0; + + if(living.getHealth() <= 0.0F) { + return false; + } else if(source.isFireDamage() && living.isPotionActive(Potion.fireResistance)) { + return false; + } else { + if((source == DamageSource.anvil || source == DamageSource.fallingBlock) && living.getEquipmentInSlot(4) != null) { + living.getEquipmentInSlot(4).damageItem((int) (amount * 4.0F + living.getRNG().nextFloat() * amount * 2.0F), living); + amount *= 0.75F; + } + + living.limbSwingAmount = 1.5F; + boolean flag = true; + + if((float) living.hurtResistantTime > (float) living.maxHurtResistantTime / 2.0F) { + if(amount <= living.lastDamage) { + return false; + } + + damageEntity(living, source, amount - living.lastDamage); //# + living.lastDamage = amount; + flag = false; + } else { + living.lastDamage = amount; + living.prevHealth = living.getHealth(); + living.hurtResistantTime = living.maxHurtResistantTime; + damageEntity(living, source, amount); //# + living.hurtTime = living.maxHurtTime = 10; + } + + living.attackedAtYaw = 0.0F; + Entity entity = source.getEntity(); + + if(entity != null) { + if(entity instanceof EntityLivingBase) { + living.setRevengeTarget((EntityLivingBase) entity); + } + + if(entity instanceof EntityPlayer) { + living.recentlyHit = 100; + living.attackingPlayer = (EntityPlayer) entity; + } else if(entity instanceof EntityTameable) { + EntityTameable entitywolf = (EntityTameable) entity; + + if(entitywolf.isTamed()) { + living.recentlyHit = 100; + living.attackingPlayer = null; + } + } + } + + if(flag) { + living.worldObj.setEntityState(living, (byte) 2); + + if(source != DamageSource.drown) { + setBeenAttacked(living); //# + } + + if(entity != null) { + double d1 = entity.posX - living.posX; + double d0; + + for(d0 = entity.posZ - living.posZ; d1 * d1 + d0 * d0 < 1.0E-4D; d0 = (Math.random() - Math.random()) * 0.01D) { + d1 = (Math.random() - Math.random()) * 0.01D; + } + + living.attackedAtYaw = (float) (Math.atan2(d0, d1) * 180.0D / Math.PI) - living.rotationYaw; + living.knockBack(entity, amount, d1, d0); + } else { + living.attackedAtYaw = (float) ((int) (Math.random() * 2.0D) * 180); + } + } + + String s; + + if(living.getHealth() <= 0.0F) { + s = getDeathSound(living); //# + + if(flag && s != null) { + living.playSound(s, getSoundVolume(living), getSoundPitch(living)); //# + } + + living.onDeath(source); + } else { + s = getHurtSound(living); //# + + if(flag && s != null) { + living.playSound(s, getSoundVolume(living), getSoundPitch(living)); //# + } + } + + return true; + } + } + } + + // in this household we drink gasoline and sniff glue + public static String getDeathSound(EntityLivingBase living) { + Method m = ReflectionHelper.findMethod(EntityLivingBase.class, living, new String[] {"func_70673_aS", "getDeathSound"}); + try { return (String) m.invoke(living); } catch(Exception e) { } return "game.neutral.die"; + } + + public static String getHurtSound(EntityLivingBase living) { + Method m = ReflectionHelper.findMethod(EntityLivingBase.class, living, new String[] {"func_70621_aR", "getHurtSound"}); + try { return (String) m.invoke(living); } catch(Exception e) { } return "game.neutral.hurt"; + } + + public static float getSoundVolume(EntityLivingBase living) { + Method m = ReflectionHelper.findMethod(EntityLivingBase.class, living, new String[] {"func_70599_aP", "getSoundVolume"}); + try { return (float) m.invoke(living); } catch(Exception e) { } return 1F; + } + + public static float getSoundPitch(EntityLivingBase living) { + Method m = ReflectionHelper.findMethod(EntityLivingBase.class, living, new String[] {"func_70647_i", "getSoundPitch"}); + try { return (float) m.invoke(living); } catch(Exception e) { } return 1F; + } + + @Deprecated public static void damageEntity(EntityLivingBase living, DamageSource source, float amount) { + if(!living.isEntityInvulnerable()) { + amount = ForgeHooks.onLivingHurt(living, source, amount); + if(amount <= 0) + return; + amount = applyArmorCalculations(living, source, amount); //# + amount = applyPotionDamageCalculations(living, source, amount); //# + float f1 = amount; + amount = Math.max(amount - living.getAbsorptionAmount(), 0.0F); + living.setAbsorptionAmount(living.getAbsorptionAmount() - (f1 - amount)); + + if(amount != 0.0F) { + float f2 = living.getHealth(); + living.setHealth(f2 - amount); + living.func_110142_aN().func_94547_a(source, f2, amount); + living.setAbsorptionAmount(living.getAbsorptionAmount() - amount); + } + } + } + + @Deprecated public static float applyArmorCalculations(EntityLivingBase living, DamageSource source, float amount) { + if(!source.isUnblockable()) { + int i = 25 - living.getTotalArmorValue(); + float armor = amount * (float) i; + //living.damageArmor(amount); //unused + amount = armor / 25.0F; + } + + return amount; + } + + public static float applyPotionDamageCalculations(EntityLivingBase living, DamageSource source, float amount) { + if(source.isDamageAbsolute()) { + return amount; + } else { + + int resistance; + int j; + float f1; + + if(living.isPotionActive(Potion.resistance) && source != DamageSource.outOfWorld) { + resistance = (living.getActivePotionEffect(Potion.resistance).getAmplifier() + 1) * 5; + j = 25 - resistance; + f1 = amount * (float) j; + amount = f1 / 25.0F; + } + + if(amount <= 0.0F) { + return 0.0F; + } else { + + resistance = EnchantmentHelper.getEnchantmentModifierDamage(living.getLastActiveItems(), source); + + if(resistance > 20) { + resistance = 20; + } + + if(resistance > 0 && resistance <= 20) { + j = 25 - resistance; + f1 = amount * (float) j; + amount = f1 / 25.0F; + } + + return amount; + } + } + } + + public static void setBeenAttacked(EntityLivingBase living) { + living.velocityChanged = living.getRNG().nextDouble() >= living.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue(); + } + + public static MovingObjectPosition getMouseOver(EntityPlayer attacker, double reach) { + + World world = attacker.worldObj; + MovingObjectPosition objectMouseOver = null; + Entity pointedEntity = null; + + objectMouseOver = rayTrace(attacker, reach, 1F); + + Vec3 pos = getPosition(attacker); + Vec3 look = attacker.getLook(1F); + Vec3 end = pos.addVector(look.xCoord * reach, look.yCoord * reach, look.zCoord * reach); + Vec3 hitvec = null; + float grace = 1.0F; + List list = world.getEntitiesWithinAABBExcludingEntity(attacker, attacker.boundingBox.addCoord(look.xCoord * reach, look.yCoord * reach, look.zCoord * reach).expand(grace, grace, grace)); + + double closest = reach; + + for(int i = 0; i < list.size(); ++i) { + Entity entity = (Entity) list.get(i); + + if(entity.canBeCollidedWith()) { + + float borderSize = entity.getCollisionBorderSize(); + AxisAlignedBB axisalignedbb = entity.boundingBox.expand(borderSize, borderSize, borderSize); + MovingObjectPosition movingobjectposition = axisalignedbb.calculateIntercept(pos, end); + + if(axisalignedbb.isVecInside(pos)) { + if(0.0D <= closest) { + pointedEntity = entity; + hitvec = movingobjectposition == null ? pos : movingobjectposition.hitVec; + closest = 0.0D; + } + + } else if(movingobjectposition != null) { + double dist = pos.distanceTo(movingobjectposition.hitVec); + + if(dist < closest || closest == 0.0D) { + if(entity == attacker.ridingEntity && !entity.canRiderInteract()) { + if(closest == 0.0D) { + pointedEntity = entity; + hitvec = movingobjectposition.hitVec; + } + } else { + pointedEntity = entity; + hitvec = movingobjectposition.hitVec; + closest = dist; + } } } } } - - return false; + + if(pointedEntity != null && (closest < reach || objectMouseOver == null)) { + objectMouseOver = new MovingObjectPosition(pointedEntity, hitvec); + } + + return objectMouseOver; + } + + public static MovingObjectPosition rayTrace(EntityPlayer player, double dist, float interp) { + Vec3 pos = getPosition(player); + Vec3 look = player.getLook(interp); + Vec3 end = pos.addVector(look.xCoord * dist, look.yCoord * dist, look.zCoord * dist); + return player.worldObj.func_147447_a(pos, end, false, false, true); + } + + public static Vec3 getPosition(EntityPlayer player) { + return Vec3.createVectorHelper(player.posX, player.posY + player.getEyeHeight(), player.posZ); } } diff --git a/src/main/java/com/hbm/util/GameRuleHelper.java b/src/main/java/com/hbm/util/GameRuleHelper.java index 0811aa2a1..1551d02d1 100644 --- a/src/main/java/com/hbm/util/GameRuleHelper.java +++ b/src/main/java/com/hbm/util/GameRuleHelper.java @@ -1,37 +1,54 @@ package com.hbm.util; +import com.hbm.tileentity.machine.rbmk.RBMKDials; import net.minecraft.util.MathHelper; +import net.minecraft.world.GameRules; import net.minecraft.world.World; public class GameRuleHelper { - - public static double getClampedDouble(World world, String rule, double def, double min, double max) { - return MathHelper.clamp_double(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(rule), def), min, max); - } - - public static double getDoubleMinimum(World world, String rule, double def, double min) { - return Math.max(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(rule), def), min); - } - - public static int getIntegerMinimum(World world, String rule, int def, int min) { - return Math.max(GameRuleHelper.parseInt(world.getGameRules().getGameRuleStringValue(rule), def), min); + + public static double getClampedDouble(World world, RBMKDials.RBMKKeys rule, double min, double max) { + return MathHelper.clamp_double(GameRuleHelper.parseDouble(world, world.getGameRules().getGameRuleStringValue(rule.keyString), (double) rule.defValue), min, max); } - public static double parseDouble(String s, double def) { - + public static int getClampedInt(World world, RBMKDials.RBMKKeys rule, int min, int max) { + return MathHelper.clamp_int(GameRuleHelper.parseInt(world, world.getGameRules().getGameRuleStringValue(rule.keyString), (int) rule.defValue), min, max); + } + + public static double getDoubleMinimum(World world, RBMKDials.RBMKKeys rule, double min) { + return Math.max(GameRuleHelper.parseDouble(world, world.getGameRules().getGameRuleStringValue(rule.keyString), (double) rule.defValue), min); + } + + public static int getIntegerMinimum(World world, RBMKDials.RBMKKeys rule, int min) { + return Math.max(GameRuleHelper.parseInt(world, world.getGameRules().getGameRuleStringValue(rule.keyString), (int) rule.defValue), min); + } + + public static double parseDouble(World world, String s, double def) { + + GameRules rules = world.getGameRules(); + if(s.isEmpty() && !rules.hasRule(s)) { + rules.addGameRule(s, String.valueOf(def)); + return def; + } + try { return Double.parseDouble(s); } catch(Exception ex) { } - + return def; } - public static int parseInt(String s, int def) { - + public static int parseInt(World world, String s, int def) { + + GameRules rules = world.getGameRules(); + if(s.isEmpty() && !rules.hasRule(s)) { + rules.addGameRule(s, String.valueOf(def)); + } + try { return Integer.parseInt(s); } catch(Exception ex) { } - + return def; } diff --git a/src/main/java/com/hbm/util/HashedSet.java b/src/main/java/com/hbm/util/HashedSet.java new file mode 100644 index 000000000..72ab2c102 --- /dev/null +++ b/src/main/java/com/hbm/util/HashedSet.java @@ -0,0 +1,143 @@ +package com.hbm.util; + +import org.apache.commons.lang3.NotImplementedException; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map.Entry; +import java.util.Set; + +/** + * A crude implementation of the HashSet with a few key differences: + * - instead of being stored as the key, the objects are stored as values in the underlying HashMap with the hash being the key + * - consequently, things with matching hash are considered the same, skipping the equals check + * - no equals check means that collisions are possible, so be careful + * - the underlying HashMap is accessible, which means that the instances can be grabbed out of the HashedSet if a hash is supplied + * + * This sack of crap was only intended for the drone request network code + * + * @author hbm + * + * @param + */ +public class HashedSet implements Set { + + HashMap map = new HashMap(); + + public static class HashedIterator implements Iterator { + + private Iterator> iterator; + + public HashedIterator(HashedSet set) { + this.iterator = set.map.entrySet().iterator(); + } + + @Override + public boolean hasNext() { + return this.iterator.hasNext(); + } + + @Override + public Object next() { + return this.iterator.next().getValue(); + } + + @Override + public void remove() { + this.iterator.remove(); + } + } + + public HashedSet() { } + + public HashedSet(Set reachableNodes) { + this.addAll(reachableNodes); + } + + public HashMap getMap() { + return this.map; + } + + @Override + public boolean add(Object e) { + boolean contains = this.contains(e); + this.map.put(e.hashCode(), (T) e); + return contains; + } + + @Override + public boolean addAll(Collection c) { + boolean ret = false; + for(Object o : c) if(add(o)) ret = true; + return ret; + } + + @Override + public void clear() { + this.map.clear(); + } + + @Override + public boolean contains(Object o) { + return this.map.containsKey(o.hashCode()); + } + + @Override + public boolean containsAll(Collection c) { + + for(Object o : c) { + if(!this.contains(o)) return false; + } + + return true; + } + + @Override + public boolean isEmpty() { + return this.map.isEmpty(); + } + + @Override + public Iterator iterator() { + return new HashedIterator(this); + } + + @Override + public boolean remove(Object o) { + T obj = this.map.get(o.hashCode()); + boolean rem = false; + + if(obj != null) { + rem = true; + this.map.remove(o.hashCode()); + } + + return rem; + } + + @Override + public boolean removeAll(Collection c) { + return false; + } + + @Override + public boolean retainAll(Collection c) { + throw new NotImplementedException("Fuck you"); + } + + @Override + public int size() { + return this.map.size(); + } + + @Override + public Object[] toArray() { + throw new NotImplementedException("Fuck you"); + } + + @Override + public Object[] toArray(Object[] a) { + throw new NotImplementedException("Fuck you"); + } +} diff --git a/src/main/java/com/hbm/util/I18nUtil.java b/src/main/java/com/hbm/util/I18nUtil.java index a4460f6d9..13d4a2d36 100644 --- a/src/main/java/com/hbm/util/I18nUtil.java +++ b/src/main/java/com/hbm/util/I18nUtil.java @@ -1,13 +1,13 @@ package com.hbm.util; -import java.util.ArrayList; -import java.util.List; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.resources.I18n; +import java.util.ArrayList; +import java.util.List; + @SideOnly(Side.CLIENT) public class I18nUtil { @@ -32,7 +32,7 @@ public class I18nUtil { public static String[] resolveKeyArray(String s, Object... args) { return resolveKey(s, args).split("\\$"); } - + /** * The same as autoBreak, but it also respects NTM's break character ($) for manual line breaking in addition to the automatic ones * @param fontRenderer @@ -45,14 +45,14 @@ public class I18nUtil { String[] paragraphs = text.split("\\$"); List lines = new ArrayList(); - + for(String paragraph : paragraphs) { lines.addAll(autoBreak(fontRenderer, paragraph, width)); } - + return lines; } - + /** * Turns one string into a list of strings, cutting sentences up to fit within the defined width if they were rendered in a GUI * @param fontRenderer @@ -66,17 +66,17 @@ public class I18nUtil { List lines = new ArrayList(); //split the text by all spaces String[] words = text.split(" "); - + //add the first word to the first line, no matter what lines.add(words[0]); //starting indent is the width of the first word int indent = fontRenderer.getStringWidth(words[0]); - + for(int w = 1; w < words.length; w++) { - + //increment the indent by the width of the next word + leading space indent += fontRenderer.getStringWidth(" " + words[w]); - + //if the indent is within bounds if(indent <= width) { //add the next word to the last line (i.e. the one in question) @@ -88,7 +88,7 @@ public class I18nUtil { indent = fontRenderer.getStringWidth(words[w]); } } - + return lines; } } diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index 8efc4be37..3a8135f62 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -1,19 +1,29 @@ package com.hbm.util; -import java.util.List; - import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput; - +import com.hbm.tileentity.machine.TileEntityFurnaceBrick; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; import net.minecraftforge.oredict.OreDictionary; +import java.util.List; + //'t was about time public class InventoryUtil { + public static int[] masquerade(ISidedInventory sided, int side) { + + if(sided instanceof TileEntityFurnace) return new int[] {1, 0}; + if(sided instanceof TileEntityFurnaceBrick) return new int[] {1, 0, 3}; + + return sided.getAccessibleSlotsFromSide(side); + } + /** * Will attempt to cram a much of the given itemstack into the stack array as possible * The rest will be returned @@ -24,24 +34,24 @@ public class InventoryUtil { * @return the remainder of the stack that could not have been added, can return null */ public static ItemStack tryAddItemToInventory(ItemStack[] inv, int start, int end, ItemStack stack) { - + ItemStack rem = tryAddItemToExistingStack(inv, start, end, stack); - + if(rem == null) return null; - + boolean didAdd = tryAddItemToNewSlot(inv, start, end, rem); - + if(didAdd) return null; else return rem; } - + public static ItemStack tryAddItemToInventory(ItemStack[] inv, ItemStack stack) { return tryAddItemToInventory(inv, 0, inv.length - 1, stack); } - + /** * Functionally equal to tryAddItemToInventory, but will not try to create new stacks in empty slots * @param inv @@ -51,29 +61,29 @@ public class InventoryUtil { * @return */ public static ItemStack tryAddItemToExistingStack(ItemStack[] inv, int start, int end, ItemStack stack) { - + if(stack == null || stack.stackSize == 0) return null; - + for(int i = start; i <= end; i++) { if(doesStackDataMatch(inv[i], stack)) { - + int transfer = Math.min(stack.stackSize, inv[i].getMaxStackSize() - inv[i].stackSize); - + if(transfer > 0) { inv[i].stackSize += transfer; stack.stackSize -= transfer; - + if(stack.stackSize == 0) return null; } } } - + return stack; } - + /** * Will place the stack in the first empty slot * @param inv @@ -83,21 +93,21 @@ public class InventoryUtil { * @return whether the stack could be added or not */ public static boolean tryAddItemToNewSlot(ItemStack[] inv, int start, int end, ItemStack stack) { - + if(stack == null || stack.stackSize == 0) return true; - + for(int i = start; i <= end; i++) { - + if(inv[i] == null) { inv[i] = stack; return true; } } - + return false; } - + /** * Much of the same but with an ISidedInventory instance instead of a slot array * @param inv @@ -107,86 +117,86 @@ public class InventoryUtil { * @return */ public static ItemStack tryAddItemToInventory(IInventory inv, int start, int end, ItemStack stack) { - + ItemStack rem = tryAddItemToExistingStack(inv, start, end, stack); - + if(rem == null) return null; - + boolean didAdd = tryAddItemToNewSlot(inv, start, end, rem); - + if(didAdd) return null; else return rem; } - + public static ItemStack tryAddItemToExistingStack(IInventory inv, int start, int end, ItemStack stack) { - + if(stack == null || stack.stackSize == 0) return null; - + for(int i = start; i <= end; i++) { if(doesStackDataMatch(inv.getStackInSlot(i), stack)) { - + int transfer = Math.min(stack.stackSize, inv.getStackInSlot(i).getMaxStackSize() - inv.getStackInSlot(i).stackSize); - + if(transfer > 0) { inv.getStackInSlot(i).stackSize += transfer; stack.stackSize -= transfer; - + if(stack.stackSize == 0) return null; } } } - + return stack; } - + public static boolean tryAddItemToNewSlot(IInventory inv, int start, int end, ItemStack stack) { - + if(stack == null || stack.stackSize == 0) return true; - + for(int i = start; i <= end; i++) { - + if(inv.getStackInSlot(i) == null) { inv.setInventorySlotContents(i, stack); return true; } } - + return false; } - + public static boolean tryConsumeAStack(ItemStack[] inv, int start, int end, AStack stack) { - + if(stack == null) return true; - + AStack copy = stack.copy(); - + for(int i = start; i <= end; i++) { ItemStack in = inv[i]; - + if(stack.matchesRecipe(in, true)) { int size = Math.min(copy.stacksize, in.stackSize); - + in.stackSize -= size; copy.stacksize -= size; - + if(in.stackSize == 0) inv[i] = null; if(copy.stacksize == 0) return true; } } - + return false; } - + /** * Compares item, metadata and NBT data of two stacks. Also handles null values! * @param stack1 @@ -194,7 +204,7 @@ public class InventoryUtil { * @return */ public static boolean doesStackDataMatch(ItemStack stack1, ItemStack stack2) { - + if(stack1 == null && stack2 == null) return true; if(stack1 == null && stack2 != null) return false; if(stack1 != null && stack2 == null) return false; @@ -203,10 +213,10 @@ public class InventoryUtil { if(!stack1.hasTagCompound() && !stack2.hasTagCompound()) return true; if(stack1.hasTagCompound() && !stack2.hasTagCompound()) return false; if(!stack1.hasTagCompound() && stack2.hasTagCompound()) return false; - + return stack1.getTagCompound().equals(stack2.getTagCompound()); } - + /** * Checks if a player has matching item stacks in his inventory and removes them if so desired * @param player @@ -215,34 +225,34 @@ public class InventoryUtil { * @return whether the player has the required item stacks or not */ public static boolean doesPlayerHaveAStacks(EntityPlayer player, List stacks, boolean shouldRemove) { - + ItemStack[] original = player.inventory.mainInventory; ItemStack[] inventory = new ItemStack[original.length]; boolean[] modified = new boolean[original.length]; AStack[] input = new AStack[stacks.size()]; - + //first we copy the inputs into an array because 1. it's easier to deal with and 2. we can dick around with the stack sized with no repercussions for(int i = 0; i < input.length; i++) { input[i] = stacks.get(i).copy(); } - + //then we copy the inventory so we can dick around with it as well without making actual modifications to the player's inventory for(int i = 0; i < original.length; i++) { if(original[i] != null) { inventory[i] = original[i].copy(); } } - + //now we go through every ingredient... for(int i = 0; i < input.length; i++) { - + AStack stack = input[i]; - + //...and compare each ingredient to every stack in the inventory for(int j = 0; j < inventory.length; j++) { - + ItemStack inv = inventory[j]; - + //we check if it matches but ignore stack size for now if(stack.matchesRecipe(inv, true)) { //and NOW we care about the stack size @@ -250,29 +260,29 @@ public class InventoryUtil { stack.stacksize -= size; inv.stackSize -= size; modified[j] = true; - + //spent stacks are removed from the equation so that we don't cross ourselves later on if(stack.stacksize <= 0) { input[i] = null; break; } - + if(inv.stackSize <= 0) { inventory[j] = null; } } } } - + for(AStack stack : input) { if(stack != null) { return false; } } - + if(shouldRemove) { for(int i = 0; i < original.length; i++) { - + if(inventory[i] != null && inventory[i].stackSize <= 0) { original[i] = null; } else { @@ -280,12 +290,12 @@ public class InventoryUtil { } } } - + return true; } - + public static void giveChanceStacksToPlayer(EntityPlayer player, List stacks) { - + for(AnvilOutput out : stacks) { if(out.chance == 1.0F || player.getRNG().nextFloat() < out.chance) { if(!player.inventory.addItemStackToInventory(out.stack.copy())) { @@ -294,23 +304,23 @@ public class InventoryUtil { } } } - + public static boolean hasOreDictMatches(EntityPlayer player, String dict, int count) { return countOreDictMatches(player, dict) >= count; } - + public static int countOreDictMatches(EntityPlayer player, String dict) { - + int count = 0; - + for(int i = 0; i < player.inventory.mainInventory.length; i++) { - + ItemStack stack = player.inventory.mainInventory[i]; - + if(stack != null) { - + int[] ids = OreDictionary.getOreIDs(stack); - + for(int id : ids) { if(OreDictionary.getOreName(id).equals(dict)) { count += stack.stackSize; @@ -319,23 +329,23 @@ public class InventoryUtil { } } } - + return count; } - + public static void consumeOreDictMatches(EntityPlayer player, String dict, int count) { - + for(int i = 0; i < player.inventory.mainInventory.length; i++) { - + ItemStack stack = player.inventory.mainInventory[i]; - + if(stack != null) { - + int[] ids = OreDictionary.getOreIDs(stack); - + for(int id : ids) { if(OreDictionary.getOreName(id).equals(dict)) { - + int toConsume = Math.min(count, stack.stackSize); player.inventory.decrStackSize(i, toConsume); count -= toConsume; @@ -345,7 +355,7 @@ public class InventoryUtil { } } } - + /** * Turns objects into 2D ItemStack arrays. Index 1: Ingredient slot, index 2: variation (ore dict) * Handles:
@@ -359,13 +369,13 @@ public class InventoryUtil { * @return */ public static ItemStack[][] extractObject(Object o) { - + if(o instanceof ItemStack) { ItemStack[][] stacks = new ItemStack[1][1]; stacks[0][0] = ((ItemStack)o).copy(); return stacks; } - + if(o instanceof ItemStack[]) { ItemStack[] ingredients = (ItemStack[]) o; ItemStack[][] stacks = new ItemStack[ingredients.length][1]; @@ -374,7 +384,11 @@ public class InventoryUtil { } return stacks; } - + + if(o instanceof ItemStack[][]) { + return (ItemStack[][]) o; + } + if(o instanceof AStack) { AStack astack = (AStack) o; ItemStack[] ext = astack.extractForNEI().toArray(new ItemStack[0]); @@ -382,23 +396,23 @@ public class InventoryUtil { stacks[0] = ext; //untested, do java arrays allow that? the capacity set is 0 after all return stacks; } - + if(o instanceof AStack[]) { AStack[] ingredients = (AStack[]) o; ItemStack[][] stacks = new ItemStack[ingredients.length][0]; - + for(int i = 0; i < ingredients.length; i++) { stacks[i] = ingredients[i].extractForNEI().toArray(new ItemStack[0]); } - + return stacks; } - + /* in emergency situations with mixed types where AStacks coexist with NBT dependent ItemStacks, such as for fluid icons */ if(o instanceof Object[]) { Object[] ingredients = (Object[]) o; ItemStack[][] stacks = new ItemStack[ingredients.length][0]; - + for(int i = 0; i < ingredients.length; i++) { Object ingredient = ingredients[i]; @@ -410,67 +424,67 @@ public class InventoryUtil { stacks[i][0] = ((ItemStack) ingredient).copy(); } } - + return stacks; } - + return new ItemStack[0][0]; } - + public static boolean doesArrayHaveIngredients(ItemStack[] array, int start, int end, AStack... ingredients) { ItemStack[] copy = ItemStackUtil.carefulCopyArrayTruncate(array, start, end); - + AStack[] req = new AStack[ingredients.length]; for(int i = 0; i < req.length; i++) { req[i] = ingredients[i] == null ? null : ingredients[i].copy(); } - + for(AStack ingredient : req) { - + if(ingredient == null) continue; - + for(ItemStack input : copy) { - + if(input == null) continue; - + if(ingredient.matchesRecipe(input, true)) { int size = Math.min(input.stackSize, ingredient.stacksize); - + ingredient.stacksize -= size; input.stackSize -= size; - + if(ingredient.stacksize == 0) break; } } - + //we have iterated over the entire input array and removed all matching entries, yet the ingredient is still not exhausted, meaning the input wasn't enough if(ingredient.stacksize > 0) return false; } - + return true; } - + public static boolean doesArrayHaveSpace(ItemStack[] array, int start, int end, ItemStack[] items) { ItemStack[] copy = ItemStackUtil.carefulCopyArrayTruncate(array, start, end); - + for(ItemStack item : items) { - + if(item == null) continue; - + ItemStack remainder = tryAddItemToInventory(copy, item.copy()); if(remainder != null) { return false; } } - + return true; } - + /** * A fixed re-implementation of the original Container.mergeItemStack that repects stack size and slot restrictions. * @param slots @@ -481,7 +495,7 @@ public class InventoryUtil { * @return */ public static boolean mergeItemStack(List slots, ItemStack stack, int start, int end, boolean reverse) { - + boolean success = false; int index = start; @@ -493,7 +507,7 @@ public class InventoryUtil { ItemStack current; if(stack.isStackable()) { - + while(stack.stackSize > 0 && (!reverse && index < end || reverse && index >= start)) { slot = slots.get(index); current = slot.getStack(); @@ -501,10 +515,10 @@ public class InventoryUtil { if(current != null) { int max = Math.min(stack.getMaxStackSize(), slot.getSlotStackLimit()); int toRemove = Math.min(stack.stackSize, max); - + if(slot.isItemValid(ItemStackUtil.carefulCopyWithSize(stack, toRemove)) && current.getItem() == stack.getItem() && (!stack.getHasSubtypes() || stack.getItemDamage() == current.getItemDamage()) && ItemStack.areItemStackTagsEqual(stack, current)) { - + int currentSize = current.stackSize + stack.stackSize; if(currentSize <= max) { stack.stackSize = 0; @@ -540,10 +554,10 @@ public class InventoryUtil { current = slot.getStack(); if(current == null) { - + int max = Math.min(stack.getMaxStackSize(), slot.getSlotStackLimit()); int toRemove = Math.min(stack.stackSize, max); - + if(slot.isItemValid(ItemStackUtil.carefulCopyWithSize(stack, toRemove))) { current = stack.splitStack(toRemove); slot.putStack(current); @@ -561,10 +575,10 @@ public class InventoryUtil { return success; } - + public static int countAStackMatches(ItemStack[] inventory, AStack stack, boolean ignoreSize) { int count = 0; - + for(ItemStack itemStack : inventory) { if(itemStack != null) { if(stack.matchesRecipe(itemStack, true)) { diff --git a/src/main/java/com/hbm/util/ItemStackUtil.java b/src/main/java/com/hbm/util/ItemStackUtil.java index 313e9bad3..c5cb6abd7 100644 --- a/src/main/java/com/hbm/util/ItemStackUtil.java +++ b/src/main/java/com/hbm/util/ItemStackUtil.java @@ -1,31 +1,36 @@ package com.hbm.util; -import java.util.ArrayList; -import java.util.List; - +import net.minecraft.block.Block; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagString; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + public class ItemStackUtil { - + public static ItemStack carefulCopy(ItemStack stack) { if(stack == null) return null; return stack.copy(); } - + public static ItemStack carefulCopyWithSize(ItemStack stack, int size) { if(stack == null) return null; - + ItemStack copy = stack.copy(); copy.stackSize = size; return copy; } - + /** * Runs carefulCopy over the entire ItemStack array. * @param array @@ -34,7 +39,7 @@ public class ItemStackUtil { public static ItemStack[] carefulCopyArray(ItemStack[] array) { return carefulCopyArray(array, 0, array.length - 1); } - + /** * Recreates the ItemStack array and only runs carefulCopy over the supplied range. All other fields remain null. * @param array @@ -45,16 +50,16 @@ public class ItemStackUtil { public static ItemStack[] carefulCopyArray(ItemStack[] array, int start, int end) { if(array == null) return null; - + ItemStack[] copy = new ItemStack[array.length]; - + for(int i = start; i <= end; i++) { copy[i] = carefulCopy(array[i]); } - + return copy; } - + /** * Creates a new array that only contains the copied range. * @param array @@ -65,14 +70,14 @@ public class ItemStackUtil { public static ItemStack[] carefulCopyArrayTruncate(ItemStack[] array, int start, int end) { if(array == null) return null; - + int length = end - start + 1; ItemStack[] copy = new ItemStack[length]; - + for(int i = 0; i < length; i++) { copy[i] = carefulCopy(array[start + i]); } - + return copy; } @@ -83,28 +88,28 @@ public class ItemStackUtil { * @param lines */ public static ItemStack addTooltipToStack(ItemStack stack, String... lines) { - + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); - + NBTTagCompound display = new NBTTagCompound(); NBTTagList lore = new NBTTagList(); - + for(String line : lines) { lore.appendTag(new NBTTagString(EnumChatFormatting.RESET + "" + EnumChatFormatting.GRAY + line)); } - + display.setTag("Lore", lore); stack.stackTagCompound.setTag("display", display); - + return stack; } - + public static void addStacksToNBT(ItemStack stack, ItemStack... stacks) { - + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); - + NBTTagList tags = new NBTTagList(); for(int i = 0; i < stacks.length; i++) { @@ -117,7 +122,7 @@ public class ItemStackUtil { } stack.stackTagCompound.setTag("items", tags); } - + public static ItemStack[] readStacksFromNBT(ItemStack stack, int count) { if(!stack.hasTagCompound()) @@ -138,14 +143,14 @@ public class ItemStackUtil { stacks[slot] = loadedStack; } } - + return stacks; } - + public static ItemStack[] readStacksFromNBT(ItemStack stack) { return readStacksFromNBT(stack, 0); } - + /** * Returns a List of all ore dict names for this stack. Stack cannot be null, list is empty when there are no ore dict entries. * @param stack @@ -153,12 +158,44 @@ public class ItemStackUtil { */ public static List getOreDictNames(ItemStack stack) { List list = new ArrayList(); - + int ids[] = OreDictionary.getOreIDs(stack); for(int i : ids) { list.add(OreDictionary.getOreName(i)); } - + return list; } + + public static void spillItems(World world, int x, int y, int z, Block block, Random rand) { + IInventory tileentityfurnace = (IInventory) world.getTileEntity(x, y, z); + + if(tileentityfurnace != null) { + for(int slot = 0; slot < tileentityfurnace.getSizeInventory(); ++slot) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(slot); + + if(itemstack != null) { + float oX = rand.nextFloat() * 0.8F + 0.1F; + float oY = rand.nextFloat() * 0.8F + 0.1F; + float oZ = rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = rand.nextInt(21) + 10; + if(j1 > itemstack.stackSize) j1 = itemstack.stackSize; + itemstack.stackSize -= j1; + + EntityItem entityitem = new EntityItem(world, x + oX, y + oY, z + oZ, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + + float motion = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * motion; + entityitem.motionY = (float) rand.nextGaussian() * motion + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * motion; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + } } diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index fd95b1c4c..b55cc92c8 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -1,133 +1,160 @@ package com.hbm.util; -import java.util.Random; - import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsPile; import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import com.hbm.items.special.ItemBookLore; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; -import net.minecraft.item.Item; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.Random; + public class LootGenerator { public static void setBlock(World world, int x, int y, int z) { world.setBlock(x, y, z, ModBlocks.deco_loot); } - + public static void addItemWithDeviation(TileEntityLoot loot, Random rand, ItemStack stack, double x, double y, double z) { loot.addItem(stack, x + rand.nextGaussian() * 0.02, y, z + rand.nextGaussian() * 0.02); } - + + public static void lootBooklet(World world, int x, int y, int z) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + loot.addItem(ItemBookLore.createBook("beacon", 12, 0x404040, 0xD637B3), 0, 0, 0);; + } + } + public static void lootCapNuke(World world, int x, int y, int z) { - + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); - + if(loot != null && loot.items.isEmpty()) { - + if(world.rand.nextInt(5) == 0) - loot.addItem(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), -0.25, 0, -0.125); + loot.addItem(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD), -0.25, 0, -0.125); else - loot.addItem(new ItemStack(ModItems.ammo_rocket), -0.25, 0, -0.25); + loot.addItem(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_HEAT), -0.25, 0, -0.25); - for(int i = 0; i < 4; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_nuka, 2), 0.125, i * 0.03125, 0.25); - for(int i = 0; i < 2; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.syringe_metal_stimpak, 1), -0.25, i * 0.03125, 0.25); - for(int i = 0; i < 6; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_nuka, 2), 0.125, i * 0.03125, -0.25); + for(int i = 0; i < 4; i++) addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_nuka, 2), 0.125, i * 0.03125, 0.25); + for(int i = 0; i < 2; i++) addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.syringe_metal_stimpak, 1), -0.25, i * 0.03125, 0.25); + for(int i = 0; i < 6; i++) addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_nuka, 2), 0.125, i * 0.03125, -0.25); } } - + public static void lootMedicine(World world, int x, int y, int z) { - + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); - + if(loot != null && loot.items.isEmpty()) { - for(int i = 0; i < 4; i++) { - int type = world.rand.nextInt(4); - Item syringe = type < 2 ? ModItems.syringe_metal_stimpak : type == 2 ? ModItems.syringe_metal_medx : ModItems.syringe_metal_psycho; - addItemWithDeviation(loot, world.rand, new ItemStack(syringe), 0.125, i * 0.03125, 0.25); - } - - int type = world.rand.nextInt(8); - Item syringe = type < 2 ? ModItems.radaway : type < 4 ? ModItems.radx : type < 7 ? ModItems.iv_blood : ModItems.siox; - addItemWithDeviation(loot, world.rand, new ItemStack(syringe), -0.25, 0, -0.125); + for(int i = 0; i < 4; i++) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MED_SYRINGE, world.rand), 0.125, i * 0.03125, 0.25); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MED_PILLS, world.rand), -0.25, 0, -0.125); } } - + public static void lootCapStash(World world, int x, int y, int z) { - + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); - + if(loot != null && loot.items.isEmpty()) { - + for(int i = -1; i <= 1; i++) { for(int j = -1; j <= 1; j++) { - - int r = world.rand.nextInt(3); - Item cap = r < 2 ? ModItems.cap_nuka : ModItems.cap_sunset; - + int count = world.rand.nextInt(5) + 3; for(int k = 0; k < count; k++) { - - if(cap == ModItems.cap_sunset && world.rand.nextInt(10) == 0) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.cap_star, 1), i * 0.3125, k * 0.03125, j * 0.3125); - else - addItemWithDeviation(loot, world.rand, new ItemStack(cap, 4), i * 0.3125, k * 0.03125, j * 0.3125); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_CAPS, world.rand), i * 0.3125, k * 0.03125, j * 0.3125); } } } } } - + public static void lootMakeshiftGun(World world, int x, int y, int z) { TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); - + if(loot != null && loot.items.isEmpty()) { - - if(world.rand.nextInt(2) == 0) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.gun_lever_action), 0, 0, 0.125); - + + boolean r = world.rand.nextBoolean(); + if(r) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MAKESHIFT_GUN, world.rand), 0.125, 0.025, 0.25); + + if(!r || world.rand.nextBoolean()) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MAKESHIFT_WRENCH, world.rand), -0.25, 0, -0.28125); + int count = world.rand.nextInt(2) + 1; - for(int i = 0; i < count; i++) { - int type = world.rand.nextInt(2); - Item parts = type < 1 ? ModItems.plate_steel : ModItems.mechanism_rifle_1; - addItemWithDeviation(loot, world.rand, new ItemStack(parts), -0.3125, i * 0.03125, 0.3125); - } - + for(int i = 0; i < count; i++) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MAKESHIFT_PLATES, world.rand), -0.25, i * 0.03125, 0.3125); + count = world.rand.nextInt(2) + 2; - for(int i = 0; i < count; i++) - addItemWithDeviation(loot, world.rand, new ItemStack(ModItems.wire_aluminium), 0.3125, i * 0.03125, -0.125); - - int type = world.rand.nextInt(4); - Item tool = type > 2 ? ModItems.wrench : ModItems.screwdriver; - addItemWithDeviation(loot, world.rand, new ItemStack(tool), 0.005, 0, -0.3125); + for(int i = 0; i < count; i++) addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPoolsPile.POOL_PILE_MAKESHIFT_WIRE, world.rand), 0.25, i * 0.03125, 0.1875); } } - + public static void lootNukeStorage(World world, int x, int y, int z) { - + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); - + if(loot != null && loot.items.isEmpty()) { - - boolean memes = world.rand.nextInt(10) == 0; - + for(int i = 0; i < 4; i++) { for(int j = 0; j < 4; j++) { - - if(world.rand.nextBoolean() || memes) { - int type = world.rand.nextInt(11); - AmmoFatman nuke = memes ? AmmoFatman.PUMPKIN : type == 0 ? AmmoFatman.STOCK : type <= 5 ? AmmoFatman.LOW : AmmoFatman.SAFE; - loot.addItem(ModItems.ammo_nuke.stackFromEnum(nuke), -0.375 + i * 0.25, 0, -0.375 + j * 0.25); + + if(world.rand.nextBoolean()) { + loot.addItem(ItemPool.getStack(ItemPoolsPile.POOL_PILE_NUKE_STORAGE, world.rand), -0.375 + i * 0.25, 0, -0.375 + j * 0.25); } } } } } + + public static void lootBones(World world, int x, int y, int z) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + + int limit = world.rand.nextInt(3) + 3; + for(int i = 0; i < limit; i++) { + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_BONES), world.rand), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + } + } + } + + public static void lootGlyphidHive(World world, int x, int y, int z) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + + int limit = world.rand.nextInt(3) + 3; + for(int i = 0; i < limit; i++) { + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_HIVE), world.rand), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + } + } + } + + public static void lootBookLore(World world, int x, int y, int z, ItemStack book) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + addItemWithDeviation(loot, world.rand, book, 0, 0, -0.25); + + int count = world.rand.nextInt(3) + 2; + for(int k = 0; k < count; k++) addItemWithDeviation(loot, world.rand, new ItemStack(Items.book), -0.25, k * 0.03125, 0.25); + + count = world.rand.nextInt(2) + 1; + for(int k = 0; k < count; k++) addItemWithDeviation(loot, world.rand, new ItemStack(Items.paper), 0.25, k * 0.03125, 0.125); + } + } + } diff --git a/src/main/java/com/hbm/util/ParticleUtil.java b/src/main/java/com/hbm/util/ParticleUtil.java index 0428ec19b..b4eca3ac1 100644 --- a/src/main/java/com/hbm/util/ParticleUtil.java +++ b/src/main/java/com/hbm/util/ParticleUtil.java @@ -1,9 +1,8 @@ package com.hbm.util; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; - +import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -17,7 +16,25 @@ public class ParticleUtil { data.setDouble("mX", mX); data.setDouble("mY", mY); data.setDouble("mZ", mZ); - + + if(world.isRemote) { + data.setDouble("posX", x); + data.setDouble("posY", y); + data.setDouble("posZ", z); + MainRegistry.proxy.effectNT(data); + } else { + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 150)); + } + } + + public static void spawnDroneLine(World world, double x, double y, double z, double x0, double y0, double z0, int color) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debugdrone"); + data.setDouble("mX", x0); + data.setDouble("mY", y0); + data.setDouble("mZ", z0); + data.setInteger("color", color); if(world.isRemote) { data.setDouble("posX", x); data.setDouble("posY", y); diff --git a/src/main/java/com/hbm/util/RTGUtil.java b/src/main/java/com/hbm/util/RTGUtil.java index dfa9ce0b0..3d35e1e8b 100644 --- a/src/main/java/com/hbm/util/RTGUtil.java +++ b/src/main/java/com/hbm/util/RTGUtil.java @@ -3,47 +3,46 @@ package com.hbm.util; import com.hbm.config.VersatileConfig; import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.items.machine.ItemRTGPellet; - import net.minecraft.item.ItemStack; public class RTGUtil { - + public static short getPower(ItemRTGPellet fuel, ItemStack stack) { return VersatileConfig.scaleRTGPower() ? ItemRTGPellet.getScaledPower(fuel, stack) : fuel.getHeat(); } - + public static boolean hasHeat(ItemStack[] inventory, int[] rtgSlots) { for(int slot : rtgSlots) { - + if(inventory[slot] == null) continue; - + if(inventory[slot].getItem() instanceof ItemRTGPellet) return true; } - + return false; } - + public static int updateRTGs(ItemStack[] inventory, int[] rtgSlots) { int newHeat = 0; for(int slot : rtgSlots) { - + if(inventory[slot] == null) continue; - + if(!(inventory[slot].getItem() instanceof ItemRTGPellet)) continue; - + final ItemRTGPellet pellet = (ItemRTGPellet) inventory[slot].getItem(); newHeat += getPower(pellet, inventory[slot]); inventory[slot] = ItemRTGPellet.handleDecay(inventory[slot], pellet); } - + return newHeat; - + } - + /** * Gets the lifespan of an RTG based on half-life * @author UFFR diff --git a/src/main/java/com/hbm/util/ShadyUtil.java b/src/main/java/com/hbm/util/ShadyUtil.java new file mode 100644 index 000000000..2c4c1c1f6 --- /dev/null +++ b/src/main/java/com/hbm/util/ShadyUtil.java @@ -0,0 +1,147 @@ +package com.hbm.util; + +import com.google.common.collect.Sets; +import com.hbm.config.GeneralConfig; +import com.hbm.main.ModEventHandler; +import cpw.mods.fml.relauncher.ReflectionHelper; + +import java.lang.reflect.Field; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Base64; +import java.util.HashSet; +import java.util.Random; +import java.util.Set; + +/** + * Handles anything regarding hashes, base64 encoding, etc. Shady looking stuff, that is + * @author hbm + * + */ +public class ShadyUtil { + + //this is a list of UUIDs used for various things, primarily for accessories. + //for a comprehensive list, check RenderAccessoryUtility.java + public static String HbMinecraft = "192af5d7-ed0f-48d8-bd89-9d41af8524f8"; + public static String LPkukin = "937c9804-e11f-4ad2-a5b1-42e62ac73077"; + public static String Dafnik = "3af1c262-61c0-4b12-a4cb-424cc3a9c8c0"; + public static String a20 = "4729b498-a81c-42fd-8acd-20d6d9f759e0"; + public static String LordVertice = "a41df45e-13d8-4677-9398-090d3882b74f"; + public static String CodeRed_ = "912ec334-e920-4dd7-8338-4d9b2d42e0a1"; + public static String dxmaster769 = "62c168b2-d11d-4dbf-9168-c6cea3dcb20e"; + public static String Dr_Nostalgia = "e82684a7-30f1-44d2-ab37-41b342be1bbd"; + public static String Samino2 = "87c3960a-4332-46a0-a929-ef2a488d1cda"; + public static String Hoboy03new = "d7f29d9c-5103-4f6f-88e1-2632ff95973f"; + public static String Dragon59MC = "dc23a304-0f84-4e2d-b47d-84c8d3bfbcdb"; + public static String Steelcourage = "ac49720b-4a9a-4459-a26f-bee92160287a"; + public static String ZippySqrl = "03c20435-a229-489a-a1a1-671b803f7017"; + public static String Schrabby = "3a4a1944-5154-4e67-b80a-b6561e8630b7"; + public static String SweatySwiggs = "5544aa30-b305-4362-b2c1-67349bb499d5"; + public static String Drillgon = "41ebd03f-7a12-42f3-b037-0caa4d6f235b"; + public static String Doctor17 = "e4ab1199-1c22-4f82-a516-c3238bc2d0d1"; + public static String Doctor17PH = "4d0477d7-58da-41a9-a945-e93df8601c5a"; + public static String ShimmeringBlaze = "061bc566-ec74-4307-9614-ac3a70d2ef38"; + public static String FifeMiner = "37e5eb63-b9a2-4735-9007-1c77d703daa3"; + public static String lag_add = "259785a0-20e9-4c63-9286-ac2f93ff528f"; + public static String Pu_238 = "c95fdfd3-bea7-4255-a44b-d21bc3df95e3"; + public static String Tankish = "609268ad-5b34-49c2-abba-a9d83229af03"; + public static String FrizzleFrazzle = "fc4cc2ee-12e8-4097-b26a-1c6cb1b96531"; + public static String the_NCR = "28ae585f-4431-4491-9ce8-3def6126e3c6"; + public static String Barnaby99_x = "b04cf173-cff0-4acd-aa19-3d835224b43d"; + public static String Ma118 = "1121cb7a-8773-491f-8e2b-221290c93d81"; + public static String Adam29Adam29 = "bbae7bfa-0eba-40ac-a0dd-f3b715e73e61"; + public static String Alcater = "0b399a4a-8545-45a1-be3d-ece70d7d48e9"; + public static String ege444 = "42ee978c-442a-4cd8-95b6-29e469b6df10"; + public static String LePeeperSauvage = "433c2bb7-018c-4d51-acfe-27f907432b5e"; + + public static final Set hashes = new HashSet(); + static { + hashes.add("41de5c372b0589bbdb80571e87efa95ea9e34b0d74c6005b8eab495b7afd9994"); + hashes.add("31da6223a100ed348ceb3254ceab67c9cc102cb2a04ac24de0df3ef3479b1036"); + } + + public static final int c = 0x3d; + public static String initializer = "Ur bp7mN-@UFZKXBx9N[/>M'k\\7\\9m3b"; + public static String signature = "dYPq\\YzrNpfn[ZDxdk7PS2jhTY72cZT7SoH|\\WL3dIznfC"; + public static String mask = "E#?V,%l!nb4 ik_wJ@(&k4o>Wq"; + public static String checksum = "dpXt\\Xnr\\Yzm"; + public static String testCase = "dYPq\\YzrNm3FUH;P[ZTq"; + public static String testValue = "WGm?"; + + public static Set contributors = Sets.newHashSet(new String[] { + "06ab7c03-55ce-43f8-9d3c-2850e3c652de", //mustang_rudolf + "5bf069bc-5b46-4179-aafe-35c0a07dee8b", //JMF781 + "ccd9aa1c-26b9-4dde-8f37-b96f8d99de22", //kakseao + }); + + // simple cryptographic utils + public static String encode(String msg) { return Base64.getEncoder().encodeToString(msg.getBytes()); } + public static String decode(String msg) { return new String(Base64.getDecoder().decode(msg)); } + + public static String offset(String msg, int o) { + byte[] bytes = msg.getBytes(); + for(int i = 0; i < bytes.length; i++) { + bytes[i] += o; + } + return new String(bytes); + } + + /** Encryptor for the h-cat answer strings */ + public static String smoosh(String s1, String s2, String s3, String s4) { + + Random rand = new Random(); + String s = ""; + + byte[] b1 = s1.getBytes(); + byte[] b2 = s2.getBytes(); + byte[] b3 = s3.getBytes(); + byte[] b4 = s4.getBytes(); + + if(b1.length == 0 || b2.length == 0 || b3.length == 0 || b4.length == 0) return ""; + + s += s1; + rand.setSeed(b1[0]); + s += rand.nextInt(0xffffff); + s += s2; + rand.setSeed(rand.nextInt(0xffffff) + b2[0]); + rand.setSeed(b2[0]); + s += rand.nextInt(0xffffff); + s += s3; + rand.setSeed(rand.nextInt(0xffffff) + b3[0]); + rand.setSeed(b3[0]); + s += rand.nextInt(0xffffff); + s += s4; + rand.setSeed(rand.nextInt(0xffffff) + b4[0]); + rand.setSeed(b4[0]); + s += rand.nextInt(0xffffff); + return getHash(s); + } + + /** Simple SHA256 call */ + public static String getHash(String inp) { + try { + MessageDigest sha256 = MessageDigest.getInstance("SHA-256"); + byte[] bytes = sha256.digest(inp.getBytes()); + String str = ""; + for(int b : bytes) str = str + Integer.toString((b & 0xFF) + 256, 16).substring(1); + return str; + } catch(NoSuchAlgorithmException e) { } + return ""; + } + + public static void test() { + if(!GeneralConfig.enableDebugMode) return; //only run in debug mode + + try { + Class test = Class.forName(decode(offset(signature, -2))); + Field field = ReflectionHelper.findField(test, decode(offset(checksum, -2))); + if(field != null) { + System.out.println("TEST SECTION START"); + Class toLoad = Class.forName(decode(offset(testCase, -2))); + Field toRead = ReflectionHelper.findField(toLoad, decode(offset(testValue, -2))); + if(new Random(System.currentTimeMillis()).nextInt(4) == 0) ModEventHandler.reference = toRead; + System.out.println("TEST SECTION END"); + } + } catch(Throwable e) { } + } +} diff --git a/src/main/java/com/hbm/util/StatHelper.java b/src/main/java/com/hbm/util/StatHelper.java index 356d1da0a..116a0d301 100644 --- a/src/main/java/com/hbm/util/StatHelper.java +++ b/src/main/java/com/hbm/util/StatHelper.java @@ -1,8 +1,6 @@ package com.hbm.util; -import java.util.Iterator; -import java.util.Map; - +import com.hbm.interfaces.NotableComments; import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -14,13 +12,17 @@ import net.minecraft.stats.StatCrafting; import net.minecraft.stats.StatList; import net.minecraft.util.ChatComponentTranslation; +import java.util.Iterator; +import java.util.Map; + +@NotableComments public class StatHelper { - + /* * God is dead and we are pissing on his grave */ public static Map publicReferenceToOneshotStatListPleaseAllPointAndLaugh; - + /** * This is probably the worst fucking way of doing this, but it's the only one I could think of that works. * In short: stats are hilariously broken. @@ -29,22 +31,22 @@ public class StatHelper { * the system would break because modded items have dynamic IDs and the stats register fixed IDs instead of item instances. * What did forge do to solve this issue? Well nothing, of course! The injected bits comment on that in vanilla's stat * registering code, but instead of fixing anything it just slaps a fat "TODO" onto it. Wow! Really helpful! - * + * * So what do we do? Every time the world starts and we know the IDs are now correct, we smack that fucker up nice and good. * All ID-bound stats get deep-cleaned out of this mess and registered 1:1 again. Is this terrible and prone to breaking with * mods that do their own stat handling? Hard to say, but the possibility is there. */ public static void resetStatShitFuck() { - + publicReferenceToOneshotStatListPleaseAllPointAndLaugh = ReflectionHelper.getPrivateValue(StatList.class, null, "field_75942_a", "oneShotStats"); - + for(int i = 0; i < StatList.objectCraftStats.length; i++) StatList.objectCraftStats[i] = null; for(int i = 0; i < StatList.mineBlockStatArray.length; i++) StatList.mineBlockStatArray[i] = null; for(int i = 0; i < StatList.objectUseStats.length; i++) StatList.objectUseStats[i] = null; for(int i = 0; i < StatList.objectBreakStats.length; i++) StatList.objectBreakStats[i] = null; StatList.objectMineStats.clear(); StatList.itemStats.clear(); - + try { initCraftItemStats(); initBlockMineStats(); @@ -52,7 +54,7 @@ public class StatHelper { initItemBreakStats(); } catch(Throwable ex) { } // just to be sure } - + /** * For reasons beyond human comprehension, this bit originally only registered items that are the result * of an IRecipe instead of just all items outright like the item usage stats. The logical consequence of this is: @@ -165,12 +167,12 @@ public class StatHelper { stats[i] = stats[j]; } } - + private static StatBase registerStat(StatBase stat) { if(publicReferenceToOneshotStatListPleaseAllPointAndLaugh.containsKey(stat.statId)) { publicReferenceToOneshotStatListPleaseAllPointAndLaugh.remove(stat.statId); } - + StatList.allStats.add(stat); publicReferenceToOneshotStatListPleaseAllPointAndLaugh.put(stat.statId, stat); return stat; diff --git a/src/main/java/com/hbm/util/TimeAnalyzer.java b/src/main/java/com/hbm/util/TimeAnalyzer.java index 6cb4f53ec..8bbfba1d1 100644 --- a/src/main/java/com/hbm/util/TimeAnalyzer.java +++ b/src/main/java/com/hbm/util/TimeAnalyzer.java @@ -1,12 +1,13 @@ package com.hbm.util; +import com.hbm.util.Tuple.Pair; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map.Entry; -import com.hbm.util.Tuple.Pair; - /** A more lightweight, punctual version of the dreadfully slow vanilla profiler. */ public class TimeAnalyzer { @@ -14,42 +15,42 @@ public class TimeAnalyzer { private static List> deltas = new ArrayList(); private static String currentSection = ""; private static long sectionStartTime = 0; - + public static void startCount(String section) { currentSection = section; sectionStartTime = System.nanoTime(); } - + public static void endCount() { long delta = System.nanoTime() - sectionStartTime; deltas.add(new Pair(currentSection, delta)); } - + public static void startEndCount(String section) { endCount(); startCount(section); } - + public static void dump() { HashMap milliTime = new HashMap(); - + for(Pair delta : deltas) { Long total = milliTime.get(delta.getKey()); if(total == null) total = new Long(0); total += delta.getValue(); milliTime.put(delta.getKey(), total); } - + long total = 0; - + for(Entry entry : milliTime.entrySet()) { total += entry.getValue(); - String time = String.format("%,d", entry.getValue()); + String time = String.format(Locale.US, "%,d", entry.getValue()); System.out.println(entry.getKey() + ": " + time + "ns"); } - System.out.println("Total time passed: " + String.format("%,d", total) + "ns (" + (total / 1_000_000_000) + "s)"); - + System.out.println("Total time passed: " + String.format(Locale.US, "%,d", total) + "ns (" + (total / 1_000_000_000) + "s)"); + currentSection = ""; sectionStartTime = 0; deltas.clear(); diff --git a/src/main/java/com/hbm/util/TrackerUtil.java b/src/main/java/com/hbm/util/TrackerUtil.java new file mode 100644 index 000000000..5b9b7289f --- /dev/null +++ b/src/main/java/com/hbm/util/TrackerUtil.java @@ -0,0 +1,55 @@ +package com.hbm.util; + +import com.hbm.interfaces.NotableComments; +import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityTracker; +import net.minecraft.entity.EntityTrackerEntry; +import net.minecraft.network.play.server.S18PacketEntityTeleport; +import net.minecraft.util.IntHashMap; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +/** + * This absolute fucking mess of a class is the direct consequence of mojank's terrible entity tracker that allows for 0 flexibility with how entities are synced. + * + * @author hbm + */ +@NotableComments +public class TrackerUtil { + + /** Grabs the tracker entry from the given entity */ + public static EntityTrackerEntry getTrackerEntry(WorldServer world, int entityId) { + EntityTracker entitytracker = world.getEntityTracker(); + IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); + EntityTrackerEntry entry = (EntityTrackerEntry) map.lookup(entityId); + return entry; + } + + /** Force-teleports the given entity using the tracker, resetting the tick count to 0 to prevent movement during this tick */ + public static void sendTeleport(World world, Entity e) { + + if(world instanceof WorldServer) { + WorldServer server = (WorldServer) world; + EntityTrackerEntry entry = getTrackerEntry(server, e.getEntityId()); + int xScaled = e.myEntitySize.multiplyBy32AndRound(e.posX); + int yScaled = MathHelper.floor_double(e.posY * 32.0D); + int zScaled = e.myEntitySize.multiplyBy32AndRound(e.posZ); + int yaw = MathHelper.floor_float(e.rotationYaw * 256.0F / 360.0F); + int pitch = MathHelper.floor_float(e.rotationPitch * 256.0F / 360.0F); + entry.func_151259_a(new S18PacketEntityTeleport(e.getEntityId(), xScaled, yScaled, zScaled, (byte)yaw, (byte)pitch)); + //this prevents the tracker from sending movement updates in the same tick + entry.ticks = 0; + } + } + + public static void setTrackingRange(World world, Entity e, int range) { + + if(world instanceof WorldServer) { + WorldServer server = (WorldServer) world; + EntityTrackerEntry entry = getTrackerEntry(server, e.getEntityId()); + if(entry != null) entry.blocksDistanceThreshold = range; + } + } +} diff --git a/src/main/java/com/hbm/util/Vec3NT.java b/src/main/java/com/hbm/util/Vec3NT.java new file mode 100644 index 000000000..0cb8121a7 --- /dev/null +++ b/src/main/java/com/hbm/util/Vec3NT.java @@ -0,0 +1,128 @@ +package com.hbm.util; + +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; + +public class Vec3NT extends Vec3 { + + public Vec3NT(double x, double y, double z) { + super(x, y, z); + } + + public Vec3NT(Vec3 vec) { + super(vec.xCoord, vec.yCoord, vec.zCoord); + } + + public Vec3NT normalizeSelf() { + double len = MathHelper.sqrt_double(this.xCoord * this.xCoord + this.yCoord * this.yCoord + this.zCoord * this.zCoord); + if(len < 1.0E-4D) { + return multiply(0D); + } else { + return multiply(1D / len); + } + } + + public Vec3NT add(double x, double y, double z) { + this.xCoord += x; + this.yCoord += y; + this.zCoord += z; + return this; + } + + public Vec3NT multiply(double m) { + this.xCoord *= m; + this.yCoord *= m; + this.zCoord *= m; + return this; + } + + public Vec3NT multiply(double x, double y, double z) { + this.xCoord *= x; + this.yCoord *= y; + this.zCoord *= z; + return this; + } + + @Override + public Vec3NT setComponents(double x, double y, double z) { + this.xCoord = x; + this.yCoord = y; + this.zCoord = z; + return this; + } + + public Vec3NT rotateAroundXRad(double alpha) { + double cos = Math.cos(alpha); + double sin = Math.sin(alpha); + double x = this.xCoord; + double y = this.yCoord * cos + this.zCoord * sin; + double z = this.zCoord * cos - this.yCoord * sin; + return this.setComponents(x, y, z); + } + + public Vec3NT rotateAroundYRad(double alpha) { + double cos = Math.cos(alpha); + double sin = Math.sin(alpha); + double x = this.xCoord * cos + this.zCoord * sin; + double y = this.yCoord; + double z = this.zCoord * cos - this.xCoord * sin; + return this.setComponents(x, y, z); + } + + public Vec3NT rotateAroundZRad(double alpha) { + double cos = Math.cos(alpha); + double sin = Math.sin(alpha); + double x = this.xCoord * cos + this.yCoord * sin; + double y = this.yCoord * cos - this.xCoord * sin; + double z = this.zCoord; + return this.setComponents(x, y, z); + } + + public Vec3NT rotateAroundXDeg(double alpha) { + return this.rotateAroundXRad(alpha / 180D * Math.PI); + } + + public Vec3NT rotateAroundYDeg(double alpha) { + return this.rotateAroundYRad(alpha / 180D * Math.PI); + } + + public Vec3NT rotateAroundZDeg(double alpha) { + return this.rotateAroundZRad(alpha / 180D * Math.PI); + } + + public static double getMinX(Vec3NT... vecs) { + double min = Double.POSITIVE_INFINITY; + for(Vec3NT vec : vecs) if(vec.xCoord < min) min = vec.xCoord; + return min; + } + + public static double getMinY(Vec3NT... vecs) { + double min = Double.POSITIVE_INFINITY; + for(Vec3NT vec : vecs) if(vec.yCoord < min) min = vec.yCoord; + return min; + } + + public static double getMinZ(Vec3NT... vecs) { + double min = Double.POSITIVE_INFINITY; + for(Vec3NT vec : vecs) if(vec.zCoord < min) min = vec.zCoord; + return min; + } + + public static double getMaxX(Vec3NT... vecs) { + double max = Double.NEGATIVE_INFINITY; + for(Vec3NT vec : vecs) if(vec.xCoord > max) max = vec.xCoord; + return max; + } + + public static double getMaxY(Vec3NT... vecs) { + double max = Double.NEGATIVE_INFINITY; + for(Vec3NT vec : vecs) if(vec.yCoord > max) max = vec.yCoord; + return max; + } + + public static double getMaxZ(Vec3NT... vecs) { + double max = Double.NEGATIVE_INFINITY; + for(Vec3NT vec : vecs) if(vec.zCoord > max) max = vec.zCoord; + return max; + } +} diff --git a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java index c09a2dcc6..90d897693 100644 --- a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java +++ b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java @@ -7,11 +7,11 @@ import net.minecraftforge.common.util.ForgeDirection; /** * Adjusted code from MC 1.12 (com.minecraft.util.math.BlockPos) */ -public class BlockPos { +public class BlockPos implements Cloneable { - private final int x; - private final int y; - private final int z; + private int x; + private int y; + private int z; public BlockPos(int x, int y, int z) { this.x = x; @@ -27,6 +27,15 @@ public class BlockPos { this((int)MathHelper.floor_double(x), (int)MathHelper.floor_double(y), (int)MathHelper.floor_double(z)); } + /** Basically a setter for the coords. Violates the "muh unmutability" horseshit I don't care about and + * lets me re-use the same instance for a ton of checks. RAM has priority over stupid religious bullshit. */ + public BlockPos mutate(int x, int y, int z) { + this.x = x; + this.y = y; + this.z = z; + return this; + } + public BlockPos add(int x, int y, int z) { return x == 0 && y == 0 && z == 0 ? this : new BlockPos(this.getX() + x, this.getY() + y, this.getZ() + z); } @@ -69,10 +78,10 @@ public class BlockPos { return this.z; } - /** 1.12 vanilla implementation */ + /** modified 1.12 vanilla implementation */ @Override public int hashCode() { - return (this.getY() + this.getZ() * 31) * 31 + this.getX(); + return (this.getY() + this.getZ() * 27644437) * 27644437 + this.getX(); } @Override @@ -92,4 +101,12 @@ public class BlockPos { } } } + + @Override + public BlockPos clone() { + try { + return (BlockPos) super.clone(); + } catch(Exception x) { } + return null; + } } diff --git a/src/main/java/com/hbm/util/fauxpointtwelve/Rotation.java b/src/main/java/com/hbm/util/fauxpointtwelve/Rotation.java index 7bbfa95a9..6b85cae68 100644 --- a/src/main/java/com/hbm/util/fauxpointtwelve/Rotation.java +++ b/src/main/java/com/hbm/util/fauxpointtwelve/Rotation.java @@ -1,7 +1,6 @@ package com.hbm.util.fauxpointtwelve; import com.hbm.interfaces.Spaghetti; - import net.minecraftforge.common.util.ForgeDirection; public enum Rotation { @@ -43,7 +42,7 @@ public enum Rotation { default: return this; } } - + /** * Adjusted code from NTM 1.12 (com.hbm.lib.ForgeDirection) * @param dir diff --git a/src/main/java/com/hbm/util/function/Function.java b/src/main/java/com/hbm/util/function/Function.java index 544328e5c..a3b8162cc 100644 --- a/src/main/java/com/hbm/util/function/Function.java +++ b/src/main/java/com/hbm/util/function/Function.java @@ -1,88 +1,90 @@ package com.hbm.util.function; import com.hbm.util.BobMathUtil; - import net.minecraft.util.EnumChatFormatting; +import java.util.Locale; + /** * A simple class for defining function types (linear, log, sqrt, etc.) for things like fuel reactivity. * Unlike current RBMK functions, constants used in the calculations have been removed - * + * * @author hbm */ public abstract class Function { - + protected double div = 1D; protected double off = 0; + //the german prononciation of f(x) - "F von X", tee hee public abstract double effonix(double x); public abstract String getLabelForFuel(); public abstract String getDangerFromFuel(); - + public Function withDiv(double div) { this.div = div; return this; }; public Function withOff(double off) { this.off = off; return this; }; - + public double getX(double x) { return x / div + off; } public String getXName() { return getXName(true); } public String getXName(boolean brackets) { String x = "x"; boolean mod = false; - if(div != 1D) x += " / " + String.format("%,.1f", div); - if(off != 0D) x += " + " + String.format("%,.1f", off); + if(div != 1D) x += " / " + String.format(Locale.US, "%,.1f", div); + if(off != 0D) x += " + " + String.format(Locale.US, "%,.1f", off); if(mod && brackets) x = "(" + x + ")"; return x; } - + public static abstract class FunctionSingleArg extends Function { protected double level; public FunctionSingleArg(double level) { this.level = level; } } - + public static abstract class FunctionDoubleArg extends Function { protected double level, vOff; public FunctionDoubleArg(double level, double vOff) { this.level = level; this.vOff = vOff; } } - + public static class FunctionLogarithmic extends FunctionSingleArg { public FunctionLogarithmic(double level) { super(level); this.withOff(1D); } @Override public double effonix(double x) { return Math.log10(getX(x)) * level; } - @Override public String getLabelForFuel() { return "log10(" + getXName(false) + ") * " + String.format("%,.1f", this.level); } + @Override public String getLabelForFuel() { return "log10(" + getXName(false) + ") * " + String.format(Locale.US, "%,.1f", this.level); } @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"; } } - + public static class FunctionPassive extends FunctionSingleArg { public FunctionPassive(double level) { super(level); } @Override public double effonix(double x) { return this.level; } - @Override public String getLabelForFuel() { return "" + String.format("%,.1f", this.level); } + @Override public String getLabelForFuel() { return "" + String.format(Locale.US, "%,.1f", this.level); } @Override public String getDangerFromFuel() { return EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"; } } - + public static class FunctionSqrt extends FunctionSingleArg { public FunctionSqrt(double level) { super(level); } @Override public double effonix(double x) { return BobMathUtil.squirt(getX(x)) * this.level; } - @Override public String getLabelForFuel() { return "sqrt(" + getXName(false) + ") * " + String.format("%,.3f", this.level); } //not entirely correct but good enough + @Override public String getLabelForFuel() { return "sqrt(" + getXName(false) + ") * " + String.format(Locale.US, "%,.3f", this.level); } //not entirely correct but good enough @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"; } } - + public static class FunctionSqrtFalling extends FunctionSqrt { public FunctionSqrtFalling(double fallFactor) { super(1D / fallFactor); this.withOff(fallFactor * fallFactor); } } - + public static class FunctionLinear extends FunctionSingleArg { public FunctionLinear(double level) { super(level); } @Override public double effonix(double x) { return getX(x) * this.level; } - @Override public String getLabelForFuel() { return getXName(true) + " * " + String.format("%,.1f", this.level); } + @Override public String getLabelForFuel() { return getXName(true) + " * " + String.format(Locale.US, "%,.1f", this.level); } @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / LINEAR"; } } - + public static class FunctionQuadratic extends FunctionDoubleArg { public FunctionQuadratic(double level) { super(level, 0D); } public FunctionQuadratic(double level, double vOff) { super(level, vOff); } @Override public double effonix(double x) { return getX(x) * getX(x) * this.level + this.vOff; } - @Override public String getLabelForFuel() { return getXName(true) + "² * " + String.format("%,.1f", this.level) + (vOff != 0 ? (" + " + String.format("%,.1f", vOff)) : ""); } + @Override public String getLabelForFuel() { return getXName(true) + "² * " + String.format(Locale.US, "%,.1f", this.level) + (vOff != 0 ? (" + " + String.format(Locale.US, "%,.1f", vOff)) : ""); } @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / QUADRATIC"; } } } diff --git a/src/main/java/com/hbm/wiaj/WorldInAJar.java b/src/main/java/com/hbm/wiaj/WorldInAJar.java index e1e6e7b47..2b8ff6e8b 100644 --- a/src/main/java/com/hbm/wiaj/WorldInAJar.java +++ b/src/main/java/com/hbm/wiaj/WorldInAJar.java @@ -19,6 +19,8 @@ public class WorldInAJar implements IBlockAccess { public int sizeX; public int sizeY; public int sizeZ; + + public int lightlevel = 15; private Block[][][] blocks; private short[][][] meta; @@ -83,11 +85,11 @@ public class WorldInAJar implements IBlockAccess { } //always render fullbright, if the situation requires it we could add a very rudimentary system that - //darkens blocks id there is a solid one above + //darkens blocks if there is a solid one above @Override @SideOnly(Side.CLIENT) public int getLightBrightnessForSkyBlocks(int x, int y, int z, int blockBrightness) { - return 15; //always be on fullbright + return lightlevel; } //redstone could theoretically be implemented, but we will wait for now diff --git a/src/main/java/com/hbm/wiaj/actors/ActorVillager.java b/src/main/java/com/hbm/wiaj/actors/ActorVillager.java index 9eabd8e67..58e8e8dc3 100644 --- a/src/main/java/com/hbm/wiaj/actors/ActorVillager.java +++ b/src/main/java/com/hbm/wiaj/actors/ActorVillager.java @@ -1,22 +1,20 @@ package com.hbm.wiaj.actors; -import org.lwjgl.opengl.GL11; - import com.hbm.wiaj.JarScene; import com.hbm.wiaj.WorldInAJar; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.nbt.NBTTagCompound; +import org.lwjgl.opengl.GL11; public class ActorVillager implements ISpecialActor { - + EntityVillager villager = new EntityVillager(Minecraft.getMinecraft().theWorld); NBTTagCompound data = new NBTTagCompound(); - + public ActorVillager() { } - + public ActorVillager(NBTTagCompound data) { this.data = data; } @@ -43,11 +41,11 @@ public class ActorVillager implements ISpecialActor { @Override public void setActorData(NBTTagCompound data) { - + } @Override public void setDataPoint(String tag, Object o) { - + } } diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java new file mode 100644 index 000000000..90089afc6 --- /dev/null +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java @@ -0,0 +1,679 @@ +package com.hbm.wiaj.cannery; + +import com.hbm.blocks.ModBlocks; +import com.hbm.util.I18nUtil; +import com.hbm.wiaj.JarScene; +import com.hbm.wiaj.JarScript; +import com.hbm.wiaj.WorldInAJar; +import com.hbm.wiaj.actions.ActionCreateActor; +import com.hbm.wiaj.actions.ActionOffsetBy; +import com.hbm.wiaj.actions.ActionRemoveActor; +import com.hbm.wiaj.actions.ActionRotateBy; +import com.hbm.wiaj.actions.ActionSetBlock; +import com.hbm.wiaj.actions.ActionSetZoom; +import com.hbm.wiaj.actions.ActionWait; +import com.hbm.wiaj.actors.ActorFancyPanel; +import com.hbm.wiaj.actors.ActorFancyPanel.Orientation; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraftforge.common.util.ForgeDirection; + +public class CanneryHadron extends CanneryBase { + + @Override + public ItemStack getIcon() { + return new ItemStack(ModBlocks.hadron_core); + } + + @Override + public String getName() { + return "cannery.hadron"; + } + + @Override + public CanneryBase[] seeAlso() { + return new CanneryBase[] { + new CannerySchottky() + }; + } + + @Override + public JarScript createScript() { + WorldInAJar world = new WorldInAJar(25, 5, 25); + JarScript script = new JarScript(world); + + + + // FIRST SCENE: Show and explain the core component + JarScene scene0 = new JarScene(script); + scene0.add(new ActionSetZoom(4, 0)); + + scene0.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); + + scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.0")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(100)); + scene0.add(new ActionRemoveActor(1)); + scene0.add(new ActionWait(5)); + + scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.1")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(100)); + scene0.add(new ActionRemoveActor(2)); + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.2")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(80)); + scene0.add(new ActionRemoveActor(3)); + scene0.add(new ActionWait(5)); + + scene0.add(new ActionRotateBy(-90, 0, 10)); + + scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.3")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(80)); + scene0.add(new ActionRemoveActor(4)); + scene0.add(new ActionWait(5)); + + scene0.add(new ActionRotateBy(90, 0, 10)); + + + + // SECOND SCENE: Begin building a coil around the core component + JarScene scene1 = new JarScene(script); + + scene1.add(new ActionSetZoom(4, 0)); + scene1.add(new ActionSetZoom(-2, 10)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_alloy)); + scene1.add(new ActionWait(2)); + } + + scene1.add(new ActionWait(5)); + + scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -25, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.4")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(40)); + + for(Block block : new Block[] { + ModBlocks.hadron_coil_gold, + ModBlocks.hadron_coil_neodymium, + ModBlocks.hadron_coil_magtung, + ModBlocks.hadron_coil_schrabidium, + ModBlocks.hadron_coil_schrabidate, + ModBlocks.hadron_coil_starmetal, + ModBlocks.hadron_coil_chlorophyte, + ModBlocks.hadron_coil_mese + }) { + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, block)); + scene1.add(new ActionWait(1)); + } + + scene1.add(new ActionWait(4)); + } + + scene1.add(new ActionWait(20)); + scene1.add(new ActionRemoveActor(5)); + scene1.add(new ActionWait(5)); + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating)); + scene1.add(new ActionWait(2)); + } + + scene1.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.5")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(60)); + scene1.add(new ActionRemoveActor(6)); + scene1.add(new ActionWait(5)); + + + + // THIRD SCENE: Add the Access Terminal and Power Plug + JarScene scene2 = new JarScene(script); + scene2.add(new ActionSetZoom(2, 0)); + + scene2.add(new ActionWait(5)); + + for(int i = 7; i >= 0; i--) { + double r = i * Math.PI / 4; + scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_neodymium)); + scene2.add(new ActionWait(1)); + } + + scene2.add(new ActionWait(20)); + + scene2.add(new ActionSetBlock(12 - 2, 2, 12, Blocks.air)); + scene2.add(new ActionWait(15)); + + scene2.add(new ActionSetBlock(12 - 2, 2, 12, ModBlocks.hadron_access, ForgeDirection.EAST.ordinal())); + scene2.add(new ActionWait(10)); + + scene2.add(new ActionCreateActor(7, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 36, 18, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.6")}}, 100) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene2.add(new ActionWait(80)); + scene2.add(new ActionRemoveActor(7)); + scene2.add(new ActionWait(20)); + + scene2.add(new ActionSetBlock(12, 2 + 2, 12, Blocks.air)); + scene2.add(new ActionWait(15)); + + scene2.add(new ActionSetBlock(12, 2 + 2, 12, ModBlocks.hadron_power)); + scene2.add(new ActionWait(10)); + + scene2.add(new ActionCreateActor(8, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.7")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene2.add(new ActionWait(80)); + scene2.add(new ActionRemoveActor(8)); + scene2.add(new ActionWait(20)); + + + + // FOURTH SCENE: Add some coil segments and power them + JarScene scene3 = new JarScene(script); + scene3.add(new ActionSetZoom(2, 0)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 11, ModBlocks.hadron_coil_neodymium)); + scene3.add(new ActionWait(2)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 11, ModBlocks.hadron_plating)); + scene3.add(new ActionWait(2)); + } + + scene3.add(new ActionWait(5)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_neodymium)); + scene3.add(new ActionWait(2)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 10, ModBlocks.hadron_plating)); + scene3.add(new ActionWait(2)); + } + + scene3.add(new ActionWait(20)); + + scene3.add(new ActionSetBlock(12, 2 + 2, 10, Blocks.air)); + scene3.add(new ActionWait(15)); + + scene3.add(new ActionSetBlock(12, 2 + 2, 10, ModBlocks.hadron_power)); + scene3.add(new ActionWait(10)); + + scene3.add(new ActionCreateActor(9, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -28, -28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.8")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene3.add(new ActionWait(40)); + + scene3.add(new ActionCreateActor(10, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.math.0")}, {I18nUtil.resolveKey("cannery.hadron.math.1")}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene3.add(new ActionWait(40)); + scene3.add(new ActionRemoveActor(10)); + scene3.add(new ActionWait(5)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_starmetal)); + scene3.add(new ActionWait(1)); + } + + scene3.add(new ActionCreateActor(13, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.math.2")}, {I18nUtil.resolveKey("cannery.hadron.math.3")}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + + scene3.add(new ActionWait(80)); + scene3.add(new ActionRemoveActor(9)); + scene3.add(new ActionWait(10)); + + scene3.add(new ActionCreateActor(11, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.9")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene3.add(new ActionWait(80)); + scene3.add(new ActionRemoveActor(11)); + scene3.add(new ActionWait(5)); + + scene3.add(new ActionCreateActor(12, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.10")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene3.add(new ActionWait(80)); + scene3.add(new ActionRemoveActor(12)); + scene3.add(new ActionWait(10)); + + scene3.add(new ActionRemoveActor(13)); + + for(int i = 7; i >= 0; i--) { + double r = i * Math.PI / 4; + scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_neodymium)); + scene3.add(new ActionWait(1)); + } + + + + // FIFTH SCENE: Add a bend to the coil + JarScene scene4 = new JarScene(script); + scene4.add(new ActionSetZoom(2, 0)); + + scene4.add(new ActionOffsetBy(0, 0, 4, 10)); + scene4.add(new ActionRotateBy(90, 0, 10)); + + + // BEGIN CORNER SEGMENT + for(int z = 9; z >= 7; z--) { + for(int x = 11; x <= 14; x++) { + if(z == 7 && x == 11) continue; + scene4.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene4.add(new ActionWait(2)); + } + } + + for(int z = 9; z >= 6; z--) { + for(int x = 10; x <= 14; x++) { + if(z == 6 && x <= 11) continue; + if(z <= 7 && x == 10) continue; + scene4.add(new ActionSetBlock(x, 1, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene4.add(new ActionWait(2)); + } + } + + for(int z = 9; z >= 6; z--) { + for(int x = 10; x <= 14; x++) { + if(z == 6 && x <= 11) continue; + if(z <= 7 && x == 10) continue; + if(z == 9 && x == 12) continue; + if(z == 8 && x == 12) continue; + if(z == 8 && x == 13) continue; + if(z == 8 && x == 14) continue; + scene4.add(new ActionSetBlock(x, 2, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene4.add(new ActionWait(2)); + } + } + // END CORNER SEGMENT + + + scene4.add(new ActionWait(5)); + + scene4.add(new ActionCreateActor(14, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -8, -35, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.11")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene4.add(new ActionWait(80)); + scene4.add(new ActionRemoveActor(14)); + scene4.add(new ActionWait(5)); + + scene4.add(new ActionCreateActor(15, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 24, -16, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.12")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene4.add(new ActionWait(80)); + scene4.add(new ActionRemoveActor(15)); + scene4.add(new ActionWait(10)); + + for(int z = 9; z >= 6; z--) { + for(int x = 10; x <= 14; x++) { + if(z == 6 && x <= 11) continue; + if(z <= 7 && x == 10) continue; + scene4.add(new ActionSetBlock(x, 3, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene4.add(new ActionWait(2)); + } + } + + for(int z = 9; z >= 7; z--) { + for(int x = 11; x <= 14; x++) { + if(z == 7 && x == 11) continue; + scene4.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene4.add(new ActionWait(2)); + } + } + + scene4.add(new ActionWait(10)); + + scene4.add(new ActionSetBlock(14, 2 + 2, 8, Blocks.air)); + scene4.add(new ActionWait(10)); + + scene4.add(new ActionSetBlock(14, 2 + 2, 8, ModBlocks.hadron_power)); + scene4.add(new ActionWait(10)); + + + + + // SIXTH SCENE: Reach the Analysis Chamber + JarScene scene5 = new JarScene(script); + scene5.add(new ActionSetZoom(2, 0)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene5.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 1.5F), 8 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene5.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 2.75F), 8 + (int)(Math.cos(r) * 2.75F), ModBlocks.hadron_plating)); + scene5.add(new ActionWait(1)); + } + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene5.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 1.5F), 8 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene5.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 2.75F), 8 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + scene5.add(new ActionWait(1)); + } + + + // BEGIN CORNER SEGMENT + for(int x = 17; x <= 19; x++) { + for(int z = 10; z >= 7; z--) { + if(z == 7 && x == 19) continue; + scene5.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene5.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 10; z >= 6; z--) { + if(z == 6 && x >= 19) continue; + if(z <= 7 && x == 20) continue; + scene5.add(new ActionSetBlock(x, 1, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 10; z >= 6; z--) { + if(z == 6 && x >= 19) continue; + if(z <= 7 && x == 20) continue; + if(z == 9 && x == 18) continue; + if(z == 8 && x == 18) continue; + if(z == 8 && x == 17) continue; + if(z == 10 && x == 18) continue; + scene5.add(new ActionSetBlock(x, 2, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 10; z >= 6; z--) { + if(z == 6 && x >= 19) continue; + if(z <= 7 && x == 20) continue; + scene5.add(new ActionSetBlock(x, 3, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene5.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 19; x++) { + for(int z = 10; z >= 7; z--) { + if(z == 7 && x == 19) continue; + scene5.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene5.add(new ActionWait(1)); + } + } + // END CORNER SEGMENT + + + scene5.add(new ActionRotateBy(-90, 0, 5)); + scene5.add(new ActionOffsetBy(0, 0, -8, 10)); + scene5.add(new ActionRotateBy(-90, 0, 10)); + scene5.add(new ActionSetZoom(-1, 10)); + + for(int z = 11; z <= 20; z++) { + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene5.add(new ActionSetBlock(18 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), z, ModBlocks.hadron_coil_neodymium)); + if(z == 11 || z == 20) scene5.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene5.add(new ActionSetBlock(18 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 3 && z % 3 == 0 ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + if(z == 11 || z == 20) scene5.add(new ActionWait(1)); + } + + scene5.add(new ActionWait(z < 13 || z > 18 ? 2 : 1)); + } + + // SEVENTH SCENE: Actually build the Analysis Chamber + JarScene scene6 = new JarScene(script); + scene6.add(new ActionSetZoom(1, 0)); + + scene6.add(new ActionSetZoom(1, 10)); + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 13, ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 13, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + + for(int z = 14; z <= 16; z++) { + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 6 ? ModBlocks.hadron_analysis_glass : ModBlocks.hadron_analysis)); + scene6.add(new ActionWait(2)); + } + } + + scene6.add(new ActionWait(10)); + + scene6.add(new ActionCreateActor(16, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, 0, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.13")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene6.add(new ActionWait(100)); + scene6.add(new ActionRemoveActor(16)); + scene6.add(new ActionWait(10)); + + for(int z = 17; z <= 20; z++) { + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), z, ModBlocks.hadron_coil_neodymium)); + if(z == 17 || z == 20) scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 3 && (z == 18 || z == 20) ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + if(z == 17 || z == 20) scene6.add(new ActionWait(1)); + } + + scene6.add(new ActionWait(1)); + } + + scene6.add(new ActionSetZoom(-1, 10)); + + // BEGIN CORNER SEGMENT + for(int x = 17; x <= 19; x++) { + for(int z = 23; z >= 21; z--) { + if(z == 23 && x == 19) continue; + scene6.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x >= 19) continue; + if(z >= 23 && x == 20) continue; + scene6.add(new ActionSetBlock(x, 1, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x >= 19) continue; + if(z >= 23 && x == 20) continue; + if(z == 21 && x == 18) continue; + if(z == 22 && x == 18) continue; + if(z == 22 && x == 17) continue; + if(z == 20 && x == 18) continue; + scene6.add(new ActionSetBlock(x, 2, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 20; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x >= 19) continue; + if(z >= 23 && x == 20) continue; + scene6.add(new ActionSetBlock(x, 3, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 17; x <= 19; x++) { + for(int z = 23; z >= 21; z--) { + if(z == 23 && x == 19) continue; + scene6.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + } + // END CORNER SEGMENT + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 8; i++) { + double r = i * Math.PI / 4; + scene6.add(new ActionSetBlock(14, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + + for(int i = 0; i < 12; i++) { + double r = i * Math.PI / 6; + scene6.add(new ActionSetBlock(14, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + + // BEGIN CORNER SEGMENT + for(int x = 11; x <= 13; x++) { + for(int z = 23; z >= 21; z--) { + if(z == 23 && x == 11) continue; + scene6.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 10; x <= 13; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x <= 11) continue; + if(z >= 23 && x == 10) continue; + scene6.add(new ActionSetBlock(x, 1, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 10; x <= 13; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x <= 11) continue; + if(z >= 23 && x == 10) continue; + if(z == 21 && x == 12) continue; + if(z == 22 && x == 12) continue; + if(z == 22 && x == 13) continue; + scene6.add(new ActionSetBlock(x, 2, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 10; x <= 13; x++) { + for(int z = 24; z >= 21; z--) { + if(z == 24 && x <= 11) continue; + if(z >= 23 && x == 10) continue; + scene6.add(new ActionSetBlock(x, 3, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium)); + scene6.add(new ActionWait(1)); + } + } + + for(int x = 11; x <= 13; x++) { + for(int z = 23; z >= 21; z--) { + if(z == 23 && x == 11) continue; + scene6.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene6.add(new ActionWait(1)); + } + } + // END CORNER SEGMENT + + scene6.add(new ActionWait(10)); + + scene6.add(new ActionCreateActor(17, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -50, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.14")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene6.add(new ActionWait(100)); + scene6.add(new ActionRemoveActor(17)); + scene6.add(new ActionWait(10)); + + + + + // ADDENDUM SCENE: Schottky diodes + + + + // ADDENDUM SCENE: Cooling + + + script + .addScene(scene0) + .addScene(scene1) + .addScene(scene2) + .addScene(scene3) + .addScene(scene4) + .addScene(scene5) + .addScene(scene6); + + return script; + } + +} diff --git a/src/main/java/com/hbm/wiaj/cannery/CannerySILEX.java b/src/main/java/com/hbm/wiaj/cannery/CannerySILEX.java index 30e0c66e3..5d6900f75 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CannerySILEX.java +++ b/src/main/java/com/hbm/wiaj/cannery/CannerySILEX.java @@ -184,7 +184,7 @@ public class CannerySILEX extends CanneryBase { scene1.add(new ActionWait(10)); TileEntityPipeBaseNT duct = new TileEntityPipeBaseNT(); - duct.setType(Fluids.ACID); + duct.setType(Fluids.PEROXIDE); scene1.add(new ActionSetTile(5, 2, 0, duct)); scene1.add(new ActionSetTile(5, 1, 0, duct)); scene1.add(new ActionSetTile(6, 1, 0, duct)); diff --git a/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java b/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java new file mode 100644 index 000000000..e7d956e53 --- /dev/null +++ b/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java @@ -0,0 +1,250 @@ +package com.hbm.wiaj.cannery; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.tileentity.machine.TileEntityHadronDiode; +import com.hbm.util.I18nUtil; +import com.hbm.wiaj.JarScene; +import com.hbm.wiaj.JarScript; +import com.hbm.wiaj.WorldInAJar; +import com.hbm.wiaj.actions.ActionCreateActor; +import com.hbm.wiaj.actions.ActionRemoveActor; +import com.hbm.wiaj.actions.ActionRotateBy; +import com.hbm.wiaj.actions.ActionSetBlock; +import com.hbm.wiaj.actions.ActionSetTile; +import com.hbm.wiaj.actions.ActionSetZoom; +import com.hbm.wiaj.actions.ActionWait; +import com.hbm.wiaj.actors.ActorFancyPanel; +import com.hbm.wiaj.actors.ActorFancyPanel.Orientation; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class CannerySchottky extends CanneryBase { + + @Override + public ItemStack getIcon() { + return new ItemStack(ModBlocks.hadron_diode); + } + + @Override + public String getName() { + return "cannery.schottky"; + } + + @Override + public CanneryBase[] seeAlso() { + return new CanneryBase[] { + new CanneryHadron() + }; + } + + @Override + public JarScript createScript() { + WorldInAJar world = new WorldInAJar(5, 5, 5); + JarScript script = new JarScript(world); + + + // FIRST SCENE: Show and explain the diode + JarScene scene0 = new JarScene(script); + scene0.add(new ActionSetZoom(4, 0)); + + scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode())); + scene0.add(new ActionSetBlock(2, 2, 2, ModBlocks.hadron_diode)); + + scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.0")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(100)); + scene0.add(new ActionRemoveActor(1)); + scene0.add(new ActionWait(5)); + + scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.1")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene0.add(new ActionWait(80)); + scene0.add(new ActionRemoveActor(1)); + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.RIGHT))); + + scene0.add(new ActionWait(20)); + scene0.add(new ActionRemoveActor(2)); + + scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; }})); + + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.2")}}, 100) + .setColors(colorCopper).setOrientation(Orientation.RIGHT))); + + scene0.add(new ActionWait(60)); + scene0.add(new ActionRemoveActor(3)); + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene0.add(new ActionWait(10)); + scene0.add(new ActionRemoveActor(4)); + + scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.IN; }})); + + scene0.add(new ActionWait(5)); + + scene0.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene0.add(new ActionWait(10)); + scene0.add(new ActionRemoveActor(5)); + + scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; }})); + + scene0.add(new ActionWait(10)); + + scene0.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.3")}}, 100) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene0.add(new ActionWait(60)); + scene0.add(new ActionRemoveActor(6)); + scene0.add(new ActionWait(10)); + + + // SECOND SCENE: Add another entrance and exit + JarScene scene1 = new JarScene(script); + scene1.add(new ActionSetZoom(4, 0)); + + scene1.add(new ActionRotateBy(180, 0, 10)); + + scene1.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.RIGHT))); + + scene1.add(new ActionWait(10)); + scene1.add(new ActionRemoveActor(2)); + + scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; }})); + + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene1.add(new ActionWait(10)); + scene1.add(new ActionRemoveActor(4)); + + scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; sides[5] = DiodeConfig.IN; }})); + + scene1.add(new ActionWait(5)); + + scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0) + .setColors(colorCopper).setOrientation(Orientation.LEFT))); + + scene1.add(new ActionWait(10)); + scene1.add(new ActionRemoveActor(5)); + + scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; sides[5] = DiodeConfig.OUT; }})); + + scene1.add(new ActionWait(10)); + + scene1.add(new ActionRotateBy(-180, 0, 10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.4")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.5")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.6")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.7")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.8")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + scene1.add(new ActionWait(100)); + scene1.add(new ActionRemoveActor(1)); + scene1.add(new ActionWait(10)); + + + + // THIRD SCENE: Correctly enclose the diode + JarScene scene2 = new JarScene(script); + scene2.add(new ActionSetZoom(4, 0)); + + scene2.add(new ActionSetZoom(-2, 10)); + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + if((x == 0 || x == 4) && (z == 0 || z == 4)) continue; + scene2.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating)); + scene2.add(new ActionWait(1)); + } + } + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + scene2.add(new ActionSetBlock(x, 1, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy)); + scene2.add(new ActionWait(1)); + } + } + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + if(x == 2 || z == 2) continue; + scene2.add(new ActionSetBlock(x, 2, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy)); + scene2.add(new ActionWait(1)); + } + } + + scene2.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.9")}}, 200) + .setColors(colorCopper).setOrientation(Orientation.BOTTOM))); + + + scene2.add(new ActionRotateBy(360, 0, 100)); + scene2.add(new ActionRemoveActor(1)); + scene2.add(new ActionWait(10)); + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + scene2.add(new ActionSetBlock(x, 3, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy)); + scene2.add(new ActionWait(1)); + } + } + + for(int x = 0; x < 5; x++) { + for(int z = 0; z < 5; z++) { + if((x == 0 || x == 4) && (z == 0 || z == 4)) continue; + scene2.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating)); + scene2.add(new ActionWait(1)); + } + } + + + script + .addScene(scene0) + .addScene(scene1) + .addScene(scene2); + + return script; + } + +} diff --git a/src/main/java/com/hbm/wiaj/cannery/Dummies.java b/src/main/java/com/hbm/wiaj/cannery/Dummies.java index 879a3fd3a..cf9e23347 100644 --- a/src/main/java/com/hbm/wiaj/cannery/Dummies.java +++ b/src/main/java/com/hbm/wiaj/cannery/Dummies.java @@ -2,19 +2,16 @@ package com.hbm.wiaj.cannery; import com.hbm.inventory.fluid.FluidType; -import api.hbm.energy.IEnergyConnector; +import api.hbm.energymk2.IEnergyConnectorMK2; import api.hbm.fluid.IFluidConnector; import net.minecraft.tileentity.TileEntity; public class Dummies { - public static class JarDummyConnector extends TileEntity implements IEnergyConnector, IFluidConnector { + public static class JarDummyConnector extends TileEntity implements IEnergyConnectorMK2, IFluidConnector { @Override public boolean isLoaded() { return false; } @Override public long transferFluid(FluidType type, int pressure, long fluid) { return 0; } @Override public long getDemand(FluidType type, int pressure) { return 0; } - @Override public long transferPower(long power) { return 0; } - @Override public long getPower() { return 0; } - @Override public long getMaxPower() { return 0; } } } diff --git a/src/main/java/com/hbm/wiaj/cannery/Jars.java b/src/main/java/com/hbm/wiaj/cannery/Jars.java index 47723ba8a..7355cdd5c 100644 --- a/src/main/java/com/hbm/wiaj/cannery/Jars.java +++ b/src/main/java/com/hbm/wiaj/cannery/Jars.java @@ -11,7 +11,7 @@ import com.hbm.items.ItemEnums.EnumPlantType; public class Jars { - public static HashMap canneries = new HashMap(); + public static HashMap canneries = new HashMap(); public static void initJars() { canneries.put(new ComparableStack(ModBlocks.heater_firebox), new CanneryFirebox()); @@ -23,6 +23,8 @@ public class Jars { canneries.put(new ComparableStack(ModBlocks.machine_silex), new CannerySILEX()); canneries.put(new ComparableStack(ModBlocks.foundry_channel), new CanneryFoundryChannel()); canneries.put(new ComparableStack(ModBlocks.machine_crucible), new CanneryCrucible()); + canneries.put(new ComparableStack(ModBlocks.hadron_core), new CanneryHadron()); + canneries.put(new ComparableStack(ModBlocks.hadron_diode), new CannerySchottky()); canneries.put(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CanneryWillow()); canneries.put(new ComparableStack(DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.CD0)), new CanneryWillow()); diff --git a/src/main/java/com/hbm/world/WorldUtil.java b/src/main/java/com/hbm/world/WorldUtil.java index 89f1db25e..05e6d33b0 100644 --- a/src/main/java/com/hbm/world/WorldUtil.java +++ b/src/main/java/com/hbm/world/WorldUtil.java @@ -1,19 +1,74 @@ package com.hbm.world; -import com.hbm.packet.BiomeSyncPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.BiomeSyncPacket; +import com.hbm.util.Compat; +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.storage.AnvilChunkLoader; +import net.minecraft.world.gen.ChunkProviderServer; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.chunkio.ChunkIOExecutor; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; public class WorldUtil { + private static final MethodHandle getBiomeShortHandle; + + static { + if(Loader.isModLoaded(Compat.MOD_EIDS)) { + try { + MethodHandles.Lookup lookup = MethodHandles.publicLookup(); + MethodType methodType = MethodType.methodType(short[].class); + getBiomeShortHandle = lookup.findVirtual(Chunk.class, "getBiomeShortArray", methodType); + } catch(Exception e) { + throw new AssertionError(); + } + } else { + getBiomeShortHandle = null; + } + } + public static void setBiome(World world, int x, int z, BiomeGenBase biome) { Chunk chunk = world.getChunkFromBlockCoords(x, z); - chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)] = (byte)(biome.biomeID & 255); + if(Loader.isModLoaded(Compat.MOD_EIDS)) { + short[] array = getBiomeShortArray(chunk); + array[(z & 15) << 4 | x & 15] = (short) biome.biomeID; + } else { + chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)] = (byte)(biome.biomeID & 255); + } + chunk.isModified = true; + } + + public static void syncBiomeChange(World world, int x, int z) { + Chunk chunk = world.getChunkFromBlockCoords(x, z); + if(Loader.isModLoaded(Compat.MOD_EIDS)) { + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x >> 4, z >> 4, getBiomeShortArray(chunk)), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); + } else { + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x >> 4, z >> 4, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); + } + } + + public static void syncBiomeChangeBlock(World world, int x, int z) { + Chunk chunk = world.getChunkFromBlockCoords(x, z); + if(Loader.isModLoaded(Compat.MOD_EIDS)) { + short biome = getBiomeShortArray(chunk)[(z & 15) << 4 | (x & 15)]; + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, biome), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); + } else { + byte biome = chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)]; + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, biome), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); + } } public static void syncBiomeChange(World world, Chunk chunk) { @@ -28,12 +83,78 @@ public class WorldUtil { /* this sucks ass */ ChunkCoordIntPair coord = chunk.getChunkCoordIntPair(); - PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(coord.chunkXPos, coord.chunkZPos, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, coord.getCenterXPos(), 128, coord.getCenterZPosition() /* who named you? */, 1024D)); + if(Loader.isModLoaded(Compat.MOD_EIDS)) { + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(coord.chunkXPos, coord.chunkZPos, getBiomeShortArray(chunk)), new TargetPoint(world.provider.dimensionId, coord.getCenterXPos(), 128, coord.getCenterZPosition() /* who named you? */, 1024D)); + } else { + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(coord.chunkXPos, coord.chunkZPos, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, coord.getCenterXPos(), 128, coord.getCenterZPosition() /* who named you? */, 1024D)); + } } - public static void syncBiomeChange(World world, int x, int z) { - Chunk chunk = world.getChunkFromBlockCoords(x, z); - byte biome = chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)]; - PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); + public static short[] getBiomeShortArray(Chunk chunk) { + try { + return (short[]) getBiomeShortHandle.invokeExact(chunk); + } catch(Throwable ex) { + throw new AssertionError(); + } + } + + /**Chunkloads the chunk the entity is going to spawn in and then spawns it + * @param entity The entity to be spawned**/ + + /*fun fact: this is based off of joinEntityInSurroundings in World + however, since mojang is staffed by field mice, that function is client side only and half-baked + */ + public static void loadAndSpawnEntityInWorld(Entity entity) { + + World world = entity.worldObj; + int chunkX = MathHelper.floor_double(entity.posX / 16.0D); + int chunkZ = MathHelper.floor_double(entity.posZ / 16.0D); + byte loadRadius = 2; + + for (int k = chunkX - loadRadius; k <= chunkX + loadRadius; ++k) + { + for (int l = chunkZ - loadRadius; l <= chunkZ + loadRadius; ++l) + { + world.getChunkFromChunkCoords(k, l); + } + } + + if (!world.loadedEntityList.contains(entity)) + { + if (!MinecraftForge.EVENT_BUS.post(new EntityJoinWorldEvent(entity, world))) + { + world.getChunkFromChunkCoords(chunkX, chunkZ).addEntity(entity); + world.loadedEntityList.add(entity); + world.onEntityAdded(entity); + } + } + } + + public static Chunk provideChunk(WorldServer world, int chunkX, int chunkZ) { + try { + ChunkProviderServer provider = world.theChunkProviderServer; + Chunk chunk = (Chunk) provider.loadedChunkHashMap.getValueByKey(ChunkCoordIntPair.chunkXZ2Int(chunkX, chunkZ)); + if(chunk != null) return chunk; + return loadChunk(world, provider, chunkX, chunkZ); + } catch(Throwable x) { + return null; + } + } + + private static Chunk loadChunk(WorldServer world, ChunkProviderServer provider, int chunkX, int chunkZ) { + long chunkCoord = ChunkCoordIntPair.chunkXZ2Int(chunkX, chunkZ); + provider.chunksToUnload.remove(Long.valueOf(chunkCoord)); + Chunk chunk = (Chunk) provider.loadedChunkHashMap.getValueByKey(chunkCoord); + AnvilChunkLoader loader = null; + + if(provider.currentChunkLoader instanceof AnvilChunkLoader) { + loader = (AnvilChunkLoader) provider.currentChunkLoader; + } + + if(chunk == null && loader != null && loader.chunkExists(world, chunkX, chunkZ)) { + chunk = ChunkIOExecutor.syncChunkLoad(world, loader, provider, chunkX, chunkZ); + } + + return chunk; } } diff --git a/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java b/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java new file mode 100644 index 000000000..467ee78ef --- /dev/null +++ b/src/main/java/com/hbm/world/biome/BiomeGenCraterBase.java @@ -0,0 +1,88 @@ +package com.hbm.world.biome; + +import com.hbm.config.WorldConfig; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary; + +import static net.minecraftforge.common.BiomeDictionary.Type.*; + +public class BiomeGenCraterBase extends BiomeGenBase { + + public static final BiomeGenBase craterBiome = new BiomeGenCrater(WorldConfig.craterBiomeId).setDisableRain().setBiomeName("Crater"); + public static final BiomeGenBase craterInnerBiome = new BiomeGenCraterInner(WorldConfig.craterBiomeInnerId).setDisableRain().setBiomeName("Inner Crater"); + public static final BiomeGenBase craterOuterBiome = new BiomeGenCraterOuter(WorldConfig.craterBiomeOuterId).setDisableRain().setBiomeName("Outer Crater"); + + public static void initDictionary() { + BiomeDictionary.registerBiomeType(craterBiome, DRY, DEAD, WASTELAND); + BiomeDictionary.registerBiomeType(craterInnerBiome, DRY, DEAD, WASTELAND); + BiomeDictionary.registerBiomeType(craterOuterBiome, DRY, DEAD, WASTELAND); + } + + public int getWaterColorMultiplier() { + return 0x505020; //0x50d030 + } + + public BiomeGenCraterBase(int id) { + super(id); + this.waterColorMultiplier = 0xE0FFAE; //swamp color + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.spawnableCaveCreatureList.clear(); + } + + public static class BiomeGenCrater extends BiomeGenCraterBase { + + public BiomeGenCrater(int id) { super(id); } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int x, int y, int z) { + double noise = plantNoise.func_151601_a((double) x * 0.225D, (double) z * 0.225D); + return noise < -0.1D ? 0x606060 : 0x505050; + } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor(int x, int y, int z) { return 0x6A7039; } + + @Override @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float temp) { return 0x525A52; } + } + + public static class BiomeGenCraterOuter extends BiomeGenCraterBase { + + public BiomeGenCraterOuter(int id) { super(id); } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int x, int y, int z) { + double noise = plantNoise.func_151601_a((double) x * 0.225D, (double) z * 0.225D); + return noise < -0.1D ? 0x776F59 : 0x6F6752; + } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor(int x, int y, int z) { return 0x6A7039; } + + @Override @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float temp) { return 0x6B9189; } + + } + + public static class BiomeGenCraterInner extends BiomeGenCraterBase { + + public BiomeGenCraterInner(int id) { super(id); } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int x, int y, int z) { + double noise = plantNoise.func_151601_a((double) x * 0.225D, (double) z * 0.225D); + return noise < -0.1D ? 0x404040 : 0x303030; + } + + @Override @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor(int x, int y, int z) { return 0x6A7039; } + + @Override @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float temp) { return 0x424A42; } + + } +} diff --git a/src/main/java/com/hbm/world/dungeon/Antenna.java b/src/main/java/com/hbm/world/dungeon/Antenna.java index b3832a1ab..b0bb8e6a1 100644 --- a/src/main/java/com/hbm/world/dungeon/Antenna.java +++ b/src/main/java/com/hbm/world/dungeon/Antenna.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; @@ -88,7 +89,7 @@ public class Antenna extends WorldGenerator world.setBlock(x + 1, y + 0, z + 2, ModBlocks.steel_poles, 3, 3); world.setBlock(x + 2, y + 0, z + 2, Blocks.chest, 0, 3); world.setBlockMetadataWithNotify(x + 2, y + 0, z + 2, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(x + 2, y, z + 2), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest)world.getTileEntity(x + 2, y, z + 2), 8); world.setBlock(x + 0, y + 1, z + 0, Blocks.air, 0, 3); world.setBlock(x + 1, y + 1, z + 0, ModBlocks.steel_poles, 2, 3); world.setBlock(x + 2, y + 1, z + 0, Blocks.air, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Barrel.java b/src/main/java/com/hbm/world/dungeon/Barrel.java index 40f80cd9f..14f2a7400 100644 --- a/src/main/java/com/hbm/world/dungeon/Barrel.java +++ b/src/main/java/com/hbm/world/dungeon/Barrel.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.tileentity.bomb.TileEntitySellafield; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; @@ -153,7 +154,7 @@ public class Barrel extends WorldGenerator { if(world.getBlock(x + 2, y + 1, z + 2) == ModBlocks.crate_steel) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityCrateSteel)world.getTileEntity(x + 2, y + 1, z + 2), 16); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityCrateSteel)world.getTileEntity(x + 2, y + 1, z + 2), 16); } world.setBlock(x + 3, y + 1, z + 2, sellafield, 3, 3); diff --git a/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java b/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java index d171f253b..68b8f2cbb 100644 --- a/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java +++ b/src/main/java/com/hbm/world/dungeon/CrashedVertibird.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; @@ -158,7 +159,7 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 6, y + 4 - yOffset, z + 7, Blocks.chest, 2, 3); if(world.getBlock(x + 6, y + 4 - yOffset, z + 7) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vertibird, (TileEntityChest)world.getTileEntity(x + 6, y + 4 - yOffset, z + 7), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_VERTIBIRD), (TileEntityChest)world.getTileEntity(x + 6, y + 4 - yOffset, z + 7), 8); } world.setBlock(x + 7, y + 4 - yOffset, z + 7, Block1, 0, 3); world.setBlock(x + 4, y + 4 - yOffset, z + 8, Block1, 0, 3); @@ -266,9 +267,9 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 6, y + 7 - yOffset, z + 8, Block1, 0, 3); world.setBlock(x + 7, y + 7 - yOffset, z + 8, Block1, 0, 3); world.setBlock(x + 3, y + 7 - yOffset, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + 7 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 4, y + 7 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 5, y + 7 - yOffset, z + 9, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 6, y + 7 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 6, y + 7 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 7, y + 7 - yOffset, z + 9, Block1, 0, 3); world.setBlock(x + 5, y + 7 - yOffset, z + 10, Block4, 0, 3); world.setBlock(x + 6, y + 7 - yOffset, z + 10, Block1, 0, 3); @@ -287,7 +288,7 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 5, y + 8 - yOffset, z + 6, Blocks.chest, 2, 3); if(world.getBlock(x + 5, y + 8 - yOffset, z + 6) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 5, y + 8 - yOffset, z + 6), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 5, y + 8 - yOffset, z + 6), 8); } world.setBlock(x + 6, y + 8 - yOffset, z + 6, Block1, 0, 3); world.setBlock(x + 7, y + 8 - yOffset, z + 6, Block1, 0, 3); @@ -303,13 +304,13 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 6, y + 8 - yOffset, z + 8, Block1, 0, 3); world.setBlock(x + 7, y + 8 - yOffset, z + 8, Block1, 0, 3); world.setBlock(x + 3, y + 8 - yOffset, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + 8 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 4, y + 8 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 5, y + 8 - yOffset, z + 9, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 6, y + 8 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 6, y + 8 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 7, y + 8 - yOffset, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + 8 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 4, y + 8 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 5, y + 8 - yOffset, z + 10, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 6, y + 8 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 6, y + 8 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 7, y + 8 - yOffset, z + 10, Block1, 0, 3); world.setBlock(x + 5, y + 8 - yOffset, z + 11, Block4, 0, 3); world.setBlock(x + 6, y + 8 - yOffset, z + 11, Block1, 0, 3); @@ -334,9 +335,9 @@ public class CrashedVertibird extends WorldGenerator world.setBlock(x + 4, y + 9 - yOffset, z + 9, Block1, 0, 3); world.setBlock(x + 5, y + 9 - yOffset, z + 9, Block4, 0, 3); world.setBlock(x + 6, y + 9 - yOffset, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + 9 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 4, y + 9 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 5, y + 9 - yOffset, z + 10, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 6, y + 9 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 6, y + 9 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 7, y + 9 - yOffset, z + 10, Block1, 0, 3); world.setBlock(x + 5, y + 9 - yOffset, z + 11, ModBlocks.red_wire_coated, 0, 3); world.setBlock(x + 6, y + 9 - yOffset, z + 11, Block1, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom001.java b/src/main/java/com/hbm/world/dungeon/DesertAtom001.java index 598f30699..2daed2527 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom001.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom001.java @@ -5,7 +5,8 @@ package com.hbm.world.dungeon; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import net.minecraft.block.Block; @@ -20,7 +21,7 @@ public class DesertAtom001 extends WorldGenerator { Block Block2 = ModBlocks.yellow_barrel; Block Block3 = ModBlocks.reinforced_sand; - Block Block4 = ModBlocks.nuke_man; + Block Block4 = ModBlocks.crashed_balefire; Block Block5 = ModBlocks.deco_steel; Block Block6 = ModBlocks.brick_light; Block Block7 = ModBlocks.deco_tungsten; @@ -30,7 +31,7 @@ public class DesertAtom001 extends WorldGenerator Block Block11 = ModBlocks.reinforced_glass; Block Block12 = ModBlocks.reinforced_lamp_off; Block Block13 = ModBlocks.pole_satellite_receiver; - Block Block14 = ModBlocks.machine_generator; + Block Block14 = ModBlocks.pwr_fuel; Block Block15 = ModBlocks.deco_titanium; Block Block16 = ModBlocks.block_lead; Block Block17 = ModBlocks.ore_schrabidium; @@ -214,7 +215,7 @@ public class DesertAtom001 extends WorldGenerator world.setBlock(x + 9, y + -4, z + 14, Blocks.chest, 2, 3); if(world.getBlock(x + 9, y + -4, z + 14) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.nuclear, (TileEntityChest)world.getTileEntity(x + 9, y + -4, z + 14), 10); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_MISC), (TileEntityChest)world.getTileEntity(x + 9, y + -4, z + 14), 10); } world.setBlock(x + 10, y + -4, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 11, y + -4, z + 14, Library.getRandomConcrete(), 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java index 5f1415e99..81fdc1634 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java @@ -5,7 +5,8 @@ package com.hbm.world.dungeon; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; @@ -30,7 +31,7 @@ public class DesertAtom002 Block Block11 = ModBlocks.reinforced_glass; Block Block12 = ModBlocks.reinforced_lamp_off; Block Block13 = ModBlocks.pole_satellite_receiver; - Block Block14 = ModBlocks.machine_generator; + Block Block14 = ModBlocks.pwr_fuel; Block Block15 = ModBlocks.deco_titanium; Block Block16 = ModBlocks.block_lead; Block Block17 = ModBlocks.ore_nether_plutonium; @@ -1162,7 +1163,7 @@ public class DesertAtom002 world.setBlock(x + 36, y + 0, z + 12, Blocks.chest, 3, 3); if(world.getBlock(x + 36, y + 0, z + 12) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 36, y + 0, z + 12), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 36, y + 0, z + 12), 8); } world.setBlock(x + 37, y + 0, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 40, y + 0, z + 12, ModBlocks.fence_metal, 0, 3); @@ -1183,7 +1184,7 @@ public class DesertAtom002 world.setBlock(x + 22, y + 0, z + 13, Blocks.chest, 4, 3); if(world.getBlock(x + 22, y + 0, z + 13) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 22, y + 0, z + 13), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 22, y + 0, z + 13), 8); } world.setBlock(x + 23, y + 0, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 24, y + 0, z + 13, Block9, 5, 3); @@ -1375,7 +1376,7 @@ public class DesertAtom002 world.setBlock(x + 24, y + 0, z + 26, Blocks.chest, 2, 3); if(world.getBlock(x + 24, y + 0, z + 26) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.nukeTrash, (TileEntityChest)world.getTileEntity(x + 24, y + 0, z + 26), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_TRASH), (TileEntityChest)world.getTileEntity(x + 24, y + 0, z + 26), 8); } world.setBlock(x + 25, y + 0, z + 26, Block2, 0, 3); world.setBlock(x + 30, y + 0, z + 26, Block2, 0, 3); @@ -1754,7 +1755,7 @@ public class DesertAtom002 world.setBlock(x + 18, y + 1, z + 16, ModBlocks.crate_steel, 0, 3); if(world.getBlock(x + 18, y + 1, z + 16) == ModBlocks.crate_steel) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityCrateSteel)world.getTileEntity(x + 18, y + 1, z + 16), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityCrateSteel)world.getTileEntity(x + 18, y + 1, z + 16), 12); } world.setBlock(x + 19, y + 1, z + 16, Library.getRandomConcrete(), 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java index 23104ddd3..de58b4283 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; @@ -33,7 +34,7 @@ public class DesertAtom003 Block Block11 = ModBlocks.reinforced_glass; Block Block12 = ModBlocks.reinforced_lamp_off; Block Block13 = ModBlocks.pole_satellite_receiver; - Block Block14 = ModBlocks.machine_generator; + Block Block14 = ModBlocks.pwr_fuel; Block Block15 = ModBlocks.deco_titanium; Block Block16 = ModBlocks.block_lead; Block Block17 = ModBlocks.ore_schrabidium; @@ -439,7 +440,7 @@ public class DesertAtom003 world.setBlock(x + 36, y + 4, z + 9, Blocks.chest, 2, 3); if(world.getBlock(x + 36, y + 4, z + 9) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.nuclear, (TileEntityChest)world.getTileEntity(x + 36, y + 4, z + 9), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_MISC), (TileEntityChest)world.getTileEntity(x + 36, y + 4, z + 9), 12); } world.setBlock(x + 37, y + 4, z + 9, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 40, y + 4, z + 9, Block5, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Factory.java b/src/main/java/com/hbm/world/dungeon/Factory.java index d5e060fc3..2d3ce64a9 100644 --- a/src/main/java/com/hbm/world/dungeon/Factory.java +++ b/src/main/java/com/hbm/world/dungeon/Factory.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -601,7 +602,7 @@ public class Factory extends WorldGenerator world.setBlockMetadataWithNotify(x + 9, y + 0, z + 4, 5, 3); if(world.getBlock(x + 9, y + 0, z + 4) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 4), rand.nextInt(2)+ 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 4), rand.nextInt(2)+ 8); } world.setBlock(x + 13, y + 0, z + 4, Blocks.hopper, 3, 3); world.setBlock(x + 14, y + 0, z + 4, Blocks.stonebrick, 0, 3); @@ -637,7 +638,7 @@ public class Factory extends WorldGenerator world.setBlockMetadataWithNotify(x + 9, y + 0, z + 10, 5, 3); if(world.getBlock(x + 9, y + 0, z + 10) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 10), rand.nextInt(2)+ 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 10), rand.nextInt(2)+ 8); } world.setBlock(x + 13, y + 0, z + 10, Blocks.hopper, 3, 3); world.setBlock(x + 14, y + 0, z + 10, Blocks.stonebrick, 0, 3); @@ -673,7 +674,7 @@ public class Factory extends WorldGenerator world.setBlockMetadataWithNotify(x + 9, y + 0, z + 16, 5, 3); if(world.getBlock(x + 9, y + 0, z + 16) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 16), rand.nextInt(2)+ 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 9, y + 0, z + 16), rand.nextInt(2)+ 8); } world.setBlock(x + 13, y + 0, z + 16, Blocks.hopper, 3, 3); world.setBlock(x + 14, y + 0, z + 16, Blocks.stonebrick, 0, 3); @@ -736,7 +737,7 @@ public class Factory extends WorldGenerator world.setBlockMetadataWithNotify(x + 4, y + 0, z + 25, 3, 3); if(world.getBlock(x + 4, y + 0, z + 25) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 4, y + 0, z + 25), rand.nextInt(2)+ 6); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 4, y + 0, z + 25), rand.nextInt(2)+ 6); } world.setBlock(x + 5, y + 0, z + 25, Blocks.lava, 0, 3); world.setBlock(x + 6, y + 0, z + 25, Blocks.stonebrick, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Radio01.java b/src/main/java/com/hbm/world/dungeon/Radio01.java index 4257fd171..36aa3d7c9 100644 --- a/src/main/java/com/hbm/world/dungeon/Radio01.java +++ b/src/main/java/com/hbm/world/dungeon/Radio01.java @@ -5,7 +5,8 @@ package com.hbm.world.dungeon; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; @@ -499,7 +500,7 @@ public class Radio01 extends WorldGenerator world.setBlock(x + 5, y + 0, z + 11, Blocks.flower_pot, 0, 3); world.setBlock(x + 6, y + 0, z + 11, Blocks.chest, 3, 3); world.setBlockMetadataWithNotify(x + 6, y + 0, z + 11, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 6, y + 0, z + 11), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 6, y + 0, z + 11), 8); world.setBlock(x + 7, y + 0, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 8, y + 0, z + 11, Blocks.air, 0, 3); world.setBlock(x + 9, y + 0, z + 11, Blocks.air, 0, 3); @@ -651,7 +652,7 @@ public class Radio01 extends WorldGenerator world.setBlock(x + 6, y + 0, z + 24, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 7, y + 0, z + 24, Blocks.chest, 2, 3); world.setBlockMetadataWithNotify(x + 7, y + 0, z + 24, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(x + 7, y + 0, z + 24), 8); + if(world.getTileEntity(x + 7, y + 0, z + 24) instanceof TileEntityChest) WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest) world.getTileEntity(x + 7, y + 0, z + 24), 8); world.setBlock(x + 8, y + 0, z + 24, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 9, y + 0, z + 24, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 10, y + 0, z + 24, Library.getRandomConcrete(), 0, 3); @@ -1607,7 +1608,7 @@ public class Radio01 extends WorldGenerator world.setBlock(x + 6, y + 4, z + 6, Blocks.air, 0, 3); world.setBlock(x + 7, y + 4, z + 6, Blocks.chest, 4, 3); world.setBlockMetadataWithNotify(x + 7, y + 4, z + 6, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 7, y + 4, z + 6), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 7, y + 4, z + 6), 8); world.setBlock(x + 8, y + 4, z + 6, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 9, y + 4, z + 6, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 10, y + 4, z + 6, Library.getRandomConcrete(), 0, 3); @@ -1697,7 +1698,7 @@ public class Radio01 extends WorldGenerator world.setBlock(x + 3, y + 4, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 4, y + 4, z + 14, Blocks.chest, 2, 3); world.setBlockMetadataWithNotify(x + 4, y + 4, z + 14, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 4, y + 4, z + 14), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 4, y + 4, z + 14), 8); world.setBlock(x + 5, y + 4, z + 14, Blocks.air, 0, 3); world.setBlock(x + 6, y + 4, z + 14, ModBlocks.tape_recorder, 4, 3); world.setBlock(x + 7, y + 4, z + 14, Blocks.oak_stairs, 5, 3); @@ -2817,7 +2818,7 @@ public class Radio01 extends WorldGenerator WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityChest)world.getTileEntity(x + 5, y + 8, z + 11), 16);*/ world.setBlock(x + 5, y + 8, z + 11, ModBlocks.crate_steel, 0, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityCrateSteel)world.getTileEntity(x + 5, y + 8, z + 11), 16); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityCrateSteel)world.getTileEntity(x + 5, y + 8, z + 11), 16); world.setBlock(x + 6, y + 8, z + 11, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 7, y + 8, z + 11, Blocks.air, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Relay.java b/src/main/java/com/hbm/world/dungeon/Relay.java index 93fb53610..de4920fc9 100644 --- a/src/main/java/com/hbm/world/dungeon/Relay.java +++ b/src/main/java/com/hbm/world/dungeon/Relay.java @@ -8,8 +8,9 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.config.GeneralConfig; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.items.ModItems; -import com.hbm.lib.HbmChestContents; import com.hbm.lib.Library; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import com.hbm.util.LootGenerator; @@ -658,7 +659,7 @@ public class Relay extends WorldGenerator world.setBlock(x + 4, y + 0, z + 10, Blocks.brick_block, 0, 3); world.setBlock(x + 6, y + 0, z + 10, ModBlocks.crate_iron, 0, 3); world.setBlockMetadataWithNotify(x + 6, y + 0, z + 10, 3, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityCrateIron)world.getTileEntity(x + 6, y + 0, z + 10), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityCrateIron)world.getTileEntity(x + 6, y + 0, z + 10), 8); if(world.rand.nextInt(5) == 0) { ((TileEntityCrateIron)world.getTileEntity(x + 6, y + 0, z + 10)).setInventorySlotContents(11, new ItemStack(ModItems.morning_glory)); @@ -1295,7 +1296,7 @@ public class Relay extends WorldGenerator world.setBlock(x + 7, y + 14, z + 6, Block4, s2, 3); world.setBlock(x + 8, y + 14, z + 6, ModBlocks.crate_iron, 0, 3); world.setBlockMetadataWithNotify(x + 8, y + 14, z + 6, 3, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityCrateIron)world.getTileEntity(x + 8, y + 14, z + 6), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityCrateIron)world.getTileEntity(x + 8, y + 14, z + 6), 8); world.setBlock(x + 9, y + 14, z + 6, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 10, y + 14, z + 6, Block6, 0, 3); world.setBlock(x + 9, y + 14, z + 7, ModBlocks.fence_metal, 0, 3); @@ -1515,7 +1516,7 @@ public class Relay extends WorldGenerator world.setBlock(x + 5, y + 32, z + 2, Block6, 0, 3); world.setBlock(x + 6, y + 32, z + 2, ModBlocks.crate_iron, 0, 3); world.setBlockMetadataWithNotify(x + 6, y + 32, z + 2, 2, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityCrateIron)world.getTileEntity(x + 6, y + 32, z + 2), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityCrateIron)world.getTileEntity(x + 6, y + 32, z + 2), 8); world.setBlock(x + 7, y + 32, z + 2, Block6, 0, 3); world.setBlock(x + 5, y + 32, z + 3, Block4, s3, 3); world.setBlock(x + 6, y + 32, z + 3, Block2, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Satellite.java b/src/main/java/com/hbm/world/dungeon/Satellite.java index 33c4b9273..9de904cde 100644 --- a/src/main/java/com/hbm/world/dungeon/Satellite.java +++ b/src/main/java/com/hbm/world/dungeon/Satellite.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import com.hbm.util.LootGenerator; @@ -976,7 +977,7 @@ public class Satellite extends WorldGenerator world.setBlock(x + 7, y + 14, z + 19, dSteel, 0, 3); world.setBlock(x + 10, y + 14, z + 19, Blocks.chest, 3, 3); world.setBlockMetadataWithNotify(x + 10, y + 14, z + 19, 3, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 10, y + 14, z + 19), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 10, y + 14, z + 19), 8); world.setBlock(x + 19, y + 14, z + 19, dSteel, 0, 3); world.setBlock(x + 20, y + 14, z + 19, dSteel, 0, 3); world.setBlock(x + 21, y + 14, z + 19, dSteel, 0, 3); @@ -1005,7 +1006,7 @@ public class Satellite extends WorldGenerator world.setBlock(x + 7, y + 14, z + 27, dSteel, 0, 3); world.setBlock(x + 16, y + 14, z + 27, Blocks.chest, 2, 3); world.setBlockMetadataWithNotify(x + 16, y + 14, z + 27, 3, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(x + 16, y + 14, z + 27), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest)world.getTileEntity(x + 16, y + 14, z + 27), 8); world.setBlock(x + 19, y + 14, z + 27, dSteel, 0, 3); world.setBlock(x + 5, y + 14, z + 28, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 6, y + 14, z + 28, ModBlocks.fence_metal, 0, 3); @@ -1423,7 +1424,7 @@ public class Satellite extends WorldGenerator world.setBlock(x + 18, y + 19, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 19, z + 12, Blocks.chest, 4, 3); world.setBlockMetadataWithNotify(x + 19, y + 19, z + 12, 4, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 19, y + 19, z + 12), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 19, y + 19, z + 12), 12); world.setBlock(x + 20, y + 19, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 21, y + 19, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 17, y + 19, z + 13, Library.getRandomConcrete(), 0, 3); @@ -2440,7 +2441,7 @@ public class Satellite extends WorldGenerator //world.setBlock(x + 5, y + 39, z + 12, Block7, 0, 3); world.setBlock(x + 5, y + 39, z + 12, Blocks.chest, 4, 3); world.setBlockMetadataWithNotify(x + 5, y + 39, z + 12, 4, 3); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 5, y + 39, z + 12), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 5, y + 39, z + 12), 12); world.setBlock(x + 6, y + 39, z + 12, Block7, 0, 3); world.setBlock(x + 7, y + 39, z + 12, Block4, 0, 3); world.setBlock(x + 8, y + 39, z + 12, Block4, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Silo.java b/src/main/java/com/hbm/world/dungeon/Silo.java index fba097d42..076a7ff63 100644 --- a/src/main/java/com/hbm/world/dungeon/Silo.java +++ b/src/main/java/com/hbm/world/dungeon/Silo.java @@ -4,9 +4,13 @@ package com.hbm.world.dungeon; import java.util.Random; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.LaunchPad; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.Library; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -15,6 +19,7 @@ import net.minecraft.tileentity.TileEntityChest; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraftforge.common.util.ForgeDirection; public class Silo extends WorldGenerator { @@ -374,8 +379,6 @@ public class Silo extends WorldGenerator world.setBlock(x + 6, y + -20, z + 10, Blocks.air, 0, 3); world.setBlock(x + 7, y + -20, z + 10, Blocks.air, 0, 3); world.setBlock(x + 8, y + -20, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 9, y + -20, z + 10, Block2, 0, 3); - world.setBlock(x + 10, y + -20, z + 10, Blocks.unpowered_repeater, 3, 3); world.setBlock(x + 11, y + -20, z + 10, Blocks.redstone_wire, 0, 3); world.setBlock(x + 12, y + -20, z + 10, Blocks.redstone_wire, 0, 3); world.setBlock(x + 13, y + -20, z + 10, Blocks.iron_bars, 0, 3); @@ -388,7 +391,7 @@ public class Silo extends WorldGenerator world.setBlockMetadataWithNotify(x + 19, y + -20, z + 10, 5, 3); if(world.getBlock(x + 19, y + -20, z + 10) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 19, y + -20, z + 10), rand.nextInt(2)+ 6); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 19, y + -20, z + 10), rand.nextInt(2)+ 6); } world.setBlock(x + 20, y + -20, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 0, y + -20, z + 11, Library.getRandomConcrete(), 0, 3); @@ -856,7 +859,7 @@ public class Silo extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -17, z + 2, 3, 3); if(world.getBlock(x + 8, y + -17, z + 2) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.missile, (TileEntityChest)world.getTileEntity(x + 8, y + -17, z + 2), rand.nextInt(2)+ 6); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsComponent.POOL_SILO), (TileEntityChest)world.getTileEntity(x + 8, y + -17, z + 2), rand.nextInt(2)+ 6); } world.setBlock(x + 10, y + -17, z + 2, Blocks.air, 0, 3); world.setBlock(x + 11, y + -17, z + 2, Library.getRandomConcrete(), 0, 3); @@ -1640,7 +1643,7 @@ public class Silo extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -9, z + 5, 3, 3); if(world.getBlock(x + 8, y + -9, z + 5) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest)world.getTileEntity(x + 8, y + -9, z + 5), rand.nextInt(2)+ 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), (TileEntityChest)world.getTileEntity(x + 8, y + -9, z + 5), rand.nextInt(2)+ 8); } world.setBlock(x + 8, y + -10, z + 5, Blocks.stone_slab, 8, 3); world.setBlock(x + 9, y + -9, z + 5, Blocks.planks, 0, 3); @@ -2474,6 +2477,14 @@ public class Silo extends WorldGenerator world.setBlock(x + 8, y + 1, z + 13, Block6, 0, 3); world.setBlock(x + 9, y + 1, z + 13, Block6, 0, 3); world.setBlock(x + 10, y + 1, z + 13, Block6, 0, 3); + + + BlockDummyable.safeRem = true; + world.setBlock(x + 9, y + -20, z + 10, ModBlocks.launch_pad, 12, 3); + ((LaunchPad) ModBlocks.launch_pad).fillSpace(world, x + 9, y + -20, z + 10, ForgeDirection.NORTH, 0); + BlockDummyable.safeRem = false; + + //world.setBlock(x + 9, y + -20, z + 10, ModBlocks.stone_biome, 1, 3); generate_r03_last(world, rand, x, y, z); return true; @@ -2520,6 +2531,7 @@ public class Silo extends WorldGenerator world.setBlock(x + 9, y + -1, z + 2, Blocks.ladder, 3, 3); world.setBlock(x + 9, y + 0, z + 2, Blocks.ladder, 3, 3); world.setBlock(x + 9, y + 1, z + 2, Blocks.ladder, 3, 3); + if(GeneralConfig.enableDebugMode) System.out.print("[Debug] Successfully spawned missile silo at " + x + " " + y +" " + z + "\n"); return true; diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship.java b/src/main/java/com/hbm/world/dungeon/Spaceship.java index c5f4cc5e2..4ab3bba36 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship.java @@ -5,7 +5,8 @@ package com.hbm.world.dungeon; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -22,7 +23,7 @@ public class Spaceship extends WorldGenerator Block Block3 = ModBlocks.deco_steel; Block Block4 = ModBlocks.fusion_heater; Block Block5 = ModBlocks.block_meteor; - Block Block6 = ModBlocks.reactor_element; + Block Block6 = ModBlocks.pwr_fuel; Block Block7 = ModBlocks.cable_switch; Block Block8 = ModBlocks.fusion_hatch; Block Block9 = ModBlocks.reinforced_light; @@ -455,7 +456,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 5, y + -2, z + 25, 5, 3); if(world.getBlock(x + 5, y + -2, z + 25) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.spaceship, (TileEntityChest)world.getTileEntity(x + 5, y + -2, z + 25), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_SPACESHIP), (TileEntityChest)world.getTileEntity(x + 5, y + -2, z + 25), 12); } world.setBlock(x + 6, y + -2, z + 25, Blocks.air, 0, 3); world.setBlock(x + 7, y + -2, z + 25, Blocks.air, 0, 3); @@ -463,7 +464,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -2, z + 25, 4, 3); if(world.getBlock(x + 8, y + -2, z + 25) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.spaceship, (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 25), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_SPACESHIP), (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 25), 12); } world.setBlock(x + 9, y + -2, z + 25, Block3, 0, 3); world.setBlock(x + 10, y + -2, z + 25, Block2, 0, 3); @@ -477,7 +478,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 5, y + -2, z + 26, 5, 3); if(world.getBlock(x + 5, y + -2, z + 26) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.spaceship, (TileEntityChest)world.getTileEntity(x + 5, y + -2, z + 26), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_SPACESHIP), (TileEntityChest)world.getTileEntity(x + 5, y + -2, z + 26), 12); } world.setBlock(x + 6, y + -2, z + 26, Blocks.air, 0, 3); world.setBlock(x + 7, y + -2, z + 26, Blocks.air, 0, 3); @@ -485,7 +486,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -2, z + 26, 4, 3); if(world.getBlock(x + 8, y + -2, z + 26) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.spaceship, (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 26), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_SPACESHIP), (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 26), 12); } world.setBlock(x + 9, y + -2, z + 26, Block3, 0, 3); world.setBlock(x + 10, y + -2, z + 26, Block3, 0, 3); @@ -623,7 +624,7 @@ public class Spaceship extends WorldGenerator world.setBlockMetadataWithNotify(x + 8, y + -2, z + 38, 2, 3); if(world.getBlock(x + 8, y + -2, z + 38) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 38), 12); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), (TileEntityChest)world.getTileEntity(x + 8, y + -2, z + 38), 12); } world.setBlock(x + 9, y + -2, z + 38, Block3, 0, 3); world.setBlock(x + 4, y + -2, z + 39, Block3, 0, 3); @@ -888,14 +889,14 @@ public class Spaceship extends WorldGenerator world.setBlock(x + 10, y + -1, z + 29, Block3, 0, 3); world.setBlock(x + 11, y + -1, z + 29, Block3, 0, 3); world.setBlock(x + 2, y + -1, z + 30, Block3, 0, 3); - world.setBlock(x + 3, y + -1, z + 30, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 3, y + -1, z + 30, ModBlocks.pwr_control, 0, 3); world.setBlock(x + 4, y + -1, z + 30, ModBlocks.red_cable, 0, 3); world.setBlock(x + 5, y + -1, z + 30, Blocks.air, 0, 3); world.setBlock(x + 6, y + -1, z + 30, Blocks.air, 0, 3); world.setBlock(x + 7, y + -1, z + 30, Blocks.air, 0, 3); world.setBlock(x + 8, y + -1, z + 30, Blocks.air, 0, 3); world.setBlock(x + 9, y + -1, z + 30, ModBlocks.red_cable, 0, 3); - world.setBlock(x + 10, y + -1, z + 30, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 10, y + -1, z + 30, ModBlocks.pwr_control, 0, 3); world.setBlock(x + 11, y + -1, z + 30, Block3, 0, 3); world.setBlock(x + 2, y + -1, z + 31, Block2, 0, 3); world.setBlock(x + 3, y + -1, z + 31, Block3, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship2.java b/src/main/java/com/hbm/world/dungeon/Spaceship2.java index 165fd93d8..d94cb01ae 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship2.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship2.java @@ -18,7 +18,7 @@ public class Spaceship2 Block Block3 = ModBlocks.deco_steel; Block Block4 = ModBlocks.fusion_heater; Block Block5 = ModBlocks.block_meteor; - Block Block6 = ModBlocks.reactor_element; + Block Block6 = ModBlocks.pwr_fuel; Block Block8 = ModBlocks.fusion_hatch; Block Block9 = ModBlocks.reinforced_light; Block Block10 = ModBlocks.reinforced_glass; diff --git a/src/main/java/com/hbm/world/dungeon/Vertibird.java b/src/main/java/com/hbm/world/dungeon/Vertibird.java index a8b09f4b0..67b34f015 100644 --- a/src/main/java/com/hbm/world/dungeon/Vertibird.java +++ b/src/main/java/com/hbm/world/dungeon/Vertibird.java @@ -6,7 +6,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsLegacy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; @@ -141,7 +142,7 @@ public class Vertibird extends WorldGenerator world.setBlock(x + 14, y + 2 - yOffset, z + 7, Blocks.chest, 2, 3); if(world.getBlock(x + 14, y + 2 - yOffset, z + 7) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vertibird, (TileEntityChest)world.getTileEntity(x + 14, y + 2 - yOffset, z + 7), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_VERTIBIRD), (TileEntityChest)world.getTileEntity(x + 14, y + 2 - yOffset, z + 7), 8); } world.setBlock(x + 15, y + 2 - yOffset, z + 7, Block2, 0, 3); world.setBlock(x + 12, y + 2 - yOffset, z + 8, Block2, 0, 3); @@ -224,14 +225,14 @@ public class Vertibird extends WorldGenerator world.setBlock(x + 14, y + 4 - yOffset, z + 8, Block2, 0, 3); world.setBlock(x + 15, y + 4 - yOffset, z + 8, Block2, 0, 3); world.setBlock(x + 11, y + 4 - yOffset, z + 9, Block2, 0, 3); - world.setBlock(x + 12, y + 4 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 12, y + 4 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 13, y + 4 - yOffset, z + 9, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 14, y + 4 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 14, y + 4 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 15, y + 4 - yOffset, z + 9, Block2, 0, 3); world.setBlock(x + 11, y + 4 - yOffset, z + 10, Block2, 0, 3); - world.setBlock(x + 12, y + 4 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 12, y + 4 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 13, y + 4 - yOffset, z + 10, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 14, y + 4 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 14, y + 4 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 15, y + 4 - yOffset, z + 10, Block2, 0, 3); world.setBlock(x + 11, y + 4 - yOffset, z + 11, Block2, 0, 3); world.setBlock(x + 12, y + 4 - yOffset, z + 11, Block2, 0, 3); @@ -304,14 +305,14 @@ public class Vertibird extends WorldGenerator world.setBlock(x + 14, y + 5 - yOffset, z + 8, Block2, 0, 3); world.setBlock(x + 15, y + 5 - yOffset, z + 8, Block2, 0, 3); world.setBlock(x + 11, y + 5 - yOffset, z + 9, Block2, 0, 3); - world.setBlock(x + 12, y + 5 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 12, y + 5 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 13, y + 5 - yOffset, z + 9, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 14, y + 5 - yOffset, z + 9, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 14, y + 5 - yOffset, z + 9, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 15, y + 5 - yOffset, z + 9, Block2, 0, 3); world.setBlock(x + 11, y + 5 - yOffset, z + 10, Block2, 0, 3); - world.setBlock(x + 12, y + 5 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 12, y + 5 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 13, y + 5 - yOffset, z + 10, ModBlocks.red_wire_coated, 0, 3); - world.setBlock(x + 14, y + 5 - yOffset, z + 10, ModBlocks.machine_generator, 0, 3); + world.setBlock(x + 14, y + 5 - yOffset, z + 10, ModBlocks.block_electrical_scrap, 0, 3); world.setBlock(x + 15, y + 5 - yOffset, z + 10, Block2, 0, 3); world.setBlock(x + 12, y + 5 - yOffset, z + 11, Block2, 0, 3); world.setBlock(x + 13, y + 5 - yOffset, z + 11, ModBlocks.red_wire_coated, 0, 3); @@ -391,7 +392,7 @@ public class Vertibird extends WorldGenerator world.setBlock(x + 13, y + 6 - yOffset, z + 6, Blocks.chest, 2, 3); if(world.getBlock(x + 13, y + 6 - yOffset, z + 6) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.vertibird, (TileEntityChest)world.getTileEntity(x + 13, y + 6 - yOffset, z + 6), 8); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_VERTIBIRD), (TileEntityChest)world.getTileEntity(x + 13, y + 6 - yOffset, z + 6), 8); } world.setBlock(x + 14, y + 6 - yOffset, z + 6, Block2, 0, 3); world.setBlock(x + 15, y + 6 - yOffset, z + 6, Block2, 0, 3); diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index cce83e8ec..f4586c795 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -1,14 +1,17 @@ package com.hbm.world.feature; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.config.WorldConfig; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.util.WeightedRandomGeneric; @@ -20,33 +23,51 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class BedrockOre { - + public static List> weightedOres = new ArrayList(); + public static List> weightedOresNether = new ArrayList(); + + public static HashMap replacements = new HashMap(); public static void init() { - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); - registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.coal, 4), 1, 0x202020), WorldConfig.bedrockCoalSpawn); - registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); - registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.fluorite, 4), 1, 0xd0d0d0), WorldConfig.bedrockFluoriteSpawn); - registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.PEROXIDE, 500)), WorldConfig.bedrockNiobiumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NEODYMIUM, 3, new FluidStack(Fluids.PEROXIDE, 500)), WorldConfig.bedrockNeodymiumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.PEROXIDE, 500)), WorldConfig.bedrockTungstenSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.FLUORITE, 1), WorldConfig.bedrockFluoriteSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 8), 1, 0x202020), WorldConfig.bedrockCoalSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.PEROXIDE, 500)), WorldConfig.bedrockNiterSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.emerald, 4), 1, 0x3FDD85), WorldConfig.bedrockEmeraldSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), 2, 0x8F9999, new FluidStack(Fluids.PEROXIDE, 500)), WorldConfig.bedrockRareEarthSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE, 2),1, 0xEF7213), WorldConfig.bedrockBauxiteSpawn); + + registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.glowstone_dust, 4), 1, 0xF9FF4D), WorldConfig.bedrockGlowstoneSpawn); + registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(ModItems.powder_fire, 4), 1, 0xD7341F), WorldConfig.bedrockPhosphorusSpawn); + registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.quartz, 4), 1, 0xF0EFDD), WorldConfig.bedrockQuartzSpawn); + + replacements.put("ore" + EnumBedrockOre.IRON.oreName, new BedrockOreDefinition(EnumBedrockOre.HEMATITE, 1)); + replacements.put("ore" + EnumBedrockOre.COPPER.oreName, new BedrockOreDefinition(EnumBedrockOre.MALACHITE, 1)); } - public static void registerBedrockOre(BedrockOreDefinition def, int weight) { + public static void registerBedrockOre(List list, BedrockOreDefinition def, int weight) { WeightedRandomGeneric weighted = new WeightedRandomGeneric(def, weight); - weightedOres.add(weighted); + list.add(weighted); } public static void generate(World world, int x, int z, ItemStack stack, FluidStack acid, int color, int tier) { + generate(world, x, z, stack, acid, color, tier, ModBlocks.stone_depth); + } + + public static void generate(World world, int x, int z, ItemStack stack, FluidStack acid, int color, int tier, Block depthRock) { for(int ix = x - 1; ix <= x + 1; ix++) { for(int iz = z - 1; iz <= z + 1; iz++) { @@ -77,7 +98,7 @@ public class BedrockOre { Block b = world.getBlock(ix, iy, iz); if(b.isReplaceableOreGen(world, ix, iy, iz, Blocks.stone) || b.isReplaceableOreGen(world, ix, iy, iz, Blocks.bedrock)) { - world.setBlock(ix, iy, iz, ModBlocks.stone_depth); + world.setBlock(ix, iy, iz, depthRock); } } } @@ -88,6 +109,7 @@ public class BedrockOre { public static class BedrockOreDefinition { public ItemStack stack; public FluidStack acid; + public String id; public int tier; public int color; @@ -97,6 +119,7 @@ public class BedrockOre { public BedrockOreDefinition(ItemStack stack, int tier, int color, FluidStack acid) { this.stack = stack; + this.id = stack.toString(); this.tier = tier; this.color = color; this.acid = acid; @@ -108,6 +131,7 @@ public class BedrockOre { public BedrockOreDefinition(EnumBedrockOre type, int tier, FluidStack acid) { this.stack = DictFrame.fromOne(ModItems.ore_bedrock, type); + this.id = "ore" + type.oreName; this.color = type.color; this.tier = tier; this.acid = acid; diff --git a/src/main/java/com/hbm/world/feature/BiomeCave.java b/src/main/java/com/hbm/world/feature/BiomeCave.java index 0add71808..be98089b6 100644 --- a/src/main/java/com/hbm/world/feature/BiomeCave.java +++ b/src/main/java/com/hbm/world/feature/BiomeCave.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ModBlocks; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; +import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase.TempCategory; @@ -95,7 +96,7 @@ public class BiomeCave { private static void handleBiome(World world, int x, int y, int z, EnumBiomeType type) { Block target = world.getBlock(x, y, z); - if(target.isNormalCube()) { + if(target.isNormalCube() && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { boolean shouldGen = false; diff --git a/src/main/java/com/hbm/world/feature/DeepLayer.java b/src/main/java/com/hbm/world/feature/DeepLayer.java deleted file mode 100644 index b8f29cf41..000000000 --- a/src/main/java/com/hbm/world/feature/DeepLayer.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.world.feature; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.gen.NoiseGeneratorPerlin; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; - -public class DeepLayer { - - NoiseGeneratorPerlin noise; - - @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { - - World world = event.world; - if(world.provider == null || world.provider.dimensionId != 0) return; - - if(this.noise == null) { - this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed() + 19), 4); - } - - int cX = event.chunkX; - int cZ = event.chunkZ; - - double scale = 0.01D; - int threshold = 2; - - for(int x = cX + 8; x < cX + 24; x++) { - for(int z = cZ + 8; z < cZ + 24; z++) { - - double n = noise.func_151601_a(x * scale, z * scale); - - if(n > threshold) { - int range = (int)((n - threshold) * 8); - - if(range > 24) - range = 48 - range; - - if(range < 0) - continue; - - for(int y = 1; y <= range; y++) { - - Block target = world.getBlock(x, y, z); - - if(target.isNormalCube() && target.getMaterial() == Material.rock && target != Blocks.bedrock) { - - boolean lava = false; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - Block neighbor = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - if(neighbor.getMaterial() == Material.lava) { - lava = true; - break; - } - } - - if(lava || world.rand.nextInt(10) == 0) { - world.setBlock(x, y, z, ModBlocks.stone_deep_cobble, 1, 2); - } else if(world.rand.nextInt(10) == 0 && world.getBlock(x, y + 1, z).getMaterial() == Material.air) { - world.setBlock(x, y, z, ModBlocks.stone_deep_cobble, 2, 2); - } else { - world.setBlock(x, y, z, ModBlocks.stone_deep_cobble, 0, 2); - } - } - } - } - } - } - } -} diff --git a/src/main/java/com/hbm/world/feature/GlyphidHive.java b/src/main/java/com/hbm/world/feature/GlyphidHive.java index 5c60e3ff2..f615b6519 100644 --- a/src/main/java/com/hbm/world/feature/GlyphidHive.java +++ b/src/main/java/com/hbm/world/feature/GlyphidHive.java @@ -3,126 +3,117 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.util.LootGenerator; import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntitySkull; import net.minecraft.world.World; public class GlyphidHive { - public static final int[][][] schematic = new int[][][] { + public static final int[][][] schematicSmall = new int[][][] { { {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, - }, - { - {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,1,9,9,9,9,9,1,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, }, { {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,4,4,4,0,0,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,3,1,9,9,9,9,9,1,5,0}, - {0,3,9,9,9,9,9,9,9,5,0}, - {0,3,1,9,9,9,9,9,1,5,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,0,0,2,2,2,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, - }, - { - {0,0,0,0,0,4,0,0,0,0,0}, - {0,0,0,0,4,4,4,0,0,0,0}, - {0,0,0,1,4,9,4,1,0,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,3,3,9,9,9,9,9,5,5,0}, - {3,3,9,9,9,9,9,9,9,5,5}, - {0,3,3,9,9,9,9,9,5,5,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,0,1,2,9,2,1,0,0,0}, - {0,0,0,0,2,2,2,0,0,0,0}, - {0,0,0,0,0,2,0,0,0,0,0}, - }, - { - {0,0,0,0,4,4,4,0,0,0,0}, - {0,0,0,1,4,4,4,1,0,0,0}, - {0,0,1,1,4,9,4,1,1,0,0}, - {0,1,1,1,9,9,0,1,1,1,0}, - {3,3,3,9,9,9,9,9,5,5,5}, - {3,3,9,9,9,9,9,9,9,5,5}, - {3,3,3,9,9,9,9,9,5,5,5}, - {0,1,1,1,9,9,9,1,1,1,0}, - {0,0,1,1,2,9,2,1,1,0,0}, - {0,0,0,1,2,2,2,1,0,0,0}, - {0,0,0,0,2,2,2,0,0,0,0}, - }, - { {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,1,1,1,1,1,0,0,0}, {0,0,1,1,1,1,1,1,1,0,0}, - {0,1,1,1,1,1,1,1,1,1,0}, - {1,1,1,1,1,1,1,1,1,1,1}, - {1,1,1,1,1,1,1,1,1,1,1}, - {1,1,1,1,1,1,1,1,1,1,1}, - {0,1,1,1,1,1,1,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, {0,0,1,1,1,1,1,1,1,0,0}, {0,0,0,1,1,1,1,1,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, }, { {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,1,1,1,3,3,3,1,1,1,0}, + {0,1,1,1,3,3,3,1,1,1,0}, + {0,1,1,1,3,3,3,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,1,1,2,2,2,1,1,0,0}, + {0,1,1,2,2,2,2,2,1,1,0}, + {0,1,1,2,2,2,2,2,1,1,0}, + {0,1,1,2,2,2,2,2,1,1,0}, + {0,0,1,1,2,2,2,1,1,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, {0,0,1,1,1,1,1,1,1,0,0}, {0,1,1,1,1,1,1,1,1,1,0}, {0,1,1,1,1,1,1,1,1,1,0}, {0,1,1,1,1,1,1,1,1,1,0}, {0,0,1,1,1,1,1,1,1,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, } }; - - public static void generate(World world, int x, int y, int z, Random rand) { - - int orientation = rand.nextInt(4) + 2; + public static void generateSmall(World world, int x, int y, int z, Random rand, boolean infected, boolean loot) { + int overrideMeta = infected ? 1 : 0; for(int i = 0; i < 11; i++) { - for(int j = 0; j < 7; j++) { + for(int j = 0; j < 5; j++) { for(int k = 0; k < 11; k++) { - int block = schematic[6 - j][i][k]; + int block = schematicSmall[4 - j][i][k]; + int iX = x + i - 5; + int iY = y + j - 2; + int iZ = z + k - 5; - if(block == 1 || (block != orientation && block > 1 && block < 6)) { - world.setBlock(x + i - 5, y + j - 2, z + k - 5, ModBlocks.glyphid_base); - } - if(block == 9) { - world.setBlock(x + i - 5, y + j - 2, z + k - 5, Blocks.air); + switch(block) { + case 1: world.setBlock(iX, iY, iZ, ModBlocks.glyphid_base, overrideMeta, 2); break; + case 2: world.setBlock(iX, iY, iZ, rand.nextInt(3) == 0 ? ModBlocks.glyphid_spawner : ModBlocks.glyphid_base, overrideMeta, 2); break; + case 3: + int r = rand.nextInt(3); + if(r == 0) { + world.setBlock(iX, iY, iZ, Blocks.skull, 1, 3); + TileEntitySkull skull = (TileEntitySkull) world.getTileEntity(iX, iY, iZ); + if(skull != null) skull.func_145903_a(rand.nextInt(16)); + } else if(r == 1) { + world.setBlock(iX, iY, z + k - 5, ModBlocks.deco_loot, 0, 2); + LootGenerator.lootBones(world, iX, iY, iZ); + } else if(r == 2) { + if(loot) { + world.setBlock(iX, iY, iZ, ModBlocks.deco_loot, 0, 2); + LootGenerator.lootGlyphidHive(world, iX, iY, iZ); + } else { + world.setBlock(iX, iY, iZ, ModBlocks.glyphid_base, overrideMeta, 2); + } + } + break; } } } } - - world.setBlock(x, y - 1, z, ModBlocks.glyphid_spawner); } } diff --git a/src/main/java/com/hbm/world/feature/Meteorite.java b/src/main/java/com/hbm/world/feature/Meteorite.java index c383eefa0..ff80fe266 100644 --- a/src/main/java/com/hbm/world/feature/Meteorite.java +++ b/src/main/java/com/hbm/world/feature/Meteorite.java @@ -5,11 +5,12 @@ import java.util.HashSet; import java.util.List; import java.util.Random; +import com.hbm.blocks.BlockEnums.EnumMeteorType; import com.hbm.blocks.ModBlocks; import com.hbm.config.WorldConfig; import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.interfaces.Spaghetti; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; @@ -121,11 +122,6 @@ public class Meteorite { generateSphere5x5(world, rand, x, y, z, list10); setBlock(world, x, y, z, ModBlocks.taint, 9, 2); return; - case 11: - // Atomic meteorite - - ExplosionNukeSmall.explode(world, x + 0.5, y + 0.5, z + 0.5, safe ? ExplosionNukeSmall.PARAMS_SAFE : ExplosionNukeSmall.PARAMS_MEDIUM); - return; case 12: // Star Blaster world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 10F, !safe); @@ -693,30 +689,8 @@ public class Meteorite { } public List getRandomOre(Random rand) { - List ores = new ArrayList(); - - for(int i = 0; i < 3; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_uranium)); - for(int i = 0; i < 5; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_thorium)); - for(int i = 0; i < 6; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_titanium)); - for(int i = 0; i < 7; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_sulfur)); - for(int i = 0; i < 8; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_copper)); - for(int i = 0; i < 5; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_tungsten)); - for(int i = 0; i < 7; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_aluminium)); - for(int i = 0; i < 6; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_lead)); - for(int i = 0; i < 4; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_lithium)); - for(int i = 0; i < 1; i++) - ores.add(new ItemStack(ModBlocks.ore_meteor_starmetal)); - + for(EnumMeteorType num : EnumMeteorType.values()) ores.add(DictFrame.fromOne(ModBlocks.ore_meteor, num)); return ores; } @@ -740,15 +714,6 @@ public class Meteorite { replacables.add(ModBlocks.block_meteor_cobble); replacables.add(ModBlocks.block_meteor_molten); replacables.add(ModBlocks.block_meteor_treasure); - replacables.add(ModBlocks.ore_meteor_uranium); - replacables.add(ModBlocks.ore_meteor_thorium); - replacables.add(ModBlocks.ore_meteor_titanium); - replacables.add(ModBlocks.ore_meteor_sulfur); - replacables.add(ModBlocks.ore_meteor_copper); - replacables.add(ModBlocks.ore_meteor_tungsten); - replacables.add(ModBlocks.ore_meteor_aluminium); - replacables.add(ModBlocks.ore_meteor_lead); - replacables.add(ModBlocks.ore_meteor_lithium); - replacables.add(ModBlocks.ore_meteor_starmetal); + replacables.add(ModBlocks.ore_meteor); } } diff --git a/src/main/java/com/hbm/world/feature/OreCave.java b/src/main/java/com/hbm/world/feature/OreCave.java index eed1cdfdc..3679b8d4c 100644 --- a/src/main/java/com/hbm/world/feature/OreCave.java +++ b/src/main/java/com/hbm/world/feature/OreCave.java @@ -9,6 +9,7 @@ import com.hbm.inventory.RecipesCommon.MetaBlock; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; @@ -103,7 +104,7 @@ public class OreCave { for(int y = yLevel - range; y <= yLevel + range; y++) { Block genTarget = world.getBlock(x, y, z); - if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground)) { + if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground) && genTarget.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { boolean shouldGen = false; boolean canGenFluid = event.rand.nextBoolean(); diff --git a/src/main/java/com/hbm/world/feature/OreLayer.java b/src/main/java/com/hbm/world/feature/OreLayer.java index b0411b147..fb4b84543 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer.java +++ b/src/main/java/com/hbm/world/feature/OreLayer.java @@ -99,7 +99,7 @@ public class OreLayer { if(event.rand.nextFloat() < density) { Block genTarget = world.getBlock(x, y, z); - if(genTarget.isReplaceableOreGen(world, x, y, z, target)) { + if(genTarget.isReplaceableOreGen(world, x, y, z, target) && genTarget.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { world.setBlock(x, y, z, ore.block, ore.meta, 2); } } diff --git a/src/main/java/com/hbm/world/feature/OreLayer3D.java b/src/main/java/com/hbm/world/feature/OreLayer3D.java index aee3cf43d..84b8f88b0 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer3D.java +++ b/src/main/java/com/hbm/world/feature/OreLayer3D.java @@ -5,6 +5,7 @@ import java.util.Random; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; @@ -74,7 +75,7 @@ public class OreLayer3D { if(nX * nY * nZ > threshold) { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { world.setBlock(x, y, z, block, meta, 2); } } diff --git a/src/main/java/com/hbm/world/feature/SchistStratum.java b/src/main/java/com/hbm/world/feature/SchistStratum.java index f16f4b93a..56ae0dbdb 100644 --- a/src/main/java/com/hbm/world/feature/SchistStratum.java +++ b/src/main/java/com/hbm/world/feature/SchistStratum.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ModBlocks; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.event.terraingen.DecorateBiomeEvent; @@ -51,7 +52,7 @@ public class SchistStratum { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) { world.setBlock(x, y, z, ModBlocks.stone_gneiss, 0, 2); } } diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index c5383cca0..a4d225c7f 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -8,9 +8,19 @@ import java.util.Random; import com.hbm.config.GeneralConfig; import com.hbm.config.StructureConfig; import com.hbm.world.gen.component.BunkerComponents.BunkerStart; -import com.hbm.world.gen.component.CivilianFeatures.*; -import com.hbm.world.gen.component.OfficeFeatures.*; -import com.hbm.world.gen.component.RuinFeatures.*; +import com.hbm.world.gen.component.CivilianFeatures.NTMHouse1; +import com.hbm.world.gen.component.CivilianFeatures.NTMHouse2; +import com.hbm.world.gen.component.CivilianFeatures.NTMLab1; +import com.hbm.world.gen.component.CivilianFeatures.NTMLab2; +import com.hbm.world.gen.component.CivilianFeatures.NTMWorkshop1; +import com.hbm.world.gen.component.CivilianFeatures.RuralHouse1; +import com.hbm.world.gen.component.OfficeFeatures.LargeOffice; +import com.hbm.world.gen.component.OfficeFeatures.LargeOfficeCorner; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin1; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin2; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin3; +import com.hbm.world.gen.component.RuinFeatures.NTMRuin4; +import com.hbm.world.gen.component.SiloComponent; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -103,8 +113,10 @@ public class MapGenNTMFeatures extends MapGenStructure { public Start(World world, Random rand, int chunkX, int chunkZ) { super(chunkX, chunkZ); - BiomeGenBase biome = world.getBiomeGenForCoords(chunkX * 16 + 8, chunkZ * 16 + 8); //Only gets the biome in the corner of the chunk. - final int posY = 64; // Terrain *does not exist* at this stage - at least, for vanilla. Here it has to be called after, but better safe than sorry. + int i = (chunkX << 4) + 8; + int j = (chunkZ << 4) + 8; + + BiomeGenBase biome = world.getBiomeGenForCoords(i, j); //Only gets the biome in the corner of the chunk. /* * Probably want to use nextInt() to increase the structures of rarity here. As a fallback, you could have generic stone brick/useless block ruins that will always be chosen if the @@ -112,56 +124,64 @@ public class MapGenNTMFeatures extends MapGenStructure { * Rainfall & Temperature Check */ //TODO: Do something about this so it's nice-looking and easily readable. Plus, test compatibility against mods like BoP + if(rand.nextInt(3) == 0) { //Empty Ruin Structures switch(rand.nextInt(4)) { case 0: - NTMRuin1 ruin1 = new NTMRuin1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin1 ruin1 = new NTMRuin1(rand, i, j); this.components.add(ruin1); break; case 1: - NTMRuin2 ruin2 = new NTMRuin2(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin2 ruin2 = new NTMRuin2(rand, i, j); this.components.add(ruin2); break; case 2: - NTMRuin3 ruin3 = new NTMRuin3(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin3 ruin3 = new NTMRuin3(rand, i, j); this.components.add(ruin3); break; case 3: - NTMRuin4 ruin4 = new NTMRuin4(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMRuin4 ruin4 = new NTMRuin4(rand, i, j); this.components.add(ruin4); } + } else if(biome.heightVariation <= 0.25F && rand.nextInt(10) == 0) { //for now our only restriction is kinda-flat biomes. that and chance might change idk + SiloComponent silo = new SiloComponent(rand, i, j); + this.components.add(silo); } else if(biome.temperature >= 1.0 && biome.rainfall == 0 && !(biome instanceof BiomeGenMesa)) { //Desert & Savannah if(rand.nextBoolean()) { - NTMHouse1 house1 = new NTMHouse1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMHouse1 house1 = new NTMHouse1(rand, i, j); this.components.add(house1); } else { - NTMHouse2 house2 = new NTMHouse2(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMHouse2 house2 = new NTMHouse2(rand, i, j); this.components.add(house2); } } else if(biome.temperature >= 0.25 && biome.temperature <= 0.3 && biome.rainfall >= 0.6 && biome.rainfall <= 0.9 && rand.nextBoolean()) { //Taiga & Mega Taiga - NTMWorkshop1 workshop1 = new NTMWorkshop1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMWorkshop1 workshop1 = new NTMWorkshop1(rand, i, j); //TODO replace this this.components.add(workshop1); } else { //Everything else - switch(rand.nextInt(4)) { + switch(rand.nextInt(6)) { case 0: - NTMLab2 lab2 = new NTMLab2(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMLab2 lab2 = new NTMLab2(rand, i, j); //and these, too this.components.add(lab2); break; case 1: - NTMLab1 lab1 = new NTMLab1(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + NTMLab1 lab1 = new NTMLab1(rand, i, j); this.components.add(lab1); break; case 2: - LargeOffice office = new LargeOffice(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + LargeOffice office = new LargeOffice(rand, i, j); this.components.add(office); break; case 3: - LargeOfficeCorner officeCorner = new LargeOfficeCorner(rand, chunkX * 16 + 8, posY, chunkZ * 16 + 8); + LargeOfficeCorner officeCorner = new LargeOfficeCorner(rand, i, j); this.components.add(officeCorner); break; + case 4: + case 5: + RuralHouse1 ruralHouse = new RuralHouse1(rand, i, j); + this.components.add(ruralHouse); break; } } if(GeneralConfig.enableDebugMode) { - System.out.print("[Debug] StructureStart at " + (chunkX * 16 + 8) + ", " + posY + ", " + (chunkZ * 16 + 8) + "\n[Debug] Components: "); + System.out.print("[Debug] StructureStart at " + i + ", 64, " + j + "\n[Debug] Components: "); this.components.forEach((component) -> { System.out.print(MapGenStructureIO.func_143036_a((StructureComponent) component) + " "); }); diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 0337af69a..6fb9e7fd1 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -2,8 +2,6 @@ package com.hbm.world.gen; import java.util.Random; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.StructureConfig; import cpw.mods.fml.common.IWorldGenerator; @@ -13,22 +11,21 @@ import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.IChunkProvider; import static net.minecraftforge.common.BiomeDictionary.*; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate; import net.minecraftforge.event.terraingen.InitMapGenEvent.EventType; import net.minecraftforge.event.terraingen.PopulateChunkEvent; import static net.minecraftforge.event.terraingen.TerrainGen.*; import net.minecraftforge.event.world.WorldEvent; public class NTMWorldGenerator implements IWorldGenerator { - - private MapGenNTMFeatures scatteredFeatureGenerator = new MapGenNTMFeatures(); + private MapGenNTMFeatures scatteredFeatureGen = new MapGenNTMFeatures(); private final Random rand = new Random(); //A central random, used to cleanly generate our stuff without affecting vanilla or modded seeds. /** Inits all MapGen upon the loading of a new world. Hopefully clears out structureMaps and structureData when a different world is loaded. */ @SubscribeEvent public void onLoad(WorldEvent.Load event) { - scatteredFeatureGenerator = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); + scatteredFeatureGen = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); + hasPopulationEvent = false; } @@ -52,7 +49,8 @@ public class NTMWorldGenerator implements IWorldGenerator { setRandomSeed(event.world, event.chunkX, event.chunkZ); //Set random for population down the line. hasPopulationEvent = true; - if(!StructureConfig.enableStructures) return; + if(StructureConfig.enableStructures == 0) return; + if(StructureConfig.enableStructures == 2 && !event.world.getWorldInfo().isMapFeaturesEnabled()) return; switch (event.world.provider.dimensionId) { case -1: @@ -68,8 +66,8 @@ public class NTMWorldGenerator implements IWorldGenerator { protected void generateOverworldStructures(World world, IChunkProvider chunkProvider, int chunkX, int chunkZ) { Block[] ablock = new Block[65536]; //ablock isn't actually used for anything in MapGenStructure - this.scatteredFeatureGenerator.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); - this.scatteredFeatureGenerator.generateStructuresInChunk(world, rand, chunkX, chunkZ); + this.scatteredFeatureGen.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); + this.scatteredFeatureGen.generateStructuresInChunk(world, rand, chunkX, chunkZ); } /* @@ -97,13 +95,14 @@ public class NTMWorldGenerator implements IWorldGenerator { private void generateSurface(World world, Random rand, IChunkProvider chunkGenerator, IChunkProvider chunkProvider, int chunkX, int chunkZ) { if(!hasPopulationEvent) { //If we've failed to generate any structures (flatlands) setRandomSeed(world, chunkX, chunkZ); //Reset the random seed to compensate - if(StructureConfig.enableStructures) generateOverworldStructures(world, chunkGenerator, chunkX, chunkZ); //Do it through the post-population generation directly + + boolean enableStructures = world.getWorldInfo().isMapFeaturesEnabled(); + if(StructureConfig.enableStructures == 1) enableStructures = true; + if(StructureConfig.enableStructures == 0) enableStructures = false; + + if(enableStructures) generateOverworldStructures(world, chunkGenerator, chunkX, chunkZ); //Do it through the post-population generation directly } - final int posX = (chunkX << 4) + 8; - final int posZ = (chunkZ << 4) + 8; - BiomeGenBase biome = world.getBiomeGenForCoords(posX, posZ); - /* biome dictionary my beloved <3 * no check for tom here because the event handler already checks for decoration events, + this way they won't become permanently extinct. */ @@ -123,4 +122,13 @@ public class NTMWorldGenerator implements IWorldGenerator { return true; } + + /** utility method, same as above but inclusive. useful for catch-alls, like the dirty glass structures have */ + public static boolean doesBiomeHaveTypes(BiomeGenBase biome, Type... types) { + for(Type type : types) { + if(isBiomeOfType(biome, type)) return true; + } + + return false; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index acb8481c3..ee12ac748 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -4,7 +4,9 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.lib.HbmChestContents; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.world.gen.ProceduralStructureStart; import com.hbm.world.gen.ProceduralStructureStart.ProceduralComponent; import com.hbm.world.gen.component.Component.ConcreteBricks; @@ -147,7 +149,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 5, box); //machine placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 3, 1, 6, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(3), 4, 1, 6, HbmChestContents.antenna/*TODO change */, 5); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(3), 4, 1, 6, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA)/*TODO change */, 5); placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 5, 1, 6, box); fillWithMetadataBlocks(world, box, 3, 2, 6, 5, 2, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(2) | 4); fillWithMetadataBlocks(world, box, 3, 3, 6, 5, 3, 6, ModBlocks.tape_recorder, getDecoMeta(2)); @@ -375,13 +377,13 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 9, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 5, 1, 8, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 5, 2, 9, box); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, HbmChestContents.filingCabinet, 5); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 5); //lockers - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, HbmChestContents.lockersVault, 3); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, HbmChestContents.lockersVault, 5); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 5); fillWithBlocks(world, box, 8, 1, 8, 8, 2, 8, ModBlocks.deco_tungsten); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, HbmChestContents.lockersVault, 4); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, HbmChestContents.lockersVault, 5); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 4); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 5); fillWithMetadataBlocks(world, box, 8, 3, 7, 8, 3, 9, Blocks.trapdoor, getDecoModelMeta(2) >> 2); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 7, 1, 0); @@ -474,7 +476,7 @@ public class BunkerComponents { //table & chest placeBlockAtCurrentPosition(world, Blocks.fence, 0, 6, 1, 2, box); placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 6, 2, 2, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, HbmChestContents.lockersVault, 8); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 8); //desk w/ computer + bobblehead placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 1, 1, 8, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 1, 1, 9, box); @@ -679,7 +681,7 @@ public class BunkerComponents { fillWithMetadataBlocks(world, box, 1, 3, 9, 1, 3, 10, ModBlocks.tape_recorder, decoMetaW); fillWithBlocks(world, box, 1, 1, 11, 1, 3, 11, ModBlocks.deco_tungsten); //desks w/ computers - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, HbmChestContents.machineParts, 6); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 6); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 5, box); fillWithMetadataBlocks(world, box, 4, 1, 5, 4, 1, 7, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 7, box); @@ -704,7 +706,7 @@ public class BunkerComponents { //table w/ chest placeBlockAtCurrentPosition(world, Blocks.fence, 0, 7, 1, 9, box); placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 7, 2, 9, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, HbmChestContents.labVault, 8); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LAB), 8); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 5, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 6, 1, 0); @@ -802,9 +804,9 @@ public class BunkerComponents { default: fillWithBlocks(world, box, 6, 1, 1, 6, 3, 1, ModBlocks.deco_pipe_framed_rusted); for(int i = 7; i <= 9; i += 2) { - placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, decoMetaN, i, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 2, i, 2, 1, box); - placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, decoMetaN, i, 3, 1, box); } placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 8, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 2, 1, box); @@ -819,8 +821,8 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaW, 10, 2, 5, box); placeBlockAtCurrentPosition(world, ModBlocks.barrel_plastic, 0, 6, 1, 5, box); //chests - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, HbmChestContents.solidFuel, 5); - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, HbmChestContents.solidFuel, 6); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, ItemPool.getPool(ItemPoolsComponent.POOL_SOLID_FUEL), 5); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, ItemPool.getPool(ItemPoolsComponent.POOL_SOLID_FUEL), 6); break; case 1: placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 6, 1, 1, box); @@ -853,18 +855,18 @@ public class BunkerComponents { fillWithBlocks(world, box, i, 3, 2, i, 3, 4, ModBlocks.deco_lead); } placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 1, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_computer, 0, 8, 2, 4, box); + placeBlockAtCurrentPosition(world, Blocks.redstone_lamp, 0, 8, 2, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 3, 4, box); placeLever(world, box, 3, rand.nextBoolean(), 8, 2, 5); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 1, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_control, 0, 8, 2, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 3, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_fuel, 0, 8, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_control, 0, 8, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_fuel, 0, 8, 3, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 1, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.block_lead, 0, 8, 2, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 3, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_channel, 0, 8, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.machine_turbine, 0, 8, 2, 1, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_channel, 0, 8, 3, 1, box); fillWithBlocks(world, box, 9, 1, 1, 9, 3, 1, ModBlocks.deco_steel); placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 10, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 10, 2, 1, box); @@ -873,7 +875,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(4), 7, 3, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaN, 6, 3, 1, box); //chest - generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, HbmChestContents.nuclearFuel, 8); + generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, ItemPool.getPool(ItemPoolsComponent.POOL_NUKE_FUEL), 8); break; } //transformer @@ -905,8 +907,8 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 10, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 9, 2, 10, box); //loot - generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, HbmChestContents.machineParts, 6); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 6); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 3, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 1, 0); diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 26d7faaba..b6a335dd4 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -5,9 +5,13 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.HbmChestContents; import com.hbm.util.LootGenerator; +import net.minecraft.block.BlockStairs; import net.minecraft.init.Blocks; import net.minecraft.item.ItemDoor; import net.minecraft.nbt.NBTTagCompound; @@ -25,9 +29,10 @@ public class CivilianFeatures { public static void registerComponents() { MapGenStructureIO.func_143031_a(NTMHouse1.class, "NTMHouse1"); MapGenStructureIO.func_143031_a(NTMHouse2.class, "NTMHouse2"); - MapGenStructureIO.func_143031_a(NTMLab1.class, "NTMLab1"); + MapGenStructureIO.func_143031_a(NTMLab1.class, "NTMLab1"); //i'll replace these shitty structures one day trust MapGenStructureIO.func_143031_a(NTMLab2.class, "NTMLab2"); MapGenStructureIO.func_143031_a(NTMWorkshop1.class, "NTMWorkshop1"); + MapGenStructureIO.func_143031_a(RuralHouse1.class, "NTMRuralHouse1"); } /** Sandstone Ruin 1 */ @@ -42,8 +47,8 @@ public class CivilianFeatures { } /** Constructor for this feature; takes coordinates for bounding box */ - public NTMHouse1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 9, 4, 6); + public NTMHouse1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 9, 4, 6); this.hasPlacedChest = false; } @@ -88,27 +93,27 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, 9, 6, -1, box); //Walls - this.fillWithRandomizedBlocks(world, box, 0, 0, 0, sizeX, 0, 0, false, rand, RandomSandstone); //Back Wall + this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 9, 0, 0, false, rand, RandomSandstone); //Back Wall this.fillWithRandomizedBlocks(world, box, 0, 1, 0, 1, 1, 0, false, rand, RandomSandstone); this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 2, 1, 0, box); this.fillWithRandomizedBlocks(world, box, 3, 1, 0, 5, 1, 0, false, rand, RandomSandstone); this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 6, 1, 0, box); this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 7, 1, 0, box); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX, 1, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 0, 2, 0, sizeX - 2, 2, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 1, sizeZ, false, rand, RandomSandstone); //Left Wall + this.fillWithRandomizedBlocks(world, box, 9 - 1, 1, 0, 9, 1, 0, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 0, 2, 0, 9 - 2, 2, 0, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 1, 6, false, rand, RandomSandstone); //Left Wall this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 0, 2, 1, box); - this.fillWithMetadataBlocks(world, box, 0, 2, 3, 0, 2, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 1, 1, sizeZ, false, rand, RandomSandstone); //Front Wall - this.fillWithRandomizedBlocks(world, box, 3, 0, sizeZ, sizeX, 1, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 1, 2, sizeZ, 3, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithMetadataBlocks(world, box, 4, 2, sizeZ, 5, 2, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 2, 2, sizeZ, box); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 0, sizeX, 0, sizeZ, false, rand, RandomSandstone); //Right Wall - this.randomlyFillWithBlocks(world, box, rand, 0.65F, sizeX, 1, 1, sizeX, 1, sizeZ - 1, Blocks.sand, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 0, 2, 3, 0, 2, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 6, 1, 1, 6, false, rand, RandomSandstone); //Front Wall + this.fillWithRandomizedBlocks(world, box, 3, 0, 6, 9, 1, 6, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 1, 2, 6, 3, 2, 6, false, rand, RandomSandstone); + this.fillWithMetadataBlocks(world, box, 4, 2, 6, 5, 2, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 9 - 2, 2, 6, box); + this.fillWithRandomizedBlocks(world, box, 9, 0, 0, 9, 0, 6, false, rand, RandomSandstone); //Right Wall + this.randomlyFillWithBlocks(world, box, rand, 0.65F, 9, 1, 1, 9, 1, 6 - 1, Blocks.sand, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 4, 0, 1, 4, 1, 3, false, rand, RandomSandstone); this.placeBlockAtCurrentPosition(world, ModBlocks.reinforced_sand, 0, 4, 0, 4, box); @@ -116,13 +121,13 @@ public class CivilianFeatures { //Loot/Sand this.placeBlockAtCurrentPosition(world, ModBlocks.crate_weapon, 0, 1, 0, 1, box); if(!this.hasPlacedChest) - this.hasPlacedChest = this.generateStructureChestContents(world, box, rand, 3, 0, 1, HbmChestContents.modGeneric, rand.nextInt(2) + 8); + this.hasPlacedChest = this.generateStructureChestContents(world, box, rand, 3, 0, 1, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), rand.nextInt(2) + 8); this.fillWithBlocks(world, box, 5, 0, 1, 6, 0, 1, ModBlocks.crate, Blocks.air, false); this.placeBlockAtCurrentPosition(world, Blocks.sand, 0, 7, 0, 1, box); if(rand.nextFloat() <= 0.25) - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_metal, 0, sizeX - 1, 0, 1, box); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 2, 3, 0, sizeZ - 1, Blocks.sand, Blocks.air, false); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 5, 0, 2, sizeX - 1, 0, sizeZ - 1, Blocks.sand, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_metal, 0, 9 - 1, 0, 1, box); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 2, 3, 0, 6 - 1, Blocks.sand, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 5, 0, 2, 9 - 1, 0, 6 - 1, Blocks.sand, Blocks.air, false); return true; } @@ -139,8 +144,8 @@ public class CivilianFeatures { super(); } - public NTMHouse2(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 15, 5, 9); + public NTMHouse2(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 15, 5, 9); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -168,10 +173,10 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, 6, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.sandstone, 0, 9, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.sandstone, 0, 0, 0, 6, 15, -1, box); + placeFoundationUnderneath(world, Blocks.sandstone, 0, 9, 0, 15, 9, -1, box); - this.fillWithAir(world, box, 1, 0, 1, 5, sizeY, sizeZ - 1); + this.fillWithAir(world, box, 1, 0, 1, 5, 5, 9 - 1); //House 1 this.fillWithRandomizedBlocks(world, box, 0, 0, 0, 6, 1, 0, false, rand, RandomSandstone); //Back Wall @@ -181,72 +186,72 @@ public class CivilianFeatures { this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 4, 2, 0, box); this.fillWithRandomizedBlocks(world, box, 5, 2, 0, 6, 2, 0, false, rand, RandomSandstone); this.fillWithRandomizedBlocks(world, box, 0, 3, 0, 6, 3, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 3, sizeZ, false, rand, RandomSandstone); //Left Wall - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 6, 1, sizeZ, false, rand, RandomSandstone); //Front Wall - this.fillWithRandomizedBlocks(world, box, 1, 2, sizeZ, 1, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithBlocks(world, box, 2, 2, sizeZ, 4, 2, sizeZ, Blocks.fence, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 5, 2, sizeZ, 6, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 1, 3, sizeZ, 6, 3, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 6, 0, sizeZ - 1, 6, 3, sizeZ - 1, false, rand, RandomSandstone); //Right Wall - this.fillWithRandomizedBlocks(world, box, 6, 0, sizeZ - 2, 6, 0, sizeZ - 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 6, 3, sizeZ - 2, 6, 3, sizeZ - 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, 6, 0, 1, 6, 3, sizeZ - 3, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 3, 9, false, rand, RandomSandstone); //Left Wall + this.fillWithRandomizedBlocks(world, box, 1, 0, 9, 6, 1, 9, false, rand, RandomSandstone); //Front Wall + this.fillWithRandomizedBlocks(world, box, 1, 2, 9, 1, 2, 9, false, rand, RandomSandstone); + this.fillWithBlocks(world, box, 2, 2, 9, 4, 2, 9, Blocks.fence, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 5, 2, 9, 6, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 1, 3, 9, 6, 3, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 6, 0, 9 - 1, 6, 3, 9 - 1, false, rand, RandomSandstone); //Right Wall + this.fillWithRandomizedBlocks(world, box, 6, 0, 9 - 2, 6, 0, 9 - 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 6, 3, 9 - 2, 6, 3, 9 - 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 6, 0, 1, 6, 3, 9 - 3, false, rand, RandomSandstone); - this.fillWithBlocks(world, box, 1, 0, 1, 5, 0, sizeZ - 1, Blocks.sandstone, Blocks.air, false); //Floor - //this.fillWithRandomizedBlocks(world, box, 1, sizeY - 1, 0, 5, sizeY - 1, sizeZ, false, rand, RandomSandstone); //Ceiling - this.fillWithBlocks(world, box, 1, sizeY - 1, 0, 5, sizeY - 1, sizeZ, Blocks.sandstone, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 0, sizeY - 1, 0, 0, sizeY - 1, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); //Roof - this.fillWithMetadataBlocks(world, box, 6, sizeY - 1, 0, 6, sizeY - 1, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 2, sizeY, 0, 4, sizeY, 0, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 3, sizeY, 1, 3, sizeY, 2, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 3, sizeY, 4, 3, sizeY, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 3, sizeY, sizeZ - 1, box); - this.fillWithMetadataBlocks(world, box, 2, sizeY, sizeZ, 4, sizeY, sizeZ, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 1, 0, 1, 5, 0, 9 - 1, Blocks.sandstone, Blocks.air, false); //Floor + //this.fillWithRandomizedBlocks(world, box, 1, 5 - 1, 0, 5, 5 - 1, 9, false, rand, RandomSandstone); //Ceiling + this.fillWithBlocks(world, box, 1, 5 - 1, 0, 5, 5 - 1, 9, Blocks.sandstone, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 0, 5 - 1, 0, 0, 5 - 1, 9, Blocks.stone_slab, 1, Blocks.air, 0, false); //Roof + this.fillWithMetadataBlocks(world, box, 6, 5 - 1, 0, 6, 5 - 1, 9, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 2, 5, 0, 4, 5, 0, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 3, 5, 1, 3, 5, 2, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 3, 5, 4, 3, 5, 6, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 3, 5, 9 - 1, box); + this.fillWithMetadataBlocks(world, box, 2, 5, 9, 4, 5, 9, Blocks.stone_slab, 1, Blocks.air, 0, false); //House 2 - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 0, sizeX, 0, 0, false, rand, RandomSandstone); //Back Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 1, 0, sizeX - 2, 1, 0, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, 0, sizeX - 6, 2, 0, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 6, 2, 0, box); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 3, 2, 0, box); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 1, sizeX - 6, 3, 1, false, rand, RandomSandstone); //Left Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 2, sizeX - 6, 0, 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 3, 2, sizeX - 6, 3, sizeZ - 1, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX - 6, sizeY - 1, 2, box); - this.fillWithMetadataBlocks(world, box, sizeX - 6, sizeY - 1, 4, sizeX - 6, sizeY - 1, sizeZ - 2, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 3, sizeX - 6, 1, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 0, 2, sizeX - 6, 0, 2, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, 3, sizeX - 6, 2, 3, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, sizeX - 6, 2, 4, box); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, 5, sizeX - 6, 2, 5, false, rand, RandomSandstone); - this.fillWithBlocks(world, box, sizeX - 6, 2, sizeZ - 3, sizeX - 6, 2, sizeZ - 2, Blocks.fence, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 6, 2, sizeZ - 1, sizeX - 6, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 5, 0, sizeZ, sizeX, 1, sizeZ, false, rand, RandomSandstone); //Front Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 5, 2, sizeZ, sizeX - 5, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 2, sizeZ, sizeX, 2, sizeZ, false, rand, RandomSandstone); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 0, sizeZ - 1, false, rand, RandomSandstone); //Right Wall - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 3, sizeX, 1, 3, false, rand, RandomSandstone); - this.fillWithMetadataBlocks(world, box, sizeX, 1, 4, sizeX, 1, 5, Blocks.stone_slab, 1, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, sizeZ - 1, sizeX, 1, sizeZ - 3, false, rand, RandomSandstone); - this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, sizeX, 1, sizeZ - 1, box); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 0, 15, 0, 0, false, rand, RandomSandstone); //Back Wall + this.fillWithRandomizedBlocks(world, box, 15 - 6, 1, 0, 15 - 2, 1, 0, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 0, 15 - 6, 2, 0, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15 - 6, 2, 0, box); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15 - 3, 2, 0, box); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 1, 15 - 6, 3, 1, false, rand, RandomSandstone); //Left Wall + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 2, 15 - 6, 0, 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 3, 2, 15 - 6, 3, 9 - 1, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15 - 6, 5 - 1, 2, box); + this.fillWithMetadataBlocks(world, box, 15 - 6, 5 - 1, 4, 15 - 6, 5 - 1, 9 - 2, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 3, 15 - 6, 1, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 0, 2, 15 - 6, 0, 2, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 3, 15 - 6, 2, 3, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.fence, 0, 15 - 6, 2, 4, box); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 5, 15 - 6, 2, 5, false, rand, RandomSandstone); + this.fillWithBlocks(world, box, 15 - 6, 2, 9 - 3, 15 - 6, 2, 9 - 2, Blocks.fence, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 15 - 6, 2, 9 - 1, 15 - 6, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 5, 0, 9, 15, 1, 9, false, rand, RandomSandstone); //Front Wall + this.fillWithRandomizedBlocks(world, box, 15 - 5, 2, 9, 15 - 5, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15 - 1, 2, 9, 15, 2, 9, false, rand, RandomSandstone); + this.fillWithRandomizedBlocks(world, box, 15, 0, 1, 15, 0, 9 - 1, false, rand, RandomSandstone); //Right Wall + this.fillWithRandomizedBlocks(world, box, 15, 1, 3, 15, 1, 3, false, rand, RandomSandstone); + this.fillWithMetadataBlocks(world, box, 15, 1, 4, 15, 1, 5, Blocks.stone_slab, 1, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 15, 1, 9 - 1, 15, 1, 9 - 3, false, rand, RandomSandstone); + this.placeBlockAtCurrentPosition(world, Blocks.stone_slab, 1, 15, 1, 9 - 1, box); - this.fillWithBlocks(world, box, sizeX - 5, 0, 1, sizeX - 1, 0, sizeZ - 1, Blocks.sandstone, Blocks.air, false); //Floor + this.fillWithBlocks(world, box, 15 - 5, 0, 1, 15 - 1, 0, 9 - 1, Blocks.sandstone, Blocks.air, false); //Floor //Loot & Decorations //House 1 int eastMeta = this.getDecoMeta(4); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_boiler_off, 4, 1, 1, 1, box); this.fillWithBlocks(world, box, 1, 2, 1, 1, 3, 1, ModBlocks.deco_pipe_quad_rusted, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 1, sizeY, 1, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 1, 5, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 2, 1, 3, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 1, 1, sizeZ - 4, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 1, 1, 9 - 4, box); if(!hasPlacedLoot[0]) { - this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 1, 1, sizeZ - 2, box); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.machineParts, (TileEntityChest)world.getTileEntity(this.getXWithOffset(1, sizeZ - 2), - this.getYWithOffset(1), this.getZWithOffset(1, sizeZ - 2)), 10); + this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 1, 1, 9 - 2, box); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), (TileEntityChest)world.getTileEntity(this.getXWithOffset(1, 9 - 2), + this.getYWithOffset(1), this.getZWithOffset(1, 9 - 2)), 10); this.hasPlacedLoot[0] = true; } - this.fillWithBlocks(world, box, 4, 1, sizeZ - 1, 5, 1, sizeZ - 1, ModBlocks.crate, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 1, 9 - 1, 5, 1, 9 - 1, ModBlocks.crate, Blocks.air, false); this.fillWithMetadataBlocks(world, box, 5, 1, 4, 5, 3, 4, ModBlocks.steel_scaffold, eastMeta < 4 ? 0 : 8, Blocks.air, 0, false); this.fillWithMetadataBlocks(world, box, 5, 1, 6, 5, 3, 6, ModBlocks.steel_scaffold, eastMeta < 4 ? 0 : 8, Blocks.air, 0, false); this.placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 5, 1, 5, box); @@ -254,20 +259,20 @@ public class CivilianFeatures { //House 2 if(!hasPlacedLoot[1]) { - this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), sizeX - 5, 1, 1, box); - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.antenna, (TileEntityChest)world.getTileEntity(this.getXWithOffset(sizeX - 5, 1), - this.getYWithOffset(1), this.getZWithOffset(sizeX - 5, 1)), 10); + this.placeBlockAtCurrentPosition(world, Blocks.chest, this.getMetadataWithOffset(Blocks.chest, 3), 15 - 5, 1, 1, box); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest)world.getTileEntity(this.getXWithOffset(15 - 5, 1), + this.getYWithOffset(1), this.getZWithOffset(15 - 5, 1)), 10); this.hasPlacedLoot[1] = true; } - this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), sizeX - 5, 1, 4, box); - TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(sizeX - 5, 4), this.getYWithOffset(1), this.getZWithOffset(sizeX - 5, 4)); + this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), 15 - 5, 1, 4, box); + TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(15 - 5, 4), this.getYWithOffset(1), this.getZWithOffset(15 - 5, 4)); if(bobble != null) { bobble.type = BobbleType.values()[rand.nextInt(BobbleType.values().length - 1) + 1]; bobble.markDirty(); } - this.randomlyFillWithBlocks(world, box, rand, 0.25F, sizeX - 4, 1, 1, sizeX - 1, 1, sizeZ - 1, Blocks.sand, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 15 - 4, 1, 1, 15 - 1, 1, 9 - 1, Blocks.sand, Blocks.air, false); return true; } @@ -285,8 +290,8 @@ public class CivilianFeatures { } /** Constructor for this feature; takes coordinates for bounding box */ - public NTMLab1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 9, 4, 7); + public NTMLab1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 9, 4, 7); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -314,86 +319,86 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ - 2, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 3, 6, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 9, 7 - 2, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 3, 6, 9, 7, -1, box); - if(this.getBlockAtCurrentPosition(world, 2, 0, sizeZ - 1, box).getMaterial().isReplaceable() - || this.getBlockAtCurrentPosition(world, 2, 0, sizeZ - 1, box) == Blocks.air) { - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 2, sizeZ - 1, 2, sizeZ - 1, -1, box); - this.placeBlockAtCurrentPosition(world, Blocks.stone_brick_stairs, getStairMeta(0), 2, 0, sizeZ - 1, box); + if(this.getBlockAtCurrentPosition(world, 2, 0, 7 - 1, box).getMaterial().isReplaceable() + || this.getBlockAtCurrentPosition(world, 2, 0, 7 - 1, box) == Blocks.air) { + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 2, 7 - 1, 2, 7 - 1, -1, box); + this.placeBlockAtCurrentPosition(world, Blocks.stone_brick_stairs, getStairMeta(0), 2, 0, 7 - 1, box); } - this.fillWithAir(world, box, 1, 0, 1, sizeX - 1, sizeY, 4); - this.fillWithAir(world, box, 4, 0, 4, sizeX - 1, sizeY, sizeZ - 1); - this.fillWithAir(world, box, 3, 1, sizeZ - 1, 3, 2, sizeZ - 1); + this.fillWithAir(world, box, 1, 0, 1, 9 - 1, 4, 4); + this.fillWithAir(world, box, 4, 0, 4, 9 - 1, 4, 7 - 1); + this.fillWithAir(world, box, 3, 1, 7 - 1, 3, 2, 7 - 1); int pillarMeta = this.getPillarMeta(8); //Pillars this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 9, 0, 0, 9, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithMetadataBlocks(world, box, 0, 0, 1, 0, 0, 4, ModBlocks.concrete_pillar, pillarMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX, 0, 1, sizeX, 0, sizeZ - 1, ModBlocks.concrete_pillar, pillarMeta, Blocks.air, 0, false); - this.fillWithBlocks(world, box, 0, 0, sizeZ - 2, 0, 3, sizeZ - 2, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, 3, 0, sizeZ - 2, 3, 3, sizeZ - 2, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, 3, 0, sizeZ, 3, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 9, 0, 1, 9, 0, 7 - 1, ModBlocks.concrete_pillar, pillarMeta, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 0, 0, 7 - 2, 0, 3, 7 - 2, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 3, 0, 7 - 2, 3, 3, 7 - 2, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 3, 0, 7, 3, 3, 7, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 9, 0, 7, 9, 3, 7, ModBlocks.concrete_pillar, Blocks.air, false); //Walls - this.fillWithRandomizedBlocks(world, box, 1, 0, 0, sizeX - 1, sizeY - 1, 0, false, rand, RandomConcreteBricks); //Back Wall - this.fillWithRandomizedBlocks(world, box, 0, sizeY, 0, sizeX, sizeY, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, sizeY - 1, 4, false, rand, RandomConcreteBricks); //Left Wall - this.fillWithRandomizedBlocks(world, box, 0, sizeY, 0, 0, sizeY, sizeZ - 2, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ - 2, 2, sizeY, sizeZ - 2, false, rand, RandomConcreteBricks); //Front Wall Pt. 1 - this.placeBlockAtCurrentPosition(world, ModBlocks.brick_concrete_broken, 0, 3, sizeY, sizeZ - 2, box); - this.fillWithRandomizedBlocks(world, box, 3, sizeY - 1, sizeZ - 1, 3, sizeY, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 4, 0, sizeZ, sizeX - 1, 1, sizeZ, false, rand, RandomConcreteBricks); //Front Wall Pt. 2 - this.fillWithRandomizedBlocks(world, box, 4, 2, sizeZ, 4, 3, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 2, sizeZ, sizeX - 1, 3, sizeZ, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.75F, 5, 2, sizeZ, sizeX - 2, 3, sizeZ, Blocks.glass_pane, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 3, sizeY, sizeZ, sizeX, sizeY, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 1, sizeX, sizeY, sizeZ - 1, false, rand, RandomConcreteBricks); //Right Wall + this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 9 - 1, 4 - 1, 0, false, rand, RandomConcreteBricks); //Back Wall + this.fillWithRandomizedBlocks(world, box, 0, 4, 0, 9, 4, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 4 - 1, 4, false, rand, RandomConcreteBricks); //Left Wall + this.fillWithRandomizedBlocks(world, box, 0, 4, 0, 0, 4, 7 - 2, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 0, 7 - 2, 2, 4, 7 - 2, false, rand, RandomConcreteBricks); //Front Wall Pt. 1 + this.placeBlockAtCurrentPosition(world, ModBlocks.brick_concrete_broken, 0, 3, 4, 7 - 2, box); + this.fillWithRandomizedBlocks(world, box, 3, 4 - 1, 7 - 1, 3, 4, 7 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 4, 0, 7, 9 - 1, 1, 7, false, rand, RandomConcreteBricks); //Front Wall Pt. 2 + this.fillWithRandomizedBlocks(world, box, 4, 2, 7, 4, 3, 7, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 9 - 1, 2, 7, 9 - 1, 3, 7, false, rand, RandomConcreteBricks); + this.randomlyFillWithBlocks(world, box, rand, 0.75F, 5, 2, 7, 9 - 2, 3, 7, Blocks.glass_pane, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 3, 4, 7, 9, 4, 7, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 9, 1, 1, 9, 4, 7 - 1, false, rand, RandomConcreteBricks); //Right Wall //Floor & Ceiling - this.fillWithRandomizedBlocks(world, box, 1, 0, 1, sizeX - 1, 0, 4, false, rand, RandomLabTiles); //Floor - this.fillWithRandomizedBlocks(world, box, 4, 0, sizeZ - 2, sizeX - 1, 0, sizeZ - 1, false, rand, RandomLabTiles); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 3, 0, sizeZ - 1, box); + this.fillWithRandomizedBlocks(world, box, 1, 0, 1, 9 - 1, 0, 4, false, rand, RandomLabTiles); //Floor + this.fillWithRandomizedBlocks(world, box, 4, 0, 7 - 2, 9 - 1, 0, 7 - 1, false, rand, RandomLabTiles); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 3, 0, 7 - 1, box); - this.fillWithBlocks(world, box, 1, sizeY - 1, 1, 1, sizeY, 4, ModBlocks.reinforced_glass, Blocks.air, false); //Ceiling - this.fillWithBlocks(world, box, 2, sizeY, 1, sizeX - 1, sizeY, 4, ModBlocks.brick_light, Blocks.air, false); - this.fillWithBlocks(world, box, 4, sizeY, sizeZ - 2, sizeX - 1, sizeY, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); + this.fillWithBlocks(world, box, 1, 4 - 1, 1, 1, 4, 4, ModBlocks.reinforced_glass, Blocks.air, false); //Ceiling + this.fillWithBlocks(world, box, 2, 4, 1, 9 - 1, 4, 4, ModBlocks.brick_light, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 4, 7 - 2, 9 - 1, 4, 7 - 1, ModBlocks.brick_light, Blocks.air, false); //Decorations & Loot this.fillWithMetadataBlocks(world, box, 1, 1, 1, 1, 1, 4, Blocks.dirt, 2, Blocks.air, 0, false); int westDecoMeta = this.getDecoMeta(5); this.fillWithMetadataBlocks(world, box, 2, 1, 1, 2, 1, 4, ModBlocks.steel_wall, westDecoMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 2, sizeY - 1, 1, 2, sizeY - 1, 4, ModBlocks.steel_wall, westDecoMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 2, 4 - 1, 1, 2, 4 - 1, 4, ModBlocks.steel_wall, westDecoMeta, Blocks.air, 0, false); for(byte i = 0; i < 4; i++) { this.placeBlockAtCurrentPosition(world, ModBlocks.plant_flower, i, 1, 2, 1 + i, box); } int doorMeta = this.getMetadataWithOffset(Blocks.wooden_door, 2); - this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 3, 1, sizeZ - 1, box); - ItemDoor.placeDoorBlock(world, this.getXWithOffset(3, sizeZ - 1), this.getYWithOffset(1), this.getZWithOffset(3, sizeZ - 1), doorMeta, ModBlocks.door_office); + this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 3, 1, 7 - 1, box); + ItemDoor.placeDoorBlock(world, this.getXWithOffset(3, 7 - 1), this.getYWithOffset(1), this.getZWithOffset(3, 7 - 1), doorMeta, ModBlocks.door_office); int northDecoMeta = this.getDecoMeta(3); - this.fillWithMetadataBlocks(world, box, 5, sizeY - 1, 1, sizeX - 1, sizeY - 1, 1, ModBlocks.steel_scaffold, westDecoMeta < 4 ? 0 : 8, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 5, sizeY - 1, 2, sizeX - 1, sizeY - 1, 2, ModBlocks.steel_wall, northDecoMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 5, 4 - 1, 1, 9 - 1, 4 - 1, 1, ModBlocks.steel_scaffold, westDecoMeta < 4 ? 0 : 8, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 5, 4 - 1, 2, 9 - 1, 4 - 1, 2, ModBlocks.steel_wall, northDecoMeta, Blocks.air, 0, false); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, northDecoMeta, 5, 1, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_microwave, northDecoMeta, 5, 2, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.deco_titanium, 0, 6, 1, 1, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.machine_shredder, 0, sizeX - 2, 1, 1, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.deco_titanium, 0, sizeX - 1, 1, 1, box); - this.fillWithBlocks(world, box, 5, 1, 3, sizeX - 1, 1, 3, ModBlocks.deco_titanium, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.machine_shredder, 0, 9 - 2, 1, 1, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.deco_titanium, 0, 9 - 1, 1, 1, box); + this.fillWithBlocks(world, box, 5, 1, 3, 9 - 1, 1, 3, ModBlocks.deco_titanium, Blocks.air, false); if(!hasPlacedLoot[0]) { this.placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 6, 2, 3, box); LootGenerator.lootMedicine(world, this.getXWithOffset(6, 3), this.getYWithOffset(2), this.getZWithOffset(6, 3)); this.hasPlacedLoot[0] = true; } - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, sizeX - 1, 1, sizeZ - 2, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 9 - 1, 1, 7 - 2, box); if(!hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, sizeX - 1, 1, sizeZ - 1, HbmChestContents.modGeneric, 8); + this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 9 - 1, 1, 7 - 1, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), 8); } return true; @@ -412,8 +417,8 @@ public class CivilianFeatures { super(); } - public NTMLab2(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 12, 11, 8); + public NTMLab2(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 12, 11, 8); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -442,134 +447,134 @@ public class CivilianFeatures { this.boundingBox.offset(0, -7, 0); //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ - 2, 6, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 7, 6, sizeZ, 6, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 12, 8 - 2, 6, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 7, 6, 8, 6, box); - if(this.getBlockAtCurrentPosition(world, sizeX - 3, sizeY - 4, 7, box).getMaterial().isReplaceable() - || this.getBlockAtCurrentPosition(world, sizeX - 3, sizeY - 4, 7, box) == Blocks.air) { + if(this.getBlockAtCurrentPosition(world, 12 - 3, 11 - 4, 7, box).getMaterial().isReplaceable() + || this.getBlockAtCurrentPosition(world, 12 - 3, 11 - 4, 7, box) == Blocks.air) { int stairMeta = this.getMetadataWithOffset(Blocks.stone_brick_stairs, 2); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, sizeX - 3, 7, sizeX - 2, 7, sizeY - 4, box); - this.fillWithMetadataBlocks(world, box, sizeX - 3, sizeY - 4, 7, sizeX - 2, sizeY - 4, 7, Blocks.stone_brick_stairs, stairMeta, Blocks.air, 0, false); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 12 - 3, 7, 12 - 2, 7, 11 - 4, box); + this.fillWithMetadataBlocks(world, box, 12 - 3, 11 - 4, 7, 12 - 2, 11 - 4, 7, Blocks.stone_brick_stairs, stairMeta, Blocks.air, 0, false); } - this.fillWithAir(world, box, 1, sizeY - 4, 1, sizeX - 1, sizeY, sizeZ - 3); - this.fillWithAir(world, box, 1, sizeY - 4, sizeZ - 2, 5, sizeY, sizeZ - 1); - this.fillWithAir(world, box, sizeX - 3, sizeY - 3, sizeZ - 2, sizeX - 2, sizeY - 2, sizeZ - 2); + this.fillWithAir(world, box, 1, 11 - 4, 1, 12 - 1, 11, 8 - 3); + this.fillWithAir(world, box, 1, 11 - 4, 8 - 2, 5, 11, 8 - 1); + this.fillWithAir(world, box, 12 - 3, 11 - 3, 8 - 2, 12 - 2, 11 - 2, 8 - 2); this.fillWithAir(world, box, 5, 5, 1, 6, 6, 2); - this.fillWithAir(world, box, 2, 0, 2, sizeX - 2, 3, sizeZ - 2); + this.fillWithAir(world, box, 2, 0, 2, 12 - 2, 3, 8 - 2); //Walls - this.fillWithRandomizedBlocks(world, box, 0, sizeY - 4, 0, sizeX, sizeY, 0, false, rand, RandomSuperConcrete); //Back Wall - this.fillWithRandomizedBlocks(world, box, 0, sizeY - 4, 0, 0, sizeY, sizeZ, false, rand, RandomSuperConcrete); //Left Wall - this.fillWithRandomizedBlocks(world, box, 1, sizeY - 4, sizeZ, 5, sizeY - 4, sizeZ, false, rand, RandomSuperConcrete); //Front Wall pt. 1 - this.fillWithBlocks(world, box, 1, sizeY - 3, sizeZ, 1, sizeY - 1, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, sizeY - 4, sizeZ, 2, sizeY - 1, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 3, sizeY - 3, sizeZ, 3, sizeY - 1, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 4, sizeY - 4, sizeZ, 4, sizeY - 1, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 5, sizeY - 3, sizeZ, 5, sizeY - 1, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, sizeY, sizeZ, 5, sizeY, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 6, sizeY - 4, sizeZ - 1, 6, sizeY, sizeZ, false, rand, RandomSuperConcrete); //Front Wall pt. 2 - this.fillWithRandomizedBlocks(world, box, 6, sizeY - 4, sizeZ - 2, 7, sizeY - 2, sizeZ - 2, false, rand, RandomSuperConcrete); //Front Wall pt. 3 - this.fillWithBlocks(world, box, 6, sizeY - 1, sizeZ - 2, 7, sizeY - 1, sizeZ - 2, ModBlocks.concrete_super_broken, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, sizeY - 4, sizeZ - 2, sizeX, sizeY - 4, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, sizeY - 3, sizeZ - 2, sizeX - 4, sizeY, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX - 3, sizeY - 1, sizeZ - 2, sizeX - 2, sizeY, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, sizeY - 4, sizeZ - 2, sizeX, sizeY, sizeZ - 2, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY - 4, 1, sizeX, sizeY - 4, sizeZ - 3, false, rand, RandomSuperConcrete); //Right Wall - this.fillWithBlocks(world, box, sizeX, sizeY - 3, sizeZ - 3, sizeX, sizeY - 1, sizeZ - 3, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY - 3, 4, sizeX, sizeY - 1, 4, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, sizeX, sizeY - 3, 3, sizeX, sizeY - 1, 3, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY - 3, 2, sizeX, sizeY - 1, 2, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, sizeX, sizeY - 3, 1, sizeX, sizeY - 1, 1, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, sizeY, 1, sizeX, sizeY, sizeZ - 3, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 0, 11 - 4, 0, 12, 11, 0, false, rand, RandomSuperConcrete); //Back Wall + this.fillWithRandomizedBlocks(world, box, 0, 11 - 4, 0, 0, 11, 8, false, rand, RandomSuperConcrete); //Left Wall + this.fillWithRandomizedBlocks(world, box, 1, 11 - 4, 8, 5, 11 - 4, 8, false, rand, RandomSuperConcrete); //Front Wall pt. 1 + this.fillWithBlocks(world, box, 1, 11 - 3, 8, 1, 11 - 1, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 2, 11 - 4, 8, 2, 11 - 1, 8, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 3, 11 - 3, 8, 3, 11 - 1, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 4, 11 - 4, 8, 4, 11 - 1, 8, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 5, 11 - 3, 8, 5, 11 - 1, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 11, 8, 5, 11, 8, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 6, 11 - 4, 8 - 1, 6, 11, 8, false, rand, RandomSuperConcrete); //Front Wall pt. 2 + this.fillWithRandomizedBlocks(world, box, 6, 11 - 4, 8 - 2, 7, 11 - 2, 8 - 2, false, rand, RandomSuperConcrete); //Front Wall pt. 3 + this.fillWithBlocks(world, box, 6, 11 - 1, 8 - 2, 7, 11 - 1, 8 - 2, ModBlocks.concrete_super_broken, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12 - 4, 11 - 4, 8 - 2, 12, 11 - 4, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12 - 4, 11 - 3, 8 - 2, 12 - 4, 11, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12 - 3, 11 - 1, 8 - 2, 12 - 2, 11, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12 - 1, 11 - 4, 8 - 2, 12, 11, 8 - 2, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 12, 11 - 4, 1, 12, 11 - 4, 8 - 3, false, rand, RandomSuperConcrete); //Right Wall + this.fillWithBlocks(world, box, 12, 11 - 3, 8 - 3, 12, 11 - 1, 8 - 3, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12, 11 - 3, 4, 12, 11 - 1, 4, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 12, 11 - 3, 3, 12, 11 - 1, 3, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12, 11 - 3, 2, 12, 11 - 1, 2, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 12, 11 - 3, 1, 12, 11 - 1, 1, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 12, 11, 1, 12, 11, 8 - 3, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 1, 0, 1, sizeX - 1, 3, 1, ModBlocks.reinforced_stone, Blocks.air, false); //Back Wall - this.fillWithBlocks(world, box, 1, 0, 2, 1, 3, sizeZ - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Left Wall - this.fillWithBlocks(world, box, 1, 0, sizeZ - 1, sizeX - 1, 3, sizeZ - 1, ModBlocks.reinforced_stone, Blocks.air, false); //Front Wall - this.fillWithBlocks(world, box, sizeX - 1, 0, 2, sizeX - 1, 3, sizeZ - 2, ModBlocks.reinforced_stone, Blocks.air, false); // Right Wall - this.fillWithBlocks(world, box, 6, 0, 3, 6, 3, sizeZ - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Internal Wall + this.fillWithBlocks(world, box, 1, 0, 1, 12 - 1, 3, 1, ModBlocks.reinforced_stone, Blocks.air, false); //Back Wall + this.fillWithBlocks(world, box, 1, 0, 2, 1, 3, 8 - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Left Wall + this.fillWithBlocks(world, box, 1, 0, 8 - 1, 12 - 1, 3, 8 - 1, ModBlocks.reinforced_stone, Blocks.air, false); //Front Wall + this.fillWithBlocks(world, box, 12 - 1, 0, 2, 12 - 1, 3, 8 - 2, ModBlocks.reinforced_stone, Blocks.air, false); // Right Wall + this.fillWithBlocks(world, box, 6, 0, 3, 6, 3, 8 - 2, ModBlocks.reinforced_stone, Blocks.air, false); //Internal Wall //Floors & Ceiling - this.fillWithRandomizedBlocks(world, box, 1, sizeY - 4, 1, 3, sizeY - 4, sizeZ - 1, false, rand, RandomLabTiles); //Left Floor - this.fillWithRandomizedBlocks(world, box, 4, sizeY - 4, sizeZ - 2, 5, sizeY - 4, sizeZ - 1, false, rand, RandomLabTiles); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, sizeY - 4, 1, sizeX - 1, sizeY - 4, sizeZ - 3, false, rand, RandomLabTiles); //Right Floor - this.fillWithRandomizedBlocks(world, box, sizeX - 3, sizeY - 4, sizeZ - 2, sizeX - 2, sizeY - 4, sizeZ - 2, false, rand, RandomLabTiles); - this.fillWithBlocks(world, box, 4, sizeY - 4, 1, 7, sizeY - 4, 1, ModBlocks.tile_lab_broken, Blocks.air, false); //Center Floor (Pain) - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 4, sizeY - 4, 2, box); - this.fillWithBlocks(world, box, 4, sizeY - 4, 3, 4, sizeY - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 5, sizeY - 4, 3, box); - this.fillWithBlocks(world, box, 5, sizeY - 4, 4, 5, sizeY - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 6, sizeY - 4, 4, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 6, sizeY - 4, 5, box); - this.fillWithBlocks(world, box, 7, sizeY - 4, 2, 7, sizeY - 4, 3, ModBlocks.tile_lab_broken, Blocks.air, false); - this.fillWithBlocks(world, box, 7, sizeY - 4, 4, 7, sizeY - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 11 - 4, 1, 3, 11 - 4, 8 - 1, false, rand, RandomLabTiles); //Left Floor + this.fillWithRandomizedBlocks(world, box, 4, 11 - 4, 8 - 2, 5, 11 - 4, 8 - 1, false, rand, RandomLabTiles); + this.fillWithRandomizedBlocks(world, box, 12 - 4, 11 - 4, 1, 12 - 1, 11 - 4, 8 - 3, false, rand, RandomLabTiles); //Right Floor + this.fillWithRandomizedBlocks(world, box, 12 - 3, 11 - 4, 8 - 2, 12 - 2, 11 - 4, 8 - 2, false, rand, RandomLabTiles); + this.fillWithBlocks(world, box, 4, 11 - 4, 1, 7, 11 - 4, 1, ModBlocks.tile_lab_broken, Blocks.air, false); //Center Floor (Pain) + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 4, 11 - 4, 2, box); + this.fillWithBlocks(world, box, 4, 11 - 4, 3, 4, 11 - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 5, 11 - 4, 3, box); + this.fillWithBlocks(world, box, 5, 11 - 4, 4, 5, 11 - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_broken, 0, 6, 11 - 4, 4, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.tile_lab_cracked, 0, 6, 11 - 4, 5, box); + this.fillWithBlocks(world, box, 7, 11 - 4, 2, 7, 11 - 4, 3, ModBlocks.tile_lab_broken, Blocks.air, false); + this.fillWithBlocks(world, box, 7, 11 - 4, 4, 7, 11 - 4, 5, ModBlocks.tile_lab_cracked, Blocks.air, false); - this.fillWithBlocks(world, box, 1, sizeY, 1, 2, sizeY, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); //Left Ceiling - this.fillWithBlocks(world, box, 3, sizeY, sizeZ - 2, 4, sizeY, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX - 3, sizeY, 1, sizeX - 1, sizeY, sizeZ - 3, ModBlocks.brick_light, Blocks.air, false); //Right Ceiling - this.fillWithBlocks(world, box, 3, sizeY, 1, 8, sizeY, 1, ModBlocks.waste_planks, Blocks.air, false); //Center Ceiling (Pain) - this.fillWithBlocks(world, box, 3, sizeY, 2, 4, sizeY, 2, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 7, sizeY, 2, 8, sizeY, 2, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 3, sizeY, 3, 3, sizeY, 5, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 4, sizeY, 4, 4, sizeY, 5, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 5, sizeY, 6, 5, sizeY, sizeZ - 1, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithBlocks(world, box, 8, sizeY, 3, 8, sizeY, 5, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 1, 11, 1, 2, 11, 8 - 1, ModBlocks.brick_light, Blocks.air, false); //Left Ceiling + this.fillWithBlocks(world, box, 3, 11, 8 - 2, 4, 11, 8 - 1, ModBlocks.brick_light, Blocks.air, false); + this.fillWithBlocks(world, box, 12 - 3, 11, 1, 12 - 1, 11, 8 - 3, ModBlocks.brick_light, Blocks.air, false); //Right Ceiling + this.fillWithBlocks(world, box, 3, 11, 1, 8, 11, 1, ModBlocks.waste_planks, Blocks.air, false); //Center Ceiling (Pain) + this.fillWithBlocks(world, box, 3, 11, 2, 4, 11, 2, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 7, 11, 2, 8, 11, 2, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 3, 11, 3, 3, 11, 5, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 11, 4, 4, 11, 5, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 5, 11, 6, 5, 11, 8 - 1, ModBlocks.waste_planks, Blocks.air, false); + this.fillWithBlocks(world, box, 8, 11, 3, 8, 11, 5, ModBlocks.waste_planks, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, 0, 2, 5, 0, sizeZ - 2, false, rand, RandomLabTiles); //Floor + this.fillWithRandomizedBlocks(world, box, 2, 0, 2, 5, 0, 8 - 2, false, rand, RandomLabTiles); //Floor this.fillWithRandomizedBlocks(world, box, 6, 0, 2, 6, 0, 3, false, rand, RandomLabTiles); - this.fillWithRandomizedBlocks(world, box, 7, 0, 2, sizeX - 2, 0, sizeZ - 2, false, rand, RandomLabTiles); + this.fillWithRandomizedBlocks(world, box, 7, 0, 2, 12 - 2, 0, 8 - 2, false, rand, RandomLabTiles); - this.fillWithRandomizedBlocks(world, box, 1, 4, 1, sizeX - 1, 4, sizeZ - 1, false, rand, RandomConcreteBricks); //Ceiling + this.fillWithRandomizedBlocks(world, box, 1, 4, 1, 12 - 1, 4, 8 - 1, false, rand, RandomConcreteBricks); //Ceiling //Decorations & Loot int eastMeta = this.getDecoMeta(4); int westMeta = this.getDecoMeta(5); int northMeta = this.getDecoMeta(3); int southMeta = this.getDecoMeta(2); - this.placeBlockAtCurrentPosition(world, ModBlocks.crashed_balefire, southMeta, 6, sizeY - 2, 3, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crashed_balefire, southMeta, 6, 11 - 2, 3, box); int doorMeta = this.getMetadataWithOffset(Blocks.wooden_door, 1); - this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, sizeX - 3, sizeY - 3, sizeZ - 2, box); - ItemDoor.placeDoorBlock(world, this.getXWithOffset(sizeX - 3, sizeZ - 2), this.getYWithOffset(sizeY - 3), this.getZWithOffset(sizeX - 3, sizeZ - 2), + this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 12 - 3, 11 - 3, 8 - 2, box); + ItemDoor.placeDoorBlock(world, this.getXWithOffset(12 - 3, 8 - 2), this.getYWithOffset(11 - 3), this.getZWithOffset(12 - 3, 8 - 2), doorMeta, ModBlocks.door_office); - this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, sizeX - 2, sizeY - 3, sizeZ - 2, box); - ItemDoor.placeDoorBlock(world, this.getXWithOffset(sizeX - 2, sizeZ - 2), this.getYWithOffset(sizeY - 3), this.getZWithOffset(sizeX - 2, sizeZ - 2), + this.placeBlockAtCurrentPosition(world, ModBlocks.door_office, doorMeta, 12 - 2, 11 - 3, 8 - 2, box); + ItemDoor.placeDoorBlock(world, this.getXWithOffset(12 - 2, 8 - 2), this.getYWithOffset(11 - 3), this.getZWithOffset(12 - 2, 8 - 2), doorMeta, ModBlocks.door_office); - this.fillWithBlocks(world, box, 1, sizeY - 3, 1, 1, sizeY - 1, 1, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 1, sizeY - 3, 2, 1, sizeY - 2, 3, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, westMeta, 1, sizeY - 1, 2, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 1, sizeY - 1, 3, box); - this.fillWithBlocks(world, box, 1, sizeY - 3, 6, 1, sizeY - 1, 6, ModBlocks.deco_pipe_framed_rusted, Blocks.air, false); + this.fillWithBlocks(world, box, 1, 11 - 3, 1, 1, 11 - 1, 1, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 1, 11 - 3, 2, 1, 11 - 2, 3, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, westMeta, 1, 11 - 1, 2, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 1, 11 - 1, 3, box); + this.fillWithBlocks(world, box, 1, 11 - 3, 6, 1, 11 - 1, 6, ModBlocks.deco_pipe_framed_rusted, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, sizeX - 4, sizeY - 3, 1, sizeX - 4, sizeY - 1, 1, ModBlocks.steel_wall, eastMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 3, sizeY - 1, 1, sizeX - 2, sizeY - 1, 1, ModBlocks.steel_grate, 0, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 3, sizeY - 2, 1, sizeX - 2, sizeY - 2, 1, ModBlocks.tape_recorder, northMeta, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX - 3, sizeY - 3, 1, sizeX - 2, sizeY - 3, 1, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, sizeX - 1, sizeY - 3, 1, sizeX - 1, sizeY - 1, 1, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 4, 11 - 3, 1, 12 - 4, 11 - 1, 1, ModBlocks.steel_wall, eastMeta, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 3, 11 - 1, 1, 12 - 2, 11 - 1, 1, ModBlocks.steel_grate, 0, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 3, 11 - 2, 1, 12 - 2, 11 - 2, 1, ModBlocks.tape_recorder, northMeta, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 12 - 3, 11 - 3, 1, 12 - 2, 11 - 3, 1, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 12 - 1, 11 - 3, 1, 12 - 1, 11 - 1, 1, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 2, 1, 2, 2, 1, sizeZ - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 2, 1, 2, 2, 1, 8 - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); this.placeBlockAtCurrentPosition(world, ModBlocks.vitrified_barrel, 0, 2, 2, 2, box); this.fillWithMetadataBlocks(world, box, 3, 1, 2, 3, 3, 2, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); this.fillWithMetadataBlocks(world, box, 3, 1, 4, 3, 3, 4, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, 3, 1, sizeZ - 2, 3, 3, sizeZ - 2, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 4, 1, sizeZ - 2, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 4, 2, sizeZ - 2, box); + this.fillWithMetadataBlocks(world, box, 3, 1, 8 - 2, 3, 3, 8 - 2, ModBlocks.steel_wall, westMeta, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate, 0, 4, 1, 8 - 2, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.crate_lead, 0, 4, 2, 8 - 2, box); if(!hasPlacedLoot[0]) { - this.hasPlacedLoot[0] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 5, 1, sizeZ - 2, HbmChestContents.nuclearFuel, 10); + this.hasPlacedLoot[0] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 5, 1, 8 - 2, ItemPool.getPool(ItemPoolsComponent.POOL_NUKE_FUEL), 10); } - this.fillWithBlocks(world, box, 4, 1, sizeZ - 3, 5, 1, sizeZ - 3, ModBlocks.crate_lead, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 1, 8 - 3, 5, 1, 8 - 3, ModBlocks.crate_lead, Blocks.air, false); - this.fillWithBlocks(world, box, sizeX - 5, 1, sizeZ - 2, sizeX - 5, 3, sizeZ - 2, ModBlocks.deco_steel, Blocks.air, false);; - this.fillWithMetadataBlocks(world, box, sizeX - 4, 1, sizeZ - 2, sizeX - 2, 1, sizeZ - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 4, 2, sizeZ - 2, sizeX - 3, 2, sizeZ - 2, ModBlocks.tape_recorder, southMeta, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, sizeX - 2, 2, sizeZ - 2, box); - this.fillWithBlocks(world, box, sizeX - 4, 3, sizeZ - 2, sizeX - 2, 3, sizeZ - 2, ModBlocks.steel_roof, Blocks.air, false); + this.fillWithBlocks(world, box, 12 - 5, 1, 8 - 2, 12 - 5, 3, 8 - 2, ModBlocks.deco_steel, Blocks.air, false);; + this.fillWithMetadataBlocks(world, box, 12 - 4, 1, 8 - 2, 12 - 2, 1, 8 - 2, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 12 - 4, 2, 8 - 2, 12 - 3, 2, 8 - 2, ModBlocks.tape_recorder, southMeta, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 0, 12 - 2, 2, 8 - 2, box); + this.fillWithBlocks(world, box, 12 - 4, 3, 8 - 2, 12 - 2, 3, 8 - 2, ModBlocks.steel_roof, Blocks.air, false); if(!hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, sizeX - 2, 1, 3, HbmChestContents.nukeTrash, 9); + this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 12 - 2, 1, 3, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_TRASH), 9); if(rand.nextInt(2) == 0) - generateLoreBook(world, box, sizeX - 2, 1, 3, 1, HbmChestContents.generateOfficeBook(rand)); + generateLoreBook(world, box, 12 - 2, 1, 3, 1, HbmChestContents.generateOfficeBook(rand)); } return true; @@ -586,8 +591,8 @@ public class CivilianFeatures { super(); } - public NTMWorkshop1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 10, 6, 8); + public NTMWorkshop1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 10, 6, 8); this.hasPlacedLoot = false; } @@ -612,20 +617,20 @@ public class CivilianFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, sizeX - 3, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.dirt, 0, 8, 1, sizeX, 6, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 8 - 3, 11, -1, box); + placeFoundationUnderneath(world, Blocks.dirt, 0, 8, 1, 10, 6, -1, box); - this.fillWithAir(world, box, 1, 0, 0, sizeX - 3, sizeY - 2, sizeZ); - this.fillWithAir(world, box, sizeX - 2, 0, 2, sizeX - 1, 2, 5); + this.fillWithAir(world, box, 1, 0, 0, 10 - 3, 6 - 2, 8); + this.fillWithAir(world, box, 10 - 2, 0, 2, 10 - 1, 2, 5); if(this.getBlockAtCurrentPosition(world, 0, 0, 5, box).getMaterial().isReplaceable() || this.getBlockAtCurrentPosition(world, 0, 0, 5, box) == Blocks.air) { int stairMeta = this.getMetadataWithOffset(Blocks.stone_brick_stairs, 1); this.placeBlockAtCurrentPosition(world, Blocks.stone_brick_stairs, stairMeta, 0, 0, 5, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 1, 0, sizeZ - 1, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 1, 0, 8 - 1, -1, box); - this.fillWithMetadataBlocks(world, box, 0, 0, 1, 0, 0, sizeZ - 1, Blocks.stone_slab, 5, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 0, 0, 1, 0, 0, 8 - 1, Blocks.stone_slab, 5, Blocks.air, 0, false); } //Walls @@ -633,96 +638,529 @@ public class CivilianFeatures { int pillarMetaNS = this.getPillarMeta(8); this.fillWithBlocks(world, box, 1, 0, 0, 1, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 1, 4, 0, box); - this.fillWithMetadataBlocks(world, box, 2, 4, 0, sizeX - 4, 4, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, sizeX - 3, 4, 0, box); - this.fillWithBlocks(world, box, sizeX - 3, 0, 0, sizeX - 3, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, 0, 0, sizeX - 4, 1, 0, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 2, 4, 0, 10 - 4, 4, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 10 - 3, 4, 0, box); + this.fillWithBlocks(world, box, 10 - 3, 0, 0, 10 - 3, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 2, 0, 0, 10 - 4, 1, 0, false, rand, RandomSuperConcrete); this.fillWithRandomizedBlocks(world, box, 2, 2, 0, 2, 2, 0, false, rand, RandomSuperConcrete); this.fillWithBlocks(world, box, 3, 2, 0, 5, 2, 0, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, 2, 0, sizeX - 4, 2, 0, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 3, 0, sizeX - 4, 3, 0, false, rand, RandomSuperConcrete); - this.fillWithMetadataBlocks(world, box, 1, 4, 1, 1, 4, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 1, 4, sizeZ, box); - this.fillWithBlocks(world, box, 1, 0, sizeZ, 1, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 10 - 4, 2, 0, 10 - 4, 2, 0, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 3, 0, 10 - 4, 3, 0, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 1, 4, 1, 1, 4, 8 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 1, 4, 8, box); + this.fillWithBlocks(world, box, 1, 0, 8, 1, 3, 8, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 0, 1, 1, 1, 4, false, rand, RandomSuperConcrete); this.fillWithRandomizedBlocks(world, box, 1, 2, 1, 1, 2, 1, false, rand, RandomSuperConcrete); this.fillWithBlocks(world, box, 1, 2, 2, 1, 2, 3, ModBlocks.reinforced_glass, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 2, 4, 1, 2, 4, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 1, 3, 1, 1, 3, sizeZ - 1, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ - 2, 1, 3, sizeZ - 1, false, rand, RandomSuperConcrete); - this.fillWithMetadataBlocks(world, box, 2, 4, sizeZ, sizeX - 4, 4, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, sizeX - 3, 4, sizeZ, box); - this.fillWithBlocks(world, box, sizeX - 3, 0, sizeZ, sizeX - 3, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 2, 0, sizeZ, sizeX - 4, 1, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 2, sizeZ, 2, 2, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, 3, 2, sizeZ, 5, 2, sizeZ, ModBlocks.reinforced_glass, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX - 4, 2, sizeZ, sizeX - 4, 2, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 3, sizeZ, sizeX - 4, 3, sizeZ, false, rand, RandomSuperConcrete); - this.fillWithMetadataBlocks(world, box, sizeX - 3, 4, 1, sizeX - 3, 4, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithRandomizedBlocks(world, box, sizeX - 3, 0, 1, sizeX - 3, 3, sizeZ - 1, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 1, 3, 1, 1, 3, 8 - 1, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 1, 0, 8 - 2, 1, 3, 8 - 1, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 2, 4, 8, 10 - 4, 4, 8, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete, 0, 10 - 3, 4, 8, box); + this.fillWithBlocks(world, box, 10 - 3, 0, 8, 10 - 3, 3, 8, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 2, 0, 8, 10 - 4, 1, 8, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 2, 8, 2, 2, 8, false, rand, RandomSuperConcrete); + this.fillWithBlocks(world, box, 3, 2, 8, 5, 2, 8, ModBlocks.reinforced_glass, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 10 - 4, 2, 8, 10 - 4, 2, 8, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 3, 8, 10 - 4, 3, 8, false, rand, RandomSuperConcrete); + this.fillWithMetadataBlocks(world, box, 10 - 3, 4, 1, 10 - 3, 4, 8 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithRandomizedBlocks(world, box, 10 - 3, 0, 1, 10 - 3, 3, 8 - 1, false, rand, RandomSuperConcrete); pillarMetaWE = this.getPillarMeta(5); pillarMetaNS = this.getPillarMeta(9); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 2, 1, sizeX - 1, 2, 1, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Back Wall - this.fillWithMetadataBlocks(world, box, sizeX, 0, 1, sizeX, 2, 1, Blocks.log, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 1, sizeX - 1, 1, 1, Blocks.planks, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX, 2, 2, sizeX, 2, 5, Blocks.log, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithMetadataBlocks(world, box, sizeX, 0, 6, sizeX, 2, 6, Blocks.log, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX, 0, 3, sizeX, 1, 5, Blocks.planks, 1, Blocks.air, 0, false); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 2, 6, sizeX - 1, 2, 6, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 6, sizeX - 1, 1, 6, Blocks.planks, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10 - 2, 2, 1, 10 - 1, 2, 1, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Back Wall + this.fillWithMetadataBlocks(world, box, 10, 0, 1, 10, 2, 1, Blocks.log, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 1, 10 - 1, 1, 1, Blocks.planks, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10, 2, 2, 10, 2, 5, Blocks.log, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithMetadataBlocks(world, box, 10, 0, 6, 10, 2, 6, Blocks.log, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10, 0, 3, 10, 1, 5, Blocks.planks, 1, Blocks.air, 0, false); + this.fillWithMetadataBlocks(world, box, 10 - 2, 2, 6, 10 - 1, 2, 6, Blocks.log, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 6, 10 - 1, 1, 6, Blocks.planks, 1, Blocks.air, 0, false); //Floor & Ceiling - this.fillWithBlocks(world, box, 2, 0, 1, 6, 0, sizeZ - 1, ModBlocks.brick_light, Blocks.air, false); //Floor + this.fillWithBlocks(world, box, 2, 0, 1, 6, 0, 8 - 1, ModBlocks.brick_light, Blocks.air, false); //Floor this.placeBlockAtCurrentPosition(world, ModBlocks.brick_light, 0, 1, 0, 5, box); this.fillWithRandomizedBlocks(world, box, 2, 4, 1, 6, 4, 3, false, rand, RandomSuperConcrete); //Ceiling this.fillWithRandomizedBlocks(world, box, 2, 4, 4, 2, 4, 4, false, rand, RandomSuperConcrete); this.fillWithRandomizedBlocks(world, box, 5, 4, 4, 6, 4, 4, false, rand, RandomSuperConcrete); - this.fillWithRandomizedBlocks(world, box, 2, 4, sizeZ - 3, 6, 4, sizeZ - 1, false, rand, RandomSuperConcrete); + this.fillWithRandomizedBlocks(world, box, 2, 4, 8 - 3, 6, 4, 8 - 1, false, rand, RandomSuperConcrete); - this.fillWithBlocks(world, box, sizeX - 2, 2, 2, sizeX - 1, 2, 5, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithBlocks(world, box, 10 - 2, 2, 2, 10 - 1, 2, 5, ModBlocks.deco_steel, Blocks.air, false); //Loot & Decorations int southMeta = this.getDecoMeta(2); int eastMeta = this.getDecoMeta(5); - this.placeBlockAtCurrentPosition(world, ModBlocks.pole_satellite_receiver, eastMeta, 2, sizeY - 1, 1, box); - this.fillWithBlocks(world, box, 3, sizeY - 1, 1, 4, sizeY - 1, 1, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithBlocks(world, box, 2, sizeY - 1, 2, 4, sizeY - 1, 2, ModBlocks.deco_steel, Blocks.air, false); - this.fillWithBlocks(world, box, 2, sizeY, 1, 4, sizeY, 2, ModBlocks.steel_roof, Blocks.air, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.pole_satellite_receiver, eastMeta, 2, 6 - 1, 1, box); + this.fillWithBlocks(world, box, 3, 6 - 1, 1, 4, 6 - 1, 1, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithBlocks(world, box, 2, 6 - 1, 2, 4, 6 - 1, 2, ModBlocks.deco_steel, Blocks.air, false); + this.fillWithBlocks(world, box, 2, 6, 1, 4, 6, 2, ModBlocks.steel_roof, Blocks.air, false); this.fillWithBlocks(world, box, 2, 1, 1, 2, 3, 1, ModBlocks.deco_red_copper, Blocks.air, false); this.fillWithBlocks(world, box, 3, 1, 1, 3, 1, 2, ModBlocks.deco_beryllium, Blocks.air, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.machine_generator, 0, 4, 1, 1, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.machine_amgen, 0, 4, 1, 1, box); this.placeBlockAtCurrentPosition(world, ModBlocks.machine_detector, 0, 4, 1, 2, box); this.fillWithBlocks(world, box, 5, 1, 1, 5, 1, 2, ModBlocks.deco_beryllium, Blocks.air, false); this.fillWithBlocks(world, box, 6, 1, 1, 6, 3, 1, ModBlocks.deco_red_copper, Blocks.air, false); this.fillWithBlocks(world, box, 3, 1, 4, 4, 1, 4, ModBlocks.concrete_super_broken, Blocks.air, false); this.fillWithMetadataBlocks(world, box, 6, 1, 4, 6, 3, 4, ModBlocks.steel_scaffold, eastMeta < 4 ? 0 : 8, Blocks.air, 0, false); this.fillWithMetadataBlocks(world, box, 6, 1, 5, 6, 1, 7, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.radiorec, eastMeta, 6, 2, sizeZ - 1, box); - this.fillWithMetadataBlocks(world, box, 2, 1, sizeZ - 1, 3, 1, sizeZ - 1, ModBlocks.machine_electric_furnace_off, southMeta, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.radiorec, eastMeta, 6, 2, 8 - 1, box); + this.fillWithMetadataBlocks(world, box, 2, 1, 8 - 1, 3, 1, 8 - 1, ModBlocks.machine_electric_furnace_off, southMeta, Blocks.air, 0, false); if(!hasPlacedLoot) { - this.hasPlacedLoot = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 4, 1, sizeZ - 1, HbmChestContents.machineParts, 11); + this.hasPlacedLoot = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, 4, 1, 8 - 1, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 11); } this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 5, 3, 1, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 2, 1, 2, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 6, 1, 2, box); this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 6, 2, 5, box); - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 5, sizeX - 1, 0, 5, ModBlocks.steel_grate, 7, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, southMeta, sizeX - 2, 1, 5, box); - this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), sizeX - 1, 1, 5, box); - TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(sizeX - 1, 5), this.getYWithOffset(1), this.getZWithOffset(sizeX - 1, 5)); + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 5, 10 - 1, 0, 5, ModBlocks.steel_grate, 7, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, southMeta, 10 - 2, 1, 5, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.bobblehead, rand.nextInt(16), 10 - 1, 1, 5, box); + TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(this.getXWithOffset(10 - 1, 5), this.getYWithOffset(1), this.getZWithOffset(10 - 1, 5)); if(bobble != null) { bobble.type = BobbleType.values()[rand.nextInt(BobbleType.values().length - 1) + 1]; bobble.markDirty(); } - this.fillWithMetadataBlocks(world, box, sizeX - 2, 0, 2, sizeX - 2, 0, 3, Blocks.log, pillarMetaWE, Blocks.air, 0, false); - this.placeBlockAtCurrentPosition(world, Blocks.log, pillarMetaWE, sizeX - 2, 1, 2, box); - this.placeBlockAtCurrentPosition(world, Blocks.web, 0, sizeX - 2, 1, 3, box); + this.fillWithMetadataBlocks(world, box, 10 - 2, 0, 2, 10 - 2, 0, 3, Blocks.log, pillarMetaWE, Blocks.air, 0, false); + this.placeBlockAtCurrentPosition(world, Blocks.log, pillarMetaWE, 10 - 2, 1, 2, box); + this.placeBlockAtCurrentPosition(world, Blocks.web, 0, 10 - 2, 1, 3, box); return true; } } + + public static class RuralHouse1 extends Component { + + public RuralHouse1() { + super(); + } + + public RuralHouse1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 14, 8, 14); + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + if(!this.setAverageHeight(world, box, this.boundingBox.minY)) { + return false; + } + + //FillWithAir + fillWithAir(world, box, 9, 1, 3, 12, 4, 8); + fillWithAir(world, box, 5, 1, 2, 8, 3, 8); + fillWithAir(world, box, 2, 1, 5, 4, 3, 8); + fillWithAir(world, box, 2, 1, 10, 7, 3, 12); + + //Foundations + fillWithBlocks(world, box, 1, 0, 4, 4, 0, 4, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 4, 0, 2, 4, 0, 3, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 4, 0, 1, 9, 0, 1, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 9, 0, 2, 10, 0, 2, ModBlocks.concrete_colored_ext); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 12, 0, 2, box); + fillWithBlocks(world, box, 13, 0, 2, 13, 0, 9, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 5, 0, 9, 12, 0, 9, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 2, 0, 9, 3, 0, 9, ModBlocks.concrete_colored_ext); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 0, 8, 0, 10, box); + fillWithBlocks(world, box, 8, 0, 12, 8, 0, 13, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 1, 0, 13, 7, 0, 13, ModBlocks.concrete_colored_ext); + fillWithBlocks(world, box, 1, 0, 5, 1, 0, 12, ModBlocks.concrete_colored_ext); + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 1, 10, 8, 13, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 1, 4, 3, 9, -1, box); + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 4, 1, 13, 9, -1, box); + + placeFoundationUnderneath(world, Blocks.log, 0, 2, 3, 2, 3, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 3, 2, 3, 2, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 3, 0, 3, 0, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 5, 0, 5, 0, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 8, 0, 8, 0, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 10, 0, 10, 0, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 1, 14, 1, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 3, 14, 3, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 5, 14, 6, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 8, 14, 8, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 14, 10, 14, 10, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 9, 14, 9, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 7, 14, 7, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 4, 14, 5, 14, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 2, 14, 2, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 14, 0, 14, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 13, 0, 13, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 11, 0, 11, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 9, 0, 9, -1, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 6, 0, 7, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 4, 0, 4, 0, box); + placeFoundationUnderneath(world, Blocks.log, 0, 0, 3, 0, 4, -1, box); + + //Walls + //North/Front + fillWithBlocks(world, box, 1, 1, 4, 4, 4, 4, Blocks.brick_block); + fillWithBlocks(world, box, 2, 5, 4, 7, 5, 4, Blocks.brick_block); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 3, 6, 4, box); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 6, 6, 4, box); + fillWithBlocks(world, box, 4, 7, 4, 5, 7, 4, Blocks.brick_block); + fillWithBlocks(world, box, 4, 1, 1, 4, 4, 3, Blocks.brick_block); + fillWithBlocks(world, box, 5, 1, 1, 8, 1, 1, Blocks.brick_block); + fillWithBlocks(world, box, 5, 4, 1, 8, 4, 1, Blocks.brick_block); + fillWithBlocks(world, box, 9, 1, 1, 9, 4, 2, Blocks.brick_block); + fillWithBlocks(world, box, 10, 1, 2, 10, 3, 2, Blocks.brick_block); + fillWithBlocks(world, box, 12, 1, 2, 13, 3, 2, Blocks.brick_block); + fillWithBlocks(world, box, 10, 4, 2, 13, 4, 2, Blocks.brick_block); + fillWithBlocks(world, box, 9, 5, 2, 12, 5, 2, Blocks.brick_block); + fillWithBlocks(world, box, 10, 6, 2, 11, 6, 2, Blocks.brick_block); + //East/Left + fillWithBlocks(world, box, 13, 1, 3, 13, 1, 8, Blocks.brick_block); + fillWithBlocks(world, box, 13, 3, 3, 13, 4, 8, Blocks.brick_block); + //South/Back + fillWithBlocks(world, box, 13, 1, 9, 13, 4, 9, Blocks.brick_block); + fillWithBlocks(world, box, 9, 1, 9, 12, 1, 9, Blocks.brick_block); + fillWithBlocks(world, box, 9, 4, 9, 12, 5, 9, Blocks.brick_block); + fillWithBlocks(world, box, 10, 6, 9, 11, 6, 9, Blocks.brick_block); + fillWithBlocks(world, box, 8, 1, 9, 8, 4, 10, Blocks.brick_block); + fillWithBlocks(world, box, 8, 1, 12, 8, 3, 13, Blocks.brick_block); + fillWithBlocks(world, box, 8, 4, 11, 8, 4, 13, Blocks.brick_block); + fillWithBlocks(world, box, 7, 1, 13, 7, 3, 13, Blocks.brick_block); + fillWithBlocks(world, box, 3, 1, 13, 6, 1, 13, Blocks.brick_block); + fillWithBlocks(world, box, 2, 4, 13, 7, 5, 13, Blocks.brick_block); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 6, 6, 13, box); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 3, 6, 13, box); + fillWithBlocks(world, box, 4, 7, 13, 5, 7, 13, Blocks.brick_block); + fillWithBlocks(world, box, 2, 1, 13, 2, 3, 13, Blocks.brick_block); + //West/Right + fillWithBlocks(world, box, 1, 1, 13, 1, 4, 13, Blocks.brick_block); + fillWithBlocks(world, box, 1, 1, 5, 1, 1, 12, Blocks.brick_block); + placeBlockAtCurrentPosition(world, Blocks.brick_block, 0, 1, 2, 9, box); + fillWithBlocks(world, box, 1, 3, 5, 1, 3, 12, Blocks.brick_block); + //Inside + fillWithBlocks(world, box, 2, 1, 9, 3, 3, 9, Blocks.brick_block); + fillWithBlocks(world, box, 5, 1, 9, 7, 3, 9, Blocks.brick_block); + //Wood Paneling + fillWithMetadataBlocks(world, box, 5, 2, 1, 5, 3, 1, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 8, 2, 1, 8, 3, 1, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 11, 3, 2, box); + fillWithMetadataBlocks(world, box, 13, 2, 3, 13, 2, 4, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 13, 2, 7, 13, 2, 8, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 12, 2, 9, 12, 3, 9, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 9, 2, 9, 9, 3, 9, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 8, 3, 11, box); + fillWithMetadataBlocks(world, box, 6, 2, 13, 6, 3, 13, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 3, 2, 13, 3, 3, 13, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 12, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 10, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 8, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 1, 2, 5, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 4, 3, 9, box); + //Wood Framing + //North/Front + int logW = this.getPillarMeta(4); + int logN = this.getPillarMeta(8); + + fillWithBlocks(world, box, 0, 0, 3, 0, 3, 3, Blocks.log); + fillWithMetadataBlocks(world, box, 1, 4, 3, 3, 4, 3, Blocks.log, logW); + fillWithMetadataBlocks(world, box, 3, 4, 1, 3, 4, 2, Blocks.log, logN); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 1, 3, 3, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 3, 3, 1, box); + fillWithMetadataBlocks(world, box, 1, 1, 3, 2, 1, 3, Blocks.wooden_slab, 1); + fillWithMetadataBlocks(world, box, 3, 1, 1, 3, 1, 3, Blocks.wooden_slab, 1); + fillWithBlocks(world, box, 3, 0, 0, 3, 3, 0, Blocks.log); + fillWithMetadataBlocks(world, box, 4, 1, 0, 9, 1, 0, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 4, 3, 0, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 9, 3, 0, box); + fillWithBlocks(world, box, 10, 0, 0, 10, 3, 0, Blocks.log); + fillWithMetadataBlocks(world, box, 10, 4, 1, 13, 4, 1, Blocks.log, logW); + fillWithBlocks(world, box, 14, 0, 1, 14, 3, 1, Blocks.log); + //East/Left + fillWithBlocks(world, box, 14, 0, 3, 14, 3, 3, Blocks.log); + fillWithBlocks(world, box, 14, 0, 8, 14, 3, 8, Blocks.log); + fillWithBlocks(world, box, 14, 0, 10, 14, 3, 10, Blocks.log); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 14, 1, 2, box); + fillWithMetadataBlocks(world, box, 14, 1, 4, 14, 1, 7, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 14, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 2, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 4, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 7, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 14, 3, 9, box); + //South/Back + fillWithMetadataBlocks(world, box, 9, 4, 10, 13, 4, 10, Blocks.log, logW); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 13, 3, 10, box); + fillWithBlocks(world, box, 9, 0, 14, 9, 3, 14, Blocks.log); + fillWithBlocks(world, box, 7, 0, 14, 7, 3, 14, Blocks.log); + fillWithBlocks(world, box, 2, 0, 14, 2, 3, 14, Blocks.log); + fillWithBlocks(world, box, 0, 0, 14, 0, 3, 14, Blocks.log); + fillWithMetadataBlocks(world, box, 1, 4, 14, 8, 4, 14, Blocks.log, logW); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 8, 1, 14, box); + fillWithMetadataBlocks(world, box, 3, 1, 14, 6, 1, 14, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 1, 1, 14, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 8, 3, 14, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 1, 3, 14, box); + //West/Right + fillWithBlocks(world, box, 0, 0, 9, 0, 3, 9, Blocks.log); + fillWithMetadataBlocks(world, box, 0, 1, 10, 0, 1, 13, Blocks.wooden_slab, 1); + fillWithMetadataBlocks(world, box, 0, 1, 4, 0, 1, 8, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 13, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 10, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 8, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 9, 0, 3, 4, box); + + int stairW = this.getStairMeta(0); + int stairE = this.getStairMeta(1); + int stairN = this.getStairMeta(2); + int stairS = this.getStairMeta(3); + + //Floor + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 11, 0, 2, box); + fillWithMetadataBlocks(world, box, 9, 0, 3, 12, 0, 8, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 5, 0, 2, 8, 0, 8, Blocks.planks, 1); + fillWithMetadataBlocks(world, box, 2, 0, 5, 4, 0, 8, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 4, 0, 9, box); + fillWithMetadataBlocks(world, box, 2, 0, 10, 7, 0, 12, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 8, 0, 11, box); + fillWithBlocks(world, box, 13, 1, 0, 14, 1, 0, Blocks.fence); + //Porches + fillWithBlocks(world, box, 10, 0, 1, 13, 0, 1, Blocks.planks); + fillWithMetadataBlocks(world, box, 11, 0, 0, 12, 0, 0, Blocks.spruce_stairs, stairN); + fillWithMetadataBlocks(world, box, 13, 0, 0, 14, 0, 0, Blocks.planks, 1); + fillWithBlocks(world, box, 12, 0, 10, 13, 0, 10, Blocks.planks); + fillWithBlocks(world, box, 9, 0, 10, 11, 0, 11, Blocks.planks); + fillWithBlocks(world, box, 9, 0, 12, 10, 0, 12, Blocks.planks); + placeBlockAtCurrentPosition(world, Blocks.planks, 0, 9, 0, 13, box); + for(int i = 0; i < 3; i++) { + fillWithMetadataBlocks(world, box, 10 + i, 0, 13 - i, 11 + i, 0, 13 - i, Blocks.planks, 1); + fillWithBlocks(world, box, 10 + i, 1, 13 - i, 11 + i, 1, 13 - i, Blocks.fence); + } + + //Ceiling + fillWithMetadataBlocks(world, box, 12, 4, 3, 12, 4, 8, Blocks.oak_stairs, stairW | 4); + fillWithBlocks(world, box, 12, 5, 3, 12, 5, 8, Blocks.planks); + fillWithBlocks(world, box, 10, 5, 3, 11, 6, 8, Blocks.planks); + fillWithBlocks(world, box, 9, 5, 3, 9, 5, 8, Blocks.planks); + fillWithMetadataBlocks(world, box, 9, 4, 3, 9, 4, 8, Blocks.oak_stairs, stairE | 4); + fillWithBlocks(world, box, 8, 4, 5, 8, 4, 8, Blocks.planks); + fillWithBlocks(world, box, 5, 4, 2, 8, 4, 4, Blocks.planks); + fillWithBlocks(world, box, 1, 4, 5, 7, 4, 12, Blocks.planks); + + //Roofing + //Framing + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 1, 5, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 2, 6, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 3, 6, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 3, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 4, 7, 3, box); + fillWithMetadataBlocks(world, box, 4, 8, 3, 5, 8, 3, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 5, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 6, 7, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 6, 6, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 7, 6, 3, box); + fillWithMetadataBlocks(world, box, 2, 5, 3, 3, 5, 3, Blocks.planks, 1); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 3, 5, 2, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 3, 5, 1, box); + fillWithMetadataBlocks(world, box, 3, 4, 0, 14, 4, 0, Blocks.spruce_stairs, stairN); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 8, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.planks, 1, 9, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 10, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 9, 6, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 10, 6, 1, box); + fillWithMetadataBlocks(world, box, 10, 7, 1, 11, 7, 1, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 11, 6, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 12, 6, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 12, 5, 1, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 13, 5, 1, box); + fillWithMetadataBlocks(world, box, 14, 4, 1, 14, 4, 10, Blocks.spruce_stairs, stairE); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 13, 5, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 12, 5, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 12, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 11, 6, 10, box); + fillWithMetadataBlocks(world, box, 10, 7, 10, 11, 7, 10, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 10, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 9, 6, 10, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 9, 5, 10, box); + fillWithMetadataBlocks(world, box, 9, 4, 11, 9, 4, 14, Blocks.spruce_stairs, stairE); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 8, 5, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 7, 5, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 7, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 6, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE, 6, 7, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 5, 7, 14, box); + fillWithMetadataBlocks(world, box, 4, 8, 14, 5, 8, 14, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 4, 7, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 3, 7, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 3, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 2, 6, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 2, 5, 14, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW, 1, 5, 14, box); + fillWithMetadataBlocks(world, box, 0, 4, 3, 0, 4, 14, Blocks.spruce_stairs, stairW); + //Beams + for(int z = 6; z <= 11; z += 5) { + for(int i = 0; i < 3; i++) { + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairE | 4, 2 + i, 5 + i, z, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairW | 4, 7 - i, 5 + i, z, box); + } + } + + //Main (LEFT) + BrokenStairs roofStairs = new BrokenStairs(); + BrokenBlocks roofBlocks = new BrokenBlocks(); + + roofStairs.setMetadata(stairW); + fillWithBlocks(world, box, 4, 5, 1, 7, 5, 1, Blocks.wooden_slab); + fillWithRandomizedBlocks(world, box, 4, 5, 2, 7, 5, 3, rand, roofBlocks); //TODO separate into stair/slab/block block selectors + fillWithRandomizedBlocks(world, box, 8, 5, 2, 8, 5, 10, rand, roofBlocks); + fillWithRandomizedBlocks(world, box, 9, 6, 2, 9, 6, 9, rand, roofStairs); + randomlyFillWithBlocks(world, box, rand, 0.8F, 10, 7, 2, 11, 7, 9, Blocks.wooden_slab); + roofStairs.setMetadata(stairE); + fillWithRandomizedBlocks(world, box, 12, 6, 2, 12, 6, 9, rand, roofStairs); //i should redo like most of this shit + fillWithRandomizedBlocks(world, box, 13, 5, 2, 13, 5, 9, rand, roofStairs); + //Main (RIGHT) + fillWithRandomizedBlocks(world, box, 8, 5, 11, 8, 5, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 7, 6, 4, 7, 6, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 6, 7, 4, 6, 7, 7, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 6, 7, 11, 6, 7, 13, rand, roofStairs); + roofStairs.setMetadata(stairW); + fillWithBlocks(world, box, 4, 8, 4, 5, 8, 5, Blocks.wooden_slab); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 5, 8, 6, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 0, 4, 8, 11, box); + fillWithBlocks(world, box, 4, 8, 12, 5, 8, 13, Blocks.wooden_slab); + fillWithRandomizedBlocks(world, box, 3, 7, 4, 3, 7, 6, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 3, 7, 10, 3, 7, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 2, 6, 4, 2, 6, 13, rand, roofStairs); + fillWithRandomizedBlocks(world, box, 1, 5, 4, 1, 5, 13, rand, roofStairs); + + //Deco + int metaN = getDecoMeta(3); + int metaE = getDecoMeta(4); + + //Webs + randomlyFillWithBlocks(world, box, rand, 0.05F, 12, 3, 3, 12, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 10, 4, 3, 11, 4, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 5, 3, 2, 8, 3, 2, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 5, 3, 3, 9, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 2, 3, 5, 4, 3, 8, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.05F, 2, 3, 10, 7, 3, 12, Blocks.web); + //Doors + placeDoor(world, box, Blocks.wooden_door, 1, false, false, 11, 1, 2); + placeDoor(world, box, Blocks.wooden_door, 1, false, rand.nextBoolean(), 4, 1, 9); + placeDoor(world, box, Blocks.wooden_door, 2, false, rand.nextBoolean(), 8, 1, 11); + //Windows + randomlyFillWithBlocks(world, box, rand, 0.5F, 6, 2, 1, 7, 3, 1, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 13, 2, 5, 13, 2, 6, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 10, 2, 9, 11, 3, 9, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 2, 13, 5, 3, 13, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 1, 2, 11, 1, 2, 11, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 1, 2, 6, 1, 2, 7, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 6, 4, 5, 6, 4, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.5F, 4, 6, 13, 5, 6, 13, Blocks.glass_pane); + //Attic Access + placeBlockAtCurrentPosition(world, Blocks.trapdoor, getDecoModelMeta(4) >> 2, 6, 4, 10, box); + fillWithMetadataBlocks(world, box, 6, 2, 10, 6, 3, 10, Blocks.ladder, metaN); + //Furniture + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN | 4, 12, 1, 5, box); //tables + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 8, 12, 1, 6, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS | 4, 12, 1, 7, box); + fillWithMetadataBlocks(world, box, 9, 1, 4, 9, 1, 5, Blocks.dark_oak_stairs, stairE | 4); + fillWithMetadataBlocks(world, box, 8, 1, 4, 8, 1, 5, Blocks.wooden_slab, 13); + fillWithMetadataBlocks(world, box, 7, 1, 4, 7, 1, 5, Blocks.dark_oak_stairs, stairW | 4); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairS | 4, 8, 1, 2, box); //couch + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairW, 7, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairS, 6, 1, 2, box); + fillWithMetadataBlocks(world, box, 5, 1, 2, 5, 1, 3, Blocks.dark_oak_stairs, stairE); + placeBlockAtCurrentPosition(world, Blocks.dark_oak_stairs, stairN, 5, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 10, 1, 5, box); //chairs + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN, 8, 1, 6, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE, 9, 1, 8, box); //bookshelf + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 9, 2, 8, box); + fillWithBlocks(world, box, 8, 1, 8, 8, 2, 8, Blocks.bookshelf); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 7, 1, 8, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 7, 2, 8, box); + fillWithMetadataBlocks(world, box, 7, 3, 8, 9, 3, 8, Blocks.wooden_slab, 1); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 4, 1, 5, box); //kitchen + placeBlockAtCurrentPosition(world, rand.nextBoolean() ? ModBlocks.machine_electric_furnace_off : Blocks.furnace, metaN, 3, 1, 5, box); //idk why the meta is off between all these blocks and idc + fillWithBlocks(world, box, 2, 1, 5, 2, 1, 6, Blocks.double_stone_slab); + placeBlockAtCurrentPosition(world, Blocks.cauldron, 2, 2, 1, 7, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 2, 1, 8, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 4, 3, 5, box); + placeBlockAtCurrentPosition(world, Blocks.redstone_lamp, 0, 3, 3, 5, box); + placeBlockAtCurrentPosition(world, Blocks.double_stone_slab, 0, 2, 3, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_wall, metaN, 3, 3, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(2), 8, 2, 2, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 7, 2, 4, box); + + fillWithBlocks(world, box, 2, 1, 12, 3, 1, 12, Blocks.bookshelf); //bookshelf/desk + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE | 4, 4, 1, 12, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 8, 5, 1, 12, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW | 4, 6, 1, 12, box); + fillWithBlocks(world, box, 7, 1, 12, 7, 2, 12, Blocks.bookshelf); + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 5, 5, 1, 11, box); //seat + placeBed(world, box, 1, 3, 1, 10); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 4, 2, 12, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 5, 2, 12, box); + + fillWithMetadataBlocks(world, box, 4, 5, 5, 5, 5, 5, Blocks.dark_oak_stairs, stairS | 4); //seat and desk + placeBlockAtCurrentPosition(world, Blocks.wooden_slab, 1, 4, 5, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 7, 5, 7, box); //conserve crates + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 2, 5, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 3, 5, 11, box); + if(rand.nextBoolean()) + placeBlockAtCurrentPosition(world, ModBlocks.machine_diesel, metaE, 7, 5, 9, box); + placeBlockAtCurrentPosition(world, rand.nextBoolean() ? ModBlocks.crate_weapon : ModBlocks.crate, 0, 6, 5, 12, box); + + //inventories + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(2), 7, 1, 10, ItemPool.getPool(ItemPoolsComponent.POOL_OFFICE_TRASH), 4); + generateInvContents(world, box, rand, Blocks.chest, metaE, 7, 5, 5, ItemPool.getPool(ItemPoolsLegacy.POOL_GENERIC), 8); + //loot + placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 3, 2, 12, box); + LootGenerator.lootBookLore(world, getXWithOffset(3, 12), getYWithOffset(2), getZWithOffset(3, 12), HbmChestContents.generateLabBook(rand)); //TODO write more lore + placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 5, 6, 5, box); + LootGenerator.lootMakeshiftGun(world, getXWithOffset(5, 5), getYWithOffset(6), getZWithOffset(5, 5)); + placeRandomBobble(world, box, rand, 5, 5, 12); + + return true; + } + + //i don't like this class + public static class BrokenStairs extends BlockSelector { + //man. + public void setMetadata(int meta) { + this.selectedBlockMetaData = meta; + } + //mannnnnnnn. + @Override + public int getSelectedBlockMetaData() { + return this.field_151562_a instanceof BlockStairs ? this.selectedBlockMetaData : 0; + } + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + float chance = rand.nextFloat(); + + if(chance < 0.7) + this.field_151562_a = Blocks.oak_stairs; + else if(chance < 0.97) + this.field_151562_a = Blocks.wooden_slab; + else + this.field_151562_a = Blocks.air; + } + } + + //this fucking sucks. i am racist against the blockselector class + public static class BrokenBlocks extends BlockSelector { + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + float chance = rand.nextFloat(); + + if(chance < 0.6) { + this.field_151562_a = Blocks.planks; + this.selectedBlockMetaData = 0; + } else if(chance < 0.8) { + this.field_151562_a = Blocks.oak_stairs; + this.selectedBlockMetaData = rand.nextInt(4); + } else { + this.field_151562_a = Blocks.wooden_slab; + this.selectedBlockMetaData = 0; + } + } + } + } } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 8ffa1292e..0a652a6eb 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -11,7 +11,6 @@ import com.hbm.handler.MultiblockHandlerXR; import com.hbm.tileentity.machine.TileEntityLockableBase; import net.minecraft.block.Block; -import net.minecraft.block.BlockWeb; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; @@ -25,12 +24,7 @@ import net.minecraft.world.gen.structure.StructureComponent; import net.minecraftforge.common.util.ForgeDirection; abstract public class Component extends StructureComponent { - /** The size of the bounding box for this feature in the X axis */ - protected int sizeX; - /** The size of the bounding box for this feature in the Y axis */ - protected int sizeY; - /** The size of the bounding box for this feature in the Z axis */ - protected int sizeZ; + /** Average height (Presumably stands for height position) */ protected int hpos = -1; @@ -44,9 +38,6 @@ abstract public class Component extends StructureComponent { protected Component(Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ ) { super(0); - this.sizeX = maxX; - this.sizeY = maxY; - this.sizeZ = maxZ; this.coordBaseMode = rand.nextInt(4); switch(this.coordBaseMode) { @@ -70,17 +61,11 @@ abstract public class Component extends StructureComponent { /** Set to NBT */ protected void func_143012_a(NBTTagCompound nbt) { - nbt.setInteger("Width", this.sizeX); - nbt.setInteger("Height", this.sizeY); - nbt.setInteger("Depth", this.sizeZ); nbt.setInteger("HPos", this.hpos); } /** Get from NBT */ protected void func_143011_b(NBTTagCompound nbt) { - this.sizeX = nbt.getInteger("Width"); - this.sizeY = nbt.getInteger("Height"); - this.sizeZ = nbt.getInteger("Depth"); this.hpos = nbt.getInteger("HPos"); } @@ -147,7 +132,7 @@ abstract public class Component extends StructureComponent { /** * Gets metadata for rotatable DecoBlock * honestly i don't remember how i did this and i'm scared to optimize it because i fail to see any reasonable patterns like the pillar - * seriously, 3 fucking bits for 4 orientations when you can do it easily with 2? + * should work for hoppers, just flip dir for N/S and W/E * @param metadata (2 for facing South, 3 for facing North, 4 for facing East, 5 for facing West */ protected int getDecoMeta(int metadata) { @@ -210,10 +195,15 @@ abstract public class Component extends StructureComponent { metadata = metadata ^ 3; break; } - + //genuinely like. why did i do that return metadata << 2; //To accommodate for BlockDecoModel's shift in the rotation bits; otherwise, simply bit-shift right and or any non-rotation meta after } + //works for crts, toasters, and anything that follows mc's cardinal dirs. S: 0, W: 1, N: 2, E: 3 + protected int getCRTMeta(int meta) { + return (meta + this.coordBaseMode) % 4; + } + /** * Gets orientation-adjusted meta for stairs. * 0 = West, 1 = East, 2 = North, 3 = South @@ -377,6 +367,7 @@ abstract public class Component extends StructureComponent { return generateInvContents(world, box, rand, block, 0, featureX, featureY, featureZ, content, amount); } + //TODO: explore min / max item generations: e.g., between 3 and 5 separate items are generated protected boolean generateInvContents(World world, StructureBoundingBox box, Random rand, Block block, int meta, int featureX, int featureY, int featureZ, WeightedRandomChestContent[] content, int amount) { int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); @@ -520,47 +511,11 @@ abstract public class Component extends StructureComponent { } } - /** Fills an area with cobwebs. Cobwebs will concentrate on corners and surfaces without floating cobwebs. */ - protected void fillWithCobwebs(World world, StructureBoundingBox box, Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ) { - - if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) - return; - - for(int x = minX; x <= maxX; x++) { - - for(int z = minZ; z <= maxZ; z++) { - int posX = getXWithOffset(x, z); - int posZ = getZWithOffset(x, z); - - if(posX >= box.minX && posX <= box.maxX && posZ >= box.minZ && posZ <= box.maxZ) { - for(int y = minY; y <= maxY; y++) { - int posY = getYWithOffset(y); - Block genTarget = world.getBlock(posX, posY, posZ); - - if(!genTarget.isAir(world, posX, posY, posZ)) - continue; - - int validNeighbors = 0; - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - Block neighbor = world.getBlock(posX + dir.offsetX, posY + dir.offsetY, posZ + dir.offsetZ); - - if(neighbor.getMaterial().blocksMovement() || neighbor instanceof BlockWeb) - validNeighbors++; - } - - if(validNeighbors > 5 || (validNeighbors > 1 && rand.nextInt(6 - validNeighbors) == 0)) - world.setBlock(posX, posY, posZ, Blocks.web); - } - } - } - } - } - /** getXWithOffset & getZWithOffset Methods that are actually fixed **/ //Turns out, this entire time every single minecraft structure is mirrored instead of rotated when facing East and North //Also turns out, it's a scarily easy fix that they somehow didn't see *entirely* @Override - protected int getXWithOffset(int x, int z) { + public int getXWithOffset(int x, int z) { switch(this.coordBaseMode) { case 0: return this.boundingBox.minX + x; @@ -576,7 +531,7 @@ abstract public class Component extends StructureComponent { } @Override - protected int getZWithOffset(int x, int z) { + public int getZWithOffset(int x, int z) { switch(this.coordBaseMode) { case 0: return this.boundingBox.minZ + z; @@ -597,7 +552,7 @@ abstract public class Component extends StructureComponent { if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) return; - for(int x = minX; x <= maxX; x++) { + for(int x = minX; x <= maxX; x++) { //TODO these could technically be optimized a bit more. probably won't do anything but worth for(int z = minZ; z <= maxZ; z++) { int posX = getXWithOffset(x, z); @@ -739,7 +694,7 @@ abstract public class Component extends StructureComponent { } } } - + //TODO replace the shitty block selector with something else. probably a lambda that returns a metablock for convenience protected void fillWithRandomizedBlocks(World world, StructureBoundingBox box, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, Random rand, BlockSelector selector) { //so i don't have to replace shit if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) @@ -838,6 +793,29 @@ abstract public class Component extends StructureComponent { } } + protected void randomlyFillWithBlocks(World world, StructureBoundingBox box, Random rand, float randLimit, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, Block block, int meta) { + + if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) + return; + + for(int x = minX; x <= maxX; x++) { + + for(int z = minZ; z <= maxZ; z++) { + int posX = getXWithOffset(x, z); + int posZ = getZWithOffset(x, z); + + if(posX >= box.minX && posX <= box.maxX && posZ >= box.minZ && posZ <= box.maxZ) { + for(int y = minY; y <= maxY; y++) { + int posY = getYWithOffset(y); + + if(rand.nextFloat() <= randLimit) + world.setBlock(posX, posY, posZ, block, meta, 2); + } + } + } + } + } + protected ForgeDirection getDirection(ForgeDirection dir) { switch(coordBaseMode) { default: //South @@ -851,17 +829,35 @@ abstract public class Component extends StructureComponent { } } + /** Sets the core block for a BlockDummyable multiblock. WARNING: Does not take {@link com.hbm.blocks.BlockDummyable#getDirModified(ForgeDirection)} or {@link com.hbm.blocks.BlockDummyable#getMetaForCore(World, int, int, int, EntityPlayer, int)} + * into account yet! This will be changed as it comes up!
+ * For BlockDummyables, 'dir' always faces the player, being the opposite of the player's direction. This is already taken into account. */ + protected void placeCore(World world, StructureBoundingBox box, Block block, ForgeDirection dir, int x, int y, int z) { + int posX = getXWithOffset(x, z); + int posZ = getZWithOffset(x, z); + int posY = getYWithOffset(y); + + if(!box.isVecInside(posX, posY, posZ)) return; + + if(dir == null) + dir = ForgeDirection.NORTH; + + dir = getDirection(dir.getOpposite()); + world.setBlock(posX, posY, posZ, block, dir.ordinal() + BlockDummyable.offset, 2); + } + //always set the core block first - /** StructureComponent-friendly method for {@link com.hbm.handler.MultiblockHandlerXR#fillSpace(World, int, int, int, int[], Block, ForgeDirection)}. Prevents runoff outside of the provided bounding box. */ + /** StructureComponent-friendly method for {@link com.hbm.handler.MultiblockHandlerXR#fillSpace(World, int, int, int, int[], Block, ForgeDirection)}. Prevents runoff outside of the provided bounding box.
+ * For BlockDummyables, 'dir' always faces the player, being the opposite of the player's direction. This is already taken into account. */ protected void fillSpace(World world, StructureBoundingBox box, int x, int y, int z, int[] dim, Block block, ForgeDirection dir) { if(getYWithOffset(y - dim[1]) < box.minY || getYWithOffset(y + dim[0]) > box.maxY) //the BlockDummyable will be fucked regardless if it goes beyond either limit return; if(dir == null) - dir = ForgeDirection.SOUTH; + dir = ForgeDirection.NORTH; - dir = getDirection(dir); + dir = getDirection(dir.getOpposite()); int count = 0; diff --git a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index e4a96eabb..353b2a06e 100644 --- a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -3,8 +3,12 @@ package com.hbm.world.gen.component; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; import com.hbm.lib.HbmChestContents; import com.hbm.util.LootGenerator; + import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -29,8 +33,8 @@ public class OfficeFeatures { super(); } - public LargeOffice(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 14, 5, 12); + public LargeOffice(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 14, 5, 12); this.hasPlacedLoot[0] = false; this.hasPlacedLoot[1] = false; } @@ -59,60 +63,60 @@ public class OfficeFeatures { this.boundingBox.offset(0, -1, 0); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, sizeX, 1, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 2, sizeX, 7, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 8, 8, sizeZ, 0, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 9, 8, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, 14, 1, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 2, 14, 7, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 8, 8, 12, 0, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 9, 8, 14, 12, -1, box); fillWithAir(world, box, 1, 1, 3, 4, 3, 6); - fillWithAir(world, box, 6, 1, 1, sizeX - 1, 3, 6); - fillWithAir(world, box, 10, 1, 7, sizeX - 1, 3, sizeZ - 1); + fillWithAir(world, box, 6, 1, 1, 14 - 1, 3, 6); + fillWithAir(world, box, 10, 1, 7, 14 - 1, 3, 12 - 1); //Pillars //Back fillWithBlocks(world, box, 0, 0, 2, 0, 4, 2, ModBlocks.concrete_pillar); fillWithBlocks(world, box, 5, 0, 0, 5, 4, 0, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, sizeX, 0, 0, sizeX, 4, 0, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 14, 0, 0, 14, 4, 0, ModBlocks.concrete_pillar); //Front fillWithBlocks(world, box, 0, 0, 7, 0, 3, 7, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 0, 0, sizeZ, 0, 3, sizeZ, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 3, 0, sizeZ, 3, 3, sizeZ, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 6, 0, sizeZ, 6, 3, sizeZ, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, 9, 0, sizeZ, 9, 3, sizeZ, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 0, 0, 12, 0, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 3, 0, 12, 3, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 6, 0, 12, 6, 3, 12, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 9, 0, 12, 9, 3, 12, ModBlocks.concrete_pillar); fillWithBlocks(world, box, 9, 0, 7, 9, 3, 7, ModBlocks.concrete_pillar); - fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 4, sizeZ, ModBlocks.concrete_pillar); + fillWithBlocks(world, box, 14, 0, 12, 14, 4, 12, ModBlocks.concrete_pillar); //Walls //Back fillWithRandomizedBlocks(world, box, 1, 0, 2, 5, 4, 2, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 5, 0, 1, 5, 4, 1, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 6, 0, 0, sizeX - 1, 1, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, 0, 0, 14 - 1, 1, 0, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 6, 2, 0, 6, 2, 0, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 9, 2, 0, 10, 2, 0, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX - 1, 2, 0, sizeX - 1, 2, 0, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 6, 3, 0, sizeX - 1, 4, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14 - 1, 2, 0, 14 - 1, 2, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, 3, 0, 14 - 1, 4, 0, rand, ConcreteBricks); //Right - fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 1, sizeZ - 1, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 2, 1, sizeX, 2, 2, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 2, 5, sizeX, 2, 7, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 2, sizeZ - 2, sizeX, 2, sizeZ - 1, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX, 3, 1, sizeX, 4, sizeZ - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 0, 1, 14, 1, 12 - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 2, 1, 14, 2, 2, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 2, 5, 14, 2, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 2, 12 - 2, 14, 2, 12 - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 3, 1, 14, 4, 12 - 1, rand, ConcreteBricks); //Front - fillWithRandomizedBlocks(world, box, 0, 4, sizeZ, sizeX - 1, 4, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 0, sizeZ, sizeX - 1, 1, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 2, sizeZ, 10, 2, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, sizeX - 1, 2, sizeZ, sizeX - 1, 2, sizeZ, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 10, 3, sizeZ, sizeX - 1, 3, sizeZ, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 4, 12, 14 - 1, 4, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 0, 12, 14 - 1, 1, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 2, 12, 10, 2, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14 - 1, 2, 12, 14 - 1, 2, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 3, 12, 14 - 1, 3, 12, rand, ConcreteBricks); - fillWithRandomizedBlocks(world, box, 9, 0, 8, 9, 3, sizeZ - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 9, 0, 8, 9, 3, 12 - 1, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 0, 7, 8, 0, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 1, 7, 1, 2, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 4, 1, 7, 8, 3, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 3, 7, 3, 3, 7, rand, ConcreteBricks); //Left - fillWithRandomizedBlocks(world, box, 0, 4, 3, 0, 4, sizeZ - 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 4, 3, 0, 4, 12 - 1, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 0, 0, 3, 0, 1, 6, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 0, 2, 3, 0, 3, 3, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 0, 2, 6, 0, 3, 6, rand, ConcreteBricks); @@ -121,21 +125,21 @@ public class OfficeFeatures { fillWithRandomizedBlocks(world, box, 5, 3, 6, 5, 3, 6, rand, ConcreteBricks); //Trim - randomlyFillWithBlocks(world, box, rand, 0.85F, 0, sizeY, 2, 5, sizeY, 2, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 5, sizeY, 1, 5, sizeY, 1, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 5, sizeY, 0, sizeX, sizeY, 0, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, sizeX, sizeY, 1, sizeX, sizeY, sizeZ, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 0, sizeY, sizeZ, sizeX - 1, sizeY, sizeZ, Blocks.stone_slab); - randomlyFillWithBlocks(world, box, rand, 0.85F, 0, sizeY, 3, 0, sizeY, sizeZ - 1, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 0, 5, 2, 5, 5, 2, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 5, 5, 1, 5, 5, 1, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 5, 5, 0, 14, 5, 0, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 14, 5, 1, 14, 5, 12, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 0, 5, 12, 14 - 1, 5, 12, Blocks.stone_slab); + randomlyFillWithBlocks(world, box, rand, 0.85F, 0, 5, 3, 0, 5, 12 - 1, Blocks.stone_slab); //Floor fillWithMetadataBlocks(world, box, 1, 0, 3, 4, 0, 6, Blocks.wool, 13); //Green Wool fillWithBlocks(world, box, 5, 0, 3, 5, 0, 6, ModBlocks.brick_light); - fillWithBlocks(world, box, 6, 0, 1, sizeX - 1, 0, 6, ModBlocks.brick_light); - fillWithBlocks(world, box, 10, 0, 7, sizeX - 1, 0, sizeZ - 1, ModBlocks.brick_light); + fillWithBlocks(world, box, 6, 0, 1, 14 - 1, 0, 6, ModBlocks.brick_light); + fillWithBlocks(world, box, 10, 0, 7, 14 - 1, 0, 12 - 1, ModBlocks.brick_light); //Ceiling - fillWithBlocks(world, box, 6, 4, 1, sizeX - 1, 4, 2, ModBlocks.brick_light); - fillWithBlocks(world, box, 1, 4, 3, sizeX - 1, 4, sizeZ - 1, ModBlocks.brick_light); + fillWithBlocks(world, box, 6, 4, 1, 14 - 1, 4, 2, ModBlocks.brick_light); + fillWithBlocks(world, box, 1, 4, 3, 14 - 1, 4, 12 - 1, ModBlocks.brick_light); //Decorations //Carpet @@ -143,10 +147,10 @@ public class OfficeFeatures { //Windows randomlyFillWithBlocks(world, box, rand, 0.75F, 0, 2, 4, 0, 3, 5, Blocks.glass_pane); randomlyFillWithBlocks(world, box, rand, 0.75F, 7, 2, 0, 8, 2, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX - 3, 2, 0, sizeX - 2, 2, 0, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX, 2, 3, sizeX, 2, 4, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX, 2, 8, sizeX, 2, 9, Blocks.glass_pane); - randomlyFillWithBlocks(world, box, rand, 0.75F, sizeX - 3, 2, sizeZ, sizeX - 2, 2, sizeZ, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14 - 3, 2, 0, 14 - 2, 2, 0, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14, 2, 3, 14, 2, 4, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14, 2, 8, 14, 2, 9, Blocks.glass_pane); + randomlyFillWithBlocks(world, box, rand, 0.75F, 14 - 3, 2, 12, 14 - 2, 2, 12, Blocks.glass_pane); //Fuwnituwe >w< int stairMetaE = getStairMeta(1); //East int stairMetaN = getStairMeta(2); //*SHOULD* be north @@ -170,35 +174,35 @@ public class OfficeFeatures { placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 4, box); //Desk 3 :3 placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaEU, 10, 1, 1, box); - fillWithMetadataBlocks(world, box, 11, 1, 1, sizeX - 1, 1, 1, Blocks.spruce_stairs, stairMetaSU); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, sizeX - 1, 1, 2, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, sizeX - 1, 1, 3, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, sizeX - 1, 1, 4, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, sizeX - 1, 1, 5, box); + fillWithMetadataBlocks(world, box, 11, 1, 1, 14 - 1, 1, 1, Blocks.spruce_stairs, stairMetaSU); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, 14 - 1, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, 14 - 1, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, 14 - 1, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, 14 - 1, 1, 5, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 11, 1, 2, box); //Chaiw ;3 - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, sizeX - 2, 1, 4, box); //Chaiw :333 - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), sizeX - 3, 2, 1, box); //South-facing Computer :3 - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), sizeX - 1, 2, 5, box); //West-facing Computer ^w^ - placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, sizeX - 1, 2, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(5), sizeX - 1, 2, 2, box); //Wadio + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 14 - 2, 1, 4, box); //Chaiw :333 + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 14 - 3, 2, 1, box); //South-facing Computer :3 + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), 14 - 1, 2, 5, box); //West-facing Computer ^w^ + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 14 - 1, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(5), 14 - 1, 2, 2, box); //Wadio //Desk 4 DX placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaEU, 10, 1, 8, box); placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, 11, 1, 8, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 10, 1, 9, box); //Chaiw ;3 placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 10, 2, 8, box); //South-facing Computer :33 //Desk 5 :333 - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, sizeX - 1, 1, sizeZ - 3, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, sizeX - 1, 1, sizeZ - 2, box); - placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, sizeX - 1, 1, sizeZ - 1, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, sizeX - 3, 1, sizeZ - 1, box); //UwU... Chaiw!!!! :333 I wove chaiws XD :333 OwO what's this?? chaiw???? :333333333333333333 - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), sizeX - 1, 2, sizeZ - 1, box); //West-facing Computer >w< + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaSU, 14 - 1, 1, 12 - 3, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaWU, 14 - 1, 1, 12 - 2, box); + placeBlockAtCurrentPosition(world, Blocks.spruce_stairs, stairMetaNU, 14 - 1, 1, 12 - 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 14 - 3, 1, 12 - 1, box); //UwU... Chaiw!!!! :333 I wove chaiws XD :333 OwO what's this?? chaiw???? :333333333333333333 + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), 14 - 1, 2, 12 - 1, box); //West-facing Computer >w< //Cobwebs pwobabwy //Maybe make a method for this eventually? //Something where the tops of ceilings + empty corners along walls get most cobwebs, //with no cobwebs hanging midair + it not being performance intensive randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 3, 3, 4, 3, 6, Blocks.web); - randomlyFillWithBlocks(world, box, rand, 0.25F, 6, 3, 1, sizeX - 1, 3, 6, Blocks.web); - randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, sizeX - 1, 3, sizeZ - 1, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.25F, 6, 3, 1, 14 - 1, 3, 6, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, 14 - 1, 3, 12 - 1, Blocks.web); //Doors placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 2, 1, 7); placeDoor(world, box, ModBlocks.door_office, 3, true, rand.nextBoolean(), 3, 1, 7); @@ -206,9 +210,9 @@ public class OfficeFeatures { //Woot if(!this.hasPlacedLoot[0]) - this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), sizeX - 4, 1, sizeZ - 1, HbmChestContents.officeTrash, 8); + this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 14 - 4, 1, 12 - 1, ItemPool.getPool(ItemPoolsComponent.POOL_OFFICE_TRASH), 8); if(!this.hasPlacedLoot[1]) { - this.hasPlacedLoot[1] = generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(3), 6, 1, 1, HbmChestContents.machineParts, 10, 0.5D); + this.hasPlacedLoot[1] = generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(3), 6, 1, 1, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 10, 0.5D); if(rand.nextInt(2) == 0) generateLoreBook(world, box, 6, 1, 1, 7, HbmChestContents.generateOfficeBook(rand)); } @@ -230,8 +234,8 @@ public class OfficeFeatures { super(); } - public LargeOfficeCorner(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 11, 15, 14); + public LargeOfficeCorner(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 11, 15, 14); } @Override @@ -525,27 +529,26 @@ public class OfficeFeatures { placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 5, 13, 9, box); placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 7, 13, 11, box); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(3), 9, 1, 7, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(1), 7, 5, 4, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(1), 7, 6, 4, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(2), 10, 5, 7, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 10, 5, 12, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 10, 6, 12, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 5, HbmChestContents.filingCabinet, 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(3), 9, 1, 7, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(1), 7, 5, 4, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(1), 7, 6, 4, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(2), 10, 5, 7, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 10, 5, 12, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 10, 6, 12, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 5, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); - generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(2), 1, 9, 13, HbmChestContents.officeTrash, 10, 1.0D); + generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(2), 1, 9, 13, ItemPool.getPool(ItemPoolsComponent.POOL_OFFICE_TRASH), 10, 1.0D); if(rand.nextInt(2) == 0) generateLoreBook(world, box, 1, 9, 13, 7, HbmChestContents.generateOfficeBook(rand)); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 13, HbmChestContents.filingCabinet, 4); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 9, 13, HbmChestContents.filingCabinet, 4); - generateLockableContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 10, 13, HbmChestContents.expensive, 8, 0.1D); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 13, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 9, 13, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateLockableContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 10, 13, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), 8, 0.1D); placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 6, 13, 11, box); LootGenerator.lootCapStash(world, this.getXWithOffset(6, 11), this.getYWithOffset(13), this.getZWithOffset(6, 11)); placeBlockAtCurrentPosition(world, ModBlocks.deco_loot, 0, 1, 10, 11, box); LootGenerator.lootMedicine(world, this.getXWithOffset(1, 11), this.getYWithOffset(10), this.getZWithOffset(1, 11)); - //this hurt my soul return true; diff --git a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java index b5f5d141d..9204e7b0e 100644 --- a/src/main/java/com/hbm/world/gen/component/RuinFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java @@ -26,8 +26,8 @@ public class RuinFeatures { super(); } - public NTMRuin1(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 8, 6, 10); + public NTMRuin1(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 8, 6, 10); } @Override @@ -39,52 +39,52 @@ public class RuinFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 8, 10, -1, box); int pillarMetaWE = this.getPillarMeta(4); int pillarMetaNS = this.getPillarMeta(8); - this.fillWithBlocks(world, box, 0, 0, 0, 0, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall + this.fillWithBlocks(world, box, 0, 0, 0, 0, 6, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall this.fillWithMetadataBlocks(world, box, 1, 3, 0, 3, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, 4, 0, 0, 4, sizeY - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 5, 3, 0, sizeX - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, sizeY - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 4, 0, 0, 4, 6 - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 5, 3, 0, 8 - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 8, 0, 0, 8, 6 - 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 3, 0, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 0, 0, sizeX - 1, 0, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 0, 0, 8 - 1, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 1, 0, 1, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 3, 1, 0, 3, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 1, 0, 5, 2, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX - 1, 2, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 1, 0, 8 - 1, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 4, 0, 3, 4, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 4, 0, sizeX - 1, 4, 0, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, 0, 3, 1, 0, 3, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall - this.fillWithBlocks(world, box, 0, 0, sizeZ, 0, sizeY - 1, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 4, 0, 8 - 1, 4, 0, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 0, 3, 1, 0, 3, 10 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall + this.fillWithBlocks(world, box, 0, 0, 10, 0, 6 - 1, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 10 - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 2, 2, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 4, 0, 2, 6, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 1, sizeZ - 2, 0, 2, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 1, 10 - 2, 0, 2, 10 - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 4, 1, 0, 4, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 5, 1, 0, 5, 2, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 4, sizeZ - 2, 0, 4, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, 1, 3, sizeZ, 3, 3, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.fillWithBlocks(world, box, 4, 0, sizeZ, 4, sizeY - 2, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, 5, 3, sizeZ, sizeX - 1, 3, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, sizeY - 2, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 3, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 1, sizeZ, 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 3, 1, sizeZ, 3, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 1, sizeZ, 5, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, sizeZ, sizeX - 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, sizeX, 3, 1, sizeX, 3, 2, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithMetadataBlocks(world, box, sizeX, 3, sizeZ - 1, sizeX, 3, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 0, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 1, sizeX, 2, 2, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 6, sizeX, 0, 6, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, sizeZ - 2, sizeX, 1, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 2, sizeZ - 1, sizeX, 2, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 4, 10 - 2, 0, 4, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 1, 3, 10, 3, 3, 10, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.fillWithBlocks(world, box, 4, 0, 10, 4, 6 - 2, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 5, 3, 10, 8 - 1, 3, 10, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 8, 0, 10, 8, 6 - 2, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 10, 3, 0, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 0, 10, 8 - 1, 0, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 1, 10, 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 3, 1, 10, 3, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 1, 10, 5, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 1, 10, 8 - 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 8, 3, 1, 8, 3, 2, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithMetadataBlocks(world, box, 8, 3, 10 - 1, 8, 3, 10 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 8, 0, 1, 8, 0, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 1, 1, 8, 2, 2, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 6, 8, 0, 6, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 10 - 2, 8, 1, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 2, 10 - 1, 8, 2, 10 - 1, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); return true; } @@ -98,8 +98,8 @@ public class RuinFeatures { super(); } - public NTMRuin2(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 7, 5, 10); + public NTMRuin2(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 7, 5, 10); } @Override @@ -111,43 +111,43 @@ public class RuinFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 7, 10, -1, box); int pillarMetaWE = this.getPillarMeta(4); int pillarMetaNS = this.getPillarMeta(8); this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall - this.fillWithMetadataBlocks(world, box, 1, 3, 0, sizeX - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, 0, sizeX - 1, 0, 0, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 1, 3, 0, 7 - 1, 3, 0, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); + this.fillWithBlocks(world, box, 7, 0, 0, 7, 5, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 7 - 1, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 1, 0, 1, 2, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 3, 1, 0, 4, 2, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX - 1, 2, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 3, 4, 0, sizeX - 1, 4, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, sizeY, 0, sizeX - 1, sizeY, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7 - 1, 1, 0, 7 - 1, 2, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 3, 4, 0, 7 - 1, 4, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7 - 1, 5, 0, 7 - 1, 5, 0, false, rand, RandomConcreteBricks); this.fillWithMetadataBlocks(world, box, 0, 3, 1, 0, 3, 4, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Left Wall this.fillWithBlocks(world, box, 0, 0, 5, 0, 0, 5, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithBlocks(world, box, 0, 0, sizeZ, 0, 2, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 0, 0, 10, 0, 2, 10, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 2, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 0, sizeZ - 3, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 1, sizeZ - 1, 0, 1, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, sizeX - 1, 3, sizeZ, sizeX - 1, 3, sizeZ, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 3, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 1, sizeZ, 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, sizeZ, sizeX - 1, 2, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithMetadataBlocks(world, box, sizeX, 3, 1, sizeX, 3, 4, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall - this.fillWithBlocks(world, box, sizeX, 0, 5, sizeX, 4, 5, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithMetadataBlocks(world, box, sizeX, 3, sizeZ - 2, sizeX, 3, sizeZ - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 0, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 1, sizeX, 2, 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 3, sizeX, 2, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 4, sizeX, 1, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 6, sizeX, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 6, sizeX, 1, 7, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, sizeZ - 1, sizeX, 2, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 0, 10 - 3, 0, 0, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 1, 10 - 1, 0, 1, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 7 - 1, 3, 10, 7 - 1, 3, 10, ModBlocks.concrete_pillar, pillarMetaWE, Blocks.air, 0, false); //Front Wall + this.fillWithBlocks(world, box, 7, 0, 10, 7, 3, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 10, 7 - 1, 0, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 1, 10, 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7 - 1, 1, 10, 7 - 1, 2, 10, false, rand, RandomConcreteBricks); + this.fillWithMetadataBlocks(world, box, 7, 3, 1, 7, 3, 4, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); //Right Wall + this.fillWithBlocks(world, box, 7, 0, 5, 7, 4, 5, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithMetadataBlocks(world, box, 7, 3, 10 - 2, 7, 3, 10 - 1, ModBlocks.concrete_pillar, pillarMetaNS, Blocks.air, 0, false); + this.fillWithRandomizedBlocks(world, box, 7, 0, 1, 7, 0, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 1, 7, 2, 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 3, 7, 2, 3, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 4, 7, 1, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 0, 6, 7, 0, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 6, 7, 1, 7, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 7, 1, 10 - 1, 7, 2, 10 - 1, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.25F, 1, 0, 1, 7 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); return true; } @@ -161,8 +161,8 @@ public class RuinFeatures { super(); } - public NTMRuin3(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 8, 3, 10); + public NTMRuin3(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 8, 3, 10); } @Override @@ -174,37 +174,37 @@ public class RuinFeatures { } //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, sizeX, 0, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, 10, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 8, 0, 8, 10, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, sizeX, 0, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 4, sizeX, 4, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 8, 0, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 4, 8, 4, -1, box); - this.fillWithBlocks(world, box, 0, 0, 0, 0, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall - this.fillWithBlocks(world, box, sizeX, 0, 0, sizeX, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, 1, 0, 0, sizeX - 1, 0, 0, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 0, 0, 0, 0, 3, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall + this.fillWithBlocks(world, box, 8, 0, 0, 8, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 8 - 1, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 1, 1, 0, 1, 1, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 4, 1, 0, 4, 1, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 0, sizeX - 1, 1, 0, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 1, 2, 0, sizeX - 2, 2, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 1, 0, 8 - 1, 1, 0, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 1, 2, 0, 8 - 2, 2, 0, false, rand, RandomConcreteBricks); this.fillWithBlocks(world, box, 0, 0, 4, 0, 1, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Left Wall - this.placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 0, 0, sizeZ, box); + this.placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 0, 0, 10, box); this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 0, 5, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 0, 5, 0, 0, 10 - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 5, 0, 1, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 7, 0, 1, 7, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, sizeX, 0, 4, sizeX, 1, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 1, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 1, sizeX, 1, 3, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 5, sizeX, 0, 6, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 0, sizeZ - 1, sizeX, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 8, 0, 4, 8, 1, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall + this.fillWithBlocks(world, box, 8, 0, 10, 8, 1, 10, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithRandomizedBlocks(world, box, 8, 0, 1, 8, 1, 3, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 5, 8, 0, 6, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8, 0, 10 - 1, 8, 0, 10 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 8 - 1, 0, 10, 8 - 1, 0, 10, false, rand, RandomConcreteBricks); this.fillWithBlocks(world, box, 4, 0, 4, 4, 2, 4, ModBlocks.concrete_pillar, Blocks.air, false); //Center Wall this.fillWithRandomizedBlocks(world, box, 3, 0, 4, 3, 1, 4, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 5, 0, 4, sizeX - 1, 1, 4, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 5, 0, 4, 8 - 1, 1, 4, false, rand, RandomConcreteBricks); - this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, sizeX - 1, 0, 3, Blocks.gravel, Blocks.air, false); - this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 5, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 8 - 1, 0, 3, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 5, 8 - 1, 0, 10 - 1, Blocks.gravel, Blocks.air, false); return true; } @@ -218,8 +218,8 @@ public class RuinFeatures { super(); } - public NTMRuin4(Random rand, int minX, int minY, int minZ) { - super(rand, minX, minY, minZ, 10, 2, 11); + public NTMRuin4(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 10, 2, 11); } @Override @@ -232,40 +232,40 @@ public class RuinFeatures { //System.out.println("" + this.boundingBox.minX + ", " + this.boundingBox.minY + ", " + this.boundingBox.minZ); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, sizeZ, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, sizeX, 5, sizeX, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 0, 0, 0, 11, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 10, 5, 10, 11, -1, box); placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 0, 5, 4, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, sizeZ, sizeX - 1, sizeZ, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 11, 10 - 1, 11, -1, box); placeFoundationUnderneath(world, Blocks.stonebrick, 0, 1, 0, 4, 0, -1, box); - placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 5, sizeX - 1, 5, -1, box); + placeFoundationUnderneath(world, Blocks.stonebrick, 0, 5, 5, 10 - 1, 5, -1, box); this.fillWithBlocks(world, box, 0, 0, 0, 0, 1, 0, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 1 - this.fillWithBlocks(world, box, 5, 0, 0, 5, sizeY, 0, ModBlocks.concrete_pillar, Blocks.air, false); + this.fillWithBlocks(world, box, 5, 0, 0, 5, 2, 0, ModBlocks.concrete_pillar, Blocks.air, false); this.fillWithRandomizedBlocks(world, box, 1, 0, 0, 4, 0, 0, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 4, 1, 0, 4, 1, 0, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, 5, 0, 5, 5, sizeY, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 1 + this.fillWithBlocks(world, box, 5, 0, 5, 5, 2, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 1 this.fillWithRandomizedBlocks(world, box, 5, 0, 1, 5, 0, 4, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 1, 1, 5, 1, 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 1, 4, 5, 1, 4, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 5, 2, 1, 5, 2, 4, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, sizeX, 0, 5, sizeX, 1, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 2 - this.fillWithRandomizedBlocks(world, box, 6, 0, 5, sizeX - 1, 0, 5, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 10, 0, 5, 10, 1, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 2 + this.fillWithRandomizedBlocks(world, box, 6, 0, 5, 10 - 1, 0, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 6, 1, 5, 6, 1, 5, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 1, 5, sizeX - 1, 1, 5, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, sizeX, 0, sizeZ, sizeX, 1, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 2 - this.fillWithRandomizedBlocks(world, box, sizeX, 0, 6, sizeX, 0, sizeZ - 1, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX, 1, 6, sizeX, 1, sizeZ - 3, false, rand, RandomConcreteBricks); - this.fillWithBlocks(world, box, 0, 0, sizeZ, 0, 0, sizeZ, ModBlocks.concrete_pillar, Blocks.air, false); //Front Wall - this.fillWithRandomizedBlocks(world, box, 1, 0, sizeZ, 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 6, 0, sizeZ, 7, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, sizeX - 1, 0, sizeZ, sizeX - 1, 0, sizeZ, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, sizeZ - 1, false, rand, RandomConcreteBricks); //Left Wall + this.fillWithRandomizedBlocks(world, box, 10 - 1, 1, 5, 10 - 1, 1, 5, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 10, 0, 11, 10, 1, 11, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 2 + this.fillWithRandomizedBlocks(world, box, 10, 0, 6, 10, 0, 11 - 1, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 10, 1, 6, 10, 1, 11 - 3, false, rand, RandomConcreteBricks); + this.fillWithBlocks(world, box, 0, 0, 11, 0, 0, 11, ModBlocks.concrete_pillar, Blocks.air, false); //Front Wall + this.fillWithRandomizedBlocks(world, box, 1, 0, 11, 1, 0, 11, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 6, 0, 11, 7, 0, 11, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 10 - 1, 0, 11, 10 - 1, 0, 11, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 0, 11 - 1, false, rand, RandomConcreteBricks); //Left Wall this.fillWithRandomizedBlocks(world, box, 0, 1, 1, 0, 1, 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 0, 1, 4, 0, 1, 7, false, rand, RandomConcreteBricks); this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 1, 4, 0, 5, Blocks.gravel, Blocks.air, false); - this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 6, sizeX - 1, 0, sizeZ - 1, Blocks.gravel, Blocks.air, false); + this.randomlyFillWithBlocks(world, box, rand, 0.05F, 1, 0, 6, 10 - 1, 0, 11 - 1, Blocks.gravel, Blocks.air, false); return true; } diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java new file mode 100644 index 000000000..bfee7327c --- /dev/null +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -0,0 +1,1394 @@ +package com.hbm.world.gen.component; + +import java.util.Random; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsComponent; +import com.hbm.itempool.ItemPoolsLegacy; +import com.hbm.itempool.ItemPoolsSingle; +import com.hbm.items.ModItems; +import com.hbm.tileentity.bomb.TileEntityLandmine; +import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted; +import com.hbm.tileentity.network.TileEntityRadioTorchBase; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraft.world.World; +import net.minecraft.world.gen.structure.StructureBoundingBox; +import net.minecraftforge.common.util.ForgeDirection; + +public class SiloComponent extends Component { + + public int freq = 0; //frequency of RTTY torches, this is the easiest way to sync them up. + public int freqHatch = 0; + + public SiloComponent() { + + } + + public SiloComponent(Random rand, int minX, int minZ) { + super(rand, minX, 64, minZ, 42, 29, 26); + this.freq = rand.nextInt(); //so other silos won't conflict, hopefully + this.freqHatch = rand.nextInt(); + } + + /** Set to NBT */ + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setInteger("freq", freq); + nbt.setInteger("freqHatch", freqHatch); + } + + /** Get from NBT */ + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + this.freq = nbt.getInteger("freq"); + this.freqHatch = nbt.getInteger("freqHatch"); + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + //seems to work + if(this.hpos == -1) { + StructureBoundingBox area = getRotatedBoundingBox(getXWithOffset(13, 2), getYWithOffset(25), getZWithOffset(13, 2), 29, 3, 18); //anchor offset/world pos already accounted for with offset methods + this.hpos = this.getAverageHeight(world, area, box, getYWithOffset(25)); + this.boundingBox.offset(0, this.hpos - 1 - getYWithOffset(25), 0); + } + + /*if(!this.setAverageHeight(world, box, this.boundingBox.minY)) { + return false; + }*/ + + //alright kids, we're adding the largest single-component mapgen structure in ntm, 2x3 chunks. what do? + //you break it into sections instead of doing the whole thing at once. adding it that is, the server won't die + //from checking a lot of small switches and if statements in some for loops i hope... + + /* SURFACE */ + fillWithAir(world, box, 13, 26, 2, 42, 36, 20); + + placeFoundationUnderneath(world, ModBlocks.concrete_colored_ext, 0, 13, 2, 42, 20, 24, box); + + //Floor + fillWithBlocks(world, box, 13, 25, 2, 42, 25, 4, ModBlocks.asphalt); //it's okay to cut corners (vanilla does it all the time!), but + fillWithBlocks(world, box, 13, 25, 5, 34, 25, 9, ModBlocks.asphalt); //being pretty careful trades unnecessary setBlocks for some extra lines. + fillWithBlocks(world, box, 13, 25, 10, 14, 25, 18, ModBlocks.asphalt); + fillWithBlocks(world, box, 24, 25, 10, 35, 25, 12, ModBlocks.asphalt); + fillWithBlocks(world, box, 24, 25, 13, 26, 25, 18, ModBlocks.asphalt); + fillWithBlocks(world, box, 13, 25, 19, 42, 25, 20, ModBlocks.asphalt); + fillWithBlocks(world, box, 40, 25, 5, 42, 25, 18, ModBlocks.asphalt); + fillWithBlocks(world, box, 39, 25, 10, 39, 25, 12, ModBlocks.asphalt); + fillWithMetadataBlocks(world, box, 15, 25, 10, 23, 25, 10, ModBlocks.concrete_colored_ext, 5); + fillWithMetadataBlocks(world, box, 15, 25, 11, 15, 25, 17, ModBlocks.concrete_colored_ext, 5); + fillWithMetadataBlocks(world, box, 15, 25, 18, 23, 25, 18, ModBlocks.concrete_colored_ext, 5); + fillWithMetadataBlocks(world, box, 23, 25, 11, 23, 25, 17, ModBlocks.concrete_colored_ext, 5); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 16, 25, 11, box); //it's figuring out meta that makes you shoot yourself anyway + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 22, 25, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 22, 25, 17, box); + + ConcreteBricks ConcreteBricks = new ConcreteBricks(); + + fillWithRandomizedBlocks(world, box, 27, 25, 13, 39, 25, 18, rand, ConcreteBricks); + fillWithBlocks(world, box, 36, 25, 4, 38, 25, 4, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 35, 25, 5, 39, 25, 9, ModBlocks.concrete_smooth); + //Fences + fillWithBlocks(world, box, 13, 26, 2, 13, 28, 2, ModBlocks.deco_steel); + fillWithBlocks(world, box, 42, 26, 2, 42, 28, 2, ModBlocks.deco_steel); + fillWithBlocks(world, box, 13, 26, 20, 13, 28, 20, ModBlocks.deco_steel); + fillWithBlocks(world, box, 42, 26, 20, 42, 28, 20, ModBlocks.deco_steel); + //N-facing + fillWithBlocks(world, box, 38, 26, 2, 41, 27, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 34, 26, 2, 36, 27, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 30, 26, 2, 31, 27, 2, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 28, 27, 2, box); + fillWithBlocks(world, box, 22, 26, 2, 28, 26, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 23, 27, 2, 26, 27, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 18, 26, 2, 20, 26, 2, ModBlocks.fence_metal); + fillWithBlocks(world, box, 14, 26, 2, 16, 26, 2, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 14, 27, 2, box); + fillWithMetadataBlocks(world, box, 38, 28, 2, 41, 28, 2, ModBlocks.barbed_wire, 5); + fillWithMetadataBlocks(world, box, 35, 28, 2, 36, 28, 2, ModBlocks.barbed_wire, 5); + fillWithMetadataBlocks(world, box, 23, 28, 2, 25, 28, 2, ModBlocks.barbed_wire, 5); + placeBlockAtCurrentPosition(world, ModBlocks.barbed_wire, 5, 14, 28, 2, box); + //W-facing + fillWithBlocks(world, box, 13, 26, 3, 13, 27, 4, ModBlocks.fence_metal); + fillWithBlocks(world, box, 13, 26, 5, 13, 26, 6, ModBlocks.fence_metal); + fillWithBlocks(world, box, 13, 26, 9, 13, 27, 9, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 13, 26, 11, box); + fillWithBlocks(world, box, 13, 26, 12, 13, 27, 19, ModBlocks.fence_metal); + fillWithMetadataBlocks(world, box, 13, 28, 3, 13, 28, 4, ModBlocks.barbed_wire, 2); + fillWithMetadataBlocks(world, box, 13, 28, 15, 13, 28, 19, ModBlocks.barbed_wire, 2); + //E-facing + fillWithBlocks(world, box, 42, 26, 3, 42, 27, 4, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 42, 26, 7, box); + fillWithBlocks(world, box, 42, 26, 9, 42, 26, 12, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 42, 26, 14, box); + fillWithBlocks(world, box, 42, 26, 15, 42, 27, 19, ModBlocks.fence_metal); + fillWithMetadataBlocks(world, box, 42, 28, 3, 42, 28, 4, ModBlocks.barbed_wire, 3); + fillWithMetadataBlocks(world, box, 42, 28, 15, 42, 28, 19, ModBlocks.barbed_wire, 3); + //S-facing + fillWithBlocks(world, box, 14, 26, 20, 17, 27, 20, ModBlocks.fence_metal); + fillWithBlocks(world, box, 18, 26, 20, 22, 26, 20, ModBlocks.fence_metal); + fillWithBlocks(world, box, 20, 27, 20, 21, 27, 20, ModBlocks.fence_metal); + fillWithBlocks(world, box, 24, 26, 20, 25, 26, 20, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 27, 26, 20, box); + fillWithBlocks(world, box, 29, 26, 20, 32, 27, 20, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 33, 26, 20, box); + fillWithBlocks(world, box, 35, 26, 20, 37, 26, 20, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 36, 27, 20, box); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 39, 26, 20, box); + fillWithBlocks(world, box, 40, 26, 20, 41, 27, 20, ModBlocks.fence_metal); + fillWithMetadataBlocks(world, box, 14, 28, 20, 17, 28, 20, ModBlocks.barbed_wire, 4); + fillWithMetadataBlocks(world, box, 29, 28, 20, 32, 28, 20, ModBlocks.barbed_wire, 4); + fillWithMetadataBlocks(world, box, 40, 28, 20, 41, 28, 20, ModBlocks.barbed_wire, 4); + + //Defense Platforms + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 27, 26, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 32, 26, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 27, 26, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 32, 26, 18, box); + fillWithRandomizedBlocks(world, box, 28, 26, 14, 31, 26, 17, rand, ConcreteBricks); + + ConcreteStairs ConcreteStairs = new ConcreteStairs(); + + int stairW = this.getStairMeta(0); + int stairE = this.getStairMeta(1); + int stairN = this.getStairMeta(2); + int stairS = this.getStairMeta(3); + + ConcreteStairs.setMetadata(stairN); + fillWithRandomizedBlocks(world, box, 28, 26, 13, 31, 26, 13, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW); + fillWithRandomizedBlocks(world, box, 27, 26, 14, 27, 26, 17, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairS); + fillWithRandomizedBlocks(world, box, 28, 26, 18, 31, 26, 18, rand, ConcreteStairs); + fillWithMetadataBlocks(world, box, 27, 27, 13, 32, 27, 13, ModBlocks.concrete_slab, 1); + fillWithMetadataBlocks(world, box, 27, 27, 14, 27, 27, 17, ModBlocks.concrete_slab, 1); + fillWithMetadataBlocks(world, box, 27, 27, 18, 32, 27, 18, ModBlocks.concrete_slab, 1); + fillWithMetadataBlocks(world, box, 32, 27, 14, 32, 27, 17, ModBlocks.concrete_slab, 1); + //Methusalem + placeCore(world, box, ModBlocks.turret_howard_damaged, ForgeDirection.SOUTH, 29, 27, 15); + fillSpace(world, box, 29, 27, 15, new int[] { 0, 0, 1, 0, 1, 0 }, ModBlocks.turret_howard_damaged, ForgeDirection.SOUTH); + //Destroyed platform + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 34, 26, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 39, 26, 13, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 34, 26, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_pillar, 0, 39, 26, 18, box); + fillWithRandomizedBlocks(world, box, 35, 26, 13, 38, 26, 13, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 32, 26, 15, 34, 26, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 35, 26, 18, 38, 26, 18, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairE); + fillWithRandomizedBlocks(world, box, 39, 26, 14, 39, 26, 15, rand, ConcreteStairs); + + DestroyedBricks DestroyedBricks = new DestroyedBricks(); //it's funny cause i'm probably gonna use this like once in this entire thing + + fillWithRandomizedBlocks(world, box, 35, 26, 14, 38, 26, 17, rand, DestroyedBricks); //destroyed layer + fillWithMetadataBlocks(world, box, 33, 27, 15, 33, 27, 17, ModBlocks.concrete_slab, 1); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 34, 27, 17, box); + fillWithMetadataBlocks(world, box, 34, 27, 18, 36, 27, 18, ModBlocks.concrete_slab, 1); + fillWithMetadataBlocks(world, box, 37, 27, 13, 39, 27, 13, ModBlocks.concrete_slab, 1); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 39, 27, 14, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 37, 25, 15, box); //deco + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, 0, 37, 26, 15, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 36, 25, 16, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, 0, 36, 26, 16, box); + + //Access Building (staircase not included) + fillWithRandomizedBlocks(world, box, 35, 26, 5, 39, 28, 5, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 35, 26, 6, 35, 28, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 39, 26, 6, 39, 28, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 36, 26, 9, 38, 28, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 36, 27, 11, 38, 27, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 36, 26, 12, 38, 26, 12, rand, ConcreteBricks); + ConcreteStairs.setMetadata(stairS); + fillWithRandomizedBlocks(world, box, 36, 28, 11, 38, 28, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 36, 27, 12, 38, 27, 12, rand, ConcreteStairs); + fillWithBlocks(world, box, 36, 29, 5, 38, 29, 9, ModBlocks.concrete); //Roof + fillWithMetadataBlocks(world, box, 35, 29, 5, 35, 29, 9, ModBlocks.concrete_stairs, stairW); + fillWithMetadataBlocks(world, box, 36, 29, 10, 38, 29, 10, ModBlocks.concrete_stairs, stairS); + fillWithMetadataBlocks(world, box, 39, 29, 5, 39, 29, 9, ModBlocks.concrete_stairs, stairE); + //Deco + placeBlockAtCurrentPosition(world, Blocks.iron_bars, 0, 35, 27, 7, box); + placeBlockAtCurrentPosition(world, Blocks.iron_bars, 0, 39, 27, 7, box); + placeDoor(world, box, ModBlocks.door_metal, 1, false, rand.nextBoolean(), 37, 26, 5); + + //Stuff not-bolted down + //Tent + for(int j = 4; j <= 8; j += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 2, 20, 26, j, box); + fillWithMetadataBlocks(world, box, 16, 26, j, 16, 27, j, ModBlocks.steel_beam, 3); + } + + fillWithBlocks(world, box, 16, 28, 4, 17, 28, 8, ModBlocks.brick_slab); + fillWithMetadataBlocks(world, box, 18, 27, 4, 19, 27, 8, ModBlocks.brick_slab, 8); + fillWithBlocks(world, box, 20, 27, 4, 20, 27, 8, ModBlocks.brick_slab); + fillWithMetadataBlocks(world, box, 16, 28, 6, 17, 28, 6, ModBlocks.brick_slab, 5); + fillWithMetadataBlocks(world, box, 18, 27, 6, 19, 27, 6, ModBlocks.brick_slab, 13); + placeBlockAtCurrentPosition(world, ModBlocks.brick_slab, 5, 20, 27, 6, box); + //Supplies + SiloSupplies Supplies = new SiloSupplies(); + + fillWithRandomizedBlocks(world, box, 27, 26, 7, 29, 26, 9, rand, Supplies); + fillWithRandomizedBlocks(world, box, 17, 26, 4, 19, 26, 8, rand, Supplies); + //Wreckage + //not really worth the effort to make yet another selector + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 32, 26, 5, box); + fillWithRandomizedBlocks(world, box, 32, 26, 7, 32, 26, 7, rand, DestroyedBricks); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 31, 26, 9, box); + fillWithRandomizedBlocks(world, box, 31, 26, 11, 32, 26, 11, rand, DestroyedBricks); + fillWithRandomizedBlocks(world, box, 34, 26, 11, 34, 26, 11, rand, DestroyedBricks); + fillWithRandomizedBlocks(world, box, 41, 26, 17, 41, 26, 17, rand, DestroyedBricks); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 37, 26, 19, box); + + //Large Silo Hatch + placeCore(world, box, ModBlocks.silo_hatch_large, ForgeDirection.SOUTH, 19, 26, 14); + fillSpace(world, box, 19, 26, 14, new int[] { 0, 0, 3, 3, 3, 3 }, ModBlocks.silo_hatch_large, ForgeDirection.SOUTH); + placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_receiver, 1, 16, 25, 17, box); + setRTTYFreq(world, box, 16, 25, 17, freqHatch); + + //Containers + generateInvContents(world, box, rand, Blocks.chest, 2, 36, 26, 17, ItemPool.getPool(ItemPoolsLegacy.POOL_VERTIBIRD), 5); + + /* Stairway */ + fillWithAir(world, box, 37, 26, 9, 37, 27, 10); + placeBlockAtCurrentPosition(world, Blocks.air, 11, 37, 25, 10, box); + fillWithAir(world, box, 37, 24, 11, 37, 26, 11); + fillWithAir(world, box, 37, 23, 12, 37, 25, 12); + fillWithAir(world, box, 37, 21, 13, 37, 24, 14); + //bottoms + for(int i = 0; i < 5; i++) { + fillWithRandomizedBlocks(world, box, 36, 24 - i, 9 + i, 38, 24 - i, 9 + i, rand, ConcreteBricks); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairS, 37, 25 - i, 9 + i, box); + } + + //walls + for(int i = 36; i <= 38; i += 2) { + fillWithRandomizedBlocks(world, box, i, 26, 11, i, 26, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, i, 25, 10, i, 25, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, i, 24, 10, i, 24, 15, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, i, 23, 11, i, 23, 15, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, i, 22, 12, i, 22, 15, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, i, 21, 13, i, 21, 15, rand, ConcreteBricks); + } + + fillWithBlocks(world, box, 36, 20, 14, 38, 20, 15, ModBlocks.concrete_smooth); + fillWithAir(world, box, 36, 21, 14, 36, 22, 14); + + /* Blue Control Room */ + //Air + placeBlockAtCurrentPosition(world, Blocks.air, 0, 36, 23, 17, box); + fillWithAir(world, box, 34, 21, 13, 35, 23, 19); + fillWithAir(world, box, 33, 21, 13, 33, 23, 15); + fillWithAir(world, box, 29, 21, 16, 31, 23, 19); + fillWithAir(world, box, 29, 21, 12, 32, 23, 15); + fillWithAir(world, box, 28, 21, 10, 32, 23, 11); + fillWithAir(world, box, 27, 21, 7, 31, 23, 9); + fillWithAir(world, box, 27, 21, 5, 30, 23, 6); + fillWithAir(world, box, 27, 21, 4, 29, 23, 4); + fillWithAir(world, box, 27, 21, 3, 28, 23, 3); + fillWithAir(world, box, 26, 22, 7, 26, 23, 8); + fillWithAir(world, box, 25, 22, 7, 25, 23, 7); + fillWithAir(world, box, 24, 21, 2, 26, 23, 6); + fillWithAir(world, box, 22, 21, 5, 23, 23, 5); + fillWithAir(world, box, 16, 21, 1, 23, 23, 4); + //Floor and Ceiling + for(int i = 20; i <= 24; i += 4) { + fillWithBlocks(world, box, 15, i, 0, 23, i, 5, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, i, 1, 26, i, 6, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 25, i, 7, 26, i, 7, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 26, i, 8, box); + fillWithBlocks(world, box, 27, i, 2, 28, i, 6, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 29, i, 3, box); + fillWithBlocks(world, box, 29, i, 4, 30, i, 4, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 29, i, 5, 31, i, 6, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 27, i, 7, 32, i, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 28, i, 10, 33, i, 20, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 34, i, 12, 35, i, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 34, i, 16, 37, i, 20, ModBlocks.concrete_smooth); + } + //Walls + //Curve (N-facing) + for(int i = 21; i <= 23; i += 2) { + fillWithRandomizedBlocks(world, box, 15, i, 0, 23, i, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, i, 1, 26, i, 1, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, i, 2, 28, i, 2, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 29, i, 3, 29, i, 3, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 30, i, 4, 30, i, 4, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 31, i, 5, 31, i, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 32, i, 7, 32, i, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 33, i, 10, 33, i, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 34, i, 12, 35, i, 12, rand, ConcreteBricks); + } + + fillWithMetadataBlocks(world, box, 15, 22, 0, 23, 22, 0, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 24, 22, 1, 26, 22, 1, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 27, 22, 2, 28, 22, 2, ModBlocks.concrete_colored, 11); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 11, 29, 22, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 11, 30, 22, 4, box); + fillWithMetadataBlocks(world, box, 31, 22, 5, 31, 22, 6, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 32, 22, 7, 32, 22, 9, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 33, 22, 10, 33, 22, 12, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 34, 22, 12, 35, 22, 12, ModBlocks.concrete_colored, 11); + //W-facing side + fillWithRandomizedBlocks(world, box, 15, 21, 1, 15, 21, 4, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 15, 22, 1, 15, 22, 4, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, 15, 23, 1, 15, 23, 4, rand, ConcreteBricks); + //Inner Curve (S-facing) + for(int i = 20; i <= 23; i += 3) { + fillWithRandomizedBlocks(world, box, 15, i, 6, 16, i + 1, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, i, 6, 23, i + 1, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, i, 7, 24, i + 1, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 25, i, 8, 25, i + 1, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 26, i, 9, 26, i + 1, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, i, 10, 27, i + 1, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, i, 17, 27, i + 1, 18, rand, ConcreteBricks); + } + fillWithRandomizedBlocks(world, box, 15, 21, 5, 18, 21, 5, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 20, 21, 5, 21, 21, 5, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 15, 23, 5, 21, 23, 5, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 28, 21, 12, 28, 21, 13, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 28, 21, 15, 28, 21, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 28, 23, 12, 28, 23, 20, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 15, 22, 6, 16, 22, 6, ModBlocks.concrete_colored, 11); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 11, 22, 22, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 23, 22, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 24, 22, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 25, 22, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 26, 22, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_glass, 0, 27, 22, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 11, 27, 22, 11, box); + fillWithMetadataBlocks(world, box, 27, 22, 17, 27, 22, 18, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 15, 22, 5, 18, 22, 5, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 20, 22, 5, 21, 22, 5, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 28, 22, 12, 28, 22, 13, ModBlocks.concrete_colored, 11); + fillWithMetadataBlocks(world, box, 28, 22, 15, 28, 22, 20, ModBlocks.concrete_colored, 11); + //S-facing side + fillWithRandomizedBlocks(world, box, 29, 21, 20, 36, 21, 20, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 29, 22, 20, 36, 22, 20, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, 29, 23, 20, 36, 23, 20, rand, ConcreteBricks); + //E-facing side + fillWithRandomizedBlocks(world, box, 37, 21, 15, 37, 21, 20, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 37, 22, 15, 37, 22, 20, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, 37, 23, 15, 37, 23, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 37, 24, 15, 37, 24, 15, rand, ConcreteBricks); + //Internal walls + fillWithRandomizedBlocks(world, box, 32, 21, 16, 32, 21, 19, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 32, 22, 16, 32, 22, 19, ModBlocks.concrete_colored, 11); + fillWithRandomizedBlocks(world, box, 32, 23, 16, 32, 23, 19, rand, ConcreteBricks); + //Arches + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 24, 23, 2, 26, 23, 2, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 27, 23, 3, 28, 23, 3, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW | 4); + fillWithRandomizedBlocks(world, box, 30, 23, 5, 30, 23, 6, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 31, 23, 7, 31, 23, 9, rand, ConcreteStairs); + //Doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 19, 21, 5); + placeDoor(world, box, ModBlocks.door_bunker, 2, false, rand.nextBoolean(), 28, 21, 14); + //Deco + //Computer area + int decoS = getDecoMeta(2); + int decoN = getDecoMeta(3); + int decoE = getDecoMeta(4); + int decoW = getDecoMeta(5); + int pillarWE = getPillarMeta(4); + int pillarNS = getPillarMeta(8); + int decoModelN = getDecoModelMeta(0); + int decoModelW = getDecoModelMeta(2); + int decoModelE = getDecoModelMeta(3); + + fillWithBlocks(world, box, 33, 21, 19, 33, 23, 19, ModBlocks.deco_steel); + fillWithBlocks(world, box, 33, 21, 17, 33, 23, 17, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoW, 33, 21, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_crt, getCRTMeta(1) | 8, 33, 22, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoW, 33, 23, 18, box); + fillWithMetadataBlocks(world, box, 33, 21, 16, 33, 23, 16, ModBlocks.tape_recorder, decoW); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone_stairs, stairE | 4, 34, 21, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.brick_slab, 8, 34, 21, 18, box); + placeBlockAtCurrentPosition(world, Blocks.heavy_weighted_pressure_plate, 0, 34, 22, 18, box); + placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, decoE, 36, 21, 16, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 36, 21, 17, box); + placeBlockAtCurrentPosition(world, ModBlocks.fusion_conductor, 0, 36, 21, 19, box); + fillWithMetadataBlocks(world, box, 36, 22, 16, 36, 23, 16, ModBlocks.tape_recorder, decoE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelW, 36, 22, 17, box); + fillWithMetadataBlocks(world, box, 36, 21, 18, 36, 23, 18, ModBlocks.tape_recorder, decoE); + fillWithMetadataBlocks(world, box, 36, 22, 19, 36, 23, 19, ModBlocks.deco_crt, getCRTMeta(3) | 12); + //Cabinets + Pipe + fillWithBlocks(world, box, 32, 21, 11, 32, 22, 11, ModBlocks.deco_pipe_framed_green_rusted); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_framed_green_rusted, pillarNS, 32, 23, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 32, 23, 11, box); + fillWithMetadataBlocks(world, box, 32, 23, 12, 32, 23, 15, ModBlocks.deco_pipe_framed_green_rusted, pillarNS); + + placeBlockAtCurrentPosition(world, ModBlocks.turret_sentry_damaged, 0, 30, 21, 16, box); + //Desk Area + fillWithBlocks(world, box, 27, 21, 9, 28, 21, 9, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.deco_beryllium, 0, 26, 21, 8, box); + fillWithBlocks(world, box, 25, 21, 7, 26, 21, 7, ModBlocks.deco_steel); + fillWithBlocks(world, box, 24, 21, 5, 24, 21, 6, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelN, 28, 22, 9, box); + placeBlockAtCurrentPosition(world, Blocks.lever, 6, 26, 22, 8, box); //placed on ground + placeBlockAtCurrentPosition(world, Blocks.lever, 6, 25, 22, 7, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 28, 21, 7, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 27, 21, 5, box); + + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoE, 30, 21, 5, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 27, 21, 3, box); + + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 25, 22, 2, box); + + placeCore(world, box, ModBlocks.radio_telex, ForgeDirection.WEST, 25, 21, 5); + fillSpace(world, box, 25, 21, 5, new int[] {0, 0, 0, 0, 1, 0}, ModBlocks.radio_telex, ForgeDirection.WEST); + placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_sender, 0, 26, 20, 8, box); //Launchpad lever + setRTTYFreq(world, box, 26, 20, 8, freq); + placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_sender, 0, 25, 20, 7, box); //hatch lever + setRTTYFreq(world, box, 25, 20, 7, freqHatch); + + //Machine/Small Desk Area + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_framed_green_rusted, pillarWE, 23, 23, 1, box); + fillWithMetadataBlocks(world, box, 16, 23, 1, 19, 23, 1, ModBlocks.deco_pipe_framed_green_rusted, pillarWE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 20, 21, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, decoN, 20, 22, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone_stairs, stairS | 4, 21, 21, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_crt, getCRTMeta(2) | 4, 21, 22, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 22, 21, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, decoN, 22, 22, 1, box); + fillWithBlocks(world, box, 20, 23, 1, 22, 23, 1, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 23, 21, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 18, 21, 2, box); + fillWithBlocks(world, box, 16, 21, 1, 16, 21, 3, ModBlocks.deco_steel); + + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelE, 16, 22, 2, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 16, 22, 3, box); + placeRandomBobble(world, box, rand, 16, 22, 4); + + //Containers + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 17, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 18, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LAB), 6); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 19, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 17, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 22, 19, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 29, 21, 19, ItemPool.getPool(ItemPoolsComponent.POOL_OFFICE_TRASH), 8); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 18, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelE, 29, 21, 17, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 4); + + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelW, 31, 21, 8, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 5); + + generateInvContents(world, box, rand, ModBlocks.crate_steel, 3, 25, 21, 2, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 4); + + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, decoModelN, 23, 21, 5, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 5); + + generateLockableContents(world, box, rand, ModBlocks.safe, decoW, 16, 21, 4, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_RUSTY), 3, 1D); + + /* Silo */ + // TOP + //Air + fillWithAir(world, box, 17, 21, 6, 21, 23, 6); + fillWithAir(world, box, 15, 21, 7, 23, 23, 10); + fillWithAir(world, box, 24, 21, 8, 24, 23, 10); + fillWithAir(world, box, 25, 21, 9, 25, 23, 10); + fillWithAir(world, box, 26, 21, 10, 26, 23, 10); + fillWithAir(world, box, 23, 21, 11, 26, 23, 17); + fillWithAir(world, box, 27, 21, 12, 27, 23, 16); + fillWithAir(world, box, 26, 21, 18, 26, 23, 18); + fillWithAir(world, box, 25, 21, 18, 25, 23, 19); + fillWithAir(world, box, 24, 21, 18, 24, 23, 20); + fillWithAir(world, box, 15, 21, 18, 23, 23, 21); + fillWithAir(world, box, 17, 21, 22, 21, 23, 22); + fillWithAir(world, box, 14, 21, 18, 14, 23, 20); + fillWithAir(world, box, 13, 21, 18, 13, 23, 19); + fillWithAir(world, box, 12, 21, 18, 12, 23, 18); + fillWithAir(world, box, 12, 21, 11, 15, 23, 17); + fillWithAir(world, box, 11, 21, 12, 11, 23, 16); + fillWithAir(world, box, 12, 21, 10, 12, 23, 10); + fillWithAir(world, box, 13, 21, 9, 13, 23, 10); + fillWithAir(world, box, 14, 21, 8, 14, 23, 10); + //Floor + fillWithBlocks(world, box, 13, 20, 9, 13, 20, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 20, 8, 14, 20, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 20, 7, 16, 20, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 20, 6, 21, 20, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 20, 7, 23, 20, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 20, 8, 24, 20, 9, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 25, 20, 9, box); + fillWithBlocks(world, box, 25, 20, 10, 26, 20, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 26, 20, 12, 27, 20, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 25, 20, 17, 26, 20, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 20, 19, 25, 20, 19, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 24, 20, 20, box); + fillWithBlocks(world, box, 22, 20, 20, 23, 20, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 20, 21, 21, 20, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 20, 20, 16, 20, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 20, 19, 14, 20, 20, ModBlocks.concrete_smooth); + //grates + fillWithMetadataBlocks(world, box, 14, 20, 10, 15, 20, 18, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 13, 20, 12, 13, 20, 16, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 17, 20, 8, 21, 20, 8, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 15, 20, 9, 23, 20, 9, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 16, 20, 10, 22, 20, 10, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 23, 20, 10, 24, 20, 18, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 25, 20, 12, 25, 20, 16, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 22, 20, 19, 23, 20, 19, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 15, 20, 19, 16, 20, 19, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 16, 20, 18, 22, 20, 18, ModBlocks.steel_grate, 7); + //Ceiling + fillWithBlocks(world, box, 11, 24, 12, 11, 24, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 24, 10, 15, 24, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 13, 24, 9, 15, 24, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 24, 8, 15, 24, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 13, 24, 19, 15, 24, 19, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 24, 20, 15, 24, 20, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 17, 24, 6, 21, 24, 6, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 24, 7, 23, 24, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 16, 24, 8, 22, 24, 10, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 27, 24, 12, 27, 24, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 10, 26, 24, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 9, 25, 24, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 8, 24, 24, 8, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 19, 25, 24, 19, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, 24, 20, 24, 24, 20, ModBlocks.concrete_smooth); + + fillWithBlocks(world, box, 17, 24, 22, 21, 24, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 24, 21, 23, 24, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 16, 24, 18, 22, 24, 20, ModBlocks.concrete_smooth); + //Walls + fillWithRandomizedBlocks(world, box, 14, 20, 7, 14, 24, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 20, 8, 13, 24, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, 21, 9, 12, 24, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 21, 10, 11, 24, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 10, 21, 12, 10, 24, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 21, 17, 11, 24, 18, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, 21, 19, 12, 24, 19, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 21, 20, 13, 24, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 20, 21, 14, 24, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 15, 20, 22, 16, 24, 22, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 17, 20, 23, 21, 24, 23, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 20, 22, 23, 24, 22, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, 20, 21, 24, 24, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 25, 20, 20, 25, 24, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 26, 20, 19, 26, 24, 19, rand, ConcreteBricks); + + // CENTER + //Air + fillWithAir(world, box, 17, 2, 12, 21, 25, 16); + for(int i = 5; i <= 17; i += 4) { + if(((i - 5) / 4) % 2 == 0) { //stairs facing N + fillWithAir(world, box, 17, i, 8, 20, i + 3, 9); + fillWithAir(world, box, 17, i, 10, 21, i + 2, 10); + fillWithAir(world, box, 17, i, 18, 21, i + 2, 20); + } else { //stairs facing S + fillWithAir(world, box, 18, i, 19, 21, i + 3, 20); + fillWithAir(world, box, 17, i, 18, 21, i + 2, 18); + fillWithAir(world, box, 17, i, 8, 21, i + 2, 10); + } + fillWithAir(world, box, 22, i, 10, 22, i + 2, 10); + fillWithAir(world, box, 22, i, 9, 23, i + 2, 9); + fillWithAir(world, box, 23, i, 10, 24, i + 2, 18); + fillWithAir(world, box, 25, i, 12, 25, i + 2, 16); + fillWithAir(world, box, 22, i, 19, 23, i + 2, 19); + fillWithAir(world, box, 22, i, 18, 22, i + 2, 18); + fillWithAir(world, box, 16, i, 18, 16, i + 2, 18); + fillWithAir(world, box, 15, i, 19, 16, i + 2, 19); + fillWithAir(world, box, 14, i, 10, 15, i + 2, 18); + fillWithAir(world, box, 13, i, 12, 13, i + 2, 16); + fillWithAir(world, box, 15, i, 9, 16, i + 2, 9); + fillWithAir(world, box, 16, i, 10, 16, i + 2, 10); + } + for(int i = 6; i <= 22; i += 4) { + fillWithAir(world, box, 16, i, 11, 18, i + 1, 11); + fillWithAir(world, box, 16, i, 12, 16, i + 1, 13); + fillWithAir(world, box, 16, i, 15, 16, i + 1, 16); + fillWithAir(world, box, 16, i, 17, 18, i + 1, 17); + fillWithAir(world, box, 20, i, 17, 22, i + 1, 17); + fillWithAir(world, box, 22, i, 15, 22, i + 1, 16); + fillWithAir(world, box, 22, i, 12, 22, i + 1, 13); + fillWithAir(world, box, 20, i, 11, 22, i + 1, 11); + } + //Supports + fillWithRandomizedBlocks(world, box, 22, 24, 17, 22, 24, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 17, 24, 17, 21, 25, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 16, 24, 17, 16, 24, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 16, 24, 12, 16, 25, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 16, 24, 11, 16, 24, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 17, 24, 11, 21, 25, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 24, 11, 22, 24, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 24, 12, 22, 25, 16, rand, ConcreteBricks); + + fillWithRandomizedBlocks(world, box, 19, 5, 11, 19, 23, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 5, 14, 22, 23, 14, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 19, 5, 17, 19, 23, 17, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 16, 5, 14, 16, 23, 14, rand, ConcreteBricks); + //Grates + Railing + for(int j = 8; j <= 20; j += 4) { + for(int i = 16; i <= 22; i += 6) { + fillWithMetadataBlocks(world, box, i, j, 15, i, j, 16, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, i, j, 12, i, j, 13, ModBlocks.steel_grate, 7); + fillWithBlocks(world, box, i, j + 1, 15, i, j + 1, 16, ModBlocks.fence_metal); + fillWithBlocks(world, box, i, j + 1, 12, i, j + 1, 13, ModBlocks.fence_metal); + } + for(int k = 11; k <= 17; k += 6) { + fillWithMetadataBlocks(world, box, 16, j, k, 18, j, k, ModBlocks.steel_grate, 7); + fillWithMetadataBlocks(world, box, 20, j, k, 22, j, k, ModBlocks.steel_grate, 7); + fillWithBlocks(world, box, 16, j + 1, k, 18, j + 1, k, ModBlocks.fence_metal); + fillWithBlocks(world, box, 20, j + 1, k, 22, j + 1, k, ModBlocks.fence_metal); + } + } + //Floor + for(int j = 8; j <= 16; j += 4) { + fillWithBlocks(world, box, 15, j, 11, 15, j, 17, ModBlocks.concrete); + fillWithBlocks(world, box, 16, j, 10, 22, j, 10, ModBlocks.concrete); + fillWithBlocks(world, box, 23, j, 11, 23, j, 17, ModBlocks.concrete); + fillWithBlocks(world, box, 16, j, 18, 22, j, 18, ModBlocks.concrete); + fillWithBlocks(world, box, 15, j, 9, 16, j, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, j, 10, 15, j, 10, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, j, 11, 14, j, 17, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 13, j, 12, 13, j, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, j, 18, 15, j, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, j, 19, 16, j, 19, ModBlocks.concrete_smooth); + + if((j / 4) % 2 == 0) { + fillWithBlocks(world, box, 20, j, 19, 21, j, 20, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 19, j, 19, 19, j + 1, 20, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 18, j, 19, 18, j + 2, 20, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, j, 19, 17, j + 3, 20, ModBlocks.concrete_smooth); + for(int i = 0; i < 4; i++) + fillWithMetadataBlocks(world, box, 20 - i, j + 1 + i, 19, 20 - i, j + 1 + i, 20, ModBlocks.concrete_smooth_stairs, stairE); + } else { + fillWithBlocks(world, box, 17, j, 8, 18, j, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 19, j, 8, 19, j + 1, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 20, j, 8, 20, j + 2, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, j, 8, 21, j + 3, 9, ModBlocks.concrete_smooth); + for(int i = 0; i < 4; i++) + fillWithMetadataBlocks(world, box, 18 + i, j + 1 + i, 8, 18 + i, j + 1 + i, 9, ModBlocks.concrete_smooth_stairs, stairW); + } + + fillWithBlocks(world, box, 22, j, 9, 23, j, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, j, 10, 24, j, 10, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, j, 11, 24, j, 17, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 25, j, 12, 25, j, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 23, j, 18, 24, j, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, j, 19, 23, j, 19, ModBlocks.concrete_smooth); + } + + //Walls + fillWithRandomizedBlocks(world, box, 17, 5, 7, 21, 19, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 15, 4, 8, 16, 19, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 4, 9, 14, 19, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 4, 10, 13, 19, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, 5, 12, 12, 19, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 13, 4, 17, 13, 19, 18, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 14, 4, 19, 14, 19, 19, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 15, 4, 20, 16, 19, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 17, 5, 21, 21, 19, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 4, 20, 23, 19, 20, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, 4, 19, 24, 19, 19, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 25, 4, 17, 25, 19, 18, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 26, 5, 12, 26, 19, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 25, 4, 10, 25, 19, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 24, 4, 9, 24, 19, 9, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 22, 4, 8, 23, 19, 8, rand, ConcreteBricks); + + // EXHAUST + //dark area N/S + fillWithMetadataBlocks(world, box, 17, 0, 7, 21, 0, 21, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 18, 1, 7, 20, 1, 7, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 17, 1, 7, 17, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 21, 1, 7, 21, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 18, 1, 11, 18, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 20, 1, 11, 20, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 18, 1, 21, 20, 1, 21, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 17, 1, 16, 17, 1, 21, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 21, 1, 16, 21, 1, 21, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 18, 1, 16, 18, 1, 17, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 20, 1, 16, 20, 1, 17, ModBlocks.concrete_colored, 7); + //W/E + fillWithMetadataBlocks(world, box, 12, 0, 12, 16, 0, 16, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 22, 0, 12, 26, 0, 16, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 12, 1, 13, 12, 1, 15, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 12, 1, 16, 16, 1, 16, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 12, 1, 12, 16, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 16, 1, 15, 17, 1, 15, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 16, 1, 13, 17, 1, 13, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 26, 1, 13, 26, 1, 15, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 22, 1, 16, 26, 1, 16, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 22, 1, 12, 26, 1, 12, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 21, 1, 15, 22, 1, 15, ModBlocks.concrete_colored, 7); + fillWithMetadataBlocks(world, box, 21, 1, 13, 22, 1, 13, ModBlocks.concrete_colored, 7); + //gray area walls + fillWithBlocks(world, box, 18, 2, 21, 20, 3, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 2, 17, 21, 3, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 2, 16, 26, 3, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 26, 2, 13, 26, 3, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 2, 12, 26, 3, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 2, 7, 21, 3, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 18, 2, 7, 20, 3, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 2, 7, 17, 3, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 12, 16, 3, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 13, 12, 3, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 16, 16, 3, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 2, 17, 17, 3, 21, ModBlocks.concrete_smooth); + //Floor + fillWithBlocks(world, box, 18, 2, 21, 20, 3, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 2, 17, 21, 3, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 2, 16, 26, 3, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 26, 2, 13, 26, 3, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 2, 12, 26, 3, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 2, 7, 21, 3, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 18, 2, 7, 20, 3, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 2, 7, 17, 3, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 12, 16, 3, 12, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 13, 12, 3, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 2, 16, 16, 3, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 2, 17, 17, 2, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 4, 17, 21, 4, 21, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 4, 17, 23, 4, 19, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 4, 17, 24, 4, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 4, 12, 26, 4, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 24, 4, 10, 24, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 22, 4, 9, 23, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 17, 4, 7, 21, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 4, 9, 16, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 4, 10, 14, 4, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 12, 4, 12, 16, 4, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 14, 4, 17, 14, 4, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 15, 4, 17, 16, 4, 19, ModBlocks.concrete_smooth); + //Stairs + fillWithBlocks(world, box, 19, 5, 8, 19, 5, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 20, 5, 8, 20, 6, 9, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 21, 5, 8, 21, 7, 9, ModBlocks.concrete_smooth); + for(int i = 0; i < 4; i++) + fillWithMetadataBlocks(world, box, 18 + i, 5 + i, 8, 18 + i, 5 + i, 9, ModBlocks.concrete_smooth_stairs, stairW); + //Railing and Deco + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 18, 5, 11, box); + fillWithBlocks(world, box, 20, 5, 11, 22, 5, 11, ModBlocks.fence_metal); + fillWithBlocks(world, box, 22, 5, 12, 22, 5, 13, ModBlocks.fence_metal); + fillWithBlocks(world, box, 22, 5, 15, 22, 5, 17, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, ModBlocks.fence_metal, 0, 20, 5, 17, box); + fillWithBlocks(world, box, 16, 5, 17, 18, 5, 17, ModBlocks.fence_metal); + fillWithBlocks(world, box, 16, 5, 15, 16, 5, 16, ModBlocks.fence_metal); + fillWithBlocks(world, box, 16, 5, 11, 16, 5, 13, ModBlocks.fence_metal); + placeBlockAtCurrentPosition(world, Blocks.air, 0, 21, 5, 17, box); + placeBlockAtCurrentPosition(world, Blocks.air, 0, 17, 5, 11, box); + + fillWithMetadataBlocks(world, box, 17, 2, 12, 17, 4, 12, ModBlocks.ladder_steel, decoN); + fillWithMetadataBlocks(world, box, 21, 2, 16, 21, 4, 16, ModBlocks.ladder_steel, decoS); + //Launch Pad + placeCoreLaunchpad(world, box, ModBlocks.launch_pad_rusted, ForgeDirection.SOUTH, 19, 1, 14); + fillSpace(world, box, 19, 1, 14, new int[] {0, 0, 1, 1, 1, 1}, ModBlocks.launch_pad_rusted, ForgeDirection.SOUTH); + for(int i = 0; i <= 2; i += 2) + for(int k = 0; k <= 2; k += 2) + makeExtra(world, box, ModBlocks.launch_pad_rusted, 18 + i, 1, 13 + k); + placeBlockAtCurrentPosition(world, ModBlocks.radio_torch_receiver, 3, 19, 0, 14, box); + setRTTYFreq(world, box, 19, 0, 14, freq); + + //Air + fillWithAir(world, box, 18, 1, 8, 20, 3, 10); + fillWithAir(world, box, 18, 2, 11, 20, 3, 11); + fillWithAir(world, box, 19, 1, 11, 19, 1, 12); + fillWithAir(world, box, 19, 1, 16, 19, 1, 17); + fillWithAir(world, box, 18, 2, 17, 20, 3, 17); + fillWithAir(world, box, 18, 1, 18, 20, 3, 20); + fillWithAir(world, box, 13, 1, 13, 15, 3, 15); + fillWithAir(world, box, 16, 2, 13, 16, 3, 15); + fillWithAir(world, box, 16, 1, 14, 17, 1, 14); + fillWithAir(world, box, 21, 1, 14, 22, 1, 14); + fillWithAir(world, box, 22, 2, 13, 22, 3, 15); + fillWithAir(world, box, 23, 1, 13, 25, 3, 15); + + /* Red Sector */ + //Air + fillWithAir(world, box, 2, 17, 9, 11, 18, 11); + fillWithAir(world, box, 2, 19, 10, 11, 19, 10); + fillWithAir(world, box, 2, 17, 13, 11, 18, 15); + fillWithAir(world, box, 2, 19, 14, 11, 19, 14); + fillWithAir(world, box, 8, 17, 17, 12, 18, 25); + fillWithAir(world, box, 9, 19, 17, 11, 19, 25); + fillWithAir(world, box, 2, 17, 17, 6, 18, 21); + fillWithAir(world, box, 3, 19, 17, 5, 19, 21); + fillWithAir(world, box, 2, 17, 22, 3, 18, 25); + fillWithAir(world, box, 3, 19, 22, 3, 19, 25); + fillWithAir(world, box, 5, 17, 23, 6, 19, 25); + //Ceiling + fillWithBlocks(world, box, 1, 20, 8, 12, 20, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 20, 17, 13, 20, 26, ModBlocks.concrete_smooth); + //Floor + fillWithBlocks(world, box, 2, 16, 7, 11, 16, 7, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 16, 8, 12, 16, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 16, 12, 11, 16, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 16, 17, 12, 16, 18, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 1, 16, 19, 13, 16, 26, ModBlocks.concrete_smooth); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 16, 14, box); + //Walls + //N + fillWithRandomizedBlocks(world, box, 2, 17, 7, 11, 19, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 17, 8, 12, 17, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 8, 17, 8, 8, 17, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 5, 17, 8, 5, 17, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 17, 8, 2, 17, 8, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 19, 8, 12, 19, 8, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 1, 18, 8, 2, 18, 8, ModBlocks.concrete_colored, 14); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 14, 5, 18, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored, 14, 8, 18, 8, box); + fillWithMetadataBlocks(world, box, 11, 18, 8, 12, 18, 8, ModBlocks.concrete_colored, 14); + //W + fillWithMetadataBlocks(world, box, 1, 18, 9, 1, 18, 25, ModBlocks.concrete_colored, 14); + //S + fillWithMetadataBlocks(world, box, 1, 18, 26, 13, 18, 26, ModBlocks.concrete_colored, 14); + //E + fillWithMetadataBlocks(world, box, 13, 18, 17, 13, 18, 25, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 12, 18, 9, 12, 18, 16, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 13, 18, 10, 13, 18, 11, ModBlocks.concrete_colored, 14); + //Internal + fillWithMetadataBlocks(world, box, 2, 18, 12, 11, 18, 12, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 2, 18, 16, 11, 18, 16, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 7, 18, 17, 7, 18, 25, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 4, 18, 22, 6, 18, 22, ModBlocks.concrete_colored, 14); + fillWithMetadataBlocks(world, box, 4, 18, 23, 4, 18, 25, ModBlocks.concrete_colored, 14); + for(int i = 17; i <= 19; i += 2) { + //W + fillWithRandomizedBlocks(world, box, 1, i, 9, 1, i, 25, rand, ConcreteBricks); + //S + fillWithRandomizedBlocks(world, box, 1, i, 26, 13, i, 26, rand, ConcreteBricks); + //E + fillWithRandomizedBlocks(world, box, 13, i, 19, 13, i, 25, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, i, 9, 12, i, 11, rand, ConcreteBricks); + //Internal + fillWithRandomizedBlocks(world, box, 2, i, 12, 11, i, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 2, i, 16, 11, i, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 7, i, 17, 7, i, 25, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 4, i, 22, 6, i, 22, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 4, i, 23, 4, i, 25, rand, ConcreteBricks); + } + //Arches + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 2, 19, 9, 11, 19, 9, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 2, 19, 13, 11, 19, 13, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairN | 4); + fillWithRandomizedBlocks(world, box, 2, 19, 11, 11, 19, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 2, 19, 15, 11, 19, 15, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW | 4); + fillWithRandomizedBlocks(world, box, 12, 19, 17, 12, 19, 25, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 6, 19, 17, 6, 19, 21, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairE | 4); + fillWithRandomizedBlocks(world, box, 8, 19, 17, 8, 19, 25, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 2, 19, 17, 2, 19, 25, rand, ConcreteStairs); + //Doors + placeDoor(world, box, ModBlocks.door_bunker, 2, false, rand.nextBoolean(), 12, 17, 14); + placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 10, 17, 12); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 10, 17, 16); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 17, 16); + placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 4, 17, 24); + //Deco + //Living Room + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone_stairs, stairW | 4, 12, 17, 17, box); + placeBlockAtCurrentPosition(world, Blocks.cauldron, 0, 12, 17, 18, box); + fillWithMetadataBlocks(world, box, 12, 17, 19, 12, 17, 20, ModBlocks.reinforced_stone_stairs, stairW | 4); + placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, decoE, 12, 17, 21, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_toaster, getCRTMeta(3) | 4, 12, 18, 17, box); + placeLever(world, box, 2, true, 12, 18, 18); + placeBlockAtCurrentPosition(world, ModBlocks.machine_microwave, decoE, 12, 18, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 12, 18, 20, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 8, 17, 17, box); + fillWithMetadataBlocks(world, box, 8, 17, 19, 9, 17, 19, ModBlocks.reinforced_stone_stairs, stairS | 4); + fillWithMetadataBlocks(world, box, 8, 17, 20, 9, 17, 20, ModBlocks.reinforced_stone_stairs, stairN | 4); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairN, 8, 17, 22, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairE, 10, 17, 23, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairS, 11, 17, 23, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairW, 12, 17, 23, box); + fillWithMetadataBlocks(world, box, 10, 17, 25, 12, 17, 25, ModBlocks.reinforced_stone_stairs, stairN | 4); + placeBlockAtCurrentPosition(world, ModBlocks.deco_crt, getCRTMeta(0), 11, 18, 25, box); + + //Bathroom + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone, 0, 6, 17, 17, box); + fillWithBlocks(world, box, 6, 17, 18, 6, 17, 20, Blocks.cauldron); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone, 0, 6, 17, 21, box); + for(int i = 0; i < 3; i++) + placeLever(world, box, 2, true, 6, 18, 18 + i); + placeBlockAtCurrentPosition(world, Blocks.hopper, decoW, 6, 17, 24, box); + placeBlockAtCurrentPosition(world, Blocks.trapdoor, decoModelW >> 2, 6, 18, 24, box); + //Bedroom + for(int i = 3; i <= 7; i += 2) + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_stone_stairs, stairN | 4, i, 17, 11, box); + + for(int i = 4; i <= 10; i += 3) + for(int j = 17; j <= 18; j++) + placeBed(world, box, 1, i, j, 8); + + //Containers + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 25, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 6); + + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 2, 17, 11, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 6); //placed separately for loot table control + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 17, 11, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), 2); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 6, 17, 11, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 6); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 8, 17, 11, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LOCKERS), 6); + //Mines + fillWithMines(world, box, rand, 2, 17, 9, 11, 17, 11); + fillWithMines(world, box, rand, 9, 17, 17, 11, 17, 24); + fillWithMines(world, box, rand, 5, 17, 23, 6, 17, 25); + + /* Yellow Sector */ + //Air + fillWithAir(world, box, 27, 13, 13, 33, 14, 15); + fillWithAir(world, box, 27, 15, 14, 33, 15, 14); + fillWithAir(world, box, 27, 13, 17, 33, 14, 21); + fillWithAir(world, box, 27, 15, 18, 33, 15, 20); + fillWithAir(world, box, 27, 13, 9, 29, 14, 11); + fillWithAir(world, box, 28, 15, 9, 28, 15, 11); + fillWithAir(world, box, 31, 13, 9, 33, 14, 11); + fillWithAir(world, box, 32, 15, 9, 32, 15, 11); + //Ceiling + Floor + for(int i = 12; i <= 16; i += 4) { + fillWithBlocks(world, box, 26, i, 17, 26, i, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 27, i, 8, 34, i, 22, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 26, i, 8, 26, i, 11, ModBlocks.concrete_smooth); + } + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 26, 12, 14, box); + //Walls + //N + fillWithMetadataBlocks(world, box, 26, 14, 8, 34, 14, 8, ModBlocks.concrete_colored, 4); + //E + fillWithMetadataBlocks(world, box, 34, 14, 9, 34, 14, 21, ModBlocks.concrete_colored, 4); + //S + fillWithMetadataBlocks(world, box, 26, 14, 22, 34, 14, 22, ModBlocks.concrete_colored, 4); + //W + fillWithMetadataBlocks(world, box, 26, 14, 9, 26, 14, 21, ModBlocks.concrete_colored, 4); + fillWithMetadataBlocks(world, box, 25, 14, 17, 25, 14, 18, ModBlocks.concrete_colored, 4); + fillWithMetadataBlocks(world, box, 25, 14, 10, 25, 14, 11, ModBlocks.concrete_colored, 4); + //Internal + fillWithMetadataBlocks(world, box, 27, 14, 16, 33, 14, 16, ModBlocks.concrete_colored, 4); + fillWithMetadataBlocks(world, box, 27, 14, 12, 33, 14, 12, ModBlocks.concrete_colored, 4); + fillWithMetadataBlocks(world, box, 30, 14, 9, 30, 14, 11, ModBlocks.concrete_colored, 4); + for(int i = 13; i <= 15; i += 2) { + //N + fillWithRandomizedBlocks(world, box, 26, i, 8, 34, i, 8, rand, ConcreteBricks); + //E + fillWithRandomizedBlocks(world, box, 34, i, 9, 34, i, 21, rand, ConcreteBricks); + //S + fillWithRandomizedBlocks(world, box, 26, i, 22, 34, i, 22, rand, ConcreteBricks); + //W + fillWithRandomizedBlocks(world, box, 26, i, 15, 26, i, 21, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 26, i, 9, 26, i, 13, rand, ConcreteBricks); + //Internal + fillWithRandomizedBlocks(world, box, 27, i, 16, 33, i, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, i, 12, 33, i, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 30, i, 9, 30, i, 11, rand, ConcreteBricks); + } + //Arches + ConcreteStairs.setMetadata(stairN | 4); + fillWithRandomizedBlocks(world, box, 27, 15, 21, 33, 15, 21, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 27, 15, 15, 33, 15, 15, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 27, 15, 17, 33, 15, 17, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 27, 15, 13, 33, 15, 13, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW | 4); + fillWithRandomizedBlocks(world, box, 33, 15, 9, 33, 15, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 29, 15, 9, 29, 15, 11, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairE | 4); + fillWithRandomizedBlocks(world, box, 31, 15, 9, 31, 15, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 27, 15, 9, 27, 15, 11, rand, ConcreteStairs); + //Doors + placeDoor(world, box, ModBlocks.door_bunker, 0, false, rand.nextBoolean(), 26, 13, 14); + placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 28, 13, 12); + placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 32, 13, 12); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 32, 13, 16); + //Deco + //Room 1 + placeBlockAtCurrentPosition(world, ModBlocks.crate_ammo, 0, 27, 13, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 27, 13, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 27, 14, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 28, 13, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 29, 13, 9, box); + //Room 2 + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 31, 13, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelE, 31, 13, 11, box); + + placeBlockAtCurrentPosition(world, ModBlocks.crate_can, 0, 33, 13, 11, box); + //Workshop + placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer, 0, 33, 13, 17, box); + fillWithRandomizedBlocks(world, box, 33, 13, 18, 33, 13, 20, rand, Supplies); + + placeBlockAtCurrentPosition(world, ModBlocks.anvil_iron, decoN, 31, 13, 21, box); + fillWithBlocks(world, box, 28, 13, 18, 29, 13, 20, Blocks.planks); + placeBlockAtCurrentPosition(world, Blocks.crafting_table, 0, 29, 13, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, decoE, 28, 14, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_toaster, getCRTMeta(1), 28, 13, 17, box); + + //Containers + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 32, 13, 9, ItemPool.getPool(ItemPoolsComponent.POOL_SILO), 6); + generateInvContents(world, box, rand, ModBlocks.safe, decoN, 33, 13, 9, ItemPool.getPool(ItemPoolsComponent.POOL_MACHINE_PARTS), 6); + + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 33, 13, 21, ItemPool.getPool(ItemPoolsComponent.POOL_VAULT_LAB), 8); + //Mines + fillWithMines(world, box, rand, 27, 13, 13, 33, 13, 15); + + /* Green Sector */ + //Air + fillWithAir(world, box, 1, 9, 13, 11, 10, 15); + fillWithAir(world, box, 1, 11, 14, 8, 11, 14); + fillWithAir(world, box, 1, 9, 7, 6, 10, 11); + fillWithAir(world, box, 1, 11, 8, 6, 11, 10); + fillWithAir(world, box, 7, 9, 7, 11, 10, 7); + fillWithAir(world, box, 7, 9, 11, 11, 10, 11); + fillWithAir(world, box, 2, 9, 17, 4, 11, 23); + fillWithAir(world, box, 5, 9, 17, 5, 9, 18); + fillWithAir(world, box, 5, 9, 22, 5, 9, 23); + fillWithAir(world, box, 1, 9, 17, 1, 9, 18); + fillWithAir(world, box, 1, 9, 22, 1, 9, 23); + fillWithAir(world, box, 7, 9, 17, 11, 10, 23); + fillWithAir(world, box, 8, 11, 17, 10, 11, 23); + //Floor + Ceiling + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth, 0, 12, 8, 14, box); + for(int i = 8; i <= 12; i += 4) { + fillWithBlocks(world, box, 0, i, 6, 12, i, 11, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 0, i, 12, 11, i, 16, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 0, i, 17, 12, i, 24, ModBlocks.concrete_smooth); + } + //Walls + //N + fillWithMetadataBlocks(world, box, 0, 10, 6, 12, 10, 6, ModBlocks.concrete_colored, 13); + //W + fillWithMetadataBlocks(world, box, 0, 10, 7, 0, 10, 23, ModBlocks.concrete_colored, 13); + //S + fillWithMetadataBlocks(world, box, 0, 10, 24, 12, 10, 24, ModBlocks.concrete_colored, 13); + //E + fillWithMetadataBlocks(world, box, 12, 10, 7, 12, 10, 23, ModBlocks.concrete_colored, 13); + fillWithMetadataBlocks(world, box, 13, 10, 17, 13, 10, 18, ModBlocks.concrete_colored, 13); + fillWithMetadataBlocks(world, box, 13, 10, 10, 13, 10, 11, ModBlocks.concrete_colored, 13); + //Internal + fillWithMetadataBlocks(world, box, 1, 10, 12, 11, 10, 12, ModBlocks.concrete_colored, 13); + fillWithMetadataBlocks(world, box, 1, 10, 16, 11, 10, 16, ModBlocks.concrete_colored, 13); + fillWithMetadataBlocks(world, box, 6, 10, 17, 6, 10, 23, ModBlocks.concrete_colored, 13); + for(int i = 9; i <= 11; i += 2) { + //N + fillWithRandomizedBlocks(world, box, 0, i, 6, 12, i, 6, rand, ConcreteBricks); + //W + fillWithRandomizedBlocks(world, box, 0, i, 7, 0, i, 23, rand, ConcreteBricks); + //S + fillWithRandomizedBlocks(world, box, 0, i, 24, 12, i, 24, rand, ConcreteBricks); + //E + fillWithRandomizedBlocks(world, box, 12, i, 17, 12, i, 23, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 12, i, 7, 12, i, 11, rand, ConcreteBricks); + //Internal + fillWithRandomizedBlocks(world, box, 1, i, 12, 11, i, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, i, 16, 11, i, 16, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, i, 17, 6, i, 23, rand, ConcreteBricks); + } + //Arches + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 1, 11, 7, 11, 11, 7, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 1, 11, 13, 11, 11, 13, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairN | 4); + fillWithRandomizedBlocks(world, box, 1, 11, 11, 11, 11, 11, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 1, 11, 15, 11, 11, 15, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairW | 4); + fillWithRandomizedBlocks(world, box, 11, 11, 17, 11, 11, 23, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 5, 11, 17, 5, 11, 18, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 5, 11, 22, 5, 11, 23, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairE | 4); + fillWithRandomizedBlocks(world, box, 7, 11, 17, 7, 11, 23, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 1, 11, 17, 1, 11, 18, rand, ConcreteStairs); + fillWithRandomizedBlocks(world, box, 1, 11, 22, 1, 11, 23, rand, ConcreteStairs); + //Doors + placeDoor(world, box, ModBlocks.door_bunker, 2, false, rand.nextBoolean(), 12, 9, 14); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 9, 9, 16); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 9, 16); + placeDoor(world, box, ModBlocks.door_bunker, 3, false, rand.nextBoolean(), 3, 9, 12); + //Deco + //Fuel Infrastructure + fillWithMetadataBlocks(world, box, 17, 11, 14, 18, 11, 14, ModBlocks.deco_pipe_quad_rusted, pillarWE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 16, 11, 14, box); + fillWithMetadataBlocks(world, box, 13, 11, 14, 15, 11, 14, ModBlocks.deco_pipe_quad_rusted, pillarWE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 12, 11, 14, box); + fillWithMetadataBlocks(world, box, 10, 11, 14, 11, 11, 14, ModBlocks.deco_pipe_quad_rusted, pillarWE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 9, 11, 14, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, pillarNS, 9, 11, 15, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 9, 11, 16, box); + fillWithMetadataBlocks(world, box, 9, 11, 17, 9, 11, 19, ModBlocks.deco_pipe_quad_rusted, pillarNS); + placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, 0, 9, 11, 20, box); + fillWithMetadataBlocks(world, box, 9, 11, 21, 9, 11, 22, ModBlocks.deco_pipe_quad_rusted, pillarNS); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 9, 11, 23, box); + fillWithBlocks(world, box, 9, 9, 23, 9, 10, 23, ModBlocks.deco_pipe_framed_rusted); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 9, 8, 23, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, pillarWE, 10, 11, 20, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 11, 11, 20, box); + fillWithBlocks(world, box, 11, 9, 20, 11, 10, 20, ModBlocks.deco_pipe_framed_rusted); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 11, 8, 20, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, pillarWE, 8, 11, 20, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 7, 11, 20, box); + fillWithBlocks(world, box, 7, 9, 20, 7, 10, 20, ModBlocks.deco_pipe_framed_rusted); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 7, 8, 20, box); + fillWithBlocks(world, box, 8, 8, 18, 10, 8, 22, ModBlocks.deco_lead); + //Barrels in tank room + placeBlockAtCurrentPosition(world, ModBlocks.lox_barrel, 0, 7, 9, 17, box); + placeBlockAtCurrentPosition(world, ModBlocks.pink_barrel, 0, 11, 9, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.pink_barrel, 0, 11, 9, 22, box); + fillWithBlocks(world, box, 11, 9, 23, 11, 10, 23, ModBlocks.pink_barrel); + placeBlockAtCurrentPosition(world, ModBlocks.pink_barrel, 0, 10, 9, 23, box); + fillWithBlocks(world, box, 7, 9, 23, 8, 9, 23, ModBlocks.lox_barrel); + fillWithBlocks(world, box, 7, 9, 21, 7, 9, 22, ModBlocks.lox_barrel); + //Capacitor Room + for(int i = 1; i <= 5; i += 4) { + fillWithMetadataBlocks(world, box, i, 10, 17, i, 10, 18, ModBlocks.deco_pipe_quad_red, pillarNS); + fillWithMetadataBlocks(world, box, i, 10, 22, i, 10, 23, ModBlocks.deco_pipe_quad_red, pillarNS); + fillWithBlocks(world, box, i, 9, 19, i, 9, 21, ModBlocks.deco_lead); + fillWithMetadataBlocks(world, box, i, 10, 19, i, 10, 21, ModBlocks.capacitor_copper, i == 1 ? decoW : decoE); + fillWithBlocks(world, box, i, 11, 19, i, 11, 21, ModBlocks.deco_lead); + } + //Generator Room + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 1, 9, 11, box); + fillWithBlocks(world, box, 1, 9, 8, 1, 9, 9, ModBlocks.barrel_corroded); + fillWithBlocks(world, box, 1, 9, 7, 1, 10, 7, ModBlocks.barrel_corroded); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_corroded, 0, 2, 9, 7, box); + + fillWithBlocks(world, box, 7, 9, 10, 11, 9, 10, ModBlocks.deco_lead); + fillWithBlocks(world, box, 7, 10, 10, 11, 10, 10, ModBlocks.hadron_coil_alloy); + fillWithBlocks(world, box, 7, 11, 10, 11, 11, 10, ModBlocks.deco_lead); + fillWithBlocks(world, box, 7, 9, 9, 11, 9, 9, ModBlocks.hadron_coil_alloy); + fillWithBlocks(world, box, 8, 10, 9, 11, 10, 9, ModBlocks.deco_red_copper); + placeBlockAtCurrentPosition(world, ModBlocks.red_cable_gauge, decoE, 7, 10, 9, box); + fillWithBlocks(world, box, 7, 11, 9, 11, 11, 9, ModBlocks.hadron_coil_alloy); + fillWithBlocks(world, box, 7, 9, 8, 11, 9, 8, ModBlocks.deco_lead); + fillWithBlocks(world, box, 7, 10, 8, 11, 10, 8, ModBlocks.hadron_coil_alloy); + fillWithBlocks(world, box, 7, 11, 8, 11, 11, 8, ModBlocks.deco_lead); + + //Containers + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 4, 9, 7, ItemPool.getPool(ItemPoolsComponent.POOL_NUKE_FUEL), 5); + //Mines + fillWithMines(world, box, rand, 1, 9, 7, 6, 9, 11); + fillWithMines(world, box, rand, 8, 9, 17, 10, 9, 22); + + /* Black Sector */ + //Air + fillWithAir(world, box, 27, 5, 13, 31, 6, 15); + fillWithAir(world, box, 27, 7, 14, 31, 7, 14); + fillWithAir(world, box, 28, 2, 11, 31, 3, 15); + //Floor + Ceiling + fillWithBlocks(world, box, 28, 0, 11, 31, 0, 15, Blocks.dirt); + randomlyFillWithBlocks(world, box, rand, 0.5F, 28, 0, 11, 31, 0, 15, Blocks.dirt, 2); + fillWithBlocks(world, box, 27, 4, 11, 31, 4, 15, ModBlocks.concrete_smooth); + fillWithBlocks(world, box, 27, 8, 12, 32, 8, 16, ModBlocks.concrete_smooth); + //Walls + //N + fillWithRandomizedBlocks(world, box, 27, 0, 10, 32, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 27, 5, 12, 32, 5, 12, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 27, 6, 12, 32, 6, 12, ModBlocks.concrete_colored, 15); + fillWithRandomizedBlocks(world, box, 27, 7, 12, 32, 7, 12, rand, ConcreteBricks); + //E + fillWithRandomizedBlocks(world, box, 32, 0, 11, 32, 4, 12, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 32, 0, 13, 32, 5, 15, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 32, 6, 13, 32, 6, 15, ModBlocks.concrete_colored, 15); + fillWithRandomizedBlocks(world, box, 32, 7, 13, 32, 7, 15, rand, ConcreteBricks); + //S + fillWithRandomizedBlocks(world, box, 27, 0, 16, 32, 5, 16, rand, ConcreteBricks); + fillWithMetadataBlocks(world, box, 27, 6, 16, 32, 6, 16, ModBlocks.concrete_colored, 15); + fillWithRandomizedBlocks(world, box, 27, 7, 16, 32, 7, 16, rand, ConcreteBricks); + //W + fillWithRandomizedBlocks(world, box, 27, 0, 11, 27, 3, 15, rand, ConcreteBricks); + //Arches + ConcreteStairs.setMetadata(stairN | 4); + fillWithRandomizedBlocks(world, box, 27, 7, 15, 31, 7, 15, rand, ConcreteStairs); + ConcreteStairs.setMetadata(stairS | 4); + fillWithRandomizedBlocks(world, box, 27, 7, 13, 31, 7, 13, rand, ConcreteStairs); + //Water + fillWithBlocks(world, box, 28, 1, 11, 31, 1, 15, Blocks.water); + //Deco + fillWithBlocks(world, box, 26, 5, 14, 26, 6, 14, ModBlocks.concrete_smooth); //doorway + fillWithMetadataBlocks(world, box, 31, 2, 15, 31, 4, 15, ModBlocks.ladder_steel, decoE); + //Top Room + randomlyFillWithBlocks(world, box, rand, 0.15F, 27, 5, 13, 30, 6, 15, Blocks.web); //webs + randomlyFillWithBlocks(world, box, rand, 0.15F, 31, 6, 13, 31, 6, 15, Blocks.web); + randomlyFillWithBlocks(world, box, rand, 0.15F, 27, 7, 14, 31, 7, 14, Blocks.web); + + //Flooded Room + randomlyFillWithBlocks(world, box, rand, 0.15F, 28, 2, 11, 31, 2, 15, ModBlocks.reeds); + fillWithMetadataBlocks(world, box, 28, 3, 12, 28, 3, 15, ModBlocks.deco_pipe_framed_green_rusted, pillarNS); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 28, 3, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_green_rusted, 0, 28, 2, 11, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 28, 0, 11, box); + fillWithBlocks(world, box, 31, 1, 11, 31, 1, 12, ModBlocks.deco_beryllium); + fillWithMetadataBlocks(world, box, 31, 2, 11, 31, 2, 12, ModBlocks.tape_recorder, decoE); + + placeBlockAtCurrentPosition(world, ModBlocks.hev_battery, 0, 30, 2, 11, box); + + //Containers + generateLockableContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 13, launchKey, 1, 0.1D); + generateInvContents(world, box, rand, ModBlocks.crate_steel, 2, 31, 5, 14, ItemPool.getPool(ItemPoolsLegacy.POOL_NUKE_TRASH), 5); + generateInvContents(world, box, rand, ModBlocks.safe, decoE, 31, 5, 15, ItemPool.getPool(ItemPoolsComponent.POOL_FILING_CABINET), 5); + + generateInvContents(world, box, rand, ModBlocks.crate_iron, 2, 30, 1, 11, ItemPool.getPool(ItemPoolsLegacy.POOL_EXPENSIVE), 7); + //Mines + fillWithMines(world, box, rand, 27, 5, 13, 30, 5, 15); + + return true; + } + + public static WeightedRandomChestContent[] launchKey = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.launch_key, 0, 1, 1, 1) }; + + protected void setRTTYFreq(World world, StructureBoundingBox box, int featureX, int featureY, int featureZ, int freq) { + int posX = this.getXWithOffset(featureX, featureZ); + int posY = this.getYWithOffset(featureY); + int posZ = this.getZWithOffset(featureX, featureZ); + + if(!box.isVecInside(posX, posY, posZ)) return; + + TileEntityRadioTorchBase torch = (TileEntityRadioTorchBase) world.getTileEntity(posX, posY, posZ); + + if(torch != null) { + //for some reason, the silo hatch torch stays at signal 15, despite the others not doing so. + //this is only an issue with this method changing the existing TE, so it will never occur during natural generation. + torch.channel = String.valueOf(freq); //int for convenience + torch.lastState = 0; //just in case + } + } + + public static class ConcreteStairs extends BlockSelector { + + public void setMetadata(int meta) { + this.selectedBlockMetaData = meta; + } + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + float chance = rand.nextFloat(); + + if(chance < 0.4F) + this.field_151562_a = ModBlocks.brick_concrete_stairs; + else if (chance < 0.7F) + this.field_151562_a = ModBlocks.brick_concrete_mossy_stairs; + else if (chance < 0.9F) + this.field_151562_a = ModBlocks.brick_concrete_cracked_stairs; + else + this.field_151562_a = ModBlocks.brick_concrete_broken_stairs; + + } + } + + public static class DestroyedBricks extends BlockSelector { + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + this.selectedBlockMetaData = 0; + float chance = rand.nextFloat(); + + if(chance < 0.3F) { + this.field_151562_a = ModBlocks.concrete_brick_slab; + chance = rand.nextFloat(); + + if (chance >= 0.4F && chance < 0.7F) + this.selectedBlockMetaData |= 1; + else if (chance < 0.9F) + this.selectedBlockMetaData |= 2; + else + this.selectedBlockMetaData |= 3; + + } else if(chance < 0.6F) { + this.selectedBlockMetaData = rand.nextInt(4); + chance = rand.nextFloat(); + + if(chance < 0.4F) + this.field_151562_a = ModBlocks.brick_concrete_stairs; + else if (chance < 0.7F) + this.field_151562_a = ModBlocks.brick_concrete_mossy_stairs; + else if (chance < 0.9F) + this.field_151562_a = ModBlocks.brick_concrete_cracked_stairs; + else + this.field_151562_a = ModBlocks.brick_concrete_broken_stairs; + + } else if(chance < 0.9F) { + chance = rand.nextFloat(); + + if(chance < 0.4F) + this.field_151562_a = ModBlocks.brick_concrete; + else if (chance < 0.7F) + this.field_151562_a = ModBlocks.brick_concrete_mossy; + else if (chance < 0.9F) + this.field_151562_a = ModBlocks.brick_concrete_cracked; + else + this.field_151562_a = ModBlocks.brick_concrete_broken; + + } else + this.field_151562_a = Blocks.air; + } + } + + public static class SiloSupplies extends BlockSelector { + + @Override + public void selectBlocks(Random rand, int posX, int posY, int posZ, boolean notInterior) { + float chance = rand.nextFloat(); + + if(chance < 0.2F) + this.field_151562_a = ModBlocks.barrel_corroded; + else if(chance < 0.4F) + this.field_151562_a = ModBlocks.crate_can; + else if(chance < 0.45F) + this.field_151562_a = ModBlocks.red_barrel; + else if(chance < 0.5F) + this.field_151562_a = ModBlocks.pink_barrel; + else + this.field_151562_a = Blocks.air; + } + } + //stop-gap because there's no point in replacing all the blockselector classes yet + //this is basically just an in-line version of it anyway + protected void fillWithMines(World world, StructureBoundingBox box, Random rand, int minX, int minY, int minZ, int maxX, int maxY, int maxZ) { + + if(getYWithOffset(minY) < box.minY || getYWithOffset(maxY) > box.maxY) + return; + + for(int x = minX; x <= maxX; x++) { + + for(int z = minZ; z <= maxZ; z++) { + int posX = getXWithOffset(x, z); + int posZ = getZWithOffset(x, z); + + if(posX >= box.minX && posX <= box.maxX && posZ >= box.minZ && posZ <= box.maxZ) { + for(int y = minY; y <= maxY; y++) { + int posY = getYWithOffset(y); + //shouldn't cause issues + if(rand.nextInt(15) == 0 && world.getBlock(posX, posY, posZ).isAir(world, posX, posY, posZ) && !world.getBlock(posX, posY - 1, posZ).isAir(world, posX, posY - 1, posZ)) { + world.setBlock(posX, posY, posZ, ModBlocks.mine_ap, 0, 2); + + TileEntityLandmine mine = (TileEntityLandmine)world.getTileEntity(posX, posY, posZ); + if(mine != null) + mine.waitingForPlayer = true; + } + } + } + } + } + } + protected void placeCoreLaunchpad(World world, StructureBoundingBox box, Block block, ForgeDirection dir, int x, int y, int z) { + int posX = getXWithOffset(x, z); + int posZ = getZWithOffset(x, z); + int posY = getYWithOffset(y); + + if(!box.isVecInside(posX, posY, posZ)) return; + + if(dir == null) + dir = ForgeDirection.NORTH; + + dir = getDirection(dir.getOpposite()); + world.setBlock(posX, posY, posZ, block, dir.ordinal() + BlockDummyable.offset, 2); + + TileEntity launchpad = world.getTileEntity(posX, posY, posZ); + if(launchpad instanceof TileEntityLaunchPadRusted) { + ((TileEntityLaunchPadRusted) launchpad).missileLoaded = true; + } + } + //this might be a decent method to have in general actually + protected StructureBoundingBox getRotatedBoundingBox(int minX, int minY, int minZ, int maxX, int maxY, int maxZ) { + switch(this.coordBaseMode) { + default: //0 & 2 + return new StructureBoundingBox(minX, minY, minZ, minX + maxX, minY + maxY, minZ + maxZ); + case 1: + case 3: + return new StructureBoundingBox(minX, minY, minZ, minX + maxZ, minY + maxY, minZ + maxX); + } + } +} diff --git a/src/main/java/com/hbm/world/generator/CellularDungeon.java b/src/main/java/com/hbm/world/generator/CellularDungeon.java index b25685c7c..169b5fb3a 100644 --- a/src/main/java/com/hbm/world/generator/CellularDungeon.java +++ b/src/main/java/com/hbm/world/generator/CellularDungeon.java @@ -35,6 +35,7 @@ public class CellularDungeon { public List rooms = new ArrayList(); int tries; int branches; + boolean isGenerating; public CellularDungeon(int width, int height, int dimX, int dimZ, int tries, int branches) { @@ -60,7 +61,11 @@ public class CellularDungeon { } public void generate(World world, int x, int y, int z, Random rand) { + + if(isGenerating) return; + isGenerating = true; + x -= dimX * width / 2; z -= dimZ * width / 2; @@ -82,6 +87,8 @@ public class CellularDungeon { cells[dx][dz].generate(world, x + dx * (width - 1), y, z + dz * (width - 1), doors[dx][dz]); } } + + isGenerating = false; } int rec = 0; diff --git a/src/main/java/com/hbm/world/generator/JungleDungeon.java b/src/main/java/com/hbm/world/generator/JungleDungeon.java index a0ddadfc8..50fc0dfa9 100644 --- a/src/main/java/com/hbm/world/generator/JungleDungeon.java +++ b/src/main/java/com/hbm/world/generator/JungleDungeon.java @@ -5,11 +5,13 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.NotableComments; import com.hbm.inventory.RecipesCommon.MetaBlock; import com.hbm.world.generator.TimedGenerator.ITimedJob; import net.minecraft.world.World; +@NotableComments public class JungleDungeon extends CellularDungeon { public boolean hasHole = false; @@ -70,6 +72,7 @@ public class JungleDungeon extends CellularDungeon { //since all the building is timed jobs, this has to be as well. timed jobs are ordered so this works! //is it shitty coding? is it not? who knows? + //future bob here: yes it is, go fuck yourself } } diff --git a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java index 3f02d6cf0..e69db5214 100644 --- a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java +++ b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java @@ -50,12 +50,19 @@ public class TestDungeonRoom8 extends CellularDungeonRoom { int r = world.rand.nextInt(10); - if(r == 0) + if(r == 0) { ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(ModItems.book_of_)); - else if(r < 4) - ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, generateBook(world)); - else - ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(Items.book)); + } else if(r < 4) { + TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2); + safe.setInventorySlotContents(5, generateBook(world)); + safe.setInventorySlotContents(7, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + safe.setInventorySlotContents(9, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + } else { + TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2); + safe.setInventorySlotContents(5, new ItemStack(Items.book)); + safe.setInventorySlotContents(7, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + safe.setInventorySlotContents(9, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + } } break; } diff --git a/src/main/java/com/hbm/world/machine/FWatz.java b/src/main/java/com/hbm/world/machine/FWatz.java deleted file mode 100644 index 4b500c311..000000000 --- a/src/main/java/com/hbm/world/machine/FWatz.java +++ /dev/null @@ -1,562 +0,0 @@ -package com.hbm.world.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; - -public class FWatz { - - public static String[][] fwatz = new String[][] { - { - " XXX ", - " XXX ", - " ", - " ", - " ", - " ", - " ", - " SSSSS ", - "XX SSSSS XX", - "XX SSSSS XX", - "XX SSSSS XX", - " SSSSS ", - " ", - " ", - " ", - " ", - " ", - " XXX ", - " XXX " - }, - { - " XHX ", - " XXX ", - " ", - " ", - " ", - " ", - " ", - " SSSSS ", - "XX STTTS XX", - "HX STTTS XH", - "XX STTTS XX", - " SSSSS ", - " ", - " ", - " ", - " ", - " ", - " XXX ", - " XHX " - }, - { - " XXX ", - " XXX ", - " ", - " ", - " ", - " ", - " ", - " SSSSS ", - "XX STTTS XX", - "XX STTTS XX", - "XX STTTS XX", - " SSSSS ", - " ", - " ", - " ", - " ", - " ", - " XXX ", - " XXX " - }, - { - " ", - " XXX ", - " XXX ", - " X ", - " X ", - " X ", - " X ", - " SSXSS ", - " XX STTTS XX ", - " XXXXXXXTTTXXXXXXX ", - " XX STTTS XX ", - " SSXSS ", - " X ", - " X ", - " X ", - " X ", - " XXX ", - " XXX ", - " " - }, - { - " ", - " XXX ", - " XXX ", - " ", - " ", - " ", - " ", - " SSSSS ", - " XX STTTS XX ", - " XX STTTS XX ", - " XX STTTS XX ", - " SSSSS ", - " ", - " ", - " ", - " ", - " XXX ", - " XXX ", - " " - }, - { - " ", - " XXX ", - " XXX ", - " ", - " ", - " ", - " ", - " SSSSS ", - " XX STTTS XX ", - " XX STTTS XX ", - " XX STTTS XX ", - " SSSSS ", - " ", - " ", - " ", - " ", - " XXX ", - " XXX ", - " " - }, - { - " ", - " ", - " XXX ", - " XXX ", - " ", - " ", - " ", - " MMMMM ", - " XX MMMMM XX ", - " XX MMMMM XX ", - " XX MMMMM XX ", - " MMMMM ", - " ", - " ", - " ", - " XXX ", - " XXX ", - " ", - " " - }, - { - " ", - " ", - " XXX ", - " XXX ", - " XXX ", - " MMMMM ", - " MMMMMMM ", - " MMMMMMMMM ", - " XXXMMMMMMMMMXXX ", - " XXXMMMMMMMMMXXX ", - " XXXMMMMMMMMMXXX ", - " MMMMMMMMM ", - " MMMMMMM ", - " MMMMM ", - " XXX ", - " XXX ", - " XXX ", - " ", - " " - }, - { - " ", - " ", - " XXX ", - " XXX ", - " MMMMM ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " XXMMMPPPPPMMMXX ", - " XXMMMPPPPPMMMXX ", - " XXMMMPPPPPMMMXX ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " MMMMM ", - " XXX ", - " XXX ", - " ", - " " - }, - { - " ", - " ", - " ", - " XXX ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " XMMPPPPPPPMMX ", - " XMMPPPPPPPMMX ", - " XMMPPPPPPPMMX ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " XXX ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " MMMPPPPPPPMMM ", - " MMPPPMMMPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPMMMPPPMM ", - " MMMPPPPPPPMMM ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMPPPPPMMM ", - " MMPPPPPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPMMMMMPPMM ", - " MMPPMMCMMPPMM ", - " MMPPMMMMMPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPPPPPMM ", - " MMMPPPPPMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMPPPPPMMM ", - " MMPPPPPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPMMCMMPPMM ", - " MMPPMC#CMPPMM ", - " MMPPMMCMMPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPPPPPMM ", - " MMMPPPPPMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMPPPPPMMM ", - " MMPPPPPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPMMMMMPPMM ", - " MMPPMMCMMPPMM ", - " MMPPMMMMMPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPPPPPMM ", - " MMMPPPPPMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " MMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " MMMPPPPPPPMMM ", - " MMPPPMMMPPPMM ", - " MMPPPMMMPPPMM ", - " MMPPPMMMPPPMM ", - " MMMPPPPPPPMMM ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMM ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " MMPPPPPPPMM ", - " MMPPPPPPPMM ", - " MMPPPPPPPMM ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " ", - " MMMMM ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMPPPMMMM ", - " MMMPPPPPMMM ", - " MMMPPPPPMMM ", - " MMMPPPPPMMM ", - " MMMMPPPMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " MMMMM ", - " ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " ", - " ", - " MMMMM ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " MMMMM ", - " ", - " ", - " ", - " ", - " " - }, - { - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " MMMMM ", - " MMMMM ", - " MMMMM ", - " MMMMM ", - " MMMMM ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - } - }; - - public void generateHull(World world, Random rand, int x, int y, int z) { - - x -= 9; - z -= 9; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - Block b = Blocks.air; - - if(c.equals("X")) - b = ModBlocks.fwatz_scaffold; - if(c.equals("H")) - b = ModBlocks.fwatz_hatch; - if(c.equals("S")) - b = ModBlocks.fwatz_cooler; - if(c.equals("T")) - b = ModBlocks.fwatz_tank; - if(c.equals("M")) - b = ModBlocks.fwatz_conductor; - if(c.equals("C")) - b = ModBlocks.fwatz_computer; - if(c.equals("#")) - b = ModBlocks.fwatz_core; - - world.setBlock(x + i, y + j, z + k, b); - } - } - } - - world.setBlock(x + 0, y + 1, z + 9, ModBlocks.fwatz_hatch, 4, 3); - world.setBlock(x + 18, y + 1, z + 9, ModBlocks.fwatz_hatch, 5, 3); - world.setBlock(x + 9, y + 1, z + 18, ModBlocks.fwatz_hatch, 3, 3); - world.setBlock(x + 9, y + 1, z + 0, ModBlocks.fwatz_hatch, 2, 3); - - } - - public static boolean checkHull(World world, int x, int y, int z) { - x -= 9; - y -= 12; - z -= 9; - - boolean flag = true; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - Block b = Blocks.air; - boolean flag2 = false; - - if(c.equals("X")) { - b = ModBlocks.fwatz_scaffold; - flag2 = true; - } - if(c.equals("H")) { - b = ModBlocks.fwatz_hatch; - flag2 = true; - } - if(c.equals("S")) { - b = ModBlocks.fwatz_cooler; - flag2 = true; - } - if(c.equals("T")) { - b = ModBlocks.fwatz_tank; - flag2 = true; - } - if(c.equals("M")) { - b = ModBlocks.fwatz_conductor; - flag2 = true; - } - if(c.equals("C")) { - b = ModBlocks.fwatz_computer; - flag2 = true; - } - if(c.equals("#")) { - b = ModBlocks.fwatz_core; - flag2 = true; - } - - if(flag2) - if(world.getBlock(x + i, y + j, z + k) != b) - flag = false; - } - } - } - - return flag; - } - - public static void fillPlasma(World world, int x, int y, int z) { - x -= 9; - y -= 12; - z -= 9; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - - if(c.equals("P")) - world.setBlock(x + i, y + j, z + k, ModBlocks.fwatz_plasma); - } - } - } - } - - public static void emptyPlasma(World world, int x, int y, int z) { - x -= 9; - y -= 12; - z -= 9; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - - if(c.equals("P")) - if(world.getBlock(x + i, y + j, z + k) == ModBlocks.fwatz_plasma) - world.setBlock(x + i, y + j, z + k, Blocks.air); - } - } - } - } - - public static boolean getPlasma(World world, int x, int y, int z) { - x -= 9; - y -= 12; - z -= 9; - - boolean flag = false; - - for(int i = 0; i < 19; i++) { - for(int j = 0; j < 19; j++) { - for(int k = 0; k < 19; k++) { - String c = fwatz[j][i].substring(k, k + 1); - - if(c.equals("P") && world.getBlock(x + i, y + j, z + k) == ModBlocks.fwatz_plasma) - flag = true; - } - } - } - - return flag; - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/machine/NuclearReactor.java b/src/main/java/com/hbm/world/machine/NuclearReactor.java deleted file mode 100644 index c9117a619..000000000 --- a/src/main/java/com/hbm/world/machine/NuclearReactor.java +++ /dev/null @@ -1,208 +0,0 @@ -//Schematic to java Structure by jajo_11 | inspired by "MITHION'S .SCHEMATIC TO JAVA CONVERTINGTOOL" - -package com.hbm.world.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class NuclearReactor extends WorldGenerator -{ - public static String[][] array2 = new String[][] { - { - " ", - " BBB ", - " B B ", - " BBB ", - " " - }, - { - " BBB ", - "BRCRB", - "BCICB", - "BRCRB", - " BBB " - }, - { - " BAB ", - "BRCRB", - "AC#CA", - "BRCRB", - " BAB " - }, - { - " BBB ", - "BRCRB", - "BCICB", - "BRCRB", - " BBB " - }, - { - " ", - " BBB ", - " B B ", - " BBB ", - " " - } - }; - - Block Block1 = ModBlocks.brick_concrete; - Block Block2 = ModBlocks.reactor_element; - Block Block3 = ModBlocks.reactor_control; - Block Block4 = ModBlocks.reactor_conductor; - Block Block5 = ModBlocks.reactor_hatch; - Block Block6 = ModBlocks.reactor_computer; - - @Override - public boolean generate(World world, Random rand, int x, int y, int z) - { - int i = rand.nextInt(1); - - if(i == 0) - { - generate_r0(world, rand, x, y, z); - } - - return true; - - } - - public boolean generate_r0(World world, Random rand, int x, int y, int z) - { - x -= 2; - z -= 2; - - world.setBlock(x + 0, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 2, ModBlocks.fluid_duct, 0, 3); - world.setBlock(x + 3, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 0, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 1, z + 1, Block3, 0, 3); - world.setBlock(x + 3, y + 1, z + 1, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 2, Block3, 0, 3); - world.setBlock(x + 2, y + 1, z + 2, Block4, 0, 3); - world.setBlock(x + 3, y + 1, z + 2, Block3, 0, 3); - world.setBlock(x + 4, y + 1, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 2, y + 1, z + 3, Block3, 0, 3); - world.setBlock(x + 3, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 1, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 0, Block5, 2, 3); - world.setBlock(x + 3, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 2, z + 1, Block3, 0, 3); - world.setBlock(x + 3, y + 2, z + 1, Block2, 0, 3); - world.setBlock(x + 4, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 2, Block5, 4, 3); - world.setBlock(x + 1, y + 2, z + 2, Block3, 0, 3); - world.setBlock(x + 2, y + 2, z + 2, Block6, 0, 3); - world.setBlock(x + 3, y + 2, z + 2, Block3, 0, 3); - world.setBlock(x + 4, y + 2, z + 2, Block5, 5, 3); - world.setBlock(x + 0, y + 2, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 3, Block2, 0, 3); - world.setBlock(x + 2, y + 2, z + 3, Block3, 0, 3); - world.setBlock(x + 3, y + 2, z + 3, Block2, 0, 3); - world.setBlock(x + 4, y + 2, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 4, Block5, 3, 3); - world.setBlock(x + 3, y + 2, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 2, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 3, z + 1, Block3, 0, 3); - world.setBlock(x + 3, y + 3, z + 1, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 2, Block3, 0, 3); - world.setBlock(x + 2, y + 3, z + 2, Block4, 0, 3); - world.setBlock(x + 3, y + 3, z + 2, Block3, 0, 3); - world.setBlock(x + 4, y + 3, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 2, y + 3, z + 3, Block3, 0, 3); - world.setBlock(x + 3, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 3, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 2, ModBlocks.fluid_duct, 0, 3); - world.setBlock(x + 3, y + 4, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + 4, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + 4, z + 4, Block1, 0, 3); - return true; - - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/machine/Watz.java b/src/main/java/com/hbm/world/machine/Watz.java deleted file mode 100644 index 1fcfdafb3..000000000 --- a/src/main/java/com/hbm/world/machine/Watz.java +++ /dev/null @@ -1,795 +0,0 @@ -//Schematic to java Structure by jajo_11 | inspired by "MITHION'S .SCHEMATIC TO JAVA CONVERTINGTOOL" - -package com.hbm.world.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class Watz extends WorldGenerator -{ - public static String[][] array = new String[][] { - { - "SSSSSSS", - "SSSSSSS", - "SSSSSSS", - "SSSISSS", - "SSSSSSS", - "SSSSSSS", - "SSSSSSS" - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CAC ", - " CWRWC ", - "CWRKRWC", - "ARK#KRA", - "CWRKRWC", - " CWRWC ", - " CAC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - " CCC ", - " CWRWC ", - "CWRKRWC", - "CRKIKRC", - "CWRKRWC", - " CWRWC ", - " CCC " - }, - { - "SSSSSSS", - "SSSSSSS", - "SSSSSSS", - "SSSISSS", - "SSSSSSS", - "SSSSSSS", - "SSSSSSS" - } - }; - - @Override - public boolean generate(World world, Random rand, int x, int y, int z) - { - int i = rand.nextInt(1); - - if(i == 0) - { - generate_r0(world, rand, x, y, z); - } - - return true; - - } - - public boolean generate_r0(World world, Random rand, int x, int y, int z) - { - x -= 3; - z -= 3; - - world.setBlock(x + 0, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 0, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 1, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 1, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 1, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 1, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 1, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 1, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 1, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 1, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 1, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 1, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 1, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 1, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 1, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 1, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 1, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 1, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 1, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 1, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 1, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 1, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 1, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 1, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 1, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 1, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 1, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 1, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 1, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 1, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 1, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 1, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 1, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 1, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 1, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 1, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 2, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 2, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 2, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 2, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 2, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 2, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 2, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 2, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 2, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 2, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 2, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 2, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 2, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 2, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 2, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 2, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 2, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 2, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 2, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 2, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 2, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 2, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 2, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 2, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 2, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 2, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 2, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 2, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 2, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 2, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 2, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 2, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 2, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 2, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 3, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 3, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 3, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 3, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 3, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 3, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 3, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 3, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 3, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 3, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 3, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 3, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 3, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 3, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 3, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 3, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 3, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 3, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 3, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 3, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 3, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 3, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 3, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 3, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 3, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 3, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 3, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 3, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 3, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 3, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 3, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 3, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 3, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 3, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 4, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 4, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 4, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 4, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 4, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 4, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 4, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 4, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 4, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 4, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 4, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 4, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 4, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 4, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 4, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 4, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 4, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 4, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 4, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 4, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 4, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 4, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 4, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 4, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 4, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 4, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 4, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 4, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 4, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 4, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 4, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 4, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 5, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 5, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 5, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 5, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 5, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 5, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 5, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 5, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 5, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 5, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 5, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 5, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 5, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 5, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 5, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 5, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 5, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 5, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 5, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 5, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 5, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 5, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 5, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 5, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 5, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 5, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 5, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 5, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 5, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 5, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 5, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 5, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 5, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 5, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 5, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 5, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 5, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 5, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 5, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 5, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 5, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 5, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 5, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 5, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 5, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 5, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 5, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 5, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 5, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 6, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 6, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 6, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 6, z + 0, ModBlocks.watz_hatch, 2, 3); - world.setBlock(x + 4, y + 6, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 6, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 6, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 6, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 6, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 6, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 6, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 6, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 6, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 6, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 6, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 6, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 6, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 6, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 6, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 6, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 6, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 6, z + 3, ModBlocks.watz_hatch, 4, 3); - world.setBlock(x + 1, y + 6, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 6, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 6, z + 3, ModBlocks.watz_core, 0, 3); - world.setBlock(x + 4, y + 6, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 6, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 6, z + 3, ModBlocks.watz_hatch, 5, 3); - world.setBlock(x + 0, y + 6, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 6, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 6, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 6, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 6, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 6, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 6, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 6, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 6, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 6, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 6, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 6, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 6, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 6, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 6, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 6, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 6, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 6, z + 6, ModBlocks.watz_hatch, 3, 3); - world.setBlock(x + 4, y + 6, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 6, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 6, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 7, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 7, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 7, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 7, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 7, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 7, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 7, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 7, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 7, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 7, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 7, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 7, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 7, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 7, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 7, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 7, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 7, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 7, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 7, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 7, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 7, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 7, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 7, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 7, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 7, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 7, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 7, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 7, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 7, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 7, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 7, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 7, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 7, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 7, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 7, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 7, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 7, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 7, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 7, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 7, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 7, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 7, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 7, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 7, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 7, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 7, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 7, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 7, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 7, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 8, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 8, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 8, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 8, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 8, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 8, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 8, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 8, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 8, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 8, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 8, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 8, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 8, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 8, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 8, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 8, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 8, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 8, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 8, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 8, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 8, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 8, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 8, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 8, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 8, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 8, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 8, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 8, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 8, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 8, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 8, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 8, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 8, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 8, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 8, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 8, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 8, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 8, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 8, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 8, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 8, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 8, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 8, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 8, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 8, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 8, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 8, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 8, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 8, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 9, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 9, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 9, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 9, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 9, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 9, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 9, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 9, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 9, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 9, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 9, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 9, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 9, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 9, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 9, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 9, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 9, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 9, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 9, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 9, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 9, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 9, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 9, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 9, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 9, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 9, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 9, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 9, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 9, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 9, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 9, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 9, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 9, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 9, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 9, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 9, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 9, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 9, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 9, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 9, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 9, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 9, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 9, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 9, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 9, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 9, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 9, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 9, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 9, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 10, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 10, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 10, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 10, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 10, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 10, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 10, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 10, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 10, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 10, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 10, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 10, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 10, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 10, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 10, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 10, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 10, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 10, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 10, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 10, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 10, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 10, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 10, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 10, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 10, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 10, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 10, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 10, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 10, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 10, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 10, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 10, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 10, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 10, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 10, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 10, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 10, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 10, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 10, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 10, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 10, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 10, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 10, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 10, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 10, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 10, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 10, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 10, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 10, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 11, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 11, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 11, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 11, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 11, z + 0, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 11, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 11, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 11, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 11, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 11, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 11, z + 1, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 11, z + 1, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 11, z + 1, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 11, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 11, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 11, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 11, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 11, z + 2, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 11, z + 2, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 11, z + 2, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 11, z + 2, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 11, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 11, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 2, y + 11, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 3, y + 11, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 11, z + 3, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 5, y + 11, z + 3, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 6, y + 11, z + 3, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 11, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 1, y + 11, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 2, y + 11, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 3, y + 11, z + 4, ModBlocks.watz_cooler, 0, 3); - world.setBlock(x + 4, y + 11, z + 4, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 5, y + 11, z + 4, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 6, y + 11, z + 4, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 0, y + 11, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 11, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 2, y + 11, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 3, y + 11, z + 5, ModBlocks.watz_control, 0, 3); - world.setBlock(x + 4, y + 11, z + 5, ModBlocks.watz_element, 0, 3); - world.setBlock(x + 5, y + 11, z + 5, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 6, y + 11, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 11, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 11, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 11, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 3, y + 11, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 4, y + 11, z + 6, ModBlocks.reinforced_brick, 0, 3); - world.setBlock(x + 5, y + 11, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 11, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 0, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 1, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 2, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 3, ModBlocks.watz_conductor, 0, 3); - world.setBlock(x + 4, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 3, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 4, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 5, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 0, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 1, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 2, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 3, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 4, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 5, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - world.setBlock(x + 6, y + 12, z + 6, ModBlocks.watz_end, 0, 3); - return true; - - } - -} \ No newline at end of file diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index 7fa1a50fe..565b71102 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -2,6 +2,13 @@ # Cracks open stupid as shit keywords that are being used wrong because Mojang shouldn't be entrusted with computers. # After changing anything here, run `./gradlew clean setupDecompWorkspace`, this should scrap all the cached nonsense and patch the src to reflect changes made. +# EntityLivingBase +public net.minecraft.entity.EntityLivingBase * # everything because fuck i'm not doing 500 of these by hand +# public net.minecraft.entity.EntityLivingBase *() # ditto + +# EntityPlayer +public net.minecraft.entity.player.EntityPlayer field_71072_f # itemInUseCount + # EntityCreeper public net.minecraft.entity.monster.EntityCreeper field_82225_f # fuseTime public net.minecraft.entity.monster.EntityCreeper func_146077_cc()V # explode @@ -21,3 +28,12 @@ public net.minecraft.client.gui.GuiMainMenu field_73975_c # sp # EntityLivingBase public net.minecraft.entity.EntityLivingBase field_82180_bT # previousEquipment + +# ChunkProviderFlat +public net.minecraft.world.gen.ChunkProviderFlat field_82702_h # hasDungeons + +# ChunkProviderServer +public net.minecraft.world.gen.ChunkProviderServer field_73248_b # chunksToUnload + +# ItemRenderer +public net.minecraft.client.renderer.ItemRenderer field_78453_b # itemToRender \ No newline at end of file diff --git a/src/main/resources/assets/hbm/disks/README.md b/src/main/resources/assets/hbm/disks/README.md new file mode 100644 index 000000000..973c2bfa1 --- /dev/null +++ b/src/main/resources/assets/hbm/disks/README.md @@ -0,0 +1,13 @@ +# OpenComputers Floppy Disks + +This directory is where the contents of floppy disks registered by `com.hbm.handler.CompatHandler` reside. + +New floppy disks can be added by: +1. Adding a line inside the `init()` function in the `CompatHandler` class to add the floppy disk to the list of disks to register + (actually registering the disks is done automatically by the handler.) +2. Adding the Lua (Preferably 5.3) files to the directory path based on the name you chose for your floppy disk. +
Note: the names of drives are "sanitized", meaning the directory path will be the name you selected but all lowercase and stripped of any non-word character. + (A-Z, a-z, 0-9, _) +3. Add a recipe to the disk at the end of the `init()` function in the `CompatHandler` class, though this step is not required. + +After those steps are complete, a new floppy disk should be registered into OC with a recipe (if added). \ No newline at end of file diff --git a/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua b/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua new file mode 100644 index 000000000..0b86935da --- /dev/null +++ b/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua @@ -0,0 +1,274 @@ +local component = require "component" +local event = require "event" +local gpu = component.gpu +local call = component.invoke + +colorGradient = {0x00FF00, 0x6BEE00, 0x95DB00, 0xB0C800, 0xC5B400, 0xD79F00, 0xE68700, 0xF46900, 0xFC4700, 0xFF0000} +coreHeatESTOP = true +coolantLossESTOP = true + +runSig = true + +coldCoolantLevel = 0 +coldCoolantOutflow = 0 +prevCoolantFlow = 0 + +hotCoolantLevel = 0 +hotCoolantOutflow = 0 +prevHotCoolantFlow = 0 + +gpu.fill(1,1,160,160," ") + +-- Button Bullshit +function newButton(x, y, width, height, colorUp, colorDown, func) + local button = {xpos = 0, ypos = 0, width = 0, height = 0, colorUp = 0, colorDown = 0, func = nil} + button.xpos = x + button.ypos = y + button.width = width + button.height = height + button.colorUp = colorUp + button.colorDown = colorDown + button.func = func + return button +end + +function drawButton(button, color) + component.gpu.setBackground(color) + component.gpu.fill(button.xpos, button.ypos, button.width, button.height, " ") + component.gpu.setBackground(0x000000) +end + +pressedButton = nil +function buttonPress(_, _, x, y, _, _) + for _, b in pairs(buttons) do + if((x>=b.xpos) and (x<(b.xpos+b.width)) and (y>=b.ypos) and (y<(b.ypos+b.height)) ) then + drawButton(b, b.colorDown) + pressedButton = b + end + end +end + +function buttonRelease(_, _, x, y, _, _) + drawButton(pressedButton, pressedButton.colorUp) + pressedButton.func() + pressedButton = nil +end +--Button bullshit ends + +buttons = {} + +buttons[1] = newButton(61, 6, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")+1) end) +buttons[2] = newButton(68, 6, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")+5) end) +buttons[3] = newButton(75, 6, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")+10) end) + +buttons[4] = newButton(61, 9, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")-1) end) +buttons[5] = newButton(68, 9, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")-5) end) +buttons[6] = newButton(75, 9, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")-10) end) + +buttons[7] = newButton(82, 6, 11, 5, 0xFF0000, 0xAA0000, function() component.proxy(pwrController).setLevel(100) end) +buttons[8] = newButton(94, 6, 12, 2, 0x00FF00, 0x00AA00, function() coreHeatESTOP = not coreHeatESTOP if coreHeatESTOP == true then buttons[8].colorUp = 0x00FF00 buttons[8].colorDown = 0x00AA00 else buttons[8].colorUp = 0xFF0000 buttons[8].colorDown = 0xAA0000 end end) +buttons[9] = newButton(94, 9, 12, 2, 0x00FF00, 0x00AA00, function() coolantLossESTOP = not coolantLossESTOP if coolantLossESTOP == true then buttons[9].colorUp = 0x00FF00 buttons[9].colorDown = 0x00AA00 else buttons[9].colorUp = 0xFF0000 buttons[9].colorDown = 0xAA0000 end end) + +buttons[10] = newButton(107, 8, 5, 3, 0xFF0000, 0xAA0000, function() runSig = false end) + +for address, _ in component.list("ntm_pwr_control") do + pwrController = address +end + +gpu.setForeground(0xAAAAAA) + +--Control rods +gpu.fill(60,4,54,8,"█") + +--Outlet +gpu.fill(91,13,16,8,"█") + +--Inlet +gpu.fill(91,30,16,8,"█") + +gpu.set(61,13," █████████████████████") +gpu.set(61,14," █ █ █ █ █ █ █ █ █ █") +gpu.set(61,15," █ █ █▄█▄█▄█▄█▄█ █ █") +gpu.set(61,16," ▄█████▀█▀█▀█▀█▀█████▄") +gpu.set(61,17," ▄███▀█ █ █ █ █ █ █ █▀███▄") +gpu.set(61,18," ▄██ █ █ █ █ █ █ █ █ █ █ ██▄") +gpu.set(61,19," ██ ██") +gpu.set(61,20,"██▀ █████████████████████ ▀██") +gpu.set(61,21,"██ █████████████████████ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,22,"██ █ █ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,23,"██ █████████████████████ → → → → → → → → → →") +gpu.set(61,24,"██ █ █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,25,"██ █████████████████████ ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,26,"██ █ █ ██") +gpu.set(61,27,"██ █████████████████████ ██") +gpu.set(61,28,"██ █ █ ██") +gpu.set(61,29,"██ █████████████████████ ██") +gpu.set(61,30,"██ █ █ ██") +gpu.set(61,31,"██ █████████████████████ ██") +gpu.set(61,32,"██ ██") +gpu.set(61,33,"██ ██") +gpu.set(61,34,"██ ██") +gpu.set(61,35,"██ ██") +gpu.set(61,36,"██ ██") +gpu.set(61,37,"██ ██") +gpu.set(61,38,"██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,39,"██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,40,"██ ← ← ← ← ← ← ← ← ← ←") +gpu.set(61,41,"██ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,42,"██ ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,43,"██▄ ▄██") +gpu.set(61,44," ██ ██") +gpu.set(61,45," ▀██ ██▀") +gpu.set(61,46," ▀██▄▄ ▄▄██▀") +gpu.set(61,47," ▀▀███▄▄▄▄▄▄▄▄▄▄▄███▀▀") +gpu.set(61,48," ▀▀▀▀▀▀▀▀▀▀▀▀") + +gpu.setBackground(0xAAAAAA) +gpu.setForeground(0x000000) + +gpu.set(70,4,"CONTROL RODS") +gpu.set(61,5,"INS+1 INS+5 INS+10") +gpu.set(61,8,"RET+1 RET+5 RET+10") + +gpu.set(85,5,"ESTOP") +gpu.set(107,5,"LEVEL") +gpu.set(107,7,"QUIT") + +gpu.set(94,5,"OVHEAT ESTOP") +gpu.set(94,8,"NOCOOL ESTOP") + +gpu.set(95,13,"OUTFLOW") +gpu.set(92,14,"BUFFER") +gpu.set(99,14,"HOTΔ") + +gpu.set(95,30,"INFLOW") +gpu.set(92,31,"BUFFER") +gpu.set(99,31,"COOLΔ") + +gpu.set(69,20,"REACTOR CORE") +gpu.set(71,21,"CORE HEAT:") +gpu.set(71,23,"HULL HEAT:") +gpu.set(71,25,"CORE FLUX:") +gpu.set(68,27,"COLD HEATEX LVL:") +gpu.set(69,29,"HOT HEATEX LVL:") +gpu.setBackground(0x000000) + +gpu.setForeground(0xFFFFFF) +gpu.fill(107,6,5,1,"█") + +--Outflow Buffer +gpu.fill(92,15,6,5,"█") + +--CoolDelta +gpu.fill(99,15,7,1,"█") + +--HotDelta + +gpu.set(66,19,"┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃") +gpu.fill(66,22,19,1,"█") +gpu.fill(66,24,19,1,"█") +gpu.fill(66,26,19,1,"█") +gpu.fill(66,28,19,1,"█") +gpu.fill(66,30,19,1,"█") +gpu.set(66,32,"┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃") +gpu.setForeground(0xAAAAAA) + +gpu.setForeground(0x000000) +gpu.setBackground(0xFFFFFF) +gpu.set(83,22,"TU") +gpu.set(83,24,"TU") +gpu.setForeground(0xFFFFFF) +gpu.setBackground(0x000000) + + +event.listen("touch", buttonPress) +event.listen("drop", buttonRelease) + +while (runSig == true) do + rodLevel = call(pwrController, "getLevel") + + coreHeat, _ = call(pwrController, "getHeat") + coreHeat = coreHeat//1000000 + + for _, b in pairs(buttons) do + drawButton(b, b.colorUp) + end + + for j=rodLevel//10,10 do + gpu.fill(64+(j*2), 33, 1, 10, " ") + end + + for j=1,rodLevel//10 do + gpu.fill(64+(j*2), 33, 1, 10, "┃") + end + + gpu.fill(64+(math.ceil(rodLevel/10)*2), 33, 1, math.fmod(rodLevel,10), "┃") + + for j=0,20,2 do + gpu.setForeground(colorGradient[coreHeat+1]) + gpu.fill(65+j, 33, 1, 9, "█") + gpu.setForeground(0xAAAAAA) + end + + gpu.setBackground(0xFFFFFF) + + gpu.setForeground(0xFFFFFF) + gpu.fill(66,22,19,1,"█") + gpu.fill(66,24,19,1,"█") + gpu.fill(66,26,19,1,"█") + gpu.fill(66,28,19,1,"█") + gpu.fill(66,30,19,1,"█") + + gpu.fill(92,15,6,5,"█") + gpu.fill(92,32,6,5,"█") + + gpu.fill(99,15,7,1,"█") + gpu.fill(99,32,7,1,"█") + + prevCoolantFlow = coldCoolantLevel + prevHotCoolantFlow = hotCoolantLevel + + fullCoreHeat, fullHullHeat = call(pwrController, "getHeat") + coldCoolantLevel, _, hotCoolantLevel, _ = call(pwrController, "getCoolantInfo") + + coldCoolantOutflow = coldCoolantLevel - prevCoolantFlow + hotCoolantOutflow = hotCoolantLevel - prevHotCoolantFlow + + gpu.setForeground(0xFF0099) + gpu.fill(92,15+(5-hotCoolantLevel//25600),6,hotCoolantLevel//25600, "█") + gpu.setForeground(0x000000) + + gpu.setForeground(0x00FFFF) + gpu.fill(92,32+(5-coldCoolantLevel//25600),6,coldCoolantLevel//25600, "█") + gpu.setForeground(0x000000) + + gpu.set(66,22,tostring(fullCoreHeat)) + gpu.set(66,24,tostring(fullHullHeat)) + gpu.set(66,26,tostring(call(pwrController, "getFlux"))) + gpu.set(66,28,tostring(coldCoolantLevel)) + gpu.set(66,30,tostring(hotCoolantLevel)) + + gpu.set(99,15,tostring(hotCoolantOutflow)) + gpu.set(99,32,tostring(coldCoolantOutflow)) + + gpu.set(107,6," ") + gpu.set(107,6,tostring(call(pwrController, "getLevel"))) + + gpu.setBackground(0x000000) + gpu.setForeground(0xFFFFFF) + + if (coreHeatESTOP == true) and (fullCoreHeat) > 9000000 then + component.proxy(pwrController).setLevel(100) + end + + if (coolantLossESTOP == true) and (coldCoolantLevel) < 10000 then + component.proxy(pwrController).setLevel(100) + end + + os.sleep(0.25) +end + +event.ignore("touch", buttonPress) +event.ignore("drop", buttonRelease) + +gpu.fill(1,1,160,160," ") \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 34aa19f02..6cd397b09 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -66,6 +66,8 @@ achievement.radium.desc=SIE SIND GEFEUERT WEIL SIE RADIUM IN MEINEN KAFFEE GESCH achievement.radium=MISTER UNGLAUBLICH achievement.radPoison.desc=Leide an Strahlenkrankheit. achievement.radPoison=Yay, Strahlung! +achievement.redRoom.desc=? +achievement.redRoom=Die andere Seite achievement.sacrifice.desc=Sterbe im Feuer, aber irgendwie auch nicht. achievement.sacrifice=Sororizid achievement.selenium.desc=Lange nicht gesehen! @@ -88,6 +90,7 @@ armor.cap=Schadensobergrenze: %s armor.damageModifier=Modifikator: %s (%s) armor.electricJetpack=Ionentriebwerke armor.explosionImmune=Kann nur Schaden durch Explosionen nehmen +armor.fasterReload=Schnelleres Nachladen armor.fastFall=Schneller Fall armor.fireproof=Feuerfest armor.fullSetBonus=Set-Bonus: @@ -98,10 +101,12 @@ armor.gravity=Schwerkraftsmodifikator: %s armor.hardLanding=Harte Landung armor.ignoreLimit=Resistenz ist nicht limitiert armor.modifier=Genereller Schadensmodifikator: %s +armor.moreAmmo=Mehr Munition armor.nullDamage=Nichtet Schaden von %s armor.projectileProtection=Projektilmodifikator: %s armor.rocketBoots=Rocket boots armor.sprintBoost=VerstÀrkter Sprint +armor.stepSize=Schritthöhe: %s armor.thermal=WÀrmebildkamera armor.threshold=Schadensschwelle: %s armor.vats=Feinde-HUD @@ -114,6 +119,7 @@ armorMod.chestplates=Brustplatten armorMod.helmets=Helme armorMod.leggings=Beinschienen armorMod.insertHere=RÃŒstung zum Modifizieren einlegen... +armorMod.type.battery=Batterie armorMod.type.boots=Stiefel armorMod.type.chestplate=Brustplatte armorMod.type.cladding=BeschlÀge @@ -221,18 +227,21 @@ chem.GASOLINE=Benzinherstellung chem.GASOLINE_LEADED=Bleibenzin mischen chem.HELIUM3=Helium-3-Extraktion aus Mondgestein chem.KEVLAR=Kevlarverbundherstellung +chem.LAMINATE=Laminatherstellung chem.LPG=PetroleumgasverflÃŒssigung chem.LUBRICANT=Schmieröl mischen chem.NITAN=NITAN-Supertreibstoff mischen chem.NITRIC_ACID=SalpetersÀureherstellung chem.OIL_SAND=Teersand-Extraktion chem.OSMIRIDIUM_DEATH=Osmiridiumlösung-Herstellung +chem.PC=Polycarbonatherstellung chem.PC_ELECTROLYSIS=Kaliumchloridelektrolyse chem.PEROXIDE=Wasserstoffperoxidherstellung chem.PET=PET-Synthese chem.PETROIL_LEADED=Bleigemisch mischen chem.POLYMER=Polymersynthese chem.PUF6=Plutoniumhexafluoridproduktion +chem.PVC=Polyvinylchloridherstellung chem.RUBBER=Gummiherstellung chem.SAS3=Schrabidiumtrisulfatherstellung chem.SATURN=Saturnitherstellung @@ -253,6 +262,9 @@ chem.SF_PETROIL=Gemischverfestigung chem.SF_PETROLEUM=Petroleumgasverfestigung chem.SF_RECLAIMED=Verfestigung von wiederaufbereitetem Industrieöl chem.SF_SMEAR=Industrieölverfestigung +chem.SHELL_CHLORINE=Chlorgas-Artilleriegeschoss-Herstellung +chem.SHELL_MUSTARD=Senfgas-Artilleriegeschoss-Herstellung +chem.SHELL_PHOSGENE=Phosgen-Artilleriegeschoss-Herstellung chem.SOLID_FUEL=Festbrennstoffherstellung chem.SOLVENT=Organisches Lösungsmittel mischen chem.STEAM=Wasser kochen @@ -260,6 +272,7 @@ chem.SULFURIC_ACID=SchwefelsÀureherstellung chem.TATB=TATB-Synthese chem.TEL=TEL mischen chem.TEST=Test +chem.THORIUM_SALT=Thoriumsalz-Anreicherung chem.TNT=TNT-Synthese chem.UF6=Uranhexafluoridproduktion chem.VIT_GAS=Gas-AtommÃŒllvitrifizierung @@ -274,6 +287,7 @@ container.amsLimiter=AMS-Stabilisator (Deko) container.anvil=Stufe %s Amboss container.arcFurnace=Lichtbogenofen container.armorTable=RÃŒstungsmodifikationstisch +container.ashpit=Aschekasten container.assembler=Fertigungsmaschine container.autocrafter=Automatische Werkbank container.barrel=Fass @@ -293,6 +307,7 @@ container.craneUnboxer=Förderband-Entpacker container.crateDesh=Deshkiste container.crateIron=Eisenkiste container.crateSteel=Stahlkiste +container.crateTemplate=Vorlagenkiste container.crateTungsten=Wolframkiste container.crystallizer=Erzauflöser container.cyclotron=Zyklotron @@ -303,13 +318,19 @@ container.dfcStabilizer=DFC-Stabilisator container.dfc_core=Dunkler Fusionskern container.diFurnace=Hochofen container.diFurnaceRTG=Atomarer Hochofen +container.droneCrate=Transportdronen-Kiste +container.droneDock=Dock +container.droneProvider=Anbieter +container.droneRequester=Abnehmer container.electricFurnace=Elektrischer Ofen container.epress=Hydraulische Presse +container.exposureChamber=Bestrahlungskammer container.factoryAdvanced=Fortgeschrittene Fabrik container.factoryTitanium=Einfache Fabrik container.fluidtank=Tank container.forceField=Kraftfeldgenerator container.frackingTower=Hydraulischer Frackingturm +container.furnaceBrick=Ziegelofen container.furnaceCombination=Kombinationsofen container.furnaceIron=Eiserner Ofen container.furnaceSteel=Stahlofen @@ -323,11 +344,16 @@ container.heaterFirebox=FeuerbÃŒchse container.heaterHeatex=WÀrmetauscher container.heaterOilburner=Brenner container.heaterOven=Heizofen +container.hydrotreater=Hydrotreater container.iGenerator=Industrieller Generator container.keyForge=Schlossertisch -container.launchPad=Raketenabschussrampe +container.launchPad=Startrampe +container.launchPadRusted=Startrampe container.launchTable=Große Startrampe container.leadBox=SicherheitsbehÀlter +container.machineAmmoPress=Munitionspresse +container.machineArcWelder=Lichtbogenschweißer +container.machineArcFurnaceLarge=Lichtbogenofen container.machineBoiler=ÖlwÀrmer container.machineCMB=CMB-Stahl Hochofen container.machineCoal=Verbrennungsgenerator @@ -336,18 +362,27 @@ container.machineCompressor=Kompressor container.machineCrucible=Schmelztiegel container.machineDiesel=Dieselgenerator container.machineElectricBoiler=Elektrischer ÖlwÀrmer +container.machineElectrolyser=ElectrolysegerÀt container.machineFEL=FEL +container.machineFunnel=Kombinationstrichter +container.machineICF=ICF +container.machineICFPress=ICF-Brennstoffpellet-Fabrikant container.machineITER=Kernfusionsreaktor container.machineLargeTurbine=Industrielle Dampfturbine container.machineLiquefactor=VerflÃŒssiger container.machineMixer=Industrieller Mixer +container.machineOreSlopper=B.E.M. +container.machinePyroOven=Pyrolyseofen container.machineRefinery=Ölraffinerie +container.machineRotaryFurnace=Rotationshochofen container.machineSelenium=Hochleistungs-Sternmotor container.machineShredder=Brecher container.machineSILEX=SILEX +container.machineSolderingStation=Lötstation container.machineSolidifier=Verfestiger container.machineTurbine=Dampfturbine container.machineTurbofan=Turbofan +container.machineWoodBurner=Brennholzgenerator container.machine_schrabidium_transmutator=Schrabidium-TransmutationsgerÀt container.massStorage=Speicher container.microwave=Mikrowelle @@ -392,6 +427,7 @@ container.reactorSmall=Atomreaktor container.reix=Rei-X Hauptrechner container.rtg=Radioisotopengenerator container.rtgFurnace=RTG-Ofen +container.rttyCounter=Redstone-over-Radio ItemzÀhler container.rttyReceiver=Redstone-over-Radio EmpfÀnger container.rttySender=Redstone-over-Radio Sender container.safe=Panzerschrank @@ -423,12 +459,16 @@ container.watzPowerplant=Watzkraftwerk container.zirnox=ZIRNOX Atomreaktor crucible.aa=Herstellung - Fortgeschrittene Legierung -crucible.cdalloy=Herstellung Cadmiumstahl -crucible.cmb=Herstellung CMB-Stahl +crucible.abronze=Herstellung - Arsennronze +crucible.bbronze=Herstellung - Bismutbronze +crucible.bscco=Herstellung - BSCCO +crucible.cdalloy=Herstellung - Cadmiumstahl +crucible.cmb=Herstellung - CMB-Stahl crucible.ferro=Herstellung - Ferrouran crucible.hematite=Herstellung - Eisen aus HÀmatit crucible.hss=Herstellung - Schnellarbeitsstahl crucible.malachite=Herstellung - Kupfer aus Malachit +crucible.magtung=Herstellung - Magnetisierter Wolfram crucible.redcopper=Herstellung - Roter Kupfer crucible.steel=Herstellung - Stahl crucible.steelMeteoric=Herstellung - Stahl aus Meteoriteneisen @@ -436,6 +476,17 @@ crucible.steelPig=Herstellung - Stahl aus Roheisen crucible.steelWrought=Herstellung - Stahl aus Schmiedeeisen crucible.tcalloy=Herstellung - Technetiumstahl +damage.inset=Resistenz wenn in Set getragen: +damage.item=Resistenz wenn getragen: +damage.category.EXPL=Explosion +damage.category.FIRE=Feuer +damage.category.PROJ=Projektil +damage.exact.drown=Ertrinken +damage.exact.fall=Fallschaden +damage.exact.LASER=Laser +damage.exact.onFire=Nachbrennen +damage.other=Andere + death.attack.acid=%1$s fiel in SÀure. death.attack.acidPlayer=%1$s wurde von %2$s aufgelöst. death.attack.ams=%1$s wurde in tödlichen Teilchen gebadet, die von der Menschheit erst benannt werden mÃŒssen. @@ -443,6 +494,7 @@ death.attack.amsCore=%1$s wurde vom Feuer einer SingularitÀt verdampft. death.attack.asbestos=%1$s hat sich fÃŒr finanzielle EntschÀdigung qualifiziert. death.attack.bang=%1$s wurde in mundgerechte StÃŒcke zerfetzt. death.attack.blackhole=%1$s wurde spaghettifiziert. +death.attack.blacklung=%1$s starb an Kohlestaublunge. death.attack.blender=%1$s wurde in kleine, mundgerechte StÃŒcke geschnitten. death.attack.boat=%1$s wurde von einem Schiff erschlagen. death.attack.boil=%1$s wurde von %2$s lebend gekocht. @@ -492,8 +544,25 @@ death.attack.tau=%1$s wurde von %2$s mit negativ geladenen Tauonen durchsiebt. death.attack.tauBlast=%1$s lud die XVL1456 zu lange auf und wurde in StÃŒcke gerissen. death.attack.teleporter=%1$s wurde ins Nichts teleportiert. +death.sedna.electric=%1$s wurde frittiert. +death.sedna.electric.attacker=%1$s wurde von %2$s frittiert. +death.sedna.explosive=%1$s wurde gesprengt. +death.sedna.explosive.attacker=%1$s wurde von %2$s gesprengt. +death.sedna.fire=%1$s wurde eingeÀschert. +death.sedna.fire.attacker=%1$s wurde von %2$s eingeÀschert. +death.sedna.laser=%1$s wurde pulverisiert. +death.sedna.laser.attacker=%1$s wurde von %2$s pulverisiert. +death.sedna.microwave=%1$s wurde gekocht. +death.sedna.microwave.attacker=%1$s wurde von %2$s gekocht. +death.sedna.subatomic=%1$s wurde atomisiert. +death.sedna.subatomic.attacker=%1$s wurde von %2$s atomisiert. +death.sedna.other=%1$s wurde getötet. +death.sedna.other.attacker=%1$s wurde von %2$s getötet. +death.sedna.physical=%1$s wurde erschossen. +death.sedna.physical.attacker=%1$s wurde von %2$s erschossen. + desc.item.rtgHeat=Hitzelevel: %s -desc.gui.rtgBFurnace.desc=Bönitigt mindestens 15 Hitze um zu starten$Je mehr Hitze, desto schneller der Vorgang$Hitze ÃŒber dem maximalen Level hat keinen Effekt$Gold-198 kann zu Quecksilber zerfallen +desc.gui.rtgBFurnace.desc=Benötigt mindestens 15 Hitze um zu starten$Je mehr Hitze, desto schneller der Vorgang$Hitze ÃŒber dem maximalen Level hat keinen Effekt$Gold-198 kann zu Quecksilber zerfallen desc.gui.rtgBFurnace.heat=§eHitzelevel: %s desc.gui.rtgBFurnace.pellets=Akzeptierte Pellets: desc.gui.rtgBFurnace.pellet=%s (%s Hitze) @@ -512,9 +581,11 @@ entity.entity_glyphid_blaster.name=Glyphid-Blaster entity.entity_glyphid_bombardier.name=Glyphid-Bombardierer entity.entity_glyphid_brawler.name=Glyphid-SchlÀger entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_digger.name=Glyphid-GrÀber entity.entity_glyphid_nuclear.name=Der dicke Johnson entity.entity_glyphid_scout.name=Glyphid-SpÀher entity.entity_ntm_fbi.name=FBI Agent +entity.entity_ntm_fbi_drone.name=FBI Drone entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff entity.entity_mob_hunter_chopper.name=Jagdschrauber @@ -524,6 +595,9 @@ entity.entity_mob_nuclear_creeper.name=Nuklearer Creeper entity.entity_mob_phosgene_creeper.name=Phosgen-Creeper entity.entity_mob_tainted_creeper.name=Verseuchter Creeper entity.entity_mob_volatile_creeper.name=Instabiler Creeper +entity.entity_parasite_maggot.name=Parasitische Made +entity.entity_pigeon.name=Taube +entity.entity_plastic_bag.name=PlastiktÃŒte entity.entity_taint_crab.name=Verseuchte Krabbe entity.entity_tesla_crab.name=Tesla-Krabbe entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime @@ -532,12 +606,19 @@ entity.hbm.entity_bullet.name=Patrone entity.hbm.entity_rocket.name=Rakete entity.hbm.entity_schrabnel.name=Schrabnel +excavator.crusher=Brecher +excavator.drill=Bohrer +excavator.silktouch=Behutsamkeit +excavator.veinminer=Erzadern-Miner +excavator.walling=Verschalung + flare.ignition=ZÃŒndung flare.valve=Flussventil fluid.acid_fluid=SÀure fluid.corium_fluid=Corium fluid.mud_fluid=Giftiger Schlamm +fluid.rad_lava_fluid=Vulkanische Lava fluid.schrabidic_fluid=Schrabidische SÀure fluid.toxic_fluid=Stereotypischer grÃŒner Schleim fluid.volcanic_lava_fluid=Vulkanische Lava @@ -569,6 +650,7 @@ hadron.error_diode_collision=Fehler 0x08 [DC] hadron.error_branching_turn=Fehler 0x09 [BT] hadron.hopper0=§eNormalmodus:$Alle Items werden beschleunigt. hadron.hopper1=§eTrichtermodus:$Ein Item bleibt immer ÃŒbrig. +hadron.hopper2=§eEinzelmodus:$Erlaubt nur ein Item pro Slot. hadron.idle=Leerlauf hadron.modeCircular=§eRingbeschleuniger:$Magnete bilden eine Schleife.$Schaltet mehr Rezepte frei. hadron.modeLine=§eLinearbeschleuniger:$Beschleuniger ended mit Analysekammer.$Weniger Rezepte. @@ -603,11 +685,10 @@ hbm.key.craneMoveDown=Kran rÃŒckwÀrts hbm.key.craneMoveLeft=Kran nach links hbm.key.craneMoveRight=Kran nach rechts hbm.key.craneMoveUp=Kran vorwÀrts -hbm.key.toggleBack=Rucksack umschalten +hbm.key.toggleBack=Jetpack umschalten hbm.key.toggleHUD=HUD umschalten hbm.key.reload=Nachladen -hbmfluid.acid=Wasserstoffperoxid hbmfluid.amat=Antimaterie hbmfluid.aromatics=Aromatische Kohlenwasserstoffe hbmfluid.aschrab=Antischrabidium @@ -633,6 +714,7 @@ hbmfluid.coaloil=Kohleöl hbmfluid.coolant=KÃŒhlflÃŒssigkeit hbmfluid.coolant_hot=Heiße KÃŒhlflÃŒssigkeit hbmfluid.crackoil=Crack-Öl +hbmfluid.crackoil_ds=Entschwefeltes Crack-Öl hbmfluid.cryogel=Kryogel hbmfluid.death=Osmiridiumlösung hbmfluid.deuterium=Deuterium @@ -646,6 +728,7 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Endersaft hbmfluid.fishoil=Fischöl hbmfluid.fracksol=Frackinglösung +hbmfluid.fullerene=Fullerenlösung hbmfluid.gas=Erdgas hbmfluid.gas_coker=Koker-Gas hbmfluid.gasoline=Benzin @@ -655,17 +738,24 @@ hbmfluid.heatingoil_vacuum=Schweres Heizöl hbmfluid.heavyoil=Schweröl hbmfluid.heavyoil_vacuum=Vakuum-Schweröl hbmfluid.heavywater=Schweres Wasser +hbmfluid.heavywater_hot=Heißes Schweres Wasser hbmfluid.helium3=Helium-3 +hbmfluid.helium4=Helium-4 hbmfluid.hotcrackoil=Heißes Crack-Öl +hbmfluid.hotcrackoil_ds=Entschwefeltes Heißes Crack-Öl hbmfluid.hotoil=Heißes Rohöl +hbmfluid.hotoil_ds=Entschwefeltes Heißes Rohöl hbmfluid.hotsteam=Dichter Dampf hbmfluid.hydrogen=FlÃŒssiger Wasserstoff hbmfluid.iongel=Ionengel hbmfluid.kerosene=Kerosin hbmfluid.kerosene_reform=DÃŒsentreibstoff hbmfluid.lava=Lava +hbmfluid.lead=FlÃŒssiges Blei +hbmfluid.lead_hot=Heißes flÃŒssiges Blei hbmfluid.lightoil=Leichtöl hbmfluid.lightoil_crack=Crack-Leichtöl +hbmfluid.lightoil_ds=Entschwefeltes Leichtöl hbmfluid.lightoil_vacuum=Vakuum-Leichtöl hbmfluid.lpg=LPG hbmfluid.lubricant=Schmiermittel @@ -676,6 +766,7 @@ hbmfluid.mustardgas=Senfgas hbmfluid.naphtha=Mitteldestillat hbmfluid.naphtha_coker=Koker-Naphtha hbmfluid.naphtha_crack=Crack-Mitteldestillat +hbmfluid.naphtha_ds=Entschwefeltes Mitteldestillat hbmfluid.nitan=NITAN© 100 Oktan Supertreibstoff hbmfluid.nitric_acid=SalpetersÀure hbmfluid.nitroglycerin=Nitroglycerin @@ -685,6 +776,7 @@ hbmfluid.oil_coker=Koker-Öl hbmfluid.oxyhydrogen=Knallgas hbmfluid.oxygen=FlÃŒssiger Sauerstoff hbmfluid.pain=Pandemonium(III)tantalit-Lösung +hbmfluid.peroxide=Wasserstoffperoxid hbmfluid.petroil=Gemisch hbmfluid.petroil_leaded=Bleigemisch hbmfluid.petroleum=Petroleumgas @@ -694,7 +786,7 @@ hbmfluid.plasma_dh3=Deuterium-Helium-3-Plasma hbmfluid.plasma_dt=Deuterium-Tritium-Plasma hbmfluid.plasma_hd=Wasserstoff-Deuterium-Plasma hbmfluid.plasma_ht=Wasserstoff-Tritium-Plasma -hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma +hbmfluid.plasma_xm=Helium-4-Sauerstoff-Plasma hbmfluid.potassium_chloride=Kaliumchlorid-Lösung hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.radiosolvent=Hochleistungs-Lösungsmittel @@ -706,19 +798,30 @@ hbmfluid.salient=Saftiges GrÃŒn hbmfluid.sas3=Schrabidiumtrisulfat hbmfluid.schrabidic=Schrabidische SÀure hbmfluid.seedslurry=Saatgemisch +hbmfluid.slop=Erzpampe hbmfluid.smear=Industrieöl +hbmfluid.smoke=Abgas +hbmfluid.smoke_leaded=Bleiabgas +hbmfluid.smoke_poison=Giftige Abgase +hbmfluid.sodium=FlÃŒssiges Natrium +hbmfluid.sodium_hot=Heißes flÃŒssiges Natrium hbmfluid.solvent=Lösungsmittel hbmfluid.sourgas=Saures Gas hbmfluid.spentsteam=Niedrigdruckdampf hbmfluid.steam=Dampf +hbmfluid.stellar_flux=Sternenflux hbmfluid.sulfuric_acid=SchwefelsÀure hbmfluid.sunfloweroil=Sonnenblumenkernöl hbmfluid.superhotsteam=Superverdichteter Dampf hbmfluid.syngas=Synthesegas +hbmfluid.thorium_salt=FlÃŒssiges Thoriumsalz +hbmfluid.thorium_salt_depleted=Erschöpftes flÃŒssiges Thoriumsalz +hbmfluid.thorium_salt_hot=Heißes flÃŒssiges Thoriumsalz hbmfluid.tritium=Tritium hbmfluid.uf6=Uranhexafluorid hbmfluid.ultrahotsteam=Ultraverdichteter Dampf hbmfluid.unsaturateds=UngesÀttigte Kohlenwasserstoffe +hbmfluid.vitriol=Vitriol hbmfluid.wastefluid=FlÃŒssiger AtommÃŒll hbmfluid.wastegas=Gasförmiger AtommÃŒll hbmfluid.water=Wasser @@ -735,15 +838,21 @@ hbmmat.americiumrg=ReaktorfÀhiges Armericium hbmmat.americium241=Americium-241 hbmmat.americium242=Americium-242 hbmmat.arsenic=Arsen +hbmmat.arsenicbronze=Arsenbronze hbmmat.asbestos=Asbest hbmmat.bakelite=Bakelit hbmmat.beryllium=Beryllium hbmmat.bismuth=Bismut +hbmmat.bismuthbronze=Bismutbronze +hbmmat.bone=Elfenbein hbmmat.borax=Borax hbmmat.boron=Bor +hbmmat.bscco=BSCCO hbmmat.cadmium=Cadmium +hbmmat.calcium=Kalzium hbmmat.carbon=Kohlenstoff hbmmat.cdalloy=Cadmiumstahl +hbmmat.chlorocalcite=Chlorokalzit hbmmat.cinnabar=Zinnober hbmmat.cmbsteel=Combinestahl hbmmat.coal=Kohle @@ -753,8 +862,10 @@ hbmmat.cobalt60=Kobalt-60 hbmmat.coltan=Coltan hbmmat.copper=Kupfer hbmmat.desh=Desh +hbmmat.diamond=Diamant hbmmat.dineutronium=Dineutronium hbmmat.durasteel=Schnellarbeitsstahl +hbmmat.emerald=Smaragd hbmmat.euphemium=Euphemium hbmmat.ferrouranium=Ferrouran hbmmat.fiberglass=Fiberglas @@ -765,8 +876,10 @@ hbmmat.gold=Gold hbmmat.gold198=Gold-198 hbmmat.graphene=Graphen hbmmat.graphite=Graphit +hbmmat.gunmetal=Maschinenmetall hbmmat.hematite=HÀmatit hbmmat.iron=Eisen +hbmmat.lanthanum=Lanthan hbmmat.lapis=Lapis Lazuli hbmmat.lead=Blei hbmmat.lead209=Blei-209 @@ -777,6 +890,8 @@ hbmmat.magnetizedtungsten=Magnetisierter Wolfram hbmmat.malachite=Malachit hbmmat.meteoriciron=Meteoriteneisen hbmmat.mingrade=Minecraft-Kupfer +hbmmat.molysite=Molysit +hbmmat.neodymium=Neodym hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niob hbmmat.obsidian=Obsidian @@ -790,8 +905,11 @@ hbmmat.plutonium240=Plutonium-240 hbmmat.plutonium241=Plutonium-241 hbmmat.plutoniumrg=ReaktorfÀhiges Plutonium hbmmat.polonium210=Polonium-210 +hbmmat.polycarbonate=Hartplastik hbmmat.polymer=Polymer +hbmmat.pvc=Polyvinylchlorid hbmmat.radium226=Radium-226 +hbmmat.rareearth=Seltenerden hbmmat.redphosphorus=Roter Phosphor hbmmat.redstone=Redstone hbmmat.rubber=Gummi @@ -800,11 +918,15 @@ hbmmat.saturnite=Saturnit hbmmat.schrabidate=Eisenschrabidat hbmmat.schrabidium=Schrabidium hbmmat.schraranium=Schraranium +hbmmat.silicon=Silizium hbmmat.slag=Schlacke +hbmmat.sodalite=Sodalit +hbmmat.sodium=Natrium hbmmat.solinium=Solinium hbmmat.starmetal=Sternenmetall hbmmat.steel=Stahl hbmmat.stone=Stein +hbmmat.strontium=Strontium hbmmat.sulfur=Schwefel hbmmat.tantalum=Tantal hbmmat.tcalloy=Technetiumstahl @@ -817,9 +939,12 @@ hbmmat.uranium233=Uran-233 hbmmat.uranium235=Uran-235 hbmmat.uranium238=Uran-238 hbmmat.watzmud=Giftiger Schlamm +hbmmat.weaponsteel=Waffenstahl hbmmat.whitephosphorus=Weißer Phosphor +hbmmat.wood=Holz hbmmat.workersalloy=Desh hbmmat.wroughtiron=Schmiedeeisen +hbmmat.zirconium=Zirkonium matshape.block=%s Block matshape.blocks=%s Blöcke @@ -830,6 +955,20 @@ matshape.nuggets=%s Nuggets matshape.quantum=%s Quantum matshape.quanta=%s Quanta +icffuel.beryllium=Beryllium +icffuel.boron=Bor +icffuel.carbon=Kohlenstoff +icffuel.calcium=Kalzium +icffuel.chlorine=Chlor +icffuel.deuterium=Deuterium +icffuel.helium3=Helium-3 +icffuel.helium4=Helium-4 +icffuel.hydrogen=Wasserstoff +icffuel.lithium=Lithium +icffuel.oxygen=Sauerstoff +icffuel.sodium=Natrium +icffuel.tritium=Tritium + info.asbestos=Meine Lunge brennt. info.coaldust=Das Atmen fÀllt mir schwer. info.coil=SpulenstÀrke @@ -971,6 +1110,9 @@ item.ammo_arty_phosgene.name=16" Artilleriegranate (Phosgen) item.ammo_arty_phosphorus.name=16" Phosphor-Artilleriegranate item.ammo_arty_phosphorus_multi.name=16" Mehrfach-Phosphor-Artilleriegranate item.ammo_cell.name=Energiezelle +item.ammo_coilgun.name=Wolframkugel +item.ammo_coilgun_du.name=Ferrourankugel +item.ammo_coilgun_rubber.name=Gummikugel item.ammo_container.name=MunitionsbehÀlter item.ammo_dart.name=Plastikdart (Withernd) item.ammo_dart_nerf.name=NERF-Dart @@ -993,6 +1135,7 @@ item.ammo_grenade_finned.name=40mm Granate (GeflÃŒgelt) item.ammo_grenade_he.name=40mm Granate (HE) item.ammo_grenade_incendiary.name=40mm Granate (Brand) item.ammo_grenade_kampf.name=40mm Rakete +item.ammo_grenade_leadburster.name=40mm Leadburster item.ammo_grenade_nuclear.name=40mm Granate (ПрОвет) item.ammo_grenade_phosphorus.name=40mm Granate (WP) item.ammo_grenade_sleek.name=40mm Granate (IF-F&E) @@ -1038,6 +1181,94 @@ item.ammo_shell.name=240mm Geschoss item.ammo_shell_apfsds_du.name=240mm APFSDS-DU item.ammo_shell_apfsds_t.name=240mm APFSDS-T item.ammo_shell_explosive.name=240mm HE-Geschoss +item.ammo_secret.bmg50_equestrian.name=.50 BMG Zerstörer +item.ammo_secret.folly_nuke.name=Silberne Kugel, Atomar +item.ammo_secret.folly_sm.name=Silberne Kugel +item.ammo_secret.g12_equestrian.name=Kaliber 12 GleisnÀgel +item.ammo_secret.m44_equestrian.name=.44 Magnum SchÀdelsprenger +item.ammo_standard.b75.name=.75 Bolzen +item.ammo_standard.b75_exp.name=.75 Bolzen (Explosiv) +item.ammo_standard.b75_inc.name=.75 Bolzen (Brand) +item.ammo_standard.bmg50_ap.name=.50 BMG Patrone (Panzerbrechend) +item.ammo_standard.bmg50_du.name=.50 BMG Patrone (Urangeschoss) +item.ammo_standard.bmg50_fmj.name=.50 BMG Patrone (Vollmantelgeschoss) +item.ammo_standard.bmg50_jhp.name=.50 BMG Patrone (Hohlspitz) +item.ammo_standard.bmg50_sp.name=.50 BMG Patrone (Teilmantelgeschoss) +item.ammo_standard.capacitor.name=Kondensator +item.ammo_standard.capacitor_ir.name=Capacitor (niedrige WellenlÀnge) +item.ammo_standard.capacitor_overcharge.name=Kondensator (Überladung) +item.ammo_standard.coil_ferrouranium.name=Ferrourankugel +item.ammo_standard.coil_tungsten.name=Wolframkugel +item.ammo_standard.flame_balefire.name=Flammenwerferbrennstoff, Balefire +item.ammo_standard.flame_diesel.name=Flammenwerferbrennstoff, Diesel +item.ammo_standard.flame_gas.name=Flammenwerferbrennstoff, Gas +item.ammo_standard.flame_napalm.name=Flammenwerferbrennstoff, Napalm +item.ammo_standard.g10.name=Kaliber 10 Schrot +item.ammo_standard.g10_du.name=Kaliber 10 Uranschrot +item.ammo_standard.g10_shrapnel.name=Kaliber 10 Schrapnell-Schrot +item.ammo_standard.g10_slug.name=Kaliber 10 Laufgeschoss +item.ammo_standard.g12.name=Kaliber 12 Schrot +item.ammo_standard.g12_anthrax.name=Kaliber 12 Anthrax +item.ammo_standard.g12_bp.name=Kaliber 12 Schwarzpulver +item.ammo_standard.g12_bp_magnum.name=Kaliber 12 Schwarzpulver Magnum +item.ammo_standard.g12_bp_slug.name=Kaliber 12 Schwarzpulver Laufgeschoss +item.ammo_standard.g12_explosive.name=Kaliber 12 Explosivgeschoss +item.ammo_standard.g12_flechette.name=Kaliber 12 Flechett +item.ammo_standard.g12_magnum.name=Kaliber 12 Magnum +item.ammo_standard.g12_phosphorus.name=Kaliber 12 Phosphor +item.ammo_standard.g12_slug.name=Kaliber 12 Laufgeschoss +item.ammo_standard.g26_flare.name=26mm Signalpatrone +item.ammo_standard.g26_flare_supply.name=26mm Signalpatrone (Luftpost: Nachschub) +item.ammo_standard.g26_flare_weapon.name=26mm Signalpatrone (Luftpost: Waffen) +item.ammo_standard.g40_demo.name=40mm Abrissgranate +item.ammo_standard.g40_he.name=40mm Sprenggranate +item.ammo_standard.g40_heat.name=40mm Hohlladungsgranate +item.ammo_standard.g40_inc.name=40mm Brandgranate +item.ammo_standard.g40_phosphorus.name=40mm Weiße Phosphorgranate +item.ammo_standard.m357_ap.name=.357 Magnumkugel (Panzerbrechend) +item.ammo_standard.m357_bp.name=.357 Magnumkugel (Schwarzpulver) +item.ammo_standard.m357_express.name=.357 Magnumkugel (VMG Express) +item.ammo_standard.m357_fmj.name=.357 Magnumkugel (Vollmantelgeschoss) +item.ammo_standard.m357_jhp.name=.357 Magnumkugel (Hohlspitz) +item.ammo_standard.m357_sp.name=.357 Magnumkugel (Teilmantelgeschoss) +item.ammo_standard.m44_ap.name=.44 Magnumkugel (Panzerbrechend) +item.ammo_standard.m44_bp.name=.44 Magnumkugel (Schwarzpulver) +item.ammo_standard.m44_express.name=.44 Magnumkugel (VMG Express) +item.ammo_standard.m44_fmj.name=.44 Magnumkugel (Vollmantelgeschoss) +item.ammo_standard.m44_jhp.name=.44 Magnumkugel (Hohlspitz) +item.ammo_standard.m44_sp.name=.44 Magnumkugel (Teilmantelgeschoss) +item.ammo_standard.nuke_demo.name=Miniatombombe, Abriss +item.ammo_standard.nuke_high.name=Miniatombombe, hoher Ertrag +item.ammo_standard.nuke_hive.name=Raketenschwarm +item.ammo_standard.nuke_standard.name=Miniatombombe +item.ammo_standard.nuke_tots.name=Miniatombombe, kleine Knirpse +item.ammo_standard.p22_ap.name=.22 lfB Patrone (Panzerbrechend) +item.ammo_standard.p22_fmj.name=.22 lfB Patrone (Vollmantelgeschoss) +item.ammo_standard.p22_jhp.name=.22 lfB Patrone (Hohlspitz) +item.ammo_standard.p22_sp.name=.22 lfB Patrone (Teilmantelgeschoss) +item.ammo_standard.p9_ap.name=9mm Patrone (Panzerbrechend) +item.ammo_standard.p9_fmj.name=9mm Patrone (Vollmantelgeschoss) +item.ammo_standard.p9_jhp.name=9mm Patrone (Hohlspitz) +item.ammo_standard.p9_sp.name=.9mm Patrone (Teilmantelgeschoss) +item.ammo_standard.r556_ap.name=5,56mm Patrone (Panzerbrechend) +item.ammo_standard.r556_fmj.name=5,56mm Patrone (Vollmantelgeschoss) +item.ammo_standard.r556_jhp.name=5,56mm Patrone (Hohlspitz) +item.ammo_standard.r556_sp.name=5,56mm Patrone (Teilmantelgeschoss) +item.ammo_standard.r762_ap.name=7,62mm Patrone (Panzerbrechend) +item.ammo_standard.r762_du.name=7,62mm Patrone (Urangeschoss) +item.ammo_standard.r762_fmj.name=7,62mm Patrone (Vollmantelgeschoss) +item.ammo_standard.r762_jhp.name=7,62mm Patrone (Hohlspitz) +item.ammo_standard.r762_sp.name=7,62mm Patrone (Teilmantelgeschoss) +item.ammo_standard.rocket_demo.name=Abrissrakete +item.ammo_standard.rocket_he.name=Explosivrakete +item.ammo_standard.rocket_heat.name=Hohlladungsrakete +item.ammo_standard.rocket_inc.name=Brandrakete +item.ammo_standard.rocket_phosphorus.name=Weiße Phosphorrakete +item.ammo_standard.stone.name=Kugel und Pulver +item.ammo_standard.stone_ap.name=Feuerstein und Pulver +item.ammo_standard.stone_iron.name=Eisenkugel und Pulver +item.ammo_standard.stone_shot.name=Schrot und Pulver +item.ammo_standard.tau_uranium.name=Erschöpfte Uran-235-Kiste item.ammo_stinger_rocket.name=Stinger-Rakete item.ammo_stinger_rocket_he.name=Stinger-Rakete (HE) item.ammo_stinger_rocket_incendiary.name=Stinger-Rakete (Brand) @@ -1071,13 +1302,23 @@ item.ams_lens.name=Stabilisierer-Linse item.ams_muzzle.name=Strahlenemissions-MÃŒndung item.analyzer.name=Analysierer item.anchor_remote.name=RÃŒckrufgerÀt -item.antiknock.name=Tetraethyblei-Antiklopfmittel item.apple_euphemium.name=Euphemiumapfel item.apple_lead.name=Bleiapfel item.apple_schrabidium.name=Schrabidiumapfel item.arc_electrode.name=Graphitelektrode +item.arc_electrode.desh.name=Deshelektrode +item.arc_electrode.graphite.name=Graphitelektrode +item.arc_electrode.lanthanium.name=Lanthanelektrode +item.arc_electrode.saturnite.name=Saturnitelektrode item.arc_electrode_burnt.name=Geschmolzene Elektrode +item.arc_electrode_burnt.desh.name=Geschmolzene Deshelektrode +item.arc_electrode_burnt.graphite.name=Geschmolzene Graphitelektrode +item.arc_electrode_burnt.lanthanium.name=Geschmolzene Lanthanelektrode +item.arc_electrode_burnt.saturnite.name=Geschmolzene Saturnitelektrode item.arc_electrode_desh.name=Desh-Elektrode +item.armor_battery.name=PowerrÃŒstung-Akkusatz +item.armor_battery_mk2.name=PowerrÃŒstung-Akkusatz Mk2 +item.armor_battery_mk3.name=PowerrÃŒstung-Akkusatz Mk3 item.armor_polish.name=ShiningArmor™ RÃŒstungspolitur item.asbestos_boots.name=Hitzeschutzstiefel item.asbestos_cloth.name=Hitzeschutzanzugsstoff @@ -1116,6 +1357,7 @@ item.balefire_and_steel.name=Balefire-Zeug item.balefire_scrambled.name=RÃŒhr-Balefire-Ei item.ball_dynamite.name=Dynamit item.ball_fireclay.name=Schamott +item.ball_resin.name=Kautschuk item.ball_tatb.name=TATB item.ball_tnt.name=TNT item.ballistic_gauntlet.name=Ballistischer Panzerhandschuh @@ -1163,6 +1405,40 @@ item.battery_su.name=Einwegbatterie item.battery_su_l.name=Große Einwegbatterie item.battery_trixite.name=Billige Spark-Batterie-Nachmache item.bdcl.name=BDCL +item.bedrock_ore.grade.base.name=%s-Bedrockerz +item.bedrock_ore.grade.base_roasted.name=Geröstetes %s-Bedrockerz +item.bedrock_ore.grade.base_washed.name=Gewaschenes %s-Bedrockerz +item.bedrock_ore.grade.primary.name=%s-Bedrockerz, PrimÀrfraktion +item.bedrock_ore.grade.primary_roasted.name=%s-Bedrockerz, geröstete PrimÀrfraktion +item.bedrock_ore.grade.primary_sulfuric.name=%s-Bedrockerz, schwefelige PrimÀrfraktion +item.bedrock_ore.grade.primary_nosulfuric.name=%s-Bedrockerz, geteilte schwefelige PrimÀrfraktion +item.bedrock_ore.grade.primary_solvent.name=%s-Bedrockerz, gelöste PrimÀrfraktion +item.bedrock_ore.grade.primary_nosolvent.name=%s-Bedrockerz, geteilte gelöste PrimÀrfraktion +item.bedrock_ore.grade.primary_rad.name=%s-Bedrockerz, gereinigte PrimÀrfraktion +item.bedrock_ore.grade.primary_norad.name=%s-Bedrockerz, geteilte gereinigte PrimÀrfraktion +item.bedrock_ore.grade.primary_first.name=%s-Bedrockerz, PrimÀrfraktion, hohe Gewichtung +item.bedrock_ore.grade.primary_second.name=%s-Bedrockerz, PrimÀrfraktion, niedrige Gewichtung +item.bedrock_ore.grade.crumbs.name=%s-Bedrockerzkrumen +item.bedrock_ore.grade.sulfuric_byproduct.name=%s-Bedrockerz, schwefeliges Nebenprodukt +item.bedrock_ore.grade.sulfuric_roasted.name=%s-Bedrockerz, geröstetes schwefeliges Nebenprodukt +item.bedrock_ore.grade.sulfuric_arc.name=%s-Bedrockerz, gebranntes schwefeliges Nebenprodukt +item.bedrock_ore.grade.sulfuric_washed.name=%s-Bedrockerz, gewaschenes schwefeliges Nebenprodukt +item.bedrock_ore.grade.solvent_byproduct.name=%s-Bedrockerz, gelöstes Nebenprodukt +item.bedrock_ore.grade.solvent_roasted.name=%s-Bedrockerz, geröstetes gelöstes Nebenprodukt +item.bedrock_ore.grade.solvent_arc.name=%s-Bedrockerz, gebranntes gelöstes Nebenprodukt +item.bedrock_ore.grade.solvent_washed.name=%s-Bedrockerz, gewaschenes gelöstes Nebenprodukt +item.bedrock_ore.grade.rad_byproduct.name=%s-Bedrockerz, gereinigtes Nebenprodukt +item.bedrock_ore.grade.rad_roasted.name=%s-Bedrockerz, geröstetes gereinigtes Nebenprodukt +item.bedrock_ore.grade.rad_arc.name=%s-Bedrockerz, gebranntes gereinigtes Nebenprodukt +item.bedrock_ore.grade.rad_washed.name=%s-Bedrockerz, gewaschenes gereinigtes Nebenprodukt +item.bedrock_ore.type.actinide.name=Actinoide +item.bedrock_ore.type.crystal.name=Kristall +item.bedrock_ore.type.heavy.name=Schwermetall +item.bedrock_ore.type.light.name=Leichtmetall +item.bedrock_ore.type.nonmetal.name=Nichtmetall +item.bedrock_ore.type.rare.name=Seltenerden +item.bedrock_ore_base.name=Rohes Bedrockerz +item.bedrock_ore_fragment.name=%s-Bedrockerzfragment item.beta.name=Beta-Features item.big_sword.name=Großes Schwert item.billet_am_mix.name=ReaktorfÀhiges Americiumbillet @@ -1198,6 +1474,7 @@ item.billet_plutonium_fuel.name=Plutoniumkernbrennstoffbillet item.billet_ra226be.name=Ra226Be-Billet item.billet_schrabidium.name=Schrabidiumbillet item.billet_schrabidium_fuel.name=Schrabidiumkernbrennstoffbillet +item.billet_silicon.name=Siliziumwafer item.billet_solinium.name=Soliniumbillet item.billet_technetium.name=Technetium-99-Billet item.billet_th232.name=Thorium-232-Billet @@ -1238,19 +1515,21 @@ item.blades_steel.name=StahlsÀgeblatt item.blades_titanium.name=TitansÀgeblatt item.blowtorch.name=Lötlampe item.board_copper.name=Kupfertafel +item.boat_rubber.name=Schlauchboot item.bobmazon_hidden.name=Versteckter Katalog item.bobmazon_machines.name=Bobmazon: Blöcke und Maschinen item.bobmazon_materials.name=Bobmazon: Ressourcen item.bobmazon_tools.name=Bobmazon: Werkzeuge item.bobmazon_weapons.name=Bobmazon: Waffen und Sprengstoffe +item.boltntm.name=%sbolzen item.bolt_compound.name=VerstÀrkte Turbinenwelle -item.bolt_dura_steel.name=Schnellarbeitsstahlbolzen -item.bolt_tungsten.name=Wolframbolzen +item.bolt_spike.name=Gleisnagel item.boltgun.name=Pneumatische Nietenpistole item.bomb_caller.name=Luftschlag Zielmarker item.bomb_waffle.name=Massenvernichtungswaffel item.guide_book.name=Handbuch item.book_of_.name=Das Buch der GÃŒterwagons +item.book_lemegeton.name=Lemegeton item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=Leere Glasflasche item.bottle2_fritz.name=Fritz-Kola @@ -1266,6 +1545,7 @@ item.bottle_opener.name=Hbms eigener selbstgebauter Flaschenöffner item.bottle_quantum.name=Nuka Cola Quantum item.bottle_rad.name=S~Cola RAD item.bottle_sparkle.name=S~Cola +item.bottled_cloud.name=Wolke in einer Flasche item.boy_bullet.name=U235 Geschoss item.boy_igniter.name=ZÃŒnder item.boy_kit.name=Little Boy Kit @@ -1363,14 +1643,25 @@ item.cape_nostalgia.name=DrNostalgias Cape item.cape_radiation.name=Cape (Radioaktiv) item.cape_schrabidium.name=Cape (Schrabidisch) item.cape_vertice.name=Lord Vertices Cape +item.card_aos.name=Pik-Ass +item.card_qos.name=Pik-Königin item.cart.crate.name=Stahlkistenlore item.cart.destroyer.name=Schuttzerstörende Lore item.cart.empty.name=Lore -item.casing_357.name=.357 Magnum-HÃŒlse (x24) -item.casing_44.name=.44 Magnum-HÃŒlse (x24) -item.casing_50.name=GroßkaliberhÃŒlse (x12) -item.casing_9.name=KleinkaliberhÃŒlse (x32) -item.casing_buckshot.name=SchrothÃŒlse (x12) +item.cart.powder.name=Pulverwagen +item.cart.semtex.name=Semtex Wagen +item.casing_357.name=.357 Magnum-HÃŒlsen +item.casing_44.name=.44 Magnum-HÃŒlsen +item.casing_50.name=GroßkaliberhÃŒlsen +item.casing_9.name=KleinkaliberhÃŒlsen +item.casing_buckshot.name=SchrothÃŒlsen +item.casing.small.name=Kleine PatronenhÃŒlse +item.casing.small_steel.name=Kleine WaffenstahlhÃŒlse +item.casing.large.name=Große PatronenhÃŒlse +item.casing.large_steel.name=Große WaffenstahlhÃŒlse +item.casing.shotshell.name=Schwarzpulver-SchrothÃŒlse +item.casing.buckshot.name=Plastik-SchrothÃŒlse +item.casing.buckshot_advanced.name=Fortgeschrittene SchrothÃŒlse item.catalyst_clay.name=Tonerde-Katalysator item.catalytic_converter.name=Katalytischer Konverter item.cbt_device.name=CBT-GerÀt @@ -1420,8 +1711,28 @@ item.chopper_head.name=Jagdschrauber Cockpit item.chopper_tail.name=Jagdschrauber Heck item.chopper_torso.name=Jagdschrauber Rumpf item.chopper_wing.name=Jagdschrauber SeitentragflÀche +item.chunk_ore.rare.name=Seltenerdenerz-Brocken item.cigarette.name=FFI-Markenzigarette item.cinnebar.name=Zinnober +item.circuit.advanced.name=Integrierter Schaltkreis, MilitÀrstandard +item.circuit.analog.name=Analoger Schaltkreis +item.circuit.atomic_clock.name=Atomuhr +item.circuit.basic.name=Integrierter Schaltkreis +item.circuit.bismoid.name=VielfÀltiger Schaltkreis +item.circuit.capacitor.name=Kondensator +item.circuit.capacitor_board.name=Kondensatorboard +item.circuit.capacitor_tantalium.name=Tantalkondensator +item.circuit.chip.name=Mikrochip +item.circuit.chip_bismoid.name=VielfÀltiger integrierter Schaltkreis +item.circuit.chip_quantum.name=Festkörper-Quantenprozessor +item.circuit.controller.name=Steuereinheit +item.circuit.controller_advanced.name=Erweiterte Steuereinheit +item.circuit.controller_chassis.name=SteuereinheitsgehÀuse +item.circuit.controller_quantum.name=Quantencomputer +item.circuit.pcb.name=Leiterplatte +item.circuit.quantum.name=Quantenprozessoreinheit +item.circuit.silicon.name=Bedrucker Siliziumwafer +item.circuit.vacuum_tube.name=Vakuumröhre item.circuit_aluminium.name=Einfacher Schaltkreis item.circuit_arsenic.name=Adaptives Chipset item.circuit_arsenic_raw.name=Arsen-Schaltkreisrohling @@ -1430,13 +1741,15 @@ item.circuit_bismuth_raw.name=Bismuth-Schaltkreisrohling item.circuit_copper.name=Erweiterter Schaltkreis item.circuit_gold.name=Übertakteter Schaltkreis item.circuit_raw.name=Schaltkreisrohling -item.circuit_red_copper.name=Forgeschrittener Schaltkreis +item.circuit_red_copper.name=Fortgeschrittener Schaltkreis item.circuit_schrabidium.name=Leistungsstarker Schaltkreis item.circuit_star.name=StarControl Schalttafel +item.circuit_star_component.card.name=StarControl Erweiterungskarte item.circuit_star_component.chipset.name=StarControl Chipset item.circuit_star_component.cpu.name=StarControl CPU item.circuit_star_component.ram.name=StarControl RAM item.circuit_star_piece.board_blank.name=SC - Leiterplatte +item.circuit_star_piece.board_converter.name=SC - Spammungswandler item.circuit_star_piece.board_transistor.name=SC - Transistoren item.circuit_star_piece.bridge_bios.name=SC- BIOS-Chip item.circuit_star_piece.bridge_bus.name=SC - BUS @@ -1445,6 +1758,8 @@ item.circuit_star_piece.bridge_cmos.name=SC - CMOS-RAM item.circuit_star_piece.bridge_io.name=SC - IO-Chip item.circuit_star_piece.bridge_north.name=SC - Northbridge item.circuit_star_piece.bridge_south.name=SC - Southbridge +item.circuit_star_piece.card_board.name=SC - Erweiterungskarten-Board +item.circuit_star_piece.card_processor.name=SC - Erweiterungskarten-Prozessor item.circuit_star_piece.cpu_cache.name=SC - CPU-Cache item.circuit_star_piece.cpu_clock.name=SC - CPU-Clock item.circuit_star_piece.cpu_ext.name=SC - Arsenhalbleiter-Erweiterung @@ -1471,6 +1786,7 @@ item.cladding_lead.name=BleibeschlÀge item.cladding_obsidian.name=Obsidianhaut item.cladding_paint.name=Bleifarbe item.cladding_rubber.name=Gummibeschlag +item.clay_tablet.name=Tontafel item.clip_bf.name=BF-Geschosse im Doppelpack item.clip_bolt_action.name=12x74 Brenneke-Patronenbox item.clip_cryolator.name=Großer Kryogentank @@ -1622,7 +1938,7 @@ item.debris_fuel.name=RBMK-Kernbrennstoffbrocken item.debris_graphite.name=Heißer Graphitbrocken item.debris_metal.name=Gebrochene Metallleiste item.debris_shrapnel.name=Wartungssteg-Schrapnell -item.definitelyfood.name=GarantiertKeinDreck-Marken Feldration +item.definitelyfood.name=Feldration item.defuser.name=High-Tech BombenentschÀrfungsgerÀt item.defuser_gold.name=Goldener Seitenschneider item.demon_core_closed.name=Bedeckter DÀmonenkern @@ -1656,9 +1972,11 @@ item.dnt_boots.name=dienautronium stiefel item.dnt_legs.name=dineuterium beine item.dnt_helmet.name=dinotroniumu helme item.dnt_plate.name=dineutrom brustplatte +item.dnt_sword.name=dinuatureum schwert item.door_bunker.name=BunkertÃŒr item.door_metal.name=MetalltÃŒr item.door_office.name=BÃŒrotÃŒr +item.door_red.name=Rote TÃŒr item.dosimeter.name=Dosimeter item.drax.name=Terra-Bohrer item.drax_mk2.name=GehÀrteter Terra-Bohrer @@ -1674,8 +1992,15 @@ item.drillbit_steel_diamond.name=Stahl-Bohrspitze (Diamantbeschichtung) item.drillbit_tcalloy.name=Technetiumstahl-Bohrspitze item.drillbit_tcalloy_diamond.name=Technetiumstahl-Bohrspitze (Diamantbeschichtung) item.drill_titanium.name=Titanbohrer +item.drone.patrol.name=Transportdrone +item.drone.patrol_chunkloading.name=Chunkladende Transportdrone +item.drone.patrol_express.name=Express-Transportdrone +item.drone.patrol_express_chunkloading.name=Chunkladende Express-Transportdrone +item.drone.request.name=Logistikdrone +item.drone_linker.name=Transportdronen-Linker item.ducttape.name=Klebeband item.dust.name=Staub +item.dwarven_pickaxe.name=Zwergenspitzhacke item.dynosphere_base.name=Blanke Dynosphere item.dynosphere_desh.name=Desh-Dynosphere item.dynosphere_desh_charged.name=Desh-Dynosphere (Geladen) @@ -1689,12 +2014,17 @@ item.dysfunctional_reactor.name=FunktionsunfÀhiger Atomreaktor item.egg_balefire.name=Balefire-Ei item.egg_balefire.desc=Was fÃŒr ein Vogel legt denn ein radioaktives Ei? item.egg_balefire_shard.name=Balefire-Scherbe +item.egg_glyphid.name=Glyphid-Ei item.elec_axe.name=Elektrische KettensÀge item.elec_pickaxe.name=Schlagbohrmaschine item.elec_shovel.name=Spiralbohrer item.elec_sword.name=Elektroimpulswaffe item.energy_core.name=Selbstgebauter Energiekern item.entanglement_kit.name=VerschrÀnkungskit +item.envsuit_boots.name=M1TTY Umgebungsanzug Stiefel +item.envsuit_helmet.name=M1TTY Umgebungsanzug Helm +item.envsuit_legs.name=M1TTY Umgebungsanzug Hose +item.envsuit_plate.name=M1TTY Umgebungsanzug Brustplatte item.euphemium_boots.name=Euphemiumstiefel item.euphemium_helmet.name=Euphemiumstiefel item.euphemium_kit.name=Euphemium Kit @@ -1751,13 +2081,15 @@ item.folly_shell.name=Silberne KanonenhÃŒlse item.fooditem.name=lebensmittel item.fragment_actinium.name=Actiniumfragment item.fragment_boron.name=Borfragment -item.fragment_cerium.name=Cerium Ffragment +item.fragment_cerium.name=Cerfragment item.fragment_cobalt.name=Cobaltfragment item.fragment_coltan.name=Coltan item.fragment_lanthanium.name=Lanthanfragment item.fragment_meteorite.name=Meteoritenfragment item.fragment_neodymium.name=Neodymfragment -item.fragment_niobium.name=Niobium Ffragment +item.fragment_niobium.name=Niobfragment +item.fuel_additive.antiknock.name=Tetraethyblei-Antiklopfmittel +item.fuel_additive.deicer.name=Enteisungsmittel item.fuel_tank_large.name=Großer Treibstofftank item.fuel_tank_medium.name=Mittlerer Treibstofftank item.fuel_tank_small.name=Kleiner Treibstofftank @@ -1792,18 +2124,22 @@ item.gear_large.name=Großes Zahnrad item.gear_large_steel.name=Großes Stahlzahnrad item.geiger_counter.name=Mobiler GeigerzÀhler item.gem_alexandrite.name=Alexandrit +item.gem_rad.name=Radioaktiver Edelstein +item.gem_sodalite.name=Sodalith item.gem_tantalium.name=Tantal-Polykristall item.gem_volcanic.name=Vulkanischer Edelstein item.generator_front.name=Generatorfront item.generator_steel.name=Generator item.glitch.name=Glitch item.glowing_stew.name=Leuchtende Pilzsuppe +item.glyphid_meat.name=Glyphidfleisch +item.glyphid_meat_grilled.name=Gegrilltes Glyphidfleisch item.goggles.name=Schutzbrille item.grenade_aschrab.name=Werfbare Antischrabidiumzelle item.grenade_black_hole.name=Schwarzes-Loch-Granate item.grenade_breach.name=Durchbruchgranate item.grenade_burst.name=GrÀbergranate -item.grenade_cloud.name=GefÀß voll Wolke +item.grenade_cloud.name=GefÀß voll Àtzenden DÀmpfen item.grenade_cluster.name=Cluster-Bombe item.grenade_electric.name=Blitzbombe item.grenade_fire.name=Brandsplittergranate @@ -1842,7 +2178,11 @@ item.grenade_smart.name=Smart-Granate item.grenade_strong.name=Verbesserte Handgranate item.grenade_tau.name=Taugranate item.grenade_zomg.name=Negativenergie-Paarvernichtungsgranate +item.gun_am180.name=SchallgedÀmpfte Maschinenpistole item.gun_ar15.name=Josh +item.gun_autoshotgun.name=Auto-Flinte +item.gun_autoshotgun_sexy.name=Sexy +item.gun_autoshotgun_shredder.name=Shredder item.gun_avenger.name=CZ57 Avenger-Minigun item.gun_b92.name=§9B92 Energiepistole§r item.gun_b92_ammo.name=§9B92-Energiezelle§r @@ -1859,7 +2199,10 @@ item.gun_bolter_digamma.name=Digammagewehr item.gun_calamity.name=KnochensÀge item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY) item.gun_calamity_dual.name=Sattelkanone +item.gun_carbine.name=Karabiner item.gun_chemthrower.name=Chemowerfer +item.gun_coilgun.name=Gaußpistole +item.gun_cryocannon.name=Kyro-Kanone item.gun_cryolator.name=Der Cryolator item.gun_cryolator_ammo.name=Kryozelle item.gun_dampfmaschine.name=Garantiert keine Scherzwaffe @@ -1868,6 +2211,8 @@ item.gun_deagle.name=Großes Eisen item.gun_defabricator.name=Defabrikator item.gun_defabricator_ammo.name=Defabrikator-Energiezelle item.gun_detonator.name=LaserzÃŒnder +item.gun_double_barrel.name=Ein alter Klassiker +item.gun_double_barrel_sacred_dragon.name=Sacred Dragon item.gun_emp.name=EMP-Waffe item.gun_emp_ammo.name=Energiezelle item.gun_euthanasia.name=Euthanasia @@ -1875,9 +2220,19 @@ item.gun_euthanasia_ammo.name=Spritze item.gun_fatman.name=M42 Nukleares Katapult "Fat Man" item.gun_fatman_ammo.name=Miniatombombe (LEGACY) item.gun_fireext.name=Feuerlöscher -item.gun_flamer.name=Herr Topaz +item.gun_flamer.name=Flammenwerfer +item.gun_flamer_daybreaker.name=Daybreaker +item.gun_flamer_topaz.name=Mister Topaz +item.gun_flaregun.name=Signalpistole item.gun_flechette.name=Flechet-Gewehr -item.gun_folly.name=Prototyp Digamma "Irrsinn" +item.gun_folly.name=Folly +item.gun_g3.name=Sturmgewehr +item.gun_greasegun.name=Grease Gun +item.gun_hangman.name=Hangman +item.gun_heavy_revolver.name=Schwerer Revolver +item.gun_heavy_revolver_lilmac.name=Little Macintosh +item.gun_heavy_revolver_protege.name=ProtÚge +item.gun_henry.name=Repetiergewehr item.gun_hk69.name=Granatenpistole item.gun_hp.name=HPP Lazerjet item.gun_hp_ammo.name=Tintenpatrone @@ -1891,20 +2246,32 @@ item.gun_kit_2.name=Waffenreparatursatz item.gun_ks23.name=Samuel die dicke Flinte item.gun_lacunae.name=CZ33 Abaddon item.gun_lacunae_ammo.name=5mm Patrone (LEGACY) +item.gun_lag.name=Komisch lange Pistole +item.gun_lasrifle.name=Lasergewehr item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Schrotmunition (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dunkel) item.gun_lever_action_sonata.name=Verkehrter Mare's Leg item.gun_lever_action_sonata_2.name=§cSonatas Mikrophon§r +item.gun_liberator.name=Liberator +item.gun_light_revolver.name=Kipplaufrevolver +item.gun_light_revolver_atlas.name=Atlas +item.gun_light_revolver_dani.name=Tag und Nacht item.gun_lunatic_marksman.name=Lunatic-ScharfschÃŒtzengewehr item.gun_m2.name=ÃŒsMG -item.gun_minigun.name=CZ53 Persönliche Minigun +item.gun_maresleg.name=Repetierflinte +item.gun_maresleg_akimbo.name=Repetierflinten +item.gun_maresleg_broken.name=Broken +item.gun_minigun.name=Minigun +item.gun_minigun_lacunae.name=Lacunae item.gun_mirv.name=M42 Nukleares Katapult "Experimentelles MIRV" item.gun_mirv_ammo.name=Achtfaches MIRV (LEGACY) +item.gun_missile_launcher.name=Raketenwerfer item.gun_moist_nugget.name=Mosin-Nagant item.gun_mp.name=Maschinengewehr des Pazifisten item.gun_mp40.name=Maschinenpistole item.gun_mp40_ammo.name=SMG-Patrone (LEGACY) +item.gun_pepperbox.name=BÃŒndelrevolver item.gun_pm_ammo.name=Kleine treibmittellose MG-Patrone item.gun_mymy.name=Nietes item.gun_osipr.name=StandartausrÃŒstung fÃŒr SicherheitskrÀfte @@ -1912,7 +2279,7 @@ item.gun_osipr_ammo.name=Dunkler Energiepuls-Plug item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck item.gun_proto.name=M42 Nukleares Katapult "Proto MIRV" -item.gun_quadro.name=Quattro Formaggi +item.gun_quadro.name=Vierfachraketenwerfer item.gun_remington.name=バむデン ブラスト [BIDEN BLAST] item.gun_revolver.name=Verbesserter Revolver item.gun_revolver_ammo.name=Bleipatrone @@ -1930,7 +2297,7 @@ item.gun_revolver_nightmare.name=Nightmare-Revolver (Original) item.gun_revolver_nightmare2.name=Nightmare-Revolver (Dunkel) item.gun_revolver_nightmare2_ammo.name=Laserschrot item.gun_revolver_nightmare_ammo.name=Nightmare-Kugel -item.gun_revolver_nopip.name=Novac +item.gun_revolver_nopip.name=Schwerer Revolver item.gun_revolver_nopip_ammo.name=.44 Magnumpatrone (LEGACY) item.gun_revolver_pip.name=Lil' Pipsqueak item.gun_revolver_pip_ammo.name=Verdorbene Patrone (LEGACY) @@ -1945,14 +2312,20 @@ item.gun_sauer.name=Stan Sauers Schrotflinte item.gun_skystinger.name=The One Sky Stinger item.gun_spark.name=Die ZÃŒndkerze item.gun_spark_ammo.name=Elektromagnetische Katusche +item.gun_spas12.name=SPAS-12 +item.gun_stg77.name=StG 77 item.gun_stinger.name=FIM-92 Stinger item.gun_stinger_ammo.name=Stinger-Rakete (LEGACY) item.gun_super_shotgun.name=Super Shotgun item.gun_supershotgun.name=Super Shotgun +item.gun_tau.name=Taukanone +item.gun_tesla_cannon.name=Teslakanone item.gun_thompson.name=Thompson Maschinenpistole +item.gun_uac_pistol.name=UAC .45 Pistole item.gun_uboinik.name=Ubojnik item.gun_uboinik_ammo.name=12x70 Schrotmunition (LEGACY) -item.gun_uzi.name=IMI Uzi +item.gun_uzi.name=Uzi +item.gun_uzi_akimbo.name=Uzis item.gun_uzi_ammo.name=.22 lfB Patrone (LEGACY) item.gun_uzi_saturnite.name=Saturnit-Uzi item.gun_uzi_saturnite_silencer.name=Saturnit-Uzi mit SchalldÀmpfer @@ -1988,6 +2361,7 @@ item.heart_booster.name=Herzbooster item.heart_container.name=Herzcontainer item.heart_fab.name=Fab Herz item.heart_piece.name=Herzteil +item.heavy_component.name=Schwere %skomponente item.hev_battery.name=Anzugs-Batterie item.hev_boots.name=HEV Mark IV Stiefel item.hev_plate.name=HEV Mark IV Brustpanzer @@ -2001,6 +2375,9 @@ item.hull_big_steel.name=Große StahlhÃŒlle item.hull_big_titanium.name=Große TitanhÃŒlle item.hull_small_aluminium.name=Kleine AluminiumhÃŒlle item.hull_small_steel.name=Kleine StahlhÃŒlle +item.icf_pellet.name=ICF-Brennstoffpellet +item.icf_pellet_depleted.name=Erschöpftes ICF-Brennstoffpellet +item.icf_pellet_empty.name=Leeres ICF-Brennstoffpellet item.igniter.name=ZÃŒnder item.industrial_magnet.name=Industriemagnet item.inf_antimatter.name=Unendlicher Antimaterietank @@ -2020,17 +2397,22 @@ item.ingot_am241.name=Americium-241-Barren item.ingot_am242.name=Americium-242-Barren item.ingot_americium_fuel.name=Americiumkernbrennstoffbarren item.ingot_arsenic.name=Arsenbarren +item.ingot_arsenic_bronze.name=Arsenbronzebarren item.ingot_asbestos.name=Asbestplatte item.ingot_au198.name=Gold-198-Barren item.ingot_australium.name=Australiumbarren item.ingot_bakelite.name=Bakelittafel item.ingot_beryllium.name=Berylliumbarren +item.ingot_biorubber.name=Latextafel item.ingot_bismuth.name=Bismutbarren +item.ingot_bismuth_bronze.name=Bismutbronzebarren item.ingot_boron.name=Borbarren +item.ingot_bscco.name=BSCCO-Barren item.ingot_c4.name=C4-Tafel item.ingot_cadmium.name=Cadmiumbarren item.ingot_calcium.name=Kalziumbarren item.ingot_cdalloy.name=Cadmiumstahlbarren +item.ingot_cft.name=Kristallines Fullerit item.ingot_chainsteel.name=Schwerer Kettenstahl item.ingot_co60.name=Kobalt-60-Barren item.ingot_cobalt.name=Kobaltbarren @@ -2048,6 +2430,7 @@ item.ingot_firebrick.name=Schamottstein item.ingot_gh336.name=Ghiorsium-336-Barren item.ingot_gh336.desc=Seaborgiums Kollege. item.ingot_graphite.name=Graphitbarren +item.ingot_gunmetal.name=Rotgussbarren item.ingot_hes.name=Stark angereicherter Schrabidiumkernbrennstoffbarren item.ingot_lanthanium.name=Semistabiler Lanthanbarren item.ingot_lead.name=Bleibarren @@ -2075,6 +2458,8 @@ item.ingot_pu239.name=Plutonium-239-Barren item.ingot_pu240.name=Plutonium-240-Barren item.ingot_pu241.name=Plutonium-241-Barren item.ingot_pvc.name=PVC-Tafel +item.ingot_ra226.name=Radium-226-Barren +item.ingot_raw.name=%s-Barren item.ingot_red_copper.name=Minecraft-Kupfer item.ingot_reiium.name=Reiiumbarren item.ingot_rubber.name=Gummitafel @@ -2084,6 +2469,7 @@ item.ingot_schrabidium.name=Schrabidiumbarren item.ingot_schrabidium_fuel.name=Schrabidiumkernbrennstoffbarren item.ingot_schraranium.name=Schraraniumbarren item.ingot_semtex.name=Semtextafel +item.ingot_silicon.name=Siliziumboule item.ingot_smore.name=S'morebarren item.ingot_solinium.name=Soliniumbarren item.ingot_starmetal.name=§9Sternenmetallbarren§r @@ -2104,6 +2490,7 @@ item.ingot_unobtainium.name=Unobtainiumbarren item.ingot_uranium.name=Uranbarren item.ingot_uranium_fuel.name=Urankernbrennstoffbarren item.ingot_verticium.name=Verticiumbarren +item.ingot_weaponsteel.name=Waffenstahlbarren item.ingot_weidanium.name=Weidaniumbarren item.ingot_zirconium.name=ZirkoniumwÃŒrfel item.injector_5htp.name=5-HTP-Autoinjektor @@ -2120,6 +2507,9 @@ item.insert_polonium.name=Poloniumeinlage item.insert_steel.name=Schwere Stahleinlage item.insert_xsapi.name=XSAPI-Einlage item.insert_yharonite.name=Yharoniteinlage +item.item_secret.canister.name=Komposit SB-26 +item.item_secret.controller.name=ProprietÀre Steuereinheit +item.item_secret.selenium_steel.name=Selen-Stahl item.iv_blood.name=Blutbeutel item.iv_empty.name=Infusionsbeutel item.iv_xp.name=Erfahrungsbeutel @@ -2138,6 +2528,7 @@ item.key.name=SchlÃŒssel item.key_fake.name=GefÀlschter SchlÃŒssel item.key_kit.name=SchlÃŒssel-Imitationskit item.key_red.name=Roter SchlÃŒssel +item.key_red_cracked.name=Zerbrochener SchlÃŒssel item.kit_toolbox.name=Werkzeugkasten item.kit_toolbox_empty.name=Leerer Werkzeugkasten item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uran-Thorium-Kristallmatrix @@ -2149,6 +2540,9 @@ item.laser_crystal_co2.name=CO2-Desh-Laserkristall item.laser_crystal_digamma.name=Digamma-Laserkristall item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Superkristall item.laser_crystal_dnt.name=Spark-Laserkristall +item.launch_code.name=Silo-Startcode +item.launch_code_piece.name=Silo-StartcodestÃŒck +item.launch_key.name=Silo-StartschlÃŒssel item.lead_gavel.name=Bleierner Richterhammer item.lemon.name="Zitrone" item.letter.name=Eilbrief @@ -2188,7 +2582,7 @@ item.mechanism_revolver_2.name=Fortgeschrittener Revolvermechanismus item.mechanism_rifle_1.name=Gewehmechanismus item.mechanism_rifle_2.name=Fortgeschrittener Gewehmechanismus item.mechanism_special.name=High-Tech Waffenmechanismus -item.med_bag.name=Ärztetasche +item.med_bag.name=Erste Hilfe Kit item.med_ipecac.name=Ipecac-Sirup item.med_ptsd.name=PTBS-Medikament item.med_schiziphrenia.name=Schizophrenie-Medikament @@ -2229,7 +2623,9 @@ item.missile_carrier.name=HTR-01 TrÀgerrakete item.missile_cluster.name=Streurakete item.missile_cluster_strong.name=Starke Streurakete item.missile_custom.name=Spezialgefertigte Rakete -item.missile_doomsday.name=Doomsday Rakete +item.missile_decoy.name=Köderflugkörper +item.missile_doomsday.name=Doomsday-Rakete +item.missile_doomsday_rusted.name=BeschÀdigte Doomsday-Rakete item.missile_drill.name=Der Betonbrecher item.missile_emp.name=EMP-Rakete item.missile_emp_strong.name=Verbesserte EMP-Rakete @@ -2246,18 +2642,10 @@ item.missile_nuclear_cluster.name=H-Rakete item.missile_rain.name=SchÃŒttbombenregen item.missile_schrabidium.name=Schrabidiumrakete item.missile_shuttle.name=Reliant Robin Space Shuttle -item.missile_skin_camo.name=Raketenskin: Camouflage -item.missile_skin_desert.name=Raketenskin: WÃŒstencamouflage -item.missile_skin_flames.name=Raketenskin: Krasse Flammen -item.missile_skin_manly_pink.name=Raketenskin: MÀnnliches Pink -item.missile_skin_metal.name=Raketenskin: Metall -item.missile_skin_orange_insulation.name=Raketenskin: Oranger Isolator -item.missile_skin_sleek.name=Raketenskin: IF-R&D -item.missile_skin_soviet_glory.name=Raketenskin: Sowjetischer Ruhm -item.missile_skin_soviet_stank.name=Raketenskin: Sowjetischer Mief item.missile_soyuz.name=Soyuz-FG item.missile_soyuz_lander.name=Orbitalmodul item.missile_strong.name=Starke HE Rakete +item.missile_stealth.name=Stealth-Rakete item.missile_taint.name=Verdorbene Rakete item.missile_volcano.name=Tectonic Missile item.missile_volcano.desc=Mit der Kraft von Kernwaffen können wir einen Vulkan beschwören! @@ -2405,6 +2793,8 @@ item.n2_charge.name=Große Sprengladung item.neutrino_lens.name=Neutrinolinse item.neutron_reflector.name=Neutronenreflektor item.niter.name=Salpeter +item.nitra.name=Nitra +item.nitra_small.name=Kleines StÃŒck Nitra item.no9.name=Bergbauhelm item.nossy_hat.name=Fabulöser Hut item.nothing.name=Leer @@ -2447,6 +2837,7 @@ item.nugget_mercury.name=Quecksilbertropfen item.nugget_mox_fuel.name=MOX-Kernbrennstoffnugget item.nugget_neptunium.name=Neptuniumnugget item.nugget_neptunium_fuel.name=Neptuniumkernbrennstoffnugget +item.nugget_niobium.name=Niobnugget item.nugget_osmiridium.name=Osmiridiumnugget item.nugget_plutonium.name=Plutoniumnugget item.nugget_plutonium_fuel.name=Plutoniumkernbrennstoffnugget @@ -2460,6 +2851,7 @@ item.nugget_ra226.name=Radium-226-Nugget item.nugget_reiium.name=Reiiumnugget item.nugget_schrabidium.name=Schrabidiumnugget item.nugget_schrabidium_fuel.name=Schrabidiumkernbrennstoffnugget +item.nugget_silicon.name=Siliziumnugget item.nugget_solinium.name=Soliniumnugget item.nugget_tantalium.name=Tantalnugget item.nugget_technetium.name=Technetium-99-Nugget @@ -2486,7 +2878,6 @@ item.oil_detector.bullseye=Ölvorkommen direkt untertage! item.oil_detector.detected=Ölvorkommen in der NÀhe! item.oil_detector.noOil=Kein Öl gefunden. item.oil_tar.coal.name=Kohleteer -item.oil_tar.name=Ölteer item.oil_tar.crude.name=Erdölteer item.oil_tar.crack.name=Crackölteer item.oil_tar.paraffin.name=Paraffinwachs @@ -2496,12 +2887,16 @@ item.ore.asbestos=Asbest item.ore.borax=Borax item.ore.chlorocalcite=Chlorokalzit item.ore.copper=Kupfer +item.ore.fluorite=Fluorit item.ore.gold=Gold +item.ore.hematite=Hematit item.ore.iron=Eisen +item.ore.malachite=Malachit +item.ore.neodymium=Neodym item.ore.niobium=Niob item.ore.titanium=Titan item.ore.tungsten=Wolfram -item.ore.thorium=Thorium +item.ore.thorium232=Thorium item.ore.uranium=Uran item.ore_bedrock.name=Bedrock-%serz item.ore_byproduct.b_aluminium.name=Kristallines Aluminiumfragment @@ -2521,6 +2916,7 @@ item.ore_byproduct.b_uranium.name=Kristallines Uranfragment item.ore_centrifuged.name=Zentrifugiertes %serz item.ore_cleaned.name=Gereinigtes %serz item.ore_deepcleaned.name=Tiefengereinigtes %serz +item.ore_density_scanner.name=Bedrockerz-AnalysegerÀt item.ore_enriched.name=Reiches %serz item.ore_nitrated.name=Nitriertes %serz item.ore_nitrocrystalline.name=Nitrokristallines %serz @@ -2540,15 +2936,32 @@ item.padlock_unbreakable.name=Unzerstörbares VorhÀngeschloss item.pads_rubber.name=Gummischuhsohlen item.pads_slime.name=Schleimschuhsohlen item.pads_static.name=Statische Schuhsolen +item.page_of_.page1.name=Seite 1 +item.page_of_.page2.name=Seite 2 +item.page_of_.page3.name=Seite 3 +item.page_of_.page4.name=Seite 4 +item.page_of_.page5.name=Seite 5 +item.page_of_.page6.name=Seite 6 +item.page_of_.page7.name=Seite 7 +item.page_of_.page8.name=Seite 8 item.pancake.name=Pfannkuchen aus Altmetall, NÀgeln und Edelsteinpulver +item.part_barrel_heavy.name=Schwerer %slauf +item.part_barrel_light.name=Leichter %slauf item.part_beryllium.name=Berylliumstaubkiste item.part_carbon.name=Kohlenstoffstaubkiste item.part_copper.name=Kupferstaubkiste +item.part_generic.hde.name=Schwerlastkomponente +item.part_generic.lde.name=Leichtbauteil item.part_generic.piston_electric.name=Electrischer Kolben item.part_generic.piston_hydraulic.name=Hydraulischer Kolben item.part_generic.piston_pneumatic.name=Pneumatischer Kolben +item.part_grip.name=%sgriff item.part_lithium.name=Lithiumstaubkiste +item.part_mechanism.name=%smechanismus item.part_plutonium.name=Plutoniumstaubkiste +item.part_receiver_heavy.name=Schwerer %sverschluss +item.part_receiver_light.name=Leichter %sverschluss +item.part_stock.name=%sschaft item.particle_aelectron.name=Positronenkapsel item.particle_amat.name=Antimaterienkapsel item.particle_aproton.name=Antiprotonenkapsel @@ -2606,8 +3019,8 @@ item.pill_iodine.name=Iodpille item.pill_herbal.name=KrÀuterpaste item.pill_red.name=Rote Pille item.pin.name=Haarklammer +item.pipentm.name=%srohr item.pipes_steel.name=Stahlrohre -item.pirfenidone.name=Pirfenidon item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet. item.piston_selenium.name=Motorkolben item.piston_set_desh.name=Ottomotorenkolben (Desh) @@ -2618,6 +3031,7 @@ item.plan_c.name=Plan C item.plant_item.mustardwillow.name=Senf-Weidenblatt item.plant_item.rope.name=Seil item.plant_item.tobacco.name=Tabak +item.plastic_bag.name=PlastiktÃŒte item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte item.plate_aluminium.name=Aluminiumplatte item.plate_armor_ajr.name=Eisenbeschlagene Panzerplatte @@ -2632,8 +3046,10 @@ item.plate_copper.name=Kupferplatte item.plate_dalekanium.name=WÃŒtendes Metall item.plate_desh.name=Desh-Verbundplatte item.plate_dineutronium.name=Dineutronium-Verbundplatte +item.plate_dura_steel.name=Schnellarbeitsstahlplatte item.plate_euphemium.name=Euphemium-Verbundplatte item.plate_gold.name=Goldplatte +item.plate_gunmetal.name=Rotgussplatte item.plate_iron.name=Eisenplatte item.plate_kevlar.name=Kevlar-Keramik-Verbund item.plate_lead.name=Bleiplatte @@ -2644,6 +3060,8 @@ item.plate_saturnite.name=Saturnitplatte item.plate_schrabidium.name=Schrabidiumplatte item.plate_steel.name=Stahlplatte item.plate_titanium.name=Titanplatte +item.plate_weaponsteel.name=Waffenstahlplatte +item.plate_welded.name=Geschweißte %splatte item.polaroid.name=Das Polaroid item.pollution_detector.name=Verschmutzungsdetektor item.powder_actinium.name=Actiniumstaub @@ -2651,6 +3069,12 @@ item.powder_actinium_tiny.name=Kleiner Haufen Actiniumstaub item.powder_advanced_alloy.name=Fortgeschrittener Legierungsstaub item.powder_aluminium.name=Aluminiumstaub item.powder_asbestos.name=Asbeststaub +item.powder_ash.coal.name=Kohleasche +item.powder_ash.fly.name=Flugasche +item.powder_ash.fullerene.name=Fulleren +item.powder_ash.misc.name=Asche +item.powder_ash.soot.name=Feiner Ruß +item.powder_ash.wood.name=Holzasche item.powder_astatine.name=Astatstaub item.powder_at209.name=Astat-209-Staub item.powder_au198.name=Gold-198-Staub @@ -2666,6 +3090,7 @@ item.powder_bromine.name=Bromstaub item.powder_cadmium.name=Cadmiumstaub item.powder_caesium.name=Caesiumstaub item.powder_calcium.name=Kalziumstaub +item.powder_cement.name=Zement item.powder_cerium.name=Cerstaub item.powder_cerium_tiny.name=Kleiner Haufen Cerstaub item.powder_chlorocalcite.name=Chlorokalzit @@ -2706,12 +3131,14 @@ item.powder_lanthanium_tiny.name=Kleiner Haufen Lanthanstaub item.powder_lapis.name=Lapis Lazuli-Staub item.powder_lead.name=Bleistaub item.powder_lignite.name=Braunkohlestaub +item.powder_limestone.name=Kalksteinstaub item.powder_lithium.name=Lithiumstaub item.powder_lithium_tiny.name=Kleiner Haufen Lithiumstaub item.powder_magic.name=Pulverisierte Verzauberung item.powder_magnetized_tungsten.name=Magnetisierter Wolframstaub item.powder_meteorite.name=Meteoritenstaub item.powder_meteorite_tiny.name=Kleiner Haufen Meteoritenstaub +item.powder_molysite.name=Molysit item.powder_neodymium.name=Neodymstaub item.powder_neodymium_tiny.name=Kleiner Haufen Neodymstaub item.powder_neptunium.name=Neptuniumstaub @@ -2732,6 +3159,7 @@ item.powder_sawdust.name=SÀgespÀne item.powder_schrabidate.name=Eisenschrabidatstaub item.powder_schrabidium.name=Schrabidiumstaub item.powder_semtex_mix.name=Semtexmischung +item.powder_sodium.name=Natrium item.powder_spark_mix.name=Sparkmischung item.powder_steel.name=Stahlstaub item.powder_steel_tiny.name=Kleiner Haufen Stahlstaub @@ -2762,6 +3190,7 @@ item.protection_charm.name=Schutzamulett item.prototype_kit.name=Prototyp Kit item.pudding.name=Pudding item.quartz_plutonium.name=Plutonisches Quarz +item.radar_linker.name=Radar-Linker item.radaway.name=RadAway item.radaway_flush.name=Elite-RadAway item.radaway_strong.name=Starkes RadAway @@ -2832,8 +3261,6 @@ item.rbmk_pellet_ueu.name=NU-Kernbrennstoffpellet item.rbmk_pellet_zfb_am_mix.name=ReaktorfÀhiges Americium ZFB-Pellet item.rbmk_pellet_zfb_bismuth.name=Bismut ZFB-Pellet item.rbmk_pellet_zfb_pu241.name=Pu-241 ZFB-Pellet -item.rbmk_lid.name=RBMK-Abdeckplatte -item.rbmk_lid_glass.name=RBMK-Glasabdeckung item.rbmk_tool.name=RBMK-Konsolen-VerlinkungsgerÀt item.rbmk_tool.desc=Schleichen und Rechtsclick auf RBMK um Position zu speichern,$Schleichen und Rechtsclick auf Konsole um zu verlinken! item.rbmk_tool.linked=Position gespeichert! @@ -3046,6 +3473,7 @@ item.serum.name=Serum item.servo_set.name=Servo-Set item.servo_set_desh.name=Deshservo-Set item.shackles.name=Fußschellen +item.shellntm.name=%smantel item.shimmer_axe.name=Shimmer Axe item.shimmer_axe_head.name=Schwerer Axtkopf item.shimmer_handle.name=VerstÀrketer Polymergriff @@ -3080,6 +3508,14 @@ item.stamp_357.name=.357 Magnum-Stempel item.stamp_44.name=.44 Magnum-Stempel item.stamp_50.name=Großkaliberstempel item.stamp_9.name=Kleinkaliberstempel +item.stamp_book.printing1.name=Druckpressstempel (Teil 1) +item.stamp_book.printing2.name=Druckpressstempel (Teil 2) +item.stamp_book.printing3.name=Druckpressstempel (Teil 3) +item.stamp_book.printing4.name=Druckpressstempel (Teil 4) +item.stamp_book.printing5.name=Druckpressstempel (Teil 5) +item.stamp_book.printing6.name=Druckpressstempel (Teil 6) +item.stamp_book.printing7.name=Druckpressstempel (Teil 7) +item.stamp_book.printing8.name=Druckpressstempel (Teil 8) item.stamp_desh_circuit.name=Schaltkreisstempel (Desh) item.stamp_desh_flat.name=Flacher Stempe (Desh) item.stamp_desh_plate.name=Plattenstempel (Desh) @@ -3198,6 +3634,10 @@ item.titanium_shovel.name=Titanschaufel item.titanium_sword.name=Titanschwert item.toothpicks.name=Zahnstocher item.train.cargo_tram.name=Elektrischer Flachwagen +item.trenchmaster_boots.name=Stiefel des Trenchmasters +item.trenchmaster_helmet.name=Helm des Trenchmasters +item.trenchmaster_legs.name=Hose des Trenchmasters +item.trenchmaster_plate.name=Brustpanzer des Trenchmasters item.trinitite.name=Trinitit item.tritium_deuterium_cake.name=Tritium-Deuterium-Kuchen item.tsar_core.name=Fusionskern @@ -3235,6 +3675,7 @@ item.upgrade_fortune_2.name=GlÃŒckupgrade Mk.II item.upgrade_fortune_3.name=GlÃŒckupgrade Mk.III item.upgrade_gc_speed.name=Gaszentrifugen-Geschwindigkeitsupgrade item.upgrade_health.name=Kraftfeld-Resistenzupgrade +item.upgrade_muffler.name=SchalldÀmpfer item.upgrade_nullifier.name=MÃŒllvernichter-Upgrade item.upgrade_overdrive_1.name=Overdrive-Upgrade Mk.I item.upgrade_overdrive_2.name=Overdrive-Upgrade Mk.II @@ -3253,7 +3694,6 @@ item.upgrade_stack_1.name=Stapelupgrade Mk.I item.upgrade_stack_2.name=Stapelupgrade Mk.II item.upgrade_stack_3.name=Stapelupgrade Mk.III item.upgrade_template.name=Maschinenupgrade-Vorlage -item.v1.name=V1 item.volcanic_pickaxe.name=Geschmolzene Spitzhacke item.wand_d.name=Debug-Zauberstab item.wand_k.name=Konstruktions-Zauberstab @@ -3323,6 +3763,8 @@ item.wings_murk.name=TrÃŒbe FlÃŒgel item.wire_advanced_alloy.name=Supraleiter item.wire_aluminium.name=Aluminiumdraht item.wire_copper.name=Kupferdraht +item.wire_dense.name=Dichter %sdraht +item.wire_fine.name=%sdraht item.wire_gold.name=Golddraht item.wire_magnetized_tungsten.name=4000K Hochtemperaturensupraleiter item.wire_red_copper.name=Roter Kupferdraht @@ -3360,10 +3802,14 @@ potion.hbm_stability=StabilitÀt potion.hbm_taint=Verdorben potion.hbm_telekinesis=! ! ! +radar.clearMap=Karte zurÃŒcksetzen radar.detectMissiles=Raketen erkennen radar.detectPlayers=Spieler erkennen +radar.detectShells=Geschosse erkennen radar.redMode=Redstone Mode$Ein: Redstonesignal basiert auf NÀhe$Aus: Redstonesignal basiert auf Größe +radar.showMap=Karte anzeigen radar.smartMode=Smart Mode$Redstonesignal ignoriert aufsteigende Raketen +radar.toggleGui=Ansicht umschalten rbmk.heat=Komponententemperatur: %s rbmk.boiler.water=Wasser: %s / %s @@ -3381,22 +3827,35 @@ rbmk.rod.xenon=Xenonvergiftung: %s rbmk.rod.coreTemp=Kerntemperatur: %s rbmk.rod.skinTemp=Außentemperatur: %s / %s +shape.barrelHeavy=Schwerer Lauf +shape.barrelLight=Leichter Lauf shape.billet=Billet shape.blade=Turbinenblatt shape.blades=SÀgeblatt shape.block=Block +shape.c9=KleinkaliberhÃŒlse +shape.c50=GroßkaliberhÃŒlse shape.dust=Haufen shape.dusttiny=Winziger Haufen -shape.hull_big=Große HÃŒlle +shape.grip=Griff +shape.gunMechanism=Mechanism +shape.hull_big=Große Mechanismus shape.hull_small=Kleine HÃŒlle shape.ingot=Barren shape.nugget=Nugget shape.quantum=Quantum shape.quart=Viertel Block +shape.receiverHeavy=Schwerer Verschluss +shape.receiverLight=Leichter Verschluss +shape.ntmpipe=Rohr shape.plate=Platte shape.plateTriple=Gussplatte +shape.shell=Mantel shape.stamp=Stempel -shape.wire=Draht +shape.stock=Schaft +shape.wireFine=DrÀhte +shape.wireDense=Dichter Draht +shape.wiresDense=Dichte DrÀhte soundCategory.ntmMachines=NTM Maschinen @@ -3409,7 +3868,10 @@ tile.ams_base.name=AMS-Basis (Deko) tile.ams_emitter.name=AMS-Emitter (Deko) tile.ams_limiter.name=AMS-Stabilisator (Deko) tile.ancient_scrap.name=Antikes Altmetall +tile.anvil_arsenic_bronze.name=Arsenbronzeamboss tile.anvil_bismuth.name=Bismutamboss +tile.anvil_bismuth_bronze.name=Bismuthbronzeamboss +tile.anvil_desh.name=Deshamboss tile.anvil_dnt.name=Dineutroniumamboss tile.anvil_ferrouranium.name=Ferrouranamboss tile.anvil_iron.name=Eisenamboss @@ -3417,17 +3879,19 @@ tile.anvil_lead.name=Bleiamboss tile.anvil_meteorite.name=Meteoritenamboss tile.anvil_murky.name=DÃŒsteramboss tile.anvil_osmiridium.name=Osmiridiumamboss +tile.anvil_saturnite.name=Saturnitamboss tile.anvil_schrabidate.name=Eisenschrabidatamboss tile.anvil_starmetal.name=Sternenmetallamboss tile.anvil_steel.name=Stahlamboss tile.ash_digamma.name=Asche tile.asphalt.name=Asphalt +tile.asphalt_stairs.name=Asphalttreppe tile.asphalt_light.name=Leuchtender Asphalt tile.barbed_wire.name=Stacheldraht tile.barbed_wire_acid.name=Ätzender Stacheldraht tile.barbed_wire_fire.name=Flammender Stacheldraht tile.barbed_wire_poison.name=Vergifteter Stacheldraht -tile.barbed_wire_ultradeath.name=Wolken-Stacheldraht +tile.barbed_wire_ultradeath.name=Strahlen-Stacheldraht tile.barbed_wire_wither.name=Withernder Stacheldraht tile.barrel_antimatter.name=Magnetischer Antimaterie-BehÀlter tile.barrel_corroded.name=Verrostetes Fass @@ -3437,13 +3901,9 @@ tile.barrel_steel.name=Stahlfass tile.barrel_tcalloy.name=Technetiumstahlfass tile.barricade.name=SandsÀcke tile.basalt.name=Basalt -tile.basalt_asbestos.name=Asbestreicher Basalt tile.basalt_brick.name=Basaltziegel -tile.basalt_fluorite.name=Fluoritreicher Basalt -tile.basalt_gem.name=Edelsteinreicher Basalt tile.basalt_polished.name=Polierter Basalt tile.basalt_smooth.name=Glatter Basalt -tile.basalt_sulfur.name=Schwefelreicher Basalt tile.basalt_tiles.name=Basaltfliesen tile.blast_door.name=Abschluss-SprengtÃŒr tile.block_actinium.name=Actiniumblock @@ -3572,7 +4032,6 @@ tile.brick_concrete_cracked.name=Rissige Betonziegel tile.brick_concrete_cracked_stairs.name=Rissige Betonziegeltreppe tile.brick_concrete_marked.name=Beschriebene Betonziegel tile.brick_concrete_mossy.name=Bemooste Betonziegel -tile.brick_concrete_mossy.name=Bemooste Betonziegeltreppe tile.brick_ducrete.name=Ducreteziegel tile.brick_ducrete_stairs.name=Ducreteziegeltreppe tile.brick_dungeon.name=Berzelianitziegel @@ -3594,6 +4053,7 @@ tile.brick_light.name=Helle Ziegel tile.brick_light_stairs.name=Helle Ziegeltreppe tile.brick_obsidian.name=Obsidianziegel tile.brick_obsidian_stairs.name=Obsidianziegeltreppe +tile.brick_red.name=Ziegel (Roter Raum) tile.brick_slab.brick_asbestos.name=Asbestziegelstufe tile.brick_slab.brick_compound.name=Verbundstufe tile.brick_slab.brick_fire.name=Schamottsteinstufe @@ -3612,6 +4072,7 @@ tile.capacitor_bus.desc=Output fÃŒr Kondensatoren$Kann in einer geraden Linie an tile.capacitor_copper.name=Kupferkondensator tile.capacitor_gold.name=Goldkondensator tile.capacitor_niobium.name=Niobkondensator +tile.capacitor_schrabidate.name=Schrabidatkondensator tile.capacitor_tantalium.name=Tantalkondensator tile.capacitor.desc=Input: Oben$Output: Unten, ÃŒber Kondensator-Bus tile.charge_c4.name=Abrissladung @@ -3621,6 +4082,10 @@ tile.charge_semtex.name=Semtex-Bergbauladung tile.charger.name=Ladestation tile.cheater_virus.name=Geliertes Euphemium tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block +tile.chimney_brick.name=Schornstein +tile.chimney_brick.desc=Kann mit Abgasrohren verbunden werden$Reduziert Abgas um 75%% +tile.chimney_industrial.name=Industrieschornstein +tile.chimney_industrial.desc=Kann mit Abgasrohren verbunden werden$Reduziert Abgas um 90%% tile.chlorine_gas.name=Chlorgas tile.cluster_aluminium.name=Aluminiumerzcluster tile.cluster_copper.name=Kupfererzcluster @@ -3656,13 +4121,16 @@ tile.concrete_colored.red.name=Roter Beton tile.concrete_colored.silver.name=Hellgrauer Beton tile.concrete_colored.white.name=Weißer Beton tile.concrete_colored.yellow.name=Gelber Beton +tile.concrete_colored_ext.bronze.name=Builder's Choice Concrete - Bronzeplatten tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Gefahrenstreifen tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Tiefes Indigo tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrieller Ton tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrieller Streifen tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - MÀnnliches Pink tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysteriöses Lila +tile.concrete_colored_ext.sand.name=Builder's Choice Concrete - WÃŒstensturm tile.concrete_pillar.name=StahlbetonsÀule +tile.concrete_slab.asphalt.name=Asphaltstufe tile.concrete_slab.concrete.name=Betonfliesenstufe tile.concrete_slab.concrete_asbestos.name=Asbestbetonstufe tile.concrete_slab.concrete_smooth.name=Betonstufe @@ -3674,18 +4142,34 @@ tile.concrete_stairs.name=Betonfliesentreppe tile.concrete_super.name=Super Beton tile.concrete_super_broken.name=Schimmliger Schutt tile.conveyor.name=Förderband +tile.conveyor.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.conveyor_chute.name=FörderschÃŒtte +tile.conveyor_chute.desc=Bewegt Items nach unten$Die unterste SchÃŒtte verhÀlt sich wie ein normales Förderband tile.conveyor_double.name=Zweispuriges Förderband +tile.conveyor_double.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen +tile.conveyor_express.name=Expressförderband +tile.conveyor_express.desc=Bewegt Items sehr schnell$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.conveyor_lift.name=Kettenaufzug +tile.conveyor_lift.desc=Bewegt Items nach oben$Benötigt mindestens zwei AufzÃŒge ÃŒbereinander um richtig zu funktionieren tile.conveyor_triple.name=Dreispuriges Förderband +tile.conveyor_triple.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.corium_block.name=Corium tile.crane_boxer.name=Förderband-Verpacker +tile.crane_boxer.desc=LÀdt eine konfigurierbare Menge Stacks in Boxen$Rechstclick mit Schraubenzieher um Eingang zu definieren$Shiftclick mit Schraubenzieher um Ausgang zu definieren$Zweimal clicken, um gegenÃŒberliegende Seite zu definieren tile.crane_extractor.name=Förderband-Auswerfer +tile.crane_extractor.desc=Nimmt Items aus behÀltern und legt sie auf FörderbÀnder$Hat bis zu 9 Filterslots mit Black- und Whitelist$Rechstclick mit Schraubenzieher um Ausgang zu definieren$Shiftclick mit Schraubenzieher um Eingang zu definieren$Zweimal clicken, um gegenÃŒberliegende Seite zu definieren tile.crane_grabber.name=Förderband-Greifer +tile.crane_grabber.desc=Nimmt Items von vorbeilaufenden FörderbÀndern und legt sie in BehÀlter$Nimmt nur Items von der nÀhesten Spur$Hat bis zu 9 Filterslots mit Black- und Whitelist$Rechstclick mit Schraubenzieher um Eingang zu definieren$Shiftclick mit Schraubenzieher um Ausgang zu definieren$Zweimal clicken, um gegenÃŒberliegende Seite zu definieren tile.crane_inserter.name=Förderband-Einsetzer +tile.crane_inserter.desc=Akzeptiert Items von FörderbÀndern und legt sie in BehÀlter$Rechstclick mit Schraubenzieher um Eingang zu definieren$Shiftclick mit Schraubenzieher um Ausgang zu definieren$Zweimal clicken, um gegenÃŒberliegende Seite zu definieren +tile.crane_partitioner.name=Erzauflöser-Partitionierer +tile.crane_partitioner.desc=Speichert Input fÃŒr den Erzazflöser$und gibt sie in der benötigten Itemanzahl aus.$UngÃŒltige Items werden auch gespeichert, und mÃŒssen seitlich entfernt werden. tile.crane_router.name=Förderband-Sortierer +tile.crane_router.desc=Sortiert Items basierend auf eingestellte Kriterien$Seiten können als Blacklist, Whitelist oder Wildcard eingestellt werden$Widlcard-Seiten werden nur verwendet, wenn kein anderer Filter zutrifft tile.crate_splitter.name=Förderband-Teiler +tile.crane_splitter.desc=Teilt Items und Stacks gleichmÀßig auf zwei FörderbÀnder$ZÀhlt selbst als Förderband, kann also direkt in Einsetzer und Sortierer fÃŒhren tile.crane_unboxer.name=Förderband-Entpacker +tile.crane_unboxer.desc=Öffnet boxen$Rechstclick mit Schraubenzieher um Ausgang zu definieren$Shiftclick mit Schraubenzieher um Eingang zu definieren$Zweimal clicken, um gegenÃŒberliegende Seite zu definieren tile.crashed_bomb.name=BlindgÀnger tile.crate.name=Vorratskiste tile.crate_ammo.name=Sternenmetallkiste @@ -3697,6 +4181,7 @@ tile.crate_lead.name=Gefahrenstoffkiste tile.crate_metal.name=Maschinenkiste tile.crate_red.name=Rote Kiste tile.crate_steel.name=Stahlkiste +tile.crate_template.name=Vorlagenkiste tile.crate_tungsten.name=Wolframkiste tile.crate_weapon.name=Waffenkiste tile.crystal_hardened.name=GehÀrteter Dunkler Kristall @@ -3705,6 +4190,8 @@ tile.crystal_virus.name=Dunkler Kristall tile.deco_aluminium.name=Aluminium-Dekoblock tile.deco_asbestos.name=Asbestdach tile.deco_beryllium.name=Beryllium-Dekoblock +tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL +tile.deco_crt.name=Alter Röhrenbildschirm tile.deco_emitter.name=Deko-Lichtemitter tile.deco_lead.name=Blei-Dekoblock tile.deco_rbmk.name=RBMK-Dekoblock @@ -3736,6 +4223,7 @@ tile.deco_pipe_rim_red.name=Rotes Stahlrohr mit Rand tile.deco_pipe_rim_marked.name=Gasrohr mit Rand tile.deco_steel.name=Stahl-Dekoblock tile.deco_titanium.name=Titan-Dekoblock +tile.deco_toaster.name=Kaputter Toaster tile.deco_tungsten.name=Wolfram-Dekoblock tile.decon.name=Spieler-Dekontaminierer tile.depth_brick.name=Tiefenziegel @@ -3755,9 +4243,16 @@ tile.dfc_stabilizer.name=DFC-Stabilisator tile.dirt_dead.name=Tote Erde tile.dirt_oily.name=Ölige Erde tile.drill_pipe.name=BohrgestÀnge +tile.drone_crate.name=Transportdronen-Kiste +tile.drone_crate_provider.name=Logistik-Anbieterkiste +tile.drone_crate_requester.name=Logistik-Abnehmerkiste +tile.drone_dock.name=Logistikdronen-Dock +tile.drone_waypoint.name=Transportdronen-Wegpunkt +tile.drone_waypoint_request.name=Logistikdronen-Wegpunkt tile.door_bunker.name=BunkertÃŒr tile.door_metal.name=MetalltÃŒr tile.door_office.name=BÃŒrotÃŒr +tile.door_red.name=Rote TÃŒr tile.ducrete.name=Ducretefliese tile.ducrete_stairs.name=Ducretefliesentreppe tile.ducrete_smooth.name=Ducrete @@ -3777,7 +4272,9 @@ tile.factory_titanium_furnace.name=Einfache Fabrikzugriffsluke tile.factory_titanium_hull.name=Fabrikblock tile.fallout.name=Fallout tile.fan.name=Ventilator +tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen tile.fence_metal.name=Maschendrahtzaun +tile.fence_metal_post.name=Maschendrahtzaun-Pfahl tile.field_disturber.name=Hochenergiefeld-Jammer tile.fire_digamma.name=Verweilendes Digamma tile.fire_door.name=BrandschutztÃŒr @@ -3788,13 +4285,17 @@ tile.fireworks.color=Farbe: %s tile.fissure_bomb.name=Geofissur-Bombe tile.flame_war.name=Flamewar aus der Box tile.float_bomb.name=Schwebebombe +tile.floodlight.name=Elektrischer Scheinwerfer tile.fluid_duct.name=Universelles FlÃŒssigkeitsrohr (Veraltet) tile.fluid_duct_box.name=Universelles FlÃŒssigkeitsrohr (Boxrohr) +tile.fluid_duct_exhaust.name=Abgasrohr tile.fluid_duct_gauge.name=Flussmessrohr tile.fluid_duct_gauge.desc=Rohr welches anzeight, wie viel FlÃŒssigkeit$sich pro Tick im Netzwerk bewegt.$Geteilte Netzwerke die ÃŒber FÀsser oder Tanks$verbunden sind, werden als ein einzelnes gezÀhlt. tile.fluid_duct_neo.name=Universelles FlÃŒssigkeitsrohr tile.fluid_duct_paintable.name=Geschirmtes universelles FlÃŒssigkeitsrohr (FÀrbbar) tile.fluid_duct_solid.name=Geschirmtes universelles FlÃŒssigkeitsrohr (Veraltet) +tile.fluid_switch.name=Redstone-Ventil +tile.fluid_valve.name=Ventil tile.foam_layer.name=Schaumdecke tile.foundry_basin.name=Gussbecken tile.foundry_channel.name=Gusskanal @@ -3807,6 +4308,8 @@ tile.frozen_dirt.name=Gefrorene Erde tile.frozen_grass.name=Gefrorenes Gras tile.frozen_log.name=Gefrorener Baumstamm tile.frozen_planks.name=Gefrorene Holzbretter +tile.machine_furnace_brick_off.name=Ziegelofen +tile.machine_furnace_brick_on.name=Ziegelofen tile.furnace_combination.name=Kombinationsofen tile.furnace_combination.desc=Großer Ofen welcher Holzhokle und Kohlekoks herstellen kann.$Erzeugt flÃŒssige Nebenprodukte.$WÀrmetransferrate: ΔT*0.25 TU/t tile.furnace_iron.name=Eiserner Ofen @@ -3856,7 +4359,7 @@ tile.gravel_diamond.name=Diamantkies tile.gravel_obsidian.name=Gebrochener Obsidian tile.hadron_access.name=Teilchenbeschleuniger-Zugriffskonsole tile.hadron_analysis.name=Teilchenbeschleuniger-Analysekammernwand -tile.hadron_analysis.name=Teilchenbeschleuniger-Analysekammernfenster +tile.hadron_analysis_glass.name=Teilchenbeschleuniger-Analysekammernfenster tile.hadron_coil_alloy.name=Dichte Supraleiterspule tile.hadron_coil_chlorophyte.name=Dichte GrÃŒnalgenspule tile.hadron_coil_gold.name=Dichte Goldspule @@ -3866,6 +4369,8 @@ tile.hadron_coil_neodymium.name=Dichte Neodymspule tile.hadron_coil_schrabidate.name=Dichte Schrabidatspule tile.hadron_coil_schrabidium.name=Dichte Schrabidiumspule tile.hadron_coil_starmetal.name=Dichte Sternenmetallspule +tile.hadron_cooler.name=Teilchenbeschleuniger-KÃŒhlungseinheit +tile.hadron_cooler_mk2.nameTeilchenbeschleuniger-KÃŒhlungseinheit - Das Palindrome-Spezial tile.hadron_core.name=Teilchenbeschleuniger-Kernkomponente tile.hadron_diode.name=Schottky-Partikeldiode tile.hadron_plating.name=Teilchenbeschleuniger-Außenwand @@ -3892,7 +4397,22 @@ tile.heater_oilburner.desc=ErzÀuft WÀrme aus fluiden Brennstoffen.$Kann mit ei tile.heater_oven.name=Heizofen tile.heater_oven.desc=Erzeugt WÀrme aus Festbrennstoff.$Nimmt von unten WÀrme mit 50%% Effizienz auf. tile.hev_battery.name=Anzugs-Batterie +tile.machine_hydrotreater.name=Hydrotreater tile.impact_dirt.name=Versengte Erde +tile.icf.name=TrÀgheitsfusionsreaktor (ICF) +tile.icf_block.name=ICF-Laser +tile.icf_component.name=ICF-StabilitÀtselement +tile.icf_component.structure.name=ICF-GehÀuse +tile.icf_component.structure_bolted.name=ICF-GehÀuse (Genietet) +tile.icf_component.vessel.name=ICF-EindÀmmungsgefÀß +tile.icf_component.vessel_welded.name=ICF-EindÀmmungsgefÀß (Verschwißt) +tile.icf_controller.name=ICF-Lasersteuerung +tile.icf_laser_component.capacitor.name=ICF-Laser-Kondensator +tile.icf_laser_component.casing.name=ICF-Laser-GehÀuse +tile.icf_laser_component.cell.name=ICF-Laser-Zelle +tile.icf_laser_component.emitter.name=ICF-Laser-Blitzröhre +tile.icf_laser_component.port.name=ICF-Laser-Anschluss +tile.icf_laser_component.turbo.name=ICF-Laser-Turbolader tile.iter.name=Kernfusionsreaktor tile.ladder_aluminium.name=Aluminiumleiter tile.ladder_cobalt.name=Kobaltleiter @@ -3909,18 +4429,28 @@ tile.lamp_tritium_blue_off.name=Blaue Tritiumlampe tile.lamp_tritium_blue_on.name=Blaue Tritiumlampe tile.lamp_tritium_green_off.name=GrÃŒne Tritiumlampe tile.lamp_tritium_green_on.name=GrÃŒne Tritiumlampe -tile.launch_pad.name=Raketenabschussrampe +tile.lantern.name=Laterne +tile.lantern_behemoth.name=Alte Laterne +tile.launch_pad.name=Silo-Startrampe +tile.launch_pad_large.name=Startrampe +tile.launch_pad_rusted.name=Alte Startrampe tile.launch_table.name=Große Startrampe tile.leaves_layer.name=Totes Laub tile.lox_barrel.name=LOX-Fass tile.machine_amgen.name=Umgebungsstrahlungs-Generator +tile.machine_ammo_press.name=Munitionspresse +tile.machine_arc_furnace.name=Electrischer Lichtbogenofen tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen +tile.machine_arc_welder.name=Lichtbogenschweißer tile.machine_armor_table.name=RÃŒstungsmodifikationstisch +tile.machine_ashpit.name=Aschekasten +tile.machine_ashpit.desc=Sammelt Asche von FeuerbÃŒchsen und Heizöfen tile.machine_assembler.name=Fertigungsmaschine tile.machine_assemfac.name=Fertigungsfabrik tile.machine_autocrafter.name=Automatische Werkbank tile.machine_autosaw.name=Automatische KreissÀge +tile.machine_autosaw.desc=Schneidet Pflanzen nieder, pflanzt BÀume nach$Akzeptiert:$-Holzöl$-Ethanol$-Fischöl$-Schweröl tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock @@ -3928,8 +4458,7 @@ tile.machine_boiler.name=Boiler tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$WÀrmestransferrate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Elektrischer ÖlwÀrmer tile.machine_boiler_electric_on.name=Elektrischer ÖlwÀrmer -tile.machine_boiler_off.name=ÖlwÀrmer -tile.machine_boiler_on.name=ÖlwÀrmer +tile.machine_boiler_off.name=Alter Boiler tile.machine_catalytic_cracker.name=Katalytischer Cracking-Turm tile.machine_catalytic_reformer.name=Katalytischer Reformer tile.machine_centrifuge.name=Zentrifuge @@ -3945,9 +4474,12 @@ tile.machine_combine_factory.name=CMB-Stahl Hochofen tile.machine_combustion_engine.name=Industrieller Verbrennungsmotor tile.machine_compressor.name=Kompressor tile.machine_condenser.name=Dampfkondensierer +tile.machine_condenser_powered.name=Hochleistungs-Dampfkondensierer tile.machine_controller.name=Reaktorfernsteuerung tile.machine_converter_he_rf.name=HE zu RF Konverter tile.machine_converter_rf_he.name=RF zu HE Konverter +tile.machine_conveyor_press.name=Förderband-Presse +tile.machine_conveyor_press.desc=Band bewegt sich von links nach rechts$Rechtsclick um Stempel zu montieren$Stempel kann mit Schraubenzieher entfernt werden tile.machine_crucible.name=Schmelztiegel tile.machine_crystallizer.name=Erzauflöser tile.machine_cyclotron.name=Zyklotron @@ -3961,10 +4493,13 @@ tile.machine_difurnace_on.name=Hochofen tile.machine_difurnace_rtg_off.name=Atomarer Hochofen tile.machine_difurnace_rtg_on.name=Atomarer Hochofen tile.machine_dineutronium_battery.name=Spark Energiespeicherblock +tile.machine_drain.name=Ausgussrohr tile.machine_drill.name=Automatischer Minenbohrer tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_on.name=Elektrischer Ofen +tile.machine_electrolyser.name=ElectrolysegerÀt tile.machine_epress.name=Hydraulische Presse +tile.machine_exposure_chamber.name=Bestrahlungskammer tile.machine_excavator.name=Großer Minenbohrer tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU @@ -3973,10 +4508,15 @@ tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Kraftfeldgenerator tile.machine_fracking_tower.name=Hydraulischer Frackingturm tile.machine_fraction_tower.name=Fraktionierungsturm +tile.machine_funnel.name=Kombinationstrichter +tile.machine_funnel.desc=Verbindet Items in einem 2x2 oder 3x3 Craftingfeld$Oben: Input$Unten: Output$Seite: Output fÃŒr Item-Eingang tile.machine_gascent.name=Gaszentrifuge tile.machine_generator.name=Atomreaktor (Alt) tile.machine_geo.name=Geothermiegenerator tile.machine_hephaestus.name=Geothermischer WÀrmetauscher +tile.machine_icf_press.name=ICF-Brennstoffpellet-Fabrikant +tile.machine_industrial_boiler.name=Industrieller Boiler +tile.machine_industrial_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$WÀrmestransferrate: ΔT*0.01 TU/t$Überdrucksicher tile.machine_industrial_generator.name=Industrieller Generator tile.machine_keyforge.name=Schlossertisch tile.machine_large_turbine.name=Industrielle Dampfturbine @@ -3990,17 +4530,21 @@ tile.machine_mixer.name=Industrieller Mixer tile.machine_nuke_furnace_off.name=Atombetriebener Ofen tile.machine_nuke_furnace_on.name=Atombetriebener Ofen tile.machine_orbus.name=Schwerer Magnetischer LagerbehÀlter +tile.machine_ore_slopper.name=Bedrockerzmaschine tile.machine_powerrtg.name=PT-Isotopenzelle tile.machine_press.name=Befeuerte Presse tile.machine_puf6_tank.name=Plutoniumhexafluorid-Tank tile.machine_pumpjack.name=Pferdekopfpumpe +tile.machine_pyrooven.name=Pyrolyseofen tile.machine_radar.name=Radar +tile.machine_radar_large.name=Großes Radar tile.machine_radgen.name=Strahlenbetriebener Generator tile.machine_reactor.name=Brutreaktor tile.machine_reactor_on.name=Brutreaktor tile.machine_reactor_small.name=Atomreaktor tile.machine_refinery.name=Ölraffinerie tile.machine_reix_mainframe.name=Rei-X Hauptrechner (WIP) +tile.machine_rotary_furnace.name=Rotationshochofen tile.machine_rtg_blue.name=Konvektionsgenerator tile.machine_rtg_cyan.name=Schrabidium-Zerfallsenergie-Generator (WIP) tile.machine_rtg_furnace_off.name=RTG-Ofen @@ -4021,6 +4565,7 @@ tile.machine_shredder.name=Brecher tile.machine_silex.name=Laser-Isotopentrenner (SILEX) tile.machine_siren.name=Sirene tile.machine_solar_boiler.name=Solarturmboiler +tile.machine_soldering_station.name=Lötstation tile.machine_solidifier.name=Industrielle Verfestigungsmaschine tile.machine_spp_bottom.name=NPE-Potentialgenerator (Unterteil) tile.machine_spp_top.name=NPE-Potentialgenerator (Oberteil) @@ -4028,6 +4573,8 @@ tile.machine_steam_engine.name=Dampfmaschine tile.machine_steam_engine.desc=Effizienz: 85%% tile.machine_stirling.name=Stirlingmotor tile.machine_stirling.desc=Erzeugt Energie aus WÀrme. Benötigt externe Hitzequelle.$WÀrmestransferrate: T*0.1 TU/t$Maximalaufnahme: 300 TU/t$Effizienz: 50%% +tile.machine_stirling_creative.name=Kreativer Stirlingmotor +tile.machine_stirling_creative.desc=Erzeugt Energie aus WÀrme. Benötigt externe Hitzequelle.$WÀrmestransferrate: T*0.1 TU/t$Keine Maximalaufnahme/t$Effizienz: 100%% tile.machine_stirling_steel.name=Schwerer Stirlingmotor tile.machine_stirling_steel.desc=Erzeugt Energie aus WÀrme. Benötigt externe Hitzequelle.$Verwendet ein schwereres Zahnrad und vertrÀgt höhere Temparaturen.$WÀrmestransferrate: T*0.1 TU/t$Maximalaufnahme: 1500 TU/t$Effizienz: 50%% tile.machine_storage_drum.name=AtommÃŒll-Lagertrommel @@ -4046,6 +4593,8 @@ tile.machine_turbofan.name=Turbofan tile.machine_uf6_tank.name=Uranhexafluorid-Tank tile.machine_vacuum_distill.name=Vakuumraffinerie tile.machine_waste_drum.name=Abklingbecken-Trommel +tile.machine_wood_burner.name=Brennholzgenerator +tile.machine_wood_burner.desc=Erzeugt 100HE/t aus Items$Sammelt Asche$Kann 40mB/s FlÃŒssigkeiten mit 50%% Effizienz verbrennen tile.machine_well.name=Ölbohrturm tile.machine_zirnox.name=ZIRNOX Atomreaktor tile.marker_structure.name=Multiblock-Strukturvorlage @@ -4082,10 +4631,16 @@ tile.nuke_tsar.name=Tsar Bombe tile.oil_duct.name=Ölrohr tile.oil_duct_solid.name=VerstÀrktes Ölrohr tile.oil_pipe.name=Rohölrohr +tile.oil_spill.name=Ölteppich tile.ore_alexandrite.name=Alexandriterz tile.ore_aluminium.name=Aluminiumerz tile.ore_asbestos.name=Asbesterz tile.ore_australium.name=Australisches Erz +tile.ore_basalt_asbestos.name=Asbestreicher Basalt +tile.ore_basalt_fluorite.name=Fluoritreicher Basalt +tile.ore_basalt_gem.name=Edelsteinreicher Basalt +tile.ore_basalt_molysite.name=Molysitreicher Basalt +tile.ore_basalt_sulfur.name=Schwefelreicher Basalt tile.ore_bedrock.name=Bedrock-Erz tile.ore_bedrock_coltan.name=Bedrock-Coltanerz tile.ore_bedrock_oil.name=Bedrock-Ölvorkommen @@ -4114,6 +4669,11 @@ tile.ore_gneiss_uranium.name=Schiefer-Uranerz tile.ore_gneiss_uranium_scorched.name=Verschmortes Schiefer-Uranerz tile.ore_lead.name=Bleierz tile.ore_lignite.name=Braunkohleerz +tile.ore_meteor.aluminium.name=Meteoriten-Aluminiumerz +tile.ore_meteor.cobalt.name=Meteoriten-Kobalterz +tile.ore_meteor.copper.name=Meteoriten-Kupfererz +tile.ore_meteor.iron.name=Meteoriten-Eisenerz +tile.ore_meteor.rareearth.name=Meteoriten-Seltenerdenerz tile.ore_meteor_aluminium.name=Meteoriten-Aluminiumerz tile.ore_meteor_copper.name=Meteoriten-Kupfererz tile.ore_meteor_lead.name=Meteoriten-Bleierz @@ -4142,6 +4702,11 @@ tile.ore_random.name=%s-Erz tile.ore_rare.name=Seltenerden-Erz tile.ore_reiium.name=Reiit tile.ore_schrabidium.name=Schrabidiumerz +tile.ore_sellafield_diamond.name=Sellafit-Diamanterz +tile.ore_sellafield_emerald.name=Sellafit-Smaragderz +tile.ore_sellafield_radgem.name=Sellafite-Edelsteinerz +tile.ore_sellafield_schrabidium.name=Sellafit-Schrabidiumerz +tile.ore_sellafield_uranium_scorched.name=Verschmortes Sellafit-Uranerz tile.ore_sulfur.name=Schwefelerz tile.ore_tektite_osmiridium.name=Osmiridiumreiches Tektit tile.ore_thorium.name=Thoriumerz @@ -4154,11 +4719,14 @@ tile.ore_uranium_scorched.name=Verschmortes Uranerz tile.ore_verticium.name=DollargrÃŒnes Mineral tile.ore_volcano.name=Thermale Fissur tile.ore_weidanium.name=Weidit +tile.pedestal.name=Podest tile.pink_barrel.name=Kerosinfass tile.pink_log.name=Pinkes Holz tile.pink_planks.name=Pinke Holzbretter tile.pink_slab.name=Pinke Holzstufe tile.pink_stairs.name=Pinke Holztreppen +tile.piston_inserter.name=Einsetzer-Kolben +tile.piston_inserter.desc=Kann ein Item halten$Wenn mit Redstone aktiviert, setzt das Item in gebohrten Graphit ein$Alle Items in gebohrten Graphitblöcken in der Linie werden einen Block verschoben$Benötigt einen Luftblock zwischen sich selbst und dem Graphit tile.plant_dead.name=Tote Pflanze tile.plant_flower.cd0.name=Senf-Weide tile.plant_flower.cd1.name=Senf-Weide @@ -4173,6 +4741,7 @@ tile.plant_tall.cd4.name=Senf-Weide (Reif) tile.plant_tall.weed.name=Hanf tile.plasma.name=Plasma tile.plasma_heater.name=Plasmaerhitzer +tile.plushie.name=%s PlÃŒschfigur tile.pole_satellite_receiver.name=SatellitenschÃŒssel tile.pole_top.name=Antennenspitze tile.press_preheater.name=Presse-Vorheizer @@ -4180,6 +4749,35 @@ tile.pribris.name=RBMK-Schutt tile.pribris_burning.name=Flammender RBMK-Schutt tile.pribris_digamma.name=GeschwÀrzter RBMK-Schutt tile.pribris_radiating.name=GlÃŒhender RBMK-Schutt +tile.pump_electric.name=Elektrische Grundwasserpumpe +tile.pump_electric.desc=Nutzt Strom um Grundwasser hochzupumpen$Erzeugt bis zu 10.000mB/t$Muss unter Y:70 platziert werden +tile.pump_steam.name=Dampfbetriebene Grundwasserpumpe +tile.pump_steam.desc=Nutzt Dampf um Grundwasser hochzupumpen$Erzeugt bis zu 1.000mB/t$Muss unter Y:70 platziert werden +tile.pwr_block.name=PWR +tile.pwr_casing.name=PWR DruckbehÀlter +tile.pwr_casing.desc=Muss alle internen Teile des PWRs abdecken$Platzierung: HÃŒlle +tile.pwr_channel.name=PWR KÃŒhlmittelkanal +tile.pwr_channel.desc=Nutzt Hitze aus der HÃŒlle um KÃŒhlmittle zu erhitzen$Platzierung: Egal +tile.pwr_control.name=PWR SteuerstÀbe +tile.pwr_control.desc=Reguliert verbundene BrennstÀbe$Platzierung: Gitter, zwischen BrennstÀben +tile.pwr_controller.name=PWR Controller +tile.pwr_controller.desc=Zugangsterminal zum PWR$Platzierung: HÃŒlle, nur eines pro Reaktor$Rechtsclick um Reaktor zusammenzubauen +tile.pwr_fuel.name=PWR BrennstÀbe +tile.pwr_fuel.desc=Erhöht die KapazitÀt fÃŒr Brennelemente$Platzierung: Gitter, fÃŒr höhere ReaktivitÀt +tile.pwr_heatex.name=PWR WÀrmetauscher +tile.pwr_heatex.desc=Gleicht Kerntemparatur mit HÃŒlltemparatur aus$Platzierung: Egal +tile.pwr_heatsink.name=PWR KÃŒhlkörper +tile.pwr_heatsink.desc=Erhöht die WÀrmekapazitÀt der Kerns um 5%%$KÃŒhlkanÀle und WÀrmetauscher werden etwas weniger effektiv$Platzierung: Egal +tile.pwr_neutron_source.name=PWR Neutronenquelle +tile.pwr_neutron_source.desc=FÃŒgt dem Kern 20 Flux hinzu$Platzierung: Egal$Flux erreicht den Kern nur, wenn SteuerstÀbe offen sind +tile.pwr_port.name=PWR Zugangsport +tile.pwr_port.desc=Erlaubt IO fÃŒr Items und FlÃŒssigkeiten$Platzierung: HÃŒlle +tile.pwr_reflector.name=PWR Neutronenreflektor +tile.pwr_reflector.desc=Reflektier Neutronen auf BrennstÀbe zurÃŒck$Platzierung: HÃŒlle, fÃŒr höhere ReaktivitÀt$GÃŒltiger Block fÃŒr HÃŒlle +tile.radar_screen.name=Radarbildschirm +tile.radio_telex.name=Telex-Maschine +tile.radio_torch_counter.name=Redstone-over-Radio ItemzÀhler +tile.radio_torch_counter.desc=Kann auf ebenen FlÀchen oder Komparator-kompatiblen Blöcken platziert werden$Signal basiert auf Anzahl passender Items tile.radio_torch_receiver.name=Redstone-over-Radio EmpfÀnger tile.radio_torch_receiver.desc=Kann auf ebenen FlÀchen oder Komparator-kompatiblen Blöcken platziert werden tile.radio_torch_sender.name=Redstone-over-Radio Sender @@ -4189,6 +4787,15 @@ tile.radiorec.name=UKW Radio tile.rail_booster.name=Hochgeschwindigkeits-Boosterschienen tile.rail_highspeed.name=Hochgeschwindigkeitsschienen tile.rail_narrow.name=Schmalspurschienen +tile.rail_large_buffer.name=Normalspur-Prellbock (5m) +tile.rail_large_curve.name=Normalspur-Kurve (5m) +tile.rail_large_curve_7.name=Normalspur-Kurve (7m) +tile.rail_large_curve_9.name=Normalspur-Kurve (9m) +tile.rail_large_ramp.name=Normalspur-Rampe (5m) +tile.rail_large_straight.name=Normalspur-Schiene (5m) +tile.rail_large_straight_short.name=Normalspur-Schiene (1m) +tile.rail_large_switch.name=Normalspur-Weiche (15m, Links) +tile.rail_large_switch_flipped.name=Normalspur-Weiche (15m, Rechts) tile.rail_wood.name=Holzschienen tile.rbmk_absorber.name=RBMK Bor-Neutronenabsorber tile.rbmk_blank.name=RBMK Strukturteil @@ -4222,10 +4829,16 @@ tile.reactor_inserter.name=Reaktor-Brennstoffeinlass tile.red_barrel.name=Explosives Fass tile.red_cable.name=Rotes Kupferkabel tile.red_cable_classic.name=Rotes Kupferkabel (Klassisch) +tile.red_cable_gauge.name=StrommessgerÀt +tile.red_cable_gauge.desc=Kabel welches anzeight, wie viel Strom$sich pro Tick im Netzwerk bewegt.$Geteilte Netzwerke die ÃŒber Energiespeicherblöcke$verbunden sind, werden als ein einzelnes gezÀhlt. tile.red_cable_paintable.name=Geschirmtes rotes Kupferkabel (FÀrbbar) tile.red_connector.name=StromverbindungsstÃŒck tile.red_pylon.name=Strommasten tile.red_pylon_large.name=Hochspannungsmasten +tile.red_pylon_medium_steel.name=StÀhlerner mittelgroßer Strommasten +tile.red_pylon_medium_steel_transformer.name=StÀhlerner mittelgroßer Strommasten mit Transformator +tile.red_pylon_medium_wood.name=Hölzerner mittelgroßer Strommasten +tile.red_pylon_medium_wood_transformer.name=Hölzerner mittelgroßer Strommasten mit Transformator tile.red_wire_coated.name=Geschirmtes rotes Kupferkabel tile.reinforced_brick.name=VerstÀrkter Stein tile.reinforced_brick_stairs.name=VerstÀrkte Steintreppe @@ -4267,12 +4880,20 @@ tile.sellafield_2.name=Kochendes Sellafit tile.sellafield_3.name=Flammendes Sellafit tile.sellafield_4.name=Infernales Sellafit tile.sellafield_core.name=Sellafit-Corium +tile.sellafield_bedrock.name=Bedrock-Sellafit tile.sellafield_slaked.name=Gelöschtes Sellafit tile.semtex.name=Semtex +tile.silo_hatch.name=Siloluke +tile.silo_hatch_large.name=Große Siloluke +tile.sliding_blast_door.name=SprengtÃŒr tile.solar_mirror.name=Heliostatspiegel tile.soyuz_capsule.name=Landekapsel tile.soyuz_launcher.name=Soyuz-Startplatform tile.spikes.name=Stacheln +tile.snowglobe.name=Schneekugel +tile.spotlight_incandescent.name=KÀfiglampe +tile.spotlight_fluoro.name=Leuchtstoffröhre +tile.spotlight_halogen.name=Halogen-Flutlicht tile.stalactite.asbestos.name=Asbest-Stalaktit tile.stalactite.sulfur.name=Schwefelhaltiger Stalaktit tile.stalagmite.asbestos.name=Asbest-Stalagmit @@ -4290,6 +4911,8 @@ tile.stone_cracked.name=Rissiger Stein tile.stone_depth.name=Tiefenfels tile.stone_depth_nether.name=Nether-Tiefenfels tile.stone_gneiss.name=Graphitschiefer +tile.stone_keyhole.name=Seltsamer Ziegel (Roter Raum) +tile.stone_keyhole_meta.name=Strange Red Room Brick tile.stone_porous.name=Poröser Stein tile.stone_resource.asbestos.name=Chrysotil tile.stone_resource.bauxite.name=Bauxit @@ -4297,6 +4920,7 @@ tile.stone_resource.hematite.name=HÀmatit tile.stone_resource.limestone.name=Kalkstein tile.stone_resource.malachite.name=Malachit tile.stone_resource.sulfur.name=Schwefelhaltiger Stein +tile.struct_icf_core.name=TrÀgheitsfusionsreaktor-Kernkomponente tile.struct_iter_core.name=Fusionsreaktor-Kernkomponente tile.struct_launcher.name=Startrampe-Komponentenblock tile.struct_launcher_core.name=Kompaktrampe-Kernkomponente @@ -4340,6 +4964,7 @@ tile.turret_rocket.name=RaketengeschÃŒtz tile.turret_richard.name=RaketenwerfergeschÃŒtz "Richard" tile.turret_spitfire.name=GeschÃŒtz fÃŒr das ich noch keinen Namen habe [WIP] tile.turret_sentry.name=Selbstschussanlage "Brown" +tile.turret_sentry_damaged.name=Selbstschussanlage "Edwin" tile.turret_tau.name=TauonengeschÃŒtz tile.turret_tauon.name=XVL1456-PrototypengeschÃŒtz "Tauon" tile.vacuum.name=Vakuum @@ -4350,6 +4975,7 @@ tile.vent_cloud.name=Wolken-Auslass tile.vent_pink_cloud.name=Pinker Wolken-Auslass tile.vitrified_barrel.name=Fass voll vitrifiziertem AtommÃŒll tile.volcano_core.name=Vulkankern +tile.volcano_rad_core.name=Rad-Vulkankern tile.volcanic_lava_block.name=Vulkanische Lava tile.waste_earth.name=Totes Gras tile.waste_leaves.name=Tote BlÀtter @@ -4409,7 +5035,7 @@ trait.rbmx.coreTemp=Kernentropie: %s trait.rbmx.depletion=Verkrustungsgraad: %s trait.rbmx.diffusion=Fluss: %s trait.rbmx.fluxFunc=Zerstörungsfunktion: %s -trait.rbmk.funcType=Funktionsspezifikation: %s +trait.rbmx.funcType=Funktionsspezifikation: %s trait.rbmx.heat=Verkrustung pro Tick bei voller Kraft: %s trait.rbmx.melt=Kollapstiefe: %s trait.rbmk.neutron.any.x=Alle nicht-euklidischen Formen @@ -4449,6 +5075,9 @@ turret.off=AUS turret.on=AN turret.players=Spieler anzielen: %s +upgrade.consumption=Verbrauch %s +upgrade.speed=Verarbeitungszeit %s + wavelengths.name.ir=Infrarot wavelengths.name.visible=Sichtbares Licht wavelengths.name.uv=Ultraviolett diff --git a/src/main/resources/assets/hbm/lang/en_NT.lang b/src/main/resources/assets/hbm/lang/en_NT.lang deleted file mode 100644 index 1667e5909..000000000 --- a/src/main/resources/assets/hbm/lang/en_NT.lang +++ /dev/null @@ -1,2018 +0,0 @@ -itemGroup.tabTest=Nuclear Tech Mod Test Tab -itemGroup.tabParts=NTM Resources and Parts -itemGroup.tabControl=NTM Machine Items and Fuel -itemGroup.tabTemplate=NTM Templates -itemGroup.tabBlocks=NTM Ores and Blocks -itemGroup.tabMachine=NTM Machines -itemGroup.tabNuke=NTM Bombs -itemGroup.tabMissile=NTM Missiles and Satellites -itemGroup.tabWeapon=NTM Weapons and Turrets -itemGroup.tabConsumable=NTM Consumables and Gear - -achievement.sacrifice=Sororicide -achievement.sacrifice.desc=Face the fire and live. -achievement.impossible=Literally impossible -achievement.impossible.desc=You can't get this achievement. -achievement.tasteofblood=The Taste of Blood -achievement.tasteofblood.desc=is not part of any testing protocol. -achievement.freytag=Freytag -achievement.freytag.desc=Herold's life guards -achievement.selenium=XVIII The Moon -achievement.selenium.desc=Yeah. -achievement.potato=Rogue AI -achievement.potato.desc=You stabbed me! What is WRONG with yo-WOOOAAH -achievement.c44=Chapter 44 -achievement.c44.desc=Galvanized! I mean, zinc! -achievement.c20_5=Chapter [TWENTY POINT FIVE] -achievement.c20_5.desc=??? -achievement.space=The Final Front-ah forget it -achievement.space.desc=Fail in every way possible and waste funds worth 90 million dollars. -achievement.FOEQ=Pegasi and Missile Silos -achievement.FOEQ.desc=Send a relay into martian...I mean dunaian orbit. -achievement.fiend=Delinquent -achievement.fiend.desc=Be mean. -achievement.fiend2=Delinquent 2: Delinquent Harder -achievement.fiend2.desc=Be meaner. - -potion.hbm_taint=Tainted -potion.hbm_mutation=Tainted Heart -potion.hbm_radiation=Contaminated -potion.hbm_bang=! ! ! -potion.hbm_radx=Rad-X -potion.hbm_lead=Lead Poisoning - -hbmfluid.none=None -hbmfluid.water=Water -hbmfluid.steam=Steam -hbmfluid.hotsteam=Dense Steam -hbmfluid.superhotsteam=Super Dense Steam -hbmfluid.lava=Lava -hbmfluid.uf6=Uranium Hexafluoride -hbmfluid.puf6=Plutonium Hexafluoride -hbmfluid.deuterium=Deuterium -hbmfluid.tritium=Tritium -hbmfluid.oil=Crude Oil -hbmfluid.hotoil=Hot Crude Oil -hbmfluid.smear=Industrial Oil -hbmfluid.reclaimed=Reclaimed Industrial Oil -hbmfluid.petroil=Petroil -hbmfluid.lubricant=Engine Lubricant -hbmfluid.diesel=Diesel -hbmfluid.kerosene=Kerosene -hbmfluid.gas=Natural Gas -hbmfluid.coolant=Coolant -hbmfluid.amat=Antimatter -hbmfluid.aschrab=Antischrabidium -hbmfluid.heavyoil=Heavy Oil -hbmfluid.bitumen=Bitumen -hbmfluid.heatingoil=Heating Oil -hbmfluid.naphtha=Naphtha -hbmfluid.lightoil=Light Oil -hbmfluid.petroleum=Petroleum Gas -hbmfluid.acid=Hydrogen Peroxide -hbmfluid.watz=Poisonous Mud -hbmfluid.biogas=Biogas -hbmfluid.biofuel=Biofuel -hbmfluid.sas3=Schrabidium Trisulfide -hbmfluid.nitan=NITAN© 100 Octane Super Fuel -hbmfluid.cryogel=Cryogel -hbmfluid.lpg=LPG - -chem.TEST=Test -chem.FP_HEAVYOIL=Heavy Oil Processing -chem.FP_SMEAR=Industrial Oil Processing -chem.FP_NAPHTHA=Naphtha Processing -chem.FP_LIGHTOIL=Light Oil Processing -chem.FR_REOIL=Oil Reprocessing -chem.FR_PETROIL=Petroil Mixing -chem.OIL_SAND=Tar Sand Extraction -chem.FC_BITUMEN=Bitumen Cracking -chem.FC_I_NAPHTHA=Industrial Oil Cracking -chem.FC_GAS_PETROLEUM=Gas Cracking -chem.FC_DIESEL_KEROSENE=Diesel Cracking -chem.FC_KEROSENE_PETROLEUM=Kerosene Cracking -chem.CC_OIL=Coal Liquefaction -chem.CC_I=Enhanced Coal Liquefaction -chem.CC_HEATING=Advanced Coal Liquefaction -chem.CC_HEAVY=Basic Coal Liquefaction -chem.CC_NAPHTHA=Naphtha Coal Liquefaction -chem.ASPHALT=Asphalt Production -chem.COOLANT=Coolant Mixing -chem.CRYOGEL=Cryogel Mixing -chem.DESH=Desh Production -chem.PEROXIDE=Hydrogen Peroxide Production -chem.CIRCUIT_4=Overclocked Circuit Production -chem.CIRCUIT_5=High Performance Circuit Production -chem.SF_OIL=Crude Oil Solidification -chem.SF_HEAVYOIL=Heavy Oil Solidification -chem.SF_SMEAR=Industrial Oil Solidification -chem.SF_HEATINGOIL=Heating Oil Solidification -chem.SF_RECLAIMED=Reclaimed Oil Solidification -chem.SF_PETROIL=Petroil Solidification -chem.SF_LUBRICANT=Lubricant Solidification -chem.SF_NAPHTHA=Naphtha Solidification -chem.SF_DIESEL=Diesel Solidification -chem.SF_LIGHTOIL=Light Oil Solidification -chem.SF_KEROSENE=Kerosene Solidification -chem.SF_GAS=Natural Gas Solidification -chem.SF_PETROLEUM=Petroleum Gas Solidification -chem.SF_BIOGAS=Biogas Solidification -chem.SF_BIOFUEL=Biofuel Solidification -chem.POLYMER=Polymer Synthesis -chem.DEUTERIUM=Deuterium Extraction -chem.STEAM=Water Boiling -chem.YELLOWCAKE=Yellowcake Production -chem.UF6=Uranium Hexafluoride Production -chem.PUF6=Plutonium Hexafluoride Production -chem.BP_BIOGAS=Biogas Production -chem.BP_BIOFUEL=Biofuel Transesterification -chem.LPG=Petroleum Gas Liquefaction -chem.SAS3=Schrabidium Trisulfide Production -chem.NITAN=NITAN Super Fuel Mixing -chem.DYN_SCHRAB=Schrabidium Dynosynthesis -chem.DYN_EUPH=Euphemium Dynosynthesis -chem.DYN_DNT=Dineutronium Dynosynthesis -chem.CORDITE=Cordite Production -chem.KEVLAR=Kevlar Compound Production - -item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core -item.record.ss.desc=Valve - Sector Sweep -item.record.vc.desc=Valve - Vortal Combat - -death.attack.nuclearBlast=%1$s was blown away by a nuclear explosion. -death.attack.revolverBullet=%1$s was shot in the head by %2$s. -death.attack.mudPoisoning=%1$s died in poisonous mud. -death.attack.euthanized=%1$s was euthanized by %2$s. -death.attack.euthanizedSelf=%1$s euthanized himself, what a dork. -death.attack.euthanizedSelf2=%1$s wins the Darwin Award. -death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. -death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. -death.attack.chopperBullet=%1$s was rekt by %2$s. -death.attack.cmb=%1$s was fizzeled by %2$s. -death.attack.subAtomic=%1$s's atoms have been destroyed by %2$s. -death.attack.subAtomic2=%1$s was QPU-misaligned because %2$s tampered with his de facto speed. -death.attack.subAtomic3=%1$s's divergence dropped below 1 percent because of %2$s. -death.attack.subAtomic4=%1$s was divided by zero by %2$s. -death.attack.subAtomic5=%1$s was nullified by %2$s. -death.attack.radiation=%1$s died from radiation poisoning. -death.attack.acid=%1$s fell into acid. -death.attack.suicide=%1$s blew their head off. -death.attack.electrified=%1$s was electrified by %2$s. -death.attack.flamethrower=%1$s was cremated by %2$s. -death.attack.plasma=%1$s was immolated by %2$s. -death.attack.ice=%1$s was turned into a popsicle by %2$s. -death.attack.cheater=%1$s's intestines turned into oats. (???) -death.attack.laser=%1$s was turned into ash by %2$s. -death.attack.rubble=%1$s was squashed by debris. -death.attack.shrapnel=%1$s was ragged by a shrapnel. -death.attack.teleporter=%1$s was teleported into nothingness. -death.attack.blackhole=%1$s was spaghettified. -death.attack.blender=%1$s was chopped in small, bite-sized pieces. -death.attack.meteorite=%1$s was hit by a falling rock from outer space. -death.attack.boxcar=%1$s was smushed by a falling boxcar. Oh well. -death.attack.broadcast=%1$s got their brain melted. -death.attack.ams=%1$s was bathed in deadly particles that have yet to be named by human science. -death.attack.amsCore=%1$s was vaporized in the fire of a singularity. -death.attack.bang=%1$s was blasted into bite-sized pieces. -death.attack.pc=%1$s was reduced to a puddle in the pink cloud. -death.attack.cloud=%1$s melted like a popsicle in the sun. -death.attack.lead=%1$s died from lead poisoning. - -item.redstone_sword.name=Redstone Sword -item.big_sword.name=Great Sword -item.test_nuke_igniter.name=Igniter -item.test_nuke_propellant.name=Propellant -item.test_nuke_tier1_shielding.name=Neutron Reflector (Tier 1) -item.test_nuke_tier2_shielding.name=Neutron Reflector (Tier 2) -item.test_nuke_tier1_bullet.name=U235 Projectile (Tier 1) -item.test_nuke_tier2_bullet.name=MOX Projectile (Tier 2) -item.test_nuke_tier1_target.name=Subcritical U235 Target (Tier 1) -item.test_nuke_tier2_target.name=Subcritical MOX Target (Tier 2) - -item.gadget_explosive.name=Propellant -item.gadget_explosive8.name=Bundle of Propellant -item.gadget_wireing.name=Wiring -item.gadget_core.name=Plutonium Core - -item.boy_igniter.name=Bomb Igniter -item.boy_propellant.name=Propellant -item.boy_bullet.name=U235 Projectile -item.boy_target.name=Subcritical U235 Target -item.boy_shielding.name=Neutron Shielding - -item.man_explosive.name=Propellant -item.man_explosive8.name=Bundle of Propellant -item.man_igniter.name=Bomb Igniter -item.man_core.name=Plutonium Core - -item.mike_core.name=Uranium Coated Deuterium Tank -item.mike_deut.name=Deuterium Tank -item.mike_cooling_unit.name=Deuterium Cooling Unit - -item.tsar_core.name=Tsar Bomba Core - -item.fleija_igniter.name=Pulse Igniter -item.fleija_propellant.name=Schrabidium Propellant -item.fleija_core.name=F.L.E.I.J.A. Uranium 235 Charge - -item.solinium_igniter.name=SOL Pulse Igniter -item.solinium_propellant.name=SOL Compression Charge -item.solinium_core.name=Semi-Stable Solinium Core - -item.n2_charge.name=Large Explosive Charge - -item.custom_tnt.name=Custom Nuke Explosive Charge -item.custom_nuke.name=Custom Nuke Nuclear Rod -item.custom_hydro.name=Custom Nuke Hydrogen Rod -item.custom_amat.name=Custom Nuke Antimatter Rod -item.custom_dirty.name=Custom Nuke Dirty Rod -item.custom_schrab.name=Custom Nuke Schrabidium Rod -item.custom_fall.name=Custom Nuke Drop Upgrade - -container.nukeGadget=The Gadget -container.nukeBoy=Little Boy -container.nukeMan=Fat Man -container.nukeMike=Ivy Mike -container.nukeTsar=Tsar Bomba -container.nukeFleija=F.L.E.I.J.A. -container.nukePrototype=The Prototype -container.nukeCustom=Custom Nuke -container.nukeSolinium=The Blue Rinse -container.nukeN2=N² Mine -container.nukeN45=N45 Naval Mine - -container.bombMulti=Multi Purpose Bomb - -tile.nuke_gadget.name=The Gadget -tile.nuke_boy.name=Little Boy -tile.nuke_man.name=Fat Man -tile.nuke_mike.name=Ivy Mike -tile.nuke_tsar.name=Tsar Bomba -tile.nuke_fleija.name=F.L.E.I.J.A. -tile.nuke_prototype.name=The Prototype -tile.nuke_custom.name=Custom Nuke -tile.nuke_solinium.name=The Blue Rinse -tile.nuke_n2.name=N² Mine -tile.nuke_n45.name=N45 Naval Mine - -tile.bomb_multi.name=Multi Purpose Bomb -tile.rejuvinator.name=Rejuvination Device - -tile.flame_war.name=Flame War in a Box -tile.float_bomb.name=Levitation Bomb -tile.therm_endo.name=Endothermic Bomb -tile.therm_exo.name=Exothermic Bomb -tile.emp_bomb.name=EMP Device - -tile.crashed_bomb.name=Dud -tile.boxcar.name=Boxcar -tile.bomber.name=Crashed Bomber - -tile.turret_light.name=Light Machine Gun Turret -tile.turret_heavy.name=Heavy Machine Gun Turret -tile.turret_rocket.name=Rocket Turret -tile.turret_flamer.name=Flamethrower Turret -tile.turret_tau.name=Tauon Turret -tile.turret_spitfire.name=Turret I have no name for right now [WIP] -tile.turret_cwis.name=Phalanx Mk-15 CIWS -tile.turret_cheapo.name=Cheapo Gatling Sentry -tile.machine_radar.name=Radar -container.radar=Radar -tile.machine_forcefield.name=Forcefield Emitter -container.forceField=Forcefield Emitter -tile.machine_satlinker.name=Satellite ID Manager -container.satLinker=SatLink Device -tile.machine_telelinker.name=Turret Telemetry Linker -container.teleLinker=TelLink Device - -item.turret_control.name=Turret Controller -item.turret_chip.name=Turret AI-Chip -item.turret_biometry.name=Turret Telemetry Card - -item.key.name=Key -item.key_red.name=Red Key -item.key_kit.name=Key Imitation Kit -item.key_fake.name=Counterfeit Key -item.pin.name=Bobby Pin -item.padlock_rusty.name=Rusty Padlock -item.padlock.name=Padlock -item.padlock_reinforced.name=Reinforced Padlock -item.padlock_unbreakable.name=Unbreakable Padlock -tile.machine_keyforge.name=Locksmith Table -container.keyForge=Locksmith Table - -tile.mine_ap.name=Anti-Personell Mine -tile.mine_he.name=Anti-Tank Mine -tile.mine_shrap.name=Shrapnel Mine -tile.mine_fat.name=Fat Mine -item.defuser.name=High-Tech Bomb Defusing Device - -tile.crate.name=Supply Crate -tile.crate_weapon.name=Weapon Crate -tile.crate_lead.name=Hazmat Crate -tile.crate_metal.name=Machine Crate -tile.crate_red.name=Red Crate -tile.marker_structure.name=Multiblock Structure Marker - -tile.machine_difurnace_off.name=Alloy Furnace -tile.machine_difurnace_on.name=Alloy Furnace -container.diFurnace=Alloy Furnace -tile.machine_centrifuge.name=Centrifuge -container.centrifuge=Centrifuge -tile.machine_gascent.name=Gas Centrifuge -container.gasCentrifuge=Gas Centrifuge -tile.machine_uf6_tank.name=Uranium Hexafluoride Tank -container.uf6_tank=UF6 Tank -tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank -container.puf6_tank=PuF6 Tank -tile.machine_reactor.name=Breeding Reactor -tile.machine_reactor_on.name=Breeding Reactor -container.reactor=Breeding Reactor -tile.machine_nuke_furnace_off.name=Nuclear Furnace -tile.machine_nuke_furnace_on.name=Nuclear Furnace -container.nukeFurnace=Nuclear Powered Furnace -tile.machine_rtg_furnace_off.name=RTG Furnace -tile.machine_rtg_furnace_on.name=RTG Furnace -container.rtgFurnace=RTG Furnace -tile.machine_electric_furnace_off.name=Electric Furnace -tile.machine_electric_furnace_on.name=Electric Furnace -container.electricFurnace=Electric Furnace -tile.machine_generator.name=Nuclear Reactor (Old) -container.generator=Nuclear Reactor -tile.red_wire_coated.name=Coated Red Copper Cable -tile.machine_deuterium.name=Deuterium Extractor -container.machine_deuterium=Deuterium Extractor -tile.machine_battery.name=Energy Storage Block -tile.machine_lithium_battery.name=Li-Ion Energy Storage Block -tile.machine_schrabidium_battery.name=Schrabidium Energy Storage Block -tile.machine_dineutronium_battery.name=Spark Energy Storage Block -container.battery=Energy Storage -tile.machine_coal_off.name=Combustion Generator -tile.machine_coal_on.name=Combustion Generator -container.machineCoal=Combustion Generator -tile.machine_boiler_off.name=Boiler -tile.machine_boiler_on.name=Boiler -container.machineBoiler=Boiler -tile.machine_boiler_electric_off.name=Electric Boiler -tile.machine_boiler_electric_on.name=Electric Boiler -container.machineElectricBoiler=Electric Boiler -tile.machine_turbine.name=Steam Turbine -container.machineTurbine=Steam Turbine -tile.launch_pad.name=Missile Launch Pad -container.launchPad=Missile Launch Pad -tile.sat_dock.name=Cargo Landing Pad -container.satDock=Cargo Landing Pad -tile.book_guide.name=Hbm's Nuclear Tech Mod Manual [LEGACY] -tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device -container.machine_schrabidium_transmutator=Schrabidium Transmutation Device -tile.machine_diesel.name=Diesel Generator -container.machineDiesel=Diesel Generator -tile.machine_shredder.name=Shredder -container.machineShredder=Shredder -tile.machine_combine_factory.name=CMB Steel Furnace -container.machineCMB=CMB Steel Furnace -tile.machine_teleporter.name=Teleporter -container.teleporter=Teleporter -tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) -container.reix=Rei-X Mainframe -tile.machine_industrial_generator.name=Industrial Generator -container.iGenerator=Industrial Generator -tile.machine_cyclotron.name=Cyclotron -container.cyclotron=Cyclotron -tile.machine_well.name=Oil Derrick -tile.machine_pumpjack.name=Pumpjack -tile.oil_pipe.name=Crude Oil Extraction Pipe -container.oilWell=Oil Derrick -container.pumpjack=Pumpjack -tile.machine_refinery.name=Oil Refinery -container.machineRefinery=Oil Refinery -tile.oil_duct.name=Oil Pipe -tile.oil_duct_solid.name=Coated Oil Pipe -tile.machine_flare.name=Gas Flare -container.gasFlare=Gas Flare -tile.gas_duct.name=Gas Pipe -tile.gas_duct_solid.name=Coated Gas Pipe -tile.machine_drill.name=Automatic Mining Drill -container.miningDrill=Automatic Mining Drill -tile.drill_pipe.name=Drill Pipe -tile.machine_assembler.name=Assembly Machine -container.assembler=Assembly Machine -tile.machine_chemplant.name=Chemical Plant -container.chemplant=Chemical Plant -tile.fluid_duct.name=Universal Fluid Duct -tile.machine_fluidtank.name=Tank -item.fluid_duct.name=Fluid Duct: -container.fluidtank=Tank -tile.machine_turbofan.name=Turbofan -container.machineTurbofan=Turbofan -tile.crate_iron.name=Iron Crate -container.crateIron=Iron Crate -tile.crate_steel.name=Steel Crate -container.crateSteel=Steel Crate -tile.safe.name=Safe -container.safe=Safe -tile.machine_press.name=Burner Press -container.press=Burner Press -tile.machine_epress.name=Electric Press -container.epress=Electric Press -tile.machine_siren.name=Siren -container.siren=Siren -tile.machine_radgen.name=Radiation-Powered Engine -container.radGen=Radiation-Powered Engine -tile.machine_selenium.name=Radial Performance Engine -container.machineSelenium=Radial Performance Engine -tile.machine_reactor_small.name=Nuclear Reactor -container.reactorSmall=Nuclear Reactor -tile.machine_controller.name=Reactor Remote Control Block -container.reactorControl=Reactor Remote Control Block - -tile.broadcaster_pc.name=Corrupted Broadcaster - -tile.radiobox.name=Rosenberg Pest Control Box [WIP] -tile.radiorec.name=Broken FM Radio -container.radiobox=FM Transmitter -container.radiorec=FM Radio - -tile.red_pylon.name=Electricity Pole -item.wiring_red_copper.name=Cable Drum - -tile.rail_highspeed.name=High Speed Rail -tile.rail_booster.name=High Speed Booster Rail - -tile.factory_titanium_hull.name=Basic Factory Casing -tile.factory_titanium_furnace.name=Basic Factory Access Hatch -tile.factory_titanium_conductor.name=Basic Factory Electricity Port -tile.factory_titanium_core.name=Basic Factory Core Component -item.factory_core_titanium.name=Basic Factory Energy Cluster -container.factoryTitanium=Basic Factory -tile.factory_advanced_hull.name=Advanced Factory Casing -tile.factory_advanced_furnace.name=Advanced Factory Access Hatch -tile.factory_advanced_conductor.name=Advanced Factory Electricity Port -tile.factory_advanced_core.name=Advanced Factory Core Component -item.factory_core_advanced.name=Advanced Factory Energy Cluster -container.factoryAdvanced=Advanced Factory - -tile.reactor_element.name=Reactor Chamber -tile.reactor_control.name=Control Rods -tile.reactor_hatch.name=Reactor Access Hatch -tile.reactor_ejector.name=Reactor Waste Ejector -tile.reactor_inserter.name=Reactor Fuel Inserter -tile.reactor_conductor.name=Reactor Boiler -tile.reactor_computer.name=Reactor Control -container.reactorLarge=Big Nuclear Reactor - -tile.fusion_conductor.name=Superconducting Magnet -tile.fusion_center.name=Central Magnet Piece -tile.fusion_motor.name=Magnet Motor Piece -tile.fusion_heater.name=Plasma Heater -tile.fusion_hatch.name=Fusion Reactor Access Hatch -tile.fusion_core.name=Fusion Reactor Control -tile.plasma.name=Plasma -container.fusionMultiblock=Big Fusion Reactor - -tile.watz_element.name=Watz Reaction Chamber -tile.watz_control.name=Reinforced Control Rods -tile.watz_cooler.name=Watz Reactor Supercooler -tile.watz_end.name=Watz Reactor Stability Element -tile.watz_hatch.name=Watz Reactor Access Hatch -tile.watz_conductor.name=Watz Electricity Port -tile.watz_core.name=Watz Reactor Control -container.watzPowerplant=Watz Power Plant - -tile.fwatz_conductor.name=4000K Superconducting Magnet -tile.fwatz_cooler.name=Regenerative Coolant Fluid Tank Shell -tile.fwatz_tank.name=Regenerative Coolant Fluid Tank -tile.fwatz_scaffold.name=Fusionary Watz Plant Structural Support -tile.fwatz_hatch.name=Fusionary Watz Plant Access Hatch -tile.fwatz_computer.name=Fusionary Watz Reactor Calculation Matrix -tile.fwatz_core.name=Fusionary Watz Reactor Control -tile.fwatz_plasma.name=Destabilized Antischrabidium Plasma -container.fusionaryWatzPlant=Fusionary Watz Plant - -tile.machine_rtg_grey.name=RT Generator -container.rtg=RT Generator -tile.machine_rtg_red.name=Fulmination Generator -tile.machine_rtg_orange.name=Strong RT Generator -tile.machine_rtg_yellow.name=Australium Superfuel Reactor -tile.machine_rtg_green.name=Verticium Wealth Generator -tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) -tile.machine_rtg_blue.name=Convection Generator -tile.machine_rtg_purple.name=Antimatter Annihilation Generator - -tile.machine_waste_drum.name=Spent Fuel Pool Drum -container.wasteDrum=Spent Fuel Pool Drum - -tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom) -tile.machine_spp_top.name=ZPE Potential Generator (Top) - -tile.ams_limiter.name=AMS Stabilizer [WIP] -container.amsLimiter=AMS Stabilizer [WIP] -tile.ams_emitter.name=AMS Emitter [WIP] -container.amsEmitter=AMS Emitter [WIP] -tile.ams_base.name=AMS Base [WIP] -container.amsBase=AMS Base [WIP] - -item.template_folder.name=Machine Template Folder -item.fluid_identifier.name=Fluid Identifier -item.assembly_template.name=Assembly Template: -item.chemistry_template.name=Chemistry Template: -item.siren_track.name=Siren Track - -item.fuse.name=Fuse - -tile.test_nuke.name=Test Nuke - -item.ingot_th232.name=Th232 Ingot -item.ingot_uranium.name=Uranium Ingot -item.ingot_u233.name=U233 Ingot -item.ingot_u235.name=U235 Ingot -item.ingot_u238.name=U238 Ingot -item.ingot_u238m2.name=Metastable U238-2 Ingot -item.ingot_plutonium.name=Plutonium Ingot -item.ingot_pu238.name=Pu238 Ingot -item.ingot_pu239.name=Pu239 Ingot -item.ingot_pu240.name=Pu240 Ingot -item.ingot_titanium.name=Titanium Ingot -item.sulfur.name=Sulfur - -item.niter.name=Niter -item.ingot_copper.name=Industrial Grade Copper -item.ingot_red_copper.name=Minecraft Grade Copper -item.ingot_tungsten.name=Tungsten Ingot -item.ingot_aluminium.name=Aluminium Ingot -item.fluorite.name=Fluorite -item.ingot_steel.name=Steel Ingot -item.plate_steel.name=Steel Plate -item.ingot_beryllium.name=Beryllium Ingot -item.plate_schrabidium.name=Schrabidium Plate -item.ingot_schrabidium.name=Schrabidium Ingot -item.nugget_schrabidium.name=Schrabidium Nugget -item.plate_copper.name=Copper Plate -item.board_copper.name=Copper Panel -item.ingot_advanced_alloy.name=Advanced Alloy Ingot -item.plate_advanced_alloy.name=Advanced Alloy Plate -item.wire_advanced_alloy.name=Super Conductor -item.coil_advanced_alloy.name=Super Conducting Coil -item.coil_advanced_torus.name=Super Conducting Ring Coil -item.coil_gold.name=Gold Coil -item.coil_gold_torus.name=Golden Ring Coil -item.lithium.name=Lithium Cube -item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot -item.ingot_combine_steel.name=CMB Steel Ingot -item.plate_combine_steel.name=CMB Steel Plate -item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor -item.coil_magnetized_tungsten.name=4000K High Temperature Super Conducting Coil -item.plate_mixed.name=Mixed Plate -item.plate_paa.name=PaA Alloy Plate -item.ingot_dura_steel.name=High-Speed Steel Ingot -item.ingot_polymer.name=Polymer Ingot -item.bolt_dura_steel.name=High-Speed Steel Bolt -item.pipes_steel.name=Steel Pipes -item.drill_titanium.name=Titanium Drill -item.bolt_tungsten.name=Tungsten Bolt -item.bolt_compound.name=Reinforced Turbine Shaft -item.plate_polymer.name=Insulator -item.ingot_solinium.name=Solinium Ingot -item.nugget_solinium.name=Solinium Nugget -item.photo_panel.name=Photovoltaic Panel -item.sat_base.name=Satellite Base -item.thruster_nuclear.name=LV-N Nuclear Rocket Engine -item.sat_head_mapper.name=High-Gain Optical Camera -item.sat_head_scanner.name=M700 Survey Scanner -item.sat_head_radar.name=Radar Dish -item.sat_head_laser.name=Death Ray -item.sat_head_resonator.name=Xenium Resonator - -item.ingot_australium.name=Australium Ingot -item.ingot_weidanium.name=Weidanium Ingot -item.ingot_reiium.name=Reiium Ingot -item.ingot_unobtainium.name=Unobtainium Ingot -item.ingot_daffergon.name=Daffergon Ingot -item.ingot_verticium.name=Verticium Ingot -item.nugget_australium.name=Australium Nugget -item.nugget_weidanium.name=Weidanium Nugget -item.nugget_reiium.name=Reiium Nugget -item.nugget_unobtainium.name=Unobtainium Nugget -item.nugget_daffergon.name=Daffergon Nugget -item.nugget_verticium.name=Verticium Nugget - -item.ingot_desh.name=Desh Ingot -item.nugget_desh.name=Desh Nugget -item.powder_desh.name=Desh Powder -item.powder_desh_mix.name=Desh Blend -item.powder_nitan_mix.name=Nitanium Blend -item.powder_spark_mix.name=Spark Blend -item.ingot_dineutronium.name=Dineutronium Ingot -item.powder_dineutronium.name=Dineutronium Powder -item.nugget_dineutronium.name=Dineutronium Nugget -item.ingot_starmetal.name=Starmetal Ingot -item.ingot_saturnite.name=Saturnite Ingot -item.plate_saturnite.name=Saturnite Plate - -item.solid_fuel.name=Solid Fuel - -item.nugget_th232.name=Th232 Nugget -item.nugget_u233.name=U233 Nugget -item.nugget_u235.name=U235 Nugget -item.nugget_u238.name=U238 Nugget -item.nugget_pu238.name=Pu238 Nugget -item.nugget_pu239.name=Pu239 Nugget -item.nugget_pu240.name=Pu240 Nugget -item.plate_titanium.name=Titanium Plate -item.plate_aluminium.name=Aluminium Plate -item.wire_red_copper.name=Red Copper Wire -item.neutron_reflector.name=Neutron Reflector -item.nugget_beryllium.name=Beryllium Nugget - -item.wire_aluminium.name=Aluminium Wire -item.wire_copper.name=Copper Wire -item.wire_gold.name=Gold Wire -item.wire_schrabidium.name=Schrabidium Wire - -item.circuit_raw.name=Basic Circuit Assembly -item.circuit_aluminium.name=Basic Circuit -item.circuit_copper.name=Enhanced Circuit -item.circuit_red_copper.name=Advanced Circuit -item.circuit_gold.name=Overclocked Circuit -item.circuit_schrabidium.name=High Performance Circuit -item.circuit_targeting_tier1.name=Military Grade Circuit Board (Tier 1) -item.circuit_targeting_tier2.name=Military Grade Circuit Board (Tier 2) -item.circuit_targeting_tier3.name=Military Grade Circuit Board (Tier 3) -item.circuit_targeting_tier4.name=Military Grade Circuit Board (Tier 4) -item.circuit_targeting_tier5.name=Military Grade Circuit Board (Tier 5) -item.circuit_targeting_tier6.name=Military Grade Circuit Board (Tier 6) -item.mechanism_revolver_1.name=Revolver Mechanism -item.mechanism_revolver_2.name=Advanced Revolver Mechanism -item.mechanism_rifle_1.name=Rifle Mechanism -item.mechanism_rifle_2.name=Advanced Rifle Mechanism -item.mechanism_launcher_1.name=Launcher Mechanism -item.mechanism_launcher_2.name=Advanced Launcher Mechanism -item.mechanism_special.name=High-Tech Weapon Mechanism - -item.primer_357.name=.357 Magnum Primer (x16) -item.primer_44.name=.44 Magnum Primer (x16) -item.primer_9.name=Small Caliber Primer (x24) -item.primer_50.name=Large Caliber Primer (x8) -item.primer_buckshot.name=Buckshot Primer (x8) -item.casing_357.name=.357 Magnum Casing (x16) -item.casing_44.name=.44 Magnum Casing (x16) -item.casing_9.name=Small Caliber Casing (x24) -item.casing_50.name=Large Caliber Casing (x8) -item.casing_buckshot.name=Buckshot Casing (x8) -item.assembly_iron.name=Iron Bullet Assembly -item.assembly_steel.name=Lead Bullet Assembly -item.assembly_lead.name=Glass Bullet Assembly -item.assembly_gold.name=Gold Bullet Assembly -item.assembly_schrabidium.name=Schrabidium Bullet Assembly -item.assembly_nightmare.name=Nightmare Bullet Assembly -item.assembly_pip.name=Tainted Bullet Assembly -item.assembly_nopip.name=.44 Magnum Assembly -item.assembly_smg.name=9mm Assembly -item.assembly_uzi.name=.22 LR Assembly -item.assembly_calamity.name=.50 BMG Assembly -item.assembly_lacunae.name=.5mm Assembly - -item.piston_selenium.name=Radial Engine Piston - -tile.block_aluminium.name=Block of Aluminium -tile.block_copper.name=Block of Copper -tile.block_fluorite.name=Block of Fluorite -tile.block_niter.name=Block of Niter -tile.block_red_copper.name=Block of Red Copper -tile.block_steel.name=Block of Steel -tile.block_sulfur.name=Block of Sulfur -tile.block_titanium.name=Block of Titanium -tile.block_tungsten.name=Block of Tungsten -tile.block_uranium.name=Block of Uranium -tile.block_thorium.name=Block of Thorium -tile.block_trinitite.name=Block of Trinitite -tile.block_beryllium.name=Block of Beryllium -tile.block_waste.name=Block of Nuclear Waste -tile.block_scrap.name=Block of Scrap -tile.block_electrical_scrap.name=Block of Electrical Scrap -tile.block_advanced_alloy.name=Block of Advanced Alloy -tile.block_magnetized_tungsten.name=Block of Magnetized Tungsten -tile.block_combine_steel.name=Block of CMB Steel -tile.block_australium.name=Block of Australium -tile.block_weidanium.name=Block of Weidanium -tile.block_reiium.name=Block of Reiium -tile.block_unobtainium.name=Block of Unobtainium -tile.block_daffergon.name=Block of Daffergon -tile.block_verticium.name=Block of Verticium -tile.block_desh.name=Reinforced Block of Desh -tile.block_yellowcake.name=Block of Yellowcake - -tile.ore_aluminium.name=Aluminium Ore -tile.ore_copper.name=Copper Ore -tile.ore_fluorite.name=Fluorite Ore -tile.ore_niter.name=Niter Ore -tile.ore_sulfur.name=Sulfur Ore -tile.ore_titanium.name=Titanium Ore -tile.ore_tungsten.name=Tungsten Ore -tile.ore_uranium.name=Uranium Ore -tile.ore_thorium.name=Thorium Ore -tile.ore_schrabidium.name=Schrabidium Ore -tile.ore_beryllium.name=Beryllium Ore - -tile.ore_nether_uranium.name=Nether Uranium Ore -tile.ore_nether_plutonium.name=Nether Plutonium Ore -tile.ore_nether_tungsten.name=Nether Tungsten Ore -tile.ore_nether_sulfur.name=Nether Sulfur Ore -tile.ore_nether_fire.name=Fire Ore -tile.ore_nether_schrabidium.name=Nether Schrabidium Ore - -tile.ore_tikite.name=Trixite - -tile.ore_australium.name=Australian Ore -tile.ore_weidanium.name=Weidite -tile.ore_reiium.name=Reiite -tile.ore_unobtainium.name=Brightblende Ore -tile.ore_daffergon.name=Dellite -tile.ore_verticium.name=Dollar Green Mineral -tile.ore_rare.name=Rare Earth Ore - -tile.ore_oil.name=Oil Deposit -tile.ore_oil_empty.name=Empty Oil Deposit -tile.ore_oil_sand.name=Tar Sand - -tile.deco_titanium.name=Titanium Deco Block -tile.deco_red_copper.name=Red Copper Deco Block -tile.deco_tungsten.name=Tungsten Deco Block -tile.deco_aluminium.name=Aluminium Deco Block -tile.deco_steel.name=Steel Deco Block -tile.deco_lead.name=Lead Deco Block -tile.deco_beryllium.name=Beryllium Deco Block - -tile.hazmat.name=Hazmat Cloth Block - -tile.reinforced_brick.name=Reinforced Stone -tile.reinforced_glass.name=Reinforced Glass -tile.reinforced_sand.name=Reinforced Sandstone -tile.reinforced_light.name=Reinforced Glowstone -tile.reinforced_lamp_off.name=Reinforced Lamp -tile.reinforced_lamp_on.name=Reinforced Lamp - -tile.concrete.name=Concrete -tile.brick_concrete.name=Concrete Bricks -tile.brick_obsidian.name=Obsidian Bricks -tile.brick_light.name=Light Bricks -tile.asphalt.name=Asphalt - -tile.cmb_brick.name=CMB Steel Tile -tile.cmb_brick_reinforced.name=Reinforced CMB Bricks - -tile.gravel_obsidian.name=Crushed Obsidian - -tile.barbed_wire.name=Barbed Wire -tile.barbed_wire_fire.name=Flaming Barbed Wire -tile.barbed_wire_poison.name=Poisoned Barbed Wire -tile.barbed_wire_acid.name=Caustic Barbed Wire -tile.barbed_wire_wither.name=Withered Barbed Wire -tile.barbed_wire_ultradeath.name=Cloud Barbed Wire - -tile.seal_frame.name=Silo Hatch Frame -tile.seal_controller.name=Silo Hatch Opener -tile.seal_hatch.name=Silo Hatch - -tile.vault_door.name=Vault-Tec Blast Door -tile.blast_door.name=Sliding Blast Door - -item.nugget_uranium.name=Uranium Nugget -item.nugget_plutonium.name=Plutonium Nugget -item.nugget_neptunium.name=Neptunium Nugget -item.ingot_neptunium.name=Neptunium Ingot -item.nugget_lead.name=Lead Nugget -item.ingot_lead.name=Lead Ingot -tile.block_lead.name=Block of Lead -tile.ore_lead.name=Lead Ore - -item.powder_lead.name=Lead Powder -item.powder_neptunium.name=Neptunium Powder -item.powder_schrabidium.name=Schrabidium Powder -item.powder_iron.name=Iron Powder -item.powder_gold.name=Gold Powder -item.powder_aluminium.name=Aluminium Powder -item.powder_beryllium.name=Beryllium Powder -item.powder_copper.name=Copper Powder -item.powder_titanium.name=Titanium Powder -item.powder_tungsten.name=Tungsten Powder -item.powder_uranium.name=Uranium Powder -item.powder_plutonium.name=Plutonium Powder -item.dust.name=Dust -item.powder_coal.name=Coal Powder -item.powder_lapis.name=Lapis Lazuli Powder -item.powder_emerald.name=Emerald Powder -item.powder_diamond.name=Diamond Powder -item.powder_red_copper.name=Red Copper Powder -item.powder_steel.name=Steel Powder -item.powder_magnetized_tungsten.name=Magnetized Tungsten Powder -item.powder_combine_steel.name=CMB Steel Powder -item.powder_lithium.name=Lithium Powder -item.powder_advanced_alloy.name=Advanced Alloy Powder -item.powder_quartz.name=Quartz Powder -item.powder_power.name=Energy Powder -item.powder_iodine.name=Iodine Powder -item.powder_thorium.name=Thorium Powder -item.powder_neodymium.name=Neodymium Powder -item.powder_astatine.name=Astatine Powder -item.powder_caesium.name=Caesium Powder -item.powder_australium.name=Australium Powder -item.powder_weidanium.name=Weidanium Powder -item.powder_reiium.name=Reiium Powder -item.powder_unobtainium.name=Unobtainium Powder -item.powder_daffergon.name=Daffergon Powder -item.powder_verticium.name=Verticium Powder -item.powder_strontium.name=Strontium Powder -item.powder_cobalt.name=Cobalt Powder -item.powder_bromine.name=Bromine Powder -item.powder_niobium.name=Niobium Powder -item.powder_tennessine.name=Tennessine Powder -item.powder_cerium.name=Cerium Powder -item.powder_dura_steel.name=High-Speed Steel Powder -item.powder_polymer.name=Polymer Powder -item.powder_lanthanium.name=Lanthanium Powder -item.powder_actinium.name=Actinium Powder -item.powder_lithium_tiny.name=Tiny Pile of Lithium Powder -item.powder_cobalt_tiny.name=Tiny Pile of Cobalt Powder -item.powder_neodymium_tiny.name=Tiny Pile of Neodymium Powder -item.powder_niobium_tiny.name=Tiny Pile of Niobium Powder -item.powder_cerium_tiny.name=Tiny Pile of Cerium Powder -item.powder_lanthanium_tiny.name=Tiny Pile of Lanthanium Powder -item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder -item.powder_euphemium.name=Euphemium Powder -item.powder_meteorite.name=Meteorite Powder -item.powder_meteorite_tiny.name=Tiny Pile of Meteorite Powder -item.powder_yellowcake.name=Yellowcake -item.powder_magic.name=Pulverized Enchantment -item.redstone_depleted.name=Desaturated Redstone Dust - -item.fragment_neodymium.name=Neodymium Fragment -item.fragment_cobalt.name=Cobalt Fragment -item.fragment_niobium.name=Niobium Fragment -item.fragment_cerium.name=Cerium Fragment -item.fragment_lanthanium.name=Lanthanium Fragment -item.fragment_actinium.name=Actinium Fragment -item.fragment_meteorite.name=Meteorite Fragment - -item.battery_generic.name=Battery -item.battery_advanced.name=Advanced Battery -item.battery_lithium.name=Lithium-Ion Battery -item.battery_schrabidium.name=Schrabidium Battery -item.battery_spark.name=Spark Battery -item.battery_creative.name=Infinite Battery - -item.battery_su.name=SU-Battery -item.battery_su_l.name=Large SU-Battery -item.battery_steam.name=Steam Powered Energy Storage Tank -item.battery_steam_large.name=Large Steam Powered Energy Storage Tank - -item.battery_potato.name=Potato Battery -item.battery_potatos.name=PotatOS - -item.battery_red_cell.name=Redstone Power Cell -item.battery_advanced_cell.name=Advanced Power Cell -item.battery_lithium_cell.name=Lithium-Ion Power Cell -item.battery_schrabidium_cell.name=Schrabidium Power Cell -item.battery_red_cell_6.name=Sixfold Redstone Power Cell -item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell -item.battery_lithium_cell_3.name=Tripple Lithium-Ion Power Cell -item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell -item.battery_red_cell_24.name=24-Fold Redstone Power Cell -item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell -item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell -item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell -item.battery_spark_cell_6.name=Spark Power Cell -item.battery_spark_cell_25.name=Spark Arcane Car Battery -item.battery_spark_cell_100.name=Spark Arcane Energy Storage Array -item.battery_spark_cell_1000.name=Spark Arcane Mass-Energy Void -item.battery_spark_cell_2500.name=Spark Arcane Dirac Sea -item.battery_spark_cell_10000.name=Spark Solid Space-Time Crystal -item.battery_spark_cell_power.name=Spark Ludicrous Physics-Defying Energy Storage Unit - -item.upgrade_template.name=Machine Upgrade Piece Template -item.upgrade_speed_1.name=Red Machine Upgrade Mk.I -item.upgrade_speed_2.name=Red Machine Upgrade Mk.II -item.upgrade_speed_3.name=Red Machine Upgrade Mk.III -item.upgrade_effect_1.name=Green Machine Upgrade Mk.I -item.upgrade_effect_2.name=Green Machine Upgrade Mk.II -item.upgrade_effect_3.name=Green Machine Upgrade Mk.III -item.upgrade_power_1.name=Blue Machine Upgrade Mk.I -item.upgrade_power_2.name=Blue Machine Upgrade Mk.II -item.upgrade_power_3.name=Blue Machine Upgrade Mk.III -item.upgrade_fortune_1.name=Purple Machine Upgrade Mk.I -item.upgrade_fortune_2.name=Purple Machine Upgrade Mk.II -item.upgrade_fortune_3.name=Purple Machine Upgrade Mk.III -item.upgrade_afterburn_1.name=Pink Machine Upgrade Mk.I -item.upgrade_afterburn_2.name=Pink Machine Upgrade Mk.II -item.upgrade_afterburn_3.name=Pink Machine Upgrade Mk.III -item.upgrade_radius.name=Teal Emitter Upgrade -item.upgrade_health.name=Pink Emitter Upgrade - -item.fusion_core.name=Fusion Core -item.energy_core.name=Makeshift Energy Core -item.fusion_core_infinite.name=Infinite Fusion Core - -item.dynosphere_base.name=Blank Dynosphere -item.dynosphere_desh.name=Desh Dynosphere -item.dynosphere_desh_charged.name=Desh Dynosphere (Charged) -item.dynosphere_schrabidium.name=Schrabidium Dynosphere -item.dynosphere_schrabidium_charged.name=Schrabidium Dynosphere (Charged) -item.dynosphere_euphemium.name=Euphemium Dynosphere -item.dynosphere_euphemium_charged.name=Euphemium Dynosphere (Charged) -item.dynosphere_dineutronium.name=Dineutronium Dynosphere -item.dynosphere_dineutronium_charged.name=Dineutronium Dynosphere (Charged) - -item.plate_iron.name=Iron Plate -item.plate_lead.name=Lead Plate -item.coil_copper.name=Copper Coil -item.coil_copper_torus.name=Ring Coil -item.wire_tungsten.name=Tungsten Wire -item.coil_tungsten.name=Heating Coil -item.tank_steel.name=Steel Tank -item.motor.name=Motor -item.centrifuge_element.name=Centrifuge Element -item.centrifuge_tower.name=Centrifuge Tower -item.reactor_core.name=Breeding Reactor Core -item.pellet_rtg.name=Plutonium 238 Fuel Pellet -item.pellet_rtg_weak.name=Weak Uranium RTG Pellet -item.rtg_unit.name=RTG Unit -item.hazmat_cloth.name=Hazmat Cloth -item.hazmat_cloth_red.name=Advanced Hazmat Cloth -item.hazmat_cloth_grey.name=Lead-Reinforced Hazmat Cloth -item.asbestos_cloth.name=Fire Proximity Cloth -item.filter_coal.name=Activated Carbon Filter -item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake -item.telepad.name=Telepad -item.entanglement_kit.name=Entanglement Kit -item.toothpicks.name=Toothpicks -item.ducttape.name=Duct Tape -item.magnet_dee.name=Dee Magnets -item.magnet_circular.name=Flat Magnet -item.cyclotron_tower.name=Cyclotron Tower -item.plate_dalekanium.name=Angry Metal -item.biomass.name=Biomass -item.biomass_compressed.name=Compressed Biomass -item.component_limiter.name=Stabilizer Component -item.component_emitter.name=Emitter Component -item.catalyst_clay.name=Clay Catalyst - -item.cell_empty.name=Empty Cell -item.cell_uf6.name=Uranium Hexafluorite Cell -item.cell_puf6.name=Plutonium Hexafluorite Cell -item.cell_antimatter.name=Antimatter Cell -item.cell_deuterium.name=Deuterium Cell -item.cell_tritium.name=Tritium Cell -item.cell_sas3.name=Schrabidium Trisulfide Cell -item.cell_anti_schrabidium.name=Antischrabidium Cell -item.singularity.name=Singularity -item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity -item.singularity_super_heated.name=Superheated Resonating Singularity -item.singularity_spark.name=Spark Singularity -item.black_hole.name=Miniature Black Hole -item.crystal_xen.name=Artificial Xen Crystal -item.pellet_antimatter.name=Antimatter Cluster - -item.inf_water.name=Infinite Water Tank -item.inf_deuterium.name=Infinite Deuterium Tank -item.inf_tritium.name=Infinite Tritium Tank -item.inf_coolant.name=Infinite Coolant Tank -item.inf_sulfur.name=Infinite Sulfur Tank -item.inf_diesel.name=Infinite Diesel Tank -item.inf_antimatter.name=Infinite Antimatter Tank -item.inf_antischrabidium.name=Infinite Antischrabidium Tank - -item.oil_canola.name=Raw Canola Oil - -item.pellet_coal.name=Dense Coal Cluster - -item.canister_empty.name=Empty Canister -item.canister_smear.name=Industrial Oil Canister -item.canister_canola.name=Engine Lubricant -item.canister_oil.name=Crude Oil Canister -item.canister_fuel.name=Diesel Canister -item.canister_kerosene.name=Kerosene Canister -item.canister_reoil.name=Canister of Reclaimed Industrial Oil -item.canister_petroil.name=Petroil Canister -item.canister_napalm.name=Napalm B -item.canister_NITAN.name=NITAN© 100 Octane Super Fuel -item.canister_heavyoil.name=Heavy Oil Canister -item.canister_bitumen.name=Bitumen Canister -item.canister_heatingoil.name=Heating Oil Canister -item.canister_naphtha.name=Naphtha Canister -item.canister_lightoil.name=Light Oil Canister -item.canister_biofuel.name=Biofuel Canister -item.gas_empty.name=Empty Gas Tank -item.gas_full.name=Gas Tank -item.gas_petroleum.name=Petroleum Gas Tank -item.gas_biogas.name=Biogas Tank -item.gas_lpg.name=LPG Tank -item.fluid_tank_empty.name=Empty Universal Fluid Tank -item.fluid_tank_full.name=Universal Fluid Tank: -item.fluid_barrel_empty.name=Empty Fluid Barrel -item.fluid_barrel_full.name=Fluid Barrel: -item.fluid_barrel_infinite.name=Infinite Fluid Barrel - -item.rod_empty.name=Empty Rod -item.rod_th232.name=Th232 Rod -item.rod_uranium.name=Uranium Rod -item.rod_u233.name=U233 Rod -item.rod_u235.name=U235 Rod -item.rod_u238.name=U238 Rod -item.rod_plutonium.name=Plutonium Rod -item.rod_pu238.name=Pu238 Rod -item.rod_pu239.name=Pu239 Rod -item.rod_pu240.name=Pu240 Rod -item.rod_neptunium.name=Neptunium Rod -item.rod_lead.name=Lead Rod -item.rod_schrabidium.name=Sa326 Rod -item.rod_solinium.name=Sa327 Rod -item.rod_euphemium.name=Euphemium Rod -item.rod_australium.name=Australium Rod -item.rod_weidanium.name=Weidanium Rod -item.rod_reiium.name=Reiium Rod -item.rod_unobtainium.name=Unobtainium Rod -item.rod_daffergon.name=Daffergon Rod -item.rod_verticium.name=Verticium Rod - -item.rod_dual_empty.name=Empty Dual Rod -item.rod_dual_th232.name=Th232 Dual Rod -item.rod_dual_uranium.name=Uranium Dual Fuel Rod -item.rod_dual_u233.name=U233 Dual Rod -item.rod_dual_u235.name=U235 Dual Rod -item.rod_dual_u238.name=U238 Dual Rod -item.rod_dual_plutonium.name=Plutonium Dual Rod -item.rod_dual_pu238.name=Pu238 Dual Rod -item.rod_dual_pu239.name=Pu239 Dual Rod -item.rod_dual_pu240.name=Pu240 Dual Rod -item.rod_dual_neptunium.name=Neptunium Dual Rod -item.rod_dual_lead.name=Lead Dual Rod -item.rod_dual_schrabidium.name=Sa326 Dual Rod -item.rod_dual_solinium.name=Sa327 Dual Rod - -item.rod_quad_empty.name=Empty Quad Rod -item.rod_quad_th232.name=Th232 Quad Rod -item.rod_quad_uranium.name=Uranium Quad Rod -item.rod_quad_u233.name=U233 Quad Rod -item.rod_quad_u235.name=U235 Quad Rod -item.rod_quad_u238.name=U238 Quad Rod -item.rod_quad_plutonium.name=Plutonium Quad Rod -item.rod_quad_pu238.name=Pu238 Quad Rod -item.rod_quad_pu239.name=Pu239 Quad Rod -item.rod_quad_pu240.name=Pu240 Quad Rod -item.rod_quad_neptunium.name=Neptunium Quad Rod -item.rod_quad_lead.name=Lead Quad Rod -item.rod_quad_schrabidium.name=Sa326 Quad Rod -item.rod_quad_solinium.name=Sa327 Quad Rod - -item.rod_uranium_fuel_depleted.name=Depleted Uranium Fuel Rod -item.rod_dual_uranium_fuel_depleted.name=Depleted Uranium Dual Fuel Rod -item.rod_quad_uranium_fuel_depleted.name=Depleted Uranium Quad Fuel Rod -item.rod_thorium_fuel_depleted.name=Depleted Thorium Fuel Rod -item.rod_dual_thorium_fuel_depleted.name=Depleted Thorium Dual Fuel Rod -item.rod_quad_thorium_fuel_depleted.name=Depleted Thorium Quad Fuel Rod -item.rod_plutonium_fuel_depleted.name=Depleted Plutonium Fuel Rod -item.rod_dual_plutonium_fuel_depleted.name=Depleted Plutonium Dual Fuel Rod -item.rod_quad_plutonium_fuel_depleted.name=Depleted Plutonium Quad Fuel Rod -item.rod_mox_fuel_depleted.name=Depleted MOX Fuel Rod -item.rod_dual_mox_fuel_depleted.name=Depleted MOX Dual Fuel Rod -item.rod_quad_mox_fuel_depleted.name=Depleted MOX Quad Fuel Rod -item.rod_schrabidium_fuel_depleted.name=Depleted Schrabidium Fuel Rod -item.rod_dual_schrabidium_fuel_depleted.name=Depleted Schrabidium Dual Fuel Rod -item.rod_quad_schrabidium_fuel_depleted.name=Depleted Schrabidium Quad Fuel Rod - -item.rod_waste.name=Nuclear Waste Rod -item.rod_dual_waste.name=Nuclear Waste Dual Rod -item.rod_quad_waste.name=Nuclear Waste Quad Rod - -item.gun_rpg.name=Carl Gustav Recoilless Rifle -item.gun_rpg_ammo.name=Rocket -item.gun_stinger.name=FIM-92 Stinger -item.gun_skystinger.name=The One Sky Stinger -item.gun_stinger_ammo.name=Stinger Rocket -item.gun_hk69.name=Grenade Pistol - -item.flame_pony.name=Painting of a Cartoon Pony -item.flame_conspiracy.name=Conspiracy Theory -item.flame_politics.name=Political Topic -item.flame_opinion.name=Own Opinion - -item.pellet_cluster.name=Explosive Pellets -item.pellet_buckshot.name=Lead Pellets -item.pellet_flechette.name=Flechettes -item.powder_fire.name=Flame Powder -item.powder_ice.name=Cryo Powder -item.powder_poison.name=Poison Powder -item.pellet_gas.name=Poison Gas Cartridge -item.magnetron.name=Magnetron -item.powder_thermite.name=Thermite - -item.nuke_starter_kit.name=Atomic Science Starter Kit -item.nuke_commercially_kit.name=Atomic Science Kit for Commercial Uses -item.nuke_advanced_kit.name=Atomic Science Advanced Kit -item.gadget_kit.name=The Gadget Kit -item.boy_kit.name=Little Boy Kit -item.man_kit.name=Fat Man Kit -item.mike_kit.name=Ivy Mike Kit -item.tsar_kit.name=Tsar Bomba Kit -item.fleija_kit.name=F.L.E.I.J.A. Kit -item.multi_kit.name=Multi Purpose Bomb Kit -item.custom_kit.name=Custom Nuke Kit -item.grenade_kit.name=Grenade Kit -item.nuke_electric_kit.name=Electronic Engineer's Kit -item.prototype_kit.name=Prototype Kit -item.missile_kit.name=Missile Kit -item.t45_kit.name=T45 Power Armor Kit -item.euphemium_kit.name=Euphemium Kit -item.solinium_kit.name=Solinium Kit -item.hazmat_kit.name=Hazmat Kit -item.hazmat_red_kit.name=Advanced Hazmat Kit -item.hazmat_grey_kit.name=High-Performance Hazmat Kit - -tile.waste_earth.name=Dead Grass -tile.waste_trinitite.name=Trinitite Ore -tile.waste_trinitite_red.name=Red Trinitite Ore -tile.waste_log.name=Charred Log -tile.waste_planks.name=Charred Wooden Planks - -item.trinitite.name=Trinitite -item.nuclear_waste.name=Nuclear Waste -item.nuclear_waste_tiny.name=Tiny Pile of Nuclear Waste -item.waste_uranium.name=Depleted Uranium Fuel -item.waste_thorium.name=Depleted Thorium Fuel -item.waste_plutonium.name=Depleted Plutonium Fuel -item.waste_mox.name=Depleted MOX Fuel -item.waste_schrabidium.name=Depleted Schrabidium Fuel -item.scrap.name=Scrap - -item.ingot_uranium_fuel.name=Ingot of Uranium Fuel -item.ingot_thorium_fuel.name=Ingot of Thorium Fuel -item.ingot_plutonium_fuel.name=Ingot of Plutonium Fuel -item.ingot_mox_fuel.name=Ingot of MOX Fuel -item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel - -item.nugget_uranium_fuel.name=Nugget of Uranium Fuel -item.nugget_thorium_fuel.name=Nugget of Thorium Fuel -item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel -item.nugget_mox_fuel.name=Nugget of MOX Fuel -item.nugget_schrabidium_fuel.name=Nugget of Schrabidium Fuel - -item.grenade_generic.name=Grenade -item.grenade_strong.name=Enhanced Grenade -item.grenade_frag.name=Frag Grenade -item.grenade_fire.name=Flame Frag Grenade -item.grenade_shrapnel.name=Shrapnel Grenade -item.grenade_cluster.name=Cluster Bomb -item.grenade_flare.name=Signal Flare -item.grenade_electric.name=Lightning Bomb -item.grenade_poison.name=Poison Grenade -item.grenade_gas.name=Gas Grenade -item.grenade_pulse.name=Impulse Grenade -item.grenade_plasma.name=Plasma Grenade -item.grenade_tau.name=Tau Grenade -item.grenade_schrabidium.name=Schrabidium Grenade -item.grenade_lemon.name=Combustible Lemon -item.grenade_gascan.name=Tossable Gas Can -item.grenade_mk2.name=Mk 2 Grenade "Ambassador Pineapple" -item.grenade_aschrab.name=Tossable Antischrabidium Cell -item.grenade_nuke.name=Mark VI Drill Grenade -item.grenade_nuclear.name=Nuka Grenade -item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade -item.grenade_black_hole.name=Black Hole Grenade -item.grenade_cloud.name=Jar of Cloud -item.grenade_pink_cloud.name=Jar of Pink Cloud -item.ullapool_caber.name=Ullapool Caber -item.grenade_smart.name=Smart Grenade -item.grenade_mirv.name=MIRV Grenade -item.grenade_breach.name=Breaching Grenade -item.grenade_burst.name=Digger Grenade - -item.grenade_if_generic.name=IF - Grenade -item.grenade_if_he.name=IF - HE Grenade -item.grenade_if_bouncy.name=IF - Bouncy Grenade -item.grenade_if_sticky.name=IF - Sticky Grenade -item.grenade_if_impact.name=IF - Impact Grenade -item.grenade_if_incendiary.name=IF - Incendiary Grenade -item.grenade_if_toxic.name=IF - Toxic Grenade -item.grenade_if_concussion.name=IF - Concussion Grenade -item.grenade_if_brimstone.name=IF - Tossable Brimstone Mine -item.grenade_if_mystery.name=IF - M.-Grenade -item.grenade_if_spark.name=IF - S.-Grenade -item.grenade_if_hopwire.name=IF - Vortex Hopwire -item.grenade_if_null.name=IF - Null Grenade - -item.rod_uranium_fuel.name=Uranium Fuel Rod -item.rod_dual_uranium_fuel.name=Uranium Dual Fuel Rod -item.rod_quad_uranium_fuel.name=Uranium Quad Fuel Rod -item.rod_thorium_fuel.name=Thorium Fuel Rod -item.rod_dual_thorium_fuel.name=Thorium Dual Fuel Rod -item.rod_quad_thorium_fuel.name=Thorium Quad Fuel Rod -item.rod_plutonium_fuel.name=Plutonium Fuel Rod -item.rod_dual_plutonium_fuel.name=Plutonium Dual Fuel Rod -item.rod_quad_plutonium_fuel.name=Plutonium Quad Fuel Rod -item.rod_mox_fuel.name=MOX Fuel Rod -item.rod_dual_mox_fuel.name=MOX Dual Fuel Rod -item.rod_quad_mox_fuel.name=MOX Quad Fuel Rod -item.rod_schrabidium_fuel.name=Schrabidium Fuel Rod -item.rod_dual_schrabidium_fuel.name=Schrabidium Dual Fuel Rod -item.rod_quad_schrabidium_fuel.name=Schrabidium Quad Fuel Rod - -item.rod_water.name=Water Cell -item.rod_dual_water.name=Dual Water Cell -item.rod_quad_water.name=Quad Water Cell - -item.rod_coolant.name=Coolant Cell -item.rod_dual_coolant.name=Dual Coolant Cell -item.rod_quad_coolant.name=Quad Coolant Cell - -item.rod_lithium.name=Lithium Rod -item.rod_dual_lithium.name=Dual Lithium Rod -item.rod_quad_lithium.name=Quad Lithium Rod - -item.rod_tritium.name=Tritium Cell -item.rod_dual_tritium.name=Dual Tritium Cell -item.rod_quad_tritium.name=Quad Tritium Cell - -item.levitation_unit.name=Gravity Manipulator -item.thermo_unit_empty.name=Thermic Distribution Unit -item.thermo_unit_endo.name=Coldness Distribution Unit -item.thermo_unit_exo.name=Heat Distribution Unit - -item.bomb_waffle.name=Waffle of Mass Destruction -item.schnitzel_vegan.name=Vegan Schnitzel -item.apple_schrabidium.name=Schrabidium Apple -item.cotton_candy.name=Radioactive Cotton Candy -item.tem_flakes.name=Tem Flakes -item.glowing_stew.name=Glowing Mushroom Stew -item.lemon.name="Lemon" -item.definitelyfood.name=TotallyNotDirt-Brand MRE -item.loops.name=Lööps -item.loop_stew.name=IT Breakfast -item.fooditem.name=food item - -tile.frozen_grass.name=Frozen Grass -tile.frozen_dirt.name=Frozen Dirt -tile.frozen_log.name=Frozen Log -tile.frozen_planks.name=Frozen Planks - -tile.tape_recorder.name=Tape Recorder -tile.steel_poles.name=Steel Pole -tile.pole_top.name=Antenna Top -tile.pole_satellite_receiver.name=Satellite Dish -tile.steel_wall.name=Steel Wall -tile.steel_corner.name=Steel Wall Corner -tile.steel_roof.name=Flat Steel Roof -tile.steel_beam.name=Steel Beam -tile.steel_scaffold.name=Steel Scaffold - -item.gun_revolver_iron.name=Simple Revolver -item.gun_revolver.name=Enhanced Revolver -item.gun_revolver_saturnite.name=Saturnite Shooter -item.gun_revolver_gold.name=Golden Revolver -item.gun_revolver_lead.name=Nuka Revolver -item.gun_revolver_schrabidium.name=Schrabidium Revolver -item.gun_revolver_cursed.name=Cursed Revolver -item.gun_revolver_nightmare.name=Nightmare Revolver (Original) -item.gun_revolver_nightmare2.name=Nightmare Revolver (Dark) -item.gun_revolver_pip.name=Lil' Pipsqueak -item.gun_revolver_nopip.name=Novac -item.gun_revolver_blackjack.name=Blackjack Five-Shooter -item.gun_revolver_red.name=Red Key Revolver -item.gun_calamity.name=Calamity -item.gun_calamity_dual.name=Saddle Gun -item.gun_minigun.name=CZ53 Personal Minigun -item.gun_avenger.name=CZ57 Avenger Minigun -item.gun_lacunae.name=CZ33 Abaddon -item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" -item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" -item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" -item.gun_bf.name=M42_2 Nuclear Catapult "Antimatter Launcher" -item.gun_mp40.name=Submachine Gun -item.gun_uzi.name=IMI Uzi -item.gun_uzi_silencer.name=IMI Uzi with Silencer -item.gun_uzi_saturnite.name=Saturnite Uzi -item.gun_uzi_saturnite_silencer.name=Saturnite Uzi with Silencer -item.gun_uboinik.name=Uboinik -item.gun_lever_action.name=Mare's Leg (Original) -item.gun_bolt_action.name=Dream Bolt-Action Rifle (Original) -item.gun_lever_action_dark.name=Mare's Leg (Dark) -item.gun_bolt_action_green.name=Dream Bolt-Action Rifle (Green) -item.gun_bolt_action_saturnite.name=Saturnite Rifle -item.gun_lever_action_sonata.name=Flipped Mare's Leg -item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r -item.gun_b92.name=§9B92 Energy Pistol§r -item.gun_b93.name=§cB93 Energy Mod§r -item.gun_xvl1456.name=XVL1456 Tau Cannon Prototype -item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle -item.gun_immolator.name=The Immolator -item.gun_cryolator.name=The Cryolator -item.gun_mp.name=Pacifist's Machine Gun -item.gun_zomg.name=Singularity Powered Annihilation Ray "ZOMG Cannon" -item.gun_emp.name=EMP Ray -item.gun_super_shotgun.name=Super Shotgun -item.gun_moist_nugget.name=Mosin-Nagant -item.gun_revolver_inverted.name=Flipped Revolver -item.gun_jack.name=Jackhammer -item.gun_spark.name=Spark Plug -item.gun_hp.name=HPP Lazerjet -item.gun_euthanasia.name=Euthanasia -item.gun_defabricator.name=Defabricator -item.gun_dampfmaschine.name=Totally Not a Joke Weapon -item.gun_folly.name=Prototype Digamma "Folly" - -item.gun_revolver_iron_ammo.name=Bullet -item.gun_revolver_ammo.name=Lead Bullet -item.gun_revolver_gold_ammo.name=Golden Bullet -item.gun_revolver_lead_ammo.name=Glass Covered Nuclear Bullet -item.gun_revolver_schrabidium_ammo.name=Schrabidium Bullet -item.gun_revolver_cursed_ammo.name=Steel Bullet -item.gun_revolver_nightmare_ammo.name=Nightmare Bullet -item.gun_revolver_nightmare2_ammo.name=Laser Buckshot -item.gun_revolver_pip_ammo.name=Tainted Bullet -item.gun_revolver_nopip_ammo.name=.44 Magnum Bullet -item.gun_calamity_ammo.name=.50 BMG Round -item.gun_lacunae_ammo.name=5mm Round -item.gun_fatman_ammo.name=Mini Nuke -item.gun_mirv_ammo.name=Eightfold MIRV -item.gun_bf_ammo.name=Mk.V Compact AMAT-Artillery Shell - Type B.F. -item.gun_mp40_ammo.name=Submachine Gun Round -item.gun_uzi_ammo.name=.22 LR Round -item.gun_uboinik_ammo.name=12x70 Buckshot -item.gun_lever_action_ammo.name=12x74 Buckshot -item.gun_bolt_action_ammo.name=12x74 Slug -item.gun_b92_ammo.name=§9B92 Energy Cell§r -item.gun_xvl1456_ammo.name=Depleted Uranium-235 Box -item.gun_osipr_ammo.name=Dark Energy Pulse Plug -item.gun_osipr_ammo2.name=Combine Ball -item.gun_immolator_ammo.name=Immolator Fuel -item.gun_cryolator_ammo.name=Cryo Cell -item.gun_mp_ammo.name=Small Propellantless Machine Gun Round -item.gun_emp_ammo.name=Energy Cell -item.gun_jack_ammo.name=Quadruple Shotgun Shell -item.gun_spark_ammo.name=Electromagnetic Cartridge -item.gun_hp_ammo.name=Ink Cartridge -item.gun_euthanasia_ammo.name=Syringe -item.gun_defabricator_ammo.name=Defabricator Energy Cell - -item.ammo_12gauge.name=12 Gauge Buckshot -item.ammo_12gauge_incendiary.name=12 Gauge Buckshot (Incendiary) -item.ammo_20gauge.name=20 Gauge Buckshot -item.ammo_20gauge_slug.name=20 Gauge Brenneke Slug -item.ammo_20gauge_flechette.name=20 Gauge Flechette Shell -item.ammo_20gauge_incendiary.name=20 Gauge Buckshot (Incendiary) -item.ammo_20gauge_shock.name=20 Gauge Buckshot (Shock) -item.ammo_20gauge_caustic.name=20 Gauge Buckshot (Caustic) -item.ammo_20gauge_explosive.name=20 Gauge Buckshot (Explosive) -item.ammo_20gauge_wither.name=20 Gauge Buckshot (Withering) -item.ammo_5mm.name=5mm Round -item.ammo_5mm_explosive.name=5mm Round (Explosive) -item.ammo_5mm_du.name=5mm Round (DU) -item.ammo_50bmg.name=.50 BMG Round -item.ammo_50bmg_incendiary.name=.50 BMG Round (Incendiary) -item.ammo_50bmg_explosive.name=.50 BMG Round (Explosive) -item.ammo_50bmg_du.name=.50 BMG Round (DU) -item.ammo_9mm.name=9mm Round -item.ammo_9mm_ap.name=9mm Round (Armor Piercing) -item.ammo_9mm_du.name=9mm Round (DU) -item.ammo_22lr.name=.22 LR Round -item.ammo_22lr_ap.name=.22 LR Round (Armor Piercing) -item.ammo_folly.name=Silver Bullet (Original) -item.ammo_folly_nuclear.name=Silver Bullet (Nuclear) -item.ammo_folly_du.name=Silver Bullet (DU, Non-Explosive) -item.ammo_44.name=.44 Magnum Bullet -item.ammo_44_ap.name=.44 Magnum Bullet (Armor Piercing) -item.ammo_44_du.name=.44 Magnum Bullet (DU) -item.ammo_44_pip.name=.44 Magnum Bullet (Boxcar) -item.ammo_44_bj.name=.44 Magnum Bullet (Boat) -item.ammo_rocket.name=84mm Rocket -item.ammo_rocket_he.name=84mm Rocket (HE) -item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) -item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) -item.ammo_rocket_emp.name=84mm Rocket (Pulse) -item.ammo_rocket_glare.name=84mm Rocket (Red Glare) -item.ammo_rocket_sleek.name=84mm Rocket (IF-R&D) -item.ammo_grenade.name=40mm Grenade -item.ammo_grenade_he.name=40mm Grenade (HE) -item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) -item.ammo_grenade_toxic.name=40mm Grenade (Chemical) -item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) - -item.folly_shell.name=Silver Bullet Casing -item.folly_bullet.name=12.8cm Starmetal High-Energy Shell -item.folly_bullet_nuclear.name=12.8cm Nuclear Shell -item.folly_bullet_du.name=12.8cm DU-Shell - -item.cordite.name=Cordite -item.plate_kevlar.name=Kevlar-Ceramic Compound - -item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r - -item.turret_light_ammo.name=Light MG Turret Ammo Box -item.turret_heavy_ammo.name=Heavy MG Turret Ammunition -item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition -item.turret_flamer_ammo.name=Flamer Turret Fuel Tanks -item.turret_tau_ammo.name=Tau Turret Uranium Ammo -item.turret_spitfire_ammo.name=AA-Shell -item.turret_cwis_ammo.name=CIWS 20mm Ammo Drum -item.turret_cheapo_ammo.name=6x24 Cheapo Turret Ammunition - -item.clip_revolver_iron.name=Box of Iron Rounds -item.clip_revolver.name=Box of .357 Rounds -item.clip_revolver_gold.name=Small Coffer of Golden Bullets -item.clip_revolver_schrabidium.name=Schrabidium Ammo Container -item.clip_rpg.name=Rocket Container -item.clip_xvl1456.name=Large Isotope Box -item.clip_osipr.name=AR2 Magazine -item.clip_immolator.name=Tank of Immolator Fuel -item.clip_cryolator.name=Tank of Cryolator Fuel -item.clip_revolver_lead.name=Box of Nuclear Bullets -item.clip_revolver_cursed.name=Britannia Military Standard Issue Pisol Magazine -item.clip_fatman.name=Six Pack of Mini Nukes -item.clip_mirv.name=Three-In-One Pack of Mini MIRVs -item.clip_bf.name=BF-Shell Double Pack -item.clip_mp.name=Britannia Military Standard Issue Assult Rifle Magazine -item.clip_mp40.name=9mm SMG Magazine -item.clip_uzi.name=32rnd .22 LR Magazine -item.clip_uboinik.name=Box of 12x70 Buckshot Rounds -item.clip_lever_action.name=Box of 12x74 Buckshot Rounds -item.clip_bolt_action.name=Box of 12x74 Slugs -item.clip_emp.name=Small Pack of Energy Cells -item.clip_revolver_nightmare.name=Bag of Bullets -item.clip_revolver_nightmare2.name=Belt with Laser Buckshot -item.clip_revolver_pip.name=Speedloader with Tainted Bullets -item.clip_revolver_nopip.name=Box of .44 Rounds -item.clip_stinger.name=Pack of Stinger Rockets -item.clip_jack.name=Box of Quadruple 12x70 Buckshot Rounds -item.clip_spark.name=Large Electromagnetic Cartridge -item.clip_hp.name=Ink Tanks -item.clip_euthanasia.name=Last Aid Kit -item.clip_defabricator.name=Belt with Defabricator Energy Cells - -item.ammo_container.name=Ammo Container - -tile.block_schrabidium.name=Block of Schrabidium -item.plate_gold.name=Gold Plate - -item.syringe_empty.name=Empty Syringe -item.syringe_antidote.name=Antidote -item.syringe_poison.name=Poisonous Injection -item.syringe_awesome.name=AWESOME -item.syringe_metal_empty.name=Metal Syringe -item.syringe_metal_stimpak.name=Stimpak -item.syringe_metal_medx.name=Med-X -item.syringe_metal_psycho.name=Psycho -item.syringe_metal_super.name=Super Stimpak -item.syringe_taint.name=Watery Taint Injection -item.med_bag.name=Doctor's Bag -item.radaway.name=RadAway -item.radaway_strong.name=Strong RadAway -item.radaway_flush.name=Elite RadAway -item.radx.name=Rad-X -item.pirfenidone.name=Pirfenidone -item.pill_iodine.name=Iodine Pill -item.plan_c.name=Plan C -item.med_ipecac.name=Ipecac Syrup -item.med_ptsd.name=PTSD Medication -item.med_schiziphrenia.name=Schizophrenia Medication -item.gas_mask_filter.name=Gas Mask Filter - -item.stealth_boy.name=Stealth Device - -entity.hbm.entity_bullet.name=Bullet -entity.hbm.entity_rocket.name=Rocket -entity.hbm.entity_schrabnel.name=Schrabnel -entity.entity_mob_nuclear_creeper.name=Nuclear Creeper -entity.entity_mob_tainted_creeper.name=Tainted Creeper -entity.entity_mob_hunter_chopper.name=Hunter Chopper -entity.entity_cyber_crab.name=Cyber Crab - -item.cap_aluminium.name=Aluminium Cap -item.hull_small_steel.name=Small Steel Shell -item.hull_small_aluminium.name=Small Aluminium Shell -item.hull_big_steel.name=Big Steel Shell -item.hull_big_aluminium.name=Big Aluminium Shell -item.hull_big_titanium.name=Big Titanium Shell -item.fins_flat.name=Flat Steel Casing -item.fins_small_steel.name=Small Steel Grid Fins -item.fins_big_steel.name=Big Steel Grid Fins -item.fins_tri_steel.name=Large Steel Fins -item.fins_quad_titanium.name=Small Titanium Fins -item.sphere_steel.name=Steel Sphere -item.pedestal_steel.name=Steel Pedestal -item.dysfunctional_reactor.name=Dysfunctional Nuclear Reactor - -item.rotor_steel.name=Large Steel Rotor -item.generator_steel.name=Generator Body -item.blade_titanium.name=Titanium Blade -item.turbine_titanium.name=Titanium Steam Turbine -item.generator_front.name=Generator Front -item.blade_tungsten.name=Tungsten Reinforced Blade -item.turbine_tungsten.name=Reinforced Turbofan Blades - -item.combine_scrap.name=CMB Scrap Metal -item.chopper_head.name=Hunter Chopper Cockpit -item.chopper_gun.name=Emplacement Gun -item.chopper_torso.name=Hunter Chopper Body -item.chopper_tail.name=Hunter Chopper Tail -item.chopper_wing.name=Hunter Chopper Wing -item.chopper_blades.name=Hunter Chopper Rotor Blades - -item.igniter.name=Igniter -item.watch.name=Broken Pocket Watch -item.apple_euphemium.name=Euphemium Apple -item.ingot_euphemium.name=Euphemium Ingot -item.nugget_euphemium.name=Euphemium Nugget -item.rod_quad_euphemium.name=Burned Out Quad Schrabidium Fuel Rod -item.plate_euphemium.name=Euphemium Compound Plate -item.plate_dineutronium.name=Dineutronium Compound Plate -item.plate_desh.name=Desh Compound Plate - -item.euphemium_helmet.name=Euphemium Helmet -item.euphemium_plate.name=Euphemium Chestplate -item.euphemium_legs.name=Euphemium Leggings -item.euphemium_boots.name=Euphemiums Boots - -item.schrabidium_helmet.name=Schrabidium Helmet -item.schrabidium_plate.name=Schrabidium Chestplate -item.schrabidium_legs.name=Schrabidium Leggings -item.schrabidium_boots.name=Schrabidium Boots -item.schrabidium_sword.name=Schrabidium Sword -item.schrabidium_pickaxe.name=Schrabidium Pickaxe -item.schrabidium_axe.name=Schrabidium Axe -item.schrabidium_shovel.name=Schrabidium Shovel -item.schrabidium_hoe.name=Schrabidium Hoe - -item.jetpack_boost.name=Boostpack -item.jetpack_fly.name=Jetpack -item.jetpack_break.name=Breakpack -item.jetpack_vector.name=Vectored Jetpack -item.jetpack_tank.name=Jetpack Reserve Fuel Tank - -item.gun_kit_1.name=Gun Oil -item.gun_kit_2.name=Gun Repair Kit - -item.chainsaw.name=Chainsaw -item.crowbar.name=Mk.V Crate Opening Device "Crowbar" - -item.wrench.name=Pipe Wrench -item.wrench_flipped.name=Blade on a Wrench -item.memespoon.name=§eMarket Gardener - -item.mask_of_infamy.name=Mask of Infamy - -tile.det_cord.name=Det Cord -tile.det_charge.name=Explosive Charge -tile.det_nuke.name=Nuclear Charge -tile.red_barrel.name=Explosive Barrel -tile.yellow_barrel.name=Radioactive Barrel - -item.designator.name=Short Range Target Designator -item.designator_range.name=Long Range Target Designator -item.designator_manual.name=Manual Target Designator -item.missile_assembly.name=Small Missile Assembly -item.missile_generic.name=High Explosive Missile -item.missile_anti_ballistic.name=Anti Ballistic Missile (WIP) -item.missile_incendiary.name=Incendiary Missile -item.missile_cluster.name=Cluster Missile -item.missile_buster.name=Bunker Buster -item.missile_strong.name=Strong HE Missile -item.missile_incendiary_strong.name=Strong Incendiary Missile -item.missile_cluster_strong.name=Strong Cluster Missile -item.missile_buster_strong.name=Enhanced Bunker Buster -item.missile_burst.name=Spare Missile -item.missile_inferno.name=Inferno Missile G.R.N. Mk.II -item.missile_rain.name=Bomblet Rain -item.missile_drill.name=The Concrete Cracker -item.missile_nuclear.name=Nuclear Missile -item.missile_nuclear_cluster.name=Thermonuclear Missile -item.missile_endo.name=Endothermic Missile -item.missile_exo.name=Exothermic Missile -item.missile_doomsday.name=Doomsday Missile -item.missile_taint.name=Taint-Tipped Missile -item.missile_micro.name=Micro-Nuclear Missile -item.missile_bhole.name=Black Hole Missile -item.missile_schrabidium.name=Schrabidium Missile -item.missile_emp.name=EMP Missile - -item.missile_carrier.name=HTR-01 Carrier Rocket -item.sat_mapper.name=Surface Mapping Satellite -item.sat_scanner.name=Satellite with Depth-Resource Scanning Module -item.sat_radar.name=Radar Survey Satellite -item.sat_laser.name=Orbital Death Ray -item.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion -item.sat_resonator.name=Xenium Resonator Satellite -item.sat_miner.name=Asteroid Mining Ship -item.sat_chip.name=Satellite ID-Chip -item.sat_interface.name=Satellite Control Interface -tile.sat_mapper.name=Surface Mapping Satellite (Deco Block) -tile.sat_scanner.name=Satellite with Depth-Resource Scanning Module (Deco Block) -tile.sat_radar.name=Radar Survey Satellite (Deco Block) -tile.sat_laser.name=Orbital Death Ray (Deco Block) -tile.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion (Deco Block) -tile.sat_resonator.name=Xenium Resonator Satellite (Deco Block) - -item.hazmat_helmet.name=Hazmat Helmet -item.hazmat_plate.name=Hazmat Chestplate -item.hazmat_legs.name=Hazmat Leggings -item.hazmat_boots.name=Hazmat Boots -item.hazmat_helmet_red.name=Advanced Hazmat Helmet -item.hazmat_plate_red.name=Advanced Hazmat Chestplate -item.hazmat_legs_red.name=Advanced Hazmat Leggings -item.hazmat_boots_red.name=Advanced Hazmat Boots -item.hazmat_helmet_grey.name=High-Performance Hazmat Helmet -item.hazmat_plate_grey.name=High-Performance Hazmat Chestplate -item.hazmat_legs_grey.name=High-Performance Hazmat Leggings -item.hazmat_boots_grey.name=High-Performance Hazmat Boots -item.hazmat_paa_helmet.name=PaA Battle Hazmat Suit Helmet -item.hazmat_paa_plate.name=PaA Battle Hazmat Suit Chestplate -item.hazmat_paa_legs.name=PaA Battle Hazmat Suit Leggings -item.hazmat_paa_boots.name=PaA Battle Hazmat Suit Boots -item.asbestos_helmet.name=Fire Proximity Helmet -item.asbestos_plate.name=Fire Proximity Chestplate -item.asbestos_legs.name=Fire Proximity Leggings -item.asbestos_boots.name=Fire Proximity Boots - -item.paa_plate.name=PaA Chest Protection Plate -item.paa_legs.name=PaA Leg Reinforcements -item.paa_boots.name=PaA "good ol' shoes" - -item.jackt.name=Damn Stylish Ballistic Jacket -item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift - -item.goggles.name=Protection Goggles -item.gas_mask.name=Gas Mask -item.gas_mask_m65.name=M65-Z Gas Mask -item.oxy_mask.name=Oxygen Mask -item.t45_helmet.name=T45 Power Armor Helmet -item.t45_plate.name=T45 Power Armor Chestplate -item.t45_legs.name=T45 Power Armor Leggings -item.t45_boots.name=T45 Power Armor Boots - -tile.mush.name=Glowing Mushroom -tile.waste_mycelium.name=Glowing Mycelium - -tile.sellafield_slaked.name=Slaked Sellafite -tile.sellafield_0.name=Sellafite -tile.sellafield_1.name=Hot Sellafite -tile.sellafield_2.name=Boiling Sellafite -tile.sellafield_3.name=Blazing Sellafite -tile.sellafield_4.name=Infernal Sellafite -tile.sellafield_core.name=Sellafite-Corium - -item.warhead_generic_small.name=Small Warhead -item.warhead_generic_medium.name=Medium Warhead -item.warhead_generic_large.name=Large Warhead -item.warhead_incendiary_small.name=Small Incendiary Warhead -item.warhead_incendiary_medium.name=Medium Incendiary Warhead -item.warhead_incendiary_large.name=Large Incendiary Warhead -item.warhead_cluster_small.name=Small Cluster Warhead -item.warhead_cluster_medium.name=Medium Cluster Warhead -item.warhead_cluster_large.name=Large Cluster Warhead -item.warhead_buster_small.name=Small Bunker Buster Warhead -item.warhead_buster_medium.name=Medium Bunker Buster Warhead -item.warhead_buster_large.name=Large Bunker Buster Warhead -item.warhead_nuclear.name=Nuclear Warhead -item.warhead_mirvlet.name=MIRV -item.warhead_mirv.name=Thermonuclear Warhead -item.warhead_thermo_endo.name=Endothermic Warhead -item.warhead_thermo_exo.name=Exothermic Warhead -item.fuel_tank_small.name=Small Fuel Tank -item.fuel_tank_medium.name=Medium Fuel Tank -item.fuel_tank_large.name=Large Fuel Tank -item.thruster_small.name=Small Thruster -item.thruster_medium.name=Medium Thruster -item.thruster_large.name=Large Thruster - -item.wand_k.name=Construction Wand -item.wand_s.name=Structure Wand -item.wand_d.name=Debug Wand -item.analyzer.name=Analyzer - -item.screwdriver.name=Screwdriver -item.overfuse.name=Singularity Screwdriver - -item.steel_helmet.name=Steel Helmet -item.steel_plate.name=Steel Chestplate -item.steel_legs.name=Steel Leggings -item.steel_boots.name=Steel Boots -item.titanium_helmet.name=Titanium Helmet -item.titanium_plate.name=Titanium Chestplate -item.titanium_legs.name=Titanium Leggings -item.titanium_boots.name=Titanium Boots -item.alloy_helmet.name=Advanced Alloy Helmet -item.alloy_plate.name=Advanced Alloy Chestplate -item.alloy_legs.name=Advanced Alloy Leggings -item.alloy_boots.name=Advanced Alloy Boots -item.cmb_helmet.name=CMB Steel Helmet -item.cmb_plate.name=CMB Steel Chestplate -item.cmb_legs.name=CMB Steel Leggings -item.cmb_boots.name=CMB Steel Boots -item.security_helmet.name=Security Helmet -item.security_plate.name=Security Chestplate -item.security_legs.name=Security Leggings -item.security_boots.name=Security Boots - -item.steel_sword.name=Steel Sword -item.steel_pickaxe.name=Steel Pickaxe -item.steel_axe.name=Steel Axe -item.steel_shovel.name=Steel Shovel -item.steel_hoe.name=Steel Hoe -item.titanium_sword.name=Titanium Sword -item.titanium_pickaxe.name=Titanium Pickaxe -item.titanium_axe.name=Titanium Axe -item.titanium_shovel.name=Titanium Shovel -item.titanium_hoe.name=Titanium Hoe -item.alloy_sword.name=Advanced Alloy Sword -item.alloy_pickaxe.name=Advanced Alloy Pickaxe -item.alloy_axe.name=Advanced Alloy Axe -item.alloy_shovel.name=Advanced Alloy Shovel -item.alloy_hoe.name=Advanced Alloy Hoe -item.cmb_sword.name=CMB Steel Sword -item.cmb_pickaxe.name=CMB Steel Pickaxe -item.cmb_axe.name=CMB Steel Axe -item.cmb_shovel.name=CMB Steel Shovel -item.cmb_hoe.name=CMB Steel Hoe -item.elec_sword.name=Stunstick -item.elec_pickaxe.name=Impact Drill -item.elec_axe.name=Electric Chainsaw -item.elec_shovel.name=Spiral Drill -item.desh_sword.name=Worker's Alloy Sword -item.desh_pickaxe.name=Worker's Alloy Pickaxe -item.desh_axe.name=Worker's Alloy Axe -item.desh_shovel.name=Worker's Alloy Shovel -item.desh_hoe.name=Worker's Alloy Hoe - -tile.red_cable.name=Red Copper Cable - -tile.block_meteor.name=Meteorite Block -tile.block_meteor_broken.name=Broken Meteorite Block -tile.block_meteor_cobble.name=Meteorite Cobblestone -tile.block_meteor_molten.name=Hot Meteorite Cobblestone -tile.block_meteor_treasure.name=Meteorite Treasure Block - -item.cape_radiation.name=Cape (Radiation) -item.cape_gasmask.name=Cape (Gas Mask) -item.cape_schrabidium.name=Cape (Schrabidic) -item.cape_hbm.name=Hbm's Cape -item.cape_dafnik.name=Dafnik's Cape -item.cape_lpkukin.name=LPkukin's Cape -item.cape_vertice.name=Lord Vertice's Cape -item.cape_codered_.name=codered_'s Cape -item.cape_ayy.name=Ayy's Cape -item.cape_nostalgia.name=DrNostalgia's Cape - -tile.machine_converter_he_rf.name=HE to RF Converter -tile.machine_converter_rf_he.name=RF to HE Converter -tile.machine_transformer.name=10k-20Hz Transformer -tile.machine_transformer_dnt.name=DNT-20Hz Transformer -tile.machine_transformer_20.name=10k-1Hz Transformer -tile.machine_transformer_dnt_20.name=DNT-1Hz Transformer - -tile.vent_chlorine.name=Chlorine Vent -tile.vent_cloud.name=Cloud Vent -tile.vent_pink_cloud.name=Pink Cloud Vent - -tile.absorber.name=Radiation Absorber -tile.absorber_red.name=Enhanced Radiation Absorber -tile.absorber_green.name=Advanced Radiation Absorber -tile.absorber_pink.name=Elite Radiation Absorber -tile.decon.name=Player Decontaminator - -item.schrabidium_hammer.name=Schrabidium Hammer -item.shimmer_sledge.name=Shimmer Sledge -item.shimmer_axe.name=Shimmer Axe -item.euphemium_stopper.name=Stopper -item.matchstick.name=Matchstick -item.remote.name=Broken Remote - -item.shimmer_head.name=Heavy Hammer Head -item.shimmer_axe_head.name=Heavy Axe Head -item.shimmer_handle.name=Reinforced Polymer Handle - -item.redcoil_capacitor.name=Redcoil Capacitor -item.detonator.name=Detonator -item.detonator_multi.name=Multi Detonator -item.detonator_laser.name=Laser Detonator -item.detonator_deadman.name=Dead Man's Detonator -item.detonator_de.name=Dead Man's Explosive -item.crate_caller.name=Supply Drop Requester -item.bomb_caller.name=Airstrike Designator -item.meteor_remote.name=Meteorite Remote - -item.ingot_hes.name=Highly Enriched Schrabidium Fuel Ingot -item.ingot_les.name=Low Enriched Schrabidium Fuel Ingot -item.nugget_hes.name=Highly Enriched Schrabidium Fuel Nugget -item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget - -item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet -item.pellet_hes.name=HES Watz Pellet -item.pellet_mes.name=MES Watz Pellet -item.pellet_les.name=LES Watz Pellet -item.pellet_beryllium.name=Beryllium Moderator Pellet -item.pellet_neptunium.name=Neptunium Watz Pellet -item.pellet_lead.name=Lead Reflector Pellet -item.pellet_advanced.name=Advanced Watz Performance Improver - -item.titanium_filter.name=Titanium Filter - -tile.mud_block.name=Poisonous Mud -fluid.mud_fluid=Poisonous Mud -item.bucket_mud.name=Bucket of Poisonous Mud -tile.acid_block.name=Acid -fluid.acid_fluid=Acid -item.bucket_acid.name=Bucket of Acid -tile.toxic_block.name=Stereotypical Green Ooze -fluid.toxic_fluid=Stereotypical Green Ooze -item.bucket_toxic.name=Bucket of Stereotypical Green Ooze -item.tank_waste_0.name=Mud Container -item.tank_waste_1.name=Mud Container -item.tank_waste_2.name=Mud Container -item.tank_waste_3.name=Mud Container -item.tank_waste_4.name=Mud Container -item.tank_waste_5.name=Mud Container -item.tank_waste_6.name=Mud Container -item.tank_waste_7.name=Mud Container -item.tank_waste_8.name=Mud Container - -item.can_empty.name=Empty Can -item.can_smart.name='Smart' Energy Drink -item.can_creature.name='Creature' Energy Drink -item.can_redbomb.name='Red Bomb' Energy Drink -item.can_mrsugar.name='Dr. Sugar' Soft Drink -item.can_overcharge.name=Overcharge Delirium XT -item.can_luna.name=Black Mesa Luna - Dark Cola -item.bottle_empty.name=Empty Bomb-Shaped Bottle -item.bottle_nuka.name=Bottle of Nuka Cola -item.bottle_cherry.name=Bottle of Nuka Cherry -item.bottle_quantum.name=Bottle of Nuka Cola Quantum -item.bottle_sparkle.name=Bottle of S~Cola -item.bottle_rad.name=Bottle of S~Cola RAD -item.bottle2_empty.name=Empty Bottle -item.bottle2_korl.name=Korl -item.bottle2_fritz.name=Fritz Cola -item.bottle2_korl_special.name=The First Korl -item.bottle2_fritz_special.name=The First Fritz Cola -item.bottle2_sunset.name=Sunset Sarsaparilla -item.chocolate_milk.name=Chocolate Milk -item.cap_nuka.name=Nuka Cola Bottle Cap -item.cap_quantum.name=Nuka Cola Quantum Bottle Cap -item.cap_sparkle.name=S~Cola Bottle Cap -item.cap_rad.name=S~Cola RAD Bottle Cap -item.cap_korl.name=Korl Bottle Cap -item.cap_fritz.name=Fritz Cola Bottle Cap -item.cap_sunset.name=Sunset Sarsaparilla Bottle Cap -item.cap_star.name=Sunset Sarsaparilla Star Cap -item.ring_pull.name=Ring Pull - -item.canteen_13.name=Vault 13 Canteen -item.canteen_vodka.name=Stylish Flask - -item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener - -item.blades_aluminium.name=Aluminium Shredder Blades -item.blades_gold.name=Golden Shredder Blades -item.blades_iron.name=Iron Shredder Blades -item.blades_steel.name=Steel Shredder Blades -item.blades_titanium.name=Titanium Shredder Blades -item.blades_advanced_alloy.name=Advanced Shredder Blades -item.blades_combine_steel.name=CMB Shredder Blades -item.blades_schrabidium.name=Schrabidium Shredder Blades - -item.stamp_stone_flat.name=Flat Stamp (Stone) -item.stamp_stone_plate.name=Plate Stamp (Stone) -item.stamp_stone_wire.name=Wire Stamp (Stone) -item.stamp_stone_circuit.name=Circuit Stamp (Stone) -item.stamp_iron_flat.name=Flat Stamp (Iron) -item.stamp_iron_plate.name=Plate Stamp (Iron) -item.stamp_iron_wire.name=Wire Stamp (Iron) -item.stamp_iron_circuit.name=Circuit Stamp (Iron) -item.stamp_steel_flat.name=Flat Stamp (Steel) -item.stamp_steel_plate.name=Plate Stamp (Steel) -item.stamp_steel_wire.name=Wire Stamp (Steel) -item.stamp_steel_circuit.name=Circuit Stamp (Steel) -item.stamp_titanium_flat.name=Flat Stamp (Titanium) -item.stamp_titanium_plate.name=Plate Stamp (Titanium) -item.stamp_titanium_wire.name=Wire Stamp (Titanium) -item.stamp_titanium_circuit.name=Circuit Stamp (Titanium) -item.stamp_obsidian_flat.name=Flat Stamp (Obsidian) -item.stamp_obsidian_plate.name=Plate Stamp (Obsidian) -item.stamp_obsidian_wire.name=Wire Stamp (Obsidian) -item.stamp_obsidian_circuit.name=Circuit Stamp (Obsidian) -item.stamp_schrabidium_flat.name=Flat Stamp (Schrabidium) -item.stamp_schrabidium_plate.name=Plate Stamp (Schrabidium) -item.stamp_schrabidium_wire.name=Wire Stamp (Schrabidium) -item.stamp_schrabidium_circuit.name=Circuit Stamp (Schrabidium) -item.stamp_357.name=.357 Magnum Stamp -item.stamp_44.name=.44 Magnum Stamp -item.stamp_9.name=Small Caliber Stamp -item.stamp_50.name=Large Caliber Stamp - -item.part_lithium.name=Box of Lithium Dust -item.part_beryllium.name=Box of Beryllium Dust -item.part_carbon.name=Box of Carbon Dust -item.part_copper.name=Box of Copper Dust -item.part_plutonium.name=Box of Plutonium Dust - -item.rune_blank.name=Blank Catalyst Matrix -item.rune_isa.name=Cool Catalyst Matrix -item.rune_dagaz.name=Balanced Catalyst Matrix -item.rune_hagalaz.name=Rough Catalyst Matrix -item.rune_jera.name=Multiplicative Catalyst Matrix -item.rune_thurisaz.name=Additive Catalyst Matrix - -item.ams_catalyst_blank.name=Blank Reaction Catalyst -item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst -item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst -item.ams_catalyst_caesium.name=Caeseium Reaction Catalyst -item.ams_catalyst_cerium.name=Cerium Reaction Catalyst -item.ams_catalyst_cobalt.name=Cobalt Reaction Catalyst -item.ams_catalyst_copper.name=Copper Reaction Catalyst -item.ams_catalyst_euphemium.name=Euphemium Reaction Catalyst -item.ams_catalyst_iron.name=Iron Reaction Catalyst -item.ams_catalyst_lithium.name=Lithium Reaction Catalyst -item.ams_catalyst_niobium.name=Niobium Reaction Catalyst -item.ams_catalyst_strontium.name=Strontium Reaction Catalyst -item.ams_catalyst_thorium.name=Thorium Reaction Catalyst -item.ams_catalyst_tungsten.name=Tungsten Reaction Catalyst -item.ams_catalyst_schrabidium.name=Schrabidium Reaction Catalyst -item.ams_catalyst_dineutronium.name=Dineutronium Reaction Catalyst - -item.ams_focus_blank.name=Blank Stabilizer Focus -item.ams_focus_limiter.name=Limiting Stabilizer Focus -item.ams_focus_booster.name=Boosting Stabilizer Focus - -item.ams_muzzle.name=Ray-Emission Muzzle - -item.ams_core_sing.name=Vibrant Singularity (AMS Core) -item.ams_core_wormhole.name=Tiny Wormhole (AMS Core) -item.ams_core_eyeofharmony.name=Eye of Harmony (AMS Core) -item.ams_core_thingy.name=Thingy (AMS Core) - -item.crystal_energy.name=Energy Crystal -item.pellet_coolant.name=Coolant Cluster - -item.linker.name=Telelinker -item.reactor_sensor.name=Reactor Remote Sensor -item.oil_detector.name=Oil Reservoir Detector -item.geiger_counter.name=Handheld Geiger Counter -tile.geiger.name=Geiger Counter -item.survey_scanner.name=Survey Scanner - -item.thermo_element.name=Thermoelectric Element -item.limiter.name=Generator Limiter - -item.multitool_dig.name=Power Fist (Digging Claw) -item.multitool_silk.name=Power Fist (Silk Touch Claw) -item.multitool_ext.name=Power Fist (Ore Extractor) -item.multitool_miner.name=Power Fist (Extracting Mining Laser) -item.multitool_hit.name=Power Fist (Fist) -item.multitool_beam.name=Power Fist (Zapper) -item.multitool_sky.name=Power Fist (Crack the Sky) -item.multitool_mega.name=Power Fist (Super Punch) -item.multitool_joule.name=Power Fist (Giga Joule) -item.multitool_decon.name=Power Fist (Decontaminator) - -item.australium_iii.name=Mark III Life Extender -item.australium_iv.name=Mark IV Life Extender -item.australium_v.name=Mark V Life Extender - -item.weapon_saw.name=Doctor Assisted Homicide -item.weapon_bat.name=Richard's Default -item.weapon_bat_nail.name=The Cliché -item.weapon_golf_club.name=Russian Mobster's Club -item.weapon_pipe_rusty.name=The Attitude Adjuster -item.weapon_pipe_lead.name=The Manual Override -item.reer_graar.name=The Reer Graar - -item.letter.name=Express Mail -item.polaroid.name=The Polaroid -item.glitch.name=Glitch -item.book_secret.name=3-596-50802-9 -item.book_of_.name=The Book of -item.burnt_bark.name=Burnt Bark - -item.crystal_horn.name=Crystal Horn -item.crystal_charred.name=Charred Crystal -item.ingot_lanthanium.name=Semi-Stable Lanthanium Ingot -item.ingot_actinium.name=Semi-Stable Actinium Ingot - -tile.dummy_block.name=Dummy Block -tile.dummy_port.name=Dummy Block (Electricity Port) - -item.chopper.name=Hunter Chopper - -item.nothing.name=Nothing - -tile.crystal_virus.name=Dark Crystal -tile.crystal_hardened.name=Hardened Dark Crystal -tile.crystal_pulsar.name=Pulsating Crystal - -tile.taint.name=Taint -tile.residue.name=Cloud Residue -item.powder_cloud.name=Cloud Residue - -tile.cheater_virus.name=Gelid Euphemium -tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block - -item.mysteryshovel.name=Brittle Spade -tile.ntm_dirt.name=Dirt -item.memory.name=item.null.name \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 42649d57a..4b90f99f7 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -94,6 +94,8 @@ achievement.RBMK.desc=He's delusional, get him to the infirmary. achievement.RBMK=3.6 Roentegen? achievement.redBalloons.desc="This is what we've waited for. This is it, boys, this is war." achievement.redBalloons=99 Red Balloons +achievement.redRoom.desc=? +achievement.redRoom=The Other Side achievement.sacrifice.desc=Face the fire and live. achievement.sacrifice=Sororicide achievement.schrab.desc=Regardless, I wouldn't look at it for too long. @@ -129,12 +131,21 @@ achievement.witchtaunter=Witch Taunter achievement.ZIRNOXBoom.desc=cope, seethe, mald achievement.ZIRNOXBoom=CIRNOX +analyze.basic1======NTM Component===== +analyze.basic2=More documentation can be found on the wiki. +analyze.basic3====Extra Information=== +analyze.dummy=Type: Dummy Block +analyze.error=This block's compatibility has not been set properly, this should be reported as a bug! +analyze.name=Name: %s +analyze.noInfo=No additional information. + armor.blastProtection=Damage modifier of %s against explosions armor.cap=Hard damage cap of %s armor.damageModifier=Damage modifier of %s against %s armor.dash=Grants %s dashes armor.electricJetpack=Ion Jetpack armor.explosionImmune=Cannot take any damage except from explosions +armor.fasterReload=Faster Reload armor.fastFall=Fast Fall armor.fireproof=Fireproof armor.fullSetBonus=Full Set Bonus: @@ -145,10 +156,12 @@ armor.gravity=Gravity modifier of %s armor.hardLanding=Hard Landing armor.ignoreLimit=Resistance is not affected by resistance limit armor.modifier=General damage modifier of %s +armor.moreAmmo=More Ammo armor.nullDamage=Nullifies all damage from %s armor.projectileProtection=Damage modifier of %s against projectiles armor.rocketBoots=Rocket Boots armor.sprintBoost=Boosted Sprint +armor.stepSize=Stepsize: %s armor.thermal=Thermal Sight armor.threshold=Damage threshold of %s armor.vats=Enemy HUD @@ -161,6 +174,7 @@ armorMod.chestplates=Chestplates armorMod.helmets=Helmets armorMod.insertHere=Insert armor to modify... armorMod.leggings=Leggings +armorMod.type.battery=Battery armorMod.type.boots=Boots armorMod.type.chestplate=Chestplate armorMod.type.cladding=Cladding @@ -343,7 +357,7 @@ book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be book_lore.book_dust.name=Note book_lore.book_dust.author=Dave book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction "MKU" whatever that means, and that it contains actual household lint. can you believe that? one of the most book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d book_lore.book_mercury.name=Note @@ -431,6 +445,21 @@ book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissec book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... +book_lore.beacon.name=Signal Beacon Instruction Booklet +book_lore.beacon.author=Flim Flam Industries +book_lore.beacon.page.0=Thank you for your purchase of a Mk.2 Illuminated Signal Beacon (rev. 1.3)! This small booklet will provide a short introduction in the operation of the beacon, as well as its inner workings. +book_lore.beacon.page.1=Chapter 1: Architecture $ Each unit is composed of four main parts: The control circuit, a lantern, a fog horn and the casing which houses the other parts. For a detailed explanation of the main circuit, please +book_lore.beacon.page.2=refer to the circuit diagram found on the inside of the maintenance lid of the casing. The lantern is made up of a polycarbonate case containing a dual-color 250 Watt halogen bulb with a standard 200mm socket, replacements +book_lore.beacon.page.3=for the bulb can be ordered from our stores. Third party bulbs are not recommended, as we cannot ensure safe operation. The case is made from a specialized zinc-coated stainless steel and is resistant to weathering. +book_lore.beacon.page.4=Chapter 2: Lantern $ The lantern's primary uses are providing light for ease of maintenance in harsh weather conditions as well as a status indicator. Should the power-on self test (POST) fail, the lantern will +book_lore.beacon.page.5=light up red, otherwise it will light up green. Note that colors can vary depending on the replacement bulb. +book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) communication as well as for message broadcasting. +book_lore.beacon.page.7=Chapter 4: Peer-to-Peer $ For details on communication, refer to the communications handbook. A short rundown of establishing a P2P connection follows: First, the beacon has to give the "START CONNECTION" signal, +book_lore.beacon.page.8=being a single long tone. All available peers should respond with a single long tone as well (order specified by proximity, as well as the communication guidelines outlined in the handbook, section "Responding to a Connection") +book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respond with two long tones. All communication afterwards has to happen using pre-negotiated signals, most commonly +book_lore.beacon.page.10=using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". +book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] + cannery.f1=[ Press F1 for help ] cannery.centrifuge=Gas Centrifuge @@ -503,6 +532,40 @@ cannery.willow.7=Now the willow's leaves can be harvested. Breaking the top bloc cannery.willow.8=Soon the plant will start growing again, yielding more leaves if the dirt is replaced with oily dirt. The leaves can be processed into cadmium powder using an ore acidizer. cannery.willow.9=Harvesting willow leaves can be automated using the automatic buzzsaw, it will only break plants that are ready for harvest. +cannery.hadron=Particle Accelerator +cannery.hadron.0=A Particle Accelerator consists of three main parts: A Core, an Analysis Chamber, and a set of Superconducting Coils +cannery.hadron.1=This is the Particle Accelerator Core Component, which fires particles at relativistic speeds down the coils towards the Analysis Chamber +cannery.hadron.2=Particles are ejected from here +cannery.hadron.3=And in circular accelerators, return to here +cannery.hadron.4=A coil segment is constructed by using 8 Dense Coils with nothing (or the core) in the middle +cannery.hadron.5=This coil segment must itself also be enclosed within Particle Accelerator Plating +cannery.hadron.6=To access the Core Component, you'll need to add one or more Access Terminals +cannery.hadron.7=The Core Component will also require power to operate, add a power plug on an edge +cannery.hadron.8=The Accelerator will require enough Power Plugs to supply at least 10KHE of electricity per unit of Coil Strength +cannery.hadron.9=Note that the coil segment that wraps around the Core Component is not factored into the Coil Strength calculation +cannery.hadron.10=Nor is this coil segment required for purely linear accelerators +cannery.hadron.11=For circular accelerators, you will need to add corners to change the direction of the particle +cannery.hadron.12=The outside corner coils can be omitted entirely +cannery.hadron.13=The final part of our Accelerator is the Analysis Chamber, which is a 3x3x3 empty chamber surrounded by Analysis Chamber blocks +cannery.hadron.14=Your completed Particle Accelerator should look something like this! + +cannery.hadron.math.0=Neodymium Coil Strength: 50 +cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE +cannery.hadron.math.2=Starmetal Coil Strength: 1,000 +cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE + +cannery.schottky=Schottky Particle Diode +cannery.schottky.0=This is a Schottky Particle Diode. It can allow for more complex particle accelerator designs and save on electricity +cannery.schottky.1=By default it blocks all particles and must be configured with a Screwdriver +cannery.schottky.2=This face will now accept entering particles +cannery.schottky.3=And this face will eject particles that enter +cannery.schottky.4=The diode now has two exits, and will now behave in a quantum manner, creating virtual particles for each exit +cannery.schottky.5=Once all the virtual particles have reached an Analysis Chamber, the particle with the lowest momentum required for the current recipe is chosen +cannery.schottky.6=The chosen particle undergoes a wavefunction collapse and is made real, consuming only the power that the collapsing particle requires +cannery.schottky.7=If any virtual particles encounter any malformed segments, all virtual particles will be discarded and the erroring particle will be collapsed instead +cannery.schottky.8=Note that virtual particles will never use the same Diode exit twice. Infinite loops will fail, but re-entering a Diode is otherwise fine +cannery.schottky.9=Your Schottky Particle Diode should be properly enclosed, with free paths for each intersection exit + chem.ARSENIC=Arsenic Extraction chem.ASPHALT=Asphalt Production chem.BAKELITE=Bakelite Production @@ -556,19 +619,23 @@ chem.GASOLINE_LEADED=Leaded Gasoline Mixing chem.HEAVY_ELECTROLYSIS=Heavy Water Cryo-Electrolysis chem.HELIUM3=Helium-3 Extraction from Moon Turf chem.KEVLAR=Kevlar Compound Production +chem.LAMINATE=Laminate Production chem.LPG=Petroleum Gas Liquefaction chem.LUBRICANT=Lubricant Mixing chem.METH=Methamphetamine Synthesis +chem.MEAT_PROCESSING=Glyphid Meat Mineral Extraction chem.NITAN=NITAN Super Fuel Mixing chem.NITRIC_ACID=Nitric Acid Production chem.OIL_SAND=Tar Sand Extraction chem.OSMIRIDIUM_DEATH=Osmiridic Solution Production +chem.PC=Polycarbonate Synthesis chem.PC_ELECTROLYSIS=Potassium Chloride Electrolysis chem.PEROXIDE=Hydrogen Peroxide Production chem.PET=PET Synthesis chem.PETROIL_LEADED=Leaded Petroil Mixing chem.POLYMER=Polymer Synthesis chem.PUF6=Plutonium Hexafluoride Production +chem.PVC=Polyvinylchloride Synthesis chem.RUBBER=Rubber Production chem.SAS3=Schrabidium Trisulfide Production chem.SATURN=Saturnite Production @@ -589,6 +656,9 @@ chem.SF_PETROIL=Petroil Solidification chem.SF_PETROLEUM=Petroleum Gas Solidification chem.SF_RECLAIMED=Reclaimed Oil Solidification chem.SF_SMEAR=Industrial Oil Solidification +chem.SHELL_CHLORINE=Chlorine Gas Artillery Shell Production +chem.SHELL_MUSTARD=Mustard Gas Artillery Shell Production +chem.SHELL_PHOSGENE=Phosgene Artillery Shell Production chem.SOLID_FUEL=Solid Rocket Fuel Production chem.SOLVENT=Organic Solvent Mixing chem.STEAM=Water Boiling @@ -596,6 +666,7 @@ chem.SULFURIC_ACID=Sulfuric Acid Production chem.TATB=TATB Synthesis chem.TEL=TEL Mixing chem.TEST=Test +chem.THORIUM_SALT=Thorium Salt Enrichment chem.TNT=TNT Synthesis chem.UF6=Uranium Hexafluoride Production chem.VIT_GAS=Gaseous Nuclear Waste Vitrification @@ -604,12 +675,20 @@ chem.XENON=Linde Xenon Cycle chem.XENON_OXY=Boosted Linde Xenon Cycle chem.YELLOWCAKE=Yellowcake Production +commands.satellite.no_active_satellites=No active satellites found! +commands.satellite.no_satellite=No satellite using this frequency found! +commands.satellite.not_a_satellite=The held item is not a satellite! +commands.satellite.satellite_descended=Satellite successfully descended. +commands.satellite.satellite_orbited=Satellite launched. +commands.satellite.should_be_run_as_player=This command should be run by a player! + container.amsBase=AMS Base (Deco) container.amsEmitter=AMS Emitter (Deco) container.amsLimiter=AMS Stabilizer (Deco) container.anvil=Tier %s Anvil container.arcFurnace=Arc Furnace container.armorTable=Armor Modification Table +container.ashpit=Ashpit container.assembler=Assembly Machine container.autocrafter=Automatic Crafting Table container.barrel=Barrel @@ -629,6 +708,7 @@ container.craneUnboxer=Conveyor Unboxer container.crateDesh=Desh Crate container.crateIron=Iron Crate container.crateSteel=Steel Crate +container.crateTemplate=Template Crate container.crateTungsten=Tungsten Crate container.crystallizer=Ore Acidizer container.cyclotron=Cyclotron @@ -639,14 +719,20 @@ container.dfcReceiver=DFC Receiver container.dfcStabilizer=DFC Stabilizer container.diFurnace=Blast Furnace container.diFurnaceRTG=Nuclear Blast Furnace +container.droneCrate=Transport Drone Crate +container.droneDock=Dock +container.droneProvider=Provider +container.droneRequester=Requester container.electricFurnace=Electric Furnace container.epress=Electric Press +container.exposureChamber=Exposure Chamber container.factoryAdvanced=Advanced Factory container.factoryTitanium=Basic Factory container.fluidtank=Tank container.fileCabinet=Filing Cabinet container.forceField=Forcefield Emitter container.frackingTower=Hydraulic Fracking Tower +container.furnaceBrick=Bricked Furnace container.furnaceCombination=Combination Oven container.furnaceIron=Iron Furnace container.furnaceSteel=Steel Furnace @@ -660,11 +746,16 @@ container.heaterFirebox=Firebox container.heaterHeatex=Heat Exchanger container.heaterOilburner=Fluid Burner container.heaterOven=Heating Oven +container.hydrotreater=Hydrotreater container.iGenerator=Industrial Generator container.keyForge=Locksmith Table -container.launchPad=Missile Launch Pad +container.launchPad=Launch Pad +container.launchPadRusted=Launch Pad container.launchTable=Large Launch Pad container.leadBox=Containment Box +container.machineAmmoPress=Ammo Press +container.machineArcWelder=Arc Welder +container.machineArcFurnaceLarge=Arc Furnace container.machineBoiler=Oil Heater container.machineCMB=CMB Steel Furnace container.machineCoal=Combustion Generator @@ -673,18 +764,28 @@ container.machineCompressor=Compressor container.machineCrucible=Crucible container.machineDiesel=Diesel Generator container.machineElectricBoiler=Electric Oil Heater +container.machineElectrolyser=Electrolysis Machine container.machineFEL=FEL +container.machineFunnel=Combinator Funnel +container.machineICF=ICF +container.machineICFPress=ICF Fuel Pellet Maker container.machineITER=Fusion Reactor container.machineLargeTurbine=Industrial Steam Turbine container.machineLiquefactor=Liquefactor container.machineMixer=Industrial Mixer +container.machineOreSlopper=B.O.P. +container.machinePyroOven=Pyrolysis Oven container.machineRefinery=Oil Refinery +container.machineRotaryFurnace=Rotary Furnace container.machineSelenium=Radial Performance Engine container.machineShredder=Shredder container.machineSILEX=SILEX +container.machineSolderingStation=Soldering Station container.machineSolidifier=Solidifier +container.machineStrandCaster=Strand Caster container.machineTurbine=Steam Turbine container.machineTurbofan=Turbofan +container.machineWoodBurner=Wood-Burner container.machine_schrabidium_transmutator=Schrabidium Transmutation Device container.massStorage=Storage container.microwave=Microwave @@ -730,6 +831,8 @@ container.reactorResearch=Research Reactor container.reix=Rei-X Mainframe container.rtg=RT Generator container.rtgFurnace=RTG Furnace +container.rttyCounter=Redstone-over-Radio Item Counter +container.rttyLogic=Redstone-over-Radio Logic Receiver container.rttyReceiver=Redstone-over-Radio Receiver container.rttySender=Redstone-over-Radio Transmitter container.safe=Safe @@ -760,13 +863,28 @@ container.wasteDrum=Spent Fuel Pool Drum container.watzPowerplant=Watz Power Plant container.zirnox=ZIRNOX Nuclear Reactor +copytool.filter=Filter +copytool.invertRedstone=Redstone Inverted +copytool.invertFilter=Filter Inverted +copytool.orientation=Orientation +copytool.pattern0=Red Side +copytool.pattern1=Orange Side +copytool.pattern2=Yellow Side +copytool.pattern3=Green Side +copytool.pattern4=Blue Side +copytool.pattern5=Purple Side + crucible.aa=Advanced Alloy Production +crucible.abronze=Arsenic Bronze Production +crucible.bbronze=Bismuth Bronze Production +crucible.bscco=BSCCO Production crucible.cdalloy=Cadmium Steel Production crucible.cmb=CMB Steel Production crucible.ferro=Ferrouranium Production crucible.hematite=Iron Production from Hematite crucible.hss=High-Speed Steel Production crucible.malachite=Copper Production from Malachite +crucible.magtung=Magnetized Tungsten Production crucible.redcopper=Red Copper Production crucible.steel=Steel Production crucible.steelMeteoric=Steel Production from Meteoric Iron @@ -774,6 +892,17 @@ crucible.steelPig=Steel Production from Pig Iron crucible.steelWrought=Steel Production from Wrought Iron crucible.tcalloy=Technetium Steel Production +damage.inset=Resistances when worn in set: +damage.item=Resistances when worn: +damage.category.EXPL=Explosion +damage.category.FIRE=Fire +damage.category.PROJ=Projectile +damage.exact.drown=Drowning +damage.exact.fall=Fall damage +damage.exact.LASER=Laser +damage.exact.onFire=Afterburn +damage.other=Other + death.attack.acid=%1$s fell into acid. death.attack.acidPlayer=%1$s was dissolved by %2$s. death.attack.ams=%1$s was bathed in deadly particles that have yet to be named by human science. @@ -781,6 +910,7 @@ death.attack.amsCore=%1$s was vaporized in the fire of a singularity. death.attack.asbestos=%1$s is now entitled to financial compensation. death.attack.bang=%1$s was blasted into bite-sized pieces. death.attack.blackhole=%1$s was spaghettified. +death.attack.blacklung=%1$s died from black lung disease. death.attack.blender=%1$s was chopped in small, bite-sized pieces. death.attack.boat=%1$s was hit by a boat. death.attack.boil=%1$s was boiled alive by %2$s. @@ -831,6 +961,23 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. +death.sedna.electric=%1$s was fried. +death.sedna.electric.attacker=%1$s was fried by %2$s. +death.sedna.explosive=%1$s was blown up. +death.sedna.explosive.attacker=%1$s was blown up by %2$s. +death.sedna.fire=%1$s was incinerated. +death.sedna.fire.attacker=%1$s was incinerated by %2$s. +death.sedna.laser=%1$s was pulverized. +death.sedna.laser.attacker=%1$s was pulverized by %2$s. +death.sedna.microwave=%1$s was microwaved. +death.sedna.microwave.attacker=%1$s was microwaved by %2$s. +death.sedna.subatomic=%1$s was atomized. +death.sedna.subatomic.attacker=%1$s was atomized by %2$s. +death.sedna.other=%1$s was killed. +death.sedna.other.attacker=%1$s was killed by %2$s. +death.sedna.physical=%1$s was shot. +death.sedna.physical.attacker=%1$s was shot by %2$s. + desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. @@ -840,6 +987,16 @@ desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core +desc.gui.rttyLogic.cond0=Signal §6LESS THAN§r Constant +desc.gui.rttyLogic.cond1=Signal §6LESS THAN OR EQUAL TO§r Constant +desc.gui.rttyLogic.cond2=Signal §6GREATER THAN OR EQUAL TO§r Constant +desc.gui.rttyLogic.cond3=Signal §6GREATER THAN§r Constant +desc.gui.rttyLogic.cond4=Signal §6EQUAL TO§r Constant +desc.gui.rttyLogic.cond5=Signal §6NOT EQUAL TO§r Constant +desc.gui.rttyLogic.cond6=Signal §6MATCHES§r String +desc.gui.rttyLogic.cond7=Signal §6DOES NOT MATCH§r String +desc.gui.rttyLogic.cond8=Signal §6CONTAINS§r String +desc.gui.rttyLogic.cond9=Signal §6DOES NOT CONTAIN§r String desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay desc.gui.rtg.heat=§eCurrent heat level: %s @@ -850,16 +1007,11 @@ desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Tem desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network desc.gui.turbinegas.fuels=§6Accepted fuels:§r desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r -desc.gui.upgrade=§lAcceptable Upgrades:§r -desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 -desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 -desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 -desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 -desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! + desc.item.ammo.con_accuracy2=- Highly decreased accuracy desc.item.ammo.con_damage=- Highly decreased damage desc.item.ammo.con_heavy_wear=- Highly increased wear @@ -890,6 +1042,7 @@ desc.item.ammo.neu_fun=* Fun for the whole family! desc.item.ammo.neu_heavy_metal=* Heavy Metal desc.item.ammo.neu_homing=* Homing desc.item.ammo.neu_jolt=* Jolt +desc.item.ammo.neu_leadburster=* Attaches to surfaces and sprays bullets desc.item.ammo.neu_less_bouncy=* Less bouncy desc.item.ammo.neu_maskman_flechette=* Fires a tracer which summons a storm of DU-flechettes desc.item.ammo.neu_maskman_meteorite=* Fires a high-damage round that summons a small meteorite @@ -967,7 +1120,11 @@ desc.item.kitArmor=Armor will be displaced by new set. desc.item.kitHaz=Armor will be displaced by hazmat suit. desc.item.kitPack=What a bargain! desc.item.kitPool=Please empty inventory before opening! -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pipette.corrosive=Can handle corrosive liquids. +desc.item.pipette.laboratory=Now with 50x more precision! +desc.item.pipette.noCorrosive=§eCannot handle corrosive liquids. +desc.item.pipette.noEmpty=§ePipette not empty! desc.item.rtgDecay=Decays to: %s desc.item.rtgHeat=Power Level: %s desc.item.storage.capacity=Capacity %s%%s @@ -1003,9 +1160,11 @@ entity.entity_glyphid_blaster.name=Glyphid Blaster entity.entity_glyphid_bombardier.name=Glyphid Bombardier entity.entity_glyphid_brawler.name=Glyphid Brawler entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_digger.name=Glyphid Digger entity.entity_glyphid_nuclear.name=Big Man Johnson entity.entity_glyphid_scout.name=Glyphid Scout entity.entity_ntm_fbi.name=FBI Agent +entity.entity_ntm_fbi_drone.name=FBI Drone entity.entity_ntm_radiation_blaze.name=Meltdown Elemental entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship entity.entity_mob_hunter_chopper.name=Hunter Chopper @@ -1015,6 +1174,9 @@ entity.entity_mob_nuclear_creeper.name=Nuclear Creeper entity.entity_mob_phosgene_creeper.name=Phosgene Creeper entity.entity_mob_tainted_creeper.name=Tainted Creeper entity.entity_mob_volatile_creeper.name=Volatile Creeper +entity.entity_parasite_maggot.name=Parasitic Maggot +entity.entity_pigeon.name=Pigeon +entity.entity_plastic_bag.name=Plastic Bag entity.entity_taint_crab.name=Taint Crab entity.entity_tesla_crab.name=Tesla Crab entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime @@ -1023,12 +1185,19 @@ entity.hbm.entity_bullet.name=Bullet entity.hbm.entity_rocket.name=Rocket entity.hbm.entity_schrabnel.name=Schrabnel +excavator.crusher=Toggle Crusher +excavator.drill=Toggle Drill +excavator.silktouch=Toggle Silk Touch +excavator.veinminer=Toggle Vein Miner +excavator.walling=Toggle Walling + flare.ignition=Ignition flare.valve=Flow Valve fluid.acid_fluid=Acid fluid.corium_fluid=Corium fluid.mud_fluid=Poisonous Mud +fluid.rad_lava_fluid=Volcanic Lava fluid.schrabidic_fluid=Schrabidic Acid fluid.toxic_fluid=Stereotypical Green Ooze fluid.volcanic_lava_fluid=Volcanic Lava @@ -1054,6 +1223,7 @@ gun.make.CERIX=Cerix Magnus gun.make.COLT=Colt's Manufacturing Company gun.make.COMBINE=The Universal Union gun.make.CUBE=Cube 2: Sauerbraten +gun.make.DRG=Deep Rock Galactic gun.make.ENZINGER=Enzinger Union gun.make.EQUESTRIA=Equestria Missile Systems gun.make.FLIMFLAM=FlimFlam Industries @@ -1072,7 +1242,8 @@ gun.make.MANN=Open Mann Co. gun.make.MAXIM=Hiram Maxim gun.make.METRO=Metro Gunsmiths gun.make.MWT=MWT Prototype Labs -gun.make.NAZI=Erfurter Maschinenfabrik Geipel +gun.make.NAWS=Kayarm Industries +gun.make.ERFURT=Erfurter Maschinenfabrik Geipel gun.make.NONE=- gun.make.RAYTHEON=Raytheon Missile Systems gun.make.REMINGTON=Remington Arms @@ -1096,6 +1267,7 @@ gun.name.benelli=Benelli M4 Super 90 gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) gun.name.bio=RI No. 2 Mark 1 gun.name.bolter=Manticora Pattern Boltgun +gun.name.congoLake=Congo Lake Pump-Action Grenade Launcher gun.name.cPython=Colt Python gun.name.cz53=CZ53 Personal Minigun gun.name.cz57=CZ57 Avenger Minigun @@ -1185,6 +1357,7 @@ hadron.error_diode_collision=Error 0x08 [DC] hadron.error_branching_turn=Error 0x09 [BT] hadron.hopper0=§eNormal Mode:$All items will be used. hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper2=§eSingle Mode:$Only allows one item per slot. hadron.idle=Idle hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. @@ -1220,11 +1393,12 @@ hbm.key.craneMoveLeft=Move Crane Left hbm.key.craneMoveRight=Move Crane Right hbm.key.craneMoveUp=Move Crane Forward hbm.key.dash=Dash (Unbind from Crouch in config) -hbm.key.toggleBack=Toggle Backpack +hbm.key.toggleBack=Toggle Jetpack hbm.key.toggleHUD=Toggle HUD hbm.key.reload=Reload +hbm.key.copyToolAlt=Copy Tool: Switch Paste +hbm.key.copyToolCtrl=Copy Tool: Paste to Pipes -hbmfluid.acid=Hydrogen Peroxide hbmfluid.amat=Antimatter hbmfluid.aromatics=Aromatic Hydrocarbons hbmfluid.aschrab=Antischrabidium @@ -1250,6 +1424,7 @@ hbmfluid.colloid=Colloid hbmfluid.coolant=Coolant hbmfluid.coolant_hot=Hot Coolant hbmfluid.crackoil=Cracked Oil +hbmfluid.crackoil_ds=Desulfurized Cracked Oil hbmfluid.cryogel=Cryogel hbmfluid.death=Osmiridic Solution hbmfluid.deuterium=Deuterium @@ -1263,6 +1438,7 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Ender Juice hbmfluid.fishoil=Fish Oil hbmfluid.fracksol=Fracking Solution +hbmfluid.fullerene=Fullerene Solution hbmfluid.gas=Natural Gas hbmfluid.gas_coker=Coker Gas hbmfluid.gasoline=Gasoline @@ -1272,17 +1448,24 @@ hbmfluid.heatingoil_vacuum=Heavy Heating Oil hbmfluid.heavyoil=Heavy Oil hbmfluid.heavyoil_vacuum=Vacuum Heavy Oil hbmfluid.heavywater=Heavy Water +hbmfluid.heavywater_hot=Hot Heavy Water hbmfluid.helium3=Helium-3 +hbmfluid.helium4=Helium-4 hbmfluid.hotcrackoil=Hot Cracked Oil +hbmfluid.hotcrackoil_ds=Desulfurized Hot Cracked Oil hbmfluid.hotoil=Hot Crude Oil +hbmfluid.hotoil_ds=Desulfurized Hot Crude Oil hbmfluid.hotsteam=Dense Steam hbmfluid.hydrogen=Liquid Hydrogen hbmfluid.iongel=Ionic Gel hbmfluid.kerosene=Kerosene hbmfluid.kerosene_reform=Jet Fuel hbmfluid.lava=Lava +hbmfluid.lead=Liquid Lead +hbmfluid.lead_hot=Hot Liquid Lead hbmfluid.lightoil=Light Oil hbmfluid.lightoil_crack=Cracked Light Oil +hbmfluid.lightoil_ds=Desulfurized Light Oil hbmfluid.lightoil_vacuum=Vacuum Light Oil hbmfluid.lpg=LPG hbmfluid.lubricant=Engine Lubricant @@ -1293,25 +1476,30 @@ hbmfluid.mustardgas=Mustard Gas hbmfluid.naphtha=Naphtha hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha +hbmfluid.naphtha_ds=Desulfurized Naphtha hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=None hbmfluid.oil=Crude Oil hbmfluid.oil_coker=Coker Oil +hbmfluid.oil_ds=Desulfurized Crude Oil hbmfluid.oxygen=Liquid Oxygen hbmfluid.oxyhydrogen=Oxyhydrogen hbmfluid.pain=Pandemonium(III)tantalite Solution +hbmfluid.peroxide=Hydrogen Peroxide hbmfluid.petroil=Petroil hbmfluid.petroil_leaded=Leaded Petroil hbmfluid.petroleum=Petroleum Gas +hbmfluid.pheromone=Booster Pheromone +hbmfluid.pheromone_m=Modified Booster Pheromone hbmfluid.phosgene=Phosgene hbmfluid.plasma_bf=Balefire Plasma hbmfluid.plasma_dh3=Deuterium-Helium-3 Plasma hbmfluid.plasma_dt=Deuterium-Tritium Plasma hbmfluid.plasma_hd=Hydrogen-Deuterium Plasma hbmfluid.plasma_ht=Hydrogen-Tritium Plasma -hbmfluid.plasma_xm=Xenon-Mercury Plasma +hbmfluid.plasma_xm=Helium-4-Oxygen Plasma hbmfluid.potassium_chloride=Potassiumchloride Solution hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent @@ -1323,19 +1511,30 @@ hbmfluid.salient=Salient Green hbmfluid.sas3=Schrabidium Trisulfide hbmfluid.schrabidic=Schrabidic Acid hbmfluid.seedslurry=Seeding Slurry +hbmfluid.slop=Ore Slop hbmfluid.smear=Industrial Oil +hbmfluid.smoke=Smoke +hbmfluid.smoke_leaded=Leaded Smoke +hbmfluid.smoke_poison=Poison Smoke +hbmfluid.sodium=Liquid Sodium +hbmfluid.sodium_hot=Hot Liquid Sodium hbmfluid.solvent=Solvent hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.steam=Steam +hbmfluid.stellar_flux=Stellar Flux hbmfluid.sulfuric_acid=Sulfuric Acid hbmfluid.sunfloweroil=Sunflower Seed Oil hbmfluid.superhotsteam=Super Dense Steam hbmfluid.syngas=Syngas +hbmfluid.thorium_salt=Liquid Thorium Salt +hbmfluid.thorium_salt_depleted=Depleted Liquid Thorium Salt +hbmfluid.thorium_salt_hot=Hot Liquid Thorium Salt hbmfluid.tritium=Tritium hbmfluid.uf6=Uranium Hexafluoride hbmfluid.ultrahotsteam=Ultra Dense Steam hbmfluid.unsaturateds=Unsaturated Hydrocarbons +hbmfluid.vitriol=Vitriol hbmfluid.wastefluid=Liquid Nuclear Waste hbmfluid.wastegas=Gaseous Nuclear Waste hbmfluid.water=Water @@ -1344,6 +1543,7 @@ hbmfluid.woodoil=Wood Oil hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice hbmfluid.xylene=BTX + hbmpseudofluid.none=Empty hbmpseudofluid.heuf6=Highly Enriched UF6 hbmpseudofluid.meuf6=Medium Enriched UF6 @@ -1360,15 +1560,21 @@ hbmmat.americiumrg=Reactor-Grade Americium hbmmat.americium241=Americium-241 hbmmat.americium242=Americium-242 hbmmat.arsenic=Arsenic +hbmmat.arsenicbronze=Arsenic Bronze hbmmat.asbestos=Asbestos hbmmat.bakelite=Bakelite hbmmat.beryllium=Beryllium hbmmat.bismuth=Bismuth +hbmmat.bismuthbronze=Bismuth Bronze +hbmmat.bone=Ivory hbmmat.borax=Borax hbmmat.boron=Boron +hbmmat.bscco=BSCCO hbmmat.cadmium=Cadmium +hbmmat.calcium=Calcium hbmmat.carbon=Carbon hbmmat.cdalloy=Cadmium Steel +hbmmat.chlorocalcite=Chlorocalcite hbmmat.cinnabar=Cinnabar hbmmat.cmbsteel=Combine Steel hbmmat.coal=Coal @@ -1378,8 +1584,10 @@ hbmmat.cobalt60=Cobalt-60 hbmmat.coltan=Coltan hbmmat.copper=Copper hbmmat.desh=Desh +hbmmat.diamond=Diamond hbmmat.dineutronium=Dineutronium hbmmat.durasteel=High-Speed Steel +hbmmat.emerald=Emerald hbmmat.euphemium=Euphemium hbmmat.ferrouranium=Ferrouranium hbmmat.fiberglass=Fiberglass @@ -1390,8 +1598,10 @@ hbmmat.gold=Gold hbmmat.gold198=Gold-198 hbmmat.graphene=Graphene hbmmat.graphite=Graphite +hbmmat.gunmetal=Gunmetal hbmmat.hematite=Hematite hbmmat.iron=Iron +hbmmat.lanthanum=Lanthanium hbmmat.lapis=Lapis Lazuli hbmmat.lead=Lead hbmmat.lead209=Lead-209 @@ -1402,6 +1612,8 @@ hbmmat.magnetizedtungsten=Magnetized Tungsten hbmmat.malachite=Malachite hbmmat.meteoriciron=Meteoric Iron hbmmat.mingrade=Minecraft Grade Copper +hbmmat.molysite=Molysite +hbmmat.neodymium=Neodymium hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niobium hbmmat.obsidian=Obsidian @@ -1415,8 +1627,11 @@ hbmmat.plutonium240=Plutonium-240 hbmmat.plutonium241=Plutonium-241 hbmmat.plutoniumrg=Reactor-Grade Plutonium hbmmat.polonium210=Polonium-210 +hbmmat.polycarbonate=Hard Plastic hbmmat.polymer=Polymer +hbmmat.pvc=PVC hbmmat.radium226=Radium-226 +hbmmat.rareearth=Rare Earth hbmmat.redphosphorus=Red Phosphorus hbmmat.redstone=Redstone hbmmat.rubber=Rubber @@ -1425,11 +1640,15 @@ hbmmat.saturnite=Saturnite hbmmat.schrabidate=Ferric Schrabidate hbmmat.schrabidium=Schrabidium hbmmat.schraranium=Schraranium +hbmmat.silicon=Silicon hbmmat.slag=Slag +hbmmat.sodalite=Sodalite +hbmmat.sodium=Sodium hbmmat.solinium=Solinium hbmmat.starmetal=Starmetal hbmmat.steel=Steel hbmmat.stone=Stone +hbmmat.strontium=Strontium hbmmat.sulfur=Sulfur hbmmat.tantalum=Tantalum hbmmat.tcalloy=Technetium Steel @@ -1442,9 +1661,12 @@ hbmmat.uranium233=Uranium-233 hbmmat.uranium235=Uranium-235 hbmmat.uranium238=Uranium-238 hbmmat.watzmud=Poisonous Mud +hbmmat.weaponsteel=Weapon Steel hbmmat.whitephosphorus=White Phosphorus +hbmmat.wood=Wood hbmmat.workersalloy=Desh hbmmat.wroughtiron=Wroght Iron +hbmmat.zirconium=Zirconium matshape.block=%s Block matshape.blocks=%s Blocks @@ -1455,6 +1677,20 @@ matshape.nuggets=%s Nuggets matshape.quantum=%s Quantum matshape.quanta=%s Quanta +icffuel.beryllium=Beryllium +icffuel.boron=Boron +icffuel.carbon=Carbon +icffuel.calcium=Calcium +icffuel.chlorine=Chlorine +icffuel.deuterium=Deuterium +icffuel.helium3=Helium-3 +icffuel.helium4=Helium-4 +icffuel.hydrogen=Hydrogen +icffuel.lithium=Lithium +icffuel.oxygen=Oxygen +icffuel.sodium=Sodium +icffuel.tritium=Tritium + info.asbestos=My lungs are burning. info.coaldust=It's hard to breathe here. info.coil=Coil Strength @@ -1596,6 +1832,9 @@ item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell item.ammo_arty_phosphorus.name=16" Phosphorus Shell item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell item.ammo_cell.name=Energy Cell +item.ammo_coilgun.name=Coilgun Tungsten Ball +item.ammo_coilgun_du.name=Coilgun Ferrouranium Ball +item.ammo_coilgun_rubber.name=Coilgun Rubber Ball item.ammo_container.name=Ammo Container item.ammo_dart.name=Plastic Dart (Withering) item.ammo_dart_nerf.name=NERF Dart @@ -1618,6 +1857,7 @@ item.ammo_grenade_finned.name=40mm Grenade (Finned) item.ammo_grenade_he.name=40mm Grenade (HE) item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) item.ammo_grenade_kampf.name=40mm Rocket +item.ammo_grenade_leadburster.name=40mm Leadburster item.ammo_grenade_nuclear.name=40mm Grenade (ПрОвет) item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) @@ -1664,6 +1904,94 @@ item.ammo_shell_apfsds_du.name=240mm APFSDS-DU item.ammo_shell_apfsds_t.name=240mm APFSDS-T item.ammo_shell_explosive.name=240mm HE Shell item.ammo_shell_w9.name=240mm W9 Nuclear Shell +item.ammo_secret.bmg50_equestrian.name=.50 BMG Demolisher +item.ammo_secret.folly_nuke.name=Silver Bullet, Nuclear +item.ammo_secret.folly_sm.name=Silver Bullet +item.ammo_secret.g12_equestrian.name=12 Gauge Railway Spike Shot +item.ammo_secret.m44_equestrian.name=.44 Magnum Head-Exploder +item.ammo_standard.b75.name=.75 Bolt +item.ammo_standard.b75_exp.name=.75 Bolt (Explosive) +item.ammo_standard.b75_inc.name=.75 Bolt (Incendiary) +item.ammo_standard.bmg50_ap.name=.50 BMG Round (Armor Piercing) +item.ammo_standard.bmg50_du.name=.50 BMG Round (Depleted Uranium) +item.ammo_standard.bmg50_fmj.name=.50 BMG Round (Full Metal Jacket) +item.ammo_standard.bmg50_jhp.name=.50 BMG Round (Jacketed Hollow Point) +item.ammo_standard.bmg50_sp.name=.50 BMG Round (Soft Point) +item.ammo_standard.capacitor.name=Capacitor +item.ammo_standard.capacitor_ir.name=Capacitor (Low Wavelength) +item.ammo_standard.capacitor_overcharge.name=Capacitor (Overcharge) +item.ammo_standard.coil_ferrouranium.name=Coilgun Ferrouranium Ball +item.ammo_standard.coil_tungsten.name=Coilgun Tungsten Ball +item.ammo_standard.flame_balefire.name=Flamer Fuel, Balefire +item.ammo_standard.flame_diesel.name=Flamer Fuel, Diesel +item.ammo_standard.flame_gas.name=Flamer Fuel, Gas +item.ammo_standard.flame_napalm.name=Flamer Fuel, Napalm +item.ammo_standard.g10.name=10 Gauge Buckshot +item.ammo_standard.g10_du.name=10 Gauge Uranium Buckshot +item.ammo_standard.g10_shrapnel.name=10 Gauge Shrapnel Buckshot +item.ammo_standard.g10_slug.name=10 Gauge Slug +item.ammo_standard.g12.name=12 Gauge Buckshot +item.ammo_standard.g12_anthrax.name=12 Gauge Anthrax Shell +item.ammo_standard.g12_bp.name=12 Gauge Black Powder Buckshot +item.ammo_standard.g12_bp_magnum.name=12 Gauge Black Powder Magnum Shell +item.ammo_standard.g12_bp_slug.name=12 Gauge Black Powder Slug +item.ammo_standard.g12_explosive.name=12 Gauge Explosive Shell +item.ammo_standard.g12_flechette.name=12 Gauge Flechette Shell +item.ammo_standard.g12_magnum.name=12 Gauge Magnum Shell +item.ammo_standard.g12_phosphorus.name=12 Gauge Phosphorus Shell +item.ammo_standard.g12_slug.name=12 Gauge Slug +item.ammo_standard.g26_flare.name=26mm Signal Flare +item.ammo_standard.g26_flare_supply.name=26mm Signal Flare (Supply Airdrop) +item.ammo_standard.g26_flare_weapon.name=26mm Signal Flare (Weapon Airdrop) +item.ammo_standard.g40_demo.name=40mm Grenade, Demolition +item.ammo_standard.g40_he.name=40mm Grenade, High-Explosive +item.ammo_standard.g40_heat.name=40mm Grenade, Shaped Charge +item.ammo_standard.g40_inc.name=40mm Grenade, Incendiary +item.ammo_standard.g40_phosphorus.name=40mm Grenade, White Phosphorus +item.ammo_standard.m357_ap.name=.357 Magnum Round (Armor Piercing) +item.ammo_standard.m357_bp.name=.357 Magnum Round (Black Powder) +item.ammo_standard.m357_express.name=.357 Magnum Round (FMJ Express) +item.ammo_standard.m357_fmj.name=.357 Magnum Round (Full Metal Jacket) +item.ammo_standard.m357_jhp.name=.357 Magnum Round (Jacketed Hollow Point) +item.ammo_standard.m357_sp.name=.357 Magnum Round (Soft Point) +item.ammo_standard.m44_ap.name=.44 Magnum Round (Armor Piercing) +item.ammo_standard.m44_bp.name=.44 Magnum Round (Black Powder) +item.ammo_standard.m44_express.name=.44 Magnum Round (FMJ Express) +item.ammo_standard.m44_fmj.name=.44 Magnum Round (Full Metal Jacket) +item.ammo_standard.m44_jhp.name=.44 Magnum Round (Jacketed Hollow Point) +item.ammo_standard.m44_sp.name=.44 Magnum Round (Soft Point) +item.ammo_standard.nuke_demo.name=Mini Nuke, Demolition +item.ammo_standard.nuke_high.name=Mini Nuke, High Yield +item.ammo_standard.nuke_hive.name=Rocket Hive +item.ammo_standard.nuke_standard.name=Mini Nuke +item.ammo_standard.nuke_tots.name=Mini Nuke, Tiny Tots +item.ammo_standard.p22_ap.name=.22 LR Round (Armor Piercing) +item.ammo_standard.p22_fmj.name=.22 LR Round (Full Metal Jacket) +item.ammo_standard.p22_jhp.name=.22 LR Round (Jacketed Hollow Point) +item.ammo_standard.p22_sp.name=.22 LR Round (Soft Point) +item.ammo_standard.p9_ap.name=9mm Round (Armor Piercing) +item.ammo_standard.p9_fmj.name=9mm Round (Full Metal Jacket) +item.ammo_standard.p9_jhp.name=9mm Round (Jacketed Hollow Point) +item.ammo_standard.p9_sp.name=9mm Round (Soft Point) +item.ammo_standard.r556_ap.name=5.56mm Round (Armor Piercing) +item.ammo_standard.r556_fmj.name=5.56mm Round (Full Metal Jacket) +item.ammo_standard.r556_jhp.name=5.56mm Round (Jacketed Hollow Point) +item.ammo_standard.r556_sp.name=5.56mm Round (Soft Point) +item.ammo_standard.r762_ap.name=7.62mm Round (Armor Piercing) +item.ammo_standard.r762_du.name=7.62mm Round (Depleted Uranium) +item.ammo_standard.r762_fmj.name=7.62mm Round (Full Metal Jacket) +item.ammo_standard.r762_jhp.name=7.62mm Round (Jacketed Hollow Point) +item.ammo_standard.r762_sp.name=7.62mm Round (Soft Point) +item.ammo_standard.rocket_demo.name=Rocket, Demolition +item.ammo_standard.rocket_he.name=Rocket, High-Explosive +item.ammo_standard.rocket_heat.name=Rocket, Shaped Charge +item.ammo_standard.rocket_inc.name=Rocket, Incendiary +item.ammo_standard.rocket_phosphorus.name=Rocket, White Phosphorus +item.ammo_standard.stone.name=Ball and Powder +item.ammo_standard.stone_ap.name=Flint and Powder +item.ammo_standard.stone_iron.name=Iron Ball and Powder +item.ammo_standard.stone_shot.name=Shot and Powder +item.ammo_standard.tau_uranium.name=Depleted Uranium-235 Box item.ammo_stinger_rocket.name=Stinger Rocket item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) @@ -1697,15 +2025,26 @@ item.ams_focus_limiter.desc=Maximum performance for restriction field:$Standard item.ams_lens.name=Stabilizer Lens item.ams_muzzle.name=Ray-Emission Muzzle item.ams_muzzle.desc=...it emits an energy-beam thingy. +item.analysis_tool.name=Analysis Tool item.analyzer.name=Analyzer item.anchor_remote.name=Recall Device -item.antiknock.name=Tetraethyllead Antiknock Agent item.apple_euphemium.name=Euphemium Apple item.apple_lead.name=Lead Apple item.apple_schrabidium.name=Schrabidium Apple item.arc_electrode.name=Graphite Electrode +item.arc_electrode.desh.name=Desh Electrode +item.arc_electrode.graphite.name=Graphite Electrode +item.arc_electrode.lanthanium.name=Lanthanium Electrode +item.arc_electrode.saturnite.name=Saturnite Electrode item.arc_electrode_burnt.name=Molten Electrode +item.arc_electrode_burnt.desh.name=Molten Desh Electrode +item.arc_electrode_burnt.graphite.name=Molten Graphite Electrode +item.arc_electrode_burnt.lanthanium.name=Molten Lanthanium Electrode +item.arc_electrode_burnt.saturnite.name=Molten Saturnite Electrode item.arc_electrode_desh.name=Desh Electrode +item.armor_battery.name=Power Armor Battery Pack +item.armor_battery_mk2.name=Power Armor Battery Pack Mk2 +item.armor_battery_mk3.name=Power Armor Battery Pack Mk3 item.armor_polish.name=ShiningArmor™ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth @@ -1744,6 +2083,7 @@ item.balefire_and_steel.name=Balefire and Steel item.balefire_scrambled.name=Scrambled Balefire Egg item.ball_dynamite.name=Dynamite item.ball_fireclay.name=Fireclay +item.ball_resin.name=Latex item.ball_tatb.name=TATB item.ball_tnt.name=TNT item.ballistic_gauntlet.name=Ballistic Gauntlet @@ -1791,6 +2131,47 @@ item.battery_su.name=SU-Battery item.battery_su_l.name=Large SU-Battery item.battery_trixite.name=Off-Brand Spark Battery item.bdcl.name=BDCL +item.bedrock_ore.grade.base.name=%s Bedrock Ore +item.bedrock_ore.grade.base_roasted.name=Roasted %s Bedrock Ore +item.bedrock_ore.grade.base_washed.name=Washed %s Bedrock Ore +item.bedrock_ore.grade.primary.name=%s Bedrock Ore, Primary Fraction +item.bedrock_ore.grade.primary_roasted.name=%s Bedrock Ore, Roasted Primary Fraction +item.bedrock_ore.grade.primary_sulfuric.name=%s Bedrock Ore, Sulfuric Primary Fraction +item.bedrock_ore.grade.primary_nosulfuric.name=%s Bedrock Ore, Separated Sulfuric Primary Fraction +item.bedrock_ore.grade.primary_solvent.name=%s Bedrock Ore, Dissolved Primary Fraction +item.bedrock_ore.grade.primary_nosolvent.name=%s Bedrock Ore, Separated Dissolved Primary Fraction +item.bedrock_ore.grade.primary_rad.name=%s Bedrock Ore, Cleaned Primary Fraction +item.bedrock_ore.grade.primary_norad.name=%s Bedrock Ore, Separated Cleaned Primary Fraction +item.bedrock_ore.grade.primary_first.name=%s Bedrock Ore, Primary Fraction, Higher Weight +item.bedrock_ore.grade.primary_second.name=%s Bedrock Ore, Primary Fraction, Lower Weight +item.bedrock_ore.grade.crumbs.name=%s Bedrock Ore Crumbs +item.bedrock_ore.grade.sulfuric_byproduct.name=%s Bedrock Ore, Sulfuric Byproduct +item.bedrock_ore.grade.sulfuric_roasted.name=%s Bedrock Ore, Roasted Sulfuric Byproduct +item.bedrock_ore.grade.sulfuric_arc.name=%s Bedrock Ore, Seared Sulfuric Byproduct +item.bedrock_ore.grade.sulfuric_washed.name=%s Bedrock Ore, Washed Sulfuric Byproduct +item.bedrock_ore.grade.solvent_byproduct.name=%s Bedrock Ore, Dissolved Byproduct +item.bedrock_ore.grade.solvent_roasted.name=%s Bedrock Ore, Roasted Dissolved Byproduct +item.bedrock_ore.grade.solvent_arc.name=%s Bedrock Ore, Seared Dissolved Byproduct +item.bedrock_ore.grade.solvent_washed.name=%s Bedrock Ore, Washed Dissolved Byproduct +item.bedrock_ore.grade.rad_byproduct.name=%s Bedrock Ore, Cleaned Byproduct +item.bedrock_ore.grade.rad_roasted.name=%s Bedrock Ore, Roasted Cleaned Byproduct +item.bedrock_ore.grade.rad_arc.name=%s Bedrock Ore, Seared Cleaned Byproduct +item.bedrock_ore.grade.rad_washed.name=%s Bedrock Ore, Washed Cleaned Byproduct +item.bedrock_ore.trait.arc=§6Arc Smelted +item.bedrock_ore.trait.centrifuged=§9Centrifuged +item.bedrock_ore.trait.rad=§aTreated with High-Performance Solvent +item.bedrock_ore.trait.roasted=§eCombination Oven Roasted +item.bedrock_ore.trait.solvent=§fTreated with Solvent +item.bedrock_ore.trait.sulfuric=§6Treated with Sulfuric Acid +item.bedrock_ore.trait.washed=§bWashed +item.bedrock_ore.type.actinide.name=Actinide +item.bedrock_ore.type.crystal.name=Crystalline +item.bedrock_ore.type.heavy.name=Heavy Metal +item.bedrock_ore.type.light.name=Light Metal +item.bedrock_ore.type.nonmetal.name=Non-Metal +item.bedrock_ore.type.rare.name=Rare Earth +item.bedrock_ore_base.name=Raw Bedrock Ore +item.bedrock_ore_fragment.name=%s Bedrock Ore Fragment item.beta.name=Beta Features item.big_sword.name=Great Sword item.billet_actinium.name=Actinium-227 Billet @@ -1833,6 +2214,7 @@ item.billet_ra226.name=Radium-226 Billet item.billet_ra226be.name=Ra226Be Billet item.billet_schrabidium.name=Schrabidium Billet item.billet_schrabidium_fuel.name=Schrabidium Fuel Billet +item.billet_silicon.name=Silicon Wafer item.billet_solinium.name=Solinium Billet item.billet_sr90.name=Strontium-90 Billet item.billet_technetium.name=Technetium-99 Billet @@ -1854,6 +2236,7 @@ item.biomass_compressed.name=Compressed Biomass item.bismuth_boots.name=Bismuth Sandals item.bismuth_helmet.name=Bismuth Headdress item.bismuth_legs.name=Bismuth Kneeguards +item.bismuth_axe.name=Bismuth Axe item.bismuth_pickaxe.name=Bismuth Pickaxe item.bismuth_plate.name=Bismuth Shoulderpads, Necklace & Loincloth item.bismuth_tool.name=Magnetic Extractor @@ -1873,19 +2256,22 @@ item.blades_steel.name=Steel Shredder Blades item.blades_titanium.name=Titanium Shredder Blades item.blowtorch.name=Blowtorch item.board_copper.name=Copper Panel +item.boat_rubber.name=Rubber Boat item.bobmazon_hidden.name=Hidden Catalog item.bobmazon_machines.name=Bobmazon: Blocks and Machines item.bobmazon_materials.name=Bobmazon: Materials item.bobmazon_tools.name=Bobmazon: Tools item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives +item.boltntm.name=%s Bolt item.bolt_compound.name=Reinforced Turbine Shaft -item.bolt_dura_steel.name=High-Speed Steel Bolt -item.bolt_tungsten.name=Tungsten Bolt +item.bolt_spike.name=Railroad Spike +item.bolt_spike.desc=Radiates a threatening aura, somehow item.boltgun.name=Pneumatic Rivet Gun item.bomb_caller.name=Airstrike Designator item.bomb_waffle.name=Waffle of Mass Destruction item.book_guide.name=Guide Book item.book_of_.name=The Book of Boxcars +item.book_lemegeton.name=Lemegeton item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=Empty Bottle item.bottle2_fritz.name=Fritz Cola @@ -1901,6 +2287,7 @@ item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener item.bottle_quantum.name=Bottle of Nuka Cola Quantum item.bottle_rad.name=Bottle of S~Cola RAD item.bottle_sparkle.name=Bottle of S~Cola +item.bottled_cloud.name=Cloud in a Bottle item.boy_bullet.name=U235 Projectile item.boy_igniter.name=Bomb Igniter item.boy_kit.name=Little Boy Kit @@ -1993,7 +2380,7 @@ item.canned_pizza.desc=A crime against humanity. item.canned_recursion.name=Canned Recursion item.canned_recursion.desc=Canned Recursion item.canned_spam.name=Canned Spam -item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word "Spam" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. item.canned_stew.name=Canned "Mushroom Stew" item.canned_stew.desc=... item.canned_tomato.name=Canned Tomato Soup @@ -2026,14 +2413,25 @@ item.cape_nostalgia.name=DrNostalgia's Cape item.cape_radiation.name=Cape (Radiation) item.cape_schrabidium.name=Cape (Schrabidic) item.cape_vertice.name=Lord Vertice's Cape +item.card_aos.name=Ace of Spades +item.card_qos.name=Queen of Spades item.cart.crate.name=Crate Cart item.cart.destroyer.name=Scrap Destroying Cart item.cart.empty.name=Minecart -item.casing_357.name=.357 Magnum Casing (x24) -item.casing_44.name=.44 Magnum Casing (x24) -item.casing_50.name=Large Caliber Casing (x12) -item.casing_9.name=Small Caliber Casing (x32) -item.casing_buckshot.name=Buckshot Casing (x12) +item.cart.powder.name=Powder Cart +item.cart.semtex.name=Semtex Cart +item.casing_357.name=.357 Magnum Casings +item.casing_44.name=.44 Magnum Casings +item.casing_50.name=Large Caliber Casings +item.casing_9.name=Small Caliber Casings +item.casing_buckshot.name=Buckshot Casing +item.casing.small.name=Small Gunmetal Casing +item.casing.small_steel.name=Small Weapon Steel Casing +item.casing.large.name=Large Gunmetal Casing +item.casing.large_steel.name=Large Weapon Steel Casing +item.casing.shotshell.name=Black Powder Shotshell Casing +item.casing.buckshot.name=Plastic Shotshell Casing +item.casing.buckshot_advanced.name=Advanced Shotshell Casing item.catalyst_clay.name=Clay Catalyst item.catalytic_converter.name=Catalytic Converter item.cbt_device.name=CBT Device @@ -2073,6 +2471,7 @@ item.chemistry_set_boron.name=Laboratory Glassware (Boron Glass) item.chemistry_template.name=Chemistry Template: item.chernobylsign.name=Chernobyl Warning Sign Battle Axe item.chlorine_pinwheel.name=Chlorine Pinwheel +item.chlorophyte_axe.name=Chlorophyte Axe item.chlorophyte_pickaxe.name=Chlorophyte Pickaxe item.chocolate.name=Ithis-Brand Radium Chocolate item.chocolate.desc=Radium Chocolate? Pretty sure this is just meth. @@ -2084,8 +2483,28 @@ item.chopper_head.name=Hunter Chopper Cockpit item.chopper_tail.name=Hunter Chopper Tail item.chopper_torso.name=Hunter Chopper Body item.chopper_wing.name=Hunter Chopper Wing +item.chunk_ore.rare.name=Rare Earth Ore Chunk item.cigarette.name=FFI-Brand Cigarette item.cinnebar.name=Cinnabar +item.circuit.advanced.name=Military Grade Circuit Board +item.circuit.analog.name=Analog Circuit Board +item.circuit.atomic_clock.name=Atomic Clock +item.circuit.basic.name=Integrated Circuit Board +item.circuit.bismoid.name=Versatile Circuit Board +item.circuit.capacitor.name=Capacitor +item.circuit.capacitor_board.name=Capacitor Board +item.circuit.capacitor_tantalium.name=Tantalium Capacitor +item.circuit.chip.name=Microchip +item.circuit.chip_bismoid.name=Versatile Integrated Circuit +item.circuit.chip_quantum.name=Solid State Quantum Processor +item.circuit.controller.name=Control Unit +item.circuit.controller_advanced.name=Advanced Control Unit +item.circuit.controller_chassis.name=Control Unit Casing +item.circuit.controller_quantum.name=Quantum Computer +item.circuit.pcb.name=Printed Circuit Board +item.circuit.quantum.name=Quantum Processing Unit +item.circuit.silicon.name=Printed Silicon Wafer +item.circuit.vacuum_tube.name=Vacuum Tube item.circuit_aluminium.name=Basic Circuit item.circuit_arsenic.name=Adaptable Circuit item.circuit_arsenic_raw.name=Adaptable Circuit Assembly @@ -2098,10 +2517,12 @@ item.circuit_red_copper.name=Advanced Circuit item.circuit_schrabidium.name=High Performance Circuit item.circuit_star.name=StarControl Circuit Board item.circuit_star.desc=Currently unused, for it lacks an operating system. +item.circuit_star_component.card.name=StarControl Extension Card item.circuit_star_component.chipset.name=StarControl Chipset item.circuit_star_component.cpu.name=StarControl CPU item.circuit_star_component.ram.name=StarControl RAM item.circuit_star_piece.board_blank.name=SC - Printed Circuit Board +item.circuit_star_piece.board_converter.name=SC - Voltage Converter item.circuit_star_piece.board_transistor.name=SC - Transistors item.circuit_star_piece.bridge_bios.name=SC- BIOS Chip item.circuit_star_piece.bridge_bus.name=SC - BUS @@ -2110,6 +2531,8 @@ item.circuit_star_piece.bridge_cmos.name=SC - CMOS RAM item.circuit_star_piece.bridge_io.name=SC - IO Chip item.circuit_star_piece.bridge_north.name=SC - North Bridge item.circuit_star_piece.bridge_south.name=SC - South Bridge +item.circuit_star_piece.card_board.name=SC - Extension Card Board +item.circuit_star_piece.card_processor.name=SC - Extension Card Processor item.circuit_star_piece.cpu_cache.name=SC - CPU Cache item.circuit_star_piece.cpu_clock.name=SC - CPU Clock item.circuit_star_piece.cpu_ext.name=SC - Arsenic Semi Conductor Extension @@ -2136,6 +2559,7 @@ item.cladding_lead.name=Lead Cladding item.cladding_obsidian.name=Obsidian Skin item.cladding_paint.name=Lead Paint item.cladding_rubber.name=Rubber Cladding +item.clay_tablet.name=Clay Tablet item.clip_bf.name=BF-Shell Double Pack item.clip_bolt_action.name=Box of 12x74 Slugs item.clip_cryolator.name=Tank of Cryolator Fuel @@ -2293,7 +2717,7 @@ item.debris_fuel.name=RBMK Fuel Chunk item.debris_graphite.name=Hot Graphite Chunk item.debris_metal.name=Broken Metal Bar item.debris_shrapnel.name=Walkway Shrapnel -item.definitelyfood.name=TotallyNotDirt-Brand MRE +item.definitelyfood.name=MRE item.defuser.name=High-Tech Bomb Defusing Device item.defuser_gold.name=Golden Wire Cutter item.demon_core_closed.name=Closed Demon Core @@ -2319,6 +2743,8 @@ item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor item.dieselsuit_legs.name=Diesel-Powered Leg Servos item.dieselsuit_plate.name=Diesel-Powered Cybernetics item.digamma_diagnostic.name=Digamma Diagnostic +item.disperser_canister.name= Disperser Canister: +item.disperser_canister_empty.name= Disperser Canister item.dns_boots.name=DNT Nano Suit Boots item.dns_legs.name=DNT Nano Suit Leggings item.dns_helmet.name=DNT Nano Suit Helmet @@ -2327,10 +2753,15 @@ item.dnt_boots.name=dienautronium boots item.dnt_legs.name=dineuterium legs item.dnt_helmet.name=dinotroniumu helmet item.dnt_plate.name=dineutrom chestplate +item.dnt_sword.name=dinuatureum sword item.door_bunker.name=Bunker Door item.door_metal.name=Metal Door item.door_office.name=Office Door +item.door_red.name=Red Door item.dosimeter.name=Dosimeter +item.drax.name=Terra Drill +item.drax_mk2.name=Hardened Terra Drill +item.drax_mk3.name=Schrabidic Terra Drill item.drillbit_desh.name=Desh Drillbit item.drillbit_desh_diamond.name=Desh Drillbit (Diamond-Tipped) item.drillbit_ferro.name=Ferrouranium Drillbit @@ -2342,14 +2773,23 @@ item.drillbit_steel_diamond.name=Steel Drillbit (Diamond-Tipped) item.drillbit_tcalloy.name=Technetium Steel Drillbit item.drillbit_tcalloy_diamond.name=Technetium Steel Drillbit (Diamond-Tipped) item.drill_titanium.name=Titanium Drill -item.drax.name=Terra Drill -item.drax_mk2.name=Hardened Terra Drill -item.drax_mk3.name=Schrabidic Terra Drill +item.drone.patrol.name=Transport Drone +item.drone.patrol.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place. +item.drone.patrol_chunkloading.name=Chunkloading Transport Drone +item.drone.patrol_chunkloading.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place.$Loads chunks! +item.drone.patrol_express.name=Express Transport Drone +item.drone.patrol_express.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place. +item.drone.patrol_express_chunkloading.name=Chunkloading Express Transport Drone +item.drone.patrol_express_chunkloading.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place.$Loads chunks! +item.drone.request.name=Logistics Drone +item.drone.request.desc=Used by logistics drone docks to spawn logistics drones$Drones will follow logistics drone waypoints$After completing a request, the drone will return to the dock. +item.drone_linker.name=Transport Drone Linker item.ducttape.name=Duct Tape item.dust.name=Dust item.dust.desc=I hate dust! item.dust.desc.P11=Another one bites the dust! item.dust_tiny.name=Tiny Pile of Dust +item.dwarven_pickaxe.name=Dwarven Pickaxe item.dynosphere_base.name=Blank Dynosphere item.dynosphere_desh.name=Desh Dynosphere item.dynosphere_desh_charged.name=Desh Dynosphere (Charged) @@ -2365,6 +2805,7 @@ item.early_explosive_lenses.desc=Assembly of 8 high-explosive lenses with an alu item.egg_balefire.name=Balefire Egg item.egg_balefire.desc=What kind of bird lays a radioactive egg? item.egg_balefire_shard.name=Balefire Shard +item.egg_glyphid.name=Glyphid Egg item.elec_axe.name=Electric Chainsaw item.elec_pickaxe.name=Impact Drill item.elec_shovel.name=Spiral Drill @@ -2372,6 +2813,10 @@ item.elec_sword.name=Stunstick item.energy_core.name=Makeshift Energy Core item.entanglement_kit.name=Entanglement Kit item.entanglement_kit.desc=Teleporter crafting item.$Enables dimension-shifting via a$beryllium-enhanced resource scanner. +item.envsuit_boots.name=M1TTY Environment Suit Boots +item.envsuit_helmet.name=M1TTY Environment Suit Helmet +item.envsuit_legs.name=M1TTY Environment Suit Leggings +item.envsuit_plate.name=M1TTY Environment Suit Chestplate item.euphemium_boots.name=Euphemium Boots item.euphemium_capacitor.name=Euphemium Capacitor item.euphemium_capacitor.desc=Permits passive dispersion of accumulated positive energy. @@ -2417,8 +2862,8 @@ item.fluid_barrel_infinite.name=Infinite Fluid Barrel item.fluid_duct.name=Fluid Duct: item.fluid_identifier.name=Fluid Identifier item.fluid_identifier.info=Universal fluid identifier for: -item.fluid_identifier.usage0=Right click fluid ducts to designate them for that fluid. -item.fluid_identifier.usage1=Shift right click fluid ducts to designate adjacent ducts +item.fluid_identifier.usage0=Right click fluid ducts to set their fluid type. +item.fluid_identifier.usage1=Shift right click fluid ducts to set adjacent ducts item.fluid_identifier.usage2=up to a maximum range of 64 ducts. item.fluid_identifier_multi.name=Multi Fluid Identifier item.fluid_identifier_multi.info=Universal fluid identifier for: @@ -2445,6 +2890,8 @@ item.fragment_lanthanium.name=Lanthanium Fragment item.fragment_meteorite.name=Meteorite Fragment item.fragment_neodymium.name=Neodymium Fragment item.fragment_niobium.name=Niobium Fragment +item.fuel_additive.antiknock.name=Tetraethyllead Antiknock Agent +item.fuel_additive.deicer.name=Deicer item.fuel_tank_large.name=Large Fuel Tank item.fuel_tank_medium.name=Medium Fuel Tank item.fuel_tank_small.name=Small Fuel Tank @@ -2478,6 +2925,8 @@ item.gear_large.name=Large Gear item.gear_large_steel.name=Large Steel Gear item.geiger_counter.name=Handheld Geiger Counter item.gem_alexandrite.name=Alexandrite +item.gem_rad.name=Radioactive Gem +item.gem_sodalite.name=Sodalite item.gem_tantalium.name=Tantalium Polycrystal item.gem_tantalium.desc='Tantalum' item.gem_tantalium.desc.P11=AKA Tantalum. @@ -2486,12 +2935,15 @@ item.generator_front.name=Generator Front item.generator_steel.name=Generator Body item.glitch.name=Glitch item.glowing_stew.name=Glowing Mushroom Stew +item.glyphid_meat.name=Glyphid Meat +item.glyphid_meat_grilled.name=Grilled Glyphid Meat item.goggles.name=Protection Goggles item.grenade_aschrab.name=Tossable Antischrabidium Cell item.grenade_black_hole.name=Black Hole Grenade item.grenade_breach.name=Breaching Grenade item.grenade_burst.name=Digger Grenade -item.grenade_cloud.name=Jar of Cloud +item.grenate_cats.name=Grenade of Cats +item.grenade_cloud.name=Jar of Corrosive Fumes item.grenade_cluster.name=Cluster Bomb item.grenade_electric.name=Lightning Bomb item.grenade_fire.name=Flame Frag Grenade @@ -2530,11 +2982,18 @@ item.grenade_smart.name=Smart Grenade item.grenade_strong.name=Enhanced Grenade item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade +item.glyphid_gland.name= Gland +item.glyphid_gland_empty.name= Glyphid's Fluid Gland +item.gun_am180.name=Silenced Submachine Gun item.gun_ar15.name=Josh +item.gun_autoshotgun.name=Auto Shotgun +item.gun_autoshotgun_sexy.name=Sexy +item.gun_autoshotgun_shredder.name=Shredder item.gun_avenger.name=CZ57 Avenger Minigun item.gun_b92.name=§9B92 Energy Pistol§r item.gun_b92_ammo.name=§9B92 Energy Cell§r item.gun_b93.name=§cB93 Energy Mod§r +item.gun_benelli.name=Benelli Autoshotgun (Drum Mod) item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell item.gun_bio_revolver.name=Atlas @@ -2547,7 +3006,11 @@ item.gun_bolter_digamma.name=Digamma Gun item.gun_calamity.name=Buzzsaw item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) item.gun_calamity_dual.name=Saddle Gun +item.gun_carbine.name=Carbine item.gun_chemthrower.name=Chemthrower +item.gun_coilgun.name=Coilgun +item.gun_congolake.name=Congo Lake +item.gun_cryocannon.name=Cryo Cannon item.gun_cryolator.name=The Cryolator item.gun_cryolator_ammo.name=Cryo Cell item.gun_dampfmaschine.name=Totally Not a Joke Weapon @@ -2556,6 +3019,8 @@ item.gun_deagle.name=Big Iron item.gun_defabricator.name=Defabricator item.gun_defabricator_ammo.name=Defabricator Energy Cell item.gun_detonator.name=Laser Detonator +item.gun_double_barrel.name=An Old Classic +item.gun_double_barrel_sacred_dragon.name=Sacred Dragon item.gun_emp.name=EMP Gun item.gun_emp_ammo.name=Energy Cell item.gun_euthanasia.name=Euthanasia @@ -2563,10 +3028,20 @@ item.gun_euthanasia_ammo.name=Syringe item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" item.gun_fatman_ammo.name=Mini Nuke (LEGACY) item.gun_fireext.name=Fire Extinguisher -item.gun_flamer.name=Mister Topaz +item.gun_flamer.name=Flamethrower +item.gun_flamer_daybreaker.name=Daybreaker +item.gun_flamer_topaz.name=Mister Topaz +item.gun_flaregun.name=Flare Gun item.gun_flechette.name=Flechette Rifle -item.gun_folly.name=Prototype Digamma "Folly" +item.gun_folly.name=Folly +item.gun_g3.name=Assault Rifle item.gun_glass_cannon.name=The Glass Cannon +item.gun_greasegun.name=Grease Gun +item.gun_hangman.name=Hangman +item.gun_heavy_revolver.name=Heavy Revolver +item.gun_heavy_revolver_lilmac.name=Little Macintosh +item.gun_heavy_revolver_protege.name=ProtÚge +item.gun_henry.name=Lever Action Rifle item.gun_hk69.name=Grenade Pistol item.gun_hp.name=HPP Lazerjet item.gun_hp_ammo.name=Ink Cartridge @@ -2580,20 +3055,32 @@ item.gun_kit_2.name=Gun Repair Kit item.gun_ks23.name=Samuel the Big Shotgun item.gun_lacunae.name=CZ33 Abaddon item.gun_lacunae_ammo.name=5mm Round (LEGACY) +item.gun_lag.name=Comically Long Pistol +item.gun_lasrifle.name=Laser Rifle item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) item.gun_lever_action_sonata.name=Flipped Mare's Leg item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r +item.gun_liberator.name=Liberator +item.gun_light_revolver.name=Break-Action Revolver +item.gun_light_revolver_atlas.name=Atlas +item.gun_light_revolver_dani.name=Day And Night item.gun_lunatic_marksman.name=Lunatic Sniper Rifle item.gun_m2.name=Ma Deuce -item.gun_minigun.name=CZ53 Personal Minigun +item.gun_maresleg.name=Lever Action Shotgun +item.gun_maresleg_akimbo.name=Lever Action Shotguns +item.gun_maresleg_broken.name=Broken +item.gun_minigun.name=Minigun +item.gun_minigun_lacunae.name=Lacunae item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY) +item.gun_missile_launcher.name=Missile Launcher item.gun_moist_nugget.name=Mosin-Nagant item.gun_mp.name=Pacifist's Machine Gun item.gun_mp40.name=Submachine Gun item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) +item.gun_pepperbox.name=Pepperbox item.gun_pm_ammo.name=Small Propellantless Machine Gun Round item.gun_mymy.name=Nietes item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle @@ -2601,7 +3088,7 @@ item.gun_osipr_ammo.name=Dark Energy Pulse Plug item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" -item.gun_quadro.name=Quattro Formaggi +item.gun_quadro.name=Quad Rocket Launcher item.gun_remington.name=バむデン ブラスト [BIDEN BLAST] item.gun_revolver.name=Enhanced Revolver item.gun_revolver_ammo.name=Lead Bullet @@ -2619,7 +3106,7 @@ item.gun_revolver_nightmare.name=Nightmare Revolver (Original) item.gun_revolver_nightmare2.name=Nightmare Revolver (Dark) item.gun_revolver_nightmare2_ammo.name=Laser Buckshot item.gun_revolver_nightmare_ammo.name=Nightmare Bullet -item.gun_revolver_nopip.name=Novac +item.gun_revolver_nopip.name=Heavy Revolver item.gun_revolver_nopip_ammo.name=.44 Magnum Bullet (LEGACY) item.gun_revolver_pip.name=Lil' Pipsqueak item.gun_revolver_pip_ammo.name=Tainted Bullet (LEGACY) @@ -2634,16 +3121,21 @@ item.gun_sauer.name=Stan Sauer's Shotgun item.gun_skystinger.name=The One Sky Stinger item.gun_spark.name=Spark Plug item.gun_spark_ammo.name=Electromagnetic Cartridge -item.gun_spas12.name=SPAS-12 Shotgun +item.gun_spas12.name=SPAS-12 +item.gun_stg77.name=StG 77 item.gun_stinger.name=FIM-92 Stinger item.gun_stinger_ammo.name=Stinger Rocket (LEGACY) item.gun_super_shotgun.name=Super Shotgun item.gun_super_shotgun.desc=It's super broken! item.gun_supershotgun.name=Super Shotgun +item.gun_tau.name=Tau Cannon +item.gun_tesla_cannon.name=Tesla Cannon item.gun_thompson.name=Thompson Submachine Gun +item.gun_uac_pistol.name=UAC .45 Pistol item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) -item.gun_uzi.name=IMI Uzi +item.gun_uzi.name=Uzi +item.gun_uzi_akimbo.name=Uzis item.gun_uzi_ammo.name=.22 LR Round (LEGACY) item.gun_uzi_saturnite.name=Saturnite Uzi item.gun_uzi_saturnite_silencer.name=Saturnite Uzi with Silencer @@ -2679,6 +3171,7 @@ item.heart_booster.name=Heart Booster item.heart_container.name=Heart Container item.heart_fab.name=Fab Heart item.heart_piece.name=Heart Piece +item.heavy_component.name=Heavy %s Component item.hev_battery.name=Suit Battery item.hev_boots.name=HEV Mark IV Boots item.hev_plate.name=HEV Mark IV Chestplate @@ -2693,6 +3186,9 @@ item.hull_big_titanium.name=Big Titanium Shell item.hull_small_aluminium.name=Small Aluminium Shell item.hull_small_aluminium.desc=Can be inserted into drilled graphite item.hull_small_steel.name=Small Steel Shell +item.icf_pellet.name=ICF Fuel Pellet +item.icf_pellet_depleted.name=Depleted ICF Fuel Pellet +item.icf_pellet_empty.name=Empty ICF Fuel Pellet item.igniter.name=Igniter item.igniter.desc=(Used by right-clicking the Prototype)$It's a green metal handle with a$bright red button and a small lid.$At the bottom, the initials N.E. are$engraved. Whoever N.E. was, he had$a great taste in shades of green. item.industrial_magnet.name=Industrial Magnet @@ -2713,18 +3209,23 @@ item.ingot_am241.name=Americium-241 Ingot item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel item.ingot_arsenic.name=Arsenic Ingot +item.ingot_arsenic_bronze.name=Arsenic Bronze Ingot item.ingot_asbestos.name=Asbestos Sheet item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_bakelite.name=Bakelite Bar item.ingot_beryllium.name=Beryllium Ingot +item.ingot_biorubber.name=Latex Bar item.ingot_bismuth.name=Bismuth Ingot +item.ingot_bismuth_bronze.name=Bismuth Bronze Ingot item.ingot_boron.name=Boron Ingot +item.ingot_bscco.name=BSCCO Ingot item.ingot_c4.name=Bar of Composition C-4 item.ingot_cadmium.name=Cadmium Ingot item.ingot_calcium.name=Calcium Ingot item.ingot_cdalloy.name=Cadmium Steel Ingot +item.ingot_cft.name=Crystalline Fullerite item.ingot_chainsteel.name=Heavy Chainsteel item.ingot_co60.name=Cobalt-60 Ingot item.ingot_cobalt.name=Cobalt Ingot @@ -2745,6 +3246,7 @@ item.ingot_firebrick.name=Firebrick item.ingot_gh336.name=Ghiorsium-336 Ingot item.ingot_gh336.desc=Seaborgium's colleague. item.ingot_graphite.name=Graphite Ingot +item.ingot_gunmetal.name=Gunmetal Ingot item.ingot_hes.name=Highly Enriched Schrabidium Fuel Ingot item.ingot_lanthanium.name=Semi-Stable Lanthanium Ingot item.ingot_lanthanium.desc='Lanthanum' @@ -2777,6 +3279,7 @@ item.ingot_pu240.name=Plutonium-240 Ingot item.ingot_pu241.name=Plutonium-241 Ingot item.ingot_pvc.name=PVC Bar item.ingot_ra226.name=Radium-226 Ingot +item.ingot_raw.name=%s Ingot item.ingot_red_copper.name=Minecraft Grade Copper item.ingot_reiium.name=Reiium Ingot item.ingot_rubber.name=Rubber Bar @@ -2787,6 +3290,7 @@ item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel item.ingot_schraranium.name=Schraranium Ingot item.ingot_schraranium.desc=Made from uranium in a schrabidium transmutator item.ingot_semtex.name=Bar of Semtex +item.ingot_silicon.name=Silicon Boule item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot @@ -2810,6 +3314,7 @@ item.ingot_unobtainium.name=Unobtainium Ingot item.ingot_uranium.name=Uranium Ingot item.ingot_uranium_fuel.name=Ingot of Uranium Fuel item.ingot_verticium.name=Verticium Ingot +item.ingot_weaponsteel.name=Weapon Steel Ingot item.ingot_weidanium.name=Weidanium Ingot item.ingot_zirconium.name=Zirconium Cube item.injector_5htp.name=5-HTP Autoinjector @@ -2826,6 +3331,9 @@ item.insert_polonium.name=Polonium Insert item.insert_steel.name=Heavy Steel Insert item.insert_xsapi.name=XSAPI Insert item.insert_yharonite.name=Yharonite Insert +item.item_secret.canister.name=Composition SB-26 +item.item_secret.controller.name=Proprietary Control Unit +item.item_secret.selenium_steel.name=Selenium Steel item.iv_blood.name=Blood Bag item.iv_empty.name=IV Bag item.iv_xp.name=Experience Bag @@ -2846,6 +3354,9 @@ item.key_kit.name=Key Imitation Kit item.key_red.name=Red Key item.key_red.desc=Explore the other side. item.key_red.desc.P11=§4e§r +item.key_red_cracked.name=Cracked Key +item.key_red_cracked.desc=??? +item.key_red.key_red_cracked.P11=§4???§r item.kit_toolbox.name=Toolbox item.kit_toolbox_empty.name=Empty Toolbox item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix @@ -2857,6 +3368,9 @@ item.laser_crystal_co2.name=CO2-Desh Laser Crystal item.laser_crystal_digamma.name=Digamma Laser Crystal item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal item.laser_crystal_dnt.name=Spark Laser Crystal +item.launch_code.name=Silo Launch Code +item.launch_code_piece.name=Silo Launch Code Piece +item.launch_key.name=Silo Launch Key item.lead_gavel.name=Leaden Gavel item.lemon.name="Lemon" item.letter.name=Express Mail @@ -2896,7 +3410,7 @@ item.mechanism_revolver_2.name=Advanced Revolver Mechanism item.mechanism_rifle_1.name=Rifle Mechanism item.mechanism_rifle_2.name=Advanced Rifle Mechanism item.mechanism_special.name=High-Tech Weapon Mechanism -item.med_bag.name=Doctor's Bag +item.med_bag.name=First Aid Kit item.med_ipecac.name=Ipecac Syrup item.med_ptsd.name=PTSD Medication item.med_schiziphrenia.name=Schizophrenia Medication @@ -2905,6 +3419,7 @@ item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator item.memespoon.name=§eMarket Gardener item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel +item.mese_axe.name=Mese Axe item.mese_pickaxe.name=Mese Pickaxe item.meteor_charm.name=Meteor Charm item.meteor_remote.name=Meteorite Remote @@ -2927,7 +3442,7 @@ item.mike_kit.name=Ivy Mike Kit item.mirror_tool.name=Mirror Adjustment Tool item.mirror_tool.linked=Alignment position set! item.mirror_tool.desc=Right-click boiler to memorize the position.$Click on mirrors to turn them towards the boiler. -item.missile_anti_ballistic.name=Anti Ballistic Missile +item.missile_anti_ballistic.name=Anti-Ballistic Missile item.missile_assembly.name=Small Missile Assembly item.missile_bhole.name=Black Hole Missile item.missile_burst.name=Spare Missile @@ -2937,7 +3452,9 @@ item.missile_carrier.name=HTR-01 Carrier Rocket item.missile_cluster.name=Cluster Missile item.missile_cluster_strong.name=Strong Cluster Missile item.missile_custom.name=Custom Missile +item.missile_decoy.name=Decoy Missile item.missile_doomsday.name=Doomsday Missile +item.missile_doomsday_rusted.name=Damaged Doomsday Missile item.missile_drill.name=The Concrete Cracker item.missile_emp.name=EMP Missile item.missile_emp_strong.name=Strong EMP Missile @@ -2954,27 +3471,10 @@ item.missile_nuclear_cluster.name=Thermonuclear Missile item.missile_rain.name=Bomblet Rain item.missile_schrabidium.name=Schrabidium Missile item.missile_shuttle.name=Reliant Robin Space Shuttle -item.missile_skin_camo.name=Missile Skin: Camo -item.missile_skin_color.desc=I can't find my missile anymore! -item.missile_skin_desert.name=Missile Skin: Desert Camo -item.missile_skin_desert.desc=Looks like sand, tastes like metal. -item.missile_skin_flames.name=Missile Skin: Sick Flames -item.missile_skin_flames.desc=Radical! -item.missile_skin_manly_pink.name=Missile Skin: Manly Pink -item.missile_skin_manly_pink.desc=Pink, the manliest color of them all. -item.missile_skin_metal.name=Missile Skin: Metal -item.missile_skin_metal.desc=Metal sheets and metal bolts, reinforced with metal. -item.missile_skin_orange_insulation.name=Missile Skin: Orange Insulation -item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not attempt to drink contents. -item.missile_skin_sleek.name=Missile Skin: IF-R&D -item.missile_skin_sleek.desc=Chevrons are cool! -item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory -item.missile_skin_soviet_glory.desc=услуга перевПЎа МеЎПступМа -item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank -item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG item.missile_soyuz_lander.name=Orbital Module item.missile_soyuz_lander.desc=Doubles as a crappy lander! +item.missile_stealth.name=Stealth Missile item.missile_strong.name=Strong HE Missile item.missile_taint.name=Taint-Tipped Missile item.missile_volcano.name=Tectonic Missile @@ -3122,7 +3622,12 @@ item.mysteryshovel.name=Brittle Spade item.n2_charge.name=Large Explosive Charge item.neutrino_lens.name=Neutrino Lens item.neutron_reflector.name=Neutron Reflector +item.night_vision.name=Night Vision Goggles +item.night_vision.description.item=Grants you night vision (requires full electric set) +item.night_vision.description.in_armor=%s (grants night vision) item.niter.name=Niter +item.nitra.name=Nitra +item.nitra_small.name=Small Pile of Nitra item.no9.name=Mining Helmet item.nossy_hat.name=Fabulous Hat item.nothing.name=Nothing @@ -3158,7 +3663,7 @@ item.nugget_daffergon.name=Daffergon Nugget item.nugget_desh.name=Desh Nugget item.nugget_dineutronium.name=Dineutronium Nugget item.nugget_euphemium.name=Euphemium Nugget -item.nugget_euphemium.desc=A small piece of a pink metal.$It's properties are still unknown,$DEAL WITH IT carefully. +item.nugget_euphemium.desc=A small piece of a pink metal.$Its properties are still unknown,$DEAL WITH IT carefully. item.nugget_gh336.name=Ghiorsium-336 Nugget item.nugget_gh336.desc=Seaborgium's colleague. item.nugget_hes.name=Highly Enriched Schrabidium Fuel Nugget @@ -3170,6 +3675,7 @@ item.nugget_mox_fuel.name=Nugget of MOX Fuel item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r item.nugget_neptunium.name=Neptunium Nugget item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget +item.nugget_niobium.name=Niobium Nugget item.nugget_osmiridium.name=Osmiridium Nugget item.nugget_pb209.name=Lead-209 Nugget item.nugget_plutonium.name=Plutonium Nugget @@ -3184,6 +3690,7 @@ item.nugget_ra226.name=Radium-226 Nugget item.nugget_reiium.name=Reiium Nugget item.nugget_schrabidium.name=Schrabidium Nugget item.nugget_schrabidium_fuel.name=Nugget of Schrabidium Fuel +item.nugget_silicon.name=Silicon Nugget item.nugget_solinium.name=Solinium Nugget item.nugget_sr90.name=Strontium-90 Nugget item.nugget_tantalium.name=Tantalium Nugget @@ -3222,12 +3729,16 @@ item.ore.asbestos=Asbestos item.ore.borax=Borax item.ore.chlorocalcite=Chlorocalcite item.ore.copper=Copper +item.ore.fluorite=Fluorite item.ore.gold=Gold +item.ore.hematite=Hematite item.ore.iron=Iron +item.ore.malachite=Malachite +item.ore.neodymium=Neodymium item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten -item.ore.thorium=Thorium +item.ore.thorium232=Thorium item.ore.uranium=Uranium item.ore_bedrock.name=%s Bedrock Ore item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment @@ -3247,6 +3758,14 @@ item.ore_byproduct.b_uranium.name=Crystalline Uranium Fragment item.ore_centrifuged.name=Centrifuged %s Ore item.ore_cleaned.name=Cleaned %s Ore item.ore_deepcleaned.name=Deep Cleaned %s Ore +item.ore_density_scanner.name=Bedrock Ore Density Scanner +item.ore_density_scanner.excellent=Excellent +item.ore_density_scanner.high=High +item.ore_density_scanner.low=Low +item.ore_density_scanner.moderate=Moderate +item.ore_density_scanner.poor=Poor +item.ore_density_scanner.veryhigh=Very High +item.ore_density_scanner.verypoor=Very Poor item.ore_enriched.name=Enriched %s Ore item.ore_nitrated.name=Nitrated %s Ore item.ore_nitrocrystalline.name=Nitrocrystalline %s Ore @@ -3267,15 +3786,32 @@ item.padlock_unbreakable.name=Unbreakable Padlock item.pads_rubber.name=Rubber Pads item.pads_slime.name=Slime Pads item.pads_static.name=Static Pads +item.page_of_.page1.name=Page 1 +item.page_of_.page2.name=Page 2 +item.page_of_.page3.name=Page 3 +item.page_of_.page4.name=Page 4 +item.page_of_.page5.name=Page 5 +item.page_of_.page6.name=Page 6 +item.page_of_.page7.name=Page 7 +item.page_of_.page8.name=Page 8 item.pancake.name=Pancake made from Scrap Metal, Nails and Gem Dust +item.part_barrel_heavy.name=Heavy %s Barrel +item.part_barrel_light.name=Light %s Barrel item.part_beryllium.name=Box of Beryllium Dust item.part_carbon.name=Box of Carbon Dust item.part_copper.name=Box of Copper Dust +item.part_generic.hde.name=Heavy Duty Element +item.part_generic.lde.name=Low-Density Element item.part_generic.piston_electric.name=Electric Piston item.part_generic.piston_hydraulic.name=Hydraulic Piston item.part_generic.piston_pneumatic.name=Pneumatic Piston +item.part_grip.name=%s Grip item.part_lithium.name=Box of Lithium Dust +item.part_mechanism.name=%s Mechanism item.part_plutonium.name=Box of Plutonium Dust +item.part_receiver_heavy.name=Heavy %s Receiver +item.part_receiver_light.name=Light %s Receiver +item.part_stock.name=%s Stock item.particle_aelectron.name=Positron Capsule item.particle_amat.name=Antimatter Capsule item.particle_aproton.name=Antiproton Capsule @@ -3368,6 +3904,7 @@ item.pill_herbal.desc=Effective treatment against lung disease and mild radiatio item.pill_red.name=Red Pill item.pin.name=Bobby Pin item.pin.desc=Standard success rate of picking a regular lock is ~10%%. +item.pipentm.name=%s Pipe item.pipes_steel.name=Steel Pipes item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. item.piston_selenium.name=Combustion Engine Piston @@ -3380,6 +3917,7 @@ item.plan_c.desc=Deadly item.plant_item.mustardwillow.name=Mustard Willow Leaf item.plant_item.rope.name=Rope item.plant_item.tobacco.name=Tobacco +item.plastic_bag.name=Plastic Bag item.plate_advanced_alloy.name=Advanced Alloy Plate item.plate_aluminium.name=Aluminium Plate item.plate_armor_ajr.name=Iron-Shod Armor Plating @@ -3396,6 +3934,7 @@ item.plate_copper.name=Copper Plate item.plate_dalekanium.name=Angry Metal item.plate_desh.name=Desh Compound Plate item.plate_dineutronium.name=Dineutronium Compound Plate +item.plate_dura_steel.name=High-Speed Steel Plate item.plate_euphemium.name=Euphemium Compound Plate item.plate_fuel_mox.name=MOX Plate Fuel item.plate_fuel_pu238be.name=Pu238Be Plate Fuel @@ -3405,6 +3944,7 @@ item.plate_fuel_sa326.name=HES-326 Plate Fuel item.plate_fuel_u233.name=HEU-233 Plate Fuel item.plate_fuel_u235.name=HEU-235 Plate Fuel item.plate_gold.name=Gold Plate +item.plate_gunmetal.name=Gunmetal Plate item.plate_iron.name=Iron Plate item.plate_kevlar.name=Kevlar-Ceramic Compound item.plate_lead.name=Lead Plate @@ -3415,6 +3955,8 @@ item.plate_saturnite.name=Saturnite Plate item.plate_schrabidium.name=Schrabidium Plate item.plate_steel.name=Steel Plate item.plate_titanium.name=Titanium Plate +item.plate_weaponsteel.name=Weapon Steel Plate +item.plate_welded.name=Welded %s Plate item.polaroid.name=The Polaroid item.pollution_detector.name=Pollution Detector item.powder_actinium.name=Actinium Powder @@ -3422,7 +3964,13 @@ item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder -item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_asbestos.desc=§o"Sniffffffff- MHHHHHHMHHHHHHHHH"§r +item.powder_ash.coal.name=Coal Ash +item.powder_ash.fly.name=Fly Ash +item.powder_ash.fullerene.name=Fullerene +item.powder_ash.misc.name=Ash +item.powder_ash.soot.name=Fine Soot +item.powder_ash.wood.name=Wood Ash item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder item.powder_au198.name=Gold-198 Powder @@ -3438,6 +3986,7 @@ item.powder_bromine.name=Bromine Powder item.powder_cadmium.name=Cadmium Powder item.powder_caesium.name=Caesium Powder item.powder_calcium.name=Calcium Powder +item.powder_cement.name=Cement item.powder_cerium.name=Cerium Powder item.powder_cerium_tiny.name=Tiny Pile of Cerium Powder item.powder_chlorocalcite.name=Chlorocalcite @@ -3480,12 +4029,14 @@ item.powder_lanthanium_tiny.name=Tiny Pile of Lanthanium Powder item.powder_lapis.name=Lapis Lazuli Powder item.powder_lead.name=Lead Powder item.powder_lignite.name=Lignite Powder +item.powder_limestone.name=Limestone Powder item.powder_lithium.name=Lithium Powder item.powder_lithium_tiny.name=Tiny Pile of Lithium Powder item.powder_magic.name=Pulverized Enchantment item.powder_magnetized_tungsten.name=Magnetized Tungsten Powder item.powder_meteorite.name=Meteorite Powder item.powder_meteorite_tiny.name=Tiny Pile of Meteorite Powder +item.powder_molysite.name=Molysite item.powder_neodymium.name=Neodymium Powder item.powder_neodymium_tiny.name=Tiny Pile of Neodymium Powder item.powder_neptunium.name=Neptunium Powder @@ -3508,6 +4059,7 @@ item.powder_sawdust.name=Sawdust item.powder_schrabidate.name=Ferric Schrabidate Powder item.powder_schrabidium.name=Schrabidium Powder item.powder_semtex_mix.name=Semtex Blend +item.powder_sodium.name=Sodium item.powder_spark_mix.name=Spark Blend item.powder_sr90.name=Strontium-90 Powder item.powder_sr90_tiny.name=Tiny Pile of Strontium-90 Powder @@ -3533,6 +4085,9 @@ item.powder_xe135_tiny.name=Tiny Pile of Xenon-135 Powder item.powder_yellowcake.name=Yellowcake item.powder_zirconium.name=Zirconium Powder item.power_net_tool.name=Cable Network Analysis Tool +item.pipette.name=Pipette +item.pipette_boron.name=Boron Pipette +item.pipette_laboratory.name=Laboratory Grade Pipette item.primer_357.name=.357 Magnum Primer (x24) item.primer_44.name=.44 Magnum Primer (x24) item.primer_50.name=Large Caliber Primer (x12) @@ -3541,7 +4096,53 @@ item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit item.pudding.name=Pudding +item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR BFB Rod +item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR BFB Rod +item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod +item.pwr_fuel.hen237.name=HEN-237 PWR Fuel Rod +item.pwr_fuel.hep239.name=HEP-239 PWR Fuel Rod +item.pwr_fuel.hep241.name=HEP-241 PWR Fuel Rod +item.pwr_fuel.hes326.name=HES-326 PWR Fuel Rod +item.pwr_fuel.hes327.name=HES-327 PWR Fuel Rod +item.pwr_fuel.heu233.name=HEU-233 PWR Fuel Rod +item.pwr_fuel.heu235.name=HEU-235 PWR Fuel Rod +item.pwr_fuel.mea.name=MEA PWR Fuel Rod +item.pwr_fuel.men.name=MEN PWR Fuel Rod +item.pwr_fuel.mep.name=MEP PWR Fuel Rod +item.pwr_fuel.meu.name=MEU PWR Fuel Rod +item.pwr_fuel.mox.name=MOX PWR Fuel Rod +item.pwr_fuel_depleted.bfb_am_mix.name=Depleted Fuel Grade Americium PWR BFB Rod +item.pwr_fuel_depleted.bfb_pu241.name=Depleted Plutonium-241 PWR BFB Rod +item.pwr_fuel_depleted.hea242.name=Depleted HEA-242 PWR Fuel Rod +item.pwr_fuel_depleted.hen237.name=Depleted HEN-237 PWR Fuel Rod +item.pwr_fuel_depleted.hep239.name=Depleted HEP-239 PWR Fuel Rod +item.pwr_fuel_depleted.hep241.name=Depleted HEP-241 PWR Fuel Rod +item.pwr_fuel_depleted.hes326.name=Depleted HES-326 PWR Fuel Rod +item.pwr_fuel_depleted.hes327.name=Depleted HES-327 PWR Fuel Rod +item.pwr_fuel_depleted.heu233.name=Depleted HEU-233 PWR Fuel Rod +item.pwr_fuel_depleted.heu235.name=Depleted HEU-235 PWR Fuel Rod +item.pwr_fuel_depleted.mea.name=Depleted MEA PWR Fuel Rod +item.pwr_fuel_depleted.men.name=Depleted MEN PWR Fuel Rod +item.pwr_fuel_depleted.mep.name=Depleted MEP PWR Fuel Rod +item.pwr_fuel_depleted.meu.name=Depleted MEU PWR Fuel Rod +item.pwr_fuel_depleted.mox.name=Depleted MOX PWR Fuel Rod +item.pwr_fuel_hot.bfb_am_mix.name=Hot Fuel Grade Americium PWR BFB Rod +item.pwr_fuel_hot.bfb_pu241.name=Hot Plutonium-241 PWR BFB Rod +item.pwr_fuel_hot.hea242.name=Hot HEA-242 PWR Fuel Rod +item.pwr_fuel_hot.hen237.name=Hot HEN-237 PWR Fuel Rod +item.pwr_fuel_hot.hep239.name=Hot HEP-239 PWR Fuel Rod +item.pwr_fuel_hot.hep241.name=Hot HEP-241 PWR Fuel Rod +item.pwr_fuel_hot.hes326.name=Hot HES-326 PWR Fuel Rod +item.pwr_fuel_hot.hes327.name=Hot HES-327 PWR Fuel Rod +item.pwr_fuel_hot.heu233.name=Hot HEU-233 PWR Fuel Rod +item.pwr_fuel_hot.heu235.name=Hot HEU-235 PWR Fuel Rod +item.pwr_fuel_hot.mea.name=Hot MEA PWR Fuel Rod +item.pwr_fuel_hot.men.name=Hot MEN PWR Fuel Rod +item.pwr_fuel_hot.mep.name=Hot MEP PWR Fuel Rod +item.pwr_fuel_hot.meu.name=Hot MEU PWR Fuel Rod +item.pwr_fuel_hot.mox.name=Hot MOX PWR Fuel Rod item.quartz_plutonium.name=Plutonic Quartz +item.radar_linker.name=Radar Linker item.radaway.name=RadAway item.radaway_flush.name=Elite RadAway item.radaway_strong.name=Strong RadAway @@ -3834,6 +4435,7 @@ item.sat_base.name=Satellite Base item.sat_chip.name=Satellite ID-Chip item.sat_coord.name=Satellite Designator item.sat_designator.name=Satellite Laser Designator +item.sat_relay.name=Satellite Radar Relay item.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion item.sat_gerald.name=Gerald The Construction Android item.sat_head_laser.name=Death Ray @@ -3880,7 +4482,9 @@ item.seg_20.name=Size 20 Connector item.serum.name=Serum item.servo_set.name=Servo Set item.servo_set_desh.name=Desh Servo Set +item.settings_tool.name=Settings Tool item.shackles.name=Shackles +item.shellntm.name=%s Shell item.shimmer_axe.name=Shimmer Axe item.shimmer_axe_head.name=Heavy Axe Head item.shimmer_handle.name=Reinforced Polymer Handle @@ -3893,7 +4497,11 @@ item.singularity_spark.name=Spark Singularity item.singularity_super_heated.name=Superheated Resonating Singularity item.siox.name=SiOX Cancer Medication item.siox.desc=Reverses mesothelioma with the power of Asbestos! +item.siphon.name=Siphon item.siren_track.name=Siren Track +item.sliding_blast_door_skin.0.name=Sliding Blast Door Skin: Default +item.sliding_blast_door_skin.1.name=Sliding Blast Door Skin: Variant 1 +item.sliding_blast_door_skin.2.name=Sliding Blast Door Skin: Variant 2 item.smashing_hammer.name=Smashing Hammer item.solid_fuel.name=Solid Fuel item.solid_fuel_bf.name=Solid Fuel (Balefire) @@ -3916,6 +4524,14 @@ item.stamp_357.name=.357 Magnum Stamp item.stamp_44.name=.44 Magnum Stamp item.stamp_50.name=Large Caliber Stamp item.stamp_9.name=Small Caliber Stamp +item.stamp_book.printing1.name=Printing Press Stamp (Part 1) +item.stamp_book.printing2.name=Printing Press Stamp (Part 2) +item.stamp_book.printing3.name=Printing Press Stamp (Part 3) +item.stamp_book.printing4.name=Printing Press Stamp (Part 4) +item.stamp_book.printing5.name=Printing Press Stamp (Part 5) +item.stamp_book.printing6.name=Printing Press Stamp (Part 6) +item.stamp_book.printing7.name=Printing Press Stamp (Part 7) +item.stamp_book.printing8.name=Printing Press Stamp (Part 8) item.stamp_desh_circuit.name=Circuit Stamp (Desh) item.stamp_desh_flat.name=Flat Stamp (Desh) item.stamp_desh_plate.name=Plate Stamp (Desh) @@ -4034,6 +4650,10 @@ item.titanium_shovel.name=Titanium Shovel item.titanium_sword.name=Titanium Sword item.toothpicks.name=Toothpicks item.train.cargo_tram.name=Electric Flat Bed Tram +item.trenchmaster_boots.name=Trenchmaster's Boots +item.trenchmaster_helmet.name=Trenchmaster's Helmet +item.trenchmaster_legs.name=Trenchmaster's Leggings +item.trenchmaster_plate.name=Trenchmaster's Chestplate item.trinitite.name=Trinitite item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake item.tritium_deuterium_cake.desc=Not actual cake, but great$universal fusion fuel! @@ -4072,6 +4692,7 @@ item.upgrade_fortune_2.name=Fortune Upgrade Mk.II item.upgrade_fortune_3.name=Fortune Upgrade Mk.III item.upgrade_gc_speed.name=Gas Centrifuge Overclocking Upgrade item.upgrade_health.name=Emitter Health Upgrade +item.upgrade_muffler.name=Muffler item.upgrade_nullifier.name=Scrap Destroyer Upgrade item.upgrade_overdrive_1.name=Overdrive Upgrade Mk.I item.upgrade_overdrive_2.name=Overdrive Upgrade Mk.II @@ -4090,11 +4711,12 @@ item.upgrade_stack_1.name=Stack Ejection Upgrade Mk.I item.upgrade_stack_2.name=Stack Ejection Upgrade Mk.II item.upgrade_stack_3.name=Stack Ejection Upgrade Mk.III item.upgrade_template.name=Machine Upgrade Template -item.v1.name=V1 +item.volcanic_axe.name=Molten Axe item.volcanic_pickaxe.name=Molten Pickaxe item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand item.wand_s.name=Structure Wand +item.structure_custommachine.name=Custom Machine Structure Output Wand item.warhead_buster_large.name=Large Bunker Buster Warhead item.warhead_buster_medium.name=Medium Bunker Buster Warhead item.warhead_buster_small.name=Small Bunker Buster Warhead @@ -4130,7 +4752,7 @@ item.waste_u233.name=Depleted Uranium-233 Fuel item.waste_uranium.name=Depleted Uranium Fuel item.waste_zfb_mox.name=Depleted ZFB MOX Fuel item.watch.name=Broken Pocket Watch -item.watch.desc=A small blue pocket watch.$It's glass has a few cracks in it,$and some shards are missing.$It stopped ticking at 2:34. +item.watch.desc=A small blue pocket watch.$Its glass has a few cracks in it,$and some shards are missing.$It stopped ticking at 2:34. item.watz_pellet.boron.name=Boron Absorber Pellet item.watz_pellet.du.name=Depleted Uranium Absorber Pellet item.watz_pellet.hes.name=HES Watz Pellet @@ -4169,6 +4791,8 @@ item.wings_murk.name=Murky Wings item.wire_advanced_alloy.name=Super Conductor item.wire_aluminium.name=Aluminium Wire item.wire_copper.name=Copper Wire +item.wire_dense.name=Dense %s Wire +item.wire_fine.name=%s Wire item.wire_gold.name=Gold Wire item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor item.wire_red_copper.name=Red Copper Wire @@ -4207,10 +4831,28 @@ potion.hbm_stability=Stability potion.hbm_taint=Tainted potion.hbm_telekinesis=! ! ! +radar.clearMap=Clear Map radar.detectMissiles=Detect Missiles radar.detectPlayers=Detect Players +radar.detectShells=Detect Shells radar.redMode=Redstone Mode$On: Redstone output based on range$Off: Redstone output based on tier +radar.showMap=Show Map radar.smartMode=Smart Mode$Redstone output ignores ascending missiles +radar.toggleGui=Switch View + +radar.target.abm=Anti-Ballsitic Missile +radar.target.custom10=Size 10 Custom Missile +radar.target.custom1015=Size 10/15 Custom Missile +radar.target.custom15=Size 15 Custom Missile +radar.target.custom1520=Size 15/20 Custom Missile +radar.target.custom20=Size 20 Custom Missile +radar.target.doomsday=Doomsday Missile +radar.target.shuttle=Reliant Robin Space Shuttle +radar.target.tier0=Tier 0 Missile +radar.target.tier1=Tier 1 Missile +radar.target.tier2=Tier 2 Missile +radar.target.tier3=Tier 3 Missile +radar.target.tier4=Tier 4 Missile rbmk.heat=Column temperature: %s rbmk.boiler.water=Feedwater: %s / %s @@ -4240,22 +4882,35 @@ rbmk.screen.rod=Control: %s rbmk.screen.temp=Temp: %s rbmk.screen.xenon=Xenon: %s +shape.barrelHeavy=Heavy Barrel +shape.barrelLight=Light Barrel shape.billet=Billet shape.blade=Blade shape.blades=Shredder Blades shape.block=Block +shape.c9=Small Caliber Casing +shape.c50=Large Caliber Casing shape.dust=Dust shape.dusttiny=Tiny Dust +shape.grip=Grip +shape.gunMechanism=Mechanism shape.hull_big=Big Shell shape.hull_small=Small Shell shape.ingot=Ingot shape.nugget=Nugget shape.quantum=Quantum shape.quart=Quarter Block +shape.receiverHeavy=Heavy Receiver +shape.receiverLight=Light Receiver +shape.ntmpipe=Pipe shape.plate=Plate shape.plateTriple=Cast Plate +shape.shell=Shell shape.stamp=Press Stamp -shape.wire=Wire +shape.stock=Stock +shape.wireFine=Wires +shape.wireDense=Dense Wire +shape.wiresDense=Dense Wires soundCategory.ntmMachines=NTM Machines @@ -4268,7 +4923,10 @@ tile.ams_base.name=AMS Base (Deco) tile.ams_emitter.name=AMS Emitter (Deco) tile.ams_limiter.name=AMS Stabilizer (Deco) tile.ancient_scrap.name=Ancient Scrap Metal +tile.anvil_arsenic_bronze.name=Arsenic Bronze Anvil tile.anvil_bismuth.name=Bismuth Anvil +tile.anvil_bismuth_bronze.name=Bismuth Bronze Anvil +tile.anvil_desh.name=Desh Anvil tile.anvil_dnt.name=Dineutronium Anvil tile.anvil_ferrouranium.name=Ferrouranium Anvil tile.anvil_iron.name=Iron Anvil @@ -4276,17 +4934,19 @@ tile.anvil_lead.name=Lead Anvil tile.anvil_meteorite.name=Meteorite Anvil tile.anvil_murky.name=Murky Anvil tile.anvil_osmiridium.name=Osmiridium Anvil +tile.anvil_saturnite.name=Saturnite Anvil tile.anvil_schrabidate.name=Ferric Schrabidate Anvil tile.anvil_starmetal.name=Starmetal Anvil tile.anvil_steel.name=Steel Anvil tile.ash_digamma.name=Ash tile.asphalt.name=Asphalt +tile.asphalt_stairs.name=Asphalt Stairs tile.asphalt_light.name=Glowing Asphalt tile.barbed_wire.name=Barbed Wire tile.barbed_wire_acid.name=Caustic Barbed Wire tile.barbed_wire_fire.name=Flaming Barbed Wire tile.barbed_wire_poison.name=Poisoned Barbed Wire -tile.barbed_wire_ultradeath.name=Cloud Barbed Wire +tile.barbed_wire_ultradeath.name=Radioactive Barbed Wire tile.barbed_wire_wither.name=Withered Barbed Wire tile.barrel_antimatter.name=Magnetic Antimatter Container tile.barrel_corroded.name=Corroded Barrel @@ -4296,13 +4956,9 @@ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags tile.basalt.name=Basalt -tile.basalt_asbestos.name=Asbestos-Rich Basalt tile.basalt_brick.name=Basalt Bricks -tile.basalt_fluorite.name=Fluorite-Rich Basalt -tile.basalt_gem.name=Gem-Rich Basalt tile.basalt_polished.name=Polished Basalt tile.basalt_smooth.name=Smooth Basalt -tile.basalt_sulfur.name=Sulfur-Rich Basalt tile.basalt_tiles.name=Basalt Tiles tile.blast_door.name=Sliding Blast Door tile.block_actinium.name=Block of Actinium @@ -4457,6 +5113,7 @@ tile.brick_light.name=Light Bricks tile.brick_light_stairs.name=Light Bricks Stairs tile.brick_obsidian.name=Obsidian Bricks tile.brick_obsidian_stairs.name=Obsidian Brick Stairs +tile.brick_red.name=Red Room Brick tile.brick_slab.brick_asbestos.name=Asbestos Brick Slab tile.brick_slab.brick_compound.name=Compound Mesh Slab tile.brick_slab.brick_fire.name=Firebrick Slab @@ -4475,6 +5132,7 @@ tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a strai tile.capacitor_copper.name=Copper Capacitor tile.capacitor_gold.name=Golden Capacitor tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor_schrabidate.name=Schrabidate Capacitor tile.capacitor_tantalium.name=Tantalium Capacitor tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge @@ -4484,6 +5142,10 @@ tile.charge_semtex.name=Semtex Mining Charge tile.charger.name=Charging Station tile.cheater_virus.name=Gelid Euphemium tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block +tile.chimney_brick.name=Smokestack +tile.chimney_brick.desc=Connect using exhaust pipes to polluting machines$Reduces pollution emission by 75%% +tile.chimney_industrial.name=Industrial Smokestack +tile.chimney_industrial.desc=Connect using exhaust pipes to polluting machines$Reduces pollution emission by 90%% tile.chlorine_gas.name=Chlorine Gas tile.cluster_aluminium.name=Aluminium Ore Cluster tile.cluster_copper.name=Copper Ore Cluster @@ -4492,6 +5154,33 @@ tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster tile.cluster_iron.name=Iron Ore Cluster tile.cluster_titanium.name=Titanium Ore Cluster +tile.custom_machine_anchor.name=Custom Machine Structure Positioning Anchor +tile.cm_block.alloy.name=Advanced Alloy Machine Casing +tile.cm_block.desh.name=Desh Machine Casing +tile.cm_block.steel.name=Steel Machine Casing +tile.cm_block.tcalloy.name=Technetium Steel Machine Casing +tile.cm_circuit.aluminium.name=Tier 1 Circuit Block +tile.cm_circuit.copper.name=Tier 2 Circuit Block +tile.cm_circuit.gold.name=Tier 4 Circuit Block +tile.cm_circuit.red_copper.name=Tier 3 Circuit Block +tile.cm_circuit.schrabidium.name=Tier 5 Circuit Block +tile.cm_engine.bismuth.name=Bismuth Motor Block +tile.cm_engine.desh.name=Desh Motor Block +tile.cm_engine.standard.name=Motor Block +tile.cm_flux.name=Neutron Flux Receiver +tile.cm_heat.name=Heat receiver +tile.cm_port.alloy.name=Advanced Alloy Port +tile.cm_port.desh.name=Desh Port +tile.cm_port.steel.name=Steel Port +tile.cm_port.tcalloy.name=Technetium Steel Port +tile.cm_sheet.alloy.name=Advanced Alloy Sheet +tile.cm_sheet.desh.name=Desh Sheet +tile.cm_sheet.steel.name=Steel Sheet +tile.cm_sheet.tcalloy.name=Technetium Steel Sheet +tile.cm_tank.alloy.name=Advanced Alloy Tank +tile.cm_tank.desh.name=Desh Tank +tile.cm_tank.steel.name=Steel Tank +tile.cm_tank.tcalloy.name=Technetium Steel Tank tile.cmb_brick.name=CMB Steel Tile tile.cmb_brick_reinforced.name=Reinforced CMB Bricks tile.compact_launcher.name=Compact Launch Pad @@ -4519,13 +5208,16 @@ tile.concrete_colored.red.name=Red Concrete tile.concrete_colored.silver.name=Light Gray Concrete tile.concrete_colored.white.name=White Concrete tile.concrete_colored.yellow.name=Yellow Concrete +tile.concrete_colored_ext.bronze.name=Builder's Choice Concrete - Bronze Plating tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Hazard Stripe tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Deep Indigo tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrial Tinge tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrial Stripe tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Manly Pink tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysterious Purple +tile.concrete_colored_ext.sand.name=Builder's Choice Concrete - Desert Storm tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar +tile.concrete_slab.asphalt.name=Asphalt Slab tile.concrete_slab.concrete.name=Concrete Tile Slab tile.concrete_slab.concrete_asbestos.name=Asbestos Concrete Slab tile.concrete_slab.concrete_smooth.name=Concrete Slab @@ -4537,18 +5229,34 @@ tile.concrete_stairs.name=Concrete Tile Stairs tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt +tile.conveyor.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.conveyor_chute.name=Conveyor Chute +tile.conveyor_chute.desc=Moves items down$The bottom-most chute will act like a regular conveyor belt tile.conveyor_double.name=Double-Lane Conveyor Belt +tile.conveyor_double.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_express.name=Express Conveyor Belt +tile.conveyor_express.desc=Moves items dropped on it very fast$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.conveyor_lift.name=Conveyor Chain Lift +tile.conveyor_lift.desc=Moves items up$Requires at least two blocks on top of each other to work properly tile.conveyor_triple.name=Triple-Lane Conveyor Belt +tile.conveyor_triple.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.corium_block.name=Corium tile.crane_boxer.name=Conveyor Boxer +tile.crane_boxer.desc=Loads a configurable amount of stacks into boxes which move along conveyor belts$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_extractor.name=Conveyor Ejector +tile.crane_extractor.desc=Takes items from inventories and places them on conveyor belts$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side tile.crane_grabber.name=Conveyor Grabber +tile.crane_grabber.desc=Takes items from passing conveyors and places them into containers$Will only take items from the closest lane$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_inserter.name=Conveyor Inserter +tile.crane_inserter.desc=Accepts items from conveyors and places them into containers$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side +tile.crane_partitioner.name=Acidizer Input Paritioner +tile.crane_partitioner.desc=Receives and stores up to nine Ore Acidizer inputs$and releases them if they match the required input size.$Invalid items are also saved, and need to be extracted from the side. tile.crane_router.name=Conveyor Sorter +tile.crane_router.desc=Sorts item based on defined criteria$Sides can be defined as blacklist, whitelist or wildcard$Wildcard sides are only chosen if no other filter matches tile.crane_splitter.name=Conveyor Splitter +tile.crane_splitter.desc=Splits items and stacks evenly onto two conveyor belts$Is a conveyor belt itself, so it can directly input into an inserter or sorter tile.crane_unboxer.name=Conveyor Unboxer +tile.crane_unboxer.desc=Receives boxes and extracts their contents$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side tile.crashed_bomb.name=Dud tile.crate.name=Supply Crate tile.crate_ammo.name=Starmetal Crate @@ -4560,6 +5268,7 @@ tile.crate_lead.name=Hazmat Crate tile.crate_metal.name=Machine Crate tile.crate_red.name=Red Crate tile.crate_steel.name=Steel Crate +tile.crate_template.name=Template Crate tile.crate_tungsten.name=Tungsten Crate tile.crate_weapon.name=Weapon Crate tile.crystal_hardened.name=Hardened Dark Crystal @@ -4569,9 +5278,8 @@ tile.deco_aluminium.name=Aluminium Deco Block tile.deco_asbestos.name=Asbestos Roof tile.deco_beryllium.name=Beryllium Deco Block tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL +tile.deco_crt.name=Old CRT Screen tile.deco_emitter.name=Deco Light Emitter -tile.part_emitter.name=Deco Particle Emitter -tile.piston_inserter.name=Inserter tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block @@ -4602,6 +5310,7 @@ tile.deco_pipe_rim_red.name=Red Steel Pipe (Rimmed) tile.deco_pipe_rim_marked.name=Gas Pipe (Rimmed) tile.deco_steel.name=Steel Deco Block tile.deco_titanium.name=Titanium Deco Block +tile.deco_toaster.name=Broken Toaster tile.deco_tungsten.name=Tungsten Deco Block tile.decon.name=Player Decontaminator tile.depth_brick.name=Depth Bricks @@ -4621,9 +5330,21 @@ tile.dfc_stabilizer.name=DFC Stabilizer tile.dirt_dead.name=Dead Dirt tile.dirt_oily.name=Oily Dirt tile.drill_pipe.name=Drill Pipe +tile.drone_crate.name=Transport Drone Crate +tile.drone_crate.desc=Loading and unloading point for transport drones.$Acts as a waypoint, has to be linked with the drone linker.$Drones must approach from a high angle, or they will get stuck. +tile.drone_crate_provider.name=Logistics Provider Crate +tile.drone_crate_provider.desc=Offers items to the logistics network.$Logistics drones will try to move items from providers to requester crates. +tile.drone_crate_requester.name=Logistics Requester Crate +tile.drone_crate_requester.desc=Requests items from the logistics network.$Items added to the filter will be requested, if not present in its inventory. +tile.drone_dock.name=Logistics Drone Dock +tile.drone_dock.desc=Spawn point for logistics drones.$Can only detect providers and requesters within a 5 chunk radius.$Drones will only follow up to 10 waypoints per connection. +tile.drone_waypoint.name=Transport Drone Waypoint +tile.drone_waypoint.desc=Waypoint for transport drones$Use a transport drone linker to set the path$Click on each waypoint and crate in sequence to create the path,$then shift-click to clear the saved position$Right-click or shift-click the waypoint to change the waypoint's offset +tile.drone_waypoint_request.name=Logistics Drone Waypoint tile.door_bunker.name=Bunker Door tile.door_metal.name=Metal Door tile.door_office.name=Office Door +tile.door_red.name=Red Door tile.ducrete.name=Ducrete Tile tile.ducrete_stairs.name=Ducrete Tile Stairs tile.ducrete_smooth.name=Ducrete @@ -4643,7 +5364,9 @@ tile.factory_titanium_furnace.name=Basic Factory Access Hatch tile.factory_titanium_hull.name=Factory Block tile.fallout.name=Fallout tile.fan.name=Fan +tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip tile.fence_metal.name=Chainlink Fence +tile.fence_metal_post.name=Chainlink Fence Post tile.field_disturber.name=High Energy Field Jammer tile.filing_cabinet.green.name=Dusty Filing Cabinet tile.filing_cabinet.steel.name=Steel Filing Cabinet @@ -4656,25 +5379,31 @@ tile.fireworks.color=Color: %s tile.fissure_bomb.name=Fissure Bomb tile.flame_war.name=Flame War in a Box tile.float_bomb.name=Levitation Bomb +tile.floodlight.name=Powered Floodlight tile.fluid_duct.name=Universal Fluid Duct (Deprecated) tile.fluid_duct_box.name=Universal Fluid Duct (Boxduct) +tile.fluid_duct_exhaust.name=Exhaust Pipe tile.fluid_duct_gauge.name=Flow Gauge Pipe tile.fluid_duct_gauge.desc=Pipe that displays how much fluid$moves within the network per tick.$Split networks connected by barrels$or tanks are considered as one shared network. tile.fluid_duct_neo.name=Universal Fluid Duct tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated) +tile.fluid_switch.name=Redstone Fluid Valve +tile.fluid_valve.name=Fluid Valve tile.foam_layer.name=Foam layer tile.foundry_basin.name=Foundry Basin tile.foundry_channel.name=Foundry Channel tile.foundry_tank.name=Foundry Storage Basin tile.foundry_mold.name=Shallow Foundry Basin tile.foundry_outlet.name=Foundry Outlet -tile.foundry_slagtap.name=Foundry Slag Outlet +tile.foundry_slagtap.name=Foundry Spill Outlet tile.fraction_spacer.name=Fractioning Tower Separator tile.frozen_dirt.name=Frozen Dirt tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks +tile.machine_furnace_brick_off.name=Bricked Furnace +tile.machine_furnace_brick_on.name=Bricked Furnace tile.furnace_combination.name=Combination Oven tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t tile.furnace_iron.name=Iron Furnace @@ -4734,6 +5463,10 @@ tile.hadron_coil_neodymium.name=Dense Neodymium Coil tile.hadron_coil_schrabidate.name=Dense Schrabidate Coil tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil tile.hadron_coil_starmetal.name=Dense Starmetal Coil +tile.hadron_cooler.name=Particle Accelerator Cooling Unit +tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% +tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special +tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% tile.hadron_core.name=Particle Accelerator Core Component tile.hadron_diode.name=Schottky Particle Diode tile.hadron_plating.name=Particle Accelerator Plating @@ -4760,7 +5493,22 @@ tile.heater_oilburner.desc=Burns fluids to produce heat.$Can be configured with tile.heater_oven.name=Heating Oven tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency. tile.hev_battery.name=Suit Battery +tile.machine_hydrotreater.name=Hydrotreater tile.impact_dirt.name=Scorched Dirt +tile.icf.name=Inertial Confinement Fusion Reactor (ICF) +tile.icf_block.name=ICF Laser +tile.icf_component.name=ICF Stability Element +tile.icf_component.structure.name=ICF Casing +tile.icf_component.structure_bolted.name=ICF Casing (Riveted) +tile.icf_component.vessel.name=ICF Containment Vessel Wall +tile.icf_component.vessel_welded.name=ICF Containment Vessel Wall (Welded) +tile.icf_controller.name=ICF Laser Controller +tile.icf_laser_component.capacitor.name=ICF Laser Capacitor +tile.icf_laser_component.casing.name=ICF Laser Casing +tile.icf_laser_component.cell.name=ICF Laser Cell +tile.icf_laser_component.emitter.name=ICF Laser Flash Tube +tile.icf_laser_component.port.name=ICF Laser Port +tile.icf_laser_component.turbo.name=ICF Laser Turbocharger tile.iter.name=Fusion Reactor tile.ladder_aluminium.name=Aluminium Ladder tile.ladder_cobalt.name=Cobalt Ladder @@ -4777,18 +5525,28 @@ tile.lamp_tritium_blue_off.name=Blue Tritium Lamp tile.lamp_tritium_blue_on.name=Blue Tritium Lamp tile.lamp_tritium_green_off.name=Green Tritium Lamp tile.lamp_tritium_green_on.name=Green Tritium Lamp -tile.launch_pad.name=Missile Launch Pad +tile.lantern.name=Lantern +tile.lantern_behemoth.name=Old Lantern +tile.launch_pad.name=Silo Launch Pad +tile.launch_pad_large.name=Launch Pad +tile.launch_pad_rusted.name=Old Launch Pad tile.launch_table.name=Large Launch Pad tile.leaves_layer.name=Fallen Leaves tile.lox_barrel.name=LOX Barrel tile.machine_amgen.name=Ambience Radiation Generator +tile.machine_ammo_press.name=Ammo Press +tile.machine_arc_furnace.name=Electric Arc Furnace tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_on.name=Arc Furnace +tile.machine_arc_welder.name=Arc Welder tile.machine_armor_table.name=Armor Modification Table +tile.machine_ashpit.name=Ashpit +tile.machine_ashpit.desc=Collects ashes from fireboxes and heating ovens tile.machine_assembler.name=Assembly Machine tile.machine_assemfac.name=Assembly Factory tile.machine_autocrafter.name=Automatic Crafting Table tile.machine_autosaw.name=Automatic Buzz Saw +tile.machine_autosaw.desc=Cuts down nearby plants, re-plants trees$Accepts:$-Wood oil$-Ethanol$-Fish oil$-Heavy oil tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block @@ -4796,8 +5554,7 @@ tile.machine_boiler.name=Boiler tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Electric Oil Heater tile.machine_boiler_electric_on.name=Electric Oil Heater -tile.machine_boiler_off.name=Oil Heater -tile.machine_boiler_on.name=Oil Heater +tile.machine_boiler_off.name=Old Boiler tile.machine_catalytic_cracker.name=Catalytic Cracking Tower tile.machine_catalytic_reformer.name=Catalytic Reformer tile.machine_centrifuge.name=Centrifuge @@ -4813,9 +5570,12 @@ tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_compressor.name=Compressor tile.machine_condenser.name=Steam Condenser +tile.machine_condenser_powered.name=High-Power Steam Condenser tile.machine_controller.name=Reactor Remote Control Block tile.machine_converter_he_rf.name=HE to RF Converter tile.machine_converter_rf_he.name=RF to HE Converter +tile.machine_conveyor_press.name=Conveyor Press +tile.machine_conveyor_press.desc=Conveyor moves left to right$Right click stamp to install$Use screwdriver to remove stamp tile.machine_crucible.name=Crucible tile.machine_crystallizer.name=Ore Acidizer tile.machine_cyclotron.name=Cyclotron @@ -4829,11 +5589,14 @@ tile.machine_difurnace_on.name=Blast Furnace tile.machine_difurnace_rtg_off.name=Nuclear Blast Furnace tile.machine_difurnace_rtg_on.name=Nuclear Blast Furnace tile.machine_dineutronium_battery.name=Spark Energy Storage Block +tile.machine_drain.name=Drainage Pipe tile.machine_drill.name=Automatic Mining Drill tile.machine_electric_furnace_off.name=Electric Furnace tile.machine_electric_furnace_on.name=Electric Furnace +tile.machine_electrolyser.name=Electrolysis Machine tile.machine_epress.name=Electric Press tile.machine_excavator.name=Large Mining Drill +tile.machine_exposure_chamber.name=Exposure Chamber tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU tile.machine_flare.name=Flare Stack @@ -4841,10 +5604,16 @@ tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower tile.machine_fracking_tower.name=Hydraulic Fracking Tower +tile.machine_funnel.name=Combinator Funnel +tile.machine_funnel.desc=Automatically compresses items in a 2x2 or 3x3 crafting grid$Top: Input$Bottom: Output$Side: Output for clearing ingredients tile.machine_gascent.name=Gas Centrifuge tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator tile.machine_hephaestus.name=Geothermal Heat Exchanger +tile.machine_icf_press.name=ICF Fuel Pellet Maker +tile.machine_icf_press.desc=Fills ICF Fuel pellets$Left fuel slot is accepted by top/bottom, right by the sides$Muons and pellets may be supplied from any side +tile.machine_industrial_boiler.name=Industrial Boiler +tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode tile.machine_industrial_generator.name=Industrial Generator tile.machine_keyforge.name=Locksmith Table tile.machine_large_turbine.name=Industrial Steam Turbine @@ -4860,17 +5629,21 @@ tile.machine_mixer.name=Industrial Mixer tile.machine_nuke_furnace_off.name=Nuclear Furnace tile.machine_nuke_furnace_on.name=Nuclear Furnace tile.machine_orbus.name=Heavy Magnetic Storage Tank +tile.machine_ore_slopper.name=Bedrock Ore Processor tile.machine_powerrtg.name=PT Isotope Cell tile.machine_press.name=Burner Press tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank tile.machine_pumpjack.name=Pumpjack +tile.machine_pyrooven.name=Pyrolysis Oven tile.machine_radar.name=Radar +tile.machine_radar_large.name=Large Radar tile.machine_radgen.name=Radiation-Powered Engine tile.machine_radiolysis.name=Radioisotope Thermoelectric Generator and Radiolysis Chamber tile.machine_reactor.name=Breeding Reactor tile.machine_reactor_small.name=Research Reactor tile.machine_refinery.name=Oil Refinery tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) +tile.machine_rotary_furnace.name=Rotary Furnace tile.machine_rtg_blue.name=Convection Generator tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) tile.machine_rtg_furnace_off.name=RTG Furnace @@ -4891,6 +5664,7 @@ tile.machine_shredder.name=Shredder tile.machine_silex.name=Laser Isotope Separation Chamber (SILEX) tile.machine_siren.name=Siren tile.machine_solar_boiler.name=Solar Tower Boiler +tile.machine_soldering_station.name=Soldering Station tile.machine_solidifier.name=Industrial Solidification Machine tile.machine_solidifier.desc=A universal machine fitted with cooling systems and other$versatile tools for turning fluids solid using various$processes such as freezing and petrochemical polymerization. tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom) @@ -4899,9 +5673,12 @@ tile.machine_steam_engine.name=Steam Engine tile.machine_steam_engine.desc=Efficiency: 85%% tile.machine_stirling.name=Stirling Engine tile.machine_stirling.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Max intake: 300 TU/t$Efficiency: 50%% +tile.machine_stirling_creative.name=Creative Stirling Engine +tile.machine_stirling_creative.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Infinite intake/t$Efficiency: 100%% tile.machine_stirling_steel.name=Heavy Stirling Engine tile.machine_stirling_steel.desc=Turns heat into energy. Requires external heat source.$Uses a much heavier gear to support higher temperatures.$Heat transfer rate: T*0.1 TU/t$Max intake: 1500 TU/t$Efficiency: 50%% tile.machine_storage_drum.name=Nuclear Waste Disposal Drum +tile.machine_strand_caster.name=Strand Caster tile.machine_telelinker.name=Turret Telemetry Linker tile.machine_teleporter.name=Teleporter tile.machine_tower_large.name=Cooling Tower @@ -4917,6 +5694,8 @@ tile.machine_turbofan.name=Turbofan tile.machine_uf6_tank.name=Uranium Hexafluoride Tank tile.machine_vacuum_distill.name=Vacuum Refinery tile.machine_waste_drum.name=Spent Fuel Pool Drum +tile.machine_wood_burner.name=Wood-Burning Generator +tile.machine_wood_burner.desc=Generates 100HE/t when burning items$Collects ashes$Can burn fluids at 50%% efficiency at 40mB/s tile.machine_well.name=Oil Derrick tile.machine_zirnox.name=ZIRNOX Nuclear Reactor tile.marker_structure.name=Multiblock Structure Marker @@ -4953,10 +5732,16 @@ tile.nuke_tsar.name=Tsar Bomba tile.oil_duct.name=Oil Pipe tile.oil_duct_solid.name=Coated Oil Pipe tile.oil_pipe.name=Crude Oil Extraction Pipe +tile.oil_spill.name=Oil Spill tile.ore_alexandrite.name=Alexandrite Ore tile.ore_aluminium.name=Aluminium Ore tile.ore_asbestos.name=Asbestos Ore tile.ore_australium.name=Australian Ore +tile.ore_basalt_asbestos.name=Asbestos-Rich Basalt +tile.ore_basalt_fluorite.name=Fluorite-Rich Basalt +tile.ore_basalt_gem.name=Gem-Rich Basalt +tile.ore_basalt_molysite.name=Molysite-Rich Basalt +tile.ore_basalt_sulfur.name=Sulfur-Rich Basalt tile.ore_bedrock.name=Bedrock Ore tile.ore_bedrock_coltan.name=Bedrock Coltan Ore tile.ore_bedrock_oil.name=Bedrock Oil Deposit @@ -4985,6 +5770,11 @@ tile.ore_gneiss_uranium.name=Schist Uranium Ore tile.ore_gneiss_uranium_scorched.name=Scorched Schist Uranium Ore tile.ore_lead.name=Lead Ore tile.ore_lignite.name=Lignite Ore +tile.ore_meteor.aluminium.name=Meteor Aluminium Ore +tile.ore_meteor.cobalt.name=Meteor Cobalt Ore +tile.ore_meteor.copper.name=Meteor Copper Ore +tile.ore_meteor.iron.name=Meteor Iron Ore +tile.ore_meteor.rareearth.name=Meteor Rare Earth Ore tile.ore_meteor_aluminium.name=Meteor Aluminium Ore tile.ore_meteor_copper.name=Meteor Copper Ore tile.ore_meteor_lead.name=Meteor Lead Ore @@ -5013,6 +5803,11 @@ tile.ore_random.name=%s Ore tile.ore_rare.name=Rare Earth Ore tile.ore_reiium.name=Reiite tile.ore_schrabidium.name=Schrabidium Ore +tile.ore_sellafield_diamond.name=Sellafite Diamond Ore +tile.ore_sellafield_emerald.name=Sellafite Emerald Ore +tile.ore_sellafield_radgem.name=Sellafite Radioactive Gem Ore +tile.ore_sellafield_schrabidium.name=Sellafite Schrabidium Ore +tile.ore_sellafield_uranium_scorched.name=Scorched Sellafite Uranium Ore tile.ore_sulfur.name=Sulfur Ore tile.ore_tektite_osmiridium.name=Osmiridium-Infused Tektite tile.ore_thorium.name=Thorium Ore @@ -5025,11 +5820,15 @@ tile.ore_uranium_scorched.name=Scorched Uranium Ore tile.ore_verticium.name=Dollar Green Mineral tile.ore_volcano.name=Geothermal Vent tile.ore_weidanium.name=Weidite +tile.part_emitter.name=Deco Particle Emitter +tile.pedestal.name=Pedestal tile.pink_barrel.name=Kerosene Barrel tile.pink_log.name=Pink Log tile.pink_planks.name=Pink Wood Planks tile.pink_slab.name=Pink Wood Slab tile.pink_stairs.name=Pink Wood Stairs +tile.piston_inserter.name=Inserter +tile.piston_inserter.desc=Can receive one item using automation$Using redstone, it will insert the item into drilled graphite$All drilled graphite in the chain will have their items pushed by one block$Needs one block of air between the graphite tile.plant_dead.name=Dead Plant tile.plant_flower.cd0.name=Mustard Willow tile.plant_flower.cd1.name=Mustard Willow @@ -5044,6 +5843,7 @@ tile.plant_tall.cd4.name=Mustard Willow (Mature) tile.plant_tall.weed.name=Hemp tile.plasma.name=Plasma tile.plasma_heater.name=Plasma Heater +tile.plushie.name=%s Plushie tile.pole_satellite_receiver.name=Satellite Dish tile.pole_top.name=Antenna Top tile.press_preheater.name=Burner Press Preheater @@ -5051,6 +5851,38 @@ tile.pribris.name=RBMK Debris tile.pribris_burning.name=Flaming RBMK Debris tile.pribris_digamma.name=Blackened RBMK Debris tile.pribris_radiating.name=Smoldering RBMK Debris +tile.pump_electric.name=Electric Groundwater Pump +tile.pump_electric.desc=Uses electricity to pump up groundwater$Generates up to 10,000mB/t$Needs to be placed below Y:70 +tile.pump_steam.name=Steam-Powered Groundwater Pump +tile.pump_steam.desc=Uses steam to pump up groundwater$Generates up to 1,000mB/t$Needs to be placed below Y:70 +tile.pwr_block.name=PWR +tile.pwr_casing.name=PWR Pressure Vessel +tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing +tile.pwr_channel.name=PWR Coolant Channel +tile.pwr_channel.desc=Uses hull heat to heat up coolant$Placement: Any +tile.pwr_control.name=PWR Control Rod +tile.pwr_control.desc=Allows connected fuel rods to be controlled$Placement: Grid, between fuel rods +tile.pwr_controller.name=PWR Controller +tile.pwr_controller.desc=Access terminal for the PWR$Placement: Casing, only one per reactor$Right-click to assemble the reactor +tile.pwr_fuel.name=PWR Fuel Rod +tile.pwr_fuel.desc=Increases PWR fuel capacity$Placement: Grid, for increased reactivity +tile.pwr_heatex.name=PWR Heat Exchanger +tile.pwr_heatex.desc=Moves core heat to the hull$Placement: Any +tile.pwr_heatsink.name=PWR Heatsink +tile.pwr_heatsink.desc=Increases core heat capacity by 5%%$Makes coolant channels and heat exchangers slightly less effective$Placement: Any +tile.pwr_neutron_source.name=PWR Neutron Source +tile.pwr_neutron_source.desc=Adds 20 flux to the core$Placement: Any$Flux only reaches fuel rods if connections are open +tile.pwr_port.name=PWR Access Port +tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing +tile.pwr_reflector.name=PWR Neutron Reflector +tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material +tile.rad_lava_block.name=Volcanic Lava +tile.radar_screen.name=Radar Screen +tile.radio_telex.name=Telex Machine +tile.radio_torch_counter.name=Redstone-over-Radio Item Counter +tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items +tile.radio_torch_logic.name=Redstone-over-Radio Logic Receiver +tile.radio_torch_logic.desc=Placable on flat surfaces or comparator-compatible blocks$Maps redstone signals to conditions evaluated in a set order$Numerical or string inputs are compared against a constant tile.radio_torch_receiver.name=Redstone-over-Radio Receiver tile.radio_torch_receiver.desc=Placable on flat surfaces or comparator-compatible blocks tile.radio_torch_sender.name=Redstone-over-Radio Transmitter @@ -5059,6 +5891,15 @@ tile.radiobox.name=Rosenberg Pest Control Box tile.radiorec.name=FM Radio tile.rail_booster.name=High Speed Booster Rail tile.rail_highspeed.name=High Speed Rail +tile.rail_large_buffer.name=Standard Gauge Buffer Stop Rail (5m) +tile.rail_large_curve.name=Standard Gauge Curve Rail (5m) +tile.rail_large_curve_7.name=Standard Gauge Curve Rail (7m) +tile.rail_large_curve_9.name=Standard Gauge Curve Rail (9m) +tile.rail_large_ramp.name=Standard Gauge Ramp Rail (5m) +tile.rail_large_straight.name=Standard Gauge Rail (5m) +tile.rail_large_straight_short.name=Standard Gauge Rail (1m) +tile.rail_large_switch.name=Standard Gauge Switch Rail (15m, Left) +tile.rail_large_switch_flipped.name=Standard Gauge Switch Rail (15m, Right) tile.rail_narrow.name=Narrow Gauge Cart Rail tile.rail_wood.name=Wooden Tracks tile.rbmk_absorber.name=RBMK Boron Neutron Absorber @@ -5073,6 +5914,7 @@ tile.rbmk_crane_console.name=RBMK Crane Console tile.rbmk_heater.name=RBMK Fluid Heater tile.rbmk_heatex.name=RBMK Heat Exchanger tile.rbmk_loader.name=RBMK Steam Connector +tile.rbmk_loader.desc=Allows RBMKs to have both water and steam connections at the bottom$Place one water pipe below the RBMK column, then the connector,$then connect the steam duct to the connector. tile.rbmk_moderator.name=RBMK Graphite Moderator tile.rbmk_outgasser.name=RBMK Irradiation Channel tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector @@ -5081,7 +5923,9 @@ tile.rbmk_rod_mod.name=RBMK Moderated Fuel Rod tile.rbmk_rod_reasim.name=RBMK Fuel Rod (ReaSim) tile.rbmk_rod_reasim_mod.name=RBMK Moderated Fuel Rod (ReaSim) tile.rbmk_steam_inlet.name=RBMK ReaSim Water Inlet +tile.rbmk_steam_inlet.desc=Inserts water into RBMK columns if ReaSim boilers are enabled$Connects to RBMK columns sideways tile.rbmk_steam_outlet.name=RBMK ReaSim Steam Outlet +tile.rbmk_steam_outlet.desc=Extracts super dense steam from RBMK columns if ReaSim boilers are enabled$Connects to RBMK columns sideways tile.rbmk_storage.name=RBMK Storage Column tile.reactor_computer.name=Reactor Control tile.reactor_conductor.name=Reactor Boiler @@ -5093,10 +5937,16 @@ tile.reactor_inserter.name=Reactor Fuel Inserter tile.red_barrel.name=Explosive Barrel tile.red_cable.name=Red Copper Cable tile.red_cable_classic.name=Red Copper Cable (Classic) +tile.red_cable_gauge.name=Power Gauge +tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per tick.$Split networks connected by energy$storage blocks are considered as one shared network. tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector -tile.red_pylon.name=Electricity Pole +tile.red_pylon.name=Electricity Pylon tile.red_pylon_large.name=Large Electricity Pylon +tile.red_pylon_medium_steel.name=Medium Steel Electricity Pylon +tile.red_pylon_medium_steel_transformer.name=Medium Steel Electricity Pylon with Transformer +tile.red_pylon_medium_wood.name=Medium Wooden Electricity Pylon +tile.red_pylon_medium_wood_transformer.name=Medium Wooden Electricity Pylon with Transformer tile.red_wire_coated.name=Coated Red Copper Cable tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs @@ -5141,12 +5991,20 @@ tile.sellafield.2.name=Boiling Sellafite tile.sellafield.3.name=Blazing Sellafite tile.sellafield.4.name=Infernal Sellafite tile.sellafield.5.name=Sellafite-Corium +tile.sellafield_bedrock.name=Bedrock Sellafite tile.sellafield_slaked.name=Slaked Sellafite tile.semtex.name=Semtex +tile.silo_hatch.name=Silo Hatch +tile.silo_hatch_large.name=Large Silo Hatch +tile.sliding_blast_door.name=Sliding Blast Door tile.solar_mirror.name=Heliostat Mirror tile.soyuz_capsule.name=Cargo Landing Capsule tile.soyuz_launcher.name=Soyuz Launch Platform tile.spikes.name=Spikes +tile.snowglobe.name=Snowglobe +tile.spotlight_incandescent.name=Cage Lamp +tile.spotlight_fluoro.name=Fluorescent Light +tile.spotlight_halogen.name=Halogen Floodlight tile.stalactite.asbestos.name=Asbestos Stalactite tile.stalactite.sulfur.name=Sulfurous Stalactite tile.stalagmite.asbestos.name=Asbestos Stalagmite @@ -5164,6 +6022,8 @@ tile.stone_cracked.name=Cracked Stone tile.stone_depth.name=Depth Rock tile.stone_depth_nether.name=Nether Depth Rock tile.stone_gneiss.name=Graphitic Schist +tile.stone_keyhole.name=Strange Stone +tile.stone_keyhole_meta.name=Strange Red Room Brick tile.stone_porous.name=Porous Stone tile.stone_resource.asbestos.name=Chrysotile tile.stone_resource.bauxite.name=Bauxite @@ -5171,6 +6031,7 @@ tile.stone_resource.hematite.name=Hematite tile.stone_resource.limestone.name=Limestone tile.stone_resource.malachite.name=Malachite tile.stone_resource.sulfur.name=Sulfurous Stone +tile.struct_icf_core.name=Inertial Confinement Fusion Reactor Core Component tile.struct_iter_core.name=Fusion Reactor Core Component tile.struct_launcher.name=Launch Pad Component Block tile.struct_launcher_core.name=Compact Launcher Core Component @@ -5214,6 +6075,7 @@ tile.turret_rocket.name=Rocket Turret tile.turret_richard.name=Rocket Launcher Turret "Richard" tile.turret_spitfire.name=Turret I have no name for right now [WIP] tile.turret_sentry.name=Sentry Turret "Brown" +tile.turret_sentry_damaged.name=Sentry Turret "Edwin" tile.turret_tau.name=Tauon Turret tile.turret_tauon.name=XVL1456 Prototype Turret "Tauon" tile.vacuum.name=Vacuum @@ -5227,6 +6089,7 @@ tile.vinyl_tile.small.name=Small Vinyl Tiles tile.vitrified_barrel.name=Vitrified Nuclear Waste Drum tile.volcanic_lava_block.name=Volcanic Lava tile.volcano_core.name=Volcano Core +tile.volcano_rad_core.name=Rad Volcano Core tile.waste_earth.name=Dead Grass tile.waste_leaves.name=Dead Leaves tile.waste_log.name=Charred Log @@ -5245,7 +6108,15 @@ tile.watz_end_bolted.name=Watz Reactor Stability Element (Riveted) tile.watz_hatch.name=Watz Reactor Access Hatch tile.watz_pump.name=Watz Pressure Pump tile.yellow_barrel.name=Radioactive Barrel -tile.zirnox_destroyed.name=Destroyed ZINROX +tile.zirnox_destroyed.name=Destroyed ZIRNOX + +tile.large_vehicle_door.name=Large Vehicle Door +tile.water_door.name=Water Door +tile.qe_containment.name=QE Containment Door +tile.qe_sliding_door.name=QE Sliding Door +tile.round_airlock_door.name=Round Airlock Door +tile.secure_access_door.name=Secure Access Door +tile.sliding_seal_door.name=Sliding Seal Door trait.asbestos=Asbestos trait.blinding=Blinding @@ -5324,6 +6195,23 @@ turret.off=OFF turret.on=ON turret.players=Target Players: %s +upgrade.acid=Acid required %s +upgrade.burn=Burn %smb/t for %sHE +upgrade.consumption=Consumption %s +upgrade.coolantConsumption=Coolant Consumption %s +upgrade.delay=Process time %s +upgrade.efficiency=Efficiency %s +upgrade.fortune=Fortune %s +upgrade.overheatChance=Overheat chance %s +upgrade.range=Range %s + +upgrade.gui.title=§lAcceptable Upgrades:§r +upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s +upgrade.gui.effectiveness= * §aEffectiveness§r: Stacks to level %s +upgrade.gui.overdrive= * §7Overdrive§r: Stacks to level %s +upgrade.gui.power= * §9Power-Saving§r: Stacks to level %s +upgrade.gui.speed= * §4Speed§r: Stacks to level %s + wavelengths.name.ir=Infrared wavelengths.name.visible=Visible Light wavelengths.name.uv=Ultraviolet @@ -5352,3 +6240,10 @@ weapon.elecGun.glass_cannon.visible=Visible Light weapon.elecGun.glass_cannon.uv=Ultraviolet Light weapon.elecGun.glass_cannon.xray=X-rays weapon.elecGun.glass_cannon.gamma=Gamma rays + +desc.gui.upgrade=§lAcceptable Upgrades:§r +desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 +desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 +desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 +desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 +desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 diff --git a/src/main/resources/assets/hbm/lang/fr_FR.lang b/src/main/resources/assets/hbm/lang/fr_FR.lang index 0635ab9d1..502021ea3 100644 --- a/src/main/resources/assets/hbm/lang/fr_FR.lang +++ b/src/main/resources/assets/hbm/lang/fr_FR.lang @@ -37,7 +37,7 @@ hbmfluid.heatingoil=Huile de chauffage hbmfluid.naphtha=Naphta hbmfluid.lightoil=Huile légÚre hbmfluid.petroleum=Gaz pétrolier -hbmfluid.acid=Peroxyde d'hydrogÚne +hbmfluid.peroxide=Peroxyde d'hydrogÚne hbmfluid.watz=Boue vénéneuse hbmfluid.biogas=Biogaz hbmfluid.biofuel=Biocarburant @@ -477,6 +477,9 @@ item.plate_titanium.name=Plaque en titane item.plate_aluminium.name=Plaque d'aluminium item.wire_red_copper.name=Fil de cuivre rouge item.neutron_reflector.name=Reflecteur neutronique +item.night_vision.name=Lunettes de vision nocturne +item.night_vision.description.item=Donne la vision nocturne (nécessite un set électrique complet) +item.night_vision.description.in_armor=%s (donne la vision nocturne) item.nugget_beryllium.name=Pépite de béryllium item.wire_aluminium.name=Fil d'aluminium @@ -913,6 +916,7 @@ item.grenade_strong.name=Grenade ameliorée item.grenade_frag.name=Grenade Frag item.grenade_fire.name=Grenade Frag incendiaire item.grenade_shrapnel.name=Grenade à fragmentation +item.grenate_cats.name=Grenade à chats item.grenade_cluster.name=Grenade à fragmentation item.grenade_flare.name=Flare item.grenade_electric.name=Grenade à éclairs diff --git a/src/main/resources/assets/hbm/lang/it_IT.lang b/src/main/resources/assets/hbm/lang/it_IT.lang new file mode 100644 index 000000000..c3d83825d --- /dev/null +++ b/src/main/resources/assets/hbm/lang/it_IT.lang @@ -0,0 +1,6234 @@ +achievement.acidizer.desc=oof ow la mia pelle +achievement.acidizer=Acido +achievement.assembly.desc=Aspetta, Ú già l'una di mattina? +achievement.assembly=La fabbrica cresce +achievement.FOEQ.desc=Invia un relÚ sull'orbita marziana... intendo l'orbita dunaiana. +achievement.FOEQ=Silos Pegasi e Missile +achievement.breeding.desc=Grazie, che dio ti benedica, e che dio benedica gli Stati Uniti di America. +achievement.breeding=Ironico +achievement.bismuth.desc=Ricordi quando le persone si sono lamentate di questo per un mese? Io ricordo. +achievement.bismuth=Bismuto +achievement.blastFurnace.desc=Hanno recuperato una corazzata affondata per l'Explorer 1. +achievement.blastFurnace=Carbone e ferro +achievement.bossCreeper.desc='Ci sono creeper nucleari? Esistono?!' +achievement.bossCreeper=Bomba su quattro gambe +achievement.bossMaskman.desc=Bonk il ragazzone? +achievement.bossMaskman=6 mesi di servizio obbligatorio e tutto quello che ho ottenuto Ú stata una maglietta schifosa +achievement.bossMeltdown.desc=Più terribile che fantastico, ma prendo quello che posso ottenere. +achievement.bossMeltdown=3.6 Roentgen +achievement.bossWorm.desc=Il Fabstaff. Fanculo. Fai i conti. +achievement.bossWorm=Smontando Balls-O-Tron +achievement.bossUFO.desc=Yo, cosa abbiamo qui? Un'enorme astronave che si avvicina alla nave-blocco? +achievement.bossUFO=Ayy Lmao +achievement.burnerPress.desc=La pressione prememendo su di me, su di te +achievement.burnerPress=Sotto Pressione +achievement.c20_5.desc=??? +achievement.c20_5=Capitolo [VENTI PUNTO CINQUE] +achievement.c44.desc=Zincato! Voglio dire, zinco! +achievement.c44=Capitolo 44 +achievement.centrifuge.desc=la forza centrifuga Ú finta non @ me +achievement.centrifuge=Forza centrifuga +achievement.chemplant.desc=Ora stai pensando con gli agenti chimici! +achievement.chemplant=La fabbrica cresce Pt. 2 +achievement.chicagoPile.desc="Com'erano i nativi?" / "Molto amichevoli." +achievement.chicagoPile=Il navigatore Ú atterrato nel Nuovo Mondo +achievement.concrete.desc=Il preferito di un Bolscevico. +achievement.concrete=Vecchio Affidabile +achievement.desh.desc="Venite da loro, voi tutti. Posti in cui andare!" +achievement.desh=Le Verrier +achievement.digammaFeel.desc=I miei occhi sanguinano +achievement.digammaFeel=MONDO DI RIFIUTI INFUSATI DA LIQUIDI FOGNARI +achievement.digammaKauaiMoho.desc=E' tutto orribile, prendi un pò di cioccolata calda. +achievement.digammaKauaiMoho=CANTA, CANTA INSIEME A ME LA CANZONE DEL KAUAI MOHO +achievement.digammaKnow.desc=Di cosa parla questo mondo. +achievement.digammaKnow=IL TERRORE DI CONOSCERE +achievement.digammaSee.desc=È un po' buio, portati una torcia. +achievement.digammaSee=ENTRA NELL'ABISSO. +achievement.digammaUpOnTop.desc=Ammira mio figlio, Ú un mio clone. +achievement.digammaUpOnTop=AMMIRAMI, AMMIRA CASA MIA +achievement.fiend.desc=Essere cattivo. +achievement.fiend2.desc=Essere più cattivo. +achievement.fiend2=Delinquente 2: Delinquente forte +achievement.fiend=Delinquente +achievement.freytag.desc=Il bagnino di Herold +achievement.freytag=Freytag +achievement.fusion.desc=Una danza di deuteroni, tritoni ed energia. +achievement.fusion=Fusione +achievement.gasCent.desc=L'uranio inarricchito mi odia! +achievement.gasCent=Lo stile Zippe +achievement.goFish.desc=Crocifissione nautica +achievement.goFish=Vai a pescare +achievement.hidden.desc=Uccidi un creeper infetto con un vagone merci. +achievement.hidden=Catalogo nascosto +achievement.horizonsBonus.desc=Onestamente a dio, cosa diavolo c'Ú che non va in te! +achievement.horizonsBonus=Diarrea slam Dunk +achievement.horizonsEnd.desc=Manda Tom a casa. +achievement.horizonsEnd=L'orizzonte +achievement.horizonsStart.desc=Mandate un ragazzo sulla luna. +achievement.horizonsStart=Apogeo +achievement.impossible.desc=Non puoi ottenere questo avanzamento. +achievement.impossible=Letteralmente impossibile +achievement.inferno.desc="Trasformateli in cenere! Se non basta! Lanciate più bombe!" +achievement.inferno=Operazione cannibale +achievement.manhattan.desc=8:15; 6 Agosto 1945 +achievement.manhattan=Il progetto Mannhattan +achievement.meltdown.desc=Sei arrivato cosi lontano, come hai fatto a fare un casino? +achievement.meltdown=Smontaggio rapido non programmato +achievement.no9.desc="Spero che il piombo che sto scavando venga usato per la tua vernice" +achievement.no9=Il vecchio numero nove +achievement.omega12.desc=Risolvi il problema della continuazione della vita su questo miserabile pianeta. +achievement.omega12=Accelleratore di particelle Omega-12 +achievement.polymer.desc=Deliziose, deliziose microplastiche. +achievement.polymer=Teflon +achievement.potato.desc=Mi hai pugnalato! COSA C'E' CHE NON VA IN-WOOOAAH +achievement.potato=AI canaglia +achievement.radDeath.desc=Marie Curie teorizzò la radioattività, il trattamento da essa, e la morte con quest'ultima. +achievement.radDeath=Ahia, le radiazioni! +achievement.radium.desc=SEI LICENZIATO PER AVERMI MESSO DEL RADIO NEL CAFFE'! +achievement.radium=MISTER INCREDIBLE +achievement.radPoison.desc=Soffrire dall'effetto delle radiazioni. +achievement.radPoison=Siii, Radiazioni! +achievement.RBMKBoom.desc=Qual'Ú il costo delle bugie? +achievement.RBMKBoom=Sono 15,000. +achievement.RBMK.desc=Ú deludente, portatelo in infermeria. +achievement.RBMK=3.6 Roentegen? +achievement.redBalloons.desc="Questo Ú quello che abbiamo aspettato. E' questa, ragazzi, Ú la guerra." +achievement.redBalloons=99 Palloncini rossi +achievement.redRoom.desc=? +achievement.redRoom=L'altra parte +achievement.sacrifice.desc=Affronta il fuoco e vivi. +achievement.sacrifice=Sororicidio +achievement.schrab.desc=A prescindere, non lo guarderei così a lungo. +achievement.schrab=Isola della stabilità +achievement.selenium.desc=Yeah. +achievement.selenium=XVIII La luna +achievement.SILEX.desc=E' più figo di quanto tu immagini, promesso. +achievement.SILEX=Separazione di isotopi mediante eccitazione laser +achievement.slimeball.desc= +achievement.slimeball=Dovrei immergere le mie palle nell'acido solforico. +achievement.stratum.desc=Premi il freno, Mitts. +achievement.stratum=Strato +achievement.someWounds.desc=Preparati +achievement.someWounds=Alcune ferite non guariscono mai +achievement.soyuz.desc=Diventare croccante. +achievement.soyuz=Patata cotta +achievement.space.desc=Fallisci in ogni modo possibile e sperpera oltre 90 milioni di dollari di fondi. +achievement.space=Il fronte finale... ah, dimenticatelo +achievement.sulfuric.desc= +achievement.sulfuric=Non avrei dovuto immergere le mie palle nell'acido solforico. +achievement.tantalum.desc=Un elemento sfuggente, ma necessario. +achievement.tantalum="Tantalio" +achievement.tasteofblood.desc=Non Ú parte di nessun test di protocollo. +achievement.tasteofblood=Il sapore del sangue +achievement.technetium.desc=E' medicinale, Ú medicinale! +achievement.technetium=Grande uomo, Uomo maiale +achievement.watzBoom.desc=Svuota la tua fossa settica la prossima volta. +achievement.watzBoom=Disgustoso +achievement.watz.desc=Campo Fólkvangr possibilmente incluso. +achievement.watz=La potenza dell'elemento-126 +achievement.witchtaunter.desc=Quelle stravaganti creature non hanno niente su di te! +achievement.witchtaunter=Provocatore di streghe +achievement.ZIRNOXBoom.desc=Far fronte, ribollire, cattivo +achievement.ZIRNOXBoom=CIRNOX + +armor.blastProtection=Danno dalle esplosioni modificato del %s +armor.cap=Limite di danno duro del %s +armor.damageModifier=Modifica del danno del %s contro %s +armor.dash=Concesso %s gli slanci +armor.electricJetpack=Jetpack ionico +armor.explosionImmune=Non può subire alcun danno ad eccezione delle esplosioni +armor.fasterReload=Ricarica veloce +armor.fastFall=Caduta veloce +armor.fireproof=Ignifugo +armor.fullSetBonus=Bonus set completo: +armor.geigerHUD=HUD del contatore geiger montato sopra +armor.geigerSound=Contatore geiger uditorio +armor.glider=Chinati per planare +armor.gravity=Modificazione della gravita del %s +armor.hardLanding=Caduta forte +armor.ignoreLimit=Resistenza non Ú affetta dalla resistenza limite +armor.modifier=Modifica del danno generale del %s +armor.moreAmmo=Più munizioni +armor.nullDamage=Nullifica il danno da %s +armor.projectileProtection=Modifica del danno del %s contro i proiettili +armor.rocketBoots=Stivali razzo +armor.sprintBoost=Corsa potenziata +armor.stepSize=Dimensione del passo: %s +armor.thermal=Visione notturna +armor.threshold=Soglia di danno del %s +armor.vats=HUD del nemico +armor.yield=La protezione si applica ai danni da <%s + +armorMod.all=Tutto +armorMod.applicableTo=Applicabile a: +armorMod.boots=Stivali +armorMod.chestplates=Corazze +armorMod.helmets=Elmetti +armorMod.insertHere=Inserisci l'armatura da modificare... +armorMod.leggings=Gambiere +armorMod.type.boots=Stivali +armorMod.type.chestplate=Corazza +armorMod.type.cladding=Rivestimento +armorMod.type.helmet=Elmetto +armorMod.type.insert=Inserisci +armorMod.type.leggings=Gambieri +armorMod.type.servo=Servo +armorMod.type.special=Speciale + +battery.mode.buffer=Modalità input/output +battery.mode.input=Modalità input +battery.mode.off=OffW +battery.mode.output=Modalità output +battery.priority.high=Priorità di carica: alta +battery.priority.high.desc=I buffer di emergenza$devono essere sempre pieni +battery.priority.low=Priorità di carica: bassa +battery.priority.low.desc=In molti casi d'uso$l'energia in eccesso dev'essere imagazzinata senza$influenzare le prestazioni della macchina +battery.priority.normal=Priorità di carica: normale +battery.priority.normal.desc=per reti elettriche più piccole dove$non c'Ú bisogno di priorità +battery.priority.recommended=Raccomandato per: +battery.redstone.off=Redstone OFF +battery.redstone.on=Redstone ON + +bomb.detonated=Detonato con successo! +bomb.incompatible=Il dispositivo non può essere attivato! +bomb.launched=Lanciato con successo! +bomb.missingComponent=Componente mancante! +bomb.nobomb=La posizione associata Ú incompatibile o non caricata! +bomb.triggered=Attivato con successo! + +book.test.cover=COME FARE SESSO +book.test.page1=PAGINA TEST 1 + +book.error.cover=Collisore di ardoni:$Risoluzione dei problemi +book.error.title1=Errore 0x01 [NC] +book.error.page1=§lNome:§r "ERRORE_NO_CARICA" §lDescrizione:§r La particella ha raggiunto un segmento con insufficiente carica. §lPossibile soluzione:§r Sostituisci una delle spine che la particella supera con successo con quelli di livello superiore o aggiungi un altra spina leggermente prima del segmento in cui la particella scompare. +book.error.title2=Errore 0x02 [NA] +book.error.page2=§lNome:§r "ERRORE_NO_ANALISI" §lDescrizione:§r La particella a raggiunto il nucleo, nonstante non abbia raggiunto la camera d'analisi. §lPossibile soluzione:§r Assicurati che il tuo accelleratore abbia la camera d'analisi e ricontrolla la modalità d'operazione(lineare/circolare). +book.error.title3=Errore 0x03 [OC] +book.error.page3=§lNome:§r "ERRORE_CANALE_OSTRUITO" §lDescrizione:§r La particella si Ú schiantata su un blocco all'interno della canale di collisione. §lPossibile soluzione:§r Assicurati che dentro il collisore di partecelle sia libero senza ostruzioni, ad eccezzione dei diodo a particelle e dei blocchi centrali. +book.error.title4=Errore 0x04 [EC] +book.error.page4=§lNome:§r "ERRORE_BOBINA_PREVISTA" §lDescrizione:§r La particella ha passato un punto in cui manca una o più bobine. §lPossibile soluzione:§r Rimuovi tutte le piastre dell'acceleratore e controlla se tutte le bobine sono lì. Questo errore può anche accadere facendo il T-crossing, dove non c'Ú il diodo. +book.error.title5=Errore 0x05 [MS] +book.error.page5=§lNome:§r "ERRORE_SEGMENTO_MALFORMATO" §lDescrizione:§r La particella ha passato un punto costruito male (ma non ostruito o con bobine mancanti). §lPossibile soluzione:§r Assicurati che ci siano tutte le piastre e che tutte le bobine sono coperte da esse. +book.error.title6=Errore 0x06 [ATL] +book.error.page6=§lNome:§r "ERRORE_ANALISI_TROPPO_LUNGA" §lDescrizione:§r La particella ha passato più di tre blocchi richiesti per la camera d'analisi. §lPossibile soluzione:§r Assicurati che la camera d'analisi sia lunga 3 blocchi ne caso delle operazioni circolari e 2 per quelli lineari. Inoltre controlla che la particella non passi in più camere d'analisi. +book.error.title7=Errore 0x07 [ATS] +book.error.page7=§lNome:§r "ERRORE_ANALISI_TROPPO_CORTA" §lDescrizione:§r La particella a sorpassato la camera d'analisi, data la sua corta lunghezza. §lPossibile soluzione:§r Assicurati che la camera d'analisi sia lunga 3 blocchi ne caso delle operazioni circolari e 2 per quelli lineari. Le camere d'analisi non hanno le bobine e assicurati di usare le piastre e finestre per la camera d'analisi. Le camere d'analisi con le bobine dentro, contano come segmenti regolari. +book.error.title8=Errore 0x08 [DC] +book.error.page8=§lNome:§r "ERRORE_COLLISIONE_DIODO" §lDescrizione:§r La particella si Ú scontrata con con la parte non input del diodo. §lPossibile soluzione:§r Controlla che il diodo sia configurato correttamente. Le particelle possono entrare soltanto dalla parte con le frecce verdi che indicano dentro. +book.error.title9=Errore 0x09 [BT] +book.error.page9=§lNome:§r "ERRORE_RAMIFICAZIONE_CURVA" §lDescrizione:§r La particella ha raggiunto una curva con più uscite. §lPossibile soluzione:§r Se la curva Ú normale, controlla se ci sono tutte le bobine richieste (N.B. non ci dev'essere nessun buco che esponga le bobine). Se la curva dev'essere con più uscite, richiede un diodo a particelle schottky configurato correttamente. +book.error.cover=Hadron Collider:$Troubleshooting +book.error.title1=Error 0x01 [NC] +book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.title2=Error 0x02 [NA] +book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.title3=Error 0x03 [OC] +book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.title4=Error 0x04 [EC] +book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.title5=Error 0x05 [MS] +book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.title6=Error 0x06 [ATL] +book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.title7=Error 0x07 [ATS] +book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.title8=Error 0x08 [DC] +book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.title9=Error 0x09 [BT] +book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. + +book.rbmk.cover=Il mio primo RBMK:$Basi per$costruire un$reattore +book.rbmk.title1=Introduzione +book.rbmk.page1=§lRBMK§r Ú un reattore nucleare completamente modulare. A differenza degli altri reattori, non c'Ú nessun nucleo o limite di costruzione, piuttosto il comportamento e l'efficienza e data da com'Ú costruito il reattore e come interagiscono le parti tra loro. +book.rbmk.title2=Calore +book.rbmk.page2=Come il reattore va, tende a generare §lcalore§r. Il calore si diffonderà tra le parti, diminuendo lentamente nel processo di fissione. L'obiettivo Ú quello di generare più calore possibile senza fondere il reattore, e trasferire esso nelle caldaie per raffreddate il reattore e produrre vapore. +book.rbmk.title3=Barre di combustibile +book.rbmk.page3=Le §lbarre di combustibile§r tendono a catturare il flusso di neutroni, causando al combustibile di reagire, rilasciando neutroni nel processo. I neutroni sono rilasciati in tutte e 4 le principali vie per un massimo di 5 blocchi. Il quantitativo di neutroni rilasciati, dipende dal combustibile usato. +book.rbmk.title4=Barre di regolazione +book.rbmk.page4=Le §lbarre di regolazione§r tendono a ridurre il numero di neutroni durante il passaggio. Quando sono completamente inserite, bloccano il passaggio di neutroni; Quando sono le barre sono parzialmente inserite, ne bloccano la metà di essi. Le barre di controllo sono un metodo per regolare i neutroni e anche per spengere il reattore. +book.rbmk.title5=Barre di regolazione - Usi +book.rbmk.title5.scale=0.9 +book.rbmk.page5=La barra attualmente inserita verrà visualizzata al centro della GUI. I bottoni colorati, alla sinistra della barra di controllo, gli daranno il gruppo di quel colore, e ciò può tornare utile quando si devono selezionare le barre, apparteneti a un certo gruppo, del §lRBMK§r dalla console di comando. I bottoni a destra permettono di inserire manualmente le barre con un incrementi del 25%%. +book.rbmk.title6=Barre di controllo automatiche +book.rbmk.page6=§lLe barre di controllo automatiche§r sono quasi identiche a quelle normali, ma non possono essere aggiustate manualmente, infatti si aggiusteranno da sole in base alla temperatura. Innanzitutto Ú necessario determinare quale funzione utilizzare, a quale profondità inserirla e a quale temperatura. +book.rbmk.title7=Caldaie +book.rbmk.page7=Le §lcaldaie§r Ú lu'unica parte attiva per il raffreddamento del reattore. Se il componente Ú al di sopra della temperature di ebollizione richiesta dal tipo di vapore, consumerà il quantitativo d'acqua necessario per portare la temperatura al di sotto di quella di ebollizione. +book.rbmk.title8=Riflettore di neutroni +book.rbmk.page8=il §lriflettore di neutroni§r bloccherà il passaggio di neutroni, di fatto verranno riflessi indietro, dalla barra di combustibile da cui provenivano. Può tornare molto utile per non sprecare neutroni inutilmente. +book.rbmk.title9=Assorbitore di neutroni +book.rbmk.page9=L'§lassorbitore di neutroni§r blocca i neutroni. I neutroni assorbiti non genereranno calore e saranno distrutti efficientemente. Questa funzionalità Ú utile per evitare di far reagire i neutroni con gli atomi del combustibile. +book.rbmk.title10=Ritardante in grafite +book.rbmk.page10=Il §lmoderatore in grafite§r converte i neutroni veloci in lenti quando essi ci passano attraverso. Molti conbustibili nucleari tendono a rilasciare neutroni veloci, mentre i neutroni lenti sono quelli necessari per la fissione, quindi l'uso di moderatori Ú altamente consigliato. +book.rbmk.title11=Colonne strutturali +book.rbmk.page11=Le §lcolonne strutturali§r non fanno nulla ai neutroni e non hanno nessun effetto speciale. E' raccomandato di riempire le parti vuote del reattore con le colonne strutturali, siccome possono trasferire il calore. +book.rbmk.title12=Console di comando +book.rbmk.page12=La §lconsole di comando§r del RBMK permette di controllare il reattore a distanza. Usando il §ldispositivo per connettere la console§r su una parte del RBMK e successivamente alla console, il reattore sarà collegato ad esso. La console di comando può controllare fino ad un massimo di 15x15 (per reattori più grandi dovrai usare più console). +book.rbmk.title13=Usi della console +book.rbmk.page13=Cliccare sulle parti del reattore permette di selezionare o deselezionare essa. Con i bottoni colorati potrai selezionare velocemente tutte le barre di controllo apparteneti a quel gruppo colorato. Il bottone "A" selezionerà tutte le barre di controllo, invece la "X" le deselezionerà. +book.rbmk.page14=Inserendo un numero da 0 a 100 innalzera tutte le barre di controllo selezionate a quella percentuale. Il bottone "AZ-5" inserirà tutte le barre, fino a raggiungere lo 0%%. +book.rbmk.title15=Combustibile nucleare +book.rbmk.page15=La risposta del §lcombustibile nucleare§r dipende da molti fattori. Alcuni dei pricipali sono la §lfortificazione§r, §ll'avvelenamento da xenon§r e il numero di §lneutrons§r in arrivo. Lo xenon tende a formarsi quando il combustibile non ha abbastanza neutroni e durante le normali operazioni, esso brucia. L'efficenza dei neutroni dipende dal combustibile, molti combustibili §lsi scissionano meglio con§r i §lneutroni lenti§r. +book.rbmk.title16=Fusione +book.rbmk.page16=§4§lEVITALA. + +book.starter.cover=$Guida su come ricostruore$una società industrializzata +book.starter.title1=Introduzione +book.starter.page1=Se stai leggendo questo libro, significa che molto probabilmente, in un modo o in un altro, la società Ú collassata. Governi, paesi e autorità sono concetti del passato - insieme ai servizi della vita civilizzata. Questa guida ti insegnerà a ricostruire la società e tutti la tecnologia e le macchine che ti cambieranno la vita. +book.starter.title2=Carbone e gas mostarda +book.starter.page2=Mentre Ú impossibile definire lo stato del mondo in un tempo post-apocalittico, non Ú improbabile che la guerra e l'industria siano finite. Per proteggere i tuoi polmoni, un modo efficace ed economico Ú quello di urinare sulla §lstoffa§r per creare una §lmaschera da trincea§r,per proteggerti dalla polvere di carbone e dal gas mostarda, se mai dovessi incontrarli. +book.starter.title3=Incudini e presse +book.starter.page3=La quintessenza per iniziare a revitalizzare l'industria, Ú un §lincudine§r e una §lpressa§r. L'incudine ti permette di creare machinnari iniziali come ad esempio l'asseblatore, mentre la pressa ti permette di creare piastre, fili e circuitit che non puoi assemblarli nell'incudine. +book.starter.title4=Modelli +book.starter.page4=In ordine per stampare i metalli in forme utili, assemblare macchinari ed eseguire reazioni chimiche, avrai bisogno di creare una §lcartella per modelli macchina§r per creare vari stampi e modelli. +book.starter.title5=Scavo +book.starter.page5=A seconda di quanto grave sia stato l'evento apocalittico iniziale per le strutture preesistenti del mondo, c'Ú una buona probabilità che pezzi e macchine possono essere riparati o salvati. Leghe metalliche come l'acciaio, parti come circuiti, e anche materiali fissili da centrali nucleari ti aspettano. Tuttavia, attenzione ad alcune rovine, ci puo essere un eccesso di pericolo come ad esempio un serpente nell'erba; pronto a mandarti K.O. con le radiazioni, trappole, o orrori indescrivibili... +book.starter.title6=Primi macchinari +book.starter.page6a=Due macchinari che dovresti assemblare subito sono l'§laltoforno§r l' §lassemblatore§r. L'altoforno ti permetterà di creare leghe come l'§lacciaio§r, §lrame di tipo minecraft§r e la §llega avanzata§r; tu avrai ne avrai bisogno per costruire i corpi delle macchine, i filamenti dei circuiti, elettromagneti avanzati e molto di più. +book.starter.page6b=L'assemblatore serve per create praticamente tutte le macchine descritte in questa guida. Avrai bisogno di una risorsa energetica, come ad esempio un §lgeneratore§r a §lcombustione§r o di una §lcaldaia solare§r. +book.starter.page7a=Il §ltrituratore§r, insieme ad un paio di lame, sarà molto utile per raddoppiare la resa del minerale, triturando in polveri fondibili. Queste polveri sono anche cruciali nella creazione di circuitit, come ad esempio i circuito §lmigliorato§r e l'§lovercloccatod§r. +book.starter.page7b=Usando i tuoi macchinari, puoi creare §lImpianti chimici§r, usati per la sintetizzazione di circuiti migliori, cemento, il processo petrolchimico e di più. +book.starter.title8=Oro nero +book.starter.page8a=Usando un §lrilevatore di petrolio§r, puoi trovare depositi sotteranei, sopra i quali dovrai piazzare una §lpompa petrolifera§r o una §ltorre derrick§r. Ricordati che col tempo il deposito di petrolio finirà. +book.starter.page8b=Prima che il petrolio possa essere raffinato e separato in una §lraffineria§r, lo devi riscaldare a 300°C in una §lcaldaia§r. +book.starter.title9=Prodotti petrolchimici +book.starter.page9=Usando un'§limpianti chimici§r, §ltorri di frazionamento§r e §ltorri di cracking catalitico§r, puoi trasformare i prodotti del petrolio raffinari in altri prodotti ancora più utili. Per esempio: §lPolimerir§r o §lBakelite§r, plastica flessibile e duratura; §lDesh§r, una lega metallica di terre rare molto resistente alle temperature; §lcombustibile solido§r, che può essere bruciato per l'energia; o anche §lcombustibile liquido§r, come §lgasolio§r, §ldiesel§r, §lkerosene§r e di più. +book.starter.title10=Macchinari avanzari +book.starter.page10=Con la lavorazione del petrolio nelle tue mani, puoi creare §lcentrifughe§r, che triplica la resa dei minerali; l'§lacidificatore§r, col quale cristallizzi i metalli, aumentando il tuo rendimento; e il §lSILEX + §lFEL§r, due meraviglie dell'ingegneria moderna che possono separare isotopi di materiali con sollievo. Avrai bisogno di più energia per alimentare questi nuovi macchinari; che può essere ottenuto da generatori come: §lgeneratori a diesel§r,§lgeneratori industriali§r, o anche reattori nucleari. +book.starter.title11=Strati +book.starter.page11=Sotto la terra in cui cammini, ci sono diversi §lStrati§r naturali, o minerali speciali e formazioni. Gli §lstrati di scisto§r sono blu, strati conteneti litio e riempiti di uranio, ferro, rame, amianto e altri minerali adatti al tuo uso. Le §lRoccie profonde§r contengono grandi quantita di minerali rari, come §lzirconio§r e §lboro§r, ma richiedono esplosivi per ottenerli. +book.starter.title12=Radiazioni +book.starter.page12a=§oIl resto del libro involverà materiali riguardanti le §oradiazioni. Per la tua sicurezza e degl'altri, ti darò §oconsigli su come mitigare e combattere le radiazioni. +book.starter.page12b=Un alta esposizione alle radiazioni può e ti causera danni corporei. Il primo passo per la prevenzione; Ú di assicurarsi di limitare l'esposizione ed indossare indumenti protettivi, come la §lTuta hazmat§r, o applicare §lRivestimenti§r sui vestiti o armature; puoi anche prendere il §lRad-X§r per limitare assunzione. Grazie alla medicina moderna, il secondo step può essere rimosso in caso di necessità; per esempio, un §lDecontaminatore del §lplayer§r riduce lentamente le radiazioni assorbite dal tuo corpo. §lRad-Away§r può essere utilizzato anche come profilassi post-esposizione, riduce velocemente ed effettivamente il danno da esposizione da radiazioni. +book.starter.title13=Arricchimento dell'uranio +book.starter.page13=Ci sono alcuni metodi facili per alimentare un reattore nucleare; ad esempio, l'§luranio naturale§r o il §lcombustibile al torio§r. Tuttavia, se stai cercando per qualcosa di più potente, puoi creare una cascata di arricchimento di due §lcentrifughe a gas§r per produrre §lcombustibile all'uranio§r con uno scarto di §lUranio-238§r. Dovrai trasmutare l'uranio in §lpangaillo§r, poi in §lesafluoruro di §luranio§r. +book.starter.title14=La pila Chicago +book.starter.page14=Alternativamente, puoi generare il §lplutonio di grado reattore§r, un combustibile più potente, dall'uranio naturale usando la §lpila Chicago§r. Sovrapponendo blocchi di grafite e trivellandoli, puoi inserire barre di combustibile da riproduzione per generare plutonio e fonti di neutroni, come il §lRadio-Berillio§r, per iniziare la reazione. Assicurati di testare i tuoi design; potrebbe essere necessario distanziare o limitare la quantità di blocchi per evitare il surriscaldamento. +book.starter.title15=ZIRNOX GCR +book.starter.page15=Finalmente, puoi creare la tua prima §overa§r fonte di energia: Il reattore nucleare §lZIRNOX§r. I reattori nucleari richiedono una sistemazione maggiore rispetto alle altre fonti di energia; per primo, avrai bisogno di una buona risorsa d'aqua, come il §lSerbatoio dell'acqua infinito pesante§r. Per rimuovere calore da reattore e per far bollire l'acqua, avrai bisogno di §lmonossido di carbonio§r. Dovrai creare una forte pressione, ma non §otroppa§r. Avrai anche bisogno di 3 turbine a vapore per produrre energia dal vapore prodotto; le §lturbine a vapore§r o le §lturbine a vapore industriali§r saranno ottime. Infine, un §lCondensatore§r o una §ltorre di raffreddamento ausiliaria§r servirà per condensare il vapore rimasto in acqua, dove può essere eliminato o riciclato in un circuito di raffreddamento. +book.starter.title16=Conclusione +book.starter.page16=Se sei arrivato così lontano, sei sulla strada per la ricostruzione della civilizzazione. Hai ricreato macchinari avanzati pre-apocalittici - con energia nucleare, prodotti petrolchimici e di più. Non posso sapere §ocome§r utilizzerai questi nuovi vantaggi, ma Ú mia personale speranza che tu li usi per il bene tuo e degli altri - o almeno per legittima difesa. Au revoir! +book.starter.title18=Qualcosa sull'autore +book.starter.page18=vÊr Ú solo un ragazzo rimasto intrappolato nel vuoto grigio presente nei Talking Head §oUna volta nella vita§r molto a lungo. Una volta trovò la porta di uno studio, ma con suo sgomento scoprì che era un ritaglio di cartone. +book.starter.cover=An Industrialist's$Guide to Rebuilding$Society +book.starter.title1=Introduction +book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. +book.starter.title2=Coal & Mustard Gas +book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. +book.starter.title3=Anvils & Presses +book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. +book.starter.title4=Templates +book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. +book.starter.title5=Scavenging +book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... +book.starter.title6=Early Machinery +book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. +book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. +book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. +book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. +book.starter.title8=Black Gold +book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. +book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. +book.starter.title9=Petrochemicals +book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. +book.starter.title10=Advanced Machinery +book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. +book.starter.title11=Strata +book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. +book.starter.title12=Radiation +book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. +book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.title13=Uranium Enrichment +book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. +book.starter.title14=The Chicago Pile +book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.title15=ZIRNOX GCR +book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. +book.starter.title16=Conclusion +book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! +book.starter.title18=About the Author +book.starter.page18=vÊr is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. + +#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction +#book.rbmk.title1=Introduction +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.title2=Heat +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.title3=Fuel Rod +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.title4=Control Rod +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.title5=Control Rod - Usage +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.title6=Automatic Control Rod +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.title7=Steam Channel +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.title8=Neutron Reflector +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.title9=Neutron Absorber +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.title10=Graphite Moderator +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.title11=Structural Column +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.title12=Console +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.title13=Console Usage +#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. +#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. +#book.rbmk.title15=Fuel +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.title16=Meltdown +#book.rbmk.page16=§4§lAvoid. + +book_lore.author=Di %s +book_lore.test.name=questo libro non funziona... +book_lore.test.author=io ti ho trollato eheh :3c +book_lore.test.page.0=>ciao anonimi, prima di iniziare vorrei chiarire che non sono gay. >Sii me >Questa notte >18 > Uscendo con il mio migliore amico senza i miei genitori per alcuni giornis >Siamo migliori amici ormai da un anno >Abbiamo bevuto un po', giocato a molti videogiochi e ordinato una pizza >Ci stavamo divertendo molto >A un certo punto della notte, verso le 9:00, fa una cosa davvero divertente battuta che non ricordo ma so che ci ha fatto ridere tantissimo tutti e due > Senza pensarci passo la mano destra tra i suoi capelli neri semiricci e lo chiamo ragazzo simpatico > Lui arrossisce > Mi rendo conto che mi sento agitato >Siamo abbastanza vicini >All'improvviso lui mi bacia e per qualche motivo io lo bacio >Facciamo l'amore >Ci coccoliamo insieme e ci addormentiamo >Svegliarsi nel cuore della notte con la sua testa rannicchiata sul mio petto e zona del collo >È stato bello ma non sono omosessuale. +book_lore.test.page.1=Lo scrivo mentre lui dorme tra le mie braccia. Come posso deludere bene il mio migliore amico? Non voglio essere un [censurato] /b/ +book_lore.author=By %s +book_lore.test.name=this book doesn't work... +book_lore.test.author=me i trolled you hehe :3c +book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual +book_lore.test.page.1=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ +book_lore.test.page.2=3 +book_lore.test.page.3=4 +book_lore.test.page.4=5 + +book_lore.book_iodine.name=Note +book_lore.book_iodine.author=Dave +book_lore.book_iodine.page.0=non ci crederete a questo, ma il vecchio weathervane finalmente Ú riuscito a farsi vivo di nuovo da quando se n'Ú andato due settimane fa e la cosa più sorprendente Ú il fatto che in realtà abbia deciso di vuotare il sacco su quello che stavano facendo nel canyon: +book_lore.book_iodine.page.1=apparentemente i deficienti della ricerca e sviluppo hanno scoperto un composto per la maggior parte inorganico, quasi come una tossina nella natura, ma senti questo: le cellule morenti riprodurranno detta tossina e la espelleranno attraverso la pelle, creando un'aereosol altamente contagioso. +book_lore.book_iodine.page.2=Ú simile ad un virus, ma non Ú un virus. La composizione Ú strana, puoi mischiarlo in una qualsiasi bottiglia in casa ma devi fare nel giusto ordine. Il dottore mi ha detto che il primo ingrediente, che Ú la polvere di iodio, va nello slot %d + +book_lore.book_phosphorous.name=Note +book_lore.book_phosphorous.author=Dave +book_lore.book_phosphorous.page.0=ehi, sono io ancora. assumo che tu abbia preso l'ultimo memo, il dottore non era molto felice di questo. L'ho dovuto fare veloce, gli idioti della ricerca e sviluppo stanno ancora gemendo, probabilmente per mancanza di fondi; di nuovo. Comunque, doc Weathervane ha scoperto che il secondo +book_lore.book_phosphorous.page.1=ingrediente Ú il fosforo rosso, che va mischiato nello slot %d + +book_lore.book_dust.name=Note +book_lore.book_dust.author=Dave +book_lore.book_dust.page.0=il dottore si Ú incazzato quando ha scoperto che gli idioti della ricerca e sviluppo si sono tenuti l'unico esemplare, inveendo di negligenza grave questo e di uno scenario apocalittico quello. Gli ho detto di freddarsi un minuto, arrabbiarsi a quella maniera non Ú buono per la sua pressione sanguignia, non +book_lore.book_dust.page.1=che gli sia rimasto molto sangue per cominciare. uno dei deficienti della ricerca e sviluppo ha inserito qualche informazione in più nella circolare della scorsa settimana, chiamano il loro piccolo intruglio "MKU" qualunque cosa significhi, e che contenga vera lanugine domestica. Puoi crederci? una delle più +book_lore.book_dust.page.2=loro invenzioni pericolose e contiene polvere. stranamente hanno mensionato che va messa nello slot %d + +book_lore.book_mercury.name=Note +book_lore.book_mercury.author=Dave +book_lore.book_mercury.page.0=beh, questo risolve il problema. Senza contare la parte dove si vomita sangue, i reperti tossicologici dichiarano che sia avvelenamento da mercurio. perchÚ? perchÚ il piccolo mix contiene mercurio! mi chiedo solo da dove venga tutta quella roba quando viene +book_lore.book_mercury.page.1=replicata dal corpo? Comunque, il mercurio va nello slot %d + +book_lore.book_flower.name=Note +book_lore.book_flower.author=Dave +book_lore.book_flower.page.0=ricordi quando ho menzionato nel mio primo memo che il composto Ú per lo più inorganico? bene, indovina un po', il vecchio ci ha detto il 4° ingrediente: l'ipomoea nil, un genere di fiore. Gloria mattutina! potrebbe essere dovuto al suo basso contenuto di zolfo,qualunque sia il caso, +book_lore.book_flower.page.1=non fuziona con gli altri fiori. La gloria mattutina va nello slot %d + +book_lore.book_syringe.name=Note +book_lore.book_syringe.author=Dave +book_lore.book_syringe.page.0=un piccolo addendum per il 5° memo, ovviamente il MKU va messo in un piccolo contenitore. i fanatici della ricerca e sviluppo utilizzavano normali siringhe metalliche ottenute dal settore medico. presumo che il materiale in eccedenza abbia migliaia di aghi in giro. Il metallo +book_lore.book_syringe.page.1=metallica va nello slot %d + +book_lore.resignation_note.name=Lettera di dimissioni +book_lore.resignation_note.author=Kosma +book_lore.resignation_note.page.0=Ieri la direzione ha nuovamente ridimensionato il nostro dipartimento. Quegli idioti possono incolpare solo se stessi, non so cosa si aspettassero dopo quel fiasco. Chi diavolo fa trapelare questo tipo di informazioni? Stiamo perdendo milioni e +book_lore.resignation_note.page.1=sono IO quello che se ne deve andare . Sono IO quello a cui viene chiesto di dimettersi. Spero che voi stronzi finalmente impariate dalla sovrabbondanza di errori e toglietevi quel bastone dal culo. +book_lore.resignation_note.page.2=Non tornero venerdì. Mandatemi soltanto la bustapaga. + +book_lore.memo_stocks.name=Memorandum intrasocietario +book_lore.memo_stocks.page.0=Relazioni con gli investitori - $ $ Ci sono state alcune evidenti discrepanze nelle cifre fornite per l'ultimo rapporto trimestrale. Sarebbe prudente che il dipartimento finanziario apportasse alcune modifiche, quindi non ci saranno preoccupazioni. + +book_lore.memo_schrab_gsa.name=Nota interna +book_lore.memo_schrab_gsa.page.0=Gestione dei contratti - $ $ Legal ha fatto una svolta con la DLA. Ci hanno assegnato un programma di 45 MILIARDI di GSA per ulteriori acquisti e ricerche su saralloy. Secondo le stime attuali, sarebbe il minimo +book_lore.memo_schrab_gsa.page.1=un profitto del 40%% sulle operazioni correlate, per non parlare della possibilità di contratti futuri. A causa della natura riservata, tutte le prove fiscali devono rimanere private. + +book_lore.memo_schrab_rd.name=Nota interna +book_lore.memo_schrab_rd.page.0=Ricerca e sviluppo - $ $ Il nostro metodo principare per la produzione di saralloy Ú il nuovo accelleratore di partecelle. Nonostante ciò, i costi dell'energia sono altamente esorbitanti rispetto a quanto otteniamo. +book_lore.memo_schrab_rd.page.1=Dottor Schrabauer, comunque, ha scoperto una nuova interazione - chiamata "Strana oscillazione leptonica" - che può ridurre significativamente i costi. Attraverso un processo non del tutto compreso, gli elettroni forniti vengono trasmutati in estremamente in +book_lore.memo_schrab_rd.page.2=fotoni ad alta energia, attraverso uno strano fascino. Questa Ú un'eccezione estrema a molte leggi consolidate sulla conversione delle particelle, ma esperimenti preliminari hanno dimostrato che questi protoni si trasmutano in quark up e down, creando infine saralloy. +book_lore.memo_schrab_rd.page.3=Stranamente, il prototipo richiede tungsteno legato con piccole quantità di saralloy. In aggiunta, uno speciale condensatore Ú richiesto per negare cariche positive. + +book_lore.memo_schrab_nuke.name=Rapporto di ricerca +book_lore.memo_schrab_nuke.author=Doctor Schrabauer +book_lore.memo_schrab_nuke.page.0=La nostra più recente ricerca riguarda gli effeti delle esplosioni nucleari sui materiali. Grazie al denaro della nostra sovvenzione, abbiamo testato *accidentalmente* la nostra teoria sulla sintesi diretta del saralloy dall'uranio. +book_lore.memo_schrab_nuke.page.1=Solo il nostro ciclotrone ha effettivamente creato saralloy. Tuttavia, durante la nostra ripresa sotterranea a Everwerpen, miniscule tracc di saralloy sono state trovate sui minerali d'uranio, proprio sul sito della detonazione. Tutti puri, l'uranio metallico nelle vicinanze si era sottoposto a fissione. +book_lore.memo_schrab_nuke.page.2=Pertanto, data una quantità sufficiente di minerale di uranio concentrato attorno a un esplosivo, o forse anche a una bomba sporca ricca di rifiuti contenenti materiale fissile, si potrebbe ipoteticamente creare abbastanza saralloy da raccogliere manualmente. + +book_lore.bf_bomb_1.name=Note private +book_lore.bf_bomb_1.author=M. Porter +book_lore.bf_bomb_1.page.0=Ci Ú voluto abbastanza tempo, ma il mio trasferimento Ú stato accettato. Quei neolaureati erano già difficili da gestire, per non parlare di tutta la mancanza di professionalità del protagonista. $ Non tutte buone notizie - questo laboratorio nascondeva ulteriori dettagli e non avevo bisogno di ulteriore caos per un'altra nuova, magica scoperta. +book_lore.bf_bomb_1.page.1=di sicuro questo era il caso. Gli ex studenti avevano i loro dubbi (sorprendente, considerando quanto avevano gli occhi brillanti), ma l'unico... competente? il collega ha effettivamente messo le mani sul volantino del primer. Devono avere più connessioni di quanto pensassi. Il suo promemoria Ú scoraggiante: +book_lore.bf_bomb_1.page.2=apparentemente, c'Ú ancora UN ALTRO materiale miracoloso che hanno ricavato da una miscela di antimateria e un isotopo marginale. La brochure lo chiama "SWIRLMAT" - diavolo se lo so - e basta. Non c'Ú da stupirsi che volessero un fisico teorico, +book_lore.bf_bomb_1.page.3=non sanno nemmeno cosa sia ancora. In ogni caso, praticamente qualsiasi lavoro sarebbe migliore della mia vecchia posizione, quindi non posso lamentarmi molto della scarsa precisione. + +book_lore.bf_bomb_2.name=Note private +book_lore.bf_bomb_2.author=M. Porter +book_lore.bf_bomb_2.page.0=Nonostante l'assenza di informazioni in quel primer, Avevo ancora qualche speranza che sapessero qualcosa di più. Affatto. Tutti gli altri ricercatori senior hanno una fiducia cieca in questo materiale; le loro proposte erano praticamente bibliche. Ero quasi senza parole. +book_lore.bf_bomb_2.page.1=Eppure non posso nemmeno biasimarli. Swirlmat non ha dannatamente senso: Ú completamente diverso da qualsiasi altra sostanza che abbia mai visto prima. Il suo aspetto era quasi spaventoso, letteralmente una massa di colori vorticosi, con linee più scure che permeavano la superficie verde neon. +book_lore.bf_bomb_2.page.2=Ancora peggio, questa cosa Ú una fonte di energia. L'esistenza del nostro campione Ú una violazione dell'ALARA: il laboratorio Ú stato lasciato vuoto al suo arrivo e l'unica persona abbastanza coraggiosa (un certo dottor Melfyn) ha indossato un materiale ignifugo di livello A solo per trasportarlo per 20 metri. +book_lore.bf_bomb_2.page.3=I dati empirici non sono migliori, poiché stiamo infrangendo la prima legge della termodinamica con quanta energia irradia. Trovarsi vicino a quella cosa, anche dietro un metro di piombo, era terrificante. Siamo corsi fuori dalla camera al termine della spettroscopia +book_lore.bf_bomb_2.page.4=e non ne abbiamo ricavato nulla di nuovo. Quegli idioti del team scientifico, Dio, non hanno vacillato nemmeno dopo tutto quello. Assistere a quelle "discussioni" era orribile; quel ciarlatano del capo ricercatore diceva addirittura che il divieto di test sarebbe stato revocato, che avremmo potuto esserlo +book_lore.bf_bomb_2.page.5=costruire bombe dalla merda nelle prossime settimane, chi sano di mente ci lavorerebbe? Diavolo, l'unico assistente sano di mente (un certo Andrew) l'ha soprannominato "balefire" - perché bruciare a morte su una pira funeraria sarebbe indolore in confronto. + +book_lore.bf_bomb_3.name=Note private +book_lore.bf_bomb_3.author=M. Porter +book_lore.bf_bomb_3.page.0=Io e la squadra abbiamo fatto dei passi avanti. L'enfasi sulla separazione: isolarmi dai più devoti ha reso il lavoro lì molto più sopportabile. Anche se non abbiamo ancora idea delle effettive proprietà del balefire (Ú difficile da analizzare +book_lore.bf_bomb_3.page.1=un campione che frigge la tua attrezzatura) le sue interazioni con altra materia si sono rivelate fruttuose. In particolare, hanno sintetizzato una forma "gassosa": Andrew, tra tutti, mi ha informato che si trattava in realtà di un colloide costituito da microscopiche particelle di fuoco funebre, sospese in alcuni +book_lore.bf_bomb_3.page.2=gas nobile. Ogni particella Ú avvolta da una "bolla" di gas ionizzato carica positivamente, che ne impedisce la sedimentazione. Chi avrebbe potuto immaginare che le radiazioni gamma fatali avessero un beneficio? Non me. $ Scelgo di non pensare a come hanno trasformato il campione +book_lore.bf_bomb_3.page.3=particolato, ma non posso sottovalutare l'utilità di questo fuoco gassoso: ha reso molto più sicuro fare esperimenti. $ A proposito di sicurezza, il capo ricercatore (in un atto di insensibile disprezzo) ha fatto una scoperta che gli ha quasi staccato la testa. +book_lore.bf_bomb_3.page.4=Decise di "sporcarsi" lasciando che una cellula del nostro nuovo colloide interagisse direttamente con un po' di antimateria molto costosa: l'esplosione risultante trasformò il tavolo su cui si trovava in un pezzo di scorie sbiancate dalle radiazioni, scolpito un emisfero quasi perfetto attraverso +book_lore.bf_bomb_3.page.5=la parte superiore e ha dato alla testa una buona dose di ARS. Immagino che ora sappiamo come farlo esplodere, ma Dio, alcune persone... + +book_lore.bf_bomb_4.name=Note private +book_lore.bf_bomb_4.author=M. Porter +book_lore.bf_bomb_4.page.0=Non posso proprio sfuggire al mio vecchio lavoro. Sono l'unico posto che assume nonostante tutto questo tumulto dimenticato da Dio, ma non tornerò in quel buco. $ Mi hanno tentato solo perché ne avevo bisogno, in fretta. Ricordi quel trattato sui test atmosferici da cui ci siamo ritirati una settimana fa? +book_lore.bf_bomb_4.page.1=Bene, per una volta lo stronzo responsabile del nostro laboratorio ha azzeccato la cosa. La denuncia Ú arrivata con una raffica di nuovi “scienziati” che si sono uniti, proprio per poter utilizzare come arma il balefire. La mancanza di pensiero critico qui Ú sinceramente sconcertante: Dio lo benedica, Andrew ha persino abbandonato la nave +book_lore.bf_bomb_4.page.2=in secondo luogo Ú stato abbozzato il primo cazzo di BOMB DESIGN. Quel coglione di Melfyn sembrava così contento del suo piccolo meccanismo... forse gli sono venuti dei vermi cerebrali trasportando quel campione? - che prevedeva qualche stupida stronzata usando la base missilistica solidificata e una batteria +book_lore.bf_bomb_4.page.3=AV. $ Apparentemente, la forma Ú importante per la produzione di energia e il metodo di attivazione o altro, un po' come l'uranio contro il plutonio nelle armi nucleari normali, ma il risultato finale Ú uno shock iniziale che innesca l'esplosione. Lo trovo divertente, addirittura esilarante. +book_lore.bf_bomb_4.page.4=Tutti pongono tanta enfasi sull'attivazione; ignorano il meccanismo reale di tutto questo perché non hanno la minima idea di come funzioni! Potrebbe anche essere magico a questo punto, eppure stanno ancora cercando di torcerlo e piegarlo, solo per avere più armi da guerra. + +book_lore.bf_bomb_5.name=Note private +book_lore.bf_bomb_5.author=M. Porter +book_lore.bf_bomb_5.page.0=È solo che... non riesco a venirne a capo, nemmeno giorni dopo. Era una conclusione scontata, davvero, visto quanto il team scientifico fosse irriverente riguardo alla sicurezza. $ $ Il dottor Melfyn, M.S., se n'Ú andato. Morto, forse. L'ho visto accadere davanti ai miei occhi, nella loro camera di prova. +book_lore.bf_bomb_5.page.1=Avevamo appena ricevuto un'altra dose di balefire puro e lui aveva recuperato apparecchiature elettriche e una fonte di energia per testare la sua proposta. Non so cosa lo abbia causato (era accesa la corrente? Si era avviata troppo presto?), ma sembrava progredire in modo agonizzante al rallentatore, +book_lore.bf_bomb_5.page.2=mentre la luce verde consumava il tavolo, la batteria e il Dr. Melfyn era a solo un metro di distanza. Anche quando il tavolo si era ridotto a una pozza di metallo bollente sul pavimento, non bruciava. Non so cosa ho visto nei suoi occhi... $ $ Terrore, o stupore +book_lore.bf_bomb_5.page.3=per la sua continua sopravvivenza, forse? Qualunque fosse il nostro materiale "miracoloso", non aveva importanza. Con un brillante lampo di luce, scomparve un attimo dopo. È evaporato? incenerito? annientato? mandato all'inferno stesso, non lo so più! +book_lore.bf_bomb_5.page.4=Il capo ricercatore mi fa schifo. Ha detto che potevamo stare più attenti, continuare a trasportare, qualsiasi altra schifezza che migliorasse il morale avesse vomitato. Quello stronzo non capirà mai che giocare con il fuoco ti brucerà. $ Non mi sono preoccupato +book_lore.bf_bomb_5.page.5=dimettendomi, ho semplicemente preso la mia merda e sono corso a gambe levate. Non che sia importante, comunque; considerando la mancanza di chiamate e il fungo atomico che si Ú sollevato sul mio (ormai ex) posto di lavoro, hanno fatto saltare tutto o sono entrati a pieno titolo nella giurisdizione militare. +book_lore.bf_bomb_5.page.6=C'Ú una distinzione fondamentale da fare tra dissezione e VIVISEZIONE, una distinzione che Ú stata chiaramente persa da loro. Possono sezionare metalli o atomi quanto vogliono, ma penetrare e vivisezionare la realtà stessa porterà solo a qualcosa di più. Melfins. Chi lo sa! +book_lore.bf_bomb_5.page.7=Dopotutto il governo vuole mettere questa merda nelle bombe, forse vedremo un altro paio di guerre, un altro paio di milioni di persone rassegnate a un destino peggiore della morte. Non possono nasconderlo per sempre. $ $ Non mi interessa. Non più. Per favore, Dio, lasciami tornare indietro +book_lore.bf_bomb_5.page.8=alla scienza vera e propria. $ $ Maledizione, Mae, calmati... + +book_lore.beacon.name=Libretto di istruzioni del segnalatore luminoso +book_lore.beacon.author=Industrie Flim Flam +book_lore.beacon.page.0=Grazie per aver acquistato un segnalatore luminoso Mk.2 (rev. 1.3)! Questo piccolo opuscolo fornirà una breve introduzione al funzionamento del faro, nonché al suo funzionamento interno. +book_lore.beacon.page.1=Capitolo 1: Architettura $ Ogni unità Ú composta da quattro parti principali: il circuito di controllo, una lanterna, un corno da nebbia e l'involucro che ospita le altre parti. Per una spiegazione dettagliata del circuito principale, per favore +book_lore.beacon.page.2=fare riferimento allo schema elettrico che si trova all'interno del coperchio di manutenzione dell'involucro. La lanterna Ú composta da un involucro in policarbonato contenente una lampadina alogena bicolore da 250 Watt con attacco standard da 200mm, ricambi +book_lore.beacon.page.3=per la lampadina può essere ordinata presso i nostri negozi. Le lampadine di terze parti non sono consigliate poiché non possiamo garantire un funzionamento sicuro. La cassa Ú realizzata in acciaio inossidabile zincato specializzato ed Ú resistente agli agenti atmosferici. +book_lore.beacon.page.4=Capitolo 2: Lanterna $ Gli usi principali della lanterna sono fornire luce per facilitare la manutenzione in condizioni meteorologiche avverse, nonché un indicatore di stato. Se il test automatico all'accensione (POST) fallisce, il segnalatore lo farà +book_lore.beacon.page.5=si accenderà di rosso, altrimenti si illuminerà di verde. Tieni presente che i colori possono variare a seconda della lampadina sostitutiva. +book_lore.beacon.page.6=Capitolo 3: Corno da nebbia $ Il corno da nebbia Ú il dispositivo di comunicazione principale del faro. Il faro Ú progettato per la comunicazione peer-to-peer (P2P) e per la trasmissione di messaggi. +book_lore.beacon.page.7=Capitolo 4: Peer-to-Peer $ Per i dettagli sulla comunicazione, fare riferimento al manuale delle comunicazioni. Segue un breve riassunto su come stabilire una connessione P2P: innanzitutto il beacon deve dare il segnale "AVVIA CONNESSIONE", +book_lore.beacon.page.8=essendo un unico tono lungo. Anche tutti i peer disponibili dovrebbero rispondere con un unico tono lungo (ordine specificato in base alla vicinanza, nonché le linee guida di comunicazione delineate nel manuale, sezione "Risposta a una connessione") +book_lore.beacon.page.9=Una volta che il peer desiderato ha risposto, dare il segnale "ACCETTA CONNESSIONE", ovvero due toni lunghi, anche il peer risponderà con due toni lunghi. Tutte le comunicazioni successive devono avvenire, nella maggior parte dei casi, utilizzando segnali prenegoziati +book_lore.beacon.page.10=utilizzando lo standard FAR-5M. La comunicazione terminerà immediatamente se non Ú stato negoziato alcuno standard, fungendo da "ping". Se la comunicazione continua Ú possibile terminare la connessione utilizzando un altro tono singolo lungo "FINE CONNESSIONE". +book_lore.beacon.page.11=Capitolo 5: Garanzia $ [pagina lasciata intenzionalmente vuota] + +cannery.f1=[ Premi F1 per aiuto ] + +cannery.centrifuge=Centrifuga a gas +cannery.centrifuge.0=La centrifuga a gas può essere fornita di fluidi attraverso i condotti per fluidi. +cannery.centrifuge.1=Molte ricette richiedono più centrifughe. I prodotti intermedi non possono essere trasportati via tubi. +cannery.centrifuge.2=Questo lato funziona come un connettore che darà il prodotto intermedio alla centrifuga adiacente. +cannery.centrifuge.3=L'esafluoruro di uranio può essere processato con due centrifughe, pero questo ti produrra solo combustibile d'uranio e uranio-238. +cannery.centrifuge.4=Per il processo completo che ti da uranio-238 e uranio-235 richiede 4 centrifughe. +cannery.centrifuge.5=Alcune ricette richiedono anche l'aggiornamento dell'overclocking della centrifuga. + +cannery.crucible=Crugiolo +cannery.crucible.0=Il crogiolo Ú usato per fondere i mineali, lingotti o altri materiali metallici per leghe e di modellarli in forme diverse. +cannery.crucible.1=Richiede una fonte di calore esterna che si deve collegare sotto, come un focolare. +cannery.crucible.2=Una volta riscaldata, il crogiolo può essere usato in due modi differenti, con o senza il modello di ricetta. +cannery.crucible.3=Il crogiolo ha due taniche per il materiale fuso: +cannery.crucible.4=La tanica a sinistra Ú per i §asottoprodotti§r, tutti i materiasi fusi senza un modello di ricetta andranno lì. +cannery.crucible.5=Se il modello di ricetta Ú installato, i materiali che non sono presenti nel modello saranno contenuti nella tanica a sinistra. +cannery.crucible.6=I materiali in nella tanica di sinistra non reagiscono tra loro, possono essere colati solo dall'uscita verde per lo stampo. +cannery.crucible.7=Il buffer a destra Ú per le §cricette§r, se il modello di ricetta Ú installato, tutti i materiali necessari andranno lì. +cannery.crucible.8=I materiali si combineranno lentamente nel materiale in uscita che verrà automaticamente colato dall'uscita rossa. +cannery.crucible.9=Tieni presente che solo questa tanica gestisce le ricette. Se un modello viene installato retroattivamente, i materiali nella tanica del sottoprodotto non verranno combinati, né trasferiti nella tanica della ricetta. +cannery.crucible.10=L'uscita colerà il materiale automaticamente, se l'obiettivo Ú valido, ad esempio un canale di fonderia o uno stampo. +cannery.crucible.11=Come per tutti i blocchi da fonderia, Ú possibile utilizzare una pala per rimuovere tutto il materiale dal crogiolo. + +cannery.fensu=FEnSU +cannery.fensu.0=Il FEnSU Ú capace di contenere assurde quantita di energia, oltre 9EHE (Ú un 9 seguito da 18 zeri). +cannery.fensu.1=C'Ú solo un connettore di energia che può essere trovato in basso al centro. +cannery.fensu.2=E' anche l'unico punto in cui il FEnSU può riceve un segnale in redstone. + +cannery.firebox=Focolare +cannery.firebox.0=Il focolare brucia oggetti infiammabili per generare calore. +cannery.firebox.1=Può bruciare un qualsiasi oggetto infiammabile, sebbene combustibili di qualità superiore come carbone, coke e combustibili solidi brucino più a lungo e a temperature più elevate. +cannery.firebox.2=Il calore Ú scambiato in cima, dove c'Ú il contatto in rame. Macchine con contatti identici in basso, possono ricevere calore dal focolare. +cannery.firebox.3=Se il calore non viene utilizzato e il serbatoio di calore si riempie, il focolare si spegne per evitare sprechi di combustibile. +cannery.firebox.4=Una di queste macchine Ú il motore Stirling, che trasforma il calore direttamente in energia. + +cannery.foundryChannel=Canale della fonderia +cannery.foundryChannel.0=I canali della fonderia servono per trasportare i metalli fusi in una tanica o in uno stampo. +cannery.foundryChannel.1=I canali possono ricevere il materiale sia versandolo dall'alto - tramite uno scarico o direttamente da un crogiolo - sia lateralmente da altri canali. +cannery.foundryChannel.2=Durante il trasporto di materiali, i canali daranno la priorità a blocchi come sbocchi e stampi poco profondi. +cannery.foundryChannel.3=Quando non può fornire uno sbocco o uno stampo, il materiale scorrerà in un canale vicino. +cannery.foundryChannel.4=Il materiale rimasto può essere rimosso utilizzando una pala. + +cannery.silex=FEL & SILEX +cannery.silex.0=Il laser a elettroni liberi (FEL) utilizza energia e un cristallo laser per creare un potente raggio laser. +cannery.silex.1=Fai attenzione, il laser può bruciare/sciogliere i blocchi deboli... +cannery.silex.2=...ma non quelli a prova di esplosione. +cannery.silex.3=Il FEL viene utilizzato per alimentare la camera di separazione degli isotopi laser (SILEX). Il FEL e il SILEX devono essere ad almeno due isolati di distanza. +cannery.silex.4=Il laser deve entrare attraverso le aperture di vetro del SILEX. Puntarlo male potrebbe distruggerlo. +cannery.silex.5=Le aperture sui lati possono essere utilizzate per collegare i condotti dei fluidi al SILEX. +cannery.silex.6=Oltre ai due connettori posti sui lati, Ú presente un terzo connettore nascosto nella parte inferiore da cui Ú possibile estrarre gli oggetti. +cannery.silex.7=Ogni ricetta richiede un tipo di laser specifico. L'utilizzo di un tipo più forte di quello richiesto elaborerà gli elementi più velocemente. +cannery.silex.8=Un FEL può alimentare fino a 5 SILEX. Ogni SILEX deve essere distante un blocco l'uno dall'altro. + +cannery.stirling=Motore Stirling +cannery.stirling.0=Il motore Stirling trasforma il calore in energia elettrica. +cannery.stirling.1=Deve essere posizionato sopra una macchina che produce calore, come il focolare. +cannery.stirling.2=La quantità di calore che può utilizzare Ú tuttavia limitata, una rotazione eccessiva può portare a malfunzionamenti catastrofici. +cannery.stirling.3=La versione aggiornata può sopportare molto più calore senza rompersi. + +cannery.willow=Salice Senape +cannery.willow.0=Il salice senape Ú una pianta che permette la raccolta del cadmio metallico. +cannery.willow.1=I salici possono essere posizionati su terra, erba o anche su terra morta/oleosa, ma richiedono acqua per crescere. +cannery.willow.2=I salici possono essere concimati con farina d'ossa o fertilizzante industriale. Non hanno bisogno della luce per crescere. +cannery.willow.3=Dopo la seconda fase di crescita, avranno bisogno di un ulteriore blocco di spazio sopra di loro per crescere ulteriormente. +cannery.willow.4=Dopo la quarta fase di crescita, richiedono terra morta o oleosa sotto di loro. +cannery.willow.5=Questo può essere fatto piantando manualmente salici su terreno morto/oleoso, oppure avendo nelle vicinanze una torre di fratturazione idraulica che contamina continuamente il terreno. +cannery.willow.6=Dopo aver raggiunto la fase finale, il salice rimuoverà la contaminazione dal terreno, riconvertendo la terra morta/oleosa in terra normale. +cannery.willow.7=Adesso si possono raccogliere le foglie del salice. Rompere il blocco superiore farà cadere una piccola pianta di salice, 3-6 foglie e manterrà intatta la parte inferiore della pianta. +cannery.willow.8=Presto la pianta ricomincerà a crescere, producendo più foglie se la terra viene sostituita con terra oleosa. Le foglie possono essere trasformate in polvere di cadmio utilizzando un acidificantore. +cannery.willow.9=La raccolta delle foglie di salice può essere automatizzata utilizzando la sega circolare automatica, che romperà solo le piante pronte per il raccolto. + +cannery.hadron=Acceleratore di Particelle +cannery.hadron.0=Un Acceleratore di Particelle Ú composto da tre parti principali: un Nucleo, una Camera di Analisi e un set di Bobine Superconduttrici +cannery.hadron.1=Questo Ú il Componente Nucleo dell'Acceleratore di Particelle, che spara particelle a velocità relativistiche lungo le bobine verso la Camera di Analisi +cannery.hadron.2=Le particelle vengono espulse da qui +cannery.hadron.3=E negli acceleratori circolari, ritornano qui +cannery.hadron.4=Un segmento di bobina Ú costruito utilizzando 8 Bobine Dense con nulla (o il nucleo) al centro +cannery.hadron.5=Questo segmento di bobina deve essere anch'esso racchiuso all'interno della Placcatura dell'Acceleratore di Particelle +cannery.hadron.6=Per accedere al Componente Nucleo, sarà necessario aggiungere uno o più Terminali di Accesso +cannery.hadron.7=Il Componente Nucleo richiederà anche energia per funzionare, aggiungere una presa di corrente su un bordo +cannery.hadron.8=L'Acceleratore richiederà abbastanza Prese di Corrente per fornire almeno 10KHE di elettricità per unità di Forza della Bobina +cannery.hadron.9=Nota che il segmento di bobina che avvolge il Componente Nucleo non viene considerato nel calcolo della Forza della Bobina +cannery.hadron.10=Questo segmento di bobina non Ú necessario per gli acceleratori puramente lineari +cannery.hadron.11=Per gli acceleratori circolari, sarà necessario aggiungere angoli per cambiare la direzione della particella +cannery.hadron.12=Le bobine degli angoli esterni possono essere omesse completamente +cannery.hadron.13=La parte finale del nostro Acceleratore Ú la Camera di Analisi, che Ú una camera vuota 3x3x3 circondata da blocchi della Camera di Analisi +cannery.hadron.14=Il tuo Acceleratore di Particelle completo dovrebbe apparire qualcosa di simile! + +cannery.hadron.math.0=Forza della bobina in neodimio: 50 +cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE +cannery.hadron.math.2=Forza della Bobina di Metallo Stellare: 1,000 +cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE + +cannery.schottky=Diodo di Particelle Schottky +cannery.schottky.0=Questo Ú un Diodo di Particelle Schottky. Può consentire design più complessi degli acceleratori di particelle e risparmiare elettricità +cannery.schottky.1=Per impostazione predefinita blocca tutte le particelle e deve essere configurato con un Cacciavite +cannery.schottky.2=Questa faccia ora accetterà le particelle in ingresso +cannery.schottky.3=E questa faccia espellerà le particelle che entrano +cannery.schottky.4=Il diodo ora ha due uscite e si comporterà in maniera quantistica, creando particelle virtuali per ciascuna uscita +cannery.schottky.5=Una volta che tutte le particelle virtuali hanno raggiunto una Camera di Analisi, viene scelta la particella con il momento più basso richiesto per la ricetta corrente +cannery.schottky.6=La particella scelta subisce un collasso della funzione d'onda e diventa reale, consumando solo l'energia che la particella collassante richiede +cannery.schottky.7=Se una qualsiasi particella virtuale incontra segmenti malformati, tutte le particelle virtuali verranno scartate e la particella che ha generato l'errore verrà collassata +cannery.schottky.8=Nota che le particelle virtuali non utilizzeranno mai la stessa uscita del Diodo due volte. I loop infiniti falliranno, ma rientrare in un Diodo Ú comunque accettabile +cannery.schottky.9=Il tuo Diodo di Particelle Schottky deve essere correttamente racchiuso, con percorsi liberi per ciascuna uscita dell'intersezione +======= +book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.1=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.2=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d + +book_lore.book_phosphorous.name=Note +book_lore.book_phosphorous.author=Dave +book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be mixed into slot %d + +book_lore.book_dust.name=Note +book_lore.book_dust.author=Dave +book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction "MKU" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d + +book_lore.book_mercury.name=Note +book_lore.book_mercury.author=Dave +book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.1=replicated by the body? whatever, the mercury goes into slot %d + +book_lore.book_flower.name=Note +book_lore.book_flower.author=Dave +book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.1=it does not work with other flowers. the morning glory goes into slot %d + +book_lore.book_syringe.name=Note +book_lore.book_syringe.author=Dave +book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.1=syringe goes into slot %d + +book_lore.resignation_note.name=Letter of Resignation +book_lore.resignation_note.author=Kosma +book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and +book_lore.resignation_note.page.1=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. +book_lore.resignation_note.page.2=I'm not coming back on Friday. Just send the paycheck. + +book_lore.memo_stocks.name=Intracorporate Memorandum +book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. + +book_lore.memo_schrab_gsa.name=Internal Memorandum +book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum +book_lore.memo_schrab_gsa.page.1=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. + +book_lore.memo_schrab_rd.name=Internal Memorandum +book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. +book_lore.memo_schrab_rd.page.1=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely +book_lore.memo_schrab_rd.page.2=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. +book_lore.memo_schrab_rd.page.3=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. + +book_lore.memo_schrab_nuke.name=Research Report +book_lore.memo_schrab_nuke.author=Doctor Schrabauer +book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. +book_lore.memo_schrab_nuke.page.1=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. +book_lore.memo_schrab_nuke.page.2=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. + +book_lore.bf_bomb_1.name=Private Notes +book_lore.bf_bomb_1.author=M. Porter +book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. +book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: +book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, +book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. + +book_lore.bf_bomb_2.name=Private Notes +book_lore.bf_bomb_2.author=M. Porter +book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. +book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. +book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. +book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy +book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. + +book_lore.bf_bomb_3.name=Private Notes +book_lore.bf_bomb_3.author=M. Porter +book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze +book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some +book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through +book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... + +book_lore.bf_bomb_4.name=Private Notes +book_lore.bf_bomb_4.author=M. Porter +book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? +book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the +book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV +book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. +book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. + +book_lore.bf_bomb_5.name=Private Notes +book_lore.bf_bomb_5.author=M. Porter +book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. +book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, +book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe +book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! +book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother +book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. +book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! +book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back +book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... + +book_lore.beacon.name=Signal Beacon Instruction Booklet +book_lore.beacon.author=Flim Flam Industries +book_lore.beacon.page.0=Thank you for your purchase of a Mk.2 Illuminated Signal Beacon (rev. 1.3)! This small booklet will provide a short introduction in the operation of the beacon, as well as its inner workings. +book_lore.beacon.page.1=Chapter 1: Architecture $ Each unit is composed of four main parts: The control circuit, a lantern, a fog horn and the casing which houses the other parts. For a detailed explanation of the main circuit, please +book_lore.beacon.page.2=refer to the circuit diagram found on the inside of the maintenance lid of the casing. The lantern is made up of a polycarbonate case containing a dual-color 250 Watt halogen bulb with a standard 200mm socket, replacements +book_lore.beacon.page.3=for the bulb can be ordered from our stores. Third party bulbs are not recommended, as we cannot ensure safe operation. The case is made from a specialized zinc-coated stainless steel and is resistant to weathering. +book_lore.beacon.page.4=Chapter 2: Lantern $ The lantern's primary uses are providing light for ease of maintenance in harsh weather conditions as well as a status indicator. Should the power-on self test (POST) fail, the lantern will +book_lore.beacon.page.5=light up red, otherwise it will light up green. Note that colors can vary depending on the replacement bulb. +book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) communication as well as for message broadcasting. +book_lore.beacon.page.7=Chapter 4: Peer-to-Peer $ For details on communication, refer to the communications handbook. A short rundown of establishing a P2P connection follows: First, the beacon has to give the "START CONNECTION" signal, +book_lore.beacon.page.8=being a single long tone. All available peers should respond with a single long tone as well (order specified by proximity, as well as the communication guidelines outlined in the handbook, section "Responding to a Connection") +book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respond with two long tones. All communication afterwards has to happen using pre-negotiated signals, most commonly +book_lore.beacon.page.10=using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". +book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] + +cannery.f1=[ Press F1 for help ] + +cannery.centrifuge=Gas Centrifuge +cannery.centrifuge.0=Gas centrifuges can be supplied with fluid using regular fluid ducts. +cannery.centrifuge.1=Most recipes require multiple centrifuges. The intermediate products cannot be transported via pipes. +cannery.centrifuge.2=This side acts as a connector which outputs the intermediate product into an adjacent centrifuge. +cannery.centrifuge.3=Uranium hexafluoride can be processed with just two centrifuges, this however will produce Uranium fuel and Uranium-238. +cannery.centrifuge.4=Fully processing it into Uranium-235 and Uranium-238 requires a total of four centrifuges. +cannery.centrifuge.5=Some recipes also require the centrifuge overclocking upgrade. + +cannery.crucible=Crucible +cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic items for alloying and to cast them into different shapes. +cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. +cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. +cannery.crucible.3=The crucible has two storage buffers for material: +cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. +cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. +cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. +cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. +cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. +cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. +cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. +cannery.crucible.11=As with all foundry blocks, a shovel can be used to remove all material from the crucible. + +cannery.fensu=FEnSU +cannery.fensu.0=The FEnSU is capable of storing absurd amounts of energy, over 9EHE (that's a nine followed by 18 zeros). +cannery.fensu.1=There is only one energy connector which can be found on the bottom. +cannery.fensu.2=This is also the only place where the FEnSU can receive a redstone signal. + +cannery.firebox=Firebox +cannery.firebox.0=The firebox burns flammable items to generate heat. +cannery.firebox.1=It can burn any flammable item, although higher quality fuels such as coal, coke and solid fuel burn longer and hotter. +cannery.firebox.2=Heat is given off by the copper contact at the top of the firebox. Machines with an identical contact on the bottom can receive heat by being placed on top of the firebox. +cannery.firebox.3=If heat isn't being used up and the heat buffer becomes full, the firebox will shut off to prevent wasting of fuel. +cannery.firebox.4=One such machine is the stirling engine, which will turn heat directly into energy. + +cannery.foundryChannel=Foundry Channel +cannery.foundryChannel.0=Foundry channels are used to transport molten material from a crucible or storage tank into molds. +cannery.foundryChannel.1=Channels can receive material either by pouring from the top - via an outlet or directly from a crucible - or from the side from other channels. +cannery.foundryChannel.2=When transporting materials, channels will prioritize blocks like outlets and shallow molds. +cannery.foundryChannel.3=When it cannot supply an outlet or a mold, the material will then flow into a neighboring channel. +cannery.foundryChannel.4=Leftover material can be removed by using a shovel. + +cannery.silex=FEL & SILEX +cannery.silex.0=The Free Electron Laser (FEL) uses energy and a laser crystal to create a powerful laser beam. +cannery.silex.1=Be careful, as the laser will burn/melt through weaker blocks... +cannery.silex.2=...but not blast-proof ones. +cannery.silex.3=The FEL is used to power the Laser Isotope Separation Chamber (SILEX). The FEL and SILEX have to be at least two blocks apart. +cannery.silex.4=The laser has to enter through the glass openings of the SILEX. Aiming it wrong could destroy it. +cannery.silex.5=The openings on the sides can be used to connect fluid ducts to the SILEX. +cannery.silex.6=In addition to the two connectors on the sides, there is a third hidden connector at the bottom from which items can be extracted. +cannery.silex.7=Each recipe requires a specific laser type. Using a stronger type than required will process items faster. +cannery.silex.8=One FEL can supply up to 5 SILEX. Each SILEX has to be one block apart from one another. + +cannery.stirling=Stirling Engine +cannery.stirling.0=The Stirling engine uses heat energy from external sources to create power. +cannery.stirling.1=It needs to be placed on top of a heat-producing machine, such as the firebox. +cannery.stirling.2=The amount of heat it can utilize however is limited, overspinning can lead to catastrophic malfunction. +cannery.stirling.3=The upgraded version can take significantly more heat without breaking. + +cannery.willow=Mustard Willow +cannery.willow.0=The mustard willow is a plant that allows cadmium metal to be harvested. +cannery.willow.1=Willows can be placed on dirt, grass or even dead/oily dirt, but they require water to grow. +cannery.willow.2=Willows can be fertilized with bone meal or industrial fertilizer. They do not need light to grow. +cannery.willow.3=After the second stage of growth, they will need an extra block of space above them to grow further. +cannery.willow.4=After the fourth stage of growth, they require dead or oily dirt below them. +cannery.willow.5=This can be done either by manually planting willows on dead/oily dirt, or by having a hydraulic fracking tower nearby which continuously contaminates the ground. +cannery.willow.6=After reaching the final stage, the willow will remove contamination from the ground, reverting the dead/oily dirt back into regular dirt. +cannery.willow.7=Now the willow's leaves can be harvested. Breaking the top block will drop a small willow plant, 3-6 leaves and keep the bottom part of the plant intact. +cannery.willow.8=Soon the plant will start growing again, yielding more leaves if the dirt is replaced with oily dirt. The leaves can be processed into cadmium powder using an ore acidizer. +cannery.willow.9=Harvesting willow leaves can be automated using the automatic buzzsaw, it will only break plants that are ready for harvest. + +cannery.hadron=Particle Accelerator +cannery.hadron.0=A Particle Accelerator consists of three main parts: A Core, an Analysis Chamber, and a set of Superconducting Coils +cannery.hadron.1=This is the Particle Accelerator Core Component, which fires particles at relativistic speeds down the coils towards the Analysis Chamber +cannery.hadron.2=Particles are ejected from here +cannery.hadron.3=And in circular accelerators, return to here +cannery.hadron.4=A coil segment is constructed by using 8 Dense Coils with nothing (or the core) in the middle +cannery.hadron.5=This coil segment must itself also be enclosed within Particle Accelerator Plating +cannery.hadron.6=To access the Core Component, you'll need to add one or more Access Terminals +cannery.hadron.7=The Core Component will also require power to operate, add a power plug on an edge +cannery.hadron.8=The Accelerator will require enough Power Plugs to supply at least 10KHE of electricity per unit of Coil Strength +cannery.hadron.9=Note that the coil segment that wraps around the Core Component is not factored into the Coil Strength calculation +cannery.hadron.10=Nor is this coil segment required for purely linear accelerators +cannery.hadron.11=For circular accelerators, you will need to add corners to change the direction of the particle +cannery.hadron.12=The outside corner coils can be omitted entirely +cannery.hadron.13=The final part of our Accelerator is the Analysis Chamber, which is a 3x3x3 empty chamber surrounded by Analysis Chamber blocks +cannery.hadron.14=Your completed Particle Accelerator should look something like this! + +cannery.hadron.math.0=Neodymium Coil Strength: 50 +cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE +cannery.hadron.math.2=Starmetal Coil Strength: 1,000 +cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE + +cannery.schottky=Schottky Particle Diode +cannery.schottky.0=This is a Schottky Particle Diode. It can allow for more complex particle accelerator designs and save on electricity +cannery.schottky.1=By default it blocks all particles and must be configured with a Screwdriver +cannery.schottky.2=This face will now accept entering particles +cannery.schottky.3=And this face will eject particles that enter +cannery.schottky.4=The diode now has two exits, and will now behave in a quantum manner, creating virtual particles for each exit +cannery.schottky.5=Once all the virtual particles have reached an Analysis Chamber, the particle with the lowest momentum required for the current recipe is chosen +cannery.schottky.6=The chosen particle undergoes a wavefunction collapse and is made real, consuming only the power that the collapsing particle requires +cannery.schottky.7=If any virtual particles encounter any malformed segments, all virtual particles will be discarded and the erroring particle will be collapsed instead +cannery.schottky.8=Note that virtual particles will never use the same Diode exit twice. Infinite loops will fail, but re-entering a Diode is otherwise fine +cannery.schottky.9=Your Schottky Particle Diode should be properly enclosed, with free paths for each intersection exit + +chem.ARSENIC=Arsenic Extraction +chem.ASPHALT=Asphalt Production +chem.BAKELITE=Bakelite Production +chem.BALEFIRE=BF Rocket Fuel Mixing +chem.BP_BIOFUEL=Biofuel Transesterification +chem.BP_BIOGAS=Biogas Production +chem.C4=C-4 Synthesis +chem.CC_CENTRIFUGE=Chlorocalcite Separation +chem.CC_ELECTROLYSIS=Calcium Chloride Electrolysis +chem.CC_HEATING=Advanced Coal Liquefaction +chem.CC_HEAVY=Basic Coal Liquefaction +chem.CC_I=Enhanced Coal Liquefaction +chem.CC_NAPHTHA=Naphtha Coal Liquefaction +chem.CC_OIL=Coal Liquefaction +chem.CIRCUIT_4=Overclocked Circuit Production +chem.CIRCUIT_5=High Performance Circuit Production +chem.CO2=Carbon Dioxide Production +chem.COALGAS_LEADED=Leaded Coal Gasoline Mixing +chem.COLTAN_CLEANING=Coltan Purifying +chem.COLTAN_CRYSTAL=Tantalium Crystallizing +chem.COLTAN_PAIN=Pandemonium(III)tantalite Production +chem.CONCRETE=Concrete Production +chem.CONCRETE_ASBESTOS=Asbestos Concrete Production +chem.COOLANT=Coolant Mixing +chem.CORDITE=Cordite Production +chem.CRYOGEL=Cryogel Mixing +chem.DESH=Desh Production +chem.DEUTERIUM=Deuterium Extraction +chem.DUCRETE=Ducrete Production +chem.DYN_DNT=Dineutronium Dynosynthesis +chem.DYN_EUPH=Euphemium Dynosynthesis +chem.DYN_SCHRAB=Schrabidium Dynosynthesis +chem.DYNAMITE=Dynamite Synthesis +chem.ELECTROLYSIS=Cryo-Electrolysis +chem.EPEARL=Ender Pearl Synthesis +chem.ETHANOL=Ethanol Production +chem.FC_BITUMEN=Bitumen Cracking +chem.FC_DIESEL_KEROSENE=Diesel Cracking +chem.FC_GAS_PETROLEUM=Gas Cracking +chem.FC_I_NAPHTHA=Industrial Oil Cracking +chem.FC_KEROSENE_PETROLEUM=Kerosene Cracking +chem.FP_HEAVYOIL=Heavy Oil Processing +chem.FP_LIGHTOIL=Light Oil Processing +chem.FP_NAPHTHA=Naphtha Processing +chem.FP_SMEAR=Industrial Oil Processing +chem.FR_PETROIL=Petroil Mixing +chem.FR_REOIL=Oil Reprocessing +chem.FRACKSOL=Fracking Solution Production +chem.GASOLINE=Gasoline Production +chem.GASOLINE_LEADED=Leaded Gasoline Mixing +chem.HEAVY_ELECTROLYSIS=Heavy Water Cryo-Electrolysis +chem.HELIUM3=Helium-3 Extraction from Moon Turf +chem.KEVLAR=Kevlar Compound Production +chem.LAMINATE=Laminate Production +chem.LPG=Petroleum Gas Liquefaction +chem.LUBRICANT=Lubricant Mixing +chem.METH=Methamphetamine Synthesis +chem.MEAT_PROCESSING=Glyphid Meat Mineral Extraction +chem.NITAN=NITAN Super Fuel Mixing +chem.NITRIC_ACID=Nitric Acid Production +chem.OIL_SAND=Tar Sand Extraction +chem.OSMIRIDIUM_DEATH=Osmiridic Solution Production +chem.PC=Polycarbonate Synthesis +chem.PC_ELECTROLYSIS=Potassium Chloride Electrolysis +chem.PEROXIDE=Hydrogen Peroxide Production +chem.PET=PET Synthesis +chem.PETROIL_LEADED=Leaded Petroil Mixing +chem.POLYMER=Polymer Synthesis +chem.PUF6=Plutonium Hexafluoride Production +chem.PVC=Polyvinylchloride Synthesis +chem.RUBBER=Rubber Production +chem.SAS3=Schrabidium Trisulfide Production +chem.SATURN=Saturnite Production +chem.SCHRABIDATE=Ferric Schrabidate Production +chem.SCHRABIDIC=Schrabidic Acid Mixing +chem.SF_BIOFUEL=Biofuel Solidification +chem.SF_BIOGAS=Biogas Solidification +chem.SF_DIESEL=Diesel Solidification +chem.SF_GAS=Natural Gas Solidification +chem.SF_HEATINGOIL=Heating Oil Solidification +chem.SF_HEAVYOIL=Heavy Oil Solidification +chem.SF_KEROSENE=Kerosene Solidification +chem.SF_LIGHTOIL=Light Oil Solidification +chem.SF_LUBRICANT=Lubricant Solidification +chem.SF_NAPHTHA=Naphtha Solidification +chem.SF_OIL=Crude Oil Solidification +chem.SF_PETROIL=Petroil Solidification +chem.SF_PETROLEUM=Petroleum Gas Solidification +chem.SF_RECLAIMED=Reclaimed Oil Solidification +chem.SF_SMEAR=Industrial Oil Solidification +chem.SHELL_CHLORINE=Chlorine Gas Artillery Shell Production +chem.SHELL_MUSTARD=Mustard Gas Artillery Shell Production +chem.SHELL_PHOSGENE=Phosgene Artillery Shell Production +chem.SOLID_FUEL=Solid Rocket Fuel Production +chem.SOLVENT=Organic Solvent Mixing +chem.STEAM=Water Boiling +chem.SULFURIC_ACID=Sulfuric Acid Production +chem.TATB=TATB Synthesis +chem.TEL=TEL Mixing +chem.TEST=Test +chem.THORIUM_SALT=Thorium Salt Enrichment +chem.TNT=TNT Synthesis +chem.UF6=Uranium Hexafluoride Production +chem.VIT_GAS=Gaseous Nuclear Waste Vitrification +chem.VIT_LIQUID=Liquid Nuclear Waste Vitrification +chem.XENON=Linde Xenon Cycle +chem.XENON_OXY=Boosted Linde Xenon Cycle +chem.YELLOWCAKE=Yellowcake Production + +commands.satellite.no_satellite=No satellite using this frequency found! +commands.satellite.not_a_satellite=The held item is not a satellite! +commands.satellite.satellite_descended=Satellite successfully descended. +commands.satellite.satellite_orbited=Satellite launched. +commands.satellite.should_be_run_as_player=This command should be run by a player! + +container.amsBase=AMS Base (Deco) +container.amsEmitter=AMS Emitter (Deco) +container.amsLimiter=AMS Stabilizer (Deco) +container.anvil=Tier %s Anvil +container.arcFurnace=Arc Furnace +container.armorTable=Armor Modification Table +container.ashpit=Ashpit +container.assembler=Assembly Machine +container.autocrafter=Automatic Crafting Table +container.barrel=Barrel +container.bat9000=Big-Ass Tank 9000 +container.battery=Energy Storage +container.bombMulti=Multi Purpose Bomb +container.catalyticReformer=Catalytic Reformer +container.centrifuge=Centrifuge +container.chemplant=Chemical Plant +container.compactLauncher=Compact Launch Pad +container.craneBoxer=Conveyor Boxer +container.craneExtractor=Conveyor Ejector +container.craneGrabber=Conveyor Grabber +container.craneInserter=Conveyor Inserter +container.craneRouter=Conveyor Router +container.craneUnboxer=Conveyor Unboxer +container.crateDesh=Desh Crate +container.crateIron=Iron Crate +container.crateSteel=Steel Crate +container.crateTemplate=Template Crate +container.crateTungsten=Tungsten Crate +container.crystallizer=Ore Acidizer +container.cyclotron=Cyclotron +container.dfcCore=Dark Fusion Core +container.dfcEmitter=DFC Emitter +container.dfcInjector=DFC Fuel Injector +container.dfcReceiver=DFC Receiver +container.dfcStabilizer=DFC Stabilizer +container.diFurnace=Blast Furnace +container.diFurnaceRTG=Nuclear Blast Furnace +container.droneCrate=Transport Drone Crate +container.droneDock=Dock +container.droneProvider=Provider +container.droneRequester=Requester +container.electricFurnace=Electric Furnace +container.epress=Electric Press +container.exposureChamber=Exposure Chamber +container.factoryAdvanced=Advanced Factory +container.factoryTitanium=Basic Factory +container.fluidtank=Tank +container.fileCabinet=Filing Cabinet +container.forceField=Forcefield Emitter +container.frackingTower=Hydraulic Fracking Tower +container.furnaceBrick=Bricked Furnace +container.furnaceCombination=Combination Oven +container.furnaceIron=Iron Furnace +container.furnaceSteel=Steel Furnace +container.fusionMultiblock=Big Fusion Reactor +container.fusionaryWatzPlant=Fusionary Watz Plant +container.gasCentrifuge=Gas Centrifuge +container.gasFlare=Flare Stack +container.generator=Nuclear Reactor +container.hadron=Particle Accelerator +container.heaterFirebox=Firebox +container.heaterHeatex=Heat Exchanger +container.heaterOilburner=Fluid Burner +container.heaterOven=Heating Oven +container.hydrotreater=Hydrotreater +container.iGenerator=Industrial Generator +container.keyForge=Locksmith Table +container.launchPad=Launch Pad +container.launchPadRusted=Launch Pad +container.launchTable=Large Launch Pad +container.leadBox=Containment Box +container.machineArcWelder=Arc Welder +container.machineArcFurnaceLarge=Arc Furnace +container.machineBoiler=Oil Heater +container.machineCMB=CMB Steel Furnace +container.machineCoal=Combustion Generator +container.machineCoker=Coker Unit +container.machineCompressor=Compressor +container.machineCrucible=Crucible +container.machineDiesel=Diesel Generator +container.machineElectricBoiler=Electric Oil Heater +container.machineElectrolyser=Electrolysis Machine +container.machineFEL=FEL +container.machineFunnel=Combinator Funnel +container.machineICF=ICF +container.machineICFPress=ICF Fuel Pellet Maker +container.machineITER=Fusion Reactor +container.machineLargeTurbine=Industrial Steam Turbine +container.machineLiquefactor=Liquefactor +container.machineMixer=Industrial Mixer +container.machineRefinery=Oil Refinery +container.machineSelenium=Radial Performance Engine +container.machineShredder=Shredder +container.machineSILEX=SILEX +container.machineSolderingStation=Soldering Station +container.machineSolidifier=Solidifier +container.machineStrandCaster=Strand Caster +container.machineTurbine=Steam Turbine +container.machineTurbofan=Turbofan +container.machineWoodBurner=Wood-Burner +container.machine_schrabidium_transmutator=Schrabidium Transmutation Device +container.massStorage=Storage +container.microwave=Microwave +container.miningDrill=Automatic Mining Drill +container.miningLaser=Mining Laser +container.missileAssembly=Missile Assembly Station +container.nukeBoy=Little Boy +container.nukeCustom=Custom Nuke +container.nukeFleija=F.L.E.I.J.A. +container.nukeFstbmb=Balefire Bomb +container.nukeFurnace=Nuclear Powered Furnace +container.nukeGadget=The Gadget +container.nukeMan=Fat Man +container.nukeMike=Ivy Mike +container.nukeN2=N² Mine +container.nukeN45=N45 Naval Mine +container.nukePrototype=The Prototype +container.nukeSolinium=The Blue Rinse +container.nukeTsar=Tsar Bomba +container.oilWell=Oil Derrick +container.orbus=Heavy Antimatter Storage +container.plasmaHeater=Plasma Heater +container.press=Burner Press +container.puf6_tank=PuF6 Tank +container.pumpjack=Pumpjack +container.radGen=Radiation-Powered Engine +container.radar=Radar +container.radiobox=FM Transmitter +container.radiolysis=RTG and Radiolysis Chamber +container.radiorec=FM Radio +container.rbmkBoiler=RBMK Steam Channel +container.rbmkControl=RBMK Control Rods +container.rbmkControlAuto=RBMK Automatic Control Rods +container.rbmkHeater=RBMK Fluid Heater +container.rbmkOutgasser=RBMK Irradiation Channel +container.rbmkReaSim=RBMK Fuel Rod (ReaSim) +container.rbmkRod=RBMK Fuel Rod +container.rbmkStorage=RBMK Storage Column +container.reactorBreeding=Breeding Reactor +container.reactorControl=Reactor Remote Control Block +container.reactorLarge=Big Nuclear Reactor +container.reactorResearch=Research Reactor +container.reix=Rei-X Mainframe +container.rtg=RT Generator +container.rtgFurnace=RTG Furnace +container.rttyCounter=Redstone-over-Radio Item Counter +container.rttyLogic=Redstone-over-Radio Logic Receiver +container.rttyReceiver=Redstone-over-Radio Receiver +container.rttySender=Redstone-over-Radio Transmitter +container.safe=Safe +container.satDock=Cargo Landing Pad +container.satLinker=SatLink Device +container.siren=Siren +container.soyuzCapsule=Cargo Landing Capsule +container.soyuzLauncher=Soyuz Launch Platform +container.storageDrum=Nuclear Waste Disposal Drum +container.teleLinker=TelLink Device +container.teleporter=Teleporter +container.trainTram=Electric Flat Bed Tram +container.turbinegas=Combined Cycle Gas Turbine +container.turretArty=Greg +container.turretChekhov=Chekhov's Gun +container.turretFriendly=Mister Friendly +container.turretFritz=Fritz +container.turretHIMARS=Henry +container.turretHoward=Howard +container.turretJeremy=Jeremy +container.turretMaxwell=Maxwell +container.turretRichard=Richard +container.turretSentry=Brown +container.turretTauon=Tauon +container.uf6_tank=UF6 Tank +container.vacuumDistill=Vacuum Refinery +container.wasteDrum=Spent Fuel Pool Drum +container.watzPowerplant=Watz Power Plant +container.zirnox=ZIRNOX Nuclear Reactor + +crucible.aa=Advanced Alloy Production +crucible.abronze=Arsenic Bronze Production +crucible.bbronze=Bismuth Bronze Production +crucible.cdalloy=Cadmium Steel Production +crucible.cmb=CMB Steel Production +crucible.ferro=Ferrouranium Production +crucible.hematite=Iron Production from Hematite +crucible.hss=High-Speed Steel Production +crucible.malachite=Copper Production from Malachite +crucible.magtung=Magnetized Tungsten Production +crucible.redcopper=Red Copper Production +crucible.steel=Steel Production +crucible.steelMeteoric=Steel Production from Meteoric Iron +crucible.steelPig=Steel Production from Pig Iron +crucible.steelWrought=Steel Production from Wrought Iron +crucible.tcalloy=Technetium Steel Production + +death.attack.acid=%1$s fell into acid. +death.attack.acidPlayer=%1$s was dissolved by %2$s. +death.attack.ams=%1$s was bathed in deadly particles that have yet to be named by human science. +death.attack.amsCore=%1$s was vaporized in the fire of a singularity. +death.attack.asbestos=%1$s is now entitled to financial compensation. +death.attack.bang=%1$s was blasted into bite-sized pieces. +death.attack.blackhole=%1$s was spaghettified. +death.attack.blender=%1$s was chopped in small, bite-sized pieces. +death.attack.boat=%1$s was hit by a boat. +death.attack.boil=%1$s was boiled alive by %2$s. +death.attack.boxcar=%1$s was smushed by a falling boxcar. Oh well. +death.attack.broadcast=%1$s got their brain melted. +death.attack.building=%1$s was hit by a falling building. +death.attack.cheater=%1$s's intestines turned into oats. (???) +death.attack.chopperBullet=%1$s was rekt by %2$s. +death.attack.cloud=%1$s melted like a popsicle in the sun. +death.attack.cmb=%1$s was fizzeled by %2$s. +death.attack.digamma=%1$s stepped into the abyss. +death.attack.electricity=%1$s was electrocuted. +death.attack.electrified=%1$s was electrified by %2$s. +death.attack.euthanized=%1$s was euthanized by %2$s. +death.attack.euthanizedSelf2=%1$s wins the Darwin Award. +death.attack.euthanizedSelf=%1$s euthanized himself, what a dork. +death.attack.exhaust=%1$s was turned into shish kebab by a starting rocket. +death.attack.flamethrower=%1$s was cremated by %2$s. +death.attack.flamethrower.item=%1$s was cremated by %2$s using %3$s. +death.attack.ice=%1$s was turned into a popsicle by %2$s. +death.attack.laser=%1$s was turned into ash by %2$s. +death.attack.laser.item=%1$s was turned into ash by %2$s using %3$s. +death.attack.lead=%1$s died from lead poisoning. +death.attack.lunar=%1$s forgot to charge their vital organs. +death.attack.meteorite=%1$s was hit by a falling rock from outer space. +death.attack.microwave=%1$s was exploded by microwave radiation. +death.attack.mku=%1$s died from unknown causes. +death.attack.monoxide=%1$s forgot to change the batteries in their carbon monoxide detector. +death.attack.mudPoisoning=%1$s died in poisonous mud. +death.attack.nuclearBlast=%1$s was blown away by a nuclear explosion. +death.attack.overdose=%1$s overdosed and asphyxiated. +death.attack.pc=%1$s was reduced to a puddle in the pink cloud. +death.attack.plasma=%1$s was immolated by %2$s. +death.attack.radiation=%1$s died from radiation poisoning. +death.attack.revolverBullet=%1$s was shot in the head by %2$s. +death.attack.revolverBullet.item=%1$s was shot in the head by %2$s using %3$s. +death.attack.rubble=%1$s was squashed by debris. +death.attack.shrapnel=%1$s was ragged by a shrapnel. +death.attack.spikes=%1$s got impaled. +death.attack.subAtomic1=%1$s's atoms have been destroyed by %2$s. +death.attack.subAtomic2=%1$s was QPU-misaligned because %2$s tampered with their de facto speed. +death.attack.subAtomic3=%1$s's divergence dropped below 1 percent because of %2$s. +death.attack.subAtomic4=%1$s was divided by zero by %2$s. +death.attack.subAtomic5=%1$s was nullified by %2$s. +death.attack.suicide=%1$s blew their head off. +death.attack.taint=%1$s died from flux tumors. +death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. +death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. +death.attack.teleporter=%1$s was teleported into nothingness. + +desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! +desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! +desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. +desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core +desc.gui.rttyLogic.cond0=Signal §6LESS THAN§r Constant +desc.gui.rttyLogic.cond1=Signal §6LESS THAN OR EQUAL TO§r Constant +desc.gui.rttyLogic.cond2=Signal §6GREATER THAN OR EQUAL TO§r Constant +desc.gui.rttyLogic.cond3=Signal §6GREATER THAN§r Constant +desc.gui.rttyLogic.cond4=Signal §6EQUAL TO§r Constant +desc.gui.rttyLogic.cond5=Signal §6NOT EQUAL TO§r Constant +desc.gui.rttyLogic.cond6=Signal §6MATCHES§r String +desc.gui.rttyLogic.cond7=Signal §6DOES NOT MATCH§r String +desc.gui.rttyLogic.cond8=Signal §6CONTAINS§r String +desc.gui.rttyLogic.cond9=Signal §6DOES NOT CONTAIN§r String +desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. +desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay +desc.gui.rtg.heat=§eCurrent heat level: %s +desc.gui.rtg.pellets=Accepted Pellets: +desc.gui.rtg.pelletHeat=%s (%s heat) +desc.gui.rtg.pelletPower=%s (%s HE/tick) +desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. +desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network +desc.gui.turbinegas.fuels=§6Accepted fuels:§r +desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r +desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. +desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! +desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! +desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! + +desc.item.ammo.con_accuracy2=- Highly decreased accuracy +desc.item.ammo.con_damage=- Highly decreased damage +desc.item.ammo.con_heavy_wear=- Highly increased wear +desc.item.ammo.con_ling_fire=- No lingering fire +desc.item.ammo.con_nn=- Not even a nuke +desc.item.ammo.con_no_damage=- No damage +desc.item.ammo.con_no_explode1=- Non-explosive +desc.item.ammo.con_no_explode2=- No block damage +desc.item.ammo.con_no_explode3=- No splash damage +desc.item.ammo.con_no_fire=- Not incendiary +desc.item.ammo.con_no_mirv=- Not recommended for the Proto MIRV +desc.item.ammo.con_no_projectile=- No projectile +desc.item.ammo.con_penetration=- Not penetrating +desc.item.ammo.con_radius=- Decreased blast radius +desc.item.ammo.con_range2=- Highly decreased range +desc.item.ammo.con_sing_projectile=- Single projectile +desc.item.ammo.con_speed=- Decreased projectile speed +desc.item.ammo.con_super_wear=- Very highly increased wear +desc.item.ammo.con_wear=- Increased wear +desc.item.ammo.neu_40mm=* It's a 40mm grenade that we squeezed to fit the barrel! +desc.item.ammo.neu_blank=* It's a blank +desc.item.ammo.neu_boat=* Boat +desc.item.ammo.neu_boxcar=* Boxcar +desc.item.ammo.neu_building=* Building +desc.item.ammo.neu_chlorophyte=* Chlorophyte +desc.item.ammo.neu_eraser=* For removing big mistakes +desc.item.ammo.neu_fun=* Fun for the whole family! +desc.item.ammo.neu_heavy_metal=* Heavy Metal +desc.item.ammo.neu_homing=* Homing +desc.item.ammo.neu_jolt=* Jolt +desc.item.ammo.neu_leadburster=* Attaches to surfaces and sprays bullets +desc.item.ammo.neu_less_bouncy=* Less bouncy +desc.item.ammo.neu_maskman_flechette=* Fires a tracer which summons a storm of DU-flechettes +desc.item.ammo.neu_maskman_meteorite=* Fires a high-damage round that summons a small meteorite +desc.item.ammo.neu_more_bouncy=* Extra bouncy +desc.item.ammo.neu_no_bounce=* Not bouncy +desc.item.ammo.neu_no_con=* No drawbacks lole +desc.item.ammo.neu_starmetal=* Starmetal +desc.item.ammo.neu_tracer=* Tracer +desc.item.ammo.neu_uhh=* Uhhh +desc.item.ammo.neu_warcrime1=* Technically a warcrime +desc.item.ammo.neu_warcrime2=* Twice the warcrime in a single round! +desc.item.ammo.pro_accurate1=+ Increased accuracy +desc.item.ammo.pro_accurate2=+ Near-perfect accuracy +desc.item.ammo.pro_balefire=+ Balefire +desc.item.ammo.pro_bomb_count=+ Increased bomb count +desc.item.ammo.pro_caustic=+ Caustic +desc.item.ammo.pro_chainsaw=+ Chainsaw +desc.item.ammo.pro_chlorine=+ Chlorine gas +desc.item.ammo.pro_damage=+ Increased damage +desc.item.ammo.pro_damage_slight=+ Above average damage +desc.item.ammo.pro_emp=+ EMP +desc.item.ammo.pro_explosive=+ Explosive +desc.item.ammo.pro_fallout=+ Fallout +desc.item.ammo.pro_fit_357=+ Fits every .357 model +desc.item.ammo.pro_flames=+ Increased flame count +desc.item.ammo.pro_gravity=+ Decreased gravity +desc.item.ammo.pro_heavy_damage=+ Highly increased damage +desc.item.ammo.pro_incendiary=+ Incendiary +desc.item.ammo.pro_lunatic=+ Lunatic +desc.item.ammo.pro_marauder=+ Instantly removes annoying and unbalanced enemies +desc.item.ammo.pro_mining=+ Explosion drops all blocks +desc.item.ammo.pro_no_gravity=+ Not affected by gravity +desc.item.ammo.pro_nuclear=+ Nuclear +desc.item.ammo.pro_penetration=+ Penetrating +desc.item.ammo.pro_percussion=+ Percussive blast +desc.item.ammo.pro_phosphorus=+ Induces phosphorus burns +desc.item.ammo.pro_phosphorus_splash=+ Phosphorus splash +desc.item.ammo.pro_poison_gas=+ Poison splash +desc.item.ammo.pro_radius=+ Increased blast radius +desc.item.ammo.pro_radius_high=+ Highly increased blast radius +desc.item.ammo.pro_range=+ Increased range +desc.item.ammo.pro_rocket=+ Rocket +desc.item.ammo.pro_rocket_propelled=+ Rocket Propelled +desc.item.ammo.pro_shrapnel=+ Shrapnel +desc.item.ammo.pro_speed=+ Increased projectile speed +desc.item.ammo.pro_stunning=+ Stunning +desc.item.ammo.pro_toxic=+ Toxic +desc.item.ammo.pro_wear=+ Decreased wear +desc.item.ammo.pro_withering=+ Withering +desc.item.armorMod.display=to display installed armor mods +desc.item.battery.charge=Charge: %s / %sHE +desc.item.battery.chargePerc=Charge: %s%% +desc.item.battery.chargeRate=Charge rate: %sHE/tick +desc.item.battery.dischargeRate=Discharge rate: %sHE/tick +desc.item.durability=Durability: %s +desc.item.grenade.fuse=Fuse: %s +desc.item.grenade.fuseImpact=Impact +desc.item.grenade.fuseInstant=Instant +desc.item.gun.ammo=Ammo %s +desc.item.gun.ammoBelt=Belt +desc.item.gun.ammoEnergy=Energy; %sHE per shot +desc.item.gun.ammoEnergyAlt=%sHE per alt shot +desc.item.gun.ammoMag=%s / %s +desc.item.gun.ammoType=Ammo Type: %s +desc.item.gun.ammoTypeAlt=Secondary Ammo: %s +desc.item.gun.damage=Damage: %s - %s +desc.item.gun.damageAlt=Damage: %s +desc.item.gun.lore=to view in-depth lore +desc.item.gun.loreFunc=to view in-depth functionality +desc.item.gun.manufacturer=Manufacturer: %s +desc.item.gun.name=Name: %s +desc.item.gun.pellets=Projectiles: %s - %s +desc.item.gun.penetration=Armor Penetration Value: %s +desc.item.kitArmor=Armor will be displaced by new set. +desc.item.kitHaz=Armor will be displaced by hazmat suit. +desc.item.kitPack=What a bargain! +desc.item.kitPool=Please empty inventory before opening! +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pipette.corrosive=Can handle corrosive liquids. +desc.item.pipette.laboratory=Now with 50x more precision! +desc.item.pipette.noCorrosive=§eCannot handle corrosive liquids. +desc.item.pipette.noEmpty=§ePipette not empty! +desc.item.rtgDecay=Decays to: %s +desc.item.rtgHeat=Power Level: %s +desc.item.storage.capacity=Capacity %s%%s +desc.item.storage.proscons=to view pros cons list +desc.misc.357=.357 Magnum +desc.misc.556=.223 Remington +desc.misc.762=.308 Winchester +desc.misc.func=§n-- Function -- +desc.misc.lanthanum="Lanthanum" +desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Lore -- +desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: §c%s +desc.misc.noPos=No position set! +desc.misc.pos=Set pos to: %s, %s, %s +desc.misc.posSet=Position set! +desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum +desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks +desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks + +digamma.playerDigamma=Digamma exposure: +digamma.playerHealth=Digamma influence: +digamma.playerRes=Digamma resistance: +digamma.title=DIGAMMA DIAGNOSTIC + +entity.entity_cyber_crab.name=Cyber Crab +entity.entity_elder_one.name=Quackos The Elder One +entity.entity_fucc_a_ducc.name=Duck +entity.entity_glyphid.name=Glyphid +entity.entity_glyphid_behemoth.name=Glyphid Behemoth +entity.entity_glyphid_blaster.name=Glyphid Blaster +entity.entity_glyphid_bombardier.name=Glyphid Bombardier +entity.entity_glyphid_brawler.name=Glyphid Brawler +entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_digger.name=Glyphid Digger +entity.entity_glyphid_nuclear.name=Big Man Johnson +entity.entity_glyphid_scout.name=Glyphid Scout +entity.entity_ntm_fbi.name=FBI Agent +entity.entity_ntm_fbi_drone.name=FBI Drone +entity.entity_ntm_radiation_blaze.name=Meltdown Elemental +entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship +entity.entity_mob_hunter_chopper.name=Hunter Chopper +entity.entity_mob_mask_man.name=Mask Man +entity.entity_mob_gold_creeper.name=Golden Creeper +entity.entity_mob_nuclear_creeper.name=Nuclear Creeper +entity.entity_mob_phosgene_creeper.name=Phosgene Creeper +entity.entity_mob_tainted_creeper.name=Tainted Creeper +entity.entity_mob_volatile_creeper.name=Volatile Creeper +entity.entity_parasite_maggot.name=Parasitic Maggot +entity.entity_pigeon.name=Pigeon +entity.entity_plastic_bag.name=Plastic Bag +entity.entity_taint_crab.name=Taint Crab +entity.entity_tesla_crab.name=Tesla Crab +entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime +entity.hbm.entity_balls_o_tron_seg.name=Balls-O-Tron Segment +entity.hbm.entity_bullet.name=Bullet +entity.hbm.entity_rocket.name=Rocket +entity.hbm.entity_schrabnel.name=Schrabnel + +excavator.crusher=Toggle Crusher +excavator.drill=Toggle Drill +excavator.silktouch=Toggle Silk Touch +excavator.veinminer=Toggle Vein Miner +excavator.walling=Toggle Walling + +flare.ignition=Ignition +flare.valve=Flow Valve + +fluid.acid_fluid=Acid +fluid.corium_fluid=Corium +fluid.mud_fluid=Poisonous Mud +fluid.rad_lava_fluid=Volcanic Lava +fluid.schrabidic_fluid=Schrabidic Acid +fluid.toxic_fluid=Stereotypical Green Ooze +fluid.volcanic_lava_fluid=Volcanic Lava + +foundry.filter=Filter: %s +foundry.inverted=Redstone inverted +foundry.invertFilter=Filter inverted +foundry.noCast=No mold installed! + +geiger.chunkRad=Current chunk radiation: +geiger.envRad=Total environmental radiation: +geiger.playerRad=Player contamination: +geiger.playerRes=Player resistance: +geiger.title=GEIGER COUNTER +geiger.title.dosimeter=DOSIMETER + +gun.make.ARMALITE=Armalite +gun.make.AUTO_ORDINANCE=Auto-Ordnance Corporation +gun.make.BAE=BAE Systems plc +gun.make.BENELLI=Benelli Armi SpA +gun.make.BLACK_MESA=Black Mesa Research Facility +gun.make.CERIX=Cerix Magnus +gun.make.COLT=Colt's Manufacturing Company +gun.make.COMBINE=The Universal Union +gun.make.CUBE=Cube 2: Sauerbraten +gun.make.DRG=Deep Rock Galactic +gun.make.ENZINGER=Enzinger Union +gun.make.EQUESTRIA=Equestria Missile Systems +gun.make.FLIMFLAM=FlimFlam Industries +gun.make.F_STRONG=Fort Strong +gun.make.GLORIA=Gloria GmbH +gun.make.HASBRO=Hasbro +gun.make.H_AND_K=Heckler & Koch +gun.make.H_AND_R=Harrington & Richardson +gun.make.IF=Ironshod Firearms +gun.make.IMI=Israel Military Industries +gun.make.IMI_BIGMT=IMI / Big MT +gun.make.LANGFORD=Langford Research Laboratories +gun.make.LUNA=Lunar Defense Corp +gun.make.MAGNUM_R_IMI=Magnum Research / Israel Military Industries +gun.make.MANN=Open Mann Co. +gun.make.MAXIM=Hiram Maxim +gun.make.METRO=Metro Gunsmiths +gun.make.MWT=MWT Prototype Labs +gun.make.NAWS=Kayarm Industries +gun.make.ERFURT=Erfurter Maschinenfabrik Geipel +gun.make.NONE=- +gun.make.RAYTHEON=Raytheon Missile Systems +gun.make.REMINGTON=Remington Arms +gun.make.ROCKWELL=Rockwell International Corporation +gun.make.ROCKWELL_U=Rockwell International Corporation? +gun.make.RYAN=Ryan Industries +gun.make.SAAB=Saab Bofors Dynamics +gun.make.SACO=Saco Defense / US Ordnance +gun.make.TULSKY=Tulsky Oruzheiny Zavod +gun.make.UAC=Union Aerospace Corporation +gun.make.UNKNOWN=??? +gun.make.WESTTEK=WestTek +gun.make.WGW=Wilhelm-Gustloff-Werke +gun.make.WINCHESTER=Winchester Repeating Arms Company +gun.make.WINCHESTER_BIGMT=Winchester Repeating Arms Company / Big MT + +gun.name.ar15_50=AR-15 .50 BMG Mod +gun.name.baeAR=Britannian Standard Issue Assault Rifle +gun.name.bel=Balefire Egg Launcher +gun.name.benelli=Benelli M4 Super 90 +gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) +gun.name.bio=RI No. 2 Mark 1 +gun.name.bolter=Manticora Pattern Boltgun +gun.name.congoLake=Congo Lake Pump-Action Grenade Launcher +gun.name.cPython=Colt Python +gun.name.cz53=CZ53 Personal Minigun +gun.name.cz57=CZ57 Avenger Minigun +gun.name.dart=Needle Gun +gun.name.deagle=IMI Desert Eagle +gun.name.emp=EMP Orb Projector +gun.name.extinguisher=PROTEX Fire Exinguisher 6kg +gun.name.ffiV=FFI Viper +gun.name.ffiVInox=FFI Viper Inox +gun.name.ffiVLead=FFI Viper Lead +gun.name.ffiVN1=FFI Viper N1 +gun.name.ffiVN2=FFI Viper N2 +gun.name.ffiVUltra=FFI Viper Ultra +gun.name.ffivBling=FFI Viper Bling +gun.name.ffivSatur=FFI Viper D-25A +gun.name.g36=Heckler & Koch Gewehr 36 +gun.name.gPistol=Granatpistole HK69 +gun.name.gustav=Carl Gustav Recoilless Rifle M1 +gun.name.ifHorseshoe=IF-18 Horseshoe +gun.name.ifPit=IF-18 Horseshoe Bottomless Pit +gun.name.ifScope=IF-18 Horseshoe Scoped +gun.name.ifStorm=IF-18 Horseshoe Silver Storm +gun.name.ifVanity=IF-18 Horseshoe Vanity +gun.name.karl=M1 Karl-GerÀt +gun.name.ks23=KS-23 +gun.name.lacunae=Auntie Lacunae +gun.name.lasetDet=Hopeville Laser Detonator +gun.name.lunaAR=1986 Bishamonten type Assault Rifle +gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) +gun.name.lunaHLR=1944 Chang'e type Light Machine Gun +gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) +gun.name.lunaSMG=1956 Ānanda type Submachine Gun +gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle +gun.name.lunaTWR=Time Warp Rifle +gun.name.m2=Browning machine gun, cal. .50, M2, HB +gun.name.m42=M-42 Tactical Nuclear Catapult +gun.name.m42MIRV=M-42 Experimental MIRV +gun.name.m60=Machine Gun, Caliber 7.62 mm, M60 +gun.name.maxim=Maxim gun +gun.name.maximDouble=Double Maxim gun +gun.name.mg3=Universal-Maschinengewehr Modell 3 +gun.name.mp40=Maschinenpistole 40 +gun.name.nerf=NERF blaster of unknown design +gun.name.osipr=Overwatch Standard Issue Pulse Rifle +gun.name.panz=RaketenpanzerbÃŒchse 54 +gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher +gun.name.remington870=Remington 870 +gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun +gun.name.sauer=Sauer Shotgun +gun.name.spas12=Franchi SPAS-12 +gun.name.spiw=H&R SPIW +gun.name.stinger=FIM-92 Stinger man-portable air-defense system +gun.name.stingerOneSky=The One Sky Stinger +gun.name.supershotty=Double-Barreled Combat Shotgun +gun.name.tau=XVL1456 Tau Cannon +gun.name.tommy9=M1A1 Submachine Gun 9mm Mod +gun.name.tommy=M1A1 Submachine Gun +gun.name.topaz=Heavy Duty Flamer +gun.name.uacCarbine=UAC-41 Carbine +gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag +gun.name.uacDMR=UAC-30 Designated Marksman Rifle +gun.name.uacLMG=UAC-49 Light Machine Gun +gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun +gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun +gun.name.uboinik=Uboinik Revolving Shotgun +gun.name.uzi=IMI Uzi +gun.name.uziSatur=IMI Uzi D-25A +gun.name.win1887=Winchester Model 1887 +gun.name.win1887Inox=Winchester Model 1887 Inox +gun.name.win20Inox=Winchester Model 20 Inox +gun.name.win20Poly=Winchester Model 20 Polymer +gun.name.win20Satur=Winchester Model 20 D-25A +gun.name.zomg=EMC101 Prismatic Negative Energy Cannon + +hadron.analysis=Analyzing... +hadron.buttonOn=Analysis Chamber (if present) is ON +hadron.buttonOff=Analysis Chamber is OFF +hadron.error_generic=Error! +hadron.error_no_charge=Error 0x01 [NC] +hadron.error_no_analysis=Error 0x02 [NA] +hadron.error_obstructed_channel=Error 0x03 [OC] +hadron.error_expected_coil=Error 0x04 [EC] +hadron.error_malformed_segment=Error 0x05 [MS] +hadron.error_analysis_too_long=Error 0x06 [ATL] +hadron.error_analysis_too_short=Error 0x07 [ATS] +hadron.error_diode_collision=Error 0x08 [DC] +hadron.error_branching_turn=Error 0x09 [BT] +hadron.hopper0=§eNormal Mode:$All items will be used. +hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper2=§eSingle Mode:$Only allows one item per slot. +hadron.idle=Idle +hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. +hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. +hadron.noresult=No Result. +hadron.noresult_too_slow=Insuff. momentum! +hadron.noresult_wrong_ingredient=Invalid recipe! +hadron.noresult_wrong_mode=Wrong mode! +hadron.progress=In Progress... +hadron.stats=Previous results: +hadron.stats_coord=Erroring position: %s / %s / %s +hadron.stats_momentum=Momentum: %s +hadron.success=Completed! + +hazard.prot=Protects against hazards: +hazard.noprot=Does NOT protect against: +hazard.bacteria=Bacteria / Aerosols +hazard.corrosive=Corrosive Fumes +hazard.gasChlorine=Chemical Gas +hazard.gasInert=Inert Gas / Asphxiants +hazard.gasMonoxide=Carbon Monoxide +hazard.light=Bright Lights +hazard.nerveAgent=Nerve Agent +hazard.neverProtects=Will never protect against: +hazard.particleCoarse=Airborne Particles +hazard.particleFine=Particulates +hazard.sand=Eye Irritants + +hbm.key=NTM Hotkeys +hbm.key.calculator=Calculator +hbm.key.craneLoad=Load/Unload Crane +hbm.key.craneMoveDown=Move Crane Backward +hbm.key.craneMoveLeft=Move Crane Left +hbm.key.craneMoveRight=Move Crane Right +hbm.key.craneMoveUp=Move Crane Forward +hbm.key.dash=Dash (Unbind from Crouch in config) +hbm.key.toggleBack=Toggle Backpack +hbm.key.toggleHUD=Toggle HUD +hbm.key.reload=Reload + +hbmfluid.amat=Antimatter +hbmfluid.aromatics=Aromatic Hydrocarbons +hbmfluid.aschrab=Antischrabidium +hbmfluid.balefire=BF Rocket Fuel +hbmfluid.biofuel=Biofuel +hbmfluid.biogas=Biogas +hbmfluid.bitumen=Bitumen +hbmfluid.blood=Blood +hbmfluid.blood_hot=Hot Blood +hbmfluid.calcium_chloride=Calciumchloride Solution +hbmfluid.calcium_solution=Calcium Solution +hbmfluid.carbondioxide=Carbon Dioxide +hbmfluid.chlorine=Chlorine Gas +hbmfluid.chlorocalcite_cleaned=Cleaned Chlorocalcite Solution +hbmfluid.chlorocalcite_mix=Mixed Chlorocalcite Solution +hbmfluid.chlorocalcite_solution=Chlorocalcite Solution +hbmfluid.cholesterol=Cholesterol Solution +hbmfluid.coalcreosote=Coal Tar Creosote +hbmfluid.coalgas=Coal Gasoline +hbmfluid.coalgas_leaded=Leaded Coal Gasoline +hbmfluid.coaloil=Coal Oil +hbmfluid.colloid=Colloid +hbmfluid.coolant=Coolant +hbmfluid.coolant_hot=Hot Coolant +hbmfluid.crackoil=Cracked Oil +hbmfluid.crackoil_ds=Desulfurized Cracked Oil +hbmfluid.cryogel=Cryogel +hbmfluid.death=Osmiridic Solution +hbmfluid.deuterium=Deuterium +hbmfluid.diesel=Diesel +hbmfluid.diesel_crack=Cracked Diesel +hbmfluid.diesel_crack_reform=High-Octane Cracked Diesel +hbmfluid.diesel_reform=High-Octane Diesel +hbmfluid.egg=Dissolved Egg +hbmfluid.estradiol=Estradiol Solution +hbmfluid.ethanol=Ethanol +hbmfluid.enderjuice=Ender Juice +hbmfluid.fishoil=Fish Oil +hbmfluid.fracksol=Fracking Solution +hbmfluid.fullerene=Fullerene Solution +hbmfluid.gas=Natural Gas +hbmfluid.gas_coker=Coker Gas +hbmfluid.gasoline=Gasoline +hbmfluid.gasoline_leaded=Leaded Gasoline +hbmfluid.heatingoil=Heating Oil +hbmfluid.heatingoil_vacuum=Heavy Heating Oil +hbmfluid.heavyoil=Heavy Oil +hbmfluid.heavyoil_vacuum=Vacuum Heavy Oil +hbmfluid.heavywater=Heavy Water +hbmfluid.heavywater_hot=Hot Heavy Water +hbmfluid.helium3=Helium-3 +hbmfluid.helium4=Helium-4 +hbmfluid.hotcrackoil=Hot Cracked Oil +hbmfluid.hotcrackoil_ds=Desulfurized Hot Cracked Oil +hbmfluid.hotoil=Hot Crude Oil +hbmfluid.hotoil_ds=Desulfurized Hot Crude Oil +hbmfluid.hotsteam=Dense Steam +hbmfluid.hydrogen=Liquid Hydrogen +hbmfluid.iongel=Ionic Gel +hbmfluid.kerosene=Kerosene +hbmfluid.kerosene_reform=Jet Fuel +hbmfluid.lava=Lava +hbmfluid.lightoil=Light Oil +hbmfluid.lightoil_crack=Cracked Light Oil +hbmfluid.lightoil_ds=Desulfurized Light Oil +hbmfluid.lightoil_vacuum=Vacuum Light Oil +hbmfluid.lpg=LPG +hbmfluid.lubricant=Engine Lubricant +hbmfluid.mercury=Mercury +hbmfluid.mug=Mug Root Beer +hbmfluid.mug_hot=Hot Mug Root Beer +hbmfluid.mustardgas=Mustard Gas +hbmfluid.naphtha=Naphtha +hbmfluid.naphtha_coker=Coker Naphtha +hbmfluid.naphtha_crack=Cracked Naphtha +hbmfluid.naphtha_ds=Desulfurized Naphtha +hbmfluid.nitan=NITAN© 100 Octane Super Fuel +hbmfluid.nitric_acid=Nitric Acid +hbmfluid.nitroglycerin=Nitroglycerin +hbmfluid.none=None +hbmfluid.oil=Crude Oil +hbmfluid.oil_coker=Coker Oil +hbmfluid.oil_ds=Desulfurized Crude Oil +hbmfluid.oxygen=Liquid Oxygen +hbmfluid.oxyhydrogen=Oxyhydrogen +hbmfluid.pain=Pandemonium(III)tantalite Solution +hbmfluid.peroxide=Hydrogen Peroxide +hbmfluid.petroil=Petroil +hbmfluid.petroil_leaded=Leaded Petroil +hbmfluid.petroleum=Petroleum Gas +hbmfluid.pheromone=Booster Pheromone +hbmfluid.pheromone_m=Modified Booster Pheromone +hbmfluid.phosgene=Phosgene +hbmfluid.plasma_bf=Balefire Plasma +hbmfluid.plasma_dh3=Deuterium-Helium-3 Plasma +hbmfluid.plasma_dt=Deuterium-Tritium Plasma +hbmfluid.plasma_hd=Hydrogen-Deuterium Plasma +hbmfluid.plasma_ht=Hydrogen-Tritium Plasma +hbmfluid.plasma_xm=Helium-4-Oxygen Plasma +hbmfluid.potassium_chloride=Potassiumchloride Solution +hbmfluid.puf6=Plutonium Hexafluoride +hbmfluid.radiosolvent=High-Performance Solvent +hbmfluid.reclaimed=Reclaimed Industrial Oil +hbmfluid.redmud=Red Mud +hbmfluid.reformate=Reformate +hbmfluid.reformgas=Reformate Gas +hbmfluid.salient=Salient Green +hbmfluid.sas3=Schrabidium Trisulfide +hbmfluid.schrabidic=Schrabidic Acid +hbmfluid.seedslurry=Seeding Slurry +hbmfluid.smear=Industrial Oil +hbmfluid.smoke=Smoke +hbmfluid.smoke_leaded=Leaded Smoke +hbmfluid.smoke_poison=Poison Smoke +hbmfluid.sodium=Liquid Sodium +hbmfluid.sodium_hot=Hot Liquid Sodium +hbmfluid.solvent=Solvent +hbmfluid.sourgas=Sour Gas +hbmfluid.spentsteam=Low-Pressure Steam +hbmfluid.steam=Steam +hbmfluid.stellar_flux=Stellar Flux +hbmfluid.sulfuric_acid=Sulfuric Acid +hbmfluid.sunfloweroil=Sunflower Seed Oil +hbmfluid.superhotsteam=Super Dense Steam +hbmfluid.syngas=Syngas +hbmfluid.thorium_salt=Liquid Thorium Salt +hbmfluid.thorium_salt_depleted=Depleted Liquid Thorium Salt +hbmfluid.thorium_salt_hot=Hot Liquid Thorium Salt +hbmfluid.tritium=Tritium +hbmfluid.uf6=Uranium Hexafluoride +hbmfluid.ultrahotsteam=Ultra Dense Steam +hbmfluid.unsaturateds=Unsaturated Hydrocarbons +hbmfluid.wastefluid=Liquid Nuclear Waste +hbmfluid.wastegas=Gaseous Nuclear Waste +hbmfluid.water=Water +hbmfluid.watz=Poisonous Mud +hbmfluid.woodoil=Wood Oil +hbmfluid.xenon=Xenon Gas +hbmfluid.xpjuice=Experience Juice +hbmfluid.xylene=BTX + + + +hbmpseudofluid.none=Empty +hbmpseudofluid.heuf6=Highly Enriched UF6 +hbmpseudofluid.meuf6=Medium Enriched UF6 +hbmpseudofluid.leuf6=Low Enriched UF6 +hbmpseudofluid.nuf6=Natural UF6 +hbmpseudofluid.pf6=Plutonium Hexafluoride +hbmpseudofluid.mud_heavy=Heavy Sludge Fraction +hbmpseudofluid.mud=Poisonous Sludge Gas + +hbmmat.actinium227=Actinium-227 +hbmmat.advancedalloy=Advanced Alloy +hbmmat.aluminum=Aluminium +hbmmat.americiumrg=Reactor-Grade Americium +hbmmat.americium241=Americium-241 +hbmmat.americium242=Americium-242 +hbmmat.arsenic=Arsenic +hbmmat.arsenicbronze=Arsenic Bronze +hbmmat.asbestos=Asbestos +hbmmat.bakelite=Bakelite +hbmmat.beryllium=Beryllium +hbmmat.bismuth=Bismuth +hbmmat.bismuthbronze=Bismuth Bronze +hbmmat.borax=Borax +hbmmat.boron=Boron +hbmmat.cadmium=Cadmium +hbmmat.calcium=Calcium +hbmmat.carbon=Carbon +hbmmat.cdalloy=Cadmium Steel +hbmmat.cinnabar=Cinnabar +hbmmat.cmbsteel=Combine Steel +hbmmat.coal=Coal +hbmmat.coalcoke=Coal Coke +hbmmat.cobalt=Cobalt +hbmmat.cobalt60=Cobalt-60 +hbmmat.coltan=Coltan +hbmmat.copper=Copper +hbmmat.desh=Desh +hbmmat.dineutronium=Dineutronium +hbmmat.durasteel=High-Speed Steel +hbmmat.euphemium=Euphemium +hbmmat.ferrouranium=Ferrouranium +hbmmat.fiberglass=Fiberglass +hbmmat.fluorite=Fluorite +hbmmat.flux=Flux +hbmmat.ghiorsium336=Ghiorsium-336 +hbmmat.gold=Gold +hbmmat.gold198=Gold-198 +hbmmat.graphene=Graphene +hbmmat.graphite=Graphite +hbmmat.hematite=Hematite +hbmmat.iron=Iron +hbmmat.lapis=Lapis Lazuli +hbmmat.lead=Lead +hbmmat.lead209=Lead-209 +hbmmat.lignitecoke=Lignite Coke +hbmmat.lignite=Lignite +hbmmat.lithium=Lithium +hbmmat.magnetizedtungsten=Magnetized Tungsten +hbmmat.malachite=Malachite +hbmmat.meteoriciron=Meteoric Iron +hbmmat.mingrade=Minecraft Grade Copper +hbmmat.neodymium=Neodymium +hbmmat.neptunium237=Neptunium-237 +hbmmat.niobium=Niobium +hbmmat.obsidian=Obsidian +hbmmat.osmiridium=Osmiridium +hbmmat.petcoke=Petroleum Coke +hbmmat.pigiron=Pig Iron +hbmmat.plutonium=Plutonium +hbmmat.plutonium238=Plutonium-238 +hbmmat.plutonium239=Plutonium-239 +hbmmat.plutonium240=Plutonium-240 +hbmmat.plutonium241=Plutonium-241 +hbmmat.plutoniumrg=Reactor-Grade Plutonium +hbmmat.polonium210=Polonium-210 +hbmmat.polymer=Polymer +hbmmat.radium226=Radium-226 +hbmmat.redphosphorus=Red Phosphorus +hbmmat.redstone=Redstone +hbmmat.rubber=Rubber +hbmmat.saltpeter=Niter +hbmmat.saturnite=Saturnite +hbmmat.schrabidate=Ferric Schrabidate +hbmmat.schrabidium=Schrabidium +hbmmat.schraranium=Schraranium +hbmmat.silicon=Silicon +hbmmat.slag=Slag +hbmmat.sodium=Sodium +hbmmat.solinium=Solinium +hbmmat.starmetal=Starmetal +hbmmat.steel=Steel +hbmmat.stone=Stone +hbmmat.sulfur=Sulfur +hbmmat.tantalum=Tantalum +hbmmat.tcalloy=Technetium Steel +hbmmat.technetium99=Technetium-99 +hbmmat.titanium=Titanium +hbmmat.thorium232=Thorium-232 +hbmmat.tungsten=Tungsten +hbmmat.uranium=Uranium +hbmmat.uranium233=Uranium-233 +hbmmat.uranium235=Uranium-235 +hbmmat.uranium238=Uranium-238 +hbmmat.watzmud=Poisonous Mud +hbmmat.whitephosphorus=White Phosphorus +hbmmat.workersalloy=Desh +hbmmat.wroughtiron=Wroght Iron +hbmmat.zirconium=Zirconium + +matshape.block=%s Block +matshape.blocks=%s Blocks +matshape.ingot=%s Ingot +matshape.ingots=%s Ingots +matshape.nugget=%s Nugget +matshape.nuggets=%s Nuggets +matshape.quantum=%s Quantum +matshape.quanta=%s Quanta + +icffuel.beryllium=Beryllium +icffuel.boron=Boron +icffuel.carbon=Carbon +icffuel.calcium=Calcium +icffuel.chlorine=Chlorine +icffuel.deuterium=Deuterium +icffuel.helium3=Helium-3 +icffuel.helium4=Helium-4 +icffuel.hydrogen=Hydrogen +icffuel.lithium=Lithium +icffuel.oxygen=Oxygen +icffuel.sodium=Sodium +icffuel.tritium=Tritium + +info.asbestos=My lungs are burning. +info.coaldust=It's hard to breathe here. +info.coil=Coil Strength +info.templatefolder=Created with %s +info.template_in=Input: +info.template_in_p=Inputs: +info.template_out=Output: +info.template_out_p=Outputs: +info.template_seconds=seconds +info.template_time=Production Time: + +item.acetylene_torch.name=Acetylene Welding Torch +item.ajr_boots.name=Steel Ranger Boots +item.ajr_helmet.name=Steel Ranger Helmet +item.ajr_legs.name=Steel Ranger Leggings +item.ajr_plate.name=Steel Ranger Chestplate +item.ajro_boots.name=AJR Power Armor Boots +item.ajro_helmet.name=AJR Power Armor Helmet +item.ajro_legs.name=AJR Power Armor Leggings +item.ajro_plate.name=AJR Power Armor Chestplate +item.alloy_axe.name=Advanced Alloy Axe +item.alloy_boots.name=Advanced Alloy Boots +item.alloy_helmet.name=Advanced Alloy Helmet +item.alloy_hoe.name=Advanced Alloy Hoe +item.alloy_legs.name=Advanced Alloy Leggings +item.alloy_pickaxe.name=Advanced Alloy Pickaxe +item.alloy_plate.name=Advanced Alloy Chestplate +item.alloy_shovel.name=Advanced Alloy Shovel +item.alloy_sword.name=Advanced Alloy Sword +item.ammo_12gauge.name=12 Gauge Buckshot +item.ammo_12gauge_du.name=12 Gauge Buckshot (Uranium Coated) +item.ammo_12gauge_incendiary.name=12 Gauge Buckshot (Incendiary) +item.ammo_12gauge_marauder.name=12 Gauge Tactical Anti-Marauder Shell +item.ammo_12gauge_percussion.name=12 Gauge Percussion Cap +item.ammo_12gauge_shrapnel.name=12 Gauge Buckshot (Shrapnel) +item.ammo_12gauge_sleek.name=12 Gauge Buckshot (IF-R&D) +item.ammo_20gauge.name=20 Gauge Buckshot +item.ammo_20gauge_caustic.name=20 Gauge Buckshot (Caustic) +item.ammo_20gauge_explosive.name=20 Gauge Buckshot (Explosive) +item.ammo_20gauge_flechette.name=20 Gauge Flechette Shell +item.ammo_20gauge_incendiary.name=20 Gauge Buckshot (Incendiary) +item.ammo_20gauge_shock.name=20 Gauge Buckshot (Shock) +item.ammo_20gauge_shrapnel.name=20 Gauge Buckshot (Shrapnel) +item.ammo_20gauge_sleek.name=20 Gauge Buckshot (IF-R&D) +item.ammo_20gauge_slug.name=20 Gauge Brenneke Slug +item.ammo_20gauge_wither.name=20 Gauge Buckshot (Withering) +item.ammo_22lr.name=.22 LR Round +item.ammo_22lr_ap.name=.22 LR Round (Armor Piercing) +item.ammo_22lr_chlorophyte.name=.22 LR Round (Chlorophyte) +item.ammo_357_desh.name=.357 Magnum Desh Bullet +item.ammo_44.name=.44 Magnum Bullet +item.ammo_44_ap.name=.44 Magnum Bullet (Armor Piercing) +item.ammo_44_bj.name=.44 Magnum Bullet (Boat) +item.ammo_44_chlorophyte.name=.44 Magnum Bullet (Chlorophyte) +item.ammo_44_du.name=.44 Magnum Bullet (DU) +item.ammo_44_phosphorus.name=.44 Magnum Bullet (WP) +item.ammo_44_pip.name=.44 Magnum Bullet (Boxcar) +item.ammo_44_rocket.name=.44 Magnum Rocket +item.ammo_44_silver.name=.44 Magnum Bullet (Building) +item.ammo_44_star.name=.44 Magnum Bullet (Starmetal) +item.ammo_45.name=.45 ACP Bullet +item.ammo_45_ap.name=.45 ACP Bullet (AP) +item.ammo_45_du.name=.45 ACP Bullet (DU) +item.ammo_4gauge.name=4 Gauge Buckshot +item.ammo_4gauge_balefire.name=23mm Balefire Grenade +item.ammo_4gauge_canister.name=23mm Rocket (Canister Shot) +item.ammo_4gauge_claw.name=4 Gauge Claw Shell +item.ammo_4gauge_explosive.name=23mm Grenade +item.ammo_4gauge_flechette.name=4 Gauge Flechette Shell +item.ammo_4gauge_flechette_phosphorus.name=4 Gauge Flechette Shell (WP) +item.ammo_4gauge_kampf.name=23mm Rocket +item.ammo_4gauge_semtex.name=23mm Mining Charge +item.ammo_4gauge_sleek.name=4 Gauge Buckshot (IF-R&D) +item.ammo_4gauge_slug.name=4 Gauge Solid Steel Slug +item.ammo_4gauge_titan.name=4 Gauge Quacker Round +item.ammo_4gauge_vampire.name=4 Gauge Wooden Stake Shell +item.ammo_4gauge_void.name=4 Gauge Void Shell +item.ammo_50ae.name=.50 AE Round +item.ammo_50ae_ap.name=.50 AE Round (Armor Piercing) +item.ammo_50ae_chlorophyte.name=.50 AE Round (Chlorophyte) +item.ammo_50ae_du.name=.50 AE Round (DU) +item.ammo_50ae_star.name=.50 AE Round (Starmetal) +item.ammo_50bmg.name=.50 BMG Round +item.ammo_50bmg_ap.name=.50 BMG Round (Armor Piercing) +item.ammo_50bmg_chlorophyte.name=.50 BMG Round (Chlorophyte) +item.ammo_50bmg_du.name=.50 BMG Round (DU) +item.ammo_50bmg_explosive.name=.50 BMG Round (Explosive) +item.ammo_50bmg_flechette.name=.50 BMG Flechette Round +item.ammo_50bmg_flechette_am.name=.50 BMG Flechette Round (Americium) +item.ammo_50bmg_flechette_po.name=.50 BMG Flechette Round (Polonium) +item.ammo_50bmg_incendiary.name=.50 BMG Round (Incendiary) +item.ammo_50bmg_phosphorus.name=.50 BMG Round (WP) +item.ammo_50bmg_sleek.name=.50 BMG Round (IF-R&D) +item.ammo_50bmg_star.name=.50 BMG Round (Starmetal) +item.ammo_556.name=5.56mm Round +item.ammo_556_ap.name=5.56mm Round (Armor Piercing) +item.ammo_556_chlorophyte.name=5.56mm Round (Chlorophyte) +item.ammo_556_du.name=5.56mm Round (DU) +item.ammo_556_flechette.name=5.56mm Flechette Round +item.ammo_556_flechette_chlorophyte.name=5.56mm Flechette Round (Chlorophyte) +item.ammo_556_flechette_du.name=5.56mm Flechette Round (Uranium Penetrator) +item.ammo_556_flechette_incendiary.name=5.56mm Flechette Round (Incendiary) +item.ammo_556_flechette_phosphorus.name=5.56mm Flechette Round (Phosphorus-Tipped) +item.ammo_556_flechette_sleek.name=5.56mm Flechette Round (IF-R&D) +item.ammo_556_k.name=5.56mm K-Round +item.ammo_556_phosphorus.name=5.56mm Round (WP) +item.ammo_556_sleek.name=5.56mm Round (IF-R&D) +item.ammo_556_star.name=5.56mm Round (Starmetal) +item.ammo_556_tracer.name=5.56mm Round (Tracer) +item.ammo_5mm.name=5mm Round +item.ammo_5mm_chlorophyte.name=5mm Round (Chlorophyte) +item.ammo_5mm_du.name=5mm Round (DU) +item.ammo_5mm_explosive.name=5mm Round (Explosive) +item.ammo_5mm_star.name=5mm Round (Starmetal) +item.ammo_75bolt.name=.75 Bolt Magazine (30rnd) +item.ammo_75bolt_incendiary.name=.75 Incendiary Bolt Magazine (30rnd) +item.ammo_75bolt_he.name=.75 Bolt High-Explosive Magazine (30rnd) +item.ammo_762.name=7.62mm Round +item.ammo_762_ap.name=7.62mm Round (AP) +item.ammo_762_du.name=7.62mm Round (DU) +item.ammo_762_k.name=7.62mm K-Round +item.ammo_762_phosphorus.name=7.62mm Round (WP) +item.ammo_762_tracer.name=7.62mm Round (Tracer) +item.ammo_9mm.name=9mm Round +item.ammo_9mm_ap.name=9mm Round (Armor Piercing) +item.ammo_9mm_chlorophyte.name=9mm Round (Chlorophyte) +item.ammo_9mm_du.name=9mm Round (DU) +item.ammo_9mm_rocket.name=9mm Rocket +item.ammo_arty.name=16" Artillery Shell +item.ammo_arty_cargo.name=16" Express Delivery Artillery Shell +item.ammo_arty_chlorine.name=16" Chlorine Gas Artillery Shell +item.ammo_arty_classic.name=16" Artillery Shell (The Factorio Special) +item.ammo_arty_he.name=16" High Explosive Artillery Shell +item.ammo_arty_mini_nuke.name=16" Micro Nuclear Artillery Shell +item.ammo_arty_mini_nuke_multi.name=16" Multi Micro Nuclear Artillery Shell +item.ammo_arty_mustard_gas.name=16" Mustard Gas Artillery Shell +item.ammo_arty_nuke.name=16" Nuclear Artillery Shell +item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell +item.ammo_arty_phosphorus.name=16" Phosphorus Shell +item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell +item.ammo_cell.name=Energy Cell +item.ammo_coilgun.name=Coilgun Tungsten Ball +item.ammo_coilgun_du.name=Coilgun Ferrouranium Ball +item.ammo_coilgun_rubber.name=Coilgun Rubber Ball +item.ammo_container.name=Ammo Container +item.ammo_dart.name=Plastic Dart (Withering) +item.ammo_dart_nerf.name=NERF Dart +item.ammo_dart_nuclear.name=Plastic Dart (Timed Explosive) +item.ammo_dgk.name=Goalkeeper Twin CIWS 200 Round Belt +item.ammo_fireext.name=Fire Extinguisher Water Tank +item.ammo_fireext_foam.name=Fire Extinguisher Foam Tank +item.ammo_fireext_sand.name=Fire Extinguisher Sand Tank +item.ammo_folly.name=Silver Bullet (Original) +item.ammo_folly_du.name=Silver Bullet (DU, Non-Explosive) +item.ammo_folly_nuclear.name=Silver Bullet (Nuclear) +item.ammo_fuel.name=Diesel Tank +item.ammo_fuel_gas.name=Gas Tank +item.ammo_fuel_napalm.name=Napalm Tank +item.ammo_fuel_phosphorus.name=WP Tank +item.ammo_fuel_vaporizer.name=Vaporizer Tank +item.ammo_grenade.name=40mm Grenade +item.ammo_grenade_concussion.name=40mm Grenade (Concussion) +item.ammo_grenade_finned.name=40mm Grenade (Finned) +item.ammo_grenade_he.name=40mm Grenade (HE) +item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) +item.ammo_grenade_kampf.name=40mm Rocket +item.ammo_grenade_leadburster.name=40mm Leadburster +item.ammo_grenade_nuclear.name=40mm Grenade (ПрОвет) +item.ammo_grenade_phosphorus.name=40mm Grenade (WP) +item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) +item.ammo_grenade_toxic.name=40mm Grenade (Chemical) +item.ammo_grenade_tracer.name=40mm Training Grenade +item.ammo_himars_standard.name=227mm Guided Artillery Rocket Pod +item.ammo_himars_standard_he.name=227mm Guided Artillery Rocket Pod (HE) +item.ammo_himars_standard_lava.name=227mm Guided Artillery Rocket Pod (Lava) +item.ammo_himars_standard_mini_nuke.name=227mm Guided Artillery Rocket Pod (Mini Nuke) +item.ammo_himars_standard_tb.name=227mm Guided Artillery Rocket Pod (Thermobaric) +item.ammo_himars_standard_wp.name=227mm Guided Artillery Rocket Pod (WP) +item.ammo_himars_single.name=610mm Guided Artillery Rocket Pod +item.ammo_himars_single_tb.name=610mm Guided Artillery Rocket Pod (Thermobaric) +item.ammo_luna.name=Lunatic Sniper Sabot Round +item.ammo_luna_explosive.name=Lunatic Sniper Explosive Round +item.ammo_luna_incendiary.name=Lunatic Sniper Incendiary Round +item.ammo_mirv.name=Mini MIRV +item.ammo_mirv_high.name=Mini MIRV (High Yield) +item.ammo_mirv_low.name=Mini MIRV (Low Yield) +item.ammo_mirv_safe.name=Mini MIRV (Safe) +item.ammo_mirv_special.name=Mini MILV +item.ammo_nuke.name=Mini Nuke +item.ammo_nuke_barrel.name=Mini Nuclear Waste Barrel +item.ammo_nuke_high.name=Mini Nuke (High Yield) +item.ammo_nuke_low.name=Mini Nuke (Low Yield) +item.ammo_nuke_pumpkin.name=Pumpkin Bomb +item.ammo_nuke_safe.name=Mini Nuke (Safe) +item.ammo_nuke_tots.name=Mini Nuke (Tiny Tots) +item.ammo_rocket.name=84mm Rocket +item.ammo_rocket_canister.name=84mm Rocket (Canister Shot) +item.ammo_rocket_digamma.name=null +item.ammo_rocket_emp.name=84mm Rocket (Pulse) +item.ammo_rocket_glare.name=84mm Rocket (Red Glare) +item.ammo_rocket_he.name=84mm Rocket (HE) +item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) +item.ammo_rocket_nuclear.name=84mm Rocket (ПрОвет) +item.ammo_rocket_phosphorus.name=84mm Rocket (WP) +item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw +item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) +item.ammo_rocket_sleek.name=84mm Rocket (IF-R&D) +item.ammo_rocket_toxic.name=84mm Rocket (Chemical) +item.ammo_shell.name=240mm Shell +item.ammo_shell_apfsds_du.name=240mm APFSDS-DU +item.ammo_shell_apfsds_t.name=240mm APFSDS-T +item.ammo_shell_explosive.name=240mm HE Shell +item.ammo_shell_w9.name=240mm W9 Nuclear Shell +item.ammo_stinger_rocket.name=Stinger Rocket +item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) +item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) +item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (ПрОвет) +item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking) +item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst +item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst +item.ams_catalyst_blank.name=Blank Reaction Catalyst +item.ams_catalyst_caesium.name=Caeseium Reaction Catalyst +item.ams_catalyst_cerium.name=Cerium Reaction Catalyst +item.ams_catalyst_cobalt.name=Cobalt Reaction Catalyst +item.ams_catalyst_copper.name=Copper Reaction Catalyst +item.ams_catalyst_dineutronium.name=Dineutronium Reaction Catalyst +item.ams_catalyst_euphemium.name=Euphemium Reaction Catalyst +item.ams_catalyst_iron.name=Iron Reaction Catalyst +item.ams_catalyst_lithium.name=Lithium Reaction Catalyst +item.ams_catalyst_niobium.name=Niobium Reaction Catalyst +item.ams_catalyst_schrabidium.name=Schrabidium Reaction Catalyst +item.ams_catalyst_strontium.name=Strontium Reaction Catalyst +item.ams_catalyst_thorium.name=Thorium Reaction Catalyst +item.ams_catalyst_tungsten.name=Tungsten Reaction Catalyst +item.ams_core_eyeofharmony.name=Eye of Harmony (AMS/DFC Core) +item.ams_core_sing.name=Vibrant Singularity (AMS/DFC Core) +item.ams_core_thingy.name=Thingy (AMS/DFC Core) +item.ams_core_wormhole.name=Tiny Wormhole (AMS/DFC Core) +item.ams_focus_blank.name=Blank Stabilizer Focus +item.ams_focus_booster.name=Boosting Stabilizer Focus +item.ams_focus_booster.desc=Weaker restriction field and core energy injection:$More heat generation, extra energy. +item.ams_focus_limiter.name=Limiting Stabilizer Focus +item.ams_focus_limiter.desc=Maximum performance for restriction field:$Standard cooling, no energy bonus. +item.ams_lens.name=Stabilizer Lens +item.ams_muzzle.name=Ray-Emission Muzzle +item.ams_muzzle.desc=...it emits an energy-beam thingy. +item.analysis_tool.name=Analysis Tool +item.analyzer.name=Analyzer +item.anchor_remote.name=Recall Device +item.apple_euphemium.name=Euphemium Apple +item.apple_lead.name=Lead Apple +item.apple_schrabidium.name=Schrabidium Apple +item.arc_electrode.name=Graphite Electrode +item.arc_electrode.desh.name=Desh Electrode +item.arc_electrode.graphite.name=Graphite Electrode +item.arc_electrode.lanthanium.name=Lanthanium Electrode +item.arc_electrode.saturnite.name=Saturnite Electrode +item.arc_electrode_burnt.name=Molten Electrode +item.arc_electrode_burnt.desh.name=Molten Desh Electrode +item.arc_electrode_burnt.graphite.name=Molten Graphite Electrode +item.arc_electrode_burnt.lanthanium.name=Molten Lanthanium Electrode +item.arc_electrode_burnt.saturnite.name=Molten Saturnite Electrode +item.arc_electrode_burnt.name=Molten Electrode +item.arc_electrode_desh.name=Desh Electrode +item.armor_polish.name=ShiningArmor™ Armor Polish +item.asbestos_boots.name=Fire Proximity Boots +item.asbestos_cloth.name=Fire Proximity Cloth +item.asbestos_helmet.name=Fire Proximity Helmet +item.asbestos_legs.name=Fire Proximity Leggings +item.asbestos_plate.name=Fire Proximity Chestplate +item.ashglasses.name=Ash Goggles +item.assembly_45.name=.45 ACP Assembly +item.assembly_556.name=5.56mm Assembly +item.assembly_762.name=7.62mm Assembly +item.assembly_actionexpress.name=.50 AE Assembly +item.assembly_calamity.name=.50 BMG Assembly +item.assembly_desh.name=Desh Bullet Assembly +item.assembly_gold.name=Gold Bullet Assembly +item.assembly_iron.name=Iron Bullet Assembly +item.assembly_lacunae.name=.5mm Assembly +item.assembly_lead.name=Glass Bullet Assembly +item.assembly_luna.name=Lunatic Sniper Bullet Assembly +item.assembly_nightmare.name=Nightmare Bullet Assembly +item.assembly_nopip.name=.44 Magnum Assembly +item.assembly_nuke.name=Mini Nuke Shell +item.assembly_pip.name=Tainted Bullet Assembly +item.assembly_schrabidium.name=Schrabidium Bullet Assembly +item.assembly_smg.name=9mm Assembly +item.assembly_steel.name=Lead Bullet Assembly +item.assembly_template.name=Assembly Template: +item.assembly_uzi.name=.22 LR Assembly +item.attachment_mask.name=Gas Mask Attachable +item.attachment_mask_mono.name=Half Mask Attachable +item.australium_iii.name=Mark III Life Extender +item.australium_iv.name=Mark IV Life Extender +item.australium_v.name=Mark V Life Extender +item.back_tesla.name=Back-Mounted Tesla Coil +item.balefire_and_ham.name=Ham and Balefire Eggs +item.balefire_and_steel.name=Balefire and Steel +item.balefire_scrambled.name=Scrambled Balefire Egg +item.ball_dynamite.name=Dynamite +item.ball_fireclay.name=Fireclay +item.ball_resin.name=Latex +item.ball_tatb.name=TATB +item.ball_tnt.name=TNT +item.ballistic_gauntlet.name=Ballistic Gauntlet +item.ballistite.name=Ballistite +item.bandaid.name=Velvet Band-Aid +item.bathwater.name=Toxic Soapy Water +item.bathwater_mk2.name=Toxic Soapy Water (Horse Scented) +item.battery_advanced.name=Advanced Battery +item.battery_advanced_cell.name=Advanced Power Cell +item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell +item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell +item.battery_creative.name=Infinite Battery +item.battery_generic.name=Battery +item.battery_lithium.name=Lithium-Ion Battery +item.battery_lithium_cell.name=Lithium-Ion Power Cell +item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell +item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell +item.battery_potato.name=Potato Battery +item.battery_potatos.name=PotatOS +item.battery_red_cell.name=Redstone Power Cell +item.battery_red_cell_24.name=24-Fold Redstone Power Cell +item.battery_red_cell_6.name=Sixfold Redstone Power Cell +item.battery_sc_americium.name=Self-Charging Americium-241 Battery +item.battery_sc_gold.name=Self-Charging Gold-198 Battery +item.battery_sc_lead.name=Self-Charging Lead-209 Battery +item.battery_sc_plutonium.name=Self-Charging Plutonium-238 Battery +item.battery_sc_polonium.name=Self-Charging Polonium-210 Battery +item.battery_sc_technetium.name=Self-Charging Technetium-99 Battery +item.battery_sc_uranium.name=Self-Charging Uranium-238 Battery +item.battery_schrabidium.name=Schrabidium Battery +item.battery_schrabidium_cell.name=Schrabidium Power Cell +item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell +item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell +item.battery_spark.name=Spark Battery +item.battery_spark_cell_100.name=Spark Arcane Energy Storage Array +item.battery_spark_cell_1000.name=Spark Arcane Mass-Energy Void +item.battery_spark_cell_10000.name=Spark Solid Space-Time Crystal +item.battery_spark_cell_25.name=Spark Arcane Car Battery +item.battery_spark_cell_2500.name=Spark Arcane Dirac Sea +item.battery_spark_cell_6.name=Spark Power Cell +item.battery_spark_cell_power.name=Spark Ludicrous Physics-Defying Energy Storage Unit +item.battery_steam.name=Steam Powered Energy Storage Tank +item.battery_steam_large.name=Large Steam Powered Energy Storage Tank +item.battery_su.name=SU-Battery +item.battery_su_l.name=Large SU-Battery +item.battery_trixite.name=Off-Brand Spark Battery +item.bdcl.name=BDCL +item.beta.name=Beta Features +item.big_sword.name=Great Sword +item.billet_actinium.name=Actinium-227 Billet +item.billet_am_mix.name=Reactor Grade Americium Billet +item.billet_am241.name=Americium-241 Billet +item.billet_am242.name=Americium-242 Billet +item.billet_americium_fuel.name=Americium Fuel Billet +item.billet_au198.name=Gold-198 Billet +item.billet_australium.name=Australium Billet +item.billet_australium_greater.name=Greater Australium Billet +item.billet_australium_lesser.name=Lesser Australium Billet +item.billet_balefire_gold.name=Flashgold Billet +item.billet_beryllium.name=Beryllium Billet +item.billet_bismuth.name=Bismuth Billet +item.billet_co60.name=Cobalt-60 Billet +item.billet_cobalt.name=Cobalt Billet +item.billet_flashlead.name=Flashlead Billet +item.billet_flashlead.desc=The lattice decays, causing antimatter-matter$annihilation reactions, causing the release of$pions, decaying into muons, catalyzing fusion of$the nuclei, creating the new element.$Please try to keep up. +item.billet_gh336.name=Ghiorsium-336 Billet +item.billet_gh336.desc=Seaborgium's colleague. +item.billet_hes.name=Highly Enriched Schrabidium Fuel Billet +item.billet_les.name=Low Enriched Schrabidium Fuel Billet +item.billet_mox_fuel.name=MOX Fuel Billet +item.billet_mox_fuel.desc=Pocket-Moxie! +item.billet_neptunium.name=Neptunium Billet +item.billet_neptunium_fuel.name=Neptunium Fuel Billet +item.billet_nuclear_waste.name=Nuclear Waste Billet +item.billet_pb209.name=Lead-209 Billet +item.billet_po210be.name=Po210Be Billet +item.billet_polonium.name=Polonium-210 Billet +item.billet_pu_mix.name=Reactor Grade Plutonium Billet +item.billet_pu238.name=Plutonium-238 Billet +item.billet_pu238be.name=Pu238Be Billet +item.billet_pu239.name=Plutonium-239 Billet +item.billet_pu240.name=Plutonium-240 Billet +item.billet_pu241.name=Plutonium-241 Billet +item.billet_plutonium.name=Plutonium Billet +item.billet_plutonium_fuel.name=Plutonium Fuel Billet +item.billet_ra226.name=Radium-226 Billet +item.billet_ra226be.name=Ra226Be Billet +item.billet_schrabidium.name=Schrabidium Billet +item.billet_schrabidium_fuel.name=Schrabidium Fuel Billet +item.billet_silicon.name=Silicon Wafer +item.billet_solinium.name=Solinium Billet +item.billet_sr90.name=Strontium-90 Billet +item.billet_technetium.name=Technetium-99 Billet +item.billet_th232.name=Thorium-232 Billet +item.billet_thorium_fuel.name=Thorium Fuel Billet +item.billet_u233.name=Uranium-233 Billet +item.billet_u235.name=Uranium-235 Billet +item.billet_u238.name=Uranium-238 Billet +item.billet_uranium.name=Uranium Billet +item.billet_uranium_fuel.name=Uranium Fuel Billet +item.billet_yharonite.name=Yharonite Billet +item.billet_zfb_am_mix.name=Reactor Grade Americium ZFB Billet +item.billet_zfb_bismuth.name=Bismuth ZFB Billet +item.billet_zfb_pu241.name=Pu-241 ZFB Billet +item.billet_zirconium.name=Zirconium Billet +item.bio_wafer.name=Algae Wafer +item.biomass.name=Biomass +item.biomass_compressed.name=Compressed Biomass +item.bismuth_boots.name=Bismuth Sandals +item.bismuth_helmet.name=Bismuth Headdress +item.bismuth_legs.name=Bismuth Kneeguards +item.bismuth_axe.name=Bismuth Axe +item.bismuth_pickaxe.name=Bismuth Pickaxe +item.bismuth_plate.name=Bismuth Shoulderpads, Necklace & Loincloth +item.bismuth_tool.name=Magnetic Extractor +item.bj_boots.name=Lunar Studded Boots +item.bj_helmet.name=Eyepatch with Thermal Sensor +item.bj_legs.name=Lunar Cybernetic Leg Replacements +item.bj_plate.name=Lunar Cybernetic Plating +item.bj_plate_jetpack.name=Lunar Cybernetic Plating (Winged) +item.black_diamond.name=Black Diamond +item.black_hole.name=Miniature Black Hole +item.blade_meteorite.name=Meteorite Blade +item.blade_titanium.name=Titanium Blade +item.blade_tungsten.name=Tungsten Reinforced Blade +item.blades_advanced_alloy.name=Advanced Shredder Blades +item.blades_desh.name=Desh Shredder Blades +item.blades_steel.name=Steel Shredder Blades +item.blades_titanium.name=Titanium Shredder Blades +item.blowtorch.name=Blowtorch +item.board_copper.name=Copper Panel +item.boat_rubber.name=Rubber Boat +item.bobmazon_hidden.name=Hidden Catalog +item.bobmazon_machines.name=Bobmazon: Blocks and Machines +item.bobmazon_materials.name=Bobmazon: Materials +item.bobmazon_tools.name=Bobmazon: Tools +item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives +item.boltntm.name=%s Bolt +item.bolt_compound.name=Reinforced Turbine Shaft +item.bolt_spike.name=Railroad Spike +item.bolt_spike.desc=Radiates a threatening aura, somehow +item.boltgun.name=Pneumatic Rivet Gun +item.bomb_caller.name=Airstrike Designator +item.bomb_waffle.name=Waffle of Mass Destruction +item.book_guide.name=Guide Book +item.book_of_.name=The Book of Boxcars +item.book_lemegeton.name=Lemegeton +item.book_secret.name=3-596-50802-9 +item.bottle2_empty.name=Empty Bottle +item.bottle2_fritz.name=Fritz Cola +item.bottle2_fritz_special.name=The First Fritz Cola +item.bottle2_korl.name=Korl +item.bottle2_korl_special.name=The First Korl +item.bottle2_sunset.name=Sunset Sarsaparilla +item.bottle_cherry.name=Bottle of Nuka Cherry +item.bottle_empty.name=Empty Bomb-Shaped Bottle +item.bottle_mercury.name=Bottle of Mercury +item.bottle_nuka.name=Bottle of Nuka Cola +item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener +item.bottle_quantum.name=Bottle of Nuka Cola Quantum +item.bottle_rad.name=Bottle of S~Cola RAD +item.bottle_sparkle.name=Bottle of S~Cola +item.bottled_cloud.name=Cloud in a Bottle +item.boy_bullet.name=U235 Projectile +item.boy_igniter.name=Bomb Igniter +item.boy_kit.name=Little Boy Kit +item.boy_propellant.name=Propellant +item.boy_shielding.name=Neutron Shielding +item.boy_target.name=Subcritical U235 Target +item.briquette.coal.name=Coal Briquette +item.briquette.lignite.name=Lignite Briquette +item.briquette.wood.name=Sawdust Briquette +item.bucket_acid.name=Bucket of Acid +item.bucket_mud.name=Bucket of Poisonous Mud +item.bucket_schrabidic_acid.name=Bucket of Schrabidic Acid +item.bucket_sulfuric_acid.name=Bucket of Sulfuric Acid +item.bucket_toxic.name=Bucket of Stereotypical Green Ooze +item.burnt_bark.name=Burnt Bark +item.burnt_bark.desc=A piece of bark from an exploded golden oak tree. +item.can_bepis.name=Bepis +item.can_breen.name=Dr>Breens Private Reserve +item.can_creature.name='Creature' Energy Drink +item.can_empty.name=Empty Can +item.can_key.name=Winding Key +item.can_luna.name=Black Mesa Luna - Dark Cola +item.can_mrsugar.name='Dr. Sugar' Soft Drink +item.can_mug.name=MUG Root Beer +item.can_overcharge.name=Overcharge Delirium XT +item.can_redbomb.name='Red Bomb' Energy Drink +item.can_smart.name='Smart' Energy Drink +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_biofuel.name=Biofuel Canister (LEGACY) +item.canister_bitumen.name=Bitumen Canister (LEGACY) +item.canister_canola.name=Engine Lubricant (LEGACY) +item.canister_empty.name=Empty Canister +item.canister_ethanol.name=Ethanol Canister (LEGACY) +item.canister_fracksol.name=Fracking Solution Canister (LEGACY) +item.canister_fuel.name=Diesel Canister (LEGACY) +item.canister_fuel.desc=All hail the spout! +item.canister_full.name=Canister: +item.canister_gasoline.name=Leaded Gasoline Canister (LEGACY) +item.canister_gasoline.desc=lead is friend$let friend into your blood stream$*cocks gun* do it now. +item.canister_heatingoil.name=Heating Oil Canister (LEGACY) +item.canister_heavyoil.name=Heavy Oil Canister (LEGACY) +item.canister_kerosene.name=Kerosene Canister (LEGACY) +item.canister_lightoil.name=Light Oil Canister (LEGACY) +item.canister_napalm.name=Napalm B +item.canister_naphtha.name=Naphtha Canister (LEGACY) +item.canister_oil.name=Crude Oil Canister (LEGACY) +item.canister_petroil.name=Petroil Canister (LEGACY) +item.canister_reoil.name=Canister of Reclaimed Industrial Oil (LEGACY) +item.canister_smear.name=Industrial Oil Canister (LEGACY) +item.canned_asbestos.name=Canned Asbestos +item.canned_asbestos.desc=TASTE the asbestosis! +item.canned_ass.name=Canned Ass +item.canned_ass.desc=100%% quality donkey meat!* +item.canned_bark.name=Canned Pine Bark Jerky +item.canned_bark.desc=Extra cronchy! +item.canned_beef.name=Canned Beef +item.canned_beef.desc=A few centuries ago, a cow died for this. +item.canned_bhole.name=Canned Black Hole +item.canned_bhole.desc=Singularity is yum yum in my tum tum! +item.canned_cheese.name=Canned Melted Cheese +item.canned_cheese.desc=Is it cheese? Is it rubber cement? Who knows, who cares. +item.canned_chinese.name=Canned Chinese Food +item.canned_chinese.desc=In China, Chinese food is just called food. +item.canned_diesel.name=Canned Diesel +item.canned_diesel.desc=I'm slowly running out of jokes for these. +item.canned_fist.name=Canned Fist +item.canned_fist.desc=Yowser! +item.canned_fried.name=Canned Fried Chicken +item.canned_fried.desc=Even the can is deep fried! +item.canned_hotdogs.name=Canned Hotdogs +item.canned_hotdogs.desc=Not to be confused with cool cats. +item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ +item.canned_jizz.desc=Wait wh- +item.canned_kerosene.name=Canned Kerosene +item.canned_kerosene.desc=Just imagine a witty line here. +item.canned_leftovers.name=Leftover Conserve +item.canned_leftovers.desc=ur 2 slow +item.canned_milk.name=Canned Evaporated Milk +item.canned_milk.desc=Milk 2: More solid than ever before! +item.canned_mystery.name=Canned Mystery Meat +item.canned_mystery.desc=What's inside? Only one way to find out! +item.canned_napalm.name=Canned Napalm +item.canned_napalm.desc=I love the smell of old memes in the morning! +item.canned_oil.name=Canned Engine Oil +item.canned_oil.desc=It makes motors go, so why not humans? +item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=услугО перевПЎа МеЎПступМы! +item.canned_pizza.name=Canned Pepperoni Pizza +item.canned_pizza.desc=A crime against humanity. +item.canned_recursion.name=Canned Recursion +item.canned_recursion.desc=Canned Recursion +item.canned_spam.name=Canned Spam +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word "Spam" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_stew.name=Canned "Mushroom Stew" +item.canned_stew.desc=... +item.canned_tomato.name=Canned Tomato Soup +item.canned_tomato.desc=Who wants some thick red paste? +item.canned_tube.name=Astronaut Food Tube +item.canned_tube.desc=Tasty mush. +item.canned_tuna.name=Canned Tuna +item.canned_tuna.desc=I can't tell if that's actually tuna or dried cement. +item.canned_yogurt.name=Canned Yogurt +item.canned_yogurt.desc=Probably spoiled, but whatever. +item.canteen_13.name=Vault 13 Canteen +item.canteen_fab.name=Fabulous Vodka +item.canteen_vodka.name=Stylish Flask +item.cap_fritz.name=Fritz Cola Bottle Cap +item.cap_korl.name=Korl Bottle Cap +item.cap_nuka.name=Nuka Cola Bottle Cap +item.cap_quantum.name=Nuka Cola Quantum Bottle Cap +item.cap_rad.name=S~Cola RAD Bottle Cap +item.cap_sparkle.name=S~Cola Bottle Cap +item.cap_star.name=Sunset Sarsaparilla Star Cap +item.cap_sunset.name=Sunset Sarsaparilla Bottle Cap +item.cape_ayy.name=Ayy's Cape +item.cape_codered_.name=codered_'s Cape +item.cape_dafnik.name=Dafnik's Cape +item.cape_gasmask.name=Cape (Gas Mask) +item.cape_hbm.name=Hbm's Cape +item.cape_hidden.name=Hidden Cape +item.cape_lpkukin.name=LPkukin's Cape +item.cape_nostalgia.name=DrNostalgia's Cape +item.cape_radiation.name=Cape (Radiation) +item.cape_schrabidium.name=Cape (Schrabidic) +item.cape_vertice.name=Lord Vertice's Cape +item.card_aos.name=Ace of Spades +item.card_qos.name=Queen of Spades +item.cart.crate.name=Crate Cart +item.cart.destroyer.name=Scrap Destroying Cart +item.cart.empty.name=Minecart +item.casing_357.name=.357 Magnum Casings +item.casing_44.name=.44 Magnum Casings +item.casing_50.name=Large Caliber Casings +item.casing_9.name=Small Caliber Casings +item.casing_buckshot.name=Buckshot Casings +item.catalyst_clay.name=Clay Catalyst +item.catalytic_converter.name=Catalytic Converter +item.cbt_device.name=CBT Device +item.cell_anti_schrabidium.name=Antischrabidium Cell +item.cell_antimatter.name=Antimatter Cell +item.cell_balefire.name=Gaseous Balefire Cell +item.cell_deuterium.name=Deuterium Cell +item.cell_empty.name=Empty Cell +item.cell_puf6.name=Plutonium Hexafluoride Cell +item.cell_sas3.name=Schrabidium Trisulfide Cell +item.cell_tritium.name=Tritium Cell +item.cell_uf6.name=Uranium Hexafluoride Cell +item.centri_stick.name=Centrifuge on a Stick +item.centrifuge_element.name=Centrifuge Element +item.centrifuge_tower.name=Centrifuge Tower +item.chainsaw.name=Chainsaw +item.cheese.name=Cheese +item.cheese_quesadilla.name=Cheese Quesadilla +item.chemical_dye.black.name=Chemical Dye (Black) +item.chemical_dye.blue.name=Chemical Dye (Blue) +item.chemical_dye.brown.name=Chemical Dye (Brown) +item.chemical_dye.cyan.name=Chemical Dye (Cyan) +item.chemical_dye.gray.name=Chemical Dye (Gray) +item.chemical_dye.green.name=Chemical Dye (Green) +item.chemical_dye.lightblue.name=Chemical Dye (Light Blue) +item.chemical_dye.lime.name=Chemical Dye (Lime) +item.chemical_dye.magenta.name=Chemical Dye (Magenta) +item.chemical_dye.orange.name=Chemical Dye (Orange) +item.chemical_dye.pink.name=Chemical Dye (Pink) +item.chemical_dye.purple.name=Chemical Dye (Purple) +item.chemical_dye.red.name=Chemical Dye (Red) +item.chemical_dye.silver.name=Chemical Dye (Light Gray) +item.chemical_dye.white.name=Chemical Dye (White) +item.chemical_dye.yellow.name=Chemical Dye (Yellow) +item.chemistry_set.name=Laboratory Glassware +item.chemistry_set_boron.name=Laboratory Glassware (Boron Glass) +item.chemistry_template.name=Chemistry Template: +item.chernobylsign.name=Chernobyl Warning Sign Battle Axe +item.chlorine_pinwheel.name=Chlorine Pinwheel +item.chlorophyte_axe.name=Chlorophyte Axe +item.chlorophyte_pickaxe.name=Chlorophyte Pickaxe +item.chocolate.name=Ithis-Brand Radium Chocolate +item.chocolate.desc=Radium Chocolate? Pretty sure this is just meth. +item.chocolate_milk.name=Chocolate Milk +item.chopper.name=Hunter Chopper +item.chopper_blades.name=Hunter Chopper Rotor Blades +item.chopper_gun.name=Emplacement Gun +item.chopper_head.name=Hunter Chopper Cockpit +item.chopper_tail.name=Hunter Chopper Tail +item.chopper_torso.name=Hunter Chopper Body +item.chopper_wing.name=Hunter Chopper Wing +item.chunk_ore.rare.name=Rare Earth Ore Chunk +item.cigarette.name=FFI-Brand Cigarette +item.cinnebar.name=Cinnabar +item.circuit.advanced.name=Military Grade Circuit Board +item.circuit.analog.name=Analog Circuit Board +item.circuit.basic.name=Integrated Circuit Board +item.circuit.bismoid.name=Versatile Circuit Board +item.circuit.capacitor.name=Capacitor +item.circuit.capacitor_board.name=Capacitor Board +item.circuit.capacitor_tantalium.name=Tantalium Capacitor +item.circuit.chip.name=Microchip +item.circuit.chip_bismoid.name=Versatile Integrated Circuit +item.circuit.controller.name=Control Unit +item.circuit.controller_advanced.name=Advanced Control Unit +item.circuit.controller_chassis.name=Control Unit Casing +item.circuit.pcb.name=Printed Circuit Board +item.circuit.silicon.name=Printed Silicon Wafer +item.circuit.vacuum_tube.name=Vacuum Tube +item.circuit_aluminium.name=Basic Circuit +item.circuit_arsenic.name=Adaptable Circuit +item.circuit_arsenic_raw.name=Adaptable Circuit Assembly +item.circuit_bismuth.name=Versatile Chipset +item.circuit_bismuth_raw.name=Versatile Chipset Assembly +item.circuit_copper.name=Enhanced Circuit +item.circuit_gold.name=Overclocked Circuit +item.circuit_raw.name=Basic Circuit Assembly +item.circuit_red_copper.name=Advanced Circuit +item.circuit_schrabidium.name=High Performance Circuit +item.circuit_star.name=StarControl Circuit Board +item.circuit_star.desc=Currently unused, for it lacks an operating system. +item.circuit_star_component.card.name=StarControl Extension Card +item.circuit_star_component.chipset.name=StarControl Chipset +item.circuit_star_component.cpu.name=StarControl CPU +item.circuit_star_component.ram.name=StarControl RAM +item.circuit_star_piece.board_blank.name=SC - Printed Circuit Board +item.circuit_star_piece.board_converter.name=SC - Voltage Converter +item.circuit_star_piece.board_transistor.name=SC - Transistors +item.circuit_star_piece.bridge_bios.name=SC- BIOS Chip +item.circuit_star_piece.bridge_bus.name=SC - BUS +item.circuit_star_piece.bridge_chipset.name=SC - Chipset +item.circuit_star_piece.bridge_cmos.name=SC - CMOS RAM +item.circuit_star_piece.bridge_io.name=SC - IO Chip +item.circuit_star_piece.bridge_north.name=SC - North Bridge +item.circuit_star_piece.bridge_south.name=SC - South Bridge +item.circuit_star_piece.card_board.name=SC - Extension Card Board +item.circuit_star_piece.card_processor.name=SC - Extension Card Processor +item.circuit_star_piece.cpu_cache.name=SC - CPU Cache +item.circuit_star_piece.cpu_clock.name=SC - CPU Clock +item.circuit_star_piece.cpu_ext.name=SC - Arsenic Semi Conductor Extension +item.circuit_star_piece.cpu_logic.name=SC - Arithmetic Logic Unit +item.circuit_star_piece.cpu_register.name=SC - CPU Register +item.circuit_star_piece.cpu_socket.name=SC - CPU Socket +item.circuit_star_piece.mem_socket.name=SC - Memory Socket +item.circuit_star_piece.mem_16k_a.name=SC - 16k Memory Stick Slot A +item.circuit_star_piece.mem_16k_b.name=SC - 16k Memory Stick Slot B +item.circuit_star_piece.mem_16k_c.name=SC - 16k Memory Stick Slot C +item.circuit_star_piece.mem_16k_d.name=SC - 16k Memory Stick Slot D +item.circuit_tantalium.name=Capacitor Board +item.circuit_tantalium_raw.name=Capacitor Board Assembly +item.circuit_targeting_tier1.name=Military Grade Circuit Board (Tier 1) +item.circuit_targeting_tier2.name=Military Grade Circuit Board (Tier 2) +item.circuit_targeting_tier3.name=Military Grade Circuit Board (Tier 3) +item.circuit_targeting_tier4.name=Military Grade Circuit Board (Tier 4) +item.circuit_targeting_tier5.name=Military Grade Circuit Board (Tier 5) +item.circuit_targeting_tier6.name=Military Grade Circuit Board (Tier 6) +item.cladding_desh.name=Desh Cladding +item.cladding_ghiorsium.name=Ghiorsium Cladding +item.cladding_iron.name=Iron Cladding +item.cladding_lead.name=Lead Cladding +item.cladding_obsidian.name=Obsidian Skin +item.cladding_paint.name=Lead Paint +item.cladding_rubber.name=Rubber Cladding +item.clip_bf.name=BF-Shell Double Pack +item.clip_bolt_action.name=Box of 12x74 Slugs +item.clip_cryolator.name=Tank of Cryolator Fuel +item.clip_defabricator.name=Belt with Defabricator Energy Cells +item.clip_emp.name=Small Pack of Energy Cells +item.clip_euthanasia.name=Last Aid Kit +item.clip_fatman.name=Six Pack of Mini Nukes +item.clip_hp.name=Ink Tanks +item.clip_immolator.name=Tank of Immolator Fuel +item.clip_jack.name=Box of Quadruple 12x70 Buckshot Rounds +item.clip_lever_action.name=Box of 12x74 Buckshot Rounds +item.clip_mirv.name=Three-In-One Pack of Mini MIRVs +item.clip_mp.name=Britannia Military Standard Issue Assault Rifle Magazine +item.clip_mp40.name=9mm SMG Magazine +item.clip_osipr.name=AR2 Magazine +item.clip_revolver.name=Box of .357 Rounds +item.clip_revolver_cursed.name=Britannia Military Standard Issue Pistol Magazine +item.clip_revolver_gold.name=Small Coffer of Golden Bullets +item.clip_revolver_iron.name=Box of Iron Rounds +item.clip_revolver_lead.name=Box of Nuclear Bullets +item.clip_revolver_nightmare.name=Bag of Bullets +item.clip_revolver_nightmare2.name=Belt with Laser Buckshot +item.clip_revolver_nopip.name=Box of .44 Rounds +item.clip_revolver_pip.name=Speedloader with Tainted Bullets +item.clip_revolver_schrabidium.name=Schrabidium Ammo Container +item.clip_rpg.name=Rocket Container +item.clip_spark.name=Large Electromagnetic Cartridge +item.clip_stinger.name=Pack of Stinger Rockets +item.clip_uboinik.name=Box of 12x70 Buckshot Rounds +item.clip_uzi.name=32rnd .22 LR Magazine +item.clip_xvl1456.name=Large Isotope Box +item.cmb_axe.name=CMB Steel Axe +item.cmb_boots.name=CMB Steel Boots +item.cmb_helmet.name=CMB Steel Helmet +item.cmb_hoe.name=CMB Steel Hoe +item.cmb_legs.name=CMB Steel Leggings +item.cmb_pickaxe.name=CMB Steel Pickaxe +item.cmb_plate.name=CMB Steel Chestplate +item.cmb_shovel.name=CMB Steel Shovel +item.cmb_sword.name=CMB Steel Sword +item.coal_infernal.name=Infernal Coal +item.cobalt_axe.name=Cobalt Axe +item.cobalt_boots.name=Cobalt Boots +item.cobalt_decorated_axe.name=Decorated Cobalt Axe +item.cobalt_decorated_hoe.name=Decorated Cobalt Hoe +item.cobalt_decorated_pickaxe.name=Decorated Cobalt Pickaxe +item.cobalt_decorated_shovel.name=Decorated Cobalt Shovel +item.cobalt_decorated_sword.name=Decorated Cobalt Sword +item.cobalt_helmet.name=Cobalt Helmet +item.cobalt_hoe.name=Cobalt Hoe +item.cobalt_legs.name=Cobalt Leggings +item.cobalt_pickaxe.name=Cobalt Pickaxe +item.cobalt_plate.name=Cobalt Chestplate +item.cobalt_shovel.name=Cobalt Shovel +item.cobalt_sword.name=Cobalt Sword +item.coffee.name=Coffee +item.coffee_radium.name=Radium Coffee +item.coil_advanced_alloy.name=Super Conducting Coil +item.coil_advanced_torus.name=Super Conducting Ring Coil +item.coil_copper.name=Copper Coil +item.coil_copper_torus.name=Ring Coil +item.coil_gold.name=Gold Coil +item.coil_gold_torus.name=Golden Ring Coil +item.coil_magnetized_tungsten.name=4000K High Temperature Super Conducting Coil +item.coil_tungsten.name=Heating Coil +item.coin_creeper.name=Nuclear Creeper Coin +item.coin_maskman.name=Maskman Coin +item.coin_radiation.name=Radiation Coin +item.coin_siege.name=Siege Coin +item.coin_ufo.name=UFO Coin +item.coin_worm.name=Balls-O-Tron Coin +item.coke.coal.name=Coal Coke +item.coke.lignite.name=Lignite Coke +item.coke.petroleum.name=Petroleum Coke +item.coltan_tool.name=Coltass +item.combine_scrap.name=CMB Scrap Metal +item.component_emitter.name=Emitter Component +item.component_limiter.name=Stabilizer Component +item.containment_box.name=Containment Box +item.cordite.name=Cordite +item.cotton_candy.name=Radioactive Cotton Candy +item.crackpipe.name=Health Pipe +item.crate_caller.name=Supply Drop Requester +item.crayon.black.name=Black Crayon +item.crayon.blue.name=Blue Crayon +item.crayon.brown.name=Brown Crayon +item.crayon.cyan.name=Cyan Crayon +item.crayon.gray.name=Gray Crayon +item.crayon.green.name=Green Crayon +item.crayon.lightblue.name=Light Blue Crayon +item.crayon.lime.name=Lime Crayon +item.crayon.magenta.name=Magenta Crayon +item.crayon.orange.name=Orange Crayon +item.crayon.pink.name=Pink Crayon +item.crayon.purple.name=Purple Crayon +item.crayon.red.name=Red Crayon +item.crayon.silver.name=Light Gray Crayon +item.crayon.white.name=White Crayon +item.crayon.yellow.name=Yellow Crayon +item.crowbar.name=Mk.V Crate Opening Device "Crowbar" +item.crucible.name=Crucible +item.crucible_template.name=Crucible Template: +item.crystal_aluminium.name=Aluminium Crystals +item.crystal_beryllium.name=Beryllium Crystals +item.crystal_charred.name=Charred Crystal +item.crystal_charred.desc=High quality silicate, slightly burned. +item.crystal_charred.desc.P11=Also a real horn. Weird, right? +item.crystal_coal.name=Coal Crystals +item.crystal_cobalt.name=Cobalt Crystals +item.crystal_copper.name=Copper Crystals +item.crystal_cinnebar.name=Cinnabar Crystals +item.crystal_diamond.name=Diamond Crystals +item.crystal_energy.name=Energy Crystal +item.crystal_fluorite.name=Fluorite Crystals +item.crystal_gold.name=Gold Crystals +item.crystal_horn.name=Crystal Horn +item.crystal_horn.desc=Not an actual horn. +item.crystal_horn.desc.P11=An actual horn. +item.crystal_iron.name=Iron Crystals +item.crystal_lead.name=Lead Crystals +item.crystal_lapis.name=Lapis Crystals +item.crystal_lithium.name=Lithium Crystals +item.crystal_niter.name=Niter Crystals +item.crystal_osmiridium.name=Osmiridium Crystals +item.crystal_phosphorus.name=Phosphorus Crystals +item.crystal_plutonium.name=Plutonium Crystals +item.crystal_rare.name=Rare Earth Crystals +item.crystal_redstone.name=Redstone Crystals +item.crystal_schrabidium.name=Schrabidium Crystals +item.crystal_schraranium.name=Schraranium Crystals +item.crystal_starmetal.name=Starmetal Crystals +item.crystal_sulfur.name=Sulfur Crystals +item.crystal_thorium.name=Thorium Crystals +item.crystal_titanium.name=Titanium Crystals +item.crystal_trixite.name=Trixite Crystals +item.crystal_tungsten.name=Tungsten Crystals +item.crystal_uranium.name=Uranium Crystals +item.crystal_xen.name=Artificial Xen Crystal +item.crt_display.name= Cathode Ray Tube +item.cube_power.name=Electronium Cube +item.custom_amat.name=Custom Nuke Antimatter Rod +item.custom_dirty.name=Custom Nuke Dirty Rod +item.custom_fall.name=Custom Nuke Drop Upgrade +item.custom_fall.desc=That's what you've aaaaaaall been waiting for!$Makes bomb drop upon activation +item.custom_hydro.name=Custom Nuke Hydrogen Rod +item.custom_kit.name=Custom Nuke Kit +item.custom_nuke.name=Custom Nuke Nuclear Rod +item.custom_schrab.name=Custom Nuke Schrabidium Rod +item.custom_tnt.name=Custom Nuke Explosive Charge +item.cyclotron_tower.name=Cyclotron Tower +item.debris_concrete.name=Broken Concrete +item.debris_element.name=Broken ZIRNOX Fuel Element +item.debris_exchanger.name=Heat Exchanger Piece +item.debris_fuel.name=RBMK Fuel Chunk +item.debris_graphite.name=Hot Graphite Chunk +item.debris_metal.name=Broken Metal Bar +item.debris_shrapnel.name=Walkway Shrapnel +item.definitelyfood.name=MRE +item.defuser.name=High-Tech Bomb Defusing Device +item.defuser_gold.name=Golden Wire Cutter +item.demon_core_closed.name=Closed Demon Core +item.demon_core_open.name=Suspended Demon Core +item.desh_axe.name=Worker's Alloy Axe +item.desh_hoe.name=Worker's Alloy Hoe +item.desh_pickaxe.name=Worker's Alloy Pickaxe +item.desh_shovel.name=Worker's Alloy Shovel +item.desh_sword.name=Worker's Alloy Sword +item.designator.name=Short Range Target Designator +item.designator_arty_range.name=Long Range Artillery Remote +item.designator_manual.name=Manual Target Designator +item.designator_range.name=Long Range Target Designator +item.detonator.name=Detonator +item.detonator_de.name=Dead Man's Explosive +item.detonator_deadman.name=Dead Man's Detonator +item.detonator_laser.name=Laser Detonator +item.detonator_multi.name=Multi Detonator +item.deuterium_filter.name=Deuterium Filter +item.diamond_gavel.name=Diamond Gavel +item.dieselsuit_boots.name=Diesel-Powered High Heels +item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor +item.dieselsuit_legs.name=Diesel-Powered Leg Servos +item.dieselsuit_plate.name=Diesel-Powered Cybernetics +item.digamma_diagnostic.name=Digamma Diagnostic +item.disperser_canister.name= Disperser Canister: +item.disperser_canister_empty.name= Disperser Canister +item.dns_boots.name=DNT Nano Suit Boots +item.dns_legs.name=DNT Nano Suit Leggings +item.dns_helmet.name=DNT Nano Suit Helmet +item.dns_plate.name=DNT Nano Suit Chestplate +item.dnt_boots.name=dienautronium boots +item.dnt_legs.name=dineuterium legs +item.dnt_helmet.name=dinotroniumu helmet +item.dnt_plate.name=dineutrom chestplate +item.door_bunker.name=Bunker Door +item.door_metal.name=Metal Door +item.door_office.name=Office Door +item.door_red.name=Red Door +item.dosimeter.name=Dosimeter +item.drax.name=Terra Drill +item.drax_mk2.name=Hardened Terra Drill +item.drax_mk3.name=Schrabidic Terra Drill +item.drillbit_desh.name=Desh Drillbit +item.drillbit_desh_diamond.name=Desh Drillbit (Diamond-Tipped) +item.drillbit_ferro.name=Ferrouranium Drillbit +item.drillbit_ferro_diamond.name=Ferrouranium Drillbit (Diamond-Tipped) +item.drillbit_hss.name=High-Speed Steel Drillbit +item.drillbit_hss_diamond.name=High-Speed Steel Drillbit (Diamond-Tipped) +item.drillbit_steel.name=Steel Drillbit +item.drillbit_steel_diamond.name=Steel Drillbit (Diamond-Tipped) +item.drillbit_tcalloy.name=Technetium Steel Drillbit +item.drillbit_tcalloy_diamond.name=Technetium Steel Drillbit (Diamond-Tipped) +item.drill_titanium.name=Titanium Drill +item.drone.patrol.name=Transport Drone +item.drone.patrol.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place. +item.drone.patrol_chunkloading.name=Chunkloading Transport Drone +item.drone.patrol_chunkloading.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place.$Loads chunks! +item.drone.patrol_express.name=Express Transport Drone +item.drone.patrol_express.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place. +item.drone.patrol_express_chunkloading.name=Chunkloading Express Transport Drone +item.drone.patrol_express_chunkloading.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place.$Loads chunks! +item.drone.request.name=Logistics Drone +item.drone.request.desc=Used by logistics drone docks to spawn logistics drones$Drones will follow logistics drone waypoints$After completing a request, the drone will return to the dock. +item.drone_linker.name=Transport Drone Linker +item.ducttape.name=Duct Tape +item.dust.name=Dust +item.dust.desc=I hate dust! +item.dust.desc.P11=Another one bites the dust! +item.dust_tiny.name=Tiny Pile of Dust +item.dwarven_pickaxe.name=Dwarven Pickaxe +item.dynosphere_base.name=Blank Dynosphere +item.dynosphere_desh.name=Desh Dynosphere +item.dynosphere_desh_charged.name=Desh Dynosphere (Charged) +item.dynosphere_dineutronium.name=Dineutronium Dynosphere +item.dynosphere_dineutronium_charged.name=Dineutronium Dynosphere (Charged) +item.dynosphere_euphemium.name=Euphemium Dynosphere +item.dynosphere_euphemium_charged.name=Euphemium Dynosphere (Charged) +item.dynosphere_schrabidium.name=Schrabidium Dynosphere +item.dynosphere_schrabidium_charged.name=Schrabidium Dynosphere (Charged) +item.dysfunctional_reactor.name=Dysfunctional Nuclear Reactor +item.early_explosive_lenses.name=Array of First-Generation High-Explosive Lenses +item.early_explosive_lenses.desc=Assembly of 8 high-explosive lenses with an aluminium$pusher, duraluminium shell, and bridgewire detonators. +item.egg_balefire.name=Balefire Egg +item.egg_balefire.desc=What kind of bird lays a radioactive egg? +item.egg_balefire_shard.name=Balefire Shard +item.egg_glyphid.name=Glyphid Egg +item.elec_axe.name=Electric Chainsaw +item.elec_pickaxe.name=Impact Drill +item.elec_shovel.name=Spiral Drill +item.elec_sword.name=Stunstick +item.energy_core.name=Makeshift Energy Core +item.entanglement_kit.name=Entanglement Kit +item.entanglement_kit.desc=Teleporter crafting item.$Enables dimension-shifting via a$beryllium-enhanced resource scanner. +item.envsuit_boots.name=M1TTY Environment Suit Boots +item.envsuit_helmet.name=M1TTY Environment Suit Helmet +item.envsuit_legs.name=M1TTY Environment Suit Leggings +item.envsuit_plate.name=M1TTY Environment Suit Chestplate +item.euphemium_boots.name=Euphemium Boots +item.euphemium_capacitor.name=Euphemium Capacitor +item.euphemium_capacitor.desc=Permits passive dispersion of accumulated positive energy. +item.euphemium_helmet.name=Euphemium Helmet +item.euphemium_kit.name=Euphemium Kit +item.euphemium_legs.name=Euphemium Leggings +item.euphemium_plate.name=Euphemium Chestplate +item.euphemium_stopper.name=Stopper +item.explosive_lenses.name=Array of High-Explosive Lenses +item.explosive_lenses.desc=Assembly of 8 PBX lenses with a thin$aluminium pusher, duraluminium shell, and$miniaturized bridgewire detonators. +item.fabsols_vodka.name=Fabsol's Vodka +item.factory_core_advanced.name=Advanced Factory Energy Cluster +item.factory_core_titanium.name=Basic Factory Energy Cluster +item.fallout.name=Pile of Fallout +item.fau_boots.name=Fau Boots +item.fau_helmet.name=Fau Helmet +item.fau_legs.name=Fau Leggins +item.fau_plate.name=Fau Chestplate +item.filter_coal.name=Activated Carbon Filter +item.fins_big_steel.name=Big Steel Grid Fins +item.fins_flat.name=Flat Steel Casing +item.fins_quad_titanium.name=Small Titanium Fins +item.fins_small_steel.name=Small Steel Grid Fins +item.fins_tri_steel.name=Large Steel Fins +item.five_htp.name=Enteramine Pills +item.five_htp.desc=Removes all DRX, Stability for 10 minutes +item.flame_conspiracy.name=Conspiracy Theory +item.flame_conspiracy.desc=Steel beams can't melt jet fuel! +item.flame_opinion.name=Own Opinion +item.flame_opinion.desc=Well, I like it... +item.flame_politics.name=Political Topic +item.flame_politics.desc=Donald Duck will build the wall! +item.flame_pony.name=Painting of a Cartoon Pony +item.flame_pony.desc=Yellow horse beats blue horse, that's a proven fact! +item.flask_infusion.shield.name=Shield Infusion +item.fleija_core.name=F.L.E.I.J.A. Uranium 235 Charge +item.fleija_igniter.name=Pulse Igniter +item.fleija_kit.name=F.L.E.I.J.A. Kit +item.fleija_propellant.name=Schrabidium Propellant +item.fluid_barrel_empty.name=Empty Fluid Barrel +item.fluid_barrel_full.name=Fluid Barrel: +item.fluid_barrel_infinite.name=Infinite Fluid Barrel +item.fluid_duct.name=Fluid Duct: +item.fluid_identifier.name=Fluid Identifier +item.fluid_identifier.info=Universal fluid identifier for: +item.fluid_identifier.usage0=Right click fluid ducts to set their fluid type. +item.fluid_identifier.usage1=Shift right click fluid ducts to set adjacent ducts +item.fluid_identifier.usage2=up to a maximum range of 64 ducts. +item.fluid_identifier_multi.name=Multi Fluid Identifier +item.fluid_identifier_multi.info=Universal fluid identifier for: +item.fluid_identifier_multi.info2=Secondary type: +item.fluid_tank_empty.name=Empty Universal Fluid Tank +item.fluid_tank_full.name=Universal Fluid Tank: +item.fluid_tank_lead_empty.name=Empty Hazardous Material Tank +item.fluid_tank_lead_full.name=Hazardous Material Tank: +item.fluorite.name=Fluorite +item.flywheel_beryllium.name=Beryllium Flywheel +item.fmn.name=Flunitrazepam Tablet +item.fmn.desc=Removes all DRX above 2,000mDRX +item.folly_bullet.name=12.8cm Starmetal High-Energy Shell +item.folly_bullet_du.name=12.8cm DU-Shell +item.folly_bullet_nuclear.name=12.8cm Nuclear Shell +item.folly_shell.name=Silver Bullet Casing +item.fooditem.name=food item +item.fragment_actinium.name=Actinium-227 Fragment +item.fragment_boron.name=Boron Fragment +item.fragment_cerium.name=Cerium Fragment +item.fragment_cobalt.name=Cobalt Fragment +item.fragment_coltan.name=Coltan +item.fragment_lanthanium.name=Lanthanium Fragment +item.fragment_meteorite.name=Meteorite Fragment +item.fragment_neodymium.name=Neodymium Fragment +item.fragment_niobium.name=Niobium Fragment +item.fuel_additive.antiknock.name=Tetraethyllead Antiknock Agent +item.fuel_additive.deicer.name=Deicer +item.fuel_tank_large.name=Large Fuel Tank +item.fuel_tank_medium.name=Medium Fuel Tank +item.fuel_tank_small.name=Small Fuel Tank +item.fuse.name=Fuse +item.fusion_core.name=Fusion Core +item.fusion_core_infinite.name=Infinite Fusion Core +item.fusion_shield_chlorophyte.name=Chlorophyte-Metallized Fusion Reactor Blanket +item.fusion_shield_desh.name=Desh Fusion Reactor Blanket +item.fusion_shield_tungsten.name=Tungsten Fusion Reactor Blanket +item.fusion_shield_vaporwave.name=Vaporwave Fusion Reactor Blanket +item.gadget_core.name=Large Plutonium Core +item.gadget_explosive.name=First Generation Explosive Lens +item.gadget_kit.name=The Gadget Kit +item.gadget_wireing.name=Wiring +item.gas_biogas.name=Biogas Tank +item.gas_empty.name=Empty Gas Tank +item.gas_full.name=Gas Tank: +item.gas_lpg.name=LPG Tank +item.gas_mask.name=Gas Mask +item.gas_mask_filter.name=Gas Mask Filter +item.gas_mask_filter_combo.name=Gas Mask Combo Filter +item.gas_mask_filter_mono.name=Catalytic Mask Filter +item.gas_mask_filter_piss.name=Advanced Makeshift Gas Mask Filter +item.gas_mask_filter_rag.name=Makeshift Gas Mask Filter +item.gas_mask_m65.name=M65-Z Gas Mask +item.gas_mask_mono.name=Half Mask +item.gas_mask_olde.name=Leather Gas Mask +item.gas_petroleum.name=Petroleum Gas Tank +item.gas_tester.name=Gas Sensor +item.gear_large.name=Large Gear +item.gear_large_steel.name=Large Steel Gear +item.geiger_counter.name=Handheld Geiger Counter +item.gem_alexandrite.name=Alexandrite +item.gem_rad.name=Radioactive Gem +item.gem_sodalite.name=Sodalite +item.gem_tantalium.name=Tantalium Polycrystal +item.gem_tantalium.desc='Tantalum' +item.gem_tantalium.desc.P11=AKA Tantalum. +item.gem_volcanic.name=Volcanic Gem +item.generator_front.name=Generator Front +item.generator_steel.name=Generator Body +item.glitch.name=Glitch +item.glowing_stew.name=Glowing Mushroom Stew +item.glyphid_meat.name=Glyphid Meat +item.glyphid_meat_grilled.name=Grilled Glyphid Meat +item.goggles.name=Protection Goggles +item.grenade_aschrab.name=Tossable Antischrabidium Cell +item.grenade_black_hole.name=Black Hole Grenade +item.grenade_breach.name=Breaching Grenade +item.grenade_burst.name=Digger Grenade +item.grenate_cats.name=Grenade of Cats +item.grenade_cloud.name=Jar of Corrosive Fumes +item.grenade_cluster.name=Cluster Bomb +item.grenade_electric.name=Lightning Bomb +item.grenade_fire.name=Flame Frag Grenade +item.grenade_flare.name=Signal Flare +item.grenade_frag.name=Frag Grenade +item.grenade_gas.name=Gas Grenade +item.grenade_gascan.name=Tossable Gas Can +item.grenade_generic.name=Grenade +item.grenade_if_bouncy.name=IF - Bouncy Grenade +item.grenade_if_brimstone.name=IF - Tossable Brimstone Mine +item.grenade_if_concussion.name=IF - Concussion Grenade +item.grenade_if_generic.name=IF - Grenade +item.grenade_if_he.name=IF - HE Grenade +item.grenade_if_hopwire.name=IF - Vortex Hopwire +item.grenade_if_impact.name=IF - Impact Grenade +item.grenade_if_incendiary.name=IF - Incendiary Grenade +item.grenade_if_mystery.name=IF - M.-Grenade +item.grenade_if_null.name=IF - Null Grenade +item.grenade_if_spark.name=IF - S.-Grenade +item.grenade_if_sticky.name=IF - Sticky Grenade +item.grenade_if_toxic.name=IF - Toxic Grenade +item.grenade_kit.name=Grenade Kit +item.grenade_kyiv.name=The Kyiv Special +item.grenade_lemon.name=Combustible Lemon +item.grenade_mirv.name=MIRV Grenade +item.grenade_mk2.name=Mk 2 Grenade "Ambassador Pineapple" +item.grenade_nuclear.name=Nuka Grenade +item.grenade_nuke.name=Mark VI Drill Grenade +item.grenade_pink_cloud.name=Jar of Pink Cloud +item.grenade_plasma.name=Plasma Grenade +item.grenade_poison.name=Poison Grenade +item.grenade_pulse.name=Impulse Grenade +item.grenade_schrabidium.name=Schrabidium Grenade +item.grenade_shrapnel.name=Shrapnel Grenade +item.grenade_smart.name=Smart Grenade +item.grenade_strong.name=Enhanced Grenade +item.grenade_tau.name=Tau Grenade +item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade +item.glyphid_gland.name= Gland +item.glyphid_gland_empty.name= Glyphid's Fluid Gland +item.gun_ar15.name=Josh +item.gun_avenger.name=CZ57 Avenger Minigun +item.gun_b92.name=§9B92 Energy Pistol§r +item.gun_b92_ammo.name=§9B92 Energy Cell§r +item.gun_b93.name=§cB93 Energy Mod§r +item.gun_benelli.name=Benelli Autoshotgun (Drum Mod) +item.gun_bf.name=BEL +item.gun_bf_ammo.name=Balefire Shell +item.gun_bio_revolver.name=Atlas +item.gun_bolt_action.name=Dream Bolt-Action Rifle (Original) +item.gun_bolt_action_ammo.name=12x74 Slug (LEGACY) +item.gun_bolt_action_green.name=Dream Bolt-Action Rifle (Green) +item.gun_bolt_action_saturnite.name=Saturnite Rifle +item.gun_bolter.name=Bolter +item.gun_bolter_digamma.name=Digamma Gun +item.gun_calamity.name=Buzzsaw +item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) +item.gun_calamity_dual.name=Saddle Gun +item.gun_chemthrower.name=Chemthrower +item.gun_coilgun.name=Coilgun +item.gun_congolake.name=Congo Lake +item.gun_cryocannon.name=Cryo Cannon +item.gun_cryolator.name=The Cryolator +item.gun_cryolator_ammo.name=Cryo Cell +item.gun_dampfmaschine.name=Totally Not a Joke Weapon +item.gun_darter.name=Dart Gun +item.gun_deagle.name=Big Iron +item.gun_defabricator.name=Defabricator +item.gun_defabricator_ammo.name=Defabricator Energy Cell +item.gun_detonator.name=Laser Detonator +item.gun_emp.name=EMP Gun +item.gun_emp_ammo.name=Energy Cell +item.gun_euthanasia.name=Euthanasia +item.gun_euthanasia_ammo.name=Syringe +item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" +item.gun_fatman_ammo.name=Mini Nuke (LEGACY) +item.gun_fireext.name=Fire Extinguisher +item.gun_flamer.name=Mister Topaz +item.gun_flechette.name=Flechette Rifle +item.gun_folly.name=Prototype Digamma "Folly" +item.gun_glass_cannon.name=The Glass Cannon +item.gun_hk69.name=Grenade Pistol +item.gun_hp.name=HPP Lazerjet +item.gun_hp_ammo.name=Ink Cartridge +item.gun_immolator.name=The Immolator +item.gun_immolator_ammo.name=Immolator Fuel +item.gun_jack.name=Jackhammer +item.gun_jack_ammo.name=Quadruple Shotgun Shell +item.gun_karl.name=Karl +item.gun_kit_1.name=Gun Oil +item.gun_kit_2.name=Gun Repair Kit +item.gun_ks23.name=Samuel the Big Shotgun +item.gun_lacunae.name=CZ33 Abaddon +item.gun_lacunae_ammo.name=5mm Round (LEGACY) +item.gun_lever_action.name=Mare's Leg (Original) +item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) +item.gun_lever_action_dark.name=Mare's Leg (Dark) +item.gun_lever_action_sonata.name=Flipped Mare's Leg +item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r +item.gun_lunatic_marksman.name=Lunatic Sniper Rifle +item.gun_m2.name=Ma Deuce +item.gun_minigun.name=CZ53 Personal Minigun +item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" +item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY) +item.gun_moist_nugget.name=Mosin-Nagant +item.gun_mp.name=Pacifist's Machine Gun +item.gun_mp40.name=Submachine Gun +item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) +item.gun_pm_ammo.name=Small Propellantless Machine Gun Round +item.gun_mymy.name=Nietes +item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle +item.gun_osipr_ammo.name=Dark Energy Pulse Plug +item.gun_osipr_ammo2.name=Combine Ball +item.gun_panzerschreck.name=Panzerschreck +item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" +item.gun_quadro.name=Quattro Formaggi +item.gun_remington.name=バむデン ブラスト [BIDEN BLAST] +item.gun_revolver.name=Enhanced Revolver +item.gun_revolver_ammo.name=Lead Bullet +item.gun_revolver_blackjack.name=Blackjack Five-Shooter +item.gun_revolver_cursed.name=Cursed Revolver +item.gun_revolver_cursed_ammo.name=Steel Bullet +item.gun_revolver_gold.name=Golden Revolver +item.gun_revolver_gold_ammo.name=Golden Bullet +item.gun_revolver_inverted.name=Flipped Revolver +item.gun_revolver_iron.name=Simple Revolver +item.gun_revolver_iron_ammo.name=Bullet +item.gun_revolver_lead.name=Nuka Revolver +item.gun_revolver_lead_ammo.name=Glass Covered Nuclear Bullet +item.gun_revolver_nightmare.name=Nightmare Revolver (Original) +item.gun_revolver_nightmare2.name=Nightmare Revolver (Dark) +item.gun_revolver_nightmare2_ammo.name=Laser Buckshot +item.gun_revolver_nightmare_ammo.name=Nightmare Bullet +item.gun_revolver_nopip.name=Heavy Revolver +item.gun_revolver_nopip_ammo.name=.44 Magnum Bullet (LEGACY) +item.gun_revolver_pip.name=Lil' Pipsqueak +item.gun_revolver_pip_ammo.name=Tainted Bullet (LEGACY) +item.gun_revolver_red.name=Red Key Revolver +item.gun_revolver_saturnite.name=Saturnite Shooter +item.gun_revolver_schrabidium.name=Schrabidium Revolver +item.gun_revolver_schrabidium_ammo.name=Schrabidium Bullet +item.gun_revolver_silver.name=Lent Gun +item.gun_rpg.name=Carl Gustav Recoilless Rifle +item.gun_rpg_ammo.name=Rocket (LEGACY) +item.gun_sauer.name=Stan Sauer's Shotgun +item.gun_skystinger.name=The One Sky Stinger +item.gun_spark.name=Spark Plug +item.gun_spark_ammo.name=Electromagnetic Cartridge +item.gun_spas12.name=SPAS-12 Shotgun +item.gun_stinger.name=FIM-92 Stinger +item.gun_stinger_ammo.name=Stinger Rocket (LEGACY) +item.gun_super_shotgun.name=Super Shotgun +item.gun_super_shotgun.desc=It's super broken! +item.gun_supershotgun.name=Super Shotgun +item.gun_thompson.name=Thompson Submachine Gun +item.gun_uac_pistol.name=UAC .45 Pistol +item.gun_uboinik.name=Uboinik +item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) +item.gun_uzi.name=IMI Uzi +item.gun_uzi_ammo.name=.22 LR Round (LEGACY) +item.gun_uzi_saturnite.name=Saturnite Uzi +item.gun_uzi_saturnite_silencer.name=Saturnite Uzi with Silencer +item.gun_uzi_silencer.name=IMI Uzi with Silencer +item.gun_xvl1456.name=XVL1456 Tau Cannon Prototype +item.gun_xvl1456_ammo.name=Depleted Uranium-235 Box +item.gun_zomg.name=ZOMG Cannon +item.hand_drill.name=Hand Drill +item.hand_drill_desh.name=Desh Hand Drill +item.hazmat_boots.name=Hazmat Boots +item.hazmat_boots_grey.name=High-Performance Hazmat Boots +item.hazmat_boots_red.name=Advanced Hazmat Boots +item.hazmat_cloth.name=Hazmat Cloth +item.hazmat_cloth_grey.name=Lead-Reinforced Hazmat Cloth +item.hazmat_cloth_red.name=Advanced Hazmat Cloth +item.hazmat_grey_kit.name=High-Performance Hazmat Kit +item.hazmat_helmet.name=Hazmat Helmet +item.hazmat_helmet_grey.name=High-Performance Hazmat Helmet +item.hazmat_helmet_red.name=Advanced Hazmat Helmet +item.hazmat_kit.name=Hazmat Kit +item.hazmat_legs.name=Hazmat Leggings +item.hazmat_legs_grey.name=High-Performance Hazmat Leggings +item.hazmat_legs_red.name=Advanced Hazmat Leggings +item.hazmat_paa_boots.name=PaA Battle Hazmat Suit Boots +item.hazmat_paa_helmet.name=PaA Battle Hazmat Suit Helmet +item.hazmat_paa_legs.name=PaA Battle Hazmat Suit Leggings +item.hazmat_paa_plate.name=PaA Battle Hazmat Suit Chestplate +item.hazmat_plate.name=Hazmat Chestplate +item.hazmat_plate_grey.name=High-Performance Hazmat Chestplate +item.hazmat_plate_red.name=Advanced Hazmat Chestplate +item.hazmat_red_kit.name=Advanced Hazmat Kit +item.heart_booster.name=Heart Booster +item.heart_container.name=Heart Container +item.heart_fab.name=Fab Heart +item.heart_piece.name=Heart Piece +item.heavy_component.name=Heavy %s Component +item.hev_battery.name=Suit Battery +item.hev_boots.name=HEV Mark IV Boots +item.hev_plate.name=HEV Mark IV Chestplate +item.hev_helmet.name=HEV Mark IV Helmet +item.hev_legs.name=HEV Mark IV Leggings +item.holotape_damaged.name=Damaged Holotape +item.holotape_image.name=Holotape +item.horseshoe_magnet.name=Horseshoe Magnet +item.hull_big_aluminium.name=Big Aluminium Shell +item.hull_big_steel.name=Big Steel Shell +item.hull_big_titanium.name=Big Titanium Shell +item.hull_small_aluminium.name=Small Aluminium Shell +item.hull_small_aluminium.desc=Can be inserted into drilled graphite +item.hull_small_steel.name=Small Steel Shell +item.icf_pellet.name=ICF Fuel Pellet +item.icf_pellet_depleted.name=Depleted ICF Fuel Pellet +item.icf_pellet_empty.name=Empty ICF Fuel Pellet +item.igniter.name=Igniter +item.igniter.desc=(Used by right-clicking the Prototype)$It's a green metal handle with a$bright red button and a small lid.$At the bottom, the initials N.E. are$engraved. Whoever N.E. was, he had$a great taste in shades of green. +item.industrial_magnet.name=Industrial Magnet +item.inf_antimatter.name=Infinite Antimatter Tank +item.inf_antischrabidium.name=Infinite Antischrabidium Tank +item.inf_coolant.name=Infinite Coolant Tank +item.inf_deuterium.name=Infinite Deuterium Tank +item.inf_diesel.name=Infinite Diesel Tank +item.inf_sulfur.name=Infinite Sulfur Tank +item.inf_tritium.name=Infinite Tritium Tank +item.inf_water.name=Infinite Water Tank +item.inf_water_mk2.name=Heavy Infinite Water Tank +item.ingot_actinium.name=Actinium-227 Ingot +item.ingot_advanced_alloy.name=Advanced Alloy Ingot +item.ingot_aluminium.name=Aluminium Ingot +item.ingot_am_mix.name=Reactor Grade Americium Ingot +item.ingot_am241.name=Americium-241 Ingot +item.ingot_am242.name=Americium-242 Ingot +item.ingot_americium_fuel.name=Ingot of Americium Fuel +item.ingot_arsenic.name=Arsenic Ingot +item.ingot_arsenic_bronze.name=Arsenic Bronze Ingot +item.ingot_asbestos.name=Asbestos Sheet +item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r +item.ingot_au198.name=Gold-198 Ingot +item.ingot_australium.name=Australium Ingot +item.ingot_bakelite.name=Bakelite Bar +item.ingot_beryllium.name=Beryllium Ingot +item.ingot_biorubber.name=Latex Bar +item.ingot_bismuth.name=Bismuth Ingot +item.ingot_bismuth_bronze.name=Bismuth Bronze Ingot +item.ingot_boron.name=Boron Ingot +item.ingot_c4.name=Bar of Composition C-4 +item.ingot_cadmium.name=Cadmium Ingot +item.ingot_calcium.name=Calcium Ingot +item.ingot_cdalloy.name=Cadmium Steel Ingot +item.ingot_cft.name=Crystalline Fullerite +item.ingot_chainsteel.name=Heavy Chainsteel +item.ingot_co60.name=Cobalt-60 Ingot +item.ingot_cobalt.name=Cobalt Ingot +item.ingot_combine_steel.name=CMB Steel Ingot +item.ingot_combine_steel.desc=*insert Civil Protection reference here* +item.ingot_copper.name=Industrial Grade Copper +item.ingot_daffergon.name=Daffergon Ingot +item.ingot_desh.name=Desh Ingot +item.ingot_dineutronium.name=Dineutronium Ingot +item.ingot_dura_steel.name=High-Speed Steel Ingot +item.ingot_electronium.name=Electronium Ingot +item.ingot_euphemium.name=Euphemium Ingot +item.ingot_euphemium.desc=A very special and yet strange element. +item.ingot_ferrouranium.name=Ferrouranium Ingot +item.ingot_fiberglass.name=Fiberglass Bar +item.ingot_fiberglass.desc=High in fiber, high in glass. Everything the body needs. +item.ingot_firebrick.name=Firebrick +item.ingot_gh336.name=Ghiorsium-336 Ingot +item.ingot_gh336.desc=Seaborgium's colleague. +item.ingot_graphite.name=Graphite Ingot +item.ingot_hes.name=Highly Enriched Schrabidium Fuel Ingot +item.ingot_lanthanium.name=Semi-Stable Lanthanium Ingot +item.ingot_lanthanium.desc='Lanthanum' +item.ingot_lanthanium.desc.P11=Actually Lanthanum, but whatever. +item.ingot_lead.name=Lead Ingot +item.ingot_les.name=Low Enriched Schrabidium Fuel Ingot +item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot +item.ingot_meteorite.name=Meteorite Ingot +item.ingot_meteorite_forged.name=Forged Meteorite Ingot +item.ingot_mox_fuel.name=Ingot of MOX Fuel +item.ingot_mud.name=Solid Mud Brick +item.ingot_neptunium.name=Neptunium Ingot +item.ingot_neptunium.desc=That one's my favourite! +item.ingot_neptunium.desc.P11=Woo, scary! +item.ingot_neptunium_fuel.name=Neptunium Fuel Ingot +item.ingot_niobium.name=Niobium Ingot +item.ingot_osmiridium.name=Osmiridium Ingot +item.ingot_pb209.name=Lead-209 Ingot +item.ingot_pc.name=Hard Plastic Bar +item.ingot_pet.name=Aluminium-Metallized PET Bar +item.ingot_phosphorus.name=Bar of White Phosphorus +item.ingot_plutonium.name=Plutonium Ingot +item.ingot_plutonium_fuel.name=Ingot of Plutonium Fuel +item.ingot_polonium.name=Polonium-210 Ingot +item.ingot_polymer.name=Polymer Bar +item.ingot_pu_mix.name=Reactor Grade Plutonium Ingot +item.ingot_pu238.name=Plutonium-238 Ingot +item.ingot_pu239.name=Plutonium-239 Ingot +item.ingot_pu240.name=Plutonium-240 Ingot +item.ingot_pu241.name=Plutonium-241 Ingot +item.ingot_pvc.name=PVC Bar +item.ingot_ra226.name=Radium-226 Ingot +item.ingot_red_copper.name=Minecraft Grade Copper +item.ingot_reiium.name=Reiium Ingot +item.ingot_rubber.name=Rubber Bar +item.ingot_saturnite.name=Saturnite Ingot +item.ingot_schrabidate.name=Ferric Schrabidate Ingot +item.ingot_schrabidium.name=Schrabidium Ingot +item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel +item.ingot_schraranium.name=Schraranium Ingot +item.ingot_schraranium.desc=Made from uranium in a schrabidium transmutator +item.ingot_semtex.name=Bar of Semtex +item.ingot_silicon.name=Silicon Boule +item.ingot_smore.name=S'more Ingot +item.ingot_solinium.name=Solinium Ingot +item.ingot_sr90.name=Strontium-90 Ingot +item.ingot_starmetal.name=§9Starmetal Ingot§r +item.ingot_steel.name=Steel Ingot +item.ingot_steel_dusted.name=Dusted Steel Ingot +item.ingot_tantalium.name=Tantalium Ingot +item.ingot_tantalium.desc='Tantalum' +item.ingot_tantalium.desc.P11=AKA Tantalum. +item.ingot_tcalloy.name=Technetium Steel Ingot +item.ingot_technetium.name=Technetium-99 Ingot +item.ingot_th232.name=Thorium-232 Ingot +item.ingot_thorium_fuel.name=Ingot of Thorium Fuel +item.ingot_titanium.name=Titanium Ingot +item.ingot_tungsten.name=Tungsten Ingot +item.ingot_u233.name=Uranium-233 Ingot +item.ingot_u235.name=Uranium-235 Ingot +item.ingot_u238.name=Uranium-238 Ingot +item.ingot_u238m2.name=Metastable Uranium-238M2 Ingot +item.ingot_unobtainium.name=Unobtainium Ingot +item.ingot_uranium.name=Uranium Ingot +item.ingot_uranium_fuel.name=Ingot of Uranium Fuel +item.ingot_verticium.name=Verticium Ingot +item.ingot_weidanium.name=Weidanium Ingot +item.ingot_zirconium.name=Zirconium Cube +item.injector_5htp.name=5-HTP Autoinjector +item.injector_knife.name=8 Inch Blade Autoinjector +item.ink.name=林 Ink +item.insert_doxium.name=Astolfium-Doped Doxium Insert +item.insert_du.name=DU Insert +item.insert_era.name=Explosive Reactive Armor Insert +item.insert_esapi.name=ESAPI Insert +item.insert_ghiorsium.name=Ghiorsium Insert +item.insert_kevlar.name=Kevlar Insert +item.insert_sapi.name=SAPI Insert +item.insert_polonium.name=Polonium Insert +item.insert_steel.name=Heavy Steel Insert +item.insert_xsapi.name=XSAPI Insert +item.insert_yharonite.name=Yharonite Insert +item.iv_blood.name=Blood Bag +item.iv_empty.name=IV Bag +item.iv_xp.name=Experience Bag +item.iv_xp_empty.name=Empty Experience Bag +item.jackt.name=Damn Stylish Ballistic Jacket +item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift +item.jetpack_boost.name=Boostpack +item.jetpack_break.name=Builder's Jetpack +item.jetpack_fly.name=Jetpack +item.jetpack_tank.name=Jetpack Reserve Fuel Tank +item.jetpack_vector.name=Vectored Jetpack +item.journal_bj.name=Whiskey Drenched Notebook +item.journal_pip.name=Survivalist's Journal +item.journal_silver.name=Contractor's Notes +item.key.name=Key +item.key_fake.name=Counterfeit Key +item.key_kit.name=Key Imitation Kit +item.key_red.name=Red Key +item.key_red.desc=Explore the other side. +item.key_red.desc.P11=§4e§r +item.key_red_cracked.name=Cracked Key +item.key_red_cracked.desc=??? +item.key_red.key_red_cracked.P11=§4???§r +item.kit_toolbox.name=Toolbox +item.kit_toolbox_empty.name=Empty Toolbox +item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix +item.laser_crystal_bismuth.name=BiSmUTh Laser Crystal +item.laser_crystal_cmb.desc=Antischrabidium Suspended in a CMB-Schrabidate Alloy Lattice +item.laser_crystal_cmb.name=CMB-Schrabidate Antimatter Laser Crystal +item.laser_crystal_co2.desc=Carbon Dioxide encased in Crystalline Desh +item.laser_crystal_co2.name=CO2-Desh Laser Crystal +item.laser_crystal_digamma.name=Digamma Laser Crystal +item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal +item.laser_crystal_dnt.name=Spark Laser Crystal +item.launch_code.name=Silo Launch Code +item.launch_code_piece.name=Silo Launch Code Piece +item.launch_key.name=Silo Launch Key +item.lead_gavel.name=Leaden Gavel +item.lemon.name="Lemon" +item.letter.name=Express Mail +item.levitation_unit.name=Gravity Manipulator +item.lignite.name=Lignite +item.limiter.name=Generator Limiter +item.linker.name=Telelinker +item.liquidator_boots.name=Liquidator Suit Boots +item.liquidator_helmet.name=Liquidator Suit Helmet +item.liquidator_legs.name=Liquidator Suit Leggins +item.liquidator_plate.name=Liquidator Suit Chestplate +item.lithium.name=Lithium Cube +item.lodestone.name=Lodestone +item.loop_stew.name=IT Breakfast +item.loops.name=Lööps +item.loot_10.name=Size 10 Missile Loot Crate +item.loot_15.name=Size 15 Missile Loot Crate +item.loot_misc.name=General Missile Loot Crate +item.magnet_circular.name=Flat Magnet +item.magnet_dee.name=Dee Magnets +item.magnetron.name=Magnetron +item.man_core.name=Plutonium Core +item.man_explosive.name=Explosive Lens +item.man_igniter.name=Bomb Firing Unit +item.man_kit.name=Fat Man Kit +item.marshmallow.name=Marshmallow on a Stick +item.mask_of_infamy.name=Mask of Infamy +item.mask_piss.name=Trench Mask +item.mask_rag.name=Crude Protective Mask +item.matchstick.name=Matchstick +item.mech_key.name=Large Silver Key +item.mech_key.desc=It pulses with power. +item.mechanism_launcher_1.name=Launcher Mechanism +item.mechanism_launcher_2.name=Advanced Launcher Mechanism +item.mechanism_revolver_1.name=Revolver Mechanism +item.mechanism_revolver_2.name=Advanced Revolver Mechanism +item.mechanism_rifle_1.name=Rifle Mechanism +item.mechanism_rifle_2.name=Advanced Rifle Mechanism +item.mechanism_special.name=High-Tech Weapon Mechanism +item.med_bag.name=First Aid Kit +item.med_ipecac.name=Ipecac Syrup +item.med_ptsd.name=PTSD Medication +item.med_schiziphrenia.name=Schizophrenia Medication +item.medal_liquidator.name=Liquidator Medal +item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator +item.memespoon.name=§eMarket Gardener +item.memory.name=item.null.name +item.mese_gavel.name=Mese Gavel +item.mese_axe.name=Mese Axe +item.mese_pickaxe.name=Mese Pickaxe +item.meteor_charm.name=Meteor Charm +item.meteor_remote.name=Meteorite Remote +item.meteorite_sword.name=Meteorite Sword +item.meteorite_sword_seared.name=Meteorite Sword (Seared) +item.meteorite_sword_reforged.name=Meteorite Sword (Reforged) +item.meteorite_sword_hardened.name=Meteorite Sword (Hardened) +item.meteorite_sword_alloyed.name=Meteorite Sword (Alloyed) +item.meteorite_sword_machined.name=Meteorite Sword (Machined) +item.meteorite_sword_treated.name=Meteorite Sword (Treated) +item.meteorite_sword_etched.name=Meteorite Sword (Etched) +item.meteorite_sword_bred.name=Meteorite Sword (Bred) +item.meteorite_sword_irradiated.name=Meteorite Sword (Irradiated) +item.meteorite_sword_fused.name=Meteorite Sword (Fused) +item.meteorite_sword_baleful.name=Meteorite Sword (Baleful) +item.mike_cooling_unit.name=Deuterium Cooling Unit +item.mike_core.name=Uranium Coated Deuterium Tank +item.mike_deut.name=Deuterium Tank +item.mike_kit.name=Ivy Mike Kit +item.mirror_tool.name=Mirror Adjustment Tool +item.mirror_tool.linked=Alignment position set! +item.mirror_tool.desc=Right-click boiler to memorize the position.$Click on mirrors to turn them towards the boiler. +item.missile_anti_ballistic.name=Anti-Ballistic Missile +item.missile_assembly.name=Small Missile Assembly +item.missile_bhole.name=Black Hole Missile +item.missile_burst.name=Spare Missile +item.missile_buster.name=Bunker Buster +item.missile_buster_strong.name=Enhanced Bunker Buster +item.missile_carrier.name=HTR-01 Carrier Rocket +item.missile_cluster.name=Cluster Missile +item.missile_cluster_strong.name=Strong Cluster Missile +item.missile_custom.name=Custom Missile +item.missile_decoy.name=Decoy Missile +item.missile_doomsday.name=Doomsday Missile +item.missile_doomsday_rusted.name=Damaged Doomsday Missile +item.missile_drill.name=The Concrete Cracker +item.missile_emp.name=EMP Missile +item.missile_emp_strong.name=Strong EMP Missile +item.missile_endo.name=Endothermic Missile +item.missile_exo.name=Exothermic Missile +item.missile_generic.name=High Explosive Missile +item.missile_incendiary.name=Incendiary Missile +item.missile_incendiary_strong.name=Strong Incendiary Missile +item.missile_inferno.name=Inferno Missile G.R.N. Mk.II +item.missile_kit.name=Missile Kit +item.missile_micro.name=Micro-Nuclear Missile +item.missile_nuclear.name=Nuclear Missile +item.missile_nuclear_cluster.name=Thermonuclear Missile +item.missile_rain.name=Bomblet Rain +item.missile_schrabidium.name=Schrabidium Missile +item.missile_shuttle.name=Reliant Robin Space Shuttle +item.missile_soyuz.name=Soyuz-FG +item.missile_soyuz_lander.name=Orbital Module +item.missile_soyuz_lander.desc=Doubles as a crappy lander! +item.missile_stealth.name=Stealth Missile +item.missile_strong.name=Strong HE Missile +item.missile_taint.name=Taint-Tipped Missile +item.missile_volcano.name=Tectonic Missile +item.missile_volcano.desc=Using the power of nuclear explosives, we can summon a volcano! +item.mold_base.name=Blank Foundry Mold +item.mold.name=Foundry Mold +item.morning_glory.name=Morning Glory +item.motor.name=Motor +item.motor_bismuth.name=Bismuth Motor +item.motor_desh.name=Desh Motor +item.mp_c_1.name=Tier 1 Missile Targeting Circuit +item.mp_c_2.name=Tier 2 Missile Targeting Circuit +item.mp_c_3.name=Tier 3 Missile Targeting Circuit +item.mp_c_4.name=Tier 4 Missile Targeting Circuit +item.mp_c_5.name=Tier 5 Missile Targeting Circuit +item.mp_fuselage_10_15_balefire.name=Size 10/15 BF Fuselage +item.mp_fuselage_10_15_hydrogen.name=Size 10/15 Hydrogen Fuselage +item.mp_fuselage_10_15_kerosene.name=Size 10/15 Kerosene Fuselage +item.mp_fuselage_10_15_solid.name=Size 10/15 Solid Fuel Fuselage +item.mp_fuselage_10_kerosene.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_camo.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_desert.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_flames.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_insulation.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_metal.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_sky.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_sleek.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_taint.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_long_kerosene.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_camo.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_dash.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_desert.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_flames.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_insulation.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_metal.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_sky.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_sleek.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_taint.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_vap.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_solid.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_bullet.name=Size 10 Long Solid Fuselage +item.mp_fuselage_10_long_solid_flames.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_insulation.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_silvermoonlight.name=Size 10 Long Solid Fuselage +item.mp_fuselage_10_long_solid_sleek.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_soviet_glory.name=Size 10 Long Solid Fuselage +item.mp_fuselage_10_solid.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_battery.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_cathedral.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_duracell.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_flames.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_insulation.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_moonlit.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_sleek.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_soviet_glory.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_xenon.name=Size 10 Xenon Fuselage +item.mp_fuselage_10_xenon_bhole.name=Size 10 Xenon Fuselage +item.mp_fuselage_15_20_kerosene.name=Size 15/20 Kerosene Fuselage +item.mp_fuselage_15_20_kerosene_magnusson.name=Size 15/20 Kerosene Fuselage +item.mp_fuselage_15_20_solid.name=Size 15/20 Solid Fuel Fuselage +item.mp_fuselage_15_balefire.name=Size 15 BF Fuselage +item.mp_fuselage_15_hydrogen.name=Size 15 Hydrogen Fuselage +item.mp_fuselage_15_hydrogen_cathedral.name=Size 15 Hydrogen Fuselage +item.mp_fuselage_15_kerosene.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_blackjack.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_camo.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_decorated.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_desert.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_insulation.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_lambda.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_metal.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_minuteman.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_pip.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_polite.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_sky.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_steampunk.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_taint.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_yuck.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_solid.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_desh.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_faust.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_insulation.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_mimi.name=Size 15 Solid Fuel Mimi-chan's Body +item.mp_fuselage_15_solid_panorama.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_roses.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_silvermoonlight.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_snowy.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_soviet_glory.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_soviet_stank.name=Size 15 Solid Fuel Fuselage +item.mp_stability_10_cruise.name=Size 10 Cruise Fins +item.mp_stability_10_flat.name=Size 10 Flat Fins +item.mp_stability_10_space.name=Size 10 Space Fins +item.mp_stability_15_flat.name=Size 15 Flat Fins +item.mp_stability_15_soyuz.name=Size 15 Pointy Fins +item.mp_stability_15_thin.name=Size 15 Thin Fins +item.mp_thruster_10_kerosene.name=Size 10 Liquid Fuel Thruster +item.mp_thruster_10_solid.name=Size 10 Solid Fuel Thruster +item.mp_thruster_10_xenon.name=Size 10 Ion Thruster +item.mp_thruster_15_balefire.name=Size 15 BF Thruster with Nuclear Preheater +item.mp_thruster_15_balefire_large.name=Size 15 BF Thruster with Nuclear Preheater (Heavy Duty Nozzle) +item.mp_thruster_15_balefire_large_rad.name=Size 15 BF Thruster with Nuclear Preheater (Heavy Duty Nozzle) +item.mp_thruster_15_balefire_short.name=Size 15 BF Thruster with Nuclear Preheater (Shortened) +item.mp_thruster_15_hydrogen.name=Size 15 Hydrogen Thruster +item.mp_thruster_15_hydrogen_dual.name=Size 15 Hydrogen Twin Thrusters +item.mp_thruster_15_kerosene.name=Size 15 Liquid Fuel Thruster +item.mp_thruster_15_kerosene_dual.name=Size 15 Liquid Fuel Twin Thrusters +item.mp_thruster_15_kerosene_triple.name=Size 15 Liquid Fuel Triple Thrusters +item.mp_thruster_15_solid.name=Size 15 Solid Fuel Thruster +item.mp_thruster_15_solid_hexdecuple.name=Size 15 Solid Fuel Hexdecuple Thrusters +item.mp_thruster_20_kerosene.name=Size 20 Liquid Fuel Thruster +item.mp_thruster_20_kerosene_dual.name=Size 20 Liquid Fuel Twin Thrusters +item.mp_thruster_20_kerosene_triple.name=Size 20 Liquid Fuel Triple Thrusters +item.mp_thruster_20_solid.name=Size 20 Solid Fuel Thruster +item.mp_thruster_20_solid_multi.name=Size 20 Solid Fuel 30-Fold Thrusters +item.mp_thruster_20_solid_multier.name=Size 20 Solid Fuel 47-Fold Thrusters +item.mp_warhead_10_buster.name=Size 10 Bunker Buster Warhead +item.mp_warhead_10_cloud.name=Size 10 Pink Cloud Warhead +item.mp_warhead_10_he.name=Size 10 HE Warhead +item.mp_warhead_10_incendiary.name=Size 10 Incendiary Warhead +item.mp_warhead_10_nuclear.name=Size 10 Micro Nuclear Warhead +item.mp_warhead_10_nuclear_large.name=Size 10 Nuclear Warhead +item.mp_warhead_10_taint.name=Size 10 Tainted Warhead +item.mp_warhead_15_balefire.name=Size 15 BF Warhead +item.mp_warhead_15_boxcar.name=Size 15 Boxcar? +item.mp_warhead_15_he.name=Size 15 HE Warhead +item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead +item.mp_warhead_15_n2.name=Size 15 N² Mine +item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead +item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head +item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead +item.mp_warhead_15_turbine.name=Size 15 Jet Engine +item.mucho_mango.name=AriZona Mucho Mango +item.multi_kit.name=Multi Purpose Bomb Kit +item.multitool_beam.name=Power Fist (Zapper) +item.multitool_decon.name=Power Fist (Decontaminator) +item.multitool_dig.name=Power Fist (Digging Claw) +item.multitool_ext.name=Power Fist (Ore Extractor) +item.multitool_hit.name=Power Fist (Fist) +item.multitool_joule.name=Power Fist (Giga Joule) +item.multitool_mega.name=Power Fist (Super Punch) +item.multitool_miner.name=Power Fist (Extracting Mining Laser) +item.multitool_silk.name=Power Fist (Silk Touch Claw) +item.multitool_sky.name=Power Fist (Crack the Sky) +item.mysteryshovel.name=Brittle Spade +item.n2_charge.name=Large Explosive Charge +item.neutrino_lens.name=Neutrino Lens +item.neutron_reflector.name=Neutron Reflector +item.night_vision.name=Night Vision Goggles +item.night_vision.description.item=Grants you night vision (requires full electric set) +item.night_vision.description.in_armor=%s (grants night vision) +item.niter.name=Niter +item.nitra.name=Nitra +item.nitra_small.name=Small Pile of Nitra +item.no9.name=Mining Helmet +item.nossy_hat.name=Fabulous Hat +item.nothing.name=Nothing +item.nuclear_waste.name=Nuclear Waste +item.nuclear_waste_pearl.name=Nuclear Waste Pearl +item.nuclear_waste_tiny.name=Tiny Pile of Nuclear Waste +item.nuclear_waste_long.name=Long-Lived Nuclear Waste +item.nuclear_waste_long_tiny.name=Tiny Pile of Long-Lived Nuclear Waste +item.nuclear_waste_long_depleted.name=Decayed Long-Lived Nuclear Waste +item.nuclear_waste_long_depleted_tiny.name=Tiny Pile of Decayed Long-Lived Nuclear Waste +item.nuclear_waste_short.name=Short-Lived Nuclear Waste +item.nuclear_waste_short_tiny.name=Tiny Pile of Short-Lived Nuclear Waste +item.nuclear_waste_short_depleted.name=Decayed Short-Lived Nuclear Waste +item.nuclear_waste_short_depleted_tiny.name=Tiny Pile of Decayed Short-Lived Nuclear Waste +item.nuclear_waste_vitrified.name=Vitrified Nuclear Waste +item.nuclear_waste_vitrified_tiny.name=Tiny Pile of Vitrified Nuclear Waste +item.nugget.name=Chicken Nugget +item.nugget_actinium.name=Actinium-227 Nugget +item.nugget_am_mix.name=Reactor Grade Americium Nugget +item.nugget_am241.name=Americium-241 Nugget +item.nugget_am242.name=Americium-242 Nugget +item.nugget_americium_fuel.name=Americium Fuel Nugget +item.nugget_arsenic.name=Arsenic Nugget +item.nugget_au198.name=Gold-198 Nugget +item.nugget_australium.name=Australium Nugget +item.nugget_australium_greater.name=Greater Australium Nugget +item.nugget_australium_lesser.name=Lesser Australium Nugget +item.nugget_beryllium.name=Beryllium Nugget +item.nugget_bismuth.name=Bismuth Nugget +item.nugget_co60.name=Cobalt-60 Nugget +item.nugget_cobalt.name=Cobalt Nugget +item.nugget_daffergon.name=Daffergon Nugget +item.nugget_desh.name=Desh Nugget +item.nugget_dineutronium.name=Dineutronium Nugget +item.nugget_euphemium.name=Euphemium Nugget +item.nugget_euphemium.desc=A small piece of a pink metal.$Its properties are still unknown,$DEAL WITH IT carefully. +item.nugget_gh336.name=Ghiorsium-336 Nugget +item.nugget_gh336.desc=Seaborgium's colleague. +item.nugget_hes.name=Highly Enriched Schrabidium Fuel Nugget +item.nugget_lead.name=Lead Nugget +item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget +item.nugget_mercury_tiny.name=Tiny Drop of Mercury +item.nugget_mercury.name=Drop of Mercury +item.nugget_mox_fuel.name=Nugget of MOX Fuel +item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r +item.nugget_neptunium.name=Neptunium Nugget +item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget +item.nugget_niobium.name=Niobium Nugget +item.nugget_osmiridium.name=Osmiridium Nugget +item.nugget_pb209.name=Lead-209 Nugget +item.nugget_plutonium.name=Plutonium Nugget +item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel +item.nugget_polonium.name=Polonium-210 Nugget +item.nugget_pu_mix.name=Reactor Grade Plutonium Nugget +item.nugget_pu238.name=Plutonium-238 Nugget +item.nugget_pu239.name=Plutonium-239 Nugget +item.nugget_pu240.name=Plutonium-240 Nugget +item.nugget_pu241.name=Plutonium-241 Nugget +item.nugget_ra226.name=Radium-226 Nugget +item.nugget_reiium.name=Reiium Nugget +item.nugget_schrabidium.name=Schrabidium Nugget +item.nugget_schrabidium_fuel.name=Nugget of Schrabidium Fuel +item.nugget_silicon.name=Silicon Nugget +item.nugget_solinium.name=Solinium Nugget +item.nugget_sr90.name=Strontium-90 Nugget +item.nugget_tantalium.name=Tantalium Nugget +item.nugget_tantalium.desc='Tantalum' +item.nugget_tantalium.desc.P11=AKA Tantalum. +item.nugget_technetium.name=Technetium-99 Nugget +item.nugget_th232.name=Thorium-232 Nugget +item.nugget_thorium_fuel.name=Nugget of Thorium Fuel +item.nugget_u233.name=Uranium-233 Nugget +item.nugget_u235.name=Uranium-235 Nugget +item.nugget_u238.name=Uranium-238 Nugget +item.nugget_unobtainium.name=Unobtainium Nugget +item.nugget_uranium.name=Uranium Nugget +item.nugget_uranium_fuel.name=Nugget of Uranium Fuel +item.nugget_verticium.name=Verticium Nugget +item.nugget_weidanium.name=Weidanium Nugget +item.nugget_zirconium.name=Zirconium Splinter +item.nuke_advanced_kit.name=Atomic Science Advanced Kit +item.nuke_commercially_kit.name=Atomic Science Kit for Commercial Uses +item.nuke_electric_kit.name=Electronic Engineer's Kit +item.nuke_starter_kit.name=Atomic Science Starter Kit +item.oil_canola.name=Raw Canola Oil +item.oil_detector.name=Oil Reservoir Detector +item.oil_detector.desc1=Right-click to scan for oil. +item.oil_detector.desc2=Detector will only find larger deposits. +item.oil_detector.bullseye=Oil deposit directly below! +item.oil_detector.detected=Oil detected nearby. +item.oil_detector.noOil=No oil detected. +item.oil_tar.coal.name=Coal Tar +item.oil_tar.crude.name=Oil Tar +item.oil_tar.crack.name=Crack Oil Tar +item.oil_tar.paraffin.name=Paraffin Wax +item.oil_tar.wax.name=Chlorinated Petroleum Wax +item.oil_tar.wood.name=Wood Tar +item.ore.asbestos=Asbestos +item.ore.borax=Borax +item.ore.chlorocalcite=Chlorocalcite +item.ore.copper=Copper +item.ore.fluorite=Fluorite +item.ore.gold=Gold +item.ore.hematite=Hematite +item.ore.iron=Iron +item.ore.malachite=Malachite +item.ore.neodymium=Neodymium +item.ore.niobium=Niobium +item.ore.titanium=Titanium +item.ore.tungsten=Tungsten +item.ore.thorium232=Thorium +item.ore.uranium=Uranium +item.ore_bedrock.name=%s Bedrock Ore +item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment +item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment +item.ore_byproduct.b_calcium.name=Crystalline Calcium Fragment +item.ore_byproduct.b_copper.name=Crystalline Copper Fragment +item.ore_byproduct.b_iron.name=Crystalline Iron Fragment +item.ore_byproduct.b_lead.name=Crystalline Lead Fragment +item.ore_byproduct.b_lithium.name=Crystalline Lithium Fragment +item.ore_byproduct.b_polonium.name=Crystalline Polonium Fragment +item.ore_byproduct.b_radium.name=Crystalline Radium Fragment +item.ore_byproduct.b_silicon.name=Crystalline Silicon Fragment +item.ore_byproduct.b_sulfur.name=Crystalline Sulfur Fragment +item.ore_byproduct.b_technetium.name=Crystalline Technetium Fragment +item.ore_byproduct.b_titanium.name=Crystalline Titanium Fragment +item.ore_byproduct.b_uranium.name=Crystalline Uranium Fragment +item.ore_centrifuged.name=Centrifuged %s Ore +item.ore_cleaned.name=Cleaned %s Ore +item.ore_deepcleaned.name=Deep Cleaned %s Ore +item.ore_enriched.name=Enriched %s Ore +item.ore_nitrated.name=Nitrated %s Ore +item.ore_nitrocrystalline.name=Nitrocrystalline %s Ore +item.ore_purified.name=Purified %s Ore +item.ore_radcleaned.name=Radiation-Cleaned %s Ore +item.ore_seared.name=Seared %s Ore +item.ore_separated.name=Separated %s Ore +item.overfuse.name=Singularity Screwdriver +item.overfuse.desc=Say what? +item.oxy_mask.name=Oxygen Mask +item.paa_boots.name=PaA "good ol' shoes" +item.paa_legs.name=PaA Leg Reinforcements +item.paa_plate.name=PaA Chest Protection Plate +item.padlock.name=Padlock +item.padlock_reinforced.name=Reinforced Padlock +item.padlock_rusty.name=Rusty Padlock +item.padlock_unbreakable.name=Unbreakable Padlock +item.pads_rubber.name=Rubber Pads +item.pads_slime.name=Slime Pads +item.pads_static.name=Static Pads +item.page_of_.page1.name=Page 1 +item.page_of_.page2.name=Page 2 +item.page_of_.page3.name=Page 3 +item.page_of_.page4.name=Page 4 +item.page_of_.page5.name=Page 5 +item.page_of_.page6.name=Page 6 +item.page_of_.page7.name=Page 7 +item.page_of_.page8.name=Page 8 +item.pancake.name=Pancake made from Scrap Metal, Nails and Gem Dust +item.part_beryllium.name=Box of Beryllium Dust +item.part_carbon.name=Box of Carbon Dust +item.part_copper.name=Box of Copper Dust +item.part_generic.piston_electric.name=Electric Piston +item.part_generic.piston_hydraulic.name=Hydraulic Piston +item.part_generic.piston_pneumatic.name=Pneumatic Piston +item.part_lithium.name=Box of Lithium Dust +item.part_plutonium.name=Box of Plutonium Dust +item.particle_aelectron.name=Positron Capsule +item.particle_amat.name=Antimatter Capsule +item.particle_aproton.name=Antiproton Capsule +item.particle_aschrab.name=Antischrabidium Capsule +item.particle_copper.name=Copper Ion Capsule +item.particle_dark.name=Dark Matter Capsule +item.particle_digamma.name=§cThe Digamma Particle§r +item.particle_empty.name=Empty Particle Capsule +item.particle_higgs.name=Higgs Boson Capsule +item.particle_hydrogen.name=Hydrogen Ion Capsule +item.particle_lead.name=Lead Ion Capsule +item.particle_lutece.name=Lutece Quasiparticle +item.particle_muon.name=Muon Capsule +item.particle_sparkticle.name=Sparkticle Capsule +item.particle_strange.name=Strange Quark Capsule +item.particle_tachyon.name=Tachyon Capsule +item.parts_legendary.name=Legendary Parts +item.peas.name=Peas +item.pedestal_steel.name=Steel Pedestal +item.pellet_advanced.name=Advanced Watz Performance Improver +item.pellet_antimatter.name=Antimatter Cluster +item.pellet_beryllium.name=Beryllium Moderator Pellet +item.pellet_buckshot.name=Lead Pellets +item.pellet_canister.name=Canister Shot +item.pellet_charged.name=Ionized Particles +item.pellet_chlorophyte.name=Chlorophyte Rounds +item.pellet_claws.name=Sharp Metal Claws +item.pellet_cluster.name=Explosive Pellets +item.pellet_cluster.desc=Used in multi purpose bombs:$Adds some extra boom! +item.pellet_coal.name=Dense Coal Cluster +item.pellet_coolant.name=Coolant Cluster +item.pellet_flechette.name=Flechettes +item.pellet_gas.name=Poison Gas Cartridge +item.pellet_gas.desc=Used in multi purpose bombs:$*cough cough* Halp pls! +item.pellet_hes.name=HES Watz Pellet +item.pellet_lead.name=Lead Reflector Pellet +item.pellet_les.name=LES Watz Pellet +item.pellet_mercury.name=Mercury Rounds +item.pellet_mes.name=MES Watz Pellet +item.pellet_meteorite.name=Meteorite Rounds +item.pellet_neptunium.name=Neptunium Watz Pellet +item.pellet_rtg.name=Plutonium-238 RTG Pellet +item.pellet_rtg.desc=RTG fuel pellet for infinite energy! (almost) +item.pellet_rtg_actinium.name=Actinium-227 RTG Pellet +item.pellet_rtg_actinium.desc=A glow of blue light and beta rays. +item.pellet_rtg_americium.name=Americium-241 RTG Pellet +item.pellet_rtg_americium.desc=Rare and reliable, good old Americium! +item.pellet_rtg_berkelium.name=Berkelium RTG Pellet +item.pellet_rtg_berkelium.desc= +item.pellet_rtg_cobalt.name=Cobalt-60 RTG Pellet +item.pellet_rtg_cobalt.desc=Not the best as an RTG, but great for gamma radiation! +item.pellet_rtg_depleted.bismuth.name=Decayed Bismuth RTG Pellet +item.pellet_rtg_depleted.lead.name=Decayed Lead RTG Pellet +item.pellet_rtg_depleted.neptunium.name=Decayed Neptunium RTG Pellet +item.pellet_rtg_depleted.mercury.name=Decayed Mercury RTG Pellet +item.pellet_rtg_depleted.nickel.name=Decayed Nickel RTG Pellet +item.pellet_rtg_depleted.zirconium.name=Decayed Zirconium RTG Pellet +item.pellet_rtg_lead.name=Lead-209 RTG Pellet +item.pellet_rtg_lead.desc=Exposure will result in immediate death. +item.pellet_rtg_gold.name=Gold-198 RTG Pellet +item.pellet_rtg_gold.desc=Made from a rare, highly unstable gold isotope. +item.pellet_rtg_polonium.name=Polonium-210 RTG Pellet +item.pellet_rtg_polonium.desc=More powerful RTG pellet, made from finest polonium! +item.pellet_rtg_strontium.name=Strontium-90 RTG Pellet +item.pellet_rtg_strontium.desc=Known to the State of California... +item.pellet_rtg_radium.name=Radium-226 RTG Pellet +item.pellet_rtg_radium.desc=Great starter pellet, sourced from all-natural radium! +item.pellet_rtg_weak.name=Weak Uranium RTG Pellet +item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! +item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet +item.photo_panel.name=Photovoltaic Panel +item.pile_rod_boron.name=Chicago Pile Control Rod +item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle +item.pile_rod_detector.name=Chicago Pile Control & Detector Rod +item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux +item.pile_rod_lithium.name=Chicago Pile Lithium Cell +item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core +item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod +item.pile_rod_plutonium.desc=§d[Neutron Source] +item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod +item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. +item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source +item.pile_rod_source.desc=§d[Neutron Source] +item.pile_rod_uranium.name=Chicago Pile Uranium Rod +item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample +item.pill_iodine.name=Iodine Pill +item.pill_iodine.desc=Removes negative effects +item.pill_herbal.name=Herbal Paste +item.pill_herbal.desc=Effective treatment against lung disease and mild radiation poisoning$Comes with side effects +item.pill_red.name=Red Pill +item.pin.name=Bobby Pin +item.pin.desc=Standard success rate of picking a regular lock is ~10%%. +item.pipentm.name=%s Pipe +item.pipes_steel.name=Steel Pipes +item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. +item.piston_selenium.name=Combustion Engine Piston +item.piston_set_desh.name=Desh Piston Set +item.piston_set_dura.name=High-Speed Steel Piston Set +item.piston_set_starmetal.name=Starmetal Piston Set +item.piston_set_steel.name=Steel Piston Set +item.plan_c.name=Plan C +item.plan_c.desc=Deadly +item.plant_item.mustardwillow.name=Mustard Willow Leaf +item.plant_item.rope.name=Rope +item.plant_item.tobacco.name=Tobacco +item.plastic_bag.name=Plastic Bag +item.plate_advanced_alloy.name=Advanced Alloy Plate +item.plate_aluminium.name=Aluminium Plate +item.plate_armor_ajr.name=Iron-Shod Armor Plating +item.plate_armor_dnt.name=DNT Armor Plating +item.plate_armor_fau.name=Fau Armor Plating +item.plate_armor_hev.name=Reactive Armor Plating +item.plate_armor_lunar.name=Lunar Plating +item.plate_armor_titanium.name=Titanium Armor Plate +item.plate_bismuth.name=Bismuth Compound Plate +item.plate_bismuth.desc=Guys, It's Bismuth's alchemical symbol, I swear. +item.plate_cast.name=Cast %s Plate +item.plate_combine_steel.name=CMB Steel Plate +item.plate_copper.name=Copper Plate +item.plate_dalekanium.name=Angry Metal +item.plate_desh.name=Desh Compound Plate +item.plate_dineutronium.name=Dineutronium Compound Plate +item.plate_dura_steel.name=High-Speed Steel Plate +item.plate_euphemium.name=Euphemium Compound Plate +item.plate_fuel_mox.name=MOX Plate Fuel +item.plate_fuel_pu238be.name=Pu238Be Plate Fuel +item.plate_fuel_pu239.name=HEP-239 Plate Fuel +item.plate_fuel_ra226be.name=Ra226Be Plate Fuel +item.plate_fuel_sa326.name=HES-326 Plate Fuel +item.plate_fuel_u233.name=HEU-233 Plate Fuel +item.plate_fuel_u235.name=HEU-235 Plate Fuel +item.plate_gold.name=Gold Plate +item.plate_iron.name=Iron Plate +item.plate_kevlar.name=Kevlar-Ceramic Compound +item.plate_lead.name=Lead Plate +item.plate_mixed.name=Mixed Plate +item.plate_paa.name=PaA Alloy Plate +item.plate_polymer.name=Insulator +item.plate_saturnite.name=Saturnite Plate +item.plate_schrabidium.name=Schrabidium Plate +item.plate_steel.name=Steel Plate +item.plate_titanium.name=Titanium Plate +item.plate_welded.name=Welded %s Plate +item.polaroid.name=The Polaroid +item.pollution_detector.name=Pollution Detector +item.powder_actinium.name=Actinium Powder +item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder +item.powder_advanced_alloy.name=Advanced Alloy Powder +item.powder_aluminium.name=Aluminium Powder +item.powder_asbestos.name=Asbestos Powder +item.powder_asbestos.desc=§o"Sniffffffff- MHHHHHHMHHHHHHHHH"§r +item.powder_ash.coal.name=Coal Ash +item.powder_ash.fly.name=Fly Ash +item.powder_ash.fullerene.name=Fullerene +item.powder_ash.misc.name=Ash +item.powder_ash.soot.name=Fine Soot +item.powder_ash.wood.name=Wood Ash +item.powder_astatine.name=Astatine Powder +item.powder_at209.name=Astatine-209 Powder +item.powder_au198.name=Gold-198 Powder +item.powder_australium.name=Australium Powder +item.powder_bakelite.name=Bakelite Powder +item.powder_balefire.name=Thermonuclear Ashes +item.powder_beryllium.name=Beryllium Powder +item.powder_bismuth.name=Bismuth Powder +item.powder_borax.name=Borax +item.powder_boron.name=Boron Powder +item.powder_boron_tiny.name=Tiny Pile of Boron Powder +item.powder_bromine.name=Bromine Powder +item.powder_cadmium.name=Cadmium Powder +item.powder_caesium.name=Caesium Powder +item.powder_calcium.name=Calcium Powder +item.powder_cerium.name=Cerium Powder +item.powder_cerium_tiny.name=Tiny Pile of Cerium Powder +item.powder_chlorocalcite.name=Chlorocalcite +item.powder_chlorophyte.name=Chlorophyte Powder +item.powder_cloud.name=Cloud Residue +item.powder_co60.name=Cobalt-60 Powder +item.powder_coal.name=Coal Powder +item.powder_coal_tiny.name=Tiny Pile of Coal Powder +item.powder_cobalt.name=Cobalt Powder +item.powder_cobalt_tiny.name=Tiny Pile of Cobalt Powder +item.powder_coltan.name=Purified Tantalite +item.powder_coltan_ore.name=Crushed Coltan +item.powder_combine_steel.name=CMB Steel Powder +item.powder_copper.name=Copper Powder +item.powder_cs137.name=Caesium-137 Powder +item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder +item.powder_daffergon.name=Daffergon Powder +item.powder_desh.name=Desh Powder +item.powder_desh_mix.name=Desh Blend +item.powder_desh_ready.name=DeshReady™ Blend +item.powder_diamond.name=Diamond Powder +item.powder_dineutronium.name=Dineutronium Powder +item.powder_dura_steel.name=High-Speed Steel Powder +item.powder_emerald.name=Emerald Powder +item.powder_euphemium.name=Euphemium Powder +item.powder_euphemium.desc=Pulverized pink.$Tastes like strawberries. +item.powder_fertilizer.name=Industrial Fertilizer +item.powder_fire.name=Red Phosphorus +item.powder_fire.desc=Used in multi purpose bombs:$Incendiary bombs are fun! +item.powder_flux.name=Flux +item.powder_gold.name=Gold Powder +item.powder_i131.name=Iodine-131 Powder +item.powder_i131_tiny.name=Tiny Pile of Iodine-131 Powder +item.powder_ice.name=Cryo Powder +item.powder_impure_osmiridium.name=Impure Osmiridium Powder +item.powder_iodine.name=Iodine Powder +item.powder_iron.name=Iron Powder +item.powder_lanthanium.name=Lanthanium Powder +item.powder_lanthanium_tiny.name=Tiny Pile of Lanthanium Powder +item.powder_lapis.name=Lapis Lazuli Powder +item.powder_lead.name=Lead Powder +item.powder_lignite.name=Lignite Powder +item.powder_lithium.name=Lithium Powder +item.powder_lithium_tiny.name=Tiny Pile of Lithium Powder +item.powder_magic.name=Pulverized Enchantment +item.powder_magnetized_tungsten.name=Magnetized Tungsten Powder +item.powder_meteorite.name=Meteorite Powder +item.powder_meteorite_tiny.name=Tiny Pile of Meteorite Powder +item.powder_molysite.name=Molysite +item.powder_neodymium.name=Neodymium Powder +item.powder_neodymium_tiny.name=Tiny Pile of Neodymium Powder +item.powder_neptunium.name=Neptunium Powder +item.powder_niobium.name=Niobium Powder +item.powder_niobium_tiny.name=Tiny Pile of Niobium Powder +item.powder_nitan_mix.name=Nitanium Blend +item.powder_paleogenite.name=Paleogenite Powder +item.powder_paleogenite_tiny.name=Tiny Pile of Paleogenite Powder +item.powder_plutonium.name=Plutonium Powder +item.powder_poison.name=Poison Powder +item.powder_poison.desc=Used in multi purpose bombs:$Warning: Poisonous! +item.powder_polonium.name=Polonium-210 Powder +item.powder_polymer.name=Polymer Powder +item.powder_power.name=Energy Powder +item.powder_quartz.name=Quartz Powder +item.powder_ra226.name=Radium-226 Powder +item.powder_red_copper.name=Red Copper Powder +item.powder_reiium.name=Reiium Powder +item.powder_sawdust.name=Sawdust +item.powder_schrabidate.name=Ferric Schrabidate Powder +item.powder_schrabidium.name=Schrabidium Powder +item.powder_semtex_mix.name=Semtex Blend +item.powder_sodium.name=Sodium +item.powder_spark_mix.name=Spark Blend +item.powder_sr90.name=Strontium-90 Powder +item.powder_sr90_tiny.name=Tiny Pile of Strontium-90 Powder +item.powder_steel.name=Steel Powder +item.powder_steel_tiny.name=Tiny Pile of Steel Powder +item.powder_strontium.name=Strontium Powder +item.powder_tantalium.name=Tantalium Powder +item.powder_tantalium.desc='Tantalum' +item.powder_tantalium.desc.P11=AKA Tantalum. +item.powder_tcalloy.name=Technetium Steel Powder +item.powder_tektite.name=Tektite Powder +item.powder_tennessine.name=Tennessine Powder +item.powder_thermite.name=Thermite +item.powder_thorium.name=Thorium Powder +item.powder_titanium.name=Titanium Powder +item.powder_tungsten.name=Tungsten Powder +item.powder_unobtainium.name=Unobtainium Powder +item.powder_uranium.name=Uranium Powder +item.powder_verticium.name=Verticium Powder +item.powder_weidanium.name=Weidanium Powder +item.powder_xe135.name=Xenon-135 Powder +item.powder_xe135_tiny.name=Tiny Pile of Xenon-135 Powder +item.powder_yellowcake.name=Yellowcake +item.powder_zirconium.name=Zirconium Powder +item.power_net_tool.name=Cable Network Analysis Tool +item.pipette.name=Pipette +item.pipette_boron.name=Boron Pipette +item.pipette_laboratory.name=Laboratory Grade Pipette +item.primer_357.name=.357 Magnum Primer (x24) +item.primer_44.name=.44 Magnum Primer (x24) +item.primer_50.name=Large Caliber Primer (x12) +item.primer_9.name=Small Caliber Primer (x32) +item.primer_buckshot.name=Buckshot Primer (x12) +item.protection_charm.name=Charm of Protection +item.prototype_kit.name=Prototype Kit +item.pudding.name=Pudding +item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR BFB Rod +item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR BFB Rod +item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod +item.pwr_fuel.hen237.name=HEN-237 PWR Fuel Rod +item.pwr_fuel.hep239.name=HEP-239 PWR Fuel Rod +item.pwr_fuel.hep241.name=HEP-241 PWR Fuel Rod +item.pwr_fuel.hes326.name=HES-326 PWR Fuel Rod +item.pwr_fuel.hes327.name=HES-327 PWR Fuel Rod +item.pwr_fuel.heu233.name=HEU-233 PWR Fuel Rod +item.pwr_fuel.heu235.name=HEU-235 PWR Fuel Rod +item.pwr_fuel.mea.name=MEA PWR Fuel Rod +item.pwr_fuel.men.name=MEN PWR Fuel Rod +item.pwr_fuel.mep.name=MEP PWR Fuel Rod +item.pwr_fuel.meu.name=MEU PWR Fuel Rod +item.pwr_fuel.mox.name=MOX PWR Fuel Rod +item.pwr_fuel_depleted.bfb_am_mix.name=Depleted Fuel Grade Americium PWR BFB Rod +item.pwr_fuel_depleted.bfb_pu241.name=Depleted Plutonium-241 PWR BFB Rod +item.pwr_fuel_depleted.hea242.name=Depleted HEA-242 PWR Fuel Rod +item.pwr_fuel_depleted.hen237.name=Depleted HEN-237 PWR Fuel Rod +item.pwr_fuel_depleted.hep239.name=Depleted HEP-239 PWR Fuel Rod +item.pwr_fuel_depleted.hep241.name=Depleted HEP-241 PWR Fuel Rod +item.pwr_fuel_depleted.hes326.name=Depleted HES-326 PWR Fuel Rod +item.pwr_fuel_depleted.hes327.name=Depleted HES-327 PWR Fuel Rod +item.pwr_fuel_depleted.heu233.name=Depleted HEU-233 PWR Fuel Rod +item.pwr_fuel_depleted.heu235.name=Depleted HEU-235 PWR Fuel Rod +item.pwr_fuel_depleted.mea.name=Depleted MEA PWR Fuel Rod +item.pwr_fuel_depleted.men.name=Depleted MEN PWR Fuel Rod +item.pwr_fuel_depleted.mep.name=Depleted MEP PWR Fuel Rod +item.pwr_fuel_depleted.meu.name=Depleted MEU PWR Fuel Rod +item.pwr_fuel_depleted.mox.name=Depleted MOX PWR Fuel Rod +item.pwr_fuel_hot.bfb_am_mix.name=Hot Fuel Grade Americium PWR BFB Rod +item.pwr_fuel_hot.bfb_pu241.name=Hot Plutonium-241 PWR BFB Rod +item.pwr_fuel_hot.hea242.name=Hot HEA-242 PWR Fuel Rod +item.pwr_fuel_hot.hen237.name=Hot HEN-237 PWR Fuel Rod +item.pwr_fuel_hot.hep239.name=Hot HEP-239 PWR Fuel Rod +item.pwr_fuel_hot.hep241.name=Hot HEP-241 PWR Fuel Rod +item.pwr_fuel_hot.hes326.name=Hot HES-326 PWR Fuel Rod +item.pwr_fuel_hot.hes327.name=Hot HES-327 PWR Fuel Rod +item.pwr_fuel_hot.heu233.name=Hot HEU-233 PWR Fuel Rod +item.pwr_fuel_hot.heu235.name=Hot HEU-235 PWR Fuel Rod +item.pwr_fuel_hot.mea.name=Hot MEA PWR Fuel Rod +item.pwr_fuel_hot.men.name=Hot MEN PWR Fuel Rod +item.pwr_fuel_hot.mep.name=Hot MEP PWR Fuel Rod +item.pwr_fuel_hot.meu.name=Hot MEU PWR Fuel Rod +item.pwr_fuel_hot.mox.name=Hot MOX PWR Fuel Rod +item.quartz_plutonium.name=Plutonic Quartz +item.radar_linker.name=Radar Linker +item.radaway.name=RadAway +item.radaway_flush.name=Elite RadAway +item.radaway_strong.name=Strong RadAway +item.radx.name=Rad-X +item.radx.desc=Increases radiation resistance by 0.2 (37%%) for 3 minutes +item.rag.name=Cloth +item.rag_damp.name=Damp Cloth +item.rag_piss.name=Piss-Soaked Rag +item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod +item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod +item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r +item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod +item.rbmk_fuel_flashlead.name=Flashlead RBMK Fuel Rod +item.rbmk_fuel_hea241.name=HEA-241 RBMK Fuel Rod +item.rbmk_fuel_hea242.name=HEA-242 RBMK Fuel Rod +item.rbmk_fuel_heaus.name=HEAus RBMK Fuel Rod +item.rbmk_fuel_hen.name=HEN RBMK Fuel Rod +item.rbmk_fuel_hes.name=HES RBMK Fuel Rod +item.rbmk_fuel_hep.name=HEP-239 RBMK Fuel Rod +item.rbmk_fuel_hep241.name=HEP-241 RBMK Fuel Rod +item.rbmk_fuel_heu233.name=HEU-233 RBMK Fuel Rod +item.rbmk_fuel_heu235.name=HEU-235 RBMK Fuel Rod +item.rbmk_fuel_lea.name=LEA RBMK Fuel Rod +item.rbmk_fuel_leaus.name=LEAus RBMK Fuel Rod +item.rbmk_fuel_lep.name=LEP-239 RBMK Fuel Rod +item.rbmk_fuel_les.name=LES RBMK Fuel Rod +item.rbmk_fuel_mea.name=MEA RBMK Fuel Rod +item.rbmk_fuel_men.name=MEN RBMK Fuel Rod +item.rbmk_fuel_mep.name=MEP-239 RBMK Fuel Rod +item.rbmk_fuel_mes.name=MES RBMK Fuel Rod +item.rbmk_fuel_meu.name=MEU RBMK Fuel Rod +item.rbmk_fuel_mox.name=MOX RBMK Fuel Rod +item.rbmk_fuel_po210be.name=Po210Be RBMK Neutron Source +item.rbmk_fuel_pu238be.name=Pu238Be RBMK Neutron Source +item.rbmk_fuel_ra226be.name=Ra226Be RBMK Neutron Source +item.rbmk_fuel_thmeu.name=ThMEU RBMK Fuel Rod +item.rbmk_fuel_ueu.name=NU RBMK Fuel Rod +item.rbmk_fuel_zfb_am_mix.name=Fuel Grade Americium RBMK ZFB Rod +item.rbmk_fuel_zfb_bismuth.name=Bismuth RBMK ZFB Rod +item.rbmk_fuel_zfb_pu241.name=Pu-241 RBMK ZFB Rod +item.rbmk_lid.name=RBMK Cover Panel +item.rbmk_lid_glass.name=RBMK Glass Cover Panel +item.rbmk_pellet_balefire.name=Balefire Fuel Pellet +item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet +item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r +item.rbmk_pellet_flashlead.name=Flashlead Fuel Pellet +item.rbmk_pellet_hea241.name=HEA-241 Fuel Pellet +item.rbmk_pellet_hea242.name=HEA-242 Fuel Pellet +item.rbmk_pellet_heaus.name=HEAus Fuel Pellet +item.rbmk_pellet_hen.name=HEN Fuel Pellet +item.rbmk_pellet_hep239.name=HEP-239 Fuel Pellet +item.rbmk_pellet_hep241.name=HEP-241 Fuel Pellet +item.rbmk_pellet_heu233.name=HEU-233 Fuel Pellet +item.rbmk_pellet_heu235.name=HEU-235 Fuel Pellet +item.rbmk_pellet_hes.name=HES Fuel Pellet +item.rbmk_pellet_lea.name=LEA Fuel Pellet +item.rbmk_pellet_leaus.name=LEAus Fuel Pellet +item.rbmk_pellet_lep.name=LEP Fuel Pellet +item.rbmk_pellet_les.name=LES Fuel Pellet +item.rbmk_pellet_mea.name=MEA Fuel Pellet +item.rbmk_pellet_men.name=MEN Fuel Pellet +item.rbmk_pellet_mep.name=MEP Fuel Pellet +item.rbmk_pellet_mes.name=MES Fuel Pellet +item.rbmk_pellet_meu.name=MEU Fuel Pellet +item.rbmk_pellet_mox.name=MOX Fuel Pellet +item.rbmk_pellet_po210be.name=Po210Be Neutron Source Pellet +item.rbmk_pellet_pu238be.name=Pu238Be Neutron Source Pellet +item.rbmk_pellet_ra226be.name=Ra226Be Neutron Source Pellet +item.rbmk_pellet_thmeu.name=ThMEU Fuel Pellet +item.rbmk_pellet_ueu.name=NU Fuel Pellet +item.rbmk_pellet_zfb_am_mix.name=Fuel Grade Americium ZFB Pellet +item.rbmk_pellet_zfb_bismuth.name=Bismuth ZFB Pellet +item.rbmk_pellet_zfb_pu241.name=Pu-241 ZFB Pellet +item.rbmk_tool.name=RBMK Console Linking Device +item.rbmk_tool.desc=Sneak and right-click RBMK to save the position,$sneak and right-click console to link! +item.rbmk_tool.linked=Position set! +item.rbmk_tool.set=RBMK linked! +item.reacher.name=Tungsten Reacher +item.reactor_core.name=Breeding Reactor Core +item.reactor_sensor.name=Reactor Remote Sensor +item.record.glass.desc=? ? ? +item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core +item.record.ss.desc=Valve - Sector Sweep +item.record.vc.desc=Valve - Vortal Combat +item.redcoil_capacitor.name=Redcoil Capacitor +item.redstone_depleted.name=Desaturated Redstone Dust +item.redstone_sword.name=Redstone Sword +item.reer_graar.name=The Reer Graar +item.remote.name=Broken Remote +item.ring_pull.name=Ring Pull +item.ring_starmetal.name=§9Starmetal Ring§r +item.robes_boots.name=Field Boots +item.robes_helmet.name=Casual Hoodie +item.robes_legs.name=Casual Pants +item.robes_plate.name=Casual Sweater +item.rocket_fuel.name=Solid Fuel (Rocket Propellant) +item.rod_empty.name=Empty Rod +item.rod.lithium.name=Lithium Rod +item.rod.tritium.name=Tritium Rod +item.rod.co.name=Cobalt Rod +item.rod.co60.name=Cobalt-60 Rod +item.rod.ra226.name=Radium-226 Rod +item.rod.ac227.name=Actinium-227 Rod +item.rod.th232.name=Thorium-232 Rod +item.rod.thf.name=Thorium Fuel Rod +item.rod.u235.name=Uranium-235 Rod +item.rod.np237.name=Neptunium-237 Rod +item.rod.u238.name=Uranium-238 Rod +item.rod.pu238.name=Plutonium-238 Rod +item.rod.pu239.name=Plutonium-239 Rod +item.rod.rgp.name=Reactor-Grade Plutonium Rod +item.rod.waste.name=Nuclear Waste Rod +item.rod.lead.name=Lead Rod +item.rod.uranium.name=Uranium Rod +item.rod_dual_empty.name=Empty Dual Rod +item.rod_dual.lithium.name=Lithium Dual Rod +item.rod_dual.tritium.name=Tritium Dual Rod +item.rod_dual.co.name=Cobalt Dual Rod +item.rod_dual.co60.name=Cobalt-60 Dual Rod +item.rod_dual.ra226.name=Radium-226 Dual Rod +item.rod_dual.ac227.name=Actinium-227 Dual Rod +item.rod_dual.th232.name=Thorium-232 Dual Rod +item.rod_dual.thf.name=Thorium Fuel Dual Rod +item.rod_dual.u235.name=Uranium-235 Dual Rod +item.rod_dual.np237.name=Neptunium-237 Dual Rod +item.rod_dual.u238.name=Uranium-238 Dual Rod +item.rod_dual.pu238.name=Plutonium-238 Dual Rod +item.rod_dual.pu239.name=Plutonium-239 Dual Rod +item.rod_dual.rgp.name=Reactor-Grade Plutonium Dual Rod +item.rod_dual.waste.name=Nuclear Waste Dual Rod +item.rod_dual.lead.name=Lead Dual Rod +item.rod_dual.uranium.name=Uranium Dual Rod +item.rod_quad_empty.name=Empty Quad Rod +item.rod_quad.lithium.name=Lithium Quad Rod +item.rod_quad.tritium.name=Tritium Quad Rod +item.rod_quad.co.name=Cobalt Quad Rod +item.rod_quad.co60.name=Cobalt-60 Quad Rod +item.rod_quad.ra226.name=Radium-226 Quad Rod +item.rod_quad.ac227.name=Actinium-227 Quad Rod +item.rod_quad.th232.name=Thorium-232 Quad Rod +item.rod_quad.thf.name=Thorium Fuel Quad Rod +item.rod_quad.u235.name=Uranium-235 Quad Rod +item.rod_quad.np237.name=Neptunium-237 Quad Rod +item.rod_quad.u238.name=Uranium-238 Quad Rod +item.rod_quad.pu238.name=Plutonium-238 Quad Rod +item.rod_quad.pu239.name=Plutonium-239 Quad Rod +item.rod_quad.rgp.name=Reactor-Grade Plutonium Quad Rod +item.rod_quad.waste.name=Nuclear Waste Quad Rod +item.rod_quad.lead.name=Lead Quad Rod +item.rod_quad.uranium.name=Uranium Quad Rod +item.rod_australium.name=Australium Rod +item.rod_balefire.name=Balefire Rod +item.rod_balefire_blazing.name=Blazing Balefire Rod +item.rod_coolant.name=Coolant Cell +item.rod_daffergon.name=Daffergon Rod +item.rod_dual_balefire.name=Balefire Dual Rod +item.rod_dual_balefire_blazing.name=Blazing Balefire Dual Rod +item.rod_dual_coolant.name=Dual Coolant Cell +item.rod_dual_lead.name=Lead Dual Rod +item.rod_dual_lithium.name=Dual Lithium Rod +item.rod_dual_mox_fuel.name=MOX Dual Fuel Rod +item.rod_dual_mox_fuel_depleted.name=Depleted MOX Dual Fuel Rod +item.rod_dual_neptunium.name=Neptunium Dual Rod +item.rod_dual_plutonium.name=Plutonium Dual Rod +item.rod_dual_plutonium_fuel.name=Plutonium Dual Fuel Rod +item.rod_dual_plutonium_fuel_depleted.name=Depleted Plutonium Dual Fuel Rod +item.rod_dual_polonium.name=Polonium-210 Dual Rod +item.rod_dual_pu238.name=Plutonium-238 Dual Rod +item.rod_dual_pu239.name=Plutonium-239 Dual Rod +item.rod_dual_pu240.name=Plutonium-240 Dual Rod +item.rod_dual_schrabidium.name=Schrabidium-326 Dual Rod +item.rod_dual_schrabidium_fuel.name=Schrabidium Dual Fuel Rod +item.rod_dual_schrabidium_fuel_depleted.name=Depleted Schrabidium Dual Fuel Rod +item.rod_dual_solinium.name=Schrabidium-327 Dual Rod +item.rod_dual_th232.name=Thorium-232 Dual Rod +item.rod_dual_thorium_fuel.name=Thorium Dual Fuel Rod +item.rod_dual_thorium_fuel_depleted.name=Depleted Thorium Dual Fuel Rod +item.rod_dual_tritium.name=Dual Tritium Cell +item.rod_dual_u233.name=Uranium-233 Dual Rod +item.rod_dual_u235.name=Uranium-235 Dual Rod +item.rod_dual_u238.name=Uranium-238 Dual Rod +item.rod_dual_uranium.name=Uranium Dual Rod +item.rod_dual_uranium_fuel.name=Uranium Dual Fuel Rod +item.rod_dual_uranium_fuel_depleted.name=Depleted Uranium Dual Fuel Rod +item.rod_dual_waste.name=Nuclear Waste Dual Rod +item.rod_dual_water.name=Dual Water Cell +item.rod_euphemium.name=Euphemium Rod +item.rod_lead.name=Lead Rod +item.rod_lithium.name=Lithium Rod +item.rod_mox_fuel.name=MOX Fuel Rod +item.rod_mox_fuel_depleted.name=Depleted MOX Fuel Rod +item.rod_neptunium.name=Neptunium Rod +item.rod_of_discord.name=Rod of Discord +item.rod_plutonium.name=Plutonium Rod +item.rod_plutonium_fuel.name=Plutonium Fuel Rod +item.rod_plutonium_fuel_depleted.name=Depleted Plutonium Fuel Rod +item.rod_polonium.name=Polonium-210 Rod +item.rod_pu238.name=Plutonium-238 Rod +item.rod_pu239.name=Plutonium-239 Rod +item.rod_pu240.name=Plutonium-240 Rod +item.rod_quad_balefire.name=Balefire Quad Rod +item.rod_quad_balefire_blazing.name=Blazing Balefire Quad Rod +item.rod_quad_coolant.name=Quad Coolant Cell +item.rod_quad_euphemium.name=Burned Out Quad Schrabidium Rod +item.rod_quad_lead.name=Lead Quad Rod +item.rod_quad_lithium.name=Quad Lithium Rod +item.rod_quad_mox_fuel.name=MOX Quad Fuel Rod +item.rod_quad_mox_fuel_depleted.name=Depleted MOX Quad Fuel Rod +item.rod_quad_neptunium.name=Neptunium Quad Rod +item.rod_quad_plutonium.name=Plutonium Quad Rod +item.rod_quad_plutonium_fuel.name=Plutonium Quad Fuel Rod +item.rod_quad_plutonium_fuel_depleted.name=Depleted Plutonium Quad Fuel Rod +item.rod_quad_polonium.name=Polonium-210 Quad Rod +item.rod_quad_pu238.name=Plutonium-238 Quad Rod +item.rod_quad_pu239.name=Plutonium-239 Quad Rod +item.rod_quad_pu240.name=Plutonium-240 Quad Rod +item.rod_quad_schrabidium.name=Schrabidium-326 Quad Rod +item.rod_quad_schrabidium_fuel.name=Schrabidium Quad Fuel Rod +item.rod_quad_schrabidium_fuel_depleted.name=Depleted Schrabidium Quad Fuel Rod +item.rod_quad_solinium.name=Schrabidium-327 Quad Rod +item.rod_quad_th232.name=Thorium-232 Quad Rod +item.rod_quad_thorium_fuel.name=Thorium Quad Fuel Rod +item.rod_quad_thorium_fuel_depleted.name=Depleted Thorium Quad Fuel Rod +item.rod_quad_tritium.name=Quad Tritium Cell +item.rod_quad_u233.name=Uranium-233 Quad Rod +item.rod_quad_u235.name=Uranium-235 Quad Rod +item.rod_quad_u238.name=Uranium-238 Quad Rod +item.rod_quad_uranium.name=Uranium Quad Rod +item.rod_quad_uranium_fuel.name=Uranium Quad Fuel Rod +item.rod_quad_uranium_fuel_depleted.name=Depleted Uranium Quad Fuel Rod +item.rod_quad_waste.name=Nuclear Waste Quad Rod +item.rod_quad_water.name=Quad Water Cell +item.rod_reiium.name=Reiium Rod +item.rod_schrabidium.name=Schrabidium-326 Rod +item.rod_schrabidium_fuel.name=Schrabidium Fuel Rod +item.rod_schrabidium_fuel_depleted.name=Depleted Schrabidium Fuel Rod +item.rod_solinium.name=Schrabidium-327 Rod +item.rod_th232.name=Thorium-232 Rod +item.rod_thorium_fuel.name=Thorium Fuel Rod +item.rod_thorium_fuel_depleted.name=Depleted Thorium Fuel Rod +item.rod_tritium.name=Tritium Cell +item.rod_u233.name=Uranium-233 Rod +item.rod_u235.name=Uranium-235 Rod +item.rod_u238.name=Uranium-238 Rod +item.rod_unobtainium.name=Unobtainium Rod +item.rod_uranium.name=Uranium Rod +item.rod_uranium_fuel.name=Uranium Fuel Rod +item.rod_uranium_fuel_depleted.name=Depleted Uranium Fuel Rod +item.rod_verticium.name=Verticium Rod +item.rod_waste.name=Nuclear Waste Rod +item.rod_water.name=Water Cell +item.rod_weidanium.name=Weidanium Rod +item.rod_zirnox_empty.name=Empty ZIRNOX Rod +item.rod_zirnox_natural_uranium_fuel.name=ZIRNOX Natural Uranium Fuel Rod +item.rod_zirnox_uranium_fuel.name=ZIRNOX Uranium Fuel Rod +item.rod_zirnox_th232.name=ZIRNOX Thorium-232 Rod +item.rod_zirnox_thorium_fuel.name=ZIRNOX Thorium Fuel Rod +item.rod_zirnox_mox_fuel.name=ZIRNOX MOX Fuel Rod +item.rod_zirnox_plutonium_fuel.name=ZIRNOX Plutonium Fuel Rod +item.rod_zirnox_u233_fuel.name=ZIRNOX Uranium-233 Fuel Rod +item.rod_zirnox_u235_fuel.name=ZIRNOX Uranium-235 Fuel Rod +item.rod_zirnox_les_fuel.name=ZIRNOX LES Fuel Rod +item.rod_zirnox_lithium.name=ZIRNOX Lithium Rod +item.rod_zirnox_tritium.name=ZIRNOX Tritium Rod +item.rod_zirnox_zfb_mox.name=ZIRNOX ZFB MOX Fuel Rod +item.rod_zirnox_natural_uranium_fuel_depleted.name=Depleted ZIRNOX Natural Uranium Fuel Rod +item.rod_zirnox_uranium_fuel_depleted.name= Depleted ZIRNOX Uranium Fuel Rod +item.rod_zirnox_thorium_fuel_depleted.name= Depleted ZIRNOX Thorium Fuel Rod +item.rod_zirnox_mox_fuel_depleted.name=Depleted ZIRNOX MOX Fuel Rod +item.rod_zirnox_plutonium_fuel_depleted.name=Depleted ZIRNOX Plutonium Fuel Rod +item.rod_zirnox_u233_fuel_depleted.name=Depleted ZIRNOX Uranium-233 Fuel Rod +item.rod_zirnox_u235_fuel_depleted.name=Depleted ZIRNOX Uranium-235 Fuel Rod +item.rod_zirnox_les_fuel_depleted.name=Depleted ZIRNOX LES Fuel Rod +item.rod_zirnox_zfb_mox_depleted.name=Depleted ZIRNOX ZFB MOX Fuel Rod +item.rotor_steel.name=Large Steel Rotor +item.rpa_boots.name=Remnants Power Armor Boots +item.rpa_helmet.name=Remnants Power Armor Helmet +item.rpa_legs.name=Remnants Power Armor Leggings +item.rpa_plate.name=Remnants Power Armor Chestplate +item.rtg_unit.name=RTG Unit +item.rubber_gloves.name=Thick Rubber Gloves +item.rune_blank.name=Blank Catalyst Matrix +item.rune_dagaz.name=Balanced Catalyst Matrix +item.rune_hagalaz.name=Rough Catalyst Matrix +item.rune_isa.name=Cool Catalyst Matrix +item.rune_jera.name=Multiplicative Catalyst Matrix +item.rune_thurisaz.name=Additive Catalyst Matrix +item.safety_fuse.name=Safety Fuse +item.sat_base.name=Satellite Base +item.sat_chip.name=Satellite ID-Chip +item.sat_coord.name=Satellite Designator +item.sat_designator.name=Satellite Laser Designator +item.sat_relay.name=Satellite Radar Relay +item.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion +item.sat_gerald.name=Gerald The Construction Android +item.sat_head_laser.name=Death Ray +item.sat_head_mapper.name=High-Gain Optical Camera +item.sat_head_radar.name=Radar Dish +item.sat_head_resonator.name=Xenium Resonator +item.sat_head_scanner.name=M700 Survey Scanner +item.sat_interface.name=Satellite Control Interface +item.sat_laser.name=Orbital Death Ray +item.sat_lunar_miner.name=Lunar Mining Ship +item.sat_mapper.name=Surface Mapping Satellite +item.sat_miner.name=Asteroid Mining Ship +item.sat_radar.name=Radar Survey Satellite +item.sat_resonator.name=Xenium Resonator Satellite +item.sat_scanner.name=Satellite with Depth-Resource Scanning Module +item.sawblade.name=Sawblade +item.schnitzel_vegan.name=Vegan Schnitzel +item.schrabidium_axe.name=Schrabidium Axe +item.schrabidium_boots.name=Schrabidium Boots +item.schrabidium_hammer.name=Schrabidium Hammer +item.schrabidium_helmet.name=Schrabidium Helmet +item.schrabidium_hoe.name=Schrabidium Hoe +item.schrabidium_legs.name=Schrabidium Leggings +item.schrabidium_pickaxe.name=Schrabidium Pickaxe +item.schrabidium_plate.name=Schrabidium Chestplate +item.schrabidium_shovel.name=Schrabidium Shovel +item.schrabidium_sword.name=Schrabidium Sword +item.scrap.name=Scrap +item.scrap_nuclear.name=Radioactive Scraps +item.scrap_oil.name=Oily Scraps +item.scrap_plastic.name=Plastic Scraps +item.scraps.name=Foundry Scraps +item.screwdriver.name=Screwdriver +item.screwdriver.desc=Could be used instead of a fuse... +item.screwdriver_desh.name=Desh Screwdriver +item.scrumpy.name=Bottle of Scrumpy +item.security_boots.name=Security Boots +item.security_helmet.name=Security Helmet +item.security_legs.name=Security Leggings +item.security_plate.name=Security Chestplate +item.seg_10.name=Size 10 Connector +item.seg_15.name=Size 15 Connector +item.seg_20.name=Size 20 Connector +item.serum.name=Serum +item.servo_set.name=Servo Set +item.servo_set_desh.name=Desh Servo Set +item.shackles.name=Shackles +item.shellntm.name=%s Shell +item.shimmer_axe.name=Shimmer Axe +item.shimmer_axe_head.name=Heavy Axe Head +item.shimmer_handle.name=Reinforced Polymer Handle +item.shimmer_head.name=Heavy Hammer Head +item.shimmer_sledge.name=Shimmer Sledge +item.singularity.name=Singularity +item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity +item.singularity_micro.name=Micro Singularity +item.singularity_spark.name=Spark Singularity +item.singularity_super_heated.name=Superheated Resonating Singularity +item.siox.name=SiOX Cancer Medication +item.siox.desc=Reverses mesothelioma with the power of Asbestos! +item.siphon.name=Siphon +item.siren_track.name=Siren Track +item.sliding_blast_door_skin.0.name=Sliding Blast Door Skin: Default +item.sliding_blast_door_skin.1.name=Sliding Blast Door Skin: Variant 1 +item.sliding_blast_door_skin.2.name=Sliding Blast Door Skin: Variant 2 +item.smashing_hammer.name=Smashing Hammer +item.solid_fuel.name=Solid Fuel +item.solid_fuel_bf.name=Solid Fuel (Balefire) +item.solid_fuel_presto.name=Presto Log +item.solid_fuel_presto_bf.name=Presto Log (Balefire) +item.solid_fuel_presto_triplet.name=Boosted Presto Logs +item.solid_fuel_presto_triplet_bf.name=Boosted Presto Logs (Balefire) +item.solinium_core.name=Semi-Stable Solinium Core +item.solinium_igniter.name=SOL Pulse Igniter +item.solinium_kit.name=Solinium Kit +item.solinium_propellant.name=SOL Compression Charge +item.sopsign.name=Sop Sign Battle Axe +item.spawn_duck.name=Golden Egg +item.spawn_ufo.name=Martian Invasion Ship +item.spawn_worm.name=Balls-O-Tron Prime +item.sphere_steel.name=Steel Sphere +item.spider_milk.name=Bottle of Spider Milk +item.spongebob_macaroni.name=Spongebob Macaroni +item.stamp_357.name=.357 Magnum Stamp +item.stamp_44.name=.44 Magnum Stamp +item.stamp_50.name=Large Caliber Stamp +item.stamp_9.name=Small Caliber Stamp +item.stamp_book.printing1.name=Printing Press Stamp (Part 1) +item.stamp_book.printing2.name=Printing Press Stamp (Part 2) +item.stamp_book.printing3.name=Printing Press Stamp (Part 3) +item.stamp_book.printing4.name=Printing Press Stamp (Part 4) +item.stamp_book.printing5.name=Printing Press Stamp (Part 5) +item.stamp_book.printing6.name=Printing Press Stamp (Part 6) +item.stamp_book.printing7.name=Printing Press Stamp (Part 7) +item.stamp_book.printing8.name=Printing Press Stamp (Part 8) +item.stamp_desh_circuit.name=Circuit Stamp (Desh) +item.stamp_desh_flat.name=Flat Stamp (Desh) +item.stamp_desh_plate.name=Plate Stamp (Desh) +item.stamp_desh_wire.name=Wire Stamp (Desh) +item.stamp_desh_357.name=.357 Magnum Stamp (Desh) +item.stamp_desh_44.name=.44 Magnum Stamp (Desh) +item.stamp_desh_50.name=Large Caliber Stamp (Desh) +item.stamp_desh_9.name=Small Caliber Stamp (Desh) +item.stamp_iron_circuit.name=Circuit Stamp (Iron) +item.stamp_iron_flat.name=Flat Stamp (Iron) +item.stamp_iron_plate.name=Plate Stamp (Iron) +item.stamp_iron_wire.name=Wire Stamp (Iron) +item.stamp_obsidian_circuit.name=Circuit Stamp (Obsidian) +item.stamp_obsidian_flat.name=Flat Stamp (Obsidian) +item.stamp_obsidian_plate.name=Plate Stamp (Obsidian) +item.stamp_obsidian_wire.name=Wire Stamp (Obsidian) +item.stamp_steel_circuit.name=Circuit Stamp (Steel) +item.stamp_steel_flat.name=Flat Stamp (Steel) +item.stamp_steel_plate.name=Plate Stamp (Steel) +item.stamp_steel_wire.name=Wire Stamp (Steel) +item.stamp_stone_circuit.name=Circuit Stamp (Stone) +item.stamp_stone_flat.name=Flat Stamp (Stone) +item.stamp_stone_plate.name=Plate Stamp (Stone) +item.stamp_stone_wire.name=Wire Stamp (Stone) +item.stamp_titanium_circuit.name=Circuit Stamp (Titanium) +item.stamp_titanium_flat.name=Flat Stamp (Titanium) +item.stamp_titanium_plate.name=Plate Stamp (Titanium) +item.stamp_titanium_wire.name=Wire Stamp (Titanium) +item.starmetal_axe.name=Starmetal Axe +item.starmetal_boots.name=Starmetal Boots +item.starmetal_helmet.name=Starmetal Helmet +item.starmetal_hoe.name=Starmetal Hoe +item.starmetal_legs.name=Starmetal Leggings +item.starmetal_pickaxe.name=Starmetal Pickaxe +item.starmetal_plate.name=Starmetal Chestplate +item.starmetal_shovel.name=Starmetal Shovel +item.starmetal_sword.name=Starmetal Sword +item.static_sandwich.name=Sandwich Garnished with TV Static +item.stealth_boy.name=Stealth Device +item.steamsuit_boots.name=Steam Suit Boots +item.steamsuit_helmet.name=Steam Suit Respirator Helmet +item.steamsuit_legs.name=Steam Suit Leggings +item.steamsuit_plate.name=Steam Suit Chestplate +item.steel_axe.name=Steel Axe +item.steel_boots.name=Steel Boots +item.steel_helmet.name=Steel Helmet +item.steel_hoe.name=Steel Hoe +item.steel_legs.name=Steel Leggings +item.steel_pickaxe.name=Steel Pickaxe +item.steel_plate.name=Steel Chestplate +item.steel_shovel.name=Steel Shovel +item.steel_sword.name=Steel Sword +item.stick_c4.name=Stick of C-4 +item.stick_dynamite.name=Stick of Dynamite +item.stick_dynamite_fishing.name=Stick of Fishing Dynamite +item.stick_semtex.name=Stick of Semtex +item.stick_tnt.name=Stick of TNT +item.stopsign.name=Stop Sign Battle Axe +item.sulfur.name=Sulfur +item.survey_scanner.name=Survey Scanner +item.syringe_antidote.name=Antidote +item.syringe_awesome.name=AWESOME +item.syringe_empty.name=Empty Syringe +item.syringe_metal_empty.name=Metal Syringe +item.syringe_metal_medx.name=Med-X +item.syringe_metal_psycho.name=Psycho +item.syringe_metal_stimpak.name=Stimpak +item.syringe_metal_super.name=Super Stimpak +item.syringe_mkunicorn.name=MKUNICORN +item.syringe_poison.name=Poisonous Injection +item.syringe_taint.name=Watery Taint Injection +item.t45_boots.name=T45 Power Armor Boots +item.t45_helmet.name=T45 Power Armor Helmet +item.t45_kit.name=T45 Power Armor Kit +item.t45_legs.name=T45 Power Armor Leggings +item.t45_plate.name=T45 Power Armor Chestplate +item.tank_steel.name=Steel Tank +item.tank_waste_0.name=Mud Container +item.tank_waste_1.name=Mud Container +item.tank_waste_2.name=Mud Container +item.tank_waste_3.name=Mud Container +item.tank_waste_4.name=Mud Container +item.tank_waste_5.name=Mud Container +item.tank_waste_6.name=Mud Container +item.tank_waste_7.name=Mud Container +item.tank_waste_8.name=Mud Container +item.telepad.name=Telepad +item.tem_flakes.name=Tem Flakes +item.template_folder.name=Machine Template Folder +item.template_folder.desc=Machine Templates: Paper + Dye$Fluid IDs: Iron Plate + Dye$Press Stamps: Flat Stamp$Siren Tracks: Insulator + Steel Plate +item.test_nuke_igniter.name=Igniter +item.test_nuke_propellant.name=Propellant +item.test_nuke_tier1_bullet.name=U235 Projectile (Tier 1) +item.test_nuke_tier1_shielding.name=Neutron Reflector (Tier 1) +item.test_nuke_tier1_target.name=Subcritical U235 Target (Tier 1) +item.test_nuke_tier2_bullet.name=MOX Projectile (Tier 2) +item.test_nuke_tier2_shielding.name=Neutron Reflector (Tier 2) +item.test_nuke_tier2_target.name=Subcritical MOX Target (Tier 2) +item.thermo_element.name=Thermoelectric Element +item.thermo_unit_empty.name=Thermic Distribution Unit +item.thermo_unit_endo.name=Coldness Distribution Unit +item.thermo_unit_exo.name=Heat Distribution Unit +item.thruster_large.name=Large Thruster +item.thruster_medium.name=Medium Thruster +item.thruster_nuclear.name=LV-N Nuclear Rocket Engine +item.thruster_small.name=Small Thruster +item.titanium_axe.name=Titanium Axe +item.titanium_boots.name=Titanium Boots +item.titanium_filter.name=Titanium Filter +item.titanium_helmet.name=Titanium Helmet +item.titanium_hoe.name=Titanium Hoe +item.titanium_legs.name=Titanium Leggings +item.titanium_pickaxe.name=Titanium Pickaxe +item.titanium_plate.name=Titanium Chestplate +item.titanium_shovel.name=Titanium Shovel +item.titanium_sword.name=Titanium Sword +item.toothpicks.name=Toothpicks +item.train.cargo_tram.name=Electric Flat Bed Tram +item.trenchmaster_boots.name=Trenchmaster's Boots +item.trenchmaster_helmet.name=Trenchmaster's Helmet +item.trenchmaster_legs.name=Trenchmaster's Leggings +item.trenchmaster_plate.name=Trenchmaster's Chestplate +item.trinitite.name=Trinitite +item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake +item.tritium_deuterium_cake.desc=Not actual cake, but great$universal fusion fuel! +item.tsar_core.name=Tsar Bomba Core +item.tsar_kit.name=Tsar Bomba Kit +item.turbine_titanium.name=Titanium Steam Turbine +item.turbine_tungsten.name=Reinforced Turbofan Blades +item.turret_biometry.name=Turret Telemetry Card +item.turret_cheapo_ammo.name=6x24 Cheapo Turret Ammunition +item.turret_chip.name=Turret AI-Chip +item.turret_control.name=Turret Controller +item.turret_cwis_ammo.name=CIWS 20mm Ammo Drum +item.turret_flamer_ammo.name=Flamer Turret Fuel Tanks +item.turret_heavy_ammo.name=Heavy MG Turret Ammunition +item.turret_light_ammo.name=Light MG Turret Ammo Box +item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition +item.turret_spitfire_ammo.name=AA-Shell +item.turret_tau_ammo.name=Tau Turret Uranium Ammo +item.twinkie.name=Twinkie +item.ullapool_caber.name=Ullapool Caber +item.undefined.name=Undefined +item.upgrade_5g.name=5G Radiation Emitter Upgrade +item.upgrade_afterburn_1.name=Afterburner Upgrade Mk.I +item.upgrade_afterburn_2.name=Afterburner Upgrade Mk.II +item.upgrade_afterburn_3.name=Afterburner Upgrade Mk.III +item.upgrade_centrifuge.name=Centrifuge Upgrade +item.upgrade_crystallizer.name=Crystallizer Upgrade +item.upgrade_effect_1.name=Effectiveness Upgrade Mk.I +item.upgrade_effect_2.name=Effectiveness Upgrade Mk.II +item.upgrade_effect_3.name=Effectiveness Upgrade Mk.III +item.upgrade_ejector_1.name=Ejection Speed Upgrade Mk.I +item.upgrade_ejector_2.name=Ejection Speed Upgrade Mk.II +item.upgrade_ejector_3.name=Ejection Speed Upgrade Mk.III +item.upgrade_fortune_1.name=Fortune Upgrade Mk.I +item.upgrade_fortune_2.name=Fortune Upgrade Mk.II +item.upgrade_fortune_3.name=Fortune Upgrade Mk.III +item.upgrade_gc_speed.name=Gas Centrifuge Overclocking Upgrade +item.upgrade_health.name=Emitter Health Upgrade +item.upgrade_muffler.name=Muffler +item.upgrade_nullifier.name=Scrap Destroyer Upgrade +item.upgrade_overdrive_1.name=Overdrive Upgrade Mk.I +item.upgrade_overdrive_2.name=Overdrive Upgrade Mk.II +item.upgrade_overdrive_3.name=Overdrive Upgrade Mk.III +item.upgrade_power_1.name=Power Saving Upgrade Mk.I +item.upgrade_power_2.name=Power Saving Upgrade Mk.II +item.upgrade_power_3.name=Power Saving Upgrade Mk.III +item.upgrade_radius.name=Emitter Radius Upgrade +item.upgrade_screm.name=Screaming Scientist Upgrade +item.upgrade_shredder.name=Shredder Upgrade +item.upgrade_smelter.name=Smelter Upgrade +item.upgrade_speed_1.name=Speed Upgrade Mk.I +item.upgrade_speed_2.name=Speed Upgrade Mk.II +item.upgrade_speed_3.name=Speed Upgrade Mk.III +item.upgrade_stack_1.name=Stack Ejection Upgrade Mk.I +item.upgrade_stack_2.name=Stack Ejection Upgrade Mk.II +item.upgrade_stack_3.name=Stack Ejection Upgrade Mk.III +item.upgrade_template.name=Machine Upgrade Template +item.volcanic_axe.name=Molten Axe +item.volcanic_pickaxe.name=Molten Pickaxe +item.wand_d.name=Debug Wand +item.wand_k.name=Construction Wand +item.wand_s.name=Structure Wand +item.structure_custommachine.name=Custom Machine Structure Output Wand +item.warhead_buster_large.name=Large Bunker Buster Warhead +item.warhead_buster_medium.name=Medium Bunker Buster Warhead +item.warhead_buster_small.name=Small Bunker Buster Warhead +item.warhead_cluster_large.name=Large Cluster Warhead +item.warhead_cluster_medium.name=Medium Cluster Warhead +item.warhead_cluster_small.name=Small Cluster Warhead +item.warhead_generic_large.name=Large Warhead +item.warhead_generic_medium.name=Medium Warhead +item.warhead_generic_small.name=Small Warhead +item.warhead_incendiary_large.name=Large Incendiary Warhead +item.warhead_incendiary_medium.name=Medium Incendiary Warhead +item.warhead_incendiary_small.name=Small Incendiary Warhead +item.warhead_mirv.name=Thermonuclear Warhead +item.warhead_mirvlet.name=MIRV +item.warhead_nuclear.name=Nuclear Warhead +item.warhead_thermo_endo.name=Endothermic Warhead +item.warhead_thermo_exo.name=Exothermic Warhead +item.warhead_volcano.name=Tectonic Warhead +item.waste_mox.name=Depleted MOX Fuel +item.waste_natural_uranium.name=Depleted Natural Uranium Fuel +item.waste_plate_mox.name=Depleted MOX Plate Fuel +item.waste_plate_pu238be.name=Depleted Pu238Be Plate Fuel +item.waste_plate_pu239.name=Depleted HEP-239 Plate Fuel +item.waste_plate_ra226be.name=Depleted Ra226Be Plate Fuel +item.waste_plate_sa326.name=Depleted HES-326 Plate Fuel +item.waste_plate_u233.name=Depleted HEU-233 Plate Fuel +item.waste_plate_u235.name=Depleted HEU-235 Plate Fuel +item.waste_plutonium.name=Depleted Plutonium Fuel +item.waste_schrabidium.name=Depleted Schrabidium Fuel +item.waste_thorium.name=Depleted Thorium Fuel +item.waste_u235.name=Depleted Uranium-235 Fuel +item.waste_u233.name=Depleted Uranium-233 Fuel +item.waste_uranium.name=Depleted Uranium Fuel +item.waste_zfb_mox.name=Depleted ZFB MOX Fuel +item.watch.name=Broken Pocket Watch +item.watch.desc=A small blue pocket watch.$Its glass has a few cracks in it,$and some shards are missing.$It stopped ticking at 2:34. +item.watz_pellet.boron.name=Boron Absorber Pellet +item.watz_pellet.du.name=Depleted Uranium Absorber Pellet +item.watz_pellet.hes.name=HES Watz Pellet +item.watz_pellet.lead.name=Lead Absorber Pellet +item.watz_pellet.les.name=LES Watz Pellet +item.watz_pellet.mes.name=MES Watz Pellet +item.watz_pellet.mep.name=MEP Watz Pellet +item.watz_pellet.meu.name=MEU Watz Pellet +item.watz_pellet.nqd.name=Enriched Naquadah Watz Pellet +item.watz_pellet.nqr.name=Naquadria Watz Pellet +item.watz_pellet.hen.name=HEN Watz Pellet +item.watz_pellet.schrabidium.name=Schrabidium Watz Pellet +item.watz_pellet_depleted.boron.name=Boron Absorber Pellet (Depleted) +item.watz_pellet_depleted.du.name=Depleted Uranium Absorber Pellet (Depleted) +item.watz_pellet_depleted.hes.name=HES Watz Pellet (Depleted) +item.watz_pellet_depleted.lead.name=Lead Absorber Pellet (Depleted) +item.watz_pellet_depleted.les.name=LES Watz Pellet (Depleted) +item.watz_pellet_depleted.mes.name=MES Watz Pellet (Depleted) +item.watz_pellet_depleted.mep.name=MEP Watz Pellet (Depleted) +item.watz_pellet_depleted.meu.name=MEU Watz Pellet (Depleted) +item.watz_pellet_depleted.nqd.name=Enriched Naquadah Watz Pellet (Depleted) +item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) +item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) +item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) +item.weapon_bat.name=Richard's Default +item.weapon_bat_nail.name=The Cliché +item.weapon_golf_club.name=Russian Mobster's Club +item.weapon_pipe_lead.name=The Manual Override +item.weapon_pipe_rusty.name=The Attitude Adjuster +item.weapon_saw.name=Doctor Assisted Homicide +item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r +item.wd40.name=VT-40 +item.wild_p.name=Wild Pegasus Dry Whiskey +item.wings_limp.name=Limp Wings +item.wings_murk.name=Murky Wings +item.wire_advanced_alloy.name=Super Conductor +item.wire_aluminium.name=Aluminium Wire +item.wire_copper.name=Copper Wire +item.wire_dense.name=Dense %s Wire +item.wire_fine.name=%s Wire +item.wire_gold.name=Gold Wire +item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor +item.wire_red_copper.name=Red Copper Wire +item.wire_schrabidium.name=Schrabidium Wire +item.wire_tungsten.name=Tungsten Wire +item.wiring_red_copper.name=Cable Drum +item.wood_gavel.name=Wooden Gavel +item.wrench.name=Pipe Wrench +item.wrench_archineer.name=Archineer's Wrench +item.wrench_flipped.name=Blade on a Wrench +item.xanax.name=NAXA Anti-Digamma Medication +item.xanax.desc=Removes 500mDRX +item.zirconium_legs.name=Zirconium Pants + +itemGroup.tabBlocks=NTM Ores and Blocks +itemGroup.tabConsumable=NTM Consumables and Gear +itemGroup.tabControl=NTM Machine Items and Fuel +itemGroup.tabMachine=NTM Machines +itemGroup.tabMissile=NTM Missiles and Satellites +itemGroup.tabNuke=NTM Bombs +itemGroup.tabParts=NTM Resources and Parts +itemGroup.tabTemplate=NTM Templates +itemGroup.tabTest=Nuclear Tech Mod Test Tab +itemGroup.tabWeapon=NTM Weapons and Turrets + +potion.hbm_bang=! ! ! +potion.hbm_death=Astolfization +potion.hbm_lead=Lead Poisoning +potion.hbm_mutation=Tainted Heart +potion.hbm_phosphorus=Phosphorus Burns +potion.hbm_potionsickness=Potion Sickness +potion.hbm_radaway=Radaway +potion.hbm_radiation=Contaminated +potion.hbm_radx=Rad-X +potion.hbm_stability=Stability +potion.hbm_taint=Tainted +potion.hbm_telekinesis=! ! ! + +radar.clearMap=Clear Map +radar.detectMissiles=Detect Missiles +radar.detectPlayers=Detect Players +radar.detectShells=Detect Shells +radar.redMode=Redstone Mode$On: Redstone output based on range$Off: Redstone output based on tier +radar.showMap=Show Map +radar.smartMode=Smart Mode$Redstone output ignores ascending missiles +radar.toggleGui=Switch View + +radar.target.abm=Anti-Ballsitic Missile +radar.target.custom10=Size 10 Custom Missile +radar.target.custom1015=Size 10/15 Custom Missile +radar.target.custom15=Size 15 Custom Missile +radar.target.custom1520=Size 15/20 Custom Missile +radar.target.custom20=Size 20 Custom Missile +radar.target.doomsday=Doomsday Missile +radar.target.shuttle=Reliant Robin Space Shuttle +radar.target.tier0=Tier 0 Missile +radar.target.tier1=Tier 1 Missile +radar.target.tier2=Tier 2 Missile +radar.target.tier3=Tier 3 Missile +radar.target.tier4=Tier 4 Missile + +rbmk.heat=Column temperature: %s +rbmk.boiler.water=Feedwater: %s / %s +rbmk.boiler.steam=Steam: %s / %s +rbmk.boiler.type=Compressor: %s +rbmk.console.assign=Assign selected columns to screen #%s +rbmk.console.none=Off +rbmk.console.col_temp=Monitor average column temperature +rbmk.console.rod_extraction=Monitor average control rod extraction +rbmk.console.fuel_depletion=Monitor average fuel depletion +rbmk.console.fuel_poison=Monitor average xenon poisoning +rbmk.console.fuel_temp=Monitor average fuel temperature +rbmk.control.level=%s +rbmk.control.red=§cRed Group +rbmk.control.yellow=§eYellow Group +rbmk.control.green=§aGreen Group +rbmk.control.blue=§1Blue Group +rbmk.control.purple=§5Purple Group +rbmk.moderated=Moderated +rbmk.rod.depletion=Depletion: %s +rbmk.rod.xenon=Xenon poison: %s +rbmk.rod.coreTemp=Core temperature: %s +rbmk.rod.skinTemp=Skin temperature: %s / %s +rbmk.screen.core=Core: %s +rbmk.screen.depletion=Depl: %s +rbmk.screen.rod=Control: %s +rbmk.screen.temp=Temp: %s +rbmk.screen.xenon=Xenon: %s + +shape.billet=Billet +shape.blade=Blade +shape.blades=Shredder Blades +shape.block=Block +shape.dust=Dust +shape.dusttiny=Tiny Dust +shape.hull_big=Big Shell +shape.hull_small=Small Shell +shape.ingot=Ingot +shape.nugget=Nugget +shape.quantum=Quantum +shape.quart=Quarter Block +shape.ntmpipe=Pipe +shape.plate=Plate +shape.plateTriple=Cast Plate +shape.shell=Shell +shape.stamp=Press Stamp +shape.wireFine=Wires +shape.wire=Wire +shape.wireDense=Dense Wire +shape.wiresDense=Dense Wires + +soundCategory.ntmMachines=NTM Machines + +tile.absorber.name=Radiation Absorber +tile.absorber_green.name=Advanced Radiation Absorber +tile.absorber_pink.name=Elite Radiation Absorber +tile.absorber_red.name=Enhanced Radiation Absorber +tile.acid_block.name=Acid +tile.ams_base.name=AMS Base (Deco) +tile.ams_emitter.name=AMS Emitter (Deco) +tile.ams_limiter.name=AMS Stabilizer (Deco) +tile.ancient_scrap.name=Ancient Scrap Metal +tile.anvil_arsenic_bronze.name=Arsenic Bronze Anvil +tile.anvil_bismuth.name=Bismuth Anvil +tile.anvil_bismuth_bronze.name=Bismuth Bronze Anvil +tile.anvil_desh.name=Desh Anvil +tile.anvil_dnt.name=Dineutronium Anvil +tile.anvil_ferrouranium.name=Ferrouranium Anvil +tile.anvil_iron.name=Iron Anvil +tile.anvil_lead.name=Lead Anvil +tile.anvil_meteorite.name=Meteorite Anvil +tile.anvil_murky.name=Murky Anvil +tile.anvil_osmiridium.name=Osmiridium Anvil +tile.anvil_saturnite.name=Saturnite Anvil +tile.anvil_schrabidate.name=Ferric Schrabidate Anvil +tile.anvil_starmetal.name=Starmetal Anvil +tile.anvil_steel.name=Steel Anvil +tile.ash_digamma.name=Ash +tile.asphalt.name=Asphalt +tile.asphalt_stairs.name=Asphalt Stairs +tile.asphalt_light.name=Glowing Asphalt +tile.barbed_wire.name=Barbed Wire +tile.barbed_wire_acid.name=Caustic Barbed Wire +tile.barbed_wire_fire.name=Flaming Barbed Wire +tile.barbed_wire_poison.name=Poisoned Barbed Wire +tile.barbed_wire_ultradeath.name=Radioactive Barbed Wire +tile.barbed_wire_wither.name=Withered Barbed Wire +tile.barrel_antimatter.name=Magnetic Antimatter Container +tile.barrel_corroded.name=Corroded Barrel +tile.barrel_iron.name=Iron Barrel +tile.barrel_plastic.name=Safe Barrel™ +tile.barrel_steel.name=Steel Barrel +tile.barrel_tcalloy.name=Technetium Steel Barrel +tile.barricade.name=Sand Bags +tile.basalt.name=Basalt +tile.basalt_brick.name=Basalt Bricks +tile.basalt_polished.name=Polished Basalt +tile.basalt_smooth.name=Smooth Basalt +tile.basalt_tiles.name=Basalt Tiles +tile.blast_door.name=Sliding Blast Door +tile.block_actinium.name=Block of Actinium +tile.block_advanced_alloy.name=Block of Advanced Alloy +tile.block_aluminium.name=Block of Aluminium +tile.block_asbestos.name=Block of Asbestos +tile.block_australium.name=Block of Australium +tile.block_bakelite.name=Block of Bakelite +tile.block_beryllium.name=Block of Beryllium +tile.block_bismuth.name=Block of Bismuth +tile.block_boron.name=Block of Boron +tile.block_c4.name=Block of C-4 +tile.block_cadmium.name=Block of Cadmium +tile.block_cap_fritz.name=Block of Fritz Cola Bottle Caps +tile.block_cap_korl.name=Block of Korl Bottle Caps +tile.block_cap_nuka.name=Block of Nuka Cola Bottle Caps +tile.block_cap_quantum.name=Block of Nuka Cola Quantum Bottle Caps +tile.block_cap_rad.name=Block of S~Cola RAD Bottle Caps +tile.block_cap_sparkle.name=Block of S~Cola Bottle Caps +tile.block_cap_star.name=Block of Sunset Sarsaparilla Star Caps +tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps +tile.block_cdalloy.name=Block of Cadmium Steel +tile.block_cobalt.name=Block of Cobalt +tile.block_coke.coal.name=Block of Coal Coke +tile.block_coke.lignite.name=Block of Lignite Coke +tile.block_coke.petroleum.name=Block of Petroleum Coke +tile.block_coltan.name=Block of Coltan +tile.block_combine_steel.name=Block of CMB Steel +tile.block_copper.name=Block of Copper +tile.block_corium.name=Corium +tile.block_corium_cobble.name=Corebblestone +tile.block_daffergon.name=Block of Daffergon +tile.block_desh.name=Reinforced Block of Desh +tile.block_dineutronium.name=Block of Dineutronium +tile.block_dura_steel.name=Reinforced Block of High-Speed Steel +tile.block_electrical_scrap.name=Block of Electrical Scrap +tile.block_euphemium.name=Block of Euphemium +tile.block_euphemium_cluster.name=Euphemium-Etched Schrabidium Cluster +tile.block_fallout.name=Block of Fallout +tile.block_fiberglass.name=Roll of Fiberglass +tile.block_fluorite.name=Block of Fluorite +tile.block_foam.name=Foam +tile.block_insulator.name=Roll of Insulation +tile.block_graphite.name=Block of Graphite +tile.block_graphite_detector.name=Pile Neutron Detector +tile.block_graphite_drilled.name=Drilled Graphite +tile.block_graphite_fuel.name=Pile Fuel +tile.block_graphite_lithium.name=Pile Lithium Fuel +tile.block_graphite_plutonium.name=Pile Fuel (Bred) +tile.block_graphite_rod.name=Pile Control Rod +tile.block_graphite_source.name=Pile Neutron Source +tile.block_graphite_tritium.name=Pile Lithium Fuel (Bred) +tile.block_lead.name=Block of Lead +tile.block_lanthanium.name=Block of Lanthanium +tile.block_lithium.name=Block of Lithium +tile.block_magnetized_tungsten.name=Block of Magnetized Tungsten +tile.block_meteor.name=Meteorite Block +tile.block_meteor_broken.name=Broken Meteorite Block +tile.block_meteor_cobble.name=Meteorite Cobblestone +tile.block_meteor_molten.name=Hot Meteorite Cobblestone +tile.block_meteor_treasure.name=Meteorite Treasure Block +tile.block_mox_fuel.name=Block of MOX Fuel +tile.block_neptunium.name=Block of Neptunium +tile.block_niter.name=Block of Niter +tile.block_niter_reinforced.name=Reinforced Block of Niter +tile.block_niobium.name=Block of Niobium +tile.block_plutonium.name=Block of Plutonium +tile.block_plutonium_fuel.name=Block of Plutonium Fuel +tile.block_polonium.name=Block of Polonium-210 +tile.block_polymer.name=Block of Polymer +tile.block_pu_mix.name=Block of Reactor Grade Plutonium +tile.block_pu238.name=Block of Plutonium-238 +tile.block_pu239.name=Block of Plutonium-239 +tile.block_pu240.name=Block of Plutonium-240 +tile.block_ra226.name=Block of Radium-226 +tile.block_red_copper.name=Block of Red Copper +tile.block_red_phosphorus.name=Block of Red Phosphorus +tile.block_reiium.name=Block of Reiium +tile.block_rubber.name=Block of Rubber +tile.block_schrabidate.name=Block of Ferric Schrabidate +tile.block_schrabidium.name=Block of Schrabidium +tile.block_schrabidium_cluster.name=Schrabidium Cluster +tile.block_schrabidium_fuel.name=Block of Schrabidium Fuel +tile.block_schraranium.name=Block of Schraranium +tile.block_scrap.name=Block of Scrap +tile.block_semtex.name=Block of Semtex +tile.block_slag.name=Block of Slag +tile.block_smore.name=Block of S'more +tile.block_solinium.name=Block of Solinium +tile.block_starmetal.name=§9Block of Starmetal§r +tile.block_steel.name=Block of Steel +tile.block_sulfur.name=Block of Sulfur +tile.block_tantalium.name=Block of Tantalium +tile.block_tcalloy.name=Block of Technetium Steel +tile.block_thorium.name=Block of Thorium-232 +tile.block_thorium_fuel.name=Block of Thorium Fuel +tile.block_titanium.name=Block of Titanium +tile.block_trinitite.name=Block of Trinitite +tile.block_tritium.name=Block of Tritium Cells +tile.block_tungsten.name=Block of Tungsten +tile.block_u233.name=Block of Uranium-233 +tile.block_u235.name=Block of Uranium-235 +tile.block_u238.name=Block of Uranium-238 +tile.block_unobtainium.name=Block of Unobtainium +tile.block_uranium.name=Block of Uranium +tile.block_uranium_fuel.name=Block of Uranium Fuel +tile.block_verticium.name=Block of Verticium +tile.block_waste.name=Block of Nuclear Waste +tile.block_waste_painted.name=Painted Block of Nuclear Waste +tile.block_waste_vitrified.name=Vitrified Block of Nuclear Waste +tile.block_weidanium.name=Block of Weidanium +tile.block_white_phosphorus.name=Block of White Phosphorus +tile.block_yellowcake.name=Block of Yellowcake +tile.block_zirconium.name=Block of Zirconium +tile.boat.name=Boat +tile.bobblehead.name=Bobblehead +tile.bomb_multi.name=Multi Purpose Bomb +tile.bomber.name=Crashed Bomber +tile.book_guide.name=Hbm's Nuclear Tech Mod Manual [LEGACY] +tile.boxcar.name=Boxcar +tile.brick_asbestos.name=Asbestos Bricks +tile.brick_asbestos_stairs.name=Asbestos Brick Stairs +tile.brick_compound.name=Compound Mesh +tile.brick_compound_stairs.name=Compound Mesh Stairs +tile.brick_concrete.name=Concrete Bricks +tile.brick_concrete_stairs.name=Concrete Brick Stairs +tile.brick_concrete_broken.name=Broken Concrete Bricks +tile.brick_concrete_broken_stairs.name=Broken Concrete Brick Stairs +tile.brick_concrete_cracked.name=Cracked Concrete Bricks +tile.brick_concrete_cracked_stairs.name=Cracked Concrete Brick Stairs +tile.brick_concrete_marked.name=Marked Concrete Bricks +tile.brick_concrete_mossy.name=Mossy Concrete Bricks +tile.brick_concrete_mossy_stairs.name=Mossy Concrete Brick Stairs +tile.brick_ducrete.name=Ducrete Bricks +tile.brick_ducrete_stairs.name=Ducrete Brick Stairs +tile.brick_dungeon.name=Berzelianite Bricks +tile.brick_dungeon_circle.name=Berzelianite Cirlce +tile.brick_dungeon_flat.name=Berzelianite Block +tile.brick_dungeon_tile.name=Berzelianite Tile +tile.brick_fire.name=Firebricks +tile.brick_fire_stairs.name=Firebrick Stairs +tile.brick_jungle.name=Enargite Bricks +tile.brick_jungle_circle.name=Mechanist's Circle +tile.brick_jungle_cracked.name=Cracked Enargite Bricks +tile.brick_jungle_fragile.name=Brittle Enargite Bricks +tile.brick_jungle_glyph.name=Enargite Glyph Bricks +tile.brick_jungle_lava.name=Magmatic Enargite Bricks +tile.brick_jungle_mystic.name=Arcane Enargite Bricks +tile.brick_jungle_ooze.name=Radioactive Enargite Bricks +tile.brick_jungle_trap.name=Trapped Enargite Bricks +tile.brick_light.name=Light Bricks +tile.brick_light_stairs.name=Light Bricks Stairs +tile.brick_obsidian.name=Obsidian Bricks +tile.brick_obsidian_stairs.name=Obsidian Brick Stairs +tile.brick_red.name=Red Room Brick +tile.brick_slab.brick_asbestos.name=Asbestos Brick Slab +tile.brick_slab.brick_compound.name=Compound Mesh Slab +tile.brick_slab.brick_fire.name=Firebrick Slab +tile.brick_slab.brick_light.name=Light Brick Slab +tile.brick_slab.brick_obsidian.name=Obsidian Brick Slab +tile.brick_slab.reinforced_brick.name=Reinforced Stone Slab +tile.brick_slab.reinforced_stone.name=Dense Stone Slab +tile.broadcaster_pc.name=Corrupted Broadcaster +tile.burning_earth.name=Burning Grass +tile.c4.name=C-4 +tile.cable_detector.name=Redstone Power Switch +tile.cable_diode.name=Red Copper Diode +tile.cable_switch.name=Power Switch +tile.capacitor_bus.name=Capacitor Bus +tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a straight line +tile.capacitor_copper.name=Copper Capacitor +tile.capacitor_gold.name=Golden Capacitor +tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor_schrabidate.name=Schrabidate Capacitor +tile.capacitor_tantalium.name=Tantalium Capacitor +tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus +tile.charge_c4.name=Demolition Charge +tile.charge_dynamite.name=Time Bomb +tile.charge_miner.name=Timed Mining Charge +tile.charge_semtex.name=Semtex Mining Charge +tile.charger.name=Charging Station +tile.cheater_virus.name=Gelid Euphemium +tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block +tile.chimney_brick.name=Smokestack +tile.chimney_brick.desc=Connect using exhaust pipes to polluting machines$Reduces pollution emission by 75%% +tile.chimney_industrial.name=Industrial Smokestack +tile.chimney_industrial.desc=Connect using exhaust pipes to polluting machines$Reduces pollution emission by 90%% +tile.chlorine_gas.name=Chlorine Gas +tile.cluster_aluminium.name=Aluminium Ore Cluster +tile.cluster_copper.name=Copper Ore Cluster +tile.cluster_depth_iron.name=Depth Iron Ore Cluster +tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster +tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster +tile.cluster_iron.name=Iron Ore Cluster +tile.cluster_titanium.name=Titanium Ore Cluster +tile.custom_machine_anchor.name=Custom Machine Structure Positioning Anchor +tile.cm_block.alloy.name=Advanced Alloy Machine Casing +tile.cm_block.desh.name=Desh Machine Casing +tile.cm_block.steel.name=Steel Machine Casing +tile.cm_block.tcalloy.name=Technetium Steel Machine Casing +tile.cm_circuit.aluminium.name=Tier 1 Circuit Block +tile.cm_circuit.copper.name=Tier 2 Circuit Block +tile.cm_circuit.gold.name=Tier 4 Circuit Block +tile.cm_circuit.red_copper.name=Tier 3 Circuit Block +tile.cm_circuit.schrabidium.name=Tier 5 Circuit Block +tile.cm_engine.bismuth.name=Bismuth Motor Block +tile.cm_engine.desh.name=Desh Motor Block +tile.cm_engine.standard.name=Motor Block +tile.cm_flux.name=Neutron Flux Receiver +tile.cm_heat.name=Heat receiver +tile.cm_port.alloy.name=Advanced Alloy Port +tile.cm_port.desh.name=Desh Port +tile.cm_port.steel.name=Steel Port +tile.cm_port.tcalloy.name=Technetium Steel Port +tile.cm_sheet.alloy.name=Advanced Alloy Sheet +tile.cm_sheet.desh.name=Desh Sheet +tile.cm_sheet.steel.name=Steel Sheet +tile.cm_sheet.tcalloy.name=Technetium Steel Sheet +tile.cm_tank.alloy.name=Advanced Alloy Tank +tile.cm_tank.desh.name=Desh Tank +tile.cm_tank.steel.name=Steel Tank +tile.cm_tank.tcalloy.name=Technetium Steel Tank +tile.cmb_brick.name=CMB Steel Tile +tile.cmb_brick_reinforced.name=Reinforced CMB Bricks +tile.compact_launcher.name=Compact Launch Pad +tile.concrete.name=Concrete Tile +tile.concrete_asbestos.name=Asbestos Concrete +tile.concrete_asbestos_stairs.name=Asbestos Concrete Stairs +tile.concrete_brick_slab.brick_concrete.name=Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_broken.name=Broken Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_cracked.name=Cracked Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_mossy.name=Mossy Concrete Brick Slab +tile.concrete_brick_slab.brick_ducrete.name=Ducrete Brick Slab +tile.concrete_colored.black.name=Black Concrete +tile.concrete_colored.blue.name=Blue Concrete +tile.concrete_colored.brown.name=Brown Concrete +tile.concrete_colored.cyan.name=Cyan Concrete +tile.concrete_colored.gray.name=Gray Concrete +tile.concrete_colored.green.name=Green Concrete +tile.concrete_colored.lightBlue.name=Light Blue Concrete +tile.concrete_colored.lime.name=Lime Concrete +tile.concrete_colored.magenta.name=Magenta Concrete +tile.concrete_colored.orange.name=Orange Concrete +tile.concrete_colored.pink.name=Pink Concrete +tile.concrete_colored.purple.name=Purple Concrete +tile.concrete_colored.red.name=Red Concrete +tile.concrete_colored.silver.name=Light Gray Concrete +tile.concrete_colored.white.name=White Concrete +tile.concrete_colored.yellow.name=Yellow Concrete +tile.concrete_colored_ext.bronze.name=Builder's Choice Concrete - Bronze Plating +tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Hazard Stripe +tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Deep Indigo +tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrial Tinge +tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrial Stripe +tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Manly Pink +tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysterious Purple +tile.concrete_colored_ext.sand.name=Builder's Choice Concrete - Desert Storm +tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar +tile.concrete_slab.asphalt.name=Asphalt Slab +tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar +tile.concrete_slab.concrete.name=Concrete Tile Slab +tile.concrete_slab.concrete_asbestos.name=Asbestos Concrete Slab +tile.concrete_slab.concrete_smooth.name=Concrete Slab +tile.concrete_slab.ducrete.name=Ducrete Tile Slab +tile.concrete_slab.ducrete_smooth.name=Ducrete Slab +tile.concrete_smooth.name=Concrete +tile.concrete_smooth_stairs.name=Concrete Stairs +tile.concrete_stairs.name=Concrete Tile Stairs +tile.concrete_super.name=Über Concrete +tile.concrete_super_broken.name=Moldy Debris +tile.conveyor.name=Conveyor Belt +tile.conveyor.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_chute.name=Conveyor Chute +tile.conveyor_chute.desc=Moves items down$The bottom-most chute will act like a regular conveyor belt +tile.conveyor_double.name=Double-Lane Conveyor Belt +tile.conveyor_double.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_express.name=Express Conveyor Belt +tile.conveyor_express.desc=Moves items dropped on it very fast$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_lift.name=Conveyor Chain Lift +tile.conveyor_lift.desc=Moves items up$Requires at least two blocks on top of each other to work properly +tile.conveyor_triple.name=Triple-Lane Conveyor Belt +tile.conveyor_triple.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.corium_block.name=Corium +tile.crane_boxer.name=Conveyor Boxer +tile.crane_boxer.desc=Loads a configurable amount of stacks into boxes which move along conveyor belts$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side +tile.crane_extractor.name=Conveyor Ejector +tile.crane_extractor.desc=Takes items from inventories and places them on conveyor belts$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side +tile.crane_grabber.name=Conveyor Grabber +tile.crane_grabber.desc=Takes items from passing conveyors and places them into containers$Will only take items from the closest lane$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side +tile.crane_inserter.name=Conveyor Inserter +tile.crane_inserter.desc=Accepts items from conveyors and places them into containers$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side +tile.crane_router.name=Conveyor Sorter +tile.crane_router.desc=Sorts item based on defined criteria$Sides can be defined as blacklist, whitelist or wildcard$Wildcard sides are only chosen if no other filter matches +tile.crane_splitter.name=Conveyor Splitter +tile.crane_splitter.desc=Splits items and stacks evenly onto two conveyor belts$Is a conveyor belt itself, so it can directly input into an inserter or sorter +tile.crane_unboxer.name=Conveyor Unboxer +tile.crane_unboxer.desc=Receives boxes and extracts their contents$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side +tile.crashed_bomb.name=Dud +tile.crate.name=Supply Crate +tile.crate_ammo.name=Starmetal Crate +tile.crate_can.name=Conserve Crate +tile.crate_desh.name=Desh Crate +tile.crate_iron.name=Iron Crate +tile.crate_jungle.name=Enargite Crate +tile.crate_lead.name=Hazmat Crate +tile.crate_metal.name=Machine Crate +tile.crate_red.name=Red Crate +tile.crate_steel.name=Steel Crate +tile.crate_template.name=Template Crate +tile.crate_tungsten.name=Tungsten Crate +tile.crate_weapon.name=Weapon Crate +tile.crystal_hardened.name=Hardened Dark Crystal +tile.crystal_pulsar.name=Pulsating Crystal +tile.crystal_virus.name=Dark Crystal +tile.deco_aluminium.name=Aluminium Deco Block +tile.deco_asbestos.name=Asbestos Roof +tile.deco_beryllium.name=Beryllium Deco Block +tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL +tile.deco_crt.name=Old CRT Screen +tile.deco_emitter.name=Deco Light Emitter +tile.deco_lead.name=Lead Deco Block +tile.deco_rbmk.name=RBMK Deco Block +tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block +tile.deco_red_copper.name=Red Copper Deco Block +tile.deco_pipe.name=Steel Pipe +tile.deco_pipe_rusted.name=Rusty Steel Pipe +tile.deco_pipe_green.name=Green Steel Pipe +tile.deco_pipe_green_rusted.name=Rusty Green Steel Pipe +tile.deco_pipe_red.name=Red Steel Pipe +tile.deco_pipe_marked.name=Gas Pipe +tile.deco_pipe_framed.name=Steel Pipe (Framed) +tile.deco_pipe_framed_rusted.name=Rusty Steel Pipe (Framed) +tile.deco_pipe_framed_green.name=Green Steel Pipe (Framed) +tile.deco_pipe_framed_green_rusted.name=Rusty Green Steel Pipe (Framed) +tile.deco_pipe_framed_red.name=Red Steel Pipe (Framed) +tile.deco_pipe_framed_marked.name=Gas Pipe (Framed) +tile.deco_pipe_quad.name=Steel Pipes +tile.deco_pipe_quad_rusted.name=Rusty Steel Pipes +tile.deco_pipe_quad_green.name=Green Steel Pipes +tile.deco_pipe_quad_green_rusted.name=Rusty Green Steel Pipes +tile.deco_pipe_quad_red.name=Red Steel Pipes +tile.deco_pipe_quad_marked.name=Gas Pipes +tile.deco_pipe_rim.name=Steel Pipe (Rimmed) +tile.deco_pipe_rim_rusted.name=Rusty Steel Pipe (Rimmed) +tile.deco_pipe_rim_green.name=Green Steel Pipe (Rimmed) +tile.deco_pipe_rim_green_rusted.name=Rusty Green Steel Pipe (Rimmed) +tile.deco_pipe_rim_red.name=Red Steel Pipe (Rimmed) +tile.deco_pipe_rim_marked.name=Gas Pipe (Rimmed) +tile.deco_steel.name=Steel Deco Block +tile.deco_titanium.name=Titanium Deco Block +tile.deco_toaster.name=Broken Toaster +tile.deco_tungsten.name=Tungsten Deco Block +tile.decon.name=Player Decontaminator +tile.depth_brick.name=Depth Bricks +tile.depth_dnt.name=DNT-Reinforced Depth Bricks +tile.depth_nether_brick.name=Nether Depth Bricks +tile.depth_nether_tiles.name=Nether Depth Tiles +tile.depth_tiles.name=Depth Tiles +tile.det_charge.name=Explosive Charge +tile.det_cord.name=Det Cord +tile.det_miner.name=Mining Charge +tile.det_nuke.name=Nuclear Charge +tile.dfc_core.name=Dark Fusion Core +tile.dfc_emitter.name=DFC Emitter +tile.dfc_injector.name=DFC Fuel Injector +tile.dfc_receiver.name=DFC Receiver +tile.dfc_stabilizer.name=DFC Stabilizer +tile.dirt_dead.name=Dead Dirt +tile.dirt_oily.name=Oily Dirt +tile.drill_pipe.name=Drill Pipe +tile.drone_crate.name=Transport Drone Crate +tile.drone_crate.desc=Loading and unloading point for transport drones.$Acts as a waypoint, has to be linked with the drone linker.$Drones must approach from a high angle, or they will get stuck. +tile.drone_crate_provider.name=Logistics Provider Crate +tile.drone_crate_provider.desc=Offers items to the logistics network.$Logistics drones will try to move items from providers to requester crates. +tile.drone_crate_requester.name=Logistics Requester Crate +tile.drone_crate_requester.desc=Requests items from the logistics network.$Items added to the filter will be requested, if not present in its inventory. +tile.drone_dock.name=Logistics Drone Dock +tile.drone_dock.desc=Spawn point for logistics drones.$Can only detect providers and requesters within a 5 chunk radius.$Drones will only follow up to 10 waypoints per connection. +tile.drone_waypoint.name=Transport Drone Waypoint +tile.drone_waypoint.desc=Waypoint for transport drones$Use a transport drone linker to set the path$Click on each waypoint and crate in sequence to create the path,$then shift-click to clear the saved position$Right-click or shift-click the waypoint to change the waypoint's offset +tile.drone_waypoint_request.name=Logistics Drone Waypoint +tile.door_bunker.name=Bunker Door +tile.door_metal.name=Metal Door +tile.door_office.name=Office Door +tile.door_red.name=Red Door +tile.ducrete.name=Ducrete Tile +tile.ducrete_stairs.name=Ducrete Tile Stairs +tile.ducrete_smooth.name=Ducrete +tile.ducrete_smooth_stairs.name=Ducrete Stairs +tile.dummy_block.name=Dummy Block +tile.dummy_port.name=Dummy Block (Electricity Port) +tile.dungeon_chain.name=Metal Chain +tile.dynamite.name=Dynamite +tile.emp_bomb.name=EMP Device +tile.factory_advanced_conductor.name=Advanced Factory Electricity Port +tile.factory_advanced_core.name=Advanced Factory Core Component +tile.factory_advanced_furnace.name=Advanced Factory Access Hatch +tile.factory_advanced_hull.name=Factory Block +tile.factory_titanium_conductor.name=Basic Factory Electricity Port +tile.factory_titanium_core.name=Basic Factory Core Component +tile.factory_titanium_furnace.name=Basic Factory Access Hatch +tile.factory_titanium_hull.name=Factory Block +tile.fallout.name=Fallout +tile.fan.name=Fan +tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip +tile.fence_metal.name=Chainlink Fence +tile.fence_metal_post.name=Chainlink Fence Post +tile.field_disturber.name=High Energy Field Jammer +tile.filing_cabinet.green.name=Dusty Filing Cabinet +tile.filing_cabinet.steel.name=Steel Filing Cabinet +tile.fire_digamma.name=Lingering Digamma +tile.fire_door.name=Fire Door +tile.fireworks.name=Firework Battery +tile.fireworks.charges=Charges Loaded: %s +tile.fireworks.message=Message: %s +tile.fireworks.color=Color: %s +tile.fissure_bomb.name=Fissure Bomb +tile.flame_war.name=Flame War in a Box +tile.float_bomb.name=Levitation Bomb +tile.fluid_duct.name=Universal Fluid Duct (Deprecated) +tile.fluid_duct_box.name=Universal Fluid Duct (Boxduct) +tile.fluid_duct_exhaust.name=Exhaust Pipe +tile.fluid_duct_gauge.name=Flow Gauge Pipe +tile.fluid_duct_gauge.desc=Pipe that displays how much fluid$moves within the network per tick.$Split networks connected by barrels$or tanks are considered as one shared network. +tile.fluid_duct_neo.name=Universal Fluid Duct +tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct +tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated) +tile.fluid_switch.name=Redstone Fluid Valve +tile.fluid_valve.name=Fluid Valve +tile.foam_layer.name=Foam layer +tile.foundry_basin.name=Foundry Basin +tile.foundry_channel.name=Foundry Channel +tile.foundry_tank.name=Foundry Storage Basin +tile.foundry_mold.name=Shallow Foundry Basin +tile.foundry_outlet.name=Foundry Outlet +tile.foundry_slagtap.name=Foundry Spill Outlet +tile.fraction_spacer.name=Fractioning Tower Separator +tile.frozen_dirt.name=Frozen Dirt +tile.frozen_grass.name=Frozen Grass +tile.frozen_log.name=Frozen Log +tile.frozen_planks.name=Frozen Planks +tile.machine_furnace_brick_off.name=Bricked Furnace +tile.machine_furnace_brick_on.name=Bricked Furnace +tile.furnace_combination.name=Combination Oven +tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t +tile.furnace_iron.name=Iron Furnace +tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. +tile.furnace_steel.name=Steel Furnace +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) +tile.fusion_center.name=Central Magnet Piece +tile.fusion_conductor.name=Superconducting Magnet +tile.fusion_conductor_welded.name=Superconducting Magnet (Welded) +tile.fusion_core.name=Fusion Reactor Control +tile.fusion_hatch.name=Duct Deco Block +tile.fusion_heater.name=Plasma Heater Component +tile.fusion_motor.name=Magnet Motor Piece +tile.fwatz_computer.name=Fusionary Watz Reactor Calculation Matrix +tile.fwatz_conductor.name=4000K Superconducting Magnet +tile.fwatz_cooler.name=Regenerative Coolant Fluid Tank Shell +tile.fwatz_core.name=Fusionary Watz Reactor Control +tile.fwatz_hatch.name=Fusionary Watz Plant Access Hatch +tile.fwatz_plasma.name=Destabilized Antischrabidium Plasma +tile.fwatz_scaffold.name=Fusionary Watz Plant Structural Support +tile.fwatz_tank.name=Regenerative Coolant Fluid Tank +tile.gas_asbestos.name=Airborne Asbestos Particles +tile.gas_coal.name=Airborne Coal Dust +tile.gas_duct.name=Gas Pipe +tile.gas_duct_solid.name=Coated Gas Pipe +tile.gas_explosive.name=Explosive Gas +tile.gas_flammable.name=Flammable Gas +tile.gas_meltdown.name=Meltdown Gas +tile.gas_monoxide.name=Carbon Monoxide +tile.gas_radon.name=Radon Gas +tile.gas_radon_dense.name=Dense Radon Gas +tile.gas_radon_tomb.name=Tomb Gas +tile.geiger.name=Geiger Counter +tile.glass_ash.name=Ash Glass +tile.glass_boron.name=Boron Glass +tile.glass_lead.name=Lead Glass +tile.glass_polonium.name=Polonium Glass +tile.glass_quartz.name=Quartz Glass +tile.glass_trinitite.name=Trinity Glass +tile.glass_uranium.name=Uranium Glass +tile.glyphid_base.name=Glyphid Hive Block +tile.glyphid_spawner.name=Glyphid Hive Spawner +tile.gneiss_brick.name=Schist Brick +tile.gneiss_chiseled.name=Chiseled Schist +tile.gneiss_tile.name=Schist Tile +tile.gravel_diamond.name=Diamond Gravel +tile.gravel_obsidian.name=Crushed Obsidian +tile.hadron_access.name=Particle Accelerator Access Terminal +tile.hadron_analysis.name=Particle Accelerator Analysis Chamber Wall +tile.hadron_analysis_glass.name=Particle Accelerator Analysis Chamber Window +tile.hadron_coil_alloy.name=Dense Superconducting Coil +tile.hadron_coil_chlorophyte.name=Dense Chlorophyte Coil +tile.hadron_coil_gold.name=Dense Gold Coil +tile.hadron_coil_magtung.name=Dense 4000K Superconductor Coil +tile.hadron_coil_mese.name=Dense Mese Coil +tile.hadron_coil_neodymium.name=Dense Neodymium Coil +tile.hadron_coil_schrabidate.name=Dense Schrabidate Coil +tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil +tile.hadron_coil_starmetal.name=Dense Starmetal Coil +tile.hadron_cooler.name=Particle Accelerator Cooling Unit +tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% +tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special +tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% +tile.hadron_core.name=Particle Accelerator Core Component +tile.hadron_diode.name=Schottky Particle Diode +tile.hadron_plating.name=Particle Accelerator Plating +tile.hadron_plating_black.name=Particle Accelerator Plating (Black) +tile.hadron_plating_blue.name=Particle Accelerator Plating (Blue) +tile.hadron_plating_glass.name=Particle Accelerator Plating (Window) +tile.hadron_plating_striped.name=Particle Accelerator Plating (Cool Hazard Stripes) +tile.hadron_plating_voltz.name=Particle Accelerator Plating (VOLTZ) +tile.hadron_plating_yellow.name=Particle Accelerator Plating (YelloDye) +tile.hadron_power.name=Particle Accelerator Power Plug (1MHE) +tile.hadron_power_10m.name=Particle Accelerator Power Plug (10MHE) +tile.hadron_power_100m.name=Particle Accelerator Power Plug (100MHE) +tile.hadron_power_1g.name=Particle Accelerator Power Plug (1GHE) +tile.hadron_power_10g.name=Particle Accelerator Power Plug (10GHE) +tile.hazmat.name=Hazmat Cloth Block +tile.heater_electric.name=Electric Heater +tile.heater_electric.desc=Uses energy to produce heat.$Accepts heat from the bottom with 85%% efficiency.$Can be configured with a screwdriver. +tile.heater_firebox.name=Firebox +tile.heater_firebox.desc=Burns solid fuel to produce heat. +tile.heater_heatex.name=Heat Exchanging Heater +tile.heater_heatex.desc=Produces heat from hot fluids. +tile.heater_oilburner.name=Fluid Burner +tile.heater_oilburner.desc=Burns fluids to produce heat.$Can be configured with a screwdriver. +tile.heater_oven.name=Heating Oven +tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency. +tile.hev_battery.name=Suit Battery +tile.machine_hydrotreater.name=Hydrotreater +tile.impact_dirt.name=Scorched Dirt +tile.icf.name=Inertial Confinement Fusion Reactor (ICF) +tile.icf_block.name=ICF Laser +tile.icf_component.name=ICF Stability Element +tile.icf_component.structure.name=ICF Casing +tile.icf_component.structure_bolted.name=ICF Casing (Riveted) +tile.icf_component.vessel.name=ICF Containment Vessel Wall +tile.icf_component.vessel_welded.name=ICF Containment Vessel Wall (Welded) +tile.icf_controller.name=ICF Laser Controller +tile.icf_laser_component.capacitor.name=ICF Laser Capacitor +tile.icf_laser_component.casing.name=ICF Laser Casing +tile.icf_laser_component.cell.name=ICF Laser Cell +tile.icf_laser_component.emitter.name=ICF Laser Flash Tube +tile.icf_laser_component.port.name=ICF Laser Port +tile.icf_laser_component.turbo.name=ICF Laser Turbocharger +tile.iter.name=Fusion Reactor +tile.ladder_aluminium.name=Aluminium Ladder +tile.ladder_cobalt.name=Cobalt Ladder +tile.ladder_copper.name=Copper Ladder +tile.ladder_gold.name=Golden Ladder +tile.ladder_iron.name=Iron Ladder +tile.ladder_lead.name=Lead Ladder +tile.ladder_steel.name=Steel Ladder +tile.ladder_sturdy.name=Sturdy Wooden Ladder +tile.ladder_titanium.name=Titanium Ladder +tile.ladder_tungsten.name=Tungsten Ladder +tile.lamp_demon.name=Demon Core Lamp +tile.lamp_tritium_blue_off.name=Blue Tritium Lamp +tile.lamp_tritium_blue_on.name=Blue Tritium Lamp +tile.lamp_tritium_green_off.name=Green Tritium Lamp +tile.lamp_tritium_green_on.name=Green Tritium Lamp +tile.lantern.name=Lantern +tile.lantern_behemoth.name=Old Lantern +tile.launch_pad.name=Silo Launch Pad +tile.launch_pad_large.name=Launch Pad +tile.launch_pad_rusted.name=Old Launch Pad +tile.launch_table.name=Large Launch Pad +tile.leaves_layer.name=Fallen Leaves +tile.lox_barrel.name=LOX Barrel +tile.machine_amgen.name=Ambience Radiation Generator +tile.machine_arc_furnace.name=Electric Arc Furnace +tile.machine_arc_furnace_off.name=Arc Furnace +tile.machine_arc_furnace_on.name=Arc Furnace +tile.machine_arc_welder.name=Arc Welder +tile.machine_armor_table.name=Armor Modification Table +tile.machine_ashpit.name=Ashpit +tile.machine_ashpit.desc=Collects ashes from fireboxes and heating ovens +tile.machine_assembler.name=Assembly Machine +tile.machine_assemfac.name=Assembly Factory +tile.machine_autocrafter.name=Automatic Crafting Table +tile.machine_autosaw.name=Automatic Buzz Saw +tile.machine_autosaw.desc=Cuts down nearby plants, re-plants trees$Accepts:$-Wood oil$-Ethanol$-Fish oil$-Heavy oil +tile.machine_bat9000.name=Big-Ass Tank 9000 +tile.machine_battery.name=Energy Storage Block +tile.machine_battery_potato.name=Potato Battery Block +tile.machine_boiler.name=Boiler +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t +tile.machine_boiler_electric_off.name=Electric Oil Heater +tile.machine_boiler_electric_on.name=Electric Oil Heater +tile.machine_boiler_off.name=Oil Heater +tile.machine_boiler_on.name=Oil Heater +tile.machine_catalytic_cracker.name=Catalytic Cracking Tower +tile.machine_catalytic_reformer.name=Catalytic Reformer +tile.machine_centrifuge.name=Centrifuge +tile.machine_chemfac.name=Chemical Factory +tile.machine_chemplant.name=Chemical Plant +tile.machine_chungus.name=Leviathan Steam Turbine +tile.machine_chungus.desc=Efficiency: 85%% +tile.machine_coal_off.name=Combustion Generator +tile.machine_coal_on.name=Combustion Generator +tile.machine_coker.name=Coker Unit +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t +tile.machine_combine_factory.name=CMB Steel Furnace +tile.machine_combustion_engine.name=Industrial Combustion Engine +tile.machine_compressor.name=Compressor +tile.machine_condenser.name=Steam Condenser +tile.machine_condenser_powered.name=High-Power Steam Condenser +tile.machine_controller.name=Reactor Remote Control Block +tile.machine_converter_he_rf.name=HE to RF Converter +tile.machine_converter_rf_he.name=RF to HE Converter +tile.machine_conveyor_press.name=Conveyor Press +tile.machine_conveyor_press.desc=Conveyor moves left to right$Right click stamp to install$Use screwdriver to remove stamp +tile.machine_crucible.name=Crucible +tile.machine_crystallizer.name=Ore Acidizer +tile.machine_cyclotron.name=Cyclotron +tile.machine_detector.name=Power Detector +tile.machine_deuterium_extractor.name=Deuterium Extractor +tile.machine_deuterium_tower.name=Deuterium Extraction Tower +tile.machine_diesel.name=Diesel Generator +tile.machine_difurnace_extension.name=Blast Furnace Extension +tile.machine_difurnace_off.name=Blast Furnace +tile.machine_difurnace_on.name=Blast Furnace +tile.machine_difurnace_rtg_off.name=Nuclear Blast Furnace +tile.machine_difurnace_rtg_on.name=Nuclear Blast Furnace +tile.machine_dineutronium_battery.name=Spark Energy Storage Block +tile.machine_drain.name=Drainage Pipe +tile.machine_drill.name=Automatic Mining Drill +tile.machine_electric_furnace_off.name=Electric Furnace +tile.machine_electric_furnace_on.name=Electric Furnace +tile.machine_electrolyser.name=Electrolysis Machine +tile.machine_epress.name=Electric Press +tile.machine_excavator.name=Large Mining Drill +tile.machine_exposure_chamber.name=Exposure Chamber +tile.machine_fel.name=FEL +tile.machine_fensu.name=FEnSU +tile.machine_flare.name=Flare Stack +tile.machine_fluidtank.name=Tank +tile.machine_forcefield.name=Forcefield Emitter +tile.machine_fraction_tower.name=Fractioning Tower +tile.machine_fracking_tower.name=Hydraulic Fracking Tower +tile.machine_funnel.name=Combinator Funnel +tile.machine_funnel.desc=Automatically compresses items in a 2x2 or 3x3 crafting grid$Top: Input$Bottom: Output$Side: Output for clearing ingredients +tile.machine_gascent.name=Gas Centrifuge +tile.machine_generator.name=Nuclear Reactor (Old) +tile.machine_geo.name=Geothermal Electric Generator +tile.machine_hephaestus.name=Geothermal Heat Exchanger +tile.machine_icf_press.name=ICF Fuel Pellet Maker +tile.machine_icf_press.desc=Fills ICF Fuel pellets$Left fuel slot is accepted by top/bottom, right by the sides$Muons and pellets may be supplied from any side +tile.machine_industrial_boiler.name=Industrial Boiler +tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode +tile.machine_industrial_generator.name=Industrial Generator +tile.machine_keyforge.name=Locksmith Table +tile.machine_large_turbine.name=Industrial Steam Turbine +tile.machine_large_turbine.desc=Efficiency: 100%% +tile.machine_liquefactor.name=Industrial Liquefaction Machine +tile.machine_liquefactor.desc=Powerful universal machine to turn items into fluids.$Comes with versatile catalytic components, heating elements$and a built-in hydrator for petrochemical liquefaction. +tile.machine_lithium_battery.name=Li-Ion Energy Storage Block +tile.machine_microwave.name=Microwave +tile.machine_mining_laser.name=Mining Laser +tile.machine_minirtg.name=Radio Isotope Cell +tile.machine_missile_assembly.name=Missile Assembly Station +tile.machine_mixer.name=Industrial Mixer +tile.machine_nuke_furnace_off.name=Nuclear Furnace +tile.machine_nuke_furnace_on.name=Nuclear Furnace +tile.machine_orbus.name=Heavy Magnetic Storage Tank +tile.machine_powerrtg.name=PT Isotope Cell +tile.machine_press.name=Burner Press +tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank +tile.machine_pumpjack.name=Pumpjack +tile.machine_radar.name=Radar +tile.machine_radar_large.name=Large Radar +tile.machine_radgen.name=Radiation-Powered Engine +tile.machine_radiolysis.name=Radioisotope Thermoelectric Generator and Radiolysis Chamber +tile.machine_reactor.name=Breeding Reactor +tile.machine_reactor_small.name=Research Reactor +tile.machine_refinery.name=Oil Refinery +tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) +tile.machine_rtg_blue.name=Convection Generator +tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) +tile.machine_rtg_furnace_off.name=RTG Furnace +tile.machine_rtg_furnace_on.name=RTG Furnace +tile.machine_rtg_green.name=Verticium Wealth Generator +tile.machine_rtg_grey.name=RT Generator +tile.machine_rtg_orange.name=Strong RT Generator +tile.machine_rtg_purple.name=Antimatter Annihilation Generator +tile.machine_rtg_red.name=Fulmination Generator +tile.machine_rtg_yellow.name=Australium Superfuel Reactor +tile.machine_satlinker.name=Satellite ID Manager +tile.machine_sawmill.name=Stirling Sawmill +tile.machine_sawmill.desc=Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Min intake: 100 TU/t, Max intake: 300 TU/t +tile.machine_schrabidium_battery.name=Schrabidium Energy Storage Block +tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device +tile.machine_selenium.name=Radial Performance Engine +tile.machine_shredder.name=Shredder +tile.machine_silex.name=Laser Isotope Separation Chamber (SILEX) +tile.machine_siren.name=Siren +tile.machine_solar_boiler.name=Solar Tower Boiler +tile.machine_soldering_station.name=Soldering Station +tile.machine_solidifier.name=Industrial Solidification Machine +tile.machine_solidifier.desc=A universal machine fitted with cooling systems and other$versatile tools for turning fluids solid using various$processes such as freezing and petrochemical polymerization. +tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom) +tile.machine_spp_top.name=ZPE Potential Generator (Top) +tile.machine_steam_engine.name=Steam Engine +tile.machine_steam_engine.desc=Efficiency: 85%% +tile.machine_stirling.name=Stirling Engine +tile.machine_stirling.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Max intake: 300 TU/t$Efficiency: 50%% +tile.machine_stirling_creative.name=Creative Stirling Engine +tile.machine_stirling_creative.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Infinite intake/t$Efficiency: 100%% +tile.machine_stirling_steel.name=Heavy Stirling Engine +tile.machine_stirling_steel.desc=Turns heat into energy. Requires external heat source.$Uses a much heavier gear to support higher temperatures.$Heat transfer rate: T*0.1 TU/t$Max intake: 1500 TU/t$Efficiency: 50%% +tile.machine_storage_drum.name=Nuclear Waste Disposal Drum +tile.machine_strand_caster.name=Strand Caster +tile.machine_telelinker.name=Turret Telemetry Linker +tile.machine_teleporter.name=Teleporter +tile.machine_tower_large.name=Cooling Tower +tile.machine_tower_small.name=Auxiliary Cooling Tower +tile.machine_transformer.name=10k-20Hz Transformer +tile.machine_transformer_20.name=10k-1Hz Transformer +tile.machine_transformer_dnt.name=DNT-20Hz Transformer +tile.machine_transformer_dnt_20.name=DNT-1Hz Transformer +tile.machine_turbine.name=Steam Turbine +tile.machine_turbine.desc=Efficiency: 85%% +tile.machine_turbinegas.name=Combined Cycle Gas Turbine +tile.machine_turbofan.name=Turbofan +tile.machine_uf6_tank.name=Uranium Hexafluoride Tank +tile.machine_vacuum_distill.name=Vacuum Refinery +tile.machine_waste_drum.name=Spent Fuel Pool Drum +tile.machine_wood_burner.name=Wood-Burning Generator +tile.machine_wood_burner.desc=Generates 100HE/t when burning items$Collects ashes$Can burn fluids at 50%% efficiency at 40mB/s +tile.machine_well.name=Oil Derrick +tile.machine_zirnox.name=ZIRNOX Nuclear Reactor +tile.marker_structure.name=Multiblock Structure Marker +tile.mass_storage.name=Mass Storage Unit +tile.meteor_battery.name=Starmetal Static Electricity Generator +tile.meteor_brick.name=Meteor Bricks +tile.meteor_brick_chiseled.name=Chiseled Meteor Bricks +tile.meteor_brick_cracked.name=Cracked Meteor Bricks +tile.meteor_brick_mossy.name=Mossy Meteor Bricks +tile.meteor_pillar.name=Meteor Pillar +tile.meteor_polished.name=Polished Meteor Block +tile.meteor_spawner.name=Cyber Crab Assembler +tile.mine_ap.name=Anti-Personell Mine +tile.mine_fat.name=Fat Mine +tile.mine_he.name=Anti-Tank Mine +tile.mine_shrap.name=Shrapnel Mine +tile.moon_turf.name=Moon Turf +tile.mud_block.name=Poisonous Mud +tile.muffler.name=Muffler +tile.mush.name=Glowing Mushroom +tile.ntm_dirt.name=Dirt +tile.nuke_boy.name=Little Boy +tile.nuke_custom.name=Custom Nuke +tile.nuke_fleija.name=F.L.E.I.J.A. +tile.nuke_fstbmb.name=Balefire Bomb +tile.nuke_gadget.name=The Gadget +tile.nuke_man.name=Fat Man +tile.nuke_mike.name=Ivy Mike +tile.nuke_n2.name=N² Mine +tile.nuke_n45.name=N45 Naval Mine +tile.nuke_prototype.name=The Prototype +tile.nuke_solinium.name=The Blue Rinse +tile.nuke_tsar.name=Tsar Bomba +tile.oil_duct.name=Oil Pipe +tile.oil_duct_solid.name=Coated Oil Pipe +tile.oil_pipe.name=Crude Oil Extraction Pipe +tile.oil_spill.name=Oil Spill +tile.ore_alexandrite.name=Alexandrite Ore +tile.ore_aluminium.name=Aluminium Ore +tile.ore_asbestos.name=Asbestos Ore +tile.ore_australium.name=Australian Ore +tile.ore_basalt_asbestos.name=Asbestos-Rich Basalt +tile.ore_basalt_fluorite.name=Fluorite-Rich Basalt +tile.ore_basalt_gem.name=Gem-Rich Basalt +tile.ore_basalt_molysite.name=Molysite-Rich Basalt +tile.ore_basalt_sulfur.name=Sulfur-Rich Basalt +tile.ore_bedrock.name=Bedrock Ore +tile.ore_bedrock_coltan.name=Bedrock Coltan Ore +tile.ore_bedrock_oil.name=Bedrock Oil Deposit +tile.ore_beryllium.name=Beryllium Ore +tile.ore_cinnebar.name=Cinnabar Ore +tile.ore_coal_oil.name=Oily Coal Ore +tile.ore_coal_oil_burning.name=Burning Oily Coal Ore +tile.ore_cobalt.name=Cobalt Ore +tile.ore_coltan.name=Coltan Ore +tile.ore_copper.name=Copper Ore +tile.ore_daffergon.name=Dellite +tile.ore_depth_borax.name=Depth Borax Ore +tile.ore_depth_cinnebar.name=Depth Cinnabar Ore +tile.ore_depth_nether_neodymium.name=Nether Depth Neodymium Ore +tile.ore_depth_zirconium.name=Depth Zirconium Ore +tile.ore_fluorite.name=Fluorite Ore +tile.ore_gneiss_asbestos.name=Schist Asbestos Ore +tile.ore_gneiss_copper.name=Schist Copper Ore +tile.ore_gneiss_gas.name=Gas Shale +tile.ore_gneiss_gold.name=Schist Gold Ore +tile.ore_gneiss_iron.name=Schist Iron Ore +tile.ore_gneiss_lithium.name=Schist Lithium Ore +tile.ore_gneiss_rare.name=Schist Rare Earth Ore +tile.ore_gneiss_schrabidium.name=Schist Schrabidium Ore +tile.ore_gneiss_uranium.name=Schist Uranium Ore +tile.ore_gneiss_uranium_scorched.name=Scorched Schist Uranium Ore +tile.ore_lead.name=Lead Ore +tile.ore_lignite.name=Lignite Ore +tile.ore_meteor.aluminium.name=Meteor Aluminium Ore +tile.ore_meteor.cobalt.name=Meteor Cobalt Ore +tile.ore_meteor.copper.name=Meteor Copper Ore +tile.ore_meteor.iron.name=Meteor Iron Ore +tile.ore_meteor.rareearth.name=Meteor Rare Earth Ore +tile.ore_meteor_aluminium.name=Meteor Aluminium Ore +tile.ore_meteor_copper.name=Meteor Copper Ore +tile.ore_meteor_lead.name=Meteor Lead Ore +tile.ore_meteor_lithium.name=Meteor Lithium Ore +tile.ore_meteor_starmetal.name=Starmetal Ore +tile.ore_meteor_sulfur.name=Meteor Sulfur Ore +tile.ore_meteor_thorium.name=Meteor Thorium Ore +tile.ore_meteor_titanium.name=Meteor Titanium Ore +tile.ore_meteor_tungsten.name=Meteor Tungsten Ore +tile.ore_meteor_uranium.name=Meteor Uranium Ore +tile.ore_nether_coal.name=Burning Nether Coal Ore +tile.ore_nether_cobalt.name=Nether Cobalt Ore +tile.ore_nether_fire.name=Nether Phosphorus Ore +tile.ore_nether_plutonium.name=Nether Plutonium Ore +tile.ore_nether_schrabidium.name=Nether Schrabidium Ore +tile.ore_nether_smoldering.name=Smoldering Netherrack +tile.ore_nether_sulfur.name=Nether Sulfur Ore +tile.ore_nether_tungsten.name=Nether Tungsten Ore +tile.ore_nether_uranium.name=Nether Uranium Ore +tile.ore_nether_uranium_scorched.name=Scorched Nether Uranium Ore +tile.ore_niter.name=Niter Ore +tile.ore_oil.name=Oil Deposit +tile.ore_oil_empty.name=Empty Oil Deposit +tile.ore_oil_sand.name=Tar Sand +tile.ore_random.name=%s Ore +tile.ore_rare.name=Rare Earth Ore +tile.ore_reiium.name=Reiite +tile.ore_schrabidium.name=Schrabidium Ore +tile.ore_sellafield_diamond.name=Sellafite Diamond Ore +tile.ore_sellafield_emerald.name=Sellafite Emerald Ore +tile.ore_sellafield_radgem.name=Sellafite Radioactive Gem Ore +tile.ore_sellafield_schrabidium.name=Sellafite Schrabidium Ore +tile.ore_sellafield_uranium_scorched.name=Scorched Sellafite Uranium Ore +tile.ore_sulfur.name=Sulfur Ore +tile.ore_tektite_osmiridium.name=Osmiridium-Infused Tektite +tile.ore_thorium.name=Thorium Ore +tile.ore_tikite.name=Trixite +tile.ore_titanium.name=Titanium Ore +tile.ore_tungsten.name=Tungsten Ore +tile.ore_unobtainium.name=Brightblende Ore +tile.ore_uranium.name=Uranium Ore +tile.ore_uranium_scorched.name=Scorched Uranium Ore +tile.ore_verticium.name=Dollar Green Mineral +tile.ore_volcano.name=Geothermal Vent +tile.ore_weidanium.name=Weidite +tile.part_emitter.name=Deco Particle Emitter +tile.pedestal.name=Pedestal +tile.pink_barrel.name=Kerosene Barrel +tile.pink_log.name=Pink Log +tile.pink_planks.name=Pink Wood Planks +tile.pink_slab.name=Pink Wood Slab +tile.pink_stairs.name=Pink Wood Stairs +tile.piston_inserter.name=Inserter +tile.piston_inserter.desc=Can receive one item using automation$Using redstone, it will insert the item into drilled graphite$All drilled graphite in the chain will have their items pushed by one block$Needs one block of air between the graphite +tile.plant_dead.name=Dead Plant +tile.plant_flower.cd0.name=Mustard Willow +tile.plant_flower.cd1.name=Mustard Willow +tile.plant_flower.foxglove.name=Foxglove +tile.plant_flower.nightshade.name=Deadly Nightshade +tile.plant_flower.tobacco.name=Tobacco Plant +tile.plant_flower.weed.name=Hemp +tile.plant_reeds.name=Reeds +tile.plant_tall.cd2.name=Mustard Willow +tile.plant_tall.cd3.name=Mustard Willow +tile.plant_tall.cd4.name=Mustard Willow (Mature) +tile.plant_tall.weed.name=Hemp +tile.plasma.name=Plasma +tile.plasma_heater.name=Plasma Heater +tile.pole_satellite_receiver.name=Satellite Dish +tile.pole_top.name=Antenna Top +tile.press_preheater.name=Burner Press Preheater +tile.pribris.name=RBMK Debris +tile.pribris_burning.name=Flaming RBMK Debris +tile.pribris_digamma.name=Blackened RBMK Debris +tile.pribris_radiating.name=Smoldering RBMK Debris +tile.pump_electric.name=Electric Groundwater Pump +tile.pump_electric.desc=Uses electricity to pump up groundwater$Generates up to 10,000mB/t$Needs to be placed below Y:70 +tile.pump_steam.name=Steam-Powered Groundwater Pump +tile.pump_steam.desc=Uses steam to pump up groundwater$Generates up to 1,000mB/t$Needs to be placed below Y:70 +tile.pwr_block.name=PWR +tile.pwr_casing.name=PWR Pressure Vessel +tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing +tile.pwr_channel.name=PWR Coolant Channel +tile.pwr_channel.desc=Uses hull heat to heat up coolant$Placement: Any +tile.pwr_control.name=PWR Control Rod +tile.pwr_control.desc=Allows connected fuel rods to be controlled$Placement: Grid, between fuel rods +tile.pwr_controller.name=PWR Controller +tile.pwr_controller.desc=Access terminal for the PWR$Placement: Casing, only one per reactor$Right-click to assemble the reactor +tile.pwr_fuel.name=PWR Fuel Rod +tile.pwr_fuel.desc=Increases PWR fuel capacity$Placement: Grid, for increased reactivity +tile.pwr_heatex.name=PWR Heat Exchanger +tile.pwr_heatex.desc=Moves core heat to the hull$Placement: Any +tile.pwr_heatsink.name=PWR Heatsink +tile.pwr_heatsink.desc=Increases core heat capacity by 5%%$Makes coolant channels and heat exchangers slightly less effective$Placement: Any +tile.pwr_neutron_source.name=PWR Neutron Source +tile.pwr_neutron_source.desc=Adds 20 flux to the core$Placement: Any$Flux only reaches fuel rods if connections are open +tile.pwr_port.name=PWR Access Port +tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing +tile.pwr_reflector.name=PWR Neutron Reflector +tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material +tile.rad_lava_block.name=Volcanic Lava +tile.radar_screen.name=Radar Screen +tile.radio_telex.name=Telex Machine +tile.radio_torch_counter.name=Redstone-over-Radio Item Counter +tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items +tile.radio_torch_logic.name=Redstone-over-Radio Logic Receiver +tile.radio_torch_logic.desc=Placable on flat surfaces or comparator-compatible blocks$Maps redstone signals to conditions evaluated in a set order$Numerical or string inputs are compared against a constant +tile.radio_torch_receiver.name=Redstone-over-Radio Receiver +tile.radio_torch_receiver.desc=Placable on flat surfaces or comparator-compatible blocks +tile.radio_torch_sender.name=Redstone-over-Radio Transmitter +tile.radio_torch_sender.desc=Placable on flat surfaces or comparator-compatible blocks$Reads redstone signals or comparator input +tile.radiobox.name=Rosenberg Pest Control Box +tile.radiorec.name=FM Radio +tile.rail_booster.name=High Speed Booster Rail +tile.rail_highspeed.name=High Speed Rail +tile.rail_large_buffer.name=Standard Gauge Buffer Stop Rail (5m) +tile.rail_large_curve.name=Standard Gauge Curve Rail (5m) +tile.rail_large_curve_7.name=Standard Gauge Curve Rail (7m) +tile.rail_large_curve_9.name=Standard Gauge Curve Rail (9m) +tile.rail_large_ramp.name=Standard Gauge Ramp Rail (5m) +tile.rail_large_straight.name=Standard Gauge Rail (5m) +tile.rail_large_straight_short.name=Standard Gauge Rail (1m) +tile.rail_large_switch.name=Standard Gauge Switch Rail (15m, Left) +tile.rail_large_switch_flipped.name=Standard Gauge Switch Rail (15m, Right) +tile.rail_narrow.name=Narrow Gauge Cart Rail +tile.rail_wood.name=Wooden Tracks +tile.rbmk_absorber.name=RBMK Boron Neutron Absorber +tile.rbmk_blank.name=RBMK Structural Column +tile.rbmk_boiler.name=RBMK Steam Channel +tile.rbmk_console.name=RBMK Console +tile.rbmk_cooler.name=RBMK Cooler +tile.rbmk_control.name=RBMK Control Rods +tile.rbmk_control_auto.name=RBMK Automatic Control Rods +tile.rbmk_control_mod.name=RBMK Moderated Control Rods +tile.rbmk_crane_console.name=RBMK Crane Console +tile.rbmk_heater.name=RBMK Fluid Heater +tile.rbmk_heatex.name=RBMK Heat Exchanger +tile.rbmk_loader.name=RBMK Steam Connector +tile.rbmk_loader.desc=Allows RBMKs to have both water and steam connections at the bottom$Place one water pipe below the RBMK column, then the connector,$then connect the steam duct to the connector. +tile.rbmk_moderator.name=RBMK Graphite Moderator +tile.rbmk_outgasser.name=RBMK Irradiation Channel +tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector +tile.rbmk_rod.name=RBMK Fuel Rod +tile.rbmk_rod_mod.name=RBMK Moderated Fuel Rod +tile.rbmk_rod_reasim.name=RBMK Fuel Rod (ReaSim) +tile.rbmk_rod_reasim_mod.name=RBMK Moderated Fuel Rod (ReaSim) +tile.rbmk_steam_inlet.name=RBMK ReaSim Water Inlet +tile.rbmk_steam_inlet.desc=Inserts water into RBMK columns if ReaSim boilers are enabled$Connects to RBMK columns sideways +tile.rbmk_steam_outlet.name=RBMK ReaSim Steam Outlet +tile.rbmk_steam_outlet.desc=Extracts super dense steam from RBMK columns if ReaSim boilers are enabled$Connects to RBMK columns sideways +tile.rbmk_storage.name=RBMK Storage Column +tile.reactor_computer.name=Reactor Control +tile.reactor_conductor.name=Reactor Boiler +tile.reactor_control.name=Control Rods +tile.reactor_ejector.name=Reactor Waste Ejector +tile.reactor_element.name=Reactor Chamber +tile.reactor_hatch.name=Reactor Access Hatch +tile.reactor_inserter.name=Reactor Fuel Inserter +tile.red_barrel.name=Explosive Barrel +tile.red_cable.name=Red Copper Cable +tile.red_cable_classic.name=Red Copper Cable (Classic) +tile.red_cable_gauge.name=Power Gauge +tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per tick.$Split networks connected by energy$storage blocks are considered as one shared network. +tile.red_cable_paintable.name=Paintable Red Copper Cable +tile.red_connector.name=Electricity Connector +tile.red_pylon.name=Electricity Pylon +tile.red_pylon_large.name=Large Electricity Pylon +tile.red_pylon_medium_steel.name=Medium Steel Electricity Pylon +tile.red_pylon_medium_steel_transformer.name=Medium Steel Electricity Pylon with Transformer +tile.red_pylon_medium_wood.name=Medium Wooden Electricity Pylon +tile.red_pylon_medium_wood_transformer.name=Medium Wooden Electricity Pylon with Transformer +tile.red_wire_coated.name=Coated Red Copper Cable +tile.reinforced_brick.name=Reinforced Stone +tile.reinforced_brick_stairs.name=Reinforced Stone Stairs +tile.reinforced_ducrete.name=Reinforced Ducrete +tile.reinforced_glass.name=Reinforced Glass +tile.reinforced_glass_pane.name=Reinforced Glass Pane +tile.reinforced_lamp_off.name=Reinforced Lamp +tile.reinforced_lamp_on.name=Reinforced Lamp +tile.reinforced_light.name=Reinforced Glowstone +tile.reinforced_sand.name=Reinforced Sandstone +tile.reinforced_stone.name=Dense Stone +tile.reinforced_stone_stairs.name=Dense Stone Stairs +tile.reinforced_laminate.name=Reinforced Laminate +tile.reinforced_laminate_pane.name=Reinforced Laminate Pane +tile.rejuvinator.name=Rejuvination Device +tile.residue.name=Cloud Residue +tile.safe.name=Safe +tile.sand_boron.name=Boron Sand +tile.sand_boron_layer.name=Boron Sand Layer +tile.sand_dirty.name=Oily Sand +tile.sand_dirty_red.name=Red Oily Sand +tile.sand_gold.name=Gold Sand +tile.sand_gold198.name=Gold-198 Sand +tile.sand_lead.name=Lead Sand +tile.sand_polonium.name=Polonium Sand +tile.sand_quartz.name=Quartz Sand +tile.sand_uranium.name=Uranium Sand +tile.sat_dock.name=Cargo Landing Pad +tile.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion (Deco Block) +tile.sat_laser.name=Orbital Death Ray (Deco Block) +tile.sat_mapper.name=Surface Mapping Satellite (Deco Block) +tile.sat_radar.name=Radar Survey Satellite (Deco Block) +tile.sat_resonator.name=Xenium Resonator Satellite (Deco Block) +tile.sat_scanner.name=Satellite with Depth-Resource Scanning Module (Deco Block) +tile.schrabidic_block.name=Schrabidic Acid +tile.seal_controller.name=Silo Hatch Opener +tile.seal_frame.name=Silo Hatch Frame +tile.seal_hatch.name=Silo Hatch +tile.sellafield.0.name=Sellafite +tile.sellafield.1.name=Hot Sellafite +tile.sellafield.2.name=Boiling Sellafite +tile.sellafield.3.name=Blazing Sellafite +tile.sellafield.4.name=Infernal Sellafite +tile.sellafield.5.name=Sellafite-Corium +tile.sellafield_slaked.name=Slaked Sellafite +tile.semtex.name=Semtex +tile.silo_hatch.name=Silo Hatch +tile.silo_hatch_large.name=Large Silo Hatch +tile.sliding_blast_door.name=Sliding Blast Door +tile.solar_mirror.name=Heliostat Mirror +tile.soyuz_capsule.name=Cargo Landing Capsule +tile.soyuz_launcher.name=Soyuz Launch Platform +tile.spikes.name=Spikes +tile.snowglobe.name=Snowglobe +tile.spotlight_incandescent.name=Cage Lamp +tile.spotlight_fluoro.name=Fluorescent Light +tile.spotlight_halogen.name=Halogen Floodlight +tile.stalactite.asbestos.name=Asbestos Stalactite +tile.stalactite.sulfur.name=Sulfurous Stalactite +tile.stalagmite.asbestos.name=Asbestos Stalagmite +tile.stalagmite.sulfur.name=Sulfurous Stalagmite +tile.steel_beam.name=Steel Beam +tile.steel_corner.name=Steel Wall Corner +tile.steel_grate.name=Steel Grate +tile.steel_grate_wide.name=Item Grate +tile.steel_grate_wide.desc=Lets dropped items and XP fall through +tile.steel_poles.name=Steel Pole +tile.steel_roof.name=Flat Steel Roof +tile.steel_scaffold.name=Steel Scaffold +tile.steel_wall.name=Steel Wall +tile.stone_cracked.name=Cracked Stone +tile.stone_depth.name=Depth Rock +tile.stone_depth_nether.name=Nether Depth Rock +tile.stone_gneiss.name=Graphitic Schist +tile.stone_keyhole.name=Strange Stone +tile.stone_porous.name=Porous Stone +tile.stone_resource.asbestos.name=Chrysotile +tile.stone_resource.bauxite.name=Bauxite +tile.stone_resource.hematite.name=Hematite +tile.stone_resource.limestone.name=Limestone +tile.stone_resource.malachite.name=Malachite +tile.stone_resource.sulfur.name=Sulfurous Stone +tile.struct_icf_core.name=Inertial Confinement Fusion Reactor Core Component +tile.struct_iter_core.name=Fusion Reactor Core Component +tile.struct_launcher.name=Launch Pad Component Block +tile.struct_launcher_core.name=Compact Launcher Core Component +tile.struct_launcher_core_large.name=Launch Table Core Component +tile.struct_plasma_core.name=Plasma Heater Core Component +tile.struct_scaffold.name=Launch Pad Scaffold Block +tile.struct_soyuz_core.name=Soyuz Launcher Core Component +tile.struct_watz_core.name=Watz Powerplant Core Component +tile.substation.name=Substation +tile.sulfuric_acid_block.name=Sulfuric Acid +tile.taint.name=Taint +tile.taint_barrel.name=IMP Residue Barrel +tile.tape_recorder.name=Tape Recorder +tile.tektite.name=Tektite +tile.teleanchor.name=Teleportation Anchor +tile.tesla.name=Tesla Coil +tile.test_nuke.name=Test Nuke +tile.therm_endo.name=Endothermic Bomb +tile.therm_exo.name=Exothermic Bomb +tile.tile_lab.name=Laboratory Tiles +tile.tile_lab_broken.name=Broken Laboratory Tiles +tile.tile_lab_cracked.name=Cracked Laboratory Tiles +tile.tnt_ntm.name=Actual TNT +tile.toxic_block.name=Stereotypical Green Ooze +tile.transition_seal.name=Transition Seal +tile.turret_arty.name=Artillery Turret "Greg" +tile.turret_cheapo.name=Cheapo Gatling Sentry +tile.turret_chekhov.name=Heavy Machine Gun Turret "Chekhov's Gun" +tile.turret_cwis.name=Phalanx Mk-15 CIWS +tile.turret_flamer.name=Flamethrower Turret +tile.turret_friendly.name=Chaingun Turret "Mister Friendly" +tile.turret_fritz.name=Heavy Flamethrower Turret "Fritz" +tile.turret_heavy.name=Heavy Machine Gun Turret +tile.turret_himars.name=Rocket Artillery Turret "Henry" +tile.turret_howard.name=Goalkeeper Twin Chaingun CIWS "Howard" +tile.turret_howard_damaged.name=Goalkeeper Twin Chaingun CIWS "Methusalem" +tile.turret_jeremy.name=Autocannon Turret "Jeremy" +tile.turret_light.name=Light Machine Gun Turret +tile.turret_maxwell.name=High-Energy MASER Turret "Maxwell" +tile.turret_rocket.name=Rocket Turret +tile.turret_richard.name=Rocket Launcher Turret "Richard" +tile.turret_spitfire.name=Turret I have no name for right now [WIP] +tile.turret_sentry.name=Sentry Turret "Brown" +tile.turret_sentry_damaged.name=Sentry Turret "Edwin" +tile.turret_tau.name=Tauon Turret +tile.turret_tauon.name=XVL1456 Prototype Turret "Tauon" +tile.vacuum.name=Vacuum +tile.vault_door.name=Vault-Tec Blast Door +tile.vent_chlorine.name=Chlorine Vent +tile.vent_chlorine_seal.name=Chlorine Seal +tile.vent_cloud.name=Cloud Vent +tile.vent_pink_cloud.name=Pink Cloud Vent +tile.vinyl_tile.large.name=Large Vinyl Tile +tile.vinyl_tile.small.name=Small Vinyl Tiles +tile.vitrified_barrel.name=Vitrified Nuclear Waste Drum +tile.volcanic_lava_block.name=Volcanic Lava +tile.volcano_core.name=Volcano Core +tile.volcano_rad_core.name=Rad Volcano Core +tile.waste_earth.name=Dead Grass +tile.waste_leaves.name=Dead Leaves +tile.waste_log.name=Charred Log +tile.waste_mycelium.name=Glowing Mycelium +tile.waste_planks.name=Charred Wooden Planks +tile.waste_trinitite.name=Trinitite Ore +tile.waste_trinitite_red.name=Red Trinitite Ore +tile.watz.name=Watz Powerplant +tile.watz_conductor.name=Watz Electricity Port +tile.watz_control.name=Reinforced Control Rods +tile.watz_cooler.name=Watz Reactor Supercooler +tile.watz_core.name=Watz Reactor Control +tile.watz_element.name=Watz Reaction Chamber +tile.watz_end.name=Watz Reactor Stability Element +tile.watz_end_bolted.name=Watz Reactor Stability Element (Riveted) +tile.watz_hatch.name=Watz Reactor Access Hatch +tile.watz_pump.name=Watz Pressure Pump +tile.yellow_barrel.name=Radioactive Barrel +tile.zirnox_destroyed.name=Destroyed ZIRNOX + +tile.large_vehicle_door.name=Large Vehicle Door +tile.water_door.name=Water Door +tile.qe_containment.name=QE Containment Door +tile.qe_sliding_door.name=QE Sliding Door +tile.round_airlock_door.name=Round Airlock Door +tile.secure_access_door.name=Secure Access Door +tile.sliding_seal_door.name=Sliding Seal Door + +trait.asbestos=Asbestos +trait.blinding=Blinding +trait.coal=Coal Dust +trait.digamma=Digamma Radiation +trait.drop=Dangerous Drop +trait.explosive=Flammable / Explosive +trait.furnace=Worth %s operations in nuclear furnace +trait.heat=Provides %s HEAT +trait.hlParticle=Particle Half-Life: %s +trait.hlPlayer=Player Half-Life: %s +trait.hot=Pyrophoric / Hot +trait.hydro=Hydroreactive +trait.radioactive=Radioactive +trait.radResistance=Radiation resistance: %s + +trait.rbmk.coreTemp=Core temp: %s +trait.rbmk.depletion=Depletion: %s +trait.rbmk.diffusion=Diffusion: %s +trait.rbmk.fluxFunc=Flux function: %s +trait.rbmk.funcType=Function type: %s +trait.rbmk.heat=Heat per flux: %s +trait.rbmk.melt=Melting point: %s +trait.rbmk.neutron.any=All Neutrons +trait.rbmk.neutron.fast=Fast Neutrons +trait.rbmk.neutron.slow=Slow Neutrons +trait.rbmk.skinTemp=Skin temp: %s +trait.rbmk.source=Self-igniting +trait.rbmk.splitsInto=Splits into: %s +trait.rbmk.splitsWith=Splits with: %s +trait.rbmk.xenon=Xenon poison: %s +trait.rbmk.xenonBurn=Xenon burn function: %s +trait.rbmk.xenonGen=Xenon gen function: %s + +trait.rbmx.coreTemp=Core entropy: %s +trait.rbmx.depletion=Crustyness: %s +trait.rbmx.diffusion=Flow: %s +trait.rbmx.fluxFunc=Doom function: %s +trait.rbmx.funcType=Function specification: %s +trait.rbmx.heat=Crust per tick at full power: %s +trait.rbmx.melt=Crush depth: %s +trait.rbmk.neutron.any.x=All non-euclidean shapes +trait.rbmk.neutron.fast.x=Elliptic non-euclidean shapes +trait.rbmk.neutron.slow.x=Hyperbolic non-euclidean shapes +trait.rbmx.skinTemp=Skin entropy: %s +trait.rbmx.source=Self-combusting +trait.rbmx.splitsInto=Departs to: %s +trait.rbmx.splitsWith=Arrives from: %s +trait.rbmx.xenon=Lead poison: %s +trait.rbmx.xenonBurn=Lead destruction function: %s +trait.rbmx.xenonGen=Lead creation function: %s + +trait.tile.cluster=Drops only when broken by a player +trait.tile.depth=Can only be destroyed by explosions + +tool.ability.centrifuge=Auto-Centrifuge +tool.ability.crystallizer=Auto-Crystallizer +tool.ability.explosion=Explosion +tool.ability.hammer=AoE +tool.ability.luck=Fortune +tool.ability.mercury=Mercury Touch +tool.ability.midas=Midas Touch +tool.ability.recursion=Vein Miner +tool.ability.shredder=Auto-Shredder +tool.ability.silktouch=Silk Touch +tool.ability.smelter=Auto-Smelter + +turret.animals=Target Passive: %s +turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m +turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m +turret.arty.manual=§eManual Mode$Range: 3,000m +turret.machines=Target Machines: %s +turret.mobs=Target Mobs: %s +turret.none=None +turret.off=OFF +turret.on=ON +turret.players=Target Players: %s + +upgrade.acid=Acid required %s +upgrade.burn=Burn %smb/t for %sHE +upgrade.consumption=Consumption %s +upgrade.coolantConsumption=Coolant Consumption %s +upgrade.delay=Process time %s +upgrade.efficiency=Efficiency %s +upgrade.fortune=Fortune %s +upgrade.overheatChance=Overheat chance %s +upgrade.range=Range %s + +upgrade.gui.title=§lAcceptable Upgrades:§r +upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s +upgrade.gui.effectiveness= * §aEffectiveness§r: Stacks to level %s +upgrade.gui.overdrive= * §7Overdrive§r: Stacks to level %s +upgrade.gui.power= * §9Power-Saving§r: Stacks to level %s +upgrade.gui.speed= * §4Speed§r: Stacks to level %s + +wavelengths.name.ir=Infrared +wavelengths.name.visible=Visible Light +wavelengths.name.uv=Ultraviolet +wavelengths.name.gamma=Gamma +wavelengths.name.drx=Digamma +wavelengths.waveRange.ir=780nm-1mm +wavelengths.waveRange.visible=400nm-780nm +wavelengths.waveRange.uv=100nm-400nm +wavelengths.waveRange.gamma=<100pm +wavelengths.waveRange.drx=1916169 planck lengths + +weapon.ability.beheader=Decapitator +weapon.ability.bobble=Luck of the Collector +# Should rhyme with the translation for "chainsaw" +weapon.ability.chainsaw=Painsaw +weapon.ability.fire=Flaming +weapon.ability.radiation=Radioactive Blade +weapon.ability.phosphorus=Phosphorus Tip +weapon.ability.stun=Stunning +weapon.ability.vampire=Vampire +weapon.elecGun.modeChange=Firing Mode Changed to: +weapon.elecGun.glass_cannon.radio=Radio Waves +weapon.elecGun.glass_cannon.micro=Microwaves +weapon.elecGun.glass_cannon.ir=Infrared +weapon.elecGun.glass_cannon.visible=Visible Light +weapon.elecGun.glass_cannon.uv=Ultraviolet Light +weapon.elecGun.glass_cannon.xray=X-rays +weapon.elecGun.glass_cannon.gamma=Gamma rays + +desc.gui.upgrade=§lAcceptable Upgrades:§r +desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 +desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 +desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 +desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 +desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 diff --git a/src/main/resources/assets/hbm/lang/ns_OC.lang b/src/main/resources/assets/hbm/lang/ns_OC.lang deleted file mode 100644 index a54936873..000000000 --- a/src/main/resources/assets/hbm/lang/ns_OC.lang +++ /dev/null @@ -1,2963 +0,0 @@ -language.name=Newspeak -language.region=Oceania -language.code=ns_OC - -gui.done=Done -gui.cancel=Abort -gui.back=Back -gui.toMenu=Back to Selectfield -gui.up=Up -gui.down=Down -gui.yes=Yes -gui.no=No - -translation.test.none=Hello, world! -translation.test.complex=Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again! -translation.test.escape=%%s %%%s %%%%s %%%%%s -translation.test.invalid=hi % -translation.test.invalid2=hi % s -translation.test.args=%s %s -translation.test.world=world - -menu.game=Selectfield -menu.singleplayer=Loneplay -menu.multiplayer=Manyplay -menu.online=Gameland -menu.options=Settings -menu.quit=Leave Playings -menu.returnToMenu=Save and Return -menu.disconnect=Leave -menu.returnToGame=Back to Playings -menu.switchingLevel=Switching worlds -menu.generatingLevel=Building world -menu.loadingLevel=Loading world -menu.generatingTerrain=Building land -menu.convertingLevel=Newbuilding world -menu.simulating=Virtualplaying the world -menu.respawning=Reliving -menu.shareToLan=Open to nearby Players - -selectWorld.title=Select World -selectWorld.empty=empty -selectWorld.world=World -selectWorld.select=Play World -selectWorld.create=Build World -selectWorld.recreate=Newbuild -selectWorld.createDemo=Play Demoworld -selectWorld.delete=Destroy -selectWorld.rename=Newname -selectWorld.deleteQuestion=Are you of conscience to destroy world? -selectWorld.deleteWarning=will be vaporized for longtime! -selectWorld.deleteButton=Destroy -selectWorld.renameButton=Newname -selectWorld.renameTitle=Newname World -selectWorld.conversion=Mut be newbuilded! -selectWorld.newWorld=New World -selectWorld.newWorld.copyOf=Dupe of %s -selectWorld.enterName=World Name -selectWorld.resultFolder=Will be saved in: -selectWorld.enterSeed=Code for Worldbuilder -selectWorld.seedInfo=Keep empty for random code -selectWorld.cheats=Crimeplay -selectWorld.customizeType=Custommake - -createWorld.customize.presets=Presets -createWorld.customize.presets.title=Select Preset -createWorld.customize.presets.select=Use Preset -createWorld.customize.presets.share=Do you intend to sharegive present? Copy text of box! -createWorld.customize.presets.list=Here are worlds maked by the Party: -createWorld.customize.flat.title=Flatworld making -createWorld.customize.flat.tile=Layerstuff -createWorld.customize.flat.height=Height -createWorld.customize.flat.addLayer=Make Layer -createWorld.customize.flat.editLayer=Remake Layer -createWorld.customize.flat.removeLayer=Delete Layer -createWorld.customize.flat.layer.top=Top - %d -createWorld.customize.flat.layer=%d -createWorld.customize.flat.layer.bottom=Bottom - %d - -gameMode.survival=Livings Mode -gameMode.creative=Crimeplay Mode -gameMode.adventure=Pluslivings Mode -gameMode.hardcore=Doublepluslivings Mode -gameMode.changed=Your mode was set anew! - -selectWorld.gameMode=Playings Mode -selectWorld.gameMode.survival=Livings -selectWorld.gameMode.survival.line1=Look for groundstuffs, build worktools, -selectWorld.gameMode.survival.line2=prevent unliving. -selectWorld.gameMode.creative=Crimeplay -selectWorld.gameMode.creative.line1=Unlimited buildstuffs, flyability, -selectWorld.gameMode.creative.line2=delete blocks shorttimely -selectWorld.gameMode.hardcore=Doublepluslivings -selectWorld.gameMode.hardcore.line1=Doubleplusplayingshardness, -selectWorld.gameMode.hardcore.line2=longtime unliving -selectWorld.gameMode.adventure=Pluslivings -selectWorld.gameMode.adventure.line1=Buildstuffs unbuildwise, -selectWorld.gameMode.adventure.line2=undeletewise -selectWorld.moreWorldOptions=Plusworldsettings... -selectWorld.mapFeatures=Build Buildings: -selectWorld.mapFeatures.info=Cities, prisons, etc. -selectWorld.mapType=World Type: -selectWorld.mapType.normal=Normal -selectWorld.allowCommands=Allow Crimeplay: -selectWorld.allowCommands.info=Crimeplay to steal material, /give -selectWorld.hardcoreMode=Doublepluslivings: -selectWorld.hardcoreMode.info=World is deleted on unliving -selectWorld.bonusItems=Pluscrate: - -generator.default=Default -generator.flat=Flatworld -generator.largeBiomes=Doubleplus Setting -generator.amplified=Tripleplus Setting - -generator.amplified.info=For doubleplusgood caclulators only! - -selectServer.title=Select Multiplayings -selectServer.empty=empty -selectServer.select=Join Multiplayings -selectServer.direct=Instant Line -selectServer.edit=Newmake -selectServer.delete=Delete -selectServer.add=Make Multiplayings -selectServer.defaultName=Minecraft Multiplayings -selectServer.deleteQuestion=Are you of conscience to destroy multiplayings? -selectServer.deleteWarning=will be vaporized for longtime! -selectServer.deleteButton=Delete -selectServer.refresh=Renew -selectServer.hiddenAddress=(Unshowing) -addServer.title=Remake Multiplayings Info -addServer.enterName=Multiplayings Name -addServer.enterIp=Multiplayings Code -addServer.add=Done -addServer.hideAddress=Unshow Code -addServer.resourcePack=Multiplayings Lookpackage -addServer.resourcePack.enabled=Enabled -addServer.resourcePack.disabled=Disabled -addServer.resourcePack.prompt=Prompt -lanServer.title=Local Multiplayings -lanServer.scanning=Finding games in local space -lanServer.start=Make local nultiplayings -lanServer.otherPlayers=Settings for Players -mcoServer.title=Minecraft Internet Multiplayings - -multiplayer.title=Play Multiplayings -multiplayer.connect=Multiplay -multiplayer.info1=Minecraft Multiplayings unmade, -multiplayer.info2=testing progressing.... -multiplayer.ipinfo=Enter IP Code of Multiplayings to Multiplay -multiplayer.texturePrompt.line1=Multiplay orders you to playings with lookpackage -multiplayer.texturePrompt.line2=Are you of conscience to load lookpackage? -multiplayer.downloadingTerrain=Loadings land... -multiplayer.downloadingStats=Loading achievings... -multiplayer.stopSleeping=Unsleep -multiplayer.player.joined=%s joined multiplayings -multiplayer.player.joined.renamed=%s (unnamed %s) joined multiplayings -multiplayer.player.left=%s unjoined multiplayings - -chat.cannotSend=Unsending text -chat.type.text=<%s> %s -chat.type.emote=* %s %s -chat.type.announcement=[%s] %s -chat.type.admin=[%s: %s] -chat.type.achievement=%s maded achievings %s -chat.link.confirm=Are you of conscience to load internet page? -chat.link.warning=Unload untrusty internet pages! -chat.copy=Remaking to Copyboard -chat.link.confirmTrusted=Are you opening internet code or remaking to copyboard? -chat.link.open=Open in internet window - -chat.stream.text=(%s) <%s> %s -chat.stream.emote=(%s) * %s %s - -menu.playdemo=Play Demo World -menu.resetdemo=Remake Demo World - -demo.day.1=This demo will vaporize in five days! -demo.day.2=Day Two -demo.day.3=Day Three -demo.day.4=Day Four -demo.day.5=Day Five!! -demo.day.warning=Demo will vaporize soonwise! -demo.day.6=Demo ended! Make screenpicture with F2! -demo.reminder=Demo ended, buy full playing or vaporize this world! -demo.remainingTime=Remaining time: %s -demo.demoExpired=Demo time's up! -demo.help.movement=Use %1$s, %2$s, %3$s, %4$s and and mouse to move. -demo.help.movementShort=Move by pressing %1$s, %2$s, %3$s, %4$s -demo.help.movementMouse=Look around using mouse -demo.help.jump=Jump by pressing %1$s -demo.help.inventory=Use %1$s to open material storage! -demo.help.title=Minecraft Demo Mode -demo.help.fullWrapped=This demo will vaporize in 5 Minecraft days (~1 hour and 40 minutes) -demo.help.buy=Pay up! -demo.help.later=Keep playing! - -connect.connecting=Joining multiplayings... -connect.authorizing=Logging in... -connect.failed=Unjoined to this multiplaying! - -disconnect.genericReason=%s -disconnect.disconnected=Unjoined by Multiplaying -disconnect.lost=Unjoined -disconnect.kicked=Was vaporized from multiplayings -disconnect.timeout=Ran out of time -disconnect.closed=Joining deleted -disconnect.loginFailed=Unable joining -disconnect.loginFailedInfo=Unable joining: %s -disconnect.loginFailedInfo.serversUnavailable=Authjoinings unable due to internet rebuilding -disconnect.loginFailedInfo.invalidSession=Unsession (restart minecraft) -disconnect.quitting=Unplaying -disconnect.endOfStream=End of internet -disconnect.overflow=Buffer unliving -disconnect.spam=Vaporized for Thoughtcrimes - -soundCategory.master=Party Loundness -soundCategory.music=Music Louness -soundCategory.record=Note Loudness -soundCategory.weather=Weather Loudness -soundCategory.hostile=Enemy Loudness -soundCategory.neutral=Ally Loudness -soundCategory.player=Players Loudness -soundCategory.block=Buildstuffs Loudness -soundCategory.ambient=Ominous Loudness - -record.nowPlaying=Musicplays: %s - -options.off=OFF -options.on=ON -options.visible=Shown -options.hidden=Unshown -options.title=Settings -options.controls=Control... -options.video=Seeing Settings... -options.language=Speak... -options.stream=Sending Settings... -options.sounds=Loudness... -options.sounds.title=Loudness Settigns -options.languageWarning=Speakwork not 100% precise -options.videoTitle=Seeing Settings -options.music=Music -options.sound=Noise -options.invertMouse=Unmove Mouse -options.fov=FOV -options.fov.min=Normal -options.fov.max=Real Oceanian -options.saturation=Saturation -options.gamma=Brightness -options.gamma.min=Unright -options.gamma.max=Bright -options.sensitivity=Movespeed -options.sensitivity.min=Doubleplusunspeedwise -options.sensitivity.max=Doubleplusspeedwise -options.renderDistance=Seeing Distance -options.renderDistance.tiny=Plusunlarge -options.renderDistance.short=Unlarge -options.renderDistance.normal=Normal -options.renderDistance.far=Large -options.viewBobbing=Victory Gin -options.ao=Light Smoothness -options.ao.off=OFF -options.ao.min=Unsmooth -options.ao.max=Smooth -options.anaglyph=3D Anaglyph -options.framerateLimit=Max Speed -options.framerateLimit.max=Unlimited Speed -options.difficulty=Game Hardness -options.difficulty.peaceful=Armistice -options.difficulty.easy=Unhard -options.difficulty.normal=Hard -options.difficulty.hard=Plushard -options.difficulty.hardcore=Doubleplushard -options.graphics=Looking -options.graphics.fancy=Good -options.graphics.fast=Fast -options.guiScale=GUI Largeness -options.guiScale.auto=Auto -options.guiScale.small=Unlarge -options.guiScale.normal=Normal -options.guiScale.large=Large -options.advancedOpengl=Doubleplus OpenGL -options.fboEnable=Enable FBOs -options.postProcessEnable=Enable Post-Processing -options.aoDesc0=Enable faux ambient occlusion on blocks. -options.aoDesc1= -options.framerateLimitDesc0=Select maximum fastness: -options.framerateLimitDesc1=35fps, 120fps, or 200+fps. -options.viewBobbingDesc0=Enables drunkenness -options.viewBobbingDesc1= -options.renderCloudsDesc0=Enables drawing of skyclouds -options.renderCloudsDesc1= -options.graphicsDesc0='Fancy': Doubleplusgood looking -options.graphicsDesc1='Fast': For ungood calculators -options.renderDistanceDesc0=Maximum looking largeness. Unlarge -options.renderDistanceDesc1=numbers work better on ungood calculators -options.particlesDesc0=Sets plentifulness of looking pieces -options.particlesDesc1=Unmany looking pieces work better on ungood calculators - - - - - - - - -options.advancedOpenglDesc0=Enables occlusion queries. On AMD and Intel -options.advancedOpenglDesc1=hardware, this may decrease performance. -options.fboEnableDesc0=Enables the use of Framebuffer Objects. -options.fboEnableDesc1=Necessary for certain Minecraft features. -options.postProcessEnableDesc0=Enables post-processing. Disabling will -options.postProcessEnableDesc1=result in reduction in Awesome Levels. -options.renderClouds=Clouds -options.qualityButton=Video Quality Settings... -options.qualityVideoTitle=Video Quality Settings -options.performanceButton=Video Performance Settings... -options.performanceVideoTitle=Video Performance Settings -options.advancedButton=Advanced Video Settings... -options.advancedVideoTitle=Advanced Video Settings -options.postButton=Post-Processing Settings... -options.postVideoTitle=Post-Processing Settings -options.farWarning1=A 64 bit Java installation is recommended -options.farWarning2=for 'Far' render distance (you have 32 bit) -options.particles=Particles -options.particles.all=All -options.particles.decreased=Decreased -options.particles.minimal=Minimal -options.multiplayer.title=Multiplayer Settings... -options.chat.title=Chat Settings... -options.chat.visibility=Chat -options.chat.visibility.full=Shown -options.chat.visibility.system=Commands Only -options.chat.visibility.hidden=Hidden -options.chat.color=Colors -options.chat.opacity=Opacity -options.chat.links=Web Links -options.chat.links.prompt=Prompt on Links -options.chat.scale=Scale -options.chat.width=Width -options.chat.height.focused=Focused Height -options.chat.height.unfocused=Unfocused Height -options.showCape=Show Cape -options.snooper=Allow Snooper -options.snooper.view=Snooper Settings... -options.snooper.title=Machine Specs Collection -options.snooper.desc=We want to collect information about your machine to help improve Minecraft by knowing what we can support and where the biggest problems are. All of this information is completely anonymous and viewable below. We promise we won't do anything bad with this data, but if you want to opt out then feel free to toggle it off! -options.resourcepack=Resource Packs... -options.fullscreen=Fullscreen -options.vsync=Use VSync -options.touchscreen=Touchscreen Mode - -options.mipmapLevels=Mipmap Levels -options.anisotropicFiltering=Anisotropic Filtering -options.forceUnicodeFont=Force Unicode Font - -options.stream.title=Twitch Broadcast Settings -options.stream.bytesPerPixel=Quality -options.stream.micVolumne=Mic Volume -options.stream.micToggleBehavior=Push To -options.stream.mic_toggle.mute=Mute -options.stream.mic_toggle.talk=Talk -options.stream.systemVolume=System Volume -options.stream.kbps=Bandwidth -options.stream.fps=Framerate -options.stream.sendMetadata=Send Metadata -options.stream.compression=Compression -options.stream.compression.low=Low -options.stream.compression.medium=Medium -options.stream.compression.high=High -options.stream.estimation=Estimated resolution: %dx%d -options.stream.changes=You may need to restart your stream for these changes to take place. -options.stream.ingestSelection=Broadcast Server List -options.stream.ingest.title=Twitch Broadcast Servers -options.stream.ingest.reset=Reset Preference -options.stream.chat.title=Twitch Chat Settings -options.stream.chat.enabled=Enable -options.stream.chat.enabled.streaming=Whilst Streaming -options.stream.chat.enabled.always=Always -options.stream.chat.enabled.never=Never -options.stream.chat.userFilter=User Filter -options.stream.chat.userFilter.all=All Viewers -options.stream.chat.userFilter.subs=Subscribers -options.stream.chat.userFilter.mods=Moderators - -title.oldgl1=Old graphics card detected; this may prevent you from -title.oldgl2=playing in the future as OpenGL 2.0 will be required. - -controls.title=Controls -controls.reset=Reset -controls.resetAll=Reset Keys - -key.sprint=Sprint -key.forward=Walk Forwards -key.left=Strafe Left -key.back=Walk Backwards -key.right=Strafe Right -key.jump=Jump -key.inventory=Inventory -key.drop=Drop Item -key.chat=Open Chat -key.sneak=Sneak -key.playerlist=List Players -key.attack=Attack/Destroy -key.use=Use Item/Place Block -key.pickItem=Pick Block -key.mouseButton=Button %1$s -key.command=Open Command -key.screenshot=Take Screenshot -key.togglePerspective=Toggle Perspective -key.smoothCamera=Toggle Cinematic Camera -key.fullscreen=Toggle Fullscreen -key.hotbar.1=Hotbar Slot 1 -key.hotbar.2=Hotbar Slot 2 -key.hotbar.3=Hotbar Slot 3 -key.hotbar.4=Hotbar Slot 4 -key.hotbar.5=Hotbar Slot 5 -key.hotbar.6=Hotbar Slot 6 -key.hotbar.7=Hotbar Slot 7 -key.hotbar.8=Hotbar Slot 8 -key.hotbar.9=Hotbar Slot 9 -key.streamStartStop=Start/Stop Stream -key.streamPauseUnpause=Pause/Unpause Stream -key.streamCommercial=Show Stream Commercials -key.streamToggleMic=Push To Talk/Mute - -key.categories.movement=Movement -key.categories.misc=Miscellaneous -key.categories.multiplayer=Multiplayer -key.categories.gameplay=Gameplay -key.categories.ui=Game Interface -key.categories.inventory=Inventory -key.categories.stream=Streaming - -resourcePack.openFolder=Open resource pack folder -resourcePack.title=Select Resource Packs -resourcePack.available.title=Available Resource Packs -resourcePack.selected.title=Selected Resource Packs -resourcePack.folderInfo=(Place resource pack files here) - -sign.edit=Edit sign message - -book.pageIndicator=Page %1$s of %2$s -book.byAuthor=by %1$s -book.signButton=Sign -book.editTitle=Enter Book Title: -book.finalizeButton=Sign and Close -book.finalizeWarning=Note! When you sign the book, it will no longer be editable. - -tile.stone.name=Stone -tile.hayBlock.name=Hay Bale -tile.grass.name=Grass Block -tile.dirt.default.name=Dirt -tile.dirt.podzol.name=Podzol -tile.stonebrick.name=Cobblestone -tile.wood.name=Wooden Planks -tile.wood.oak.name=Oak Wood Planks -tile.wood.spruce.name=Spruce Wood Planks -tile.wood.birch.name=Birch Wood Planks -tile.wood.jungle.name=Jungle Wood Planks -tile.wood.acacia.name=Acacia Wood Planks -tile.wood.big_oak.name=Dark Oak Wood Planks -tile.sapling.oak.name=Oak Sapling -tile.sapling.spruce.name=Spruce Sapling -tile.sapling.birch.name=Birch Sapling -tile.sapling.jungle.name=Jungle Sapling -tile.sapling.acacia.name=Acacia Sapling -tile.sapling.roofed_oak.name=Dark Oak Sapling -tile.deadbush.name=Dead Bush -tile.bedrock.name=Bedrock -tile.water.name=Water -tile.lava.name=Lava -tile.sand.default.name=Sand -tile.sand.red.name=Red Sand -tile.sandStone.name=Sandstone -tile.sandStone.default.name=Sandstone -tile.sandStone.chiseled.name=Chiseled Sandstone -tile.sandStone.smooth.name=Smooth Sandstone -tile.gravel.name=Gravel -tile.oreGold.name=Gold Ore -tile.oreIron.name=Iron Ore -tile.oreCoal.name=Coal Ore -tile.log.name=Wood -tile.log.oak.name=Oak Wood -tile.log.spruce.name=Spruce Wood -tile.log.birch.name=Birch Wood -tile.log.jungle.name=Jungle Wood -tile.log.acacia.name=Acacia Wood -tile.log.big_oak.name=Dark Oak Wood -tile.leaves.name=Leaves -tile.leaves.oak.name=Oak Leaves -tile.leaves.spruce.name=Spruce Leaves -tile.leaves.birch.name=Birch Leaves -tile.leaves.jungle.name=Jungle Leaves -tile.leaves.acacia.name=Acacia Leaves -tile.leaves.big_oak.name=Dark Oak Leaves -tile.tallgrass.name=Grass -tile.tallgrass.shrub.name=Shrub -tile.tallgrass.grass.name=Grass -tile.tallgrass.fern.name=Fern -tile.sponge.name=Sponge -tile.glass.name=Glass -tile.stainedGlass.name=Stained Glass -tile.stainedGlass.black.name=Black Stained Glass -tile.stainedGlass.red.name=Red Stained Glass -tile.stainedGlass.green.name=Green Stained Glass -tile.stainedGlass.brown.name=Brown Stained Glass -tile.stainedGlass.blue.name=Blue Stained Glass -tile.stainedGlass.purple.name=Purple Stained Glass -tile.stainedGlass.cyan.name=Cyan Stained Glass -tile.stainedGlass.silver.name=Light Gray Stained Glass -tile.stainedGlass.gray.name=Gray Stained Glass -tile.stainedGlass.pink.name=Pink Stained Glass -tile.stainedGlass.lime.name=Lime Stained Glass -tile.stainedGlass.yellow.name=Yellow Stained Glass -tile.stainedGlass.lightBlue.name=Light Blue Stained Glass -tile.stainedGlass.magenta.name=Magenta Stained Glass -tile.stainedGlass.orange.name=Orange Stained Glass -tile.stainedGlass.white.name=White Stained Glass -tile.thinStainedGlass.name=Stained Glass Pane -tile.thinStainedGlass.black.name=Black Stained Glass Pane -tile.thinStainedGlass.red.name=Red Stained Glass Pane -tile.thinStainedGlass.green.name=Green Stained Glass Pane -tile.thinStainedGlass.brown.name=Brown Stained Glass Pane -tile.thinStainedGlass.blue.name=Blue Stained Glass Pane -tile.thinStainedGlass.purple.name=Purple Stained Glass Pane -tile.thinStainedGlass.cyan.name=Cyan Stained Glass Pane -tile.thinStainedGlass.silver.name=Light Gray Stained Glass Pane -tile.thinStainedGlass.gray.name=Gray Stained Glass Pane -tile.thinStainedGlass.pink.name=Pink Stained Glass Pane -tile.thinStainedGlass.lime.name=Lime Stained Glass Pane -tile.thinStainedGlass.yellow.name=Yellow Stained Glass Pane -tile.thinStainedGlass.lightBlue.name=Light Blue Stained Glass Pane -tile.thinStainedGlass.magenta.name=Magenta Stained Glass Pane -tile.thinStainedGlass.orange.name=Orange Stained Glass Pane -tile.thinStainedGlass.white.name=White Stained Glass Pane -tile.thinGlass.name=Glass Pane -tile.cloth.name=Wool -tile.flower1.dandelion.name=Dandelion -tile.flower2.poppy.name=Poppy -tile.flower2.blueOrchid.name=Blue Orchid -tile.flower2.allium.name=Allium -tile.flower2.houstonia.name=Azure Bluet -tile.flower2.tulipRed.name=Red Tulip -tile.flower2.tulipOrange.name=Orange Tulip -tile.flower2.tulipWhite.name=White Tulip -tile.flower2.tulipPink.name=Pink Tulip -tile.flower2.oxeyeDaisy.name=Oxeye Daisy -tile.doublePlant.sunflower.name=Sunflower -tile.doublePlant.syringa.name=Lilac -tile.doublePlant.grass.name=Double Tallgrass -tile.doublePlant.fern.name=Large Fern -tile.doublePlant.rose.name=Rose Bush -tile.doublePlant.paeonia.name=Peony -tile.mushroom.name=Mushroom -tile.blockGold.name=Block of Gold -tile.blockIron.name=Block of Iron -tile.stoneSlab.stone.name=Stone Slab -tile.stoneSlab.sand.name=Sandstone Slab -tile.stoneSlab.wood.name=Wooden Slab -tile.stoneSlab.cobble.name=Cobblestone Slab -tile.stoneSlab.brick.name=Bricks Slab -tile.stoneSlab.smoothStoneBrick.name=Stone Bricks Slab -tile.stoneSlab.netherBrick.name=Nether Brick Slab -tile.stoneSlab.quartz.name=Quartz Slab -tile.woodSlab.oak.name=Oak Wood Slab -tile.woodSlab.spruce.name=Spruce Wood Slab -tile.woodSlab.birch.name=Birch Wood Slab -tile.woodSlab.jungle.name=Jungle Wood Slab -tile.woodSlab.acacia.name=Acacia Wood Slab -tile.woodSlab.big_oak.name=Dark Oak Wood Slab -tile.brick.name=Bricks -tile.tnt.name=TNT -tile.bookshelf.name=Bookshelf -tile.stoneMoss.name=Moss Stone -tile.obsidian.name=Obsidian -tile.torch.name=Torch -tile.fire.name=Fire -tile.mobSpawner.name=Monster Spawner -tile.stairsWood.name=Oak Wood Stairs -tile.stairsWoodSpruce.name=Spruce Wood Stairs -tile.stairsWoodBirch.name=Birch Wood Stairs -tile.stairsWoodJungle.name=Jungle Wood Stairs -tile.stairsWoodAcacia.name=Acacia Wood Stairs -tile.stairsWoodDarkOak.name=Dark Oak Wood Stairs -tile.chest.name=Chest -tile.chestTrap.name=Trapped Chest -tile.redstoneDust.name=Redstone Dust -tile.oreDiamond.name=Diamond Ore -tile.blockCoal.name=Block of Coal -tile.blockDiamond.name=Block of Diamond -tile.workbench.name=Crafting Table -tile.crops.name=Crops -tile.farmland.name=Farmland -tile.furnace.name=Furnace -tile.sign.name=Sign -tile.doorWood.name=Wooden Door -tile.ladder.name=Ladder -tile.rail.name=Rail -tile.goldenRail.name=Powered Rail -tile.activatorRail.name=Activator Rail -tile.detectorRail.name=Detector Rail -tile.stairsStone.name=Stone Stairs -tile.stairsSandStone.name=Sandstone Stairs -tile.lever.name=Lever -tile.pressurePlate.name=Pressure Plate -tile.weightedPlate_light.name=Weighted Pressure Plate (Light) -tile.weightedPlate_heavy.name=Weighted Pressure Plate (Heavy) -tile.doorIron.name=Iron Door -tile.oreRedstone.name=Redstone Ore -tile.notGate.name=Redstone Torch -tile.button.name=Button -tile.snow.name=Snow -tile.woolCarpet.black.name=Black Carpet -tile.woolCarpet.red.name=Red Carpet -tile.woolCarpet.green.name=Green Carpet -tile.woolCarpet.brown.name=Brown Carpet -tile.woolCarpet.blue.name=Blue Carpet -tile.woolCarpet.purple.name=Purple Carpet -tile.woolCarpet.cyan.name=Cyan Carpet -tile.woolCarpet.silver.name=Light Gray Carpet -tile.woolCarpet.gray.name=Gray Carpet -tile.woolCarpet.pink.name=Pink Carpet -tile.woolCarpet.lime.name=Lime Carpet -tile.woolCarpet.yellow.name=Yellow Carpet -tile.woolCarpet.lightBlue.name=Light Blue Carpet -tile.woolCarpet.magenta.name=Magenta Carpet -tile.woolCarpet.orange.name=Orange Carpet -tile.woolCarpet.white.name=Carpet -tile.ice.name=Ice -tile.icePacked.name=Packed Ice -tile.cactus.name=Cactus -tile.clay.name=Clay -tile.clayHardenedStained.black.name=Black Stained Clay -tile.clayHardenedStained.red.name=Red Stained Clay -tile.clayHardenedStained.green.name=Green Stained Clay -tile.clayHardenedStained.brown.name=Brown Stained Clay -tile.clayHardenedStained.blue.name=Blue Stained Clay -tile.clayHardenedStained.purple.name=Purple Stained Clay -tile.clayHardenedStained.cyan.name=Cyan Stained Clay -tile.clayHardenedStained.silver.name=Light Gray Stained Clay -tile.clayHardenedStained.gray.name=Gray Stained Clay -tile.clayHardenedStained.pink.name=Pink Stained Clay -tile.clayHardenedStained.lime.name=Lime Stained Clay -tile.clayHardenedStained.yellow.name=Yellow Stained Clay -tile.clayHardenedStained.lightBlue.name=Light Blue Stained Clay -tile.clayHardenedStained.magenta.name=Magenta Stained Clay -tile.clayHardenedStained.orange.name=Orange Stained Clay -tile.clayHardenedStained.white.name=White Stained Clay -tile.clayHardened.name=Hardened Clay -tile.reeds.name=Sugar cane -tile.jukebox.name=Jukebox -tile.fence.name=Fence -tile.fenceGate.name=Fence Gate -tile.pumpkin.name=Pumpkin -tile.litpumpkin.name=Jack o'Lantern -tile.hellrock.name=Netherrack -tile.hellsand.name=Soul Sand -tile.lightgem.name=Glowstone -tile.portal.name=Portal -tile.cloth.black.name=Black Wool -tile.cloth.red.name=Red Wool -tile.cloth.green.name=Green Wool -tile.cloth.brown.name=Brown Wool -tile.cloth.blue.name=Blue Wool -tile.cloth.purple.name=Purple Wool -tile.cloth.cyan.name=Cyan Wool -tile.cloth.silver.name=Light Gray Wool -tile.cloth.gray.name=Gray Wool -tile.cloth.pink.name=Pink Wool -tile.cloth.lime.name=Lime Wool -tile.cloth.yellow.name=Yellow Wool -tile.cloth.lightBlue.name=Light Blue Wool -tile.cloth.magenta.name=Magenta Wool -tile.cloth.orange.name=Orange Wool -tile.cloth.white.name=Wool -tile.oreLapis.name=Lapis Lazuli Ore -tile.blockLapis.name=Lapis Lazuli Block -tile.dispenser.name=Dispenser -tile.dropper.name=Dropper -tile.musicBlock.name=Note Block -tile.cake.name=Cake -tile.bed.name=Bed -tile.bed.occupied=This bed is occupied -tile.bed.noSleep=You can only sleep at night -tile.bed.notSafe=You may not rest now, there are monsters nearby -tile.bed.notValid=Your home bed was missing or obstructed -tile.lockedchest.name=Locked chest -tile.trapdoor.name=Trapdoor -tile.web.name=Cobweb -tile.stonebricksmooth.name=Stone Bricks -tile.stonebricksmooth.default.name=Stone Bricks -tile.stonebricksmooth.mossy.name=Mossy Stone Bricks -tile.stonebricksmooth.cracked.name=Cracked Stone Bricks -tile.stonebricksmooth.chiseled.name=Chiseled Stone Bricks -tile.monsterStoneEgg.stone.name=Stone Monster Egg -tile.monsterStoneEgg.cobble.name=Cobblestone Monster Egg -tile.monsterStoneEgg.brick.name=Stone Brick Monster Egg -tile.monsterStoneEgg.mossybrick.name=Mossy Stone Brick Monster Egg -tile.monsterStoneEgg.crackedbrick.name=Cracked Stone Brick Monster Egg -tile.monsterStoneEgg.chiseledbrick.name=Chiseled Stone Brick Monster Egg -tile.pistonBase.name=Piston -tile.pistonStickyBase.name=Sticky Piston -tile.fenceIron.name=Iron Bars -tile.melon.name=Melon -tile.stairsBrick.name=Brick Stairs -tile.stairsStoneBrickSmooth.name=Stone Brick Stairs -tile.vine.name=Vines -tile.netherBrick.name=Nether Brick -tile.netherFence.name=Nether Brick Fence -tile.stairsNetherBrick.name=Nether Brick Stairs -tile.netherStalk.name=Nether Wart -tile.cauldron.name=Cauldron -tile.enchantmentTable.name=Enchantment Table -tile.anvil.name=Anvil -tile.anvil.intact.name=Anvil -tile.anvil.slightlyDamaged.name=Slightly Damaged Anvil -tile.anvil.veryDamaged.name=Very Damaged Anvil -tile.whiteStone.name=End Stone -tile.endPortalFrame.name=End Portal -tile.mycel.name=Mycelium -tile.waterlily.name=Lily Pad -tile.dragonEgg.name=Dragon Egg -tile.redstoneLight.name=Redstone Lamp -tile.cocoa.name=Cocoa -tile.enderChest.name=Ender Chest -tile.oreRuby.name=Ruby Ore -tile.oreEmerald.name=Emerald Ore -tile.blockEmerald.name=Block of Emerald -tile.blockRedstone.name=Block of Redstone -tile.tripWire.name=Tripwire -tile.tripWireSource.name=Tripwire Hook -tile.commandBlock.name=Command Block -tile.beacon.name=Beacon -tile.beacon.primary=Primary Power -tile.beacon.secondary=Secondary Power -tile.cobbleWall.normal.name=Cobblestone Wall -tile.cobbleWall.mossy.name=Mossy Cobblestone Wall -tile.carrots.name=Carrots -tile.potatoes.name=Potatoes -tile.daylightDetector.name=Daylight Sensor -tile.netherquartz.name=Nether Quartz Ore -tile.hopper.name=Hopper -tile.quartzBlock.default.name=Block of Quartz -tile.quartzBlock.chiseled.name=Chiseled Quartz Block -tile.quartzBlock.lines.name=Pillar Quartz Block -tile.stairsQuartz.name=Quartz Stairs - -item.nameTag.name=Name Tag -item.leash.name=Lead -item.shovelIron.name=Iron Shovel -item.pickaxeIron.name=Iron Pickaxe -item.hatchetIron.name=Iron Axe -item.flintAndSteel.name=Flint and Steel -item.apple.name=Apple -item.cookie.name=Cookie -item.bow.name=Bow -item.arrow.name=Arrow -item.coal.name=Coal -item.charcoal.name=Charcoal -item.diamond.name=Diamond -item.emerald.name=Emerald -item.ingotIron.name=Iron Ingot -item.ingotGold.name=Gold Ingot -item.swordIron.name=Iron Sword -item.swordWood.name=Wooden Sword -item.shovelWood.name=Wooden Shovel -item.pickaxeWood.name=Wooden Pickaxe -item.hatchetWood.name=Wooden Axe -item.swordStone.name=Stone Sword -item.shovelStone.name=Stone Shovel -item.pickaxeStone.name=Stone Pickaxe -item.hatchetStone.name=Stone Axe -item.swordDiamond.name=Diamond Sword -item.shovelDiamond.name=Diamond Shovel -item.pickaxeDiamond.name=Diamond Pickaxe -item.hatchetDiamond.name=Diamond Axe -item.stick.name=Stick -item.bowl.name=Bowl -item.mushroomStew.name=Mushroom Stew -item.swordGold.name=Golden Sword -item.shovelGold.name=Golden Shovel -item.pickaxeGold.name=Golden Pickaxe -item.hatchetGold.name=Golden Axe -item.string.name=String -item.feather.name=Feather -item.sulphur.name=Gunpowder -item.hoeWood.name=Wooden Hoe -item.hoeStone.name=Stone Hoe -item.hoeIron.name=Iron Hoe -item.hoeDiamond.name=Diamond Hoe -item.hoeGold.name=Golden Hoe -item.seeds.name=Seeds -item.seeds_pumpkin.name=Pumpkin Seeds -item.seeds_melon.name=Melon Seeds -item.melon.name=Melon -item.wheat.name=Wheat -item.bread.name=Bread -item.helmetCloth.name=Leather Cap -item.chestplateCloth.name=Leather Tunic -item.leggingsCloth.name=Leather Pants -item.bootsCloth.name=Leather Boots -item.helmetChain.name=Chain Helmet -item.chestplateChain.name=Chain Chestplate -item.leggingsChain.name=Chain Leggings -item.bootsChain.name=Chain Boots -item.helmetIron.name=Iron Helmet -item.chestplateIron.name=Iron Chestplate -item.leggingsIron.name=Iron Leggings -item.bootsIron.name=Iron Boots -item.helmetDiamond.name=Diamond Helmet -item.chestplateDiamond.name=Diamond Chestplate -item.leggingsDiamond.name=Diamond Leggings -item.bootsDiamond.name=Diamond Boots -item.helmetGold.name=Golden Helmet -item.chestplateGold.name=Golden Chestplate -item.leggingsGold.name=Golden Leggings -item.bootsGold.name=Golden Boots -item.flint.name=Flint -item.porkchopRaw.name=Raw Porkchop -item.porkchopCooked.name=Cooked Porkchop -item.chickenRaw.name=Raw Chicken -item.chickenCooked.name=Cooked Chicken -item.beefRaw.name=Raw Beef -item.beefCooked.name=Steak -item.painting.name=Painting -item.frame.name=Item Frame -item.appleGold.name=Golden Apple -item.sign.name=Sign -item.doorWood.name=Wooden Door -item.bucket.name=Bucket -item.bucketWater.name=Water Bucket -item.bucketLava.name=Lava Bucket -item.minecart.name=Minecart -item.saddle.name=Saddle -item.doorIron.name=Iron Door -item.redstone.name=Redstone -item.snowball.name=Snowball -item.boat.name=Boat -item.leather.name=Leather -item.milk.name=Milk -item.brick.name=Brick -item.clay.name=Clay -item.reeds.name=Sugar Canes -item.paper.name=Paper -item.book.name=Book -item.slimeball.name=Slimeball -item.minecartChest.name=Minecart with Chest -item.minecartFurnace.name=Minecart with Furnace -item.minecartTnt.name=Minecart with TNT -item.minecartHopper.name=Minecart with Hopper -item.minecartCommandBlock.name=Minecart with Command Block -item.egg.name=Egg -item.compass.name=Compass -item.fishingRod.name=Fishing Rod -item.clock.name=Clock -item.yellowDust.name=Glowstone Dust -item.fish.cod.raw.name=Raw Fish -item.fish.salmon.raw.name=Raw Salmon -item.fish.pufferfish.raw.name=Pufferfish -item.fish.clownfish.raw.name=Clownfish -item.fish.cod.cooked.name=Cooked Fish -item.fish.salmon.cooked.name=Cooked Salmon -item.record.name=Music Disc -item.record.13.desc=C418 - 13 -item.record.cat.desc=C418 - cat -item.record.blocks.desc=C418 - blocks -item.record.chirp.desc=C418 - chirp -item.record.far.desc=C418 - far -item.record.mall.desc=C418 - mall -item.record.mellohi.desc=C418 - mellohi -item.record.stal.desc=C418 - stal -item.record.strad.desc=C418 - strad -item.record.ward.desc=C418 - ward -item.record.11.desc=C418 - 11 -item.record.wait.desc=C418 - wait -item.bone.name=Bone -item.dyePowder.black.name=Ink Sac -item.dyePowder.red.name=Rose Red -item.dyePowder.green.name=Cactus Green -item.dyePowder.brown.name=Cocoa Beans -item.dyePowder.blue.name=Lapis Lazuli -item.dyePowder.purple.name=Purple Dye -item.dyePowder.cyan.name=Cyan Dye -item.dyePowder.silver.name=Light Gray Dye -item.dyePowder.gray.name=Gray Dye -item.dyePowder.pink.name=Pink Dye -item.dyePowder.lime.name=Lime Dye -item.dyePowder.yellow.name=Dandelion Yellow -item.dyePowder.lightBlue.name=Light Blue Dye -item.dyePowder.magenta.name=Magenta Dye -item.dyePowder.orange.name=Orange Dye -item.dyePowder.white.name=Bone Meal -item.sugar.name=Sugar -item.cake.name=Cake -item.bed.name=Bed -item.diode.name=Redstone Repeater -item.comparator.name=Redstone Comparator -item.map.name=Map -item.leaves.name=Leaves -item.shears.name=Shears -item.rottenFlesh.name=Rotten Flesh -item.enderPearl.name=Ender Pearl -item.blazeRod.name=Blaze Rod -item.ghastTear.name=Ghast Tear -item.netherStalkSeeds.name=Nether Wart -item.potion.name=Potion -item.emptyPotion.name=Water Bottle -item.goldNugget.name=Gold Nugget -item.glassBottle.name=Glass Bottle -item.spiderEye.name=Spider Eye -item.fermentedSpiderEye.name=Fermented Spider Eye -item.blazePowder.name=Blaze Powder -item.magmaCream.name=Magma Cream -item.cauldron.name=Cauldron -item.brewingStand.name=Brewing Stand -item.eyeOfEnder.name=Eye of Ender -item.speckledMelon.name=Glistering Melon -item.monsterPlacer.name=Spawn -item.expBottle.name=Bottle o' Enchanting -item.fireball.name=Fire Charge -item.writingBook.name=Book and Quill -item.writtenBook.name=Written Book -item.ruby.name=Ruby -item.flowerPot.name=Flower Pot -item.emptyMap.name=Empty Map -item.carrots.name=Carrot -item.carrotGolden.name=Golden Carrot -item.potato.name=Potato -item.potatoBaked.name=Baked Potato -item.potatoPoisonous.name=Poisonous Potato -item.skull.skeleton.name=Skeleton Skull -item.skull.wither.name=Wither Skeleton Skull -item.skull.zombie.name=Zombie Head -item.skull.char.name=Head -item.skull.player.name=%s's Head -item.skull.creeper.name=Creeper Head -item.carrotOnAStick.name=Carrot on a Stick -item.netherStar.name=Nether Star -item.pumpkinPie.name=Pumpkin Pie -item.enchantedBook.name=Enchanted Book -item.fireworks.name=Firework Rocket -item.fireworks.flight=Flight Duration: -item.fireworksCharge.name=Firework Star -item.fireworksCharge.black=Black -item.fireworksCharge.red=Red -item.fireworksCharge.green=Green -item.fireworksCharge.brown=Brown -item.fireworksCharge.blue=Blue -item.fireworksCharge.purple=Purple -item.fireworksCharge.cyan=Cyan -item.fireworksCharge.silver=Light Gray -item.fireworksCharge.gray=Gray -item.fireworksCharge.pink=Pink -item.fireworksCharge.lime=Lime -item.fireworksCharge.yellow=Yellow -item.fireworksCharge.lightBlue=Light Blue -item.fireworksCharge.magenta=Magenta -item.fireworksCharge.orange=Orange -item.fireworksCharge.white=White -item.fireworksCharge.customColor=Custom -item.fireworksCharge.fadeTo=Fade to -item.fireworksCharge.flicker=Twinkle -item.fireworksCharge.trail=Trail -item.fireworksCharge.type.0=Small Ball -item.fireworksCharge.type.1=Large Ball -item.fireworksCharge.type.2=Star-shaped -item.fireworksCharge.type.3=Creeper-shaped -item.fireworksCharge.type.4=Burst -item.fireworksCharge.type=Unknown Shape -item.netherbrick.name=Nether Brick -item.netherquartz.name=Nether Quartz -item.horsearmormetal.name=Iron Horse Armor -item.horsearmorgold.name=Gold Horse Armor -item.horsearmordiamond.name=Diamond Horse Armor - -container.inventory=Inventory -container.hopper=Item Hopper -container.crafting=Crafting -container.dispenser=Dispenser -container.dropper=Dropper -container.furnace=Furnace -container.enchant=Enchant -container.repair=Repair & Name -container.repair.cost=Enchantment Cost: %1$d -container.repair.expensive=Too Expensive! -container.creative=Item Selection -container.brewing=Brewing Stand -container.chest=Chest -container.chestDouble=Large Chest -container.minecart=Minecart -container.enderchest=Ender Chest - -item.dyed=Dyed -item.unbreakable=Unbreakable - -entity.Item.name=Item -entity.XPOrb.name=Experience Orb -entity.SmallFireball.name=Small Fireball -entity.Fireball.name=Fireball - -entity.Arrow.name=Arrow -entity.Snowball.name=Snowball -entity.Painting.name=Painting - -entity.Mob.name=Mob -entity.Monster.name=Monster - -entity.Creeper.name=Creeper -entity.Skeleton.name=Skeleton -entity.Spider.name=Spider -entity.Giant.name=Giant -entity.Zombie.name=Zombie -entity.Slime.name=Slime -entity.Ghast.name=Ghast -entity.PigZombie.name=Zombie Pigman -entity.Enderman.name=Enderman -entity.Silverfish.name=Silverfish -entity.CaveSpider.name=Cave Spider -entity.Blaze.name=Blaze -entity.LavaSlime.name=Magma Cube -entity.MushroomCow.name=Mooshroom -entity.Villager.name=Villager -entity.VillagerGolem.name=Iron Golem -entity.SnowMan.name=Snow Golem -entity.EnderDragon.name=Ender Dragon -entity.WitherBoss.name=Wither -entity.Witch.name=Witch - -entity.Pig.name=Pig -entity.Sheep.name=Sheep -entity.Cow.name=Cow -entity.Chicken.name=Chicken -entity.Squid.name=Squid -entity.Wolf.name=Wolf -entity.Ozelot.name=Ocelot -entity.Cat.name=Cat -entity.Bat.name=Bat -entity.EntityHorse.name=Horse -entity.horse.name=Horse -entity.donkey.name=Donkey -entity.mule.name=Mule -entity.skeletonhorse.name=Skeleton Horse -entity.zombiehorse.name=Zombie Horse - -entity.PrimedTnt.name=Block of TNT -entity.FallingSand.name=Falling Block - -entity.Minecart.name=Minecart -entity.Boat.name=Boat - -entity.Arrow.name=arrow -entity.generic.name=unknown - -death.fell.accident.ladder=%1$s fell off a ladder -death.fell.accident.vines=%1$s fell off some vines -death.fell.accident.water=%1$s fell out of the water -death.fell.accident.generic=%1$s fell from a high place -death.fell.killer=%1$s was doomed to fall -death.fell.assist=%1$s was doomed to fall by %2$s -death.fell.assist.item=%1$s was doomed to fall by %2$s using %3$s -death.fell.finish=%1$s fell too far and was finished by %2$s -death.fell.finish.item=%1$s fell too far and was finished by %2$s using %3$s - -death.attack.inFire=%1$s went up in flames -death.attack.inFire.player=%1$s walked into fire whilst fighting %2$s -death.attack.onFire=%1$s burned to death -death.attack.onFire.player=%1$s was burnt to a crisp whilst fighting %2$s -death.attack.lava=%1$s tried to swim in lava -death.attack.lava.player=%1$s tried to swim in lava to escape %2$s -death.attack.inWall=%1$s suffocated in a wall -death.attack.drown=%1$s drowned -death.attack.drown.player=%1$s drowned whilst trying to escape %2$s -death.attack.starve=%1$s starved to death -death.attack.cactus=%1$s was pricked to death -death.attack.cactus.player=%1$s walked into a cactus whilst trying to escape %2$s -death.attack.generic=%1$s died -death.attack.explosion=%1$s blew up -death.attack.explosion.player=%1$s was blown up by %2$s -death.attack.magic=%1$s was killed by magic -death.attack.wither=%1$s withered away -death.attack.anvil=%1$s was squashed by a falling anvil -death.attack.fallingBlock=%1$s was squashed by a falling block -death.attack.mob=%1$s was slain by %2$s -death.attack.player=%1$s was slain by %2$s -death.attack.player.item=%1$s was slain by %2$s using %3$s -death.attack.arrow=%1$s was shot by %2$s -death.attack.arrow.item=%1$s was shot by %2$s using %3$s -death.attack.fireball=%1$s was fireballed by %2$s -death.attack.fireball.item=%1$s was fireballed by %2$s using %3$s -death.attack.thrown=%1$s was pummeled by %2$s -death.attack.thrown.item=%1$s was pummeled by %2$s using %3$s -death.attack.indirectMagic=%1$s was killed by %2$s using magic -death.attack.indirectMagic.item=%1$s was killed by %2$s using %3$s -death.attack.thorns=%1$s was killed trying to hurt %2$s -death.attack.fall=%1$s hit the ground too hard -death.attack.outOfWorld=%1$s fell out of the world - -deathScreen.respawn=Respawn -deathScreen.deleteWorld=Delete world -deathScreen.titleScreen=Title screen -deathScreen.score=Score -deathScreen.title.hardcore=Game over! -deathScreen.hardcoreInfo=You cannot respawn in hardcore mode! -deathScreen.title=You died! -deathScreen.leaveServer=Leave server -deathScreen.quit.confirm=Are you sure you want to quit? - -potion.effects.whenDrank=When Applied: -potion.empty=No Effects -potion.moveSpeed=Speed -potion.moveSlowdown=Slowness -potion.digSpeed=Haste -potion.digSlowDown=Mining Fatigue -potion.damageBoost=Strength -potion.weakness=Weakness -potion.heal=Instant Health -potion.harm=Instant Damage -potion.jump=Jump Boost -potion.confusion=Nausea -potion.regeneration=Regeneration -potion.resistance=Resistance -potion.fireResistance=Fire Resistance -potion.waterBreathing=Water Breathing -potion.invisibility=Invisibility -potion.blindness=Blindness -potion.nightVision=Night Vision -potion.hunger=Hunger -potion.poison=Poison -potion.wither=Wither -potion.healthBoost=Health Boost -potion.absorption=Absorption -potion.saturation=Saturation - -potion.moveSpeed.postfix=Potion of Swiftness -potion.moveSlowdown.postfix=Potion of Slowness -potion.digSpeed.postfix=Potion of Haste -potion.digSlowDown.postfix=Potion of Dullness -potion.damageBoost.postfix=Potion of Strength -potion.weakness.postfix=Potion of Weakness -potion.heal.postfix=Potion of Healing -potion.harm.postfix=Potion of Harming -potion.jump.postfix=Potion of Leaping -potion.confusion.postfix=Potion of Nausea -potion.regeneration.postfix=Potion of Regeneration -potion.resistance.postfix=Potion of Resistance -potion.fireResistance.postfix=Potion of Fire Resistance -potion.waterBreathing.postfix=Potion of Water Breathing -potion.invisibility.postfix=Potion of Invisibility -potion.blindness.postfix=Potion of Blindness -potion.nightVision.postfix=Potion of Night Vision -potion.hunger.postfix=Potion of Hunger -potion.poison.postfix=Potion of Poison -potion.wither.postfix=Potion of Decay -potion.healthBoost.postfix=Potion of Health Boost -potion.absorption.postfix=Potion of Absorption -potion.saturation.postfix=Potion of Saturation - -potion.potency.0= -potion.potency.1=II -potion.potency.2=III -potion.potency.3=IV - -potion.prefix.grenade=Splash -potion.prefix.mundane=Mundane -potion.prefix.uninteresting=Uninteresting -potion.prefix.bland=Bland -potion.prefix.clear=Clear -potion.prefix.milky=Milky -potion.prefix.diffuse=Diffuse -potion.prefix.artless=Artless -potion.prefix.thin=Thin -potion.prefix.awkward=Awkward -potion.prefix.flat=Flat -potion.prefix.bulky=Bulky -potion.prefix.bungling=Bungling -potion.prefix.buttered=Buttered -potion.prefix.smooth=Smooth -potion.prefix.suave=Suave -potion.prefix.debonair=Debonair -potion.prefix.thick=Thick -potion.prefix.elegant=Elegant -potion.prefix.fancy=Fancy -potion.prefix.charming=Charming -potion.prefix.dashing=Dashing -potion.prefix.refined=Refined -potion.prefix.cordial=Cordial -potion.prefix.sparkling=Sparkling -potion.prefix.potent=Potent -potion.prefix.foul=Foul -potion.prefix.odorless=Odorless -potion.prefix.rank=Rank -potion.prefix.harsh=Harsh -potion.prefix.acrid=Acrid -potion.prefix.gross=Gross -potion.prefix.stinky=Stinky - -enchantment.damage.all=Sharpness -enchantment.damage.undead=Smite -enchantment.damage.arthropods=Bane of Arthropods -enchantment.knockback=Knockback -enchantment.fire=Fire Aspect -enchantment.protect.all=Protection -enchantment.protect.fire=Fire Protection -enchantment.protect.fall=Feather Falling -enchantment.protect.explosion=Blast Protection -enchantment.protect.projectile=Projectile Protection -enchantment.oxygen=Respiration -enchantment.waterWorker=Aqua Affinity -enchantment.digging=Efficiency -enchantment.untouching=Silk Touch -enchantment.durability=Unbreaking -enchantment.lootBonus=Looting -enchantment.lootBonusDigger=Fortune -enchantment.lootBonusFishing=Luck of the Sea -enchantment.fishingSpeed=Lure -enchantment.arrowDamage=Power -enchantment.arrowFire=Flame -enchantment.arrowKnockback=Punch -enchantment.arrowInfinite=Infinity -enchantment.thorns=Thorns - -enchantment.level.1=I -enchantment.level.2=II -enchantment.level.3=III -enchantment.level.4=IV -enchantment.level.5=V -enchantment.level.6=VI -enchantment.level.7=VII -enchantment.level.8=VIII -enchantment.level.9=IX -enchantment.level.10=X - -gui.achievements=Achievements -gui.stats=Statistics - -stats.tooltip.type.achievement=Achievement -stats.tooltip.type.statistic=Statistic -stat.generalButton=General -stat.blocksButton=Blocks -stat.itemsButton=Items -stat.mobsButton=Mobs - -stat.used=Times Used -stat.mined=Times Mined -stat.depleted=Times Depleted -stat.crafted=Times Crafted -stat.entityKills=You killed %d %s -stat.entityKilledBy=%s killed you %d time(s) -stat.entityKills.none=You have never killed %s -stat.entityKilledBy.none=You have never been killed by %s - -stat.startGame=Times played -stat.createWorld=Worlds created -stat.loadWorld=Saves loaded -stat.joinMultiplayer=Multiplayer joins -stat.leaveGame=Games quit - -stat.playOneMinute=Minutes Played - -stat.walkOneCm=Distance Walked -stat.fallOneCm=Distance Fallen -stat.swimOneCm=Distance Swum -stat.flyOneCm=Distance Flown -stat.climbOneCm=Distance Climbed -stat.diveOneCm=Distance Dove -stat.minecartOneCm=Distance by Minecart -stat.boatOneCm=Distance by Boat -stat.pigOneCm=Distance by Pig -stat.horseOneCm=Distance by Horse -stat.jump=Jumps -stat.drop=Items Dropped - -stat.damageDealt=Damage Dealt -stat.damageTaken=Damage Taken -stat.deaths=Number of Deaths -stat.mobKills=Mob Kills -stat.animalsBred=Animals Bred -stat.playerKills=Player Kills -stat.fishCaught=Fish Caught -stat.treasureFished=Treasure Fished -stat.junkFished=Junk Fished - -stat.mineBlock=%1$s Mined -stat.craftItem=%1$s Crafted -stat.useItem=%1$s Used -stat.breakItem=%1$s Depleted - -achievement.get=Achievement get! - -achievement.taken=Taken! -achievement.unknown=??? - -achievement.requires=Requires '%1$s' -achievement.openInventory=Taking Inventory -achievement.openInventory.desc=Press '%1$s' to open your inventory. -achievement.mineWood=Getting Wood -achievement.mineWood.desc=Attack a tree until a block of wood pops out -achievement.buildWorkBench=Benchmarking -achievement.buildWorkBench.desc=Craft a workbench with four blocks of planks -achievement.buildPickaxe=Time to Mine! -achievement.buildPickaxe.desc=Use planks and sticks to make a pickaxe -achievement.buildFurnace=Hot Topic -achievement.buildFurnace.desc=Construct a furnace out of eight stone blocks -achievement.acquireIron=Acquire Hardware -achievement.acquireIron.desc=Smelt an iron ingot -achievement.buildHoe=Time to Farm! -achievement.buildHoe.desc=Use planks and sticks to make a hoe -achievement.makeBread=Bake Bread -achievement.makeBread.desc=Turn wheat into bread -achievement.bakeCake=The Lie -achievement.bakeCake.desc=Wheat, sugar, milk and eggs! -achievement.buildBetterPickaxe=Getting an Upgrade -achievement.buildBetterPickaxe.desc=Construct a better pickaxe -achievement.cookFish=Delicious Fish -achievement.cookFish.desc=Catch and cook fish! -achievement.onARail=On A Rail -achievement.onARail.desc=Travel by minecart at least 1 km from where you started -achievement.buildSword=Time to Strike! -achievement.buildSword.desc=Use planks and sticks to make a sword -achievement.killEnemy=Monster Hunter -achievement.killEnemy.desc=Attack and destroy a monster -achievement.killCow=Cow Tipper -achievement.killCow.desc=Harvest some leather -achievement.breedCow=Repopulation -achievement.breedCow.desc=Breed two cows with wheat -achievement.flyPig=When Pigs Fly -achievement.flyPig.desc=Fly a pig off a cliff -achievement.snipeSkeleton=Sniper Duel -achievement.snipeSkeleton.desc=Kill a skeleton with an arrow from more than 50 meters -achievement.diamonds=DIAMONDS! -achievement.diamonds.desc=Acquire diamonds with your iron tools -achievement.diamondsToYou=Diamonds to you! -achievement.diamondsToYou.desc=Throw diamonds at another player. -achievement.portal=We Need to Go Deeper -achievement.portal.desc=Build a portal to the Nether -achievement.ghast=Return to Sender -achievement.ghast.desc=Destroy a Ghast with a fireball -achievement.blazeRod=Into Fire -achievement.blazeRod.desc=Relieve a Blaze of its rod -achievement.potion=Local Brewery -achievement.potion.desc=Brew a potion -achievement.theEnd=The End? -achievement.theEnd.desc=Locate the End -achievement.theEnd2=The End. -achievement.theEnd2.desc=Defeat the Ender Dragon -achievement.spawnWither=The Beginning? -achievement.spawnWither.desc=Spawn the Wither -achievement.killWither=The Beginning. -achievement.killWither.desc=Kill the Wither -achievement.fullBeacon=Beaconator -achievement.fullBeacon.desc=Create a full beacon -achievement.exploreAllBiomes=Adventuring Time -achievement.exploreAllBiomes.desc=Discover all biomes -achievement.enchantments=Enchanter -achievement.enchantments.desc=Use a book, obsidian and diamonds to construct an enchantment table -achievement.overkill=Overkill -achievement.overkill.desc=Deal eight hearts of damage in a single hit -achievement.bookcase=Librarian -achievement.bookcase.desc=Build some bookshelves to improve your enchantment table - -commands.generic.exception=An unknown error occurred while attempting to perform this command -commands.generic.permission=You do not have permission to use this command -commands.generic.syntax=Invalid command syntax -commands.generic.player.notFound=That player cannot be found -commands.generic.notFound=Unknown command. Try /help for a list of commands -commands.generic.num.invalid='%s' is not a valid number -commands.generic.boolean.invalid='%s' is not true or false -commands.generic.num.tooSmall=The number you have entered (%d) is too small, it must be at least %d -commands.generic.num.tooBig=The number you have entered (%d) is too big, it must be at most %d -commands.generic.double.tooSmall=The number you have entered (%.2f) is too small, it must be at least %.2f -commands.generic.double.tooBig=The number you have entered (%.2f) is too big, it must be at most %.2f -commands.generic.usage=Usage: %s -commands.generic.deprecatedId=Warning: Using numeric IDs will not be supported in the future. Please use names, such as '%s' - -commands.setidletimeout.usage=/setidletimeout -commands.setidletimeout.success=Successfully set the idle timeout to %d minutes. -commands.xp.failure.widthdrawXp=Cannot give player negative experience points -commands.xp.success=Given %d experience to %s -commands.xp.success.levels=Given %d levels to %s -commands.xp.success.negative.levels=Taken %d levels from %s -commands.xp.usage=/xp [player] OR /xp L [player] -commands.playsound.usage=/playsound [x] [y] [z] [volume] [pitch] [minimumVolume] -commands.playsound.success=Played sound '%s' to %s -commands.playsound.playerTooFar=Player %s is too far away to hear the sound -commands.give.usage=/give [amount] [data] [dataTag] -commands.give.notFound=There is no such item with ID %d -commands.give.success=Given %s * %d to %s -commands.give.tagError=Data tag parsing failed: %s -commands.summon.usage=/summon [x] [y] [z] [dataTag] -commands.summon.success=Object successfully summoned -commands.summon.failed=Unable to summon object -commands.summon.tagError=Data tag parsing failed: %s -commands.summon.outOfWorld=Cannot summon the object out of the world -commands.testforblock.usage=/testforblock [dataValue] [dataTag] -commands.testforblock.failed.tile=The block at %d,%d,%d is %s (expected: %s). -commands.testforblock.failed.data=The block at %d,%d,%d had the data value of %s (expected: %s). -commands.testforblock.failed.nbt=The block at %d,%d,%d did not have the required NBT keys. -commands.testforblock.failed.tileEntity=The block at %d,%d,%d is not a tile entity and cannot support tag matching. -commands.testforblock.success=Successfully found the block at %d,%d,%d. -commands.testforblock.outOfWorld=Cannot test for block outside of the world -commands.setblock.usage=/setblock [dataValue] [oldBlockHandling] [dataTag] -commands.setblock.success=Block placed -commands.setblock.failed=Unable to place block -commands.setblock.tagError=Data tag parsing failed: %s -commands.setblock.outOfWorld=Cannot place block outside of the world -commands.setblock.notFound=There is no such block with ID/name %s -commands.setblock.noChange=The block couldn't be placed -commands.effect.usage=/effect [seconds] [amplifier] -commands.effect.notFound=There is no such mob effect with ID %d -commands.effect.success=Given %1$s (ID %2$d) * %3$d to %4$s for %5$d seconds -commands.effect.success.removed=Took %1$s from %2$s -commands.effect.success.removed.all=Took all effects from %s -commands.effect.failure.notActive=Couldn't take %1$s from %2$s as they do not have the effect -commands.effect.failure.notActive.all=Couldn't take any effects from %s as they do not have any -commands.enchant.usage=/enchant [level] -commands.enchant.notFound=There is no such enchantment with ID %d -commands.enchant.noItem=The target doesn't hold an item -commands.enchant.cantEnchant=The selected enchantment can't be added to the target item -commands.enchant.cantCombine=%1$s can't be combined with %2$s -commands.enchant.success=Enchanting succeeded -commands.clear.usage=/clear [item] [data] -commands.clear.success=Cleared the inventory of %s, removing %d items -commands.clear.failure=Could not clear the inventory of %s, no items to remove -commands.downfall.usage=/toggledownfall -commands.downfall.success=Toggled downfall -commands.time.usage=/time -commands.time.added=Added %d to the time -commands.time.set=Set the time to %d -commands.players.usage=/list -commands.players.list=There are %d/%d players online: -commands.banlist.ips=There are %d total banned IP addresses: -commands.banlist.players=There are %d total banned players: -commands.banlist.usage=/banlist [ips|players] -commands.kill.usage=/kill -commands.kill.success=Ouch! That looked like it hurt -commands.kick.success=Kicked %s from the game -commands.kick.success.reason=Kicked %s from the game: '%s' -commands.kick.usage=/kick [reason ...] -commands.op.success=Opped %s -commands.op.failed=Could not op %s -commands.op.usage=/op -commands.deop.success=De-opped %s -commands.deop.failed=Could not de-op %s -commands.deop.usage=/deop -commands.say.usage=/say -commands.ban.success=Banned player %s -commands.ban.failed=Could not ban player %s -commands.ban.usage=/ban [reason ...] -commands.unban.success=Unbanned player %s -commands.unban.failed=Could not unban player %s -commands.unban.usage=/pardon -commands.banip.invalid=You have entered an invalid IP address or a player that is not online -commands.banip.success=Banned IP address %s -commands.banip.success.players=Banned IP address %s belonging to %s -commands.banip.usage=/ban-ip [reason ...] -commands.unbanip.invalid=You have entered an invalid IP address -commands.unbanip.success=Unbanned IP address %s -commands.unbanip.usage=/pardon-ip
-commands.save.usage=/save-all -commands.save-on.alreadyOn=Saving is already turned on. -commands.save-on.usage=/save-on -commands.save-off.alreadyOff=Saving is already turned off. -commands.save-off.usage=/save-off -commands.save.enabled=Turned on world auto-saving -commands.save.disabled=Turned off world auto-saving -commands.save.start=Saving... -commands.save.success=Saved the world -commands.save.failed=Saving failed: %s -commands.stop.usage=/stop -commands.stop.start=Stopping the server -commands.tp.success=Teleported %s to %s -commands.tp.success.coordinates=Teleported %s to %.2f,%.2f,%.2f -commands.tp.usage=/tp [target player] OR /tp [target player] -commands.tp.notSameDimension=Unable to teleport because players are not in the same dimension -commands.whitelist.list=There are %d (out of %d seen) whitelisted players: -commands.whitelist.enabled=Turned on the whitelist -commands.whitelist.disabled=Turned off the whitelist -commands.whitelist.reloaded=Reloaded the whitelist -commands.whitelist.add.success=Added %s to the whitelist -commands.whitelist.add.failed=Could not add %s to the whitelist -commands.whitelist.add.usage=/whitelist add -commands.whitelist.remove.success=Removed %s from the whitelist -commands.whitelist.remove.failed=Could not remove %s from the whitelist -commands.whitelist.remove.usage=/whitelist remove -commands.whitelist.usage=/whitelist -commands.scoreboard.usage=/scoreboard -commands.scoreboard.teamNotFound=No team was found by the name '%s' -commands.scoreboard.objectiveNotFound=No objective was found by the name '%s' -commands.scoreboard.objectiveReadOnly=The objective '%s' is read-only and cannot be set -commands.scoreboard.objectives.usage=/scoreboard objectives -commands.scoreboard.objectives.setdisplay.usage=/scoreboard objectives setdisplay [objective] -commands.scoreboard.objectives.setdisplay.invalidSlot=No such display slot '%s' -commands.scoreboard.objectives.setdisplay.successCleared=Cleared objective display slot '%s' -commands.scoreboard.objectives.setdisplay.successSet=Set the display objective in slot '%s' to '%s' -commands.scoreboard.objectives.add.usage=/scoreboard objectives add [display name ...] -commands.scoreboard.objectives.add.wrongType=Invalid objective criteria type '%s' -commands.scoreboard.objectives.add.alreadyExists=An objective with the name '%s' already exists -commands.scoreboard.objectives.add.tooLong=The name '%s' is too long for an objective, it can be at most %d characters long -commands.scoreboard.objectives.add.displayTooLong=The display name '%s' is too long for an objective, it can be at most %d characters long -commands.scoreboard.objectives.add.success=Added new objective '%s' successfully -commands.scoreboard.objectives.remove.usage=/scoreboard objectives remove -commands.scoreboard.objectives.remove.success=Removed objective '%s' successfully -commands.scoreboard.objectives.list.count=Showing %d objective(s) on scoreboard: -commands.scoreboard.objectives.list.entry=- %s: displays as '%s' and is type '%s' -commands.scoreboard.objectives.list.empty=There are no objectives on the scoreboard -commands.scoreboard.players.usage=/scoreboard players -commands.scoreboard.players.set.success=Set score of %s for player %s to %d -commands.scoreboard.players.set.usage=/scoreboard players set -commands.scoreboard.players.add.usage=/scoreboard players add -commands.scoreboard.players.remove.usage=/scoreboard players remove -commands.scoreboard.players.reset.usage=/scoreboard players reset -commands.scoreboard.players.reset.success=Reset all scores of player %s -commands.scoreboard.players.list.usage=/scoreboard players list [name] -commands.scoreboard.players.list.count=Showing %d tracked players on the scoreboard: -commands.scoreboard.players.list.empty=There are no tracked players on the scoreboard -commands.scoreboard.players.list.player.count=Showing %d tracked objective(s) for %s: -commands.scoreboard.players.list.player.entry=- %2$s: %1$d (%3$s) -commands.scoreboard.players.list.player.empty=Player %s has no scores recorded -commands.scoreboard.teams.usage=/scoreboard teams -commands.scoreboard.teams.add.usage=/scoreboard teams add [display name ...] -commands.scoreboard.teams.add.alreadyExists=A team with the name '%s' already exists -commands.scoreboard.teams.add.tooLong=The name '%s' is too long for a team, it can be at most %d characters long -commands.scoreboard.teams.add.displayTooLong=The display name '%s' is too long for a team, it can be at most %d characters long -commands.scoreboard.teams.add.success=Added new team '%s' successfully -commands.scoreboard.teams.list.usage=/scoreboard teams list [name] -commands.scoreboard.teams.list.count=Showing %d teams on the scoreboard: -commands.scoreboard.teams.list.entry=- %1$s: '%2$s' has %3$d players -commands.scoreboard.teams.list.empty=There are no teams registered on the scoreboard -commands.scoreboard.teams.list.player.count=Showing %d player(s) in team %s: -commands.scoreboard.teams.list.player.entry=- %2$s: %1$d (%3$s) -commands.scoreboard.teams.list.player.empty=Team %s has no players -commands.scoreboard.teams.empty.usage=/scoreboard teams empty -commands.scoreboard.teams.empty.alreadyEmpty=Team %s is already empty, cannot remove nonexistant players -commands.scoreboard.teams.empty.success=Removed all %d player(s) from team %s -commands.scoreboard.teams.remove.usage=/scoreboard teams remove -commands.scoreboard.teams.remove.success=Removed team %s -commands.scoreboard.teams.join.usage=/scoreboard teams join [player] -commands.scoreboard.teams.join.success=Added %d player(s) to team %s: %s -commands.scoreboard.teams.join.failure=Could not add %d player(s) to team %s: %s -commands.scoreboard.teams.leave.usage=/scoreboard teams leave [player] -commands.scoreboard.teams.leave.success=Removed %d player(s) from their teams: %s -commands.scoreboard.teams.leave.failure=Could not remove %d player(s) from their teams: %s -commands.scoreboard.teams.leave.noTeam=You are not in a team -commands.scoreboard.teams.option.usage=/scoreboard teams option -commands.scoreboard.teams.option.noValue=Valid values for option %s are: %s -commands.scoreboard.teams.option.success=Set option %s for team %s to %s -commands.gamemode.success.self=Set own game mode to %s -commands.gamemode.success.other=Set %s's game mode to %s -commands.gamemode.usage=/gamemode [player] -commands.defaultgamemode.usage=/defaultgamemode -commands.defaultgamemode.success=The world's default game mode is now %s -commands.me.usage=/me -commands.help.header=--- Showing help page %d of %d (/help ) --- -commands.help.footer=Tip: Use the key while typing a command to auto-complete the command or its arguments -commands.help.usage=/help [page|command name] -commands.publish.usage=/publish -commands.publish.started=Local game hosted on port %s -commands.publish.failed=Unable to host local game -commands.debug.start=Started debug profiling -commands.debug.stop=Stopped debug profiling after %.2f seconds (%d ticks) -commands.debug.notStarted=Can't stop profiling when we haven't started yet! -commands.debug.usage=/debug -commands.tellraw.usage=/tellraw -commands.tellraw.jsonException=Invalid json: %s -commands.message.usage=/tell -commands.message.sameTarget=You can't send a private message to yourself! -commands.message.display.outgoing=You whisper to %s: %s -commands.message.display.incoming=%s whispers to you: %s -commands.difficulty.usage=/difficulty -commands.difficulty.success=Set game difficulty to %s -commands.spawnpoint.usage=/spawnpoint OR /spawnpoint OR /spawnpoint -commands.spawnpoint.success=Set %s's spawn point to (%d, %d, %d) -commands.setworldspawn.usage=/setworldspawn OR /setworldspawn -commands.setworldspawn.success=Set the world spawn point to (%d, %d, %d) -commands.gamerule.usage=/gamerule OR /gamerule -commands.gamerule.success=Game rule has been updated -commands.gamerule.norule=No game rule called '%s' is available -commands.weather.usage=/weather [duration in seconds] -commands.weather.clear=Changing to clear weather -commands.weather.rain=Changing to rainy weather -commands.weather.thunder=Changing to rain and thunder -commands.testfor.usage=/testfor -commands.testfor.failed=/testfor is only usable by commandblocks with analog output -commands.seed.usage=/seed -commands.seed.success=Seed: %s -commands.spreadplayers.usage=/spreadplayers -commands.spreadplayers.spreading.teams=Spreading %s teams %s blocks around %s,%s (min %s blocks apart) -commands.spreadplayers.spreading.players=Spreading %s players %s blocks around %s,%s (min %s blocks apart) -commands.spreadplayers.success.teams=Successfully spread %s teams around %s,%s -commands.spreadplayers.success.players=Successfully spread %s players around %s,%s -commands.spreadplayers.info.teams=(Average distance between teams is %s blocks apart after %s iterations) -commands.spreadplayers.info.players=(Average distance between players is %s blocks apart after %s iterations) -commands.spreadplayers.failure.teams=Could not spread %s teams around %s,%s (too many players for space - try using spread of at most %s) -commands.spreadplayers.failure.players=Could not spread %s players around %s,%s (too many players for space - try using spread of at most %s) -commands.achievement.usage=/achievement give [player] -commands.achievement.unknownAchievement=Unknown achievement or statistic '%s' -commands.achievement.give.success.all=Successfully given all achievements to %s -commands.achievement.give.success.one=Successfully given %s the stat %s -commands.achievement.statTooLow=Player %s does not have the stat %s - -itemGroup.buildingBlocks=Building Blocks -itemGroup.decorations=Decoration Blocks -itemGroup.redstone=Redstone -itemGroup.transportation=Transportation -itemGroup.misc=Miscellaneous -itemGroup.search=Search Items -itemGroup.food=Foodstuffs -itemGroup.tools=Tools -itemGroup.combat=Combat -itemGroup.brewing=Brewing -itemGroup.materials=Materials -itemGroup.inventory=Survival Inventory - -inventory.binSlot=Destroy Item - -advMode.setCommand=Set Console Command for Block -advMode.setCommand.success=Command set: %s -advMode.command=Console Command -advMode.nearestPlayer=Use "@p" to target nearest player -advMode.randomPlayer=Use "@r" to target random player -advMode.allPlayers=Use "@a" to target all players -advMode.previousOutput=Previous Output - -advMode.notEnabled=Command blocks are not enabled on this server -advMode.notAllowed=Must be an opped player in creative mode - -mount.onboard=Press %1$s to dismount - -build.tooHigh=Height limit for building is %s blocks - -attribute.modifier.plus.0=+%d %s -attribute.modifier.plus.1=+%d%% %s -attribute.modifier.plus.2=+%d%% %s -attribute.modifier.take.0=-%d %s -attribute.modifier.take.1=-%d%% %s -attribute.modifier.take.2=-%d%% %s - -attribute.name.horse.jumpStrength=Horse Jump Strength -attribute.name.zombie.spawnReinforcements=Zombie Reinforcements -attribute.name.generic.maxHealth=Max Health -attribute.name.generic.followRange=Mob Follow Range -attribute.name.generic.knockbackResistance=Knockback Resistance -attribute.name.generic.movementSpeed=Speed -attribute.name.generic.attackDamage=Attack Damage - -screenshot.success=Saved screenshot as %s -screenshot.failure=Couldn't save screenshot: %s - -stream.user.mode.moderator=Moderator -stream.user.mode.moderator.self=Moderator on your channel -stream.user.mode.moderator.other=Moderator on %s's channel -stream.user.mode.broadcaster=Broadcaster -stream.user.mode.broadcaster.self=Broadcaster (You!) -stream.user.mode.broadcaster.other=Broadcaster -stream.user.mode.administrator=Twitch Administrator -stream.user.mode.staff=Twitch Staff -stream.user.mode.banned=Banned -stream.user.mode.banned.self=Banned on your channel -stream.user.mode.banned.other=Banned on %s's channel -stream.user.subscription.subscriber=Subscriber -stream.user.subscription.subscriber.self=Subscriber to your channel -stream.user.subscription.subscriber.other=Subscriber to %s's channel -stream.user.subscription.turbo=Twitch Turbo - -stream.unavailable.title=Twitch Broadcasting Unavailable -stream.unavailable.report_to_mojang=Report to Mojang - -stream.confirm_start=Are you sure you want to start broadcasting? - -stream.unavailable.account_not_bound=Before you can broadcast Minecraft through Twitch, you will need to link your Twitch account on mojang.com. Would you like to do that now? -stream.unavailable.account_not_bound.okay=Link Accounts -stream.unavailable.account_not_migrated=Before you can broadcast Minecraft through Twitch, you will need to migrate your Minecraft account to a Mojang account. Would you like to do that now? -stream.unavailable.account_not_migrated.okay=Migrate Account -stream.unavailable.failed_auth=Authentication to Twitch failed. Please go to mojang.com and rebind your Twitch account. -stream.unavailable.failed_auth.okay=Rebind Accounts -stream.unavailable.failed_auth_error=Unable to authenticate to Twitch. Please try again later. -stream.unavailable.initialization_failure=Unable to initialize the Twitch SDK. -stream.unavailable.initialization_failure.extra=(Reason: %s) -stream.unavailable.library_arch_mismatch=The custom java version used to launch Minecraft has a different architecture than the one used to run the launcher. Please make sure these are the same, either 32-bit or 64-bit for both. -stream.unavailable.library_failure=Unable to load the libraries needed for the integrated Twitch broadcasting service. -stream.unavailable.no_fbo=Your video card needs to support at least OpenGL version 3.0 or support Framebuffer Objects via an extension to use the integrated Twitch broadcasting. -stream.unavailable.no_fbo.version=You are currently using: %s -stream.unavailable.no_fbo.blend=Separate blending support via EXT is: %s -stream.unavailable.no_fbo.arb=Framebuffer object support via ARB is: %s -stream.unavailable.no_fbo.ext=Framebuffer object support via EXT is: %s -stream.unavailable.not_supported.windows=Unfortunately the integrated Twitch broadcasting requires a newer version of Windows than you are on. You must have at least Windows Vista or newer. -stream.unavailable.not_supported.mac=Unfortunately the integrated Twitch broadcasting on Mac requires a version of OSX newer than the one you are on. You must use 10.7 (Mac OS X Lion) or newer to be able to use this service. Would you like to visit apple.com to learn about upgrading? -stream.unavailable.not_supported.mac.okay=Upgrade -stream.unavailable.not_supported.other=Unfortunately the integrated Twitch broadcasting service requires Windows (Vista or newer) or Mac OS X (10.7/Lion or newer) -stream.unavailable.unknown=Unfortunately you cannot broadcast to Twitch at this time. And we don't know why :'( -stream.unavailable.unknown.chat=Could not start stream: %s - -stream.unavailable.soundflower.chat=Soundflower is required to be able to stream on Mac. %s -stream.unavailable.soundflower.chat.link=Please click here to install it. - -stream.userinfo.chatTooltip=Click to manage user -stream.userinfo.timeout=Timeout -stream.userinfo.ban=Ban -stream.userinfo.unban=Unban -stream.userinfo.mod=Promote to Moderator -stream.userinfo.unmod=Demote from Moderator - - -itemGroup.tabTest=Nuclear Tech Mod Test Tab -itemGroup.tabParts=NTM Resources and Parts -itemGroup.tabBlocks=NTM Blocks and Machines -itemGroup.tabNuke=NTM Bombs and Gear -itemGroup.tabMachine=NTM Templates - -hbmfluid.none=None -hbmfluid.water=Water -hbmfluid.lava=Lava -hbmfluid.uf6=Uranium Hexafluoride -hbmfluid.puf6=Plutonium Hexafluoride -hbmfluid.deuterium=Deuterium -hbmfluid.tritium=Tritium -hbmfluid.oil=Crude Oil -hbmfluid.smear=Industrial Oil -hbmfluid.reclaimed=Reclaimed Industrial Oil -hbmfluid.petroil=Petroil -hbmfluid.lubricant=Engine Lubricant -hbmfluid.diesel=Diesel -hbmfluid.kerosene=Kerosene -hbmfluid.gas=Natural Gas -hbmfluid.coolant=Coolant -hbmfluid.amat=Antimatter -hbmfluid.aschrab=Antischrabidium - -item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core -item.record.ss.desc=Valve - Sector Sweep -item.record.vc.desc=Valve - Vortal Combat - -death.attack.nuclearBlast=%1$s was blown away by a nuclear explosion. -death.attack.revolverBullet=%1$s was shot in the head by %2$s. -death.attack.mudPoisoning=%1$s died in poisonous mud. -death.attack.euthanized=%1$s was euthanized by %2$s. -death.attack.euthanizedSelf=%1$s euthanized himself, what a dork. -death.attack.euthanizedSelf2=%1$s wins the Darwin Award. -death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. -death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. -death.attack.chopperBullet=%1$s was rekt by %2$s. -death.attack.cmb=%1$s was fizzeled by %2$s. -death.attack.subAtomic=%1$s's atoms have been destroyed by %2$s. -death.attack.subAtomic2=%1$s was QPU-misaligned because %2$s tampered with his de facto speed. -death.attack.subAtomic3=%1$s's divergence dropped below 1 percent because of %2$s. -death.attack.subAtomic4=%1$s was divided by zero by %2$s. -death.attack.subAtomic5=%1$s was nullified by %2$s. -death.attack.radiation=%1$s died from radiation poisoning. -death.attack.acid=%1$s fell into acid. -death.attack.suicide=%1$s blew their head off. -death.attack.electrified=%1$s was electrified by %2$s. -death.attack.flamethrower=%1$s was cremated by %2$s. -death.attack.plasma=%1$s was immolated by %2$s. -death.attack.ice=%1$s was turned into a popsicle by %2$s. -death.attack.cheater=%1$s's intestines turned into oats. (???) -death.attack.laser=%1$s was turned into ash by %2$s. -death.attack.rubble=%1$s was squashed by debris. -death.attack.shrapnel=%1$s was ragged by a shrapnel. -death.attack.teleporter=%1$s was teleported into nothingness. -death.attack.blackhole=%1$s was spaghettified. - -item.redstone_sword.name=Redstone Sword -item.big_sword.name=Great Sword -item.test_nuke_igniter.name=Igniter -item.test_nuke_propellant.name=Propellant -item.test_nuke_tier1_shielding.name=Neutron Reflector (Tier 1) -item.test_nuke_tier2_shielding.name=Neutron Reflector (Tier 2) -item.test_nuke_tier1_bullet.name=U235 Projectile (Tier 1) -item.test_nuke_tier2_bullet.name=MOX Projectile (Tier 2) -item.test_nuke_tier1_target.name=Subcritical U235 Target (Tier 1) -item.test_nuke_tier2_target.name=Subcritical MOX Target (Tier 2) - -item.gadget_explosive.name=Propellant -item.gadget_explosive8.name=Bundle of Propellant -item.gadget_wireing.name=Wiring -item.gadget_core.name=Plutonium Core - -item.boy_igniter.name=Bomb Igniter -item.boy_propellant.name=Propellant -item.boy_bullet.name=U235 Projectile -item.boy_target.name=Subcritical U235 Target -item.boy_shielding.name=Neutron Shielding - -item.man_explosive.name=Propellant -item.man_explosive8.name=Bundle of Propellant -item.man_igniter.name=Bomb Igniter -item.man_core.name=Plutonium Core - -item.mike_core.name=Uranium Coated Deuterium Tank -item.mike_deut.name=Deuterium Tank -item.mike_cooling_unit.name=Deuterium Cooling Unit - -item.tsar_core.name=Tsar Bomba Core - -item.fleija_igniter.name=Pulse Igniter -item.fleija_propellant.name=Schrabidium Propellant -item.fleija_core.name=F.L.E.I.J.A. Uranium 235 Charge - -container.nukeGadget=The Gadget -container.nukeBoy=Little Boy -container.nukeMan=Fat Man -container.nukeMike=Ivy Mike -container.nukeTsar=Tsar Bomba -container.nukeFleija=F.L.E.I.J.A. -container.nukePrototype=The Prototype -container.nukeCustom=Custom Nuke - -container.bombMulti=Multi Purpose Bomb - -tile.nuke_gadget.name=The Gadget -tile.nuke_boy.name=Little Boy -tile.nuke_man.name=Fat Man -tile.nuke_mike.name=Ivy Mike -tile.nuke_tsar.name=Tsar Bomba -tile.nuke_fleija.name=F.L.E.I.J.A. -tile.nuke_prototype.name=The Prototype -tile.nuke_custom.name=Custom Nuke - -tile.bomb_multi.name=Multi Purpose Bomb - -tile.flame_war.name=Flame War in a Box -tile.float_bomb.name=Levitation Bomb -tile.therm_endo.name=Endothermic Bomb -tile.therm_exo.name=Exothermic Bomb - -tile.crashed_bomb.name=Dud - -tile.crate.name=Supply Crate -tile.marker_structure.name=Multiblock Structure Marker - -tile.machine_difurnace_off.name=Alloy Furnace -tile.machine_difurnace_on.name=Alloy Furnace -container.diFurnace=Alloy Furnace -tile.machine_centrifuge.name=Centrifuge -container.centrifuge=Centrifuge -tile.machine_uf6_tank.name=Uranium Hexafluoride Tank -container.uf6_tank=UF6 Tank -tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank -container.puf6_tank=PuF6 Tank -tile.machine_reactor.name=Breeding Reactor -container.reactor=Breeding Reactor -tile.machine_nuke_furnace_off.name=Nuclear Powered Furnace -tile.machine_nuke_furnace_on.name=Nuclear Powered Furnace -container.nukeFurnace=Nuclear Powered Furnace -tile.machine_rtg_furnace_off.name=RTG Furnace -tile.machine_rtg_furnace_on.name=RTG Furnace -container.rtgFurnace=RTG Furnace -tile.machine_electric_furnace_off.name=Electric Furnace -tile.machine_electric_furnace_on.name=Electric Furnace -container.electricFurnace=Electric Furnace -tile.machine_generator.name=Nuclear Reactor -container.generator=Nuclear Reactor -tile.red_wire_coated.name=Coated Red Copper Cable -tile.machine_deuterium.name=Deuterium Extractor -container.machine_deuterium=Deuterium Extractor -tile.machine_battery.name=Energy Storage Block -container.battery=Energy Storage -tile.machine_coal_off.name=Coal Generator -tile.machine_coal_on.name=Coal Generator -container.machineCoal=Coal Generator -tile.launch_pad.name=Missile Launch Pad -container.launchPad=Missile Launch Pad -tile.book_guide.name=Hbm's Nuclear Tech Mod Manual -tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device -container.machine_schrabidium_transmutator=Schrabidium Transmutation Device -tile.machine_diesel.name=Diesel Generator -container.machineDiesel=Diesel Generator -tile.machine_shredder.name=Shredder -container.machineShredder=Shredder -tile.machine_combine_factory.name=CMB Steel Furnace -container.machineCMB=CMB Steel Furnace -tile.machine_teleporter.name=Teleporter -container.teleporter=Teleporter -tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) -container.reix=Rei-X Mainframe -tile.machine_industrial_generator.name=Industrial Generator -container.iGenerator=Industrial Generator -tile.machine_cyclotron.name=Cyclotron -container.cyclotron=Cyclotron -tile.machine_well.name=Oil Derrick -tile.oil_pipe.name=Crude Oil Extraction Pipe -container.oilWell=Oil Derrick -tile.machine_refinery.name=Oil Refinery -container.machineRefinery=Oil Refinery -tile.oil_duct.name=Oil Pipe -tile.oil_duct_solid.name=Coated Oil Pipe -tile.machine_flare.name=Gas Flare -container.gasFlare=Gas Flare -tile.gas_duct.name=Gas Pipe -tile.gas_duct_solid.name=Coated Gas Pipe -tile.machine_drill.name=Automatic Mining Drill -container.miningDrill=Automatic Mining Drill -tile.machine_assembler.name=Assembly Machine -container.assembler=Assembly Machine -tile.machine_chemplant.name=Chemical Plant -container.chemplant=Chemical Plant - -tile.red_pylon.name=Electricity Pole -item.wiring_red_copper.name=Cable Drum - -tile.rail_highspeed.name=High Speed Rail -tile.rail_booster.name=High Speed Booster Rail - -tile.factory_titanium_hull.name=Basic Factory Casing -tile.factory_titanium_furnace.name=Basic Factory Access Hatch -tile.factory_titanium_conductor.name=Basic Factory Electricity Port -tile.factory_titanium_core.name=Basic Factory Core Component -item.factory_core_titanium.name=Basic Factory Energy Cluster -container.factoryTitanium=Basic Factory -tile.factory_advanced_hull.name=Advanced Factory Casing -tile.factory_advanced_furnace.name=Advanced Factory Access Hatch -tile.factory_advanced_conductor.name=Advanced Factory Electricity Port -tile.factory_advanced_core.name=Advanced Factory Core Component -item.factory_core_advanced.name=Advanced Factory Energy Cluster -container.factoryAdvanced=Advanced Factory - -tile.reactor_element.name=Reactor Chamber -tile.reactor_control.name=Control Rods -tile.reactor_hatch.name=Reactor Access Hatch -tile.reactor_conductor.name=Reactor Electricity Port -tile.reactor_computer.name=Reactor Control -container.reactorMultiblock=Big Nuclear Reactor - -tile.fusion_conductor.name=Superconducting Magnet -tile.fusion_center.name=Central Magnet Piece -tile.fusion_motor.name=Magnet Motor Piece -tile.fusion_heater.name=Plasma Heater -tile.fusion_hatch.name=Fusion Reactor Access Hatch -tile.fusion_core.name=Fusion Reactor Control -tile.plasma.name=Plasma -container.fusionMultiblock=Big Fusion Reactor - -tile.watz_element.name=Watz Reaction Chamber -tile.watz_control.name=Reinforced Control Rods -tile.watz_cooler.name=Watz Reactor Supercooler -tile.watz_end.name=Watz Reactor Stability Element -tile.watz_hatch.name=Watz Reactor Access Hatch -tile.watz_conductor.name=Watz Electricity Port -tile.watz_core.name=Watz Reactor Control -container.watzPowerplant=Watz Power Plant - -tile.fwatz_conductor.name=4000K Superconducting Magnet -tile.fwatz_cooler.name=Regenerative Coolant Fluid Tank Shell -tile.fwatz_tank.name=Regenerative Coolant Fluid Tank -tile.fwatz_scaffold.name=Fusionary Watz Plant Structural Support -tile.fwatz_hatch.name=Fusionary Watz Plant Access Hatch -tile.fwatz_computer.name=Fusionary Watz Reactor Calculation Matrix -tile.fwatz_core.name=Fusionary Watz Reactor Control -tile.fwatz_plasma.name=Destabilized Antischrabidium Plasma -container.fusionaryWatzPlant=Fusionary Watz Plant - -tile.machine_rtg_grey.name=RT Generator -container.rtg=RT Generator -tile.machine_rtg_red.name=Fulmination Generator -tile.machine_rtg_orange.name=Strong RT Generator -tile.machine_rtg_yellow.name=Australium Superfuel Reactor -tile.machine_rtg_green.name=Verticium Wealth Generator -tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) -tile.machine_rtg_blue.name=Convection Generator -tile.machine_rtg_purple.name=Antimatter Annihilation Generator - -item.assembly_template.TEST.name=Assembly Template: Test -item.assembly_template.MIXED_PLATE.name=Assembly Template: Mixed Plate -item.assembly_template.HAZMAT_CLOTH.name=Assembly Template: Hazmat Cloth -item.assembly_template.ASBESTOS_CLOTH.name=Assembly Template: Fire Proximity Cloth -item.assembly_template.COAL_FILTER.name=Assembly Template: Activated Carbon Filter -item.assembly_template.CENTRIFUGE_ELEMENT.name=Assembly Template: Centrifuge Element -item.assembly_template.CENTRIFUGE_TOWER.name=Assembly Template: Centrifuge Tower -item.assembly_template.DEE_MAGNET.name=Assembly Template: Dee Magnets -item.assembly_template.FLAT_MAGNET.name=Assembly Template: Flat Magnet -item.assembly_template.CYCLOTRON_TOWER.name=Assembly Template: Cyclotron Tower -item.assembly_template.REACTOR_CORE.name=Assembly Template: Breeding Reactor Core -item.assembly_template.RTG_UNIT.name=Assembly Template: RTG Unit -item.assembly_template.HEAT_UNIT.name=Assembly Template: Thermal Distribution Unit -item.assembly_template.GRAVITY_UNIT.name=Assembly Template: Gravity Manipulator -item.assembly_template.TITANIUM_DRILL.name=Assembly Template: Titanium Drill -item.assembly_template.TELEPAD.name=Assembly Template: Telepad -item.assembly_template.TELEKIT.name=Assembly Template: Entanglement Kit -item.assembly_template.GEASS_REACTOR.name=Assembly Template: Dysfunctional Nuclear Reactor -item.assembly_template.GENERATOR_FRONT.name=Assembly Template: Generator Front -item.assembly_template.WT1_GENERIC.name=Assembly Template: Small Warhead -item.assembly_template.WT2_GENERIC.name=Assembly Template: Medium Warhead -item.assembly_template.WT3_GENERIC.name=Assembly Template: Large Warhead -item.assembly_template.WT1_FIRE.name=Assembly Template: Small Incendiary Warhead -item.assembly_template.WT2_FIRE.name=Assembly Template: Medium Incendiary Warhead -item.assembly_template.WT3_FIRE.name=Assembly Template: Large Incendiary Warhead -item.assembly_template.WT1_CLUSTER.name=Assembly Template: Small Cluster Warhead -item.assembly_template.WT2_CLUSTER.name=Assembly Template: Medium Cluster Warhead -item.assembly_template.WT3_CLUSTER.name=Assembly Template: Large Cluster Warhead -item.assembly_template.WT1_BUSTER.name=Assembly Template: Small Bunker Buster Warhead -item.assembly_template.WT2_BUSTER.name=Assembly Template: Medium Bunker Buster Warhead -item.assembly_template.WT3_BUSTER.name=Assembly Template: Large Bunker Buster Warhead -item.assembly_template.W_NUCLEAR.name=Assembly Template: Nuclear Warhead -item.assembly_template.W_MIRVLET.name=Assembly Template: MIRV -item.assembly_template.W_MIRV.name=Assembly Template: Eightfold MIRV Warhead -item.assembly_template.W_ENDOTHERMIC.name=Assembly Template: Endothermic Warhead -item.assembly_template.W_EXOTHERMIC.name=Assembly Template: Exothermic Warhead -item.assembly_template.T1_TANK.name=Assembly Template: Small Fuel Tank -item.assembly_template.T2_TANK.name=Assembly Template: Medium Fuel Tank -item.assembly_template.T3_TANK.name=Assembly Template: Large Fuel Tank -item.assembly_template.T1_THRUSTER.name=Assembly Template: Small Thruster -item.assembly_template.T2_THRUSTER.name=Assembly Template: Medium Thruster -item.assembly_template.T3_THRUSTER.name=Assembly Template: Large Thruster -item.assembly_template.CHOPPER_HEAD.name=Assembly Template: Hunter Chopper Cockpit -item.assembly_template.CHOPPER_GUN.name=Assembly Template: Emplacement Gun -item.assembly_template.CHOPPER_BODY.name=Assembly Template: Hunter Chopper Body -item.assembly_template.CHOPPER_TAIL.name=Assembly Template: Hunter Chopper Tail -item.assembly_template.CHOPPER_WING.name=Assembly Template: Hunter Chopper Wing -item.assembly_template.CHOPPER_BLADES.name=Assembly Template: Hunter Chopper Rotor Blades -item.assembly_template.CIRCUIT_2.name=Assembly Template: Enhanced Circuit -item.assembly_template.CIRCUIT_3.name=Assembly Template: Advanced Circuit -item.assembly_template.RTG_PELLET.name=Assembly Template: Plutonium 238 Fuel Pellet -item.assembly_template.WEAK_PELLET.name=Assembly Template: Weak Uranium RTG Pellet -item.assembly_template.FUSION_PELLET.name=Assembly Template: Tritium-Deuterium-Cake -item.assembly_template.CLUSTER_PELLETS.name=Assembly Template: Explosive Pellets -item.assembly_template.GUN_PELLETS.name=Assembly Template: Lead Pellets - -item.fuse.name=Fuse - -tile.test_nuke.name=Test Nuke - -item.ingot_uranium.name=Uranium Ingot -item.ingot_u235.name=U235 Ingot -item.ingot_u238.name=U238 Ingot -item.ingot_plutonium.name=Plutonium Ingot -item.ingot_pu238.name=Pu238 Ingot -item.ingot_pu239.name=Pu239 Ingot -item.ingot_pu240.name=Pu240 Ingot -item.ingot_titanium.name=Titanium Ingot -item.sulfur.name=Sulfur - -item.niter.name=Niter -item.ingot_copper.name=Industrial Grade Copper -item.ingot_red_copper.name=Minecraft Grade Copper -item.ingot_tungsten.name=Tungsten Ingot -item.ingot_aluminium.name=Aluminium Ingot -item.fluorite.name=Fluorite -item.ingot_steel.name=Steel Ingot -item.plate_steel.name=Steel Plate -item.ingot_beryllium.name=Beryllium Ingot -item.plate_schrabidium.name=Schrabidium Plate -item.ingot_schrabidium.name=Schrabidium Ingot -item.nugget_schrabidium.name=Schrabidium Nugget -item.plate_copper.name=Copper Plate -item.board_copper.name=Copper Panel -item.ingot_advanced_alloy.name=Advanced Alloy Ingot -item.plate_advanced_alloy.name=Advanced Alloy Plate -item.wire_advanced_alloy.name=Super Conductor -item.coil_advanced_alloy.name=Super Conducting Coil -item.coil_advanced_torus.name=Super Conducting Ring Coil -item.coil_gold.name=Gold Coil -item.coil_gold_torus.name=Golden Ring Coil -item.lithium.name=Lithium Cube -item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot -item.ingot_combine_steel.name=CMB Steel Ingot -item.plate_combine_steel.name=CMB Steel Plate -item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor -item.coil_magnetized_tungsten.name=4000K High Temperature Super Conducting Coil -item.plate_mixed.name=Mixed Plate -item.plate_paa.name=PaA Alloy Plate -item.ingot_dura_steel.name=High-Speed Steel Ingot -item.ingot_polymer.name=Polymer Ingot -item.bolt_dura_steel.name=High-Speed Steel Bolt -item.pipes_steel.name=Steel Pipes -item.drill_titanium.name=Titanium Drill - -item.ingot_australium.name=Australium Ingot -item.ingot_weidanium.name=Weidanium Ingot -item.ingot_reiium.name=Reiium Ingot -item.ingot_unobtainium.name=Unobtainium Ingot -item.ingot_daffergon.name=Daffergon Ingot -item.ingot_verticium.name=Verticium Ingot -item.nugget_australium.name=Australium Nugget -item.nugget_weidanium.name=Weidanium Nugget -item.nugget_reiium.name=Reiium Nugget -item.nugget_unobtainium.name=Unobtainium Nugget -item.nugget_daffergon.name=Daffergon Nugget -item.nugget_verticium.name=Verticium Nugget - -item.ingot_desh.name=Desh Ingot -item.nugget_desh.name=Desh Nugget -item.powder_desh.name=Desh Powder - -item.nugget_u235.name=U235 Nugget -item.nugget_u238.name=U238 Nugget -item.nugget_pu238.name=Pu238 Nugget -item.nugget_pu239.name=Pu239 Nugget -item.nugget_pu240.name=Pu240 Nugget -item.plate_titanium.name=Titanium Plate -item.plate_aluminium.name=Aluminium Plate -item.wire_red_copper.name=Red Copper Wire -item.neutron_reflector.name=Neutron Reflector -item.nugget_beryllium.name=Beryllium Nugget - -item.wire_aluminium.name=Aluminium Wire -item.wire_copper.name=Copper Wire -item.wire_gold.name=Gold Wire -item.wire_schrabidium.name=Schrabidium Wire - -item.circuit_aluminium.name=Basic Circuit -item.circuit_copper.name=Enhanced Circuit -item.circuit_red_copper.name=Advanved Circuit -item.circuit_gold.name=Overclocked Circuit -item.circuit_schrabidium.name=High Performance Circuit - -tile.block_aluminium.name=Block of Aluminium -tile.block_copper.name=Block of Copper -tile.block_fluorite.name=Block of Fluorite -tile.block_niter.name=Block of Niter -tile.block_red_copper.name=Block of Red Copper -tile.block_steel.name=Block of Steel -tile.block_sulfur.name=Block of Sulfur -tile.block_titanium.name=Block of Titanium -tile.block_tungsten.name=Block of Tungsten -tile.block_uranium.name=Block of Uranium -tile.block_trinitite.name=Block of Trinitite -tile.block_beryllium.name=Block of Beryllium -tile.block_waste.name=Block of Nuclear Waste -tile.block_scrap.name=Block of Scrap -tile.block_electrical_scrap.name=Block of Electrical Scrap -tile.block_advanced_alloy.name=Block of Advanced Alloy -tile.block_magnetized_tungsten.name=Block of Magnetized Tungsten -tile.block_combine_steel.name=Block of CMB Steel -tile.block_australium.name=Block of Australium -tile.block_weidanium.name=Block of Weidanium -tile.block_reiium.name=Block of Reiium -tile.block_unobtainium.name=Block of Unobtainium -tile.block_daffergon.name=Block of Daffergon -tile.block_verticium.name=Block of Verticium -tile.block_desh.name=Reinfoced Block of Desh - -tile.ore_aluminium.name=Aluminium Ore -tile.ore_copper.name=Copper Ore -tile.ore_fluorite.name=Fluorite Ore -tile.ore_niter.name=Niter Ore -tile.ore_sulfur.name=Sulfur Ore -tile.ore_titanium.name=Titanium Ore -tile.ore_tungsten.name=Tungsten Ore -tile.ore_uranium.name=Uranium Ore -tile.ore_schrabidium.name=Schrabidium Ore -tile.ore_beryllium.name=Beryllium Ore - -tile.ore_nether_uranium.name=Nether Uranium Ore -tile.ore_nether_plutonium.name=Nether Plutonium Ore -tile.ore_nether_tungsten.name=Nether Tungsten Ore -tile.ore_nether_sulfur.name=Nether Sulfur Ore -tile.ore_nether_fire.name=Fire Ore -tile.ore_nether_schrabidium.name=Nether Schrabidium Ore - -tile.ore_australium.name=Australian Ore -tile.ore_weidanium.name=Weidite -tile.ore_reiium.name=Reiite -tile.ore_unobtainium.name=Brightblende Ore -tile.ore_daffergon.name=Dellite -tile.ore_verticium.name=Dollar Green Mineral - -tile.ore_oil.name=Oil Deposit -tile.ore_oil_empty.name=Empty Oil Deposit - -tile.reinforced_brick.name=Reinforced Stone -tile.reinforced_glass.name=Reinforced Glass -tile.reinforced_sand.name=Reinforced Sandstone -tile.reinforced_light.name=Reinforced Glowstone -tile.reinforced_lamp_off.name=Reinforced Lamp -tile.reinforced_lamp_on.name=Reinforced Lamp - -tile.brick_concrete.name=Concrete Bricks -tile.brick_obsidian.name=Obsidian Bricks -tile.brick_light.name=Light Bricks -tile.asphalt.name=Asphalt - -tile.cmb_brick.name=CMB Steel Tile -tile.cmb_brick_reinforced.name=Reinforced CMB Bricks - -tile.gravel_obsidian.name=Crushed Obsidian - -tile.seal_frame.name=Silo Hatch Frame -tile.seal_controller.name=Silo Hatch Opener -tile.seal_hatch.name=Silo Hatch - -item.nugget_uranium.name=Uranium Nugget -item.nugget_plutonium.name=Plutonium Nugget -item.nugget_neptunium.name=Neptunium Nugget -item.ingot_neptunium.name=Neptunium Ingot -item.nugget_lead.name=Lead Nugget -item.ingot_lead.name=Lead Ingot -tile.block_lead.name=Block of Lead -tile.ore_lead.name=Lead Ore - -item.powder_lead.name=Lead Powder -item.powder_neptunium.name=Neptunium Powder -item.powder_schrabidium.name=Schrabidium Powder -item.powder_iron.name=Iron Powder -item.powder_gold.name=Gold Powder -item.powder_aluminium.name=Aluminium Powder -item.powder_beryllium.name=Beryllium Powder -item.powder_copper.name=Copper Powder -item.powder_titanium.name=Titanium Powder -item.powder_tungsten.name=Tungsten Powder -item.powder_uranium.name=Uranium Powder -item.powder_plutonium.name=Plutonium Powder -item.dust.name=Dust -item.powder_coal.name=Coal Powder -item.powder_lapis.name=Lapis Lazuli Powder -item.powder_emerald.name=Emerald Powder -item.powder_diamond.name=Diamond Powder -item.powder_red_copper.name=Red Copper Powder -item.powder_steel.name=Steel Powder -item.powder_magnetized_tungsten.name=Magnetized Tungsten Powder -item.powder_combine_steel.name=CMB Steel Powder -item.powder_lithium.name=Lithium Powder -item.powder_advanced_alloy.name=Advanced Alloy Powder -item.powder_quartz.name=Quartz Powder -item.powder_power.name=Energy Powder -item.powder_iodine.name=Iodine Powder -item.powder_thorium.name=Thorium Powder -item.powder_neodymium.name=Neodymium Powder -item.powder_astatine.name=Astatine Powder -item.powder_caesium.name=Caesium Powder -item.powder_australium.name=Australium Powder -item.powder_weidanium.name=Weidanium Powder -item.powder_reiium.name=Reiium Powder -item.powder_unobtainium.name=Unobtainium Powder -item.powder_daffergon.name=Daffergon Powder -item.powder_verticium.name=Verticium Powder -item.powder_strontium.name=Strontium Powder -item.powder_cobalt.name=Cobalt Powder -item.powder_bromine.name=Bromine Powder -item.powder_niobium.name=Niobium Powder -item.powder_tennessine.name=Tennessine Powder -item.powder_cerium.name=Cerium Powder -item.powder_dura_steel.name=High-Speed Steel Powder -item.powder_polymer.name=Polymer Powder -item.powder_lanthanium.name=Lanthanium Powder -item.powder_actinium.name=Actinium Powder -item.powder_lithium_tiny.name=Tiny Pile of Lithium Powder -item.powder_cobalt_tiny.name=Tiny Pile of Cobalt Powder - -item.battery_generic.name=Battery -item.battery_advanced.name=Advanced Battery -item.battery_lithium.name=Lithium-Ion Battery -item.battery_schrabidium.name=Schrabidium Battery -item.battery_creative.name=Infinite Battery - -item.battery_red_cell.name=Redstone Power Cell -item.battery_advanced_cell.name=Advanced Power Cell -item.battery_lithium_cell.name=Lithium-Ion Power Cell -item.battery_schrabidium_cell.name=Schrabidium Power Cell -item.battery_red_cell_6.name=Sixfold Redstone Power Cell -item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell -item.battery_lithium_cell_3.name=Tripple Lithium-Ion Power Cell -item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell -item.battery_red_cell_24.name=24-Fold Redstone Power Cell -item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell -item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell -item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell - -item.upgrade_template.name=Machine Upgrade Piece Template -item.upgrade_speed_1.name=Red Machine Upgrade Mk.I -item.upgrade_speed_2.name=Red Machine Upgrade Mk.II -item.upgrade_speed_3.name=Red Machine Upgrade Mk.III -item.upgrade_effect_1.name=Green Machine Upgrade Mk.I -item.upgrade_effect_2.name=Green Machine Upgrade Mk.II -item.upgrade_effect_3.name=Green Machine Upgrade Mk.III -item.upgrade_power_1.name=Blue Machine Upgrade Mk.I -item.upgrade_power_2.name=Blue Machine Upgrade Mk.II -item.upgrade_power_3.name=Blue Machine Upgrade Mk.III -item.upgrade_fortune_1.name=Purple Machine Upgrade Mk.I -item.upgrade_fortune_2.name=Purple Machine Upgrade Mk.II -item.upgrade_fortune_3.name=Purple Machine Upgrade Mk.III - -item.fusion_core.name=Fusion Core -item.energy_core.name=Makeshift Energy Core - -item.plate_iron.name=Iron Plate -item.plate_lead.name=Lead Plate -item.coil_copper.name=Copper Coil -item.coil_copper_torus.name=Ring Coil -item.wire_tungsten.name=Tungsten Wire -item.coil_tungsten.name=Heating Coil -item.tank_steel.name=Steel Tank -item.motor.name=Motor -item.centrifuge_element.name=Centrifuge Element -item.centrifuge_tower.name=Centrifuge Tower -item.reactor_core.name=Breeding Reactor Core -item.pellet_rtg.name=Plutonium 238 Fuel Pellet -item.pellet_rtg_weak.name=Weak Uranium RTG Pellet -item.rtg_unit.name=RTG Unit -item.hazmat_cloth.name=Hazmat Cloth -item.asbestos_cloth.name=Fire Proximity Cloth -item.filter_coal.name=Activated Carbon Filter -item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake -item.telepad.name=Telepad -item.entanglement_kit.name=Entanglement Kit -item.toothpicks.name=Toothpicks -item.ducttape.name=Duct Tape -item.magnet_dee.name=Dee Magnets -item.magnet_circular.name=Flat Magnet -item.cyclotron_tower.name=Cyclotron Tower -item.plate_dalekanium.name=Angry Metal - -item.cell_empty.name=Empty Cell -item.cell_uf6.name=Uranium Hexafluorite Cell -item.cell_puf6.name=Plutonium Hexafluorite Cell -item.cell_antimatter.name=Antimatter Cell -item.cell_deuterium.name=Deuterium Cell -item.cell_tritium.name=Tritium Cell -item.cell_sas3.name=Schrabidium Trisulfide Cell -item.cell_anti_schrabidium.name=Antischrabidium Cell -item.singularity.name=Singularity -item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity -item.singularity_super_heated.name=Superheated Resonating Singularity -item.black_hole.name=Miniature Black Hole -item.crystal_xen.name=Artificial Xen Crystal - -item.inf_water.name=Infinite Water Tank -item.inf_deuterium.name=Infinite Deuterium Tank -item.inf_tritium.name=Infinite Tritium Tank -item.inf_coolant.name=Infinite Coolant Tank -item.inf_sulfur.name=Infinite Sulfur Tank -item.inf_diesel.name=Infinite Diesel Tank -item.inf_antimatter.name=Infinite Antimatter Tank -item.inf_antischrabidium.name=Infinite Antischrabidium Tank - -item.oil_canola.name=Raw Canola Oil - -item.canister_empty.name=Empty Canister -item.canister_smear.name=Industrial Oil Canister -item.canister_canola.name=Engine Lubricant -item.canister_oil.name=Crude Oil Canister -item.canister_fuel.name=Fuel Canister -item.canister_kerosene.name=Kerosene Canister -item.canister_reoil.name=Canister of Reclaimed Industrial Oil -item.canister_petroil.name=Petroil Canister -item.canister_napalm.name=Napalm B -item.canister_NITAN.name=NITAN© 100 Octane Super Fuel -item.gas_empty.name=Empty Gas Tank -item.gas_full.name=Gas Tank - -item.rod_empty.name=Emty Rod -item.rod_uranium.name=Uranium Rod -item.rod_u235.name=U235 Rod -item.rod_u238.name=U238 Rod -item.rod_plutonium.name=Plutonium Rod -item.rod_pu238.name=Pu238 Rod -item.rod_pu239.name=Pu239 Rod -item.rod_pu240.name=Pu240 Rod -item.rod_neptunium.name=Neptunium Rod -item.rod_lead.name=Lead Rod -item.rod_schrabidium.name=Schrabidium Rod -item.rod_astatine.name=Euphemium Rod -item.rod_australium.name=Australium Rod -item.rod_weidanium.name=Weidanium Rod -item.rod_reiium.name=Reiium Rod -item.rod_unobtainium.name=Unobtainium Rod -item.rod_daffergon.name=Daffergon Rod -item.rod_verticium.name=Verticium Rod - -item.rod_dual_empty.name=Emty Dual Rod -item.rod_dual_uranium.name=Uranium Dual Fl Rod -item.rod_dual_u235.name=U235 Dual Rod -item.rod_dual_u238.name=U238 Dual Rod -item.rod_dual_plutonium.name=Plutonium Dual Rod -item.rod_dual_pu238.name=Pu238 Dual Rod -item.rod_dual_pu239.name=Pu239 Dual Rod -item.rod_dual_pu240.name=Pu240 Dual Rod -item.rod_dual_neptunium.name=Neptunium Dual Rod -item.rod_dual_lead.name=Lead Dual Rod -item.rod_dual_schrabidium.name=Schrabidium Dual Rod - -item.rod_quad_empty.name=Emty Quad Rod -item.rod_quad_uranium.name=Uranium Quad Rod -item.rod_quad_u235.name=U235 Quad Rod -item.rod_quad_u238.name=U238 Quad Rod -item.rod_quad_plutonium.name=Plutonium Quad Rod -item.rod_quad_pu238.name=Pu238 Quad Rod -item.rod_quad_pu239.name=Pu239 Quad Rod -item.rod_quad_pu240.name=Pu240 Quad Rod -item.rod_quad_neptunium.name=Neptunium Quad Rod -item.rod_quad_lead.name=Lead Quad Rod -item.rod_quad_schrabidium.name=Schrabidium Quad Rod - -item.rod_uranium_fuel_depleted.name=Depleted Uranium Fuel Rod -item.rod_dual_uranium_fuel_depleted.name=Depleted Uranium Dual Fuel Rod -item.rod_quad_uranium_fuel_depleted.name=Depleted Uranium Quad Fuel Rod -item.rod_plutonium_fuel_depleted.name=Depleted Plutonium Fuel Rod -item.rod_dual_plutonium_fuel_depleted.name=Depleted Plutonium Dual Fuel Rod -item.rod_quad_plutonium_fuel_depleted.name=Depleted Plutonium Quad Fuel Rod -item.rod_mox_fuel_depleted.name=Depleted MOX Fuel Rod -item.rod_dual_mox_fuel_depleted.name=Depleted MOX Dual Fuel Rod -item.rod_quad_mox_fuel_depleted.name=Depleted MOX Quad Fuel Rod -item.rod_schrabidium_fuel_depleted.name=Depleted Schrabidium Fuel Rod -item.rod_dual_schrabidium_fuel_depleted.name=Depleted Schrabidium Dual Fuel Rod -item.rod_quad_schrabidium_fuel_depleted.name=Depleted Schrabidium Quad Fuel Rod - -item.rod_waste.name=Nuclear Waste Rod -item.rod_dual_waste.name=Nuclear Waste Dual Rod -item.rod_quad_waste.name=Nuclear Waste Quad Rod - -item.gun_rpg.name=Rocket Launcher -item.gun_rpg_ammo.name=Rocket - -item.flame_pony.name=Painting of a Cartoon Pony -item.flame_conspiracy.name=Conspiracy Theory -item.flame_politics.name=Political Topic -item.flame_opinion.name=Own Opinion - -item.pellet_cluster.name=Explosive Pellets -item.pellet_buckshot.name=Lead Pellets -item.powder_fire.name=Flame Powder -item.powder_ice.name=Cryo Powder -item.powder_poison.name=Poison Powder -item.pellet_gas.name=Poison Gas Cartridge -item.magnetron.name=Magnetron -item.powder_thermite.name=Thermite - -item.nuke_starter_kit.name=Atomic Science Starter Kit -item.nuke_commercially_kit.name=Atomic Science Kit for Commercial Uses -item.nuke_advanced_kit.name=Atomic Science Advanced Kit -item.gadget_kit.name=The Gadget Kit -item.boy_kit.name=Little Boy Kit -item.man_kit.name=Fat Man Kit -item.mike_kit.name=Ivy Mike Kit -item.tsar_kit.name=Tsar Bomba Kit -item.fleija_kit.name=F.L.E.I.J.A. Kit -item.multi_kit.name=Multi Purpose Bomb Kit -item.grenade_kit.name=Grenade Kit -item.nuke_electric_kit.name=Electronic Engineer's Kit -item.prototype_kit.name=Prototype Kit -item.missile_kit.name=Missile Kit -item.t45_kit.name=T45 Power Armor Kit -item.euphemium_kit.name=Euphemium Kit - -tile.waste_earth.name=Dead Grass -tile.waste_trinitite.name=Trinitite Ore -tile.waste_trinitite_red.name=Red Trinitite Ore -tile.waste_log.name=Charred Log -tile.waste_planks.name=Charred Wooden Planks - -item.trinitite.name=Trinitite -item.nuclear_waste.name=Nuclear Waste -item.scrap.name=Scrap - -item.ingot_uranium_fuel.name=Ingot of Uranium Fuel -item.ingot_plutonium_fuel.name=Ingot of Plutonium Fuel -item.ingot_mox_fuel.name=Ingot of MOX Fuel -item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel - -item.nugget_uranium_fuel.name=Nugget of Uranium Fuel -item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel -item.nugget_mox_fuel.name=Nugget of MOX Fuel -item.nugget_schrabidium_fuel.name=Nugget of Schrabidium Fuel - -item.grenade_generic.name=Grenade -item.grenade_strong.name=Enhanced Grenade -item.grenade_frag.name=Frag Grenade -item.grenade_fire.name=Flame Frag Grenade -item.grenade_shrapnel.name=Shrapnel Grenade -item.grenade_cluster.name=Cluster Bomb -item.grenade_flare.name=Flare Grenade -item.grenade_electric.name=Lightning Bomb -item.grenade_poison.name=Poison Grenade -item.grenade_gas.name=Gas Grenade -item.grenade_pulse.name=Impulse Grenade -item.grenade_plasma.name=Plasma Grenade -item.grenade_tau.name=Tau Grenade -item.grenade_schrabidium.name=Schrabidium Grenade -item.grenade_lemon.name=Combustible Lemon -item.grenade_mk2.name=Mk 2 Grenade "Ambassador Pineapple" -item.grenade_aschrab.name=Tossable Antischrabidium Cell -item.grenade_nuke.name=Mark VI Drill Grenade -item.grenade_nuclear.name=Nuka Grenade -item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade -item.grenade_black_hole.name=Black Hole Grenade -item.ullapool_caber.name=Ullapool Caber - -item.rod_uranium_fuel.name=Uranium Fuel Rod -item.rod_dual_uranium_fuel.name=Uranium Dual Fuel Rod -item.rod_quad_uranium_fuel.name=Uranium Quad Fuel Rod -item.rod_plutonium_fuel.name=Plutonium Fuel Rod -item.rod_dual_plutonium_fuel.name=Plutonium Dual Fuel Rod -item.rod_quad_plutonium_fuel.name=Plutonium Quad Fuel Rod -item.rod_mox_fuel.name=MOX Fuel Rod -item.rod_dual_mox_fuel.name=MOX Dual Fuel Rod -item.rod_quad_mox_fuel.name=MOX Quad Fuel Rod -item.rod_schrabidium_fuel.name=Schrabidium Fuel Rod -item.rod_dual_schrabidium_fuel.name=Schrabidium Dual Fuel Rod -item.rod_quad_schrabidium_fuel.name=Schrabidium Quad Fuel Rod - -item.rod_water.name=Water Cell -item.rod_dual_water.name=Dual Water Cell -item.rod_quad_water.name=Quad Water Cell - -item.rod_coolant.name=Coolant Cell -item.rod_dual_coolant.name=Dual Coolant Cell -item.rod_quad_coolant.name=Quad Coolant Cell - -item.rod_lithium.name=Lithium Rod -item.rod_dual_lithium.name=Dual Lithium Rod -item.rod_quad_lithium.name=Quad Lithium Rod - -item.rod_tritium.name=Tritium Cell -item.rod_dual_tritium.name=Dual Tritium Cell -item.rod_quad_tritium.name=Quad Tritium Cell - -item.levitation_unit.name=Gravity Manipulator -item.thermo_unit_empty.name=Thermic Distribution Unit -item.thermo_unit_endo.name=Coldness Distribution Unit -item.thermo_unit_exo.name=Heat Distribution Unit - -item.bomb_waffle.name=Waffle of Mass Destruction -item.schnitzel_vegan.name=Vegan Schnitzel -item.apple_schrabidium.name=Schrabidium Apple -item.cotton_candy.name=Radioactive Cotton Candy -item.tem_flakes.name=Tem Flakes -item.glowing_stew.name=Glowing Mushroom Stew -item.lemon.name="Lemon" - -tile.frozen_grass.name=Frozen Grass -tile.frozen_dirt.name=Frozen Dirt -tile.frozen_log.name=Frozen Log -tile.frozen_planks.name=Frozen Planks - -tile.tape_recorder.name=Tape Recorder -tile.steel_poles.name=Steel Pole -tile.pole_top.name=Antenna Top -tile.pole_satellite_receiver.name=Satellite Receiver -tile.steel_wall.name=Steel Wall -tile.steel_corner.name=Steel Wall Corner -tile.steel_roof.name=Flat Steel Roof -tile.steel_beam.name=Steel Beam -tile.steel_scaffold.name=Steel Scaffold - -item.gun_revolver_iron.name=Simple Revolver -item.gun_revolver.name=Enhanced Revolver -item.gun_revolver_gold.name=Golden Revolver -item.gun_revolver_lead.name=Nuka Revolver -item.gun_revolver_schrabidium.name=Schrabidium Revolver -item.gun_revolver_cursed.name=Cursed Revolver -item.gun_revolver_nightmare.name=Nightmare Revolver (Original) -item.gun_revolver_nightmare2.name=Nightmare Revolver (Dark) -item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" -item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" -item.gun_bf.name=M42_2 Nuclear Catapult "Antimatter Launcher" -item.gun_mp40.name=Submachine Gun -item.gun_uboinik.name=Uboinik -item.gun_xvl1456.name=XVL1456 Tau Cannon Prototype -item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle -item.gun_immolator.name=The Immolator -item.gun_cryolator.name=The Cryolator -item.gun_mp.name=Pacifist's Machine Gun -item.gun_zomg.name=Singularity Powered Annihilation Ray "ZOMG Cannon" -item.gun_emp.name=EMP Ray -item.gun_super_shotgun.name=Super Shotgun -item.gun_moist_nugget.name=Mosin-Nagant -item.gun_revolver_inverted.name=Flipped Revolver -item.gun_jack.name=Jackhammer -item.gun_spark.name=Spark Plug -item.gun_hp.name=HPP Lazerjet -item.gun_euthanasia.name=Euthanasia -item.gun_defabricator.name=Defabricator - -item.gun_revolver_iron_ammo.name=Bullet -item.gun_revolver_ammo.name=Lead Bullet -item.gun_revolver_gold_ammo.name=Golden Bullet -item.gun_revolver_lead_ammo.name=Glass Covered Nuclear Bullet -item.gun_revolver_schrabidium_ammo.name=Schrabidium Bullet -item.gun_revolver_cursed_ammo.name=Steel Bullet -item.gun_revolver_nightmare_ammo.name=Nightmare Bullet -item.gun_revolver_nightmare2_ammo.name=Laser Buckshot -item.gun_fatman_ammo.name=Mini Nuke -item.gun_mirv_ammo.name=Eightfold MIRV -item.gun_bf_ammo.name=Mk.V Compact AMAT-Artillery Shell - Type B.F. -item.gun_mp40_ammo.name=Submachine Gun Round -item.gun_uboinik_ammo.name=12x70 Buckshot -item.gun_xvl1456_ammo.name=Depleted Uranium-235 Box -item.gun_osipr_ammo.name=Dark Energy Pulse Plug -item.gun_osipr_ammo2.name=Combine Ball -item.gun_immolator_ammo.name=Immolator Fuel -item.gun_cryolator_ammo.name=Cryo Cell -item.gun_mp_ammo.name=Small Propellantless Machine Gun Round -item.gun_emp_ammo.name=Energy Cell -item.gun_jack_ammo.name=Quadruple Shotgun Shell -item.gun_spark_ammo.name=Electromagnetic Cartridge -item.gun_hp_ammo.name=Ink Cartridge -item.gun_euthanasia_ammo.name=Syringe -item.gun_defabricator_ammo.name=Defabricator Energy Cell - -item.clip_revolver_iron.name=Box of Iron Rounds -item.clip_revolver.name=Box of .357 Rounds -item.clip_revolver_gold.name=Small Coffer of Golden Bullets -item.clip_revolver_schrabidium.name=Schrabidium Ammo Container -item.clip_rpg.name=Rocket Container -item.clip_xvl1456.name=Large Isotope Box -item.clip_osipr.name=AR2 Magazine -item.clip_immolator.name=Tank of Immolator Fuel -item.clip_cryolator.name=Tank of Cryolator Fuel -item.clip_revolver_lead.name=Box of Nuclear Bullets -item.clip_revolver_cursed.name=Britannia Military Standard Issue Pisol Magazine -item.clip_fatman.name=Six Pack of Mini Nukes -item.clip_mirv.name=Three-In-One Pack of Mini MIRVs -item.clip_bf.name=BF-Shell Double Pack -item.clip_mp.name=Britannia Military Standard Issue Assult Rifle Magazine -item.clip_mp40.name=9mm SMG Magazine -item.clip_uboinik.name=Box of Buckshot Rounds -item.clip_emp.name=Small Pack of Energy Cells -item.clip_revolver_nightmare.name=Bag of Bullets -item.clip_revolver_nightmare2.name=Belt with Laser Buckshot - -tile.block_schrabidium.name=Block of Schrabidium -item.plate_gold.name=Gold Plate - -item.syringe_empty.name=Empty Syringe -item.syringe_antidote.name=Antidote -item.syringe_poison.name=Poisonous Injection -item.syringe_awesome.name=AWESOME -item.syringe_metal_empty.name=Metal Syringe -item.syringe_metal_stimpak.name=Stimpak -item.syringe_metal_medx.name=Med-X -item.syringe_metal_psycho.name=Psycho -item.pill_iodine.name=Iodine Pill -item.plan_c.name=Plan C - -item.stealth_boy.name=Stealth Device - -entity.hbm.entity_bullet.name=Bullet -entity.hbm.entity_rocket.name=Rocket -entity.hbm.entity_schrabnel.name=Schrabnel -entity.entity_mob_nuclear_creeper.name=Nuclear Creeper -entity.entity_mob_hunter_chopper.name=Hunter ChopperCreeper -entity.entity_cyber_crab.name=Cyber Crab - -item.cap_aluminium.name=Aluminium Cap -item.hull_small_steel.name=Small Steel Shell -item.hull_small_aluminium.name=Small Aluminium Shell -item.hull_big_steel.name=Big Steel Shell -item.hull_big_aluminium.name=Big Aluminium Shell -item.hull_big_titanium.name=Big Titanium Shell -item.fins_flat.name=Flat Steel Casing -item.fins_small_steel.name=Small Steel Grid Fins -item.fins_big_steel.name=Big Steel Grid Fins -item.fins_tri_steel.name=Large Steel Fins -item.fins_quad_titanium.name=Small Titanium Fins -item.sphere_steel.name=Steel Sphere -item.pedestal_steel.name=Steel Pedestal -item.dysfunctional_reactor.name=Dysfunctional Nuclear Reactor - -item.rotor_steel.name=Large Steel Rotor -item.generator_steel.name=Generator Body -item.blade_titanium.name=Titanium Blade -item.turbine_titanium.name=Titanium Steam Turbine -item.generator_front.name=Generator Front - -item.combine_scrap.name=CMB Scrap Metal -item.chopper_head.name=Hunter Chopper Cockpit -item.chopper_gun.name=Emplacement Gun -item.chopper_torso.name=Hunter Chopper Body -item.chopper_tail.name=Hunter Chopper Tail -item.chopper_wing.name=Hunter Chopper Wing -item.chopper_blades.name=Hunter Chopper Rotor Blades - -item.igniter.name=Igniter -item.watch.name=Broken Pocket Watch -item.apple_astatine.name=Euphemium Apple -item.ingot_astatine.name=Euphemium Ingot -item.nugget_astatine.name=Euphemium Nugget -item.rod_quad_astatine.name=Burned Out Quad Schrabidium Fuel Rod - -item.astatine_helmet.name=Euphemium Helemt -item.astatine_plate.name=Euphemium Chestplate -item.astatine_legs.name=Euphemium Leggings -item.astatine_boots.name=Euphemiums Boots - -item.schrabidium_helmet.name=Schrabidium Helmet -item.schrabidium_plate.name=Schrabidium Chestpate -item.schrabidium_legs.name=Schrabidium Leggings -item.schrabidium_boots.name=Schrabidium Boots -item.schrabidium_sword.name=Schrabidium Sword -item.schrabidium_pickaxe.name=Schrabidium Pickaxe -item.schrabidium_axe.name=Schrabidium Axe -item.schrabidium_shovel.name=Schrabidium Shovel -item.schrabidium_hoe.name=Schrabidium Hoe - -item.chainsaw.name=Chainsaw -item.crowbar.name=Mk.V Crate Opening Device "Crowbar" - -item.mask_of_infamy.name=Mask of Infamy - -tile.det_cord.name=Det Cord -tile.det_charge.name=Explosive Charge -tile.red_barrel.name=Explosive Barrel -tile.yellow_barrel.name=Radioactive Barrel - -item.designator.name=Short Range Target Designator -item.designator_range.name=Long Range Target Designator -item.missile_generic.name=High Explosive Missile -item.missile_anti_ballistic.name=Anti Ballistic Missile (WIP) -item.missile_incendiary.name=Incendiary Missile -item.missile_cluster.name=Cluster Missile -item.missile_buster.name=Bunker Buster -item.missile_strong.name=Strong HE Missile -item.missile_incendiary_strong.name=Strong Incendiary Missile -item.missile_cluster_strong.name=Strong Cluster Missile -item.missile_buster_strong.name=Enhanced Bunker Buster -item.missile_burst.name=Spare Missile -item.missile_inferno.name=Inferno Missile G.R.N. Mk.II -item.missile_rain.name=Bomblet Rain -item.missile_drill.name=The Concrete Cracker -item.missile_nuclear.name=Nuclear Missile -item.missile_nuclear_cluster.name=Nuclear MIRV Missile -item.missile_endo.name=Endothermic Missile -item.missile_exo.name=Exothermic Missile - -item.hazmat_helmet.name=Hazmat Helmet -item.hazmat_plate.name=Hazmat Chestplate -item.hazmat_legs.name=Hazmat Leggings -item.hazmat_boots.name=Hazmat Boots -item.hazmat_paa_helmet.name=PaA Battle Hazmat Suit Helmet -item.hazmat_paa_plate.name=PaA Battle Hazmat Suit Chestplate -item.hazmat_paa_legs.name=PaA Battle Hazmat Suit Leggings -item.hazmat_paa_boots.name=PaA Battle Hazmat Suit Boots -item.asbestos_helmet.name=Fire Proximity Helmet -item.asbestos_plate.name=Fire Proximity Chestplate -item.asbestos_legs.name=Fire Proximity Leggings -item.asbestos_boots.name=Fire Proximity Boots - -item.paa_plate.name=PaA Chest Protection Plate -item.paa_legs.name=PaA Leg Reinforcements -item.paa_boots.name=PaA "good ol' shoes" - -item.goggles.name=Protection Goggles -item.gas_mask.name=Gas Mask -item.oxy_mask.name=Oxygen Mask -item.t45_helmet.name=T45 Power Armor Helmet -item.t45_plate.name=T45 Power Armor Chestplate -item.t45_legs.name=T45 Power Armor Leggings -item.t45_boots.name=T45 Power Armor Boots - -tile.mush.name=Glowing Mushroom -tile.waste_mycelium.name=Glowing Mycelium - -item.warhead_generic_small.name=Small Warhead -item.warhead_generic_medium.name=Medium Warhead -item.warhead_generic_large.name=Large Warhead -item.warhead_incendiary_small.name=Small Incendiary Warhead -item.warhead_incendiary_medium.name=Medium Incendiary Warhead -item.warhead_incendiary_large.name=Large Incendiary Warhead -item.warhead_cluster_small.name=Small Cluster Warhead -item.warhead_cluster_medium.name=Medium Cluster Warhead -item.warhead_cluster_large.name=Large Cluster Warhead -item.warhead_buster_small.name=Small Bunker Buster Warhead -item.warhead_buster_medium.name=Medium Bunker Buster Warhead -item.warhead_buster_large.name=Large Bunker Buster Warhead -item.warhead_nuclear.name=Nuclear Warhead -item.warhead_mirvlet.name=MIRV -item.warhead_mirv.name=Eightfold MIRV Warhead -item.warhead_thermo_endo.name=Endothermic Warhead -item.warhead_thermo_exo.name=Exothermic Warhead -item.fuel_tank_small.name=Small Fuel Tank -item.fuel_tank_medium.name=Medium Fuel Tank -item.fuel_tank_large.name=Large Fuel Tank -item.thruster_small.name=Small Thruster -item.thruster_medium.name=Medium Thruster -item.thruster_large.name=Large Thruster - -item.wand_k.name=Construction Wand -item.wand_s.name=Structure Wand -item.wand_d.name=Debug Wand - -item.screwdriver.name=Screwdriver -item.overfuse.name=Singularity Screwdriver - -item.steel_helmet.name=Steel Helmet -item.steel_plate.name=Steel Chestplate -item.steel_legs.name=Steel Leggings -item.steel_boots.name=Steel Boots -item.titanium_helmet.name=Titanium Helmet -item.titanium_plate.name=Titanium Chestplate -item.titanium_legs.name=Titanium Leggings -item.titanium_boots.name=Titanium Boots -item.alloy_helmet.name=Advanced Alloy Helmet -item.alloy_plate.name=Advanced Alloy Chestplate -item.alloy_legs.name=Advanced Alloy Leggings -item.alloy_boots.name=Advanced Alloy Boots -item.cmb_helmet.name=CMB Steel Helmet -item.cmb_plate.name=CMB Steel Chestplate -item.cmb_legs.name=CMB Steel Leggings -item.cmb_boots.name=CMB Steel Boots - -item.steel_sword.name=Steel Sword -item.steel_pickaxe.name=Steel Pickaxe -item.steel_axe.name=Steel Axe -item.steel_shovel.name=Steel Shovel -item.steel_hoe.name=Steel Hoe -item.titanium_sword.name=Titanium Sword -item.titanium_pickaxe.name=Titanium Pickaxe -item.titanium_axe.name=Titanium Axe -item.titanium_shovel.name=Titanium Shovel -item.titanium_hoe.name=Titanium Hoe -item.alloy_sword.name=Advanced Alloy Sword -item.alloy_pickaxe.name=Advanced Alloy Pickaxe -item.alloy_axe.name=Advanced Alloy Axe -item.alloy_shovel.name=Advanced Alloy Shovel -item.alloy_hoe.name=Advanced Alloy Hoe -item.cmb_sword.name=CMB Steel Sword -item.cmb_pickaxe.name=CMB Steel Pickaxe -item.cmb_axe.name=CMB Steel Axe -item.cmb_shovel.name=CMB Steel Shovel -item.cmb_hoe.name=CMB Steel Hoe -item.elec_sword.name=Stunstick -item.elec_pickaxe.name=Impact Drill -item.elec_axe.name=Electric Chainsaw -item.elec_shovel.name=Spiral Drill - -tile.red_cable.name=Red Copper Cable -tile.block_meteor.name=Meteor Block - -item.cape_radiation.name=Cape (Radiation) -item.cape_gasmask.name=Cape (Gas Mask) -item.cape_schrabidium.name=Cape (Schrabidic) -item.cape_hbm.name=Hbm's Cape -item.cape_dafnik.name=Dafnik's Cape -item.cape_lpkukin.name=LPkukin's Cape -item.cape_vertice.name=Lord Vertice's Cape - -tile.machine_converter_he_rf.name=HE to RF Converter -tile.machine_converter_rf_he.name=RF to HE Converter - -item.schrabidium_hammer.name=Schrabidium Hammer -item.euphemium_stopper.name=Stopper -item.matchstick.name=Matchstick -item.remote.name=Broken Remote - -item.redcoil_capacitor.name=Redcoil Capacitor -item.detonator.name=Detonator -item.crate_caller.name=Supply Drop Requester - -item.ingot_hes.name=Highly Enriched Schrabidium Fuel Ingot -item.ingot_les.name=Low Enriched Schrabidium Fuel Ingot -item.nugget_hes.name=Highly Enriched Schrabidium Fuel Nugget -item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget - -item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet -item.pellet_hes.name=HES Watz Pellet -item.pellet_mes.name=MES Watz Pellet -item.pellet_les.name=LES Watz Pellet -item.pellet_beryllium.name=Beryllium Moderator Pellet -item.pellet_neptunium.name=Neptunium Watz Pellet -item.pellet_lead.name=Lead Reflector Pellet -item.pellet_advanced.name=Advanced Watz Performance Improver - -item.titanium_filter.name=Titanium Filter - -tile.mud_block.name=Poisonous Mud -fluid.mud_fluid=Poisonous Mud -item.bucket_mud.name=Bucket of Poisonous Mud -tile.acid_block.name=Acid -fluid.acid_fluid=Acid -item.bucket_acid.name=Bucket of Acid -tile.toxic_block.name=Stereotypical Green Ooze -fluid.toxic_fluid=Stereotypical Green Ooze -item.bucket_toxic.name=Bucket of Stereotypical Green Ooze -item.tank_waste_0.name=Mud Container -item.tank_waste_1.name=Mud Container -item.tank_waste_2.name=Mud Container -item.tank_waste_3.name=Mud Container -item.tank_waste_4.name=Mud Container -item.tank_waste_5.name=Mud Container -item.tank_waste_6.name=Mud Container -item.tank_waste_7.name=Mud Container -item.tank_waste_8.name=Mud Container - -item.can_empty.name=Empty Can -item.can_smart.name='Smart' Energy Drink -item.can_creature.name='Creature' Energy Drink -item.can_redbomb.name='Red Bomb' Energy Drink -item.can_mrsugar.name='Dr. Sugar' Soft Drink -item.can_overcharge.name=Overcharge Delirium XT -item.bottle_empty.name=Empty Bomb-Shaped Bottle -item.bottle_nuka.name=Bottle of Nuka Cola -item.bottle_cherry.name=Bottle of Nuka Cherry -item.bottle_quantum.name=Bottle of Nuka Cola Quantum -item.bottle2_empty.name=Empty Bottle -item.bottle2_korl.name=Korl -item.bottle2_fritz.name=Fritz Cola -item.bottle2_korl_special.name=The First Korl -item.bottle2_fritz_special.name=The First Fritz Cola -item.chocolate_milk.name=Chocolate Milk -item.cap_nuka.name=Nuka Cola Bottle Cap -item.cap_quantum.name=Nuka Cola Quantum Bottle Cap -item.cap_korl.name=Korl Bottle Cap -item.cap_fritz.name=Fritz Cola Bottle Cap -item.ring_pull.name=Ring Pull - -item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener - -item.blades_aluminium.name=Aluminium Shredder Blades -item.blades_gold.name=Golden Shredder Blades -item.blades_iron.name=Iron Shredder Blades -item.blades_steel.name=Steel Shredder Blades -item.blades_titanium.name=Titanium Shredder Blades -item.blades_advanced_alloy.name=Advanced Shredder Blades -item.blades_combine_steel.name=CMB Shredder Blades -item.blades_schrabidium.name=Schrabidium Shredder Blades - -item.part_lithium.name=Box of Lithium Dust -item.part_beryllium.name=Box of Beryllium Dust -item.part_carbon.name=Box of Carbon Dust -item.part_copper.name=Box of Copper Dust -item.part_plutonium.name=Box of Plutonium Dust - -item.crystal_energy.name=Energy Crystal -item.pellet_coolant.name=Coolant Cluster - -item.linker.name=Telelinker -item.oil_detector.name=Oil Reservoir Detector - -item.thermo_element.name=Thermoelectric Element -item.limiter.name=Generator Limiter - -item.multitool_dig.name=Power Fist (Digging Claw) -item.multitool_silk.name=Power Fist (Silk Touch Claw) -item.multitool_ext.name=Power Fist (Ore Extracter) -item.multitool_miner.name=Power Fist (Extracting Mining Laser) -item.multitool_hit.name=Power Fist (Fist) -item.multitool_beam.name=Power Fist (Zapper) -item.multitool_sky.name=Power Fist (Crack the Sky) -item.multitool_mega.name=Power Fist (Super Punch) -item.multitool_joule.name=Power Fist (Giga Joule) -item.multitool_decon.name=Power Fist (Decontaminator) - -item.australium_iii.name=Mark III Life Extender -item.australium_iv.name=Mark IV Life Extender -item.australium_v.name=Mark V Life Extender - -item.weapon_saw.name=Doctor Assisted Homicide -item.weapon_bat.name=Richard's Default -item.weapon_bat_nail.name=The Cliché -item.weapon_golf_club.name=Russian Mobster's Club -item.weapon_pipe_rusty.name=The Attitude Adjuster -item.weapon_pipe_lead.name=The Manual Override -item.reer_graar.name=The Reer Graar - -item.letter.name=Express Mail -item.polaroid.name=The Polaroid -item.book_secret.name=3-596-50802-9 - -item.crystal_horn.name=Crystal Horn -item.crystal_charred.name=Charred Crystal -item.ingot_lanthanium.name=Semi-Stable Lanthanium Ingot -item.ingot_actinium.name=Semi-Stable Actinium Ingot - -tile.dummy_block.name=Dummy Block -tile.dummy_port.name=Dummy Block (Electricity Port) - -item.chopper.name=Hunter Chopper - -item.nothing.name=Nothing - -tile.crystal_virus.name=Dark Crystal -tile.crystal_hardened.name=Hardened Dark Crystal -tile.crystal_pulsar.name=Pulsating Crystal - -tile.cheater_virus.name=Gelid Euphemium -tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block diff --git a/src/main/resources/assets/hbm/lang/pl_PL.lang b/src/main/resources/assets/hbm/lang/pl_PL.lang new file mode 100644 index 000000000..3e5e63745 --- /dev/null +++ b/src/main/resources/assets/hbm/lang/pl_PL.lang @@ -0,0 +1,5444 @@ +achievement.acidizer.desc=ała moja skóra ;( +achievement.acidizer=Kwaśno +achievement.assembly.desc=Czekaj, to juÅŒ 1:00? +achievement.assembly=Fabryka się rozrasta +achievement.FOEQ.desc=Wyślij przekaźnik na marsjańską... Mam na myśli dunajską orbitę. +achievement.FOEQ=Pegazy i silosy rakietowe +achievement.breeding.desc=Dziękuję, niech Bóg cię błogosławi, i niech Bóg błogosławi Stany Zjednoczone. Albo i Polskę. W oryginalnym tłumaczeniu były Stany Zjednoczone, ale patriotyzm mówi mi, ÅŒeby pobłogosławił Polskę. +achievement.breeding=Ironiczne. +achievement.bismuth.desc=Pamiętasz, kiedy ludzie narzekali na to przez miesiąc? Ja pamiętam. +achievement.bismuth=Bizmut +achievement.blastFurnace.desc=Uratowali zatopiony pancernik dla Explorer 1. +achievement.blastFurnace=Węgiel i ÅŒelazo +achievement.bossCreeper.desc='Są atomowe creepery? Takie istnieją?!' +achievement.bossCreeper=Bomba na czterech nogach +achievement.bossMaskman.desc=Walnij duÅŒego chłopa. +achievement.bossMaskman=6 miesięcy obowiązkowej słuÅŒby i dostałem tylko marną koszulkę +achievement.bossMeltdown.desc=Bardziej okropne niÅŒ wspaniałe, ale biorę, co mogę. +achievement.bossMeltdown=3.6 Rentgenów +achievement.bossWorm.desc=Fabstaff. Moje dupsko. Wykonaj działanie. +achievement.bossWorm=DemontaÅŒ Jądro-Trona +achievement.bossUFO.desc=Joł, co my tu mamy? Ogromny statek kosmiczny zbliÅŒający się do statku blokowego? +achievement.bossUFO=Ayy Lmao +achievement.burnerPress.desc='Pressure pushing down on me, on you' +achievement.burnerPress=Pod ciśnieniem +achievement.c20_5.desc=??? +achievement.c20_5=Rozdział [DWADZIEŚCIA KOMA PIĘĆ] +achievement.c44.desc=Ocynkowany! Znaczy, cynk! +achievement.c44=Rozdział 44 +achievement.centrifuge.desc=siła odśrodkowa jest prawdziwa nie @ mnie +achievement.centrifuge=Siła odśrodkowa +achievement.chemplant.desc=Teraz myślisz chemikaliami! +achievement.chemplant=Fabryka się rozrasta: część 2 +achievement.chicagoPile.desc="Jak zachowywali się tubylcy?" / "Bardzo przyjaźnie." +achievement.chicagoPile=Nawigator wylądował w Nowym Świecie +achievement.concrete.desc=Faworyt Bolszewika. +achievement.concrete=Stary niezawodny +achievement.desh.desc="No, dalej. DuÅŒo miejsc do odwiedzenia!" +achievement.desh=Le Verrier +achievement.digammaFeel.desc=wewnętrznej pustki. +achievement.digammaFeel=Terror odczuwania +achievement.digammaKauaiMoho.desc=Wszystko jest okropne, trzymaj gorącą czekoladę. +achievement.digammaKauaiMoho=Zaśpiewaj, zaśpiewaj mi pieśń Kauai Moho +achievement.digammaKnow.desc=o czym jest ten świat. +achievement.digammaKnow=Terror wiedzy +achievement.digammaSee.desc=prosto w otchłań. +achievement.digammaSee=Terror widzenia +achievement.digammaUpOnTop.desc=Podziwiaj mojego syna, to mój klon. +achievement.digammaUpOnTop=Podziwiaj mnie, podziwiaj mój dom +achievement.fiend.desc=Bądź wredny. +achievement.fiend2.desc=Bądź wredniejszy. +achievement.fiend2=Przestępca 2: Przestępować Jeszcze Bardziej +achievement.fiend=Przestępca +achievement.freytag.desc=Ratownicy Herolda +achievement.freytag=Piątek +achievement.fusion.desc=Taniec deuteru, trytonu i energii. +achievement.fusion=Fuzja +achievement.gasCent.desc=Niewzbogacony uran go nienawidzi! +achievement.gasCent=Styl Zippe +achievement.hidden.desc=Zabij skaÅŒonego creepera spadającym wagonem towarowym. +achievement.hidden=Ukryty Katalog +achievement.horizonsBonus.desc=szczerze mówiąc, co do diabła jest z tobą nie tak +achievement.horizonsBonus=Wsad Biegunki +achievement.horizonsEnd.desc=Wyślij Tomasza do domu. +achievement.horizonsEnd=Horyzonty +achievement.horizonsStart.desc=Wyślij chłopaka do domu. +achievement.horizonsStart=Apogeum +achievement.impossible.desc=Nie moÅŒesz dostać tego osiągnięcia. +achievement.impossible=Dosłownie niemoÅŒliwe +achievement.inferno.desc="Obróć to w popiół! To nie wystarczy! Zrzuć więcej bomb!" +achievement.inferno=Operacja Kanibal +achievement.manhattan.desc=8:15; 6 Sierpnia, 1945 +achievement.manhattan=Projekt Manhattan +achievement.meltdown.desc=Zaszedłeś tak daleko, jak mogłeś to zepsuć? +achievement.meltdown=Szybki nieplanowany demontaÅŒ +achievement.no9.desc=„Mam nadzieję, ÅŒe ołów, który wydobywam, zostanie uÅŒyty w twojej farbie” +achievement.no9=Stara dziewiątka +achievement.omega12.desc=RozwiÄ…ÅŒ problem dalszego ÅŒycia na tej nędznej planecie. +achievement.omega12=Omega-12 Akcelerator Cząsteczek +achievement.polymer.desc=Mniam mniam. Smaczne mikroplastiki. Kocham je. +achievement.polymer=Teflon +achievement.potato.desc=Dźgnąłeś mnie! Co jest z tobą nie ta-ŁOOOO +achievement.potato=Zbuntowane AI +achievement.radDeath.desc=Maria Curie wynalazła teorię radioaktywności, leczenia radioaktywności i umierania z powodu radioaktywności. +achievement.radDeath=Ała, promieniowanie! +achievement.radium.desc=JESTEŚ ZWOLNIONY ZA WLEWANIE RADU DO MOJEJ KAWY! +achievement.radium=PAN INIEMAMOCNY +achievement.radPoison.desc=Ponieś skutki zatrucia promieniowaniem. +achievement.radPoison=Jej, promieniowanie! +achievement.RBMKBoom.desc=Co jest kosztem kłamstw? +achievement.RBMKBoom=15,000. +achievement.RBMK.desc=Ma urojenia, zabierz go do szpitala. +achievement.RBMK=3.6 Rentegena? +achievement.redBalloons.desc="To jest to, na co czekaliśmy. To jest to, koledzy, to jest wojna." +achievement.redBalloons=99 Czerwonych Balonów +achievement.sacrifice.desc=Zmierz się z ogniem i ÅŒyj. +achievement.sacrifice=Sorobójstwo +achievement.schrab.desc=Mimo wszystko nie patrzyłbym na to zbyt długo. +achievement.schrab=Wyspa Stabilności +achievement.selenium.desc=Ta. +achievement.selenium=XVIII KsięŌyc +achievement.SILEX.desc=To jest fajniejsze niÅŒ to brzmi, obiecuję. +achievement.SILEX=Rozdzielanie Izotopów Za Pomocą Wzbudzenia Laserowego +achievement.slimeball.desc= +achievement.slimeball=Powinienem zanurzyć me jaja w kwasie siarkowym. +achievement.stratum.desc=Naciśnij hamulec, Mitts. +achievement.stratum=Nawarstwienie +achievement.someWounds.desc=Przygotuj się +achievement.someWounds=Niektóre rany nigdy się nie goją. +achievement.soyuz.desc=Stań się chrupiący. +achievement.soyuz=Pieczony ziemniak +achievement.space.desc=Ponieś poraÅŒkę w kaÅŒdy moÅŒliwy sposób i zmarnuj fundusze warte 90 milionów dolarów. +achievement.space=Ostatni Front- a dobra, zapomnij +achievement.sulfuric.desc= +achievement.sulfuric=Nie powinienem był zanurzać mych jaj w kwasie siarkowym. +achievement.tantalum.desc=Nieuchwytny, ale zawsze potrzebny element. +achievement.tantalum="Tantal" +achievement.tasteofblood.desc=nie jest częścią ÅŒadnego protokołu testowego. +achievement.tasteofblood=Smak krwi +achievement.technetium.desc=To jest lekarstwo, to jest lekarstwo! +achievement.technetium=DuÅŒy człowiek, świński człowiek +achievement.watzBoom.desc=OpróŌnij szambo następnym razem. +achievement.watzBoom=Obrzydliwe +achievement.watz.desc=MoÅŒliwe uwzględnienie pól Fólkvangr. +achievement.watz=Moc Elementu-126 +achievement.witchtaunter.desc=Te zwariowane kreatury nic na ciebie nie mają! +achievement.witchtaunter=Szyderca Czarownic +achievement.ZIRNOXBoom.desc=xdxdxd +achievement.ZIRNOXBoom=CIRNOX + +armor.blastProtection=Modyfikator obraÅŒeń %s przeciwko eksplozjom +armor.cap=Twardy limit obraÅŒeń %s +armor.damageModifier=Modyfikator obraÅŒeń %s przeciwko %s +armor.dash=Daje %s susów +armor.electricJetpack=Jonowy plecak odrzutowy +armor.explosionImmune=Nie moÅŒe otrzymać ÅŒadnych obraÅŒeń z wyjątkiem eksplozji +armor.fastFall=Szybki Upadek +armor.fireproof=Ognioodporny +armor.fullSetBonus=Bonus pełnego zestawu: +armor.geigerHUD=Wbudowane HUD licznika Geigera +armor.geigerSound=Słuchowy licznik Geigera +armor.glider=Skradnij się aby szybować +armor.gravity=Modyfikator grawitacji %s +armor.hardLanding=Twarde Lądowanie +armor.ignoreLimit=Limit rezystancji nie ma wpływu na rezystancję +armor.modifier=Ogólny modyfikator obraÅŒeń %s +armor.nullDamage=Anuluje wszystkie obraÅŒenia od %s +armor.projectileProtection=Modyfikator obraÅŒeń %s przeciwko pociskom +armor.rocketBoots=Buty Rakietowe +armor.sprintBoost=Wzmocniony Sprint +armor.thermal=Wzrok Termiczny +armor.threshold=Próg obraÅŒeń %s +armor.vats=HUD Przeciwników +armor.yield=Ochrona dotyczy obraÅŒeń <%s + +armorMod.all=Wszystkiego +armorMod.applicableTo=Stosuje się do: +armorMod.boots=Butów +armorMod.chestplates=Napierśników +armorMod.helmets=Hełmów +armorMod.insertHere=Wstaw zbroję, aby zmodyfikować... +armorMod.leggings=Legginsów +armorMod.type.boots=Buty +armorMod.type.chestplate=Napierśnik +armorMod.type.cladding=Okładziny +armorMod.type.helmet=Hełm +armorMod.type.insert=Wkładka +armorMod.type.leggings=Legginsy +armorMod.type.servo=Serwa +armorMod.type.special=Specjalne + +battery.mode.buffer=Tryb Wejścia/Wyjścia +battery.mode.input=Tryb Wejścia +battery.mode.off=WyłączonyW +battery.mode.output=Tryb Wyjścia +battery.priority.high=Charge Priority: Wysoki +battery.priority.high.desc=Bufory awaryjne, które$zawsze muszą być pełne +battery.priority.low=Charge Priority: Niski +battery.priority.low.desc=Większość przypadków uÅŒycia, w których nadmiar$energii musi być przechowywany bez$wpływu na wydajność maszyny +battery.priority.normal=Charge Priority: Normalny +battery.priority.normal.desc=Mniejsze sieci energetyczne, w których priorytet nie ma znaczenia +battery.priority.recommended=Polecane dla: +battery.redstone.off=Redstone WYŁ +battery.redstone.on=Redstone WŁ + +bomb.detonated=Zdetonowano pomyślnie! +bomb.incompatible=Urządzenie nie moÅŒe zostać uruchomione! +bomb.launched=Wystrzelono pomyślnie! +bomb.missingComponent=Brakujący komponent! +bomb.nobomb=Połączona pozycja niekompatybilna lub niezaładowana! +bomb.triggered=Uruchomiono pomyślnie! + +book.test.cover=JAK SEXOWAĆ +book.test.page1=Test Strony 1 + +book.error.cover=Zderzacz Hadronów:$rozwiązywanie problemów +book.error.title1=Błąd 0x01 [NC] +book.error.page1=§lNazwa:§r "ERROR_NO_CHARGE" §lOpis:§r Cząstka dotarła do segmentu o niewystarczającym ładunku. §lPotencjalna poprawka:§r Albo wymień jedną ze wtyczek, przez które cząsteczka pomyślnie przechodzi na wtyczki wyÅŒszego poziomu, albo dodaj kolejną wtyczkę nieco przed segmentem, w którym cząsteczka wygasa. +book.error.title2=Błąd 0x02 [NA] +book.error.page2=§lNazwa:§r "ERROR_NO_ANALYSIS" §lOpis:§r Cząstka dotarła do rdzenia, mimo ÅŒe nie przeszła przez komorę analityczną. §lPotencjalna poprawka:§r Upewnij się, ÅŒe twój akcelerator ma komorę analityczną i dwukrotnie sprawdź tryb pracy (liniowy/kołowy). +book.error.title3=Błąd 0x03 [OC] +book.error.page3=§lNazwa:§r "ERROR_OBSTRUCTED_CHANNEL" §lOpis:§r Cząstka zderzyła się z blokiem wewnątrz kanału zderzacza. §lPotencjalna poprawka::§r Upewnij się, ÅŒe wnętrze zderzacza cząstek jest wolne od jakichkolwiek przeszkód, z wyjątkiem diod cząsteczkowych i bloków rdzenia. +book.error.title4=Błąd 0x04 [EC] +book.error.page4=§lNazwa:§r "ERROR_EXPECTED_COIL" §lOpis:§r Cząstka przeszła przez segment, w którym brakuje jednej lub wielu cewek. §lPotencjalna poprawka:§r Usuń osłonę zderzacza w obszarze naruszenia i sprawdź, czy są tam wszystkie cewki. Ten błąd wystąpi równieÅŒ w przypadku skrzyÅŒowań T, które są zbudowane bez diod. +book.error.title5=Błąd 0x05 [MS] +book.error.page5=§lNazwa:§r "ERROR_MALFORMED_SEGMENT" §lOpis:§r Cząstka minęła segment, który został zbudowany nieprawidłowo (ale nie jest zablokowany ani nie ma brakujących cewek). §lPotencjalna poprawka:§r Upewnij się, ÅŒe błędny segment ma osłonę we wszystkich wymaganych miejscach, nie pozostawiając odsłoniętych cewek. +book.error.title6=Błąd 0x06 [ATL] +book.error.page6=§lNazwa:§r "ERROR_ANALYSIS_TOO_LONG" §lOpis:§r Cząstka przeszła więcej niÅŒ trzy wymagane poprawne segmenty komory analitycznej.§lPotencjalna poprawka:§r Upewnij się, ÅŒe komora analityczna ma dokładnie 3 bloki długości dla akceleratora kołowego i co najmniej 2 bloki długości dla akceleratora liniowego. Sprawdź równieÅŒ, czy cząstka nie przechodzi przez wiele komór analitycznych w rozgałęzionym i/lub zapętlonym akceleratorze. +book.error.title7=Błąd 0x07 [ATS] +book.error.page7=§lNazwa:§r "ERROR_ANALYSIS_TOO_SHORT" §lOpis:§r Cząstka opuściła komorę analityczną, mimo ÅŒe nie spełniała wymagań dotyczących długości. §lPotencjalna poprawka:§r Upewnij się, ÅŒe komora analityczna twojego akceleratora kołowego ma dokładnie 3 bloki długości. Prawidłowe segmenty analityczne nie mają cewek, a osłona składa się w całości ze ścian/okien komory analitycznej. Komory analityczne z cewkami w nich liczą się jako zwykłe segmenty. +book.error.title8=Błąd 0x08 [DC] +book.error.page8=§lNazwa:§r "ERROR_DIODE_COLLISION" §lOpis:§r Cząstka zderzyła się z niewejściową stroną diody Schottky'ego. §lPotencjalna poprawka:§r Sprawdź, czy diody są poprawnie skonfigurowane. Cząsteczki mogą dostać się do diody tylko z boków oznaczonych zielonymi strzałkami skierowanymi do wewnątrz. +book.error.title9=Błąd 0x09 [BT] +book.error.page9=§lNazwa:§r "ERROR_BRANCHING_TURN" §lOpis:§r Cząstka osiągnęła zakręt z wieloma wyjściami. §lPotencjalna poprawka:§r Jeśli twój zakręt jest normalny, sprawdź, czy są wszystkie wymagane cewki (tj. czy nie ma dziur w warstwie cewki). Jeśli zakręt ma być rozgałęziony, wymaga prawidłowo skonfigurowanej diody cząstek Schottky'ego. + +book.rbmk.cover=Moje Pierwsze RBMK:$Podstawy Budowy$Reaktora +book.rbmk.title1=Wstęp +book.rbmk.page1=§lRBMK§r jest w pełni modułowym reaktorem jądrowym. W przeciwieństwie do większości innych reaktorów, nie ma „rdzenia” ani ograniczeń wielkości, a zachowanie i wydajność reaktora zaleÅŒy od tego, jak jest zbudowany i jak poszczególne części współdziałają ze sobą. +book.rbmk.title2=Ciepło +book.rbmk.page2=Podczas pracy reaktor będzie generował §lciepło§r. Ciepło będzie rozprzestrzeniać się między częściami, powoli zmniejszając się w trakcie. Celem jest wygenerowanie jak największej ilości ciepła bez stopienia reaktora i przekazanie ciepła do kanałów parowych, które chłodzą reaktor i wytwarzają parę. +book.rbmk.title3=Pręt paliwowy +book.rbmk.page3=§lPręt paliwowy§r wychwyci strumień neutronów, powodując reakcję paliwa wewnątrz pręta, uwalniając neutrony w procesie. Neutrony są uwalniane we wszystkich czterech głównych kierunkach z maksymalnym zasięgiem 5 bloków. Ilość uwolnionych neutronów zaleÅŒy od uÅŒytego paliwa. +book.rbmk.title4=Pręt regulacyjny +book.rbmk.page4=§lPręt regulacyjny§r zmniejszy liczbę przechodzących neutronów. Całkowicie włoÅŒony zablokuje wszystkie neutrony; po włoÅŒeniu do połowy zablokuje tylko połowę. Pręty regulacyjne słuŌą do regulacji pracy reaktora i jego wyłączania. +book.rbmk.title5=Pręty regulacyjne — zastosowanie +book.rbmk.title5.scale=0.9 +book.rbmk.page5=BieŌące wstawienie pręta zostanie wyświetlone na środku GUI. Kolorowe przyciski po lewej stronie dodadzą pasek sterowania do grupy kolorów, co jest przydatne do szybkiego wybierania zgrupowanych pasków na konsoli §lRBMK§r. Przyciski po prawej stronie umoÅŒliwiają ręczne wstawianie po 25%%. +book.rbmk.title6=Automatyczny pręt regulacyjny +book.rbmk.page6=§lAutomatyczne pręty regulacyjne§r są prawie identyczne jak zwykłe pręty regulacyjne, ale nie moÅŒna ich regulować ręcznie, zamiast tego dostosują połoÅŒenie pręta w oparciu o aktualną temperaturę. Którą funkcję uÅŒyć i jak głęboko włoÅŒyć i w jakiej temperaturze naleÅŒy najpierw ustalić. +book.rbmk.title7=Kanał parowy +book.rbmk.page7=§lKanał parowy§r jest jedyną częścią, która będzie regularnie obniÅŒać poziom ciepła w reaktorze. Jeśli element ma temperaturę powyÅŒej wrzenia określonego rodzaju pary, będzie próbował zuÅŒywać tyle wody i wytwarzać tyle pary, ile potrzeba do schłodzenia poniÅŒej temperatury wrzenia. +book.rbmk.title8=Reflektor neutronów +book.rbmk.page8=§lReflektor neutronów§r zablokuje przejście neutronów, zamiast tego neutrony zostaną odbite z powrotem na pręt paliwowy, z którego pochodzą. Jest on przydatny do wykorzystania neutronów, które w przeciwnym razie zostałyby zmarnowane po prostu przez opuszczenie reaktora. +book.rbmk.title9=Pochłaniacz neutronów +book.rbmk.page9=§lPochłaniacz neutronów§r po prostu blokuje neutrony. Zaabsorbowane neutrony nie będą generować ciepła i zostaną skutecznie zniszczone. Jest to przydatne do zapobiegania reakcji prętów paliwowych, które w przeciwnym razie byłyby w swoim zasięgu. +book.rbmk.title10=Opóźniacz grafitowy +book.rbmk.page10=§lModerator grafitowy§r (lub opóźniacz grafitowy) przekształca przechodzące przez niego neutrony prędkie w neutrony powolne. Większość paliw jest rozkładana na neutrony prędkie, podczas gdy neutrony powolne są potrzebne do rozszczepienia, dlatego zalecane jest stosowanie moderatorów. +book.rbmk.title11=Kolumna strukturalna +book.rbmk.page11=§lKolumna strukturalna§r nie wpływa w ÅŒaden sposób na neutrony i nie ma specjalnego zastosowania. Zaleca się wypełnienie reaktora słupami strukturalnymi tam, gdzie nie ma innych części, poniewaÅŒ słupy strukturalne są zdolne do przenoszenia ciepła. +book.rbmk.title12=Konsola +book.rbmk.page12=§lKonsola RBMK§r pozwala sterować reaktorem z daleka. UÅŒywając §lurządzenia do podłączania konsoli RBMK§r na części RBMK a następnie na konsoli połączymy reaktor i konsolę. Konsola moÅŒe sterować tylko częściami 15x15, w przypadku duÅŒych reaktorów moÅŒna uÅŒyć wielu konsol. +book.rbmk.title13=UÅŒywanie konsoli +book.rbmk.page13=Klikanie na części spowoduje ich zaznaczenie i odznaczenie. Za pomocą kolorowych przycisków moÅŒesz szybko wybrać wszystkie pręty regulacyjne w danej grupie kolorów. Przycisk „A” zaznaczy wszystkie drÄ…ÅŒki sterujące, „X” odznaczy wszystkie. +book.rbmk.page14=Wpisanie liczby od 0 do 100 w zielone pole, a następnie naciśnięcie przycisku obok niego spowoduje ustawienie wszystkich wybranych drÄ…ÅŒków sterujących w tej pozycji. Przycisk „AZ-5” doprowadzi do pełnego włoÅŒenia wszystkich drÄ…ÅŒków sterujących. +book.rbmk.title15=Paliwo +book.rbmk.page15=Reakcja §lpaliwa§r zaleÅŒy od wielu czynników. Główne z nich to §lfortyfikacja§r, §zatrucie ksenonem§r oraz liczba przychodzących §neutronów§r. Ksenon gromadzi się, gdy paliwo ma niską zawartość neutronów i spala się podczas normalnej pracy. Wydajność neutronów zaleÅŒy od rodzaju, większość paliw §lnajlepiej rozdziela się przez §r §lwolne neutrony§r. +book.rbmk.title16=Stapianie +book.rbmk.page16=§4§lUNIKAJ. + +book.starter.cover=Przewodnik przemysłowcy$do odbudowy$społeczeństwa +book.starter.title1=Wstęp +book.starter.page1=Jeśli to czytasz, jest to bardzo prawdopodobne, ÅŒe społeczeństwo, w taki czy inny sposób, całkowicie się rozpadło. Rządy, kraje i władza to koncepcje przeszłości – wraz ze wszystkimi wygodami cywilizowanego ÅŒycia. W związku z tym, w tym przewodniku dowiesz się, jak to zmienić, odtwarzając przemysł i technologię z przeszłości w celu poprawy własnego ÅŒycia. +book.starter.title2=Węgiel i gaz musztardowy +book.starter.page2=ChociaÅŒ niemoÅŒliwe jest przewidzenie faktycznego stanu świata w czasach postapokaliptycznych, nie jest wykluczone, ÅŒe wojna i przemysł w ich obecnej formie nie zakończyły się. Aby chronić własne płuca, skutecznym i tanim sposobem jest oddanie moczu na jakieś §lpłótno§r, aby zrobić §lmaskę okopową§r, aby chronić się przed pyłem węglowym lub gazem musztardowym, jeśli kiedykolwiek się z nimi spotkasz. +book.starter.title3=Kowadła i prasy +book.starter.page3=Kwintesencją rozpoczęcia rewitalizacji przemysłu jest §lkowadło§r i §lprasa spalinowa§r. Kowadło pozwoli ci ręcznie tworzyć wczesne maszyny, takie jak monter, podczas gdy prasa spalinowa pozwoli ci tworzyć płyty, druty i obwody, których nie moÅŒna połączyć razem w kowadle. +book.starter.title4=Szablony +book.starter.page4.scale=0.9 +book.starter.page4=Aby wytłaczać metal w uÅŒyteczne kształty, składać maszynę i przeprowadzać reakcje chemiczne, musisz stworzyć §lFolder szablonów maszyn§r, aby utworzyć róŌne stemple i szablony pokazane po prawej stronie. +book.starter.title5=Odzyskiwanie +book.starter.page5=W zaleÅŒności od tego, jak złe było początkowe wydarzenie apokaliptyczne dla istniejących struktur świata, istnieje prawdopodobieństwo, ÅŒe moÅŒna z nich bezpośrednio odzyskać wiele przydatnych materiałów i maszyn. Stopy metali, takie jak stal, części, takie jak obwody, a nawet materiały rozszczepialne z elektrowni jądrowej mogą na ciebie czekać. UwaÅŒaj jednak na niektóre ruiny, poniewaÅŒ moÅŒe tam czaić się nadmiar niebezpieczeństw jak wÄ…ÅŒ w trawie; czekając, by powalić cię promieniowaniem, pułapkami lub nieopisywalnymi horrorami... +book.starter.title6=Wczesne maszyny +book.starter.page6a=Dwie z pierwszych maszyn, które powinieneś zmontować, to §lpiec hutniczy§r i §lmaszyna montaÅŒowa§r (lub monter/asembler). Ta pierwsza pozwoli na tworzenie stopów, takich jak §lstal§r, §lmiedź klasy minecraft§r i §lzaawansowany stop§r; będziesz musiał uÅŒyć tych metali do budowy korpusów maszyn, okablowania obwodów, zaawansowanych elektromagnesów i nie tylko. +book.starter.page6b=Asembler posłuÅŒy do stworzenia praktycznie kaÅŒdej innej maszyny opisanej w tym poradniku. Będziesz potrzebował źródła zasilania, takiego jak §lgenerator§r §lspalinowy§r lub §lbojler słoneczny§r. +book.starter.page7a=§lNiszczarka§r wraz z parą ostrzy niszczarki będzie bardzo przydatna do podwojenia ilości większości rud poprzez rozdrabnianie na nadające się do wytapiania proszki. Te proszki są równieÅŒ niezbędne do rozpoczęcia tworzenia obwodów dla róŌnych maszyn, takie jak §lwzmocnione§r i §lprzetaktowane§r obwody. +book.starter.page7b=Korzystając z nowych maszyn, moÅŒesz stworzyć §1zakłady chemiczne§r, uÅŒywane do syntezy lepszych obwodów, betonu, przetwarzania produktów petrochemicznych i nie tylko. +book.starter.title8=Czarne złoto +book.starter.page8a=UÅŒywając §ldetektora §lzbiorników§r §lropy§r, moÅŒesz znaleźć podziemne złoÅŒa ropy, aby umieścić na nich §lkiwon§r lub §lwieŌę wiertniczą§r poprzez badanie terenu. Pamiętaj, ÅŒe złoÅŒa ropy z czasem się wyczerpią. +book.starter.page8b=Zanim ropa będzie mógła być rafinowana i rozdzielona na części składowe w §lrafinerii ropy naftowej§r, naleÅŒy podgrzać ropę do 300°C w §lbojlerze§r. +book.starter.title9=Produkty petrochemiczne +book.starter.page9=UÅŒywając §lzakładu chemicznego§r, §lwieŌ§r §lfrakcjonujących§r i §lwieÅŒ do krakingu§r §lkataliktycznego§r, moÅŒesz przekształcić oddzieloną ropę w róŌnorodne przydatne produkty. Na przykład: §lpolimer§r lub §lbakelit§r, trwałe i elastyczne tworzywa sztuczne; §ldesh§r, niezwykle trwały i odporny na wysoką temperaturę stop metali ziem rzadkich; §lpaliwo stałe§r, które moÅŒna spalić w celu uzyskania energii; a nawet §lpaliwa płynne§r, takie jak §lbenzyna§r, §lolej napędowy§r, §lbenzyna cięŌka§r i inne. +book.starter.title10=Zaawansowane maszyny +book.starter.page10=Mając juÅŒ za sobą przetwarzanie ropy, moÅŒesz stworzyć §lwirówkę§r, która potroi wydobycie rudy; §lzakwaszacz §lrud§r, który krystalizuje rudy, zwiększając wydajność; oraz §lSILEX + §lFEL§r, dwa cuda nowoczesnej inÅŒynierii, które z łatwością oddzielają izotopy materiałów. Będziesz potrzebował znacznie więcej energii, aby je zasilić; które moÅŒna uzyskać ze źródeł takich jak §lgenerator dieslowy§r, §lgenerator przemysłowy§r, a nawet reaktor jądrowy. +book.starter.title11=Nawarstwienia +book.starter.page11=Pod ziemią, po której idziesz, znajduje się kilka naturalnie występujących §lnawarstwień§r, czyli specjalnych warstw i formacji mineralnych. §lNawarstwienie łupkowe§r to niebieskie, zawierające lit warstwy wypełnione uranem, ÅŒelazem, miedzią, azbestem i innymi rudami na własny uÅŒytek. §lGłęboka skała§r zawiera duÅŒe ilości rzadszych minerałów, takich jak §lcyrkon§r i §lboron§r, ale wymaga materiałów wybuchowych do prawidłowego zebrania. +book.starter.title12=Promieniowanie +book.starter.page12a=Pozostała część tej ksiÄ…ÅŒki dotyczy spraw związanych z promieniowaniem. Dla bezpieczeństwa ciebie i innych dam radę, jak złagodzić i radzić sobie z naraÅŒeniem na nie. +book.starter.page12b=Wystarczająca ekspozycja na promieniowanie moÅŒe i spowoduje uszkodzenie ciała. Pierwszym krokiem jest zapobieganie; pamiętaj o ograniczeniu ekspozycji i noś sprzęt ochronny, taki jak §lkombinezon ochronny§r, lub zastosuj §lokładzinę§r na ubraniu lub zbroi; moÅŒesz równieÅŒ wziąć §lRad-X§r, aby ograniczyć przyjmowanie. Dzięki nowoczesnej medycynie drugim krokiem moÅŒe być usunięcie w razie potrzeby; na przykład §ldekontaminator §lgraczy§r będzie powoli zmniejszał promieniowanie pochłaniane przez twoje ciało. §lRad-Away§r moÅŒe być równieÅŒ stosowany jako profilaktyka poekspozycyjna, szybko i skutecznie odwraca szkody wyrządzone organizmowi przez promieniowanie jonizujące. +book.starter.title13=Wzbogacanie uranu +book.starter.page13=Istnieje kilka łatwych opcji paliw do wykorzystania w reaktorze jądrowym; na przykład §luran naturalny§r lub §lpaliwo torowe§r. Jeśli jednak szukasz czegoś mocniejszego, moÅŒesz stworzyć kaskadę wzbogacania poprzez dwie §lwirówki wzbogacające§r, aby produkować §lpaliwo uranowe§r z resztek §luranu-238§r. Aby to zrobić, będziesz musiał przemienić naturalny uran w §lŌółte ciasto§r, a następnie §lheksafluorek §luranu§r. +book.starter.title14=Chicago Pile +book.starter.page14=Alternatywnie, moÅŒesz stworzyć §lpluton klasy reaktorowej§r, czyli mocniejsze paliwo, z naturalnego uranu przy uÅŒyciu §lChicago Pile§r. Układając bloki grafitu i wiercąc w nich, moÅŒna włoÅŒyć pręty paliwowe w celu zamienienia się w pręty źródłowe plutonu i neutronów, takie jak §lrad-beryl§r, aby rozpocząć reakcję. Pamiętaj, aby przetestować swoje projekty; odstępy lub ograniczenie liczby bloków moÅŒe być konieczne, aby zapobiec przegrzaniu. +book.starter.title15=ZIRNOX GCR +book.starter.page15=Na koniec moÅŒesz stworzyć swoje pierwsze §orealne§r źródło energii: Reaktor Jądrowy §lZIRNOX§r. Reaktory jądrowe wymagają więcej konfiguracji niÅŒ inne źródła zasilania; po pierwsze, będziesz chciał mieć dobre źródło wody, takie jak §lnieskończone źrodło §lcięŌkiej wody§r. Aby usunąć ciepło z rdzenia reaktora i zagotować wodę w parę, potrzebujesz odpowiedniej ilości §ldwutlenku węgla§r. Chcesz mieć wystarczające ciśnienie, ale nie §oza§r duÅŒe. Będziesz takÅŒe potrzebował trzech turbin parowych, aby wykorzystać wytworzoną parę do wytwarzania energii; §lTurbina §lparowa§r lub §lprzemysłowa §lturbina parowa§r będzie optymalna. Wreszcie §lskraplacz§r lub §lpomocnicza wieÅŒa chłodnicza§r jest potrzebna do skraplania pozostałej pary w wodę, gdzie moÅŒna ją usunąć lub poddać recyklingowi w pętli chłodzącej. +book.starter.title16=Wniosek +book.starter.page16=Jeśli dotarłeś tak daleko, jesteś na dobrej drodze do odbudowy cywilizacji. Udało ci się odtworzyć zaawansowaną maszynerię sprzed apokalipsy - z energią jądrową, petrochemią i nie tylko. Nie wiem, w jaki sposób wykorzystasz te nowo odkryte korzyści, ale mam osobistą nadzieję, ÅŒe wykorzystasz je dla dobra własnego i innych - a przynajmniej w samoobronie. Au revoir! +book.starter.title18=O autorze +book.starter.page18=vÊr to po prostu gostek, który zbyt długo był uwięziony w szarej pustce w §oOnce In A Lifetime§r Talking Head'a. Kiedyś znalazł drzwi do studia, ale ku swemu przeraÅŒeniu odkrył, ÅŒe to wycinka z kartonu. + +#book.rbmk.cover=JAK RBMK:$Podstawy$konstrukcji$keaktora +#book.rbmk.title1=Wstęp +#book.rbmk.page1=§lRBMK§r jest w pełni modułowym reaktorem jądrowym. W przeciwieństwie do większości innych reaktorów, nie ma „rdzenia” ani ograniczeń wielkości, a zachowanie i wydajność reaktora zaleÅŒy od tego, jak jest zbudowany i jak poszczególne części współdziałają ze sobą. +#book.rbmk.title2=Ciepło +#book.rbmk.page2=Podczas pracy reaktor będzie generował §lciepło§r. Ciepło będzie rozprzestrzeniać się między częściami, powoli zmniejszając się w trakcie. Celem jest wygenerowanie jak największej ilości ciepła bez stopienia reaktora i przekazanie ciepła do kanałów parowych, które chłodzą reaktor i wytwarzają parę. +#book.rbmk.title3=Pręt paliwowy +#book.rbmk.page3=§lPręt paliwowy§r wychwyci strumień neutronów, powodując reakcję paliwa wewnątrz pręta, uwalniając neutrony w procesie. Neutrony są uwalniane we wszystkich czterech głównych kierunkach z maksymalnym zasięgiem 5 bloków. Ilość uwolnionych neutronów zaleÅŒy od uÅŒytego paliwa. +#book.rbmk.title4=Pręt regulacyjny +#book.rbmk.page4=§lPręt regulacyjny§r zmniejszy liczbę przechodzących neutronów. Całkowicie włoÅŒony zablokuje wszystkie neutrony; po włoÅŒeniu do połowy zablokuje tylko połowę. Pręty regulacyjne słuŌą do regulacji pracy reaktora i jego wyłączania. +#book.rbmk.title5=Pręty regulacyjne - zastosowanie +#book.rbmk.page5=BieŌące wstawienie pręta zostanie wyświetlone na środku GUI. Kolorowe przyciski po lewej stronie dodadzą pasek sterowania do grupy kolorów, co jest przydatne do szybkiego wybierania zgrupowanych pasków na konsoli §lRBMK§r. Przyciski po prawej stronie umoÅŒliwiają ręczne wstawianie po 25%%. +#book.rbmk.title6=Automatyczny pręt regulacyjny +#book.rbmk.page6=§lAutomatyczne pręty regulacyjne§r są prawie identyczne jak zwykłe pręty regulacyjne, ale nie moÅŒna ich regulować ręcznie, zamiast tego dostosują połoÅŒenie pręta w oparciu o aktualną temperaturę. Którą funkcję uÅŒyć i jak głęboko włoÅŒyć i w jakiej temperaturze naleÅŒy najpierw ustalić. +#book.rbmk.title7=Kanał parowy +#book.rbmk.page7=§lKanał parowy§r jest jedyną częścią, która będzie regularnie obniÅŒać poziom ciepła w reaktorze. Jeśli element ma temperaturę powyÅŒej wrzenia określonego rodzaju pary, będzie próbował zuÅŒywać tyle wody i wytwarzać tyle pary, ile potrzeba do schłodzenia poniÅŒej temperatury wrzenia. +#book.rbmk.title8=Reflektor neutronów +#book.rbmk.page8=§lReflektor neutronów§r zablokuje przejście neutronów, zamiast tego neutrony zostaną odbite z powrotem na pręt paliwowy, z którego pochodzą. Jest on przydatny do wykorzystania neutronów, które w przeciwnym razie zostałyby zmarnowane po prostu przez opuszczenie reaktora. +#book.rbmk.title9=Pochłaniacz neutronów +#book.rbmk.page9=§lPochłaniacz neutronów§r po prostu blokuje neutrony. Zaabsorbowane neutrony nie będą generować ciepła i zostaną skutecznie zniszczone. Jest to przydatne do zapobiegania reakcji prętów paliwowych, które w przeciwnym razie byłyby w swoim zasięgu. +#book.rbmk.title10=Opóźniacz grafitowy +#book.rbmk.page10=§lModerator grafitowy§r (lub opóźniacz grafitowy) przekształca przechodzące przez niego neutrony prędkie w neutrony powolne. Większość paliw jest rozkładana na neutrony prędkie, podczas gdy neutrony powolne są potrzebne do rozszczepienia, dlatego zalecane jest stosowanie moderatorów. +#book.rbmk.title11=Kolumna strukturalna +#book.rbmk.page11=§lKolumna strukturalna§r nie wpływa w ÅŒaden sposób na neutrony i nie ma specjalnego zastosowania. Zaleca się wypełnienie reaktora słupami strukturalnymi tam, gdzie nie ma innych części, poniewaÅŒ słupy strukturalne są zdolne do przenoszenia ciepła. +#book.rbmk.title12=Konsola +#book.rbmk.page12=§lKonsola RBMK§r pozwala sterować reaktorem z daleka. UÅŒywając §lurządzenia do podłączania konsoli RBMK§r na części RBMK a następnie na konsoli połączymy reaktor i konsolę. Konsola moÅŒe sterować tylko częściami 15x15, w przypadku duÅŒych reaktorów moÅŒna uÅŒyć wielu konsol. +#book.rbmk.title13=UÅŒywanie Konsoli +#book.rbmk.page13=Klikanie na części spowoduje ich zaznaczenie i odznaczenie. Za pomocą kolorowych przycisków moÅŒesz szybko wybrać wszystkie pręty regulacyjne w danej grupie kolorów. Przycisk „A” zaznaczy wszystkie drÄ…ÅŒki sterujące, „X” odznaczy wszystkie. +#book.rbmk.page14=Wpisanie liczby od 0 do 100 w zielone pole, a następnie naciśnięcie przycisku obok niego spowoduje ustawienie wszystkich wybranych drÄ…ÅŒków sterujących w tej pozycji. Przycisk „AZ-5” doprowadzi do pełnego włoÅŒenia wszystkich drÄ…ÅŒków sterujących. +#book.rbmk.title15=Paliwo +#book.rbmk.page15=Reakcja §lpaliwa§r zaleÅŒy od wielu czynników. Główne z nich to §lfortyfikacja§r, §zatrucie ksenonem§r oraz liczba przychodzących §neutronów§r. Ksenon gromadzi się, gdy paliwo ma niską zawartość neutronów i spala się podczas normalnej pracy. Wydajność neutronów zaleÅŒy od rodzaju, większość paliw §lnajlepiej rozdziela się przez §r §lwolne neutrony§r. +#book.rbmk.title16=Stapianie +#book.rbmk.page16=§4§lUNIKAJ. + +book_lore.author=Przez % +book_lore.test.name=Test +book_lore.test.author=gostek +book_lore.test.page.1=>czesc anony zanim zaczne pozwolcie mi wyjasnic ze nie jestem gejem. >Bądź mną >W tej nocy >18 > Spędzam czas z moim najlepszym przyjacielem, gdy moi rodzice wyjechali na kilka dni >Byliśmy najlepszymi przyjaciółmi juÅŒ przez rok >Trochę piliśmy, graliśmy w wiele gier i zamówiliśmy pizzę >Świetnie się bawiliśmy >W pewnym momencie, około 21:00, opowiada naprawdę zabawny ÅŒart, którego nie pamiętam, ale wiem, ÅŒe bardzo nas to rozśmieszyło >Bez zastanowienia przeczesuję prawą dłonią jego na wpół kręcone czarne włosy i nazywam go zabawnym chłopem >Rumieni się >Zdaję sobie sprawę, ÅŒe jestem zdenerwowany >Jesteśmy trochę blisko >Nagle mnie całuje i z jakiegoś powodu całuję go z powrotem >Robimy miłość >Przytulamy się do siebie i zasypiamy >Obudź się w środku nocy z głową przytuloną do mojej klatki piersiowej i szyi >To jest przyjemne uczucie ale nie jestem homoseksualistą +book_lore.test.page.2=Piszę to, gdy on śpi w moich ramionach. Jak ładnie zawieść mojego najlepszego przyjaciela? Nie chcę być [ZREDAGOWANO] /b/ +book_lore.test.page.3=3 +book_lore.test.page.4=4 +book_lore.test.page.5=5 + +book_lore.book_iodine.name=Notatka +book_lore.book_iodine.author=Dave +book_lore.book_iodine.page.1=dobra, nie uwierzysz, ale stary weathervane w końcu się ponownie pojawił, odkąd wyjechał dwa tygodnie temu, a co bardziej zaskakujące, to fakt, ÅŒe faktycznie zdecydował się powiedzieć, co robili w kanionie: +book_lore.book_iodine.page.2=najwyraźniej kretyni z R&D odkryli związek, który jest w większości nieorganiczny, prawie jak toksyna z natury, ale zrozum to: umierające komórki będą reprodukować tę toksynę i wydalać ją przez skórę, tworząc wysoce zaraźliwy aerozol. +book_lore.book_iodine.page.3=to jest jak wirus, ale nie wirus. skład jest dziwny, moÅŒna go zmieszać w dowolnej domowej butelce, ale trzeba zachować odpowiednią kolejność. doktor powiedział mi, ÅŒe pierwszy składnik, który jest po prostu sproszkowanymi kryształkami jodu, trafia do slotu %d + +book_lore.book_phosphorous.name=Notatka +book_lore.book_phosphorous.author=Dave +book_lore.book_phosphorous.page.1=hej, to znowu ja. zakładam, ÅŒe dostałeś moją ostatnią notatkę, doktor nie był z tego zadowolony. muszę to zrobić szybko, głupki z R&D obecnie znowu jęczą, prawdopodobnie nad pieniędzmi. znowu. w kaÅŒdym razie doktor weathervane +book_lore.book_phosphorous.page.2=odkrył, ÅŒe drugim składnikiem jest czerwony fosfor, który naleÅŒy wmieszać w slot %d + +book_lore.book_dust.name=Notatka +book_lore.book_dust.author=Dave +book_lore.book_dust.page.1=doktor był wściekły, gdy dowiedział się, ÅŒe głupcy z R&D zatrzymali jedyną pozostałą próbkę, narzekając na raŌące zaniedbanie to i czarny scenariusz tamto. powiedziałem mu, ÅŒeby się wyluzował przez minutę, stresowanie się nie jest dobre +book_lore.book_dust.page.2=dla jego ciśnienia krwi, nie ÅŒeby na początek zostało mu duÅŒo krwi. jeden z kretynów się R&D wrzucił trochę więcej informacji do zeszłotygodniowego biuletynu, nazywają swoją małą miksturę \„MKU”\, cokolwiek to znaczy, i ÅŒe zawiera ona +book_lore.book_dust.page.3=prawdziwe domowe kłaczki. czy moÅŒesz w to uwierzyć to? jeden z najniebezpieczniejszych ich wynalazków i zawiera kurz. dziwnie wspomnieli równieÅŒ, ÅŒe trafia do slotu %d + +book_lore.book_mercury.name=Notatka +book_lore.book_mercury.author=Dave +book_lore.book_mercury.page.1=no to załatwia sprawę. nie licząc wymiotującej części krwi, raport toksykologiczny w większości przypomina zatrucie rtęcią. Dlaczego? poniewaÅŒ nasza mała mieszanka zawiera równieÅŒ rtęć! Zastanawiam się tylko, skąd biorą się te +book_lore.book_mercury.page.2=wszystkie rzeczy, kiedy są replikowane przez ciało? cokolwiek, rtęć trafia do slotu %d + +book_lore.book_flower.name=Notatka +book_lore.book_flower.author=Dave +book_lore.book_flower.page.1=pamiętasz, jak wspomniałem w mojej pierwszej notatce, ÅŒe związek jest w większości nieorganiczny? zgadnij co, starzec podzielił się czwartym składnikiem: ipomoea nil, rodzaj kwiatu. powój! moÅŒe to być spowodowane niską zawartością +book_lore.book_flower.page.2=siarki, cokolwiek by nie było, nie działa z innymi kwiatami. Powój trafia do slotu %d + +book_lore.book_syringe.name=Notatka +book_lore.book_syringe.author=Dave +book_lore.book_syringe.page.1=małe uzupełnienie do mojej piątej wiadomości, oczywiście musisz przechowywać te rzeczy MKU w pojemniku. głupki z R&D uÅŒywały zwykłych metalowych strzykawek, które dostali od lekarza. nadwyÅŒki towarów, jak przypuszczam, mają +book_lore.book_syringe.page.2=tysiące igieł leŌących wokół. metalowa strzykawka trafia do gniazda %d + +book_lore.resignation_note.name=List rezygnacyjny +book_lore.resignation_note.author=Kosma +book_lore.resignation_note.page.1=Kierownictwo ponownie zmniejszyło wczoraj nasz dział. Ci idioci są sami sobie winni, nie wiem czego oczekiwali po tym fiasku. Kto kurna ujawnia takie informacje? Tracimy miliony i +book_lore.resignation_note.page.2=to JA jestem teraz bez pracy. To ja jestem proszony o rezygnację. Mam nadzieję, ÅŒe wy, dupki, w końcu nauczycie się na nadmiarze swoich błędów i wyciągniecie ten kij z dupy. +book_lore.resignation_note.page.3=Nie wracam w piątek. Po prostu wyślijcie wypłatę. + +book_lore.memo_stocks.name=Memorandum wewnątrzkorporacyjne +book_lore.memo_stocks.page.1=Relacje inwestorskie - $ $ W liczbach przedstawionych w ostatnim raporcie kwartalnym pojawiły się raŌące rozbieÅŒności. Byłoby rozsądne, ÅŒeby dział finansowy dokonał pewnych korekt, aby nie było ÅŒadnych obaw. + +book_lore.memo_schrab_gsa.name=Memorandum wewnętrzne +book_lore.memo_schrab_gsa.page.1=Zarządzanie umowami — $ $ Dział prawny dokonał przełomu dzięki DLA. Nagrodzili nas harmonogramem 45 MILIARDÓW GSA na dalsze zakupy i badania saralloju. Przy obecnych szacunkach byłoby to co +book_lore.memo_schrab_gsa.page.2=co najmniej 40% zysku z powiązanych operacji, nie mówiąc juÅŒ o moÅŒliwości przyszłych kontraktów. Ze względu na poufny charakter wszelkie dowody fiskalne mają pozostać prywatne. + +book_lore.memo_schrab_rd.name=Memorandum wewnętrzne +book_lore.memo_schrab_rd.page.1=Działalność badawczo-rozwojowa — $ $ Naszą główną metodą produkcji saralloju jest nowy akcelerator cząstek. Jednak koszty energii są niebotycznie wysokie w porównaniu do wielkości produkcji. +book_lore.memo_schrab_rd.page.2=Doktor Schrabauer odkrył jednak nową interakcję – zwaną „Dziwną Oscylacją Leptona” – która moÅŒe znacznie obniÅŒyć koszty. W wyniku nie do końca poznanego procesu dostarczane elektrony są przekształcane +book_lore.memo_schrab_rd.page.3=w fotony o niezwykle wysokiej energii, poprzez dziwny magnes. Jest to skrajny wyjątek od wielu ustalonych praw konwersji cząstek, ale wstępne eksperymenty wykazały, ÅŒe te protony przekształcają się w kwarki +book_lore.memo_schrab_rd.page.4=górne i dolne, ostatecznie tworząc saralloj. Co dziwne, prototyp wymaga stopu wolframu z niewielką ilością saralloju. Ponadto wymagany jest specjalny kondensator, aby zanegować pozostały ładunek dodatni. + +book_lore.memo_schrab_nuke.name=Raport z badań +book_lore.memo_schrab_nuke.author=Doktor Schrabauer +book_lore.memo_schrab_nuke.page.1=Nasze ostatnie badania doprowadziły nas do wpływu wybuchów jądrowych na materiały. Dzięki naszych przyznanych pieniędzy *przypadkowo* przetestowaliśmy naszą teorię na temat bezpośredniej syntezy saralloju z uranu. Tylko nasz cyklotron +book_lore.memo_schrab_nuke.page.2=faktycznie stworzył wcześniej saralloj. Jednak podczas naszego podziemnego ujęcia w Everwerpen w rudzie uranu znaleziono maleńkie ślady saralloju. Cały czysty, metaliczny uran w pobliÅŒu uległ rozszczepieniu. W związku z tym, mając +book_lore.memo_schrab_nuke.page.3=wystarczającą ilość rudy uranu skoncentrowanego wokół materiału wybuchowego, a moÅŒe nawet brudną bombę bogatą w odpady zawierające materiał rozszczepialny, moÅŒna hipotetycznie stworzyć wystarczającą ilość saralloju, aby zebrać go ręcznie. + +book_lore.bf_bomb_1.name=Prywatne notatki +book_lore.bf_bomb_1.author=M. Porter +book_lore.bf_bomb_1.page.0=Trwało to wystarczająco długo, ale mój transfer został zaakceptowany. Z tymi nowymi absolwentami było juÅŒ trudno sobie poradzić, nie mówiąc juÅŒ o całym nieprofesjonalizmie prowadzącego. $ Nie wszystkie są dobre wieści – to laboratorium ukrywało dalsze szczegóły, a ja nie potrzebowałem więcej chaosu do kolejnego magicznego nowego odkrycia. +book_lore.bf_bomb_1.page.1=Oczywiście tak było. Absolwenci mieli wątpliwości (zaskakujące, zwaÅŒywszy na ich bystre oczy), ale mój jedyny... kompetentny? kolega faktycznie dostał w swoje ręce rozdawanie elementarzów. Musi mieć więcej połączeń, niÅŒ myślałem. Jego notatka jest zniechęcająca: +book_lore.bf_bomb_1.page.2=najwyraźniej istnieje jeszcze KOLEJNY cudowny materiał, który wydobyli z jakiejś mikstury antymaterii i izotopu brzegowego. Broszura nazywa to „SWIRLMAT” – do diabła, jeśli wiem – i to wszystko. Nic dziwnego, ÅŒe chcieli fizyka teoretyka, +book_lore.bf_bomb_1.page.3=jeszcze nawet nie wiedzą, co to jest. Tak czy inaczej, praktycznie kaÅŒda praca byłaby lepsza niÅŒ moje stare stanowisko, więc nie mogę narzekać na szkicowość. + +ook_lore.bf_bomb_2.name=Prywatne notatki +book_lore.bf_bomb_2.author=M. Porter +book_lore.bf_bomb_2.page.0=Pomimo braku informacji w tym elementarzu, wciÄ…ÅŒ miałem nadzieję, ÅŒe wiedzą nieco więcej. Zupełnie nie. Co drugi starszy badacz ma ślepą wiarę w ten materiał; ich propozycje były praktycznie biblijne. Prawie zaniemówiłem. +book_lore.bf_bomb_2.page.1=A jednak nie mogę ich nawet winić. Swirlmat nie ma cholernego sensu - jest zupełnie inny niÅŒ jakakolwiek inna substancja, którą wcześniej widziałem. Jego wygląd był niemal przeraÅŒający, dosłowna masa wirujących kolorów, z ciemniejszymi liniami przenikającymi przez neonowozieloną powierzchnię. +book_lore.bf_bomb_2.page.2=Co gorsza, to coś jest źródłem energii. Istnienie naszej próbki jest pogwałceniem ALARA: laboratorium zostało opuszczone, kiedy przybyła, a jedyna osoba na tyle odwaÅŒna (niejaki dr Melfyn) przywdziała hazmat poziomu A tylko po to, by przenieść go na 20 metrów. +book_lore.bf_bomb_2.page.3=Dane empiryczne nie są lepsze, poniewaÅŒ łamiemy pierwszą zasadę termodynamiki, określając ilość emitowanej energii. Bycie w pobliÅŒu tego czegoś - nawet za metrem ołowiu - było przeraÅŒające. Po zakończeniu spektroskopii wybiegliśmy z komory +book_lore.bf_bomb_2.page.4=i nie uzyskaliśmy z niej nic nowego. Ci idioci z zespołu naukowego, BoÅŒe, nawet się nie wahali po tym wszystkim. Siedzenie podczas tych „dyskusji” było okropne; ten znachor naczelny badacz nawet plotkował, ÅŒe zakaz testów zostanie zniesiony, ÅŒe w nadchodzących tygodniach +book_lore.bf_bomb_2.page.5=moÅŒemy budować bomby z gówna, kto przy zdrowych zmysłach by nad tym pracował? Do diabła, jedyny zdrowy na umyśle asystent (Andrew) nazwał to „balefire” – poniewaÅŒ spalenie na stosie pogrzebowym byłoby w porównaniu z tym bezbolesne. + +book_lore.bf_bomb_3.name=Prywatne notatki +book_lore.bf_bomb_3.author=M. Porter +book_lore.bf_bomb_3.page.0=Wraz z zespołem dokonaliśmy kilku przełomów. Nacisk na separację - odizolowanie się od bardziej poboÅŒnych sprawiło, ÅŒe praca tam była o wiele bardziej znośna. ChociaÅŒ nadal nie mamy pojęcia o rzeczywistych właściwościach balefire (trudno jest przeanalizować +book_lore.bf_bomb_3.page.1=próbkę, która smaÅŒy twój sprzęt), jego interakcje z inną materią okazały się owocne. Warto zauwaÅŒyć, ÅŒe zsyntetyzowali formę „gazową”: ze wszystkich ludzi Andrew poinformował mnie, ÅŒe tak naprawdę był to koloid składający się z mikroskopijnych cząsteczek ognia zawieszonych w jakimś +book_lore.bf_bomb_3.page.2=szlachetnym gazie. KaÅŒda cząsteczka jest otoczona przez dodatnio naładowany „bąbel” zjonizowanego gazu, który zapobiega jego osiadaniu. Kto mógł przypuszczać, ÅŒe śmiertelne promieniowanie gamma przynosi korzyści? Nie ja. $ Wolę nie myśleć o tym, jak +book_lore.bf_bomb_3.page.3=przekształcili próbkę w cząsteczkę, ale nie mogę nie docenić uÅŒyteczności tego gazowego balefire — znacznie bezpieczniej jest na nim eksperymentować. $ Mówiąc o bezpieczeństwie, główny badacz (w akcie bezdusznego lekcewaÅŒenia) dokonał odkrycia, które równieÅŒ prawie urwało mu głowę. +book_lore.bf_bomb_3.page.4=Postanowił „zabrudzić” komórkę naszego nowego koloidu bezpośrednią interakcją z jakąś bardzo kosztowną antymaterią: wynikająca z tego eksplozja zamieniła stół, na którym stał, w kawałek wybielonego promieniowaniem ÅŒuÅŒla, wyrzeźbiła prawie idealną półkulę na górze i +book_lore.bf_bomb_3.page.5=dał głowie zdrową dawkę ARS. Chyba juÅŒ wiemy, jak sprawić, by wybuchła, ale BoÅŒe, niektórzy ludzie... + +book_lore.bf_bomb_4.name=Prywatne notatki +book_lore.bf_bomb_4.author=M. Porter +book_lore.bf_bomb_4.page.0=Po prostu nie mogę uciec od mojej starej pracy. To jedyne miejsce, które zatrudnia pomimo całego tego zapomnianego przez Boga zamieszania, ale nie wrócę do tej dziury. $ Kusili mnie tylko dlatego, ÅŒe muszę wyjść, i to szybko. Pamiętasz traktat o testach atmosferycznych, z którego wycofaliśmy się tydzień temu? +book_lore.bf_bomb_4.page.1=CóŌ, ten dupek odpowiedzialny za nasze laboratorium, chociaÅŒ raz coś załatwił. Potępienie przyszło wraz z falą nowych „naukowców”, którzy dołączyli tylko po to, abyśmy mogli uÅŒyć balefire jako broni. Brak krytycznej myśli tutaj jest naprawdę zdumiewający – niech go Bóg błogosławi, Andrew nawet wyskoczył z zespołu +book_lore.bf_bomb_4.page.2=w chwili, gdy powstał pierwszy pierdolony PROJEKT BOMBY. Ten dupek Melfyn wyglądał na bardzo zadowolonego ze swojego małego mechanizmu – moÅŒe zaraził się robakami mózgowymi od noszenia tej próbki? – co wiązało się z jakimś głupim gównem, uÅŒywając zestalonego, podstawowego balefire i baterii HV. +book_lore.bf_bomb_4.page.3=Najwyraźniej forma ma znaczenie dla produkcji energii i metody aktywacji czy czegokolwiek, trochę jak uran kontra pluton w zwykłych bombach atomowych, ale końcowym rezultatem jest początkowy szok rozpoczynający eksplozję. Wydaje mi się to zabawne, śmieszne nawet. +book_lore.bf_bomb_4.page.4=Wszyscy kładą taki nacisk na aktywację; ignorują rzeczywisty mechanizm tego wszystkiego, poniewaÅŒ nie mają pojęcia, jak to działa! W tym momencie równie dobrze moÅŒe to być magia, a mimo to wciÄ…ÅŒ próbują ją przekręcać i naginać – tylko po to, by uzyskać więcej broni wojennej. + +book_lore.bf_bomb_5.name=Prywatne notatki +book_lore.bf_bomb_5.author=M. Porter +book_lore.bf_bomb_5.page.0=Po prostu... nie mogę się z tym pogodzić, nawet kilka dni później. To było z góry przesądzone, biorąc pod uwagę to, jak lekcewaŌący był zespół naukowy w kwestii bezpieczeństwa. $ $ Doktor Melfyn, MS, odszedł. Martwy, być moÅŒe. Widziałem to na własne oczy, w ich komorze testowej. +book_lore.bf_bomb_5.page.1=Właśnie dostaliśmy kolejną partię czystego balefire, a on odzyskał sprzęt elektryczny i źródło energii, aby przetestować swoją propozycję. Nie wiem, co to spowodowało (czy zasilanie było włączone? czy zaczął za wcześnie?), ale wydawało się, ÅŒe postępowało to w boleśnie zwolnionym tempie, +book_lore.bf_bomb_5.page.2=gdy zielone światło pochłonęło stół, baterię i stojącego tylko doktora Melfyna metr dalej. Nawet kiedy stół zamienił się w kałuŌę płonącego metalu na podłodze, nie płonął. Nie wiem, co widziałem w jego oczach... $ $ PrzeraÅŒenie, czy podziw +book_lore.bf_bomb_5.page.3=dla jego dalszego przetrwania? Czymkolwiek był nasz „cudowny” materiał, nie obchodziło go to. Z jasnym blaskiem światła zniknął w następnej chwili. Czy został odparowany? spalony? unicestwiony? wysłany do samego jebanego piekła, sam juÅŒ nie wiem! +book_lore.bf_bomb_5.page.4=Główny badacz mnie wkurza. Powiedział, ÅŒe moglibyśmy być bardziej ostroÅŒni, dalej jeździć cięŌarówkami, niezaleÅŒnie od innych poprawiających morale brudów, które wypluł. Ten dupek nigdy się nie domyśli, ÅŒe przez igranie z ogniem moÅŒe się poparzyć. $ $ Nie zawracałem sobie głowy +book_lore.bf_bomb_5.page.5=rezygnacją, po prostu złapałem swoje pierdoły i odszedłem. W kaÅŒdym razie nie ma to znaczenia; biorąc pod uwagę brak telefonów i chmurę grzybową, która unosiła się nad moim (teraz byłym) miejscem pracy, albo wszystko wysadzili w powietrze, albo wkroczyli w pełną jurysdykcję wojskową. +book_lore.bf_bomb_5.page.6=NaleÅŒy dokonać istotnego rozróŌnienia między sekcją a WISEKCJĄ, które najwyraźniej zostało przez nich pominięte. Mogą przeprowadzać sekcję metalu lub atomów, ile chcą, ale wdzieranie się w rzeczywistość i wiwisekcja samej rzeczywistości zakończy się tylko większą liczbą doktorów Melfynów. Kto wie! +book_lore.bf_bomb_5.page.7=Rząd chce w końcu wpakować to gówno w bomby, moÅŒe zobaczymy jeszcze parę wojen, parę milionów pogodzonych z losem gorszym od śmierci. Nie mogą tego wiecznie ukrywać. $ $ Nie obchodzi mnie to. Nigdy więcej. Proszę, BoÅŒe, pozwól mi wrócić +book_lore.bf_bomb_5.page.8=do prawdziwej nauki. $ $ Do diabła, Mae, weź się w garść... + +book_lore.beacon.name=Instrukcja obsługi sygnalizatora świetlnego +book_lore.beacon.author=Flim Flam Industries +book_lore.beacon.page.0=Dziękujemy za zakup Podświetlanego Sygnalizatora Świetlnego Mk.2 (wer. 1.3)! Ta niewielka ksiÄ…ÅŒeczka zawiera krótkie wprowadzenie do działania sygnalizatora, a takÅŒe jego wewnętrznego działania. +book_lore.beacon.page.1=Rozdział 1: Architektura $ KaÅŒda jednostka składa się z czterech głównych części: Obwodu sterującego, latarni, syreny mgłowej oraz obudowy, w której znajdują się pozostałe części. Szczegółowe objaśnienie obwodu głównego +book_lore.beacon.page.2=znajduje się na schemacie obwodu znajdującym się po wewnętrznej stronie pokrywy serwisowej obudowy. Latarnia składa się z poliwęglanowej obudowy zawierającej dwukolorową ÅŒarówkę halogenową o mocy 250 W ze standardowym gniazdem 200 mm, zamienniki +book_lore.beacon.page.3=ÅŒarówki moÅŒna zamówić w naszych sklepach. Å»arówki innych firm nie są zalecane, poniewaÅŒ nie moÅŒemy zapewnić bezpiecznego działania. Obudowa wykonana jest ze specjalistycznej stali nierdzewnej ocynkowanej i jest odporna na warunki atmosferyczne. +book_lore.beacon.page.4=Rozdział 2: Latarnia $ Podstawowym zastosowaniem latarni jest zapewnienie światła w celu ułatwienia konserwacji w trudnych warunkach pogodowych oraz wskaźnik stanu. Jeśli autotest po włączeniu zasilania (POST) zakończy się niepowodzeniem, latarnia +book_lore.beacon.page.5=zaświeci się na czerwono, w przeciwnym razie zaświeci się na zielono. NaleÅŒy pamiętać, ÅŒe kolory mogą się róŌnić w zaleÅŒności od ÅŒarówki zastępczej. +book_lore.beacon.page.6=Rozdział 3: Syrena mgłowa $ Syrena mgłowa jest głównym urządzeniem komunikacyjnym sygnalizatora. Sygnalizator jest przeznaczony do komunikacji peer-to-peer (P2P), jak równieÅŒ do rozgłaszania wiadomości. +book_lore.beacon.page.7=Rozdział 4: Peer-to-Peer $ Szczegółowe informacje na temat komunikacji moÅŒna znaleźć w podręczniku komunikacji. Krótki opis nawiązywania połączenia P2P jest następujący: Najpierw sygnalizator musi dać sygnał „ROZPOCZNIJ POŁĄCZENIE”, +book_lore.beacon.page.8=w postaci pojedynczego, długiego dźwięku. Wszyscy dostępni partnerzy równieÅŒ powinni odpowiedzieć jednym długim tonem (kolejność określona przez odległość, a takÅŒe wytyczne dotyczące komunikacji opisane w podręczniku, sekcja „Odpowiadanie na połączenie”) +book_lore.beacon.page.9=Gdy Ōądany peer odpowie, daj „AKCEPTUJ POŁĄCZENIE”. sygnału, składającego się z dwóch długich tonów, peer równieÅŒ odpowie dwoma długimi tonami. Cała późniejsza komunikacja musi odbywać się przy uÅŒyciu wstępnie wynegocjowanych sygnałów, +book_lore.beacon.page.10=najczęściej przy uÅŒyciu standardu FAR-5M. Komunikacja zakończy się natychmiast, jeśli nie wynegocjowano ÅŒadnego standardu, słuŌąc jako „ping”. Jeśli komunikacja będzie kontynuowana, połączenie moÅŒna zakończyć kolejnym długim pojedynczym tonem „KONIEC POŁĄCZENIA”. +book_lore.beacon.page.11=Rozdział 5: Gwarancja $ [ strona celowo pozostawiona pusta ] + +cannery.f1=[ Naciśnij F1 aby uzyskać pomoc ] +cannery.centrifuge=Wirówka wzbogacająca +cannery.centrifuge.0=Wirówki wzbogacające mogą być uzupełnione gazem za pomocą zwykłych przewodów płynowych. +cannery.centrifuge.1=Większość receptur wymaga wielu wirówek. Produkty pośrednie nie mogą być transportowane rurami. +cannery.centrifuge.2=Ta strona działa jak łącznik, który wyprowadza produkt pośredni do sąsiedniej wirówki. +cannery.centrifuge.3=Heksafluorek uranu moÅŒna przetwarzać za pomocą zaledwie dwóch wirówek, co jednak spowoduje wytworzenie paliwa uranowego i uranu-238. +cannery.centrifuge.4=Pełne przetworzenie go na uran-235 i uran-238 wymaga łącznie czterech wirówek. +cannery.centrifuge.5=Niektóre przepisy wymagają równieÅŒ ulepszenia przetaktowywania wirówki. +cannery.crucible=Tygiel +cannery.crucible.0=Tygiel słuÅŒy do wytapiania rud, sztabek lub innych metalowych przedmiotów do stopowania i odlewania ich w róŌne kształty. +cannery.crucible.1=Wymaga zewnętrznego źródła ciepła podłączonego od dołu, takiego jak palenisko. +cannery.crucible.2=Po podgrzaniu tygla moÅŒna uÅŒywać na dwa sposoby, z szablonem receptury lub bez niego. +cannery.crucible.3=Tygiel posiada dwa bufory do przechowywania materiału: +cannery.crucible.4=Bufor po lewej stronie przeznaczony jest na §aprodukty uboczne§r, wszystkie materiały wytopione bez szablonu receptury wylądują tutaj. +cannery.crucible.5=Jeśli umieszczony jest przepis, w tym miejscu będą równieÅŒ przechowywane materiały niezgodne z recepturą. +cannery.crucible.6=Materiały w tym buforze nie będą ze sobą reagowały, moÅŒna je tylko wyprowadzać z zielonego wylotu do odlewania. +cannery.crucible.7=Bufor po prawej stronie jest przeznaczony na §cprzepisy§r, jeśli receptura jest zainstalowana i dany materiał jest odpowiedni dla tej receptury, wyląduje tutaj. +cannery.crucible.8=Materiały będą powoli łączyć się w materiał wyjściowy, który jest automatycznie wyprowadzany z czerwonego wylotu. +cannery.crucible.9=ZauwaÅŒ, ÅŒe tylko ten bufor obsługuje receptury. Jeśli szablon zostanie umieszczony wstecz, materiały w buforze produktów ubocznych nie będą się łączyć ani przenosić do bufora receptur. +cannery.crucible.10=Wylot automatycznie wyprowadza materiał, jeśli cel jest prawidłowy, na przykład kanał odlewniczy lub forma. +cannery.crucible.11=Podobnie jak w przypadku wszystkich bloków odlewniczych, do usunięcia całego materiału z tygla moÅŒna uÅŒyć łopaty. + +cannery.fensu=FEnSU +cannery.fensu.0=FEnSU jest w stanie przechowywać absurdalne ilości energii, ponad 9EHE (to jest dziewiątka i 18 zer). +cannery.fensu.1=Jest tylko jedno złącze zasilania, które się znajduje na spodzie. +cannery.fensu.2=Jest to równieÅŒ jedyne miejsce, w którym FEnSU moÅŒe odbierać sygnał z czerwonego kamienia. + +cannery.firebox=Palenisko +cannery.firebox.0=Palenisko spala łatwopalne przedmioty w celu wytworzenia ciepła. +cannery.firebox.1=MoÅŒe spalić kaÅŒdy łatwopalny przedmiot, chociaÅŒ paliwa wyÅŒszej jakości, takie jak węgiel, koks i paliwo stałe, palą się dłuÅŒej i mają wyÅŒszą temperaturę. +cannery.firebox.2=Ciepło jest oddawane przez miedziany styk w górnej części paleniska. Maszyny z identycznym stykiem na spodzie mogą odbierać ciepło po umieszczeniu na górze paleniska. +cannery.firebox.3=Jeśli ciepło nie jest zuÅŒywane, a bufor ciepła się zapełni, palenisko wyłączy się, aby zapobiec marnowaniu paliwa. +cannery.firebox.4=Jedną z takich maszyn jest silnik Stirlinga, który zamienia ciepło bezpośrednio w energię. + +cannery.foundryChannel=Kanał odlewniczy +cannery.foundryChannel.0=Kanały odlewnicze słuŌą do transportu stopionego materiału z tygla lub zbiornika magazynowego do form. +cannery.foundryChannel.1=Kanały mogą przyjmować materiał zarówno od góry - przez wylot lub bezpośrednio z tygla - lub z boku z innych kanałów. +cannery.foundryChannel.2=Podczas transportu materiałów kanały będą priorytetowały bloki takie jak wyloty i płytkie formy. +cannery.foundryChannel.3=Gdy nie moÅŒe dostarczyć wylotu lub formy, materiał popłynie do sąsiedniego kanału. +cannery.foundryChannel.4=Pozostałości moÅŒna usunąć za pomocą łopaty. + +cannery.silex=FEL i SILEX +cannery.silex.0=Laser na swobodnych elektronach (FEL) wykorzystuje energię i kryształ lasera do wytworzenia potęŌnej wiązki laserowej. +cannery.silex.1=UwaÅŒaj, bo laser będzie palić/topić słabsze bloki... +cannery.silex.2=...ale nie przeciwwybuchowe. +cannery.silex.3=FEL słuÅŒy do zasilania laserowej komory separacji izotopów (SILEX). FEL i SILEX muszą być oddalone od siebie o co najmniej dwa bloki. +cannery.silex.4=Laser musi wejść przez szklane otwory SILEX. Niepoprawne wycelowanie moÅŒe go zniszczyć. +cannery.silex.5=Otwory po bokach moÅŒna wykorzystać do podłączenia przewodów płynowych do SILEX. +cannery.silex.6=Oprócz dwóch złączy po bokach, na dole znajduje się trzecie ukryte złącze, z którego moÅŒna wyciągać przedmioty. +cannery.silex.7=KaÅŒda receptura wymaga określonego typu lasera. UÅŒycie mocniejszego typu niÅŒ wymagany spowoduje szybsze przetwarzanie elementów. +cannery.silex.8=Jeden FEL moÅŒe zasilać do 5 SILEX. KaÅŒdy SILEX musi być oddalony od siebie o jeden blok. + +cannery.stirling=Silnik Stirlinga +cannery.stirling.0=Silnik Stirlinga wykorzystuje energię cieplną z zewnętrznych źródeł do wytwarzania mocy. +cannery.stirling.1=Musi być umieszczony na maszynie wytwarzającej ciepło, takiej jak palenisko. +cannery.stirling.2=Ilość ciepła, którą moÅŒe wykorzystać, jest jednak ograniczona, nadmierne kręcenie moÅŒe prowadzić do katastrofalnej awarii. +cannery.stirling.3=Ulepszona wersja moÅŒe wytrzymać znacznie więcej ciepła bez psucia się. + +cannery.willow=Wierzba musztardowa +cannery.willow.0=Wierzba musztarda to roślina, która umoÅŒliwia pozyskiwanie kadmu metalicznego. +cannery.willow.1=Wierzby moÅŒna sadzić na ziemi, trawie, a nawet martwej/oleistej ziemi, ale do wzrostu potrzebują wody. +cannery.willow.2=Wierzby moÅŒna nawozić mączką kostną lub nawozem przemysłowym. Nie potrzebują światła do wzrostu. +cannery.willow.3=Po drugim etapie wzrostu będą potrzebować dodatkowego bloku przestrzeni nad nimi, aby dalej rosnąć. +cannery.willow.4=Po czwartej fazie wzrostu wymagają pod nimi martwej lub oleistej ziemi. +cannery.willow.5=MoÅŒna to zrobić albo ręcznie sadząc wierzby na martwej/oleistej glebie, albo mając w pobliÅŒu wieŌę do szczelinowania hydraulicznego, która stale zanieczyszcza ziemię. +cannery.willow.6=Po osiągnięciu ostatniego etapu wierzba usunie zanieczyszczenia z ziemi, zamieniając martwą/oleistą ziemię z powrotem w zwykłą ziemię. +cannery.willow.7=Teraz moÅŒna zbierać liście wierzby. Złamanie górnego bloku spowoduje upuszczenie małej wierzby, 3-6 liści i zachowanie dolnej części rośliny w nienaruszonym stanie. +cannery.willow.8=Wkrótce roślina zacznie ponownie rosnąć, wydając więcej liści, jeśli ziemia zostanie zastąpiona oleistą ziemią. Liście moÅŒna przetwarzać na proszek kadmu za pomocą zakwaszacza rud. +cannery.willow.9=Zbiór liści wierzby moÅŒna zautomatyzować za pomocą automatycznej piły tarczowej, która łamie tylko rośliny gotowe do zbioru. + +chem.ARSENIC=Ekstrakcja arsenu +chem.ASPHALT=Produkcja asfaltu +chem.BAKELITE=Produkcja bakelitu +chem.BALEFIRE=Mieszanie Paliwa Rakietowego BF +chem.BP_BIOFUEL=Transestryfikacja biopaliw +chem.BP_BIOGAS=Produkcja biogazu +chem.C4=Synteza C-4 +chem.CC_CENTRIFUGE=Separacja chlorokalcytu +chem.CC_ELECTROLYSIS=Elektroliza chlorku wapnia +chem.CC_HEATING=Zaawansowane upłynnianie węgla +chem.CC_HEAVY=Podstawowe upłynnianie węgla +chem.CC_I=Ulepszone upłynnianie węgla +chem.CC_NAPHTHA=Upłynnianie węgla naftowego +chem.CC_OIL=Upłynnianie węgla +chem.CIRCUIT_4=Produkcja obwodów przetaktowanych +chem.CIRCUIT_5=Produkcja obwodów wysokiej wydajności +chem.CO2=Produkcja dwutlenku węgla +chem.COALGAS_LEADED=Mieszanie benzyny z węglem ołowiowym +chem.COLTAN_CLEANING=Oczyszczanie koltanu +chem.COLTAN_CRYSTAL=Krystalizacja tantalu +chem.COLTAN_PAIN=Produkcja tantalitu pandemonium(III). +chem.CONCRETE=Produkcja betonu +chem.CONCRETE_ASBESTOS=Produkcja betonu azbestowego +chem.COOLANT=Mieszanie chłodziwa +chem.CORDITE=Produkcja kordytu +chem.CRYOGEL=Mieszanie krioÅŒeli +chem.DESH=Produkcja Deshu +chem.DEUTERIUM=Ekstrakcja deuteru +chem.DUCRETE=Produkcja dukretu +chem.DYN_DNT=Dynosynteza dineutronium +chem.DYN_EUPH=Dynosynteza eufemu +chem.DYN_SCHRAB=Dynosynteza schrabidu +chem.DYNAMITE=Synteza dynamitu +chem.ELECTROLYSIS=Krioelektroliza +chem.EPEARL=Synteza perły Kresu +chem.ETHANOL=Produkcja etanolu +chem.FC_BITUMEN=Kraking asphaltu +chem.FC_DIESEL_KEROSENE=Kraking oleju napędowego +chem.FC_GAS_PETROLEUM=Kraking gazowy +chem.FC_I_NAPHTHA=Kraking oleju przemysłowego +chem.FC_KEROSENE_PETROLEUM=Kraking kerozyny +chem.FP_HEAVYOIL=Przetwarzanie oleju cięŌkiego +chem.FP_LIGHTOIL=Przetwarzanie oleju lekkiego +chem.FP_NAPHTHA=Przetwarzanie nafty +chem.FP_SMEAR=Przetwarzanie oleju przemysłowego +chem.FR_PETROIL=Mieszanie benzyny cięŌkiej +chem.FR_REOIL=Ponowne przetwarzanie oleju +chem.FRACKSOL=Produkcja roztworu do szczelinowania +chem.GASOLINE=Produkcja gazoliny +chem.GASOLINE_LEADED=Mieszanie gazoliny ołowiowej +chem.HEAVY_ELECTROLYSIS=Krioelektroliza cięŌkiej wody +chem.HELIUM3=Ekstrakcja helu-3 z murawy księŌycowej +chem.KEVLAR=Produkcja mieszanki kevlarowej +chem.LPG=Skraplanie gazu ziemnego +chem.LUBRICANT=Mieszanie smaru +chem.METH=Synteza metamfetaminy +chem.NITAN=Mieszanie superpaliwa NITAN +chem.NITRIC_ACID=Produkcja kwasu azotowego +chem.OIL_SAND=Ekstrakcja piasku smołowego +chem.OSMIRIDIUM_DEATH=Produkcja roztworu osmirydowego +chem.PC_ELECTROLYSIS=Elektroliza chlorku potasu +chem.PEROXIDE=Produkcja nadtlenku wodoru +chem.PET=Synteza PET +chem.PETROIL_LEADED=Mieszanie benzyny ołowiowej +chem.POLYMER=Polimeryzacja +chem.PUF6=Produkcja sześciofluorku plutonu +chem.RUBBER=Produkcja gumy +chem.SAS3=Produkcja trisiarczku schrabidu +chem.SATURN=Produkcja saturnytu +chem.SCHRABIDATE=Produkcja schrabidanu ÅŒelaza +chem.SCHRABIDIC=Mieszanie kwasu schrabidowego +chem.SF_BIOFUEL=Solidyfikacja biopaliw +chem.SF_BIOGAS=Solidyfikacja biogazu +chem.SF_DIESEL=Solidyfikacja oleju napędowego +chem.SF_GAS=Solidyfikacja gazu ziemnego +chem.SF_HEATINGOIL=Solidyfikacja oleju opałowego +chem.SF_HEAVYOIL=Solidyfikacja oleju cięŌkiego +chem.SF_KEROSENE=Solidyfikacja kerozyny +chem.SF_LIGHTOIL=Solidyfikacja oleju lekkiego +chem.SF_LUBRICANT=Solidyfikacja smaru +chem.SF_NAPHTHA=Solidyfikacja nafty +chem.SF_OIL=Solidyfikacja ropy naftowej +chem.SF_PETROIL=Solidyfikacja benzyny +chem.SF_PETROLEUM=Solidyfikacja gazu ziemnego +chem.SF_RECLAIMED=Solidyfikacja oleju z odzysku +chem.SF_SMEAR=Solidyfikacja oleju przemysłowego +chem.SOLID_FUEL=Produkcja stałego paliwa rakietowego +chem.SOLVENT=Mieszanie rozpuszczalników organicznych +chem.STEAM=Gotowanie wody +chem.SULFURIC_ACID=Produkcja kwasu siarkowego +chem.TATB=Synteza TATB +chem.TEL=Mieszanie TEL +chem.TEST=Test +chem.TNT=Synteza TNT +chem.UF6=Produkcja sześciofluorku uranu +chem.VIT_GAS=Zeszklenie gazowych odpadów jądrowych +chem.VIT_LIQUID=Zeszklenie płynnych odpadów jądrowych +chem.XENON=Cykl ksenonowy Linde +chem.XENON_OXY=Wzmocniony cykl ksenonowy Linde +chem.YELLOWCAKE=Produkcja Ōółtego ciasta + +commands.satellite.no_satellite=Nie znaleziono satelity o tej częstotliwości! +commands.satellite.not_a_satellite=Trzymany przedmiot nie jest satelitą! +commands.satellite.satellite_descended=Satelita zszedł pomyślnie. +commands.satellite.satellite_orbited=Satelita wystrzelony. +commands.satellite.should_be_run_as_player=Ta komenda powinna być uruchomiona przez gracza! +container.amsBase=Podstawa AMS (Dekoracja) +container.amsEmitter=AMS Emitter (Dekoracja) +container.amsLimiter=AMS Stabilizer (Dekoracja) +container.anvil=Kowadło poziomu %s +container.arcFurnace=Piec łukowy +container.armorTable=Stół modyfikacji zbroi +container.assembler=Maszyna MontaÅŒowa +container.autocrafter=Automatyczny stół rzemieślniczy +container.barrel=Beczka +container.bat9000=Wielki Walony Zbiornik 9000 +container.battery=Magazyn energii +container.bombMulti=Bomba wielozadaniowa +container.catalyticReformer=Reformator katalityczny +container.centrifuge=Wirówka +container.chemplant=Zakład chemiczny +container.compactLauncher=Kompaktowa platforma startowa +container.craneBoxer=Pakowacz konwejerowy +container.craneExtractor=Ejektor konwejerowy +container.craneGrabber=Chwytak konwejerowy +container.craneInserter=Wprowadzacz konwejerowy +container.craneRouter=Ruter konwejerowy +container.craneUnboxer=Rozpakowywacz konwejerowy +container.crateDesh=Deshowa skrzynia +container.crateIron=Å»elazna skrzynia +container.crateSteel=Stalowa skrzynia +container.crateTemplate=Skrzynia szablonowa +container.crateTungsten=Tungstenowa skrzynia +container.crystallizer=Zakwaszacz rud +container.cyclotron=Cyklotron +container.dfcCore=Rdzeń Mrocznej Fuzji (DFC) +container.dfcEmitter=Emiter DFC +container.dfcInjector=Wtryskiwacz paliwa DFC +container.dfcReceiver=Odbiornik DFC +container.dfcStabilizer=Stabilizator DFC +container.diFurnace=Piec hutniczy +container.diFurnaceRTG=Jądrowy piec hutniczy +container.electricFurnace=Piec elektryczny +container.epress=Prasa elektryczna +container.factoryAdvanced=Zaawansowana fabryka +container.factoryTitanium=Podstawowa fabryka +container.fluidtank=Zbiornik +container.fileCabinet=Szafka na akta +container.forceField=Emiter pola siłowego +container.frackingTower=WieÅŒa do szczelinowania hydraulicznego +container.furnaceCombination=Piec kombinowany +container.furnaceIron=Å»elazny piec +container.furnaceSteel=Stalowy piec +container.fusionMultiblock=DuÅŒy reaktor fuzyjny +container.fusionaryWatzPlant=Fuzjonaryczna fabryka Watz +container.gasCentrifuge=Wirówka gazowa +container.gasFlare=Pochodnia gazowa +container.generator=Reaktor jądrowy +container.hadron=Akcelerator cząsteczek +container.heaterFirebox=Palenisko +container.heaterHeatex=Wymiennik ciepła +container.heaterOilburner=Palnik płynów +container.heaterOven=Piekarnik grzewczy +container.iGenerator=Generator przemysłowy +container.keyForge=Stół ślusarski +container.launchPad=Platforma startowa rakiet +container.launchTable=DuÅŒa platforma startowa +container.leadBox=Skrzynia przechowawcza +container.machineBoiler=Podgrzewacz oleju +container.machineCMB=Piec stali CMB +container.machineCoal=Generator spalinowy +container.machineCoker=Jednostka koksownicza +container.machineCompressor=Kompresor +container.machineCrucible=Tygiel +container.machineDiesel=Generator olejowo napędowy +container.machineElectricBoiler=Elektryczny podgrzewacz oleju +container.machineElectrolyser=Maszyna do elektrolizy +container.machineFEL=FEL +container.machineITER=Reaktor fuzyjny +container.machineLargeTurbine=Przemysłowa turbina parowa +container.machineLiquefactor=Upłynniacz +container.machineMixer=Mikser przemysłowy +container.machineRefinery=Rafineria ropy +container.machineSelenium=Silnik radialny +container.machineShredder=Niszczarka +container.machineSILEX=SILEX +container.machineSolidifier=Utwardzacz +container.machineTurbine=Turbina parowa +container.machineTurbofan=Turbofan +container.machine_schrabidium_transmutator=Urządzenie do transmutacji schrabidu +container.massStorage=Magazyn +container.microwave=Mikrofalówka +container.miningDrill=Automatyczne wiertło górnicze +container.miningLaser=Laser górniczy +container.missileAssembly=Stacja montaÅŒu rakiet +container.nukeBoy=Little Boy +container.nukeCustom=Niestandardowa atomówka +container.nukeFleija=F.L.E.I.J.A. +container.nukeFstbmb=Bomba balefire +container.nukeFurnace=Piec o napędzie atomowym +container.nukeGadget=GadÅŒet +container.nukeMan=Fat Man +container.nukeMike=Ivy Mike +container.nukeN2=Mina N² +container.nukeN45=Mina morska N45 +container.nukePrototype=Prototyp +container.nukeSolinium=Niebieska Płukanka +container.nukeTsar=Car-bomba +container.oilWell=Wiertnica naftowa +container.orbus=CięŌki magazyn antymaterii +container.plasmaHeater=Podgrzewacz plazmowy +container.press=Prasa spalinowa +container.puf6_tank=Zbiornik PuF6 +container.pumpjack=Kiwon +container.radGen=Silnik zasilany promieniowaniem +container.radar=Radar +container.radiobox=Nadajnik FM +container.radiolysis=Komora RTG i radiolizy +container.radiorec=Radio FM +container.rbmkBoiler=Kanał parowy RBMK +container.rbmkControl=Pręty kontrolne RBMK +container.rbmkControlAuto=Automatyczne pręty kontrolne RBMK +container.rbmkHeater=Podgrzewacz płynów RBMK +container.rbmkOutgasser=Kanał napromieniania RBMK +container.rbmkReaSim=Pręt paliwowy RBMK (ReaSim) +container.rbmkRod=Pręt paliwowy RBMK +container.rbmkStorage=Kolumna magazynowa RBMK +container.reactorBreeding=Reaktor prędki powielający +container.reactorControl=Blok zdalnego sterowania reaktoru +container.reactorLarge=DuÅŒy reaktor jądrowy +container.reactorResearch=Reaktor badawczy +container.reix=Komputer główny Rei-X +container.rtg=Generator RT +container.rtgFurnace=Piec RTG +container.rttyCounter=Redstone'owy radiowy licznik przedmiotów +container.rttyReceiver=Redstone'owy odbiornik radiowy +container.rttySender=Redstone'owy nadajnik radiowy +container.safe=Sejf +container.satDock=Lądowisko ładunkowe +container.satLinker=Urządzenie SatLink +container.siren=Syrena +container.soyuzCapsule=Kapsuła do lądowania ładunku +container.soyuzLauncher=Platforma startowa Sojuza +container.storageDrum=Bęben do usuwania odpadów jądrowych +container.teleLinker=Urządzenie TelLink +container.teleporter=Teleporter +container.trainTram=Elektryczny tramwaj platformowy +container.turbinegas=Turbina gazowa o cyklu kombinowanym +container.turretArty=Greg +container.turretChekhov=Pistolet Czechowa +container.turretFriendly=Pan Przyjazny +container.turretFritz=Fritz +container.turretHIMARS=Henry +container.turretHoward=Howard +container.turretJeremy=Jeremiasz +container.turretMaxwell=Maxwell +container.turretRichard=Ryszard +container.turretSentry=Brown +container.turretTauon=Taon +container.uf6_tank=Zbiornik UF6 +container.vacuumDistill=Rafineria próŌniowa +container.wasteDrum=Bęben po zuÅŒytym paliwie +container.watzPowerplant=Elektrownia Watz +container.zirnox=Reaktor jądrowy ZIRNOX + +crucible.aa=Produkcja zaawansowanych stopów +crucible.cdalloy=Produkcja stali kadmowej +crucible.cmb=Produkcja stali CMB +crucible.ferro=Produkcja ferrouranu +crucible.hematite=Produkcja ÅŒelaza z hematytu +crucible.hss=Produkcja stali szybkotnącej +crucible.malachite=Produkcja miedzi z malachitu +crucible.redcopper=Produkcja czerwonej miedzi +crucible.steel=Produkcja stali +crucible.steelMeteoric=Produkcja stali z ÅŒelaza meteorytowego +crucible.steelPig=Produkcja stali z surówki hutniczej +crucible.steelWrought=Produkcja stali z kutego ÅŒelaza +crucible.tcalloy=Produkcja stali technetowej + +death.attack.acid=%1$s wpadł w kwas. +death.attack.acidPlayer=%1$s został rozpuszczony przez %2$s. +death.attack.ams=%1$s był skąpany w cząsteczkach, które jeszcze nie zostały nazwane przez ludzką naukę. +death.attack.amsCore=%1$s wyparował w ogniu osobliwości. +death.attack.asbestos=%1$s ma obecnie prawo do rekompensaty finansowej. +death.attack.bang=%1$s został rozerwany na kawałki wielkości kęsa. +death.attack.blackhole=%1$s został spaghettizowany. +death.attack.blender=%1$s został posiekany na małe kawałki wielkości kęsa. +death.attack.boat=%1$s został potrącony przez łódkę. +death.attack.boil=%1$s został ugotowany ÅŒywcem przez %2$s. +death.attack.boxcar=%1$s został zmiaÅŒdÅŒony przez spadający wagon. No cóŌ. +death.attack.broadcast=%1$s'owi roztopił się mózg. +death.attack.building=%1$s został lekko pacnięty przez spadający budynek. +death.attack.cheater=Jelita %1$s zamieniły się w owies. (???) +death.attack.chopperBullet=%1$s został rozwalony przez %2$s. +death.attack.cloud=%1$s roztopił się jak lody na słońcu. +death.attack.cmb=%1$s został wygazowany przez %2$s. +death.attack.digamma=%1$s wszedł w przepaść. +death.attack.electricity=%1$s został poraÅŒony prądem. +death.attack.electrified=%1$s został zelektryfikowany przez %2$s. +death.attack.euthanized=%1$s został poddany eutanazji przez %2$s. +death.attack.euthanizedSelf2=%1$s zdobywa nagrodę Darwina. +death.attack.euthanizedSelf=%1$s dokonał eutanazji na samym sobie. Kretyn. +death.attack.exhaust=%1$s został zamieniony w szaszłyk przez startującą rakietę. +death.attack.flamethrower=%1$s został skremowany przez %2$s. +death.attack.flamethrower.item=%1$s został skremowany przez %2$s za pomocą %3$s. +death.attack.ice=%1$s został zamieniony w loda na patyku przez %2$s. +death.attack.laser=%1$s został obrócony w popiół przez %2$s. +death.attack.laser.item=%1$s został obrócony w popiół przez %2$s za pomocą %3$s. +death.attack.lead=%1$s zmarł od zatrucia ołowiem. +death.attack.lunar=%1$s zapomniał naładować swoje narządy witalne. +death.attack.meteorite=%1$s został uderzony przez spadający kamyk z kosmosu. +death.attack.microwave=%1$s eksplodował promieniowaniem mikrofalowym. +death.attack.mku=%1$s zmarł z nieznanych przyczyn. +death.attack.monoxide=%1$s zapomniał wymienić baterie w czujniku czadu. +death.attack.mudPoisoning=%1$s zmarł w trującym błocie. +death.attack.nuclearBlast=%1$s został wysadzony w powietrze przez wybuch atomowy. +death.attack.overdose=%1$s przedawkował i udusił się. +death.attack.pc=%1$s został zredukowany do kałuÅŒy w róŌowej chmurze. +death.attack.plasma=%1$s został spalony przez %2$s. +death.attack.radiation=%1$s zmarł w wyniku zatrucia popromiennego. +death.attack.revolverBullet=%1$s został postrzelony w głowę przez %2$s. +death.attack.revolverBullet.item=%1$s został postrzelony w głowę przez %2$s za pomocą %3$s. +death.attack.rubble=%1$s został przygnieciony gruzem. +death.attack.shrapnel=%1$s został poszarpany odłamkiem. +death.attack.spikes=%1$s został wbity w pal. +death.attack.subAtomic1=Atomy %1$s zostały zniszczone przez %2$s. +death.attack.subAtomic2=%1$s był źle wyrównany z QPU, poniewaÅŒ %2$s majstrował przy ich faktycznej prędkości. +death.attack.subAtomic3=Dywergencja %1$s'a spadła poniÅŒej 1 procent z powodu %2$s'a. +death.attack.subAtomic4=%1$s został podzielony przez zero przez %2$s. +death.attack.subAtomic5=%1$s został uniewaÅŒniony przez %2$s. +death.attack.suicide=%1$s odstrzelił sobie głowę. +death.attack.taint=%1$s zmarł z powodu guzów strumieniowych. +death.attack.tau=%1$s został podziurawiony przez %2$s za pomocą ujemnie naładowanych taonów. +death.attack.tauBlast=%1$s ładował XVL1456 zbyt długo i został rozerwany na kawałki. +death.attack.teleporter=%1$s został teleportowany w nicość. + +desc.gui.assembler.warning=§cBłąd:§r Ta maszyna wymaga szablonu montaÅŒowego! +desc.gui.chemplant.warning=§cBłąd:§r Ta maszyna wymaga szablonu chemicznego! +desc.gui.gasCent.enrichment=§2Wzbogacanie§r$Wzbogacanie uranu wymaga kaskad.$Kaskady z dwiema wirówkami dadzą$paliwo uranowe, kaskady z czterema wirówkami$dadzą całkowitą separację. +desc.gui.gasCent.output=§6Transfer płynu§r$Płyn moÅŒna przenieść do innej wirówki$przez port wyjściowy w celu dalszego przetwarzania. +desc.gui.nukeBoy.desc=§1Wymagane:§r$ * Osłona neutronowa$ * Pocisk U235$ * Cel podkrytyczny U235$ * Materiał miotający$ * Zapalnik bomby +desc.gui.nukeGadget.desc=§1Wymagania:§r$ * 4 matryce soczewek odłamkowo$-burzących pierwszej generacji$ * CięŌki rdzeń plutonowy$ * Okablowanie +desc.gui.nukeMan.desc=§1Wymagane:§r$ * 4 zestawy soczewek$odłamkowo-burzących pierwszej generacji$ * Rdzeń plutonowy$ * Jednostka strzelająca bombami +desc.gui.nukeMike.desc=§1Wymagane:§r$ * 4 układy soczewek$odłamkowo-burzących$ * Rdzeń plutonowy$ * Deuterowy układ chłodzący$ * Zbiornik deuteru pokryty uranem$ * Zbiornik deuteru +desc.gui.nukeTsar.desc=§1Wymagane:§r$ * 4 układy soczewek$odłamkowo-burzących$ * Rdzeń plutonowy$§9Opcjonalnie:§r$ * Rdzeń car-bomby +desc.gui.radiolysis.desc=§9Opis§r$Ten RTG jest wydajniejszy od innych$i jest wyposaÅŒony w komorę radiolizy$do krakingu i sterylizacji. +desc.gui.rtgBFurnace.desc=Wymaga co najmniej 15 ciepła do przetworzenia$Im więcej ciepła, tym szybciej działa$Ciepło przekraczające maksymalną prędkość nie będzie miało ÅŒadnego efektu$KrótkoÅŒyciowe pelety mogą się zepsuć +desc.gui.rtg.heat=§eAktualny poziom ciepła: %s +desc.gui.rtg.pellets=Akceptowane pellety: +desc.gui.rtg.pelletHeat=%s (%s ciepła) +desc.gui.rtg.pelletPower=%s (%s HE/tick) +desc.gui.template=§9Szablony§r$Szablony moÅŒna tworzyć$za pomocą folderu szablonów maszyn. +desc.gui.turbinegas.automode=§2Automatyczny tryb ograniczania turbiny§r$Klikając przycisk „AUTO”, turbina$automatycznie dostosuje produkcję energii$w oparciu o moc wymaganą z sieci +desc.gui.turbinegas.fuels=§6Dozwolone paliwa:§r +desc.gui.turbinegas.warning=§cNiski poziom paliwa lub smaru!§r +desc.gui.upgrade=§lDozwolone ulepszenia:§r +desc.gui.upgrade.afterburner= * §dDopalacz§r: Kumuluje się do poziomu 3 +desc.gui.upgrade.effectiveness= * §aWydajność§r: Kumuluje się do poziomu 3 +desc.gui.upgrade.overdrive= * §7Nadbieg§r: Kumuluje się do poziomu 3 +desc.gui.upgrade.power= * §1Oszczędzanie energii§r: kumuluje się do poziomu 3 +desc.gui.upgrade.speed= * §4Szybkość§r: kumuluje się do poziomu 3 +desc.gui.zirnox.coolant=§3Chłodziwo§r$CO2 przenosi ciepło z rdzenia do wody.$Spowoduje to zagotowanie bardzo gęstej pary.$Wydajność chłodzenia i produkcji pary$opiera się na ciśnieniu. +desc.gui.zirnox.pressure=§6Ciśnienie§r$Ciśnienie moÅŒna zmniejszyć poprzez wywietrzanie CO2.$Jednak zbyt niskie ciśnienie spowoduje zmniejszenie wydajności chłodzenia i wytwarzania pary.$UwaÅŒaj na stapianie! +desc.gui.zirnox.warning1=§cBłąd:§r Do prawidłowego działania reaktora potrzebna jest woda! +desc.gui.zirnox.warning2=§cBłąd:§r CO2 jest wymagany do prawidłowego działania reaktora! +desc.item.ammo.con_accuracy2=- Znacznie zmniejszona celność +desc.item.ammo.con_damage=- Znacznie zmniejszone obraÅŒenia +desc.item.ammo.con_heavy_wear=- Znacznie zwiększone zuÅŒycie +desc.item.ammo.con_ling_fire=- Brak ciągłego ognia +desc.item.ammo.con_nn=- Nawet nie atomówka +desc.item.ammo.con_no_damage=- Brak obraÅŒeń +desc.item.ammo.con_no_explode1=- Niewybuchowy +desc.item.ammo.con_no_explode2=- Brak uszkodzeń bloków +desc.item.ammo.con_no_explode3=- Brak rozbryzgowych obraÅŒeń +desc.item.ammo.con_no_fire=- Nie zapalający +desc.item.ammo.con_no_mirv=- Niezalecane dla Proto MIRV +desc.item.ammo.con_no_projectile=- Brak pocisku +desc.item.ammo.con_penetration=- Nie penetrujący +desc.item.ammo.con_radius=- Zmniejszony promień wybuchu +desc.item.ammo.con_range2=- Znacznie zmniejszony zasięg +desc.item.ammo.con_sing_projectile=- Pojedynczy pocisk +desc.item.ammo.con_speed=- Zmniejszona prędkość pocisku +desc.item.ammo.con_super_wear=- Bardzo znacznie zwiększone zuÅŒycie +desc.item.ammo.con_wear=- Zwiększone zuÅŒycie +desc.item.ammo.neu_40mm=* To granat 40 mm, który wcisnęliśmy w lufę! +desc.item.ammo.neu_blank=* To jest ślepak +desc.item.ammo.neu_boat=* Łódka +desc.item.ammo.neu_boxcar=* Wagon +desc.item.ammo.neu_building=* Budynek +desc.item.ammo.neu_chlorophyte=* Chlorofit +desc.item.ammo.neu_eraser=* Do usuwania duÅŒych błędów +desc.item.ammo.neu_fun=* Świetna zabawa dla całej rodziny! +desc.item.ammo.neu_heavy_metal=* Heavy Metal +desc.item.ammo.neu_homing=* Naprowadzający +desc.item.ammo.neu_jolt=* Wstrząsający +desc.item.ammo.neu_less_bouncy=* Mniej spręŌysty +desc.item.ammo.neu_maskman_flechette=* Wystrzeliwuje smugę, która przywołuje burzę pocisków DU +desc.item.ammo.neu_maskman_meteorite=* Wystrzeliwuje pocisk zadający duÅŒe obraÅŒenia, który przywołuje mały meteoryt +desc.item.ammo.neu_more_bouncy=* Ekstra spręŌysty +desc.item.ammo.neu_no_bounce=* Nie spręŌysty +desc.item.ammo.neu_no_con=* nie ma ÅŒadnych wad lul +desc.item.ammo.neu_starmetal=* Starmetal +desc.item.ammo.neu_tracer=* Smugowy +desc.item.ammo.neu_uhh=* Emmm +desc.item.ammo.neu_warcrime1=* Technicznie zbrodnia wojenna +desc.item.ammo.neu_warcrime2=* Dwa razy więcej zbrodni wojennych w jednym pocisku! +desc.item.ammo.pro_accurate1=+ Zwiększona dokładność +desc.item.ammo.pro_accurate2=+ Prawie idealna dokładność +desc.item.ammo.pro_balefire=+ Balefire +desc.item.ammo.pro_bomb_count=+ Zwiększona liczba bomb +desc.item.ammo.pro_caustic=+ Å»rący +desc.item.ammo.pro_chainsaw=+ Piła łańcuchowa +desc.item.ammo.pro_chlorine=+ Gazowy chlor +desc.item.ammo.pro_damage=+ Zwiększone obraÅŒenia +desc.item.ammo.pro_damage_slight=+ Ponadprzeciętne obraÅŒenia +desc.item.ammo.pro_emp=+ EMP +desc.item.ammo.pro_explosive=+ Wybuchowy +desc.item.ammo.pro_fallout=+ Opad +desc.item.ammo.pro_fit_357=+ Pasuje do kaÅŒdego modelu .357 +desc.item.ammo.pro_flames=+ Zwiększona liczba płomieni +desc.item.ammo.pro_gravity=+ Zmniejszona grawitacja +desc.item.ammo.pro_heavy_damage=+ Znacznie zwiększone obraÅŒenia +desc.item.ammo.pro_incendiary=+ Zapalający +desc.item.ammo.pro_lunatic=+ Lunatyczny +desc.item.ammo.pro_marauder=+ Natychmiast usuwa irytujących i niezbalansowanych wrogów +desc.item.ammo.pro_mining=+ Eksplozja upuszcza wszystkie bloki +desc.item.ammo.pro_no_gravity=+ Brak wpływu grawitacji +desc.item.ammo.pro_nuclear=+ Jądrowy +desc.item.ammo.pro_penetration=+ Penetrujący +desc.item.ammo.pro_percussion=+ PotęŌny wybuch +desc.item.ammo.pro_phosphorus=+ Powoduje poparzenia fosforem +desc.item.ammo.pro_phosphorus_splash=+ Miotany fosfor +desc.item.ammo.pro_poison_gas=+ Miotana trucizna +desc.item.ammo.pro_radius=+ Zwiększony promień wybuchu +desc.item.ammo.pro_radius_high=+ Znacznie zwiększony promień wybuchu +desc.item.ammo.pro_range=+ Zwiększony zasięg +desc.item.ammo.pro_rocket=+ Rakieta +desc.item.ammo.pro_rocket_propelled=+ Napęd rakietowy +desc.item.ammo.pro_shrapnel=+ Odłamki +desc.item.ammo.pro_speed=+ Zwiększona prędkość pocisku +desc.item.ammo.pro_stunning=+ Oszałamiający +desc.item.ammo.pro_toxic=+ Toksyczny +desc.item.ammo.pro_wear=+ Zmniejszone zuÅŒycie +desc.item.ammo.pro_withering=+ Więdnięcie +desc.item.armorMod.display=aby wyświetlić zainstalowane mody pancerza +desc.item.battery.charge=Naładowanie: %s / %sHE +desc.item.battery.chargePerc=Naładowanie: %s%% +desc.item.battery.chargeRate=Szybkość ładowania: %sHE/tick +desc.item.battery.dischargeRate=Szybkość rozładowania: %sHE/tick +desc.item.durability=Wytrzymałość: %s +desc.item.grenade.fuse=Lont: %s +desc.item.grenade.fuseImpact=Zderzeniowy +desc.item.grenade.fuseInstant=Natychmiastowy +desc.item.gun.ammo=Amunicja %s +desc.item.gun.ammoBelt=Pas +desc.item.gun.ammoEnergy=Energia; %sHE za strzał +desc.item.gun.ammoEnergyAlt=%sHE za alt. strzał +desc.item.gun.ammoMag=%s / %s +desc.item.gun.ammoType=Rodzaj amunicji: %s +desc.item.gun.ammoTypeAlt=Amunicja dodatkowa: %s +desc.item.gun.damage=Damage: %s - %s +desc.item.gun.damageAlt=ObraÅŒenia: %s +desc.item.gun.lore=aby zobaczyć dogłębną wiedzę +desc.item.gun.loreFunc=aby wyświetlić szczegółową funkcjonalność +desc.item.gun.manufacturer=Producent: %s +desc.item.gun.name=Nazwa: %s +desc.item.gun.penetration=Wartość penetracji pancerza: %s +desc.item.kitArmor=Pancerz zostanie zastąpiony nowym zestawem. +desc.item.kitHaz=Pancerz zostanie zastąpiony kombinezonem ochronnym. +desc.item.kitPack=Ale okazja! +desc.item.kitPool=Proszę opróŌnić ekwipunek przed otwarciem! +desc.item.pileRod=§eUÅŒyj na wywierconym graficie, aby włoÅŒyć$§eUÅŒyj śrubokręta, aby wyjąć$ +desc.item.rtgDecay=Rozkłada się na: %s +desc.item.rtgHeat=Poziom mocy: %s +desc.item.storage.capacity=Pojemność %s%%s +desc.item.storage.proscons=aby wyświetlić listę zalet i wad +desc.misc.357=.357 Magnum +desc.misc.556=.223 Remington +desc.misc.762=.308 Winchester +desc.misc.func=§n-- Funkcja -- +desc.misc.lanthanum="Lantan" +desc.misc.lctrl=§8Przytrzymaj <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Fabuła -- +desc.misc.lshift=§8Przytrzymaj <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatyczny +desc.misc.meltPoint=Temperatura topnienia: §c%s +desc.misc.noPos=Brak ustawionej pozycji! +desc.misc.pos=Ustawiono pozycję na: %s, %s, %s +desc.misc.posSet=Pozycja ustawiona! +desc.item.wasteCooling=Schłodzić w bębnie po zuÅŒytym paliwie +desc.item.zirnoxBreedingRod=§2[Pręt do powielania ZIRNOX]$§eUmieść obok prętów paliwowych aby powielać$§eTrwa %d ticków +desc.item.zirnoxRod=§a[Pręt paliwowy ZIRNOX]$§eGeneruje %1$d ciepła na tick$§eTrwa %2$d ticków + +digamma.playerDigamma=Ekspozycja Digammy: +digamma.playerHealth=Wpływ Digammy: +digamma.playerRes=Odporność na digamę: +digamma.title=DIAGNOSTYKA DIGAMMY + +entity.entity_cyber_crab.name=Cyberkrab +entity.entity_elder_one.name=Quackos Starszy +entity.entity_fucc_a_ducc.name=Kaczka +entity.entity_glyphid.name=Glyfid +entity.entity_glyphid_behemoth.name=Glyfid Behemot +entity.entity_glyphid_blaster.name=Glyfid Blaster +entity.entity_glyphid_bombardier.name=Glyfid Bombardier +entity.entity_glyphid_brawler.name=Glyfid Awanturnik +entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_nuclear.name=Big Men DÅŒonson +entity.entity_glyphid_scout.name=Glyfid Skaut +entity.entity_ntm_fbi.name=Agent FBI +entity.entity_ntm_radiation_blaze.name=Å»ywiołak stopienia +entity.hbm.entity_ntm_ufo.name=Statek Inwazji Marsjan +entity.entity_mob_hunter_chopper.name=Chopper Myśliwy +entity.entity_mob_mask_man.name=Pan w Masce +entity.entity_mob_gold_creeper.name=Złoty Creeper +entity.entity_mob_nuclear_creeper.name=Jądrowy creeper +entity.entity_mob_phosgene_creeper.name=Fosgenowy Creeper +entity.entity_mob_tainted_creeper.name=SkaÅŒony creeper +entity.entity_mob_volatile_creeper.name=Lotny Creeper +entity.entity_taint_crab.name=SkaÅŒony krab +entity.entity_tesla_crab.name=Krab Tesli +entity.hbm.entity_balls_o_tron.name=Jądro-Tron +entity.hbm.entity_balls_o_tron_seg.name=Segment Jądro-Trona +entity.hbm.entity_bullet.name=Pocisk +entity.hbm.entity_rocket.name=Rakieta +entity.hbm.entity_schrabnel.name=Schrabłamek + +excavator.crusher=Przełącz kruszarkę +excavator.drill=Przełącz wiertło +excavator.silktouch=Przełącz Jedwabny dotyk +excavator.veinminer=Przełącz kopacza ÅŒył +excavator.walling=Przełącz murowanie + +flare.ignition=Zapłon +flare.valve=Zawór przepływowy + + +fluid.acid_fluid=Kwas +fluid.corium_fluid=Korium +fluid.mud_fluid=Trujące błoto +fluid.schrabidic_fluid=kwas schrabidowy +fluid.toxic_fluid=Stereotypowy zielony szlam +fluid.volcanic_lava_fluid=Lawa wulkaniczna + +foundry.filter=Filtr: %s +foundry.inverted=Redstone odwrócony +foundry.invertFilter=Filtr odwrócony +foundry.noCast=Brak zainstalowanej formy! + +geiger.chunkRad=BieŌące promieniowanie chunka: +geiger.envRad=Całkowite promieniowanie środowiskowe: +geiger.playerRad=SkaÅŒenie gracza: +geiger.playerRes=Odporność gracza: +geiger.title=LICZNIK GEIGERA +geiger.title.dosimeter=DOZYMETR +gun.make.ARMALITE=Armalite +gun.make.AUTO_ORDINANCE=Auto-Ordnance Corporation +gun.make.BAE=BAE Systems plc +gun.make.BENELLI=Benelli Armi SpA +gun.make.BLACK_MESA=Black Mesa Research Facility +gun.make.CERIX=Cerix Magnus +gun.make.COLT=Colt's Manufacturing Company +gun.make.COMBINE=The Universal Union +gun.make.CUBE=Cube 2: Sauerbraten +gun.make.ENZINGER=Enzinger Union +gun.make.EQUESTRIA=Equestria Missile Systems +gun.make.FLIMFLAM=FlimFlam Industries +gun.make.F_STRONG=Fort Strong +gun.make.GLORIA=Gloria GmbH +gun.make.HASBRO=Hasbro +gun.make.H_AND_K=Heckler & Koch +gun.make.H_AND_R=Harrington & Richardson +gun.make.IF=Ironshod Firearms +gun.make.IMI=Israel Military Industries +gun.make.IMI_BIGMT=IMI / Big MT +gun.make.LANGFORD=Langford Research Laboratories +gun.make.LUNA=Lunar Defense Corp +gun.make.MAGNUM_R_IMI=Magnum Research / Israel Military Industries +gun.make.MANN=Open Mann Co. +gun.make.MAXIM=Hiram Maxim +gun.make.METRO=Metro Gunsmiths +gun.make.MWT=MWT Prototype Labs +gun.make.NAZI=Erfurter Maschinenfabrik Geipel +gun.make.NONE=- +gun.make.RAYTHEON=Raytheon Missile Systems +gun.make.ROCKWELL=Rockwell International Corporation +gun.make.ROCKWELL_U=Rockwell International Corporation? +gun.make.RYAN=Ryan Industries +gun.make.SAAB=Saab Bofors Dynamics +gun.make.SACO=Saco Defense / US Ordnance +gun.make.TULSKY=Tulsky Oruzheiny Zavod +gun.make.UAC=Union Aerospace Corporation +gun.make.UNKNOWN=??? +gun.make.WESTTEK=WestTek +gun.make.WGW=Wilhelm-Gustloff-Werke +gun.make.WINCHESTER=Winchester Repeating Arms Company +gun.make.WINCHESTER_BIGMT=Winchester Repeating Arms Company / Big MT + +gun.name.ar15_50=Mod. AR-15 .50 BMG +gun.name.baeAR=Brytyjski standardowy karabin szturmowy +gun.name.bel=Wyrzutnia jaj balefire +gun.name.benelli=Benelli M4 Super 90 +gun.name.benelliDrum=Benelli M4 Super 90 (Modyfikacja magazynka bębnowego) +gun.name.bio=RI No. 2 Mark 1 +gun.name.bolter=Boltgun wzoru Manticora +gun.name.cPython=Colt Python +gun.name.cz53=CZ53 Osobisty Minigun +gun.name.cz57=CZ57 Avenger Minigun +gun.name.dart=Spluwa igłowa +gun.name.deagle=IMI Desert Eagle +gun.name.emp=Projektor kul EMP +gun.name.extinguisher=Gaśnica PROTEX 6kg +gun.name.ffiV=FFI Viper +gun.name.ffiVInox=FFI Viper Inox +gun.name.ffiVLead=FFI Viper Lead +gun.name.ffiVN1=FFI Viper N1 +gun.name.ffiVN2=FFI Viper N2 +gun.name.ffiVUltra=FFI Viper Ultra +gun.name.ffivBling=FFI Viper Bling +gun.name.ffivSatur=FFI Viper D-25A +gun.name.g36=Heckler & Koch Gewehr 36 +gun.name.gPistol=Granatpistole HK69 +gun.name.gustav=Karabin bezodrzutowy Carl Gustav M1 +gun.name.ifHorseshoe=IF-18 Podkowa +gun.name.ifPit=IF-18 Podkowa Studnia Bez Dna +gun.name.ifScope=IF-18 Podkowa Luneta +gun.name.ifStorm=IF-18 Podkowa Srebrna Burza +gun.name.ifVanity=IF-18 Podkowa PróŌność +gun.name.karl=M1 Karl-GerÀt +gun.name.ks23=KS-23 +gun.name.lacunae=Ciocia Lacunae +gun.name.lasetDet=Detonator laserowy Hopeville +gun.name.lunaAR=Karabin szturmowy typu 1986 Bishamonten +gun.name.lunaGun=Standardowa broń boczna typu 1978 Rāhula (Rewizja 2) +gun.name.lunaHLR=Lekki karabin maszynowy typu 1944 Chang'e +gun.name.lunaShotty=Dubeltówka typu 1978 Guan Yu (wersja 1) +gun.name.lunaSMG=Pistolet maszynowy typu 1956 Ananda +gun.name.lunaSniper=Karabin przeciwmaterialny typu 1915 Hou Yi +gun.name.lunaTWR=Karabin Zakrzywiający Czas +gun.name.m2=Karabin maszynowy Browning, kal. .50, M2, HB +gun.name.m42=Taktyczna katapulta nuklearna M-42 +gun.name.m42MIRV=M-42 Eksperymentalny MIRV +gun.name.m60=Karabin maszynowy, kaliber 7,62 mm, M60 +gun.name.maxim=Karabin maszynowy Maxim +gun.name.maximDouble=Podwójny karabin maszynowy Maxim +gun.name.mg3=Universal-Maschinengewehr Modell 3 +gun.name.mp40=Maschinenpistole 40 +gun.name.nerf=Blaster NERF o nieznanej konstrukcji +gun.name.osipr=Standardowy karabin pulsacyjny Overwatch +gun.name.panz=RaketenpanzerbÃŒchse 54 +gun.name.quadro=Przenośna wyrzutnia rakiet z przewodnikiem OpenQuadro +gun.name.revolverCursed=Zmotoryzowany pistolet Britannia Standard Issue +gun.name.sauer=Strzelba Sauera +gun.name.spas12=Franchi SPAS-12 +gun.name.spiw=H&R SPIW +gun.name.stinger=FIM-92 Stinger przenośny system przeciwlotniczy +gun.name.stingerOneSky=Stinger Jednego Nieba +gun.name.supershotty=Dwulufowa strzelba bojowa +gun.name.tau=Działo XVL1456 Tau +gun.name.tommy9=Pistolet maszynowy M1A1 mod. 9mm +gun.name.tommy=Pistolet maszynowy M1A1 +gun.name.topaz=Wytrzymały miotacz ognia +gun.name.uacCarbine=Karabin UAC-41 +gun.name.uacDeagle=UAC-H54 „Marsjański Raptor” Automag +gun.name.uacDMR=Wyznaczony karabin wyborowy UAC-30 +gun.name.uacLMG=Lekki karabin maszynowy UAC-49 +gun.name.uacPistol=Pistolet standardowy UAC-B950 .45 +gun.name.uacSMG=Kompaktowy pistolet maszynowy UAC-17 +gun.name.uboinik=Strzelba obrotowa Uboinik +gun.name.uzi=IMI Uzi +gun.name.uziSatur=IMI Uzi D-25A +gun.name.win1887=Winchester Model 1887 +gun.name.win1887Inox=Winchester Model 1887 Inox +gun.name.win20Inox=Winchester Model 20 Inox +gun.name.win20Poly=Winchester Model 20 Polymer +gun.name.win20Satur=Winchester Model 20 D-25A +gun.name.zomg=EMC101 Pryzmatyczne Działko Energii Ujemnej + +hadron.analysis=Analizowanie... +hadron.buttonOn=Komora analityczna (jeśli jest obecna) jest WŁĄCZONA +hadron.buttonOff=Komora analityczna jest WYŁĄCZONA +hadron.error_generic=Błąd! +hadron.error_no_charge=Błąd 0x01 [NC] +hadron.error_no_analysis=Błąd 0x02 [NA] +hadron.error_obstructed_channel=Błąd 0x03 [OC] +hadron.error_expected_coil=Błąd 0x04 [EC] +hadron.error_malformed_segment=Błąd 0x05 [MS] +hadron.error_analysis_too_long=Błąd 0x06 [ATL] +hadron.error_analysis_too_short=Błąd 0x07 [ATS] +hadron.error_diode_collision=Błąd 0x08 [DC] +hadron.error_branching_turn=Błąd 0x09 [BT] +hadron.hopper0=§eTryb normalny: $Zostaną uÅŒyte wszystkie przedmioty. +hadron.hopper1=§eTryb lejka: $Jeden przedmiot zawsze zostanie. +hadron.idle=Bezczynny +hadron.modeCircular=§eTryb akceleratora kołowego:$Magnesy muszą zapętlić się z powrotem do rdzenia.$Odblokowuje więcej przepisów. +hadron.modeLine=§eTryb akceleratora liniowego:$Akcelerator kończy się komorą analityczną.$Mniej przepisów. +hadron.noresult=Brak rezultatu. +hadron.noresult_too_slow=Niewyst. rozpęd! +hadron.noresult_wrong_ingredient=Nieprawidłowy przepis! +hadron.noresult_wrong_mode=Zły tryb! +hadron.progress=W toku... +hadron.stats=Poprzednie rezultaty: +hadron.stats_coord=Błędna pozycja: %s / %s / %s +hadron.stats_momentum=Rozpęd: %s +hadron.success=Ukończono! + +hazard.prot=Chroni przed: +hazard.noprot=NIE chroni przed: +hazard.bacteria=Bakteriami / Aerozolami +hazard.corrosive=Å»rącymi oparami +hazard.gasChlorine=Gazem chemicznym +hazard.gasInert=Gazem obojętnym / Środkami duszącymi +hazard.gasMonoxide=Tlenkiem węgla +hazard.light=Jasnym światłem +hazard.nerveAgent=Środkami nerwowymi +hazard.neverProtects=Nigdy nie chroni przed: +hazard.particleCoarse=Cząsteczkami unoszącymi się w powietrzu +hazard.particleFine=Cząstkami stałymi +hazard.sand=Substancjami draÅŒniących dla oczu + +hbm.key=Skróty klawiszowe NTM +hbm.key.calculator=Kalkulator +hbm.key.craneLoad=Załaduj/rozładuj dźwig +hbm.key.craneMoveDown=Przesuń dźwig do tyłu +hbm.key.craneMoveLeft=Przesuń dźwig w lewo +hbm.key.craneMoveRight=Przesuń dźwig w prawo +hbm.key.craneMoveUp=Przesuń dźwig do przodu +hbm.key.dash=Sus (Odłącz od Kucania w konfiguracji) +hbm.key.toggleBack=Włącz/wyłącz plecak +hbm.key.toggleHUD=Włącz/wyłącz HUD +hbm.key.reload=Przeładuj + +hbmfluid.amat=Antymateria +hbmfluid.aromatics=Węglowodory aromatyczne +hbmfluid.aschrab=Antyschrabid +hbmfluid.balefire=Paliwo rakietowe BF +hbmfluid.biofuel=Biopaliwo +hbmfluid.biogas=Biogaz +hbmfluid.bitumen=Bitum +hbmfluid.blood=Krew +hbmfluid.blood_hot=Gorąca krew +hbmfluid.calcium_chloride=Roztwór chlorku wapnia +hbmfluid.calcium_solution=Roztwór wapnia +hbmfluid.carbondioxide=Dwutlenek węgla +hbmfluid.chlorine=Gazowy chlor +hbmfluid.chlorocalcite_cleaned=Oczyszczony roztwór chlorokalcytu +hbmfluid.chlorocalcite_mix=Mieszany roztwór chlorokalcytu +hbmfluid.chlorocalcite_solution=Roztwór chlorokalcytu +hbmfluid.cholesterol=Roztwór cholesterolu +hbmfluid.coalcreosote=Kreozot ze smoły węglowej +hbmfluid.coalgas=Gazolina węglowa +hbmfluid.coalgas_leaded=Gazolina węglowa z ołowiem +hbmfluid.coaloil=Olej węglowy +hbmfluid.colloid=Koloid +hbmfluid.coolant=Chłodziwo +hbmfluid.coolant_hot=Gorące chłodziwo +hbmfluid.crackoil=Krakowany olej +hbmfluid.cryogel=KrioÅŒel +hbmfluid.death=Roztwór osmirydowy +hbmfluid.deuterium=Deuter +hbmfluid.diesel=Diesel +hbmfluid.diesel_crack=Krakowany diesel +hbmfluid.diesel_crack_reform=Wysokooktanowy krakowany diesel +hbmfluid.diesel_reform=Wysokooktanowy diesel +hbmfluid.egg=Rozpuszczone jajko +hbmfluid.estradiol=Roztwór estradiolu +hbmfluid.ethanol=Etanol +hbmfluid.enderjuice=Sok kresowy +hbmfluid.fracksol=Roztwór do szczelinowania +hbmfluid.fishoil=Olej rybny +hbmfluid.gas_coker=Gaz koksowniczy +hbmfluid.gas=Gaz ziemny +hbmfluid.gasoline=Gazolina +hbmfluid.gasoline_leaded=Gazolina ołowiowa +hbmfluid.heatingoil=Olej grzewczy +hbmfluid.heatingoil_vacuum=CięŌki olej grzewczy +hbmfluid.heavyoil=CięŌka ropa naftowa +hbmfluid.heavyoil_vacuum=PróŌniowa cięŌka ropa naftowa +hbmfluid.heavywater=CięŌka woda +hbmfluid.helium3=Hel-3 +hbmfluid.helium4=Hel-4 +hbmfluid.hotcrackoil=Gorący krakowany olej +hbmfluid.hotoil=Gorąca ropa naftowa +hbmfluid.hotsteam=Gęsta para +hbmfluid.hydrogen=Ciekły wodór +hbmfluid.iongel=Å»el jonowy +hbmfluid.kerosene=Kerozyna +hbmfluid.kerosene_reform=Paliwo odrzutowe +hbmfluid.lava=Lawa +hbmfluid.lightoil=Lekki olej +hbmfluid.lightoil_crack=Krakowany lekki olej +hbmfluid.lightoil_vacuum=PróŌniowy lekki olej +hbmfluid.lpg=LPG +hbmfluid.lubricant=Smar do silnika +hbmfluid.mercury=Rtęć +hbmfluid.mug=Piwo korzenne Mug +hbmfluid.mug_hot=Gorące piwo korzenne Mug +hbmfluid.mustardgas=Gaz musztardowy +hbmfluid.naphtha=Nafta +hbmfluid.naphtha_coker=Nafta koksownicza +hbmfluid.naphtha_crack=Krakowana nafta +hbmfluid.nitan=100-Oktanowe Superpaliwo NITAN© +hbmfluid.nitric_acid=Kwas azotowy +hbmfluid.nitroglycerin=Nitrogliceryna +hbmfluid.none=Nic +hbmfluid.oil=Ropa naftowa +hbmfluid.oil_coker=Olej koksowniczy +hbmfluid.oxygen=Ciekły tlen +hbmfluid.oxyhydrogen=Tlenowodór +hbmfluid.pain=Roztwór tantalitu pandemonium(III). +hbmfluid.peroxide=Nadtlenek wodoru +hbmfluid.petroil=Benzyna +hbmfluid.petroil_leaded=Benzyna ołowiowa +hbmfluid.petroleum=Gaz z ropy naftowej +hbmfluid.phosgene=Fosgen +hbmfluid.plasma_bf=Plazma balefire +hbmfluid.plasma_dh3=Plazma deuterowo-helowa-3 +hbmfluid.plasma_dt=Plazma deuterowo-trytowa +hbmfluid.plasma_hd=Plazma wodorowo-deuterowa +hbmfluid.plasma_ht=Plazma wodorowo-trytowa +hbmfluid.plasma_xm=Plazma ksenonowo-rtęciowa +hbmfluid.potassium_chloride=Roztwór chlorku potasu +hbmfluid.puf6=Heksafluorek plutonu +hbmfluid.radiosolvent=Rozpuszczalnik o wysokiej wydajności +hbmfluid.reclaimed=Olej przemysłowy z odzysku +hbmfluid.redmud=Czerwone błoto +hbmfluid.reformate=Reformat +hbmfluid.reformgas=Gaz reformowany +hbmfluid.salient=Wyrazista zieleń +hbmfluid.sas3=Trisiarczek schrabidu +hbmfluid.schrabidic=Kwas schrabidowy +hbmfluid.seedslurry=Gnojowica siewna +hbmfluid.smear=Olej przemysłowy +hbmfluid.smoke=Dym +hbmfluid.smoke_leaded=Ołowiany dym +hbmfluid.smoke_poison=Trujący dym +hbmfluid.solvent=Rozpuszczalnik +hbmfluid.sourgas=Kwaśny gaz +hbmfluid.spentsteam=Para niskociśnieniowa +hbmfluid.steam=Para +hbmfluid.sulfuric_acid=Kwas siarkowy +hbmfluid.sunfloweroil=Olej słonecznikowy +hbmfluid.superhotsteam=Supergęsta para +hbmfluid.syngas=Gaz syntezowy +hbmfluid.tritium=Tryt +hbmfluid.uf6=Heksafluorek uranu +hbmfluid.ultrahotsteam=Ultragęsta para +hbmfluid.unsaturateds=Węglowodory nienasycone +hbmfluid.wastefluid=Płynne odpady jądrowe +hbmfluid.wastegas=Gazowe odpady jądrowe +hbmfluid.water=Woda +hbmfluid.watz=Trujące błoto +hbmfluid.woodoil=Olej drzewny +hbmfluid.xenon=Gaz ksenonowy +hbmfluid.xpjuice=Sok doświadczenia +hbmfluid.xylene=BTX +hbmpseudofluid.none=Puste +hbmpseudofluid.heuf6=Silnie wzbogacony UF6 +hbmpseudofluid.meuf6=Średnio wzbogacony UF6 +hbmpseudofluid.leuf6=Nisko wzbogacony UF6 +hbmpseudofluid.nuf6=Naturalny UF6 +hbmpseudofluid.pf6=Heksafluorek plutonu +hbmpseudofluid.mud_heavy=Frakcja osadów cięŌkich +hbmpseudofluid.mud=Trujący gaz szlamowy + +hbmmat.actinium227=Aktyn-227 +hbmmat.advancedalloy=Zaawansowany stop +hbmmat.aluminum=Glin +hbmmat.americiumrg=Ameryk klasy reaktora +hbmmat.americium241=Ameryk-241 +hbmmat.americium242=Ameryk-242 +hbmmat.arsenic=Arsen +hbmmat.asbestos=Asbest +hbmmat.bakelite=Bakelit +hbmmat.beryllium=Beryl +hbmmat.bismuth=Bizmut +hbmmat.borax=Boraks +hbmmat.boron=Boron +hbmmat.cadmium=Kadm +hbmmat.carbon=Karbon +hbmmat.cdalloy=Stal kadmowa +hbmmat.cinnabar=Cynober +hbmmat.cmbsteel=Stal Kombajnowa +hbmmat.coal=Węgiel +hbmmat.coalcoke=Koks węglowy +hbmmat.cobalt=Kobalt +hbmmat.cobalt60=Kobalt-60 +hbmmat.coltan=Koltan +hbmmat.copper=Miedź +hbmmat.desh=Desh +hbmmat.dineutronium=Dineutron +hbmmat.durasteel=Stal szybkotnąca +hbmmat.euphemium=Eufem +hbmmat.ferrouranium=Ferrouran +hbmmat.fiberglass=Włókno szklane +hbmmat.fluorite=Fluoryt +hbmmat.flux=Topnik +hbmmat.ghiorsium336=Giors-336 +hbmmat.gold=Złoto +hbmmat.gold198=Złoto-198 +hbmmat.graphene=Grafen +hbmmat.graphite=Grafit +hbmmat.hematite=Hematyt +hbmmat.iron=Å»elazo +hbmmat.lapis=Lazuryt +hbmmat.lead=Ołów +hbmmat.lead209=Ołów-209 +hbmmat.lignitecoke=Koks brunatny +hbmmat.lignite=Węgiel brunatny +hbmmat.lithium=Lit +hbmmat.magnetizedtungsten=Namagnesowany wolfram +hbmmat.malachite=Malachit +hbmmat.meteoriciron=Å»elazo meteorytowe +hbmmat.mingrade=Miedź klasy Minecraft +hbmmat.neptunium237=Neptun-237 +hbmmat.niobium=Niob +hbmmat.obsidian=Obsydian +hbmmat.osmiridium=Osmiryd +hbmmat.petcoke=Koks naftowy +hbmmat.pigiron=Surówka ÅŒelazna +hbmmat.plutonium=Pluton +hbmmat.plutonium238=Pluton-238 +hbmmat.plutonium239=Pluton-239 +hbmmat.plutonium240=Pluton-240 +hbmmat.plutonium241=Pluton-241 +hbmmat.plutoniumrg=Pluton klasy reaktora +hbmmat.polonium210=Polon-210 +hbmmat.polymer=Polimer +hbmmat.radium226=Rad-226 +hbmmat.redphosphorus=Czerwony fosfor +hbmmat.redstone=Redstone +hbmmat.rubber=Guma +hbmmat.saltpeter=Saletra +hbmmat.saturnite=Saturnyt +hbmmat.schrabidate=Schrabidan ÅŒelazowy +hbmmat.schrabidium=Schrabid +hbmmat.schraranium=Schraran +hbmmat.slag=Å»uÅŒel +hbmmat.solinium=Solyn +hbmmat.starmetal=Starmetal +hbmmat.steel=Stal +hbmmat.stone=Kamień +hbmmat.sulfur=Siarka +hbmmat.tantalum=Tantal +hbmmat.tcalloy=Stal technetowa +hbmmat.technetium99=Technet-99 +hbmmat.titanium=Tytan +hbmmat.thorium232=Tor-232 +hbmmat.tungsten=Wolfram +hbmmat.uranium=Uran +hbmmat.uranium233=Uran-233 +hbmmat.uranium235=Uran-235 +hbmmat.uranium238=Uran-238 +hbmmat.watzmud=Trujące błoto +hbmmat.whitephosphorus=Biały fosfor +hbmmat.workersalloy=Desh +hbmmat.wroughtiron=Kute ÅŒelazo +hbmmat.zirconium=Cyrkon + +matshape.block=Blok %sa +matshape.blocks=Bloki %sa +matshape.ingot=Sztabka %sa +matshape.ingots=Sztabki %sa +matshape.nugget=Samorodek %sa +matshape.nuggets=Samorodki %sa +matshape.quantum=Kwant %sa +matshape.quanta=Kwanty %sa + +info.asbestos=Moje płuca płoną. +info.coaldust=Trudno tu oddychać. +info.coil=Siłą zwoju +info.templatefolder=Utworzono za pomocą %s +info.template_in=Wejście: +info.template_in_p=Wejścia: +info.template_out=Wyjście: +info.template_out_p=Wyjścia: +info.template_seconds=sekund +info.template_time=Czas produkcji: + +item.acetylene_torch.name=Palnik acetylenowy +item.ajr_boots.name=Buty Stalowego Rangera +item.ajr_helmet.name=Hełm Stalowego Rangera +item.ajr_legs.name=Legginsy Stalowego Rangera +item.ajr_plate.name=Napierśnik Stalowego Rangera +item.ajro_boots.name=Buty pancerza wspomaganego AJR +item.ajro_helmet.name=Hełm pancerza wspomaganego AJR +item.ajro_legs.name=Legginsy pancerza wspomaganego AJR +item.ajro_plate.name=Napierśnik pancerza wspomaganego AJR +item.alloy_axe.name=Siekiera ze stopu zaawansowanego +item.alloy_boots.name=Buty ze stopu zaawansowanego +item.alloy_helmet.name=Hełm ze stopu zaawansowanego +item.alloy_hoe.name=Motyka ze stopu zaawansowanego +item.alloy_legs.name=Legginsy ze stopu zaawansowanego +item.alloy_pickaxe.name=Kilof ze stopu zaawansowanego +item.alloy_plate.name=Napierśnik ze stopu zaawansowanego +item.alloy_shovel.name=Łopata ze stopu zaawansowanego +item.alloy_sword.name=Miecz ze stopu zaawansowanego +item.ammo_12gauge.name=Śrut kalibru 12 +item.ammo_12gauge_du.name=Śrut kalibru 12 (Pokryty uranem) +item.ammo_12gauge_incendiary.name=Śrut kalibru 12 (Zapalający) +item.ammo_12gauge_marauder.name=Pocisk taktyczny anty-korsarzowy kalibru 12 +item.ammo_12gauge_percussion.name=Kapiszon kalibru 12 +item.ammo_12gauge_shrapnel.name=Śrut kalibru 12 (Szrapnel) +item.ammo_12gauge_sleek.name=Śrut kalibru 12 (IF-R&D) +item.ammo_20gauge.name=Śrut kalibru 20 +item.ammo_20gauge_caustic.name=Śrut kalibru 20 (ÅŒrący) +item.ammo_20gauge_explosive.name=Śrut kalibru 20 (Wybuchowy) +item.ammo_20gauge_flechette.name=Flechette kalibru 20 +item.ammo_20gauge_incendiary.name=Śrut kalibru 20 (Zapalający) +item.ammo_20gauge_shock.name=Śrut kalibru 20 (Wstrząsający) +item.ammo_20gauge_shrapnel.name=Śrut kalibru 20 (Szrapnel) +item.ammo_20gauge_sleek.name=Śrut kalibru 20 (IF-R&D) +item.ammo_20gauge_slug.name=Slug Brenneke kalibru 20 +item.ammo_20gauge_wither.name=Śrut kaliber 20 (Wiednący) +item.ammo_22lr.name=.22 LR +item.ammo_22lr_ap.name=.22 LR (Przeciwpancerny) +item.ammo_22lr_chlorophyte.name=.22 LR (Chlorofitowy) +item.ammo_357_desh.name=.357 Magnum Desh +item.ammo_44.name=.44 Magnum +item.ammo_44_ap.name=.44 Magnum (Przeciwpancerny) +item.ammo_44_bj.name=.44 Magnum (Łódka) +item.ammo_44_chlorophyte.name=.44 Magnum (Chlorofitowy) +item.ammo_44_du.name=.44 Magnum (DU) +item.ammo_44_phosphorus.name=.44 Magnum (WP) +item.ammo_44_pip.name=.44 Magnum (Wagon) +item.ammo_44_rocket.name=.44 Magnum Rocket +item.ammo_44_silver.name=.44 Magnum Bullet (Building) +item.ammo_44_star.name=.44 Magnum Bullet (Starmetal) +item.ammo_45.name=.45 ACP Bullet +item.ammo_45_ap.name=.45 ACP Bullet (AP) +item.ammo_45_du.name=.45 ACP Bullet (DU) +item.ammo_4gauge.name=4 Gauge Buckshot +item.ammo_4gauge_balefire.name=23mm Balefire Grenade +item.ammo_4gauge_canister.name=23mm Rocket (Canister Shot) +item.ammo_4gauge_claw.name=4 Gauge Claw Shell +item.ammo_4gauge_explosive.name=23mm Grenade +item.ammo_4gauge_flechette.name=4 Gauge Flechette Shell +item.ammo_4gauge_flechette_phosphorus.name=4 Gauge Flechette Shell (WP) +item.ammo_4gauge_kampf.name=23mm Rocket +item.ammo_4gauge_semtex.name=23mm Mining Charge +item.ammo_4gauge_sleek.name=4 Gauge Buckshot (IF-R&D) +item.ammo_4gauge_slug.name=4 Gauge Solid Steel Slug +item.ammo_4gauge_titan.name=4 Gauge Quacker Round +item.ammo_4gauge_vampire.name=4 Gauge Wooden Stake Shell +item.ammo_4gauge_void.name=4 Gauge Void Shell +item.ammo_50ae.name=.50 AE Round +item.ammo_50ae_ap.name=.50 AE Round (Armor Piercing) +item.ammo_50ae_chlorophyte.name=.50 AE Round (Chlorophyte) +item.ammo_50ae_du.name=.50 AE Round (DU) +item.ammo_50ae_star.name=.50 AE Round (Starmetal) +item.ammo_50bmg.name=.50 BMG Round +item.ammo_50bmg_ap.name=.50 BMG Round (Armor Piercing) +item.ammo_50bmg_chlorophyte.name=.50 BMG Round (Chlorophyte) +item.ammo_50bmg_du.name=.50 BMG Round (DU) +item.ammo_50bmg_explosive.name=.50 BMG Round (Explosive) +item.ammo_50bmg_flechette.name=.50 BMG Flechette Round +item.ammo_50bmg_flechette_am.name=.50 BMG Flechette Round (Americium) +item.ammo_50bmg_flechette_po.name=.50 BMG Flechette Round (Polonium) +item.ammo_50bmg_incendiary.name=.50 BMG Round (Incendiary) +item.ammo_50bmg_phosphorus.name=.50 BMG Round (WP) +item.ammo_50bmg_sleek.name=.50 BMG Round (IF-R&D) +item.ammo_50bmg_star.name=.50 BMG Round (Starmetal) +item.ammo_556.name=5.56mm Round +item.ammo_556_ap.name=5.56mm Round (Armor Piercing) +item.ammo_556_chlorophyte.name=5.56mm Round (Chlorophyte) +item.ammo_556_du.name=5.56mm Round (DU) +item.ammo_556_flechette.name=5.56mm Flechette Round +item.ammo_556_flechette_chlorophyte.name=5.56mm Flechette Round (Chlorophyte) +item.ammo_556_flechette_du.name=5.56mm Flechette Round (Uranium Penetrator) +item.ammo_556_flechette_incendiary.name=5.56mm Flechette Round (Incendiary) +item.ammo_556_flechette_phosphorus.name=5.56mm Flechette Round (Phosphorus-Tipped) +item.ammo_556_flechette_sleek.name=5.56mm Flechette Round (IF-R&D) +item.ammo_556_k.name=5.56mm K-Round +item.ammo_556_phosphorus.name=5.56mm Round (WP) +item.ammo_556_sleek.name=5.56mm Round (IF-R&D) +item.ammo_556_star.name=5.56mm Round (Starmetal) +item.ammo_556_tracer.name=5.56mm Round (Tracer) +item.ammo_5mm.name=5mm Round +item.ammo_5mm_chlorophyte.name=5mm Round (Chlorophyte) +item.ammo_5mm_du.name=5mm Round (DU) +item.ammo_5mm_explosive.name=5mm Round (Explosive) +item.ammo_5mm_star.name=5mm Round (Starmetal) +item.ammo_75bolt.name=.75 Bolt Magazine (30rnd) +item.ammo_75bolt_incendiary.name=.75 Incendiary Bolt Magazine (30rnd) +item.ammo_75bolt_he.name=.75 Bolt High-Explosive Magazine (30rnd) +item.ammo_762.name=7.62mm Round +item.ammo_762_ap.name=7.62mm Round (AP) +item.ammo_762_du.name=7.62mm Round (DU) +item.ammo_762_k.name=7.62mm K-Round +item.ammo_762_phosphorus.name=7.62mm Round (WP) +item.ammo_762_tracer.name=7.62mm Round (Tracer) +item.ammo_9mm.name=9mm Round +item.ammo_9mm_ap.name=9mm Round (Armor Piercing) +item.ammo_9mm_chlorophyte.name=9mm Round (Chlorophyte) +item.ammo_9mm_du.name=9mm Round (DU) +item.ammo_9mm_rocket.name=9mm Rocket +item.ammo_arty.name=16" Artillery Shell +item.ammo_arty_cargo.name=16" Express Delivery Artillery Shell +item.ammo_arty_chlorine.name=16" Chlorine Gas Artil +item.ammo_arty_classic.name=16" Artillery Shell (The Factorio Special) +item.ammo_arty_he.name=16" High Explosive Artillery Shell +item.ammo_arty_mini_nuke.name=16" Micro Nuclear Artillery Shell +item.ammo_arty_mini_nuke_multi.name=16" Multi Micro Nuclear Artillery Shell +item.ammo_arty_mustard_gas.name=16" Mustard Gas Artillery Shell +item.ammo_arty_nuke.name=16" Nuclear Artillery Shell +item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell +item.ammo_arty_phosphorus.name=16" Phosphorus Shell +item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell +item.ammo_cell.name=Energy Cell +item.ammo_coilgun.name=Coilgun Tungsten Ball +item.ammo_coilgun_du.name=Coilgun Ferrouranium Ball +item.ammo_coilgun_rubber.name=Coilgun Rubber Ball +item.ammo_container.name=Ammo Container +item.ammo_dart.name=Plastic Dart (Withering) +item.ammo_dart_nerf.name=NERF Dart +item.ammo_dart_nuclear.name=Plastic Dart (Timed Explosive) +item.ammo_dgk.name=Goalkeeper Twin CIWS 200 Round Belt +item.ammo_fireext.name=Fire Extinguisher Water Tank +item.ammo_fireext_foam.name=Fire Extinguisher Foam Tank +item.ammo_fireext_sand.name=Fire Extinguisher Sand Tank +item.ammo_folly.name=Silver Bullet (Original) +item.ammo_folly_du.name=Silver Bullet (DU, Non-Explosive) +item.ammo_folly_nuclear.name=Silver Bullet (Nuclear) +item.ammo_fuel.name=Diesel Tank +item.ammo_fuel_gas.name=Gas Tank +item.ammo_fuel_napalm.name=Napalm Tank +item.ammo_fuel_phosphorus.name=WP Tank +item.ammo_fuel_vaporizer.name=Vaporizer Tank +item.ammo_grenade.name=40mm Grenade +item.ammo_grenade_concussion.name=40mm Grenade (Concussion) +item.ammo_grenade_finned.name=40mm Grenade (Finned) +item.ammo_grenade_he.name=40mm Grenade (HE) +item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) +item.ammo_grenade_kampf.name=40mm Rocket +item.ammo_grenade_nuclear.name=40mm Grenade (ПрОвет) +item.ammo_grenade_phosphorus.name=40mm Grenade (WP) +item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) +item.ammo_grenade_toxic.name=40mm Grenade (Chemical) +item.ammo_grenade_tracer.name=40mm Training Grenade +item.ammo_himars_standard.name=227mm Guided Artillery Rocket Pod +item.ammo_himars_standard_he.name=227mm Guided Artillery Rocket Pod (HE) +item.ammo_himars_standard_lava.name=227mm Guided Artillery Rocket Pod (Lava) +item.ammo_himars_standard_mini_nuke.name=227mm Guided Artillery Rocket Pod (Mini Nuke) +item.ammo_himars_standard_tb.name=227mm Guided Artillery Rocket Pod (Thermobaric) +item.ammo_himars_standard_wp.name=227mm Guided Artillery Rocket Pod (WP) +item.ammo_himars_single.name=610mm Guided Artillery Rocket Pod +item.ammo_himars_single_tb.name=610mm Guided Artillery Rocket Pod (Thermobaric) +item.ammo_luna.name=Lunatic Sniper Sabot Round +item.ammo_luna_explosive.name=Lunatic Sniper Explosive Round +item.ammo_luna_incendiary.name=Lunatic Sniper Incendiary Round +item.ammo_mirv.name=Mini MIRV +item.ammo_mirv_high.name=Mini MIRV (High Yield) +item.ammo_mirv_low.name=Mini MIRV (Low Yield) +item.ammo_mirv_safe.name=Mini MIRV (Safe) +item.ammo_mirv_special.name=Mini MILV +item.ammo_nuke.name=Mini Nuke +item.ammo_nuke_barrel.name=Mini Nuclear Waste Barrel +item.ammo_nuke_high.name=Mini Nuke (High Yield) +item.ammo_nuke_low.name=Mini Nuke (Low Yield) +item.ammo_nuke_pumpkin.name=Pumpkin Bomb +item.ammo_nuke_safe.name=Mini Nuke (Safe) +item.ammo_nuke_tots.name=Mini Nuke (Tiny Tots) +item.ammo_rocket.name=84mm Rocket +item.ammo_rocket_canister.name=84mm Rocket (Canister Shot) +item.ammo_rocket_digamma.name=null +item.ammo_rocket_emp.name=84mm Rocket (Pulse) +item.ammo_rocket_glare.name=84mm Rocket (Red Glare) +item.ammo_rocket_he.name=84mm Rocket (HE) +item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) +item.ammo_rocket_nuclear.name=84mm Rocket (ПрОвет) +item.ammo_rocket_phosphorus.name=84mm Rocket (WP) +item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw +item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) +item.ammo_rocket_sleek.name=84mm Rocket (IF-R&D) +item.ammo_rocket_toxic.name=84mm Rocket (Chemical) +item.ammo_shell.name=240mm Shell +item.ammo_shell_apfsds_du.name=240mm APFSDS-DU +item.ammo_shell_apfsds_t.name=240mm APFSDS-T +item.ammo_shell_explosive.name=240mm HE Shell +item.ammo_shell_w9.name=240mm W9 Nuclear Shell +item.ammo_stinger_rocket.name=Stinger Rocket +item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) +item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) +item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (ПрОвет) +item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking) +item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst +item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst +item.ams_catalyst_blank.name=Blank Reaction Catalyst +item.ams_catalyst_caesium.name=Caeseium Reaction Catalyst +item.ams_catalyst_cerium.name=Cerium Reaction Catalyst +item.ams_catalyst_cobalt.name=Cobalt Reaction Catalyst +item.ams_catalyst_copper.name=Copper Reaction Catalyst +item.ams_catalyst_dineutronium.name=Dineutronium Reaction Catalyst +item.ams_catalyst_euphemium.name=Euphemium Reaction Catalyst +item.ams_catalyst_iron.name=Iron Reaction Catalyst +item.ams_catalyst_lithium.name=Lithium Reaction Catalyst +item.ams_catalyst_niobium.name=Niobium Reaction Catalyst +item.ams_catalyst_schrabidium.name=Schrabidium Reaction Catalyst +item.ams_catalyst_strontium.name=Strontium Reaction Catalyst +item.ams_catalyst_thorium.name=Thorium Reaction Catalyst +item.ams_catalyst_tungsten.name=Tungsten Reaction Catalyst +item.ams_core_eyeofharmony.name=Eye of Harmony (AMS/DFC Core) +item.ams_core_sing.name=Vibrant Singularity (AMS/DFC Core) +item.ams_core_thingy.name=Thingy (AMS/DFC Core) +item.ams_core_wormhole.name=Tiny Wormhole (AMS/DFC Core) +item.ams_focus_blank.name=Blank Stabilizer Focus +item.ams_focus_booster.name=Boosting Stabilizer Focus +item.ams_focus_booster.desc=Weaker restriction field and core energy injection:$More heat generation, extra energy. +item.ams_focus_limiter.name=Limiting Stabilizer Focus +item.ams_focus_limiter.desc=Maximum performance for restriction field:$Standard cooling, no energy bonus. +item.ams_lens.name=Stabilizer Lens +item.ams_muzzle.name=Ray-Emission Muzzle +item.ams_muzzle.desc=...it emits an energy-beam thingy. +item.analyzer.name=Analyzer +item.anchor_remote.name=Recall Device +item.antiknock.name=Tetraethyllead Antiknock Agent +item.apple_euphemium.name=Euphemium Apple +item.apple_lead.name=Lead Apple +item.apple_schrabidium.name=Schrabidium Apple +item.arc_electrode.name=Graphite Electrode +item.arc_electrode_burnt.name=Molten Electrode +item.arc_electrode_desh.name=Desh Electrode +item.armor_polish.name=ShiningArmor™ Armor Polish +item.asbestos_boots.name=Fire Proximity Boots +item.asbestos_cloth.name=Fire Proximity Cloth +item.asbestos_helmet.name=Fire Proximity Helmet +item.asbestos_legs.name=Fire Proximity Leggings +item.asbestos_plate.name=Fire Proximity Chestplate +item.ashglasses.name=Ash Goggles +item.assembly_45.name=.45 ACP Assembly +item.assembly_556.name=5.56mm Assembly +item.assembly_762.name=7.62mm Assembly +item.assembly_actionexpress.name=.50 AE Assembly +item.assembly_calamity.name=.50 BMG Assembly +item.assembly_desh.name=Desh Bullet Assembly +item.assembly_gold.name=Gold Bullet Assembly +item.assembly_iron.name=Iron Bullet Assembly +item.assembly_lacunae.name=.5mm Assembly +item.assembly_lead.name=Glass Bullet Assembly +item.assembly_luna.name=Lunatic Sniper Bullet Assembly +item.assembly_nightmare.name=Nightmare Bullet Assembly +item.assembly_nopip.name=.44 Magnum Assembly +item.assembly_nuke.name=Mini Nuke Shell +item.assembly_pip.name=Tainted Bullet Assembly +item.assembly_schrabidium.name=Schrabidium Bullet Assembly +item.assembly_smg.name=9mm Assembly +item.assembly_steel.name=Lead Bullet Assembly +item.assembly_template.name=Assembly Template: +item.assembly_uzi.name=.22 LR Assembly +item.attachment_mask.name=Gas Mask Attachable +item.attachment_mask_mono.name=Half Mask Attachable +item.australium_iii.name=Mark III Life Extender +item.australium_iv.name=Mark IV Life Extender +item.australium_v.name=Mark V Life Extender +item.back_tesla.name=Back-Mounted Tesla Coil +item.balefire_and_ham.name=Ham and Balefire Eggs +item.balefire_and_steel.name=Balefire and Steel +item.balefire_scrambled.name=Scrambled Balefire Egg +item.ball_dynamite.name=Dynamite +item.ball_fireclay.name=Fireclay +item.ball_tatb.name=TATB +item.ball_tnt.name=TNT +item.ballistic_gauntlet.name=Ballistic Gauntlet +item.ballistite.name=Ballistite +item.bandaid.name=Velvet Band-Aid +item.bathwater.name=Toxic Soapy Water +item.bathwater_mk2.name=Toxic Soapy Water (Horse Scented) +item.battery_advanced.name=Advanced Battery +item.battery_advanced_cell.name=Advanced Power Cell +item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell +item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell +item.battery_creative.name=Infinite Battery +item.battery_generic.name=Battery +item.battery_lithium.name=Lithium-Ion Battery +item.battery_lithium_cell.name=Lithium-Ion Power Cell +item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell +item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell +item.battery_potato.name=Potato Battery +item.battery_potatos.name=PotatOS +item.battery_red_cell.name=Redstone Power Cell +item.battery_red_cell_24.name=24-Fold Redstone Power Cell +item.battery_red_cell_6.name=Sixfold Redstone Power Cell +item.battery_sc_americium.name=Self-Charging Americium-241 Battery +item.battery_sc_gold.name=Self-Charging Gold-198 Battery +item.battery_sc_lead.name=Self-Charging Lead-209 Battery +item.battery_sc_plutonium.name=Self-Charging Plutonium-238 Battery +item.battery_sc_polonium.name=Self-Charging Polonium-210 Battery +item.battery_sc_technetium.name=Self-Charging Technetium-99 Battery +item.battery_sc_uranium.name=Self-Charging Uranium-238 Battery +item.battery_schrabidium.name=Schrabidium Battery +item.battery_schrabidium_cell.name=Schrabidium Power Cell +item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell +item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell +item.battery_spark.name=Spark Battery +item.battery_spark_cell_100.name=Spark Arcane Energy Storage Array +item.battery_spark_cell_1000.name=Spark Arcane Mass-Energy Void +item.battery_spark_cell_10000.name=Spark Solid Space-Time Crystal +item.battery_spark_cell_25.name=Spark Arcane Car Battery +item.battery_spark_cell_2500.name=Spark Arcane Dirac Sea +item.battery_spark_cell_6.name=Spark Power Cell +item.battery_spark_cell_power.name=Spark Ludicrous Physics-Defying Energy Storage Unit +item.battery_steam.name=Steam Powered Energy Storage Tank +item.battery_steam_large.name=Large Steam Powered Energy Storage Tank +item.battery_su.name=SU-Battery +item.battery_su_l.name=Large SU-Battery +item.battery_trixite.name=Off-Brand Spark Battery +item.bdcl.name=BDCL +item.beta.name=Beta Features +item.big_sword.name=Great Sword +item.billet_actinium.name=Actinium-227 Billet +item.billet_am_mix.name=Reactor Grade Americium Billet +item.billet_am241.name=Americium-241 Billet +item.billet_am242.name=Americium-242 Billet +item.billet_americium_fuel.name=Americium Fuel Billet +item.billet_au198.name=Gold-198 Billet +item.billet_australium.name=Australium Billet +item.billet_australium_greater.name=Greater Australium Billet +item.billet_australium_lesser.name=Lesser Australium Billet +item.billet_balefire_gold.name=Flashgold Billet +item.billet_beryllium.name=Beryllium Billet +item.billet_bismuth.name=Bismuth Billet +item.billet_co60.name=Cobalt-60 Billet +item.billet_cobalt.name=Cobalt Billet +item.billet_flashlead.name=Flashlead Billet +item.billet_flashlead.desc=The lattice decays, causing antimatter-matter$annihilation reactions, causing the release of$pions, decaying into muons, catalyzing fusion of$the nuclei, creating the new element.$Please try to keep up. +item.billet_gh336.name=Ghiorsium-336 Billet +item.billet_gh336.desc=Seaborgium's colleague. +item.billet_hes.name=Highly Enriched Schrabidium Fuel Billet +item.billet_les.name=Low Enriched Schrabidium Fuel Billet +item.billet_mox_fuel.name=MOX Fuel Billet +item.billet_mox_fuel.desc=Pocket-Moxie! +item.billet_neptunium.name=Neptunium Billet +item.billet_neptunium_fuel.name=Neptunium Fuel Billet +item.billet_nuclear_waste.name=Nuclear Waste Billet +item.billet_pb209.name=Lead-209 Billet +item.billet_po210be.name=Po210Be Billet +item.billet_polonium.name=Polonium-210 Billet +item.billet_pu_mix.name=Reactor Grade Plutonium Billet +item.billet_pu238.name=Plutonium-238 Billet +item.billet_pu238be.name=Pu238Be Billet +item.billet_pu239.name=Plutonium-239 Billet +item.billet_pu240.name=Plutonium-240 Billet +item.billet_pu241.name=Plutonium-241 Billet +item.billet_plutonium.name=Plutonium Billet +item.billet_plutonium_fuel.name=Plutonium Fuel Billet +item.billet_ra226.name=Radium-226 Billet +item.billet_ra226be.name=Ra226Be Billet +item.billet_schrabidium.name=Schrabidium Billet +item.billet_schrabidium_fuel.name=Schrabidium Fuel Billet +item.billet_solinium.name=Solinium Billet +item.billet_sr90.name=Strontium-90 Billet +item.billet_technetium.name=Technetium-99 Billet +item.billet_th232.name=Thorium-232 Billet +item.billet_thorium_fuel.name=Thorium Fuel Billet +item.billet_u233.name=Uranium-233 Billet +item.billet_u235.name=Uranium-235 Billet +item.billet_u238.name=Uranium-238 Billet +item.billet_uranium.name=Uranium Billet +item.billet_uranium_fuel.name=Uranium Fuel Billet +item.billet_yharonite.name=Yharonite Billet +item.billet_zfb_am_mix.name=Reactor Grade Americium ZFB Billet +item.billet_zfb_bismuth.name=Bismuth ZFB Billet +item.billet_zfb_pu241.name=Pu-241 ZFB Billet +item.billet_zirconium.name=Zirconium Billet +item.bio_wafer.name=Algae Wafer +item.biomass.name=Biomass +item.biomass_compressed.name=Compressed Biomass +item.bismuth_boots.name=Bismuth Sandals +item.bismuth_helmet.name=Bismuth Headdress +item.bismuth_legs.name=Bismuth Kneeguards +item.bismuth_pickaxe.name=Bismuth Pickaxe +item.bismuth_plate.name=Bismuth Shoulderpads, Necklace & Loincloth +item.bismuth_tool.name=Magnetic Extractor +item.bj_boots.name=Lunar Studded Boots +item.bj_helmet.name=Eyepatch with Thermal Sensor +item.bj_legs.name=Lunar Cybernetic Leg Replacements +item.bj_plate.name=Lunar Cybernetic Plating +item.bj_plate_jetpack.name=Lunar Cybernetic Plating (Winged) +item.black_diamond.name=Black Diamond +item.black_hole.name=Miniature Black Hole +item.blade_meteorite.name=Meteorite Blade +item.blade_titanium.name=Titanium Blade +item.blade_tungsten.name=Tungsten Reinforced Blade +item.blades_advanced_alloy.name=Advanced Shredder Blades +item.blades_desh.name=Desh Shredder Blades +item.blades_steel.name=Steel Shredder Blades +item.blades_titanium.name=Titanium Shredder Blades +item.blowtorch.name=Blowtorch +item.board_copper.name=Copper Panel +item.bobmazon_hidden.name=Hidden Catalog +item.bobmazon_machines.name=Bobmazon: Blocks and Machines +item.bobmazon_materials.name=Bobmazon: Materials +item.bobmazon_tools.name=Bobmazon: Tools +item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives +item.bolt_compound.name=Reinforced Turbine Shaft +item.bolt_dura_steel.name=High-Speed Steel Bolt +item.bolt_tungsten.name=Tungsten Bolt +item.boltgun.name=Pneumatic Rivet Gun +item.bomb_caller.name=Airstrike Designator +item.bomb_waffle.name=Waffle of Mass Destruction +item.book_guide.name=Guide Book +item.book_of_.name=The Book of Boxcars +item.book_secret.name=3-596-50802-9 +item.bottle2_empty.name=Empty Bottle +item.bottle2_fritz.name=Fritz Cola +item.bottle2_fritz_special.name=The First Fritz Cola +item.bottle2_korl.name=Korl +item.bottle2_korl_special.name=The First Korl +item.bottle2_sunset.name=Sunset Sarsaparilla +item.bottle_cherry.name=Bottle of Nuka Cherry +item.bottle_empty.name=Empty Bomb-Shaped Bottle +item.bottle_mercury.name=Bottle of Mercury +item.bottle_nuka.name=Bottle of Nuka Cola +item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener +item.bottle_quantum.name=Bottle of Nuka Cola Quantum +item.bottle_rad.name=Bottle of S~Cola RAD +item.bottle_sparkle.name=Bottle of S~Cola +item.boy_bullet.name=U235 Projectile +item.boy_igniter.name=Bomb Igniter +item.boy_kit.name=Little Boy Kit +item.boy_propellant.name=Propellant +item.boy_shielding.name=Neutron Shielding +item.boy_target.name=Subcritical U235 Target +item.briquette.coal.name=Coal Briquette +item.briquette.lignite.name=Lignite Briquette +item.briquette.wood.name=Sawdust Briquette +item.bucket_acid.name=Bucket of Acid +item.bucket_mud.name=Bucket of Poisonous Mud +item.bucket_schrabidic_acid.name=Bucket of Schrabidic Acid +item.bucket_sulfuric_acid.name=Bucket of Sulfuric Acid +item.bucket_toxic.name=Bucket of Stereotypical Green Ooze +item.burnt_bark.name=Burnt Bark +item.burnt_bark.desc=A piece of bark from an exploded golden oak tree. +item.can_bepis.name=Bepis +item.can_breen.name=Dr>Breens Private Reserve +item.can_creature.name='Creature' Energy Drink +item.can_empty.name=Empty Can +item.can_key.name=Winding Key +item.can_luna.name=Black Mesa Luna - Dark Cola +item.can_mrsugar.name='Dr. Sugar' Soft Drink +item.can_mug.name=MUG Root Beer +item.can_overcharge.name=Overcharge Delirium XT +item.can_redbomb.name='Red Bomb' Energy Drink +item.can_smart.name='Smart' Energy Drink +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_biofuel.name=Biofuel Canister (LEGACY) +item.canister_bitumen.name=Bitumen Canister (LEGACY) +item.canister_canola.name=Engine Lubricant (LEGACY) +item.canister_empty.name=Empty Canister +item.canister_ethanol.name=Ethanol Canister (LEGACY) +item.canister_fracksol.name=Fracking Solution Canister (LEGACY) +item.canister_fuel.name=Diesel Canister (LEGACY) +item.canister_fuel.desc=All hail the spout! +item.canister_full.name=Canister: +item.canister_gasoline.name=Leaded Gasoline Canister (LEGACY) +item.canister_gasoline.desc=lead is friend$let friend into your blood stream$*cocks gun* do it now. +item.canister_heatingoil.name=Heating Oil Canister (LEGACY) +item.canister_heavyoil.name=Heavy Oil Canister (LEGACY) +item.canister_kerosene.name=Kerosene Canister (LEGACY) +item.canister_lightoil.name=Light Oil Canister (LEGACY) +item.canister_napalm.name=Napalm B +item.canister_naphtha.name=Naphtha Canister (LEGACY) +item.canister_oil.name=Crude Oil Canister (LEGACY) +item.canister_petroil.name=Petroil Canister (LEGACY) +item.canister_reoil.name=Canister of Reclaimed Industrial Oil (LEGACY) +item.canister_smear.name=Industrial Oil Canister (LEGACY) +item.canned_asbestos.name=Canned Asbestos +item.canned_asbestos.desc=TASTE the asbestosis! +item.canned_ass.name=Canned Ass +item.canned_ass.desc=100%% quality donkey meat!* +item.canned_bark.name=Canned Pine Bark Jerky +item.canned_bark.desc=Extra cronchy! +item.canned_beef.name=Canned Beef +item.canned_beef.desc=A few centuries ago, a cow died for this. +item.canned_bhole.name=Canned Black Hole +item.canned_bhole.desc=Singularity is yum yum in my tum tum! +item.canned_cheese.name=Canned Melted Cheese +item.canned_cheese.desc=Is it cheese? Is it rubber cement? Who knows, who cares. +item.canned_chinese.name=Canned Chinese Food +item.canned_chinese.desc=In China, Chinese food is just called food. +item.canned_diesel.name=Canned Diesel +item.canned_diesel.desc=I'm slowly running out of jokes for these. +item.canned_fist.name=Canned Fist +item.canned_fist.desc=Yowser! +item.canned_fried.name=Canned Fried Chicken +item.canned_fried.desc=Even the can is deep fried! +item.canned_hotdogs.name=Canned Hotdogs +item.canned_hotdogs.desc=Not to be confused with cool cats. +item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ +item.canned_jizz.desc=Wait wh- +item.canned_kerosene.name=Canned Kerosene +item.canned_kerosene.desc=Just imagine a witty line here. +item.canned_leftovers.name=Leftover Conserve +item.canned_leftovers.desc=ur 2 slow +item.canned_milk.name=Canned Evaporated Milk +item.canned_milk.desc=Milk 2: More solid than ever before! +item.canned_mystery.name=Canned Mystery Meat +item.canned_mystery.desc=What's inside? Only one way to find out! +item.canned_napalm.name=Canned Napalm +item.canned_napalm.desc=I love the smell of old memes in the morning! +item.canned_oil.name=Canned Engine Oil +item.canned_oil.desc=It makes motors go, so why not humans? +item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=услугО перевПЎа МеЎПступМы! +item.canned_pizza.name=Canned Pepperoni Pizza +item.canned_pizza.desc=A crime against humanity. +item.canned_recursion.name=Canned Recursion +item.canned_recursion.desc=Canned Recursion +item.canned_spam.name=Canned Spam +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_stew.name=Canned "Mushroom Stew" +item.canned_stew.desc=... +item.canned_tomato.name=Canned Tomato Soup +item.canned_tomato.desc=Who wants some thick red paste? +item.canned_tube.name=Astronaut Food Tube +item.canned_tube.desc=Tasty mush. +item.canned_tuna.name=Canned Tuna +item.canned_tuna.desc=I can't tell if that's actually tuna or dried cement. +item.canned_yogurt.name=Canned Yogurt +item.canned_yogurt.desc=Probably spoiled, but whatever. +item.canteen_13.name=Vault 13 Canteen +item.canteen_fab.name=Fabulous Vodka +item.canteen_vodka.name=Stylish Flask +item.cap_fritz.name=Fritz Cola Bottle Cap +item.cap_korl.name=Korl Bottle Cap +item.cap_nuka.name=Nuka Cola Bottle Cap +item.cap_quantum.name=Nuka Cola Quantum Bottle Cap +item.cap_rad.name=S~Cola RAD Bottle Cap +item.cap_sparkle.name=S~Cola Bottle Cap +item.cap_star.name=Sunset Sarsaparilla Star Cap +item.cap_sunset.name=Sunset Sarsaparilla Bottle Cap +item.cape_ayy.name=Ayy's Cape +item.cape_codered_.name=codered_'s Cape +item.cape_dafnik.name=Dafnik's Cape +item.cape_gasmask.name=Cape (Gas Mask) +item.cape_hbm.name=Hbm's Cape +item.cape_hidden.name=Hidden Cape +item.cape_lpkukin.name=LPkukin's Cape +item.cape_nostalgia.name=DrNostalgia's Cape +item.cape_radiation.name=Cape (Radiation) +item.cape_schrabidium.name=Cape (Schrabidic) +item.cape_vertice.name=Lord Vertice's Cape +item.cart.crate.name=Crate Cart +item.cart.destroyer.name=Scrap Destroying Cart +item.cart.empty.name=Minecart +item.casing_357.name=.357 Magnum Casing (x24) +item.casing_44.name=.44 Magnum Casing (x24) +item.casing_50.name=Large Caliber Casing (x12) +item.casing_9.name=Small Caliber Casing (x32) +item.casing_buckshot.name=Buckshot Casing (x12) +item.catalyst_clay.name=Clay Catalyst +item.catalytic_converter.name=Catalytic Converter +item.cbt_device.name=CBT Device +item.cell_anti_schrabidium.name=Antischrabidium Cell +item.cell_antimatter.name=Antimatter Cell +item.cell_balefire.name=Gaseous Balefire Cell +item.cell_deuterium.name=Deuterium Cell +item.cell_empty.name=Empty Cell +item.cell_puf6.name=Plutonium Hexafluoride Cell +item.cell_sas3.name=Schrabidium Trisulfide Cell +item.cell_tritium.name=Tritium Cell +item.cell_uf6.name=Uranium Hexafluoride Cell +item.centri_stick.name=Centrifuge on a Stick +item.centrifuge_element.name=Centrifuge Element +item.centrifuge_tower.name=Centrifuge Tower +item.chainsaw.name=Chainsaw +item.cheese.name=Cheese +item.cheese_quesadilla.name=Cheese Quesadilla +item.chemical_dye.black.name=Chemical Dye (Black) +item.chemical_dye.blue.name=Chemical Dye (Blue) +item.chemical_dye.brown.name=Chemical Dye (Brown) +item.chemical_dye.cyan.name=Chemical Dye (Cyan) +item.chemical_dye.gray.name=Chemical Dye (Gray) +item.chemical_dye.green.name=Chemical Dye (Green) +item.chemical_dye.lightblue.name=Chemical Dye (Light Blue) +item.chemical_dye.lime.name=Chemical Dye (Lime) +item.chemical_dye.magenta.name=Chemical Dye (Magenta) +item.chemical_dye.orange.name=Chemical Dye (Orange) +item.chemical_dye.pink.name=Chemical Dye (Pink) +item.chemical_dye.purple.name=Chemical Dye (Purple) +item.chemical_dye.red.name=Chemical Dye (Red) +item.chemical_dye.silver.name=Chemical Dye (Light Gray) +item.chemical_dye.white.name=Chemical Dye (White) +item.chemical_dye.yellow.name=Chemical Dye (Yellow) +item.chemistry_set.name=Laboratory Glassware +item.chemistry_set_boron.name=Laboratory Glassware (Boron Glass) +item.chemistry_template.name=Chemistry Template: +item.chernobylsign.name=Chernobyl Warning Sign Battle Axe +item.chlorine_pinwheel.name=Chlorine Pinwheel +item.chlorophyte_pickaxe.name=Chlorophyte Pickaxe +item.chocolate.name=Ithis-Brand Radium Chocolate +item.chocolate.desc=Radium Chocolate? Pretty sure this is just meth. +item.chocolate_milk.name=Chocolate Milk +item.chopper.name=Hunter Chopper +item.chopper_blades.name=Hunter Chopper Rotor Blades +item.chopper_gun.name=Emplacement Gun +item.chopper_head.name=Hunter Chopper Cockpit +item.chopper_tail.name=Hunter Chopper Tail +item.chopper_torso.name=Hunter Chopper Body +item.chopper_wing.name=Hunter Chopper Wing +item.cigarette.name=FFI-Brand Cigarette +item.cinnebar.name=Cinnabar +item.circuit_aluminium.name=Basic Circuit +item.circuit_arsenic.name=Adaptable Circuit +item.circuit_arsenic_raw.name=Adaptable Circuit Assembly +item.circuit_bismuth.name=Versatile Chipset +item.circuit_bismuth_raw.name=Versatile Chipset Assembly +item.circuit_copper.name=Enhanced Circuit +item.circuit_gold.name=Overclocked Circuit +item.circuit_raw.name=Basic Circuit Assembly +item.circuit_red_copper.name=Advanced Circuit +item.circuit_schrabidium.name=High Performance Circuit +item.circuit_star.name=StarControl Circuit Board +item.circuit_star.desc=Currently unused, for it lacks an operating system. +item.circuit_star_component.chipset.name=StarControl Chipset +item.circuit_star_component.cpu.name=StarControl CPU +item.circuit_star_component.ram.name=StarControl RAM +item.circuit_star_piece.board_blank.name=SC - Printed Circuit Board +item.circuit_star_piece.board_transistor.name=SC - Transistors +item.circuit_star_piece.bridge_bios.name=SC- BIOS Chip +item.circuit_star_piece.bridge_bus.name=SC - BUS +item.circuit_star_piece.bridge_chipset.name=SC - Chipset +item.circuit_star_piece.bridge_cmos.name=SC - CMOS RAM +item.circuit_star_piece.bridge_io.name=SC - IO Chip +item.circuit_star_piece.bridge_north.name=SC - North Bridge +item.circuit_star_piece.bridge_south.name=SC - South Bridge +item.circuit_star_piece.cpu_cache.name=SC - CPU Cache +item.circuit_star_piece.cpu_clock.name=SC - CPU Clock +item.circuit_star_piece.cpu_ext.name=SC - Arsenic Semi Conductor Extension +item.circuit_star_piece.cpu_logic.name=SC - Arithmetic Logic Unit +item.circuit_star_piece.cpu_register.name=SC - CPU Register +item.circuit_star_piece.cpu_socket.name=SC - CPU Socket +item.circuit_star_piece.mem_socket.name=SC - Memory Socket +item.circuit_star_piece.mem_16k_a.name=SC - 16k Memory Stick Slot A +item.circuit_star_piece.mem_16k_b.name=SC - 16k Memory Stick Slot B +item.circuit_star_piece.mem_16k_c.name=SC - 16k Memory Stick Slot C +item.circuit_star_piece.mem_16k_d.name=SC - 16k Memory Stick Slot D +item.circuit_tantalium.name=Capacitor Board +item.circuit_tantalium_raw.name=Capacitor Board Assembly +item.circuit_targeting_tier1.name=Military Grade Circuit Board (Tier 1) +item.circuit_targeting_tier2.name=Military Grade Circuit Board (Tier 2) +item.circuit_targeting_tier3.name=Military Grade Circuit Board (Tier 3) +item.circuit_targeting_tier4.name=Military Grade Circuit Board (Tier 4) +item.circuit_targeting_tier5.name=Military Grade Circuit Board (Tier 5) +item.circuit_targeting_tier6.name=Military Grade Circuit Board (Tier 6) +item.cladding_desh.name=Desh Cladding +item.cladding_ghiorsium.name=Ghiorsium Cladding +item.cladding_iron.name=Iron Cladding +item.cladding_lead.name=Lead Cladding +item.cladding_obsidian.name=Obsidian Skin +item.cladding_paint.name=Lead Paint +item.cladding_rubber.name=Rubber Cladding +item.clip_bf.name=BF-Shell Double Pack +item.clip_bolt_action.name=Box of 12x74 Slugs +item.clip_cryolator.name=Tank of Cryolator Fuel +item.clip_defabricator.name=Belt with Defabricator Energy Cells +item.clip_emp.name=Small Pack of Energy Cells +item.clip_euthanasia.name=Last Aid Kit +item.clip_fatman.name=Six Pack of Mini Nukes +item.clip_hp.name=Ink Tanks +item.clip_immolator.name=Tank of Immolator Fuel +item.clip_jack.name=Box of Quadruple 12x70 Buckshot Rounds +item.clip_lever_action.name=Box of 12x74 Buckshot Rounds +item.clip_mirv.name=Three-In-One Pack of Mini MIRVs +item.clip_mp.name=Britannia Military Standard Issue Assault Rifle Magazine +item.clip_mp40.name=9mm SMG Magazine +item.clip_osipr.name=AR2 Magazine +item.clip_revolver.name=Box of .357 Rounds +item.clip_revolver_cursed.name=Britannia Military Standard Issue Pistol Magazine +item.clip_revolver_gold.name=Small Coffer of Golden Bullets +item.clip_revolver_iron.name=Box of Iron Rounds +item.clip_revolver_lead.name=Box of Nuclear Bullets +item.clip_revolver_nightmare.name=Bag of Bullets +item.clip_revolver_nightmare2.name=Belt with Laser Buckshot +item.clip_revolver_nopip.name=Box of .44 Rounds +item.clip_revolver_pip.name=Speedloader with Tainted Bullets +item.clip_revolver_schrabidium.name=Schrabidium Ammo Container +item.clip_rpg.name=Rocket Container +item.clip_spark.name=Large Electromagnetic Cartridge +item.clip_stinger.name=Pack of Stinger Rockets +item.clip_uboinik.name=Box of 12x70 Buckshot Rounds +item.clip_uzi.name=32rnd .22 LR Magazine +item.clip_xvl1456.name=Large Isotope Box +item.cmb_axe.name=CMB Steel Axe +item.cmb_boots.name=CMB Steel Boots +item.cmb_helmet.name=CMB Steel Helmet +item.cmb_hoe.name=CMB Steel Hoe +item.cmb_legs.name=CMB Steel Leggings +item.cmb_pickaxe.name=CMB Steel Pickaxe +item.cmb_plate.name=CMB Steel Chestplate +item.cmb_shovel.name=CMB Steel Shovel +item.cmb_sword.name=CMB Steel Sword +item.coal_infernal.name=Infernal Coal +item.cobalt_axe.name=Cobalt Axe +item.cobalt_boots.name=Cobalt Boots +item.cobalt_decorated_axe.name=Decorated Cobalt Axe +item.cobalt_decorated_hoe.name=Decorated Cobalt Hoe +item.cobalt_decorated_pickaxe.name=Decorated Cobalt Pickaxe +item.cobalt_decorated_shovel.name=Decorated Cobalt Shovel +item.cobalt_decorated_sword.name=Decorated Cobalt Sword +item.cobalt_helmet.name=Cobalt Helmet +item.cobalt_hoe.name=Cobalt Hoe +item.cobalt_legs.name=Cobalt Leggings +item.cobalt_pickaxe.name=Cobalt Pickaxe +item.cobalt_plate.name=Cobalt Chestplate +item.cobalt_shovel.name=Cobalt Shovel +item.cobalt_sword.name=Cobalt Sword +item.coffee.name=Coffee +item.coffee_radium.name=Radium Coffee +item.coil_advanced_alloy.name=Super Conducting Coil +item.coil_advanced_torus.name=Super Conducting Ring Coil +item.coil_copper.name=Copper Coil +item.coil_copper_torus.name=Ring Coil +item.coil_gold.name=Gold Coil +item.coil_gold_torus.name=Golden Ring Coil +item.coil_magnetized_tungsten.name=4000K High Temperature Super Conducting Coil +item.coil_tungsten.name=Heating Coil +item.coin_creeper.name=Nuclear Creeper Coin +item.coin_maskman.name=Maskman Coin +item.coin_radiation.name=Radiation Coin +item.coin_siege.name=Siege Coin +item.coin_ufo.name=UFO Coin +item.coin_worm.name=Balls-O-Tron Coin +item.coke.coal.name=Coal Coke +item.coke.lignite.name=Lignite Coke +item.coke.petroleum.name=Petroleum Coke +item.coltan_tool.name=Coltass +item.combine_scrap.name=CMB Scrap Metal +item.component_emitter.name=Emitter Component +item.component_limiter.name=Stabilizer Component +item.containment_box.name=Containment Box +item.cordite.name=Cordite +item.cotton_candy.name=Radioactive Cotton Candy +item.crackpipe.name=Health Pipe +item.crate_caller.name=Supply Drop Requester +item.crayon.black.name=Black Crayon +item.crayon.blue.name=Blue Crayon +item.crayon.brown.name=Brown Crayon +item.crayon.cyan.name=Cyan Crayon +item.crayon.gray.name=Gray Crayon +item.crayon.green.name=Green Crayon +item.crayon.lightblue.name=Light Blue Crayon +item.crayon.lime.name=Lime Crayon +item.crayon.magenta.name=Magenta Crayon +item.crayon.orange.name=Orange Crayon +item.crayon.pink.name=Pink Crayon +item.crayon.purple.name=Purple Crayon +item.crayon.red.name=Red Crayon +item.crayon.silver.name=Light Gray Crayon +item.crayon.white.name=White Crayon +item.crayon.yellow.name=Yellow Crayon +item.crowbar.name=Mk.V Crate Opening Device "Crowbar" +item.crucible.name=Crucible +item.crucible_template.name=Crucible Template: +item.crystal_aluminium.name=Aluminium Crystals +item.crystal_beryllium.name=Beryllium Crystals +item.crystal_charred.name=Charred Crystal +item.crystal_charred.desc=High quality silicate, slightly burned. +item.crystal_charred.desc.P11=Also a real horn. Weird, right? +item.crystal_coal.name=Coal Crystals +item.crystal_cobalt.name=Cobalt Crystals +item.crystal_copper.name=Copper Crystals +item.crystal_cinnebar.name=Cinnabar Crystals +item.crystal_diamond.name=Diamond Crystals +item.crystal_energy.name=Energy Crystal +item.crystal_fluorite.name=Fluorite Crystals +item.crystal_gold.name=Gold Crystals +item.crystal_horn.name=Crystal Horn +item.crystal_horn.desc=Not an actual horn. +item.crystal_horn.desc.P11=An actual horn. +item.crystal_iron.name=Iron Crystals +item.crystal_lead.name=Lead Crystals +item.crystal_lapis.name=Lapis Crystals +item.crystal_lithium.name=Lithium Crystals +item.crystal_niter.name=Niter Crystals +item.crystal_osmiridium.name=Osmiridium Crystals +item.crystal_phosphorus.name=Phosphorus Crystals +item.crystal_plutonium.name=Plutonium Crystals +item.crystal_rare.name=Rare Earth Crystals +item.crystal_redstone.name=Redstone Crystals +item.crystal_schrabidium.name=Schrabidium Crystals +item.crystal_schraranium.name=Schraranium Crystals +item.crystal_starmetal.name=Starmetal Crystals +item.crystal_sulfur.name=Sulfur Crystals +item.crystal_thorium.name=Thorium Crystals +item.crystal_titanium.name=Titanium Crystals +item.crystal_trixite.name=Trixite Crystals +item.crystal_tungsten.name=Tungsten Crystals +item.crystal_uranium.name=Uranium Crystals +item.crystal_xen.name=Artificial Xen Crystal +item.crt_display.name= Cathode Ray Tube +item.cube_power.name=Electronium Cube +item.custom_amat.name=Custom Nuke Antimatter Rod +item.custom_dirty.name=Custom Nuke Dirty Rod +item.custom_fall.name=Custom Nuke Drop Upgrade +item.custom_fall.desc=That's what you've aaaaaaall been waiting for!$Makes bomb drop upon activation +item.custom_hydro.name=Custom Nuke Hydrogen Rod +item.custom_kit.name=Custom Nuke Kit +item.custom_nuke.name=Custom Nuke Nuclear Rod +item.custom_schrab.name=Custom Nuke Schrabidium Rod +item.custom_tnt.name=Custom Nuke Explosive Charge +item.cyclotron_tower.name=Cyclotron Tower +item.debris_concrete.name=Broken Concrete +item.debris_element.name=Broken ZIRNOX Fuel Element +item.debris_exchanger.name=Heat Exchanger Piece +item.debris_fuel.name=RBMK Fuel Chunk +item.debris_graphite.name=Hot Graphite Chunk +item.debris_metal.name=Broken Metal Bar +item.debris_shrapnel.name=Walkway Shrapnel +item.definitelyfood.name=TotallyNotDirt-Brand MRE +item.defuser.name=High-Tech Bomb Defusing Device +item.defuser_gold.name=Golden Wire Cutter +item.demon_core_closed.name=Closed Demon Core +item.demon_core_open.name=Suspended Demon Core +item.desh_axe.name=Worker's Alloy Axe +item.desh_hoe.name=Worker's Alloy Hoe +item.desh_pickaxe.name=Worker's Alloy Pickaxe +item.desh_shovel.name=Worker's Alloy Shovel +item.desh_sword.name=Worker's Alloy Sword +item.designator.name=Short Range Target Designator +item.designator_arty_range.name=Long Range Artillery Remote +item.designator_manual.name=Manual Target Designator +item.designator_range.name=Long Range Target Designator +item.detonator.name=Detonator +item.detonator_de.name=Dead Man's Explosive +item.detonator_deadman.name=Dead Man's Detonator +item.detonator_laser.name=Laser Detonator +item.detonator_multi.name=Multi Detonator +item.deuterium_filter.name=Deuterium Filter +item.diamond_gavel.name=Diamond Gavel +item.dieselsuit_boots.name=Diesel-Powered High Heels +item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor +item.dieselsuit_legs.name=Diesel-Powered Leg Servos +item.dieselsuit_plate.name=Diesel-Powered Cybernetics +item.digamma_diagnostic.name=Digamma Diagnostic +item.dns_boots.name=DNT Nano Suit Boots +item.dns_legs.name=DNT Nano Suit Leggings +item.dns_helmet.name=DNT Nano Suit Helmet +item.dns_plate.name=DNT Nano Suit Chestplate +item.dnt_boots.name=dienautronium boots +item.dnt_legs.name=dineuterium legs +item.dnt_helmet.name=dinotroniumu helmet +item.dnt_plate.name=dineutrom chestplate +item.door_bunker.name=Bunker Door +item.door_metal.name=Metal Door +item.door_office.name=Office Door +item.dosimeter.name=Dosimeter +item.drillbit_desh.name=Desh Drillbit +item.drillbit_desh_diamond.name=Desh Drillbit (Diamond-Tipped) +item.drillbit_ferro.name=Ferrouranium Drillbit +item.drillbit_ferro_diamond.name=Ferrouranium Drillbit (Diamond-Tipped) +item.drillbit_hss.name=High-Speed Steel Drillbit +item.drillbit_hss_diamond.name=High-Speed Steel Drillbit (Diamond-Tipped) +item.drillbit_steel.name=Steel Drillbit +item.drillbit_steel_diamond.name=Steel Drillbit (Diamond-Tipped) +item.drillbit_tcalloy.name=Technetium Steel Drillbit +item.drillbit_tcalloy_diamond.name=Technetium Steel Drillbit (Diamond-Tipped) +item.drill_titanium.name=Titanium Drill +item.drax.name=Terra Drill +item.drax_mk2.name=Hardened Terra Drill +item.drax_mk3.name=Schrabidic Terra Drill +item.ducttape.name=Duct Tape +item.dust.name=Dust +item.dust.desc=I hate dust! +item.dust.desc.P11=Another one bites the dust! +item.dust_tiny.name=Tiny Pile of Dust +item.dynosphere_base.name=Blank Dynosphere +item.dynosphere_desh.name=Desh Dynosphere +item.dynosphere_desh_charged.name=Desh Dynosphere (Charged) +item.dynosphere_dineutronium.name=Dineutronium Dynosphere +item.dynosphere_dineutronium_charged.name=Dineutronium Dynosphere (Charged) +item.dynosphere_euphemium.name=Euphemium Dynosphere +item.dynosphere_euphemium_charged.name=Euphemium Dynosphere (Charged) +item.dynosphere_schrabidium.name=Schrabidium Dynosphere +item.dynosphere_schrabidium_charged.name=Schrabidium Dynosphere (Charged) +item.dysfunctional_reactor.name=Dysfunctional Nuclear Reactor +item.early_explosive_lenses.name=Array of First-Generation High-Explosive Lenses +item.early_explosive_lenses.desc=Assembly of 8 high-explosive lenses with an aluminium$pusher, duraluminium shell, and bridgewire detonators. +item.egg_balefire.name=Balefire Egg +item.egg_balefire.desc=What kind of bird lays a radioactive egg? +item.egg_balefire_shard.name=Balefire Shard +item.egg_glyphid.name=Glyphid Egg +item.elec_axe.name=Electric Chainsaw +item.elec_pickaxe.name=Impact Drill +item.elec_shovel.name=Spiral Drill +item.elec_sword.name=Stunstick +item.energy_core.name=Makeshift Energy Core +item.entanglement_kit.name=Entanglement Kit +item.entanglement_kit.desc=Teleporter crafting item.$Enables dimension-shifting via a$beryllium-enhanced resource scanner. +item.envsuit_boots.name=M1TTY Environment Suit Boots +item.envsuit_helmet.name=M1TTY Environment Suit Helmet +item.envsuit_legs.name=M1TTY Environment Suit Leggings +item.envsuit_plate.name=M1TTY Environment Suit Chestplate +item.euphemium_boots.name=Euphemium Boots +item.euphemium_capacitor.name=Euphemium Capacitor +item.euphemium_capacitor.desc=Permits passive dispersion of accumulated positive energy. +item.euphemium_helmet.name=Euphemium Helmet +item.euphemium_kit.name=Euphemium Kit +item.euphemium_legs.name=Euphemium Leggings +item.euphemium_plate.name=Euphemium Chestplate +item.euphemium_stopper.name=Stopper +item.explosive_lenses.name=Array of High-Explosive Lenses +item.explosive_lenses.desc=Assembly of 8 PBX lenses with a thin$aluminium pusher, duraluminium shell, and$miniaturized bridgewire detonators. +item.fabsols_vodka.name=Fabsol's Vodka +item.factory_core_advanced.name=Advanced Factory Energy Cluster +item.factory_core_titanium.name=Basic Factory Energy Cluster +item.fallout.name=Pile of Fallout +item.fau_boots.name=Fau Boots +item.fau_helmet.name=Fau Helmet +item.fau_legs.name=Fau Leggins +item.fau_plate.name=Fau Chestplate +item.filter_coal.name=Activated Carbon Filter +item.fins_big_steel.name=Big Steel Grid Fins +item.fins_flat.name=Flat Steel Casing +item.fins_quad_titanium.name=Small Titanium Fins +item.fins_small_steel.name=Small Steel Grid Fins +item.fins_tri_steel.name=Large Steel Fins +item.five_htp.name=Enteramine Pills +item.five_htp.desc=Removes all DRX, Stability for 10 minutes +item.flame_conspiracy.name=Conspiracy Theory +item.flame_conspiracy.desc=Steel beams can't melt jet fuel! +item.flame_opinion.name=Own Opinion +item.flame_opinion.desc=Well, I like it... +item.flame_politics.name=Political Topic +item.flame_politics.desc=Donald Duck will build the wall! +item.flame_pony.name=Painting of a Cartoon Pony +item.flame_pony.desc=Yellow horse beats blue horse, that's a proven fact! +item.flask_infusion.shield.name=Shield Infusion +item.fleija_core.name=F.L.E.I.J.A. Uranium 235 Charge +item.fleija_igniter.name=Pulse Igniter +item.fleija_kit.name=F.L.E.I.J.A. Kit +item.fleija_propellant.name=Schrabidium Propellant +item.fluid_barrel_empty.name=Empty Fluid Barrel +item.fluid_barrel_full.name=Fluid Barrel: +item.fluid_barrel_infinite.name=Infinite Fluid Barrel +item.fluid_duct.name=Fluid Duct: +item.fluid_identifier.name=Fluid Identifier +item.fluid_identifier.info=Universal fluid identifier for: +item.fluid_identifier.usage0=Right click fluid ducts to designate them for that fluid. +item.fluid_identifier.usage1=Shift right click fluid ducts to designate adjacent ducts +item.fluid_identifier.usage2=up to a maximum range of 64 ducts. +item.fluid_identifier_multi.name=Multi Fluid Identifier +item.fluid_identifier_multi.info=Universal fluid identifier for: +item.fluid_identifier_multi.info2=Secondary type: +item.fluid_tank_empty.name=Empty Universal Fluid Tank +item.fluid_tank_full.name=Universal Fluid Tank: +item.fluid_tank_lead_empty.name=Empty Hazardous Material Tank +item.fluid_tank_lead_full.name=Hazardous Material Tank: +item.fluorite.name=Fluorite +item.flywheel_beryllium.name=Beryllium Flywheel +item.fmn.name=Flunitrazepam Tablet +item.fmn.desc=Removes all DRX above 2,000mDRX +item.folly_bullet.name=12.8cm Starmetal High-Energy Shell +item.folly_bullet_du.name=12.8cm DU-Shell +item.folly_bullet_nuclear.name=12.8cm Nuclear Shell +item.folly_shell.name=Silver Bullet Casing +item.fooditem.name=food item +item.fragment_actinium.name=Actinium-227 Fragment +item.fragment_boron.name=Boron Fragment +item.fragment_cerium.name=Cerium Fragment +item.fragment_cobalt.name=Cobalt Fragment +item.fragment_coltan.name=Coltan +item.fragment_lanthanium.name=Lanthanium Fragment +item.fragment_meteorite.name=Meteorite Fragment +item.fragment_neodymium.name=Neodymium Fragment +item.fragment_niobium.name=Niobium Fragment +item.fuel_tank_large.name=Large Fuel Tank +item.fuel_tank_medium.name=Medium Fuel Tank +item.fuel_tank_small.name=Small Fuel Tank +item.fuse.name=Fuse +item.fusion_core.name=Fusion Core +item.fusion_core_infinite.name=Infinite Fusion Core +item.fusion_shield_chlorophyte.name=Chlorophyte-Metallized Fusion Reactor Blanket +item.fusion_shield_desh.name=Desh Fusion Reactor Blanket +item.fusion_shield_tungsten.name=Tungsten Fusion Reactor Blanket +item.fusion_shield_vaporwave.name=Vaporwave Fusion Reactor Blanket +item.gadget_core.name=Large Plutonium Core +item.gadget_explosive.name=First Generation Explosive Lens +item.gadget_kit.name=The Gadget Kit +item.gadget_wireing.name=Wiring +item.gas_biogas.name=Biogas Tank +item.gas_empty.name=Empty Gas Tank +item.gas_full.name=Gas Tank: +item.gas_lpg.name=LPG Tank +item.gas_mask.name=Gas Mask +item.gas_mask_filter.name=Gas Mask Filter +item.gas_mask_filter_combo.name=Gas Mask Combo Filter +item.gas_mask_filter_mono.name=Catalytic Mask Filter +item.gas_mask_filter_piss.name=Advanced Makeshift Gas Mask Filter +item.gas_mask_filter_rag.name=Makeshift Gas Mask Filter +item.gas_mask_m65.name=M65-Z Gas Mask +item.gas_mask_mono.name=Half Mask +item.gas_mask_olde.name=Leather Gas Mask +item.gas_petroleum.name=Petroleum Gas Tank +item.gas_tester.name=Gas Sensor +item.gear_large.name=Large Gear +item.gear_large_steel.name=Large Steel Gear +item.geiger_counter.name=Handheld Geiger Counter +item.gem_alexandrite.name=Alexandrite +item.gem_tantalium.name=Tantalium Polycrystal +item.gem_tantalium.desc='Tantalum' +item.gem_tantalium.desc.P11=AKA Tantalum. +item.gem_volcanic.name=Volcanic Gem +item.generator_front.name=Generator Front +item.generator_steel.name=Generator Body +item.glitch.name=Glitch +item.glowing_stew.name=Glowing Mushroom Stew +item.glyphid_meat.name=Glyphid Meat +item.glyphid_meat_grilled.name=Grilled Glyphid Meat +item.goggles.name=Protection Goggles +item.grenade_aschrab.name=Tossable Antischrabidium Cell +item.grenade_black_hole.name=Black Hole Grenade +item.grenade_breach.name=Breaching Grenade +item.grenade_burst.name=Digger Grenade +item.grenate_cats.name=Grenade of Cats +item.grenade_cloud.name=Jar of Cloud +item.grenade_cluster.name=Cluster Bomb +item.grenade_electric.name=Lightning Bomb +item.grenade_fire.name=Flame Frag Grenade +item.grenade_flare.name=Signal Flare +item.grenade_frag.name=Frag Grenade +item.grenade_gas.name=Gas Grenade +item.grenade_gascan.name=Tossable Gas Can +item.grenade_generic.name=Grenade +item.grenade_if_bouncy.name=IF - Bouncy Grenade +item.grenade_if_brimstone.name=IF - Tossable Brimstone Mine +item.grenade_if_concussion.name=IF - Concussion Grenade +item.grenade_if_generic.name=IF - Grenade +item.grenade_if_he.name=IF - HE Grenade +item.grenade_if_hopwire.name=IF - Vortex Hopwire +item.grenade_if_impact.name=IF - Impact Grenade +item.grenade_if_incendiary.name=IF - Incendiary Grenade +item.grenade_if_mystery.name=IF - M.-Grenade +item.grenade_if_null.name=IF - Null Grenade +item.grenade_if_spark.name=IF - S.-Grenade +item.grenade_if_sticky.name=IF - Sticky Grenade +item.grenade_if_toxic.name=IF - Toxic Grenade +item.grenade_kit.name=Grenade Kit +item.grenade_kyiv.name=The Kyiv Special +item.grenade_lemon.name=Combustible Lemon +item.grenade_mirv.name=MIRV Grenade +item.grenade_mk2.name=Mk 2 Grenade "Ambassador Pineapple" +item.grenade_nuclear.name=Nuka Grenade +item.grenade_nuke.name=Mark VI Drill Grenade +item.grenade_pink_cloud.name=Jar of Pink Cloud +item.grenade_plasma.name=Plasma Grenade +item.grenade_poison.name=Poison Grenade +item.grenade_pulse.name=Impulse Grenade +item.grenade_schrabidium.name=Schrabidium Grenade +item.grenade_shrapnel.name=Shrapnel Grenade +item.grenade_smart.name=Smart Grenade +item.grenade_strong.name=Enhanced Grenade +item.grenade_tau.name=Tau Grenade +item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade +item.gun_ar15.name=Josh +item.gun_avenger.name=CZ57 Avenger Minigun +item.gun_b92.name=§9B92 Energy Pistol§r +item.gun_b92_ammo.name=§9B92 Energy Cell§r +item.gun_b93.name=§cB93 Energy Mod§r +item.gun_benelli.name=Benelli Autoshotgun (Drum Mod) +item.gun_bf.name=BEL +item.gun_bf_ammo.name=Balefire Shell +item.gun_bio_revolver.name=Atlas +item.gun_bolt_action.name=Dream Bolt-Action Rifle (Original) +item.gun_bolt_action_ammo.name=12x74 Slug (LEGACY) +item.gun_bolt_action_green.name=Dream Bolt-Action Rifle (Green) +item.gun_bolt_action_saturnite.name=Saturnite Rifle +item.gun_bolter.name=Bolter +item.gun_bolter_digamma.name=Digamma Gun +item.gun_calamity.name=Buzzsaw +item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) +item.gun_calamity_dual.name=Saddle Gun +item.gun_chemthrower.name=Chemthrower +item.gun_coilgun.name=Coilgun +item.gun_cryolator.name=The Cryolator +item.gun_cryolator_ammo.name=Cryo Cell +item.gun_dampfmaschine.name=Totally Not a Joke Weapon +item.gun_darter.name=Dart Gun +item.gun_deagle.name=Big Iron +item.gun_defabricator.name=Defabricator +item.gun_defabricator_ammo.name=Defabricator Energy Cell +item.gun_detonator.name=Laser Detonator +item.gun_emp.name=EMP Gun +item.gun_emp_ammo.name=Energy Cell +item.gun_euthanasia.name=Euthanasia +item.gun_euthanasia_ammo.name=Syringe +item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" +item.gun_fatman_ammo.name=Mini Nuke (LEGACY) +item.gun_fireext.name=Fire Extinguisher +item.gun_flamer.name=Mister Topaz +item.gun_flechette.name=Flechette Rifle +item.gun_folly.name=Prototype Digamma "Folly" +item.gun_glass_cannon.name=The Glass Cannon +item.gun_hk69.name=Grenade Pistol +item.gun_hp.name=HPP Lazerjet +item.gun_hp_ammo.name=Ink Cartridge +item.gun_immolator.name=The Immolator +item.gun_immolator_ammo.name=Immolator Fuel +item.gun_jack.name=Jackhammer +item.gun_jack_ammo.name=Quadruple Shotgun Shell +item.gun_karl.name=Karl +item.gun_kit_1.name=Gun Oil +item.gun_kit_2.name=Gun Repair Kit +item.gun_ks23.name=Samuel the Big Shotgun +item.gun_lacunae.name=CZ33 Abaddon +item.gun_lacunae_ammo.name=5mm Round (LEGACY) +item.gun_lever_action.name=Mare's Leg (Original) +item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) +item.gun_lever_action_dark.name=Mare's Leg (Dark) +item.gun_lever_action_sonata.name=Flipped Mare's Leg +item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r +item.gun_lunatic_marksman.name=Lunatic Sniper Rifle +item.gun_m2.name=Ma Deuce +item.gun_minigun.name=CZ53 Personal Minigun +item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" +item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY) +item.gun_moist_nugget.name=Mosin-Nagant +item.gun_mp.name=Pacifist's Machine Gun +item.gun_mp40.name=Submachine Gun +item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) +item.gun_pm_ammo.name=Small Propellantless Machine Gun Round +item.gun_mymy.name=Nietes +item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle +item.gun_osipr_ammo.name=Dark Energy Pulse Plug +item.gun_osipr_ammo2.name=Combine Ball +item.gun_panzerschreck.name=Panzerschreck +item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" +item.gun_quadro.name=Quattro Formaggi +item.gun_remington.name=バむデン ブラスト [BIDEN BLAST] +item.gun_revolver.name=Enhanced Revolver +item.gun_revolver_ammo.name=Lead Bullet +item.gun_revolver_blackjack.name=Blackjack Five-Shooter +item.gun_revolver_cursed.name=Cursed Revolver +item.gun_revolver_cursed_ammo.name=Steel Bullet +item.gun_revolver_gold.name=Golden Revolver +item.gun_revolver_gold_ammo.name=Golden Bullet +item.gun_revolver_inverted.name=Flipped Revolver +item.gun_revolver_iron.name=Simple Revolver +item.gun_revolver_iron_ammo.name=Bullet +item.gun_revolver_lead.name=Nuka Revolver +item.gun_revolver_lead_ammo.name=Glass Covered Nuclear Bullet +item.gun_revolver_nightmare.name=Nightmare Revolver (Original) +item.gun_revolver_nightmare2.name=Nightmare Revolver (Dark) +item.gun_revolver_nightmare2_ammo.name=Laser Buckshot +item.gun_revolver_nightmare_ammo.name=Nightmare Bullet +item.gun_revolver_nopip.name=Novac +item.gun_revolver_nopip_ammo.name=.44 Magnum Bullet (LEGACY) +item.gun_revolver_pip.name=Lil' Pipsqueak +item.gun_revolver_pip_ammo.name=Tainted Bullet (LEGACY) +item.gun_revolver_red.name=Red Key Revolver +item.gun_revolver_saturnite.name=Saturnite Shooter +item.gun_revolver_schrabidium.name=Schrabidium Revolver +item.gun_revolver_schrabidium_ammo.name=Schrabidium Bullet +item.gun_revolver_silver.name=Lent Gun +item.gun_rpg.name=Carl Gustav Recoilless Rifle +item.gun_rpg_ammo.name=Rocket (LEGACY) +item.gun_sauer.name=Stan Sauer's Shotgun +item.gun_skystinger.name=The One Sky Stinger +item.gun_spark.name=Spark Plug +item.gun_spark_ammo.name=Electromagnetic Cartridge +item.gun_spas12.name=SPAS-12 Shotgun +item.gun_stinger.name=FIM-92 Stinger +item.gun_stinger_ammo.name=Stinger Rocket (LEGACY) +item.gun_super_shotgun.name=Super Shotgun +item.gun_super_shotgun.desc=It's super broken! +item.gun_supershotgun.name=Super Shotgun +item.gun_thompson.name=Thompson Submachine Gun +item.gun_uac_pistol.name=UAC .45 Pistol +item.gun_uboinik.name=Uboinik +item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) +item.gun_uzi.name=IMI Uzi +item.gun_uzi_ammo.name=.22 LR Round (LEGACY) +item.gun_uzi_saturnite.name=Saturnite Uzi +item.gun_uzi_saturnite_silencer.name=Saturnite Uzi with Silencer +item.gun_uzi_silencer.name=IMI Uzi with Silencer +item.gun_xvl1456.name=XVL1456 Tau Cannon Prototype +item.gun_xvl1456_ammo.name=Depleted Uranium-235 Box +item.gun_zomg.name=ZOMG Cannon +item.hand_drill.name=Hand Drill +item.hand_drill_desh.name=Desh Hand Drill +item.hazmat_boots.name=Hazmat Boots +item.hazmat_boots_grey.name=High-Performance Hazmat Boots +item.hazmat_boots_red.name=Advanced Hazmat Boots +item.hazmat_cloth.name=Hazmat Cloth +item.hazmat_cloth_grey.name=Lead-Reinforced Hazmat Cloth +item.hazmat_cloth_red.name=Advanced Hazmat Cloth +item.hazmat_grey_kit.name=High-Performance Hazmat Kit +item.hazmat_helmet.name=Hazmat Helmet +item.hazmat_helmet_grey.name=High-Performance Hazmat Helmet +item.hazmat_helmet_red.name=Advanced Hazmat Helmet +item.hazmat_kit.name=Hazmat Kit +item.hazmat_legs.name=Hazmat Leggings +item.hazmat_legs_grey.name=High-Performance Hazmat Leggings +item.hazmat_legs_red.name=Advanced Hazmat Leggings +item.hazmat_paa_boots.name=PaA Battle Hazmat Suit Boots +item.hazmat_paa_helmet.name=PaA Battle Hazmat Suit Helmet +item.hazmat_paa_legs.name=PaA Battle Hazmat Suit Leggings +item.hazmat_paa_plate.name=PaA Battle Hazmat Suit Chestplate +item.hazmat_plate.name=Hazmat Chestplate +item.hazmat_plate_grey.name=High-Performance Hazmat Chestplate +item.hazmat_plate_red.name=Advanced Hazmat Chestplate +item.hazmat_red_kit.name=Advanced Hazmat Kit +item.heart_booster.name=Heart Booster +item.heart_container.name=Heart Container +item.heart_fab.name=Fab Heart +item.heart_piece.name=Heart Piece +item.hev_battery.name=Suit Battery +item.hev_boots.name=HEV Mark IV Boots +item.hev_plate.name=HEV Mark IV Chestplate +item.hev_helmet.name=HEV Mark IV Helmet +item.hev_legs.name=HEV Mark IV Leggings +item.holotape_damaged.name=Damaged Holotape +item.holotape_image.name=Holotape +item.horseshoe_magnet.name=Horseshoe Magnet +item.hull_big_aluminium.name=Big Aluminium Shell +item.hull_big_steel.name=Big Steel Shell +item.hull_big_titanium.name=Big Titanium Shell +item.hull_small_aluminium.name=Small Aluminium Shell +item.hull_small_aluminium.desc=Can be inserted into drilled graphite +item.hull_small_steel.name=Small Steel Shell +item.igniter.name=Igniter +item.igniter.desc=(Used by right-clicking the Prototype)$It's a green metal handle with a$bright red button and a small lid.$At the bottom, the initials N.E. are$engraved. Whoever N.E. was, he had$a great taste in shades of green. +item.industrial_magnet.name=Industrial Magnet +item.inf_antimatter.name=Infinite Antimatter Tank +item.inf_antischrabidium.name=Infinite Antischrabidium Tank +item.inf_coolant.name=Infinite Coolant Tank +item.inf_deuterium.name=Infinite Deuterium Tank +item.inf_diesel.name=Infinite Diesel Tank +item.inf_sulfur.name=Infinite Sulfur Tank +item.inf_tritium.name=Infinite Tritium Tank +item.inf_water.name=Infinite Water Tank +item.inf_water_mk2.name=Heavy Infinite Water Tank +item.ingot_actinium.name=Actinium-227 Ingot +item.ingot_advanced_alloy.name=Advanced Alloy Ingot +item.ingot_aluminium.name=Aluminium Ingot +item.ingot_am_mix.name=Reactor Grade Americium Ingot +item.ingot_am241.name=Americium-241 Ingot +item.ingot_am242.name=Americium-242 Ingot +item.ingot_americium_fuel.name=Ingot of Americium Fuel +item.ingot_arsenic.name=Arsenic Ingot +item.ingot_asbestos.name=Asbestos Sheet +item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r +item.ingot_au198.name=Gold-198 Ingot +item.ingot_australium.name=Australium Ingot +item.ingot_bakelite.name=Bakelite Bar +item.ingot_beryllium.name=Beryllium Ingot +item.ingot_bismuth.name=Bismuth Ingot +item.ingot_boron.name=Boron Ingot +item.ingot_c4.name=Bar of Composition C-4 +item.ingot_cadmium.name=Cadmium Ingot +item.ingot_calcium.name=Calcium Ingot +item.ingot_cdalloy.name=Cadmium Steel Ingot +item.ingot_chainsteel.name=Heavy Chainsteel +item.ingot_co60.name=Cobalt-60 Ingot +item.ingot_cobalt.name=Cobalt Ingot +item.ingot_combine_steel.name=CMB Steel Ingot +item.ingot_combine_steel.desc=*insert Civil Protection reference here* +item.ingot_copper.name=Industrial Grade Copper +item.ingot_daffergon.name=Daffergon Ingot +item.ingot_desh.name=Desh Ingot +item.ingot_dineutronium.name=Dineutronium Ingot +item.ingot_dura_steel.name=High-Speed Steel Ingot +item.ingot_electronium.name=Electronium Ingot +item.ingot_euphemium.name=Euphemium Ingot +item.ingot_euphemium.desc=A very special and yet strange element. +item.ingot_ferrouranium.name=Ferrouranium Ingot +item.ingot_fiberglass.name=Fiberglass Bar +item.ingot_fiberglass.desc=High in fiber, high in glass. Everything the body needs. +item.ingot_firebrick.name=Firebrick +item.ingot_gh336.name=Ghiorsium-336 Ingot +item.ingot_gh336.desc=Seaborgium's colleague. +item.ingot_graphite.name=Graphite Ingot +item.ingot_hes.name=Highly Enriched Schrabidium Fuel Ingot +item.ingot_lanthanium.name=Semi-Stable Lanthanium Ingot +item.ingot_lanthanium.desc='Lanthanum' +item.ingot_lanthanium.desc.P11=Actually Lanthanum, but whatever. +item.ingot_lead.name=Lead Ingot +item.ingot_les.name=Low Enriched Schrabidium Fuel Ingot +item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot +item.ingot_meteorite.name=Meteorite Ingot +item.ingot_meteorite_forged.name=Forged Meteorite Ingot +item.ingot_mox_fuel.name=Ingot of MOX Fuel +item.ingot_mud.name=Solid Mud Brick +item.ingot_neptunium.name=Neptunium Ingot +item.ingot_neptunium.desc=That one's my favourite! +item.ingot_neptunium.desc.P11=Woo, scary! +item.ingot_neptunium_fuel.name=Neptunium Fuel Ingot +item.ingot_niobium.name=Niobium Ingot +item.ingot_osmiridium.name=Osmiridium Ingot +item.ingot_pb209.name=Lead-209 Ingot +item.ingot_pc.name=Hard Plastic Bar +item.ingot_pet.name=Aluminium-Metallized PET Bar +item.ingot_phosphorus.name=Bar of White Phosphorus +item.ingot_plutonium.name=Plutonium Ingot +item.ingot_plutonium_fuel.name=Ingot of Plutonium Fuel +item.ingot_polonium.name=Polonium-210 Ingot +item.ingot_polymer.name=Polymer Bar +item.ingot_pu_mix.name=Reactor Grade Plutonium Ingot +item.ingot_pu238.name=Plutonium-238 Ingot +item.ingot_pu239.name=Plutonium-239 Ingot +item.ingot_pu240.name=Plutonium-240 Ingot +item.ingot_pu241.name=Plutonium-241 Ingot +item.ingot_pvc.name=PVC Bar +item.ingot_ra226.name=Radium-226 Ingot +item.ingot_red_copper.name=Minecraft Grade Copper +item.ingot_reiium.name=Reiium Ingot +item.ingot_rubber.name=Rubber Bar +item.ingot_saturnite.name=Saturnite Ingot +item.ingot_schrabidate.name=Ferric Schrabidate Ingot +item.ingot_schrabidium.name=Schrabidium Ingot +item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel +item.ingot_schraranium.name=Schraranium Ingot +item.ingot_schraranium.desc=Made from uranium in a schrabidium transmutator +item.ingot_semtex.name=Bar of Semtex +item.ingot_smore.name=S'more Ingot +item.ingot_solinium.name=Solinium Ingot +item.ingot_sr90.name=Strontium-90 Ingot +item.ingot_starmetal.name=§9Starmetal Ingot§r +item.ingot_steel.name=Steel Ingot +item.ingot_steel_dusted.name=Dusted Steel Ingot +item.ingot_tantalium.name=Tantalium Ingot +item.ingot_tantalium.desc='Tantalum' +item.ingot_tantalium.desc.P11=AKA Tantalum. +item.ingot_tcalloy.name=Technetium Steel Ingot +item.ingot_technetium.name=Technetium-99 Ingot +item.ingot_th232.name=Thorium-232 Ingot +item.ingot_thorium_fuel.name=Ingot of Thorium Fuel +item.ingot_titanium.name=Titanium Ingot +item.ingot_tungsten.name=Tungsten Ingot +item.ingot_u233.name=Uranium-233 Ingot +item.ingot_u235.name=Uranium-235 Ingot +item.ingot_u238.name=Uranium-238 Ingot +item.ingot_u238m2.name=Metastable Uranium-238M2 Ingot +item.ingot_unobtainium.name=Unobtainium Ingot +item.ingot_uranium.name=Uranium Ingot +item.ingot_uranium_fuel.name=Ingot of Uranium Fuel +item.ingot_verticium.name=Verticium Ingot +item.ingot_weidanium.name=Weidanium Ingot +item.ingot_zirconium.name=Zirconium Cube +item.injector_5htp.name=5-HTP Autoinjector +item.injector_knife.name=8 Inch Blade Autoinjector +item.ink.name=林 Ink +item.insert_doxium.name=Astolfium-Doped Doxium Insert +item.insert_du.name=DU Insert +item.insert_era.name=Explosive Reactive Armor Insert +item.insert_esapi.name=ESAPI Insert +item.insert_ghiorsium.name=Ghiorsium Insert +item.insert_kevlar.name=Kevlar Insert +item.insert_sapi.name=SAPI Insert +item.insert_polonium.name=Polonium Insert +item.insert_steel.name=Heavy Steel Insert +item.insert_xsapi.name=XSAPI Insert +item.insert_yharonite.name=Yharonite Insert +item.iv_blood.name=Blood Bag +item.iv_empty.name=IV Bag +item.iv_xp.name=Experience Bag +item.iv_xp_empty.name=Empty Experience Bag +item.jackt.name=Damn Stylish Ballistic Jacket +item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift +item.jetpack_boost.name=Boostpack +item.jetpack_break.name=Builder's Jetpack +item.jetpack_fly.name=Jetpack +item.jetpack_tank.name=Jetpack Reserve Fuel Tank +item.jetpack_vector.name=Vectored Jetpack +item.journal_bj.name=Whiskey Drenched Notebook +item.journal_pip.name=Survivalist's Journal +item.journal_silver.name=Contractor's Notes +item.key.name=Key +item.key_fake.name=Counterfeit Key +item.key_kit.name=Key Imitation Kit +item.key_red.name=Red Key +item.key_red.desc=Explore the other side. +item.key_red.desc.P11=§4e§r +item.kit_toolbox.name=Toolbox +item.kit_toolbox_empty.name=Empty Toolbox +item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix +item.laser_crystal_bismuth.name=BiSmUTh Laser Crystal +item.laser_crystal_cmb.desc=Antischrabidium Suspended in a CMB-Schrabidate Alloy Lattice +item.laser_crystal_cmb.name=CMB-Schrabidate Antimatter Laser Crystal +item.laser_crystal_co2.desc=Carbon Dioxide encased in Crystalline Desh +item.laser_crystal_co2.name=CO2-Desh Laser Crystal +item.laser_crystal_digamma.name=Digamma Laser Crystal +item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal +item.laser_crystal_dnt.name=Spark Laser Crystal +item.lead_gavel.name=Leaden Gavel +item.lemon.name="Lemon" +item.letter.name=Express Mail +item.levitation_unit.name=Gravity Manipulator +item.lignite.name=Lignite +item.limiter.name=Generator Limiter +item.linker.name=Telelinker +item.liquidator_boots.name=Liquidator Suit Boots +item.liquidator_helmet.name=Liquidator Suit Helmet +item.liquidator_legs.name=Liquidator Suit Leggins +item.liquidator_plate.name=Liquidator Suit Chestplate +item.lithium.name=Lithium Cube +item.lodestone.name=Lodestone +item.loop_stew.name=IT Breakfast +item.loops.name=Lööps +item.loot_10.name=Size 10 Missile Loot Crate +item.loot_15.name=Size 15 Missile Loot Crate +item.loot_misc.name=General Missile Loot Crate +item.magnet_circular.name=Flat Magnet +item.magnet_dee.name=Dee Magnets +item.magnetron.name=Magnetron +item.man_core.name=Plutonium Core +item.man_explosive.name=Explosive Lens +item.man_igniter.name=Bomb Firing Unit +item.man_kit.name=Fat Man Kit +item.marshmallow.name=Marshmallow on a Stick +item.mask_of_infamy.name=Mask of Infamy +item.mask_piss.name=Trench Mask +item.mask_rag.name=Crude Protective Mask +item.matchstick.name=Matchstick +item.mech_key.name=Large Silver Key +item.mech_key.desc=It pulses with power. +item.mechanism_launcher_1.name=Launcher Mechanism +item.mechanism_launcher_2.name=Advanced Launcher Mechanism +item.mechanism_revolver_1.name=Revolver Mechanism +item.mechanism_revolver_2.name=Advanced Revolver Mechanism +item.mechanism_rifle_1.name=Rifle Mechanism +item.mechanism_rifle_2.name=Advanced Rifle Mechanism +item.mechanism_special.name=High-Tech Weapon Mechanism +item.med_bag.name=Doctor's Bag +item.med_ipecac.name=Ipecac Syrup +item.med_ptsd.name=PTSD Medication +item.med_schiziphrenia.name=Schizophrenia Medication +item.medal_liquidator.name=Liquidator Medal +item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator +item.memespoon.name=§eMarket Gardener +item.memory.name=item.null.name +item.mese_gavel.name=Mese Gavel +item.mese_pickaxe.name=Mese Pickaxe +item.meteor_charm.name=Meteor Charm +item.meteor_remote.name=Meteorite Remote +item.meteorite_sword.name=Meteorite Sword +item.meteorite_sword_seared.name=Meteorite Sword (Seared) +item.meteorite_sword_reforged.name=Meteorite Sword (Reforged) +item.meteorite_sword_hardened.name=Meteorite Sword (Hardened) +item.meteorite_sword_alloyed.name=Meteorite Sword (Alloyed) +item.meteorite_sword_machined.name=Meteorite Sword (Machined) +item.meteorite_sword_treated.name=Meteorite Sword (Treated) +item.meteorite_sword_etched.name=Meteorite Sword (Etched) +item.meteorite_sword_bred.name=Meteorite Sword (Bred) +item.meteorite_sword_irradiated.name=Meteorite Sword (Irradiated) +item.meteorite_sword_fused.name=Meteorite Sword (Fused) +item.meteorite_sword_baleful.name=Meteorite Sword (Baleful) +item.mike_cooling_unit.name=Deuterium Cooling Unit +item.mike_core.name=Uranium Coated Deuterium Tank +item.mike_deut.name=Deuterium Tank +item.mike_kit.name=Ivy Mike Kit +item.mirror_tool.name=Mirror Adjustment Tool +item.mirror_tool.linked=Alignment position set! +item.mirror_tool.desc=Right-click boiler to memorize the position.$Click on mirrors to turn them towards the boiler. +item.missile_anti_ballistic.name=Anti Ballistic Missile +item.missile_assembly.name=Small Missile Assembly +item.missile_bhole.name=Black Hole Missile +item.missile_burst.name=Spare Missile +item.missile_buster.name=Bunker Buster +item.missile_buster_strong.name=Enhanced Bunker Buster +item.missile_carrier.name=HTR-01 Carrier Rocket +item.missile_cluster.name=Cluster Missile +item.missile_cluster_strong.name=Strong Cluster Missile +item.missile_custom.name=Custom Missile +item.missile_doomsday.name=Doomsday Missile +item.missile_drill.name=The Concrete Cracker +item.missile_emp.name=EMP Missile +item.missile_emp_strong.name=Strong EMP Missile +item.missile_endo.name=Endothermic Missile +item.missile_exo.name=Exothermic Missile +item.missile_generic.name=High Explosive Missile +item.missile_incendiary.name=Incendiary Missile +item.missile_incendiary_strong.name=Strong Incendiary Missile +item.missile_inferno.name=Inferno Missile G.R.N. Mk.II +item.missile_kit.name=Missile Kit +item.missile_micro.name=Micro-Nuclear Missile +item.missile_nuclear.name=Nuclear Missile +item.missile_nuclear_cluster.name=Thermonuclear Missile +item.missile_rain.name=Bomblet Rain +item.missile_schrabidium.name=Schrabidium Missile +item.missile_shuttle.name=Reliant Robin Space Shuttle +item.missile_skin_camo.name=Missile Skin: Camo +item.missile_skin_color.desc=I can't find my missile anymore! +item.missile_skin_desert.name=Missile Skin: Desert Camo +item.missile_skin_desert.desc=Looks like sand, tastes like metal. +item.missile_skin_flames.name=Missile Skin: Sick Flames +item.missile_skin_flames.desc=Radical! +item.missile_skin_manly_pink.name=Missile Skin: Manly Pink +item.missile_skin_manly_pink.desc=Pink, the manliest color of them all. +item.missile_skin_metal.name=Missile Skin: Metal +item.missile_skin_metal.desc=Metal sheets and metal bolts, reinforced with metal. +item.missile_skin_orange_insulation.name=Missile Skin: Orange Insulation +item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not attempt to drink contents. +item.missile_skin_sleek.name=Missile Skin: IF-R&D +item.missile_skin_sleek.desc=Chevrons are cool! +item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory +item.missile_skin_soviet_glory.desc=услуга перевПЎа МеЎПступМа +item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank +item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. +item.missile_soyuz.name=Soyuz-FG +item.missile_soyuz_lander.name=Orbital Module +item.missile_soyuz_lander.desc=Doubles as a crappy lander! +item.missile_strong.name=Strong HE Missile +item.missile_taint.name=Taint-Tipped Missile +item.missile_volcano.name=Tectonic Missile +item.missile_volcano.desc=Using the power of nuclear explosives, we can summon a volcano! +item.mold_base.name=Blank Foundry Mold +item.mold.name=Foundry Mold +item.morning_glory.name=Morning Glory +item.motor.name=Motor +item.motor_bismuth.name=Bismuth Motor +item.motor_desh.name=Desh Motor +item.mp_c_1.name=Tier 1 Missile Targeting Circuit +item.mp_c_2.name=Tier 2 Missile Targeting Circuit +item.mp_c_3.name=Tier 3 Missile Targeting Circuit +item.mp_c_4.name=Tier 4 Missile Targeting Circuit +item.mp_c_5.name=Tier 5 Missile Targeting Circuit +item.mp_fuselage_10_15_balefire.name=Size 10/15 BF Fuselage +item.mp_fuselage_10_15_hydrogen.name=Size 10/15 Hydrogen Fuselage +item.mp_fuselage_10_15_kerosene.name=Size 10/15 Kerosene Fuselage +item.mp_fuselage_10_15_solid.name=Size 10/15 Solid Fuel Fuselage +item.mp_fuselage_10_kerosene.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_camo.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_desert.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_flames.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_insulation.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_metal.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_sky.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_sleek.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_taint.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_long_kerosene.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_camo.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_dash.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_desert.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_flames.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_insulation.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_metal.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_sky.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_sleek.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_taint.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_vap.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_solid.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_bullet.name=Size 10 Long Solid Fuselage +item.mp_fuselage_10_long_solid_flames.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_insulation.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_silvermoonlight.name=Size 10 Long Solid Fuselage +item.mp_fuselage_10_long_solid_sleek.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_soviet_glory.name=Size 10 Long Solid Fuselage +item.mp_fuselage_10_solid.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_battery.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_cathedral.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_duracell.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_flames.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_insulation.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_moonlit.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_sleek.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_soviet_glory.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_xenon.name=Size 10 Xenon Fuselage +item.mp_fuselage_10_xenon_bhole.name=Size 10 Xenon Fuselage +item.mp_fuselage_15_20_kerosene.name=Size 15/20 Kerosene Fuselage +item.mp_fuselage_15_20_kerosene_magnusson.name=Size 15/20 Kerosene Fuselage +item.mp_fuselage_15_20_solid.name=Size 15/20 Solid Fuel Fuselage +item.mp_fuselage_15_balefire.name=Size 15 BF Fuselage +item.mp_fuselage_15_hydrogen.name=Size 15 Hydrogen Fuselage +item.mp_fuselage_15_hydrogen_cathedral.name=Size 15 Hydrogen Fuselage +item.mp_fuselage_15_kerosene.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_blackjack.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_camo.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_decorated.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_desert.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_insulation.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_lambda.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_metal.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_minuteman.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_pip.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_polite.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_sky.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_steampunk.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_taint.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_yuck.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_solid.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_desh.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_faust.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_insulation.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_mimi.name=Size 15 Solid Fuel Mimi-chan's Body +item.mp_fuselage_15_solid_panorama.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_roses.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_silvermoonlight.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_snowy.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_soviet_glory.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_soviet_stank.name=Size 15 Solid Fuel Fuselage +item.mp_stability_10_cruise.name=Size 10 Cruise Fins +item.mp_stability_10_flat.name=Size 10 Flat Fins +item.mp_stability_10_space.name=Size 10 Space Fins +item.mp_stability_15_flat.name=Size 15 Flat Fins +item.mp_stability_15_soyuz.name=Size 15 Pointy Fins +item.mp_stability_15_thin.name=Size 15 Thin Fins +item.mp_thruster_10_kerosene.name=Size 10 Liquid Fuel Thruster +item.mp_thruster_10_solid.name=Size 10 Solid Fuel Thruster +item.mp_thruster_10_xenon.name=Size 10 Ion Thruster +item.mp_thruster_15_balefire.name=Size 15 BF Thruster with Nuclear Preheater +item.mp_thruster_15_balefire_large.name=Size 15 BF Thruster with Nuclear Preheater (Heavy Duty Nozzle) +item.mp_thruster_15_balefire_large_rad.name=Size 15 BF Thruster with Nuclear Preheater (Heavy Duty Nozzle) +item.mp_thruster_15_balefire_short.name=Size 15 BF Thruster with Nuclear Preheater (Shortened) +item.mp_thruster_15_hydrogen.name=Size 15 Hydrogen Thruster +item.mp_thruster_15_hydrogen_dual.name=Size 15 Hydrogen Twin Thrusters +item.mp_thruster_15_kerosene.name=Size 15 Liquid Fuel Thruster +item.mp_thruster_15_kerosene_dual.name=Size 15 Liquid Fuel Twin Thrusters +item.mp_thruster_15_kerosene_triple.name=Size 15 Liquid Fuel Triple Thrusters +item.mp_thruster_15_solid.name=Size 15 Solid Fuel Thruster +item.mp_thruster_15_solid_hexdecuple.name=Size 15 Solid Fuel Hexdecuple Thrusters +item.mp_thruster_20_kerosene.name=Size 20 Liquid Fuel Thruster +item.mp_thruster_20_kerosene_dual.name=Size 20 Liquid Fuel Twin Thrusters +item.mp_thruster_20_kerosene_triple.name=Size 20 Liquid Fuel Triple Thrusters +item.mp_thruster_20_solid.name=Size 20 Solid Fuel Thruster +item.mp_thruster_20_solid_multi.name=Size 20 Solid Fuel 30-Fold Thrusters +item.mp_thruster_20_solid_multier.name=Size 20 Solid Fuel 47-Fold Thrusters +item.mp_warhead_10_buster.name=Size 10 Bunker Buster Warhead +item.mp_warhead_10_cloud.name=Size 10 Pink Cloud Warhead +item.mp_warhead_10_he.name=Size 10 HE Warhead +item.mp_warhead_10_incendiary.name=Size 10 Incendiary Warhead +item.mp_warhead_10_nuclear.name=Size 10 Micro Nuclear Warhead +item.mp_warhead_10_nuclear_large.name=Size 10 Nuclear Warhead +item.mp_warhead_10_taint.name=Size 10 Tainted Warhead +item.mp_warhead_15_balefire.name=Size 15 BF Warhead +item.mp_warhead_15_boxcar.name=Size 15 Boxcar? +item.mp_warhead_15_he.name=Size 15 HE Warhead +item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead +item.mp_warhead_15_n2.name=Size 15 N² Mine +item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead +item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head +item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead +item.mp_warhead_15_turbine.name=Size 15 Jet Engine +item.mucho_mango.name=AriZona Mucho Mango +item.multi_kit.name=Multi Purpose Bomb Kit +item.multitool_beam.name=Power Fist (Zapper) +item.multitool_decon.name=Power Fist (Decontaminator) +item.multitool_dig.name=Power Fist (Digging Claw) +item.multitool_ext.name=Power Fist (Ore Extractor) +item.multitool_hit.name=Power Fist (Fist) +item.multitool_joule.name=Power Fist (Giga Joule) +item.multitool_mega.name=Power Fist (Super Punch) +item.multitool_miner.name=Power Fist (Extracting Mining Laser) +item.multitool_silk.name=Power Fist (Silk Touch Claw) +item.multitool_sky.name=Power Fist (Crack the Sky) +item.mysteryshovel.name=Brittle Spade +item.n2_charge.name=Large Explosive Charge +item.neutrino_lens.name=Neutrino Lens +item.neutron_reflector.name=Neutron Reflector +item.night_vision.name=Night Vision Goggles +item.night_vision.description.item=Grants you night vision (requires full electric set) +item.night_vision.description.in_armor=%s (grants night vision) +item.niter.name=Niter +item.no9.name=Mining Helmet +item.nossy_hat.name=Fabulous Hat +item.nothing.name=Nothing +item.nuclear_waste.name=Nuclear Waste +item.nuclear_waste_pearl.name=Nuclear Waste Pearl +item.nuclear_waste_tiny.name=Tiny Pile of Nuclear Waste +item.nuclear_waste_long.name=Long-Lived Nuclear Waste +item.nuclear_waste_long_tiny.name=Tiny Pile of Long-Lived Nuclear Waste +item.nuclear_waste_long_depleted.name=Decayed Long-Lived Nuclear Waste +item.nuclear_waste_long_depleted_tiny.name=Tiny Pile of Decayed Long-Lived Nuclear Waste +item.nuclear_waste_short.name=Short-Lived Nuclear Waste +item.nuclear_waste_short_tiny.name=Tiny Pile of Short-Lived Nuclear Waste +item.nuclear_waste_short_depleted.name=Decayed Short-Lived Nuclear Waste +item.nuclear_waste_short_depleted_tiny.name=Tiny Pile of Decayed Short-Lived Nuclear Waste +item.nuclear_waste_vitrified.name=Vitrified Nuclear Waste +item.nuclear_waste_vitrified_tiny.name=Tiny Pile of Vitrified Nuclear Waste +item.nugget.name=Chicken Nugget +item.nugget_actinium.name=Actinium-227 Nugget +item.nugget_am_mix.name=Reactor Grade Americium Nugget +item.nugget_am241.name=Americium-241 Nugget +item.nugget_am242.name=Americium-242 Nugget +item.nugget_americium_fuel.name=Americium Fuel Nugget +item.nugget_arsenic.name=Arsenic Nugget +item.nugget_au198.name=Gold-198 Nugget +item.nugget_australium.name=Australium Nugget +item.nugget_australium_greater.name=Greater Australium Nugget +item.nugget_australium_lesser.name=Lesser Australium Nugget +item.nugget_beryllium.name=Beryllium Nugget +item.nugget_bismuth.name=Bismuth Nugget +item.nugget_co60.name=Cobalt-60 Nugget +item.nugget_cobalt.name=Cobalt Nugget +item.nugget_daffergon.name=Daffergon Nugget +item.nugget_desh.name=Desh Nugget +item.nugget_dineutronium.name=Dineutronium Nugget +item.nugget_euphemium.name=Euphemium Nugget +item.nugget_euphemium.desc=A small piece of a pink metal.$Its properties are still unknown,$DEAL WITH IT carefully. +item.nugget_gh336.name=Ghiorsium-336 Nugget +item.nugget_gh336.desc=Seaborgium's colleague. +item.nugget_hes.name=Highly Enriched Schrabidium Fuel Nugget +item.nugget_lead.name=Lead Nugget +item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget +item.nugget_mercury_tiny.name=Tiny Drop of Mercury +item.nugget_mercury.name=Drop of Mercury +item.nugget_mox_fuel.name=Nugget of MOX Fuel +item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r +item.nugget_neptunium.name=Neptunium Nugget +item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget +item.nugget_osmiridium.name=Osmiridium Nugget +item.nugget_pb209.name=Lead-209 Nugget +item.nugget_plutonium.name=Plutonium Nugget +item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel +item.nugget_polonium.name=Polonium-210 Nugget +item.nugget_pu_mix.name=Reactor Grade Plutonium Nugget +item.nugget_pu238.name=Plutonium-238 Nugget +item.nugget_pu239.name=Plutonium-239 Nugget +item.nugget_pu240.name=Plutonium-240 Nugget +item.nugget_pu241.name=Plutonium-241 Nugget +item.nugget_ra226.name=Radium-226 Nugget +item.nugget_reiium.name=Reiium Nugget +item.nugget_schrabidium.name=Schrabidium Nugget +item.nugget_schrabidium_fuel.name=Nugget of Schrabidium Fuel +item.nugget_solinium.name=Solinium Nugget +item.nugget_sr90.name=Strontium-90 Nugget +item.nugget_tantalium.name=Tantalium Nugget +item.nugget_tantalium.desc='Tantalum' +item.nugget_tantalium.desc.P11=AKA Tantalum. +item.nugget_technetium.name=Technetium-99 Nugget +item.nugget_th232.name=Thorium-232 Nugget +item.nugget_thorium_fuel.name=Nugget of Thorium Fuel +item.nugget_u233.name=Uranium-233 Nugget +item.nugget_u235.name=Uranium-235 Nugget +item.nugget_u238.name=Uranium-238 Nugget +item.nugget_unobtainium.name=Unobtainium Nugget +item.nugget_uranium.name=Uranium Nugget +item.nugget_uranium_fuel.name=Nugget of Uranium Fuel +item.nugget_verticium.name=Verticium Nugget +item.nugget_weidanium.name=Weidanium Nugget +item.nugget_zirconium.name=Zirconium Splinter +item.nuke_advanced_kit.name=Atomic Science Advanced Kit +item.nuke_commercially_kit.name=Atomic Science Kit for Commercial Uses +item.nuke_electric_kit.name=Electronic Engineer's Kit +item.nuke_starter_kit.name=Atomic Science Starter Kit +item.oil_canola.name=Raw Canola Oil +item.oil_detector.name=Oil Reservoir Detector +item.oil_detector.desc1=Right-click to scan for oil. +item.oil_detector.desc2=Detector will only find larger deposits. +item.oil_detector.bullseye=Oil deposit directly below! +item.oil_detector.detected=Oil detected nearby. +item.oil_detector.noOil=No oil detected. +item.oil_tar.coal.name=Coal Tar +item.oil_tar.crude.name=Oil Tar +item.oil_tar.crack.name=Crack Oil Tar +item.oil_tar.paraffin.name=Paraffin Wax +item.oil_tar.wax.name=Chlorinated Petroleum Wax +item.oil_tar.wood.name=Wood Tar +item.ore.asbestos=Asbestos +item.ore.borax=Borax +item.ore.chlorocalcite=Chlorocalcite +item.ore.copper=Copper +item.ore.gold=Gold +item.ore.iron=Iron +item.ore.niobium=Niobium +item.ore.titanium=Titanium +item.ore.tungsten=Tungsten +item.ore.thorium=Thorium +item.ore.uranium=Uranium +item.ore_bedrock.name=%s Bedrock Ore +item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment +item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment +item.ore_byproduct.b_calcium.name=Crystalline Calcium Fragment +item.ore_byproduct.b_copper.name=Crystalline Copper Fragment +item.ore_byproduct.b_iron.name=Crystalline Iron Fragment +item.ore_byproduct.b_lead.name=Crystalline Lead Fragment +item.ore_byproduct.b_lithium.name=Crystalline Lithium Fragment +item.ore_byproduct.b_polonium.name=Crystalline Polonium Fragment +item.ore_byproduct.b_radium.name=Crystalline Radium Fragment +item.ore_byproduct.b_silicon.name=Crystalline Silicon Fragment +item.ore_byproduct.b_sulfur.name=Crystalline Sulfur Fragment +item.ore_byproduct.b_technetium.name=Crystalline Technetium Fragment +item.ore_byproduct.b_titanium.name=Crystalline Titanium Fragment +item.ore_byproduct.b_uranium.name=Crystalline Uranium Fragment +item.ore_centrifuged.name=Centrifuged %s Ore +item.ore_cleaned.name=Cleaned %s Ore +item.ore_deepcleaned.name=Deep Cleaned %s Ore +item.ore_enriched.name=Enriched %s Ore +item.ore_nitrated.name=Nitrated %s Ore +item.ore_nitrocrystalline.name=Nitrocrystalline %s Ore +item.ore_purified.name=Purified %s Ore +item.ore_radcleaned.name=Radiation-Cleaned %s Ore +item.ore_seared.name=Seared %s Ore +item.ore_separated.name=Separated %s Ore +item.overfuse.name=Singularity Screwdriver +item.overfuse.desc=Say what? +item.oxy_mask.name=Oxygen Mask +item.paa_boots.name=PaA "good ol' shoes" +item.paa_legs.name=PaA Leg Reinforcements +item.paa_plate.name=PaA Chest Protection Plate +item.padlock.name=Padlock +item.padlock_reinforced.name=Reinforced Padlock +item.padlock_rusty.name=Rusty Padlock +item.padlock_unbreakable.name=Unbreakable Padlock +item.pads_rubber.name=Rubber Pads +item.pads_slime.name=Slime Pads +item.pads_static.name=Static Pads +item.pancake.name=Pancake made from Scrap Metal, Nails and Gem Dust +item.part_beryllium.name=Box of Beryllium Dust +item.part_carbon.name=Box of Carbon Dust +item.part_copper.name=Box of Copper Dust +item.part_generic.piston_electric.name=Electric Piston +item.part_generic.piston_hydraulic.name=Hydraulic Piston +item.part_generic.piston_pneumatic.name=Pneumatic Piston +item.part_lithium.name=Box of Lithium Dust +item.part_plutonium.name=Box of Plutonium Dust +item.particle_aelectron.name=Positron Capsule +item.particle_amat.name=Antimatter Capsule +item.particle_aproton.name=Antiproton Capsule +item.particle_aschrab.name=Antischrabidium Capsule +item.particle_copper.name=Copper Ion Capsule +item.particle_dark.name=Dark Matter Capsule +item.particle_digamma.name=§cThe Digamma Particle§r +item.particle_empty.name=Empty Particle Capsule +item.particle_higgs.name=Higgs Boson Capsule +item.particle_hydrogen.name=Hydrogen Ion Capsule +item.particle_lead.name=Lead Ion Capsule +item.particle_lutece.name=Lutece Quasiparticle +item.particle_muon.name=Muon Capsule +item.particle_sparkticle.name=Sparkticle Capsule +item.particle_strange.name=Strange Quark Capsule +item.particle_tachyon.name=Tachyon Capsule +item.parts_legendary.name=Legendary Parts +item.peas.name=Peas +item.pedestal_steel.name=Steel Pedestal +item.pellet_advanced.name=Advanced Watz Performance Improver +item.pellet_antimatter.name=Antimatter Cluster +item.pellet_beryllium.name=Beryllium Moderator Pellet +item.pellet_buckshot.name=Lead Pellets +item.pellet_canister.name=Canister Shot +item.pellet_charged.name=Ionized Particles +item.pellet_chlorophyte.name=Chlorophyte Rounds +item.pellet_claws.name=Sharp Metal Claws +item.pellet_cluster.name=Explosive Pellets +item.pellet_cluster.desc=Used in multi purpose bombs:$Adds some extra boom! +item.pellet_coal.name=Dense Coal Cluster +item.pellet_coolant.name=Coolant Cluster +item.pellet_flechette.name=Flechettes +item.pellet_gas.name=Poison Gas Cartridge +item.pellet_gas.desc=Used in multi purpose bombs:$*cough cough* Halp pls! +item.pellet_hes.name=HES Watz Pellet +item.pellet_lead.name=Lead Reflector Pellet +item.pellet_les.name=LES Watz Pellet +item.pellet_mercury.name=Mercury Rounds +item.pellet_mes.name=MES Watz Pellet +item.pellet_meteorite.name=Meteorite Rounds +item.pellet_neptunium.name=Neptunium Watz Pellet +item.pellet_rtg.name=Plutonium-238 RTG Pellet +item.pellet_rtg.desc=RTG fuel pellet for infinite energy! (almost) +item.pellet_rtg_actinium.name=Actinium-227 RTG Pellet +item.pellet_rtg_actinium.desc=A glow of blue light and beta rays. +item.pellet_rtg_americium.name=Americium-241 RTG Pellet +item.pellet_rtg_americium.desc=Rare and reliable, good old Americium! +item.pellet_rtg_berkelium.name=Berkelium RTG Pellet +item.pellet_rtg_berkelium.desc= +item.pellet_rtg_cobalt.name=Cobalt-60 RTG Pellet +item.pellet_rtg_cobalt.desc=Not the best as an RTG, but great for gamma radiation! +item.pellet_rtg_depleted.bismuth.name=Decayed Bismuth RTG Pellet +item.pellet_rtg_depleted.lead.name=Decayed Lead RTG Pellet +item.pellet_rtg_depleted.neptunium.name=Decayed Neptunium RTG Pellet +item.pellet_rtg_depleted.mercury.name=Decayed Mercury RTG Pellet +item.pellet_rtg_depleted.nickel.name=Decayed Nickel RTG Pellet +item.pellet_rtg_depleted.zirconium.name=Decayed Zirconium RTG Pellet +item.pellet_rtg_lead.name=Lead-209 RTG Pellet +item.pellet_rtg_lead.desc=Exposure will result in immediate death. +item.pellet_rtg_gold.name=Gold-198 RTG Pellet +item.pellet_rtg_gold.desc=Made from a rare, highly unstable gold isotope. +item.pellet_rtg_polonium.name=Polonium-210 RTG Pellet +item.pellet_rtg_polonium.desc=More powerful RTG pellet, made from finest polonium! +item.pellet_rtg_strontium.name=Strontium-90 RTG Pellet +item.pellet_rtg_strontium.desc=Known to the State of California... +item.pellet_rtg_radium.name=Radium-226 RTG Pellet +item.pellet_rtg_radium.desc=Great starter pellet, sourced from all-natural radium! +item.pellet_rtg_weak.name=Weak Uranium RTG Pellet +item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! +item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet +item.photo_panel.name=Photovoltaic Panel +item.pile_rod_boron.name=Chicago Pile Control Rod +item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle +item.pile_rod_detector.name=Chicago Pile Control & Detector Rod +item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux +item.pile_rod_lithium.name=Chicago Pile Lithium Cell +item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core +item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod +item.pile_rod_plutonium.desc=§d[Neutron Source] +item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod +item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. +item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source +item.pile_rod_source.desc=§d[Neutron Source] +item.pile_rod_uranium.name=Chicago Pile Uranium Rod +item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample +item.pill_iodine.name=Iodine Pill +item.pill_iodine.desc=Removes negative effects +item.pill_herbal.name=Herbal Paste +item.pill_herbal.desc=Effective treatment against lung disease and mild radiation poisoning$Comes with side effects +item.pill_red.name=Red Pill +item.pin.name=Bobby Pin +item.pin.desc=Standard success rate of picking a regular lock is ~10%%. +item.pipes_steel.name=Steel Pipes +item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. +item.piston_selenium.name=Combustion Engine Piston +item.piston_set_desh.name=Desh Piston Set +item.piston_set_dura.name=High-Speed Steel Piston Set +item.piston_set_starmetal.name=Starmetal Piston Set +item.piston_set_steel.name=Steel Piston Set +item.plan_c.name=Plan C +item.plan_c.desc=Deadly +item.plant_item.mustardwillow.name=Mustard Willow Leaf +item.plant_item.rope.name=Rope +item.plant_item.tobacco.name=Tobacco +item.plate_advanced_alloy.name=Advanced Alloy Plate +item.plate_aluminium.name=Aluminium Plate +item.plate_armor_ajr.name=Iron-Shod Armor Plating +item.plate_armor_dnt.name=DNT Armor Plating +item.plate_armor_fau.name=Fau Armor Plating +item.plate_armor_hev.name=Reactive Armor Plating +item.plate_armor_lunar.name=Lunar Plating +item.plate_armor_titanium.name=Titanium Armor Plate +item.plate_bismuth.name=Bismuth Compound Plate +item.plate_bismuth.desc=Guys, It's Bismuth's alchemical symbol, I swear. +item.plate_cast.name=Cast %s Plate +item.plate_combine_steel.name=CMB Steel Plate +item.plate_copper.name=Copper Plate +item.plate_dalekanium.name=Angry Metal +item.plate_desh.name=Desh Compound Plate +item.plate_dineutronium.name=Dineutronium Compound Plate +item.plate_euphemium.name=Euphemium Compound Plate +item.plate_fuel_mox.name=MOX Plate Fuel +item.plate_fuel_pu238be.name=Pu238Be Plate Fuel +item.plate_fuel_pu239.name=HEP-239 Plate Fuel +item.plate_fuel_ra226be.name=Ra226Be Plate Fuel +item.plate_fuel_sa326.name=HES-326 Plate Fuel +item.plate_fuel_u233.name=HEU-233 Plate Fuel +item.plate_fuel_u235.name=HEU-235 Plate Fuel +item.plate_gold.name=Gold Plate +item.plate_iron.name=Iron Plate +item.plate_kevlar.name=Kevlar-Ceramic Compound +item.plate_lead.name=Lead Plate +item.plate_mixed.name=Mixed Plate +item.plate_paa.name=PaA Alloy Plate +item.plate_polymer.name=Insulator +item.plate_saturnite.name=Saturnite Plate +item.plate_schrabidium.name=Schrabidium Plate +item.plate_steel.name=Steel Plate +item.plate_titanium.name=Titanium Plate +item.polaroid.name=The Polaroid +item.pollution_detector.name=Pollution Detector +item.powder_actinium.name=Actinium Powder +item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder +item.powder_advanced_alloy.name=Advanced Alloy Powder +item.powder_aluminium.name=Aluminium Powder +item.powder_asbestos.name=Asbestos Powder +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_astatine.name=Astatine Powder +item.powder_at209.name=Astatine-209 Powder +item.powder_au198.name=Gold-198 Powder +item.powder_australium.name=Australium Powder +item.powder_bakelite.name=Bakelite Powder +item.powder_balefire.name=Thermonuclear Ashes +item.powder_beryllium.name=Beryllium Powder +item.powder_bismuth.name=Bismuth Powder +item.powder_borax.name=Borax +item.powder_boron.name=Boron Powder +item.powder_boron_tiny.name=Tiny Pile of Boron Powder +item.powder_bromine.name=Bromine Powder +item.powder_cadmium.name=Cadmium Powder +item.powder_caesium.name=Caesium Powder +item.powder_calcium.name=Calcium Powder +item.powder_cerium.name=Cerium Powder +item.powder_cerium_tiny.name=Tiny Pile of Cerium Powder +item.powder_chlorocalcite.name=Chlorocalcite +item.powder_chlorophyte.name=Chlorophyte Powder +item.powder_cloud.name=Cloud Residue +item.powder_co60.name=Cobalt-60 Powder +item.powder_coal.name=Coal Powder +item.powder_coal_tiny.name=Tiny Pile of Coal Powder +item.powder_cobalt.name=Cobalt Powder +item.powder_cobalt_tiny.name=Tiny Pile of Cobalt Powder +item.powder_coltan.name=Purified Tantalite +item.powder_coltan_ore.name=Crushed Coltan +item.powder_combine_steel.name=CMB Steel Powder +item.powder_copper.name=Copper Powder +item.powder_cs137.name=Caesium-137 Powder +item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder +item.powder_daffergon.name=Daffergon Powder +item.powder_desh.name=Desh Powder +item.powder_desh_mix.name=Desh Blend +item.powder_desh_ready.name=DeshReady™ Blend +item.powder_diamond.name=Diamond Powder +item.powder_dineutronium.name=Dineutronium Powder +item.powder_dura_steel.name=High-Speed Steel Powder +item.powder_emerald.name=Emerald Powder +item.powder_euphemium.name=Euphemium Powder +item.powder_euphemium.desc=Pulverized pink.$Tastes like strawberries. +item.powder_fertilizer.name=Industrial Fertilizer +item.powder_fire.name=Red Phosphorus +item.powder_fire.desc=Used in multi purpose bombs:$Incendiary bombs are fun! +item.powder_flux.name=Flux +item.powder_gold.name=Gold Powder +item.powder_i131.name=Iodine-131 Powder +item.powder_i131_tiny.name=Tiny Pile of Iodine-131 Powder +item.powder_ice.name=Cryo Powder +item.powder_impure_osmiridium.name=Impure Osmiridium Powder +item.powder_iodine.name=Iodine Powder +item.powder_iron.name=Iron Powder +item.powder_lanthanium.name=Lanthanium Powder +item.powder_lanthanium_tiny.name=Tiny Pile of Lanthanium Powder +item.powder_lapis.name=Lapis Lazuli Powder +item.powder_lead.name=Lead Powder +item.powder_lignite.name=Lignite Powder +item.powder_lithium.name=Lithium Powder +item.powder_lithium_tiny.name=Tiny Pile of Lithium Powder +item.powder_magic.name=Pulverized Enchantment +item.powder_magnetized_tungsten.name=Magnetized Tungsten Powder +item.powder_meteorite.name=Meteorite Powder +item.powder_meteorite_tiny.name=Tiny Pile of Meteorite Powder +item.powder_neodymium.name=Neodymium Powder +item.powder_neodymium_tiny.name=Tiny Pile of Neodymium Powder +item.powder_neptunium.name=Neptunium Powder +item.powder_niobium.name=Niobium Powder +item.powder_niobium_tiny.name=Tiny Pile of Niobium Powder +item.powder_nitan_mix.name=Nitanium Blend +item.powder_paleogenite.name=Paleogenite Powder +item.powder_paleogenite_tiny.name=Tiny Pile of Paleogenite Powder +item.powder_plutonium.name=Plutonium Powder +item.powder_poison.name=Poison Powder +item.powder_poison.desc=Used in multi purpose bombs:$Warning: Poisonous! +item.powder_polonium.name=Polonium-210 Powder +item.powder_polymer.name=Polymer Powder +item.powder_power.name=Energy Powder +item.powder_quartz.name=Quartz Powder +item.powder_ra226.name=Radium-226 Powder +item.powder_red_copper.name=Red Copper Powder +item.powder_reiium.name=Reiium Powder +item.powder_sawdust.name=Sawdust +item.powder_schrabidate.name=Ferric Schrabidate Powder +item.powder_schrabidium.name=Schrabidium Powder +item.powder_semtex_mix.name=Semtex Blend +item.powder_spark_mix.name=Spark Blend +item.powder_sr90.name=Strontium-90 Powder +item.powder_sr90_tiny.name=Tiny Pile of Strontium-90 Powder +item.powder_steel.name=Steel Powder +item.powder_steel_tiny.name=Tiny Pile of Steel Powder +item.powder_strontium.name=Strontium Powder +item.powder_tantalium.name=Tantalium Powder +item.powder_tantalium.desc='Tantalum' +item.powder_tantalium.desc.P11=AKA Tantalum. +item.powder_tcalloy.name=Technetium Steel Powder +item.powder_tektite.name=Tektite Powder +item.powder_tennessine.name=Tennessine Powder +item.powder_thermite.name=Thermite +item.powder_thorium.name=Thorium Powder +item.powder_titanium.name=Titanium Powder +item.powder_tungsten.name=Tungsten Powder +item.powder_unobtainium.name=Unobtainium Powder +item.powder_uranium.name=Uranium Powder +item.powder_verticium.name=Verticium Powder +item.powder_weidanium.name=Weidanium Powder +item.powder_xe135.name=Xenon-135 Powder +item.powder_xe135_tiny.name=Tiny Pile of Xenon-135 Powder +item.powder_yellowcake.name=Yellowcake +item.powder_zirconium.name=Zirconium Powder +item.power_net_tool.name=Cable Network Analysis Tool +item.primer_357.name=.357 Magnum Primer (x24) +item.primer_44.name=.44 Magnum Primer (x24) +item.primer_50.name=Large Caliber Primer (x12) +item.primer_9.name=Small Caliber Primer (x32) +item.primer_buckshot.name=Buckshot Primer (x12) +item.protection_charm.name=Charm of Protection +item.prototype_kit.name=Prototype Kit +item.pudding.name=Pudding +item.quartz_plutonium.name=Plutonic Quartz +item.radaway.name=RadAway +item.radaway_flush.name=Elite RadAway +item.radaway_strong.name=Strong RadAway +item.radx.name=Rad-X +item.radx.desc=Increases radiation resistance by 0.2 (37%%) for 3 minutes +item.rag.name=Cloth +item.rag_damp.name=Damp Cloth +item.rag_piss.name=Piss-Soaked Rag +item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod +item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod +item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r +item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod +item.rbmk_fuel_flashlead.name=Flashlead RBMK Fuel Rod +item.rbmk_fuel_hea241.name=HEA-241 RBMK Fuel Rod +item.rbmk_fuel_hea242.name=HEA-242 RBMK Fuel Rod +item.rbmk_fuel_heaus.name=HEAus RBMK Fuel Rod +item.rbmk_fuel_hen.name=HEN RBMK Fuel Rod +item.rbmk_fuel_hes.name=HES RBMK Fuel Rod +item.rbmk_fuel_hep.name=HEP-239 RBMK Fuel Rod +item.rbmk_fuel_hep241.name=HEP-241 RBMK Fuel Rod +item.rbmk_fuel_heu233.name=HEU-233 RBMK Fuel Rod +item.rbmk_fuel_heu235.name=HEU-235 RBMK Fuel Rod +item.rbmk_fuel_lea.name=LEA RBMK Fuel Rod +item.rbmk_fuel_leaus.name=LEAus RBMK Fuel Rod +item.rbmk_fuel_lep.name=LEP-239 RBMK Fuel Rod +item.rbmk_fuel_les.name=LES RBMK Fuel Rod +item.rbmk_fuel_mea.name=MEA RBMK Fuel Rod +item.rbmk_fuel_men.name=MEN RBMK Fuel Rod +item.rbmk_fuel_mep.name=MEP-239 RBMK Fuel Rod +item.rbmk_fuel_mes.name=MES RBMK Fuel Rod +item.rbmk_fuel_meu.name=MEU RBMK Fuel Rod +item.rbmk_fuel_mox.name=MOX RBMK Fuel Rod +item.rbmk_fuel_po210be.name=Po210Be RBMK Neutron Source +item.rbmk_fuel_pu238be.name=Pu238Be RBMK Neutron Source +item.rbmk_fuel_ra226be.name=Ra226Be RBMK Neutron Source +item.rbmk_fuel_thmeu.name=ThMEU RBMK Fuel Rod +item.rbmk_fuel_ueu.name=NU RBMK Fuel Rod +item.rbmk_fuel_zfb_am_mix.name=Fuel Grade Americium RBMK ZFB Rod +item.rbmk_fuel_zfb_bismuth.name=Bismuth RBMK ZFB Rod +item.rbmk_fuel_zfb_pu241.name=Pu-241 RBMK ZFB Rod +item.rbmk_lid.name=RBMK Cover Panel +item.rbmk_lid_glass.name=RBMK Glass Cover Panel +item.rbmk_pellet_balefire.name=Balefire Fuel Pellet +item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet +item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r +item.rbmk_pellet_flashlead.name=Flashlead Fuel Pellet +item.rbmk_pellet_hea241.name=HEA-241 Fuel Pellet +item.rbmk_pellet_hea242.name=HEA-242 Fuel Pellet +item.rbmk_pellet_heaus.name=HEAus Fuel Pellet +item.rbmk_pellet_hen.name=HEN Fuel Pellet +item.rbmk_pellet_hep239.name=HEP-239 Fuel Pellet +item.rbmk_pellet_hep241.name=HEP-241 Fuel Pellet +item.rbmk_pellet_heu233.name=HEU-233 Fuel Pellet +item.rbmk_pellet_heu235.name=HEU-235 Fuel Pellet +item.rbmk_pellet_hes.name=HES Fuel Pellet +item.rbmk_pellet_lea.name=LEA Fuel Pellet +item.rbmk_pellet_leaus.name=LEAus Fuel Pellet +item.rbmk_pellet_lep.name=LEP Fuel Pellet +item.rbmk_pellet_les.name=LES Fuel Pellet +item.rbmk_pellet_mea.name=MEA Fuel Pellet +item.rbmk_pellet_men.name=MEN Fuel Pellet +item.rbmk_pellet_mep.name=MEP Fuel Pellet +item.rbmk_pellet_mes.name=MES Fuel Pellet +item.rbmk_pellet_meu.name=MEU Fuel Pellet +item.rbmk_pellet_mox.name=MOX Fuel Pellet +item.rbmk_pellet_po210be.name=Po210Be Neutron Source Pellet +item.rbmk_pellet_pu238be.name=Pu238Be Neutron Source Pellet +item.rbmk_pellet_ra226be.name=Ra226Be Neutron Source Pellet +item.rbmk_pellet_thmeu.name=ThMEU Fuel Pellet +item.rbmk_pellet_ueu.name=NU Fuel Pellet +item.rbmk_pellet_zfb_am_mix.name=Fuel Grade Americium ZFB Pellet +item.rbmk_pellet_zfb_bismuth.name=Bismuth ZFB Pellet +item.rbmk_pellet_zfb_pu241.name=Pu-241 ZFB Pellet +item.rbmk_tool.name=RBMK Console Linking Device +item.rbmk_tool.desc=Sneak and right-click RBMK to save the position,$sneak and right-click console to link! +item.rbmk_tool.linked=Position set! +item.rbmk_tool.set=RBMK linked! +item.reacher.name=Tungsten Reacher +item.reactor_core.name=Breeding Reactor Core +item.reactor_sensor.name=Reactor Remote Sensor +item.record.glass.desc=? ? ? +item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core +item.record.ss.desc=Valve - Sector Sweep +item.record.vc.desc=Valve - Vortal Combat +item.redcoil_capacitor.name=Redcoil Capacitor +item.redstone_depleted.name=Desaturated Redstone Dust +item.redstone_sword.name=Redstone Sword +item.reer_graar.name=The Reer Graar +item.remote.name=Broken Remote +item.ring_pull.name=Ring Pull +item.ring_starmetal.name=§9Starmetal Ring§r +item.robes_boots.name=Field Boots +item.robes_helmet.name=Casual Hoodie +item.robes_legs.name=Casual Pants +item.robes_plate.name=Casual Sweater +item.rocket_fuel.name=Solid Fuel (Rocket Propellant) +item.rod_empty.name=Empty Rod +item.rod.lithium.name=Lithium Rod +item.rod.tritium.name=Tritium Rod +item.rod.co.name=Cobalt Rod +item.rod.co60.name=Cobalt-60 Rod +item.rod.ra226.name=Radium-226 Rod +item.rod.ac227.name=Actinium-227 Rod +item.rod.th232.name=Thorium-232 Rod +item.rod.thf.name=Thorium Fuel Rod +item.rod.u235.name=Uranium-235 Rod +item.rod.np237.name=Neptunium-237 Rod +item.rod.u238.name=Uranium-238 Rod +item.rod.pu238.name=Plutonium-238 Rod +item.rod.pu239.name=Plutonium-239 Rod +item.rod.rgp.name=Reactor-Grade Plutonium Rod +item.rod.waste.name=Nuclear Waste Rod +item.rod.lead.name=Lead Rod +item.rod.uranium.name=Uranium Rod +item.rod_dual_empty.name=Empty Dual Rod +item.rod_dual.lithium.name=Lithium Dual Rod +item.rod_dual.tritium.name=Tritium Dual Rod +item.rod_dual.co.name=Cobalt Dual Rod +item.rod_dual.co60.name=Cobalt-60 Dual Rod +item.rod_dual.ra226.name=Radium-226 Dual Rod +item.rod_dual.ac227.name=Actinium-227 Dual Rod +item.rod_dual.th232.name=Thorium-232 Dual Rod +item.rod_dual.thf.name=Thorium Fuel Dual Rod +item.rod_dual.u235.name=Uranium-235 Dual Rod +item.rod_dual.np237.name=Neptunium-237 Dual Rod +item.rod_dual.u238.name=Uranium-238 Dual Rod +item.rod_dual.pu238.name=Plutonium-238 Dual Rod +item.rod_dual.pu239.name=Plutonium-239 Dual Rod +item.rod_dual.rgp.name=Reactor-Grade Plutonium Dual Rod +item.rod_dual.waste.name=Nuclear Waste Dual Rod +item.rod_dual.lead.name=Lead Dual Rod +item.rod_dual.uranium.name=Uranium Dual Rod +item.rod_quad_empty.name=Empty Quad Rod +item.rod_quad.lithium.name=Lithium Quad Rod +item.rod_quad.tritium.name=Tritium Quad Rod +item.rod_quad.co.name=Cobalt Quad Rod +item.rod_quad.co60.name=Cobalt-60 Quad Rod +item.rod_quad.ra226.name=Radium-226 Quad Rod +item.rod_quad.ac227.name=Actinium-227 Quad Rod +item.rod_quad.th232.name=Thorium-232 Quad Rod +item.rod_quad.thf.name=Thorium Fuel Quad Rod +item.rod_quad.u235.name=Uranium-235 Quad Rod +item.rod_quad.np237.name=Neptunium-237 Quad Rod +item.rod_quad.u238.name=Uranium-238 Quad Rod +item.rod_quad.pu238.name=Plutonium-238 Quad Rod +item.rod_quad.pu239.name=Plutonium-239 Quad Rod +item.rod_quad.rgp.name=Reactor-Grade Plutonium Quad Rod +item.rod_quad.waste.name=Nuclear Waste Quad Rod +item.rod_quad.lead.name=Lead Quad Rod +item.rod_quad.uranium.name=Uranium Quad Rod +item.rod_australium.name=Australium Rod +item.rod_balefire.name=Balefire Rod +item.rod_balefire_blazing.name=Blazing Balefire Rod +item.rod_coolant.name=Coolant Cell +item.rod_daffergon.name=Daffergon Rod +item.rod_dual_balefire.name=Balefire Dual Rod +item.rod_dual_balefire_blazing.name=Blazing Balefire Dual Rod +item.rod_dual_coolant.name=Dual Coolant Cell +item.rod_dual_lead.name=Lead Dual Rod +item.rod_dual_lithium.name=Dual Lithium Rod +item.rod_dual_mox_fuel.name=MOX Dual Fuel Rod +item.rod_dual_mox_fuel_depleted.name=Depleted MOX Dual Fuel Rod +item.rod_dual_neptunium.name=Neptunium Dual Rod +item.rod_dual_plutonium.name=Plutonium Dual Rod +item.rod_dual_plutonium_fuel.name=Plutonium Dual Fuel Rod +item.rod_dual_plutonium_fuel_depleted.name=Depleted Plutonium Dual Fuel Rod +item.rod_dual_polonium.name=Polonium-210 Dual Rod +item.rod_dual_pu238.name=Plutonium-238 Dual Rod +item.rod_dual_pu239.name=Plutonium-239 Dual Rod +item.rod_dual_pu240.name=Plutonium-240 Dual Rod +item.rod_dual_schrabidium.name=Schrabidium-326 Dual Rod +item.rod_dual_schrabidium_fuel.name=Schrabidium Dual Fuel Rod +item.rod_dual_schrabidium_fuel_depleted.name=Depleted Schrabidium Dual Fuel Rod +item.rod_dual_solinium.name=Schrabidium-327 Dual Rod +item.rod_dual_th232.name=Thorium-232 Dual Rod +item.rod_dual_thorium_fuel.name=Thorium Dual Fuel Rod +item.rod_dual_thorium_fuel_depleted.name=Depleted Thorium Dual Fuel Rod +item.rod_dual_tritium.name=Dual Tritium Cell +item.rod_dual_u233.name=Uranium-233 Dual Rod +item.rod_dual_u235.name=Uranium-235 Dual Rod +item.rod_dual_u238.name=Uranium-238 Dual Rod +item.rod_dual_uranium.name=Uranium Dual Rod +item.rod_dual_uranium_fuel.name=Uranium Dual Fuel Rod +item.rod_dual_uranium_fuel_depleted.name=Depleted Uranium Dual Fuel Rod +item.rod_dual_waste.name=Nuclear Waste Dual Rod +item.rod_dual_water.name=Dual Water Cell +item.rod_euphemium.name=Euphemium Rod +item.rod_lead.name=Lead Rod +item.rod_lithium.name=Lithium Rod +item.rod_mox_fuel.name=MOX Fuel Rod +item.rod_mox_fuel_depleted.name=Depleted MOX Fuel Rod +item.rod_neptunium.name=Neptunium Rod +item.rod_of_discord.name=Rod of Discord +item.rod_plutonium.name=Plutonium Rod +item.rod_plutonium_fuel.name=Plutonium Fuel Rod +item.rod_plutonium_fuel_depleted.name=Depleted Plutonium Fuel Rod +item.rod_polonium.name=Polonium-210 Rod +item.rod_pu238.name=Plutonium-238 Rod +item.rod_pu239.name=Plutonium-239 Rod +item.rod_pu240.name=Plutonium-240 Rod +item.rod_quad_balefire.name=Balefire Quad Rod +item.rod_quad_balefire_blazing.name=Blazing Balefire Quad Rod +item.rod_quad_coolant.name=Quad Coolant Cell +item.rod_quad_euphemium.name=Burned Out Quad Schrabidium Rod +item.rod_quad_lead.name=Lead Quad Rod +item.rod_quad_lithium.name=Quad Lithium Rod +item.rod_quad_mox_fuel.name=MOX Quad Fuel Rod +item.rod_quad_mox_fuel_depleted.name=Depleted MOX Quad Fuel Rod +item.rod_quad_neptunium.name=Neptunium Quad Rod +item.rod_quad_plutonium.name=Plutonium Quad Rod +item.rod_quad_plutonium_fuel.name=Plutonium Quad Fuel Rod +item.rod_quad_plutonium_fuel_depleted.name=Depleted Plutonium Quad Fuel Rod +item.rod_quad_polonium.name=Polonium-210 Quad Rod +item.rod_quad_pu238.name=Plutonium-238 Quad Rod +item.rod_quad_pu239.name=Plutonium-239 Quad Rod +item.rod_quad_pu240.name=Plutonium-240 Quad Rod +item.rod_quad_schrabidium.name=Schrabidium-326 Quad Rod +item.rod_quad_schrabidium_fuel.name=Schrabidium Quad Fuel Rod +item.rod_quad_schrabidium_fuel_depleted.name=Depleted Schrabidium Quad Fuel Rod +item.rod_quad_solinium.name=Schrabidium-327 Quad Rod +item.rod_quad_th232.name=Thorium-232 Quad Rod +item.rod_quad_thorium_fuel.name=Thorium Quad Fuel Rod +item.rod_quad_thorium_fuel_depleted.name=Depleted Thorium Quad Fuel Rod +item.rod_quad_tritium.name=Quad Tritium Cell +item.rod_quad_u233.name=Uranium-233 Quad Rod +item.rod_quad_u235.name=Uranium-235 Quad Rod +item.rod_quad_u238.name=Uranium-238 Quad Rod +item.rod_quad_uranium.name=Uranium Quad Rod +item.rod_quad_uranium_fuel.name=Uranium Quad Fuel Rod +item.rod_quad_uranium_fuel_depleted.name=Depleted Uranium Quad Fuel Rod +item.rod_quad_waste.name=Nuclear Waste Quad Rod +item.rod_quad_water.name=Quad Water Cell +item.rod_reiium.name=Reiium Rod +item.rod_schrabidium.name=Schrabidium-326 Rod +item.rod_schrabidium_fuel.name=Schrabidium Fuel Rod +item.rod_schrabidium_fuel_depleted.name=Depleted Schrabidium Fuel Rod +item.rod_solinium.name=Schrabidium-327 Rod +item.rod_th232.name=Thorium-232 Rod +item.rod_thorium_fuel.name=Thorium Fuel Rod +item.rod_thorium_fuel_depleted.name=Depleted Thorium Fuel Rod +item.rod_tritium.name=Tritium Cell +item.rod_u233.name=Uranium-233 Rod +item.rod_u235.name=Uranium-235 Rod +item.rod_u238.name=Uranium-238 Rod +item.rod_unobtainium.name=Unobtainium Rod +item.rod_uranium.name=Uranium Rod +item.rod_uranium_fuel.name=Uranium Fuel Rod +item.rod_uranium_fuel_depleted.name=Depleted Uranium Fuel Rod +item.rod_verticium.name=Verticium Rod +item.rod_waste.name=Nuclear Waste Rod +item.rod_water.name=Water Cell +item.rod_weidanium.name=Weidanium Rod +item.rod_zirnox_empty.name=Empty ZIRNOX Rod +item.rod_zirnox_natural_uranium_fuel.name=ZIRNOX Natural Uranium Fuel Rod +item.rod_zirnox_uranium_fuel.name=ZIRNOX Uranium Fuel Rod +item.rod_zirnox_th232.name=ZIRNOX Thorium-232 Rod +item.rod_zirnox_thorium_fuel.name=ZIRNOX Thorium Fuel Rod +item.rod_zirnox_mox_fuel.name=ZIRNOX MOX Fuel Rod +item.rod_zirnox_plutonium_fuel.name=ZIRNOX Plutonium Fuel Rod +item.rod_zirnox_u233_fuel.name=ZIRNOX Uranium-233 Fuel Rod +item.rod_zirnox_u235_fuel.name=ZIRNOX Uranium-235 Fuel Rod +item.rod_zirnox_les_fuel.name=ZIRNOX LES Fuel Rod +item.rod_zirnox_lithium.name=ZIRNOX Lithium Rod +item.rod_zirnox_tritium.name=ZIRNOX Tritium Rod +item.rod_zirnox_zfb_mox.name=ZIRNOX ZFB MOX Fuel Rod +item.rod_zirnox_natural_uranium_fuel_depleted.name=Depleted ZIRNOX Natural Uranium Fuel Rod +item.rod_zirnox_uranium_fuel_depleted.name= Depleted ZIRNOX Uranium Fuel Rod +item.rod_zirnox_thorium_fuel_depleted.name= Depleted ZIRNOX Thorium Fuel Rod +item.rod_zirnox_mox_fuel_depleted.name=Depleted ZIRNOX MOX Fuel Rod +item.rod_zirnox_plutonium_fuel_depleted.name=Depleted ZIRNOX Plutonium Fuel Rod +item.rod_zirnox_u233_fuel_depleted.name=Depleted ZIRNOX Uranium-233 Fuel Rod +item.rod_zirnox_u235_fuel_depleted.name=Depleted ZIRNOX Uranium-235 Fuel Rod +item.rod_zirnox_les_fuel_depleted.name=Depleted ZIRNOX LES Fuel Rod +item.rod_zirnox_zfb_mox_depleted.name=Depleted ZIRNOX ZFB MOX Fuel Rod +item.rotor_steel.name=Large Steel Rotor +item.rpa_boots.name=Remnants Power Armor Boots +item.rpa_helmet.name=Remnants Power Armor Helmet +item.rpa_legs.name=Remnants Power Armor Leggings +item.rpa_plate.name=Remnants Power Armor Chestplate +item.rtg_unit.name=RTG Unit +item.rubber_gloves.name=Thick Rubber Gloves +item.rune_blank.name=Blank Catalyst Matrix +item.rune_dagaz.name=Balanced Catalyst Matrix +item.rune_hagalaz.name=Rough Catalyst Matrix +item.rune_isa.name=Cool Catalyst Matrix +item.rune_jera.name=Multiplicative Catalyst Matrix +item.rune_thurisaz.name=Additive Catalyst Matrix +item.safety_fuse.name=Safety Fuse +item.sat_base.name=Satellite Base +item.sat_chip.name=Satellite ID-Chip +item.sat_coord.name=Satellite Designator +item.sat_designator.name=Satellite Laser Designator +item.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion +item.sat_gerald.name=Gerald The Construction Android +item.sat_head_laser.name=Death Ray +item.sat_head_mapper.name=High-Gain Optical Camera +item.sat_head_radar.name=Radar Dish +item.sat_head_resonator.name=Xenium Resonator +item.sat_head_scanner.name=M700 Survey Scanner +item.sat_interface.name=Satellite Control Interface +item.sat_laser.name=Orbital Death Ray +item.sat_lunar_miner.name=Lunar Mining Ship +item.sat_mapper.name=Surface Mapping Satellite +item.sat_miner.name=Asteroid Mining Ship +item.sat_radar.name=Radar Survey Satellite +item.sat_resonator.name=Xenium Resonator Satellite +item.sat_scanner.name=Satellite with Depth-Resource Scanning Module +item.sawblade.name=Sawblade +item.schnitzel_vegan.name=Vegan Schnitzel +item.schrabidium_axe.name=Schrabidium Axe +item.schrabidium_boots.name=Schrabidium Boots +item.schrabidium_hammer.name=Schrabidium Hammer +item.schrabidium_helmet.name=Schrabidium Helmet +item.schrabidium_hoe.name=Schrabidium Hoe +item.schrabidium_legs.name=Schrabidium Leggings +item.schrabidium_pickaxe.name=Schrabidium Pickaxe +item.schrabidium_plate.name=Schrabidium Chestplate +item.schrabidium_shovel.name=Schrabidium Shovel +item.schrabidium_sword.name=Schrabidium Sword +item.scrap.name=Scrap +item.scrap_nuclear.name=Radioactive Scraps +item.scrap_oil.name=Oily Scraps +item.scrap_plastic.name=Plastic Scraps +item.scraps.name=Foundry Scraps +item.screwdriver.name=Screwdriver +item.screwdriver.desc=Could be used instead of a fuse... +item.screwdriver_desh.name=Desh Screwdriver +item.scrumpy.name=Bottle of Scrumpy +item.security_boots.name=Security Boots +item.security_helmet.name=Security Helmet +item.security_legs.name=Security Leggings +item.security_plate.name=Security Chestplate +item.seg_10.name=Size 10 Connector +item.seg_15.name=Size 15 Connector +item.seg_20.name=Size 20 Connector +item.serum.name=Serum +item.servo_set.name=Servo Set +item.servo_set_desh.name=Desh Servo Set +item.shackles.name=Shackles +item.shimmer_axe.name=Shimmer Axe +item.shimmer_axe_head.name=Heavy Axe Head +item.shimmer_handle.name=Reinforced Polymer Handle +item.shimmer_head.name=Heavy Hammer Head +item.shimmer_sledge.name=Shimmer Sledge +item.singularity.name=Singularity +item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity +item.singularity_micro.name=Micro Singularity +item.singularity_spark.name=Spark Singularity +item.singularity_super_heated.name=Superheated Resonating Singularity +item.siox.name=SiOX Cancer Medication +item.siox.desc=Reverses mesothelioma with the power of Asbestos! +item.siren_track.name=Siren Track +item.sliding_blast_door_skin.0.name=Sliding Blast Door Skin: Default +item.sliding_blast_door_skin.1.name=Sliding Blast Door Skin: Variant 1 +item.sliding_blast_door_skin.2.name=Sliding Blast Door Skin: Variant 2 +item.smashing_hammer.name=Smashing Hammer +item.solid_fuel.name=Solid Fuel +item.solid_fuel_bf.name=Solid Fuel (Balefire) +item.solid_fuel_presto.name=Presto Log +item.solid_fuel_presto_bf.name=Presto Log (Balefire) +item.solid_fuel_presto_triplet.name=Boosted Presto Logs +item.solid_fuel_presto_triplet_bf.name=Boosted Presto Logs (Balefire) +item.solinium_core.name=Semi-Stable Solinium Core +item.solinium_igniter.name=SOL Pulse Igniter +item.solinium_kit.name=Solinium Kit +item.solinium_propellant.name=SOL Compression Charge +item.sopsign.name=Sop Sign Battle Axe +item.spawn_duck.name=Golden Egg +item.spawn_ufo.name=Martian Invasion Ship +item.spawn_worm.name=Balls-O-Tron Prime +item.sphere_steel.name=Steel Sphere +item.spider_milk.name=Bottle of Spider Milk +item.spongebob_macaroni.name=Spongebob Macaroni +item.stamp_357.name=.357 Magnum Stamp +item.stamp_44.name=.44 Magnum Stamp +item.stamp_50.name=Large Caliber Stamp +item.stamp_9.name=Small Caliber Stamp +item.stamp_desh_circuit.name=Circuit Stamp (Desh) +item.stamp_desh_flat.name=Flat Stamp (Desh) +item.stamp_desh_plate.name=Plate Stamp (Desh) +item.stamp_desh_wire.name=Wire Stamp (Desh) +item.stamp_desh_357.name=.357 Magnum Stamp (Desh) +item.stamp_desh_44.name=.44 Magnum Stamp (Desh) +item.stamp_desh_50.name=Large Caliber Stamp (Desh) +item.stamp_desh_9.name=Small Caliber Stamp (Desh) +item.stamp_iron_circuit.name=Circuit Stamp (Iron) +item.stamp_iron_flat.name=Flat Stamp (Iron) +item.stamp_iron_plate.name=Plate Stamp (Iron) +item.stamp_iron_wire.name=Wire Stamp (Iron) +item.stamp_obsidian_circuit.name=Circuit Stamp (Obsidian) +item.stamp_obsidian_flat.name=Flat Stamp (Obsidian) +item.stamp_obsidian_plate.name=Plate Stamp (Obsidian) +item.stamp_obsidian_wire.name=Wire Stamp (Obsidian) +item.stamp_steel_circuit.name=Circuit Stamp (Steel) +item.stamp_steel_flat.name=Flat Stamp (Steel) +item.stamp_steel_plate.name=Plate Stamp (Steel) +item.stamp_steel_wire.name=Wire Stamp (Steel) +item.stamp_stone_circuit.name=Circuit Stamp (Stone) +item.stamp_stone_flat.name=Flat Stamp (Stone) +item.stamp_stone_plate.name=Plate Stamp (Stone) +item.stamp_stone_wire.name=Wire Stamp (Stone) +item.stamp_titanium_circuit.name=Circuit Stamp (Titanium) +item.stamp_titanium_flat.name=Flat Stamp (Titanium) +item.stamp_titanium_plate.name=Plate Stamp (Titanium) +item.stamp_titanium_wire.name=Wire Stamp (Titanium) +item.starmetal_axe.name=Starmetal Axe +item.starmetal_boots.name=Starmetal Boots +item.starmetal_helmet.name=Starmetal Helmet +item.starmetal_hoe.name=Starmetal Hoe +item.starmetal_legs.name=Starmetal Leggings +item.starmetal_pickaxe.name=Starmetal Pickaxe +item.starmetal_plate.name=Starmetal Chestplate +item.starmetal_shovel.name=Starmetal Shovel +item.starmetal_sword.name=Starmetal Sword +item.static_sandwich.name=Sandwich Garnished with TV Static +item.stealth_boy.name=Stealth Device +item.steamsuit_boots.name=Steam Suit Boots +item.steamsuit_helmet.name=Steam Suit Respirator Helmet +item.steamsuit_legs.name=Steam Suit Leggings +item.steamsuit_plate.name=Steam Suit Chestplate +item.steel_axe.name=Steel Axe +item.steel_boots.name=Steel Boots +item.steel_helmet.name=Steel Helmet +item.steel_hoe.name=Steel Hoe +item.steel_legs.name=Steel Leggings +item.steel_pickaxe.name=Steel Pickaxe +item.steel_plate.name=Steel Chestplate +item.steel_shovel.name=Steel Shovel +item.steel_sword.name=Steel Sword +item.stick_c4.name=Stick of C-4 +item.stick_dynamite.name=Stick of Dynamite +item.stick_dynamite_fishing.name=Stick of Fishing Dynamite +item.stick_semtex.name=Stick of Semtex +item.stick_tnt.name=Stick of TNT +item.stopsign.name=Stop Sign Battle Axe +item.sulfur.name=Sulfur +item.survey_scanner.name=Survey Scanner +item.syringe_antidote.name=Antidote +item.syringe_awesome.name=AWESOME +item.syringe_empty.name=Empty Syringe +item.syringe_metal_empty.name=Metal Syringe +item.syringe_metal_medx.name=Med-X +item.syringe_metal_psycho.name=Psycho +item.syringe_metal_stimpak.name=Stimpak +item.syringe_metal_super.name=Super Stimpak +item.syringe_mkunicorn.name=MKUNICORN +item.syringe_poison.name=Poisonous Injection +item.syringe_taint.name=Watery Taint Injection +item.t45_boots.name=T45 Power Armor Boots +item.t45_helmet.name=T45 Power Armor Helmet +item.t45_kit.name=T45 Power Armor Kit +item.t45_legs.name=T45 Power Armor Leggings +item.t45_plate.name=T45 Power Armor Chestplate +item.tank_steel.name=Steel Tank +item.tank_waste_0.name=Mud Container +item.tank_waste_1.name=Mud Container +item.tank_waste_2.name=Mud Container +item.tank_waste_3.name=Mud Container +item.tank_waste_4.name=Mud Container +item.tank_waste_5.name=Mud Container +item.tank_waste_6.name=Mud Container +item.tank_waste_7.name=Mud Container +item.tank_waste_8.name=Mud Container +item.telepad.name=Telepad +item.tem_flakes.name=Tem Flakes +item.template_folder.name=Machine Template Folder +item.template_folder.desc=Machine Templates: Paper + Dye$Fluid IDs: Iron Plate + Dye$Press Stamps: Flat Stamp$Siren Tracks: Insulator + Steel Plate +item.test_nuke_igniter.name=Igniter +item.test_nuke_propellant.name=Propellant +item.test_nuke_tier1_bullet.name=U235 Projectile (Tier 1) +item.test_nuke_tier1_shielding.name=Neutron Reflector (Tier 1) +item.test_nuke_tier1_target.name=Subcritical U235 Target (Tier 1) +item.test_nuke_tier2_bullet.name=MOX Projectile (Tier 2) +item.test_nuke_tier2_shielding.name=Neutron Reflector (Tier 2) +item.test_nuke_tier2_target.name=Subcritical MOX Target (Tier 2) +item.thermo_element.name=Thermoelectric Element +item.thermo_unit_empty.name=Thermic Distribution Unit +item.thermo_unit_endo.name=Coldness Distribution Unit +item.thermo_unit_exo.name=Heat Distribution Unit +item.thruster_large.name=Large Thruster +item.thruster_medium.name=Medium Thruster +item.thruster_nuclear.name=LV-N Nuclear Rocket Engine +item.thruster_small.name=Small Thruster +item.titanium_axe.name=Titanium Axe +item.titanium_boots.name=Titanium Boots +item.titanium_filter.name=Titanium Filter +item.titanium_helmet.name=Titanium Helmet +item.titanium_hoe.name=Titanium Hoe +item.titanium_legs.name=Titanium Leggings +item.titanium_pickaxe.name=Titanium Pickaxe +item.titanium_plate.name=Titanium Chestplate +item.titanium_shovel.name=Titanium Shovel +item.titanium_sword.name=Titanium Sword +item.toothpicks.name=Toothpicks +item.train.cargo_tram.name=Electric Flat Bed Tram +item.trinitite.name=Trinitite +item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake +item.tritium_deuterium_cake.desc=Not actual cake, but great$universal fusion fuel! +item.tsar_core.name=Tsar Bomba Core +item.tsar_kit.name=Tsar Bomba Kit +item.turbine_titanium.name=Titanium Steam Turbine +item.turbine_tungsten.name=Reinforced Turbofan Blades +item.turret_biometry.name=Turret Telemetry Card +item.turret_cheapo_ammo.name=6x24 Cheapo Turret Ammunition +item.turret_chip.name=Turret AI-Chip +item.turret_control.name=Turret Controller +item.turret_cwis_ammo.name=CIWS 20mm Ammo Drum +item.turret_flamer_ammo.name=Flamer Turret Fuel Tanks +item.turret_heavy_ammo.name=Heavy MG Turret Ammunition +item.turret_light_ammo.name=Light MG Turret Ammo Box +item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition +item.turret_spitfire_ammo.name=AA-Shell +item.turret_tau_ammo.name=Tau Turret Uranium Ammo +item.twinkie.name=Twinkie +item.ullapool_caber.name=Ullapool Caber +item.undefined.name=Undefined +item.upgrade_5g.name=5G Radiation Emitter Upgrade +item.upgrade_afterburn_1.name=Afterburner Upgrade Mk.I +item.upgrade_afterburn_2.name=Afterburner Upgrade Mk.II +item.upgrade_afterburn_3.name=Afterburner Upgrade Mk.III +item.upgrade_centrifuge.name=Centrifuge Upgrade +item.upgrade_crystallizer.name=Crystallizer Upgrade +item.upgrade_effect_1.name=Effectiveness Upgrade Mk.I +item.upgrade_effect_2.name=Effectiveness Upgrade Mk.II +item.upgrade_effect_3.name=Effectiveness Upgrade Mk.III +item.upgrade_ejector_1.name=Ejection Speed Upgrade Mk.I +item.upgrade_ejector_2.name=Ejection Speed Upgrade Mk.II +item.upgrade_ejector_3.name=Ejection Speed Upgrade Mk.III +item.upgrade_fortune_1.name=Fortune Upgrade Mk.I +item.upgrade_fortune_2.name=Fortune Upgrade Mk.II +item.upgrade_fortune_3.name=Fortune Upgrade Mk.III +item.upgrade_gc_speed.name=Gas Centrifuge Overclocking Upgrade +item.upgrade_health.name=Emitter Health Upgrade +item.upgrade_nullifier.name=Scrap Destroyer Upgrade +item.upgrade_overdrive_1.name=Overdrive Upgrade Mk.I +item.upgrade_overdrive_2.name=Overdrive Upgrade Mk.II +item.upgrade_overdrive_3.name=Overdrive Upgrade Mk.III +item.upgrade_power_1.name=Power Saving Upgrade Mk.I +item.upgrade_power_2.name=Power Saving Upgrade Mk.II +item.upgrade_power_3.name=Power Saving Upgrade Mk.III +item.upgrade_radius.name=Emitter Radius Upgrade +item.upgrade_screm.name=Screaming Scientist Upgrade +item.upgrade_shredder.name=Shredder Upgrade +item.upgrade_smelter.name=Smelter Upgrade +item.upgrade_speed_1.name=Speed Upgrade Mk.I +item.upgrade_speed_2.name=Speed Upgrade Mk.II +item.upgrade_speed_3.name=Speed Upgrade Mk.III +item.upgrade_stack_1.name=Stack Ejection Upgrade Mk.I +item.upgrade_stack_2.name=Stack Ejection Upgrade Mk.II +item.upgrade_stack_3.name=Stack Ejection Upgrade Mk.III +item.upgrade_template.name=Machine Upgrade Template +item.v1.name=V1 +item.volcanic_pickaxe.name=Molten Pickaxe +item.wand_d.name=Debug Wand +item.wand_k.name=Construction Wand +item.wand_s.name=Structure Wand +item.warhead_buster_large.name=Large Bunker Buster Warhead +item.warhead_buster_medium.name=Medium Bunker Buster Warhead +item.warhead_buster_small.name=Small Bunker Buster Warhead +item.warhead_cluster_large.name=Large Cluster Warhead +item.warhead_cluster_medium.name=Medium Cluster Warhead +item.warhead_cluster_small.name=Small Cluster Warhead +item.warhead_generic_large.name=Large Warhead +item.warhead_generic_medium.name=Medium Warhead +item.warhead_generic_small.name=Small Warhead +item.warhead_incendiary_large.name=Large Incendiary Warhead +item.warhead_incendiary_medium.name=Medium Incendiary Warhead +item.warhead_incendiary_small.name=Small Incendiary Warhead +item.warhead_mirv.name=Thermonuclear Warhead +item.warhead_mirvlet.name=MIRV +item.warhead_nuclear.name=Nuclear Warhead +item.warhead_thermo_endo.name=Endothermic Warhead +item.warhead_thermo_exo.name=Exothermic Warhead +item.warhead_volcano.name=Tectonic Warhead +item.waste_mox.name=Depleted MOX Fuel +item.waste_natural_uranium.name=Depleted Natural Uranium Fuel +item.waste_plate_mox.name=Depleted MOX Plate Fuel +item.waste_plate_pu238be.name=Depleted Pu238Be Plate Fuel +item.waste_plate_pu239.name=Depleted HEP-239 Plate Fuel +item.waste_plate_ra226be.name=Depleted Ra226Be Plate Fuel +item.waste_plate_sa326.name=Depleted HES-326 Plate Fuel +item.waste_plate_u233.name=Depleted HEU-233 Plate Fuel +item.waste_plate_u235.name=Depleted HEU-235 Plate Fuel +item.waste_plutonium.name=Depleted Plutonium Fuel +item.waste_schrabidium.name=Depleted Schrabidium Fuel +item.waste_thorium.name=Depleted Thorium Fuel +item.waste_u235.name=Depleted Uranium-235 Fuel +item.waste_u233.name=Depleted Uranium-233 Fuel +item.waste_uranium.name=Depleted Uranium Fuel +item.waste_zfb_mox.name=Depleted ZFB MOX Fuel +item.watch.name=Broken Pocket Watch +item.watch.desc=A small blue pocket watch.$Its glass has a few cracks in it, $and some shards are missing.$It stopped ticking at 2:34. +item.watz_pellet.boron.name=Boron Absorber Pellet +item.watz_pellet.du.name=Depleted Uranium Absorber Pellet +item.watz_pellet.hes.name=HES Watz Pellet +item.watz_pellet.lead.name=Lead Absorber Pellet +item.watz_pellet.les.name=LES Watz Pellet +item.watz_pellet.mes.name=MES Watz Pellet +item.watz_pellet.mep.name=MEP Watz Pellet +item.watz_pellet.meu.name=MEU Watz Pellet +item.watz_pellet.nqd.name=Enriched Naquadah Watz Pellet +item.watz_pellet.nqr.name=Naquadria Watz Pellet +item.watz_pellet.hen.name=HEN Watz Pellet +item.watz_pellet.schrabidium.name=Schrabidium Watz Pellet +item.watz_pellet_depleted.boron.name=Boron Absorber Pellet (Depleted) +item.watz_pellet_depleted.du.name=Depleted Uranium Absorber Pellet (Depleted) +item.watz_pellet_depleted.hes.name=HES Watz Pellet (Depleted) +item.watz_pellet_depleted.lead.name=Lead Absorber Pellet (Depleted) +item.watz_pellet_depleted.les.name=LES Watz Pellet (Depleted) +item.watz_pellet_depleted.mes.name=MES Watz Pellet (Depleted) +item.watz_pellet_depleted.mep.name=MEP Watz Pellet (Depleted) +item.watz_pellet_depleted.meu.name=MEU Watz Pellet (Depleted) +item.watz_pellet_depleted.nqd.name=Enriched Naquadah Watz Pellet (Depleted) +item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) +item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) +item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) + +item.weapon_bat.name=Richard's Default +item.weapon_bat_nail.name=The Cliché +item.weapon_golf_club.name=Russian Mobster's Club +item.weapon_pipe_lead.name=The Manual Override +item.weapon_pipe_rusty.name=The Attitude Adjuster +item.weapon_saw.name=Doctor Assisted Homicide +item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r +item.wd40.name=VT-40 +item.wild_p.name=Wild Pegasus Dry Whiskey +item.wings_limp.name=Limp Wings +item.wings_murk.name=Murky Wings +item.wire_advanced_alloy.name=Super Conductor +item.wire_aluminium.name=Aluminium Wire +item.wire_copper.name=Copper Wire +item.wire_gold.name=Gold Wire +item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor +item.wire_red_copper.name=Red Copper Wire +item.wire_schrabidium.name=Schrabidium Wire +item.wire_tungsten.name=Tungsten Wire +item.wiring_red_copper.name=Cable Drum +item.wood_gavel.name=Wooden Gavel +item.wrench.name=Pipe Wrench +item.wrench_archineer.name=Archineer's Wrench +item.wrench_flipped.name=Blade on a Wrench +item.xanax.name=NAXA Anti-Digamma Medication +item.xanax.desc=Removes 500mDRX +item.zirconium_legs.name=Zirconium Pants + +itemGroup.tabBlocks=NTM Ores and Blocks +itemGroup.tabConsumable=NTM Consumables and Gear +itemGroup.tabControl=NTM Machine Items and Fuel +itemGroup.tabMachine=NTM Machines +itemGroup.tabMissile=NTM Missiles and Satellites +itemGroup.tabNuke=NTM Bombs +itemGroup.tabParts=NTM Resources and Parts +itemGroup.tabTemplate=NTM Templates +itemGroup.tabTest=Nuclear Tech Mod Test Tab +itemGroup.tabWeapon=NTM Weapons and Turrets + +potion.hbm_bang=! ! ! +potion.hbm_death=Astolfization +potion.hbm_lead=Lead Poisoning +potion.hbm_mutation=Tainted Heart +potion.hbm_phosphorus=Phosphorus Burns +potion.hbm_potionsickness=Potion Sickness +potion.hbm_radaway=Radaway +potion.hbm_radiation=Contaminated +potion.hbm_radx=Rad-X +potion.hbm_stability=Stability +potion.hbm_taint=Tainted +potion.hbm_telekinesis=! ! ! + +radar.detectMissiles=Detect Missiles +radar.detectPlayers=Detect Players +radar.redMode=Redstone Mode$On: Redstone output based on range$Off: Redstone output based on tier +radar.smartMode=Smart Mode$Redstone output ignores ascending missiles + +rbmk.heat=Column temperature: %s +rbmk.boiler.water=Feedwater: %s / %s +rbmk.boiler.steam=Steam: %s / %s +rbmk.boiler.type=Compressor: %s +rbmk.console.assign=Assign selected columns to screen #%s +rbmk.console.none=Off +rbmk.console.col_temp=Monitor average column temperature +rbmk.console.rod_extraction=Monitor average control rod extraction +rbmk.console.fuel_depletion=Monitor average fuel depletion +rbmk.console.fuel_poison=Monitor average xenon poisoning +rbmk.console.fuel_temp=Monitor average fuel temperature +rbmk.control.level=%s +rbmk.control.red=§cRed Group +rbmk.control.yellow=§eYellow Group +rbmk.control.green=§aGreen Group +rbmk.control.blue=§1Blue Group +rbmk.control.purple=§5Purple Group +rbmk.moderated=Moderated +rbmk.rod.depletion=Depletion: %s +rbmk.rod.xenon=Xenon poison: %s +rbmk.rod.coreTemp=Core temperature: %s +rbmk.rod.skinTemp=Skin temperature: %s / %s +rbmk.screen.core=Core: %s +rbmk.screen.depletion=Depl: %s +rbmk.screen.rod=Control: %s +rbmk.screen.temp=Temp: %s +rbmk.screen.xenon=Xenon: %s + +shape.billet=Billet +shape.blade=Blade +shape.blades=Shredder Blades +shape.block=Block +shape.dust=Dust +shape.dusttiny=Tiny Dust +shape.hull_big=Big Shell +shape.hull_small=Small Shell +shape.ingot=Ingot +shape.nugget=Nugget +shape.quantum=Quantum +shape.quart=Quarter Block +shape.plate=Plate +shape.plateTriple=Cast Plate +shape.stamp=Press Stamp +shape.wire=Wire + +soundCategory.ntmMachines=NTM Machines + +tile.absorber.name=Radiation Absorber +tile.absorber_green.name=Advanced Radiation Absorber +tile.absorber_pink.name=Elite Radiation Absorber +tile.absorber_red.name=Enhanced Radiation Absorber +tile.acid_block.name=Acid +tile.ams_base.name=AMS Base (Dekoracja) +tile.ams_emitter.name=AMS Emitter (Dekoracja) +tile.ams_limiter.name=AMS Stabilizer (Dekoracja) +tile.ancient_scrap.name=Ancient Scrap Metal +tile.anvil_bismuth.name=Bismuth Anvil +tile.anvil_dnt.name=Dineutronium Anvil +tile.anvil_ferrouranium.name=Ferrouranium Anvil +tile.anvil_iron.name=Iron Anvil +tile.anvil_lead.name=Lead Anvil +tile.anvil_meteorite.name=Meteorite Anvil +tile.anvil_murky.name=Murky Anvil +tile.anvil_osmiridium.name=Osmiridium Anvil +tile.anvil_schrabidate.name=Ferric Schrabidate Anvil +tile.anvil_starmetal.name=Starmetal Anvil +tile.anvil_steel.name=Steel Anvil +tile.ash_digamma.name=Ash +tile.asphalt.name=Asphalt +tile.asphalt_light.name=Glowing Asphalt +tile.barbed_wire.name=Barbed Wire +tile.barbed_wire_acid.name=Caustic Barbed Wire +tile.barbed_wire_fire.name=Flaming Barbed Wire +tile.barbed_wire_poison.name=Poisoned Barbed Wire +tile.barbed_wire_ultradeath.name=Cloud Barbed Wire +tile.barbed_wire_wither.name=Withered Barbed Wire +tile.barrel_antimatter.name=Magnetic Antimatter Container +tile.barrel_corroded.name=Corroded Barrel +tile.barrel_iron.name=Iron Barrel +tile.barrel_plastic.name=Safe Barrel™ +tile.barrel_steel.name=Steel Barrel +tile.barrel_tcalloy.name=Technetium Steel Barrel +tile.barricade.name=Sand Bags +tile.basalt.name=Basalt +tile.basalt_asbestos.name=Asbestos-Rich Basalt +tile.basalt_brick.name=Basalt Bricks +tile.basalt_fluorite.name=Fluorite-Rich Basalt +tile.basalt_gem.name=Gem-Rich Basalt +tile.basalt_polished.name=Polished Basalt +tile.basalt_smooth.name=Smooth Basalt +tile.basalt_sulfur.name=Sulfur-Rich Basalt +tile.basalt_tiles.name=Basalt Tiles +tile.blast_door.name=Sliding Blast Door +tile.block_actinium.name=Block of Actinium +tile.block_advanced_alloy.name=Block of Advanced Alloy +tile.block_aluminium.name=Block of Aluminium +tile.block_asbestos.name=Block of Asbestos +tile.block_australium.name=Block of Australium +tile.block_bakelite.name=Block of Bakelite +tile.block_beryllium.name=Block of Beryllium +tile.block_bismuth.name=Block of Bismuth +tile.block_boron.name=Block of Boron +tile.block_c4.name=Block of C-4 +tile.block_cadmium.name=Block of Cadmium +tile.block_cap_fritz.name=Block of Fritz Cola Bottle Caps +tile.block_cap_korl.name=Block of Korl Bottle Caps +tile.block_cap_nuka.name=Block of Nuka Cola Bottle Caps +tile.block_cap_quantum.name=Block of Nuka Cola Quantum Bottle Caps +tile.block_cap_rad.name=Block of S~Cola RAD Bottle Caps +tile.block_cap_sparkle.name=Block of S~Cola Bottle Caps +tile.block_cap_star.name=Block of Sunset Sarsaparilla Star Caps +tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps +tile.block_cdalloy.name=Block of Cadmium Steel +tile.block_cobalt.name=Block of Cobalt +tile.block_coke.coal.name=Block of Coal Coke +tile.block_coke.lignite.name=Block of Lignite Coke +tile.block_coke.petroleum.name=Block of Petroleum Coke +tile.block_coltan.name=Block of Coltan +tile.block_combine_steel.name=Block of CMB Steel +tile.block_copper.name=Block of Copper +tile.block_corium.name=Corium +tile.block_corium_cobble.name=Corebblestone +tile.block_daffergon.name=Block of Daffergon +tile.block_desh.name=Reinforced Block of Desh +tile.block_dineutronium.name=Block of Dineutronium +tile.block_dura_steel.name=Reinforced Block of High-Speed Steel +tile.block_electrical_scrap.name=Block of Electrical Scrap +tile.block_euphemium.name=Block of Euphemium +tile.block_euphemium_cluster.name=Euphemium-Etched Schrabidium Cluster +tile.block_fallout.name=Block of Fallout +tile.block_fiberglass.name=Roll of Fiberglass +tile.block_fluorite.name=Block of Fluorite +tile.block_foam.name=Foam +tile.block_insulator.name=Roll of Insulation +tile.block_graphite.name=Block of Graphite +tile.block_graphite_detector.name=Pile Neutron Detector +tile.block_graphite_drilled.name=Drilled Graphite +tile.block_graphite_fuel.name=Pile Fuel +tile.block_graphite_lithium.name=Pile Lithium Fuel +tile.block_graphite_plutonium.name=Pile Fuel (Bred) +tile.block_graphite_rod.name=Pile Control Rod +tile.block_graphite_source.name=Pile Neutron Source +tile.block_graphite_tritium.name=Pile Lithium Fuel (Bred) +tile.block_lead.name=Block of Lead +tile.block_lanthanium.name=Block of Lanthanium +tile.block_lithium.name=Block of Lithium +tile.block_magnetized_tungsten.name=Block of Magnetized Tungsten +tile.block_meteor.name=Meteorite Block +tile.block_meteor_broken.name=Broken Meteorite Block +tile.block_meteor_cobble.name=Meteorite Cobblestone +tile.block_meteor_molten.name=Hot Meteorite Cobblestone +tile.block_meteor_treasure.name=Meteorite Treasure Block +tile.block_mox_fuel.name=Block of MOX Fuel +tile.block_neptunium.name=Block of Neptunium +tile.block_niter.name=Block of Niter +tile.block_niter_reinforced.name=Reinforced Block of Niter +tile.block_niobium.name=Block of Niobium +tile.block_plutonium.name=Block of Plutonium +tile.block_plutonium_fuel.name=Block of Plutonium Fuel +tile.block_polonium.name=Block of Polonium-210 +tile.block_polymer.name=Block of Polymer +tile.block_pu_mix.name=Block of Reactor Grade Plutonium +tile.block_pu238.name=Block of Plutonium-238 +tile.block_pu239.name=Block of Plutonium-239 +tile.block_pu240.name=Block of Plutonium-240 +tile.block_ra226.name=Block of Radium-226 +tile.block_red_copper.name=Block of Red Copper +tile.block_red_phosphorus.name=Block of Red Phosphorus +tile.block_reiium.name=Block of Reiium +tile.block_rubber.name=Block of Rubber +tile.block_schrabidate.name=Block of Ferric Schrabidate +tile.block_schrabidium.name=Block of Schrabidium +tile.block_schrabidium_cluster.name=Schrabidium Cluster +tile.block_schrabidium_fuel.name=Block of Schrabidium Fuel +tile.block_schraranium.name=Block of Schraranium +tile.block_scrap.name=Block of Scrap +tile.block_semtex.name=Block of Semtex +tile.block_slag.name=Block of Slag +tile.block_smore.name=Block of S'more +tile.block_solinium.name=Block of Solinium +tile.block_starmetal.name=§9Block of Starmetal§r +tile.block_steel.name=Block of Steel +tile.block_sulfur.name=Block of Sulfur +tile.block_tantalium.name=Block of Tantalium +tile.block_tcalloy.name=Block of Technetium Steel +tile.block_thorium.name=Block of Thorium-232 +tile.block_thorium_fuel.name=Block of Thorium Fuel +tile.block_titanium.name=Block of Titanium +tile.block_trinitite.name=Block of Trinitite +tile.block_tritium.name=Block of Tritium Cells +tile.block_tungsten.name=Block of Tungsten +tile.block_u233.name=Block of Uranium-233 +tile.block_u235.name=Block of Uranium-235 +tile.block_u238.name=Block of Uranium-238 +tile.block_unobtainium.name=Block of Unobtainium +tile.block_uranium.name=Block of Uranium +tile.block_uranium_fuel.name=Block of Uranium Fuel +tile.block_verticium.name=Block of Verticium +tile.block_waste.name=Block of Nuclear Waste +tile.block_waste_painted.name=Painted Block of Nuclear Waste +tile.block_waste_vitrified.name=Vitrified Block of Nuclear Waste +tile.block_weidanium.name=Block of Weidanium +tile.block_white_phosphorus.name=Block of White Phosphorus +tile.block_yellowcake.name=Block of Yellowcake +tile.block_zirconium.name=Block of Zirconium +tile.boat.name=Boat +tile.bobblehead.name=Bobblehead +tile.bomb_multi.name=Multi Purpose Bomb +tile.bomber.name=Crashed Bomber +tile.book_guide.name=Hbm's Nuclear Tech Mod Manual [LEGACY] +tile.boxcar.name=Boxcar +tile.brick_asbestos.name=Asbestos Bricks +tile.brick_asbestos_stairs.name=Asbestos Brick Stairs +tile.brick_compound.name=Compound Mesh +tile.brick_compound_stairs.name=Compound Mesh Stairs +tile.brick_concrete.name=Concrete Bricks +tile.brick_concrete_stairs.name=Concrete Brick Stairs +tile.brick_concrete_broken.name=Broken Concrete Bricks +tile.brick_concrete_broken_stairs.name=Broken Concrete Brick Stairs +tile.brick_concrete_cracked.name=Cracked Concrete Bricks +tile.brick_concrete_cracked_stairs.name=Cracked Concrete Brick Stairs +tile.brick_concrete_marked.name=Marked Concrete Bricks +tile.brick_concrete_mossy.name=Mossy Concrete Bricks +tile.brick_concrete_mossy_stairs.name=Mossy Concrete Brick Stairs +tile.brick_ducrete.name=Ducrete Bricks +tile.brick_ducrete_stairs.name=Ducrete Brick Stairs +tile.brick_dungeon.name=Berzelianite Bricks +tile.brick_dungeon_circle.name=Berzelianite Cirlce +tile.brick_dungeon_flat.name=Berzelianite Block +tile.brick_dungeon_tile.name=Berzelianite Tile +tile.brick_fire.name=Firebricks +tile.brick_fire_stairs.name=Firebrick Stairs +tile.brick_jungle.name=Enargite Bricks +tile.brick_jungle_circle.name=Mechanist's Circle +tile.brick_jungle_cracked.name=Cracked Enargite Bricks +tile.brick_jungle_fragile.name=Brittle Enargite Bricks +tile.brick_jungle_glyph.name=Enargite Glyph Bricks +tile.brick_jungle_lava.name=Magmatic Enargite Bricks +tile.brick_jungle_mystic.name=Arcane Enargite Bricks +tile.brick_jungle_ooze.name=Radioactive Enargite Bricks +tile.brick_jungle_trap.name=Trapped Enargite Bricks +tile.brick_light.name=Light Bricks +tile.brick_light_stairs.name=Light Bricks Stairs +tile.brick_obsidian.name=Obsidian Bricks +tile.brick_obsidian_stairs.name=Obsidian Brick Stairs +tile.brick_slab.brick_asbestos.name=Asbestos Brick Slab +tile.brick_slab.brick_compound.name=Compound Mesh Slab +tile.brick_slab.brick_fire.name=Firebrick Slab +tile.brick_slab.brick_light.name=Light Brick Slab +tile.brick_slab.brick_obsidian.name=Obsidian Brick Slab +tile.brick_slab.reinforced_brick.name=Reinforced Stone Slab +tile.brick_slab.reinforced_stone.name=Dense Stone Slab +tile.broadcaster_pc.name=Corrupted Broadcaster +tile.burning_earth.name=Burning Grass +tile.c4.name=C-4 +tile.cable_detector.name=Redstone Power Switch +tile.cable_diode.name=Red Copper Diode +tile.cable_switch.name=Power Switch +tile.capacitor_bus.name=Capacitor Bus +tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a straight line +tile.capacitor_copper.name=Copper Capacitor +tile.capacitor_gold.name=Golden Capacitor +tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor_tantalium.name=Tantalium Capacitor +tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus +tile.charge_c4.name=Demolition Charge +tile.charge_dynamite.name=Time Bomb +tile.charge_miner.name=Timed Mining Charge +tile.charge_semtex.name=Semtex Mining Charge +tile.charger.name=Charging Station +tile.cheater_virus.name=Gelid Euphemium +tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block +tile.chimney_brick.name=Smokestack +tile.chlorine_gas.name=Chlorine Gas +tile.cluster_aluminium.name=Aluminium Ore Cluster +tile.cluster_copper.name=Copper Ore Cluster +tile.cluster_depth_iron.name=Depth Iron Ore Cluster +tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster +tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster +tile.cluster_iron.name=Iron Ore Cluster +tile.cluster_titanium.name=Titanium Ore Cluster +tile.cm_block.alloy.name=Advanced Alloy Machine Casing +tile.cm_block.desh.name=Desh Machine Casing +tile.cm_block.steel.name=Steel Machine Casing +tile.cm_block.tcalloy.name=Technetium Steel Machine Casing +tile.cm_circuit.aluminium.name=Tier 1 Circuit Block +tile.cm_circuit.copper.name=Tier 2 Circuit Block +tile.cm_circuit.gold.name=Tier 4 Circuit Block +tile.cm_circuit.red_copper.name=Tier 3 Circuit Block +tile.cm_circuit.schrabidium.name=Tier 5 Circuit Block +tile.cm_engine.bismuth.name=Bismuth Motor Block +tile.cm_engine.desh.name=Desh Motor Block +tile.cm_engine.standard.name=Motor Block +tile.cm_port.alloy.name=Advanced Alloy Port +tile.cm_port.desh.name=Desh Port +tile.cm_port.steel.name=Steel Port +tile.cm_port.tcalloy.name=Technetium Steel Port +tile.cm_sheet.alloy.name=Advanced Alloy Sheet +tile.cm_sheet.desh.name=Desh Sheet +tile.cm_sheet.steel.name=Steel Sheet +tile.cm_sheet.tcalloy.name=Technetium Steel Sheet +tile.cm_tank.alloy.name=Advanced Alloy Tank +tile.cm_tank.desh.name=Desh Tank +tile.cm_tank.steel.name=Steel Tank +tile.cm_tank.tcalloy.name=Technetium Steel Tank +tile.cmb_brick.name=CMB Steel Tile +tile.cmb_brick_reinforced.name=Reinforced CMB Bricks +tile.compact_launcher.name=Compact Launch Pad +tile.concrete.name=Concrete Tile +tile.concrete_asbestos.name=Asbestos Concrete +tile.concrete_asbestos_stairs.name=Asbestos Concrete Stairs +tile.concrete_brick_slab.brick_concrete.name=Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_broken.name=Broken Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_cracked.name=Cracked Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_mossy.name=Mossy Concrete Brick Slab +tile.concrete_brick_slab.brick_ducrete.name=Ducrete Brick Slab +tile.concrete_colored.black.name=Black Concrete +tile.concrete_colored.blue.name=Blue Concrete +tile.concrete_colored.brown.name=Brown Concrete +tile.concrete_colored.cyan.name=Cyan Concrete +tile.concrete_colored.gray.name=Gray Concrete +tile.concrete_colored.green.name=Green Concrete +tile.concrete_colored.lightBlue.name=Light Blue Concrete +tile.concrete_colored.lime.name=Lime Concrete +tile.concrete_colored.magenta.name=Magenta Concrete +tile.concrete_colored.orange.name=Orange Concrete +tile.concrete_colored.pink.name=Pink Concrete +tile.concrete_colored.purple.name=Purple Concrete +tile.concrete_colored.red.name=Red Concrete +tile.concrete_colored.silver.name=Light Gray Concrete +tile.concrete_colored.white.name=White Concrete +tile.concrete_colored.yellow.name=Yellow Concrete +tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Hazard Stripe +tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Deep Indigo +tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrial Tinge +tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrial Stripe +tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Manly Pink +tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysterious Purple +tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar +tile.concrete_slab.concrete.name=Concrete Tile Slab +tile.concrete_slab.concrete_asbestos.name=Asbestos Concrete Slab +tile.concrete_slab.concrete_smooth.name=Concrete Slab +tile.concrete_slab.ducrete.name=Ducrete Tile Slab +tile.concrete_slab.ducrete_smooth.name=Ducrete Slab +tile.concrete_smooth.name=Concrete +tile.concrete_smooth_stairs.name=Concrete Stairs +tile.concrete_stairs.name=Concrete Tile Stairs +tile.concrete_super.name=Über Concrete +tile.concrete_super_broken.name=Moldy Debris +tile.conveyor.name=Conveyor Belt +tile.conveyor_chute.name=Conveyor Chute +tile.conveyor_double.name=Double-Lane Conveyor Belt +tile.conveyor_lift.name=Conveyor Chain Lift +tile.conveyor_triple.name=Triple-Lane Conveyor Belt +tile.corium_block.name=Corium +tile.crane_boxer.name=Conveyor Boxer + +tile.crane_extractor.name=Conveyor Ejector +tile.crane_grabber.name=Conveyor Grabber +tile.crane_inserter.name=Conveyor Inserter + +tile.crane_router.name=Conveyor Sorter +tile.crane_splitter.name=Conveyor Splitter +tile.crane_unboxer.name=Conveyor Unboxer +tile.crashed_bomb.name=Dud +tile.crate.name=Supply Crate +tile.crate_ammo.name=Starmetal Crate +tile.crate_can.name=Conserve Crate +tile.crate_desh.name=Desh Crate +tile.crate_iron.name=Iron Crate +tile.crate_jungle.name=Enargite Crate +tile.crate_lead.name=Hazmat Crate +tile.crate_metal.name=Machine Crate +tile.crate_red.name=Red Crate +tile.crate_steel.name=Steel Crate +tile.crate_template.name=Template Crate +tile.crate_tungsten.name=Tungsten Crate +tile.crate_weapon.name=Weapon Crate +tile.crystal_hardened.name=Hardened Dark Crystal +tile.crystal_pulsar.name=Pulsating Crystal +tile.crystal_virus.name=Dark Crystal +tile.deco_aluminium.name=Aluminium Deco Block +tile.deco_asbestos.name=Asbestos Roof +tile.deco_beryllium.name=Beryllium Deco Block +tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL +tile.deco_emitter.name=Deco Light Emitter +tile.part_emitter.name=Deco Particle Emitter +tile.piston_inserter.name=Inserter +tile.deco_lead.name=Lead Deco Block +tile.deco_rbmk.name=RBMK Deco Block +tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block +tile.deco_red_copper.name=Red Copper Deco Block +tile.deco_pipe.name=Steel Pipe +tile.deco_pipe_rusted.name=Rusty Steel Pipe +tile.deco_pipe_green.name=Green Steel Pipe +tile.deco_pipe_green_rusted.name=Rusty Green Steel Pipe +tile.deco_pipe_red.name=Red Steel Pipe +tile.deco_pipe_marked.name=Gas Pipe +tile.deco_pipe_framed.name=Steel Pipe (Framed) +tile.deco_pipe_framed_rusted.name=Rusty Steel Pipe (Framed) +tile.deco_pipe_framed_green.name=Green Steel Pipe (Framed) +tile.deco_pipe_framed_green_rusted.name=Rusty Green Steel Pipe (Framed) +tile.deco_pipe_framed_red.name=Red Steel Pipe (Framed) +tile.deco_pipe_framed_marked.name=Gas Pipe (Framed) +tile.deco_pipe_quad.name=Steel Pipes +tile.deco_pipe_quad_rusted.name=Rusty Steel Pipes +tile.deco_pipe_quad_green.name=Green Steel Pipes +tile.deco_pipe_quad_green_rusted.name=Rusty Green Steel Pipes +tile.deco_pipe_quad_red.name=Red Steel Pipes +tile.deco_pipe_quad_marked.name=Gas Pipes +tile.deco_pipe_rim.name=Steel Pipe (Rimmed) +tile.deco_pipe_rim_rusted.name=Rusty Steel Pipe (Rimmed) +tile.deco_pipe_rim_green.name=Green Steel Pipe (Rimmed) +tile.deco_pipe_rim_green_rusted.name=Rusty Green Steel Pipe (Rimmed) +tile.deco_pipe_rim_red.name=Red Steel Pipe (Rimmed) +tile.deco_pipe_rim_marked.name=Gas Pipe (Rimmed) +tile.deco_steel.name=Steel Deco Block +tile.deco_titanium.name=Titanium Deco Block +tile.deco_tungsten.name=Tungsten Deco Block +tile.decon.name=Player Decontaminator +tile.depth_brick.name=Depth Bricks +tile.depth_dnt.name=DNT-Reinforced Depth Bricks +tile.depth_nether_brick.name=Nether Depth Bricks +tile.depth_nether_tiles.name=Nether Depth Tiles +tile.depth_tiles.name=Depth Tiles +tile.det_charge.name=Explosive Charge +tile.det_cord.name=Det Cord +tile.det_miner.name=Mining Charge +tile.det_nuke.name=Nuclear Charge +tile.dfc_core.name=Dark Fusion Core +tile.dfc_emitter.name=DFC Emitter +tile.dfc_injector.name=DFC Fuel Injector +tile.dfc_receiver.name=DFC Receiver +tile.dfc_stabilizer.name=DFC Stabilizer +tile.dirt_dead.name=Dead Dirt +tile.dirt_oily.name=Oily Dirt +tile.drill_pipe.name=Drill Pipe +tile.door_bunker.name=Bunker Door +tile.door_metal.name=Metal Door +tile.door_office.name=Office Door +tile.ducrete.name=Ducrete Tile +tile.ducrete_stairs.name=Ducrete Tile Stairs +tile.ducrete_smooth.name=Ducrete +tile.ducrete_smooth_stairs.name=Ducrete Stairs +tile.dummy_block.name=Dummy Block +tile.dummy_port.name=Dummy Block (Electricity Port) +tile.dungeon_chain.name=Metal Chain +tile.dynamite.name=Dynamite +tile.emp_bomb.name=EMP Device +tile.factory_advanced_conductor.name=Advanced Factory Electricity Port +tile.factory_advanced_core.name=Advanced Factory Core Component +tile.factory_advanced_furnace.name=Advanced Factory Access Hatch +tile.factory_advanced_hull.name=Factory Block +tile.factory_titanium_conductor.name=Basic Factory Electricity Port +tile.factory_titanium_core.name=Basic Factory Core Component +tile.factory_titanium_furnace.name=Basic Factory Access Hatch +tile.factory_titanium_hull.name=Factory Block +tile.fallout.name=Fallout +tile.fan.name=Fan +tile.fence_metal.name=Chainlink Fence +tile.field_disturber.name=High Energy Field Jammer +tile.filing_cabinet.green.name=Dusty Filing Cabinet +tile.filing_cabinet.steel.name=Steel Filing Cabinet +tile.fire_digamma.name=Lingering Digamma +tile.fire_door.name=Fire Door +tile.fireworks.name=Firework Battery +tile.fireworks.charges=Charges Loaded: %s +tile.fireworks.message=Message: %s +tile.fireworks.color=Color: %s +tile.fissure_bomb.name=Fissure Bomb +tile.flame_war.name=Flame War in a Box +tile.float_bomb.name=Levitation Bomb +tile.fluid_duct.name=Universal Fluid Duct (Deprecated) +tile.fluid_duct_box.name=Universal Fluid Duct (Boxduct) +tile.fluid_duct_exhaust.name=Exhaust Pipe +tile.fluid_duct_gauge.name=Flow Gauge Pipe +tile.fluid_duct_gauge.desc=Pipe that displays how much fluid$moves within the network per tick.$Split networks connected by barrels$or tanks are considered as one shared network. +tile.fluid_duct_neo.name=Universal Fluid Duct +tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct +tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated) +tile.fluid_switch.name=Redstone Fluid Valve +tile.fluid_valve.name=Fluid Valve +tile.foam_layer.name=Foam layer +tile.foundry_basin.name=Foundry Basin +tile.foundry_channel.name=Foundry Channel +tile.foundry_tank.name=Foundry Storage Basin +tile.foundry_mold.name=Shallow Foundry Basin +tile.foundry_outlet.name=Foundry Outlet +tile.foundry_slagtap.name=Foundry Slag Outlet +tile.fraction_spacer.name=Fractioning Tower Separator +tile.frozen_dirt.name=Frozen Dirt +tile.frozen_grass.name=Frozen Grass +tile.frozen_log.name=Frozen Log +tile.frozen_planks.name=Frozen Planks +tile.furnace_combination.name=Combination Oven +tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t +tile.furnace_iron.name=Iron Furnace +tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. +tile.furnace_steel.name=Steel Furnace +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) +tile.fusion_center.name=Central Magnet Piece +tile.fusion_conductor.name=Superconducting Magnet +tile.fusion_conductor_welded.name=Superconducting Magnet (Welded) +tile.fusion_core.name=Fusion Reactor Control +tile.fusion_hatch.name=Duct Deco Block +tile.fusion_heater.name=Plasma Heater Component +tile.fusion_motor.name=Magnet Motor Piece +tile.fwatz_computer.name=Fusionary Watz Reactor Calculation Matrix +tile.fwatz_conductor.name=4000K Superconducting Magnet +tile.fwatz_cooler.name=Regenerative Coolant Fluid Tank Shell +tile.fwatz_core.name=Fusionary Watz Reactor Control +tile.fwatz_hatch.name=Fusionary Watz Plant Access Hatch +tile.fwatz_plasma.name=Destabilized Antischrabidium Plasma +tile.fwatz_scaffold.name=Fusionary Watz Plant Structural Support +tile.fwatz_tank.name=Regenerative Coolant Fluid Tank +tile.gas_asbestos.name=Airborne Asbestos Particles +tile.gas_coal.name=Airborne Coal Dust +tile.gas_duct.name=Gas Pipe +tile.gas_duct_solid.name=Coated Gas Pipe +tile.gas_explosive.name=Explosive Gas +tile.gas_flammable.name=Flammable Gas +tile.gas_meltdown.name=Meltdown Gas +tile.gas_monoxide.name=Carbon Monoxide +tile.gas_radon.name=Radon Gas +tile.gas_radon_dense.name=Dense Radon Gas +tile.gas_radon_tomb.name=Tomb Gas +tile.geiger.name=Geiger Counter +tile.glass_ash.name=Ash Glass +tile.glass_boron.name=Boron Glass +tile.glass_lead.name=Lead Glass +tile.glass_polonium.name=Polonium Glass +tile.glass_quartz.name=Quartz Glass +tile.glass_trinitite.name=Trinity Glass +tile.glass_uranium.name=Uranium Glass +tile.glyphid_base.name=Glyphid Hive Block +tile.glyphid_spawner.name=Glyphid Hive Spawner +tile.gneiss_brick.name=Schist Brick +tile.gneiss_chiseled.name=Chiseled Schist +tile.gneiss_tile.name=Schist Tile +tile.gravel_diamond.name=Diamond Gravel +tile.gravel_obsidian.name=Crushed Obsidian +tile.hadron_access.name=Particle Accelerator Access Terminal +tile.hadron_analysis.name=Particle Accelerator Analysis Chamber Wall +tile.hadron_analysis_glass.name=Particle Accelerator Analysis Chamber Window +tile.hadron_coil_alloy.name=Dense Superconducting Coil +tile.hadron_coil_chlorophyte.name=Dense Chlorophyte Coil +tile.hadron_coil_gold.name=Dense Gold Coil +tile.hadron_coil_magtung.name=Dense 4000K Superconductor Coil +tile.hadron_coil_mese.name=Dense Mese Coil +tile.hadron_coil_neodymium.name=Dense Neodymium Coil +tile.hadron_coil_schrabidate.name=Dense Schrabidate Coil +tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil +tile.hadron_coil_starmetal.name=Dense Starmetal Coil +tile.hadron_cooler.name=Particle Accelerator Cooling Unit +tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% +tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special +tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% +tile.hadron_core.name=Particle Accelerator Core Component +tile.hadron_diode.name=Schottky Particle Diode +tile.hadron_plating.name=Particle Accelerator Plating +tile.hadron_plating_black.name=Particle Accelerator Plating (Black) +tile.hadron_plating_blue.name=Particle Accelerator Plating (Blue) +tile.hadron_plating_glass.name=Particle Accelerator Plating (Window) +tile.hadron_plating_striped.name=Particle Accelerator Plating (Cool Hazard Stripes) +tile.hadron_plating_voltz.name=Particle Accelerator Plating (VOLTZ) +tile.hadron_plating_yellow.name=Particle Accelerator Plating (YelloDye) +tile.hadron_power.name=Particle Accelerator Power Plug (1MHE) +tile.hadron_power_10m.name=Particle Accelerator Power Plug (10MHE) +tile.hadron_power_100m.name=Particle Accelerator Power Plug (100MHE) +tile.hadron_power_1g.name=Particle Accelerator Power Plug (1GHE) +tile.hadron_power_10g.name=Particle Accelerator Power Plug (10GHE) +tile.hazmat.name=Hazmat Cloth Block +tile.heater_electric.name=Electric Heater +tile.heater_electric.desc=Uses energy to produce heat.$Accepts heat from the bottom with 85%% efficiency.$Can be configured with a screwdriver. +tile.heater_firebox.name=Firebox +tile.heater_firebox.desc=Burns solid fuel to produce heat. +tile.heater_heatex.name=Heat Exchanging Heater +tile.heater_heatex.desc=Produces heat from hot fluids. +tile.heater_oilburner.name=Fluid Burner +tile.heater_oilburner.desc=Burns fluids to produce heat.$Can be configured with a screwdriver. +tile.heater_oven.name=Heating Oven +tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency. +tile.hev_battery.name=Suit Battery +tile.impact_dirt.name=Scorched Dirt +tile.iter.name=Fusion Reactor +tile.ladder_aluminium.name=Aluminium Ladder +tile.ladder_cobalt.name=Cobalt Ladder +tile.ladder_copper.name=Copper Ladder +tile.ladder_gold.name=Golden Ladder +tile.ladder_iron.name=Iron Ladder +tile.ladder_lead.name=Lead Ladder +tile.ladder_steel.name=Steel Ladder +tile.ladder_sturdy.name=Sturdy Wooden Ladder +tile.ladder_titanium.name=Titanium Ladder +tile.ladder_tungsten.name=Tungsten Ladder +tile.lamp_demon.name=Demon Core Lamp +tile.lamp_tritium_blue_off.name=Blue Tritium Lamp +tile.lamp_tritium_blue_on.name=Blue Tritium Lamp +tile.lamp_tritium_green_off.name=Green Tritium Lamp +tile.lamp_tritium_green_on.name=Green Tritium Lamp +tile.launch_pad.name=Missile Launch Pad +tile.launch_table.name=Large Launch Pad +tile.leaves_layer.name=Fallen Leaves +tile.lox_barrel.name=LOX Barrel +tile.machine_amgen.name=Ambience Radiation Generator +tile.machine_arc_furnace_off.name=Arc Furnace +tile.machine_arc_furnace_on.name=Arc Furnace +tile.machine_armor_table.name=Armor Modification Table +tile.machine_assembler.name=Assembly Machine +tile.machine_assemfac.name=Assembly Factory +tile.machine_autocrafter.name=Automatic Crafting Table +tile.machine_autosaw.name=Automatic Buzz Saw +tile.machine_bat9000.name=Big-Ass Tank 9000 +tile.machine_battery.name=Energy Storage Block +tile.machine_battery_potato.name=Potato Battery Block +tile.machine_boiler.name=Boiler +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t +tile.machine_boiler_electric_off.name=Electric Oil Heater +tile.machine_boiler_electric_on.name=Electric Oil Heater +tile.machine_boiler_off.name=Oil Heater +tile.machine_boiler_on.name=Oil Heater +tile.machine_catalytic_cracker.name=Catalytic Cracking Tower +tile.machine_catalytic_reformer.name=Catalytic Reformer +tile.machine_centrifuge.name=Centrifuge +tile.machine_chemfac.name=Chemical Factory +tile.machine_chemplant.name=Chemical Plant +tile.machine_chungus.name=Leviathan Steam Turbine +tile.machine_chungus.desc=Efficiency: 85%% +tile.machine_coal_off.name=Combustion Generator +tile.machine_coal_on.name=Combustion Generator +tile.machine_coker.name=Coker Unit +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t +tile.machine_combine_factory.name=CMB Steel Furnace +tile.machine_combustion_engine.name=Industrial Combustion Engine +tile.machine_compressor.name=Compressor +tile.machine_condenser.name=Steam Condenser +tile.machine_controller.name=Reactor Remote Control Block +tile.machine_converter_he_rf.name=HE to RF Converter +tile.machine_converter_rf_he.name=RF to HE Converter +tile.machine_crucible.name=Crucible +tile.machine_crystallizer.name=Ore Acidizer +tile.machine_cyclotron.name=Cyclotron +tile.machine_detector.name=Power Detector +tile.machine_deuterium_extractor.name=Deuterium Extractor +tile.machine_deuterium_tower.name=Deuterium Extraction Tower +tile.machine_diesel.name=Diesel Generator +tile.machine_difurnace_extension.name=Blast Furnace Extension +tile.machine_difurnace_off.name=Blast Furnace +tile.machine_difurnace_on.name=Blast Furnace +tile.machine_difurnace_rtg_off.name=Nuclear Blast Furnace +tile.machine_difurnace_rtg_on.name=Nuclear Blast Furnace +tile.machine_dineutronium_battery.name=Spark Energy Storage Block +tile.machine_drill.name=Automatic Mining Drill +tile.machine_electric_furnace_off.name=Electric Furnace +tile.machine_electric_furnace_on.name=Electric Furnace +tile.machine_electrolyser.name=Electrolysis Machine +tile.machine_epress.name=Electric Press +tile.machine_excavator.name=Large Mining Drill +tile.machine_fel.name=FEL +tile.machine_fensu.name=FEnSU +tile.machine_flare.name=Flare Stack +tile.machine_fluidtank.name=Tank +tile.machine_forcefield.name=Forcefield Emitter +tile.machine_fraction_tower.name=Fractioning Tower +tile.machine_fracking_tower.name=Hydraulic Fracking Tower +tile.machine_gascent.name=Gas Centrifuge +tile.machine_generator.name=Nuclear Reactor (Old) +tile.machine_geo.name=Geothermal Electric Generator +tile.machine_hephaestus.name=Geothermal Heat Exchanger +tile.machine_industrial_boiler.name=Industrial Boiler +tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode +tile.machine_industrial_generator.name=Industrial Generator +tile.machine_keyforge.name=Locksmith Table +tile.machine_large_turbine.name=Industrial Steam Turbine +tile.machine_large_turbine.desc=Efficiency: 100%% +tile.machine_liquefactor.name=Industrial Liquefaction Machine +tile.machine_liquefactor.desc=Powerful universal machine to turn items into fluids.$Comes with versatile catalytic components, heating elements$and a built-in hydrator for petrochemical liquefaction. +tile.machine_lithium_battery.name=Li-Ion Energy Storage Block +tile.machine_microwave.name=Microwave +tile.machine_mining_laser.name=Mining Laser +tile.machine_minirtg.name=Radio Isotope Cell +tile.machine_missile_assembly.name=Missile Assembly Station +tile.machine_mixer.name=Industrial Mixer +tile.machine_nuke_furnace_off.name=Nuclear Furnace +tile.machine_nuke_furnace_on.name=Nuclear Furnace +tile.machine_orbus.name=Heavy Magnetic Storage Tank +tile.machine_powerrtg.name=PT Isotope Cell +tile.machine_press.name=Burner Press +tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank +tile.machine_pumpjack.name=Pumpjack +tile.machine_radar.name=Radar +tile.machine_radgen.name=Radiation-Powered Engine +tile.machine_radiolysis.name=Radioisotope Thermoelectric Generator and Radiolysis Chamber +tile.machine_reactor.name=Breeding Reactor +tile.machine_reactor_small.name=Research Reactor +tile.machine_refinery.name=Oil Refinery +tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) +tile.machine_rtg_blue.name=Convection Generator +tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) +tile.machine_rtg_furnace_off.name=RTG Furnace +tile.machine_rtg_furnace_on.name=RTG Furnace +tile.machine_rtg_green.name=Verticium Wealth Generator +tile.machine_rtg_grey.name=RT Generator +tile.machine_rtg_orange.name=Strong RT Generator +tile.machine_rtg_purple.name=Antimatter Annihilation Generator +tile.machine_rtg_red.name=Fulmination Generator +tile.machine_rtg_yellow.name=Australium Superfuel Reactor +tile.machine_satlinker.name=Satellite ID Manager +tile.machine_sawmill.name=Stirling Sawmill +tile.machine_sawmill.desc=Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Min intake: 100 TU/t, Max intake: 300 TU/t +tile.machine_schrabidium_battery.name=Schrabidium Energy Storage Block +tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device +tile.machine_selenium.name=Radial Performance Engine +tile.machine_shredder.name=Shredder +tile.machine_silex.name=Laser Isotope Separation Chamber (SILEX) +tile.machine_siren.name=Siren +tile.machine_solar_boiler.name=Solar Tower Boiler +tile.machine_solidifier.name=Industrial Solidification Machine +tile.machine_solidifier.desc=A universal machine fitted with cooling systems and other$versatile tools for turning fluids solid using various$processes such as freezing and petrochemical polymerization. +tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom) +tile.machine_spp_top.name=ZPE Potential Generator (Top) +tile.machine_steam_engine.name=Steam Engine +tile.machine_steam_engine.desc=Efficiency: 85%% +tile.machine_stirling.name=Stirling Engine +tile.machine_stirling.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Max intake: 300 TU/t$Efficiency: 50%% +tile.machine_stirling_steel.name=Heavy Stirling Engine +tile.machine_stirling_steel.desc=Turns heat into energy. Requires external heat source.$Uses a much heavier gear to support higher temperatures.$Heat transfer rate: T*0.1 TU/t$Max intake: 1500 TU/t$Efficiency: 50%% +tile.machine_storage_drum.name=Nuclear Waste Disposal Drum +tile.machine_telelinker.name=Turret Telemetry Linker +tile.machine_teleporter.name=Teleporter +tile.machine_tower_large.name=Cooling Tower +tile.machine_tower_small.name=Auxiliary Cooling Tower +tile.machine_transformer.name=10k-20Hz Transformer +tile.machine_transformer_20.name=10k-1Hz Transformer +tile.machine_transformer_dnt.name=DNT-20Hz Transformer +tile.machine_transformer_dnt_20.name=DNT-1Hz Transformer +tile.machine_turbine.name=Steam Turbine +tile.machine_turbine.desc=Efficiency: 85%% +tile.machine_turbinegas.name=Combined Cycle Gas Turbine +tile.machine_turbofan.name=Turbofan +tile.machine_uf6_tank.name=Uranium Hexafluoride Tank +tile.machine_vacuum_distill.name=Vacuum Refinery +tile.machine_waste_drum.name=Spent Fuel Pool Drum +tile.machine_well.name=Oil Derrick +tile.machine_zirnox.name=ZIRNOX Nuclear Reactor +tile.marker_structure.name=Multiblock Structure Marker +tile.mass_storage.name=Mass Storage Unit +tile.meteor_battery.name=Starmetal Static Electricity Generator +tile.meteor_brick.name=Meteor Bricks +tile.meteor_brick_chiseled.name=Chiseled Meteor Bricks +tile.meteor_brick_cracked.name=Cracked Meteor Bricks +tile.meteor_brick_mossy.name=Mossy Meteor Bricks +tile.meteor_pillar.name=Meteor Pillar +tile.meteor_polished.name=Polished Meteor Block +tile.meteor_spawner.name=Cyber Crab Assembler +tile.mine_ap.name=Anti-Personell Mine +tile.mine_fat.name=Fat Mine +tile.mine_he.name=Anti-Tank Mine +tile.mine_shrap.name=Shrapnel Mine +tile.moon_turf.name=Moon Turf +tile.mud_block.name=Poisonous Mud +tile.muffler.name=Muffler +tile.mush.name=Glowing Mushroom +tile.ntm_dirt.name=Dirt +tile.nuke_boy.name=Little Boy +tile.nuke_custom.name=Custom Nuke +tile.nuke_fleija.name=F.L.E.I.J.A. +tile.nuke_fstbmb.name=Balefire Bomb +tile.nuke_gadget.name=The Gadget +tile.nuke_man.name=Fat Man +tile.nuke_mike.name=Ivy Mike +tile.nuke_n2.name=N² Mine +tile.nuke_n45.name=N45 Naval Mine +tile.nuke_prototype.name=The Prototype +tile.nuke_solinium.name=The Blue Rinse +tile.nuke_tsar.name=Tsar Bomba +tile.oil_duct.name=Oil Pipe +tile.oil_duct_solid.name=Coated Oil Pipe +tile.oil_pipe.name=Crude Oil Extraction Pipe +tile.ore_alexandrite.name=Alexandrite Ore +tile.ore_aluminium.name=Aluminium Ore +tile.ore_asbestos.name=Asbestos Ore +tile.ore_australium.name=Australian Ore +tile.ore_bedrock.name=Bedrock Ore +tile.ore_bedrock_coltan.name=Bedrock Coltan Ore +tile.ore_bedrock_oil.name=Bedrock Oil Deposit +tile.ore_beryllium.name=Beryllium Ore +tile.ore_cinnebar.name=Cinnabar Ore +tile.ore_coal_oil.name=Oily Coal Ore +tile.ore_coal_oil_burning.name=Burning Oily Coal Ore +tile.ore_cobalt.name=Cobalt Ore +tile.ore_coltan.name=Coltan Ore +tile.ore_copper.name=Copper Ore +tile.ore_daffergon.name=Dellite +tile.ore_depth_borax.name=Depth Borax Ore +tile.ore_depth_cinnebar.name=Depth Cinnabar Ore +tile.ore_depth_nether_neodymium.name=Nether Depth Neodymium Ore +tile.ore_depth_zirconium.name=Depth Zirconium Ore +tile.ore_fluorite.name=Fluorite Ore +tile.ore_gneiss_asbestos.name=Schist Asbestos Ore +tile.ore_gneiss_copper.name=Schist Copper Ore +tile.ore_gneiss_gas.name=Gas Shale +tile.ore_gneiss_gold.name=Schist Gold Ore +tile.ore_gneiss_iron.name=Schist Iron Ore +tile.ore_gneiss_lithium.name=Schist Lithium Ore +tile.ore_gneiss_rare.name=Schist Rare Earth Ore +tile.ore_gneiss_schrabidium.name=Schist Schrabidium Ore +tile.ore_gneiss_uranium.name=Schist Uranium Ore +tile.ore_gneiss_uranium_scorched.name=Scorched Schist Uranium Ore +tile.ore_lead.name=Lead Ore +tile.ore_lignite.name=Lignite Ore +tile.ore_meteor_aluminium.name=Meteor Aluminium Ore +tile.ore_meteor_copper.name=Meteor Copper Ore +tile.ore_meteor_lead.name=Meteor Lead Ore +tile.ore_meteor_lithium.name=Meteor Lithium Ore +tile.ore_meteor_starmetal.name=Starmetal Ore +tile.ore_meteor_sulfur.name=Meteor Sulfur Ore +tile.ore_meteor_thorium.name=Meteor Thorium Ore +tile.ore_meteor_titanium.name=Meteor Titanium Ore +tile.ore_meteor_tungsten.name=Meteor Tungsten Ore +tile.ore_meteor_uranium.name=Meteor Uranium Ore +tile.ore_nether_coal.name=Burning Nether Coal Ore +tile.ore_nether_cobalt.name=Nether Cobalt Ore +tile.ore_nether_fire.name=Nether Phosphorus Ore +tile.ore_nether_plutonium.name=Nether Plutonium Ore +tile.ore_nether_schrabidium.name=Nether Schrabidium Ore +tile.ore_nether_smoldering.name=Smoldering Netherrack +tile.ore_nether_sulfur.name=Nether Sulfur Ore +tile.ore_nether_tungsten.name=Nether Tungsten Ore +tile.ore_nether_uranium.name=Nether Uranium Ore +tile.ore_nether_uranium_scorched.name=Scorched Nether Uranium Ore +tile.ore_niter.name=Niter Ore +tile.ore_oil.name=Oil Deposit +tile.ore_oil_empty.name=Empty Oil Deposit +tile.ore_oil_sand.name=Tar Sand +tile.ore_random.name=%s Ore +tile.ore_rare.name=Rare Earth Ore +tile.ore_reiium.name=Reiite +tile.ore_schrabidium.name=Schrabidium Ore +tile.ore_sulfur.name=Sulfur Ore +tile.ore_tektite_osmiridium.name=Osmiridium-Infused Tektite +tile.ore_thorium.name=Thorium Ore +tile.ore_tikite.name=Trixite +tile.ore_titanium.name=Titanium Ore +tile.ore_tungsten.name=Tungsten Ore +tile.ore_unobtainium.name=Brightblende Ore +tile.ore_uranium.name=Uranium Ore +tile.ore_uranium_scorched.name=Scorched Uranium Ore +tile.ore_verticium.name=Dollar Green Mineral +tile.ore_volcano.name=Geothermal Vent +tile.ore_weidanium.name=Weidite +tile.pink_barrel.name=Kerosene Barrel +tile.pink_log.name=Pink Log +tile.pink_planks.name=Pink Wood Planks +tile.pink_slab.name=Pink Wood Slab +tile.pink_stairs.name=Pink Wood Stairs +tile.plant_dead.name=Dead Plant +tile.plant_flower.cd0.name=Mustard Willow +tile.plant_flower.cd1.name=Mustard Willow +tile.plant_flower.foxglove.name=Foxglove +tile.plant_flower.nightshade.name=Deadly Nightshade +tile.plant_flower.tobacco.name=Tobacco Plant +tile.plant_flower.weed.name=Hemp +tile.plant_reeds.name=Reeds +tile.plant_tall.cd2.name=Mustard Willow +tile.plant_tall.cd3.name=Mustard Willow +tile.plant_tall.cd4.name=Mustard Willow (Mature) +tile.plant_tall.weed.name=Hemp +tile.plasma.name=Plasma +tile.plasma_heater.name=Plasma Heater +tile.pole_satellite_receiver.name=Satellite Dish +tile.pole_top.name=Antenna Top +tile.press_preheater.name=Burner Press Preheater +tile.pribris.name=RBMK Debris +tile.pribris_burning.name=Flaming RBMK Debris +tile.pribris_digamma.name=Blackened RBMK Debris +tile.pribris_radiating.name=Smoldering RBMK Debris +tile.radio_torch_counter.name=Redstone-over-Radio Item Counter +tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items +tile.radio_torch_receiver.name=Redstone-over-Radio Receiver +tile.radio_torch_receiver.desc=Placable on flat surfaces or comparator-compatible blocks +tile.radio_torch_sender.name=Redstone-over-Radio Transmitter +tile.radio_torch_sender.desc=Placable on flat surfaces or comparator-compatible blocks$Reads redstone signals or comparator input +tile.radiobox.name=Rosenberg Pest Control Box +tile.radiorec.name=FM Radio +tile.rail_booster.name=High Speed Booster Rail +tile.rail_highspeed.name=High Speed Rail +tile.rail_narrow.name=Narrow Gauge Cart Rail +tile.rail_wood.name=Wooden Tracks +tile.rbmk_absorber.name=RBMK Boron Neutron Absorber +tile.rbmk_blank.name=RBMK Structural Column +tile.rbmk_boiler.name=RBMK Steam Channel +tile.rbmk_console.name=RBMK Console +tile.rbmk_cooler.name=RBMK Cooler +tile.rbmk_control.name=RBMK Control Rods +tile.rbmk_control_auto.name=RBMK Automatic Control Rods +tile.rbmk_control_mod.name=RBMK Moderated Control Rods +tile.rbmk_crane_console.name=RBMK Crane Console +tile.rbmk_heater.name=RBMK Fluid Heater +tile.rbmk_heatex.name=RBMK Heat Exchanger +tile.rbmk_loader.name=RBMK Steam Connector +tile.rbmk_moderator.name=RBMK Graphite Moderator +tile.rbmk_outgasser.name=RBMK Irradiation Channel +tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector +tile.rbmk_rod.name=RBMK Fuel Rod +tile.rbmk_rod_mod.name=RBMK Moderated Fuel Rod +tile.rbmk_rod_reasim.name=RBMK Fuel Rod (ReaSim) +tile.rbmk_rod_reasim_mod.name=RBMK Moderated Fuel Rod (ReaSim) +tile.rbmk_steam_inlet.name=RBMK ReaSim Water Inlet +tile.rbmk_steam_outlet.name=RBMK ReaSim Steam Outlet +tile.rbmk_storage.name=RBMK Storage Column +tile.reactor_computer.name=Reactor Control +tile.reactor_conductor.name=Reactor Boiler +tile.reactor_control.name=Control Rods +tile.reactor_ejector.name=Reactor Waste Ejector +tile.reactor_element.name=Reactor Chamber +tile.reactor_hatch.name=Reactor Access Hatch +tile.reactor_inserter.name=Reactor Fuel Inserter +tile.red_barrel.name=Explosive Barrel +tile.red_cable.name=Red Copper Cable +tile.red_cable_classic.name=Red Copper Cable (Classic) +tile.red_cable_paintable.name=Paintable Red Copper Cable +tile.red_connector.name=Electricity Connector +tile.red_pylon.name=Electricity Pole +tile.red_pylon_large.name=Large Electricity Pylon +tile.red_wire_coated.name=Coated Red Copper Cable +tile.reinforced_brick.name=Reinforced Stone +tile.reinforced_brick_stairs.name=Reinforced Stone Stairs +tile.reinforced_ducrete.name=Reinforced Ducrete +tile.reinforced_glass.name=Reinforced Glass +tile.reinforced_glass_pane.name=Reinforced Glass Pane +tile.reinforced_lamp_off.name=Reinforced Lamp +tile.reinforced_lamp_on.name=Reinforced Lamp +tile.reinforced_light.name=Reinforced Glowstone +tile.reinforced_sand.name=Reinforced Sandstone +tile.reinforced_stone.name=Dense Stone +tile.reinforced_stone_stairs.name=Dense Stone Stairs +tile.reinforced_laminate.name=Reinforced Laminate +tile.reinforced_laminate_pane.name=Reinforced Laminate Pane +tile.rejuvinator.name=Rejuvination Device +tile.residue.name=Cloud Residue +tile.safe.name=Safe +tile.sand_boron.name=Boron Sand +tile.sand_boron_layer.name=Boron Sand Layer +tile.sand_dirty.name=Oily Sand +tile.sand_dirty_red.name=Red Oily Sand +tile.sand_gold.name=Gold Sand +tile.sand_gold198.name=Gold-198 Sand +tile.sand_lead.name=Lead Sand +tile.sand_polonium.name=Polonium Sand +tile.sand_quartz.name=Quartz Sand +tile.sand_uranium.name=Uranium Sand +tile.sat_dock.name=Cargo Landing Pad +tile.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion (Deco Block) +tile.sat_laser.name=Orbital Death Ray (Deco Block) +tile.sat_mapper.name=Surface Mapping Satellite (Deco Block) +tile.sat_radar.name=Radar Survey Satellite (Deco Block) +tile.sat_resonator.name=Xenium Resonator Satellite (Deco Block) +tile.sat_scanner.name=Satellite with Depth-Resource Scanning Module (Deco Block) +tile.schrabidic_block.name=Schrabidic Acid +tile.seal_controller.name=Silo Hatch Opener +tile.seal_frame.name=Silo Hatch Frame +tile.seal_hatch.name=Silo Hatch +tile.sellafield.0.name=Sellafite +tile.sellafield.1.name=Hot Sellafite +tile.sellafield.2.name=Boiling Sellafite +tile.sellafield.3.name=Blazing Sellafite +tile.sellafield.4.name=Infernal Sellafite +tile.sellafield.5.name=Sellafite-Corium +tile.sellafield_slaked.name=Slaked Sellafite +tile.semtex.name=Semtex +tile.sliding_blast_door.name=Sliding Blast Door +tile.solar_mirror.name=Heliostat Mirror +tile.soyuz_capsule.name=Cargo Landing Capsule +tile.soyuz_launcher.name=Soyuz Launch Platform +tile.spikes.name=Spikes +tile.stalactite.asbestos.name=Asbestos Stalactite +tile.stalactite.sulfur.name=Sulfurous Stalactite +tile.stalagmite.asbestos.name=Asbestos Stalagmite +tile.stalagmite.sulfur.name=Sulfurous Stalagmite +tile.steel_beam.name=Steel Beam +tile.steel_corner.name=Steel Wall Corner +tile.steel_grate.name=Steel Grate +tile.steel_grate_wide.name=Item Grate +tile.steel_grate_wide.desc=Lets dropped items and XP fall through +tile.steel_poles.name=Steel Pole +tile.steel_roof.name=Flat Steel Roof +tile.steel_scaffold.name=Steel Scaffold +tile.steel_wall.name=Steel Wall +tile.stone_cracked.name=Cracked Stone +tile.stone_depth.name=Depth Rock +tile.stone_depth_nether.name=Nether Depth Rock +tile.stone_gneiss.name=Graphitic Schist +tile.stone_porous.name=Porous Stone +tile.stone_resource.asbestos.name=Chrysotile +tile.stone_resource.bauxite.name=Bauxite +tile.stone_resource.hematite.name=Hematite +tile.stone_resource.limestone.name=Limestone +tile.stone_resource.malachite.name=Malachite +tile.stone_resource.sulfur.name=Sulfurous Stone +tile.struct_iter_core.name=Fusion Reactor Core Component +tile.struct_launcher.name=Launch Pad Component Block +tile.struct_launcher_core.name=Compact Launcher Core Component +tile.struct_launcher_core_large.name=Launch Table Core Component +tile.struct_plasma_core.name=Plasma Heater Core Component +tile.struct_scaffold.name=Launch Pad Scaffold Block +tile.struct_soyuz_core.name=Soyuz Launcher Core Component +tile.struct_watz_core.name=Watz Powerplant Core Component +tile.substation.name=Substation +tile.sulfuric_acid_block.name=Sulfuric Acid +tile.taint.name=Taint +tile.taint_barrel.name=IMP Residue Barrel +tile.tape_recorder.name=Tape Recorder +tile.tektite.name=Tektite +tile.teleanchor.name=Teleportation Anchor +tile.tesla.name=Tesla Coil +tile.test_nuke.name=Test Nuke +tile.therm_endo.name=Endothermic Bomb +tile.therm_exo.name=Exothermic Bomb +tile.tile_lab.name=Laboratory Tiles +tile.tile_lab_broken.name=Broken Laboratory Tiles +tile.tile_lab_cracked.name=Cracked Laboratory Tiles +tile.tnt_ntm.name=Actual TNT +tile.toxic_block.name=Stereotypical Green Ooze +tile.transition_seal.name=Transition Seal +tile.turret_arty.name=Artillery Turret "Greg" +tile.turret_cheapo.name=Cheapo Gatling Sentry +tile.turret_chekhov.name=Heavy Machine Gun Turret "Chekhov's Gun" +tile.turret_cwis.name=Phalanx Mk-15 CIWS +tile.turret_flamer.name=Flamethrower Turret +tile.turret_friendly.name=Chaingun Turret "Mister Friendly" +tile.turret_fritz.name=Heavy Flamethrower Turret "Fritz" +tile.turret_heavy.name=Heavy Machine Gun Turret +tile.turret_himars.name=Rocket Artillery Turret "Henry" +tile.turret_howard.name=Goalkeeper Twin Chaingun CIWS "Howard" +tile.turret_howard_damaged.name=Goalkeeper Twin Chaingun CIWS "Methusalem" +tile.turret_jeremy.name=Autocannon Turret "Jeremy" +tile.turret_light.name=Light Machine Gun Turret +tile.turret_maxwell.name=High-Energy MASER Turret "Maxwell" +tile.turret_rocket.name=Rocket Turret +tile.turret_richard.name=Rocket Launcher Turret "Richard" +tile.turret_spitfire.name=Turret I have no name for right now [WIP] +tile.turret_sentry.name=Sentry Turret "Brown" +tile.turret_tau.name=Tauon Turret +tile.turret_tauon.name=XVL1456 Prototype Turret "Tauon" +tile.vacuum.name=Vacuum +tile.vault_door.name=Vault-Tec Blast Door +tile.vent_chlorine.name=Chlorine Vent +tile.vent_chlorine_seal.name=Chlorine Seal +tile.vent_cloud.name=Cloud Vent +tile.vent_pink_cloud.name=Pink Cloud Vent +tile.vinyl_tile.large.name=Large Vinyl Tile +tile.vinyl_tile.small.name=Small Vinyl Tiles +tile.vitrified_barrel.name=Vitrified Nuclear Waste Drum +tile.volcanic_lava_block.name=Volcanic Lava +tile.volcano_core.name=Volcano Core +tile.waste_earth.name=Dead Grass +tile.waste_leaves.name=Dead Leaves +tile.waste_log.name=Charred Log +tile.waste_mycelium.name=Glowing Mycelium +tile.waste_planks.name=Charred Wooden Planks +tile.waste_trinitite.name=Trinitite Ore +tile.waste_trinitite_red.name=Red Trinitite Ore +tile.watz.name=Watz Powerplant +tile.watz_conductor.name=Watz Electricity Port +tile.watz_control.name=Reinforced Control Rods +tile.watz_cooler.name=Watz Reactor Supercooler +tile.watz_core.name=Watz Reactor Control +tile.watz_element.name=Watz Reaction Chamber +tile.watz_end.name=Watz Reactor Stability Element +tile.watz_end_bolted.name=Watz Reactor Stability Element (Riveted) +tile.watz_hatch.name=Watz Reactor Access Hatch +tile.watz_pump.name=Watz Pressure Pump +tile.yellow_barrel.name=Radioactive Barrel +tile.zirnox_destroyed.name=Destroyed ZINROX + +trait.asbestos=Asbestos +trait.blinding=Blinding +trait.coal=Coal Dust +trait.digamma=Digamma Radiation +trait.drop=Dangerous Drop +trait.explosive=Flammable / Explosive +trait.furnace=Worth %s operations in nuclear furnace +trait.heat=Provides %s HEAT +trait.hlParticle=Particle Half-Life: %s +trait.hlPlayer=Player Half-Life: %s +trait.hot=Pyrophoric / Hot +trait.hydro=Hydroreactive +trait.radioactive=Radioactive +trait.radResistance=Radiation resistance: %s + +trait.rbmk.coreTemp=Core temp: %s +trait.rbmk.depletion=Depletion: %s +trait.rbmk.diffusion=Diffusion: %s +trait.rbmk.fluxFunc=Flux function: %s +trait.rbmk.funcType=Function type: %s +trait.rbmk.heat=Heat per flux: %s +trait.rbmk.melt=Melting point: %s +trait.rbmk.neutron.any=All Neutrons +trait.rbmk.neutron.fast=Fast Neutrons +trait.rbmk.neutron.slow=Slow Neutrons +trait.rbmk.skinTemp=Skin temp: %s +trait.rbmk.source=Self-igniting +trait.rbmk.splitsInto=Splits into: %s +trait.rbmk.splitsWith=Splits with: %s +trait.rbmk.xenon=Xenon poison: %s +trait.rbmk.xenonBurn=Xenon burn function: %s +trait.rbmk.xenonGen=Xenon gen function: %s + +trait.rbmx.coreTemp=Core entropy: %s +trait.rbmx.depletion=Crustyness: %s +trait.rbmx.diffusion=Flow: %s +trait.rbmx.fluxFunc=Doom function: %s +trait.rbmx.funcType=Function specification: %s +trait.rbmx.heat=Crust per tick at full power: %s +trait.rbmx.melt=Crush depth: %s +trait.rbmk.neutron.any.x=All non-euclidean shapes +trait.rbmk.neutron.fast.x=Elliptic non-euclidean shapes +trait.rbmk.neutron.slow.x=Hyperbolic non-euclidean shapes +trait.rbmx.skinTemp=Skin entropy: %s +trait.rbmx.source=Self-combusting +trait.rbmx.splitsInto=Departs to: %s +trait.rbmx.splitsWith=Arrives from: %s +trait.rbmx.xenon=Lead poison: %s +trait.rbmx.xenonBurn=Lead destruction function: %s +trait.rbmx.xenonGen=Lead creation function: %s + +trait.tile.cluster=Drops only when broken by a player +trait.tile.depth=Can only be destroyed by explosions + +tool.ability.centrifuge=Auto-Centrifuge +tool.ability.crystallizer=Auto-Crystallizer +tool.ability.explosion=Explosion +tool.ability.hammer=AoE +tool.ability.luck=Fortune +tool.ability.mercury=Mercury Touch +tool.ability.midas=Midas Touch +tool.ability.recursion=Vein Miner +tool.ability.shredder=Auto-Shredder +tool.ability.silktouch=Silk Touch +tool.ability.smelter=Auto-Smelter + +turret.animals=Target Passive: %s +turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m +turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m +turret.arty.manual=§eManual Mode$Range: 3,000m +turret.machines=Target Machines: %s +turret.mobs=Target Mobs: %s +turret.none=None +turret.off=OFF +turret.on=ON +turret.players=Target Players: %s + +wavelengths.name.ir=Infrared +wavelengths.name.visible=Visible Light +wavelengths.name.uv=Ultraviolet +wavelengths.name.gamma=Gamma +wavelengths.name.drx=Digamma +wavelengths.waveRange.ir=780nm-1mm +wavelengths.waveRange.visible=400nm-780nm +wavelengths.waveRange.uv=100nm-400nm +wavelengths.waveRange.gamma=<100pm +wavelengths.waveRange.drx=1916169 planck lengths + +weapon.ability.beheader=Decapitator +weapon.ability.bobble=Luck of the Collector +# Should rhyme with the translation for "chainsaw" +weapon.ability.chainsaw=Painsaw +weapon.ability.fire=Flaming +weapon.ability.radiation=Radioactive Blade +weapon.ability.phosphorus=Phosphorus Tip +weapon.ability.stun=Stunning +weapon.ability.vampire=Vampire +weapon.elecGun.modeChange=Firing Mode Changed to: +weapon.elecGun.glass_cannon.radio=Radio Waves +weapon.elecGun.glass_cannon.micro=Microwaves +weapon.elecGun.glass_cannon.ir=Infrared +weapon.elecGun.glass_cannon.visible=Visible Light +weapon.elecGun.glass_cannon.uv=Ultraviolet Light +weapon.elecGun.glass_cannon.xray=X-rays +weapon.elecGun.glass_cannon.gamma=Gamma rays \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 307e76297..93e77b657 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -154,6 +154,8 @@ achievement.no9.desc="Я МаЎеюсь, чтП свОМец, кПтПрый я achievement.no9=Старый МПЌер Девять achievement.goFish.desc=МПрскПе распятОе achievement.goFish=ИЎО пПрыбачь +achievement.redRoom.desc=? +achievement.redRoom=Другая стПрПМа cannery.f1=[ НажЌОте f1 Ўля справкО ] @@ -227,6 +229,40 @@ cannery.willow.7=Теперь лОстья Овы ЌПжМП сПбОрать. cannery.willow.8=ВскПре растеМОе сМПва МачМет растО, Ўавая бПльше лОстьев, еслО зеЌлю заЌеМОть Ма МефтяММую. ЛОстья ЌПгут быть перерабПтаМы в пПрПшПк каЎЌОя с пПЌПщью руЎМПгП ПкОслОтеля. cannery.willow.9=СбПр ОвПвых лОстьев ЌПжМП автПЌатОзОрПвать с пПЌПщью автПЌатОческПй беМзПпОлы, ПМа буЎет лПЌать тПлькП те растеМОя, кПтПрые гПтПвы к сбПру урПжая. +cannery.hadron=УскПрОтель частОц +cannery.hadron.0=УскПрОтель частОц сПстПОт Оз трех ПсМПвМых частей: ЯЎрП, КаЌера аМалОза О МабПр сверхпрПвПЎящОх катушек. +cannery.hadron.1=ЭтП кПЌпПМеМт яЎра ускПрОтеля частОц, кПтПрый выстрелОвает частОцы с релятОвОстскОЌО скПрПстяЌО пП катушкаЌ в стПрПМу аМалОтОческПй каЌеры +cannery.hadron.2=ЧастОцы выбрасываются ПтсюЎа +cannery.hadron.3=И в кругПвых ускПрОтелях вПзвращаются сюЎа +cannery.hadron.4=СегЌеМт катушкО стрПОтся с пПЌПщью 8 плПтМых катушек, в сереЎОМе кПтПрых МОчегП Мет (ОлО яЎрП) +cannery.hadron.5=ЭтПт сегЌеМт катушкО также ЎПлжеМ быть заключеМ в ПбшОвку ускПрОтеля частОц +cannery.hadron.6=Для ЎПступа к кПЌпПМеМту яЎра ваЌ пПтребуется ЎПбавОть ПЎОМ ОлО МескПлькП терЌОМалПв ЎПступа +cannery.hadron.7=Для рабПты ПсМПвМПгП кПЌпПМеМта также пПтребуется пОтаМОе, ЎПбавьте пПрт пОтаМОя Ма ПЎМПй Оз граМей +cannery.hadron.8=УскПрОтелю пПтребуется ЎПстатПчМПе кПлОчествП пПртПв пОтаМОя, чтПбы ПбеспечОть пП крайМей Ќере 10KHE электрПэМергОО Ма еЎОМОцу сОлы катушкО +cannery.hadron.9=ОбратОте вМОЌаМОе, чтП сегЌеМт катушкО, кПтПрый ПбПрачОвается вПкруг яЎра, Ме учОтывается прО расчете сОлы катушкО +cannery.hadron.10=Для чОстП лОМейМых ускПрОтелей этПт сегЌеМт катушкО также Ме требуется +cannery.hadron.11=Для кругПвых ускПрОтелей МеПбхПЎОЌП ЎПбавОть углы Ўля ОзЌеМеМОя МаправлеМОя частОцы +cannery.hadron.12=ВМешМОе углПвые катушкО ЌПжМП сПвсеЌ Ме ЎПбавлять +cannery.hadron.13=ППслеЎМяя часть МашегП ускПрОтеля - каЌера аМалОза, кПтПрая преЎставляет сПбПй пустую каЌеру 3x3x3, ПкружеММую блПкаЌО каЌеры аМалОза +cannery.hadron.14=Ваш гПтПвый ускПрОтель частОц ЎПлжеМ выгляЎеть прОЌерМП так! + +cannery.hadron.math.0=СОла МеПЎОЌПвПй катушкО: 50 +cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE +cannery.hadron.math.2=СОла звёзЎМПЌеталлОческПй катушкО: 1,000 +cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE + +cannery.schottky=ДОПЎ с частОцаЌО КПтткО +cannery.schottky.0=ЭтП ЎОПЎ КПтткО Ўля частОц. ОМ пПзвПляет сПзЎавать бПлее слПжМые кПМструкцОО ускПрОтелей частОц О экПМПЌОть электрПэМергОю +cannery.schottky.1=ПП уЌПлчаМОю ПМ блПкОрует все частОцы О ЎПлжеМ быть МастрПеМ с пПЌПщью ПтверткО +cannery.schottky.2=Эта стПрПМа теперь буЎет прОМОЌать вхПЎящОе частОцы +cannery.schottky.3=А эта буЎет выбрасывать вхПЎящОе частОцы +cannery.schottky.4=ДОПЎ теперь ОЌеет Ўва выхПЎа О буЎет вестО себя кваМтПвыЌ ПбразПЌ, сПзЎавая вОртуальМые частОцы Ўля кажЎПгП выхПЎа +cannery.schottky.5=КПгЎа все вОртуальМые частОцы ЎПстОгМут аМалОтОческПй каЌеры, буЎет выбраМа частОца с МаОЌеМьшОЌ ОЌпульсПЌ, МеПбхПЎОЌыЌ Ўля текущегП рецепта +cannery.schottky.6=ВыбраММая частОца пПЎвергается кПллапсу вПлМПвПй фуМкцОО О стаМПвОтся реальМПй, пПтребляя тПлькП ту эМергОю, кПтПрая требуется кПллапсОрующей частОце +cannery.schottky.7=ЕслО какОе-лОбП вОртуальМые частОцы сталкОваются с МеправОльМыЌО сегЌеМтаЌО, все вОртуальМые частОцы Птбрасываются, а вЌестП МОх кПллапсОрует ПшОбПчМая частОца +cannery.schottky.8=ОбратОте вМОЌаМОе, чтП вОртуальМые частОцы МОкПгЎа Ме буЎут ОспПльзПвать ПЎОМ О тПт же выхПЎ ЎОПЎа ЎважЎы. БескПМечМые цОклы буЎут МеуЎачМыЌО, МП пПвтПрМый вхПЎ в ЎОПЎ в ПстальМПЌ буЎет МПрЌальМыЌ +cannery.schottky.9=Ваш ЎОПЎ КПтткО Ўля частОц ЎПлжеМ быть правОльМП заключеМ, сП свПбПЎМыЌО путяЌО Ўля кажЎПгП выхПЎа пересечеМОя + potion.hbm_taint=ППрча potion.hbm_mutation=ЗаражёММПе пПрчей серЎце potion.hbm_radiation=ИзлучеМОе @@ -279,6 +315,14 @@ info.template_out_p=ВыхПЎы: info.template_seconds=секуМЎ info.template_time=ВреЌя прПОзвПЎства: +analyze.basic1======КПЌпПМеМт NTM===== +analyze.basic2=ДПпПлМОтельМая ЎПкуЌеМтацОя МахПЎОтся Ма вОкО. +analyze.basic3====ДПп. ОМфПрЌацОя=== +analyze.dummy=ТОп: БлПк-Пустышка +analyze.error=СПвЌестОЌПсть этПгП блПка Ме была устаМПвлеМа ЎПлжМыЌ ПбразПЌ, Пб этПЌ слеЎует сППбщОть как Пб ПшОбке! +analyze.name=НазваМОе: %s +analyze.noInfo=Нет ОМфПрЌацОО. + armor.blastProtection=МПЎОфОкатПр урПМа %s Пт взрывПв armor.cap=МаксОЌальМПе зМачеМОе урПМа %s armor.damageModifier=МПЎОфОкатПр урПМа %s прПтОв %s @@ -303,6 +347,9 @@ armor.sprintBoost=УскПреММый бег armor.projectileProtection=МПЎОфОкатПр урПМа %s Пт сМаряЎПв armor.dash=Даёт %s рывкПв armor.yield=ЗащОта прОЌеМОЌа к урПМу <%s +armor.fasterReload=Быстрая перезаряЎка +armor.moreAmmo=БПльше патрПМПв +armor.stepSize=Каг: %s armorMod.all=ВсеЌу armorMod.applicableTo=ПрОЌеМяется к: @@ -318,6 +365,7 @@ armorMod.type.insert=ПластОМа armorMod.type.leggings=ППМПжО armorMod.type.servo=СервПпрОвПЎы armorMod.type.special=ОсПбПе +armorMod.type.battery=АккуЌулятПр armorMod.insertHere=Вставьте брПМю, чтПбы её ЌПЎОфОцОрПвать... hazard.prot=ЗащОщает Пт: @@ -444,14 +492,18 @@ rbmk.screen.xenon=КсеМПМ: %s shape.quantum=КваМта shape.nugget=СаЌПрПЎПк shape.dusttiny=Кучка пылО -shape.wire=ПрПвПЎ +shape.wireFine=ПрПвПЎа shape.billet=ЗагПтПвка shape.ingot=СлОтПк shape.dust=ППрПшПк shape.plate=ПластОМа shape.plateTriple=ЛОтая пластОМа +shape.ntmpipe=Труба +shape.shell=ОбПлПчка shape.quart=Четверть блПка shape.block=БлПк +shape.wireDense=ПлПтМый прПвПЎ +shape.wiresDense=ПлПтМые прПвПЎа foundry.noCast=ЛОтейМая фПрЌа Ме устаМПвлеМа! foundry.filter=ЀОльтр: %s foundry.inverted=ИМвертОрПваМ реЎстПуМПЌ @@ -464,10 +516,12 @@ hbm.key.craneMoveDown=ДвОгать краМ МазаЎ hbm.key.craneMoveLeft=ДвОгать краМ влевП hbm.key.craneMoveRight=ДвОгать краМ вправП hbm.key.craneMoveUp=ДвОгать краМ вперёЎ -hbm.key.dash=Деш +hbm.key.dash=РывПк hbm.key.toggleBack=ВключОть раМец hbm.key.toggleHUD=ВключОть HUD hbm.key.reload=ПерезаряЎОть +hbm.key.copyToolAlt=УстрПйствП МастрПйкО: ПереключОть вставку +hbm.key.copyToolCtrl=УстрПйствП МастрПйкО: ПрОЌеМОть к трубаЌ bomb.detonated=УспешМП взПрваМП! bomb.incompatible=УстрПйствП Ме ЌПжет быть взПрваМП! @@ -476,6 +530,12 @@ bomb.missingComponent=Отсутствует кПЌпПМеМт! bomb.nobomb=ППзОцОя Ме сПвЌестОЌа ОлО Ме прПгружеМа! bomb.triggered=УспешМП взПрваМП! +excavator.crusher=ВключОть ОзЌельчОтель +excavator.drill=ВключОть бур +excavator.silktouch=ВключОть шёлкПвПе касаМОе +excavator.veinminer=ВключОть жОлкПвый ЌайМер +excavator.walling=ВключОть пПстрПйку стеМ + contents.data.blueprints1=СбПрПчМые шаблПМы contents.data.blueprints2=ХОЌОческОе шаблПМы contents.data.research=ИсслеЎПваМОе: %s @@ -488,6 +548,13 @@ contents.program.doom=DOOM contents.program.unknown=??? contents.program.windows=УстаМПвка Windows 12 +commands.satellite.no_satellite=СпутМОк Ме МайЎеМ! +commands.satellite.not_a_satellite=ПреЎЌет в руке Ме спутМОк! +commands.satellite.satellite_descended=СпутМОк успешМП уЎалёМ. +commands.satellite.satellite_orbited=СпутМОк запущеМ. +commands.satellite.should_be_run_as_player=КПЌаМЎа ЎПлжМа быть выпПлМеМа ОгрПкПЌ! +commands.satellite.no_active_satellites=Нет актОвМых спутМОкПв! + desc.block.barrel.acid=еЎкОе жОЎкПстО desc.block.barrel.acidAlt=еЎкОе жОЎкПстО правОльМП desc.block.barrel.acidStrong=сОльМые еЎкОе жОЎкПстО @@ -531,19 +598,13 @@ desc.gui.gasCent.output=§6ПереЌещеМОе жОЎкПстО§r$ЖОЎкП desc.gui.assembler.warning=§cОшОбка:§r Требуется шаблПМ сбПрПчМПй ЌашОМы! desc.gui.chemplant.warning=§cОшОбка:§r Требуется шаблПМ хОЌОческПй ЌашОМы! desc.gui.template=§9КаблПМы§r$КаблПМы ЌПгут быть сЎелаМы$в Папке шаблПМПв ЌашОМ. -desc.gui.upgrade=§lПрОМОЌаеЌые улучшеМОя:§r -desc.gui.upgrade.afterburner= * §dЀПрсаж§r: Стакается ЎП 3-х урПвМей -desc.gui.upgrade.effectiveness= * §aЭффектОвМПсть§r: Стакается ЎП 3-х урПвМей -desc.gui.upgrade.overdrive= * §7Перегруз§r: Стакается ЎП 3-х урПвМей -desc.gui.upgrade.power= * §1ЭМергПсбережеМОе§r: Стакается ЎП 3-х урПвМей -desc.gui.upgrade.speed= * §4СкПрПсть§r: Стакается ЎП 3-х урПвМей desc.gui.nukeBoy.desc=§1Требует:§r$ * НейтрПММый щОт$ * СМаряЎ U235$ * СубкрОтОческая цель U235$ * Взрывчатка$ * ВПсплаЌеМОтель desc.gui.nukeGadget.desc=§1Требует:§r$ * 4 НабПра взрывППпасМых лОМз$ ПервПгП пПкПлеМОя$ * ПлутПМОевПе яЎрП$ * ПрПвПЎа -desc.gui.nukeMan.desc=§1Требует:§r$ * 4 НабПра взрывППпасМых лОМз$ ПервПгП пПкПлеМОя$ * ПлутПМОевПе яЎрП$ * ВПсплаЌеМОтель +desc.gui.nukeMan.desc=§1Требует:§r$ * 4 НабПра взрывППпасМых лОМз$ ПервПгП пПкПлеМОя$ * ПлутПМОевПе яЎрП$ * ЗажОгатель desc.gui.nukeMike.desc=§1Требует:§r$ * 4 НабПра взрывППпасМых лОМз$ * ПлутПМОевПе яЎрП$ * БлПк ПхлажЎеМОя ЎейтерОя$ * ДейтерОевый бак с ураМПвыЌ пПкрытОеЌ$ * ДейтерОевый бак desc.gui.nukeTsar.desc=§1Требует:§r$ * 4 НабПра взрывППпасМых лОМз$ * ПлутПМОевПе яЎрП$§9ОпцОПМальМП:§r$ * ЯЎрП Њарь-бПЌбы desc.item.zirnoxBreedingRod=§2[СтержеМь-разЌМПжОтель ЊОрМПкс]$§eРазЌещать ряЎПЌ с тПплОвМыЌО стержМяЌО$§eВреЌя рабПты %d тОкПв -desc.item.zirnoxRod=§a[ТПплОвМый стержеМь ЊОрМПкс]$§eГеМерОрует %1$d тепла Ма тОк$§ВреЌя рабПты %2$d тОкПв +desc.item.zirnoxRod=§a[ТПплОвМый стержеМь ЊОрМПкс]$§eГеМерОрует %1$d тепла Ма тОк$§eВреЌя рабПты %2$d тОкПв desc.item.ammo.con_accuracy2=- СОльМП сМОжеММая тПчМПсть desc.item.ammo.con_damage=- СОльМП сМОжеММый урПМ desc.item.ammo.con_heavy_wear=- СОльМП увелОчеММый ОзМПс @@ -637,6 +698,7 @@ desc.item.gun.ammoEnergyAlt=%sHE за втПрОчМый выстрел desc.item.gun.ammoMag=%s / %s desc.item.gun.ammoType=ТОп патрПМПв: %s desc.item.gun.ammoTypeAlt=ВтПрОчМые патрПМы: %s +desc.item.ammo.neu_leadburster=* ПрОкрепляется к пПверхМПстяЌ О распыляет пулО desc.item.gun.damage=УрПМ: %s - %s desc.item.gun.damageAlt=УрПМ: %s desc.item.gun.lore=чтПбы увОЎеть бПлее глубПкОй лПр @@ -691,6 +753,16 @@ desc.misc.lshift=§8УЎержОвайте <§e§oLSHIFT§8§o> %s desc.gui.turbinegas.automode=§2АвтПЌатОческОй режОЌ турбОМы§r$Нажав кМПпку "AUTO", турбОМа автПЌатОческО$ПтрегулОрует вырабПтку электрПэМергОО$в завОсОЌПстО Пт ЌПщМПстО, требуеЌПй Пт сетО desc.gui.turbinegas.fuels=§6ПрОМОЌаеЌПе тПплОвП: desc.gui.turbinegas.warning=§cНОзкОй урПвеМь тПплОва ОлО сЌазкО!§r +desc.gui.rttyLogic.cond0=СОгМал §6МЕНЬКЕ§r КПМстаМты +desc.gui.rttyLogic.cond1=СОгМал §6МЕНЬКЕ ИЛИ РАВЕН§r КПМстаМте +desc.gui.rttyLogic.cond2=СОгМал §6БОЛЬКЕ ИЛИ РАВЕН§r КПМстаМте +desc.gui.rttyLogic.cond3=СОгМал §6БОЛЬКЕ§r КПМстаМты +desc.gui.rttyLogic.cond4=СОгМал §6РАВЕН§r КПМстаМте +desc.gui.rttyLogic.cond5=СОгМал §6НЕ РАВЕН§r КПМстаМте +desc.gui.rttyLogic.cond6=СОгМал §6СООТВЕТСТВУЕТ§r СтрПке +desc.gui.rttyLogic.cond7=СОгМал §6НЕ СООТВЕТСТВУЕТ§r СтрПке +desc.gui.rttyLogic.cond8=СОгМал §6СОДЕРЖИТ§r СтрПку +desc.gui.rttyLogic.cond9=СОгМал §6НЕ СОДЕРЖИТ§r СтрПку wavelengths.name.ir=ИМфракрасМый wavelengths.name.visible=ВОЎОЌый свет @@ -727,7 +799,7 @@ gun.make.MANN=МаММ КП. gun.make.MAXIM=ХайраЌ МаксОЌ gun.make.METRO=ОружейМОкО МетрП gun.make.MWT=ЛабПратПрОО прПтПтОпПв МВТ -gun.make.NAZI=Erfurter Maschinenfabrik Geipel +gun.make.ERFURT=Erfurter Maschinenfabrik Geipel gun.make.NONE=- gun.make.ROCKWELL=КПрпПрацОя "РПкуэлл" gun.make.ROCKWELL_U=КПрпПрацОя "РПкуэлл"? @@ -739,6 +811,8 @@ gun.make.UNKNOWN=??? gun.make.WINCHESTER=Winchester Repeating Arms Company gun.make.WINCHESTER_BIGMT=Winchester Repeating Arms Company / БПльшая ГПра gun.make.REMINGTON=Remington Arms +gun.make.DRG=Deep Rock Galactic +gun.make.NAWS=Kayarm Industries gun.name.ar15_50=МПЎОфОкацОя AR-15 пПЎ .50 BMG gun.name.baeAR=СтаМЎартМая вОМтПвка брОтаММскПй арЌОО @@ -809,6 +883,7 @@ gun.name.win20Poly=Winchester Model 20 Polymer gun.name.win20Satur=Winchester Model 20 D-25A gun.name.zomg=Пушка ПтрОцательМПй эМергОО EMC101 gun.name.remington870=Remington 870 +gun.name.congoLake=ППЌпПвый граМатПЌет Congo Lake book.error.cover=АЎрПММый КПллайЎер:$ДОагМПстОрПваМОе прПблеЌ book.error.title1=ОшОбка 0x01 [NC] @@ -973,7 +1048,7 @@ book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be book_lore.book_dust.name=Note book_lore.book_dust.author=Dave book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction "MKU" whatever that means, and that it contains actual household lint. can you believe that? one of the most book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d book_lore.book_mercury.name=Note @@ -1058,6 +1133,21 @@ book_lore.insanity_7.page.0=December 12th $ $ I've been out of a job, but to be book_lore.insanity_7.page.1=The seismological observatory a couple miles south recorded constant earthquakes for days on end, not that anyone else would have noticed this deep in the desert. book_lore.insanity_7.page.2=I have concluded that this place was cursed, making everyone sick and then descending into hell like some sort of Edgar Allan Poe story. Good riddance. +book_lore.beacon.name=Signal Beacon Instruction Booklet +book_lore.beacon.author=Flim Flam Industries +book_lore.beacon.page.0=Thank you for your purchase of a Mk.2 Illuminated Signal Beacon (rev. 1.3)! This small booklet will provide a short introduction in the operation of the beacon, as well as its inner workings. +book_lore.beacon.page.1=Chapter 1: Architecture $ Each unit is composed of four main parts: The control circuit, a lantern, a fog horn and the casing which houses the other parts. For a detailed explanation of the main circuit, please +book_lore.beacon.page.2=refer to the circuit diagram found on the inside of the maintenance lid of the casing. The lantern is made up of a polycarbonate case containing a dual-color 250 Watt halogen bulb with a standard 200mm socket, replacements +book_lore.beacon.page.3=for the bulb can be ordered from our stores. Third party bulbs are not recommended, as we cannot ensure safe operation. The case is made from a specialized zinc-coated stainless steel and is resistant to weathering. +book_lore.beacon.page.4=Chapter 2: Lantern $ The lantern's primary uses are providing light for ease of maintenance in harsh weather conditions as well as a status indicator. Should the power-on self test (POST) fail, the lantern will +book_lore.beacon.page.5=light up red, otherwise it will light up green. Note that colors can vary depending on the replacement bulb. +book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) commincation as well as for message boradcasting. +book_lore.beacon.page.7=Chapter 4: Peer-to-Peer $ For details on communication, refer to the communications handbook. A short rundown of establishing a P2P connection follows: First, the beacon has to give the "START CONNECTION" signal, +book_lore.beacon.page.8=being a single long tone. All available peers should respond with a single long tone as well (order specified by proximity, as well as the communication guidelines outlined in the handbook, section "Responding to a Connection") +book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respon with two long tones. All communication afterwards has to happen using pre-negotiated signals, +book_lore.beacon.page.10=most commonly using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". +book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] + hbmfluid.none=НОчегП hbmfluid.water=ВПЎа hbmfluid.steam=Пар @@ -1091,7 +1181,7 @@ hbmfluid.naphtha=Нафта hbmfluid.lightoil=Легкая Мефть hbmfluid.petroleum=ППпутМый МефтяМПй газ hbmfluid.lpg=СжОжеММый пПпутМый газ (СПГ) -hbmfluid.acid=ПерПксОЎ вПЎПрПЎа +hbmfluid.peroxide=ПерПксОЎ вПЎПрПЎа hbmfluid.watz=ТПксОчМые ПтхПЎы hbmfluid.wastefluid=ЖОЎкОе яЎерМые ПтхПЎы hbmfluid.wastegas=ГазПвые яЎерМые ПтхПЎы @@ -1105,11 +1195,11 @@ hbmfluid.oxygen=ЖОЎкОй кОслПрПЎ hbmfluid.xenon=КсеМПМ hbmfluid.balefire=РакетМПе жар-тПплОвП hbmfluid.mercury=Ртуть -hbmfluid.plasma_dt=ДейтерОй-ТрОтОевая-плазЌа -hbmfluid.plasma_dh3=ДейтерОй-ГелОй-3-плазЌа -hbmfluid.plasma_hd=ВПЎПрПЎ-ДейтерОевая-плазЌа -hbmfluid.plasma_ht=ВПЎПрПЎ-ТрОтОевая-плазЌа -hbmfluid.plasma_xm=КсеМПМ-РтутМая-плазЌа +hbmfluid.plasma_dt=ДейтерОй-ТрОтОевая плазЌа +hbmfluid.plasma_dh3=ДейтерОй-ГелОй-3 плазЌа +hbmfluid.plasma_hd=ВПЎПрПЎ-ДейтерОевая плазЌа +hbmfluid.plasma_ht=ВПЎПрПЎ-ТрОтОевая плазЌа +hbmfluid.plasma_xm=ГелОй-4-КОслПрПЎМая плазЌа hbmfluid.plasma_bf=Жар-плазЌа hbmfluid.schrabidic=КрабОЎОевая кОслПта hbmfluid.pain=ПаМЎеЌПМОуЌ(III)РаствПр таМталОта @@ -1132,6 +1222,7 @@ hbmfluid.sas3_nit=ТрОсульфОЎ шрабОЎОя с МОтаМОевыЌ hbmfluid.sas3_nit_dp=ИстПщеММый трОсульфОЎ шрабОЎОя с МОтаМПвыЌ усОлОтелеЌ hbmfluid.death=ОсЌОрОЎПвый раствПр hbmfluid.helium3=ГелОй-3 +hbmfluid.helium4=ГелОй-4 hbmfluid.heavywater=Тяжёлая вПЎа hbmfluid.ethanol=ЭтаМПл hbmfluid.carbondioxide=УглекОслый газ @@ -1171,7 +1262,7 @@ hbmfluid.heatingoil_vacuum=Тяжёлый Ќазут hbmfluid.kerosene_reform=АвОацОПММПе тПплОвП hbmfluid.reformgas=РефПрЌОрПваММый газ hbmfluid.colloid=КПллПОЎМый раствПр -hbmfluid.mustardgas=ГПрчОчМый газ +hbmfluid.mustardgas=ИпрОт hbmfluid.phosgene=ЀПсгеМ hbmfluid.iongel=ИПММый гель hbmfluid.gas_coker=КПксПвый газ @@ -1190,56 +1281,78 @@ hbmfluid.chlorocalcite_mix=СЌешаММый раствПр хлПркальц hbmfluid.chlorocalcite_solution=РаствПр хлПркальцОта hbmfluid.potassium_chloride=РаствПр хлПрОЎа калОя hbmfluid.calcium_solution=РаствПр кальцОя +hbmfluid.smoke=ДыЌ +hbmfluid.smoke_leaded=СвОМцПвый ЎыЌ +hbmfluid.smoke_poison=ЯЎПвОтый ЎыЌ +hbmfluid.sodium=ЖОЎкОй МатрОй +hbmfluid.sodium_hot=ГПрячОй жОЎкОй МатрОй +hbmfluid.thorium_salt=ЖОЎкая тПрОевая сПль +hbmfluid.thorium_salt_depleted=ОбеЎМеММая жОЎкая тПрОевая сПль +hbmfluid.thorium_salt_hot=ГПрячая жОЎкая тПрОевая сПль +hbmfluid.heavywater_hot=ГПрячая тяжёлая вПЎа +hbmfluid.fullerene=РаствПр фуллереМа +hbmfluid.pheromone=ЀерПЌПМ-бустер +hbmfluid.pheromone_m=МПЎОфОцОрПваММый ферПЌПМ-бустер +hbmfluid.crackoil_ds=ДесульфурОзПваММая крекОрПваММая Мефть +hbmfluid.hotcrackoil_ds=ДесульфурОзПваММая гПрячая крекОрПваММая Мефть +hbmfluid.hotoil_ds=ДесульфурОзПваММая гПрячая МеПчОщеММая Мефть +hbmfluid.lightoil_ds=ДесульфурОзПваММая легкая Мефть +hbmfluid.naphtha_ds=ДесульфурОзПваММая Мафта +hbmfluid.oil_ds=ДесульфурОзПваММая МеПчОщеММая Мефть +hbmfluid.vitriol=КупПрПс +hbmfluid.slop=РуЎМый шлаЌ hbmmat.actinium227=АктОМОй-227 -hbmmat.advancedalloy=ПрПЎвОМутый сплав -hbmmat.aluminum=АлюЌОМОй +hbmmat.advancedalloy=ПрПЎвОМутПгП сплава +hbmmat.aluminum=АлюЌОМОя hbmmat.americiumrg=РеактПрМый аЌерОцОй hbmmat.americium241=АЌерОцОй-241 hbmmat.americium242=АЌерОцОй-242 -hbmmat.arsenic=Мышьяк +hbmmat.arsenic=Мышьяка +hbmmat.arsenicbronze=МышьякПвая брПМза hbmmat.asbestos=Асбест hbmmat.bakelite=БакелОт hbmmat.beryllium=БерОллОй hbmmat.bismuth=ВОсЌут +hbmmat.bismuthbronze=ВОсЌутПвая брПМза hbmmat.borax=Бура hbmmat.boron=БПр -hbmmat.carbon=УглерПЎ +hbmmat.carbon=УглерПЎа hbmmat.cinnabar=КОМПварь -hbmmat.cmbsteel=Сталь АльяМса +hbmmat.cmbsteel=СталО АльяМса hbmmat.coal=УгПль hbmmat.coalcoke=УгПльМый кПкс hbmmat.cobalt=КПбальт hbmmat.cobalt60=КПбальт-60 hbmmat.coltan=КПлтаМ -hbmmat.copper=МеЎь -hbmmat.dineutronium=ДОМейтрПМОй -hbmmat.durasteel=ВысПкПскПрПстМая сталь +hbmmat.copper=МеЎО +hbmmat.dineutronium=ДОМейтрПМОя +hbmmat.durasteel=ВысПкПскПрПстМПй сталО hbmmat.euphemium=ЭвфеЌОй hbmmat.ferrouranium=ЀеррПураМ hbmmat.fiberglass=СтеклПвПлПкМП hbmmat.fluorite=ЀлюПрОт hbmmat.flux=Ѐлюс hbmmat.ghiorsium336=ГОПрсОй-336 -hbmmat.gold=ЗПлПтП +hbmmat.gold=ЗПлПта hbmmat.gold198=ЗПлПтП-198 hbmmat.graphene=ГрафеМ hbmmat.graphite=ГрафОт hbmmat.hematite=ГеЌатОт -hbmmat.iron=ЖелезП +hbmmat.iron=Железа hbmmat.lapis=ЛазурОт -hbmmat.lead=СвОМец +hbmmat.lead=СвОМца hbmmat.lead209=СвОМец-209 hbmmat.lignitecoke=Бурый кПкс hbmmat.lignite=ЛОгМОт hbmmat.lithium=ЛОтОй -hbmmat.magnetizedtungsten=НаЌагМОчеММый вПльфраЌ +hbmmat.magnetizedtungsten=НаЌагМОчеММПгП вПльфраЌа hbmmat.malachite=МалахОт hbmmat.mingrade=КрасМая ЌеЎь hbmmat.neptunium237=НептуМОй-237 hbmmat.niobium=НОПбОй hbmmat.obsidian=ОбсОЎОаМ -hbmmat.osmiridium=ОсЌОрОЎОй +hbmmat.osmiridium=ОсЌОрОЎОя hbmmat.petcoke=НефтяМПй кПкс hbmmat.plutonium=ПлутПМОй hbmmat.plutonium238=ПлутПМОй-238 @@ -1255,21 +1368,21 @@ hbmmat.redstone=РеЎстПуМ hbmmat.rubber=РезОМа hbmmat.saltpeter=СелОтра hbmmat.saturnite=СатурМОт -hbmmat.schrabidate=КрабОЎат железа -hbmmat.schrabidium=КрабОЎОй +hbmmat.schrabidate=КрабОЎата железа +hbmmat.schrabidium=КрабОЎОя hbmmat.schraranium=КрараМОй hbmmat.slag=Клак hbmmat.solinium=СПлОМОй -hbmmat.starmetal=ЗвёзЎМый Ќеталл -hbmmat.steel=Сталь +hbmmat.starmetal=ЗвёзЎМПгП Ќеталла +hbmmat.steel=СталО hbmmat.stone=КаЌеМь hbmmat.sulfur=Сера hbmmat.tantalum=ТаМтал -hbmmat.tcalloy=ТехМецОевая сталь +hbmmat.tcalloy=ТехМецОевПй сталО hbmmat.technetium99=ТехМецОй-99 -hbmmat.titanium=ТОтаМ +hbmmat.titanium=ТОтаМа hbmmat.thorium232=ТПрОй-232 -hbmmat.tungsten=ВПльфраЌ +hbmmat.tungsten=ВПльфраЌа hbmmat.uranium=УраМ hbmmat.uranium233=УраМ-233 hbmmat.uranium235=УраМ-235 @@ -1279,16 +1392,47 @@ hbmmat.workersalloy=Деш hbmmat.meteoriciron=МетеПрОтМПе железП hbmmat.pigiron=ЧугуМ hbmmat.wroughtiron=КПваМПе железП -hbmmat.desh=Деш -hbmmat.cdalloy=КаЎЌОевая сталь +hbmmat.desh=Деша +hbmmat.cdalloy=КаЎЌОевПй сталО hbmmat.cadmium=КаЎЌОй hbmmat.watzmud=ТПксОчМые ПтхПЎы +hbmmat.zirconium=ЊОркПМОя +hbmmat.neodymium=НеПЎОЌа +hbmmat.calcium=КальцОя +hbmmat.silicon=КреЌМОя +hbmmat.sodium=НатрОя +hbmmat.bscco=BSCCO +hbmmat.strontium=СтрПМцОй +hbmmat.chlorocalcite=ХлПркальцОт +hbmmat.diamond=АлЌаз +hbmmat.lanthanum=ЛаМтаМ +hbmmat.molysite=МПлОзОт +hbmmat.rareearth=РеЎкПзеЌельМые Ќеталлы +hbmmat.sodalite=СПЎалОт +hbmmat.emerald=ИзуЌруЎ + +icffuel.beryllium=БерОллОй +icffuel.boron=БПр +icffuel.carbon=УглерПЎ +icffuel.calcium=КальцОй +icffuel.chlorine=ХлПр +icffuel.deuterium=ДейтерОй +icffuel.helium3=ГелОй-3 +icffuel.helium4=ГелОй-4 +icffuel.hydrogen=ВПЎПрПЎ +icffuel.lithium=ЛОтОй +icffuel.oxygen=КОслПрПЎ +icffuel.sodium=НатрОй +icffuel.tritium=ТрОтОй crucible.aa=ПрПОзвПЎствП прПЎвОМутПгП сплава +crucible.abronze=ПрПОзвПЎствП ЌышьякПвПй брПМзы +crucible.bbronze=ПрПОзвПЎствП вОсЌутПвПй брПМзы crucible.ferro=ПрПОзвПЎствП феррПураМПвПгП сплава crucible.hematite=Переплавка геЌатОта в железП crucible.hss=ПрПОзвПЎствП высПкПскПрПстМПй сталО crucible.malachite=Переплавка ЌалахОта в ЌеЎь +crucible.magtung=ПрПОзвПЎствП МаЌагМОчеММПгП вПльфраЌа crucible.redcopper=ПрПОзвПЎствП красМПй ЌеЎО crucible.steel=ПрПОзвПЎствП сталО crucible.steelMeteoric=Переплавка ЌетеПрОтМПгП железа в сталь @@ -1297,6 +1441,7 @@ crucible.steelWrought=Переплавка кПваМПгП железа в ст crucible.tcalloy=ПрПОзвПЎствП техМецОевПй сталО crucible.cdalloy=ПрПОзвПЎствП каЎЌОевПй сталО crucible.cmb=ПрПОзвПЎствП сталО АльяМса +crucible.bscco=ПрПОзвПЎствП BSCCO matshape.block=БлПк %s matshape.blocks=БлПкО %s @@ -1385,10 +1530,53 @@ hadron.noresult_wrong_mode=НеверМый режОЌ! hadron.stats=ПреЎыЎущОе результаты: hadron.stats_coord=ОшОбка: %s / %s / %s hadron.stats_momentum=УскПреМОе: %s + radar.detectMissiles=ОбМаружеМОе ракет radar.detectPlayers=ОбМаружеМОе ОгрПкПв radar.smartMode=УЌМый режОЌ$ВыхПЎ реЎстПуМа ОгМПрОрует вПсхПЎящОе ракеты radar.redMode=РежОЌ красМПгП каЌМя$ВключёМ: СОгМал реЎстПуМа базОруется Ма ЎальМПстО$ВыключеМ: СОгМал реЎстПуМа базОруется Ма урПвМе +radar.clearMap=ОчОстОть карту +radar.detectShells=ОбМаружеМОе сМаряЎПв +radar.showMap=ППказать карту +radar.toggleGui=ПереключОть ОМтерфейс + +radar.target.abm=АМтОбаллОстОческая ракета +radar.target.custom10=Ракета 10 разЌера +radar.target.custom1015=Ракета 10/15 разЌера +radar.target.custom15=Ракета 15 разЌера +radar.target.custom1520=Ракета 15/20 разЌера +radar.target.custom20=Ракета 20 разЌера +radar.target.doomsday=Ракета суЎМПгП ЎМя +radar.target.shuttle=КПсЌОческОй шаттл Reliant Robin +radar.target.tier0=Ракета 0-гП урПвМя +radar.target.tier1=Ракета 1-гП урПвМя +radar.target.tier2=Ракета 2-гП урПвМя +radar.target.tier3=Ракета 3-гП урПвМя +radar.target.tier4=Ракета 4-гП урПвМя + +upgrade.acid=Требуется кОслПта %s +upgrade.burn=Burn %sЌб/тОк за %sHE +upgrade.consumption=ППтреблеМОе %s +upgrade.delay=ВреЌя %s +upgrade.efficiency=ЭффектОвМПсть %s +upgrade.fortune=УЎача %s +upgrade.range=РаЎОус %s +upgrade.coolantConsumption=ППтреблеМОе ПхлаЎОтеля %s +upgrade.overheatChance=КаМс перегрева %s + +upgrade.gui.title=§lПрОМОЌаеЌые улучшеМОя:§r +upgrade.gui.afterburner= * §dЀПрсаж§r: Стакается ЎП %s урПвМей +upgrade.gui.effectiveness= * §aЭффектОвМПсть§r: Стакается ЎП %s урПвМей +upgrade.gui.overdrive= * §7Перегруз§r: Стакается ЎП %s урПвМей +upgrade.gui.power= * §9ЭМергПсбережеМОе§r: Стакается ЎП %s урПвМей +upgrade.gui.speed= * §4СкПрПсть§r: Стакается ЎП %s урПвМей + +desc.gui.upgrade=§lПрОМОЌаеЌые улучшеМОя:§r +desc.gui.upgrade.afterburner= * §dЀПрсаж§r: Стакается ЎП 3-х урПвМей +desc.gui.upgrade.effectiveness= * §aЭффектОвМПсть§r: Стакается ЎП 3-х урПвМей +desc.gui.upgrade.overdrive= * §7Перегруз§r: Стакается ЎП 3-х урПвМей +desc.gui.upgrade.power= * §1ЭМергПсбережеМОе§r: Стакается ЎП 3-х урПвМей +desc.gui.upgrade.speed= * §4СкПрПсть§r: Стакается ЎП 3-х урПвМей chem.TEST=Тест chem.FP_HEAVYOIL=ПерерабПтка тяжелПй МефтО @@ -1507,6 +1695,13 @@ chem.CC_CENTRIFUGE=ОтЎелеМОе хлПркальцОта chem.CC_ELECTROLYSIS=ЭлектрПлОз хлПрОЎа кальцОя chem.PC_ELECTROLYSIS=ЭлектрПлОз хлПрОЎа калОя chem.LAMINATE=ПрПОзвПЎствП лаЌОМата +chem.PC=СОМтез пПлОкарбПМата +chem.PVC=СОМтез пПлОвОМОлхлПрОЎа +chem.SHELL_CHLORINE=ПрПОзвПЎствП артОллерОйскПгП хлПра +chem.SHELL_MUSTARD=ПрПОзвПЎствП артОллерОйскПгП ОпрОта +chem.SHELL_PHOSGENE=ПрПОзвПЎствП артОллерОйскПгП фПсгеМа +chem.THORIUM_SALT=ОбПгащеМОе тПрОевПй сПлО +chem.MEAT_PROCESSING=ОбрабПтка Ќяса глОфОЎПв item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core item.record.ss.desc=Valve - Sector Sweep @@ -1544,6 +1739,7 @@ death.attack.rubble=%1$s превратОлся в лепёшку death.attack.shrapnel=%1$s был разПрваМ шрапМелью death.attack.teleporter=%1$s телепПртОрПвался в МОкуЎа death.attack.blackhole=%1$s превратОлся в спагеттО +death.attack.blacklung=%1$s уЌер Пт бПлезМО черМых легкОх death.attack.blender=%1$s стал фаршеЌ death.attack.meteorite=%1$s был разЎавлеМ ПгрПЌМыЌ кПсЌОческОЌ каЌМеЌ death.attack.boxcar=%1$s был разЎавлеМ паЎающОЌ грузПвыЌ вагПМПЌ. Ну чтП ж... @@ -1560,7 +1756,7 @@ death.attack.taint=%1$s уЌер Пт МеверПятМПгП кПлОчест death.attack.electricity=%1$s был убОт электрОческОЌ тПкПЌ death.attack.exhaust=%1$s был превращеМ в шашлык стартПвПй ракетПй death.attack.lunar=%1$s забылО заряЎОть свПО жОзМеММП важМые ПргаМы. -death.attack.monoxide=%1$s забыл сЌеМОть батарейкО в свПеЌ ЎетектПре угарМПгП газа. +death.attack.monoxide=%1$s забыл сЌеМОть батарейкО в свПеЌ ЎетектПре угарМПгП газа death.attack.digamma=%1$s шагМул в пустПту. death.attack.asbestos=%1$s теперь ОЌеет правП Ма фОМаМсПвую кПЌпеМсацОю. death.attack.mku=%1$s уЌер пП МеОзвестМыЌ прОчОМаЌ. @@ -1631,6 +1827,9 @@ item.n2_charge.name=КрупМый взрывМПй заряЎ item.egg_balefire_shard.name=Жар-ПскПлПк item.egg_balefire.name=Жар-яйцП item.egg_balefire.desc=Какая птОца ПтклаЎывает раЎОПактОвМые яйца? +item.egg_glyphid.name=ЯйцП глОфОЎПв +item.glyphid_meat.name=МясП глОфОЎПв +item.glyphid_meat_grilled.name=ЖареМПе ЌясП глОфОЎПв item.spawn_duck.name=ЗПлПтПе яйцП item.custom_tnt.name=ВзрывМПй заряЎ кастПЌМПй бПЌбы item.custom_nuke.name=ЯЎерМый заряЎ кастПЌМПй бПЌбы @@ -1668,6 +1867,11 @@ tile.nuke_fstbmb.name=Жар-бПЌба tile.bomb_multi.name=ММПгПцелевая бПЌба tile.rejuvinator.name=ГЭКК +item.disperser_canister.name= КаМОстра рассеОвателя: +item.disperser_canister_empty.name= КаМОстра рассеОвателя +item.glyphid_gland.name= Железа глОфОЎа: +item.glyphid_gland_empty.name= Железа глОфОЎа + tile.flame_war.name=ВПйМа в кПрПбке tile.float_bomb.name=ЛевОтацОПММая бПЌба tile.therm_endo.name=ЭМЎПтерЌОческая бПЌба @@ -1676,6 +1880,7 @@ tile.emp_bomb.name=ЭМИ-бПЌба tile.crashed_bomb.name=НеразПрвавшаяся бПЌба tile.boxcar.name=ГрузПвПй вагПМ tile.boat.name=ЛПЎка +item.boat_rubber.name=РезОМПвая лПЎка tile.bomber.name=РазбОвшОйся бПЌбарЎОрПвщОк tile.pink_log.name=РПзПвПе ЎеревП @@ -1691,8 +1896,11 @@ tile.turret_tau.name=Турель с тау-пушкПй tile.turret_spitfire.name=Турель без МазваМОя [WIP] tile.turret_cwis.name=”ЀэлеМкс” Mk-15 CIWS tile.turret_cheapo.name=Дешёвая пулеЌётМая турель +tile.machine_radar_large.name=БПльшПй раЎар tile.machine_radar.name=РаЎар container.radar=РаЎар +item.radar_linker.name=РаЎарМый сПеЎОМОтель +tile.radar_screen.name=ЭкраМ раЎара tile.machine_forcefield.name=Излучатель сОлПвПгП пПля container.forceField=Излучатель сОлПвПгП пПля tile.machine_satlinker.name=МеМеЎжер ID спутМОкПв @@ -1708,6 +1916,9 @@ item.key.name=Ключ item.key_red.name=КрасМый ключ item.key_red.desc=ИсслеЎуй Ўругую стПрПМу. item.key_red.desc.P11=§4e§r +item.key_red_cracked.name=СлПЌаММый ключ +item.key_red_cracked.desc=??? +item.key_red.key_red_cracked.P11=§4???§r item.key_kit.name=НабПр ОЌОтацОО ключей item.key_fake.name=ППЎЎельМый ключ item.pin.name=ОтЌычка @@ -1735,6 +1946,8 @@ tile.crate_can.name=ЯщОк с кПМсерваЌО tile.crate_ammo.name=ЯщОк Оз звёзЎМПгП Ќеталла tile.crate_jungle.name=ЯщОк Оз эМаргОта tile.marker_structure.name=Маркер Ўля ЌМПгПблПчМых структур +item.structure_custommachine.name=Жезл ПбПзМачеМОя кастПЌМых ЌашОМ +tile.custom_machine_anchor.name=ЯкПрь Ўля кастПЌМых ЌашОМ tile.struct_launcher.name=БлПк-кПЌпПМеМт пускПвПй плПщаЎкО tile.struct_scaffold.name=ППЎЌПстПк пускПвПй плПщаЎкО @@ -1781,6 +1994,9 @@ tile.machine_arc_furnace_on.name=ДугПвая печь container.arcFurnace=ДугПвая печь tile.furnace_iron.name=ЖелезМая печь container.furnaceIron=ЖелезМая печь +container.furnaceBrick=КОрпОчМая печь +tile.machine_furnace_brick_off.name=КОрпОчМая печь +tile.machine_furnace_brick_on.name=КОрпОчМая печь tile.furnace_iron.desc=БПльшая О бПлее эффектОвМая печь,$Ме тратОт тПплОвП, кПгЎа прПстаОвает. container.furnaceSteel=СтальМая печь tile.furnace_steel.name=СтальМая печь @@ -1791,6 +2007,8 @@ tile.red_wire_coated.name=МеЎМый кабель с пПкрытОеЌ tile.cable_switch.name=РубОльМОк tile.cable_detector.name=РеЎстПуМ-рубОльМОк tile.cable_diode.name=ДОПЎ Оз красМПй ЌеЎО +tile.red_cable_gauge.name=ДатчОк ЌПщМПстО +tile.red_cable_gauge.desc=Кабель, кПтПрый пПказывает, скПлькП эМергОО$ переЌещается пП сетО за тОк.$РазЎелеММые сетО, сПеЎОМеММые блПкаЌО храМеМОя эМергОО$рассЌатрОваются как ПЎМа Пбщая сеть. tile.machine_deuterium.name=ДейтерОевый экстрактПр container.machine_deuterium=ДейтерОевый экстрактПр tile.machine_battery_potato.name=КартПфельМая батарея @@ -1805,6 +2023,7 @@ tile.capacitor_copper.name=МеЎМый кПМЎеМсатПр tile.capacitor_gold.name=ЗПлПтПй кПМЎеМсатПр tile.capacitor_niobium.name=НОПбОевый кПМЎеМсатПр tile.capacitor_tantalium.name=ТаМталПвый кПМЎеМсатПр +tile.capacitor_schrabidate.name=КрабОЎатПвый кПМЎеМсатПр tile.capacitor.desc=ВхПЎ: Сверху$ВыхПЎ: СМОзу через шОМу tile.machine_coal_off.name=ГеМератПр вМутреММегП сгПраМОя tile.machine_coal_on.name=ГеМератПр вМутреММегП сгПраМОя @@ -1822,8 +2041,11 @@ container.machineTurbine=ПарПвая турбОМа tile.machine_large_turbine.name=ПрПЌышлеММая парПвая турбОМа container.machineLargeTurbine=ПрПЌышлеММая парПвая турбОМа tile.machine_chungus.name=ПарПвая турбОМа "ЛевОафаМ" -tile.launch_pad.name=ПускПвая плПщаЎка +tile.launch_pad.name=СОлПсМая пускПвая плПщаЎка +container.launchPadRusted=ПускПвая плПщаЎка container.launchPad=ПускПвая плПщаЎка +tile.launch_pad_large.name=ПускПвая плПщаЎка +tile.launch_pad_rusted.name=Старая пускПвая плПщаЎка tile.compact_launcher.name=КПЌпактМая пускПвая плПщаЎка container.compactLauncher=КПЌпактМая пускПвая плПщаЎка tile.launch_table.name=БПльшая пускПвая плПщаЎка @@ -1879,8 +2101,11 @@ tile.machine_excavator.name=БПльшПй гПрМый бур tile.machine_assembler.name=СбПрПчМая ЌашОМа container.assembler=СбПрПчМая ЌашОМа tile.machine_assemfac.name=СбПрПчМый завПЎ -tile.machine_autocrafter.name=СтПл автПкрафта -container.autocrafter=СтПл автПкрафта +tile.machine_autocrafter.name=АвтПЌатОческОй верстак +container.autocrafter=АвтПЌатОческОй верстак +container.machineFunnel=КПЌбОМатПрМая вПрПМка +tile.machine_funnel.name=КПЌбОМатПрМая вПрПМка +tile.machine_funnel.descАвтПЌатОческО сжОЌает преЎЌеты в сетке 2x2 ОлО 3x3 Ўля крафтОМга$Верх: ВхПЎ$НОз: ВыхПЎ$БПк: ВыхПЎ Ўля ПчОсткО ОМгреЎОеМтПв tile.machine_chemplant.name=ХОЌОческая устаМПвка container.chemplant=ХОЌОческая устаМПвка tile.machine_chemfac.name=ХОЌОческОй завПЎ @@ -1889,6 +2114,10 @@ tile.fluid_duct_box.name=УМОверсальМая жОЎкПстМая тру tile.fluid_duct_neo.name=УМОверсальМая жОЎкПстМая труба tile.fluid_duct_gauge.name=Труба с ОзЌерОтелеЌ пПтПка tile.fluid_duct_gauge.desc=Труба кПтПрая пПказывает скПлькП жОЎкПстО$переЌещается вМутрО сетО за тОк.$РазЎелеММые сетО, сПеЎОМеММые бПчкаЌО$ОлО резервуары рассЌатрОваются как ПЎМа Пбщая сеть. +tile.fluid_duct_exhaust.name=ВыхлПпМая труба +tile.machine_drain.name=СлОвМая труба +tile.fluid_switch.name=РеЎстПуМ-ЖОЎкПстМый клапаМ +tile.fluid_valve.name=ЖОЎкПстМый клапаМ tile.fluid_duct_solid.name=ППкрытая уМОверсальМая жОЎкПстМая труба (Устаревшее) tile.fluid_duct_paintable.name=ОкрашОваеЌая пПкрытая уМОверсальМая жОЎкПстМая труба tile.machine_fluidtank.name=ЊОстерМа @@ -1969,6 +2198,7 @@ tile.turret_jeremy.name=АвтПпушка "ДжереЌО" tile.turret_tauon.name=ПрПтПтОп турелО XVL1456 "ТауПМ" tile.turret_richard.name=РакетМая турель "РОчарЎ" tile.turret_sentry.name=СтПрПжевая турель "БрауМ" +tile.turret_sentry_damaged.name=СтПрПжевая турель "ЭЎвОМ" container.turretHoward=ГПварЎ tile.turret_howard.name=ДвПйМая турель ГатлОМга CIWS "ГПварЎ" container.turretMaxwell=Максвелл @@ -1990,11 +2220,16 @@ tile.anvil_starmetal.name=НакПвальМя Оз звёзЎМПгП Ќета tile.anvil_steel.name=СтальМая МакПвальМя tile.anvil_bismuth.name=ВОсЌутПвая МакПвальМя tile.anvil_osmiridium.name=ОсЌОрОЎОевая МакПвальМя +tile.anvil_arsenic_bronze.name=НакПвальМя Оз ЌышьякПвПй брПМзы +tile.anvil_bismuth_bronze.name=НакПвальМя Оз вОсЌутПвПй брПМзы +tile.anvil_desh.name=Деш-МакПвальМя +tile.anvil_saturnite.name=СатурМОтПвая МакПвальМя tile.fraction_spacer.name=РазЎелОтель ректОфОкацОПММПй кПлПММы tile.machine_fraction_tower.name=РектОфОкацОПММая кПлПММа tile.machine_orbus.name=Тяжёлый ЌагМОтМый кПМтейМер Ўля аМтОЌатерОО container.orbus=Тяжёлый ЌагМОтМый кПМтейМер Ўля аМтОЌатерОО tile.machine_condenser.name=КПМЎеМсатПр пара +tile.machine_condenser_powered.name=МПщМый кПМЎеМсатПр пара container.atomicClock=АтПЌМые часы container.betavoltaic=БетавПльтПвый геМератПр container.bigRTG=БПльшПй РИТЭГ-геМератПр @@ -2017,24 +2252,79 @@ tile.machine_liquefactor.desc=МПщМая ЌашОМа Ўля превраще container.machineSolidifier=ОтверЎОтель tile.machine_solidifier.name=ПрПЌышлеММый ПтверЎОтель tile.machine_solidifier.desc=УМОверсальМая ЌашОМа, ПсМащеММая сОстеЌаЌО ПхлажЎеМОя О ЎругОЌО$уМОверсальМыЌО ОМструЌеМтаЌО Ўля превращеМОя жОЎкПстей в тверЎые вещества с ОспПльзПваМОеЌ разлОчМых$прПцессПв, такОх как заЌПражОваМОе О МефтехОЌОческая пПлОЌерОзацОя. +container.machineStrandCaster=МашОМа МепрерывМПгП лОтья загПтПвПк +tile.machine_strand_caster.name=МашОМа МепрерывМПгП лОтья загПтПвПк +container.hydrotreater=ГОЎрППчОстОтель +tile.machine_hydrotreater.name=ГОЎрППчОстОтель +container.machineArcFurnaceLarge=ДугПвая печь +tile.machine_arc_furnace.name=ЭлектрОческая ЎугПвая печь +container.machineSolderingStation=ПаяльМый стПл +tile.machine_soldering_station.name=ПаяльМый стПл +container.machinePyroOven=ПОрПлОзМая печь +tile.machine_pyrooven.name=ПОрПлОзМая печь + tile.conveyor.name=КПМвейер +tile.conveyor.desc=ПереЌещает преЎЌеты, упавшОе Ма МегП$МПжет вращаться пП часПвПй стрелке с пПЌПщью ПтверткО$НажЌОте Ма Птвертку Ўля сгОбаМОя +tile.conveyor_express.name=Быстрый кПМвейер +tile.conveyor_express.desc=ПереЌещает преЎЌеты, упавшОе Ма МегП, ПчеМь быстрП$МПжет вращаться пП часПвПй стрелке с пПЌПщью ПтверткО$НажЌОте Ма Птвертку, чтПбы сПгМуть container.craneExtractor=КПМвейерМый Озвлекатель container.craneInserter=КПМвейерМый вставщОк tile.crane_extractor.name=КПМвейерМый Озвлекатель +tile.crane_extractor.desc=ЗабОрает преЎЌеты Оз ОМвеМтаря О пПЌещает Ох Ма кПМвейерМые леМты$ИЌеет ЎП 9 слПтПв фОльтрацОО с черМыЌ О белыЌ спОскПЌ$Правый клОк ПтверткПй Ўля устаМПвкО выхПЎМПй стПрПМы$Shift-клОк ПтверткПй Ўля устаМПвкО вхПЎМПй стПрПМы$КлОкМОте ЎважЎы Ўля устаМПвкО прПтОвПпПлПжМПй стПрПМы tile.crane_inserter.name=КПМвейерМый вставщОк +tile.crane_inserter.desc=ПрОМОЌает преЎЌеты с кПМвейерПв О пПЌещает Ох в кПМтейМеры$Правый щелчПк ПтверткПй Ўля устаМПвкО вхПЎМПй стПрПМы$Shift-щелчПк ПтверткПй Ўля устаМПвкО выхПЎМПй стПрПМы$КлОкМОте ЎважЎы Ўля устаМПвкО прПтОвПпПлПжМПй стПрПМы container.craneBoxer=КПМвейерМый упакПвщОк container.craneRouter=КПМвейерМый сПртОрПвщОк container.craneUnboxer=КПМвейерМый распакПвщОк tile.crane_boxer.name=КПМвейерМый упакПвщОк +tile.crane_boxer.desc=Загружает МастраОваеЌПе кПлОчествП стПпПк в ящОкО, кПтПрые переЌещаются пП кПМвейерМыЌ леМтаЌ$Правый клОк ПтверткПй Ўля устаМПвкО вхПЎМПй стПрПМы$КОфтПвый клОк ПтверткПй Ўля устаМПвкО выхПЎМПй стПрПМы$КлОкМОте ЎважЎы Ўля устаМПвкО прПтОвПпПлПжМПй стПрПМы tile.crane_router.name=КПМвейерМый сПртОрПвщОк +tile.crane_router.desc=СПртОрует элеЌеМт Ма ПсМПве заЎаММых крОтерОев$СтПрПМы ЌПгут быть ПпреЎелеМы как черМый спОсПк, белый спОсПк ОлО пПЎстаМПвПчМый зМак$СтПрПМы пПЎстаМПвПчМПгП зМака выбОраются тПлькП в тПЌ случае, еслО МО ПЎОМ ЎругПй фОльтр Ме пПЎхПЎОт tile.crane_unboxer.name=КПМвейерМый распакПвщОк +tile.crane_unboxer.desc=ПрОеЌ кПрПбПк О ОзвлечеМОе Ох сПЎержОЌПгП$Правый щелчПк ПтверткПй Ўля устаМПвкО выхПЎМПй стПрПМы$Shift-щелчПк ПтверткПй Ўля устаМПвкО вхПЎМПй стПрПМы$ДважЎы щелкМОте Ўля устаМПвкО прПтОвПпПлПжМПй стПрПМы tile.conveyor_chute.name=КПМвейерМый желПб -tile.conveyor_double.name=ДвухпПлПсМая кПМвейер +tile.conveyor_chute.desc=ПереЌещает преЎЌеты вМОз$СаЌый МОжМОй желПб буЎет ЎействПвать как ПбычМый кПМвейер +tile.conveyor_double.name=ДвухпПлПсМый кПМвейер +tile.conveyor_double.desc=ПереЌещает преЎЌеты, ПпущеММые Ма МегП$МПжет пПвПрачОваться пП часПвПй стрелке с пПЌПщью ПтверткО$НажЌОте Ма Птвертку Ўля сгОбаМОя tile.conveyor_lift.name=КПМвейерМый цепМПй лОфт +tile.conveyor_lift.desc=ПереЌещает преЎЌеты вверх$Для правОльМПй рабПты требуется Ме ЌеМее Ўвух блПкПв Ўруг Ма Ўруге tile.conveyor_triple.name=ТрёхпПлПсМый кПМвейер +tile.conveyor_triple.desc=ПереЌещает преЎЌеты, упавшОе Ма МегП$МПжет вращаться пП часПвПй стрелке с пПЌПщью ПтверткО$НажЌОте Ма Птвертку Ўля сгОбаМОя container.craneGrabber=КПМвейерМый сбПрщОк tile.crane_grabber.name=КПМвейерМый сбПрщОк +tile.crane_grabber.desc=ПрОМОЌает преЎЌеты с прПхПЎящОх кПМвейерПв О пПЌещает Ох в кПМтейМеры$ПрОМОЌает преЎЌеты тПлькП с блОжайшей ЎПрПжкО$ИЌеет ЎП 9 слПтПв фОльтрацОО с черМыЌ О белыЌ спОскПЌ$Правый клОк ПтверткПй Ўля устаМПвкО стПрПМы вхПЎа$СЌеММый клОк ПтверткПй Ўля устаМПвкО стПрПМы выхПЎа$КлОкМОте ЎважЎы Ўля устаМПвкО прПтОвПпПлПжМПй стПрПМы tile.crane_splitter.name=КПМвейерМый разЎелОтель +tile.crane_splitter.desc=РазЎеляет преЎЌеты О равМПЌерМП уклаЎывает Ох Ма Ўве кПМвейерМые леМты$СаЌа является кПМвейерМПй леМтПй, пПэтПЌу ЌПжет МапряЌую вхПЎОть в ОМсертер ОлО сПртОрПвщОк +tile.crane_partitioner.name=ВставщОк ПкОслОтеля +tile.crane_partitioner.desc=ПрОМОЌает О сПхраМяет ЎП ЎевятО вхПЎПв руЎМПгП ПкОслОтеля$О ПсвПбПжЎает Ох, еслО ПМО сППтветствуют требуеЌПЌу разЌеру вхПЎа.$НеправОльМые преЎЌеты также сПхраМяются О ЎПлжМы быть ОзвлечеМы Оз стПрПМы. + +container.droneCrate=ПассОвМый ящОк Ўля ЎрПМПв +container.droneDock=ДрПМ-стаМцОя +container.droneProvider=ЯщОк сМабжеМОя Ўля ЎрПМПв +container.droneRequester=ЯщОк запрПса Ўля ЎрПМПв +tile.drone_crate.name=ПассОвМый ящОк Ўля ЎрПМПв +tile.drone_crate.desc=ППгрузПчМП-разгрузПчМая тПчка Ўля траМспПртМых ЎрПМПв.$Действует как путевая тПчка, ЎПлжМа быть связаМа с лОМкерПЌ ЎрПМПв.$ДрПМы ЎПлжМы прОблОжаться пПЎ бПльшОЌ углПЌ, ОМаче ПМО застряМут. +tile.drone_crate_provider.name=ЯщОк сМабжеМОя Ўля ЎрПМПв +tile.drone_crate_provider.desc=ПреЎлагает преЎЌеты лПгОстОческПй сетО.$ЛПгОстОческОе ЎрПМы буЎут пытаться переЌестОть преЎЌеты Пт пПставщОкПв в ящОкО пПкупателей. +tile.drone_crate_requester.name=ЯщОк запрПса Ўля ЎрПМПв +tile.drone_crate_requester.desc=ЗапрашОвает преЎЌеты Оз лПгОстОческПй сетО.$ПреЎЌеты, ЎПбавлеММые в фОльтр, буЎут запрПшеМы, еслО Птсутствуют в егП ОМвеМтаре. +tile.drone_dock.name=ДрПМ-стаМцОя +tile.drone_dock.desc=ТПчка спауМа Ўля лПгОстОческОх ЎрПМПв.$МПжет ПбМаружОвать пПставщОкПв О заказчОкПв тПлькП в раЎОусе 5 чаМкПв.$ДрПМы буЎут слеЎПвать тПлькП ЎП 10 путевых тПчек за сПеЎОМеМОе. +tile.drone_waypoint.name=Путевая тПчка Ўля ЎрПМПв +tile.drone_waypoint.desc=Путевая тПчка Ўля ЎрПМПв$ИспПльзуйте лОМкер траМспПртМПгП ЎрПМа, чтПбы заЎать путь$НажОЌайте Ма кажЎую путевую тПчку О крейт пПслеЎПвательМП, чтПбы сПзЎать путь,$ затеЌ МажЌОте shift, чтПбы ПчОстОть сПхраМеММую пПзОцОю$ ЩелкМОте правПй кМПпкПй ЌышО ОлО shift, чтПбы ОзЌеМОть сЌещеМОе путевПй тПчкО +tile.drone_waypoint_request.name=ЛПгОстОческая путевая тПчка Ўля ЎрПМПв +item.drone.patrol.name=ТраМспПртМый ЎрПМ +item.drone.patrol.desc=Путешествует пП Ќаршруту с путевыЌО тПчкаЌО$Пытается загрузОться/разгрузОться кажЎый раз, кПгЎа ЎПстОгает ящОка с ЎрПМаЌО$Правый клОк Ма ящОке с ЎрПМаЌО Ўля разЌещеМОя. +item.drone.patrol_chunkloading.name=ТраМспПртМый ЎрПМ (ЧаМклПаЎер) +item.drone.patrol_chunkloading.desc=Путешествует пП Ќаршруту с путевыЌО тПчкаЌО$Пытается загрузОться/разгрузОться кажЎый раз, кПгЎа ЎПстОгает ящОка с ЎрПМаЌО$Правый клОк Ма ящОке с ЎрПМаЌО Ўля разЌещеМОя.$Загружает кускО! +item.drone.patrol_express.name=Быстрый траМспПртМый ЎрПМ +item.drone.patrol_express.desc=Путешествует пП Ќаршруту с путевыЌО тПчкаЌО$Пытается загрузОться/разгрузОться кажЎый раз, кПгЎа ЎПстОгает ящОка с ЎрПМаЌО$Правый клОк Ма ящОке с ЎрПМаЌО Ўля разЌещеМОя. +item.drone.patrol_express_chunkloading.name=Быстрый траМспПртМый ЎрПМ (ЧаМклПаЎер) +item.drone.patrol_express_chunkloading.desc=Путешествует пП Ќаршруту с путевыЌО тПчкаЌО$Пытается загрузОться/разгрузОться кажЎый раз, кПгЎа ЎПстОгает ящОка с ЎрПМаЌО$Правый клОк пПверх ящОка с ЎрПМаЌО Ўля разЌещеМОя.$Загружает кускО! +item.drone.request.name=ЛПгОстОческОй ЎрПМ +item.drone.request.desc=ИспПльзуется ЎПкаЌО лПгОстОческОх ЎрПМПв Ўля пПрПжЎеМОя лПгОстОческОх ЎрПМПв$ДрПМы слеЎуют пП путевыЌ тПчкаЌ лПгОстОческОх ЎрПМПв$ППсле выпПлМеМОя запрПса ЎрПМ вПзвращается в ЎПк. +item.drone_linker.name=СПеЎОМОтель пассОвМых ящОкПв Ўля ЎрПМПв + container.turretArty=Грег tile.turret_arty.name=АртОллерОйская турель "Грег" container.heaterFirebox=ТПпка @@ -2101,6 +2391,8 @@ tile.concrete_colored_ext.machine.name=БетПМ "ВыбПр стрПОтеля tile.concrete_colored_ext.machine_stripe.name=БетПМ "ВыбПр стрПОтеля" - ПрПЌышлеММая пПлПса tile.concrete_colored_ext.pink.name=БетПМ "ВыбПр стрПОтеля" - МужествеММый рПзПвый tile.concrete_colored_ext.purple.name=БетПМ "ВыбПр стрПОтеля" - ТаОМствеММый фОПлетПвый +tile.concrete_colored_ext.bronze.name=БетПМ "ВыбПр стрПОтеля" - БрПМза +tile.concrete_colored_ext.sand.name=БетПМ "ВыбПр стрПОтеля" - ПустыМя tile.concrete_slab.concrete.name=ПлОта Оз бетПММПй плОткО tile.concrete_slab.concrete_asbestos.name=ПлОта Оз асбестПбетПМа tile.concrete_slab.concrete_smooth.name=ПлОта Оз бетПМа @@ -2124,12 +2416,14 @@ tile.radio_torch_sender.name=РеЎстПуМ-раЎОП переЎатчОк tile.radio_torch_sender.desc=СтавОтся Ма плПскОе пПверхМПстО ОлО сПвЌестОЌые кПЌпаратПрМые блПкО$СчОтывает реЎстПуМ сОгМал ОлО вхПЎ кПЌпаратПра container.rttyReceiver=РеЎстПуМ-раЎОП прОёЌМОк container.rttySender=РеЎстПуМ-раЎОП переЎатчОк +tile.radio_telex.name=Телекс tile.machine_combustion_engine.name=ПрПЌышлеММый ЎвОгатель вМутреММегП сгПраМОя tile.machine_mixer.name=ПрПЌышлеММый сЌесОтель container.machineMixer=ПрПЌышлеММый сЌесОтель tile.machine_turbinegas.name=ГазПвая турбОМа кПЌбОМОрПваММПгП цОкла container.turbinegas=ГазПвая турбОМа кПЌбОМОрПваММПгП цОкла tile.machine_autosaw.name=АвтПЌатОческая пОла +tile.machine_autosaw.desc=Срубает блОжайшОе растеМОя, пересажОвает Ўеревья$ПрОМОЌает:$-ДревесМПе ЌаслП$-ЭтаМПл$-РыбМПе ЌаслП$-Тяжелую Мефть tile.machine_hephaestus.name=ГеПтерЌальМый теплППбЌеМОк tile.ore_volcano.name=ГеПтерЌальМый ОстПчМОк container.vacuumDistill=ВакууЌМый МефтеперерабатывающОй завПЎ @@ -2137,6 +2431,7 @@ tile.machine_vacuum_distill.name=ВакууЌМый Мефтеперерабат tile.machine_catalytic_reformer.name=КаталОтОческОй рефПрЌер container.catalyticReformer=КаталОтОческОй рефПрЌер tile.fan.name=ВеМтОлятПр +tile.fan.desc=АктОвОруется реЎстПуМПЌ$ТПлкает существ ЎП 10 блПкПв$ПКМ ПтвёрткПй чтПбы пПверМуть tile.watz.name=РеактПр Ватцз tile.watz_pump.name=НагМетающая пПЌпа Ватцза tile.machine_coker.name=КПксПвая устаМПвка @@ -2144,6 +2439,111 @@ tile.machine_coker.desc=КПксует жОЎкПсть, сПзЎавая жОЎ container.machineCoker=КПксПвая устаМПвка container.machineCompressor=КПЌпрессПр tile.machine_compressor.name=КПЌпрессПр +tile.chimney_brick.name=ДыЌПвая труба +tile.chimney_brick.desc=ППЎсПеЎОМяется с пПЌПщью выхлПпМых труб к ЌашОМаЌ$СПкращает выбрПсы загрязМяющОх веществ Ма 75%% +tile.chimney_industrial.name=ПрПЌышлеММая ЎыЌПвая труба +tile.chimney_industrial.desc=ППЎсПеЎОМяется с пПЌПщью выхлПпМых труб к ЌашОМаЌ$СПкращает выбрПсы загрязМяющОх веществ Ма 90%% +tile.radio_torch_counter.name=РеЎстПуМ-раЎОП счётчОк преЎЌетПв +tile.radio_torch_counter.desc=СтавОтся Ма плПскОе пПверхМПстО ОлО сПвЌестОЌые кПЌпаратПрМые блПкО$СОгМал завОсОт Пт кПлОчества МужМых преЎЌетПв +container.rttyCounter=РеЎстПуМ-раЎОП счётчОк преЎЌетПв +container.rttyLogic=РеЎстПуМ-раЎОП лПгОческОй прОёЌМОк +tile.radio_torch_logic.name=РеЎстПуМ-раЎОП лПгОческОй прОёЌМОк +tile.radio_torch_logic.desc=РазЌещается Ма плПскОх пПверхМПстях ОлО сПвЌестОЌых с кПЌпаратПрПЌ блПках$СПпПставляет сОгМалы красМПгП каЌМя с услПвОяЌО, ПцеМОваеЌыЌО в заЎаММПЌ пПряЎке$ЧОслПвые ОлО стрПкПвые вхПЎы сравМОваются с кПМстаМтПй +tile.machine_industrial_boiler.name=ПрПЌышлеММый бПйлер +tile.machine_industrial_boiler.desc=БПльшПй бПйлер, в кПтПрПЌ ЌПжМП вскОпятОть вПЎу ОлО разПгреть Мефть.$Требует вМешМОй ОстПчМОк тепла.$СкПрПсть переЎачО тепла: ΔT*0.01 TU/t$Не ЌПжет взПрваться +container.crateTemplate=СбПрПчМый ящОк +tile.crate_template.name=СбПрПчМый ящОк +container.machineElectrolyser=ЭлектрПлОзёр +tile.machine_electrolyser.name=ЭлектрПлОзёр +tile.lantern.name=СветОльМОк +tile.lantern_behemoth.name=Старый светОльМОк +container.ashpit=ЗПльМОк +tile.machine_ashpit.name=ЗПльМОк +tile.machine_ashpit.desc=СПбОрает зПлу Оз тПпПк О МагревательМых печей +tile.machine_stirling_creative.name=ТвПрческОй геМератПр СтОрлОМга +tile.machine_stirling_creative.desc=Превращает теплП в эМергОю. Требует вМешМОй ОстПчМОк тепла.$СкПрПсть теплПпереЎачО: T*0.1 TU/t$БескПМечМПе пПтреблеМОе/t$ЭффектОвМПсть: 100%% +tile.machine_conveyor_press.name=КПМвейерМый пресс +tile.machine_conveyor_press.desc=ЛеМта ЎвОгается слевП-МаправП$ПКМ чтПбы устаМПвОть штаЌп$ПКМ ПтвёрткПй чтПбы сМять штаЌп +tile.pump_electric.name=ЭлектрОческОй МасПс Ўля груМтПвых вПЎ +tile.pump_electric.desc=ИспПльзует электрОчествП Ўля выкачОваМОя груМтПвых вПЎ$Выкачывает ЎП 10,000ЌБ/тОк$ДПлжМП быть разЌещеМП МОже Y:70 +tile.pump_steam.name=ПарПвПй МасПс Ўля груМтПвых вПЎ +tile.pump_steam.desc=ИспПльзует пар Ўля выкачОваМОя груМтПвых вПЎ$Выкачывает ЎП 1000ЌБ/тОк$ДПлжМП быть разЌещеМП МОже Y:70 +container.machineArcWelder=ДугПвПй сварщОк +tile.machine_arc_welder.name=ДугПвПй сварщОк +container.machineWoodBurner=ГеМератПр Ма ЎрПвах +tile.machine_wood_burner.name=ГеМератПр Ма ЎрПвах +tile.machine_wood_burner.desc=ГеМерОрует 100HE/тОк$СПбОрает зПлу$МПжет сжОгать жОЎкПстО с 25%% эффектОвМПстью за 1ЌБ/с +tile.machine_ore_slopper.name=ПерерабПтчОк беЎрПкПвПй руЎы +container.machineOreSlopper=П.Б.Р. + +container.machineICF=ICF +tile.icf.name=РеактПр ОМерцОальМПгП терЌПяЎерМПгП сОМтеза (ICF) +tile.icf_block.name=Лазер ICF +tile.icf_controller.name=КПМтрПллер лазера ICF +tile.icf_laser_component.capacitor.name=ЛазерМый кПМЎеМсатПр ICF +tile.icf_laser_component.casing.name=ОбшОвка лазера ICF +tile.icf_laser_component.cell.name=ЛазерМая ячейка ICF +tile.icf_laser_component.emitter.name=ЛазерМый Озлучатель ICF +tile.icf_laser_component.port.name=ППрт лазера ICF +tile.icf_laser_component.turbo.name=ТурбПусОлОтель лазера ICF +container.machineICFPress=ТПплОвМый пресс ICF +tile.machine_icf_press.name=ТПплОвМый пресс ICF +tile.machine_icf_press.desc=НапПлМяет тПплОвМые пеллеты ICF$Левый тПплОвМый слПт прОМОЌается сверху/сМОзу, правый - пП бПкаЌ$МюПМы О пеллеты ЌПгут пПЎаваться с любПй стПрПМы +tile.icf_component.name=СтабОлОзатПр ICF +tile.icf_component.structure.name=ОбшОвка ICF +tile.icf_component.structure_bolted.name=ОбшОвка ICF (ЗаклепаММый) +tile.icf_component.vessel.name=СтеМка актОвМПй зПМы ICF +tile.icf_component.vessel_welded.name=СтеМка актОвМПй зПМы ICF (СвареММая) +tile.struct_icf_core.name=ЯЎрП ОМерцОальМПгП терЌПяЎерМПгП реактПра (ICF) + +tile.cm_block.alloy.name=КПрпус ЌашОМы Оз прПЎвОМутПгП сплава +tile.cm_block.desh.name=КПрпус ЌашОМы Оз Ўеша +tile.cm_block.steel.name=КПрпус ЌашОМы Оз сталО +tile.cm_block.tcalloy.name=КПрпус ЌашОМы Оз техМецОевПй сталО +tile.cm_engine.bismuth.name=МПтПрМый блПк Оз вОсЌута +tile.cm_engine.desh.name=МПтПрМый блПк Оз Ўеша +tile.cm_engine.standard.name=МПтПрМый блПк +tile.cm_flux.name=ПрОеЌМОк МейтрПММПгП пПтПка +tile.cm_heat.name=ТеплПпрОеЌМОк +tile.cm_port.alloy.name=Люк Оз прПЎвОМутПгП сплава +tile.cm_port.desh.name=Люк Оз Ўеша +tile.cm_port.steel.name=Люк Оз сталО +tile.cm_port.tcalloy.name=Люк Оз техМецОевПй сталО +tile.cm_sheet.alloy.name=ЛОст Оз прПЎвОМутПгП сплава +tile.cm_sheet.desh.name=ЛОст Оз Ўеша +tile.cm_sheet.steel.name=ЛОст Оз сталО +tile.cm_sheet.tcalloy.name=ЛОст Оз техМецОевПй сталО +tile.cm_tank.alloy.name=Бак Оз прПЎвОМутПгП сплава +tile.cm_tank.desh.name=Бак Оз Ўеша +tile.cm_tank.steel.name=Бак Оз сталО +tile.cm_tank.tcalloy.name=Бак Оз техМецОевПй сталО +tile.cm_circuit.aluminium.name=БлПк ЌОкрПсхеЌ 1-гП урПвМя +tile.cm_circuit.copper.name=БлПк ЌОкрПсхеЌ 2-гП урПвМя +tile.cm_circuit.gold.name=БлПк ЌОкрПсхеЌ 4-гП урПвМя +tile.cm_circuit.red_copper.name=БлПк ЌОкрПсхеЌ 3-гП урПвМя +tile.cm_circuit.schrabidium.name=БлПк ЌОкрПсхеЌ 5-гП урПвМя + +tile.pwr_block.name=ВПЎП-вПЎяМПй эМергетОческОй реактПр (ВВЭР) +tile.pwr_casing.name=ВМешМяя ПбшОвка ВВЭР +tile.pwr_casing.desc=Для фПрЌОрПваМОя реактПра МеПбхПЎОЌП пПкрыть все вМутреММОе частО$РазЌещеМОе: ОбшОвка +tile.pwr_channel.name=КаМалы с ПхлаЎОтелеЌ ВВЭР +tile.pwr_channel.desc=ИспПльзует теплП кПрпуса Ўля Магрева ПхлажЎающей жОЎкПстО$РазЌещеМОе: ЛюбПе +tile.pwr_control.name=РегулОрующОе стержМО ВВЭР +tile.pwr_control.desc=ППзвПляет управлять разЌещёММыЌО тПплОвМыЌО стержМяЌО$РазЌещеМОе: ВМутрО, ЌежЎу тПплОвМыЌО стержМяЌО +tile.pwr_controller.name=КПМтрПллер ВВЭР +tile.pwr_controller.desc=ПаМель управлеМОя ВВЭР$РазЌещеМОе: ОбшОвка, тПлькП ПЎОМ Ма весь реактПр$ПКМ чтПбы сПбрать реактПр +tile.pwr_fuel.name=ТПплОвМый стержеМь ВВЭР +tile.pwr_fuel.desc=УвелОчОвает вЌестОЌПсть тПплОва$РазЌещеМОе: ВМутрО, пПвышает реактОвМПсть +tile.pwr_heatex.name=ТеплППбЌеММОк ВВЭР +tile.pwr_heatex.desc=ПереЌещает теплП Оз актОвМПй зПМы Ма кПрпус$РазЌещеМОе: ЛюбПе +tile.pwr_neutron_source.name=ИстПчМОк МейтрПМПв ВВЭР +tile.pwr_neutron_source.desc=ДПбавляет 20 еЎОМОц пПтПка в актОвМую зПМу$РазЌещеМОе: ЛюбПе$ППтПк ЎПстОгает тПплОвМых стержМей еслО ЌежЎу МОЌО МОчегП Мет +tile.pwr_port.name=Люк ЎПступа ВВЭР +tile.pwr_port.desc=ВвПЎ/вывПЎ жОЎкПстей О преЎЌетПв$РазЌещеМОе: ОбшОвка +tile.pwr_reflector.name=НейтрПММый Птражатель ВВЭР +tile.pwr_reflector.desc=Отражает МейтрПМы ПбратМП к тПплОвМыЌ стержМяЌ$РазЌещеМОе: ВМутрО, пПвышает реактОвМПсть$ППЎхПЎОт Ўля ПбшОвкО +tile.pwr_heatsink.name=РаЎОатПр ВВЭР +tile.pwr_heatsink.desc=УвелОчОвает теплПеЌкПсть актОвМПй зПМы Ма 5%%$Делает каМалы ПхлажЎающей жОЎкПстО О теплППбЌеММОкО чуть ЌеМее эффектОвМыЌО$РазЌещеМОе: ЛюбПе container.hadron=УскПрОтель частОц tile.hadron_access.name=ТерЌОМал ЎПступа ускПрОтеля частОц @@ -2164,6 +2564,10 @@ tile.hadron_coil_gold.name=ПлПтМая зПлПтая катушка tile.hadron_coil_magtung.name=ПлПтМая сверхпрПвПЎящая 4000K катушка tile.hadron_coil_neodymium.name=ПлПтМая МеПЎОЌПвая катушка tile.hadron_coil_schrabidate.name=ПлПтМая шрабОЎатавая катушка +tile.hadron_cooler.name=Кулер ускПрОтеля частОц +tile.hadron_cooler.desc=МПщМПсть ПхлажЎеМОя: 10$ППрПг переПхлажЎеМОя: 10$БПМус: +10%%$Ктраф переПхлажЎеМОя: -25%% +tile.hadron_cooler_mk2.name=Кулер ускПрОтеля частОц - The Palindrome Special +tile.hadron_cooler_mk2.desc=МПщМПсть ПхлажЎеМОя: 5$ЀуМкцОя эффектОвМПстО: 2-(ПхлаЎ-15)²/225$Макс. штраф: -90%% tile.hadron_diode.name=ДОПЎ частОц КПтткО tile.hadron_plating.name=ОбшОвка ускПрОтеля частОц tile.hadron_plating_black.name=ОбшОвка ускПрОтеля частОц (ЧёрМый) @@ -2173,6 +2577,8 @@ tile.hadron_plating_striped.name=ОбшОвка ускПрОтеля частО tile.hadron_plating_voltz.name=ОбшОвка ускПрОтеля частОц (ВОЛЬТЗ) tile.hadron_plating_yellow.name=ОбшОвка ускПрОтеля частОц (Жёлтый) tile.field_disturber.name=ППЎавОтель высПкПэМергОтОческОх пПлей +container.exposureChamber=КаЌера ПблучеМОя частОцаЌО +tile.machine_exposure_chamber.name=КаЌера ПблучеМОя частОцаЌО tile.barrel_plastic.name=БезПпасМый бПчПМПк™ tile.barrel_corroded.name=ПрПржавевшая бПчка @@ -2189,7 +2595,11 @@ tile.radiorec.name=FM раЎОП container.radiobox=FM переЎатчОк container.radiorec=FM раЎОП tile.muffler.name=ГлушОтель -tile.red_pylon.name=ЭлектрОческОй стПлб +tile.red_pylon.name=Малый электрОческОй стПлб +tile.red_pylon_medium_steel.name=СреЎМОй стальМПй электрОческОй стПлб +tile.red_pylon_medium_steel_transformer.name=СреЎМОй стальМПй электрОческОй стПлб с траМсфПрЌатПрПЌ +tile.red_pylon_medium_wood.name=СреЎМОй ЎеревяММый электрОческОй стПлб +tile.red_pylon_medium_wood_transformer.name=СреЎМОй ЎеревяММый электрОческОй стПлб с траМсфПрЌатПрПЌ item.wiring_red_copper.name=МПтПк прПвПЎа tile.rail_highspeed.name=ВысПкПскПрПстМые рельсы @@ -2202,6 +2612,16 @@ tile.rail_wood.name=ДеревяММые рельсы container.trainTram=ТраЌвай с плПскПй платфПрЌПй item.train.cargo_tram.name=ТраЌвай с плПскПй платфПрЌПй +tile.rail_large_buffer.name=СтаМЎартМый буферМый упПрМый рельс (5ÐŒ) +tile.rail_large_curve.name=СтаМЎартМая крОвая кПлея (5ÐŒ) +tile.rail_large_curve_7.name=СтаМЎартМая крОвая кПлея (7ÐŒ) +tile.rail_large_curve_9.name=СтаМЎартМая крОвая рельса (9ÐŒ) +tile.rail_large_ramp.name=СтаМЎартМая раЌпа (5ÐŒ) +tile.rail_large_straight.name=СтаМЎартМая кПлея (5ÐŒ) +tile.rail_large_straight_short.name=СтаМЎартМая кПлея (1ÐŒ) +tile.rail_large_switch.name=Переключатель стаМЎартМПй кПлеО (15ÐŒ, левый) +tile.rail_large_switch_flipped.name=Переключатель стаМЎартМПй кПлеО (15ÐŒ, правый) + tile.factory_titanium_hull.name=КПрпус базПвПй фабрОкО tile.factory_titanium_furnace.name=Люк ЎПступа базПвПй фабрОкО tile.factory_titanium_conductor.name=ППрт электрОчества базПвПй фабрОкО @@ -2227,6 +2647,7 @@ tile.rbmk_absorber.name=БПрМый пПглПтОтель МейтрПМПв tile.rbmk_blank.name=СтруктурМая кПлПММа РБМК tile.rbmk_boiler.name=ПарПвПй каМал РБМК tile.rbmk_loader.name=ПарПвПй прПвПЎМОк РБМК +tile.rbmk_loader.desc=ППзвПляет РБМК ОЌеть вМОзу сПеЎОМеМОя Ўля вПЎы О пара$ППЌестОте ПЎМу вПЎМую трубу пПЎ кПлПММПй РБМК, затеЌ прПвПЎМОк,$пПтПЌ пПЎключОте парПпрПвПЎ к прПвПЎМОку. tile.rbmk_control.name=РегулОрующОе стержМО РБМК tile.rbmk_control_auto.name=АвтПЌатОческОе регулОрующОе стержМО РБМК tile.rbmk_moderator.name=ГрафОтПвый заЌеЎлОтель РБМК @@ -2240,7 +2661,9 @@ tile.rbmk_control_mod.name=ЗаЌеЎляющОе регулОрующОе ст tile.rbmk_rod_mod.name=ЗаЌеЎляющОе тПплОвМые стержМО РБМК tile.rbmk_rod_reasim_mod.name=ЗаЌеЎляющОе тПплОвМые стержМО РБМК (РеаСОЌ) tile.rbmk_steam_inlet.name=ППрт ввПЎа вПЎы РБМК РеаСОЌ +tile.rbmk_steam_inlet.desc=ППЎает вПЎу в кПлПММы RBMK, еслО включеМы ReaSim бПйлеры$ППЎключается к кПлПММаЌ RBMK сбПку tile.rbmk_steam_outlet.name=ППрт вывПЎа пара РБМК РеаСОЌ +tile.rbmk_steam_outlet.desc=Извлекает перегретый пар Оз кПлПММ РБМК, еслО включеМы ReaSim бПйлеры$ППЎключается к кПлПММаЌ RBMK сбПку tile.deco_rbmk.name=ДекП-блПкО РБМК tile.deco_rbmk_smooth.name=ГлаЎкОе ЎекП-блПкО РБМК container.rbmkBoiler=ПарПвПй каМал РБМК @@ -2363,7 +2786,15 @@ item.bobmazon_hidden.name=Скрытый каталПг item.fuse.name=ПреЎПхраМОтель item.arc_electrode.name=ГрафОтПвый электрПЎ +item.arc_electrode.desh.name=Деш-электрПЎ +item.arc_electrode.graphite.name=ГрафОтПвый электрПЎ +item.arc_electrode.lanthanium.name=ЛаМтаМПвый электрПЎ +item.arc_electrode.saturnite.name=СатурМОтПвый электрПЎ item.arc_electrode_burnt.name=РасплавлеММый электрПЎ +item.arc_electrode_burnt.desh.name=РасплавлеММый Деш-электрПЎ +item.arc_electrode_burnt.graphite.name=РасплавлеММый графОтПвый электрПЎ +item.arc_electrode_burnt.lanthanium.name=РасплавлеММый лаМтаМПвый электрПЎ +item.arc_electrode_burnt.saturnite.name=РасплавлеММый сатурМОтПвый электрПЎ item.arc_electrode_desh.name=ЭлектрПЎ Оз Ўеш item.crt_display.name=ЭлектрПММП-лучевая трубка @@ -2406,6 +2837,8 @@ item.ingot_gh336.name=СлОтПк гОПрсОя-336 item.ingot_gh336.desc=КПллега СОбПргОуЌа. item.niter.name=СелОтра +item.nitra.name=НОтра +item.nitra_small.name=Кучка МОтры item.ingot_copper.name=СлОтПк прПЌышлеММПй ЌеЎО item.ingot_red_copper.name=СлОтПк красМПй ЌеЎО item.ingot_tungsten.name=ВПльфраЌПвый слОтПк @@ -2416,6 +2849,7 @@ item.ingot_steel_dusted.name=ЗапылёММПй стальМПй слОтПк item.ingot_chainsteel.name=Тяжёлая цепМая сталь item.ingot_tcalloy.name=СлОтПк техМецОевПй сталО item.plate_steel.name=СтальМая пластОМа +item.plate_dura_steel.name=ПластОМа высПкПскПрПстМПй сталО item.ingot_beryllium.name=БерОллевый слОтПк item.plate_schrabidium.name=КрабОЎОевая пластОМа item.ingot_schraranium.name=КрараМОевый слОтПк @@ -2428,6 +2862,7 @@ item.ingot_schrabidium.name=КрабОЎОевый слОтПк item.nugget_schrabidium.name=КрабОЎОевый саЌПрПЎПк item.plate_copper.name=МеЎМая пластОМа item.board_copper.name=МеЎМая паМель +item.ingot_bscco.name=СлОтПк BSCCO item.ingot_advanced_alloy.name=СлОтПк прПЎвОМутПгП сплава item.plate_advanced_alloy.name=ПластОМа прПЎвОМутПгП сплава item.wire_advanced_alloy.name=СверхпрПвПЎМОк @@ -2447,12 +2882,15 @@ item.ingot_zirconium.name=ЊОркПМОевый куб item.ingot_boron.name=БПрМый слОтПк item.ingot_graphite.name=ГрафОтПвый слОтПк item.ingot_bismuth.name=СлОтПк вОсЌута +item.ingot_bismuth_bronze.name=СлОтПк вОсЌутПвПй брПМзы item.cube_power.name=Куб электрПМОя item.ingot_smore.name=СлОтПк с'ЌПра item.ingot_niobium.name=НОПбОевый слОтПк item.ingot_firebrick.name=КаЌПтМый кОрпОч item.ingot_calcium.name=КальцОевый слОтПк -item.plate_cast.name=ЛОтая %s пластОМа +item.plate_cast.name=ЛОтая пластОМа Оз %s +item.heavy_component.name=Тяжёлый кПЌпПМеМт Оз %s +item.plate_welded.name=СвареММая пластОМа Оз %s item.ingot_pvc.name=ПВХ item.ingot_pet.name=МеталлОзОрПваММый алюЌОМОеЌ брусПк ПЭТ item.ingot_pc.name=ТверЎый пластОкПвый брусПк @@ -2467,6 +2905,9 @@ item.plate_armor_ajr.name=КПваМая железМая ПбшОвка брП item.plate_armor_fau.name=ОбшОвка брПМО Ѐау item.plate_armor_dnt.name=ОбшОвка ДНТ-брПМО item.armor_polish.name=ППлОрПль Ўля брПМО КайМОМгАрЌПр™ +item.armor_battery.name=АккуЌулятПрМый блПк Ўля сОлПвПй брПМО +item.armor_battery_mk2.name=АккуЌулятПрМый блПк Ўля сОлПвПй брПМО Mk2 +item.armor_battery_mk3.name=АккуЌулятПрМый блПк Ўля сОлПвПй брПМО Mk3 item.insert_esapi.name=ESAPI пластОМы item.insert_kevlar.name=КевларПвые пластОМы item.insert_sapi.name=SAPI пластОМы @@ -2504,7 +2945,6 @@ item.insert_doxium.name=АстПльфОй-легОрПваММая ДПксОе item.wd40.name=VT-40 item.injector_5htp.name=АвтПОМъектПр 5-гОЎрПксОтрОптПфаМа item.injector_knife.name=АвтПОМъектПр 8 ЎюйЌПвПгП лезвОя -item.v1.name=V1 item.holotape_image.name=ГПлПЎОск item.holotape_damaged.name=ППврежЎёММый гПлПЎОск @@ -2515,12 +2955,15 @@ item.plate_paa.name=ПластОМа сплава PaA item.ingot_dura_steel.name=ВысПкПскПрПстМая сталь item.ingot_polymer.name=ППлОЌер item.ingot_rubber.name=РезОМа +item.ingot_biorubber.name=БрусПк латекса item.ingot_polonium.name=СлОтПк пПлПМОя-210 -item.bolt_dura_steel.name=ВысПкПскПрПстМПй стальМПй стержеМь +item.pipentm.name=Труба Оз %s item.pipes_steel.name=СтальМые трубы item.pipes_steel.desc=Раскрафт был ОсключеМ Оз-за уклПМеМОя Пт уплаты МалПгПв item.drill_titanium.name=ТОтаМПвый бур -item.bolt_tungsten.name=ВПльфраЌПвый стержеМь +item.boltntm.name=СтержеМь Оз %s +item.bolt_spike.name=ЖелезМПЎПрПжМый гвПзЎь +item.bolt_spike.desc=Излучает угрПжающую ауру, как-тП item.bolt_compound.name=УкреплеММый вал турбОМы item.plate_polymer.name=ИзПлятПр item.ingot_solinium.name=СПлОМОевый слОтПк @@ -2549,6 +2992,7 @@ item.nugget_unobtainium.name=НеЎПстатОевый саЌПрПЎПк item.nugget_daffergon.name=ДаффергПМПвый саЌПрПЎПк item.nugget_verticium.name=ВертОцОевый саЌПрПЎПк item.nugget_zirconium.name=ОскПлПк цОркПМОя +item.nugget_niobium.name=СаЌПрПЎПк МОПбОя item.ingot_desh.name=СлОтПк Ўеш item.nugget_desh.name=СаЌПрПЎПк Ўеш @@ -2572,6 +3016,7 @@ item.ingot_asbestos.name=АсбестПвый лОст item.ingot_asbestos.desc=§o"НапПлМеММый жОзМью, МеувереММПстью в себе О асбестПЌ. ЭтП прОхПЎОт вЌесте с вПзЎухПЌ."§r item.ingot_arsenic.name=СлОтПк Ќышьяка item.nugget_arsenic.name=СаЌПрПЎПк Ќышьяка +item.ingot_arsenic_bronze.name=СлОтПк ЌышьякПвПй брПМзы item.solid_fuel.name=ТверЎПе тПплОвП item.solid_fuel_bf.name=ТверЎПе тПплОвП (Жар-плаЌя) @@ -2656,11 +3101,14 @@ item.crystal_trixite.name=КрОсталлОзПваММый трОксОт item.crystal_coal.name=КрОсталлОзПваММый угПль item.crystal_cinnebar.name=КрОсталлОзПваММая кОМПварь item.crystal_lapis.name=КрОсталОзПваММый лазурОт +item.ingot_cft.name=КрОсталлОческОй фуллерОт item.gem_tantalium.name=ППлОкрОсталл таМтала item.gem_tantalium.desc='ТаМталуЌ' item.gem_tantalium.desc.P11=АКА ТаМталОй. item.gem_alexandrite.name=АлексаМЎрОт item.gem_volcanic.name=ВулкаМОческОй саЌПцвет +item.gem_rad.name=РаЎОПактОвМый саЌПцвет +item.gem_sodalite.name=СПЎалОт item.black_diamond.name=ЧёрМый алЌаз item.crystal_cobalt.name=КрОсталОзПваММый кПбальт item.crystal_osmiridium.name=КрОсталОзПваММый ПсЌОрОЎОй @@ -2678,6 +3126,8 @@ item.wire_aluminium.name=АлюЌОМОевый прПвПЎ item.wire_copper.name=МеЎМый прПвПЎ item.wire_gold.name=ЗПлПтПй прПвПЎ item.wire_schrabidium.name=КрабОЎОевый прПвПЎ +item.wire_dense.name=ПлПтМый прПвПЎ Оз %s +item.wire_fine.name=ПрПвПЎ Оз %s item.circuit_raw.name=СбПрка прПстПй ЌОкрПсхеЌы item.circuit_bismuth_raw.name=СбПрка уМОверсальМПгП чОпсета item.circuit_arsenic_raw.name=СбПрка гОбкПй ЌОкрПсхеЌы @@ -2701,6 +3151,10 @@ item.circuit_star.desc=Не ОспПльзуется сейчас Оз-за Пт item.circuit_star_component.chipset.name=ЧОпсет ЗвёзЎМПгП ДОспетчера item.circuit_star_component.cpu.name=ПрПцессПр ЗвёзЎМПгП ДОспетчера item.circuit_star_component.ram.name=ОператОвМая паЌять ЗвёзЎМПгП ДОспетчера +item.circuit_star_component.card.name=Карта расшОреМОя ЗвёзЎМПгП ДОспетчера +item.circuit_star_piece.board_converter.name=ЗД - ПреПбразПватель МапряжеМОя +item.circuit_star_piece.card_board.name=ЗД - Плата карты расшОреМОя +item.circuit_star_piece.card_processor.name=ЗД - ПрПцессПр платы расшОреМОя item.circuit_star_piece.board_blank.name=ЗД - ПечатМая плата item.circuit_star_piece.board_transistor.name=ЗД - ТраМзОстПры item.circuit_star_piece.bridge_bios.name=ЗД - ЧОп БИОС @@ -2721,6 +3175,22 @@ item.circuit_star_piece.mem_16k_a.name=ЗД - СлПт Ўля карты ПаЌ item.circuit_star_piece.mem_16k_b.name=ЗД - СлПт Ўля карты ПаЌятО 16k B item.circuit_star_piece.mem_16k_c.name=ЗД - СлПт Ўля карты ПаЌятО 16k C item.circuit_star_piece.mem_16k_d.name=ЗД - СлПт Ўля карты ПаЌятО 16k D +item.circuit.advanced.name=ВПеММая ЌОкрПсхеЌа +item.circuit.analog.name=АМалПгПвая плата +item.circuit.basic.name=ИМтегральМая схеЌа +item.circuit.bismoid.name=ПереЎПвая ЌОкрПсхеЌа +item.circuit.capacitor.name=КПМЎеМсатПр +item.circuit.capacitor_board.name=КПМЎеМсатПрМая плата +item.circuit.capacitor_tantalium.name=ТаМталПвый кПМЎеМсатПр +item.circuit.chip.name=МОкрПчОп +item.circuit.chip_bismoid.name=ПереЎПвПй ОМтегральМый ЌОкрПчОп +item.circuit.pcb.name=ПечатМая плата +item.circuit.silicon.name=ПечатМая креЌМОевая пластОМа +item.circuit.vacuum_tube.name=ВакууЌМая трубка +item.circuit.atomic_clock.name=АтПЌМые часы +item.circuit.chip_quantum.name=ТверЎПтельМый кваМтПвый прПцессПр +item.circuit.controller_quantum.name=КваМтПвый кПЌпьютер +item.circuit.quantum.name=УстрПйствП кваМтПвПй ПбрабПткО item.mechanism_revolver_1.name=РевПльверМый ЌехаМОзЌ item.mechanism_revolver_2.name=УсПвершеМствПваММый ревПльверМый ЌехаМОзЌ item.mechanism_rifle_1.name=ВОМтПвПчМый ЌехаМОзЌ @@ -2728,6 +3198,11 @@ item.mechanism_rifle_2.name=УсПвершеМствПваММый вОМтПв item.mechanism_launcher_1.name=МехаМОзЌ запуска item.mechanism_launcher_2.name=УсПвершеМствПваММый ЌехаМОзЌ запуска item.mechanism_special.name=МехаМОзЌ высПкПтехМПлПгОчМПгП ПружОя +item.circuit.controller.name=БлПк управлеМОя +item.circuit.controller_advanced.name=ПрПЎвОМутый блПк управлеМОя +item.circuit.controller_chassis.name=КПрпус блПка управлеМОя +item.item_secret.canister.name=КПЌпПзОт SB-26 +item.item_secret.controller.name=ПрПпрОетарМый блПк управлеМОя item.primer_357.name=КапсюлО МагМуЌа .357 (x24) item.primer_44.name=КапсюлО МагМуЌа .44 (x24) @@ -2784,12 +3259,21 @@ tile.block_waste_vitrified.name=БлПк ПстеклПваММых яЎерМы tile.block_fallout.name=БлПк раЎОПактОвМых ПсаЎкПв tile.fallout.name=РаЎОПактОвМый ПсаЎПк tile.ash_digamma.name=Пепел +item.powder_cement.name=ЊеЌеМт +item.powder_limestone.name=ИзвестМякПвый пПрПшПк +item.powder_ash.coal.name=УгПльМая зПла +item.powder_ash.fly.name=Летучая зПла +item.powder_ash.misc.name=Пепел +item.powder_ash.soot.name=Мелкая сажа +item.powder_ash.wood.name=ДревесМая зПла +item.powder_ash.fullerene.name=ЀуллереМ tile.glass_ash.name=ПепельМПе стеклП tile.fire_digamma.name=ЗатяжМая ДОгаЌЌа tile.balefire.name=Жар-плаЌя tile.block_waste_painted.name=ППкрашеММый блПк яЎерМых ПтхПЎПв tile.block_scrap.name=БлПк ЌеталлПлПЌа tile.block_slag.name=БлПк шлака +tile.oil_spill.name=РазлОтая Мефть tile.pribris.name=ОблПЌкО РБМК tile.pribris_digamma.name=ППчерМевшОе ПблПЌкО РБМК tile.pribris_burning.name=ГПрящОе ПблПЌкО РБМК @@ -2893,8 +3377,11 @@ tile.ore_nether_schrabidium.name=АЎская шрабОЎОевая руЎа tile.ore_nether_cobalt.name=АЎская кПбальтПвая руЎа tile.ore_nether_coal.name=ГПрящая руЎа аЎскПгП угля tile.ore_nether_smoldering.name=ТлеющОй аЎскОй каЌеМь -tile.ore_meteor_aluminium.name=МетеПрОтМая алюЌОМОевая руЎа -tile.ore_meteor_copper.name=МетеПрОтМая ЌеЎМая руЎа +tile.ore_meteor.aluminium.name=МетеПрОтМая алюЌОМОевая руЎа +tile.ore_meteor.copper.name=МетеПрОтМая ЌеЎМая руЎа +tile.ore_meteor.cobalt.name=МетеПрОтМая кПбальтПвая руЎа +tile.ore_meteor.iron.name=МетеПрОтМая железМая руЎа +tile.ore_meteor.rareearth.name=МетеПрОтМая реЎкПзеЌельМая руЎа tile.ore_meteor_sulfur.name=МетеПрОтМая серМая руЎа tile.ore_meteor_titanium.name=МетеПрОтМая тОтаМПвая руЎа tile.ore_meteor_tungsten.name=МетеПрОтМая вПльфраЌПвая руЎа @@ -2912,6 +3399,7 @@ tile.ore_unobtainium.name=БрайтблеМЎ tile.ore_daffergon.name=ДеллОт tile.ore_verticium.name=ДПлларПвый ЗелёМый ЌОМерал tile.ore_rare.name=РеЎкПзеЌельМая руЎа +item.chunk_ore.rare.name=КусПк реЎкПзеЌельМПй руЎы tile.ore_oil.name=НефтяМПй карЌаМ tile.ore_oil_empty.name=ПустПй МефтяМПй карЌаМ tile.ore_oil_sand.name=БОтуЌПзМый песПк @@ -2936,18 +3424,68 @@ tile.ore_cobalt.name=КПбальтПвая руЎа tile.stone_porous.name=ППрОстый каЌеМь tile.ore_random.name=РуЎа %s tile.ore_bedrock.name=БеЎрПкПвая руЎа +tile.ore_sellafield_diamond.name=СеллафОтПвая алЌазМая руЎа +tile.ore_sellafield_emerald.name=СеллафОтПвая ОзуЌруЎМая руЎа +tile.ore_sellafield_schrabidium.name=СеллафОтПвая шрабОЎОевая руЎа +tile.ore_sellafield_uranium_scorched.name=ОбПжжеММая селлафОтПвая ураМПвая руЎа +tile.ore_sellafield_radgem.name=СеллафОтПвый раЎОПактОвМый саЌПцвет item.ore.asbestos=АсбестПвая item.ore.borax=БурПвая item.ore.chlorocalcite=ХлПркальцОтПвая item.ore.copper=МеЎМая +item.ore.fluorite=ЀлюПрОтМая item.ore.gold=ЗПлПтая +item.ore.hematite=ГеЌатОтПвая item.ore.iron=ЖелезМая +item.ore.malachite=МалахОтПвая +item.ore.neodymium=НеПЎОЌПвая item.ore.niobium=НОПбОевая item.ore.titanium=ТОтаМПвая item.ore.tungsten=ВПльфраЌПвая -item.ore.thorium=ТПрОевая +item.ore.thorium232=ТПрОевая item.ore.uranium=УраМПвая +item.bedrock_ore_base.name=НеПбрабПтаММая беЎрПкПвая руЎа +item.bedrock_ore.grade.base.name=%s беЎрПкПвая руЎа +item.bedrock_ore.grade.base_roasted.name=ОбПжжеММая %s беЎрПкПвая руЎа +item.bedrock_ore.grade.base_washed.name=ПрПЌытая %s беЎрПкПвая руЎа +item.bedrock_ore.grade.primary.name=%s беЎрПкПвая руЎа, ПервОчМая фракцОя +item.bedrock_ore.grade.primary_roasted.name=%s беЎрПкПвая руЎа, ОбПжжеММая первОчМая фракцОя +item.bedrock_ore.grade.primary_sulfuric.name=%s беЎрПкПвая руЎа, СерМая первОчМая фракцОя +item.bedrock_ore.grade.primary_nosulfuric.name=%s беЎрПкПвая руЎа, ОтЎелёММая серМая первОчМая фракцОя +item.bedrock_ore.grade.primary_solvent.name=%s беЎрПкПвая руЎа, РаствПреММая первОчМая фракцОя +item.bedrock_ore.grade.primary_nosolvent.name=%s беЎрПкПвая руЎа, ОтЎелёММая раствПреММая первОчМая фракцОя +item.bedrock_ore.grade.primary_rad.name=%s беЎрПкПвая руЎа, ОчОщеММая первОчМая фракцОя +item.bedrock_ore.grade.primary_norad.name=%s беЎрПкПвая руЎа, ОтЎелёММая ПчОщеММая первОчМая фракцОя +item.bedrock_ore.grade.primary_first.name=%s беЎрПкПвая руЎа, ПервОчМая фракцОя, БПльшПй вес +item.bedrock_ore.grade.primary_second.name=%s беЎрПкПвая руЎа, ПервОчМая фракцОя, Малый вес +item.bedrock_ore.grade.crumbs.name=%s кускО беЎрПкПвПй руЎы +item.bedrock_ore.grade.sulfuric_byproduct.name=%s беЎрПкПвая руЎа, СерМая пПбПчка +item.bedrock_ore.grade.sulfuric_roasted.name=%s беЎрПкПвая руЎа, ОбПжжеММая серМая пПбПчка +item.bedrock_ore.grade.sulfuric_arc.name=%s беЎрПкПвая руЎа, ПереплавлеММая серМая пПбПчка +item.bedrock_ore.grade.sulfuric_washed.name=%s беЎрПкПвая руЎа, ПрПЌытая серМая пПбПчка +item.bedrock_ore.grade.solvent_byproduct.name=%s беЎрПкПвая руЎа, РаствПреММая пПбПчка +item.bedrock_ore.grade.solvent_roasted.name=%s беЎрПкПвая руЎа, ОбПжжеММая раствПреММая пПбПчка +item.bedrock_ore.grade.solvent_arc.name=%s беЎрПкПвая руЎа, ПереплавлеММая раствПреММая пПбПчка +item.bedrock_ore.grade.solvent_washed.name=%s беЎрПкПвая руЎа, ПрПЌытая раствПреММая пПбПчка +item.bedrock_ore.grade.rad_byproduct.name=%s беЎрПкПвая руЎа, ОчОщеММая пПбПчка +item.bedrock_ore.grade.rad_roasted.name=%s беЎрПкПвая руЎа, ОбПжжеММая ПчОщеММая пПбПчка +item.bedrock_ore.grade.rad_arc.name=%s беЎрПкПвая руЎа, ПереплавлеММая ПчОщеММая пПбПчка +item.bedrock_ore.grade.rad_washed.name=%s беЎрПкПвая руЎа, ПрПЌытая ПчОщеММая пПбПчка +item.bedrock_ore_fragment.name=ЀрагЌеМт Пт %s руЎа +item.bedrock_ore.type.actinide.name=АктОМОЎМая +item.bedrock_ore.type.crystal.name=КрОсталлОческая +item.bedrock_ore.type.heavy.name=Тяжелая ЌеталлОческая +item.bedrock_ore.type.light.name=Легкая ЌеталлОческая +item.bedrock_ore.type.nonmetal.name=НеЌеталлОческая +item.bedrock_ore.type.rare.name=РеЎкПзеЌельМая +item.bedrock_ore.trait.arc=§6ДугПвая плавка +item.bedrock_ore.trait.centrifuged=§9ЊеМтрОфугОрПваММый +item.bedrock_ore.trait.rad=§aОбрабПтаММый высПкПэффектОвМыЌ раствПрОтелеЌ +item.bedrock_ore.trait.roasted=§eОбжОг в кПксПвПй печО +item.bedrock_ore.trait.solvent=§fОбрабПтаММый раствПрОтелеЌ +item.bedrock_ore.trait.sulfuric=§6ОбрабПтаММый серМПй кОслПтПй +item.bedrock_ore.trait.washed=§bПрПЌытый в ПкОслОтеле вПЎПй item.ore_bedrock.name=%s беЎрПкПвая руЎа item.ore_centrifuged.name=ЊеМтрОфугОрПваММая %s беЎрПкПвая руЎа item.ore_cleaned.name=ОчОщеММая %s беЎрПкПвая руЎа @@ -2976,6 +3514,8 @@ item.ore_byproduct.b_uranium.name=УраМПвый пПбПчМый прПЎук item.ammonium_nitrate.name=НОтрат аЌЌПМОя tile.bobblehead.name=БПлваМчОк +tile.snowglobe.name=СМежМый шар +tile.plushie.name=Плюшевая Огрушка %s tile.deco_titanium.name=ТОтаМПвый ЎекПратОвМый блПк tile.deco_red_copper.name=КрасМПЌеЎМый ЎекПратОвМый блПк tile.deco_tungsten.name=ВПльфраЌПвый ЎекПратОвМый блПк @@ -3021,6 +3561,7 @@ tile.hazmat.name=БлПк защОтМПй ткаМО tile.deco_emitter.name=ДекПратОвМый ОстПчМОк света tile.part_emitter.name=ДекПратОвМый ОстПчМОк частОц tile.piston_inserter.name=ВставщОк +tile.piston_inserter.desc=МПжет прОМОЌать ПЎОМ преЎЌет$ЕслО пПЎаМ сОгМал реЎстПуМа, тП вставОт преЎЌет в прПсверлеММый графОт$Все преЎЌеты в прПсверлеММПЌ графОте в цепПчке буЎут сЎвОМуты Ма ПЎОМ блПк$Требуется ПЎОМ блПк вПзЎуха ЌежЎу графОтПЌ tile.plant_flower.foxglove.name=НаперстяМка tile.plant_flower.nightshade.name=БеллаЎПММа tile.plant_flower.tobacco.name=Табак @@ -3051,6 +3592,10 @@ tile.lamp_tritium_blue_off.name=СОМяя трОтОевая лаЌпа tile.lamp_tritium_blue_on.name=СОМяя трОтОевая лаЌпа tile.lamp_tritium_green_off.name=ЗелёМая трОтОевая лаЌпа tile.lamp_tritium_green_on.name=ЗелёМая трОтОевая лаЌпа +tile.spotlight_incandescent.name=ЛаЌпа в клетке +tile.spotlight_fluoro.name=ЀлюПресцеМтМая лаЌпа +tile.spotlight_halogen.name=ГалПгеММый прПжектПр +tile.floodlight.name=ЭлектрОческОй прПжектПр tile.lamp_demon.name=ЛаЌпа Оз заряЎа-ЎеЌПМа tile.reinforced_stone.name=УплПтМеММый каЌеМь tile.concrete_smooth.name=БетПМ @@ -3083,6 +3628,9 @@ tile.brick_dungeon_circle.name=БерцелОаМОтПвый круг tile.brick_dungeon_flat.name=БерцелОаМОт tile.brick_dungeon_tile.name=БерцелОаМОтПвая плОтка tile.brick_jungle.name=ЭМаргОтПвые кОрпОчО +tile.stone_keyhole.name=СтраММый каЌеМь +tile.brick_red.name=КОрпОчО красМПй кПЌМаты +tile.pedestal.name=ПьеЎестал tile.brick_jungle_circle.name=Круг МехаМОста tile.brick_jungle_cracked.name=ППтрескаММые эМаргОтПвые кОрпОчО tile.brick_jungle_fragile.name=ХрупкОе эМаргОтПвые кОрпОчО @@ -3092,10 +3640,11 @@ tile.brick_jungle_mystic.name=МагОческОе эМаргОтПвые кОр tile.brick_jungle_ooze.name=РаЎОПактОвМые эМаргОтПвые кОрпОчО tile.brick_jungle_trap.name=ЭМаргОтПвые кОрпОчО-лПвушка tile.basalt.name=Базальт -tile.basalt_asbestos.name=БПгатый асбестПЌ базальт -tile.basalt_fluorite.name=БПгатый флюПрОтПЌ базальт -tile.basalt_sulfur.name=БПгатый серПй базальт -tile.basalt_gem.name=БПгатый ЎрагПцеММыЌО каЌМяЌО базальт +tile.ore_basalt_asbestos.name=БПгатый асбестПЌ базальт +tile.ore_basalt_fluorite.name=БПгатый флюПрОтПЌ базальт +tile.ore_basalt_gem.name=БПгатый саЌПцветаЌО базальт +tile.ore_basalt_molysite.name=БПгатый ЌПлОзОтПЌ базальт +tile.ore_basalt_sulfur.name=БПгатый серПй базальт tile.basalt_brick.name=БазальтПвые кОрпОчО tile.basalt_polished.name=ППлОрПваММый базальт tile.basalt_smooth.name=ГлаЎкОй базальт @@ -3117,6 +3666,8 @@ tile.ducrete_debris.name=ДюкретПвые ПблПЌкО tile.reinforced_ducrete.name=УсОлеММый Ўюкрет tile.asphalt.name=Асфальт tile.asphalt_light.name=АсфальтОрПваММый светящОйся каЌеМь +tile.asphalt_stairs.name=СтупеМькО Оз асфальта +tile.concrete_slab.asphalt.name=ПлОта Оз асфальта tile.stone_gneiss.name=ГрафОтПвый слаМец tile.stone_depth.name=ГлубОММый каЌеМь tile.stone_depth_nether.name=АЎскОй глубОММый каЌеМь @@ -3159,6 +3710,7 @@ tile.ladder_sturdy.name=ПрПчМая ЎеревяММая лестМОца tile.ladder_titanium.name=ТОтаМПвая лестМОца tile.ladder_tungsten.name=ВПльфраЌПвая лестМОца tile.volcano_core.name=ВулкаМОческПе яЎрП +tile.volcano_rad_core.name=РаЎОПактОвМПе вулкаМОческПе яЎрП tile.concrete_super.name=Убер-бетПМ tile.concrete_super_broken.name=ЗаЌшелые бетПММые ПблПЌкО @@ -3170,8 +3722,9 @@ tile.barbed_wire_fire.name=Пылающая кПлючая прПвПлПка tile.barbed_wire_poison.name=ОтравлеММая кПлючая прПвПлПка tile.barbed_wire_acid.name=КОслПтМая кПлючая прПвПлПка tile.barbed_wire_wither.name=Иссушающая кПлючая прПвПлПка -tile.barbed_wire_ultradeath.name=РПзПвППблачМая кПлючая прПвПлПка +tile.barbed_wire_ultradeath.name=РаЎОПактОвМая кПлючая прПвПлПка tile.fence_metal.name=ПрПвПлПчМая сетка +tile.fence_metal_post.name=СтПлб прПвПлПчМПй сеткО tile.sand_uranium.name=УраМПвый песПк tile.glass_uranium.name=УраМПвПе стеклП tile.glass_trinitite.name=ТрОМОтОтПвПе стеклП @@ -3182,7 +3735,9 @@ tile.moon_turf.name=ЛуММый груМт tile.seal_frame.name=РаЌа люка пускПвПй щахты tile.seal_controller.name=Открыватель люка пускПвПй щахты -tile.seal_hatch.name=Люк пускПвПй щахты +tile.seal_hatch.name=Люк пускПвПй шахты +tile.silo_hatch.name=СОлПсМый люк +tile.silo_hatch_large.name=БПльшПй сОлПсМый люк tile.vault_door.name=Дверь убежОща Vault-Tec tile.blast_door.name=РазЎвОжМые ЎверО tile.transition_seal.name=ТраМзОтМый люк @@ -3190,10 +3745,22 @@ tile.fire_door.name=ППжарМая Ўверь item.door_metal.name=МеталлОческая Ўверь item.door_office.name=ОфОсМая Ўверь item.door_bunker.name=БуМкерМая Ўверь - tile.door_metal.name=МеталлОческая Ўверь tile.door_office.name=ОфОсМая Ўверь tile.door_bunker.name=БуМкерМая Ўверь +item.door_red.name=КрасМая Ўверь +tile.door_red.name=КрасМая Ўверь +tile.sliding_blast_door.name=РазЎвОжМая Ўверь +item.sliding_blast_door_skin.0.name=СкОМ разЎвОжМПй ЎверО: ОбычМый +item.sliding_blast_door_skin.1.name=СкОМ разЎвОжМПй ЎверО: ВарОаМт 1 +item.sliding_blast_door_skin.2.name=СкОМ разЎвОжМПй ЎверО: ВарОаМт 2 +tile.large_vehicle_door.name=Дверь Ўля крупМПгабарОтМых автПЌПбОлей +tile.water_door.name=ППЎвПЎМая Ўверь +tile.qe_containment.name=QE Дверь бОПлПгОческПгП сЎержОваМОя +tile.qe_sliding_door.name=QE РазЎвОжМая Ўверь +tile.round_airlock_door.name=Круглый шлюз +tile.secure_access_door.name=Дверь с ОзПлОрПваММыЌ ЎПступПЌ +tile.sliding_seal_door.name=РазЎвОжМая герЌетОчМая Ўверь item.nugget_uranium.name=УраМПвый саЌПрПЎПк item.nugget_plutonium.name=ПлутПМОевый саЌПрПЎПк @@ -3214,7 +3781,7 @@ item.powder_iron.name=ЖелезМый пПрПшПк item.powder_gold.name=ЗПлПтПй пПрПшПк item.powder_aluminium.name=АлюЌОМОевый пПрПшПк item.powder_asbestos.name=АсбестПвый пПрПшПк -item.powder_asbestos.desc=§o\"ЀЀЀЀЀЀЀЀЀЀ- ММХХХХХХХХХХХХХ\"§r +item.powder_asbestos.desc=§o"ЀЀЀЀЀЀЀЀЀЀ- ММХХХХХХХХХХХХХ"§r item.powder_beryllium.name=БерОллОевый пПрПшПк item.powder_copper.name=МеЎМый пПрПшПк item.powder_titanium.name=ТОтаМПвый пПрПшПк @@ -3285,6 +3852,7 @@ item.powder_zirconium.name=ЊОркПМОевый пПрПшПк item.powder_boron.name=БПрМый пПрПшПк item.powder_borax.name=Бура item.powder_chlorocalcite.name=ХлПркальцОт +item.powder_molysite.name=МПлОзОт item.powder_boron_tiny.name=Кучка бПрМПгП пПрПшка item.powder_at209.name=ППрПшПк астата-209 item.powder_au198.name=ППрПшПк зПлПта-198 @@ -3309,6 +3877,7 @@ item.powder_sr90.name=ППрПшПк стрПМцОя-90 item.powder_sr90_tiny.name=Кучка пПрПшка стрПМцОя-90 item.powder_sawdust.name=ДревесМые ПпОлкО item.powder_flux.name=Ѐлюс +item.powder_sodium.name=НатрОй item.fragment_neodymium.name=НеПЎОЌПвый ПскПлПк item.fragment_cobalt.name=КПбальтПвый ПскПлПк @@ -3386,6 +3955,7 @@ item.upgrade_shredder.name=УлучшеМОе "ИзЌельчОтель" item.upgrade_centrifuge.name=УлучшеМОе "ЊеМтрОфуга" item.upgrade_crystallizer.name=УлучшеМОе "КрОсталлОзатПр" item.upgrade_nullifier.name=УлучшеМОе "УМОчтПжОтель ЌусПра" +item.upgrade_muffler.name=УлучшеМОе "ГлушОтель" item.upgrade_screm.name=УлучшеМОе "КрОчащОй учёМый" item.upgrade_gc_speed.name=УлучшеМОе "РазгПМ газПвПй цеМтрОфугО" item.upgrade_5g.name=УлучшеМОе "5G ОзлучеМОе" @@ -3541,6 +4111,15 @@ item.fluid_barrel_full.name=ЖОЎкПстМая бПчка: item.fluid_tank_lead_empty.name=ПустПй резервуар Ўля ПпасМых ЌатерОалПв item.fluid_tank_lead_full.name=Резервуар с ПпасМыЌО ЌатерОалаЌО: item.fluid_barrel_infinite.name=БескПМечМая жОЎкПстМая бПчка +item.siphon.name=СОфПМ +desc.item.pileRod=§eПКМ пП прПсверлеММПЌу графОту Ўля вставкО$§eПКМ ПтвёрткПй чтПбы Озвлечь$ +desc.item.pipette.corrosive=МПжет рабПтать с кПррПзОйМыЌО жОЎкПстяЌО. +desc.item.pipette.laboratory=Теперь с 50-кратМПй тПчМПстью! +desc.item.pipette.noCorrosive=§eНе ЌПжет рабПтать с кПррПзОйМыЌО жОЎкПстяЌО. +desc.item.pipette.noEmpty=§eПОпетка Ме пуста! +item.pipette.name=ПОпетка +item.pipette_boron.name=БПрМая пОпетка +item.pipette_laboratory.name=ЛабПратПрМая пОпетка item.rod_of_discord.name=Жезл разЎПра item.rod_empty.name=ПустПй стержеМь @@ -3598,6 +4177,52 @@ item.rod_quad.waste.name=СчетверёММый стержеМь с яЎерМ item.rod_quad.lead.name=СчетверёММый свОМцПвый стержеМь item.rod_quad.uranium.name=СчетверёММый ураМПвый стержеМь +item.pwr_fuel.bfb_am_mix.name=СтержеМь ВВЭР ЊБР с реактПрМыЌ аЌерОцОеЌ +item.pwr_fuel.bfb_pu241.name=СтержеМь ВВЭР ЊБР с плутПМОеЌ-241 +item.pwr_fuel.hea242.name=ТПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ аЌерОцОеЌ-242 +item.pwr_fuel.hen237.name=ТПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ МептуМОеЌ-237 +item.pwr_fuel.hep239.name=ТПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ плутПМОеЌ-239 +item.pwr_fuel.hep241.name=ТПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ плутПМОеЌ-241 +item.pwr_fuel.hes326.name=ТПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ шрабОЎОеЌ-326 +item.pwr_fuel.hes327.name=ТПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ шрабОЎОеЌ-327 +item.pwr_fuel.heu233.name=ТПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ ураМПЌ-233 +item.pwr_fuel.heu235.name=ТПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ ураМПЌ-235 +item.pwr_fuel.mea.name=ТПплОвМый стержеМь ВВЭР сП среЎМеПбПгащеММыЌ аЌерОцОеЌ +item.pwr_fuel.men.name=ТПплОвМый стержеМь ВВЭР сП среЎМеПбПгащеММыЌ МептуМОеЌ +item.pwr_fuel.mep.name=ТПплОвМый стержеМь ВВЭР сП среЎМеПбПгащеММыЌ плутПМОеЌ +item.pwr_fuel.meu.name=ТПплОвМый стержеМь ВВЭР сП среЎМеПбПгащеММыЌ ураМПЌ +item.pwr_fuel.mox.name=ТПплОвМый стержеМь ВВЭР с МОКС-тПплОвПЌ +item.pwr_fuel_depleted.bfb_am_mix.name=ОбеЎМеММый стержеМь ВВЭР ЊБР с реактПрМыЌ аЌерОцОеЌ +item.pwr_fuel_depleted.bfb_pu241.name=ОбеЎМеММый стержеМь ВВЭР ЊБР с плутПМОеЌ-241 +item.pwr_fuel_depleted.hea242.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ аЌерОцОеЌ-242 +item.pwr_fuel_depleted.hen237.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ МептуМОеЌ-237 +item.pwr_fuel_depleted.hep239.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ плутПМОеЌ-239 +item.pwr_fuel_depleted.hep241.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ плутПМОеЌ-241 +item.pwr_fuel_depleted.hes326.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ шрабОЎОеЌ-326 +item.pwr_fuel_depleted.hes327.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ шрабОЎОеЌ-327 +item.pwr_fuel_depleted.heu233.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ ураМПЌ-233 +item.pwr_fuel_depleted.heu235.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР с высПкППбПгащеММыЌ ураМПЌ-235 +item.pwr_fuel_depleted.mea.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР сП среЎМеПбПгащеММыЌ аЌерОцОеЌ +item.pwr_fuel_depleted.men.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР сП среЎМеПбПгащеММыЌ МептуМОеЌ +item.pwr_fuel_depleted.mep.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР сП среЎМеПбПгащеММыЌ плутПМОеЌ +item.pwr_fuel_depleted.meu.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР сП среЎМеПбПгащеММыЌ ураМПЌ +item.pwr_fuel_depleted.mox.name=ОбеЎМеММый тПплОвМый стержеМь ВВЭР с МОКС-тПплОвПЌ +item.pwr_fuel_hot.bfb_am_mix.name=ГПрячОй стержеМь ВВЭР ЊБР с реактПрМыЌ аЌерОцОеЌ +item.pwr_fuel_hot.bfb_pu241.name=ГПрячОй стержеМь ВВЭР ЊБР с плутПМОеЌ-241 +item.pwr_fuel_hot.hea242.name=ГПрячОй стержеМь ВВЭР с высПкППбПгащеММыЌ аЌерОцОеЌ-242 +item.pwr_fuel_hot.hen237.name=ГПрячОй стержеМь ВВЭР с высПкППбПгащеММыЌ МептуМОеЌ-237 +item.pwr_fuel_hot.hep239.name=ГПрячОй стержеМь ВВЭР с высПкППбПгащеММыЌ плутПМОеЌ-239 +item.pwr_fuel_hot.hep241.name=ГПрячОй стержеМь ВВЭР с высПкППбПгащеММыЌ плутПМОеЌ-241 +item.pwr_fuel_hot.hes326.name=ГПрячОй стержеМь ВВЭР с высПкППбПгащеММыЌ шрабОЎОеЌ-326 +item.pwr_fuel_hot.hes327.name=ГПрячОй стержеМь ВВЭР с высПкППбПгащеММыЌ шрабОЎОеЌ-327 +item.pwr_fuel_hot.heu233.name=ГПрячОй стержеМь ВВЭР с высПкППбПгащеММыЌ ураМПЌ-233 +item.pwr_fuel_hot.heu235.name=ГПрячОй стержеМь ВВЭР с высПкППбПгащеММыЌ ураМПЌ-235 +item.pwr_fuel_hot.mea.name=ГПрячОй стержеМь ВВЭР сП среЎМеПбПгащеММыЌ аЌерОцОеЌ +item.pwr_fuel_hot.men.name=ГПрячОй стержеМь ВВЭР сП среЎМеПбПгащеММыЌ МептуМОеЌ +item.pwr_fuel_hot.mep.name=ГПрячОй стержеМь ВВЭР сП среЎМеПбПгащеММыЌ плутПМОеЌ +item.pwr_fuel_hot.meu.name=ГПрячОй стержеМь ВВЭР сП среЎМеПбПгащеММыЌ ураМПЌ +item.pwr_fuel_hot.mox.name=ГПрячОй стержеМь ВВЭР с МОКС-тПплОвПЌ + item.billet_mox_fuel.name=ЗагПтПвка МОКС-тПплОва item.billet_mox_fuel.desc=КарЌаММый МПксО! item.billet_neptunium.name=ЗагПтПвка МептуМОя @@ -3653,6 +4278,9 @@ item.billet_nuclear_waste.name=ЗагПтПвка яЎерМых ПтхПЎПв item.billet_ra226.name=ЗагПтПвка раЎОя-226 item.billet_pb209.name=ЗагПтПвка свОМца-209 item.billet_actinium.name=ЗагПтПвка актОМОя-227 +item.billet_silicon.name=КреЌМОевая пластОМа +item.ingot_silicon.name=КреЌМОевый брусПк +item.nugget_silicon.name=СаЌПрПЎПк креЌМОя item.rbmk_pellet_balefire.name=Жар-тПплОвМая пеллета item.rbmk_pellet_balefire_gold.name=ЀлэшгПлЎ-тПплОвМая пеллета @@ -3686,6 +4314,10 @@ item.rbmk_pellet_zfb_am_mix.name=ЊТС пеллета аЌерОцОя реак item.rbmk_pellet_zfb_bismuth.name=ВОсЌутПвая ЊТС пеллета item.rbmk_pellet_zfb_pu241.name=ПлутПМОй-241 ЊТС пеллета +item.icf_pellet.name=ТПплОвМая пеллета ICF +item.icf_pellet_depleted.name=ОбеЎМеММая тПплОвМая пеллета ICF +item.icf_pellet_empty.name=Пустая тПплОвМая пеллета ICF + item.rod_uranium_fuel_depleted.name=ТПплОвМый стержеМь с ПбеЎМёММыЌ ураМПЌ item.rod_dual_uranium_fuel_depleted.name=СЎвПеММый тПплОвМый стержеМь с ПбеЎМёММыЌ ураМПЌ item.rod_quad_uranium_fuel_depleted.name=СчетверёММый тПплОвМый стержеМь с ПбеЎМёММыЌ ураМПЌ @@ -3893,7 +4525,7 @@ item.grenade_nuke.name=БурПвая граМата “Марк VI” item.grenade_nuclear.name=ЯЎерМая граМата item.grenade_zomg.name=ГраМата аММОгОляцОО пар ПтрОцательМПй эМергОО item.grenade_black_hole.name=ГраМата сОМгулярМПстО -item.grenade_cloud.name=КПлба с ПблакПЌ +item.grenade_cloud.name=КПлба с кОслПтМыЌ ПблакПЌ item.grenade_pink_cloud.name=КПлба с рПзПвыЌ ПблакПЌ item.ullapool_caber.name=АллапульскПе бревМП item.grenade_smart.name=СЌарт-граМата @@ -4023,7 +4655,7 @@ item.glowing_stew.name=ТушеМые светящОеся грОбы item.balefire_scrambled.name=Жар-яОчМОца item.balefire_and_ham.name=ВетчОМа О жар-яйца item.lemon.name="ЛОЌПМ" -item.definitelyfood.name=ИРП ЌаркО “ТПчМПНеГрязь” +item.definitelyfood.name=ИРП item.pudding.name=ПуЎОМг item.loops.name=ПəтлО item.loop_stew.name=Завтрак IT-шМОка @@ -4043,6 +4675,8 @@ tile.tape_recorder.name=МагМОтПфПМ tile.steel_poles.name=СтальМые ПпПры tile.pole_top.name=АМтеММа tile.deco_computer.ibm_300pl.name=ПерсПМальМый кПЌпьютер IBM 300PL +tile.deco_crt.name=Старый ЭЛТ-экраМ +tile.deco_toaster.name=СлПЌаММый тПстер tile.filing_cabinet.green.name=ПыльМый картПчеМый шкафчОк tile.filing_cabinet.steel.name=СтальМПй картПчеМый шкафчОк container.fileCabinet=КартПчеМый шкафчОк @@ -4066,7 +4700,7 @@ item.gun_revolver_cursed.name=ПрПклятый ревПльвер item.gun_revolver_nightmare.name=КПшЌарМый ревПльвер (ОрОгОМал) item.gun_revolver_nightmare2.name=КПшЌарМый ревПльвер (ТёЌМый) item.gun_revolver_pip.name=ЛОл' ПОпсквОк -item.gun_revolver_nopip.name=НПвак +item.gun_revolver_nopip.name=Тяжёлый ревПльвер item.gun_revolver_blackjack.name=ПятОзаряЎМый ревПльвер БлэкЎжек item.gun_revolver_silver.name=ОЎПлжеММый пОстПлет item.gun_revolver_red.name=РевПльвер с красМыЌ ключПЌ @@ -4124,6 +4758,8 @@ item.gun_mymy.name=Ньетес item.gun_ar15.name="ДжПш" item.gun_glass_cannon.name=СтекляММая пушка item.boltgun.name=ПМевЌатОческОй заклепПчМОк +item.gun_congolake.name=Congo Lake +item.gun_cryocannon.name=КрОПпушка item.gun_revolver_iron_ammo.name=Пуля item.gun_revolver_ammo.name=СвОМцПвая пуля @@ -4171,6 +4807,7 @@ item.gun_hp_ammo.name=ЧерМОльМый картрОЎж item.gun_euthanasia_ammo.name=КпрОцы item.gun_defabricator_ammo.name=ЭМергетОческОе ячейкО ДефабрОкатПра item.ammo_cell.name=ЭМергП-патрПМы +item.ammo_grenade_leadburster.name=40ЌЌ ЛОЎбастер item.ammo_12gauge.name=Картечь 12 калОбра item.ammo_12gauge_incendiary.name=Картечь 12 калОбра (ЗажОгательМая) @@ -4329,11 +4966,16 @@ item.ammo_arty_phosphorus.name=ЀПсфПрМый 16-ЎюйЌПвый артОл item.ammo_arty_phosphorus_multi.name=ЀПсфПрМый 16-ЎюйЌПвый ЌультО-сМаряЎ item.ammo_arty_mini_nuke_multi.name=МОМО-яЎерМый 16-ЎюйЌПвый ЌультО-сМаряЎ item.ammo_arty_phosgene.name=ЀПсгеМПвый 16-ЎюйЌПвый артОллерОйскОй сМаряЎ -item.ammo_arty_mustard_gas.name=16-ЎюйЌПвый артОллерОйскОй сМаряЎ с гПрчОчМыЌ газПЌ +item.ammo_arty_mustard_gas.name=16-ЎюйЌПвый артОллерОйскОй сМаряЎ с ОпрОтПЌ item.ammo_arty_chlorine.name=ХлПрМый 16-ЎюйЌПвый артОллерОйскОй сМаряЎ item.ammo_luna.name=ЛуММый сМайперскОй сабПтажМый сМаряЎ item.ammo_luna_explosive.name=ЛуММый сМайперскОй взрывМПй сМаряЎ item.ammo_luna_incendiary.name=ЛуММый сМайперскОй зажОгательМый сМаряЎ +item.gun_benelli.name=АвтПЌатОческОй ЎрПбПвОк Benelli (БарабаМ) +item.gun_coilgun.name=Гаусс-пушка +item.ammo_coilgun.name=ВПльфраЌПвый шар Ўля гаусс-пушкО +item.ammo_coilgun_du.name=ЀеррПураМОевый шар Ўля гаусс-пушкО +item.ammo_coilgun_rubber.name=РезОМПвый шар Ўля гаусс-пушкО item.gun_fireext.name=ОгМетушОтель item.ammo_fireext.name=Бак с вПЎПй Ўля ПгМетушОтеля @@ -4346,6 +4988,7 @@ item.ball_dynamite.name=ДОМаЌОт item.ball_tnt.name=ТНТ item.ball_tatb.name=TATB item.ball_fireclay.name=КаЌПтМая глОМа +item.ball_resin.name=Латекс item.plate_kevlar.name=КевларП-кераЌОческОй сПстав item.weaponized_starblaster_cell.name=§cСЌПМтОрПваММая эМергетОческая ячейка ЗвезЎМПгП бластера§r @@ -4423,7 +5066,7 @@ item.syringe_metal_psycho.name=ПсОхП item.syringe_metal_super.name=Супер-стОЌулятПр item.syringe_taint.name=ВПЎяМОстая ОМъекцОя пПрчО item.syringe_mkunicorn.name=MKUNICORN -item.med_bag.name=ДПктПрскОй саквПяж +item.med_bag.name=Аптечка первПй пПЌПщО item.radaway.name=АМтОраЎОМ item.radaway_strong.name=УсОлеММый аМтОраЎОМ item.radaway_flush.name=Супер-аМтОраЎОМ @@ -4437,7 +5080,8 @@ item.fmn.name=Таблетка флуМОтразепаЌа item.xanax.name=Препарат "НАКСА" прПтОв ЎОгаЌЌы item.five_htp.name=ТаблеткО эМтераЌОМа item.siox.name=ЛекарствП Пт рака "SiOx" -item.antiknock.name=АМтОЎетПМацОПММПе среЎствП Ма ПсМПве ТетраэтОлсвОМца +item.fuel_additive.antiknock.name=АМтОЎетПМацОПММПе среЎствП Оз ТетраэтОлсвОМца +item.fuel_additive.deicer.name=АМтОПблеЎеМОтель item.pirfenidone.name=ПОрфеМОЎПМ item.plan_c.name=ПлаМ С item.med_ipecac.name=СОрПп Оз рвПтМПгП кПрМя @@ -4467,6 +5111,9 @@ item.rag.name=Тряпка item.rag_damp.name=ВлажМая тряпка item.rag_piss.name=ПрПпОтаММая ЌПчПй тряпка item.safety_fuse.name=ЀОтОль +item.night_vision.name=ОчкО МПчМПгП зреМОя +item.night_vision.description.item=Даёт МПчМПе зреМОе (МужЎается в пПлМПЌ электрОческПЌ сете) +item.night_vision.description.in_armor=%s (Ўаёт МПчМПе зреМОе) entity.hbm.entity_bullet.name=Пуля entity.hbm.entity_rocket.name=Ракета @@ -4482,21 +5129,26 @@ entity.entity_tesla_crab.name=Теслакраб entity.entity_taint_crab.name=ЗаражёММый пПрчей теслакраб entity.entity_elder_one.name=КрякПс СтаршОй entity.entity_ntm_fbi.name=АгеМт ЀБР +entity.entity_ntm_fbi_drone.name=ДрПМ ЀБР entity.entity_ntm_radiation_blaze.name=ЭлеЌеМталь РасплавлеМОя entity.entity_glyphid.name=ГлОфОЎ entity.entity_glyphid_behemoth.name=ГлОфОЎ-страж entity.entity_glyphid_brawler.name=ГлОфОЎ-сПлЎат entity.entity_glyphid_brenda.name=БреМЎа entity.entity_glyphid_nuclear.name=ЧЌяк -entity.entity_glyphid_scout.name=ГлОфОЎ-паучПк +entity.entity_glyphid_scout.name=ГлОфОЎ-скаут entity.entity_glyphid_blaster.name=ГлОфОЎ-стрелПк entity.entity_glyphid_bombardier.name=ГлОфОЎ-бПЌбарЎОр +entity.entity_glyphid_digger.name=ГлОфОЎ-кПпатель +entity.entity_parasite_maggot.name=ПаразОтОческая лОчОМка entity.hbm.entity_balls_o_tron.name=Баллс-О-ТрПМ ПрайЌ entity.hbm.entity_balls_o_tron_seg.name=Баллс-О-ТрПМ СегЌеМт entity.hbm.entity_ntm_ufo.name=МарсОаМскОй кПрабль втПржеМОя entity.entity_ntm_dtrooper.name=ТёЌМый сПлЎат entity.entity_mob_gold_creeper.name=ЗПлПтПй крОпер entity.entity_mob_volatile_creeper.name=ВПзгПраеЌый крОпер +entity.entity_plastic_bag.name=ПластОкПвый пакетОк +entity.entity_pigeon.name=ГПлубь eye.respond.no=§c"Нет" eye.respond.nothing=...ОМП Ме Птвечает @@ -4506,7 +5158,9 @@ eye.speakTo.join="Я бы хПтел стать еЎОМыЌ" eye.speakTo.remember="Ты пПЌМОшь ктП ты?" eye.speakTo=Вы гПвПрОте Оку: §o%s +item.plastic_bag.name=ПластОкПвый пакетОк item.cap_aluminium.name=АлюЌОМОевый кПлпачПк +item.shellntm.name=ОбПлПчка Оз %s item.hull_small_steel.name=НебПльшая стальМая ПбПлПчка item.hull_small_aluminium.name=НебПльшая алюЌОМОевая ПбПлПчка item.hull_small_aluminium.desc=МПжет быть вставлеМ в прПсверлеММый графОт @@ -4589,6 +5243,7 @@ item.schrabidium_hoe.name=КрабОЎОевая ЌПтыга item.chlorophyte_pickaxe.name=ХлПрПфОтПвая кОрка item.mese_pickaxe.name=Месе кОрка item.volcanic_pickaxe.name=ЛОтая кОрка +item.dwarven_pickaxe.name=ДварфОйская кОрка item.jetpack_boost.name=ИЌпульсМый раМец item.jetpack_fly.name=РеактОвМый раМец @@ -4630,7 +5285,8 @@ item.designator_arty_range.name=АртОллерОйскОй целеуказа item.missile_assembly.name=СбПрка ЌалПй ракеты item.assembly_nuke.name=ОбПлПчка яЎерМПгП ЌОМОзаряЎа item.missile_generic.name=ЀугасМая ракета -item.missile_anti_ballistic.name=АМтОбаллОстОческая ракета (WIP) +item.missile_decoy.name=Ракета-прОЌаМка +item.missile_anti_ballistic.name=АМтОбаллОстОческая ракета item.missile_incendiary.name=ЗажОгательМая ракета item.missile_cluster.name=КластерМая ракета item.missile_buster.name=ПрПтОвПбуМкерМая ракета @@ -4648,6 +5304,7 @@ item.missile_nuclear_cluster.name=ТерЌПяЎерМая ракета item.missile_endo.name=ЭМЎПтерЌОческая ракета item.missile_exo.name=ЭкзПтерЌОческая ракета item.missile_doomsday.name=Ракета СуЎМПгП ДМя +item.missile_doomsday_rusted.name=ППврежЎёММая ракета СуЎМПгП ДМя item.missile_taint.name=ЗаражеММая ракета item.missile_micro.name=МОкрП-яЎерМая ракета item.missile_bhole.name=Ракета "ЧерМая Дыра" @@ -4790,17 +5447,8 @@ item.mp_thruster_20_solid.name=ТверЎПтПплОвМый ракетМый item.mp_thruster_20_solid_multi.name=ТверЎПтПплОвМые 30-сПплПвые ЎвОгателО 20-гП разЌера item.mp_thruster_20_solid_multier.name=ТверЎПтПплОвМые 47-сПплПвые ЎвОгателО 20-гП разЌера -item.missile_skin_camo.name=СкОМ Ракеты: КаЌуфляж -item.missile_skin_desert.name=СкОМ Ракеты: ПустыММый КаЌуфляж -item.missile_skin_flames.name=СкОМ Ракеты: Sick Flames -item.missile_skin_manly_pink.name=СкОМ Ракеты: МужествеММый РПзПвый -item.missile_skin_orange_insulation.name=СкОМ Ракеты: ОраМжевый ИзПлятПр -item.missile_skin_sleek.name=СкОМ Ракеты: IF-R&D -item.missile_skin_soviet_glory.name=СкОМ Ракеты: СПветская Слава -item.missile_skin_soviet_stank.name=СкОМ Ракеты: СПветская ВПМь -item.missile_skin_metal.name=СкОМ Ракеты: Металл - item.missile_custom.name=ППльзПвательская Ракета +item.missile_stealth.name=Стелс-ракета item.missile_carrier.name=Ракета-МПсОтель HTR-01 item.missile_soyuz.name=СПюз-ЀГ @@ -4819,6 +5467,7 @@ item.sat_chip.name=СпутМОкПвый ID-чОп item.sat_interface.name=ИМтерфейс спутМОкПвПгП управлеМОя item.sat_coord.name=СпутМОкПвый целеуказатель item.sat_designator.name=СпутМОкПвый лазерМый целеуказатель +item.sat_relay.name=СпутМОкПвый раЎарМый переЎатчОк tile.sat_mapper.name=СпутМОк Ўля картПграфОрПваМОя пПверхМПстО (ДекПр) tile.sat_scanner.name=СпутМОк с ЌПЎулеЌ глубОММП-ресурсМПгП скаМОрПваМОя (ДекПр) tile.sat_radar.name=СпутМОк с раЎОПлПкацОПММыЌ зПМЎОрПваМОеЌ (ДекПр) @@ -4916,10 +5565,19 @@ item.dieselsuit_boots.name=ВысПкОе каблукО с ЎОзельМыЌ item.dieselsuit_helmet.name=ГПлПвМПй ЎатчОк Пкружающей среЎы с ЎОзельМыЌ ЎвОгателеЌ item.dieselsuit_legs.name=СервПпрОвПЎы Ўля МПг с ЎОзельМыЌ прОвПЎПЌ item.dieselsuit_plate.name=КОберМетОка с ЎОзельМыЌ ЎвОгателеЌ +item.envsuit_boots.name=БПтОМкО защОтМПгП кПстюЌа M1TTY +item.envsuit_helmet.name=КлеЌ защОтМПгП кПстюЌа M1TTY +item.envsuit_legs.name=ППМПжО защОтМПгП кПстюЌа M1TTY +item.envsuit_plate.name=НагруЎМОк защОтМПгП кПстюЌа M1TTY +item.trenchmaster_boots.name=СапПгО траМшейщОка +item.trenchmaster_helmet.name=КлеЌ траМшейщОка +item.trenchmaster_legs.name=ППМПжО траМшейщОка +item.trenchmaster_plate.name=НагруЎМОк траМшейщОка tile.mush.name=СветящОйся грОб tile.waste_mycelium.name=СветящОйся ЌОцелОй +tile.sellafield_bedrock.name=БеЎрПкПвый селлафОт tile.sellafield_slaked.name=ППгашеММый селлафОт tile.sellafield.0.name=СеллафОт tile.sellafield.1.name=ГПрячОй селлафОт @@ -4960,6 +5618,7 @@ item.wand_k.name=СтрПОтельМая палПчка item.wand_s.name=СтруктурМая палПчка item.wand_d.name=ОтлаЎПчМая палПчка item.analyzer.name=АМалОзатПр +item.analysis_tool.name=АМалОзатПр item.screwdriver.name=Отвёртка item.screwdriver_desh.name=Деш-Птвёртка item.chemistry_set.name=ЛабПратПрМая пПсуЎа @@ -5073,6 +5732,10 @@ item.meteorite_sword_fused.name=МетеПрОтПвый Ќеч (Сплавле item.meteorite_sword_baleful.name=МетеПрОтПвый Ќеч (ЗлПвещОй) item.crucible.name="ГПрМОлП Палача" item.bismuth_pickaxe.name=ВОсЌутПвая кОрка +item.bismuth_axe.name=ВОсЌутПвый тПпПр +item.chlorophyte_axe.name=ХлПрПфОтПвый тПпПр +item.mese_axe.name=Месе тПпПр +item.volcanic_axe.name=ЛОтПй тПпПр tile.red_cable.name=ПрПвПЎ Оз красМПй ЌеЎО tile.red_cable_paintable.name=ОкрашОваеЌый прПвПЎ Оз красМПй ЌеЎО @@ -5101,13 +5764,8 @@ item.cape_radiation.name=Плащ (РаЎОацОя) item.cape_gasmask.name=Плащ (ПрПтОвПгаз) item.cape_schrabidium.name=Плащ (КрабОЎОй) item.cape_hidden.name=Скрытый плащ -item.cape_hbm.name=Hbm's Cape -item.cape_dafnik.name=Dafnik's Cape -item.cape_lpkukin.name=LPkukin's Cape -item.cape_vertice.name=Lord Vertice's Cape -item.cape_codered_.name=codered_'s Cape -item.cape_ayy.name=Ayy's Cape -item.cape_nostalgia.name=DrNostalgia's Cape +item.card_aos.name=ПОкПвый туз +item.card_qos.name=КПрПлева пОк tile.machine_converter_he_rf.name=КПМвертер эМергОО HE в RF tile.machine_converter_rf_he.name=КПМвертер эМергОО RF в HE @@ -5161,6 +5819,9 @@ item.detonator_de.name=Взрывчатка Ќертвеца item.crate_caller.name=ЗапрПсчОк пПставкО прОпасПв item.bomb_caller.name=УстрПйствП Ўля ПбПзМачеМОя авОауЎара item.meteor_remote.name=УстрПйствП Ўля вызПва ЌетеПрОтПв +item.launch_code.name=КПЎ запуска +item.launch_code_piece.name=КусПк кПЎа запуска +item.launch_key.name=Ключ запуска item.ingot_hes.name=ВысПкППбПгащеММый слОтПк шрабОЎОевПгП тПплОва item.ingot_les.name=НОзкППбПгащеММый слОтПк шрабОЎОевПгП тПплОва @@ -5207,6 +5868,8 @@ item.catalytic_converter.name=КаталОтОческОй кПМвертер tile.mud_block.name=ТПксОчМые ПтхПЎы fluid.mud_fluid=ТПксОчМые ПтхПЎы +tile.rad_lava_block.name=ВулкаМОческая лава +fluid.rad_lava_fluid=ВулкаМОческая лава item.bucket_mud.name=ВеЎрП тПксОчМых ПтхПЎПв tile.acid_block.name=КОслПта fluid.acid_fluid=КОслПта @@ -5241,6 +5904,7 @@ item.can_luna.name=ЧерМая Меза ЛуМа - ТеЌМая КПла item.can_bepis.name=БепОс item.can_breen.name=ЛОчМый резерв Др>БрОМа item.bottle_empty.name=Пустая бутылка в фПрЌе бПЌбы +item.bottled_cloud.name=ОблакП в бутылке item.bottle_nuka.name=Бутылка ЯЎер-кПлы item.bottle_cherry.name=Бутылка ЯЎер-вОшМО item.cbt_device.name=CBT-Ўевайс @@ -5372,6 +6036,15 @@ item.stamp_desh_44.name=КтаЌп пулО .44 МагМуЌ (Деш) item.stamp_desh_50.name=КтаЌп бПльшПгП калОбра (Деш) item.stamp_desh_9.name=КтаЌп ЌалПгП калОбра (Деш) +item.stamp_book.printing1.name=КтаЌп Ўля печатО (СтраМОца 1) +item.stamp_book.printing2.name=КтаЌп Ўля печатО (СтраМОца 2) +item.stamp_book.printing3.name=КтаЌп Ўля печатО (СтраМОца 3) +item.stamp_book.printing4.name=КтаЌп Ўля печатО (СтраМОца 4) +item.stamp_book.printing5.name=КтаЌп Ўля печатО (СтраМОца 5) +item.stamp_book.printing6.name=КтаЌп Ўля печатО (СтраМОца 6) +item.stamp_book.printing7.name=КтаЌп Ўля печатО (СтраМОца 7) +item.stamp_book.printing8.name=КтаЌп Ўля печатО (СтраМОца 8) + item.part_lithium.name=КПрПбка лОтОевПй пылО item.part_beryllium.name=КПрПбка берОллОевПй пылО item.part_carbon.name=КПрПбка угПльМПй пылО @@ -5380,6 +6053,8 @@ item.part_plutonium.name=КПрПбка плутПМОевПй пылО item.part_generic.piston_electric.name=ЭлектрОческОй пПршеМь item.part_generic.piston_hydraulic.name=ГОЎравлОческОй пПршеМь item.part_generic.piston_pneumatic.name=ПМевЌатОческОй пПршеМь +item.part_generic.lde.name=ЭлеЌеМт ЌалПй плПтМПстО +item.part_generic.hde.name=ЭлеЌеМт пПвышеММПй прПчМПстО item.particle_aelectron.name=Капсула с ППзОтрПМПЌ item.particle_amat.name=Капсула с АМтОЌатерОей item.particle_aproton.name=Капсула с АМтОпрПтПМПЌ @@ -5454,6 +6129,16 @@ item.digamma_diagnostic.name=ДОагМПстОка ЎОгаЌЌы tile.geiger.name=СчетчОк Гейгера tile.glass_polonium.name=ППлПМОевПе стеклП item.survey_scanner.name=СкаМер + +item.ore_density_scanner.name=СкаМер плПтМПстО беЎрПкПвПй руЎы +item.ore_density_scanner.excellent=ИзбытПк +item.ore_density_scanner.high=ВысПкОй +item.ore_density_scanner.low=НОзкОй +item.ore_density_scanner.moderate=СреЎМОй +item.ore_density_scanner.poor=БеЎМый +item.ore_density_scanner.veryhigh=ОчеМь высПкОй +item.ore_density_scanner.verypoor=ОчеМь беЎМый + item.coltan_tool.name=КПлтасс item.mirror_tool.name=ИМструЌеМт Ўля регулОрПвкО зеркал item.mirror_tool.linked=ППзОцОя выравМОваМОя устаМПвлеМа! @@ -5469,6 +6154,18 @@ item.anchor_remote.name=УстрПйствП вызПва item.acetylene_torch.name=АцетОлеМПвая сварПчМая гПрелка item.blowtorch.name=ПаяльМая лаЌпа +item.settings_tool.name=УстрПйствП МастрПйкО +copytool.filter=ЀОльтр +copytool.invertRedstone=ИМвертОрПваММый реЎстПуМ +copytool.invertFilter=ИМвертОрПваММый фОльтр +copytool.orientation=ОрОеМтацОя +copytool.pattern0=КрасМая стПрПМа +copytool.pattern1=ОраМжевая стПрПМа +copytool.pattern2=Желтая стПрПМа +copytool.pattern3=ЗелёМая стПрПМа +copytool.pattern4=СОМяя стПрПМа +copytool.pattern5=ЀОПлетПвая стПрПМа + item.multitool_dig.name=СОлПвая перчатка (ДПбывающОй кПгПть) item.multitool_silk.name=СОлПвая перчатка (КПгПть шёлкПвПгП касаМОя) item.multitool_ext.name=СОлПвая перчатка (Извлекатель руЎы) @@ -5504,6 +6201,15 @@ item.shackles.name=ОкПвы item.glitch.name=Глюк item.book_secret.name=3-596-50802-9 item.book_of_.name=КМОга ВагПМПв +item.book_lemegeton.name=ЛеЌегетПМ +item.page_of_.page1.name=СтраМОца 1 +item.page_of_.page2.name=СтраМОца 2 +item.page_of_.page3.name=СтраМОца 3 +item.page_of_.page4.name=СтраМОца 4 +item.page_of_.page5.name=СтраМОца 5 +item.page_of_.page6.name=СтраМОца 6 +item.page_of_.page7.name=СтраМОца 7 +item.page_of_.page8.name=СтраМОца 8 item.book_guide.name=РукПвПЎствП item.burnt_bark.name=ОбПжжеММая кПра item.burnt_bark.desc=КусПк кПры взПрваММПгП зПлПтПгП Ўуба. @@ -5684,7 +6390,7 @@ item.gun_twr.name=Time Warp Rifle (PLACEHOLDER) item.gun_uac_carbine.name=UAC Carbine item.gun_uac_dmr.name=UAC DMR item.gun_uac_lmg.name=UAC LMG -item.gun_uac_pistol.name=UAC .45 Pistol +item.gun_uac_pistol.name=ПОстПлет UAC .45 item.gun_uac_smg.name=UAC SMG item.gun_detonator.name=ЛазерМый ЎетПМатПр item.ingot_bk247.name=Berkelium-247 Ingot @@ -5716,7 +6422,6 @@ item.ingot_orichalcum_small.desc=Solidified amalgamation, ready$to accept irradi item.ingot_orichalcum_small.name=§6Orichalcum Brick§r item.ingot_orichalcum_small_irr.desc=Neutron irradiation transmutates the$amalgamation, allowing protection$against directed energy item.ingot_orichalcum_small_irr.name=§6Activated Orichalcum Brick§r -item.ingot_silicon.name=Silicon Brick item.ingot_staballoy.desc=Hehe, get it?$§o§nStab§7alloy, because it's an armor penetrator alloy? item.ingot_staballoy.name=Staballoy Ingot item.ingot_tha.name=Ingot of Activated Thorium @@ -5729,7 +6434,6 @@ item.med_bag.desc=Full heal, regardless of max health$Removes negative effects item.nugget_cf252.name=Californium-252 Nugget item.nugget_cm248.name=Curium-248 Nugget item.nugget_dineutronium.name=§5Dineutronium Nugget§r -item.nugget_silicon.name=Silicon Nugget item.nugget_tha.name=Nugget of Activated Thorium item.nugget_u234.name=Uranium-234 Nugget item.paa_filter.name=PaA - CMB Watz Filter @@ -5762,7 +6466,6 @@ item.powder_niobium_alloy.name=Niobium Refractory Superalloy Powder item.powder_orichalcum_mix.desc=Blend of high strength elements and$amalgams ready for solidification item.powder_orichalcum_mix.name=§6Orichalcum Blend§r item.powder_pu239.name=Plutonium-239 Powder -item.powder_silicon.name=Silicon Powder item.powder_tennessine.desc=§lAAAAAAAAAAAA item.powder_u235.name=Uranium-235 Powder item.powder_u238.name=Uranium-238 Powder @@ -5938,8 +6641,6 @@ tile.block_rubber.name=БлПк резОМы tile.block_coke.coal.name=БлПк угПльМПгП кПкса tile.block_coke.lignite.name=БлПк бурПгП кПкса tile.block_coke.petroleum.name=БлПк МефтяМПгП кПкса -tile.block_saturnite.name=Reinforced Block of Saturnite -tile.block_silicon.name=Block of Silicon tile.block_staballoy.name=Reinforced Block of Staballoy tile.block_tha.name=Block of Activated Thorium tile.brick_concrete_slab.name=Concrete Brick Slab diff --git a/src/main/resources/assets/hbm/lang/te_ST.lang b/src/main/resources/assets/hbm/lang/te_ST.lang deleted file mode 100644 index cc7f1b34b..000000000 --- a/src/main/resources/assets/hbm/lang/te_ST.lang +++ /dev/null @@ -1,1262 +0,0 @@ -itemGroup.tabTest=Nuclear Tech Mod Test Tab -itemGroup.tabParts=NTM Resources and Parts -itemGroup.tabBlocks=NTM Blocks and Machines -itemGroup.tabNuke=NTM Bombs and Gear -itemGroup.tabMachine=NTM Templates - -hbmfluid.none=None -hbmfluid.water=Water -hbmfluid.lava=Lava -hbmfluid.uf6=Uranium Hexafluoride -hbmfluid.puf6=Plutonium Hexafluoride -hbmfluid.deuterium=Deuterium -hbmfluid.tritium=Tritium -hbmfluid.oil=Crude Oil -hbmfluid.smear=Industrial Oil -hbmfluid.reclaimed=Reclaimed Industrial Oil -hbmfluid.petroil=Petroil -hbmfluid.lubricant=Engine Lubricant -hbmfluid.diesel=Diesel -hbmfluid.kerosene=Kerosene -hbmfluid.gas=Natural Gas -hbmfluid.coolant=Coolant -hbmfluid.amat=Antimatter -hbmfluid.aschrab=Antischrabidium - -item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core -item.record.ss.desc=Valve - Sector Sweep -item.record.vc.desc=Valve - Vortal Combat - -death.attack.nuclearBlast=%1$s was blown away by a nuclear explosion. -death.attack.revolverBullet=%1$s was shot in the head by %2$s. -death.attack.mudPoisoning=%1$s died in poisonous mud. -death.attack.euthanized=%1$s was euthanized by %2$s. -death.attack.euthanizedSelf=%1$s euthanized himself, what a dork. -death.attack.euthanizedSelf2=%1$s wins the Darwin Award. -death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. -death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. -death.attack.chopperBullet=%1$s was rekt by %2$s. -death.attack.cmb=%1$s was fizzeled by %2$s. -death.attack.subAtomic=%1$s's atoms have been destroyed by %2$s. -death.attack.subAtomic2=%1$s was QPU-misaligned because %2$s tampered with his de facto speed. -death.attack.subAtomic3=%1$s's divergence dropped below 1 percent because of %2$s. -death.attack.subAtomic4=%1$s was divided by zero by %2$s. -death.attack.subAtomic5=%1$s was nullified by %2$s. -death.attack.radiation=%1$s died from radiation poisoning. -death.attack.acid=%1$s fell into acid. -death.attack.suicide=%1$s blew their head off. -death.attack.electrified=%1$s was electrified by %2$s. -death.attack.flamethrower=%1$s was cremated by %2$s. -death.attack.plasma=%1$s was immolated by %2$s. -death.attack.ice=%1$s was turned into a popsicle by %2$s. -death.attack.cheater=%1$s's intestines turned into oats. (???) -death.attack.laser=%1$s was turned into ash by %2$s. -death.attack.rubble=%1$s was squashed by debris. -death.attack.shrapnel=%1$s was ragged by a shrapnel. -death.attack.teleporter=%1$s was teleported into nothingness. -death.attack.blackhole=%1$s was spaghettified. - -item.redstone_sword.name=Redstone Sword -item.big_sword.name=Great Sword -item.test_nuke_igniter.name=Igniter -item.test_nuke_propellant.name=Propellant -item.test_nuke_tier1_shielding.name=Neutron Reflector (Tier 1) -item.test_nuke_tier2_shielding.name=Neutron Reflector (Tier 2) -item.test_nuke_tier1_bullet.name=U235 Projectile (Tier 1) -item.test_nuke_tier2_bullet.name=MOX Projectile (Tier 2) -item.test_nuke_tier1_target.name=Subcritical U235 Target (Tier 1) -item.test_nuke_tier2_target.name=Subcritical MOX Target (Tier 2) - -item.gadget_explosive.name=Propellant -item.gadget_explosive8.name=Bundle of Propellant -item.gadget_wireing.name=Wiring -item.gadget_core.name=Plutonium Core - -item.boy_igniter.name=Bomb Igniter -item.boy_propellant.name=Propellant -item.boy_bullet.name=U235 Projectile -item.boy_target.name=Subcritical U235 Target -item.boy_shielding.name=Neutron Shielding - -item.man_explosive.name=Beans -item.man_explosive8.name=Bundle of Propellant -item.man_igniter.name=Bomb Igniter -item.man_core.name=Plutonium Core - -item.mike_core.name=Uranium Coated Deuterium Tank -item.mike_deut.name=Deuterium Tank -item.mike_cooling_unit.name=Deuterium Cooling Unit - -item.tsar_core.name=Tsar Bomba Core - -item.fleija_igniter.name=Pulse Igniter -item.fleija_propellant.name=Schrabidium Propellant -item.fleija_core.name=F.L.E.I.J.A. Uranium 235 Charge - -container.nukeGadget=The Gadget -container.nukeBoy=Little Boy -container.nukeMan=Fat Man -container.nukeMike=Ivy Mike -container.nukeTsar=Tsar Bomba -container.nukeFleija=F.L.E.I.J.A. -container.nukePrototype=The Prototype -container.nukeCustom=Custom Nuke - -container.bombMulti=Multi Purpose Bomb - -tile.nuke_gadget.name=The Gadget -tile.nuke_boy.name=Little Boy -tile.nuke_man.name=Fat Man -tile.nuke_mike.name=Ivy Mike -tile.nuke_tsar.name=Tsar Bomba -tile.nuke_fleija.name=F.L.E.I.J.A. -tile.nuke_prototype.name=The Prototype -tile.nuke_custom.name=Custom Nuke - -tile.bomb_multi.name=Multi Purpose Bomb - -tile.flame_war.name=Flame War in a Box -tile.float_bomb.name=Levitation Bomb -tile.therm_endo.name=Endothermic Bomb -tile.therm_exo.name=Exothermic Bomb - -tile.crashed_bomb.name=Dud - -tile.crate.name=Supply Crate -tile.marker_structure.name=Multiblock Structure Marker - -tile.machine_difurnace_off.name=Alloy Furnace -tile.machine_difurnace_on.name=Alloy Furnace -container.diFurnace=Alloy Furnace -tile.machine_centrifuge.name=Centrifuge -container.centrifuge=Centrifuge -tile.machine_uf6_tank.name=Uranium Hexafluoride Tank -container.uf6_tank=UF6 Tank -tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank -container.puf6_tank=PuF6 Tank -tile.machine_reactor.name=Breeding Reactor -container.reactor=Breeding Reactor -tile.machine_nuke_furnace_off.name=Nuclear Powered Furnace -tile.machine_nuke_furnace_on.name=Nuclear Powered Furnace -container.nukeFurnace=Nuclear Powered Furnace -tile.machine_rtg_furnace_off.name=RTG Furnace -tile.machine_rtg_furnace_on.name=RTG Furnace -container.rtgFurnace=RTG Furnace -tile.machine_electric_furnace_off.name=Electric Furnace -tile.machine_electric_furnace_on.name=Electric Furnace -container.electricFurnace=Electric Furnace -tile.machine_generator.name=Nuclear Reactor -container.generator=Nuclear Reactor -tile.red_wire_coated.name=Coated Red Copper Cable -tile.machine_deuterium.name=Deuterium Extractor -container.machine_deuterium=Deuterium Extractor -tile.machine_battery.name=Energy Storage Block -container.battery=Energy Storage -tile.machine_coal_off.name=Coal Generator -tile.machine_coal_on.name=Coal Generator -container.machineCoal=Coal Generator -tile.launch_pad.name=Missile Launch Pad -container.launchPad=Missile Launch Pad -tile.book_guide.name=Hbm's Nuclear Tech Mod Manual -tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device -container.machine_schrabidium_transmutator=Schrabidium Transmutation Device -tile.machine_diesel.name=Diesel Generator -container.machineDiesel=Diesel Generator -tile.machine_shredder.name=Shredder -container.machineShredder=Shredder -tile.machine_combine_factory.name=CMB Steel Furnace -container.machineCMB=CMB Steel Furnace -tile.machine_teleporter.name=Teleporter -container.teleporter=Teleporter -tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) -container.reix=Rei-X Mainframe -tile.machine_industrial_generator.name=Industrial Generator -container.iGenerator=Industrial Generator -tile.machine_cyclotron.name=Cyclotron -container.cyclotron=Cyclotron -tile.machine_well.name=Oil Derrick -tile.oil_pipe.name=Crude Oil Extraction Pipe -container.oilWell=Oil Derrick -tile.machine_refinery.name=Oil Refinery -container.machineRefinery=Oil Refinery -tile.oil_duct.name=Oil Pipe -tile.oil_duct_solid.name=Coated Oil Pipe -tile.machine_flare.name=Gas Flare -container.gasFlare=Gas Flare -tile.gas_duct.name=Gas Pipe -tile.gas_duct_solid.name=Coated Gas Pipe -tile.machine_drill.name=Automatic Mining Drill -container.miningDrill=Automatic Mining Drill -tile.machine_assembler.name=Assembly Machine -container.assembler=Assembly Machine -tile.machine_chemplant.name=Chemical Plant -container.chemplant=Chemical Plant - -tile.red_pylon.name=Electricity Pole -item.wiring_red_copper.name=Cable Drum - -tile.rail_highspeed.name=High Speed Rail -tile.rail_booster.name=High Speed Booster Rail - -tile.factory_titanium_hull.name=Basic Factory Casing -tile.factory_titanium_furnace.name=Basic Factory Access Hatch -tile.factory_titanium_conductor.name=Basic Factory Electricity Port -tile.factory_titanium_core.name=Basic Factory Core Component -item.factory_core_titanium.name=Basic Factory Energy Cluster -container.factoryTitanium=Basic Factory -tile.factory_advanced_hull.name=Advanced Factory Casing -tile.factory_advanced_furnace.name=Advanced Factory Access Hatch -tile.factory_advanced_conductor.name=Advanced Factory Electricity Port -tile.factory_advanced_core.name=Advanced Factory Core Component -item.factory_core_advanced.name=Advanced Factory Energy Cluster -container.factoryAdvanced=Advanced Factory - -tile.reactor_element.name=Reactor Chamber -tile.reactor_control.name=Control Rods -tile.reactor_hatch.name=Reactor Access Hatch -tile.reactor_conductor.name=Reactor Electricity Port -tile.reactor_computer.name=Reactor Control -container.reactorMultiblock=Big Nuclear Reactor - -tile.fusion_conductor.name=Superconducting Magnet -tile.fusion_center.name=Central Magnet Piece -tile.fusion_motor.name=Magnet Motor Piece -tile.fusion_heater.name=Plasma Heater -tile.fusion_hatch.name=Fusion Reactor Access Hatch -tile.fusion_core.name=Fusion Reactor Control -tile.plasma.name=Plasma -container.fusionMultiblock=Big Fusion Reactor - -tile.watz_element.name=Watz Reaction Chamber -tile.watz_control.name=Reinforced Control Rods -tile.watz_cooler.name=Watz Reactor Supercooler -tile.watz_end.name=Watz Reactor Stability Element -tile.watz_hatch.name=Watz Reactor Access Hatch -tile.watz_conductor.name=Watz Electricity Port -tile.watz_core.name=Watz Reactor Control -container.watzPowerplant=Watz Power Plant - -tile.fwatz_conductor.name=4000K Superconducting Magnet -tile.fwatz_cooler.name=Regenerative Coolant Fluid Tank Shell -tile.fwatz_tank.name=Regenerative Coolant Fluid Tank -tile.fwatz_scaffold.name=Fusionary Watz Plant Structural Support -tile.fwatz_hatch.name=Fusionary Watz Plant Access Hatch -tile.fwatz_computer.name=Fusionary Watz Reactor Calculation Matrix -tile.fwatz_core.name=Fusionary Watz Reactor Control -tile.fwatz_plasma.name=Destabilized Antischrabidium Plasma -container.fusionaryWatzPlant=Fusionary Watz Plant - -tile.machine_rtg_grey.name=RT Generator -container.rtg=RT Generator -tile.machine_rtg_red.name=Fulmination Generator -tile.machine_rtg_orange.name=Strong RT Generator -tile.machine_rtg_yellow.name=Australium Superfuel Reactor -tile.machine_rtg_green.name=Verticium Wealth Generator -tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) -tile.machine_rtg_blue.name=Convection Generator -tile.machine_rtg_purple.name=Antimatter Annihilation Generator - -item.assembly_template.TEST.name=Assembly Template: Test -item.assembly_template.MIXED_PLATE.name=Assembly Template: Mixed Plate -item.assembly_template.HAZMAT_CLOTH.name=Assembly Template: Hazmat Cloth -item.assembly_template.ASBESTOS_CLOTH.name=Assembly Template: Fire Proximity Cloth -item.assembly_template.COAL_FILTER.name=Assembly Template: Activated Carbon Filter -item.assembly_template.CENTRIFUGE_ELEMENT.name=Assembly Template: Centrifuge Element -item.assembly_template.CENTRIFUGE_TOWER.name=Assembly Template: Centrifuge Tower -item.assembly_template.DEE_MAGNET.name=Assembly Template: Dee Magnets -item.assembly_template.FLAT_MAGNET.name=Assembly Template: Flat Magnet -item.assembly_template.CYCLOTRON_TOWER.name=Assembly Template: Cyclotron Tower -item.assembly_template.REACTOR_CORE.name=Assembly Template: Breeding Reactor Core -item.assembly_template.RTG_UNIT.name=Assembly Template: RTG Unit -item.assembly_template.HEAT_UNIT.name=Assembly Template: Thermal Distribution Unit -item.assembly_template.GRAVITY_UNIT.name=Assembly Template: Gravity Manipulator -item.assembly_template.TITANIUM_DRILL.name=Assembly Template: Titanium Drill -item.assembly_template.TELEPAD.name=Assembly Template: Telepad -item.assembly_template.TELEKIT.name=Assembly Template: Entanglement Kit -item.assembly_template.GEASS_REACTOR.name=Assembly Template: Dysfunctional Nuclear Reactor -item.assembly_template.GENERATOR_FRONT.name=Assembly Template: Generator Front -item.assembly_template.WT1_GENERIC.name=Assembly Template: Small Warhead -item.assembly_template.WT2_GENERIC.name=Assembly Template: Medium Warhead -item.assembly_template.WT3_GENERIC.name=Assembly Template: Large Warhead -item.assembly_template.WT1_FIRE.name=Assembly Template: Small Incendiary Warhead -item.assembly_template.WT2_FIRE.name=Assembly Template: Medium Incendiary Warhead -item.assembly_template.WT3_FIRE.name=Assembly Template: Large Incendiary Warhead -item.assembly_template.WT1_CLUSTER.name=Assembly Template: Small Cluster Warhead -item.assembly_template.WT2_CLUSTER.name=Assembly Template: Medium Cluster Warhead -item.assembly_template.WT3_CLUSTER.name=Assembly Template: Large Cluster Warhead -item.assembly_template.WT1_BUSTER.name=Assembly Template: Small Bunker Buster Warhead -item.assembly_template.WT2_BUSTER.name=Assembly Template: Medium Bunker Buster Warhead -item.assembly_template.WT3_BUSTER.name=Assembly Template: Large Bunker Buster Warhead -item.assembly_template.W_NUCLEAR.name=Assembly Template: Nuclear Warhead -item.assembly_template.W_MIRVLET.name=Assembly Template: MIRV -item.assembly_template.W_MIRV.name=Assembly Template: Eightfold MIRV Warhead -item.assembly_template.W_ENDOTHERMIC.name=Assembly Template: Endothermic Warhead -item.assembly_template.W_EXOTHERMIC.name=Assembly Template: Exothermic Warhead -item.assembly_template.T1_TANK.name=Assembly Template: Small Fuel Tank -item.assembly_template.T2_TANK.name=Assembly Template: Medium Fuel Tank -item.assembly_template.T3_TANK.name=Assembly Template: Large Fuel Tank -item.assembly_template.T1_THRUSTER.name=Assembly Template: Small Thruster -item.assembly_template.T2_THRUSTER.name=Assembly Template: Medium Thruster -item.assembly_template.T3_THRUSTER.name=Assembly Template: Large Thruster -item.assembly_template.CHOPPER_HEAD.name=Assembly Template: Hunter Chopper Cockpit -item.assembly_template.CHOPPER_GUN.name=Assembly Template: Emplacement Gun -item.assembly_template.CHOPPER_BODY.name=Assembly Template: Hunter Chopper Body -item.assembly_template.CHOPPER_TAIL.name=Assembly Template: Hunter Chopper Tail -item.assembly_template.CHOPPER_WING.name=Assembly Template: Hunter Chopper Wing -item.assembly_template.CHOPPER_BLADES.name=Assembly Template: Hunter Chopper Rotor Blades -item.assembly_template.CIRCUIT_2.name=Assembly Template: Enhanced Circuit -item.assembly_template.CIRCUIT_3.name=Assembly Template: Advanced Circuit -item.assembly_template.RTG_PELLET.name=Assembly Template: Plutonium 238 Fuel Pellet -item.assembly_template.WEAK_PELLET.name=Assembly Template: Weak Uranium RTG Pellet -item.assembly_template.FUSION_PELLET.name=Assembly Template: Tritium-Deuterium-Cake -item.assembly_template.CLUSTER_PELLETS.name=Assembly Template: Explosive Pellets -item.assembly_template.GUN_PELLETS.name=Assembly Template: Lead Pellets - -item.fuse.name=Fuse - -tile.test_nuke.name=Test Nuke - -item.ingot_uranium.name=Uranium Ingot -item.ingot_u235.name=U235 Ingot -item.ingot_u238.name=U238 Ingot -item.ingot_plutonium.name=Plutonium Ingot -item.ingot_pu238.name=Pu238 Ingot -item.ingot_pu239.name=Pu239 Ingot -item.ingot_pu240.name=Pu240 Ingot -item.ingot_titanium.name=Titanium Ingot -item.sulfur.name=Sulfur - -item.niter.name=Niter -item.ingot_copper.name=Industrial Grade Copper -item.ingot_red_copper.name=Minecraft Grade Copper -item.ingot_tungsten.name=Tungsten Ingot -item.ingot_aluminium.name=Aluminium Ingot -item.fluorite.name=Fluorite -item.ingot_steel.name=Steel Ingot -item.plate_steel.name=Steel Plate -item.ingot_beryllium.name=Beryllium Ingot -item.plate_schrabidium.name=Schrabidium Plate -item.ingot_schrabidium.name=Schrabidium Ingot -item.nugget_schrabidium.name=Schrabidium Nugget -item.plate_copper.name=Copper Plate -item.board_copper.name=Copper Panel -item.ingot_advanced_alloy.name=Advanced Alloy Ingot -item.plate_advanced_alloy.name=Advanced Alloy Plate -item.wire_advanced_alloy.name=Super Conductor -item.coil_advanced_alloy.name=Super Conducting Coil -item.coil_advanced_torus.name=Super Conducting Ring Coil -item.coil_gold.name=Gold Coil -item.coil_gold_torus.name=Golden Ring Coil -item.lithium.name=Lithium Cube -item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot -item.ingot_combine_steel.name=CMB Steel Ingot -item.plate_combine_steel.name=CMB Steel Plate -item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor -item.coil_magnetized_tungsten.name=4000K High Temperature Super Conducting Coil -item.plate_mixed.name=Mixed Plate -item.plate_paa.name=PaA Alloy Plate -item.ingot_dura_steel.name=High-Speed Steel Ingot -item.ingot_polymer.name=Polymer Ingot -item.bolt_dura_steel.name=High-Speed Steel Bolt -item.pipes_steel.name=Steel Pipes -item.drill_titanium.name=Titanium Drill - -item.ingot_australium.name=Australium Ingot -item.ingot_weidanium.name=Weidanium Ingot -item.ingot_reiium.name=Reiium Ingot -item.ingot_unobtainium.name=Unobtainium Ingot -item.ingot_daffergon.name=Daffergon Ingot -item.ingot_verticium.name=Verticium Ingot -item.nugget_australium.name=Australium Nugget -item.nugget_weidanium.name=Weidanium Nugget -item.nugget_reiium.name=Reiium Nugget -item.nugget_unobtainium.name=Unobtainium Nugget -item.nugget_daffergon.name=Daffergon Nugget -item.nugget_verticium.name=Verticium Nugget - -item.ingot_desh.name=Desh Ingot -item.nugget_desh.name=Desh Nugget -item.powder_desh.name=Desh Powder - -item.nugget_u235.name=U235 Nugget -item.nugget_u238.name=U238 Nugget -item.nugget_pu238.name=Pu238 Nugget -item.nugget_pu239.name=Pu239 Nugget -item.nugget_pu240.name=Pu240 Nugget -item.plate_titanium.name=Titanium Plate -item.plate_aluminium.name=Aluminium Plate -item.wire_red_copper.name=Red Copper Wire -item.neutron_reflector.name=Neutron Reflector -item.nugget_beryllium.name=Beryllium Nugget - -item.wire_aluminium.name=Aluminium Wire -item.wire_copper.name=Copper Wire -item.wire_gold.name=Gold Wire -item.wire_schrabidium.name=Schrabidium Wire - -item.circuit_aluminium.name=Basic Circuit -item.circuit_copper.name=Enhanced Circuit -item.circuit_red_copper.name=Advanved Circuit -item.circuit_gold.name=Overclocked Circuit -item.circuit_schrabidium.name=High Performance Circuit - -tile.block_aluminium.name=Block of Aluminium -tile.block_copper.name=Block of Copper -tile.block_fluorite.name=Block of Fluorite -tile.block_niter.name=Block of Niter -tile.block_red_copper.name=Block of Red Copper -tile.block_steel.name=Block of Steel -tile.block_sulfur.name=Block of Sulfur -tile.block_titanium.name=Block of Titanium -tile.block_tungsten.name=Block of Tungsten -tile.block_uranium.name=Block of Uranium -tile.block_trinitite.name=Block of Trinitite -tile.block_beryllium.name=Block of Beryllium -tile.block_waste.name=Block of Nuclear Waste -tile.block_scrap.name=Block of Scrap -tile.block_electrical_scrap.name=Block of Electrical Scrap -tile.block_advanced_alloy.name=Block of Advanced Alloy -tile.block_magnetized_tungsten.name=Block of Magnetized Tungsten -tile.block_combine_steel.name=Block of CMB Steel -tile.block_australium.name=Block of Australium -tile.block_weidanium.name=Block of Weidanium -tile.block_reiium.name=Block of Reiium -tile.block_unobtainium.name=Block of Unobtainium -tile.block_daffergon.name=Block of Daffergon -tile.block_verticium.name=Block of Verticium -tile.block_desh.name=Reinfoced Block of Desh - -tile.ore_aluminium.name=Aluminium Ore -tile.ore_copper.name=Copper Ore -tile.ore_fluorite.name=Fluorite Ore -tile.ore_niter.name=Niter Ore -tile.ore_sulfur.name=Sulfur Ore -tile.ore_titanium.name=Titanium Ore -tile.ore_tungsten.name=Tungsten Ore -tile.ore_uranium.name=Uranium Ore -tile.ore_schrabidium.name=Schrabidium Ore -tile.ore_beryllium.name=Beryllium Ore - -tile.ore_nether_uranium.name=Nether Uranium Ore -tile.ore_nether_plutonium.name=Nether Plutonium Ore -tile.ore_nether_tungsten.name=Nether Tungsten Ore -tile.ore_nether_sulfur.name=Nether Sulfur Ore -tile.ore_nether_fire.name=Fire Ore -tile.ore_nether_schrabidium.name=Nether Schrabidium Ore - -tile.ore_australium.name=Australian Ore -tile.ore_weidanium.name=Weidite -tile.ore_reiium.name=Reiite -tile.ore_unobtainium.name=Brightblende Ore -tile.ore_daffergon.name=Dellite -tile.ore_verticium.name=Dollar Green Mineral - -tile.ore_oil.name=Oil Deposit -tile.ore_oil_empty.name=Empty Oil Deposit - -tile.reinforced_brick.name=Reinforced Stone -tile.reinforced_glass.name=Reinforced Glass -tile.reinforced_sand.name=Reinforced Sandstone -tile.reinforced_light.name=Reinforced Glowstone -tile.reinforced_lamp_off.name=Reinforced Lamp -tile.reinforced_lamp_on.name=Reinforced Lamp - -tile.brick_concrete.name=Concrete Bricks -tile.brick_obsidian.name=Obsidian Bricks -tile.brick_light.name=Light Bricks -tile.asphalt.name=Asphalt - -tile.cmb_brick.name=CMB Steel Tile -tile.cmb_brick_reinforced.name=Reinforced CMB Bricks - -tile.gravel_obsidian.name=Crushed Obsidian - -tile.seal_frame.name=Silo Hatch Frame -tile.seal_controller.name=Silo Hatch Opener -tile.seal_hatch.name=Silo Hatch - -item.nugget_uranium.name=Uranium Nugget -item.nugget_plutonium.name=Plutonium Nugget -item.nugget_neptunium.name=Neptunium Nugget -item.ingot_neptunium.name=Neptunium Ingot -item.nugget_lead.name=Lead Nugget -item.ingot_lead.name=Lead Ingot -tile.block_lead.name=Block of Lead -tile.ore_lead.name=Lead Ore - -item.powder_lead.name=Lead Powder -item.powder_neptunium.name=Neptunium Powder -item.powder_schrabidium.name=Schrabidium Powder -item.powder_iron.name=Iron Powder -item.powder_gold.name=Gold Powder -item.powder_aluminium.name=Aluminium Powder -item.powder_beryllium.name=Beryllium Powder -item.powder_copper.name=Copper Powder -item.powder_titanium.name=Titanium Powder -item.powder_tungsten.name=Tungsten Powder -item.powder_uranium.name=Uranium Powder -item.powder_plutonium.name=Plutonium Powder -item.dust.name=Dust -item.powder_coal.name=Coal Powder -item.powder_lapis.name=Lapis Lazuli Powder -item.powder_emerald.name=Emerald Powder -item.powder_diamond.name=Diamond Powder -item.powder_red_copper.name=Red Copper Powder -item.powder_steel.name=Steel Powder -item.powder_magnetized_tungsten.name=Magnetized Tungsten Powder -item.powder_combine_steel.name=CMB Steel Powder -item.powder_lithium.name=Lithium Powder -item.powder_advanced_alloy.name=Advanced Alloy Powder -item.powder_quartz.name=Quartz Powder -item.powder_power.name=Energy Powder -item.powder_iodine.name=Iodine Powder -item.powder_thorium.name=Thorium Powder -item.powder_neodymium.name=Neodymium Powder -item.powder_astatine.name=Astatine Powder -item.powder_caesium.name=Caesium Powder -item.powder_australium.name=Australium Powder -item.powder_weidanium.name=Weidanium Powder -item.powder_reiium.name=Reiium Powder -item.powder_unobtainium.name=Unobtainium Powder -item.powder_daffergon.name=Daffergon Powder -item.powder_verticium.name=Verticium Powder -item.powder_strontium.name=Strontium Powder -item.powder_cobalt.name=Cobalt Powder -item.powder_bromine.name=Bromine Powder -item.powder_niobium.name=Niobium Powder -item.powder_tennessine.name=Tennessine Powder -item.powder_cerium.name=Cerium Powder -item.powder_dura_steel.name=High-Speed Steel Powder -item.powder_polymer.name=Polymer Powder -item.powder_lanthanium.name=Lanthanium Powder -item.powder_actinium.name=Actinium Powder -item.powder_lithium_tiny.name=Tiny Pile of Lithium Powder -item.powder_cobalt_tiny.name=Tiny Pile of Cobalt Powder - -item.battery_generic.name=Battery -item.battery_advanced.name=Advanced Battery -item.battery_lithium.name=Lithium-Ion Battery -item.battery_schrabidium.name=Schrabidium Battery -item.battery_creative.name=Infinite Battery - -item.battery_red_cell.name=Redstone Power Cell -item.battery_advanced_cell.name=Advanced Power Cell -item.battery_lithium_cell.name=Lithium-Ion Power Cell -item.battery_schrabidium_cell.name=Schrabidium Power Cell -item.battery_red_cell_6.name=Sixfold Redstone Power Cell -item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell -item.battery_lithium_cell_3.name=Tripple Lithium-Ion Power Cell -item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell -item.battery_red_cell_24.name=24-Fold Redstone Power Cell -item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell -item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell -item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell - -item.upgrade_template.name=Machine Upgrade Piece Template -item.upgrade_speed_1.name=Red Machine Upgrade Mk.I -item.upgrade_speed_2.name=Red Machine Upgrade Mk.II -item.upgrade_speed_3.name=Red Machine Upgrade Mk.III -item.upgrade_effect_1.name=Green Machine Upgrade Mk.I -item.upgrade_effect_2.name=Green Machine Upgrade Mk.II -item.upgrade_effect_3.name=Green Machine Upgrade Mk.III -item.upgrade_power_1.name=Blue Machine Upgrade Mk.I -item.upgrade_power_2.name=Blue Machine Upgrade Mk.II -item.upgrade_power_3.name=Blue Machine Upgrade Mk.III -item.upgrade_fortune_1.name=Purple Machine Upgrade Mk.I -item.upgrade_fortune_2.name=Purple Machine Upgrade Mk.II -item.upgrade_fortune_3.name=Purple Machine Upgrade Mk.III - -item.fusion_core.name=Fusion Core -item.energy_core.name=Makeshift Energy Core - -item.plate_iron.name=Iron Plate -item.plate_lead.name=Lead Plate -item.coil_copper.name=Copper Coil -item.coil_copper_torus.name=Ring Coil -item.wire_tungsten.name=Tungsten Wire -item.coil_tungsten.name=Heating Coil -item.tank_steel.name=Steel Tank -item.motor.name=Motor -item.centrifuge_element.name=Centrifuge Element -item.centrifuge_tower.name=Centrifuge Tower -item.reactor_core.name=Breeding Reactor Core -item.pellet_rtg.name=Plutonium 238 Fuel Pellet -item.pellet_rtg_weak.name=Weak Uranium RTG Pellet -item.rtg_unit.name=RTG Unit -item.hazmat_cloth.name=Hazmat Cloth -item.asbestos_cloth.name=Fire Proximity Cloth -item.filter_coal.name=Activated Carbon Filter -item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake -item.telepad.name=Telepad -item.entanglement_kit.name=Entanglement Kit -item.toothpicks.name=Toothpicks -item.ducttape.name=Duct Tape -item.magnet_dee.name=Dee Magnets -item.magnet_circular.name=Flat Magnet -item.cyclotron_tower.name=Cyclotron Tower -item.plate_dalekanium.name=Angry Metal - -item.cell_empty.name=Empty Cell -item.cell_uf6.name=Uranium Hexafluorite Cell -item.cell_puf6.name=Plutonium Hexafluorite Cell -item.cell_antimatter.name=Antimatter Cell -item.cell_deuterium.name=Deuterium Cell -item.cell_tritium.name=Tritium Cell -item.cell_sas3.name=Schrabidium Trisulfide Cell -item.cell_anti_schrabidium.name=Antischrabidium Cell -item.singularity.name=Singularity -item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity -item.singularity_super_heated.name=Superheated Resonating Singularity -item.black_hole.name=Miniature Black Hole -item.crystal_xen.name=Artificial Xen Crystal - -item.inf_water.name=Infinite Water Tank -item.inf_deuterium.name=Infinite Deuterium Tank -item.inf_tritium.name=Infinite Tritium Tank -item.inf_coolant.name=Infinite Coolant Tank -item.inf_sulfur.name=Infinite Sulfur Tank -item.inf_diesel.name=Infinite Diesel Tank -item.inf_antimatter.name=Infinite Antimatter Tank -item.inf_antischrabidium.name=Infinite Antischrabidium Tank - -item.oil_canola.name=Raw Canola Oil - -item.canister_empty.name=Empty Canister -item.canister_smear.name=Industrial Oil Canister -item.canister_canola.name=Engine Lubricant -item.canister_oil.name=Crude Oil Canister -item.canister_fuel.name=Fuel Canister -item.canister_kerosene.name=Kerosene Canister -item.canister_reoil.name=Canister of Reclaimed Industrial Oil -item.canister_petroil.name=Petroil Canister -item.canister_napalm.name=Napalm B -item.canister_NITAN.name=NITAN© 100 Octane Super Fuel -item.gas_empty.name=Empty Gas Tank -item.gas_full.name=Gas Tank - -item.rod_empty.name=Emty Rod -item.rod_uranium.name=Uranium Rod -item.rod_u235.name=U235 Rod -item.rod_u238.name=U238 Rod -item.rod_plutonium.name=Plutonium Rod -item.rod_pu238.name=Pu238 Rod -item.rod_pu239.name=Pu239 Rod -item.rod_pu240.name=Pu240 Rod -item.rod_neptunium.name=Neptunium Rod -item.rod_lead.name=Lead Rod -item.rod_schrabidium.name=Schrabidium Rod -item.rod_astatine.name=Euphemium Rod -item.rod_australium.name=Australium Rod -item.rod_weidanium.name=Weidanium Rod -item.rod_reiium.name=Reiium Rod -item.rod_unobtainium.name=Unobtainium Rod -item.rod_daffergon.name=Daffergon Rod -item.rod_verticium.name=Verticium Rod - -item.rod_dual_empty.name=Emty Dual Rod -item.rod_dual_uranium.name=Uranium Dual Fl Rod -item.rod_dual_u235.name=U235 Dual Rod -item.rod_dual_u238.name=U238 Dual Rod -item.rod_dual_plutonium.name=Plutonium Dual Rod -item.rod_dual_pu238.name=Pu238 Dual Rod -item.rod_dual_pu239.name=Pu239 Dual Rod -item.rod_dual_pu240.name=Pu240 Dual Rod -item.rod_dual_neptunium.name=Neptunium Dual Rod -item.rod_dual_lead.name=Lead Dual Rod -item.rod_dual_schrabidium.name=Schrabidium Dual Rod - -item.rod_quad_empty.name=Emty Quad Rod -item.rod_quad_uranium.name=Uranium Quad Rod -item.rod_quad_u235.name=U235 Quad Rod -item.rod_quad_u238.name=U238 Quad Rod -item.rod_quad_plutonium.name=Plutonium Quad Rod -item.rod_quad_pu238.name=Pu238 Quad Rod -item.rod_quad_pu239.name=Pu239 Quad Rod -item.rod_quad_pu240.name=Pu240 Quad Rod -item.rod_quad_neptunium.name=Neptunium Quad Rod -item.rod_quad_lead.name=Lead Quad Rod -item.rod_quad_schrabidium.name=Schrabidium Quad Rod - -item.rod_uranium_fuel_depleted.name=Depleted Uranium Fuel Rod -item.rod_dual_uranium_fuel_depleted.name=Depleted Uranium Dual Fuel Rod -item.rod_quad_uranium_fuel_depleted.name=Depleted Uranium Quad Fuel Rod -item.rod_plutonium_fuel_depleted.name=Depleted Plutonium Fuel Rod -item.rod_dual_plutonium_fuel_depleted.name=Depleted Plutonium Dual Fuel Rod -item.rod_quad_plutonium_fuel_depleted.name=Depleted Plutonium Quad Fuel Rod -item.rod_mox_fuel_depleted.name=Depleted MOX Fuel Rod -item.rod_dual_mox_fuel_depleted.name=Depleted MOX Dual Fuel Rod -item.rod_quad_mox_fuel_depleted.name=Depleted MOX Quad Fuel Rod -item.rod_schrabidium_fuel_depleted.name=Depleted Schrabidium Fuel Rod -item.rod_dual_schrabidium_fuel_depleted.name=Depleted Schrabidium Dual Fuel Rod -item.rod_quad_schrabidium_fuel_depleted.name=Depleted Schrabidium Quad Fuel Rod - -item.rod_waste.name=Nuclear Waste Rod -item.rod_dual_waste.name=Nuclear Waste Dual Rod -item.rod_quad_waste.name=Nuclear Waste Quad Rod - -item.gun_rpg.name=Rocket Launcher -item.gun_rpg_ammo.name=Rocket - -item.flame_pony.name=Painting of a Cartoon Pony -item.flame_conspiracy.name=Conspiracy Theory -item.flame_politics.name=Political Topic -item.flame_opinion.name=Own Opinion - -item.pellet_cluster.name=Explosive Pellets -item.pellet_buckshot.name=Lead Pellets -item.powder_fire.name=Flame Powder -item.powder_ice.name=Cryo Powder -item.powder_poison.name=Poison Powder -item.pellet_gas.name=Poison Gas Cartridge -item.magnetron.name=Magnetron -item.powder_thermite.name=Thermite - -item.nuke_starter_kit.name=Atomic Science Starter Kit -item.nuke_commercially_kit.name=Atomic Science Kit for Commercial Uses -item.nuke_advanced_kit.name=Atomic Science Advanced Kit -item.gadget_kit.name=The Gadget Kit -item.boy_kit.name=Little Boy Kit -item.man_kit.name=Fat Man Kit -item.mike_kit.name=Ivy Mike Kit -item.tsar_kit.name=Tsar Bomba Kit -item.fleija_kit.name=F.L.E.I.J.A. Kit -item.multi_kit.name=Multi Purpose Bomb Kit -item.grenade_kit.name=Grenade Kit -item.nuke_electric_kit.name=Electronic Engineer's Kit -item.prototype_kit.name=Prototype Kit -item.missile_kit.name=Missile Kit -item.t45_kit.name=T45 Power Armor Kit -item.euphemium_kit.name=Euphemium Kit - -tile.waste_earth.name=Dead Grass -tile.waste_trinitite.name=Trinitite Ore -tile.waste_trinitite_red.name=Red Trinitite Ore -tile.waste_log.name=Charred Log -tile.waste_planks.name=Charred Wooden Planks - -item.trinitite.name=Trinitite -item.nuclear_waste.name=Nuclear Waste -item.scrap.name=Scrap - -item.ingot_uranium_fuel.name=Ingot of Uranium Fuel -item.ingot_plutonium_fuel.name=Ingot of Plutonium Fuel -item.ingot_mox_fuel.name=Ingot of MOX Fuel -item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel - -item.nugget_uranium_fuel.name=Nugget of Uranium Fuel -item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel -item.nugget_mox_fuel.name=Nugget of MOX Fuel -item.nugget_schrabidium_fuel.name=Nugget of Schrabidium Fuel - -item.grenade_generic.name=Grenade -item.grenade_strong.name=Enhanced Grenade -item.grenade_frag.name=Frag Grenade -item.grenade_fire.name=Flame Frag Grenade -item.grenade_shrapnel.name=Shrapnel Grenade -item.grenade_cluster.name=Cluster Bomb -item.grenade_flare.name=Flare Grenade -item.grenade_electric.name=Lightning Bomb -item.grenade_poison.name=Poison Grenade -item.grenade_gas.name=Gas Grenade -item.grenade_pulse.name=Impulse Grenade -item.grenade_plasma.name=Plasma Grenade -item.grenade_tau.name=Tau Grenade -item.grenade_schrabidium.name=Schrabidium Grenade -item.grenade_lemon.name=Combustible Lemon -item.grenade_mk2.name=Mk 2 Grenade "Ambassador Pineapple" -item.grenade_aschrab.name=Tossable Antischrabidium Cell -item.grenade_nuke.name=Mark VI Drill Grenade -item.grenade_nuclear.name=Nuka Grenade -item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade -item.grenade_black_hole.name=Black Hole Grenade -item.ullapool_caber.name=Ullapool Caber - -item.rod_uranium_fuel.name=Uranium Fuel Rod -item.rod_dual_uranium_fuel.name=Uranium Dual Fuel Rod -item.rod_quad_uranium_fuel.name=Uranium Quad Fuel Rod -item.rod_plutonium_fuel.name=Plutonium Fuel Rod -item.rod_dual_plutonium_fuel.name=Plutonium Dual Fuel Rod -item.rod_quad_plutonium_fuel.name=Plutonium Quad Fuel Rod -item.rod_mox_fuel.name=MOX Fuel Rod -item.rod_dual_mox_fuel.name=MOX Dual Fuel Rod -item.rod_quad_mox_fuel.name=MOX Quad Fuel Rod -item.rod_schrabidium_fuel.name=Schrabidium Fuel Rod -item.rod_dual_schrabidium_fuel.name=Schrabidium Dual Fuel Rod -item.rod_quad_schrabidium_fuel.name=Schrabidium Quad Fuel Rod - -item.rod_water.name=Water Cell -item.rod_dual_water.name=Dual Water Cell -item.rod_quad_water.name=Quad Water Cell - -item.rod_coolant.name=Coolant Cell -item.rod_dual_coolant.name=Dual Coolant Cell -item.rod_quad_coolant.name=Quad Coolant Cell - -item.rod_lithium.name=Lithium Rod -item.rod_dual_lithium.name=Dual Lithium Rod -item.rod_quad_lithium.name=Quad Lithium Rod - -item.rod_tritium.name=Tritium Cell -item.rod_dual_tritium.name=Dual Tritium Cell -item.rod_quad_tritium.name=Quad Tritium Cell - -item.levitation_unit.name=Gravity Manipulator -item.thermo_unit_empty.name=Thermic Distribution Unit -item.thermo_unit_endo.name=Coldness Distribution Unit -item.thermo_unit_exo.name=Heat Distribution Unit - -item.bomb_waffle.name=Waffle of Mass Destruction -item.schnitzel_vegan.name=Vegan Schnitzel -item.apple_schrabidium.name=Schrabidium Apple -item.cotton_candy.name=Radioactive Cotton Candy -item.tem_flakes.name=Tem Flakes -item.glowing_stew.name=Glowing Mushroom Stew -item.lemon.name="Lemon" - -tile.frozen_grass.name=Frozen Grass -tile.frozen_dirt.name=Frozen Dirt -tile.frozen_log.name=Frozen Log -tile.frozen_planks.name=Frozen Planks - -tile.tape_recorder.name=Tape Recorder -tile.steel_poles.name=Steel Pole -tile.pole_top.name=Antenna Top -tile.pole_satellite_receiver.name=Satellite Receiver -tile.steel_wall.name=Steel Wall -tile.steel_corner.name=Steel Wall Corner -tile.steel_roof.name=Flat Steel Roof -tile.steel_beam.name=Steel Beam -tile.steel_scaffold.name=Steel Scaffold - -item.gun_revolver_iron.name=Simple Revolver -item.gun_revolver.name=Enhanced Revolver -item.gun_revolver_gold.name=Golden Revolver -item.gun_revolver_lead.name=Nuka Revolver -item.gun_revolver_schrabidium.name=Schrabidium Revolver -item.gun_revolver_cursed.name=Cursed Revolver -item.gun_revolver_nightmare.name=Nightmare Revolver (Original) -item.gun_revolver_nightmare2.name=Nightmare Revolver (Dark) -item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" -item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" -item.gun_bf.name=M42_2 Nuclear Catapult "Antimatter Launcher" -item.gun_mp40.name=Submachine Gun -item.gun_uboinik.name=Uboinik -item.gun_xvl1456.name=XVL1456 Tau Cannon Prototype -item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle -item.gun_immolator.name=The Immolator -item.gun_cryolator.name=The Cryolator -item.gun_mp.name=Pacifist's Machine Gun -item.gun_zomg.name=Singularity Powered Annihilation Ray "ZOMG Cannon" -item.gun_emp.name=EMP Ray -item.gun_super_shotgun.name=Super Shotgun -item.gun_moist_nugget.name=Mosin-Nagant -item.gun_revolver_inverted.name=Flipped Revolver -item.gun_jack.name=Jackhammer -item.gun_spark.name=Spark Plug -item.gun_hp.name=HPP Lazerjet -item.gun_euthanasia.name=Euthanasia -item.gun_defabricator.name=Defabricator - -item.gun_revolver_iron_ammo.name=Bullet -item.gun_revolver_ammo.name=Lead Bullet -item.gun_revolver_gold_ammo.name=Golden Bullet -item.gun_revolver_lead_ammo.name=Glass Covered Nuclear Bullet -item.gun_revolver_schrabidium_ammo.name=Schrabidium Bullet -item.gun_revolver_cursed_ammo.name=Steel Bullet -item.gun_revolver_nightmare_ammo.name=Nightmare Bullet -item.gun_revolver_nightmare2_ammo.name=Laser Buckshot -item.gun_fatman_ammo.name=Mini Nuke -item.gun_mirv_ammo.name=Eightfold MIRV -item.gun_bf_ammo.name=Mk.V Compact AMAT-Artillery Shell - Type B.F. -item.gun_mp40_ammo.name=Submachine Gun Round -item.gun_uboinik_ammo.name=12x70 Buckshot -item.gun_xvl1456_ammo.name=Depleted Uranium-235 Box -item.gun_osipr_ammo.name=Dark Energy Pulse Plug -item.gun_osipr_ammo2.name=Combine Ball -item.gun_immolator_ammo.name=Immolator Fuel -item.gun_cryolator_ammo.name=Cryo Cell -item.gun_mp_ammo.name=Small Propellantless Machine Gun Round -item.gun_emp_ammo.name=Energy Cell -item.gun_jack_ammo.name=Quadruple Shotgun Shell -item.gun_spark_ammo.name=Electromagnetic Cartridge -item.gun_hp_ammo.name=Ink Cartridge -item.gun_euthanasia_ammo.name=Syringe -item.gun_defabricator_ammo.name=Defabricator Energy Cell - -item.clip_revolver_iron.name=Box of Iron Rounds -item.clip_revolver.name=Box of .357 Rounds -item.clip_revolver_gold.name=Small Coffer of Golden Bullets -item.clip_revolver_schrabidium.name=Schrabidium Ammo Container -item.clip_rpg.name=Rocket Container -item.clip_xvl1456.name=Large Isotope Box -item.clip_osipr.name=AR2 Magazine -item.clip_immolator.name=Tank of Immolator Fuel -item.clip_cryolator.name=Tank of Cryolator Fuel -item.clip_revolver_lead.name=Box of Nuclear Bullets -item.clip_revolver_cursed.name=Britannia Military Standard Issue Pisol Magazine -item.clip_fatman.name=Six Pack of Mini Nukes -item.clip_mirv.name=Three-In-One Pack of Mini MIRVs -item.clip_bf.name=BF-Shell Double Pack -item.clip_mp.name=Britannia Military Standard Issue Assult Rifle Magazine -item.clip_mp40.name=9mm SMG Magazine -item.clip_uboinik.name=Box of Buckshot Rounds -item.clip_emp.name=Small Pack of Energy Cells -item.clip_revolver_nightmare.name=Bag of Bullets -item.clip_revolver_nightmare2.name=Belt with Laser Buckshot - -tile.block_schrabidium.name=Block of Schrabidium -item.plate_gold.name=Gold Plate - -item.syringe_empty.name=Empty Syringe -item.syringe_antidote.name=Antidote -item.syringe_poison.name=Poisonous Injection -item.syringe_awesome.name=AWESOME -item.syringe_metal_empty.name=Metal Syringe -item.syringe_metal_stimpak.name=Stimpak -item.syringe_metal_medx.name=Med-X -item.syringe_metal_psycho.name=Psycho -item.pill_iodine.name=Iodine Pill -item.plan_c.name=Plan C - -item.stealth_boy.name=Stealth Device - -entity.hbm.entity_bullet.name=Bullet -entity.hbm.entity_rocket.name=Rocket -entity.hbm.entity_schrabnel.name=Schrabnel -entity.entity_mob_nuclear_creeper.name=Nuclear Creeper -entity.entity_mob_hunter_chopper.name=Hunter ChopperCreeper -entity.entity_cyber_crab.name=Cyber Crab - -item.cap_aluminium.name=Aluminium Cap -item.hull_small_steel.name=Small Steel Shell -item.hull_small_aluminium.name=Small Aluminium Shell -item.hull_big_steel.name=Big Steel Shell -item.hull_big_aluminium.name=Big Aluminium Shell -item.hull_big_titanium.name=Big Titanium Shell -item.fins_flat.name=Flat Steel Casing -item.fins_small_steel.name=Small Steel Grid Fins -item.fins_big_steel.name=Big Steel Grid Fins -item.fins_tri_steel.name=Large Steel Fins -item.fins_quad_titanium.name=Small Titanium Fins -item.sphere_steel.name=Steel Sphere -item.pedestal_steel.name=Steel Pedestal -item.dysfunctional_reactor.name=Dysfunctional Nuclear Reactor - -item.rotor_steel.name=Large Steel Rotor -item.generator_steel.name=Generator Body -item.blade_titanium.name=Titanium Blade -item.turbine_titanium.name=Titanium Steam Turbine -item.generator_front.name=Generator Front - -item.combine_scrap.name=CMB Scrap Metal -item.chopper_head.name=Hunter Chopper Cockpit -item.chopper_gun.name=Emplacement Gun -item.chopper_torso.name=Hunter Chopper Body -item.chopper_tail.name=Hunter Chopper Tail -item.chopper_wing.name=Hunter Chopper Wing -item.chopper_blades.name=Hunter Chopper Rotor Blades - -item.igniter.name=Igniter -item.watch.name=Broken Pocket Watch -item.apple_astatine.name=Euphemium Apple -item.ingot_astatine.name=Euphemium Ingot -item.nugget_astatine.name=Euphemium Nugget -item.rod_quad_astatine.name=Burned Out Quad Schrabidium Fuel Rod - -item.astatine_helmet.name=Euphemium Helemt -item.astatine_plate.name=Euphemium Chestplate -item.astatine_legs.name=Euphemium Leggings -item.astatine_boots.name=Euphemiums Boots - -item.schrabidium_helmet.name=Schrabidium Helmet -item.schrabidium_plate.name=Schrabidium Chestpate -item.schrabidium_legs.name=Schrabidium Leggings -item.schrabidium_boots.name=Schrabidium Boots -item.schrabidium_sword.name=Schrabidium Sword -item.schrabidium_pickaxe.name=Schrabidium Pickaxe -item.schrabidium_axe.name=Schrabidium Axe -item.schrabidium_shovel.name=Schrabidium Shovel -item.schrabidium_hoe.name=Schrabidium Hoe - -item.chainsaw.name=Chainsaw -item.crowbar.name=Mk.V Crate Opening Device "Crowbar" - -item.mask_of_infamy.name=Mask of Infamy - -tile.det_cord.name=Det Cord -tile.det_charge.name=Explosive Charge -tile.red_barrel.name=Explosive Barrel -tile.yellow_barrel.name=Radioactive Barrel - -item.designator.name=Short Range Target Designator -item.designator_range.name=Long Range Target Designator -item.missile_generic.name=High Explosive Missile -item.missile_anti_ballistic.name=Anti Ballistic Missile (WIP) -item.missile_incendiary.name=Incendiary Missile -item.missile_cluster.name=Cluster Missile -item.missile_buster.name=Bunker Buster -item.missile_strong.name=Strong HE Missile -item.missile_incendiary_strong.name=Strong Incendiary Missile -item.missile_cluster_strong.name=Strong Cluster Missile -item.missile_buster_strong.name=Enhanced Bunker Buster -item.missile_burst.name=Spare Missile -item.missile_inferno.name=Inferno Missile G.R.N. Mk.II -item.missile_rain.name=Bomblet Rain -item.missile_drill.name=The Concrete Cracker -item.missile_nuclear.name=Nuclear Missile -item.missile_nuclear_cluster.name=Nuclear MIRV Missile -item.missile_endo.name=Endothermic Missile -item.missile_exo.name=Exothermic Missile - -item.hazmat_helmet.name=Hazmat Helmet -item.hazmat_plate.name=Hazmat Chestplate -item.hazmat_legs.name=Hazmat Leggings -item.hazmat_boots.name=Hazmat Boots -item.hazmat_paa_helmet.name=PaA Battle Hazmat Suit Helmet -item.hazmat_paa_plate.name=PaA Battle Hazmat Suit Chestplate -item.hazmat_paa_legs.name=PaA Battle Hazmat Suit Leggings -item.hazmat_paa_boots.name=PaA Battle Hazmat Suit Boots -item.asbestos_helmet.name=Fire Proximity Helmet -item.asbestos_plate.name=Fire Proximity Chestplate -item.asbestos_legs.name=Fire Proximity Leggings -item.asbestos_boots.name=Fire Proximity Boots - -item.paa_plate.name=PaA Chest Protection Plate -item.paa_legs.name=PaA Leg Reinforcements -item.paa_boots.name=PaA "good ol' shoes" - -item.goggles.name=Protection Goggles -item.gas_mask.name=Gas Mask -item.oxy_mask.name=Oxygen Mask -item.t45_helmet.name=T45 Power Armor Helmet -item.t45_plate.name=T45 Power Armor Chestplate -item.t45_legs.name=T45 Power Armor Leggings -item.t45_boots.name=T45 Power Armor Boots - -tile.mush.name=Glowing Mushroom -tile.waste_mycelium.name=Glowing Mycelium - -item.warhead_generic_small.name=Small Warhead -item.warhead_generic_medium.name=Medium Warhead -item.warhead_generic_large.name=Large Warhead -item.warhead_incendiary_small.name=Small Incendiary Warhead -item.warhead_incendiary_medium.name=Medium Incendiary Warhead -item.warhead_incendiary_large.name=Large Incendiary Warhead -item.warhead_cluster_small.name=Small Cluster Warhead -item.warhead_cluster_medium.name=Medium Cluster Warhead -item.warhead_cluster_large.name=Large Cluster Warhead -item.warhead_buster_small.name=Small Bunker Buster Warhead -item.warhead_buster_medium.name=Medium Bunker Buster Warhead -item.warhead_buster_large.name=Large Bunker Buster Warhead -item.warhead_nuclear.name=Nuclear Warhead -item.warhead_mirvlet.name=MIRV -item.warhead_mirv.name=Eightfold MIRV Warhead -item.warhead_thermo_endo.name=Endothermic Warhead -item.warhead_thermo_exo.name=Exothermic Warhead -item.fuel_tank_small.name=Small Fuel Tank -item.fuel_tank_medium.name=Medium Fuel Tank -item.fuel_tank_large.name=Large Fuel Tank -item.thruster_small.name=Small Thruster -item.thruster_medium.name=Medium Thruster -item.thruster_large.name=Large Thruster - -item.wand_k.name=Construction Wand -item.wand_s.name=Structure Wand -item.wand_d.name=Debug Wand - -item.screwdriver.name=Screwdriver -item.overfuse.name=Singularity Screwdriver - -item.steel_helmet.name=Steel Helmet -item.steel_plate.name=Steel Chestplate -item.steel_legs.name=Steel Leggings -item.steel_boots.name=Steel Boots -item.titanium_helmet.name=Titanium Helmet -item.titanium_plate.name=Titanium Chestplate -item.titanium_legs.name=Titanium Leggings -item.titanium_boots.name=Titanium Boots -item.alloy_helmet.name=Advanced Alloy Helmet -item.alloy_plate.name=Advanced Alloy Chestplate -item.alloy_legs.name=Advanced Alloy Leggings -item.alloy_boots.name=Advanced Alloy Boots -item.cmb_helmet.name=CMB Steel Helmet -item.cmb_plate.name=CMB Steel Chestplate -item.cmb_legs.name=CMB Steel Leggings -item.cmb_boots.name=CMB Steel Boots - -item.steel_sword.name=Steel Sword -item.steel_pickaxe.name=Steel Pickaxe -item.steel_axe.name=Steel Axe -item.steel_shovel.name=Steel Shovel -item.steel_hoe.name=Steel Hoe -item.titanium_sword.name=Titanium Sword -item.titanium_pickaxe.name=Titanium Pickaxe -item.titanium_axe.name=Titanium Axe -item.titanium_shovel.name=Titanium Shovel -item.titanium_hoe.name=Titanium Hoe -item.alloy_sword.name=Advanced Alloy Sword -item.alloy_pickaxe.name=Advanced Alloy Pickaxe -item.alloy_axe.name=Advanced Alloy Axe -item.alloy_shovel.name=Advanced Alloy Shovel -item.alloy_hoe.name=Advanced Alloy Hoe -item.cmb_sword.name=CMB Steel Sword -item.cmb_pickaxe.name=CMB Steel Pickaxe -item.cmb_axe.name=CMB Steel Axe -item.cmb_shovel.name=CMB Steel Shovel -item.cmb_hoe.name=CMB Steel Hoe -item.elec_sword.name=Stunstick -item.elec_pickaxe.name=Impact Drill -item.elec_axe.name=Electric Chainsaw -item.elec_shovel.name=Spiral Drill - -tile.red_cable.name=Red Copper Cable -tile.block_meteor.name=Meteor Block - -item.cape_radiation.name=Cape (Radiation) -item.cape_gasmask.name=Cape (Gas Mask) -item.cape_schrabidium.name=Cape (Schrabidic) -item.cape_hbm.name=Hbm's Cape -item.cape_dafnik.name=Dafnik's Cape -item.cape_lpkukin.name=LPkukin's Cape -item.cape_vertice.name=Lord Vertice's Cape - -tile.machine_converter_he_rf.name=HE to RF Converter -tile.machine_converter_rf_he.name=RF to HE Converter - -item.schrabidium_hammer.name=Schrabidium Hammer -item.euphemium_stopper.name=Stopper -item.matchstick.name=Matchstick -item.remote.name=Broken Remote - -item.redcoil_capacitor.name=Redcoil Capacitor -item.detonator.name=Detonator -item.crate_caller.name=Supply Drop Requester - -item.ingot_hes.name=Highly Enriched Schrabidium Fuel Ingot -item.ingot_les.name=Low Enriched Schrabidium Fuel Ingot -item.nugget_hes.name=Highly Enriched Schrabidium Fuel Nugget -item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget - -item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet -item.pellet_hes.name=HES Watz Pellet -item.pellet_mes.name=MES Watz Pellet -item.pellet_les.name=LES Watz Pellet -item.pellet_beryllium.name=Beryllium Moderator Pellet -item.pellet_neptunium.name=Neptunium Watz Pellet -item.pellet_lead.name=Lead Reflector Pellet -item.pellet_advanced.name=Advanced Watz Performance Improver - -item.titanium_filter.name=Titanium Filter - -tile.mud_block.name=Poisonous Mud -fluid.mud_fluid=Poisonous Mud -item.bucket_mud.name=Bucket of Poisonous Mud -tile.acid_block.name=Acid -fluid.acid_fluid=Acid -item.bucket_acid.name=Bucket of Acid -tile.toxic_block.name=Stereotypical Green Ooze -fluid.toxic_fluid=Stereotypical Green Ooze -item.bucket_toxic.name=Bucket of Stereotypical Green Ooze -item.tank_waste_0.name=Mud Container -item.tank_waste_1.name=Mud Container -item.tank_waste_2.name=Mud Container -item.tank_waste_3.name=Mud Container -item.tank_waste_4.name=Mud Container -item.tank_waste_5.name=Mud Container -item.tank_waste_6.name=Mud Container -item.tank_waste_7.name=Mud Container -item.tank_waste_8.name=Mud Container - -item.can_empty.name=Empty Can -item.can_smart.name='Smart' Energy Drink -item.can_creature.name='Creature' Energy Drink -item.can_redbomb.name='Red Bomb' Energy Drink -item.can_mrsugar.name='Dr. Sugar' Soft Drink -item.can_overcharge.name=Overcharge Delirium XT -item.bottle_empty.name=Empty Bomb-Shaped Bottle -item.bottle_nuka.name=Bottle of Nuka Cola -item.bottle_cherry.name=Bottle of Nuka Cherry -item.bottle_quantum.name=Bottle of Nuka Cola Quantum -item.bottle2_empty.name=Empty Bottle -item.bottle2_korl.name=Korl -item.bottle2_fritz.name=Fritz Cola -item.bottle2_korl_special.name=The First Korl -item.bottle2_fritz_special.name=The First Fritz Cola -item.chocolate_milk.name=Chocolate Milk -item.cap_nuka.name=Nuka Cola Bottle Cap -item.cap_quantum.name=Nuka Cola Quantum Bottle Cap -item.cap_korl.name=Korl Bottle Cap -item.cap_fritz.name=Fritz Cola Bottle Cap -item.ring_pull.name=Ring Pull - -item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener - -item.blades_aluminium.name=Aluminium Shredder Blades -item.blades_gold.name=Golden Shredder Blades -item.blades_iron.name=Iron Shredder Blades -item.blades_steel.name=Steel Shredder Blades -item.blades_titanium.name=Titanium Shredder Blades -item.blades_advanced_alloy.name=Advanced Shredder Blades -item.blades_combine_steel.name=CMB Shredder Blades -item.blades_schrabidium.name=Schrabidium Shredder Blades - -item.part_lithium.name=Box of Lithium Dust -item.part_beryllium.name=Box of Beryllium Dust -item.part_carbon.name=Box of Carbon Dust -item.part_copper.name=Box of Copper Dust -item.part_plutonium.name=Box of Plutonium Dust - -item.crystal_energy.name=Energy Crystal -item.pellet_coolant.name=Coolant Cluster - -item.linker.name=Telelinker -item.oil_detector.name=Oil Reservoir Detector - -item.thermo_element.name=Thermoelectric Element -item.limiter.name=Generator Limiter - -item.multitool_dig.name=Power Fist (Digging Claw) -item.multitool_silk.name=Power Fist (Silk Touch Claw) -item.multitool_ext.name=Power Fist (Ore Extracter) -item.multitool_miner.name=Power Fist (Extracting Mining Laser) -item.multitool_hit.name=Power Fist (Fist) -item.multitool_beam.name=Power Fist (Zapper) -item.multitool_sky.name=Power Fist (Crack the Sky) -item.multitool_mega.name=Power Fist (Super Punch) -item.multitool_joule.name=Power Fist (Giga Joule) -item.multitool_decon.name=Power Fist (Decontaminator) - -item.australium_iii.name=Mark III Life Extender -item.australium_iv.name=Mark IV Life Extender -item.australium_v.name=Mark V Life Extender - -item.weapon_saw.name=Doctor Assisted Homicide -item.weapon_bat.name=Richard's Default -item.weapon_bat_nail.name=The Cliché -item.weapon_golf_club.name=Russian Mobster's Club -item.weapon_pipe_rusty.name=The Attitude Adjuster -item.weapon_pipe_lead.name=The Manual Override -item.reer_graar.name=The Reer Graar - -item.letter.name=Express Mail -item.polaroid.name=The Polaroid -item.book_secret.name=3-596-50802-9 - -item.crystal_horn.name=Crystal Horn -item.crystal_charred.name=Charred Crystal -item.ingot_lanthanium.name=Semi-Stable Lanthanium Ingot -item.ingot_actinium.name=Semi-Stable Actinium Ingot - -tile.dummy_block.name=Dummy Block -tile.dummy_port.name=Dummy Block (Electricity Port) - -item.chopper.name=Hunter Chopper - -item.nothing.name=Nothing - -tile.crystal_virus.name=Dark Crystal -tile.crystal_hardened.name=Hardened Dark Crystal -tile.crystal_pulsar.name=Pulsating Crystal - -tile.cheater_virus.name=Gelid Euphemium -tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 8876e8c0f..0f34f99b4 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1,49 +1,49 @@ achievement.acidizer.desc=噢我的皮肀 achievement.acidizer=酾 -achievement.assembly.desc=Bobmazon 2级 (装配机) -achievement.assembly=制䜜 +achievement.assembly.desc=等等已经凌晚1点了 +achievement.assembly=这家工厂正圚成长 achievement.FOEQ.desc=向火星䌠送信号...其实我是诎Duna achievement.FOEQ=飞马座运蜜火箭和发射架 achievement.breeding.desc=谢谢䜠们䞊垝保䜑䜠们䞊垝保䜑矎利坚合䌗囜。 achievement.breeding=反话 -achievement.bismuth.desc=还记埗有人抱怚了䞀䞪月吗我愿意。 +achievement.bismuth.desc=还记埗那时候有人䞺这䞪抱怚了䞀䞪月吗我还记埗。 achievement.bismuth=铋 -achievement.blastFurnace.desc=他们䞺制造探险家1号去打捞了䞀艘沉没的无畏舰。 +achievement.blastFurnace.desc=他们䞺制造探险者1号去打捞了䞀艘沉没的无畏舰。 achievement.blastFurnace=煀和铁 achievement.bossCreeper.desc=栞爆爬行者? 那是䞪什么玩意?! achievement.bossCreeper=四条腿的行走栞匹 -achievement.bossMaskman.desc=倧男孩邊克 -achievement.bossMaskman=6䞪月的区制服务我只埗到䞀件糟糕的t恀 +achievement.bossMaskman.desc=淊飞那䞪倧男孩 +achievement.bossMaskman=6䞪月的区制服务我只埗到䞀件糟糕的T恀 achievement.bossMeltdown.desc=比䌟倧曎可怕䜆我䌚竭尜所胜 achievement.bossMeltdown=3.6䌊琎 -achievement.bossWorm.desc=法垃斯塔倫。我的屁股。䜠算算吧。 +achievement.bossWorm.desc=“绝孊法杖”。什么鬌啊。䜠自己看看吧。 achievement.bossWorm=拆掉机械蠕虫 -achievement.bossUFO.desc=哟我们这儿有什么䞀艘巚倧的宇宙飞船正匀向我们的星球 +achievement.bossUFO.desc=哟那是啥䞜西䞀艘正接近我们工事的巚倧飞船 achievement.bossUFO=呀哈哈哈笑死我了 achievement.burnerPress.desc=压力压圚䜠我身䞊 achievement.burnerPress=压力之䞋 achievement.c20_5.desc=??? -achievement.c20_5=第20.5ç«  +achievement.c20_5=第[二十点五]ç«  achievement.c44.desc=镀锌我是诎锌 achievement.c44=第四十四章 -achievement.centrifuge.desc=犻心力是假的䞍芁再@我了 +achievement.centrifuge.desc=犻心力是真的 别@我 achievement.centrifuge=向心力 achievement.chemplant.desc=现圚䜠圚考虑化孊物莚 -achievement.chemplant=这家工厂正圚成长。Pt.2 -achievement.chicagoPile.desc=“圓地人怎么样”“非垞友奜。” +achievement.chemplant=这家工厂正圚成长 Pt.2 +achievement.chicagoPile.desc=“圓地人怎么样” / “非垞友奜。” achievement.chicagoPile=领航员圚新倧陆着陆 achievement.concrete.desc=垃尔什绎克的最爱。 -achievement.concrete=老圓益壮 +achievement.concrete=可靠的老䌙计 achievement.desh.desc=“来吧䜠们这矀人。有地方可去” achievement.desh=勒嚁耶 -achievement.digammaFeel.desc=内心的空虚 -achievement.digammaFeel=感觉的恐惧 +achievement.digammaFeel.desc=我的県睛圚流血 +achievement.digammaFeel=废氎䟵袭的废土䞖界 achievement.digammaKauaiMoho.desc=䞀切郜糟透了这里有些热巧克力 -achievement.digammaKauaiMoho=歌唱,䞺我歌唱《Kauai Moho》 +achievement.digammaKauaiMoho=唱吧䞺我唱出奥亚吞蜜鞟的歌声吧 achievement.digammaKnow.desc=关于这䞪䞖界 achievement.digammaKnow=知晓的恐惧 -achievement.digammaSee.desc=坠入深枊 -achievement.digammaSee=可见的恐惧 +achievement.digammaSee.desc=里面有点黑垊䞪手电筒。 +achievement.digammaSee=螏入深枊 achievement.digammaUpOnTop.desc=仰慕我的儿子,他是我的克隆人. achievement.digammaUpOnTop=仰慕我仰慕我的家 achievement.fiend.desc=卑鄙 @@ -51,12 +51,12 @@ achievement.fiend2.desc=曎卑鄙 achievement.fiend2=残忍2:曎残忍 achievement.fiend=残忍 achievement.freytag.desc=英勇的救生员 -achievement.freytag=北雷塔栌 -achievement.fusion.desc=氘栞、海卫䞀䞎胜量的舞蹈。 +achievement.freytag=北赖塔栌 +achievement.fusion.desc=氘栞、氚栞䞎胜量的舞蹈。 achievement.fusion=聚合 -achievement.gasCent.desc=莫铀讚厌他 -achievement.gasCent=铟匏 -achievement.goFish.desc=航海十字架 +achievement.gasCent.desc=未浓猩铀讚厌他 +achievement.gasCent=霐䜩匏犻心 +achievement.goFish.desc=把鱌钉圚十字架䞊 achievement.goFish=去钓鱌 achievement.hidden.desc=䜿甚䞀节坠萜的蜊厢杀死䞀只污染苊力怕 achievement.hidden=隐藏目圕 @@ -67,7 +67,7 @@ achievement.horizonsEnd=地平线。 achievement.horizonsStart.desc=将䞀䞪小䌙子送䞊月球 achievement.horizonsStart=地平线 achievement.impossible.desc=䜠䞍可胜取埗该成就 -achievement.impossible=简盎䞍可胜 +achievement.impossible=字面䞊的䞍可胜 achievement.inferno.desc=“把它变成灰烬这还䞍借投曎倚的炞匹” achievement.inferno=食人行劚 achievement.manhattan.desc=1945幎8月6日 8:15 @@ -77,12 +77,12 @@ achievement.meltdown=快速非计划拆卞 achievement.no9.desc=“我垌望我匀采的铅胜被甚圚䜠的油挆里” achievement.no9=旧数字9 achievement.omega12.desc=解决圚这䞪可怜的星球䞊继续生存的问题 -achievement.omega12=欧米茄-12粒子加速噚 +achievement.omega12=欧米䌜-12粒子加速噚 achievement.polymer.desc=矎味、矎味的埮塑料。 achievement.polymer=特氟隆 achievement.potato.desc=䜠居然捅我䜠怎—喔哊哊哊哊哊 achievement.potato=流氓AI -achievement.radDeath.desc=居里倫人匀创了攟射性理论、攟射性治疗和攟射性死亡。。。。 +achievement.radDeath.desc=居里倫人匀创了攟射性理论、攟射性治疗和攟射性死亡。 achievement.radDeath=噢, 蟐射! achievement.radium.desc=䜠 因 䞺 埀 我 的 咖 啡 里 倒 镭 而 被 è§£ 雇 了  achievement.radium=䞍可思议先生 @@ -94,24 +94,26 @@ achievement.RBMK.desc=他有劄想症垊他去医务宀。 achievement.RBMK=3.6䌊琎 achievement.redBalloons.desc=“这就是我们䞀盎圚等埅的。就是这样孩子们这就是战争。” achievement.redBalloons=99䞪红气球 +achievement.redRoom.desc= +achievement.redRoom=及䞀蟹 achievement.sacrifice.desc=盎面火海并存掻 achievement.sacrifice=牺牲 achievement.schrab.desc=䞍管怎样我䞍䌚看倪久。 achievement.schrab=皳定岛 achievement.selenium.desc=耶 achievement.selenium=XVIII 月亮女神 -achievement.SILEX.desc=我保证它䌚比它听起来的芁曎酷 +achievement.SILEX.desc=我保证这比听起来曎酷。 achievement.SILEX=激光激发法分犻同䜍玠 achievement.slimeball.desc=粘液球 achievement.slimeball=我应该把蛋蛋浞圚硫酞里。 -achievement.stratum.desc=快刹蜊, Mitts +achievement.stratum.desc=快刹蜊Mitts achievement.stratum=岩层 achievement.someWounds.desc=准倇奜 achievement.someWounds=有些䌀口氞远无法愈合 achievement.soyuz.desc=变埗束脆 achievement.soyuz=土豆烹饪 achievement.space.desc=屡试屡莥浪莹了价倌9000䞇矎元的资金 -achievement.space=最后战线—呃算了吧 +achievement.space=最后的蟹疆——呃算了吧 achievement.sulfuric.desc=ç¡«é…ž achievement.sulfuric=我䞍应该把蛋蛋浞圚硫酞里的。 achievement.tantalum.desc=䞀䞪隟以捉摞䜆华氞远需芁的元玠。 @@ -126,14 +128,24 @@ achievement.watz.desc=可胜包括Fólkvangr北尔克范栌场 achievement.watz=126号元玠的力量 achievement.witchtaunter.desc=那些叀怪的生物对䜠毫无兎趣 achievement.witchtaunter=巫婆陶恩特 -achievement.ZIRNOXBoom.desc=倄理, 看满地是残骞碎片 -achievement.ZIRNOXBoom=锆诺克斯 +achievement.ZIRNOXBoom.desc=生气了吗 +achievement.ZIRNOXBoom=CIRNOX + +analyze.basic1=========NTM组件======== +analyze.basic2=曎倚信息请参阅Wiki。 +analyze.basic3=========附加信息======== +analyze.dummy=类型Dummy Block +analyze.error=歀方块的兌容性未正确讟定。请将歀问题䜜䞺Bug反銈 +analyze.name=名称%s +analyze.noInfo=无附加信息。 + armor.blastProtection=修正 %s 的爆炞䌀害 armor.cap=䌀害䞊限 %s armor.damageModifier=修正 %s 对 %s 的䌀害 -armor.dash=给予 %s 冲刺 +armor.dash=给予 %s 次冲刺 armor.electricJetpack=犻子喷射背包 armor.explosionImmune=免疫陀爆炞䌀害倖的䞀切䌀害 +armor.fasterReload=快速装填 armor.fastFall=快速降萜 armor.fireproof=防火 armor.fullSetBonus=党套效果: @@ -144,20 +156,24 @@ armor.gravity=重力修正 %s armor.hardLanding=硬着陆 armor.ignoreLimit=防埡倌䞍受防埡䞊限的圱响 armor.modifier=䌀害修正 %s +armor.moreAmmo=曎倚匹药 armor.nullDamage=免疫 %s 䌀害 armor.projectileProtection=免疫 %s 的匹射物䌀害 armor.rocketBoots=火箭靎 armor.sprintBoost=冲刺蟅助加速 +armor.stepSize=步长%s armor.thermal=热成像 armor.threshold=䌀害阈倌 %s armor.vats=敌对生物HUD armor.yield=抵埡䜎于%s的䌀害 + armorMod.all=所有 armorMod.applicableTo=适甚于 armorMod.boots=靎子 armorMod.chestplates=胞甲 armorMod.helmets=倎盔 armorMod.insertHere=插入装甲以改装。。。 +armorMod.type.battery=电池 armorMod.leggings=技腿 armorMod.type.boots=靎子 armorMod.type.chestplate=胞甲 @@ -167,9 +183,10 @@ armorMod.type.insert=插板 armorMod.type.leggings=技腿 armorMod.type.servo=䌺服电机 armorMod.type.special=特殊 + battery.mode.buffer=蟓入/蟓出暡匏 battery.mode.input=蟓入暡匏 -battery.mode.off=关闭W +battery.mode.off=关闭 battery.mode.output=蟓出暡匏 battery.priority.high=充电䌘先级高 battery.priority.high.desc=总是需芁䌘先装满的玧急猓冲区 @@ -180,14 +197,17 @@ battery.priority.normal.desc=蟃小的电眑其䌘先级无关玧芁 battery.priority.recommended=掚荐甚于 battery.redstone.off=红石 关 battery.redstone.on=红石 匀 + bomb.detonated=成功匕爆 bomb.incompatible=讟倇无法觊发 bomb.launched=发射成功 bomb.missingComponent=组件䞢倱 bomb.nobomb=铟接䜍眮䞍兌容或已断匀 bomb.triggered=觊发成功 + book.test.cover=停蜊坐爱枫林晚 book.test.page1=测试页面1 + book.error.cover=粒子对撞机:$故障排陀 book.error.title1=错误 0x01 [胜量䞍足] book.error.page1=§l错误类型:§r "错误_胜量䞍足" §l描述:§r 粒子到蟟了胜量䞍足的郚分。 §l修倍方匏:§r 甚曎高级的电源接口替换粒子成功通过的 其䞭䞀䞪电源接口或者圚粒子终止的段之前额倖添加倚䞀䞪电源接口。 @@ -207,6 +227,7 @@ book.error.title8=错误 0x08 [二极管方向错误] book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子䞎肖特基粒子二极管的非蟓入䟧碰撞。§l修倍方匏:§r 检查二极管的配眮是吊正确。 粒子只胜从垊有绿色向内箭倎的䟧面进入二极管。 book.error.title9=错误 0x09 [倚倄分支] book.error.page9=§l错误类型:§r "错误_倚倄分支" §l描述:§r 粒子到蟟具有倚䞪出口的蜬匯倄。§l修倍方匏:§r 劂果䜠的对撞机是正垞的检查所有需芁的线圈是吊郜存圚即线圈䞭没有猺挏。劂果蜬匯倄打算进行分支则需芁正确攟眮的肖特基粒子二极管。 + book.rbmk.cover=$我的第䞀䞪$RBMK石墚匏反应堆:$建造䞀䞪$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墚匏反应堆§r是䞀䞪完党暡块化的栞反应堆. 䞎倧倚数其他反应堆䞍同的是, 该反应堆没有"倚方块结构栞心"和尺寞䞊的限制, 而反应堆的性胜和效率仅取决于䜠是劂䜕建造它的, 以及各䞪组件劂䜕盞互䜜甚. @@ -240,6 +261,7 @@ book.rbmk.title15=栞燃料 book.rbmk.page15= §l栞燃料§r 的反应取决于讞倚因玠. 䞻芁是 §l栞燃料区床§r, §l氙䞭毒皋床§r 和接收到的 §l䞭子数量§r. 氙元玠䌚圚栞燃料的䞭子含量蟃䜎时积聚起来, 并圚正垞运行时燃烧殆尜. 䞭子的效率取决于其类型, 倧倚数栞燃料 §l甚慢䞭子蜰击来裂变效果最奜§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尜量避免发生, 䜠䞍䌚想让这样䞀场栞灟隟发生圚䜠的存档或服务噚里的. + book.starter.cover=重建$瀟䌚的实䞚家$指南 book.starter.title1=介绍 book.starter.page1=劂果䜠正圚读这篇文章埈可胜瀟䌚已经因这样或 那样的方匏完党厩溃了。政府、囜家和权嚁是过去的抂念 以及文明生掻的所有䟿利讟斜。因歀本指南将 告诉悚劂䜕通过重新创造过去的行䞚和技术 来改善自己的生掻从而改变这种状况。 @@ -252,10 +274,10 @@ book.starter.page4=䞺了将金属冲压成有甚的 圢状、组装机械和执 book.starter.title5=废墟探玢 book.starter.page5=根据最初的䞖界末日事件对䞖界现有结构的圱响皋床 有可胜盎接从䞭抢救出讞倚有甚的材料和机噚。 钢铁等金属合金、电路等郚件甚至栞电站的 裂变材料郜可胜圚等着䜠。 然而芁小心某些废墟因䞺那里可胜朜䌏着过床的危险 就像草䞛䞭的蛇䞀样 等埅着甚蟐射、陷阱或无法圢容的恐怖袭击䜠... book.starter.title6=早期机械 -book.starter.page6a=悚应銖先装配的䞀台机噚是§l高炉§r和§l装配机§r. 前者允讞悚制造合金劂§L钢§r、§l工䞚级铜§r和§l高级合金§r 䜠需芁将这些金属甚于机噚的机身、 电路的垃线、高级电磁铁等. -book.starter.page6b=汇猖皋序将甚于创建本指南䞭描述的几乎所有其他机噚. 悚需芁䞀䞪电源劂§L火力§r§L发电机§r或§L倪阳胜锅炉§r. +book.starter.page6a=悚应銖先制造的䞀台机噚是§l高炉§r和§l装配机§r. 前者允讞悚制造合金劂§L钢§r、§l工䞚级铜§r和§l高级合金§r 䜠需芁将这些金属甚于机噚的机身、 电路的垃线、高级电磁铁等. +book.starter.page6b=装配机将甚于制造本指南䞭描述的几乎所有其他机噚. 悚需芁䞀䞪电源劂§L火力§r§L发电机§r或§L倪阳胜锅炉§r. book.starter.page7a=§l粉碎机§r以及䞀对粉碎机刀片将䌚非垞有甚 胜将倧倚数矿石粉碎成可熔炌的粉末䜿其产量提高䞀倍. 这些粉末对于匀始䞺各种机噚制䜜电路也至关重芁 䟋劂§l增区电路§r和§l超频电路§r。 -book.starter.page7b=䜿甚悚的新机噚悚可以创建§L化工厂§r 甚于合成曎奜的电路、混凝土或进行石化产品加工等。 +book.starter.page7b=䜿甚悚的新机噚悚可以制造§L化工厂§r 甚于合成曎奜的电路、混凝土或进行石化产品加工等。 book.starter.title8=黑金 book.starter.page8a=䜿甚§l石油§l傚层§r§l探测仪§r, 悚可以通过测量䞀䞪区域 来发现地䞋的油岩以 攟眮§l石油钻机§r或 §l钻油塔§r来匀采 记䜏,石油傚倇䌚随着时闎 的掚移而耗尜 book.starter.page8b=圚§l炌油厂§r䞭提炌和分犻石油 成分之前,䜠必须圚§l锅炉§räž­å°† 石油加热至300°C. @@ -264,7 +286,7 @@ book.starter.page9=䜿甚§l化工厂§r, §l分銏§r§l塔§r和§l催化裂 book.starter.title10=先进的机械 book.starter.page10=通过䞀套成熟的石油加工系统,悚可以制造§l犻心机§r, 这将䜿矿石的产量增加䞉倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进䞀步提高; 以及§lSILEX同䜍玠激光分犻宀+§lFEL§r, 这䞀䞪现代工皋的奇迹可以蜻束地分犻材料的同䜍玠. 䜠需芁曎倚的胜量来驱劚这些; 可通过§l柎油发电机§r,§l工䞚发电机§r, 甚至栞反应堆等来源获取曎倚的胜量。 book.starter.title11=特殊地层 -book.starter.page11=圚䜠行走的地面之䞋有几䞪 自然圢成的§l岩层§r或者诎特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层 其䞭有铀、铁、铜、石棉和其他矿石 可䟛䜠䜿甚。 §l深板岩层§r含有倧量皀有矿物, 劂§l锆§r、§l硌§r和§l朱砂§r等 䜆䜠需芁炞药才胜采集 +book.starter.page11=圚䜠行走的地面之䞋有几䞪 自然圢成的§l岩层§r或者诎特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层 其䞭有铀、铁、铜、石棉和其他矿石 可䟛䜠䜿甚。 §l深层岩石§r含有倧量皀有矿物, 劂§l锆§r、§l硌§r和§l朱砂§r等 䜆䜠需芁炞药才胜采集 book.starter.title12=蟐射 book.starter.page12a=本乊其䜙郚分将讚论䞎蟐射有关的问题。 䞺了悚和他人的安党我将提䟛䞀些建议以诎明劂䜕猓解和倄理暎露于歀的风险。 book.starter.page12b=充分暎露圚蟐射䞭䌚富臎身䜓䌀害. 第䞀步是预防; 䞀定芁限制接觊并穿戎防技装倇劂§l防蟐射套装§r, 或圚衣服或盔甲䞊加装§l防蟐射芆层/涂料§r; 䜠也可以服甚§lRad-X防蟐射药§r来限制䜠的蟐射量. 倚亏了现代医孊第二步可以圚必芁时移陀; 䟋劂§l玩家§l去污噚§r将猓慢减少身䜓吞收的蟐射. §l消蟐宁§r还可以甚䜜暎露后预防快速有效地逆蜬 电犻蟐射对身䜓造成的损害。 @@ -278,6 +300,7 @@ book.starter.title16=结论 book.starter.page16=劂果䜠已经走到了这䞀步䜠已经走圚重建文明倧道䞊了. 䜠已经成功地甚栞胜, 石油化工等重新制造了䞖界末日前的那些先进机噚. 我䞍知道䜠将劂䜕利甚这些新发现的科技, 䜆我䞪人垌望䜠利甚这些䌘势是䞺了自己和他人的利益 - 或者至少是䞺了自卫. 再见! book.starter.title18=关于䜜者 book.starter.page18=v?r只是䞀䞪被困圚"䌠声倎像"的§o《䞀生䞀次》§r侭的 灰色虚空䞭倪久的人. 有䞀次, 他发现了䞀扇工䜜宀的闚, 䜆什他沮䞧的是, 他发现那是䞀䞪纞板剪出来的 + #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.title1=Introduction #book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. @@ -310,61 +333,135 @@ book.starter.page18=v?r只是䞀䞪被困圚"䌠声倎像"的§o《䞀生䞀次 #book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown #book.rbmk.page16=§4§lAvoid. -book_lore.author=By %s + +book_lore.author=%s 著 book_lore.test.name=测试 book_lore.test.author=那䞪家䌙 -book_lore.test.page.1=>䜠奜圚我匀始之前让我柄枅我䞍是同性恋。>做我>今倩晚䞊>18>和我最奜的朋友和我的父母出去玩了几倩>我们已经是最奜的朋友䞀幎了>喝了点酒玩了埈倚电子枞戏还点了䞀仜披萚>我们玩埗埈匀心>圚晚䞊的某䞪时候比劂9点巊右他匀了䞀䞪非垞有趣的玩笑我䞍记埗了䜆我知道这让我们俩郜笑埗埈厉害>没有我想我甚右手摞了摞他那半卷曲的黑发然后叫他䞀䞪有趣的男孩>他脞红了>我意识到我埈慌匠>我们有点亲密>突然他吻了我出于某种原因我又吻了他>我们做爱>拥抱圚䞀起睡着了>半倜醒来时他的倎莎圚我的胞郚和颈郚>感觉埈奜䜆我䞍是同性恋 -book_lore.test.page.2=他圚我怀里睡着时我正圚打字。我怎么才胜让我最奜的朋友倱望呢我䞍想成䞺[猖蟑]/b/ -book_lore.test.page.3=3 -book_lore.test.page.4=4 -book_lore.test.page.5=5 +book_lore.test.page.0=>哈喜 圚我匀始之前 我埗先柄枅䞀䞋 我䞍是同性恋 >做我 >今倩晚䞊 >六点 >趁爞劈出去几倩 我和铁哥们去倖面玩 >我们成了铁哥们已经有䞀幎了 >喝了点酒 打了埈倚枞戏 还点了䞪披萚 >我们玩埗正高兎 >晚䞊 圚䞀䞪什么时候 倧抂九点吧 他讲了䞪埈奜笑的笑话 我记䞍枅了 䜆是我记着 那笑话让我俩笑疯了 >没来埗及细想 我拿手捋了捋他的倎发 黑色的埮卷的倎发 还诎他真有意思 >他脞红了 >我意识到自己慌了 >我们有点倪亲密了 >突然他亲了我 䞍知道䞺什么 我亲回去了 >我们做爱了 >抱圚䞀起睡着了 >半倜我醒了 发现他脑袋莎着我的胞和脖子 >这种感觉埈奇劙 䜆我真的䞍是同性恋 +book_lore.test.page.1=我打这些字的时候他正圚我 怀里睡觉。我怎么就这样让 我哥们倱望了我䞍想变成 [数据删陀] /b/ +book_lore.test.page.2=3 +book_lore.test.page.3=4 +book_lore.test.page.4=5 + book_lore.book_iodine.name=笔记 book_lore.book_iodine.author=戎倫 -book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. -book_lore.book_iodine.page.3=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d +book_lore.book_iodine.page.0=诎起来䜠肯定䞍信“风向 标”那老家䌙圚犻匀䞀䞪月 之后又重新出现了。而䞔曎 惊人的是他打算把那䌙人 圚峡谷里干的秘密募圓泄露 出去。 +book_lore.book_iodine.page.1=搞研发的那矀癜痎们偶然发 现了䞀种化合物倧郚分是 无机的埈像自然界䞭的 毒玠。䜆是泚意被这种毒玠 杀死的细胞䌚产生曎倚的同 种毒玠并将其释攟到皮肀 倖面这就产生了䌠染性极 区的气溶胶。 +book_lore.book_iodine.page.2=这䞜西像病毒䜆又䞍是病毒。 这种物莚非垞奇怪䜠圚家 随䟿扟䞀䞪瓶子就胜混合 出来䜆是必须芁搞对顺序。 博士告诉我第䞀种原料是 粉末状碘晶䜓攟圚 第%d栌。 + book_lore.book_phosphorous.name=笔记 book_lore.book_phosphorous.author=戎倫 -book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.2=ingredient is red phosphorous, whihc has to be mixed into slot %d +book_lore.book_phosphorous.page.0=哈喜又是我。䜠应该看到 我的䞊䞀篇倇忘圕了吧。 博士对我写倇忘圕这件事有 点生气所以我埗快点写完。 那矀搞研发的傻垜又匀始䞀 䞪劲地抱怚䌰计还是什 么钱的事。 +book_lore.book_phosphorous.page.1=对了“风向标”博士发现了 第二种原料是红磷应该 攟圚第%d栌。 + book_lore.book_dust.name=笔记 book_lore.book_dust.author=戎倫 -book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most -book_lore.book_dust.page.3=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d +book_lore.book_dust.page.0=博士发现搞研发的那矀呆子 还留了䞪样品之后气埗芁呜 倧喊倧叫了䞀通“总䜓过倱” 和“䞖界末日”什么的。 我告诉他先冷静䞀䞋 +book_lore.book_dust.page.1=倪激劚对血压䞍奜而䞔他 本身就没有那么倚血。那矀 呆子里面的䞀䞪圚䞊呚的通 报里诎挏了嘎。他们管他们 调出来的那玩意儿叫“MKU” ——管他是什么意思而䞔 那玩意儿里面还有家里的 绒毛。 +book_lore.book_dust.page.2=䜠肯定䞍信那矀呆子最危 险的发明之䞀里面还有灰尘 ——奇怪的是他们甚至提到 这䞜西应该攟圚第%d栌。 + book_lore.book_mercury.name=笔记 book_lore.book_mercury.author=戎倫 -book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.2=replicated by the body? whatever, the mercury goes into slot %d +book_lore.book_mercury.page.0=就是这么回事。䞍算吐血的 郚分毒理孊报告埈倧皋床 䞊呈现了汞䞭毒的特埁。 䞺什么因䞺那堆混合物里 也含有氎银 +book_lore.book_mercury.page.1=我埈奜奇这䞜西被细胞倍 制的时候倍制出来的物莚 是从哪来的 扯远了。氎银应该攟到 第%d栌。 + book_lore.book_flower.name=笔记 book_lore.book_flower.author=戎倫 -book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.2=it does not work with other flowers. the morning glory goes into slot %d +book_lore.book_flower.page.0=还记埗我圚第䞀篇倇忘圕里 提到了“这䞜西倧郚分是无 机的”吗䜠猜怎么着 老“风向标”跟我分享了第 四样原料䞀种花孊名叫 “ipomoea nil”。是牵牛花 +book_lore.book_flower.page.1=可胜是由于牵牛花蟃䜎的硫 含量甚别的花郜䞍行。 牵牛花应该攟圚第%d栌。 + book_lore.book_syringe.name=笔记 book_lore.book_syringe.author=戎倫 -book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.2=syringe goes into slot %d +book_lore.book_syringe.page.0=对我第五篇倇忘圕的䞀点 补充埈星然䜠应该扟䞪容 噚把这些MKU装进去。搞 研发的那垮疯子甚的是从医 疗机构匄到的普通金属泚射 噚——我掚测还有䞍少倚䜙 的。他们匄了几千䞪然后 扔的到倄郜是。 +book_lore.book_syringe.page.1=金属泚射噚 应该攟圚第%d栌。 + book_lore.resignation_note.name=蟞职信 book_lore.resignation_note.author=科斯马 -book_lore.resignation_note.page.1=管理层昚倩又对我们的郚闚进行裁员了。那矀癜痎芁怪只胜怪他们自己我郜䞍知道他们圚那场惚莥后还圚期埅什么。到底是谁他劈泄露了那种皋床的信息 -book_lore.resignation_note.page.2=我们损倱了几癟䞇而䞔现圚倱䞚的还是爷。老子垌望䜠们这垮混蛋最后胜从䜠们的䞀堆问题䞭孊到点教训然后给爷滚去自闭。 -book_lore.resignation_note.page.3=我呚五䞍回来了。工资寄过来就行。 +book_lore.resignation_note.page.0=管理层昚倩又对我们的郚闚 进行裁员了。那矀癜痎芁怪 只胜怪他们自己我郜䞍知 道他们圚那场惚莥后还圚期 埅什么。到底是谁他劈泄露 了那种皋床的信息 +book_lore.resignation_note.page.1=我们损倱了几癟䞇而䞔现 圚倱䞚的还是爷。老子垌望 䜠们这垮混蛋最后胜从䜠们 的䞀堆问题䞭孊到点教训然 后给爷滚去自闭。 +book_lore.resignation_note.page.2=我呚五䞍回来了。 记埗把工资发我。 + book_lore.memo_stocks.name=公叞内郚倇忘圕 -book_lore.memo_stocks.page.1=投资者报告 - $$最新的季床报告䞭提䟛的数据存圚䞀些明星的差匂。莢政郚所䜜出䞀些调敎是明智的因歀䞍必有任䜕担忧。 +book_lore.memo_stocks.page.0=投资人盞关 - $ $ 䞊季床报告提䟛的数字䞭已 经出现了明星差匂。莢政郚 闚即䜿做出䞀些调敎也是盞 圓谚慎的因歀无需担心。 + book_lore.memo_schrab_gsa.name=内郚倇忘圕 -book_lore.memo_schrab_gsa.page.1=合同管理记圕 - 法务郚圚䞎矎囜囜防郚后勀局的谈刀䞭取埗了突砎。他们批准了450亿的联邊采莭服务总眲投资资金甚于匂变金属的采莭䞎研究。 -book_lore.memo_schrab_gsa.page.2=就目前预期来看这将至少产生40%的利涊曎䞍必诎以后行劚所产生的利涊同时这将䜿我们未来有机䌚筟订曎倚合同。鉎于歀事的保密性莚所有莢政证据郜将䞺机密级别 +book_lore.memo_schrab_gsa.page.0=合同管理记圕 - $ $ 法务郚圚䞎DLA的谈刀䞭 取埗了突砎。他们批准了 450亿的联邊采莭服务 总眲投资资金甚于匂变金属 的采莭䞎研究。 +book_lore.memo_schrab_gsa.page.1=就目前的预期盞关事项胜 借垊来至少40%%的利涊 以及获埗未来合同的曎倧可 胜。由于歀事件的保密性莚 所有莢政证据郜将保持机密。 + book_lore.memo_schrab_rd.name=内郚倇忘圕 -book_lore.memo_schrab_rd.page.1=研发 - 目前我们䞻芁生产方法是䜿甚新型粒子加速噚。然而䞎产出量盞比胜源成本高埗惊人。 -book_lore.memo_schrab_rd.page.2=然而Schrabauer博士发现了䞀种党新的盞互䜜甚——暂称䞺“奇匂蜻子振荡”——该䜜甚可以星著降䜎生产成本。通过䞀䞪目前未被完党理解的的过皋提䟛的电子被䞀种奇特的“魔力”蜬化䞺极高胜量的光子。 -book_lore.memo_schrab_rd.page.3=这是讞倚已明确的粒子蜬换定埋的极端䟋倖。䜆初步实验证明这些莚子先蜬变䞺䞊䞋倞克最终圢成了匂变金属。奇怪的是原型机䞭需芁钚䞎少量匂变金属合金化所埗到的合金。 -book_lore.memo_schrab_rd.page.4=陀歀之倖还需芁䞀䞪特殊的电容噚甚来抵消掉倚䜙的正电荷。 +book_lore.memo_schrab_rd.page.0=研发 - $ $ 目前我们生产匂变金属的 䞻芁方法是䜿甚新型粒子加 速噚。然而䞎产出量盞比 胜源成本高埗惊人。 +book_lore.memo_schrab_rd.page.1=然而斜拉鲍尔博士发现了 䞀种党新的盞互䜜甚—— 暂称䞺“奇匂蜻子振荡”—— 该䜜甚可以星著降䜎生产 成本。通过䞀䞪目前未被完 党理解的的过皋提䟛的电子 被䞀种奇特的“魔力”蜬化 䞺极高胜量的光子。 +book_lore.memo_schrab_rd.page.2=这是讞倚已明确的粒子蜬换 定埋的极端䟋倖。䜆初步实 验证明这些莚子先蜬变䞺 䞊䞋倞克最终圢成了匂变 金属。 +book_lore.memo_schrab_rd.page.3=奇怪的是原型机䞭需芁钚䞎 少量匂变金属圢成的合金。 及倖原型机䞭也需芁䞀䞪 特殊的电容噚甚于消陀倚 䜙的正电荷。 + book_lore.memo_schrab_nuke.name=研究报告 -book_lore.memo_schrab_nuke.author=Schrabauer博士 -book_lore.memo_schrab_nuke.page.1=最近的调查䜿我们了解了栞爆炞对材料造成的圱响。倚亏倖界给我们的赠欟我们*意倖地*测试了铀盎接合成匂变金属的理论。 -book_lore.memo_schrab_nuke.page.2=而歀前我们只圚回旋加速噚䞭制䜜出匂变金属。䜆这次我们圚对Everwerpen的地䞋拍摄䞭圚该地点的铀矿石䞭发现了埮量的匂变金属。其附近所有的纯金属铀则郜发生了裂变。 -book_lore.memo_schrab_nuke.page.3=因歀劂果有足借倚的铀矿石集䞭圚栞匹呚囎甚至可胜只需芁䞀䞪富含裂变物莚废料的脏匹就有可胜制造出莚量倧到可以被盎接收集的匂变金属。 +book_lore.memo_schrab_nuke.author=斜拉鲍尔博士 +book_lore.memo_schrab_nuke.page.0=最近的研究将我们匕至了栞 爆对材料的圱响。倚亏了倖 界的拚欟我们“意倖地” 测试了我们的铀定向合成匂 变金属理论。 +book_lore.memo_schrab_nuke.page.1=而歀前我们只圚回旋加速噚 䞭制䜜出匂变金属。然而 我们圚埃北韊圭的地䞋实验 宀的铀矿石䞭发现了埮量的 匂变金属附近所有的纯 金属铀则郜发生了裂变。 +book_lore.memo_schrab_nuke.page.2=既然劂歀那么䜿甚浓猩到 䞎界莚量附近的铀矿石或 者是含有倧量可裂变栞废料 的脏匹郜有可胜圚理论䞊 创造足以人工收集的量的 匂变金属。 + +book_lore.bf_bomb_1.name=私人笔记 +book_lore.bf_bomb_1.author=M. 波特 +book_lore.bf_bomb_1.page.0=虜然过了埈久䜆我的工䜜 调劚申请终于批䞋来了。那 些刚升级的毕䞚生已经借隟 对付了曎别提䞊蟹那些人 ——他们䞀点䞓䞚玠莚 郜没有。 $ 换工䜜地点也䞍党是奜事—— 现圚这䞪实验宀拒绝提䟛进 䞀步的细节而䞔我已经被 及倖䞀䞪魔法般的新发现 搞埗借乱了。 +book_lore.bf_bomb_1.page.1=就是这样。那些孊生们各有 各的疑惑 (想想他们倚有 粟神就知道这有倚让人奇怪) 而我唯䞀的  同事 (竞争 对手) 只是圚做发小册 子的工䜜。这些事之闎的联 系绝对比我想的芁倍杂。他 的笔记埈打击人 +book_lore.bf_bomb_1.page.2=“又有䞀种奇匂物莚被偶然 发现这种物莚被指明是反 物莚和䞀种蟹猘同䜍玠的倍 合物。小册子䞊诎它叫‘旋玠’ ——鬌知道这名字什么意思 然后就没了。 +book_lore.bf_bomb_1.page.3=“怪䞍埗他们想扟䞪理论物 理孊家还䞍是因䞺他们连 这䞜西是什么郜䞍知道。䜆 及䞀方面基本䞊随䟿什么 工䜜郜比我的旧职䜍区 所以我也别抱怚这䞊面基本 什么郜没有了。” + +book_lore.bf_bomb_2.name=私人笔记 +book_lore.bf_bomb_2.author=M. 波特 +book_lore.bf_bomb_2.page.0=即䜿那本小册子䞊猺少倧量 信息我还是垌望他们知道 的比我曎倚䞀点。䜆是他们 也䞍知道别的了。其他幎长 䞀些的研究员郜对这种物莚 有䞀种盲目的信念他们的 呜题郜是完党合理的。 我压根无话可诎 +book_lore.bf_bomb_2.page.1=而䞔我甚至没法莣倇他们。 “旋玠”没䞪屁的合理性 这䞜西和我见过的其他物莚 完党䞍䞀样。它的倖衚什人 毛骚悚然它的颜色䞍停变 换着霓虹绿色的衚面䞊匥 挫着颜色略深的线条。 +book_lore.bf_bomb_2.page.2=曎糟的是这䞜西还是䞪胜量 源。我们样品的存圚本身 就是对“ALARA”规则的 违背圓样本到蟟实验宀时 我们郜撀犻了实验宀唯䞀 䞀䞪借勇敢的人 (叫“梅菲因博士”) 也只穿着A级防技服移劚了 样品20米。 +book_lore.bf_bomb_2.page.3=实验䞊的数据也没有奜倚少。 这䞜西蟐射的胜量非垞区 区到奜像热力孊第䞀定埋郜 芁被打砎䞀样圚这䞜西附 近的任䜕地方埅着——甚至隔 着䞀米厚的铅——郜十分恐怖。 我们做了光谱孊方面的掚断 就冲出了实验宀䜆什么新 发现郜没有。 +book_lore.bf_bomb_2.page.4=䜆圚这些事之后科研团队 里的那矀癜痎竟然䞀点郜没 有劚摇圚那么些“讚论” 的时候干坐着借隟受了 䞀䞪垊倎人还胡乱诎对这项 试验的犁什䌚被取消也就 是诎接䞋来几呚我们可以逃 脱这些烂摊子来奜奜造炞匹。 +book_lore.bf_bomb_2.page.5=他们心里到底觉埗谁䌚来干 这件事麻烊埗芁呜。最后 䞀䞪理智的助手 (叫安執鲁) 给这种物莚起了䞪倖号叫 “野火”——因䞺和这䞜西比 起来圚火葬堆䞊被掻掻烧 死的痛苊郜䞍算什么。 + +book_lore.bf_bomb_3.name=私人笔记 +book_lore.bf_bomb_3.author=M. 波特 +book_lore.bf_bomb_3.page.0=我和我的团队取埗了䞀些突 砎。谈䞀䞋我的“分犻” ——我把自己从那些曎“虔诚” 的人里面分犻出来之后圚 那工䜜变埗奜受倚了。虜然 我们仍然对野火的具䜓性莚 䞍甚了解 (因䞺研究䞀䞪 䌚毁了讟倇的䞜西非垞隟)  +book_lore.bf_bomb_3.page.1=䜆对野火䞎其他物莚盞互䜜 甚的研究取埗了䞰硕成果。 倌埗泚意的是野火䌚䞎其 他物莚圢成“气态”所有人 里面只有安執鲁提醒我 那其实是悬浮圚皀有气䜓䞭 的埮小野火粒子圢成的胶䜓 +book_lore.bf_bomb_3.page.2=每䞪野火粒子郜被垊正电的 “气䜓泡”包裹着这样这些 粒子就䞍䌚沉降。谁胜想到 这䞜西的臎呜䌜马蟐射䌚有 奜倄反正䞍是我。 +book_lore.bf_bomb_3.page.3=我尜量䞍去想他们是怎么把 样品蜬化成埮粒的䜆我并 䞍胜把这些气态野火的实甚 性䞀笔垊过——气态野火䜿埗 对野火的研究曎加安党了。 $ 诎到安党垊倎人 (冷酷无情事䞍关己地) 做了䞀项差点让他掉脑袋的 发现。 +book_lore.bf_bomb_3.page.4=他决定把自己“匄脏” 让䞀单元量的野火胶䜓和极 其昂莵的反物莚盎接反应。 产生的爆炞把它们所圚的桌 子化成了䞀块被倧量蟐照过 的废枣并圚桌面䞊刻出了 䞀䞪几乎完矎的半球 +book_lore.bf_bomb_3.page.5=还让领倎人的脑袋吞收了足 以匕起急性攟射绌合埁的蟐 射。我觉埗我们现圚知道了 怎么匕爆野火 䜆是某些人   + +book_lore.bf_bomb_4.name=私人笔记 +book_lore.bf_bomb_4.author=M. 波特 +book_lore.bf_bomb_4.page.0=我没办法逃脱我的旧工䜜。 现圚这种死气沉沉的劚荡 时代只有这䞪地方圚招人 了䜆我䞍䌚再回我那䞪坑 里了。 $ 他们只是圚诱惑我因䞺我 需芁出去需芁挣快钱。 还记埗我们䞀呚前退出的空 䞭试验协定吗 +book_lore.bf_bomb_4.page.1=那些掌管我们实验宀的烂人 终于做对了䞀次。谎莣䞎我 们将野火歊噚化需芁的䞀倧 批科孊家䞀同到来。这里猺 少的批刀性思绎真是什人莹 解——安執鲁甚至圚第䞀仜 该死的野火炞匹讟计匀始草 拟的那䞀刻突然䞍干了。 +book_lore.bf_bomb_4.page.2=那䞪梅菲因看䞊去打小算盘 打埗埈高兎隟道他搬野火 样品的时候脑子坏掉了 ——他还提出了䜿甚固化的野 火以及高压电池的傻逌讟计。 +book_lore.bf_bomb_4.page.3=埈星然这种圢匏的物莚蟓 出的胜量和激掻途埄或者别 的什么玩意和䌠统栞匹比 就像钚跟铀圚䌠统栞匹里面 比䞀样䜆最终的结果是初 始的震荡匕发了爆炞。 这倒是挺有意思。 +book_lore.bf_bomb_4.page.4=他们这些人郜把泚意力集䞭 圚了激掻䞊而完党応略了 具䜓机制——因䞺他们连点倎 绪郜摞䞍着现圚看来或讞 就是魔法然而那些人还圚 尝试参透敎䞪过皋——也只是 䞺了制造曎倚战争甚的歊噚 而已。 + +book_lore.bf_bomb_5.name=私人笔记 +book_lore.bf_bomb_5.author=M. 波特 +book_lore.bf_bomb_5.page.0=就算过了埈倚倩我   还是理解䞍了这些。敎䞪科 研团队对安党的蜻率䌌乎 让敎䞪事情成了必然结局。 $ $ 梅菲因·M.S.博士已经 犻匀了或讞已经犻匀这䞪 䞖界了。悲剧就圚我的県皮 底䞋就圚他们的试验仓里 发生了。 +book_lore.bf_bomb_5.page.1=那时候我们刚刚埗到及倖䞀 批野火纯品而䞔他已经修 奜了甚来测试他的提案的电 子讟倇和胜量源。我䞍知道 到底是什么富臎的 (匀机了吗还是匀始埗 倪早了) 䜆是悲剧貌䌌 已经痛苊地、猓慢地匀始了。 +book_lore.bf_bomb_5.page.2=野火的绿色光芒逐析吞噬了 桌子吞噬了电池吞噬了站 圚䞀米之倖的梅菲因博士 甚至桌子郜被降解成了地板 䞊䞀滩滚烫的金属䜆梅菲 因还没有燃烧。我䞍知道他 从自己的県里看到了什么   $ $ 或讞恐惧或者敬畏笌眩了 梅菲因最后的生存时闎 +book_lore.bf_bomb_5.page.3=䞍管我们的“奇迹”物莚是 什么它郜䞍圚乎。突然闎 䞀束炜热的闪光出现闪光 过后梅菲因就消倱了。他蒞 发了被烧化了还是湮灭 了见鬌去吧我没法知道 了 +book_lore.bf_bomb_5.page.4=领倎人让我感觉埈恶心。 “我们本来胜曎小心”“本来 胜䞀盎监控着”还有其他 管它是什么的提高士气的污 物从他嘎里呕出来。这家䌙 氞远郜䞍䌚明癜“玩火自焚” +book_lore.bf_bomb_5.page.5=我䞍嫌蟞职麻烊就立马卷 了铺盖向山里跑去。䜆后 果并没有那么䞥重考虑到 那蟹猺少电话而䞔看到从 我的 (前) 工䜜地点升起 的蘑菇云他们应该䞍是被 炞飞了就是䞊了最高等级 的军事法庭了。 +book_lore.bf_bomb_5.page.6=圚“死䜓解剖”和“掻䜓解剖” 之闎我们必须芁做出选择 有䞀䞪选项已经圚他们身䞊 明明癜癜地倱莥了。他们 想解剖倚少金属或者原子就 胜解剖倚少䜆是批刀现实、 解剖现实这件事只胜圚曎 倚的梅菲因身䞊走向终结。 谁知道呢 +book_lore.bf_bomb_5.page.7=到最后政府还是想把这堆 烂摊子拿来研发炞匹。或讞 我们还䌚看到曎倚的战争 看到曎倚的人被迫接受比死 亡曎惚的呜运。 他们䞍可胜氞远郜藏着掖着。 +book_lore.bf_bomb_5.page.8=我䞍圚乎了。再也䞍圚乎了。 老倩爷啊让我回到真正的 科孊之䞭吧 $ $ 该死Mae扟扟䜠自己   + +book_lore.beacon.name=信号信标诎明乊 +book_lore.beacon.author=Flim Flam工䞚 +book_lore.beacon.page.0=感谢悚莭买Mk.2照明信号信标 (版本1.3) 这本小册子将简芁介绍信标 的操䜜及其内郚工䜜原理。 +book_lore.beacon.page.1=第1章构成 $ 每䞪单元由四䞪䞻芁郚分 组成控制电路、灯笌、雟号 和容纳其他郚分的倖壳。 有关䞻电路的诊细诎明请 参考倖壳绎技盖内郚的 电路囟。 +book_lore.beacon.page.2=灯笌由聚碳酞酯倖壳组成 倖壳内有䞀䞪标准200mm 的双色250瓊區玠灯泡 替换甚灯泡可以从我们的 商店订莭。 +book_lore.beacon.page.3=䞍建议䜿甚第䞉方灯泡因䞺 我们无法确保安党操䜜。倖壳 由䞓闚的镀锌䞍锈钢制成 具有耐甚性。 +book_lore.beacon.page.4=第2章灯笌 $ 灯笌的䞻芁甚途是圚恶劣的 倩气条件䞋提䟛照明以䟿 绎技同时指瀺信标的状态。 劂果匀机自检 (POST) 倱莥灯将 +book_lore.beacon.page.5=亮起红色吊则就䌚亮起 绿色。请泚意颜色可胜因 替换甚灯泡的䞍同而有所 䞍同。 +book_lore.beacon.page.6=第3章雟号 $ 雟号是信标的䞻芁通信讟倇。 该信标被讟计甚于点对点 (P2P) 通信以及 消息广播。 +book_lore.beacon.page.7=第4章P2P通信 $ 有关通信的诊细信息请参阅 通信手册。建立P2P连接的 简芁介绍劂䞋銖先信标 必须给出“匀始连接”信号 +book_lore.beacon.page.8=该信号是单䞀的长音。所有 可甚的对等端也应䜿甚䞀䞪 长音进行响应 (由接近床指定的顺序以及 手册“响应连接”䞀节䞭 抂述的通信指南) +book_lore.beacon.page.9=䞀旊所需对等端做出响应 则给出“接受连接”信号 即䞀䞪长音然后对等端也 将甚䞀䞪长音调进行响应。 之后的所有通信郜必须䜿甚 预先协商的信号来进行 +book_lore.beacon.page.10=最垞甚的是FAR-5M标准。 劂果没有协商标准通信将 立即结束起到“ping” 的䜜甚。劂果通信继续 可以䜿甚及䞀䞪长单音 “结束连接”来结束连接。 +book_lore.beacon.page.11=第5章保修 $ [页面故意留空] + cannery.f1=[按F1键获取垮助] + cannery.centrifuge=气䜓犻心机 cannery.centrifuge.0=气䜓犻心机可以䜿甚通甚流䜓管道䌠蟓流䜓。 cannery.centrifuge.1=倧倚数配方需芁倚台犻心机。䞭闎产品䞍胜通过管道运蟓。 @@ -372,6 +469,7 @@ cannery.centrifuge.2=该䟧甚䜜将䞭闎产品蟓出到盞邻犻心机的连 cannery.centrifuge.3=六氟化铀只需䞀台犻心机即可加工䜆这将只产出铀燃料和铀-238。 cannery.centrifuge.4=将其完党加工成铀-235和铀-238总共需芁四台犻心机。 cannery.centrifuge.5=䞀些配方还需芁犻心机超频升级。 + cannery.crucible=坩埚 cannery.crucible.0=坩埚甚于熔炌矿石、铞锭或其他金属物品以进行合金化并将其铞造成䞍同圢状。 cannery.crucible.1=它需芁䞀䞪倖郚热源连接到底郚䟋劂燃烧宀。 @@ -385,22 +483,26 @@ cannery.crucible.8=这些材料将慢慢结合成蟓出材料从红色出口 cannery.crucible.9=请泚意只有这䞪猓冲区倄理配方。劂果曎换暡板副产品猓冲区䞭的材料䞍䌚结合也䞍䌚蜬移到配方猓冲区。 cannery.crucible.10=劂果目标有效䟋劂铞造通道或暡具出口将自劚蟓出材料。 cannery.crucible.11=䞎所有铞造块䞀样可以䜿甚铲子从坩埚䞭移陀所有材料。 + cannery.fensu=FEnSU cannery.fensu.0=FEnSU胜借存傚超过9EHE即9后18䞪零的荒谬胜量。 cannery.fensu.1=只有圚其底郚有䞀䞪电线接口。 cannery.fensu.2=这也是FEnSU唯䞀可以接收红石信号的地方。 + cannery.firebox=燃烧宀 cannery.firebox.0=燃烧宀通过燃烧可燃物品产生热量。 cannery.firebox.1=它可以燃烧任䜕可燃物品䜆曎高莚量的燃料劂煀、焊炭和固䜓燃料燃烧时闎曎长枩床曎高。 cannery.firebox.2=燃烧宀顶郚的铜觊点可以䌠富热量。底郚具有盞同觊点的机噚可以通过攟眮圚燃烧宀顶郚来接收热量。 cannery.firebox.3=劂果热量没有甚完䞔热量猓冲噚变满燃烧宀将暂停运行以防止燃料浪莹。 -cannery.firebox.4=䞀种这样的机噚是斯特林发劚机它将热量盎接蜬化䞺胜量。 +cannery.firebox.4=䞀种这样的机噚是斯特林发电机它将热量盎接蜬化䞺胜量。 + cannery.foundryChannel=链造通道 cannery.foundryChannel.0=铞造通道甚于将熔融材料从坩埚或傚眐蟓送到暡具䞭。 cannery.foundryChannel.1=通道可以通过从顶郚通过出口或盎接连接坩埚或从其他通道的䟧面借倒来接收材料。 cannery.foundryChannel.2=运蟓材料时枠道将䌘先考虑出口和浅铞造池等方块。 cannery.foundryChannel.3=圓无法䟛应出口或暡具时材料将流入盞邻通道。 cannery.foundryChannel.4=剩䜙材料可以甚铲子枅陀。 + cannery.silex=FEL & SILEX cannery.silex.0=自由电子激光噚FEL利甚胜量和激光晶䜓产生区倧的激光束。 cannery.silex.1=小心因䞺激光䌚烧毁或熔化蟃脆匱的方块  @@ -411,22 +513,59 @@ cannery.silex.5=䟧面的匀口可以䜿流䜓管道连接至SILEX䞊。 cannery.silex.6=陀了䟧面的䞀䞪连接口之倖底郚还有第䞉䞪隐藏连接口可以从䞭抜取产品。 cannery.silex.7=每䞪配方郜需芁特定的激光类型。䜿甚比所需类型曎区的激光将曎快地倄理项目。 cannery.silex.8=䞀台FEL最倚可以䞺5台SILEX䟛胜。每䞪SILEX之闎必须闎隔䞀䞪方块。 + cannery.stirling=斯特林发电机 -cannery.stirling.0=斯特林发劚机䜿甚来自倖郚的热胜来产生胜量。 +cannery.stirling.0=斯特林发电机䜿甚来自倖郚的热胜来产生胜量。 cannery.stirling.1=它需芁攟眮圚发热机噚的顶郚劂燃烧宀。 cannery.stirling.2=然而它可以利甚的热量有限过旋蜬可胜富臎灟隟性故障。 cannery.stirling.3=升级版可以圚䞍损坏的情况䞋承受曎倚热量。 + cannery.willow=芥子柳 cannery.willow.0=芥子柳是䞀种可以富集镉金属的怍物。 -cannery.willow.1=芥子柳可以种怍圚泥土、草地䞊甚至是死亡草地或油泥䞊䜆它们需芁氎才胜生长。 +cannery.willow.1=芥子柳可以种怍圚泥土、草地䞊甚至是泥枣或油泥䞊䜆它们需芁氎才胜生长。 cannery.willow.2=芥子柳可以甚骚粉或工䞚肥料催熟。它们䞍需芁光就可以生长。 cannery.willow.3=圚第二阶段的生长之后它们将需芁圚䞊方有至少䞀䞪方块的空闎才胜进䞀步生长。 -cannery.willow.4=圚生长的第四阶段之后它们需芁䞋面有死亡草地的或油泥。 -cannery.willow.5=这可以通过圚死亡草地或油泥䞊手劚种怍芥子柳来实现也可以通过圚附近讟眮䞀䞪䞍断污染地面的氎力压裂塔来实现。 -cannery.willow.6=到蟟最后阶段后芥子柳将枅陀地面䞊的污染物䜿死亡草地或油泥恢倍䞺正垞的泥土。 +cannery.willow.4=圚生长的第四阶段之后它们需芁䞋面有泥枣或油泥。 +cannery.willow.5=这可以通过圚泥枣或油泥䞊手劚种怍芥子柳来实现也可以通过圚附近讟眮䞀䞪䞍断污染地面的氎力压裂塔来实现。 +cannery.willow.6=到蟟最后阶段后芥子柳将枅陀地面䞊的污染物䜿泥枣或油泥恢倍䞺正垞的泥土。 cannery.willow.7=现圚芥子柳的叶子可以收割了。打砎顶郚的块状物䌚掉萜䞀株3-6片叶子的小芥子柳并保持怍物底郚的完敎。 -cannery.willow.8=埈快这种怍物就䌚重新匀始生长劂果泥土被油泥取代就䌚长出曎倚的叶子。叶子可以甚酞化骑加工成镉粉。 +cannery.willow.8=埈快这种怍物就䌚重新匀始生长劂果泥土被油泥取代就䌚长出曎倚的叶子。叶子可以甚酞化机加工成镉粉。 cannery.willow.9=䜿甚自劚锯可以自劚收割柳叶它只䌚打碎准倇收割的怍物。 + +cannery.hadron=粒子加速噚 +cannery.hadron.0=粒子加速噚包含3䞪䞻芁郚分: 栞心粒子分析宀以及䞀系列的超富线圈。 +cannery.hadron.1=画面䞊的方块䞺粒子加速噚栞心组件䌚以盞对论的速床沿线圈向粒子分析宀发射粒子。 +cannery.hadron.2=粒子䌚从歀面发射 +cannery.hadron.3=圚环圢加速噚䞭䌚回到歀面。 +cannery.hadron.4=每䞪线圈区段由8䞪臎密线圈构成䞭闎留空或攟眮粒子加速噚栞心。 +cannery.hadron.5=线圈区段本身也必须被粒子加速噚镀层包裹。 +cannery.hadron.6=加速噚䞭还需芁添加䞀䞪或倚䞪粒子加速噚接入终端以䞎栞心组件亀互。 +cannery.hadron.7=栞心组件也需芁电力运行因歀需芁圚蟹猘添加电源接口。 +cannery.hadron.8=粒子加速噚需芁足借的电源接口来䟛给至少10kHE每单䜍线圈区床的胜量。 +cannery.hadron.9=泚意环绕栞心组件的线圈区段䞍参䞎线圈区床计算 +cannery.hadron.10=而䞔完党的盎线粒子加速噚䞍需芁歀区段。 +cannery.hadron.11=环圢加速噚䞭需芁劂䞋的蜬角结构来改变粒子的方向 +cannery.hadron.12=倖䟧蜬角的线圈可以被完党去陀。 +cannery.hadron.13=粒子加速噚的最终郚分是粒子分析宀这是䞀䞪由分析宀方块包囎的3x3x3空闎。 +cannery.hadron.14=搭建完成的粒子加速噚的倖观应该类䌌䞋面这样 + +cannery.hadron.math.0=臎密钕线圈区床50 +cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE +cannery.hadron.math.2=臎密星蟉线圈区床1,000 +cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE + +cannery.schottky=肖基特二极管 +cannery.schottky.0=画面䞊的方块䞺肖基特二极管。歀方块可甚于曎倍杂的粒子加速噚讟计也可甚于节省电胜。 +cannery.schottky.1=默讀状态䞋二极管䌚阻挡所有粒子需芁䜿甚螺䞝刀进行配眮。 +cannery.schottky.2=歀面䌚接受进入的粒子 +cannery.schottky.3=而歀面䌚将进入的粒子发射出去。 +cannery.schottky.4=现圚囟䞭的二极管含有䞀䞪出口䌚衚现出“量子”行䞺圚每䞪出口创造䞀䞪“虚拟粒子”。 +cannery.schottky.5=䞀旊所有的“虚拟粒子”郜蟟到了分析宀粒子加速噚就䌚选择劚量需求最䜎的配方执行。 +cannery.schottky.6=被选䞭的粒子䌚经历“波凜数坍猩”变成真实的粒子并䞔加速噚只䌚消耗“坍猩”的虚拟粒子需求的胜量。 +cannery.schottky.7=劂果某䞀䞪虚拟粒子进入了结构䞍正确的区段所有的虚拟粒子郜䌚被销毁而䞔坍猩的将是出错的粒子而非其他到蟟分析宀的粒子。 +cannery.schottky.8=泚意同䞀䞪虚拟粒子只䌚经过同䞀䞪二极管的同䞀出口䞀次。虚拟粒子䞍䌚进入死埪环䜆仍然可以进入及䞀䞪二极管。 +cannery.schottky.9=肖基特二极管呚囎应具有合适的结构䜿埗粒子圚每䞪亀叉点倄郜有路可走。 + chem.ARSENIC=砷提取 chem.ASPHALT=沥青生产 chem.BAKELITE=电朚生产 @@ -434,6 +573,8 @@ chem.BALEFIRE=野火火箭燃料混合 chem.BP_BIOFUEL=生物燃料酯化 chem.BP_BIOGAS=沌气生产 chem.C4=C-4合成 +chem.CC_CENTRIFUGE=氯方解石分犻 +chem.CC_ELECTROLYSIS=氯化钙电解 chem.CC_HEATING=高级煀液化 chem.CC_HEAVY=初级煀液化 chem.CC_I=区化煀液化 @@ -478,18 +619,23 @@ chem.GASOLINE_LEADED=含铅汜油混合 chem.HEAVY_ELECTROLYSIS=䜎枩电解重氎 chem.HELIUM3=䜿甚月球草皮提取氊-3 chem.KEVLAR=凯倫拉生产 +chem.LAMINATE=区化倹层玻璃生产 chem.LPG=石油倩然气液化 chem.LUBRICANT=涊滑剂混合 +chem.MEAT_PROCESSING=匂虫肉矿物提取 chem.METH=甲基苯䞙胺合成 chem.NITAN=NITAN牌超级燃料混合 chem.NITRIC_ACID=硝酞生产 chem.OIL_SAND=沥青砂提取 chem.OSMIRIDIUM_DEATH=锇酞溶液生产 +chem.PC=聚碳酞酯合成 +chem.PC_ELECTROLYSIS=氯化钟电解 chem.PEROXIDE=过氧化氢生产 chem.PET=PET合成 chem.PETROIL_LEADED=含铅石油混合 chem.POLYMER=聚合物合成 chem.PUF6=六氟化钚生产 +chem.PVC=聚氯乙烯合成 chem.RUBBER=橡胶生产 chem.SAS3=䞉硫化Sa生产 chem.SATURN=土星锭生产 @@ -510,6 +656,9 @@ chem.SF_PETROIL=石油固化 chem.SF_PETROLEUM=石油气固化 chem.SF_RECLAIMED=再生油固化 chem.SF_SMEAR=工䞚油固化 +chem.SHELL_CHLORINE=16英寞氯气炮匹生产 +chem.SHELL_MUSTARD=16英寞芥子气炮匹生产 +chem.SHELL_PHOSGENE=16英寞光气炮匹生产 chem.SOLID_FUEL=固䜓火箭燃料生产 chem.SOLVENT=有机溶剂混合 chem.STEAM=烧氎 @@ -517,6 +666,7 @@ chem.SULFURIC_ACID=硫酞生产 chem.TATB=TATB合成 chem.TEL=四乙基铅混合 chem.TEST=测试 +chem.THORIUM_SALT=钍盐富集 chem.TNT=TNT合成 chem.UF6=六氟化铀生产 chem.VIT_GAS=气态栞废料玻璃化 @@ -524,12 +674,20 @@ chem.VIT_LIQUID=液态栞废料玻璃化 chem.XENON=林執埪环制氙 chem.XENON_OXY=增区林執埪环制氙 chem.YELLOWCAKE=黄饌生产 + +commands.satellite.no_satellite=未扟到䜿甚歀频率的卫星 +commands.satellite.not_a_satellite=持有的物品䞍是卫星 +commands.satellite.satellite_descended=卫星成功降萜。 +commands.satellite.satellite_orbited=卫星发射。 +commands.satellite.should_be_run_as_player=歀呜什应该由玩家运行 + container.amsBase=AMS基座(装饰) container.amsEmitter=AMS发射极(装饰) container.amsLimiter=AMS皳胜噚(装饰) -container.anvil=ç § +container.anvil=%s级砧 container.arcFurnace=电匧炉 container.armorTable=装甲改装台 +container.ashpit=傚灰槜 container.assembler=装配机 container.autocrafter=自劚工䜜台 container.barrel=æ¡¶ @@ -549,6 +707,7 @@ container.craneUnboxer=蟓送垊解包机 container.crateDesh=Deshç®± container.crateIron=铁箱 container.crateSteel=钢箱 +container.crateTemplate=暡板箱 container.crateTungsten=é’šç®± container.crystallizer=矿物酞化噚 container.cyclotron=回旋加速噚 @@ -559,14 +718,20 @@ container.dfcReceiver=DFC接收噚 container.dfcStabilizer=DFC皳定噚 container.diFurnace=高炉 container.diFurnaceRTG=栞高炉 +container.droneCrate=运蟓无人机坞 +container.droneDock=物流无人机坞 +container.droneProvider=䟛应箱 +container.droneRequester=请求箱 container.electricFurnace=电炉 container.epress=电劚锻压机 +container.exposureChamber=曝光宀 container.factoryAdvanced=高级工厂 container.factoryTitanium=工厂 container.fluidtank=傚眐 container.fileCabinet=文件柜 container.forceField=力场发生噚 container.frackingTower=氎力压裂塔 +container.furnaceBrick=砖砌炉 container.furnaceCombination=倍匏炌焊炉 container.furnaceIron=铁炉 container.furnaceSteel=钢炉 @@ -580,31 +745,44 @@ container.heaterFirebox=燃烧宀 container.heaterHeatex=热亀换噚 container.heaterOilburner=流䜓燃烧噚 container.heaterOven=加热炉 +container.hydrotreater=加氢装眮 container.iGenerator=工䞚发电机 container.keyForge=锁匠桌 container.launchPad=富匹发射台 +container.launchPadRusted=富匹发射台 container.launchTable=倧型发射台 container.leadBox=安党盒 +container.machineArcWelder=电匧焊机 +container.machineArcFurnaceLarge=电匧炉 container.machineBoiler=锅炉 container.machineCMB=CMB炌钢炉 container.machineCoal=火力发电机 container.machineCoker=焊化装眮 +container.machineCompressor=压猩机 container.machineCrucible=坩埚 container.machineDiesel=柎油发电机 container.machineElectricBoiler=电锅炉 -container.machineFEL=FEL自由电子激光噚 +container.machineElectrolyser=电解机 +container.machineFEL=FEL +container.machineFunnel=组合挏斗 +container.machineICF=ICF反应堆 +container.machineICFPress=ICF燃料靶䞞制造噚 container.machineITER=聚变反应堆 container.machineLargeTurbine=工䞚汜蜮机 container.machineLiquefactor=液化机 container.machineMixer=工䞚搅拌机 +container.machineOreSlopper=B.O.P. container.machineRefinery=炌油厂 container.machineSelenium=星型发劚机 container.machineShredder=粉碎机 -container.machineSILEX=SILEX激光同䜍玠分犻宀 +container.machineSILEX=激光同䜍玠分犻宀 +container.machineSolderingStation=焊接台 container.machineSolidifier=固化机 +container.machineStrandCaster=连续铞造机 container.machineTurbine=汜蜮机 container.machineTurbofan=涡扇发劚机 container.machine_schrabidium_transmutator=Sa326嬗变装眮 +container.machineWoodBurner=火力发电机 container.massStorage=存傚 container.microwave=埮波炉 container.miningDrill=自劚采矿钻机 @@ -617,7 +795,7 @@ container.nukeFstbmb=野火炞匹 container.nukeFurnace=栞熔炉 container.nukeGadget=小玩意 container.nukeMan=胖子 -container.nukeMike=垞青藀迈克 +container.nukeMike=垞春藀迈克 container.nukeN2=N2炞匹 container.nukeN45=N45æ°Žé›· container.nukePrototype=原型 @@ -649,8 +827,10 @@ container.reactorResearch=研究型反应堆 container.reix=Rei-X䞻机 container.rtg=攟射性同䜍玠发电机 container.rtgFurnace=攟射性同䜍玠热力炉[RTG] -container.rttyReceiver=无线红石接收噚 -container.rttySender=无线红石发射噚 +container.rttyCounter=无线红石物品计数噚 +container.rttyLogic=无线红石逻蟑接收噚 +container.rttyReceiver=无线红石信号接收噚 +container.rttySender=无线红石信号发射噚 container.safe=保险箱 container.satDock=卞莧平台 container.satLinker=卫星ID管理 @@ -678,19 +858,38 @@ container.vacuumDistill=真空炌油厂 container.wasteDrum=乏燃料池 container.watzPowerplant=Watz发电厂 container.zirnox=锆诺克斯栞反应堆 +container.machineAmmoPress=压匹机 +container.machineRotaryFurnace=回蜬炉 +container.machinePyroOven=热解炉 + crucible.aa=高级合金生产 +crucible.abronze=砷青铜生产 +crucible.bbronze=铋青铜生产 +crucible.bscco=BSCCO生产 crucible.cdalloy=镉钢生产 crucible.cmb=CMB钢生产 crucible.ferro=铀铁合金生产 crucible.hematite=赀铁矿炌铁 crucible.hss=高速钢生产 crucible.malachite=孔雀石炌铜 +crucible.magtung=磁化钚生产 crucible.redcopper=玫铜生产 crucible.steel=钢铁生产 crucible.steelMeteoric=陚铁炌钢 crucible.steelPig=生铁炌钢 crucible.steelWrought=锻铁炌钢 crucible.tcalloy=锝钢合金生产 + +damage.inset=成套装倇时的获埗的䌀害减免 +damage.item=装倇时获埗的䌀害减免: +damage.category.EXPL=爆炾 +damage.category.FIRE=火焰 +damage.category.PROJ=投射物 +damage.exact.fall=摔萜 +damage.exact.LASER=激光 +damage.exact.onFire=Afterburn +damage.other=其他 + death.attack.acid=%1$s 掉进了酞里 death.attack.acidPlayer=%1$s 被 %2$s 溶解 death.attack.ams=%1$s 沐济圚尚未被人类科孊呜名的臎呜粒子䞭 @@ -698,6 +897,7 @@ death.attack.amsCore=%1$s 圚奇点之火䞭蒞发 death.attack.asbestos=%1$s现圚有权获埗经济补偿 death.attack.bang=%1$s 被炞成小块碎片 death.attack.blackhole=%1$s 粉身碎骚 +death.attack.blacklung=%1$s 死于尘肺病 death.attack.blender=%1$s 被切成小块 death.attack.boat=%1$s 被船撞了 death.attack.boil=%1$s被%2$s掻掻煮沞 @@ -747,6 +947,23 @@ death.attack.taint=%1$s 死于恶性肿瘀 death.attack.tau=%1$s 被 %2$s 甚垊莟电荷的陶子射穿 death.attack.tauBlast=%1$s 对XVL1456充胜时闎过长被炞成碎片 death.attack.teleporter=%1$s 被䌠送到虚空 +death.sedna.electric=%1$s 被电成焊炭了 +death.sedna.electric.attacker=%1$s 被 %2$s 电成焊炭了 +death.sedna.explosive=%1$s 被炞飞了 +death.sedna.explosive.attacker=%1$s 被 %2$s 炞飞了 +death.sedna.fire=%1$s 被送到人生终点站了 +death.sedna.fire.attacker=%1$s 被 %2$s 送到人生终点站了 +death.sedna.laser=%1$s 被激光烧成了灰烬 +death.sedna.laser.attacker=%1$s 被 %2$s 甚激光烧成了灰烬 +death.sedna.microwave=%1$s 变成了鞡蛋圚埮波炉里面的样子 +death.sedna.microwave.attacker=%1$s 被 %2$s 变成了鞡蛋圚埮波炉里面的样子 +death.sedna.subatomic=%1$s 被分解成基本埮粒 +death.sedna.subatomic.attacker=%1$s 被 %2$s 分解成基本埮粒 +death.sedna.other=%1$s 被杀死了 +death.sedna.other.attacker=%1$s 被 %2$s 杀死了 +death.sedna.physical=%1$s被射杀了 +death.sedna.physical.attacker=%1$s 被 %2$s 射杀了 + desc.gui.assembler.warning=§c错误§r歀机噚需芁装配机暡板 desc.gui.chemplant.warning=§c错误§r歀机噚需芁化工厂暡板 desc.gui.gasCent.enrichment=§2浓猩§r$浓猩铀需芁䞲联$䞀䞪犻心机䞲联将犻心出$铀燃料四䞪犻心机䞲联$将完党分犻出铀235。 @@ -756,8 +973,18 @@ desc.gui.nukeGadget.desc=§1需芁:§r$ * 4䞪 初代$ 炞药透镜阵列$ * desc.gui.nukeMan.desc=§1需芁:§r$ * 4䞪 初代$ 炞药透镜阵列$ * 钚栞心$ * 点火噚 desc.gui.nukeMike.desc=§1需芁:§r$ * 4䞪 炞药透镜阵列$ * 钚栞心$ * 氘冷华装眮$ * 铀涂层氘眐 * 氘眐 desc.gui.nukeTsar.desc=§1需芁:§r$ * 4䞪 炞药透镜阵列$ * 钚栞心$§9可选:§r$ * 沙皇炞匹栞心 -desc.gui.radiolysis.desc=§9诎明§r$该RTG比其他RTG曎高效并䞔$配倇了䞀䞪甚于$裂解和灭菌的蟐解宀。 -desc.gui.rtgBFurnace.desc=倄理$金-198需芁至少15热量。歀倖热量越倚运行速床越快$金-198可胜䌚衰变䞺氎银 +desc.gui.rttyLogic.cond0=信号§6小于§r垞量 +desc.gui.rttyLogic.cond1=信号§6小于等于§r垞量 +desc.gui.rttyLogic.cond2=信号§6倧于等于§r垞量 +desc.gui.rttyLogic.cond3=信号§6倧于§r垞量 +desc.gui.rttyLogic.cond4=信号§6等于§r垞量 +desc.gui.rttyLogic.cond5=信号§6䞍等于§r垞量 +desc.gui.rttyLogic.cond6=信号䞎字笊䞲§6匹配§r +desc.gui.rttyLogic.cond7=信号䞎字笊䞲§6䞍匹配§r +desc.gui.rttyLogic.cond8=信号§6包含§r字笊䞲 +desc.gui.rttyLogic.cond9=信号§6䞍包含§r字笊䞲 +desc.gui.radiolysis.desc=§9诎明§r$该RTG比其他RTG曎高效$并䞔配倇了䞀䞪甚于$裂解和灭菌的蟐解宀。 +desc.gui.rtgBFurnace.desc=倄理裂解配方至少需芁15热量$热量越高运行速床越快$超过最高倄理速床的热量䞍起䜜甚$短寿呜靶䞞可胜䌚衰变 desc.gui.rtg.heat=§e圓前热等级%s desc.gui.rtg.pellets=接受的靶䞞 desc.gui.rtg.pelletHeat=%s (%s 热量) @@ -776,6 +1003,7 @@ desc.gui.zirnox.coolant=§3冷华剂§r$CO2将热量从堆芯蜬移到氎䞭$这 desc.gui.zirnox.pressure=§6压力§r$排攟二氧化碳可以降䜎压力$然而压力过䜎冷华效率和蒞汜产量将降䜎$小心熔毁 desc.gui.zirnox.warning1=§c错误§r反应堆正垞运行需芁氎 desc.gui.zirnox.warning2=§c错误§r二氧化碳是反应堆正垞运行所必需的 + desc.item.ammo.con_accuracy2=- 粟床倧幅降䜎 desc.item.ammo.con_damage=- 䌀害倧幅降䜎 desc.item.ammo.con_heavy_wear=- 倧幅增加磚损 @@ -806,6 +1034,7 @@ desc.item.ammo.neu_fun=* 党家其乐无穷 desc.item.ammo.neu_heavy_metal=* 重金属 desc.item.ammo.neu_homing=* 远螪 desc.item.ammo.neu_jolt=* 震荡 +desc.item.ammo.neu_leadburster=* 附着圚衚面并喷射子匹 desc.item.ammo.neu_less_bouncy=* 匹性曎小 desc.item.ammo.neu_maskman_flechette=* 曳光匹同时匕发䞀场莫铀飞镖匹风暎 desc.item.ammo.neu_maskman_meteorite=* 高䌀害同时召唀小陚石 @@ -814,7 +1043,7 @@ desc.item.ammo.neu_no_bounce=* 没有匹性 desc.item.ammo.neu_no_con=* 没有猺点 desc.item.ammo.neu_starmetal=* 星蟉金属 desc.item.ammo.neu_tracer=* 瀺螪剂 -desc.item.ammo.neu_uhh=* Uhhh +desc.item.ammo.neu_uhh=*呃..... desc.item.ammo.neu_warcrime1=* 从技术䞊来讲觊犯了战争眪 desc.item.ammo.neu_warcrime2=* 䞀发觊犯䞀条战争眪 desc.item.ammo.pro_accurate1=+ 提升粟床 @@ -826,7 +1055,7 @@ desc.item.ammo.pro_chainsaw=+ 电锯 desc.item.ammo.pro_chlorine=+ 氯气 desc.item.ammo.pro_damage=+ 提升䌀害 desc.item.ammo.pro_damage_slight=+ 高于平均䌀害 -desc.item.ammo.pro_emp=+ EMP +desc.item.ammo.pro_emp=+ 电磁脉冲 desc.item.ammo.pro_explosive=+ 爆炾 desc.item.ammo.pro_fallout=+ 蟐射尘 desc.item.ammo.pro_fit_357=+ 适甚于所有.357枪械 @@ -883,7 +1112,11 @@ desc.item.kitArmor=装甲将被新的装倇取代。 desc.item.kitHaz=装甲将被防技服取代。 desc.item.kitPack=真䟿宜 desc.item.kitPool=请圚打匀前枅空背包库存 -desc.item.pileRod=§e䜿甚钻孔石墚插入$§E䜿甚螺䞝刀拔出$ +desc.item.pileRod=§e䜿甚钻孔石墚插入$§E䜿甚螺䞝刀拔出$ +desc.item.pipette.corrosive=可倄理腐蚀性液䜓。 +desc.item.pipette.laboratory=现圚粟床提高了50倍 +desc.item.pipette.noCorrosive=§e无法倄理腐蚀性液䜓。 +desc.item.pipette.noEmpty=§e移液管未排空 desc.item.rtgDecay=衰变䞺%s desc.item.rtgHeat=功率级别%s desc.item.storage.capacity=容量 %s%%s @@ -904,14 +1137,26 @@ desc.misc.posSet=䜍眮已讟眮 desc.item.wasteCooling=圚乏燃料池䞭冷华 desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e攟圚燃料棒旁蟹增殖$§e持续 %d 刻 desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻 + digamma.playerDigamma=玩家F-迪䌜马蟐照氎平: digamma.playerHealth=玩家所受F-迪䌜马蟐照圱响: digamma.playerRes=玩家F-迪䌜马防技氎平: digamma.title=玩家F-迪䌜马蟐射自检噚 + entity.entity_cyber_crab.name=赛博螃蟹 entity.entity_elder_one.name=䞊叀鞭神 entity.entity_fucc_a_ducc.name=鞭子 +entity.entity_glyphid.name=匂虫 +entity.entity_glyphid_behemoth.name=巚兜匂虫 +entity.entity_glyphid_blaster.name=爆砎匂虫 +entity.entity_glyphid_bombardier.name=投匹手匂虫 +entity.entity_glyphid_brawler.name=狂战士匂虫 +entity.entity_glyphid_brenda.name=垃䌊蟟 +entity.entity_glyphid_digger.name=掘地匂虫 +entity.entity_glyphid_nuclear.name=倧䞪子区森 +entity.entity_glyphid_scout.name=䟊察匂虫 entity.entity_ntm_fbi.name=FBI探员 +entity.entity_ntm_fbi_drone.name=FBI无人机 entity.entity_ntm_radiation_blaze.name=栞融元玠 entity.hbm.entity_ntm_ufo.name=火星入䟵者飞船 entity.entity_mob_hunter_chopper.name=猎人盎升机 @@ -921,6 +1166,9 @@ entity.entity_mob_nuclear_creeper.name=栞爆爬行者 entity.entity_mob_phosgene_creeper.name=光气爬行者 entity.entity_mob_tainted_creeper.name=污染爬行者 entity.entity_mob_volatile_creeper.name=䞍皳定爬行者 +entity.entity_parasite_maggot.name=寄生虫 +entity.entity_pigeon.name=鞜子 +entity.entity_plastic_bag.name=塑料袋 entity.entity_taint_crab.name=污染螃蟹 entity.entity_tesla_crab.name=磁暎螃蟹 entity.hbm.entity_balls_o_tron.name=机械蠕虫 @@ -928,24 +1176,36 @@ entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 entity.hbm.entity_bullet.name=子匹 entity.hbm.entity_rocket.name=火箭匹 entity.hbm.entity_schrabnel.name=Schrabnel + +excavator.crusher=粉碎匀关 +excavator.drill=挖掘匀关 +excavator.silktouch=粟准采集匀关 +excavator.veinminer=连锁挖矿匀关 +excavator.walling=填充匀关 + flare.ignition=点火装眮 flare.valve=流量阀 + fluid.acid_fluid=酾 fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 +fluid.rad_lava_fluid=攟射性火山熔岩 fluid.schrabidic_fluid=Sa酾 fluid.toxic_fluid=绿色蜯泥 fluid.volcanic_lava_fluid=火山熔岩 + foundry.filter=筛选噚%s foundry.inverted=红石信号反蜬 foundry.invertFilter=过滀噚反蜬 foundry.noCast=未安装暡具 + geiger.chunkRad=圓前区块蟐射: geiger.envRad=环境总蟐射量: geiger.playerRad=玩家蟐射: geiger.playerRes=蟐射抗性: geiger.title=盖革计数噚 geiger.title.dosimeter=剂量计 + gun.make.ARMALITE=阿玛莱特公叞 gun.make.AUTO_ORDINANCE=矎囜自劚歊噚公叞 gun.make.BAE=英囜宇航系统公叞 @@ -955,6 +1215,7 @@ gun.make.CERIX=赛里克斯·马栌努斯锻造䞖界 gun.make.COLT=柯尔特制造公叞 gun.make.COMBINE=䞖界工䌚 gun.make.CUBE=Cube 2: Sauerbraten +gun.make.DRG=深岩银河 gun.make.ENZINGER=Enzinger工䌚 gun.make.EQUESTRIA=小马囜富匹系统 gun.make.FLIMFLAM=FlimFlam“欺骗”工䞚 @@ -973,7 +1234,8 @@ gun.make.MANN=Open Mann公叞 gun.make.MAXIM=海勒姆·马克沁 gun.make.METRO=地铁枪手 gun.make.MWT=MWT原型实验宀 -gun.make.NAZI=埃尔犏特机械制造厂 +gun.make.NAWS=Kayarm Industries +gun.make.ERFURT=埃尔犏特机械制造厂 gun.make.NONE=- gun.make.RAYTHEON=富匹系统公叞 gun.make.REMINGTON=雷明登歊噚公叞 @@ -989,6 +1251,7 @@ gun.make.WESTTEK=WestTek研究讟斜 gun.make.WGW=嚁廉·叀斯特掛倫·绎尔克 gun.make.WINCHESTER=枩圻斯特速射歊噚公叞 gun.make.WINCHESTER_BIGMT=枩圻斯特速射歊噚公叞/倧型MT + gun.name.ar15_50=AR-15 .50BMG型 gun.name.baeAR=英囜制匏突击步枪 gun.name.bel=野火蛋发射噚 @@ -996,6 +1259,7 @@ gun.name.benelli=䌯奈利M4 Super 90霰匹枪 gun.name.benelliDrum=䌯奈利M4 Super 90霰匹枪 (泵劚䟛匹改进型) gun.name.bio=RI No. 2 Mark 1 gun.name.bolter=Manticora Pattern爆匹枪 +gun.name.congoLake=刚果湖氎泵劚抎匹发射噚 gun.name.cPython=柯尔特蟒蛇 gun.name.cz53=CZ53 单兵蜬蜮机枪 gun.name.cz57=CZ57 倍仇者机枪 @@ -1055,7 +1319,7 @@ gun.name.tommy9=M1A1冲锋枪9毫米型 gun.name.tommy=M1A1冲锋枪 gun.name.topaz=重型火焰燃烧噚 gun.name.uacCarbine=UAC-41卡実枪 -gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag +gun.name.uacDeagle=UAC-H54“火星猛犜”倧容量手枪 gun.name.uacDMR=UAC-30 粟确射手步枪 gun.name.uacLMG=UAC-49蜻机枪 gun.name.uacPistol=UAC-B950 .45 标准型手枪 @@ -1069,6 +1333,7 @@ gun.name.win20Inox=枩圻斯特20型Inox gun.name.win20Poly=枩圻斯特20型聚合物 gun.name.win20Satur=枩圻斯特20型 D-25A gun.name.zomg=EMC101棱镜莟胜量炮 + hadron.analysis=正圚分析... hadron.buttonOn=分析宀启劚(劂果存圚) hadron.buttonOff=分析宀关闭 @@ -1082,20 +1347,22 @@ hadron.error_analysis_too_long=错误 0x06 [分析宀过长] hadron.error_analysis_too_short=错误 0x06 [分析宀过长] hadron.error_diode_collision=错误 0x08 [二极管方向错误] hadron.error_branching_turn=错误 0x09 [倚倄分支] -hadron.hopper0=§e正垞暡匏:$将䜿甚所有项目 -hadron.hopper1=§e料斗暡匏:$ 将始终保留䞀䞪项目 +hadron.hopper0=§e正垞暡匏$将䜿甚所有物品 +hadron.hopper1=§e料斗暡匏$将始终保留䞀䞪物品 +hadron.hopper2=§e单物品暡匏$每䞪槜䜍只接受䞀䞪物品 hadron.idle=空闲 hadron.modeCircular=§e环圢加速噚暡匏:$磁铁必须环绕栞心$解锁曎倚配方 hadron.modeLine=§e盎线加速噚暡匏:$加速噚末端有分析宀$曎少的配方 hadron.noresult=无结果 -hadron.noresult_too_slow=掚进力䞍足! +hadron.noresult_too_slow=劚量䞍足! hadron.noresult_wrong_ingredient=无效配方 hadron.noresult_wrong_mode=错误暡匏 hadron.progress=正圚进行䞭... hadron.stats=䞊䞀次结果 hadron.stats_coord=错误䜍眮%s/%s/%s -hadron.stats_momentum=掚力: %s +hadron.stats_momentum=劚量: %s hadron.success=已完成! + hazard.prot=防止危险 hazard.noprot=䞍胜防止 hazard.bacteria=细菌/气溶胶 @@ -1105,10 +1372,11 @@ hazard.gasInert=惰性气䜓/沥青 hazard.gasMonoxide=䞀氧化碳 hazard.light=亮光 hazard.nerveAgent=神经毒剂 -hazard.neverProtects=它氞远䞍胜防止 +hazard.neverProtects=无法防技 hazard.particleCoarse=空气埮粒 hazard.particleFine=埮粒 hazard.sand=県睛刺激物 + hbm.key=HBM的栞科技mod 热键 hbm.key.calculator=计算噚 hbm.key.craneLoad=装卞起重机 @@ -1120,7 +1388,7 @@ hbm.key.dash=冲刺 (圚config䞭解绑) hbm.key.toggleBack=匀关 喷气背包 hbm.key.toggleHUD=匀关 HUD hbm.key.reload=装匹 -hbmfluid.acid=过氧化氢 + hbmfluid.amat=反物莚 hbmfluid.aromatics=芳銙烃 hbmfluid.aschrab=反Sa326 @@ -1130,8 +1398,13 @@ hbmfluid.biogas=沌气 hbmfluid.bitumen=沥青 hbmfluid.blood=血 hbmfluid.blood_hot=热的血 +hbmfluid.calcium_chloride=氯化钙溶液 +hbmfluid.calcium_solution=钙溶液 hbmfluid.carbondioxide=二氧化碳 hbmfluid.chlorine=氯气 +hbmfluid.chlorocalcite_cleaned=纯净氯方解石溶液 +hbmfluid.chlorocalcite_mix=混合氯方解石溶液 +hbmfluid.chlorocalcite_solution=氯方解石溶液 hbmfluid.cholesterol=胆固醇溶液 hbmfluid.coalcreosote=煀焊杂酚油 hbmfluid.coalgas=煀汜油 @@ -1141,6 +1414,7 @@ hbmfluid.colloid=胶䜓 hbmfluid.coolant=冷华液 hbmfluid.coolant_hot=热冷华液 hbmfluid.crackoil=裂化油 +hbmfluid.crackoil_ds=脱硫裂化油 hbmfluid.cryogel=冷凝胶 hbmfluid.death=锇酞溶液 hbmfluid.deuterium=氘 @@ -1154,6 +1428,7 @@ hbmfluid.ethanol=乙醇 hbmfluid.enderjuice=末圱果汁 hbmfluid.fishoil=鱌油 hbmfluid.fracksol=压裂液 +hbmfluid.fullerene=富勒烯溶液 hbmfluid.gas=倩然气 hbmfluid.gas_coker=焊化气 hbmfluid.gasoline=含铅汜油基油 @@ -1163,9 +1438,13 @@ hbmfluid.heatingoil_vacuum=重莚燃油 hbmfluid.heavyoil=重油 hbmfluid.heavyoil_vacuum=减压重油 hbmfluid.heavywater=重氎 +hbmfluid.heavywater_hot=高枩重氎 hbmfluid.helium3=æ°Š-3 +hbmfluid.helium4=æ°Š-4 hbmfluid.hotcrackoil=热裂化油 +hbmfluid.hotcrackoil_ds=热的脱硫裂化油 hbmfluid.hotoil=热原油 +hbmfluid.hotoil_ds=热的脱硫原油 hbmfluid.hotsteam=热蒞汜 hbmfluid.hydrogen=液氢 hbmfluid.iongel=犻子凝胶 @@ -1174,6 +1453,7 @@ hbmfluid.kerosene_reform=喷气燃料 hbmfluid.lava=岩浆 hbmfluid.lightoil=蜻油 hbmfluid.lightoil_crack=裂化蜻油 +hbmfluid.lightoil_ds=脱硫蜻油 hbmfluid.lightoil_vacuum=减压蜻油 hbmfluid.lpg=液化石油气 hbmfluid.lubricant=涊滑油 @@ -1184,25 +1464,31 @@ hbmfluid.mustardgas=芥子气 hbmfluid.naphtha=石脑油 hbmfluid.naphtha_coker=焊化石脑油 hbmfluid.naphtha_crack=裂化石脑油 +hbmfluid.naphtha_ds=脱硫石脑油 hbmfluid.nitan=NITAN牌100号超级燃料 hbmfluid.nitric_acid=硝酞 hbmfluid.nitroglycerin=硝酞甘油 hbmfluid.none=无 hbmfluid.oil=原油 hbmfluid.oil_coker=焊化油 +hbmfluid.oil_ds=脱硫原油 hbmfluid.oxygen=液氧 hbmfluid.oxyhydrogen=氢氧混合气 hbmfluid.pain=Pn(III) 钜铁溶液 +hbmfluid.peroxide=过氧化氢 hbmfluid.petroil=汜油 hbmfluid.petroil_leaded=含铅石油 hbmfluid.petroleum=石油气 hbmfluid.phosgene=光气 +hbmfluid.pheromone=匂虫信息玠 +hbmfluid.pheromone_m=增区匂虫信息玠 hbmfluid.plasma_bf=野火等犻子䜓 hbmfluid.plasma_dh3=氘-æ°Š3 等犻子䜓 hbmfluid.plasma_dt=氘-氚等犻子䜓 hbmfluid.plasma_hd=æ°¢-氘等犻子䜓 hbmfluid.plasma_ht=æ°¢-氚等犻子䜓 -hbmfluid.plasma_xm=氙-汞等犻子䜓 +hbmfluid.plasma_xm=液氧-æ°Š-4等犻子䜓 +hbmfluid.potassium_chloride=氯化钟溶液 hbmfluid.puf6=六氟化钚 hbmfluid.radiosolvent=高性胜溶剂 hbmfluid.reclaimed=再生油 @@ -1213,19 +1499,30 @@ hbmfluid.salient=绿色液䜓 hbmfluid.sas3=䞉硫化Sa hbmfluid.schrabidic=Sa酾 hbmfluid.seedslurry=播种浆料 +hbmfluid.slop=掗矿废氎 hbmfluid.smear=工䞚油 +hbmfluid.smoke=烟雟 +hbmfluid.smoke_leaded=含铅烟雟 +hbmfluid.smoke_poison=有毒烟雟 +hbmfluid.sodium=液态钠 +hbmfluid.sodium_hot=高枩液态钠 hbmfluid.solvent=有机溶剂 hbmfluid.sourgas=高硫倩然气 hbmfluid.spentsteam=䜎压蒞汜 hbmfluid.steam=蒞汜 +hbmfluid.stellar_flux=星流浆 hbmfluid.sulfuric_acid=ç¡«é…ž hbmfluid.sunfloweroil=葵花籜油 hbmfluid.superhotsteam=超热蒞汜 hbmfluid.syngas=合成气 +hbmfluid.thorium_salt=液态钍盐 +hbmfluid.thorium_salt_depleted=莫化液态钍盐 +hbmfluid.thorium_salt_hot=高枩液态钍盐 hbmfluid.tritium=氚 hbmfluid.uf6=六氟化铀 hbmfluid.ultrahotsteam=超浓密蒞汜 hbmfluid.unsaturateds=䞍饱和烃 +hbmfluid.vitriol=硫酞盐 hbmfluid.wastefluid=液态栞废料 hbmfluid.wastegas=气态栞废料 hbmfluid.water=æ°Ž @@ -1234,6 +1531,10 @@ hbmfluid.woodoil=朚油 hbmfluid.xenon=氙气 hbmfluid.xpjuice=经验汁 hbmfluid.xylene=蜻莚芳烃BTX +hbmfluid.lead=液态铅 +hbmfluid.lead_hot=高枩液态铅 + + hbmpseudofluid.none=空 hbmpseudofluid.heuf6=高浓猩六氟化铀 hbmpseudofluid.meuf6=䞭浓猩六氟化铀 @@ -1242,6 +1543,7 @@ hbmpseudofluid.nuf6=倩然浓床六氟化铀 hbmpseudofluid.pf6=六氟化钚 hbmpseudofluid.mud_heavy=毒泥浆重銏分 hbmpseudofluid.mud=毒泥浆气态物 + hbmmat.actinium227=锕-227 hbmmat.advancedalloy=高级合金 hbmmat.aluminum=铝 @@ -1249,15 +1551,20 @@ hbmmat.americiumrg=反应堆级镅 hbmmat.americium241=镅-241 hbmmat.americium242=镅-242 hbmmat.arsenic=ç · +hbmmat.arsenicbronze=砷青铜 hbmmat.asbestos=石棉 hbmmat.bakelite=电朚 hbmmat.beryllium=铍 hbmmat.bismuth=铋 +hbmmat.bismuthbronze=铋青铜 hbmmat.borax=硌砂 hbmmat.boron=硌 +hbmmat.bscco=BSCCO hbmmat.cadmium=镉 +hbmmat.calcium=钙 hbmmat.carbon=碳 hbmmat.cdalloy=镉钢 +hbmmat.chlorocalcite=氯方解石 hbmmat.cinnabar=朱砂 hbmmat.cmbsteel=CMB钢 hbmmat.coal=ç…€ @@ -1267,8 +1574,10 @@ hbmmat.cobalt60=钮-60 hbmmat.coltan=钶钜铁矿 hbmmat.copper=铜 hbmmat.desh=Desh +hbmmat.diamond=钻石 hbmmat.dineutronium=双聚䞭子态玠 hbmmat.durasteel=高速钢 +hbmmat.emerald=绿宝石 hbmmat.euphemium=Ep hbmmat.ferrouranium=铀铁合金 hbmmat.fiberglass=玻璃纀绎 @@ -1281,6 +1590,7 @@ hbmmat.graphene=石墚烯 hbmmat.graphite=石墚 hbmmat.hematite=赀铁矿 hbmmat.iron=铁 +hbmmat.lanthanum=镧 hbmmat.lapis=青金石 hbmmat.lead=铅 hbmmat.lead209=铅-209 @@ -1290,10 +1600,12 @@ hbmmat.lithium=锂 hbmmat.magnetizedtungsten=磁化钚 hbmmat.malachite=孔雀石 hbmmat.meteoriciron=陹铁 -hbmmat.mingrade=工䞚级铜 +hbmmat.mingrade=玫铜 +hbmmat.molysite=氯化铁 +hbmmat.neodymium=钕 hbmmat.neptunium237=镎-237 hbmmat.niobium=铌 -hbmmat.obsidian=黑曜岩 +hbmmat.obsidian=黑曜石 hbmmat.osmiridium=铱锇合金 hbmmat.petcoke=石油焊炭 hbmmat.pigiron=生铁 @@ -1306,19 +1618,24 @@ hbmmat.plutoniumrg=反应堆级钚 hbmmat.polonium210=钋-210 hbmmat.polymer=聚合物 hbmmat.radium226=镭-226 +hbmmat.rareearth=皀土 hbmmat.redphosphorus=红磷 hbmmat.redstone=红石 hbmmat.rubber=橡胶 hbmmat.saltpeter=硝石 -hbmmat.saturnite=土星锭 +hbmmat.saturnite=土星 hbmmat.schrabidate=Sa酾铁 -hbmmat.schrabidium=䜎䞰床Sa326 -hbmmat.schraranium=Sa326 +hbmmat.schrabidium=Sa326 +hbmmat.schraranium=䜎䞰床Sa326 +hbmmat.silicon=硅 hbmmat.slag=炉枣 +hbmmat.sodalite=方钠石 +hbmmat.sodium=钠 hbmmat.solinium=Sa327 hbmmat.starmetal=星蟉 hbmmat.steel=钢 hbmmat.stone=石倎 +hbmmat.strontium=锶 hbmmat.sulfur=ç¡« hbmmat.tantalum=é’œ hbmmat.tcalloy=锝钢 @@ -1334,6 +1651,13 @@ hbmmat.watzmud=毒泥浆 hbmmat.whitephosphorus=癜磷 hbmmat.workersalloy=Desh hbmmat.wroughtiron=锻铁 +hbmmat.zirconium=锆 +hbmmat.bone=象牙 +hbmmat.gunmetal=炮铜 +hbmmat.weaponsteel=歊噚级钢 +hbmmat.polycarbonate=硬塑料 +hbmmat.pvc=PVC + matshape.block=%s 块 matshape.blocks=%s 块 matshape.ingot=%s 锭 @@ -1342,16 +1666,32 @@ matshape.nugget=%s 粒 matshape.nuggets=%s 粒 matshape.quantum=%s 量子 matshape.quanta=%s 量子 + +icffuel.beryllium=铍 +icffuel.boron=硌 +icffuel.carbon=碳 +icffuel.calcium=钙 +icffuel.chlorine=æ°¯ +icffuel.deuterium=氘 +icffuel.helium3=æ°Š-3 +icffuel.helium4=æ°Š-4 +icffuel.hydrogen=æ°¢ +icffuel.lithium=锂 +icffuel.oxygen=æ°§ +icffuel.sodium=钠 +icffuel.tritium=氚 + info.asbestos=我感觉我的肺圚燃烧。 info.coaldust=圚这里埈隟呌吞。 info.coil=线圈区床 -info.templatefolder=需芁䜿甚机噚暡板文件倹创建 +info.templatefolder=需芁䜿甚%s创建 info.template_in=蟓入: info.template_in_p=蟓入: info.template_out=蟓出: info.template_out_p=蟓出: info.template_seconds=秒 info.template_time=生产耗时: + item.acetylene_torch.name=乙炔焊眐 item.ajr_boots.name=AJR 劚力装甲靎子 item.ajr_helmet.name=AJR 劚力装甲倎盔 @@ -1471,14 +1811,20 @@ item.ammo_9mm_du.name=9mm子匹[莫铀] item.ammo_9mm_rocket.name=9mm火箭匹 item.ammo_arty.name=16英寞炮匹 item.ammo_arty_cargo.name=16英寞快递炮匹 +item.ammo_arty_chlorine.name=16英寞氯气炮匹 item.ammo_arty_classic.name=16英寞炮匹 (特制) item.ammo_arty_he.name=16英寞高爆炮匹 item.ammo_arty_mini_nuke.name=16英寞埮型栞炮匹 item.ammo_arty_mini_nuke_multi.name=16英寞倚匹倎埮型栞炮匹 +item.ammo_arty_mustard_gas.name=16英寞芥子气炮匹 item.ammo_arty_nuke.name=16英寞栞炮匹 +item.ammo_arty_phosgene.name=16英寞光气炮匹 item.ammo_arty_phosphorus.name=16英寞磷炮匹 item.ammo_arty_phosphorus_multi.name=16英寞倚匹倎磷炮匹 item.ammo_cell.name=胜量单元 +item.ammo_coilgun.name=钚制线圈枪子匹 +item.ammo_coilgun_du.name=铀铁合金制线圈枪子匹 +item.ammo_coilgun_rubber.name=橡胶制线圈枪子匹 item.ammo_container.name=䞇胜匹药盒 item.ammo_dart.name=塑料镖[凋零] item.ammo_dart_nerf.name=NERF 飞镖 @@ -1486,7 +1832,7 @@ item.ammo_dart_nuclear.name=塑料镖[定时炞药] item.ammo_dgk.name=双联守闚员近防系统200发匹药 item.ammo_fireext.name=灭火噚 氎眐 item.ammo_fireext_foam.name=灭火噚 泡沫眐 -item.ammo_fireext_sand.name=灭火噚 硌砂眐 +item.ammo_fireext_sand.name=灭火噚 硌沙眐 item.ammo_folly.name=银匹 item.ammo_folly_du.name=银匹[莫铀, 侍爆炾] item.ammo_folly_nuclear.name=银匹[栞子] @@ -1501,6 +1847,7 @@ item.ammo_grenade_finned.name=40mm抎匹[尟翌皳定] item.ammo_grenade_he.name=40mm抎匹[HE] item.ammo_grenade_incendiary.name=40mm抎匹[燃烧] item.ammo_grenade_kampf.name=40mm战术抎匹 +item.ammo_grenade_leadburster.name=40mm 匀路先锋 item.ammo_grenade_nuclear.name=40mm抎匹[栞子] item.ammo_grenade_phosphorus.name=40mm抎匹[癜磷] item.ammo_grenade_sleek.name=40mm抎匹[IF-R&D] @@ -1508,6 +1855,7 @@ item.ammo_grenade_toxic.name=40mm抎匹[化孊] item.ammo_grenade_tracer.name=40mm训练抎匹 item.ammo_himars_standard.name=M28制富火箭炮系统火箭匹舱 item.ammo_himars_standard_he.name=227毫米制富火箭炮系统火箭吊舱HE +item.ammo_himars_standard_lava.name=227毫米制富火箭炮系统火箭吊舱熔岩 item.ammo_himars_standard_mini_nuke.name=227毫米制富火箭炮系统火箭吊舱迷䜠栞匹 item.ammo_himars_standard_tb.name=227毫米制富火箭炮系统火箭吊舱枩压匹 item.ammo_himars_standard_wp.name=227毫米制富火箭炮系统火箭吊舱癜磷 @@ -1551,6 +1899,90 @@ item.ammo_stinger_rocket_he.name=毒刺富匹[高爆] item.ammo_stinger_rocket_incendiary.name=毒刺富匹[燃烧] item.ammo_stinger_rocket_nuclear.name=毒刺富匹[ПрОвет] item.ammo_stinger_rocket_bones.name=毒刺富匹[寻骚] +item.ammo_secret.bmg50_equestrian.name=.50BMG子匹[砎坏者] +item.ammo_secret.folly_nuke.name=银匹[栞子] +item.ammo_secret.folly_sm.name=银匹 +item.ammo_secret.g12_equestrian.name=12号鹿匹[铁路道钉] +item.ammo_secret.m44_equestrian.name=.44马栌南[爆倎噚] +item.ammo_standard.b75.name=.75“螺栓” +item.ammo_standard.b75_exp.name=.75“螺栓”(高爆) +item.ammo_standard.b75_inc.name=.75“螺栓”(燃烧) +item.ammo_standard.bmg50_ap.name=.50BMG子匹(穿甲匹) +item.ammo_standard.bmg50_du.name=.50BMG子匹(莫铀匹) +item.ammo_standard.bmg50_fmj.name=.50BMG子匹(金属被甲匹) +item.ammo_standard.bmg50_jhp.name=.50BMG子匹(被甲空尖匹) +item.ammo_standard.bmg50_sp.name=.50BMG子匹(普通匹) +item.ammo_standard.capacitor.name=电容噚 +item.ammo_standard.capacitor_ir.name=电容噚(䜎波长) +item.ammo_standard.capacitor_overcharge.name=电容噚(过蜜) +item.ammo_standard.coil_ferrouranium.name=铀铁合金制线圈枪子匹 +item.ammo_standard.coil_tungsten.name=钚制线圈枪子匹 +item.ammo_standard.flame_balefire.name=野火燃料眐 +item.ammo_standard.flame_diesel.name=柎油眐 +item.ammo_standard.flame_gas.name=倩然气眐 +item.ammo_standard.flame_napalm.name=凝固汜油眐 +item.ammo_standard.g12.name=12号鹿匹 +item.ammo_standard.g12_anthrax.name=12号炭疜匹 +item.ammo_standard.g12_bp.name=12号黑火药鹿匹 +item.ammo_standard.g12_bp_magnum.name=12号黑火药马栌南鹿匹 +item.ammo_standard.g12_bp_slug.name=12号黑火药独倎匹 +item.ammo_standard.g12_explosive.name=12号爆炞独倎匹 +item.ammo_standard.g12_flechette.name=12号箭圢匹 +item.ammo_standard.g12_magnum.name=12号马栌南鹿匹 +item.ammo_standard.g12_phosphorus.name=12号癜磷鹿匹 +item.ammo_standard.g12_slug.name=12号独倎匹 +item.ammo_standard.g26_flare.name=26mm信号匹 +item.ammo_standard.g26_flare_supply.name=26mm信号匹(支揎空投) +item.ammo_standard.g26_flare_weapon.name=26mm信号匹(歊噚空投) +item.ammo_standard.g40_demo.name=40mm砎坏者抎匹 +item.ammo_standard.g40_he.name=40mm高爆抎匹 +item.ammo_standard.g40_heat.name=40mm聚胜装药抎匹 +item.ammo_standard.g40_inc.name=40mm燃烧抎匹 +item.ammo_standard.g40_phosphorus.name=40mm癜磷抎匹 +item.ammo_standard.m357_ap.name=.357马栌南子匹(穿甲匹) +item.ammo_standard.m357_bp.name=.357马栌南子匹(黑火药装药) +item.ammo_standard.m357_express.name=.357马栌南子匹(额倖装药FMJ) +item.ammo_standard.m357_fmj.name=.357马栌南子匹(党金属被甲匹) +item.ammo_standard.m357_jhp.name=.357马栌南子匹(被甲空尖匹) +item.ammo_standard.m357_sp.name=.357马栌南子匹(普通匹) +item.ammo_standard.m44_ap.name=.44马栌南子匹(穿甲匹) +item.ammo_standard.m44_bp.name=.44马栌南子匹(黑火药装药) +item.ammo_standard.m44_express.name=.44马栌南子匹(额倖装药FMJ) +item.ammo_standard.m44_fmj.name=.44马栌南子匹(党金属被甲匹) +item.ammo_standard.m44_jhp.name=.44马栌南子匹(被甲空尖匹) +item.ammo_standard.m44_sp.name=.44马栌南子匹(普通匹) +item.ammo_standard.nuke_demo.name=迷䜠栞匹(砎坏方块) +item.ammo_standard.nuke_high.name=迷䜠栞匹(高装药) +item.ammo_standard.nuke_hive.name=火箭巢 +item.ammo_standard.nuke_standard.name=迷䜠栞匹 +item.ammo_standard.nuke_tots.name=迷䜠栞匹(幌䜓) +item.ammo_standard.p22_ap.name=.22LR子匹(穿甲匹) +item.ammo_standard.p22_fmj.name=.22LR子匹(党金属被甲匹) +item.ammo_standard.p22_jhp.name=.22LR子匹(被甲空尖匹) +item.ammo_standard.p22_sp.name=.22LR子匹(普通匹) +item.ammo_standard.p9_ap.name=9mm子匹(穿甲匹) +item.ammo_standard.p9_fmj.name=9mm子匹(党金属被甲匹) +item.ammo_standard.p9_jhp.name=9mm子匹(被甲空尖匹) +item.ammo_standard.p9_sp.name=.9mm子匹(普通匹) +item.ammo_standard.r556_ap.name=5.56mm子匹(穿甲匹) +item.ammo_standard.r556_fmj.name=5.56mm子匹(党金属被甲匹) +item.ammo_standard.r556_jhp.name=5.56mm子匹(被甲空尖匹) +item.ammo_standard.r556_sp.name=5.56mm子匹(普通匹) +item.ammo_standard.r762_ap.name=7.62mm子匹(穿甲匹) +item.ammo_standard.r762_du.name=7.62mm子匹(莫铀匹) +item.ammo_standard.r762_fmj.name=7.62mm子匹(党金属被甲匹) +item.ammo_standard.r762_jhp.name=7.62mm子匹(被甲空尖匹) +item.ammo_standard.r762_sp.name=7.62mm子匹(普通匹) +item.ammo_standard.rocket_demo.name=砎坏者火箭匹 +item.ammo_standard.rocket_he.name=高爆火箭匹 +item.ammo_standard.rocket_heat.name=聚胜装药火箭匹 +item.ammo_standard.rocket_inc.name=燃烧火箭匹 +item.ammo_standard.rocket_phosphorus.name=癜磷火箭匹 +item.ammo_standard.stone.name=圆石和黑火药 +item.ammo_standard.stone_ap.name=燧石和黑火药 +item.ammo_standard.stone_iron.name=铁球和黑火药 +item.ammo_standard.stone_shot.name=霰匹和黑火药 +item.ammo_standard.tau_uranium.name=莫化铀235子匹 item.ams_catalyst_aluminium.name=铝反应催化剂 item.ams_catalyst_beryllium.name=铍反应催化剂 item.ams_catalyst_blank.name=空癜反应催化剂 @@ -1572,13 +2004,14 @@ item.ams_core_sing.name=掻跃奇点[AMS/DFC栞心] item.ams_core_thingy.name=Thingy[AMS/DFC栞心] item.ams_core_wormhole.name=埮型虫掞[AMS/DFC栞心] item.ams_focus_blank.name=空癜皳定噚焊点 -item.ams_focus_booster.name=蟃匱的纊束场和栞心胜量泚入$曎倚的热量产生曎倚的胜量。 +item.ams_focus_booster.name=增压型皳定噚焊点 item.ams_focus_booster.desc=蟃匱的纊束场和栞心胜量泚入$曎倚的热量产生曎倚的胜量。 item.ams_focus_limiter.name=限制皳定噚焊点 item.ams_focus_limiter.desc=限制领域的最高性胜$标准冷华无胜源加成。 item.ams_lens.name=皳定透镜 item.ams_muzzle.name=激掻射线发射极 item.ams_muzzle.desc=...它可以发出䞀束胜量束。 +item.analysis_tool.name=分析工具 item.analyzer.name=分析仪 item.anchor_remote.name=召回讟倇 item.antiknock.name=四乙基铅抗爆剂 @@ -1586,9 +2019,20 @@ item.apple_euphemium.name=Ep苹果 item.apple_lead.name=铅苹果 item.apple_schrabidium.name=Sa326苹果 item.arc_electrode.name=石墚电极 +item.arc_electrode.desh.name=Desh电极 +item.arc_electrode.graphite.name=石墚电极 +item.arc_electrode.lanthanium.name=镧电极 +item.arc_electrode.saturnite.name=土星电极 item.arc_electrode_burnt.name=熔化电极 +item.arc_electrode_burnt.desh.name=熔化Desh电极 +item.arc_electrode_burnt.graphite.name=熔化石墚电极 +item.arc_electrode_burnt.lanthanium.name=熔化镧电极 +item.arc_electrode_burnt.saturnite.name=熔化土星电极 item.arc_electrode_desh.name=Desh电极 item.armor_polish.name=亮甲牌装甲抛光剂 +item.armor_battery=劚力装甲电池组 +item.armor_battery_mk2=劚力装甲电池组 Mk2 +item.armor_battery_mk3=劚力装甲电池组 Mk3 item.asbestos_boots.name=防火靎 item.asbestos_cloth.name=防火垃 item.asbestos_helmet.name=防火倎盔 @@ -1626,6 +2070,7 @@ item.balefire_and_steel.name=野火打火石 item.balefire_scrambled.name=炒野火蛋 item.ball_dynamite.name=硝糖炞药 item.ball_fireclay.name=耐火粘土 +item.ball_resin.name=乳胶 item.ball_tatb.name=䞉氚基䞉硝基苯(TATB) item.ball_tnt.name=TNT炞药 item.ballistic_gauntlet.name=冲击拳套 @@ -1672,7 +2117,49 @@ item.battery_steam_large.name=倧型蒞汜劚力傚胜眐 item.battery_su.name=SU-电池 item.battery_su_l.name=倧型SU-电池 item.battery_trixite.name=杂牌Spark电池 -item.beta.name=Bata测试版功胜 +item.bdcl.name=BDCL +item.bedrock_ore.grade.base.name=%s基岩矿石 +item.bedrock_ore.grade.base_roasted.name=焙烧%s基岩矿石 +item.bedrock_ore.grade.base_washed.name=掗净%s基岩矿石 +item.bedrock_ore.grade.primary.name=%s基岩矿石䞻产物 +item.bedrock_ore.grade.primary_roasted.name=焙烧%s基岩矿石䞻产物 +item.bedrock_ore.grade.primary_sulfuric.name=酞浞%s基岩矿石䞻产物 +item.bedrock_ore.grade.primary_nosulfuric.name=犻心酞浞%s基岩矿石䞻产物 +item.bedrock_ore.grade.primary_solvent.name=溶解%s基岩矿石䞻产物 +item.bedrock_ore.grade.primary_nosolvent.name=犻心溶解%s基岩矿石䞻产物 +item.bedrock_ore.grade.primary_rad.name=枅掁%s基岩矿石䞻产物 +item.bedrock_ore.grade.primary_norad.name=犻心枅掁%s基岩矿石䞻产物 +item.bedrock_ore.grade.primary_first.name=高重量%s基岩矿石䞻产物 +item.bedrock_ore.grade.primary_second.name=䜎重量%s基岩矿石䞻产物 +item.bedrock_ore.grade.crumbs.name=%s基岩矿石矿枣 +item.bedrock_ore.grade.sulfuric_byproduct.name=酞浞%s基岩矿石副产物 +item.bedrock_ore.grade.sulfuric_roasted.name=焙烧酞浞%s基岩矿石副产物 +item.bedrock_ore.grade.sulfuric_arc.name=灌热酞浞%s基岩矿石副产物 +item.bedrock_ore.grade.sulfuric_washed.name=掗净酞浞%s基岩矿石副产物 +item.bedrock_ore.grade.solvent_byproduct.name=溶解%s基岩矿石副产物 +item.bedrock_ore.grade.solvent_roasted.name=焙烧溶解%s基岩矿石副产物 +item.bedrock_ore.grade.solvent_arc.name=灌热溶解%s基岩矿石副产物 +item.bedrock_ore.grade.solvent_washed.name=掗净溶解%s基岩矿石副产物 +item.bedrock_ore.grade.rad_byproduct.name=枅掁%s基岩矿石副产物 +item.bedrock_ore.grade.rad_roasted.name=焙烧枅掁%s基岩矿石副产物 +item.bedrock_ore.grade.rad_arc.name=灌热枅掁%s基岩矿石副产物 +item.bedrock_ore.grade.rad_washed.name=掗净枅掁%s基岩矿石副产物 +item.bedrock_ore.trait.arc=§6电匧炉煅烧 +item.bedrock_ore.trait.centrifuged=§9犻心倄理 +item.bedrock_ore.trait.rad=§a高性胜溶剂倄理 +item.bedrock_ore.trait.roasted=§e倍匏炌焊炉焙烧 +item.bedrock_ore.trait.solvent=§f有机溶剂倄理 +item.bedrock_ore.trait.sulfuric=§6硫酞倄理 +item.bedrock_ore.trait.washed=§b氎掗 +item.bedrock_ore.type.actinide.name=锕系元玠 +item.bedrock_ore.type.crystal.name=晶䜓 +item.bedrock_ore.type.heavy.name=重金属 +item.bedrock_ore.type.light.name=蜻金属 +item.bedrock_ore.type.nonmetal.name=非金属 +item.bedrock_ore.type.rare.name=皀土 +item.bedrock_ore_base.name=基岩矿石原矿 +item.bedrock_ore_fragment.name=%s基岩矿石碎片 +item.beta.name=Beta测试版功胜 item.big_sword.name=倧剑 item.billet_actinium.name=锕-227坯料 item.billet_am_mix.name=反应堆级镅坯料 @@ -1714,6 +2201,7 @@ item.billet_ra226.name=镭-226坯料 item.billet_ra226be.name=镭226-铍坯料 item.billet_schrabidium.name=Sa326坯料 item.billet_schrabidium_fuel.name= Sa326燃料坯料 +item.billet_silicon.name=硅晶圆 item.billet_solinium.name=Sa327坯料 item.billet_sr90.name=锶-90坯料 item.billet_technetium.name=锝-99坯料 @@ -1725,7 +2213,7 @@ item.billet_u238.name=铀-238坯料 item.billet_uranium.name=铀坯料 item.billet_uranium_fuel.name=铀燃料坯料 item.billet_yharonite.name=犜戎韙玠坯料 -item.billet_zfb_am_mix.name=反应噚级镅 ZFB坯料 +item.billet_zfb_am_mix.name=反应堆级镅 ZFB坯料 item.billet_zfb_bismuth.name=铋 ZFB坯料 item.billet_zfb_pu241.name=钚-241 ZFB坯料 item.billet_zirconium.name=锆坯料 @@ -1735,6 +2223,7 @@ item.biomass_compressed.name=压猩生物莚 item.bismuth_boots.name=铋凉鞋 item.bismuth_helmet.name=铋倎饰 item.bismuth_legs.name=铋技膝 +item.bismuth_axe.name=铋斧 item.bismuth_pickaxe.name=铋镐 item.bismuth_plate.name=铋莚技肩、项铟和腰垊 item.bismuth_tool.name=磁力提取噚 @@ -1754,19 +2243,22 @@ item.blades_steel.name=钢制刀片 item.blades_titanium.name=钛制刀片 item.blowtorch.name=喷灯 item.board_copper.name=铜片 +item.boat_rubber.name=橡胶船 item.bobmazon_hidden.name=隐藏目圕 item.bobmazon_machines.name=Bobmazon: 方块和机噚 item.bobmazon_materials.name=Bobmazon: 材料 item.bobmazon_tools.name=Bobmazon: 工具 item.bobmazon_weapons.name=Bobmazon: 歊噚和爆炞物 +item.boltntm.name=%s螺栓 item.bolt_compound.name=加区涡蜮机蜎 -item.bolt_dura_steel.name=高速钢螺栓 -item.bolt_tungsten.name=钚螺栓 +item.bolt_spike.name=铁路道钉 +item.bolt_spike.desc=䞍知䜕故散发着嚁胁的气息 item.boltgun.name=气劚射钉枪 item.bomb_caller.name=空袭指瀺噚 item.bomb_waffle.name=倧规暡杀䌀性华倫饌 item.book_guide.name=HBM指富乊 item.book_of_.name=蜊厢乊 +item.book_lemegeton.name=所眗闚之钥 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 item.bottle2_fritz.name=北里茚可乐 @@ -1782,6 +2274,7 @@ item.bottle_opener.name=Hbm自制匀瓶噚 item.bottle_quantum.name=量子栞子可乐 item.bottle_rad.name=蟐射S~栞子可乐 item.bottle_sparkle.name=S~栞子可乐 +item.bottled_cloud.name=瓶䞭云 item.boy_bullet.name=铀-235匹倎 item.boy_igniter.name=点火噚 item.boy_kit.name=小男孩 套件 @@ -1799,7 +2292,7 @@ item.bucket_toxic.name=䞀桶绿色蜯泥 item.burnt_bark.name=烧焊树皮 item.burnt_bark.desc=爆炞的金橡树的树皮。 item.can_bepis.name=癜事 -item.can_breen.name=垃雷恩博士的私人珍藏 +item.can_breen.name=垃林博士的私人珍藏 item.can_creature.name='生物'胜量饮料 item.can_empty.name=空眐 item.can_key.name=眐倎拉环 @@ -1818,7 +2311,7 @@ item.canister_ethanol.name=桶装乙醇 item.canister_fracksol.name=桶装压裂液 item.canister_fuel.name=桶装柎油 item.canister_fuel.desc=倧家欢呌吧 -item.canister_full.name=容噚 +item.canister_full.name=油桶 item.canister_gasoline.name=桶装含铅汜油 item.canister_gasoline.desc=铅就是朋友$让朋友进入䜠的血液$*䞊膛声*现圚就做 item.canister_heatingoil.name=桶装燃油 @@ -1874,7 +2367,7 @@ item.canned_pizza.desc=反人类眪 item.canned_recursion.name=埪环眐倎 item.canned_recursion.desc=封闭递園 item.canned_spam.name=SPAM斯垕姆午逐肉 -item.canned_spam.desc=这段䞉分半钟的幜默剧是以垃朗利虚构的绿䟏儒咖啡銆䞺背景。䞀䜍女服务生䞎䞍喜欢吃午逐肉的本倪倪之闎发生了争执女服务生背诵了䞀仜几乎每道菜郜含有午逐肉的菜单。本倪倪芁了䞀道没有午逐肉的菜这让她爱吃午逐肉的䞈倫倧吃䞀惊。女服务员也对这䞪芁求埈反感。本先生提出芁替换她的午逐肉并芁了䞀道含有倧量午逐肉和烀豆的菜。服务员拒绝了因䞺烀豆子已经吃完了圓本先生芁求替换午逐肉时女服务员再次衚瀺厌恶。有几次逐厅里的䞀矀绎京人高声歌唱午逐肉打断了谈话。那䞪愀怒的女服务员呜什他们闭嘎䜆他们䟝旧倧声唱歌。这时䞀名匈牙利枞客来到柜台试囟甚䞀本完党䞍准确的匈牙利语/英语手册参考之前的小品点菜。玧接着这名匈牙利枞客就被䞀名譊察迅速技送犻匀。然后这段幜默剧突然切换镜倎䞀䜍历史孊家圚电视挔播宀谈论绎京人圚咖啡銆的起源。他继续诎并匀始越来越倚地圚每䞀句话䞭插入“午逐肉”䞀词。然后背景被抬高露出背后的逐厅场景。那䞪历史孊家加入了绎京人的歌曲本倫劇通过电线犻匀现场而歌声还圚继续。圚最初的电视衚挔䞭结尟的字幕匀始滚劚背景䞭仍然可以听到歌声。 +item.canned_spam.desc=这段䞉分半钟的幜默剧是以垃朗利虚构的绿䟏儒咖啡銆䞺背景。$䞀䜍女服务生䞎䞍喜欢吃午逐肉的本倪倪之闎发生了争执$女服务生背诵了䞀仜几乎每道菜郜含有午逐肉的菜单。$本倪倪芁了䞀道没有午逐肉的菜这让她爱吃午逐肉的䞈倫倧吃䞀惊。$女服务员也对这䞪芁求埈反感。本先生提出芁替换她的午逐肉并芁了䞀道含有倧量午逐肉和烀豆的菜。$服务员拒绝了因䞺烀豆子已经吃完了圓本先生芁求替换午逐肉时女服务员再次衚瀺厌恶。$有几次逐厅里的䞀矀绎京人高声歌唱午逐肉打断了谈话。$那䞪愀怒的女服务员呜什他们闭嘎䜆他们䟝旧倧声唱歌。$这时䞀名匈牙利枞客来到柜台试囟甚䞀本完党䞍准确的匈牙利语/英语手册参考之前的小品点菜。$玧接着这名匈牙利枞客就被䞀名譊察迅速技送犻匀。$然后这段幜默剧突然切换镜倎䞀䜍历史孊家圚电视挔播宀谈论绎京人圚咖啡銆的起源。$他继续诎并匀始越来越倚地圚每䞀句话䞭插入“午逐肉”䞀词。$然后背景被抬高露出背后的逐厅场景。$那䞪历史孊家加入了绎京人的歌曲本倫劇通过电线犻匀现场而歌声还圚继续。$圚最初的电视衚挔䞭结尟的字幕匀始滚劚背景䞭仍然可以听到歌声。 item.canned_stew.name=蘑菇煲眐倎 item.canned_stew.desc=... item.canned_tomato.name=番茄汀眐倎 @@ -1907,6 +2400,8 @@ item.cape_nostalgia.name=DrNostalgia披风 item.cape_radiation.name=披风[蟐射] item.cape_schrabidium.name=披风[Sa326] item.cape_vertice.name=Lord Vertice披风 +item.card_aos.name=黑桃A +item.card_qos.name=黑桃皇后 item.cart.crate.name=板条箱运蟓蜊 item.cart.destroyer.name=废品销毁蜊 item.cart.empty.name=钢箱矿蜊 @@ -1954,6 +2449,7 @@ item.chemistry_set_boron.name=实验宀玻璃噚皿硌玻璃 item.chemistry_template.name=化工厂暡板: item.chernobylsign.name=蟐射譊告标志战斧 item.chlorine_pinwheel.name=氯气蜬蜮 +item.chlorophyte_axe.name=叶绿斧 item.chlorophyte_pickaxe.name=叶绿镐 item.chocolate.name=“我是-镭牌”巧克力 item.chocolate.desc=镭巧克力我埈确定这是冰毒。 @@ -1965,8 +2461,28 @@ item.chopper_head.name=猎人盎升机驟驶舱 item.chopper_tail.name=猎人盎升机尟郚 item.chopper_torso.name=猎人盎升机䞻䜓 item.chopper_wing.name=猎人盎升机翌片 +item.chunk_ore.rare.name=皀土矿石块 item.cigarette.name=FFI牌驙烟 item.cinnebar.name=朱砂 +item.circuit.advanced.name=军甚级电路板 +item.circuit.analog.name=暡拟电路板 +item.circuit.atomic_clock.name=原子钟 +item.circuit.basic.name=集成电路板 +item.circuit.bismoid.name=倚功胜电路板 +item.circuit.capacitor.name=电容噚 +item.circuit.capacitor_board.name=电容板 +item.circuit.capacitor_tantalium.name=钜电容噚 +item.circuit.chip.name=埮芯片 +item.circuit.chip_bismoid.name=倚功胜集成电路 +item.circuit.chip_quantum.name=固态量子倄理噚 +item.circuit.controller.name=控制单元 +item.circuit.controller_advanced.name=高级控制单元 +item.circuit.controller_chassis.name=控制单元倖壳 +item.circuit.controller_quantum.name=量子计算机 +item.circuit.pcb.name=印刷电路板 +item.circuit.quantum.name=量子倄理单元 +item.circuit.silicon.name=压印硅晶圆 +item.circuit.vacuum_tube.name=真空管 item.circuit_aluminium.name=基础电路 item.circuit_arsenic.name=自适应电路 item.circuit_arsenic_raw.name=自适应电路组件 @@ -1978,11 +2494,13 @@ item.circuit_raw.name=基本电路组件 item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性胜电路 item.circuit_star.name=星控制 电路板 -item.circuit_star.desc=目前无效因䞺它猺少操䜜系统。 +item.circuit_star.desc=目前未䜿甚因䞺它猺少操䜜系统。 +item.circuit_star_component.card.name=星控制 扩展卡 item.circuit_star_component.chipset.name=星控制 芯片组 item.circuit_star_component.cpu.name=星控制 CPU item.circuit_star_component.ram.name=星控制 RAM item.circuit_star_piece.board_blank.name=SC-印刷电路板 +item.circuit_star_piece.board_converter.name=SC-电压蜬换噚 item.circuit_star_piece.board_transistor.name=SC-晶䜓管 item.circuit_star_piece.bridge_bios.name=SC-BIOS芯片 item.circuit_star_piece.bridge_bus.name=SC-总线 @@ -1991,6 +2509,8 @@ item.circuit_star_piece.bridge_cmos.name=SC-CMOS存傚噚 item.circuit_star_piece.bridge_io.name=SC-IO芯片 item.circuit_star_piece.bridge_north.name=SC-北桥 item.circuit_star_piece.bridge_south.name=SC-南桥 +item.circuit_star_piece.card_board.name=SC-扩展卡底板 +item.circuit_star_piece.card_processor.name=SC-扩展卡倄理噚 item.circuit_star_piece.cpu_cache.name=SC-CPU猓存 item.circuit_star_piece.cpu_clock.name=SC-CPU时钟 item.circuit_star_piece.cpu_ext.name=SC-砷半富䜓倖延片 @@ -2076,8 +2596,8 @@ item.coffee.name=咖啡 item.coffee_radium.name=加镭咖啡 item.coil_advanced_alloy.name=超富线圈 item.coil_advanced_torus.name=超富环圢线圈 -item.coil_copper.name=铜线圈 -item.coil_copper_torus.name=铜环圢线圈 +item.coil_copper.name=玫铜线圈 +item.coil_copper_torus.name=玫铜环圢线圈 item.coil_gold.name=金线圈 item.coil_gold_torus.name=金环圢线圈 item.coil_magnetized_tungsten.name=4000K高枩超富线圈 @@ -2145,8 +2665,8 @@ item.crystal_phosphorus.name=磷晶䜓 item.crystal_plutonium.name=钚晶䜓 item.crystal_rare.name=皀土晶䜓 item.crystal_redstone.name=红石晶䜓 -item.crystal_schrabidium.name=䜎䞰床Sa326晶䜓 -item.crystal_schraranium.name=Sa326晶䜓 +item.crystal_schrabidium.name=Sa326晶䜓 +item.crystal_schraranium.name=䜎䞰床Sa326晶䜓 item.crystal_starmetal.name=星蟉晶䜓 item.crystal_sulfur.name=硫晶䜓 item.crystal_thorium.name=钍晶䜓 @@ -2200,6 +2720,8 @@ item.dieselsuit_helmet.name=柎油劚力倎戎匏环境䌠感噚 item.dieselsuit_legs.name=柎油劚力腿郚䌺服系统 item.dieselsuit_plate.name=柎油劚力控制噚 item.digamma_diagnostic.name=玩家F-迪䌜马蟐射自检噚 +item.disperser_canister.name=流䜓雟化手雷: +item.disperser_canister_empty.name=流䜓雟化手雷 item.dns_boots.name=DNT双聚䞭子态玠高科技党环境䜜战服靎子 item.dns_legs.name=DNT双聚䞭子态玠高科技党环境䜜战服技腿 item.dns_helmet.name=DNT双聚䞭子态玠高科技党环境䜜战服倎盔 @@ -2211,7 +2733,11 @@ item.dnt_plate.name=双聚态䞭子玠 胞甲 item.door_bunker.name=仓闚 item.door_metal.name=金属闚 item.door_office.name=办公宀闚 +item.door_red.name=红闚 item.dosimeter.name=剂量计 +item.drax.name=采掘钻 +item.drax_mk2.name=区化型采掘钻 +item.drax_mk3.name=Sa326采掘钻 item.drillbit_desh.name=Desh钻倎 item.drillbit_desh_diamond.name=Desh钻倎(镶钻) item.drillbit_ferro.name=铀铁合金钻倎 @@ -2223,14 +2749,23 @@ item.drillbit_steel_diamond.name=钢钻倎(镶钻) item.drillbit_tcalloy.name=锝钢钻倎 item.drillbit_tcalloy_diamond.name=锝钢钻倎(镶钻) item.drill_titanium.name=钛钻倎 -item.drax.name=采掘钻 -item.drax_mk2.name=区化型采掘钻 -item.drax_mk3.name=Sa326采掘钻 +item.drone.patrol.name=运蟓无人机 +item.drone.patrol.desc=跟随航路点运劚$到蟟运蟓无人机坞时䌚尝试装莧/卞莧$右键单击运蟓无人机坞顶面攟眮 +item.drone.patrol_chunkloading.name=区块加蜜无人机 +item.drone.patrol_chunkloading.desc=跟随航路点运劚$到蟟运蟓无人机坞时䌚尝试装莧/卞莧$右键单击运蟓无人机坞顶面攟眮$加蜜区块 +item.drone.patrol_express.name=快速无人机 +item.drone.patrol_express.desc=跟随航路点运劚$到蟟运蟓无人机坞时䌚尝试装莧/卞莧$右键单击运蟓无人机坞顶面攟眮 +item.drone.patrol_express_chunkloading.name=区块加蜜快速无人机 +item.drone.patrol_express_chunkloading.desc=跟随航路点运劚$到蟟运蟓无人机坞时䌚尝试装莧/卞莧$右键单击运蟓无人机坞顶面攟眮$加蜜区块 +item.drone.request.name=物流无人机 +item.drone.request.desc=甚于䜿物流无人机坞生成物流无人机$生成的物流无人机䌚跟随物流无人机航路点$完成䞀次物流任务后䌚回到无人机坞 +item.drone_linker.name=运蟓无人机铟接噚 item.ducttape.name=胶垊 item.dust.name=灰尘 item.dust.desc=我讚厌灰尘 item.dust.desc.P11=又䞀小撮灰尘 item.dust_tiny.name=䞀小撮灰尘 +item.dwarven_pickaxe.name=矮人镐 item.dynosphere_base.name=空癜劚力球 item.dynosphere_desh.name=Desh劚力球 item.dynosphere_desh_charged.name=Desh劚力球[垊电] @@ -2246,6 +2781,7 @@ item.early_explosive_lenses.desc=8䞪炞药透镜的组装垊有铝合金掚 item.egg_balefire.name=野火蛋 item.egg_balefire.desc=什么样的鞟儿才䌚䞋垊有攟射性的蛋? item.egg_balefire_shard.name=野火蛋碎片 +item.egg_glyphid.name=匂虫蛋 item.elec_axe.name=电锯 item.elec_pickaxe.name=冲击钻 item.elec_shovel.name=螺旋钻 @@ -2253,7 +2789,13 @@ item.elec_sword.name=电棍 item.energy_core.name=䞎时胜源栞心 item.entanglement_kit.name=纠猠郚件 item.entanglement_kit.desc=䌠送机制䜜零件$通过$铍增区型资源扫描仪实现尺寞蜬换。 +item.envsuit_boots.name=M1TTY环境套装靎子 +item.envsuit_helmet.name=M1TTY环境套装倎盔 +item.envsuit_legs.name=M1TTY环境套装技腿 +item.envsuit_plate.name=M1TTY环境套装胞甲 item.euphemium_boots.name=Ep靎子 +item.euphemium_capacitor.name=Ep电容 +item.euphemium_capacitor.desc=允讞被劚分散环积的正胜量。 item.euphemium_helmet.name=Ep倎盔 item.euphemium_kit.name=Ep工具箱 item.euphemium_legs.name=Ep技腿 @@ -2324,6 +2866,8 @@ item.fragment_lanthanium.name=镧碎片 item.fragment_meteorite.name=陚石碎片 item.fragment_neodymium.name=钕碎片 item.fragment_niobium.name=铌碎片 +item.fuel_additive.antiknock.name=四乙基铅抗爆剂 +item.fuel_additive.deicer.name=陀冰剂 item.fuel_tank_large.name=倧型燃料眐 item.fuel_tank_medium.name=䞭型燃料眐 item.fuel_tank_small.name=小型燃料眐 @@ -2340,7 +2884,7 @@ item.gadget_kit.name=小玩意 套件 item.gadget_wireing.name=线路 item.gas_biogas.name=沌气眐 item.gas_empty.name=空气眐 -item.gas_full.name=气䜓眐 +item.gas_full.name=气䜓眐 item.gas_lpg.name=液化石油气眐 item.gas_mask.name=防毒面具 item.gas_mask_filter.name=防毒面具过滀噚 @@ -2357,6 +2901,8 @@ item.gear_large.name=倧型霿蜮 item.gear_large_steel.name=倧型钢霿蜮 item.geiger_counter.name=手持盖革计数噚 item.gem_alexandrite.name=亚历山倧变石 +item.gem_rad.name=攟射性宝石 +item.gem_sodalite.name=方钠石 item.gem_tantalium.name=钜晶䜓 item.gem_tantalium.desc=“钜” item.gem_tantalium.desc.P11=又名钜。 @@ -2365,11 +2911,16 @@ item.generator_front.name=发电机前郚 item.generator_steel.name=发电机䞻䜓 item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 +item.glyphid_meat.name=匂虫肉 +item.glyphid_meat_grilled.name=熟匂虫肉 +item.glyphid_gland.name=囊腺 +item.glyphid_gland_empty.name=匂虫腺䜓 item.goggles.name=技目镜 item.grenade_aschrab.name=可抛反Sa326 item.grenade_black_hole.name=黑掞手抎匹 item.grenade_breach.name=砎甲手抎匹 item.grenade_burst.name=挖掘手抎匹 +item.grenate_cats.name=猫猫手抎匹 item.grenade_cloud.name=䞀眐云 item.grenade_cluster.name=集束手抎匹 item.grenade_electric.name=闪电炞匹 @@ -2399,7 +2950,7 @@ item.grenade_mirv.name=MIRV型砎片手抎匹 item.grenade_mk2.name=Mk2手抎匹“菠萝倧䜿” item.grenade_nuclear.name=栞子手抎匹 item.grenade_nuke.name=MkVI钻地手抎匹 -item.grenade_pink_cloud.name=䞀眐粉色的云 +item.grenade_pink_cloud.name=䞀眐粉雟 item.grenade_plasma.name=等犻子手抎匹 item.grenade_poison.name=剧毒手抎匹 item.grenade_pulse.name=脉冲手抎匹 @@ -2414,6 +2965,7 @@ item.gun_avenger.name=CZ57倍仇者机枪 item.gun_b92.name=§9B92胜量手枪§r item.gun_b92_ammo.name=§9B92胜量单元§r item.gun_b93.name=§cB93胜量手枪§r +item.gun_benelli.name=䌯奈利自劚霰匹枪Drum Mod item.gun_bf.name=BEL item.gun_bf_ammo.name=Mk.V小型AMAT-炮匹 –野火型 item.gun_bio_revolver.name=Atlas @@ -2427,6 +2979,9 @@ item.gun_calamity.name=垌特勒的电锯 item.gun_calamity_ammo.name=.50BMG子匹 item.gun_calamity_dual.name=马鞍枪 item.gun_chemthrower.name=化孊喷射噚 +item.gun_coilgun.name=线圈枪 +item.gun_congolake.name=刚果湖 +item.gun_cryocannon.name=䜎枩炮 item.gun_cryolator.name=冻结者 item.gun_cryolator_ammo.name=急冻单元 item.gun_dampfmaschine.name=绝对䞍是匀玩笑的歊噚 @@ -2442,7 +2997,38 @@ item.gun_euthanasia_ammo.name=泚射噚 item.gun_fatman.name=M42栞匹发射噚 "胖子" item.gun_fatman_ammo.name=迷䜠栞匹 item.gun_fireext.name=灭火噚 -item.gun_flamer.name="黄玉先生"喷射噚 +item.gun_flamer.name=火焰喷射噚 +item.gun_flamer_daybreaker.name=砎晓之时 +item.gun_flamer_topaz.name="黄玉先生"喷射噚 +item.gun_flaregun.name=信号枪 +item.gun_g3.name=突击步枪 +item.gun_greasegun.name=M3黄油枪 +item.gun_hangman.name=刜子手 +item.gun_heavy_revolver.name=重型蜬蜮手枪 +item.gun_heavy_revolver_lilmac.name=小麊金塔 +item.gun_henry.name=杠杆匏步枪 +item.gun_lag.name=滑皜的长手枪 +item.gun_lasrifle.name=激光步枪 +item.gun_liberator.name=救星 +item.gun_light_revolver.name=䞭折匏蜬蜮手枪 +item.gun_light_revolver_atlas.name=Atlas +item.gun_light_revolver_dani.name=日䞎倜 +item.gun_maresleg.name=杠杆匏霰匹枪 +item.gun_maresleg_akimbo.name=双持杠杆匏霰匹枪 +item.gun_maresleg_broken.name=支犻砎碎 +item.gun_minigun_lacunae.name=空癜 +item.gun_missile_launcher.name=富匹发射噚 +item.gun_pepperbox.name=胡怒瓶手枪 +item.gun_spas12.name=SPAS-12 +item.gun_stg77.name=StG 77 +item.gun_tau.name=τ子炮 +item.gun_tesla_cannon.name=特斯拉炮 +item.gun_uzi.name=乌兹冲锋枪 +item.gun_uzi_akimbo.name=双持乌兹冲锋枪 +item.gun_am180.name=消音冲锋枪 +item.gun_autoshotgun.name=自劚霰匹枪 +item.gun_autoshotgun_sexy.name=Sexy +item.gun_carbine.name=卡実枪 item.gun_flechette.name=北莱圻突击步枪 item.gun_folly.name=Digamma原型"愚蠢" item.gun_glass_cannon.name=玻璃倧炮 @@ -2520,6 +3106,7 @@ item.gun_super_shotgun.name="超级"猎枪 item.gun_super_shotgun.desc=超级烂 item.gun_supershotgun.name=超级猎枪 item.gun_thompson.name=汀姆森冲锋枪 +item.gun_uac_pistol.name=UAC .45手枪 item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 鹿匹 item.gun_uzi.name=Uzi冲锋枪 @@ -2558,6 +3145,7 @@ item.heart_booster.name=心之增区噚 item.heart_container.name=心之容噚 item.heart_fab.name=心脏抗原结合噚 item.heart_piece.name=心之碎片 +item.heavy_component.name=重型%s组件 item.hev_battery.name=套装电池 item.hev_boots.name=HEV Mk.IV 靎子 item.hev_plate.name=HEV Mk.IV 胞甲 @@ -2572,6 +3160,9 @@ item.hull_big_titanium.name=倧型钛壳 item.hull_small_aluminium.name=小型铝壳 item.hull_small_aluminium.desc=可插入钻孔石墚䞭 item.hull_small_steel.name=小型钢壳 +item.icf_pellet.name=ICF燃料靶䞞 +item.icf_pellet_depleted.name=枯竭ICF燃料靶䞞 +item.icf_pellet_empty.name=空ICF燃料靶䞞 item.igniter.name=点火噚 item.igniter.desc=錠标右键点击原型$这是䞀䞪绿色金属手柄垊有$亮红色按钮和䞀䞪小盖子$圚底郚猩写N.E.刻着矎元。䞍管N.E.是谁他对绿色的色调埈有品味。 item.industrial_magnet.name=工䞚磁铁 @@ -2592,24 +3183,29 @@ item.ingot_am241.name=镅-241锭 item.ingot_am242.name=镅-242锭 item.ingot_americium_fuel.name=镅燃料锭 item.ingot_arsenic.name=砷锭 +item.ingot_arsenic_bronze.name=砷青铜锭 item.ingot_asbestos.name=石棉板 item.ingot_asbestos.desc=§o\“充满了生呜、自我怀疑和石棉。这是空气垊来的。\”§r item.ingot_au198.name=金-198锭 item.ingot_australium.name=奥斯锭 item.ingot_bakelite.name=电朚锭 item.ingot_beryllium.name=铍锭 +item.ingot_biorubber.name=乳胶锭 item.ingot_bismuth.name=铋锭 +item.ingot_bismuth_bronze.name=铋青铜锭 item.ingot_boron.name=硌锭 +item.ingot_bscco.name=BSCCO锭 item.ingot_c4.name=䞀块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 item.ingot_cdalloy.name=镉钢锭 +item.ingot_cft.name=晶化富勒烯 item.ingot_chainsteel.name=重铟钢 item.ingot_co60.name=钮-60锭 item.ingot_cobalt.name=钮锭 item.ingot_combine_steel.name=CMB钢锭 item.ingot_combine_steel.desc=*圚歀倄插入民事保技参考* -item.ingot_copper.name=工䞚级铜 +item.ingot_copper.name=工䞚级铜锭 item.ingot_daffergon.name=蟟倫莡锭 item.ingot_desh.name=Desh锭 item.ingot_dineutronium.name=双聚䞭子态玠锭 @@ -2656,7 +3252,7 @@ item.ingot_pu240.name=钚-240锭 item.ingot_pu241.name=钚-241锭 item.ingot_pvc.name=聚氯乙烯锭PVC item.ingot_ra226.name=镭-226锭 -item.ingot_red_copper.name=玫铜 +item.ingot_red_copper.name=玫铜锭 item.ingot_reiium.name=雷恩锭 item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 @@ -2666,6 +3262,7 @@ item.ingot_schrabidium_fuel.name=Sa326燃料锭 item.ingot_schraranium.name=䜎䞰床Sa326锭 item.ingot_schraranium.desc=圚Sa326嬗变噚䞭由铀制成 item.ingot_semtex.name=塞姆汀塑胶炞药块 +item.ingot_silicon.name=硅晶 item.ingot_smore.name=S'more 锭 item.ingot_solinium.name=Sa327锭 item.ingot_sr90.name=锶-90锭 @@ -2705,6 +3302,8 @@ item.insert_polonium.name=钋插板 item.insert_steel.name=重型钢插板 item.insert_xsapi.name=XSAPI插板 item.insert_yharonite.name=犜戎韙玠插板 +item.item_secret.canister.name=SB-26成分 +item.item_secret.controller.name=䞓甚控制单元 item.iv_blood.name=血袋 item.iv_empty.name=静脉蟓液袋 item.iv_xp.name=经验包 @@ -2725,6 +3324,9 @@ item.key_kit.name=钥匙仿制套件 item.key_red.name=红色钥匙 item.key_red.desc=探玢及䞀蟹。 item.key_red.desc.P11=§4e§r +item.key_red_cracked.name=砎碎的钥匙 +item.key_red_cracked.desc= +item.key_red.key_red_cracked.P11=§4§r item.kit_toolbox.name=工具箱 item.kit_toolbox_empty.name=空工具箱 item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶䜓基莚 @@ -2736,6 +3338,9 @@ item.laser_crystal_co2.name=CO2-Desh激光晶䜓 item.laser_crystal_digamma.name=Digamma迪䌜马激光晶䜓 item.laser_crystal_dnt.desc=双聚态䞭子-Spark莹米子超晶䜓 item.laser_crystal_dnt.name=Spark激光晶䜓 +item.launch_code.name=发射井发射代码 +item.launch_code_piece.name=发射井发射代码碎片 +item.launch_key.name=发射井发射钥匙 item.lead_gavel.name=铅槌 item.lemon.name="柠檬" item.letter.name=快捷邮件 @@ -2784,6 +3389,7 @@ item.meltdown_tool.name=蟟掛倫快速熔毁装眮 item.memespoon.name=§ee花园园䞁 item.memory.name=item.null.name item.mese_gavel.name=Mese槌 +item.mese_axe.name=Mese斧 item.mese_pickaxe.name=Mese镐 item.meteor_charm.name=陚石项铟 item.meteor_remote.name=陚石召唀噚 @@ -2802,7 +3408,7 @@ item.meteorite_sword_baleful.name=陚石剑(凶恶) item.mike_cooling_unit.name=氘冷华装眮 item.mike_core.name=铀涂层氘眐 item.mike_deut.name=氘眐 -item.mike_kit.name=垞青藀麊克 套件 +item.mike_kit.name=垞春藀麊克 套件 item.mirror_tool.name=定日镜调敎工具 item.mirror_tool.linked=讟眮对霐䜍眮! item.mirror_tool.desc=右键单击“倪阳胜锅炉”以记忆䜍眮 $再单击“定日镜”可将其蜬向倪阳胜锅炉 @@ -2816,7 +3422,9 @@ item.missile_carrier.name=HTR-01运蜜火箭 item.missile_cluster.name=集束富匹 item.missile_cluster_strong.name=区化型集束富匹 item.missile_custom.name=定制富匹 +item.missile_decoy.name=诱饵匹 item.missile_doomsday.name=末日富匹 +item.missile_doomsday_rusted.name=损坏的末日富匹 item.missile_drill.name=掩䜓裂解者 item.missile_emp.name=EMP富匹 item.missile_emp_strong.name=区化型EMP富匹 @@ -2854,6 +3462,7 @@ item.missile_skin_soviet_stank.desc=这䞪真的埈有60幎代的味道。 item.missile_soyuz.name=联盟-FG运蜜火箭 item.missile_soyuz_lander.name=联盟号蜚道舱 item.missile_soyuz_lander.desc=劣莚着陆噚 +item.missile_stealth.name=隐身富匹 item.missile_strong.name=区化型高爆富匹 item.missile_taint.name=污染富匹 item.missile_volcano.name=构造富匹 @@ -2970,7 +3579,7 @@ item.mp_thruster_20_solid.name=20号固䜓燃料掚进噚 item.mp_thruster_20_solid_multi.name=20号䞉十喷管固䜓燃料掚进噚 item.mp_thruster_20_solid_multier.name=20号四十䞃喷管固䜓燃料掚进噚 item.mp_warhead_10_buster.name=10号掩䜓砎坏匹倎 -item.mp_warhead_10_cloud.name=10号粉色云匹倎 +item.mp_warhead_10_cloud.name=10号粉雟匹倎 item.mp_warhead_10_he.name=10号HE匹倎 item.mp_warhead_10_incendiary.name=10号燃烧匹倎 item.mp_warhead_10_nuclear.name=10号埮型栞匹倎 @@ -2999,9 +3608,14 @@ item.multitool_silk.name=劚力拳套[粟准采集] item.multitool_sky.name=劚力拳套[划砎倩际] item.mysteryshovel.name=易碎锹 item.n2_charge.name=倧型炞药 -item.neutrino_lens.name=䞭子透镜 +item.neutrino_lens.name=䞭埮子透镜 item.neutron_reflector.name=䞭子反射板 +item.night_vision.name=倜视県镜 +item.night_vision.description.item=提䟛倜视功胜需芁党套电劚讟倇 +item.night_vision.description.in_armor=%s允讞倜视 item.niter.name=硝石粉 +item.nitra.name=Nitra +item.nitra_small.name=小撮Nitra item.no9.name=矿工倎盔 item.nossy_hat.name=华䞜的垜子 item.nothing.name=没有䞜西 @@ -3049,6 +3663,7 @@ item.nugget_mox_fuel.name=MOX燃料粒 item.nugget_mox_fuel.desc=摩西诎§l逃皎。§r item.nugget_neptunium.name=镎粒 item.nugget_neptunium_fuel.name=镎燃料粒 +item.nugget_niobium.name=铌粒 item.nugget_osmiridium.name=铱锇粒 item.nugget_pb209.name=铅-209粒 item.nugget_plutonium.name=钚粒 @@ -3060,9 +3675,10 @@ item.nugget_pu239.name=钚-239粒 item.nugget_pu240.name=钚-240粒 item.nugget_pu241.name=钚-241粒 item.nugget_ra226.name=镭-226粒 -item.nugget_reiium.name=魏䞹粒 +item.nugget_reiium.name=雷恩粒 item.nugget_schrabidium.name=Sa326粒 item.nugget_schrabidium_fuel.name=Sa326燃料粒 +item.nugget_silicon.name=硅粒 item.nugget_solinium.name=Sa327粒 item.nugget_sr90.name=锶-90粒 item.nugget_tantalium.name=钜粒 @@ -3101,12 +3717,16 @@ item.ore.asbestos=石棉 item.ore.borax=硌砂 item.ore.chlorocalcite=氯方解石 item.ore.copper=铜 +item.ore.fluorite=氟石 item.ore.gold=金 +item.ore.hematite=赀铁矿 item.ore.iron=铁 +item.ore.malachite=孔雀石 +item.ore.neodymium=钕 item.ore.niobium=铌 item.ore.titanium=钛 item.ore.tungsten=钹 -item.ore.thorium=钍 +item.ore.thorium232=钍 item.ore.uranium=铀 item.ore_bedrock.name=基岩%s矿 item.ore_byproduct.b_aluminium.name=铝晶䜓碎片 @@ -3126,6 +3746,7 @@ item.ore_byproduct.b_uranium.name=铀晶䜓碎片 item.ore_centrifuged.name=犻心%s矿 item.ore_cleaned.name=枅掁%s矿 item.ore_deepcleaned.name=深枅掁%s矿 +item.ore_density_scanner.name=基岩矿石䞰床扫描仪 item.ore_enriched.name=富集%s矿 item.ore_nitrated.name=硝化%s矿 item.ore_nitrocrystalline.name=亚硝基结晶%s矿 @@ -3146,10 +3767,20 @@ item.padlock_unbreakable.name=牢䞍可砎的挂锁 item.pads_rubber.name=橡胶垫 item.pads_slime.name=粘液垫 item.pads_static.name=静电垫 +item.page_of_.page1.name=乊页之䞀 +item.page_of_.page2.name=乊页之二 +item.page_of_.page3.name=乊页之䞉 +item.page_of_.page4.name=乊页之四 +item.page_of_.page5.name=乊页之五 +item.page_of_.page6.name=乊页之六 +item.page_of_.page7.name=乊页之䞃 +item.page_of_.page8.name=乊页之八 item.pancake.name=甚废金属、螺栓和宝石粉做成的薄饌 item.part_beryllium.name=铍粉盒 item.part_carbon.name=碳粉盒 item.part_copper.name=铜粉盒 +item.part_generic.hde.name=重型元件 +item.part_generic.lde.name=䜎密床元件 item.part_generic.piston_electric.name=电劚掻塞 item.part_generic.piston_hydraulic.name=液压掻塞 item.part_generic.piston_pneumatic.name=气劚掻塞 @@ -3167,9 +3798,9 @@ item.particle_higgs.name=垌栌斯玻色子胶囊 item.particle_hydrogen.name=氢犻子胶囊 item.particle_lead.name=铅犻子胶囊 item.particle_lutece.name=Lutece镥准粒子胶囊 -item.particle_muon.name=Ό介子胶囊 +item.particle_muon.name=Ό子胶囊 item.particle_sparkticle.name=Spark粒子胶囊 -item.particle_strange.name=奇倞克胶囊 +item.particle_strange.name=奇匂倞克胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 item.parts_legendary.name=䌠奇零件 item.peas.name=豌豆 @@ -3198,8 +3829,8 @@ item.pellet_meteorite.name=陚石匹䞞 item.pellet_neptunium.name=镎Watz靶䞞 item.pellet_rtg.name=钚238攟射性同䜍玠燃料靶䞞 item.pellet_rtg.desc=无限胜量的RTG靶䞞差䞍倚 -item.pellet_rtg_actinium.name=锕攟射性同䜍玠燃料靶䞞 -item.pellet_rtg_actinium.desc= +item.pellet_rtg_actinium.name=锕-227攟射性同䜍玠燃料靶䞞 +item.pellet_rtg_actinium.desc=充满了高胜电子的蓝色光蟉 item.pellet_rtg_americium.name=镅-241攟射性同䜍玠燃料靶䞞 item.pellet_rtg_americium.desc=皀有可靠奜的老镅 item.pellet_rtg_berkelium.name=锫攟射性同䜍玠燃料靶䞞 @@ -3219,7 +3850,7 @@ item.pellet_rtg_gold.desc=由皀有的、高床䞍皳定的金同䜍玠制成。 item.pellet_rtg_polonium.name=钋210攟射性同䜍玠燃料靶䞞 item.pellet_rtg_polonium.desc=曎倚粉末状RTG靶䞞由最奜的钋制成 item.pellet_rtg_strontium.name=锶-90攟射性同䜍玠燃料靶䞞 -item.pellet_rtg_strontium.desc= +item.pellet_rtg_strontium.desc=被加利犏尌亚掲所熟知... item.pellet_rtg_radium.name=镭-226攟射性同䜍玠燃料靶䞞 item.pellet_rtg_radium.desc=䌟倧的启劚靶䞞来自党倩然镭 item.pellet_rtg_weak.name=莫铀攟射性同䜍玠燃料靶䞞 @@ -3246,9 +3877,13 @@ item.pill_herbal.name=草药膏 item.pill_herbal.desc=有效治疗肺郚疟病和蜻床蟐射䞭毒$有副䜜甚 item.pill_red.name=红色药䞞 item.pin.name=发倹 -item.pin.desc=“*未修改*撬匀标准锁的成功率纊䞺10%。 +item.pin.desc=撬匀标准锁的成功率纊䞺10%。 +item.pipentm.name=%s管 item.pipes_steel.name=钢管 item.pipes_steel.desc=䞺了避免合成冲突,所以造价劂歀高昂 +item.pipette.name=移液管 +item.pipette_boron.name=硌玻璃移液管 +item.pipette_laboratory.name=移液噚 item.piston_selenium.name=星型发劚机掻塞 item.piston_set_desh.name=Desh掻塞组 item.piston_set_dura.name=高速钢掻塞组 @@ -3259,6 +3894,7 @@ item.plan_c.desc=臎死 item.plant_item.mustardwillow.name=芥子柳叶 item.plant_item.rope.name=麻绳 item.plant_item.tobacco.name=烟叶 +item.plastic_bag.name=塑料袋 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 item.plate_armor_ajr.name=铁皮装甲板 @@ -3275,6 +3911,7 @@ item.plate_copper.name=铜板 item.plate_dalekanium.name=愀怒的金属 item.plate_desh.name=Desh倍合板 item.plate_dineutronium.name=双聚䞭子态玠倍合板 +item.plate_dura_steel.name=高速钢板 item.plate_euphemium.name=Ep倍合板 item.plate_fuel_mox.name=MOX 板状燃料 item.plate_fuel_pu238be.name=钚238-铍 板状燃料 @@ -3294,13 +3931,21 @@ item.plate_saturnite.name=土星板 item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 +item.plate_welded.name=焊接%s板 item.polaroid.name=偏光片 +item.pollution_detector.name=污染探测噚 item.powder_actinium.name=锕粉 item.powder_actinium_tiny.name=小撮锕粉 item.powder_advanced_alloy.name=高级合金粉 item.powder_aluminium.name=铝粉 item.powder_asbestos.name=石棉粉 -item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_asbestos.desc=§o\"暎 风 吞 入-- 倪 t m 驙 了\"§r +item.powder_ash.coal.name=煀灰 +item.powder_ash.fly.name=飞尘 +item.powder_ash.fullerene.name=富勒烯 +item.powder_ash.misc.name=灰尘 +item.powder_ash.soot.name=细烟灰 +item.powder_ash.wood.name=朚灰 item.powder_astatine.name=砹粉 item.powder_at209.name=ç ¹-209粉 item.powder_au198.name=金-198粉 @@ -3316,6 +3961,7 @@ item.powder_bromine.name=溎粉 item.powder_cadmium.name=镉粉 item.powder_caesium.name=铯粉 item.powder_calcium.name=钙粉 +item.powder_cement.name=æ°Žæ³¥ item.powder_cerium.name=铈粉 item.powder_cerium_tiny.name=小撮铈粉 item.powder_chlorocalcite.name=氯方解石 @@ -3343,7 +3989,7 @@ item.powder_emerald.name=绿宝石粉 item.powder_euphemium.name=Ep粉 item.powder_euphemium.desc=粉红色$尝起来像草莓。 item.powder_fertilizer.name=工䞚肥料 -item.powder_fire.name=火焰粉 +item.powder_fire.name=红磷粉 item.powder_fire.desc=甚于倚甚途炞匹燃烧匹埈有趣 item.powder_flux.name=助熔剂 item.powder_gold.name=金粉 @@ -3358,12 +4004,14 @@ item.powder_lanthanium_tiny.name=小撮镧粉 item.powder_lapis.name=青金石粉 item.powder_lead.name=铅粉 item.powder_lignite.name=耐煀粉 +item.powder_limestone.name=石灰石粉 item.powder_lithium.name=锂粉 item.powder_lithium_tiny.name=小撮锂粉 item.powder_magic.name=粉碎的魔法 item.powder_magnetized_tungsten.name=磁化钚粉 item.powder_meteorite.name=陚石粉 item.powder_meteorite_tiny.name=小撮陚石粉 +item.powder_molysite.name=氯化铁 item.powder_neodymium.name=钕粉 item.powder_neodymium_tiny.name=小撮钕粉 item.powder_neptunium.name=镎粉 @@ -3386,6 +4034,7 @@ item.powder_sawdust.name=锯末 item.powder_schrabidate.name=Sa酞铁粉 item.powder_schrabidium.name=Sa326粉 item.powder_semtex_mix.name=塞姆汀塑胶炞药混合物 +item.powder_sodium.name=钠 item.powder_spark_mix.name=Spark闪闪奥术混合物 item.powder_sr90.name=锶-90粉 item.powder_sr90_tiny.name=小撮锶-90粉末 @@ -3419,7 +4068,53 @@ item.primer_buckshot.name=鹿匹底火[x12] item.protection_charm.name=守技项铟 item.prototype_kit.name=原型 套件 item.pudding.name=垃䞁 +item.pwr_fuel.bfb_am_mix.name=燃料级镅压氎堆BFB燃料棒 +item.pwr_fuel.bfb_pu241.name=钚-241压氎堆BFB棒 +item.pwr_fuel.hea242.name=HEA-242 高浓猩床镅-242压氎堆燃料棒 +item.pwr_fuel.hen237.name=HEN-237 高浓猩床镎-237压氎堆燃料棒 +item.pwr_fuel.hep239.name=HEP-239 高浓猩床钚-239压氎堆燃料棒 +item.pwr_fuel.hep241.name=HEP-241 高浓猩床钚-241压氎堆燃料棒 +item.pwr_fuel.hes326.name=HES-326 高浓猩床Sa326压氎堆燃料棒 +item.pwr_fuel.hes327.name=HES-327 高浓猩床Sa327压氎堆燃料棒 +item.pwr_fuel.heu233.name=HEU-233 高浓猩床铀-233压氎堆燃料棒 +item.pwr_fuel.heu235.name=HEU-235 高浓猩床铀-235压氎堆燃料棒 +item.pwr_fuel.mea.name=MEA 䞭浓猩床镅压氎堆燃料棒 +item.pwr_fuel.men.name=MEN 䞭浓猩床镎压氎堆燃料棒 +item.pwr_fuel.mep.name=MEP 䞭浓猩床钚压氎堆燃料棒 +item.pwr_fuel.meu.name=MEU 䞭浓猩床铀压氎堆燃料棒 +item.pwr_fuel.mox.name=MOX 压氎堆燃料棒 +item.pwr_fuel_depleted.bfb_am_mix.name=枯竭燃料级镅压氎堆BFB燃料棒 +item.pwr_fuel_depleted.bfb_pu241.name=枯竭钚-241压氎堆BFB棒 +item.pwr_fuel_depleted.hea242.name=枯竭 HEA-242 高浓猩床镅-242压氎堆燃料棒 +item.pwr_fuel_depleted.hen237.name=枯竭 HEN-237 高浓猩床镎-237压氎堆燃料棒 +item.pwr_fuel_depleted.hep239.name=枯竭 HEP-239 高浓猩床钚-239压氎堆燃料棒 +item.pwr_fuel_depleted.hep241.name=枯竭 HEP-241 高浓猩床钚-241压氎堆燃料棒 +item.pwr_fuel_depleted.hes326.name=枯竭 HES-326 高浓猩床Sa326压氎堆燃料棒 +item.pwr_fuel_depleted.hes327.name=枯竭 HES-327 高浓猩床Sa327压氎堆燃料棒 +item.pwr_fuel_depleted.heu233.name=枯竭 HEU-233 高浓猩床铀-233压氎堆燃料棒 +item.pwr_fuel_depleted.heu235.name=枯竭 HEU-235 高浓猩床铀-235压氎堆燃料棒 +item.pwr_fuel_depleted.mea.name=枯竭 MEA 䞭浓猩床镅压氎堆燃料棒 +item.pwr_fuel_depleted.men.name=枯竭 MEN 䞭浓猩床镎压氎堆燃料棒 +item.pwr_fuel_depleted.mep.name=枯竭 MEP 䞭浓猩床钚压氎堆燃料棒 +item.pwr_fuel_depleted.meu.name=枯竭 MEU 䞭浓猩床铀压氎堆燃料棒 +item.pwr_fuel_depleted.mox.name=枯竭 MOX 压氎堆燃料棒 +item.pwr_fuel_hot.bfb_am_mix.name=高枩 燃料级镅压氎堆BFB燃料棒 +item.pwr_fuel_hot.bfb_pu241.name=高枩 钚-241压氎堆BFB棒 +item.pwr_fuel_hot.hea242.name=高枩 HEA-242 高浓猩床镅-242压氎堆燃料棒 +item.pwr_fuel_hot.hen237.name=高枩 HEN-237 高浓猩床镎-237压氎堆燃料棒 +item.pwr_fuel_hot.hep239.name=高枩 HEP-239 高浓猩床钚-239压氎堆燃料棒 +item.pwr_fuel_hot.hep241.name=高枩 HEP-241 高浓猩床钚-241压氎堆燃料棒 +item.pwr_fuel_hot.hes326.name=高枩 HES-326 高浓猩床Sa326压氎堆燃料棒 +item.pwr_fuel_hot.hes327.name=高枩 HES-327 高浓猩床Sa327压氎堆燃料棒 +item.pwr_fuel_hot.heu233.name=高枩 HEU-233 高浓猩床铀-233压氎堆燃料棒 +item.pwr_fuel_hot.heu235.name=高枩 HEU-235 高浓猩床铀-235压氎堆燃料棒 +item.pwr_fuel_hot.mea.name=高枩 MEA 䞭浓猩床镅压氎堆燃料棒 +item.pwr_fuel_hot.men.name=高枩 MEN 䞭浓猩床镎压氎堆燃料棒 +item.pwr_fuel_hot.mep.name=高枩 MEP 䞭浓猩床钚压氎堆燃料棒 +item.pwr_fuel_hot.meu.name=高枩 MEU 䞭浓猩床铀压氎堆燃料棒 +item.pwr_fuel_hot.mox.name=高枩 MOX压氎堆燃料棒 item.quartz_plutonium.name=深成石英 +item.radar_linker.name=雷蟟连接噚 item.radaway.name=消蟐宁 item.radaway_flush.name=超级消蟐宁 item.radaway_strong.name=区效消蟐宁 @@ -3455,7 +4150,7 @@ item.rbmk_fuel_mox.name=MOX RBMK反应堆燃料棒 item.rbmk_fuel_po210be.name=钋210-铍 RBMK反应堆䞭子源 item.rbmk_fuel_pu238be.name=钚238-铍 RBMK反应堆䞭子源 item.rbmk_fuel_ra226be.name=镭226-铍 RBMK反应堆䞭子源 -item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆䞭浓猩床铀-235富向钍燃料棒 +item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆䞭浓猩床铀-233富向钍燃料棒 item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓猩铀燃料棒 item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 @@ -3536,7 +4231,7 @@ item.rod.lead.name=铅棒 item.rod.uranium.name=铀棒 item.rod_dual_empty.name=空双联燃料棒 item.rod_dual.lithium.name=双联锂棒 -item.rod_dual.tritium.name=氚双棒 +item.rod_dual.tritium.name=双联氚棒 item.rod_dual.co.name=双联钎棒 item.rod_dual.co60.name=双联钎-60棒 item.rod_dual.ra226.name=双联镭-226棒 @@ -3712,6 +4407,7 @@ item.sat_base.name=卫星基座 item.sat_chip.name=卫星ID芯片 item.sat_coord.name=卫星指瀺噚 item.sat_designator.name=卫星激光指瀺噚 +item.sat_relay.name=卫星雷蟟䞭继噚 item.sat_foeq.name=实验型栞胜PEAF-Mk.I FOEQ Duna探测噚 item.sat_gerald.name=Gerald建筑机噚人 item.sat_head_laser.name=死光发射噚 @@ -3759,6 +4455,7 @@ item.serum.name=血枅 item.servo_set.name=䌺服装眮 item.servo_set_desh.name=Desh䌺服装眮 item.shackles.name=枷锁 +item.shellntm.name=%s壳 item.shimmer_axe.name=闪耀斧 item.shimmer_axe_head.name=重型斧倎 item.shimmer_handle.name=区化聚合物手柄 @@ -3771,7 +4468,11 @@ item.singularity_spark.name=Spark奇点 item.singularity_super_heated.name=超热共振奇点 item.siox.name=SiOX抗癌药物 item.siox.desc=䜿甚石棉的力量逆蜬闎皮瘀 +item.siphon.name=虹吞管 item.siren_track.name=譊报声蜚 +item.sliding_blast_door_skin.0.name=滑劚防爆闚 皮肀默讀 +item.sliding_blast_door_skin.1.name=滑劚防爆闚 皮肀变型1 +item.sliding_blast_door_skin.2.name=滑劚防爆闚 皮肀变型2 item.smashing_hammer.name=粉碎销 item.solid_fuel.name=固䜓燃料 item.solid_fuel_bf.name=固䜓燃料野火 @@ -3792,12 +4493,24 @@ item.spider_milk.name=䞀瓶蜘蛛奶 item.spongebob_macaroni.name=海绵宝宝通心粉 item.stamp_357.name=.357马栌南锻暡 item.stamp_44.name=.44马栌南锻暡 -item.stamp_50.name=倧口埄锻暡 -item.stamp_9.name=小口埄锻暡 +item.stamp_50.name=倧口埄匹壳锻暡 +item.stamp_9.name=小口埄匹壳锻暡 +item.stamp_book.printing1.name=乊页锻暡之䞀 +item.stamp_book.printing2.name=乊页锻暡之二 +item.stamp_book.printing3.name=乊页锻暡之䞉 +item.stamp_book.printing4.name=乊页锻暡之四 +item.stamp_book.printing5.name=乊页锻暡之五 +item.stamp_book.printing6.name=乊页锻暡之六 +item.stamp_book.printing7.name=乊页锻暡之䞃 +item.stamp_book.printing8.name=乊页锻暡之八 item.stamp_desh_circuit.name=Desh电路板锻暡 item.stamp_desh_flat.name=Desh锻暡 item.stamp_desh_plate.name=Desh板锻暡 item.stamp_desh_wire.name=Desh电线锻暡 +item.stamp_desh_357.name=.357马栌南锻暡 (Desh) +item.stamp_desh_44.name=.44马栌南锻暡 (Desh) +item.stamp_desh_50.name=倧口埄匹壳锻暡Desh +item.stamp_desh_9.name=小口埄匹壳锻暡Desh item.stamp_iron_circuit.name=铁莚电路板锻暡 item.stamp_iron_flat.name=铁莚锻暡 item.stamp_iron_plate.name=铁莚板锻暡 @@ -3908,6 +4621,10 @@ item.titanium_shovel.name=钛锹 item.titanium_sword.name=钛剑 item.toothpicks.name=牙筟 item.train.cargo_tram.name=平板蜜莧电蜊 +item.trenchmaster_boots.name=战壕王者的靎子 +item.trenchmaster_helmet.name=战壕王者的倎盔 +item.trenchmaster_legs.name=战壕王者的技腿 +item.trenchmaster_plate.name=战壕王者的胞甲 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饌 item.tritium_deuterium_cake.desc=䞍是真正的蛋糕而是埈棒的$聚变燃料 @@ -3946,6 +4663,7 @@ item.upgrade_fortune_2.name=二级玫色机噚升级 item.upgrade_fortune_3.name=䞉级玫色机噚升级 item.upgrade_gc_speed.name=气䜓犻心机超频升级 item.upgrade_health.name=粉色力场发生噚升级 +item.upgrade_muffler.name=消音噚 item.upgrade_nullifier.name=采矿激光升级-自劚销毁 item.upgrade_overdrive_1.name=䞀级超速䌠劚机噚升级 item.upgrade_overdrive_2.name=二级超速䌠劚机噚升级 @@ -3960,15 +4678,16 @@ item.upgrade_smelter.name=采矿激光升级-自劚熔炌 item.upgrade_speed_1.name=䞀级红色机噚升级 item.upgrade_speed_2.name=二级红色机噚升级 item.upgrade_speed_3.name=䞉级红色机噚升级 -item.upgrade_stack_1.name=䞀级堆栈匹出升级 -item.upgrade_stack_2.name=二级堆栈匹出升级 -item.upgrade_stack_3.name=䞉级堆栈匹出升级 +item.upgrade_stack_1.name=䞀级堆叠匹出升级 +item.upgrade_stack_2.name=二级堆叠匹出升级 +item.upgrade_stack_3.name=䞉级堆叠匹出升级 item.upgrade_template.name=机噚升级暡板 -item.v1.name=V1 item.volcanic_pickaxe.name=熔岩镐 +item.volcanic_axe.name=熔岩斧 item.wand_d.name=调试魔杖 item.wand_k.name=建筑魔杖 item.wand_s.name=结构魔杖 +item.structure_custommachine.name=自定义机噚结构蟓出杖 item.warhead_buster_large.name=倧型掩䜓砎坏匹倎 item.warhead_buster_medium.name=䞭型掩䜓砎坏匹倎 item.warhead_buster_small.name=小型掩䜓砎坏匹倎 @@ -3982,7 +4701,7 @@ item.warhead_incendiary_large.name=倧型燃烧匹倎 item.warhead_incendiary_medium.name=䞭型燃烧匹倎 item.warhead_incendiary_small.name=小型燃烧匹倎 item.warhead_mirv.name=热栞匹倎 -item.warhead_mirvlet.name=MIRV +item.warhead_mirvlet.name=MIRV匹倎 item.warhead_nuclear.name=栞匹倎 item.warhead_thermo_endo.name=吞热匹倎 item.warhead_thermo_exo.name=攟热匹倎 @@ -4013,8 +4732,8 @@ item.watz_pellet.les.name=LES Watz靶䞞 item.watz_pellet.mes.name=MES Watz靶䞞 item.watz_pellet.mep.name=MEP Watz靶䞞 item.watz_pellet.meu.name=MEU Watz靶䞞 -item.watz_pellet.nqd.name=富集硅岩金属 Watz靶䞞 -item.watz_pellet.nqr.name=硅岩金属 Watz靶䞞 +item.watz_pellet.nqd.name=浓猩硅岩金属 Watz靶䞞 +item.watz_pellet.nqr.name=硅岩金属化合物 Watz靶䞞 item.watz_pellet.hen.name=HEN Watz靶䞞 item.watz_pellet.schrabidium.name=Sa326 Watz靶䞞 item.watz_pellet_depleted.boron.name=硌吞收靶䞞枯竭 @@ -4025,8 +4744,8 @@ item.watz_pellet_depleted.les.name=LES Watz靶䞞枯竭 item.watz_pellet_depleted.mes.name=MES Watz靶䞞枯竭 item.watz_pellet_depleted.mep.name=MEP Watz靶䞞枯竭 item.watz_pellet_depleted.meu.name=MEU Watz靶䞞枯竭 -item.watz_pellet_depleted.nqd.name=富集硅岩金属 Watz靶䞞枯竭 -item.watz_pellet_depleted.nqr.name=硅岩金属 Watz靶䞞枯竭 +item.watz_pellet_depleted.nqd.name=浓猩硅岩金属 Watz靶䞞枯竭 +item.watz_pellet_depleted.nqr.name=硅岩金属化合物 Watz靶䞞枯竭 item.watz_pellet_depleted.hen.name=HEN Watz靶䞞枯竭 item.watz_pellet_depleted.schrabidium.name=Sa326 Watz靶䞞枯竭 item.weapon_bat.name=板球棒 @@ -4043,6 +4762,8 @@ item.wings_murk.name=暗黑之翌 item.wire_advanced_alloy.name=超富䜓 item.wire_aluminium.name=铝线 item.wire_copper.name=铜线 +item.wire_dense.name=臎密%s线 +item.wire_fine.name=%s线 item.wire_gold.name=金线 item.wire_magnetized_tungsten.name=4000K高枩超富䜓 item.wire_red_copper.name=玫铜线 @@ -4056,6 +4777,38 @@ item.wrench_flipped.name=刺刀扳手 item.xanax.name=NAXA 抗迪䌜马药物 item.xanax.desc=移陀500mDRX迪䌜马蟐射 item.zirconium_legs.name=锆莚技腿 +item.cart.powder.name=装满火药的矿蜊 +item.cart.semtex.name=装满塞姆汀炞药的矿蜊 +item.casing_buckshot.name=霰匹匹壳 +item.casing.small.name=小口埄铜匹壳 +item.casing.small_steel.name=小口埄钢匹壳 +item.casing.large.name=倧口埄铜匹壳 +item.casing.large_steel.name=倧口埄钢匹壳 +item.casing.shotshell.name=黑火药霰匹匹壳 +item.casing.buckshot.name=塑料霰匹匹壳 +item.casing.buckshot_advanced.name=高级霰匹匹壳 +item.dnt_sword.name=DNT剑 +item.ingot_gunmetal.name=炮铜锭 +item.ingot_raw.name=%s锭 +item.ingot_weaponsteel.name=歊噚级钢锭 +item.item_secret.selenium_steel.name=硒钢 +item.part_barrel_heavy.name=重型%s枪管 +item.part_barrel_light.name=蜻型%s枪管 +item.part_grip.name=%s握把 +item.part_mechanism.name=%s机构 +item.part_receiver_heavy.name=重型%s机匣 +item.part_receiver_light.name=蜻型%s机匣 +item.part_stock.name=%s枪托 +item.plate_gunmetal.name炮铜板 +item.plate_weaponsteel.name=歊噚级钢板 +tile.machine_pyrooven.name=热解炉 +item.ammo_standard.g10.name=十号鹿匹 +item.ammo_standard.g10_du.name=十号莫铀鹿匹 +item.ammo_standard.g10_shrapnel.name=十号霰匹(易跳匹) +item.clay_tablet.name=泥板 +item.gun_double_barrel.name=旧日经兞 +item.gun_heavy_revolver_protege.name=闚埒 + itemGroup.tabBlocks=HBM 矿石和方块 itemGroup.tabConsumable=HBM 食物和装倇 itemGroup.tabControl=HBM 机噚项目和燃料 @@ -4064,8 +4817,9 @@ itemGroup.tabMissile=HBM 富匹和卫星 itemGroup.tabNuke=HBM 炞匹 itemGroup.tabParts=HBM 资源和零件 itemGroup.tabTemplate=HBM 暡板 -itemGroup.tabTest=HBM的栞科技mod测试项[S166、Bismarck、nukesteve联合汉化] +itemGroup.tabTest=HBM的栞科技mod测试项[S166、Bismarck、Nukesteve、牛牛联合汉化] itemGroup.tabWeapon=HBM 歊噚和炮塔 + potion.hbm_bang=! ! ! potion.hbm_death=重床突变 potion.hbm_lead=铅䞭毒 @@ -4077,11 +4831,31 @@ potion.hbm_radiation=蟐射 potion.hbm_radx=抗蟐射 potion.hbm_stability=皳定 potion.hbm_taint=污染 -potion.hbm_telekinesis=! ! ! +potion.hbm_telekinesis=隔地促劚 + +radar.clearMap=枅空地囟 radar.detectMissiles=探测富匹 radar.detectPlayers=探测玩家 +radar.detectShells=探测炮匹 radar.redMode=红石控制暡匏$匀启: 基于富匹距犻蟓出红石信号$关闭: 基于富匹级别蟓出红石信号 +radar.showMap=星瀺地囟 radar.smartMode=智胜暡匏$有红石信号时応略䞊升段的富匹 +radar.toggleGui=切换视囟 + +radar.target.abm=反匹道富匹 +radar.target.custom10=10号定制富匹 +radar.target.custom1015=10/15号定制富匹 +radar.target.custom15=15号定制富匹 +radar.target.custom1520=15/20号定制富匹 +radar.target.custom20=20号定制富匹 +radar.target.doomsday=末日富匹 +radar.target.shuttle=䞇金眗実航倩飞机 +radar.target.tier0=0级富匹 +radar.target.tier1=1级富匹 +radar.target.tier2=2级富匹 +radar.target.tier3=3级富匹 +radar.target.tier4=4级富匹 + rbmk.heat=柱䜓枩床: %s rbmk.boiler.water=䟛氎速率: %s / %s rbmk.boiler.steam=蒞汜产生速率: %s / %s @@ -4109,23 +4883,40 @@ rbmk.screen.depletion=消耗: %s rbmk.screen.rod=控制%s rbmk.screen.temp=枩床%s rbmk.screen.xenon=氙%s -shape.billet=钢坯 -shape.blade=刀身 -shape.blades=切碎机刀片 + +shape.billet=坯料 +shape.blade=扇片 +shape.blades=粉碎机刀片 shape.block=块 shape.dust=粉末 -shape.dusttiny=小搓粉末 +shape.dusttiny=小撮粉末 shape.hull_big=倧型倖壳 shape.hull_small=小型倖壳 shape.ingot=锭 shape.nugget=粒 shape.quantum=量子 shape.quart=四分之䞀块 -shape.plate=板材 +shape.ntmpipe=管 +shape.plate=板 shape.plateTriple=铞造板 -shape.stamp=锻压暡具 -shape.wire=线材 +shape.shell=倖壳 +shape.stamp=锻暡 +shape.wireFine=线 +shape.wireDense=臎密线 +shape.wiresDense=臎密线 +shape.barrelHeavy=重型枪管 +shape.barrelLight=蜻型枪管 +shape.grip=握把 +shape.gunMechanism=机构 +shape.receiverHeavy=重型机匣 +shape.receiverLight=蜻型机匣 +shape.stock=枪托 +shape.c9=小口埄匹壳 +shape.c50=倧口埄匹壳 + + soundCategory.ntmMachines=NTM机噚 + tile.absorber.name=蟐射吞收噚 tile.absorber_green.name=高级蟐射吞收噚 tile.absorber_pink.name=粟英蟐射吞收噚 @@ -4135,7 +4926,10 @@ tile.ams_base.name=AMS基座 [匀发䞭] tile.ams_emitter.name=AMS发射极 [匀发䞭] tile.ams_limiter.name=AMS皳胜噚 [匀发䞭] tile.ancient_scrap.name=叀代废金属 +tile.anvil_arsenic_bronze.name=砷青铜砧 tile.anvil_bismuth.name=铋砧 +tile.anvil_bismuth_bronze.name=铋青铜砧 +tile.anvil_desh.name=Deshç § tile.anvil_dnt.name=双聚䞭子态玠砧 tile.anvil_ferrouranium.name=铀铁合金砧 tile.anvil_iron.name=铁砧 @@ -4143,11 +4937,13 @@ tile.anvil_lead.name=铅砧 tile.anvil_meteorite.name=陚石砧 tile.anvil_murky.name=暗黑砧 tile.anvil_osmiridium.name=铱锇合金砧 -tile.anvil_schrabidate.name=Sa-铁合金砧 +tile.anvil_saturnite.name=土星砧 +tile.anvil_schrabidate.name=Sa酾铁砧 tile.anvil_starmetal.name=星蟉金属砧 tile.anvil_steel.name=钢砧 tile.ash_digamma.name=灰烬 tile.asphalt.name=沥青 +tile.asphalt_stairs.name=沥青楌梯 tile.asphalt_light.name=发光沥青 tile.barbed_wire.name=垊刺铁䞝眑 tile.barbed_wire_acid.name=腐蚀铁䞝眑 @@ -4163,13 +4959,9 @@ tile.barrel_steel.name=钢桶 tile.barrel_tcalloy.name=锝-钢合金桶 tile.barricade.name=沙袋 tile.basalt.name=玄歊岩 -tile.basalt_asbestos.name=富含石棉的玄歊岩 tile.basalt_brick.name=玄歊岩砖 -tile.basalt_fluorite.name=富含氟石的玄歊岩 -tile.basalt_gem.name=富含宝石的玄歊岩 tile.basalt_polished.name=抛光玄歊岩 tile.basalt_smooth.name=平滑玄歊岩 -tile.basalt_sulfur.name=富含硫的玄歊岩 tile.basalt_tiles.name=玄歊岩砖 tile.blast_door.name=防爆闞闚 tile.block_actinium.name=锕块 @@ -4196,7 +4988,7 @@ tile.block_cobalt.name=钎块 tile.block_coke.coal.name=煀焊炭块 tile.block_coke.lignite.name=耐煀焊炭块 tile.block_coke.petroleum.name=石油焊炭块 -tile.block_coltan.name=钜块 +tile.block_coltan.name=钶钜铁矿块 tile.block_combine_steel.name=CMB钢块 tile.block_copper.name=铜块 tile.block_corium.name=熔融堆芯冷凝物 @@ -4293,16 +5085,16 @@ tile.boxcar.name=蜊厢 tile.brick_asbestos.name=石棉砖块 tile.brick_asbestos_stairs.name=石棉砖楌梯 tile.brick_compound.name=倍合眑栌砖块 -tile.brick_compound_stairs.name=倍合眑栌楌梯 +tile.brick_compound_stairs.name=倍合眑栌砖楌梯 tile.brick_concrete.name=混凝土砖块 tile.brick_concrete_stairs.name=混凝土砖楌梯 tile.brick_concrete_broken.name=砎碎混凝土砖块 -tile.brick_concrete_broken_stairs.name=砎碎的混凝土砖楌梯 +tile.brick_concrete_broken_stairs.name=砎碎混凝土砖楌梯 tile.brick_concrete_cracked.name=匀裂混凝土砖块 tile.brick_concrete_cracked_stairs.name=匀裂混凝土砖楌梯 tile.brick_concrete_marked.name=标记混凝土砖 tile.brick_concrete_mossy.name=苔混凝土砖块 -tile.brick_concrete_mossy_stairs.name=苔藓混凝土砖楌梯 +tile.brick_concrete_mossy_stairs.name=苔混凝土砖楌梯 tile.brick_ducrete.name=高密床莫铀混凝土砖块 tile.brick_ducrete_stairs.name=高密床莫铀混凝土砖楌梯 tile.brick_dungeon.name=硒铜砖 @@ -4324,19 +5116,28 @@ tile.brick_light.name=蜻莚砖块 tile.brick_light_stairs.name=蜻莚砖楌梯 tile.brick_obsidian.name=黑曜石砖块 tile.brick_obsidian_stairs.name=黑曜石砖楌梯 -tile.brick_slab.brick_asbestos.name=石棉砖板 -tile.brick_slab.brick_compound.name=倍合眑栌板 -tile.brick_slab.brick_fire.name=耐火砖板 -tile.brick_slab.brick_light.name=蜻莚砖板 -tile.brick_slab.brick_obsidian.name=黑曜石砖板 -tile.brick_slab.reinforced_brick.name=钢筋石板 -tile.brick_slab.reinforced_stone.name=密实石板 +tile.brick_red.name=红房闎砖块 +tile.brick_slab.brick_asbestos.name=石棉砖台阶 +tile.brick_slab.brick_compound.name=倍合眑栌砖台阶 +tile.brick_slab.brick_fire.name=耐火砖台阶 +tile.brick_slab.brick_light.name=蜻莚砖台阶 +tile.brick_slab.brick_obsidian.name=黑曜石砖台阶 +tile.brick_slab.reinforced_brick.name=区化石倎台阶 +tile.brick_slab.reinforced_stone.name=臎密石倎台阶 tile.broadcaster_pc.name=腐莥广播 tile.burning_earth.name=燃烧草地 tile.c4.name=C-4 tile.cable_detector.name=红石电源匀关 tile.cable_diode.name=玫铜二极管 tile.cable_switch.name=电源匀关 +tile.capacitor_bus.name=电容总线 +tile.capacitor_bus.desc=电容噚的蟓出方块$可以连成䞀条盎线 +tile.capacitor_copper.name=铜电容 +tile.capacitor_gold.name=金电容 +tile.capacitor_niobium.name=铌电容 +tile.capacitor_schrabidate.name=Sa酞铁电容 +tile.capacitor_tantalium.name=钜电容 +tile.capacitor.desc=蟓入顶郚$蟓出底郚通过电容总线 tile.charge_c4.name=炞药包 tile.charge_dynamite.name=定时炞匹 tile.charge_miner.name=定时采矿炞药 @@ -4344,6 +5145,10 @@ tile.charge_semtex.name=塞姆汀采矿炞药 tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=䞍皳定Ep Schrabide块 +tile.chimney_brick.name=烟囱 +tile.chimney_brick.desc=䜿甚排气管连接污染机噚$减少75%的污染排攟 +tile.chimney_industrial.name=工䞚烟囱 +tile.chimney_industrial.desc=䜿甚排气管连接污染机噚$减少90%的污染排攟 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4352,17 +5157,44 @@ tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钚矿簇 tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 +tile.custom_machine_anchor.name=自定义机噚结构定䜍锚 +tile.cm_block.alloy.name=高级合金机噚倖壳 +tile.cm_block.desh.name=Desh机噚倖壳 +tile.cm_block.steel.name=钢制机噚倖壳 +tile.cm_block.tcalloy.name=锝钢机噚倖壳 +tile.cm_circuit.aluminium.name=䞀级电路块 +tile.cm_circuit.copper.name=二级电路块 +tile.cm_circuit.gold.name=四级电路块 +tile.cm_circuit.red_copper.name=䞉级电路块 +tile.cm_circuit.schrabidium.name=五级电路块 +tile.cm_engine.bismuth.name=铋电机组 +tile.cm_engine.desh.name=Desh电机组 +tile.cm_engine.standard.name=电机组 +tile.cm_flux.name=䞭子接收噚 +tile.cm_heat.name=热量接收噚 +tile.cm_port.alloy.name=高级合金端口 +tile.cm_port.desh.name=Desh端口 +tile.cm_port.steel.name=钢制端口 +tile.cm_port.tcalloy.name=锝钢端口 +tile.cm_sheet.alloy.name=高级合金建筑板 +tile.cm_sheet.desh.name=Desh建筑板 +tile.cm_sheet.steel.name=钢建筑板 +tile.cm_sheet.tcalloy.name=锝钢建筑板 +tile.cm_tank.alloy.name=高级合金傚眐 +tile.cm_tank.desh.name=Desh傚眐 +tile.cm_tank.steel.name=钢制傚眐 +tile.cm_tank.tcalloy.name=锝钢傚眐 tile.cmb_brick.name=CMB钢瓊块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=玧凑型发射台 tile.concrete.name=混凝土瓊块 -tile.concrete_asbestos.name=黑色混凝土 +tile.concrete_asbestos.name=石棉混凝土 tile.concrete_asbestos_stairs.name=石棉混凝土楌梯 -tile.concrete_brick_slab.brick_concrete.name=混凝土砖板 -tile.concrete_brick_slab.brick_concrete_broken.name=砎碎的混凝土砖板 -tile.concrete_brick_slab.brick_concrete_cracked.name=匀裂的混凝土砖板 -tile.concrete_brick_slab.brick_concrete_mossy.name=苔藓混凝土砖板 -tile.concrete_brick_slab.brick_ducrete.name=高密床莫铀混凝土砖板 +tile.concrete_brick_slab.brick_concrete.name=混凝土砖台阶 +tile.concrete_brick_slab.brick_concrete_broken.name=砎碎混凝土砖台阶 +tile.concrete_brick_slab.brick_concrete_cracked.name=匀裂混凝土砖台阶 +tile.concrete_brick_slab.brick_concrete_mossy.name=苔混凝土砖台阶 +tile.concrete_brick_slab.brick_ducrete.name=高密床莫铀混凝土砖台阶 tile.concrete_colored.black.name=黑色混凝土 tile.concrete_colored.blue.name=蓝色混凝土 tile.concrete_colored.brown.name=棕色混凝土 @@ -4379,36 +5211,55 @@ tile.concrete_colored.red.name=红色混凝土 tile.concrete_colored.silver.name=淡灰色混凝土 tile.concrete_colored.white.name=癜色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 -tile.concrete_colored_ext.hazard.name=建筑商指定混凝土-危险地垊 -tile.concrete_colored_ext.indigo.name=建筑商指定混凝土-深靛蓝 -tile.concrete_colored_ext.machine.name=建筑商指定混凝土-工䞚风 -tile.concrete_colored_ext.machine_stripe.name=建筑商指定混凝土-工䞚条纹 -tile.concrete_colored_ext.pink.name=建筑商指定混凝土-猛男粉 -tile.concrete_colored_ext.purple.name=建筑商指定混凝土-神秘玫 +tile.concrete_colored_ext.bronze.name=建筑工指定混凝土-青铜板材 +tile.concrete_colored_ext.hazard.name=建筑工指定混凝土-危险地垊 +tile.concrete_colored_ext.indigo.name=建筑工指定混凝土-深靛蓝 +tile.concrete_colored_ext.machine.name=建筑工指定混凝土-工䞚风 +tile.concrete_colored_ext.machine_stripe.name=建筑工指定混凝土-工䞚条纹 +tile.concrete_colored_ext.pink.name=建筑工指定混凝土-猛男粉 +tile.concrete_colored_ext.purple.name=建筑工指定混凝土-神秘玫 +tile.concrete_colored_ext.sand.name=建筑工指定混凝土-沙挠风暎 tile.concrete_pillar.name=钢筋混凝土柱 -tile.concrete_slab.concrete.name=混凝土瓷砖板 -tile.concrete_slab.concrete_asbestos.name=石棉混凝土板 -tile.concrete_slab.concrete_smooth.name=混凝土板 -tile.concrete_slab.ducrete.name=高密床莫铀混凝土瓷砖板 -tile.concrete_slab.ducrete_smooth.name=高密床莫铀混凝土板 +tile.concrete_slab.asphalt.name=沥青台阶 +tile.concrete_slab.concrete.name=混凝土瓊块台阶 +tile.concrete_slab.concrete_asbestos.name=石棉混凝土台阶 +tile.concrete_slab.concrete_smooth.name=混凝土台阶 +tile.concrete_slab.ducrete.name=高密床莫铀混凝土瓷砖台阶 +tile.concrete_slab.ducrete_smooth.name=高密床莫铀混凝土台阶 tile.concrete_smooth.name=混凝土 tile.concrete_smooth_stairs.name=混凝土楌梯 -tile.concrete_stairs.name=混凝土瓷砖楌梯 +tile.concrete_stairs.name=混凝土瓊块楌梯 tile.concrete_super.name=ÃŒber混凝土 -tile.concrete_super_broken.name=发霉的碎片 +tile.concrete_super_broken.name=发霉的Über混凝土残骞 tile.conveyor.name=蟓送垊 +tile.conveyor.desc=移劚掉圚䞊面的物品$可以甚螺䞝刀顺时针旋蜬$甚螺䞝刀按䜏Shift键单击以蜬匯 tile.conveyor_chute.name=蟓送垊滑槜 +tile.conveyor_chute.desc=向䞋移劚物品$最底郚的滑槜将起到普通䌠送垊的䜜甚 tile.conveyor_double.name=双蜚道蟓送垊 +tile.conveyor_double.desc=移劚掉圚䞊面的物品$可以甚螺䞝刀顺时针旋蜬$甚螺䞝刀按䜏Shift键单击以蜬匯 +tile.conveyor_express.name=快速蟓送垊 +tile.conveyor_express.desc=快速移劚掉圚䞊面的物品$可以甚螺䞝刀顺时针旋蜬$甚螺䞝刀按Shift键蜬匯 tile.conveyor_lift.name=垂盎蟓送垊 +tile.conveyor_lift.desc=向䞊移劚物品$至少需芁䞀䞪块才胜正垞工䜜 tile.conveyor_triple.name=䞉蜚道蟓送垊 +tile.conveyor_triple.desc=移劚掉圚䞊面的物品$可以甚螺䞝刀顺时针旋蜬$甚螺䞝刀按䜏Shift键单击以蜬匯 tile.corium_block.name=堆芯熔融物 tile.crane_boxer.name=蟓送垊打包机 +tile.crane_boxer.desc=将可配眮数量的堆叠装蜜到沿着䌠送垊移劚的箱子䞭$甚螺䞝刀右键单击以讟眮蟓入䟧$甚螺䞝起子平移单击以讟眮蟓出䟧$单击䞀次以讟眮盞反䟧 tile.crane_extractor.name=蟓送垊提取噚 +tile.crane_extractor.desc=从库存䞭取出物品并将其攟眮圚䌠送垊䞊$最倚有9䞪垊黑癜名单的过滀噚插槜$甚螺䞝刀右键单击以讟眮蟓出䟧$手持螺䞝刀按䜏Shift单击以讟眮蟓入䟧$单击䞀次以讟眮盞反䟧 tile.crane_grabber.name=蟓送垊抓斗 +tile.crane_grabber.desc=从经过的蟓送垊䞭取出物品并将其攟入容噚$将只从最近的通道䞭取出物品$最倚有9䞪垊黑癜名单的过滀槜$甚螺䞝刀右键单击以讟眮蟓入䟧$甚螺䞝起子平移单击以讟眮蟓出䟧$单击䞀次以讟眮对䟧 tile.crane_inserter.name=蟓送垊富入噚 +tile.crane_partitioner.name=酞化噚蟓入分隔噚 +tile.crane_partitioner.desc=接受并存傚至倚9种蟓入矿物酞化噚的物品$并圚物品数量蟟到配方芁求时将其蟓出$无配方物品也䌚被存傚需芁从䟧面富出 +tile.crane_inserter.desc=接受蟓送垊䞊的物品并将其攟入容噚䞭$甚螺䞝刀右键单击以讟眮蟓入䟧$甚螺䞝刀单击以讟眮蟓出䟧$单击䞀次以讟眮盞反䟧 tile.crane_router.name=蟓送垊分拣机 +tile.crane_router.desc=根据定义的条件对项目排序$䟧面可以定义䞺黑名单、癜名单或通配笊$只有圚没有其他筛选噚匹配的情况䞋才选择通配笊䟧面 tile.crane_splitter.name=蟓送垊分犻噚 +tile.crane_splitter.desc=将物品分匀并均匀堆攟圚䞀条䌠送垊䞊$其本身就是䞀条䌠送垊因歀它可以盎接蟓入到插入噚或分拣噚䞭 tile.crane_unboxer.name=蟓送垊解包机 +tile.crane_unboxer.desc=接收打包奜的物品并解包$甚螺䞝刀右键单击以讟眮蟓出䟧$手持螺䞝刀按䜏Shift单击以讟眮蟓入䟧$单击䞀次以讟眮盞反䟧 tile.crashed_bomb.name=哑匹 tile.crate.name=补给箱 tile.crate_ammo.name=星蟉补给箱 @@ -4420,6 +5271,7 @@ tile.crate_lead.name=危险品补给箱 tile.crate_metal.name=机噚补给箱 tile.crate_red.name=红色补给箱 tile.crate_steel.name=钢箱 +tile.crate_template.name=暡板箱 tile.crate_tungsten.name=é’šç®± tile.crate_weapon.name=歊噚补给箱 tile.crystal_hardened.name=硬化黑氎晶 @@ -4429,9 +5281,8 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓊 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM䞪人电脑300PL -tile.deco_emitter.name=Deco发光䜓 -tile.part_emitter.name=Deco粒子发射噚 -tile.piston_inserter.name=插入噚 +tile.deco_emitter.name=装饰性发光䜓 +tile.deco_crt.name=老CRT星瀺屏 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 @@ -4462,6 +5313,7 @@ tile.deco_pipe_rim_red.name=红色钢制管道 (镶蟹) tile.deco_pipe_rim_marked.name=气䜓管道 (镶蟹) tile.deco_steel.name=钢装饰块 tile.deco_titanium.name=钛装饰块 +tile.deco_toaster.name=坏掉的烀面包机 tile.deco_tungsten.name=钚装饰块 tile.decon.name=玩家去污噚 tile.depth_brick.name=深层岩石砖 @@ -4481,9 +5333,21 @@ tile.dfc_stabilizer.name=DFC皳定噚 tile.dirt_dead.name=泥枣 tile.dirt_oily.name=油泥 tile.drill_pipe.name=钻杆 +tile.drone_crate.name=运蟓无人机坞 +tile.drone_crate.desc=运蟓无人机的装莧点和卞莧点$也䜜䞺航路点䜿甚, 需芁䜿甚运蟓无人机铟接噚䞎其他航路点铟接$无人机必须从蟃高角床接近歀方块吊则䌚被卡䜏 +tile.drone_crate_provider.name=物流䟛应箱 +tile.drone_crate_provider.desc=向物流眑络提䟛物品$物流无人机䌚尝试将物品从物流䟛应箱移至物流请求箱 +tile.drone_crate_requester.name=物流请求箱 +tile.drone_crate_requester.desc=从物流眑络请求物品$若物品栏内没有标记的物品则䌚请求该物品 +tile.drone_dock.name=物流无人机坞 +tile.drone_dock.desc=物流无人机的生成点$只胜检测5区块半埄内的物流䟛应箱和物流请求箱$每䞪连接䞭物流无人机最倚跟随10䞪路埄点 +tile.drone_waypoint.name=运蟓无人机航路点 +tile.drone_waypoint.desc=运蟓无人机的航路点$䜿甚运蟓无人机铟接噚讟眮路埄$按顺序单击每䞪航路点和坞即可创建路埄$Shift+右键单击以枅陀保存的䜍眮$右键单击或Shift+右键单击航路点以曎改航路点的高床偏移 +tile.drone_waypoint_request.name=物流无人机航路点 tile.door_bunker.name=仓闚 tile.door_metal.name=金属闚 tile.door_office.name=办公宀闚 +tile.door_red.name=红闚 tile.ducrete.name=高密床莫铀混凝土瓷砖 tile.ducrete_stairs.name=高密床莫铀混凝土瓷砖楌梯 tile.ducrete_smooth.name=高密床莫铀混凝土 @@ -4503,7 +5367,9 @@ tile.factory_titanium_furnace.name=工厂端口 tile.factory_titanium_hull.name=工厂倖壳 tile.fallout.name=蟐射尘 tile.fan.name=风扇 +tile.fan.desc=䜿甚红石激掻$将实䜓掚至最倚10䞪方块倖$甚螺䞝刀右键点击即可翻蜬 tile.fence_metal.name=铁䞝眑囎栏 +tile.fence_metal_post.name=铁䞝眑囎栏立柱 tile.field_disturber.name=高胜场干扰机 tile.filing_cabinet.green.name=蒙尘的文件柜 tile.filing_cabinet.steel.name=钢制文件柜 @@ -4516,13 +5382,17 @@ tile.fireworks.color=颜色: %s tile.fissure_bomb.name=裂猝炞匹 tile.flame_war.name=盒䞭论战 tile.float_bomb.name=悬浮炞匹 +tile.floodlight.name=电力泛光灯 tile.fluid_duct.name=通甚流䜓管道 tile.fluid_duct_box.name=通甚流䜓管道方圢 +tile.fluid_duct_exhaust.name=排气管 tile.fluid_duct_gauge.name=流量计管 tile.fluid_duct_gauge.desc=星瀺每䞪枞戏刻圚管眑有倚少流䜓移劚的管道$由桶或眐连接的分犻眑络被视䞺䞀䞪共享眑络。 tile.fluid_duct_neo.name=通甚流䜓管道 tile.fluid_duct_paintable.name=可喷挆涂层通甚流䜓富管 tile.fluid_duct_solid.name=垊涂层的通甚流䜓富管 +tile.fluid_switch.name=红石流䜓阀 +tile.fluid_valve.name=流䜓阀 tile.foam_layer.name=泡沫层 tile.foundry_basin.name=链造盘 tile.foundry_channel.name=铞造浇道 @@ -4535,14 +5405,17 @@ tile.frozen_dirt.name=冰冻土 tile.frozen_grass.name=冰冻草 tile.frozen_log.name=冰冻原朚 tile.frozen_planks.name=冰冻朚板 +tile.machine_furnace_brick_off.name=砖砌炉 +tile.machine_furnace_brick_on.name=砖砌炉 tile.furnace_combination.name=倍匏炌焊炉 tile.furnace_combination.desc=䞀种可以生产朚炭和煀焊炭的倧熔炉$产生流䜓副产品$䌠热速率ΔT*0.25 TU/T tile.furnace_iron.name=铁炉 tile.furnace_iron.desc=曎倧、效率曎高的炉子圚闲眮时䞍䌚浪莹燃料。 tile.furnace_steel.name=钢炉 -tile.furnace_steel.desc=非垞倧的熔炉冶炌矿石时可提䟛加成。$这需芁倖郚热源$䌠热率ΔT*0.05tu/T$Δ衚瀺差倌T衚瀺枩床 +tile.furnace_steel.desc=非垞倧的熔炉冶炌矿石时可提䟛加成。$需芁倖郚热源$䌠热率ΔT*0.05tu/T$Δ衚瀺差倌T衚瀺枩床 tile.fusion_center.name=䞭心磁铁 tile.fusion_conductor.name=超富磁䜓 +tile.fusion_conductor_welded.name=超富磁䜓焊接 tile.fusion_core.name=聚变反应堆控制噚 tile.fusion_hatch.name=聚变反应堆端口 tile.fusion_heater.name=等犻子加热噚 @@ -4574,6 +5447,8 @@ tile.glass_polonium.name=钋玻璃 tile.glass_quartz.name=石英玻璃 tile.glass_trinitite.name=栞融玻璃 tile.glass_uranium.name=铀玻璃 +tile.glyphid_base.name=匂虫蜂巢块 +tile.glyphid_spawner.name=匂虫蜂巢繁殖方块 tile.gneiss_brick.name=页岩砖 tile.gneiss_chiseled.name=錟制页岩砖 tile.gneiss_tile.name=页岩瓷砖 @@ -4582,15 +5457,19 @@ tile.gravel_obsidian.name=碎黑曜石 tile.hadron_access.name=粒子加速噚接入终端 tile.hadron_analysis.name=粒子加速噚分析宀壁 tile.hadron_analysis_glass.name=粒子加速噚分析宀窗口 -tile.hadron_coil_alloy.name=密集超富线圈 +tile.hadron_coil_alloy.name=臎密超富线圈 tile.hadron_coil_chlorophyte.name=臎密叶绿线圈 tile.hadron_coil_gold.name=臎密金线圈 tile.hadron_coil_magtung.name=臎密4000K超富线圈 -tile.hadron_coil_mese.name=密集Mese线圈 +tile.hadron_coil_mese.name=臎密Mese线圈 tile.hadron_coil_neodymium.name=臎密钕线圈 tile.hadron_coil_schrabidate.name=臎密Sa酞铁线圈 -tile.hadron_coil_schrabidium.name=密集Sa326线圈 -tile.hadron_coil_starmetal.name=密集星蟉线圈 +tile.hadron_coil_schrabidium.name=臎密Sa326线圈 +tile.hadron_coil_starmetal.name=臎密星蟉线圈 +tile.hadron_cooler.name=粒子加速噚冷华装眮 +tile.hadron_cooler.desc=冷华功率10$过冷阈倌10$冷华加成+10%%$过冷惩眚-25%% +tile.hadron_cooler_mk2.name=粒子加速噚冷华装眮-回文特制 +tile.hadron_cooler_mk2.desc=冷华功率5$效率功胜2-(冷华-15)²/225$最高惩眚-90%% tile.hadron_core.name=粒子加速噚栞心组件 tile.hadron_diode.name=肖基特二极管 tile.hadron_plating.name=粒子加速噚镀层 @@ -4618,6 +5497,20 @@ tile.heater_oven.name=加热炉 tile.heater_oven.desc=燃烧固䜓燃料以产生热量$以50%的效率接受来自底郚的热量。 tile.hev_battery.name=盔甲电池 tile.impact_dirt.name=烧焊的泥土 +tile.icf.name=惯性纊束聚变反应堆(ICF) +tile.icf_block.name=ICF激光噚 +tile.icf_component.name=ICF皳定元件 +tile.icf_component.structure.name=ICF倖壳 +tile.icf_component.structure_bolted.name=ICF倖壳铆接 +tile.icf_component.vessel.name=ICF密封容噚壁 +tile.icf_component.vessel_welded.name=ICF密封容噚壁焊接 +tile.icf_controller.name=ICF激光噚控制噚 +tile.icf_laser_component.capacitor.name=ICF激光噚电容 +tile.icf_laser_component.casing.name=ICF激光噚倖壳 +tile.icf_laser_component.cell.name=ICF激光噚单元 +tile.icf_laser_component.emitter.name=ICF激光噚闪光管 +tile.icf_laser_component.port.name=ICF激光噚端口 +tile.icf_laser_component.turbo.name=ICF激光噚涡蜮增压噚 tile.iter.name=聚变反应堆 tile.ladder_aluminium.name=铝制梯子 tile.ladder_cobalt.name=钎制梯子 @@ -4634,18 +5527,27 @@ tile.lamp_tritium_blue_off.name=蓝色氚灯 tile.lamp_tritium_blue_on.name=蓝色氚灯 tile.lamp_tritium_green_off.name=绿色氚灯 tile.lamp_tritium_green_on.name=绿色氚灯 +tile.lantern.name=路灯 +tile.lantern_behemoth.name=旧路灯 tile.launch_pad.name=富匹发射台 +tile.launch_pad_large.name=发射台 tile.launch_table.name=倧型发射台 +tile.launch_pad_rusted.name=锈迹斑斑的发射台 tile.leaves_layer.name=萜叶 tile.lox_barrel.name=液氧桶 tile.machine_amgen.name=环境蟐射发电机 +tile.machine_arc_furnace.name=倧型电匧炉 tile.machine_arc_furnace_off.name=电匧炉 tile.machine_arc_furnace_on.name=电匧炉 +tile.machine_arc_welder.name=电匧焊机 tile.machine_armor_table.name=装甲改装台 +tile.machine_ashpit.name=傚灰槜 +tile.machine_ashpit.desc=收集来自燃烧宀和加热炉的灰烬 tile.machine_assembler.name=装配机 tile.machine_assemfac.name=装配厂 tile.machine_autocrafter.name=自劚工䜜台 tile.machine_autosaw.name=自劚嗡嗡锯 +tile.machine_autosaw.desc=砍䌐附近的怍物重新种怍树朚$接受$-朚油$-乙醇$-鱌油$-重油 tile.machine_bat9000.name=å·šå°»-9000 傚眐 tile.machine_battery.name=蓄电池 tile.machine_battery_potato.name=马铃薯电池组 @@ -4668,10 +5570,14 @@ tile.machine_coker.name=焊化装眮 tile.machine_coker.desc=炌焊并产生各类流䜓副产品$需芁倖郚热源$䌠热速率ΔT*0.025 TU/T tile.machine_combine_factory.name=CMB炌钢炉 tile.machine_combustion_engine.name=工䞚内燃机 +tile.machine_compressor.name=压猩机 tile.machine_condenser.name=蒞汜冷凝噚 +tile.machine_condenser_powered.name=倧功率蒞汜冷凝噚 tile.machine_controller.name=反应堆遥控暡块 tile.machine_converter_he_rf.name=HE→RF蜬换噚 tile.machine_converter_rf_he.name=RF→HE蜬换噚 +tile.machine_conveyor_press.name=蟓送垊锻压机 +tile.machine_conveyor_press.desc=䌠送垊从巊向右移劚$手持锻暡右键单击以安装$䜿甚螺䞝刀移陀锻暡 tile.machine_crucible.name=坩埚 tile.machine_crystallizer.name=矿物酞化噚 tile.machine_cyclotron.name=回旋加速噚 @@ -4685,11 +5591,14 @@ tile.machine_difurnace_on.name=高炉 tile.machine_difurnace_rtg_off.name=栞高炉 tile.machine_difurnace_rtg_on.name=栞高炉 tile.machine_dineutronium_battery.name=Spark蓄电池 +tile.machine_drain.name=排液管 tile.machine_drill.name=自劚采矿钻机 tile.machine_electric_furnace_off.name=电炉 tile.machine_electric_furnace_on.name=电炉 +tile.machine_electrolyser.name=电解机 tile.machine_epress.name=电劚锻压机 tile.machine_excavator.name=倧型采矿钻机 +tile.machine_exposure_chamber.name=曝光宀 tile.machine_fel.name=FEL自由电子激光噚 tile.machine_fensu.name=FEnSU飞蜮傚胜系统 tile.machine_flare.name=高架火炬 @@ -4697,10 +5606,17 @@ tile.machine_fluidtank.name=傚眐 tile.machine_forcefield.name=力场发生噚 tile.machine_fraction_tower.name=分銏塔 tile.machine_fracking_tower.name=氎力压裂塔 +tile.machine_funnel.name=组合挏斗 +tile.machine_funnel.desc=自劚圚2x2或3x3的合成栌䞭压猩内郚物品$顶面蟓入$底面蟓出$䟧面蟓出内郚原料 tile.machine_gascent.name=气䜓犻心机 tile.machine_generator.name=栞反应堆[旧] tile.machine_geo.name=地热发电机 tile.machine_hephaestus.name=地热换热噚 +tile.machine_hydrotreater.name=加氢装眮 +tile.machine_icf_press.name=ICF燃料靶䞞制造噚 +tile.machine_icf_press.desc=甚于装填ICF靶䞞$巊䟧燃料槜接收顶面/底面蟓入右䟧燃料槜接收䟧面蟓入$Ό子胶囊和空靶䞞可从任意面蟓入 +tile.machine_industrial_boiler.name=工䞚锅炉 +tile.machine_industrial_boiler.desc=可以烧氎或加热油的倧型锅炉$需芁倖郚热源$䌠热率ΔT*0.01 TU/T$䞍䌚爆炞 tile.machine_industrial_generator.name=工䞚发电机 tile.machine_keyforge.name=锁匠桌 tile.machine_large_turbine.name=工䞚汜蜮机 @@ -4716,15 +5632,17 @@ tile.machine_mixer.name=工䞚搅拌机 tile.machine_nuke_furnace_off.name=栞熔炉 tile.machine_nuke_furnace_on.name=栞熔炉 tile.machine_orbus.name=重型磁纊束傚眐 +tile.machine_ore_slopper.name=基岩矿石倄理机 tile.machine_powerrtg.name=PT同䜍玠电池 tile.machine_press.name=火力锻压机 tile.machine_puf6_tank.name=六氟化钚傚眐 tile.machine_pumpjack.name=石油钻机 tile.machine_radar.name=雷蟟 +tile.machine_radar_large.name=倧型雷蟟 tile.machine_radgen.name=蟐射胜量发电机 tile.machine_radiolysis.name=攟射性同䜍玠热电机和蟐射裂解宀 tile.machine_reactor.name=增殖反应堆 -tile.machine_reactor_small.name=栞反应堆 +tile.machine_reactor_small.name=研究型反应堆 tile.machine_refinery.name=炌油厂 tile.machine_reix_mainframe.name=Rei-X䞻机[匀发䞭] tile.machine_rtg_blue.name=对流发电机 @@ -4744,9 +5662,10 @@ tile.machine_schrabidium_battery.name=Sa326蓄电池 tile.machine_schrabidium_transmutator.name=Sa326嬗变装眮 tile.machine_selenium.name=星型发劚机 tile.machine_shredder.name=粉碎机 -tile.machine_silex.name=激光同䜍玠分犻宀 +tile.machine_silex.name=SILEX激光同䜍玠分犻宀 tile.machine_siren.name=譊报噚 tile.machine_solar_boiler.name=倪阳胜锅炉 +tile.machine_soldering_station.name=焊接台 tile.machine_solidifier.name=工䞚固化机 tile.machine_solidifier.desc=配倇冷华系统和其他倚功胜工具的通甚机噚甚于䜿甚冷冻和石化聚合等倚种工艺将流䜓蜬化䞺固䜓。 tile.machine_spp_bottom.name=ZPE电䜍发生噚 [底郚] @@ -4754,10 +5673,13 @@ tile.machine_spp_top.name=ZPE电䜍发生噚 [顶郚] tile.machine_steam_engine.name=蒞汜机 tile.machine_steam_engine.desc=效率85% tile.machine_stirling.name=斯特林发电机 -tile.machine_stirling.desc=它将热量蜬化䞺胜量。这需芁倖郚热源$䌠热率T*0.1 TU/T$最倧进气量300 TU/T$效率50% -tile.machine_stirling_steel.name=重型斯特林发劚机 -tile.machine_stirling_steel.desc=它将热量蜬化䞺胜量。这需芁倖郚热源$䜿甚曎重的霿蜮来支持曎高的枩床$䌠热率T*0.1 TU/T$最倧进气量1500 TU/T$效率50% +tile.machine_stirling.desc=它将热量蜬化䞺胜量。需芁倖郚热源$䌠热率T*0.1 TU/T$最倧进气量300 TU/T$效率50% +tile.machine_stirling_creative.name=创造斯特林发劚机 +tile.machine_stirling_creative.desc=将热量蜬化䞺胜量。需芁倖郚热源$䌠热率T*0.1 TU/T$无限吞热/T$效率100% +tile.machine_stirling_steel.name=重型斯特林发电机 +tile.machine_stirling_steel.desc=它将热量蜬化䞺胜量。需芁倖郚热源$䜿甚曎重的霿蜮来支持曎高的枩床$䌠热率T*0.1 TU/T$最倧进气量1500 TU/T$效率50% tile.machine_storage_drum.name=栞废料倄理桶 +tile.machine_strand_caster.name=连续铞造机 tile.machine_telelinker.name=炮塔ID管理噚 tile.machine_teleporter.name=䌠送机 tile.machine_tower_large.name=冷华塔 @@ -4774,6 +5696,8 @@ tile.machine_uf6_tank.name=六氟化铀傚眐 tile.machine_vacuum_distill.name=真空炌油厂 tile.machine_waste_drum.name=乏燃料池 tile.machine_well.name=钻油塔 +tile.machine_wood_burner.name=火力发电机 +tile.machine_wood_burner.desc=燃烧物品时100HE/t同时$收集灰烬$可以以40mb/s的速床燃烧流䜓效率䞺50%% tile.machine_zirnox.name=锆诺克斯栞反应堆 tile.marker_structure.name=倚方块结构信标 tile.mass_storage.name=倧规暡存傚单元 @@ -4797,10 +5721,10 @@ tile.ntm_dirt.name=泥土 tile.nuke_boy.name=小男孩 tile.nuke_custom.name=自定义栞匹 tile.nuke_fleija.name=F.L.E.I.J.A. -tile.nuke_fstbmb.name=BF炞匹 +tile.nuke_fstbmb.name=野火炞匹 tile.nuke_gadget.name=小玩意 tile.nuke_man.name=胖子 -tile.nuke_mike.name=垞青藀迈克 +tile.nuke_mike.name=垞春藀迈克 tile.nuke_n2.name=N2炞匹 tile.nuke_n45.name=N45æ°Žé›· tile.nuke_prototype.name=原型 @@ -4809,10 +5733,16 @@ tile.nuke_tsar.name=沙皇炞匹 tile.oil_duct.name=蟓油管 tile.oil_duct_solid.name=粗蟓油管 tile.oil_pipe.name=原油抜取管 +tile.oil_spill.name=泄挏的原油 tile.ore_alexandrite.name=亚历山倧变石矿 tile.ore_aluminium.name=铝矿石 tile.ore_asbestos.name=石棉矿 tile.ore_australium.name=奥斯矿石 +tile.ore_basalt_asbestos.name=富含石棉的玄歊岩 +tile.ore_basalt_fluorite.name=富含氟石的玄歊岩 +tile.ore_basalt_gem.name=富含宝石的玄歊岩 +tile.ore_basalt_molysite.name=富含氯化铁的玄歊岩 +tile.ore_basalt_sulfur.name=富含硫的玄歊岩 tile.ore_bedrock.name=基岩矿石 tile.ore_bedrock_coltan.name=基岩钶钜铁矿 tile.ore_bedrock_oil.name=基岩油层 @@ -4841,6 +5771,11 @@ tile.ore_gneiss_uranium.name=铀矿页岩 tile.ore_gneiss_uranium_scorched.name=烧焊的铀矿页岩 tile.ore_lead.name=铅矿石 tile.ore_lignite.name=耐煀矿石 +tile.ore_meteor.aluminium.name=铝矿陚石 +tile.ore_meteor.cobalt.name=钎矿陚石 +tile.ore_meteor.copper.name=铜矿陚石 +tile.ore_meteor.iron.name=铁矿陚石 +tile.ore_meteor.rareearth.name=皀土矿陚石 tile.ore_meteor_aluminium.name=铝矿陚石 tile.ore_meteor_copper.name=铜矿陚石 tile.ore_meteor_lead.name=铅矿陚石 @@ -4853,7 +5788,7 @@ tile.ore_meteor_tungsten.name=钚矿陚石 tile.ore_meteor_uranium.name=铀矿陚石 tile.ore_nether_coal.name=燃烧䞋界煀矿 tile.ore_nether_cobalt.name=䞋界钎矿石 -tile.ore_nether_fire.name=火矿石 +tile.ore_nether_fire.name=磷矿石 tile.ore_nether_plutonium.name=䞋界钚矿石 tile.ore_nether_schrabidium.name=例界Sa326矿石 tile.ore_nether_smoldering.name=阎燃䞋界岩 @@ -4869,6 +5804,11 @@ tile.ore_random.name=%s 矿 tile.ore_rare.name=皀土矿石 tile.ore_reiium.name=雷恩矿石 tile.ore_schrabidium.name=Sa326矿石 +tile.ore_sellafield_diamond.name=攟射性熔融钻石矿 +tile.ore_sellafield_emerald.name=攟射性熔融绿宝石矿 +tile.ore_sellafield_radgem.name=富含宝石的攟射性熔融物 +tile.ore_sellafield_schrabidium.name=攟射性熔融Sa326矿石 +tile.ore_sellafield_uranium_scorched.name=攟射性熔融烧焊铀矿 tile.ore_sulfur.name=硫磺矿石 tile.ore_tektite_osmiridium.name=林锇熔融石 tile.ore_thorium.name=钍矿石 @@ -4881,11 +5821,15 @@ tile.ore_uranium_scorched.name=烧焊的铀矿石 tile.ore_verticium.name=韊執赛矿石 tile.ore_volcano.name=地热裂猝 tile.ore_weidanium.name=魏䞹矿石 +tile.part_emitter.name=装饰性粒子发射噚 +tile.pedestal.name=物品基座 tile.pink_barrel.name=煀油桶 tile.pink_log.name=粉色原朚 tile.pink_planks.name=粉色朚板 tile.pink_slab.name=粉色朚半砖 tile.pink_stairs.name=粉色朚台阶 +tile.piston_inserter.name=插入噚 +tile.piston_inserter.desc=可以䜿甚自劚化接收䞀件物品$䜿甚红石它䌚将物品插入钻孔石墚䞭$钻孔石墚的物品郜䌚被掚出䞀栌$插入噚䞎钻孔石墚之闎需芁有䞀栌空气 tile.plant_dead.name=死亡怍物 tile.plant_flower.cd0.name=芥子柳 tile.plant_flower.cd1.name=芥子柳 @@ -4900,6 +5844,7 @@ tile.plant_tall.cd4.name=芥子柳成熟 tile.plant_tall.weed.name=倧麻 tile.plasma.name=等犻子 tile.plasma_heater.name=等犻子加热噚 +tile.plushie.name=%s垃嚃嚃 tile.pole_satellite_receiver.name=卫星倩线 tile.pole_top.name=倩线顶郚 tile.press_preheater.name=锻压机压力预热噚 @@ -4907,6 +5852,38 @@ tile.pribris.name=RBMK石墚匏反应堆残骞 tile.pribris_burning.name=燃烧的RBMK反应堆残骞 tile.pribris_digamma.name=发黑的RBMK反应堆残骞 tile.pribris_radiating.name=阮燃的RBMK反应堆残骞 +tile.pump_electric.name=电劚地䞋氎泵 +tile.pump_electric.desc=甚电力抜取地䞋氎$产氎量高蟟10000mB/t$需芁攟眮圚Y:70以䞋 +tile.pump_steam.name=蒞汜劚力地䞋氎泵 +tile.pump_steam.desc=䜿甚蒞汜抜取地䞋氎$产氎量高蟟1000mB/t$需芁攟眮圚Y:70以䞋 +tile.pwr_block.name=PWR压氎反应堆 +tile.pwr_casing.name=PWR压力容噚 +tile.pwr_casing.desc=需芁芆盖反应堆的所有内郚零件以圢成$䜍眮:倖壳 +tile.pwr_channel.name=PWR冷华剂通道 +tile.pwr_channel.desc=䌠富热量以加热冷华剂$䜍眮任意 +tile.pwr_control.name=PWR控制棒 +tile.pwr_control.desc=允讞控制连接的燃料棒$攟眮各燃料棒连线眑栌之闎 +tile.pwr_controller.name=PWR控制噚 +tile.pwr_controller.desc=PWR的接入终端$䜍眮倖壳每䞪反应堆只芁䞀䞪$右键单击以组装反应堆 +tile.pwr_fuel.name=PWR燃料棒 +tile.pwr_fuel.desc=增加压氎堆燃料容量$䜍眮眑栌甚于增加反应效率 +tile.pwr_heatex.name=PWR换热噚 +tile.pwr_heatex.desc=将栞心热量蜬移到倖壳$䜍眮任意 +tile.pwr_heatsink.name=PWR热容噚 +tile.pwr_heatsink.desc=增加5%%的栞心热容$略埮降䜎冷华剂通道和换热噚的效率$䜍眮任意 +tile.pwr_neutron_source.name=PWR䞭子源 +tile.pwr_neutron_source.desc=向堆芯添加20䞪䞭子通量$䜍眮任意$䞭子通量只有圚连接打匀时才胜到蟟燃料棒 +tile.pwr_port.name=PWR接入端口 +tile.pwr_port.desc=允讞物品和液䜓亀换$䜍眮组件 +tile.pwr_reflector.name=PWR䞭子反射噚 +tile.pwr_reflector.desc=将䞭子通量反射回燃料棒$䜍眮眑栌甚于增加反应速率$可䜜䞺倖壳材料 +tile.rad_lava_block.name=攟射性火山熔岩 +tile.radar_screen.name=雷蟟星瀺屏 +tile.radio_telex.name=电报机 +tile.radio_torch_counter.name=无线红石物品计数噚 +tile.radio_torch_counter.desc=可圚平坊衚面或䞎比蟃噚兌容的方块䞊攟眮$根据匹配物品的数量发出信号 +tile.radio_torch_logic.name=无线红石逻蟑接收噚 +tile.radio_torch_logic.desc=可圚平坊衚面或䞎比蟃噚兌容的方块䞊攟眮$将红石信号䞎条件䞀䞀对应并按照讟定的顺序检测$蟓入的数倌或字笊䞲䌚䞎垞量进行比蟃 tile.radio_torch_receiver.name=无线红石信号接收噚 tile.radio_torch_receiver.desc=可圚平坊衚面或䞎比蟃噚兌容的方块䞊攟眮 tile.radio_torch_sender.name=无线红石信号发射噚 @@ -4915,6 +5892,15 @@ tile.radiobox.name=无线怪物枅陀箱 tile.radiorec.name=坏掉的收音机 tile.rail_booster.name=高速劚力蜚道 tile.rail_highspeed.name=高速蜚道 +tile.rail_large_buffer.name=标准蜚距猓冲停止蜚道(5m) +tile.rail_large_curve.name=标准蜚距匯曲蜚道(5m) +tile.rail_large_curve_7.name=标准蜚距匯曲蜚道(7m) +tile.rail_large_curve_9.name=标准蜚距匯曲蜚道(9m) +tile.rail_large_ramp.name=标准蜚距坡道铁蜚(5m) +tile.rail_large_straight.name=标准蜚距铁蜚(5m) +tile.rail_large_straight_short.name=标准蜚距铁蜚(1m) +tile.rail_large_switch.name=标准蜚距铁路道岔(15m 巊蜬) +tile.rail_large_switch_flipped.name=标准蜚距铁路道岔(15m 右蜬) tile.rail_narrow.name=窄蜚距蜚道 tile.rail_wood.name=朚制蜚道 tile.rbmk_absorber.name=RBMK反应堆硌䞭子吞收噚 @@ -4929,6 +5915,7 @@ tile.rbmk_crane_console.name=RBMK起重机控制台 tile.rbmk_heater.name=RBMK流䜓加热噚 tile.rbmk_heatex.name=RBMK换热噚 tile.rbmk_loader.name=RBMK反应堆蒞汜富出噚 +tile.rbmk_loader.desc=让RBMK反应堆圚底郚同时拥有氎接口和蒞汜接口$圚RBMK蒞汜管道䞋方攟眮氎管道再圚䞋面攟眮蒞汜富出噚$最后将管道连接至蒞汜富出噚即可 tile.rbmk_moderator.name=RBMK反应堆石墚慢化剂 tile.rbmk_outgasser.name=RBMK反应堆蟐照通道 tile.rbmk_reflector.name=RBMK反应堆碳化钚䞭子反射噚 @@ -4937,7 +5924,9 @@ tile.rbmk_rod_mod.name= RBMK反应堆慢化燃料棒 tile.rbmk_rod_reasim.name= RBMK反应堆燃料棒(ReaSim) tile.rbmk_rod_reasim_mod.name= RBMK反应堆慢化燃料棒(ReaSim) tile.rbmk_steam_inlet.name=RBMK ReaSim进氎口 +tile.rbmk_steam_inlet.desc=圓启甚ReaSim锅炉时向反应堆内蟓入氎$从䟧面连接至反应堆结构 tile.rbmk_steam_outlet.name=RBMK ReaSim蒞汜出口 +tile.rbmk_steam_outlet.desc=圓启甚ReaSim锅炉时从反应堆内蟓出超热蒞汜$从䟧面连接至反应堆结构 tile.rbmk_storage.name=RBMK燃料棒存傚棒 tile.reactor_computer.name=反应堆控制噚 tile.reactor_conductor.name=反应堆锅炉 @@ -4949,13 +5938,19 @@ tile.reactor_inserter.name=反应堆燃料插入噚 tile.red_barrel.name=炞药桶 tile.red_cable.name=玫铜电线 tile.red_cable_classic.name=玫铜电猆经兞型 +tile.red_cable_gauge.name=功率计 +tile.red_cable_gauge.desc=星瀺每刻圚眑络䞭流劚的电力$的电猆$由傚胜方块连接的拆分眑络被视䞺䞀䞪共享眑络。 tile.red_cable_paintable.name=可涂挆玫铜线 tile.red_connector.name=电力连接噚 tile.red_pylon.name=电线杆 tile.red_pylon_large.name=倧型蟓电塔 +tile.red_pylon_medium_steel.name=䞭型钢制电线杆 +tile.red_pylon_medium_steel_transformer.name=䞭型钢制电线杆垊变压噚 +tile.red_pylon_medium_wood.name=䞭型朚制电线杆 +tile.red_pylon_medium_wood_transformer.name=䞭型朚制电线杆垊变压噚 tile.red_wire_coated.name=密封玫铜电猆 tile.reinforced_brick.name=区化石倎 -tile.reinforced_brick_stairs.name=钢筋石楌梯 +tile.reinforced_brick_stairs.name=区化石倎楌梯 tile.reinforced_ducrete.name=加固高密床莫铀混凝土 tile.reinforced_glass.name=区化玻璃 tile.reinforced_glass_pane.name=区化玻璃窗 @@ -4965,20 +5960,20 @@ tile.reinforced_light.name=区化萀石 tile.reinforced_sand.name=区化砂石 tile.reinforced_stone.name=臎密石倎 tile.reinforced_stone_stairs.name=臎密石倎楌梯 -tile.reinforced_laminate.name=区化层压板 -tile.reinforced_laminate_pane.name=区化层压板隔板 +tile.reinforced_laminate.name=区化倹层玻璃 +tile.reinforced_laminate_pane.name=区化倹层隔板 tile.rejuvinator.name=再生装眮 tile.residue.name=云残留 tile.safe.name=保险箱 -tile.sand_boron.name=硌砂 -tile.sand_boron_layer.name=硌砂层 +tile.sand_boron.name=硌沙 +tile.sand_boron_layer.name=硌沙层 tile.sand_dirty.name=油砂 tile.sand_dirty_red.name=红色油砂 tile.sand_gold.name=金沙 tile.sand_gold198.name=金-198沙 tile.sand_lead.name=铅沙 tile.sand_polonium.name=钋沙 -tile.sand_quartz.name=石英砂 +tile.sand_quartz.name=石英沙 tile.sand_uranium.name=铀沙 tile.sat_dock.name=卞莧平台 tile.sat_foeq.name=实验型栞胜PEAF-Mk.I FOEQ Duna探测噚[装饰块] @@ -4999,10 +5994,17 @@ tile.sellafield.4.name=地狱般的攟射性熔融凝固物 tile.sellafield.5.name=攟射性熔融凝固物栞心 tile.sellafield_slaked.name=消沉的攟射性熔融凝固物 tile.semtex.name=塞姆汀塑胶炞药 +tile.silo_hatch.name=发射井舱闚 +tile.silo_hatch_large.name=倧型发射井舱闚 +tile.sliding_blast_door.name=滑劚防爆闚 tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=莧物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 tile.spikes.name=地刺 +tile.snowglobe.name=雪景球 +tile.spotlight_incandescent.name=眩灯 +tile.spotlight_fluoro.name=荧光灯 +tile.spotlight_halogen.name=區玠泛光灯 tile.stalactite.asbestos.name=石棉钟乳石 tile.stalactite.sulfur.name=含硫钟乳石 tile.stalagmite.asbestos.name=石棉石笋 @@ -5019,6 +6021,7 @@ tile.steel_wall.name=钢墙 tile.stone_cracked.name=砎碎的石倎 tile.stone_depth.name=深层岩石 tile.stone_depth_nether.name=䞋界深层岩石 +tile.stone_keyhole.name=奇怪的石倎 tile.stone_gneiss.name=石墚页岩 tile.stone_porous.name=倚孔石 tile.stone_resource.asbestos.name=枩石棉 @@ -5027,6 +6030,7 @@ tile.stone_resource.hematite.name=赀铁矿 tile.stone_resource.limestone.name=石灰石 tile.stone_resource.malachite.name=孔雀石 tile.stone_resource.sulfur.name=硫磺石 +tile.struct_icf_core.name=ICF反应堆栞心组件 tile.struct_iter_core.name=聚变反应堆栞心组件 tile.struct_launcher.name=发射台郚件 tile.struct_launcher_core.name=玧凑型发射台栞心组件 @@ -5070,6 +6074,7 @@ tile.turret_rocket.name=火箭炮塔 tile.turret_richard.name=火箭炮塔“理查執” tile.turret_spitfire.name=目前没有名字[匀发䞭] tile.turret_sentry.name=哚兵炮塔“垃朗” +tile.turret_sentry_damaged.name=哚兵炮塔"埃執枩" tile.turret_tau.name=陶子炮塔 tile.turret_tauon.name=XVL1456原型陶子发射噚炮塔"陶恩" tile.vacuum.name=真空 @@ -5077,12 +6082,13 @@ tile.vault_door.name=避隟所防爆闚 tile.vent_chlorine.name=氯气排气口 tile.vent_chlorine_seal.name=氯气容噚 tile.vent_cloud.name=云排气口 -tile.vent_pink_cloud.name=粉色云排气口 +tile.vent_pink_cloud.name=粉雟排气口 tile.vinyl_tile.large.name=倧型乙烯基瓷砖 tile.vinyl_tile.small.name=小型乙烯基瓷砖 tile.vitrified_barrel.name=玻璃化栞废料桶 tile.volcanic_lava_block.name=火山熔岩 tile.volcano_core.name=火山栞心 +tile.volcano_rad_core.name=攟射性火山栞心 tile.waste_earth.name=死亡草地 tile.waste_leaves.name=枯叶 tile.waste_log.name=烧焊原朚 @@ -5093,7 +6099,7 @@ tile.waste_trinitite_red.name=红色栞融玻璃矿石 tile.watz.name=Watz发电厂 tile.watz_conductor.name=Watz电力端口 tile.watz_control.name=加区控制棒 -tile.watz_cooler.name=Watz反应堆过冷噚 +tile.watz_cooler.name=Watz反应堆高效冷华噚 tile.watz_core.name=Watz反应堆控制噚 tile.watz_element.name=Watz反应宀 tile.watz_end.name=Watz反应堆皳定元件 @@ -5101,7 +6107,18 @@ tile.watz_end_bolted.name=Watz反应堆皳定元件铆接 tile.watz_hatch.name=Watz反应堆端口 tile.watz_pump.name=Watz压力泵 tile.yellow_barrel.name=栞废料桶 -tile.zirnox_destroyed.name=损毁的ZINROX +tile.zirnox_destroyed.name=损毁的ZIRNOX +tile.machine_ammo_press.name=压匹机 +tile.machine_rotary_furnace.name=回蜬炉 + +tile.large_vehicle_door.name=倧型机械闚 +tile.water_door.name=æ°Žé—žé—š +tile.qe_containment.name=QE安党闚 +tile.qe_sliding_door.name=QE滑劚闚 +tile.round_airlock_door.name=圆圢气闞闚 +tile.secure_access_door.name=安党检修闚 +tile.sliding_seal_door.name=滑劚密封闚 + trait.asbestos=石棉 trait.blinding=臎盲 trait.coal=煀尘 @@ -5116,6 +6133,7 @@ trait.hot=自燃/高枩 trait.hydro=䞎氎反应 trait.radioactive=攟射性 trait.radResistance=蟐射抗性: %s + trait.rbmk.coreTemp=栞心枩床: %s trait.rbmk.depletion=燃料消耗: %s trait.rbmk.diffusion=扩散床: %s @@ -5133,6 +6151,7 @@ trait.rbmk.splitsWith=裂变需芁: %s trait.rbmk.xenon=氙元玠堆积皋床: %s trait.rbmk.xenonBurn=氙元玠燃烧凜数: %s trait.rbmk.xenonGen=氙元玠产生凜数: %s + trait.rbmx.coreTemp=栞心熵: %s trait.rbmx.depletion=衰变: %s trait.rbmx.diffusion=胜量朮涌: %s @@ -5150,8 +6169,10 @@ trait.rbmx.splitsWith=接受: %s trait.rbmx.xenon=铅元玠堆积皋床: %s trait.rbmx.xenonBurn=铅元玠寂灭凜数: %s trait.rbmx.xenonGen=铅元玠产生凜数: %s + trait.tile.cluster=只有圚被玩家砎坏时才䌚掉萜 trait.tile.depth=只胜被爆炞砎坏 + tool.ability.centrifuge=自劚犻心 tool.ability.crystallizer=自劚结晶 tool.ability.explosion=爆砮 @@ -5163,6 +6184,7 @@ tool.ability.recursion=连锁挖矿 tool.ability.shredder=自劚粉碎 tool.ability.silktouch=粟准采集 tool.ability.smelter=自劚熔炌 + turret.animals=被劚目标%s turret.arty.artillery=§e火炮暡匏$最䜎射皋: 250m$最倧射皋: 3,000m turret.arty.cannon=§e炮塔暡匏$最䜎射皋: 32m$å°„çš‹: 250m @@ -5173,6 +6195,24 @@ turret.none=无 turret.off=关 turret.on=匀 turret.players=以玩家䞺目标%s + +upgrade.acid=流䜓需求量 %s +upgrade.burn=燃烧内郚倩然气 %smB/t产胜 %sHE/t +upgrade.consumption=消耗 %s +upgrade.coolantConsumption=冷华剂消耗 %s +upgrade.delay=工䜜时闎 %s +upgrade.efficiency=效率 %s +upgrade.fortune=时运 %s +upgrade.overheatChance=过热几率 %s +upgrade.range=范囎 %s + +upgrade.gui.title=§l接受的升级§r +upgrade.gui.afterburner= * §d加力燃烧§r叠加至%s级 +upgrade.gui.effectiveness= * §a效率§r叠加至%s级 +upgrade.gui.overdrive= * §7超速䌠劚§r叠加至%s级 +upgrade.gui.power= * §9节胜§r叠加至%s级 +upgrade.gui.speed= * §4速床§r叠加至%s级 + wavelengths.name.ir=红倖线 wavelengths.name.visible=可见光 wavelengths.name.uv=玫倖线 @@ -5183,8 +6223,10 @@ wavelengths.waveRange.visible=400nm-780nm wavelengths.waveRange.uv=100nm-400nm wavelengths.waveRange.gamma=<100pm wavelengths.waveRange.drx=1916169普朗克长床 + weapon.ability.beheader=斩銖 weapon.ability.bobble=收藏家之运 +# Should rhyme with the translation for "chainsaw" weapon.ability.chainsaw=痛苊面"锯" weapon.ability.fire=燃烧 weapon.ability.radiation=蟐射 @@ -5199,6 +6241,10 @@ weapon.elecGun.glass_cannon.visible=可见光 weapon.elecGun.glass_cannon.uv=玫倖线 weapon.elecGun.glass_cannon.xray=X射线 weapon.elecGun.glass_cannon.gamma=䌜马射线 -hadron.error=错误! -container.reactor=增殖反应堆 -death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file + +#Stuffs that Bob doesn't provide translation for +item.gun_vortex.name=涡流 +tile.crystal_power.name=胜量氎晶 +tile.crystal_energy.name=胜量氎晶 +tile.crystal_robust.name=坚固的氎晶 +tile.crystal_trixite.name=赛瑞克氎晶 \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/BombGenericLarge.obj b/src/main/resources/assets/hbm/models/BombGenericLarge.obj deleted file mode 100644 index 81d5f5930..000000000 --- a/src/main/resources/assets/hbm/models/BombGenericLarge.obj +++ /dev/null @@ -1,685 +0,0 @@ -# Blender v2.70 (sub 0) OBJ File: 'BombGenericLarge.blend' -# www.blender.org -o Cylinder -v 0.265165 0.640165 -0.914583 -v 0.265165 0.640165 0.960417 -v 0.346455 0.518507 -0.914583 -v 0.346455 0.518506 0.960417 -v 0.375000 0.375000 -0.914583 -v 0.375000 0.375000 0.960417 -v 0.346455 0.231494 -0.914583 -v 0.346454 0.231493 0.960417 -v 0.265165 0.109835 -0.914583 -v 0.265165 0.109835 0.960417 -v 0.143506 0.028545 -0.914583 -v 0.143506 0.028545 0.960416 -v 0.000000 0.000000 -0.914584 -v -0.000000 -0.000000 0.960416 -v -0.143506 0.028546 -0.914584 -v -0.143507 0.028545 0.960416 -v -0.265165 0.109835 -0.914584 -v -0.265165 0.109835 0.960416 -v -0.346454 0.231494 -0.914584 -v -0.346455 0.231493 0.960416 -v -0.375000 0.375000 -0.914584 -v -0.375000 0.375000 0.960416 -v -0.346454 0.518507 -0.914584 -v -0.346455 0.518506 0.960416 -v -0.265165 0.640165 -0.914583 -v -0.265165 0.640165 0.960417 -v -0.143506 0.721455 -0.914583 -v -0.143506 0.721455 0.960417 -v 0.000001 0.750000 -0.914583 -v -0.000000 0.750000 0.960417 -v 0.143507 0.721455 -0.914583 -v 0.143506 0.721454 0.960417 -v 0.132583 0.507582 1.185417 -v 0.071753 0.548227 1.185417 -v 0.000000 0.562500 1.185417 -v -0.071753 0.548227 1.185417 -v -0.132582 0.507583 1.185417 -v -0.173227 0.446753 1.185417 -v -0.187500 0.375000 1.185417 -v -0.173227 0.303247 1.185417 -v -0.132583 0.242418 1.185417 -v -0.071753 0.201773 1.185417 -v -0.000000 0.187500 1.185417 -v 0.071753 0.201773 1.185417 -v 0.132582 0.242417 1.185417 -v 0.173227 0.303247 1.185417 -v 0.187500 0.375000 1.185417 -v 0.173227 0.446753 1.185417 -v 0.132583 0.507582 -1.364583 -v 0.071753 0.548227 -1.364583 -v 0.000000 0.562500 -1.364583 -v -0.071753 0.548227 -1.364583 -v -0.132582 0.507583 -1.364583 -v -0.173227 0.446753 -1.364583 -v -0.187500 0.375000 -1.364583 -v -0.173227 0.303247 -1.364583 -v -0.132583 0.242417 -1.364583 -v -0.071753 0.201773 -1.364583 -v -0.000000 0.187500 -1.364583 -v 0.071753 0.201773 -1.364583 -v 0.132582 0.242417 -1.364583 -v 0.173227 0.303247 -1.364583 -v 0.187500 0.375000 -1.364583 -v 0.173227 0.446753 -1.364583 -v 0.132583 0.507582 -1.664583 -v 0.071753 0.548227 -1.664583 -v 0.000000 0.562500 -1.664583 -v -0.071753 0.548227 -1.664583 -v -0.132582 0.507583 -1.664583 -v -0.173227 0.446753 -1.664583 -v -0.187500 0.375000 -1.664583 -v -0.173227 0.303247 -1.664583 -v -0.132583 0.242417 -1.664583 -v -0.071753 0.201773 -1.664583 -v -0.000000 0.187500 -1.664583 -v 0.071753 0.201773 -1.664583 -v 0.132582 0.242417 -1.664583 -v 0.173227 0.303247 -1.664583 -v 0.187500 0.375000 -1.664583 -v 0.173227 0.446753 -1.664583 -v -0.371231 0.746231 -1.213083 -v 0.371231 0.003769 -1.213083 -v -0.371231 0.746231 -1.591083 -v 0.371231 0.003769 -1.591083 -v -0.371231 0.746231 -1.213083 -v 0.371231 0.003769 -1.213083 -v -0.371231 0.746231 -1.591083 -v 0.371231 0.003769 -1.591083 -v 0.371232 0.746231 -1.213083 -v -0.371231 0.003769 -1.213083 -v 0.371232 0.746231 -1.591083 -v -0.371231 0.003769 -1.591083 -v 0.371232 0.746231 -1.213083 -v -0.371231 0.003769 -1.213083 -v 0.371232 0.746231 -1.591083 -v -0.371231 0.003769 -1.591083 -vt 0.484392 0.017784 -vt 0.484392 0.388294 -vt 0.455678 0.388294 -vt 0.548430 0.388294 -vt 0.519716 0.388294 -vt 0.519716 0.017784 -vt 0.110414 0.631349 -vt 0.081700 0.631349 -vt 0.081700 0.260839 -vt 0.455678 0.794374 -vt 0.455678 0.423863 -vt 0.484392 0.423863 -vt 0.676506 0.388294 -vt 0.647792 0.388294 -vt 0.647792 0.017784 -vt 0.740544 0.017785 -vt 0.740544 0.388295 -vt 0.711830 0.388295 -vt 0.612468 0.794374 -vt 0.583754 0.794374 -vt 0.583754 0.423864 -vt 0.519716 0.794374 -vt 0.519716 0.423863 -vt 0.548430 0.423863 -vt 0.804581 0.423864 -vt 0.804581 0.794374 -vt 0.775868 0.794374 -vt 0.740544 0.794374 -vt 0.711830 0.794374 -vt 0.711830 0.423864 -vt 0.172632 0.260839 -vt 0.201346 0.260839 -vt 0.201346 0.631349 -vt 0.647792 0.794373 -vt 0.647792 0.423863 -vt 0.676506 0.423863 -vt 0.265384 0.260839 -vt 0.265384 0.631349 -vt 0.236670 0.631349 -vt 0.612468 0.017784 -vt 0.612468 0.388295 -vt 0.583754 0.388295 -vt 0.374888 0.631349 -vt 0.346174 0.631349 -vt 0.346174 0.260839 -vt 0.046376 0.260839 -vt 0.046376 0.631349 -vt 0.017662 0.631349 -vt 0.932657 0.651554 -vt 0.903943 0.651554 -vt 0.911122 0.594132 -vt 0.932657 0.481286 -vt 0.903943 0.481286 -vt 0.911122 0.423864 -vt 0.932657 0.388295 -vt 0.903943 0.388295 -vt 0.911122 0.330872 -vt 0.305356 0.682673 -vt 0.244167 0.723842 -vt 0.254319 0.672450 -vt 0.932657 0.744546 -vt 0.903943 0.744546 -vt 0.911122 0.687123 -vt 0.484392 0.887365 -vt 0.455678 0.887365 -vt 0.462856 0.829943 -vt 0.676506 0.887365 -vt 0.647792 0.887365 -vt 0.654970 0.829942 -vt 0.548430 0.887365 -vt 0.519716 0.887365 -vt 0.526894 0.829942 -vt 0.201346 0.855971 -vt 0.172632 0.855971 -vt 0.179811 0.798548 -vt 0.711830 0.887365 -vt 0.719008 0.829943 -vt 0.733365 0.829943 -vt 0.775868 0.887365 -vt 0.783046 0.829942 -vt 0.797403 0.829942 -vt 0.839905 0.876176 -vt 0.847084 0.818753 -vt 0.861441 0.818753 -vt 0.583754 0.887365 -vt 0.590933 0.829943 -vt 0.605290 0.829943 -vt 0.903943 0.206837 -vt 0.911122 0.149415 -vt 0.925479 0.149415 -vt 0.903943 0.113846 -vt 0.911122 0.056423 -vt 0.925479 0.056423 -vt 0.903943 0.876176 -vt 0.911122 0.818753 -vt 0.925479 0.818753 -vt 0.172632 0.948962 -vt 0.179811 0.891540 -vt 0.194168 0.891540 -vt 0.346174 0.696029 -vt 0.412857 0.682673 -vt 0.346174 0.710485 -vt 0.982338 0.242406 -vt 0.982338 0.301688 -vt 0.967981 0.301688 -vt 0.662149 0.922934 -vt 0.676506 0.922934 -vt 0.676506 0.982215 -vt 0.953624 0.911745 -vt 0.967981 0.911745 -vt 0.967981 0.971026 -vt 0.534073 0.922934 -vt 0.534073 0.982215 -vt 0.519716 0.982215 -vt 0.740544 0.982216 -vt 0.726187 0.982216 -vt 0.726187 0.922934 -vt 0.903943 0.911745 -vt 0.918300 0.911745 -vt 0.918300 0.971026 -vt 0.790224 0.982215 -vt 0.775868 0.982215 -vt 0.775868 0.922934 -vt 0.246812 0.966077 -vt 0.246812 0.906795 -vt 0.261169 0.906795 -vt 0.346174 0.906795 -vt 0.360531 0.906795 -vt 0.360531 0.966077 -vt 0.967981 0.653414 -vt 0.967981 0.594132 -vt 0.982338 0.594132 -vt 0.612468 0.922934 -vt 0.612468 0.982216 -vt 0.598111 0.982216 -vt 0.967981 0.206837 -vt 0.967981 0.147555 -vt 0.982338 0.147555 -vt 0.470035 0.922934 -vt 0.484392 0.922934 -vt 0.484392 0.982216 -vt 0.403994 0.966077 -vt 0.403994 0.906795 -vt 0.418351 0.906795 -vt 0.296493 0.966077 -vt 0.296493 0.906795 -vt 0.310850 0.906795 -vt 0.854262 0.971026 -vt 0.854262 0.911745 -vt 0.868619 0.911745 -vt 0.172632 0.762979 -vt 0.179811 0.666918 -vt 0.194168 0.666918 -vt 0.396816 0.775165 -vt 0.411173 0.775165 -vt 0.418351 0.871226 -vt 0.282136 0.871226 -vt 0.289315 0.775165 -vt 0.303672 0.775165 -vt 0.839905 0.388295 -vt 0.847084 0.292233 -vt 0.861441 0.292233 -vt 0.017662 0.762979 -vt 0.024841 0.666918 -vt 0.039198 0.666918 -vt 0.839905 0.113846 -vt 0.847084 0.017785 -vt 0.861441 0.017785 -vt 0.775868 0.388295 -vt 0.783046 0.292234 -vt 0.797403 0.292234 -vt 0.839905 0.651554 -vt 0.847084 0.555493 -vt 0.861441 0.555493 -vt 0.847084 0.687123 -vt 0.861441 0.687123 -vt 0.868619 0.783184 -vt 0.024840 0.798548 -vt 0.039197 0.798548 -vt 0.046376 0.894609 -vt 0.103235 0.894609 -vt 0.088878 0.894609 -vt 0.081700 0.798548 -vt 0.861441 0.245476 -vt 0.847084 0.245476 -vt 0.839905 0.149415 -vt 0.847084 0.423864 -vt 0.861441 0.423864 -vt 0.868619 0.519925 -vt 0.783046 0.149415 -vt 0.797403 0.149415 -vt 0.804581 0.245476 -vt 0.783046 0.017785 -vt 0.797403 0.017784 -vt 0.804581 0.113846 -vt 0.088878 0.666918 -vt 0.103235 0.666918 -vt 0.110414 0.762979 -vt 0.201346 0.225270 -vt 0.127166 0.225270 -vt 0.127166 0.017785 -vt 0.420354 0.017784 -vt 0.420354 0.225270 -vt 0.346174 0.225270 -vt 0.236670 0.225270 -vt 0.236670 0.017784 -vt 0.310850 0.017784 -vt 0.091842 0.017785 -vt 0.091842 0.225270 -vt 0.017662 0.225270 -vt 0.455678 0.017784 -vt 0.548430 0.017784 -vt 0.110414 0.260839 -vt 0.484392 0.794374 -vt 0.676506 0.017785 -vt 0.711830 0.017784 -vt 0.612468 0.423864 -vt 0.548430 0.794374 -vt 0.775868 0.423864 -vt 0.740544 0.423864 -vt 0.172632 0.631349 -vt 0.676506 0.794373 -vt 0.236670 0.260839 -vt 0.583754 0.017784 -vt 0.374888 0.260839 -vt 0.017662 0.260839 -vt 0.925479 0.594132 -vt 0.925479 0.423864 -vt 0.925479 0.330872 -vt 0.254319 0.734064 -vt 0.267583 0.739596 -vt 0.925479 0.687123 -vt 0.244167 0.682673 -vt 0.238673 0.696029 -vt 0.281940 0.739596 -vt 0.477213 0.829943 -vt 0.310850 0.696029 -vt 0.310850 0.710485 -vt 0.305356 0.723842 -vt 0.295204 0.734064 -vt 0.281940 0.666918 -vt 0.295204 0.672450 -vt 0.238673 0.710485 -vt 0.267583 0.666918 -vt 0.669327 0.829942 -vt 0.541251 0.829942 -vt 0.194168 0.798548 -vt 0.740544 0.887365 -vt 0.804581 0.887365 -vt 0.868619 0.876176 -vt 0.612468 0.887365 -vt 0.932657 0.206837 -vt 0.932657 0.113846 -vt 0.932657 0.876176 -vt 0.201346 0.948962 -vt 0.361820 0.734064 -vt 0.402705 0.734064 -vt 0.389441 0.739596 -vt 0.375084 0.666918 -vt 0.402705 0.672450 -vt 0.418351 0.696029 -vt 0.418351 0.710485 -vt 0.412857 0.723842 -vt 0.375084 0.739596 -vt 0.967981 0.242406 -vt 0.351668 0.682673 -vt 0.361820 0.672450 -vt 0.662149 0.982215 -vt 0.351668 0.723842 -vt 0.389441 0.666918 -vt 0.953624 0.971026 -vt 0.519716 0.922934 -vt 0.740544 0.922934 -vt 0.903943 0.971026 -vt 0.790224 0.922934 -vt 0.261169 0.966077 -vt 0.346174 0.966077 -vt 0.982338 0.653414 -vt 0.598111 0.922934 -vt 0.982338 0.206837 -vt 0.470035 0.982216 -vt 0.418351 0.966077 -vt 0.310850 0.966077 -vt 0.868619 0.971026 -vt 0.201346 0.762979 -vt 0.389638 0.871226 -vt 0.310850 0.871226 -vt 0.868619 0.388295 -vt 0.046376 0.762979 -vt 0.868619 0.113846 -vt 0.804582 0.388295 -vt 0.868619 0.651554 -vt 0.839905 0.783184 -vt 0.017662 0.894609 -vt 0.110414 0.798548 -vt 0.868619 0.149415 -vt 0.839905 0.519925 -vt 0.775868 0.245476 -vt 0.775868 0.113846 -vt 0.081700 0.762979 -vt 0.201346 0.017784 -vt 0.346174 0.017784 -vt 0.310850 0.225270 -vt 0.017662 0.017784 -vn 0.831470 0.555569 0.000001 -vn 0.980785 0.195090 0.000000 -vn 0.980785 -0.195091 0.000000 -vn 0.831470 -0.555570 0.000000 -vn 0.555570 -0.831470 -0.000000 -vn 0.195090 -0.980785 -0.000000 -vn -0.195091 -0.980785 -0.000000 -vn -0.555571 -0.831469 -0.000001 -vn -0.831470 -0.555570 -0.000001 -vn -0.980785 -0.195090 -0.000000 -vn -0.980785 0.195090 -0.000000 -vn -0.831469 0.555571 -0.000000 -vn -0.555570 0.831470 0.000000 -vn -0.195090 0.980785 0.000000 -vn 0.555571 0.831469 0.000000 -vn 0.195091 0.980785 0.000000 -vn 0.643794 0.430169 0.632838 -vn 0.759407 0.151055 0.632837 -vn 0.759406 -0.151056 0.632838 -vn 0.000001 -0.000001 1.000000 -vn 0.643793 -0.430170 0.632838 -vn 0.430169 -0.643794 0.632838 -vn 0.151054 -0.759406 0.632839 -vn -0.151055 -0.759406 0.632839 -vn -0.430170 -0.643793 0.632839 -vn -0.643793 -0.430168 0.632839 -vn -0.759406 -0.151056 0.632838 -vn -0.759407 0.151054 0.632838 -vn -0.643794 0.430170 0.632838 -vn -0.430168 0.643795 0.632838 -vn -0.151056 0.759406 0.632839 -vn 0.151056 0.759407 0.632838 -vn 0.430169 0.643794 0.632838 -vn 0.000000 -0.000000 -1.000000 -vn 0.831470 0.555570 0.000000 -vn 0.980785 0.195091 0.000000 -vn 0.980785 -0.195090 -0.000000 -vn 0.831469 -0.555570 0.000000 -vn -0.555571 -0.831469 0.000000 -vn -0.831470 -0.555569 0.000000 -vn -0.980785 0.195091 0.000000 -vn -0.831470 0.555570 0.000000 -vn 0.555570 0.831470 0.000000 -vn 0.769680 0.514283 -0.378292 -vn 0.514284 0.769680 -0.378292 -vn 0.180592 0.907899 -0.378293 -vn -0.180593 0.907899 -0.378292 -vn -0.514282 0.769681 -0.378292 -vn -0.769680 0.514284 -0.378291 -vn -0.907900 0.180593 -0.378291 -vn -0.907900 -0.180592 -0.378291 -vn -0.769681 -0.514284 -0.378290 -vn -0.514284 -0.769680 -0.378291 -vn -0.180593 -0.907900 -0.378291 -vn 0.180592 -0.907900 -0.378291 -vn 0.514284 -0.769680 -0.378292 -vn 0.769680 -0.514284 -0.378292 -vn 0.907899 -0.180592 -0.378292 -vn 0.907899 0.180593 -0.378292 -vn 0.707107 0.707107 0.000000 -vn -0.707107 -0.707107 0.000000 -vn -0.707106 0.707108 0.000000 -vn 0.707106 -0.707108 0.000000 -vn 0.831470 0.555570 0.000001 -vn -0.980785 -0.195091 -0.000000 -vn 0.643794 0.430170 0.632837 -vn 0.759407 -0.151056 0.632837 -vn 0.000000 0.000000 1.000000 -vn 0.643794 -0.430169 0.632838 -vn 0.000000 -0.000002 1.000000 -vn -0.000001 -0.000001 1.000000 -vn 0.430168 -0.643794 0.632839 -vn -0.000004 -0.000001 1.000000 -vn 0.000007 -0.000002 1.000000 -vn 0.000002 0.000004 1.000000 -vn 0.000005 -0.000002 1.000000 -vn 0.000000 0.000003 1.000000 -vn 0.000000 -0.000001 1.000000 -vn -0.000002 -0.000001 1.000000 -vn -0.000003 -0.000001 1.000000 -vn 0.151054 -0.759406 0.632838 -vn -0.151056 -0.759405 0.632839 -vn -0.430169 -0.643793 0.632839 -vn -0.643793 -0.430169 0.632839 -vn -0.759406 -0.151055 0.632839 -vn -0.759406 0.151055 0.632838 -vn -0.643794 0.430168 0.632838 -vn -0.430170 0.643793 0.632839 -vn -0.151055 0.759407 0.632838 -vn 0.430170 0.643794 0.632838 -vn 0.000003 0.000004 -1.000000 -vn 0.000005 0.000003 -1.000000 -vn -0.000007 0.000002 -1.000000 -vn -0.000004 0.000000 -1.000000 -vn 0.000000 0.000001 -1.000000 -vn -0.000002 0.000000 -1.000000 -vn 0.000001 -0.000001 -1.000000 -vn 0.000000 0.000002 -1.000000 -vn 0.000002 -0.000001 -1.000000 -vn 0.000007 0.000005 -1.000000 -vn 0.000001 0.000002 -1.000000 -vn -0.555570 -0.831470 0.000000 -vn -0.831470 -0.555570 0.000000 -vn -0.195091 0.980785 0.000000 -vn 0.514284 0.769679 -0.378292 -vn 0.180593 0.907899 -0.378292 -vn -0.180592 0.907900 -0.378292 -vn -0.514284 0.769680 -0.378291 -vn -0.769680 0.514285 -0.378291 -vn -0.907900 -0.180593 -0.378291 -vn -0.769680 -0.514284 -0.378291 -vn -0.514284 -0.769681 -0.378291 -vn 0.180593 -0.907900 -0.378291 -vn 0.514284 -0.769680 -0.378291 -vn 0.907899 -0.180593 -0.378292 -vn 0.907899 0.180592 -0.378292 -vn -0.707106 0.707107 0.000000 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/4/2 6/5/2 5/6/2 -f 6/7/3 8/8/3 7/9/3 -f 7/10/4 8/11/4 10/12/4 -f 10/13/5 12/14/5 11/15/5 -f 11/16/6 12/17/6 14/18/6 -f 14/19/7 16/20/7 15/21/7 -f 15/22/8 16/23/8 18/24/8 -f 17/25/9 18/26/9 20/27/9 -f 20/28/10 22/29/10 21/30/10 -f 22/31/11 24/32/11 23/33/11 -f 23/34/12 24/35/12 26/36/12 -f 25/37/13 26/38/13 28/39/13 -f 27/40/14 28/41/14 30/42/14 -f 32/43/15 2/44/15 1/45/15 -f 29/46/16 30/47/16 32/48/16 -f 4/49/17 2/50/17 33/51/17 -f 6/52/18 4/53/18 48/54/18 -f 8/55/19 6/56/19 47/57/19 -f 44/58/20 36/59/20 40/60/20 -f 10/61/21 8/62/21 46/63/21 -f 12/64/22 10/65/22 45/66/22 -f 14/67/23 12/68/23 44/69/23 -f 16/70/24 14/71/24 43/72/24 -f 18/73/25 16/74/25 42/75/25 -f 18/76/26 41/77/26 40/78/26 -f 20/79/27 40/80/27 39/81/27 -f 22/82/28 39/83/28 38/84/28 -f 24/85/29 38/86/29 37/87/29 -f 26/88/30 37/89/30 36/90/30 -f 28/91/31 36/92/31 35/93/31 -f 30/94/32 35/95/32 34/96/32 -f 32/97/33 34/98/33 33/99/33 -f 69/100/34 79/101/34 70/102/34 -f 64/103/35 80/104/35 65/105/35 -f 79/106/36 80/107/36 64/108/36 -f 78/109/37 79/110/37 63/111/37 -f 61/112/38 77/113/38 78/114/38 -f 76/115/5 77/116/5 61/117/5 -f 75/118/6 76/119/6 60/120/6 -f 74/121/7 75/122/7 59/123/7 -f 57/124/39 73/125/39 74/126/39 -f 72/127/40 73/128/40 57/129/40 -f 55/130/10 71/131/10 72/132/10 -f 54/133/41 70/134/41 71/135/41 -f 53/136/42 69/137/42 70/138/42 -f 68/139/13 69/140/13 53/141/13 -f 49/142/43 65/143/43 66/144/43 -f 50/145/16 66/146/16 67/147/16 -f 51/148/14 67/149/14 68/150/14 -f 3/151/44 64/152/44 49/153/44 -f 49/154/45 50/155/45 31/156/45 -f 31/157/46 50/158/46 51/159/46 -f 29/160/47 51/161/47 52/162/47 -f 27/163/48 52/164/48 53/165/48 -f 25/166/49 53/167/49 54/168/49 -f 23/169/50 54/170/50 55/171/50 -f 21/172/51 55/173/51 56/174/51 -f 56/175/52 57/176/52 17/177/52 -f 57/178/53 58/179/53 15/180/53 -f 58/181/54 59/182/54 13/183/54 -f 59/184/55 60/185/55 11/186/55 -f 60/187/56 61/188/56 9/189/56 -f 61/190/57 62/191/57 7/192/57 -f 62/193/58 63/194/58 5/195/58 -f 63/196/59 64/197/59 3/198/59 -f 82/199/60 84/200/60 83/201/60 -f 87/202/61 88/203/61 86/204/61 -f 91/205/62 92/206/62 90/207/62 -f 93/208/63 94/209/63 96/210/63 -f 3/211/64 1/1/64 4/3/64 -f 3/212/2 4/4/2 5/6/2 -f 5/213/3 6/7/3 7/9/3 -f 9/214/4 7/10/4 10/12/4 -f 9/215/5 10/13/5 11/15/5 -f 13/216/6 11/16/6 14/18/6 -f 13/217/7 14/19/7 15/21/7 -f 17/218/8 15/22/8 18/24/8 -f 19/219/9 17/25/9 20/27/9 -f 19/220/65 20/28/65 21/30/65 -f 21/221/41 22/31/41 23/33/41 -f 25/222/12 23/34/12 26/36/12 -f 27/223/13 25/37/13 28/39/13 -f 29/224/14 27/40/14 30/42/14 -f 31/225/15 32/43/15 1/45/15 -f 31/226/16 29/46/16 32/48/16 -f 48/227/66 4/49/66 33/51/66 -f 47/228/18 6/52/18 48/54/18 -f 46/229/67 8/55/67 47/57/67 -f 35/230/68 36/59/68 34/231/68 -f 45/232/69 10/61/69 46/63/69 -f 39/233/70 40/60/70 38/234/70 -f 44/58/71 33/235/71 36/59/71 -f 44/236/72 12/64/72 45/66/72 -f 45/237/73 33/235/73 44/58/73 -f 45/237/74 46/238/74 47/239/74 -f 47/239/70 48/240/70 33/235/70 -f 42/241/75 43/242/75 44/58/75 -f 40/60/76 37/243/76 38/234/76 -f 36/59/77 33/235/77 34/231/77 -f 45/237/78 47/239/78 33/235/78 -f 40/60/79 42/241/79 44/58/79 -f 40/60/68 41/244/68 42/241/68 -f 36/59/80 37/243/80 40/60/80 -f 43/245/81 14/67/81 44/69/81 -f 42/246/82 16/70/82 43/72/82 -f 41/247/83 18/73/83 42/75/83 -f 20/248/84 18/76/84 40/78/84 -f 22/249/85 20/79/85 39/81/85 -f 24/250/86 22/82/86 38/84/86 -f 26/251/87 24/85/87 37/87/87 -f 28/252/88 26/88/88 36/90/88 -f 30/253/89 28/91/89 35/93/89 -f 32/254/32 30/94/32 34/96/32 -f 2/255/90 32/97/90 33/99/90 -f 72/256/91 75/257/91 74/258/91 -f 79/101/92 66/259/92 80/260/92 -f 79/101/93 78/261/93 77/262/93 -f 77/262/94 76/263/94 75/257/94 -f 73/264/34 72/256/34 74/258/34 -f 72/256/95 79/101/95 77/262/95 -f 49/265/35 64/103/35 65/105/35 -f 69/100/96 68/266/96 67/267/96 -f 63/268/2 79/106/2 64/108/2 -f 75/257/97 72/256/97 77/262/97 -f 72/256/98 71/269/98 70/102/98 -f 79/101/99 67/267/99 66/259/99 -f 66/259/100 65/270/100 80/260/100 -f 70/102/101 79/101/101 72/256/101 -f 69/100/34 67/267/34 79/101/34 -f 62/271/3 78/109/3 63/111/3 -f 62/272/38 61/112/38 78/114/38 -f 60/273/5 76/115/5 61/117/5 -f 59/274/6 75/118/6 60/120/6 -f 58/275/7 74/121/7 59/123/7 -f 58/276/102 57/124/102 74/126/102 -f 56/277/103 72/127/103 57/129/103 -f 56/278/10 55/130/10 72/132/10 -f 55/279/11 54/133/11 71/135/11 -f 54/280/12 53/136/12 70/138/12 -f 52/281/13 68/139/13 53/141/13 -f 50/282/15 49/142/15 66/144/15 -f 51/283/16 50/145/16 67/147/16 -f 52/284/104 51/148/104 68/150/104 -f 1/285/44 3/151/44 49/153/44 -f 1/286/105 49/154/105 31/156/105 -f 29/287/106 31/157/106 51/159/106 -f 27/288/107 29/160/107 52/162/107 -f 25/289/108 27/163/108 53/165/108 -f 23/290/109 25/166/109 54/168/109 -f 21/291/50 23/169/50 55/171/50 -f 19/292/110 21/172/110 56/174/110 -f 19/293/111 56/175/111 17/177/111 -f 17/294/112 57/178/112 15/180/112 -f 15/295/54 58/181/54 13/183/54 -f 13/296/113 59/184/113 11/186/113 -f 11/297/114 60/187/114 9/189/114 -f 9/298/57 61/190/57 7/192/57 -f 7/299/115 62/193/115 5/195/115 -f 5/300/116 63/196/116 3/198/116 -f 81/301/60 82/199/60 83/201/60 -f 85/302/61 87/202/61 86/204/61 -f 89/303/117 91/205/117 90/207/117 -f 95/304/63 93/208/63 96/210/63 diff --git a/src/main/resources/assets/hbm/models/LaunchPad.obj b/src/main/resources/assets/hbm/models/LaunchPad.obj deleted file mode 100644 index 4beabf648..000000000 --- a/src/main/resources/assets/hbm/models/LaunchPad.obj +++ /dev/null @@ -1,302 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'launchpad.blend' -# www.blender.org -o Cylinder -v 1.060660 0.250000 -1.060660 -v 0.000000 0.500000 -1.000000 -v 1.500000 0.250000 0.000000 -v 0.707107 0.500000 -0.707107 -v 1.060660 0.250000 1.060660 -v 1.000000 0.500000 0.000000 -v -0.000000 0.250000 1.500000 -v 0.707107 0.500000 0.707107 -v -1.060660 0.250000 1.060660 -v -0.000000 0.500000 1.000000 -v 0.000000 0.250000 -1.500000 -v -0.707107 0.500000 0.707107 -v -1.060660 0.250000 -1.060660 -v -1.000000 0.500000 -0.000000 -v -1.500000 0.250000 -0.000000 -v -0.707107 0.500000 -0.707107 -v 0.000000 0.250000 -1.000000 -v 0.707107 0.250000 -0.707107 -v 1.000000 0.250000 0.000000 -v 0.707107 0.250000 0.707107 -v -0.000000 0.250000 1.000000 -v -0.707107 0.250000 0.707107 -v -1.000000 0.250000 -0.000000 -v -0.707107 0.250000 -0.707107 -v 0.000000 0.000000 -1.500000 -v 1.060660 0.000000 -1.060660 -v 1.500000 0.000000 0.000000 -v 1.060660 0.000000 1.060660 -v -0.000000 0.000000 1.500000 -v -1.060660 0.000000 1.060660 -v -1.500000 0.000000 -0.000000 -v -1.060660 0.000000 -1.060660 -v -0.500000 0.000000 2.000000 -v 0.500000 0.000000 2.000000 -v -0.500000 0.000000 -2.000000 -v 0.500000 0.000000 -2.000000 -v -0.500000 0.125000 -2.000000 -v 0.500000 0.125000 -2.000000 -v -0.500000 0.475000 -0.750000 -v 0.500000 0.475000 -0.750000 -v -0.500000 0.475000 0.750000 -v 0.500000 0.475000 0.750000 -v 0.500000 0.125000 2.000000 -v -0.500000 0.125000 2.000000 -v -0.500000 0.100000 0.750000 -v 0.500000 0.100000 0.750000 -v -0.500000 0.100000 -0.750000 -v 0.500000 0.100000 -0.750000 -v 2.000000 0.000000 0.500000 -v 2.000000 0.000000 -0.500000 -v -2.000000 0.000000 0.500000 -v -2.000000 0.000000 -0.500000 -v -2.000000 0.125000 0.500000 -v -2.000000 0.125000 -0.500000 -v -0.750000 0.475000 0.500000 -v -0.750000 0.475000 -0.500000 -v 0.750000 0.475000 0.500000 -v 0.750000 0.475000 -0.500000 -v 2.000000 0.125000 -0.500000 -v 2.000000 0.125000 0.500000 -v 0.750000 0.100000 0.500000 -v 0.750000 0.100000 -0.500000 -v -0.750000 0.100000 0.500000 -v -0.750000 0.100000 -0.500000 -vt 0.679427 0.603288 -vt 0.736986 0.545729 -vt 0.755787 0.564530 -vt 0.736986 0.464329 -vt 0.763575 0.464329 -vt 0.679428 0.406770 -vt 0.698229 0.387969 -vt 0.598027 0.406770 -vt 0.598027 0.380181 -vt 0.540468 0.464329 -vt 0.521667 0.445528 -vt 0.540468 0.545729 -vt 0.513879 0.545729 -vt 0.598027 0.603288 -vt 0.679427 0.629877 -vt 0.579226 0.622089 -vt 0.371403 0.064091 -vt 0.370621 0.122777 -vt 0.246818 0.069553 -vt 0.028468 0.292851 -vt 0.071192 0.251063 -vt 0.122297 0.378412 -vt 0.289175 0.473320 -vt 0.246967 0.432446 -vt 0.370760 0.378824 -vt 0.456943 0.213084 -vt 0.412191 0.251217 -vt 0.204262 0.028468 -vt 0.122271 0.123726 -vt 0.028468 0.209288 -vt 0.062521 0.124396 -vt 0.121333 0.437581 -vt 0.143605 0.355918 -vt 0.245661 0.401664 -vt 0.429011 0.374227 -vt 0.552285 0.820181 -vt 0.552285 0.686813 -vt 0.658640 0.686813 -vt 0.346906 0.359230 -vt 0.145516 0.144219 -vt 0.102263 0.249691 -vt 0.382068 0.252292 -vt 0.248398 0.100332 -vt 0.348830 0.144590 -vt 0.898743 0.686813 -vt 0.898743 0.820181 -vt 0.792388 0.820181 -vt 0.658640 0.971532 -vt 0.552285 0.971532 -vt 0.552285 0.833475 -vt 0.898743 0.833475 -vt 0.792388 0.833475 -vt 0.898743 0.971532 -vt 0.658640 0.833475 -vt 0.792388 0.971532 -vt 0.753982 0.960778 -vt 0.937149 0.960778 -vt 0.513879 0.960778 -vt 0.539483 0.829891 -vt 0.671442 0.829891 -vt 0.697046 0.960778 -vt 0.413332 0.663908 -vt 0.306977 0.663908 -vt 0.306977 0.530539 -vt 0.066874 0.530539 -vt 0.173229 0.530539 -vt 0.173229 0.663908 -vt 0.413332 0.815259 -vt 0.306977 0.815259 -vt 0.306977 0.677202 -vt 0.066874 0.663908 -vt 0.173229 0.677202 -vt 0.066874 0.815259 -vt 0.066874 0.677202 -vt 0.413332 0.677202 -vt 0.028468 0.804505 -vt 0.211635 0.804505 -vt 0.173229 0.815259 -vt 0.268571 0.804505 -vt 0.294175 0.673617 -vt 0.426134 0.673617 -vt 0.451738 0.804505 -vt 0.722318 0.323245 -vt 0.513879 0.236907 -vt 0.600218 0.028468 -vt 0.698228 0.622089 -vt 0.763575 0.545729 -vt 0.755787 0.445528 -vt 0.679428 0.380181 -vt 0.579226 0.387969 -vt 0.513880 0.464329 -vt 0.598027 0.629877 -vt 0.521667 0.564530 -vt 0.288867 0.028609 -vt 0.062538 0.377750 -vt 0.371704 0.437572 -vt 0.429230 0.127457 -vt 0.121231 0.064583 -vt 0.204447 0.473603 -vt 0.456631 0.289155 -vt 0.658640 0.820181 -vt 0.792388 0.686813 -vt 0.779586 0.829891 -vt 0.911545 0.829891 -vt 0.413332 0.530539 -vt 0.054072 0.673618 -vt 0.186031 0.673618 -vt 0.722318 0.028468 -vt 0.808657 0.114806 -vt 0.808657 0.236907 -vt 0.600218 0.323245 -vt 0.513879 0.114806 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn 0.000000 1.000000 -0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn 0.000000 -0.996800 0.079700 -vn 0.000000 -0.996800 -0.079700 -vn 0.000000 0.963000 -0.269600 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.963000 0.269600 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.079700 -0.996800 0.000000 -vn -0.079700 -0.996800 -0.000000 -vn -0.269600 0.963000 -0.000000 -vn 0.269600 0.963000 0.000000 -vn 0.000000 -1.000000 0.000000 -s off -f 2/1/1 4/2/1 18/3/1 -f 4/2/2 6/4/2 19/5/2 -f 6/4/3 8/6/3 20/7/3 -f 8/6/4 10/8/4 21/9/4 -f 10/8/5 12/10/5 22/11/5 -f 12/10/6 14/12/6 23/13/6 -f 14/12/7 8/6/7 6/4/7 -f 16/14/8 2/1/8 17/15/8 -f 14/12/9 16/14/9 24/16/9 -f 17/17/7 11/18/7 13/19/7 -f 22/20/7 9/21/7 7/22/7 -f 20/23/7 5/24/7 3/25/7 -f 18/26/7 1/27/7 11/18/7 -f 24/28/7 13/19/7 15/29/7 -f 22/30/7 23/31/7 15/29/7 -f 21/32/7 7/22/7 5/24/7 -f 7/22/4 29/33/4 28/34/4 -f 19/35/7 3/25/7 1/27/7 -f 36/36/10 48/37/10 47/38/10 -f 5/24/3 28/34/3 27/39/3 -f 15/29/6 31/40/6 30/41/6 -f 9/21/5 30/41/5 29/33/5 -f 3/25/2 27/39/2 26/42/2 -f 13/19/9 32/43/9 31/40/9 -f 1/27/1 26/42/1 25/44/1 -f 11/18/8 25/44/8 32/43/8 -f 46/45/11 34/46/11 33/47/11 -f 39/48/12 40/49/12 38/50/12 -f 33/47/13 34/46/13 43/51/13 -f 44/52/14 43/51/14 42/53/14 -f 37/54/15 38/50/15 36/36/15 -f 44/52/16 41/55/16 45/56/16 -f 46/57/17 42/53/17 43/51/17 -f 48/58/17 36/59/17 38/50/17 -f 37/54/16 35/60/16 47/61/16 -f 51/62/18 52/63/18 64/64/18 -f 61/65/19 62/66/19 50/67/19 -f 55/68/20 56/69/20 54/70/20 -f 49/71/17 50/67/17 59/72/17 -f 57/73/21 60/74/21 59/72/21 -f 53/75/16 54/70/16 52/63/16 -f 60/74/13 57/73/13 61/76/13 -f 62/77/15 58/78/15 59/72/15 -f 64/79/15 52/80/15 54/70/15 -f 53/75/13 51/81/13 63/82/13 -f 28/83/22 30/84/22 32/85/22 -f 17/86/1 2/1/1 18/3/1 -f 18/87/2 4/2/2 19/5/2 -f 19/88/3 6/4/3 20/7/3 -f 20/89/4 8/6/4 21/9/4 -f 21/90/5 10/8/5 22/11/5 -f 22/91/6 12/10/6 23/13/6 -f 6/4/7 4/2/7 2/1/7 -f 2/1/7 16/14/7 6/4/7 -f 14/12/7 12/10/7 10/8/7 -f 10/8/7 8/6/7 14/12/7 -f 6/4/7 16/14/7 14/12/7 -f 24/92/8 16/14/8 17/15/8 -f 23/93/9 14/12/9 24/16/9 -f 24/94/7 17/17/7 13/19/7 -f 21/95/7 22/20/7 7/22/7 -f 19/96/7 20/23/7 3/25/7 -f 17/97/7 18/26/7 11/18/7 -f 23/98/7 24/28/7 15/29/7 -f 9/21/7 22/30/7 15/29/7 -f 20/99/7 21/32/7 5/24/7 -f 5/24/4 7/22/4 28/34/4 -f 18/100/7 19/35/7 1/27/7 -f 35/101/10 36/36/10 47/38/10 -f 3/25/3 5/24/3 27/39/3 -f 9/21/6 15/29/6 30/41/6 -f 7/22/5 9/21/5 29/33/5 -f 1/27/2 3/25/2 26/42/2 -f 15/29/9 13/19/9 31/40/9 -f 11/18/1 1/27/1 25/44/1 -f 13/19/8 11/18/8 32/43/8 -f 45/102/11 46/45/11 33/47/11 -f 37/54/12 39/48/12 38/50/12 -f 44/52/13 33/47/13 43/51/13 -f 41/55/14 44/52/14 42/53/14 -f 35/101/15 37/54/15 36/36/15 -f 33/103/16 44/52/16 45/56/16 -f 34/104/17 46/57/17 43/51/17 -f 40/49/17 48/58/17 38/50/17 -f 39/48/16 37/54/16 47/61/16 -f 63/105/18 51/62/18 64/64/18 -f 49/71/19 61/65/19 50/67/19 -f 53/75/20 55/68/20 54/70/20 -f 60/74/17 49/71/17 59/72/17 -f 58/78/21 57/73/21 59/72/21 -f 51/62/16 53/75/16 52/63/16 -f 49/106/13 60/74/13 61/76/13 -f 50/107/15 62/77/15 59/72/15 -f 56/69/15 64/79/15 54/70/15 -f 55/68/13 53/75/13 63/82/13 -f 32/85/22 25/108/22 26/109/22 -f 26/109/22 27/110/22 28/83/22 -f 28/83/22 29/111/22 30/84/22 -f 30/84/22 31/112/22 32/85/22 -f 32/85/22 26/109/22 28/83/22 diff --git a/src/main/resources/assets/hbm/models/Missile.obj b/src/main/resources/assets/hbm/models/Missile.obj deleted file mode 100644 index 34659fbf8..000000000 --- a/src/main/resources/assets/hbm/models/Missile.obj +++ /dev/null @@ -1,704 +0,0 @@ -# Blender v2.70 (sub 0) OBJ File: 'Missile.blend' -# www.blender.org -o Cylinder -v -0.109738 3.500000 -0.551692 -v -0.109738 3.750000 -0.551692 -v 0.109738 3.500000 -0.551692 -v 0.109738 3.750000 -0.551692 -v 0.312508 3.500000 -0.467702 -v 0.312508 3.750000 -0.467702 -v 0.467702 3.500000 -0.312508 -v 0.467702 3.750000 -0.312508 -v 0.551692 3.500000 -0.109738 -v 0.551692 3.750000 -0.109738 -v 0.551692 3.500000 0.109738 -v 0.551692 3.750000 0.109738 -v 0.467702 3.500000 0.312508 -v 0.467702 3.750000 0.312508 -v 0.312508 3.500000 0.467702 -v 0.312508 3.750000 0.467702 -v 0.109738 3.500000 0.551692 -v 0.109738 3.750000 0.551692 -v -0.109738 3.500000 0.551692 -v -0.109738 3.750000 0.551692 -v -0.312508 3.500000 0.467702 -v -0.312508 3.750000 0.467702 -v -0.467702 3.500000 0.312508 -v -0.467702 3.750000 0.312508 -v -0.551692 3.500000 0.109738 -v -0.551692 3.750000 0.109738 -v -0.551692 3.500000 -0.109738 -v -0.551692 3.750000 -0.109738 -v -0.467702 3.500000 -0.312508 -v -0.467702 3.750000 -0.312508 -v -0.312508 3.500000 -0.467702 -v -0.312508 3.750000 -0.467702 -v -0.097545 1.000000 -0.490393 -v -0.097545 3.500000 -0.490393 -v 0.097545 1.000000 -0.490393 -v 0.097545 3.500000 -0.490393 -v 0.277785 1.000000 -0.415735 -v 0.277785 3.500000 -0.415735 -v 0.415735 1.000000 -0.277785 -v 0.415735 3.500000 -0.277785 -v 0.490393 1.000000 -0.097545 -v 0.490393 3.500000 -0.097545 -v 0.490393 1.000000 0.097545 -v 0.490393 3.500000 0.097545 -v 0.415735 1.000000 0.277785 -v 0.415735 3.500000 0.277785 -v 0.277785 1.000000 0.415735 -v 0.277785 3.500000 0.415735 -v 0.097545 1.000000 0.490393 -v 0.097545 3.500000 0.490393 -v -0.097545 1.000000 0.490393 -v -0.097545 3.500000 0.490393 -v -0.277785 1.000000 0.415735 -v -0.277785 3.500000 0.415735 -v -0.415735 1.000000 0.277785 -v -0.415735 3.500000 0.277785 -v -0.490393 1.000000 0.097545 -v -0.490393 3.500000 0.097545 -v -0.490393 1.000000 -0.097545 -v -0.490393 3.500000 -0.097545 -v -0.415735 1.000000 -0.277785 -v -0.415735 3.500000 -0.277785 -v -0.277785 1.000000 -0.415735 -v -0.277785 3.500000 -0.415735 -v -0.036579 4.750000 -0.183897 -v 0.036580 4.750000 -0.183897 -v 0.104169 4.750000 -0.155901 -v 0.155901 4.750000 -0.104169 -v 0.183897 4.750000 -0.036579 -v 0.183897 4.750000 0.036579 -v 0.155901 4.750000 0.104169 -v 0.104170 4.750000 0.155901 -v 0.036580 4.750000 0.183897 -v -0.036579 4.750000 0.183897 -v -0.104169 4.750000 0.155901 -v -0.155901 4.750000 0.104169 -v -0.183897 4.750000 0.036579 -v -0.183897 4.750000 -0.036579 -v -0.155900 4.750000 -0.104169 -v -0.104169 4.750000 -0.155901 -v -0.146318 0.000000 -0.735589 -v 0.146318 0.000000 -0.735589 -v 0.416678 0.000000 -0.623602 -v 0.623602 0.000000 -0.416678 -v 0.735589 0.000000 -0.146318 -v 0.735589 0.000000 0.146318 -v 0.623602 0.000000 0.416678 -v 0.416678 0.000000 0.623602 -v 0.146318 0.000000 0.735589 -v -0.146318 0.000000 0.735589 -v -0.416678 0.000000 0.623602 -v -0.623602 0.000000 0.416678 -v -0.735589 0.000000 0.146318 -v -0.735589 0.000000 -0.146318 -v -0.623602 0.000000 -0.416678 -v -0.416678 0.000000 -0.623602 -vt 0.406722 0.903820 -vt 0.371027 0.903820 -vt 0.371027 0.863107 -vt 0.351511 0.964074 -vt 0.315817 0.964074 -vt 0.315817 0.923362 -vt 0.935031 0.050484 -vt 0.899337 0.050484 -vt 0.899337 0.009771 -vt 0.045453 0.943524 -vt 0.009758 0.943524 -vt 0.009758 0.902811 -vt 0.249022 0.929334 -vt 0.213328 0.929334 -vt 0.213328 0.888621 -vt 0.406722 0.964074 -vt 0.371027 0.964074 -vt 0.371027 0.923362 -vt 0.505245 0.903820 -vt 0.469551 0.903820 -vt 0.469551 0.863107 -vt 0.191893 0.955207 -vt 0.156199 0.955207 -vt 0.156199 0.914494 -vt 0.136683 0.974389 -vt 0.100988 0.974389 -vt 0.100988 0.933677 -vt 0.351511 0.903820 -vt 0.315817 0.903820 -vt 0.315817 0.863107 -vt 0.505245 0.964074 -vt 0.469551 0.964074 -vt 0.469551 0.923362 -vt 0.009758 0.842556 -vt 0.045453 0.842556 -vt 0.045453 0.883269 -vt 0.935031 0.110738 -vt 0.899337 0.110738 -vt 0.899337 0.070026 -vt 0.899337 0.136733 -vt 0.935031 0.136733 -vt 0.935031 0.177445 -vt 0.954548 0.563561 -vt 0.966446 0.390045 -vt 0.978344 0.390045 -vt 0.213328 0.948876 -vt 0.249022 0.948876 -vt 0.249022 0.989588 -vt 0.191893 0.894952 -vt 0.156199 0.894952 -vt 0.156199 0.854239 -vt 0.023418 0.307846 -vt 0.031869 0.313501 -vt 0.019727 0.342853 -vt 0.556490 0.416897 -vt 0.524761 0.416897 -vt 0.524761 0.009771 -vt 0.627250 0.009771 -vt 0.658979 0.009771 -vt 0.658979 0.416897 -vt 0.780984 0.009771 -vt 0.812712 0.009771 -vt 0.812712 0.416897 -vt 0.710223 0.416897 -vt 0.678495 0.416897 -vt 0.678495 0.009771 -vt 0.761468 0.416897 -vt 0.729739 0.416897 -vt 0.729739 0.009771 -vt 0.454001 0.416897 -vt 0.422272 0.416897 -vt 0.422272 0.009771 -vt 0.473517 0.436439 -vt 0.505245 0.436439 -vt 0.505245 0.843565 -vt 0.351511 0.843565 -vt 0.319783 0.843565 -vt 0.319783 0.436439 -vt 0.300267 0.843565 -vt 0.268538 0.843565 -vt 0.268538 0.436439 -vt 0.217294 0.268895 -vt 0.249022 0.268895 -vt 0.249022 0.676021 -vt 0.300267 0.416897 -vt 0.268538 0.416897 -vt 0.268538 0.009771 -vt 0.402756 0.416897 -vt 0.371028 0.416897 -vt 0.371027 0.009771 -vt 0.505245 0.416897 -vt 0.473517 0.416897 -vt 0.473517 0.009771 -vt 0.351511 0.416897 -vt 0.319783 0.416897 -vt 0.319783 0.009771 -vt 0.454000 0.436439 -vt 0.454000 0.843565 -vt 0.422272 0.843565 -vt 0.576006 0.009771 -vt 0.607734 0.009771 -vt 0.607734 0.416897 -vt 0.840160 0.009771 -vt 0.871889 0.009771 -vt 0.879821 0.177445 -vt 0.136683 0.878230 -vt 0.136683 0.890144 -vt 0.089833 0.858799 -vt 0.603768 0.984388 -vt 0.615666 0.810872 -vt 0.627564 0.810872 -vt 0.658979 0.984388 -vt 0.670877 0.810872 -vt 0.682775 0.810872 -vt 0.773680 0.984388 -vt 0.737986 0.984388 -vt 0.749884 0.810872 -vt 0.112561 0.834697 -vt 0.076867 0.834697 -vt 0.088765 0.661181 -vt 0.895999 0.990229 -vt 0.860305 0.990229 -vt 0.872203 0.816713 -vt 0.951210 0.990229 -vt 0.915515 0.990229 -vt 0.927413 0.816713 -vt 0.935031 0.563561 -vt 0.899337 0.563561 -vt 0.911235 0.390045 -vt 0.915515 0.797171 -vt 0.927414 0.623655 -vt 0.939312 0.623655 -vt 0.112561 0.641639 -vt 0.076867 0.641639 -vt 0.088765 0.468123 -vt 0.213328 0.869079 -vt 0.225226 0.695563 -vt 0.237124 0.695563 -vt 0.860305 0.797171 -vt 0.872203 0.623655 -vt 0.884101 0.623655 -vt 0.954548 0.370503 -vt 0.966446 0.196987 -vt 0.978344 0.196987 -vt 0.899337 0.370503 -vt 0.911235 0.196987 -vt 0.923133 0.196987 -vt 0.524761 0.984388 -vt 0.536659 0.810872 -vt 0.548557 0.810872 -vt 0.805094 0.984387 -vt 0.816992 0.810872 -vt 0.828891 0.810872 -vt 0.061624 0.028008 -vt 0.105594 0.009771 -vt 0.027971 0.197418 -vt 0.181274 0.468123 -vt 0.189206 0.635798 -vt 0.141614 0.635798 -vt 0.049419 0.655340 -vt 0.057351 0.823014 -vt 0.009758 0.823014 -vt 0.871889 0.249223 -vt 0.879821 0.416897 -vt 0.832228 0.416897 -vt 0.765748 0.436439 -vt 0.773680 0.604113 -vt 0.726087 0.604113 -vt 0.532693 0.791330 -vt 0.524761 0.623655 -vt 0.572354 0.623655 -vt 0.698639 0.436439 -vt 0.706571 0.604113 -vt 0.658979 0.604113 -vt 0.181274 0.655340 -vt 0.189206 0.823014 -vt 0.141614 0.823014 -vt 0.631531 0.604113 -vt 0.599802 0.604113 -vt 0.591870 0.436439 -vt 0.599802 0.791330 -vt 0.591870 0.623655 -vt 0.639463 0.623655 -vt 0.698639 0.623655 -vt 0.706571 0.791330 -vt 0.658979 0.791330 -vt 0.049419 0.468123 -vt 0.057351 0.635798 -vt 0.009758 0.635798 -vt 0.801128 0.436439 -vt 0.832857 0.436439 -vt 0.840789 0.604113 -vt 0.564422 0.436439 -vt 0.572354 0.604113 -vt 0.524761 0.604113 -vt 0.801128 0.623655 -vt 0.832857 0.623655 -vt 0.840789 0.791330 -vt 0.765748 0.791330 -vt 0.734019 0.791330 -vt 0.726087 0.623655 -vt 0.009758 0.376609 -vt 0.009758 0.340867 -vt 0.031869 0.403976 -vt 0.023418 0.409630 -vt 0.054305 0.426441 -vt 0.048657 0.434904 -vt 0.081635 0.448581 -vt 0.117329 0.448581 -vt 0.083618 0.438599 -vt 0.150307 0.434904 -vt 0.115346 0.438599 -vt 0.175547 0.409630 -vt 0.144660 0.426441 -vt 0.179237 0.374624 -vt 0.189206 0.376609 -vt 0.189206 0.340867 -vt 0.167095 0.313501 -vt 0.175547 0.307846 -vt 0.144660 0.291036 -vt 0.150307 0.282573 -vt 0.115346 0.278878 -vt 0.117329 0.268895 -vt 0.081635 0.268895 -vt 0.054305 0.291036 -vt 0.048658 0.282573 -vt 0.406722 0.863107 -vt 0.351511 0.923362 -vt 0.935031 0.009771 -vt 0.045453 0.902811 -vt 0.249022 0.888621 -vt 0.406722 0.923362 -vt 0.505245 0.863107 -vt 0.191893 0.914494 -vt 0.136683 0.933677 -vt 0.351511 0.863107 -vt 0.505245 0.923362 -vt 0.009758 0.883269 -vt 0.935031 0.070026 -vt 0.899337 0.177445 -vt 0.990242 0.563561 -vt 0.213328 0.989588 -vt 0.191893 0.854239 -vt 0.556490 0.009771 -vt 0.627250 0.416897 -vt 0.780984 0.416897 -vt 0.710223 0.009771 -vt 0.761468 0.009771 -vt 0.454000 0.009771 -vt 0.473517 0.843565 -vt 0.351511 0.436439 -vt 0.300267 0.436439 -vt 0.217294 0.676021 -vt 0.300267 0.009771 -vt 0.402756 0.009771 -vt 0.505245 0.009771 -vt 0.351511 0.009771 -vt 0.422272 0.436439 -vt 0.576006 0.416897 -vt 0.832228 0.177445 -vt 0.132130 0.901151 -vt 0.123716 0.909575 -vt 0.112724 0.914135 -vt 0.100826 0.914135 -vt 0.081420 0.901151 -vt 0.076867 0.890144 -vt 0.089833 0.909575 -vt 0.076867 0.878230 -vt 0.081420 0.867223 -vt 0.100826 0.854239 -vt 0.112724 0.854239 -vt 0.123716 0.858799 -vt 0.132130 0.867223 -vt 0.639463 0.984388 -vt 0.694673 0.984388 -vt 0.761782 0.810872 -vt 0.100663 0.661181 -vt 0.884101 0.816713 -vt 0.939312 0.816713 -vt 0.923133 0.390045 -vt 0.951210 0.797171 -vt 0.100663 0.468123 -vt 0.249022 0.869079 -vt 0.895999 0.797171 -vt 0.990242 0.370503 -vt 0.935031 0.370503 -vt 0.560456 0.984388 -vt 0.840789 0.984388 -vt 0.197156 0.028008 -vt 0.230809 0.061706 -vt 0.249022 0.105734 -vt 0.249022 0.153390 -vt 0.230809 0.197418 -vt 0.197156 0.231116 -vt 0.153186 0.249353 -vt 0.153186 0.009771 -vt 0.061624 0.231116 -vt 0.009758 0.153390 -vt 0.009758 0.105734 -vt 0.027971 0.061706 -vt 0.105594 0.249353 -vt 0.149546 0.468123 -vt 0.017690 0.655340 -vt 0.840160 0.249223 -vt 0.734020 0.436439 -vt 0.564422 0.791330 -vt 0.666911 0.436439 -vt 0.149545 0.655340 -vt 0.639463 0.436439 -vt 0.631530 0.791330 -vt 0.666911 0.623655 -vt 0.017690 0.468123 -vt 0.793196 0.604113 -vt 0.532693 0.436439 -vt 0.793196 0.791330 -vt 0.773680 0.623655 -vt 0.019727 0.374623 -vt 0.167095 0.403976 -vt 0.179237 0.342853 -vt 0.083618 0.278878 -vn 0.000000 0.000000 -1.000000 -vn 0.382684 0.000000 -0.923879 -vn 0.707107 0.000000 -0.707107 -vn 0.923879 0.000000 -0.382684 -vn 1.000000 0.000000 0.000000 -vn 0.923880 0.000000 0.382684 -vn 0.707107 0.000000 0.707107 -vn 0.382684 0.000000 0.923879 -vn 0.000000 0.000000 1.000000 -vn -0.382683 0.000000 0.923880 -vn -0.707107 0.000000 0.707107 -vn -0.923880 0.000000 0.382683 -vn -1.000000 0.000000 -0.000000 -vn -0.923880 0.000000 -0.382683 -vn 0.663644 0.345188 -0.663643 -vn -0.382683 0.000000 -0.923880 -vn -0.707106 0.000000 -0.707107 -vn 0.000000 -1.000000 0.000000 -vn 0.382683 0.000000 -0.923880 -vn 0.923880 0.000000 -0.382683 -vn 0.923880 0.000000 0.382683 -vn -0.923879 0.000000 0.382683 -vn -0.923879 0.000000 -0.382684 -vn -0.707107 0.000000 -0.707107 -vn 0.371674 0.238142 -0.897300 -vn 0.000000 1.000000 0.000006 -vn -0.867092 0.345187 -0.359162 -vn 0.867092 0.345188 0.359161 -vn 0.000000 0.345187 0.938534 -vn -0.867092 0.345188 0.359162 -vn 0.867092 0.345188 -0.359161 -vn -0.663643 0.345188 -0.663644 -vn 0.663644 0.345188 0.663643 -vn -0.359162 0.345188 0.867092 -vn 0.359162 0.345188 -0.867092 -vn -0.938534 0.345188 0.000001 -vn 0.938534 0.345188 0.000001 -vn -0.359160 0.345187 -0.867093 -vn 0.000000 0.345188 -0.938534 -vn 0.359162 0.345188 0.867092 -vn -0.663643 0.345188 0.663644 -vn -0.971230 0.238142 0.000000 -vn 0.971230 0.238142 -0.000000 -vn -0.371673 0.238142 -0.897300 -vn 0.000000 0.238142 -0.971230 -vn 0.371674 0.238142 0.897300 -vn -0.686763 0.238142 0.686764 -vn 0.686763 0.238142 -0.686764 -vn -0.897300 0.238142 -0.371674 -vn 0.897300 0.238142 0.371674 -vn 0.000000 0.238142 0.971230 -vn -0.897300 0.238142 0.371674 -vn 0.897300 0.238142 -0.371674 -vn -0.686763 0.238142 -0.686764 -vn 0.686763 0.238142 0.686763 -vn -0.371674 0.238142 0.897300 -vn 0.000000 -1.000000 0.000003 -vn 0.000000 -1.000000 -0.000002 -vn 0.000000 -1.000000 0.000009 -vn 0.000000 -1.000000 0.000002 -vn 0.923879 0.000000 0.382684 -vn 0.707107 0.000000 0.707106 -vn 0.000001 0.000000 1.000000 -vn -0.382684 0.000000 0.923879 -vn -0.923879 0.000000 0.382684 -vn -0.707107 0.000000 -0.707106 -vn 0.000000 -1.000000 -0.000009 -vn 0.382683 0.000000 0.923880 -vn 0.000000 1.000000 0.000058 -vn 0.000000 1.000000 -0.000015 -vn 0.000000 1.000000 0.000000 -vn 0.000000 1.000000 -0.000001 -vn 0.000000 1.000000 -0.000029 -vn 0.000000 1.000000 -0.000004 -vn 0.000000 1.000000 -0.000016 -vn -0.867092 0.345188 -0.359161 -vn 0.000000 1.000000 0.000002 -vn 0.867092 0.345187 0.359162 -vn 0.000001 0.345187 0.938534 -vn -0.867093 0.345188 0.359159 -vn 0.867091 0.345187 -0.359165 -vn -0.663643 0.345187 -0.663644 -vn 0.663643 0.345187 0.663644 -vn -0.359161 0.345188 0.867092 -vn 0.359162 0.345187 -0.867092 -vn -0.938534 0.345188 0.000000 -vn 0.938534 0.345188 0.000000 -vn -0.359162 0.345188 -0.867092 -vn 0.359161 0.345188 0.867092 -vn -0.663644 0.345188 0.663644 -vn -0.371674 0.238142 -0.897300 -vn 0.686764 0.238142 -0.686764 -vn 0.686764 0.238142 0.686763 -vn -0.371673 0.238142 0.897300 -vn 0.000000 -1.000000 0.000005 -vn 0.000000 -1.000000 -0.000010 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/4/2 6/5/2 5/6/2 -f 6/7/3 8/8/3 7/9/3 -f 8/10/4 10/11/4 9/12/4 -f 10/13/5 12/14/5 11/15/5 -f 12/16/6 14/17/6 13/18/6 -f 14/19/7 16/20/7 15/21/7 -f 16/22/8 18/23/8 17/24/8 -f 18/25/9 20/26/9 19/27/9 -f 20/28/10 22/29/10 21/30/10 -f 22/31/11 24/32/11 23/33/11 -f 24/34/12 26/35/12 25/36/12 -f 26/37/13 28/38/13 27/39/13 -f 28/40/14 30/41/14 29/42/14 -f 6/43/15 67/44/15 68/45/15 -f 32/46/16 2/47/16 1/48/16 -f 30/49/17 32/50/17 31/51/17 -f 5/52/18 38/53/18 36/54/18 -f 34/55/1 36/56/1 35/57/1 -f 36/58/19 38/59/19 37/60/19 -f 38/61/3 40/62/3 39/63/3 -f 40/64/20 42/65/20 41/66/20 -f 42/67/5 44/68/5 43/69/5 -f 44/70/21 46/71/21 45/72/21 -f 46/73/7 48/74/7 47/75/7 -f 48/76/8 50/77/8 49/78/8 -f 50/79/9 52/80/9 51/81/9 -f 52/82/10 54/83/10 53/84/10 -f 54/85/11 56/86/11 55/87/11 -f 56/88/22 58/89/22 57/90/22 -f 58/91/13 60/92/13 59/93/13 -f 60/94/23 62/95/23 61/96/23 -f 63/97/16 64/98/16 34/99/16 -f 62/100/24 64/101/24 63/102/24 -f 35/103/25 37/104/25 83/105/25 -f 68/106/26 67/107/26 73/108/26 -f 28/109/27 78/110/27 79/111/27 -f 12/112/28 70/113/28 71/114/28 -f 20/115/29 18/116/29 73/117/29 -f 26/118/30 24/119/30 76/120/30 -f 10/121/31 8/122/31 68/123/31 -f 32/124/32 30/125/32 79/126/32 -f 16/127/33 14/128/33 71/129/33 -f 20/130/34 74/131/34 75/132/34 -f 6/133/35 4/134/35 66/135/35 -f 26/136/36 77/137/36 78/138/36 -f 10/139/37 69/140/37 70/141/37 -f 32/142/38 80/143/38 65/144/38 -f 2/145/39 65/146/39 66/147/39 -f 16/148/40 72/149/40 73/150/40 -f 22/151/41 75/152/41 76/153/41 -f 96/154/18 81/155/18 92/156/18 -f 59/157/42 94/158/42 93/159/42 -f 43/160/43 86/161/43 85/162/43 -f 33/163/44 81/164/44 96/165/44 -f 35/166/45 82/167/45 81/168/45 -f 49/169/46 89/170/46 88/171/46 -f 55/172/47 92/173/47 91/174/47 -f 39/175/48 84/176/48 83/177/48 -f 59/178/49 61/179/49 95/180/49 -f 45/181/50 87/182/50 86/183/50 -f 51/184/51 90/185/51 89/186/51 -f 57/187/52 93/188/52 92/189/52 -f 39/190/53 41/191/53 85/192/53 -f 63/193/54 96/194/54 95/195/54 -f 45/196/55 47/197/55 88/198/55 -f 51/199/56 53/200/56 91/201/56 -f 1/202/57 3/203/57 36/54/57 -f 64/204/18 31/205/18 1/202/18 -f 62/206/18 29/207/18 31/205/18 -f 27/208/18 29/207/18 62/206/18 -f 25/209/18 27/208/18 60/210/18 -f 23/211/58 25/209/58 58/212/58 -f 21/213/18 23/211/18 56/214/18 -f 52/215/59 19/216/59 21/213/59 -f 17/217/60 19/216/60 52/215/60 -f 48/218/18 15/219/18 17/217/18 -f 46/220/18 13/221/18 15/219/18 -f 44/222/18 11/223/18 13/221/18 -f 9/224/18 11/223/18 44/222/18 -f 40/225/18 7/226/18 9/224/18 -f 38/53/18 5/52/18 7/226/18 -f 1/227/1 2/1/1 3/3/1 -f 3/228/19 4/4/19 5/6/19 -f 5/229/3 6/7/3 7/9/3 -f 7/230/4 8/10/4 9/12/4 -f 9/231/5 10/13/5 11/15/5 -f 11/232/61 12/16/61 13/18/61 -f 13/233/62 14/19/62 15/21/62 -f 15/234/8 16/22/8 17/24/8 -f 17/235/63 18/25/63 19/27/63 -f 19/236/64 20/28/64 21/30/64 -f 21/237/11 22/31/11 23/33/11 -f 23/238/65 24/34/65 25/36/65 -f 25/239/13 26/37/13 27/39/13 -f 27/240/14 28/40/14 29/42/14 -f 8/241/15 6/43/15 68/45/15 -f 31/242/16 32/46/16 1/48/16 -f 29/243/66 30/49/66 31/51/66 -f 3/203/67 5/52/67 36/54/67 -f 33/244/1 34/55/1 35/57/1 -f 35/245/19 36/58/19 37/60/19 -f 37/246/3 38/61/3 39/63/3 -f 39/247/20 40/64/20 41/66/20 -f 41/248/5 42/67/5 43/69/5 -f 43/249/21 44/70/21 45/72/21 -f 45/250/7 46/73/7 47/75/7 -f 47/251/68 48/76/68 49/78/68 -f 49/252/9 50/79/9 51/81/9 -f 51/253/10 52/82/10 53/84/10 -f 53/254/11 54/85/11 55/87/11 -f 55/255/65 56/88/65 57/90/65 -f 57/256/13 58/91/13 59/93/13 -f 59/257/23 60/94/23 61/96/23 -f 33/258/16 63/97/16 34/99/16 -f 61/259/24 62/100/24 63/102/24 -f 82/260/25 35/103/25 83/105/25 -f 67/107/69 66/261/69 65/262/69 -f 65/262/70 80/263/70 79/264/70 -f 77/265/71 76/266/71 78/267/71 -f 75/268/72 79/264/72 76/266/72 -f 75/268/73 74/269/73 73/108/73 -f 73/108/71 72/270/71 71/271/71 -f 71/271/74 70/272/74 69/273/74 -f 76/266/71 79/264/71 78/267/71 -f 67/107/75 65/262/75 79/264/75 -f 71/271/71 69/273/71 68/106/71 -f 71/271/71 68/106/71 73/108/71 -f 30/274/76 28/109/76 79/111/76 -f 67/107/77 79/264/77 75/268/77 -f 14/275/78 12/112/78 71/114/78 -f 67/107/71 75/268/71 73/108/71 -f 74/276/79 20/115/79 73/117/79 -f 77/277/80 26/118/80 76/120/80 -f 69/278/81 10/121/81 68/123/81 -f 80/279/82 32/124/82 79/126/82 -f 72/280/83 16/127/83 71/129/83 -f 22/281/84 20/130/84 75/132/84 -f 67/282/85 6/133/85 66/135/85 -f 28/283/86 26/136/86 78/138/86 -f 12/284/87 10/139/87 70/141/87 -f 2/285/88 32/142/88 65/144/88 -f 4/286/39 2/145/39 66/147/39 -f 18/287/89 16/148/89 73/150/89 -f 24/288/90 22/151/90 76/153/90 -f 92/156/18 81/155/18 83/289/18 -f 83/289/18 84/290/18 85/291/18 -f 86/292/18 87/293/18 85/291/18 -f 88/294/18 89/295/18 87/293/18 -f 81/155/18 82/296/18 83/289/18 -f 92/156/18 89/295/18 91/297/18 -f 92/156/18 93/298/18 94/299/18 -f 94/299/18 95/300/18 96/154/18 -f 85/291/18 89/295/18 92/156/18 -f 87/293/18 89/295/18 85/291/18 -f 85/291/18 92/156/18 83/289/18 -f 92/156/18 94/299/18 96/154/18 -f 89/295/18 90/301/18 91/297/18 -f 57/302/42 59/157/42 93/159/42 -f 41/303/43 43/160/43 85/162/43 -f 63/304/91 33/163/91 96/165/91 -f 33/305/45 35/166/45 81/168/45 -f 47/306/46 49/169/46 88/171/46 -f 53/307/47 55/172/47 91/174/47 -f 37/308/92 39/175/92 83/177/92 -f 94/309/49 59/178/49 95/180/49 -f 43/310/50 45/181/50 86/183/50 -f 49/311/51 51/184/51 89/186/51 -f 55/312/52 57/187/52 92/189/52 -f 84/313/53 39/190/53 85/192/53 -f 61/314/54 63/193/54 95/195/54 -f 87/315/93 45/196/93 88/198/93 -f 90/316/94 51/199/94 91/201/94 -f 34/317/18 1/202/18 36/54/18 -f 34/317/18 64/204/18 1/202/18 -f 64/204/18 62/206/18 31/205/18 -f 60/210/18 27/208/18 62/206/18 -f 58/212/18 25/209/18 60/210/18 -f 56/214/60 23/211/60 58/212/60 -f 54/318/95 21/213/95 56/214/95 -f 54/318/18 52/215/18 21/213/18 -f 50/319/18 17/217/18 52/215/18 -f 50/319/96 48/218/96 17/217/96 -f 48/218/18 46/220/18 15/219/18 -f 46/220/18 44/222/18 13/221/18 -f 42/320/18 9/224/18 44/222/18 -f 42/320/18 40/225/18 9/224/18 -f 40/225/18 38/53/18 7/226/18 diff --git a/src/main/resources/assets/hbm/models/NukeCloudHuge.obj b/src/main/resources/assets/hbm/models/NukeCloudHuge.obj deleted file mode 100644 index b4528b6f0..000000000 --- a/src/main/resources/assets/hbm/models/NukeCloudHuge.obj +++ /dev/null @@ -1,945 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'NukeCloudHuge.blend' -# www.blender.org -o Cylinder -v -0.000000 0.000000 -6.000000 -v -0.000000 1.000000 -3.125000 -v 2.296101 0.000000 -5.543277 -v 1.195886 1.000000 -2.887124 -v 4.242640 0.000000 -4.242640 -v 2.209708 1.000000 -2.209709 -v 5.543277 0.000000 -2.296101 -v 2.887123 1.000000 -1.195886 -v 6.000000 0.000000 0.000000 -v 3.125000 1.000000 0.000000 -v 5.543277 0.000000 2.296101 -v 2.887123 1.000000 1.195886 -v 4.242640 0.000000 4.242640 -v 2.209708 1.000000 2.209709 -v 2.296101 0.000000 5.543277 -v 1.195886 1.000000 2.887124 -v 0.000001 0.000000 6.000000 -v 0.000000 1.000000 3.125000 -v -2.296099 0.000000 5.543278 -v -1.195885 1.000000 2.887124 -v -4.242640 0.000000 4.242642 -v -2.209708 1.000000 2.209710 -v -5.543277 0.000000 2.296102 -v -2.887124 1.000000 1.195886 -v -6.000000 0.000000 -0.000000 -v -3.125000 1.000000 -0.000000 -v -5.543277 0.000000 -2.296102 -v -2.887124 1.000000 -1.195886 -v -4.242640 0.000000 -4.242642 -v -2.209708 1.000000 -2.209710 -v -2.296098 0.000000 -5.543279 -v -1.195884 1.000000 -2.887124 -v -0.000000 2.000000 -1.500000 -v 0.574025 2.000000 -1.385819 -v 1.060660 2.000000 -1.060660 -v 1.385819 2.000000 -0.574025 -v 1.500000 2.000000 0.000000 -v 1.385819 2.000000 0.574025 -v 1.060660 2.000000 1.060660 -v 0.574025 2.000000 1.385819 -v 0.000000 2.000000 1.500000 -v -0.574025 2.000000 1.385819 -v -1.060660 2.000000 1.060660 -v -1.385819 2.000000 0.574025 -v -1.500000 2.000000 -0.000000 -v -1.385819 2.000000 -0.574025 -v -1.060660 2.000000 -1.060660 -v -0.574024 2.000000 -1.385820 -v -0.000000 8.000000 -0.750000 -v 0.287013 8.000000 -0.692910 -v 0.530330 8.000000 -0.530330 -v 0.692910 8.000000 -0.287013 -v 0.750000 8.000000 0.000000 -v 0.692910 8.000000 0.287013 -v 0.530330 8.000000 0.530330 -v 0.287013 8.000000 0.692910 -v 0.000000 8.000000 0.750000 -v -0.287012 8.000000 0.692910 -v -0.530330 8.000000 0.530330 -v -0.692910 8.000000 0.287013 -v -0.750000 8.000000 -0.000000 -v -0.692910 8.000000 -0.287013 -v -0.530330 8.000000 -0.530330 -v -0.287012 8.000000 -0.692910 -v -0.000000 6.000000 -3.000000 -v 1.148050 6.000000 -2.771638 -v 2.121320 6.000000 -2.121320 -v 2.771638 6.000000 -1.148050 -v 3.000000 6.000000 0.000000 -v 2.771638 6.000000 1.148051 -v 2.121320 6.000000 2.121320 -v 1.148050 6.000000 2.771638 -v 0.000000 6.000000 3.000000 -v -1.148050 6.000000 2.771639 -v -2.121320 6.000000 2.121321 -v -2.771639 6.000000 1.148051 -v -3.000000 6.000000 -0.000000 -v -2.771639 6.000000 -1.148051 -v -2.121320 6.000000 -2.121321 -v -1.148049 6.000000 -2.771639 -v -0.000001 6.000000 -5.000000 -v 1.913417 6.000000 -4.619398 -v 3.535533 6.000000 -3.535534 -v 4.619397 6.000000 -1.913417 -v 5.000000 6.000000 0.000000 -v 4.619397 6.000000 1.913418 -v 3.535533 6.000000 3.535534 -v 1.913417 6.000000 4.619398 -v 0.000000 6.000000 5.000000 -v -1.913417 6.000000 4.619398 -v -3.535533 6.000000 3.535535 -v -4.619398 6.000000 1.913418 -v -5.000000 6.000000 -0.000000 -v -4.619398 6.000000 -1.913418 -v -3.535533 6.000000 -3.535535 -v -1.913416 6.000000 -4.619399 -v -0.000001 7.000000 -6.500000 -v 2.487442 7.000000 -6.005217 -v 4.596193 7.000000 -4.596194 -v 6.005217 7.000000 -2.487442 -v 6.499999 7.000000 0.000000 -v 6.005217 7.000000 2.487443 -v 4.596193 7.000000 4.596194 -v 2.487442 7.000000 6.005217 -v 0.000000 7.000000 6.500000 -v -2.487442 7.000000 6.005218 -v -4.596194 7.000000 4.596196 -v -6.005218 7.000000 2.487443 -v -6.500001 7.000000 -0.000000 -v -6.005217 7.000000 -2.487443 -v -4.596193 7.000000 -4.596196 -v -2.487440 7.000000 -6.005219 -v -0.000001 8.000000 -7.150000 -v 2.736187 8.000000 -6.605739 -v 5.055813 8.000000 -5.055813 -v 6.605738 8.000000 -2.736187 -v 7.149999 8.000000 0.000000 -v 6.605738 8.000000 2.736187 -v 5.055813 8.000000 5.055813 -v 2.736187 8.000000 6.605739 -v 0.000001 8.000000 7.150000 -v -2.736186 8.000000 6.605740 -v -5.055813 8.000000 5.055815 -v -6.605740 8.000000 2.736188 -v -7.150000 8.000000 -0.000000 -v -6.605739 8.000000 -2.736188 -v -5.055813 8.000000 -5.055815 -v -2.736184 8.000000 -6.605741 -v -0.000001 9.500000 -6.250000 -v 2.391771 9.500000 -5.774247 -v 4.419416 9.500000 -4.419417 -v 5.774246 9.500000 -2.391771 -v 6.250000 9.500000 0.000000 -v 5.774246 9.500000 2.391772 -v 4.419416 9.500000 4.419417 -v 2.391771 9.500000 5.774247 -v 0.000000 9.500000 6.250000 -v -2.391771 9.500000 5.774248 -v -4.419417 9.500000 4.419419 -v -5.774248 9.500000 2.391772 -v -6.250000 9.500000 -0.000000 -v -5.774247 9.500000 -2.391773 -v -4.419416 9.500000 -4.419419 -v -2.391769 9.500000 -5.774248 -v -0.000000 10.500000 -3.500000 -v 1.339392 10.500000 -3.233578 -v 2.474873 10.500000 -2.474874 -v 3.233578 10.500000 -1.339392 -v 3.500000 10.500000 0.000000 -v 3.233578 10.500000 1.339392 -v 2.474873 10.500000 2.474874 -v 1.339392 10.500000 3.233578 -v 0.000000 10.500000 3.500000 -v -1.339391 10.500000 3.233579 -v -2.474874 10.500000 2.474874 -v -3.233579 10.500000 1.339393 -v -3.500000 10.500000 -0.000000 -v -3.233578 10.500000 -1.339393 -v -2.474873 10.500000 -2.474874 -v -1.339391 10.500000 -3.233579 -v -0.000000 11.000000 -1.000000 -v 0.382683 11.000000 -0.923880 -v 0.707106 11.000000 -0.707107 -v 0.923879 11.000000 -0.382683 -v 1.000000 11.000000 0.000000 -v 0.923879 11.000000 0.382684 -v 0.707106 11.000000 0.707107 -v 0.382683 11.000000 0.923880 -v -0.000000 11.000000 1.000000 -v -0.382684 11.000000 0.923880 -v -0.707107 11.000000 0.707107 -v -0.923880 11.000000 0.382684 -v -1.000000 11.000000 -0.000000 -v -0.923880 11.000000 -0.382684 -v -0.707107 11.000000 -0.707107 -v -0.382683 11.000000 -0.923880 -v 0.000000 11.250500 0.000000 -vt 0.749890 0.583032 -vt 0.708368 0.565532 -vt 0.733595 0.459782 -vt 0.663424 0.565532 -vt 0.647304 0.459782 -vt 0.621902 0.583032 -vt 0.567581 0.493381 -vt 0.590122 0.615366 -vt 0.572923 0.657614 -vt 0.473541 0.636579 -vt 0.572923 0.703342 -vt 0.473541 0.724377 -vt 0.590122 0.745589 -vt 0.506564 0.805492 -vt 0.621902 0.777924 -vt 0.567581 0.867574 -vt 0.663424 0.795423 -vt 0.647304 0.901173 -vt 0.708368 0.795423 -vt 0.749890 0.777924 -vt 0.813318 0.867575 -vt 0.781670 0.745589 -vt 0.874336 0.805492 -vt 0.798869 0.703342 -vt 0.907358 0.724377 -vt 0.798869 0.657614 -vt 0.907358 0.636579 -vt 0.650625 0.633704 -vt 0.635370 0.649224 -vt 0.781670 0.615366 -vt 0.813318 0.493381 -vt 0.922728 0.518034 -vt 0.938204 0.737805 -vt 0.930519 0.740416 -vt 0.735569 0.669503 -vt 0.627115 0.691453 -vt 0.635370 0.711731 -vt 0.670556 0.735652 -vt 0.692128 0.735652 -vt 0.692128 0.625304 -vt 0.670556 0.625304 -vt 0.727314 0.711731 -vt 0.735569 0.691453 -vt 0.627115 0.669503 -vt 0.727314 0.649224 -vt 0.712059 0.633704 -vt 0.712059 0.727252 -vt 0.976322 0.459782 -vt 0.964547 0.515208 -vt 0.942811 0.515208 -vt 0.650625 0.727252 -vt 0.242205 0.266674 -vt 0.252246 0.262474 -vt 0.298672 0.332635 -vt 0.959113 0.736392 -vt 0.948245 0.736392 -vt 1.000000 0.523255 -vt 0.976840 0.740416 -vt 0.969154 0.737805 -vt 0.927209 0.741881 -vt 0.947256 0.962205 -vt 0.937330 0.964292 -vt 0.392623 0.776124 -vt 0.401827 0.997180 -vt 0.390982 0.997913 -vt 0.948897 0.740416 -vt 0.969121 0.741881 -vt 0.968212 0.962205 -vt 0.945516 0.000000 -vt 0.950950 0.221184 -vt 0.940909 0.222597 -vt 0.967253 0.000000 -vt 0.987335 0.002826 -vt 0.971860 0.222597 -vt 0.984630 0.518034 -vt 0.428529 0.781763 -vt 0.419779 1.000000 -vt 0.411939 0.997913 -vt 0.370935 0.777589 -vt 0.381057 1.000000 -vt 0.958100 0.961473 -vt 0.412848 0.777589 -vt 0.984803 0.746055 -vt 0.976053 0.964292 -vt 0.961819 0.221184 -vt 0.258508 0.349435 -vt 0.272999 0.423000 -vt 0.200543 0.423000 -vt 0.264090 0.244574 -vt 0.346049 0.261036 -vt 0.329413 0.301594 -vt 0.264090 0.233599 -vt 0.259931 0.223460 -vt 0.329413 0.176580 -vt 0.213610 0.223460 -vt 0.144129 0.176580 -vt 0.174869 0.145538 -vt 0.242205 0.211500 -vt 0.258508 0.128739 -vt 0.298672 0.145538 -vt 0.209451 0.244574 -vt 0.127492 0.261036 -vt 0.127492 0.217137 -vt 0.221295 0.215700 -vt 0.215034 0.128739 -vt 0.221295 0.262474 -vt 0.174869 0.332635 -vt 0.144129 0.301594 -vt 0.215034 0.349435 -vt 0.259931 0.254714 -vt 0.346049 0.217137 -vt 0.252246 0.215700 -vt 0.209451 0.233599 -vt 0.231336 0.211500 -vt 0.213610 0.254714 -vt 0.231336 0.266674 -vt 0.133602 0.395001 -vt 0.189674 0.478174 -vt 0.391174 0.343265 -vt 0.418902 0.202504 -vt 0.339940 0.083173 -vt 0.391174 0.134908 -vt 0.054639 0.202504 -vt 0.200542 0.055174 -vt 0.272999 0.055174 -vt 0.082367 0.343265 -vt 0.054639 0.275669 -vt 0.339940 0.395001 -vt 0.418902 0.275669 -vt 0.082367 0.134908 -vt 0.133602 0.083173 -vt 0.012127 0.565699 -vt 0.040349 0.552155 -vt 0.027010 0.648817 -vt 0.370890 0.441775 -vt 0.283867 0.478174 -vt 0.473541 0.286644 -vt 0.437495 0.103655 -vt 0.473541 0.191529 -vt 0.036046 0.103655 -vt 0.102651 0.036399 -vt 0.283867 0.000000 -vt 0.370890 0.036399 -vt 0.000000 0.286644 -vt 0.000000 0.191529 -vt 0.189674 0.000000 -vt 0.102651 0.441775 -vt 0.036046 0.374519 -vt 0.437495 0.374519 -vt 0.090501 0.655402 -vt 0.090501 0.746859 -vt 0.089239 0.462044 -vt 0.015974 0.388062 -vt 0.237396 0.657564 -vt 0.264031 0.650998 -vt 0.270949 0.755390 -vt 0.457568 0.388062 -vt 0.384302 0.462044 -vt 0.351085 0.674706 -vt 0.351085 0.579591 -vt 0.378094 0.574836 -vt 0.384302 0.016130 -vt 0.457567 0.090112 -vt 0.129996 0.752467 -vt 0.157260 0.755391 -vt 0.176961 0.850938 -vt 0.000000 0.748688 -vt 0.000000 0.653573 -vt 0.123707 0.657564 -vt 0.129996 0.569068 -vt 0.157260 0.553652 -vt 0.243685 0.752466 -vt 0.290650 0.850937 -vt 0.243685 0.569068 -vt 0.270949 0.553652 -vt 0.363211 0.762580 -vt 0.378094 0.679462 -vt 0.363211 0.491717 -vt 0.391433 0.478174 -vt 0.015974 0.090112 -vt 0.089239 0.016130 -vt 0.027010 0.753444 -vt 0.040349 0.850105 -vt 0.150342 0.650998 -vt 0.571499 0.034999 -vt 0.654544 0.000000 -vt 0.669765 0.101152 -vt 0.220175 0.568195 -vt 0.214127 0.653287 -vt 0.333863 0.744540 -vt 0.351085 0.828060 -vt 0.333863 0.568195 -vt 0.327816 0.653287 -vt 0.391433 0.776124 -vt 0.441586 0.672877 -vt 0.453246 0.496926 -vt 0.441586 0.581420 -vt 0.064997 0.478174 -vt 0.123707 0.506238 -vt 0.102162 0.570908 -vt 0.102162 0.831353 -vt 0.220174 0.744540 -vt 0.176961 0.478174 -vt 0.237396 0.502217 -vt 0.290650 0.478174 -vt 0.351084 0.502217 -vt 0.123707 0.896023 -vt 0.925434 0.275619 -vt 0.821464 0.255499 -vt 0.821464 0.204283 -vt 0.827476 0.034999 -vt 0.766607 0.120751 -vt 0.720102 0.101152 -vt 0.827476 0.424784 -vt 0.766607 0.339031 -vt 0.802200 0.302816 -vt 0.654544 0.459782 -vt 0.669765 0.358630 -vt 0.720102 0.358630 -vt 0.507939 0.360114 -vt 0.587667 0.302816 -vt 0.623260 0.339031 -vt 0.473541 0.184163 -vt 0.568404 0.204283 -vt 0.568404 0.255499 -vt 0.623260 0.120751 -vt 0.587667 0.156966 -vt 0.891035 0.099668 -vt 0.925434 0.184163 -vt 0.744431 0.000000 -vt 0.891035 0.360114 -vt 0.744431 0.459782 -vt 0.571499 0.424783 -vt 0.473541 0.275619 -vt 0.507939 0.099668 -vt 0.802200 0.156966 -vt 0.685466 0.266674 -vt 0.699848 0.266674 -vt 0.713135 0.261074 -vt 0.656505 0.237208 -vt 0.691516 0.229891 -vt 0.662009 0.250727 -vt 0.672179 0.261074 -vt 0.723304 0.250727 -vt 0.728808 0.237208 -vt 0.728808 0.222575 -vt 0.723304 0.209055 -vt 0.662009 0.209055 -vt 0.656505 0.222575 -vt 0.713135 0.198708 -vt 0.699848 0.193109 -vt 0.685466 0.193109 -vt 0.672179 0.198708 -vt 0.506564 0.555464 -vt 0.733595 0.901173 -vt 0.874336 0.555464 -vt 0.907358 0.523255 -vt 0.931036 0.459782 -vt 0.907358 0.746055 -vt 0.925434 0.002826 -vt 0.351085 0.781763 -vt 0.147906 0.839327 -vt 0.261595 0.839327 -vt 0.012127 0.836562 -vt 0.453246 0.757371 -vt 0.064997 0.924087 -vt 0.237396 0.828060 -vn 0.065200 0.942500 -0.327800 -vn 0.185700 0.942500 -0.277900 -vn 0.277900 0.942500 -0.185700 -vn 0.327800 0.942500 -0.065200 -vn 0.327800 0.942500 0.065200 -vn 0.277900 0.942500 0.185700 -vn 0.185700 0.942500 0.277900 -vn 0.065200 0.942500 0.327800 -vn -0.065200 0.942500 0.327800 -vn -0.185700 0.942500 0.277900 -vn -0.277900 0.942500 0.185700 -vn -0.327800 0.942500 0.065200 -vn -0.327800 0.942500 -0.065200 -vn -0.277900 0.942500 -0.185700 -vn 0.521300 0.847100 -0.103700 -vn -0.065200 0.942500 -0.327800 -vn -0.185700 0.942500 -0.277900 -vn 0.193600 0.121700 0.973500 -vn -0.295300 0.847100 -0.441900 -vn 0.295300 0.847100 0.441900 -vn -0.295300 0.847100 0.441900 -vn 0.295300 0.847100 -0.441900 -vn -0.521300 0.847100 -0.103700 -vn 0.521300 0.847100 0.103700 -vn -0.103700 0.847100 -0.521300 -vn 0.103700 0.847100 -0.521300 -vn 0.103700 0.847100 0.521300 -vn -0.441900 0.847100 0.295300 -vn 0.441900 0.847100 -0.295300 -vn -0.441900 0.847100 -0.295300 -vn 0.441900 0.847100 0.295300 -vn -0.103700 0.847100 0.521300 -vn -0.521300 0.847100 0.103700 -vn 0.131000 -0.741000 -0.658600 -vn 0.825300 0.121700 0.551400 -vn 0.973500 0.121700 -0.193600 -vn -0.551400 0.121700 -0.825300 -vn 0.551400 0.121700 -0.825300 -vn -0.973500 0.121700 -0.193600 -vn -0.825300 0.121700 0.551400 -vn -0.193600 0.121700 0.973500 -vn 0.551400 0.121700 0.825300 -vn 0.973500 0.121700 0.193600 -vn -0.193600 0.121700 -0.973500 -vn 0.825300 0.121700 -0.551400 -vn -0.825300 0.121700 -0.551400 -vn 0.193600 0.121700 -0.973500 -vn -0.973500 0.121700 0.193600 -vn -0.551400 0.121700 0.825300 -vn 0.000000 -1.000000 0.000000 -vn -0.373100 -0.741000 -0.558400 -vn -0.658600 -0.741000 -0.131000 -vn 0.131000 -0.741000 0.658600 -vn -0.558400 -0.741000 0.373100 -vn 0.558400 -0.741000 0.373100 -vn -0.131000 -0.741000 0.658600 -vn 0.658600 -0.741000 -0.131000 -vn 0.373100 -0.741000 -0.558400 -vn -0.131000 -0.741000 -0.658600 -vn -0.558400 -0.741000 -0.373100 -vn -0.658600 -0.741000 0.131000 -vn 0.373100 -0.741000 0.558400 -vn -0.373100 -0.741000 0.558400 -vn 0.658600 -0.741000 0.131000 -vn 0.558400 -0.741000 -0.373100 -vn -0.467400 -0.827000 0.312300 -vn 0.164500 -0.537600 -0.827000 -vn -0.109700 -0.827000 0.551400 -vn 0.312300 -0.827000 0.467400 -vn 0.551400 -0.827000 0.109700 -vn -0.109700 -0.827000 -0.551400 -vn 0.467400 -0.827000 -0.312300 -vn -0.467400 -0.827000 -0.312300 -vn 0.109700 -0.827000 -0.551400 -vn -0.551400 -0.827000 0.109700 -vn -0.312300 -0.827000 0.467400 -vn 0.109700 -0.827000 0.551400 -vn 0.467400 -0.827000 0.312300 -vn 0.551400 -0.827000 -0.109700 -vn -0.312300 -0.827000 -0.467400 -vn 0.312300 -0.827000 -0.467400 -vn -0.551400 -0.827000 -0.109700 -vn 0.478800 0.507200 -0.716600 -vn -0.827000 -0.537600 0.164500 -vn -0.468500 -0.537600 0.701100 -vn 0.164500 -0.537600 0.827000 -vn 0.701100 -0.537600 0.468500 -vn 0.827000 -0.537600 -0.164500 -vn -0.468500 -0.537600 -0.701100 -vn 0.468500 -0.537600 -0.701100 -vn -0.827000 -0.537600 -0.164500 -vn -0.701100 -0.537600 0.468500 -vn -0.164500 -0.537600 0.827000 -vn 0.468500 -0.537600 0.701100 -vn 0.827000 -0.537600 0.164500 -vn -0.164500 -0.537600 -0.827000 -vn 0.701100 -0.537600 -0.468500 -vn -0.701100 -0.537600 -0.468500 -vn 0.289000 0.937600 -0.193100 -vn -0.845300 0.507200 -0.168100 -vn -0.716600 0.507200 0.478800 -vn -0.168100 0.507200 0.845300 -vn 0.478800 0.507200 0.716600 -vn 0.845300 0.507200 0.168100 -vn -0.168100 0.507200 -0.845300 -vn 0.716600 0.507200 -0.478800 -vn -0.716600 0.507200 -0.478800 -vn 0.168100 0.507200 -0.845300 -vn -0.845300 0.507200 0.168100 -vn -0.478800 0.507200 0.716600 -vn 0.168100 0.507200 0.845300 -vn 0.716600 0.507200 0.478800 -vn 0.845300 0.507200 -0.168100 -vn -0.478800 0.507200 -0.716600 -vn -0.289000 0.937600 -0.193100 -vn 0.067800 0.937600 -0.341000 -vn -0.341000 0.937600 0.067800 -vn -0.193100 0.937600 0.289000 -vn 0.067800 0.937600 0.341000 -vn 0.289000 0.937600 0.193100 -vn 0.341000 0.937600 -0.067800 -vn -0.193100 0.937600 -0.289000 -vn 0.193100 0.937600 -0.289000 -vn -0.341000 0.937600 -0.067800 -vn -0.289000 0.937600 0.193100 -vn -0.067800 0.937600 0.341000 -vn 0.193100 0.937600 0.289000 -vn 0.341000 0.937600 0.067800 -vn -0.067800 0.937600 -0.341000 -vn -0.111000 0.979800 0.166100 -vn -0.166100 0.979800 0.111000 -vn 0.137500 0.968900 0.205800 -vn 0.048300 0.968900 0.242700 -vn -0.048300 0.968900 0.242700 -vn -0.137500 0.968900 0.205800 -vn -0.205800 0.968900 0.137500 -vn -0.242700 0.968900 0.048300 -vn -0.242700 0.968900 -0.048300 -vn -0.205800 0.968900 -0.137500 -vn -0.137500 0.968900 -0.205800 -vn 0.242700 0.968900 0.048300 -vn -0.048300 0.968900 -0.242700 -vn 0.048300 0.968900 -0.242700 -vn 0.137500 0.968900 -0.205800 -vn 0.205800 0.968900 -0.137500 -vn 0.242700 0.968900 -0.048300 -vn 0.205800 0.968900 0.137500 -vn -0.039000 0.979800 0.196000 -vn 0.039000 0.979800 0.196000 -vn 0.111000 0.979800 0.166100 -vn 0.166100 0.979800 0.111000 -vn 0.196000 0.979800 0.039000 -vn 0.196000 0.979800 -0.039000 -vn 0.166100 0.979800 -0.111000 -vn 0.111000 0.979800 -0.166100 -vn 0.039000 0.979800 -0.196000 -vn -0.039000 0.979800 -0.196000 -vn -0.111000 0.979800 -0.166100 -vn -0.166100 0.979800 -0.111000 -vn -0.196000 0.979800 -0.039000 -vn -0.196000 0.979800 0.039000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 7/7/4 8/6/4 10/8/4 -f 10/8/5 12/9/5 11/10/5 -f 12/9/6 14/11/6 13/12/6 -f 14/11/7 16/13/7 15/14/7 -f 15/14/8 16/13/8 18/15/8 -f 17/16/9 18/15/9 20/17/9 -f 19/18/10 20/17/10 22/19/10 -f 22/19/11 24/20/11 23/21/11 -f 24/20/12 26/22/12 25/23/12 -f 26/22/13 28/24/13 27/25/13 -f 28/24/14 30/26/14 29/27/14 -f 8/6/15 36/28/15 37/29/15 -f 32/30/16 2/1/16 1/31/16 -f 29/27/17 30/26/17 32/30/17 -f 40/32/18 56/33/18 57/34/18 -f 32/30/19 30/26/19 47/35/19 -f 14/11/20 39/36/20 40/37/20 -f 20/17/21 42/38/21 43/39/21 -f 4/2/22 34/40/22 35/41/22 -f 26/22/23 45/42/23 46/43/23 -f 10/8/24 37/29/24 38/44/24 -f 2/1/25 32/30/25 48/45/25 -f 4/2/26 2/1/26 33/46/26 -f 18/15/27 16/13/27 40/37/27 -f 22/19/28 43/39/28 44/47/28 -f 6/4/29 35/41/29 36/28/29 -f 28/24/30 46/43/30 47/35/30 -f 12/48/31 38/49/31 39/50/31 -f 18/15/32 41/51/32 42/38/32 -f 24/20/33 44/47/33 45/42/33 -f 58/52/34 57/53/34 73/54/34 -f 38/49/35 54/55/35 55/56/35 -f 36/57/36 52/58/36 53/59/36 -f 47/60/37 63/61/37 64/62/37 -f 34/63/38 50/64/38 51/65/38 -f 46/66/39 45/67/39 61/68/39 -f 43/69/40 59/70/40 60/71/40 -f 42/72/41 41/73/41 57/74/41 -f 39/50/42 55/56/42 56/33/42 -f 38/49/43 37/75/43 53/59/43 -f 48/76/44 64/77/44 49/78/44 -f 35/79/45 51/65/45 52/80/45 -f 46/66/46 62/81/46 63/61/46 -f 33/82/47 49/78/47 50/64/47 -f 44/83/48 60/84/48 61/68/48 -f 42/72/49 58/85/49 59/70/49 -f 74/86/50 90/87/50 91/88/50 -f 55/89/51 71/90/51 72/91/51 -f 54/92/52 53/93/52 69/94/52 -f 64/95/53 80/96/53 65/97/53 -f 51/98/54 67/99/54 68/100/54 -f 62/101/55 78/102/55 79/103/55 -f 49/104/56 65/97/56 66/105/56 -f 60/106/57 76/107/57 77/108/57 -f 58/52/58 74/86/58 75/109/58 -f 56/110/59 72/91/59 73/54/59 -f 54/92/60 70/111/60 71/90/60 -f 52/112/61 68/100/61 69/94/61 -f 63/113/62 79/103/62 80/96/62 -f 51/98/63 50/114/63 66/105/63 -f 61/115/64 77/108/64 78/102/64 -f 60/106/65 59/116/65 75/109/65 -f 92/117/66 91/88/66 107/118/66 -f 73/54/50 72/91/50 88/119/50 -f 71/90/50 70/111/50 86/120/50 -f 68/100/50 84/121/50 85/122/50 -f 80/96/50 79/103/50 95/123/50 -f 66/105/50 82/124/50 83/125/50 -f 77/108/50 93/126/50 94/127/50 -f 75/109/50 91/88/50 92/117/50 -f 73/54/50 89/128/50 90/87/50 -f 71/90/50 87/129/50 88/119/50 -f 70/111/50 69/94/50 85/122/50 -f 80/96/50 96/130/50 81/131/50 -f 67/99/50 83/125/50 84/121/50 -f 79/103/50 78/102/50 94/127/50 -f 65/97/50 81/131/50 82/124/50 -f 76/107/50 92/117/50 93/126/50 -f 97/132/67 113/133/67 114/134/67 -f 89/128/68 105/135/68 106/136/68 -f 88/119/69 87/129/69 103/137/69 -f 85/122/70 101/138/70 102/139/70 -f 96/130/71 112/140/71 97/141/71 -f 83/125/72 99/142/72 100/143/72 -f 94/127/73 110/144/73 111/145/73 -f 81/131/74 97/141/74 98/146/74 -f 92/117/75 108/147/75 109/148/75 -f 90/87/76 106/136/76 107/118/76 -f 89/128/77 88/119/77 104/149/77 -f 86/120/78 102/139/78 103/137/78 -f 84/121/79 100/143/79 101/138/79 -f 96/130/80 95/123/80 111/145/80 -f 82/124/81 98/146/81 99/142/81 -f 94/127/82 93/126/82 109/148/82 -f 114/134/83 130/150/83 131/151/83 -f 108/147/84 124/152/84 125/153/84 -f 106/154/85 122/155/85 123/156/85 -f 104/149/86 120/157/86 121/158/86 -f 103/159/87 102/160/87 118/161/87 -f 100/143/88 116/162/88 117/163/88 -f 111/164/89 127/165/89 128/166/89 -f 99/167/90 98/168/90 114/134/90 -f 110/169/91 109/170/91 125/171/91 -f 107/172/92 123/156/92 124/173/92 -f 106/154/93 105/174/93 121/175/93 -f 104/176/94 103/159/94 119/177/94 -f 102/160/95 101/178/95 117/179/95 -f 112/140/96 128/180/96 113/181/96 -f 99/167/97 115/182/97 116/183/97 -f 110/169/98 126/184/98 127/165/98 -f 132/185/99 131/186/99 147/187/99 -f 125/171/100 141/188/100 142/189/100 -f 123/156/101 139/190/101 140/191/101 -f 121/175/102 137/192/102 138/193/102 -f 120/194/103 119/177/103 135/195/103 -f 117/179/104 133/196/104 134/197/104 -f 128/198/105 144/199/105 129/200/105 -f 115/182/106 131/151/106 132/201/106 -f 126/184/107 142/189/107 143/202/107 -f 113/133/108 129/200/108 130/150/108 -f 124/203/109 140/204/109 141/188/109 -f 122/155/110 138/193/110 139/190/110 -f 120/205/111 136/206/111 137/192/111 -f 119/177/112 118/161/112 134/197/112 -f 116/183/113 132/201/113 133/207/113 -f 128/166/114 127/165/114 143/202/114 -f 142/208/115 158/209/115 159/210/115 -f 129/211/116 145/212/116 146/213/116 -f 140/214/117 156/215/117 157/216/117 -f 138/217/118 154/218/118 155/219/118 -f 136/220/119 152/221/119 153/222/119 -f 134/223/120 150/224/120 151/225/120 -f 132/185/121 148/226/121 149/227/121 -f 144/228/122 143/229/122 159/210/122 -f 131/186/123 130/230/123 146/213/123 -f 142/208/124 141/231/124 157/216/124 -f 139/232/125 155/219/125 156/215/125 -f 137/233/126 153/222/126 154/218/126 -f 135/234/127 151/225/127 152/221/127 -f 133/235/128 149/227/128 150/224/128 -f 144/228/129 160/236/129 145/212/129 -f 170/237/130 171/238/130 155/219/130 -f 171/238/131 172/239/131 156/215/131 -f 167/240/132 177/241/132 168/242/132 -f 168/242/133 177/241/133 169/243/133 -f 169/243/134 177/241/134 170/237/134 -f 170/237/135 177/241/135 171/238/135 -f 171/238/136 177/241/136 172/239/136 -f 172/239/137 177/241/137 173/244/137 -f 173/244/138 177/241/138 174/245/138 -f 174/245/139 177/241/139 175/246/139 -f 175/246/140 177/241/140 176/247/140 -f 165/248/141 177/241/141 166/249/141 -f 176/247/142 177/241/142 161/250/142 -f 161/250/143 177/241/143 162/251/143 -f 162/251/144 177/241/144 163/252/144 -f 163/252/145 177/241/145 164/253/145 -f 164/253/146 177/241/146 165/248/146 -f 167/240/147 166/249/147 177/241/147 -f 169/243/148 170/237/148 154/218/148 -f 168/242/149 169/243/149 153/222/149 -f 151/225/150 167/240/150 168/242/150 -f 166/249/151 167/240/151 151/225/151 -f 165/248/152 166/249/152 150/224/152 -f 148/226/153 164/253/153 165/248/153 -f 147/187/154 163/252/154 164/253/154 -f 162/251/155 163/252/155 147/187/155 -f 161/250/156 162/251/156 146/213/156 -f 176/247/157 161/250/157 145/212/157 -f 175/246/158 176/247/158 160/236/158 -f 158/209/159 174/245/159 175/246/159 -f 157/216/160 173/244/160 174/245/160 -f 172/239/161 173/244/161 157/216/161 -f 1/31/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 9/254/4 7/7/4 10/8/4 -f 9/254/5 10/8/5 11/10/5 -f 11/10/6 12/9/6 13/12/6 -f 13/12/7 14/11/7 15/14/7 -f 17/16/8 15/14/8 18/15/8 -f 19/18/9 17/16/9 20/17/9 -f 21/255/10 19/18/10 22/19/10 -f 21/255/11 22/19/11 23/21/11 -f 23/21/12 24/20/12 25/23/12 -f 25/23/13 26/22/13 27/25/13 -f 27/25/14 28/24/14 29/27/14 -f 10/8/15 8/6/15 37/29/15 -f 31/256/16 32/30/16 1/31/16 -f 31/256/17 29/27/17 32/30/17 -f 41/257/18 40/32/18 57/34/18 -f 48/45/19 32/30/19 47/35/19 -f 16/13/20 14/11/20 40/37/20 -f 22/19/21 20/17/21 43/39/21 -f 6/4/22 4/2/22 35/41/22 -f 28/24/23 26/22/23 46/43/23 -f 12/9/24 10/8/24 38/44/24 -f 33/46/25 2/1/25 48/45/25 -f 34/40/26 4/2/26 33/46/26 -f 41/51/27 18/15/27 40/37/27 -f 24/20/28 22/19/28 44/47/28 -f 8/6/29 6/4/29 36/28/29 -f 30/26/30 28/24/30 47/35/30 -f 14/258/31 12/48/31 39/50/31 -f 20/17/32 18/15/32 42/38/32 -f 26/22/33 24/20/33 45/42/33 -f 74/86/34 58/52/34 73/54/34 -f 39/50/35 38/49/35 55/56/35 -f 37/75/36 36/57/36 53/59/36 -f 48/259/37 47/60/37 64/62/37 -f 35/79/38 34/63/38 51/65/38 -f 62/81/39 46/66/39 61/68/39 -f 44/260/40 43/69/40 60/71/40 -f 58/85/41 42/72/41 57/74/41 -f 40/32/42 39/50/42 56/33/42 -f 54/55/43 38/49/43 53/59/43 -f 33/82/44 48/76/44 49/78/44 -f 36/261/45 35/79/45 52/80/45 -f 47/60/46 46/66/46 63/61/46 -f 34/63/47 33/82/47 50/64/47 -f 45/67/48 44/83/48 61/68/48 -f 43/69/49 42/72/49 59/70/49 -f 75/109/50 74/86/50 91/88/50 -f 56/110/51 55/89/51 72/91/51 -f 70/111/52 54/92/52 69/94/52 -f 49/104/53 64/95/53 65/97/53 -f 52/112/54 51/98/54 68/100/54 -f 63/113/55 62/101/55 79/103/55 -f 50/114/56 49/104/56 66/105/56 -f 61/115/57 60/106/57 77/108/57 -f 59/116/58 58/52/58 75/109/58 -f 57/53/59 56/110/59 73/54/59 -f 55/89/60 54/92/60 71/90/60 -f 53/93/61 52/112/61 69/94/61 -f 64/95/62 63/113/62 80/96/62 -f 67/99/63 51/98/63 66/105/63 -f 62/101/64 61/115/64 78/102/64 -f 76/107/65 60/106/65 75/109/65 -f 108/147/66 92/117/66 107/118/66 -f 89/128/50 73/54/50 88/119/50 -f 87/129/50 71/90/50 86/120/50 -f 69/94/50 68/100/50 85/122/50 -f 96/130/50 80/96/50 95/123/50 -f 67/99/50 66/105/50 83/125/50 -f 78/102/50 77/108/50 94/127/50 -f 76/107/50 75/109/50 92/117/50 -f 74/86/50 73/54/50 90/87/50 -f 72/91/50 71/90/50 88/119/50 -f 86/120/50 70/111/50 85/122/50 -f 65/97/50 80/96/50 81/131/50 -f 68/100/50 67/99/50 84/121/50 -f 95/123/50 79/103/50 94/127/50 -f 66/105/50 65/97/50 82/124/50 -f 77/108/50 76/107/50 93/126/50 -f 98/168/67 97/132/67 114/134/67 -f 90/87/68 89/128/68 106/136/68 -f 104/149/69 88/119/69 103/137/69 -f 86/120/70 85/122/70 102/139/70 -f 81/131/71 96/130/71 97/141/71 -f 84/121/72 83/125/72 100/143/72 -f 95/123/73 94/127/73 111/145/73 -f 82/124/74 81/131/74 98/146/74 -f 93/126/75 92/117/75 109/148/75 -f 91/88/76 90/87/76 107/118/76 -f 105/135/77 89/128/77 104/149/77 -f 87/129/78 86/120/78 103/137/78 -f 85/122/79 84/121/79 101/138/79 -f 112/140/80 96/130/80 111/145/80 -f 83/125/81 82/124/81 99/142/81 -f 110/144/82 94/127/82 109/148/82 -f 115/182/83 114/134/83 131/151/83 -f 109/148/84 108/147/84 125/153/84 -f 107/172/85 106/154/85 123/156/85 -f 105/135/86 104/149/86 121/158/86 -f 119/177/87 103/159/87 118/161/87 -f 101/138/88 100/143/88 117/163/88 -f 112/262/89 111/164/89 128/166/89 -f 115/182/90 99/167/90 114/134/90 -f 126/184/91 110/169/91 125/171/91 -f 108/263/92 107/172/92 124/173/92 -f 122/155/93 106/154/93 121/175/93 -f 120/194/94 104/176/94 119/177/94 -f 118/161/95 102/160/95 117/179/95 -f 97/141/96 112/140/96 113/181/96 -f 100/264/97 99/167/97 116/183/97 -f 111/164/98 110/169/98 127/165/98 -f 148/226/99 132/185/99 147/187/99 -f 126/184/100 125/171/100 142/189/100 -f 124/173/101 123/156/101 140/191/101 -f 122/155/102 121/175/102 138/193/102 -f 136/265/103 120/194/103 135/195/103 -f 118/161/104 117/179/104 134/197/104 -f 113/133/105 128/198/105 129/200/105 -f 116/183/106 115/182/106 132/201/106 -f 127/165/107 126/184/107 143/202/107 -f 114/134/108 113/133/108 130/150/108 -f 125/171/109 124/203/109 141/188/109 -f 123/156/110 122/155/110 139/190/110 -f 121/175/111 120/205/111 137/192/111 -f 135/195/112 119/177/112 134/197/112 -f 117/266/113 116/183/113 133/207/113 -f 144/267/114 128/166/114 143/202/114 -f 143/229/115 142/208/115 159/210/115 -f 130/230/116 129/211/116 146/213/116 -f 141/231/117 140/214/117 157/216/117 -f 139/232/118 138/217/118 155/219/118 -f 137/233/119 136/220/119 153/222/119 -f 135/234/120 134/223/120 151/225/120 -f 133/235/121 132/185/121 149/227/121 -f 160/236/122 144/228/122 159/210/122 -f 147/187/123 131/186/123 146/213/123 -f 158/209/124 142/208/124 157/216/124 -f 140/214/125 139/232/125 156/215/125 -f 138/217/126 137/233/126 154/218/126 -f 136/220/127 135/234/127 152/221/127 -f 134/223/128 133/235/128 150/224/128 -f 129/211/129 144/228/129 145/212/129 -f 154/218/130 170/237/130 155/219/130 -f 155/219/131 171/238/131 156/215/131 -f 153/222/148 169/243/148 154/218/148 -f 152/221/149 168/242/149 153/222/149 -f 152/221/150 151/225/150 168/242/150 -f 150/224/151 166/249/151 151/225/151 -f 149/227/152 165/248/152 150/224/152 -f 149/227/153 148/226/153 165/248/153 -f 148/226/154 147/187/154 164/253/154 -f 146/213/155 162/251/155 147/187/155 -f 145/212/156 161/250/156 146/213/156 -f 160/236/157 176/247/157 145/212/157 -f 159/210/158 175/246/158 160/236/158 -f 159/210/159 158/209/159 175/246/159 -f 158/209/160 157/216/160 174/245/160 -f 156/215/161 172/239/161 157/216/161 diff --git a/src/main/resources/assets/hbm/models/NukeCloudSmall.obj b/src/main/resources/assets/hbm/models/NukeCloudSmall.obj deleted file mode 100644 index 68653848a..000000000 --- a/src/main/resources/assets/hbm/models/NukeCloudSmall.obj +++ /dev/null @@ -1,1061 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'NukeCloudSmall.blend' -# www.blender.org -o Cylinder -v 0.000000 1.500000 -3.125000 -v 1.195886 1.500000 -2.887124 -v 2.296101 0.000000 -5.543277 -v 2.209708 1.500000 -2.209709 -v 4.242640 0.000000 -4.242640 -v 2.887123 1.500000 -1.195886 -v 5.543277 0.000000 -2.296101 -v 3.125000 1.500000 0.000000 -v 6.000000 0.000000 0.000000 -v 2.887123 1.500000 1.195886 -v 5.543277 -0.000000 2.296101 -v 2.209708 1.500000 2.209709 -v 4.242640 -0.000000 4.242640 -v 1.195886 1.500000 2.887124 -v 2.296101 -0.000000 5.543277 -v 0.000000 1.500000 3.125000 -v 0.000001 -0.000000 6.000000 -v -1.195885 1.500000 2.887124 -v -2.209708 1.500000 2.209710 -v -4.242640 -0.000000 4.242642 -v -2.887124 1.500000 1.195886 -v -5.543277 -0.000000 2.296102 -v -3.125000 1.500000 0.000000 -v -2.887124 1.500000 -1.195886 -v -5.543277 0.000000 -2.296102 -v -2.209708 1.500000 -2.209710 -v 1.385819 3.000000 -0.574025 -v 1.500000 3.000000 0.000000 -v -1.195884 1.500000 -2.887124 -v 0.000000 0.000000 -6.000000 -v -4.242640 0.000000 -4.242642 -v 0.574025 3.000000 1.385819 -v 0.430519 11.000000 1.039366 -v 0.000000 11.000000 1.125000 -v -1.060660 3.000000 -1.060660 -v -0.574024 3.000000 -1.385820 -v 1.060660 3.000000 1.060660 -v -0.574025 3.000000 1.385819 -v 0.574025 3.000000 -1.385819 -v -1.500000 3.000000 0.000000 -v -1.385819 3.000000 -0.574025 -v 1.385819 3.000000 0.574025 -v 0.000000 3.000000 -1.500000 -v 0.000000 3.000000 1.500000 -v -1.060660 3.000000 1.060660 -v -1.385819 3.000000 0.574025 -v 1.060660 3.000000 -1.060660 -v 0.000000 13.000000 1.968752 -v -0.753407 13.000000 1.818890 -v 1.039365 11.000000 0.430520 -v 0.795495 11.000000 0.795496 -v 1.039365 11.000000 -0.430519 -v 1.125000 11.000000 0.000000 -v -0.795495 11.000000 -0.795494 -v -0.430518 11.000000 -1.039365 -v 0.430519 11.000000 -1.039365 -v -1.125000 11.000000 0.000000 -v -1.039365 11.000000 -0.430519 -v -0.795495 11.000000 0.795496 -v -1.039365 11.000000 0.430520 -v -0.430518 11.000000 1.039366 -v 0.000000 11.000000 -1.125000 -v 0.795495 11.000000 -0.795494 -v -1.392116 13.000000 1.392118 -v -1.793829 12.500000 4.330688 -v 1.392116 13.000000 1.392118 -v 1.968750 13.000000 0.000002 -v 1.818887 13.000000 0.753410 -v -0.753407 13.000000 -1.818887 -v 1.392116 13.000000 -1.392115 -v -1.818887 13.000000 -0.753407 -v 0.000000 13.000000 -1.968748 -v 0.753407 13.000000 -1.818886 -v -1.818887 13.000000 0.753410 -v 0.753407 13.000000 1.818889 -v 1.818887 13.000000 -0.753406 -v -1.392116 13.000000 -1.392116 -v -1.968750 13.000000 0.000002 -v -4.330685 12.500000 1.793830 -v -3.314562 12.500000 3.314564 -v -3.662591 13.500000 3.662595 -v 1.793829 12.500000 4.330687 -v 0.000000 12.500000 4.687500 -v 4.330685 12.500000 1.793830 -v 3.314562 12.500000 3.314564 -v 4.330685 12.500000 -1.793827 -v 4.687500 12.500000 0.000002 -v -3.314562 12.500000 -3.314563 -v -1.793828 12.500000 -4.330686 -v 1.793828 12.500000 -4.330685 -v -4.687500 12.500000 0.000002 -v -4.330685 12.500000 -1.793828 -v 3.314562 12.500000 -3.314562 -v 0.000000 12.500000 -4.687500 -v 1.982180 13.500000 -4.785407 -v 0.000000 13.500000 -5.179687 -v 0.000000 14.500000 -4.222969 -v 0.000000 13.500000 5.179688 -v -1.982180 13.500000 4.785408 -v 3.662591 13.500000 3.662592 -v 1.982181 13.500000 4.785408 -v 5.179687 13.500000 0.000002 -v 4.785407 13.500000 1.982183 -v -1.982179 13.500000 -4.785408 -v 3.662591 13.500000 -3.662591 -v 4.785407 13.500000 -1.982179 -v -4.785408 13.500000 -1.982180 -v -4.785408 13.500000 1.982183 -v -5.179689 13.500000 0.000002 -v -3.662591 13.500000 -3.662592 -v 2.986090 14.500000 -2.986088 -v 1.616060 14.500000 -3.901513 -v 2.160069 15.000000 -5.214867 -v -3.901515 14.500000 1.616063 -v -4.222969 14.500000 0.000002 -v -1.616060 14.500000 3.901517 -v -2.986090 14.500000 2.986092 -v 1.616060 14.500000 3.901517 -v 0.000000 14.500000 4.222970 -v 3.901514 14.500000 1.616062 -v 2.986090 14.500000 2.986092 -v 3.901514 14.500000 -1.616058 -v 4.222969 14.500000 0.000002 -v -2.986090 14.500000 -2.986088 -v -1.616059 14.500000 -3.901513 -v -3.901515 14.500000 -1.616060 -v 5.214867 15.000000 -2.160067 -v 3.991285 15.000000 -3.991285 -v 5.220437 16.750000 -5.220435 -v -5.644531 15.000000 0.000002 -v -5.214868 15.000000 -2.160068 -v -3.991286 15.000000 3.991289 -v -5.214868 15.000000 2.160072 -v 0.000000 15.000000 5.644533 -v -2.160068 15.000000 5.214869 -v 3.991285 15.000000 3.991288 -v 2.160069 15.000000 5.214869 -v 5.644531 15.000000 0.000002 -v 5.214867 15.000000 2.160070 -v -2.160066 15.000000 -5.214868 -v 0.000000 15.000000 -5.644530 -v -3.991286 15.000000 -3.991286 -v -6.820830 16.750000 -2.825279 -v -5.220437 16.750000 -5.220436 -v 0.000000 16.750000 -7.382811 -v -6.820830 16.750000 2.825283 -v -2.825279 16.750000 6.820832 -v -5.220437 16.750000 5.220439 -v 2.825280 16.750000 6.820832 -v 6.820829 16.750000 2.825283 -v 5.220437 16.750000 5.220439 -v 6.820829 16.750000 -2.825278 -v 7.382812 16.750000 0.000002 -v -2.825278 16.750000 -6.820829 -v 2.825280 16.750000 -6.820828 -v -7.382812 16.750000 0.000002 -v 0.000001 16.750000 7.382814 -v -1.435062 18.500000 3.464551 -v -2.651650 18.500000 2.651653 -v -3.464549 18.500000 1.435066 -v 2.651650 18.500000 2.651652 -v 0.000000 19.000500 0.000002 -v 1.435062 18.500000 3.464549 -v 0.000000 18.500000 3.750002 -v -3.750000 18.500000 0.000002 -v -3.464549 18.500000 -1.435062 -v -2.651650 18.500000 -2.651649 -v -1.435061 18.500000 -3.464547 -v 3.749999 18.500000 0.000002 -v 3.464547 18.500000 1.435066 -v 0.000000 18.500000 -3.749998 -v 1.435062 18.500000 -3.464546 -v 2.651650 18.500000 -2.651648 -v 3.464547 18.500000 -1.435061 -v -2.296099 -0.000000 5.543278 -v -6.000000 0.000000 0.000000 -v -2.296098 0.000000 -5.543279 -vt 0.068894 0.830663 -vt 0.068894 0.856838 -vt 0.000332 0.868878 -vt 0.068894 0.518164 -vt 0.068894 0.544338 -vt 0.000332 0.556379 -vt 0.068893 0.268164 -vt 0.068893 0.294338 -vt 0.000332 0.306378 -vt 0.068894 0.580663 -vt 0.068894 0.606838 -vt 0.000332 0.618878 -vt 0.068895 0.768163 -vt 0.068895 0.794338 -vt 0.000332 0.806378 -vt 0.068893 0.205664 -vt 0.068893 0.231838 -vt 0.000332 0.243878 -vt 0.068893 0.080663 -vt 0.068893 0.106838 -vt 0.000332 0.118878 -vt 0.068894 0.893162 -vt 0.068894 0.919337 -vt 0.000332 0.931377 -vt 0.000332 0.381124 -vt 0.068894 0.393164 -vt 0.068894 0.419339 -vt 0.068893 0.018163 -vt 0.068893 0.044338 -vt 0.000332 0.056378 -vt 0.000332 0.131123 -vt 0.068893 0.143163 -vt 0.068893 0.169338 -vt 0.000332 0.693623 -vt 0.068894 0.705663 -vt 0.068894 0.731838 -vt 0.068894 0.643163 -vt 0.068894 0.669338 -vt 0.000332 0.681378 -vt 0.000332 0.318624 -vt 0.068894 0.330664 -vt 0.068894 0.356838 -vt 0.115877 0.587469 -vt 0.115877 0.600033 -vt 0.068894 0.955663 -vt 0.068894 0.981837 -vt 0.000332 0.993878 -vt 0.000332 0.443623 -vt 0.068894 0.455663 -vt 0.068895 0.481838 -vt 0.115877 0.899968 -vt 0.287793 0.901539 -vt 0.287792 0.910961 -vt 0.115877 0.462469 -vt 0.115877 0.475033 -vt 0.115876 0.087469 -vt 0.115876 0.024969 -vt 0.115877 0.524969 -vt 0.115877 0.649969 -vt 0.115877 0.662532 -vt 0.115878 0.774969 -vt 0.115878 0.787532 -vt 0.115877 0.962468 -vt 0.115877 0.975032 -vt 0.115877 0.837469 -vt 0.115877 0.850033 -vt 0.115877 0.912532 -vt 0.115875 0.149969 -vt 0.115875 0.162532 -vt 0.115875 0.274969 -vt 0.115875 0.287533 -vt 0.115876 0.337469 -vt 0.115876 0.350033 -vt 0.115875 0.212469 -vt 0.115877 0.399970 -vt 0.115877 0.412534 -vt 0.115877 0.712469 -vt 0.287792 0.401540 -vt 0.334254 0.398006 -vt 0.334255 0.414496 -vt 0.287788 0.214039 -vt 0.287788 0.223462 -vt 0.287792 0.589039 -vt 0.287792 0.598462 -vt 0.287793 0.464040 -vt 0.287793 0.473462 -vt 0.115877 0.537533 -vt 0.287792 0.526540 -vt 0.287792 0.651539 -vt 0.287792 0.660962 -vt 0.287788 0.151539 -vt 0.287788 0.160962 -vt 0.287792 0.410963 -vt 0.115876 0.100032 -vt 0.287788 0.089039 -vt 0.287793 0.776539 -vt 0.287793 0.785962 -vt 0.287792 0.964039 -vt 0.287792 0.973461 -vt 0.287788 0.276539 -vt 0.287788 0.339040 -vt 0.287788 0.348462 -vt 0.287792 0.839039 -vt 0.287792 0.848462 -vt 0.287793 0.714039 -vt 0.287793 0.723462 -vt 0.287789 0.026539 -vt 0.287789 0.035962 -vt 0.334252 0.039495 -vt 0.334252 0.023006 -vt 0.392490 0.011620 -vt 0.287788 0.098462 -vt 0.334251 0.085506 -vt 0.334256 0.773005 -vt 0.334256 0.789495 -vt 0.334255 0.960505 -vt 0.287788 0.285962 -vt 0.334251 0.273006 -vt 0.334251 0.335506 -vt 0.334255 0.835506 -vt 0.334255 0.851995 -vt 0.334256 0.710506 -vt 0.334255 0.898005 -vt 0.334255 0.914495 -vt 0.334251 0.210506 -vt 0.334255 0.585506 -vt 0.334256 0.460506 -vt 0.334256 0.476996 -vt 0.287792 0.535962 -vt 0.334255 0.523006 -vt 0.334255 0.648006 -vt 0.334255 0.664495 -vt 0.334251 0.148005 -vt 0.334251 0.164495 -vt 0.392489 0.175881 -vt 0.392490 0.136620 -vt 0.416326 0.134558 -vt 0.392493 0.886619 -vt 0.392493 0.925881 -vt 0.392489 0.199120 -vt 0.392490 0.238381 -vt 0.392493 0.574120 -vt 0.392493 0.613382 -vt 0.392494 0.449120 -vt 0.392494 0.488382 -vt 0.334255 0.539496 -vt 0.392493 0.511620 -vt 0.392493 0.636620 -vt 0.392493 0.675881 -vt 0.392493 0.386621 -vt 0.392493 0.425882 -vt 0.392490 0.074120 -vt 0.392490 0.113381 -vt 0.392494 0.761620 -vt 0.392494 0.800881 -vt 0.334255 0.976995 -vt 0.392493 0.949119 -vt 0.392489 0.261620 -vt 0.392489 0.300882 -vt 0.392490 0.324120 -vt 0.392490 0.363382 -vt 0.392493 0.824120 -vt 0.392493 0.863381 -vt 0.334256 0.726995 -vt 0.392494 0.699120 -vt 0.416330 0.865442 -vt 0.416330 0.822059 -vt 0.445767 0.826065 -vt 0.416329 0.384559 -vt 0.416329 0.427943 -vt 0.416326 0.072058 -vt 0.416326 0.115442 -vt 0.416330 0.759559 -vt 0.416330 0.802942 -vt 0.416329 0.947058 -vt 0.416329 0.990442 -vt 0.416326 0.259559 -vt 0.416326 0.302943 -vt 0.416326 0.322059 -vt 0.416330 0.697059 -vt 0.416330 0.740443 -vt 0.416326 0.009558 -vt 0.416326 0.052942 -vt 0.416330 0.884558 -vt 0.416330 0.927942 -vt 0.416326 0.197059 -vt 0.416330 0.572059 -vt 0.416330 0.615443 -vt 0.416330 0.447059 -vt 0.416330 0.490443 -vt 0.416330 0.509559 -vt 0.416330 0.552943 -vt 0.416330 0.634559 -vt 0.445767 0.548936 -vt 0.445767 0.513566 -vt 0.477562 0.507612 -vt 0.445767 0.701065 -vt 0.445767 0.736436 -vt 0.445763 0.013565 -vt 0.445763 0.048936 -vt 0.445767 0.888565 -vt 0.445767 0.923935 -vt 0.445763 0.201065 -vt 0.445763 0.236436 -vt 0.445767 0.576065 -vt 0.445767 0.611436 -vt 0.445767 0.451066 -vt 0.445767 0.486436 -vt 0.445767 0.638565 -vt 0.445767 0.673936 -vt 0.445763 0.138565 -vt 0.445763 0.173936 -vt 0.445766 0.388566 -vt 0.445766 0.423937 -vt 0.445763 0.076065 -vt 0.445767 0.763565 -vt 0.445767 0.798936 -vt 0.445766 0.951065 -vt 0.445766 0.986435 -vt 0.445763 0.263566 -vt 0.445764 0.326066 -vt 0.445764 0.361436 -vt 0.477559 0.304890 -vt 0.477559 0.257612 -vt 0.530006 0.250332 -vt 0.477563 0.632612 -vt 0.477562 0.679889 -vt 0.477559 0.132612 -vt 0.477559 0.179889 -vt 0.477562 0.382613 -vt 0.477562 0.429890 -vt 0.477559 0.070112 -vt 0.477559 0.117389 -vt 0.477563 0.757612 -vt 0.477563 0.804889 -vt 0.477562 0.945111 -vt 0.477560 0.320112 -vt 0.445767 0.861436 -vt 0.477563 0.820112 -vt 0.477563 0.695112 -vt 0.477559 0.007611 -vt 0.477560 0.054889 -vt 0.477563 0.882612 -vt 0.477563 0.929889 -vt 0.477559 0.195112 -vt 0.477559 0.242389 -vt 0.477562 0.570112 -vt 0.477563 0.445112 -vt 0.477563 0.492390 -vt 0.530006 0.312833 -vt 0.530006 0.374670 -vt 0.477563 0.867389 -vt 0.530009 0.812832 -vt 0.477563 0.742389 -vt 0.530009 0.687832 -vt 0.530006 0.000332 -vt 0.530006 0.062169 -vt 0.530009 0.875332 -vt 0.530006 0.187832 -vt 0.530006 0.249669 -vt 0.530009 0.562833 -vt 0.530009 0.624669 -vt 0.530009 0.437833 -vt 0.530009 0.499669 -vt 0.530009 0.500333 -vt 0.530009 0.562169 -vt 0.530009 0.625332 -vt 0.530009 0.687169 -vt 0.530006 0.125332 -vt 0.530006 0.187169 -vt 0.530008 0.375333 -vt 0.530006 0.062832 -vt 0.530006 0.124669 -vt 0.530009 0.750332 -vt 0.530009 0.812169 -vt 0.530008 0.937832 -vt 0.530008 0.999668 -vt 0.615219 0.015545 -vt 0.615219 0.046955 -vt 0.615219 0.140546 -vt 0.615219 0.171955 -vt 0.615219 0.078046 -vt 0.694899 0.093750 -vt 0.615219 0.109455 -vt 0.615221 0.890546 -vt 0.694901 0.906250 -vt 0.615221 0.921955 -vt 0.615221 0.390546 -vt 0.694901 0.406251 -vt 0.615221 0.421956 -vt 0.694899 0.031250 -vt 0.694899 0.156251 -vt 0.615222 0.703046 -vt 0.694901 0.718751 -vt 0.615222 0.734455 -vt 0.615221 0.640546 -vt 0.694901 0.656251 -vt 0.615221 0.671955 -vt 0.615219 0.328047 -vt 0.694899 0.343751 -vt 0.615219 0.359456 -vt 0.615222 0.453047 -vt 0.694901 0.468751 -vt 0.615222 0.484456 -vt 0.615222 0.765546 -vt 0.694901 0.781250 -vt 0.615222 0.796955 -vt 0.615221 0.953046 -vt 0.694901 0.968750 -vt 0.615221 0.984455 -vt 0.615221 0.828046 -vt 0.694901 0.843750 -vt 0.615221 0.859455 -vt 0.615221 0.515547 -vt 0.694901 0.531251 -vt 0.615221 0.546956 -vt 0.615219 0.265546 -vt 0.694899 0.281251 -vt 0.615219 0.296955 -vt 0.615221 0.578046 -vt 0.694901 0.593751 -vt 0.615221 0.609456 -vt 0.615219 0.234455 -vt 0.615219 0.203046 -vt 0.694899 0.218751 -vt 0.530008 0.437170 -vt 0.530009 0.937169 -vt 0.530006 0.312169 -vt 0.000332 0.818623 -vt 0.000332 0.506123 -vt 0.000332 0.256124 -vt 0.000332 0.568623 -vt 0.000332 0.756123 -vt 0.000332 0.193623 -vt 0.000332 0.068623 -vt 0.000332 0.881122 -vt 0.000332 0.431379 -vt 0.000332 0.006123 -vt 0.000332 0.181378 -vt 0.000332 0.743878 -vt 0.000332 0.631123 -vt 0.000332 0.368878 -vt 0.000332 0.943622 -vt 0.000332 0.493879 -vt 0.115876 0.037532 -vt 0.115875 0.225032 -vt 0.115877 0.725032 -vt 0.392490 0.050881 -vt 0.334251 0.101995 -vt 0.334251 0.289496 -vt 0.334251 0.351996 -vt 0.334251 0.226996 -vt 0.334255 0.601996 -vt 0.416326 0.177942 -vt 0.392493 0.550882 -vt 0.392493 0.988381 -vt 0.392494 0.738381 -vt 0.416326 0.365443 -vt 0.416326 0.240443 -vt 0.416330 0.677943 -vt 0.477562 0.554890 -vt 0.445763 0.111436 -vt 0.445763 0.298936 -vt 0.477562 0.992389 -vt 0.477559 0.367390 -vt 0.477562 0.617390 -vt 0.530009 0.874669 -vt 0.530009 0.749669 -vn 0.091600 0.882900 -0.460600 -vn 0.260900 0.882900 -0.390500 -vn 0.390500 0.882900 -0.260900 -vn 0.460600 0.882900 -0.091600 -vn 0.460600 0.882900 0.091600 -vn 0.390500 0.882900 0.260900 -vn 0.260900 0.882900 0.390500 -vn 0.091600 0.882900 0.460600 -vn -0.091600 0.882900 0.460600 -vn -0.260900 0.882900 0.390500 -vn -0.390500 0.882900 0.260900 -vn -0.460600 0.882900 0.091600 -vn -0.460600 0.882900 -0.091600 -vn -0.390500 0.882900 -0.260900 -vn 0.672200 0.728200 -0.133700 -vn -0.091600 0.882900 -0.460600 -vn -0.260900 0.882900 -0.390500 -vn 0.194900 0.045900 0.979800 -vn -0.380800 0.728200 -0.569900 -vn 0.380800 0.728200 0.569900 -vn -0.380800 0.728200 0.569900 -vn 0.380800 0.728200 -0.569900 -vn -0.672200 0.728200 -0.133700 -vn 0.672200 0.728200 0.133700 -vn -0.133700 0.728200 -0.672200 -vn 0.133700 0.728200 -0.672200 -vn 0.133700 0.728200 0.672200 -vn -0.569900 0.728200 0.380800 -vn 0.569900 0.728200 -0.380800 -vn -0.569900 0.728200 -0.380800 -vn 0.569900 0.728200 0.380800 -vn -0.133700 0.728200 0.672200 -vn -0.672200 0.728200 0.133700 -vn -0.180300 -0.382300 0.906300 -vn 0.830600 0.045900 0.555000 -vn 0.979800 0.045900 -0.194900 -vn -0.555000 0.045900 -0.830600 -vn 0.555000 0.045900 -0.830600 -vn -0.979800 0.045900 -0.194900 -vn -0.830600 0.045900 0.555000 -vn -0.194900 0.045900 0.979800 -vn 0.555000 0.045900 0.830600 -vn 0.979800 0.045900 0.194900 -vn -0.194900 0.045900 -0.979800 -vn 0.830600 0.045900 -0.555000 -vn -0.830600 0.045900 -0.555000 -vn 0.194900 0.045900 -0.979800 -vn -0.979800 0.045900 0.194900 -vn -0.555000 0.045900 0.830600 -vn 0.102400 -0.982900 -0.153200 -vn 0.513400 -0.382300 0.768300 -vn 0.906300 -0.382300 0.180300 -vn -0.180300 -0.382300 -0.906300 -vn 0.768300 -0.382300 -0.513400 -vn -0.768300 -0.382300 -0.513400 -vn 0.180300 -0.382300 -0.906300 -vn -0.906300 -0.382300 0.180300 -vn -0.513400 -0.382300 0.768300 -vn 0.180300 -0.382300 0.906300 -vn 0.768300 -0.382300 0.513400 -vn 0.906300 -0.382300 -0.180300 -vn -0.513400 -0.382300 -0.768300 -vn 0.513400 -0.382300 -0.768300 -vn -0.906300 -0.382300 -0.180300 -vn -0.768300 -0.382300 0.513400 -vn -0.748800 -0.434700 0.500300 -vn -0.036000 -0.982900 -0.180800 -vn -0.153200 -0.982900 -0.102400 -vn -0.180800 -0.982900 0.036000 -vn 0.102400 -0.982900 0.153200 -vn -0.102400 -0.982900 0.153200 -vn 0.180800 -0.982900 0.036000 -vn 0.153200 -0.982900 -0.102400 -vn 0.036000 -0.982900 -0.180800 -vn -0.102400 -0.982900 -0.153200 -vn -0.180800 -0.982900 -0.036000 -vn 0.036000 -0.982900 0.180800 -vn -0.153200 -0.982900 0.102400 -vn 0.153200 -0.982900 0.102400 -vn -0.036000 -0.982900 0.180800 -vn 0.180800 -0.982900 -0.036000 -vn 0.142300 0.684300 -0.715200 -vn -0.175700 -0.434700 0.883300 -vn 0.500300 -0.434700 0.748800 -vn 0.883300 -0.434700 0.175700 -vn -0.175700 -0.434700 -0.883300 -vn 0.748800 -0.434700 -0.500300 -vn -0.748800 -0.434700 -0.500300 -vn 0.175700 -0.434700 -0.883300 -vn -0.883300 -0.434700 0.175700 -vn -0.500300 -0.434700 0.748800 -vn 0.175700 -0.434700 0.883300 -vn 0.748800 -0.434700 0.500300 -vn 0.883300 -0.434700 -0.175700 -vn -0.500300 -0.434700 -0.748800 -vn 0.500300 -0.434700 -0.748800 -vn -0.883300 -0.434700 -0.175700 -vn 0.187500 -0.941300 -0.280700 -vn -0.715200 0.684300 0.142300 -vn -0.405100 0.684300 0.606300 -vn 0.142300 0.684300 0.715200 -vn 0.606300 0.684300 0.405100 -vn 0.715200 0.684300 -0.142300 -vn -0.405100 0.684300 -0.606300 -vn 0.405100 0.684300 -0.606300 -vn -0.715200 0.684300 -0.142300 -vn -0.606300 0.684300 0.405100 -vn -0.142300 0.684300 0.715200 -vn 0.405100 0.684300 0.606300 -vn 0.715200 0.684300 0.142300 -vn -0.142300 0.684300 -0.715200 -vn 0.606300 0.684300 -0.405100 -vn -0.606300 0.684300 -0.405100 -vn 0.595600 -0.697800 -0.397900 -vn -0.331100 -0.941300 -0.065900 -vn -0.280700 -0.941300 0.187500 -vn -0.065900 -0.941300 0.331100 -vn 0.187500 -0.941300 0.280700 -vn 0.331100 -0.941300 0.065900 -vn -0.065900 -0.941300 -0.331100 -vn 0.280700 -0.941300 -0.187500 -vn -0.280700 -0.941300 -0.187500 -vn 0.065900 -0.941300 -0.331100 -vn -0.331100 -0.941300 0.065900 -vn -0.187500 -0.941300 0.280700 -vn 0.065900 -0.941300 0.331100 -vn 0.280700 -0.941300 0.187500 -vn 0.331100 -0.941300 -0.065900 -vn -0.187500 -0.941300 -0.280700 -vn -0.595600 -0.697800 -0.397900 -vn 0.139700 -0.697800 -0.702500 -vn -0.702500 -0.697800 0.139700 -vn -0.397900 -0.697800 0.595600 -vn 0.139700 -0.697800 0.702500 -vn 0.595600 -0.697800 0.397900 -vn 0.702500 -0.697800 -0.139700 -vn -0.397900 -0.697800 -0.595600 -vn 0.397900 -0.697800 -0.595600 -vn -0.702500 -0.697800 -0.139700 -vn -0.595600 -0.697800 0.397900 -vn -0.139700 -0.697800 0.702500 -vn 0.397900 -0.697800 0.595600 -vn 0.702500 -0.697800 0.139700 -vn -0.139700 -0.697800 -0.702500 -vn -0.244900 0.897600 0.366600 -vn -0.366600 0.897600 0.244900 -vn 0.074900 0.990900 0.112100 -vn 0.026300 0.990900 0.132200 -vn -0.026300 0.990900 0.132200 -vn -0.074900 0.990900 0.112100 -vn -0.112100 0.990900 0.074900 -vn -0.132200 0.990900 0.026300 -vn -0.132200 0.990900 -0.026300 -vn -0.112100 0.990900 -0.074900 -vn -0.074900 0.990900 -0.112100 -vn 0.132200 0.990900 0.026300 -vn -0.026300 0.990900 -0.132200 -vn 0.026300 0.990900 -0.132200 -vn 0.074900 0.990900 -0.112100 -vn 0.112100 0.990900 -0.074900 -vn 0.132200 0.990900 -0.026300 -vn 0.112100 0.990900 0.074900 -vn -0.086000 0.897600 0.432400 -vn 0.086000 0.897600 0.432400 -vn 0.244900 0.897600 0.366600 -vn 0.366600 0.897600 0.244900 -vn 0.432400 0.897600 0.086000 -vn 0.432400 0.897600 -0.086000 -vn 0.366600 0.897600 -0.244900 -vn 0.244900 0.897600 -0.366600 -vn 0.086000 0.897600 -0.432400 -vn -0.086000 0.897600 -0.432400 -vn -0.244900 0.897600 -0.366600 -vn -0.366600 0.897600 -0.244900 -vn -0.432400 0.897600 -0.086000 -vn -0.432400 0.897600 0.086000 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/4/2 4/5/2 5/6/2 -f 4/7/3 6/8/3 7/9/3 -f 6/10/4 8/11/4 9/12/4 -f 8/13/5 10/14/5 11/15/5 -f 10/16/6 12/17/6 13/18/6 -f 12/19/7 14/20/7 15/21/7 -f 14/22/8 16/23/8 17/24/8 -f 17/25/9 16/26/9 18/27/9 -f 18/28/10 19/29/10 20/30/10 -f 20/31/11 19/32/11 21/33/11 -f 22/34/12 21/35/12 23/36/12 -f 23/37/13 24/38/13 25/39/13 -f 25/40/14 24/41/14 26/42/14 -f 6/10/15 27/43/15 28/44/15 -f 29/45/16 1/46/16 30/47/16 -f 31/48/17 26/49/17 29/50/17 -f 32/51/18 33/52/18 34/53/18 -f 26/49/19 35/54/19 36/55/19 -f 14/20/20 12/19/20 37/56/20 -f 19/29/21 18/28/21 38/57/21 -f 4/5/22 2/4/22 39/58/22 -f 23/37/23 40/59/23 41/60/23 -f 8/13/24 28/61/24 42/62/24 -f 29/45/25 36/63/25 43/64/25 -f 1/1/26 43/65/26 39/66/26 -f 14/22/27 32/51/27 44/67/27 -f 19/32/28 45/68/28 46/69/28 -f 4/7/29 47/70/29 27/71/29 -f 24/41/30 41/72/30 35/73/30 -f 12/17/31 10/16/31 42/74/31 -f 16/26/32 44/75/32 38/76/32 -f 23/36/33 21/35/33 46/77/33 -f 34/78/34 48/79/34 49/80/34 -f 42/74/35 50/81/35 51/82/35 -f 27/43/36 52/83/36 53/84/36 -f 35/54/37 54/85/37 55/86/37 -f 47/87/38 39/58/38 56/88/38 -f 40/59/39 57/89/39 58/90/39 -f 45/68/40 59/91/40 60/92/40 -f 44/75/41 34/78/41 61/93/41 -f 32/94/42 37/56/42 51/95/42 -f 28/61/43 53/96/43 50/97/43 -f 36/63/44 55/98/44 62/99/44 -f 27/71/45 47/70/45 63/100/45 -f 41/72/46 58/101/46 54/102/46 -f 43/65/47 62/103/47 56/104/47 -f 46/77/48 60/105/48 57/106/48 -f 38/57/49 61/107/49 59/108/49 -f 64/109/50 49/110/50 65/111/50 -f 33/112/51 51/95/51 66/113/51 -f 53/96/52 67/114/52 68/115/52 -f 62/99/53 55/98/53 69/116/53 -f 52/117/54 63/100/54 70/118/54 -f 54/102/55 58/101/55 71/119/55 -f 62/103/56 72/120/56 73/121/56 -f 57/106/57 60/105/57 74/122/57 -f 59/108/58 61/107/58 49/110/58 -f 33/52/59 75/123/59 48/124/59 -f 51/82/60 50/81/60 68/125/60 -f 53/84/61 52/83/61 76/126/61 -f 54/85/62 77/127/62 69/128/62 -f 63/129/63 56/88/63 73/130/63 -f 57/89/64 78/131/64 71/132/64 -f 59/91/65 64/133/65 74/134/65 -f 79/135/66 80/136/66 81/137/66 -f 75/123/67 82/138/67 83/139/67 -f 68/125/68 84/140/68 85/141/68 -f 76/126/69 86/142/69 87/143/69 -f 77/127/70 88/144/70 89/145/70 -f 70/146/71 73/130/71 90/147/71 -f 78/131/72 91/148/72 92/149/72 -f 74/134/73 64/133/73 80/136/73 -f 48/79/74 83/150/74 65/151/74 -f 66/113/75 85/152/75 82/153/75 -f 67/114/76 87/154/76 84/155/76 -f 72/156/77 69/116/77 89/157/77 -f 70/118/78 93/158/78 86/159/78 -f 71/119/79 92/160/79 88/161/79 -f 72/120/80 94/162/80 90/163/80 -f 78/164/81 74/122/81 79/165/81 -f 95/166/82 96/167/82 97/168/82 -f 83/150/83 98/169/83 99/170/83 -f 85/152/84 100/171/84 101/172/84 -f 87/154/85 102/173/85 103/174/85 -f 89/157/86 104/175/86 96/176/86 -f 93/158/87 105/177/87 106/178/87 -f 88/161/88 92/160/88 107/179/88 -f 94/162/89 96/167/89 95/166/89 -f 79/165/90 108/180/90 109/181/90 -f 65/111/91 99/182/91 81/183/91 -f 82/138/92 101/184/92 98/185/92 -f 85/141/93 84/140/93 103/186/93 -f 86/142/94 106/187/94 102/188/94 -f 88/144/95 110/189/95 104/190/95 -f 90/147/96 95/191/96 105/192/96 -f 92/149/97 91/148/97 109/193/97 -f 111/194/98 112/195/98 113/196/98 -f 108/180/99 114/197/99 115/198/99 -f 99/182/100 116/199/100 117/200/100 -f 101/184/101 118/201/101 119/202/101 -f 103/186/102 120/203/102 121/204/102 -f 106/187/103 122/205/103 123/206/103 -f 110/189/104 124/207/104 125/208/104 -f 95/191/105 112/195/105 111/194/105 -f 109/193/106 115/209/106 126/210/106 -f 81/137/107 117/211/107 114/212/107 -f 98/169/108 119/213/108 116/214/108 -f 101/172/109 100/171/109 121/215/109 -f 102/173/110 123/216/110 120/217/110 -f 104/175/111 125/218/111 97/219/111 -f 106/178/112 105/177/112 111/220/112 -f 107/179/113 126/221/113 124/222/113 -f 127/223/114 128/224/114 129/225/114 -f 115/209/115 130/226/115 131/227/115 -f 117/211/116 132/228/116 133/229/116 -f 119/213/117 134/230/117 135/231/117 -f 121/215/118 136/232/118 137/233/118 -f 123/216/119 138/234/119 139/235/119 -f 97/219/120 125/218/120 140/236/120 -f 111/220/121 128/224/121 127/223/121 -f 124/222/122 126/221/122 131/237/122 -f 112/238/123 97/168/123 141/239/123 -f 115/198/124 114/197/124 133/240/124 -f 116/199/125 135/241/125 132/242/125 -f 118/201/126 137/243/126 134/244/126 -f 120/203/127 139/245/127 136/246/127 -f 123/206/128 122/205/128 127/247/128 -f 124/207/129 142/248/129 140/249/129 -f 131/237/130 143/250/130 144/251/130 -f 113/252/131 141/239/131 145/253/131 -f 130/254/132 133/240/132 146/255/132 -f 135/241/133 147/256/133 148/257/133 -f 134/244/134 137/243/134 149/258/134 -f 139/245/135 150/259/135 151/260/135 -f 127/247/136 152/261/136 153/262/136 -f 142/248/137 144/263/137 154/264/137 -f 113/196/138 155/265/138 129/266/138 -f 130/226/139 156/267/139 143/268/139 -f 132/228/140 148/269/140 146/270/140 -f 135/231/141 134/230/141 157/271/141 -f 136/232/142 151/272/142 149/273/142 -f 138/234/143 153/274/143 150/275/143 -f 140/236/144 154/276/144 145/277/144 -f 158/278/145 159/279/145 148/257/145 -f 159/280/146 160/281/146 146/270/146 -f 161/282/147 162/283/147 163/284/147 -f 163/285/148 162/286/148 164/287/148 -f 164/288/149 162/289/149 158/290/149 -f 158/278/150 162/291/150 159/279/150 -f 159/280/151 162/292/151 160/281/151 -f 160/293/152 162/294/152 165/295/152 -f 165/296/153 162/297/153 166/298/153 -f 166/299/154 162/300/154 167/301/154 -f 167/302/155 162/303/155 168/304/155 -f 169/305/156 162/306/156 170/307/156 -f 168/308/157 162/309/157 171/310/157 -f 171/311/158 162/312/158 172/313/158 -f 172/314/159 162/315/159 173/316/159 -f 173/317/160 162/318/160 174/319/160 -f 174/320/161 162/321/161 169/322/161 -f 161/323/162 170/324/162 162/325/162 -f 164/288/163 158/290/163 147/326/163 -f 163/285/164 164/287/164 157/327/164 -f 161/282/165 163/284/165 149/273/165 -f 170/324/166 161/323/166 151/260/166 -f 169/305/167 170/307/167 150/275/167 -f 174/320/168 169/322/168 153/262/168 -f 173/317/169 174/319/169 152/328/169 -f 172/314/170 173/316/170 129/266/170 -f 145/253/171 171/311/171 172/313/171 -f 154/276/172 168/308/172 171/310/172 -f 167/302/173 168/304/173 154/264/173 -f 166/299/174 167/301/174 144/251/174 -f 165/296/175 166/298/175 143/268/175 -f 146/255/176 160/293/176 165/295/176 -f 30/329/1 1/1/1 3/3/1 -f 3/330/2 2/4/2 5/6/2 -f 5/331/3 4/7/3 7/9/3 -f 7/332/4 6/10/4 9/12/4 -f 9/333/5 8/13/5 11/15/5 -f 11/334/6 10/16/6 13/18/6 -f 13/335/7 12/19/7 15/21/7 -f 15/336/8 14/22/8 17/24/8 -f 175/337/9 17/25/9 18/27/9 -f 175/338/10 18/28/10 20/30/10 -f 22/339/11 20/31/11 21/33/11 -f 176/340/12 22/34/12 23/36/12 -f 176/341/13 23/37/13 25/39/13 -f 31/342/14 25/40/14 26/42/14 -f 8/11/15 6/10/15 28/44/15 -f 177/343/16 29/45/16 30/47/16 -f 177/344/17 31/48/17 29/50/17 -f 44/67/18 32/51/18 34/53/18 -f 29/50/19 26/49/19 36/55/19 -f 32/94/20 14/20/20 37/56/20 -f 45/345/21 19/29/21 38/57/21 -f 47/87/22 4/5/22 39/58/22 -f 24/38/23 23/37/23 41/60/23 -f 10/14/24 8/13/24 42/62/24 -f 1/46/25 29/45/25 43/64/25 -f 2/2/26 1/1/26 39/66/26 -f 16/23/27 14/22/27 44/67/27 -f 21/33/28 19/32/28 46/69/28 -f 6/8/29 4/7/29 27/71/29 -f 26/42/30 24/41/30 35/73/30 -f 37/346/31 12/17/31 42/74/31 -f 18/27/32 16/26/32 38/76/32 -f 40/347/33 23/36/33 46/77/33 -f 61/93/34 34/78/34 49/80/34 -f 37/346/35 42/74/35 51/82/35 -f 28/44/36 27/43/36 53/84/36 -f 36/55/37 35/54/37 55/86/37 -f 63/129/38 47/87/38 56/88/38 -f 41/60/39 40/59/39 58/90/39 -f 46/69/40 45/68/40 60/92/40 -f 38/76/41 44/75/41 61/93/41 -f 33/112/42 32/94/42 51/95/42 -f 42/62/43 28/61/43 50/97/43 -f 43/64/44 36/63/44 62/99/44 -f 52/117/45 27/71/45 63/100/45 -f 35/73/46 41/72/46 54/102/46 -f 39/66/47 43/65/47 56/104/47 -f 40/347/48 46/77/48 57/106/48 -f 45/345/49 38/57/49 59/108/49 -f 80/348/50 64/109/50 65/111/50 -f 75/349/51 33/112/51 66/113/51 -f 50/97/52 53/96/52 68/115/52 -f 72/156/53 62/99/53 69/116/53 -f 76/350/54 52/117/54 70/118/54 -f 77/351/55 54/102/55 71/119/55 -f 56/104/56 62/103/56 73/121/56 -f 78/164/57 57/106/57 74/122/57 -f 64/109/58 59/108/58 49/110/58 -f 34/53/59 33/52/59 48/124/59 -f 66/352/60 51/82/60 68/125/60 -f 67/353/61 53/84/61 76/126/61 -f 55/86/62 54/85/62 69/128/62 -f 70/146/63 63/129/63 73/130/63 -f 58/90/64 57/89/64 71/132/64 -f 60/92/65 59/91/65 74/134/65 -f 108/354/66 79/135/66 81/137/66 -f 48/124/67 75/123/67 83/139/67 -f 66/352/68 68/125/68 85/141/68 -f 67/353/69 76/126/69 87/143/69 -f 69/128/70 77/127/70 89/145/70 -f 93/355/71 70/146/71 90/147/71 -f 71/132/72 78/131/72 92/149/72 -f 79/135/73 74/134/73 80/136/73 -f 49/80/74 48/79/74 65/151/74 -f 75/349/75 66/113/75 82/153/75 -f 68/115/76 67/114/76 84/155/76 -f 94/356/77 72/156/77 89/157/77 -f 76/350/78 70/118/78 86/159/78 -f 77/351/79 71/119/79 88/161/79 -f 73/121/80 72/120/80 90/163/80 -f 91/357/81 78/164/81 79/165/81 -f 112/238/82 95/166/82 97/168/82 -f 65/151/83 83/150/83 99/170/83 -f 82/153/84 85/152/84 101/172/84 -f 84/155/85 87/154/85 103/174/85 -f 94/356/86 89/157/86 96/176/86 -f 86/159/87 93/158/87 106/178/87 -f 110/358/88 88/161/88 107/179/88 -f 90/163/89 94/162/89 95/166/89 -f 91/357/90 79/165/90 109/181/90 -f 80/348/91 65/111/91 81/183/91 -f 83/139/92 82/138/92 98/185/92 -f 100/359/93 85/141/93 103/186/93 -f 87/143/94 86/142/94 102/188/94 -f 89/145/95 88/144/95 104/190/95 -f 93/355/96 90/147/96 105/192/96 -f 107/360/97 92/149/97 109/193/97 -f 128/361/98 111/194/98 113/196/98 -f 109/181/99 108/180/99 115/198/99 -f 81/183/100 99/182/100 117/200/100 -f 98/185/101 101/184/101 119/202/101 -f 100/359/102 103/186/102 121/204/102 -f 102/188/103 106/187/103 123/206/103 -f 104/190/104 110/189/104 125/208/104 -f 105/192/105 95/191/105 111/194/105 -f 107/360/106 109/193/106 126/210/106 -f 108/354/107 81/137/107 114/212/107 -f 99/170/108 98/169/108 116/214/108 -f 118/362/109 101/172/109 121/215/109 -f 103/174/110 102/173/110 120/217/110 -f 96/176/111 104/175/111 97/219/111 -f 122/363/112 106/178/112 111/220/112 -f 110/358/113 107/179/113 124/222/113 -f 152/328/114 127/223/114 129/225/114 -f 126/210/115 115/209/115 131/227/115 -f 114/212/116 117/211/116 133/229/116 -f 116/214/117 119/213/117 135/231/117 -f 118/362/118 121/215/118 137/233/118 -f 120/217/119 123/216/119 139/235/119 -f 141/364/120 97/219/120 140/236/120 -f 122/363/121 111/220/121 127/223/121 -f 142/365/122 124/222/122 131/237/122 -f 113/252/123 112/238/123 141/239/123 -f 130/254/124 115/198/124 133/240/124 -f 117/200/125 116/199/125 132/242/125 -f 119/202/126 118/201/126 134/244/126 -f 121/204/127 120/203/127 136/246/127 -f 138/366/128 123/206/128 127/247/128 -f 125/208/129 124/207/129 140/249/129 -f 142/365/130 131/237/130 144/251/130 -f 155/367/131 113/252/131 145/253/131 -f 156/368/132 130/254/132 146/255/132 -f 132/242/133 135/241/133 148/257/133 -f 157/327/134 134/244/134 149/258/134 -f 136/246/135 139/245/135 151/260/135 -f 138/366/136 127/247/136 153/262/136 -f 140/249/137 142/248/137 154/264/137 -f 128/361/138 113/196/138 129/266/138 -f 131/227/139 130/226/139 143/268/139 -f 133/229/140 132/228/140 146/270/140 -f 147/326/141 135/231/141 157/271/141 -f 137/233/142 136/232/142 149/273/142 -f 139/235/143 138/234/143 150/275/143 -f 141/364/144 140/236/144 145/277/144 -f 147/256/145 158/278/145 148/257/145 -f 148/269/146 159/280/146 146/270/146 -f 157/271/163 164/288/163 147/326/163 -f 149/258/164 163/285/164 157/327/164 -f 151/272/165 161/282/165 149/273/165 -f 150/259/166 170/324/166 151/260/166 -f 153/274/167 169/305/167 150/275/167 -f 152/261/168 174/320/168 153/262/168 -f 129/225/169 173/317/169 152/328/169 -f 155/265/170 172/314/170 129/266/170 -f 155/367/171 145/253/171 172/313/171 -f 145/277/172 154/276/172 171/310/172 -f 144/263/173 167/302/173 154/264/173 -f 143/250/174 166/299/174 144/251/174 -f 156/267/175 165/296/175 143/268/175 -f 156/368/176 146/255/176 165/295/176 diff --git a/src/main/resources/assets/hbm/models/TheGadget2.obj b/src/main/resources/assets/hbm/models/TheGadget2.obj deleted file mode 100644 index 7f13574d8..000000000 --- a/src/main/resources/assets/hbm/models/TheGadget2.obj +++ /dev/null @@ -1,1616 +0,0 @@ -# Blender v2.70 (sub 0) OBJ File: 'TheGadget2.blend' -# www.blender.org -o Cylinder.002_Cylinder.004 -v -0.850000 1.000000 -0.650000 -v -0.750000 1.000000 -0.650000 -v -0.850000 0.751256 -0.600522 -v -0.750000 0.751256 -0.600522 -v -0.850000 0.540381 -0.459619 -v -0.750000 0.540381 -0.459619 -v -0.849999 0.399478 -0.248744 -v -0.749999 0.399478 -0.248744 -v -0.849999 0.350000 0.000000 -v -0.749999 0.350000 0.000000 -v -0.849999 0.399478 0.248744 -v -0.749999 0.399478 0.248744 -v -0.850000 0.540381 0.459619 -v -0.750000 0.540381 0.459619 -v -0.850000 0.751256 0.600522 -v -0.750000 0.751256 0.600522 -v -0.850000 1.000000 0.650000 -v -0.750000 1.000000 0.650000 -v -0.850000 1.248744 0.600522 -v -0.750000 1.248744 0.600522 -v -0.850000 1.459619 0.459620 -v -0.750000 1.459619 0.459620 -v -0.850001 1.600522 0.248744 -v -0.750001 1.600522 0.248744 -v -0.850001 1.650000 -0.000000 -v -0.750001 1.650000 -0.000000 -v -0.850001 1.600522 -0.248744 -v -0.750001 1.600522 -0.248744 -v -0.850000 1.459619 -0.459620 -v -0.750000 1.459619 -0.459620 -v -0.850000 1.248744 -0.600522 -v -0.750000 1.248744 -0.600522 -v 0.750000 1.000000 -0.650000 -v 0.850000 1.000000 -0.650000 -v 0.750000 0.751256 -0.600522 -v 0.850000 0.751256 -0.600522 -v 0.750001 0.540381 -0.459619 -v 0.850000 0.540381 -0.459619 -v 0.750001 0.399478 -0.248744 -v 0.850001 0.399478 -0.248744 -v 0.750001 0.350000 0.000000 -v 0.850001 0.350000 0.000000 -v 0.750001 0.399478 0.248744 -v 0.850001 0.399478 0.248744 -v 0.750001 0.540381 0.459619 -v 0.850000 0.540381 0.459619 -v 0.750000 0.751256 0.600522 -v 0.850000 0.751256 0.600522 -v 0.750000 1.000000 0.650000 -v 0.850000 1.000000 0.650000 -v 0.750000 1.248744 0.600522 -v 0.850000 1.248744 0.600522 -v 0.750000 1.459619 0.459620 -v 0.849999 1.459619 0.459620 -v 0.749999 1.600522 0.248744 -v 0.849999 1.600522 0.248744 -v 0.749999 1.650000 -0.000000 -v 0.849999 1.650000 -0.000000 -v 0.749999 1.600522 -0.248744 -v 0.849999 1.600522 -0.248744 -v 0.750000 1.459619 -0.459620 -v 0.849999 1.459619 -0.459620 -v 0.750000 1.248744 -0.600522 -v 0.850000 1.248744 -0.600522 -v -1.500000 0.999999 -0.500000 -v 1.000000 1.000001 -0.500000 -v -1.500000 0.808657 -0.461940 -v 1.000000 0.808659 -0.461940 -v -1.500000 0.646446 -0.353553 -v 1.000000 0.646448 -0.353553 -v -1.500000 0.538059 -0.191342 -v 1.000000 0.538061 -0.191342 -v -1.500000 0.499999 0.000000 -v 1.000000 0.500001 0.000000 -v -1.500000 0.538059 0.191342 -v 1.000000 0.538061 0.191342 -v -1.500000 0.646446 0.353553 -v 1.000000 0.646448 0.353553 -v -1.500000 0.808657 0.461940 -v 1.000000 0.808659 0.461940 -v -1.500000 0.999999 0.500000 -v 1.000000 1.000001 0.500000 -v -1.500000 1.191340 0.461940 -v 1.000000 1.191343 0.461940 -v -1.500000 1.353552 0.353554 -v 1.000000 1.353554 0.353554 -v -1.500000 1.461939 0.191342 -v 0.999999 1.461941 0.191342 -v -1.500000 1.499999 -0.000000 -v 0.999999 1.500001 -0.000000 -v -1.500000 1.461939 -0.191342 -v 0.999999 1.461941 -0.191342 -v -1.500000 1.353552 -0.353554 -v 1.000000 1.353554 -0.353554 -v -1.500000 1.191340 -0.461940 -v 1.000000 1.191343 -0.461940 -v -0.750000 1.000000 -0.800000 -v -0.650000 1.000000 -0.800000 -v -0.750000 0.693853 -0.739104 -v -0.650000 0.693853 -0.739104 -v -0.749999 0.434314 -0.565685 -v -0.649999 0.434315 -0.565685 -v -0.749999 0.260896 -0.306147 -v -0.649999 0.260896 -0.306147 -v -0.749999 0.200000 0.000000 -v -0.649999 0.200000 0.000000 -v -0.749999 0.260896 0.306147 -v -0.649999 0.260896 0.306147 -v -0.749999 0.434314 0.565685 -v -0.649999 0.434315 0.565685 -v -0.750000 0.693853 0.739104 -v -0.650000 0.693853 0.739104 -v -0.750000 1.000000 0.800000 -v -0.650000 1.000000 0.800000 -v -0.750000 1.306147 0.739104 -v -0.650000 1.306147 0.739104 -v -0.750001 1.565685 0.565686 -v -0.650001 1.565685 0.565686 -v -0.750001 1.739104 0.306147 -v -0.650001 1.739104 0.306147 -v -0.750001 1.800000 -0.000000 -v -0.650001 1.800000 -0.000000 -v -0.750001 1.739104 -0.306147 -v -0.650001 1.739104 -0.306147 -v -0.750001 1.565685 -0.565686 -v -0.650001 1.565685 -0.565686 -v -0.750000 1.306146 -0.739104 -v -0.650000 1.306146 -0.739104 -v 0.650000 1.000000 -0.800000 -v 0.750000 1.000000 -0.800000 -v 0.650000 0.693853 -0.739104 -v 0.750000 0.693853 -0.739104 -v 0.650001 0.434314 -0.565685 -v 0.750000 0.434315 -0.565685 -v 0.650001 0.260896 -0.306147 -v 0.750001 0.260896 -0.306147 -v 0.650001 0.200000 0.000000 -v 0.750001 0.200000 0.000000 -v 0.650001 0.260896 0.306147 -v 0.750001 0.260896 0.306147 -v 0.650001 0.434314 0.565685 -v 0.750000 0.434315 0.565685 -v 0.650000 0.693853 0.739104 -v 0.750000 0.693853 0.739104 -v 0.650000 1.000000 0.800000 -v 0.750000 1.000000 0.800000 -v 0.650000 1.306147 0.739104 -v 0.750000 1.306147 0.739104 -v 0.650000 1.565685 0.565686 -v 0.749999 1.565685 0.565686 -v 0.649999 1.739104 0.306147 -v 0.749999 1.739104 0.306147 -v 0.649999 1.800000 -0.000000 -v 0.749999 1.800000 -0.000000 -v 0.649999 1.739104 -0.306147 -v 0.749999 1.739104 -0.306147 -v 0.650000 1.565685 -0.565686 -v 0.749999 1.565685 -0.565686 -v 0.650000 1.306146 -0.739104 -v 0.750000 1.306146 -0.739104 -v 0.000000 0.000000 0.000000 -v 0.723607 0.552781 0.525725 -v -0.276388 0.552780 0.850649 -v -0.894426 0.552784 0.000000 -v -0.276388 0.552780 -0.850649 -v 0.723607 0.552781 -0.525725 -v 0.276388 1.447220 0.850649 -v -0.723607 1.447219 0.525725 -v -0.723607 1.447219 -0.525725 -v 0.276388 1.447220 -0.850649 -v 0.894426 1.447216 0.000000 -v 0.000000 2.000000 0.000000 -v -0.162456 0.149346 0.499995 -v 0.425323 0.149346 0.309011 -v 0.262869 0.474262 0.809012 -v 0.850648 0.474264 0.000000 -v 0.425323 0.149346 -0.309011 -v -0.525730 0.149348 0.000000 -v -0.688189 0.474264 0.499997 -v -0.162456 0.149346 -0.499995 -v -0.688189 0.474264 -0.499997 -v 0.262869 0.474262 -0.809012 -v 0.951058 1.000000 0.309013 -v 0.951058 1.000000 -0.309013 -v 0.000000 1.000000 1.000000 -v 0.587786 1.000000 0.809017 -v -0.951058 1.000000 0.309013 -v -0.587786 1.000000 0.809017 -v -0.587786 1.000000 -0.809017 -v -0.951058 1.000000 -0.309013 -v 0.587786 1.000000 -0.809017 -v 0.000000 1.000000 -1.000000 -v 0.688189 1.525736 0.499997 -v -0.262869 1.525738 0.809012 -v -0.850648 1.525736 0.000000 -v -0.262869 1.525738 -0.809012 -v 0.688189 1.525736 -0.499997 -v 0.162456 1.850654 0.499995 -v 0.525730 1.850652 0.000000 -v -0.425323 1.850654 0.309011 -v -0.425323 1.850654 -0.309011 -v 0.162456 1.850654 -0.499995 -v -1.187500 0.999999 -0.500000 -v -1.187500 0.808657 -0.461940 -v -1.187500 0.646446 -0.353553 -v -1.187500 0.538059 -0.191342 -v -1.187500 0.499999 0.000000 -v -1.187500 0.538059 0.191342 -v -1.187500 0.646446 0.353553 -v -1.187500 0.808657 0.461940 -v -1.187500 0.999999 0.500000 -v -1.187500 1.191341 0.461940 -v -1.187500 1.353552 0.353554 -v -1.187500 1.461939 0.191342 -v -1.187500 1.499999 -0.000000 -v -1.187500 1.461939 -0.191342 -v -1.187500 1.353552 -0.353554 -v -1.187500 1.191341 -0.461940 -vt 0.954445 0.915707 -vt 0.941459 0.915707 -vt 0.941459 0.882608 -vt 0.941459 0.877479 -vt 0.941459 0.844380 -vt 0.954445 0.844380 -vt 0.796072 0.927548 -vt 0.796072 0.894449 -vt 0.809058 0.894449 -vt 0.223742 0.946223 -vt 0.223742 0.913124 -vt 0.236729 0.913124 -vt 0.928624 0.190559 -vt 0.928624 0.157460 -vt 0.941611 0.157460 -vt 0.209444 0.946223 -vt 0.209444 0.913124 -vt 0.222430 0.913124 -vt 0.321191 0.950380 -vt 0.308205 0.950380 -vt 0.308205 0.917281 -vt 0.954446 0.806152 -vt 0.941459 0.806152 -vt 0.941459 0.773052 -vt 0.694459 0.938495 -vt 0.694459 0.905396 -vt 0.707445 0.905396 -vt 0.129689 0.914081 -vt 0.129689 0.947180 -vt 0.116702 0.947180 -vt 0.308205 0.884181 -vt 0.321191 0.884181 -vt 0.321191 0.917281 -vt 0.005275 0.913124 -vt 0.018262 0.913124 -vt 0.018262 0.946223 -vt 0.005275 0.880025 -vt 0.018262 0.880025 -vt 0.335490 0.917281 -vt 0.335490 0.950380 -vt 0.322504 0.950380 -vt 0.074105 0.422270 -vt 0.191188 0.445675 -vt 0.167899 0.563339 -vt 0.712194 0.931183 -vt 0.725180 0.931183 -vt 0.725180 0.964282 -vt 0.335490 0.884181 -vt 0.322503 0.917281 -vt 0.573167 0.304552 -vt 0.560563 0.335132 -vt 0.573167 0.271453 -vt 0.945391 0.119232 -vt 0.945391 0.086132 -vt 0.958377 0.086132 -vt 0.674509 0.938495 -vt 0.674509 0.905396 -vt 0.687496 0.905396 -vt 0.311513 0.812793 -vt 0.311513 0.779694 -vt 0.324499 0.779694 -vt 0.324499 0.812793 -vt 0.324499 0.779693 -vt 0.337486 0.779693 -vt 0.120707 0.812793 -vt 0.107720 0.812793 -vt 0.107720 0.779693 -vt 0.915638 0.190559 -vt 0.096753 0.947180 -vt 0.096753 0.914081 -vt 0.109739 0.914081 -vt 0.954446 0.811280 -vt 0.954446 0.844380 -vt 0.707445 0.938495 -vt 0.707445 0.971594 -vt 0.694459 0.971594 -vt 0.945391 0.157460 -vt 0.945391 0.124360 -vt 0.958377 0.124360 -vt 0.902651 0.190559 -vt 0.902651 0.157460 -vt 0.915638 0.157460 -vt 0.407585 0.706344 -vt 0.420572 0.706344 -vt 0.420572 0.739443 -vt 0.712194 0.898084 -vt 0.725180 0.898084 -vt 0.954597 0.157460 -vt 0.954597 0.190559 -vt 0.941611 0.190559 -vt 0.407585 0.509354 -vt 0.394981 0.539934 -vt 0.371692 0.563339 -vt 0.809058 0.927548 -vt 0.809058 0.960648 -vt 0.796072 0.960648 -vt 0.120707 0.779693 -vt 0.133693 0.779693 -vt 0.537273 0.383870 -vt 0.560563 0.407275 -vt 0.573167 0.437854 -vt 0.851858 0.531074 -vt 0.826522 0.531074 -vt 0.826522 0.245586 -vt 0.775851 0.204802 -vt 0.801187 0.204802 -vt 0.801187 0.490290 -vt 0.775851 0.531074 -vt 0.750516 0.531074 -vt 0.750516 0.245586 -vt 0.229128 0.735876 -vt 0.203793 0.735876 -vt 0.203793 0.450388 -vt 0.699845 0.245586 -vt 0.699845 0.531074 -vt 0.674509 0.531074 -vt 0.826522 0.204802 -vt 0.725180 0.531074 -vt 0.750516 0.857346 -vt 0.725180 0.857346 -vt 0.725180 0.571858 -vt 0.699845 0.857346 -vt 0.674509 0.857346 -vt 0.674509 0.571858 -vt 0.623838 0.531074 -vt 0.598502 0.531074 -vt 0.598502 0.245586 -vt 0.649173 0.531074 -vt 0.649173 0.245586 -vt 0.038211 0.735876 -vt 0.012876 0.735876 -vt 0.012876 0.450388 -vt 0.725180 0.204802 -vt 0.750516 0.204802 -vt 0.750516 0.490290 -vt 0.417281 0.565352 -vt 0.483938 0.537605 -vt 0.435196 0.655863 -vt 0.649173 0.857346 -vt 0.649173 0.571858 -vt 0.573167 0.531074 -vt 0.573167 0.245586 -vt 0.483938 0.204802 -vt 0.407585 0.153532 -vt 0.534956 0.128071 -vt 0.324499 0.738956 -vt 0.324499 0.698218 -vt 0.337486 0.698218 -vt 0.712831 0.694025 -vt 0.712831 0.734762 -vt 0.699845 0.734762 -vt 0.712831 0.775500 -vt 0.699845 0.775500 -vt 0.324499 0.657481 -vt 0.311513 0.698218 -vt 0.337486 0.657481 -vt 0.120707 0.738956 -vt 0.407585 0.665606 -vt 0.420572 0.665606 -vt 0.120707 0.698218 -vt 0.133693 0.698218 -vt 0.699845 0.653287 -vt 0.699845 0.612549 -vt 0.712831 0.612549 -vt 0.107720 0.738956 -vt 0.107720 0.698218 -vt 0.712831 0.531074 -vt 0.712831 0.571812 -vt 0.699845 0.571812 -vt 0.120707 0.657481 -vt 0.338077 0.657481 -vt 0.325090 0.657481 -vt 0.325090 0.616743 -vt 0.120707 0.616743 -vt 0.133693 0.616743 -vt 0.133693 0.657481 -vt 0.188280 0.044395 -vt 0.081628 0.204802 -vt 0.000000 0.082032 -vt 0.392072 0.249197 -vt 0.363409 0.394014 -vt 0.219305 0.365208 -vt 0.120707 0.576005 -vt 0.107720 0.616743 -vt 0.324499 0.616743 -vt 0.311513 0.657481 -vt 0.712831 0.816238 -vt 0.699845 0.816237 -vt 0.699845 0.694025 -vt 0.712831 0.653287 -vt 0.311513 0.738956 -vt 0.133693 0.738956 -vt 0.107720 0.657481 -vt 0.902651 0.198198 -vt 0.889665 0.198198 -vt 0.889665 0.157460 -vt 0.712194 0.857346 -vt 0.699845 0.856975 -vt 0.699845 0.816238 -vt 0.121297 0.616743 -vt 0.121297 0.576005 -vt 0.134284 0.576005 -vt 0.311513 0.616743 -vt 0.311513 0.576005 -vt 0.324499 0.576005 -vt 0.325090 0.576005 -vt 0.338077 0.576005 -vt 0.338077 0.616743 -vt 0.392072 0.160406 -vt 0.363409 0.189212 -vt 0.325957 0.204802 -vt 0.796072 0.853711 -vt 0.081628 0.409604 -vt 0.044177 0.220391 -vt 0.188280 0.249197 -vt 0.941459 0.956036 -vt 1.000000 0.915707 -vt 1.000000 0.996365 -vt 0.918059 0.316459 -vt 0.976600 0.276129 -vt 0.976600 0.356788 -vt 0.984258 0.388420 -vt 0.984258 0.459747 -vt 0.918058 0.414142 -vt 0.933801 0.652063 -vt 0.992341 0.611733 -vt 0.992341 0.692392 -vt 0.937191 0.045801 -vt 0.995731 0.005472 -vt 0.995731 0.086131 -vt 0.918059 0.285461 -vt 0.918059 0.356788 -vt 0.851858 0.311183 -vt 0.875259 0.773052 -vt 0.875259 0.844380 -vt 0.809058 0.798773 -vt 0.875259 0.915707 -vt 0.809058 0.889986 -vt 0.476413 0.786594 -vt 0.534956 0.746265 -vt 0.534956 0.826925 -vt 0.601157 0.779583 -vt 0.601157 0.850910 -vt 0.534956 0.805305 -vt 0.750516 0.571403 -vt 0.809058 0.531074 -vt 0.809058 0.611733 -vt 0.738588 0.076800 -vt 0.672388 0.051077 -vt 0.738588 0.005472 -vt 0.976599 0.276129 -vt 0.910399 0.250406 -vt 0.976599 0.204802 -vt 0.672388 0.005472 -vt 0.672388 0.076800 -vt 0.606188 0.031195 -vt 0.750516 0.732723 -vt 0.809058 0.692393 -vt 0.809058 0.773052 -vt 0.404277 0.817983 -vt 0.404277 0.889310 -vt 0.338077 0.843704 -vt 0.875259 0.571403 -vt 0.933801 0.531074 -vt 0.933801 0.611733 -vt 0.476413 0.947913 -vt 0.534954 0.907584 -vt 0.534954 0.988243 -vt 0.674509 0.928673 -vt 0.608309 0.883068 -vt 0.875259 0.798775 -vt 0.875259 0.889985 -vt 0.534956 0.739253 -vt 0.604463 0.698924 -vt 0.604463 0.779583 -vt 0.879191 0.131738 -vt 0.918058 0.505353 -vt 0.984258 0.531074 -vt 0.311512 0.737324 -vt 0.311512 0.817983 -vt 0.242004 0.777654 -vt 0.608310 0.954396 -vt 0.674509 1.000000 -vt 0.404277 0.960638 -vt 0.338078 0.915033 -vt 0.673974 0.117131 -vt 0.743482 0.076801 -vt 0.743482 0.157460 -vt 0.308205 0.817983 -vt 0.308205 0.889310 -vt 0.242004 0.863588 -vt 0.410213 0.872531 -vt 0.476413 0.826925 -vt 0.476413 0.898253 -vt 0.465448 0.705935 -vt 0.534956 0.665606 -vt 0.476413 0.969580 -vt 0.410214 0.943858 -vt 0.933801 0.692392 -vt 0.875259 0.652063 -vt 0.338077 0.777653 -vt 0.407585 0.737324 -vt 0.407585 0.817982 -vt 0.870991 0.031195 -vt 0.937191 0.005472 -vt 0.937191 0.076800 -vt 0.096753 0.969968 -vt 0.030553 0.924364 -vt 0.096753 0.898641 -vt 0.242004 0.696996 -vt 0.311512 0.656665 -vt 0.791381 0.857346 -vt 0.791381 0.928673 -vt 0.725180 0.902951 -vt 0.804789 0.076800 -vt 0.738588 0.031196 -vt 0.804789 0.005472 -vt 0.407585 0.576005 -vt 0.407585 0.656665 -vt 0.338077 0.616335 -vt 0.870991 0.005472 -vt 0.870991 0.076800 -vt 0.804789 0.051078 -vt 0.473786 0.076801 -vt 0.407585 0.031195 -vt 0.473786 0.005473 -vt 0.604464 0.537605 -vt 0.604464 0.618265 -vt 0.534956 0.577935 -vt 0.417871 0.786596 -vt 0.476413 0.746265 -vt 0.539987 0.051078 -vt 0.606188 0.005472 -vt 0.606188 0.076800 -vt 0.604465 0.157460 -vt 0.534956 0.117131 -vt 0.604465 0.076801 -vt 0.476413 0.867255 -vt 0.534954 0.826925 -vt 0.809058 0.853711 -vt 0.750516 0.813383 -vt 0.673974 0.157460 -vt 0.604465 0.117131 -vt 0.673974 0.076801 -vt 0.203793 0.817981 -vt 0.203793 0.889308 -vt 0.137592 0.863587 -vt 0.750516 0.652064 -vt 0.311513 0.656665 -vt 0.242004 0.616335 -vt 0.534956 0.876630 -vt 0.601156 0.850910 -vt 0.601156 0.922237 -vt 0.809058 0.657339 -vt 0.875259 0.611733 -vt 0.875259 0.683061 -vt 0.203793 0.656665 -vt 0.134284 0.616336 -vt 0.203793 0.576005 -vt 0.812990 0.111853 -vt 0.879191 0.086132 -vt 0.879191 0.157460 -vt 0.918058 0.459747 -vt 0.851858 0.414140 -vt 0.918058 0.388419 -vt 0.203793 0.737322 -vt 0.134283 0.696994 -vt 0.910399 0.285461 -vt 0.851858 0.245130 -vt 0.910399 0.204802 -vt 0.809058 0.747332 -vt 0.875259 0.701725 -vt 0.534956 0.658593 -vt 0.604464 0.698924 -vt 0.809058 0.556796 -vt 0.875259 0.531074 -vt 0.875259 0.602401 -vt 0.918058 0.531074 -vt 0.851858 0.485467 -vt 0.107720 0.656665 -vt 0.038211 0.616335 -vt 0.107720 0.576005 -vt 0.539987 0.005472 -vt 0.539987 0.076801 -vt 0.473786 0.051079 -vt 0.941459 0.987033 -vt 0.875259 0.941428 -vt 0.107719 0.656665 -vt 0.107719 0.737324 -vt 0.038211 0.696995 -vt 0.308205 0.960637 -vt 0.242005 0.934915 -vt 0.725180 0.974278 -vt 0.791380 0.928673 -vt 0.791380 0.999999 -vt 0.134285 0.777651 -vt 0.875259 0.727447 -vt 0.941459 0.701725 -vt 0.941459 0.773053 -vt 1.000000 0.692395 -vt 1.000000 0.773052 -vt 0.941459 0.732724 -vt 0.107719 0.817982 -vt 0.038211 0.777653 -vt 0.601156 0.993563 -vt 0.534956 0.967842 -vt 0.992342 0.531074 -vt 0.992342 0.611733 -vt 0.933801 0.571404 -vt 0.743482 0.117131 -vt 0.812990 0.076801 -vt 0.812990 0.157460 -vt 0.137593 0.915030 -vt 0.203793 0.960635 -vt 0.809058 0.961312 -vt 0.875259 0.987034 -vt 0.338077 0.696995 -vt 0.038211 0.858311 -vt 0.096753 0.817982 -vt 0.209444 0.883844 -vt 0.236729 0.880025 -vt 0.308205 0.821802 -vt 0.335490 0.817983 -vt 0.335490 0.851082 -vt 0.807809 0.161279 -vt 0.835094 0.157460 -vt 0.835094 0.190559 -vt 0.753238 0.161279 -vt 0.780524 0.157460 -vt 0.780524 0.190559 -vt 0.698668 0.161279 -vt 0.725953 0.157460 -vt 0.725953 0.190559 -vt 0.644097 0.161279 -vt 0.671382 0.157460 -vt 0.671382 0.190559 -vt 0.616812 0.161279 -vt 0.644097 0.157460 -vt 0.644097 0.190559 -vt 0.534956 0.161279 -vt 0.562241 0.157460 -vt 0.562241 0.190559 -vt 0.616812 0.157460 -vt 0.616812 0.190559 -vt 0.589526 0.186740 -vt 0.589526 0.161279 -vt 0.889665 0.190559 -vt 0.862379 0.186740 -vt 0.807809 0.157460 -vt 0.807809 0.190559 -vt 0.780524 0.186740 -vt 0.862379 0.157460 -vt 0.862379 0.190559 -vt 0.835094 0.186740 -vt 0.308205 0.880362 -vt 0.308205 0.854901 -vt 0.753238 0.157460 -vt 0.753238 0.190559 -vt 0.725953 0.186740 -vt 0.698668 0.157460 -vt 0.698668 0.190559 -vt 0.671382 0.186740 -vt 0.851858 0.204802 -vt 0.851858 0.245586 -vt 0.775851 0.490290 -vt 0.801187 0.531074 -vt 0.775851 0.245586 -vt 0.229128 0.450388 -vt 0.203793 0.409604 -vt 0.674509 0.245586 -vt 0.674509 0.204802 -vt 0.826522 0.490290 -vt 0.725180 0.245586 -vt 0.699845 0.204802 -vt 0.750516 0.571858 -vt 0.699845 0.571858 -vt 0.623838 0.204802 -vt 0.623838 0.245586 -vt 0.649173 0.204802 -vt 0.038211 0.450388 -vt 0.012876 0.409604 -vt 0.725180 0.490290 -vt 0.573167 0.204802 -vt 0.125889 0.914081 -vt 0.100553 0.914081 -vt 0.096753 0.866031 -vt 0.637401 0.825903 -vt 0.604464 0.825903 -vt 0.608265 0.777853 -vt 0.637401 0.585655 -vt 0.604464 0.585655 -vt 0.608265 0.537605 -vt 0.637401 0.633704 -vt 0.604464 0.633704 -vt 0.608265 0.585655 -vt 0.604464 0.729803 -vt 0.608265 0.681754 -vt 0.633600 0.681754 -vt 0.604464 0.681754 -vt 0.608265 0.633704 -vt 0.633600 0.633704 -vt 0.005275 0.783925 -vt 0.009075 0.735876 -vt 0.034411 0.735876 -vt 0.465448 0.665606 -vt 0.461647 0.713656 -vt 0.436312 0.713656 -vt 0.637401 0.729803 -vt 0.633600 0.777853 -vt 0.005275 0.831975 -vt 0.009075 0.783925 -vt 0.034411 0.783925 -vt 0.678309 0.857346 -vt 0.703645 0.857346 -vt 0.203793 0.831975 -vt 0.207593 0.783925 -vt 0.232928 0.783925 -vt 0.203793 0.783925 -vt 0.207593 0.735876 -vt 0.232928 0.735876 -vt 0.038211 0.880025 -vt 0.009075 0.831975 -vt 0.129689 0.866031 -vt 0.100553 0.817982 -vt 0.236729 0.831975 -vt 0.232929 0.880025 -vt 0.954445 0.882608 -vt 0.954445 0.877479 -vt 0.236729 0.946223 -vt 0.222430 0.946223 -vt 0.954446 0.773052 -vt 0.116702 0.914081 -vt 0.005275 0.946223 -vt 0.018261 0.913124 -vt 0.322504 0.917281 -vt 0.137470 0.576005 -vt 0.104534 0.576005 -vt 0.050815 0.539934 -vt 0.074105 0.563339 -vt 0.038211 0.509354 -vt 0.038211 0.476255 -vt 0.050815 0.445675 -vt 0.104534 0.409604 -vt 0.137470 0.409604 -vt 0.167899 0.422270 -vt 0.203793 0.476255 -vt 0.203793 0.509354 -vt 0.191188 0.539934 -vt 0.322503 0.884181 -vt 0.712194 0.964282 -vt 0.420189 0.335132 -vt 0.407585 0.304552 -vt 0.407585 0.271453 -vt 0.506844 0.371203 -vt 0.506844 0.204802 -vt 0.420189 0.240873 -vt 0.473908 0.204802 -vt 0.537273 0.217468 -vt 0.560563 0.240873 -vt 0.958377 0.119232 -vt 0.537273 0.358537 -vt 0.473908 0.371203 -vt 0.443479 0.358537 -vt 0.443479 0.217468 -vt 0.687496 0.938495 -vt 0.337486 0.812793 -vt 0.109739 0.947180 -vt 0.941459 0.811280 -vt 0.958377 0.157460 -vt 0.407585 0.739443 -vt 0.341263 0.576005 -vt 0.308326 0.576005 -vt 0.277897 0.563339 -vt 0.254608 0.539934 -vt 0.242004 0.476255 -vt 0.277897 0.422270 -vt 0.242004 0.509354 -vt 0.254608 0.445675 -vt 0.308326 0.409604 -vt 0.341263 0.409604 -vt 0.371692 0.422270 -vt 0.394981 0.445675 -vt 0.407585 0.476255 -vt 0.133693 0.812793 -vt 0.420189 0.407275 -vt 0.443479 0.383870 -vt 0.420189 0.501534 -vt 0.573167 0.470954 -vt 0.560563 0.501534 -vt 0.537273 0.524938 -vt 0.506844 0.537605 -vt 0.473908 0.537605 -vt 0.443479 0.524938 -vt 0.407585 0.470954 -vt 0.407585 0.437854 -vt 0.458603 0.665606 -vt 0.483938 0.665606 -vt 0.507345 0.655863 -vt 0.507345 0.547348 -vt 0.417281 0.637859 -vt 0.407585 0.614336 -vt 0.407585 0.588875 -vt 0.435196 0.547348 -vt 0.458603 0.537605 -vt 0.525260 0.565352 -vt 0.534956 0.588875 -vt 0.534956 0.614336 -vt 0.525260 0.637859 -vt 0.458603 0.076801 -vt 0.483938 0.076801 -vt 0.507345 0.086544 -vt 0.435196 0.086544 -vt 0.525260 0.104548 -vt 0.534956 0.153532 -vt 0.507345 0.195058 -vt 0.458603 0.204802 -vt 0.435196 0.195058 -vt 0.417281 0.177055 -vt 0.407585 0.128071 -vt 0.417281 0.104548 -vt 0.337486 0.738956 -vt 0.525260 0.177055 -vt 0.015513 0.044395 -vt 0.044177 0.015590 -vt 0.122165 0.000000 -vt 0.159616 0.015590 -vt 0.081628 0.000000 -vt 0.203793 0.082032 -vt 0.203793 0.122770 -vt 0.188280 0.160406 -vt 0.159616 0.189212 -vt 0.122165 0.204802 -vt 0.044177 0.189212 -vt 0.015513 0.160406 -vt 0.000000 0.122770 -vt 0.325957 0.409604 -vt 0.285421 0.409604 -vt 0.247969 0.394014 -vt 0.203793 0.327572 -vt 0.203793 0.286834 -vt 0.219305 0.249197 -vt 0.247969 0.220392 -vt 0.285420 0.204802 -vt 0.363408 0.220391 -vt 0.407585 0.327572 -vt 0.392072 0.365208 -vt 0.407585 0.286834 -vt 0.712831 0.856975 -vt 0.134284 0.616743 -vt 0.247969 0.189212 -vt 0.219305 0.160406 -vt 0.247969 0.015590 -vt 0.325957 0.000000 -vt 0.219305 0.044395 -vt 0.285421 0.000000 -vt 0.363409 0.015590 -vt 0.392072 0.044395 -vt 0.407585 0.082032 -vt 0.407585 0.122770 -vt 0.159616 0.394014 -vt 0.122165 0.409604 -vt 0.044177 0.394014 -vt 0.015513 0.365208 -vt 0.000000 0.327572 -vt 0.000000 0.286834 -vt 0.015513 0.249197 -vt 0.159616 0.220391 -vt 0.188280 0.365208 -vt 0.308205 0.847263 -vt 0.209444 0.909305 -vt 0.807809 0.186740 -vt 0.753238 0.186740 -vt 0.698668 0.186740 -vt 0.644097 0.186740 -vt 0.616812 0.186740 -vt 0.534956 0.186740 -vt 0.862379 0.161279 -vt 0.780524 0.161279 -vt 0.835094 0.161279 -vt 0.725953 0.161279 -vt 0.671382 0.161279 -vt 0.229128 0.409604 -vt 0.598502 0.204802 -vt 0.038211 0.409604 -vt 0.633600 0.537605 -vt 0.633600 0.585654 -vt 0.637401 0.681754 -vt 0.038211 0.783925 -vt 0.432511 0.665606 -vt 0.038211 0.831975 -vt 0.236729 0.783925 -vt 0.034411 0.831975 -vt 0.125889 0.817982 -vt 0.207593 0.880025 -vn 0.000000 -0.195090 -0.980785 -vn 0.000000 -0.555571 -0.831469 -vn 0.000001 -0.831470 -0.555570 -vn 0.000001 -0.980785 -0.195090 -vn 0.000001 -0.980785 0.195090 -vn 0.000001 -0.831470 0.555570 -vn 0.000001 -0.555571 0.831469 -vn 0.000000 -0.195090 0.980785 -vn -0.000000 0.195090 0.980785 -vn -0.000000 0.555569 0.831470 -vn -0.000001 0.831469 0.555571 -vn -0.000002 0.980785 0.195090 -vn -0.000001 0.980785 -0.195092 -vn -0.000001 0.831470 -0.555570 -vn 1.000000 0.000001 0.000000 -vn 0.000000 0.195090 -0.980785 -vn -0.000001 0.555570 -0.831470 -vn -1.000000 -0.000001 -0.000000 -vn 0.000001 -0.555570 -0.831469 -vn 0.000000 -0.555571 0.831469 -vn 0.000000 0.555570 0.831470 -vn -0.000001 0.980786 0.195088 -vn -0.000001 0.980785 -0.195091 -vn 1.000000 0.000004 0.000000 -vn -0.000001 0.555571 -0.831469 -vn 0.000000 -0.195091 -0.980785 -vn 0.000001 -0.555570 -0.831470 -vn 0.000001 -0.555570 0.831470 -vn 0.000000 -0.195091 0.980785 -vn -0.000001 0.555570 0.831470 -vn -0.000001 0.831469 0.555570 -vn -0.000001 0.980785 0.195091 -vn -0.000000 0.555570 -0.831470 -vn -0.000000 -0.555570 -0.831470 -vn 0.000000 -0.555570 0.831470 -vn 0.000000 0.831470 0.555570 -vn 0.000000 0.980785 0.195090 -vn 0.000000 0.980785 -0.195090 -vn 0.000000 0.831470 -0.555570 -vn -0.000001 0.555569 -0.831470 -vn -0.000001 0.831470 0.555570 -vn 0.000000 0.980785 -0.195091 -vn 1.000000 -0.000001 0.000000 -vn 0.102381 -0.943524 0.315090 -vn 0.700224 -0.661699 0.268032 -vn -0.268034 -0.943523 0.194736 -vn -0.268034 -0.943523 -0.194736 -vn 0.102381 -0.943524 -0.315090 -vn 0.904989 -0.330385 0.268032 -vn 0.024747 -0.330386 0.943521 -vn -0.889697 -0.330385 0.315095 -vn -0.574602 -0.330388 -0.748783 -vn 0.534576 -0.330387 -0.777865 -vn 0.802609 -0.125627 0.583126 -vn -0.306569 -0.125629 0.943522 -vn -0.992077 -0.125628 0.000000 -vn -0.306569 -0.125629 -0.943522 -vn 0.802609 -0.125627 -0.583126 -vn 0.408946 0.661699 0.628425 -vn -0.471300 0.661699 0.583122 -vn -0.700224 0.661699 -0.268032 -vn 0.038530 0.661699 -0.748779 -vn 0.724042 0.661695 -0.194736 -vn -0.038531 -0.661699 0.748779 -vn 0.187594 -0.794658 0.577345 -vn 0.471300 -0.661699 0.583122 -vn 0.700224 -0.661699 -0.268032 -vn 0.607060 -0.794656 0.000000 -vn 0.331305 -0.943524 0.000000 -vn -0.724042 -0.661695 0.194736 -vn -0.491120 -0.794657 0.356821 -vn -0.408946 -0.661698 0.628425 -vn -0.408946 -0.661698 -0.628425 -vn -0.491120 -0.794657 -0.356821 -vn -0.724042 -0.661695 -0.194736 -vn 0.471300 -0.661699 -0.583122 -vn 0.187594 -0.794658 -0.577345 -vn -0.038531 -0.661699 -0.748779 -vn 0.992077 0.125628 0.000000 -vn 0.982246 -0.187598 0.000000 -vn 0.904989 -0.330385 -0.268032 -vn 0.306569 0.125629 0.943522 -vn 0.303531 -0.187597 0.934171 -vn 0.534576 -0.330387 0.777865 -vn -0.802609 0.125627 0.583126 -vn -0.794656 -0.187595 0.577348 -vn -0.574602 -0.330388 0.748783 -vn -0.802609 0.125627 -0.583126 -vn -0.794656 -0.187595 -0.577348 -vn -0.889697 -0.330385 -0.315095 -vn 0.306569 0.125629 -0.943522 -vn 0.303531 -0.187597 -0.934171 -vn 0.024747 -0.330386 -0.943521 -vn 0.574602 0.330388 0.748784 -vn 0.794656 0.187595 0.577348 -vn 0.889697 0.330385 0.315094 -vn -0.534576 0.330386 0.777865 -vn -0.303531 0.187597 0.934171 -vn -0.024747 0.330386 0.943521 -vn -0.904989 0.330385 -0.268032 -vn -0.982246 0.187598 0.000000 -vn -0.904989 0.330385 0.268032 -vn -0.024747 0.330386 -0.943521 -vn -0.303531 0.187597 -0.934171 -vn -0.534576 0.330386 -0.777865 -vn 0.889697 0.330385 -0.315094 -vn 0.794656 0.187595 -0.577348 -vn 0.574602 0.330388 -0.748784 -vn 0.268034 0.943523 0.194737 -vn 0.491119 0.794657 0.356822 -vn 0.724042 0.661695 0.194736 -vn -0.102381 0.943523 0.315090 -vn -0.187594 0.794657 0.577346 -vn 0.038531 0.661699 0.748779 -vn -0.331305 0.943524 0.000000 -vn -0.607061 0.794655 0.000000 -vn -0.700224 0.661699 0.268032 -vn -0.102381 0.943523 -0.315090 -vn -0.187594 0.794658 -0.577345 -vn -0.471300 0.661699 -0.583122 -vn 0.268034 0.943523 -0.194737 -vn 0.491119 0.794657 -0.356822 -vn 0.408946 0.661699 -0.628425 -vn 0.700212 0.700217 0.139282 -vn 0.700212 0.593615 0.396641 -vn 0.700213 0.396641 0.593614 -vn 0.700214 0.139282 0.700215 -vn 0.700215 -0.139280 0.700214 -vn 0.700217 -0.396638 0.593612 -vn 0.700217 -0.593610 0.396639 -vn 0.700218 -0.700212 0.139281 -vn 0.700218 -0.700211 -0.139281 -vn 0.700217 -0.593610 -0.396639 -vn 0.700211 0.700217 -0.139282 -vn 0.700212 0.593615 -0.396641 -vn 0.700213 0.396641 -0.593614 -vn 0.700214 0.139282 -0.700215 -vn 0.700215 -0.139280 -0.700214 -vn 0.700217 -0.396638 -0.593612 -vn 0.000001 -0.555571 -0.831469 -vn 0.000001 -0.980785 -0.195091 -vn -0.000000 0.555571 0.831469 -vn -0.399591 0.178838 -0.899080 -vn -0.399592 0.509287 -0.762203 -vn -0.399593 0.762202 -0.509287 -vn -0.399593 0.899079 -0.178838 -vn -0.399593 0.899079 0.178839 -vn -0.399592 0.762202 0.509288 -vn -0.399592 0.509287 0.762203 -vn -0.399591 0.178838 0.899080 -vn -0.399590 -0.178838 0.899080 -vn -0.399590 -0.509288 0.762203 -vn -0.399589 -0.762204 0.509288 -vn -0.399589 -0.899080 0.178838 -vn -0.399589 -0.899080 -0.178838 -vn -0.399589 -0.762203 -0.509288 -vn -0.399590 -0.509288 -0.762203 -vn -0.399591 -0.178838 -0.899080 -vn 0.000001 -0.195090 -0.980785 -vn 0.000001 -0.831469 0.555571 -vn 0.000001 -0.195090 0.980785 -vn -0.000001 0.195090 0.980785 -vn -0.000002 0.831470 0.555570 -vn -0.000002 0.980785 0.195089 -vn -0.000002 0.980785 -0.195089 -vn 1.000000 0.000002 0.000000 -vn -1.000000 -0.000002 0.000000 -vn -1.000000 -0.000000 0.000000 -vn -0.000001 0.555569 0.831470 -vn 0.000000 0.831469 0.555571 -vn -0.000001 0.980785 0.195092 -vn 1.000000 0.000000 0.000000 -vn -1.000000 -0.000001 0.000001 -vn -1.000000 -0.000002 -0.000001 -vn 0.000001 -0.980785 0.195091 -vn -0.000001 0.831471 0.555569 -vn 1.000000 0.000001 0.000001 -vn 1.000000 0.000001 -0.000002 -vn 1.000000 0.000006 -0.000001 -vn 1.000000 0.000002 0.000001 -vn -1.000000 0.000000 -0.000001 -vn -1.000000 0.000002 0.000003 -vn -1.000000 -0.000001 0.000002 -vn -1.000000 -0.000001 -0.000001 -vn -1.000000 0.000002 0.000001 -vn 0.000000 -0.831470 -0.555570 -vn 0.000000 -0.831469 0.555570 -vn -0.000001 0.555570 0.831469 -vn 0.000000 0.831469 0.555570 -vn 0.000000 0.980785 0.195091 -vn 0.000000 0.555570 -0.831469 -vn -1.000000 -0.000004 0.000000 -vn -1.000000 -0.000003 -0.000000 -vn -0.000001 0.980785 0.195090 -vn -0.000001 0.980785 -0.195090 -vn 0.000000 0.555571 -0.831469 -vn -1.000000 0.000000 0.000001 -vn -1.000000 0.000001 0.000000 -vn 0.700211 0.593616 0.396641 -vn 0.700212 0.700217 0.139281 -vn 0.700212 0.396641 0.593615 -vn 0.700216 -0.139281 0.700213 -vn 0.700216 -0.396638 0.593612 -vn 0.700217 -0.593611 0.396639 -vn 0.700217 -0.700212 0.139281 -vn 0.700217 -0.593611 -0.396639 -vn 0.700212 0.700217 -0.139282 -vn 0.700211 0.593616 -0.396641 -vn 0.700215 -0.139281 -0.700214 -vn 0.700216 -0.396638 -0.593612 -vn 0.000001 -0.831469 -0.555571 -vn -0.000001 0.831469 -0.555571 -vn -0.399592 0.178837 -0.899079 -vn -0.399592 0.762202 -0.509288 -vn -0.399592 0.899079 -0.178839 -vn -0.399593 0.899079 0.178838 -vn -0.399593 0.762202 0.509287 -vn -0.399591 0.178837 0.899080 -vn -0.399591 -0.178838 0.899080 -vn -0.399589 -0.762203 0.509288 -vn -0.399589 -0.899081 0.178838 -vn -0.399589 -0.899081 -0.178838 -vn -0.399589 -0.762204 -0.509288 -vn -0.399590 -0.178838 -0.899080 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/4/2 6/5/2 5/6/2 -f 6/7/3 8/8/3 7/9/3 -f 8/10/4 10/11/4 9/12/4 -f 10/13/5 12/14/5 11/15/5 -f 12/16/6 14/17/6 13/18/6 -f 13/19/7 14/20/7 16/21/7 -f 15/22/8 16/23/8 18/24/8 -f 18/25/9 20/26/9 19/27/9 -f 20/28/10 22/29/10 21/30/10 -f 21/31/11 22/32/11 24/33/11 -f 23/34/12 24/35/12 26/36/12 -f 26/34/13 28/37/13 27/38/13 -f 28/39/14 30/40/14 29/41/14 -f 22/42/15 14/43/15 6/44/15 -f 31/45/16 32/46/16 2/47/16 -f 30/48/17 32/39/17 31/49/17 -f 19/50/18 21/51/18 17/52/18 -f 34/53/1 36/54/1 35/55/1 -f 36/56/19 38/57/19 37/58/19 -f 38/59/3 40/60/3 39/61/3 -f 40/62/4 42/63/4 41/64/4 -f 41/65/5 42/66/5 44/67/5 -f 44/14/6 46/13/6 45/68/6 -f 46/69/20 48/70/20 47/71/20 -f 48/72/8 50/73/8 49/5/8 -f 50/74/9 52/75/9 51/76/9 -f 52/77/21 54/78/21 53/79/21 -f 54/80/11 56/81/11 55/82/11 -f 55/83/22 56/84/22 58/85/22 -f 58/45/23 60/86/23 59/87/23 -f 60/88/14 62/89/14 61/90/14 -f 42/91/24 40/92/24 38/93/24 -f 64/94/16 34/95/16 33/96/16 -f 62/65/25 64/97/25 63/98/25 -f 45/99/18 47/100/18 49/101/18 -f 66/102/26 68/103/26 204/104/26 -f 68/105/27 70/106/27 205/107/27 -f 70/108/3 72/109/3 206/110/3 -f 72/111/4 74/112/4 207/113/4 -f 207/114/5 74/115/5 76/116/5 -f 208/107/6 76/106/6 78/117/6 -f 78/118/28 80/115/28 210/114/28 -f 80/119/29 82/120/29 211/121/29 -f 82/122/9 84/123/9 212/124/9 -f 84/125/30 86/126/30 213/127/30 -f 86/116/31 88/128/31 214/129/31 -f 214/129/32 88/128/32 90/125/32 -f 90/130/23 92/131/23 216/132/23 -f 92/133/14 94/134/14 217/135/14 -f 88/136/15 82/137/15 96/138/15 -f 96/123/16 66/139/16 203/140/16 -f 94/126/33 96/141/33 218/142/33 -f 79/143/18 87/144/18 71/145/18 -f 98/146/1 100/147/1 99/148/1 -f 100/149/34 102/150/34 101/151/34 -f 102/150/3 104/152/3 103/153/3 -f 104/154/4 106/147/4 105/155/4 -f 106/156/5 108/148/5 107/147/5 -f 108/157/6 110/97/6 109/67/6 -f 109/158/35 110/159/35 112/84/35 -f 112/157/8 114/160/8 113/161/8 -f 114/162/9 116/163/9 115/164/9 -f 116/165/21 118/166/21 117/160/21 -f 118/167/36 120/168/36 119/169/36 -f 120/170/37 122/160/37 121/166/37 -f 121/171/38 122/172/38 124/173/38 -f 123/174/39 124/175/39 126/176/39 -f 122/177/15 110/178/15 102/179/15 -f 127/64/16 128/63/16 98/146/16 -f 125/170/40 126/176/40 128/161/40 -f 119/180/18 127/181/18 103/182/18 -f 130/183/1 132/174/1 131/184/1 -f 132/185/34 134/154/34 133/186/34 -f 134/152/3 136/187/3 135/188/3 -f 136/189/4 138/162/4 137/190/4 -f 137/146/5 138/191/5 140/155/5 -f 140/192/6 142/98/6 141/97/6 -f 142/174/28 144/170/28 143/193/28 -f 143/194/8 144/195/8 146/196/8 -f 145/197/9 146/120/9 148/87/9 -f 148/198/21 150/199/21 149/187/21 -f 150/200/41 152/201/41 151/202/41 -f 151/164/32 152/163/32 154/169/32 -f 154/203/42 156/204/42 155/205/42 -f 155/206/39 156/207/39 158/208/39 -f 140/209/43 138/210/43 136/211/43 -f 159/9/16 160/8/16 130/212/16 -f 157/191/40 158/146/40 160/61/40 -f 131/213/18 143/214/18 151/215/18 -f 161/216/44 174/217/44 173/218/44 -f 162/219/45 174/220/45 176/221/45 -f 161/222/46 173/223/46 178/224/46 -f 161/225/47 178/226/47 180/227/47 -f 161/228/48 180/229/48 177/230/48 -f 162/231/49 176/232/49 183/233/49 -f 163/234/50 175/235/50 185/236/50 -f 164/237/51 179/238/51 187/235/51 -f 165/239/52 181/240/52 189/241/52 -f 166/242/53 182/243/53 191/244/53 -f 162/245/54 183/246/54 186/247/54 -f 163/248/55 185/249/55 188/250/55 -f 164/251/56 187/252/56 190/253/56 -f 165/254/57 189/255/57 192/256/57 -f 166/257/58 191/258/58 184/259/58 -f 167/260/59 193/261/59 198/262/59 -f 168/263/60 194/264/60 200/265/60 -f 169/266/61 195/267/61 201/268/61 -f 170/123/62 196/269/62 202/270/62 -f 171/24/63 197/5/63 199/271/63 -f 173/272/64 175/5/64 163/2/64 -f 173/273/65 174/274/65 175/275/65 -f 174/54/66 162/77/66 175/276/66 -f 176/277/67 177/223/67 166/278/67 -f 176/279/68 174/280/68 177/281/68 -f 174/282/69 161/269/69 177/283/69 -f 178/284/70 179/285/70 164/261/70 -f 178/286/71 173/287/71 179/288/71 -f 173/289/72 163/290/72 179/291/72 -f 180/292/73 181/293/73 165/294/73 -f 180/240/74 178/295/74 181/296/74 -f 178/294/75 164/297/75 181/298/75 -f 177/265/76 182/299/76 166/300/76 -f 177/301/77 180/302/77 182/303/77 -f 180/304/78 165/305/78 182/306/78 -f 183/307/79 184/308/79 171/309/79 -f 183/310/80 176/311/80 184/279/80 -f 176/312/81 166/313/81 184/314/81 -f 185/315/82 186/316/82 167/317/82 -f 185/318/83 175/319/83 186/320/83 -f 175/321/84 162/322/84 186/323/84 -f 187/324/85 188/325/85 168/326/85 -f 187/327/86 179/328/86 188/329/86 -f 179/293/87 163/330/87 188/331/87 -f 189/332/88 190/333/88 169/334/88 -f 189/335/89 181/336/89 190/337/89 -f 181/267/90 164/338/90 190/339/90 -f 191/259/91 192/340/91 170/341/91 -f 191/342/92 182/343/92 192/344/92 -f 182/345/93 165/346/93 192/347/93 -f 186/247/94 193/258/94 167/348/94 -f 186/349/95 183/350/95 193/204/95 -f 183/351/96 171/352/96 193/353/96 -f 188/354/97 194/355/97 168/356/97 -f 188/357/98 185/358/98 194/359/98 -f 185/360/99 167/361/99 194/362/99 -f 190/363/100 195/364/100 169/365/100 -f 190/357/101 187/366/101 195/367/101 -f 187/368/102 168/369/102 195/370/102 -f 192/371/103 196/372/103 170/234/103 -f 192/373/104 189/328/104 196/374/104 -f 189/375/105 169/376/105 196/377/105 -f 184/378/106 197/379/106 171/363/106 -f 184/380/107 191/381/107 197/382/107 -f 191/383/108 170/384/108 197/385/108 -f 198/386/109 199/387/109 172/2/109 -f 198/388/110 193/389/110 199/390/110 -f 193/290/111 171/391/111 199/392/111 -f 200/393/112 198/394/112 172/395/112 -f 200/366/113 194/345/113 198/396/113 -f 194/397/114 167/398/114 198/399/114 -f 201/400/115 200/401/115 172/402/115 -f 201/403/116 195/404/116 200/389/116 -f 195/353/117 168/405/117 200/406/117 -f 202/407/118 201/408/118 172/409/118 -f 202/410/119 196/411/119 201/412/119 -f 196/413/120 169/346/120 201/414/120 -f 199/415/121 202/237/121 172/416/121 -f 199/302/122 197/417/122 202/319/122 -f 197/309/123 170/418/123 202/419/123 -f 90/420/124 58/421/124 56/12/124 -f 88/422/125 56/423/125 54/424/125 -f 86/425/126 54/426/126 52/427/126 -f 84/428/127 52/429/127 50/430/127 -f 82/431/128 50/432/128 48/433/128 -f 80/434/129 48/435/129 46/436/129 -f 78/437/130 46/438/130 44/439/130 -f 76/440/131 44/441/131 42/442/131 -f 42/443/132 40/444/132 72/445/132 -f 40/442/133 38/441/133 70/446/133 -f 60/196/134 58/447/134 90/448/134 -f 62/449/135 60/450/135 92/451/135 -f 64/452/136 62/453/136 94/454/136 -f 96/455/137 66/456/137 34/424/137 -f 36/457/138 34/458/138 66/459/138 -f 38/460/139 36/461/139 68/462/139 -f 65/463/1 203/464/1 204/104/1 -f 204/465/140 205/107/140 69/466/140 -f 69/105/3 205/467/3 206/110/3 -f 206/468/141 207/113/141 73/469/141 -f 207/114/5 208/470/5 75/471/5 -f 208/107/6 209/472/6 77/103/6 -f 209/473/20 210/114/20 79/474/20 -f 210/475/8 211/121/8 81/118/8 -f 211/476/9 212/124/9 83/116/9 -f 83/477/142 212/478/142 213/127/142 -f 213/470/41 214/129/41 87/479/41 -f 87/479/32 214/129/32 215/478/32 -f 215/480/23 216/132/23 91/481/23 -f 91/118/14 216/482/14 217/135/14 -f 218/124/16 203/140/16 65/128/16 -f 217/127/17 218/142/17 95/483/17 -f 203/484/143 218/485/143 31/486/143 -f 29/487/144 31/488/144 218/489/144 -f 27/490/145 29/491/145 217/492/145 -f 25/493/146 27/494/146 216/495/146 -f 25/496/147 215/497/147 214/498/147 -f 23/499/148 214/500/148 213/501/148 -f 21/502/149 213/503/149 212/504/149 -f 19/505/150 212/506/150 211/507/150 -f 17/508/151 211/509/151 210/489/151 -f 15/510/152 210/511/152 209/512/152 -f 13/57/153 209/513/153 208/514/153 -f 11/515/154 208/516/154 207/517/154 -f 9/518/155 207/519/155 206/520/155 -f 5/521/156 7/37/156 206/522/156 -f 3/523/157 5/486/157 205/524/157 -f 1/515/158 3/525/158 204/526/158 -f 3/527/159 1/1/159 4/3/159 -f 3/528/27 4/4/27 5/6/27 -f 5/94/3 6/7/3 7/9/3 -f 7/529/4 8/10/4 9/12/4 -f 9/90/5 10/13/5 11/15/5 -f 11/530/160 12/16/160 13/18/160 -f 15/33/28 13/19/28 16/21/28 -f 17/531/161 15/22/161 18/24/161 -f 17/74/162 18/25/162 19/27/162 -f 19/532/30 20/28/30 21/30/30 -f 23/21/163 21/31/163 24/33/163 -f 25/533/164 23/34/164 26/36/164 -f 25/534/165 26/34/165 27/38/165 -f 27/535/14 28/39/14 29/41/14 -f 6/44/15 4/536/15 2/537/15 -f 30/538/15 6/44/15 32/539/15 -f 30/538/166 28/540/166 26/541/166 -f 26/541/24 24/542/24 22/42/24 -f 22/42/15 20/543/15 18/544/15 -f 18/544/15 16/545/15 14/43/15 -f 14/43/166 12/546/166 10/547/166 -f 6/44/15 14/43/15 8/548/15 -f 29/549/40 30/48/40 31/49/40 -f 22/42/15 6/44/15 26/541/15 -f 22/42/15 18/544/15 14/43/15 -f 6/44/15 2/537/15 32/539/15 -f 14/43/15 10/547/15 8/548/15 -f 1/550/16 31/45/16 2/47/16 -f 6/44/15 30/538/15 26/541/15 -f 31/551/18 1/552/18 3/553/18 -f 21/51/18 25/554/18 17/52/18 -f 11/555/18 5/556/18 9/557/18 -f 11/555/167 13/558/167 15/559/167 -f 33/560/1 34/53/1 35/55/1 -f 23/561/167 25/554/167 21/51/167 -f 31/551/18 5/556/18 27/562/18 -f 27/562/18 29/563/18 31/551/18 -f 5/556/18 17/52/18 25/554/18 -f 15/559/18 5/556/18 11/555/18 -f 31/551/18 3/553/18 5/556/18 -f 5/556/167 7/564/167 9/557/167 -f 15/559/168 17/52/168 5/556/168 -f 35/565/27 36/56/27 37/58/27 -f 5/556/18 25/554/18 27/562/18 -f 37/62/3 38/59/3 39/61/3 -f 39/566/4 40/62/4 41/64/4 -f 43/97/5 41/65/5 44/67/5 -f 43/82/6 44/14/6 45/68/6 -f 45/567/28 46/69/28 47/71/28 -f 47/568/8 48/72/8 49/5/8 -f 49/25/9 50/74/9 51/76/9 -f 51/569/169 52/77/169 53/79/169 -f 53/68/170 54/80/170 55/82/170 -f 57/570/171 55/83/171 58/85/171 -f 57/46/13 58/45/13 59/87/13 -f 59/15/14 60/88/14 61/90/14 -f 38/93/15 36/571/15 34/572/15 -f 34/572/172 64/573/172 62/574/172 -f 58/575/166 54/576/166 60/577/166 -f 58/575/172 56/578/172 54/576/172 -f 54/576/172 52/579/172 50/580/172 -f 50/580/15 48/581/15 46/582/15 -f 46/582/166 44/583/166 42/91/166 -f 63/7/16 64/94/16 33/96/16 -f 62/574/15 60/577/15 34/572/15 -f 60/577/15 54/576/15 38/93/15 -f 46/582/15 38/93/15 50/580/15 -f 46/582/15 42/91/15 38/93/15 -f 61/584/17 62/65/17 63/98/17 -f 60/577/15 38/93/15 34/572/15 -f 38/93/15 54/576/15 50/580/15 -f 37/585/18 39/586/18 63/587/18 -f 204/465/27 68/105/27 205/107/27 -f 39/586/168 41/562/168 43/554/168 -f 49/101/18 39/586/18 43/554/18 -f 51/588/18 39/586/18 49/101/18 -f 51/588/173 53/589/173 55/590/173 -f 55/590/168 57/591/168 59/592/168 -f 59/592/174 61/593/174 63/587/174 -f 33/594/18 35/595/18 37/585/18 -f 203/464/1 66/102/1 204/104/1 -f 51/588/18 55/590/18 59/592/18 -f 63/587/167 51/588/167 59/592/167 -f 33/594/18 37/585/18 63/587/18 -f 45/99/18 49/101/18 43/554/18 -f 39/586/18 51/588/18 63/587/18 -f 205/467/3 70/108/3 206/110/3 -f 206/468/141 72/111/141 207/113/141 -f 208/470/175 207/114/175 76/116/175 -f 209/472/6 208/107/6 78/117/6 -f 209/473/20 78/118/20 210/114/20 -f 210/475/29 80/119/29 211/121/29 -f 211/476/9 82/122/9 212/124/9 -f 212/478/30 84/125/30 213/127/30 -f 213/470/176 86/116/176 214/129/176 -f 215/478/32 214/129/32 90/125/32 -f 215/480/23 90/130/23 216/132/23 -f 216/482/14 92/133/14 217/135/14 -f 66/596/177 96/138/177 68/597/177 -f 70/598/43 82/137/43 80/599/43 -f 94/600/172 92/601/172 90/602/172 -f 218/124/16 96/123/16 203/140/16 -f 86/603/178 84/604/178 82/137/178 -f 78/605/166 70/598/166 80/599/166 -f 78/605/179 76/606/179 74/607/179 -f 74/607/180 72/608/180 70/598/180 -f 94/600/166 88/136/166 96/138/166 -f 88/136/15 86/603/15 82/137/15 -f 217/127/40 94/126/40 218/142/40 -f 78/605/15 74/607/15 70/598/15 -f 94/600/166 90/602/166 88/136/166 -f 96/138/178 70/598/178 68/597/178 -f 70/598/15 96/138/15 82/137/15 -f 95/609/18 65/610/18 67/611/18 -f 71/145/173 93/612/173 69/613/173 -f 99/189/27 100/149/27 101/151/27 -f 79/143/181 73/614/181 77/615/181 -f 79/143/18 81/616/18 83/617/18 -f 83/617/182 85/618/182 87/144/182 -f 87/144/168 89/619/168 91/620/168 -f 95/609/183 67/611/183 93/612/183 -f 91/620/184 93/612/184 71/145/184 -f 93/612/184 67/611/184 69/613/184 -f 79/143/18 83/617/18 87/144/18 -f 79/143/18 71/145/18 73/614/18 -f 97/621/26 98/146/26 99/148/26 -f 71/145/18 87/144/18 91/620/18 -f 73/614/185 75/622/185 77/615/185 -f 101/151/186 102/150/186 103/153/186 -f 103/186/141 104/154/141 105/155/141 -f 105/154/175 106/156/175 107/147/175 -f 107/165/187 108/157/187 109/67/187 -f 111/83/28 109/158/28 112/84/28 -f 111/192/29 112/157/29 113/161/29 -f 113/190/9 114/162/9 115/164/9 -f 115/157/188 116/165/188 117/160/188 -f 117/115/189 118/167/189 119/169/189 -f 119/193/190 120/170/190 121/166/190 -f 123/208/42 121/171/42 124/173/42 -f 125/170/14 123/174/14 126/176/14 -f 102/179/15 100/623/15 98/624/15 -f 126/625/172 124/626/172 128/627/172 -f 122/177/15 98/624/15 124/626/15 -f 122/177/166 120/628/166 118/629/166 -f 118/629/166 116/630/166 114/631/166 -f 110/178/15 122/177/15 112/632/15 -f 110/178/15 108/633/15 106/634/15 -f 102/179/15 110/178/15 104/635/15 -f 110/178/15 106/634/15 104/635/15 -f 122/177/15 114/631/15 112/632/15 -f 124/626/15 98/624/15 128/627/15 -f 122/177/15 118/629/15 114/631/15 -f 97/621/16 127/64/16 98/146/16 -f 122/177/15 102/179/15 98/624/15 -f 127/160/191 125/170/191 128/161/191 -f 127/181/18 97/636/18 99/637/18 -f 99/637/167 101/638/167 103/182/167 -f 103/182/192 105/639/192 107/640/192 -f 107/640/18 109/641/18 111/642/18 -f 111/642/18 113/643/18 115/211/18 -f 115/211/167 117/644/167 119/180/167 -f 123/645/193 125/646/193 121/647/193 -f 127/181/18 119/180/18 125/646/18 -f 127/181/18 99/637/18 103/182/18 -f 111/642/18 119/180/18 107/640/18 -f 111/642/18 115/211/18 119/180/18 -f 125/646/18 119/180/18 121/647/18 -f 131/203/27 132/185/27 133/186/27 -f 119/180/18 103/182/18 107/640/18 -f 129/382/1 130/183/1 131/184/1 -f 133/153/3 134/152/3 135/188/3 -f 135/149/4 136/189/4 137/190/4 -f 139/147/5 137/146/5 140/155/5 -f 139/157/6 140/192/6 141/97/6 -f 141/184/35 142/174/35 143/193/35 -f 145/81/29 143/194/29 146/196/29 -f 147/86/9 145/197/9 148/87/9 -f 147/648/30 148/198/30 149/187/30 -f 149/649/36 150/200/36 151/202/36 -f 153/168/194 151/164/194 154/169/194 -f 153/185/195 154/203/195 155/205/195 -f 157/173/14 155/206/14 158/208/14 -f 134/643/172 132/650/172 130/651/172 -f 130/651/15 160/629/15 158/628/15 -f 154/652/172 150/653/172 156/654/172 -f 154/652/166 152/655/166 150/653/166 -f 150/653/15 148/656/15 146/657/15 -f 146/657/172 144/658/172 142/659/172 -f 159/60/196 157/191/196 160/61/196 -f 134/643/166 140/209/166 136/211/166 -f 158/628/15 156/654/15 130/651/15 -f 156/654/15 150/653/15 134/643/15 -f 142/659/15 134/643/15 146/657/15 -f 129/340/16 159/9/16 130/212/16 -f 134/643/15 142/659/15 140/209/15 -f 156/654/15 134/643/15 130/651/15 -f 134/643/15 150/653/15 146/657/15 -f 159/660/18 129/661/18 131/213/18 -f 131/213/197 133/662/197 135/663/197 -f 135/663/198 137/664/198 139/665/198 -f 139/665/181 141/666/181 143/214/181 -f 147/632/173 151/215/173 145/178/173 -f 147/632/197 149/667/197 151/215/197 -f 151/215/198 153/640/198 155/639/198 -f 155/639/181 157/668/181 159/660/181 -f 135/663/18 139/665/18 131/213/18 -f 151/215/18 143/214/18 145/178/18 -f 86/669/199 88/422/199 54/424/199 -f 151/215/167 155/639/167 159/660/167 -f 88/670/200 90/420/200 56/12/200 -f 159/660/18 131/213/18 151/215/18 -f 131/213/18 139/665/18 143/214/18 -f 84/671/201 86/425/201 52/427/201 -f 82/672/127 84/428/127 50/430/127 -f 80/673/202 82/431/202 48/433/202 -f 78/674/203 80/434/203 46/436/203 -f 76/675/204 78/437/204 44/439/204 -f 74/676/205 76/440/205 42/442/205 -f 74/446/132 42/443/132 72/445/132 -f 72/445/206 40/442/206 70/446/206 -f 92/677/207 60/196/207 90/448/207 -f 94/678/208 62/449/208 92/451/208 -f 96/679/136 64/452/136 94/454/136 -f 64/48/137 96/455/137 34/424/137 -f 68/680/209 36/457/209 66/459/209 -f 70/681/210 38/460/210 68/462/210 -f 67/117/1 65/463/1 204/104/1 -f 67/108/34 204/465/34 69/466/34 -f 71/134/211 69/105/211 206/110/211 -f 71/682/4 206/468/4 73/469/4 -f 73/474/175 207/114/175 75/471/175 -f 75/466/160 208/107/160 77/103/160 -f 77/133/35 209/473/35 79/474/35 -f 79/109/8 210/475/8 81/118/8 -f 81/115/9 211/476/9 83/116/9 -f 85/683/10 83/477/10 213/127/10 -f 85/471/11 213/470/11 87/479/11 -f 89/477/194 87/479/194 215/478/194 -f 89/684/195 215/480/195 91/481/195 -f 93/109/212 91/118/212 217/135/212 -f 95/116/16 218/124/16 65/128/16 -f 93/683/33 217/127/33 95/483/33 -f 1/523/213 203/484/213 31/486/213 -f 217/509/144 29/487/144 218/489/144 -f 216/685/214 27/490/214 217/492/214 -f 215/686/215 25/493/215 216/495/215 -f 23/508/216 25/496/216 214/498/216 -f 21/687/217 23/499/217 213/501/217 -f 19/688/149 21/502/149 212/504/149 -f 17/689/218 19/505/218 211/507/218 -f 15/496/219 17/508/219 210/489/219 -f 13/690/152 15/510/152 209/512/152 -f 11/27/220 13/57/220 208/514/220 -f 9/525/221 11/515/221 207/517/221 -f 7/691/222 9/518/222 206/520/222 -f 205/692/223 5/521/223 206/522/223 -f 204/693/157 3/523/157 205/524/157 -f 203/694/224 1/515/224 204/526/224 diff --git a/src/main/resources/assets/hbm/models/TheGadget3.obj b/src/main/resources/assets/hbm/models/TheGadget3.obj deleted file mode 100644 index 1b3486829..000000000 --- a/src/main/resources/assets/hbm/models/TheGadget3.obj +++ /dev/null @@ -1,1223 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'TheGadget3.blend1' -# www.blender.org -o Cylinder.003 -v 0.550000 1.500000 -0.850000 -v 0.650000 1.500000 -0.850000 -v 0.550000 1.174719 -0.785298 -v 0.650000 1.174719 -0.785298 -v 0.550001 0.898959 -0.601041 -v 0.650001 0.898959 -0.601041 -v 0.550001 0.714702 -0.325281 -v 0.650001 0.714702 -0.325281 -v 0.550001 0.650000 0.000000 -v 0.650001 0.650000 0.000000 -v 0.550001 0.714702 0.325281 -v 0.650001 0.714702 0.325281 -v 0.550001 0.898959 0.601041 -v 0.650001 0.898959 0.601041 -v 0.550000 1.174719 0.785298 -v 0.650000 1.174719 0.785298 -v 0.550000 1.500000 0.850000 -v 0.650000 1.500000 0.850000 -v 0.550000 1.825281 0.785298 -v 0.650000 1.825281 0.785298 -v 0.549999 2.101041 0.601041 -v 0.649999 2.101041 0.601041 -v 0.549999 2.285297 0.325281 -v 0.649999 2.285298 0.325281 -v 0.549999 2.350000 -0.000000 -v 0.649999 2.350000 -0.000000 -v 0.549999 2.285297 -0.325281 -v 0.649999 2.285298 -0.325281 -v 0.549999 2.101040 -0.601041 -v 0.649999 2.101041 -0.601041 -v 0.550000 1.825280 -0.785298 -v 0.650000 1.825281 -0.785298 -v -0.650000 1.500000 -0.850000 -v -0.550000 1.500000 -0.850000 -v -0.650000 1.174719 -0.785298 -v -0.550000 1.174719 -0.785298 -v -0.649999 0.898959 -0.601041 -v -0.549999 0.898959 -0.601041 -v -0.649999 0.714702 -0.325281 -v -0.549999 0.714702 -0.325281 -v -0.649999 0.650000 0.000000 -v -0.549999 0.650000 0.000000 -v -0.649999 0.714702 0.325281 -v -0.549999 0.714702 0.325281 -v -0.649999 0.898959 0.601041 -v -0.549999 0.898959 0.601041 -v -0.650000 1.174719 0.785298 -v -0.550000 1.174719 0.785298 -v -0.650000 1.500000 0.850000 -v -0.550000 1.500000 0.850000 -v -0.650000 1.825281 0.785298 -v -0.550000 1.825281 0.785298 -v -0.650001 2.101041 0.601041 -v -0.550001 2.101041 0.601041 -v -0.650001 2.285297 0.325281 -v -0.550001 2.285298 0.325281 -v -0.650001 2.350000 -0.000000 -v -0.550001 2.350000 -0.000000 -v -0.650001 2.285297 -0.325281 -v -0.550001 2.285298 -0.325281 -v -0.650001 2.101040 -0.601041 -v -0.550001 2.101041 -0.601041 -v -0.650000 1.825280 -0.785298 -v -0.550000 1.825281 -0.785298 -v -1.500000 1.499999 -0.700000 -v 1.000000 1.500001 -0.700000 -v -1.500000 1.232120 -0.646716 -v 1.000000 1.232123 -0.646716 -v -1.500000 1.005024 -0.494975 -v 1.000000 1.005026 -0.494975 -v -1.499999 0.853283 -0.267878 -v 1.000000 0.853285 -0.267878 -v -1.499999 0.799999 0.000000 -v 1.000000 0.800001 0.000000 -v -1.499999 0.853283 0.267878 -v 1.000000 0.853285 0.267878 -v -1.500000 1.005024 0.494975 -v 1.000000 1.005026 0.494975 -v -1.500000 1.232120 0.646716 -v 1.000000 1.232123 0.646716 -v -1.500000 1.499999 0.700000 -v 1.000000 1.500001 0.700000 -v -1.500000 1.767877 0.646716 -v 1.000000 1.767879 0.646716 -v -1.500000 1.994973 0.494975 -v 0.999999 1.994976 0.494975 -v -1.500001 2.146714 0.267879 -v 0.999999 2.146717 0.267879 -v -1.500001 2.199999 -0.000000 -v 0.999999 2.200001 -0.000000 -v -1.500001 2.146714 -0.267879 -v 0.999999 2.146717 -0.267879 -v -1.500000 1.994973 -0.494975 -v 0.999999 1.994976 -0.494975 -v -1.500000 1.767877 -0.646716 -v 1.000000 1.767879 -0.646716 -v 0.450000 1.500000 -1.000000 -v 0.550000 1.500000 -1.000000 -v 0.450000 1.117316 -0.923880 -v 0.550000 1.117316 -0.923880 -v 0.450001 0.792893 -0.707107 -v 0.550001 0.792893 -0.707107 -v 0.450001 0.576120 -0.382683 -v 0.550001 0.576120 -0.382683 -v 0.450001 0.500000 0.000000 -v 0.550001 0.500000 0.000000 -v 0.450001 0.576120 0.382684 -v 0.550001 0.576120 0.382684 -v 0.450001 0.792893 0.707107 -v 0.550001 0.792893 0.707107 -v 0.450000 1.117316 0.923880 -v 0.550000 1.117316 0.923880 -v 0.450000 1.500000 1.000000 -v 0.550000 1.500000 1.000000 -v 0.450000 1.882683 0.923880 -v 0.550000 1.882683 0.923880 -v 0.449999 2.207107 0.707107 -v 0.549999 2.207107 0.707107 -v 0.449999 2.423879 0.382684 -v 0.549999 2.423880 0.382684 -v 0.449999 2.500000 -0.000000 -v 0.549999 2.500000 -0.000000 -v 0.449999 2.423879 -0.382684 -v 0.549999 2.423879 -0.382684 -v 0.449999 2.207106 -0.707107 -v 0.549999 2.207107 -0.707107 -v 0.450000 1.882683 -0.923880 -v 0.550000 1.882683 -0.923880 -v -0.550000 1.500000 -1.000000 -v -0.450000 1.500000 -1.000000 -v -0.550000 1.117316 -0.923880 -v -0.450000 1.117317 -0.923880 -v -0.549999 0.792893 -0.707107 -v -0.449999 0.792893 -0.707107 -v -0.549999 0.576120 -0.382683 -v -0.449999 0.576120 -0.382683 -v -0.549999 0.500000 0.000000 -v -0.449999 0.500000 0.000000 -v -0.549999 0.576120 0.382684 -v -0.449999 0.576120 0.382684 -v -0.549999 0.792893 0.707107 -v -0.449999 0.792893 0.707107 -v -0.550000 1.117316 0.923880 -v -0.450000 1.117316 0.923880 -v -0.550000 1.500000 1.000000 -v -0.450000 1.500000 1.000000 -v -0.550000 1.882683 0.923880 -v -0.450000 1.882683 0.923880 -v -0.550001 2.207107 0.707107 -v -0.450001 2.207107 0.707107 -v -0.550001 2.423879 0.382684 -v -0.450001 2.423880 0.382684 -v -0.550001 2.500000 -0.000000 -v -0.450001 2.500000 -0.000000 -v -0.550001 2.423879 -0.382684 -v -0.450001 2.423879 -0.382684 -v -0.550001 2.207107 -0.707107 -v -0.450001 2.207107 -0.707107 -v -0.550000 1.882683 -0.923880 -v -0.450000 1.882683 -0.923880 -v -0.550000 -0.000000 -0.750000 -v -0.550000 -0.000000 -1.000000 -v -0.450000 -0.000000 -1.000000 -v -0.450000 -0.000000 -0.750000 -v -0.550000 -0.000000 1.000000 -v -0.550000 -0.000000 0.750000 -v -0.450000 -0.000000 0.750000 -v -0.450000 -0.000000 1.000000 -v 0.450000 0.000000 -0.750000 -v 0.450000 0.000000 -1.000000 -v 0.550000 0.000000 -1.000000 -v 0.550000 0.000000 -0.750000 -v 0.450000 -0.000000 1.000000 -v 0.450000 -0.000000 0.750000 -v 0.550000 -0.000000 0.750000 -v 0.550000 -0.000000 1.000000 -v -1.125000 1.499999 -0.700000 -v -1.125000 1.232121 -0.646716 -v -1.125000 1.005024 -0.494975 -v -1.124999 0.853284 -0.267878 -v -1.124999 0.799999 0.000000 -v -1.124999 0.853284 0.267878 -v -1.125000 1.005024 0.494975 -v -1.125000 1.232121 0.646716 -v -1.125000 1.499999 0.700000 -v -1.125000 1.767877 0.646716 -v -1.125000 1.994974 0.494975 -v -1.125001 2.146715 0.267879 -v -1.125001 2.199999 -0.000000 -v -1.125001 2.146715 -0.267879 -v -1.125000 1.994974 -0.494975 -v -1.125000 1.767877 -0.646716 -v 0.707106 2.207107 0.000000 -v 0.382683 2.423880 0.000000 -v -0.000001 2.500000 0.000000 -v -0.382684 2.423880 0.000000 -v -0.707107 2.207107 0.000000 -v 0.707106 2.000000 -0.500000 -v 0.382683 2.153281 -0.653281 -v -0.000001 2.207107 -0.707107 -v -0.382684 2.153281 -0.653281 -v -0.707107 2.000000 -0.500000 -v 0.707106 1.500000 -0.707107 -v 0.382683 1.500000 -0.923879 -v -0.000000 1.500000 -1.000000 -v -0.382684 1.500000 -0.923879 -v -0.707107 1.500000 -0.707107 -v 0.707106 1.000000 -0.500000 -v 0.382683 0.846719 -0.653281 -v -0.000000 0.792893 -0.707107 -v -0.382684 0.846719 -0.653281 -v -0.707107 1.000000 -0.500000 -v 0.707106 0.792894 -0.000000 -v 0.382683 0.576121 -0.000000 -v -0.000000 0.500001 -0.000000 -v -0.382684 0.576121 -0.000000 -v -0.707107 0.792894 -0.000000 -v 0.707106 1.000000 0.500000 -v 0.382683 0.846719 0.653281 -v -0.000000 0.792893 0.707107 -v -0.382684 0.846719 0.653281 -v -0.707107 1.000000 0.500000 -v 0.707106 1.500000 0.707107 -v 0.382683 1.500000 0.923879 -v -0.000000 1.500000 1.000000 -v -0.382684 1.500000 0.923879 -v -0.707107 1.500000 0.707107 -v 0.707106 2.000000 0.500000 -v 0.382683 2.153281 0.653281 -v -0.000001 2.207107 0.707107 -v -0.382684 2.153281 0.653281 -v -0.707107 2.000000 0.500000 -vt 0.167969 0.666472 -vt 0.167969 0.678076 -vt 0.129484 0.678076 -vt 0.090999 0.678076 -vt 0.090999 0.666472 -vt 0.052513 0.678076 -vt 0.052513 0.666472 -vt 0.014028 0.678076 -vt 0.014028 0.666472 -vt 0.629794 0.666472 -vt 0.629794 0.678076 -vt 0.591308 0.678076 -vt 0.552823 0.678076 -vt 0.552823 0.666472 -vt 0.514338 0.678076 -vt 0.475852 0.678076 -vt 0.475852 0.666472 -vt 0.437367 0.678076 -vt 0.437367 0.666472 -vt 0.398881 0.678076 -vt 0.360396 0.678076 -vt 0.360396 0.666472 -vt 0.321910 0.678076 -vt 0.321910 0.666472 -vt 0.283425 0.678076 -vt 0.283425 0.666472 -vt 0.244940 0.678076 -vt 0.206454 0.666472 -vt 0.206454 0.678076 -vt 0.244940 0.666472 -vt 0.167969 0.126901 -vt 0.129483 0.126888 -vt 0.129487 0.115284 -vt 0.090998 0.126875 -vt 0.091002 0.115271 -vt 0.052513 0.126861 -vt 0.052517 0.115257 -vt 0.014028 0.126848 -vt 0.629793 0.127059 -vt 0.591308 0.127046 -vt 0.591312 0.115442 -vt 0.552822 0.127033 -vt 0.552826 0.115429 -vt 0.514337 0.127020 -vt 0.514341 0.115416 -vt 0.475851 0.127007 -vt 0.475855 0.115403 -vt 0.437366 0.126994 -vt 0.437370 0.115389 -vt 0.398881 0.126980 -vt 0.398885 0.115376 -vt 0.360395 0.126967 -vt 0.321910 0.126954 -vt 0.321914 0.115350 -vt 0.283425 0.126941 -vt 0.283429 0.115337 -vt 0.244939 0.126927 -vt 0.206458 0.115310 -vt 0.206454 0.126914 -vt 0.244943 0.115323 -vt 0.589205 0.570129 -vt 0.537513 0.535589 -vt 0.559924 0.422922 -vt 0.421520 0.957030 -vt 0.466797 0.957030 -vt 0.466797 0.968634 -vt 0.897932 0.155115 -vt 0.943209 0.155115 -vt 0.943209 0.166719 -vt 0.871616 0.373560 -vt 0.826340 0.373560 -vt 0.826340 0.361956 -vt 0.781063 0.373560 -vt 0.781063 0.361956 -vt 0.455191 0.880859 -vt 0.409914 0.880859 -vt 0.409914 0.869255 -vt 0.364637 0.880859 -vt 0.364637 0.869255 -vt 0.943209 0.206379 -vt 0.897932 0.206379 -vt 0.897932 0.194775 -vt 0.014028 0.957029 -vt 0.059305 0.957029 -vt 0.059305 0.968633 -vt 0.104582 0.957029 -vt 0.104582 0.968633 -vt 0.149858 0.957029 -vt 0.195135 0.957029 -vt 0.195135 0.968633 -vt 0.240412 0.957029 -vt 0.240412 0.968633 -vt 0.285689 0.957029 -vt 0.285689 0.968633 -vt 0.330966 0.957029 -vt 0.105201 0.410793 -vt 0.241650 0.501966 -vt 0.014028 0.547243 -vt 0.376243 0.957029 -vt 0.421520 0.968634 -vt 0.330966 0.968634 -vt 0.574727 0.365411 -vt 0.525385 0.291565 -vt 0.616557 0.155115 -vt 0.772129 0.917369 -vt 0.817406 0.917369 -vt 0.817406 0.928973 -vt 0.601856 0.880859 -vt 0.601856 0.869255 -vt 0.647133 0.869255 -vt 0.573800 0.880859 -vt 0.528523 0.880859 -vt 0.528523 0.869255 -vt 0.483246 0.880859 -vt 0.483246 0.869255 -vt 0.961341 0.836081 -vt 0.916064 0.836081 -vt 0.916064 0.824477 -vt 0.870787 0.836081 -vt 0.870787 0.824477 -vt 0.916064 0.864137 -vt 0.916064 0.875741 -vt 0.870787 0.875741 -vt 0.364637 0.928973 -vt 0.364637 0.917369 -vt 0.409914 0.917369 -vt 0.455191 0.917369 -vt 0.455191 0.928973 -vt 0.500467 0.917369 -vt 0.500467 0.928973 -vt 0.545744 0.917369 -vt 0.545744 0.928973 -vt 0.591021 0.917369 -vt 0.591021 0.928973 -vt 0.636298 0.917369 -vt 0.636298 0.928973 -vt 0.681575 0.917369 -vt 0.681575 0.928973 -vt 0.105201 0.155115 -vt 0.241650 0.246288 -vt 0.014028 0.291565 -vt 0.726852 0.917369 -vt 0.772129 0.928973 -vt 0.360879 0.382738 -vt 0.269706 0.246288 -vt 0.406156 0.155115 -vt 0.350122 0.445333 -vt 0.462789 0.422922 -vt 0.485200 0.535589 -vt 0.787808 0.042971 -vt 0.657853 0.042971 -vt 0.693703 0.015316 -vt 0.787808 0.071027 -vt 0.785836 0.099970 -vt 0.693703 0.098682 -vt 0.975417 0.946312 -vt 0.845462 0.946312 -vt 0.881311 0.918657 -vt 0.364637 0.841199 -vt 0.364637 0.829595 -vt 0.494592 0.829595 -vt 0.624808 0.985972 -vt 0.494853 0.985972 -vt 0.530702 0.958317 -vt 0.399665 0.626770 -vt 0.399661 0.638374 -vt 0.269706 0.638329 -vt 0.842731 0.824477 -vt 0.840759 0.853420 -vt 0.748626 0.852132 -vt 0.520818 0.626812 -vt 0.520814 0.638416 -vt 0.428672 0.638384 -vt 0.523602 0.829595 -vt 0.615745 0.829595 -vt 0.615745 0.841199 -vt 0.678829 0.638416 -vt 0.548874 0.638416 -vt 0.584723 0.610761 -vt 0.945819 0.014028 -vt 0.943847 0.042971 -vt 0.851714 0.041683 -vt 0.945819 0.071027 -vt 0.943847 0.099970 -vt 0.851714 0.098682 -vt 0.523602 0.841199 -vt 0.494592 0.841199 -vt 0.523603 0.789935 -vt 0.615745 0.789935 -vt 0.615745 0.801539 -vt 0.364637 0.801539 -vt 0.364637 0.789935 -vt 0.494592 0.789935 -vt 0.494596 0.750233 -vt 0.494592 0.761837 -vt 0.364637 0.761792 -vt 0.615749 0.750275 -vt 0.615745 0.761879 -vt 0.523602 0.761847 -vt 0.428676 0.626780 -vt 0.523606 0.750243 -vt 0.523603 0.801539 -vt 0.494592 0.801539 -vt 0.164597 0.057593 -vt 0.132903 0.057583 -vt 0.132918 0.014067 -vt 0.126111 0.057580 -vt 0.094418 0.057569 -vt 0.094433 0.014054 -vt 0.087626 0.057567 -vt 0.055933 0.057556 -vt 0.055947 0.014041 -vt 0.049141 0.057554 -vt 0.017447 0.057543 -vt 0.017462 0.014028 -vt 0.626436 0.014236 -vt 0.626421 0.057751 -vt 0.594727 0.057740 -vt 0.587936 0.057738 -vt 0.556242 0.057727 -vt 0.556257 0.014212 -vt 0.549450 0.057725 -vt 0.517756 0.057714 -vt 0.517771 0.014199 -vt 0.510965 0.057712 -vt 0.479271 0.057701 -vt 0.479286 0.014186 -vt 0.472494 0.014183 -vt 0.472479 0.057699 -vt 0.440786 0.057688 -vt 0.434009 0.014170 -vt 0.433994 0.057686 -vt 0.402300 0.057675 -vt 0.395524 0.014157 -vt 0.395509 0.057672 -vt 0.363815 0.057662 -vt 0.357023 0.057659 -vt 0.325329 0.057648 -vt 0.325344 0.014133 -vt 0.318538 0.057646 -vt 0.286844 0.057635 -vt 0.286859 0.014120 -vt 0.280053 0.057633 -vt 0.248359 0.057622 -vt 0.248374 0.014107 -vt 0.203082 0.057607 -vt 0.171388 0.057596 -vt 0.171403 0.014081 -vt 0.241567 0.057620 -vt 0.209873 0.057609 -vt 0.209888 0.014094 -vt 0.360399 0.115363 -vt 0.014032 0.115244 -vt 0.167973 0.115297 -vt 0.357000 0.722132 -vt 0.286821 0.722132 -vt 0.248335 0.722132 -vt 0.209850 0.722132 -vt 0.171365 0.722132 -vt 0.132880 0.722132 -vt 0.094394 0.722132 -vt 0.055909 0.722132 -vt 0.017424 0.722132 -vt 0.626398 0.722133 -vt 0.587913 0.722133 -vt 0.549427 0.722132 -vt 0.510942 0.722132 -vt 0.472456 0.722132 -vt 0.433971 0.722132 -vt 0.395485 0.722132 -vt 0.336581 0.839581 -vt 0.247767 0.839581 -vt 0.251147 0.794430 -vt 0.323575 0.928973 -vt 0.260774 0.928973 -vt 0.251147 0.884731 -vt 0.333201 0.794430 -vt 0.260774 0.750188 -vt 0.333201 0.884731 -vt 0.918460 0.707029 -vt 0.829646 0.707029 -vt 0.833026 0.661878 -vt 0.905453 0.796421 -vt 0.842652 0.796421 -vt 0.833026 0.752179 -vt 0.915079 0.661878 -vt 0.842652 0.617636 -vt 0.915079 0.752179 -vt 0.089835 0.750188 -vt 0.099461 0.794430 -vt 0.017408 0.794430 -vt 0.099461 0.884731 -vt 0.017408 0.884731 -vt 0.014028 0.839581 -vt 0.102842 0.839581 -vt 0.089835 0.928973 -vt 0.027034 0.928973 -vt 0.798208 0.545339 -vt 0.716155 0.545336 -vt 0.712776 0.500185 -vt 0.801590 0.500188 -vt 0.716158 0.455035 -vt 0.788580 0.589580 -vt 0.725779 0.589578 -vt 0.788587 0.410796 -vt 0.798211 0.455038 -vt 0.801590 0.707029 -vt 0.712776 0.707029 -vt 0.716156 0.661878 -vt 0.788583 0.796421 -vt 0.725782 0.796421 -vt 0.716156 0.752179 -vt 0.788584 0.617636 -vt 0.798210 0.661878 -vt 0.798209 0.752179 -vt 0.905453 0.589578 -vt 0.842652 0.589578 -vt 0.833026 0.545336 -vt 0.915079 0.455035 -vt 0.833026 0.455035 -vt 0.842652 0.410793 -vt 0.918460 0.500186 -vt 0.915079 0.545336 -vt 0.829646 0.500186 -vt 0.866496 0.199357 -vt 0.784443 0.199357 -vt 0.794069 0.155115 -vt 0.869877 0.244508 -vt 0.866496 0.289658 -vt 0.784443 0.289658 -vt 0.781063 0.244507 -vt 0.856870 0.333900 -vt 0.794069 0.333900 -vt 0.216331 0.794430 -vt 0.219711 0.839581 -vt 0.130898 0.839581 -vt 0.206705 0.928973 -vt 0.143904 0.928973 -vt 0.134278 0.884731 -vt 0.134278 0.794430 -vt 0.143904 0.750188 -vt 0.216331 0.884731 -vt 0.129484 0.666472 -vt 0.591308 0.666472 -vt 0.514338 0.666472 -vt 0.398881 0.666472 -vt 0.629797 0.115455 -vt 0.589206 0.410793 -vt 0.620899 0.410793 -vt 0.650181 0.422922 -vt 0.672592 0.445333 -vt 0.684720 0.474614 -vt 0.684720 0.506308 -vt 0.672591 0.535590 -vt 0.650180 0.558000 -vt 0.620899 0.570129 -vt 0.559924 0.558000 -vt 0.525385 0.506308 -vt 0.525385 0.474614 -vt 0.537513 0.445333 -vt 0.897932 0.166719 -vt 0.871616 0.361956 -vt 0.455191 0.869255 -vt 0.943209 0.194775 -vt 0.014028 0.968633 -vt 0.149858 0.968633 -vt 0.150478 0.638416 -vt 0.105201 0.638416 -vt 0.063370 0.621089 -vt 0.031355 0.589073 -vt 0.014028 0.501966 -vt 0.031355 0.460136 -vt 0.063370 0.428120 -vt 0.150478 0.410793 -vt 0.192308 0.428120 -vt 0.224324 0.460136 -vt 0.241650 0.547243 -vt 0.224324 0.589074 -vt 0.192308 0.621089 -vt 0.376243 0.968634 -vt 0.661834 0.155115 -vt 0.703665 0.172442 -vt 0.735680 0.204457 -vt 0.753007 0.246288 -vt 0.753007 0.291565 -vt 0.735680 0.333395 -vt 0.703665 0.365411 -vt 0.661834 0.382738 -vt 0.616557 0.382738 -vt 0.542711 0.333395 -vt 0.525385 0.246288 -vt 0.542711 0.204457 -vt 0.574727 0.172442 -vt 0.647133 0.880859 -vt 0.573800 0.869255 -vt 0.961341 0.824477 -vt 0.870787 0.864137 -vt 0.409914 0.928973 -vt 0.150478 0.382738 -vt 0.105201 0.382738 -vt 0.063370 0.365411 -vt 0.031355 0.333395 -vt 0.014028 0.246288 -vt 0.031355 0.204458 -vt 0.063370 0.172442 -vt 0.150478 0.155115 -vt 0.192308 0.172442 -vt 0.224324 0.204457 -vt 0.241650 0.291565 -vt 0.224324 0.333395 -vt 0.192308 0.365411 -vt 0.726852 0.928973 -vt 0.447986 0.172442 -vt 0.480002 0.204457 -vt 0.497329 0.246288 -vt 0.497329 0.291565 -vt 0.480002 0.333395 -vt 0.447986 0.365411 -vt 0.406156 0.382738 -vt 0.319049 0.365411 -vt 0.287033 0.333395 -vt 0.269706 0.291565 -vt 0.287033 0.204458 -vt 0.319049 0.172442 -vt 0.360879 0.155115 -vt 0.462789 0.558000 -vt 0.433508 0.570129 -vt 0.401814 0.570129 -vt 0.372533 0.558000 -vt 0.350122 0.535589 -vt 0.337993 0.506308 -vt 0.337993 0.474614 -vt 0.372533 0.422922 -vt 0.401814 0.410793 -vt 0.433508 0.410793 -vt 0.485200 0.445333 -vt 0.497329 0.474614 -vt 0.497329 0.506308 -vt 0.785836 0.014028 -vt 0.657853 0.071027 -vt 0.973445 0.917369 -vt 0.622836 0.957029 -vt 0.269710 0.626725 -vt 0.712776 0.824477 -vt 0.676857 0.609473 -vt 0.815864 0.014028 -vt 0.815864 0.071027 -vt 0.364641 0.750188 -vt 0.164612 0.014078 -vt 0.126126 0.014065 -vt 0.087641 0.014052 -vt 0.049156 0.014039 -vt 0.594742 0.014225 -vt 0.587951 0.014223 -vt 0.549465 0.014210 -vt 0.510980 0.014196 -vt 0.440801 0.014172 -vt 0.402315 0.014159 -vt 0.363830 0.014146 -vt 0.357038 0.014144 -vt 0.318553 0.014131 -vt 0.280067 0.014118 -vt 0.203097 0.014091 -vt 0.241582 0.014104 -vt 0.325306 0.722132 -vt 0.318515 0.722132 -vt 0.280029 0.722132 -vt 0.241544 0.722132 -vt 0.203059 0.722132 -vt 0.164573 0.722132 -vt 0.126088 0.722132 -vt 0.087603 0.722132 -vt 0.049117 0.722132 -vt 0.594704 0.722133 -vt 0.556219 0.722133 -vt 0.517733 0.722132 -vt 0.479248 0.722132 -vt 0.440762 0.722132 -vt 0.402277 0.722132 -vt 0.363792 0.722132 -vt 0.323575 0.750188 -vt 0.905453 0.617636 -vt 0.027034 0.750188 -vt 0.725786 0.410793 -vt 0.725783 0.617636 -vt 0.905453 0.410793 -vt 0.856870 0.155115 -vt 0.206705 0.750188 -vn 0.000000 -0.195100 -0.980800 -vn -0.000000 -0.555600 -0.831500 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.195100 0.980800 -vn -0.000000 0.195100 0.980800 -vn 0.000000 0.555600 0.831500 -vn -0.000000 0.831500 0.555600 -vn 0.000000 0.980800 0.195100 -vn 0.000000 0.980800 -0.195100 -vn -0.000000 0.831500 -0.555600 -vn 0.000000 0.195100 -0.980800 -vn -0.000000 0.555600 -0.831500 -vn -1.000000 -0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.068000 -0.997700 -vn 0.000000 0.068000 0.997700 -vn 0.000000 -0.054000 -0.998500 -vn 0.000000 -0.054000 0.998500 -vn 0.000000 -1.000000 0.000000 -vn -0.295900 0.794200 -0.530700 -vn -0.295900 0.936900 -0.186400 -vn -0.295900 0.936900 0.186400 -vn -0.295900 0.794200 0.530700 -vn -0.295900 0.530700 0.794200 -vn -0.295900 0.186400 0.936900 -vn -0.295900 -0.186400 0.936900 -vn -0.295900 -0.530700 0.794200 -vn -0.295900 -0.794200 0.530700 -vn -0.295900 -0.936900 0.186400 -vn -0.295900 -0.936900 -0.186400 -vn -0.295900 -0.794200 -0.530700 -vn -0.295900 -0.530700 -0.794200 -vn -0.295900 -0.186400 -0.936900 -vn -0.295900 0.186400 -0.936900 -vn -0.295900 0.530700 -0.794200 -vn 0.387500 0.904200 0.179800 -vn 0.387500 0.904200 -0.179800 -vn 0.387500 0.766500 -0.512200 -vn 0.387500 0.512200 -0.766500 -vn 0.387500 0.179800 -0.904200 -vn 0.387500 -0.179800 -0.904200 -vn 0.387500 -0.512200 -0.766500 -vn 0.387500 -0.766500 -0.512200 -vn 0.387500 -0.904200 -0.179800 -vn 0.387500 -0.904200 0.179800 -vn 0.387500 -0.766500 0.512200 -vn 0.387500 -0.512200 0.766500 -vn 0.387500 -0.179800 0.904200 -vn 0.387500 0.179800 0.904200 -vn 0.387500 0.512200 0.766500 -vn 0.387500 0.766500 0.512200 -vn -0.180700 0.908700 -0.376400 -vn 0.525300 0.786200 -0.325600 -vn -0.525300 0.786200 -0.325600 -vn 0.180700 0.908700 -0.376400 -vn -0.180700 0.376400 -0.908700 -vn 0.525300 0.325600 -0.786200 -vn -0.525300 0.325600 -0.786200 -vn 0.180700 0.376400 -0.908700 -vn -0.525300 -0.325600 -0.786200 -vn 0.180700 -0.376400 -0.908700 -vn -0.180700 -0.376400 -0.908700 -vn 0.525300 -0.325600 -0.786200 -vn 0.180700 -0.908700 -0.376400 -vn -0.180700 -0.908700 -0.376400 -vn 0.525300 -0.786200 -0.325600 -vn -0.525300 -0.786200 -0.325600 -vn -0.180700 -0.908700 0.376400 -vn 0.525300 -0.786200 0.325600 -vn -0.525300 -0.786200 0.325600 -vn 0.180700 -0.908700 0.376400 -vn 0.525300 -0.325600 0.786200 -vn -0.525300 -0.325600 0.786200 -vn 0.180700 -0.376400 0.908700 -vn -0.180700 -0.376400 0.908700 -vn -0.525300 0.325600 0.786200 -vn 0.180700 0.376400 0.908700 -vn -0.180700 0.376400 0.908700 -vn 0.525300 0.325600 0.786200 -vn -0.180700 0.908700 0.376400 -vn 0.525300 0.786200 0.325600 -vn -0.525300 0.786200 0.325600 -vn 0.180700 0.908700 0.376400 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/3/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 9/10/5 10/11/5 12/12/5 -f 12/12/6 14/13/6 13/14/6 -f 13/14/7 14/13/7 16/15/7 -f 16/15/8 18/16/8 17/17/8 -f 18/16/9 20/18/9 19/19/9 -f 19/19/10 20/18/10 22/20/10 -f 22/20/11 24/21/11 23/22/11 -f 24/21/12 26/23/12 25/24/12 -f 25/24/13 26/23/13 28/25/13 -f 27/26/14 28/25/14 30/27/14 -f 31/28/15 32/29/15 2/2/15 -f 29/30/16 30/27/16 32/29/16 -f 34/31/1 36/32/1 35/33/1 -f 36/32/2 38/34/2 37/35/2 -f 37/35/3 38/34/3 40/36/3 -f 39/37/4 40/36/4 42/38/4 -f 42/39/5 44/40/5 43/41/5 -f 44/40/6 46/42/6 45/43/6 -f 46/42/7 48/44/7 47/45/7 -f 48/44/8 50/46/8 49/47/8 -f 50/46/9 52/48/9 51/49/9 -f 51/49/10 52/48/10 54/50/10 -f 53/51/11 54/50/11 56/52/11 -f 56/52/12 58/53/12 57/54/12 -f 57/54/13 58/53/13 60/55/13 -f 59/56/14 60/55/14 62/57/14 -f 63/58/15 64/59/15 34/31/15 -f 61/60/16 62/57/16 64/59/16 -f 83/61/17 87/62/17 95/63/17 -f 98/64/1 100/65/1 99/66/1 -f 100/67/2 102/68/2 101/69/2 -f 102/70/3 104/71/3 103/72/3 -f 104/71/4 106/73/4 105/74/4 -f 106/75/5 108/76/5 107/77/5 -f 108/76/6 110/78/6 109/79/6 -f 110/80/7 112/81/7 111/82/7 -f 112/83/8 114/84/8 113/85/8 -f 114/84/9 116/86/9 115/87/9 -f 115/87/10 116/86/10 118/88/10 -f 118/88/11 120/89/11 119/90/11 -f 120/89/12 122/91/12 121/92/12 -f 122/91/13 124/93/13 123/94/13 -f 123/94/14 124/93/14 126/95/14 -f 118/96/18 110/97/18 126/98/18 -f 128/99/15 98/64/15 97/100/15 -f 125/101/16 126/95/16 128/99/16 -f 115/102/17 119/103/17 127/104/17 -f 130/105/1 132/106/1 131/107/1 -f 131/108/2 132/109/2 134/110/2 -f 134/111/3 136/112/3 135/113/3 -f 136/112/4 138/114/4 137/115/4 -f 138/116/5 140/117/5 139/118/5 -f 140/117/6 142/119/6 141/120/6 -f 141/121/7 142/122/7 144/123/7 -f 143/124/8 144/125/8 146/126/8 -f 146/126/9 148/127/9 147/128/9 -f 148/127/10 150/129/10 149/130/10 -f 150/129/11 152/131/11 151/132/11 -f 152/131/12 154/133/12 153/134/12 -f 154/133/13 156/135/13 155/136/13 -f 156/135/14 158/137/14 157/138/14 -f 150/139/18 142/140/18 158/141/18 -f 160/142/15 130/105/15 129/143/15 -f 157/138/16 158/137/16 160/142/16 -f 143/144/17 151/145/17 159/146/17 -f 86/147/18 78/148/18 70/149/18 -f 163/150/18 132/151/18 134/152/18 -f 168/153/18 167/154/18 142/155/18 -f 173/156/17 111/157/17 109/158/17 -f 131/159/19 132/160/19 163/161/19 -f 165/162/17 143/163/17 141/164/17 -f 165/165/20 168/166/20 144/167/20 -f 162/168/17 161/169/17 133/170/17 -f 141/171/21 142/172/21 167/173/21 -f 164/174/22 134/175/22 133/176/22 -f 171/177/18 100/178/18 102/179/18 -f 176/180/18 175/181/18 110/182/18 -f 170/183/17 169/184/17 101/185/17 -f 164/174/23 161/186/23 162/187/23 -f 172/188/22 102/189/22 101/190/22 -f 99/191/19 100/192/19 171/193/19 -f 173/194/20 176/195/20 112/196/20 -f 109/197/21 110/198/21 175/199/21 -f 168/166/23 165/165/23 166/200/23 -f 176/195/23 173/194/23 174/201/23 -f 172/188/23 169/202/23 170/203/23 -f 177/204/1 178/205/1 67/206/1 -f 178/207/2 179/208/2 69/209/2 -f 179/210/3 180/211/3 71/212/3 -f 180/213/4 181/214/4 73/215/4 -f 73/216/5 181/217/5 182/218/5 -f 182/219/6 183/220/6 77/221/6 -f 183/222/7 184/223/7 79/224/7 -f 184/225/8 185/226/8 81/227/8 -f 81/228/9 185/229/9 186/230/9 -f 83/231/10 186/232/10 187/233/10 -f 85/234/11 187/235/11 188/236/11 -f 188/237/12 189/238/12 89/239/12 -f 189/240/13 190/241/13 91/242/13 -f 190/243/14 191/244/14 93/245/14 -f 192/246/15 177/247/15 65/248/15 -f 191/249/16 192/250/16 95/251/16 -f 190/243/24 59/56/24 61/60/24 -f 59/56/25 190/241/25 189/240/25 -f 57/54/26 189/238/26 188/237/26 -f 53/51/27 55/252/27 188/236/27 -f 51/49/28 53/51/28 187/233/28 -f 49/47/29 51/49/29 186/230/29 -f 47/45/30 49/47/30 185/226/30 -f 45/43/31 47/45/31 184/223/31 -f 43/41/32 45/43/32 183/220/32 -f 43/41/33 182/218/33 181/217/33 -f 39/37/34 41/253/34 181/214/34 -f 39/37/35 180/211/35 179/210/35 -f 37/35/36 179/208/36 178/207/36 -f 35/33/37 178/205/37 177/204/37 -f 33/254/38 177/247/38 192/246/38 -f 63/58/39 192/250/39 191/249/39 -f 26/23/40 24/21/40 88/255/40 -f 92/256/41 28/25/41 26/23/41 -f 94/257/42 30/27/42 28/25/42 -f 96/258/43 32/29/43 30/27/43 -f 66/259/44 2/2/44 32/29/44 -f 68/260/45 4/3/45 2/2/45 -f 70/261/46 6/4/46 4/3/46 -f 72/262/47 8/6/47 6/4/47 -f 74/263/48 10/8/48 8/6/48 -f 12/12/49 10/11/49 74/264/49 -f 14/13/50 12/12/50 76/265/50 -f 16/15/51 14/13/51 78/266/51 -f 18/16/52 16/15/52 80/267/52 -f 20/18/53 18/16/53 82/268/53 -f 22/20/54 20/18/54 84/269/54 -f 24/21/55 22/20/55 86/270/55 -f 195/271/56 200/272/56 201/273/56 -f 193/274/57 198/275/57 199/276/57 -f 196/277/58 201/273/58 202/278/58 -f 194/279/59 199/276/59 200/272/59 -f 200/280/60 205/281/60 206/282/60 -f 198/283/61 203/284/61 204/285/61 -f 201/286/62 206/282/62 207/287/62 -f 199/288/63 204/285/63 205/281/63 -f 207/289/64 206/290/64 211/291/64 -f 204/292/65 209/293/65 210/294/65 -f 205/295/66 210/294/66 211/291/66 -f 204/292/67 203/296/67 208/297/67 -f 209/298/68 214/299/68 215/300/68 -f 210/301/69 215/300/69 216/302/69 -f 209/298/70 208/303/70 213/304/70 -f 212/305/71 211/306/71 216/302/71 -f 215/307/72 220/308/72 221/309/72 -f 213/310/73 218/311/73 219/312/73 -f 217/313/74 216/314/74 221/309/74 -f 215/307/75 214/315/75 219/312/75 -f 218/316/76 223/317/76 224/318/76 -f 221/319/77 226/320/77 227/321/77 -f 220/322/78 219/323/78 224/318/78 -f 220/322/79 225/324/79 226/320/79 -f 226/325/80 231/326/80 232/327/80 -f 225/328/81 224/329/81 229/330/81 -f 226/325/82 225/328/82 230/331/82 -f 223/332/83 228/333/83 229/330/83 -f 231/334/84 230/335/84 195/336/84 -f 228/337/85 193/338/85 194/339/85 -f 231/334/86 196/340/86 197/341/86 -f 229/342/87 194/339/87 195/336/87 -f 3/343/1 1/1/1 4/3/1 -f 3/343/2 4/3/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 11/344/5 9/10/5 12/12/5 -f 11/344/6 12/12/6 13/14/6 -f 15/345/7 13/14/7 16/15/7 -f 15/345/8 16/15/8 17/17/8 -f 17/17/9 18/16/9 19/19/9 -f 21/346/10 19/19/10 22/20/10 -f 21/346/11 22/20/11 23/22/11 -f 23/22/12 24/21/12 25/24/12 -f 27/26/13 25/24/13 28/25/13 -f 29/30/14 27/26/14 30/27/14 -f 1/1/15 31/28/15 2/2/15 -f 31/28/16 29/30/16 32/29/16 -f 33/254/1 34/31/1 35/33/1 -f 35/33/2 36/32/2 37/35/2 -f 39/37/3 37/35/3 40/36/3 -f 41/253/4 39/37/4 42/38/4 -f 41/347/5 42/39/5 43/41/5 -f 43/41/6 44/40/6 45/43/6 -f 45/43/7 46/42/7 47/45/7 -f 47/45/8 48/44/8 49/47/8 -f 49/47/9 50/46/9 51/49/9 -f 53/51/10 51/49/10 54/50/10 -f 55/252/11 53/51/11 56/52/11 -f 55/252/12 56/52/12 57/54/12 -f 59/56/13 57/54/13 60/55/13 -f 61/60/14 59/56/14 62/57/14 -f 33/254/15 63/58/15 34/31/15 -f 63/58/16 61/60/16 64/59/16 -f 95/63/17 65/348/17 67/349/17 -f 67/349/17 69/350/17 71/351/17 -f 71/351/17 73/352/17 75/353/17 -f 75/353/17 77/354/17 71/351/17 -f 79/355/17 81/356/17 83/61/17 -f 83/61/17 85/357/17 87/62/17 -f 87/62/17 89/358/17 91/359/17 -f 91/359/17 93/360/17 87/62/17 -f 95/63/17 67/349/17 79/355/17 -f 71/351/17 77/354/17 79/355/17 -f 79/355/17 83/61/17 95/63/17 -f 87/62/17 93/360/17 95/63/17 -f 67/349/17 71/351/17 79/355/17 -f 97/100/1 98/64/1 99/66/1 -f 99/361/2 100/67/2 101/69/2 -f 101/362/3 102/70/3 103/72/3 -f 103/72/4 104/71/4 105/74/4 -f 105/363/5 106/75/5 107/77/5 -f 107/77/6 108/76/6 109/79/6 -f 109/364/7 110/80/7 111/82/7 -f 111/365/8 112/83/8 113/85/8 -f 113/85/9 114/84/9 115/87/9 -f 117/366/10 115/87/10 118/88/10 -f 117/366/11 118/88/11 119/90/11 -f 119/90/12 120/89/12 121/92/12 -f 121/92/13 122/91/13 123/94/13 -f 125/101/14 123/94/14 126/95/14 -f 102/367/18 100/368/18 98/369/18 -f 98/369/18 128/370/18 126/98/18 -f 126/98/18 124/371/18 118/96/18 -f 122/372/18 120/373/18 118/96/18 -f 118/96/18 116/374/18 110/97/18 -f 114/375/18 112/376/18 110/97/18 -f 110/97/18 108/377/18 106/378/18 -f 106/378/18 104/379/18 110/97/18 -f 102/367/18 98/369/18 126/98/18 -f 124/371/18 122/372/18 118/96/18 -f 116/374/18 114/375/18 110/97/18 -f 110/97/18 104/379/18 102/367/18 -f 102/367/18 126/98/18 110/97/18 -f 127/380/15 128/99/15 97/100/15 -f 127/380/16 125/101/16 128/99/16 -f 127/104/17 97/381/17 99/382/17 -f 99/382/17 101/383/17 103/384/17 -f 103/384/17 105/385/17 107/386/17 -f 107/386/17 109/387/17 111/388/17 -f 111/388/17 113/389/17 115/102/17 -f 115/102/17 117/390/17 119/103/17 -f 119/103/17 121/391/17 123/392/17 -f 123/392/17 125/393/17 127/104/17 -f 127/104/17 99/382/17 103/384/17 -f 103/384/17 107/386/17 111/388/17 -f 111/388/17 115/102/17 127/104/17 -f 119/103/17 123/392/17 127/104/17 -f 127/104/17 103/384/17 111/388/17 -f 129/143/1 130/105/1 131/107/1 -f 133/394/2 131/108/2 134/110/2 -f 133/395/3 134/111/3 135/113/3 -f 135/113/4 136/112/4 137/115/4 -f 137/396/5 138/116/5 139/118/5 -f 139/118/6 140/117/6 141/120/6 -f 143/397/7 141/121/7 144/123/7 -f 145/398/8 143/124/8 146/126/8 -f 145/398/9 146/126/9 147/128/9 -f 147/128/10 148/127/10 149/130/10 -f 149/130/11 150/129/11 151/132/11 -f 151/132/12 152/131/12 153/134/12 -f 153/134/13 154/133/13 155/136/13 -f 155/136/14 156/135/14 157/138/14 -f 134/399/18 132/400/18 130/401/18 -f 130/401/18 160/402/18 158/141/18 -f 158/141/18 156/403/18 150/139/18 -f 154/404/18 152/405/18 150/139/18 -f 150/139/18 148/406/18 142/140/18 -f 146/407/18 144/408/18 142/140/18 -f 142/140/18 140/409/18 138/410/18 -f 138/410/18 136/411/18 142/140/18 -f 134/399/18 130/401/18 158/141/18 -f 156/403/18 154/404/18 150/139/18 -f 148/406/18 146/407/18 142/140/18 -f 142/140/18 136/411/18 134/399/18 -f 134/399/18 158/141/18 142/140/18 -f 159/412/15 160/142/15 129/143/15 -f 159/412/16 157/138/16 160/142/16 -f 159/146/17 129/413/17 131/414/17 -f 131/414/17 133/415/17 159/146/17 -f 135/416/17 137/417/17 139/418/17 -f 139/418/17 141/419/17 135/416/17 -f 143/144/17 145/420/17 147/421/17 -f 147/421/17 149/422/17 151/145/17 -f 151/145/17 153/423/17 155/424/17 -f 155/424/17 157/425/17 159/146/17 -f 159/146/17 133/415/17 135/416/17 -f 135/416/17 141/419/17 143/144/17 -f 143/144/17 147/421/17 151/145/17 -f 151/145/17 155/424/17 159/146/17 -f 159/146/17 135/416/17 143/144/17 -f 70/149/18 68/426/18 66/427/18 -f 66/427/18 96/428/18 94/429/18 -f 94/429/18 92/430/18 90/431/18 -f 90/431/18 88/432/18 86/147/18 -f 86/147/18 84/433/18 78/148/18 -f 82/434/18 80/435/18 78/148/18 -f 78/148/18 76/436/18 70/149/18 -f 74/437/18 72/438/18 70/149/18 -f 70/149/18 66/427/18 94/429/18 -f 94/429/18 90/431/18 70/149/18 -f 84/433/18 82/434/18 78/148/18 -f 76/436/18 74/437/18 70/149/18 -f 70/149/18 90/431/18 86/147/18 -f 164/439/18 163/150/18 134/152/18 -f 144/440/18 168/153/18 142/155/18 -f 174/441/17 173/156/17 109/158/17 -f 162/187/19 131/159/19 163/161/19 -f 166/442/17 165/162/17 141/164/17 -f 143/443/20 165/165/20 144/167/20 -f 131/444/17 162/168/17 133/170/17 -f 166/200/21 141/171/21 167/173/21 -f 161/186/22 164/174/22 133/176/22 -f 172/445/18 171/177/18 102/179/18 -f 112/446/18 176/180/18 110/182/18 -f 99/447/17 170/183/17 101/185/17 -f 163/161/23 164/174/23 162/187/23 -f 169/202/22 172/188/22 101/190/22 -f 170/203/19 99/191/19 171/193/19 -f 111/448/20 173/194/20 112/196/20 -f 174/201/21 109/197/21 175/199/21 -f 167/173/23 168/166/23 166/200/23 -f 175/199/23 176/195/23 174/201/23 -f 171/193/23 172/188/23 170/203/23 -f 65/449/1 177/204/1 67/206/1 -f 67/450/2 178/207/2 69/209/2 -f 69/451/3 179/210/3 71/212/3 -f 71/452/4 180/213/4 73/215/4 -f 75/453/5 73/216/5 182/218/5 -f 75/454/6 182/219/6 77/221/6 -f 77/455/7 183/222/7 79/224/7 -f 79/456/8 184/225/8 81/227/8 -f 83/457/9 81/228/9 186/230/9 -f 85/458/10 83/231/10 187/233/10 -f 87/459/11 85/234/11 188/236/11 -f 87/460/12 188/237/12 89/239/12 -f 89/461/13 189/240/13 91/242/13 -f 91/462/14 190/243/14 93/245/14 -f 95/463/15 192/246/15 65/248/15 -f 93/464/16 191/249/16 95/251/16 -f 191/244/24 190/243/24 61/60/24 -f 57/54/25 59/56/25 189/240/25 -f 55/252/26 57/54/26 188/237/26 -f 187/235/27 53/51/27 188/236/27 -f 186/232/28 51/49/28 187/233/28 -f 185/229/29 49/47/29 186/230/29 -f 184/225/30 47/45/30 185/226/30 -f 183/222/31 45/43/31 184/223/31 -f 182/219/32 43/41/32 183/220/32 -f 41/347/33 43/41/33 181/217/33 -f 180/213/34 39/37/34 181/214/34 -f 37/35/35 39/37/35 179/210/35 -f 35/33/36 37/35/36 178/207/36 -f 33/254/37 35/33/37 177/204/37 -f 63/58/38 33/254/38 192/246/38 -f 61/60/39 63/58/39 191/249/39 -f 90/465/40 26/23/40 88/255/40 -f 90/466/41 92/256/41 26/23/41 -f 92/467/42 94/257/42 28/25/42 -f 94/468/43 96/258/43 30/27/43 -f 96/469/44 66/259/44 32/29/44 -f 66/470/45 68/260/45 2/2/45 -f 68/471/46 70/261/46 4/3/46 -f 70/472/47 72/262/47 6/4/47 -f 72/473/48 74/263/48 8/6/48 -f 76/474/49 12/12/49 74/264/49 -f 78/475/50 14/13/50 76/265/50 -f 80/476/51 16/15/51 78/266/51 -f 82/477/52 18/16/52 80/267/52 -f 84/478/53 20/18/53 82/268/53 -f 86/479/54 22/20/54 84/269/54 -f 88/480/55 24/21/55 86/270/55 -f 196/277/56 195/271/56 201/273/56 -f 194/279/57 193/274/57 199/276/57 -f 197/481/58 196/277/58 202/278/58 -f 195/271/59 194/279/59 200/272/59 -f 201/286/60 200/280/60 206/282/60 -f 199/288/61 198/283/61 204/285/61 -f 202/482/62 201/286/62 207/287/62 -f 200/280/63 199/288/63 205/281/63 -f 212/483/64 207/289/64 211/291/64 -f 205/295/65 204/292/65 210/294/65 -f 206/290/66 205/295/66 211/291/66 -f 209/293/67 204/292/67 208/297/67 -f 210/301/68 209/298/68 215/300/68 -f 211/306/69 210/301/69 216/302/69 -f 214/299/70 209/298/70 213/304/70 -f 217/484/71 212/305/71 216/302/71 -f 216/314/72 215/307/72 221/309/72 -f 214/315/73 213/310/73 219/312/73 -f 222/485/74 217/313/74 221/309/74 -f 220/308/75 215/307/75 219/312/75 -f 219/323/76 218/316/76 224/318/76 -f 222/486/77 221/319/77 227/321/77 -f 225/324/78 220/322/78 224/318/78 -f 221/319/79 220/322/79 226/320/79 -f 227/487/80 226/325/80 232/327/80 -f 230/331/81 225/328/81 229/330/81 -f 231/326/82 226/325/82 230/331/82 -f 224/329/83 223/332/83 229/330/83 -f 196/340/84 231/334/84 195/336/84 -f 229/342/85 228/337/85 194/339/85 -f 232/488/86 231/334/86 197/341/86 -f 230/335/87 229/342/87 195/336/87 diff --git a/src/main/resources/assets/hbm/models/TheGadget3_smooth.obj b/src/main/resources/assets/hbm/models/TheGadget3_smooth.obj deleted file mode 100644 index 745a9d304..000000000 --- a/src/main/resources/assets/hbm/models/TheGadget3_smooth.obj +++ /dev/null @@ -1,1293 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'TheGadget3_smooth.blend' -# www.blender.org -o Cylinder.003 -v 0.550000 1.500000 -0.850000 -v 0.650000 1.500000 -0.850000 -v 0.550000 1.174719 -0.785298 -v 0.650000 1.174719 -0.785298 -v 0.550001 0.898959 -0.601041 -v 0.650001 0.898959 -0.601041 -v 0.550001 0.714702 -0.325281 -v 0.650001 0.714702 -0.325281 -v 0.550001 0.650000 0.000000 -v 0.650001 0.650000 0.000000 -v 0.550001 0.714702 0.325281 -v 0.650001 0.714702 0.325281 -v 0.550001 0.898959 0.601041 -v 0.650001 0.898959 0.601041 -v 0.550000 1.174719 0.785298 -v 0.650000 1.174719 0.785298 -v 0.550000 1.500000 0.850000 -v 0.650000 1.500000 0.850000 -v 0.550000 1.825281 0.785298 -v 0.650000 1.825281 0.785298 -v 0.549999 2.101041 0.601041 -v 0.649999 2.101041 0.601041 -v 0.549999 2.285297 0.325281 -v 0.649999 2.285298 0.325281 -v 0.549999 2.350000 -0.000000 -v 0.649999 2.350000 -0.000000 -v 0.549999 2.285297 -0.325281 -v 0.649999 2.285298 -0.325281 -v 0.549999 2.101040 -0.601041 -v 0.649999 2.101041 -0.601041 -v 0.550000 1.825280 -0.785298 -v 0.650000 1.825281 -0.785298 -v -0.650000 1.500000 -0.850000 -v -0.550000 1.500000 -0.850000 -v -0.650000 1.174719 -0.785298 -v -0.550000 1.174719 -0.785298 -v -0.649999 0.898959 -0.601041 -v -0.549999 0.898959 -0.601041 -v -0.649999 0.714702 -0.325281 -v -0.549999 0.714702 -0.325281 -v -0.649999 0.650000 0.000000 -v -0.549999 0.650000 0.000000 -v -0.649999 0.714702 0.325281 -v -0.549999 0.714702 0.325281 -v -0.649999 0.898959 0.601041 -v -0.549999 0.898959 0.601041 -v -0.650000 1.174719 0.785298 -v -0.550000 1.174719 0.785298 -v -0.650000 1.500000 0.850000 -v -0.550000 1.500000 0.850000 -v -0.650000 1.825281 0.785298 -v -0.550000 1.825281 0.785298 -v -0.650001 2.101041 0.601041 -v -0.550001 2.101041 0.601041 -v -0.650001 2.285297 0.325281 -v -0.550001 2.285298 0.325281 -v -0.650001 2.350000 -0.000000 -v -0.550001 2.350000 -0.000000 -v -0.650001 2.285297 -0.325281 -v -0.550001 2.285298 -0.325281 -v -0.650001 2.101040 -0.601041 -v -0.550001 2.101041 -0.601041 -v -0.650000 1.825280 -0.785298 -v -0.550000 1.825281 -0.785298 -v -1.500000 1.499999 -0.700000 -v 1.000000 1.500001 -0.700000 -v -1.500000 1.232120 -0.646716 -v 1.000000 1.232123 -0.646716 -v -1.500000 1.005024 -0.494975 -v 1.000000 1.005026 -0.494975 -v -1.499999 0.853283 -0.267878 -v 1.000000 0.853285 -0.267878 -v -1.499999 0.799999 0.000000 -v 1.000000 0.800001 0.000000 -v -1.499999 0.853283 0.267878 -v 1.000000 0.853285 0.267878 -v -1.500000 1.005024 0.494975 -v 1.000000 1.005026 0.494975 -v -1.500000 1.232120 0.646716 -v 1.000000 1.232123 0.646716 -v -1.500000 1.499999 0.700000 -v 1.000000 1.500001 0.700000 -v -1.500000 1.767877 0.646716 -v 1.000000 1.767879 0.646716 -v -1.500000 1.994973 0.494975 -v 0.999999 1.994976 0.494975 -v -1.500001 2.146714 0.267879 -v 0.999999 2.146717 0.267879 -v -1.500001 2.199999 -0.000000 -v 0.999999 2.200001 -0.000000 -v -1.500001 2.146714 -0.267879 -v 0.999999 2.146717 -0.267879 -v -1.500000 1.994973 -0.494975 -v 0.999999 1.994976 -0.494975 -v -1.500000 1.767877 -0.646716 -v 1.000000 1.767879 -0.646716 -v 0.450000 1.500000 -1.000000 -v 0.550000 1.500000 -1.000000 -v 0.450000 1.117316 -0.923880 -v 0.550000 1.117316 -0.923880 -v 0.450001 0.792893 -0.707107 -v 0.550001 0.792893 -0.707107 -v 0.450001 0.576120 -0.382683 -v 0.550001 0.576120 -0.382683 -v 0.450001 0.500000 0.000000 -v 0.550001 0.500000 0.000000 -v 0.450001 0.576120 0.382684 -v 0.550001 0.576120 0.382684 -v 0.450001 0.792893 0.707107 -v 0.550001 0.792893 0.707107 -v 0.450000 1.117316 0.923880 -v 0.550000 1.117316 0.923880 -v 0.450000 1.500000 1.000000 -v 0.550000 1.500000 1.000000 -v 0.450000 1.882683 0.923880 -v 0.550000 1.882683 0.923880 -v 0.449999 2.207107 0.707107 -v 0.549999 2.207107 0.707107 -v 0.449999 2.423879 0.382684 -v 0.549999 2.423880 0.382684 -v 0.449999 2.500000 -0.000000 -v 0.549999 2.500000 -0.000000 -v 0.449999 2.423879 -0.382684 -v 0.549999 2.423879 -0.382684 -v 0.449999 2.207106 -0.707107 -v 0.549999 2.207107 -0.707107 -v 0.450000 1.882683 -0.923880 -v 0.550000 1.882683 -0.923880 -v -0.550000 1.500000 -1.000000 -v -0.450000 1.500000 -1.000000 -v -0.550000 1.117316 -0.923880 -v -0.450000 1.117317 -0.923880 -v -0.549999 0.792893 -0.707107 -v -0.449999 0.792893 -0.707107 -v -0.549999 0.576120 -0.382683 -v -0.449999 0.576120 -0.382683 -v -0.549999 0.500000 0.000000 -v -0.449999 0.500000 0.000000 -v -0.549999 0.576120 0.382684 -v -0.449999 0.576120 0.382684 -v -0.549999 0.792893 0.707107 -v -0.449999 0.792893 0.707107 -v -0.550000 1.117316 0.923880 -v -0.450000 1.117316 0.923880 -v -0.550000 1.500000 1.000000 -v -0.450000 1.500000 1.000000 -v -0.550000 1.882683 0.923880 -v -0.450000 1.882683 0.923880 -v -0.550001 2.207107 0.707107 -v -0.450001 2.207107 0.707107 -v -0.550001 2.423879 0.382684 -v -0.450001 2.423880 0.382684 -v -0.550001 2.500000 -0.000000 -v -0.450001 2.500000 -0.000000 -v -0.550001 2.423879 -0.382684 -v -0.450001 2.423879 -0.382684 -v -0.550001 2.207107 -0.707107 -v -0.450001 2.207107 -0.707107 -v -0.550000 1.882683 -0.923880 -v -0.450000 1.882683 -0.923880 -v -0.550000 -0.000000 -0.750000 -v -0.550000 -0.000000 -1.000000 -v -0.450000 -0.000000 -1.000000 -v -0.450000 -0.000000 -0.750000 -v -0.550000 -0.000000 1.000000 -v -0.550000 -0.000000 0.750000 -v -0.450000 -0.000000 0.750000 -v -0.450000 -0.000000 1.000000 -v 0.450000 0.000000 -0.750000 -v 0.450000 0.000000 -1.000000 -v 0.550000 0.000000 -1.000000 -v 0.550000 0.000000 -0.750000 -v 0.450000 -0.000000 1.000000 -v 0.450000 -0.000000 0.750000 -v 0.550000 -0.000000 0.750000 -v 0.550000 -0.000000 1.000000 -v -1.125000 1.499999 -0.700000 -v -1.125000 1.232121 -0.646716 -v -1.125000 1.005024 -0.494975 -v -1.124999 0.853284 -0.267878 -v -1.124999 0.799999 0.000000 -v -1.124999 0.853284 0.267878 -v -1.125000 1.005024 0.494975 -v -1.125000 1.232121 0.646716 -v -1.125000 1.499999 0.700000 -v -1.125000 1.767877 0.646716 -v -1.125000 1.994974 0.494975 -v -1.125001 2.146715 0.267879 -v -1.125001 2.199999 -0.000000 -v -1.125001 2.146715 -0.267879 -v -1.125000 1.994974 -0.494975 -v -1.125000 1.767877 -0.646716 -v 0.707106 2.207107 0.000000 -v 0.382683 2.423880 0.000000 -v -0.000001 2.500000 0.000000 -v -0.382684 2.423880 0.000000 -v -0.707107 2.207107 0.000000 -v 0.707106 2.000000 -0.500000 -v 0.382683 2.153281 -0.653281 -v -0.000001 2.207107 -0.707107 -v -0.382684 2.153281 -0.653281 -v -0.707107 2.000000 -0.500000 -v 0.707106 1.500000 -0.707107 -v 0.382683 1.500000 -0.923879 -v -0.000000 1.500000 -1.000000 -v -0.382684 1.500000 -0.923879 -v -0.707107 1.500000 -0.707107 -v 0.707106 1.000000 -0.500000 -v 0.382683 0.846719 -0.653281 -v -0.000000 0.792893 -0.707107 -v -0.382684 0.846719 -0.653281 -v -0.707107 1.000000 -0.500000 -v 0.707106 0.792894 -0.000000 -v 0.382683 0.576121 -0.000000 -v -0.000000 0.500001 -0.000000 -v -0.382684 0.576121 -0.000000 -v -0.707107 0.792894 -0.000000 -v 0.707106 1.000000 0.500000 -v 0.382683 0.846719 0.653281 -v -0.000000 0.792893 0.707107 -v -0.382684 0.846719 0.653281 -v -0.707107 1.000000 0.500000 -v 0.707106 1.500000 0.707107 -v 0.382683 1.500000 0.923879 -v -0.000000 1.500000 1.000000 -v -0.382684 1.500000 0.923879 -v -0.707107 1.500000 0.707107 -v 0.707106 2.000000 0.500000 -v 0.382683 2.153281 0.653281 -v -0.000001 2.207107 0.707107 -v -0.382684 2.153281 0.653281 -v -0.707107 2.000000 0.500000 -vt 0.589205 0.570129 -vt 0.537513 0.535589 -vt 0.559924 0.422922 -vt 0.897932 0.155115 -vt 0.943209 0.155115 -vt 0.943209 0.166719 -vt 0.943209 0.206379 -vt 0.897932 0.206379 -vt 0.897932 0.194775 -vt 0.105201 0.410793 -vt 0.241650 0.501966 -vt 0.014028 0.547243 -vt 0.574727 0.365411 -vt 0.525385 0.291565 -vt 0.616557 0.155115 -vt 0.601856 0.880859 -vt 0.601856 0.869255 -vt 0.647133 0.869255 -vt 0.916064 0.864137 -vt 0.916064 0.875741 -vt 0.870787 0.875741 -vt 0.105201 0.155115 -vt 0.241650 0.246288 -vt 0.014028 0.291565 -vt 0.360879 0.382738 -vt 0.269706 0.246288 -vt 0.406156 0.155115 -vt 0.350122 0.445333 -vt 0.462789 0.422922 -vt 0.485200 0.535589 -vt 0.787808 0.042971 -vt 0.657853 0.042971 -vt 0.693703 0.015316 -vt 0.787808 0.071027 -vt 0.785836 0.099970 -vt 0.693703 0.098682 -vt 0.975417 0.946312 -vt 0.845462 0.946312 -vt 0.881311 0.918657 -vt 0.364637 0.841199 -vt 0.364637 0.829595 -vt 0.494592 0.829595 -vt 0.624808 0.985972 -vt 0.494853 0.985972 -vt 0.530702 0.958317 -vt 0.399665 0.626770 -vt 0.399661 0.638374 -vt 0.269706 0.638329 -vt 0.842731 0.824477 -vt 0.840759 0.853420 -vt 0.748626 0.852132 -vt 0.520818 0.626812 -vt 0.520814 0.638416 -vt 0.428672 0.638384 -vt 0.523602 0.829595 -vt 0.615745 0.829595 -vt 0.615745 0.841199 -vt 0.678829 0.638416 -vt 0.548874 0.638416 -vt 0.584723 0.610761 -vt 0.945819 0.014028 -vt 0.943847 0.042971 -vt 0.851714 0.041683 -vt 0.945819 0.071027 -vt 0.943847 0.099970 -vt 0.851714 0.098682 -vt 0.523602 0.841199 -vt 0.494592 0.841199 -vt 0.523603 0.789935 -vt 0.615745 0.789935 -vt 0.615745 0.801539 -vt 0.364637 0.801539 -vt 0.364637 0.789935 -vt 0.494592 0.789935 -vt 0.494596 0.750233 -vt 0.494592 0.761837 -vt 0.364637 0.761792 -vt 0.615749 0.750275 -vt 0.615745 0.761879 -vt 0.523602 0.761847 -vt 0.428676 0.626780 -vt 0.523606 0.750243 -vt 0.523603 0.801539 -vt 0.494592 0.801539 -vt 0.589206 0.410793 -vt 0.620899 0.410793 -vt 0.650181 0.422922 -vt 0.672592 0.445333 -vt 0.684720 0.474614 -vt 0.684720 0.506308 -vt 0.672591 0.535590 -vt 0.650180 0.558000 -vt 0.620899 0.570129 -vt 0.559924 0.558000 -vt 0.525385 0.506308 -vt 0.525385 0.474614 -vt 0.537513 0.445333 -vt 0.897932 0.166719 -vt 0.943209 0.194775 -vt 0.150478 0.638416 -vt 0.105201 0.638416 -vt 0.063370 0.621089 -vt 0.031355 0.589073 -vt 0.014028 0.501966 -vt 0.031355 0.460136 -vt 0.063370 0.428120 -vt 0.150478 0.410793 -vt 0.192308 0.428120 -vt 0.224324 0.460136 -vt 0.241650 0.547243 -vt 0.224324 0.589074 -vt 0.192308 0.621089 -vt 0.661834 0.155115 -vt 0.703665 0.172442 -vt 0.735680 0.204457 -vt 0.753007 0.246288 -vt 0.753007 0.291565 -vt 0.735680 0.333395 -vt 0.703665 0.365411 -vt 0.661834 0.382738 -vt 0.616557 0.382738 -vt 0.542711 0.333395 -vt 0.525385 0.246288 -vt 0.542711 0.204457 -vt 0.574727 0.172442 -vt 0.647133 0.880859 -vt 0.870787 0.864137 -vt 0.150478 0.382738 -vt 0.105201 0.382738 -vt 0.063370 0.365411 -vt 0.031355 0.333395 -vt 0.014028 0.246288 -vt 0.031355 0.204458 -vt 0.063370 0.172442 -vt 0.150478 0.155115 -vt 0.192308 0.172442 -vt 0.224324 0.204457 -vt 0.241650 0.291565 -vt 0.224324 0.333395 -vt 0.192308 0.365411 -vt 0.447986 0.172442 -vt 0.480002 0.204457 -vt 0.497329 0.246288 -vt 0.497329 0.291565 -vt 0.480002 0.333395 -vt 0.447986 0.365411 -vt 0.406156 0.382738 -vt 0.319049 0.365411 -vt 0.287033 0.333395 -vt 0.269706 0.291565 -vt 0.287033 0.204458 -vt 0.319049 0.172442 -vt 0.360879 0.155115 -vt 0.462789 0.558000 -vt 0.433508 0.570129 -vt 0.401814 0.570129 -vt 0.372533 0.558000 -vt 0.350122 0.535589 -vt 0.337993 0.506308 -vt 0.337993 0.474614 -vt 0.372533 0.422922 -vt 0.401814 0.410793 -vt 0.433508 0.410793 -vt 0.485200 0.445333 -vt 0.497329 0.474614 -vt 0.497329 0.506308 -vt 0.785836 0.014028 -vt 0.657853 0.071027 -vt 0.973445 0.917369 -vt 0.622836 0.957029 -vt 0.269710 0.626725 -vt 0.712776 0.824477 -vt 0.676857 0.609473 -vt 0.815864 0.014028 -vt 0.815864 0.071027 -vt 0.364641 0.750188 -vt 0.167969 0.666472 -vt 0.167969 0.678076 -vt 0.129484 0.678076 -vt 0.090999 0.678076 -vt 0.090999 0.666472 -vt 0.052513 0.678076 -vt 0.052513 0.666472 -vt 0.014028 0.678076 -vt 0.014028 0.666472 -vt 0.629794 0.666472 -vt 0.629794 0.678076 -vt 0.591308 0.678076 -vt 0.552823 0.678076 -vt 0.552823 0.666472 -vt 0.514338 0.678076 -vt 0.475852 0.678076 -vt 0.475852 0.666472 -vt 0.437367 0.678076 -vt 0.437367 0.666472 -vt 0.398881 0.678076 -vt 0.360396 0.678076 -vt 0.360396 0.666472 -vt 0.321910 0.678076 -vt 0.321910 0.666472 -vt 0.283425 0.678076 -vt 0.283425 0.666472 -vt 0.244940 0.678076 -vt 0.206454 0.666472 -vt 0.206454 0.678076 -vt 0.244940 0.666472 -vt 0.167969 0.126901 -vt 0.129483 0.126888 -vt 0.129487 0.115284 -vt 0.090998 0.126875 -vt 0.091002 0.115271 -vt 0.052513 0.126861 -vt 0.052517 0.115257 -vt 0.014028 0.126848 -vt 0.629793 0.127059 -vt 0.591308 0.127046 -vt 0.591312 0.115442 -vt 0.552822 0.127033 -vt 0.552826 0.115429 -vt 0.514337 0.127020 -vt 0.514341 0.115416 -vt 0.475851 0.127007 -vt 0.475855 0.115403 -vt 0.437366 0.126994 -vt 0.437370 0.115389 -vt 0.398881 0.126980 -vt 0.398885 0.115376 -vt 0.360395 0.126967 -vt 0.321910 0.126954 -vt 0.321914 0.115350 -vt 0.283425 0.126941 -vt 0.283429 0.115337 -vt 0.244939 0.126927 -vt 0.206458 0.115310 -vt 0.206454 0.126914 -vt 0.244943 0.115323 -vt 0.421520 0.957030 -vt 0.466797 0.957030 -vt 0.466797 0.968634 -vt 0.871616 0.373560 -vt 0.826340 0.373560 -vt 0.826340 0.361956 -vt 0.781063 0.373560 -vt 0.781063 0.361956 -vt 0.455191 0.880859 -vt 0.409914 0.880859 -vt 0.409914 0.869255 -vt 0.364637 0.880859 -vt 0.364637 0.869255 -vt 0.014028 0.957029 -vt 0.059305 0.957029 -vt 0.059305 0.968633 -vt 0.104582 0.957029 -vt 0.104582 0.968633 -vt 0.149858 0.957029 -vt 0.195135 0.957029 -vt 0.195135 0.968633 -vt 0.240412 0.957029 -vt 0.240412 0.968633 -vt 0.285689 0.957029 -vt 0.285689 0.968633 -vt 0.330966 0.957029 -vt 0.376243 0.957029 -vt 0.421520 0.968634 -vt 0.330966 0.968634 -vt 0.772129 0.917369 -vt 0.817406 0.917369 -vt 0.817406 0.928973 -vt 0.573800 0.880859 -vt 0.528523 0.880859 -vt 0.528523 0.869255 -vt 0.483246 0.880859 -vt 0.483246 0.869255 -vt 0.961341 0.836081 -vt 0.916064 0.836081 -vt 0.916064 0.824477 -vt 0.870787 0.836081 -vt 0.870787 0.824477 -vt 0.364637 0.928973 -vt 0.364637 0.917369 -vt 0.409914 0.917369 -vt 0.455191 0.917369 -vt 0.455191 0.928973 -vt 0.500467 0.917369 -vt 0.500467 0.928973 -vt 0.545744 0.917369 -vt 0.545744 0.928973 -vt 0.591021 0.917369 -vt 0.591021 0.928973 -vt 0.636298 0.917369 -vt 0.636298 0.928973 -vt 0.681575 0.917369 -vt 0.681575 0.928973 -vt 0.726852 0.917369 -vt 0.772129 0.928973 -vt 0.164597 0.057593 -vt 0.132903 0.057583 -vt 0.132918 0.014067 -vt 0.126111 0.057580 -vt 0.094418 0.057569 -vt 0.094433 0.014054 -vt 0.087626 0.057567 -vt 0.055933 0.057556 -vt 0.055947 0.014041 -vt 0.049141 0.057554 -vt 0.017447 0.057543 -vt 0.017462 0.014028 -vt 0.626436 0.014236 -vt 0.626421 0.057751 -vt 0.594727 0.057740 -vt 0.587936 0.057738 -vt 0.556242 0.057727 -vt 0.556257 0.014212 -vt 0.549450 0.057725 -vt 0.517756 0.057714 -vt 0.517771 0.014199 -vt 0.510965 0.057712 -vt 0.479271 0.057701 -vt 0.479286 0.014186 -vt 0.472494 0.014183 -vt 0.472479 0.057699 -vt 0.440786 0.057688 -vt 0.434009 0.014170 -vt 0.433994 0.057686 -vt 0.402300 0.057675 -vt 0.395524 0.014157 -vt 0.395509 0.057672 -vt 0.363815 0.057662 -vt 0.357023 0.057659 -vt 0.325329 0.057648 -vt 0.325344 0.014133 -vt 0.318538 0.057646 -vt 0.286844 0.057635 -vt 0.286859 0.014120 -vt 0.280053 0.057633 -vt 0.248359 0.057622 -vt 0.248374 0.014107 -vt 0.203082 0.057607 -vt 0.171388 0.057596 -vt 0.171403 0.014081 -vt 0.241567 0.057620 -vt 0.209873 0.057609 -vt 0.209888 0.014094 -vt 0.360399 0.115363 -vt 0.014032 0.115244 -vt 0.167973 0.115297 -vt 0.357000 0.722132 -vt 0.286821 0.722132 -vt 0.248335 0.722132 -vt 0.209850 0.722132 -vt 0.171365 0.722132 -vt 0.132880 0.722132 -vt 0.094394 0.722132 -vt 0.055909 0.722132 -vt 0.017424 0.722132 -vt 0.626398 0.722133 -vt 0.587913 0.722133 -vt 0.549427 0.722132 -vt 0.510942 0.722132 -vt 0.472456 0.722132 -vt 0.433971 0.722132 -vt 0.395485 0.722132 -vt 0.336581 0.839581 -vt 0.247767 0.839581 -vt 0.251147 0.794430 -vt 0.323575 0.928973 -vt 0.260774 0.928973 -vt 0.251147 0.884731 -vt 0.333201 0.794430 -vt 0.260774 0.750188 -vt 0.333201 0.884731 -vt 0.918460 0.707029 -vt 0.829646 0.707029 -vt 0.833026 0.661878 -vt 0.905453 0.796421 -vt 0.842652 0.796421 -vt 0.833026 0.752179 -vt 0.915079 0.661878 -vt 0.842652 0.617636 -vt 0.915079 0.752179 -vt 0.089835 0.750188 -vt 0.099461 0.794430 -vt 0.017408 0.794430 -vt 0.099461 0.884731 -vt 0.017408 0.884731 -vt 0.014028 0.839581 -vt 0.102842 0.839581 -vt 0.089835 0.928973 -vt 0.027034 0.928973 -vt 0.798208 0.545339 -vt 0.716155 0.545336 -vt 0.712776 0.500185 -vt 0.801590 0.500188 -vt 0.716158 0.455035 -vt 0.788580 0.589580 -vt 0.725779 0.589578 -vt 0.788587 0.410796 -vt 0.798211 0.455038 -vt 0.801590 0.707029 -vt 0.712776 0.707029 -vt 0.716156 0.661878 -vt 0.788583 0.796421 -vt 0.725782 0.796421 -vt 0.716156 0.752179 -vt 0.788584 0.617636 -vt 0.798210 0.661878 -vt 0.798209 0.752179 -vt 0.905453 0.589578 -vt 0.842652 0.589578 -vt 0.833026 0.545336 -vt 0.915079 0.455035 -vt 0.833026 0.455035 -vt 0.842652 0.410793 -vt 0.918460 0.500186 -vt 0.915079 0.545336 -vt 0.829646 0.500186 -vt 0.866496 0.199357 -vt 0.784443 0.199357 -vt 0.794069 0.155115 -vt 0.869877 0.244508 -vt 0.866496 0.289658 -vt 0.784443 0.289658 -vt 0.781063 0.244507 -vt 0.856870 0.333900 -vt 0.794069 0.333900 -vt 0.216331 0.794430 -vt 0.219711 0.839581 -vt 0.130898 0.839581 -vt 0.206705 0.928973 -vt 0.143904 0.928973 -vt 0.134278 0.884731 -vt 0.134278 0.794430 -vt 0.143904 0.750188 -vt 0.216331 0.884731 -vt 0.129484 0.666472 -vt 0.591308 0.666472 -vt 0.514338 0.666472 -vt 0.398881 0.666472 -vt 0.629797 0.115455 -vt 0.871616 0.361956 -vt 0.455191 0.869255 -vt 0.014028 0.968633 -vt 0.149858 0.968633 -vt 0.376243 0.968634 -vt 0.573800 0.869255 -vt 0.961341 0.824477 -vt 0.409914 0.928973 -vt 0.726852 0.928973 -vt 0.164612 0.014078 -vt 0.126126 0.014065 -vt 0.087641 0.014052 -vt 0.049156 0.014039 -vt 0.594742 0.014225 -vt 0.587951 0.014223 -vt 0.549465 0.014210 -vt 0.510980 0.014196 -vt 0.440801 0.014172 -vt 0.402315 0.014159 -vt 0.363830 0.014146 -vt 0.357038 0.014144 -vt 0.318553 0.014131 -vt 0.280067 0.014118 -vt 0.203097 0.014091 -vt 0.241582 0.014104 -vt 0.325306 0.722132 -vt 0.318515 0.722132 -vt 0.280029 0.722132 -vt 0.241544 0.722132 -vt 0.203059 0.722132 -vt 0.164573 0.722132 -vt 0.126088 0.722132 -vt 0.087603 0.722132 -vt 0.049117 0.722132 -vt 0.594704 0.722133 -vt 0.556219 0.722133 -vt 0.517733 0.722132 -vt 0.479248 0.722132 -vt 0.440762 0.722132 -vt 0.402277 0.722132 -vt 0.363792 0.722132 -vt 0.323575 0.750188 -vt 0.905453 0.617636 -vt 0.027034 0.750188 -vt 0.725786 0.410793 -vt 0.725783 0.617636 -vt 0.905453 0.410793 -vt 0.856870 0.155115 -vt 0.206705 0.750188 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 -0.555600 -0.831500 -vn 0.000000 -0.555600 0.831500 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.068000 -0.997700 -vn 0.000000 0.068000 0.997700 -vn 0.000000 -0.054000 -0.998500 -vn 0.000000 -0.054000 0.998500 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.196300 0.000000 -0.980500 -vn 0.196300 -0.375200 -0.905900 -vn 0.196300 -0.693300 -0.693300 -vn 0.000000 -0.707100 -0.707100 -vn 0.196300 -0.905900 -0.375200 -vn 0.000000 -0.923900 -0.382700 -vn 0.196300 -0.980500 0.000000 -vn 0.196300 -0.905900 0.375200 -vn 0.196300 -0.693300 0.693300 -vn 0.000000 -0.707100 0.707100 -vn 0.196300 -0.375200 0.905900 -vn 0.196300 0.000000 0.980500 -vn 0.000000 0.000000 1.000000 -vn 0.196300 0.375200 0.905900 -vn 0.000000 0.382700 0.923900 -vn 0.196300 0.693300 0.693300 -vn 0.196300 0.905900 0.375200 -vn 0.000000 0.923900 0.382700 -vn 0.196300 0.980500 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.196300 0.905900 -0.375200 -vn 0.000000 0.923900 -0.382700 -vn 0.196300 0.693300 -0.693300 -vn 0.000000 0.382700 -0.923900 -vn 0.196300 0.375200 -0.905900 -vn 0.000000 0.707100 -0.707100 -vn 0.000000 -0.382700 -0.923900 -vn -0.149500 -0.378400 -0.913500 -vn -0.149500 -0.699100 -0.699100 -vn -0.149500 -0.913500 -0.378400 -vn 0.000000 -0.923900 0.382700 -vn -0.149500 -0.913500 0.378400 -vn -0.149500 -0.699100 0.699100 -vn 0.000000 -0.382700 0.923900 -vn -0.149500 -0.378400 0.913500 -vn -0.149500 0.000000 0.988700 -vn -0.149500 0.378400 0.913500 -vn 0.000000 0.707100 0.707100 -vn -0.149500 0.699100 0.699100 -vn -0.149600 0.988700 0.000000 -vn -0.149600 0.913500 -0.378400 -vn -0.149500 0.378400 -0.913500 -vn -0.149600 0.699100 -0.699100 -vn 0.665700 0.000000 -0.746200 -vn 0.599900 -0.188900 -0.777400 -vn -0.599900 -0.188900 -0.777400 -vn 0.913000 -0.393800 -0.106200 -vn 0.665700 -0.689400 -0.285500 -vn -0.665700 -0.689400 -0.285500 -vn 0.665700 -0.746200 0.000000 -vn -0.665700 -0.746200 0.000000 -vn 0.665700 -0.689400 0.285500 -vn -0.665700 -0.689400 0.285500 -vn 0.913000 -0.393800 0.106200 -vn -0.913000 -0.393800 0.106200 -vn 0.599900 -0.188900 0.777400 -vn 0.665700 0.000000 0.746200 -vn -0.665700 0.000000 0.746200 -vn 0.665700 0.285500 0.689400 -vn -0.665700 0.285500 0.689400 -vn 0.665700 0.527600 0.527600 -vn 0.665700 0.689400 0.285500 -vn -0.665700 0.689400 0.285500 -vn 0.665700 0.746200 0.000000 -vn -0.665700 0.746200 0.000000 -vn 0.665700 0.689400 -0.285500 -vn -0.665700 0.689400 -0.285500 -vn 0.665700 0.527600 -0.527600 -vn 0.665700 0.285500 -0.689400 -vn -0.665700 0.000000 -0.746200 -vn -0.665700 0.527600 -0.527600 -vn -0.599900 -0.188900 0.777400 -vn -0.665700 0.527600 0.527600 -vn -0.155200 0.000000 -0.987900 -vn -0.155200 -0.378000 -0.912700 -vn -0.665700 -0.285500 -0.689400 -vn -0.155200 -0.698500 -0.698500 -vn -0.665700 -0.527600 -0.527600 -vn -0.155200 -0.912700 -0.378000 -vn -0.155200 -0.987900 0.000000 -vn -0.155200 -0.912700 0.378000 -vn -0.155200 -0.698500 0.698500 -vn -0.665700 -0.527600 0.527600 -vn -0.155200 -0.378000 0.912700 -vn -0.665700 -0.285500 0.689400 -vn -0.155200 0.000000 0.987900 -vn -0.155200 0.378000 0.912700 -vn -0.155200 0.698500 0.698500 -vn -0.155200 0.912700 0.378000 -vn -0.155200 0.987900 0.000000 -vn -0.155200 0.912700 -0.378000 -vn -0.155200 0.698500 -0.698500 -vn -0.155200 0.378000 -0.912700 -vn -0.665700 0.285500 -0.689400 -vn -0.149600 0.913500 0.378400 -vn -0.149500 -0.988700 0.000000 -vn -0.149500 0.000000 -0.988700 -vn 0.803800 0.549600 0.227600 -vn 0.803800 0.549600 -0.227600 -vn 0.803800 0.420600 -0.420600 -vn 0.803800 0.227600 -0.549600 -vn 0.803800 0.000000 -0.594900 -vn 0.803800 -0.227600 -0.549600 -vn 0.803800 -0.420600 -0.420600 -vn 0.803800 -0.549600 -0.227600 -vn 0.803800 -0.594900 0.000000 -vn 0.803800 -0.549600 0.227600 -vn 0.803800 -0.420600 0.420600 -vn 0.803800 -0.227600 0.549600 -vn 0.803800 0.000000 0.594900 -vn 0.803800 0.227600 0.549600 -vn 0.803800 0.420600 0.420600 -vn -0.366800 0.657800 -0.657800 -vn 0.555600 0.831400 0.000000 -vn 0.555600 0.587900 -0.587900 -vn 0.366800 0.657800 -0.657800 -vn -0.366800 0.930300 0.000000 -vn -0.555600 0.587900 -0.587900 -vn 0.366800 0.930300 0.000000 -vn -0.366800 0.000000 -0.930300 -vn 0.555600 0.000000 -0.831400 -vn 0.366800 0.000000 -0.930300 -vn -0.555600 0.000000 -0.831400 -vn -0.366800 -0.657800 -0.657800 -vn 0.366800 -0.657800 -0.657800 -vn 0.555600 -0.587900 -0.587900 -vn 0.366800 -0.930300 0.000000 -vn -0.366800 -0.930300 0.000000 -vn 0.555600 -0.831400 0.000000 -vn -0.555600 -0.587900 -0.587900 -vn -0.366800 -0.657800 0.657800 -vn 0.555600 -0.587900 0.587900 -vn 0.366800 -0.657800 0.657800 -vn -0.555600 -0.831400 0.000000 -vn 0.555600 0.000000 0.831400 -vn 0.366800 0.000000 0.930300 -vn -0.366800 0.000000 0.930300 -vn -0.555600 0.000000 0.831400 -vn -0.366800 0.657800 0.657800 -vn -0.555600 0.587900 0.587900 -vn 0.366800 0.657800 0.657800 -vn 0.555600 0.587900 0.587900 -vn -0.555600 0.831400 0.000000 -vn -0.913000 -0.393800 -0.106200 -vn 0.803800 0.594900 0.000000 -vn -0.555600 -0.587900 0.587900 -s off -f 83/1/1 87/2/1 95/3/1 -f 100/4/2 102/5/2 101/6/2 -f 110/7/3 112/8/3 111/9/3 -f 118/10/4 110/11/4 126/12/4 -f 115/13/1 119/14/1 127/15/1 -f 131/16/2 132/17/2 134/18/2 -f 141/19/3 142/20/3 144/21/3 -f 150/22/4 142/23/4 158/24/4 -f 143/25/1 151/26/1 159/27/1 -f 86/28/4 78/29/4 70/30/4 -f 163/31/4 132/32/4 134/33/4 -f 168/34/4 167/35/4 142/36/4 -f 173/37/1 111/38/1 109/39/1 -f 131/40/5 132/41/5 163/42/5 -f 165/43/1 143/44/1 141/45/1 -f 165/46/6 168/47/6 144/48/6 -f 162/49/1 161/50/1 133/51/1 -f 141/52/7 142/53/7 167/54/7 -f 164/55/8 134/56/8 133/57/8 -f 171/58/4 100/59/4 102/60/4 -f 176/61/4 175/62/4 110/63/4 -f 170/64/1 169/65/1 101/66/1 -f 164/55/9 161/67/9 162/68/9 -f 172/69/8 102/70/8 101/71/8 -f 99/72/5 100/73/5 171/74/5 -f 173/75/6 176/76/6 112/77/6 -f 109/78/7 110/79/7 175/80/7 -f 168/47/9 165/46/9 166/81/9 -f 176/76/9 173/75/9 174/82/9 -f 172/69/9 169/83/9 170/84/9 -f 95/3/1 65/85/1 67/86/1 -f 67/86/1 69/87/1 71/88/1 -f 71/88/1 73/89/1 75/90/1 -f 75/90/1 77/91/1 71/88/1 -f 79/92/1 81/93/1 83/1/1 -f 83/1/1 85/94/1 87/2/1 -f 87/2/1 89/95/1 91/96/1 -f 91/96/1 93/97/1 87/2/1 -f 95/3/1 67/86/1 79/92/1 -f 71/88/1 77/91/1 79/92/1 -f 79/92/1 83/1/1 95/3/1 -f 87/2/1 93/97/1 95/3/1 -f 67/86/1 71/88/1 79/92/1 -f 99/98/2 100/4/2 101/6/2 -f 109/99/3 110/7/3 111/9/3 -f 102/100/4 100/101/4 98/102/4 -f 98/102/4 128/103/4 126/12/4 -f 126/12/4 124/104/4 118/10/4 -f 122/105/4 120/106/4 118/10/4 -f 118/10/4 116/107/4 110/11/4 -f 114/108/4 112/109/4 110/11/4 -f 110/11/4 108/110/4 106/111/4 -f 106/111/4 104/112/4 110/11/4 -f 102/100/4 98/102/4 126/12/4 -f 124/104/4 122/105/4 118/10/4 -f 116/107/4 114/108/4 110/11/4 -f 110/11/4 104/112/4 102/100/4 -f 102/100/4 126/12/4 110/11/4 -f 127/15/1 97/113/1 99/114/1 -f 99/114/1 101/115/1 103/116/1 -f 103/116/1 105/117/1 107/118/1 -f 107/118/1 109/119/1 111/120/1 -f 111/120/1 113/121/1 115/13/1 -f 115/13/1 117/122/1 119/14/1 -f 119/14/1 121/123/1 123/124/1 -f 123/124/1 125/125/1 127/15/1 -f 127/15/1 99/114/1 103/116/1 -f 103/116/1 107/118/1 111/120/1 -f 111/120/1 115/13/1 127/15/1 -f 119/14/1 123/124/1 127/15/1 -f 127/15/1 103/116/1 111/120/1 -f 133/126/2 131/16/2 134/18/2 -f 143/127/3 141/19/3 144/21/3 -f 134/128/4 132/129/4 130/130/4 -f 130/130/4 160/131/4 158/24/4 -f 158/24/4 156/132/4 150/22/4 -f 154/133/4 152/134/4 150/22/4 -f 150/22/4 148/135/4 142/23/4 -f 146/136/4 144/137/4 142/23/4 -f 142/23/4 140/138/4 138/139/4 -f 138/139/4 136/140/4 142/23/4 -f 134/128/4 130/130/4 158/24/4 -f 156/132/4 154/133/4 150/22/4 -f 148/135/4 146/136/4 142/23/4 -f 142/23/4 136/140/4 134/128/4 -f 134/128/4 158/24/4 142/23/4 -f 159/27/1 129/141/1 131/142/1 -f 131/142/1 133/143/1 159/27/1 -f 135/144/1 137/145/1 139/146/1 -f 139/146/1 141/147/1 135/144/1 -f 143/25/1 145/148/1 147/149/1 -f 147/149/1 149/150/1 151/26/1 -f 151/26/1 153/151/1 155/152/1 -f 155/152/1 157/153/1 159/27/1 -f 159/27/1 133/143/1 135/144/1 -f 135/144/1 141/147/1 143/25/1 -f 143/25/1 147/149/1 151/26/1 -f 151/26/1 155/152/1 159/27/1 -f 159/27/1 135/144/1 143/25/1 -f 70/30/4 68/154/4 66/155/4 -f 66/155/4 96/156/4 94/157/4 -f 94/157/4 92/158/4 90/159/4 -f 90/159/4 88/160/4 86/28/4 -f 86/28/4 84/161/4 78/29/4 -f 82/162/4 80/163/4 78/29/4 -f 78/29/4 76/164/4 70/30/4 -f 74/165/4 72/166/4 70/30/4 -f 70/30/4 66/155/4 94/157/4 -f 94/157/4 90/159/4 70/30/4 -f 84/161/4 82/162/4 78/29/4 -f 76/164/4 74/165/4 70/30/4 -f 70/30/4 90/159/4 86/28/4 -f 164/167/4 163/31/4 134/33/4 -f 144/168/4 168/34/4 142/36/4 -f 174/169/1 173/37/1 109/39/1 -f 162/68/5 131/40/5 163/42/5 -f 166/170/1 165/43/1 141/45/1 -f 143/171/6 165/46/6 144/48/6 -f 131/172/1 162/49/1 133/51/1 -f 166/81/7 141/52/7 167/54/7 -f 161/67/8 164/55/8 133/57/8 -f 172/173/4 171/58/4 102/60/4 -f 112/174/4 176/61/4 110/63/4 -f 99/175/1 170/64/1 101/66/1 -f 163/42/9 164/55/9 162/68/9 -f 169/83/8 172/69/8 101/71/8 -f 170/84/5 99/72/5 171/74/5 -f 111/176/6 173/75/6 112/77/6 -f 174/82/7 109/78/7 175/80/7 -f 167/54/9 168/47/9 166/81/9 -f 175/80/9 176/76/9 174/82/9 -f 171/74/9 172/69/9 170/84/9 -s 1 -f 1/177/10 2/178/11 4/179/12 -f 4/179/12 6/180/13 5/181/14 -f 6/180/13 8/182/15 7/183/16 -f 8/182/15 10/184/17 9/185/9 -f 9/186/9 10/187/17 12/188/18 -f 12/188/18 14/189/19 13/190/20 -f 13/190/20 14/189/19 16/191/21 -f 16/191/21 18/192/22 17/193/23 -f 18/192/22 20/194/24 19/195/25 -f 19/195/25 20/194/24 22/196/26 -f 22/196/26 24/197/27 23/198/28 -f 24/197/27 26/199/29 25/200/30 -f 25/200/30 26/199/29 28/201/31 -f 27/202/32 28/201/31 30/203/33 -f 31/204/34 32/205/35 2/178/11 -f 29/206/36 30/203/33 32/205/35 -f 34/207/10 36/208/37 35/209/38 -f 36/208/37 38/210/14 37/211/39 -f 37/211/39 38/210/14 40/212/16 -f 39/213/40 40/212/16 42/214/9 -f 42/215/9 44/216/41 43/217/42 -f 44/216/41 46/218/20 45/219/43 -f 46/218/20 48/220/44 47/221/45 -f 48/220/44 50/222/23 49/223/46 -f 50/222/23 52/224/25 51/225/47 -f 51/225/47 52/224/25 54/226/48 -f 53/227/49 54/226/48 56/228/28 -f 56/228/28 58/229/30 57/230/50 -f 57/230/50 58/229/30 60/231/32 -f 59/232/51 60/231/32 62/233/36 -f 63/234/52 64/235/34 34/207/10 -f 61/236/53 62/233/36 64/235/34 -f 98/237/54 100/238/55 99/239/56 -f 102/240/57 104/241/58 103/242/59 -f 104/241/58 106/243/60 105/244/61 -f 106/245/60 108/246/62 107/247/63 -f 108/246/62 110/248/64 109/249/65 -f 112/250/66 114/251/67 113/252/68 -f 114/251/67 116/253/69 115/254/70 -f 115/254/70 116/253/69 118/255/71 -f 118/255/71 120/256/72 119/257/73 -f 120/256/72 122/258/74 121/259/75 -f 122/258/74 124/260/76 123/261/77 -f 123/261/77 124/260/76 126/262/78 -f 128/263/79 98/237/54 97/264/80 -f 125/265/81 126/262/78 128/263/79 -f 130/266/54 132/267/55 131/268/56 -f 134/269/57 136/270/58 135/271/59 -f 136/270/58 138/272/60 137/273/61 -f 138/274/60 140/275/62 139/276/63 -f 140/275/62 142/277/64 141/278/65 -f 143/279/82 144/280/66 146/281/67 -f 146/281/67 148/282/69 147/283/70 -f 148/282/69 150/284/71 149/285/83 -f 150/284/71 152/286/72 151/287/73 -f 152/286/72 154/288/74 153/289/75 -f 154/288/74 156/290/76 155/291/77 -f 156/290/76 158/292/78 157/293/81 -f 160/294/79 130/266/54 129/295/80 -f 157/293/81 158/292/78 160/294/79 -f 177/296/84 178/297/85 67/298/86 -f 178/299/85 179/300/87 69/301/88 -f 179/302/87 180/303/89 71/304/59 -f 180/305/89 181/306/90 73/307/61 -f 73/308/61 181/309/90 182/310/91 -f 182/311/91 183/312/92 77/313/93 -f 183/314/92 184/315/94 79/316/95 -f 184/317/94 185/318/96 81/319/68 -f 81/320/68 185/321/96 186/322/97 -f 83/323/70 186/324/97 187/325/98 -f 85/326/83 187/327/98 188/328/99 -f 188/329/99 189/330/100 89/331/75 -f 189/332/100 190/333/101 91/334/77 -f 190/335/101 191/336/102 93/337/81 -f 192/338/103 177/339/84 65/340/80 -f 191/341/102 192/342/103 95/343/104 -f 190/335/101 59/232/51 61/236/53 -f 59/232/51 190/333/101 189/332/100 -f 57/230/50 189/330/100 188/329/99 -f 53/227/49 55/344/105 188/328/99 -f 51/225/47 53/227/49 187/325/98 -f 49/223/46 51/225/47 186/322/97 -f 47/221/45 49/223/46 185/318/96 -f 45/219/43 47/221/45 184/315/94 -f 43/217/42 45/219/43 183/312/92 -f 43/217/42 182/310/91 181/309/90 -f 39/213/40 41/345/106 181/306/90 -f 39/213/40 180/303/89 179/302/87 -f 37/211/39 179/300/87 178/299/85 -f 35/209/38 178/297/85 177/296/84 -f 33/346/107 177/339/84 192/338/103 -f 63/234/52 192/342/103 191/341/102 -f 26/199/29 24/197/27 88/347/108 -f 92/348/109 28/201/31 26/199/29 -f 94/349/110 30/203/33 28/201/31 -f 96/350/111 32/205/35 30/203/33 -f 66/351/112 2/178/11 32/205/35 -f 68/352/113 4/179/12 2/178/11 -f 70/353/114 6/180/13 4/179/12 -f 72/354/115 8/182/15 6/180/13 -f 74/355/116 10/184/17 8/182/15 -f 12/188/18 10/187/17 74/356/116 -f 14/189/19 12/188/18 76/357/117 -f 16/191/21 14/189/19 78/358/118 -f 18/192/22 16/191/21 80/359/119 -f 20/194/24 18/192/22 82/360/120 -f 22/196/26 20/194/24 84/361/121 -f 24/197/27 22/196/26 86/362/122 -f 195/363/30 200/364/36 201/365/123 -f 193/366/124 198/367/125 199/368/126 -f 196/369/127 201/365/123 202/370/128 -f 194/371/129 199/368/126 200/364/36 -f 200/372/36 205/373/10 206/374/130 -f 198/375/125 203/376/131 204/377/132 -f 201/378/123 206/374/130 207/379/133 -f 199/380/126 204/377/132 205/373/10 -f 207/381/133 206/382/130 211/383/134 -f 204/384/132 209/385/135 210/386/14 -f 205/387/10 210/386/14 211/383/134 -f 204/384/132 203/388/131 208/389/136 -f 209/390/135 214/391/137 215/392/9 -f 210/393/14 215/392/9 216/394/138 -f 209/390/135 208/395/136 213/396/139 -f 212/397/140 211/398/134 216/394/138 -f 215/399/9 220/400/20 221/401/141 -f 213/402/139 218/403/142 219/404/143 -f 217/405/144 216/406/138 221/401/141 -f 215/399/9 214/407/137 219/404/143 -f 218/408/142 223/409/145 224/410/146 -f 221/411/141 226/412/147 227/413/148 -f 220/414/20 219/415/143 224/410/146 -f 220/414/20 225/416/23 226/412/147 -f 226/417/147 231/418/149 232/419/150 -f 225/420/23 224/421/146 229/422/151 -f 226/417/147 225/420/23 230/423/48 -f 223/424/145 228/425/152 229/422/151 -f 231/426/149 230/427/48 195/428/30 -f 228/429/152 193/430/124 194/431/129 -f 231/426/149 196/432/127 197/433/153 -f 229/434/151 194/431/129 195/428/30 -f 3/435/37 1/177/10 4/179/12 -f 3/435/37 4/179/12 5/181/14 -f 5/181/14 6/180/13 7/183/16 -f 7/183/16 8/182/15 9/185/9 -f 11/436/41 9/186/9 12/188/18 -f 11/436/41 12/188/18 13/190/20 -f 15/437/44 13/190/20 16/191/21 -f 15/437/44 16/191/21 17/193/23 -f 17/193/23 18/192/22 19/195/25 -f 21/438/48 19/195/25 22/196/26 -f 21/438/48 22/196/26 23/198/28 -f 23/198/28 24/197/27 25/200/30 -f 27/202/32 25/200/30 28/201/31 -f 29/206/36 27/202/32 30/203/33 -f 1/177/10 31/204/34 2/178/11 -f 31/204/34 29/206/36 32/205/35 -f 33/346/107 34/207/10 35/209/38 -f 35/209/38 36/208/37 37/211/39 -f 39/213/40 37/211/39 40/212/16 -f 41/345/106 39/213/40 42/214/9 -f 41/439/106 42/215/9 43/217/42 -f 43/217/42 44/216/41 45/219/43 -f 45/219/43 46/218/20 47/221/45 -f 47/221/45 48/220/44 49/223/46 -f 49/223/46 50/222/23 51/225/47 -f 53/227/49 51/225/47 54/226/48 -f 55/344/105 53/227/49 56/228/28 -f 55/344/105 56/228/28 57/230/50 -f 59/232/51 57/230/50 60/231/32 -f 61/236/53 59/232/51 62/233/36 -f 33/346/107 63/234/52 34/207/10 -f 63/234/52 61/236/53 64/235/34 -f 97/264/80 98/237/54 99/239/56 -f 101/440/154 102/240/57 103/242/59 -f 103/242/59 104/241/58 105/244/61 -f 105/441/61 106/245/60 107/247/63 -f 107/247/63 108/246/62 109/249/65 -f 111/442/82 112/250/66 113/252/68 -f 113/252/68 114/251/67 115/254/70 -f 117/443/83 115/254/70 118/255/71 -f 117/443/83 118/255/71 119/257/73 -f 119/257/73 120/256/72 121/259/75 -f 121/259/75 122/258/74 123/261/77 -f 125/265/81 123/261/77 126/262/78 -f 127/444/104 128/263/79 97/264/80 -f 127/444/104 125/265/81 128/263/79 -f 129/295/80 130/266/54 131/268/56 -f 133/445/154 134/269/57 135/271/59 -f 135/271/59 136/270/58 137/273/61 -f 137/446/61 138/274/60 139/276/63 -f 139/276/63 140/275/62 141/278/65 -f 145/447/68 143/279/82 146/281/67 -f 145/447/68 146/281/67 147/283/70 -f 147/283/70 148/282/69 149/285/83 -f 149/285/83 150/284/71 151/287/73 -f 151/287/73 152/286/72 153/289/75 -f 153/289/75 154/288/74 155/291/77 -f 155/291/77 156/290/76 157/293/81 -f 159/448/104 160/294/79 129/295/80 -f 159/448/104 157/293/81 160/294/79 -f 65/449/80 177/296/84 67/298/86 -f 67/450/86 178/299/85 69/301/88 -f 69/451/88 179/302/87 71/304/59 -f 71/452/59 180/305/89 73/307/61 -f 75/453/63 73/308/61 182/310/91 -f 75/454/63 182/311/91 77/313/93 -f 77/455/93 183/314/92 79/316/95 -f 79/456/95 184/317/94 81/319/68 -f 83/457/70 81/320/68 186/322/97 -f 85/458/83 83/323/70 187/325/98 -f 87/459/73 85/326/83 188/328/99 -f 87/460/73 188/329/99 89/331/75 -f 89/461/75 189/332/100 91/334/77 -f 91/462/77 190/335/101 93/337/81 -f 95/463/104 192/338/103 65/340/80 -f 93/464/81 191/341/102 95/343/104 -f 191/336/102 190/335/101 61/236/53 -f 57/230/50 59/232/51 189/332/100 -f 55/344/105 57/230/50 188/329/99 -f 187/327/98 53/227/49 188/328/99 -f 186/324/97 51/225/47 187/325/98 -f 185/321/96 49/223/46 186/322/97 -f 184/317/94 47/221/45 185/318/96 -f 183/314/92 45/219/43 184/315/94 -f 182/311/91 43/217/42 183/312/92 -f 41/439/106 43/217/42 181/309/90 -f 180/305/89 39/213/40 181/306/90 -f 37/211/39 39/213/40 179/302/87 -f 35/209/38 37/211/39 178/299/85 -f 33/346/107 35/209/38 177/296/84 -f 63/234/52 33/346/107 192/338/103 -f 61/236/53 63/234/52 191/341/102 -f 90/465/155 26/199/29 88/347/108 -f 90/466/155 92/348/109 26/199/29 -f 92/467/109 94/349/110 28/201/31 -f 94/468/110 96/350/111 30/203/33 -f 96/469/111 66/351/112 32/205/35 -f 66/470/112 68/352/113 2/178/11 -f 68/471/113 70/353/114 4/179/12 -f 70/472/114 72/354/115 6/180/13 -f 72/473/115 74/355/116 8/182/15 -f 76/474/117 12/188/18 74/356/116 -f 78/475/118 14/189/19 76/357/117 -f 80/476/119 16/191/21 78/358/118 -f 82/477/120 18/192/22 80/359/119 -f 84/478/121 20/194/24 82/360/120 -f 86/479/122 22/196/26 84/361/121 -f 88/480/108 24/197/27 86/362/122 -f 196/369/127 195/363/30 201/365/123 -f 194/371/129 193/366/124 199/368/126 -f 197/481/153 196/369/127 202/370/128 -f 195/363/30 194/371/129 200/364/36 -f 201/378/123 200/372/36 206/374/130 -f 199/380/126 198/375/125 204/377/132 -f 202/482/128 201/378/123 207/379/133 -f 200/372/36 199/380/126 205/373/10 -f 212/483/140 207/381/133 211/383/134 -f 205/387/10 204/384/132 210/386/14 -f 206/382/130 205/387/10 211/383/134 -f 209/385/135 204/384/132 208/389/136 -f 210/393/14 209/390/135 215/392/9 -f 211/398/134 210/393/14 216/394/138 -f 214/391/137 209/390/135 213/396/139 -f 217/484/144 212/397/140 216/394/138 -f 216/406/138 215/399/9 221/401/141 -f 214/407/137 213/402/139 219/404/143 -f 222/485/156 217/405/144 221/401/141 -f 220/400/20 215/399/9 219/404/143 -f 219/415/143 218/408/142 224/410/146 -f 222/486/156 221/411/141 227/413/148 -f 225/416/23 220/414/20 224/410/146 -f 221/411/141 220/414/20 226/412/147 -f 227/487/148 226/417/147 232/419/150 -f 230/423/48 225/420/23 229/422/151 -f 231/418/149 226/417/147 230/423/48 -f 224/421/146 223/424/145 229/422/151 -f 196/432/127 231/426/149 195/428/30 -f 229/434/151 228/429/152 194/431/129 -f 232/488/150 231/426/149 197/433/153 -f 230/427/48 229/434/151 195/428/30 diff --git a/src/main/resources/assets/hbm/models/TsarBomba.obj b/src/main/resources/assets/hbm/models/TsarBomba.obj deleted file mode 100644 index e74a3094e..000000000 --- a/src/main/resources/assets/hbm/models/TsarBomba.obj +++ /dev/null @@ -1,799 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'tsarBomb.blend' -# www.blender.org -o Cylinder -v -1.000000 0.999999 -1.000000 -v 1.000000 1.000001 -1.000000 -v -1.000000 0.617316 -0.923880 -v 1.000000 0.617317 -0.923880 -v -0.999999 0.292892 -0.707107 -v 1.000001 0.292894 -0.707107 -v -0.999999 0.076120 -0.382683 -v 1.000001 0.076121 -0.382683 -v -0.999999 -0.000001 0.000000 -v 1.000001 0.000001 0.000000 -v -0.999999 0.076120 0.382684 -v 1.000001 0.076121 0.382684 -v -0.999999 0.292892 0.707107 -v 1.000001 0.292894 0.707107 -v -1.000000 0.617316 0.923880 -v 1.000000 0.617317 0.923880 -v -1.000000 0.999999 1.000000 -v 1.000000 1.000001 1.000000 -v -1.000000 1.382682 0.923880 -v 1.000000 1.382684 0.923880 -v -1.000001 1.707106 0.707107 -v 0.999999 1.707108 0.707107 -v -1.000001 1.923879 0.382684 -v 0.999999 1.923880 0.382684 -v -1.000001 1.999999 -0.000000 -v 0.999999 2.000001 -0.000000 -v -1.000001 1.923878 -0.382684 -v 0.999999 1.923880 -0.382684 -v -1.000001 1.707106 -0.707107 -v 0.999999 1.707108 -0.707107 -v -1.000000 1.382682 -0.923880 -v 1.000000 1.382684 -0.923880 -v 2.000000 0.674719 -0.785298 -v 2.000000 0.398959 -0.601041 -v 1.999999 0.214702 -0.325281 -v 1.999999 0.150000 -0.000000 -v 1.999999 0.214702 0.325281 -v 2.000000 0.398959 0.601041 -v 2.000000 0.674719 0.785298 -v 2.000000 1.000000 0.850000 -v 2.000000 1.325281 0.785298 -v 2.000000 1.601041 0.601041 -v 2.000001 1.785298 0.325281 -v 2.000001 1.850000 0.000000 -v 2.000001 1.785298 -0.325281 -v 2.000000 1.601041 -0.601041 -v 2.000000 1.325281 -0.785298 -v 2.000000 1.000000 -0.850000 -v -3.500000 1.000000 -0.600000 -v -3.500000 1.229610 -0.554328 -v -3.499999 1.424264 -0.424264 -v -3.499999 1.554328 -0.229610 -v -3.499999 1.600000 0.000000 -v -3.499999 1.554328 0.229610 -v -3.499999 1.424264 0.424264 -v -3.500000 1.229610 0.554328 -v -3.500000 1.000000 0.600000 -v -3.500000 0.770390 0.554328 -v -3.500000 0.575736 0.424264 -v -3.500000 0.445672 0.229610 -v -3.500000 0.400000 -0.000000 -v -3.500000 0.445672 -0.229610 -v -3.500000 0.575736 -0.424264 -v -3.500000 0.770390 -0.554328 -v -5.000000 1.000000 -0.600000 -v -5.000000 1.229610 -0.554328 -v -5.000000 1.424264 -0.424264 -v -5.000000 1.554328 -0.229610 -v -4.999999 1.600000 0.000000 -v -5.000000 1.554328 0.229610 -v -5.000000 1.424264 0.424264 -v -5.000000 1.229610 0.554328 -v -5.000000 1.000000 0.600000 -v -5.000000 0.770390 0.554328 -v -5.000000 0.575736 0.424264 -v -5.000000 0.445672 0.229610 -v -5.000000 0.400000 -0.000000 -v -5.000000 0.445672 -0.229610 -v -5.000000 0.575736 -0.424264 -v -5.000000 0.770390 -0.554328 -v 2.700000 1.000000 -0.600000 -v 2.700000 1.229610 -0.554328 -v 2.700001 1.424264 -0.424264 -v 2.700001 1.554328 -0.229610 -v 2.700001 1.600000 0.000000 -v 2.700001 1.554328 0.229610 -v 2.700001 1.424264 0.424264 -v 2.700000 1.229610 0.554328 -v 2.700000 1.000000 0.600000 -v 2.700000 0.770390 0.554328 -v 2.700000 0.575736 0.424264 -v 2.699999 0.445672 0.229610 -v 2.699999 0.400000 -0.000000 -v 2.699999 0.445672 -0.229610 -v 2.700000 0.575736 -0.424264 -v 2.700000 0.770390 -0.554328 -v 3.000000 1.000000 -0.000000 -v -4.250000 0.289964 -1.196548 -v -4.250000 0.318774 -1.213181 -v -4.250000 1.391259 0.016633 -v -3.500000 1.391259 0.016633 -v -4.250000 1.391259 -0.016633 -v -3.500000 1.391259 -0.016633 -v -4.250000 2.391259 -0.016637 -v -4.250000 1.891259 0.016631 -v -4.250000 0.289968 1.196550 -v -4.250000 0.789966 0.330524 -v -3.500000 0.789966 0.330524 -v -4.250000 0.818775 0.347157 -v -3.500000 0.818775 0.347157 -v -4.250000 1.891259 -0.016635 -v -4.250000 0.818775 -0.347157 -v -3.500000 0.818775 -0.347157 -v -4.250000 0.789966 -0.330524 -v -3.500000 0.789966 -0.330524 -v -4.250000 2.391259 0.016629 -v -4.250000 0.318777 1.213183 -v -5.000000 2.391259 -0.016637 -v -5.000000 1.891259 0.016631 -v -5.000000 1.891259 -0.016635 -v -5.000000 2.391259 0.016629 -v -4.250000 2.057926 -0.016636 -v -4.250000 2.224592 -0.016636 -v -3.500000 2.224592 -0.016636 -v -3.750000 2.391259 -0.016637 -v -3.750000 2.391259 0.016629 -v -4.250000 2.057926 0.016630 -v -4.250000 2.224592 0.016630 -v -3.500000 2.224592 0.016630 -v -4.250000 0.568774 -0.780169 -v -4.250000 0.539965 -0.763536 -v -4.250000 0.568776 0.780170 -v -4.250000 0.539967 0.763537 -v -5.000000 0.289964 -1.196548 -v -5.000000 0.318773 -1.213181 -v -5.000000 0.568774 -0.780169 -v -5.000000 0.539965 -0.763536 -v -5.000000 0.289968 1.196550 -v -5.000000 0.318777 1.213183 -v -5.000000 0.568776 0.780170 -v -5.000000 0.539967 0.763537 -v -3.750000 0.289965 -1.196548 -v -3.500000 0.373298 -1.052211 -v -3.750000 0.318774 -1.213181 -v -3.500000 0.402107 -1.068844 -v -3.750000 0.318777 1.213183 -v -3.500000 0.402110 1.068846 -v -3.750000 0.289968 1.196550 -v -3.500000 0.373301 1.052213 -vt 0.160468 0.428574 -vt 0.125244 0.428574 -vt 0.125245 0.248024 -vt 0.090021 0.428574 -vt 0.090021 0.248023 -vt 0.054797 0.428574 -vt 0.054798 0.248023 -vt 0.019573 0.428574 -vt 0.019574 0.248023 -vt 0.583153 0.428576 -vt 0.547929 0.428576 -vt 0.547929 0.248025 -vt 0.512705 0.428576 -vt 0.512706 0.248025 -vt 0.477481 0.428575 -vt 0.477482 0.248025 -vt 0.442258 0.428575 -vt 0.442258 0.248025 -vt 0.407034 0.428575 -vt 0.407035 0.248025 -vt 0.371810 0.428575 -vt 0.371811 0.248024 -vt 0.336587 0.428575 -vt 0.336587 0.248024 -vt 0.301363 0.428575 -vt 0.301363 0.248024 -vt 0.266139 0.428575 -vt 0.266140 0.248024 -vt 0.230915 0.428575 -vt 0.195692 0.428575 -vt 0.160469 0.248024 -vt 0.195692 0.248024 -vt 0.308409 0.019574 -vt 0.329543 0.019574 -vt 0.343633 0.019575 -vt 0.364767 0.019575 -vt 0.378856 0.019574 -vt 0.399991 0.019574 -vt 0.414080 0.019575 -vt 0.435214 0.019575 -vt 0.449303 0.019574 -vt 0.470438 0.019574 -vt 0.484527 0.019575 -vt 0.505661 0.019575 -vt 0.519751 0.019574 -vt 0.540885 0.019574 -vt 0.554975 0.019575 -vt 0.576109 0.019575 -vt 0.583153 0.248025 -vt 0.026620 0.019573 -vt 0.047754 0.019573 -vt 0.061843 0.019574 -vt 0.082977 0.019574 -vt 0.097067 0.019574 -vt 0.118201 0.019574 -vt 0.132291 0.019574 -vt 0.153425 0.019574 -vt 0.167514 0.019573 -vt 0.188649 0.019573 -vt 0.202738 0.019575 -vt 0.223872 0.019575 -vt 0.230916 0.248024 -vt 0.237962 0.019573 -vt 0.259096 0.019574 -vt 0.273185 0.019574 -vt 0.294320 0.019574 -vt 0.980421 0.146384 -vt 0.980421 0.167518 -vt 0.845008 0.167513 -vt 0.980420 0.188653 -vt 0.980419 0.209787 -vt 0.845006 0.209781 -vt 0.980418 0.230921 -vt 0.845005 0.230915 -vt 0.980417 0.252055 -vt 0.845004 0.252050 -vt 0.980416 0.273189 -vt 0.845003 0.273184 -vt 0.980415 0.294324 -vt 0.845002 0.294318 -vt 0.980415 0.315458 -vt 0.845002 0.315452 -vt 0.980414 0.336592 -vt 0.845001 0.336587 -vt 0.980413 0.357726 -vt 0.845000 0.357721 -vt 0.845014 0.019573 -vt 0.980427 0.019579 -vt 0.980426 0.040713 -vt 0.845013 0.040707 -vt 0.980425 0.061847 -vt 0.845012 0.061842 -vt 0.980424 0.082982 -vt 0.845011 0.082976 -vt 0.980423 0.104116 -vt 0.845010 0.104110 -vt 0.980422 0.125250 -vt 0.845009 0.125244 -vt 0.062131 0.791805 -vt 0.027661 0.768773 -vt 0.042605 0.693644 -vt 0.052155 0.519821 -vt 0.047751 0.586778 -vt 0.026617 0.586778 -vt 0.580511 0.519823 -vt 0.576108 0.586780 -vt 0.554973 0.586780 -vt 0.515347 0.519823 -vt 0.545287 0.519823 -vt 0.540884 0.586780 -vt 0.480123 0.519822 -vt 0.510063 0.519822 -vt 0.505660 0.586780 -vt 0.444899 0.519822 -vt 0.474840 0.519822 -vt 0.470437 0.586780 -vt 0.409676 0.519822 -vt 0.439616 0.519822 -vt 0.435213 0.586780 -vt 0.374452 0.519822 -vt 0.404392 0.519822 -vt 0.399989 0.586780 -vt 0.097065 0.586779 -vt 0.118199 0.586779 -vt 0.107632 0.646408 -vt 0.339228 0.519822 -vt 0.369168 0.519822 -vt 0.364765 0.586780 -vt 0.304004 0.519822 -vt 0.333945 0.519822 -vt 0.329541 0.586780 -vt 0.298721 0.519822 -vt 0.294318 0.586779 -vt 0.273183 0.586779 -vt 0.263497 0.519822 -vt 0.259094 0.586779 -vt 0.237960 0.586779 -vt 0.228273 0.519822 -vt 0.223870 0.586779 -vt 0.202736 0.586779 -vt 0.193050 0.519822 -vt 0.188646 0.586779 -vt 0.167512 0.586779 -vt 0.519750 0.586780 -vt 0.530317 0.646409 -vt 0.484526 0.586780 -vt 0.495093 0.646409 -vt 0.449302 0.586780 -vt 0.459869 0.646409 -vt 0.414079 0.586780 -vt 0.424645 0.646409 -vt 0.378855 0.586780 -vt 0.389422 0.646409 -vt 0.343631 0.586780 -vt 0.354198 0.646409 -vt 0.308407 0.586780 -vt 0.318974 0.646409 -vt 0.283750 0.646409 -vt 0.248526 0.646409 -vt 0.213303 0.646409 -vt 0.178079 0.646408 -vt 0.132288 0.586779 -vt 0.153423 0.586779 -vt 0.142855 0.646408 -vt 0.061841 0.586778 -vt 0.082975 0.586779 -vt 0.072408 0.646408 -vt 0.037184 0.646408 -vt 0.565540 0.646410 -vt 0.087378 0.519821 -vt 0.122602 0.519821 -vt 0.157826 0.519822 -vt 0.233557 0.519822 -vt 0.268781 0.519822 -vt 0.550570 0.519823 -vt 0.164969 0.753263 -vt 0.164971 0.685556 -vt 0.167974 0.685556 -vt 0.207121 0.753262 -vt 0.207121 0.685556 -vt 0.210124 0.685556 -vt 0.249270 0.685556 -vt 0.252274 0.685556 -vt 0.252274 0.753264 -vt 0.249271 0.753264 -vt 0.252274 0.798401 -vt 0.715578 0.663671 -vt 0.712575 0.663671 -vt 0.712576 0.618535 -vt 0.712576 0.878866 -vt 0.712575 0.803639 -vt 0.715578 0.803639 -vt 0.712575 0.731377 -vt 0.715578 0.731377 -vt 0.712575 0.776515 -vt 0.667437 0.731377 -vt 0.667438 0.663671 -vt 0.697529 0.799084 -vt 0.622299 0.799084 -vt 0.760716 0.663671 -vt 0.760716 0.731377 -vt 0.715578 0.776515 -vt 0.730624 0.799084 -vt 0.164969 0.798401 -vt 0.167973 0.753263 -vt 0.712575 0.177554 -vt 0.715578 0.177554 -vt 0.715578 0.204678 -vt 0.207120 0.798401 -vt 0.210124 0.753262 -vt 0.715578 0.579388 -vt 0.712575 0.579388 -vt 0.712575 0.504161 -vt 0.715578 0.019573 -vt 0.715578 0.064710 -vt 0.712575 0.064710 -vt 0.760716 0.064710 -vt 0.760716 0.132416 -vt 0.715578 0.132416 -vt 0.712575 0.132416 -vt 0.667437 0.132416 -vt 0.667437 0.064710 -vt 0.712575 0.319054 -vt 0.715578 0.319054 -vt 0.715578 0.364192 -vt 0.712575 0.477036 -vt 0.715578 0.477036 -vt 0.760716 0.364192 -vt 0.760716 0.431899 -vt 0.715578 0.431899 -vt 0.712575 0.431899 -vt 0.667437 0.431899 -vt 0.667437 0.364192 -vt 0.697529 0.200123 -vt 0.622299 0.200123 -vt 0.730624 0.200123 -vt 0.712575 0.204678 -vt 0.715578 0.279908 -vt 0.697529 0.499605 -vt 0.622300 0.499605 -vt 0.730624 0.499605 -vt 0.845008 0.146379 -vt 0.845007 0.188647 -vt 0.062131 0.685556 -vt 0.083265 0.685556 -vt 0.102790 0.693644 -vt 0.117734 0.708588 -vt 0.125822 0.728113 -vt 0.125822 0.749248 -vt 0.117734 0.768773 -vt 0.102790 0.783717 -vt 0.083265 0.791805 -vt 0.042605 0.783717 -vt 0.019573 0.749248 -vt 0.019573 0.728114 -vt 0.027661 0.708588 -vt 0.022215 0.519821 -vt 0.198333 0.519822 -vt 0.163109 0.519822 -vt 0.057438 0.519821 -vt 0.092662 0.519821 -vt 0.127886 0.519821 -vt 0.249271 0.798401 -vt 0.715579 0.618535 -vt 0.715579 0.878866 -vt 0.622300 0.731377 -vt 0.805854 0.799084 -vt 0.805854 0.731377 -vt 0.167972 0.798401 -vt 0.210123 0.798401 -vt 0.715578 0.504161 -vt 0.712575 0.019573 -vt 0.712575 0.364192 -vt 0.622300 0.132416 -vt 0.805853 0.132416 -vt 0.805853 0.200123 -vt 0.712575 0.279908 -vt 0.622299 0.431899 -vt 0.805853 0.499605 -vt 0.805853 0.431899 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 -0.555600 -0.831500 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.195100 0.980800 -vn -0.000000 0.195100 0.980800 -vn -0.000000 0.555600 0.831500 -vn -0.000000 0.831500 0.555600 -vn -0.000000 0.980800 0.195100 -vn -0.000000 0.980800 -0.195100 -vn -0.000000 0.831500 -0.555600 -vn -0.000000 0.195100 -0.980800 -vn -0.000000 0.555600 -0.831500 -vn -0.155000 0.968900 0.192700 -vn -0.155000 0.821400 0.548900 -vn -0.155000 0.548900 0.821400 -vn -0.155000 0.192700 0.968900 -vn -0.155000 -0.192700 0.968900 -vn -0.155000 -0.548900 0.821400 -vn -0.155000 -0.821400 0.548900 -vn -0.155000 -0.968900 0.192700 -vn -0.155000 -0.968900 -0.192700 -vn -0.155000 -0.821400 -0.548900 -vn -0.155000 -0.548900 -0.821400 -vn -0.155000 -0.192700 -0.968900 -vn -0.155000 0.192700 -0.968900 -vn -0.155000 0.548900 -0.821400 -vn -0.155000 0.821400 -0.548900 -vn -0.155000 0.968900 -0.192700 -vn -1.000000 0.000000 0.000000 -vn 0.330600 -0.925600 -0.184100 -vn 0.330600 -0.925600 0.184100 -vn 0.330600 -0.784700 0.524300 -vn 0.330600 -0.524300 0.784700 -vn 0.330600 -0.184100 0.925600 -vn 0.330600 0.184100 0.925600 -vn 0.330600 0.524300 0.784700 -vn 0.890900 -0.252300 -0.377600 -vn 0.330600 0.784700 0.524300 -vn 0.330600 0.925600 0.184100 -vn 0.330600 0.925600 -0.184100 -vn 0.330600 0.784700 -0.524300 -vn 0.330600 0.524300 -0.784700 -vn 0.330600 0.184100 -0.925600 -vn 0.890900 -0.377600 0.252300 -vn 0.890900 -0.252300 0.377600 -vn 0.890900 -0.088600 0.445500 -vn 0.890900 0.088600 0.445500 -vn 0.890900 0.252300 0.377600 -vn 0.890900 0.377600 0.252300 -vn 0.890900 0.445500 0.088600 -vn 0.890900 0.445500 -0.088600 -vn 0.890900 0.377600 -0.252300 -vn 0.890900 0.252300 -0.377600 -vn 0.890900 0.088600 -0.445500 -vn 0.890900 -0.088600 -0.445500 -vn 0.890900 -0.377600 -0.252300 -vn 0.890900 -0.445500 -0.088600 -vn 0.890900 -0.445500 0.088600 -vn 0.330600 -0.784700 -0.524300 -vn 0.330600 -0.524300 -0.784700 -vn 0.330600 -0.184100 -0.925600 -vn 0.145600 -0.193000 -0.970300 -vn 0.145600 0.193000 -0.970300 -vn 0.145600 0.549700 -0.822600 -vn 0.145600 0.822600 -0.549700 -vn 0.145600 0.970300 -0.193000 -vn 0.145600 0.970300 0.193000 -vn 0.145600 0.822600 0.549700 -vn 0.145600 0.549700 0.822600 -vn 0.145600 0.193000 0.970300 -vn 0.145600 -0.193000 0.970300 -vn 0.145600 -0.549700 0.822600 -vn 0.145600 -0.822600 0.549700 -vn 0.145600 -0.970300 0.193000 -vn 0.145600 -0.970300 -0.193000 -vn 0.145600 -0.822600 -0.549700 -vn 0.145600 -0.549700 -0.822600 -vn 0.000000 0.500000 0.866000 -vn 0.000000 0.500000 -0.866000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 -0.000000 0.000000 -vn -0.000000 1.000000 -0.000000 -vn 0.554700 0.832100 0.000000 -vn 0.000000 -0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.554700 -0.416000 -0.720600 -vn -0.000000 0.866000 -0.500000 -vn 0.000000 -0.866000 0.500000 -vn 0.554700 -0.416000 0.720600 -vn 0.000000 -0.866000 -0.500000 -vn -0.000000 0.866000 0.500000 -vn 0.000000 -0.500000 -0.866000 -vn -0.000000 -0.500000 0.866000 -vn 0.554700 0.832000 0.000000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/10/5 12/11/5 11/12/5 -f 12/11/6 14/13/6 13/14/6 -f 14/13/7 16/15/7 15/16/7 -f 16/15/8 18/17/8 17/18/8 -f 18/17/9 20/19/9 19/20/9 -f 20/19/10 22/21/10 21/22/10 -f 22/21/11 24/23/11 23/24/11 -f 24/23/12 26/25/12 25/26/12 -f 25/26/13 26/25/13 28/27/13 -f 27/28/14 28/27/14 30/29/14 -f 32/30/15 2/1/15 1/31/15 -f 30/29/16 32/30/16 31/32/16 -f 53/33/17 54/34/17 23/24/17 -f 23/24/18 54/35/18 55/36/18 -f 55/37/19 56/38/19 19/20/19 -f 19/20/20 56/39/20 57/40/20 -f 17/18/21 57/41/21 58/42/21 -f 58/43/22 59/44/22 13/14/22 -f 59/45/23 60/46/23 11/12/23 -f 60/47/24 61/48/24 9/49/24 -f 61/50/25 62/51/25 7/7/25 -f 62/52/26 63/53/26 5/5/26 -f 63/54/27 64/55/27 3/3/27 -f 64/56/28 49/57/28 1/31/28 -f 1/31/29 49/58/29 50/59/29 -f 50/60/30 51/61/30 29/62/30 -f 51/63/31 52/64/31 27/28/31 -f 52/65/32 53/66/32 25/26/32 -f 67/67/14 68/68/14 52/69/14 -f 52/69/13 68/68/13 69/70/13 -f 69/70/12 70/71/12 54/72/12 -f 70/71/11 71/73/11 55/74/11 -f 71/73/10 72/75/10 56/76/10 -f 72/75/9 73/77/9 57/78/9 -f 73/77/8 74/79/8 58/80/8 -f 74/79/7 75/81/7 59/82/7 -f 75/81/6 76/83/6 60/84/6 -f 76/83/5 77/85/5 61/86/5 -f 61/87/4 77/88/4 78/89/4 -f 62/90/3 78/89/3 79/91/3 -f 63/92/2 79/91/2 80/93/2 -f 64/94/1 80/93/1 65/95/1 -f 49/96/15 65/95/15 66/97/15 -f 50/98/16 66/97/16 67/67/16 -f 73/99/33 71/100/33 67/101/33 -f 35/102/34 94/103/34 93/104/34 -f 36/105/35 93/106/35 92/107/35 -f 38/108/36 37/109/36 92/110/36 -f 39/111/37 38/112/37 91/113/37 -f 40/114/38 39/115/38 90/116/38 -f 41/117/39 40/118/39 89/119/39 -f 42/120/40 41/121/40 88/122/40 -f 95/123/41 96/124/41 97/125/41 -f 43/126/42 42/127/42 87/128/42 -f 44/129/43 43/130/43 86/131/43 -f 44/132/44 85/133/44 84/134/44 -f 45/135/45 84/136/45 83/137/45 -f 46/138/46 83/139/46 82/140/46 -f 47/141/47 82/142/47 81/143/47 -f 91/144/48 92/110/48 97/145/48 -f 90/146/49 91/113/49 97/147/49 -f 89/148/50 90/116/50 97/149/50 -f 88/150/51 89/119/51 97/151/51 -f 87/152/52 88/122/52 97/153/52 -f 86/154/53 87/128/53 97/155/53 -f 85/156/54 86/131/54 97/157/54 -f 84/134/55 85/133/55 97/158/55 -f 83/137/56 84/136/56 97/159/56 -f 82/140/57 83/139/57 97/160/57 -f 81/143/58 82/142/58 97/161/58 -f 96/162/59 81/163/59 97/164/59 -f 94/165/60 95/166/60 97/167/60 -f 93/104/61 94/103/61 97/168/61 -f 93/106/62 97/169/62 92/107/62 -f 34/170/63 95/166/63 94/165/63 -f 33/171/64 96/124/64 95/123/64 -f 48/172/65 81/163/65 96/162/65 -f 4/2/66 2/1/66 48/172/66 -f 2/1/67 32/30/67 47/141/67 -f 32/30/68 30/29/68 46/138/68 -f 28/27/69 45/135/69 46/173/69 -f 26/25/70 44/132/70 45/174/70 -f 24/23/71 43/130/71 44/129/71 -f 22/21/72 42/127/72 43/126/72 -f 20/19/73 41/121/73 42/120/73 -f 18/17/74 40/118/74 41/117/74 -f 16/15/75 39/115/75 40/114/75 -f 14/13/76 38/112/76 39/111/76 -f 12/11/77 37/109/77 38/108/77 -f 10/10/78 36/105/78 37/175/78 -f 10/8/79 8/6/79 35/102/79 -f 8/6/80 6/4/80 34/170/80 -f 6/4/81 4/2/81 33/171/81 -f 130/176/82 136/177/82 137/178/82 -f 133/179/83 141/180/83 140/181/83 -f 119/182/84 120/183/84 111/184/84 -f 105/185/33 111/184/33 102/186/33 -f 121/187/33 118/188/33 120/189/33 -f 103/190/85 124/191/85 129/192/85 -f 104/193/86 121/187/86 116/194/86 -f 129/192/87 124/191/87 125/195/87 -f 104/193/88 111/196/88 120/197/88 -f 111/196/88 124/198/88 103/199/88 -f 119/200/89 105/201/89 116/194/89 -f 126/202/89 105/201/89 129/203/89 -f 112/204/33 130/176/33 131/205/33 -f 142/206/90 144/207/90 145/208/90 -f 107/209/33 133/179/33 132/210/33 -f 108/211/85 110/212/85 147/213/85 -f 136/214/33 135/215/33 134/216/33 -f 136/217/91 130/218/91 99/219/91 -f 98/220/92 131/221/92 137/222/92 -f 140/223/33 141/224/33 138/225/33 -f 147/213/93 146/226/93 148/227/93 -f 141/228/94 133/229/94 106/230/94 -f 117/231/95 132/232/95 140/233/95 -f 131/221/92 143/234/92 115/235/92 -f 145/236/91 144/207/91 130/218/91 -f 98/220/96 99/219/96 144/207/96 -f 143/237/85 145/208/85 113/238/85 -f 117/231/97 138/225/97 106/230/97 -f 132/232/95 147/239/95 110/240/95 -f 148/227/94 133/229/94 149/241/94 -f 1/31/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/49/5 10/10/5 11/12/5 -f 11/12/6 12/11/6 13/14/6 -f 13/14/7 14/13/7 15/16/7 -f 15/16/8 16/15/8 17/18/8 -f 17/18/9 18/17/9 19/20/9 -f 19/20/10 20/19/10 21/22/10 -f 21/22/11 22/21/11 23/24/11 -f 23/24/12 24/23/12 25/26/12 -f 27/28/13 25/26/13 28/27/13 -f 29/62/14 27/28/14 30/29/14 -f 31/32/15 32/30/15 1/31/15 -f 29/62/16 30/29/16 31/32/16 -f 25/26/17 53/33/17 23/24/17 -f 21/22/18 23/24/18 55/36/18 -f 21/22/19 55/37/19 19/20/19 -f 17/18/20 19/20/20 57/40/20 -f 15/16/21 17/18/21 58/42/21 -f 15/16/22 58/43/22 13/14/22 -f 13/14/23 59/45/23 11/12/23 -f 11/12/24 60/47/24 9/49/24 -f 9/9/25 61/50/25 7/7/25 -f 7/7/26 62/52/26 5/5/26 -f 5/5/27 63/54/27 3/3/27 -f 3/3/28 64/56/28 1/31/28 -f 31/32/29 1/31/29 50/59/29 -f 31/32/30 50/60/30 29/62/30 -f 29/62/31 51/63/31 27/28/31 -f 27/28/32 52/65/32 25/26/32 -f 51/242/14 67/67/14 52/69/14 -f 53/243/13 52/69/13 69/70/13 -f 53/243/12 69/70/12 54/72/12 -f 54/72/11 70/71/11 55/74/11 -f 55/74/10 71/73/10 56/76/10 -f 56/76/9 72/75/9 57/78/9 -f 57/78/8 73/77/8 58/80/8 -f 58/80/7 74/79/7 59/82/7 -f 59/82/6 75/81/6 60/84/6 -f 60/84/5 76/83/5 61/86/5 -f 62/90/4 61/87/4 78/89/4 -f 63/92/3 62/90/3 79/91/3 -f 64/94/2 63/92/2 80/93/2 -f 49/96/1 64/94/1 65/95/1 -f 50/98/15 49/96/15 66/97/15 -f 51/242/16 50/98/16 67/67/16 -f 67/101/33 66/244/33 65/245/33 -f 65/245/33 80/246/33 79/247/33 -f 79/247/33 78/248/33 77/249/33 -f 77/249/33 76/250/33 75/251/33 -f 75/251/33 74/252/33 73/99/33 -f 73/99/33 72/253/33 71/100/33 -f 71/100/33 70/254/33 69/255/33 -f 69/255/33 68/256/33 71/100/33 -f 67/101/33 65/245/33 75/251/33 -f 79/247/33 77/249/33 75/251/33 -f 75/251/33 73/99/33 67/101/33 -f 71/100/33 68/256/33 67/101/33 -f 65/245/33 79/247/33 75/251/33 -f 36/257/34 35/102/34 93/104/34 -f 37/175/35 36/105/35 92/107/35 -f 91/144/36 38/108/36 92/110/36 -f 90/146/37 39/111/37 91/113/37 -f 89/148/38 40/114/38 90/116/38 -f 88/150/39 41/117/39 89/119/39 -f 87/152/40 42/120/40 88/122/40 -f 86/154/42 43/126/42 87/128/42 -f 85/156/43 44/129/43 86/131/43 -f 45/174/44 44/132/44 84/134/44 -f 46/173/45 45/135/45 83/137/45 -f 47/258/46 46/138/46 82/140/46 -f 48/259/47 47/141/47 81/143/47 -f 35/260/63 34/170/63 94/165/63 -f 34/261/64 33/171/64 95/123/64 -f 33/262/65 48/172/65 96/162/65 -f 33/262/66 4/2/66 48/172/66 -f 48/259/67 2/1/67 47/141/67 -f 47/258/68 32/30/68 46/138/68 -f 30/29/69 28/27/69 46/173/69 -f 28/27/70 26/25/70 45/174/70 -f 26/25/71 24/23/71 44/129/71 -f 24/23/72 22/21/72 43/126/72 -f 22/21/73 20/19/73 42/120/73 -f 20/19/74 18/17/74 41/117/74 -f 18/17/75 16/15/75 40/114/75 -f 16/15/76 14/13/76 39/111/76 -f 14/13/77 12/11/77 38/108/77 -f 12/11/78 10/10/78 37/175/78 -f 36/257/79 10/8/79 35/102/79 -f 35/260/80 8/6/80 34/170/80 -f 34/261/81 6/4/81 33/171/81 -f 131/205/82 130/176/82 137/178/82 -f 132/210/83 133/179/83 140/181/83 -f 105/185/84 119/182/84 111/184/84 -f 100/263/33 105/185/33 102/186/33 -f 119/264/33 121/187/33 120/189/33 -f 101/265/85 103/190/85 129/192/85 -f 126/202/86 125/195/86 104/193/86 -f 104/193/86 118/188/86 121/187/86 -f 116/194/86 126/202/86 104/193/86 -f 126/202/98 129/192/98 125/195/98 -f 118/188/88 104/193/88 120/197/88 -f 103/199/88 102/266/88 111/196/88 -f 111/196/88 104/193/88 125/195/88 -f 125/195/88 124/198/88 111/196/88 -f 121/187/89 119/200/89 116/194/89 -f 101/267/89 129/203/89 105/201/89 -f 126/202/89 116/194/89 105/201/89 -f 105/201/89 100/268/89 101/267/89 -f 114/269/33 112/204/33 131/205/33 -f 143/237/90 142/206/90 145/208/90 -f 109/270/33 107/209/33 132/210/33 -f 149/271/85 108/211/85 147/213/85 -f 137/272/33 136/214/33 134/216/33 -f 135/215/91 136/217/91 99/219/91 -f 134/216/92 98/220/92 137/222/92 -f 139/273/33 140/223/33 138/225/33 -f 149/271/93 147/213/93 148/227/93 -f 138/225/94 141/228/94 106/230/94 -f 139/273/95 117/231/95 140/233/95 -f 115/235/92 114/274/92 131/221/92 -f 131/221/92 98/220/92 142/206/92 -f 142/206/92 143/234/92 131/221/92 -f 130/218/91 112/275/91 113/276/91 -f 113/276/91 145/236/91 130/218/91 -f 144/207/91 99/219/91 130/218/91 -f 144/207/96 142/206/96 98/220/96 -f 98/220/96 134/216/96 135/215/96 -f 135/215/96 99/219/96 98/220/96 -f 115/277/85 143/237/85 113/238/85 -f 148/227/97 146/226/97 117/231/97 -f 117/231/97 139/273/97 138/225/97 -f 106/230/97 148/227/97 117/231/97 -f 110/240/95 109/278/95 132/232/95 -f 132/232/95 117/231/95 146/226/95 -f 146/226/95 147/239/95 132/232/95 -f 108/279/94 149/241/94 133/229/94 -f 148/227/94 106/230/94 133/229/94 -f 133/229/94 107/280/94 108/279/94 diff --git a/src/main/resources/assets/hbm/models/ams_base.obj b/src/main/resources/assets/hbm/models/ams_base.obj deleted file mode 100644 index e8d049802..000000000 --- a/src/main/resources/assets/hbm/models/ams_base.obj +++ /dev/null @@ -1,344 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_base.blend' -# www.blender.org -o Plane -v -1.500000 0.000000 1.500000 -v 1.500000 0.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v -1.000000 1.500000 1.000000 -v 1.000000 1.500000 1.000000 -v -1.000000 1.500000 -1.000000 -v 1.000000 1.500000 -1.000000 -v -1.500000 0.343750 0.156250 -v -1.500000 0.656250 0.156250 -v -1.500000 0.343750 -0.156250 -v -1.500000 0.656250 -0.156250 -v 1.500000 0.343750 0.156250 -v 1.500000 0.656250 0.156250 -v 1.500000 0.343750 -0.156250 -v 1.500000 0.656250 -0.156250 -v 0.156250 0.343750 1.500000 -v 0.156250 0.656250 1.500000 -v -0.156250 0.343750 1.500000 -v -0.156250 0.656250 1.500000 -v 0.156250 0.343750 -1.500000 -v 0.156250 0.656250 -1.500000 -v -0.156250 0.343750 -1.500000 -v -0.156250 0.656250 -1.500000 -v -1.000000 2.000000 -1.000000 -v -1.000000 2.000000 1.000000 -v 1.000000 2.000000 1.000000 -v 1.000000 2.000000 -1.000000 -v -0.750000 2.000000 -0.750000 -v -0.750000 2.000000 0.750000 -v 0.750000 2.000000 0.750000 -v 0.750000 2.000000 -0.750000 -v -0.750000 1.750000 -0.750000 -v -0.750000 1.750000 0.750000 -v 0.750000 1.750000 0.750000 -v 0.750000 1.750000 -0.750000 -v -0.750000 3.000000 0.750000 -v -0.750000 3.000000 -0.750000 -v 0.000000 1.750000 -0.600000 -v 0.000000 2.000000 -0.600000 -v 0.229610 1.750000 -0.554328 -v 0.229610 2.000000 -0.554328 -v 0.424264 1.750000 -0.424264 -v 0.424264 2.000000 -0.424264 -v 0.554328 1.750000 -0.229610 -v 0.554328 2.000000 -0.229610 -v 0.600000 1.750000 0.000000 -v 0.600000 2.000000 0.000000 -v 0.554328 1.750000 0.229610 -v 0.554328 2.000000 0.229610 -v 0.424264 1.750000 0.424264 -v 0.424264 2.000000 0.424264 -v 0.229610 1.750000 0.554328 -v 0.229610 2.000000 0.554328 -v 0.000000 1.750000 0.600000 -v 0.000000 2.000000 0.600000 -v -0.229610 1.750000 0.554328 -v -0.229610 2.000000 0.554328 -v -0.424264 1.750000 0.424264 -v -0.424264 2.000000 0.424264 -v -0.554328 1.750000 0.229610 -v -0.554328 2.000000 0.229610 -v -0.600000 1.750000 -0.000000 -v -0.600000 2.000000 -0.000000 -v -0.554328 1.750000 -0.229610 -v -0.554328 2.000000 -0.229610 -v -0.424264 1.750000 -0.424264 -v -0.424264 2.000000 -0.424264 -v -0.229610 1.750000 -0.554328 -v -0.229610 2.000000 -0.554328 -v 0.750000 3.000000 0.750000 -v 0.750000 3.000000 -0.750000 -vt 0.259127 0.259128 -vt 0.544865 0.259127 -vt 0.544865 0.544865 -vt 0.695462 0.306750 -vt 0.743085 0.306750 -vt 0.743085 0.497242 -vt 0.306750 0.108530 -vt 0.497242 0.108530 -vt 0.108530 0.497242 -vt 0.108530 0.306751 -vt 0.497242 0.695462 -vt 0.306751 0.695462 -vt 0.259127 0.544865 -vt 0.695462 0.497242 -vt 0.043049 0.876806 -vt 0.013285 0.876806 -vt 0.013285 0.847042 -vt 0.328787 0.876806 -vt 0.328787 0.906570 -vt 0.043049 0.906570 -vt 0.328787 0.847042 -vt 0.358551 0.847042 -vt 0.358551 0.876806 -vt 0.043049 0.847042 -vt 0.043049 0.817277 -vt 0.328787 0.817277 -vt 0.328787 0.936335 -vt 0.414884 0.876806 -vt 0.385120 0.876806 -vt 0.385120 0.847042 -vt 0.700622 0.876806 -vt 0.700622 0.906570 -vt 0.414884 0.906570 -vt 0.700622 0.847042 -vt 0.730386 0.847042 -vt 0.730386 0.876806 -vt 0.414884 0.847042 -vt 0.414884 0.817277 -vt 0.700622 0.817277 -vt 0.700622 0.936335 -vt 0.060908 0.497242 -vt 0.037096 0.473431 -vt 0.037096 0.330562 -vt 0.060907 0.306751 -vt 0.306750 0.060908 -vt 0.497242 0.060907 -vt 0.497242 0.743085 -vt 0.306751 0.743085 -vt 0.330562 0.037096 -vt 0.330562 0.013285 -vt 0.473431 0.013285 -vt 0.473431 0.037096 -vt 0.473431 0.766897 -vt 0.330562 0.766897 -vt 0.766897 0.330562 -vt 0.766897 0.473431 -vt 0.960146 0.013285 -vt 0.960146 0.156153 -vt 0.817277 0.156153 -vt 0.473431 0.790708 -vt 0.330562 0.790708 -vt 0.790708 0.330562 -vt 0.790708 0.473431 -vt 0.013285 0.473431 -vt 0.013285 0.330562 -vt 0.370051 0.986715 -vt 0.347753 0.986715 -vt 0.347753 0.962904 -vt 0.325455 0.986715 -vt 0.325455 0.962904 -vt 0.303157 0.986715 -vt 0.303157 0.962904 -vt 0.280859 0.986715 -vt 0.280859 0.962904 -vt 0.258561 0.986715 -vt 0.258561 0.962904 -vt 0.236263 0.986715 -vt 0.236263 0.962904 -vt 0.213965 0.986715 -vt 0.213965 0.962904 -vt 0.191668 0.986715 -vt 0.191668 0.962904 -vt 0.169370 0.986715 -vt 0.169370 0.962904 -vt 0.147072 0.986715 -vt 0.147072 0.962904 -vt 0.817277 0.448983 -vt 0.849026 0.460208 -vt 0.817277 0.550007 -vt 0.124774 0.986715 -vt 0.124774 0.962904 -vt 0.817277 0.698391 -vt 0.850952 0.698391 -vt 0.817277 0.793637 -vt 0.102476 0.986715 -vt 0.102476 0.962904 -vt 0.817277 0.576576 -vt 0.850952 0.576576 -vt 0.817277 0.671822 -vt 0.080178 0.986715 -vt 0.080178 0.962904 -vt 0.817277 0.321391 -vt 0.849026 0.332615 -vt 0.817277 0.422414 -vt 0.057880 0.986715 -vt 0.057880 0.962904 -vt 0.817277 0.227623 -vt 0.884476 0.182722 -vt 0.929376 0.249921 -vt 0.035582 0.986715 -vt 0.013285 0.986715 -vt 0.013285 0.962904 -vt 0.035582 0.962904 -vt 0.043049 0.936335 -vt 0.414884 0.936335 -vt 0.817277 0.013285 -vt 0.370050 0.962904 -vt 0.920843 0.270521 -vt 0.862178 0.294821 -vt 0.905076 0.286288 -vt 0.884476 0.294821 -vt 0.841577 0.286288 -vt 0.825810 0.270521 -vt 0.817277 0.249921 -vt 0.825810 0.207022 -vt 0.841577 0.191256 -vt 0.862178 0.182722 -vt 0.905076 0.191256 -vt 0.920843 0.207023 -vt 0.929376 0.227623 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.316200 -0.948700 -vn -0.948700 0.316200 0.000000 -vn 0.000000 0.316200 0.948700 -vn 0.948700 0.316200 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 1.000000 0.000000 -vn 0.195100 0.000000 -0.980800 -vn 0.555600 0.000000 -0.831500 -vn 0.831500 0.000000 -0.555600 -vn 0.980800 0.000000 -0.195100 -vn 0.980800 0.000000 0.195100 -vn 0.831500 0.000000 0.555600 -vn 0.555600 0.000000 0.831500 -vn 0.195100 0.000000 0.980800 -vn -0.195100 0.000000 0.980800 -vn -0.555600 0.000000 0.831500 -vn 0.707100 0.000000 -0.707100 -vn -0.831500 0.000000 0.555600 -vn 0.707100 0.000000 0.707100 -vn -0.980800 0.000000 0.195100 -vn -0.980800 0.000000 -0.195100 -vn -0.831500 0.000000 -0.555600 -vn -0.195100 0.000000 -0.980800 -vn -0.555600 0.000000 -0.831500 -s off -f 3/1/1 4/2/1 2/3/1 -f 8/4/2 28/5/2 27/6/2 -f 7/7/3 8/8/3 4/2/3 -f 5/9/4 7/10/4 3/1/4 -f 6/11/5 5/12/5 1/13/5 -f 8/4/6 6/14/6 2/3/6 -f 12/15/7 11/16/7 9/17/7 -f 16/18/8 15/19/8 11/20/8 -f 14/21/2 13/22/2 15/23/2 -f 10/24/9 9/25/9 13/26/9 -f 11/20/1 15/19/1 13/27/1 -f 16/18/10 12/15/10 10/24/10 -f 20/28/9 19/29/9 17/30/9 -f 24/31/7 23/32/7 19/33/7 -f 22/34/8 21/35/8 23/36/8 -f 18/37/2 17/38/2 21/39/2 -f 19/33/1 23/32/1 21/40/1 -f 24/31/10 20/28/10 18/37/10 -f 26/41/10 30/42/10 29/43/10 -f 5/9/7 26/41/7 25/44/7 -f 7/7/8 25/45/8 28/46/8 -f 6/11/9 27/47/9 26/48/9 -f 29/49/9 33/50/9 36/51/9 -f 25/45/10 29/49/10 32/52/10 -f 27/47/10 31/53/10 30/54/10 -f 28/5/10 32/55/10 31/56/10 -f 35/57/10 36/58/10 33/59/10 -f 31/53/8 35/60/8 34/61/8 -f 32/55/7 36/62/7 35/63/7 -f 30/42/2 34/64/2 33/65/2 -f 40/66/11 42/67/11 41/68/11 -f 42/67/12 44/69/12 43/70/12 -f 44/69/13 46/71/13 45/72/13 -f 46/71/14 48/73/14 47/74/14 -f 48/73/15 50/75/15 49/76/15 -f 50/75/16 52/77/16 51/78/16 -f 52/77/17 54/79/17 53/80/17 -f 54/79/18 56/81/18 55/82/18 -f 56/81/19 58/83/19 57/84/19 -f 58/83/20 60/85/20 59/86/20 -f 27/87/21 31/88/21 71/89/21 -f 60/85/22 62/90/22 61/91/22 -f 32/92/23 28/93/23 72/94/23 -f 62/90/24 64/95/24 63/96/24 -f 29/97/21 25/98/21 38/99/21 -f 64/95/25 66/100/25 65/101/25 -f 26/102/23 30/103/23 37/104/23 -f 66/100/26 68/105/26 67/106/26 -f 60/107/10 52/108/10 44/109/10 -f 70/110/27 40/111/27 39/112/27 -f 68/105/28 70/110/28 69/113/28 -f 1/13/1 3/1/1 2/3/1 -f 6/14/2 8/4/2 27/6/2 -f 3/1/3 7/7/3 4/2/3 -f 1/13/4 5/9/4 3/1/4 -f 2/3/5 6/11/5 1/13/5 -f 4/2/6 8/4/6 2/3/6 -f 10/24/7 12/15/7 9/17/7 -f 12/15/8 16/18/8 11/20/8 -f 16/18/2 14/21/2 15/23/2 -f 14/21/9 10/24/9 13/26/9 -f 9/114/1 11/20/1 13/27/1 -f 14/21/10 16/18/10 10/24/10 -f 18/37/9 20/28/9 17/30/9 -f 20/28/7 24/31/7 19/33/7 -f 24/31/8 22/34/8 23/36/8 -f 22/34/2 18/37/2 21/39/2 -f 17/115/1 19/33/1 21/40/1 -f 22/34/10 24/31/10 18/37/10 -f 25/44/10 26/41/10 29/43/10 -f 7/10/7 5/9/7 25/44/7 -f 8/8/8 7/7/8 28/46/8 -f 5/12/9 6/11/9 26/48/9 -f 32/52/9 29/49/9 36/51/9 -f 28/46/10 25/45/10 32/52/10 -f 26/48/10 27/47/10 30/54/10 -f 27/6/10 28/5/10 31/56/10 -f 34/116/10 35/57/10 33/59/10 -f 30/54/8 31/53/8 34/61/8 -f 31/56/7 32/55/7 35/63/7 -f 29/43/2 30/42/2 33/65/2 -f 39/117/11 40/66/11 41/68/11 -f 41/68/12 42/67/12 43/70/12 -f 43/70/13 44/69/13 45/72/13 -f 45/72/14 46/71/14 47/74/14 -f 47/74/15 48/73/15 49/76/15 -f 49/76/16 50/75/16 51/78/16 -f 51/78/17 52/77/17 53/80/17 -f 53/80/18 54/79/18 55/82/18 -f 55/82/19 56/81/19 57/84/19 -f 57/84/20 58/83/20 59/86/20 -f 59/86/22 60/85/22 61/91/22 -f 61/91/24 62/90/24 63/96/24 -f 63/96/25 64/95/25 65/101/25 -f 65/101/26 66/100/26 67/106/26 -f 44/109/10 42/118/10 68/119/10 -f 40/120/10 70/121/10 68/119/10 -f 68/119/10 66/122/10 64/123/10 -f 64/123/10 62/124/10 60/107/10 -f 60/107/10 58/125/10 52/108/10 -f 56/126/10 54/127/10 52/108/10 -f 52/108/10 50/128/10 48/129/10 -f 48/129/10 46/130/10 44/109/10 -f 42/118/10 40/120/10 68/119/10 -f 68/119/10 64/123/10 44/109/10 -f 58/125/10 56/126/10 52/108/10 -f 52/108/10 48/129/10 44/109/10 -f 44/109/10 64/123/10 60/107/10 -f 69/113/27 70/110/27 39/112/27 -f 67/106/28 68/105/28 69/113/28 diff --git a/src/main/resources/assets/hbm/models/ams_emitter.obj b/src/main/resources/assets/hbm/models/ams_emitter.obj deleted file mode 100644 index 0d4aa9ea5..000000000 --- a/src/main/resources/assets/hbm/models/ams_emitter.obj +++ /dev/null @@ -1,1490 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_emitter.blend' -# www.blender.org -o Circle -v 0.000000 5.750000 -2.500000 -v -0.956709 5.750000 -2.309699 -v -1.767767 5.750000 -1.767767 -v -2.309699 5.750000 -0.956709 -v -2.500000 5.750000 0.000000 -v -2.309699 5.750000 0.956709 -v -1.767767 5.750000 1.767767 -v -0.956709 5.750000 2.309699 -v -0.000000 5.750000 2.500000 -v 0.956708 5.750000 2.309699 -v 1.767766 5.750000 1.767768 -v 2.309699 5.750000 0.956709 -v 2.500000 5.750000 -0.000000 -v 2.309699 5.750000 -0.956709 -v 1.767766 5.750000 -1.767768 -v 0.956707 5.750000 -2.309699 -v -0.956709 4.500000 -2.309699 -v 0.000000 4.500000 -2.500000 -v -1.767767 4.500000 -1.767767 -v -2.309699 4.500000 -0.956709 -v -2.500000 4.500000 0.000000 -v -2.309699 4.500000 0.956709 -v -1.767767 4.500000 1.767767 -v -0.956709 4.500000 2.309699 -v -0.000000 4.500000 2.500000 -v 0.956708 4.500000 2.309699 -v 1.767766 4.500000 1.767768 -v 2.309699 4.500000 0.956709 -v 2.500000 4.500000 -0.000000 -v 2.309699 4.500000 -0.956709 -v 1.767766 4.500000 -1.767768 -v 0.956707 4.500000 -2.309699 -v -0.765367 3.500000 -1.847759 -v -0.000000 3.500000 -2.000000 -v -1.414214 3.500000 -1.414213 -v -1.847759 3.500000 -0.765367 -v -2.000000 3.500000 0.000000 -v -1.847759 3.500000 0.765367 -v -1.414214 3.500000 1.414214 -v -0.765367 3.500000 1.847759 -v -0.000000 3.500000 2.000000 -v 0.765366 3.500000 1.847759 -v 1.414213 3.500000 1.414214 -v 1.847759 3.500000 0.765367 -v 2.000000 3.500000 -0.000000 -v 1.847759 3.500000 -0.765367 -v 1.414213 3.500000 -1.414214 -v 0.765366 3.500000 -1.847759 -v -0.765367 1.500000 -1.847759 -v -0.000000 1.500000 -2.000000 -v -1.414214 1.500000 -1.414213 -v -1.847759 1.500000 -0.765367 -v -2.000000 1.500000 0.000000 -v -1.847759 1.500000 0.765367 -v -1.414214 1.500000 1.414214 -v -0.765367 1.500000 1.847759 -v -0.000000 1.500000 2.000000 -v 0.765366 1.500000 1.847759 -v 1.414213 1.500000 1.414214 -v 1.847759 1.500000 0.765367 -v 2.000000 1.500000 -0.000000 -v 1.847759 1.500000 -0.765367 -v 1.414213 1.500000 -1.414214 -v 0.765366 1.500000 -1.847759 -v -0.153073 0.500000 -0.369552 -v 0.000000 0.500000 -0.400000 -v -0.282843 0.500000 -0.282843 -v -0.369552 0.500000 -0.153073 -v -0.400000 0.500000 0.000000 -v -0.369552 0.500000 0.153073 -v -0.282843 0.500000 0.282843 -v -0.153073 0.500000 0.369552 -v -0.000000 0.500000 0.400000 -v 0.153073 0.500000 0.369552 -v 0.282843 0.500000 0.282843 -v 0.369552 0.500000 0.153073 -v 0.400000 0.500000 -0.000000 -v 0.369552 0.500000 -0.153073 -v 0.282843 0.500000 -0.282843 -v 0.153073 0.500000 -0.369552 -v -0.390181 2.000000 -1.961571 -v -1.961570 2.000000 -0.390181 -v -1.961571 2.000000 0.390181 -v -0.390181 2.000000 1.961571 -v 0.390180 2.000000 1.961571 -v 1.961571 2.000000 0.390181 -v 1.961571 2.000000 -0.390181 -v 0.390180 2.000000 -1.961571 -v -0.078036 1.000000 -0.392314 -v -0.392314 1.000000 -0.078036 -v -0.392314 1.000000 0.078036 -v -0.078036 1.000000 0.392314 -v 0.078036 1.000000 0.392314 -v 0.392314 1.000000 0.078036 -v 0.392314 1.000000 -0.078036 -v 0.078036 1.000000 -0.392314 -v -1.961571 1.000000 0.390181 -v -1.961570 1.000000 -0.390181 -v 0.390180 1.000000 1.961571 -v -0.390181 1.000000 1.961571 -v 1.961571 1.000000 -0.390181 -v 1.961571 1.000000 0.390181 -v -0.390181 1.000000 -1.961571 -v 0.390180 1.000000 -1.961571 -v -0.392314 0.000000 0.078036 -v -0.392314 0.000000 -0.078036 -v 0.078036 0.000000 0.392314 -v -0.078036 0.000000 0.392314 -v 0.392314 0.000000 -0.078036 -v 0.392314 0.000000 0.078036 -v -0.078036 0.000000 -0.392314 -v 0.078036 0.000000 -0.392314 -v -2.078674 2.000000 1.388925 -v -1.388925 2.000000 2.078674 -v -0.000000 1.500000 -2.250000 -v -0.000000 2.250000 -2.250000 -v 0.861038 1.500000 -2.078729 -v 0.861038 2.250000 -2.078729 -v 1.590990 1.500000 -1.590990 -v 1.590990 2.250000 -1.590990 -v 2.078729 1.500000 -0.861038 -v 2.078729 2.250000 -0.861038 -v 2.250000 1.500000 0.000000 -v 2.250000 2.250000 0.000000 -v 2.078729 1.500000 0.861038 -v 2.078729 2.250000 0.861038 -v 1.590990 1.500000 1.590990 -v 1.590990 2.250000 1.590990 -v 0.861038 1.500000 2.078729 -v 0.861038 2.250000 2.078729 -v 0.000000 1.500000 2.250000 -v 0.000000 2.250000 2.250000 -v -0.861037 1.500000 2.078729 -v -0.861037 2.250000 2.078729 -v -1.590990 1.500000 1.590991 -v -1.590990 2.250000 1.590991 -v -2.078729 1.500000 0.861038 -v -2.078729 2.250000 0.861038 -v -2.250000 1.500000 -0.000000 -v -2.250000 2.250000 -0.000000 -v -2.078729 1.500000 -0.861038 -v -2.078729 2.250000 -0.861038 -v -1.590990 1.500000 -1.590991 -v -1.590990 2.250000 -1.590991 -v -0.861037 1.500000 -2.078729 -v -0.861037 2.250000 -2.078729 -v 2.078674 2.000000 1.388926 -v 1.388926 2.000000 2.078674 -v 1.388925 2.000000 -2.078675 -v 2.078674 2.000000 -1.388926 -v -2.078675 2.000000 -1.388925 -v -1.388927 2.000000 -2.078673 -v -1.654410 3.500000 0.964661 -v -0.964661 3.500000 1.654410 -v 1.654410 3.500000 0.964662 -v 0.964662 3.500000 1.654410 -v 0.964661 3.500000 -1.654411 -v 1.654410 3.500000 -0.964662 -v -1.654411 3.500000 -0.964661 -v -0.964663 3.500000 -1.654409 -v -1.662939 0.500000 1.111140 -v -1.111140 0.500000 1.662939 -v 1.662939 0.500000 1.111141 -v 1.111140 0.500000 1.662939 -v 1.111140 0.500000 -1.662940 -v 1.662939 0.500000 -1.111141 -v -1.662940 0.500000 -1.111140 -v -1.111142 0.500000 -1.662938 -v -0.076537 0.500000 -0.184776 -v 0.000000 0.500000 -0.200000 -v -0.141421 0.500000 -0.141421 -v -0.184776 0.500000 -0.076537 -v -0.200000 0.500000 0.000000 -v -0.184776 0.500000 0.076537 -v -0.141421 0.500000 0.141421 -v -0.076537 0.500000 0.184776 -v -0.000000 0.500000 0.200000 -v 0.076537 0.500000 0.184776 -v 0.141421 0.500000 0.141421 -v 0.184776 0.500000 0.076537 -v 0.200000 0.500000 0.000000 -v 0.184776 0.500000 -0.076537 -v 0.141421 0.500000 -0.141421 -v 0.076537 0.500000 -0.184776 -v -0.076536 0.000000 -0.184776 -v 0.000000 0.000000 -0.200000 -v -0.141421 0.000000 -0.141421 -v -0.184776 0.000000 -0.076537 -v -0.200000 0.000000 0.000000 -v -0.184776 0.000000 0.076537 -v -0.141421 0.000000 0.141421 -v -0.076536 0.000000 0.184776 -v 0.000000 0.000000 0.200000 -v 0.076537 0.000000 0.184776 -v 0.141422 0.000000 0.141421 -v 0.184776 0.000000 0.076537 -v 0.200000 0.000000 0.000000 -v 0.184776 0.000000 -0.076537 -v 0.141422 0.000000 -0.141421 -v 0.076537 0.000000 -0.184776 -v -0.861038 5.750000 -2.078729 -v -0.000000 5.750000 -2.250000 -v -1.590990 5.750000 -1.590990 -v -2.078729 5.750000 -0.861038 -v -2.250000 5.750000 0.000000 -v -2.078729 5.750000 0.861038 -v -1.590990 5.750000 1.590990 -v -0.861038 5.750000 2.078729 -v -0.000000 5.750000 2.250000 -v 0.861037 5.750000 2.078729 -v 1.590990 5.750000 1.590991 -v 2.078729 5.750000 0.861038 -v 2.250000 5.750000 -0.000000 -v 2.078728 5.750000 -0.861038 -v 1.590990 5.750000 -1.590991 -v 0.861037 5.750000 -2.078729 -v -0.861038 6.000000 -2.078729 -v -0.000000 6.000000 -2.250000 -v -1.590990 6.000000 -1.590990 -v -2.078729 6.000000 -0.861038 -v -2.250000 6.000000 0.000000 -v -2.078729 6.000000 0.861038 -v -1.590990 6.000000 1.590990 -v -0.861038 6.000000 2.078729 -v -0.000000 6.000000 2.250000 -v 0.861037 6.000000 2.078729 -v 1.590990 6.000000 1.590991 -v 2.078729 6.000000 0.861038 -v 2.250000 6.000000 -0.000000 -v 2.078728 6.000000 -0.861038 -v 1.590990 6.000000 -1.590991 -v 0.861037 6.000000 -2.078729 -v -0.000000 6.000000 -1.750000 -v -0.669696 6.000000 -1.616789 -v -1.237437 6.000000 -1.237437 -v -1.616789 6.000000 -0.669696 -v -1.750000 6.000000 0.000000 -v -1.616789 6.000000 0.669696 -v -1.237437 6.000000 1.237437 -v -0.669696 6.000000 1.616789 -v -0.000000 6.000000 1.750000 -v 0.669696 6.000000 1.616789 -v 1.237437 6.000000 1.237437 -v 1.616789 6.000000 0.669696 -v 1.750000 6.000000 -0.000000 -v 1.616789 6.000000 -0.669696 -v 1.237437 6.000000 -1.237437 -v 0.669695 6.000000 -1.616789 -v -0.669696 5.750000 -1.616789 -v -0.000000 5.750000 -1.750000 -v -1.237437 5.750000 -1.237437 -v -1.616789 5.750000 -0.669696 -v -1.750000 5.750000 0.000000 -v -1.616789 5.750000 0.669696 -v -1.237437 5.750000 1.237437 -v -0.669696 5.750000 1.616789 -v -0.000000 5.750000 1.750000 -v 0.669696 5.750000 1.616789 -v 1.237437 5.750000 1.237437 -v 1.616789 5.750000 0.669696 -v 1.750000 5.750000 -0.000000 -v 1.616789 5.750000 -0.669696 -v 1.237437 5.750000 -1.237437 -v 0.669695 5.750000 -1.616789 -v -0.156250 5.750000 0.156250 -v -0.156250 6.000000 0.156250 -v -0.156250 5.750000 -0.156250 -v -0.156250 6.000000 -0.156250 -v 0.156250 5.750000 0.156250 -v 0.156250 6.000000 0.156250 -v 0.156250 5.750000 -0.156250 -v 0.156250 6.000000 -0.156250 -v -0.156250 5.750000 -0.843750 -v -0.156250 6.000000 -0.843750 -v -0.156250 5.750000 -1.156250 -v -0.156250 6.000000 -1.156250 -v 0.156250 5.750000 -0.843750 -v 0.156250 6.000000 -0.843750 -v 0.156250 5.750000 -1.156250 -v 0.156250 6.000000 -1.156250 -v -0.156250 5.750000 1.156250 -v -0.156250 6.000000 1.156250 -v -0.156250 5.750000 0.843750 -v -0.156250 6.000000 0.843750 -v 0.156250 5.750000 1.156250 -v 0.156250 6.000000 1.156250 -v 0.156250 5.750000 0.843750 -v 0.156250 6.000000 0.843750 -v 0.843750 5.750000 0.156250 -v 0.843750 6.000000 0.156250 -v 0.843750 5.750000 -0.156250 -v 0.843750 6.000000 -0.156250 -v 1.156250 5.750000 0.156250 -v 1.156250 6.000000 0.156250 -v 1.156250 5.750000 -0.156250 -v 1.156250 6.000000 -0.156250 -v -1.156250 5.750000 0.156250 -v -1.156250 6.000000 0.156250 -v -1.156250 5.750000 -0.156250 -v -1.156250 6.000000 -0.156250 -v -0.843750 5.750000 0.156250 -v -0.843750 6.000000 0.156250 -v -0.843750 5.750000 -0.156250 -v -0.843750 6.000000 -0.156250 -vt 0.575431 0.309735 -vt 0.573431 0.319789 -vt 0.537435 0.319789 -vt 0.495439 0.258482 -vt 0.455444 0.258482 -vt 0.459443 0.212815 -vt 0.495439 0.309735 -vt 0.535435 0.258482 -vt 0.215469 0.309735 -vt 0.215469 0.258482 -vt 0.255465 0.258482 -vt 0.535435 0.309735 -vt 0.575431 0.258482 -vt 0.255465 0.309735 -vt 0.295461 0.258482 -vt 0.615427 0.258482 -vt 0.295461 0.309735 -vt 0.335456 0.258482 -vt 0.015490 0.309735 -vt 0.015490 0.258482 -vt 0.055486 0.258482 -vt 0.615427 0.309735 -vt 0.655423 0.258482 -vt 0.335456 0.309735 -vt 0.375452 0.258482 -vt 0.055486 0.309735 -vt 0.095482 0.258482 -vt 0.375452 0.309735 -vt 0.415448 0.258482 -vt 0.095482 0.309735 -vt 0.135477 0.258482 -vt 0.415448 0.309735 -vt 0.135477 0.309735 -vt 0.175473 0.258482 -vt 0.455444 0.309735 -vt 0.175473 0.309735 -vt 0.047487 0.181835 -vt 0.047487 0.099830 -vt 0.079483 0.099830 -vt 0.179473 0.212815 -vt 0.499439 0.212815 -vt 0.219469 0.212815 -vt 0.251465 0.212815 -vt 0.539435 0.212815 -vt 0.571431 0.212815 -vt 0.259464 0.212815 -vt 0.291461 0.212815 -vt 0.579431 0.212815 -vt 0.611427 0.212815 -vt 0.299460 0.212815 -vt 0.331457 0.212815 -vt 0.019490 0.212815 -vt 0.051486 0.212815 -vt 0.619426 0.212815 -vt 0.339456 0.212815 -vt 0.371453 0.212815 -vt 0.059485 0.212815 -vt 0.091482 0.212815 -vt 0.379452 0.212815 -vt 0.411448 0.212815 -vt 0.099481 0.212815 -vt 0.131478 0.212815 -vt 0.419448 0.212815 -vt 0.451444 0.212815 -vt 0.139477 0.212815 -vt 0.171474 0.212815 -vt 0.207470 0.099830 -vt 0.220269 0.023533 -vt 0.226668 0.023533 -vt 0.303460 0.181835 -vt 0.303460 0.099830 -vt 0.335456 0.099830 -vt 0.079483 0.181835 -vt 0.111480 0.099830 -vt 0.335456 0.181835 -vt 0.367453 0.099830 -vt 0.111480 0.181835 -vt 0.143477 0.099830 -vt 0.367453 0.181835 -vt 0.399450 0.099830 -vt 0.143477 0.181835 -vt 0.175473 0.099830 -vt 0.431446 0.181835 -vt 0.399450 0.181835 -vt 0.175473 0.181835 -vt 0.431446 0.099830 -vt 0.463443 0.099830 -vt 0.207470 0.181835 -vt 0.239466 0.099830 -vt 0.463443 0.181835 -vt 0.495440 0.099830 -vt 0.239466 0.181835 -vt 0.271463 0.099830 -vt 0.015490 0.181835 -vt 0.015490 0.099830 -vt 0.495440 0.181835 -vt 0.527436 0.099830 -vt 0.271463 0.181835 -vt 0.284262 0.023533 -vt 0.285862 0.015490 -vt 0.289061 0.015490 -vt 0.476242 0.023533 -vt 0.252265 0.023533 -vt 0.258664 0.023533 -vt 0.028289 0.023533 -vt 0.034688 0.023533 -vt 0.508238 0.023533 -vt 0.514638 0.023533 -vt 0.060285 0.023533 -vt 0.066685 0.023533 -vt 0.316258 0.023533 -vt 0.092282 0.023533 -vt 0.098681 0.023533 -vt 0.348255 0.023533 -vt 0.124278 0.023533 -vt 0.130678 0.023533 -vt 0.380252 0.023533 -vt 0.386651 0.023533 -vt 0.156275 0.023533 -vt 0.162675 0.023533 -vt 0.412248 0.023533 -vt 0.188272 0.023533 -vt 0.194671 0.023533 -vt 0.444245 0.023533 -vt 0.450644 0.023533 -vt 0.867211 0.388654 -vt 0.943508 0.401453 -vt 0.943508 0.407852 -vt 0.878671 0.183050 -vt 0.891469 0.106753 -vt 0.897869 0.106753 -vt 0.053376 0.889796 -vt 0.066175 0.813499 -vt 0.072574 0.813499 -vt 0.053376 0.700514 -vt 0.066174 0.624218 -vt 0.072574 0.624218 -vt 0.853583 0.122432 -vt 0.053376 0.741517 -vt 0.085372 0.700514 -vt 0.927828 0.445738 -vt 0.851531 0.458537 -vt 0.867211 0.420651 -vt 0.878671 0.224052 -vt 0.910667 0.183050 -vt 0.935755 0.122432 -vt 0.948553 0.198729 -vt 0.072574 0.772497 -vt 0.028289 0.829178 -vt 0.984510 0.407852 -vt 0.028289 0.639897 -vt 0.066174 0.583215 -vt 0.072574 0.583215 -vt 0.110460 0.829178 -vt 0.123258 0.905475 -vt 0.085373 0.889796 -vt 0.897869 0.065751 -vt 0.053376 0.930798 -vt 0.110460 0.639897 -vt 0.123258 0.716194 -vt 0.927828 0.363567 -vt 0.826209 0.388654 -vt 0.823876 0.878483 -vt 0.787879 0.878483 -vt 0.787879 0.847731 -vt 0.751883 0.878483 -vt 0.751883 0.847731 -vt 0.715887 0.878483 -vt 0.715887 0.847731 -vt 0.679891 0.878483 -vt 0.679891 0.847731 -vt 0.643894 0.878483 -vt 0.643894 0.847731 -vt 0.607898 0.878483 -vt 0.607898 0.847731 -vt 0.571902 0.878483 -vt 0.571902 0.847731 -vt 0.535906 0.878483 -vt 0.535906 0.847731 -vt 0.499910 0.878483 -vt 0.499910 0.847731 -vt 0.463913 0.878483 -vt 0.463913 0.847731 -vt 0.427917 0.878483 -vt 0.427917 0.847731 -vt 0.391921 0.878483 -vt 0.391921 0.847731 -vt 0.355925 0.878483 -vt 0.355925 0.847731 -vt 0.319929 0.878483 -vt 0.319929 0.847731 -vt 0.459881 0.423253 -vt 0.568362 0.350769 -vt 0.640846 0.459249 -vt 0.283932 0.878483 -vt 0.247936 0.878483 -vt 0.247936 0.847731 -vt 0.283932 0.847731 -vt 0.415126 0.492505 -vt 0.287165 0.517959 -vt 0.389673 0.364544 -vt 0.713530 0.415475 -vt 0.753525 0.415475 -vt 0.753525 0.481717 -vt 0.861157 0.677489 -vt 0.861157 0.717485 -vt 0.794915 0.717485 -vt 0.728106 0.196700 -vt 0.728106 0.130458 -vt 0.768102 0.130458 -vt 0.289639 0.627421 -vt 0.329635 0.627421 -vt 0.329635 0.693662 -vt 0.925864 0.681488 -vt 0.925864 0.713485 -vt 0.732105 0.065751 -vt 0.764102 0.065751 -vt 0.293639 0.562714 -vt 0.325636 0.562714 -vt 0.717529 0.350769 -vt 0.749526 0.350769 -vt 0.749526 0.604806 -vt 0.717529 0.604806 -vt 0.671826 0.713485 -vt 0.671826 0.681488 -vt 0.768102 0.196700 -vt 0.764102 0.319789 -vt 0.325636 0.816751 -vt 0.293639 0.816751 -vt 0.910794 0.759188 -vt 0.686403 0.080821 -vt 0.809805 0.080821 -vt 0.289639 0.693662 -vt 0.247936 0.577784 -vt 0.371338 0.577784 -vt 0.713530 0.481717 -vt 0.671826 0.365839 -vt 0.795229 0.365839 -vt 0.794915 0.677489 -vt 0.910794 0.635786 -vt 0.596447 0.665448 -vt 0.596447 0.644947 -vt 0.599646 0.644947 -vt 0.061885 0.015490 -vt 0.065085 0.015490 -vt 0.317858 0.015490 -vt 0.321058 0.015490 -vt 0.093882 0.015490 -vt 0.097081 0.015490 -vt 0.349855 0.015490 -vt 0.353054 0.015490 -vt 0.125878 0.015490 -vt 0.129078 0.015490 -vt 0.381851 0.015490 -vt 0.385051 0.015490 -vt 0.157875 0.015490 -vt 0.161075 0.015490 -vt 0.418648 0.023533 -vt 0.413848 0.015490 -vt 0.189872 0.015490 -vt 0.193071 0.015490 -vt 0.445845 0.015490 -vt 0.221868 0.015490 -vt 0.482641 0.023533 -vt 0.477841 0.015490 -vt 0.253865 0.015490 -vt 0.257065 0.015490 -vt 0.029888 0.015490 -vt 0.509838 0.015490 -vt 0.513038 0.015490 -vt 0.622103 0.113809 -vt 0.613684 0.101210 -vt 0.618903 0.097723 -vt 0.574049 0.665448 -vt 0.574049 0.644947 -vt 0.577249 0.644947 -vt 0.622044 0.665448 -vt 0.622044 0.644947 -vt 0.625244 0.644947 -vt 0.599646 0.665448 -vt 0.602846 0.644947 -vt 0.577249 0.665448 -vt 0.580448 0.644947 -vt 0.602846 0.665448 -vt 0.606045 0.644947 -vt 0.580448 0.665448 -vt 0.583648 0.644947 -vt 0.609245 0.665448 -vt 0.606045 0.665448 -vt 0.583648 0.665448 -vt 0.586848 0.644947 -vt 0.609245 0.644947 -vt 0.612445 0.644947 -vt 0.590047 0.665448 -vt 0.586848 0.665448 -vt 0.612445 0.665448 -vt 0.615645 0.644947 -vt 0.590047 0.644947 -vt 0.593247 0.644947 -vt 0.615645 0.665448 -vt 0.618844 0.644947 -vt 0.593247 0.665448 -vt 0.618844 0.665448 -vt 0.216956 0.469500 -vt 0.206706 0.469500 -vt 0.206706 0.433504 -vt 0.293461 0.319789 -vt 0.613427 0.319789 -vt 0.333457 0.319789 -vt 0.297460 0.319789 -vt 0.053486 0.319788 -vt 0.655423 0.309735 -vt 0.653423 0.319788 -vt 0.617427 0.319789 -vt 0.373452 0.319789 -vt 0.093482 0.319789 -vt 0.057486 0.319788 -vt 0.413448 0.319789 -vt 0.377452 0.319789 -vt 0.133478 0.319789 -vt 0.097481 0.319789 -vt 0.453444 0.319789 -vt 0.417448 0.319789 -vt 0.173473 0.319789 -vt 0.493440 0.319789 -vt 0.457444 0.319789 -vt 0.213469 0.319789 -vt 0.177473 0.319789 -vt 0.533436 0.319789 -vt 0.497439 0.319789 -vt 0.253465 0.319789 -vt 0.217469 0.319789 -vt 0.030045 0.396325 -vt 0.039516 0.400247 -vt 0.025741 0.433504 -vt 0.202401 0.506679 -vt 0.192931 0.502756 -vt 0.057721 0.367546 -vt 0.064969 0.374794 -vt 0.138144 0.551455 -vt 0.134221 0.541984 -vt 0.167477 0.528209 -vt 0.174726 0.535457 -vt 0.094302 0.351549 -vt 0.098225 0.361019 -vt 0.098225 0.552235 -vt 0.098225 0.541984 -vt 0.134221 0.350769 -vt 0.134221 0.361019 -vt 0.061046 0.537679 -vt 0.064969 0.528209 -vt 0.171400 0.365324 -vt 0.167477 0.374794 -vt 0.032267 0.510004 -vt 0.039516 0.502756 -vt 0.200179 0.392999 -vt 0.192931 0.400247 -vt 0.016270 0.473423 -vt 0.025741 0.469500 -vt 0.216176 0.429581 -vt 0.015490 0.433504 -vt 0.175884 0.491366 -vt 0.156088 0.511163 -vt 0.130222 0.521877 -vt 0.102225 0.521877 -vt 0.076359 0.511163 -vt 0.056562 0.491366 -vt 0.045848 0.465500 -vt 0.045848 0.437503 -vt 0.056562 0.411637 -vt 0.076359 0.391840 -vt 0.102225 0.381126 -vt 0.130222 0.381126 -vt 0.156088 0.391840 -vt 0.175885 0.411637 -vt 0.186598 0.437503 -vt 0.186598 0.465500 -vt 0.654291 0.806500 -vt 0.654291 0.816751 -vt 0.626294 0.816751 -vt 0.432829 0.573428 -vt 0.543069 0.647088 -vt 0.512558 0.692750 -vt 0.458312 0.806500 -vt 0.458312 0.816751 -vt 0.430315 0.816751 -vt 0.682288 0.806500 -vt 0.682288 0.816751 -vt 0.486309 0.806500 -vt 0.486309 0.816751 -vt 0.710286 0.806500 -vt 0.710286 0.816751 -vt 0.514306 0.806500 -vt 0.514306 0.816751 -vt 0.738283 0.806500 -vt 0.738283 0.816751 -vt 0.542303 0.806500 -vt 0.542303 0.816751 -vt 0.766280 0.806500 -vt 0.766280 0.816751 -vt 0.570300 0.806500 -vt 0.570300 0.816751 -vt 0.794277 0.806500 -vt 0.794277 0.816751 -vt 0.598297 0.806500 -vt 0.598297 0.816751 -vt 0.822274 0.806500 -vt 0.822274 0.816751 -vt 0.626294 0.806500 -vt 0.430315 0.806500 -vt 0.402318 0.816751 -vt 0.850271 0.806500 -vt 0.850271 0.816751 -vt 0.622711 0.041116 -vt 0.612460 0.041116 -vt 0.612460 0.028303 -vt 0.622711 0.053930 -vt 0.612460 0.053930 -vt 0.622711 0.066743 -vt 0.612460 0.066743 -vt 0.622711 0.028303 -vt 0.612460 0.015490 -vt 0.164489 0.608841 -vt 0.154238 0.608841 -vt 0.154238 0.596028 -vt 0.635524 0.041116 -vt 0.164489 0.621655 -vt 0.154238 0.621655 -vt 0.164489 0.634468 -vt 0.154238 0.634468 -vt 0.164489 0.596028 -vt 0.154238 0.583215 -vt 0.177302 0.608841 -vt 0.584299 0.588340 -vt 0.574049 0.588340 -vt 0.574049 0.575527 -vt 0.584299 0.601153 -vt 0.574049 0.601153 -vt 0.584299 0.613967 -vt 0.574049 0.613967 -vt 0.584299 0.575527 -vt 0.574049 0.562714 -vt 0.597113 0.588340 -vt 0.568667 0.123349 -vt 0.558416 0.123349 -vt 0.558416 0.110536 -vt 0.568667 0.136162 -vt 0.558416 0.136162 -vt 0.568667 0.148976 -vt 0.558416 0.148976 -vt 0.568667 0.110536 -vt 0.558416 0.097723 -vt 0.581480 0.123349 -vt 0.568667 0.041116 -vt 0.558416 0.041116 -vt 0.558416 0.028303 -vt 0.568667 0.053930 -vt 0.558416 0.053930 -vt 0.568667 0.066743 -vt 0.558416 0.066743 -vt 0.568667 0.028303 -vt 0.558416 0.015490 -vt 0.581480 0.041116 -vt 0.491440 0.212815 -vt 0.211469 0.212815 -vt 0.531436 0.212815 -vt 0.651423 0.212815 -vt 0.527436 0.181835 -vt 0.290661 0.023533 -vt 0.322658 0.023533 -vt 0.354654 0.023533 -vt 0.840785 0.198729 -vt 0.085372 0.741517 -vt 0.910667 0.224052 -vt 0.066175 0.772497 -vt 0.015490 0.905475 -vt 0.984510 0.401453 -vt 0.015490 0.716194 -vt 0.891470 0.065751 -vt 0.085373 0.930798 -vt 0.851531 0.350769 -vt 0.826209 0.420651 -vt 0.823876 0.847731 -vt 0.627071 0.492505 -vt 0.601618 0.517959 -vt 0.568362 0.531734 -vt 0.532366 0.531734 -vt 0.499110 0.517959 -vt 0.473657 0.492505 -vt 0.459881 0.459249 -vt 0.473657 0.389997 -vt 0.499110 0.364544 -vt 0.532366 0.350769 -vt 0.601618 0.364544 -vt 0.627071 0.389997 -vt 0.640846 0.423253 -vt 0.261711 0.389997 -vt 0.287165 0.364544 -vt 0.320421 0.350769 -vt 0.356417 0.350769 -vt 0.415126 0.389997 -vt 0.428901 0.423253 -vt 0.428901 0.459249 -vt 0.389673 0.517959 -vt 0.356417 0.531734 -vt 0.320421 0.531734 -vt 0.261711 0.492505 -vt 0.247936 0.459249 -vt 0.247936 0.423253 -vt 0.732105 0.319789 -vt 0.417048 0.015490 -vt 0.449044 0.015490 -vt 0.225068 0.015490 -vt 0.481041 0.015490 -vt 0.033088 0.015490 -vt 0.622103 0.097723 -vt 0.625059 0.098947 -vt 0.627321 0.101210 -vt 0.628546 0.104166 -vt 0.628546 0.107366 -vt 0.627321 0.110322 -vt 0.625059 0.112584 -vt 0.618903 0.113809 -vt 0.615947 0.112584 -vt 0.613684 0.110322 -vt 0.612460 0.107366 -vt 0.612460 0.104166 -vt 0.615947 0.098947 -vt 0.625244 0.665448 -vt 0.216956 0.433504 -vt 0.257465 0.319789 -vt 0.577431 0.319789 -vt 0.017490 0.319788 -vt 0.337456 0.319789 -vt 0.137477 0.319789 -vt 0.016270 0.429581 -vt 0.216176 0.473423 -vt 0.032267 0.392999 -vt 0.171400 0.537679 -vt 0.200179 0.510004 -vt 0.061046 0.365324 -vt 0.134221 0.552235 -vt 0.098225 0.350769 -vt 0.094302 0.551455 -vt 0.138144 0.351549 -vt 0.057721 0.535457 -vt 0.174726 0.367546 -vt 0.030045 0.506679 -vt 0.202401 0.396325 -vt 0.015490 0.469500 -vt 0.486692 0.703464 -vt 0.458695 0.703464 -vt 0.432829 0.692750 -vt 0.413032 0.672953 -vt 0.402318 0.647088 -vt 0.402318 0.619091 -vt 0.413032 0.593225 -vt 0.458695 0.562714 -vt 0.486692 0.562714 -vt 0.512558 0.573428 -vt 0.532355 0.593225 -vt 0.543069 0.619090 -vt 0.532355 0.672953 -vt 0.402318 0.806500 -vt 0.622711 0.015490 -vt 0.635524 0.028303 -vt 0.164489 0.583215 -vt 0.177302 0.596028 -vt 0.584299 0.562714 -vt 0.597113 0.575527 -vt 0.568667 0.097723 -vt 0.581480 0.110536 -vt 0.568667 0.015490 -vt 0.581480 0.028303 -vn 0.000000 1.000000 0.000000 -vn 0.880600 -0.440300 0.175200 -vn 0.980800 0.000000 -0.195100 -vn -0.831500 0.000000 0.555600 -vn 0.831500 0.000000 -0.555600 -vn -0.555600 0.000000 0.831500 -vn 0.555600 0.000000 -0.831500 -vn -0.195100 0.000000 0.980800 -vn -0.195100 0.000000 -0.980800 -vn 0.195100 0.000000 -0.980800 -vn 0.195100 0.000000 0.980800 -vn -0.555600 0.000000 -0.831500 -vn 0.555600 0.000000 0.831500 -vn -0.831500 0.000000 -0.555600 -vn 0.831500 0.000000 0.555600 -vn -0.980800 0.000000 -0.195100 -vn 0.980800 0.000000 0.195100 -vn -0.980800 0.000000 0.195100 -vn -0.880600 -0.440300 0.175200 -vn 0.880600 -0.440300 -0.175200 -vn -0.746500 -0.440300 0.498800 -vn 0.746500 -0.440300 -0.498800 -vn -0.498800 -0.440300 0.746500 -vn 0.498800 -0.440300 -0.746500 -vn -0.175200 -0.440300 0.880600 -vn -0.175200 -0.440300 -0.880600 -vn 0.175200 -0.440300 -0.880600 -vn 0.175200 -0.440300 0.880600 -vn -0.498800 -0.440300 -0.746500 -vn 0.498800 -0.440300 0.746500 -vn -0.746500 -0.440300 -0.498800 -vn 0.746500 -0.440300 0.498800 -vn -0.880600 -0.440300 -0.175200 -vn -0.298600 -0.843300 0.446800 -vn 0.000000 -1.000000 0.000000 -vn 0.298600 -0.843300 -0.446800 -vn -0.104800 -0.843300 0.527100 -vn -0.104800 -0.843300 -0.527100 -vn 0.104800 -0.843300 -0.527100 -vn 0.104800 -0.843300 0.527100 -vn -0.298600 -0.843300 -0.446800 -vn 0.298600 -0.843300 0.446800 -vn -0.446800 -0.843300 -0.298600 -vn 0.446800 -0.843300 0.298600 -vn -0.527100 -0.843300 -0.104800 -vn 0.527100 -0.843300 0.104800 -vn -0.527100 -0.843300 0.104800 -vn 0.527100 -0.843300 -0.104800 -vn -0.446800 -0.843300 0.298600 -vn 0.446800 -0.843300 -0.298600 -vn -0.000000 -0.843300 0.537400 -vn 0.000000 -0.843300 -0.537400 -vn -0.537400 -0.843300 0.000000 -vn 0.537400 -0.843300 0.000000 -vn 1.000000 0.000000 0.000000 -vn -0.000000 0.000000 -1.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.656500 0.371400 -0.656500 -vn -0.656500 0.371400 -0.656500 -vn -0.656500 0.371400 0.656500 -vn 0.656500 0.371400 0.656500 -vn -0.672100 -0.310700 -0.672100 -vn -0.672100 -0.310700 0.672100 -vn 0.672100 -0.310700 0.672100 -vn 0.672100 -0.310700 -0.672100 -vn -0.706600 -0.036500 0.706600 -vn 0.706600 -0.036500 0.706600 -vn 0.706600 -0.036500 -0.706600 -vn -0.706600 -0.036500 -0.706600 -vn -0.640900 -0.035600 0.766800 -vn -0.640900 -0.035600 -0.766800 -vn 0.766800 -0.035600 0.640900 -vn -0.766800 -0.035600 0.640900 -vn 0.640900 -0.035600 -0.766800 -vn 0.640900 -0.035600 0.766800 -vn -0.766800 -0.035600 -0.640900 -vn 0.766800 -0.035600 -0.640900 -s off -f 15/1/1 215/2/1 214/3/1 -f 29/4/2 28/5/2 44/6/2 -f 13/7/3 29/4/3 30/8/3 -f 6/9/4 22/10/4 23/11/4 -f 14/12/5 30/8/5 31/13/5 -f 7/14/6 23/11/6 24/15/6 -f 15/1/7 31/13/7 32/16/7 -f 8/17/8 24/15/8 25/18/8 -f 1/19/9 18/20/9 17/21/9 -f 16/22/10 32/16/10 18/23/10 -f 9/24/11 25/18/11 26/25/11 -f 2/26/12 17/21/12 19/27/12 -f 10/28/13 26/25/13 27/29/13 -f 3/30/14 19/27/14 20/31/14 -f 11/32/15 27/29/15 28/5/15 -f 4/33/16 20/31/16 21/34/16 -f 12/35/17 28/5/17 29/4/17 -f 5/36/18 21/34/18 22/10/18 -f 33/37/12 49/38/12 51/39/12 -f 22/10/19 21/34/19 37/40/19 -f 30/8/20 29/4/20 45/41/20 -f 22/10/21 38/42/21 39/43/21 -f 30/8/22 46/44/22 47/45/22 -f 23/11/23 39/46/23 40/47/23 -f 31/13/24 47/48/24 48/49/24 -f 24/15/25 40/50/25 41/51/25 -f 18/20/26 34/52/26 33/53/26 -f 18/23/27 32/16/27 48/54/27 -f 25/18/28 41/55/28 42/56/28 -f 17/21/29 33/57/29 35/58/29 -f 26/25/30 42/59/30 43/60/30 -f 19/27/31 35/61/31 36/62/31 -f 27/29/32 43/63/32 44/64/32 -f 20/31/33 36/65/33 37/66/33 -f 55/67/34 71/68/34 72/69/34 -f 42/70/13 58/71/13 59/72/13 -f 35/73/14 51/39/14 52/74/14 -f 43/75/15 59/72/15 60/76/15 -f 36/77/16 52/74/16 53/78/16 -f 44/79/17 60/76/17 61/80/17 -f 37/81/18 53/78/18 54/82/18 -f 46/83/3 45/84/3 61/80/3 -f 38/85/4 54/82/4 55/67/4 -f 46/83/5 62/86/5 63/87/5 -f 39/88/6 55/67/6 56/89/6 -f 47/90/7 63/87/7 64/91/7 -f 40/92/8 56/89/8 57/93/8 -f 34/94/9 50/95/9 49/38/9 -f 48/96/10 64/91/10 50/97/10 -f 41/98/11 57/93/11 58/71/11 -f 73/99/35 177/100/35 178/101/35 -f 64/91/36 63/87/36 79/102/36 -f 56/89/37 72/103/37 73/104/37 -f 50/95/38 66/105/38 65/106/38 -f 64/91/39 80/107/39 66/108/39 -f 58/71/40 57/93/40 73/99/40 -f 49/38/41 65/109/41 67/110/41 -f 59/72/42 58/71/42 74/111/42 -f 51/39/43 67/112/43 68/113/43 -f 60/76/44 59/72/44 75/114/44 -f 52/74/45 68/115/45 69/116/45 -f 60/76/46 76/117/46 77/118/46 -f 53/78/47 69/119/47 70/120/47 -f 62/86/48 61/80/48 77/121/48 -f 54/82/49 70/122/49 71/123/49 -f 62/86/50 78/124/50 79/125/50 -f 100/126/51 108/127/51 107/128/51 -f 104/129/52 112/130/52 111/131/52 -f 98/132/53 106/133/53 105/134/53 -f 102/135/54 110/136/54 109/137/54 -f 96/138/17 112/130/17 104/129/17 -f 86/139/55 102/135/55 101/140/55 -f 93/141/3 85/142/3 99/143/3 -f 88/144/56 104/129/56 103/145/56 -f 89/146/18 81/147/18 103/145/18 -f 91/148/55 105/134/55 106/133/55 -f 90/149/10 106/133/10 98/132/10 -f 93/150/56 107/128/56 108/127/56 -f 94/151/8 110/136/8 102/135/8 -f 94/152/57 95/153/57 109/137/57 -f 91/154/11 83/155/11 97/156/11 -f 89/157/58 111/131/58 112/130/58 -f 82/158/57 98/132/57 97/156/57 -f 95/159/9 87/160/9 101/140/9 -f 92/161/16 108/127/16 100/126/16 -f 84/162/58 100/126/58 99/143/58 -f 116/163/10 118/164/10 117/165/10 -f 118/164/7 120/166/7 119/167/7 -f 120/166/5 122/168/5 121/169/5 -f 122/168/3 124/170/3 123/171/3 -f 124/170/17 126/172/17 125/173/17 -f 126/172/15 128/174/15 127/175/15 -f 128/174/13 130/176/13 129/177/13 -f 130/176/11 132/178/11 131/179/11 -f 132/178/8 134/180/8 133/181/8 -f 134/180/6 136/182/6 135/183/6 -f 136/182/4 138/184/4 137/185/4 -f 138/184/18 140/186/18 139/187/18 -f 140/186/16 142/188/16 141/189/16 -f 142/188/14 144/190/14 143/191/14 -f 136/192/1 128/193/1 120/194/1 -f 146/195/9 116/196/9 115/197/9 -f 144/190/12 146/195/12 145/198/12 -f 129/199/35 137/200/35 121/201/35 -f 150/202/59 149/203/59 157/204/59 -f 152/205/60 151/206/60 159/207/60 -f 153/208/61 113/209/61 114/210/61 -f 148/211/62 147/212/62 155/213/62 -f 168/214/63 167/215/63 151/206/63 -f 161/216/64 162/217/64 114/210/64 -f 164/218/65 163/219/65 147/212/65 -f 166/220/66 165/221/66 149/203/66 -f 157/204/67 165/222/67 166/223/67 -f 159/207/68 167/224/68 168/225/68 -f 153/208/69 154/226/69 162/227/69 -f 155/213/70 163/228/70 164/229/70 -f 151/206/71 167/230/71 159/207/71 -f 113/209/72 153/208/72 161/231/72 -f 114/210/73 162/232/73 154/226/73 -f 148/211/74 156/233/74 164/234/74 -f 147/212/75 163/235/75 155/213/75 -f 150/202/76 158/236/76 166/237/76 -f 149/203/77 165/238/77 157/204/77 -f 152/205/78 160/239/78 168/240/78 -f 176/241/8 192/242/8 193/243/8 -f 65/109/35 169/244/35 171/245/35 -f 74/111/35 178/246/35 179/247/35 -f 67/112/35 171/248/35 172/249/35 -f 75/114/35 179/250/35 180/251/35 -f 68/115/35 172/252/35 173/253/35 -f 76/117/35 180/254/35 181/255/35 -f 69/119/35 173/256/35 174/257/35 -f 78/258/35 77/121/35 181/259/35 -f 70/122/35 174/260/35 175/261/35 -f 79/125/35 78/124/35 182/262/35 -f 72/69/35 71/68/35 175/263/35 -f 80/264/35 79/102/35 183/265/35 -f 72/103/35 176/266/35 177/267/35 -f 65/106/35 66/105/35 170/268/35 -f 80/107/35 184/269/35 170/270/35 -f 195/271/35 189/272/35 187/273/35 -f 170/274/9 186/275/9 185/276/9 -f 184/277/10 200/278/10 186/279/10 -f 177/280/11 193/243/11 194/281/11 -f 169/282/12 185/276/12 187/283/12 -f 178/284/13 194/281/13 195/285/13 -f 171/286/14 187/283/14 188/287/14 -f 180/288/15 179/289/15 195/285/15 -f 172/290/16 188/287/16 189/291/16 -f 180/288/17 196/292/17 197/293/17 -f 174/294/18 173/295/18 189/291/18 -f 181/296/3 197/293/3 198/297/3 -f 174/294/4 190/298/4 191/299/4 -f 182/300/5 198/297/5 199/301/5 -f 175/302/6 191/299/6 192/242/6 -f 183/303/7 199/301/7 200/278/7 -f 215/304/5 231/305/5 230/306/5 -f 7/14/1 8/17/1 208/307/1 -f 15/1/1 16/22/1 216/308/1 -f 9/24/1 209/309/1 208/310/1 -f 1/19/1 2/26/1 201/311/1 -f 1/312/1 202/313/1 216/314/1 -f 9/24/1 10/28/1 210/315/1 -f 3/30/1 203/316/1 201/317/1 -f 11/32/1 211/318/1 210/319/1 -f 4/33/1 204/320/1 203/321/1 -f 12/35/1 212/322/1 211/323/1 -f 4/33/1 5/36/1 205/324/1 -f 13/7/1 213/325/1 212/326/1 -f 6/9/1 206/327/1 205/328/1 -f 14/12/1 214/329/1 213/330/1 -f 7/14/1 207/331/1 206/332/1 -f 208/333/6 224/334/6 223/335/6 -f 216/336/7 232/337/7 231/305/7 -f 209/338/8 225/339/8 224/334/8 -f 201/340/9 217/341/9 218/342/9 -f 202/343/10 218/342/10 232/337/10 -f 210/344/11 226/345/11 225/339/11 -f 203/346/12 219/347/12 217/341/12 -f 211/348/13 227/349/13 226/345/13 -f 204/350/14 220/351/14 219/347/14 -f 212/352/15 228/353/15 227/349/15 -f 205/354/16 221/355/16 220/351/16 -f 213/356/17 229/357/17 228/353/17 -f 206/358/18 222/359/18 221/355/18 -f 214/360/3 230/306/3 229/357/3 -f 207/361/4 223/335/4 222/359/4 -f 231/305/1 232/337/1 248/362/1 -f 218/342/1 233/363/1 248/362/1 -f 218/342/1 217/341/1 234/364/1 -f 219/347/1 235/365/1 234/364/1 -f 220/351/1 236/366/1 235/365/1 -f 220/351/1 221/355/1 237/367/1 -f 222/359/1 238/368/1 237/367/1 -f 222/359/1 223/335/1 239/369/1 -f 224/334/1 240/370/1 239/369/1 -f 225/339/1 241/371/1 240/370/1 -f 225/339/1 226/345/1 242/372/1 -f 226/345/1 227/349/1 243/373/1 -f 227/349/1 228/353/1 244/374/1 -f 228/353/1 229/357/1 245/375/1 -f 230/306/1 246/376/1 245/375/1 -f 231/305/1 247/377/1 246/376/1 -f 242/378/9 258/379/9 257/380/9 -f 257/381/1 263/382/1 250/383/1 -f 235/384/13 251/385/13 249/386/13 -f 243/387/12 259/388/12 258/379/12 -f 236/389/15 252/390/15 251/385/15 -f 244/391/14 260/392/14 259/388/14 -f 237/393/17 253/394/17 252/390/17 -f 245/395/16 261/396/16 260/392/16 -f 238/397/3 254/398/3 253/394/3 -f 246/399/18 262/400/18 261/396/18 -f 239/401/5 255/402/5 254/398/5 -f 247/403/4 263/404/4 262/400/4 -f 240/405/7 256/406/7 255/402/7 -f 248/407/6 264/408/6 263/404/6 -f 241/409/10 257/380/10 256/406/10 -f 234/410/11 249/386/11 250/411/11 -f 233/412/8 250/413/8 264/408/8 -f 268/414/57 267/415/57 265/416/57 -f 272/417/56 271/418/56 267/415/56 -f 270/419/55 269/420/55 271/418/55 -f 266/421/58 265/416/58 269/422/58 -f 276/423/57 275/424/57 273/425/57 -f 272/426/1 268/414/1 266/421/1 -f 280/427/56 279/428/56 275/424/56 -f 278/429/55 277/430/55 279/428/55 -f 274/431/58 273/425/58 277/432/58 -f 280/433/1 276/423/1 274/431/1 -f 284/434/57 283/435/57 281/436/57 -f 288/437/56 287/438/56 283/435/56 -f 286/439/55 285/440/55 287/438/55 -f 282/441/58 281/436/58 285/442/58 -f 288/443/1 284/434/1 282/441/1 -f 292/444/57 291/445/57 289/446/57 -f 296/447/56 295/448/56 291/445/56 -f 294/449/55 293/450/55 295/448/55 -f 290/451/58 289/446/58 293/452/58 -f 296/453/1 292/444/1 290/451/1 -f 300/454/57 299/455/57 297/456/57 -f 304/457/56 303/458/56 299/455/56 -f 302/459/55 301/460/55 303/458/55 -f 298/461/58 297/456/58 301/462/58 -f 304/463/1 300/454/1 298/461/1 -f 14/12/1 15/1/1 214/3/1 -f 45/464/2 29/4/2 44/6/2 -f 14/12/3 13/7/3 30/8/3 -f 7/14/4 6/9/4 23/11/4 -f 15/1/5 14/12/5 31/13/5 -f 8/17/6 7/14/6 24/15/6 -f 16/22/7 15/1/7 32/16/7 -f 9/24/8 8/17/8 25/18/8 -f 2/26/9 1/19/9 17/21/9 -f 1/312/10 16/22/10 18/23/10 -f 10/28/11 9/24/11 26/25/11 -f 3/30/12 2/26/12 19/27/12 -f 11/32/13 10/28/13 27/29/13 -f 4/33/14 3/30/14 20/31/14 -f 12/35/15 11/32/15 28/5/15 -f 5/36/16 4/33/16 21/34/16 -f 13/7/17 12/35/17 29/4/17 -f 6/9/18 5/36/18 22/10/18 -f 35/73/12 33/37/12 51/39/12 -f 38/465/19 22/10/19 37/40/19 -f 46/466/20 30/8/20 45/41/20 -f 23/11/21 22/10/21 39/43/21 -f 31/13/22 30/8/22 47/45/22 -f 24/15/23 23/11/23 40/47/23 -f 32/16/24 31/13/24 48/49/24 -f 25/18/25 24/15/25 41/51/25 -f 17/21/26 18/20/26 33/53/26 -f 34/467/27 18/23/27 48/54/27 -f 26/25/28 25/18/28 42/56/28 -f 19/27/29 17/21/29 35/58/29 -f 27/29/30 26/25/30 43/60/30 -f 20/31/31 19/27/31 36/62/31 -f 28/5/32 27/29/32 44/64/32 -f 21/34/33 20/31/33 37/66/33 -f 56/89/34 55/67/34 72/69/34 -f 43/75/13 42/70/13 59/72/13 -f 36/77/14 35/73/14 52/74/14 -f 44/79/15 43/75/15 60/76/15 -f 37/81/16 36/77/16 53/78/16 -f 45/84/17 44/79/17 61/80/17 -f 38/85/18 37/81/18 54/82/18 -f 62/86/3 46/83/3 61/80/3 -f 39/88/4 38/85/4 55/67/4 -f 47/90/5 46/83/5 63/87/5 -f 40/92/6 39/88/6 56/89/6 -f 48/96/7 47/90/7 64/91/7 -f 41/98/8 40/92/8 57/93/8 -f 33/37/9 34/94/9 49/38/9 -f 34/468/10 48/96/10 50/97/10 -f 42/70/11 41/98/11 58/71/11 -f 74/469/35 73/99/35 178/101/35 -f 80/264/36 64/91/36 79/102/36 -f 57/93/37 56/89/37 73/104/37 -f 49/38/38 50/95/38 65/106/38 -f 50/97/39 64/91/39 66/108/39 -f 74/469/40 58/71/40 73/99/40 -f 51/39/41 49/38/41 67/110/41 -f 75/470/42 59/72/42 74/111/42 -f 52/74/43 51/39/43 68/113/43 -f 76/471/44 60/76/44 75/114/44 -f 53/78/45 52/74/45 69/116/45 -f 61/80/46 60/76/46 77/118/46 -f 54/82/47 53/78/47 70/120/47 -f 78/258/48 62/86/48 77/121/48 -f 55/67/49 54/82/49 71/123/49 -f 63/87/50 62/86/50 79/125/50 -f 99/143/51 100/126/51 107/128/51 -f 103/145/52 104/129/52 111/131/52 -f 97/156/53 98/132/53 105/134/53 -f 101/140/54 102/135/54 109/137/54 -f 88/472/17 96/138/17 104/129/17 -f 87/473/55 86/139/55 101/140/55 -f 107/128/3 93/141/3 99/143/3 -f 81/474/56 88/144/56 103/145/56 -f 111/131/18 89/146/18 103/145/18 -f 90/475/55 91/148/55 106/133/55 -f 82/476/10 90/149/10 98/132/10 -f 92/477/56 93/150/56 108/127/56 -f 86/478/8 94/151/8 102/135/8 -f 110/136/57 94/152/57 109/137/57 -f 105/134/11 91/154/11 97/156/11 -f 96/479/58 89/157/58 112/130/58 -f 83/480/57 82/158/57 97/156/57 -f 109/137/9 95/159/9 101/140/9 -f 84/481/16 92/161/16 100/126/16 -f 85/482/58 84/162/58 99/143/58 -f 115/483/10 116/163/10 117/165/10 -f 117/165/7 118/164/7 119/167/7 -f 119/167/5 120/166/5 121/169/5 -f 121/169/3 122/168/3 123/171/3 -f 123/171/17 124/170/17 125/173/17 -f 125/173/15 126/172/15 127/175/15 -f 127/175/13 128/174/13 129/177/13 -f 129/177/11 130/176/11 131/179/11 -f 131/179/8 132/178/8 133/181/8 -f 133/181/6 134/180/6 135/183/6 -f 135/183/4 136/182/4 137/185/4 -f 137/185/18 138/184/18 139/187/18 -f 139/187/16 140/186/16 141/189/16 -f 141/189/14 142/188/14 143/191/14 -f 120/194/1 118/484/1 116/485/1 -f 116/485/1 146/486/1 120/194/1 -f 144/487/1 142/488/1 140/489/1 -f 140/489/1 138/490/1 136/192/1 -f 136/192/1 134/491/1 128/193/1 -f 132/492/1 130/493/1 128/193/1 -f 128/193/1 126/494/1 124/495/1 -f 124/495/1 122/496/1 120/194/1 -f 120/194/1 146/486/1 144/487/1 -f 144/487/1 140/489/1 120/194/1 -f 134/491/1 132/492/1 128/193/1 -f 128/193/1 124/495/1 120/194/1 -f 120/194/1 140/489/1 136/192/1 -f 145/198/9 146/195/9 115/197/9 -f 143/191/12 144/190/12 145/198/12 -f 145/497/35 115/498/35 117/499/35 -f 117/499/35 119/500/35 121/201/35 -f 121/201/35 123/501/35 125/502/35 -f 125/502/35 127/503/35 121/201/35 -f 129/199/35 131/504/35 133/505/35 -f 133/505/35 135/506/35 137/200/35 -f 137/200/35 139/507/35 141/508/35 -f 141/508/35 143/509/35 145/497/35 -f 145/497/35 117/499/35 121/201/35 -f 121/201/35 127/503/35 129/199/35 -f 129/199/35 133/505/35 137/200/35 -f 137/200/35 141/508/35 145/497/35 -f 145/497/35 121/201/35 137/200/35 -f 158/236/59 150/202/59 157/204/59 -f 160/239/60 152/205/60 159/207/60 -f 154/226/61 153/208/61 114/210/61 -f 156/233/62 148/211/62 155/213/62 -f 152/205/63 168/214/63 151/206/63 -f 113/209/64 161/216/64 114/210/64 -f 148/211/65 164/218/65 147/212/65 -f 150/202/66 166/220/66 149/203/66 -f 158/236/67 157/204/67 166/223/67 -f 160/239/68 159/207/68 168/225/68 -f 161/510/69 153/208/69 162/227/69 -f 156/233/70 155/213/70 164/229/70 -f 177/280/8 176/241/8 193/243/8 -f 67/110/35 65/109/35 171/245/35 -f 75/470/35 74/111/35 179/247/35 -f 68/113/35 67/112/35 172/249/35 -f 76/471/35 75/114/35 180/251/35 -f 69/116/35 68/115/35 173/253/35 -f 77/118/35 76/117/35 181/255/35 -f 70/120/35 69/119/35 174/257/35 -f 182/511/35 78/258/35 181/259/35 -f 71/123/35 70/122/35 175/261/35 -f 183/512/35 79/125/35 182/262/35 -f 176/513/35 72/69/35 175/263/35 -f 184/514/35 80/264/35 183/265/35 -f 73/104/35 72/103/35 177/267/35 -f 169/515/35 65/106/35 170/268/35 -f 66/108/35 80/107/35 170/270/35 -f 187/273/35 185/516/35 186/517/35 -f 186/517/35 200/518/35 199/519/35 -f 199/519/35 198/520/35 195/271/35 -f 197/521/35 196/522/35 195/271/35 -f 195/271/35 194/523/35 193/524/35 -f 193/524/35 192/525/35 195/271/35 -f 191/526/35 190/527/35 189/272/35 -f 189/272/35 188/528/35 187/273/35 -f 187/273/35 186/517/35 195/271/35 -f 198/520/35 197/521/35 195/271/35 -f 195/271/35 192/525/35 191/526/35 -f 191/526/35 189/272/35 195/271/35 -f 186/517/35 199/519/35 195/271/35 -f 169/282/9 170/274/9 185/276/9 -f 170/529/10 184/277/10 186/279/10 -f 178/284/11 177/280/11 194/281/11 -f 171/286/12 169/282/12 187/283/12 -f 179/289/13 178/284/13 195/285/13 -f 172/290/14 171/286/14 188/287/14 -f 196/292/15 180/288/15 195/285/15 -f 173/295/16 172/290/16 189/291/16 -f 181/296/17 180/288/17 197/293/17 -f 190/298/18 174/294/18 189/291/18 -f 182/300/3 181/296/3 198/297/3 -f 175/302/4 174/294/4 191/299/4 -f 183/303/5 182/300/5 199/301/5 -f 176/241/6 175/302/6 192/242/6 -f 184/277/7 183/303/7 200/278/7 -f 214/530/5 215/304/5 230/306/5 -f 207/531/1 7/14/1 208/307/1 -f 215/532/1 15/1/1 216/308/1 -f 8/17/1 9/24/1 208/310/1 -f 202/533/1 1/19/1 201/311/1 -f 16/22/1 1/312/1 216/314/1 -f 209/534/1 9/24/1 210/315/1 -f 2/26/1 3/30/1 201/317/1 -f 10/28/1 11/32/1 210/319/1 -f 3/30/1 4/33/1 203/321/1 -f 11/32/1 12/35/1 211/323/1 -f 204/535/1 4/33/1 205/324/1 -f 12/35/1 13/7/1 212/326/1 -f 5/36/1 6/9/1 205/328/1 -f 13/7/1 14/12/1 213/330/1 -f 6/9/1 7/14/1 206/332/1 -f 207/536/6 208/333/6 223/335/6 -f 215/537/7 216/336/7 231/305/7 -f 208/538/8 209/338/8 224/334/8 -f 202/539/9 201/340/9 218/342/9 -f 216/540/10 202/343/10 232/337/10 -f 209/541/11 210/344/11 225/339/11 -f 201/542/12 203/346/12 217/341/12 -f 210/543/13 211/348/13 226/345/13 -f 203/544/14 204/350/14 219/347/14 -f 211/545/15 212/352/15 227/349/15 -f 204/546/16 205/354/16 220/351/16 -f 212/547/17 213/356/17 228/353/17 -f 205/548/18 206/358/18 221/355/18 -f 213/549/3 214/360/3 229/357/3 -f 206/550/4 207/361/4 222/359/4 -f 247/377/1 231/305/1 248/362/1 -f 232/337/1 218/342/1 248/362/1 -f 233/363/1 218/342/1 234/364/1 -f 217/341/1 219/347/1 234/364/1 -f 219/347/1 220/351/1 235/365/1 -f 236/366/1 220/351/1 237/367/1 -f 221/355/1 222/359/1 237/367/1 -f 238/368/1 222/359/1 239/369/1 -f 223/335/1 224/334/1 239/369/1 -f 224/334/1 225/339/1 240/370/1 -f 241/371/1 225/339/1 242/372/1 -f 242/372/1 226/345/1 243/373/1 -f 243/373/1 227/349/1 244/374/1 -f 244/374/1 228/353/1 245/375/1 -f 229/357/1 230/306/1 245/375/1 -f 230/306/1 231/305/1 246/376/1 -f 241/409/9 242/378/9 257/380/9 -f 250/383/1 249/551/1 251/552/1 -f 251/552/1 252/553/1 253/554/1 -f 253/554/1 254/555/1 257/381/1 -f 255/556/1 256/557/1 257/381/1 -f 257/381/1 258/558/1 259/559/1 -f 259/559/1 260/560/1 257/381/1 -f 261/561/1 262/562/1 263/382/1 -f 263/382/1 264/563/1 250/383/1 -f 250/383/1 251/552/1 257/381/1 -f 254/555/1 255/556/1 257/381/1 -f 257/381/1 260/560/1 261/561/1 -f 261/561/1 263/382/1 257/381/1 -f 251/552/1 253/554/1 257/381/1 -f 234/410/13 235/384/13 249/386/13 -f 242/378/12 243/387/12 258/379/12 -f 235/384/15 236/389/15 251/385/15 -f 243/387/14 244/391/14 259/388/14 -f 236/389/17 237/393/17 252/390/17 -f 244/391/16 245/395/16 260/392/16 -f 237/393/3 238/397/3 253/394/3 -f 245/395/18 246/399/18 261/396/18 -f 238/397/5 239/401/5 254/398/5 -f 246/399/4 247/403/4 262/400/4 -f 239/401/7 240/405/7 255/402/7 -f 247/403/6 248/407/6 263/404/6 -f 240/405/10 241/409/10 256/406/10 -f 233/564/11 234/410/11 250/411/11 -f 248/407/8 233/412/8 264/408/8 -f 266/421/57 268/414/57 265/416/57 -f 268/414/56 272/417/56 267/415/56 -f 272/417/55 270/419/55 271/418/55 -f 270/565/58 266/421/58 269/422/58 -f 274/431/57 276/423/57 273/425/57 -f 270/566/1 272/426/1 266/421/1 -f 276/423/56 280/427/56 275/424/56 -f 280/427/55 278/429/55 279/428/55 -f 278/567/58 274/431/58 277/432/58 -f 278/568/1 280/433/1 274/431/1 -f 282/441/57 284/434/57 281/436/57 -f 284/434/56 288/437/56 283/435/56 -f 288/437/55 286/439/55 287/438/55 -f 286/569/58 282/441/58 285/442/58 -f 286/570/1 288/443/1 282/441/1 -f 290/451/57 292/444/57 289/446/57 -f 292/444/56 296/447/56 291/445/56 -f 296/447/55 294/449/55 295/448/55 -f 294/571/58 290/451/58 293/452/58 -f 294/572/1 296/453/1 290/451/1 -f 298/461/57 300/454/57 297/456/57 -f 300/454/56 304/457/56 299/455/56 -f 304/457/55 302/459/55 303/458/55 -f 302/573/58 298/461/58 301/462/58 -f 302/574/1 304/463/1 298/461/1 diff --git a/src/main/resources/assets/hbm/models/ams_emitter_destroyed.obj b/src/main/resources/assets/hbm/models/ams_emitter_destroyed.obj deleted file mode 100644 index dbef58503..000000000 --- a/src/main/resources/assets/hbm/models/ams_emitter_destroyed.obj +++ /dev/null @@ -1,2295 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_emitter_destroyed.blend' -# www.blender.org -o Circle -v 0.000000 5.750000 -2.500000 -v -0.956709 5.750000 -2.309699 -v -1.767767 5.750000 -1.767767 -v -2.309699 5.750000 -0.956709 -v -2.500000 5.750000 0.000000 -v -2.309699 5.750000 0.956709 -v -1.767767 5.750000 1.767767 -v -0.956709 5.750000 2.309699 -v -0.000000 5.750000 2.500000 -v 0.956708 5.750000 2.309699 -v 1.767766 5.750000 1.767768 -v 2.309699 5.750000 0.956709 -v 2.500000 5.750000 -0.000000 -v 2.309699 5.750000 -0.956709 -v 1.767766 5.750000 -1.767768 -v 0.956707 5.750000 -2.309699 -v -0.956709 4.500000 -2.309699 -v 0.000000 4.500000 -2.500000 -v -1.767767 4.500000 -1.767767 -v -2.309699 4.500000 -0.956709 -v -1.817264 2.924223 1.127516 -v -2.309699 4.500000 0.956709 -v -1.767767 4.500000 1.767767 -v -0.956709 4.500000 2.309699 -v -0.000000 4.500000 2.500000 -v 0.956708 4.500000 2.309699 -v 1.767766 4.500000 1.767768 -v 2.309699 4.500000 0.956709 -v 2.500000 4.500000 -0.000000 -v 2.309699 4.500000 -0.956709 -v 1.767766 4.500000 -1.767768 -v 0.956707 4.500000 -2.309699 -v -0.765367 3.500000 -1.847759 -v -0.000000 3.500000 -2.000000 -v -1.414214 3.500000 -1.414213 -v -1.847759 3.500000 -0.765367 -v -2.000000 3.500000 0.000000 -v -1.847759 3.500000 0.765367 -v -1.414214 3.500000 1.414214 -v -0.765367 3.500000 1.847759 -v -0.000000 3.500000 2.000000 -v 0.765366 3.500000 1.847759 -v 1.414213 3.500000 1.414214 -v 1.847759 3.500000 0.765367 -v 2.000000 3.500000 -0.000000 -v 1.847759 3.500000 -0.765367 -v 1.414213 3.500000 -1.414214 -v 0.765366 3.500000 -1.847759 -v -0.765367 1.500000 -1.847759 -v -0.000000 1.500000 -2.000000 -v -1.414214 1.500000 -1.414213 -v -1.847759 1.500000 -0.765367 -v -2.000000 1.500000 0.000000 -v -1.847759 1.500000 0.765367 -v -1.414214 1.500000 1.414214 -v -0.765367 1.500000 1.847759 -v -0.000000 1.500000 2.000000 -v 0.765366 1.500000 1.847759 -v 1.414213 1.500000 1.414214 -v 1.847759 1.500000 0.765367 -v 2.000000 1.500000 -0.000000 -v 1.847759 1.500000 -0.765367 -v 1.414213 1.500000 -1.414214 -v 0.765366 1.500000 -1.847759 -v -0.153073 0.500000 -0.369552 -v 0.000000 0.500000 -0.400000 -v -0.282843 0.500000 -0.282843 -v -0.369552 0.500000 -0.153073 -v -0.400000 0.500000 0.000000 -v -0.369552 0.500000 0.153073 -v -0.282843 0.500000 0.282843 -v -0.153073 0.500000 0.369552 -v -0.000000 0.500000 0.400000 -v 0.153073 0.500000 0.369552 -v 0.282843 0.500000 0.282843 -v 0.369552 0.500000 0.153073 -v 0.400000 0.500000 -0.000000 -v 0.369552 0.500000 -0.153073 -v 0.282843 0.500000 -0.282843 -v 0.153073 0.500000 -0.369552 -v -1.961570 2.000000 -0.390181 -v -1.961571 2.000000 0.390181 -v -0.390181 2.000000 1.961571 -v 0.390180 2.000000 1.961571 -v 1.961571 2.000000 0.390181 -v 1.961571 2.000000 -0.390181 -v -0.392314 1.000000 -0.078036 -v -0.392314 1.000000 0.078036 -v -0.078036 1.000000 0.392314 -v 0.078036 1.000000 0.392314 -v 0.392314 1.000000 0.078036 -v 0.392314 1.000000 -0.078036 -v -1.961571 1.000000 0.390181 -v -1.961570 1.000000 -0.390181 -v 0.390180 1.000000 1.961571 -v -0.390181 1.000000 1.961571 -v 1.961571 1.000000 -0.390181 -v 1.961571 1.000000 0.390181 -v -0.392314 0.000000 0.078036 -v -0.392314 0.000000 -0.078036 -v 0.078036 0.000000 0.392314 -v -0.078036 0.000000 0.392314 -v 0.392314 0.000000 -0.078036 -v 0.392314 0.000000 0.078036 -v -1.239507 -0.356666 -0.078036 -v -1.239507 -0.356666 0.078036 -v -2.078674 2.000000 1.388925 -v -1.388925 2.000000 2.078674 -v -0.000000 1.500000 -2.250000 -v -0.000000 2.250000 -2.250000 -v -0.502465 1.500000 -2.150054 -v 0.861038 2.250000 -2.078729 -v 1.590990 1.500000 -1.590990 -v 1.590990 2.250000 -1.590990 -v 2.078729 1.500000 -0.861038 -v 2.078729 2.250000 -0.861038 -v 2.250000 1.500000 0.000000 -v 2.250000 2.250000 0.000000 -v 2.078729 1.500000 0.861038 -v 2.078729 2.250000 0.861038 -v 1.590990 1.500000 1.590990 -v 1.590990 2.250000 1.590990 -v 0.861038 1.500000 2.078729 -v 0.861038 2.250000 2.078729 -v 0.000000 1.500000 2.250000 -v 0.000000 2.250000 2.250000 -v -0.861037 1.500000 2.078729 -v -0.861037 2.250000 2.078729 -v -1.590990 1.500000 1.590991 -v -1.590990 2.250000 1.590991 -v -2.078729 1.500000 0.861038 -v -2.078729 2.250000 0.861038 -v -2.250000 1.500000 -0.000000 -v -2.250000 2.250000 -0.000000 -v -2.078729 1.500000 -0.861038 -v -2.078729 2.250000 -0.861038 -v -1.590990 1.500000 -1.590991 -v -1.590990 2.250000 -1.590991 -v -0.861037 1.500000 -2.078729 -v -0.861037 2.250000 -2.078729 -v 2.078674 2.000000 1.388926 -v 1.388926 2.000000 2.078674 -v -1.568488 0.500000 1.205591 -v -1.517359 2.000000 -1.985573 -v -1.654410 3.500000 0.964661 -v -0.964661 3.500000 1.654410 -v 1.654410 3.500000 0.964662 -v 0.964662 3.500000 1.654410 -v -1.661362 1.054948 -1.084044 -v -1.068258 1.378297 -1.660441 -v -1.654411 3.500000 -0.964661 -v -0.964663 3.500000 -1.654409 -v -1.662939 0.500000 1.111140 -v -0.076536 -0.057784 -0.127896 -v 1.662939 0.500000 1.111141 -v 1.111140 0.500000 1.662939 -v -1.258276 1.294501 -1.883140 -v -1.799671 0.993336 -1.202501 -v -0.076537 0.500000 -0.184776 -v 0.000000 0.500000 -0.200000 -v -0.141421 0.500000 -0.141421 -v -0.184776 0.500000 -0.076537 -v -0.200000 0.500000 0.000000 -v -0.184776 0.500000 0.076537 -v -0.141421 0.500000 0.141421 -v -0.076537 0.500000 0.184776 -v -0.000000 0.500000 0.200000 -v 0.076537 0.500000 0.184776 -v 0.141421 0.500000 0.141421 -v 0.184776 0.500000 0.076537 -v 0.200000 0.500000 0.000000 -v 0.184776 0.500000 -0.076537 -v 0.141421 0.500000 -0.141421 -v 0.076537 0.500000 -0.184776 -v -0.076536 0.175704 -0.217247 -v 0.000000 0.170263 -0.231465 -v -0.141421 0.191199 -0.176756 -v -0.184776 0.214389 -0.116157 -v -0.200000 0.241744 -0.044676 -v -0.184776 0.269098 0.026806 -v -0.141421 0.292288 0.087405 -v -0.076536 0.307784 0.127896 -v 0.000000 0.313225 0.142114 -v 0.076537 0.307784 0.127896 -v 0.141422 0.292288 0.087405 -v 0.184776 0.269098 0.026806 -v 0.200000 0.241744 -0.044676 -v 0.184776 0.214389 -0.116157 -v 0.141422 0.191199 -0.176756 -v 0.076537 0.175704 -0.217247 -v -0.861038 5.750000 -2.078729 -v -0.000000 5.750000 -2.250000 -v -1.590990 5.750000 -1.590990 -v -2.078729 5.750000 -0.861038 -v -2.250000 5.750000 0.000000 -v -2.078729 5.750000 0.861038 -v -1.590990 5.750000 1.590990 -v -0.861038 5.750000 2.078729 -v -0.000000 5.750000 2.250000 -v 0.861037 5.750000 2.078729 -v 1.590990 5.750000 1.590991 -v 2.078729 5.750000 0.861038 -v 2.250000 5.750000 -0.000000 -v 2.078728 5.750000 -0.861038 -v 1.590990 5.750000 -1.590991 -v 0.861037 5.750000 -2.078729 -v -0.861038 5.782505 -2.078729 -v -0.000000 5.782505 -2.250000 -v -1.590990 6.000000 -1.590990 -v -2.078729 6.000000 -0.861038 -v -2.250000 6.000000 0.000000 -v -2.078729 6.000000 0.861038 -v -1.590990 6.000000 1.590990 -v -0.861038 6.000000 2.078729 -v -0.000000 6.000000 2.250000 -v 0.861037 6.000000 2.078729 -v 1.590990 6.000000 1.590991 -v 2.078729 6.000000 0.861038 -v 2.250000 6.000000 -0.000000 -v 2.078728 6.000000 -0.861038 -v 1.590990 6.000000 -1.590991 -v 0.861037 6.000000 -2.078729 -v -0.000000 6.000000 -1.750000 -v -0.669696 6.000000 -1.616789 -v -1.237437 6.000000 -1.237437 -v -1.616789 6.000000 -0.669696 -v -1.750000 6.000000 0.000000 -v -1.616789 6.000000 0.669696 -v -1.237437 6.000000 1.237437 -v -0.669696 5.780204 1.616789 -v -0.000000 5.780204 1.750000 -v 0.669696 5.842573 1.616789 -v 1.237437 5.842573 1.237437 -v 1.616789 6.000000 0.669696 -v 1.750000 6.000000 -0.000000 -v 1.616789 6.000000 -0.669696 -v 1.237437 6.000000 -1.237437 -v 0.669695 6.000000 -1.616789 -v -0.669696 5.750000 -1.616789 -v -0.000000 5.750000 -1.750000 -v -1.237437 5.750000 -1.237437 -v -1.616789 5.750000 -0.669696 -v -1.750000 5.750000 0.000000 -v -1.616789 5.750000 0.669696 -v -1.237437 5.750000 1.237437 -v -0.669696 5.750000 1.616789 -v -0.000000 5.750000 1.750000 -v 0.669696 5.750000 1.616789 -v 1.237437 5.750000 1.237437 -v 1.616789 5.750000 0.669696 -v 1.750000 5.750000 -0.000000 -v 1.616789 5.750000 -0.669696 -v 1.237437 5.750000 -1.237437 -v 0.669695 5.750000 -1.616789 -v -0.156250 5.750000 0.156250 -v -0.156250 6.000000 0.156250 -v -0.156250 5.750000 -0.156250 -v 2.214165 6.000000 0.180157 -v 0.156250 5.750000 0.156250 -v 0.156250 6.000000 0.156250 -v 0.156250 5.750000 -0.156250 -v 0.156250 6.000000 -0.156250 -v -1.845955 6.000000 0.204724 -v -2.201638 5.874164 0.243131 -v -0.129925 4.500000 -2.474156 -v -0.482343 4.500000 -2.404056 -v 2.166949 5.883944 0.417527 -v 1.792237 6.000000 0.344685 -v 0.735577 4.500000 -2.353685 -v 0.502231 4.500000 -2.400100 -v -0.156250 5.750000 1.156250 -v -0.156250 6.034361 1.152425 -v -0.156250 5.750000 0.843750 -v -0.156250 5.965639 0.847575 -v 0.156250 5.750000 1.156250 -v 0.156250 6.034361 1.152425 -v 0.156250 5.750000 0.843750 -v 0.156250 5.965639 0.847575 -v 0.843750 5.750000 0.156250 -v 0.814998 6.000000 0.120840 -v 0.843750 5.750000 -0.156250 -v 0.879160 6.000000 -0.185002 -v 1.156250 5.750000 0.156250 -v 1.120840 6.000000 0.185002 -v 1.156250 5.750000 -0.156250 -v 1.185002 6.000000 -0.120840 -v -2.152734 6.000000 0.488988 -v -2.096983 6.000000 0.769267 -v -2.220878 6.000000 0.146404 -v -2.184364 6.000000 0.329975 -v 2.129964 6.000000 0.603464 -v 0.068268 6.000000 -0.156250 -v -0.156250 6.000000 0.061606 -v -0.156250 5.893532 -0.156250 -v -1.467758 0.372828 -0.245880 -v -1.462047 0.365576 0.244211 -v -1.268867 -0.030391 -0.153106 -v -1.268174 -0.031271 0.152904 -v 0.288197 0.673280 1.448864 -v 0.345045 0.855403 1.734661 -v 0.189719 0.357792 0.953782 -v 0.242046 0.525429 1.216847 -v 1.193695 0.510675 -0.237441 -v 1.243743 0.542568 0.247396 -v 1.613379 0.778117 0.320921 -v -0.213437 0.793968 1.638253 -v 0.284380 1.007983 1.429678 -v 1.495057 0.702716 -0.297385 -v 0.193952 0.540102 0.975061 -v -0.112011 0.438574 1.080548 -v 1.251703 0.897963 0.248979 -v 1.236348 0.789783 -0.245925 -v -1.785023 2.000000 -1.717909 -v -1.990089 2.313197 -1.300340 -v -2.009995 1.752200 -1.343035 -v -1.081001 1.117261 1.661184 -v -1.222950 1.103756 1.830274 -v 0.000000 -0.063225 -0.142114 -v -0.141421 -0.042288 -0.087405 -v -0.184776 -0.019098 -0.026806 -v -0.200000 0.008256 0.044676 -v -0.184776 0.035611 0.116157 -v -0.141421 0.058801 0.176756 -v -0.076536 0.074296 0.217247 -v 0.000000 0.079737 0.231466 -v 0.076537 0.074296 0.217247 -v 0.141422 0.058801 0.176756 -v 0.184776 0.035611 0.116157 -v 0.200000 0.008256 0.044676 -v 0.184776 -0.019098 -0.026806 -v 0.141422 -0.042288 -0.087405 -v 0.076537 -0.057784 -0.127896 -v 1.203775 1.500000 -1.849719 -v 0.445675 1.500000 -2.161350 -v 0.861038 1.957726 -2.078729 -v 1.983538 2.250000 -1.003500 -v -0.598266 4.500000 -2.380997 -v -0.756367 4.500000 -2.349549 -v -0.420056 2.108799 -2.166446 -v -2.126658 5.819528 0.620081 -v 0.615602 4.163866 -2.209482 -v -0.098868 4.500000 2.480334 -v 0.191898 4.500000 2.461829 -v -0.252335 3.901679 -2.150647 -v -0.325942 5.067666 -2.435166 -v 0.771172 4.500000 2.346604 -v 1.728361 1.679400 -1.385401 -v 0.441352 4.229276 2.276848 -v -0.725799 5.020985 -2.355630 -v -0.636809 4.264381 -2.255522 -v -0.232973 1.500000 -2.203659 -v 0.778100 1.500000 -1.917303 -v 1.844631 2.250000 -1.211390 -v 0.560166 5.376772 -2.388576 -v -1.831483 6.000000 0.594018 -v -0.356622 1.500000 -2.012033 -v -0.223915 5.402997 2.455461 -v -0.230325 4.216693 2.312532 -v 1.928793 1.605317 -1.085433 -v 1.792458 2.250000 -1.289472 -v 1.670841 2.250000 -1.471485 -v -0.505658 5.531159 2.399418 -v 1.748136 2.250000 -0.989340 -v -0.353334 4.500000 2.429718 -v -0.496164 4.500000 2.401307 -v -0.675478 4.500000 2.365639 -v 0.526255 4.961836 2.395321 -v 1.613860 2.250000 -1.304303 -v -0.631390 3.849639 2.049228 -v -2.426288 4.500000 0.370577 -v -2.500000 4.827446 0.000000 -v -2.449744 4.500000 -0.252656 -v -2.415688 4.331376 0.000000 -v -2.500000 5.225605 0.000000 -v -2.500000 5.478378 0.000000 -v -1.888066 2.673901 1.198317 -v -1.757647 2.750777 1.085746 -v 1.334667 0.500000 1.439413 -v 1.184635 0.500000 1.589444 -v 0.715712 1.500000 2.107636 -v 0.529961 1.500000 2.144584 -v -2.383601 5.304533 0.585175 -v -2.438384 5.315814 -0.309762 -v -1.381086 2.803025 1.632254 -v 1.387527 1.082829 1.656022 -v 1.257675 0.781978 1.501835 -v 0.670986 2.086581 2.116533 -v 0.905353 1.130488 -1.056834 -v -0.377930 1.107692 -1.297132 -v -0.000000 1.007803 -1.212485 -v -0.000000 1.129078 -1.406524 -v 0.543040 1.136896 -1.311016 -v 0.472354 1.021451 -1.140365 -v 0.610923 1.500000 1.911089 -vt 0.906292 0.208428 -vt 0.922955 0.211757 -vt 0.922955 0.271837 -vt 0.299773 0.414340 -vt 0.300143 0.351562 -vt 0.368975 0.369037 -vt 0.740025 0.722902 -vt 0.824942 0.722529 -vt 0.825313 0.789279 -vt 0.141199 0.652187 -vt 0.226081 0.652452 -vt 0.224887 0.714379 -vt 0.740396 0.789652 -vt 0.826367 0.849839 -vt 0.140004 0.714114 -vt 0.224703 0.781190 -vt 0.741450 0.850213 -vt 0.827944 0.894990 -vt 0.225114 0.810807 -vt 0.225242 0.819992 -vt 0.164039 0.828123 -vt 0.739069 0.878743 -vt 0.739069 0.930977 -vt 0.733929 0.914097 -vt 0.139739 0.979704 -vt 0.129352 0.954982 -vt 0.139739 0.895746 -vt 0.139821 0.889584 -vt 0.165995 0.899128 -vt 0.165995 0.933396 -vt 0.714344 0.395071 -vt 0.799012 0.393268 -vt 0.799260 0.458537 -vt 0.743027 0.582656 -vt 0.827944 0.582283 -vt 0.826366 0.610503 -vt 0.714592 0.460340 -vt 0.801557 0.524276 -vt 0.741450 0.610877 -vt 0.825312 0.659751 -vt 0.804499 0.565637 -vt 0.749001 0.563459 -vt 0.740396 0.660125 -vt 0.172235 0.633790 -vt 0.669875 0.103442 -vt 0.805354 0.101079 -vt 0.805354 0.153294 -vt 0.509131 0.315980 -vt 0.578532 0.325879 -vt 0.577018 0.363976 -vt 0.300143 0.481090 -vt 0.368679 0.419259 -vt 0.507972 0.345155 -vt 0.576199 0.413520 -vt 0.368975 0.472660 -vt 0.369818 0.521108 -vt 0.506947 0.407085 -vt 0.576199 0.466969 -vt 0.301197 0.541650 -vt 0.371080 0.557229 -vt 0.527286 0.515158 -vt 0.552201 0.482309 -vt 0.577018 0.516186 -vt 0.164533 0.985784 -vt 0.156795 0.949913 -vt 0.164533 0.933396 -vt 0.224243 0.889584 -vt 0.224243 0.973520 -vt 0.213253 0.913494 -vt 0.140026 0.910152 -vt 0.599445 0.090941 -vt 0.669875 0.155658 -vt 0.426392 0.927513 -vt 0.391250 0.924118 -vt 0.391250 0.870731 -vt 0.599445 0.156210 -vt 0.671513 0.208256 -vt 0.301197 0.302314 -vt 0.369818 0.329639 -vt 0.674540 0.253231 -vt 0.616956 0.273970 -vt 0.339523 0.820630 -vt 0.412539 0.743475 -vt 0.421345 0.749417 -vt 0.371080 0.307063 -vt 0.506947 0.306465 -vt 0.505685 0.329042 -vt 0.806992 0.205893 -vt 0.504842 0.368440 -vt 0.810019 0.250867 -vt 0.504546 0.418662 -vt 0.714344 0.325924 -vt 0.712830 0.364020 -vt 0.712011 0.413564 -vt 0.504842 0.472062 -vt 0.505686 0.520510 -vt 0.712011 0.467013 -vt 0.506947 0.556631 -vt 0.712830 0.516230 -vt 0.671513 0.059559 -vt 0.806992 0.057196 -vt 0.674540 0.030690 -vt 0.810019 0.028326 -vt 0.714344 0.553722 -vt 0.321099 0.914524 -vt 0.323747 0.901087 -vt 0.329042 0.901085 -vt 0.383552 0.850337 -vt 0.431732 0.751505 -vt 0.961826 0.499406 -vt 0.961341 0.480515 -vt 0.968646 0.466050 -vt 0.506947 0.906798 -vt 0.494899 0.882695 -vt 0.494488 0.844957 -vt 0.487424 0.850364 -vt 0.435488 0.860778 -vt 0.383552 0.597215 -vt 0.421345 0.698793 -vt 0.412539 0.704729 -vt 0.008753 0.649842 -vt 0.036832 0.604572 -vt 0.119223 0.677913 -vt 0.339523 0.626899 -vt 0.406655 0.713616 -vt 0.000000 0.702528 -vt 0.113607 0.686967 -vt 0.310104 0.671334 -vt 0.404589 0.724100 -vt 0.111856 0.697504 -vt 0.114238 0.707920 -vt 0.299773 0.723754 -vt 0.406655 0.734585 -vt 0.042659 0.798153 -vt 0.011906 0.754608 -vt 0.310104 0.776180 -vt 0.120388 0.716629 -vt 0.129372 0.722305 -vt 0.692526 0.284316 -vt 0.713073 0.273970 -vt 0.713073 0.296859 -vt 0.105669 0.835433 -vt 0.112704 0.838509 -vt 0.106942 0.860374 -vt 0.459520 0.919506 -vt 0.426392 0.919506 -vt 0.444030 0.860778 -vt 0.810019 0.276895 -vt 0.810019 0.208428 -vt 0.862433 0.208658 -vt 0.185872 0.965269 -vt 0.165995 0.933341 -vt 0.185872 0.926280 -vt 0.869673 0.983025 -vt 0.869673 0.914557 -vt 0.880156 0.914604 -vt 0.827944 0.886632 -vt 0.869673 0.832840 -vt 0.869673 0.928753 -vt 0.980399 0.995377 -vt 0.980399 0.927096 -vt 0.987749 0.927703 -vt 0.227321 0.850461 -vt 0.264122 0.892187 -vt 0.227321 0.971430 -vt 0.193519 0.994561 -vt 0.185872 0.995146 -vt 0.185872 0.926864 -vt 0.667807 0.864060 -vt 0.667807 0.969105 -vt 0.618115 0.922461 -vt 0.391250 0.860778 -vt 0.391250 0.929060 -vt 0.353016 0.931980 -vt 0.562730 0.929525 -vt 0.506947 0.968276 -vt 0.506947 0.856167 -vt 0.862433 0.278080 -vt 0.862433 0.209641 -vt 0.503499 0.989049 -vt 0.494488 0.944909 -vt 0.503499 0.906798 -vt 0.097373 0.976898 -vt 0.077528 0.976898 -vt 0.088278 0.945081 -vt 0.969896 0.957480 -vt 0.969896 0.996990 -vt 0.959425 0.995089 -vt 0.804984 0.487149 -vt 0.804499 0.427075 -vt 0.855448 0.426719 -vt 0.804688 0.370574 -vt 0.855638 0.370219 -vt 0.805524 0.326249 -vt 0.856474 0.325894 -vt 0.806879 0.300847 -vt 0.857829 0.300492 -vt 0.110768 0.985375 -vt 0.097373 0.945529 -vt 0.110768 0.945081 -vt 0.858751 0.514586 -vt 0.857829 0.459217 -vt 0.908758 0.459234 -vt 0.857829 0.399087 -vt 0.908758 0.399104 -vt 0.858751 0.343350 -vt 0.909680 0.343367 -vt 0.860454 0.300492 -vt 0.911383 0.300508 -vt 0.832424 0.832840 -vt 0.829373 0.782221 -vt 0.880182 0.781696 -vt 0.827944 0.723036 -vt 0.878754 0.722511 -vt 0.890529 0.957600 -vt 0.890529 0.997827 -vt 0.883234 0.995280 -vt 0.828355 0.664295 -vt 0.830544 0.614941 -vt 0.839042 0.638919 -vt 0.879165 0.663770 -vt 0.407578 0.990763 -vt 0.391250 0.961226 -vt 0.407578 0.957054 -vt 0.892886 0.652932 -vt 0.948756 0.673506 -vt 0.883234 0.751978 -vt 0.273171 0.764492 -vt 0.292342 0.711435 -vt 0.295146 0.812717 -vt 0.810019 0.101478 -vt 0.849078 0.104921 -vt 0.877009 0.208428 -vt 0.245018 0.604572 -vt 0.295146 0.649335 -vt 0.227321 0.707774 -vt 0.978092 0.957480 -vt 0.978092 0.998296 -vt 0.969896 0.979921 -vt 0.707013 0.817416 -vt 0.707013 0.984999 -vt 0.673353 0.963179 -vt 0.980399 0.584305 -vt 0.980399 0.751978 -vt 0.951127 0.669594 -vt 0.887342 0.794286 -vt 0.923873 0.751978 -vt 0.931197 0.751978 -vt 0.139654 0.877298 -vt 0.132529 0.853733 -vt 0.139654 0.835433 -vt 0.964789 0.803557 -vt 0.973688 0.751978 -vt 0.973688 0.957480 -vt 0.052953 0.896475 -vt 0.067637 0.835433 -vt 0.077528 0.836633 -vt 0.943289 0.103951 -vt 0.979052 0.000000 -vt 0.979052 0.205706 -vt 0.877009 0.002755 -vt 0.885626 0.603379 -vt 0.947543 0.635439 -vt 0.918607 0.652932 -vt 0.707013 0.921361 -vt 0.733929 0.817416 -vt 0.733929 0.962888 -vt 0.857944 0.282865 -vt 0.844728 0.284828 -vt 0.845094 0.279950 -vt 0.321099 0.860782 -vt 0.323747 0.874216 -vt 0.318855 0.876263 -vt 0.331690 0.914520 -vt 0.333935 0.899038 -vt 0.311315 0.864876 -vt 0.315110 0.880044 -vt 0.341475 0.910426 -vt 0.337679 0.895257 -vt 0.303826 0.872437 -vt 0.313084 0.884983 -vt 0.348964 0.902864 -vt 0.339706 0.890319 -vt 0.299773 0.882315 -vt 0.313084 0.890328 -vt 0.353016 0.882297 -vt 0.353016 0.892986 -vt 0.299773 0.893005 -vt 0.315110 0.895265 -vt 0.348964 0.872422 -vt 0.339706 0.884974 -vt 0.311315 0.910436 -vt 0.303826 0.902880 -vt 0.341475 0.864865 -vt 0.337679 0.880036 -vt 0.318855 0.899043 -vt 0.331690 0.860778 -vt 0.329042 0.874214 -vt 0.333935 0.876258 -vt 0.776659 0.276227 -vt 0.776524 0.273970 -vt 0.793508 0.273970 -vt 0.689700 0.275407 -vt 0.689624 0.297858 -vt 0.685379 0.296928 -vt 0.692526 0.275970 -vt 0.692526 0.298050 -vt 0.504354 0.682976 -vt 0.500651 0.682590 -vt 0.500302 0.669489 -vt 0.685379 0.274848 -vt 0.680436 0.295403 -vt 0.506352 0.683066 -vt 0.504096 0.669514 -vt 0.680219 0.274379 -vt 0.675548 0.293515 -vt 0.651965 0.298257 -vt 0.648065 0.298543 -vt 0.650287 0.284047 -vt 0.675006 0.274070 -vt 0.671459 0.291551 -vt 0.656929 0.297813 -vt 0.653745 0.282207 -vt 0.857476 0.296968 -vt 0.839811 0.298384 -vt 0.841869 0.294804 -vt 0.662201 0.297281 -vt 0.658187 0.279932 -vt 0.857691 0.293161 -vt 0.843595 0.290044 -vt 0.666979 0.296740 -vt 0.662938 0.277568 -vt 0.857855 0.288209 -vt 0.670535 0.296273 -vt 0.667274 0.275474 -vt 0.997317 0.240801 -vt 0.980333 0.240875 -vt 0.979385 0.186371 -vt 0.789996 0.962138 -vt 0.789996 0.895364 -vt 0.806654 0.898687 -vt 0.740025 0.962138 -vt 0.740025 0.895364 -vt 0.756683 0.898687 -vt 0.939619 0.208428 -vt 0.956271 0.211754 -vt 0.956271 0.271872 -vt 0.956271 0.275240 -vt 0.956271 0.208428 -vt 0.972919 0.211764 -vt 0.789996 0.962162 -vt 0.773344 0.958835 -vt 0.773344 0.898717 -vt 0.129352 0.895746 -vt 0.129352 0.962559 -vt 0.112704 0.959222 -vt 0.944687 0.532859 -vt 0.928037 0.529511 -vt 0.928037 0.469382 -vt 0.459520 0.913240 -vt 0.476169 0.916588 -vt 0.476169 0.976716 -vt 0.928037 0.532840 -vt 0.911383 0.529485 -vt 0.911383 0.469374 -vt 0.944687 0.466050 -vt 0.961341 0.469405 -vt 0.961341 0.529516 -vt 0.773343 0.895364 -vt 0.773343 0.962130 -vt 0.756683 0.958778 -vt 0.492829 0.980006 -vt 0.823317 0.962115 -vt 0.806654 0.958774 -vt 0.939619 0.275179 -vt 0.196590 0.889584 -vt 0.213253 0.892914 -vt 0.213253 0.952993 -vt 0.997375 0.738396 -vt 0.980399 0.738391 -vt 0.980399 0.678261 -vt 0.998736 0.281437 -vt 0.981753 0.281511 -vt 0.998297 0.793765 -vt 0.981320 0.793760 -vt 0.985886 0.382338 -vt 0.983684 0.382377 -vt 0.985527 0.333008 -vt 0.991134 0.300492 -vt 0.987729 0.332970 -vt 1.000000 0.835944 -vt 0.983023 0.835939 -vt 0.985886 0.441081 -vt 0.968951 0.441376 -vt 0.997317 0.025398 -vt 0.980333 0.025473 -vt 0.981753 0.000075 -vt 0.987729 0.500254 -vt 0.970794 0.500550 -vt 0.996368 0.069721 -vt 0.979385 0.069796 -vt 0.991134 0.550850 -vt 0.974199 0.551146 -vt 0.417017 0.940788 -vt 0.417187 0.957054 -vt 0.391250 0.940354 -vt 0.309711 0.957673 -vt 0.312755 0.976426 -vt 0.299773 0.976426 -vt 0.996368 0.186296 -vt 0.979052 0.126296 -vt 0.997375 0.678266 -vt 0.981320 0.622524 -vt 0.120072 0.000000 -vt 0.179701 0.000055 -vt 0.173075 0.033626 -vt 0.235298 0.022713 -vt 0.215923 0.051557 -vt 0.277462 0.065257 -vt 0.248717 0.084647 -vt 0.299773 0.121209 -vt 0.266465 0.127857 -vt 0.299773 0.181320 -vt 0.266465 0.174610 -vt 0.276954 0.236834 -vt 0.248717 0.217788 -vt 0.902451 0.957600 -vt 0.902451 0.979843 -vt 0.890529 0.973178 -vt 0.234791 0.279300 -vt 0.179701 0.302253 -vt 0.173075 0.268669 -vt 0.120072 0.302198 -vt 0.127210 0.268227 -vt 0.064983 0.279144 -vt 0.084363 0.250296 -vt 0.022819 0.236600 -vt 0.051423 0.217320 -vt 0.000000 0.181044 -vt 0.033675 0.174109 -vt 0.000000 0.120933 -vt 0.033308 0.127643 -vt 0.417187 0.927513 -vt 0.064983 0.022953 -vt 0.083850 0.051436 -vt 0.051056 0.084465 -vt 0.126698 0.033584 -vt 0.975821 0.790345 -vt 0.979960 0.751978 -vt 0.740025 0.676437 -vt 0.557472 0.799529 -vt 0.506947 0.723261 -vt 0.874812 0.557819 -vt 0.891765 0.556782 -vt 0.891765 0.576567 -vt 0.487424 0.807226 -vt 0.493695 0.807116 -vt 0.493695 0.852805 -vt 0.033898 0.943043 -vt 0.050876 0.942599 -vt 0.050876 0.977081 -vt 0.955678 0.579057 -vt 0.945014 0.532859 -vt 0.961949 0.533099 -vt 0.353016 0.932157 -vt 0.369999 0.931980 -vt 0.369999 0.975926 -vt 0.016982 0.942599 -vt 0.033898 0.943459 -vt 0.033898 0.982902 -vt 0.443376 0.966253 -vt 0.426392 0.966232 -vt 0.322449 0.950361 -vt 0.339412 0.949682 -vt 0.339412 0.983043 -vt 0.016982 0.985223 -vt 0.000000 0.984998 -vt 0.000000 0.942599 -vt 0.386973 0.975338 -vt 0.369999 0.975617 -vt 0.369999 0.932260 -vt 0.421542 0.957054 -vt 0.423594 0.957054 -vt 0.424562 0.988664 -vt 0.945014 0.579633 -vt 0.928037 0.579627 -vt 0.928037 0.532859 -vt 0.506947 0.612203 -vt 0.504916 0.612455 -vt 0.504916 0.587053 -vt 0.196290 0.956339 -vt 0.213253 0.957040 -vt 0.213253 0.989873 -vt 0.156795 0.976760 -vt 0.139821 0.976467 -vt 0.139821 0.933396 -vt 0.035664 0.102468 -vt 0.857829 0.556856 -vt 0.874812 0.556782 -vt 0.874812 0.577936 -vt 0.914212 0.278080 -vt 0.931183 0.278549 -vt 0.931183 0.296257 -vt 0.627464 0.020756 -vt 0.734317 0.289180 -vt 0.719052 0.274270 -vt 0.734408 0.273970 -vt 0.716184 0.340210 -vt 0.719830 0.304108 -vt 0.743599 0.318533 -vt 0.982056 0.604005 -vt 0.982371 0.596090 -vt 0.991088 0.591770 -vt 0.246411 0.233091 -vt 0.230903 0.254689 -vt 0.215923 0.250817 -vt 0.425186 0.949777 -vt 0.417187 0.931291 -vt 0.425186 0.927513 -vt 0.931512 0.294107 -vt 0.931183 0.279400 -vt 0.946482 0.278080 -vt 0.821185 0.976999 -vt 0.806654 0.978390 -vt 0.806654 0.963506 -vt 0.492092 0.806922 -vt 0.487424 0.786306 -vt 0.506742 0.785962 -vt 0.879512 0.298153 -vt 0.879512 0.278700 -vt 0.897072 0.278080 -vt 0.776524 0.295426 -vt 0.755632 0.295373 -vt 0.914212 0.279316 -vt 0.914212 0.297486 -vt 0.897477 0.293550 -vt 0.918853 0.957600 -vt 0.930192 0.958099 -vt 0.931937 0.974837 -vt 0.839811 0.280457 -vt 0.839811 0.300492 -vt 0.822888 0.299097 -vt 0.879512 0.279264 -vt 0.879512 0.299062 -vt 0.862624 0.295787 -vt 0.755632 0.273970 -vt 0.734408 0.295387 -vt 0.802057 0.273970 -vt 0.802057 0.297458 -vt 0.793794 0.292483 -vt 0.996035 0.126221 -vt 0.987097 0.098864 -vt 0.946481 0.289050 -vt 0.946481 0.279250 -vt 0.961792 0.278080 -vt 0.713085 0.295657 -vt 0.917169 0.975013 -vt 0.902451 0.973796 -vt 0.902451 0.963996 -vt 0.084159 0.882028 -vt 0.106251 0.891104 -vt 0.112704 0.945081 -vt 0.093149 0.854413 -vt 0.327532 0.948583 -vt 0.322449 0.914524 -vt 0.346546 0.916270 -vt 0.961950 0.561796 -vt 0.976179 0.552895 -vt 0.976179 0.579146 -vt 0.767480 0.962130 -vt 0.767480 0.976789 -vt 0.756683 0.968410 -vt 0.948979 0.368026 -vt 0.959236 0.411935 -vt 0.911383 0.429697 -vt 0.016752 0.882433 -vt 0.011214 0.920519 -vt 0.322449 0.957673 -vt 0.299773 0.948081 -vt 0.469673 0.860778 -vt 0.492792 0.870090 -vt 0.562730 0.817416 -vt 0.604162 0.897660 -vt 0.562730 0.927391 -vt 0.132529 0.838587 -vt 0.125882 0.895746 -vt 0.112704 0.835433 -vt 0.113351 0.895746 -vt 0.806023 0.290680 -vt 0.822756 0.290680 -vt 0.822606 0.295953 -vt 0.628624 0.298763 -vt 0.625133 0.279742 -vt 0.642685 0.276076 -vt 0.165995 0.911939 -vt 0.196590 0.926280 -vt 0.457622 0.919506 -vt 0.457622 0.969372 -vt 0.443376 0.924330 -vt 0.776760 0.280166 -vt 0.793643 0.276227 -vt 0.805387 0.300492 -vt 0.805873 0.295953 -vt 0.793743 0.280166 -vt 0.793794 0.285188 -vt 0.892359 0.560742 -vt 0.893546 0.556782 -vt 0.909566 0.556782 -vt 0.776811 0.285188 -vt 0.793788 0.290528 -vt 0.891765 0.565775 -vt 0.908380 0.560742 -vt 0.776804 0.290528 -vt 0.793725 0.295373 -vt 0.907785 0.565775 -vt 0.907872 0.571114 -vt 0.776632 0.298986 -vt 0.776742 0.295373 -vt 0.892607 0.575945 -vt 0.891851 0.571114 -vt 0.805279 0.281129 -vt 0.822012 0.281129 -vt 0.822547 0.285474 -vt 0.804499 0.278305 -vt 0.821232 0.278305 -vt 0.298708 0.620718 -vt 0.295146 0.622037 -vt 0.295146 0.605891 -vt 0.805814 0.285474 -vt 0.806072 0.541651 -vt 0.857021 0.541295 -vt 0.857829 0.562849 -vt 0.134387 0.316872 -vt 0.299494 0.483426 -vt 0.146845 0.593342 -vt 0.853977 0.582283 -vt 0.883234 0.597618 -vt 0.959425 0.999327 -vt 0.948642 0.957654 -vt 0.959425 0.957480 -vt 0.916607 0.532840 -vt 0.926597 0.575159 -vt 0.911383 0.575159 -vt 0.503524 0.704309 -vt 0.503524 0.785962 -vt 0.487424 0.748365 -vt 0.799924 0.366066 -vt 0.799701 0.372713 -vt 0.764168 0.380778 -vt 0.616628 0.078130 -vt 0.642847 0.064599 -vt 0.849114 0.503598 -vt 0.805506 0.513308 -vt 0.805658 0.499283 -vt 0.991435 0.880775 -vt 0.991435 0.927096 -vt 0.980399 0.922854 -vt 0.322584 0.236807 -vt 0.492337 0.020491 -vt 0.844528 0.526030 -vt 0.140675 0.842449 -vt 0.195166 0.868398 -vt 0.142439 0.889319 -vt 0.527537 0.551831 -vt 0.578532 0.553678 -vt 0.882043 0.832840 -vt 0.882043 0.914557 -vt 0.869673 0.894041 -vt 0.504590 0.668577 -vt 0.500302 0.606584 -vt 0.504590 0.586801 -vt 0.500302 0.586801 -vt 0.500302 0.704309 -vt 0.487424 0.656182 -vt 0.294955 0.930668 -vt 0.283967 0.860504 -vt 0.294955 0.812717 -vt 0.351035 0.995061 -vt 0.339412 0.995061 -vt 0.346923 0.949682 -vt 0.435488 0.586801 -vt 0.487424 0.597242 -vt 0.470974 0.634117 -vt 0.948642 0.999297 -vt 0.936722 0.974548 -vt 0.948642 0.957480 -vt 0.739461 0.817416 -vt 0.739461 0.878743 -vt 0.733929 0.858098 -vt 0.980399 0.876931 -vt 0.991874 0.835944 -vt 0.991874 0.880775 -vt 0.623244 0.273970 -vt 0.623244 0.302194 -vt 0.602068 0.275171 -vt 0.599445 0.291588 -vt 0.841413 0.040271 -vt 0.877009 0.205437 -vt 0.921726 0.019310 -vt 0.943289 0.205437 -vt 0.860454 0.556765 -vt 0.871175 0.547459 -vt 0.298807 0.930668 -vt 0.298807 0.971110 -vt 0.283967 0.970729 -vt 0.408369 0.635062 -vt 0.433639 0.640898 -vt 0.465743 0.645842 -vt 0.442119 0.698798 -vt 0.139821 0.782147 -vt 0.110332 0.789266 -vt 0.906292 0.275183 -vt 0.139821 0.780925 -vt 0.743027 0.895364 -vt 0.155084 0.809978 -vt 0.225469 0.836356 -vt 0.225557 0.842714 -vt 0.224954 0.799276 -vt 0.716889 0.526080 -vt 0.739284 0.581891 -vt 0.720886 0.582283 -vt 0.783375 0.580952 -vt 0.756406 0.581526 -vt 0.143222 0.604572 -vt 0.227321 0.623281 -vt 0.178832 0.604683 -vt 0.205869 0.604768 -vt 0.161667 0.604630 -vt 0.521443 0.302314 -vt 0.506947 0.473897 -vt 0.302775 0.586801 -vt 0.507972 0.535418 -vt 0.507593 0.512697 -vt 0.507440 0.503512 -vt 0.507866 0.529060 -vt 0.507249 0.491981 -vt 0.426392 0.860778 -vt 0.601493 0.221959 -vt 0.604277 0.263330 -vt 0.968646 0.515290 -vt 0.506947 0.817416 -vt 0.442119 0.749422 -vt 0.087577 0.826535 -vt 0.454577 0.861912 -vt 0.862433 0.277126 -vt 0.880156 0.983071 -vt 0.827944 0.982545 -vt 0.987749 0.995985 -vt 0.283967 0.933687 -vt 0.283967 0.812717 -vt 0.283967 0.878351 -vt 0.283967 0.906846 -vt 0.193519 0.926280 -vt 0.618115 0.817416 -vt 0.353016 0.863699 -vt 0.906292 0.276867 -vt 0.855934 0.486793 -vt 0.909680 0.514603 -vt 0.883234 0.832315 -vt 0.880076 0.643217 -vt 0.881353 0.614416 -vt 0.880761 0.627770 -vt 0.949514 0.751978 -vt 0.230125 0.809056 -vt 0.228581 0.753277 -vt 0.229049 0.770179 -vt 0.837950 0.204984 -vt 0.253922 0.605074 -vt 0.667807 0.817815 -vt 0.949514 0.631068 -vt 0.968231 0.579665 -vt 0.936722 0.957600 -vt 0.883234 0.957600 -vt 0.936722 0.855793 -vt 0.959498 0.791828 -vt 0.953330 0.809153 -vt 0.077528 1.000000 -vt 0.944440 0.582283 -vt 0.717064 0.969098 -vt 0.857944 0.277942 -vt 0.506352 0.668577 -vt 0.670535 0.273970 -vt 0.972919 0.271896 -vt 0.112704 0.899091 -vt 0.459520 0.980049 -vt 0.928037 0.466050 -vt 0.944687 0.532840 -vt 0.492829 0.913240 -vt 0.823317 0.895364 -vt 0.196590 0.956339 -vt 0.974199 0.300787 -vt 0.998736 0.000000 -vt 0.998297 0.622529 -vt 0.022819 0.065419 -vt 0.977867 0.790345 -vt 0.506947 0.676493 -vt 0.524689 0.633280 -vt 0.557472 0.600202 -vt 0.600305 0.582294 -vt 0.646668 0.582283 -vt 0.689501 0.600170 -vt 0.722283 0.633233 -vt 0.740025 0.723206 -vt 0.722283 0.766419 -vt 0.689500 0.799497 -vt 0.646667 0.817405 -vt 0.600305 0.817416 -vt 0.524689 0.766466 -vt 0.874812 0.577605 -vt 0.487424 0.852914 -vt 0.033898 0.977524 -vt 0.961950 0.579146 -vt 0.353016 0.976102 -vt 0.016982 0.982042 -vt 0.443376 0.919527 -vt 0.322449 0.983722 -vt 0.016982 0.942825 -vt 0.386973 0.931980 -vt 0.407578 0.988664 -vt 0.506947 0.586801 -vt 0.196290 0.989172 -vt 0.156795 0.933689 -vt 0.006826 0.104326 -vt 0.018044 0.077034 -vt 0.857829 0.578011 -vt 0.914212 0.295788 -vt 0.601493 0.036087 -vt 0.604402 0.008341 -vt 0.605276 0.000000 -vt 0.603479 0.017143 -vt 0.804499 0.302305 -vt 0.802766 0.319455 -vt 0.800852 0.338406 -vt 0.803656 0.310649 -vt 0.981502 0.617956 -vt 0.982734 0.586953 -vt 0.983023 0.579665 -vt 1.000000 0.579671 -vt 0.994052 0.610534 -vt 0.260796 0.253108 -vt 0.253009 0.260951 -vt 0.269785 0.244055 -vt 0.239284 0.274774 -vt 0.946482 0.297512 -vt 0.821185 0.962115 -vt 0.506742 0.807116 -vt 0.897072 0.297533 -vt 0.917169 0.974837 -vt 0.822756 0.277942 -vt 0.979285 0.086698 -vt 0.979121 0.114474 -vt 0.961792 0.295150 -vt 0.957155 0.295505 -vt 0.734321 0.295657 -vt 0.713073 0.274270 -vt 0.913025 0.957600 -vt 0.917169 0.957943 -vt 0.077528 0.929698 -vt 0.346546 0.949682 -vt 0.968951 0.466050 -vt 0.968951 0.419821 -vt 0.968951 0.336844 -vt 0.968951 0.379058 -vt 0.968951 0.398162 -vt 0.968951 0.355527 -vt 0.049344 0.927103 -vt 0.052953 0.942599 -vt 0.017398 0.835433 -vt 0.027989 0.835433 -vt 0.036921 0.873776 -vt 0.041106 0.891741 -vt 0.044797 0.907586 -vt 0.304876 0.914578 -vt 0.492911 0.913240 -vt 0.618115 0.966717 -vt 0.618115 0.910556 -vt 0.618115 0.856743 -vt 0.618115 0.889436 -vt 0.646176 0.279878 -vt 0.648065 0.284827 -vt 0.648065 0.290172 -vt 0.646176 0.295097 -vt 0.642685 0.298854 -vt 0.638123 0.300870 -vt 0.633186 0.300838 -vt 0.625133 0.294962 -vt 0.623244 0.290012 -vt 0.623244 0.284668 -vt 0.628624 0.275986 -vt 0.633186 0.273970 -vt 0.638123 0.274002 -vt 0.822121 0.300492 -vt 0.793615 0.298986 -vt 0.908627 0.575945 -vt 0.298708 0.604572 -vt 0.827449 0.582144 -vt 0.807594 0.582283 -vt 0.136079 0.604567 -vt 0.119960 0.604572 -vt 0.072579 0.571842 -vt 0.045143 0.561623 -vt 0.022798 0.539076 -vt 0.091472 0.592671 -vt 0.179533 0.604552 -vt 0.154725 0.604560 -vt 0.000000 0.483530 -vt 0.000000 0.423399 -vt 0.022798 0.367837 -vt 0.064922 0.325304 -vt 0.119960 0.302273 -vt 0.130015 0.302270 -vt 0.142867 0.302265 -vt 0.179533 0.302253 -vt 0.234572 0.325245 -vt 0.276696 0.367749 -vt 0.299494 0.423295 -vt 0.276696 0.538988 -vt 0.234572 0.581521 -vt 0.834176 0.582487 -vt 0.761774 0.357916 -vt 0.799397 0.381779 -vt 0.800602 0.345857 -vt 0.600212 0.070389 -vt 0.600460 0.063743 -vt 0.599874 0.079454 -vt 0.601215 0.043537 -vt 0.534484 0.022998 -vt 0.576634 0.065507 -vt 0.515090 0.025297 -vt 0.599445 0.121056 -vt 0.599445 0.181187 -vt 0.576634 0.236747 -vt 0.534484 0.279276 -vt 0.479413 0.302300 -vt 0.419805 0.302314 -vt 0.364734 0.279316 -vt 0.299773 0.121127 -vt 0.322584 0.065568 -vt 0.364734 0.023038 -vt 0.419805 0.000014 -vt 0.479413 0.000000 -vt 0.505845 0.011038 -vt 0.490161 0.004488 -vt 0.525468 0.019233 -vt 0.511736 0.013498 -vt 0.805197 0.497786 -vt 0.805894 0.532728 -vt 0.805622 0.519138 -vt 0.227321 0.889584 -vt 0.226979 0.880495 -vt 0.225911 0.852115 -vt 0.509864 0.582283 -vt 0.508351 0.544818 -vt 0.509497 0.573194 -vt 0.434095 0.627569 -vt 0.845762 0.000000 -vt 0.858420 0.001116 -vt 0.849924 0.000367 -vt 0.936491 0.000000 -vt 0.883467 0.000000 -vt 0.929429 0.000000 -vt 0.915012 0.000000 -vt 0.911096 0.549663 -vt 0.911383 0.556782 -vt 0.910728 0.540564 -vt 0.431732 0.696710 -vt 0.139821 0.795002 -vt 0.139821 0.835433 -vt 0.139821 0.724085 -vn 0.000000 1.000000 0.000000 -vn 0.880600 -0.440300 0.175200 -vn 0.980800 0.000000 -0.195100 -vn -0.831500 0.000000 0.555600 -vn 0.831500 0.000000 -0.555600 -vn -0.555600 0.000000 0.831500 -vn 0.555600 0.000000 -0.831500 -vn -0.195100 -0.000000 0.980800 -vn 0.564200 -0.042700 -0.824500 -vn 0.820200 -0.046700 -0.570200 -vn -0.085700 -0.149400 0.985100 -vn -0.555600 0.000000 -0.831500 -vn 0.555600 0.000000 0.831500 -vn -0.831500 0.000000 -0.555600 -vn 0.831500 0.000000 0.555600 -vn -0.980800 -0.000000 -0.195100 -vn 0.980800 0.000000 0.195100 -vn -0.980800 0.000000 0.195100 -vn -0.880600 -0.440300 0.175200 -vn 0.880600 -0.440300 -0.175200 -vn -0.746500 -0.440300 0.498800 -vn 0.746500 -0.440300 -0.498800 -vn -0.498800 -0.440300 0.746500 -vn 0.498800 -0.440300 -0.746500 -vn -0.175200 -0.440300 0.880600 -vn -0.806300 -0.169800 -0.566500 -vn -0.566700 -0.145600 -0.811000 -vn 0.440800 -0.192900 0.876700 -vn -0.498800 -0.440300 -0.746500 -vn 0.498800 -0.440300 0.746500 -vn -0.746500 -0.440300 -0.498800 -vn 0.746500 -0.440300 0.498800 -vn -0.880600 -0.440300 -0.175200 -vn -0.298600 -0.843300 0.446800 -vn -0.195100 0.000000 -0.980800 -vn 0.195100 -0.000000 -0.980800 -vn 0.195100 -0.000000 0.980800 -vn 0.000000 -1.000000 0.000000 -vn -0.104800 -0.843300 0.527100 -vn 0.153300 -0.233500 -0.960200 -vn 0.030200 -0.995500 -0.090300 -vn 0.104800 -0.843300 0.527100 -vn -0.298600 -0.843300 -0.446800 -vn 0.298600 -0.843300 0.446800 -vn -0.446800 -0.843300 -0.298600 -vn 0.446800 -0.843300 0.298600 -vn -0.527100 -0.843300 -0.104800 -vn 0.527100 -0.843300 0.104800 -vn -0.527100 -0.843300 0.104800 -vn 0.527100 -0.843300 -0.104800 -vn -0.446800 -0.843300 0.298600 -vn 0.446800 -0.843300 -0.298600 -vn 0.364700 0.057400 0.929400 -vn -0.996100 -0.087800 0.000000 -vn 0.537400 -0.843300 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.176100 -0.865900 -0.468200 -vn 0.000000 -0.000000 -1.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.479900 -0.179300 -0.858800 -vn 0.551100 -0.364600 -0.750600 -vn 0.936900 0.142600 0.319300 -vn -0.880000 -0.074200 0.469200 -vn 0.081700 0.156300 -0.984300 -vn 0.146700 -0.352500 -0.924200 -vn -0.667100 0.386400 -0.636900 -vn -0.656500 0.371400 0.656500 -vn 0.656500 0.371400 0.656500 -vn -0.672100 -0.310700 0.672100 -vn 0.932900 -0.302400 -0.195600 -vn 0.706600 -0.036500 0.706600 -vn -0.640900 -0.035600 0.766800 -vn 0.706600 -0.036500 -0.706600 -vn -0.364800 -0.295100 0.883100 -vn -0.640900 -0.035600 -0.766800 -vn 0.766800 -0.035600 0.640900 -vn -0.766800 -0.035600 0.640900 -vn 0.640900 -0.035600 -0.766800 -vn -0.678500 -0.356100 -0.642600 -vn 0.563200 -0.025100 -0.826000 -vn -0.156000 -0.280300 0.947200 -vn 0.555600 0.297200 0.776600 -vn -0.175400 0.093500 -0.980000 -vn 0.194200 0.097700 -0.976100 -vn 0.186700 -0.290800 0.938400 -vn -0.512700 0.085500 -0.854300 -vn 0.539500 -0.238900 0.807400 -vn -0.798800 0.068400 -0.597700 -vn 0.822900 -0.143000 0.549900 -vn -0.975200 0.030400 -0.219300 -vn 0.979900 -0.042000 0.194900 -vn -0.974200 -0.038400 0.222200 -vn 0.980200 0.033700 -0.195000 -vn -0.781800 -0.131300 0.609600 -vn 0.829000 0.076800 -0.553900 -vn -0.477800 -0.221100 0.850200 -vn 0.553100 0.094700 -0.827700 -vn 0.179600 0.869200 0.460700 -vn -0.434300 0.615300 -0.657900 -vn -0.150600 0.906500 -0.394300 -vn -0.079100 0.914100 -0.397600 -vn -0.261100 0.542300 0.798600 -vn 0.472500 0.855600 -0.211400 -vn 0.079800 0.912500 -0.401100 -vn -0.059600 0.952100 -0.299800 -vn -0.169800 0.952100 -0.254100 -vn 0.342800 0.826000 -0.447400 -vn 0.175200 -0.440300 -0.880600 -vn -0.392000 0.826600 -0.403900 -vn -0.285000 0.570600 -0.770100 -vn 0.000000 0.017700 -0.999800 -vn 0.000000 0.013500 0.999900 -vn 0.000000 0.975500 -0.219900 -vn -0.972300 0.114300 -0.204000 -vn 0.204000 0.114300 -0.972300 -vn 0.972300 0.114300 0.204000 -vn -0.204000 0.114300 0.972300 -vn -0.123800 0.592800 0.795800 -vn -0.785700 -0.618600 -0.000000 -vn -0.898400 -0.439100 0.000800 -vn 0.999400 -0.022300 -0.026100 -vn 0.277600 -0.954000 -0.113100 -vn 0.358000 -0.116400 0.926400 -vn 0.000000 -0.843300 0.537400 -vn -0.341200 -0.923000 0.177900 -vn 0.445300 -0.894300 -0.043500 -vn 0.439800 -0.896900 -0.047000 -vn -0.831500 -0.198600 -0.518900 -vn 0.000000 -0.934000 0.357400 -vn -0.874600 0.067600 -0.480200 -vn 0.549700 -0.731700 0.403100 -vn 0.831500 0.198600 0.518900 -vn -0.980800 -0.069700 -0.182200 -vn 0.980800 0.069700 0.182200 -vn -0.980800 0.069700 0.182200 -vn 0.980800 -0.069700 -0.182200 -vn -0.831500 0.198600 0.518900 -vn 0.831500 -0.198600 -0.518900 -vn -0.555600 0.297200 0.776600 -vn 0.555600 -0.297200 -0.776600 -vn -0.195100 0.350500 0.916000 -vn -0.195100 -0.350500 -0.916000 -vn 0.195100 -0.350500 -0.916000 -vn 0.195100 0.350500 0.916000 -vn -0.555600 -0.297200 -0.776600 -vn 0.683000 -0.111900 -0.721800 -vn -0.819800 -0.219600 -0.529000 -vn -0.726500 -0.205800 -0.655600 -vn -0.175200 -0.440300 -0.880600 -vn 0.899700 0.193900 0.391000 -vn -0.059500 0.130800 -0.989600 -vn 0.175200 -0.440300 0.880600 -vn -0.714800 -0.079800 0.694800 -vn 0.551900 -0.102700 0.827600 -vn -0.928500 -0.007900 0.371200 -vn 0.878600 -0.159400 0.450100 -vn -0.382200 0.907000 0.176600 -vn 0.104800 -0.843300 -0.527100 -vn -0.899000 -0.435200 0.049500 -vn -0.729900 0.681500 0.053300 -vn -0.741600 -0.386900 0.548000 -vn -0.984700 -0.167400 0.048000 -vn -0.985600 -0.167500 0.021100 -vn 0.672100 -0.310700 0.672100 -vn -0.706600 -0.036500 -0.706600 -vn 0.924400 -0.206900 0.320500 -vn -0.104800 -0.843300 -0.527100 -vn 0.298600 -0.843300 -0.446800 -vn 0.183600 0.023800 -0.982700 -vn 0.030600 -0.997200 -0.068700 -vn -0.996000 -0.089200 0.002000 -vn -0.656500 0.371400 -0.656500 -vn -0.637500 0.432600 -0.637500 -vn -0.664800 -0.340700 -0.664800 -vn -0.672100 -0.310700 -0.672100 -vn 0.718500 0.165800 -0.675500 -vn -0.186700 -0.290800 0.938400 -vn -0.194200 0.097700 -0.976100 -vn 0.175400 0.093500 -0.980000 -vn 0.156000 -0.280300 0.947200 -vn -0.553100 0.094700 -0.827700 -vn 0.477800 -0.221100 0.850200 -vn -0.829000 0.076800 -0.553900 -vn 0.781800 -0.131300 0.609600 -vn -0.980200 0.033700 -0.195000 -vn 0.974200 -0.038400 0.222200 -vn -0.979900 -0.042000 0.194900 -vn 0.975200 0.030400 -0.219300 -vn -0.822900 -0.143000 0.549900 -vn 0.798800 0.068400 -0.597700 -vn -0.539500 -0.238900 0.807400 -vn 0.512700 0.085500 -0.854300 -vn -0.011800 0.906500 -0.421900 -vn -0.163100 0.903200 -0.397000 -vn -0.397400 0.917600 -0.011100 -vn -0.993500 -0.114300 0.000000 -vn 0.000000 -0.114300 -0.993500 -vn 0.993500 -0.114300 0.000000 -vn 0.000000 -0.114300 0.993500 -vn -0.897200 -0.441600 0.003900 -vn 0.984000 -0.153200 -0.091500 -vn -0.273200 -0.938000 0.213500 -vn 0.000000 -0.933900 0.357400 -s off -f 15/1/1 205/2/1 204/3/1 -f 29/4/2 28/5/2 44/6/2 -f 13/7/3 29/8/3 30/9/3 -f 6/10/4 22/11/4 23/12/4 -f 14/13/5 30/9/5 31/14/5 -f 7/15/6 23/12/6 24/16/6 -f 15/17/7 31/14/7 32/18/7 -f 365/19/8 364/20/8 357/21/8 -f 349/22/9 350/23/9 338/24/9 -f 341/25/10 270/26/10 354/27/10 -f 348/28/11 346/29/11 367/30/11 -f 2/31/12 17/32/12 19/33/12 -f 10/34/13 26/35/13 27/36/13 -f 3/37/14 19/33/14 20/38/14 -f 11/39/15 27/36/15 28/40/15 -f 20/38/16 372/41/16 383/42/16 -f 12/43/17 28/40/17 29/8/17 -f 6/10/18 382/44/18 22/11/18 -f 33/45/12 49/46/12 51/47/12 -f 370/48/19 37/49/19 38/50/19 -f 30/51/20 29/4/20 45/52/20 -f 22/53/21 38/50/21 39/54/21 -f 30/51/22 46/55/22 47/56/22 -f 23/57/23 39/54/23 40/58/23 -f 31/59/24 47/56/24 48/60/24 -f 358/61/25 369/62/25 41/63/25 -f 349/64/26 337/65/26 350/66/26 -f 341/67/27 354/68/27 269/69/27 -f 348/28/28 367/30/28 343/70/28 -f 17/71/29 33/45/29 35/72/29 -f 26/73/30 42/74/30 43/75/30 -f 19/76/31 35/72/31 36/77/31 -f 27/78/32 43/79/32 44/6/32 -f 36/77/33 37/80/33 373/81/33 -f 55/82/34 71/83/34 72/84/34 -f 42/85/13 58/86/13 59/87/13 -f 35/72/14 51/47/14 52/88/14 -f 43/79/15 59/87/15 60/89/15 -f 36/77/16 52/88/16 53/90/16 -f 44/6/17 60/89/17 61/91/17 -f 37/49/18 53/92/18 54/93/18 -f 46/55/3 45/52/3 61/91/3 -f 38/50/4 54/93/4 55/94/4 -f 46/55/5 62/95/5 63/96/5 -f 39/54/6 55/94/6 56/97/6 -f 47/56/7 63/96/7 64/98/7 -f 40/58/8 56/97/8 57/99/8 -f 34/100/35 50/101/35 49/46/35 -f 48/102/36 64/103/36 50/101/36 -f 41/63/37 57/99/37 58/104/37 -f 73/105/38 167/106/38 168/107/38 -f 56/108/39 72/84/39 73/109/39 -f 393/110/40 390/111/40 389/112/40 -f 389/113/41 391/114/41 392/115/41 -f 58/116/42 57/117/42 73/109/42 -f 49/118/43 65/119/43 67/120/43 -f 59/121/44 58/122/44 74/123/44 -f 51/124/45 67/120/45 68/125/45 -f 60/126/46 59/121/46 75/127/46 -f 52/128/47 68/125/47 69/129/47 -f 60/126/48 76/130/48 77/131/48 -f 53/132/49 69/129/49 70/133/49 -f 62/134/50 61/135/50 77/131/50 -f 54/136/51 70/133/51 71/83/51 -f 62/134/52 78/137/52 79/138/52 -f 306/139/53 299/140/53 307/141/53 -f 105/142/54 106/143/54 298/144/54 -f 303/145/55 304/146/55 104/147/55 -f 85/148/56 98/149/56 97/150/56 -f 306/151/57 307/152/57 300/153/57 -f 88/154/56 99/155/56 100/156/56 -f 87/157/36 100/158/36 94/159/36 -f 90/160/58 101/161/58 102/162/58 -f 91/163/8 311/164/8 85/165/8 -f 91/166/59 92/167/59 103/168/59 -f 88/169/37 82/170/37 93/171/37 -f 81/172/59 94/173/59 93/174/59 -f 89/175/16 102/176/16 96/177/16 -f 83/178/60 96/179/60 95/1/60 -f 344/180/61 266/181/61 345/182/61 -f 352/183/62 334/184/62 335/185/62 -f 347/186/63 361/187/63 368/188/63 -f 116/189/3 118/190/3 117/191/3 -f 118/190/17 120/192/17 119/193/17 -f 120/192/15 122/194/15 121/195/15 -f 122/194/13 124/196/13 123/197/13 -f 387/198/64 394/199/64 380/200/64 -f 126/201/8 128/202/8 127/203/8 -f 128/202/6 130/204/6 129/205/6 -f 130/204/4 132/206/4 131/207/4 -f 132/206/18 134/208/18 133/209/18 -f 134/210/16 136/211/16 135/212/16 -f 136/211/14 138/213/14 137/214/14 -f 347/215/65 368/216/65 360/217/65 -f 140/218/35 110/219/35 339/220/35 -f 138/213/12 140/218/12 139/221/12 -f 335/222/66 333/223/66 352/224/66 -f 144/225/67 314/226/67 152/227/67 -f 384/228/68 108/229/68 146/230/68 -f 142/231/69 141/232/69 147/233/69 -f 153/234/70 317/235/70 107/236/70 -f 385/237/71 379/238/71 386/239/71 -f 151/240/72 149/241/72 150/242/72 -f 149/243/73 151/244/73 314/245/73 -f 316/246/74 143/247/74 153/248/74 -f 385/249/75 386/250/75 378/251/75 -f 377/252/76 145/253/76 153/254/76 -f 108/255/77 317/256/77 316/257/77 -f 142/258/78 148/259/78 156/260/78 -f 141/232/79 155/261/79 147/233/79 -f 157/262/80 315/263/80 313/264/80 -f 144/265/81 152/266/81 150/267/81 -f 166/268/82 182/269/82 183/270/82 -f 65/271/38 159/272/38 161/273/38 -f 74/274/38 168/107/38 169/275/38 -f 67/276/38 161/273/38 162/277/38 -f 75/278/38 169/275/38 170/279/38 -f 68/280/38 162/277/38 163/281/38 -f 76/282/38 170/279/38 171/283/38 -f 69/284/38 163/281/38 164/285/38 -f 78/286/38 77/287/38 171/283/38 -f 70/288/38 164/285/38 165/289/38 -f 79/290/38 78/286/38 172/291/38 -f 72/292/38 71/293/38 165/289/38 -f 80/294/38 79/290/38 173/295/38 -f 72/292/38 166/296/38 167/106/38 -f 65/271/38 66/297/38 160/298/38 -f 80/294/38 174/299/38 160/298/38 -f 185/300/83 184/301/83 326/302/83 -f 160/303/84 176/304/84 175/305/84 -f 160/303/85 174/306/85 190/307/85 -f 168/308/86 167/309/86 183/310/86 -f 159/311/87 175/305/87 177/312/87 -f 169/313/88 168/308/88 184/314/88 -f 161/315/89 177/312/89 178/316/89 -f 170/317/90 169/318/90 185/319/90 -f 162/320/91 178/316/91 179/321/91 -f 171/322/92 170/317/92 186/323/92 -f 163/324/93 179/325/93 180/326/93 -f 172/327/94 171/322/94 187/328/94 -f 164/329/95 180/326/95 181/330/95 -f 173/331/96 172/327/96 188/332/96 -f 165/333/97 181/330/97 182/269/97 -f 174/334/98 173/331/98 189/335/98 -f 205/336/5 221/337/5 220/338/5 -f 7/339/1 8/340/1 198/341/1 -f 15/342/1 16/343/1 206/344/1 -f 9/345/1 199/346/1 198/347/1 -f 1/348/1 2/349/1 191/350/1 -f 1/351/1 192/352/1 206/353/1 -f 9/354/1 10/355/1 200/356/1 -f 3/357/1 193/358/1 191/359/1 -f 11/360/1 201/361/1 200/362/1 -f 4/363/1 194/364/1 193/365/1 -f 12/366/1 202/367/1 201/368/1 -f 4/369/1 5/370/1 195/371/1 -f 13/372/1 203/362/1 202/361/1 -f 6/373/1 196/374/1 195/341/1 -f 14/375/1 204/3/1 203/2/1 -f 7/376/1 197/377/1 196/378/1 -f 198/379/6 214/380/6 213/381/6 -f 206/382/7 222/383/7 221/337/7 -f 199/384/8 215/385/8 214/380/8 -f 191/386/35 207/387/35 208/388/35 -f 206/389/36 192/390/36 208/388/36 -f 200/391/37 216/392/37 215/385/37 -f 193/393/12 209/394/12 207/387/12 -f 201/395/13 217/396/13 216/397/13 -f 194/398/14 210/399/14 209/394/14 -f 202/400/15 218/401/15 217/396/15 -f 195/402/16 211/403/16 210/399/16 -f 267/404/99 258/405/99 268/406/99 -f 355/407/100 340/408/100 288/409/100 -f 204/410/3 220/338/3 219/411/3 -f 197/412/4 213/381/4 212/413/4 -f 221/414/1 222/415/1 238/416/1 -f 222/415/101 208/417/101 223/418/101 -f 208/417/102 207/419/102 224/420/102 -f 209/421/1 225/422/1 224/420/1 -f 210/423/1 226/424/1 225/422/1 -f 210/423/1 211/425/1 227/426/1 -f 355/427/103 287/428/103 340/429/103 -f 212/430/1 213/431/1 229/432/1 -f 214/433/104 230/434/104 229/432/104 -f 215/435/105 231/436/105 230/434/105 -f 215/435/106 216/437/106 232/438/106 -f 216/437/107 217/439/107 233/440/107 -f 217/439/1 218/441/1 234/442/1 -f 267/404/108 268/406/108 291/443/108 -f 220/444/1 236/445/1 235/446/1 -f 221/414/1 237/447/1 236/445/1 -f 231/448/35 232/253/35 248/449/35 -f 247/450/1 253/451/1 240/452/1 -f 225/453/13 241/454/13 239/455/13 -f 233/456/12 249/457/12 248/458/12 -f 226/459/15 242/460/15 241/461/15 -f 233/462/14 234/463/14 250/464/14 -f 227/465/17 243/466/17 242/467/17 -f 235/468/16 251/469/16 250/470/16 -f 228/471/3 244/472/3 243/146/3 -f 236/473/18 252/474/18 251/475/18 -f 229/476/5 245/477/5 244/478/5 -f 237/479/4 253/480/4 252/481/4 -f 230/482/7 246/483/7 245/484/7 -f 238/485/6 254/486/6 253/487/6 -f 231/488/36 247/489/36 246/490/36 -f 224/491/37 239/492/37 240/493/37 -f 223/494/8 240/495/8 254/496/8 -f 268/497/1 235/446/1 234/442/1 -f 260/498/56 259/499/56 261/500/56 -f 256/501/60 255/502/60 259/503/60 -f 341/504/109 48/102/109 34/100/109 -f 293/505/110 292/506/110 294/507/110 -f 1/508/36 16/509/36 354/510/36 -f 287/511/18 290/512/18 264/513/18 -f 263/514/1 355/515/1 228/516/1 -f 263/517/111 264/518/111 290/519/111 -f 274/520/59 273/521/59 271/522/59 -f 278/523/112 277/524/112 273/525/112 -f 278/526/56 276/527/56 275/528/56 -f 272/529/113 271/530/113 275/531/113 -f 278/301/114 274/532/114 272/533/114 -f 280/534/115 282/535/115 281/536/115 -f 282/537/116 286/538/116 285/539/116 -f 286/540/117 284/541/117 283/542/117 -f 284/543/118 280/544/118 279/545/118 -f 286/546/1 282/533/1 280/547/1 -f 263/548/119 289/549/119 264/550/119 -f 203/551/17 267/552/17 202/400/17 -f 294/553/59 257/554/59 255/555/59 -f 292/506/1 293/505/1 260/556/1 -f 261/557/58 257/558/58 294/559/58 -f 295/560/120 296/561/120 93/562/120 -f 297/563/121 298/144/121 296/561/121 -f 312/564/122 311/565/122 304/566/122 -f 309/567/123 302/568/123 310/569/123 -f 309/570/124 310/571/124 301/572/124 -f 307/573/3 309/574/3 90/575/3 -f 96/478/125 310/576/125 306/577/125 -f 308/565/126 305/578/126 311/579/126 -f 97/360/55 98/580/55 305/581/55 -f 86/582/35 312/583/35 92/584/35 -f 150/585/127 149/586/127 157/587/127 -f 158/588/128 157/587/128 149/586/128 -f 177/589/129 319/590/129 320/591/129 -f 327/592/130 323/593/130 319/594/130 -f 315/595/131 314/376/131 313/596/131 -f 317/597/132 143/598/132 316/599/132 -f 186/600/133 185/300/133 327/601/133 -f 179/602/134 178/603/134 320/591/134 -f 186/600/135 328/604/135 329/605/135 -f 180/606/136 179/607/136 321/608/136 -f 187/609/137 329/605/137 330/610/137 -f 181/611/138 180/606/138 322/612/138 -f 188/613/139 330/610/139 331/614/139 -f 181/611/140 323/615/140 324/616/140 -f 190/617/141 189/618/141 331/614/141 -f 183/619/142 182/620/142 324/616/142 -f 176/621/143 318/622/143 154/623/143 -f 190/624/144 332/625/144 318/622/144 -f 184/626/145 183/627/145 325/628/145 -f 175/629/146 154/623/146 319/590/146 -f 114/630/7 113/631/7 333/632/7 -f 394/633/38 133/634/38 356/635/38 -f 110/219/36 335/636/36 334/637/36 -f 339/638/147 356/639/147 111/640/147 -f 339/641/148 351/642/148 356/643/148 -f 344/644/149 345/645/149 265/646/149 -f 266/647/35 337/648/35 349/649/35 -f 350/650/150 344/651/150 33/45/150 -f 359/652/151 353/653/151 363/654/151 -f 359/655/152 363/656/152 336/657/152 -f 128/658/1 126/423/1 363/659/1 -f 347/660/5 353/653/5 359/652/5 -f 9/661/37 367/662/37 10/663/37 -f 348/664/153 41/63/153 42/665/153 -f 357/666/154 358/667/154 342/668/154 -f 357/669/155 364/670/155 358/671/155 -f 362/672/156 369/673/156 365/674/156 -f 362/675/157 366/676/157 369/677/157 -f 377/678/158 376/679/158 384/680/158 -f 50/681/159 64/682/159 392/683/159 -f 382/684/160 375/685/160 383/686/160 -f 382/687/161 383/688/161 374/689/161 -f 377/690/162 384/691/162 21/692/162 -f 370/693/163 371/694/163 373/695/163 -f 372/696/164 373/695/164 371/694/164 -f 142/231/165 385/697/165 141/232/165 -f 147/698/166 386/699/166 148/700/166 -f 124/701/37 126/201/37 387/702/37 -f 387/703/167 381/704/167 394/705/167 -f 49/118/168 389/706/168 65/119/168 -f 390/707/159 393/708/159 80/709/159 -f 79/138/169 393/710/169 388/711/169 -f 14/712/1 15/1/1 204/3/1 -f 45/52/2 29/4/2 44/6/2 -f 14/13/3 13/7/3 30/9/3 -f 7/15/4 6/10/4 23/12/4 -f 15/17/5 14/13/5 31/14/5 -f 8/713/6 7/15/6 24/16/6 -f 16/714/7 15/17/7 32/18/7 -f 8/713/8 24/16/8 362/715/8 -f 342/716/8 25/717/8 357/21/8 -f 24/16/8 366/718/8 362/715/8 -f 357/21/8 25/717/8 9/661/8 -f 9/661/8 8/713/8 362/715/8 -f 362/715/8 365/19/8 357/21/8 -f 357/21/8 9/661/8 362/715/8 -f 3/37/12 2/31/12 19/33/12 -f 11/39/13 10/34/13 27/36/13 -f 4/719/14 3/37/14 20/38/14 -f 12/43/15 11/39/15 28/40/15 -f 375/720/16 5/721/16 383/42/16 -f 4/719/16 20/38/16 383/42/16 -f 372/41/16 371/722/16 383/42/16 -f 383/42/16 5/721/16 4/719/16 -f 371/722/16 374/723/16 383/42/16 -f 13/7/17 12/43/17 29/8/17 -f 6/10/18 5/724/18 382/44/18 -f 370/725/18 22/11/18 382/44/18 -f 374/726/18 371/727/18 382/44/18 -f 5/724/18 375/728/18 382/44/18 -f 382/44/18 371/727/18 370/725/18 -f 35/72/12 33/45/12 51/47/12 -f 38/50/19 22/53/19 370/48/19 -f 370/48/19 373/729/19 37/49/19 -f 46/55/20 30/51/20 45/52/20 -f 23/57/21 22/53/21 39/54/21 -f 31/59/22 30/51/22 47/56/22 -f 24/730/23 23/57/23 40/58/23 -f 32/731/24 31/59/24 48/60/24 -f 41/63/25 25/732/25 358/61/25 -f 358/61/25 364/733/25 365/734/25 -f 25/732/25 342/735/25 358/61/25 -f 366/736/25 24/730/25 369/62/25 -f 40/58/25 41/63/25 369/62/25 -f 358/61/25 365/734/25 369/62/25 -f 369/62/25 24/730/25 40/58/25 -f 19/76/29 17/71/29 35/72/29 -f 27/737/30 26/73/30 43/75/30 -f 20/738/31 19/76/31 36/77/31 -f 28/5/32 27/78/32 44/6/32 -f 373/81/33 372/739/33 36/77/33 -f 20/738/33 36/77/33 372/739/33 -f 56/108/34 55/82/34 72/84/34 -f 43/79/13 42/85/13 59/87/13 -f 36/77/14 35/72/14 52/88/14 -f 44/6/15 43/79/15 60/89/15 -f 37/80/16 36/77/16 53/90/16 -f 45/52/17 44/6/17 61/91/17 -f 38/50/18 37/49/18 54/93/18 -f 62/95/3 46/55/3 61/91/3 -f 39/54/4 38/50/4 55/94/4 -f 47/56/5 46/55/5 63/96/5 -f 40/58/6 39/54/6 56/97/6 -f 48/60/7 47/56/7 64/98/7 -f 41/63/8 40/58/8 57/99/8 -f 33/45/35 34/100/35 49/46/35 -f 34/100/36 48/102/36 50/101/36 -f 42/665/37 41/63/37 58/104/37 -f 74/274/38 73/105/38 168/107/38 -f 57/117/39 56/108/39 73/109/39 -f 388/740/170 393/110/170 389/112/170 -f 388/741/171 389/113/171 392/115/171 -f 74/742/42 58/116/42 73/109/42 -f 51/124/43 49/118/43 67/120/43 -f 75/127/44 59/121/44 74/123/44 -f 52/128/45 51/124/45 68/125/45 -f 76/130/46 60/126/46 75/127/46 -f 53/132/47 52/128/47 69/129/47 -f 61/135/48 60/126/48 77/131/48 -f 54/136/49 53/132/49 70/133/49 -f 78/137/50 62/134/50 77/131/50 -f 55/82/51 54/136/51 71/83/51 -f 63/743/52 62/134/52 79/138/52 -f 297/563/172 105/142/172 298/144/172 -f 103/744/55 303/145/55 104/147/55 -f 86/745/56 85/148/56 97/150/56 -f 87/746/56 88/154/56 100/156/56 -f 81/747/36 87/157/36 94/159/36 -f 89/748/58 90/160/58 102/162/58 -f 98/749/8 85/165/8 311/164/8 -f 91/163/8 104/750/8 304/751/8 -f 311/164/8 305/752/8 98/749/8 -f 91/163/8 304/751/8 311/164/8 -f 104/753/59 91/166/59 103/168/59 -f 99/754/37 88/169/37 93/171/37 -f 82/755/59 81/172/59 93/174/59 -f 83/582/16 89/175/16 96/177/16 -f 84/756/60 83/178/60 95/1/60 -f 115/757/3 116/189/3 117/191/3 -f 117/191/17 118/190/17 119/193/17 -f 119/193/15 120/192/15 121/195/15 -f 121/195/13 122/194/13 123/197/13 -f 125/758/8 126/201/8 127/203/8 -f 127/203/6 128/202/6 129/205/6 -f 129/205/4 130/204/4 131/207/4 -f 131/207/18 132/206/18 133/209/18 -f 133/759/16 134/210/16 135/212/16 -f 135/212/14 136/211/14 137/214/14 -f 111/760/35 139/221/35 339/220/35 -f 110/219/35 109/761/35 339/220/35 -f 339/220/35 139/221/35 140/218/35 -f 109/761/35 351/762/35 339/220/35 -f 137/214/12 138/213/12 139/221/12 -f 151/763/173 152/227/173 314/226/173 -f 144/225/174 313/264/174 314/226/174 -f 146/230/68 145/764/68 384/228/68 -f 384/228/68 376/765/68 107/236/68 -f 145/764/68 21/766/68 384/228/68 -f 384/228/68 107/236/68 108/229/68 -f 148/767/69 142/231/69 147/233/69 -f 108/229/70 107/236/70 317/235/70 -f 153/234/70 143/768/70 317/235/70 -f 152/769/72 151/240/72 150/242/72 -f 314/245/73 315/770/73 149/243/73 -f 158/771/73 149/243/73 315/770/73 -f 153/248/74 145/772/74 316/246/74 -f 146/773/74 316/246/74 145/772/74 -f 153/254/76 107/774/76 377/252/76 -f 377/252/76 21/775/76 145/253/76 -f 107/774/76 376/776/76 377/252/76 -f 146/777/77 108/255/77 316/257/77 -f 313/264/175 144/225/175 157/262/175 -f 157/262/176 158/778/176 315/263/176 -f 157/779/177 144/265/177 150/267/177 -f 167/780/178 166/268/178 183/270/178 -f 67/276/38 65/271/38 161/273/38 -f 75/278/38 74/274/38 169/275/38 -f 68/280/38 67/276/38 162/277/38 -f 76/282/38 75/278/38 170/279/38 -f 69/284/38 68/280/38 163/281/38 -f 77/287/38 76/282/38 171/283/38 -f 70/288/38 69/284/38 164/285/38 -f 172/291/38 78/286/38 171/283/38 -f 71/293/38 70/288/38 165/289/38 -f 173/295/38 79/290/38 172/291/38 -f 166/296/38 72/292/38 165/289/38 -f 174/299/38 80/294/38 173/295/38 -f 73/105/38 72/292/38 167/106/38 -f 159/272/38 65/271/38 160/298/38 -f 66/297/38 80/294/38 160/298/38 -f 327/601/83 185/300/83 326/302/83 -f 159/311/179 160/303/179 175/305/179 -f 176/304/180 160/303/180 190/307/180 -f 184/314/181 168/308/181 183/310/181 -f 161/315/182 159/311/182 177/312/182 -f 185/781/183 169/313/183 184/314/183 -f 162/320/184 161/315/184 178/316/184 -f 186/323/185 170/317/185 185/319/185 -f 163/782/186 162/320/186 179/321/186 -f 187/328/187 171/322/187 186/323/187 -f 164/329/188 163/324/188 180/326/188 -f 188/332/189 172/327/189 187/328/189 -f 165/333/190 164/329/190 181/330/190 -f 189/335/191 173/331/191 188/332/191 -f 166/268/192 165/333/192 182/269/192 -f 190/782/193 174/334/193 189/335/193 -f 204/410/5 205/336/5 220/338/5 -f 197/374/1 7/339/1 198/341/1 -f 205/371/1 15/342/1 206/344/1 -f 8/375/1 9/345/1 198/347/1 -f 192/783/1 1/348/1 191/350/1 -f 16/340/1 1/351/1 206/353/1 -f 199/784/1 9/354/1 200/356/1 -f 2/366/1 3/357/1 191/359/1 -f 10/785/1 11/360/1 200/362/1 -f 3/786/1 4/363/1 193/365/1 -f 11/787/1 12/366/1 201/368/1 -f 194/344/1 4/369/1 195/371/1 -f 12/788/1 13/372/1 202/361/1 -f 5/789/1 6/373/1 195/341/1 -f 13/345/1 14/375/1 203/2/1 -f 6/790/1 7/376/1 196/378/1 -f 197/412/6 198/379/6 213/381/6 -f 205/336/7 206/382/7 221/337/7 -f 198/379/8 199/384/8 214/380/8 -f 192/390/35 191/386/35 208/388/35 -f 222/791/36 206/389/36 208/388/36 -f 199/384/37 200/391/37 215/385/37 -f 191/386/12 193/393/12 207/387/12 -f 200/792/13 201/395/13 216/397/13 -f 193/393/14 194/398/14 209/394/14 -f 201/395/15 202/400/15 217/396/15 -f 194/398/16 195/402/16 210/399/16 -f 203/551/3 204/410/3 219/411/3 -f 196/793/4 197/412/4 212/413/4 -f 237/447/1 221/414/1 238/416/1 -f 238/416/1 222/415/1 223/418/1 -f 223/418/102 208/417/102 224/420/102 -f 207/419/194 209/421/194 224/420/194 -f 209/421/1 210/423/1 225/422/1 -f 226/424/1 210/423/1 227/426/1 -f 228/516/1 212/430/1 229/432/1 -f 213/431/1 214/433/1 229/432/1 -f 214/433/105 215/435/105 230/434/105 -f 231/436/195 215/435/195 232/438/195 -f 232/438/107 216/437/107 233/440/107 -f 233/440/196 217/439/196 234/442/196 -f 219/794/1 220/444/1 235/446/1 -f 220/444/1 221/414/1 236/445/1 -f 247/795/35 231/448/35 248/449/35 -f 240/452/1 239/796/1 241/797/1 -f 241/797/1 242/798/1 243/799/1 -f 243/799/1 244/800/1 247/450/1 -f 245/801/1 246/802/1 247/450/1 -f 247/450/1 248/803/1 249/804/1 -f 249/804/1 250/805/1 247/450/1 -f 251/806/1 252/807/1 253/451/1 -f 253/451/1 254/808/1 240/452/1 -f 240/452/1 241/797/1 247/450/1 -f 244/800/1 245/801/1 247/450/1 -f 247/450/1 250/805/1 251/806/1 -f 251/806/1 253/451/1 247/450/1 -f 241/797/1 243/799/1 247/450/1 -f 224/809/13 225/453/13 239/455/13 -f 232/810/12 233/456/12 248/458/12 -f 225/811/15 226/459/15 241/461/15 -f 249/812/14 233/462/14 250/464/14 -f 226/813/17 227/465/17 242/467/17 -f 234/814/16 235/468/16 250/470/16 -f 227/815/3 228/471/3 243/146/3 -f 235/816/18 236/473/18 251/475/18 -f 228/817/5 229/476/5 244/478/5 -f 236/818/4 237/479/4 252/481/4 -f 229/819/7 230/482/7 245/484/7 -f 237/463/6 238/485/6 253/487/6 -f 230/820/36 231/488/36 246/490/36 -f 223/821/37 224/491/37 240/493/37 -f 238/822/8 223/494/8 254/496/8 -f 234/442/1 218/441/1 291/823/1 -f 268/497/1 258/824/1 235/446/1 -f 234/442/1 291/823/1 268/497/1 -f 258/824/1 219/794/1 235/446/1 -f 262/825/56 260/498/56 261/500/56 -f 260/826/60 256/501/60 259/503/60 -f 34/100/109 18/827/109 341/504/109 -f 341/504/109 269/828/109 32/829/109 -f 18/827/109 270/830/109 341/504/109 -f 32/829/109 48/102/109 341/504/109 -f 16/509/36 32/831/36 354/510/36 -f 270/832/36 18/833/36 354/510/36 -f 32/831/36 269/834/36 354/510/36 -f 354/510/36 18/833/36 1/508/36 -f 196/793/18 212/413/18 288/835/18 -f 289/836/18 211/837/18 195/838/18 -f 196/793/18 288/835/18 340/839/18 -f 264/513/18 289/836/18 195/838/18 -f 195/838/18 196/793/18 340/839/18 -f 340/839/18 287/511/18 264/513/18 -f 264/513/18 195/838/18 340/839/18 -f 227/426/1 211/425/1 263/514/1 -f 263/514/1 290/840/1 287/841/1 -f 211/425/1 289/842/1 263/514/1 -f 288/843/1 212/430/1 355/515/1 -f 228/516/1 227/426/1 263/514/1 -f 263/514/1 287/841/1 355/515/1 -f 355/515/1 212/430/1 228/516/1 -f 272/844/59 274/520/59 271/522/59 -f 274/845/112 278/523/112 273/525/112 -f 277/846/56 278/526/56 275/528/56 -f 276/847/113 272/529/113 275/531/113 -f 276/546/114 278/301/114 272/533/114 -f 279/531/197 280/534/197 281/536/197 -f 281/848/198 282/537/198 285/539/198 -f 285/849/199 286/540/199 283/542/199 -f 283/178/200 284/543/200 279/545/200 -f 284/507/1 286/546/1 280/547/1 -f 218/401/17 202/400/17 291/850/17 -f 203/551/17 219/411/17 258/851/17 -f 267/552/17 291/850/17 202/400/17 -f 203/551/17 258/851/17 267/552/17 -f 255/555/59 256/852/59 293/853/59 -f 293/853/59 294/553/59 255/555/59 -f 256/854/1 260/556/1 293/505/1 -f 262/855/1 292/506/1 260/556/1 -f 294/559/58 292/856/58 261/557/58 -f 262/857/58 261/557/58 292/856/58 -f 94/858/120 295/560/120 93/562/120 -f 295/560/201 297/563/201 296/561/201 -f 303/859/202 312/564/202 304/566/202 -f 101/860/3 90/575/3 301/861/3 -f 84/209/3 95/862/3 307/573/3 -f 307/573/3 299/863/3 302/864/3 -f 95/862/3 300/865/3 307/573/3 -f 309/574/3 301/861/3 90/575/3 -f 90/575/3 84/209/3 307/573/3 -f 307/573/3 302/864/3 309/574/3 -f 300/866/125 95/867/125 306/577/125 -f 96/478/125 102/868/125 310/576/125 -f 101/869/125 301/870/125 102/868/125 -f 310/576/125 302/871/125 306/577/125 -f 306/577/125 95/867/125 96/478/125 -f 302/871/125 299/872/125 306/577/125 -f 102/868/125 301/870/125 310/576/125 -f 312/873/203 308/565/203 311/579/203 -f 308/874/55 97/360/55 305/581/55 -f 103/875/35 92/584/35 303/876/35 -f 86/582/35 97/877/35 312/583/35 -f 312/583/35 303/876/35 92/584/35 -f 97/877/35 308/878/35 312/583/35 -f 178/603/129 177/589/129 320/591/129 -f 319/594/204 154/879/204 318/880/204 -f 318/880/204 332/881/204 319/594/204 -f 331/882/130 330/883/130 327/592/130 -f 329/884/130 328/885/130 327/592/130 -f 327/592/204 326/886/204 325/887/204 -f 325/887/204 324/888/204 327/592/204 -f 323/593/204 322/889/204 319/594/204 -f 321/890/204 320/891/204 319/594/204 -f 319/594/204 332/881/204 331/882/204 -f 330/883/204 329/884/204 327/592/204 -f 327/592/204 324/888/204 323/593/204 -f 322/889/130 321/890/130 319/594/130 -f 319/594/130 331/882/130 327/592/130 -f 328/604/133 186/600/133 327/601/133 -f 321/892/134 179/602/134 320/591/134 -f 187/609/135 186/600/135 329/605/135 -f 322/612/136 180/606/136 321/608/136 -f 188/613/137 187/609/137 330/610/137 -f 323/615/138 181/611/138 322/612/138 -f 189/618/139 188/613/139 331/614/139 -f 182/620/140 181/611/140 324/616/140 -f 332/893/141 190/617/141 331/614/141 -f 325/894/142 183/619/142 324/616/142 -f 175/629/143 176/621/143 154/623/143 -f 176/621/144 190/624/144 318/622/144 -f 326/895/145 184/626/145 325/628/145 -f 177/589/146 175/629/146 319/590/146 -f 333/632/7 335/896/7 114/630/7 -f 112/897/7 114/630/7 335/896/7 -f 351/898/38 109/899/38 356/635/38 -f 352/900/38 333/901/38 113/902/38 -f 109/899/38 334/903/38 356/635/38 -f 139/904/38 111/905/38 356/635/38 -f 356/635/38 334/903/38 352/900/38 -f 352/900/38 113/902/38 115/906/38 -f 115/906/38 117/907/38 352/900/38 -f 119/908/38 121/909/38 394/633/38 -f 123/910/38 380/911/38 394/633/38 -f 394/633/38 381/912/38 125/913/38 -f 125/913/38 127/914/38 394/633/38 -f 129/915/38 131/916/38 394/633/38 -f 133/634/38 135/917/38 356/635/38 -f 137/918/38 139/904/38 356/635/38 -f 356/635/38 352/900/38 394/633/38 -f 117/907/38 119/908/38 394/633/38 -f 394/633/38 127/914/38 129/915/38 -f 121/909/38 123/910/38 394/633/38 -f 137/918/38 356/635/38 135/917/38 -f 131/916/38 133/634/38 394/633/38 -f 117/907/38 394/633/38 352/900/38 -f 334/637/36 109/761/36 110/219/36 -f 110/219/36 112/919/36 335/636/36 -f 1/508/35 18/833/35 345/920/35 -f 338/921/35 17/32/35 349/649/35 -f 18/833/35 265/922/35 345/920/35 -f 349/649/35 17/32/35 2/31/35 -f 2/31/35 1/508/35 345/920/35 -f 345/920/35 266/647/35 349/649/35 -f 349/649/35 2/31/35 345/920/35 -f 33/45/150 17/71/150 350/650/150 -f 350/650/150 337/923/150 266/924/150 -f 17/71/150 338/925/150 350/650/150 -f 265/926/150 18/827/150 344/651/150 -f 34/100/150 33/45/150 344/651/150 -f 350/650/150 266/924/150 344/651/150 -f 344/651/150 18/827/150 34/100/150 -f 114/927/1 112/928/1 368/929/1 -f 110/930/1 140/931/1 363/659/1 -f 138/932/1 136/933/1 363/659/1 -f 134/934/1 132/935/1 363/659/1 -f 130/936/1 128/658/1 363/659/1 -f 126/423/1 124/937/1 363/659/1 -f 122/938/1 120/939/1 363/659/1 -f 118/940/1 116/941/1 363/659/1 -f 363/659/1 353/942/1 368/929/1 -f 116/941/1 336/943/1 363/659/1 -f 124/937/1 122/938/1 363/659/1 -f 132/935/1 130/936/1 363/659/1 -f 140/931/1 138/932/1 363/659/1 -f 361/944/1 114/927/1 368/929/1 -f 353/942/1 360/945/1 368/929/1 -f 368/929/1 112/928/1 110/930/1 -f 136/933/1 134/934/1 363/659/1 -f 120/939/1 118/940/1 363/659/1 -f 363/659/1 368/929/1 110/930/1 -f 113/631/5 114/630/5 347/660/5 -f 336/946/5 116/189/5 359/652/5 -f 114/630/5 361/947/5 347/660/5 -f 359/652/5 116/189/5 115/757/5 -f 115/757/5 113/631/5 359/652/5 -f 347/660/5 360/948/5 353/653/5 -f 359/652/5 113/631/5 347/660/5 -f 26/949/37 10/663/37 367/662/37 -f 9/661/37 25/717/37 367/662/37 -f 367/662/37 346/950/37 26/949/37 -f 25/717/37 343/951/37 367/662/37 -f 42/665/153 26/952/153 348/664/153 -f 348/664/153 343/953/153 25/732/153 -f 26/952/153 346/954/153 348/664/153 -f 25/732/153 41/63/153 348/664/153 -f 391/955/159 50/681/159 392/683/159 -f 142/231/165 156/956/165 385/697/165 -f 155/261/165 141/232/165 385/697/165 -f 385/697/165 378/957/165 155/261/165 -f 156/956/165 379/958/165 385/697/165 -f 156/959/166 148/700/166 386/699/166 -f 147/698/166 155/960/166 386/699/166 -f 386/699/166 379/961/166 156/959/166 -f 155/960/166 378/962/166 386/699/166 -f 380/963/37 123/964/37 387/702/37 -f 126/201/37 125/758/37 381/965/37 -f 387/702/37 123/964/37 124/701/37 -f 126/201/37 381/965/37 387/702/37 -f 49/118/168 50/681/168 389/706/168 -f 66/966/168 65/119/168 390/707/168 -f 389/706/168 390/707/168 65/119/168 -f 50/681/168 391/955/168 389/706/168 -f 66/966/159 390/707/159 80/709/159 -f 392/967/169 64/968/169 388/711/169 -f 63/743/169 79/138/169 388/711/169 -f 80/969/169 393/710/169 79/138/169 -f 388/711/169 64/968/169 63/743/169 diff --git a/src/main/resources/assets/hbm/models/ams_limiter.obj b/src/main/resources/assets/hbm/models/ams_limiter.obj deleted file mode 100644 index e328f0724..000000000 --- a/src/main/resources/assets/hbm/models/ams_limiter.obj +++ /dev/null @@ -1,1301 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_limiter.blend' -# www.blender.org -o Cube.001_Cube.002 -v 0.500001 0.000000 -2.500000 -v 0.250001 1.000000 -2.000000 -v 0.500000 0.000000 2.500000 -v 0.250000 1.000000 2.500000 -v -0.499999 0.000000 -2.500000 -v -0.249999 1.000000 -2.000000 -v -0.500000 0.000000 2.500000 -v -0.250000 1.000000 2.500000 -v 0.156251 0.343750 -2.500000 -v 0.156251 0.656250 -2.500000 -v 0.156251 0.343750 -2.150000 -v 0.156251 0.656250 -2.150000 -v -0.156249 0.343750 -2.500000 -v -0.156249 0.656250 -2.500000 -v -0.156249 0.343750 -2.150000 -v -0.156249 0.656250 -2.150000 -v -0.500000 0.343750 -0.156250 -v -0.500000 0.656250 -0.156250 -v 0.500000 0.343750 -0.156250 -v 0.500000 0.656250 -0.156250 -v -0.500000 0.343750 0.156250 -v -0.500000 0.656250 0.156250 -v 0.500000 0.343750 0.156250 -v 0.500000 0.656250 0.156250 -v -0.000000 6.000000 2.250000 -v 0.000000 6.000000 -0.750000 -v -0.353553 5.853553 2.250000 -v -0.353553 5.853553 -0.750000 -v -0.500000 5.500000 2.250000 -v -0.500000 5.500000 -0.750000 -v -0.353553 5.146447 2.250000 -v -0.353553 5.146447 -0.750000 -v 0.000000 5.000000 2.250000 -v 0.000000 5.000000 -0.750000 -v 0.353553 5.146447 2.250000 -v 0.353554 5.146447 -0.750000 -v 0.500000 5.500000 2.250000 -v 0.500000 5.500000 -0.750000 -v 0.353553 5.853553 2.250000 -v 0.353554 5.853553 -0.750000 -v -0.000000 5.875000 2.250000 -v -0.265165 5.765165 2.250000 -v -0.375000 5.500000 2.250000 -v -0.265165 5.234835 2.250000 -v -0.000000 5.125000 2.250000 -v 0.265165 5.234835 2.250000 -v 0.375000 5.500000 2.250000 -v 0.265165 5.765165 2.250000 -v -0.000000 5.875000 2.500000 -v -0.265165 5.765165 2.500000 -v -0.375000 5.500000 2.500000 -v -0.265165 5.234835 2.500000 -v -0.000000 5.125000 2.500000 -v 0.265165 5.234835 2.500000 -v 0.375000 5.500000 2.500000 -v 0.265165 5.765165 2.500000 -v -0.176776 5.676777 -1.000000 -v 0.000000 5.750000 -1.000000 -v -0.250000 5.500000 -1.000000 -v -0.176776 5.323223 -1.000000 -v 0.000000 5.250000 -1.000000 -v 0.176777 5.323223 -1.000000 -v 0.250000 5.500000 -1.000000 -v 0.176777 5.676777 -1.000000 -v 0.250000 3.000000 0.000000 -v -0.250000 3.000000 0.000000 -v 0.250000 3.000000 -1.000000 -v -0.250000 3.000000 -1.000000 -v 0.250000 5.500000 1.000000 -v -0.250000 5.500000 1.000000 -v 0.250000 5.500000 0.000000 -v -0.250000 5.500000 0.000000 -v 0.250000 1.000000 2.000000 -v -0.250000 1.000000 2.000000 -v 0.250000 1.000000 1.000000 -v -0.250000 1.000000 1.000000 -v 0.500000 2.668544 -0.168544 -v 0.500000 3.000000 -0.031250 -v 0.500000 3.000000 0.125000 -v -0.500000 3.000000 0.125000 -v 0.500000 2.558058 -0.058058 -v -0.500000 2.558058 -0.058058 -v 0.500000 2.375000 -0.500000 -v -0.500000 2.375000 -0.500000 -v 0.500000 2.558058 -0.941942 -v -0.500000 2.558058 -0.941942 -v 0.500000 3.000000 -1.125000 -v -0.499999 3.000000 -1.125000 -v 0.500001 3.441942 -0.941942 -v -0.500000 3.441942 -0.941942 -v 0.500000 3.625000 -0.500000 -v -0.500000 3.625000 -0.500000 -v 0.500000 3.441942 -0.058058 -v -0.500000 3.441942 -0.058058 -v 0.500000 2.531250 -0.500000 -v 0.500000 2.668544 -0.831456 -v 0.500000 3.000000 -0.968750 -v 0.500001 3.331456 -0.831456 -v 0.500000 3.468750 -0.500000 -v 0.500000 3.331456 -0.168544 -v 0.375000 3.331456 -0.168544 -v 0.375000 3.000000 -0.031250 -v 0.375001 3.468750 -0.500000 -v 0.375001 3.331456 -0.831456 -v 0.375000 3.000000 -0.968750 -v 0.375000 2.668544 -0.831456 -v 0.375000 2.531250 -0.500000 -v 0.375000 2.668544 -0.168544 -v -0.500000 2.668544 -0.168544 -v -0.500000 3.000000 -0.031250 -v -0.500000 2.531250 -0.500000 -v -0.500000 2.668544 -0.831456 -v -0.500000 3.000000 -0.968750 -v -0.500000 3.331456 -0.831456 -v -0.500000 3.468750 -0.500000 -v -0.500000 3.331456 -0.168544 -v -0.375000 2.668544 -0.168544 -v -0.375000 3.000000 -0.031250 -v -0.375000 2.531250 -0.500000 -v -0.375000 2.668544 -0.831456 -v -0.375000 3.000000 -0.968750 -v -0.375000 3.331456 -0.831456 -v -0.375000 3.468750 -0.500000 -v -0.375000 3.331456 -0.168544 -v 0.500000 0.668544 1.831456 -v 0.500000 1.000000 1.968750 -v 0.500000 1.000000 2.125000 -v -0.500000 1.000000 2.125000 -v 0.500000 0.558058 1.941942 -v -0.500000 0.558058 1.941942 -v 0.500000 0.375000 1.500000 -v -0.500000 0.375000 1.500000 -v 0.500000 0.558058 1.058058 -v -0.500000 0.558058 1.058058 -v 0.500000 1.000000 0.875000 -v -0.500000 1.000000 0.875000 -v 0.500000 1.441942 1.058058 -v -0.500000 1.441942 1.058058 -v 0.500000 1.625000 1.500000 -v -0.500000 1.625000 1.500000 -v 0.500000 1.441942 1.941942 -v -0.500000 1.441942 1.941942 -v 0.500000 0.531250 1.500000 -v 0.500000 0.668544 1.168544 -v 0.500000 1.000000 1.031250 -v 0.500000 1.331456 1.168544 -v 0.500000 1.468750 1.500000 -v 0.500000 1.331456 1.831456 -v 0.375000 1.331456 1.831456 -v 0.375000 1.000000 1.968750 -v 0.375000 1.468750 1.500000 -v 0.375000 1.331456 1.168544 -v 0.375000 1.000000 1.031250 -v 0.375000 0.668544 1.168544 -v 0.375000 0.531250 1.500000 -v 0.375000 0.668544 1.831456 -v -0.500000 0.668544 1.831456 -v -0.500000 1.000000 1.968750 -v -0.500000 0.531250 1.500000 -v -0.500000 0.668544 1.168544 -v -0.500000 1.000000 1.031250 -v -0.500000 1.331456 1.168544 -v -0.500000 1.468750 1.500000 -v -0.500000 1.331456 1.831456 -v -0.375000 0.668544 1.831456 -v -0.375000 1.000000 1.968750 -v -0.375000 0.531250 1.500000 -v -0.375000 0.668544 1.168544 -v -0.375000 1.000000 1.031250 -v -0.375000 1.331456 1.168544 -v -0.375000 1.468750 1.500000 -v -0.375000 1.331456 1.831456 -v 0.125000 5.550000 -1.000000 -v 0.125001 5.550000 -1.500000 -v 0.081699 5.525000 -1.000000 -v 0.081699 5.525000 -1.500000 -v 0.081699 5.475000 -1.000000 -v 0.081699 5.475000 -1.500000 -v 0.125000 5.450000 -1.000000 -v 0.125001 5.450000 -1.500000 -v 0.168302 5.475000 -1.000000 -v 0.168302 5.475000 -1.500000 -v 0.168302 5.525000 -1.000000 -v 0.168302 5.525000 -1.500000 -v -0.125000 5.550000 -1.000000 -v -0.124999 5.550000 -1.500000 -v -0.168301 5.525000 -1.000000 -v -0.168301 5.525000 -1.500000 -v -0.168301 5.475000 -1.000000 -v -0.168301 5.475000 -1.500000 -v -0.125000 5.450000 -1.000000 -v -0.124999 5.450000 -1.500000 -v -0.081698 5.475000 -1.000000 -v -0.081698 5.475000 -1.500000 -v -0.081698 5.525000 -1.000000 -v -0.081698 5.525000 -1.500000 -v 0.081699 5.493492 -1.608551 -v 0.125001 5.516984 -1.617101 -v 0.081699 5.446507 -1.591449 -v 0.125001 5.423015 -1.582899 -v 0.168302 5.446507 -1.591449 -v 0.168302 5.493492 -1.608551 -v -0.168301 5.493492 -1.608551 -v -0.124999 5.516984 -1.617101 -v -0.168301 5.446507 -1.591449 -v -0.124999 5.423015 -1.582899 -v -0.081698 5.446507 -1.591449 -v -0.081698 5.493492 -1.608551 -v 0.081699 5.404948 -1.710039 -v 0.125001 5.424099 -1.726108 -v 0.081699 5.366646 -1.677899 -v 0.125001 5.347495 -1.661829 -v 0.168302 5.366646 -1.677899 -v 0.168302 5.404948 -1.710039 -v -0.168301 5.404948 -1.710039 -v -0.124999 5.424099 -1.726108 -v -0.168301 5.366646 -1.677899 -v -0.124999 5.347495 -1.661829 -v -0.081698 5.366646 -1.677899 -v -0.081698 5.404948 -1.710039 -v 0.081699 5.291929 -1.776042 -v 0.125001 5.296270 -1.800662 -v 0.081699 5.283247 -1.726802 -v 0.125001 5.278905 -1.702182 -v 0.168302 5.283247 -1.726802 -v 0.168302 5.291929 -1.776042 -v -0.168301 5.291929 -1.776042 -v -0.124999 5.296270 -1.800662 -v -0.168301 5.283247 -1.726802 -v -0.124999 5.278905 -1.702182 -v -0.081698 5.283247 -1.726802 -v -0.081698 5.291929 -1.776042 -v 0.081699 5.139866 -1.802469 -v 0.125001 5.139866 -1.827469 -v 0.081699 5.139866 -1.752469 -v 0.125001 5.139866 -1.727469 -v 0.168302 5.139866 -1.752469 -v 0.168302 5.139866 -1.802469 -v -0.168301 5.139866 -1.802469 -v -0.124999 5.139866 -1.827469 -v -0.168301 5.139866 -1.752469 -v -0.124999 5.139866 -1.727469 -v -0.081698 5.139866 -1.752469 -v -0.081698 5.139866 -1.802469 -v 0.081690 0.999866 -1.802482 -v 0.124992 0.999866 -1.827482 -v 0.081690 0.999866 -1.752481 -v 0.124992 0.999866 -1.727482 -v 0.168293 0.999866 -1.752481 -v 0.168293 0.999866 -1.802482 -v -0.168310 0.999866 -1.802482 -v -0.125008 0.999866 -1.827482 -v -0.168310 0.999866 -1.752481 -v -0.125008 0.999866 -1.727482 -v -0.081707 0.999866 -1.752481 -v -0.081707 0.999866 -1.802482 -v -0.250000 6.875000 -0.437500 -v -0.250000 6.875000 -0.312500 -v -0.250000 5.875000 -0.437500 -v -0.250000 5.875000 -0.312500 -v 0.250000 6.375000 -0.437500 -v 0.250000 6.375000 -0.312500 -v 0.250000 5.875000 -0.437500 -v 0.250000 5.875000 -0.312500 -vt 0.516018 0.105402 -vt 0.605530 0.083024 -vt 0.605530 0.172537 -vt 0.113213 0.150158 -vt 0.013135 0.172537 -vt 0.013135 0.083024 -vt 0.709461 0.897353 -vt 0.709461 0.986865 -vt 0.261900 0.986865 -vt 0.516018 0.013135 -vt 0.113213 0.105402 -vt 0.516018 0.150158 -vt 0.516018 0.242426 -vt 0.691103 0.097053 -vt 0.691103 0.125026 -vt 0.659773 0.125026 -vt 0.659773 0.069080 -vt 0.659773 0.041108 -vt 0.691103 0.041108 -vt 0.659773 0.097053 -vt 0.631801 0.097053 -vt 0.631801 0.069080 -vt 0.691103 0.013135 -vt 0.691103 0.069080 -vt 0.041108 0.624951 -vt 0.041108 0.596979 -vt 0.130620 0.596979 -vt 0.041108 0.652924 -vt 0.013135 0.652924 -vt 0.013135 0.624951 -vt 0.130620 0.652924 -vt 0.130620 0.680896 -vt 0.041108 0.680896 -vt 0.130620 0.624951 -vt 0.158593 0.624951 -vt 0.158593 0.652924 -vt 0.041108 0.569006 -vt 0.130620 0.569006 -vt 0.043602 0.405716 -vt 0.043602 0.371461 -vt 0.312139 0.371461 -vt 0.043602 0.337206 -vt 0.312139 0.337207 -vt 0.043603 0.302951 -vt 0.312139 0.302952 -vt 0.043603 0.268696 -vt 0.312139 0.268697 -vt 0.043602 0.542735 -vt 0.043602 0.508480 -vt 0.312139 0.508481 -vt 0.043602 0.474225 -vt 0.312139 0.474226 -vt 0.013135 0.465662 -vt 0.013135 0.448534 -vt 0.312139 0.439971 -vt 0.043602 0.439971 -vt 0.322476 0.307234 -vt 0.717291 0.621272 -vt 0.708727 0.641946 -vt 0.684992 0.632115 -vt 0.322476 0.478508 -vt 0.322476 0.504199 -vt 0.322477 0.272979 -vt 0.322476 0.444253 -vt 0.322476 0.341489 -vt 0.322476 0.367180 -vt 0.322476 0.512762 -vt 0.322476 0.538453 -vt 0.312139 0.405716 -vt 0.322476 0.409998 -vt 0.322476 0.375743 -vt 0.322476 0.401434 -vt 0.684992 0.699249 -vt 0.651425 0.665682 -vt 0.640582 0.633383 -vt 0.661256 0.641946 -vt 0.652692 0.710092 -vt 0.661256 0.689417 -vt 0.729402 0.697981 -vt 0.708727 0.689417 -vt 0.718559 0.665682 -vt 0.676428 0.611440 -vt 0.630750 0.674246 -vt 0.693555 0.719924 -vt 0.739233 0.657118 -vt 0.116936 0.719278 -vt 0.146174 0.707167 -vt 0.129047 0.748516 -vt 0.013136 0.362897 -vt 0.013136 0.345770 -vt 0.013135 0.534171 -vt 0.013135 0.517044 -vt 0.013136 0.431407 -vt 0.013136 0.397152 -vt 0.013136 0.380024 -vt 0.013136 0.328642 -vt 0.013136 0.311515 -vt 0.013135 0.499917 -vt 0.013136 0.294387 -vt 0.521369 0.509715 -vt 0.476613 0.509715 -vt 0.476613 0.268696 -vt 0.393503 0.301940 -vt 0.393503 0.542959 -vt 0.348747 0.542959 -vt 0.521369 0.268696 -vt 0.604479 0.301940 -vt 0.846852 0.521875 -vt 0.783557 0.585170 -vt 0.783557 0.331991 -vt 0.738801 0.585170 -vt 0.738801 0.331991 -vt 0.630750 0.268696 -vt 0.675506 0.268696 -vt 0.675506 0.521875 -vt 0.470636 0.695844 -vt 0.470632 0.707033 -vt 0.438518 0.707022 -vt 0.561630 0.682954 -vt 0.556273 0.695874 -vt 0.524159 0.695863 -vt 0.518842 0.593427 -vt 0.561661 0.593442 -vt 0.384999 0.695815 -vt 0.384995 0.707004 -vt 0.352881 0.706993 -vt 0.347537 0.682880 -vt 0.390356 0.682895 -vt 0.604479 0.593457 -vt 0.427818 0.695830 -vt 0.427814 0.707019 -vt 0.395700 0.707008 -vt 0.342181 0.695800 -vt 0.310067 0.695789 -vt 0.261900 0.682851 -vt 0.261931 0.593339 -vt 0.304750 0.593353 -vt 0.513455 0.695859 -vt 0.513451 0.707048 -vt 0.481337 0.707037 -vt 0.433174 0.682910 -vt 0.475993 0.682925 -vt 0.347568 0.593368 -vt 0.654509 0.228826 -vt 0.631801 0.174004 -vt 0.686623 0.151296 -vt 0.304719 0.682866 -vt 0.299362 0.695785 -vt 0.390387 0.593383 -vt 0.267248 0.695774 -vt 0.299358 0.706974 -vt 0.433205 0.593398 -vt 0.524199 0.580507 -vt 0.476024 0.593412 -vt 0.566978 0.695878 -vt 0.599092 0.695889 -vt 0.599088 0.707078 -vt 0.604448 0.682969 -vt 0.518811 0.682939 -vt 0.556269 0.707063 -vt 0.342177 0.706989 -vt 0.310063 0.706978 -vt 0.352925 0.580448 -vt 0.352929 0.569259 -vt 0.385043 0.569270 -vt 0.267288 0.580419 -vt 0.299402 0.580430 -vt 0.438562 0.580478 -vt 0.470676 0.580489 -vt 0.310106 0.580434 -vt 0.481381 0.580493 -vt 0.513494 0.580504 -vt 0.385039 0.580459 -vt 0.567018 0.580522 -vt 0.395743 0.580463 -vt 0.427857 0.580474 -vt 0.067957 0.784697 -vt 0.013135 0.729875 -vt 0.035843 0.707167 -vt 0.267292 0.569230 -vt 0.299406 0.569241 -vt 0.524203 0.569318 -vt 0.556317 0.569329 -vt 0.481384 0.569304 -vt 0.513498 0.569315 -vt 0.395747 0.569274 -vt 0.427861 0.569285 -vt 0.310110 0.569245 -vt 0.342224 0.569256 -vt 0.567021 0.569333 -vt 0.599135 0.569344 -vt 0.438566 0.569289 -vt 0.470680 0.569300 -vt 0.438527 0.859893 -vt 0.470641 0.859893 -vt 0.470641 0.871082 -vt 0.561630 0.846971 -vt 0.556278 0.859893 -vt 0.524164 0.859893 -vt 0.518811 0.757459 -vt 0.561630 0.757459 -vt 0.352890 0.859893 -vt 0.385003 0.859893 -vt 0.385003 0.871082 -vt 0.347537 0.846971 -vt 0.390356 0.846971 -vt 0.604448 0.757459 -vt 0.604448 0.846971 -vt 0.395708 0.859893 -vt 0.427822 0.859893 -vt 0.427822 0.871082 -vt 0.304719 0.846971 -vt 0.342185 0.859893 -vt 0.261900 0.846971 -vt 0.261900 0.757459 -vt 0.304719 0.757459 -vt 0.481345 0.859893 -vt 0.513459 0.859893 -vt 0.513459 0.871082 -vt 0.433174 0.846971 -vt 0.475993 0.846971 -vt 0.347537 0.757459 -vt 0.758309 0.228826 -vt 0.735601 0.174004 -vt 0.790423 0.151296 -vt 0.299366 0.859893 -vt 0.267253 0.859893 -vt 0.390356 0.757459 -vt 0.299366 0.871082 -vt 0.267253 0.871082 -vt 0.433174 0.757459 -vt 0.524164 0.744537 -vt 0.556278 0.744537 -vt 0.475993 0.757459 -vt 0.518811 0.846971 -vt 0.599096 0.859893 -vt 0.599096 0.871082 -vt 0.566982 0.871082 -vt 0.566982 0.859893 -vt 0.556278 0.871082 -vt 0.524164 0.871082 -vt 0.342185 0.871082 -vt 0.310071 0.871082 -vt 0.352890 0.744537 -vt 0.352890 0.733348 -vt 0.385003 0.733348 -vt 0.267253 0.744537 -vt 0.299366 0.744537 -vt 0.438527 0.744537 -vt 0.470641 0.744537 -vt 0.310071 0.744537 -vt 0.342185 0.744537 -vt 0.481345 0.744537 -vt 0.566982 0.744537 -vt 0.599096 0.744537 -vt 0.395708 0.744537 -vt 0.772195 0.090665 -vt 0.717373 0.035843 -vt 0.740081 0.013135 -vt 0.267253 0.733348 -vt 0.299366 0.733348 -vt 0.524164 0.733348 -vt 0.556278 0.733348 -vt 0.513459 0.744537 -vt 0.481345 0.733348 -vt 0.395708 0.733348 -vt 0.427822 0.733348 -vt 0.310071 0.733348 -vt 0.342185 0.733348 -vt 0.566982 0.733348 -vt 0.599096 0.733348 -vt 0.438527 0.733348 -vt 0.683393 0.776958 -vt 0.683397 0.772483 -vt 0.728153 0.772514 -vt 0.683400 0.768007 -vt 0.728156 0.768038 -vt 0.683403 0.763532 -vt 0.728159 0.763562 -vt 0.683384 0.790385 -vt 0.683387 0.785910 -vt 0.728143 0.785941 -vt 0.067126 0.838324 -vt 0.057306 0.839516 -vt 0.056666 0.834944 -vt 0.683390 0.781434 -vt 0.728149 0.776989 -vt 0.728146 0.781465 -vt 0.067317 0.834080 -vt 0.066793 0.829709 -vt 0.111004 0.829580 -vt 0.066780 0.825287 -vt 0.110991 0.825159 -vt 0.066768 0.820866 -vt 0.110979 0.820738 -vt 0.066750 0.847211 -vt 0.066794 0.842732 -vt 0.110975 0.842887 -vt 0.679218 0.789685 -vt 0.671459 0.788850 -vt 0.671862 0.784393 -vt 0.067202 0.838328 -vt 0.111004 0.834165 -vt 0.110989 0.838576 -vt 0.051678 0.847609 -vt 0.041772 0.846616 -vt 0.042374 0.842100 -vt 0.674160 0.762194 -vt 0.673319 0.766590 -vt 0.663549 0.762649 -vt 0.672605 0.775473 -vt 0.682812 0.763577 -vt 0.682763 0.768052 -vt 0.674299 0.766685 -vt 0.058174 0.843923 -vt 0.673379 0.771065 -vt 0.058930 0.848395 -vt 0.064349 0.820957 -vt 0.065236 0.825426 -vt 0.056517 0.825834 -vt 0.056515 0.830390 -vt 0.682187 0.781268 -vt 0.672159 0.779927 -vt 0.680381 0.785363 -vt 0.038883 0.840757 -vt 0.036783 0.844800 -vt 0.029879 0.842581 -vt 0.662835 0.762464 -vt 0.655296 0.758216 -vt 0.658138 0.754759 -vt 0.043747 0.833091 -vt 0.665255 0.786642 -vt 0.655933 0.783690 -vt 0.657422 0.779469 -vt 0.053036 0.843260 -vt 0.043082 0.837599 -vt 0.660559 0.771086 -vt 0.055520 0.825944 -vt 0.044376 0.828578 -vt 0.667438 0.782735 -vt 0.659011 0.775285 -vt 0.055241 0.839272 -vt 0.662075 0.766875 -vt 0.055439 0.821388 -vt 0.044962 0.824060 -vt 0.670362 0.779347 -vt 0.654719 0.757648 -vt 0.644624 0.749397 -vt 0.647751 0.746194 -vt 0.649032 0.764560 -vt 0.646170 0.768001 -vt 0.635538 0.759179 -vt 0.030897 0.828999 -vt 0.033010 0.824962 -vt 0.654338 0.777474 -vt 0.651504 0.780938 -vt 0.645314 0.777412 -vt 0.041651 0.837137 -vt 0.030494 0.838066 -vt 0.651878 0.761106 -vt 0.035812 0.821368 -vt 0.657728 0.774552 -vt 0.646816 0.773195 -vt 0.030287 0.833514 -vt 0.044212 0.824025 -vt 0.037921 0.817330 -vt 0.647535 0.768778 -vt 0.900024 0.577110 -vt 0.900024 0.268841 -vt 0.905404 0.268870 -vt 0.883884 0.577024 -vt 0.883883 0.268754 -vt 0.889263 0.268783 -vt 0.026627 0.837050 -vt 0.024485 0.841071 -vt 0.013135 0.834985 -vt 0.018102 0.822262 -vt 0.020558 0.818424 -vt 0.643304 0.771438 -vt 0.640433 0.774872 -vt 0.630750 0.766732 -vt 0.028765 0.833026 -vt 0.014921 0.830793 -vt 0.638090 0.755503 -vt 0.641225 0.752309 -vt 0.023335 0.814812 -vt 0.633312 0.763062 -vt 0.016327 0.826458 -vt 0.035119 0.820923 -vt 0.025781 0.810967 -vt 0.765504 0.700952 -vt 0.765504 0.611440 -vt 0.776693 0.611440 -vt 0.184864 0.877276 -vt 0.184863 0.569006 -vt 0.190244 0.569035 -vt 0.201005 0.877362 -vt 0.201004 0.569093 -vt 0.206384 0.569122 -vt 0.873123 0.576966 -vt 0.873122 0.268696 -vt 0.878502 0.268725 -vt 0.190244 0.877304 -vt 0.195624 0.569064 -vt 0.889264 0.577052 -vt 0.894643 0.268812 -vt 0.206385 0.877391 -vt 0.211765 0.569151 -vt 0.878503 0.576995 -vt 0.195625 0.877333 -vt 0.894644 0.577081 -vt 0.211766 0.877420 -vt 0.217145 0.569180 -vt 0.765504 0.771979 -vt 0.765504 0.727223 -vt 0.776693 0.727223 -vt 0.261900 0.897353 -vt 0.068457 0.013135 -vt 0.068457 0.242426 -vt 0.659773 0.013135 -vt 0.312139 0.542735 -vt 0.322476 0.332925 -vt 0.693555 0.611440 -vt 0.322476 0.298670 -vt 0.322476 0.469944 -vt 0.322476 0.435689 -vt 0.630750 0.657118 -vt 0.676428 0.719924 -vt 0.739233 0.674246 -vt 0.652692 0.621272 -vt 0.640582 0.697981 -vt 0.717291 0.710092 -vt 0.729402 0.633383 -vt 0.158285 0.736405 -vt 0.146174 0.748516 -vt 0.116936 0.736405 -vt 0.129047 0.707167 -vt 0.158285 0.719278 -vt 0.013136 0.414279 -vt 0.013135 0.482789 -vt 0.013136 0.277260 -vt 0.348747 0.301940 -vt 0.604479 0.542959 -vt 0.846852 0.268696 -vt 0.630750 0.521875 -vt 0.438522 0.695833 -vt 0.352885 0.695804 -vt 0.395704 0.695819 -vt 0.481341 0.695848 -vt 0.709330 0.174004 -vt 0.709330 0.206118 -vt 0.686623 0.228826 -vt 0.631801 0.206118 -vt 0.654509 0.151296 -vt 0.267244 0.706963 -vt 0.556313 0.580518 -vt 0.566974 0.707067 -vt 0.524155 0.707052 -vt 0.342220 0.580445 -vt 0.599131 0.580533 -vt 0.067957 0.707167 -vt 0.090665 0.729875 -vt 0.090665 0.761989 -vt 0.035843 0.784697 -vt 0.013135 0.761989 -vt 0.438527 0.871082 -vt 0.352890 0.871082 -vt 0.395708 0.871082 -vt 0.310071 0.859893 -vt 0.481345 0.871082 -vt 0.813131 0.174004 -vt 0.813131 0.206118 -vt 0.790423 0.228826 -vt 0.735601 0.206118 -vt 0.758309 0.151296 -vt 0.385003 0.744537 -vt 0.427822 0.744537 -vt 0.772195 0.013135 -vt 0.794903 0.035843 -vt 0.794903 0.067957 -vt 0.740081 0.090665 -vt 0.717373 0.067957 -vt 0.513459 0.733348 -vt 0.470641 0.733348 -vt 0.728140 0.790416 -vt 0.110965 0.847308 -vt 0.665123 0.758459 -vt 0.675116 0.762285 -vt 0.056411 0.821279 -vt 0.664346 0.758251 -vt 0.045654 0.819556 -vt 0.657556 0.754186 -vt 0.044837 0.819511 -vt 0.905405 0.577139 -vt 0.037222 0.816881 -vt 0.776693 0.700952 -vt 0.217146 0.877449 -vt 0.776693 0.771979 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.447200 -0.894400 -vn 0.000000 -1.000000 0.000000 -vn -0.970100 0.242500 -0.000000 -vn 0.970100 0.242500 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 1.000000 -0.000000 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 -0.000000 -vn -0.923900 -0.382700 -0.000000 -vn -0.382700 -0.923900 -0.000000 -vn 0.382700 -0.923900 0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.678600 0.281100 -0.678600 -vn 0.382700 0.923900 0.000000 -vn 0.923900 0.382700 0.000000 -vn -0.678600 0.281100 -0.678600 -vn 0.281100 -0.678600 -0.678600 -vn 0.281100 0.678600 -0.678600 -vn -0.281100 0.678600 -0.678600 -vn -0.678600 -0.281100 -0.678600 -vn 0.678600 -0.281100 -0.678600 -vn -0.281100 -0.678600 -0.678600 -vn 0.000000 0.371400 -0.928500 -vn 0.000000 -0.371400 0.928500 -vn 0.000000 -0.707100 -0.707100 -vn 0.000000 0.707100 0.707100 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 0.382700 0.923900 -vn -0.500000 0.866000 0.000000 -vn -0.500000 -0.866000 0.000000 -vn 0.500000 -0.866000 -0.000000 -vn 0.499200 0.832200 -0.241500 -vn 0.500000 0.866000 -0.000000 -vn 0.499800 -0.823600 0.268100 -vn 0.499200 -0.626100 0.599000 -vn -0.470000 -0.648400 0.598900 -vn -0.485700 0.841300 -0.237200 -vn -0.482700 -0.836100 0.260500 -vn 0.478000 -0.445400 0.757100 -vn -0.476000 -0.444900 0.758700 -vn -0.475800 0.669500 -0.570400 -vn 0.499900 0.652600 -0.569400 -vn -0.494100 -0.153200 0.855800 -vn 0.500000 0.148300 -0.853200 -vn -0.476300 0.443000 -0.759600 -vn 0.477500 0.443100 -0.758700 -vn -0.500000 -0.000000 0.866000 -vn 0.500000 0.000000 -0.866000 -vn 0.500000 -0.155000 0.852000 -vn -0.494600 0.146800 -0.856600 -vn 0.500000 -0.000000 0.866000 -vn -0.500000 0.000000 -0.866000 -vn 0.485700 0.841300 -0.237200 -vn 0.482700 -0.836100 0.260500 -vn 0.470000 -0.648400 0.598900 -vn -0.499200 -0.626100 0.599000 -vn -0.499200 0.832200 -0.241500 -vn -0.499800 -0.823600 0.268100 -vn 0.476000 -0.444900 0.758700 -vn -0.478000 -0.445400 0.757100 -vn -0.499900 0.652600 -0.569400 -vn 0.475800 0.669500 -0.570400 -vn -0.500000 -0.155000 0.852100 -vn 0.494600 0.146800 -0.856600 -vn -0.477500 0.443100 -0.758700 -vn 0.476300 0.443000 -0.759600 -vn 0.494100 -0.153200 0.855800 -vn -0.500000 0.148300 -0.853200 -s off -f 8/1/1 7/2/1 3/3/1 -f 2/4/2 1/5/2 5/6/2 -f 3/7/3 7/8/3 5/9/3 -f 7/10/4 8/1/4 6/11/4 -f 2/4/5 4/12/5 3/13/5 -f 12/14/6 11/15/6 9/16/6 -f 14/17/7 13/18/7 15/19/7 -f 10/20/8 9/21/8 13/22/8 -f 11/23/3 15/19/3 13/18/3 -f 14/17/9 16/24/9 12/14/9 -f 20/25/8 19/26/8 17/27/8 -f 24/28/6 23/29/6 19/30/6 -f 22/31/1 21/32/1 23/33/1 -f 18/34/7 17/35/7 21/36/7 -f 19/26/3 23/37/3 21/38/3 -f 24/28/9 20/25/9 18/34/9 -f 26/39/10 28/40/10 27/41/10 -f 28/40/11 30/42/11 29/43/11 -f 30/42/12 32/44/12 31/45/12 -f 32/44/13 34/46/13 33/47/13 -f 34/48/14 36/49/14 35/50/14 -f 36/49/15 38/51/15 37/52/15 -f 38/51/16 63/53/16 64/54/16 -f 39/55/17 40/56/17 26/39/17 -f 38/51/18 40/56/18 39/55/18 -f 29/43/1 31/45/1 44/57/1 -f 41/58/17 49/59/17 56/60/17 -f 37/52/1 47/61/1 46/62/1 -f 31/45/1 33/47/1 45/63/1 -f 37/52/1 39/55/1 48/64/1 -f 29/43/1 43/65/1 42/66/1 -f 35/50/1 46/67/1 45/68/1 -f 39/55/1 25/69/1 41/70/1 -f 27/41/1 42/71/1 41/72/1 -f 52/73/1 54/74/1 56/60/1 -f 47/75/15 55/76/15 54/74/15 -f 45/77/13 53/78/13 52/73/13 -f 43/79/11 51/80/11 50/81/11 -f 48/82/18 56/60/18 55/76/18 -f 46/83/14 54/74/14 53/78/14 -f 44/84/12 52/73/12 51/80/12 -f 42/85/10 50/81/10 49/59/10 -f 63/86/8 61/87/8 58/88/8 -f 28/40/19 57/89/19 59/90/19 -f 34/48/20 61/91/20 62/92/20 -f 26/39/21 40/56/21 64/93/21 -f 26/39/22 58/94/22 57/95/22 -f 30/42/23 59/96/23 60/97/23 -f 38/51/24 36/49/24 62/98/24 -f 34/46/25 32/44/25 60/99/25 -f 72/100/26 71/101/26 67/102/26 -f 65/103/27 69/104/27 70/105/27 -f 71/101/6 69/104/6 65/103/6 -f 72/100/7 68/106/7 66/107/7 -f 66/108/7 68/109/7 76/110/7 -f 67/111/28 75/112/28 76/110/28 -f 74/113/29 73/114/29 65/115/29 -f 65/115/6 73/114/6 75/112/6 -f 100/116/30 101/117/30 103/118/30 -f 81/119/6 77/120/6 78/121/6 -f 80/122/31 82/123/31 81/119/31 -f 98/124/31 104/125/31 105/126/31 -f 87/127/6 89/128/6 98/124/6 -f 81/119/32 82/123/32 84/129/32 -f 99/130/32 103/131/32 104/132/32 -f 87/127/6 97/133/6 96/134/6 -f 83/135/30 84/136/30 86/137/30 -f 78/138/33 102/139/33 101/140/33 -f 91/141/6 93/142/6 100/116/6 -f 86/137/33 88/143/33 87/127/33 -f 106/144/6 104/145/6 101/146/6 -f 83/135/6 85/147/6 96/148/6 -f 88/143/34 90/149/34 89/128/34 -f 89/128/6 91/141/6 99/130/6 -f 95/150/35 96/148/35 106/151/35 -f 90/149/36 92/152/36 91/141/36 -f 82/123/7 80/122/7 110/153/7 -f 93/142/37 94/154/37 80/122/37 -f 92/152/35 94/154/35 93/142/35 -f 77/155/36 95/156/36 107/157/36 -f 83/158/6 95/156/6 77/155/6 -f 93/142/6 79/159/6 78/138/6 -f 78/121/34 77/120/34 108/160/34 -f 97/133/37 105/161/37 106/162/37 -f 113/163/31 121/164/31 122/165/31 -f 84/136/7 111/166/7 112/167/7 -f 92/152/7 115/168/7 116/169/7 -f 88/143/7 86/137/7 112/170/7 -f 94/154/7 116/171/7 110/172/7 -f 88/143/7 113/163/7 114/173/7 -f 84/129/7 82/123/7 109/174/7 -f 90/149/7 114/175/7 115/176/7 -f 123/177/7 120/178/7 119/179/7 -f 111/166/35 119/180/35 120/181/35 -f 110/153/34 118/182/34 117/183/34 -f 116/171/33 124/184/33 118/185/33 -f 114/175/32 122/186/32 123/187/32 -f 112/170/37 120/188/37 121/189/37 -f 109/174/36 117/190/36 119/191/36 -f 115/168/30 123/192/30 124/193/30 -f 147/194/30 148/195/30 149/196/30 -f 129/197/6 125/198/6 126/199/6 -f 128/200/31 130/201/31 129/197/31 -f 145/202/31 146/203/31 152/204/31 -f 135/205/6 137/206/6 146/203/6 -f 130/201/32 132/207/32 131/208/32 -f 146/209/32 147/210/32 151/211/32 -f 133/212/6 135/205/6 145/213/6 -f 131/214/30 132/215/30 134/216/30 -f 148/217/33 126/218/33 150/219/33 -f 139/220/6 141/221/6 148/195/6 -f 133/212/33 134/216/33 136/222/33 -f 154/223/6 152/224/6 149/225/6 -f 133/212/6 144/226/6 143/227/6 -f 136/222/34 138/228/34 137/206/34 -f 139/220/6 147/210/6 146/209/6 -f 144/226/35 154/229/35 155/230/35 -f 138/228/36 140/231/36 139/220/36 -f 128/200/7 158/232/7 157/233/7 -f 142/234/37 128/200/37 127/235/37 -f 140/231/35 142/234/35 141/221/35 -f 143/236/36 155/237/36 156/238/36 -f 131/208/6 143/236/6 125/239/6 -f 127/235/6 126/218/6 148/217/6 -f 125/198/34 156/240/34 150/241/34 -f 145/213/37 153/242/37 154/243/37 -f 161/244/31 169/245/31 170/246/31 -f 132/215/7 159/247/7 160/248/7 -f 140/231/7 163/249/7 164/250/7 -f 134/216/7 160/251/7 161/252/7 -f 128/200/7 142/234/7 164/253/7 -f 138/228/7 136/222/7 161/244/7 -f 130/201/7 157/254/7 159/255/7 -f 140/231/7 138/228/7 162/256/7 -f 171/257/7 168/258/7 167/259/7 -f 159/247/35 167/260/35 168/261/35 -f 158/232/34 166/262/34 165/263/34 -f 158/264/33 164/253/33 172/265/33 -f 162/256/32 170/266/32 171/267/32 -f 160/251/37 168/268/37 169/269/37 -f 157/254/36 165/270/36 167/271/36 -f 164/250/30 163/249/30 171/272/30 -f 2/4/9 6/11/9 8/1/9 -f 174/273/38 176/274/38 175/275/38 -f 176/274/7 178/276/7 177/277/7 -f 178/276/39 180/278/39 179/279/39 -f 180/280/40 182/281/40 181/282/40 -f 196/283/41 208/284/41 204/285/41 -f 184/286/42 174/273/42 173/287/42 -f 182/281/6 184/286/6 183/288/6 -f 186/289/38 188/290/38 187/291/38 -f 188/290/7 190/292/7 189/293/7 -f 190/292/39 192/294/39 191/295/39 -f 192/296/40 194/297/40 193/298/40 -f 180/299/43 200/300/43 201/301/43 -f 196/302/42 186/289/42 185/303/42 -f 194/297/6 196/302/6 195/304/6 -f 206/305/44 218/306/44 219/307/44 -f 200/308/45 199/309/45 211/310/45 -f 176/274/46 174/273/46 198/311/46 -f 180/312/47 178/313/47 199/314/47 -f 194/297/6 207/315/6 208/284/6 -f 178/313/7 176/274/7 197/316/7 -f 192/296/43 206/317/43 207/315/43 -f 188/290/46 186/289/46 204/285/46 -f 192/318/47 190/319/47 205/320/47 -f 190/319/7 188/290/7 203/321/7 -f 184/322/41 202/323/41 198/311/41 -f 182/324/6 201/301/6 202/323/6 -f 219/325/48 218/326/48 230/327/48 -f 211/328/49 223/329/49 224/330/49 -f 203/321/50 204/285/50 216/331/50 -f 200/332/44 212/333/44 213/334/44 -f 207/335/6 219/307/6 220/336/6 -f 197/316/50 198/311/50 210/337/50 -f 205/338/7 203/321/7 215/339/7 -f 201/340/6 213/334/6 214/341/6 -f 208/342/51 220/336/51 216/331/51 -f 199/309/7 197/316/7 209/343/7 -f 206/344/45 205/338/45 217/345/45 -f 202/346/51 214/341/51 210/337/51 -f 223/347/52 235/348/52 236/349/52 -f 222/350/53 226/351/53 238/352/53 -f 216/331/54 228/353/54 227/354/54 -f 213/355/48 212/356/48 224/357/48 -f 220/358/6 219/325/6 231/359/6 -f 210/337/54 222/350/54 221/360/54 -f 215/339/7 227/354/7 229/361/7 -f 214/362/6 213/355/6 225/363/6 -f 216/331/55 220/358/55 232/364/55 -f 209/343/7 221/360/7 223/329/7 -f 217/365/49 229/361/49 230/366/49 -f 210/337/55 214/362/55 226/367/55 -f 235/368/56 247/369/56 248/370/56 -f 238/371/57 250/372/57 246/373/57 -f 231/374/58 230/375/58 242/376/58 -f 228/353/59 240/377/59 239/378/59 -f 225/379/58 224/380/58 236/381/58 -f 232/382/6 231/374/6 243/383/6 -f 222/350/59 234/384/59 233/385/59 -f 227/354/7 239/378/7 241/386/7 -f 226/351/6 225/379/6 237/387/6 -f 228/353/53 232/382/53 244/388/53 -f 221/360/7 233/385/7 235/348/7 -f 229/389/52 241/386/52 242/390/52 -f 257/391/7 259/392/7 260/393/7 -f 242/394/60 254/395/60 255/396/60 -f 240/397/61 252/398/61 251/399/61 -f 236/400/60 248/401/60 249/402/60 -f 243/403/6 255/396/6 256/404/6 -f 234/405/61 246/373/61 245/406/61 -f 239/407/7 251/399/7 253/408/7 -f 237/409/6 249/402/6 250/372/6 -f 240/397/57 244/410/57 256/404/57 -f 233/411/7 245/406/7 247/369/7 -f 241/412/56 253/408/56 254/413/56 -f 261/414/7 263/415/7 264/416/7 -f 4/12/1 8/1/1 3/3/1 -f 6/11/2 2/4/2 5/6/2 -f 1/417/3 3/7/3 5/9/3 -f 5/418/4 7/10/4 6/11/4 -f 1/419/5 2/4/5 3/13/5 -f 10/20/6 12/14/6 9/16/6 -f 16/24/7 14/17/7 15/19/7 -f 14/17/8 10/20/8 13/22/8 -f 9/420/3 11/23/3 13/18/3 -f 10/20/9 14/17/9 12/14/9 -f 18/34/8 20/25/8 17/27/8 -f 20/25/6 24/28/6 19/30/6 -f 24/28/1 22/31/1 23/33/1 -f 22/31/7 18/34/7 21/36/7 -f 17/27/3 19/26/3 21/38/3 -f 22/31/9 24/28/9 18/34/9 -f 25/69/10 26/39/10 27/41/10 -f 27/41/11 28/40/11 29/43/11 -f 29/43/12 30/42/12 31/45/12 -f 31/45/13 32/44/13 33/47/13 -f 33/421/14 34/48/14 35/50/14 -f 35/50/15 36/49/15 37/52/15 -f 40/56/16 38/51/16 64/54/16 -f 25/69/17 39/55/17 26/39/17 -f 37/52/18 38/51/18 39/55/18 -f 43/422/1 29/43/1 44/57/1 -f 48/423/17 41/58/17 56/60/17 -f 35/50/1 37/52/1 46/62/1 -f 44/424/1 31/45/1 45/63/1 -f 47/425/1 37/52/1 48/64/1 -f 27/41/1 29/43/1 42/66/1 -f 33/421/1 35/50/1 45/68/1 -f 48/426/1 39/55/1 41/70/1 -f 25/69/1 27/41/1 41/72/1 -f 56/60/1 49/59/1 50/81/1 -f 50/81/1 51/80/1 52/73/1 -f 52/73/1 53/78/1 54/74/1 -f 54/74/1 55/76/1 56/60/1 -f 56/60/1 50/81/1 52/73/1 -f 46/427/15 47/75/15 54/74/15 -f 44/428/13 45/77/13 52/73/13 -f 42/429/11 43/79/11 50/81/11 -f 47/430/18 48/82/18 55/76/18 -f 45/431/14 46/83/14 53/78/14 -f 43/432/12 44/84/12 51/80/12 -f 41/433/10 42/85/10 49/59/10 -f 59/434/8 57/435/8 58/88/8 -f 58/88/8 64/436/8 63/86/8 -f 63/86/8 62/437/8 61/87/8 -f 61/87/8 60/438/8 59/434/8 -f 59/434/8 58/88/8 61/87/8 -f 30/42/19 28/40/19 59/90/19 -f 36/49/20 34/48/20 62/92/20 -f 58/439/21 26/39/21 64/93/21 -f 28/40/22 26/39/22 57/95/22 -f 32/44/23 30/42/23 60/97/23 -f 63/440/24 38/51/24 62/98/24 -f 61/441/25 34/46/25 60/99/25 -f 68/106/26 72/100/26 67/102/26 -f 66/442/27 65/103/27 70/105/27 -f 67/102/6 71/101/6 65/103/6 -f 70/443/7 72/100/7 66/107/7 -f 74/444/7 66/108/7 76/110/7 -f 68/109/28 67/111/28 76/110/28 -f 66/445/29 74/113/29 65/115/29 -f 67/111/6 65/115/6 75/112/6 -f 99/446/30 100/116/30 103/118/30 -f 79/159/6 81/119/6 78/121/6 -f 79/159/31 80/122/31 81/119/31 -f 97/447/31 98/124/31 105/126/31 -f 97/447/6 87/127/6 98/124/6 -f 83/158/32 81/119/32 84/129/32 -f 98/448/32 99/130/32 104/132/32 -f 85/147/6 87/127/6 96/134/6 -f 85/147/30 83/135/30 86/137/30 -f 100/449/33 78/138/33 101/140/33 -f 99/446/6 91/141/6 100/116/6 -f 85/147/33 86/137/33 87/127/33 -f 101/146/6 102/450/6 108/451/6 -f 108/451/6 107/452/6 106/144/6 -f 106/144/6 105/453/6 104/145/6 -f 104/145/6 103/454/6 101/146/6 -f 101/146/6 108/451/6 106/144/6 -f 95/150/6 83/135/6 96/148/6 -f 87/127/34 88/143/34 89/128/34 -f 98/448/6 89/128/6 99/130/6 -f 107/455/35 95/150/35 106/151/35 -f 89/128/36 90/149/36 91/141/36 -f 109/456/7 82/123/7 110/153/7 -f 79/159/37 93/142/37 80/122/37 -f 91/141/35 92/152/35 93/142/35 -f 108/457/36 77/155/36 107/157/36 -f 81/119/6 83/158/6 77/155/6 -f 100/449/6 93/142/6 78/138/6 -f 102/458/34 78/121/34 108/160/34 -f 96/134/37 97/133/37 106/162/37 -f 114/173/31 113/163/31 122/165/31 -f 86/137/7 84/136/7 112/167/7 -f 94/154/7 92/152/7 116/169/7 -f 113/459/7 88/143/7 112/170/7 -f 80/122/7 94/154/7 110/172/7 -f 90/149/7 88/143/7 114/173/7 -f 111/460/7 84/129/7 109/174/7 -f 92/152/7 90/149/7 115/176/7 -f 119/179/7 117/461/7 118/462/7 -f 118/462/7 124/463/7 119/179/7 -f 123/177/7 122/464/7 121/465/7 -f 121/465/7 120/178/7 123/177/7 -f 119/179/7 124/463/7 123/177/7 -f 112/167/35 111/166/35 120/181/35 -f 109/456/34 110/153/34 117/183/34 -f 110/172/33 116/171/33 118/185/33 -f 115/176/32 114/175/32 123/187/32 -f 113/459/37 112/170/37 121/189/37 -f 111/460/36 109/174/36 119/191/36 -f 116/169/30 115/168/30 124/193/30 -f 151/466/30 147/194/30 149/196/30 -f 127/235/6 129/197/6 126/199/6 -f 127/235/31 128/200/31 129/197/31 -f 153/467/31 145/202/31 152/204/31 -f 145/202/6 135/205/6 146/203/6 -f 129/197/32 130/201/32 131/208/32 -f 152/468/32 146/209/32 151/211/32 -f 144/469/6 133/212/6 145/213/6 -f 133/212/30 131/214/30 134/216/30 -f 149/470/33 148/217/33 150/219/33 -f 147/194/6 139/220/6 148/195/6 -f 135/205/33 133/212/33 136/222/33 -f 149/225/6 150/471/6 156/472/6 -f 156/472/6 155/473/6 154/223/6 -f 154/223/6 153/474/6 152/224/6 -f 152/224/6 151/475/6 149/225/6 -f 149/225/6 156/472/6 154/223/6 -f 131/214/6 133/212/6 143/227/6 -f 135/205/34 136/222/34 137/206/34 -f 137/206/6 139/220/6 146/209/6 -f 143/227/35 144/226/35 155/230/35 -f 137/206/36 138/228/36 139/220/36 -f 130/201/7 128/200/7 157/233/7 -f 141/221/37 142/234/37 127/235/37 -f 139/220/35 140/231/35 141/221/35 -f 125/239/36 143/236/36 156/238/36 -f 129/197/6 131/208/6 125/239/6 -f 141/221/6 127/235/6 148/217/6 -f 126/199/34 125/198/34 150/241/34 -f 144/469/37 145/213/37 154/243/37 -f 162/476/31 161/244/31 170/246/31 -f 134/216/7 132/215/7 160/248/7 -f 142/234/7 140/231/7 164/250/7 -f 136/222/7 134/216/7 161/252/7 -f 158/264/7 128/200/7 164/253/7 -f 162/476/7 138/228/7 161/244/7 -f 132/207/7 130/201/7 159/255/7 -f 163/477/7 140/231/7 162/256/7 -f 167/259/7 165/478/7 166/479/7 -f 166/479/7 172/480/7 167/259/7 -f 171/257/7 170/481/7 169/482/7 -f 169/482/7 168/258/7 171/257/7 -f 167/259/7 172/480/7 171/257/7 -f 160/248/35 159/247/35 168/261/35 -f 157/233/34 158/232/34 165/263/34 -f 166/483/33 158/264/33 172/265/33 -f 163/477/32 162/256/32 171/267/32 -f 161/252/37 160/251/37 169/269/37 -f 159/255/36 157/254/36 167/271/36 -f 172/484/30 164/250/30 171/272/30 -f 4/12/9 2/4/9 8/1/9 -f 173/287/38 174/273/38 175/275/38 -f 175/275/7 176/274/7 177/277/7 -f 177/277/39 178/276/39 179/279/39 -f 179/485/40 180/280/40 181/282/40 -f 186/289/62 196/283/62 204/285/62 -f 183/288/42 184/286/42 173/287/42 -f 181/282/6 182/281/6 183/288/6 -f 185/303/38 186/289/38 187/291/38 -f 187/291/7 188/290/7 189/293/7 -f 189/293/39 190/292/39 191/295/39 -f 191/486/40 192/296/40 193/298/40 -f 182/324/63 180/299/63 201/301/63 -f 195/304/42 196/302/42 185/303/42 -f 193/298/6 194/297/6 195/304/6 -f 207/335/64 206/305/64 219/307/64 -f 212/487/65 200/308/65 211/310/65 -f 197/316/66 176/274/66 198/311/66 -f 200/488/67 180/312/67 199/314/67 -f 196/283/6 194/297/6 208/284/6 -f 199/314/7 178/313/7 197/316/7 -f 194/297/63 192/296/63 207/315/63 -f 203/321/66 188/290/66 204/285/66 -f 206/489/67 192/318/67 205/320/67 -f 205/320/7 190/319/7 203/321/7 -f 174/273/62 184/322/62 198/311/62 -f 184/322/6 182/324/6 202/323/6 -f 231/359/68 219/325/68 230/327/68 -f 212/490/69 211/328/69 224/330/69 -f 215/339/70 203/321/70 216/331/70 -f 201/340/64 200/332/64 213/334/64 -f 208/342/6 207/335/6 220/336/6 -f 209/343/70 197/316/70 210/337/70 -f 217/345/7 205/338/7 215/339/7 -f 202/346/6 201/340/6 214/341/6 -f 204/285/71 208/342/71 216/331/71 -f 211/310/7 199/309/7 209/343/7 -f 218/491/65 206/344/65 217/345/65 -f 198/311/71 202/346/71 210/337/71 -f 224/492/72 223/347/72 236/349/72 -f 234/384/73 222/350/73 238/352/73 -f 215/339/74 216/331/74 227/354/74 -f 225/363/68 213/355/68 224/357/68 -f 232/364/6 220/358/6 231/359/6 -f 209/343/74 210/337/74 221/360/74 -f 217/365/7 215/339/7 229/361/7 -f 226/367/6 214/362/6 225/363/6 -f 228/353/75 216/331/75 232/364/75 -f 211/328/7 209/343/7 223/329/7 -f 218/493/69 217/365/69 230/366/69 -f 222/350/75 210/337/75 226/367/75 -f 236/494/56 235/368/56 248/370/56 -f 234/405/57 238/371/57 246/373/57 -f 243/383/76 231/374/76 242/376/76 -f 227/354/77 228/353/77 239/378/77 -f 237/387/76 225/379/76 236/381/76 -f 244/388/6 232/382/6 243/383/6 -f 221/360/77 222/350/77 233/385/77 -f 229/389/7 227/354/7 241/386/7 -f 238/352/6 226/351/6 237/387/6 -f 240/377/73 228/353/73 244/388/73 -f 223/347/7 221/360/7 235/348/7 -f 230/495/72 229/389/72 242/390/72 -f 258/496/7 257/391/7 260/393/7 -f 243/403/60 242/394/60 255/396/60 -f 239/407/61 240/397/61 251/399/61 -f 237/409/60 236/400/60 249/402/60 -f 244/410/6 243/403/6 256/404/6 -f 233/411/61 234/405/61 245/406/61 -f 241/412/7 239/407/7 253/408/7 -f 238/371/6 237/409/6 250/372/6 -f 252/398/57 240/397/57 256/404/57 -f 235/368/7 233/411/7 247/369/7 -f 242/497/56 241/412/56 254/413/56 -f 262/498/7 261/414/7 264/416/7 diff --git a/src/main/resources/assets/hbm/models/ams_limiter_destroyed.obj b/src/main/resources/assets/hbm/models/ams_limiter_destroyed.obj deleted file mode 100644 index 91b48848e..000000000 --- a/src/main/resources/assets/hbm/models/ams_limiter_destroyed.obj +++ /dev/null @@ -1,1975 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'ams_limiter_destroyed.blend' -# www.blender.org -o Cube.001_Cube.002 -v 0.500001 0.000000 -2.500000 -v 0.250001 1.000000 -2.000000 -v 0.500000 0.000000 2.500000 -v 0.250000 1.000000 2.500000 -v -0.499999 0.000000 -2.500000 -v -0.249999 1.000000 -2.000000 -v -0.500000 0.000000 2.500000 -v -0.250000 1.000000 2.500000 -v 0.156251 0.343750 -2.500000 -v 0.156251 0.656250 -2.500000 -v 0.156251 0.343750 -2.150000 -v 0.156251 0.656250 -2.150000 -v -0.156249 0.343750 -2.500000 -v -0.156249 0.656250 -2.500000 -v -0.156249 0.343750 -2.150000 -v -0.156249 0.656250 -2.150000 -v -0.500000 0.343750 -0.156250 -v -0.500000 0.656250 -0.156250 -v 0.500000 0.343750 -0.156250 -v 0.500000 0.656250 -0.156250 -v -0.500000 0.343750 0.156250 -v -0.500000 0.656250 0.156250 -v 0.500000 0.343750 0.156250 -v 0.500000 0.656250 0.156250 -v -0.000000 6.000000 2.250000 -v 0.000000 6.000000 -0.750000 -v -0.353553 5.853553 2.250000 -v -0.284015 5.814950 -0.671109 -v -0.500000 5.500000 2.250000 -v -0.500000 5.500000 -0.750000 -v -0.353553 5.146447 2.250000 -v -0.353553 5.146447 -0.750000 -v 0.000000 5.000000 2.250000 -v 0.000000 5.000000 -0.750000 -v 0.353553 5.146447 2.250000 -v 0.353554 5.146447 -0.750000 -v 0.500000 5.500000 2.250000 -v 0.500000 5.500000 -0.750000 -v 0.353553 5.853553 2.250000 -v 0.353554 5.853553 -0.750000 -v -0.000000 5.875000 2.250000 -v -0.265165 5.765165 2.250000 -v -0.375000 5.500000 2.250000 -v -0.265165 5.234835 2.250000 -v -0.000000 5.125000 2.250000 -v 0.265165 5.234835 2.250000 -v 0.375000 5.500000 2.250000 -v 0.265165 5.765165 2.250000 -v -0.000000 5.875000 2.400000 -v -0.265165 5.765165 2.400000 -v -0.375000 5.500000 2.400000 -v -0.265165 5.234835 2.400000 -v -0.000000 5.125000 2.400000 -v 0.265165 5.234835 2.400000 -v 0.375000 5.500000 2.400000 -v 0.265165 5.765165 2.400000 -v -0.176776 5.676777 -1.000000 -v 0.000000 5.750000 -1.000000 -v -0.250000 5.500000 -1.000000 -v -0.176776 5.323223 -1.000000 -v 0.000000 5.250000 -1.000000 -v 0.176777 5.323223 -1.000000 -v 0.250000 5.500000 -1.000000 -v 0.117861 5.676777 -1.000000 -v 0.250000 3.000000 0.000000 -v -0.250000 3.000000 0.000000 -v 0.250000 3.000000 -1.000000 -v -0.250000 3.000000 -1.000000 -v 0.250000 5.500000 1.000000 -v -0.250000 5.500000 1.000000 -v 0.250000 5.500000 0.000000 -v -0.250000 5.500000 0.000000 -v 0.250000 1.000000 2.000000 -v -0.250000 1.000000 2.000000 -v 0.250000 1.000000 1.000000 -v -0.250000 1.000000 1.000000 -v 0.500000 2.668544 -0.168544 -v 0.500000 3.000000 -0.031250 -v -0.423231 5.685335 -0.750000 -v -0.500000 3.000000 0.125000 -v 0.500000 2.558058 -0.058058 -v -0.384796 2.558058 -0.058058 -v 0.500000 2.375000 -0.500000 -v -0.384796 2.375000 -0.500000 -v 0.500000 2.558058 -0.941942 -v -0.500000 2.558058 -0.941942 -v 0.500000 3.000000 -1.125000 -v -0.419908 3.000000 -1.125000 -v 0.500001 3.441942 -0.941942 -v -0.419908 3.441942 -0.941942 -v 0.500000 3.625000 -0.500000 -v -0.500000 3.625000 -0.500000 -v 0.500000 3.441942 -0.058058 -v -0.500000 3.441942 -0.058058 -v 0.500000 2.531250 -0.500000 -v 0.500000 2.668544 -0.831456 -v 0.500000 3.000000 -0.968750 -v 0.500001 3.331456 -0.831456 -v 0.500000 3.468750 -0.500000 -v 0.500000 3.331456 -0.168544 -v 0.375000 3.331456 -0.168544 -v 0.375000 3.000000 -0.031250 -v 0.375001 3.468750 -0.500000 -v 0.375001 3.331456 -0.831456 -v 0.375000 3.000000 -0.968750 -v 0.375000 2.668544 -0.831456 -v 0.375000 2.531250 -0.500000 -v 0.375000 2.668544 -0.168544 -v -0.384796 2.668544 -0.168544 -v -0.500000 3.000000 -0.031250 -v -0.384796 2.531250 -0.500000 -v -0.500000 2.668544 -0.831456 -v -0.419908 3.000000 -0.968750 -v -0.419908 3.331456 -0.831456 -v -0.500000 3.468750 -0.500000 -v -0.500000 3.331456 -0.168544 -v -0.375000 2.668544 -0.168544 -v -0.375000 3.000000 -0.031250 -v -0.375000 2.531250 -0.500000 -v -0.375000 2.668544 -0.831456 -v -0.375000 3.000000 -0.968750 -v -0.375000 3.331456 -0.831456 -v -0.375000 3.468750 -0.500000 -v -0.375000 3.331456 -0.168544 -v 0.500000 0.668544 1.831456 -v 0.442675 1.000000 1.968750 -v 0.500000 1.000000 2.125000 -v -0.500000 1.000000 2.125000 -v 0.500000 0.558058 1.941942 -v -0.500000 0.558058 1.941942 -v 0.473514 0.375000 1.500000 -v -0.500000 0.375000 1.500000 -v 0.500000 0.558058 1.058058 -v -0.409995 0.558058 1.058058 -v 0.500000 1.000000 0.875000 -v -0.500000 1.000000 0.875000 -v 0.500000 1.441942 1.058058 -v -0.389769 1.441942 1.058058 -v 0.500000 1.625000 1.500000 -v -0.500000 1.625000 1.500000 -v 0.454203 1.441942 1.941942 -v -0.500000 1.441942 1.941942 -v 0.500000 0.531250 1.500000 -v 0.500000 0.668544 1.168544 -v 0.468772 1.000000 1.031250 -v 0.500000 1.331456 1.168544 -v 0.500000 1.468750 1.500000 -v 0.500000 1.331456 1.831456 -v 0.375000 1.331456 1.831456 -v 0.375000 1.000000 1.968750 -v 0.375000 1.468750 1.500000 -v 0.375000 1.331456 1.168544 -v 0.375000 1.000000 1.031250 -v 0.375000 0.668544 1.168544 -v 0.375000 0.531250 1.500000 -v 0.375000 0.668544 1.831456 -v -0.500000 0.668544 1.831456 -v -0.500000 1.000000 1.968750 -v -0.500000 0.531250 1.500000 -v -0.437944 0.668544 1.168544 -v -0.500000 1.000000 1.031250 -v -0.500000 1.331456 1.168544 -v -0.500000 1.468750 1.500000 -v -0.500000 1.331456 1.831456 -v -0.375000 0.668544 1.831456 -v -0.375000 1.000000 1.968750 -v -0.375000 0.531250 1.500000 -v -0.375000 0.668544 1.168544 -v -0.375000 1.000000 1.031250 -v -0.375000 1.331456 1.168544 -v -0.375000 1.468750 1.500000 -v -0.375000 1.331456 1.831456 -v 0.125000 5.550000 -1.000000 -v 0.125001 5.550000 -1.529299 -v 0.081699 5.525000 -1.000000 -v 0.081699 5.525000 -1.500000 -v 0.081699 5.475000 -1.000000 -v 0.081699 5.475000 -1.500000 -v 0.125000 5.450000 -1.000000 -v 0.125001 5.465403 -1.500000 -v 0.168302 5.475000 -1.000000 -v 0.168302 5.490403 -1.500000 -v 0.168302 5.525000 -1.000000 -v 0.168302 5.525000 -1.529299 -v -0.125000 5.550000 -1.000000 -v -0.124999 5.550000 -1.415755 -v -0.168301 5.525000 -1.000000 -v -0.168301 5.525000 -1.415755 -v -0.168301 5.475000 -1.000000 -v -0.168301 5.475000 -1.444207 -v -0.125000 5.450000 -1.000000 -v -0.124999 5.450000 -1.444207 -v -0.081698 5.475000 -1.000000 -v -0.081698 5.475000 -1.401928 -v -0.081698 5.525000 -1.000000 -v -0.081698 5.525000 -1.401928 -v 0.081699 5.493492 -1.608551 -v 0.125001 5.516984 -1.617101 -v 0.081699 5.446507 -1.591449 -v 0.125001 5.423015 -1.582899 -v 0.158606 5.461866 -1.572706 -v 0.158606 5.508851 -1.589807 -v 0.060597 5.404948 -1.710039 -v 0.107675 5.424099 -1.726108 -v 0.060597 5.366646 -1.677899 -v 0.125001 5.378422 -1.661829 -v 0.149664 5.397573 -1.677899 -v 0.132338 5.404948 -1.710039 -v 0.088062 5.291929 -1.776042 -v 0.125001 5.296270 -1.779593 -v 0.088062 5.283247 -1.726802 -v 0.125001 5.278905 -1.702182 -v 0.168302 5.283247 -1.726802 -v 0.168302 5.291929 -1.754973 -v 0.081699 5.139866 -1.802469 -v 0.125001 5.139866 -1.827469 -v 0.081699 5.139866 -1.752469 -v 0.125001 5.139866 -1.727469 -v 0.168302 5.139866 -1.752469 -v 0.168302 5.139866 -1.802469 -v -0.168301 2.329531 -1.802469 -v -0.124999 2.329531 -1.827469 -v -0.168301 2.374010 -1.752469 -v -0.124999 2.374009 -1.727469 -v -0.081698 2.349475 -1.752469 -v -0.081698 2.349475 -1.802469 -v 0.081690 0.999866 -1.802482 -v 0.124992 0.999866 -1.827482 -v 0.081690 0.999866 -1.752481 -v 0.124992 0.999866 -1.727482 -v 0.168293 0.999866 -1.752481 -v 0.168293 0.999866 -1.802482 -v -0.168310 0.999866 -1.802482 -v -0.125008 0.999866 -1.827482 -v -0.168310 0.999866 -1.752481 -v -0.125008 0.999866 -1.727482 -v -0.081707 0.999866 -1.752481 -v -0.081707 0.999866 -1.802482 -v -0.353553 5.853553 2.109199 -v -0.000000 6.000000 2.100358 -v 0.000000 6.000000 0.153545 -v -0.353553 5.853553 -0.082499 -v 0.250000 6.112938 -0.437500 -v 0.288408 6.184640 -0.349866 -v 0.250000 5.875000 -0.437500 -v 0.250000 5.875000 -0.312500 -v -0.250000 2.597353 0.402647 -v -0.250000 2.463976 0.536024 -v -0.250000 2.398072 0.601928 -v -0.250000 2.289816 0.710184 -v -0.250000 2.256785 0.241390 -v -0.095115 2.543376 0.456624 -v -0.250000 2.042544 0.412356 -v -0.117151 2.340268 0.659732 -v 0.000000 6.000000 0.627565 -v -0.179890 5.925487 2.136442 -v -0.500000 5.500000 -0.016080 -v -0.429121 5.671118 2.161449 -v -0.480274 5.547625 2.114357 -v -0.500000 5.500000 2.124016 -v -0.423915 5.683683 -0.152559 -v 0.019273 5.946055 2.527040 -v -0.287760 5.818878 2.527040 -v -0.414938 5.511845 2.527040 -v -0.287760 5.204813 2.527040 -v 0.019273 5.077635 2.527040 -v -0.250000 4.101781 0.440713 -v 0.453483 5.511845 2.527040 -v 0.326306 5.818878 2.527040 -v -0.305937 5.774995 2.527040 -v -0.350030 5.355145 2.527040 -v -0.320766 5.284495 2.527040 -v -0.307236 5.336403 2.400000 -v -0.295632 5.308388 2.400000 -v 0.291434 5.833322 2.527040 -v 0.283332 5.187013 2.527040 -v 0.338103 5.233295 2.527040 -v 0.309289 5.341361 2.400000 -v 0.368675 5.307101 2.527040 -v 0.352046 5.266954 2.527040 -v -0.303246 5.326770 2.299464 -v -0.047650 5.105355 2.527040 -v -0.250000 4.905931 0.762372 -v -0.250000 4.914361 0.377399 -v -0.250000 4.788579 0.002054 -v -0.250000 4.696013 0.417826 -v -0.250000 4.609168 0.350851 -v -0.250000 4.568822 -0.067782 -v -0.298062 4.464652 0.269784 -v -0.250000 4.394123 0.045963 -v -0.104880 4.837244 0.734897 -v -0.046049 4.696583 0.678633 -v -0.006951 4.433455 0.535678 -v -0.437121 2.905017 -1.085657 -v -0.447927 2.845390 -1.060958 -v -0.438181 2.903665 -0.997329 -v -0.460508 2.775968 -1.032203 -v -0.454160 2.810996 -1.046712 -v -0.141359 2.854985 -1.064933 -v 0.250000 1.000000 -0.512755 -v -0.500000 0.000000 -0.719755 -v -0.250000 1.000000 -0.353168 -v 0.250000 1.000000 -0.912394 -v -0.500000 0.000000 -1.023838 -v -0.237882 2.780495 -1.034078 -v -0.250000 1.000000 -1.034424 -v -0.453965 2.814699 -0.997020 -v -0.206808 0.943261 -0.495975 -v -0.206808 0.943261 -0.891617 -v 0.308540 3.000000 0.125000 -v 0.500000 2.879200 0.074963 -v 0.500000 3.152224 0.061947 -v -0.353553 5.853553 -0.487427 -v -0.112383 5.953449 -0.750000 -v -0.239789 5.739789 -0.910887 -v 0.375000 5.500000 2.240000 -v 0.265165 5.234835 2.240000 -v -0.000000 5.125000 2.240000 -v -0.265165 5.234835 2.240000 -v -0.375000 5.500000 2.240000 -v -0.265165 5.765165 2.240000 -v -0.000000 5.875000 2.240000 -v -0.434729 5.657577 -0.552405 -v 0.265165 5.765165 2.240000 -v 0.375000 5.500000 -0.260000 -v 0.265165 5.765165 -0.260000 -v 0.000000 5.125000 -0.260000 -v 0.265165 5.234835 -0.260000 -v -0.265165 5.234835 -0.260000 -v -0.375000 5.500000 -0.260000 -v -0.265165 5.765165 -0.260000 -v 0.000000 5.875000 -0.260000 -v 0.250000 4.286113 -0.485555 -v 0.250000 4.531216 -0.387513 -v -0.500000 5.500000 0.327085 -v -0.500000 5.500000 0.748971 -v 0.244522 5.898715 0.595689 -v 0.000000 6.000000 1.520329 -v 0.250000 4.220100 0.030607 -v 0.101789 4.412081 -0.435168 -v 0.000000 6.000000 1.384084 -v -0.500000 5.500000 1.135705 -v -0.500000 5.500000 0.991573 -v -0.444947 5.367091 0.454149 -v -0.479794 5.451220 0.533265 -v -0.404518 5.269486 0.654633 -v 0.291628 5.879205 1.518940 -v -0.500000 5.500000 1.684756 -v -0.500000 5.500000 1.532431 -v -0.403552 5.267155 1.084509 -v 0.000000 6.000000 0.540157 -v -0.390852 5.236492 1.604031 -v -0.500000 1.479257 1.851856 -v -0.500000 1.519205 1.755411 -v -0.500000 1.569501 1.633987 -v 0.000000 5.875000 0.744922 -v -0.265165 5.765165 0.805178 -v -0.265165 5.765165 0.633837 -v -0.375000 5.500000 0.684706 -v 0.250000 2.117095 -0.117095 -v 0.250000 2.322012 -0.322012 -v -0.500000 1.433133 1.723705 -v -0.064632 1.568936 1.635352 -v -0.265165 5.765165 0.977100 -v -0.287144 1.509039 1.779956 -v -0.265165 5.765165 1.102731 -v 0.250000 2.418591 -0.005401 -v -0.046211 2.207144 -0.207144 -v 0.000000 5.875000 1.045270 -v -0.350791 5.558444 0.958491 -v -0.375000 5.500000 1.655340 -v -0.265165 5.765165 1.554705 -v -0.265165 5.765165 1.755584 -v -0.000000 5.875000 2.021457 -v -0.375000 5.500000 0.306500 -v -0.078299 5.842568 1.666237 -v -0.375000 5.500000 1.994211 -v 0.353554 5.146447 1.421638 -v 0.353554 5.146447 1.661390 -v 0.147143 5.060948 1.550736 -v 0.455659 5.392951 1.494021 -vt 0.400957 0.088468 -vt 0.469079 0.071437 -vt 0.469079 0.139559 -vt 0.094411 0.122528 -vt 0.018249 0.139558 -vt 0.018249 0.071438 -vt 0.658668 0.642378 -vt 0.439333 0.710500 -vt 0.318060 0.642378 -vt 0.160908 0.018251 -vt 0.160186 0.088468 -vt 0.094411 0.088468 -vt 0.168499 0.122529 -vt 0.195722 0.122529 -vt 0.060350 0.192746 -vt 0.828219 0.664014 -vt 0.828219 0.685302 -vt 0.804376 0.685302 -vt 0.804376 0.642726 -vt 0.804376 0.621438 -vt 0.828219 0.621438 -vt 0.783088 0.685302 -vt 0.804376 0.706590 -vt 0.828219 0.706590 -vt 0.828219 0.642726 -vt 0.702025 0.333235 -vt 0.723313 0.333235 -vt 0.723313 0.401356 -vt 0.744601 0.311947 -vt 0.744601 0.333235 -vt 0.680737 0.401356 -vt 0.659449 0.401356 -vt 0.659449 0.333235 -vt 0.723313 0.422644 -vt 0.744601 0.401356 -vt 0.680737 0.333235 -vt 0.702025 0.401356 -vt 0.502511 0.909263 -vt 0.504938 0.895447 -vt 0.517319 0.901112 -vt 0.497553 0.785962 -vt 0.490522 0.782412 -vt 0.344447 0.746998 -vt 0.341246 0.858949 -vt 0.341246 0.832880 -vt 0.545611 0.832880 -vt 0.946940 0.092025 -vt 0.946940 0.109603 -vt 0.930217 0.118264 -vt 0.930645 0.096813 -vt 0.044137 0.750250 -vt 0.044137 0.776319 -vt 0.020951 0.769802 -vt 0.248501 0.750250 -vt 0.577027 0.776666 -vt 0.577027 0.746998 -vt 0.585980 0.750706 -vt 0.958150 0.747616 -vt 0.957827 0.757829 -vt 0.938285 0.757211 -vt 0.248501 0.776319 -vt 0.256368 0.779578 -vt 0.256368 0.799129 -vt 0.545611 0.858949 -vt 0.553478 0.836139 -vt 0.256368 0.753509 -vt 0.273664 0.650502 -vt 0.281531 0.653761 -vt 0.281531 0.673313 -vt 0.850036 0.831736 -vt 0.857902 0.834998 -vt 0.857895 0.854549 -vt 0.771947 0.051768 -vt 0.771947 0.021394 -vt 0.781113 0.025191 -vt 0.273664 0.676571 -vt 0.281531 0.679830 -vt 0.281531 0.699382 -vt 0.365262 0.928824 -vt 0.331885 0.942649 -vt 0.318060 0.909272 -vt 0.933009 0.174796 -vt 0.944706 0.164578 -vt 0.952560 0.174796 -vt 0.553817 0.952382 -vt 0.564035 0.952382 -vt 0.564035 0.971934 -vt 0.401760 0.973945 -vt 0.401760 0.954393 -vt 0.411978 0.954393 -vt 0.944068 0.426203 -vt 0.944068 0.436421 -vt 0.924516 0.436421 -vt 0.508824 0.974249 -vt 0.498605 0.974249 -vt 0.498605 0.954698 -vt 0.637022 0.605543 -vt 0.617515 0.604219 -vt 0.625435 0.587650 -vt 0.162101 0.934387 -vt 0.162101 0.944605 -vt 0.142550 0.944605 -vt 0.234985 0.848103 -vt 0.244202 0.838886 -vt 0.247910 0.868819 -vt 0.506154 0.895717 -vt 0.489277 0.897996 -vt 0.645662 0.857734 -vt 0.622478 0.851209 -vt 0.622483 0.838175 -vt 0.533836 0.021394 -vt 0.533836 0.051767 -vt 0.505577 0.039854 -vt 0.489277 0.918177 -vt 0.344447 0.776666 -vt 0.318060 0.769249 -vt 0.318060 0.754415 -vt 0.044137 0.802388 -vt 0.020951 0.795871 -vt 0.318060 0.852432 -vt 0.617225 0.460597 -vt 0.581777 0.460597 -vt 0.584093 0.447107 -vt 0.487197 0.300176 -vt 0.453736 0.299806 -vt 0.462289 0.272359 -vt 0.226972 0.713752 -vt 0.043549 0.713752 -vt 0.729483 0.630321 -vt 0.501015 0.303450 -vt 0.529630 0.302031 -vt 0.507894 0.317571 -vt 0.839737 0.896739 -vt 0.863566 0.910359 -vt 0.837653 0.915294 -vt 0.815623 0.422644 -vt 0.958271 0.815391 -vt 0.815623 0.230485 -vt 0.919494 0.894303 -vt 0.939620 0.908339 -vt 0.931126 0.918223 -vt 0.858361 0.497771 -vt 0.810192 0.545940 -vt 0.102345 0.949425 -vt 0.476163 0.596964 -vt 0.476168 0.605696 -vt 0.451106 0.605710 -vt 0.523041 0.586973 -vt 0.547440 0.586971 -vt 0.543244 0.597104 -vt 0.547436 0.524865 -vt 0.513862 0.573534 -vt 0.409614 0.596780 -vt 0.409609 0.605359 -vt 0.384985 0.605343 -vt 0.380893 0.586854 -vt 0.413724 0.586875 -vt 0.581012 0.524862 -vt 0.442763 0.596911 -vt 0.442757 0.605585 -vt 0.417862 0.605569 -vt 0.321839 0.526230 -vt 0.353193 0.520840 -vt 0.348922 0.585358 -vt 0.509655 0.597021 -vt 0.509647 0.605780 -vt 0.484506 0.605756 -vt 0.446918 0.586896 -vt 0.480334 0.586877 -vt 0.365339 0.539037 -vt 0.374487 0.522087 -vt 0.156766 0.897889 -vt 0.139484 0.856168 -vt 0.181205 0.838886 -vt 0.318060 0.583315 -vt 0.344448 0.594416 -vt 0.380047 0.524194 -vt 0.413095 0.523389 -vt 0.321301 0.592884 -vt 0.343914 0.602481 -vt 0.446445 0.517279 -vt 0.513858 0.516781 -vt 0.520144 0.507793 -vt 0.480066 0.516928 -vt 0.551638 0.597103 -vt 0.576821 0.597101 -vt 0.576821 0.605875 -vt 0.581017 0.586968 -vt 0.502309 0.586898 -vt 0.484515 0.596997 -vt 0.518061 0.597106 -vt 0.543244 0.605878 -vt 0.352322 0.598308 -vt 0.344678 0.594912 -vt 0.383935 0.514120 -vt 0.383860 0.511018 -vt 0.408645 0.510414 -vt 0.323884 0.516336 -vt 0.450542 0.507089 -vt 0.475757 0.506826 -vt 0.813480 0.968780 -vt 0.828649 0.968780 -vt 0.828170 0.972340 -vt 0.484246 0.506711 -vt 0.509590 0.506602 -vt 0.408721 0.513517 -vt 0.551632 0.514732 -vt 0.415288 0.512689 -vt 0.759700 0.953306 -vt 0.717979 0.911585 -vt 0.735261 0.894303 -vt 0.323591 0.515774 -vt 0.344169 0.505065 -vt 0.545851 0.514012 -vt 0.524715 0.500304 -vt 0.484207 0.497881 -vt 0.509552 0.497771 -vt 0.414064 0.509798 -vt 0.437162 0.500025 -vt 0.378974 0.517449 -vt 0.358061 0.514220 -vt 0.360682 0.507519 -vt 0.551632 0.514044 -vt 0.576814 0.514042 -vt 0.450450 0.498303 -vt 0.475665 0.498040 -vt 0.162250 0.602225 -vt 0.184293 0.600530 -vt 0.184884 0.608210 -vt 0.218732 0.594048 -vt 0.250083 0.594109 -vt 0.246145 0.603563 -vt 0.218860 0.528510 -vt 0.250211 0.528571 -vt 0.094344 0.604751 -vt 0.120918 0.604233 -vt 0.120297 0.613438 -vt 0.089934 0.593849 -vt 0.125238 0.593540 -vt 0.281562 0.528632 -vt 0.281437 0.592435 -vt 0.129290 0.603407 -vt 0.153782 0.603481 -vt 0.153757 0.612014 -vt 0.085554 0.604955 -vt 0.058572 0.604665 -vt 0.018249 0.591864 -vt 0.018249 0.518920 -vt 0.054092 0.525664 -vt 0.214243 0.603989 -vt 0.214417 0.608421 -vt 0.190923 0.609348 -vt 0.187387 0.590985 -vt 0.089934 0.518920 -vt 0.639760 0.953306 -vt 0.622478 0.911585 -vt 0.664200 0.894303 -vt 0.054091 0.593849 -vt 0.049067 0.604423 -vt 0.129624 0.529633 -vt 0.157894 0.593638 -vt 0.048590 0.613777 -vt 0.021743 0.612409 -vt 0.167431 0.529225 -vt 0.222798 0.519056 -vt 0.246311 0.519102 -vt 0.182837 0.530371 -vt 0.980000 0.613642 -vt 0.973681 0.620436 -vt 0.965419 0.607394 -vt 0.277945 0.602217 -vt 0.278346 0.610399 -vt 0.254861 0.611550 -vt 0.254460 0.603367 -vt 0.190600 0.601162 -vt 0.222347 0.604340 -vt 0.245117 0.611690 -vt 0.086088 0.611961 -vt 0.059284 0.614004 -vt 0.097201 0.508039 -vt 0.099241 0.497771 -vt 0.128710 0.503626 -vt 0.024580 0.509072 -vt 0.051397 0.514080 -vt 0.047876 0.938643 -vt 0.044508 0.943906 -vt 0.018249 0.927523 -vt 0.056786 0.514080 -vt 0.186778 0.519268 -vt 0.254148 0.519118 -vt 0.277661 0.519164 -vt 0.135875 0.516297 -vt 0.163464 0.517863 -vt 0.876437 0.151028 -vt 0.834716 0.109307 -vt 0.851998 0.092025 -vt 0.027843 0.500293 -vt 0.222814 0.510864 -vt 0.246327 0.510910 -vt 0.213796 0.517871 -vt 0.186292 0.509854 -vt 0.136421 0.506684 -vt 0.164010 0.508251 -vt 0.055143 0.509659 -vt 0.080340 0.500293 -vt 0.254164 0.510925 -vt 0.277677 0.510971 -vt 0.180160 0.525735 -vt 0.171603 0.523815 -vt 0.172272 0.520834 -vt 0.613535 0.392672 -vt 0.589096 0.359843 -vt 0.593583 0.359448 -vt 0.596585 0.357012 -vt 0.619847 0.387949 -vt 0.599330 0.354949 -vt 0.582066 0.367826 -vt 0.585202 0.365566 -vt 0.607332 0.397289 -vt 0.610433 0.394980 -vt 0.585995 0.362151 -vt 0.555755 0.905665 -vt 0.555755 0.902259 -vt 0.584077 0.902259 -vt 0.553817 0.898853 -vt 0.584077 0.898853 -vt 0.553817 0.895447 -vt 0.584077 0.895447 -vt 0.584077 0.915884 -vt 0.553817 0.915884 -vt 0.556697 0.912478 -vt 0.578440 0.362946 -vt 0.576435 0.355877 -vt 0.580429 0.356940 -vt 0.556697 0.909072 -vt 0.584077 0.905665 -vt 0.584077 0.909072 -vt 0.593483 0.349786 -vt 0.592996 0.340362 -vt 0.597846 0.342550 -vt 0.586276 0.352998 -vt 0.589917 0.351476 -vt 0.599696 0.355426 -vt 0.593600 0.350089 -vt 0.585240 0.360681 -vt 0.584203 0.355788 -vt 0.582384 0.362835 -vt 0.592364 0.338579 -vt 0.590371 0.330901 -vt 0.593742 0.329886 -vt 0.576355 0.351266 -vt 0.577270 0.344170 -vt 0.580041 0.344164 -vt 0.584969 0.341689 -vt 0.583357 0.354886 -vt 0.579535 0.353906 -vt 0.589070 0.340750 -vt 0.582250 0.342223 -vt 0.590383 0.330750 -vt 0.591000 0.319261 -vt 0.594882 0.319966 -vt 0.583504 0.330766 -vt 0.579571 0.331086 -vt 0.579353 0.318516 -vt 0.576734 0.341757 -vt 0.573855 0.333787 -vt 0.577406 0.332066 -vt 0.586443 0.330528 -vt 0.582313 0.340895 -vt 0.579505 0.341764 -vt 0.971987 0.662547 -vt 0.968435 0.663880 -vt 0.972350 0.659161 -vt 0.579590 0.331264 -vt 0.591072 0.318857 -vt 0.619036 0.094519 -vt 0.622950 0.095018 -vt 0.579330 0.317361 -vt 0.607293 0.093023 -vt 0.611208 0.093522 -vt 0.968372 0.656934 -vt 0.577245 0.331136 -vt 0.573340 0.331703 -vt 0.571766 0.320662 -vt 0.583244 0.317860 -vt 0.965419 0.658631 -vt 0.575607 0.319758 -vt 0.587158 0.318359 -vt 0.965419 0.662298 -vt 0.514399 0.915940 -vt 0.508984 0.180204 -vt 0.505578 0.181875 -vt 0.505577 0.088266 -vt 0.515796 0.178845 -vt 0.515795 0.088266 -vt 0.519201 0.088266 -vt 0.571501 0.316364 -vt 0.599465 0.092025 -vt 0.603379 0.092524 -vt 0.512390 0.180204 -vt 0.508983 0.088266 -vt 0.615122 0.094020 -vt 0.519202 0.178845 -vt 0.522607 0.088266 -vt 0.575415 0.316863 -vt 0.512389 0.088266 -vt 0.526014 0.181875 -vt 0.522608 0.181875 -vt 0.967051 0.566473 -vt 0.965419 0.550346 -vt 0.973890 0.549489 -vt 0.919494 0.919973 -vt 0.923216 0.230485 -vt 0.941443 0.249540 -vt 0.933717 0.256310 -vt 0.923215 0.257932 -vt 0.870748 0.926350 -vt 0.873626 0.906938 -vt 0.886717 0.422408 -vt 0.968476 0.700378 -vt 0.971646 0.702682 -vt 0.965475 0.701990 -vt 0.971646 0.706088 -vt 0.968550 0.707791 -vt 0.965419 0.706450 -vt 0.263470 0.702640 -vt 0.265928 0.689376 -vt 0.273664 0.702640 -vt 0.264424 0.654014 -vt 0.265082 0.650503 -vt 0.421081 0.954098 -vt 0.421081 0.973501 -vt 0.945854 0.446542 -vt 0.923215 0.446542 -vt 0.452685 0.906504 -vt 0.429564 0.895447 -vt 0.452118 0.895447 -vt 0.637714 0.595349 -vt 0.631735 0.584872 -vt 0.640629 0.582439 -vt 0.162123 0.954127 -vt 0.401760 0.903747 -vt 0.426848 0.913635 -vt 0.618208 0.594024 -vt 0.617515 0.585026 -vt 0.623377 0.585424 -vt 0.713579 0.275449 -vt 0.664709 0.216727 -vt 0.662790 0.196243 -vt 0.933009 0.164578 -vt 0.930217 0.154763 -vt 0.945314 0.154763 -vt 0.452778 0.917599 -vt 0.486649 0.283867 -vt 0.489277 0.974146 -vt 0.952560 0.164578 -vt 0.948274 0.154763 -vt 0.958150 0.767827 -vt 0.938092 0.767192 -vt 0.573037 0.954869 -vt 0.831221 0.018249 -vt 0.858163 0.018249 -vt 0.817612 0.038365 -vt 0.846253 0.039083 -vt 0.852444 0.043265 -vt 0.400957 0.018249 -vt 0.206593 0.088468 -vt 0.826808 0.975449 -vt 0.255150 0.971853 -vt 0.234985 0.965983 -vt 0.255881 0.965983 -vt 0.252192 0.977094 -vt 0.374945 0.520030 -vt 0.366466 0.524366 -vt 0.400957 0.122529 -vt 0.760663 0.159314 -vt 0.787615 0.159314 -vt 0.786472 0.190672 -vt 0.772371 0.092025 -vt 0.798166 0.161946 -vt 0.798218 0.156903 -vt 0.759248 0.190672 -vt 0.750077 0.156832 -vt 0.751656 0.092026 -vt 0.750189 0.162232 -vt 0.384227 0.596762 -vt 0.376300 0.599429 -vt 0.018249 0.884507 -vt 0.018249 0.871473 -vt 0.026514 0.869150 -vt 0.041435 0.891024 -vt 0.059322 0.864955 -vt 0.102986 0.891024 -vt 0.974986 0.028862 -vt 0.961918 0.018249 -vt 0.977712 0.018249 -vt 0.964634 0.035241 -vt 0.026514 0.860761 -vt 0.018249 0.858438 -vt 0.018249 0.845404 -vt 0.271518 0.365278 -vt 0.305339 0.351269 -vt 0.319348 0.385090 -vt 0.044237 0.865876 -vt 0.091431 0.838886 -vt 0.082134 0.852430 -vt 0.066031 0.324961 -vt 0.032191 0.338827 -vt 0.018325 0.304986 -vt 0.149494 0.243254 -vt 0.163503 0.229245 -vt 0.201517 0.433390 -vt 0.080080 0.311019 -vt 0.094129 0.297078 -vt 0.215566 0.419448 -vt 0.168789 0.345253 -vt 0.219262 0.395438 -vt 0.939730 0.361803 -vt 0.939730 0.382513 -vt 0.926494 0.389704 -vt 0.180276 0.301444 -vt 0.162414 0.283408 -vt 0.173420 0.461273 -vt 0.051983 0.338902 -vt 0.187468 0.447331 -vt 0.923215 0.374315 -vt 0.591578 0.436048 -vt 0.928920 0.681194 -vt 0.900693 0.746998 -vt 0.928920 0.497771 -vt 0.714085 0.021408 -vt 0.714043 0.021428 -vt 0.980031 0.607394 -vt 0.047907 0.927523 -vt 0.176013 0.527988 -vt 0.176814 0.526857 -vt 0.257511 0.907882 -vt 0.239158 0.929485 -vt 0.234985 0.906853 -vt 0.261122 0.929485 -vt 0.934067 0.294430 -vt 0.938155 0.312098 -vt 0.923215 0.325305 -vt 0.923215 0.305209 -vt 0.925420 0.039451 -vt 0.909017 0.050857 -vt 0.925103 0.018249 -vt 0.909017 0.029891 -vt 0.228512 0.350623 -vt 0.182176 0.336604 -vt 0.164000 0.312494 -vt 0.121967 0.269880 -vt 0.108010 0.283416 -vt 0.154990 0.331355 -vt 0.172126 0.320826 -vt 0.180732 0.329522 -vt 0.219147 0.368685 -vt 0.244365 0.366470 -vt 0.242891 0.392891 -vt 0.215951 0.361585 -vt 0.545252 0.436048 -vt 0.974213 0.497771 -vt 0.919494 0.975304 -vt 0.318060 0.710500 -vt 0.418618 0.710500 -vt 0.658668 0.710500 -vt 0.060350 0.018251 -vt 0.400957 0.192747 -vt 0.804376 0.664014 -vt 0.783088 0.706590 -vt 0.723313 0.311947 -vt 0.744601 0.422644 -vt 0.567260 0.776666 -vt 0.533204 0.776666 -vt 0.530571 0.786628 -vt 0.527515 0.796382 -vt 0.512476 0.786737 -vt 0.508746 0.795297 -vt 0.500327 0.794810 -vt 0.513747 0.795586 -vt 0.438825 0.777489 -vt 0.486018 0.777489 -vt 0.489536 0.786488 -vt 0.018249 0.755012 -vt 0.585980 0.772957 -vt 0.938608 0.746998 -vt 0.248501 0.802388 -vt 0.553478 0.855690 -vt 0.256368 0.773061 -vt 0.850027 0.857805 -vt 0.781113 0.047971 -vt 0.331885 0.895447 -vt 0.351437 0.895447 -vt 0.365262 0.909272 -vt 0.351437 0.942649 -vt 0.318060 0.928824 -vt 0.553817 0.971934 -vt 0.411978 0.973945 -vt 0.924516 0.426203 -vt 0.508824 0.954698 -vt 0.623619 0.594391 -vt 0.142550 0.934387 -vt 0.266453 0.848103 -vt 0.266453 0.861138 -vt 0.257236 0.870354 -vt 0.234985 0.861138 -vt 0.257236 0.838886 -vt 0.645671 0.831665 -vt 0.506800 0.028909 -vt 0.020951 0.782836 -vt 0.318060 0.839397 -vt 0.746590 0.661431 -vt 0.695166 0.710499 -vt 0.018249 0.650502 -vt 0.695166 0.621438 -vt 0.355846 0.229245 -vt 0.423968 0.229245 -vt 0.475902 0.359080 -vt 0.492089 0.399549 -vt 0.495288 0.341410 -vt 0.453990 0.304301 -vt 0.423968 0.399549 -vt 0.535003 0.307223 -vt 0.709438 0.795167 -vt 0.670648 0.795167 -vt 0.815155 0.746998 -vt 0.863324 0.795167 -vt 0.739066 0.795167 -vt 0.622478 0.746998 -vt 0.862157 0.916550 -vt 0.781653 0.422644 -vt 0.938092 0.804325 -vt 0.781653 0.230485 -vt 0.938092 0.824066 -vt 0.665684 0.497771 -vt 0.084406 0.935763 -vt 0.617515 0.545940 -vt 0.102345 0.927523 -vt 0.451101 0.596978 -vt 0.384991 0.596764 -vt 0.417867 0.596895 -vt 0.367717 0.523953 -vt 0.367435 0.525110 -vt 0.371401 0.524095 -vt 0.376007 0.523935 -vt 0.198487 0.856168 -vt 0.198487 0.880607 -vt 0.181205 0.897889 -vt 0.139484 0.880607 -vt 0.156766 0.838886 -vt 0.320767 0.600949 -vt 0.551639 0.605877 -vt 0.518062 0.605880 -vt 0.347900 0.512235 -vt 0.576815 0.514730 -vt 0.440567 0.508072 -vt 0.759700 0.894303 -vt 0.776982 0.911585 -vt 0.776982 0.936025 -vt 0.735261 0.953306 -vt 0.717979 0.936025 -vt 0.546210 0.513425 -vt 0.379916 0.515041 -vt 0.162840 0.609905 -vt 0.093878 0.611656 -vt 0.129265 0.611941 -vt 0.681481 0.911585 -vt 0.681481 0.936025 -vt 0.664200 0.953306 -vt 0.622478 0.936025 -vt 0.639760 0.894303 -vt 0.022220 0.603055 -vt 0.221790 0.608740 -vt 0.126670 0.513893 -vt 0.083604 0.509072 -vt 0.876437 0.092025 -vt 0.893719 0.109307 -vt 0.893719 0.133747 -vt 0.851998 0.151028 -vt 0.834716 0.133747 -vt 0.053040 0.509659 -vt 0.213309 0.508458 -vt 0.180829 0.522754 -vt 0.616694 0.390314 -vt 0.622950 0.385635 -vt 0.604196 0.399549 -vt 0.584077 0.912478 -vt 0.597427 0.349692 -vt 0.597214 0.348530 -vt 0.597563 0.337451 -vt 0.593888 0.331075 -vt 0.594987 0.319356 -vt 0.526013 0.088266 -vt 0.973890 0.570896 -vt 0.852790 0.422408 -vt 0.880906 0.932281 -vt 0.852790 0.230485 -vt 0.886717 0.230485 -vt 0.882996 0.902728 -vt 0.264072 0.676571 -vt 0.267632 0.663120 -vt 0.646356 0.592473 -vt 0.139484 0.954127 -vt 0.679518 0.172862 -vt 0.679518 0.092025 -vt 0.713579 0.092025 -vt 0.679518 0.275449 -vt 0.659449 0.236759 -vt 0.665904 0.227734 -vt 0.489277 0.954676 -vt 0.950756 0.154763 -vt 0.573037 0.972573 -vt 0.872519 0.032985 -vt 0.181621 0.018249 -vt 0.041435 0.882738 -vt 0.086906 0.864955 -vt 0.041435 0.838886 -vt 0.041435 0.852552 -vt 0.305339 0.399099 -vt 0.285527 0.399099 -vt 0.271518 0.385090 -vt 0.285527 0.351269 -vt 0.319348 0.365278 -vt 0.032374 0.291044 -vt 0.052166 0.291120 -vt 0.066107 0.305169 -vt 0.018249 0.324778 -vt 0.229349 0.405947 -vt 0.257509 0.379287 -vt 0.135837 0.256477 -vt 0.894860 0.497771 -vt 0.901594 0.748001 -vt 0.899823 0.849485 -vt 0.899823 0.747984 -vt 0.714008 0.018249 -vt 0.760070 0.021394 -vt 0.176314 0.528147 -vt 0.177471 0.528996 -vt 0.176490 0.528240 -vt 0.175398 0.528773 -vt 0.209003 0.357628 -vt 0.189764 0.338777 -vt 0.809938 0.831722 -vt 0.935257 0.960747 -vt 0.919494 0.956471 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.447200 -0.894400 -vn 0.000000 -1.000000 0.000000 -vn -0.970100 0.242500 -0.000000 -vn 0.970100 0.242500 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 1.000000 -0.000000 -vn -0.698100 0.713500 0.059600 -vn -0.923900 -0.382700 0.000000 -vn -0.382700 -0.923900 -0.000000 -vn 0.600100 -0.444000 0.665400 -vn 0.555300 -0.612200 -0.562900 -vn 0.678600 0.281100 -0.678600 -vn 0.923900 0.382700 0.000000 -vn 0.382700 0.923900 0.000000 -vn 0.923900 -0.382700 0.000000 -vn -0.923900 0.382700 -0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 0.923900 0.000000 -vn -0.529700 0.776600 -0.341100 -vn 0.281100 -0.678600 -0.678600 -vn 0.268700 0.648700 -0.712000 -vn -0.680000 0.654400 -0.330600 -vn -0.678600 -0.281100 -0.678600 -vn 0.678600 -0.281100 -0.678600 -vn -0.281100 -0.678600 -0.678600 -vn 0.663200 0.742400 0.094900 -vn -0.799100 0.483100 0.357800 -vn 0.000000 -0.707100 -0.707100 -vn -0.581200 0.665600 -0.468100 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.923900 -0.382700 -vn -0.967700 -0.252200 -0.000000 -vn 0.000000 0.382700 0.923900 -vn 0.000000 0.707100 -0.707100 -vn -0.967700 0.000000 0.252200 -vn -0.019900 0.674100 -0.738400 -vn -0.984000 -0.126100 -0.126100 -vn 0.966200 0.171000 0.193100 -vn 0.953200 0.279400 0.115700 -vn 0.998200 -0.042300 0.042300 -vn -0.238900 0.913700 -0.328800 -vn 0.983600 -0.166700 0.069100 -vn 0.898000 -0.291800 -0.329400 -vn -0.982900 0.000000 -0.184000 -vn -0.285800 0.331200 -0.899200 -vn -0.976500 -0.213000 -0.034000 -vn -0.970300 0.242000 0.000000 -vn -0.794800 0.560700 -0.232200 -vn -0.500000 0.866000 0.000000 -vn -0.216400 -0.976300 0.000000 -vn 0.499800 -0.865700 -0.026700 -vn 0.500000 0.866000 0.000000 -vn -0.500000 -0.866000 0.000000 -vn 0.500000 -0.866000 0.000000 -vn 0.665300 -0.664700 0.339900 -vn -0.037000 -0.729500 0.683000 -vn -0.500000 0.810600 -0.304800 -vn -0.207000 -0.934000 0.291000 -vn 0.477400 0.826900 -0.297200 -vn 0.991500 -0.084000 -0.099200 -vn -0.505800 -0.554200 0.661100 -vn 0.705900 -0.616700 0.348400 -vn -0.484100 0.702500 -0.521600 -vn 0.997300 -0.025200 -0.069400 -vn -0.986200 0.056600 0.155600 -vn 0.608200 0.530000 -0.590900 -vn -0.495600 -0.131700 0.858500 -vn 0.496900 0.258700 -0.828300 -vn 0.491600 -0.327200 0.807000 -vn -0.131700 0.367400 -0.920700 -vn 0.864800 0.310000 -0.395100 -vn -0.975900 -0.215000 -0.037900 -vn 0.246500 0.870000 -0.426900 -vn 0.474800 0.451500 -0.755500 -vn -0.500000 -0.000000 0.866000 -vn 0.500000 0.000000 -0.866000 -vn 0.207100 0.731000 -0.650200 -vn 0.500000 -0.155000 0.852000 -vn -0.125300 0.290400 -0.948700 -vn -0.112200 0.974500 -0.194300 -vn -0.999100 0.041800 0.000000 -vn -0.418300 0.908300 0.000000 -vn -0.680200 0.621800 -0.388200 -vn 0.500000 -0.000000 0.866000 -vn -0.500000 0.000000 -0.866000 -vn -0.421000 -0.388200 0.819800 -vn -0.471600 0.678500 -0.563300 -vn -0.507300 -0.405500 0.760400 -vn 0.000000 0.707100 0.707100 -vn 0.274600 0.475600 -0.835700 -vn 0.152100 -0.263400 -0.952600 -vn 0.698600 0.000000 -0.715500 -vn 0.142900 0.422100 -0.895200 -vn -0.878300 0.363800 -0.310100 -vn 0.790000 0.327200 -0.518500 -vn -0.682100 -0.499100 0.534500 -vn -0.895300 -0.370800 -0.246900 -vn -0.347800 0.839800 -0.416900 -vn -0.818500 0.560800 0.124800 -vn -0.789600 -0.581900 0.195000 -vn 0.240400 -0.435600 0.867500 -vn 0.814600 -0.337400 -0.471800 -vn -0.430800 -0.902200 -0.019800 -vn -0.305500 -0.925000 0.225900 -vn 0.355000 -0.857100 -0.373400 -vn 0.331800 0.801000 -0.498300 -vn -0.367900 -0.888200 -0.275300 -vn -0.147000 0.950900 0.272500 -vn -0.621100 -0.780100 0.075200 -vn -0.722100 -0.422500 0.547800 -vn -0.143500 -0.986900 0.074100 -vn -0.031900 0.739500 -0.672400 -vn -0.165600 -0.986000 -0.017100 -vn -0.977700 0.173000 -0.119100 -vn -0.123300 0.992400 -0.000000 -vn -0.954900 0.296800 -0.000000 -vn -0.845300 0.357000 -0.397500 -vn -0.127400 0.907900 -0.399300 -vn -0.095800 0.914800 0.392400 -vn -0.902600 0.229500 0.364200 -vn 0.756000 0.250500 0.604800 -vn -0.281100 0.678600 -0.678600 -vn 0.522500 0.563000 0.640300 -vn 0.571300 -0.428600 0.700000 -vn -0.678600 0.281100 -0.678600 -vn -0.532500 0.483300 -0.694900 -vn -0.587400 0.488300 0.645400 -vn 0.641800 -0.615300 -0.457800 -vn -0.000000 0.371400 -0.928500 -vn -0.123800 -0.343000 0.931100 -vn -0.001900 0.549600 0.835400 -vn 0.435700 -0.860900 0.262600 -vn 0.363900 0.323600 -0.873400 -vn -0.404600 0.630100 -0.662800 -vn -0.256400 0.019200 0.966400 -vn -0.385800 0.509300 -0.769300 -vn -0.482200 0.353500 0.801600 -vn -0.793800 0.460500 -0.397300 -vn 0.518200 0.387400 -0.762500 -vn 0.402200 0.647400 -0.647400 -vn -0.978100 -0.113500 -0.174300 -vn -0.944600 -0.232100 -0.232100 -vn -0.944600 -0.232100 0.232100 -vn -0.972000 0.000000 -0.234900 -vn 0.898000 0.291800 -0.329400 -vn 0.966200 -0.171000 0.193100 -vn 0.994700 0.000000 0.103100 -vn 0.983600 -0.166700 -0.069100 -vn 0.998200 -0.042300 -0.042300 -vn 0.959500 0.186800 0.210900 -vn -0.976500 -0.034000 -0.213000 -vn -0.982900 -0.184000 -0.000000 -vn -0.794800 0.232200 -0.560700 -vn -0.970300 0.000000 -0.242000 -vn -0.499800 -0.865700 -0.026700 -vn 0.482300 -0.835400 0.263600 -vn -0.494900 -0.756600 0.427400 -vn -0.596400 0.770800 -0.223700 -vn -0.497100 -0.772500 0.395000 -vn 0.456000 0.833000 -0.313200 -vn 0.988100 -0.052500 -0.144300 -vn -0.160400 -0.370900 0.914700 -vn 0.661300 -0.663700 0.349400 -vn -0.468300 0.711700 -0.523600 -vn 0.874200 0.256300 -0.412500 -vn -0.984300 0.113600 0.135300 -vn 0.708900 0.477200 -0.519300 -vn -0.560500 -0.148200 0.814800 -vn 0.483300 0.256200 -0.837100 -vn 0.643000 -0.210200 0.736400 -vn -0.432200 0.374100 -0.820500 -vn 0.958700 0.271800 0.083800 -vn -0.957400 -0.185600 -0.221200 -vn 0.688600 0.357300 -0.631000 -vn 0.494100 -0.153200 0.855800 -vn -0.492800 0.169000 -0.853600 -vn -0.999000 0.043000 0.007600 -vn -0.945000 0.152200 0.289600 -vn 0.000000 -0.371400 0.928500 -vn 0.089900 -0.334500 0.938100 -vn -0.135000 -0.368000 0.920000 -vn -0.717400 -0.411900 0.561900 -vn -0.984000 0.178300 -0.000000 -vn -0.984600 0.174600 -0.009100 -vn -0.982000 0.188900 -0.008900 -vn -0.984000 0.126100 -0.126100 -vn -0.971400 0.227200 -0.069500 -vn -0.975900 0.206300 -0.071300 -s off -f 8/1/1 7/2/1 3/3/1 -f 2/4/2 1/5/2 5/6/2 -f 3/7/3 301/8/3 1/9/3 -f 304/10/4 306/11/4 6/12/4 -f 303/13/5 300/14/5 1/15/5 -f 12/16/6 11/17/6 9/18/6 -f 14/19/7 13/20/7 15/21/7 -f 10/22/8 9/18/8 13/23/8 -f 11/17/3 15/24/3 13/23/3 -f 14/19/9 16/25/9 12/16/9 -f 20/26/8 19/27/8 17/28/8 -f 24/29/6 23/30/6 19/27/6 -f 22/31/1 21/32/1 23/33/1 -f 18/34/7 17/28/7 21/35/7 -f 19/27/3 23/30/3 21/35/3 -f 24/36/9 20/26/9 18/37/9 -f 28/38/10 79/39/10 323/40/10 -f 346/41/11 344/42/11 32/43/11 -f 32/44/12 34/45/12 33/46/12 -f 380/47/13 378/48/13 381/49/13 -f 380/47/14 381/49/14 379/50/14 -f 40/51/15 38/52/15 63/53/15 -f 38/52/16 40/51/16 39/54/16 -f 29/55/1 31/56/1 44/57/1 -f 41/58/17 49/59/17 56/60/17 -f 37/61/1 47/62/1 46/63/1 -f 31/64/1 33/46/1 45/65/1 -f 37/61/1 39/54/1 48/66/1 -f 29/67/1 43/68/1 42/69/1 -f 35/70/1 46/71/1 45/72/1 -f 39/73/1 25/74/1 41/75/1 -f 27/76/1 42/77/1 41/78/1 -f 44/79/1 46/80/1 48/81/1 -f 47/82/18 278/83/18 46/84/18 -f 45/85/12 53/86/12 52/87/12 -f 42/88/19 43/89/19 51/90/19 -f 48/91/16 56/92/16 55/93/16 -f 46/94/20 54/95/20 53/96/20 -f 43/97/11 44/98/11 281/99/11 -f 42/100/21 50/101/21 49/102/21 -f 62/103/8 61/104/8 64/105/8 -f 79/106/22 28/38/22 315/107/22 -f 34/108/23 61/109/23 62/110/23 -f 26/111/24 40/112/24 64/113/24 -f 28/38/25 314/114/25 315/107/25 -f 30/115/26 59/116/26 60/117/26 -f 38/52/27 36/118/27 62/119/27 -f 34/45/28 32/44/28 60/120/28 -f 339/121/29 333/122/29 340/123/29 -f 290/124/30 267/125/30 293/126/30 -f 69/127/6 65/128/6 339/129/6 -f 288/130/7 287/131/7 285/132/7 -f 253/133/7 249/134/7 251/135/7 -f 68/136/31 368/137/31 76/138/31 -f 251/139/32 248/140/32 252/141/32 -f 73/142/6 75/143/6 367/144/6 -f 100/145/33 101/146/33 103/147/33 -f 311/148/6 81/149/6 77/150/6 -f 82/151/34 81/149/34 310/152/34 -f 98/153/34 104/154/34 105/155/34 -f 87/156/6 89/157/6 98/153/6 -f 81/149/35 82/151/35 84/158/35 -f 99/159/35 103/160/35 104/161/35 -f 84/162/33 86/163/33 85/164/33 -f 78/165/36 102/166/36 101/167/36 -f 91/168/6 93/169/6 100/145/6 -f 305/170/36 299/171/36 85/164/36 -f 106/172/6 104/173/6 101/174/6 -f 83/175/6 85/164/6 96/176/6 -f 88/177/37 90/178/37 89/157/37 -f 89/157/6 91/168/6 99/159/6 -f 95/179/38 96/176/38 106/180/38 -f 90/178/39 92/181/39 91/168/39 -f 82/151/40 80/182/40 110/183/40 -f 94/184/41 310/152/41 93/169/41 -f 92/181/38 94/184/38 93/169/38 -f 77/185/39 95/186/39 107/187/39 -f 83/188/6 95/186/6 77/185/6 -f 312/189/6 78/165/6 100/190/6 -f 78/191/37 77/150/37 108/192/37 -f 106/193/42 96/194/42 85/164/42 -f 113/195/34 121/196/34 122/197/34 -f 86/163/43 84/162/43 111/198/43 -f 92/181/7 115/199/7 116/200/7 -f 305/201/44 297/202/44 307/203/44 -f 94/184/7 116/204/7 110/205/7 -f 88/177/7 113/195/7 114/206/7 -f 84/158/7 82/151/7 109/207/7 -f 92/181/45 90/178/45 114/208/45 -f 123/209/7 120/210/7 119/211/7 -f 111/198/38 119/212/38 120/213/38 -f 109/214/37 110/183/37 118/215/37 -f 116/204/36 124/216/36 118/217/36 -f 114/208/35 122/218/35 123/219/35 -f 113/220/41 112/221/41 120/222/41 -f 109/207/39 117/223/39 119/224/39 -f 115/199/33 123/225/33 124/226/33 -f 147/227/33 148/228/33 149/229/33 -f 127/230/6 129/231/6 125/232/6 -f 128/233/34 130/234/34 129/231/34 -f 145/235/34 146/236/34 152/237/34 -f 135/238/6 137/239/6 146/236/6 -f 130/234/35 132/240/35 131/241/35 -f 146/242/35 147/243/35 151/244/35 -f 135/238/46 145/245/46 144/246/46 -f 131/247/33 132/248/33 134/249/33 -f 126/250/36 150/251/36 149/252/36 -f 141/253/47 148/228/47 147/227/47 -f 134/249/36 136/254/36 135/238/36 -f 154/255/6 152/256/6 149/257/6 -f 131/247/48 133/258/48 144/259/48 -f 135/238/37 136/254/37 138/260/37 -f 139/261/6 147/243/6 146/242/6 -f 144/259/38 154/262/38 155/263/38 -f 138/260/39 140/264/39 139/261/39 -f 128/233/7 158/265/7 157/266/7 -f 141/253/41 142/267/41 128/233/41 -f 362/268/49 353/269/49 365/270/49 -f 143/271/39 155/272/39 156/273/39 -f 131/241/50 143/271/50 125/274/50 -f 127/230/51 126/250/51 148/275/51 -f 126/276/37 125/232/37 156/277/37 -f 145/245/41 153/278/41 154/279/41 -f 161/280/34 169/281/34 170/282/34 -f 132/248/52 159/283/52 160/284/52 -f 362/285/53 354/286/53 363/287/53 -f 136/254/54 134/249/54 160/288/54 -f 128/233/7 142/267/7 164/289/7 -f 138/260/55 136/254/55 161/280/55 -f 130/234/7 157/290/7 159/291/7 -f 138/260/56 162/292/56 163/293/56 -f 171/294/7 168/295/7 167/296/7 -f 160/284/38 159/283/38 167/297/38 -f 158/265/37 166/298/37 165/299/37 -f 158/300/36 164/289/36 172/301/36 -f 162/292/35 170/302/35 171/303/35 -f 160/288/41 168/304/41 169/305/41 -f 157/290/39 165/306/39 167/307/39 -f 164/308/33 163/309/33 171/310/33 -f 2/4/9 6/12/9 306/11/9 -f 173/311/57 174/312/57 176/313/57 -f 176/313/7 178/314/7 177/315/7 -f 177/315/58 178/314/58 180/316/58 -f 180/317/59 182/318/59 181/319/59 -f 183/320/60 184/321/60 174/312/60 -f 182/318/6 184/321/6 183/320/6 -f 186/322/57 188/323/57 187/324/57 -f 188/323/7 190/325/7 189/326/7 -f 190/325/61 192/327/61 191/328/61 -f 191/329/62 192/330/62 194/331/62 -f 180/332/63 200/333/63 201/334/63 -f 196/335/60 186/322/60 185/336/60 -f 194/331/6 196/335/6 195/337/6 -f 199/338/64 205/339/64 206/340/64 -f 174/312/65 198/341/65 197/342/65 -f 180/343/66 178/314/66 199/344/66 -f 178/314/7 176/313/7 197/342/7 -f 174/312/67 184/345/67 202/346/67 -f 184/345/68 182/347/68 201/334/68 -f 205/348/69 211/349/69 212/350/69 -f 200/351/70 206/352/70 207/353/70 -f 197/342/71 198/341/71 204/354/71 -f 202/355/72 201/356/72 207/353/72 -f 199/338/73 197/342/73 203/357/73 -f 198/341/74 202/355/74 208/358/74 -f 211/359/75 217/360/75 218/361/75 -f 210/362/76 214/363/76 220/364/76 -f 206/365/77 212/366/77 213/367/77 -f 204/354/78 210/362/78 209/368/78 -f 208/369/79 207/370/79 213/367/79 -f 203/357/80 209/368/80 211/349/80 -f 224/371/81 225/372/81 223/373/81 -f 208/369/82 214/374/82 210/362/82 -f 217/375/83 229/376/83 230/377/83 -f 220/378/84 232/379/84 228/380/84 -f 221/381/85 223/373/85 225/372/85 -f 213/382/86 212/383/86 218/384/86 -f 209/368/87 210/362/87 216/385/87 -f 222/386/88 221/381/88 225/372/88 -f 214/363/6 213/382/6 219/387/6 -f 209/368/89 215/388/89 217/360/89 -f 226/389/90 222/386/90 225/372/90 -f 313/390/91 314/114/91 28/38/91 -f 225/391/92 224/392/92 236/393/92 -f 222/394/93 234/395/93 233/396/93 -f 218/397/92 230/398/92 231/399/92 -f 226/400/6 225/391/6 237/401/6 -f 216/385/93 228/380/93 227/402/93 -f 221/403/7 233/396/7 235/404/7 -f 219/405/6 231/399/6 232/379/6 -f 222/394/84 226/400/84 238/406/84 -f 215/388/7 227/402/7 229/376/7 -f 224/407/83 223/408/83 235/404/83 -f 243/409/7 245/410/7 246/411/7 -f 251/139/94 252/141/94 247/412/94 -f 253/413/95 250/414/95 254/415/95 -f 253/413/96 254/415/96 249/416/96 -f 252/417/97 254/418/97 65/419/97 -f 190/420/98 188/421/98 192/422/98 -f 186/423/99 196/424/99 188/421/99 -f 194/425/100 192/422/100 196/424/100 -f 192/422/101 188/421/101 196/424/101 -f 240/426/21 256/427/21 25/428/21 -f 259/429/19 260/430/19 29/67/19 -f 51/90/102 264/431/102 270/432/102 -f 56/92/103 269/433/103 268/434/103 -f 291/435/104 286/436/104 292/437/104 -f 51/438/105 273/439/105 271/440/105 -f 49/102/106 50/101/106 263/441/106 -f 286/436/107 291/435/107 285/442/107 -f 291/435/108 284/443/108 285/442/108 -f 52/444/105 265/445/105 272/446/105 -f 69/447/109 292/448/109 293/449/109 -f 55/450/110 268/451/110 279/452/110 -f 284/443/111 291/435/111 283/453/111 -f 293/126/112 289/454/112 290/124/112 -f 53/96/113 54/95/113 276/455/113 -f 54/456/110 278/83/110 280/457/110 -f 49/59/114 262/458/114 275/459/114 -f 52/87/115 53/86/115 282/460/115 -f 289/461/116 293/462/116 288/463/116 -f 288/463/117 293/462/117 287/464/117 -f 286/465/118 287/464/118 293/462/118 -f 7/466/4 8/1/4 302/467/4 -f 305/201/119 307/203/119 298/468/119 -f 296/469/120 299/470/120 295/471/120 -f 296/469/121 294/472/121 299/470/121 -f 296/473/122 307/474/122 112/221/122 -f 4/475/9 300/14/9 302/467/9 -f 309/476/123 308/477/123 300/478/123 -f 301/479/124 308/477/124 309/476/124 -f 302/480/125 308/477/125 301/479/125 -f 300/478/126 308/477/126 302/481/126 -f 303/482/127 306/483/127 309/476/127 -f 304/484/128 309/476/128 306/485/128 -f 97/486/3 105/487/3 87/156/3 -f 105/487/129 106/193/129 85/164/129 -f 58/488/130 57/489/130 315/490/130 -f 26/491/21 313/492/21 241/493/21 -f 78/494/131 310/495/131 311/496/131 -f 310/495/132 78/494/132 312/497/132 -f 315/498/133 57/499/133 59/500/133 -f 319/501/1 317/502/1 324/503/1 -f 323/504/19 257/505/19 261/506/19 -f 328/507/8 329/508/8 331/509/8 -f 319/501/12 329/510/12 327/511/12 -f 316/512/16 325/513/16 326/514/16 -f 324/515/17 369/516/17 374/517/17 -f 371/518/134 373/519/134 376/520/134 -f 359/521/11 375/522/11 329/510/11 -f 318/523/20 327/524/20 328/507/20 -f 317/525/18 328/507/18 325/513/18 -f 376/520/135 372/526/135 371/518/135 -f 339/121/136 340/123/136 334/527/136 -f 72/528/137 340/529/137 68/530/137 -f 337/531/17 341/532/17 347/532/17 -f 354/533/138 362/268/138 365/270/138 -f 363/287/139 355/534/139 362/285/139 -f 139/261/38 363/535/38 141/253/38 -f 362/536/7 163/309/7 164/308/7 -f 367/537/140 368/538/140 361/539/140 -f 367/537/141 360/540/141 368/538/141 -f 370/541/142 366/542/142 369/543/142 -f 369/543/143 364/544/143 370/541/143 -f 357/545/144 356/546/144 359/547/144 -f 358/548/145 359/547/145 356/546/145 -f 359/521/19 371/549/19 370/550/19 -f 375/522/19 358/551/19 331/552/19 -f 332/553/21 331/552/21 358/551/21 -f 356/554/21 357/555/21 364/556/21 -f 373/557/19 377/558/19 321/559/19 -f 374/517/21 369/516/21 376/560/21 -f 34/108/20 378/561/20 380/562/20 -f 381/563/18 38/52/18 37/61/18 -f 4/475/1 8/1/1 3/3/1 -f 6/12/2 2/4/2 5/6/2 -f 5/564/3 1/9/3 304/565/3 -f 3/7/3 7/566/3 301/8/3 -f 301/8/3 304/565/3 1/9/3 -f 5/567/4 304/10/4 6/12/4 -f 3/568/5 1/15/5 300/14/5 -f 2/4/5 303/13/5 1/15/5 -f 300/14/5 4/475/5 3/568/5 -f 10/569/6 12/16/6 9/18/6 -f 16/25/7 14/19/7 15/21/7 -f 14/570/8 10/22/8 13/23/8 -f 9/18/3 11/17/3 13/23/3 -f 10/569/9 14/19/9 12/16/9 -f 18/37/8 20/26/8 17/28/8 -f 20/571/6 24/29/6 19/27/6 -f 24/36/1 22/31/1 23/33/1 -f 22/572/7 18/34/7 21/35/7 -f 17/28/3 19/27/3 21/35/3 -f 22/31/9 24/36/9 18/37/9 -f 313/390/146 28/38/146 323/40/146 -f 31/56/11 29/55/11 260/573/11 -f 260/573/11 348/574/11 352/575/11 -f 352/575/11 349/576/11 350/577/11 -f 350/577/11 343/578/11 336/579/11 -f 349/576/11 342/580/11 350/577/11 -f 31/56/11 260/573/11 352/575/11 -f 257/581/11 30/115/11 32/43/11 -f 32/43/11 31/56/11 346/41/11 -f 350/577/11 336/579/11 346/41/11 -f 31/56/11 352/575/11 350/577/11 -f 335/582/11 257/581/11 344/42/11 -f 346/41/11 345/583/11 344/42/11 -f 344/42/11 257/581/11 32/43/11 -f 31/56/11 350/577/11 346/41/11 -f 31/64/12 32/44/12 33/46/12 -f 64/584/147 40/51/147 63/53/147 -f 37/61/16 38/52/16 39/54/16 -f 43/585/1 29/55/1 44/57/1 -f 48/586/17 41/58/17 56/60/17 -f 35/587/1 37/61/1 46/63/1 -f 44/588/1 31/64/1 45/65/1 -f 47/589/1 37/61/1 48/66/1 -f 27/76/1 29/67/1 42/69/1 -f 33/590/1 35/70/1 45/72/1 -f 48/591/1 39/73/1 41/75/1 -f 25/428/1 27/76/1 41/78/1 -f 48/81/1 41/592/1 42/593/1 -f 42/593/1 43/594/1 44/79/1 -f 44/79/1 45/595/1 46/80/1 -f 46/80/1 47/596/1 48/81/1 -f 48/81/1 42/593/1 44/79/1 -f 54/456/18 46/84/18 278/83/18 -f 47/82/18 55/450/18 278/83/18 -f 44/597/12 45/85/12 52/87/12 -f 50/598/19 42/88/19 51/90/19 -f 47/599/16 48/91/16 55/93/16 -f 45/600/20 46/94/20 53/96/20 -f 44/98/11 52/444/11 281/99/11 -f 273/439/11 51/438/11 281/99/11 -f 52/444/11 274/601/11 281/99/11 -f 281/99/11 51/438/11 43/97/11 -f 41/602/21 42/100/21 49/102/21 -f 59/603/8 57/604/8 64/105/8 -f 58/605/8 64/105/8 57/604/8 -f 63/606/8 62/103/8 64/105/8 -f 61/104/8 60/607/8 64/105/8 -f 59/603/8 64/105/8 60/607/8 -f 36/608/23 34/108/23 62/110/23 -f 58/609/148 26/111/148 64/113/148 -f 32/43/26 30/115/26 60/117/26 -f 63/610/27 38/52/27 62/119/27 -f 61/611/28 34/45/28 60/120/28 -f 334/612/6 71/613/6 339/129/6 -f 65/128/6 67/614/6 333/615/6 -f 339/129/6 71/613/6 69/127/6 -f 65/128/6 333/615/6 339/129/6 -f 68/616/7 66/617/7 290/124/7 -f 283/618/7 70/619/7 284/620/7 -f 66/617/7 267/621/7 290/124/7 -f 284/620/7 70/619/7 72/622/7 -f 290/124/149 289/454/149 288/130/149 -f 285/132/7 284/620/7 72/622/7 -f 68/616/7 290/124/7 288/130/7 -f 285/132/7 72/622/7 288/130/7 -f 287/131/7 286/623/7 285/132/7 -f 72/622/7 68/616/7 288/130/7 -f 247/624/7 66/625/7 251/135/7 -f 76/626/7 74/627/7 250/628/7 -f 251/135/7 66/625/7 68/629/7 -f 76/626/7 250/628/7 253/133/7 -f 251/135/7 68/629/7 253/133/7 -f 249/134/7 248/630/7 251/135/7 -f 68/629/7 76/626/7 253/133/7 -f 68/136/31 67/631/31 361/632/31 -f 75/633/31 76/138/31 360/634/31 -f 368/137/31 360/634/31 76/138/31 -f 68/136/31 361/632/31 368/137/31 -f 65/635/6 73/142/6 367/144/6 -f 361/636/6 67/637/6 65/635/6 -f 75/143/6 360/638/6 367/144/6 -f 367/144/6 361/636/6 65/635/6 -f 99/639/33 100/145/33 103/147/33 -f 78/191/6 311/148/6 77/150/6 -f 311/148/34 310/152/34 81/149/34 -f 80/182/34 82/151/34 310/152/34 -f 97/640/34 98/153/34 105/155/34 -f 97/640/6 87/156/6 98/153/6 -f 83/188/35 81/149/35 84/158/35 -f 98/641/35 99/159/35 104/161/35 -f 83/175/33 84/162/33 85/164/33 -f 100/190/36 78/165/36 101/167/36 -f 99/639/6 91/168/6 100/145/6 -f 87/156/36 85/164/36 299/171/36 -f 86/163/36 297/642/36 305/170/36 -f 305/170/36 298/643/36 295/644/36 -f 299/171/36 294/645/36 88/177/36 -f 305/170/36 295/644/36 299/171/36 -f 85/164/36 86/163/36 305/170/36 -f 299/171/36 88/177/36 87/156/36 -f 101/174/6 102/646/6 108/647/6 -f 108/647/6 107/648/6 106/172/6 -f 106/172/6 105/649/6 104/173/6 -f 104/173/6 103/650/6 101/174/6 -f 101/174/6 108/647/6 106/172/6 -f 95/179/6 83/175/6 96/176/6 -f 87/156/37 88/177/37 89/157/37 -f 98/641/6 89/157/6 99/159/6 -f 107/651/38 95/179/38 106/180/38 -f 89/157/39 90/178/39 91/168/39 -f 109/214/150 82/151/150 110/183/150 -f 312/189/41 93/169/41 310/152/41 -f 94/184/41 80/182/41 310/152/41 -f 91/168/38 92/181/38 93/169/38 -f 108/652/39 77/185/39 107/187/39 -f 81/149/6 83/188/6 77/185/6 -f 93/169/6 312/189/6 100/190/6 -f 102/653/37 78/191/37 108/192/37 -f 114/206/34 113/195/34 122/197/34 -f 112/654/151 86/163/151 111/198/151 -f 94/184/7 92/181/7 116/200/7 -f 80/182/7 94/184/7 110/205/7 -f 90/178/7 88/177/7 114/206/7 -f 111/655/7 84/158/7 109/207/7 -f 115/656/152 92/181/152 114/208/152 -f 119/211/7 117/657/7 118/658/7 -f 118/658/7 124/659/7 119/211/7 -f 123/209/7 122/660/7 121/661/7 -f 121/661/7 120/210/7 123/209/7 -f 119/211/7 124/659/7 123/209/7 -f 112/654/38 111/198/38 120/213/38 -f 117/662/37 109/214/37 118/215/37 -f 110/205/36 116/204/36 118/217/36 -f 115/656/35 114/208/35 123/219/35 -f 121/663/41 113/220/41 120/222/41 -f 111/655/39 109/207/39 119/224/39 -f 116/200/33 115/199/33 124/226/33 -f 151/664/33 147/227/33 149/229/33 -f 126/276/153 127/230/153 125/232/153 -f 127/230/34 128/233/34 129/231/34 -f 153/665/34 145/235/34 152/237/34 -f 145/235/154 135/238/154 146/236/154 -f 129/231/35 130/234/35 131/241/35 -f 152/666/35 146/242/35 151/244/35 -f 133/258/6 135/238/6 144/246/6 -f 133/258/33 131/247/33 134/249/33 -f 148/275/36 126/250/36 149/252/36 -f 139/261/155 141/253/155 147/227/155 -f 133/258/36 134/249/36 135/238/36 -f 149/257/6 150/667/6 156/668/6 -f 156/668/6 155/669/6 154/255/6 -f 154/255/6 153/670/6 152/256/6 -f 152/256/6 151/671/6 149/257/6 -f 149/257/6 156/668/6 154/255/6 -f 143/672/156 131/247/156 144/259/156 -f 137/239/37 135/238/37 138/260/37 -f 137/239/6 139/261/6 146/242/6 -f 143/672/38 144/259/38 155/263/38 -f 137/239/39 138/260/39 139/261/39 -f 130/234/7 128/233/7 157/266/7 -f 127/230/41 141/253/41 128/233/41 -f 125/274/39 143/271/39 156/273/39 -f 129/231/157 131/241/157 125/274/157 -f 141/253/158 127/230/158 148/275/158 -f 150/673/37 126/276/37 156/277/37 -f 144/246/41 145/245/41 154/279/41 -f 162/674/34 161/280/34 170/282/34 -f 134/249/159 132/248/159 160/284/159 -f 161/675/160 136/254/160 160/288/160 -f 158/300/7 128/233/7 164/289/7 -f 162/674/161 138/260/161 161/280/161 -f 132/240/7 130/234/7 159/291/7 -f 140/264/162 138/260/162 163/293/162 -f 167/296/7 165/676/7 166/677/7 -f 166/677/7 172/678/7 167/296/7 -f 171/294/7 170/679/7 169/680/7 -f 169/680/7 168/295/7 171/294/7 -f 167/296/7 172/678/7 171/294/7 -f 168/681/38 160/284/38 167/297/38 -f 157/266/37 158/265/37 165/299/37 -f 166/682/36 158/300/36 172/301/36 -f 163/293/35 162/292/35 171/303/35 -f 161/675/41 160/288/41 169/305/41 -f 159/291/39 157/290/39 167/307/39 -f 172/683/33 164/308/33 171/310/33 -f 303/13/9 2/4/9 306/11/9 -f 175/684/57 173/311/57 176/313/57 -f 175/684/7 176/313/7 177/315/7 -f 179/685/163 177/315/163 180/316/163 -f 179/686/59 180/317/59 181/319/59 -f 173/311/60 183/320/60 174/312/60 -f 181/319/6 182/318/6 183/320/6 -f 185/336/57 186/322/57 187/324/57 -f 187/324/7 188/323/7 189/326/7 -f 189/326/61 190/325/61 191/328/61 -f 193/687/62 191/329/62 194/331/62 -f 182/347/164 180/332/164 201/334/164 -f 195/337/60 196/335/60 185/336/60 -f 193/687/6 194/331/6 195/337/6 -f 200/688/165 199/338/165 206/340/165 -f 176/313/166 174/312/166 197/342/166 -f 200/689/167 180/343/167 199/344/167 -f 199/344/7 178/314/7 197/342/7 -f 198/341/168 174/312/168 202/346/168 -f 202/346/169 184/345/169 201/334/169 -f 206/690/170 205/348/170 212/350/170 -f 201/356/171 200/351/171 207/353/171 -f 203/357/172 197/342/172 204/354/172 -f 208/358/173 202/355/173 207/353/173 -f 205/339/174 199/338/174 203/357/174 -f 204/354/175 198/341/175 208/358/175 -f 212/691/176 211/359/176 218/361/176 -f 216/385/177 210/362/177 220/364/177 -f 207/370/178 206/365/178 213/367/178 -f 203/357/179 204/354/179 209/368/179 -f 214/374/180 208/369/180 213/367/180 -f 205/348/181 203/357/181 211/349/181 -f 204/354/182 208/369/182 210/362/182 -f 218/692/83 217/375/83 230/377/83 -f 216/385/84 220/378/84 228/380/84 -f 219/387/183 213/382/183 218/384/183 -f 215/388/184 209/368/184 216/385/184 -f 220/364/6 214/363/6 219/387/6 -f 211/359/185 209/368/185 217/360/185 -f 237/401/92 225/391/92 236/393/92 -f 221/403/93 222/394/93 233/396/93 -f 219/405/92 218/397/92 231/399/92 -f 238/406/6 226/400/6 237/401/6 -f 215/388/93 216/385/93 227/402/93 -f 223/408/7 221/403/7 235/404/7 -f 220/378/6 219/405/6 232/379/6 -f 234/395/84 222/394/84 238/406/84 -f 217/375/7 215/388/7 229/376/7 -f 236/693/83 224/407/83 235/404/83 -f 244/694/186 243/409/186 246/411/186 -f 65/419/97 66/695/97 252/417/97 -f 252/417/97 248/630/97 254/418/97 -f 66/695/97 247/696/97 252/417/97 -f 74/697/97 73/698/97 250/699/97 -f 254/418/97 250/699/97 73/698/97 -f 248/630/97 249/134/97 254/418/97 -f 73/698/97 65/419/97 254/418/97 -f 27/76/21 25/428/21 256/427/21 -f 256/427/21 239/700/21 27/76/21 -f 29/67/19 27/76/19 258/701/19 -f 258/701/19 259/429/19 29/67/19 -f 27/76/19 239/700/19 258/701/19 -f 50/598/102 51/90/102 270/432/102 -f 55/93/103 56/92/103 268/434/103 -f 264/702/105 51/438/105 271/440/105 -f 262/703/106 49/102/106 263/441/106 -f 274/601/105 52/444/105 272/446/105 -f 267/704/187 66/705/187 65/706/187 -f 69/447/187 70/707/187 283/708/187 -f 293/449/188 267/704/188 65/706/188 -f 69/447/187 283/708/187 291/709/187 -f 293/449/189 65/706/189 69/447/189 -f 69/447/187 291/709/187 292/448/187 -f 278/83/110 55/450/110 279/452/110 -f 266/710/113 53/96/113 276/455/113 -f 277/711/110 54/456/110 280/457/110 -f 56/60/114 49/59/114 275/459/114 -f 265/712/115 52/87/115 282/460/115 -f 292/713/190 286/465/190 293/462/190 -f 301/714/4 7/466/4 302/467/4 -f 113/220/191 88/177/191 294/645/191 -f 296/473/192 295/644/192 307/474/192 -f 113/220/193 294/645/193 296/473/193 -f 86/163/194 112/221/194 297/642/194 -f 307/474/195 297/642/195 112/221/195 -f 295/644/192 298/643/192 307/474/192 -f 112/221/196 113/220/196 296/473/196 -f 8/1/9 4/475/9 302/467/9 -f 303/482/123 309/476/123 300/478/123 -f 304/484/124 301/479/124 309/476/124 -f 87/156/129 105/487/129 85/164/129 -f 315/490/130 314/715/130 58/488/130 -f 26/491/130 58/488/130 314/715/130 -f 242/716/21 241/493/21 313/492/21 -f 26/491/21 314/715/21 313/492/21 -f 59/500/133 30/717/133 79/718/133 -f 79/718/133 315/498/133 59/500/133 -f 324/503/1 322/719/1 321/720/1 -f 321/720/1 320/721/1 319/501/1 -f 319/501/1 318/722/1 317/502/1 -f 317/502/1 316/723/1 324/503/1 -f 324/503/1 321/720/1 319/501/1 -f 261/506/19 242/716/19 313/492/19 -f 323/504/19 79/718/19 30/717/19 -f 261/506/19 313/492/19 323/504/19 -f 30/717/19 257/505/19 323/504/19 -f 331/509/8 332/724/8 326/725/8 -f 326/725/8 325/726/8 328/507/8 -f 328/507/8 327/524/8 329/508/8 -f 329/508/8 330/727/8 331/509/8 -f 331/509/8 326/725/8 328/507/8 -f 318/722/12 319/501/12 327/511/12 -f 324/515/16 316/512/16 326/514/16 -f 374/517/17 322/728/17 324/515/17 -f 324/515/17 326/514/17 369/516/17 -f 356/554/17 369/516/17 326/514/17 -f 326/514/17 332/553/17 356/554/17 -f 329/510/11 319/501/11 359/521/11 -f 377/558/11 371/549/11 319/501/11 -f 319/501/11 320/729/11 377/558/11 -f 375/522/11 330/730/11 329/510/11 -f 319/501/11 371/549/11 359/521/11 -f 317/525/20 318/523/20 328/507/20 -f 316/512/18 317/525/18 325/513/18 -f 67/731/137 68/530/137 333/732/137 -f 72/528/137 71/733/137 334/734/137 -f 340/529/137 333/732/137 68/530/137 -f 72/528/137 334/734/137 340/529/137 -f 40/112/17 26/111/17 241/735/17 -f 240/736/17 25/74/17 39/73/17 -f 40/112/17 241/735/17 337/531/17 -f 338/532/17 240/736/17 347/532/17 -f 241/735/17 351/531/17 337/531/17 -f 347/532/17 240/736/17 39/73/17 -f 39/73/17 40/112/17 347/532/17 -f 337/531/17 255/531/17 341/532/17 -f 347/532/17 40/112/17 337/531/17 -f 139/261/38 140/264/38 363/535/38 -f 142/267/38 141/253/38 365/737/38 -f 365/737/38 353/738/38 142/267/38 -f 363/535/38 354/739/38 365/737/38 -f 140/264/38 355/740/38 363/535/38 -f 365/737/38 141/253/38 363/535/38 -f 164/308/7 142/267/7 353/738/7 -f 362/536/7 355/740/7 163/309/7 -f 164/308/7 353/738/7 362/536/7 -f 140/264/7 163/309/7 355/740/7 -f 371/549/19 372/741/19 366/742/19 -f 364/556/19 357/555/19 370/550/19 -f 371/549/19 366/742/19 370/550/19 -f 370/550/19 357/555/19 359/521/19 -f 331/552/19 330/730/19 375/522/19 -f 375/522/19 359/521/19 358/551/19 -f 356/554/21 332/553/21 358/551/21 -f 369/516/21 356/554/21 364/556/21 -f 320/729/19 321/559/19 377/558/19 -f 373/557/19 371/549/19 377/558/19 -f 373/557/21 321/559/21 374/517/21 -f 369/516/21 366/742/21 372/741/21 -f 321/559/21 322/728/21 374/517/21 -f 369/516/21 372/741/21 376/560/21 -f 376/560/21 373/557/21 374/517/21 -f 33/590/20 34/108/20 380/562/20 -f 379/743/20 35/70/20 33/590/20 -f 36/608/20 378/561/20 34/108/20 -f 380/562/20 379/743/20 33/590/20 -f 37/61/18 35/587/18 379/744/18 -f 381/563/18 378/745/18 38/52/18 -f 37/61/18 379/744/18 381/563/18 -f 36/118/18 38/52/18 378/745/18 diff --git a/src/main/resources/assets/hbm/models/armor/envsuit.obj b/src/main/resources/assets/hbm/models/armor/envsuit.obj new file mode 100644 index 000000000..d3df05777 --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/envsuit.obj @@ -0,0 +1,3643 @@ +# Blender v2.79 (sub 0) OBJ File: 'envsuit_scaled.blend' +# www.blender.org +o LeftFoot +v -0.100000 23.250000 -3.675000 +v 4.100000 23.250000 -3.675000 +v -0.100000 24.299999 -3.675000 +v 4.100000 24.299999 -3.675000 +v 4.100000 22.199999 -2.625000 +v -0.100000 22.200001 -2.625000 +v -0.625000 22.200001 -2.100000 +v 4.625000 22.199999 -2.100000 +v -0.625000 22.200001 2.100000 +v 4.625000 22.199999 2.100000 +v 4.100000 22.199999 2.625000 +v -0.100000 22.200001 2.625000 +v -0.100000 22.200001 2.100000 +v 4.100000 22.199999 2.100000 +v -0.100000 22.200001 -2.100000 +v 4.100000 22.199999 -2.100000 +v 4.100000 24.299999 -2.625000 +v 4.625000 24.299999 -2.100000 +v -0.100000 24.299999 -2.625000 +v -0.625000 24.299999 -2.100000 +v 4.625000 24.299999 2.100000 +v 4.100000 24.299999 2.625000 +v -0.625000 24.299999 2.100000 +v -0.100000 24.299999 2.625000 +v 1.475000 20.110407 -3.209024 +v 2.525000 20.110407 -3.209024 +v 1.475000 20.469528 -4.195702 +v 2.525000 20.469528 -4.195702 +v 0.425000 23.070438 -2.131661 +v 3.575000 23.070438 -2.131661 +v 0.425000 23.429560 -3.118338 +v 3.575000 23.429560 -3.118338 +v 2.525000 23.070438 -2.131661 +v 2.525000 23.429560 -3.118338 +v 1.475000 23.070438 -2.131661 +v 1.475000 23.429560 -3.118338 +v 2.000000 21.097084 -2.849903 +v 2.000000 21.456205 -3.836581 +vt 0.979167 0.025000 +vt 0.791667 -0.000000 +vt 0.770833 0.225000 +vt 0.791667 0.300000 +vt 0.958333 0.250000 +vt 0.791667 0.250000 +vt 0.958333 0.300000 +vt 0.791667 0.350000 +vt 0.958333 0.350000 +vt 0.791667 0.400000 +vt 0.958333 0.400000 +vt 0.750000 0.300000 +vt 1.000000 0.300000 +vt 0.562500 0.100000 +vt 0.395833 0.125000 +vt 0.562500 0.125000 +vt 0.208333 0.100000 +vt 0.375000 0.125000 +vt 0.375000 0.100000 +vt 0.375000 0.125000 +vt 0.395833 0.100000 +vt 0.187500 0.100000 +vt 0.020833 0.125000 +vt 0.187500 0.125000 +vt 0.187500 0.125000 +vt 0.208333 0.125000 +vt 0.583333 0.100000 +vt 0.562500 0.125000 +vt 0.583333 0.125000 +vt 0.020833 0.100000 +vt -0.000000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.100000 +vt 0.583333 0.000000 +vt 0.750000 0.000000 +vt 0.187500 0.000000 +vt 0.208333 -0.000000 +vt 0.395833 -0.000000 +vt 0.375000 -0.000000 +vt 0.020833 0.000000 +vt -0.000000 0.100000 +vt 0.729167 0.900000 +vt 0.687500 0.950000 +vt 0.729167 0.950000 +vt 0.562500 0.900000 +vt 0.687500 0.900000 +vt 0.854167 0.950000 +vt 0.645833 0.850000 +vt 0.562500 0.800000 +vt 0.562500 0.850000 +vt 0.854167 0.850000 +vt 0.770833 0.800000 +vt 0.770833 0.850000 +vt 0.562500 0.950000 +vt 0.645833 1.000000 +vt 0.770833 1.000000 +vt 0.708333 1.000000 +vt 0.854167 0.900000 +vt 0.708333 0.850000 +vt 0.979167 0.225000 +vt 0.958333 -0.000000 +vt 0.770833 0.025000 +vt 0.750000 0.400000 +vt 1.000000 0.400000 +vt 0.562500 0.000000 +vt -0.000000 0.000000 +vt 0.645833 0.800000 +vt 0.854167 0.800000 +vt 0.562500 1.000000 +vt 0.854167 1.000000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 -0.9397 -0.3420 +vn 0.9487 -0.2972 -0.1082 +vn -0.9487 -0.2972 -0.1082 +vn -0.9701 0.2279 0.0830 +vn 0.9701 0.2279 0.0830 +vn 0.0000 -0.3420 0.9397 +vn -0.0000 0.3420 -0.9397 +s off +f 23/1/1 22/2/1 18/3/1 +f 4/4/1 19/5/1 17/6/1 +f 3/7/2 2/8/2 1/9/2 +f 1/9/3 5/10/3 6/11/3 +f 17/12/4 2/8/4 4/4/4 +f 1/9/5 19/13/5 3/7/5 +f 6/14/6 16/15/6 15/16/6 +f 10/17/6 16/18/6 8/19/6 +f 8/20/6 16/15/6 5/21/6 +f 11/22/6 13/23/6 14/24/6 +f 11/25/6 14/26/6 10/17/6 +f 7/27/6 6/28/6 15/29/6 +f 12/30/6 9/31/6 13/23/6 +f 7/27/6 13/32/6 9/33/6 +f 20/34/7 6/14/7 7/27/7 +f 23/35/5 7/27/5 9/33/5 +f 22/36/8 12/30/8 11/22/8 +f 21/37/9 11/22/9 10/17/9 +f 17/38/10 8/19/10 5/21/10 +f 18/39/4 10/17/4 8/19/4 +f 24/40/11 9/41/11 12/30/11 +f 27/42/12 26/43/12 25/44/12 +f 32/45/13 26/43/13 28/46/13 +f 29/47/14 27/42/14 25/44/14 +f 38/48/15 33/49/15 34/50/15 +f 36/51/16 37/52/16 38/53/16 +f 30/54/17 37/55/17 26/43/17 +f 37/56/17 29/47/17 25/44/17 +f 26/43/17 37/57/17 25/44/17 +f 31/58/18 38/53/18 27/42/18 +f 32/45/18 38/48/18 34/50/18 +f 27/42/18 38/59/18 28/46/18 +f 18/3/1 17/6/1 19/5/1 +f 19/5/1 20/60/1 23/1/1 +f 23/1/1 24/61/1 22/2/1 +f 22/2/1 21/62/1 18/3/1 +f 18/3/1 19/5/1 23/1/1 +f 4/4/1 3/7/1 19/5/1 +f 3/7/2 4/4/2 2/8/2 +f 1/9/3 2/8/3 5/10/3 +f 17/12/4 5/63/4 2/8/4 +f 1/9/5 6/64/5 19/13/5 +f 6/14/6 5/21/6 16/15/6 +f 10/17/6 14/26/6 16/18/6 +f 11/22/6 12/30/6 13/23/6 +f 7/27/6 15/29/6 13/32/6 +f 20/34/7 19/65/7 6/14/7 +f 23/35/5 20/34/5 7/27/5 +f 22/36/8 24/40/8 12/30/8 +f 21/37/9 22/36/9 11/22/9 +f 17/38/10 18/39/10 8/19/10 +f 18/39/4 21/37/4 10/17/4 +f 24/40/11 23/66/11 9/41/11 +f 27/42/12 28/46/12 26/43/12 +f 32/45/13 30/54/13 26/43/13 +f 29/47/14 31/58/14 27/42/14 +f 38/48/15 37/67/15 33/49/15 +f 36/51/16 35/68/16 37/52/16 +f 30/54/17 33/69/17 37/55/17 +f 37/56/17 35/70/17 29/47/17 +f 31/58/18 36/51/18 38/53/18 +f 32/45/18 28/46/18 38/48/18 +o RightFoot +v 0.100000 23.250000 -3.675000 +v -4.100000 23.250000 -3.675000 +v 0.100000 24.299999 -3.675000 +v -4.100000 24.299999 -3.675000 +v -4.100000 22.200001 -2.625000 +v 0.100000 22.200001 -2.625000 +v 0.625000 22.200001 -2.100000 +v -4.625000 22.200001 -2.100000 +v 0.625000 22.200001 2.100000 +v -4.625000 22.200001 2.100000 +v -4.100000 22.200001 2.625000 +v 0.100000 22.200001 2.625000 +v 0.100000 22.200001 2.100000 +v -4.100000 22.200001 2.100000 +v 0.100000 22.200001 -2.100000 +v -4.100000 22.200001 -2.100000 +v -4.100000 24.299999 -2.625000 +v -4.625000 24.299999 -2.100000 +v 0.100000 24.299999 -2.625000 +v 0.625000 24.299999 -2.100000 +v -4.625000 24.299999 2.100000 +v -4.100000 24.299999 2.625000 +v 0.625000 24.299999 2.100000 +v 0.100000 24.299999 2.625000 +v -1.475000 20.110409 -3.209024 +v -2.525000 20.110409 -3.209024 +v -1.475000 20.469528 -4.195702 +v -2.525000 20.469528 -4.195702 +v -0.425000 23.070438 -2.131661 +v -3.575000 23.070440 -2.131661 +v -0.425000 23.429560 -3.118338 +v -3.575000 23.429560 -3.118338 +v -2.525000 23.070440 -2.131661 +v -2.525000 23.429560 -3.118338 +v -1.475000 23.070440 -2.131661 +v -1.475000 23.429560 -3.118338 +v -2.000000 21.097086 -2.849903 +v -2.000000 21.456205 -3.836581 +vt 0.791667 -0.000000 +vt 0.979167 0.025000 +vt 0.958333 0.250000 +vt 0.791667 0.300000 +vt 0.791667 0.250000 +vt 0.791667 0.350000 +vt 0.958333 0.300000 +vt 0.958333 0.350000 +vt 0.791667 0.400000 +vt 0.958333 0.400000 +vt 0.750000 0.300000 +vt 1.000000 0.300000 +vt 0.395833 0.125000 +vt 0.562500 0.100000 +vt 0.562500 0.125000 +vt 0.375000 0.125000 +vt 0.208333 0.100000 +vt 0.375000 0.100000 +vt 0.375000 0.125000 +vt 0.395833 0.100000 +vt 0.020833 0.125000 +vt 0.187500 0.100000 +vt 0.187500 0.125000 +vt 0.187500 0.125000 +vt 0.208333 0.125000 +vt 0.583333 0.100000 +vt 0.583333 0.125000 +vt 0.562500 0.125000 +vt 0.020833 0.100000 +vt -0.000000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.100000 +vt 0.562500 0.000000 +vt 0.583333 0.000000 +vt 0.750000 0.000000 +vt 0.187500 0.000000 +vt 0.208333 -0.000000 +vt 0.395833 -0.000000 +vt 0.375000 -0.000000 +vt -0.000000 0.100000 +vt 0.020833 0.000000 +vt 0.687500 0.950000 +vt 0.729167 0.900000 +vt 0.729167 0.950000 +vt 0.562500 0.900000 +vt 0.687500 0.900000 +vt 0.854167 0.900000 +vt 0.854167 0.950000 +vt 0.562500 0.850000 +vt 0.645833 0.800000 +vt 0.645833 0.850000 +vt 0.854167 0.850000 +vt 0.770833 0.800000 +vt 0.854167 0.800000 +vt 0.645833 1.000000 +vt 0.562500 0.950000 +vt 0.770833 1.000000 +vt 0.708333 1.000000 +vt 0.770833 0.850000 +vt 0.708333 0.850000 +vt 0.770833 0.225000 +vt 0.770833 0.025000 +vt 0.958333 -0.000000 +vt 0.979167 0.225000 +vt 0.750000 0.400000 +vt 1.000000 0.400000 +vt -0.000000 0.000000 +vt 0.562500 0.800000 +vt 0.562500 1.000000 +vt 0.854167 1.000000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn 0.0000 -0.9397 -0.3420 +vn -0.9487 -0.2972 -0.1082 +vn 0.9487 -0.2972 -0.1082 +vn 0.9701 0.2279 0.0830 +vn -0.9701 0.2279 0.0830 +vn -0.0000 -0.3420 0.9397 +vn 0.0000 0.3420 -0.9397 +s off +f 60/71/19 61/72/19 57/73/19 +f 57/73/19 42/74/19 55/75/19 +f 40/76/20 41/77/20 39/78/20 +f 43/79/21 39/78/21 44/80/21 +f 40/76/22 55/81/22 42/74/22 +f 57/82/23 39/78/23 41/77/23 +f 54/83/24 44/84/24 53/85/24 +f 54/86/24 48/87/24 46/88/24 +f 46/89/24 43/90/24 54/83/24 +f 51/91/24 49/92/24 52/93/24 +f 49/94/24 48/87/24 52/95/24 +f 45/96/24 53/97/24 44/98/24 +f 50/99/24 51/91/24 47/100/24 +f 51/101/24 45/96/24 47/102/24 +f 45/96/25 57/103/25 58/104/25 +f 45/96/23 61/105/23 47/102/23 +f 50/99/26 60/106/26 49/92/26 +f 49/92/27 59/107/27 48/87/27 +f 46/88/28 55/108/28 43/90/28 +f 48/87/22 56/109/22 46/88/22 +f 47/110/29 62/111/29 50/99/29 +f 64/112/30 65/113/30 63/114/30 +f 64/112/31 70/115/31 66/116/31 +f 63/114/32 69/117/32 67/118/32 +f 72/119/33 75/120/33 76/121/33 +f 74/122/34 75/123/34 73/124/34 +f 75/125/35 68/126/35 64/112/35 +f 67/118/35 75/127/35 63/114/35 +f 64/112/35 63/114/35 75/128/35 +f 76/129/36 69/117/36 65/113/36 +f 70/115/36 76/121/36 66/116/36 +f 65/113/36 66/116/36 76/130/36 +f 57/73/19 55/75/19 56/131/19 +f 56/131/19 59/132/19 60/71/19 +f 60/71/19 62/133/19 61/72/19 +f 61/72/19 58/134/19 57/73/19 +f 57/73/19 56/131/19 60/71/19 +f 57/73/19 41/77/19 42/74/19 +f 40/76/20 42/74/20 41/77/20 +f 43/79/21 40/76/21 39/78/21 +f 40/76/22 43/135/22 55/81/22 +f 57/82/23 44/136/23 39/78/23 +f 54/83/24 43/90/24 44/84/24 +f 54/86/24 52/95/24 48/87/24 +f 51/91/24 50/99/24 49/92/24 +f 51/101/24 53/97/24 45/96/24 +f 45/96/25 44/84/25 57/103/25 +f 45/96/23 58/104/23 61/105/23 +f 50/99/26 62/111/26 60/106/26 +f 49/92/27 60/106/27 59/107/27 +f 46/88/28 56/109/28 55/108/28 +f 48/87/22 59/107/22 56/109/22 +f 47/110/29 61/137/29 62/111/29 +f 64/112/30 66/116/30 65/113/30 +f 64/112/31 68/126/31 70/115/31 +f 63/114/32 65/113/32 69/117/32 +f 72/119/33 71/138/33 75/120/33 +f 74/122/34 76/129/34 75/123/34 +f 75/125/35 71/139/35 68/126/35 +f 67/118/35 73/140/35 75/127/35 +f 76/129/36 74/122/36 69/117/36 +f 70/115/36 72/119/36 76/121/36 +o Lamps +v 4.199997 -9.250000 -2.625000 +v 2.099997 -9.250000 -2.625000 +v 3.674997 -10.825001 -3.150000 +v 2.624997 -10.825001 -3.150000 +v -2.100003 -9.250000 -2.625000 +v -4.200003 -9.250000 -2.625000 +v -2.625003 -10.825001 -3.150000 +v -3.675003 -10.825001 -3.150000 +vt 0.401810 0.000103 +vt 0.000103 0.499897 +vt 0.134006 0.000103 +vt 0.134006 0.500103 +vt 0.535712 0.999897 +vt 0.000103 0.999897 +vt 0.535712 0.499897 +vt 0.401809 0.500103 +vn 0.0000 0.3162 -0.9487 +s off +f 80/141/37 77/142/37 79/143/37 +f 83/144/37 82/145/37 81/146/37 +f 80/141/37 78/147/37 77/142/37 +f 83/144/37 84/148/37 82/145/37 +o Chest +v 4.199999 12.299999 2.100000 +v -4.200001 12.299999 2.100000 +v 4.199999 12.299999 -2.100000 +v -4.200001 12.299999 -2.100000 +v -3.150002 0.750000 2.625000 +v 3.149997 0.750000 2.625000 +v -3.150001 9.150000 2.625000 +v 3.149998 9.150000 2.625000 +v 4.199998 6.000000 2.100000 +v -4.200002 6.000000 2.100000 +v 4.199998 6.000000 -2.100000 +v -4.200002 6.000000 -2.100000 +v 4.199998 6.000000 -2.625000 +v -4.200002 6.000000 -2.625000 +v 4.199998 6.000000 2.625000 +v -4.200002 6.000000 2.625000 +v 4.724999 6.000000 2.100000 +v 4.724999 6.000000 -2.100000 +v -4.725001 6.000000 2.100000 +v -4.725001 6.000000 -2.100000 +v 4.199998 -0.299999 -2.625000 +v -4.200002 -0.299999 -2.625000 +v 4.199998 -0.299999 2.625000 +v -4.200002 -0.299999 2.625000 +v 4.724998 -0.299999 2.100000 +v 4.724998 -0.299999 -2.100000 +v -4.725002 -0.299999 2.100000 +v -4.725002 -0.299999 -2.100000 +v 4.199998 -0.825001 -2.100000 +v 4.199998 -0.825001 2.100000 +v -4.200002 -0.825001 2.100000 +v -4.200002 -0.825001 -2.100000 +v -0.000002 -0.299999 -3.675000 +v -2.100002 -0.299999 -2.625000 +v -0.000002 1.799999 -3.675000 +v -2.100002 1.799999 -2.625000 +v 2.099998 -0.299999 -2.625000 +v 2.099998 1.799999 -2.625000 +v -0.000002 3.900000 -2.625000 +v -2.100001 10.200000 2.625000 +v 2.099999 10.200000 2.625000 +v -3.150002 0.750000 6.825000 +v 3.149997 0.750000 6.825000 +v -3.150001 9.150000 6.825000 +v 3.149998 9.150000 6.825000 +v 2.099999 10.200000 6.825000 +v -2.100001 10.200000 6.825000 +v 3.149997 0.750000 5.775000 +v -3.150002 0.750000 5.775000 +v 3.149997 0.750000 3.675000 +v -3.150002 0.750000 3.675000 +v 3.149997 -0.299999 3.675000 +v 3.149997 -0.299999 5.775000 +v -3.150002 -0.299999 5.775000 +v -3.150002 -0.299999 3.675000 +v 3.149998 3.900000 5.775000 +v -3.150001 3.900000 5.775000 +v 3.149998 3.900000 3.675000 +v -3.150001 3.900000 3.675000 +v 4.199998 2.850000 5.775000 +v -4.200002 2.850000 5.775000 +v 4.199998 2.850000 3.675000 +v -4.200002 2.850000 3.675000 +v 4.199998 0.750000 5.775000 +v -4.200002 0.750000 5.775000 +v 4.199998 0.750000 3.675000 +v -4.200002 0.750000 3.675000 +v 2.624998 3.900000 6.825000 +v -2.625002 3.900000 6.825000 +v 2.624998 1.799999 6.825000 +v -2.625002 1.799999 6.825000 +v 2.624998 1.799999 7.875000 +v 2.624998 3.900000 7.875000 +v -2.625002 3.900000 7.875000 +v -2.625002 1.799999 7.875000 +v -4.200002 5.475000 -2.625000 +v 4.199998 5.475000 -2.625000 +v -3.150001 3.900000 -4.200000 +v 3.149998 3.900000 -4.200000 +v -4.200002 0.750000 -2.625000 +v 4.199998 0.750000 -2.625000 +vt 0.478261 0.181818 +vt 0.304348 -0.000000 +vt 0.478261 0.000000 +vt 0.695652 0.590909 +vt 0.565217 0.227273 +vt 0.695652 0.227273 +vt 0.304348 0.454545 +vt 0.217391 0.181818 +vt 0.304348 0.181818 +vt 0.478261 0.454545 +vt 0.565217 0.181818 +vt 0.043478 0.454545 +vt 0.043478 0.181818 +vt 0.467391 0.477273 +vt 0.293478 0.454545 +vt 0.467391 0.454545 +vt 0.184783 0.477273 +vt 0.010870 0.454545 +vt 0.184783 0.454545 +vt 0.565217 0.477273 +vt 0.565217 0.454545 +vt 0.478261 0.477273 +vt 0.467391 0.454545 +vt 0.010870 0.477273 +vt 0.000000 0.454545 +vt 0.282609 0.454545 +vt 0.195652 0.477273 +vt 0.195652 0.454545 +vt 0.184783 0.454545 +vt 0.293478 0.477273 +vt 0.282609 0.454545 +vt 0.467391 0.750000 +vt 0.293478 0.750000 +vt 0.282609 0.477273 +vt 0.282609 0.750000 +vt 0.010870 0.750000 +vt -0.000000 0.477273 +vt 0.565217 0.750000 +vt 0.195652 0.750000 +vt 0.184783 0.750000 +vt 0.293478 0.954545 +vt 0.467391 0.772727 +vt 0.467391 0.954545 +vt 0.565217 0.772727 +vt 0.478261 0.750000 +vt 0.184783 0.772727 +vt 0.282609 0.772727 +vt 0.195652 0.772727 +vt 0.293478 0.772727 +vt 0.478261 0.772727 +vt -0.000000 0.750000 +vt 0.010870 0.772727 +vt 0.467391 0.954545 +vt 0.510870 0.863636 +vt 0.510870 0.954545 +vt 0.554348 0.954545 +vt 0.554348 1.000000 +vt 0.467391 1.000000 +vt 0.467391 0.863636 +vt 0.510870 0.772727 +vt 0.554348 0.863636 +vt 0.586957 0.181818 +vt 0.913043 0.227273 +vt 0.782609 0.590909 +vt 0.782609 0.227273 +vt 0.891304 0.181818 +vt 0.782609 0.772727 +vt 0.913043 0.590909 +vt 0.913043 0.772727 +vt 0.695652 0.181818 +vt 0.891304 0.000000 +vt 0.804348 0.181818 +vt 0.804348 -0.000000 +vt 1.000000 0.590909 +vt 1.000000 0.227273 +vt 0.913043 0.181818 +vt 1.000000 0.181818 +vt 0.782609 0.818182 +vt 0.652174 0.909091 +vt 0.652174 0.818182 +vt 0.652174 0.954545 +vt 0.782609 0.909091 +vt 0.782609 0.954545 +vt 0.782609 0.772727 +vt 0.652174 0.772727 +vt 0.804348 0.909091 +vt 0.847826 0.909091 +vt 0.869565 0.818182 +vt 0.869565 0.909091 +vt 0.586957 0.818182 +vt 0.565217 0.909091 +vt 0.565217 0.818182 +vt 0.847826 0.818182 +vt 0.630435 0.818182 +vt 0.586957 0.909091 +vt 0.793478 0.772727 +vt 0.804348 0.818182 +vt 0.804348 0.772727 +vt 0.869565 0.772727 +vt 0.793478 0.954545 +vt 0.804348 0.954545 +vt 0.641304 0.954545 +vt 0.630435 0.909091 +vt 0.630435 0.954545 +vt 0.565217 0.954545 +vt 0.641304 0.772727 +vt 0.630435 0.772727 +vt 0.782609 0.045455 +vt 0.673913 0.136364 +vt 0.673913 0.045455 +vt 0.673913 0.181818 +vt 0.782609 0.136364 +vt 0.782609 0.181818 +vt 0.782609 -0.000000 +vt 0.673913 -0.000000 +vt 0.804348 0.136364 +vt 0.804348 0.045455 +vt 0.652174 0.045455 +vt 0.652174 0.136364 +vt 0.086957 0.840909 +vt 0.054348 0.977273 +vt 0.054348 0.772727 +vt 0.293478 0.772727 +vt 0.293478 0.977273 +vt 0.260870 0.840909 +vt 0.260870 0.977273 +vt 0.108696 0.840909 +vt 0.239130 0.840909 +vt 0.086957 0.772727 +vt 0.260870 0.772727 +vt 0.565217 0.590909 +vt 0.217391 0.454545 +vt 0.673913 0.181818 +vt 0.782609 0.181818 +vt 0.869565 0.954545 +vt 0.565217 0.772727 +vt 0.086957 0.977273 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.5774 -0.5773 0.5774 +vn -0.5774 -0.5773 -0.5774 +vn 0.5774 -0.5773 -0.5774 +vn 0.5774 -0.5773 0.5774 +vn -0.4472 0.0000 -0.8944 +vn 0.4472 -0.0000 -0.8944 +vn -0.4082 0.4082 -0.8165 +vn 0.4082 0.4082 -0.8165 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.8321 0.0000 -0.5547 +vn 0.8321 0.0000 -0.5547 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 0.7071 -0.7071 +s off +f 87/149/38 86/150/38 85/151/38 +f 90/152/39 91/153/39 92/154/39 +f 96/155/40 86/156/40 88/157/40 +f 95/158/39 88/157/39 87/149/39 +f 85/159/41 95/158/41 87/149/41 +f 86/156/42 93/160/42 85/161/42 +f 97/162/38 96/163/38 95/164/38 +f 100/165/38 93/166/38 94/167/38 +f 101/168/38 95/158/38 93/169/38 +f 95/158/38 102/170/38 97/171/38 +f 93/166/38 99/172/38 101/173/38 +f 96/174/38 103/175/38 94/176/38 +f 94/176/38 103/175/38 100/177/38 +f 98/178/38 104/179/38 96/163/38 +f 102/170/43 105/180/43 97/162/43 +f 106/181/44 104/182/44 98/178/44 +f 112/183/40 103/175/40 104/182/40 +f 107/184/45 101/185/45 99/172/45 +f 105/180/39 98/178/39 97/162/39 +f 109/186/41 102/170/41 101/168/41 +f 111/187/46 100/165/46 103/175/46 +f 108/188/42 99/172/42 100/165/42 +f 115/189/47 113/190/47 114/191/47 +f 113/190/48 106/181/48 105/180/48 +f 114/192/49 110/193/49 109/186/49 +f 115/194/50 107/184/50 108/188/50 +f 116/195/51 111/187/51 112/183/51 +f 111/187/52 115/196/52 108/188/52 +f 112/183/53 106/181/53 116/197/53 +f 110/193/54 113/198/54 105/180/54 +f 109/199/55 107/184/55 114/200/55 +f 118/201/56 119/202/56 117/203/56 +f 119/202/57 121/204/57 117/203/57 +f 117/203/47 121/205/47 118/206/47 +f 119/202/58 120/207/58 123/208/58 +f 122/209/59 119/202/59 123/208/59 +f 124/210/39 92/154/39 91/153/39 +f 128/211/42 127/212/42 129/213/42 +f 129/213/42 131/214/42 128/211/42 +f 90/215/47 126/216/47 89/217/47 +f 125/218/60 129/213/60 92/154/60 +f 124/219/38 130/220/38 125/221/38 +f 92/154/41 127/212/41 90/152/41 +f 89/222/40 128/211/40 91/223/40 +f 91/223/61 131/224/61 124/225/61 +f 138/226/47 136/227/47 137/228/47 +f 134/229/39 139/230/39 135/231/39 +f 133/232/42 137/228/42 132/233/42 +f 138/226/51 151/234/51 139/230/51 +f 147/235/61 141/236/61 143/237/61 +f 144/238/60 142/239/60 140/240/60 +f 151/234/40 145/241/40 147/235/40 +f 148/242/41 146/243/41 144/238/41 +f 138/226/42 133/244/42 149/245/42 +f 145/241/42 133/246/42 141/247/42 +f 135/248/39 139/230/39 151/234/39 +f 147/235/39 135/249/39 151/234/39 +f 136/227/49 148/242/49 137/228/49 +f 136/227/39 134/250/39 150/251/39 +f 146/243/39 134/252/39 142/253/39 +f 132/254/42 137/228/42 148/242/42 +f 144/238/42 132/255/42 148/242/42 +f 158/256/42 156/257/42 157/258/42 +f 154/259/47 159/260/47 155/261/47 +f 153/262/38 157/258/38 152/263/38 +f 155/264/40 158/256/40 153/265/40 +f 152/266/41 156/257/41 154/267/41 +f 162/268/62 164/269/62 160/270/62 +f 161/271/63 165/272/63 163/273/63 +f 165/274/64 162/275/64 163/276/64 +f 163/276/65 160/277/65 161/278/65 +f 87/149/38 88/157/38 86/150/38 +f 90/152/39 89/279/39 91/153/39 +f 96/155/40 94/280/40 86/156/40 +f 95/158/39 96/155/39 88/157/39 +f 85/159/41 93/169/41 95/158/41 +f 86/156/42 94/280/42 93/160/42 +f 97/162/38 98/178/38 96/163/38 +f 100/165/38 99/172/38 93/166/38 +f 101/168/38 102/170/38 95/158/38 +f 96/174/38 104/182/38 103/175/38 +f 102/170/43 110/193/43 105/180/43 +f 106/181/44 112/183/44 104/182/44 +f 112/183/40 111/187/40 103/175/40 +f 107/184/45 109/199/45 101/185/45 +f 105/180/39 106/181/39 98/178/39 +f 109/186/41 110/193/41 102/170/41 +f 111/187/46 108/188/46 100/165/46 +f 108/188/42 107/184/42 99/172/42 +f 115/189/47 116/197/47 113/190/47 +f 113/190/48 116/197/48 106/181/48 +f 114/192/49 113/198/49 110/193/49 +f 115/194/50 114/200/50 107/184/50 +f 116/195/51 115/196/51 111/187/51 +f 118/201/56 120/207/56 119/202/56 +f 119/202/57 122/209/57 121/204/57 +f 124/210/39 125/281/39 92/154/39 +f 128/211/42 126/216/42 127/212/42 +f 129/213/42 130/220/42 131/214/42 +f 90/215/47 127/212/47 126/216/47 +f 125/218/60 130/282/60 129/213/60 +f 124/219/38 131/214/38 130/220/38 +f 92/154/41 129/213/41 127/212/41 +f 89/222/40 126/216/40 128/211/40 +f 91/223/61 128/211/61 131/224/61 +f 138/226/47 139/230/47 136/227/47 +f 134/229/39 136/227/39 139/230/39 +f 133/232/42 138/226/42 137/228/42 +f 138/226/51 149/245/51 151/234/51 +f 147/235/61 145/241/61 141/236/61 +f 144/238/60 146/243/60 142/239/60 +f 151/234/40 149/245/40 145/241/40 +f 148/242/41 150/251/41 146/243/41 +f 145/241/42 149/245/42 133/246/42 +f 147/235/39 143/283/39 135/249/39 +f 136/227/49 150/251/49 148/242/49 +f 146/243/39 150/251/39 134/252/39 +f 144/238/42 140/284/42 132/255/42 +f 158/256/42 159/260/42 156/257/42 +f 154/259/47 156/257/47 159/260/47 +f 153/262/38 158/256/38 157/258/38 +f 155/264/40 159/260/40 158/256/40 +f 152/266/41 157/258/41 156/257/41 +f 165/274/64 164/285/64 162/275/64 +f 163/276/65 162/275/65 160/277/65 +o LeftArm +v 3.899999 12.299999 2.100000 +v 3.899999 12.299999 -2.100000 +v 8.100000 12.299999 -2.100000 +v 8.100000 12.299999 2.100000 +v 3.899998 5.475000 -2.100000 +v 3.899998 5.475000 2.100000 +v 8.099998 5.475000 -2.100000 +v 8.099998 5.475000 2.100000 +v 3.899998 5.475000 -2.625000 +v 8.099998 5.475000 -2.625000 +v 3.899998 5.475000 2.625000 +v 8.099998 5.475000 2.625000 +v 8.624998 5.475000 -2.100000 +v 8.624998 5.475000 2.100000 +v 3.374998 5.475000 -2.100000 +v 3.374998 5.475000 2.100000 +v 3.899998 -0.299999 -2.625000 +v 8.099998 -0.299999 -2.625000 +v 3.899998 -0.299999 2.625000 +v 8.099998 -0.299999 2.625000 +v 8.624998 -0.299999 -2.100000 +v 8.624998 -0.299999 2.100000 +v 3.374998 -0.299999 -2.100000 +v 3.374998 -0.299999 2.100000 +v 3.899998 -0.825001 -2.100000 +v 3.899998 -0.825001 2.100000 +v 8.099998 -0.825001 -2.100000 +v 8.099998 -0.825001 2.100000 +v 3.899999 6.525000 -2.100000 +v 3.899999 6.525000 2.100000 +v 8.099998 6.525000 -2.100000 +v 8.099998 6.525000 2.100000 +v 3.899999 6.525000 -2.625000 +v 8.099998 6.525000 -2.625000 +v 3.899999 6.525000 2.625000 +v 8.099998 6.525000 2.625000 +v 8.624998 6.525000 -2.100000 +v 8.624998 6.525000 2.100000 +v 3.374999 6.525000 -2.100000 +v 3.374999 6.525000 2.100000 +v 2.849999 7.575001 2.100000 +v 2.849999 7.575001 -2.100000 +v 8.099998 7.575001 3.150000 +v 3.899999 7.575001 3.150000 +v 8.099998 7.575001 -2.625000 +v 3.899999 7.575001 -2.625000 +v 3.899999 7.575001 2.625000 +v 8.099998 7.575001 2.625000 +v 8.624998 7.575001 -2.100000 +v 8.624998 7.575001 2.100000 +v 3.374999 7.575001 -2.100000 +v 3.374999 7.575001 2.100000 +v 8.099998 7.575001 -3.150000 +v 3.899999 7.575001 -3.150000 +v 9.149998 7.575001 -2.100000 +v 9.149998 7.575001 2.100000 +v 2.849999 8.625000 2.100000 +v 2.849999 8.625000 -2.100000 +v 8.100000 8.625000 3.150000 +v 3.899999 8.625000 3.150000 +v 8.100000 8.625000 -3.150000 +v 3.899999 8.625000 -3.150000 +v 9.150000 8.625000 -2.100000 +v 9.150000 8.625000 2.100000 +v 8.100000 8.625000 -2.625000 +v 3.899999 8.625000 -2.625000 +v 3.899999 8.625000 2.625000 +v 8.100000 8.625000 2.625000 +v 8.625000 8.625000 -2.100000 +v 8.625000 8.625000 2.100000 +v 3.374999 8.625000 -2.100000 +v 3.374999 8.625000 2.100000 +v 8.100000 9.150000 -2.625000 +v 3.899999 9.150000 -2.625000 +v 3.899999 9.150000 2.625000 +v 8.100000 9.150000 2.625000 +v 8.625000 9.150000 -2.100000 +v 8.625000 9.150000 2.100000 +v 3.374999 9.150000 -2.100000 +v 3.374999 9.150000 2.100000 +v 2.849999 9.150000 2.100000 +v 2.849999 9.150000 -2.100000 +v 8.100000 9.150000 3.150000 +v 3.899999 9.150000 3.150000 +v 8.100000 9.150000 -3.150000 +v 3.899999 9.150000 -3.150000 +v 9.150000 9.150000 -2.100000 +v 9.150000 9.150000 2.100000 +v 2.849999 10.200000 2.100000 +v 2.849999 10.200000 -2.100000 +v 8.100000 10.199998 3.150000 +v 3.899999 10.200000 3.150000 +v 8.100000 10.199998 -3.150000 +v 3.899999 10.200000 -3.150000 +v 9.150000 10.199998 -2.100000 +v 9.150000 10.199998 2.100000 +v 8.100000 10.199998 -2.625000 +v 3.899999 10.200000 -2.625000 +v 3.899999 10.200000 2.625000 +v 8.100000 10.199998 2.625000 +v 8.625000 10.199998 -2.100000 +v 8.625000 10.199998 2.100000 +v 3.374999 10.200000 -2.100000 +v 3.374999 10.200000 2.100000 +v 8.100000 11.775000 -2.625000 +v 3.899999 11.775000 -2.625000 +v 3.899999 11.775000 2.625000 +v 8.100000 11.775000 2.625000 +v 8.625000 11.775000 -2.100000 +v 8.625000 11.775000 2.100000 +v 3.374999 11.775000 -2.100000 +v 3.374999 11.775000 2.100000 +v 8.625000 11.512498 1.050000 +v 8.625000 10.462500 1.050000 +v 8.625000 11.512498 -1.050000 +v 8.625000 10.462500 -1.050000 +v 9.150000 11.512498 -1.050000 +v 9.150000 11.512498 1.050000 +v 9.150000 10.462500 1.050000 +v 9.150000 10.462500 -1.050000 +v 8.554661 6.787500 0.525000 +v 8.099998 6.525000 0.525000 +v 8.554661 6.787500 -0.525000 +v 8.099998 6.525000 -0.525000 +v 9.604660 4.968847 -0.525000 +v 9.604660 4.968847 0.525000 +v 9.149998 4.706348 0.525000 +v 9.149998 4.706348 -0.525000 +vt 0.275000 0.191489 +vt 0.300000 0.191489 +vt 0.275000 0.170213 +vt 0.250000 0.191489 +vt 0.050000 0.170213 +vt 0.050000 0.191489 +vt 0.525000 0.191489 +vt 0.550000 0.191489 +vt 0.525000 0.170213 +vt 0.750000 0.000000 +vt 0.550000 0.170213 +vt 0.750000 0.170213 +vt 0.500000 0.170213 +vt 0.300000 0.170213 +vt 0.750000 0.191489 +vt 0.550000 0.553191 +vt 0.750000 0.574468 +vt 0.750000 0.553191 +vt 0.050000 0.553191 +vt 0.250000 0.574468 +vt 0.250000 0.553191 +vt 0.300000 0.553191 +vt 0.500000 0.574468 +vt 0.500000 0.553191 +vt 0.800000 0.574468 +vt 1.000000 0.553191 +vt 0.800000 0.553191 +vt 0.050000 0.574468 +vt 0.025000 0.553191 +vt 0.025000 0.574468 +vt 0.775000 0.553191 +vt 0.775000 0.574468 +vt 0.525000 0.553191 +vt 0.525000 0.574468 +vt 0.550000 0.574468 +vt 0.275000 0.553191 +vt 0.275000 0.574468 +vt 0.300000 0.574468 +vt 0.500000 0.808511 +vt 0.300000 0.808511 +vt 0.800000 0.808511 +vt 0.750000 0.808511 +vt 1.000000 0.574468 +vt 0.550000 0.808511 +vt 0.050000 0.808511 +vt 0.250000 0.808511 +vt 0.750000 0.829787 +vt 0.550000 1.000000 +vt 0.750000 1.000000 +vt 0.300000 0.829787 +vt 0.525000 0.808511 +vt 0.525000 0.829787 +vt 0.250000 0.829787 +vt 0.275000 0.808511 +vt 0.275000 0.829787 +vt 1.000000 0.829787 +vt 1.000000 0.808511 +vt 0.025000 0.808511 +vt 0.025000 0.829787 +vt 0.775000 0.808511 +vt 0.775000 0.829787 +vt 0.750000 0.489362 +vt 0.550000 0.510638 +vt 0.750000 0.510638 +vt 0.250000 0.489362 +vt 0.050000 0.510638 +vt 0.250000 0.510638 +vt 0.500000 0.489362 +vt 0.300000 0.510638 +vt 0.500000 0.510638 +vt 1.000000 0.510638 +vt 0.800000 0.489362 +vt 0.800000 0.510638 +vt 0.050000 0.489362 +vt 0.025000 0.489362 +vt 0.025000 0.510638 +vt 0.775000 0.510638 +vt 0.775000 0.489362 +vt 0.525000 0.510638 +vt 0.550000 0.489362 +vt 0.525000 0.489362 +vt 0.275000 0.510638 +vt 0.300000 0.489362 +vt 0.275000 0.489362 +vt 0.250000 0.425532 +vt 0.050000 0.382979 +vt 0.050000 0.425532 +vt 0.550000 0.425532 +vt 0.750000 0.382979 +vt 0.550000 0.382979 +vt 0.500000 0.425532 +vt 0.300000 0.382979 +vt 0.300000 0.425532 +vt 0.500000 0.382979 +vt 0.275000 0.446809 +vt 0.300000 0.446809 +vt 0.550000 0.446809 +vt 0.500000 0.446809 +vt 0.750000 0.425532 +vt 0.800000 0.446809 +vt 0.800000 0.425532 +vt 0.050000 0.446809 +vt 0.750000 0.446809 +vt 0.025000 0.446809 +vt 1.000000 0.489362 +vt 0.775000 0.446809 +vt 0.000000 0.425532 +vt 0.525000 0.446809 +vt 1.000000 0.446809 +vt 0.250000 0.446809 +vt 1.000000 0.425532 +vt 0.800000 0.382979 +vt 0.250000 0.382979 +vt 0.000000 0.382979 +vt 0.750000 0.361702 +vt 0.550000 0.361702 +vt 0.525000 0.361702 +vt 0.300000 0.361702 +vt 0.275000 0.361702 +vt 0.250000 0.361702 +vt 0.025000 0.361702 +vt 1.000000 0.361702 +vt 1.000000 0.382979 +vt 0.800000 0.361702 +vt 0.050000 0.361702 +vt 0.025000 0.340426 +vt 0.500000 0.361702 +vt 0.300000 0.340426 +vt 0.750000 0.340426 +vt 0.550000 0.340426 +vt 0.275000 0.340426 +vt 0.775000 0.361702 +vt 0.800000 0.340426 +vt 0.775000 0.340426 +vt 0.050000 0.340426 +vt 0.525000 0.340426 +vt 0.750000 0.319149 +vt 0.500000 0.319149 +vt 0.500000 0.340426 +vt 0.300000 0.319149 +vt 0.250000 0.319149 +vt 0.250000 0.340426 +vt 0.050000 0.319149 +vt 1.000000 0.319149 +vt 1.000000 0.340426 +vt 0.800000 0.319149 +vt 0.750000 0.276596 +vt 0.550000 0.319149 +vt 0.500000 0.276596 +vt 0.000000 0.276596 +vt 0.000000 0.319149 +vt 0.800000 0.276596 +vt 0.300000 0.276596 +vt 0.250000 0.276596 +vt 0.550000 0.276596 +vt 0.050000 0.276596 +vt 0.750000 0.255319 +vt 0.550000 0.255319 +vt 0.525000 0.255319 +vt 0.300000 0.255319 +vt 0.275000 0.255319 +vt 0.250000 0.255319 +vt 0.025000 0.255319 +vt 1.000000 0.255319 +vt 1.000000 0.276596 +vt 0.800000 0.255319 +vt 0.050000 0.255319 +vt 0.025000 0.191489 +vt 0.500000 0.255319 +vt 0.775000 0.191489 +vt 0.775000 0.255319 +vt 0.800000 0.191489 +vt 0.800000 0.170213 +vt 1.000000 0.191489 +vt 1.000000 0.170213 +vt 0.025000 0.170213 +vt 0.775000 0.170213 +vt 0.150000 0.893617 +vt 0.250000 0.851064 +vt 0.150000 0.851064 +vt 0.275000 0.851064 +vt 0.250000 0.893617 +vt 0.275000 0.893617 +vt 0.125000 0.893617 +vt 0.125000 0.851064 +vt 0.250000 0.914894 +vt 0.150000 0.914894 +vt 0.150000 0.829787 +vt 0.250000 0.829787 +vt 0.300000 0.936170 +vt 0.350000 0.914894 +vt 0.300000 0.914894 +vt 0.300000 0.829787 +vt 0.350000 0.829787 +vt 0.375000 0.829787 +vt 0.375000 0.914894 +vt 0.275000 0.829787 +vt 0.425000 0.914894 +vt 0.425000 0.829787 +vt 0.250000 0.170213 +vt 0.550000 0.000000 +vt 0.500000 0.191489 +vt 0.550000 0.829787 +vt 0.500000 0.829787 +vt 0.050000 0.829787 +vt 0.800000 0.829787 +vt 0.350000 0.936170 +vt 0.275000 0.914894 +vn 0.5774 0.5774 0.5773 +vn 0.0000 0.7071 0.7071 +vn 0.5774 0.5774 -0.5773 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.5774 -0.5773 -0.5774 +vn 0.0000 -0.7071 0.7071 +vn 0.5774 -0.5773 0.5774 +vn -0.7071 -0.7071 0.0000 +vn -0.5774 -0.5773 0.5774 +vn -0.5774 -0.5773 -0.5774 +vn -0.7071 0.7071 0.0000 +vn -0.5774 0.5774 0.5774 +vn -0.5774 0.5774 -0.5774 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +s off +f 273/286/66 275/287/66 169/288/66 +f 273/289/67 166/290/67 272/291/67 +f 274/292/68 270/293/68 168/294/68 +f 166/295/69 168/296/69 167/297/69 +f 275/287/70 168/298/70 169/299/70 +f 167/297/71 270/293/71 271/300/71 +f 172/301/69 174/302/69 170/303/69 +f 171/304/69 177/305/69 173/306/69 +f 173/307/69 178/308/69 172/309/69 +f 180/310/69 171/311/69 170/312/69 +f 176/313/69 171/314/69 181/315/69 +f 170/316/69 174/317/69 180/310/69 +f 172/318/69 178/319/69 175/320/69 +f 173/321/69 177/322/69 179/323/69 +f 179/323/72 186/324/72 178/308/72 +f 177/322/73 187/325/73 179/323/73 +f 174/317/74 188/326/74 180/310/74 +f 175/320/75 182/327/75 174/302/75 +f 188/326/76 181/328/76 180/310/76 +f 178/319/77 183/329/77 175/320/77 +f 181/315/78 184/330/78 176/313/78 +f 176/313/79 185/331/79 177/305/79 +f 190/332/80 193/333/80 191/334/80 +f 183/329/81 190/332/81 182/327/81 +f 193/335/82 186/324/82 187/325/82 +f 186/336/83 192/337/83 183/329/83 +f 184/330/84 193/338/84 185/331/84 +f 187/325/85 185/339/85 193/340/85 +f 188/326/86 191/341/86 189/342/86 +f 189/343/87 191/344/87 184/330/87 +f 188/326/88 182/345/88 190/346/88 +f 198/347/80 196/348/80 194/349/80 +f 201/350/80 195/351/80 197/352/80 +f 202/353/80 197/354/80 196/355/80 +f 195/356/80 204/357/80 194/358/80 +f 200/359/80 205/360/80 195/361/80 +f 194/362/80 204/357/80 198/363/80 +f 196/364/80 199/365/80 202/366/80 +f 197/367/80 203/368/80 201/369/80 +f 208/370/79 225/371/79 209/372/79 +f 218/373/75 227/374/75 226/375/75 +f 220/376/72 229/377/72 221/378/72 +f 220/376/77 226/375/77 228/379/77 +f 221/378/80 213/380/80 215/381/80 +f 220/376/80 210/382/80 218/373/80 +f 214/383/80 221/378/80 215/381/80 +f 219/384/80 216/385/80 207/386/80 +f 201/350/79 212/387/79 200/359/79 +f 203/368/73 213/380/73 201/369/73 +f 198/347/75 210/382/75 199/365/75 +f 211/388/80 218/373/80 210/382/80 +f 200/359/78 217/389/78 205/360/78 +f 205/390/76 216/385/76 204/357/76 +f 202/353/72 215/381/72 203/368/72 +f 204/357/74 211/391/74 198/363/74 +f 217/389/80 209/372/80 206/392/80 +f 199/365/77 214/393/77 202/366/77 +f 217/394/80 207/386/80 216/385/80 +f 213/395/80 209/372/80 212/387/80 +f 206/396/76 223/397/76 207/386/76 +f 221/378/73 224/398/73 208/370/73 +f 207/386/74 227/374/74 219/384/74 +f 209/372/78 222/399/78 206/392/78 +f 231/400/69 226/375/69 227/374/69 +f 228/379/69 230/401/69 234/402/69 +f 228/379/69 235/403/69 229/377/69 +f 229/377/69 233/404/69 224/398/69 +f 233/405/69 225/371/69 224/398/69 +f 225/371/69 237/406/69 222/399/69 +f 237/407/69 223/397/69 222/408/69 +f 236/409/69 227/374/69 223/397/69 +f 232/410/78 245/411/78 237/406/78 +f 234/412/72 243/413/72 235/403/72 +f 230/401/75 239/414/75 238/415/75 +f 235/403/73 241/416/73 233/404/73 +f 231/417/74 244/418/74 239/419/74 +f 237/407/76 244/418/76 236/409/76 +f 233/405/79 240/420/79 232/410/79 +f 230/401/77 242/421/77 234/402/77 +f 251/422/80 238/415/80 239/414/80 +f 238/415/80 252/423/80 242/421/80 +f 242/424/80 253/425/80 243/413/80 +f 241/416/80 253/425/80 248/426/80 +f 248/426/80 240/420/80 241/427/80 +f 249/428/80 245/411/80 240/420/80 +f 246/429/80 244/418/80 245/430/80 +f 244/418/80 251/422/80 239/419/80 +f 247/431/74 259/432/74 251/422/74 +f 250/433/77 260/434/77 252/423/77 +f 249/428/78 254/435/78 246/436/78 +f 246/429/76 255/437/76 247/431/76 +f 252/423/72 261/438/72 253/425/72 +f 253/425/73 256/439/73 248/426/73 +f 251/422/75 258/440/75 250/433/75 +f 248/426/79 257/441/79 249/428/79 +f 263/442/69 258/440/69 259/432/69 +f 260/434/69 262/443/69 266/444/69 +f 260/434/69 267/445/69 261/438/69 +f 261/438/69 265/446/69 256/439/69 +f 265/447/69 257/441/69 256/439/69 +f 257/441/69 269/448/69 254/435/69 +f 269/449/69 255/437/69 254/450/69 +f 268/451/69 259/432/69 255/437/69 +f 262/443/77 274/292/77 266/444/77 +f 264/452/78 277/453/78 269/448/78 +f 266/454/72 275/287/72 267/445/72 +f 263/442/75 270/293/75 262/443/75 +f 267/445/73 273/286/73 265/446/73 +f 268/451/74 271/455/74 263/456/74 +f 269/449/76 276/457/76 268/451/76 +f 265/447/79 272/291/79 264/452/79 +f 167/458/89 277/459/89 166/460/89 +f 277/453/90 272/291/90 166/461/90 +f 276/457/91 167/462/91 271/455/91 +f 194/349/75 172/301/75 170/303/75 +f 172/309/72 197/354/72 173/307/72 +f 173/306/79 195/351/79 171/304/79 +f 195/356/76 170/312/76 171/311/76 +f 284/463/72 282/464/72 283/465/72 +f 280/466/75 285/467/75 281/468/75 +f 279/469/79 283/465/79 278/470/79 +f 281/471/80 284/463/80 279/472/80 +f 278/473/69 282/464/69 280/474/69 +f 292/475/92 290/476/92 291/477/92 +f 286/478/93 290/476/93 288/479/93 +f 289/480/75 290/476/75 293/481/75 +f 287/482/79 291/477/79 286/478/79 +f 289/480/94 292/483/94 287/484/94 +f 273/289/67 169/485/67 166/290/67 +f 166/295/69 169/486/69 168/296/69 +f 275/287/70 274/487/70 168/298/70 +f 167/297/71 168/296/71 270/293/71 +f 172/301/69 175/320/69 174/302/69 +f 171/304/69 176/313/69 177/305/69 +f 173/307/69 179/323/69 178/308/69 +f 180/310/69 181/328/69 171/311/69 +f 179/323/72 187/325/72 186/324/72 +f 177/322/73 185/339/73 187/325/73 +f 174/317/74 182/345/74 188/326/74 +f 175/320/75 183/329/75 182/327/75 +f 188/326/76 189/342/76 181/328/76 +f 178/319/77 186/336/77 183/329/77 +f 181/315/78 189/343/78 184/330/78 +f 176/313/79 184/330/79 185/331/79 +f 190/332/80 192/488/80 193/333/80 +f 183/329/81 192/488/81 190/332/81 +f 193/335/82 192/489/82 186/324/82 +f 184/330/84 191/490/84 193/338/84 +f 188/326/86 190/491/86 191/341/86 +f 198/347/80 199/365/80 196/348/80 +f 201/350/80 200/359/80 195/351/80 +f 202/353/80 203/368/80 197/354/80 +f 195/356/80 205/390/80 204/357/80 +f 208/370/79 224/398/79 225/371/79 +f 218/373/75 219/384/75 227/374/75 +f 220/376/72 228/379/72 229/377/72 +f 220/376/77 218/373/77 226/375/77 +f 221/378/80 208/370/80 213/380/80 +f 220/376/80 214/393/80 210/382/80 +f 214/383/80 220/376/80 221/378/80 +f 219/384/80 211/391/80 216/385/80 +f 201/350/79 213/395/79 212/387/79 +f 203/368/73 215/381/73 213/380/73 +f 198/347/75 211/388/75 210/382/75 +f 211/388/80 219/384/80 218/373/80 +f 200/359/78 212/387/78 217/389/78 +f 205/390/76 217/394/76 216/385/76 +f 202/353/72 214/383/72 215/381/72 +f 204/357/74 216/385/74 211/391/74 +f 217/389/80 212/387/80 209/372/80 +f 199/365/77 210/382/77 214/393/77 +f 217/394/80 206/396/80 207/386/80 +f 213/395/80 208/370/80 209/372/80 +f 206/396/76 222/408/76 223/397/76 +f 221/378/73 229/377/73 224/398/73 +f 207/386/74 223/397/74 227/374/74 +f 209/372/78 225/371/78 222/399/78 +f 231/400/69 230/401/69 226/375/69 +f 228/379/69 226/375/69 230/401/69 +f 228/379/69 234/412/69 235/403/69 +f 229/377/69 235/403/69 233/404/69 +f 233/405/69 232/410/69 225/371/69 +f 225/371/69 232/410/69 237/406/69 +f 237/407/69 236/409/69 223/397/69 +f 236/409/69 231/417/69 227/374/69 +f 232/410/78 240/420/78 245/411/78 +f 234/412/72 242/424/72 243/413/72 +f 230/401/75 231/400/75 239/414/75 +f 235/403/73 243/413/73 241/416/73 +f 231/417/74 236/409/74 244/418/74 +f 237/407/76 245/430/76 244/418/76 +f 233/405/79 241/427/79 240/420/79 +f 230/401/77 238/415/77 242/421/77 +f 251/422/80 250/433/80 238/415/80 +f 238/415/80 250/433/80 252/423/80 +f 242/424/80 252/423/80 253/425/80 +f 241/416/80 243/413/80 253/425/80 +f 248/426/80 249/428/80 240/420/80 +f 249/428/80 246/436/80 245/411/80 +f 246/429/80 247/431/80 244/418/80 +f 244/418/80 247/431/80 251/422/80 +f 247/431/74 255/437/74 259/432/74 +f 250/433/77 258/440/77 260/434/77 +f 249/428/78 257/441/78 254/435/78 +f 246/429/76 254/450/76 255/437/76 +f 252/423/72 260/434/72 261/438/72 +f 253/425/73 261/438/73 256/439/73 +f 251/422/75 259/432/75 258/440/75 +f 248/426/79 256/439/79 257/441/79 +f 263/442/69 262/443/69 258/440/69 +f 260/434/69 258/440/69 262/443/69 +f 260/434/69 266/454/69 267/445/69 +f 261/438/69 267/445/69 265/446/69 +f 265/447/69 264/452/69 257/441/69 +f 257/441/69 264/452/69 269/448/69 +f 269/449/69 268/451/69 255/437/69 +f 268/451/69 263/456/69 259/432/69 +f 262/443/77 270/293/77 274/292/77 +f 264/452/78 272/291/78 277/453/78 +f 266/454/72 274/487/72 275/287/72 +f 263/442/75 271/300/75 270/293/75 +f 267/445/73 275/287/73 273/286/73 +f 268/451/74 276/457/74 271/455/74 +f 269/449/76 277/459/76 276/457/76 +f 265/447/79 273/289/79 272/291/79 +f 167/458/89 276/457/89 277/459/89 +f 194/349/75 196/348/75 172/301/75 +f 172/309/72 196/355/72 197/354/72 +f 173/306/79 197/352/79 195/351/79 +f 195/356/76 194/358/76 170/312/76 +f 284/463/72 285/467/72 282/464/72 +f 280/466/75 282/464/75 285/467/75 +f 279/469/79 284/463/79 283/465/79 +f 281/471/80 285/467/80 284/463/80 +f 278/473/69 283/465/69 282/464/69 +f 292/475/92 293/492/92 290/476/92 +f 286/478/93 291/477/93 290/476/93 +f 289/480/75 288/479/75 290/476/75 +f 287/482/79 292/493/79 291/477/79 +f 289/480/94 293/481/94 292/483/94 +o RightArm +v -3.900001 12.299999 2.100000 +v -3.900001 12.299999 -2.100000 +v -8.100000 12.299999 -2.100000 +v -8.100000 12.299999 2.100000 +v -3.900002 5.475000 -2.100000 +v -3.900002 5.475000 2.100000 +v -8.100002 5.475000 -2.100000 +v -8.100002 5.475000 2.100000 +v -3.900002 5.475000 -2.625000 +v -8.100002 5.475000 -2.625000 +v -3.900002 5.475000 2.625000 +v -8.100002 5.475000 2.625000 +v -8.625002 5.475000 -2.100000 +v -8.625002 5.475000 2.100000 +v -3.375002 5.475000 -2.100000 +v -3.375002 5.475000 2.100000 +v -3.900002 -0.299999 -2.625000 +v -8.100002 -0.299999 -2.625000 +v -3.900002 -0.299999 2.625000 +v -8.100002 -0.299999 2.625000 +v -8.625002 -0.299999 -2.100000 +v -8.625002 -0.299999 2.100000 +v -3.375002 -0.299999 -2.100000 +v -3.375002 -0.299999 2.100000 +v -3.900002 -0.825001 -2.100000 +v -3.900002 -0.825001 2.100000 +v -8.100002 -0.825001 -2.100000 +v -8.100002 -0.825001 2.100000 +v -3.900002 6.525000 -2.100000 +v -3.900002 6.525000 2.100000 +v -8.100002 6.525000 -2.100000 +v -8.100002 6.525000 2.100000 +v -3.900002 6.525000 -2.625000 +v -8.100002 6.525000 -2.625000 +v -3.900002 6.525000 2.625000 +v -8.100002 6.525000 2.625000 +v -8.625002 6.525000 -2.100000 +v -8.625002 6.525000 2.100000 +v -3.375001 6.525000 -2.100000 +v -3.375001 6.525000 2.100000 +v -2.850002 7.575001 2.100000 +v -2.850002 7.575001 -2.100000 +v -8.100002 7.575001 3.150000 +v -3.900002 7.575001 3.150000 +v -8.100002 7.575001 -2.625000 +v -3.900002 7.575001 -2.625000 +v -3.900002 7.575001 2.625000 +v -8.100002 7.575001 2.625000 +v -8.625002 7.575001 -2.100000 +v -8.625002 7.575001 2.100000 +v -3.375001 7.575001 -2.100000 +v -3.375001 7.575001 2.100000 +v -8.100002 7.575001 -3.150000 +v -3.900002 7.575001 -3.150000 +v -9.150002 7.575001 -2.100000 +v -9.150002 7.575001 2.100000 +v -2.850002 8.625000 2.100000 +v -2.850002 8.625000 -2.100000 +v -8.100000 8.625000 3.150000 +v -3.900002 8.625000 3.150000 +v -8.100000 8.625000 -3.150000 +v -3.900002 8.625000 -3.150000 +v -9.150000 8.625000 -2.100000 +v -9.150000 8.625000 2.100000 +v -8.100000 8.625000 -2.625000 +v -3.900002 8.625000 -2.625000 +v -3.900002 8.625000 2.625000 +v -8.100000 8.625000 2.625000 +v -8.625000 8.625000 -2.100000 +v -8.625000 8.625000 2.100000 +v -3.375001 8.625000 -2.100000 +v -3.375001 8.625000 2.100000 +v -8.100000 9.150000 -2.625000 +v -3.900001 9.150000 -2.625000 +v -3.900001 9.150000 2.625000 +v -8.100000 9.150000 2.625000 +v -8.625000 9.150000 -2.100000 +v -8.625000 9.150000 2.100000 +v -3.375001 9.150000 -2.100000 +v -3.375001 9.150000 2.100000 +v -2.850002 9.150000 2.100000 +v -2.850002 9.150000 -2.100000 +v -8.100000 9.150000 3.150000 +v -3.900001 9.150000 3.150000 +v -8.100000 9.150000 -3.150000 +v -3.900001 9.150000 -3.150000 +v -9.150000 9.150000 -2.100000 +v -9.150000 9.150000 2.100000 +v -2.850002 10.200000 2.100000 +v -2.850002 10.200000 -2.100000 +v -8.100000 10.200002 3.150000 +v -3.900001 10.200000 3.150000 +v -8.100000 10.200002 -3.150000 +v -3.900001 10.200000 -3.150000 +v -9.150000 10.200002 -2.100000 +v -9.150000 10.200002 2.100000 +v -8.100000 10.200002 -2.625000 +v -3.900001 10.200000 -2.625000 +v -3.900001 10.200000 2.625000 +v -8.100000 10.200002 2.625000 +v -8.625000 10.200002 -2.100000 +v -8.625000 10.200002 2.100000 +v -3.375001 10.200000 -2.100000 +v -3.375001 10.200000 2.100000 +v -8.100000 11.775000 -2.625000 +v -3.900001 11.775000 -2.625000 +v -3.900001 11.775000 2.625000 +v -8.100000 11.775000 2.625000 +v -8.625000 11.775000 -2.100000 +v -8.625000 11.775000 2.100000 +v -3.375001 11.775000 -2.100000 +v -3.375001 11.775000 2.100000 +v -8.625000 11.512502 1.050000 +v -8.625000 10.462500 1.050000 +v -8.625000 11.512502 -1.050000 +v -8.625000 10.462500 -1.050000 +v -9.150000 11.512502 -1.050000 +v -9.150000 11.512502 1.050000 +v -9.150000 10.462500 1.050000 +v -9.150000 10.462500 -1.050000 +v -8.554665 6.787500 0.525000 +v -8.100002 6.525000 0.525000 +v -8.554665 6.787500 -0.525000 +v -8.100002 6.525000 -0.525000 +v -9.604664 4.968847 -0.525000 +v -9.604664 4.968847 0.525000 +v -9.150002 4.706348 0.525000 +v -9.150002 4.706348 -0.525000 +vt 0.275000 0.191489 +vt 0.275000 0.170213 +vt 0.300000 0.191489 +vt 0.050000 0.170213 +vt 0.250000 0.191489 +vt 0.050000 0.191489 +vt 0.525000 0.191489 +vt 0.525000 0.170213 +vt 0.550000 0.191489 +vt 0.550000 0.170213 +vt 0.750000 0.000000 +vt 0.750000 0.170213 +vt 0.500000 0.170213 +vt 0.300000 0.170213 +vt 0.750000 0.191489 +vt 0.750000 0.574468 +vt 0.550000 0.553191 +vt 0.750000 0.553191 +vt 0.250000 0.574468 +vt 0.050000 0.553191 +vt 0.250000 0.553191 +vt 0.500000 0.574468 +vt 0.300000 0.553191 +vt 0.500000 0.553191 +vt 1.000000 0.553191 +vt 0.800000 0.574468 +vt 0.800000 0.553191 +vt 0.050000 0.574468 +vt 0.025000 0.574468 +vt 0.025000 0.553191 +vt 0.775000 0.553191 +vt 0.775000 0.574468 +vt 0.525000 0.553191 +vt 0.550000 0.574468 +vt 0.525000 0.574468 +vt 0.275000 0.553191 +vt 0.300000 0.574468 +vt 0.275000 0.574468 +vt 0.500000 0.808511 +vt 0.300000 0.808511 +vt 0.800000 0.808511 +vt 0.750000 0.808511 +vt 1.000000 0.574468 +vt 0.550000 0.808511 +vt 0.050000 0.808511 +vt 0.250000 0.808511 +vt 0.550000 1.000000 +vt 0.750000 0.829787 +vt 0.750000 1.000000 +vt 0.300000 0.829787 +vt 0.525000 0.808511 +vt 0.525000 0.829787 +vt 0.250000 0.829787 +vt 0.275000 0.829787 +vt 0.275000 0.808511 +vt 1.000000 0.829787 +vt 1.000000 0.808511 +vt 0.025000 0.808511 +vt 0.025000 0.829787 +vt 0.775000 0.829787 +vt 0.775000 0.808511 +vt 0.550000 0.510638 +vt 0.750000 0.489362 +vt 0.750000 0.510638 +vt 0.050000 0.510638 +vt 0.250000 0.489362 +vt 0.250000 0.510638 +vt 0.300000 0.510638 +vt 0.500000 0.489362 +vt 0.500000 0.510638 +vt 0.800000 0.489362 +vt 1.000000 0.510638 +vt 0.800000 0.510638 +vt 0.050000 0.489362 +vt 0.025000 0.510638 +vt 0.025000 0.489362 +vt 0.775000 0.510638 +vt 0.775000 0.489362 +vt 0.525000 0.510638 +vt 0.525000 0.489362 +vt 0.550000 0.489362 +vt 0.275000 0.510638 +vt 0.275000 0.489362 +vt 0.300000 0.489362 +vt 0.050000 0.425532 +vt 0.250000 0.382979 +vt 0.250000 0.425532 +vt 0.550000 0.382979 +vt 0.750000 0.425532 +vt 0.550000 0.425532 +vt 0.300000 0.382979 +vt 0.500000 0.425532 +vt 0.300000 0.425532 +vt 0.500000 0.382979 +vt 0.275000 0.446809 +vt 0.550000 0.446809 +vt 0.525000 0.446809 +vt 0.500000 0.446809 +vt 0.300000 0.446809 +vt 0.800000 0.446809 +vt 0.800000 0.425532 +vt 0.050000 0.446809 +vt 0.750000 0.446809 +vt 0.025000 0.446809 +vt 1.000000 0.489362 +vt 0.775000 0.446809 +vt 0.000000 0.425532 +vt 1.000000 0.446809 +vt 0.250000 0.446809 +vt 0.800000 0.382979 +vt 1.000000 0.425532 +vt 0.750000 0.382979 +vt 0.000000 0.382979 +vt 0.750000 0.361702 +vt 0.550000 0.361702 +vt 0.300000 0.361702 +vt 0.275000 0.361702 +vt 0.050000 0.382979 +vt 0.250000 0.361702 +vt 0.025000 0.361702 +vt 1.000000 0.361702 +vt 1.000000 0.382979 +vt 0.800000 0.361702 +vt 0.050000 0.340426 +vt 0.050000 0.361702 +vt 0.300000 0.340426 +vt 0.500000 0.361702 +vt 0.550000 0.340426 +vt 0.275000 0.340426 +vt 0.775000 0.340426 +vt 0.775000 0.361702 +vt 0.800000 0.340426 +vt 0.250000 0.340426 +vt 0.525000 0.340426 +vt 0.525000 0.361702 +vt 0.750000 0.319149 +vt 0.750000 0.340426 +vt 0.500000 0.319149 +vt 0.550000 0.319149 +vt 0.300000 0.319149 +vt 0.500000 0.340426 +vt 0.250000 0.319149 +vt 0.025000 0.340426 +vt 0.050000 0.319149 +vt 1.000000 0.319149 +vt 1.000000 0.340426 +vt 0.750000 0.276596 +vt 0.800000 0.319149 +vt 0.500000 0.276596 +vt 0.000000 0.276596 +vt 0.000000 0.319149 +vt 0.800000 0.276596 +vt 0.300000 0.276596 +vt 0.250000 0.276596 +vt 0.550000 0.276596 +vt 0.050000 0.276596 +vt 0.750000 0.255319 +vt 0.550000 0.255319 +vt 0.300000 0.255319 +vt 0.275000 0.255319 +vt 0.250000 0.255319 +vt 0.025000 0.255319 +vt 1.000000 0.255319 +vt 1.000000 0.276596 +vt 0.800000 0.255319 +vt 0.525000 0.255319 +vt 0.025000 0.191489 +vt 0.050000 0.255319 +vt 0.500000 0.255319 +vt 0.775000 0.191489 +vt 0.775000 0.255319 +vt 0.800000 0.191489 +vt 1.000000 0.191489 +vt 0.800000 0.170213 +vt 1.000000 0.170213 +vt 0.025000 0.170213 +vt 0.775000 0.170213 +vt 0.250000 0.851064 +vt 0.150000 0.893617 +vt 0.150000 0.851064 +vt 0.250000 0.893617 +vt 0.275000 0.851064 +vt 0.275000 0.893617 +vt 0.125000 0.893617 +vt 0.125000 0.851064 +vt 0.250000 0.914894 +vt 0.150000 0.914894 +vt 0.150000 0.829787 +vt 0.250000 0.829787 +vt 0.350000 0.914894 +vt 0.300000 0.936170 +vt 0.300000 0.914894 +vt 0.300000 0.829787 +vt 0.350000 0.829787 +vt 0.375000 0.829787 +vt 0.275000 0.829787 +vt 0.425000 0.914894 +vt 0.425000 0.829787 +vt 0.250000 0.170213 +vt 0.550000 0.000000 +vt 0.500000 0.191489 +vt 0.550000 0.829787 +vt 0.500000 0.829787 +vt 0.050000 0.829787 +vt 0.800000 0.829787 +vt 0.350000 0.936170 +vt 0.375000 0.914894 +vt 0.275000 0.914894 +vn -0.5774 0.5774 0.5773 +vn 0.0000 0.7071 0.7071 +vn -0.5774 0.5774 -0.5773 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.5774 -0.5773 -0.5774 +vn 0.0000 -0.7071 0.7071 +vn -0.5774 -0.5773 0.5774 +vn 0.7071 -0.7071 0.0000 +vn 0.5774 -0.5773 0.5774 +vn 0.5774 -0.5773 -0.5774 +vn 0.7071 0.7071 0.0000 +vn 0.5774 0.5774 0.5774 +vn 0.5774 0.5774 -0.5774 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +s off +f 401/494/95 297/495/95 403/496/95 +f 294/497/96 401/498/96 400/499/96 +f 402/500/97 296/501/97 398/502/97 +f 296/503/98 294/504/98 295/505/98 +f 296/506/99 403/496/99 297/507/99 +f 398/502/100 295/505/100 399/508/100 +f 302/509/98 300/510/98 298/511/98 +f 305/512/98 299/513/98 301/514/98 +f 306/515/98 301/516/98 300/517/98 +f 299/518/98 308/519/98 298/520/98 +f 304/521/98 309/522/98 299/523/98 +f 298/524/98 308/519/98 302/525/98 +f 300/526/98 303/527/98 306/528/98 +f 301/529/98 307/530/98 305/531/98 +f 314/532/101 307/530/101 306/515/101 +f 315/533/102 305/531/102 307/530/102 +f 316/534/103 302/525/103 308/519/103 +f 310/535/104 303/527/104 302/509/104 +f 309/536/105 316/534/105 308/519/105 +f 311/537/106 306/528/106 303/527/106 +f 312/538/107 309/522/107 304/521/107 +f 313/539/108 304/521/108 305/512/108 +f 321/540/109 318/541/109 319/542/109 +f 318/541/110 311/537/110 310/535/110 +f 314/532/111 321/543/111 315/533/111 +f 314/544/112 311/537/112 320/545/112 +f 321/546/113 312/538/113 313/539/113 +f 315/533/114 321/547/114 313/548/114 +f 319/549/115 316/534/115 317/550/115 +f 317/551/116 312/538/116 319/552/116 +f 316/534/117 318/553/117 310/554/117 +f 324/555/109 326/556/109 322/557/109 +f 323/558/109 329/559/109 325/560/109 +f 325/561/109 330/562/109 324/563/109 +f 332/564/109 323/565/109 322/566/109 +f 328/567/109 323/568/109 333/569/109 +f 322/570/109 326/571/109 332/564/109 +f 324/572/109 330/573/109 327/574/109 +f 325/575/109 329/576/109 331/577/109 +f 337/578/108 352/579/108 336/580/108 +f 354/581/104 347/582/104 346/583/104 +f 357/584/101 348/585/101 349/586/101 +f 356/587/106 346/583/106 348/585/106 +f 349/586/109 341/588/109 336/580/109 +f 348/585/109 338/589/109 342/590/109 +f 349/586/109 342/591/109 343/592/109 +f 344/593/109 347/582/109 335/594/109 +f 340/595/108 329/559/108 328/567/108 +f 341/588/102 331/577/102 329/576/102 +f 338/589/104 326/556/104 327/574/104 +f 346/583/109 339/596/109 338/589/109 +f 345/597/107 328/567/107 333/569/107 +f 344/593/105 333/598/105 332/564/105 +f 343/592/101 330/562/101 331/577/101 +f 339/599/103 332/564/103 326/571/103 +f 337/578/109 345/597/109 334/600/109 +f 342/590/106 327/574/106 330/573/106 +f 335/594/109 345/601/109 344/593/109 +f 337/578/109 341/602/109 340/595/109 +f 351/603/105 334/604/105 335/594/105 +f 336/580/102 357/584/102 349/586/102 +f 355/605/103 335/594/103 347/582/103 +f 350/606/107 337/578/107 334/600/107 +f 354/581/98 359/607/98 355/605/98 +f 356/587/98 358/608/98 354/581/98 +f 363/609/98 356/587/98 357/584/98 +f 357/584/98 361/610/98 363/609/98 +f 353/611/98 361/612/98 352/579/98 +f 365/613/98 353/611/98 350/606/98 +f 351/603/98 365/614/98 350/615/98 +f 355/605/98 364/616/98 351/603/98 +f 365/613/107 368/617/107 360/618/107 +f 371/619/101 362/620/101 363/609/101 +f 366/621/104 359/607/104 358/608/104 +f 369/622/102 363/609/102 361/610/102 +f 367/623/103 364/616/103 359/624/103 +f 372/625/105 365/614/105 364/616/105 +f 360/618/108 369/626/108 361/612/108 +f 370/627/106 358/608/106 362/628/106 +f 366/621/109 379/629/109 367/630/109 +f 366/621/109 380/631/109 378/632/109 +f 381/633/109 370/634/109 371/619/109 +f 369/622/109 381/633/109 371/619/109 +f 368/617/109 376/635/109 369/626/109 +f 373/636/109 377/637/109 368/617/109 +f 372/625/109 374/638/109 373/639/109 +f 379/629/109 372/625/109 367/623/109 +f 387/640/103 375/641/103 379/629/103 +f 388/642/106 378/632/106 380/631/106 +f 382/643/107 377/637/107 374/644/107 +f 383/645/105 374/638/105 375/641/105 +f 389/646/101 380/631/101 381/633/101 +f 384/647/102 381/633/102 376/635/102 +f 386/648/104 379/629/104 378/632/104 +f 385/649/108 376/635/108 377/637/108 +f 386/648/98 391/650/98 387/640/98 +f 388/642/98 390/651/98 386/648/98 +f 395/652/98 388/642/98 389/646/98 +f 389/646/98 393/653/98 395/652/98 +f 385/649/98 393/654/98 384/647/98 +f 397/655/98 385/649/98 382/643/98 +f 383/645/98 397/656/98 382/657/98 +f 387/640/98 396/658/98 383/645/98 +f 402/500/106 390/651/106 394/659/106 +f 405/660/107 392/661/107 397/655/107 +f 403/496/101 394/662/101 395/652/101 +f 390/651/104 399/508/104 391/650/104 +f 401/494/102 395/652/102 393/653/102 +f 399/663/103 396/658/103 391/664/103 +f 404/665/105 397/656/105 396/658/105 +f 400/499/108 393/654/108 392/661/108 +f 405/666/118 295/667/118 294/668/118 +f 405/660/119 294/669/119 400/499/119 +f 404/665/120 399/663/120 295/670/120 +f 300/510/104 322/557/104 298/511/104 +f 325/561/101 300/517/101 301/516/101 +f 299/513/108 325/560/108 301/514/108 +f 298/520/105 323/565/105 299/518/105 +f 410/671/101 412/672/101 411/673/101 +f 413/674/104 408/675/104 409/676/104 +f 411/673/108 407/677/108 406/678/108 +f 412/672/109 409/679/109 407/680/109 +f 410/671/98 406/681/98 408/682/98 +f 418/683/121 420/684/121 419/685/121 +f 418/683/122 414/686/122 416/687/122 +f 417/688/104 418/683/104 416/687/104 +f 419/685/108 415/689/108 414/686/108 +f 420/690/123 417/688/123 415/691/123 +f 294/497/96 297/692/96 401/498/96 +f 296/503/98 297/693/98 294/504/98 +f 296/506/99 402/694/99 403/496/99 +f 398/502/100 296/503/100 295/505/100 +f 302/509/98 303/527/98 300/510/98 +f 305/512/98 304/521/98 299/513/98 +f 306/515/98 307/530/98 301/516/98 +f 299/518/98 309/536/98 308/519/98 +f 314/532/101 315/533/101 307/530/101 +f 315/533/102 313/548/102 305/531/102 +f 316/534/103 310/554/103 302/525/103 +f 310/535/104 311/537/104 303/527/104 +f 309/536/105 317/550/105 316/534/105 +f 311/537/106 314/544/106 306/528/106 +f 312/538/107 317/551/107 309/522/107 +f 313/539/108 312/538/108 304/521/108 +f 321/540/109 320/695/109 318/541/109 +f 318/541/110 320/695/110 311/537/110 +f 314/532/111 320/696/111 321/543/111 +f 321/546/113 319/697/113 312/538/113 +f 319/549/115 318/698/115 316/534/115 +f 324/555/109 327/574/109 326/556/109 +f 323/558/109 328/567/109 329/559/109 +f 325/561/109 331/577/109 330/562/109 +f 332/564/109 333/598/109 323/565/109 +f 337/578/108 353/611/108 352/579/108 +f 354/581/104 355/605/104 347/582/104 +f 357/584/101 356/587/101 348/585/101 +f 356/587/106 354/581/106 346/583/106 +f 349/586/109 343/592/109 341/588/109 +f 348/585/109 346/583/109 338/589/109 +f 349/586/109 348/585/109 342/591/109 +f 344/593/109 339/599/109 347/582/109 +f 340/595/108 341/602/108 329/559/108 +f 341/588/102 343/592/102 331/577/102 +f 338/589/104 339/596/104 326/556/104 +f 346/583/109 347/582/109 339/596/109 +f 345/597/107 340/595/107 328/567/107 +f 344/593/105 345/601/105 333/598/105 +f 343/592/101 342/591/101 330/562/101 +f 339/599/103 344/593/103 332/564/103 +f 337/578/109 340/595/109 345/597/109 +f 342/590/106 338/589/106 327/574/106 +f 335/594/109 334/604/109 345/601/109 +f 337/578/109 336/580/109 341/602/109 +f 351/603/105 350/615/105 334/604/105 +f 336/580/102 352/579/102 357/584/102 +f 355/605/103 351/603/103 335/594/103 +f 350/606/107 353/611/107 337/578/107 +f 354/581/98 358/608/98 359/607/98 +f 356/587/98 362/628/98 358/608/98 +f 363/609/98 362/620/98 356/587/98 +f 357/584/98 352/579/98 361/610/98 +f 353/611/98 360/618/98 361/612/98 +f 365/613/98 360/618/98 353/611/98 +f 351/603/98 364/616/98 365/614/98 +f 355/605/98 359/624/98 364/616/98 +f 365/613/107 373/636/107 368/617/107 +f 371/619/101 370/634/101 362/620/101 +f 366/621/104 367/630/104 359/607/104 +f 369/622/102 371/619/102 363/609/102 +f 367/623/103 372/625/103 364/616/103 +f 372/625/105 373/639/105 365/614/105 +f 360/618/108 368/617/108 369/626/108 +f 370/627/106 366/621/106 358/608/106 +f 366/621/109 378/632/109 379/629/109 +f 366/621/109 370/627/109 380/631/109 +f 381/633/109 380/631/109 370/634/109 +f 369/622/109 376/635/109 381/633/109 +f 368/617/109 377/637/109 376/635/109 +f 373/636/109 374/644/109 377/637/109 +f 372/625/109 375/641/109 374/638/109 +f 379/629/109 375/641/109 372/625/109 +f 387/640/103 383/645/103 375/641/103 +f 388/642/106 386/648/106 378/632/106 +f 382/643/107 385/649/107 377/637/107 +f 383/645/105 382/657/105 374/638/105 +f 389/646/101 388/642/101 380/631/101 +f 384/647/102 389/646/102 381/633/102 +f 386/648/104 387/640/104 379/629/104 +f 385/649/108 384/647/108 376/635/108 +f 386/648/98 390/651/98 391/650/98 +f 388/642/98 394/659/98 390/651/98 +f 395/652/98 394/662/98 388/642/98 +f 389/646/98 384/647/98 393/653/98 +f 385/649/98 392/661/98 393/654/98 +f 397/655/98 392/661/98 385/649/98 +f 383/645/98 396/658/98 397/656/98 +f 387/640/98 391/664/98 396/658/98 +f 402/500/106 398/502/106 390/651/106 +f 405/660/107 400/499/107 392/661/107 +f 403/496/101 402/694/101 394/662/101 +f 390/651/104 398/502/104 399/508/104 +f 401/494/102 403/496/102 395/652/102 +f 399/663/103 404/665/103 396/658/103 +f 404/665/105 405/666/105 397/656/105 +f 400/499/108 401/498/108 393/654/108 +f 405/666/118 404/665/118 295/667/118 +f 300/510/104 324/555/104 322/557/104 +f 325/561/101 324/563/101 300/517/101 +f 299/513/108 323/558/108 325/560/108 +f 298/520/105 322/566/105 323/565/105 +f 410/671/101 413/674/101 412/672/101 +f 413/674/104 410/671/104 408/675/104 +f 411/673/108 412/672/108 407/677/108 +f 412/672/109 413/674/109 409/679/109 +f 410/671/98 411/673/98 406/681/98 +f 418/683/121 421/699/121 420/684/121 +f 418/683/122 419/685/122 414/686/122 +f 417/688/104 421/700/104 418/683/104 +f 419/685/108 420/701/108 415/689/108 +f 420/690/123 421/700/123 417/688/123 +o Tail +v -2.100001 9.150000 13.650000 +v 2.099998 9.150000 13.650000 +v -2.100001 9.150000 9.450000 +v 2.099998 9.150000 9.450000 +v 2.099999 15.450000 7.349999 +v -2.100000 15.450000 7.349999 +v 2.099998 11.250000 7.349999 +v -2.100001 11.250000 7.349999 +v -1.050001 10.200000 2.100000 +v 1.049999 10.200000 2.100000 +v -1.050001 12.299999 2.100000 +v 1.049999 12.299999 2.100000 +v -3.150002 0.750000 14.699999 +v 3.149997 0.750000 14.699999 +v -3.150002 0.750000 8.400000 +v 3.149997 0.750000 8.400000 +v -4.200002 -2.400000 15.749999 +v 4.199996 -2.400000 15.749999 +v -3.150002 -4.500000 8.400000 +v 3.149997 -4.500000 8.400000 +v -4.200002 -8.699997 12.599999 +v 4.199996 -8.699997 12.599999 +v -4.200002 -8.699997 17.849998 +v 4.199996 -8.699997 17.849998 +v -3.150002 -4.500000 22.049999 +v 3.149997 -4.500000 22.049999 +v 3.149997 0.750000 22.049999 +v -3.150002 0.750000 22.049999 +v 2.099998 7.049999 14.699999 +v -2.100001 7.049999 14.699999 +v -3.150002 0.750000 16.799999 +v 3.149997 0.750000 16.799999 +vt 0.576923 0.192308 +vt 0.730769 0.153846 +vt 0.730769 0.192308 +vt 0.730769 0.000000 +vt 0.615385 0.096154 +vt 0.653846 -0.000000 +vt 0.346154 -0.000000 +vt 0.461538 0.096154 +vt 0.307692 0.096154 +vt 0.500000 -0.000000 +vt 0.269231 -0.000000 +vt 0.153846 0.096154 +vt 0.192308 -0.000000 +vt 0.461538 0.250000 +vt 0.576923 0.153846 +vt 0.307692 0.250000 +vt 0.192308 0.192308 +vt 0.461538 0.250000 +vt 0.269231 0.403846 +vt 0.307692 0.250000 +vt 0.961538 0.250000 +vt 0.769231 0.403846 +vt 0.807692 0.250000 +vt 0.538462 0.250000 +vt 0.730769 0.403846 +vt 0.500000 0.403846 +vt 0.076923 0.250000 +vt 0.038462 0.403846 +vt 0.500000 0.788462 +vt 0.692308 0.826923 +vt 0.500000 0.884615 +vt 0.269231 0.500000 +vt 0.076923 0.884615 +vt 0.076923 0.826923 +vt 0.269231 0.884615 +vt 0.500000 0.500000 +vt 0.230769 0.596154 +vt 0.538462 0.500000 +vt 0.769231 0.548077 +vt 0.538462 0.596154 +vt 0.230769 0.500000 +vt -0.000000 0.548077 +vt 0.230769 0.692308 +vt 0.538462 0.692308 +vt 0.269231 0.788462 +vt 1.000000 0.403846 +vt 0.769231 0.500000 +vt 0.923077 0.826923 +vt 0.730769 0.942308 +vt 0.769231 0.826923 +vt 0.730769 0.500000 +vt 0.769231 0.740385 +vt 0.538462 0.788462 +vt 0.307692 1.000000 +vt 0.230769 0.788462 +vt -0.000000 0.740385 +vt 0.769231 0.644231 +vt -0.000000 0.644231 +vt 1.000000 1.000000 +vt 0.692308 1.000000 +vt 0.076923 1.000000 +vt 0.692308 1.000000 +vt 0.692308 0.884615 +vt -0.000000 0.500000 +vt 0.769231 0.096154 +vt 0.423077 0.000000 +vt 0.576923 -0.000000 +vt 0.192308 0.153846 +vt 0.692308 0.250000 +vt 0.230769 0.250000 +vt 1.000000 0.500000 +vt 0.961538 0.942308 +vt 0.461538 1.000000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.9806 0.1961 +vn 0.0000 0.8575 -0.5145 +vn -0.9806 0.0000 -0.1961 +vn 0.9806 0.0000 -0.1961 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.1240 -0.9923 +vn 0.0000 0.1240 0.9923 +vn 0.9923 0.1240 0.0000 +vn -0.9923 0.1240 0.0000 +vn 0.9864 0.0000 0.1644 +vn 0.0000 0.0000 -1.0000 +vn -0.9487 0.3162 0.0000 +vn 0.9831 0.0819 -0.1638 +vn -0.9831 0.0819 -0.1638 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.3162 0.9487 +vn 0.0000 -0.3162 -0.9487 +vn 0.9487 0.3162 0.0000 +vn 0.9810 0.0613 0.1839 +vn 0.0000 0.7593 0.6508 +vn 0.0000 0.0000 1.0000 +vn -0.9810 0.0613 0.1839 +vn 0.0000 0.3162 -0.9487 +vn -0.9864 0.1644 0.0000 +vn 0.9864 0.1644 0.0000 +vn 0.9899 0.0000 -0.1414 +vn -0.9899 0.0000 -0.1414 +vn -0.9864 0.0000 0.1644 +s off +f 424/702/124 428/703/124 425/704/124 +f 431/705/125 429/706/125 430/707/125 +f 433/708/126 427/709/126 426/710/126 +f 432/711/127 429/706/127 427/709/127 +f 433/712/128 428/713/128 431/714/128 +f 422/715/129 429/716/129 424/702/129 +f 423/717/130 427/709/130 422/715/130 +f 425/718/131 426/710/131 423/717/131 +f 425/719/132 436/720/132 424/721/132 +f 422/722/133 435/723/133 423/724/133 +f 425/725/134 435/726/134 437/727/134 +f 422/728/135 436/720/135 434/729/135 +f 447/730/136 439/731/136 448/732/136 +f 437/727/137 440/733/137 436/720/137 +f 452/734/138 438/735/138 449/736/138 +f 441/737/124 442/738/124 440/733/124 +f 441/739/139 439/740/139 443/741/139 +f 440/742/140 442/738/140 438/743/140 +f 443/741/141 444/744/141 442/738/141 +f 445/745/142 446/746/142 444/744/142 +f 434/747/143 439/748/143 435/723/143 +f 450/749/144 452/750/144 451/751/144 +f 435/726/145 439/752/145 437/727/145 +f 445/745/146 439/753/146 447/754/146 +f 448/732/147 451/755/147 449/736/147 +f 447/730/148 449/736/148 446/746/148 +f 444/744/149 446/756/149 438/757/149 +f 443/741/131 439/758/131 445/745/131 +f 442/738/129 444/744/129 438/759/129 +f 452/750/150 439/760/150 438/761/150 +f 449/736/151 451/762/151 452/734/151 +f 450/763/152 448/732/152 453/764/152 +f 434/729/138 436/720/138 438/765/138 +f 448/732/145 439/731/145 453/764/145 +f 437/727/153 439/752/153 441/737/153 +f 438/765/154 436/720/154 440/733/154 +f 449/736/155 438/735/155 446/746/155 +f 424/702/124 429/716/124 428/703/124 +f 431/705/125 428/766/125 429/706/125 +f 433/708/126 432/767/126 427/709/126 +f 432/711/127 430/768/127 429/706/127 +f 433/712/128 426/710/128 428/713/128 +f 422/715/129 427/709/129 429/716/129 +f 423/717/130 426/710/130 427/709/130 +f 425/718/131 428/769/131 426/710/131 +f 425/719/132 437/727/132 436/720/132 +f 422/722/133 434/747/133 435/723/133 +f 425/725/134 423/770/134 435/726/134 +f 422/728/135 424/771/135 436/720/135 +f 437/727/137 441/737/137 440/733/137 +f 441/737/124 443/741/124 442/738/124 +f 443/741/141 445/745/141 444/744/141 +f 445/745/142 447/730/142 446/746/142 +f 434/747/143 438/772/143 439/748/143 +f 450/749/144 453/773/144 452/750/144 +f 448/732/147 450/774/147 451/755/147 +f 447/730/148 448/732/148 449/736/148 +f 452/750/150 453/773/150 439/760/150 +o RightLeg +v 0.099999 11.700001 2.100000 +v -4.100001 11.700001 2.100000 +v 0.099999 11.700001 -2.100000 +v -4.100001 11.700001 -2.100000 +v -0.950001 16.950001 -2.100000 +v -3.050000 16.950001 -2.100000 +v -1.475001 19.049999 -2.100000 +v -2.525001 19.049999 -2.100000 +v -0.950001 18.000000 -2.100000 +v -3.050000 18.000000 -2.100000 +v -1.475000 19.575001 -2.100000 +v -2.525001 19.575001 -2.100000 +v -1.475001 19.049999 -2.625000 +v -0.950001 16.950001 -2.625000 +v -3.050000 16.950001 -2.625000 +v -2.525001 19.049999 -2.625000 +v -4.100001 18.000000 -2.100000 +v 0.099999 18.000000 -2.100000 +v -4.100001 18.000000 0.000000 +v 0.099999 18.000000 0.000000 +v -4.100001 19.049999 2.100000 +v 0.099999 19.049999 2.100000 +v -0.950001 18.000000 -2.625000 +v -3.050000 18.000000 -2.625000 +v -1.475000 19.575001 -2.625000 +v -2.525001 19.575001 -2.625000 +v -4.100001 18.000000 -2.625000 +v 0.099999 18.000000 -2.625000 +v 0.625000 18.000000 -2.100000 +v 0.625000 18.000000 0.000000 +v 0.625000 19.049999 2.100000 +v -4.625000 18.000000 -2.100000 +v -4.625000 18.000000 0.000000 +v -4.625000 19.049999 2.100000 +v -4.100001 19.049999 2.625000 +v 0.099999 19.049999 2.625000 +v -4.100001 16.424999 -2.100000 +v 0.099999 16.424999 -2.100000 +v -4.100001 16.424999 -2.625000 +v 0.099999 16.424999 -2.625000 +v 0.624999 16.424999 -2.100000 +v -4.625000 16.424999 -2.100000 +v -4.100001 16.424999 2.100000 +v 0.099999 16.424999 2.100000 +v 0.624999 16.424999 2.100000 +v -4.625000 16.424999 2.100000 +v -4.100001 16.424999 2.625000 +v 0.099999 16.424999 2.625000 +v 0.099999 13.275000 -2.625000 +v 0.099999 13.275000 -2.100000 +v -4.100001 13.275000 -2.100000 +v -4.100001 13.275000 -2.625000 +v 0.624999 13.275000 -2.100000 +v -4.625001 13.275000 -2.100000 +v 0.099999 13.275000 2.100000 +v 0.624999 13.275000 2.100000 +v -4.625001 13.275000 2.100000 +v -4.100001 13.275000 2.100000 +v -4.100001 13.275000 2.625000 +v 0.099999 13.275000 2.625000 +v -4.100000 21.674999 -2.625000 +v 0.100000 21.674999 -2.625000 +v 0.625000 21.674999 -2.100000 +v -4.625000 21.674999 -2.100000 +v 0.625000 21.674999 2.100000 +v -4.625000 21.674999 2.100000 +v -4.100000 21.674999 2.625000 +v 0.100000 21.674999 2.625000 +v 0.100000 21.674999 2.100000 +v -4.100000 21.674999 2.100000 +v 0.100000 21.674999 -2.100000 +v -4.100000 21.674999 -2.100000 +v 0.100000 22.200001 2.100000 +v -4.100000 22.200001 2.100000 +v 0.100000 22.200001 -2.100000 +v -4.100000 22.200001 -2.100000 +vt 0.395833 1.000000 +vt 0.562500 0.800000 +vt 0.562500 1.000000 +vt 0.375000 0.150000 +vt 0.208333 0.125000 +vt 0.375000 0.125000 +vt 0.770833 0.525000 +vt 0.833333 0.425000 +vt 0.854167 0.525000 +vt 0.833333 0.400000 +vt 0.791667 0.425000 +vt 0.791667 0.400000 +vt 0.770833 0.550000 +vt 0.854167 0.550000 +vt 0.750000 0.425000 +vt 0.750000 0.525000 +vt 0.875000 0.525000 +vt 0.854167 0.425000 +vt 0.875000 0.425000 +vt 0.520833 0.375000 +vt 0.562500 0.350000 +vt 0.562500 0.375000 +vt 0.437500 0.375000 +vt 0.458333 0.350000 +vt 0.458333 0.375000 +vt 0.500000 0.350000 +vt 0.500000 0.375000 +vt 0.520833 0.350000 +vt 0.395833 0.375000 +vt 0.437500 0.350000 +vt 0.666667 0.375000 +vt 0.750000 0.350000 +vt 0.750000 0.375000 +vt 0.583333 0.375000 +vt 0.666667 0.350000 +vt 0.208333 0.375000 +vt 0.291667 0.350000 +vt 0.291667 0.375000 +vt 0.375000 0.350000 +vt 0.375000 0.375000 +vt 0.020833 0.300000 +vt 0.187500 0.325000 +vt 0.020833 0.325000 +vt 0.208333 0.350000 +vt 0.187500 0.375000 +vt 0.000000 0.325000 +vt 0.375000 0.375000 +vt 0.395833 0.350000 +vt 0.562500 0.375000 +vt 0.583333 0.350000 +vt 0.395833 0.525000 +vt 0.395833 0.550000 +vt 0.375000 0.525000 +vt 0.583333 0.525000 +vt 0.583333 0.550000 +vt 0.562500 0.525000 +vt 0.562500 0.525000 +vt 0.562500 0.550000 +vt 0.208333 0.550000 +vt 0.375000 0.525000 +vt 0.375000 0.550000 +vt 0.750000 0.525000 +vt 0.187500 0.550000 +vt 0.020833 0.525000 +vt 0.187500 0.525000 +vt 0.208333 0.525000 +vt 0.187500 0.525000 +vt -0.000000 0.525000 +vt 0.020833 0.550000 +vt 0.395833 0.725000 +vt 0.375000 0.725000 +vt 0.395833 0.700000 +vt 0.583333 0.725000 +vt 0.562500 0.725000 +vt 0.583333 0.700000 +vt 0.562500 0.725000 +vt 0.562500 0.700000 +vt 0.375000 0.725000 +vt 0.208333 0.700000 +vt 0.375000 0.700000 +vt 0.750000 0.725000 +vt 0.020833 0.725000 +vt 0.187500 0.700000 +vt 0.187500 0.725000 +vt 0.208333 0.725000 +vt 0.187500 0.725000 +vt 0.000000 0.725000 +vt 0.020833 0.700000 +vt -0.000000 0.700000 +vt -0.000000 0.550000 +vt 0.750000 0.550000 +vt 0.583333 0.175000 +vt 0.375000 0.175000 +vt 0.395833 0.175000 +vt 0.458333 0.275000 +vt 0.562500 0.175000 +vt -0.000000 0.300000 +vt 0.020833 0.175000 +vt 0.187500 0.300000 +vt 0.208333 0.175000 +vt 0.208333 0.300000 +vt 0.750000 0.175000 +vt 0.750000 0.300000 +vt 0.187500 0.175000 +vt 0.395833 0.150000 +vt 0.562500 0.150000 +vt 0.375000 0.150000 +vt 0.020833 0.150000 +vt 0.187500 0.150000 +vt 0.208333 0.150000 +vt 0.562500 0.150000 +vt 0.583333 0.150000 +vt -0.000000 0.150000 +vt 0.750000 0.150000 +vt 0.562500 0.125000 +vt 0.395833 0.125000 +vt 0.750000 0.125000 +vt 0.020833 0.125000 +vt 0.187500 0.125000 +vt 0.187500 0.400000 +vt 0.020833 0.400000 +vt 0.208333 0.400000 +vt 0.291667 0.450000 +vt 0.666667 0.450000 +vt 0.520833 0.450000 +vt 0.437500 0.450000 +vt 0.395833 0.800000 +vt 0.375000 0.800000 +vt 0.208333 0.800000 +vt 0.187500 0.800000 +vt 0.020833 0.800000 +vt 0.750000 0.800000 +vt 0.583333 0.800000 +vt 0.770833 0.425000 +vt 0.750000 0.700000 +vt 0.500000 0.275000 +vt 0.000000 0.175000 +vt 0.583333 0.125000 +vt 0.375000 0.450000 +vt 0.583333 0.450000 +vt 0.750000 0.400000 +vt 0.395833 0.450000 +vt 0.562500 0.450000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9701 0.2425 0.0000 +vn 0.9701 0.2425 0.0000 +vn 0.9487 -0.3162 0.0000 +vn -0.9487 -0.3162 0.0000 +vn 0.0000 -0.8944 0.4472 +vn -0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +s off +f 455/775/156 456/776/156 454/777/156 +f 525/778/157 527/779/157 529/780/157 +f 468/781/158 466/782/158 467/783/158 +f 460/784/159 469/785/159 461/786/159 +f 459/787/156 467/783/156 458/788/156 +f 461/789/160 468/781/160 459/790/160 +f 458/791/161 466/792/161 460/793/161 +f 462/794/156 481/795/156 471/796/156 +f 463/797/162 479/798/162 465/799/162 +f 465/799/156 478/800/156 464/801/156 +f 464/801/163 476/802/163 462/794/163 +f 470/803/156 477/804/156 463/797/156 +f 473/805/164 484/806/164 475/807/164 +f 471/808/156 483/809/156 473/805/156 +f 474/810/164 486/811/164 472/812/164 +f 472/812/156 485/813/156 470/814/156 +f 489/815/156 474/816/156 475/817/156 +f 487/818/156 474/810/156 488/819/156 +f 475/817/156 484/820/156 489/815/156 +f 470/803/156 485/821/156 480/822/156 +f 471/808/156 481/823/156 482/824/156 +f 490/825/159 492/826/159 495/827/159 +f 491/828/159 494/829/159 493/830/159 +f 492/826/159 491/831/159 493/832/159 +f 499/833/159 490/834/159 495/835/159 +f 497/836/159 494/829/159 491/828/159 +f 500/837/159 497/838/159 496/839/159 +f 496/840/159 499/833/159 500/841/159 +f 498/842/159 497/838/159 501/843/159 +f 504/844/156 507/845/156 505/846/156 +f 503/847/156 502/848/156 506/849/156 +f 503/850/156 505/846/156 502/851/156 +f 504/852/156 510/853/156 507/854/156 +f 506/849/156 508/855/156 503/847/156 +f 508/856/156 512/857/156 511/858/156 +f 511/859/156 512/860/156 510/853/156 +f 509/861/156 513/862/156 508/856/156 +f 499/833/165 512/857/165 500/837/165 +f 500/837/166 513/862/166 501/843/166 +f 493/832/167 506/849/167 502/851/167 +f 501/843/168 509/863/168 498/864/168 +f 493/832/158 505/846/158 492/826/158 +f 498/865/169 506/849/169 494/829/169 +f 495/835/157 510/853/157 499/833/157 +f 492/826/170 507/854/170 495/835/170 +f 481/795/167 516/866/167 482/824/167 +f 480/822/170 517/867/170 514/868/170 +f 479/869/158 514/868/158 515/870/158 +f 484/871/168 521/872/168 489/815/168 +f 488/873/165 519/874/165 487/875/165 +f 518/876/169 484/877/169 483/809/169 +f 489/815/166 520/878/166 488/873/166 +f 517/867/157 486/811/157 519/874/157 +f 515/870/159 525/879/159 524/880/159 +f 519/874/159 525/778/159 517/867/159 +f 517/881/159 525/879/159 514/868/159 +f 520/878/159 522/882/159 523/883/159 +f 520/878/159 523/884/159 519/874/159 +f 516/866/159 515/885/159 524/886/159 +f 521/872/159 518/887/159 522/882/159 +f 516/866/159 522/888/159 518/876/159 +f 528/889/158 525/879/158 529/890/158 +f 524/886/169 526/891/169 522/888/169 +f 523/883/166 526/892/166 527/893/166 +f 474/894/166 497/838/166 475/895/166 +f 496/840/157 474/896/157 472/897/157 +f 473/898/169 497/836/169 491/828/169 +f 462/899/158 465/799/158 464/801/158 +f 463/900/158 462/899/158 491/831/158 +f 504/844/158 456/776/158 457/901/158 +f 511/859/157 457/902/157 455/903/157 +f 508/856/166 455/904/166 454/905/166 +f 503/847/169 454/906/169 456/907/169 +f 455/775/156 457/901/156 456/776/156 +f 525/778/157 523/884/157 527/779/157 +f 468/781/158 469/785/158 466/782/158 +f 460/784/159 466/782/159 469/785/159 +f 459/787/156 468/781/156 467/783/156 +f 461/789/160 469/908/160 468/781/160 +f 458/791/161 467/783/161 466/792/161 +f 462/794/156 476/802/156 481/795/156 +f 463/797/162 477/804/162 479/798/162 +f 465/799/156 479/798/156 478/800/156 +f 464/801/163 478/800/163 476/802/163 +f 470/803/156 480/822/156 477/804/156 +f 473/805/164 483/809/164 484/806/164 +f 471/808/156 482/824/156 483/809/156 +f 474/810/164 487/818/164 486/811/164 +f 472/812/156 486/811/156 485/813/156 +f 489/815/156 488/873/156 474/816/156 +f 492/826/159 490/825/159 491/831/159 +f 499/833/159 496/840/159 490/834/159 +f 497/836/159 498/865/159 494/829/159 +f 500/837/159 501/843/159 497/838/159 +f 503/850/156 504/844/156 505/846/156 +f 504/852/156 511/859/156 510/853/156 +f 506/849/156 509/909/156 508/855/156 +f 508/856/156 513/862/156 512/857/156 +f 499/833/165 510/853/165 512/857/165 +f 500/837/166 512/857/166 513/862/166 +f 493/832/167 494/829/167 506/849/167 +f 501/843/168 513/862/168 509/863/168 +f 493/832/158 502/851/158 505/846/158 +f 498/865/169 509/909/169 506/849/169 +f 495/835/157 507/854/157 510/853/157 +f 492/826/170 505/846/170 507/854/170 +f 481/795/167 515/870/167 516/866/167 +f 480/822/170 485/813/170 517/867/170 +f 479/869/158 477/804/158 480/822/158 +f 515/870/158 481/795/158 478/910/158 +f 481/795/158 476/802/158 478/910/158 +f 479/869/158 480/822/158 514/868/158 +f 515/870/158 478/910/158 479/869/158 +f 484/871/168 518/911/168 521/872/168 +f 488/873/165 520/878/165 519/874/165 +f 483/809/169 482/824/169 516/866/169 +f 516/866/169 518/876/169 483/809/169 +f 489/815/166 521/872/166 520/878/166 +f 485/813/157 486/811/157 517/867/157 +f 486/811/157 487/875/157 519/874/157 +f 515/870/159 514/868/159 525/879/159 +f 519/874/159 523/884/159 525/778/159 +f 520/878/159 521/872/159 522/882/159 +f 516/866/159 524/886/159 522/888/159 +f 528/889/158 524/880/158 525/879/158 +f 524/886/169 528/912/169 526/891/169 +f 523/883/166 522/882/166 526/892/166 +f 474/894/166 496/839/166 497/838/166 +f 472/897/157 470/913/157 490/834/157 +f 490/834/157 496/840/157 472/897/157 +f 491/828/169 471/914/169 473/898/169 +f 473/898/169 475/915/169 497/836/169 +f 462/899/158 463/900/158 465/799/158 +f 490/825/158 470/916/158 463/900/158 +f 462/899/158 471/917/158 491/831/158 +f 490/825/158 463/900/158 491/831/158 +f 504/844/158 503/850/158 456/776/158 +f 511/859/157 504/852/157 457/902/157 +f 508/856/166 511/858/166 455/904/166 +f 503/847/169 508/855/169 454/906/169 +o LeftLeg +v -0.100001 11.700001 2.100000 +v 4.099999 11.700001 2.100000 +v -0.100001 11.700001 -2.100000 +v 4.099999 11.700001 -2.100000 +v 0.949999 16.950001 -2.100000 +v 3.049999 16.950001 -2.100000 +v 1.475000 19.049999 -2.100000 +v 2.525000 19.049999 -2.100000 +v 0.950000 18.000000 -2.100000 +v 3.049999 18.000000 -2.100000 +v 1.475000 19.575001 -2.100000 +v 2.525000 19.575001 -2.100000 +v 1.475000 19.049999 -2.625000 +v 0.949999 16.950001 -2.625000 +v 3.049999 16.950001 -2.625000 +v 2.525000 19.049999 -2.625000 +v 4.099999 18.000000 -2.100000 +v -0.100000 18.000000 -2.100000 +v 4.099999 18.000000 0.000000 +v -0.100000 18.000000 0.000000 +v 4.099999 19.049999 2.100000 +v -0.100000 19.049999 2.100000 +v 0.950000 18.000000 -2.625000 +v 3.049999 18.000000 -2.625000 +v 1.475000 19.575001 -2.625000 +v 2.525000 19.575001 -2.625000 +v 4.099999 18.000000 -2.625000 +v -0.100000 18.000000 -2.625000 +v -0.625000 18.000000 -2.100000 +v -0.625000 18.000000 0.000000 +v -0.625000 19.049999 2.100000 +v 4.625000 18.000000 -2.100000 +v 4.625000 18.000000 0.000000 +v 4.625000 19.049999 2.100000 +v 4.099999 19.049999 2.625000 +v -0.100000 19.049999 2.625000 +v 4.099999 16.424999 -2.100000 +v -0.100001 16.424999 -2.100000 +v 4.099999 16.424999 -2.625000 +v -0.100001 16.424999 -2.625000 +v -0.625001 16.424999 -2.100000 +v 4.625000 16.424999 -2.100000 +v 4.099999 16.424999 2.100000 +v -0.100001 16.424999 2.100000 +v -0.625001 16.424999 2.100000 +v 4.625000 16.424999 2.100000 +v 4.099999 16.424999 2.625000 +v -0.100001 16.424999 2.625000 +v -0.100001 13.275000 -2.625000 +v -0.100001 13.275000 -2.100000 +v 4.099999 13.275000 -2.100000 +v 4.099999 13.275000 -2.625000 +v -0.625001 13.275000 -2.100000 +v 4.624999 13.275000 -2.100000 +v -0.100001 13.275000 2.100000 +v -0.625001 13.275000 2.100000 +v 4.624999 13.275000 2.100000 +v 4.099999 13.275000 2.100000 +v 4.099999 13.275000 2.625000 +v -0.100001 13.275000 2.625000 +v 4.100000 21.674999 -2.625000 +v -0.100000 21.674999 -2.625000 +v -0.625000 21.674999 -2.100000 +v 4.625000 21.674999 -2.100000 +v -0.625000 21.674999 2.100000 +v 4.625000 21.674999 2.100000 +v 4.100000 21.674999 2.625000 +v -0.100000 21.674999 2.625000 +v -0.100000 21.674999 2.100000 +v 4.100000 21.674999 2.100000 +v -0.100000 21.674999 -2.100000 +v 4.100000 21.674999 -2.100000 +v -0.100000 22.200001 2.100000 +v 4.100000 22.199999 2.100000 +v -0.100000 22.200001 -2.100000 +v 4.100000 22.199999 -2.100000 +vt 0.562500 0.800000 +vt 0.395833 1.000000 +vt 0.562500 1.000000 +vt 0.208333 0.125000 +vt 0.375000 0.150000 +vt 0.375000 0.125000 +vt 0.833333 0.425000 +vt 0.770833 0.525000 +vt 0.854167 0.525000 +vt 0.791667 0.425000 +vt 0.833333 0.400000 +vt 0.791667 0.400000 +vt 0.770833 0.550000 +vt 0.854167 0.550000 +vt 0.750000 0.425000 +vt 0.750000 0.525000 +vt 0.854167 0.425000 +vt 0.875000 0.525000 +vt 0.875000 0.425000 +vt 0.562500 0.350000 +vt 0.520833 0.375000 +vt 0.562500 0.375000 +vt 0.458333 0.350000 +vt 0.437500 0.375000 +vt 0.458333 0.375000 +vt 0.500000 0.350000 +vt 0.500000 0.375000 +vt 0.520833 0.350000 +vt 0.437500 0.350000 +vt 0.395833 0.375000 +vt 0.750000 0.350000 +vt 0.666667 0.375000 +vt 0.750000 0.375000 +vt 0.666667 0.350000 +vt 0.583333 0.375000 +vt 0.291667 0.350000 +vt 0.208333 0.375000 +vt 0.291667 0.375000 +vt 0.375000 0.350000 +vt 0.375000 0.375000 +vt 0.187500 0.325000 +vt 0.020833 0.300000 +vt 0.020833 0.325000 +vt 0.208333 0.350000 +vt 0.187500 0.375000 +vt 0.000000 0.325000 +vt 0.395833 0.350000 +vt 0.375000 0.375000 +vt 0.583333 0.350000 +vt 0.562500 0.375000 +vt 0.395833 0.525000 +vt 0.375000 0.525000 +vt 0.395833 0.550000 +vt 0.583333 0.525000 +vt 0.562500 0.525000 +vt 0.583333 0.550000 +vt 0.562500 0.525000 +vt 0.562500 0.550000 +vt 0.375000 0.525000 +vt 0.208333 0.550000 +vt 0.375000 0.550000 +vt 0.750000 0.525000 +vt 0.020833 0.525000 +vt 0.187500 0.550000 +vt 0.187500 0.525000 +vt 0.208333 0.525000 +vt 0.187500 0.525000 +vt -0.000000 0.525000 +vt 0.020833 0.550000 +vt 0.395833 0.725000 +vt 0.395833 0.700000 +vt 0.375000 0.725000 +vt 0.583333 0.725000 +vt 0.583333 0.700000 +vt 0.562500 0.725000 +vt 0.562500 0.725000 +vt 0.562500 0.700000 +vt 0.208333 0.700000 +vt 0.375000 0.725000 +vt 0.375000 0.700000 +vt 0.750000 0.725000 +vt 0.187500 0.700000 +vt 0.020833 0.725000 +vt 0.187500 0.725000 +vt 0.208333 0.725000 +vt 0.187500 0.725000 +vt 0.000000 0.725000 +vt 0.020833 0.700000 +vt -0.000000 0.550000 +vt 0.750000 0.550000 +vt 0.583333 0.175000 +vt 0.395833 0.175000 +vt 0.500000 0.275000 +vt 0.562500 0.175000 +vt 0.020833 0.175000 +vt -0.000000 0.300000 +vt 0.208333 0.300000 +vt 0.187500 0.175000 +vt 0.187500 0.300000 +vt 0.750000 0.175000 +vt 0.208333 0.175000 +vt 0.375000 0.175000 +vt 0.395833 0.150000 +vt 0.562500 0.150000 +vt 0.375000 0.150000 +vt 0.020833 0.150000 +vt 0.187500 0.150000 +vt 0.208333 0.150000 +vt 0.583333 0.150000 +vt 0.562500 0.150000 +vt -0.000000 0.150000 +vt 0.750000 0.150000 +vt 0.562500 0.125000 +vt 0.395833 0.125000 +vt 0.750000 0.125000 +vt 0.020833 0.125000 +vt 0.187500 0.125000 +vt 0.187500 0.400000 +vt 0.020833 0.400000 +vt 0.375000 0.450000 +vt 0.291667 0.450000 +vt 0.750000 0.400000 +vt 0.666667 0.450000 +vt 0.520833 0.450000 +vt 0.437500 0.450000 +vt 0.395833 0.800000 +vt 0.375000 0.800000 +vt 0.208333 0.800000 +vt 0.187500 0.800000 +vt 0.020833 0.800000 +vt 0.750000 0.800000 +vt 0.583333 0.800000 +vt 0.770833 0.425000 +vt 0.750000 0.700000 +vt -0.000000 0.700000 +vt 0.458333 0.275000 +vt 0.000000 0.175000 +vt 0.750000 0.300000 +vt 0.583333 0.125000 +vt 0.208333 0.400000 +vt 0.583333 0.450000 +vt 0.395833 0.450000 +vt 0.562500 0.450000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9701 0.2425 0.0000 +vn -0.9701 0.2425 0.0000 +vn -0.9487 -0.3162 0.0000 +vn 0.9487 -0.3162 0.0000 +vn 0.0000 -0.8944 0.4472 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +s off +f 532/918/171 531/919/171 530/920/171 +f 603/921/172 601/922/172 605/923/172 +f 542/924/173 544/925/173 543/926/173 +f 545/927/174 536/928/174 537/929/174 +f 543/926/171 535/930/171 534/931/171 +f 544/925/175 537/932/175 535/933/175 +f 542/934/176 534/935/176 536/936/176 +f 557/937/171 538/938/171 547/939/171 +f 555/940/177 539/941/177 541/942/177 +f 554/943/171 541/942/171 540/944/171 +f 552/945/178 540/944/178 538/938/178 +f 553/946/171 546/947/171 539/941/171 +f 560/948/179 549/949/179 551/950/179 +f 559/951/171 547/952/171 549/949/171 +f 562/953/179 550/954/179 548/955/179 +f 561/956/171 548/955/171 546/957/171 +f 550/958/171 565/959/171 551/960/171 +f 563/961/171 564/962/171 550/954/171 +f 551/960/171 565/959/171 560/963/171 +f 546/947/171 556/964/171 561/965/171 +f 547/952/171 558/966/171 557/967/171 +f 566/968/174 571/969/174 568/970/174 +f 567/971/174 569/972/174 570/973/174 +f 567/974/174 568/970/174 569/975/174 +f 566/976/174 575/977/174 571/978/174 +f 570/973/174 573/979/174 567/971/174 +f 573/980/174 576/981/174 572/982/174 +f 572/983/174 576/984/174 575/977/174 +f 574/985/174 577/986/174 573/980/174 +f 580/987/171 581/988/171 583/989/171 +f 579/990/171 582/991/171 578/992/171 +f 581/988/171 579/993/171 578/994/171 +f 586/995/171 580/996/171 583/997/171 +f 584/998/171 582/991/171 579/990/171 +f 588/999/171 584/1000/171 587/1001/171 +f 587/1002/171 586/995/171 588/1003/171 +f 585/1004/171 584/1000/171 589/1005/171 +f 588/999/180 575/977/180 576/981/180 +f 589/1005/181 576/981/181 577/986/181 +f 578/994/182 570/973/182 569/975/182 +f 574/1006/183 589/1005/183 577/986/183 +f 581/988/173 569/975/173 568/970/173 +f 582/991/184 574/1007/184 570/973/184 +f 586/995/172 571/978/172 575/977/172 +f 583/997/185 568/970/185 571/978/185 +f 592/1008/182 557/937/182 558/966/182 +f 590/1009/185 561/956/185 556/964/185 +f 554/1010/173 591/1011/173 590/1009/173 +f 597/1012/183 560/1013/183 565/959/183 +f 563/1014/180 596/1015/180 564/1016/180 +f 559/951/184 594/1017/184 592/1008/184 +f 564/1016/181 597/1012/181 565/959/181 +f 595/1018/172 562/953/172 593/1019/172 +f 601/1020/174 591/1011/174 600/1021/174 +f 601/922/174 595/1018/174 593/1019/174 +f 593/1022/174 590/1009/174 601/1020/174 +f 598/1023/174 596/1015/174 599/1024/174 +f 596/1015/174 595/1018/174 599/1025/174 +f 592/1008/174 600/1026/174 591/1027/174 +f 597/1012/174 598/1023/174 594/1028/174 +f 598/1029/174 592/1008/174 594/1017/174 +f 601/1020/173 604/1030/173 605/1031/173 +f 602/1032/184 600/1026/184 598/1029/184 +f 602/1033/181 599/1024/181 603/1034/181 +f 573/980/181 550/1035/181 551/1036/181 +f 566/976/172 546/1037/172 548/1038/172 +f 573/979/184 551/1039/184 549/1040/184 +f 541/942/173 538/1041/173 540/944/173 +f 538/1041/173 539/1042/173 566/968/173 +f 532/918/173 580/987/173 533/1043/173 +f 533/1044/172 587/1002/172 531/1045/172 +f 531/1046/181 584/1000/181 530/1047/181 +f 530/1048/184 579/990/184 532/1049/184 +f 532/918/171 533/1043/171 531/919/171 +f 603/921/172 599/1025/172 601/922/172 +f 542/924/173 545/927/173 544/925/173 +f 545/927/174 542/924/174 536/928/174 +f 543/926/171 544/925/171 535/930/171 +f 544/925/175 545/1050/175 537/932/175 +f 542/934/176 543/926/176 534/935/176 +f 557/937/171 552/945/171 538/938/171 +f 555/940/177 553/946/177 539/941/177 +f 554/943/171 555/940/171 541/942/171 +f 552/945/178 554/943/178 540/944/178 +f 553/946/171 556/964/171 546/947/171 +f 560/948/179 559/951/179 549/949/179 +f 559/951/171 558/966/171 547/952/171 +f 562/953/179 563/961/179 550/954/179 +f 561/956/171 562/953/171 548/955/171 +f 550/958/171 564/1016/171 565/959/171 +f 567/974/174 566/968/174 568/970/174 +f 566/976/174 572/983/174 575/977/174 +f 570/973/174 574/1007/174 573/979/174 +f 573/980/174 577/986/174 576/981/174 +f 581/988/171 580/987/171 579/993/171 +f 586/995/171 587/1002/171 580/996/171 +f 584/998/171 585/1051/171 582/991/171 +f 588/999/171 589/1005/171 584/1000/171 +f 588/999/180 586/995/180 575/977/180 +f 589/1005/181 588/999/181 576/981/181 +f 578/994/182 582/991/182 570/973/182 +f 574/1006/183 585/1052/183 589/1005/183 +f 581/988/173 578/994/173 569/975/173 +f 582/991/184 585/1051/184 574/1007/184 +f 586/995/172 583/997/172 571/978/172 +f 583/997/185 581/988/185 568/970/185 +f 592/1008/182 591/1011/182 557/937/182 +f 590/1009/185 593/1019/185 561/956/185 +f 554/1010/173 552/945/173 557/937/173 +f 590/1009/173 556/964/173 555/1053/173 +f 556/964/173 553/946/173 555/1053/173 +f 554/1010/173 557/937/173 591/1011/173 +f 590/1009/173 555/1053/173 554/1010/173 +f 597/1012/183 594/1054/183 560/1013/183 +f 563/1014/180 595/1018/180 596/1015/180 +f 592/1008/184 558/966/184 559/951/184 +f 559/951/184 560/1055/184 594/1017/184 +f 564/1016/181 596/1015/181 597/1012/181 +f 563/1014/172 562/953/172 595/1018/172 +f 562/953/172 561/956/172 593/1019/172 +f 601/1020/174 590/1009/174 591/1011/174 +f 601/922/174 599/1025/174 595/1018/174 +f 598/1023/174 597/1012/174 596/1015/174 +f 598/1029/174 600/1026/174 592/1008/174 +f 601/1020/173 600/1021/173 604/1030/173 +f 602/1032/184 604/1056/184 600/1026/184 +f 602/1033/181 598/1023/181 599/1024/181 +f 573/980/181 572/982/181 550/1035/181 +f 548/1038/172 550/1057/172 572/983/172 +f 572/983/172 566/976/172 548/1038/172 +f 549/1040/184 547/1058/184 567/971/184 +f 567/971/184 573/979/184 549/1040/184 +f 541/942/173 539/1042/173 538/1041/173 +f 539/1042/173 546/1059/173 566/968/173 +f 566/968/173 567/974/173 538/1041/173 +f 567/974/173 547/1060/173 538/1041/173 +f 532/918/173 579/993/173 580/987/173 +f 533/1044/172 580/996/172 587/1002/172 +f 531/1046/181 587/1001/181 584/1000/181 +f 530/1048/184 584/998/184 579/990/184 +o Helmet +v -4.725003 -2.950001 -4.725000 +v 25.451866 4.962900 4.881973 +v 4.199998 -3.475000 0.000000 +v 4.199998 -2.687500 1.363986 +v 4.199998 -1.112499 1.363986 +v 4.199998 -0.325001 0.000000 +v 4.199998 -1.112499 -1.363986 +v 4.199998 -2.687500 -1.363986 +v 5.512498 -2.950001 0.000000 +v 5.512498 -2.424999 0.909325 +v 5.512498 -1.375000 0.909325 +v 5.512498 -0.850000 -0.000000 +v 5.512498 -1.375000 -0.909325 +v 5.512498 -2.424999 -0.909325 +v 5.774998 -3.475000 0.000000 +v 5.774998 -2.687500 1.363986 +v 5.774998 -1.112499 1.363986 +v 5.774998 -0.325001 0.000000 +v 5.774998 -1.112499 -1.363986 +v 5.774998 -2.687500 -1.363986 +v 5.774998 -2.950001 0.000000 +v 5.774998 -2.424999 0.909325 +v 5.774998 -1.375000 0.909325 +v 5.774998 -0.850000 -0.000000 +v 5.774998 -1.375000 -0.909325 +v 5.774998 -2.424999 -0.909325 +v 4.199998 1.250000 0.000000 +v -4.200002 1.250000 0.000000 +v 4.199998 0.200001 0.000000 +v -4.200002 0.200001 0.000000 +v 4.199998 -0.325001 0.000000 +v -4.200002 -3.475000 0.000000 +v 5.249998 0.200001 0.000000 +v 5.249998 -0.325001 0.000000 +v -4.200002 -2.687500 1.363986 +v -4.200002 -1.112499 1.363986 +v -4.200002 -0.325001 0.000000 +v -4.200002 -1.112499 -1.363986 +v -4.200002 -2.687500 -1.363986 +v -5.512502 -2.950001 0.000000 +v -5.512502 -2.424999 0.909325 +v -5.512502 -1.375000 0.909325 +v -5.512502 -0.850000 0.000000 +v -5.512502 -1.375000 -0.909325 +v -5.512502 -2.424999 -0.909325 +v -5.775002 -3.475000 0.000000 +v -5.775002 -2.687500 1.363986 +v -5.775002 -1.112499 1.363986 +v -5.775002 -0.325001 0.000000 +v -5.775002 -1.112499 -1.363986 +v -5.775002 -2.687500 -1.363986 +v -5.775002 -2.950001 0.000000 +v -5.775002 -2.424999 0.909325 +v -5.775002 -1.375000 0.909325 +v -5.775002 -0.850000 0.000000 +v -5.775002 -1.375000 -0.909325 +v -5.775002 -2.424999 -0.909325 +v -5.250002 0.200001 0.000000 +v -5.250002 -0.325001 0.000000 +v -4.200002 -0.325001 0.000000 +v -4.200002 -4.525000 0.000000 +v -4.200003 -6.100000 -4.200000 +v 4.199997 -6.100000 -4.200000 +v -4.200003 -7.150000 -5.250000 +v 4.199997 -7.150000 -5.250000 +v -5.250002 -4.525000 0.000000 +v -5.250003 -6.100000 -4.200000 +v -4.200003 -8.200001 -5.250000 +v 4.199997 -8.200001 -5.250000 +v -4.200003 -9.250000 -4.200000 +v 4.199997 -9.250000 -4.200000 +v -4.200003 -9.250000 4.200000 +v 4.199997 -9.250000 4.200000 +v -4.200003 -8.200001 5.250000 +v 4.199997 -8.200001 5.250000 +v -4.200002 0.200001 5.250000 +v 4.199998 0.200001 5.250000 +v -4.200002 1.250000 4.200000 +v 4.199998 1.250000 4.200000 +v -5.250003 -8.200001 4.200000 +v -5.250003 -8.200001 -4.200000 +v -5.250002 0.200001 4.200000 +v -4.200002 -3.475000 0.000000 +v -5.250002 -3.475000 0.000000 +v 5.249998 -4.525000 0.000000 +v 5.249998 -3.475000 0.000000 +v 4.199998 -4.525000 0.000000 +v 4.199998 -3.475000 0.000000 +v 5.249997 -8.200001 -4.200000 +v 5.249997 -8.200001 4.200000 +v 5.249998 0.200001 4.200000 +v 5.249997 -6.100000 -4.200000 +v 4.199998 0.200001 -4.725000 +v -4.200002 0.200001 -4.725000 +v 4.199997 -6.625000 -4.725000 +v -4.200003 -6.625000 -4.725000 +v 4.199998 0.725000 -4.200000 +v -4.200002 0.725000 -4.200000 +v 4.199998 0.725000 0.000000 +v -4.200002 0.725000 0.000000 +v 4.724998 0.200001 -4.200000 +v 4.724998 0.200001 0.000000 +v 4.724997 -6.100000 -4.200000 +v 4.724997 -4.525000 0.000000 +v -4.725002 0.200001 -4.200000 +v -4.725002 0.200001 0.000000 +v -4.725003 -6.100000 -4.200000 +v -4.725003 -4.525000 0.000000 +v 4.199998 -2.950001 -5.250000 +v -4.200002 -2.950001 -5.250000 +v 4.724997 -2.950001 -4.725000 +v 6.824998 -3.475000 -1.363986 +v 4.724997 -3.475000 -1.363986 +v 6.824998 -0.325001 -1.363986 +v 4.724998 -0.325001 -1.363986 +v 6.824998 -0.325001 -2.413986 +v 6.824998 -3.475000 -2.413986 +v 4.724997 -3.475000 -2.413986 +v 4.724998 -0.325001 -2.413986 +v 3.674997 -11.349998 -1.575000 +v 2.624997 -11.349998 -1.575000 +v 3.674997 -11.349998 -3.675000 +v 2.624997 -11.349998 -3.675000 +v 4.199997 -9.250000 0.525000 +v 2.099997 -9.250000 0.525000 +v 4.199997 -9.250000 -2.625000 +v 2.099997 -9.250000 -2.625000 +v 3.674997 -10.825001 -3.150000 +v 2.624997 -10.825001 -3.150000 +v -2.625003 -11.349998 -1.575000 +v -3.675003 -11.349998 -1.575000 +v -2.625003 -11.349998 -3.675000 +v -3.675003 -11.349998 -3.675000 +v -2.100003 -9.250000 0.525000 +v -4.200003 -9.250000 0.525000 +v -2.100003 -9.250000 -2.625000 +v -4.200003 -9.250000 -2.625000 +v -2.625003 -10.825001 -3.150000 +v -3.675003 -10.825001 -3.150000 +v -4.987503 -9.512501 -4.725000 +v -4.987503 -9.512501 -0.525000 +v -5.358734 -9.358730 -4.725000 +v -5.358734 -9.358730 -0.525000 +v -5.512503 -8.987499 -4.725000 +v -5.512503 -8.987499 -0.525000 +v -5.358734 -8.616268 -4.725000 +v -5.358734 -8.616268 -0.525000 +v -4.987503 -8.462502 -4.725000 +v -4.987503 -8.462502 -0.525000 +v -4.616271 -8.616268 -4.725000 +v -4.616271 -8.616268 -0.525000 +v -4.462502 -8.987499 -4.725000 +v -4.462502 -8.987499 -0.525000 +v -4.616271 -9.358730 -4.725000 +v -4.616271 -9.358730 -0.525000 +vt 0.208333 0.540984 +vt 0.166667 0.491803 +vt 0.208333 0.491803 +vt 0.041667 0.540984 +vt -0.000000 0.491803 +vt 0.041667 0.491803 +vt 0.125000 0.540984 +vt 0.083333 0.491803 +vt 0.125000 0.491803 +vt 0.166667 0.540984 +vt 0.250000 0.540984 +vt 0.250000 0.491803 +vt 0.083333 0.540984 +vt 0.180556 0.573770 +vt 0.208333 0.557377 +vt 0.208333 0.573770 +vt 0.013889 0.573770 +vt 0.041667 0.557377 +vt 0.041667 0.573770 +vt 0.097222 0.573770 +vt 0.125000 0.557377 +vt 0.125000 0.573770 +vt 0.138889 0.573770 +vt 0.166667 0.557377 +vt 0.166667 0.573770 +vt 0.222222 0.573770 +vt 0.250000 0.557377 +vt 0.250000 0.573770 +vt 0.055556 0.573770 +vt 0.083333 0.557377 +vt 0.083333 0.573770 +vt 0.138889 0.557377 +vt 0.013889 0.557377 +vt -0.000000 0.540984 +vt 0.003825 0.590235 +vt 0.027778 0.573912 +vt 0.051730 0.590235 +vt 0.027778 0.032787 +vt 0.250000 0.000000 +vt 0.250000 0.032787 +vt 0.250000 0.491803 +vt 0.208333 0.540984 +vt 0.208333 0.491803 +vt 0.861111 0.196721 +vt 0.888889 0.213115 +vt 0.861111 0.213115 +vt 0.083333 0.491803 +vt 0.041667 0.540984 +vt 0.041667 0.491803 +vt 0.861111 0.163934 +vt 0.888889 0.196721 +vt 0.166667 0.491803 +vt 0.125000 0.540984 +vt 0.125000 0.491803 +vt 0.083333 0.540984 +vt -0.000000 0.540984 +vt -0.000000 0.491803 +vt 0.166667 0.540984 +vt 0.055556 0.557377 +vt 0.083333 0.573770 +vt 0.055556 0.573770 +vt 0.222222 0.557377 +vt 0.250000 0.573770 +vt 0.222222 0.573770 +vt 0.138889 0.557377 +vt 0.166667 0.573770 +vt 0.138889 0.573770 +vt 0.097222 0.557377 +vt 0.125000 0.573770 +vt 0.097222 0.573770 +vt 0.013889 0.557377 +vt 0.041667 0.573770 +vt 0.013889 0.573770 +vt 0.180556 0.557377 +vt 0.208333 0.573770 +vt 0.180556 0.573770 +vt 0.125000 0.557377 +vt 0.250000 0.557377 +vt 0.051730 0.590235 +vt 0.051730 0.622880 +vt 0.027778 0.639203 +vt 0.388889 0.196721 +vt 0.416667 0.213115 +vt 0.388889 0.213115 +vt 0.027778 0.163934 +vt 0.416667 0.196721 +vt 0.416667 0.163934 +vt 0.750000 0.393443 +vt 0.527778 0.426230 +vt 0.527778 0.393443 +vt 0.500000 0.393443 +vt 0.527778 0.262295 +vt 0.750000 0.426230 +vt 0.527778 0.459016 +vt 0.750000 0.459016 +vt 0.527778 0.491803 +vt 0.750000 0.491803 +vt 0.527778 0.754098 +vt 0.027778 0.491803 +vt 0.250000 0.459016 +vt 0.250000 0.491803 +vt 0.027778 0.459016 +vt 0.250000 0.196721 +vt 0.027778 0.196721 +vt 0.250000 0.163934 +vt 0.277778 0.491803 +vt 0.500000 0.459016 +vt 0.500000 0.491803 +vt 0.277778 0.459016 +vt 0.277778 0.196721 +vt 0.277778 0.163934 +vt 0.388889 0.163934 +vt 0.388889 0.344262 +vt 0.416667 0.311475 +vt 0.416667 0.344262 +vt 0.888889 0.344262 +vt 0.861111 0.311475 +vt 0.888889 0.311475 +vt 0.777778 0.491803 +vt 1.000000 0.459016 +vt 1.000000 0.491803 +vt 0.777778 0.459016 +vt -0.000000 0.459016 +vt 0.888889 0.163934 +vt 1.000000 0.196721 +vt 0.000000 0.196721 +vt 0.777778 0.393443 +vt 0.750000 0.262295 +vt 0.777778 0.262295 +vt 0.361111 1.000000 +vt 0.138889 0.885246 +vt 0.361111 0.885246 +vt 0.138889 0.770492 +vt 0.361111 0.786885 +vt 0.138889 0.786885 +vt 0.138889 0.639344 +vt 0.361111 0.770492 +vt 0.500000 0.786885 +vt 0.388889 0.770492 +vt 0.500000 0.770492 +vt 0.375000 0.786885 +vt 0.500000 0.934426 +vt 0.388889 0.983607 +vt 0.375000 0.885246 +vt 0.375000 0.983607 +vt 0.111111 0.786885 +vt -0.000000 0.770492 +vt 0.111111 0.770492 +vt 0.125000 0.786885 +vt 0.125000 0.885246 +vt -0.000000 0.934426 +vt -0.000000 0.786885 +vt 0.861111 0.622951 +vt 0.916667 0.524590 +vt 0.916667 0.622951 +vt 0.125000 0.983607 +vt 0.833333 0.622951 +vt 0.777778 0.524590 +vt 0.833333 0.524590 +vt 0.833333 0.491803 +vt 0.777778 0.491803 +vt 0.777778 0.655738 +vt 0.833333 0.655738 +vt 0.750000 0.524590 +vt 0.777778 0.622951 +vt 0.750000 0.622951 +vt 0.861111 0.524590 +vt 0.805556 0.737705 +vt 0.833333 0.672131 +vt 0.833333 0.737705 +vt 0.750000 0.688525 +vt 0.805556 0.672131 +vt 0.888889 0.688525 +vt 0.888889 0.803279 +vt 0.847222 0.803279 +vt 0.833333 0.655738 +vt 0.791667 0.655738 +vt 0.847222 0.655738 +vt 0.805556 0.737705 +vt 0.833333 0.672131 +vt 0.833333 0.737705 +vt 0.750000 0.688525 +vt 0.805556 0.672131 +vt 0.888889 0.688525 +vt 0.888889 0.803279 +vt 0.791667 0.803279 +vt 0.833333 0.655738 +vt 0.791667 0.655738 +vt 0.847222 0.655738 +vt 0.388889 0.557377 +vt 0.500000 0.540984 +vt 0.500000 0.557377 +vt 0.388889 0.540984 +vt 0.500000 0.524590 +vt 0.388889 0.524590 +vt 0.500000 0.508197 +vt 0.388889 0.508197 +vt 0.500000 0.491803 +vt 0.388889 0.622951 +vt 0.500000 0.606557 +vt 0.500000 0.622951 +vt 0.388889 0.606557 +vt 0.500000 0.590164 +vt 0.361789 0.501738 +vt 0.380472 0.492604 +vt 0.388211 0.514655 +vt 0.388889 0.590164 +vt 0.500000 0.573770 +vt 0.388889 0.573770 +vt 0.501476 0.514266 +vt 0.501476 0.502128 +vt 0.508747 0.493545 +vt 0.180556 0.557377 +vt 0.097222 0.557377 +vt 0.222222 0.557377 +vt 0.055556 0.557377 +vt 0.051730 0.622880 +vt 0.027778 0.639203 +vt 0.003825 0.622880 +vt 0.027778 -0.000000 +vt 0.250000 0.540984 +vt 0.083333 0.557377 +vt 0.166667 0.557377 +vt 0.041667 0.557377 +vt 0.208333 0.557377 +vt 0.003825 0.622880 +vt 0.003825 0.590235 +vt 0.027778 0.573912 +vt 0.500000 0.262295 +vt 0.750000 0.754098 +vt 0.388889 0.311475 +vt 0.861111 0.344262 +vt 1.000000 0.163934 +vt 0.138889 1.000000 +vt 0.361111 0.639344 +vt 0.388889 0.786885 +vt 0.111111 0.983607 +vt 0.750000 0.803279 +vt 0.791667 0.803279 +vt 0.805556 0.655738 +vt 0.750000 0.803279 +vt 0.847222 0.803279 +vt 0.805556 0.655738 +vt 0.388889 0.491803 +vt 0.380472 0.523790 +vt 0.369528 0.523790 +vt 0.361789 0.514656 +vt 0.369528 0.492604 +vt 0.388211 0.501738 +vt 0.519031 0.493545 +vt 0.526302 0.502128 +vt 0.526302 0.514266 +vt 0.519031 0.522848 +vt 0.508747 0.522848 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9363 -0.3511 +vn 0.0000 -0.7071 -0.7071 +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.5774 -0.5774 0.5773 +vn -0.5774 -0.5774 -0.5773 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.5774 0.5774 0.5774 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.5774 -0.5774 -0.5773 +vn 0.5774 -0.5774 0.5773 +vn 0.7071 0.7071 0.0000 +vn 0.5774 0.5774 0.5773 +vn 0.7071 -0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 -0.1414 -0.9899 +vn 0.5773 0.5774 -0.5774 +vn 0.7493 -0.0937 -0.6556 +vn -0.5774 0.5774 -0.5774 +vn -0.7022 0.1170 -0.7022 +vn 0.0000 0.1644 -0.9864 +vn 0.7022 0.1170 -0.7022 +vn -0.7022 -0.1170 -0.7022 +vn -0.9701 -0.2425 0.0000 +vn 0.9701 -0.2425 0.0000 +vn 0.8165 0.4082 -0.4082 +vn -0.8165 0.4082 -0.4082 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.7022 -0.1170 -0.7022 +vn -0.7493 -0.0937 -0.6556 +s off +f 624/1061/186 613/1062/186 612/1063/186 +f 622/1064/187 611/1065/187 610/1066/187 +f 620/1067/188 609/1068/188 608/1069/188 +f 625/1070/189 608/1069/189 613/1062/189 +f 623/1071/190 612/1063/190 611/1072/190 +f 621/1073/191 610/1066/191 609/1068/191 +f 619/1074/191 630/1075/191 618/1076/191 +f 617/1077/189 628/1078/189 616/1079/189 +f 615/1080/190 626/1081/190 614/1082/190 +f 614/1083/187 631/1084/187 619/1085/187 +f 618/1086/188 629/1087/188 617/1088/188 +f 616/1089/186 627/1090/186 615/1091/186 +f 625/1070/192 626/1092/192 620/1067/192 +f 626/1081/192 621/1073/192 620/1067/192 +f 627/1090/192 622/1064/192 621/1073/192 +f 622/1064/192 629/1093/192 623/1094/192 +f 629/1087/192 624/1061/192 623/1071/192 +f 630/1075/192 625/1070/192 624/1061/192 +f 618/1095/192 617/1096/192 616/1097/192 +f 632/1098/186 635/1099/186 633/1100/186 +f 642/1101/187 653/1102/187 641/1103/187 +f 634/1104/186 639/1105/186 636/1106/186 +f 644/1107/186 655/1108/186 643/1109/186 +f 634/1104/186 632/1110/186 638/1111/186 +f 640/1112/188 651/1113/188 637/1114/188 +f 637/1114/189 656/1115/189 644/1107/189 +f 643/1109/190 654/1116/190 642/1117/190 +f 641/1103/191 652/1118/191 640/1112/191 +f 661/1119/191 650/1120/191 649/1121/191 +f 659/1122/189 648/1123/189 647/1124/189 +f 657/1125/190 646/1126/190 645/1127/190 +f 662/1128/187 645/1129/187 650/1130/187 +f 660/1131/188 649/1132/188 648/1133/188 +f 658/1134/186 647/1135/186 646/1136/186 +f 656/1115/193 657/1137/193 662/1128/193 +f 652/1118/193 657/1125/193 651/1113/193 +f 653/1102/193 658/1134/193 652/1118/193 +f 653/1102/193 660/1138/193 659/1122/193 +f 655/1108/193 660/1131/193 654/1116/193 +f 656/1115/193 661/1119/193 655/1108/193 +f 649/1139/193 650/1140/193 645/1141/193 +f 663/1142/186 665/1143/186 664/1144/186 +f 633/1100/194 684/1145/194 632/1098/194 +f 635/1146/186 663/1142/186 633/1147/186 +f 668/1148/195 669/1149/195 667/1150/195 +f 672/1151/196 666/1152/196 667/1150/196 +f 667/1150/195 669/1149/195 672/1151/195 +f 670/1153/186 673/1154/186 669/1149/186 +f 674/1155/197 675/1156/197 673/1154/197 +f 676/1157/198 677/1158/198 675/1156/198 +f 678/1159/199 679/1160/199 677/1161/199 +f 680/1162/191 681/1163/191 679/1160/191 +f 682/1164/200 683/1165/200 681/1163/200 +f 677/1166/201 686/1167/201 675/1168/201 +f 677/1166/202 679/1160/202 685/1169/202 +f 673/1154/203 675/1168/203 686/1167/203 +f 669/1149/204 686/1167/204 672/1151/204 +f 685/1169/205 681/1163/205 687/1170/205 +f 681/1163/206 683/1171/206 687/1170/206 +f 687/1170/207 633/1172/207 663/1142/207 +f 671/1173/186 688/1174/186 666/1175/186 +f 671/1173/193 685/1169/193 687/1170/193 +f 690/1176/186 693/1177/186 691/1178/186 +f 676/1179/208 695/1180/208 678/1181/208 +f 676/1179/209 674/1155/209 694/1182/209 +f 678/1159/210 695/1183/210 680/1162/210 +f 632/1184/211 696/1185/211 638/1111/211 +f 684/1145/212 682/1164/212 696/1186/212 +f 680/1162/213 696/1186/213 682/1164/213 +f 670/1153/195 668/1148/195 697/1187/195 +f 670/1153/214 694/1182/214 674/1155/214 +f 697/1187/196 692/1188/196 690/1189/196 +f 695/1180/192 690/1176/192 691/1178/192 +f 700/1190/215 715/1191/215 714/1192/215 +f 703/1193/195 698/1194/195 699/1195/195 +f 705/1196/194 702/1197/194 703/1193/194 +f 707/1198/211 702/1199/211 704/1200/211 +f 702/1197/216 706/1201/216 698/1194/216 +f 709/1202/192 708/1203/192 716/1204/192 +f 714/1192/217 708/1205/217 700/1190/217 +f 710/1206/207 705/1207/207 703/1208/207 +f 703/1193/218 699/1195/218 710/1209/218 +f 606/1210/193 713/1211/193 711/1212/193 +f 699/1195/219 606/1210/219 710/1209/219 +f 714/1192/220 699/1195/220 698/1194/220 +f 717/1213/191 720/1214/191 718/1215/191 +f 716/1204/221 698/1194/221 706/1201/221 +f 715/1191/222 712/1216/222 606/1210/222 +f 722/1217/186 724/1218/186 721/1219/186 +f 719/1220/194 724/1218/194 720/1221/194 +f 718/1222/198 722/1217/198 717/1223/198 +f 720/1224/193 723/1225/193 718/1226/193 +f 717/1213/192 721/1219/192 719/1227/192 +f 726/1228/198 727/1229/198 725/1230/198 +f 726/1228/223 732/1231/223 728/1232/223 +f 725/1230/224 731/1233/224 729/1234/224 +f 729/1235/199 726/1228/199 725/1230/199 +f 728/1232/195 733/1236/195 727/1229/195 +f 728/1232/225 732/1231/225 734/1237/225 +f 727/1229/226 733/1238/226 731/1233/226 +f 736/1239/198 737/1240/198 735/1241/198 +f 736/1239/223 742/1242/223 738/1243/223 +f 735/1241/224 741/1244/224 739/1245/224 +f 735/1241/199 740/1246/199 736/1239/199 +f 738/1243/195 743/1247/195 737/1240/195 +f 738/1243/225 742/1242/225 744/1248/225 +f 737/1240/226 743/1249/226 741/1244/226 +f 746/1250/227 747/1251/227 745/1252/227 +f 748/1253/228 749/1254/228 747/1251/228 +f 750/1255/229 751/1256/229 749/1254/229 +f 752/1257/230 753/1258/230 751/1256/230 +f 754/1259/231 755/1260/231 753/1261/231 +f 756/1262/232 757/1263/232 755/1260/232 +f 758/1264/191 754/1265/191 750/1266/191 +f 758/1267/233 759/1268/233 757/1263/233 +f 760/1269/234 745/1252/234 759/1268/234 +f 755/1270/186 757/1271/186 759/1272/186 +f 624/1061/186 625/1070/186 613/1062/186 +f 622/1064/187 623/1094/187 611/1065/187 +f 620/1067/188 621/1073/188 609/1068/188 +f 625/1070/189 620/1067/189 608/1069/189 +f 623/1071/190 624/1061/190 612/1063/190 +f 621/1073/191 622/1064/191 610/1066/191 +f 619/1074/191 631/1273/191 630/1075/191 +f 617/1077/189 629/1093/189 628/1078/189 +f 615/1080/190 627/1274/190 626/1081/190 +f 614/1083/187 626/1092/187 631/1084/187 +f 618/1086/188 630/1275/188 629/1087/188 +f 616/1089/186 628/1276/186 627/1090/186 +f 625/1070/192 631/1084/192 626/1092/192 +f 626/1081/192 627/1274/192 621/1073/192 +f 627/1090/192 628/1276/192 622/1064/192 +f 622/1064/192 628/1078/192 629/1093/192 +f 629/1087/192 630/1275/192 624/1061/192 +f 630/1075/192 631/1273/192 625/1070/192 +f 616/1097/192 615/1277/192 618/1095/192 +f 615/1277/192 614/1278/192 618/1095/192 +f 614/1278/192 619/1279/192 618/1095/192 +f 632/1098/186 634/1280/186 635/1099/186 +f 642/1101/187 654/1281/187 653/1102/187 +f 634/1104/186 638/1111/186 639/1105/186 +f 644/1107/186 656/1115/186 655/1108/186 +f 640/1112/188 652/1118/188 651/1113/188 +f 637/1114/189 651/1113/189 656/1115/189 +f 643/1109/190 655/1108/190 654/1116/190 +f 641/1103/191 653/1102/191 652/1118/191 +f 661/1119/191 662/1282/191 650/1120/191 +f 659/1122/189 660/1138/189 648/1123/189 +f 657/1125/190 658/1283/190 646/1126/190 +f 662/1128/187 657/1137/187 645/1129/187 +f 660/1131/188 661/1284/188 649/1132/188 +f 658/1134/186 659/1285/186 647/1135/186 +f 656/1115/193 651/1113/193 657/1137/193 +f 652/1118/193 658/1283/193 657/1125/193 +f 653/1102/193 659/1285/193 658/1134/193 +f 653/1102/193 654/1281/193 660/1138/193 +f 655/1108/193 661/1284/193 660/1131/193 +f 656/1115/193 662/1282/193 661/1119/193 +f 645/1141/193 646/1286/193 649/1139/193 +f 646/1286/193 647/1287/193 649/1139/193 +f 647/1287/193 648/1288/193 649/1139/193 +f 663/1142/186 635/1146/186 665/1143/186 +f 633/1100/194 683/1165/194 684/1145/194 +f 668/1148/195 670/1153/195 669/1149/195 +f 672/1151/196 671/1289/196 666/1152/196 +f 670/1153/186 674/1155/186 673/1154/186 +f 674/1155/197 676/1157/197 675/1156/197 +f 676/1157/198 678/1290/198 677/1158/198 +f 678/1159/199 680/1162/199 679/1160/199 +f 680/1162/191 682/1164/191 681/1163/191 +f 682/1164/200 684/1145/200 683/1165/200 +f 677/1166/201 685/1169/201 686/1167/201 +f 669/1149/204 673/1154/204 686/1167/204 +f 685/1169/205 679/1160/205 681/1163/205 +f 687/1170/207 683/1171/207 633/1172/207 +f 671/1173/186 689/1291/186 688/1174/186 +f 687/1170/193 663/1142/193 664/1144/193 +f 687/1170/193 664/1144/193 689/1291/193 +f 672/1151/193 686/1167/193 671/1173/193 +f 686/1167/193 685/1169/193 671/1173/193 +f 687/1170/193 689/1291/193 671/1173/193 +f 690/1176/186 692/1292/186 693/1177/186 +f 676/1179/208 694/1182/208 695/1180/208 +f 632/1184/211 684/1293/211 696/1185/211 +f 680/1162/213 695/1183/213 696/1186/213 +f 670/1153/214 697/1187/214 694/1182/214 +f 697/1187/196 668/1148/196 692/1188/196 +f 691/1178/192 639/1105/192 696/1185/192 +f 639/1105/192 638/1111/192 696/1185/192 +f 691/1178/192 696/1185/192 695/1180/192 +f 695/1180/192 694/1182/192 690/1176/192 +f 694/1182/192 697/1187/192 690/1176/192 +f 700/1190/215 701/1294/215 715/1191/215 +f 703/1193/195 702/1197/195 698/1194/195 +f 705/1196/194 704/1295/194 702/1197/194 +f 707/1198/211 706/1296/211 702/1199/211 +f 706/1296/192 707/1198/192 716/1204/192 +f 707/1198/192 709/1202/192 716/1204/192 +f 714/1192/235 716/1204/235 708/1205/235 +f 710/1206/207 711/1212/207 705/1207/207 +f 711/1212/193 710/1206/193 606/1210/193 +f 606/1210/193 712/1297/193 713/1211/193 +f 699/1195/219 715/1191/219 606/1210/219 +f 714/1192/220 715/1191/220 699/1195/220 +f 717/1213/191 719/1227/191 720/1214/191 +f 716/1204/221 714/1192/221 698/1194/221 +f 715/1191/236 701/1294/236 712/1216/236 +f 722/1217/186 723/1225/186 724/1218/186 +f 719/1220/194 721/1219/194 724/1218/194 +f 718/1222/198 723/1225/198 722/1217/198 +f 720/1224/193 724/1218/193 723/1225/193 +f 717/1213/192 722/1217/192 721/1219/192 +f 726/1228/198 728/1232/198 727/1229/198 +f 726/1228/223 730/1298/223 732/1231/223 +f 725/1230/224 727/1229/224 731/1233/224 +f 729/1235/199 730/1299/199 726/1228/199 +f 728/1232/195 734/1300/195 733/1236/195 +f 736/1239/198 738/1243/198 737/1240/198 +f 736/1239/223 740/1301/223 742/1242/223 +f 735/1241/224 737/1240/224 741/1244/224 +f 735/1241/199 739/1302/199 740/1246/199 +f 738/1243/195 744/1303/195 743/1247/195 +f 746/1250/227 748/1253/227 747/1251/227 +f 748/1253/228 750/1255/228 749/1254/228 +f 750/1255/229 752/1257/229 751/1256/229 +f 752/1257/230 754/1304/230 753/1258/230 +f 754/1259/231 756/1262/231 755/1260/231 +f 756/1262/232 758/1267/232 757/1263/232 +f 750/1266/191 748/1305/191 746/1306/191 +f 746/1306/191 760/1307/191 750/1266/191 +f 760/1307/191 758/1264/191 750/1266/191 +f 758/1264/191 756/1308/191 754/1265/191 +f 754/1265/191 752/1309/191 750/1266/191 +f 758/1267/233 760/1269/233 759/1268/233 +f 760/1269/234 746/1250/234 745/1252/234 +f 759/1272/186 745/1310/186 747/1311/186 +f 747/1311/186 749/1312/186 759/1272/186 +f 749/1312/186 751/1313/186 759/1272/186 +f 751/1313/186 753/1314/186 759/1272/186 +f 753/1314/186 755/1270/186 759/1272/186 diff --git a/src/main/resources/assets/hbm/models/armor/no9.obj b/src/main/resources/assets/hbm/models/armor/no9.obj index 44aa2277a..ac13e9c9a 100644 --- a/src/main/resources/assets/hbm/models/armor/no9.obj +++ b/src/main/resources/assets/hbm/models/armor/no9.obj @@ -202,6 +202,12 @@ v 0.999989 -9.625004 -6.750004 v 0.999989 -9.375004 -6.750004 v -1.000010 -9.375004 -6.750004 v -1.000011 -9.625004 -6.750004 +v 0.999989 -10.000000 -3.000000 +v -1.000011 -10.000000 -3.000000 +v 0.999989 -10.000000 -4.500000 +v -1.000011 -10.000000 -4.500000 +v 0.999989 -8.500000 -4.500000 +v -1.000011 -8.500000 -4.500000 vt 0.604167 0.444444 vt 0.562500 0.444444 vt 0.541667 0.416667 @@ -334,6 +340,14 @@ vt 0.583333 0.722222 vt 0.750000 0.722222 vt 0.750000 0.555556 vt 0.583333 0.555556 +vt 0.166667 0.388889 +vt 0.250000 0.277778 +vt 0.250000 0.388889 +vt 0.166667 0.277778 +vt 0.250000 0.166667 +vt 0.333333 0.277778 +vt 0.083333 0.277778 +vt 0.166667 0.166667 vt 0.541667 0.361111 vt 0.625000 0.361111 vt 0.562500 0.333333 @@ -623,19 +637,23 @@ f 158/132/11 164/133/11 160/134/11 f 159/135/10 162/131/10 157/136/10 f 160/137/9 161/129/9 159/138/9 f 157/139/13 163/130/13 158/140/13 -f 23/11/9 22/141/9 20/142/9 -f 22/141/9 135/143/9 20/142/9 -f 135/143/9 136/144/9 20/142/9 -f 20/142/9 24/145/9 23/11/9 -f 24/145/9 139/9/9 23/11/9 +f 166/141/9 167/142/9 165/143/9 +f 168/144/25 169/145/25 167/142/25 +f 167/142/10 169/145/10 165/146/10 +f 168/144/11 166/147/11 170/148/11 +f 23/11/9 22/149/9 20/150/9 +f 22/149/9 135/151/9 20/150/9 +f 135/151/9 136/152/9 20/150/9 +f 20/150/9 24/153/9 23/11/9 +f 24/153/9 139/9/9 23/11/9 f 24/12/10 20/18/10 19/13/10 f 25/15/11 21/105/11 22/16/11 -f 20/18/12 136/146/12 134/19/12 -f 26/22/13 19/147/13 21/148/13 -f 19/147/13 134/149/13 21/148/13 -f 134/149/13 133/150/13 21/148/13 -f 21/148/13 25/151/13 26/22/13 -f 25/151/13 138/20/13 26/22/13 +f 20/18/12 136/154/12 134/19/12 +f 26/22/13 19/155/13 21/156/13 +f 19/155/13 134/157/13 21/156/13 +f 134/157/13 133/158/13 21/156/13 +f 21/156/13 25/159/13 26/22/13 +f 25/159/13 138/20/13 26/22/13 f 42/23/14 41/44/14 33/24/14 f 38/26/15 37/46/15 29/27/15 f 39/29/16 40/55/16 32/30/16 @@ -643,7 +661,7 @@ f 35/32/17 36/57/17 28/33/17 f 40/35/18 35/51/18 27/34/18 f 37/37/19 39/50/19 31/31/19 f 33/39/20 41/47/20 38/40/20 -f 34/25/21 28/152/21 36/41/21 +f 34/25/21 28/160/21 36/41/21 f 42/23/11 50/60/11 49/43/11 f 38/26/22 46/73/22 45/45/22 f 41/47/23 49/74/23 46/48/23 @@ -652,139 +670,141 @@ f 35/51/12 40/35/12 48/52/12 f 39/29/10 47/62/10 48/54/10 f 35/32/25 43/67/25 44/56/25 f 42/42/26 36/41/26 44/58/26 -f 50/60/27 54/153/27 53/61/27 -f 47/62/28 51/154/28 52/63/28 -f 51/64/9 53/155/9 54/65/9 +f 50/60/27 54/161/27 53/61/27 +f 47/62/28 51/162/28 52/63/28 +f 51/64/9 53/163/9 54/65/9 f 43/67/29 52/66/29 54/65/29 -f 53/72/33 51/156/33 45/45/33 -f 56/76/11 58/157/11 57/77/11 -f 61/79/10 62/158/10 60/80/10 -f 66/82/35 65/159/35 63/83/35 +f 53/72/33 51/164/33 45/45/33 +f 56/76/11 58/165/11 57/77/11 +f 61/79/10 62/166/10 60/80/10 +f 66/82/35 65/167/35 63/83/35 f 71/85/25 74/89/25 73/86/25 f 68/88/11 73/86/11 74/89/11 f 69/91/10 71/85/10 72/87/10 f 70/93/9 74/89/9 71/85/9 f 67/95/13 72/87/13 73/86/13 -f 122/99/11 120/160/11 130/97/11 -f 120/160/11 118/161/11 130/97/11 -f 118/161/11 132/162/11 130/97/11 -f 130/97/11 128/163/11 126/98/11 -f 126/98/11 124/164/11 122/99/11 -f 131/101/10 117/165/10 119/166/10 -f 119/166/10 121/167/10 131/101/10 -f 121/167/10 123/102/10 131/101/10 -f 123/102/10 125/168/10 127/169/10 -f 127/169/10 129/100/10 123/102/10 -f 134/19/25 136/146/25 135/103/25 +f 122/99/11 120/168/11 130/97/11 +f 120/168/11 118/169/11 130/97/11 +f 118/169/11 132/170/11 130/97/11 +f 130/97/11 128/171/11 126/98/11 +f 126/98/11 124/172/11 122/99/11 +f 131/101/10 117/173/10 119/174/10 +f 119/174/10 121/175/10 131/101/10 +f 121/175/10 123/102/10 131/101/10 +f 123/102/10 125/176/10 127/177/10 +f 127/177/10 129/100/10 123/102/10 +f 134/19/25 136/154/25 135/103/25 f 21/105/26 133/104/26 135/103/26 f 137/106/22 139/110/22 140/107/22 -f 23/17/23 137/170/23 138/109/23 +f 23/17/23 137/178/23 138/109/23 f 24/12/24 26/14/24 140/107/24 -f 142/111/28 144/171/28 143/112/28 -f 143/114/25 144/172/25 148/115/25 +f 142/111/28 144/179/28 143/112/28 +f 143/114/25 144/180/25 148/115/25 f 148/115/36 146/122/36 145/117/36 f 150/118/10 152/123/10 151/119/10 f 147/116/37 145/117/37 141/113/37 -f 144/121/27 142/173/27 146/122/27 +f 144/121/27 142/181/27 146/122/27 f 152/123/25 156/125/25 155/124/25 -f 156/125/11 154/174/11 153/126/11 -f 155/124/13 153/175/13 149/127/13 -f 152/123/9 150/176/9 154/128/9 +f 156/125/11 154/182/11 153/126/11 +f 155/124/13 153/183/13 149/127/13 +f 152/123/9 150/184/9 154/128/9 f 161/129/25 164/133/25 163/130/25 f 158/132/11 163/130/11 164/133/11 f 159/135/10 161/129/10 162/131/10 f 160/137/9 164/133/9 161/129/9 f 157/139/13 162/131/13 163/130/13 +f 166/141/9 168/144/9 167/142/9 +f 168/144/25 170/148/25 169/145/25 s 1 -f 99/177/38 78/178/39 79/179/40 -f 75/180/41 76/181/22 77/182/42 -f 98/183/43 77/182/42 78/178/39 -f 77/184/42 81/185/44 78/186/39 -f 78/186/39 82/187/45 79/188/40 -f 77/184/42 76/181/22 80/189/46 -f 81/190/44 83/191/47 84/192/48 -f 81/190/44 85/193/49 82/194/45 -f 80/195/46 76/181/22 83/191/47 -f 83/196/47 87/197/50 84/198/48 -f 84/198/48 88/199/51 85/200/49 -f 83/196/47 76/181/22 86/201/52 -f 87/202/50 89/203/53 90/204/54 -f 87/202/50 91/205/55 88/206/51 -f 86/207/52 76/181/22 89/203/53 -f 89/208/53 93/209/56 90/210/54 -f 90/210/54 94/211/57 91/212/55 -f 89/208/53 76/181/22 92/213/58 -f 93/214/56 97/215/59 94/216/57 -f 92/217/58 76/181/22 95/218/60 -f 93/214/56 95/218/60 96/219/61 -f 96/220/61 99/221/38 97/222/59 -f 95/223/60 76/181/22 75/224/41 -f 95/223/60 98/225/43 96/220/61 -f 100/226/62 102/227/63 101/228/25 -f 116/229/64 102/227/63 100/226/62 -f 105/230/65 102/231/63 103/232/66 -f 102/231/63 104/233/67 101/228/25 -f 105/234/65 106/235/68 104/236/67 -f 104/236/67 106/235/68 101/228/25 -f 109/237/69 106/238/68 107/239/70 -f 106/238/68 108/240/71 101/228/25 -f 109/241/69 110/242/72 108/243/71 -f 108/243/71 110/242/72 101/228/25 -f 113/244/73 110/245/72 111/246/74 -f 110/245/72 112/247/75 101/228/25 -f 82/248/76 107/249/70 105/234/65 -f 88/250/77 107/239/70 85/251/78 -f 112/252/75 114/253/79 101/228/25 -f 91/254/80 109/241/69 88/255/77 -f 94/256/81 111/246/74 91/257/80 -f 113/258/73 114/253/79 112/252/75 -f 115/259/82 94/260/81 97/261/83 -f 99/262/84 115/263/82 97/264/83 -f 114/265/79 100/266/62 101/228/25 -f 103/267/66 99/268/84 79/269/85 -f 79/270/85 105/230/65 103/232/66 -f 116/271/64 114/265/79 115/263/82 -f 118/272/25 119/273/86 117/274/25 -f 120/275/86 121/276/87 119/273/86 -f 125/277/88 128/278/33 127/279/33 -f 128/278/33 129/280/9 127/279/33 -f 130/281/9 131/282/29 129/280/9 -f 132/283/29 117/274/25 131/282/29 -f 99/177/38 98/183/43 78/178/39 -f 98/183/43 75/180/41 77/182/42 -f 77/184/42 80/189/46 81/185/44 -f 78/186/39 81/185/44 82/187/45 -f 81/190/44 80/195/46 83/191/47 -f 81/190/44 84/192/48 85/193/49 -f 83/196/47 86/201/52 87/197/50 -f 84/198/48 87/197/50 88/199/51 -f 87/202/50 86/207/52 89/203/53 -f 87/202/50 90/204/54 91/205/55 -f 89/208/53 92/213/58 93/209/56 -f 90/210/54 93/209/56 94/211/57 -f 93/214/56 96/219/61 97/215/59 -f 93/214/56 92/217/58 95/218/60 -f 96/220/61 98/225/43 99/221/38 -f 95/223/60 75/224/41 98/225/43 -f 116/229/64 103/267/66 102/227/63 -f 105/230/65 104/233/67 102/231/63 -f 105/234/65 107/249/70 106/235/68 -f 109/237/69 108/240/71 106/238/68 -f 109/241/69 111/284/74 110/242/72 -f 113/244/73 112/247/75 110/245/72 -f 82/248/76 85/285/78 107/249/70 -f 88/250/77 109/237/69 107/239/70 -f 91/254/80 111/284/74 109/241/69 -f 94/256/81 113/244/73 111/246/74 -f 113/258/73 115/259/82 114/253/79 -f 115/259/82 113/258/73 94/260/81 -f 99/262/84 116/271/64 115/263/82 -f 103/267/66 116/229/64 99/268/84 -f 79/270/85 82/286/76 105/230/65 -f 116/271/64 100/266/62 114/265/79 -f 118/272/25 120/275/86 119/273/86 -f 120/275/86 122/287/87 121/276/87 -f 125/277/88 126/288/88 128/278/33 -f 128/278/33 130/281/9 129/280/9 -f 130/281/9 132/283/29 131/282/29 -f 132/283/29 118/272/25 117/274/25 +f 99/185/38 78/186/39 79/187/40 +f 75/188/41 76/189/22 77/190/42 +f 98/191/43 77/190/42 78/186/39 +f 77/192/42 81/193/44 78/194/39 +f 78/194/39 82/195/45 79/196/40 +f 77/192/42 76/189/22 80/197/46 +f 81/198/44 83/199/47 84/200/48 +f 81/198/44 85/201/49 82/202/45 +f 80/203/46 76/189/22 83/199/47 +f 83/204/47 87/205/50 84/206/48 +f 84/206/48 88/207/51 85/208/49 +f 83/204/47 76/189/22 86/209/52 +f 87/210/50 89/211/53 90/212/54 +f 87/210/50 91/213/55 88/214/51 +f 86/215/52 76/189/22 89/211/53 +f 89/216/53 93/217/56 90/218/54 +f 90/218/54 94/219/57 91/220/55 +f 89/216/53 76/189/22 92/221/58 +f 93/222/56 97/223/59 94/224/57 +f 92/225/58 76/189/22 95/226/60 +f 93/222/56 95/226/60 96/227/61 +f 96/228/61 99/229/38 97/230/59 +f 95/231/60 76/189/22 75/232/41 +f 95/231/60 98/233/43 96/228/61 +f 100/234/62 102/235/63 101/236/25 +f 116/237/64 102/235/63 100/234/62 +f 105/238/65 102/239/63 103/240/66 +f 102/239/63 104/241/67 101/236/25 +f 105/242/65 106/243/68 104/244/67 +f 104/244/67 106/243/68 101/236/25 +f 109/245/69 106/246/68 107/247/70 +f 106/246/68 108/248/71 101/236/25 +f 109/249/69 110/250/72 108/251/71 +f 108/251/71 110/250/72 101/236/25 +f 113/252/73 110/253/72 111/254/74 +f 110/253/72 112/255/75 101/236/25 +f 82/256/76 107/257/70 105/242/65 +f 88/258/77 107/247/70 85/259/78 +f 112/260/75 114/261/79 101/236/25 +f 91/262/80 109/249/69 88/263/77 +f 94/264/81 111/254/74 91/265/80 +f 113/266/73 114/261/79 112/260/75 +f 115/267/82 94/268/81 97/269/83 +f 99/270/84 115/271/82 97/272/83 +f 114/273/79 100/274/62 101/236/25 +f 103/275/66 99/276/84 79/277/85 +f 79/278/85 105/238/65 103/240/66 +f 116/279/64 114/273/79 115/271/82 +f 118/280/25 119/281/86 117/282/25 +f 120/283/86 121/284/87 119/281/86 +f 125/285/88 128/286/33 127/287/33 +f 128/286/33 129/288/9 127/287/33 +f 130/289/9 131/290/29 129/288/9 +f 132/291/29 117/282/25 131/290/29 +f 99/185/38 98/191/43 78/186/39 +f 98/191/43 75/188/41 77/190/42 +f 77/192/42 80/197/46 81/193/44 +f 78/194/39 81/193/44 82/195/45 +f 81/198/44 80/203/46 83/199/47 +f 81/198/44 84/200/48 85/201/49 +f 83/204/47 86/209/52 87/205/50 +f 84/206/48 87/205/50 88/207/51 +f 87/210/50 86/215/52 89/211/53 +f 87/210/50 90/212/54 91/213/55 +f 89/216/53 92/221/58 93/217/56 +f 90/218/54 93/217/56 94/219/57 +f 93/222/56 96/227/61 97/223/59 +f 93/222/56 92/225/58 95/226/60 +f 96/228/61 98/233/43 99/229/38 +f 95/231/60 75/232/41 98/233/43 +f 116/237/64 103/275/66 102/235/63 +f 105/238/65 104/241/67 102/239/63 +f 105/242/65 107/257/70 106/243/68 +f 109/245/69 108/248/71 106/246/68 +f 109/249/69 111/292/74 110/250/72 +f 113/252/73 112/255/75 110/253/72 +f 82/256/76 85/293/78 107/257/70 +f 88/258/77 109/245/69 107/247/70 +f 91/262/80 111/292/74 109/249/69 +f 94/264/81 113/252/73 111/254/74 +f 113/266/73 115/267/82 114/261/79 +f 115/267/82 113/266/73 94/268/81 +f 99/270/84 116/279/64 115/271/82 +f 103/275/66 116/237/64 99/276/84 +f 79/278/85 82/294/76 105/238/65 +f 116/279/64 100/274/62 114/273/79 +f 118/280/25 120/283/86 119/281/86 +f 120/283/86 122/295/87 121/284/87 +f 125/285/88 126/296/88 128/286/33 +f 128/286/33 130/289/9 129/288/9 +f 130/289/9 132/291/29 131/290/29 +f 132/291/29 118/280/25 117/282/25 diff --git a/src/main/resources/assets/hbm/models/armor/solstice.obj b/src/main/resources/assets/hbm/models/armor/solstice.obj deleted file mode 100644 index 11fe36888..000000000 --- a/src/main/resources/assets/hbm/models/armor/solstice.obj +++ /dev/null @@ -1,570 +0,0 @@ -# Blender v2.79 (sub 0) OBJ File: 'solstice.blend' -# www.blender.org -o WingLB -v 1.000000 5.000000 3.000000 -v 0.999999 3.000000 3.000000 -v 1.000000 5.000000 2.000000 -v 0.999999 3.000000 2.000000 -v 17.000000 4.999995 3.000000 -v 17.000000 2.999995 3.000000 -v 17.000000 4.999995 2.000000 -v 17.000000 2.999995 2.000000 -v 14.999999 4.999996 2.250000 -v 17.000000 4.999995 2.250000 -v 15.500004 18.499996 2.250000 -v 16.500004 18.499996 2.250000 -v 14.999999 4.999996 2.750000 -v 17.000000 4.999995 2.750000 -v 15.500004 18.499996 2.750000 -v 16.500004 18.499996 2.750000 -v 14.292892 4.292889 2.375000 -v 15.707107 5.707102 2.375000 -v 5.100508 14.192387 2.375000 -v 5.807615 14.899494 2.375000 -v 14.292892 4.292889 2.625000 -v 15.707107 5.707102 2.625000 -v 5.100508 14.192387 2.625000 -v 5.807615 14.899494 2.625000 -v 1.000000 5.000000 2.500000 -v 15.999999 4.999995 2.500000 -v 16.000004 17.999996 2.500000 -v 6.000003 13.999999 2.500000 -v 12.000003 14.999997 2.500000 -v 4.000000 7.999999 2.500000 -v 1.000000 5.000000 2.500000 -v 15.999999 4.999995 2.500000 -v 16.000004 17.999996 2.500000 -v 6.000003 13.999999 2.500000 -v 12.000003 14.999997 2.500000 -v 4.000000 7.999999 2.500000 -vt -0.000000 0.818182 -vt 0.057143 0.939394 -vt 0.057143 0.818182 -vt 0.057143 0.818182 -vt 0.971429 0.939394 -vt 0.971429 0.818182 -vt 0.000000 0.818182 -vt 0.057143 0.939394 -vt 0.971429 0.939394 -vt 0.971429 0.818182 -vt 0.057143 1.000000 -vt 0.971429 0.939394 -vt 0.057143 0.939394 -vt 0.057143 1.000000 -vt 0.971429 1.000000 -vt 0.971429 0.000000 -vt 0.885714 0.818182 -vt 1.000000 0.818182 -vt 1.000000 0.818182 -vt 0.914286 0.000000 -vt 0.885714 0.818182 -vt 0.857143 0.000000 -vt 0.885714 0.000000 -vt 0.857143 0.000000 -vt 0.857143 0.818182 -vt 0.000000 1.000000 -vt 0.057143 0.969697 -vt 0.000000 0.969697 -vt 0.971429 0.000000 -vt 0.885714 0.818182 -vt 1.000000 0.818182 -vt 0.885714 0.818182 -vt 0.971429 -0.000000 -vt 0.914286 -0.000000 -vt 0.857143 0.000000 -vt 0.871429 0.818182 -vt 0.871429 0.000000 -vt 0.871429 0.818182 -vt 0.857143 0.000000 -vt 0.857143 0.818182 -vt 0.057143 0.984848 -vt 0.000000 1.000000 -vt 0.057143 1.000000 -vt 0.857143 0.818182 -vt 0.628571 0.212121 -vt 0.171429 0.636364 -vt 0.857143 0.818182 -vt 0.171429 0.636364 -vt 0.628571 0.212121 -vt -0.000000 0.939394 -vt 0.000000 0.939394 -vt 0.971429 1.000000 -vt 0.914286 -0.000000 -vt 0.971429 -0.000000 -vt 0.857143 0.818182 -vt 0.885714 0.000000 -vt 0.057143 1.000000 -vt 0.914286 0.000000 -vt 1.000000 0.818182 -vt 0.857143 0.818182 -vt 0.871429 0.000000 -vt 0.000000 0.984848 -vt 0.000000 0.818182 -vt 0.857143 0.030303 -vt 0.285714 0.272727 -vt 0.857143 0.030303 -vt 0.000000 0.818182 -vt 0.285714 0.272727 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn -0.0000 -1.0000 0.0000 -vn 0.9993 0.0370 0.0000 -vn -0.9993 0.0370 0.0000 -vn 0.6805 0.7328 0.0000 -vn -0.7328 -0.6805 0.0000 -vn -0.7071 0.7071 0.0000 -s off -f 3/1/1 2/2/1 1/3/1 -f 7/4/2 4/5/2 3/6/2 -f 5/7/3 8/8/3 7/4/3 -f 1/3/4 6/9/4 5/10/4 -f 1/11/5 7/12/5 3/13/5 -f 6/9/6 4/14/6 8/15/6 -f 11/16/2 10/17/2 9/18/2 -f 14/19/4 15/20/4 13/21/4 -f 16/22/7 10/17/7 12/23/7 -f 13/21/8 11/24/8 9/25/8 -f 15/26/5 12/27/5 11/28/5 -f 19/29/2 18/30/2 17/31/2 -f 21/32/4 24/33/4 23/34/4 -f 24/35/9 18/36/9 20/37/9 -f 21/38/10 19/39/10 17/40/10 -f 23/41/11 20/42/11 19/43/11 -f 26/44/4 29/45/4 30/46/4 -f 32/47/2 36/48/2 35/49/2 -f 3/1/1 4/50/1 2/2/1 -f 7/4/2 8/8/2 4/5/2 -f 5/7/3 6/51/3 8/8/3 -f 1/3/4 2/2/4 6/9/4 -f 1/11/5 5/52/5 7/12/5 -f 6/9/6 2/2/6 4/14/6 -f 11/16/2 12/53/2 10/17/2 -f 14/19/4 16/54/4 15/20/4 -f 16/22/7 14/55/7 10/17/7 -f 13/21/8 15/56/8 11/24/8 -f 15/26/5 16/57/5 12/27/5 -f 19/29/2 20/58/2 18/30/2 -f 21/32/4 22/59/4 24/33/4 -f 24/35/9 22/60/9 18/36/9 -f 21/38/10 23/61/10 19/39/10 -f 23/41/11 24/62/11 20/42/11 -f 25/63/4 26/44/4 30/46/4 -f 26/44/4 27/64/4 29/45/4 -f 29/45/4 28/65/4 30/46/4 -f 33/66/2 32/47/2 35/49/2 -f 32/47/2 31/67/2 36/48/2 -f 36/48/2 34/68/2 35/49/2 -o WingLT -v 15.000000 5.000000 3.062500 -v 15.000000 3.000000 3.062500 -v 15.000000 5.000000 2.062500 -v 15.000000 3.000000 2.062500 -v 31.000000 4.999995 3.062500 -v 31.000000 3.999995 3.062500 -v 31.000000 4.999995 2.062500 -v 31.000000 3.999995 2.062500 -v 17.707108 4.292892 2.437500 -v 16.292894 5.707107 2.437500 -v 26.899498 14.192384 2.437500 -v 26.192390 14.899492 2.437500 -v 26.192390 14.899492 2.687500 -v 26.899498 14.192384 2.687500 -v 16.292894 5.707107 2.687500 -v 17.707108 4.292892 2.687500 -v 16.010000 5.010002 2.562500 -v 30.975857 5.009997 2.562500 -v 16.010004 17.980001 2.562500 -v 25.992420 13.991125 2.562500 -v 19.995955 14.990538 2.562500 -v 27.991261 7.994596 2.562500 -v 16.010000 5.010002 2.562500 -v 30.975857 5.009997 2.562500 -v 16.010004 17.980001 2.562500 -v 25.992420 13.991125 2.562500 -v 19.995955 14.990538 2.562500 -v 27.991261 7.994596 2.562500 -vt 0.000000 0.818182 -vt 0.057143 0.939394 -vt 0.057143 0.818182 -vt 0.971429 0.818182 -vt 0.057143 0.878788 -vt 0.971429 0.939394 -vt 0.000000 0.818182 -vt 0.057143 0.818182 -vt 0.971429 0.878788 -vt 0.971429 0.818182 -vt 0.057143 1.000000 -vt 0.971429 0.939394 -vt 0.057143 0.939394 -vt 0.971429 0.939394 -vt 0.057143 1.000000 -vt 0.971429 1.000000 -vt 0.885714 0.818182 -vt 0.971429 -0.000000 -vt 0.914286 -0.000000 -vt 0.057143 0.984848 -vt -0.000000 1.000000 -vt 0.057143 1.000000 -vt 0.871429 0.818182 -vt 0.857143 0.000000 -vt 0.857143 0.818182 -vt 0.000000 1.000000 -vt 0.057143 0.984848 -vt -0.000000 0.984848 -vt 0.857143 -0.000000 -vt 0.871429 0.818182 -vt 0.871429 -0.000000 -vt 0.971429 0.000000 -vt 0.885714 0.818182 -vt 1.000000 0.818182 -vt 0.857143 0.818182 -vt 0.171429 0.636364 -vt 0.628571 0.212121 -vt 0.857143 0.818182 -vt 0.628571 0.212121 -vt 0.171429 0.636364 -vt 0.000000 0.939394 -vt 0.000000 0.878788 -vt 0.971429 1.000000 -vt 1.000000 0.818182 -vt -0.000000 0.984848 -vt 0.871429 0.000000 -vt 0.057143 1.000000 -vt 0.857143 0.818182 -vt 0.914286 0.000000 -vt 0.857143 0.030303 -vt 0.000000 0.818182 -vt 0.285714 0.272727 -vt 0.000000 0.818182 -vt 0.857143 0.030303 -vt 0.285714 0.272727 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0624 -0.9981 0.0000 -vn -0.7071 -0.7071 0.0000 -vn -0.6805 0.7328 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.7328 -0.6805 0.0000 -s off -f 39/69/12 38/70/12 37/71/12 -f 39/72/13 44/73/13 40/74/13 -f 41/75/14 44/73/14 43/76/14 -f 37/71/15 42/77/15 41/78/15 -f 37/79/16 43/80/16 39/81/16 -f 42/82/17 40/83/17 44/84/17 -f 45/85/13 48/86/13 47/87/13 -f 52/88/18 46/89/18 45/90/18 -f 51/91/19 48/92/19 46/93/19 -f 49/94/20 47/95/20 48/96/20 -f 50/97/21 45/98/21 47/99/21 -f 50/100/15 51/101/15 52/102/15 -f 53/103/15 58/104/15 57/105/15 -f 59/106/13 63/107/13 64/108/13 -f 39/69/12 40/109/12 38/70/12 -f 39/72/13 43/76/13 44/73/13 -f 41/75/14 42/110/14 44/73/14 -f 37/71/15 38/70/15 42/77/15 -f 37/79/16 41/111/16 43/80/16 -f 42/82/17 38/70/17 40/83/17 -f 45/85/13 46/112/13 48/86/13 -f 52/88/18 51/113/18 46/89/18 -f 51/91/19 49/114/19 48/92/19 -f 49/94/20 50/115/20 47/95/20 -f 50/97/21 52/116/21 45/98/21 -f 50/100/15 49/117/15 51/101/15 -f 55/118/15 53/103/15 57/105/15 -f 53/103/15 54/119/15 58/104/15 -f 58/104/15 56/120/15 57/105/15 -f 60/121/13 59/106/13 64/108/13 -f 59/106/13 61/122/13 63/107/13 -f 63/107/13 62/123/13 64/108/13 -o WingRT -v -15.000000 5.000001 3.062500 -v -15.000000 3.000001 3.062500 -v -15.000000 5.000001 2.062500 -v -15.000000 3.000001 2.062500 -v -31.000000 5.000007 3.062500 -v -31.000000 4.000007 3.062500 -v -31.000000 5.000007 2.062500 -v -31.000000 4.000007 2.062500 -v -17.707108 4.292896 2.437500 -v -16.292892 5.707109 2.437500 -v -26.899492 14.192393 2.437500 -v -26.192383 14.899500 2.437500 -v -26.192383 14.899500 2.687500 -v -26.899492 14.192393 2.687500 -v -16.292892 5.707109 2.687500 -v -17.707108 4.292896 2.687500 -v -16.010000 5.010004 2.562500 -v -30.975857 5.010009 2.562500 -v -16.009995 17.980003 2.562500 -v -25.992414 13.991133 2.562500 -v -19.995947 14.990541 2.562500 -v -27.991259 7.994606 2.562500 -v -16.010000 5.010004 2.562500 -v -30.975857 5.010009 2.562500 -v -16.009995 17.980003 2.562500 -v -25.992414 13.991133 2.562500 -v -19.995947 14.990541 2.562500 -v -27.991259 7.994606 2.562500 -vt 0.057143 0.939394 -vt 0.000000 0.818182 -vt 0.057143 0.818182 -vt 0.971429 0.818182 -vt 0.057143 0.878788 -vt 0.057143 0.818182 -vt 0.000000 0.818182 -vt 0.971429 0.878788 -vt 0.971429 0.818182 -vt 0.971429 0.939394 -vt 0.057143 1.000000 -vt 0.057143 0.939394 -vt 0.057143 1.000000 -vt 0.971429 0.939394 -vt 0.971429 1.000000 -vt 0.914286 -0.000000 -vt 1.000000 0.818182 -vt 0.885714 0.818182 -vt -0.000000 1.000000 -vt 0.057143 0.984848 -vt 0.057143 1.000000 -vt 0.857143 0.000000 -vt 0.871429 0.818182 -vt 0.857143 0.818182 -vt 0.057143 0.984848 -vt 0.000000 1.000000 -vt -0.000000 0.984848 -vt 0.871429 0.818182 -vt 0.857143 -0.000000 -vt 0.871429 -0.000000 -vt 1.000000 0.818182 -vt 0.914286 0.000000 -vt 0.971429 0.000000 -vt 0.857143 0.818182 -vt 0.628571 0.212121 -vt 0.171429 0.636364 -vt 0.857143 0.818182 -vt 0.171429 0.636364 -vt 0.628571 0.212121 -vt 0.000000 0.939394 -vt 0.971429 0.939394 -vt 0.000000 0.878788 -vt 0.971429 1.000000 -vt 0.971429 -0.000000 -vt -0.000000 0.984848 -vt 0.871429 0.000000 -vt 0.057143 1.000000 -vt 0.857143 0.818182 -vt 0.885714 0.818182 -vt 0.000000 0.818182 -vt 0.857143 0.030303 -vt 0.285714 0.272727 -vt 0.857143 0.030303 -vt 0.000000 0.818182 -vt 0.285714 0.272727 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -vn -0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn -0.0624 -0.9981 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 0.6805 0.7328 0.0000 -vn -0.7071 0.7071 0.0000 -vn -0.7328 -0.6805 0.0000 -s off -f 66/124/22 67/125/22 65/126/22 -f 67/127/23 72/128/23 71/129/23 -f 72/128/24 69/130/24 71/129/24 -f 70/131/25 65/126/25 69/132/25 -f 71/133/26 65/134/26 67/135/26 -f 68/136/27 70/137/27 72/138/27 -f 75/139/23 74/140/23 73/141/23 -f 74/142/28 80/143/28 73/144/28 -f 76/145/29 79/146/29 74/147/29 -f 75/148/30 77/149/30 76/150/30 -f 73/151/31 78/152/31 75/153/31 -f 80/154/25 77/155/25 78/156/25 -f 81/157/25 85/158/25 86/159/25 -f 87/160/23 92/161/23 91/162/23 -f 66/124/22 68/163/22 67/125/22 -f 67/127/23 68/164/23 72/128/23 -f 72/128/24 70/165/24 69/130/24 -f 70/131/25 66/124/25 65/126/25 -f 71/133/26 69/166/26 65/134/26 -f 68/136/27 66/124/27 70/137/27 -f 75/139/23 76/167/23 74/140/23 -f 74/142/28 79/168/28 80/143/28 -f 76/145/29 77/169/29 79/146/29 -f 75/148/30 78/170/30 77/149/30 -f 73/151/31 80/171/31 78/152/31 -f 80/154/25 79/172/25 77/155/25 -f 82/173/25 81/157/25 86/159/25 -f 81/157/25 83/174/25 85/158/25 -f 85/158/25 84/175/25 86/159/25 -f 89/176/23 87/160/23 91/162/23 -f 87/160/23 88/177/23 92/161/23 -f 92/161/23 90/178/23 91/162/23 -o WingRB -v -1.000001 5.000000 3.000000 -v -1.000001 3.000000 3.000000 -v -1.000001 5.000000 2.000000 -v -1.000001 3.000000 2.000000 -v -17.000000 5.000005 3.000000 -v -17.000000 3.000005 3.000000 -v -17.000000 5.000005 2.000000 -v -17.000000 3.000005 2.000000 -v -15.000001 5.000004 2.250000 -v -17.000000 5.000005 2.250000 -v -15.499996 18.500004 2.250000 -v -16.499996 18.500004 2.250000 -v -15.000001 5.000004 2.750000 -v -17.000000 5.000005 2.750000 -v -15.499996 18.500004 2.750000 -v -16.499996 18.500004 2.750000 -v -14.292894 4.292897 2.375000 -v -15.707107 5.707111 2.375000 -v -5.100502 14.192389 2.375000 -v -5.807610 14.899496 2.375000 -v -14.292894 4.292897 2.625000 -v -15.707107 5.707111 2.625000 -v -5.100502 14.192389 2.625000 -v -5.807610 14.899496 2.625000 -v -1.000001 5.000000 2.500000 -v -16.000000 5.000005 2.500000 -v -15.999996 18.000004 2.500000 -v -5.999998 14.000001 2.500000 -v -11.999997 15.000003 2.500000 -v -4.000000 8.000000 2.500000 -v -1.000001 5.000000 2.500000 -v -16.000000 5.000005 2.500000 -v -15.999996 18.000004 2.500000 -v -5.999998 14.000001 2.500000 -v -11.999997 15.000003 2.500000 -v -4.000000 8.000000 2.500000 -vt 0.057143 0.939394 -vt -0.000000 0.818182 -vt 0.057143 0.818182 -vt 0.971429 0.939394 -vt 0.057143 0.818182 -vt 0.971429 0.818182 -vt 0.057143 0.939394 -vt 0.000000 0.818182 -vt 0.971429 0.939394 -vt 0.971429 0.818182 -vt 0.971429 0.939394 -vt 0.057143 1.000000 -vt 0.057143 0.939394 -vt 0.057143 1.000000 -vt 0.971429 1.000000 -vt 0.885714 0.818182 -vt 0.971429 0.000000 -vt 1.000000 0.818182 -vt 0.914286 0.000000 -vt 1.000000 0.818182 -vt 0.885714 0.818182 -vt 0.857143 0.000000 -vt 0.885714 0.000000 -vt 0.857143 0.000000 -vt 0.857143 0.818182 -vt 0.057143 0.969697 -vt 0.000000 1.000000 -vt 0.000000 0.969697 -vt 1.000000 0.818182 -vt 0.914286 0.000000 -vt 0.971429 0.000000 -vt 0.914286 -0.000000 -vt 1.000000 0.818182 -vt 0.885714 0.818182 -vt 0.871429 0.818182 -vt 0.857143 0.000000 -vt 0.871429 0.000000 -vt 0.857143 0.000000 -vt 0.871429 0.818182 -vt 0.857143 0.818182 -vt 0.000000 1.000000 -vt 0.057143 0.984848 -vt 0.057143 1.000000 -vt 0.857143 0.818182 -vt 0.171429 0.636364 -vt 0.628571 0.212121 -vt 0.857143 0.818182 -vt 0.628571 0.212121 -vt 0.171429 0.636364 -vt -0.000000 0.939394 -vt 0.000000 0.939394 -vt 0.971429 1.000000 -vt 0.914286 -0.000000 -vt 0.971429 -0.000000 -vt 0.857143 0.818182 -vt 0.885714 0.000000 -vt 0.057143 1.000000 -vt 0.885714 0.818182 -vt 0.971429 -0.000000 -vt 0.857143 0.818182 -vt 0.871429 0.000000 -vt 0.000000 0.984848 -vt 0.857143 0.030303 -vt 0.000000 0.818182 -vt 0.285714 0.272727 -vt 0.000000 0.818182 -vt 0.857143 0.030303 -vt 0.285714 0.272727 -vn 1.0000 -0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn -0.0000 -1.0000 0.0000 -vn -0.9993 0.0370 0.0000 -vn 0.9993 0.0370 0.0000 -vn -0.6805 0.7328 0.0000 -vn 0.7328 -0.6805 0.0000 -vn 0.7071 0.7071 0.0000 -s off -f 94/179/32 95/180/32 93/181/32 -f 96/182/33 99/183/33 95/184/33 -f 100/185/34 97/186/34 99/183/34 -f 98/187/35 93/181/35 97/188/35 -f 99/189/36 93/190/36 95/191/36 -f 96/192/37 98/187/37 100/193/37 -f 102/194/33 103/195/33 101/196/33 -f 107/197/35 106/198/35 105/199/35 -f 102/194/38 108/200/38 104/201/38 -f 103/202/39 105/199/39 101/203/39 -f 104/204/36 107/205/36 103/206/36 -f 109/207/33 112/208/33 111/209/33 -f 115/210/35 114/211/35 113/212/35 -f 110/213/40 116/214/40 112/215/40 -f 111/216/41 113/217/41 109/218/41 -f 112/219/42 115/220/42 111/221/42 -f 118/222/35 122/223/35 121/224/35 -f 124/225/33 127/226/33 128/227/33 -f 94/179/32 96/228/32 95/180/32 -f 96/182/33 100/185/33 99/183/33 -f 100/185/34 98/229/34 97/186/34 -f 98/187/35 94/179/35 93/181/35 -f 99/189/36 97/230/36 93/190/36 -f 96/192/37 94/179/37 98/187/37 -f 102/194/33 104/231/33 103/195/33 -f 107/197/35 108/232/35 106/198/35 -f 102/194/38 106/233/38 108/200/38 -f 103/202/39 107/234/39 105/199/39 -f 104/204/36 108/235/36 107/205/36 -f 109/207/33 110/236/33 112/208/33 -f 115/210/35 116/237/35 114/211/35 -f 110/213/40 114/238/40 116/214/40 -f 111/216/41 115/239/41 113/217/41 -f 112/219/42 116/240/42 115/220/42 -f 119/241/35 118/222/35 121/224/35 -f 118/222/35 117/242/35 122/223/35 -f 122/223/35 120/243/35 121/224/35 -f 123/244/33 124/225/33 128/227/33 -f 124/225/33 125/245/33 127/226/33 -f 127/226/33 126/246/33 128/227/33 diff --git a/src/main/resources/assets/hbm/models/armor/steamsuit.obj b/src/main/resources/assets/hbm/models/armor/steamsuit.obj index 099bfddd6..c36978b0e 100644 --- a/src/main/resources/assets/hbm/models/armor/steamsuit.obj +++ b/src/main/resources/assets/hbm/models/armor/steamsuit.obj @@ -1,5 +1,231 @@ # Blender v2.79 (sub 0) OBJ File: 'steamsuit.blend' # www.blender.org +o RightBoot +v -5.000000 24.500002 3.000000 +v -5.000000 24.500002 -3.000000 +v 1.000000 24.500000 3.000000 +v 1.000000 24.500000 -3.000000 +v -4.000000 24.500002 -4.000000 +v 0.000000 24.500000 -4.000000 +v -0.000001 21.500000 -4.000000 +v -4.000001 21.500002 -4.000000 +v -4.500001 20.500002 2.000000 +v -4.500001 20.500002 -2.000000 +v -5.000001 20.500002 -2.000000 +v -5.000001 20.500002 2.000000 +v -5.000001 20.500002 3.000000 +v -5.000001 20.500002 -3.000000 +v -4.000001 20.500002 3.000000 +v -4.000001 20.500002 -3.000000 +v -4.000001 20.500002 2.500000 +v -4.000001 20.500002 -2.500000 +v -0.000001 20.500000 2.500000 +v -0.000001 20.500000 -2.500000 +v 0.999999 20.500000 -2.000000 +v 0.999999 20.500000 2.000000 +v 0.999999 20.500000 3.000000 +v 0.999999 20.500000 -3.000000 +v 0.499999 20.500000 -2.000000 +v 0.499999 20.500000 2.000000 +v -0.000001 20.500000 3.000000 +v -0.000001 20.500000 -3.000000 +vt -0.000000 0.425926 +vt 0.142857 0.407407 +vt -0.000000 0.407407 +vt 0.250000 0.425926 +vt 0.392857 0.407407 +vt 0.250000 0.407407 +vt 0.500000 0.425926 +vt 0.642857 0.407407 +vt 0.500000 0.407407 +vt 0.750000 0.407407 +vt 0.892857 0.425926 +vt 0.892857 0.407407 +vt 0.642857 0.259259 +vt 0.678571 0.407407 +vt 0.821429 0.407407 +vt 0.428571 0.259259 +vt 0.464286 0.407407 +vt 0.607143 0.407407 +vt 0.178571 0.407407 +vt 0.214286 0.407407 +vt 0.214286 0.259259 +vt 0.250000 0.370370 +vt 0.392857 0.259259 +vt 0.250000 0.259259 +vt 0.392857 0.370370 +vt 0.214286 0.222222 +vt 0.142857 0.425926 +vt 0.392857 0.425926 +vt 0.642857 0.425926 +vt 0.750000 0.425926 +vt 0.857143 0.407407 +vt 0.857143 0.259259 +vt 0.642857 0.407407 +vt 0.428571 0.407407 +vt 0.000000 0.259259 +vt 0.035714 0.407407 +vt -0.000000 0.407407 +vt 0.428571 0.222222 +vt 0.428571 0.000000 +vt 0.214286 -0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 1.0000 0.0000 +s off +f 26/1/1 21/2/1 22/3/1 +f 20/4/1 16/5/1 28/6/1 +f 10/7/1 12/8/1 11/9/1 +f 15/10/1 19/11/1 27/12/1 +f 1/13/2 15/14/2 27/15/2 +f 2/16/3 11/17/3 12/18/3 +f 21/19/4 24/20/4 4/21/4 +f 7/22/5 5/23/5 6/24/5 +f 7/22/6 28/6/6 16/5/6 +f 4/21/7 7/22/7 6/24/7 +f 8/25/8 2/16/8 5/23/8 +f 4/26/9 6/24/9 5/23/9 +f 26/1/1 25/27/1 21/2/1 +f 20/4/1 18/28/1 16/5/1 +f 10/7/1 9/29/1 12/8/1 +f 15/10/1 17/30/1 19/11/1 +f 23/31/2 3/32/2 27/15/2 +f 3/32/2 1/13/2 27/15/2 +f 1/13/2 13/33/2 15/14/2 +f 13/33/3 1/13/3 12/18/3 +f 1/13/3 2/16/3 12/18/3 +f 2/16/3 14/34/3 11/17/3 +f 4/21/4 3/35/4 22/36/4 +f 3/35/4 23/37/4 22/36/4 +f 22/36/4 21/19/4 4/21/4 +f 7/22/5 8/25/5 5/23/5 +f 14/34/6 8/25/6 16/5/6 +f 8/25/6 7/22/6 16/5/6 +f 7/22/6 24/20/6 28/6/6 +f 4/21/7 24/20/7 7/22/7 +f 8/25/8 14/34/8 2/16/8 +f 5/23/9 2/38/9 4/26/9 +f 2/38/9 1/39/9 4/26/9 +f 1/39/9 3/40/9 4/26/9 +o LeftBoot +v 5.000000 24.499998 3.000000 +v 5.000000 24.499998 -3.000000 +v -1.000000 24.500000 3.000000 +v -1.000000 24.500000 -3.000000 +v 4.000000 24.499998 -4.000000 +v 0.000000 24.500000 -4.000000 +v -0.000001 21.500000 -4.000000 +v 3.999999 21.499998 -4.000000 +v 4.499999 20.499998 2.000000 +v 4.499999 20.499998 -2.000000 +v 4.999999 20.499998 -2.000000 +v 4.999999 20.499998 2.000000 +v 4.999999 20.499998 3.000000 +v 4.999999 20.499998 -3.000000 +v 3.999999 20.499998 3.000000 +v 3.999999 20.499998 -3.000000 +v 3.999999 20.499998 2.500000 +v 3.999999 20.499998 -2.500000 +v -0.000001 20.500000 2.500000 +v -0.000001 20.500000 -2.500000 +v -1.000001 20.500000 -2.000000 +v -1.000001 20.500000 2.000000 +v -1.000001 20.500000 3.000000 +v -1.000001 20.500000 -3.000000 +v -0.500001 20.500000 -2.000000 +v -0.500001 20.500000 2.000000 +v -0.000001 20.500000 3.000000 +v -0.000001 20.500000 -3.000000 +vt 0.142857 0.407407 +vt -0.000000 0.425926 +vt -0.000000 0.407407 +vt 0.392857 0.407407 +vt 0.250000 0.425926 +vt 0.250000 0.407407 +vt 0.642857 0.407407 +vt 0.500000 0.425926 +vt 0.500000 0.407407 +vt 0.892857 0.425926 +vt 0.750000 0.407407 +vt 0.892857 0.407407 +vt 0.678571 0.407407 +vt 0.642857 0.407407 +vt 0.642857 0.259259 +vt 0.464286 0.407407 +vt 0.428571 0.407407 +vt 0.428571 0.259259 +vt 0.214286 0.259259 +vt 0.178571 0.407407 +vt 0.035714 0.407407 +vt 0.392857 0.259259 +vt 0.250000 0.370370 +vt 0.250000 0.259259 +vt 0.214286 0.407407 +vt 0.392857 0.370370 +vt 0.214286 0.222222 +vt 0.214286 -0.000000 +vt 0.428571 0.000000 +vt 0.142857 0.425926 +vt 0.392857 0.425926 +vt 0.642857 0.425926 +vt 0.750000 0.425926 +vt 0.857143 0.259259 +vt 0.821429 0.407407 +vt 0.857143 0.407407 +vt 0.607143 0.407407 +vt -0.000000 0.407407 +vt 0.000000 0.259259 +vt 0.428571 0.222222 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 1.0000 0.0000 +s off +f 49/41/10 54/42/10 50/43/10 +f 44/44/10 48/45/10 56/46/10 +f 40/47/10 38/48/10 39/49/10 +f 47/50/10 43/51/10 55/52/10 +f 43/53/11 41/54/11 29/55/11 +f 39/56/12 42/57/12 30/58/12 +f 32/59/13 49/60/13 50/61/13 +f 33/62/14 35/63/14 34/64/14 +f 56/46/15 52/65/15 35/63/15 +f 35/63/16 32/59/16 34/64/16 +f 30/58/17 36/66/17 33/62/17 +f 32/67/18 31/68/18 29/69/18 +f 49/41/10 53/70/10 54/42/10 +f 44/44/10 46/71/10 48/45/10 +f 40/47/10 37/72/10 38/48/10 +f 47/50/10 45/73/10 43/51/10 +f 29/55/11 31/74/11 55/75/11 +f 31/74/11 51/76/11 55/75/11 +f 55/75/11 43/53/11 29/55/11 +f 30/58/12 29/55/12 40/77/12 +f 29/55/12 41/54/12 40/77/12 +f 40/77/12 39/56/12 30/58/12 +f 51/78/13 31/79/13 50/61/13 +f 31/79/13 32/59/13 50/61/13 +f 32/59/13 52/65/13 49/60/13 +f 33/62/14 36/66/14 35/63/14 +f 35/63/15 36/66/15 44/44/15 +f 36/66/15 42/57/15 44/44/15 +f 44/44/15 56/46/15 35/63/15 +f 35/63/16 52/65/16 32/59/16 +f 30/58/17 42/57/17 36/66/17 +f 29/69/18 30/80/18 32/67/18 +f 30/80/18 33/62/18 32/67/18 +f 33/62/18 34/64/18 32/67/18 o RightArm v -4.000008 0.000002 -2.500000 v -4.000004 12.000001 -2.500000 @@ -833,451 +1059,443 @@ vn 0.0000 0.7071 -0.7071 vn 0.7071 0.7071 0.0000 vn -0.2425 0.9701 0.0000 s off -f 3/1/1 28/2/1 23/3/1 -f 17/4/2 19/5/2 42/6/2 -f 12/7/3 9/8/3 10/9/3 -f 14/10/4 15/11/4 13/12/4 -f 20/13/5 17/14/5 18/15/5 -f 22/16/4 19/17/4 20/13/4 -f 14/10/3 22/16/3 16/18/3 -f 18/15/6 1/19/6 2/20/6 -f 35/21/7 44/22/7 4/23/7 -f 25/24/6 5/25/6 7/26/6 -f 35/21/1 26/27/1 44/22/1 -f 27/28/1 1/19/1 17/4/1 -f 32/29/4 11/30/4 12/7/4 -f 29/31/6 10/9/6 9/8/6 -f 34/32/3 31/33/3 32/29/3 -f 36/34/6 33/35/6 34/32/6 -f 5/25/5 36/34/5 7/26/5 -f 38/36/5 13/37/5 15/38/5 -f 40/39/4 37/40/4 38/36/4 -f 29/31/3 40/39/3 30/41/3 -f 42/6/8 43/42/8 4/23/8 -f 27/43/5 23/3/5 28/2/5 -f 23/3/6 44/44/6 49/45/6 -f 11/46/1 29/47/1 9/48/1 -f 37/49/1 14/50/1 13/51/1 -f 37/49/9 41/52/9 42/6/9 -f 27/43/4 6/53/4 8/54/4 -f 49/45/3 26/55/3 25/24/3 -f 29/47/10 31/56/10 43/42/10 -f 54/57/4 45/58/4 46/59/4 -f 50/60/1 22/16/1 20/13/1 -f 18/15/1 50/61/1 20/13/1 -f 8/54/5 2/20/5 1/19/5 -f 3/62/1 49/45/1 25/63/1 -f 51/64/1 36/34/1 34/32/1 -f 32/29/1 51/65/1 34/32/1 -f 52/66/1 38/36/1 15/67/1 -f 30/41/1 52/68/1 10/69/1 -f 47/70/11 51/71/11 12/7/11 -f 47/72/12 48/73/12 25/24/12 -f 46/74/13 50/75/13 2/20/13 -f 45/58/14 52/76/14 15/11/14 -f 47/72/15 54/77/15 48/73/15 -f 46/74/5 48/78/5 54/79/5 -f 45/80/3 53/81/3 47/70/3 -f 59/82/5 61/83/5 60/84/5 -f 62/85/1 57/86/1 58/87/1 -f 60/84/8 56/88/8 55/89/8 -f 61/83/4 58/90/4 56/91/4 -f 59/82/6 55/92/6 57/93/6 -f 66/94/6 70/95/6 68/96/6 -f 64/97/4 67/98/4 69/99/4 -f 65/100/8 69/101/8 70/102/8 -f 63/103/1 68/104/1 67/105/1 -f 66/94/5 64/97/5 65/100/5 -f 74/106/6 78/107/6 76/108/6 -f 72/109/4 75/110/4 77/111/4 -f 73/112/8 77/113/8 78/114/8 -f 71/115/1 76/116/1 75/117/1 -f 74/106/5 72/109/5 73/112/5 -f 83/118/5 85/119/5 84/120/5 -f 86/121/1 81/122/1 82/123/1 -f 84/120/8 80/124/8 79/125/8 -f 85/119/4 82/126/4 80/127/4 -f 83/118/6 79/128/6 81/129/6 -f 90/130/6 94/131/6 92/132/6 -f 88/133/4 91/134/4 93/135/4 -f 89/136/8 93/137/8 94/138/8 -f 87/139/1 92/140/1 91/141/1 -f 90/130/5 88/133/5 89/136/5 -f 99/142/5 101/143/5 100/144/5 -f 102/145/1 97/146/1 98/147/1 -f 100/144/8 96/148/8 95/149/8 -f 101/143/4 98/150/4 96/151/4 -f 99/142/6 95/152/6 97/153/6 -f 107/154/5 109/155/5 108/156/5 -f 110/157/1 105/158/1 106/159/1 -f 108/156/8 104/160/8 103/161/8 -f 109/155/4 106/162/4 104/163/4 -f 107/154/6 103/164/6 105/165/6 -f 115/166/5 117/167/5 116/168/5 -f 118/169/1 113/170/1 114/171/1 -f 116/168/8 112/172/8 111/173/8 -f 117/167/4 114/174/4 112/175/4 -f 115/166/6 111/176/6 113/177/6 -f 122/178/6 126/179/6 124/180/6 -f 120/181/4 123/182/4 125/183/4 -f 121/184/8 125/185/8 126/186/8 -f 119/187/1 124/188/1 123/189/1 -f 122/178/5 120/181/5 121/184/5 -f 130/190/6 134/191/6 132/192/6 -f 128/193/4 131/194/4 133/195/4 -f 129/196/8 133/197/8 134/198/8 -f 127/199/1 132/200/1 131/201/1 -f 130/190/5 128/193/5 129/196/5 -f 138/202/6 142/203/6 140/204/6 -f 136/205/4 139/206/4 141/207/4 -f 137/208/8 141/209/8 142/210/8 -f 135/211/1 140/212/1 139/213/1 -f 138/202/5 136/205/5 137/208/5 -f 147/214/5 149/215/5 148/216/5 -f 150/217/1 145/218/1 146/219/1 -f 148/216/8 144/220/8 143/221/8 -f 149/215/4 146/222/4 144/223/4 -f 147/214/6 143/224/6 145/225/6 -f 155/226/3 157/227/3 156/228/3 -f 158/229/1 153/230/1 154/231/1 -f 156/228/8 152/232/8 151/233/8 -f 157/227/6 154/234/6 152/235/6 -f 155/226/4 151/236/4 153/237/4 -f 162/238/4 166/239/4 164/240/4 -f 160/241/6 163/242/6 165/243/6 -f 161/244/8 165/245/8 166/246/8 -f 159/247/1 164/248/1 163/249/1 -f 162/238/3 160/241/3 161/244/3 -f 170/250/4 174/251/4 172/252/4 -f 168/253/6 171/254/6 173/255/6 -f 169/256/8 173/257/8 174/258/8 -f 167/259/1 172/260/1 171/261/1 -f 170/250/3 168/253/3 169/256/3 -f 179/262/3 181/263/3 180/264/3 -f 182/265/1 177/266/1 178/267/1 -f 180/264/8 176/268/8 175/269/8 -f 181/263/6 178/270/6 176/271/6 -f 179/262/4 175/272/4 177/273/4 -f 187/274/3 189/275/3 188/276/3 -f 190/277/1 185/278/1 186/279/1 -f 188/276/8 184/280/8 183/281/8 -f 189/275/6 186/282/6 184/283/6 -f 187/274/4 183/284/4 185/285/4 -f 194/286/4 198/287/4 196/288/4 -f 192/289/6 195/290/6 197/291/6 -f 193/292/8 197/293/8 198/294/8 -f 191/295/1 196/296/1 195/297/1 -f 194/286/3 192/289/3 193/292/3 -f 202/298/4 206/299/4 204/300/4 -f 200/301/6 203/302/6 205/303/6 -f 201/304/8 205/305/8 206/306/8 -f 199/307/1 204/308/1 203/309/1 -f 202/298/3 200/301/3 201/304/3 -f 211/310/3 213/311/3 212/312/3 -f 214/313/1 209/314/1 210/315/1 -f 212/312/8 208/316/8 207/317/8 -f 213/311/6 210/318/6 208/319/6 -f 211/310/4 207/320/4 209/321/4 -f 218/322/3 222/323/3 220/324/3 -f 216/325/5 219/326/5 221/327/5 -f 217/328/8 221/329/8 222/330/8 -f 215/331/1 220/332/1 219/333/1 -f 218/322/6 216/325/6 217/328/6 -f 227/334/6 229/335/6 228/336/6 -f 230/337/1 225/338/1 226/339/1 -f 228/336/8 224/340/8 223/341/8 -f 229/335/5 226/342/5 224/343/5 -f 227/334/3 223/344/3 225/345/3 -f 235/346/6 237/347/6 236/348/6 -f 238/349/1 233/350/1 234/351/1 -f 236/348/8 232/352/8 231/353/8 -f 237/347/5 234/354/5 232/355/5 -f 235/346/3 231/356/3 233/357/3 -f 243/358/6 245/359/6 244/360/6 -f 246/361/1 241/362/1 242/363/1 -f 244/360/8 240/364/8 239/365/8 -f 245/359/5 242/366/5 240/367/5 -f 243/358/3 239/368/3 241/369/3 -f 250/370/3 254/371/3 252/372/3 -f 248/373/5 251/374/5 253/375/5 -f 249/376/8 253/377/8 254/378/8 -f 247/379/1 252/380/1 251/381/1 -f 250/370/6 248/373/6 249/376/6 -f 258/382/3 262/383/3 260/384/3 -f 256/385/5 259/386/5 261/387/5 -f 257/388/8 261/389/8 262/390/8 -f 255/391/1 260/392/1 259/393/1 -f 258/382/6 256/385/6 257/388/6 -f 270/394/3 274/395/3 272/396/3 -f 268/397/5 271/398/5 273/399/5 -f 269/400/8 273/401/8 274/402/8 -f 267/403/1 272/404/1 271/405/1 -f 270/394/6 268/397/6 269/400/6 -f 279/406/6 281/407/6 280/408/6 -f 282/409/1 277/410/1 278/411/1 -f 280/408/8 276/412/8 275/413/8 -f 281/407/5 278/414/5 276/415/5 -f 279/406/3 275/416/3 277/417/3 -f 286/418/3 290/419/3 288/420/3 -f 284/421/5 287/422/5 289/423/5 -f 285/424/8 289/425/8 290/426/8 -f 283/427/1 288/428/1 287/429/1 -f 286/418/6 284/421/6 285/424/6 -f 295/430/6 297/431/6 296/432/6 -f 298/433/1 293/434/1 294/435/1 -f 296/432/8 292/436/8 291/437/8 -f 297/431/5 294/438/5 292/439/5 -f 295/430/3 291/440/3 293/441/3 -f 265/442/8 302/443/8 266/444/8 -f 265/445/6 264/446/6 263/447/6 -f 300/448/4 301/449/4 299/450/4 -f 299/451/1 264/446/1 300/448/1 -f 300/448/3 266/444/3 302/443/3 -f 307/452/6 309/453/6 308/454/6 -f 310/455/1 305/456/1 306/457/1 -f 308/454/8 304/458/8 303/459/8 -f 309/453/5 306/460/5 304/461/5 -f 307/452/3 303/462/3 305/463/3 -f 314/464/3 318/465/3 316/466/3 -f 312/467/5 315/468/5 317/469/5 -f 313/470/8 317/471/8 318/472/8 -f 311/473/1 316/474/1 315/475/1 -f 314/464/6 312/467/6 313/470/6 -f 3/1/1 6/476/1 28/2/1 -f 42/6/2 4/23/2 27/28/2 -f 4/23/2 24/477/2 27/28/2 -f 27/28/2 17/4/2 42/6/2 -f 12/7/3 11/30/3 9/8/3 -f 14/10/4 16/18/4 15/11/4 -f 20/13/5 19/17/5 17/14/5 -f 22/16/4 21/478/4 19/17/4 -f 14/10/3 21/478/3 22/16/3 -f 18/15/6 17/14/6 1/19/6 -f 44/22/7 24/477/7 4/23/7 -f 4/23/7 43/42/7 35/21/7 -f 43/42/7 33/479/7 35/21/7 -f 25/24/6 26/55/6 5/25/6 -f 35/21/1 5/480/1 26/27/1 -f 27/28/1 8/54/1 1/19/1 -f 32/29/4 31/33/4 11/30/4 -f 29/31/6 30/41/6 10/9/6 -f 34/32/3 33/35/3 31/33/3 -f 36/34/6 35/481/6 33/35/6 -f 5/25/5 35/481/5 36/34/5 -f 38/36/5 37/40/5 13/37/5 -f 40/39/4 39/482/4 37/40/4 -f 29/31/3 39/482/3 40/39/3 -f 42/6/8 41/52/8 43/42/8 -f 27/43/5 24/483/5 23/3/5 -f 23/3/6 24/483/6 44/44/6 -f 11/46/1 31/56/1 29/47/1 -f 37/49/1 21/484/1 14/50/1 -f 42/6/9 19/5/9 21/484/9 -f 37/49/9 39/485/9 41/52/9 -f 42/6/9 21/484/9 37/49/9 -f 27/43/4 28/2/4 6/53/4 -f 49/45/3 44/44/3 26/55/3 -f 31/56/10 33/479/10 43/42/10 -f 43/42/10 41/52/10 29/47/10 -f 41/52/10 39/485/10 29/47/10 -f 54/57/4 53/486/4 45/58/4 -f 50/60/1 16/487/1 22/16/1 -f 18/15/1 2/488/1 50/61/1 -f 8/54/5 6/53/5 2/20/5 -f 3/62/1 23/3/1 49/45/1 -f 51/64/1 7/489/1 36/34/1 -f 32/29/1 12/490/1 51/65/1 -f 52/66/1 40/39/1 38/36/1 -f 30/41/1 40/39/1 52/68/1 -f 12/7/11 10/9/11 47/70/11 -f 10/9/11 52/491/11 45/80/11 -f 47/70/11 10/9/11 45/80/11 -f 3/492/12 25/24/12 48/73/12 -f 25/24/12 7/26/12 47/72/12 -f 7/26/12 51/493/12 47/72/12 -f 2/20/13 6/53/13 46/74/13 -f 6/53/13 3/494/13 48/78/13 -f 46/74/13 6/53/13 48/78/13 -f 15/11/14 16/18/14 45/58/14 -f 16/18/14 50/495/14 46/59/14 -f 45/58/14 16/18/14 46/59/14 -f 47/72/15 53/496/15 54/77/15 -f 59/82/5 62/85/5 61/83/5 -f 62/85/1 59/82/1 57/86/1 -f 60/84/8 61/83/8 56/88/8 -f 61/83/4 62/85/4 58/90/4 -f 59/82/6 60/84/6 55/92/6 -f 66/94/6 65/100/6 70/95/6 -f 64/97/4 63/103/4 67/98/4 -f 65/100/8 64/97/8 69/101/8 -f 63/103/1 66/94/1 68/104/1 -f 66/94/5 63/103/5 64/97/5 -f 74/106/6 73/112/6 78/107/6 -f 72/109/4 71/115/4 75/110/4 -f 73/112/8 72/109/8 77/113/8 -f 71/115/1 74/106/1 76/116/1 -f 74/106/5 71/115/5 72/109/5 -f 83/118/5 86/121/5 85/119/5 -f 86/121/1 83/118/1 81/122/1 -f 84/120/8 85/119/8 80/124/8 -f 85/119/4 86/121/4 82/126/4 -f 83/118/6 84/120/6 79/128/6 -f 90/130/6 89/136/6 94/131/6 -f 88/133/4 87/139/4 91/134/4 -f 89/136/8 88/133/8 93/137/8 -f 87/139/1 90/130/1 92/140/1 -f 90/130/5 87/139/5 88/133/5 -f 99/142/5 102/145/5 101/143/5 -f 102/145/1 99/142/1 97/146/1 -f 100/144/8 101/143/8 96/148/8 -f 101/143/4 102/145/4 98/150/4 -f 99/142/6 100/144/6 95/152/6 -f 107/154/5 110/157/5 109/155/5 -f 110/157/1 107/154/1 105/158/1 -f 108/156/8 109/155/8 104/160/8 -f 109/155/4 110/157/4 106/162/4 -f 107/154/6 108/156/6 103/164/6 -f 115/166/5 118/169/5 117/167/5 -f 118/169/1 115/166/1 113/170/1 -f 116/168/8 117/167/8 112/172/8 -f 117/167/4 118/169/4 114/174/4 -f 115/166/6 116/168/6 111/176/6 -f 122/178/6 121/184/6 126/179/6 -f 120/181/4 119/187/4 123/182/4 -f 121/184/8 120/181/8 125/185/8 -f 119/187/1 122/178/1 124/188/1 -f 122/178/5 119/187/5 120/181/5 -f 130/190/6 129/196/6 134/191/6 -f 128/193/4 127/199/4 131/194/4 -f 129/196/8 128/193/8 133/197/8 -f 127/199/1 130/190/1 132/200/1 -f 130/190/5 127/199/5 128/193/5 -f 138/202/6 137/208/6 142/203/6 -f 136/205/4 135/211/4 139/206/4 -f 137/208/8 136/205/8 141/209/8 -f 135/211/1 138/202/1 140/212/1 -f 138/202/5 135/211/5 136/205/5 -f 147/214/5 150/217/5 149/215/5 -f 150/217/1 147/214/1 145/218/1 -f 148/216/8 149/215/8 144/220/8 -f 149/215/4 150/217/4 146/222/4 -f 147/214/6 148/216/6 143/224/6 -f 155/226/3 158/229/3 157/227/3 -f 158/229/1 155/226/1 153/230/1 -f 156/228/8 157/227/8 152/232/8 -f 157/227/6 158/229/6 154/234/6 -f 155/226/4 156/228/4 151/236/4 -f 162/238/4 161/244/4 166/239/4 -f 160/241/6 159/247/6 163/242/6 -f 161/244/8 160/241/8 165/245/8 -f 159/247/1 162/238/1 164/248/1 -f 162/238/3 159/247/3 160/241/3 -f 170/250/4 169/256/4 174/251/4 -f 168/253/6 167/259/6 171/254/6 -f 169/256/8 168/253/8 173/257/8 -f 167/259/1 170/250/1 172/260/1 -f 170/250/3 167/259/3 168/253/3 -f 179/262/3 182/265/3 181/263/3 -f 182/265/1 179/262/1 177/266/1 -f 180/264/8 181/263/8 176/268/8 -f 181/263/6 182/265/6 178/270/6 -f 179/262/4 180/264/4 175/272/4 -f 187/274/3 190/277/3 189/275/3 -f 190/277/1 187/274/1 185/278/1 -f 188/276/8 189/275/8 184/280/8 -f 189/275/6 190/277/6 186/282/6 -f 187/274/4 188/276/4 183/284/4 -f 194/286/4 193/292/4 198/287/4 -f 192/289/6 191/295/6 195/290/6 -f 193/292/8 192/289/8 197/293/8 -f 191/295/1 194/286/1 196/296/1 -f 194/286/3 191/295/3 192/289/3 -f 202/298/4 201/304/4 206/299/4 -f 200/301/6 199/307/6 203/302/6 -f 201/304/8 200/301/8 205/305/8 -f 199/307/1 202/298/1 204/308/1 -f 202/298/3 199/307/3 200/301/3 -f 211/310/3 214/313/3 213/311/3 -f 214/313/1 211/310/1 209/314/1 -f 212/312/8 213/311/8 208/316/8 -f 213/311/6 214/313/6 210/318/6 -f 211/310/4 212/312/4 207/320/4 -f 218/322/3 217/328/3 222/323/3 -f 216/325/5 215/331/5 219/326/5 -f 217/328/8 216/325/8 221/329/8 -f 215/331/1 218/322/1 220/332/1 -f 218/322/6 215/331/6 216/325/6 -f 227/334/6 230/337/6 229/335/6 -f 230/337/1 227/334/1 225/338/1 -f 228/336/8 229/335/8 224/340/8 -f 229/335/5 230/337/5 226/342/5 -f 227/334/3 228/336/3 223/344/3 -f 235/346/6 238/349/6 237/347/6 -f 238/349/1 235/346/1 233/350/1 -f 236/348/8 237/347/8 232/352/8 -f 237/347/5 238/349/5 234/354/5 -f 235/346/3 236/348/3 231/356/3 -f 243/358/6 246/361/6 245/359/6 -f 246/361/1 243/358/1 241/362/1 -f 244/360/8 245/359/8 240/364/8 -f 245/359/5 246/361/5 242/366/5 -f 243/358/3 244/360/3 239/368/3 -f 250/370/3 249/376/3 254/371/3 -f 248/373/5 247/379/5 251/374/5 -f 249/376/8 248/373/8 253/377/8 -f 247/379/1 250/370/1 252/380/1 -f 250/370/6 247/379/6 248/373/6 -f 258/382/3 257/388/3 262/383/3 -f 256/385/5 255/391/5 259/386/5 -f 257/388/8 256/385/8 261/389/8 -f 255/391/1 258/382/1 260/392/1 -f 258/382/6 255/391/6 256/385/6 -f 270/394/3 269/400/3 274/395/3 -f 268/397/5 267/403/5 271/398/5 -f 269/400/8 268/397/8 273/401/8 -f 267/403/1 270/394/1 272/404/1 -f 270/394/6 267/403/6 268/397/6 -f 279/406/6 282/409/6 281/407/6 -f 282/409/1 279/406/1 277/410/1 -f 280/408/8 281/407/8 276/412/8 -f 281/407/5 282/409/5 278/414/5 -f 279/406/3 280/408/3 275/416/3 -f 286/418/3 285/424/3 290/419/3 -f 284/421/5 283/427/5 287/422/5 -f 285/424/8 284/421/8 289/425/8 -f 283/427/1 286/418/1 288/428/1 -f 286/418/6 283/427/6 284/421/6 -f 295/430/6 298/433/6 297/431/6 -f 298/433/1 295/430/1 293/434/1 -f 296/432/8 297/431/8 292/436/8 -f 297/431/5 298/433/5 294/438/5 -f 295/430/3 296/432/3 291/440/3 -f 265/442/8 301/497/8 302/443/8 -f 265/445/6 266/444/6 264/446/6 -f 300/448/4 302/443/4 301/449/4 -f 299/451/1 263/498/1 264/446/1 -f 300/448/3 264/446/3 266/444/3 -f 307/452/6 310/455/6 309/453/6 -f 310/455/1 307/452/1 305/456/1 -f 308/454/8 309/453/8 304/458/8 -f 309/453/5 310/455/5 306/460/5 -f 307/452/3 308/454/3 303/462/3 -f 314/464/3 313/470/3 318/465/3 -f 312/467/5 311/473/5 315/468/5 -f 313/470/8 312/467/8 317/471/8 -f 311/473/1 314/464/1 316/474/1 -f 314/464/6 311/473/6 312/467/6 +f 59/81/19 84/82/19 79/83/19 +f 73/84/20 75/85/20 98/86/20 +f 68/87/21 65/88/21 66/89/21 +f 70/90/22 71/91/22 69/92/22 +f 76/93/23 73/94/23 74/95/23 +f 78/96/22 75/97/22 76/93/22 +f 70/90/21 78/96/21 72/98/21 +f 74/95/24 57/99/24 58/100/24 +f 91/101/25 100/102/25 60/103/25 +f 81/104/24 61/105/24 63/106/24 +f 91/101/19 82/107/19 100/102/19 +f 83/108/19 57/99/19 73/84/19 +f 88/109/22 67/110/22 68/87/22 +f 85/111/24 66/89/24 65/88/24 +f 90/112/21 87/113/21 88/109/21 +f 92/114/24 89/115/24 90/112/24 +f 61/105/23 92/114/23 63/106/23 +f 94/116/23 69/117/23 71/118/23 +f 96/119/22 93/120/22 94/116/22 +f 85/111/21 96/119/21 86/121/21 +f 98/86/26 99/122/26 60/103/26 +f 83/123/23 79/83/23 84/82/23 +f 79/83/24 100/124/24 105/125/24 +f 67/126/19 85/127/19 65/128/19 +f 93/129/19 70/130/19 69/131/19 +f 93/129/27 97/132/27 98/86/27 +f 83/123/22 62/133/22 64/134/22 +f 105/125/21 82/135/21 81/104/21 +f 85/127/28 87/136/28 99/122/28 +f 110/137/22 101/138/22 102/139/22 +f 106/140/19 78/96/19 76/93/19 +f 74/95/19 106/141/19 76/93/19 +f 64/134/23 58/100/23 57/99/23 +f 59/142/19 105/125/19 81/143/19 +f 107/144/19 92/114/19 90/112/19 +f 88/109/19 107/145/19 90/112/19 +f 108/146/19 94/116/19 71/147/19 +f 86/121/19 108/148/19 66/149/19 +f 103/150/29 107/151/29 68/87/29 +f 103/152/30 104/153/30 81/104/30 +f 102/154/31 106/155/31 58/100/31 +f 101/138/32 108/156/32 71/91/32 +f 103/152/33 110/157/33 104/153/33 +f 102/154/23 104/158/23 110/159/23 +f 101/160/21 109/161/21 103/150/21 +f 115/162/23 117/163/23 116/164/23 +f 118/165/19 113/166/19 114/167/19 +f 116/164/26 112/168/26 111/169/26 +f 117/163/22 114/170/22 112/171/22 +f 115/162/24 111/172/24 113/173/24 +f 122/174/24 126/175/24 124/176/24 +f 120/177/22 123/178/22 125/179/22 +f 121/180/26 125/181/26 126/182/26 +f 119/183/19 124/184/19 123/185/19 +f 122/174/23 120/177/23 121/180/23 +f 130/186/24 134/187/24 132/188/24 +f 128/189/22 131/190/22 133/191/22 +f 129/192/26 133/193/26 134/194/26 +f 127/195/19 132/196/19 131/197/19 +f 130/186/23 128/189/23 129/192/23 +f 139/198/23 141/199/23 140/200/23 +f 142/201/19 137/202/19 138/203/19 +f 140/200/26 136/204/26 135/205/26 +f 141/199/22 138/206/22 136/207/22 +f 139/198/24 135/208/24 137/209/24 +f 146/210/24 150/211/24 148/212/24 +f 144/213/22 147/214/22 149/215/22 +f 145/216/26 149/217/26 150/218/26 +f 143/219/19 148/220/19 147/221/19 +f 146/210/23 144/213/23 145/216/23 +f 155/222/23 157/223/23 156/224/23 +f 158/225/19 153/226/19 154/227/19 +f 156/224/26 152/228/26 151/229/26 +f 157/223/22 154/230/22 152/231/22 +f 155/222/24 151/232/24 153/233/24 +f 163/234/23 165/235/23 164/236/23 +f 166/237/19 161/238/19 162/239/19 +f 164/236/26 160/240/26 159/241/26 +f 165/235/22 162/242/22 160/243/22 +f 163/234/24 159/244/24 161/245/24 +f 171/246/23 173/247/23 172/248/23 +f 174/249/19 169/250/19 170/251/19 +f 172/248/26 168/252/26 167/253/26 +f 173/247/22 170/254/22 168/255/22 +f 171/246/24 167/256/24 169/257/24 +f 178/258/24 182/259/24 180/260/24 +f 176/261/22 179/262/22 181/263/22 +f 177/264/26 181/265/26 182/266/26 +f 175/267/19 180/268/19 179/269/19 +f 178/258/23 176/261/23 177/264/23 +f 186/270/24 190/271/24 188/272/24 +f 184/273/22 187/274/22 189/275/22 +f 185/276/26 189/277/26 190/278/26 +f 183/279/19 188/280/19 187/281/19 +f 186/270/23 184/273/23 185/276/23 +f 194/282/24 198/283/24 196/284/24 +f 192/285/22 195/286/22 197/287/22 +f 193/288/26 197/289/26 198/290/26 +f 191/291/19 196/292/19 195/293/19 +f 194/282/23 192/285/23 193/288/23 +f 203/294/23 205/295/23 204/296/23 +f 206/297/19 201/298/19 202/299/19 +f 204/296/26 200/300/26 199/301/26 +f 205/295/22 202/302/22 200/303/22 +f 203/294/24 199/304/24 201/305/24 +f 211/306/21 213/307/21 212/308/21 +f 214/309/19 209/310/19 210/311/19 +f 212/308/26 208/312/26 207/313/26 +f 213/307/24 210/314/24 208/315/24 +f 211/306/22 207/316/22 209/317/22 +f 218/318/22 222/319/22 220/320/22 +f 216/321/24 219/322/24 221/323/24 +f 217/324/26 221/325/26 222/326/26 +f 215/327/19 220/328/19 219/329/19 +f 218/318/21 216/321/21 217/324/21 +f 226/330/22 230/331/22 228/332/22 +f 224/333/24 227/334/24 229/335/24 +f 225/336/26 229/337/26 230/338/26 +f 223/339/19 228/340/19 227/341/19 +f 226/330/21 224/333/21 225/336/21 +f 235/342/21 237/343/21 236/344/21 +f 238/345/19 233/346/19 234/347/19 +f 236/344/26 232/348/26 231/349/26 +f 237/343/24 234/350/24 232/351/24 +f 235/342/22 231/352/22 233/353/22 +f 243/354/21 245/355/21 244/356/21 +f 246/357/19 241/358/19 242/359/19 +f 244/356/26 240/360/26 239/361/26 +f 245/355/24 242/362/24 240/363/24 +f 243/354/22 239/364/22 241/365/22 +f 250/366/22 254/367/22 252/368/22 +f 248/369/24 251/370/24 253/371/24 +f 249/372/26 253/373/26 254/374/26 +f 247/375/19 252/376/19 251/377/19 +f 250/366/21 248/369/21 249/372/21 +f 258/378/22 262/379/22 260/380/22 +f 256/381/24 259/382/24 261/383/24 +f 257/384/26 261/385/26 262/386/26 +f 255/387/19 260/388/19 259/389/19 +f 258/378/21 256/381/21 257/384/21 +f 267/390/21 269/391/21 268/392/21 +f 270/393/19 265/394/19 266/395/19 +f 268/392/26 264/396/26 263/397/26 +f 269/391/24 266/398/24 264/399/24 +f 267/390/22 263/400/22 265/401/22 +f 274/402/21 278/403/21 276/404/21 +f 272/405/23 275/406/23 277/407/23 +f 273/408/26 277/409/26 278/410/26 +f 271/411/19 276/412/19 275/413/19 +f 274/402/24 272/405/24 273/408/24 +f 283/414/24 285/415/24 284/416/24 +f 286/417/19 281/418/19 282/419/19 +f 284/416/26 280/420/26 279/421/26 +f 285/415/23 282/422/23 280/423/23 +f 283/414/21 279/424/21 281/425/21 +f 291/426/24 293/427/24 292/428/24 +f 294/429/19 289/430/19 290/431/19 +f 292/428/26 288/432/26 287/433/26 +f 293/427/23 290/434/23 288/435/23 +f 291/426/21 287/436/21 289/437/21 +f 299/438/24 301/439/24 300/440/24 +f 302/441/19 297/442/19 298/443/19 +f 300/440/26 296/444/26 295/445/26 +f 301/439/23 298/446/23 296/447/23 +f 299/438/21 295/448/21 297/449/21 +f 306/450/21 310/451/21 308/452/21 +f 304/453/23 307/454/23 309/455/23 +f 305/456/26 309/457/26 310/458/26 +f 303/459/19 308/460/19 307/461/19 +f 306/450/24 304/453/24 305/456/24 +f 314/462/21 318/463/21 316/464/21 +f 312/465/23 315/466/23 317/467/23 +f 313/468/26 317/469/26 318/470/26 +f 311/471/19 316/472/19 315/473/19 +f 314/462/24 312/465/24 313/468/24 +f 326/474/21 330/475/21 328/476/21 +f 324/477/23 327/478/23 329/479/23 +f 325/480/26 329/481/26 330/482/26 +f 323/483/19 328/484/19 327/485/19 +f 326/474/24 324/477/24 325/480/24 +f 335/486/24 337/487/24 336/488/24 +f 338/489/19 333/490/19 334/491/19 +f 336/488/26 332/492/26 331/493/26 +f 337/487/23 334/494/23 332/495/23 +f 335/486/21 331/496/21 333/497/21 +f 342/498/21 346/499/21 344/500/21 +f 340/501/23 343/502/23 345/503/23 +f 341/504/26 345/505/26 346/506/26 +f 339/507/19 344/508/19 343/509/19 +f 342/498/24 340/501/24 341/504/24 +f 351/510/24 353/511/24 352/512/24 +f 354/513/19 349/514/19 350/515/19 +f 352/512/26 348/516/26 347/517/26 +f 353/511/23 350/518/23 348/519/23 +f 351/510/21 347/520/21 349/521/21 +f 321/522/26 358/523/26 322/524/26 +f 321/525/24 320/526/24 319/527/24 +f 356/528/22 357/529/22 355/530/22 +f 355/531/19 320/526/19 356/528/19 +f 356/528/21 322/524/21 358/523/21 +f 363/532/24 365/533/24 364/534/24 +f 366/535/19 361/536/19 362/537/19 +f 364/534/26 360/538/26 359/539/26 +f 365/533/23 362/540/23 360/541/23 +f 363/532/21 359/542/21 361/543/21 +f 370/544/21 374/545/21 372/546/21 +f 368/547/23 371/548/23 373/549/23 +f 369/550/26 373/551/26 374/552/26 +f 367/553/19 372/554/19 371/555/19 +f 370/544/24 368/547/24 369/550/24 +f 59/81/19 62/556/19 84/82/19 +f 98/86/20 60/103/20 83/108/20 +f 60/103/20 80/557/20 83/108/20 +f 83/108/20 73/84/20 98/86/20 +f 68/87/21 67/110/21 65/88/21 +f 70/90/22 72/98/22 71/91/22 +f 76/93/23 75/97/23 73/94/23 +f 78/96/22 77/558/22 75/97/22 +f 70/90/21 77/558/21 78/96/21 +f 74/95/24 73/94/24 57/99/24 +f 100/102/25 80/557/25 60/103/25 +f 60/103/25 99/122/25 91/101/25 +f 99/122/25 89/559/25 91/101/25 +f 81/104/24 82/135/24 61/105/24 +f 91/101/19 61/560/19 82/107/19 +f 83/108/19 64/134/19 57/99/19 +f 88/109/22 87/113/22 67/110/22 +f 85/111/24 86/121/24 66/89/24 +f 90/112/21 89/115/21 87/113/21 +f 92/114/24 91/561/24 89/115/24 +f 61/105/23 91/561/23 92/114/23 +f 94/116/23 93/120/23 69/117/23 +f 96/119/22 95/562/22 93/120/22 +f 85/111/21 95/562/21 96/119/21 +f 98/86/26 97/132/26 99/122/26 +f 83/123/23 80/563/23 79/83/23 +f 79/83/24 80/563/24 100/124/24 +f 67/126/19 87/136/19 85/127/19 +f 93/129/19 77/564/19 70/130/19 +f 98/86/27 75/85/27 77/564/27 +f 93/129/27 95/565/27 97/132/27 +f 98/86/27 77/564/27 93/129/27 +f 83/123/22 84/82/22 62/133/22 +f 105/125/21 100/124/21 82/135/21 +f 87/136/28 89/559/28 99/122/28 +f 99/122/28 97/132/28 85/127/28 +f 97/132/28 95/565/28 85/127/28 +f 110/137/22 109/566/22 101/138/22 +f 106/140/19 72/567/19 78/96/19 +f 74/95/19 58/568/19 106/141/19 +f 64/134/23 62/133/23 58/100/23 +f 59/142/19 79/83/19 105/125/19 +f 107/144/19 63/569/19 92/114/19 +f 88/109/19 68/570/19 107/145/19 +f 108/146/19 96/119/19 94/116/19 +f 86/121/19 96/119/19 108/148/19 +f 68/87/29 66/89/29 103/150/29 +f 66/89/29 108/571/29 101/160/29 +f 103/150/29 66/89/29 101/160/29 +f 59/572/30 81/104/30 104/153/30 +f 81/104/30 63/106/30 103/152/30 +f 63/106/30 107/573/30 103/152/30 +f 58/100/31 62/133/31 102/154/31 +f 62/133/31 59/574/31 104/158/31 +f 102/154/31 62/133/31 104/158/31 +f 71/91/32 72/98/32 101/138/32 +f 72/98/32 106/575/32 102/139/32 +f 101/138/32 72/98/32 102/139/32 +f 103/152/33 109/576/33 110/157/33 +f 115/162/23 118/165/23 117/163/23 +f 118/165/19 115/162/19 113/166/19 +f 116/164/26 117/163/26 112/168/26 +f 117/163/22 118/165/22 114/170/22 +f 115/162/24 116/164/24 111/172/24 +f 122/174/24 121/180/24 126/175/24 +f 120/177/22 119/183/22 123/178/22 +f 121/180/26 120/177/26 125/181/26 +f 119/183/19 122/174/19 124/184/19 +f 122/174/23 119/183/23 120/177/23 +f 130/186/24 129/192/24 134/187/24 +f 128/189/22 127/195/22 131/190/22 +f 129/192/26 128/189/26 133/193/26 +f 127/195/19 130/186/19 132/196/19 +f 130/186/23 127/195/23 128/189/23 +f 139/198/23 142/201/23 141/199/23 +f 142/201/19 139/198/19 137/202/19 +f 140/200/26 141/199/26 136/204/26 +f 141/199/22 142/201/22 138/206/22 +f 139/198/24 140/200/24 135/208/24 +f 146/210/24 145/216/24 150/211/24 +f 144/213/22 143/219/22 147/214/22 +f 145/216/26 144/213/26 149/217/26 +f 143/219/19 146/210/19 148/220/19 +f 146/210/23 143/219/23 144/213/23 +f 155/222/23 158/225/23 157/223/23 +f 158/225/19 155/222/19 153/226/19 +f 156/224/26 157/223/26 152/228/26 +f 157/223/22 158/225/22 154/230/22 +f 155/222/24 156/224/24 151/232/24 +f 163/234/23 166/237/23 165/235/23 +f 166/237/19 163/234/19 161/238/19 +f 164/236/26 165/235/26 160/240/26 +f 165/235/22 166/237/22 162/242/22 +f 163/234/24 164/236/24 159/244/24 +f 171/246/23 174/249/23 173/247/23 +f 174/249/19 171/246/19 169/250/19 +f 172/248/26 173/247/26 168/252/26 +f 173/247/22 174/249/22 170/254/22 +f 171/246/24 172/248/24 167/256/24 +f 178/258/24 177/264/24 182/259/24 +f 176/261/22 175/267/22 179/262/22 +f 177/264/26 176/261/26 181/265/26 +f 175/267/19 178/258/19 180/268/19 +f 178/258/23 175/267/23 176/261/23 +f 186/270/24 185/276/24 190/271/24 +f 184/273/22 183/279/22 187/274/22 +f 185/276/26 184/273/26 189/277/26 +f 183/279/19 186/270/19 188/280/19 +f 186/270/23 183/279/23 184/273/23 +f 194/282/24 193/288/24 198/283/24 +f 192/285/22 191/291/22 195/286/22 +f 193/288/26 192/285/26 197/289/26 +f 191/291/19 194/282/19 196/292/19 +f 194/282/23 191/291/23 192/285/23 +f 203/294/23 206/297/23 205/295/23 +f 206/297/19 203/294/19 201/298/19 +f 204/296/26 205/295/26 200/300/26 +f 205/295/22 206/297/22 202/302/22 +f 203/294/24 204/296/24 199/304/24 +f 211/306/21 214/309/21 213/307/21 +f 214/309/19 211/306/19 209/310/19 +f 212/308/26 213/307/26 208/312/26 +f 213/307/24 214/309/24 210/314/24 +f 211/306/22 212/308/22 207/316/22 +f 218/318/22 217/324/22 222/319/22 +f 216/321/24 215/327/24 219/322/24 +f 217/324/26 216/321/26 221/325/26 +f 215/327/19 218/318/19 220/328/19 +f 218/318/21 215/327/21 216/321/21 +f 226/330/22 225/336/22 230/331/22 +f 224/333/24 223/339/24 227/334/24 +f 225/336/26 224/333/26 229/337/26 +f 223/339/19 226/330/19 228/340/19 +f 226/330/21 223/339/21 224/333/21 +f 235/342/21 238/345/21 237/343/21 +f 238/345/19 235/342/19 233/346/19 +f 236/344/26 237/343/26 232/348/26 +f 237/343/24 238/345/24 234/350/24 +f 235/342/22 236/344/22 231/352/22 +f 243/354/21 246/357/21 245/355/21 +f 246/357/19 243/354/19 241/358/19 +f 244/356/26 245/355/26 240/360/26 +f 245/355/24 246/357/24 242/362/24 +f 243/354/22 244/356/22 239/364/22 +f 250/366/22 249/372/22 254/367/22 +f 248/369/24 247/375/24 251/370/24 +f 249/372/26 248/369/26 253/373/26 +f 247/375/19 250/366/19 252/376/19 +f 250/366/21 247/375/21 248/369/21 +f 258/378/22 257/384/22 262/379/22 +f 256/381/24 255/387/24 259/382/24 +f 257/384/26 256/381/26 261/385/26 +f 255/387/19 258/378/19 260/388/19 +f 258/378/21 255/387/21 256/381/21 +f 267/390/21 270/393/21 269/391/21 +f 270/393/19 267/390/19 265/394/19 +f 268/392/26 269/391/26 264/396/26 +f 269/391/24 270/393/24 266/398/24 +f 267/390/22 268/392/22 263/400/22 +f 274/402/21 273/408/21 278/403/21 +f 272/405/23 271/411/23 275/406/23 +f 273/408/26 272/405/26 277/409/26 +f 271/411/19 274/402/19 276/412/19 +f 274/402/24 271/411/24 272/405/24 +f 283/414/24 286/417/24 285/415/24 +f 286/417/19 283/414/19 281/418/19 +f 284/416/26 285/415/26 280/420/26 +f 285/415/23 286/417/23 282/422/23 +f 283/414/21 284/416/21 279/424/21 +f 291/426/24 294/429/24 293/427/24 +f 294/429/19 291/426/19 289/430/19 +f 292/428/26 293/427/26 288/432/26 +f 293/427/23 294/429/23 290/434/23 +f 291/426/21 292/428/21 287/436/21 +f 299/438/24 302/441/24 301/439/24 +f 302/441/19 299/438/19 297/442/19 +f 300/440/26 301/439/26 296/444/26 +f 301/439/23 302/441/23 298/446/23 +f 299/438/21 300/440/21 295/448/21 +f 306/450/21 305/456/21 310/451/21 +f 304/453/23 303/459/23 307/454/23 +f 305/456/26 304/453/26 309/457/26 +f 303/459/19 306/450/19 308/460/19 +f 306/450/24 303/459/24 304/453/24 +f 314/462/21 313/468/21 318/463/21 +f 312/465/23 311/471/23 315/466/23 +f 313/468/26 312/465/26 317/469/26 +f 311/471/19 314/462/19 316/472/19 +f 314/462/24 311/471/24 312/465/24 +f 326/474/21 325/480/21 330/475/21 +f 324/477/23 323/483/23 327/478/23 +f 325/480/26 324/477/26 329/481/26 +f 323/483/19 326/474/19 328/484/19 +f 326/474/24 323/483/24 324/477/24 +f 335/486/24 338/489/24 337/487/24 +f 338/489/19 335/486/19 333/490/19 +f 336/488/26 337/487/26 332/492/26 +f 337/487/23 338/489/23 334/494/23 +f 335/486/21 336/488/21 331/496/21 +f 342/498/21 341/504/21 346/499/21 +f 340/501/23 339/507/23 343/502/23 +f 341/504/26 340/501/26 345/505/26 +f 339/507/19 342/498/19 344/508/19 +f 342/498/24 339/507/24 340/501/24 +f 351/510/24 354/513/24 353/511/24 +f 354/513/19 351/510/19 349/514/19 +f 352/512/26 353/511/26 348/516/26 +f 353/511/23 354/513/23 350/518/23 +f 351/510/21 352/512/21 347/520/21 +f 321/522/26 357/577/26 358/523/26 +f 321/525/24 322/524/24 320/526/24 +f 356/528/22 358/523/22 357/529/22 +f 355/531/19 319/578/19 320/526/19 +f 356/528/21 320/526/21 322/524/21 +f 363/532/24 366/535/24 365/533/24 +f 366/535/19 363/532/19 361/536/19 +f 364/534/26 365/533/26 360/538/26 +f 365/533/23 366/535/23 362/540/23 +f 363/532/21 364/534/21 359/542/21 +f 370/544/21 369/550/21 374/545/21 +f 368/547/23 367/553/23 371/548/23 +f 369/550/26 368/547/26 373/551/26 +f 367/553/19 370/544/19 372/554/19 +f 370/544/24 367/553/24 368/547/24 o RightLeg -v -5.000000 24.500002 3.000000 -v -5.000000 24.500002 -3.000000 -v 1.000000 24.500000 3.000000 -v 1.000000 24.500000 -3.000000 -v -4.000000 24.500002 -4.000000 -v 0.000000 24.500000 -4.000000 v -4.000004 11.000001 -2.000000 v -4.000004 11.000001 2.000000 -v -0.000001 21.500000 -4.000000 -v -4.000001 21.500002 -4.000000 v -4.500004 12.000002 2.000000 v -4.500004 12.000002 -2.000000 v -5.000004 12.000002 -2.000000 @@ -1501,18 +1719,10 @@ vt 0.392857 0.796296 vt 0.392857 0.759259 vt 0.250000 0.759259 vt 0.250000 0.796296 -vt -0.000000 0.425926 -vt 0.142857 0.407407 -vt -0.000000 0.407407 -vt 0.250000 0.425926 -vt 0.392857 0.407407 -vt 0.250000 0.407407 -vt 0.500000 0.425926 -vt 0.642857 0.407407 -vt 0.500000 0.407407 vt 0.750000 0.740741 vt 0.732143 0.425926 vt 0.732143 0.740741 +vt 0.500000 0.425926 vt 0.482143 0.740741 vt 0.500000 0.740741 vt 0.946429 0.425926 @@ -1531,6 +1741,7 @@ vt 0.250000 0.740741 vt 0.392857 0.740741 vt 0.482143 0.425926 vt 0.446429 0.740741 +vt 0.250000 0.425926 vt 0.160714 0.425926 vt 0.160714 0.740741 vt 0.696429 0.740741 @@ -1547,23 +1758,8 @@ vt 1.000000 0.740741 vt 0.410714 0.425926 vt 0.642857 0.425926 vt 0.000000 0.740741 -vt 0.750000 0.407407 -vt 0.892857 0.407407 -vt 0.642857 0.259259 -vt 0.678571 0.407407 -vt 0.821429 0.407407 -vt 0.428571 0.259259 -vt 0.464286 0.407407 -vt 0.607143 0.407407 -vt 0.178571 0.407407 -vt 0.214286 0.407407 -vt 0.214286 0.259259 -vt 0.250000 0.370370 -vt 0.392857 0.259259 -vt 0.250000 0.259259 vt 0.250000 0.981481 vt 0.392857 1.000000 -vt 0.392857 0.370370 vt 0.196429 0.796296 vt 0.214286 0.944444 vt 0.214286 0.796296 @@ -1824,361 +2020,315 @@ vt 0.071429 0.759259 vt 0.017857 0.796296 vt -0.000000 0.759259 vt -0.000000 0.796296 -vt 0.214286 0.222222 vt 0.214286 0.981481 vt 0.428571 0.981481 vt 0.214286 0.759259 vt 0.910714 0.425926 vt 0.232143 0.425926 -vt 0.857143 0.407407 -vt 0.857143 0.259259 -vt 0.642857 0.407407 -vt 0.428571 0.407407 -vt 0.000000 0.259259 -vt 0.035714 0.407407 -vt -0.000000 0.407407 +vt -0.000000 0.425926 vt 0.250000 1.000000 vt 0.196429 0.944444 vt 0.589286 0.740741 vt 0.446429 0.759259 -vt 0.428571 0.222222 -vt 0.428571 0.000000 -vt 0.214286 -0.000000 vn -0.0000 -0.7071 0.7071 vn -0.7071 -0.7071 0.0000 vn -0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 0.0000 vn 1.0000 -0.0000 0.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.7071 -0.0000 -0.7071 -vn -0.7071 0.0000 -0.7071 +vn -0.0000 -1.0000 0.0000 vn 0.7071 -0.7071 0.0000 vn 0.0000 0.4472 -0.8944 vn -0.4472 0.0000 -0.8944 vn -0.0000 -0.4472 -0.8944 vn 0.4472 -0.0000 -0.8944 s off -f 335/499/16 326/500/16 369/501/16 -f 331/502/17 334/503/17 325/504/17 -f 336/505/18 348/506/18 370/507/18 -f 366/508/19 361/509/19 362/510/19 -f 360/511/19 356/512/19 368/513/19 -f 350/514/19 352/515/19 351/516/19 -f 337/517/20 355/518/20 335/519/20 -f 350/514/21 331/520/21 330/521/21 -f 363/522/21 347/523/21 343/524/21 -f 339/525/21 357/526/21 337/517/21 -f 352/527/22 329/528/22 332/529/22 -f 348/530/22 364/531/22 344/532/22 -f 358/533/22 340/534/22 338/535/22 -f 351/536/23 334/537/23 331/520/23 -f 360/511/23 348/530/23 340/534/23 -f 344/532/20 361/538/20 341/539/20 -f 333/540/23 352/527/23 332/529/23 -f 347/523/23 359/541/23 339/525/23 -f 362/542/20 343/524/20 342/543/20 -f 335/519/21 353/544/21 333/540/21 -f 341/539/21 365/545/21 345/546/21 -f 354/547/22 336/548/22 334/537/22 -f 366/549/22 342/543/22 346/550/22 -f 356/551/20 338/535/20 336/548/20 -f 349/552/23 330/521/23 329/528/23 -f 365/545/20 346/553/20 345/546/20 -f 355/554/19 359/541/19 367/555/19 -f 319/556/21 355/557/21 367/558/21 -f 320/559/23 351/560/23 352/561/23 -f 361/562/20 364/563/20 322/564/20 -f 327/565/22 323/566/22 324/567/22 -f 327/565/18 368/513/18 356/512/18 -f 347/568/24 337/569/24 335/499/24 -f 338/535/24 348/506/24 336/505/24 -f 322/564/25 327/565/25 324/567/25 -f 328/570/26 320/559/26 323/566/26 -f 345/571/24 342/572/24 341/573/24 -f 330/574/24 332/575/24 329/576/24 -f 369/501/19 325/504/19 370/507/19 -f 370/507/27 341/573/27 342/572/27 -f 383/577/22 385/578/22 384/579/22 -f 375/580/22 377/581/22 376/582/22 -f 377/581/20 374/583/20 372/584/20 -f 375/580/23 371/585/23 373/586/23 -f 378/587/24 373/588/24 374/589/24 -f 376/582/19 372/590/19 371/591/19 -f 385/578/20 382/592/20 380/593/20 -f 383/577/23 379/594/23 381/595/23 -f 386/596/24 381/597/24 382/598/24 -f 384/579/19 380/599/19 379/600/19 -f 389/601/19 393/602/19 394/603/19 -f 387/604/24 392/605/24 391/606/24 -f 390/607/23 394/608/23 392/609/23 -f 388/610/20 391/611/20 393/612/20 -f 397/613/19 401/614/19 402/615/19 -f 395/616/24 400/617/24 399/618/24 -f 398/619/23 402/620/23 400/621/23 -f 396/622/20 399/623/20 401/624/20 -f 398/619/22 396/622/22 397/613/22 -f 390/607/22 388/610/22 389/601/22 -f 405/625/19 404/626/19 403/627/19 -f 414/628/22 412/629/22 413/630/22 -f 413/630/28 411/631/28 408/632/28 -f 412/629/29 406/633/29 411/631/29 -f 410/634/30 404/626/30 406/633/30 -f 411/631/24 407/635/24 408/632/24 -f 414/628/31 408/632/31 404/626/31 -f 411/631/23 405/636/23 409/637/23 -f 408/632/20 403/638/20 404/626/20 -f 427/639/23 429/640/23 428/641/23 -f 419/642/23 421/643/23 420/644/23 -f 421/643/22 418/645/22 416/646/22 -f 419/642/21 415/647/21 417/648/21 -f 422/649/24 417/650/24 418/651/24 -f 420/644/19 416/652/19 415/653/19 -f 429/640/22 426/654/22 424/655/22 -f 427/639/21 423/656/21 425/657/21 -f 430/658/24 425/659/24 426/660/24 -f 428/641/19 424/661/19 423/662/19 -f 443/663/23 445/664/23 444/665/23 -f 435/666/23 437/667/23 436/668/23 -f 437/667/22 434/669/22 432/670/22 -f 435/666/21 431/671/21 433/672/21 -f 438/673/24 433/674/24 434/675/24 -f 436/668/19 432/676/19 431/677/19 -f 445/664/22 442/678/22 440/679/22 -f 443/663/21 439/680/21 441/681/21 -f 446/682/24 441/683/24 442/684/24 -f 444/665/19 440/685/19 439/686/19 -f 449/687/19 453/688/19 454/689/19 -f 447/690/24 452/691/24 451/692/24 -f 450/693/21 454/694/21 452/695/21 -f 448/696/22 451/697/22 453/698/22 -f 457/699/19 461/700/19 462/701/19 -f 455/702/24 460/703/24 459/704/24 -f 458/705/21 462/706/21 460/707/21 -f 456/708/22 459/709/22 461/710/22 -f 458/705/23 456/708/23 457/699/23 -f 450/693/23 448/696/23 449/687/23 -f 465/711/19 469/712/19 470/713/19 -f 463/714/24 468/715/24 467/716/24 -f 466/717/21 470/718/21 468/719/21 -f 464/720/22 467/721/22 469/722/22 -f 473/723/19 477/724/19 478/725/19 -f 471/726/24 476/727/24 475/728/24 -f 474/729/21 478/730/21 476/731/21 -f 472/732/22 475/733/22 477/734/22 -f 474/729/23 472/732/23 473/723/23 -f 466/717/23 464/720/23 465/711/23 -f 491/735/21 493/736/21 492/737/21 -f 483/738/21 485/739/21 484/740/21 -f 485/739/23 482/741/23 480/742/23 -f 483/738/20 479/743/20 481/744/20 -f 486/745/24 481/746/24 482/747/24 -f 484/740/19 480/748/19 479/749/19 -f 493/736/23 490/750/23 488/751/23 -f 491/735/20 487/752/20 489/753/20 -f 494/754/24 489/755/24 490/756/24 -f 492/737/19 488/757/19 487/758/19 -f 507/759/21 509/760/21 508/761/21 -f 499/762/21 501/763/21 500/764/21 -f 501/763/23 498/765/23 496/766/23 -f 499/762/20 495/767/20 497/768/20 -f 502/769/24 497/770/24 498/771/24 -f 500/764/19 496/772/19 495/773/19 -f 509/760/23 506/774/23 504/775/23 -f 507/759/20 503/776/20 505/777/20 -f 510/778/24 505/779/24 506/780/24 -f 508/761/19 504/781/19 503/782/19 -f 513/783/19 517/784/19 518/785/19 -f 511/786/24 516/787/24 515/788/24 -f 514/789/20 518/790/20 516/791/20 -f 512/792/23 515/793/23 517/794/23 -f 521/795/19 525/796/19 526/797/19 -f 519/798/24 524/799/24 523/800/24 -f 522/801/20 526/802/20 524/803/20 -f 520/804/23 523/805/23 525/806/23 -f 522/801/21 520/804/21 521/795/21 -f 514/789/21 512/792/21 513/783/21 -f 529/807/19 533/808/19 534/809/19 -f 527/810/24 532/811/24 531/812/24 -f 530/813/20 534/814/20 532/815/20 -f 528/816/23 531/817/23 533/818/23 -f 537/819/19 541/820/19 542/821/19 -f 535/822/24 540/823/24 539/824/24 -f 538/825/20 542/826/20 540/827/20 -f 536/828/23 539/829/23 541/830/23 -f 538/825/21 536/828/21 537/819/21 -f 530/813/21 528/816/21 529/807/21 -f 322/831/24 324/567/24 323/566/24 -f 369/501/16 343/832/16 347/568/16 -f 335/499/16 333/833/16 326/500/16 -f 369/501/16 347/568/16 335/499/16 -f 325/504/17 326/500/17 332/575/17 -f 326/500/17 333/833/17 332/575/17 -f 332/575/17 331/502/17 325/504/17 -f 348/506/18 344/834/18 370/507/18 -f 370/507/18 325/504/18 336/505/18 -f 325/504/18 334/503/18 336/505/18 -f 366/508/19 365/545/19 361/509/19 -f 360/511/19 358/533/19 356/512/19 -f 350/514/19 349/552/19 352/515/19 -f 337/517/20 357/526/20 355/518/20 -f 350/514/21 351/536/21 331/520/21 -f 363/522/21 367/835/21 347/523/21 -f 339/525/21 359/541/21 357/526/21 -f 352/527/22 349/552/22 329/528/22 -f 348/530/22 368/836/22 364/531/22 -f 358/533/22 360/511/22 340/534/22 -f 351/536/23 354/547/23 334/537/23 -f 360/511/23 368/836/23 348/530/23 -f 344/532/20 364/531/20 361/538/20 -f 333/540/23 353/544/23 352/527/23 -f 347/523/23 367/835/23 359/541/23 -f 362/542/20 363/522/20 343/524/20 -f 335/519/21 355/518/21 353/544/21 -f 341/539/21 361/538/21 365/545/21 -f 354/547/22 356/551/22 336/548/22 -f 366/549/22 362/542/22 342/543/22 -f 356/551/20 358/533/20 338/535/20 -f 349/552/23 350/514/23 330/521/23 -f 365/545/20 366/508/20 346/553/20 -f 355/554/19 357/526/19 359/541/19 -f 363/837/21 321/838/21 367/558/21 -f 321/838/21 319/556/21 367/558/21 -f 319/556/21 353/839/21 355/557/21 -f 353/839/23 319/556/23 352/561/23 -f 319/556/23 320/559/23 352/561/23 -f 320/559/23 354/840/23 351/560/23 -f 322/564/20 321/841/20 362/842/20 -f 321/841/20 363/843/20 362/842/20 -f 362/842/20 361/562/20 322/564/20 -f 327/565/22 328/570/22 323/566/22 -f 354/840/18 328/570/18 356/512/18 -f 328/570/18 327/565/18 356/512/18 -f 327/565/18 364/563/18 368/513/18 -f 347/568/24 339/844/24 337/569/24 -f 338/535/24 340/534/24 348/506/24 -f 322/564/25 364/563/25 327/565/25 -f 328/570/26 354/840/26 320/559/26 -f 345/571/24 346/845/24 342/572/24 -f 330/574/24 331/502/24 332/575/24 -f 369/501/19 326/500/19 325/504/19 -f 343/832/27 369/501/27 342/572/27 -f 369/501/27 370/507/27 342/572/27 -f 370/507/27 344/834/27 341/573/27 -f 383/577/22 386/596/22 385/578/22 -f 375/580/22 378/587/22 377/581/22 -f 377/581/20 378/587/20 374/583/20 -f 375/580/23 376/582/23 371/585/23 -f 378/587/24 375/580/24 373/588/24 -f 376/582/19 377/581/19 372/590/19 -f 385/578/20 386/596/20 382/592/20 -f 383/577/23 384/579/23 379/594/23 -f 386/596/24 383/577/24 381/597/24 -f 384/579/19 385/578/19 380/599/19 -f 389/601/19 388/610/19 393/602/19 -f 387/604/24 390/607/24 392/605/24 -f 390/607/23 389/601/23 394/608/23 -f 388/610/20 387/604/20 391/611/20 -f 397/613/19 396/622/19 401/614/19 -f 395/616/24 398/619/24 400/617/24 -f 398/619/23 397/613/23 402/620/23 -f 396/622/20 395/616/20 399/623/20 -f 398/619/22 395/616/22 396/622/22 -f 390/607/22 387/604/22 388/610/22 -f 405/625/19 406/633/19 404/626/19 -f 414/628/22 410/634/22 412/629/22 -f 413/630/28 412/629/28 411/631/28 -f 412/629/29 410/634/29 406/633/29 -f 410/634/30 414/628/30 404/626/30 -f 411/631/24 409/846/24 407/635/24 -f 414/628/31 413/630/31 408/632/31 -f 411/631/23 406/633/23 405/636/23 -f 408/632/20 407/847/20 403/638/20 -f 427/639/23 430/658/23 429/640/23 -f 419/642/23 422/649/23 421/643/23 -f 421/643/22 422/649/22 418/645/22 -f 419/642/21 420/644/21 415/647/21 -f 422/649/24 419/642/24 417/650/24 -f 420/644/19 421/643/19 416/652/19 -f 429/640/22 430/658/22 426/654/22 -f 427/639/21 428/641/21 423/656/21 -f 430/658/24 427/639/24 425/659/24 -f 428/641/19 429/640/19 424/661/19 -f 443/663/23 446/682/23 445/664/23 -f 435/666/23 438/673/23 437/667/23 -f 437/667/22 438/673/22 434/669/22 -f 435/666/21 436/668/21 431/671/21 -f 438/673/24 435/666/24 433/674/24 -f 436/668/19 437/667/19 432/676/19 -f 445/664/22 446/682/22 442/678/22 -f 443/663/21 444/665/21 439/680/21 -f 446/682/24 443/663/24 441/683/24 -f 444/665/19 445/664/19 440/685/19 -f 449/687/19 448/696/19 453/688/19 -f 447/690/24 450/693/24 452/691/24 -f 450/693/21 449/687/21 454/694/21 -f 448/696/22 447/690/22 451/697/22 -f 457/699/19 456/708/19 461/700/19 -f 455/702/24 458/705/24 460/703/24 -f 458/705/21 457/699/21 462/706/21 -f 456/708/22 455/702/22 459/709/22 -f 458/705/23 455/702/23 456/708/23 -f 450/693/23 447/690/23 448/696/23 -f 465/711/19 464/720/19 469/712/19 -f 463/714/24 466/717/24 468/715/24 -f 466/717/21 465/711/21 470/718/21 -f 464/720/22 463/714/22 467/721/22 -f 473/723/19 472/732/19 477/724/19 -f 471/726/24 474/729/24 476/727/24 -f 474/729/21 473/723/21 478/730/21 -f 472/732/22 471/726/22 475/733/22 -f 474/729/23 471/726/23 472/732/23 -f 466/717/23 463/714/23 464/720/23 -f 491/735/21 494/754/21 493/736/21 -f 483/738/21 486/745/21 485/739/21 -f 485/739/23 486/745/23 482/741/23 -f 483/738/20 484/740/20 479/743/20 -f 486/745/24 483/738/24 481/746/24 -f 484/740/19 485/739/19 480/748/19 -f 493/736/23 494/754/23 490/750/23 -f 491/735/20 492/737/20 487/752/20 -f 494/754/24 491/735/24 489/755/24 -f 492/737/19 493/736/19 488/757/19 -f 507/759/21 510/778/21 509/760/21 -f 499/762/21 502/769/21 501/763/21 -f 501/763/23 502/769/23 498/765/23 -f 499/762/20 500/764/20 495/767/20 -f 502/769/24 499/762/24 497/770/24 -f 500/764/19 501/763/19 496/772/19 -f 509/760/23 510/778/23 506/774/23 -f 507/759/20 508/761/20 503/776/20 -f 510/778/24 507/759/24 505/779/24 -f 508/761/19 509/760/19 504/781/19 -f 513/783/19 512/792/19 517/784/19 -f 511/786/24 514/789/24 516/787/24 -f 514/789/20 513/783/20 518/790/20 -f 512/792/23 511/786/23 515/793/23 -f 521/795/19 520/804/19 525/796/19 -f 519/798/24 522/801/24 524/799/24 -f 522/801/20 521/795/20 526/802/20 -f 520/804/23 519/798/23 523/805/23 -f 522/801/21 519/798/21 520/804/21 -f 514/789/21 511/786/21 512/792/21 -f 529/807/19 528/816/19 533/808/19 -f 527/810/24 530/813/24 532/811/24 -f 530/813/20 529/807/20 534/814/20 -f 528/816/23 527/810/23 531/817/23 -f 537/819/19 536/828/19 541/820/19 -f 535/822/24 538/825/24 540/823/24 -f 538/825/20 537/819/20 542/826/20 -f 536/828/23 535/822/23 539/829/23 -f 538/825/21 535/822/21 536/828/21 -f 530/813/21 527/810/21 528/816/21 -f 323/566/24 320/848/24 322/831/24 -f 320/848/24 319/849/24 322/831/24 -f 319/849/24 321/850/24 322/831/24 +f 383/579/34 376/580/34 417/581/34 +f 379/582/35 382/583/35 375/584/35 +f 384/585/36 396/586/36 418/587/36 +f 385/588/37 403/589/37 383/590/37 +f 398/591/38 379/592/38 378/593/38 +f 411/594/38 395/595/38 391/596/38 +f 387/597/38 405/598/38 385/588/38 +f 400/599/39 377/600/39 380/601/39 +f 396/602/39 412/603/39 392/604/39 +f 406/605/39 388/606/39 386/607/39 +f 399/608/40 382/609/40 379/592/40 +f 408/610/40 396/602/40 388/606/40 +f 392/604/37 409/611/37 389/612/37 +f 381/613/40 400/599/40 380/601/40 +f 395/595/40 407/614/40 387/597/40 +f 410/615/37 391/596/37 390/616/37 +f 383/590/38 401/617/38 381/613/38 +f 389/612/38 413/618/38 393/619/38 +f 402/620/39 384/621/39 382/609/39 +f 414/622/39 390/616/39 394/623/39 +f 404/624/37 386/607/37 384/621/37 +f 397/625/40 378/593/40 377/600/40 +f 413/618/37 394/626/37 393/619/37 +f 395/627/41 385/628/41 383/579/41 +f 386/607/41 396/586/41 384/585/41 +f 393/629/41 390/630/41 389/631/41 +f 378/632/41 380/633/41 377/634/41 +f 417/581/42 375/584/42 418/587/42 +f 418/587/43 389/631/43 390/630/43 +f 431/635/39 433/636/39 432/637/39 +f 423/638/39 425/639/39 424/640/39 +f 425/639/37 422/641/37 420/642/37 +f 423/638/40 419/643/40 421/644/40 +f 426/645/41 421/646/41 422/647/41 +f 424/640/42 420/648/42 419/649/42 +f 433/636/37 430/650/37 428/651/37 +f 431/635/40 427/652/40 429/653/40 +f 434/654/41 429/655/41 430/656/41 +f 432/637/42 428/657/42 427/658/42 +f 437/659/42 441/660/42 442/661/42 +f 435/662/41 440/663/41 439/664/41 +f 438/665/40 442/666/40 440/667/40 +f 436/668/37 439/669/37 441/670/37 +f 445/671/42 449/672/42 450/673/42 +f 443/674/41 448/675/41 447/676/41 +f 446/677/40 450/678/40 448/679/40 +f 444/680/37 447/681/37 449/682/37 +f 446/677/39 444/680/39 445/671/39 +f 438/665/39 436/668/39 437/659/39 +f 453/683/42 452/684/42 451/685/42 +f 462/686/39 460/687/39 461/688/39 +f 461/688/44 459/689/44 456/690/44 +f 460/687/45 454/691/45 459/689/45 +f 458/692/46 452/684/46 454/691/46 +f 459/689/41 455/693/41 456/690/41 +f 462/686/47 456/690/47 452/684/47 +f 459/689/40 453/694/40 457/695/40 +f 456/690/37 451/696/37 452/684/37 +f 475/697/40 477/698/40 476/699/40 +f 467/700/40 469/701/40 468/702/40 +f 469/701/39 466/703/39 464/704/39 +f 467/700/38 463/705/38 465/706/38 +f 470/707/41 465/708/41 466/709/41 +f 468/702/42 464/710/42 463/711/42 +f 477/698/39 474/712/39 472/713/39 +f 475/697/38 471/714/38 473/715/38 +f 478/716/41 473/717/41 474/718/41 +f 476/699/42 472/719/42 471/720/42 +f 491/721/40 493/722/40 492/723/40 +f 483/724/40 485/725/40 484/726/40 +f 485/725/39 482/727/39 480/728/39 +f 483/724/38 479/729/38 481/730/38 +f 486/731/41 481/732/41 482/733/41 +f 484/726/42 480/734/42 479/735/42 +f 493/722/39 490/736/39 488/737/39 +f 491/721/38 487/738/38 489/739/38 +f 494/740/41 489/741/41 490/742/41 +f 492/723/42 488/743/42 487/744/42 +f 497/745/42 501/746/42 502/747/42 +f 495/748/41 500/749/41 499/750/41 +f 498/751/38 502/752/38 500/753/38 +f 496/754/39 499/755/39 501/756/39 +f 505/757/42 509/758/42 510/759/42 +f 503/760/41 508/761/41 507/762/41 +f 506/763/38 510/764/38 508/765/38 +f 504/766/39 507/767/39 509/768/39 +f 506/763/40 504/766/40 505/757/40 +f 498/751/40 496/754/40 497/745/40 +f 513/769/42 517/770/42 518/771/42 +f 511/772/41 516/773/41 515/774/41 +f 514/775/38 518/776/38 516/777/38 +f 512/778/39 515/779/39 517/780/39 +f 521/781/42 525/782/42 526/783/42 +f 519/784/41 524/785/41 523/786/41 +f 522/787/38 526/788/38 524/789/38 +f 520/790/39 523/791/39 525/792/39 +f 522/787/40 520/790/40 521/781/40 +f 514/775/40 512/778/40 513/769/40 +f 539/793/38 541/794/38 540/795/38 +f 531/796/38 533/797/38 532/798/38 +f 533/797/40 530/799/40 528/800/40 +f 531/796/37 527/801/37 529/802/37 +f 534/803/41 529/804/41 530/805/41 +f 532/798/42 528/806/42 527/807/42 +f 541/794/40 538/808/40 536/809/40 +f 539/793/37 535/810/37 537/811/37 +f 542/812/41 537/813/41 538/814/41 +f 540/795/42 536/815/42 535/816/42 +f 555/817/38 557/818/38 556/819/38 +f 547/820/38 549/821/38 548/822/38 +f 549/821/40 546/823/40 544/824/40 +f 547/820/37 543/825/37 545/826/37 +f 550/827/41 545/828/41 546/829/41 +f 548/822/42 544/830/42 543/831/42 +f 557/818/40 554/832/40 552/833/40 +f 555/817/37 551/834/37 553/835/37 +f 558/836/41 553/837/41 554/838/41 +f 556/819/42 552/839/42 551/840/42 +f 561/841/42 565/842/42 566/843/42 +f 559/844/41 564/845/41 563/846/41 +f 562/847/37 566/848/37 564/849/37 +f 560/850/40 563/851/40 565/852/40 +f 569/853/42 573/854/42 574/855/42 +f 567/856/41 572/857/41 571/858/41 +f 570/859/37 574/860/37 572/861/37 +f 568/862/40 571/863/40 573/864/40 +f 570/859/38 568/862/38 569/853/38 +f 562/847/38 560/850/38 561/841/38 +f 577/865/42 581/866/42 582/867/42 +f 575/868/41 580/869/41 579/870/41 +f 578/871/37 582/872/37 580/873/37 +f 576/874/40 579/875/40 581/876/40 +f 585/877/42 589/878/42 590/879/42 +f 583/880/41 588/881/41 587/882/41 +f 586/883/37 590/884/37 588/885/37 +f 584/886/40 587/887/40 589/888/40 +f 586/883/38 584/886/38 585/877/38 +f 578/871/38 576/874/38 577/865/38 +f 417/581/34 391/889/34 395/627/34 +f 383/579/34 381/890/34 376/580/34 +f 417/581/34 395/627/34 383/579/34 +f 375/584/35 376/580/35 380/633/35 +f 376/580/35 381/890/35 380/633/35 +f 380/633/35 379/582/35 375/584/35 +f 396/586/36 392/891/36 418/587/36 +f 418/587/36 375/584/36 384/585/36 +f 375/584/36 382/583/36 384/585/36 +f 385/588/37 405/598/37 403/589/37 +f 398/591/38 399/608/38 379/592/38 +f 411/594/38 415/892/38 395/595/38 +f 387/597/38 407/614/38 405/598/38 +f 400/599/39 397/625/39 377/600/39 +f 396/602/39 416/893/39 412/603/39 +f 406/605/39 408/610/39 388/606/39 +f 399/608/40 402/620/40 382/609/40 +f 408/610/40 416/893/40 396/602/40 +f 392/604/37 412/603/37 409/611/37 +f 381/613/40 401/617/40 400/599/40 +f 395/595/40 415/892/40 407/614/40 +f 410/615/37 411/594/37 391/596/37 +f 383/590/38 403/589/38 401/617/38 +f 389/612/38 409/611/38 413/618/38 +f 402/620/39 404/624/39 384/621/39 +f 414/622/39 410/615/39 390/616/39 +f 404/624/37 406/605/37 386/607/37 +f 397/625/40 398/591/40 378/593/40 +f 413/618/37 414/894/37 394/626/37 +f 395/627/41 387/895/41 385/628/41 +f 386/607/41 388/606/41 396/586/41 +f 393/629/41 394/896/41 390/630/41 +f 378/632/41 379/582/41 380/633/41 +f 417/581/42 376/580/42 375/584/42 +f 391/889/43 417/581/43 390/630/43 +f 417/581/43 418/587/43 390/630/43 +f 418/587/43 392/891/43 389/631/43 +f 431/635/39 434/654/39 433/636/39 +f 423/638/39 426/645/39 425/639/39 +f 425/639/37 426/645/37 422/641/37 +f 423/638/40 424/640/40 419/643/40 +f 426/645/41 423/638/41 421/646/41 +f 424/640/42 425/639/42 420/648/42 +f 433/636/37 434/654/37 430/650/37 +f 431/635/40 432/637/40 427/652/40 +f 434/654/41 431/635/41 429/655/41 +f 432/637/42 433/636/42 428/657/42 +f 437/659/42 436/668/42 441/660/42 +f 435/662/41 438/665/41 440/663/41 +f 438/665/40 437/659/40 442/666/40 +f 436/668/37 435/662/37 439/669/37 +f 445/671/42 444/680/42 449/672/42 +f 443/674/41 446/677/41 448/675/41 +f 446/677/40 445/671/40 450/678/40 +f 444/680/37 443/674/37 447/681/37 +f 446/677/39 443/674/39 444/680/39 +f 438/665/39 435/662/39 436/668/39 +f 453/683/42 454/691/42 452/684/42 +f 462/686/39 458/692/39 460/687/39 +f 461/688/44 460/687/44 459/689/44 +f 460/687/45 458/692/45 454/691/45 +f 458/692/46 462/686/46 452/684/46 +f 459/689/41 457/897/41 455/693/41 +f 462/686/47 461/688/47 456/690/47 +f 459/689/40 454/691/40 453/694/40 +f 456/690/37 455/898/37 451/696/37 +f 475/697/40 478/716/40 477/698/40 +f 467/700/40 470/707/40 469/701/40 +f 469/701/39 470/707/39 466/703/39 +f 467/700/38 468/702/38 463/705/38 +f 470/707/41 467/700/41 465/708/41 +f 468/702/42 469/701/42 464/710/42 +f 477/698/39 478/716/39 474/712/39 +f 475/697/38 476/699/38 471/714/38 +f 478/716/41 475/697/41 473/717/41 +f 476/699/42 477/698/42 472/719/42 +f 491/721/40 494/740/40 493/722/40 +f 483/724/40 486/731/40 485/725/40 +f 485/725/39 486/731/39 482/727/39 +f 483/724/38 484/726/38 479/729/38 +f 486/731/41 483/724/41 481/732/41 +f 484/726/42 485/725/42 480/734/42 +f 493/722/39 494/740/39 490/736/39 +f 491/721/38 492/723/38 487/738/38 +f 494/740/41 491/721/41 489/741/41 +f 492/723/42 493/722/42 488/743/42 +f 497/745/42 496/754/42 501/746/42 +f 495/748/41 498/751/41 500/749/41 +f 498/751/38 497/745/38 502/752/38 +f 496/754/39 495/748/39 499/755/39 +f 505/757/42 504/766/42 509/758/42 +f 503/760/41 506/763/41 508/761/41 +f 506/763/38 505/757/38 510/764/38 +f 504/766/39 503/760/39 507/767/39 +f 506/763/40 503/760/40 504/766/40 +f 498/751/40 495/748/40 496/754/40 +f 513/769/42 512/778/42 517/770/42 +f 511/772/41 514/775/41 516/773/41 +f 514/775/38 513/769/38 518/776/38 +f 512/778/39 511/772/39 515/779/39 +f 521/781/42 520/790/42 525/782/42 +f 519/784/41 522/787/41 524/785/41 +f 522/787/38 521/781/38 526/788/38 +f 520/790/39 519/784/39 523/791/39 +f 522/787/40 519/784/40 520/790/40 +f 514/775/40 511/772/40 512/778/40 +f 539/793/38 542/812/38 541/794/38 +f 531/796/38 534/803/38 533/797/38 +f 533/797/40 534/803/40 530/799/40 +f 531/796/37 532/798/37 527/801/37 +f 534/803/41 531/796/41 529/804/41 +f 532/798/42 533/797/42 528/806/42 +f 541/794/40 542/812/40 538/808/40 +f 539/793/37 540/795/37 535/810/37 +f 542/812/41 539/793/41 537/813/41 +f 540/795/42 541/794/42 536/815/42 +f 555/817/38 558/836/38 557/818/38 +f 547/820/38 550/827/38 549/821/38 +f 549/821/40 550/827/40 546/823/40 +f 547/820/37 548/822/37 543/825/37 +f 550/827/41 547/820/41 545/828/41 +f 548/822/42 549/821/42 544/830/42 +f 557/818/40 558/836/40 554/832/40 +f 555/817/37 556/819/37 551/834/37 +f 558/836/41 555/817/41 553/837/41 +f 556/819/42 557/818/42 552/839/42 +f 561/841/42 560/850/42 565/842/42 +f 559/844/41 562/847/41 564/845/41 +f 562/847/37 561/841/37 566/848/37 +f 560/850/40 559/844/40 563/851/40 +f 569/853/42 568/862/42 573/854/42 +f 567/856/41 570/859/41 572/857/41 +f 570/859/37 569/853/37 574/860/37 +f 568/862/40 567/856/40 571/863/40 +f 570/859/38 567/856/38 568/862/38 +f 562/847/38 559/844/38 560/850/38 +f 577/865/42 576/874/42 581/866/42 +f 575/868/41 578/871/41 580/869/41 +f 578/871/37 577/865/37 582/872/37 +f 576/874/40 575/868/40 579/875/40 +f 585/877/42 584/886/42 589/878/42 +f 583/880/41 586/883/41 588/881/41 +f 586/883/37 585/877/37 590/884/37 +f 584/886/40 583/880/40 587/887/40 +f 586/883/38 583/880/38 584/886/38 +f 578/871/38 575/868/38 576/874/38 o Body v -4.500008 0.000002 -2.500000 v 4.499992 -0.000002 -2.500000 @@ -2822,320 +2972,312 @@ vn 0.0000 -0.9239 0.3827 vn -0.7071 -0.1830 0.6830 vn 0.7071 0.1830 -0.6830 s off -f 545/851/32 571/852/32 583/853/32 -f 543/854/32 576/855/32 581/856/32 -f 543/857/32 567/858/32 555/859/32 -f 544/860/32 572/861/32 552/862/32 -f 544/863/32 568/864/32 579/865/32 -f 545/866/32 564/867/32 560/868/32 -f 547/869/33 549/870/33 548/871/33 -f 552/872/34 553/873/34 551/874/34 -f 555/875/35 558/876/35 556/877/35 -f 560/878/36 561/879/36 559/880/36 -f 561/879/34 563/881/34 559/880/34 -f 560/878/33 566/882/33 562/883/33 -f 555/875/34 569/884/34 557/885/34 -f 558/876/33 568/864/33 556/877/33 -f 552/872/36 574/886/36 554/887/36 -f 553/873/35 571/852/35 551/874/35 -f 549/870/36 576/855/36 548/871/36 -f 547/888/35 578/889/35 550/890/35 -f 577/891/33 581/856/33 576/855/33 -f 572/861/34 580/892/34 574/886/34 -f 575/893/33 586/894/33 578/889/33 -f 573/895/34 583/853/34 571/852/34 -f 565/896/36 585/897/36 563/881/36 -f 564/867/36 584/898/36 566/882/36 -f 567/858/35 582/899/35 569/884/35 -f 580/892/35 568/864/35 570/900/35 -f 588/901/32 589/902/32 587/903/32 -f 593/904/37 591/905/37 592/906/37 -f 546/907/32 563/881/32 585/897/32 -f 546/908/32 575/893/32 547/909/32 -f 548/910/38 588/901/38 587/903/38 -f 555/911/39 556/912/39 590/913/39 -f 552/914/40 551/915/40 589/902/40 -f 560/916/41 559/917/41 587/903/41 -f 596/918/37 573/895/37 553/919/37 -f 566/882/37 596/920/37 562/921/37 -f 578/889/37 595/922/37 550/923/37 -f 595/924/37 565/896/37 561/925/37 -f 597/926/37 577/891/37 549/927/37 -f 574/886/37 598/928/37 554/929/37 -f 598/930/37 570/900/37 558/931/37 -f 569/884/37 597/932/37 557/933/37 -f 592/906/42 595/934/42 561/935/42 -f 593/904/43 596/936/43 553/937/43 -f 591/905/44 594/938/44 558/939/44 -f 591/905/45 597/940/45 549/941/45 -f 599/942/32 602/943/32 600/944/32 -f 601/945/35 604/946/35 602/943/35 -f 603/947/46 606/948/46 604/946/46 -f 599/949/33 603/947/33 601/945/33 -f 604/946/34 600/950/34 602/943/34 -f 607/951/35 610/952/35 608/953/35 -f 625/954/35 623/955/35 624/956/35 -f 617/957/35 615/958/35 616/959/35 -f 611/960/34 615/958/34 613/961/34 -f 613/962/37 618/963/37 614/964/37 -f 612/965/32 616/959/32 611/966/32 -f 614/967/33 617/957/33 612/968/33 -f 619/969/34 623/955/34 621/970/34 -f 621/971/37 626/972/37 622/973/37 -f 620/974/32 624/956/32 619/975/32 -f 622/976/33 625/954/33 620/977/33 -f 641/978/35 639/979/35 640/980/35 -f 633/981/35 631/982/35 632/983/35 -f 627/984/34 631/982/34 629/985/34 -f 629/986/37 634/987/37 630/988/37 -f 628/989/32 632/983/32 627/990/32 -f 630/991/33 633/981/33 628/992/33 -f 635/993/34 639/979/34 637/994/34 -f 637/995/37 642/996/37 638/997/37 -f 636/998/32 640/980/32 635/999/32 -f 638/1000/33 641/978/33 636/1001/33 -f 645/1002/47 650/1003/47 646/1004/47 -f 648/1005/32 643/1006/32 644/1007/32 -f 650/1003/48 647/1008/48 648/1005/48 -f 652/1009/34 646/1010/34 650/1003/34 -f 649/1011/33 645/1012/33 651/1013/33 -f 662/1014/33 660/1015/33 658/1016/33 -f 657/1017/34 659/1018/34 661/1019/34 -f 661/1019/36 663/1020/36 653/1021/36 -f 654/1022/36 666/1023/36 662/1014/36 -f 665/1024/33 670/1025/33 666/1023/33 -f 664/1026/34 667/1027/34 663/1020/34 -f 668/1028/32 664/1026/32 661/1029/32 -f 653/1030/37 667/1031/37 669/1032/37 -f 693/1033/49 691/1034/49 689/1035/49 -f 684/1036/50 685/1037/50 686/1038/50 -f 677/1039/50 678/1040/50 679/1041/50 -f 701/1042/49 696/1043/49 697/1044/49 -f 704/1045/50 705/1046/50 703/1047/50 -f 707/1048/49 709/1049/49 708/1050/49 -f 710/1051/51 705/1052/51 706/1053/51 -f 708/1050/52 704/1045/52 703/1047/52 -f 704/1054/53 710/1051/53 706/1055/53 -f 707/1048/54 703/1056/54 705/1057/54 -f 545/851/32 551/1058/32 571/852/32 -f 543/854/32 548/1059/32 576/855/32 -f 543/857/32 581/856/32 567/858/32 -f 544/860/32 579/865/32 572/861/32 -f 544/863/32 556/1060/32 568/864/32 -f 545/866/32 583/853/32 564/867/32 -f 547/869/33 550/1061/33 549/870/33 -f 552/872/34 554/887/34 553/873/34 -f 555/875/35 557/885/35 558/876/35 -f 560/878/36 562/883/36 561/879/36 -f 561/879/34 565/896/34 563/881/34 -f 560/878/33 564/867/33 566/882/33 -f 555/875/34 567/858/34 569/884/34 -f 558/876/33 570/900/33 568/864/33 -f 552/872/36 572/861/36 574/886/36 -f 553/873/35 573/895/35 571/852/35 -f 549/870/36 577/891/36 576/855/36 -f 547/888/35 575/893/35 578/889/35 -f 577/891/33 582/899/33 581/856/33 -f 572/861/34 579/865/34 580/892/34 -f 575/893/33 585/897/33 586/894/33 -f 573/895/34 584/898/34 583/853/34 -f 565/896/36 586/894/36 585/897/36 -f 564/867/36 583/853/36 584/898/36 -f 567/858/35 581/856/35 582/899/35 -f 580/892/35 579/865/35 568/864/35 -f 588/901/32 590/913/32 589/902/32 -f 593/904/37 594/938/37 591/905/37 -f 546/907/32 559/1062/32 563/881/32 -f 546/908/32 585/897/32 575/893/32 -f 587/903/38 546/1063/38 547/1064/38 -f 548/910/38 543/1065/38 588/901/38 -f 587/903/38 547/1064/38 548/910/38 -f 556/912/39 544/1066/39 590/913/39 -f 590/913/39 588/901/39 555/911/39 -f 588/901/39 543/1067/39 555/911/39 -f 551/915/40 545/1068/40 589/902/40 -f 589/902/40 590/913/40 552/914/40 -f 590/913/40 544/1069/40 552/914/40 -f 559/917/41 546/1070/41 587/903/41 -f 587/903/41 589/902/41 560/916/41 -f 589/902/41 545/1071/41 560/916/41 -f 596/918/37 584/898/37 573/895/37 -f 566/882/37 584/898/37 596/920/37 -f 578/889/37 586/894/37 595/922/37 -f 595/924/37 586/894/37 565/896/37 -f 597/926/37 582/899/37 577/891/37 -f 574/886/37 580/892/37 598/928/37 -f 598/930/37 580/892/37 570/900/37 -f 569/884/37 582/899/37 597/932/37 -f 561/935/42 562/1072/42 592/906/42 -f 562/1072/42 596/1073/42 593/904/42 -f 592/906/42 562/1072/42 593/904/42 -f 553/937/43 554/1074/43 593/904/43 -f 554/1074/43 598/1075/43 594/938/43 -f 593/904/43 554/1074/43 594/938/43 -f 598/1076/44 558/939/44 594/938/44 -f 558/939/44 557/1077/44 591/905/44 -f 557/1077/44 597/1078/44 591/905/44 -f 549/941/45 550/1079/45 591/905/45 -f 550/1079/45 595/1080/45 592/906/45 -f 591/905/45 550/1079/45 592/906/45 -f 599/942/32 601/945/32 602/943/32 -f 601/945/35 603/947/35 604/946/35 -f 603/947/46 605/1081/46 606/948/46 -f 599/949/33 605/1082/33 603/947/33 -f 604/946/34 606/1083/34 600/950/34 -f 607/951/35 609/1084/35 610/952/35 -f 625/954/35 626/972/35 623/955/35 -f 617/957/35 618/963/35 615/958/35 -f 611/960/34 616/959/34 615/958/34 -f 613/962/37 615/958/37 618/963/37 -f 612/965/32 617/957/32 616/959/32 -f 614/967/33 618/963/33 617/957/33 -f 619/969/34 624/956/34 623/955/34 -f 621/971/37 623/955/37 626/972/37 -f 620/974/32 625/954/32 624/956/32 -f 622/976/33 626/972/33 625/954/33 -f 641/978/35 642/996/35 639/979/35 -f 633/981/35 634/987/35 631/982/35 -f 627/984/34 632/983/34 631/982/34 -f 629/986/37 631/982/37 634/987/37 -f 628/989/32 633/981/32 632/983/32 -f 630/991/33 634/987/33 633/981/33 -f 635/993/34 640/980/34 639/979/34 -f 637/995/37 639/979/37 642/996/37 -f 636/998/32 641/978/32 640/980/32 -f 638/1000/33 642/996/33 641/978/33 -f 645/1002/47 649/1011/47 650/1003/47 -f 648/1005/32 647/1008/32 643/1006/32 -f 650/1003/48 649/1011/48 647/1008/48 -f 648/1085/34 644/1086/34 650/1003/34 -f 644/1086/34 652/1009/34 650/1003/34 -f 651/1013/33 643/1087/33 649/1011/33 -f 643/1087/33 647/1088/33 649/1011/33 -f 658/1016/33 656/1089/33 654/1022/33 -f 654/1022/33 662/1014/33 658/1016/33 -f 661/1019/34 653/1021/34 655/1090/34 -f 655/1090/34 657/1017/34 661/1019/34 -f 661/1019/36 664/1026/36 663/1020/36 -f 654/1022/36 665/1024/36 666/1023/36 -f 665/1024/33 669/1091/33 670/1025/33 -f 664/1026/34 668/1028/34 667/1027/34 -f 661/1029/32 662/1092/32 668/1028/32 -f 662/1092/32 666/1023/32 670/1025/32 -f 668/1028/32 662/1092/32 670/1025/32 -f 669/1032/37 665/1093/37 654/1094/37 -f 653/1030/37 663/1095/37 667/1031/37 -f 669/1032/37 654/1094/37 653/1030/37 -f 689/1035/49 687/1096/49 688/1097/49 -f 688/1097/49 694/1098/49 689/1035/49 -f 694/1098/49 693/1033/49 689/1035/49 -f 693/1033/49 692/1099/49 691/1034/49 -f 691/1034/49 690/1100/49 689/1035/49 -f 686/1038/50 671/1101/50 682/1102/50 -f 671/1101/50 680/1103/50 682/1102/50 -f 680/1103/50 681/1104/50 682/1102/50 -f 682/1102/50 683/1105/50 686/1038/50 -f 683/1105/50 684/1036/50 686/1038/50 -f 679/1041/50 672/1106/50 675/1107/50 -f 672/1106/50 673/1108/50 675/1107/50 -f 673/1108/50 674/1109/50 675/1107/50 -f 675/1107/50 676/1110/50 679/1041/50 -f 676/1110/50 677/1039/50 679/1041/50 -f 697/1044/49 698/1111/49 700/1112/49 -f 700/1112/49 702/1113/49 697/1044/49 -f 702/1113/49 701/1042/49 697/1044/49 -f 701/1042/49 695/1114/49 696/1043/49 -f 696/1043/49 699/1115/49 697/1044/49 -f 704/1045/50 706/1116/50 705/1046/50 -f 707/1048/49 710/1051/49 709/1049/49 -f 710/1051/51 707/1048/51 705/1052/51 -f 708/1050/52 709/1049/52 704/1045/52 -f 704/1054/53 709/1049/53 710/1051/53 -f 707/1048/54 708/1050/54 703/1056/54 +f 593/899/48 619/900/48 631/901/48 +f 591/902/48 624/903/48 629/904/48 +f 591/905/48 615/906/48 603/907/48 +f 592/908/48 620/909/48 600/910/48 +f 592/911/48 616/912/48 627/913/48 +f 593/914/48 612/915/48 608/916/48 +f 595/917/49 597/918/49 596/919/49 +f 600/920/50 601/921/50 599/922/50 +f 603/923/51 606/924/51 604/925/51 +f 608/926/52 609/927/52 607/928/52 +f 609/927/50 611/929/50 607/928/50 +f 608/926/49 614/930/49 610/931/49 +f 603/923/50 617/932/50 605/933/50 +f 606/924/49 616/912/49 604/925/49 +f 600/920/52 622/934/52 602/935/52 +f 601/921/51 619/900/51 599/922/51 +f 597/918/52 624/903/52 596/919/52 +f 595/936/51 626/937/51 598/938/51 +f 625/939/49 629/904/49 624/903/49 +f 620/909/50 628/940/50 622/934/50 +f 623/941/49 634/942/49 626/937/49 +f 621/943/50 631/901/50 619/900/50 +f 613/944/52 633/945/52 611/929/52 +f 612/915/52 632/946/52 614/930/52 +f 615/906/51 630/947/51 617/932/51 +f 628/940/51 616/912/51 618/948/51 +f 636/949/48 637/950/48 635/951/48 +f 641/952/53 639/953/53 640/954/53 +f 594/955/48 611/929/48 633/945/48 +f 594/956/48 623/941/48 595/957/48 +f 596/958/54 636/949/54 635/951/54 +f 603/959/55 604/960/55 638/961/55 +f 600/962/56 599/963/56 637/950/56 +f 608/964/57 607/965/57 635/951/57 +f 644/966/53 621/943/53 601/967/53 +f 614/930/53 644/968/53 610/969/53 +f 626/937/53 643/970/53 598/971/53 +f 643/972/53 613/944/53 609/973/53 +f 645/974/53 625/939/53 597/975/53 +f 622/934/53 646/976/53 602/977/53 +f 646/978/53 618/948/53 606/979/53 +f 617/932/53 645/980/53 605/981/53 +f 640/954/58 643/982/58 609/983/58 +f 641/952/59 644/984/59 601/985/59 +f 639/953/60 642/986/60 606/987/60 +f 639/953/61 645/988/61 597/989/61 +f 647/990/48 650/991/48 648/992/48 +f 649/993/51 652/994/51 650/991/51 +f 651/995/62 654/996/62 652/994/62 +f 647/997/49 651/995/49 649/993/49 +f 652/994/50 648/998/50 650/991/50 +f 655/999/51 658/1000/51 656/1001/51 +f 673/1002/51 671/1003/51 672/1004/51 +f 665/1005/51 663/1006/51 664/1007/51 +f 659/1008/50 663/1006/50 661/1009/50 +f 661/1010/53 666/1011/53 662/1012/53 +f 660/1013/48 664/1007/48 659/1014/48 +f 662/1015/49 665/1005/49 660/1016/49 +f 667/1017/50 671/1003/50 669/1018/50 +f 669/1019/53 674/1020/53 670/1021/53 +f 668/1022/48 672/1004/48 667/1023/48 +f 670/1024/49 673/1002/49 668/1025/49 +f 689/1026/51 687/1027/51 688/1028/51 +f 681/1029/51 679/1030/51 680/1031/51 +f 675/1032/50 679/1030/50 677/1033/50 +f 677/1034/53 682/1035/53 678/1036/53 +f 676/1037/48 680/1031/48 675/1038/48 +f 678/1039/49 681/1029/49 676/1040/49 +f 683/1041/50 687/1027/50 685/1042/50 +f 685/1043/53 690/1044/53 686/1045/53 +f 684/1046/48 688/1028/48 683/1047/48 +f 686/1048/49 689/1026/49 684/1049/49 +f 693/1050/63 698/1051/63 694/1052/63 +f 696/1053/48 691/1054/48 692/1055/48 +f 698/1051/64 695/1056/64 696/1053/64 +f 700/1057/50 694/1058/50 698/1051/50 +f 697/1059/49 693/1060/49 699/1061/49 +f 710/1062/49 708/1063/49 706/1064/49 +f 705/1065/50 707/1066/50 709/1067/50 +f 709/1067/52 711/1068/52 701/1069/52 +f 702/1070/52 714/1071/52 710/1062/52 +f 713/1072/49 718/1073/49 714/1071/49 +f 712/1074/50 715/1075/50 711/1068/50 +f 716/1076/48 712/1074/48 709/1077/48 +f 701/1078/53 715/1079/53 717/1080/53 +f 741/1081/65 739/1082/65 737/1083/65 +f 732/1084/66 733/1085/66 734/1086/66 +f 725/1087/66 726/1088/66 727/1089/66 +f 749/1090/65 744/1091/65 745/1092/65 +f 752/1093/66 753/1094/66 751/1095/66 +f 755/1096/65 757/1097/65 756/1098/65 +f 758/1099/67 753/1100/67 754/1101/67 +f 756/1098/68 752/1093/68 751/1095/68 +f 752/1102/69 758/1099/69 754/1103/69 +f 755/1096/70 751/1104/70 753/1105/70 +f 593/899/48 599/1106/48 619/900/48 +f 591/902/48 596/1107/48 624/903/48 +f 591/905/48 629/904/48 615/906/48 +f 592/908/48 627/913/48 620/909/48 +f 592/911/48 604/1108/48 616/912/48 +f 593/914/48 631/901/48 612/915/48 +f 595/917/49 598/1109/49 597/918/49 +f 600/920/50 602/935/50 601/921/50 +f 603/923/51 605/933/51 606/924/51 +f 608/926/52 610/931/52 609/927/52 +f 609/927/50 613/944/50 611/929/50 +f 608/926/49 612/915/49 614/930/49 +f 603/923/50 615/906/50 617/932/50 +f 606/924/49 618/948/49 616/912/49 +f 600/920/52 620/909/52 622/934/52 +f 601/921/51 621/943/51 619/900/51 +f 597/918/52 625/939/52 624/903/52 +f 595/936/51 623/941/51 626/937/51 +f 625/939/49 630/947/49 629/904/49 +f 620/909/50 627/913/50 628/940/50 +f 623/941/49 633/945/49 634/942/49 +f 621/943/50 632/946/50 631/901/50 +f 613/944/52 634/942/52 633/945/52 +f 612/915/52 631/901/52 632/946/52 +f 615/906/51 629/904/51 630/947/51 +f 628/940/51 627/913/51 616/912/51 +f 636/949/48 638/961/48 637/950/48 +f 641/952/53 642/986/53 639/953/53 +f 594/955/48 607/1110/48 611/929/48 +f 594/956/48 633/945/48 623/941/48 +f 635/951/54 594/1111/54 595/1112/54 +f 596/958/54 591/1113/54 636/949/54 +f 635/951/54 595/1112/54 596/958/54 +f 604/960/55 592/1114/55 638/961/55 +f 638/961/55 636/949/55 603/959/55 +f 636/949/55 591/1115/55 603/959/55 +f 599/963/56 593/1116/56 637/950/56 +f 637/950/56 638/961/56 600/962/56 +f 638/961/56 592/1117/56 600/962/56 +f 607/965/57 594/1118/57 635/951/57 +f 635/951/57 637/950/57 608/964/57 +f 637/950/57 593/1119/57 608/964/57 +f 644/966/53 632/946/53 621/943/53 +f 614/930/53 632/946/53 644/968/53 +f 626/937/53 634/942/53 643/970/53 +f 643/972/53 634/942/53 613/944/53 +f 645/974/53 630/947/53 625/939/53 +f 622/934/53 628/940/53 646/976/53 +f 646/978/53 628/940/53 618/948/53 +f 617/932/53 630/947/53 645/980/53 +f 609/983/58 610/1120/58 640/954/58 +f 610/1120/58 644/1121/58 641/952/58 +f 640/954/58 610/1120/58 641/952/58 +f 601/985/59 602/1122/59 641/952/59 +f 602/1122/59 646/1123/59 642/986/59 +f 641/952/59 602/1122/59 642/986/59 +f 646/1124/60 606/987/60 642/986/60 +f 606/987/60 605/1125/60 639/953/60 +f 605/1125/60 645/1126/60 639/953/60 +f 597/989/61 598/1127/61 639/953/61 +f 598/1127/61 643/1128/61 640/954/61 +f 639/953/61 598/1127/61 640/954/61 +f 647/990/48 649/993/48 650/991/48 +f 649/993/51 651/995/51 652/994/51 +f 651/995/62 653/1129/62 654/996/62 +f 647/997/49 653/1130/49 651/995/49 +f 652/994/50 654/1131/50 648/998/50 +f 655/999/51 657/1132/51 658/1000/51 +f 673/1002/51 674/1020/51 671/1003/51 +f 665/1005/51 666/1011/51 663/1006/51 +f 659/1008/50 664/1007/50 663/1006/50 +f 661/1010/53 663/1006/53 666/1011/53 +f 660/1013/48 665/1005/48 664/1007/48 +f 662/1015/49 666/1011/49 665/1005/49 +f 667/1017/50 672/1004/50 671/1003/50 +f 669/1019/53 671/1003/53 674/1020/53 +f 668/1022/48 673/1002/48 672/1004/48 +f 670/1024/49 674/1020/49 673/1002/49 +f 689/1026/51 690/1044/51 687/1027/51 +f 681/1029/51 682/1035/51 679/1030/51 +f 675/1032/50 680/1031/50 679/1030/50 +f 677/1034/53 679/1030/53 682/1035/53 +f 676/1037/48 681/1029/48 680/1031/48 +f 678/1039/49 682/1035/49 681/1029/49 +f 683/1041/50 688/1028/50 687/1027/50 +f 685/1043/53 687/1027/53 690/1044/53 +f 684/1046/48 689/1026/48 688/1028/48 +f 686/1048/49 690/1044/49 689/1026/49 +f 693/1050/63 697/1059/63 698/1051/63 +f 696/1053/48 695/1056/48 691/1054/48 +f 698/1051/64 697/1059/64 695/1056/64 +f 696/1133/50 692/1134/50 698/1051/50 +f 692/1134/50 700/1057/50 698/1051/50 +f 699/1061/49 691/1135/49 697/1059/49 +f 691/1135/49 695/1136/49 697/1059/49 +f 706/1064/49 704/1137/49 702/1070/49 +f 702/1070/49 710/1062/49 706/1064/49 +f 709/1067/50 701/1069/50 703/1138/50 +f 703/1138/50 705/1065/50 709/1067/50 +f 709/1067/52 712/1074/52 711/1068/52 +f 702/1070/52 713/1072/52 714/1071/52 +f 713/1072/49 717/1139/49 718/1073/49 +f 712/1074/50 716/1076/50 715/1075/50 +f 709/1077/48 710/1140/48 716/1076/48 +f 710/1140/48 714/1071/48 718/1073/48 +f 716/1076/48 710/1140/48 718/1073/48 +f 717/1080/53 713/1141/53 702/1142/53 +f 701/1078/53 711/1143/53 715/1079/53 +f 717/1080/53 702/1142/53 701/1078/53 +f 737/1083/65 735/1144/65 736/1145/65 +f 736/1145/65 742/1146/65 737/1083/65 +f 742/1146/65 741/1081/65 737/1083/65 +f 741/1081/65 740/1147/65 739/1082/65 +f 739/1082/65 738/1148/65 737/1083/65 +f 734/1086/66 719/1149/66 730/1150/66 +f 719/1149/66 728/1151/66 730/1150/66 +f 728/1151/66 729/1152/66 730/1150/66 +f 730/1150/66 731/1153/66 734/1086/66 +f 731/1153/66 732/1084/66 734/1086/66 +f 727/1089/66 720/1154/66 723/1155/66 +f 720/1154/66 721/1156/66 723/1155/66 +f 721/1156/66 722/1157/66 723/1155/66 +f 723/1155/66 724/1158/66 727/1089/66 +f 724/1158/66 725/1087/66 727/1089/66 +f 745/1092/65 746/1159/65 748/1160/65 +f 748/1160/65 750/1161/65 745/1092/65 +f 750/1161/65 749/1090/65 745/1092/65 +f 749/1090/65 743/1162/65 744/1091/65 +f 744/1091/65 747/1163/65 745/1092/65 +f 752/1093/66 754/1164/66 753/1094/66 +f 755/1096/65 758/1099/65 757/1097/65 +f 758/1099/67 755/1096/67 753/1100/67 +f 756/1098/68 757/1097/68 752/1093/68 +f 752/1102/69 757/1097/69 758/1099/69 +f 755/1096/70 756/1098/70 751/1104/70 s 1 -f 745/1117/52 748/1118/55 747/1119/55 -f 726/1120/56 727/1121/33 725/1122/56 -f 748/1118/55 749/1123/34 747/1119/55 -f 724/1124/51 725/1122/56 723/1125/51 -f 753/1126/57 784/1127/58 782/1128/57 -f 765/1129/59 781/1130/60 778/1131/59 -f 763/1132/61 781/1133/60 764/1134/60 -f 768/1135/58 783/1136/62 784/1137/58 -f 753/1138/57 780/1139/63 762/1140/63 -f 766/1141/64 783/1142/62 767/1143/62 -f 763/1132/61 780/1144/63 779/1145/61 -f 760/1146/62 776/1147/58 761/1148/58 -f 756/1149/61 772/1150/60 757/1151/60 -f 754/1152/57 769/1153/63 755/1154/63 -f 758/1155/59 774/1156/64 759/1157/64 -f 758/1155/59 772/1158/60 773/1159/59 -f 754/1160/57 776/1161/58 770/1162/57 -f 759/1157/64 775/1163/62 760/1146/62 -f 765/1129/59 777/1164/64 766/1141/64 -f 755/1154/63 771/1165/61 756/1149/61 -f 712/1166/65 713/1167/42 711/1168/65 -f 714/1169/42 715/1170/36 713/1167/42 -f 716/1171/36 717/1172/41 715/1170/36 -f 718/1173/41 719/1174/66 717/1172/41 -f 727/1121/33 730/1175/67 729/1176/67 -f 744/1177/67 745/1117/52 743/1178/67 -f 730/1175/67 731/1179/52 729/1176/67 -f 741/1180/33 744/1177/67 743/1178/67 -f 731/1179/52 734/1181/55 733/1182/55 -f 752/1183/68 722/1184/51 751/1185/68 -f 739/1186/56 742/1187/33 741/1180/33 -f 734/1181/55 735/1188/34 733/1182/55 -f 722/1189/51 740/1190/56 739/1186/56 -f 736/1191/34 737/1192/68 735/1188/34 -f 750/1193/34 751/1185/68 749/1123/34 -f 738/1194/68 723/1195/51 737/1192/68 -f 745/1117/52 746/1196/52 748/1118/55 -f 726/1120/56 728/1197/33 727/1121/33 -f 748/1118/55 750/1193/34 749/1123/34 -f 724/1124/51 726/1120/56 725/1122/56 -f 753/1126/57 768/1135/58 784/1127/58 -f 765/1129/59 764/1134/60 781/1130/60 -f 763/1132/61 779/1198/61 781/1133/60 -f 768/1135/58 767/1143/62 783/1136/62 -f 753/1138/57 782/1199/57 780/1139/63 -f 766/1141/64 777/1200/64 783/1142/62 -f 763/1132/61 762/1140/63 780/1144/63 -f 760/1146/62 775/1201/62 776/1147/58 -f 756/1149/61 771/1202/61 772/1150/60 -f 754/1152/57 770/1203/57 769/1153/63 -f 758/1155/59 773/1204/59 774/1156/64 -f 758/1155/59 757/1151/60 772/1158/60 -f 754/1160/57 761/1148/58 776/1161/58 -f 759/1157/64 774/1205/64 775/1163/62 -f 765/1129/59 778/1206/59 777/1164/64 -f 755/1154/63 769/1207/63 771/1165/61 -f 712/1166/65 714/1169/42 713/1167/42 -f 714/1169/42 716/1171/36 715/1170/36 -f 716/1171/36 718/1173/41 717/1172/41 -f 718/1173/41 720/1208/66 719/1174/66 -f 727/1121/33 728/1197/33 730/1175/67 -f 744/1177/67 746/1196/52 745/1117/52 -f 730/1175/67 732/1209/52 731/1179/52 -f 741/1180/33 742/1187/33 744/1177/67 -f 731/1179/52 732/1209/52 734/1181/55 -f 752/1183/68 721/1210/51 722/1184/51 -f 739/1186/56 740/1190/56 742/1187/33 -f 734/1181/55 736/1191/34 735/1188/34 -f 722/1189/51 721/1211/51 740/1190/56 -f 736/1191/34 738/1194/68 737/1192/68 -f 750/1193/34 752/1183/68 751/1185/68 -f 738/1194/68 724/1212/51 723/1195/51 +f 793/1165/68 796/1166/71 795/1167/71 +f 774/1168/72 775/1169/49 773/1170/72 +f 796/1166/71 797/1171/50 795/1167/71 +f 772/1172/67 773/1170/72 771/1173/67 +f 801/1174/73 832/1175/74 830/1176/73 +f 813/1177/75 829/1178/76 826/1179/75 +f 811/1180/77 829/1181/76 812/1182/76 +f 816/1183/74 831/1184/78 832/1185/74 +f 801/1186/73 828/1187/79 810/1188/79 +f 814/1189/80 831/1190/78 815/1191/78 +f 811/1180/77 828/1192/79 827/1193/77 +f 808/1194/78 824/1195/74 809/1196/74 +f 804/1197/77 820/1198/76 805/1199/76 +f 802/1200/73 817/1201/79 803/1202/79 +f 806/1203/75 822/1204/80 807/1205/80 +f 806/1203/75 820/1206/76 821/1207/75 +f 802/1208/73 824/1209/74 818/1210/73 +f 807/1205/80 823/1211/78 808/1194/78 +f 813/1177/75 825/1212/80 814/1189/80 +f 803/1202/79 819/1213/77 804/1197/77 +f 760/1214/81 761/1215/58 759/1216/81 +f 762/1217/58 763/1218/52 761/1215/58 +f 764/1219/52 765/1220/57 763/1218/52 +f 766/1221/57 767/1222/82 765/1220/57 +f 775/1169/49 778/1223/83 777/1224/83 +f 792/1225/83 793/1165/68 791/1226/83 +f 778/1223/83 779/1227/68 777/1224/83 +f 789/1228/49 792/1225/83 791/1226/83 +f 779/1227/68 782/1229/71 781/1230/71 +f 800/1231/84 770/1232/67 799/1233/84 +f 787/1234/72 790/1235/49 789/1228/49 +f 782/1229/71 783/1236/50 781/1230/71 +f 770/1237/67 788/1238/72 787/1234/72 +f 784/1239/50 785/1240/84 783/1236/50 +f 798/1241/50 799/1233/84 797/1171/50 +f 786/1242/84 771/1243/67 785/1240/84 +f 793/1165/68 794/1244/68 796/1166/71 +f 774/1168/72 776/1245/49 775/1169/49 +f 796/1166/71 798/1241/50 797/1171/50 +f 772/1172/67 774/1168/72 773/1170/72 +f 801/1174/73 816/1183/74 832/1175/74 +f 813/1177/75 812/1182/76 829/1178/76 +f 811/1180/77 827/1246/77 829/1181/76 +f 816/1183/74 815/1191/78 831/1184/78 +f 801/1186/73 830/1247/73 828/1187/79 +f 814/1189/80 825/1248/80 831/1190/78 +f 811/1180/77 810/1188/79 828/1192/79 +f 808/1194/78 823/1249/78 824/1195/74 +f 804/1197/77 819/1250/77 820/1198/76 +f 802/1200/73 818/1251/73 817/1201/79 +f 806/1203/75 821/1252/75 822/1204/80 +f 806/1203/75 805/1199/76 820/1206/76 +f 802/1208/73 809/1196/74 824/1209/74 +f 807/1205/80 822/1253/80 823/1211/78 +f 813/1177/75 826/1254/75 825/1212/80 +f 803/1202/79 817/1255/79 819/1213/77 +f 760/1214/81 762/1217/58 761/1215/58 +f 762/1217/58 764/1219/52 763/1218/52 +f 764/1219/52 766/1221/57 765/1220/57 +f 766/1221/57 768/1256/82 767/1222/82 +f 775/1169/49 776/1245/49 778/1223/83 +f 792/1225/83 794/1244/68 793/1165/68 +f 778/1223/83 780/1257/68 779/1227/68 +f 789/1228/49 790/1235/49 792/1225/83 +f 779/1227/68 780/1257/68 782/1229/71 +f 800/1231/84 769/1258/67 770/1232/67 +f 787/1234/72 788/1238/72 790/1235/49 +f 782/1229/71 784/1239/50 783/1236/50 +f 770/1237/67 769/1259/67 788/1238/72 +f 784/1239/50 786/1242/84 785/1240/84 +f 798/1241/50 800/1231/84 799/1233/84 +f 786/1242/84 772/1260/67 771/1243/67 o LeftLeg -v 5.000000 24.499998 3.000000 -v 5.000000 24.499998 -3.000000 -v -1.000000 24.500000 3.000000 -v -1.000000 24.500000 -3.000000 -v 4.000000 24.499998 -4.000000 -v 0.000000 24.500000 -4.000000 v 3.999996 10.999999 -2.000000 v 3.999996 10.999999 2.000000 -v -0.000001 21.500000 -4.000000 -v 3.999999 21.499998 -4.000000 v 4.499996 11.999998 2.000000 v 4.499996 11.999998 -2.000000 v 4.999996 11.999998 -2.000000 @@ -3358,19 +3500,11 @@ vt 0.428571 0.796296 vt 0.428571 0.944444 vt 0.392857 0.759259 vt 0.250000 0.796296 -vt 0.142857 0.407407 -vt -0.000000 0.425926 -vt -0.000000 0.407407 -vt 0.392857 0.407407 -vt 0.250000 0.425926 -vt 0.250000 0.407407 -vt 0.642857 0.407407 -vt 0.500000 0.425926 -vt 0.500000 0.407407 vt 0.732143 0.425926 vt 0.750000 0.740741 vt 0.732143 0.740741 vt 0.482143 0.740741 +vt 0.500000 0.425926 vt 0.500000 0.740741 vt 0.910714 0.740741 vt 0.946429 0.425926 @@ -3388,6 +3522,7 @@ vt 0.392857 0.425926 vt 0.392857 0.740741 vt 0.446429 0.740741 vt 0.482143 0.425926 +vt 0.250000 0.425926 vt 0.160714 0.425926 vt 0.160714 0.740741 vt 0.696429 0.740741 @@ -3404,24 +3539,8 @@ vt 1.000000 0.740741 vt 0.410714 0.425926 vt 0.642857 0.425926 vt 0.000000 0.740741 -vt 0.750000 0.407407 -vt 0.892857 0.407407 -vt 0.678571 0.407407 -vt 0.642857 0.407407 -vt 0.642857 0.259259 -vt 0.464286 0.407407 -vt 0.428571 0.407407 -vt 0.428571 0.259259 -vt 0.214286 0.259259 -vt 0.178571 0.407407 -vt 0.035714 0.407407 -vt 0.392857 0.259259 -vt 0.250000 0.370370 -vt 0.250000 0.259259 -vt 0.214286 0.407407 vt 0.392857 1.000000 vt 0.250000 0.759259 -vt 0.392857 0.370370 vt 0.214286 0.944444 vt 0.196429 0.796296 vt 0.214286 0.796296 @@ -3682,361 +3801,316 @@ vt 0.071429 0.759259 vt -0.000000 0.759259 vt 0.017857 0.796296 vt -0.000000 0.796296 -vt 0.214286 0.222222 -vt 0.214286 -0.000000 -vt 0.428571 0.000000 vt 0.214286 0.981481 vt 0.392857 0.944444 vt 0.428571 0.981481 vt 0.428571 0.759259 vt 0.910714 0.425926 vt 0.232143 0.425926 -vt 0.857143 0.259259 -vt 0.821429 0.407407 -vt 0.857143 0.407407 -vt 0.607143 0.407407 -vt -0.000000 0.407407 -vt 0.000000 0.259259 +vt -0.000000 0.425926 vt 0.250000 1.000000 vt 0.196429 0.944444 vt 0.589286 0.740741 vt 0.446429 0.759259 -vt 0.428571 0.222222 vn -0.0000 -0.7071 0.7071 vn 0.7071 -0.7071 0.0000 vn -0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 0.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 vn 1.0000 -0.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn -0.7071 0.0000 -0.7071 -vn 0.7071 -0.0000 -0.7071 +vn -0.0000 -1.0000 0.0000 vn -0.7071 -0.7071 0.0000 vn 0.0000 0.4472 -0.8944 vn 0.4472 -0.0000 -0.8944 vn -0.0000 -0.4472 -0.8944 vn -0.4472 0.0000 -0.8944 s off -f 801/1213/69 813/1214/69 835/1215/69 -f 791/1216/70 797/1217/70 798/1218/70 -f 802/1219/71 791/1216/71 836/1220/71 -f 827/1221/72 832/1222/72 828/1223/72 -f 822/1224/72 826/1225/72 834/1226/72 -f 818/1227/72 816/1228/72 817/1229/72 -f 821/1230/73 803/1231/73 801/1232/73 -f 797/1233/74 816/1228/74 796/1234/74 -f 813/1235/74 829/1236/74 809/1237/74 -f 823/1238/74 805/1239/74 803/1231/74 -f 795/1240/75 818/1241/75 798/1242/75 -f 830/1243/75 814/1244/75 810/1245/75 -f 806/1246/75 824/1247/75 804/1248/75 -f 800/1249/76 817/1250/76 797/1233/76 -f 814/1244/76 826/1225/76 806/1246/76 -f 827/1251/73 810/1245/73 807/1252/73 -f 818/1241/76 799/1253/76 798/1242/76 -f 825/1254/76 813/1235/76 805/1239/76 -f 809/1237/73 828/1255/73 808/1256/73 -f 819/1257/74 801/1232/74 799/1253/74 -f 831/1258/74 807/1252/74 811/1259/74 -f 802/1260/75 820/1261/75 800/1249/75 -f 808/1256/75 832/1262/75 812/1263/75 -f 804/1248/73 822/1264/73 802/1260/73 -f 796/1234/76 815/1265/76 795/1240/76 -f 812/1266/73 831/1258/73 811/1259/73 -f 825/1254/72 821/1267/72 833/1268/72 -f 821/1269/74 819/1270/74 785/1271/74 -f 817/1272/76 820/1273/76 786/1274/76 -f 788/1275/73 827/1276/73 828/1277/73 -f 789/1278/75 793/1279/75 790/1280/75 -f 834/1226/71 830/1281/71 793/1279/71 -f 803/1282/77 813/1214/77 801/1213/77 -f 814/1283/77 804/1248/77 802/1219/77 -f 793/1279/78 788/1275/78 790/1280/78 -f 786/1274/79 794/1284/79 789/1278/79 -f 808/1285/77 811/1286/77 807/1287/77 -f 798/1218/77 796/1288/77 795/1289/77 -f 791/1216/72 835/1215/72 836/1220/72 -f 807/1287/80 810/1290/80 836/1220/80 -f 851/1291/75 849/1292/75 850/1293/75 -f 843/1294/75 841/1295/75 842/1296/75 -f 840/1297/73 843/1294/73 838/1298/73 -f 837/1299/76 841/1295/76 839/1300/76 -f 839/1301/77 844/1302/77 840/1303/77 -f 838/1304/72 842/1296/72 837/1305/72 -f 848/1306/73 851/1291/73 846/1307/73 -f 845/1308/76 849/1292/76 847/1309/76 -f 847/1310/77 852/1311/77 848/1312/77 -f 846/1313/72 850/1293/72 845/1314/72 -f 859/1315/72 855/1316/72 860/1317/72 -f 858/1318/77 853/1319/77 857/1320/77 -f 860/1321/76 856/1322/76 858/1323/76 -f 857/1324/73 854/1325/73 859/1326/73 -f 867/1327/72 863/1328/72 868/1329/72 -f 866/1330/77 861/1331/77 865/1332/77 -f 868/1333/76 864/1334/76 866/1335/76 -f 865/1336/73 862/1337/73 867/1338/73 -f 862/1337/75 864/1334/75 863/1328/75 -f 854/1325/75 856/1322/75 855/1316/75 -f 870/1339/72 871/1340/72 869/1341/72 -f 878/1342/75 880/1343/75 879/1344/75 -f 877/1345/81 879/1344/81 874/1346/81 -f 872/1347/82 878/1342/82 877/1345/82 -f 870/1339/83 876/1348/83 872/1347/83 -f 873/1349/77 877/1345/77 874/1346/77 -f 874/1346/84 880/1343/84 870/1339/84 -f 871/1350/76 877/1345/76 875/1351/76 -f 869/1352/73 874/1346/73 870/1339/73 -f 895/1353/76 893/1354/76 894/1355/76 -f 887/1356/76 885/1357/76 886/1358/76 -f 884/1359/75 887/1356/75 882/1360/75 -f 881/1361/74 885/1357/74 883/1362/74 -f 883/1363/77 888/1364/77 884/1365/77 -f 882/1366/72 886/1358/72 881/1367/72 -f 892/1368/75 895/1353/75 890/1369/75 -f 889/1370/74 893/1354/74 891/1371/74 -f 891/1372/77 896/1373/77 892/1374/77 -f 890/1375/72 894/1355/72 889/1376/72 -f 911/1377/76 909/1378/76 910/1379/76 -f 903/1380/76 901/1381/76 902/1382/76 -f 900/1383/75 903/1380/75 898/1384/75 -f 897/1385/74 901/1381/74 899/1386/74 -f 899/1387/77 904/1388/77 900/1389/77 -f 898/1390/72 902/1382/72 897/1391/72 -f 908/1392/75 911/1377/75 906/1393/75 -f 905/1394/74 909/1378/74 907/1395/74 -f 907/1396/77 912/1397/77 908/1398/77 -f 906/1399/72 910/1379/72 905/1400/72 -f 919/1401/72 915/1402/72 920/1403/72 -f 918/1404/77 913/1405/77 917/1406/77 -f 920/1407/74 916/1408/74 918/1409/74 -f 917/1410/75 914/1411/75 919/1412/75 -f 927/1413/72 923/1414/72 928/1415/72 -f 926/1416/77 921/1417/77 925/1418/77 -f 928/1419/74 924/1420/74 926/1421/74 -f 925/1422/75 922/1423/75 927/1424/75 -f 922/1423/76 924/1420/76 923/1414/76 -f 914/1411/76 916/1408/76 915/1402/76 -f 935/1425/72 931/1426/72 936/1427/72 -f 934/1428/77 929/1429/77 933/1430/77 -f 936/1431/74 932/1432/74 934/1433/74 -f 933/1434/75 930/1435/75 935/1436/75 -f 943/1437/72 939/1438/72 944/1439/72 -f 942/1440/77 937/1441/77 941/1442/77 -f 944/1443/74 940/1444/74 942/1445/74 -f 941/1446/75 938/1447/75 943/1448/75 -f 938/1447/76 940/1444/76 939/1438/76 -f 930/1435/76 932/1432/76 931/1426/76 -f 959/1449/74 957/1450/74 958/1451/74 -f 951/1452/74 949/1453/74 950/1454/74 -f 948/1455/76 951/1452/76 946/1456/76 -f 945/1457/73 949/1453/73 947/1458/73 -f 947/1459/77 952/1460/77 948/1461/77 -f 946/1462/72 950/1454/72 945/1463/72 -f 956/1464/76 959/1449/76 954/1465/76 -f 953/1466/73 957/1450/73 955/1467/73 -f 955/1468/77 960/1469/77 956/1470/77 -f 954/1471/72 958/1451/72 953/1472/72 -f 975/1473/74 973/1474/74 974/1475/74 -f 967/1476/74 965/1477/74 966/1478/74 -f 964/1479/76 967/1476/76 962/1480/76 -f 961/1481/73 965/1477/73 963/1482/73 -f 963/1483/77 968/1484/77 964/1485/77 -f 962/1486/72 966/1478/72 961/1487/72 -f 972/1488/76 975/1473/76 970/1489/76 -f 969/1490/73 973/1474/73 971/1491/73 -f 971/1492/77 976/1493/77 972/1494/77 -f 970/1495/72 974/1475/72 969/1496/72 -f 983/1497/72 979/1498/72 984/1499/72 -f 982/1500/77 977/1501/77 981/1502/77 -f 984/1503/73 980/1504/73 982/1505/73 -f 981/1506/76 978/1507/76 983/1508/76 -f 991/1509/72 987/1510/72 992/1511/72 -f 990/1512/77 985/1513/77 989/1514/77 -f 992/1515/73 988/1516/73 990/1517/73 -f 989/1518/76 986/1519/76 991/1520/76 -f 986/1519/74 988/1516/74 987/1510/74 -f 978/1507/74 980/1504/74 979/1498/74 -f 999/1521/72 995/1522/72 1000/1523/72 -f 998/1524/77 993/1525/77 997/1526/77 -f 1000/1527/73 996/1528/73 998/1529/73 -f 997/1530/76 994/1531/76 999/1532/76 -f 1007/1533/72 1003/1534/72 1008/1535/72 -f 1006/1536/77 1001/1537/77 1005/1538/77 -f 1008/1539/73 1004/1540/73 1006/1541/73 -f 1005/1542/76 1002/1543/76 1007/1544/76 -f 1002/1543/74 1004/1540/74 1003/1534/74 -f 994/1531/74 996/1528/74 995/1522/74 -f 788/1545/77 787/1546/77 785/1547/77 -f 813/1214/69 809/1548/69 835/1215/69 -f 835/1215/69 792/1549/69 801/1213/69 -f 792/1549/69 799/1550/69 801/1213/69 -f 799/1550/70 792/1549/70 798/1218/70 -f 792/1549/70 791/1216/70 798/1218/70 -f 791/1216/70 800/1551/70 797/1217/70 -f 836/1220/71 810/1290/71 814/1283/71 -f 802/1219/71 800/1551/71 791/1216/71 -f 836/1220/71 814/1283/71 802/1219/71 -f 827/1221/72 831/1258/72 832/1222/72 -f 822/1224/72 824/1247/72 826/1225/72 -f 818/1227/72 815/1265/72 816/1228/72 -f 821/1230/73 823/1238/73 803/1231/73 -f 797/1233/74 817/1250/74 816/1228/74 -f 813/1235/74 833/1552/74 829/1236/74 -f 823/1238/74 825/1254/74 805/1239/74 -f 795/1240/75 815/1265/75 818/1241/75 -f 830/1243/75 834/1553/75 814/1244/75 -f 806/1246/75 826/1225/75 824/1247/75 -f 800/1249/76 820/1261/76 817/1250/76 -f 814/1244/76 834/1553/76 826/1225/76 -f 827/1251/73 830/1243/73 810/1245/73 -f 818/1241/76 819/1257/76 799/1253/76 -f 825/1254/76 833/1552/76 813/1235/76 -f 809/1237/73 829/1236/73 828/1255/73 -f 819/1257/74 821/1230/74 801/1232/74 -f 831/1258/74 827/1251/74 807/1252/74 -f 802/1260/75 822/1264/75 820/1261/75 -f 808/1256/75 828/1255/75 832/1262/75 -f 804/1248/73 824/1247/73 822/1264/73 -f 796/1234/76 816/1228/76 815/1265/76 -f 812/1266/73 832/1222/73 831/1258/73 -f 825/1254/72 823/1238/72 821/1267/72 -f 785/1271/74 787/1554/74 833/1555/74 -f 787/1554/74 829/1556/74 833/1555/74 -f 833/1555/74 821/1269/74 785/1271/74 -f 786/1274/76 785/1271/76 818/1557/76 -f 785/1271/76 819/1270/76 818/1557/76 -f 818/1557/76 817/1272/76 786/1274/76 -f 829/1558/73 787/1559/73 828/1277/73 -f 787/1559/73 788/1275/73 828/1277/73 -f 788/1275/73 830/1281/73 827/1276/73 -f 789/1278/75 794/1284/75 793/1279/75 -f 793/1279/71 794/1284/71 822/1224/71 -f 794/1284/71 820/1273/71 822/1224/71 -f 822/1224/71 834/1226/71 793/1279/71 -f 803/1282/77 805/1560/77 813/1214/77 -f 814/1283/77 806/1246/77 804/1248/77 -f 793/1279/78 830/1281/78 788/1275/78 -f 786/1274/79 820/1273/79 794/1284/79 -f 808/1285/77 812/1561/77 811/1286/77 -f 798/1218/77 797/1217/77 796/1288/77 -f 791/1216/72 792/1549/72 835/1215/72 -f 836/1220/80 835/1215/80 808/1285/80 -f 835/1215/80 809/1548/80 808/1285/80 -f 808/1285/80 807/1287/80 836/1220/80 -f 851/1291/75 852/1311/75 849/1292/75 -f 843/1294/75 844/1302/75 841/1295/75 -f 840/1297/73 844/1302/73 843/1294/73 -f 837/1299/76 842/1296/76 841/1295/76 -f 839/1301/77 841/1295/77 844/1302/77 -f 838/1304/72 843/1294/72 842/1296/72 -f 848/1306/73 852/1311/73 851/1291/73 -f 845/1308/76 850/1293/76 849/1292/76 -f 847/1310/77 849/1292/77 852/1311/77 -f 846/1313/72 851/1291/72 850/1293/72 -f 859/1315/72 854/1325/72 855/1316/72 -f 858/1318/77 856/1322/77 853/1319/77 -f 860/1321/76 855/1316/76 856/1322/76 -f 857/1324/73 853/1319/73 854/1325/73 -f 867/1327/72 862/1337/72 863/1328/72 -f 866/1330/77 864/1334/77 861/1331/77 -f 868/1333/76 863/1328/76 864/1334/76 -f 865/1336/73 861/1331/73 862/1337/73 -f 862/1337/75 861/1331/75 864/1334/75 -f 854/1325/75 853/1319/75 856/1322/75 -f 870/1339/72 872/1347/72 871/1340/72 -f 878/1342/75 876/1348/75 880/1343/75 -f 877/1345/81 878/1342/81 879/1344/81 -f 872/1347/82 876/1348/82 878/1342/82 -f 870/1339/83 880/1343/83 876/1348/83 -f 873/1349/77 875/1562/77 877/1345/77 -f 874/1346/84 879/1344/84 880/1343/84 -f 871/1350/76 872/1347/76 877/1345/76 -f 869/1352/73 873/1563/73 874/1346/73 -f 895/1353/76 896/1373/76 893/1354/76 -f 887/1356/76 888/1364/76 885/1357/76 -f 884/1359/75 888/1364/75 887/1356/75 -f 881/1361/74 886/1358/74 885/1357/74 -f 883/1363/77 885/1357/77 888/1364/77 -f 882/1366/72 887/1356/72 886/1358/72 -f 892/1368/75 896/1373/75 895/1353/75 -f 889/1370/74 894/1355/74 893/1354/74 -f 891/1372/77 893/1354/77 896/1373/77 -f 890/1375/72 895/1353/72 894/1355/72 -f 911/1377/76 912/1397/76 909/1378/76 -f 903/1380/76 904/1388/76 901/1381/76 -f 900/1383/75 904/1388/75 903/1380/75 -f 897/1385/74 902/1382/74 901/1381/74 -f 899/1387/77 901/1381/77 904/1388/77 -f 898/1390/72 903/1380/72 902/1382/72 -f 908/1392/75 912/1397/75 911/1377/75 -f 905/1394/74 910/1379/74 909/1378/74 -f 907/1396/77 909/1378/77 912/1397/77 -f 906/1399/72 911/1377/72 910/1379/72 -f 919/1401/72 914/1411/72 915/1402/72 -f 918/1404/77 916/1408/77 913/1405/77 -f 920/1407/74 915/1402/74 916/1408/74 -f 917/1410/75 913/1405/75 914/1411/75 -f 927/1413/72 922/1423/72 923/1414/72 -f 926/1416/77 924/1420/77 921/1417/77 -f 928/1419/74 923/1414/74 924/1420/74 -f 925/1422/75 921/1417/75 922/1423/75 -f 922/1423/76 921/1417/76 924/1420/76 -f 914/1411/76 913/1405/76 916/1408/76 -f 935/1425/72 930/1435/72 931/1426/72 -f 934/1428/77 932/1432/77 929/1429/77 -f 936/1431/74 931/1426/74 932/1432/74 -f 933/1434/75 929/1429/75 930/1435/75 -f 943/1437/72 938/1447/72 939/1438/72 -f 942/1440/77 940/1444/77 937/1441/77 -f 944/1443/74 939/1438/74 940/1444/74 -f 941/1446/75 937/1441/75 938/1447/75 -f 938/1447/76 937/1441/76 940/1444/76 -f 930/1435/76 929/1429/76 932/1432/76 -f 959/1449/74 960/1469/74 957/1450/74 -f 951/1452/74 952/1460/74 949/1453/74 -f 948/1455/76 952/1460/76 951/1452/76 -f 945/1457/73 950/1454/73 949/1453/73 -f 947/1459/77 949/1453/77 952/1460/77 -f 946/1462/72 951/1452/72 950/1454/72 -f 956/1464/76 960/1469/76 959/1449/76 -f 953/1466/73 958/1451/73 957/1450/73 -f 955/1468/77 957/1450/77 960/1469/77 -f 954/1471/72 959/1449/72 958/1451/72 -f 975/1473/74 976/1493/74 973/1474/74 -f 967/1476/74 968/1484/74 965/1477/74 -f 964/1479/76 968/1484/76 967/1476/76 -f 961/1481/73 966/1478/73 965/1477/73 -f 963/1483/77 965/1477/77 968/1484/77 -f 962/1486/72 967/1476/72 966/1478/72 -f 972/1488/76 976/1493/76 975/1473/76 -f 969/1490/73 974/1475/73 973/1474/73 -f 971/1492/77 973/1474/77 976/1493/77 -f 970/1495/72 975/1473/72 974/1475/72 -f 983/1497/72 978/1507/72 979/1498/72 -f 982/1500/77 980/1504/77 977/1501/77 -f 984/1503/73 979/1498/73 980/1504/73 -f 981/1506/76 977/1501/76 978/1507/76 -f 991/1509/72 986/1519/72 987/1510/72 -f 990/1512/77 988/1516/77 985/1513/77 -f 992/1515/73 987/1510/73 988/1516/73 -f 989/1518/76 985/1513/76 986/1519/76 -f 986/1519/74 985/1513/74 988/1516/74 -f 978/1507/74 977/1501/74 980/1504/74 -f 999/1521/72 994/1531/72 995/1522/72 -f 998/1524/77 996/1528/77 993/1525/77 -f 1000/1527/73 995/1522/73 996/1528/73 -f 997/1530/76 993/1525/76 994/1531/76 -f 1007/1533/72 1002/1543/72 1003/1534/72 -f 1006/1536/77 1004/1540/77 1001/1537/77 -f 1008/1539/73 1003/1534/73 1004/1540/73 -f 1005/1542/76 1001/1537/76 1002/1543/76 -f 1002/1543/74 1001/1537/74 1004/1540/74 -f 994/1531/74 993/1525/74 996/1528/74 -f 785/1547/77 786/1564/77 788/1545/77 -f 786/1564/77 789/1278/77 788/1545/77 -f 789/1278/77 790/1280/77 788/1545/77 +f 841/1261/85 853/1262/85 875/1263/85 +f 833/1264/86 837/1265/86 838/1266/86 +f 842/1267/87 833/1264/87 876/1268/87 +f 861/1269/88 843/1270/88 841/1271/88 +f 837/1272/89 856/1273/89 836/1274/89 +f 853/1275/89 869/1276/89 849/1277/89 +f 863/1278/89 845/1279/89 843/1270/89 +f 835/1280/90 858/1281/90 838/1282/90 +f 870/1283/90 854/1284/90 850/1285/90 +f 846/1286/90 864/1287/90 844/1288/90 +f 840/1289/91 857/1290/91 837/1272/91 +f 854/1284/91 866/1291/91 846/1286/91 +f 867/1292/88 850/1285/88 847/1293/88 +f 858/1281/91 839/1294/91 838/1282/91 +f 865/1295/91 853/1275/91 845/1279/91 +f 849/1277/88 868/1296/88 848/1297/88 +f 859/1298/89 841/1271/89 839/1294/89 +f 871/1299/89 847/1293/89 851/1300/89 +f 842/1301/90 860/1302/90 840/1289/90 +f 848/1297/90 872/1303/90 852/1304/90 +f 844/1288/88 862/1305/88 842/1301/88 +f 836/1274/91 855/1306/91 835/1280/91 +f 852/1307/88 871/1299/88 851/1300/88 +f 843/1308/92 853/1262/92 841/1261/92 +f 854/1309/92 844/1288/92 842/1267/92 +f 848/1310/92 851/1311/92 847/1312/92 +f 838/1266/92 836/1313/92 835/1314/92 +f 833/1264/93 875/1263/93 876/1268/93 +f 847/1312/94 850/1315/94 876/1268/94 +f 891/1316/90 889/1317/90 890/1318/90 +f 883/1319/90 881/1320/90 882/1321/90 +f 880/1322/88 883/1319/88 878/1323/88 +f 877/1324/91 881/1320/91 879/1325/91 +f 879/1326/92 884/1327/92 880/1328/92 +f 878/1329/93 882/1321/93 877/1330/93 +f 888/1331/88 891/1316/88 886/1332/88 +f 885/1333/91 889/1317/91 887/1334/91 +f 887/1335/92 892/1336/92 888/1337/92 +f 886/1338/93 890/1318/93 885/1339/93 +f 899/1340/93 895/1341/93 900/1342/93 +f 898/1343/92 893/1344/92 897/1345/92 +f 900/1346/91 896/1347/91 898/1348/91 +f 897/1349/88 894/1350/88 899/1351/88 +f 907/1352/93 903/1353/93 908/1354/93 +f 906/1355/92 901/1356/92 905/1357/92 +f 908/1358/91 904/1359/91 906/1360/91 +f 905/1361/88 902/1362/88 907/1363/88 +f 902/1362/90 904/1359/90 903/1353/90 +f 894/1350/90 896/1347/90 895/1341/90 +f 910/1364/93 911/1365/93 909/1366/93 +f 918/1367/90 920/1368/90 919/1369/90 +f 917/1370/95 919/1369/95 914/1371/95 +f 912/1372/96 918/1367/96 917/1370/96 +f 910/1364/97 916/1373/97 912/1372/97 +f 913/1374/92 917/1370/92 914/1371/92 +f 914/1371/98 920/1368/98 910/1364/98 +f 911/1375/91 917/1370/91 915/1376/91 +f 909/1377/88 914/1371/88 910/1364/88 +f 935/1378/91 933/1379/91 934/1380/91 +f 927/1381/91 925/1382/91 926/1383/91 +f 924/1384/90 927/1381/90 922/1385/90 +f 921/1386/89 925/1382/89 923/1387/89 +f 923/1388/92 928/1389/92 924/1390/92 +f 922/1391/93 926/1383/93 921/1392/93 +f 932/1393/90 935/1378/90 930/1394/90 +f 929/1395/89 933/1379/89 931/1396/89 +f 931/1397/92 936/1398/92 932/1399/92 +f 930/1400/93 934/1380/93 929/1401/93 +f 951/1402/91 949/1403/91 950/1404/91 +f 943/1405/91 941/1406/91 942/1407/91 +f 940/1408/90 943/1405/90 938/1409/90 +f 937/1410/89 941/1406/89 939/1411/89 +f 939/1412/92 944/1413/92 940/1414/92 +f 938/1415/93 942/1407/93 937/1416/93 +f 948/1417/90 951/1402/90 946/1418/90 +f 945/1419/89 949/1403/89 947/1420/89 +f 947/1421/92 952/1422/92 948/1423/92 +f 946/1424/93 950/1404/93 945/1425/93 +f 959/1426/93 955/1427/93 960/1428/93 +f 958/1429/92 953/1430/92 957/1431/92 +f 960/1432/89 956/1433/89 958/1434/89 +f 957/1435/90 954/1436/90 959/1437/90 +f 967/1438/93 963/1439/93 968/1440/93 +f 966/1441/92 961/1442/92 965/1443/92 +f 968/1444/89 964/1445/89 966/1446/89 +f 965/1447/90 962/1448/90 967/1449/90 +f 962/1448/91 964/1445/91 963/1439/91 +f 954/1436/91 956/1433/91 955/1427/91 +f 975/1450/93 971/1451/93 976/1452/93 +f 974/1453/92 969/1454/92 973/1455/92 +f 976/1456/89 972/1457/89 974/1458/89 +f 973/1459/90 970/1460/90 975/1461/90 +f 983/1462/93 979/1463/93 984/1464/93 +f 982/1465/92 977/1466/92 981/1467/92 +f 984/1468/89 980/1469/89 982/1470/89 +f 981/1471/90 978/1472/90 983/1473/90 +f 978/1472/91 980/1469/91 979/1463/91 +f 970/1460/91 972/1457/91 971/1451/91 +f 999/1474/89 997/1475/89 998/1476/89 +f 991/1477/89 989/1478/89 990/1479/89 +f 988/1480/91 991/1477/91 986/1481/91 +f 985/1482/88 989/1478/88 987/1483/88 +f 987/1484/92 992/1485/92 988/1486/92 +f 986/1487/93 990/1479/93 985/1488/93 +f 996/1489/91 999/1474/91 994/1490/91 +f 993/1491/88 997/1475/88 995/1492/88 +f 995/1493/92 1000/1494/92 996/1495/92 +f 994/1496/93 998/1476/93 993/1497/93 +f 1015/1498/89 1013/1499/89 1014/1500/89 +f 1007/1501/89 1005/1502/89 1006/1503/89 +f 1004/1504/91 1007/1501/91 1002/1505/91 +f 1001/1506/88 1005/1502/88 1003/1507/88 +f 1003/1508/92 1008/1509/92 1004/1510/92 +f 1002/1511/93 1006/1503/93 1001/1512/93 +f 1012/1513/91 1015/1498/91 1010/1514/91 +f 1009/1515/88 1013/1499/88 1011/1516/88 +f 1011/1517/92 1016/1518/92 1012/1519/92 +f 1010/1520/93 1014/1500/93 1009/1521/93 +f 1023/1522/93 1019/1523/93 1024/1524/93 +f 1022/1525/92 1017/1526/92 1021/1527/92 +f 1024/1528/88 1020/1529/88 1022/1530/88 +f 1021/1531/91 1018/1532/91 1023/1533/91 +f 1031/1534/93 1027/1535/93 1032/1536/93 +f 1030/1537/92 1025/1538/92 1029/1539/92 +f 1032/1540/88 1028/1541/88 1030/1542/88 +f 1029/1543/91 1026/1544/91 1031/1545/91 +f 1026/1544/89 1028/1541/89 1027/1535/89 +f 1018/1532/89 1020/1529/89 1019/1523/89 +f 1039/1546/93 1035/1547/93 1040/1548/93 +f 1038/1549/92 1033/1550/92 1037/1551/92 +f 1040/1552/88 1036/1553/88 1038/1554/88 +f 1037/1555/91 1034/1556/91 1039/1557/91 +f 1047/1558/93 1043/1559/93 1048/1560/93 +f 1046/1561/92 1041/1562/92 1045/1563/92 +f 1048/1564/88 1044/1565/88 1046/1566/88 +f 1045/1567/91 1042/1568/91 1047/1569/91 +f 1042/1568/89 1044/1565/89 1043/1559/89 +f 1034/1556/89 1036/1553/89 1035/1547/89 +f 853/1262/85 849/1570/85 875/1263/85 +f 875/1263/85 834/1571/85 841/1261/85 +f 834/1571/85 839/1572/85 841/1261/85 +f 839/1572/86 834/1571/86 838/1266/86 +f 834/1571/86 833/1264/86 838/1266/86 +f 833/1264/86 840/1573/86 837/1265/86 +f 876/1268/87 850/1315/87 854/1309/87 +f 842/1267/87 840/1573/87 833/1264/87 +f 876/1268/87 854/1309/87 842/1267/87 +f 861/1269/88 863/1278/88 843/1270/88 +f 837/1272/89 857/1290/89 856/1273/89 +f 853/1275/89 873/1574/89 869/1276/89 +f 863/1278/89 865/1295/89 845/1279/89 +f 835/1280/90 855/1306/90 858/1281/90 +f 870/1283/90 874/1575/90 854/1284/90 +f 846/1286/90 866/1291/90 864/1287/90 +f 840/1289/91 860/1302/91 857/1290/91 +f 854/1284/91 874/1575/91 866/1291/91 +f 867/1292/88 870/1283/88 850/1285/88 +f 858/1281/91 859/1298/91 839/1294/91 +f 865/1295/91 873/1574/91 853/1275/91 +f 849/1277/88 869/1276/88 868/1296/88 +f 859/1298/89 861/1269/89 841/1271/89 +f 871/1299/89 867/1292/89 847/1293/89 +f 842/1301/90 862/1305/90 860/1302/90 +f 848/1297/90 868/1296/90 872/1303/90 +f 844/1288/88 864/1287/88 862/1305/88 +f 836/1274/91 856/1273/91 855/1306/91 +f 852/1307/88 872/1576/88 871/1299/88 +f 843/1308/92 845/1577/92 853/1262/92 +f 854/1309/92 846/1286/92 844/1288/92 +f 848/1310/92 852/1578/92 851/1311/92 +f 838/1266/92 837/1265/92 836/1313/92 +f 833/1264/93 834/1571/93 875/1263/93 +f 876/1268/94 875/1263/94 848/1310/94 +f 875/1263/94 849/1570/94 848/1310/94 +f 848/1310/94 847/1312/94 876/1268/94 +f 891/1316/90 892/1336/90 889/1317/90 +f 883/1319/90 884/1327/90 881/1320/90 +f 880/1322/88 884/1327/88 883/1319/88 +f 877/1324/91 882/1321/91 881/1320/91 +f 879/1326/92 881/1320/92 884/1327/92 +f 878/1329/93 883/1319/93 882/1321/93 +f 888/1331/88 892/1336/88 891/1316/88 +f 885/1333/91 890/1318/91 889/1317/91 +f 887/1335/92 889/1317/92 892/1336/92 +f 886/1338/93 891/1316/93 890/1318/93 +f 899/1340/93 894/1350/93 895/1341/93 +f 898/1343/92 896/1347/92 893/1344/92 +f 900/1346/91 895/1341/91 896/1347/91 +f 897/1349/88 893/1344/88 894/1350/88 +f 907/1352/93 902/1362/93 903/1353/93 +f 906/1355/92 904/1359/92 901/1356/92 +f 908/1358/91 903/1353/91 904/1359/91 +f 905/1361/88 901/1356/88 902/1362/88 +f 902/1362/90 901/1356/90 904/1359/90 +f 894/1350/90 893/1344/90 896/1347/90 +f 910/1364/93 912/1372/93 911/1365/93 +f 918/1367/90 916/1373/90 920/1368/90 +f 917/1370/95 918/1367/95 919/1369/95 +f 912/1372/96 916/1373/96 918/1367/96 +f 910/1364/97 920/1368/97 916/1373/97 +f 913/1374/92 915/1579/92 917/1370/92 +f 914/1371/98 919/1369/98 920/1368/98 +f 911/1375/91 912/1372/91 917/1370/91 +f 909/1377/88 913/1580/88 914/1371/88 +f 935/1378/91 936/1398/91 933/1379/91 +f 927/1381/91 928/1389/91 925/1382/91 +f 924/1384/90 928/1389/90 927/1381/90 +f 921/1386/89 926/1383/89 925/1382/89 +f 923/1388/92 925/1382/92 928/1389/92 +f 922/1391/93 927/1381/93 926/1383/93 +f 932/1393/90 936/1398/90 935/1378/90 +f 929/1395/89 934/1380/89 933/1379/89 +f 931/1397/92 933/1379/92 936/1398/92 +f 930/1400/93 935/1378/93 934/1380/93 +f 951/1402/91 952/1422/91 949/1403/91 +f 943/1405/91 944/1413/91 941/1406/91 +f 940/1408/90 944/1413/90 943/1405/90 +f 937/1410/89 942/1407/89 941/1406/89 +f 939/1412/92 941/1406/92 944/1413/92 +f 938/1415/93 943/1405/93 942/1407/93 +f 948/1417/90 952/1422/90 951/1402/90 +f 945/1419/89 950/1404/89 949/1403/89 +f 947/1421/92 949/1403/92 952/1422/92 +f 946/1424/93 951/1402/93 950/1404/93 +f 959/1426/93 954/1436/93 955/1427/93 +f 958/1429/92 956/1433/92 953/1430/92 +f 960/1432/89 955/1427/89 956/1433/89 +f 957/1435/90 953/1430/90 954/1436/90 +f 967/1438/93 962/1448/93 963/1439/93 +f 966/1441/92 964/1445/92 961/1442/92 +f 968/1444/89 963/1439/89 964/1445/89 +f 965/1447/90 961/1442/90 962/1448/90 +f 962/1448/91 961/1442/91 964/1445/91 +f 954/1436/91 953/1430/91 956/1433/91 +f 975/1450/93 970/1460/93 971/1451/93 +f 974/1453/92 972/1457/92 969/1454/92 +f 976/1456/89 971/1451/89 972/1457/89 +f 973/1459/90 969/1454/90 970/1460/90 +f 983/1462/93 978/1472/93 979/1463/93 +f 982/1465/92 980/1469/92 977/1466/92 +f 984/1468/89 979/1463/89 980/1469/89 +f 981/1471/90 977/1466/90 978/1472/90 +f 978/1472/91 977/1466/91 980/1469/91 +f 970/1460/91 969/1454/91 972/1457/91 +f 999/1474/89 1000/1494/89 997/1475/89 +f 991/1477/89 992/1485/89 989/1478/89 +f 988/1480/91 992/1485/91 991/1477/91 +f 985/1482/88 990/1479/88 989/1478/88 +f 987/1484/92 989/1478/92 992/1485/92 +f 986/1487/93 991/1477/93 990/1479/93 +f 996/1489/91 1000/1494/91 999/1474/91 +f 993/1491/88 998/1476/88 997/1475/88 +f 995/1493/92 997/1475/92 1000/1494/92 +f 994/1496/93 999/1474/93 998/1476/93 +f 1015/1498/89 1016/1518/89 1013/1499/89 +f 1007/1501/89 1008/1509/89 1005/1502/89 +f 1004/1504/91 1008/1509/91 1007/1501/91 +f 1001/1506/88 1006/1503/88 1005/1502/88 +f 1003/1508/92 1005/1502/92 1008/1509/92 +f 1002/1511/93 1007/1501/93 1006/1503/93 +f 1012/1513/91 1016/1518/91 1015/1498/91 +f 1009/1515/88 1014/1500/88 1013/1499/88 +f 1011/1517/92 1013/1499/92 1016/1518/92 +f 1010/1520/93 1015/1498/93 1014/1500/93 +f 1023/1522/93 1018/1532/93 1019/1523/93 +f 1022/1525/92 1020/1529/92 1017/1526/92 +f 1024/1528/88 1019/1523/88 1020/1529/88 +f 1021/1531/91 1017/1526/91 1018/1532/91 +f 1031/1534/93 1026/1544/93 1027/1535/93 +f 1030/1537/92 1028/1541/92 1025/1538/92 +f 1032/1540/88 1027/1535/88 1028/1541/88 +f 1029/1543/91 1025/1538/91 1026/1544/91 +f 1026/1544/89 1025/1538/89 1028/1541/89 +f 1018/1532/89 1017/1526/89 1020/1529/89 +f 1039/1546/93 1034/1556/93 1035/1547/93 +f 1038/1549/92 1036/1553/92 1033/1550/92 +f 1040/1552/88 1035/1547/88 1036/1553/88 +f 1037/1555/91 1033/1550/91 1034/1556/91 +f 1047/1558/93 1042/1568/93 1043/1559/93 +f 1046/1561/92 1044/1565/92 1041/1562/92 +f 1048/1564/88 1043/1559/88 1044/1565/88 +f 1045/1567/91 1041/1562/91 1042/1568/91 +f 1042/1568/89 1041/1562/89 1044/1565/89 +f 1034/1556/89 1033/1550/89 1036/1553/89 o LeftArm v 3.999992 -0.000002 -2.500000 v 3.999996 11.999999 -2.500000 @@ -4870,440 +4944,440 @@ vn 0.0000 0.7071 -0.7071 vn -0.7071 0.7071 0.0000 vn 0.2425 0.9701 0.0000 s off -f 1036/1565/85 1011/1566/85 1031/1567/85 -f 1050/1568/86 1025/1569/86 1035/1570/86 -f 1017/1571/87 1020/1572/87 1018/1573/87 -f 1023/1574/88 1022/1575/88 1021/1576/88 -f 1025/1577/89 1028/1578/89 1026/1579/89 -f 1027/1580/88 1030/1581/88 1028/1578/88 -f 1030/1581/87 1022/1575/87 1024/1582/87 -f 1009/1583/90 1026/1579/90 1010/1584/90 -f 1043/1585/91 1051/1586/91 1012/1587/91 -f 1013/1588/90 1033/1589/90 1015/1590/90 -f 1034/1591/85 1043/1585/85 1052/1592/85 -f 1009/1583/85 1035/1570/85 1025/1569/85 -f 1019/1593/88 1040/1594/88 1020/1572/88 -f 1018/1573/90 1037/1595/90 1017/1571/90 -f 1039/1596/87 1042/1597/87 1040/1594/87 -f 1041/1598/90 1044/1599/90 1042/1597/90 -f 1044/1599/89 1013/1588/89 1015/1590/89 -f 1021/1600/89 1046/1601/89 1023/1602/89 -f 1045/1603/88 1048/1604/88 1046/1601/88 -f 1048/1604/87 1037/1595/87 1038/1605/87 -f 1051/1586/92 1050/1568/92 1012/1587/92 -f 1031/1567/89 1035/1606/89 1036/1565/89 -f 1052/1607/90 1031/1567/90 1057/1608/90 -f 1037/1609/85 1019/1610/85 1017/1611/85 -f 1022/1612/85 1045/1613/85 1021/1614/85 -f 1045/1613/93 1029/1615/93 1050/1568/93 -f 1014/1616/88 1035/1606/88 1016/1617/88 -f 1034/1618/87 1057/1608/87 1033/1589/87 -f 1037/1609/94 1049/1619/94 1051/1586/94 -f 1053/1620/88 1062/1621/88 1054/1622/88 -f 1058/1623/85 1030/1581/85 1024/1624/85 -f 1058/1625/85 1026/1579/85 1028/1578/85 -f 1010/1584/89 1016/1617/89 1009/1583/89 -f 1011/1626/85 1057/1608/85 1031/1567/85 -f 1059/1627/85 1044/1599/85 1015/1628/85 -f 1040/1594/85 1059/1629/85 1020/1630/85 -f 1060/1631/85 1046/1601/85 1048/1604/85 -f 1038/1605/85 1060/1632/85 1048/1604/85 -f 1055/1633/95 1053/1634/95 1018/1573/95 -f 1055/1635/96 1059/1636/96 1015/1590/96 -f 1054/1637/97 1056/1638/97 1014/1616/97 -f 1053/1620/98 1054/1622/98 1024/1582/98 -f 1062/1639/99 1055/1635/99 1056/1640/99 -f 1054/1637/89 1062/1641/89 1056/1638/89 -f 1053/1634/87 1055/1633/87 1061/1642/87 -f 1069/1643/89 1067/1644/89 1068/1645/89 -f 1065/1646/85 1070/1647/85 1066/1648/85 -f 1064/1649/92 1068/1645/92 1063/1650/92 -f 1066/1651/88 1069/1643/88 1064/1652/88 -f 1063/1653/90 1067/1644/90 1065/1654/90 -f 1078/1655/90 1074/1656/90 1076/1657/90 -f 1075/1658/88 1072/1659/88 1077/1660/88 -f 1077/1661/92 1073/1662/92 1078/1663/92 -f 1076/1664/85 1071/1665/85 1075/1666/85 -f 1072/1659/89 1074/1656/89 1073/1662/89 -f 1086/1667/90 1082/1668/90 1084/1669/90 -f 1083/1670/88 1080/1671/88 1085/1672/88 -f 1085/1673/92 1081/1674/92 1086/1675/92 -f 1084/1676/85 1079/1677/85 1083/1678/85 -f 1080/1671/89 1082/1668/89 1081/1674/89 -f 1093/1679/89 1091/1680/89 1092/1681/89 -f 1089/1682/85 1094/1683/85 1090/1684/85 -f 1088/1685/92 1092/1681/92 1087/1686/92 -f 1090/1687/88 1093/1679/88 1088/1688/88 -f 1087/1689/90 1091/1680/90 1089/1690/90 -f 1102/1691/90 1098/1692/90 1100/1693/90 -f 1099/1694/88 1096/1695/88 1101/1696/88 -f 1101/1697/92 1097/1698/92 1102/1699/92 -f 1100/1700/85 1095/1701/85 1099/1702/85 -f 1096/1695/89 1098/1692/89 1097/1698/89 -f 1109/1703/89 1107/1704/89 1108/1705/89 -f 1105/1706/85 1110/1707/85 1106/1708/85 -f 1104/1709/92 1108/1705/92 1103/1710/92 -f 1106/1711/88 1109/1703/88 1104/1712/88 -f 1103/1713/90 1107/1704/90 1105/1714/90 -f 1117/1715/89 1115/1716/89 1116/1717/89 -f 1113/1718/85 1118/1719/85 1114/1720/85 -f 1112/1721/92 1116/1717/92 1111/1722/92 -f 1114/1723/88 1117/1715/88 1112/1724/88 -f 1111/1725/90 1115/1716/90 1113/1726/90 -f 1125/1727/89 1123/1728/89 1124/1729/89 -f 1121/1730/85 1126/1731/85 1122/1732/85 -f 1120/1733/92 1124/1729/92 1119/1734/92 -f 1122/1735/88 1125/1727/88 1120/1736/88 -f 1119/1737/90 1123/1728/90 1121/1738/90 -f 1134/1739/90 1130/1740/90 1132/1741/90 -f 1131/1742/88 1128/1743/88 1133/1744/88 -f 1133/1745/92 1129/1746/92 1134/1747/92 -f 1132/1748/85 1127/1749/85 1131/1750/85 -f 1128/1743/89 1130/1740/89 1129/1746/89 -f 1142/1751/90 1138/1752/90 1140/1753/90 -f 1139/1754/88 1136/1755/88 1141/1756/88 -f 1141/1757/92 1137/1758/92 1142/1759/92 -f 1140/1760/85 1135/1761/85 1139/1762/85 -f 1136/1755/89 1138/1752/89 1137/1758/89 -f 1150/1763/90 1146/1764/90 1148/1765/90 -f 1147/1766/88 1144/1767/88 1149/1768/88 -f 1149/1769/92 1145/1770/92 1150/1771/92 -f 1148/1772/85 1143/1773/85 1147/1774/85 -f 1144/1767/89 1146/1764/89 1145/1770/89 -f 1157/1775/89 1155/1776/89 1156/1777/89 -f 1153/1778/85 1158/1779/85 1154/1780/85 -f 1152/1781/92 1156/1777/92 1151/1782/92 -f 1154/1783/88 1157/1775/88 1152/1784/88 -f 1151/1785/90 1155/1776/90 1153/1786/90 -f 1165/1787/87 1163/1788/87 1164/1789/87 -f 1161/1790/85 1166/1791/85 1162/1792/85 -f 1160/1793/92 1164/1789/92 1159/1794/92 -f 1162/1795/90 1165/1787/90 1160/1796/90 -f 1159/1797/88 1163/1788/88 1161/1798/88 -f 1174/1799/88 1170/1800/88 1172/1801/88 -f 1171/1802/90 1168/1803/90 1173/1804/90 -f 1173/1805/92 1169/1806/92 1174/1807/92 -f 1172/1808/85 1167/1809/85 1171/1810/85 -f 1168/1803/87 1170/1800/87 1169/1806/87 -f 1182/1811/88 1178/1812/88 1180/1813/88 -f 1179/1814/90 1176/1815/90 1181/1816/90 -f 1181/1817/92 1177/1818/92 1182/1819/92 -f 1180/1820/85 1175/1821/85 1179/1822/85 -f 1176/1815/87 1178/1812/87 1177/1818/87 -f 1189/1823/87 1187/1824/87 1188/1825/87 -f 1185/1826/85 1190/1827/85 1186/1828/85 -f 1184/1829/92 1188/1825/92 1183/1830/92 -f 1186/1831/90 1189/1823/90 1184/1832/90 -f 1183/1833/88 1187/1824/88 1185/1834/88 -f 1197/1835/87 1195/1836/87 1196/1837/87 -f 1193/1838/85 1198/1839/85 1194/1840/85 -f 1192/1841/92 1196/1837/92 1191/1842/92 -f 1194/1843/90 1197/1835/90 1192/1844/90 -f 1191/1845/88 1195/1836/88 1193/1846/88 -f 1206/1847/88 1202/1848/88 1204/1849/88 -f 1203/1850/90 1200/1851/90 1205/1852/90 -f 1205/1853/92 1201/1854/92 1206/1855/92 -f 1204/1856/85 1199/1857/85 1203/1858/85 -f 1200/1851/87 1202/1848/87 1201/1854/87 -f 1214/1859/88 1210/1860/88 1212/1861/88 -f 1211/1862/90 1208/1863/90 1213/1864/90 -f 1213/1865/92 1209/1866/92 1214/1867/92 -f 1212/1868/85 1207/1869/85 1211/1870/85 -f 1208/1863/87 1210/1860/87 1209/1866/87 -f 1221/1871/87 1219/1872/87 1220/1873/87 -f 1217/1874/85 1222/1875/85 1218/1876/85 -f 1216/1877/92 1220/1873/92 1215/1878/92 -f 1218/1879/90 1221/1871/90 1216/1880/90 -f 1215/1881/88 1219/1872/88 1217/1882/88 -f 1230/1883/87 1226/1884/87 1228/1885/87 -f 1227/1886/89 1224/1887/89 1229/1888/89 -f 1229/1889/92 1225/1890/92 1230/1891/92 -f 1228/1892/85 1223/1893/85 1227/1894/85 -f 1224/1887/90 1226/1884/90 1225/1890/90 -f 1237/1895/90 1235/1896/90 1236/1897/90 -f 1233/1898/85 1238/1899/85 1234/1900/85 -f 1232/1901/92 1236/1897/92 1231/1902/92 -f 1234/1903/89 1237/1895/89 1232/1904/89 -f 1231/1905/87 1235/1896/87 1233/1906/87 -f 1245/1907/90 1243/1908/90 1244/1909/90 -f 1241/1910/85 1246/1911/85 1242/1912/85 -f 1240/1913/92 1244/1909/92 1239/1914/92 -f 1242/1915/89 1245/1907/89 1240/1916/89 -f 1239/1917/87 1243/1908/87 1241/1918/87 -f 1253/1919/90 1251/1920/90 1252/1921/90 -f 1249/1922/85 1254/1923/85 1250/1924/85 -f 1248/1925/92 1252/1921/92 1247/1926/92 -f 1250/1927/89 1253/1919/89 1248/1928/89 -f 1247/1929/87 1251/1920/87 1249/1930/87 -f 1262/1931/87 1258/1932/87 1260/1933/87 -f 1259/1934/89 1256/1935/89 1261/1936/89 -f 1261/1937/92 1257/1938/92 1262/1939/92 -f 1260/1940/85 1255/1941/85 1259/1942/85 -f 1256/1935/90 1258/1932/90 1257/1938/90 -f 1270/1943/87 1266/1944/87 1268/1945/87 -f 1267/1946/89 1264/1947/89 1269/1948/89 -f 1269/1949/92 1265/1950/92 1270/1951/92 -f 1268/1952/85 1263/1953/85 1267/1954/85 -f 1264/1947/90 1266/1944/90 1265/1950/90 -f 1282/1955/87 1278/1956/87 1280/1957/87 -f 1279/1958/89 1276/1959/89 1281/1960/89 -f 1281/1961/92 1277/1962/92 1282/1963/92 -f 1280/1964/85 1275/1965/85 1279/1966/85 -f 1276/1959/90 1278/1956/90 1277/1962/90 -f 1289/1967/90 1287/1968/90 1288/1969/90 -f 1285/1970/85 1290/1971/85 1286/1972/85 -f 1284/1973/92 1288/1969/92 1283/1974/92 -f 1286/1975/89 1289/1967/89 1284/1976/89 -f 1283/1977/87 1287/1968/87 1285/1978/87 -f 1298/1979/87 1294/1980/87 1296/1981/87 -f 1295/1982/89 1292/1983/89 1297/1984/89 -f 1297/1985/92 1293/1986/92 1298/1987/92 -f 1296/1988/85 1291/1989/85 1295/1990/85 -f 1292/1983/90 1294/1980/90 1293/1986/90 -f 1305/1991/90 1303/1992/90 1304/1993/90 -f 1301/1994/85 1306/1995/85 1302/1996/85 -f 1300/1997/92 1304/1993/92 1299/1998/92 -f 1302/1999/89 1305/1991/89 1300/2000/89 -f 1299/2001/87 1303/1992/87 1301/2002/87 -f 1310/2003/92 1273/2004/92 1274/2005/92 -f 1272/2006/90 1273/2007/90 1271/2008/90 -f 1309/2009/88 1308/2010/88 1307/2011/88 -f 1272/2006/85 1307/2012/85 1308/2010/85 -f 1274/2005/87 1308/2010/87 1310/2003/87 -f 1317/2013/90 1315/2014/90 1316/2015/90 -f 1313/2016/85 1318/2017/85 1314/2018/85 -f 1312/2019/92 1316/2015/92 1311/2020/92 -f 1314/2021/89 1317/2013/89 1312/2022/89 -f 1311/2023/87 1315/2014/87 1313/2024/87 -f 1326/2025/87 1322/2026/87 1324/2027/87 -f 1323/2028/89 1320/2029/89 1325/2030/89 -f 1325/2031/92 1321/2032/92 1326/2033/92 -f 1324/2034/85 1319/2035/85 1323/2036/85 -f 1320/2029/90 1322/2026/90 1321/2032/90 -f 1036/1565/85 1014/2037/85 1011/1566/85 -f 1032/2038/86 1012/1587/86 1035/1570/86 -f 1012/1587/86 1050/1568/86 1035/1570/86 -f 1050/1568/86 1027/2039/86 1025/1569/86 -f 1017/1571/87 1019/1593/87 1020/1572/87 -f 1023/1574/88 1024/1582/88 1022/1575/88 -f 1025/1577/89 1027/1580/89 1028/1578/89 -f 1027/1580/88 1029/2040/88 1030/1581/88 -f 1030/1581/87 1029/2040/87 1022/1575/87 -f 1009/1583/90 1025/1577/90 1026/1579/90 -f 1012/1587/91 1032/2038/91 1052/1592/91 -f 1043/1585/91 1041/2041/91 1051/1586/91 -f 1012/1587/91 1052/1592/91 1043/1585/91 -f 1013/1588/90 1034/1618/90 1033/1589/90 -f 1034/1591/85 1013/2042/85 1043/1585/85 -f 1009/1583/85 1016/1617/85 1035/1570/85 -f 1019/1593/88 1039/1596/88 1040/1594/88 -f 1018/1573/90 1038/1605/90 1037/1595/90 -f 1039/1596/87 1041/1598/87 1042/1597/87 -f 1041/1598/90 1043/2043/90 1044/1599/90 -f 1044/1599/89 1043/2043/89 1013/1588/89 -f 1021/1600/89 1045/1603/89 1046/1601/89 -f 1045/1603/88 1047/2044/88 1048/1604/88 -f 1048/1604/87 1047/2044/87 1037/1595/87 -f 1051/1586/92 1049/1619/92 1050/1568/92 -f 1031/1567/89 1032/2045/89 1035/1606/89 -f 1052/1607/90 1032/2045/90 1031/1567/90 -f 1037/1609/85 1039/2046/85 1019/1610/85 -f 1022/1612/85 1029/1615/85 1045/1613/85 -f 1029/1615/93 1027/2039/93 1050/1568/93 -f 1050/1568/93 1049/1619/93 1045/1613/93 -f 1049/1619/93 1047/2047/93 1045/1613/93 -f 1014/1616/88 1036/1565/88 1035/1606/88 -f 1034/1618/87 1052/1607/87 1057/1608/87 -f 1051/1586/94 1041/2041/94 1039/2046/94 -f 1037/1609/94 1047/2047/94 1049/1619/94 -f 1051/1586/94 1039/2046/94 1037/1609/94 -f 1053/1620/88 1061/2048/88 1062/1621/88 -f 1058/1623/85 1028/1578/85 1030/1581/85 -f 1058/1625/85 1010/2049/85 1026/1579/85 -f 1010/1584/89 1014/1616/89 1016/1617/89 -f 1011/1626/85 1033/2050/85 1057/1608/85 -f 1059/1627/85 1042/1597/85 1044/1599/85 -f 1040/1594/85 1042/1597/85 1059/1629/85 -f 1060/1631/85 1023/2051/85 1046/1601/85 -f 1038/1605/85 1018/2052/85 1060/1632/85 -f 1060/2053/95 1018/1573/95 1053/1634/95 -f 1018/1573/95 1020/1572/95 1055/1633/95 -f 1020/1572/95 1059/2054/95 1055/1633/95 -f 1015/1590/96 1033/1589/96 1055/1635/96 -f 1033/1589/96 1011/2055/96 1056/1640/96 -f 1055/1635/96 1033/1589/96 1056/1640/96 -f 1011/2056/97 1014/1616/97 1056/1638/97 -f 1014/1616/97 1010/1584/97 1054/1637/97 -f 1010/1584/97 1058/2057/97 1054/1637/97 -f 1058/2058/98 1024/1582/98 1054/1622/98 -f 1024/1582/98 1023/1574/98 1053/1620/98 -f 1023/1574/98 1060/2059/98 1053/1620/98 -f 1062/1639/99 1061/2060/99 1055/1635/99 -f 1069/1643/89 1070/1647/89 1067/1644/89 -f 1065/1646/85 1067/1644/85 1070/1647/85 -f 1064/1649/92 1069/1643/92 1068/1645/92 -f 1066/1651/88 1070/1647/88 1069/1643/88 -f 1063/1653/90 1068/1645/90 1067/1644/90 -f 1078/1655/90 1073/1662/90 1074/1656/90 -f 1075/1658/88 1071/1665/88 1072/1659/88 -f 1077/1661/92 1072/1659/92 1073/1662/92 -f 1076/1664/85 1074/1656/85 1071/1665/85 -f 1072/1659/89 1071/1665/89 1074/1656/89 -f 1086/1667/90 1081/1674/90 1082/1668/90 -f 1083/1670/88 1079/1677/88 1080/1671/88 -f 1085/1673/92 1080/1671/92 1081/1674/92 -f 1084/1676/85 1082/1668/85 1079/1677/85 -f 1080/1671/89 1079/1677/89 1082/1668/89 -f 1093/1679/89 1094/1683/89 1091/1680/89 -f 1089/1682/85 1091/1680/85 1094/1683/85 -f 1088/1685/92 1093/1679/92 1092/1681/92 -f 1090/1687/88 1094/1683/88 1093/1679/88 -f 1087/1689/90 1092/1681/90 1091/1680/90 -f 1102/1691/90 1097/1698/90 1098/1692/90 -f 1099/1694/88 1095/1701/88 1096/1695/88 -f 1101/1697/92 1096/1695/92 1097/1698/92 -f 1100/1700/85 1098/1692/85 1095/1701/85 -f 1096/1695/89 1095/1701/89 1098/1692/89 -f 1109/1703/89 1110/1707/89 1107/1704/89 -f 1105/1706/85 1107/1704/85 1110/1707/85 -f 1104/1709/92 1109/1703/92 1108/1705/92 -f 1106/1711/88 1110/1707/88 1109/1703/88 -f 1103/1713/90 1108/1705/90 1107/1704/90 -f 1117/1715/89 1118/1719/89 1115/1716/89 -f 1113/1718/85 1115/1716/85 1118/1719/85 -f 1112/1721/92 1117/1715/92 1116/1717/92 -f 1114/1723/88 1118/1719/88 1117/1715/88 -f 1111/1725/90 1116/1717/90 1115/1716/90 -f 1125/1727/89 1126/1731/89 1123/1728/89 -f 1121/1730/85 1123/1728/85 1126/1731/85 -f 1120/1733/92 1125/1727/92 1124/1729/92 -f 1122/1735/88 1126/1731/88 1125/1727/88 -f 1119/1737/90 1124/1729/90 1123/1728/90 -f 1134/1739/90 1129/1746/90 1130/1740/90 -f 1131/1742/88 1127/1749/88 1128/1743/88 -f 1133/1745/92 1128/1743/92 1129/1746/92 -f 1132/1748/85 1130/1740/85 1127/1749/85 -f 1128/1743/89 1127/1749/89 1130/1740/89 -f 1142/1751/90 1137/1758/90 1138/1752/90 -f 1139/1754/88 1135/1761/88 1136/1755/88 -f 1141/1757/92 1136/1755/92 1137/1758/92 -f 1140/1760/85 1138/1752/85 1135/1761/85 -f 1136/1755/89 1135/1761/89 1138/1752/89 -f 1150/1763/90 1145/1770/90 1146/1764/90 -f 1147/1766/88 1143/1773/88 1144/1767/88 -f 1149/1769/92 1144/1767/92 1145/1770/92 -f 1148/1772/85 1146/1764/85 1143/1773/85 -f 1144/1767/89 1143/1773/89 1146/1764/89 -f 1157/1775/89 1158/1779/89 1155/1776/89 -f 1153/1778/85 1155/1776/85 1158/1779/85 -f 1152/1781/92 1157/1775/92 1156/1777/92 -f 1154/1783/88 1158/1779/88 1157/1775/88 -f 1151/1785/90 1156/1777/90 1155/1776/90 -f 1165/1787/87 1166/1791/87 1163/1788/87 -f 1161/1790/85 1163/1788/85 1166/1791/85 -f 1160/1793/92 1165/1787/92 1164/1789/92 -f 1162/1795/90 1166/1791/90 1165/1787/90 -f 1159/1797/88 1164/1789/88 1163/1788/88 -f 1174/1799/88 1169/1806/88 1170/1800/88 -f 1171/1802/90 1167/1809/90 1168/1803/90 -f 1173/1805/92 1168/1803/92 1169/1806/92 -f 1172/1808/85 1170/1800/85 1167/1809/85 -f 1168/1803/87 1167/1809/87 1170/1800/87 -f 1182/1811/88 1177/1818/88 1178/1812/88 -f 1179/1814/90 1175/1821/90 1176/1815/90 -f 1181/1817/92 1176/1815/92 1177/1818/92 -f 1180/1820/85 1178/1812/85 1175/1821/85 -f 1176/1815/87 1175/1821/87 1178/1812/87 -f 1189/1823/87 1190/1827/87 1187/1824/87 -f 1185/1826/85 1187/1824/85 1190/1827/85 -f 1184/1829/92 1189/1823/92 1188/1825/92 -f 1186/1831/90 1190/1827/90 1189/1823/90 -f 1183/1833/88 1188/1825/88 1187/1824/88 -f 1197/1835/87 1198/1839/87 1195/1836/87 -f 1193/1838/85 1195/1836/85 1198/1839/85 -f 1192/1841/92 1197/1835/92 1196/1837/92 -f 1194/1843/90 1198/1839/90 1197/1835/90 -f 1191/1845/88 1196/1837/88 1195/1836/88 -f 1206/1847/88 1201/1854/88 1202/1848/88 -f 1203/1850/90 1199/1857/90 1200/1851/90 -f 1205/1853/92 1200/1851/92 1201/1854/92 -f 1204/1856/85 1202/1848/85 1199/1857/85 -f 1200/1851/87 1199/1857/87 1202/1848/87 -f 1214/1859/88 1209/1866/88 1210/1860/88 -f 1211/1862/90 1207/1869/90 1208/1863/90 -f 1213/1865/92 1208/1863/92 1209/1866/92 -f 1212/1868/85 1210/1860/85 1207/1869/85 -f 1208/1863/87 1207/1869/87 1210/1860/87 -f 1221/1871/87 1222/1875/87 1219/1872/87 -f 1217/1874/85 1219/1872/85 1222/1875/85 -f 1216/1877/92 1221/1871/92 1220/1873/92 -f 1218/1879/90 1222/1875/90 1221/1871/90 -f 1215/1881/88 1220/1873/88 1219/1872/88 -f 1230/1883/87 1225/1890/87 1226/1884/87 -f 1227/1886/89 1223/1893/89 1224/1887/89 -f 1229/1889/92 1224/1887/92 1225/1890/92 -f 1228/1892/85 1226/1884/85 1223/1893/85 -f 1224/1887/90 1223/1893/90 1226/1884/90 -f 1237/1895/90 1238/1899/90 1235/1896/90 -f 1233/1898/85 1235/1896/85 1238/1899/85 -f 1232/1901/92 1237/1895/92 1236/1897/92 -f 1234/1903/89 1238/1899/89 1237/1895/89 -f 1231/1905/87 1236/1897/87 1235/1896/87 -f 1245/1907/90 1246/1911/90 1243/1908/90 -f 1241/1910/85 1243/1908/85 1246/1911/85 -f 1240/1913/92 1245/1907/92 1244/1909/92 -f 1242/1915/89 1246/1911/89 1245/1907/89 -f 1239/1917/87 1244/1909/87 1243/1908/87 -f 1253/1919/90 1254/1923/90 1251/1920/90 -f 1249/1922/85 1251/1920/85 1254/1923/85 -f 1248/1925/92 1253/1919/92 1252/1921/92 -f 1250/1927/89 1254/1923/89 1253/1919/89 -f 1247/1929/87 1252/1921/87 1251/1920/87 -f 1262/1931/87 1257/1938/87 1258/1932/87 -f 1259/1934/89 1255/1941/89 1256/1935/89 -f 1261/1937/92 1256/1935/92 1257/1938/92 -f 1260/1940/85 1258/1932/85 1255/1941/85 -f 1256/1935/90 1255/1941/90 1258/1932/90 -f 1270/1943/87 1265/1950/87 1266/1944/87 -f 1267/1946/89 1263/1953/89 1264/1947/89 -f 1269/1949/92 1264/1947/92 1265/1950/92 -f 1268/1952/85 1266/1944/85 1263/1953/85 -f 1264/1947/90 1263/1953/90 1266/1944/90 -f 1282/1955/87 1277/1962/87 1278/1956/87 -f 1279/1958/89 1275/1965/89 1276/1959/89 -f 1281/1961/92 1276/1959/92 1277/1962/92 -f 1280/1964/85 1278/1956/85 1275/1965/85 -f 1276/1959/90 1275/1965/90 1278/1956/90 -f 1289/1967/90 1290/1971/90 1287/1968/90 -f 1285/1970/85 1287/1968/85 1290/1971/85 -f 1284/1973/92 1289/1967/92 1288/1969/92 -f 1286/1975/89 1290/1971/89 1289/1967/89 -f 1283/1977/87 1288/1969/87 1287/1968/87 -f 1298/1979/87 1293/1986/87 1294/1980/87 -f 1295/1982/89 1291/1989/89 1292/1983/89 -f 1297/1985/92 1292/1983/92 1293/1986/92 -f 1296/1988/85 1294/1980/85 1291/1989/85 -f 1292/1983/90 1291/1989/90 1294/1980/90 -f 1305/1991/90 1306/1995/90 1303/1992/90 -f 1301/1994/85 1303/1992/85 1306/1995/85 -f 1300/1997/92 1305/1991/92 1304/1993/92 -f 1302/1999/89 1306/1995/89 1305/1991/89 -f 1299/2001/87 1304/1993/87 1303/1992/87 -f 1310/2003/92 1309/2061/92 1273/2004/92 -f 1272/2006/90 1274/2005/90 1273/2007/90 -f 1309/2009/88 1310/2003/88 1308/2010/88 -f 1272/2006/85 1271/2062/85 1307/2012/85 -f 1274/2005/87 1272/2006/87 1308/2010/87 -f 1317/2013/90 1318/2017/90 1315/2014/90 -f 1313/2016/85 1315/2014/85 1318/2017/85 -f 1312/2019/92 1317/2013/92 1316/2015/92 -f 1314/2021/89 1318/2017/89 1317/2013/89 -f 1311/2023/87 1316/2015/87 1315/2014/87 -f 1326/2025/87 1321/2032/87 1322/2026/87 -f 1323/2028/89 1319/2035/89 1320/2029/89 -f 1325/2031/92 1320/2029/92 1321/2032/92 -f 1324/2034/85 1322/2026/85 1319/2035/85 -f 1320/2029/90 1319/2035/90 1322/2026/90 +f 1076/1581/99 1051/1582/99 1071/1583/99 +f 1090/1584/100 1065/1585/100 1075/1586/100 +f 1057/1587/101 1060/1588/101 1058/1589/101 +f 1063/1590/102 1062/1591/102 1061/1592/102 +f 1065/1593/103 1068/1594/103 1066/1595/103 +f 1067/1596/102 1070/1597/102 1068/1594/102 +f 1070/1597/101 1062/1591/101 1064/1598/101 +f 1049/1599/104 1066/1595/104 1050/1600/104 +f 1083/1601/105 1091/1602/105 1052/1603/105 +f 1053/1604/104 1073/1605/104 1055/1606/104 +f 1074/1607/99 1083/1601/99 1092/1608/99 +f 1049/1599/99 1075/1586/99 1065/1585/99 +f 1059/1609/102 1080/1610/102 1060/1588/102 +f 1058/1589/104 1077/1611/104 1057/1587/104 +f 1079/1612/101 1082/1613/101 1080/1610/101 +f 1081/1614/104 1084/1615/104 1082/1613/104 +f 1084/1615/103 1053/1604/103 1055/1606/103 +f 1061/1616/103 1086/1617/103 1063/1618/103 +f 1085/1619/102 1088/1620/102 1086/1617/102 +f 1088/1620/101 1077/1611/101 1078/1621/101 +f 1091/1602/106 1090/1584/106 1052/1603/106 +f 1071/1583/103 1075/1622/103 1076/1581/103 +f 1092/1623/104 1071/1583/104 1097/1624/104 +f 1077/1625/99 1059/1626/99 1057/1627/99 +f 1062/1628/99 1085/1629/99 1061/1630/99 +f 1085/1629/107 1069/1631/107 1090/1584/107 +f 1054/1632/102 1075/1622/102 1056/1633/102 +f 1074/1634/101 1097/1624/101 1073/1605/101 +f 1077/1625/108 1089/1635/108 1091/1602/108 +f 1093/1636/102 1102/1637/102 1094/1638/102 +f 1098/1639/99 1070/1597/99 1064/1640/99 +f 1098/1641/99 1066/1595/99 1068/1594/99 +f 1050/1600/103 1056/1633/103 1049/1599/103 +f 1051/1642/99 1097/1624/99 1071/1583/99 +f 1099/1643/99 1084/1615/99 1055/1644/99 +f 1080/1610/99 1099/1645/99 1060/1646/99 +f 1100/1647/99 1086/1617/99 1088/1620/99 +f 1078/1621/99 1100/1648/99 1088/1620/99 +f 1095/1649/109 1093/1650/109 1058/1589/109 +f 1095/1651/110 1099/1652/110 1055/1606/110 +f 1094/1653/111 1096/1654/111 1054/1632/111 +f 1093/1636/112 1094/1638/112 1064/1598/112 +f 1102/1655/113 1095/1651/113 1096/1656/113 +f 1094/1653/103 1102/1657/103 1096/1654/103 +f 1093/1650/101 1095/1649/101 1101/1658/101 +f 1109/1659/103 1107/1660/103 1108/1661/103 +f 1105/1662/99 1110/1663/99 1106/1664/99 +f 1104/1665/106 1108/1661/106 1103/1666/106 +f 1106/1667/102 1109/1659/102 1104/1668/102 +f 1103/1669/104 1107/1660/104 1105/1670/104 +f 1118/1671/104 1114/1672/104 1116/1673/104 +f 1115/1674/102 1112/1675/102 1117/1676/102 +f 1117/1677/106 1113/1678/106 1118/1679/106 +f 1116/1680/99 1111/1681/99 1115/1682/99 +f 1112/1675/103 1114/1672/103 1113/1678/103 +f 1126/1683/104 1122/1684/104 1124/1685/104 +f 1123/1686/102 1120/1687/102 1125/1688/102 +f 1125/1689/106 1121/1690/106 1126/1691/106 +f 1124/1692/99 1119/1693/99 1123/1694/99 +f 1120/1687/103 1122/1684/103 1121/1690/103 +f 1133/1695/103 1131/1696/103 1132/1697/103 +f 1129/1698/99 1134/1699/99 1130/1700/99 +f 1128/1701/106 1132/1697/106 1127/1702/106 +f 1130/1703/102 1133/1695/102 1128/1704/102 +f 1127/1705/104 1131/1696/104 1129/1706/104 +f 1142/1707/104 1138/1708/104 1140/1709/104 +f 1139/1710/102 1136/1711/102 1141/1712/102 +f 1141/1713/106 1137/1714/106 1142/1715/106 +f 1140/1716/99 1135/1717/99 1139/1718/99 +f 1136/1711/103 1138/1708/103 1137/1714/103 +f 1149/1719/103 1147/1720/103 1148/1721/103 +f 1145/1722/99 1150/1723/99 1146/1724/99 +f 1144/1725/106 1148/1721/106 1143/1726/106 +f 1146/1727/102 1149/1719/102 1144/1728/102 +f 1143/1729/104 1147/1720/104 1145/1730/104 +f 1157/1731/103 1155/1732/103 1156/1733/103 +f 1153/1734/99 1158/1735/99 1154/1736/99 +f 1152/1737/106 1156/1733/106 1151/1738/106 +f 1154/1739/102 1157/1731/102 1152/1740/102 +f 1151/1741/104 1155/1732/104 1153/1742/104 +f 1165/1743/103 1163/1744/103 1164/1745/103 +f 1161/1746/99 1166/1747/99 1162/1748/99 +f 1160/1749/106 1164/1745/106 1159/1750/106 +f 1162/1751/102 1165/1743/102 1160/1752/102 +f 1159/1753/104 1163/1744/104 1161/1754/104 +f 1174/1755/104 1170/1756/104 1172/1757/104 +f 1171/1758/102 1168/1759/102 1173/1760/102 +f 1173/1761/106 1169/1762/106 1174/1763/106 +f 1172/1764/99 1167/1765/99 1171/1766/99 +f 1168/1759/103 1170/1756/103 1169/1762/103 +f 1182/1767/104 1178/1768/104 1180/1769/104 +f 1179/1770/102 1176/1771/102 1181/1772/102 +f 1181/1773/106 1177/1774/106 1182/1775/106 +f 1180/1776/99 1175/1777/99 1179/1778/99 +f 1176/1771/103 1178/1768/103 1177/1774/103 +f 1190/1779/104 1186/1780/104 1188/1781/104 +f 1187/1782/102 1184/1783/102 1189/1784/102 +f 1189/1785/106 1185/1786/106 1190/1787/106 +f 1188/1788/99 1183/1789/99 1187/1790/99 +f 1184/1783/103 1186/1780/103 1185/1786/103 +f 1197/1791/103 1195/1792/103 1196/1793/103 +f 1193/1794/99 1198/1795/99 1194/1796/99 +f 1192/1797/106 1196/1793/106 1191/1798/106 +f 1194/1799/102 1197/1791/102 1192/1800/102 +f 1191/1801/104 1195/1792/104 1193/1802/104 +f 1205/1803/101 1203/1804/101 1204/1805/101 +f 1201/1806/99 1206/1807/99 1202/1808/99 +f 1200/1809/106 1204/1805/106 1199/1810/106 +f 1202/1811/104 1205/1803/104 1200/1812/104 +f 1199/1813/102 1203/1804/102 1201/1814/102 +f 1214/1815/102 1210/1816/102 1212/1817/102 +f 1211/1818/104 1208/1819/104 1213/1820/104 +f 1213/1821/106 1209/1822/106 1214/1823/106 +f 1212/1824/99 1207/1825/99 1211/1826/99 +f 1208/1819/101 1210/1816/101 1209/1822/101 +f 1222/1827/102 1218/1828/102 1220/1829/102 +f 1219/1830/104 1216/1831/104 1221/1832/104 +f 1221/1833/106 1217/1834/106 1222/1835/106 +f 1220/1836/99 1215/1837/99 1219/1838/99 +f 1216/1831/101 1218/1828/101 1217/1834/101 +f 1229/1839/101 1227/1840/101 1228/1841/101 +f 1225/1842/99 1230/1843/99 1226/1844/99 +f 1224/1845/106 1228/1841/106 1223/1846/106 +f 1226/1847/104 1229/1839/104 1224/1848/104 +f 1223/1849/102 1227/1840/102 1225/1850/102 +f 1237/1851/101 1235/1852/101 1236/1853/101 +f 1233/1854/99 1238/1855/99 1234/1856/99 +f 1232/1857/106 1236/1853/106 1231/1858/106 +f 1234/1859/104 1237/1851/104 1232/1860/104 +f 1231/1861/102 1235/1852/102 1233/1862/102 +f 1246/1863/102 1242/1864/102 1244/1865/102 +f 1243/1866/104 1240/1867/104 1245/1868/104 +f 1245/1869/106 1241/1870/106 1246/1871/106 +f 1244/1872/99 1239/1873/99 1243/1874/99 +f 1240/1867/101 1242/1864/101 1241/1870/101 +f 1254/1875/102 1250/1876/102 1252/1877/102 +f 1251/1878/104 1248/1879/104 1253/1880/104 +f 1253/1881/106 1249/1882/106 1254/1883/106 +f 1252/1884/99 1247/1885/99 1251/1886/99 +f 1248/1879/101 1250/1876/101 1249/1882/101 +f 1261/1887/101 1259/1888/101 1260/1889/101 +f 1257/1890/99 1262/1891/99 1258/1892/99 +f 1256/1893/106 1260/1889/106 1255/1894/106 +f 1258/1895/104 1261/1887/104 1256/1896/104 +f 1255/1897/102 1259/1888/102 1257/1898/102 +f 1270/1899/101 1266/1900/101 1268/1901/101 +f 1267/1902/103 1264/1903/103 1269/1904/103 +f 1269/1905/106 1265/1906/106 1270/1907/106 +f 1268/1908/99 1263/1909/99 1267/1910/99 +f 1264/1903/104 1266/1900/104 1265/1906/104 +f 1277/1911/104 1275/1912/104 1276/1913/104 +f 1273/1914/99 1278/1915/99 1274/1916/99 +f 1272/1917/106 1276/1913/106 1271/1918/106 +f 1274/1919/103 1277/1911/103 1272/1920/103 +f 1271/1921/101 1275/1912/101 1273/1922/101 +f 1285/1923/104 1283/1924/104 1284/1925/104 +f 1281/1926/99 1286/1927/99 1282/1928/99 +f 1280/1929/106 1284/1925/106 1279/1930/106 +f 1282/1931/103 1285/1923/103 1280/1932/103 +f 1279/1933/101 1283/1924/101 1281/1934/101 +f 1293/1935/104 1291/1936/104 1292/1937/104 +f 1289/1938/99 1294/1939/99 1290/1940/99 +f 1288/1941/106 1292/1937/106 1287/1942/106 +f 1290/1943/103 1293/1935/103 1288/1944/103 +f 1287/1945/101 1291/1936/101 1289/1946/101 +f 1302/1947/101 1298/1948/101 1300/1949/101 +f 1299/1950/103 1296/1951/103 1301/1952/103 +f 1301/1953/106 1297/1954/106 1302/1955/106 +f 1300/1956/99 1295/1957/99 1299/1958/99 +f 1296/1951/104 1298/1948/104 1297/1954/104 +f 1310/1959/101 1306/1960/101 1308/1961/101 +f 1307/1962/103 1304/1963/103 1309/1964/103 +f 1309/1965/106 1305/1966/106 1310/1967/106 +f 1308/1968/99 1303/1969/99 1307/1970/99 +f 1304/1963/104 1306/1960/104 1305/1966/104 +f 1322/1971/101 1318/1972/101 1320/1973/101 +f 1319/1974/103 1316/1975/103 1321/1976/103 +f 1321/1977/106 1317/1978/106 1322/1979/106 +f 1320/1980/99 1315/1981/99 1319/1982/99 +f 1316/1975/104 1318/1972/104 1317/1978/104 +f 1329/1983/104 1327/1984/104 1328/1985/104 +f 1325/1986/99 1330/1987/99 1326/1988/99 +f 1324/1989/106 1328/1985/106 1323/1990/106 +f 1326/1991/103 1329/1983/103 1324/1992/103 +f 1323/1993/101 1327/1984/101 1325/1994/101 +f 1338/1995/101 1334/1996/101 1336/1997/101 +f 1335/1998/103 1332/1999/103 1337/2000/103 +f 1337/2001/106 1333/2002/106 1338/2003/106 +f 1336/2004/99 1331/2005/99 1335/2006/99 +f 1332/1999/104 1334/1996/104 1333/2002/104 +f 1345/2007/104 1343/2008/104 1344/2009/104 +f 1341/2010/99 1346/2011/99 1342/2012/99 +f 1340/2013/106 1344/2009/106 1339/2014/106 +f 1342/2015/103 1345/2007/103 1340/2016/103 +f 1339/2017/101 1343/2008/101 1341/2018/101 +f 1350/2019/106 1313/2020/106 1314/2021/106 +f 1312/2022/104 1313/2023/104 1311/2024/104 +f 1349/2025/102 1348/2026/102 1347/2027/102 +f 1312/2022/99 1347/2028/99 1348/2026/99 +f 1314/2021/101 1348/2026/101 1350/2019/101 +f 1357/2029/104 1355/2030/104 1356/2031/104 +f 1353/2032/99 1358/2033/99 1354/2034/99 +f 1352/2035/106 1356/2031/106 1351/2036/106 +f 1354/2037/103 1357/2029/103 1352/2038/103 +f 1351/2039/101 1355/2030/101 1353/2040/101 +f 1366/2041/101 1362/2042/101 1364/2043/101 +f 1363/2044/103 1360/2045/103 1365/2046/103 +f 1365/2047/106 1361/2048/106 1366/2049/106 +f 1364/2050/99 1359/2051/99 1363/2052/99 +f 1360/2045/104 1362/2042/104 1361/2048/104 +f 1076/1581/99 1054/2053/99 1051/1582/99 +f 1072/2054/100 1052/1603/100 1075/1586/100 +f 1052/1603/100 1090/1584/100 1075/1586/100 +f 1090/1584/100 1067/2055/100 1065/1585/100 +f 1057/1587/101 1059/1609/101 1060/1588/101 +f 1063/1590/102 1064/1598/102 1062/1591/102 +f 1065/1593/103 1067/1596/103 1068/1594/103 +f 1067/1596/102 1069/2056/102 1070/1597/102 +f 1070/1597/101 1069/2056/101 1062/1591/101 +f 1049/1599/104 1065/1593/104 1066/1595/104 +f 1052/1603/105 1072/2054/105 1092/1608/105 +f 1083/1601/105 1081/2057/105 1091/1602/105 +f 1052/1603/105 1092/1608/105 1083/1601/105 +f 1053/1604/104 1074/1634/104 1073/1605/104 +f 1074/1607/99 1053/2058/99 1083/1601/99 +f 1049/1599/99 1056/1633/99 1075/1586/99 +f 1059/1609/102 1079/1612/102 1080/1610/102 +f 1058/1589/104 1078/1621/104 1077/1611/104 +f 1079/1612/101 1081/1614/101 1082/1613/101 +f 1081/1614/104 1083/2059/104 1084/1615/104 +f 1084/1615/103 1083/2059/103 1053/1604/103 +f 1061/1616/103 1085/1619/103 1086/1617/103 +f 1085/1619/102 1087/2060/102 1088/1620/102 +f 1088/1620/101 1087/2060/101 1077/1611/101 +f 1091/1602/106 1089/1635/106 1090/1584/106 +f 1071/1583/103 1072/2061/103 1075/1622/103 +f 1092/1623/104 1072/2061/104 1071/1583/104 +f 1077/1625/99 1079/2062/99 1059/1626/99 +f 1062/1628/99 1069/1631/99 1085/1629/99 +f 1069/1631/107 1067/2055/107 1090/1584/107 +f 1090/1584/107 1089/1635/107 1085/1629/107 +f 1089/1635/107 1087/2063/107 1085/1629/107 +f 1054/1632/102 1076/1581/102 1075/1622/102 +f 1074/1634/101 1092/1623/101 1097/1624/101 +f 1091/1602/108 1081/2057/108 1079/2062/108 +f 1077/1625/108 1087/2063/108 1089/1635/108 +f 1091/1602/108 1079/2062/108 1077/1625/108 +f 1093/1636/102 1101/2064/102 1102/1637/102 +f 1098/1639/99 1068/1594/99 1070/1597/99 +f 1098/1641/99 1050/2065/99 1066/1595/99 +f 1050/1600/103 1054/1632/103 1056/1633/103 +f 1051/1642/99 1073/2066/99 1097/1624/99 +f 1099/1643/99 1082/1613/99 1084/1615/99 +f 1080/1610/99 1082/1613/99 1099/1645/99 +f 1100/1647/99 1063/2067/99 1086/1617/99 +f 1078/1621/99 1058/2068/99 1100/1648/99 +f 1100/2069/109 1058/1589/109 1093/1650/109 +f 1058/1589/109 1060/1588/109 1095/1649/109 +f 1060/1588/109 1099/2070/109 1095/1649/109 +f 1055/1606/110 1073/1605/110 1095/1651/110 +f 1073/1605/110 1051/2071/110 1096/1656/110 +f 1095/1651/110 1073/1605/110 1096/1656/110 +f 1051/2072/111 1054/1632/111 1096/1654/111 +f 1054/1632/111 1050/1600/111 1094/1653/111 +f 1050/1600/111 1098/2073/111 1094/1653/111 +f 1098/2074/112 1064/1598/112 1094/1638/112 +f 1064/1598/112 1063/1590/112 1093/1636/112 +f 1063/1590/112 1100/2075/112 1093/1636/112 +f 1102/1655/113 1101/2076/113 1095/1651/113 +f 1109/1659/103 1110/1663/103 1107/1660/103 +f 1105/1662/99 1107/1660/99 1110/1663/99 +f 1104/1665/106 1109/1659/106 1108/1661/106 +f 1106/1667/102 1110/1663/102 1109/1659/102 +f 1103/1669/104 1108/1661/104 1107/1660/104 +f 1118/1671/104 1113/1678/104 1114/1672/104 +f 1115/1674/102 1111/1681/102 1112/1675/102 +f 1117/1677/106 1112/1675/106 1113/1678/106 +f 1116/1680/99 1114/1672/99 1111/1681/99 +f 1112/1675/103 1111/1681/103 1114/1672/103 +f 1126/1683/104 1121/1690/104 1122/1684/104 +f 1123/1686/102 1119/1693/102 1120/1687/102 +f 1125/1689/106 1120/1687/106 1121/1690/106 +f 1124/1692/99 1122/1684/99 1119/1693/99 +f 1120/1687/103 1119/1693/103 1122/1684/103 +f 1133/1695/103 1134/1699/103 1131/1696/103 +f 1129/1698/99 1131/1696/99 1134/1699/99 +f 1128/1701/106 1133/1695/106 1132/1697/106 +f 1130/1703/102 1134/1699/102 1133/1695/102 +f 1127/1705/104 1132/1697/104 1131/1696/104 +f 1142/1707/104 1137/1714/104 1138/1708/104 +f 1139/1710/102 1135/1717/102 1136/1711/102 +f 1141/1713/106 1136/1711/106 1137/1714/106 +f 1140/1716/99 1138/1708/99 1135/1717/99 +f 1136/1711/103 1135/1717/103 1138/1708/103 +f 1149/1719/103 1150/1723/103 1147/1720/103 +f 1145/1722/99 1147/1720/99 1150/1723/99 +f 1144/1725/106 1149/1719/106 1148/1721/106 +f 1146/1727/102 1150/1723/102 1149/1719/102 +f 1143/1729/104 1148/1721/104 1147/1720/104 +f 1157/1731/103 1158/1735/103 1155/1732/103 +f 1153/1734/99 1155/1732/99 1158/1735/99 +f 1152/1737/106 1157/1731/106 1156/1733/106 +f 1154/1739/102 1158/1735/102 1157/1731/102 +f 1151/1741/104 1156/1733/104 1155/1732/104 +f 1165/1743/103 1166/1747/103 1163/1744/103 +f 1161/1746/99 1163/1744/99 1166/1747/99 +f 1160/1749/106 1165/1743/106 1164/1745/106 +f 1162/1751/102 1166/1747/102 1165/1743/102 +f 1159/1753/104 1164/1745/104 1163/1744/104 +f 1174/1755/104 1169/1762/104 1170/1756/104 +f 1171/1758/102 1167/1765/102 1168/1759/102 +f 1173/1761/106 1168/1759/106 1169/1762/106 +f 1172/1764/99 1170/1756/99 1167/1765/99 +f 1168/1759/103 1167/1765/103 1170/1756/103 +f 1182/1767/104 1177/1774/104 1178/1768/104 +f 1179/1770/102 1175/1777/102 1176/1771/102 +f 1181/1773/106 1176/1771/106 1177/1774/106 +f 1180/1776/99 1178/1768/99 1175/1777/99 +f 1176/1771/103 1175/1777/103 1178/1768/103 +f 1190/1779/104 1185/1786/104 1186/1780/104 +f 1187/1782/102 1183/1789/102 1184/1783/102 +f 1189/1785/106 1184/1783/106 1185/1786/106 +f 1188/1788/99 1186/1780/99 1183/1789/99 +f 1184/1783/103 1183/1789/103 1186/1780/103 +f 1197/1791/103 1198/1795/103 1195/1792/103 +f 1193/1794/99 1195/1792/99 1198/1795/99 +f 1192/1797/106 1197/1791/106 1196/1793/106 +f 1194/1799/102 1198/1795/102 1197/1791/102 +f 1191/1801/104 1196/1793/104 1195/1792/104 +f 1205/1803/101 1206/1807/101 1203/1804/101 +f 1201/1806/99 1203/1804/99 1206/1807/99 +f 1200/1809/106 1205/1803/106 1204/1805/106 +f 1202/1811/104 1206/1807/104 1205/1803/104 +f 1199/1813/102 1204/1805/102 1203/1804/102 +f 1214/1815/102 1209/1822/102 1210/1816/102 +f 1211/1818/104 1207/1825/104 1208/1819/104 +f 1213/1821/106 1208/1819/106 1209/1822/106 +f 1212/1824/99 1210/1816/99 1207/1825/99 +f 1208/1819/101 1207/1825/101 1210/1816/101 +f 1222/1827/102 1217/1834/102 1218/1828/102 +f 1219/1830/104 1215/1837/104 1216/1831/104 +f 1221/1833/106 1216/1831/106 1217/1834/106 +f 1220/1836/99 1218/1828/99 1215/1837/99 +f 1216/1831/101 1215/1837/101 1218/1828/101 +f 1229/1839/101 1230/1843/101 1227/1840/101 +f 1225/1842/99 1227/1840/99 1230/1843/99 +f 1224/1845/106 1229/1839/106 1228/1841/106 +f 1226/1847/104 1230/1843/104 1229/1839/104 +f 1223/1849/102 1228/1841/102 1227/1840/102 +f 1237/1851/101 1238/1855/101 1235/1852/101 +f 1233/1854/99 1235/1852/99 1238/1855/99 +f 1232/1857/106 1237/1851/106 1236/1853/106 +f 1234/1859/104 1238/1855/104 1237/1851/104 +f 1231/1861/102 1236/1853/102 1235/1852/102 +f 1246/1863/102 1241/1870/102 1242/1864/102 +f 1243/1866/104 1239/1873/104 1240/1867/104 +f 1245/1869/106 1240/1867/106 1241/1870/106 +f 1244/1872/99 1242/1864/99 1239/1873/99 +f 1240/1867/101 1239/1873/101 1242/1864/101 +f 1254/1875/102 1249/1882/102 1250/1876/102 +f 1251/1878/104 1247/1885/104 1248/1879/104 +f 1253/1881/106 1248/1879/106 1249/1882/106 +f 1252/1884/99 1250/1876/99 1247/1885/99 +f 1248/1879/101 1247/1885/101 1250/1876/101 +f 1261/1887/101 1262/1891/101 1259/1888/101 +f 1257/1890/99 1259/1888/99 1262/1891/99 +f 1256/1893/106 1261/1887/106 1260/1889/106 +f 1258/1895/104 1262/1891/104 1261/1887/104 +f 1255/1897/102 1260/1889/102 1259/1888/102 +f 1270/1899/101 1265/1906/101 1266/1900/101 +f 1267/1902/103 1263/1909/103 1264/1903/103 +f 1269/1905/106 1264/1903/106 1265/1906/106 +f 1268/1908/99 1266/1900/99 1263/1909/99 +f 1264/1903/104 1263/1909/104 1266/1900/104 +f 1277/1911/104 1278/1915/104 1275/1912/104 +f 1273/1914/99 1275/1912/99 1278/1915/99 +f 1272/1917/106 1277/1911/106 1276/1913/106 +f 1274/1919/103 1278/1915/103 1277/1911/103 +f 1271/1921/101 1276/1913/101 1275/1912/101 +f 1285/1923/104 1286/1927/104 1283/1924/104 +f 1281/1926/99 1283/1924/99 1286/1927/99 +f 1280/1929/106 1285/1923/106 1284/1925/106 +f 1282/1931/103 1286/1927/103 1285/1923/103 +f 1279/1933/101 1284/1925/101 1283/1924/101 +f 1293/1935/104 1294/1939/104 1291/1936/104 +f 1289/1938/99 1291/1936/99 1294/1939/99 +f 1288/1941/106 1293/1935/106 1292/1937/106 +f 1290/1943/103 1294/1939/103 1293/1935/103 +f 1287/1945/101 1292/1937/101 1291/1936/101 +f 1302/1947/101 1297/1954/101 1298/1948/101 +f 1299/1950/103 1295/1957/103 1296/1951/103 +f 1301/1953/106 1296/1951/106 1297/1954/106 +f 1300/1956/99 1298/1948/99 1295/1957/99 +f 1296/1951/104 1295/1957/104 1298/1948/104 +f 1310/1959/101 1305/1966/101 1306/1960/101 +f 1307/1962/103 1303/1969/103 1304/1963/103 +f 1309/1965/106 1304/1963/106 1305/1966/106 +f 1308/1968/99 1306/1960/99 1303/1969/99 +f 1304/1963/104 1303/1969/104 1306/1960/104 +f 1322/1971/101 1317/1978/101 1318/1972/101 +f 1319/1974/103 1315/1981/103 1316/1975/103 +f 1321/1977/106 1316/1975/106 1317/1978/106 +f 1320/1980/99 1318/1972/99 1315/1981/99 +f 1316/1975/104 1315/1981/104 1318/1972/104 +f 1329/1983/104 1330/1987/104 1327/1984/104 +f 1325/1986/99 1327/1984/99 1330/1987/99 +f 1324/1989/106 1329/1983/106 1328/1985/106 +f 1326/1991/103 1330/1987/103 1329/1983/103 +f 1323/1993/101 1328/1985/101 1327/1984/101 +f 1338/1995/101 1333/2002/101 1334/1996/101 +f 1335/1998/103 1331/2005/103 1332/1999/103 +f 1337/2001/106 1332/1999/106 1333/2002/106 +f 1336/2004/99 1334/1996/99 1331/2005/99 +f 1332/1999/104 1331/2005/104 1334/1996/104 +f 1345/2007/104 1346/2011/104 1343/2008/104 +f 1341/2010/99 1343/2008/99 1346/2011/99 +f 1340/2013/106 1345/2007/106 1344/2009/106 +f 1342/2015/103 1346/2011/103 1345/2007/103 +f 1339/2017/101 1344/2009/101 1343/2008/101 +f 1350/2019/106 1349/2077/106 1313/2020/106 +f 1312/2022/104 1314/2021/104 1313/2023/104 +f 1349/2025/102 1350/2019/102 1348/2026/102 +f 1312/2022/99 1311/2078/99 1347/2028/99 +f 1314/2021/101 1312/2022/101 1348/2026/101 +f 1357/2029/104 1358/2033/104 1355/2030/104 +f 1353/2032/99 1355/2030/99 1358/2033/99 +f 1352/2035/106 1357/2029/106 1356/2031/106 +f 1354/2037/103 1358/2033/103 1357/2029/103 +f 1351/2039/101 1356/2031/101 1355/2030/101 +f 1366/2041/101 1361/2048/101 1362/2042/101 +f 1363/2044/103 1359/2051/103 1360/2045/103 +f 1365/2047/106 1360/2045/106 1361/2048/106 +f 1364/2050/99 1362/2042/99 1359/2051/99 +f 1360/2045/104 1359/2051/104 1362/2042/104 o Head v -4.000008 0.000002 -5.000000 v 3.999992 -0.000002 -5.000000 @@ -5851,248 +5925,248 @@ vn 0.1445 0.9063 -0.3971 vn 0.8917 0.2418 -0.3825 vn -0.3068 -0.0904 -0.9474 s off -f 1328/2063/100 1329/2064/100 1327/2065/100 -f 1331/2066/101 1334/2067/101 1332/2068/101 -f 1335/2069/102 1338/2070/102 1336/2071/102 -f 1340/2072/103 1342/2073/103 1339/2074/103 -f 1343/2075/104 1345/2076/104 1344/2077/104 -f 1349/2078/105 1348/2079/105 1347/2080/105 -f 1327/2065/106 1350/2081/106 1328/2063/106 -f 1350/2082/107 1331/2066/107 1332/2068/107 -f 1332/2068/108 1330/2083/108 1328/2063/108 -f 1350/2084/109 1332/2068/109 1328/2063/109 -f 1336/2071/110 1333/2085/110 1331/2066/110 -f 1349/2086/111 1335/2069/111 1336/2071/111 -f 1349/2087/112 1336/2071/112 1331/2066/112 -f 1339/2088/113 1337/2089/113 1335/2069/113 -f 1347/2090/114 1340/2072/114 1339/2074/114 -f 1347/2091/115 1339/2088/115 1335/2069/115 -f 1341/2092/116 1327/2065/116 1329/2064/116 -f 1348/2093/117 1327/2065/117 1340/2072/117 -f 1333/2085/118 1346/2094/118 1334/2067/118 -f 1346/2095/119 1329/2064/119 1330/2083/119 -f 1334/2067/120 1346/2096/120 1330/2083/120 -f 1337/2089/121 1345/2097/121 1338/2070/121 -f 1338/2070/122 1345/2098/122 1333/2085/122 -f 1341/2092/123 1344/2099/123 1342/2073/123 -f 1342/2100/124 1344/2101/124 1337/2089/124 -f 1341/2092/125 1329/2064/125 1343/2102/125 -f 1353/2103/100 1393/2104/100 1391/2105/100 -f 1352/2106/116 1358/2107/116 1354/2108/116 -f 1353/2103/108 1355/2109/108 1351/2110/108 -f 1356/2111/103 1363/2112/103 1362/2113/103 -f 1364/2114/101 1355/2109/101 1361/2115/101 -f 1360/2116/104 1369/2117/104 1370/2118/104 -f 1352/2106/104 1369/2119/104 1356/2111/104 -f 1366/2120/104 1352/2106/104 1351/2110/104 -f 1368/2121/104 1351/2110/104 1355/2109/104 -f 1368/2122/104 1359/2123/104 1367/2124/104 -f 1361/2115/105 1374/2125/105 1373/2126/105 -f 1353/2103/105 1374/2127/105 1357/2128/105 -f 1354/2108/105 1372/2129/105 1353/2103/105 -f 1376/2130/105 1354/2108/105 1358/2107/105 -f 1376/2131/105 1362/2113/105 1375/2132/105 -f 1367/2133/102 1364/2114/102 1377/2134/102 -f 1361/2135/126 1377/2134/126 1364/2114/126 -f 1360/2116/102 1378/2136/102 1363/2112/102 -f 1378/2136/126 1362/2137/126 1363/2112/126 -f 1387/2138/104 1390/2139/104 1388/2140/104 -f 1381/2141/103 1388/2140/103 1382/2142/103 -f 1390/2139/101 1385/2143/101 1386/2144/101 -f 1385/2143/101 1389/2145/101 1383/2146/101 -f 1381/2141/103 1379/2147/103 1387/2138/103 -f 1379/2147/127 1389/2145/127 1387/2138/127 -f 1386/2144/101 1384/2148/101 1390/2139/101 -f 1382/2142/103 1388/2140/103 1380/2149/103 -f 1390/2139/128 1380/2149/128 1388/2140/128 -f 1391/2105/100 1354/2108/100 1353/2103/100 -f 1398/2150/103 1391/2151/103 1393/2152/103 -f 1396/2153/104 1392/2154/104 1391/2155/104 -f 1395/2156/101 1394/2157/101 1392/2158/101 -f 1397/2159/105 1393/2160/105 1394/2161/105 -f 1352/2106/100 1393/2104/100 1351/2110/100 -f 1354/2108/100 1394/2162/100 1352/2106/100 -f 1398/2150/100 1395/2156/100 1396/2153/100 -f 1429/2163/129 1434/2164/129 1432/2165/129 -f 1465/2166/130 1470/2167/130 1468/2168/130 -f 1477/2169/100 1478/2170/100 1479/2171/100 -f 1480/2172/100 1482/2173/100 1481/2174/100 -f 1472/2175/105 1477/2169/105 1471/2176/105 -f 1475/2177/107 1482/2178/107 1476/2179/107 -f 1474/2180/104 1481/2174/104 1475/2177/104 -f 1471/2176/123 1479/2181/123 1473/2182/123 -f 1476/2183/114 1480/2172/114 1474/2180/114 -f 1473/2184/118 1478/2170/118 1472/2175/118 -f 1328/2063/100 1330/2083/100 1329/2064/100 -f 1331/2066/101 1333/2085/101 1334/2067/101 -f 1335/2069/102 1337/2089/102 1338/2070/102 -f 1340/2072/103 1341/2092/103 1342/2073/103 -f 1343/2075/104 1346/2095/104 1345/2076/104 -f 1349/2078/105 1350/2081/105 1348/2079/105 -f 1327/2065/106 1348/2079/106 1350/2081/106 -f 1350/2082/107 1349/2185/107 1331/2066/107 -f 1332/2068/108 1334/2067/108 1330/2083/108 -f 1336/2071/110 1338/2070/110 1333/2085/110 -f 1349/2086/111 1347/2186/111 1335/2069/111 -f 1339/2088/113 1342/2100/113 1337/2089/113 -f 1347/2090/114 1348/2187/114 1340/2072/114 -f 1341/2092/116 1340/2072/116 1327/2065/116 -f 1333/2085/118 1345/2188/118 1346/2094/118 -f 1346/2095/119 1343/2075/119 1329/2064/119 -f 1337/2089/121 1344/2189/121 1345/2097/121 -f 1341/2092/123 1343/2190/123 1344/2099/123 -f 1353/2103/100 1351/2110/100 1393/2104/100 -f 1352/2106/116 1356/2111/116 1358/2107/116 -f 1353/2103/108 1357/2128/108 1355/2109/108 -f 1362/2113/103 1358/2107/103 1356/2111/103 -f 1356/2111/103 1360/2116/103 1363/2112/103 -f 1359/2123/101 1355/2109/101 1364/2114/101 -f 1355/2109/101 1357/2128/101 1361/2115/101 -f 1360/2116/104 1356/2111/104 1369/2117/104 -f 1352/2106/104 1365/2191/104 1369/2119/104 -f 1366/2120/104 1365/2192/104 1352/2106/104 -f 1368/2121/104 1366/2193/104 1351/2110/104 -f 1368/2122/104 1355/2109/104 1359/2123/104 -f 1361/2115/105 1357/2128/105 1374/2125/105 -f 1353/2103/105 1372/2194/105 1374/2127/105 -f 1354/2108/105 1371/2195/105 1372/2129/105 -f 1376/2130/105 1371/2196/105 1354/2108/105 -f 1376/2131/105 1358/2107/105 1362/2113/105 -f 1367/2133/102 1359/2123/102 1364/2114/102 -f 1361/2135/126 1373/2197/126 1377/2134/126 -f 1360/2116/102 1370/2198/102 1378/2136/102 -f 1378/2136/126 1375/2199/126 1362/2137/126 -f 1387/2138/104 1389/2145/104 1390/2139/104 -f 1381/2141/103 1387/2138/103 1388/2140/103 -f 1390/2139/101 1389/2145/101 1385/2143/101 -f 1379/2147/127 1383/2146/127 1389/2145/127 -f 1390/2139/128 1384/2148/128 1380/2149/128 -f 1391/2105/100 1392/2200/100 1354/2108/100 -f 1398/2150/103 1396/2153/103 1391/2151/103 -f 1396/2153/104 1395/2156/104 1392/2154/104 -f 1395/2156/101 1397/2159/101 1394/2157/101 -f 1397/2159/105 1398/2150/105 1393/2160/105 -f 1352/2106/100 1394/2162/100 1393/2104/100 -f 1354/2108/100 1392/2200/100 1394/2162/100 -f 1398/2150/100 1397/2159/100 1395/2156/100 -f 1425/2201/129 1424/2202/129 1423/2203/129 -f 1423/2203/129 1434/2164/129 1425/2201/129 -f 1434/2164/129 1433/2204/129 1432/2165/129 -f 1425/2201/129 1434/2164/129 1429/2163/129 -f 1432/2165/129 1431/2205/129 1429/2163/129 -f 1431/2205/129 1430/2206/129 1429/2163/129 -f 1429/2163/129 1428/2207/129 1427/2208/129 -f 1427/2208/129 1426/2209/129 1429/2163/129 -f 1426/2209/129 1425/2201/129 1429/2163/129 -f 1461/2210/130 1460/2211/130 1459/2212/130 -f 1459/2212/130 1470/2167/130 1461/2210/130 -f 1470/2167/130 1469/2213/130 1468/2168/130 -f 1461/2210/130 1470/2167/130 1465/2166/130 -f 1468/2168/130 1467/2214/130 1465/2166/130 -f 1467/2214/130 1466/2215/130 1465/2166/130 -f 1465/2166/130 1464/2216/130 1463/2217/130 -f 1463/2217/130 1462/2218/130 1465/2166/130 -f 1462/2218/130 1461/2210/130 1465/2166/130 -f 1472/2175/105 1478/2170/105 1477/2169/105 -f 1475/2177/107 1481/2174/107 1482/2178/107 -f 1474/2180/104 1480/2172/104 1481/2174/104 -f 1471/2176/123 1477/2169/123 1479/2181/123 -f 1476/2183/114 1482/2219/114 1480/2172/114 -f 1473/2184/118 1479/2220/118 1478/2170/118 +f 1368/2079/114 1369/2080/114 1367/2081/114 +f 1371/2082/115 1374/2083/115 1372/2084/115 +f 1375/2085/116 1378/2086/116 1376/2087/116 +f 1380/2088/117 1382/2089/117 1379/2090/117 +f 1383/2091/118 1385/2092/118 1384/2093/118 +f 1389/2094/119 1388/2095/119 1387/2096/119 +f 1367/2081/120 1390/2097/120 1368/2079/120 +f 1390/2098/121 1371/2082/121 1372/2084/121 +f 1372/2084/122 1370/2099/122 1368/2079/122 +f 1390/2100/123 1372/2084/123 1368/2079/123 +f 1376/2087/124 1373/2101/124 1371/2082/124 +f 1389/2102/125 1375/2085/125 1376/2087/125 +f 1389/2103/126 1376/2087/126 1371/2082/126 +f 1379/2104/127 1377/2105/127 1375/2085/127 +f 1387/2106/128 1380/2088/128 1379/2090/128 +f 1387/2107/129 1379/2104/129 1375/2085/129 +f 1381/2108/130 1367/2081/130 1369/2080/130 +f 1388/2109/131 1367/2081/131 1380/2088/131 +f 1373/2101/132 1386/2110/132 1374/2083/132 +f 1386/2111/133 1369/2080/133 1370/2099/133 +f 1374/2083/134 1386/2112/134 1370/2099/134 +f 1377/2105/135 1385/2113/135 1378/2086/135 +f 1378/2086/136 1385/2114/136 1373/2101/136 +f 1381/2108/137 1384/2115/137 1382/2089/137 +f 1382/2116/138 1384/2117/138 1377/2105/138 +f 1381/2108/139 1369/2080/139 1383/2118/139 +f 1393/2119/114 1433/2120/114 1431/2121/114 +f 1392/2122/130 1398/2123/130 1394/2124/130 +f 1393/2119/122 1395/2125/122 1391/2126/122 +f 1396/2127/117 1403/2128/117 1402/2129/117 +f 1404/2130/115 1395/2125/115 1401/2131/115 +f 1400/2132/118 1409/2133/118 1410/2134/118 +f 1392/2122/118 1409/2135/118 1396/2127/118 +f 1406/2136/118 1392/2122/118 1391/2126/118 +f 1408/2137/118 1391/2126/118 1395/2125/118 +f 1408/2138/118 1399/2139/118 1407/2140/118 +f 1401/2131/119 1414/2141/119 1413/2142/119 +f 1393/2119/119 1414/2143/119 1397/2144/119 +f 1394/2124/119 1412/2145/119 1393/2119/119 +f 1416/2146/119 1394/2124/119 1398/2123/119 +f 1416/2147/119 1402/2129/119 1415/2148/119 +f 1407/2149/116 1404/2130/116 1417/2150/116 +f 1401/2151/140 1417/2150/140 1404/2130/140 +f 1400/2132/116 1418/2152/116 1403/2128/116 +f 1418/2152/140 1402/2153/140 1403/2128/140 +f 1427/2154/118 1430/2155/118 1428/2156/118 +f 1421/2157/117 1428/2156/117 1422/2158/117 +f 1430/2155/115 1425/2159/115 1426/2160/115 +f 1425/2159/115 1429/2161/115 1423/2162/115 +f 1421/2157/117 1419/2163/117 1427/2154/117 +f 1419/2163/141 1429/2161/141 1427/2154/141 +f 1426/2160/115 1424/2164/115 1430/2155/115 +f 1422/2158/117 1428/2156/117 1420/2165/117 +f 1430/2155/142 1420/2165/142 1428/2156/142 +f 1431/2121/114 1394/2124/114 1393/2119/114 +f 1438/2166/117 1431/2167/117 1433/2168/117 +f 1436/2169/118 1432/2170/118 1431/2171/118 +f 1435/2172/115 1434/2173/115 1432/2174/115 +f 1437/2175/119 1433/2176/119 1434/2177/119 +f 1392/2122/114 1433/2120/114 1391/2126/114 +f 1394/2124/114 1434/2178/114 1392/2122/114 +f 1438/2166/114 1435/2172/114 1436/2169/114 +f 1469/2179/143 1474/2180/143 1472/2181/143 +f 1505/2182/144 1510/2183/144 1508/2184/144 +f 1517/2185/114 1518/2186/114 1519/2187/114 +f 1520/2188/114 1522/2189/114 1521/2190/114 +f 1512/2191/119 1517/2185/119 1511/2192/119 +f 1515/2193/121 1522/2194/121 1516/2195/121 +f 1514/2196/118 1521/2190/118 1515/2193/118 +f 1511/2192/137 1519/2197/137 1513/2198/137 +f 1516/2199/128 1520/2188/128 1514/2196/128 +f 1513/2200/132 1518/2186/132 1512/2191/132 +f 1368/2079/114 1370/2099/114 1369/2080/114 +f 1371/2082/115 1373/2101/115 1374/2083/115 +f 1375/2085/116 1377/2105/116 1378/2086/116 +f 1380/2088/117 1381/2108/117 1382/2089/117 +f 1383/2091/118 1386/2111/118 1385/2092/118 +f 1389/2094/119 1390/2097/119 1388/2095/119 +f 1367/2081/120 1388/2095/120 1390/2097/120 +f 1390/2098/121 1389/2201/121 1371/2082/121 +f 1372/2084/122 1374/2083/122 1370/2099/122 +f 1376/2087/124 1378/2086/124 1373/2101/124 +f 1389/2102/125 1387/2202/125 1375/2085/125 +f 1379/2104/127 1382/2116/127 1377/2105/127 +f 1387/2106/128 1388/2203/128 1380/2088/128 +f 1381/2108/130 1380/2088/130 1367/2081/130 +f 1373/2101/132 1385/2204/132 1386/2110/132 +f 1386/2111/133 1383/2091/133 1369/2080/133 +f 1377/2105/135 1384/2205/135 1385/2113/135 +f 1381/2108/137 1383/2206/137 1384/2115/137 +f 1393/2119/114 1391/2126/114 1433/2120/114 +f 1392/2122/130 1396/2127/130 1398/2123/130 +f 1393/2119/122 1397/2144/122 1395/2125/122 +f 1402/2129/117 1398/2123/117 1396/2127/117 +f 1396/2127/117 1400/2132/117 1403/2128/117 +f 1399/2139/115 1395/2125/115 1404/2130/115 +f 1395/2125/115 1397/2144/115 1401/2131/115 +f 1400/2132/118 1396/2127/118 1409/2133/118 +f 1392/2122/118 1405/2207/118 1409/2135/118 +f 1406/2136/118 1405/2208/118 1392/2122/118 +f 1408/2137/118 1406/2209/118 1391/2126/118 +f 1408/2138/118 1395/2125/118 1399/2139/118 +f 1401/2131/119 1397/2144/119 1414/2141/119 +f 1393/2119/119 1412/2210/119 1414/2143/119 +f 1394/2124/119 1411/2211/119 1412/2145/119 +f 1416/2146/119 1411/2212/119 1394/2124/119 +f 1416/2147/119 1398/2123/119 1402/2129/119 +f 1407/2149/116 1399/2139/116 1404/2130/116 +f 1401/2151/140 1413/2213/140 1417/2150/140 +f 1400/2132/116 1410/2214/116 1418/2152/116 +f 1418/2152/140 1415/2215/140 1402/2153/140 +f 1427/2154/118 1429/2161/118 1430/2155/118 +f 1421/2157/117 1427/2154/117 1428/2156/117 +f 1430/2155/115 1429/2161/115 1425/2159/115 +f 1419/2163/141 1423/2162/141 1429/2161/141 +f 1430/2155/142 1424/2164/142 1420/2165/142 +f 1431/2121/114 1432/2216/114 1394/2124/114 +f 1438/2166/117 1436/2169/117 1431/2167/117 +f 1436/2169/118 1435/2172/118 1432/2170/118 +f 1435/2172/115 1437/2175/115 1434/2173/115 +f 1437/2175/119 1438/2166/119 1433/2176/119 +f 1392/2122/114 1434/2178/114 1433/2120/114 +f 1394/2124/114 1432/2216/114 1434/2178/114 +f 1438/2166/114 1437/2175/114 1435/2172/114 +f 1465/2217/143 1464/2218/143 1463/2219/143 +f 1463/2219/143 1474/2180/143 1465/2217/143 +f 1474/2180/143 1473/2220/143 1472/2181/143 +f 1465/2217/143 1474/2180/143 1469/2179/143 +f 1472/2181/143 1471/2221/143 1469/2179/143 +f 1471/2221/143 1470/2222/143 1469/2179/143 +f 1469/2179/143 1468/2223/143 1467/2224/143 +f 1467/2224/143 1466/2225/143 1469/2179/143 +f 1466/2225/143 1465/2217/143 1469/2179/143 +f 1501/2226/144 1500/2227/144 1499/2228/144 +f 1499/2228/144 1510/2183/144 1501/2226/144 +f 1510/2183/144 1509/2229/144 1508/2184/144 +f 1501/2226/144 1510/2183/144 1505/2182/144 +f 1508/2184/144 1507/2230/144 1505/2182/144 +f 1507/2230/144 1506/2231/144 1505/2182/144 +f 1505/2182/144 1504/2232/144 1503/2233/144 +f 1503/2233/144 1502/2234/144 1505/2182/144 +f 1502/2234/144 1501/2226/144 1505/2182/144 +f 1512/2191/119 1518/2186/119 1517/2185/119 +f 1515/2193/121 1521/2190/121 1522/2194/121 +f 1514/2196/118 1520/2188/118 1521/2190/118 +f 1511/2192/137 1517/2185/137 1519/2197/137 +f 1516/2199/128 1522/2235/128 1520/2188/128 +f 1513/2200/132 1519/2236/132 1518/2186/132 s 1 -f 1401/2221/131 1414/2222/132 1402/2223/132 -f 1420/2224/133 1409/2225/134 1408/2226/133 -f 1405/2227/135 1418/2228/136 1406/2229/136 -f 1402/2223/132 1415/2230/137 1403/2231/137 -f 1421/2232/134 1410/2233/138 1409/2225/134 -f 1411/2234/139 1400/2235/140 1399/2236/139 -f 1418/2228/136 1407/2237/141 1406/2229/136 -f 1415/2230/137 1404/2238/142 1403/2231/137 -f 1410/2233/138 1411/2234/139 1399/2236/139 -f 1412/2239/140 1401/2221/131 1400/2235/140 -f 1419/2240/141 1408/2226/133 1407/2237/141 -f 1416/2241/142 1405/2242/135 1404/2238/142 -f 1507/2243/143 1520/2244/144 1508/2245/144 -f 1529/2246/145 1518/2247/146 1517/2248/145 -f 1522/2249/147 1511/2250/148 1510/2251/147 -f 1525/2252/149 1514/2253/150 1513/2254/149 -f 1516/2255/151 1529/2246/145 1517/2248/145 -f 1521/2256/152 1510/2251/147 1509/2257/152 -f 1524/2258/153 1513/2259/149 1512/2260/153 -f 1515/2261/154 1528/2262/151 1516/2255/151 -f 1508/2245/144 1521/2256/152 1509/2257/152 -f 1518/2247/146 1519/2263/143 1507/2243/143 -f 1523/2264/148 1512/2260/153 1511/2250/148 -f 1514/2253/150 1527/2265/154 1515/2261/154 -f 1437/2266/155 1450/2267/156 1438/2268/156 -f 1456/2269/157 1445/2270/158 1444/2271/157 -f 1441/2272/159 1454/2273/160 1442/2274/160 -f 1438/2268/156 1451/2275/161 1439/2276/161 -f 1457/2277/158 1446/2278/162 1445/2270/158 -f 1447/2279/163 1436/2280/164 1435/2281/163 -f 1442/2274/160 1455/2282/165 1443/2283/165 -f 1439/2276/161 1452/2284/166 1440/2285/166 -f 1446/2278/162 1447/2279/163 1435/2281/163 -f 1448/2286/164 1437/2266/155 1436/2280/164 -f 1455/2282/165 1444/2271/157 1443/2283/165 -f 1452/2284/166 1441/2287/159 1440/2285/166 -f 1490/2288/167 1503/2289/168 1491/2290/168 -f 1499/2291/169 1488/2292/170 1487/2293/169 -f 1494/2294/171 1495/2295/172 1483/2296/172 -f 1484/2297/173 1497/2298/174 1485/2299/174 -f 1491/2290/168 1504/2300/175 1492/2301/175 -f 1500/2302/170 1489/2303/176 1488/2292/170 -f 1497/2298/174 1486/2304/177 1485/2299/174 -f 1492/2301/175 1505/2305/178 1493/2306/178 -f 1489/2307/176 1502/2308/167 1490/2288/167 -f 1498/2309/177 1487/2293/169 1486/2304/177 -f 1505/2305/178 1494/2294/171 1493/2306/178 -f 1495/2295/172 1484/2297/173 1483/2296/172 -f 1401/2221/131 1413/2310/131 1414/2222/132 -f 1420/2224/133 1421/2232/134 1409/2225/134 -f 1405/2227/135 1417/2311/135 1418/2228/136 -f 1402/2223/132 1414/2222/132 1415/2230/137 -f 1421/2232/134 1422/2312/138 1410/2233/138 -f 1411/2234/139 1412/2239/140 1400/2235/140 -f 1418/2228/136 1419/2240/141 1407/2237/141 -f 1415/2230/137 1416/2241/142 1404/2238/142 -f 1410/2233/138 1422/2312/138 1411/2234/139 -f 1412/2239/140 1413/2310/131 1401/2221/131 -f 1419/2240/141 1420/2224/133 1408/2226/133 -f 1416/2241/142 1417/2313/135 1405/2242/135 -f 1507/2243/143 1519/2263/143 1520/2244/144 -f 1529/2246/145 1530/2314/146 1518/2247/146 -f 1522/2249/147 1523/2264/148 1511/2250/148 -f 1525/2252/149 1526/2315/150 1514/2253/150 -f 1516/2255/151 1528/2262/151 1529/2246/145 -f 1521/2256/152 1522/2249/147 1510/2251/147 -f 1524/2258/153 1525/2316/149 1513/2259/149 -f 1515/2261/154 1527/2265/154 1528/2262/151 -f 1508/2245/144 1520/2244/144 1521/2256/152 -f 1518/2247/146 1530/2314/146 1519/2263/143 -f 1523/2264/148 1524/2258/153 1512/2260/153 -f 1514/2253/150 1526/2315/150 1527/2265/154 -f 1437/2266/155 1449/2317/155 1450/2267/156 -f 1456/2269/157 1457/2277/158 1445/2270/158 -f 1441/2272/159 1453/2318/159 1454/2273/160 -f 1438/2268/156 1450/2267/156 1451/2275/161 -f 1457/2277/158 1458/2319/162 1446/2278/162 -f 1447/2279/163 1448/2286/164 1436/2280/164 -f 1442/2274/160 1454/2273/160 1455/2282/165 -f 1439/2276/161 1451/2275/161 1452/2284/166 -f 1446/2278/162 1458/2319/162 1447/2279/163 -f 1448/2286/164 1449/2317/155 1437/2266/155 -f 1455/2282/165 1456/2269/157 1444/2271/157 -f 1452/2284/166 1453/2320/159 1441/2287/159 -f 1490/2288/167 1502/2308/167 1503/2289/168 -f 1499/2291/169 1500/2302/170 1488/2292/170 -f 1494/2294/171 1506/2321/171 1495/2295/172 -f 1484/2297/173 1496/2322/173 1497/2298/174 -f 1491/2290/168 1503/2289/168 1504/2300/175 -f 1500/2302/170 1501/2323/176 1489/2303/176 -f 1497/2298/174 1498/2309/177 1486/2304/177 -f 1492/2301/175 1504/2300/175 1505/2305/178 -f 1489/2307/176 1501/2324/176 1502/2308/167 -f 1498/2309/177 1499/2291/169 1487/2293/169 -f 1505/2305/178 1506/2321/171 1494/2294/171 -f 1495/2295/172 1496/2322/173 1484/2297/173 +f 1441/2237/145 1454/2238/146 1442/2239/146 +f 1460/2240/147 1449/2241/148 1448/2242/147 +f 1445/2243/149 1458/2244/150 1446/2245/150 +f 1442/2239/146 1455/2246/151 1443/2247/151 +f 1461/2248/148 1450/2249/152 1449/2241/148 +f 1451/2250/153 1440/2251/154 1439/2252/153 +f 1458/2244/150 1447/2253/155 1446/2245/150 +f 1455/2246/151 1444/2254/156 1443/2247/151 +f 1450/2249/152 1451/2250/153 1439/2252/153 +f 1452/2255/154 1441/2237/145 1440/2251/154 +f 1459/2256/155 1448/2242/147 1447/2253/155 +f 1456/2257/156 1445/2258/149 1444/2254/156 +f 1547/2259/157 1560/2260/158 1548/2261/158 +f 1569/2262/159 1558/2263/160 1557/2264/159 +f 1562/2265/161 1551/2266/162 1550/2267/161 +f 1565/2268/163 1554/2269/164 1553/2270/163 +f 1556/2271/165 1569/2262/159 1557/2264/159 +f 1561/2272/166 1550/2267/161 1549/2273/166 +f 1564/2274/167 1553/2275/163 1552/2276/167 +f 1555/2277/168 1568/2278/165 1556/2271/165 +f 1548/2261/158 1561/2272/166 1549/2273/166 +f 1558/2263/160 1559/2279/157 1547/2259/157 +f 1563/2280/162 1552/2276/167 1551/2266/162 +f 1554/2269/164 1567/2281/168 1555/2277/168 +f 1477/2282/169 1490/2283/170 1478/2284/170 +f 1496/2285/171 1485/2286/172 1484/2287/171 +f 1481/2288/173 1494/2289/174 1482/2290/174 +f 1478/2284/170 1491/2291/175 1479/2292/175 +f 1497/2293/172 1486/2294/176 1485/2286/172 +f 1487/2295/177 1476/2296/178 1475/2297/177 +f 1482/2290/174 1495/2298/179 1483/2299/179 +f 1479/2292/175 1492/2300/180 1480/2301/180 +f 1486/2294/176 1487/2295/177 1475/2297/177 +f 1488/2302/178 1477/2282/169 1476/2296/178 +f 1495/2298/179 1484/2287/171 1483/2299/179 +f 1492/2300/180 1481/2303/173 1480/2301/180 +f 1530/2304/181 1543/2305/182 1531/2306/182 +f 1539/2307/183 1528/2308/184 1527/2309/183 +f 1534/2310/185 1535/2311/186 1523/2312/186 +f 1524/2313/187 1537/2314/188 1525/2315/188 +f 1531/2306/182 1544/2316/189 1532/2317/189 +f 1540/2318/184 1529/2319/190 1528/2308/184 +f 1537/2314/188 1526/2320/191 1525/2315/188 +f 1532/2317/189 1545/2321/192 1533/2322/192 +f 1529/2323/190 1542/2324/181 1530/2304/181 +f 1538/2325/191 1527/2309/183 1526/2320/191 +f 1545/2321/192 1534/2310/185 1533/2322/192 +f 1535/2311/186 1524/2313/187 1523/2312/186 +f 1441/2237/145 1453/2326/145 1454/2238/146 +f 1460/2240/147 1461/2248/148 1449/2241/148 +f 1445/2243/149 1457/2327/149 1458/2244/150 +f 1442/2239/146 1454/2238/146 1455/2246/151 +f 1461/2248/148 1462/2328/152 1450/2249/152 +f 1451/2250/153 1452/2255/154 1440/2251/154 +f 1458/2244/150 1459/2256/155 1447/2253/155 +f 1455/2246/151 1456/2257/156 1444/2254/156 +f 1450/2249/152 1462/2328/152 1451/2250/153 +f 1452/2255/154 1453/2326/145 1441/2237/145 +f 1459/2256/155 1460/2240/147 1448/2242/147 +f 1456/2257/156 1457/2329/149 1445/2258/149 +f 1547/2259/157 1559/2279/157 1560/2260/158 +f 1569/2262/159 1570/2330/160 1558/2263/160 +f 1562/2265/161 1563/2280/162 1551/2266/162 +f 1565/2268/163 1566/2331/164 1554/2269/164 +f 1556/2271/165 1568/2278/165 1569/2262/159 +f 1561/2272/166 1562/2265/161 1550/2267/161 +f 1564/2274/167 1565/2332/163 1553/2275/163 +f 1555/2277/168 1567/2281/168 1568/2278/165 +f 1548/2261/158 1560/2260/158 1561/2272/166 +f 1558/2263/160 1570/2330/160 1559/2279/157 +f 1563/2280/162 1564/2274/167 1552/2276/167 +f 1554/2269/164 1566/2331/164 1567/2281/168 +f 1477/2282/169 1489/2333/169 1490/2283/170 +f 1496/2285/171 1497/2293/172 1485/2286/172 +f 1481/2288/173 1493/2334/173 1494/2289/174 +f 1478/2284/170 1490/2283/170 1491/2291/175 +f 1497/2293/172 1498/2335/176 1486/2294/176 +f 1487/2295/177 1488/2302/178 1476/2296/178 +f 1482/2290/174 1494/2289/174 1495/2298/179 +f 1479/2292/175 1491/2291/175 1492/2300/180 +f 1486/2294/176 1498/2335/176 1487/2295/177 +f 1488/2302/178 1489/2333/169 1477/2282/169 +f 1495/2298/179 1496/2285/171 1484/2287/171 +f 1492/2300/180 1493/2336/173 1481/2303/173 +f 1530/2304/181 1542/2324/181 1543/2305/182 +f 1539/2307/183 1540/2318/184 1528/2308/184 +f 1534/2310/185 1546/2337/185 1535/2311/186 +f 1524/2313/187 1536/2338/187 1537/2314/188 +f 1531/2306/182 1543/2305/182 1544/2316/189 +f 1540/2318/184 1541/2339/190 1529/2319/190 +f 1537/2314/188 1538/2325/191 1526/2320/191 +f 1532/2317/189 1544/2316/189 1545/2321/192 +f 1529/2323/190 1541/2340/190 1542/2324/181 +f 1538/2325/191 1539/2307/183 1527/2309/183 +f 1545/2321/192 1546/2337/185 1534/2310/185 +f 1535/2311/186 1536/2338/187 1524/2313/187 diff --git a/src/main/resources/assets/hbm/models/armor/tail_peep.obj b/src/main/resources/assets/hbm/models/armor/tail_peep.obj new file mode 100644 index 000000000..737184c93 --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/tail_peep.obj @@ -0,0 +1,447 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o FaggyAssFuckingTailThing +v -0.627682 10.005125 -0.450454 +v -0.000123 11.075396 0.277636 +v -0.000084 10.418571 -0.643246 +v 0.627711 10.005373 -0.450569 +v 0.798890 10.572883 0.567761 +v 0.388113 9.285591 -0.074662 +v -0.493534 9.759312 1.037476 +v -0.000153 10.383696 3.486781 +v -0.814369 10.383530 3.486841 +v -0.000151 9.759405 1.037423 +v -0.000151 9.285519 -0.074620 +v -0.387763 9.285445 -0.074578 +v -0.798885 10.572582 0.567935 +v 1.318130 11.840109 2.956691 +v 1.303919 10.780759 6.464269 +v 0.814971 10.383862 3.486721 +v -0.000243 12.739786 2.629235 +v -1.318200 11.839571 2.956887 +v 0.493946 9.759499 1.037369 +v -1.303027 10.780201 6.464366 +v -0.000150 9.794444 9.202967 +v -1.563645 9.794115 9.202877 +v -2.109154 13.221715 6.033862 +v -0.000424 14.731211 5.767698 +v -0.000150 10.780479 6.464317 +v 2.108972 13.222614 6.033704 +v -3.037204 8.839604 13.587263 +v -2.530998 12.667759 9.972871 +v -0.000522 14.444422 10.448926 +v 2.530752 12.668819 9.973157 +v 1.564689 9.794771 9.203056 +v -0.000772 3.865773 18.280907 +v -0.000633 10.105603 15.395302 +v 3.036897 8.840356 13.588348 +v 1.877619 6.792392 10.663549 +v -0.000148 6.792160 10.663214 +v -1.876381 6.791927 10.662880 +v 4.008683 -1.231076 17.008335 +v 3.644264 3.180661 15.724039 +v -0.000157 2.071596 11.584938 +v -2.251669 2.071471 11.584467 +v -3.644658 3.180254 15.722511 +v 2.253131 2.071720 11.585409 +v -0.000585 -5.243139 19.012844 +v 2.806094 -5.420787 16.982361 +v -2.476843 -1.641940 12.312111 +v -4.009130 -1.231225 17.006601 +v 2.478435 -1.641846 12.313181 +v -0.000858 -0.977296 19.909027 +v -0.000141 -1.641892 12.312647 +v 0.520518 -6.788428 15.666166 +v 1.734920 -5.708327 13.695753 +v -1.733776 -5.708388 13.695004 +v -2.806377 -5.420892 16.981148 +v -0.000133 -6.788437 15.666052 +v 0.841869 -6.702163 16.652149 +v -0.000133 -6.648875 17.261292 +v -0.841870 -6.702197 16.651783 +v -0.000135 -5.708357 13.695379 +v -0.520090 -6.788447 15.665939 +vt 0.710651 0.397343 +vt 0.673447 0.425869 +vt 0.686110 0.391250 +vt 0.640510 0.034849 +vt 0.603308 0.006319 +vt 0.627849 0.000228 +vt 0.752962 0.426119 +vt 0.711107 0.401105 +vt 0.736879 0.391250 +vt 0.932680 0.039627 +vt 0.948768 0.122001 +vt 0.922233 0.122004 +vt 0.961407 0.000228 +vt 0.948759 0.039625 +vt 0.948753 0.000230 +vt 0.952761 0.401105 +vt 0.910907 0.426121 +vt 0.926989 0.391250 +vt 0.655952 0.797121 +vt 0.676401 0.823580 +vt 0.663769 0.823582 +vt 0.790100 0.507814 +vt 0.746990 0.619172 +vt 0.738502 0.520352 +vt 0.609711 0.044182 +vt 0.672570 0.123097 +vt 0.620455 0.133276 +vt 0.940524 0.438709 +vt 0.873772 0.507814 +vt 0.704244 0.435206 +vt 0.641379 0.514115 +vt 0.723345 0.438709 +vt 0.906315 0.219899 +vt 0.948774 0.314756 +vt 0.897820 0.314756 +vt 0.687894 0.637069 +vt 0.603308 0.629110 +vt 0.948776 0.219895 +vt 0.626049 0.246054 +vt 0.916885 0.619168 +vt 0.832166 0.612780 +vt 0.819888 0.129973 +vt 0.737083 0.000228 +vt 0.897348 0.063686 +vt 0.703938 0.390793 +vt 0.603308 0.374429 +vt 0.856460 0.740857 +vt 0.807406 0.740873 +vt 0.711107 0.707398 +vt 0.610024 0.781808 +vt 0.547346 0.239308 +vt 0.393707 0.049939 +vt 0.602852 0.130282 +vt 0.819901 0.231924 +vt 0.737074 0.361669 +vt 0.711092 0.242118 +vt 0.884411 0.981518 +vt 0.711107 0.859180 +vt 0.923667 0.887428 +vt 0.711092 0.180923 +vt 0.711092 0.119777 +vt 0.910366 0.786348 +vt 0.743952 0.741330 +vt 0.393706 0.771551 +vt 0.208303 0.661960 +vt 0.355061 0.629918 +vt 0.494347 0.349574 +vt 0.337604 0.410716 +vt 0.337605 0.337340 +vt 0.547358 0.582179 +vt 0.355064 0.191572 +vt 0.494355 0.471915 +vt 0.337604 0.484150 +vt 0.092732 0.820324 +vt 0.074194 0.708811 +vt 0.214393 0.328358 +vt 0.206875 0.167042 +vt 0.214386 0.493131 +vt 0.208315 0.159535 +vt 0.234787 0.000228 +vt 0.214281 0.410714 +vt 0.214285 0.329999 +vt 0.068166 0.623727 +vt 0.001808 0.553219 +vt 0.073433 0.510806 +vt 0.073441 0.310677 +vt 0.068178 0.197756 +vt 0.206862 0.654446 +vt 0.092733 0.001179 +vt 0.074307 0.354217 +vt 0.613282 0.823429 +vt 0.623242 0.782265 +vt 0.655495 0.792745 +vt 0.018317 0.059452 +vt 0.023876 0.025998 +vt 0.074305 0.410716 +vt 0.001068 0.393780 +vt 0.018313 0.762053 +vt 0.001815 0.268262 +vt 0.000237 0.234386 +vt 0.655495 0.826658 +vt 0.623242 0.837137 +vt 0.214278 0.491490 +vt 0.696873 0.797121 +vt 0.689055 0.823582 +vt 0.964861 0.039622 +vt 0.975332 0.121997 +vt 0.001067 0.427694 +vt 0.001067 0.410726 +vt 0.074302 0.467260 +vt 0.991275 0.219891 +vt 0.936121 0.000232 +vt 0.999772 0.314756 +vt 0.676413 0.782265 +vt 0.831709 0.612784 +vt 0.925371 0.520351 +vt 0.693494 0.524297 +vt 0.710635 0.238095 +vt 0.952761 0.707388 +vt 0.710651 0.765428 +vt 0.897364 0.298208 +vt 0.712040 0.981518 +vt 0.819894 0.180926 +vt 0.234786 0.821264 +vt 0.494351 0.410719 +vt 0.602852 0.691211 +vt 0.000228 0.587095 +vt 0.074203 0.112694 +vt 0.603308 0.809701 +vt 0.023875 0.795507 +vn -0.5837 0.6621 -0.4701 +vn -0.5883 0.6607 -0.4663 +vn -0.5815 0.6623 -0.4724 +vn 0.5878 0.6613 -0.4661 +vn 0.5833 0.6623 -0.4702 +vn 0.5811 0.6626 -0.4726 +vn 0.9469 -0.3196 0.0349 +vn 0.9480 -0.3169 0.0288 +vn 0.9507 -0.3098 0.0128 +vn 0.0002 -0.9690 0.2470 +vn 0.0002 -0.9200 0.3920 +vn -0.9479 -0.3172 0.0290 +vn -0.9468 -0.3199 0.0351 +vn -0.9506 -0.3101 0.0130 +vn 0.0169 -0.4513 -0.8922 +vn 0.0088 -0.4569 -0.8895 +vn -0.0000 -0.4629 -0.8864 +vn 0.9333 -0.3447 -0.1003 +vn 0.9368 -0.3359 -0.0977 +vn 0.9276 -0.3586 -0.1045 +vn 0.5865 0.6617 -0.4671 +vn 0.5760 0.6649 -0.4756 +vn 0.5731 0.6659 -0.4778 +vn -0.9358 -0.3518 -0.0208 +vn -0.9386 -0.3435 -0.0310 +vn -0.9336 -0.3581 -0.0130 +vn -0.5869 0.6613 -0.4671 +vn -0.5764 0.6646 -0.4755 +vn 0.9360 -0.3514 -0.0210 +vn 0.9388 -0.3432 -0.0311 +vn 0.9403 -0.3384 -0.0370 +vn 0.0002 -0.9409 -0.3388 +vn -0.5692 0.6881 -0.4500 +vn -0.5630 0.6951 -0.4471 +vn -0.5578 0.7008 -0.4447 +vn 0.0002 -0.9912 0.1321 +vn 0.5689 0.6883 -0.4501 +vn 0.5626 0.6953 -0.4472 +vn 0.5765 0.6797 -0.4535 +vn -0.9332 -0.3451 -0.1002 +vn -0.9367 -0.3363 -0.0975 +vn -0.9402 -0.3271 -0.0947 +vn -0.9259 -0.1545 -0.3448 +vn -0.9311 -0.1294 -0.3411 +vn -0.9114 -0.2123 -0.3525 +vn 0.5780 0.8145 0.0508 +vn 0.5788 0.8138 0.0514 +vn 0.5800 0.8129 0.0522 +vn -0.9378 -0.3064 -0.1634 +vn -0.9396 -0.2981 -0.1685 +vn -0.9313 -0.3334 -0.1466 +vn 0.9379 -0.3060 -0.1633 +vn 0.9397 -0.2977 -0.1684 +vn 0.9453 -0.2678 -0.1864 +vn -0.5783 0.8142 0.0507 +vn -0.5792 0.8136 0.0513 +vn -0.5772 0.8151 0.0499 +vn -0.5820 0.3412 0.7381 +vn -0.5821 0.3411 0.7381 +vn -0.5819 0.3414 0.7382 +vn 0.9260 -0.1543 -0.3445 +vn 0.9312 -0.1292 -0.3407 +vn 0.9420 -0.0622 -0.3298 +vn -0.5565 0.6203 0.5528 +vn -0.5681 0.6094 0.5531 +vn -0.5461 0.6298 0.5524 +vn 0.0002 -0.4374 -0.8993 +vn 0.5562 0.6204 0.5529 +vn 0.5677 0.6096 0.5532 +vn 0.5787 0.5991 0.5534 +vn 0.5814 0.2653 0.7692 +vn 0.5812 0.2651 0.7694 +vn 0.5864 0.2707 0.7634 +vn 0.0002 -0.1916 -0.9815 +vn 0.0002 -0.1920 -0.9814 +vn 0.5817 0.3413 0.7384 +vn 0.5818 0.3412 0.7383 +vn 0.5820 0.3410 0.7383 +vn -0.9408 -0.0140 -0.3388 +vn -0.9427 -0.0059 -0.3337 +vn -0.9363 -0.0314 -0.3497 +vn 0.9409 -0.0139 -0.3384 +vn 0.9428 -0.0058 -0.3333 +vn 0.9468 0.0125 -0.3216 +vn 0.5707 -0.1688 0.8036 +vn -0.9497 -0.0087 -0.3130 +vn -0.9495 -0.0081 -0.3136 +vn -0.9509 -0.0115 -0.3094 +vn 0.9499 -0.0086 -0.3126 +vn 0.9496 -0.0080 -0.3132 +vn 0.9483 -0.0047 -0.3175 +vn -0.5817 0.2652 0.7689 +vn -0.5816 0.2651 0.7691 +vn -0.5770 0.2603 0.7741 +vn 0.0002 -0.1923 -0.9813 +vn 0.5559 -0.8240 -0.1091 +vn 0.5559 -0.8241 -0.1091 +vn -0.9236 -0.2635 -0.2784 +vn 0.9237 -0.2634 -0.2780 +vn -0.5710 -0.1688 0.8034 +vn 0.0002 -0.3219 -0.9468 +vn 0.0000 -0.9962 0.0872 +vn -0.3744 -0.7232 0.5803 +vn 0.0001 -0.8769 -0.4806 +vn 0.3742 -0.7232 0.5805 +vn -0.5558 -0.8241 -0.1093 +vn -0.0088 -0.4569 -0.8895 +vn -0.0168 -0.4513 -0.8922 +vn 0.0002 -0.9409 -0.3387 +vn 0.9442 -0.3257 0.0490 +vn -0.9441 -0.3261 0.0492 +vn 0.0209 -0.4484 -0.8936 +vn 0.9403 -0.3267 -0.0949 +vn -0.9402 -0.3387 -0.0368 +vn -0.5734 0.6656 -0.4777 +vn 0.9337 -0.3577 -0.0132 +vn -0.5768 0.6794 -0.4535 +vn 0.5574 0.7010 -0.4448 +vn -0.9275 -0.3589 -0.1044 +vn -0.9419 -0.0624 -0.3301 +vn 0.5768 0.8153 0.0500 +vn -0.9451 -0.2682 -0.1865 +vn 0.9315 -0.3329 -0.1465 +vn -0.5804 0.8127 0.0521 +vn -0.5823 0.3410 0.7380 +vn 0.9116 -0.2120 -0.3522 +vn -0.5791 0.5989 0.5532 +vn 0.0001 -0.4374 -0.8993 +vn 0.5457 0.6299 0.5526 +vn 0.5767 0.2603 0.7744 +vn 0.5815 0.3415 0.7384 +vn -0.9467 0.0124 -0.3220 +vn 0.9365 -0.0313 -0.3493 +vn -0.9481 -0.0048 -0.3179 +vn 0.9510 -0.0114 -0.3090 +vn -0.5868 0.2706 0.7632 +vn -0.0209 -0.4484 -0.8936 +s 1 +f 1/1/1 2/2/2 3/3/3 +f 2/4/4 4/5/5 3/6/6 +f 5/7/7 6/8/8 4/9/9 +f 7/10/10 8/11/10 9/12/10 +f 6/13/11 10/14/11 11/15/11 +f 12/16/12 13/17/13 1/18/14 +f 1/19/15 11/20/16 12/21/17 +f 14/22/18 15/23/19 16/24/20 +f 5/25/21 17/26/22 14/27/23 +f 7/28/24 18/29/25 13/17/26 +f 13/30/27 17/31/28 2/2/2 +f 19/32/29 14/22/30 16/24/31 +f 20/33/32 21/34/32 22/35/32 +f 17/31/33 23/36/34 24/37/35 +f 9/12/36 25/38/36 20/33/36 +f 17/26/37 26/39/38 14/27/39 +f 18/29/40 20/40/41 23/41/42 +f 22/42/43 27/43/44 28/44/45 +f 26/39/46 29/45/47 30/46/48 +f 20/40/49 28/47/50 23/41/51 +f 15/23/52 30/48/53 31/49/54 +f 23/36/55 29/50/56 24/37/57 +f 27/51/58 32/52/59 33/53/60 +f 31/54/61 34/55/62 35/56/63 +f 28/57/64 33/58/65 29/59/66 +f 22/42/67 36/60/67 37/61/67 +f 30/62/68 33/58/69 34/63/70 +f 32/64/71 38/65/72 39/66/73 +f 37/67/74 40/68/75 41/69/75 +f 34/70/76 32/64/77 39/66/78 +f 37/67/79 42/71/80 27/51/81 +f 35/72/82 39/66/83 43/73/84 +f 38/65/85 44/74/85 45/75/85 +f 42/71/86 46/76/87 47/77/88 +f 39/66/89 48/78/90 43/73/91 +f 32/52/92 47/79/93 49/80/94 +f 41/69/75 50/81/95 46/82/95 +f 45/83/96 51/84/97 52/85/96 +f 47/77/98 53/86/98 54/87/98 +f 38/88/99 52/85/99 48/78/99 +f 47/79/100 44/89/100 49/80/100 +f 50/81/101 53/90/101 46/82/101 +f 55/91/102 56/92/102 57/93/102 +f 44/89/103 58/94/103 57/95/103 +f 59/96/104 60/97/104 53/90/104 +f 44/74/105 56/98/105 45/75/105 +f 54/87/106 60/99/106 58/100/106 +f 55/91/102 58/101/102 60/102/102 +f 50/81/95 43/73/75 48/103/95 +f 11/20/107 4/104/108 6/105/17 +f 8/11/10 19/106/10 16/107/10 +f 59/96/104 51/108/104 55/109/104 +f 50/81/101 52/110/101 59/96/101 +f 25/38/36 16/107/36 15/111/36 +f 10/14/11 12/112/11 11/15/11 +f 40/68/75 35/72/74 43/73/75 +f 36/60/67 31/54/67 35/56/67 +f 21/34/32 15/111/32 31/113/109 +f 1/1/1 13/30/27 2/2/2 +f 2/4/4 5/25/21 4/5/5 +f 5/7/7 19/32/110 6/8/8 +f 7/10/10 10/14/10 8/11/10 +f 6/13/11 19/106/11 10/14/11 +f 12/16/12 7/28/111 13/17/13 +f 1/19/15 3/114/112 11/20/16 +f 14/22/18 26/115/113 15/23/19 +f 5/25/21 2/4/4 17/26/22 +f 7/28/24 9/116/114 18/29/25 +f 13/30/27 18/117/115 17/31/28 +f 19/32/29 5/7/116 14/22/30 +f 20/33/32 25/38/32 21/34/32 +f 17/31/33 18/117/117 23/36/34 +f 9/12/36 8/11/36 25/38/36 +f 17/26/37 24/118/118 26/39/38 +f 18/29/40 9/116/119 20/40/41 +f 22/42/43 37/61/120 27/43/44 +f 26/39/46 24/118/121 29/45/47 +f 20/40/49 22/119/122 28/47/50 +f 15/23/52 26/115/123 30/48/53 +f 23/36/55 28/120/124 29/50/56 +f 27/51/58 42/71/125 32/52/59 +f 31/54/61 30/121/126 34/55/62 +f 28/57/64 27/122/127 33/58/65 +f 22/42/67 21/123/128 36/60/67 +f 30/62/68 29/59/129 33/58/69 +f 32/64/71 49/124/130 38/65/72 +f 37/67/74 36/125/74 40/68/75 +f 34/70/76 33/126/131 32/64/77 +f 37/67/79 41/69/132 42/71/80 +f 35/72/82 34/70/133 39/66/83 +f 38/65/85 49/124/85 44/74/85 +f 42/71/86 41/69/134 46/76/87 +f 39/66/89 38/88/135 48/78/90 +f 32/52/92 42/71/136 47/79/93 +f 41/69/75 40/68/75 50/81/95 +f 45/83/96 56/127/97 51/84/97 +f 47/77/98 46/76/98 53/86/98 +f 38/88/99 45/83/99 52/85/99 +f 47/79/100 54/128/100 44/89/100 +f 50/81/101 59/96/101 53/90/101 +f 55/91/102 51/129/102 56/92/102 +f 44/89/103 54/128/103 58/94/103 +f 59/96/104 55/109/104 60/97/104 +f 44/74/105 57/130/105 56/98/105 +f 54/87/106 53/86/106 60/99/106 +f 55/91/102 57/93/102 58/101/102 +f 50/81/95 40/68/75 43/73/75 +f 11/20/107 3/114/137 4/104/108 +f 8/11/10 10/14/10 19/106/10 +f 59/96/104 52/110/104 51/108/104 +f 50/81/101 48/103/101 52/110/101 +f 25/38/36 8/11/36 16/107/36 +f 10/14/11 7/10/11 12/112/11 +f 40/68/75 36/125/74 35/72/74 +f 36/60/67 21/123/128 31/54/67 +f 21/34/32 25/38/32 15/111/32 diff --git a/src/main/resources/assets/hbm/models/armor/test.obj b/src/main/resources/assets/hbm/models/armor/test.obj new file mode 100644 index 000000000..614588e3e --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/test.obj @@ -0,0 +1,219 @@ +# Blender v2.79 (sub 0) OBJ File: 'test.blend' +# www.blender.org +o Chest +v -4.000000 12.000000 2.000000 +v 4.000000 12.000000 2.000000 +v -4.000000 12.000000 -2.000000 +v 4.000000 12.000000 -2.000000 +v 4.000000 0.000000 -2.000000 +v -4.000000 0.000000 -2.000000 +v 4.000000 0.000000 2.000000 +v -4.000000 0.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 5/1/1 2/2/1 7/3/1 +f 8/4/2 3/5/2 6/6/2 +f 6/6/3 4/7/3 5/1/3 +f 7/3/4 1/8/4 8/4/4 +f 2/2/5 3/5/5 1/8/5 +f 6/6/6 7/3/6 8/4/6 +f 5/1/1 4/7/1 2/2/1 +f 8/4/2 1/8/2 3/5/2 +f 6/6/3 3/5/3 4/7/3 +f 7/3/4 2/2/4 1/8/4 +f 2/2/5 4/7/5 3/5/5 +f 6/6/6 5/1/6 7/3/6 +o LeftArm +v 4.000000 12.000000 2.000000 +v 8.000000 12.000000 2.000000 +v 4.000000 12.000000 -2.000000 +v 8.000000 12.000000 -2.000000 +v 8.000000 0.000000 -2.000000 +v 4.000000 0.000000 -2.000000 +v 8.000000 0.000000 2.000000 +v 4.000000 0.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 13/9/7 10/10/7 15/11/7 +f 16/12/8 11/13/8 14/14/8 +f 14/14/9 12/15/9 13/9/9 +f 15/11/10 9/16/10 16/12/10 +f 10/10/11 11/13/11 9/16/11 +f 14/14/12 15/11/12 16/12/12 +f 13/9/7 12/15/7 10/10/7 +f 16/12/8 9/16/8 11/13/8 +f 14/14/9 11/13/9 12/15/9 +f 15/11/10 10/10/10 9/16/10 +f 10/10/11 12/15/11 11/13/11 +f 14/14/12 13/9/12 15/11/12 +o RightArm +v -8.000000 12.000000 2.000000 +v -4.000000 12.000000 2.000000 +v -8.000000 12.000000 -2.000000 +v -4.000000 12.000000 -2.000000 +v -4.000000 0.000000 -2.000000 +v -8.000000 0.000000 -2.000000 +v -4.000000 0.000000 2.000000 +v -8.000000 0.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 21/17/13 18/18/13 23/19/13 +f 24/20/14 19/21/14 22/22/14 +f 22/22/15 20/23/15 21/17/15 +f 23/19/16 17/24/16 24/20/16 +f 18/18/17 19/21/17 17/24/17 +f 22/22/18 23/19/18 24/20/18 +f 21/17/13 20/23/13 18/18/13 +f 24/20/14 17/24/14 19/21/14 +f 22/22/15 19/21/15 20/23/15 +f 23/19/16 18/18/16 17/24/16 +f 18/18/17 20/23/17 19/21/17 +f 22/22/18 21/17/18 23/19/18 +o RightLeg +v -4.000000 24.000000 2.000000 +v 0.000000 24.000000 2.000000 +v -4.000000 24.000000 -2.000000 +v 0.000000 24.000000 -2.000000 +v 0.000000 12.000000 -2.000000 +v -4.000000 12.000000 -2.000000 +v 0.000000 12.000000 2.000000 +v -4.000000 12.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 29/25/19 26/26/19 31/27/19 +f 32/28/20 27/29/20 30/30/20 +f 30/30/21 28/31/21 29/25/21 +f 31/27/22 25/32/22 32/28/22 +f 26/26/23 27/29/23 25/32/23 +f 30/30/24 31/27/24 32/28/24 +f 29/25/19 28/31/19 26/26/19 +f 32/28/20 25/32/20 27/29/20 +f 30/30/21 27/29/21 28/31/21 +f 31/27/22 26/26/22 25/32/22 +f 26/26/23 28/31/23 27/29/23 +f 30/30/24 29/25/24 31/27/24 +o LeftLeg +v 0.000000 24.000000 2.000000 +v 4.000000 24.000000 2.000000 +v 0.000000 24.000000 -2.000000 +v 4.000000 24.000000 -2.000000 +v 4.000000 12.000000 -2.000000 +v 0.000000 12.000000 -2.000000 +v 4.000000 12.000000 2.000000 +v 0.000000 12.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 37/33/25 34/34/25 39/35/25 +f 40/36/26 35/37/26 38/38/26 +f 38/38/27 36/39/27 37/33/27 +f 39/35/28 33/40/28 40/36/28 +f 34/34/29 35/37/29 33/40/29 +f 38/38/30 39/35/30 40/36/30 +f 37/33/25 36/39/25 34/34/25 +f 40/36/26 33/40/26 35/37/26 +f 38/38/27 35/37/27 36/39/27 +f 39/35/28 34/34/28 33/40/28 +f 34/34/29 36/39/29 35/37/29 +f 38/38/30 37/33/30 39/35/30 +o Helmet +v 25.451866 -3.037100 4.881973 +v -4.000000 0.000000 4.000000 +v 4.000000 0.000000 4.000000 +v -4.000000 0.000000 -4.000000 +v 4.000000 0.000000 -4.000000 +v 4.000000 -8.000000 -4.000000 +v -4.000000 -8.000000 -4.000000 +v 4.000000 -8.000000 4.000000 +v -4.000000 -8.000000 4.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 46/41/31 43/42/31 48/43/31 +f 49/44/32 44/45/32 47/46/32 +f 47/46/33 45/47/33 46/41/33 +f 48/43/34 42/48/34 49/44/34 +f 43/42/35 44/45/35 42/48/35 +f 47/46/36 48/43/36 49/44/36 +f 46/41/31 45/47/31 43/42/31 +f 49/44/32 42/48/32 44/45/32 +f 47/46/33 44/45/33 45/47/33 +f 48/43/34 43/42/34 42/48/34 +f 43/42/35 45/47/35 44/45/35 +f 47/46/36 46/41/36 48/43/36 diff --git a/src/main/resources/assets/hbm/models/armor/trenchmaster.obj b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj new file mode 100644 index 000000000..afb0242b7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj @@ -0,0 +1,3533 @@ +# Blender v2.79 (sub 0) OBJ File: 'trenchmaster_scaled.blend' +# www.blender.org +o LeftBoot +v 4.625000 24.299997 2.625000 +v -0.625000 24.299999 2.625000 +v 4.625000 24.299997 -2.625000 +v -0.625000 24.299999 -2.625000 +v 3.575000 24.299999 -3.675000 +v 0.425000 24.299999 -3.675000 +v 3.574999 22.199999 -3.675000 +v 0.424999 22.199999 -3.675000 +v 3.574999 21.149998 -2.625000 +v 0.424999 21.150000 -2.625000 +v 4.625000 22.199999 -2.625000 +v -0.625001 22.200001 -2.625000 +v -0.100001 20.100000 -2.100000 +v 4.099998 20.099998 -2.100000 +v -0.100001 20.100000 2.100000 +v 4.099998 20.099998 2.100000 +v 4.624999 20.099998 2.625000 +v -0.625001 20.100000 2.625000 +v 4.624999 20.099998 -2.625000 +v -0.625001 20.100000 -2.625000 +vt 0.250000 0.000000 +vt 0.000000 0.222222 +vt 0.000000 -0.000000 +vt 0.500000 0.000000 +vt 0.300000 0.044444 +vt 0.250000 0.000000 +vt 0.450000 0.044444 +vt 0.300000 0.133333 +vt 0.450000 0.133333 +vt 0.300000 0.177778 +vt 0.750000 0.400000 +vt 0.525000 0.422222 +vt 0.500000 0.400000 +vt 0.500000 0.311111 +vt 0.275000 0.422222 +vt 0.250000 0.400000 +vt 0.500000 0.133333 +vt 0.500000 0.044444 +vt 0.250000 0.133333 +vt 0.250000 0.044444 +vt 0.450000 0.177778 +vt 0.300000 0.355556 +vt 0.450000 0.355556 +vt 1.000000 0.400000 +vt 0.775000 0.422222 +vt 0.025000 0.422222 +vt 0.000000 0.400000 +vt 0.250000 0.311111 +vt 1.000000 0.222222 +vt 0.750000 0.222222 +vt 0.250000 0.222222 +vt 0.725000 0.422222 +vt 0.500000 0.222222 +vt 0.475000 0.422222 +vt 0.975000 0.422222 +vt 0.225000 0.422222 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.5774 -0.5774 -0.5773 +vn -0.5773 -0.5773 -0.5774 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 3/4/1 6/5/1 4/6/1 +f 5/7/2 8/8/2 6/5/2 +f 7/9/3 10/10/3 8/8/3 +f 17/11/4 14/12/4 19/13/4 +f 17/11/5 19/13/5 11/14/5 +f 19/13/4 13/15/4 20/16/4 +f 11/17/6 5/7/6 3/18/6 +f 6/5/7 12/19/7 4/20/7 +f 9/21/8 7/9/8 11/17/8 +f 10/22/2 9/23/2 19/13/2 +f 8/8/9 10/10/9 12/19/9 +f 18/24/4 16/25/4 17/11/4 +f 20/16/4 15/26/4 18/27/4 +f 2/2/10 12/28/10 18/27/10 +f 2/29/11 17/11/11 1/30/11 +f 3/1/1 4/31/1 2/2/1 +f 3/4/1 5/7/1 6/5/1 +f 5/7/2 7/9/2 8/8/2 +f 7/9/3 9/21/3 10/10/3 +f 17/11/4 16/32/4 14/12/4 +f 3/33/5 1/30/5 11/14/5 +f 1/30/5 17/11/5 11/14/5 +f 19/13/4 14/34/4 13/15/4 +f 11/17/6 7/9/6 5/7/6 +f 6/5/7 8/8/7 12/19/7 +f 20/16/2 12/28/2 10/22/2 +f 9/23/2 11/14/2 19/13/2 +f 20/16/2 10/22/2 19/13/2 +f 18/24/4 15/35/4 16/25/4 +f 20/16/4 13/36/4 15/26/4 +f 4/31/10 12/28/10 2/2/10 +f 12/28/10 20/16/10 18/27/10 +f 2/29/11 18/24/11 17/11/11 +o RightBoot +v -4.625000 24.300001 2.625000 +v 0.625000 24.299999 2.625000 +v -4.625000 24.300001 -2.625000 +v 0.625000 24.299999 -2.625000 +v -3.575000 24.300001 -3.675000 +v -0.425000 24.299999 -3.675000 +v -3.575000 22.200001 -3.675000 +v -0.425001 22.200001 -3.675000 +v -3.575001 21.150002 -2.625000 +v -0.425001 21.150000 -2.625000 +v -4.625000 22.200001 -2.625000 +v 0.624999 22.199999 -2.625000 +v 0.099999 20.100000 -2.100000 +v -4.100001 20.100002 -2.100000 +v 0.099999 20.100000 2.100000 +v -4.100001 20.100002 2.100000 +v -4.625001 20.100002 2.625000 +v 0.624999 20.100000 2.625000 +v -4.625001 20.100002 -2.625000 +v 0.624999 20.100000 -2.625000 +vt 0.000000 0.222222 +vt 0.250000 0.000000 +vt 0.000000 -0.000000 +vt 0.300000 0.044444 +vt 0.500000 0.000000 +vt 0.250000 0.000000 +vt 0.300000 0.133333 +vt 0.450000 0.044444 +vt 0.300000 0.177778 +vt 0.450000 0.133333 +vt 0.525000 0.422222 +vt 0.750000 0.400000 +vt 0.500000 0.400000 +vt 0.500000 0.311111 +vt 0.275000 0.422222 +vt 0.250000 0.400000 +vt 0.500000 0.133333 +vt 0.500000 0.044444 +vt 0.250000 0.133333 +vt 0.250000 0.044444 +vt 0.450000 0.177778 +vt 0.450000 0.355556 +vt 0.300000 0.355556 +vt 0.775000 0.422222 +vt 1.000000 0.400000 +vt 0.025000 0.422222 +vt 0.000000 0.400000 +vt 0.250000 0.311111 +vt 0.750000 0.222222 +vt 1.000000 0.222222 +vt 0.250000 0.222222 +vt 0.725000 0.422222 +vt 0.500000 0.222222 +vt 0.475000 0.422222 +vt 0.975000 0.422222 +vt 0.225000 0.422222 +vn 0.0000 1.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.5773 -0.5774 -0.5774 +vn 0.5773 -0.5773 -0.5774 +vn 1.0000 -0.0000 -0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 22/37/12 23/38/12 21/39/12 +f 26/40/12 23/41/12 24/42/12 +f 28/43/13 25/44/13 26/40/13 +f 30/45/14 27/46/14 28/43/14 +f 34/47/15 37/48/15 39/49/15 +f 31/50/16 39/49/16 37/48/16 +f 33/51/15 39/49/15 40/52/15 +f 25/44/17 31/53/17 23/54/17 +f 32/55/18 26/40/18 24/56/18 +f 29/57/19 31/53/19 27/46/19 +f 29/58/13 30/59/13 40/52/13 +f 28/43/20 32/55/20 30/45/20 +f 36/60/15 38/61/15 37/48/15 +f 35/62/15 40/52/15 38/63/15 +f 38/63/21 32/64/21 22/37/21 +f 21/65/22 38/61/22 22/66/22 +f 22/37/12 24/67/12 23/38/12 +f 26/40/12 25/44/12 23/41/12 +f 28/43/13 27/46/13 25/44/13 +f 30/45/14 29/57/14 27/46/14 +f 34/47/15 36/68/15 37/48/15 +f 37/48/16 21/65/16 31/50/16 +f 21/65/16 23/69/16 31/50/16 +f 33/51/15 34/70/15 39/49/15 +f 25/44/17 27/46/17 31/53/17 +f 32/55/18 28/43/18 26/40/18 +f 39/49/13 31/50/13 29/58/13 +f 30/59/13 32/64/13 40/52/13 +f 39/49/13 29/58/13 40/52/13 +f 36/60/15 35/71/15 38/61/15 +f 35/62/15 33/72/15 40/52/15 +f 40/52/21 32/64/21 38/63/21 +f 32/64/21 24/67/21 22/37/21 +f 21/65/22 37/48/22 38/61/22 +o Light +v 2.099990 -5.575001 -5.250000 +v 3.463980 -4.787502 -5.250000 +v 3.463981 -3.212502 -5.250000 +v 2.099991 -2.424999 -5.250000 +v 0.736001 -3.212500 -5.250000 +v 0.736001 -4.787500 -5.250000 +v -2.100009 -5.575001 -5.250000 +v -0.736019 -4.787500 -5.250000 +v -0.736019 -3.212500 -5.250000 +v -2.100008 -2.424999 -5.250000 +v -3.463999 -3.212498 -5.250000 +v -3.463999 -4.787498 -5.250000 +v 1.574989 -10.825001 -7.349999 +v 1.574990 -7.674999 -7.349999 +v -1.575010 -7.674999 -7.349999 +v -1.575011 -10.825001 -7.349999 +v 1.049989 -10.299999 -7.875000 +v 1.049989 -8.200001 -7.875000 +v -1.050010 -8.200001 -7.875000 +v -1.050011 -10.299999 -7.875000 +vt 0.770035 0.472036 +vt 0.770035 0.411685 +vt 0.859930 0.441860 +vt 0.770035 0.411685 +vt 0.829965 0.411685 +vt 0.859930 0.441860 +vt 0.320000 0.372093 +vt 0.420000 0.360465 +vt 0.440000 0.372093 +vt 0.340000 0.313953 +vt 0.420000 0.313953 +vt 0.440000 0.302326 +vt 0.320000 0.302326 +vt 0.340000 0.360465 +vt 0.829965 0.472036 +vt 0.740070 0.441860 +vt 0.829965 0.411685 +vt 0.829965 0.472036 +vt 0.770035 0.472036 +vt 0.740070 0.441860 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.0000 -0.7071 +s off +f 41/73/23 45/74/23 43/75/23 +f 51/76/23 50/77/23 49/78/23 +f 56/79/24 57/80/24 53/81/24 +f 57/80/23 59/82/23 58/83/23 +f 53/81/25 58/83/25 54/84/25 +f 54/84/26 59/82/26 55/85/26 +f 55/85/27 60/86/27 56/79/27 +f 43/75/23 42/87/23 41/73/23 +f 41/73/23 46/88/23 45/74/23 +f 45/74/23 44/89/23 43/75/23 +f 49/78/23 48/90/23 51/76/23 +f 48/90/23 47/91/23 51/76/23 +f 47/91/23 52/92/23 51/76/23 +f 56/79/24 60/86/24 57/80/24 +f 57/80/23 60/86/23 59/82/23 +f 53/81/25 57/80/25 58/83/25 +f 54/84/26 58/83/26 59/82/26 +f 55/85/27 59/82/27 60/86/27 +o RightLeg +v -4.100004 11.700002 2.100000 +v 0.099996 11.700001 2.100000 +v -4.100004 11.700002 -2.100000 +v 0.099996 11.700001 -2.100000 +v 0.099999 20.100000 -2.100000 +v -4.100001 20.100002 -2.100000 +v 0.099999 20.100000 2.100000 +v -4.100001 20.100002 2.100000 +v -4.100001 19.050001 2.100000 +v 0.099998 19.049999 2.100000 +v -4.100001 19.050001 -2.100000 +v 0.099998 19.049999 -2.100000 +v -4.625001 19.050001 2.625000 +v 0.624998 19.049999 2.625000 +v -4.625001 19.050001 -2.625000 +v 0.624998 19.049999 -2.625000 +v -4.625003 15.900002 2.625000 +v 0.624997 15.900000 2.625000 +v -4.625003 15.900002 -2.625000 +v 0.624997 15.900000 -2.625000 +v -4.100003 15.900001 2.100000 +v 0.099997 15.900000 2.100000 +v -4.100003 15.900001 -2.100000 +v 0.099997 15.900000 -2.100000 +vt 0.225000 1.000000 +vt 0.025000 0.822222 +vt 0.025000 1.000000 +vt 0.525000 0.422222 +vt 0.725000 0.466667 +vt 0.725000 0.422222 +vt 0.275000 0.422222 +vt 0.475000 0.466667 +vt 0.475000 0.422222 +vt 0.025000 0.422222 +vt 0.225000 0.466667 +vt 0.225000 0.422222 +vt 0.750000 0.488889 +vt 0.975000 0.466667 +vt 0.775000 0.466667 +vt 0.000000 0.488889 +vt 0.025000 0.466667 +vt 0.250000 0.488889 +vt 0.275000 0.466667 +vt 0.500000 0.488889 +vt 0.525000 0.466667 +vt 0.750000 0.622222 +vt 1.000000 0.488889 +vt 0.500000 0.622222 +vt 0.250000 0.622222 +vt 0.000000 0.622222 +vt 0.525000 0.644444 +vt 0.275000 0.644444 +vt 0.025000 0.644444 +vt 0.975000 0.644444 +vt 1.000000 0.622222 +vt 0.975000 0.822222 +vt 0.775000 0.644444 +vt 0.775000 0.822222 +vt 0.725000 0.644444 +vt 0.525000 0.822222 +vt 0.725000 0.822222 +vt 0.475000 0.644444 +vt 0.275000 0.822222 +vt 0.475000 0.822222 +vt 0.225000 0.644444 +vt 0.225000 0.822222 +vt 0.775000 0.422222 +vt 0.975000 0.422222 +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.0000 1.0000 +s off +f 63/93/28 62/94/28 61/95/28 +f 66/96/29 69/97/29 68/98/29 +f 65/99/30 71/100/30 66/101/30 +f 67/102/31 72/103/31 65/104/31 +f 73/105/32 70/106/32 69/107/32 +f 74/108/32 72/103/32 70/109/32 +f 76/110/32 71/100/32 72/111/32 +f 75/112/32 69/97/32 71/113/32 +f 77/114/33 74/115/33 73/105/33 +f 79/116/29 73/105/29 75/112/29 +f 80/117/30 75/112/30 76/110/30 +f 78/118/31 76/110/31 74/108/31 +f 83/119/28 77/114/28 79/116/28 +f 84/120/28 79/116/28 80/117/28 +f 82/121/28 80/117/28 78/118/28 +f 77/114/28 82/122/28 78/123/28 +f 62/124/33 81/125/33 61/126/33 +f 81/127/29 63/128/29 61/129/29 +f 83/130/30 64/131/30 63/132/30 +f 84/133/31 62/94/31 64/134/31 +f 68/135/33 70/106/33 67/136/33 +f 63/93/28 64/134/28 62/94/28 +f 66/96/29 71/113/29 69/97/29 +f 65/99/30 72/111/30 71/100/30 +f 67/102/31 70/109/31 72/103/31 +f 73/105/32 74/115/32 70/106/32 +f 74/108/32 76/110/32 72/103/32 +f 76/110/32 75/112/32 71/100/32 +f 75/112/32 73/105/32 69/97/32 +f 77/114/33 78/123/33 74/115/33 +f 79/116/29 77/114/29 73/105/29 +f 80/117/30 79/116/30 75/112/30 +f 78/118/31 80/117/31 76/110/31 +f 83/119/28 81/127/28 77/114/28 +f 84/120/28 83/130/28 79/116/28 +f 82/121/28 84/133/28 80/117/28 +f 77/114/28 81/125/28 82/122/28 +f 62/124/33 82/122/33 81/125/33 +f 81/127/29 83/119/29 63/128/29 +f 83/130/30 84/120/30 64/131/30 +f 84/133/31 82/121/31 62/94/31 +f 68/135/33 69/107/33 70/106/33 +o LeftLeg +v 4.099996 11.700000 2.100000 +v -0.100004 11.700001 2.100000 +v 4.099996 11.700000 -2.100000 +v -0.100004 11.700001 -2.100000 +v -0.100001 20.100000 -2.100000 +v 4.099998 20.099998 -2.100000 +v -0.100001 20.100000 2.100000 +v 4.099998 20.099998 2.100000 +v 4.099998 19.049999 2.100000 +v -0.100002 19.049999 2.100000 +v 4.099998 19.049999 -2.100000 +v -0.100002 19.049999 -2.100000 +v 4.624999 19.049999 2.625000 +v -0.625002 19.049999 2.625000 +v 4.624999 19.049999 -2.625000 +v -0.625002 19.049999 -2.625000 +v 4.624997 15.899998 2.625000 +v -0.625003 15.900000 2.625000 +v 4.624997 15.899998 -2.625000 +v -0.625003 15.900000 -2.625000 +v 4.099997 15.899999 2.100000 +v -0.100003 15.900000 2.100000 +v 4.099997 15.899999 -2.100000 +v -0.100003 15.900000 -2.100000 +vt 0.025000 0.822222 +vt 0.225000 1.000000 +vt 0.025000 1.000000 +vt 0.725000 0.466667 +vt 0.525000 0.422222 +vt 0.725000 0.422222 +vt 0.475000 0.466667 +vt 0.275000 0.422222 +vt 0.475000 0.422222 +vt 0.225000 0.466667 +vt 0.025000 0.422222 +vt 0.225000 0.422222 +vt 0.975000 0.466667 +vt 0.750000 0.488889 +vt 0.775000 0.466667 +vt 0.000000 0.488889 +vt 0.025000 0.466667 +vt 0.250000 0.488889 +vt 0.275000 0.466667 +vt 0.500000 0.488889 +vt 0.525000 0.466667 +vt 1.000000 0.622222 +vt 0.750000 0.622222 +vt 0.500000 0.622222 +vt 0.250000 0.622222 +vt 0.000000 0.622222 +vt 0.525000 0.644444 +vt 0.275000 0.644444 +vt 0.025000 0.644444 +vt 0.775000 0.644444 +vt 0.775000 0.822222 +vt 0.975000 0.644444 +vt 0.975000 0.822222 +vt 0.525000 0.822222 +vt 0.725000 0.644444 +vt 0.725000 0.822222 +vt 0.275000 0.822222 +vt 0.475000 0.644444 +vt 0.475000 0.822222 +vt 0.225000 0.644444 +vt 0.225000 0.822222 +vt 0.775000 0.422222 +vt 0.975000 0.422222 +vt 1.000000 0.488889 +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.0000 1.0000 +s off +f 86/137/34 87/138/34 85/139/34 +f 93/140/35 90/141/35 92/142/35 +f 95/143/36 89/144/36 90/145/36 +f 96/146/37 91/147/37 89/148/37 +f 94/149/38 97/150/38 93/151/38 +f 96/146/38 98/152/38 94/153/38 +f 95/143/38 100/154/38 96/155/38 +f 93/140/38 99/156/38 95/157/38 +f 97/150/39 102/158/39 101/159/39 +f 97/150/35 103/160/35 99/156/35 +f 99/156/36 104/161/36 100/154/36 +f 100/154/37 102/162/37 98/152/37 +f 101/159/34 107/163/34 103/160/34 +f 103/160/34 108/164/34 104/161/34 +f 104/161/34 106/165/34 102/162/34 +f 102/158/34 105/166/34 101/159/34 +f 85/167/39 106/168/39 86/169/39 +f 87/170/35 105/171/35 85/172/35 +f 88/173/36 107/174/36 87/175/36 +f 86/137/37 108/176/37 88/177/37 +f 94/149/39 92/178/39 91/179/39 +f 86/137/34 88/177/34 87/138/34 +f 93/140/35 95/157/35 90/141/35 +f 95/143/36 96/155/36 89/144/36 +f 96/146/37 94/153/37 91/147/37 +f 94/149/38 98/180/38 97/150/38 +f 96/146/38 100/154/38 98/152/38 +f 95/143/38 99/156/38 100/154/38 +f 93/140/38 97/150/38 99/156/38 +f 97/150/39 98/180/39 102/158/39 +f 97/150/35 101/159/35 103/160/35 +f 99/156/36 103/160/36 104/161/36 +f 100/154/37 104/161/37 102/162/37 +f 101/159/34 105/171/34 107/163/34 +f 103/160/34 107/174/34 108/164/34 +f 104/161/34 108/176/34 106/165/34 +f 102/158/34 106/168/34 105/166/34 +f 85/167/39 105/166/39 106/168/39 +f 87/170/35 107/163/35 105/171/35 +f 88/173/36 108/164/36 107/174/36 +f 86/137/37 106/165/37 108/176/37 +f 94/149/39 93/151/39 92/178/39 +o RightArm +v -8.625008 1.275002 0.525000 +v -8.625007 2.325003 0.525000 +v -8.625008 1.275002 -0.525000 +v -8.625007 2.325003 -0.525000 +v -9.150007 1.275003 -0.525000 +v -9.150007 1.275003 0.525000 +v -9.150006 2.325005 0.525000 +v -9.150006 2.325005 -0.525000 +v -9.150007 1.800003 -1.050000 +v -9.150007 1.057541 -0.742462 +v -9.150007 0.750004 0.000000 +v -9.150007 1.057541 0.742462 +v -9.150007 1.800003 1.050000 +v -9.150006 2.542467 0.742462 +v -9.150006 2.850004 -0.000000 +v -9.150006 2.542467 -0.742462 +v -9.412508 1.057541 -0.742462 +v -9.412508 1.800003 -1.050000 +v -9.412508 0.750004 0.000000 +v -9.412508 1.057541 0.742462 +v -9.412508 1.800003 1.050000 +v -9.412507 2.542467 0.742462 +v -9.412507 2.850004 -0.000000 +v -9.412507 2.542467 -0.742462 +v -8.625008 1.537502 0.525000 +v -8.625007 2.062502 0.525000 +v -8.625008 1.537502 2.625000 +v -8.625007 2.062502 2.625000 +v -8.887507 1.537504 0.525000 +v -8.887506 2.062504 0.525000 +v -8.887507 1.537504 2.625000 +v -8.887506 2.062504 2.625000 +v -8.887507 0.750004 0.525000 +v -8.887506 2.850004 0.525000 +v -8.887507 0.750004 -0.525000 +v -8.887506 2.850004 -0.525000 +v -8.625008 0.225002 0.525000 +v -8.625008 0.225002 -0.525000 +v -8.625007 3.375002 0.525000 +v -8.625007 3.375002 -0.525000 +v -8.100007 3.900002 2.100000 +v -8.100007 3.900002 -2.100000 +v -3.900007 3.900002 -2.100000 +v -3.900007 3.900002 2.100000 +v -3.375006 3.900002 -2.625000 +v -3.375006 3.900002 2.625000 +v -8.625007 3.900002 -2.625000 +v -8.625007 3.900002 2.625000 +v -3.375008 -0.299997 -2.625000 +v -3.375008 -0.299997 2.625000 +v -8.625008 -0.299997 -2.625000 +v -8.625008 -0.299997 2.625000 +v -4.950008 -2.399998 -2.625000 +v -4.950008 -2.399998 2.625000 +v -8.100006 6.000002 2.100000 +v -3.900006 6.000002 2.100000 +v -3.900006 6.000002 -2.100000 +v -8.100006 6.000002 -2.100000 +v -8.625006 6.000002 -2.625000 +v -8.625006 6.000002 2.625000 +v -3.375006 6.000002 -2.625000 +v -3.375006 6.000002 2.625000 +v -8.625005 10.200003 -2.625000 +v -8.625005 10.200003 2.625000 +v -3.375005 10.200001 -2.625000 +v -3.375005 10.200001 2.625000 +v -3.900005 10.200001 2.100000 +v -3.900005 10.200001 -2.100000 +v -8.100005 10.200003 -2.100000 +v -8.100005 10.200003 2.100000 +v -3.900004 11.250001 -2.100000 +v -3.900004 11.250001 2.100000 +v -8.100004 11.250003 -2.100000 +v -8.100004 11.250003 2.100000 +v -3.375004 11.250001 -2.625000 +v -3.375004 11.250001 2.625000 +v -8.625004 11.250003 -2.625000 +v -8.625004 11.250003 2.625000 +v -3.375004 13.350000 -2.625000 +v -3.375004 13.350000 2.625000 +v -8.100004 13.350002 -2.625000 +v -8.100004 13.350002 2.625000 +v -8.625009 -2.399998 0.525000 +v -5.475008 -2.399998 0.525000 +v -8.625009 -2.399998 -0.525000 +v -5.475008 -2.399998 -0.525000 +v -7.575008 -0.299997 -0.525000 +v -7.575008 -0.299997 0.525000 +v -5.475008 -0.299997 0.525000 +v -5.475008 -0.299997 -0.525000 +vt 0.650000 0.827586 +vt 0.700000 0.810345 +vt 0.700000 0.827586 +vt 0.725000 0.810345 +vt 0.700000 0.844828 +vt 0.700000 0.810345 +vt 0.725000 0.913793 +vt 0.700000 0.879310 +vt 0.725000 0.879310 +vt 0.725000 0.948276 +vt 0.700000 0.913793 +vt 0.725000 0.844828 +vt 0.601300 0.034483 +vt 0.650000 0.000897 +vt 0.698699 0.034483 +vt 0.476300 0.034483 +vt 0.525000 0.000897 +vt 0.573700 0.034483 +vt 0.575000 0.034483 +vt 0.600000 0.017241 +vt 0.600000 0.034483 +vt 0.575000 0.051724 +vt 0.600000 0.068966 +vt 0.575000 0.068966 +vt 0.575000 0.086207 +vt 0.600000 0.103448 +vt 0.575000 0.103448 +vt 0.600000 0.120690 +vt 0.575000 0.120690 +vt 0.575000 -0.000000 +vt 0.575000 0.017241 +vt 0.600000 0.051724 +vt 0.600000 0.086207 +vt 0.600000 0.137931 +vt 0.575000 0.137931 +vt 0.700000 0.896552 +vt 0.650000 0.913793 +vt 0.650000 0.896552 +vt 0.775000 0.810345 +vt 0.750000 0.879310 +vt 0.750000 0.810345 +vt 0.725000 0.810345 +vt 0.725000 0.879310 +vt 0.800000 0.879310 +vt 0.800000 0.810345 +vt 0.750000 0.896552 +vt 0.775000 0.879310 +vt 0.775000 0.896552 +vt 0.750000 0.448276 +vt 0.525000 0.465517 +vt 0.725000 0.465517 +vt 0.250000 0.551724 +vt 0.025000 0.534483 +vt -0.000000 0.551724 +vt 0.975000 0.534483 +vt 0.750000 0.551724 +vt 1.000000 0.551724 +vt 0.525000 0.534483 +vt 0.500000 0.551724 +vt 0.725000 0.534483 +vt 0.475000 0.534483 +vt 0.250000 0.689655 +vt 0.325000 0.758621 +vt 0.500000 0.689655 +vt -0.000000 0.689655 +vt 0.750000 0.689655 +vt 1.000000 0.689655 +vt 0.925000 0.758621 +vt -0.000000 0.758621 +vt 0.750000 0.810345 +vt 0.475000 0.465517 +vt 0.275000 0.534483 +vt 0.775000 0.465517 +vt 0.775000 0.534483 +vt 0.225000 0.465517 +vt 0.225000 0.534483 +vt 0.250000 0.310345 +vt 0.000000 0.448276 +vt 0.250000 0.448276 +vt 0.025000 0.465517 +vt 0.975000 0.465517 +vt 0.500000 0.448276 +vt 0.275000 0.465517 +vt 0.475000 0.293103 +vt 0.500000 0.310345 +vt 1.000000 0.448276 +vt 0.750000 0.310345 +vt 0.975000 0.258621 +vt 0.775000 0.293103 +vt 0.975000 0.293103 +vt 0.525000 0.293103 +vt 1.000000 0.310345 +vt 0.025000 0.293103 +vt -0.000000 0.310345 +vt 0.750000 0.241379 +vt 0.525000 0.258621 +vt 0.725000 0.258621 +vt 0.725000 0.293103 +vt 0.275000 0.258621 +vt 0.275000 0.293103 +vt 0.225000 0.258621 +vt 0.225000 0.293103 +vt 0.475000 0.172414 +vt 0.250000 0.241379 +vt 0.500000 0.241379 +vt 0.475000 0.258621 +vt 0.025000 0.258621 +vt 0.775000 0.258621 +vt 0.250000 -0.000000 +vt 0.250000 0.172414 +vt -0.000000 0.241379 +vt 1.000000 0.241379 +vt 0.775000 0.172414 +vt 0.750000 0.172414 +vt 0.150000 0.931035 +vt 0.100000 0.827586 +vt 0.100000 0.931035 +vt 0.250000 0.896552 +vt 0.150000 0.827586 +vt 0.000000 0.896552 +vt 0.150000 0.758621 +vt 0.100000 1.000000 +vt 0.650000 0.810345 +vt 0.700000 0.948276 +vt 0.650000 0.068069 +vt 0.615564 0.058232 +vt 0.615564 0.010734 +vt 0.684436 0.010734 +vt 0.684436 0.058232 +vt 0.559436 0.058232 +vt 0.525000 0.068069 +vt 0.490564 0.058232 +vt 0.490564 0.010734 +vt 0.559436 0.010734 +vt 0.600000 -0.000000 +vt 0.700000 0.913793 +vt 0.250000 0.758621 +vt 0.500000 0.810345 +vt 0.475000 0.000000 +vt -0.000000 0.172414 +vt 1.000000 0.172414 +vt 0.500000 0.172414 +vt 0.250000 0.827586 +vt 0.000000 0.827586 +vt 0.100000 0.758621 +vt 0.150000 1.000000 +vn -0.8944 0.4472 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.3827 0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 0.9239 -0.3827 +vn -0.8944 -0.4472 0.0000 +vn 0.8000 -0.6000 0.0000 +vn -0.4961 -0.8682 0.0000 +vn -0.9701 0.2425 0.0000 +s off +f 142/181/40 148/182/40 144/183/40 +f 112/184/41 113/185/41 116/186/41 +f 110/187/42 114/188/42 109/189/42 +f 112/190/43 115/191/43 110/187/43 +f 109/189/44 113/185/44 111/192/44 +f 117/193/45 123/194/45 121/195/45 +f 129/196/46 131/197/46 126/198/46 +f 121/199/47 130/200/47 129/201/47 +f 120/202/48 127/203/48 119/204/48 +f 118/205/49 126/206/49 117/207/49 +f 117/207/50 132/208/50 124/209/50 +f 123/210/51 130/200/51 122/211/51 +f 121/199/52 128/212/52 120/202/52 +f 119/204/53 125/213/53 118/205/53 +f 124/209/54 131/214/54 123/215/54 +f 143/216/55 145/217/55 141/218/55 +f 137/219/46 140/220/46 138/221/46 +f 134/222/43 140/220/43 136/223/43 +f 142/181/46 143/216/46 141/218/46 +f 135/224/44 137/219/44 133/225/44 +f 136/226/42 139/227/42 135/228/42 +f 168/229/44 166/230/44 163/231/44 +f 153/232/43 152/233/43 154/234/43 +f 152/235/43 156/236/43 154/237/43 +f 156/236/43 150/238/43 155/239/43 +f 163/231/46 150/238/46 149/240/46 +f 150/241/43 153/232/43 155/239/43 +f 157/242/41 161/243/41 159/244/41 +f 157/242/41 155/239/41 153/232/41 +f 158/245/45 153/232/45 154/234/45 +f 160/246/42 154/237/42 156/236/42 +f 159/244/46 156/236/46 155/239/46 +f 158/247/42 160/246/42 162/248/42 +f 162/249/56 157/242/56 158/245/56 +f 159/244/57 162/250/57 160/246/57 +f 166/251/41 151/252/41 150/241/41 +f 152/235/42 163/253/42 149/254/42 +f 165/255/45 152/233/45 151/256/45 +f 173/257/45 170/258/45 169/259/45 +f 169/259/44 164/260/44 165/255/44 +f 164/261/44 168/229/44 163/253/44 +f 167/262/44 165/263/44 166/251/44 +f 177/264/43 173/257/43 171/265/43 +f 167/262/41 173/257/41 169/259/41 +f 170/266/42 172/267/42 168/229/42 +f 172/267/46 167/262/46 168/229/46 +f 180/268/42 178/269/42 175/270/42 +f 172/267/43 177/271/43 171/265/43 +f 174/272/43 178/269/43 172/267/43 +f 173/257/43 175/273/43 174/274/43 +f 186/275/44 181/276/44 182/277/44 +f 182/277/46 177/271/46 178/278/46 +f 177/264/41 179/279/41 176/280/41 +f 179/281/45 175/273/45 176/282/45 +f 189/283/41 183/284/41 185/285/41 +f 185/285/44 179/279/44 181/286/44 +f 183/284/44 180/287/44 179/281/44 +f 180/268/44 186/275/44 182/288/44 +f 189/283/43 188/289/43 187/290/43 +f 187/290/45 184/291/45 183/284/45 +f 184/292/42 190/293/42 186/275/42 +f 190/294/58 185/285/58 186/275/58 +f 193/295/44 192/296/44 191/297/44 +f 195/298/41 194/299/41 193/295/41 +f 192/296/42 196/300/42 191/297/42 +f 198/301/45 192/296/45 194/299/45 +f 196/302/40 193/295/40 191/297/40 +f 142/181/40 147/303/40 148/182/40 +f 112/184/41 111/192/41 113/185/41 +f 110/187/42 115/191/42 114/188/42 +f 112/190/43 116/304/43 115/191/43 +f 109/189/44 114/188/44 113/185/44 +f 119/305/45 118/306/45 117/193/45 +f 117/193/45 124/307/45 123/194/45 +f 123/194/45 122/308/45 121/195/45 +f 121/195/45 120/309/45 119/305/45 +f 119/305/45 117/193/45 121/195/45 +f 126/198/46 125/310/46 127/311/46 +f 127/311/46 128/312/46 129/196/46 +f 129/196/46 130/313/46 131/197/46 +f 131/197/46 132/314/46 126/198/46 +f 126/198/46 127/311/46 129/196/46 +f 121/199/47 122/211/47 130/200/47 +f 120/202/48 128/212/48 127/203/48 +f 118/205/49 125/213/49 126/206/49 +f 117/207/50 126/206/50 132/208/50 +f 123/210/51 131/315/51 130/200/51 +f 121/199/52 129/201/52 128/212/52 +f 119/204/53 127/203/53 125/213/53 +f 124/209/54 132/208/54 131/214/54 +f 143/216/55 146/316/55 145/217/55 +f 137/219/46 139/227/46 140/220/46 +f 134/222/43 138/221/43 140/220/43 +f 142/181/46 144/183/46 143/216/46 +f 135/224/44 139/227/44 137/219/44 +f 136/226/42 140/220/42 139/227/42 +f 168/229/44 167/262/44 166/230/44 +f 153/232/43 151/256/43 152/233/43 +f 152/235/43 149/254/43 156/236/43 +f 156/236/43 149/240/43 150/238/43 +f 163/231/46 166/230/46 150/238/46 +f 150/241/43 151/252/43 153/232/43 +f 157/242/41 159/244/41 155/239/41 +f 158/245/45 157/242/45 153/232/45 +f 160/246/42 158/247/42 154/237/42 +f 159/244/46 160/246/46 156/236/46 +f 162/249/56 161/317/56 157/242/56 +f 159/244/57 161/318/57 162/250/57 +f 166/251/41 165/263/41 151/252/41 +f 152/235/42 164/261/42 163/253/42 +f 165/255/45 164/260/45 152/233/45 +f 173/257/45 174/274/45 170/258/45 +f 169/259/44 170/258/44 164/260/44 +f 164/261/44 170/266/44 168/229/44 +f 167/262/44 169/259/44 165/263/44 +f 177/264/43 176/280/43 173/257/43 +f 167/262/41 171/265/41 173/257/41 +f 170/266/42 174/272/42 172/267/42 +f 172/267/46 171/265/46 167/262/46 +f 180/268/42 182/288/42 178/269/42 +f 172/267/43 178/278/43 177/271/43 +f 174/272/43 175/270/43 178/269/43 +f 173/257/43 176/282/43 175/273/43 +f 186/275/44 185/285/44 181/276/44 +f 182/277/46 181/276/46 177/271/46 +f 177/264/41 181/286/41 179/279/41 +f 179/281/45 180/287/45 175/273/45 +f 189/283/41 187/290/41 183/284/41 +f 185/285/44 183/284/44 179/279/44 +f 183/284/44 184/291/44 180/287/44 +f 180/268/44 184/292/44 186/275/44 +f 189/283/43 190/319/43 188/289/43 +f 187/290/45 188/320/45 184/291/45 +f 184/292/42 188/321/42 190/293/42 +f 190/294/58 189/322/58 185/285/58 +f 193/295/44 194/299/44 192/296/44 +f 195/298/41 198/323/41 194/299/41 +f 192/296/42 197/324/42 196/300/42 +f 198/301/45 197/325/45 192/296/45 +f 196/302/40 195/326/40 193/295/40 +o LeftArm +v 8.099994 3.899998 2.100000 +v 8.099994 3.899998 -2.100000 +v 3.899994 3.899998 -2.100000 +v 3.899994 3.899998 2.100000 +v 3.374994 3.899998 -2.625000 +v 3.374994 3.899998 2.625000 +v 8.624993 3.899998 -2.625000 +v 8.624993 3.899998 2.625000 +v 3.374992 -0.300001 -2.625000 +v 3.374992 -0.300001 2.625000 +v 8.624992 -0.300001 -2.625000 +v 8.624992 -0.300001 2.625000 +v 4.949991 -2.400002 -2.625000 +v 4.949991 -2.400002 2.625000 +v 8.099995 5.999998 2.100000 +v 3.899994 5.999998 2.100000 +v 3.899994 5.999998 -2.100000 +v 8.099995 5.999998 -2.100000 +v 8.624994 5.999998 -2.625000 +v 8.624994 5.999998 2.625000 +v 3.374994 5.999998 -2.625000 +v 3.374994 5.999998 2.625000 +v 8.624995 10.199997 -2.625000 +v 8.624995 10.199997 2.625000 +v 3.374995 10.199999 -2.625000 +v 3.374995 10.199999 2.625000 +v 3.899996 10.199999 2.100000 +v 3.899996 10.199999 -2.100000 +v 8.099996 10.199997 -2.100000 +v 8.099996 10.199997 2.100000 +v 3.899996 11.249999 -2.100000 +v 3.899996 11.249999 2.100000 +v 8.099997 11.249997 -2.100000 +v 8.099997 11.249997 2.100000 +v 3.374996 11.249999 -2.625000 +v 3.374996 11.249999 2.625000 +v 8.624996 11.249997 -2.625000 +v 8.624996 11.249997 2.625000 +v 3.374996 13.349998 -2.625000 +v 3.374996 13.349998 2.625000 +v 8.099997 13.349997 -2.625000 +v 8.099997 13.349997 2.625000 +v 9.149992 1.274996 1.575000 +v 9.149993 2.324997 1.575000 +v 9.149992 1.274996 -0.525000 +v 9.149993 2.324997 -0.525000 +v 8.624992 0.224998 1.575000 +v 8.624993 3.374998 1.575000 +v 8.624992 0.224998 -0.525000 +v 8.624993 3.374998 -0.525000 +v 8.756243 1.274998 3.150000 +v 8.756244 2.324999 2.100000 +v 8.756243 1.274998 -1.050000 +v 8.756244 2.324999 -1.050000 +v 9.018743 1.274996 -1.050000 +v 9.018743 1.274996 3.150000 +v 9.018744 2.324997 2.100000 +v 9.018744 2.324997 -1.050000 +v 8.624992 1.012499 -1.050000 +v 8.624993 2.587498 -1.050000 +v 9.149992 1.012497 -1.050000 +v 9.149993 2.587496 -1.050000 +v 8.624993 2.587498 -1.575000 +v 8.624992 1.012499 -1.575000 +v 9.149993 2.587496 -1.575000 +v 9.149992 1.012497 -1.575000 +v 9.149993 2.062496 -1.575000 +v 8.624993 2.062498 -1.575000 +v 9.149992 1.537497 -1.575000 +v 8.624992 1.537498 -1.575000 +v 9.149992 1.537497 -2.625000 +v 9.149993 2.062496 -2.625000 +v 8.624993 2.062498 -2.625000 +v 8.624992 1.537498 -2.625000 +v 8.624991 -2.400002 0.525000 +v 5.474991 -2.400002 0.525000 +v 8.624991 -2.400002 -0.525000 +v 5.474991 -2.400002 -0.525000 +v 7.574992 -0.300001 -0.525000 +v 7.574992 -0.300001 0.525000 +v 5.474992 -0.300001 0.525000 +v 5.474992 -0.300001 -0.525000 +vt 0.525000 0.465517 +vt 0.750000 0.448276 +vt 0.725000 0.465517 +vt 0.025000 0.534483 +vt 0.250000 0.551724 +vt -0.000000 0.551724 +vt 0.750000 0.551724 +vt 0.975000 0.534483 +vt 1.000000 0.551724 +vt 0.500000 0.551724 +vt 0.725000 0.534483 +vt 0.525000 0.534483 +vt 0.275000 0.534483 +vt 0.475000 0.534483 +vt 0.250000 0.689655 +vt 0.500000 0.689655 +vt 0.325000 0.758621 +vt -0.000000 0.689655 +vt 0.750000 0.689655 +vt 1.000000 0.689655 +vt 0.925000 0.758621 +vt -0.000000 0.758621 +vt 0.750000 0.810345 +vt 0.275000 0.465517 +vt 0.475000 0.465517 +vt 0.775000 0.534483 +vt 0.975000 0.465517 +vt 0.225000 0.465517 +vt 0.225000 0.534483 +vt 0.000000 0.448276 +vt 0.250000 0.310345 +vt 0.250000 0.448276 +vt 0.025000 0.465517 +vt 1.000000 0.448276 +vt 0.500000 0.448276 +vt 0.500000 0.310345 +vt 0.275000 0.293103 +vt 0.475000 0.293103 +vt 1.000000 0.310345 +vt 0.750000 0.310345 +vt 0.775000 0.293103 +vt 0.975000 0.258621 +vt 0.975000 0.293103 +vt 0.725000 0.293103 +vt 0.025000 0.293103 +vt -0.000000 0.310345 +vt 0.525000 0.258621 +vt 0.750000 0.241379 +vt 0.725000 0.258621 +vt 0.525000 0.293103 +vt 0.475000 0.258621 +vt 0.225000 0.258621 +vt 0.225000 0.293103 +vt 0.250000 0.241379 +vt 0.475000 0.172414 +vt 0.500000 0.241379 +vt 0.275000 0.258621 +vt 0.025000 0.258621 +vt 1.000000 0.241379 +vt 0.250000 -0.000000 +vt 0.250000 0.172414 +vt -0.000000 0.241379 +vt 0.775000 0.172414 +vt 1.000000 0.172414 +vt 0.750000 0.172414 +vt 0.250000 0.827586 +vt 0.350000 0.793103 +vt 0.350000 0.827586 +vt 0.250000 0.793103 +vt 0.350000 0.758621 +vt 0.250000 0.862069 +vt 0.500000 0.913793 +vt 0.550000 0.810345 +vt 0.550000 0.948276 +vt 0.575000 0.810345 +vt 0.625000 0.913793 +vt 0.575000 0.948276 +vt 0.650000 0.948276 +vt 0.650000 0.913793 +vt 0.625000 0.810345 +vt 0.650000 0.810345 +vt 0.375000 0.862069 +vt 0.450000 0.844828 +vt 0.450000 0.862069 +vt 0.375000 0.810345 +vt 0.450000 0.827586 +vt 0.375000 0.827586 +vt 0.350000 0.844828 +vt 0.375000 0.844828 +vt 0.475000 0.827586 +vt 0.475000 0.844828 +vt 0.400000 0.775862 +vt 0.375000 0.758621 +vt 0.400000 0.758621 +vt 0.375000 0.810345 +vt 0.400000 0.810345 +vt 0.350000 0.810345 +vt 0.375000 0.775862 +vt 0.425000 0.775862 +vt 0.425000 0.810345 +vt 0.100000 0.827586 +vt 0.150000 0.931035 +vt 0.100000 0.931035 +vt 0.150000 0.827586 +vt 0.250000 0.896552 +vt 0.000000 0.896552 +vt 0.000000 0.827586 +vt 0.150000 0.758621 +vt 0.100000 1.000000 +vt 0.250000 0.758621 +vt 0.500000 0.810345 +vt 0.775000 0.465517 +vt 0.775000 0.258621 +vt 0.475000 0.000000 +vt -0.000000 0.172414 +vt 0.500000 0.172414 +vt 0.250000 0.758621 +vt 0.350000 0.862069 +vt 0.500000 0.810345 +vt 0.625000 0.948276 +vt 0.450000 0.810345 +vt 0.350000 0.827586 +vt 0.350000 0.775862 +vt 0.250000 0.827586 +vt 0.100000 0.758621 +vt 0.150000 1.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.8000 -0.6000 0.0000 +vn 0.4961 -0.8682 0.0000 +vn 0.9701 0.2425 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.8944 -0.4472 0.0000 +vn 0.0000 0.7071 0.7071 +s off +f 216/327/59 218/328/59 213/329/59 +f 202/330/60 203/331/60 204/332/60 +f 206/333/60 202/334/60 204/335/60 +f 205/336/60 199/337/60 206/333/60 +f 200/338/61 213/329/61 199/337/61 +f 205/336/60 201/339/60 200/340/60 +f 207/341/62 209/342/62 211/343/62 +f 203/331/62 209/342/62 207/341/62 +f 203/331/63 208/344/63 204/332/63 +f 204/335/64 210/345/64 206/333/64 +f 206/333/61 209/342/61 205/336/61 +f 208/346/64 212/347/64 210/345/64 +f 207/341/65 212/348/65 208/344/65 +f 212/349/66 209/342/66 210/345/66 +f 200/340/62 215/350/62 216/351/62 +f 199/352/64 214/353/64 202/334/64 +f 202/330/63 215/354/63 201/355/63 +f 220/356/63 223/357/63 219/358/63 +f 214/359/59 219/358/59 215/354/59 +f 214/353/59 218/328/59 220/360/59 +f 215/350/59 217/361/59 216/351/59 +f 221/362/60 226/363/60 227/364/60 +f 219/358/62 221/362/62 217/361/62 +f 218/328/64 224/365/64 220/360/64 +f 217/361/61 222/366/61 218/328/61 +f 228/367/64 230/368/64 225/369/64 +f 221/362/60 228/370/60 222/366/60 +f 222/366/60 225/369/60 224/365/60 +f 225/371/60 223/357/60 224/372/60 +f 231/373/59 236/374/59 232/375/59 +f 227/376/61 232/375/61 228/370/61 +f 226/363/62 231/377/62 227/364/62 +f 225/371/63 229/378/63 226/379/63 +f 233/380/62 239/381/62 235/382/62 +f 229/383/59 235/382/59 231/377/59 +f 230/384/59 233/380/59 229/378/59 +f 230/368/59 236/374/59 234/385/59 +f 238/386/60 239/381/60 237/387/60 +f 234/388/63 237/387/63 233/380/63 +f 234/385/64 240/389/64 238/390/64 +f 235/382/67 240/391/67 236/374/67 +f 243/392/61 242/393/61 241/394/61 +f 244/395/68 246/396/68 242/393/68 +f 241/394/69 247/397/69 243/392/69 +f 250/398/63 251/399/63 249/400/63 +f 253/401/61 255/402/61 254/403/61 +f 249/404/70 255/402/70 250/405/70 +f 250/405/60 256/406/60 252/407/60 +f 251/399/59 254/403/59 249/400/59 +f 257/408/64 260/409/64 258/410/64 +f 262/411/62 263/412/62 264/413/62 +f 257/414/59 264/413/59 259/415/59 +f 259/415/61 263/412/61 260/409/61 +f 260/409/60 261/416/60 258/417/60 +f 270/418/62 272/419/62 271/420/62 +f 267/421/61 270/418/61 265/422/61 +f 268/423/59 269/424/59 267/421/59 +f 265/422/60 271/425/60 266/426/60 +f 274/427/59 275/428/59 273/429/59 +f 276/430/62 277/431/62 275/428/62 +f 274/427/64 278/432/64 279/433/64 +f 274/427/63 280/434/63 276/430/63 +f 275/428/68 278/435/68 273/429/68 +f 216/327/59 217/361/59 218/328/59 +f 202/330/60 201/355/60 203/331/60 +f 206/333/60 199/352/60 202/334/60 +f 205/336/60 200/338/60 199/337/60 +f 200/338/61 216/327/61 213/329/61 +f 205/336/60 203/331/60 201/339/60 +f 203/331/62 205/336/62 209/342/62 +f 203/331/63 207/341/63 208/344/63 +f 204/335/64 208/346/64 210/345/64 +f 206/333/61 210/345/61 209/342/61 +f 207/341/65 211/436/65 212/348/65 +f 212/349/66 211/437/66 209/342/66 +f 200/340/62 201/339/62 215/350/62 +f 199/352/64 213/438/64 214/353/64 +f 202/330/63 214/359/63 215/354/63 +f 220/356/63 224/372/63 223/357/63 +f 214/359/59 220/356/59 219/358/59 +f 214/353/59 213/438/59 218/328/59 +f 215/350/59 219/358/59 217/361/59 +f 221/362/60 223/357/60 226/363/60 +f 219/358/62 223/357/62 221/362/62 +f 218/328/64 222/366/64 224/365/64 +f 217/361/61 221/362/61 222/366/61 +f 228/367/64 232/439/64 230/368/64 +f 221/362/60 227/376/60 228/370/60 +f 222/366/60 228/367/60 225/369/60 +f 225/371/60 226/379/60 223/357/60 +f 231/373/59 235/382/59 236/374/59 +f 227/376/61 231/373/61 232/375/61 +f 226/363/62 229/383/62 231/377/62 +f 225/371/63 230/384/63 229/378/63 +f 233/380/62 237/387/62 239/381/62 +f 229/383/59 233/380/59 235/382/59 +f 230/384/59 234/388/59 233/380/59 +f 230/368/59 232/439/59 236/374/59 +f 238/386/60 240/440/60 239/381/60 +f 234/388/63 238/441/63 237/387/63 +f 234/385/64 236/374/64 240/389/64 +f 235/382/67 239/442/67 240/391/67 +f 243/392/61 244/395/61 242/393/61 +f 244/395/68 248/443/68 246/396/68 +f 241/394/69 245/444/69 247/397/69 +f 250/398/63 252/445/63 251/399/63 +f 253/401/61 256/406/61 255/402/61 +f 249/404/70 254/446/70 255/402/70 +f 250/405/60 255/402/60 256/406/60 +f 251/399/59 253/401/59 254/403/59 +f 257/408/64 259/415/64 260/409/64 +f 262/411/62 261/447/62 263/412/62 +f 257/414/59 262/448/59 264/413/59 +f 259/415/61 264/413/61 263/412/61 +f 260/409/60 263/412/60 261/416/60 +f 270/418/62 269/424/62 272/419/62 +f 267/421/61 269/424/61 270/418/61 +f 268/423/59 272/449/59 269/424/59 +f 265/422/60 270/418/60 271/425/60 +f 274/427/59 276/430/59 275/428/59 +f 276/430/62 280/450/62 277/431/62 +f 274/427/64 273/429/64 278/432/64 +f 274/427/63 279/451/63 280/434/63 +f 275/428/68 277/452/68 278/435/68 +o Helmet +v 5.249990 -8.200001 -4.200000 +v 5.249990 -8.200001 4.200000 +v -4.200010 -8.200001 5.250000 +v 4.199989 -8.200001 5.250000 +v -4.200010 -8.200001 -5.250000 +v 4.199989 -8.200001 -5.250000 +v -5.250010 -8.200001 4.200000 +v -5.250010 -8.200001 -4.200000 +v 5.249990 -6.100002 -4.200000 +v 5.249990 -6.100002 4.200000 +v -4.200010 -6.099998 5.250000 +v 4.199990 -6.100002 5.250000 +v -4.200010 -6.099998 -5.250000 +v 4.199990 -6.100002 -5.250000 +v -5.250010 -6.099998 4.200000 +v -5.250010 -6.099998 -4.200000 +v 7.349990 -5.050001 -4.200000 +v 7.349990 -5.050001 4.200000 +v -4.200009 -5.049997 7.349999 +v 4.199990 -5.050001 7.349999 +v -4.200009 -5.049997 -7.349999 +v 4.199990 -5.050001 -7.349999 +v -7.350009 -5.049997 4.200000 +v -7.350009 -5.049997 -4.200000 +v -3.150011 -10.299999 3.150000 +v -3.150011 -10.299999 -3.150000 +v 3.149989 -10.299999 -3.150000 +v 3.149989 -10.299999 3.150000 +v 4.724989 -8.200001 -3.675000 +v 4.724989 -8.200001 3.675000 +v -3.675010 -8.200001 4.725000 +v 3.674989 -8.200001 4.725000 +v -3.675010 -8.200001 -4.725000 +v 3.674989 -8.200001 -4.725000 +v -4.725010 -8.200001 3.675000 +v -4.725010 -8.200001 -3.675000 +v 4.724992 0.199999 -3.675000 +v 4.724992 0.199999 3.675000 +v -3.675008 0.200003 4.725000 +v 3.674992 0.199999 4.725000 +v -3.675008 0.200003 -4.725000 +v 3.674992 0.199999 -4.725000 +v -4.725008 0.200003 3.675000 +v -4.725008 0.200003 -3.675000 +v -3.675007 1.250002 3.675000 +v -3.675007 1.250002 -3.675000 +v 3.674992 1.249998 -3.675000 +v 3.674992 1.249998 3.675000 +v 1.574991 -2.950001 -4.725000 +v -1.575009 -2.950001 -4.725000 +v 1.574992 0.200001 -4.725000 +v -1.575008 0.200001 -4.725000 +v 1.574992 0.200001 -5.775000 +v 1.574991 -1.900000 -5.775000 +v -1.575008 -1.900000 -5.775000 +v -1.575008 0.200001 -5.775000 +v -2.100009 -5.575001 -4.725000 +v -0.736019 -4.787500 -4.725000 +v -0.736019 -3.212500 -4.725000 +v -2.100008 -2.424999 -4.725000 +v -3.463999 -3.212498 -4.725000 +v -3.463999 -4.787498 -4.725000 +v 2.099990 -5.575001 -4.725000 +v 3.463980 -4.787502 -4.725000 +v 3.463981 -3.212502 -4.725000 +v 2.099991 -2.424999 -4.725000 +v 0.736001 -3.212500 -4.725000 +v 0.736001 -4.787500 -4.725000 +v 2.099990 -5.575001 -5.250000 +v 3.463980 -4.787502 -5.250000 +v 3.463981 -3.212502 -5.250000 +v 2.099991 -2.424999 -5.250000 +v 0.736001 -3.212500 -5.250000 +v 0.736001 -4.787500 -5.250000 +v -2.100009 -5.575001 -5.250000 +v -0.736019 -4.787500 -5.250000 +v -0.736019 -3.212500 -5.250000 +v -2.100008 -2.424999 -5.250000 +v -3.463999 -3.212498 -5.250000 +v -3.463999 -4.787498 -5.250000 +v 0.524990 -6.100000 -4.200000 +v 1.049990 -6.100000 -4.725000 +v 1.049989 -10.299999 -4.725000 +v 0.524989 -10.299999 -4.200000 +v 1.049990 -6.100000 -5.775000 +v 0.524990 -6.100000 -6.300000 +v 0.524989 -10.299999 -6.300000 +v 1.049989 -10.299999 -5.775000 +v -1.050010 -6.100000 -4.725000 +v -0.525010 -6.100000 -4.200000 +v -0.525011 -10.299999 -4.200000 +v -1.050011 -10.299999 -4.725000 +v -0.525010 -6.100000 -6.300000 +v -1.050010 -6.100000 -5.775000 +v -1.050011 -10.299999 -5.775000 +v -0.525011 -10.299999 -6.300000 +v 1.049989 -8.200001 -6.300000 +v -1.050010 -8.200001 -6.300000 +v 1.049989 -10.299999 -6.300000 +v -1.050011 -10.299999 -6.300000 +v 2.099988 -11.349998 -7.349999 +v 2.099990 -7.150000 -7.349999 +v -2.100010 -7.150000 -7.349999 +v -2.100011 -11.349998 -7.349999 +v -4.725009 -4.524998 2.100000 +v -4.725008 -1.374998 2.100000 +v -4.725009 -4.524998 -2.100000 +v -4.725008 -1.374998 -2.100000 +v -5.775009 -4.524998 -2.100000 +v -5.775009 -4.524998 2.100000 +v -5.775008 -1.374998 2.100000 +v -5.775008 -1.374998 -2.100000 +v -5.775009 -3.999998 1.575000 +v -5.775008 -1.899998 1.575000 +v -5.775009 -3.999998 -1.575000 +v -5.775008 -1.899998 -1.575000 +v -6.300009 -3.999998 -1.575000 +v -6.300009 -3.999998 1.575000 +v -6.300008 -1.899998 1.575000 +v -6.300008 -1.899998 -1.575000 +v -7.087509 -5.049997 0.262500 +v -7.612509 -5.049997 0.262500 +v -7.087509 -5.049997 -0.262500 +v -7.612509 -5.049997 -0.262500 +v -7.087511 -11.349995 -0.262500 +v -7.087511 -11.349995 0.262500 +v -7.612511 -11.349995 0.262500 +v -7.612511 -11.349995 -0.262500 +v -5.512508 -2.949999 -0.262500 +v -5.512508 -2.949999 0.262500 +v -6.037508 -2.949999 0.262500 +v -6.037508 -2.949999 -0.262500 +v 1.574993 1.377384 -5.467462 +v 1.049993 1.748615 -5.096232 +v -1.050007 1.748615 -5.096232 +v -1.575007 1.377384 -5.467462 +v 1.049992 -0.478769 -7.323617 +v 1.574992 -0.107536 -6.952385 +v -1.575008 -0.107536 -6.952385 +v -1.050008 -0.478769 -7.323617 +v 1.574993 1.377388 -8.437310 +v 1.049992 1.006157 -8.808541 +v 1.049993 3.233541 -6.581155 +v 1.574993 2.862312 -6.952386 +v -1.575007 2.862312 -6.952386 +v -1.050007 3.233541 -6.581155 +v -1.050007 1.006157 -8.808541 +v -1.575007 1.377388 -8.437310 +v 1.049992 -0.478769 -4.353768 +v 0.524992 -0.107536 -3.982538 +v -0.525008 -0.107536 -3.982538 +v -1.050008 -0.478769 -4.353768 +v 0.524992 -1.592463 -5.467462 +v 1.049992 -1.221231 -5.096231 +v -1.050008 -1.221231 -5.096231 +v -0.525008 -1.592463 -5.467462 +v 1.049992 0.263695 -6.581154 +v 0.524992 -0.107536 -6.952386 +v 0.524993 1.377384 -5.467462 +v 1.049992 1.006153 -5.838693 +v -1.050007 1.006153 -5.838693 +v -0.525007 1.377384 -5.467462 +v -0.525008 -0.107536 -6.952386 +v -1.050008 0.263695 -6.581154 +v 5.774991 -4.525002 -2.100000 +v 5.774991 -4.525002 2.100000 +v 5.774992 -1.375002 2.100000 +v 5.774992 -1.375002 -2.100000 +v 4.724991 -4.525002 -2.100000 +v 4.724991 -4.525002 2.100000 +v 4.724992 -1.375002 2.100000 +v 4.724992 -1.375002 -2.100000 +v 6.824991 -1.900002 3.150000 +v 6.824991 -4.000002 5.250000 +v 6.824991 -1.900002 1.050000 +v 6.824991 -4.000002 1.050000 +v 5.774991 -1.900002 0.000000 +v 5.774991 -4.000002 0.000000 +v 5.354990 -6.100002 -1.443750 +v 5.354990 -8.200001 -1.443750 +v 5.354990 -6.100002 -2.756250 +v 5.354990 -8.200001 -2.756250 +v 5.459991 -6.100002 -0.393750 +v 5.459990 -8.200001 -0.393750 +v 5.459991 -6.100002 -1.706250 +v 5.459990 -8.200001 -1.706250 +v 5.564991 -6.625002 0.000000 +v 5.564991 -6.100002 0.000000 +v 5.564991 -6.100002 -3.150000 +v 5.564991 -6.625002 -3.150000 +v 5.249990 -6.100002 -4.200000 +v 5.249990 -6.625002 -4.200000 +v 5.249990 -6.625002 1.050000 +v 5.249990 -6.100002 1.050000 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.720000 0.046512 +vt 0.640000 0.093023 +vt 0.640000 0.046512 +vt 0.640000 0.093023 +vt 0.720000 0.046512 +vt 0.720000 0.093023 +vt 0.720000 0.046512 +vt 0.640000 0.093023 +vt 0.640000 0.046512 +vt 0.640000 0.093023 +vt 0.720000 0.046512 +vt 0.720000 0.093023 +vt 0.600000 0.000000 +vt 0.760000 0.000000 +vt 0.760000 0.000000 +vt 0.280000 0.000000 +vt 0.600000 0.000000 +vt 0.280000 0.046512 +vt 0.600000 -0.000000 +vt 0.640000 0.046512 +vt 0.760000 0.000000 +vt 0.280000 0.046512 +vt 0.760000 0.000000 +vt 0.280000 -0.000000 +vt 0.280000 0.046512 +vt 0.560000 0.162791 +vt 0.320000 0.302326 +vt 0.320000 0.162791 +vt 0.560000 0.162791 +vt 0.320000 0.162791 +vt 0.560000 0.162791 +vt 0.720000 0.093023 +vt 0.680000 0.162791 +vt 0.680000 0.162791 +vt 0.720000 0.093023 +vt 0.680000 0.162791 +vt 0.680000 0.162791 +vt 0.280000 0.372093 +vt 0.320000 0.186047 +vt 0.320000 0.372093 +vt -0.000000 0.372093 +vt 0.280000 0.186047 +vt 0.000000 0.372093 +vt 0.280000 0.186047 +vt 0.280000 0.372093 +vt 0.280000 0.186047 +vt 0.320000 0.372093 +vt 0.280000 0.372093 +vt 0.320000 0.372093 +vt 0.000000 0.372093 +vt 0.000000 0.186047 +vt 0.280000 0.372093 +vt 0.000000 0.372093 +vt 0.320000 0.186047 +vt 0.320000 0.372093 +vt -0.000000 -0.000000 +vt 0.280000 0.162791 +vt -0.000000 0.162791 +vt -0.000000 0.186047 +vt 0.000000 0.186047 +vt 0.280000 0.162791 +vt 0.300000 0.162791 +vt 0.320000 0.186047 +vt 0.000000 0.186047 +vt 0.280000 0.162791 +vt 0.300000 0.162791 +vt 0.000000 0.162791 +vt 0.280000 0.186047 +vt 0.300000 0.162791 +vt 0.320000 0.186047 +vt 0.300000 0.162791 +vt 0.160000 0.441860 +vt 0.040000 0.395349 +vt 0.160000 0.395349 +vt 0.160000 0.372093 +vt 0.040000 0.372093 +vt 0.160000 0.465116 +vt 0.040000 0.441860 +vt -0.000000 0.395349 +vt -0.000000 0.465116 +vt 0.200000 0.395349 +vt 0.280000 0.372093 +vt 0.320000 0.418605 +vt 0.280000 0.418605 +vt 0.400000 0.418605 +vt 0.440000 0.372093 +vt 0.440000 0.418605 +vt 0.220000 0.372093 +vt 0.260000 0.418605 +vt 0.220000 0.418605 +vt 0.660000 0.465116 +vt 0.740000 0.418605 +vt 0.740000 0.465116 +vt 0.440000 0.360465 +vt 0.460000 0.348837 +vt 0.540000 0.418605 +vt 0.360000 0.465116 +vt 0.440000 0.418605 +vt 0.440000 0.465116 +vt 0.540000 0.465116 +vt 0.460000 0.418605 +vt 0.460000 0.465116 +vt 0.560000 0.476744 +vt 0.800000 0.406977 +vt 0.740000 0.395349 +vt 0.800000 0.395349 +vt 0.920000 0.406977 +vt 0.860000 0.395349 +vt 0.920000 0.395349 +vt 0.680000 0.406977 +vt 0.620000 0.395349 +vt 0.680000 0.395349 +vt 0.860000 0.406977 +vt 0.620000 0.406977 +vt 0.560000 0.395349 +vt 0.740000 0.406977 +vt 0.620000 0.406977 +vt 0.560000 0.395349 +vt 0.620000 0.395349 +vt 0.740000 0.406977 +vt 0.680000 0.395349 +vt 0.740000 0.395349 +vt 0.800000 0.406977 +vt 0.800000 0.395349 +vt 0.920000 0.406977 +vt 0.860000 0.395349 +vt 0.920000 0.395349 +vt 0.680000 0.406977 +vt 0.860000 0.406977 +vt 1.000000 0.046512 +vt 0.960000 0.139535 +vt 0.960000 0.046512 +vt 0.820000 0.139535 +vt 0.780000 0.046512 +vt 0.820000 0.046512 +vt 0.880000 0.186047 +vt 0.840000 0.186047 +vt 0.820000 0.174419 +vt 0.940000 0.139535 +vt 0.900000 0.046512 +vt 0.940000 0.046512 +vt 0.880000 0.139535 +vt 0.840000 0.046512 +vt 0.880000 0.046512 +vt 0.900000 0.139535 +vt 0.840000 0.139535 +vt 0.760000 0.139535 +vt 0.780000 0.139535 +vt 0.840000 0.000000 +vt 0.880000 0.000000 +vt 0.900000 0.011628 +vt 0.800000 0.279070 +vt 0.880000 0.232558 +vt 0.880000 0.279070 +vt 0.920000 0.395349 +vt 0.760000 0.302326 +vt 0.920000 0.302326 +vt 0.880000 0.279070 +vt 0.760000 0.302326 +vt 0.800000 0.279070 +vt 0.800000 0.279070 +vt 0.920000 0.302326 +vt 0.760000 0.302326 +vt 0.880000 0.279070 +vt 0.760000 0.302326 +vt 0.800000 0.279070 +vt 0.600000 0.186047 +vt 0.760000 0.255814 +vt 0.600000 0.255814 +vt 0.760000 0.162791 +vt 0.600000 0.162791 +vt 0.600000 0.279070 +vt 0.760000 0.279070 +vt 0.800000 0.255814 +vt 0.760000 0.186047 +vt 0.800000 0.186047 +vt 0.560000 0.255814 +vt 0.580000 0.290698 +vt 0.700000 0.337209 +vt 0.580000 0.337209 +vt 0.720000 0.337209 +vt 0.700000 0.290698 +vt 0.720000 0.290698 +vt 0.560000 0.337209 +vt 0.700000 0.279070 +vt 0.580000 0.279070 +vt 0.580000 0.348837 +vt 0.700000 0.348837 +vt 0.940000 0.290698 +vt 0.960000 0.232558 +vt 0.960000 0.290698 +vt 0.940000 0.430233 +vt 0.960000 0.441860 +vt 0.940000 0.441860 +vt 1.000000 0.290698 +vt 0.980000 0.430233 +vt 0.980000 0.290698 +vt 0.960000 0.430233 +vt 0.920000 0.430233 +vt 0.920000 0.290698 +vt 1.000000 0.232558 +vt 0.980000 0.232558 +vt 0.940000 0.232558 +vt 0.560000 0.418605 +vt 0.640000 0.418605 +vt 0.640000 0.465116 +vt 0.340000 0.418605 +vt 0.360000 0.418605 +vt 0.260000 0.372093 +vt 0.200000 0.418605 +vt 0.200000 0.372093 +vt 0.380000 0.418605 +vt 0.400000 0.372093 +vt 0.340000 0.418605 +vt 0.320000 0.372093 +vt 0.340000 0.372093 +vt 0.380000 0.372093 +vt 0.600000 0.255814 +vt 0.760000 0.186047 +vt 0.760000 0.255814 +vt 0.560000 0.186047 +vt 0.600000 0.186047 +vt 0.800000 0.186047 +vt 0.800000 0.255814 +vt 0.760000 0.162791 +vt 0.600000 0.279070 +vt 0.920000 0.186047 +vt 0.840000 0.232558 +vt 0.840000 0.186047 +vt 0.800000 0.186047 +vt 0.500000 1.000000 +vt 0.000000 0.534884 +vt 0.500000 0.534884 +vt 1.000000 1.000000 +vt 0.500000 0.534884 +vt 1.000000 0.534884 +vt 0.160000 0.476744 +vt 0.040000 0.465116 +vt 0.160000 0.465116 +vt 0.040000 0.476744 +vt -0.000000 0.465116 +vt 0.200000 0.476744 +vt 0.280000 0.046512 +vt 0.640000 0.046512 +vt 0.600000 0.000000 +vt 0.280000 -0.000000 +vt 0.280000 -0.000000 +vt 0.560000 0.302326 +vt 0.320000 0.162791 +vt 0.560000 0.162791 +vt 0.320000 0.162791 +vt 0.280000 -0.000000 +vt 0.000000 0.162791 +vt 0.000000 0.162791 +vt 0.280000 0.162791 +vt 0.040000 0.465116 +vt 0.200000 0.465116 +vt 0.660000 0.418605 +vt 0.540000 0.348837 +vt 0.560000 0.360465 +vt 0.560000 0.406977 +vt 0.440000 0.406977 +vt 0.560000 0.523256 +vt 0.540000 0.534884 +vt 0.460000 0.534884 +vt 0.440000 0.523256 +vt 0.440000 0.476744 +vt 0.560000 0.406977 +vt 0.560000 0.406977 +vt 1.000000 0.139535 +vt 0.820000 0.151163 +vt 0.900000 0.151163 +vt 0.900000 0.174419 +vt 0.760000 0.046512 +vt 0.900000 0.034884 +vt 0.820000 0.034884 +vt 0.820000 0.011628 +vt 0.800000 0.232558 +vt 0.760000 0.395349 +vt 0.920000 0.302326 +vt 0.880000 0.279070 +vt 0.920000 0.302326 +vt 0.560000 0.186047 +vt 0.560000 0.290698 +vt 1.000000 0.430233 +vt 0.920000 0.232558 +vt 0.560000 0.465116 +vt 0.340000 0.465116 +vt 0.560000 0.255814 +vt 0.600000 0.162791 +vt 0.760000 0.279070 +vt 1.000000 0.232558 +vt 0.800000 0.232558 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt -0.000000 0.476744 +vt 0.200000 0.465116 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.4082 -0.8165 -0.4082 +vn -0.4082 -0.8165 0.4082 +vn -0.0000 -0.8944 -0.4472 +vn 0.4472 -0.8944 0.0000 +vn 0.4082 -0.8165 0.4082 +vn -0.4472 -0.8944 0.0000 +vn 0.4082 -0.8165 -0.4082 +vn -0.0000 -0.8944 0.4472 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.4851 -0.7276 0.4851 +vn -0.4851 -0.7276 -0.4851 +vn 0.4851 -0.7276 -0.4851 +vn 0.4851 -0.7276 0.4851 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.5774 0.5774 -0.5774 +vn 0.7071 0.7071 0.0000 +vn 0.5773 0.5774 -0.5774 +vn 0.0000 0.7071 0.7071 +vn 0.5773 0.5774 0.5774 +vn -0.5774 0.5774 0.5774 +vn -0.5000 -0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8000 0.6000 0.0000 +vn 0.8000 -0.6000 0.0000 +vn -0.7071 -0.5000 -0.5000 +vn 0.7071 -0.5000 -0.5000 +vn 0.7071 0.5000 0.5000 +vn -0.7071 0.5000 0.5000 +vn 0.9578 0.0000 -0.2873 +vn 0.9578 0.0000 0.2873 +s off +f 284/453/71 291/454/71 283/455/71 +f 285/456/72 294/457/72 286/458/72 +f 281/459/73 290/460/73 282/461/73 +f 287/462/74 296/463/74 288/464/74 +f 289/465/75 286/466/75 294/467/75 +f 282/468/76 292/469/76 284/470/76 +f 295/471/77 283/472/77 291/473/77 +f 288/474/78 293/475/78 285/476/78 +f 293/475/79 304/477/79 301/478/79 +f 291/473/80 303/479/80 295/471/80 +f 294/457/81 301/480/81 302/481/81 +f 289/482/82 298/483/82 290/460/82 +f 290/484/83 300/485/83 292/469/83 +f 295/486/84 304/477/84 296/463/84 +f 294/467/85 297/487/85 289/465/85 +f 300/488/86 291/454/86 292/489/86 +f 307/490/87 305/491/87 306/492/87 +f 307/490/88 285/456/88 286/458/88 +f 308/493/89 281/459/89 282/461/89 +f 283/455/90 308/494/90 284/453/90 +f 306/495/91 287/462/91 288/464/91 +f 287/496/92 305/497/92 283/472/92 +f 288/474/93 285/476/93 306/498/93 +f 281/499/94 307/500/94 286/466/94 +f 282/468/95 284/470/95 308/501/95 +f 314/502/75 317/503/75 309/504/75 +f 313/505/72 322/506/72 314/502/72 +f 309/507/73 318/508/73 310/509/73 +f 324/510/78 313/511/78 316/512/78 +f 318/508/76 312/513/76 310/509/76 +f 315/514/74 324/510/74 316/512/74 +f 320/515/71 311/516/71 312/517/71 +f 311/516/77 323/518/77 315/519/77 +f 325/520/96 327/521/96 326/522/96 +f 321/523/97 327/521/97 322/506/97 +f 323/524/98 326/525/98 324/510/98 +f 324/510/99 326/526/99 321/527/99 +f 317/528/100 328/529/100 318/508/100 +f 317/503/101 322/506/101 327/530/101 +f 328/531/102 319/532/102 320/515/102 +f 318/508/103 328/533/103 320/534/103 +f 323/518/104 319/532/104 325/535/104 +f 334/536/72 336/537/72 333/538/72 +f 331/539/96 336/537/96 332/540/96 +f 329/541/88 335/542/88 334/536/88 +f 332/543/74 335/542/74 330/544/74 +f 331/545/73 334/536/73 333/538/73 +f 443/546/88 433/547/88 436/548/88 +f 430/549/102 442/550/102 431/551/102 +f 441/552/74 435/553/74 432/554/74 +f 414/555/102 426/556/102 415/557/102 +f 425/558/97 426/559/97 422/560/97 +f 416/561/74 428/562/74 419/563/74 +f 417/564/88 427/565/88 422/560/88 +f 420/566/90 417/564/90 418/567/90 +f 354/568/105 343/569/105 348/570/105 +f 352/571/106 347/572/106 346/573/106 +f 350/574/73 345/575/73 344/576/73 +f 353/577/74 348/570/74 347/572/74 +f 351/578/107 346/579/107 345/575/107 +f 349/580/108 344/576/108 343/569/108 +f 357/581/107 340/582/107 339/583/107 +f 355/584/108 338/585/108 337/586/108 +f 360/587/105 337/586/105 342/588/105 +f 358/589/106 341/590/106 340/591/106 +f 356/592/73 339/583/73 338/585/73 +f 359/593/74 342/588/74 341/590/74 +f 370/594/71 364/595/71 361/596/71 +f 375/597/74 369/598/74 374/599/74 +f 364/600/87 371/601/87 372/602/87 +f 363/603/73 365/604/73 362/605/73 +f 367/606/72 373/607/72 366/608/72 +f 364/595/76 362/605/76 361/596/76 +f 366/608/75 368/609/75 367/606/75 +f 374/599/78 376/610/78 375/597/78 +f 371/611/77 369/598/77 372/612/77 +f 370/613/96 361/614/96 362/615/96 +f 378/616/71 379/617/71 377/618/71 +f 381/619/72 383/620/72 382/621/72 +f 378/622/77 384/623/77 380/624/77 +f 377/625/76 381/626/76 382/627/76 +f 380/628/90 381/629/90 379/630/90 +f 377/618/102 383/620/102 378/616/102 +f 391/631/74 389/632/74 390/633/74 +f 388/634/96 391/631/96 386/635/96 +f 385/636/87 389/632/87 387/637/87 +f 387/638/72 392/639/72 388/640/72 +f 385/641/71 391/631/71 390/633/71 +f 399/642/74 397/643/74 398/644/74 +f 395/645/72 400/646/72 396/647/72 +f 393/648/71 399/642/71 398/644/71 +f 396/649/96 399/642/96 394/650/96 +f 393/651/87 397/643/87 395/652/87 +f 402/653/109 412/654/109 404/655/109 +f 407/656/87 405/657/87 406/658/87 +f 404/655/74 407/656/74 402/653/74 +f 401/659/73 405/660/73 403/661/73 +f 403/661/72 408/662/72 404/655/72 +f 402/653/71 406/663/71 401/664/71 +f 403/661/110 410/665/110 401/659/110 +f 403/661/72 412/654/72 409/666/72 +f 401/664/71 411/667/71 402/653/71 +f 428/562/111 420/566/111 419/563/111 +f 421/668/112 417/564/112 422/560/112 +f 424/669/113 414/555/113 413/670/113 +f 416/561/114 426/671/114 425/672/114 +f 413/670/73 421/668/73 424/669/73 +f 444/673/111 436/548/111 435/553/111 +f 441/552/114 431/674/114 442/675/114 +f 429/676/113 439/677/113 430/549/113 +f 434/678/112 438/679/112 437/680/112 +f 434/678/73 440/681/73 429/676/73 +f 445/682/73 447/683/73 446/684/73 +f 445/682/72 452/685/72 448/686/72 +f 446/684/71 451/687/71 450/688/71 +f 448/686/96 451/689/96 447/683/96 +f 446/684/87 449/690/87 445/682/87 +f 453/691/73 456/692/73 455/693/73 +f 456/692/75 457/694/75 455/693/75 +f 460/695/73 461/696/73 459/697/73 +f 464/698/73 465/699/73 463/700/73 +f 467/701/73 469/702/73 468/703/73 +f 470/704/115 471/705/115 469/702/115 +f 468/703/116 473/706/116 467/701/116 +f 284/453/71 292/489/71 291/454/71 +f 285/456/72 293/707/72 294/457/72 +f 281/459/73 289/482/73 290/460/73 +f 287/462/74 295/486/74 296/463/74 +f 289/465/75 281/499/75 286/466/75 +f 282/468/76 290/484/76 292/469/76 +f 295/471/77 287/496/77 283/472/77 +f 288/474/78 296/708/78 293/475/78 +f 293/475/79 296/708/79 304/477/79 +f 291/473/80 299/709/80 303/479/80 +f 294/457/81 293/707/81 301/480/81 +f 289/482/82 297/710/82 298/483/82 +f 290/484/83 298/483/83 300/485/83 +f 295/486/84 303/711/84 304/477/84 +f 294/467/85 302/481/85 297/487/85 +f 300/488/86 299/709/86 291/454/86 +f 307/490/87 308/712/87 305/491/87 +f 307/490/88 306/492/88 285/456/88 +f 308/493/89 307/713/89 281/459/89 +f 283/455/90 305/714/90 308/494/90 +f 306/495/91 305/715/91 287/462/91 +f 314/502/75 322/506/75 317/503/75 +f 313/505/72 321/523/72 322/506/72 +f 309/507/73 317/528/73 318/508/73 +f 324/510/78 321/527/78 313/511/78 +f 318/508/76 320/534/76 312/513/76 +f 315/514/74 323/524/74 324/510/74 +f 320/515/71 319/532/71 311/516/71 +f 311/516/77 319/532/77 323/518/77 +f 325/520/96 328/716/96 327/521/96 +f 321/523/97 326/522/97 327/521/97 +f 323/524/98 325/717/98 326/525/98 +f 317/528/100 327/718/100 328/529/100 +f 328/531/102 325/719/102 319/532/102 +f 334/536/72 335/542/72 336/537/72 +f 331/539/96 333/538/96 336/537/96 +f 329/541/88 330/720/88 335/542/88 +f 332/543/74 336/537/74 335/542/74 +f 331/545/73 329/721/73 334/536/73 +f 443/546/88 438/679/88 433/547/88 +f 430/549/102 439/677/102 442/550/102 +f 441/552/74 444/673/74 435/553/74 +f 414/555/102 423/722/102 426/556/102 +f 426/559/97 423/723/97 424/724/97 +f 424/724/97 421/725/97 426/559/97 +f 421/725/97 422/560/97 426/559/97 +f 422/560/97 427/565/97 428/726/97 +f 428/726/97 425/558/97 422/560/97 +f 416/561/74 425/672/74 428/562/74 +f 417/564/88 420/566/88 427/565/88 +f 418/567/90 413/727/90 414/728/90 +f 414/728/90 415/729/90 418/567/90 +f 415/729/90 416/730/90 418/567/90 +f 416/730/90 419/731/90 418/567/90 +f 419/731/90 420/566/90 418/567/90 +f 354/568/105 349/580/105 343/569/105 +f 352/571/106 353/577/106 347/572/106 +f 350/574/73 351/578/73 345/575/73 +f 353/577/74 354/568/74 348/570/74 +f 351/578/107 352/732/107 346/579/107 +f 349/580/108 350/574/108 344/576/108 +f 357/581/107 358/733/107 340/582/107 +f 355/584/108 356/592/108 338/585/108 +f 360/587/105 355/584/105 337/586/105 +f 358/589/106 359/593/106 341/590/106 +f 356/592/73 357/581/73 339/583/73 +f 359/593/74 360/587/74 342/588/74 +f 370/594/71 371/734/71 364/595/71 +f 375/597/74 372/612/74 369/598/74 +f 372/602/87 375/735/87 368/736/87 +f 375/735/87 376/610/87 368/736/87 +f 376/610/87 367/606/87 368/736/87 +f 368/736/87 363/737/87 372/602/87 +f 363/737/87 364/600/87 372/602/87 +f 363/603/73 368/609/73 365/604/73 +f 367/606/72 376/610/72 373/607/72 +f 364/595/76 363/603/76 362/605/76 +f 366/608/75 365/604/75 368/609/75 +f 374/599/78 373/607/78 376/610/78 +f 371/611/77 370/738/77 369/598/77 +f 362/615/96 365/739/96 374/740/96 +f 365/739/96 366/608/96 374/740/96 +f 366/608/96 373/607/96 374/740/96 +f 374/740/96 369/741/96 362/615/96 +f 369/741/96 370/613/96 362/615/96 +f 378/616/71 380/742/71 379/617/71 +f 381/619/72 384/743/72 383/620/72 +f 378/622/77 383/744/77 384/623/77 +f 377/625/76 379/745/76 381/626/76 +f 380/628/90 384/746/90 381/629/90 +f 377/618/102 382/621/102 383/620/102 +f 391/631/74 392/639/74 389/632/74 +f 388/634/96 392/639/96 391/631/96 +f 385/636/87 390/633/87 389/632/87 +f 387/638/72 389/632/72 392/639/72 +f 385/641/71 386/747/71 391/631/71 +f 399/642/74 400/646/74 397/643/74 +f 395/645/72 397/643/72 400/646/72 +f 393/648/71 394/748/71 399/642/71 +f 396/649/96 400/646/96 399/642/96 +f 393/651/87 398/644/87 397/643/87 +f 402/653/109 411/667/109 412/654/109 +f 407/656/87 408/662/87 405/657/87 +f 404/655/74 408/662/74 407/656/74 +f 401/659/73 406/749/73 405/660/73 +f 403/661/72 405/660/72 408/662/72 +f 402/653/71 407/656/71 406/663/71 +f 403/661/110 409/666/110 410/665/110 +f 403/661/72 404/655/72 412/654/72 +f 401/664/71 410/750/71 411/667/71 +f 428/562/111 427/565/111 420/566/111 +f 421/668/112 418/751/112 417/564/112 +f 424/669/113 423/722/113 414/555/113 +f 416/561/114 415/752/114 426/671/114 +f 413/670/73 418/751/73 421/668/73 +f 444/673/111 443/546/111 436/548/111 +f 441/552/114 432/554/114 431/674/114 +f 429/676/113 440/681/113 439/677/113 +f 434/678/112 433/547/112 438/679/112 +f 434/678/73 437/680/73 440/681/73 +f 445/682/73 448/686/73 447/683/73 +f 445/682/72 449/753/72 452/685/72 +f 446/684/71 447/683/71 451/687/71 +f 448/686/96 452/754/96 451/689/96 +f 446/684/87 450/755/87 449/690/87 +f 453/691/73 454/756/73 456/692/73 +f 456/692/75 458/757/75 457/694/75 +f 460/695/73 462/758/73 461/696/73 +f 464/698/73 466/759/73 465/699/73 +f 467/701/73 470/704/73 469/702/73 +f 470/704/115 472/760/115 471/705/115 +f 468/703/116 474/761/116 473/706/116 +o Chest +v 4.199992 -0.300001 2.100000 +v 4.199992 -0.300001 -2.100000 +v -4.200008 -0.299997 -2.100000 +v -1.575008 -0.299999 -2.100000 +v -1.575008 -0.299999 2.100000 +v -3.675008 -0.299997 2.100000 +v -3.675008 -0.299997 -2.100000 +v -4.200008 -0.299997 2.100000 +v 4.199994 7.994997 -2.100000 +v -4.200005 7.995001 -2.100000 +v 4.199995 10.094998 -2.100000 +v -4.200004 10.095000 -2.100000 +v 4.199995 10.094998 -2.625000 +v 4.199994 7.994997 -2.625000 +v -4.200005 7.995001 -2.625000 +v -4.200004 10.095000 -2.625000 +v 4.199994 7.994997 2.100000 +v -4.200005 7.995001 2.100000 +v 4.199995 10.094998 2.100000 +v -4.200004 10.095000 2.100000 +v 4.199994 7.994997 2.625000 +v -4.200005 7.995001 2.625000 +v 4.199995 10.094998 2.625000 +v -4.200004 10.095000 2.625000 +v -4.725005 7.995001 -2.100000 +v -4.725005 10.095001 -2.100000 +v -4.725005 7.995001 2.100000 +v -4.725005 10.095001 2.100000 +v 4.724995 7.994997 -2.100000 +v 4.724995 10.094997 -2.100000 +v 4.724995 7.994997 2.100000 +v 4.724995 10.094997 2.100000 +v -4.200005 9.150001 2.100000 +v -4.200005 9.150001 -2.100000 +v 4.199995 9.149999 2.100000 +v 4.199995 9.149999 -2.100000 +v -4.200000 22.800001 5.250000 +v 4.199999 22.799997 5.250000 +v 5.249998 17.549997 2.100000 +v 5.249998 17.549997 -2.100000 +v -5.250002 17.550001 2.100000 +v -5.250002 17.550001 -2.100000 +v -0.000005 9.150000 -2.100000 +v -4.200003 15.450001 -3.150000 +v -2.100003 15.450001 -3.150000 +v 4.199997 15.449999 -3.150000 +v 2.099997 15.449999 -3.150000 +v 4.199996 12.299998 2.100000 +v 4.199996 12.299998 -2.100000 +v -4.200004 12.300000 -2.100000 +v -4.200004 12.300000 2.100000 +v 3.674992 -0.300001 -2.100000 +v 3.674992 -0.300001 2.100000 +v 1.574992 -0.299999 2.100000 +v 1.574992 -0.299999 -2.100000 +v -1.575007 1.799999 -2.100000 +v -1.575007 1.799999 2.100000 +v -3.675007 1.800001 2.100000 +v -3.675007 1.800001 -2.100000 +v 3.674993 1.799997 -2.100000 +v 3.674993 1.799997 2.100000 +v 1.574993 1.799999 2.100000 +v 1.574993 1.799999 -2.100000 +v -4.200007 1.800001 2.100000 +v -4.200007 1.800001 -2.100000 +v 4.199993 1.799997 -2.100000 +v 4.199993 1.799997 2.100000 +v -1.575008 -0.299999 -3.150000 +v -3.675008 -0.299997 -3.150000 +v 3.674992 -0.300001 -3.150000 +v 1.574992 -0.299999 -3.150000 +v -1.575007 1.799999 -3.150000 +v -3.675007 1.800001 -3.150000 +v 3.674993 1.799997 -3.150000 +v 1.574993 1.799999 -3.150000 +v -4.200007 1.800001 -3.150000 +v 4.199993 1.799997 -3.150000 +v -5.250007 1.800001 2.100000 +v -5.250007 1.800001 -2.100000 +v 5.249993 1.799997 -2.100000 +v 5.249993 1.799997 2.100000 +v -1.575008 -0.299999 3.150000 +v -3.675008 -0.299997 3.150000 +v 3.674992 -0.300001 3.150000 +v 1.574992 -0.299999 3.150000 +v -1.575007 1.799999 3.150000 +v -3.675007 1.800001 3.150000 +v 3.674993 1.799997 3.150000 +v 1.574993 1.799999 3.150000 +v -4.200007 1.800001 3.150000 +v 4.199993 1.799997 3.150000 +v -4.200006 6.000002 -3.150000 +v 4.199994 5.999998 -3.150000 +v -5.250006 7.050001 2.100000 +v -5.250006 7.050001 -2.100000 +v 5.249994 7.049997 -2.100000 +v 5.249994 7.049997 2.100000 +v -4.200006 6.000002 3.150000 +v 4.199994 5.999998 3.150000 +v -4.200006 7.050001 2.100000 +v -4.200006 7.050001 -2.100000 +v 4.199994 7.049997 -2.100000 +v 4.199994 7.049997 2.100000 +v -1.575008 -1.349998 -2.100000 +v -1.575008 -1.349998 2.100000 +v -3.675008 -1.349997 2.100000 +v -3.675008 -1.349997 -2.100000 +v 3.674991 -1.350000 -2.100000 +v 3.674991 -1.350000 2.100000 +v 1.574992 -1.349998 2.100000 +v 1.574992 -1.349998 -2.100000 +v 3.149996 11.249999 3.150000 +v -3.150004 11.250001 3.150000 +v 3.149992 0.749998 3.150000 +v -3.150007 0.750002 3.150000 +v 3.149992 0.749998 5.250000 +v -3.150007 0.750002 5.250000 +v 3.149993 2.849998 7.349999 +v 3.149996 11.249999 7.349999 +v -3.150004 11.250001 7.349999 +v -3.150007 2.850002 7.349999 +v 4.199993 4.949999 6.300000 +v 4.199995 10.199999 6.300000 +v 2.624996 12.824999 4.200000 +v -2.625004 12.825001 4.200000 +v 2.624996 14.309922 4.815076 +v -2.625003 14.309924 4.815076 +v 2.624997 14.924998 6.300000 +v -2.625002 14.925000 6.300000 +v 2.624996 14.309922 7.784924 +v -2.625003 14.309924 7.784924 +v 2.624996 12.824999 8.400000 +v -2.625004 12.825001 8.400000 +v 2.624995 11.340075 7.784924 +v -2.625004 11.340077 7.784924 +v 2.624995 10.724999 6.300000 +v -2.625004 10.725001 6.300000 +v 2.624995 11.340075 4.815076 +v -2.625004 11.340077 4.815076 +v 4.199995 10.199999 4.200000 +v 4.199993 4.949999 4.200000 +v 3.149996 11.249999 6.300000 +v 3.149993 4.949999 6.300000 +v 3.149996 11.249999 4.200000 +v 3.149993 4.949999 4.200000 +v 3.937494 4.949999 5.512500 +v 3.412494 4.949999 5.512500 +v 3.937494 4.949999 4.987500 +v 3.412494 4.949999 4.987500 +v 3.412493 3.899998 4.987500 +v 3.937493 3.899998 4.987500 +v 3.412493 3.899998 5.512500 +v 3.937493 3.899998 5.512500 +v 4.199993 3.899998 6.300000 +v 4.199993 3.899998 4.200000 +v 3.149993 3.899998 6.300000 +v 3.149993 3.899998 4.200000 +v 4.199992 1.799997 4.200000 +v 3.674992 1.799997 4.200000 +v 3.674992 1.799997 6.300000 +v 4.199992 1.799997 6.300000 +v 3.674993 3.899998 6.825000 +v 4.199993 3.899998 6.825000 +v 3.674993 2.849998 6.825000 +v 4.199993 2.849998 6.825000 +v 4.199993 3.899998 3.675000 +v 3.674993 3.899998 3.675000 +v 4.199993 2.849998 3.675000 +v 3.674993 2.849998 3.675000 +v -4.200006 4.950003 6.300000 +v -4.200004 10.200001 6.300000 +v -4.200004 10.200001 4.200000 +v -4.200006 4.950003 4.200000 +v -3.150006 4.950003 4.200000 +v -3.150004 11.250001 4.200000 +v -3.150006 4.950003 6.300000 +v -3.150004 11.250001 6.300000 +v -3.412506 4.950003 5.512500 +v -3.937506 4.950003 5.512500 +v -3.412506 4.950003 4.987500 +v -3.937506 4.950003 4.987500 +v -3.412507 1.800001 4.987500 +v -3.412507 1.800001 5.512500 +v -3.937507 1.800001 5.512500 +v -3.937507 1.800001 4.987500 +v -3.150007 2.325003 4.725000 +v -3.150007 2.325003 5.775000 +v -4.200007 2.325003 5.775000 +v -4.200007 2.325003 4.725000 +v -3.150006 3.900002 4.725000 +v -3.150006 3.900002 5.775000 +v -4.200006 3.900002 5.775000 +v -4.200006 3.900002 4.725000 +v -3.412507 2.587502 5.775000 +v -3.937507 2.587502 5.775000 +v -3.412507 3.637503 5.775000 +v -3.937506 3.637503 5.775000 +v -3.412507 3.112501 6.825000 +v -3.937507 3.112501 6.825000 +v -3.412507 3.637503 6.825000 +v -3.937506 3.637503 6.825000 +v -3.412507 3.637503 7.875000 +v -3.937506 3.637503 7.875000 +v -3.412506 4.162502 7.875000 +v -3.937506 4.162502 7.875000 +v -3.412507 2.587502 4.725000 +v -3.937507 2.587502 4.725000 +v -3.412507 3.637503 4.725000 +v -3.937506 3.637503 4.725000 +v -3.412507 3.112501 3.675000 +v -3.937507 3.112501 3.675000 +v -3.412507 3.637503 3.675000 +v -3.937506 3.637503 3.675000 +v -3.412507 3.637503 2.625000 +v -3.937506 3.637503 2.625000 +v -3.412506 4.162502 2.625000 +v -3.937506 4.162502 2.625000 +v 4.199992 0.749998 6.300000 +v -4.200007 0.750002 6.300000 +v 4.199993 2.234922 6.915076 +v -4.200006 2.234926 6.915076 +v 4.199994 2.849998 8.400000 +v -4.200006 2.850002 8.400000 +v 4.199993 2.234922 9.884923 +v -4.200006 2.234926 9.884923 +v 4.199992 0.749998 10.500000 +v -4.200007 0.750002 10.500000 +v 4.199991 -0.734926 9.884923 +v -4.200008 -0.734922 9.884923 +v 4.199991 -1.350000 8.400000 +v -4.200008 -1.349997 8.400000 +v 4.199991 -0.734926 6.915076 +v -4.200008 -0.734922 6.915076 +v 2.099995 10.199999 7.349999 +v -2.100004 10.200001 7.349999 +v 2.099994 6.000000 7.349999 +v -2.100006 6.000000 7.349999 +v 2.099994 6.000000 9.450000 +v 2.099995 10.199999 9.450000 +v -2.100004 10.200001 9.450000 +v -2.100006 6.000000 9.450000 +v -1.312506 6.000000 8.662499 +v -1.837506 6.000000 8.662499 +v -1.312506 6.000000 8.137500 +v -1.837506 6.000000 8.137500 +v -0.262506 6.000000 8.662499 +v -0.787506 6.000000 8.662499 +v -0.262506 6.000000 8.137500 +v -0.787506 6.000000 8.137500 +v -1.312506 4.950001 8.137500 +v -1.312506 4.950001 8.662499 +v -1.837506 4.950001 8.662499 +v -1.837506 4.950001 8.137500 +v -0.262506 4.950001 8.137500 +v -0.262506 4.950001 8.662499 +v -0.787506 4.950001 8.662499 +v -0.787506 4.950001 8.137500 +v -1.312507 1.799999 11.287499 +v -1.312507 1.799999 11.812499 +v -1.837507 1.799999 11.812499 +v -1.837507 1.799999 11.287499 +v -0.262507 1.799999 11.287499 +v -0.262507 1.799999 11.812499 +v -0.787507 1.799999 11.812499 +v -0.787507 1.799999 11.287499 +v -1.312509 -4.500000 11.287499 +v -1.312509 -4.500000 11.812499 +v -1.837509 -4.500000 11.812499 +v -1.837509 -4.500000 11.287499 +v -0.262508 -0.299999 11.287499 +v -0.262508 -0.299999 11.812499 +v -0.787508 -0.299999 11.812499 +v -0.787508 -0.299999 11.287499 +v 2.957832 11.899478 6.163495 +v 3.412495 11.874217 5.902212 +v 3.412496 11.899478 6.163495 +v 3.412495 8.764097 6.466626 +v 3.185164 11.912108 6.294134 +v 3.185163 8.776729 6.597267 +v 3.185164 11.937369 6.555416 +v 3.185163 8.801990 6.858547 +v 3.412496 11.950000 6.686055 +v 3.412495 8.814620 6.989188 +v 3.639827 11.937369 6.555416 +v 3.639826 8.801990 6.858547 +v 3.639827 11.912108 6.294134 +v 3.639826 8.776729 6.597267 +v 2.957832 11.950000 6.686055 +v 3.412496 11.975261 6.947338 +v 3.867159 11.950000 6.686055 +v 3.867158 11.899478 6.163495 +v 4.094490 12.931973 5.931808 +v 3.412496 12.894082 5.539885 +v 4.094490 13.007758 6.715653 +v 3.412496 13.045648 7.107575 +v 2.730501 13.007758 6.715653 +v 2.730501 12.931973 5.931808 +v 4.094491 13.977101 5.830763 +v 3.412496 13.939210 5.438842 +v 4.094491 14.052884 6.614610 +v 3.412496 14.090775 7.006532 +v 2.730501 14.052884 6.614610 +v 2.730501 13.977101 5.830763 +v 2.957832 12.447959 7.446981 +v 3.412496 12.491173 7.188064 +v 3.412496 12.447959 7.446981 +v 3.412495 9.340938 6.928412 +v 3.185164 12.426353 7.576441 +v 3.185163 9.319330 7.057871 +v 3.185164 12.383138 7.835360 +v 3.185163 9.276116 7.316791 +v 3.412496 12.361531 7.964818 +v 3.412495 9.254509 7.446248 +v 3.639827 12.383138 7.835360 +v 3.639826 9.276116 7.316791 +v 3.639827 12.426353 7.576441 +v 3.639826 9.319330 7.057871 +v 2.957832 12.361531 7.964818 +v 3.412496 12.318316 8.223737 +v 3.867159 12.361531 7.964818 +v 3.867159 12.447959 7.446981 +v 4.094491 13.505240 7.490378 +v 3.412496 13.570062 7.102001 +v 4.094491 13.375598 8.267134 +v 3.412496 13.310778 8.655512 +v 2.730501 13.375598 8.267134 +v 2.730501 13.505240 7.490378 +v 4.094491 14.540915 7.663234 +v 3.412496 14.605736 7.274856 +v 4.094491 14.411272 8.439990 +v 3.412496 14.346450 8.828368 +v 2.730502 14.411272 8.439990 +v 2.730502 14.540915 7.663234 +vt 0.629630 0.225000 +vt 0.611111 0.175000 +vt 0.629630 0.175000 +vt 0.620370 0.175000 +vt 0.675926 0.150000 +vt 0.675926 0.175000 +vt 0.648148 0.175000 +vt 0.629630 0.225000 +vt 0.629630 0.175000 +vt 0.712963 0.175000 +vt 0.722222 0.150000 +vt 0.722222 0.175000 +vt 0.333333 0.400000 +vt 0.481481 0.387500 +vt 0.481481 0.400000 +vt 0.240741 0.387500 +vt 0.092593 0.337500 +vt 0.240741 0.337500 +vt 0.240741 0.325000 +vt 0.092593 0.325000 +vt 0.092593 0.400000 +vt 0.240741 0.400000 +vt 0.092593 0.325000 +vt 0.166667 0.125000 +vt 0.166667 0.325000 +vt 0.203704 0.325000 +vt 0.351852 0.000000 +vt 0.351852 0.325000 +vt 0.481481 0.325000 +vt 0.333333 0.337500 +vt 0.333333 0.325000 +vt 0.481481 0.337500 +vt 0.333333 0.387500 +vt 0.009259 0.400000 +vt 0.083333 0.387500 +vt 0.083333 0.400000 +vt 0.083333 0.325000 +vt 0.009259 0.337500 +vt 0.009259 0.325000 +vt 0.250000 0.400000 +vt 0.324074 0.387500 +vt 0.324074 0.400000 +vt 0.324074 0.325000 +vt 0.250000 0.337500 +vt 0.250000 0.325000 +vt 0.324074 0.337500 +vt 0.083333 0.337500 +vt 0.092593 0.387500 +vt 0.083333 0.400000 +vt 0.083333 0.325000 +vt 0.000000 0.325000 +vt -0.000000 0.337500 +vt 0.009259 0.387500 +vt -0.000000 0.387500 +vt 0.000000 0.400000 +vt 0.324074 0.325000 +vt 0.324074 0.400000 +vt 0.240741 0.325000 +vt 0.250000 0.387500 +vt 0.240741 0.400000 +vt 0.388889 0.325000 +vt 0.462963 0.125000 +vt 0.462963 0.325000 +vt 0.203704 0.000000 +vt 0.388889 0.125000 +vt 0.481481 0.325000 +vt 0.518519 0.175000 +vt 0.555556 0.325000 +vt 0.074074 0.325000 +vt 0.037037 0.175000 +vt 0.074074 0.175000 +vt 0.481481 0.175000 +vt 0.092593 0.125000 +vt 0.296296 0.700000 +vt 0.444444 0.400000 +vt 0.444444 0.700000 +vt 0.222222 0.700000 +vt 0.296296 0.400000 +vt 0.074074 0.700000 +vt 0.222222 0.400000 +vt 0.000000 0.700000 +vt 0.074074 0.400000 +vt 0.703704 0.225000 +vt 0.685185 0.175000 +vt 0.703704 0.175000 +vt 0.574074 0.175000 +vt 0.555556 0.225000 +vt 0.555556 0.175000 +vt 0.574074 0.150000 +vt 0.583333 0.175000 +vt 0.574074 0.175000 +vt 0.574074 0.225000 +vt 0.648148 0.225000 +vt 0.481481 0.175000 +vt 0.555556 0.150000 +vt 0.555556 0.175000 +vt 0.740741 0.175000 +vt 0.814815 0.150000 +vt 0.814815 0.175000 +vt 0.574074 0.375000 +vt 0.555556 0.425000 +vt 0.555556 0.375000 +vt 0.972222 0.150000 +vt 0.981481 0.175000 +vt 0.972222 0.175000 +vt 0.833333 0.175000 +vt 0.842593 0.150000 +vt 0.842593 0.175000 +vt 0.648148 0.375000 +vt 0.629630 0.425000 +vt 0.629630 0.375000 +vt 0.629630 0.425000 +vt 0.611111 0.375000 +vt 0.629630 0.375000 +vt 0.879630 0.150000 +vt 0.935185 0.175000 +vt 0.879630 0.175000 +vt 0.703704 0.425000 +vt 0.685185 0.375000 +vt 0.703704 0.375000 +vt 1.000000 0.175000 +vt 0.981481 0.150000 +vt 0.814815 0.175000 +vt 0.833333 0.150000 +vt 0.740741 0.175000 +vt 0.555556 0.175000 +vt 1.000000 0.150000 +vt 0.981481 0.050000 +vt 1.000000 0.025000 +vt 0.574074 0.050000 +vt 0.833333 0.050000 +vt 0.481481 0.150000 +vt 0.555556 0.025000 +vt 0.740741 0.150000 +vt 0.722222 0.050000 +vt 0.740741 0.025000 +vt 0.814815 0.025000 +vt 0.620370 0.150000 +vt 0.583333 0.150000 +vt 0.685185 0.425000 +vt 0.611111 0.425000 +vt 0.574074 0.425000 +vt 0.814815 -0.000000 +vt 0.481481 0.025000 +vt 0.555556 0.000000 +vt 0.574074 0.025000 +vt 0.722222 0.025000 +vt 0.833333 0.025000 +vt 0.981481 0.025000 +vt 0.574074 0.250000 +vt 0.555556 0.350000 +vt 0.555556 0.250000 +vt 0.703704 0.350000 +vt 0.685185 0.250000 +vt 0.703704 0.250000 +vt 0.629630 0.350000 +vt 0.611111 0.250000 +vt 0.629630 0.250000 +vt 0.648148 0.250000 +vt 0.629630 0.350000 +vt 0.629630 0.250000 +vt 0.611111 0.350000 +vt 0.648148 0.350000 +vt 0.611111 0.225000 +vt 0.685185 0.225000 +vt 0.685185 0.350000 +vt 0.574074 0.350000 +vt 0.629630 0.350000 +vt 0.703704 0.350000 +vt 0.629630 0.350000 +vt 0.555556 0.350000 +vt 0.555556 0.250000 +vt 0.629630 0.250000 +vt 0.629630 0.250000 +vt 0.703704 0.250000 +vt 0.222222 0.800000 +vt 0.555556 0.525000 +vt 0.444444 0.775000 +vt 0.444444 0.525000 +vt 0.629630 0.825000 +vt 0.740741 0.775000 +vt 0.740741 0.825000 +vt 0.740741 0.725000 +vt 0.814815 0.525000 +vt 0.814815 0.775000 +vt 0.740741 0.525000 +vt 0.629630 0.425000 +vt 0.740741 0.425000 +vt 0.629630 0.525000 +vt 0.629630 0.725000 +vt 0.592593 0.775000 +vt 0.555556 0.775000 +vt 0.537037 0.850000 +vt 0.500000 0.900000 +vt 0.500000 0.850000 +vt 0.546296 0.900000 +vt 0.555556 0.875000 +vt 0.555556 0.900000 +vt 0.222222 0.925000 +vt 0.314815 0.962500 +vt 0.222222 0.962500 +vt 0.500000 0.775000 +vt 0.500000 0.825000 +vt 0.490741 0.800000 +vt 0.018519 0.850000 +vt 0.055556 0.875000 +vt 0.018519 0.875000 +vt 0.222222 1.000000 +vt 0.453704 0.775000 +vt 0.444444 0.800000 +vt 0.444444 0.775000 +vt 0.018519 0.700000 +vt 0.055556 0.725000 +vt 0.018519 0.725000 +vt 0.314815 0.700000 +vt 0.222222 0.737500 +vt 0.222222 0.700000 +vt 0.462963 0.775000 +vt 0.453704 0.800000 +vt 0.074074 0.850000 +vt 0.074074 0.700000 +vt 0.314815 0.775000 +vt 0.222222 0.775000 +vt 0.472222 0.775000 +vt 0.462963 0.800000 +vt 0.537037 0.912500 +vt 0.500000 0.912500 +vt 0.314815 0.812500 +vt 0.222222 0.812500 +vt 0.481481 0.775000 +vt 0.472222 0.800000 +vt 0.000000 0.850000 +vt 0.000000 0.700000 +vt 0.222222 0.850000 +vt 0.315778 0.750000 +vt 0.326344 0.715564 +vt 0.351852 0.701301 +vt 0.055556 0.850000 +vt 0.314815 0.850000 +vt 0.222222 0.887500 +vt 0.537037 0.825000 +vt 0.537037 0.775000 +vt 0.314815 0.887500 +vt 0.377360 0.815565 +vt 0.377360 0.884436 +vt 0.326344 0.884436 +vt 0.555556 0.850000 +vt 0.546296 0.875000 +vt 0.546296 0.850000 +vt 0.546296 0.837500 +vt 0.537037 0.900000 +vt 0.546296 0.800000 +vt 0.546296 0.825000 +vt 0.490741 0.850000 +vt 0.481481 0.875000 +vt 0.481481 0.850000 +vt 0.490741 0.900000 +vt 0.490741 0.875000 +vt 0.490741 0.837500 +vt 0.055556 0.725000 +vt 0.018519 0.850000 +vt 0.018519 0.725000 +vt 0.611111 0.887500 +vt 0.629630 0.912500 +vt 0.611111 0.912500 +vt 0.000000 0.850000 +vt 0.000000 0.700000 +vt 0.074074 0.850000 +vt 0.055556 0.850000 +vt 0.055556 0.700000 +vt 0.018519 0.875000 +vt 0.564815 0.850000 +vt 0.574074 0.862500 +vt 0.564815 0.862500 +vt 0.583333 0.775000 +vt 0.574074 0.850000 +vt 0.574074 0.775000 +vt 0.564815 0.775000 +vt 0.555556 0.850000 +vt 0.555556 0.775000 +vt 0.592593 0.775000 +vt 0.583333 0.850000 +vt 0.629630 0.825000 +vt 0.611111 0.850000 +vt 0.611111 0.825000 +vt 0.629630 0.887500 +vt 0.648148 0.850000 +vt 0.666667 0.887500 +vt 0.648148 0.887500 +vt 0.629630 0.850000 +vt 0.592593 0.887500 +vt 0.666667 0.862500 +vt 0.675926 0.837500 +vt 0.675926 0.862500 +vt 0.666667 0.887500 +vt 0.675926 0.887500 +vt 0.694444 0.887500 +vt 0.703704 0.862500 +vt 0.703704 0.887500 +vt 0.685185 0.862500 +vt 0.694444 0.862500 +vt 0.685185 0.887500 +vt 0.685185 0.825000 +vt 0.685185 0.837500 +vt 0.703704 0.837500 +vt 0.694444 0.837500 +vt 0.694444 0.862500 +vt 0.685185 0.837500 +vt 0.694444 0.837500 +vt 0.694444 0.887500 +vt 0.685185 0.862500 +vt 0.703704 0.862500 +vt 0.703704 0.887500 +vt 0.666667 0.887500 +vt 0.675926 0.862500 +vt 0.675926 0.887500 +vt 0.685185 0.887500 +vt 0.675926 0.825000 +vt 0.685185 0.825000 +vt 0.703704 0.837500 +vt 0.666667 0.862500 +vt 0.675926 0.837500 +vt 0.814815 0.662500 +vt 0.962963 0.700000 +vt 0.814815 0.700000 +vt 0.962963 0.737500 +vt 0.814815 0.737500 +vt 0.962963 0.437500 +vt 0.814815 0.475000 +vt 0.814815 0.437500 +vt 0.962963 0.475000 +vt 0.814815 0.512500 +vt 0.962963 0.512500 +vt 0.814815 0.550000 +vt 0.962963 0.550000 +vt 0.814815 0.587500 +vt 0.937455 0.253064 +vt 0.962963 0.238801 +vt 0.962963 0.336199 +vt 0.962963 0.587500 +vt 0.814815 0.625000 +vt 0.962963 0.662500 +vt 0.937455 0.421935 +vt 0.937455 0.353064 +vt 0.988471 0.353064 +vt 0.814815 0.225000 +vt 0.740741 0.325000 +vt 0.740741 0.225000 +vt 0.740741 0.375000 +vt 0.814815 0.325000 +vt 0.814815 0.375000 +vt 0.814815 0.175000 +vt 0.740741 0.175000 +vt 0.851852 0.325000 +vt 0.851852 0.225000 +vt 0.703704 0.225000 +vt 0.703704 0.325000 +vt 0.916667 0.200000 +vt 0.925926 0.275000 +vt 0.916667 0.275000 +vt 0.861111 0.200000 +vt 0.851852 0.275000 +vt 0.851852 0.200000 +vt 0.916667 0.175000 +vt 0.907407 0.200000 +vt 0.907407 0.175000 +vt 0.898148 0.175000 +vt 0.888889 0.200000 +vt 0.888889 0.175000 +vt 0.879630 0.175000 +vt 0.870370 0.200000 +vt 0.870370 0.175000 +vt 0.861111 0.175000 +vt 0.851852 0.175000 +vt 0.925926 0.200000 +vt 0.898148 0.200000 +vt 0.888889 0.200000 +vt 0.879630 0.200000 +vt 0.898148 0.275000 +vt 0.888889 0.325000 +vt 0.888889 0.275000 +vt 0.907407 0.325000 +vt 0.907407 0.275000 +vt 0.879630 0.275000 +vt 0.861111 0.275000 +vt 0.870370 0.275000 +vt 0.870370 0.425000 +vt 0.861111 0.437500 +vt 0.861111 0.425000 +vt 0.898148 0.337500 +vt 0.898148 0.325000 +vt 0.851852 0.425000 +vt 0.925926 0.325000 +vt 0.916667 0.325000 +vt 0.888889 0.275000 +vt 0.879630 0.425000 +vt 0.425926 0.800000 +vt 0.435185 0.825000 +vt 0.425926 0.825000 +vt 0.398148 0.787500 +vt 0.388889 0.800000 +vt 0.388889 0.787500 +vt 0.398148 0.712500 +vt 0.407407 0.800000 +vt 0.416667 0.825000 +vt 0.407407 0.825000 +vt 0.425926 0.787500 +vt 0.435185 0.800000 +vt 0.407407 0.787500 +vt 0.444444 0.800000 +vt 0.435185 0.787500 +vt 0.416667 0.712500 +vt 0.416667 0.787500 +vt 0.398148 0.850000 +vt 0.398148 0.825000 +vt 0.416667 0.800000 +vt 0.425926 0.712500 +vt 0.397836 0.706250 +vt 0.391360 0.711298 +vt 0.391360 0.701202 +vt 0.388889 0.825000 +vt 0.435185 0.712500 +vt 0.398148 0.800000 +vt 0.444444 0.787500 +vt 0.390314 0.856394 +vt 0.398148 0.850287 +vt 0.405982 0.856394 +vt 0.416667 0.850000 +vt 0.444444 0.850000 +vt 0.435185 0.850000 +vt 0.388889 0.850000 +vt 0.407407 0.850000 +vt 0.425926 0.850000 +vt 0.425926 0.800000 +vt 0.435185 0.825000 +vt 0.425926 0.825000 +vt 0.398148 0.787500 +vt 0.388889 0.800000 +vt 0.388889 0.787500 +vt 0.388889 0.712500 +vt 0.416667 0.800000 +vt 0.407407 0.825000 +vt 0.407407 0.800000 +vt 0.435185 0.787500 +vt 0.425926 0.787500 +vt 0.407407 0.712500 +vt 0.407407 0.787500 +vt 0.444444 0.800000 +vt 0.435185 0.800000 +vt 0.444444 0.787500 +vt 0.416667 0.787500 +vt 0.398148 0.825000 +vt 0.407407 0.850000 +vt 0.398148 0.850000 +vt 0.425926 0.712500 +vt 0.389201 0.706250 +vt 0.391360 0.701202 +vt 0.397836 0.706250 +vt 0.388889 0.825000 +vt 0.416667 0.825000 +vt 0.398148 0.800000 +vt 0.435185 0.712500 +vt 0.393625 0.851924 +vt 0.402671 0.851924 +vt 0.402671 0.873076 +vt 0.416667 0.850000 +vt 0.444444 0.850000 +vt 0.435185 0.850000 +vt 0.388889 0.850000 +vt 0.425926 0.850000 +vt 0.490741 0.825000 +vt 0.712963 0.150000 +vt -0.000000 0.325000 +vt 0.000000 0.400000 +vt 0.648148 0.425000 +vt 0.935185 0.150000 +vt 0.740741 -0.000000 +vt 0.481481 0.000000 +vt 0.074074 0.800000 +vt 0.629630 0.775000 +vt 0.777778 0.775000 +vt 0.314815 0.925000 +vt 0.314815 1.000000 +vt 0.055556 0.700000 +vt 0.314815 0.737500 +vt 0.481481 0.800000 +vt 0.377360 0.715564 +vt 0.351852 0.798699 +vt 0.387925 0.750000 +vt 0.377360 0.784436 +vt 0.326344 0.784436 +vt 0.315778 0.850000 +vt 0.326344 0.815564 +vt 0.351852 0.801301 +vt 0.387925 0.850000 +vt 0.351852 0.898699 +vt 0.481481 0.900000 +vt 0.074074 0.700000 +vt 0.018519 0.700000 +vt 0.055556 0.875000 +vt 0.592593 0.850000 +vt 0.666667 0.850000 +vt 0.592593 0.850000 +vt 0.666667 0.837500 +vt 0.675926 0.825000 +vt 0.666667 0.837500 +vt 0.988471 0.253064 +vt 0.999037 0.287500 +vt 0.988471 0.321936 +vt 0.937455 0.321936 +vt 0.926890 0.287500 +vt 0.962963 0.625000 +vt 0.926889 0.387500 +vt 0.962963 0.338801 +vt 0.999036 0.387500 +vt 0.988471 0.421936 +vt 0.962963 0.436199 +vt 0.925926 0.175000 +vt 0.888889 0.175000 +vt 0.870370 0.437500 +vt 0.907407 0.337500 +vt 0.888889 0.425000 +vt 0.388889 0.712500 +vt 0.407407 0.712500 +vt 0.444444 0.825000 +vt 0.395677 0.701202 +vt 0.395677 0.711298 +vt 0.389201 0.706250 +vt 0.444444 0.712500 +vt 0.405982 0.868606 +vt 0.398148 0.874712 +vt 0.390314 0.868606 +vt 0.398148 0.712500 +vt 0.444444 0.825000 +vt 0.416667 0.712500 +vt 0.395677 0.701202 +vt 0.395677 0.711298 +vt 0.391360 0.711298 +vt 0.444444 0.712500 +vt 0.407194 0.862500 +vt 0.393625 0.873076 +vt 0.389102 0.862500 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9923 -0.1240 0.0000 +vn -0.0000 -0.2249 0.9744 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.9923 -0.1240 0.0000 +vn 0.8740 -0.1093 0.4734 +vn -0.8740 -0.1093 0.4734 +vn 0.0000 -0.1644 -0.9864 +vn -0.7960 -0.0995 -0.5970 +vn 0.7960 -0.0995 -0.5970 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 -0.7071 0.7071 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 0.3827 -0.9239 +vn -0.8729 -0.2182 -0.4364 +vn 0.0000 0.9239 -0.3827 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 0.9239 +vn -0.0000 -0.3827 0.9239 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.9239 -0.3827 +vn -0.9701 -0.2425 0.0000 +vn -0.0000 -0.3827 -0.9239 +vn 0.0000 -0.4472 -0.8944 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.9774 -0.2106 0.0204 +vn -0.0000 -0.9954 0.0962 +vn -0.5000 -0.0833 -0.8620 +vn -0.4887 -0.1292 0.8628 +vn 0.4887 -0.2921 -0.8221 +vn -0.5000 0.0833 0.8620 +vn 0.5000 0.0833 0.8620 +vn -0.4887 -0.2921 -0.8221 +vn 0.4887 -0.1292 0.8628 +vn 0.5000 -0.0833 -0.8620 +vn -0.9774 -0.2106 0.0204 +vn 0.0000 0.9954 -0.0962 +vn 0.9774 -0.2087 -0.0348 +vn -0.0000 -0.9864 -0.1646 +vn -0.5000 0.1426 -0.8542 +vn -0.4887 -0.3481 0.8000 +vn 0.4887 -0.0694 -0.8697 +vn -0.5000 -0.1426 0.8542 +vn 0.5000 -0.1426 0.8542 +vn -0.4887 -0.0694 -0.8697 +vn 0.4887 -0.3481 0.8000 +vn 0.5000 0.1426 -0.8542 +vn -0.9774 -0.2087 -0.0348 +vn 0.0000 0.9864 0.1646 +vn -0.8729 -0.2182 0.4364 +s off +f 478/762/117 546/763/117 530/764/117 +f 530/765/118 549/766/118 537/767/118 +f 549/768/119 529/769/119 537/770/119 +f 534/771/118 551/772/118 540/773/118 +f 491/774/118 496/775/118 492/776/118 +f 488/777/120 490/778/120 487/779/120 +f 485/780/121 490/778/121 486/781/121 +f 484/782/118 488/777/118 483/783/118 +f 510/784/122 513/785/122 509/786/122 +f 509/787/123 511/788/123 507/789/123 +f 494/790/121 497/791/121 493/792/121 +f 498/793/124 495/794/124 497/791/124 +f 492/795/118 499/796/118 484/797/118 +f 486/798/121 502/799/121 494/800/121 +f 483/801/118 505/802/118 491/803/118 +f 493/804/121 504/805/121 485/806/121 +f 505/802/117 504/805/117 506/807/117 +f 499/796/119 502/799/119 500/808/119 +f 499/796/125 490/778/125 489/809/125 +f 484/782/118 499/810/118 489/809/118 +f 486/781/121 490/778/121 500/811/121 +f 494/800/121 502/799/121 498/812/121 +f 498/813/126 501/814/126 496/815/126 +f 492/795/118 496/816/118 501/814/118 +f 493/792/121 497/791/121 506/817/121 +f 495/794/127 506/807/127 497/791/127 +f 491/774/118 505/818/118 495/794/118 +f 485/806/121 504/805/121 487/819/121 +f 488/777/128 504/805/128 503/820/128 +f 483/801/118 488/821/118 503/820/118 +f 507/822/129 516/823/129 508/824/129 +f 509/787/130 513/785/130 512/825/130 +f 507/789/131 511/788/131 515/826/131 +f 508/827/132 519/828/132 517/829/132 +f 510/830/132 521/831/132 520/832/132 +f 508/824/133 516/823/133 518/833/133 +f 510/784/134 520/832/134 514/834/134 +f 475/835/124 525/836/124 482/837/124 +f 476/838/117 522/839/117 475/835/117 +f 477/840/120 523/841/120 476/838/120 +f 482/842/119 524/843/119 477/840/119 +f 526/844/117 548/845/117 534/846/117 +f 547/847/119 481/848/119 533/849/119 +f 550/850/118 533/851/118 539/852/118 +f 546/763/120 543/853/120 547/847/120 +f 548/845/120 545/854/120 549/768/120 +f 538/855/118 553/856/118 539/857/118 +f 540/858/118 555/859/118 541/860/118 +f 557/861/119 532/862/119 480/863/119 +f 561/864/118 538/865/118 532/866/118 +f 541/867/118 562/868/118 535/869/118 +f 559/870/119 536/871/119 528/872/119 +f 531/873/117 556/874/117 479/875/117 +f 563/876/118 531/877/118 536/878/118 +f 535/879/117 558/880/117 527/881/117 +f 552/882/118 538/865/118 564/883/118 +f 541/867/118 555/884/118 565/885/118 +f 540/773/118 551/772/118 554/886/118 +f 539/852/118 553/887/118 550/850/118 +f 552/888/126 572/889/126 568/890/126 +f 553/856/125 566/891/125 550/850/125 +f 555/859/127 573/892/127 565/885/127 +f 552/893/119 569/894/119 553/856/119 +f 554/895/128 567/896/128 570/897/128 +f 554/895/117 571/898/117 555/859/117 +f 546/899/120 547/900/120 566/891/120 +f 562/901/124 559/870/124 558/880/124 +f 557/861/124 560/902/124 561/903/124 +f 572/889/124 564/883/124 561/864/124 +f 570/897/121 577/904/121 571/898/121 +f 568/905/121 575/906/121 569/894/121 +f 569/894/135 575/907/135 566/891/135 +f 570/897/135 567/896/135 576/908/135 +f 566/891/135 576/908/135 567/896/135 +f 573/892/136 571/898/136 577/909/136 +f 572/889/136 574/910/136 568/890/136 +f 572/889/136 577/909/136 574/910/136 +f 581/911/119 480/912/119 481/913/119 +f 527/914/117 582/915/117 526/916/117 +f 479/917/117 578/918/117 478/919/117 +f 585/920/119 528/921/119 529/922/119 +f 579/923/118 581/911/118 578/918/118 +f 582/915/118 584/924/118 585/920/118 +f 542/925/137 581/911/137 543/853/137 +f 544/926/137 585/920/137 545/854/137 +f 558/880/138 584/924/138 583/927/138 +f 580/928/138 556/874/138 557/861/138 +f 479/875/117 556/874/117 579/929/117 +f 527/881/117 558/880/117 583/930/117 +f 528/872/119 584/931/119 559/870/119 +f 480/863/119 580/932/119 557/861/119 +f 481/848/119 543/853/119 581/933/119 +f 478/762/117 578/934/117 542/925/117 +f 529/769/119 545/854/119 585/935/119 +f 526/844/117 582/936/117 544/926/117 +f 475/937/118 477/840/118 476/838/118 +f 586/938/120 589/939/120 587/940/120 +f 588/941/118 591/942/118 589/943/118 +f 595/944/119 587/945/119 589/946/119 +f 594/947/121 586/948/121 587/949/121 +f 593/950/124 595/944/124 592/951/124 +f 591/942/138 592/951/138 595/944/138 +f 592/951/117 590/952/117 588/953/117 +f 628/954/117 632/955/117 629/956/117 +f 635/957/139 638/958/139 634/959/139 +f 598/960/140 601/961/140 600/962/140 +f 633/963/141 631/964/141 643/965/141 +f 615/966/118 617/967/118 619/968/118 +f 601/961/142 602/969/142 600/962/142 +f 622/970/120 624/971/120 623/972/120 +f 618/973/143 597/974/143 614/975/143 +f 603/976/144 604/977/144 602/978/144 +f 620/979/117 625/980/117 622/970/117 +f 617/981/124 597/974/124 616/982/124 +f 604/977/145 607/983/145 606/984/145 +f 621/985/124 627/986/124 620/979/124 +f 632/955/118 634/987/118 633/988/118 +f 606/984/146 609/989/146 608/990/146 +f 623/991/119 626/992/119 621/985/119 +f 614/975/120 619/993/120 618/994/120 +f 609/989/147 610/995/147 608/990/147 +f 607/996/119 605/997/119 603/998/119 +f 596/999/117 614/975/117 597/974/117 +f 611/1000/148 612/1001/148 610/995/148 +f 630/1002/121 629/956/121 631/964/121 +f 631/964/149 634/1003/149 630/1002/149 +f 613/1004/150 598/960/150 612/1001/150 +f 604/1005/117 608/1006/117 612/1007/117 +f 636/1008/124 639/1009/124 637/1010/124 +f 628/954/121 636/1011/121 637/1010/121 +f 628/954/117 639/1009/117 635/1012/117 +f 630/1002/126 638/1013/126 636/1014/126 +f 640/1015/120 643/1016/120 641/1017/120 +f 632/1018/151 643/1016/151 642/1019/151 +f 629/956/121 641/1020/121 631/964/121 +f 629/956/117 642/1019/117 640/1015/117 +f 646/1021/119 644/1022/119 645/1023/119 +f 662/1024/118 660/1025/118 661/1026/118 +f 645/1023/124 650/1027/124 651/1028/124 +f 646/1021/120 648/1029/120 647/1030/120 +f 645/1023/152 649/1031/152 646/1021/152 +f 647/1030/118 650/1032/118 644/1022/118 +f 658/1033/118 656/1034/118 657/1035/118 +f 654/1036/120 659/1037/120 655/1038/120 +f 653/1039/124 657/1040/124 652/1041/124 +f 655/1038/119 658/1033/119 653/1039/119 +f 652/1042/117 656/1043/117 654/1036/117 +f 664/1044/121 666/1045/121 665/1046/121 +f 666/1045/119 663/1047/119 662/1024/119 +f 664/1048/117 661/1049/117 660/1050/117 +f 667/1051/120 660/1050/120 663/1047/120 +f 661/1052/124 666/1045/124 662/1024/124 +f 674/1053/117 676/1054/117 672/1055/117 +f 670/1056/117 672/1055/117 668/1057/117 +f 671/1058/121 674/1059/121 670/1060/121 +f 671/1058/119 673/1061/119 675/1062/119 +f 668/1057/153 673/1061/153 669/1063/153 +f 676/1054/124 679/1064/124 677/1065/124 +f 675/1062/154 678/1066/154 674/1059/154 +f 675/1062/119 677/1065/119 679/1067/119 +f 672/1055/153 677/1065/153 673/1061/153 +f 686/1068/117 688/1069/117 690/1070/117 +f 682/1071/117 684/1072/117 686/1068/117 +f 682/1071/121 687/1073/121 683/1074/121 +f 683/1075/119 685/1076/119 681/1077/119 +f 681/1077/155 684/1072/155 680/1078/155 +f 688/1069/120 691/1079/120 690/1080/120 +f 686/1068/156 691/1081/156 687/1073/156 +f 687/1082/119 689/1083/119 685/1076/119 +f 684/1072/155 689/1083/155 688/1069/155 +f 692/1084/140 695/1085/140 694/1086/140 +f 694/1086/142 697/1087/142 696/1088/142 +f 697/1089/144 698/1090/144 696/1091/144 +f 699/1092/145 700/1093/145 698/1090/145 +f 701/1094/146 702/1095/146 700/1093/146 +f 703/1096/147 704/1097/147 702/1095/147 +f 699/1098/119 697/1099/119 705/1100/119 +f 705/1101/148 706/1102/148 704/1097/148 +f 706/1102/150 693/1103/150 692/1084/150 +f 706/1104/117 694/1105/117 698/1106/117 +f 714/1107/124 712/1108/124 713/1109/124 +f 710/1110/118 715/1111/118 711/1112/118 +f 709/1113/121 713/1109/121 708/1114/121 +f 711/1115/119 714/1107/119 709/1116/119 +f 708/1117/117 712/1108/117 710/1118/117 +f 731/1119/137 736/1120/137 739/1121/137 +f 725/1122/117 732/1123/117 724/1124/117 +f 723/1125/119 730/1126/119 721/1127/119 +f 720/1128/117 728/1129/117 722/1130/117 +f 719/1131/119 726/1132/119 717/1133/119 +f 716/1134/117 724/1124/117 718/1135/117 +f 723/1125/120 728/1136/120 731/1119/120 +f 721/1127/124 729/1137/124 720/1128/124 +f 719/1131/120 724/1138/120 727/1139/120 +f 717/1133/124 725/1122/124 716/1134/124 +f 737/1140/117 744/1141/117 736/1142/117 +f 739/1121/119 746/1143/119 738/1144/119 +f 729/1137/136 738/1144/136 737/1140/136 +f 724/1138/137 735/1145/137 727/1139/137 +f 726/1132/136 733/1146/136 725/1122/136 +f 730/1126/119 739/1121/119 738/1144/119 +f 729/1137/117 736/1142/117 728/1129/117 +f 726/1132/119 735/1145/119 734/1147/119 +f 742/1148/118 740/1149/118 741/1150/118 +f 746/1143/118 744/1151/118 745/1152/118 +f 735/1145/119 742/1148/119 734/1147/119 +f 733/1146/117 740/1153/117 732/1123/117 +f 739/1121/120 744/1154/120 747/1155/120 +f 738/1144/124 745/1152/124 737/1140/124 +f 732/1156/120 743/1157/120 735/1145/120 +f 734/1147/124 741/1150/124 733/1146/124 +f 764/1158/157 766/1159/157 768/1160/157 +f 752/1161/158 749/1162/158 750/1163/158 +f 750/1163/159 753/1164/159 752/1161/159 +f 762/1165/160 769/1166/160 770/1167/160 +f 758/1168/158 765/1169/158 764/1158/158 +f 753/1164/119 754/1170/119 752/1161/119 +f 749/1171/161 766/1159/161 765/1169/161 +f 760/1172/158 749/1171/158 765/1169/158 +f 754/1170/162 757/1173/162 756/1174/162 +f 770/1167/119 777/1175/119 771/1176/119 +f 758/1168/158 763/1177/158 756/1174/158 +f 756/1174/163 759/1178/163 758/1168/163 +f 751/1179/158 759/1180/158 755/1181/158 +f 749/1162/164 771/1176/164 767/1182/164 +f 758/1168/117 761/1183/117 760/1172/117 +f 763/1177/165 768/1160/165 769/1166/165 +f 752/1161/158 762/1165/158 748/1184/158 +f 761/1183/166 750/1185/166 760/1172/166 +f 754/1170/158 763/1177/158 762/1165/158 +f 762/1165/167 771/1176/167 748/1184/167 +f 775/1186/168 774/1187/168 772/1188/168 +f 768/1160/163 775/1189/163 769/1166/163 +f 766/1159/166 773/1190/166 772/1191/166 +f 767/1182/159 777/1175/159 773/1192/159 +f 769/1166/162 776/1193/162 770/1167/162 +f 768/1160/117 772/1191/117 774/1194/117 +f 794/1195/169 796/1196/169 798/1197/169 +f 782/1198/170 779/1199/170 780/1200/170 +f 781/1201/171 782/1198/171 780/1200/171 +f 793/1202/172 800/1203/172 792/1204/172 +f 790/1205/170 794/1195/170 788/1206/170 +f 782/1198/119 785/1207/119 784/1208/119 +f 779/1209/173 796/1196/173 795/1210/173 +f 780/1211/170 795/1210/170 790/1205/170 +f 785/1207/174 786/1212/174 784/1208/174 +f 801/1213/119 806/1214/119 807/1215/119 +f 788/1206/170 793/1202/170 786/1212/170 +f 786/1212/175 789/1216/175 788/1206/175 +f 787/1217/170 785/1218/170 781/1219/170 +f 779/1199/176 801/1213/176 797/1220/176 +f 789/1216/117 790/1205/117 788/1206/117 +f 793/1202/177 798/1197/177 799/1221/177 +f 782/1198/170 792/1204/170 778/1222/170 +f 791/1223/178 780/1211/178 790/1205/178 +f 784/1208/170 793/1202/170 792/1204/170 +f 792/1204/179 801/1213/179 778/1222/179 +f 804/1224/180 802/1225/180 807/1226/180 +f 798/1197/175 805/1227/175 799/1221/175 +f 796/1196/178 803/1228/178 802/1229/178 +f 797/1220/171 807/1215/171 803/1230/171 +f 799/1221/174 806/1214/174 800/1203/174 +f 798/1197/117 802/1229/117 804/1231/117 +f 638/1013/181 630/1002/181 634/1003/181 +f 643/965/125 631/964/125 641/1232/125 +f 478/762/117 542/925/117 546/763/117 +f 530/765/118 546/899/118 549/766/118 +f 549/768/119 545/854/119 529/769/119 +f 534/771/118 548/1233/118 551/772/118 +f 491/774/118 495/794/118 496/775/118 +f 488/777/120 489/809/120 490/778/120 +f 485/780/121 487/779/121 490/778/121 +f 484/782/118 489/809/118 488/777/118 +f 510/784/122 514/834/122 513/785/122 +f 509/787/123 512/825/123 511/788/123 +f 494/790/121 498/793/121 497/791/121 +f 498/793/124 496/775/124 495/794/124 +f 492/795/118 501/814/118 499/796/118 +f 486/798/121 500/808/121 502/799/121 +f 483/801/118 503/820/118 505/802/118 +f 493/804/121 506/807/121 504/805/121 +f 505/802/117 503/820/117 504/805/117 +f 499/796/119 501/814/119 502/799/119 +f 499/796/125 500/808/125 490/778/125 +f 498/813/126 502/799/126 501/814/126 +f 495/794/127 505/802/127 506/807/127 +f 488/777/128 487/779/128 504/805/128 +f 507/822/129 515/826/129 516/823/129 +f 508/827/132 518/833/132 519/828/132 +f 510/830/132 517/1234/132 521/831/132 +f 475/835/124 522/839/124 525/836/124 +f 476/838/117 523/841/117 522/839/117 +f 477/840/120 524/843/120 523/841/120 +f 482/842/119 525/1235/119 524/843/119 +f 526/844/117 544/926/117 548/845/117 +f 547/847/119 543/853/119 481/848/119 +f 550/850/118 547/900/118 533/851/118 +f 546/763/120 542/925/120 543/853/120 +f 548/845/120 544/926/120 545/854/120 +f 538/855/118 552/893/118 553/856/118 +f 540/858/118 554/895/118 555/859/118 +f 557/861/119 561/903/119 532/862/119 +f 561/864/118 564/883/118 538/865/118 +f 541/867/118 565/885/118 562/868/118 +f 559/870/119 563/1236/119 536/871/119 +f 531/873/117 560/902/117 556/874/117 +f 563/876/118 560/1237/118 531/877/118 +f 535/879/117 562/901/117 558/880/117 +f 552/888/126 564/883/126 572/889/126 +f 553/856/125 569/894/125 566/891/125 +f 555/859/127 571/898/127 573/892/127 +f 552/893/119 568/905/119 569/894/119 +f 554/895/128 551/772/128 567/896/128 +f 554/895/117 570/897/117 571/898/117 +f 547/900/120 550/850/120 566/891/120 +f 566/891/120 567/896/120 549/766/120 +f 567/896/120 551/772/120 548/1233/120 +f 549/766/120 567/896/120 548/1233/120 +f 549/766/120 546/899/120 566/891/120 +f 562/901/124 563/1236/124 559/870/124 +f 557/861/124 556/874/124 560/902/124 +f 561/864/124 560/1237/124 572/889/124 +f 560/1237/124 563/876/124 572/889/124 +f 563/876/124 562/868/124 573/892/124 +f 562/868/124 565/885/124 573/892/124 +f 573/892/124 572/889/124 563/876/124 +f 570/897/121 576/1238/121 577/904/121 +f 568/905/121 574/1239/121 575/906/121 +f 566/891/135 575/907/135 576/908/135 +f 572/889/136 573/892/136 577/909/136 +f 581/911/119 580/928/119 480/912/119 +f 527/914/117 583/927/117 582/915/117 +f 479/917/117 579/923/117 578/918/117 +f 585/920/119 584/924/119 528/921/119 +f 579/923/118 580/928/118 581/911/118 +f 582/915/118 583/927/118 584/924/118 +f 542/925/137 578/918/137 581/911/137 +f 544/926/137 582/915/137 585/920/137 +f 558/880/138 559/870/138 584/924/138 +f 580/928/138 579/923/138 556/874/138 +f 475/937/118 482/1240/118 477/840/118 +f 586/938/120 588/953/120 589/939/120 +f 588/941/118 590/1241/118 591/942/118 +f 589/946/119 591/1242/119 595/944/119 +f 595/944/119 594/947/119 587/945/119 +f 594/947/121 593/950/121 586/948/121 +f 593/950/124 594/947/124 595/944/124 +f 591/942/138 590/1241/138 592/951/138 +f 588/953/117 586/938/117 592/951/117 +f 586/938/117 593/950/117 592/951/117 +f 628/954/117 635/1012/117 632/955/117 +f 635/957/139 639/1009/139 638/958/139 +f 598/960/140 599/1243/140 601/961/140 +f 615/966/118 596/999/118 617/967/118 +f 601/961/142 603/1244/142 602/969/142 +f 622/970/120 625/980/120 624/971/120 +f 618/973/143 616/1245/143 597/974/143 +f 603/976/144 605/1246/144 604/977/144 +f 620/979/117 627/986/117 625/980/117 +f 617/981/124 596/999/124 597/974/124 +f 604/977/145 605/1246/145 607/983/145 +f 621/985/124 626/992/124 627/986/124 +f 632/955/118 635/1012/118 634/987/118 +f 606/984/146 607/983/146 609/989/146 +f 623/991/119 624/1247/119 626/992/119 +f 614/975/120 615/966/120 619/993/120 +f 609/989/147 611/1000/147 610/995/147 +f 603/998/119 601/1248/119 611/1249/119 +f 601/1248/119 599/1250/119 611/1249/119 +f 599/1250/119 613/1251/119 611/1249/119 +f 611/1249/119 609/1252/119 603/998/119 +f 609/1252/119 607/996/119 603/998/119 +f 596/999/117 615/966/117 614/975/117 +f 611/1000/148 613/1004/148 612/1001/148 +f 630/1002/121 628/954/121 629/956/121 +f 631/964/149 633/963/149 634/1003/149 +f 613/1004/150 599/1243/150 598/960/150 +f 612/1007/117 598/1253/117 600/1254/117 +f 600/1254/117 602/1255/117 604/1005/117 +f 604/1005/117 606/1256/117 608/1006/117 +f 608/1006/117 610/1257/117 612/1007/117 +f 612/1007/117 600/1254/117 604/1005/117 +f 636/1008/124 638/958/124 639/1009/124 +f 628/954/121 630/1002/121 636/1011/121 +f 628/954/117 637/1010/117 639/1009/117 +f 640/1015/120 642/1019/120 643/1016/120 +f 632/1018/151 633/1258/151 643/1016/151 +f 629/956/121 640/1015/121 641/1020/121 +f 629/956/117 632/955/117 642/1019/117 +f 646/1021/119 647/1030/119 644/1022/119 +f 662/1024/118 663/1047/118 660/1025/118 +f 645/1023/124 644/1022/124 650/1027/124 +f 646/1021/120 649/1259/120 648/1029/120 +f 645/1023/152 651/1260/152 649/1031/152 +f 647/1030/118 648/1261/118 650/1032/118 +f 658/1033/118 659/1037/118 656/1034/118 +f 654/1036/120 656/1043/120 659/1037/120 +f 653/1039/124 658/1033/124 657/1040/124 +f 655/1038/119 659/1037/119 658/1033/119 +f 652/1042/117 657/1262/117 656/1043/117 +f 664/1044/121 667/1051/121 666/1045/121 +f 666/1045/119 667/1051/119 663/1047/119 +f 664/1048/117 665/1263/117 661/1049/117 +f 667/1051/120 664/1048/120 660/1050/120 +f 661/1052/124 665/1264/124 666/1045/124 +f 674/1053/117 678/1265/117 676/1054/117 +f 670/1056/117 674/1053/117 672/1055/117 +f 671/1058/121 675/1062/121 674/1059/121 +f 671/1058/119 669/1063/119 673/1061/119 +f 668/1057/153 672/1055/153 673/1061/153 +f 676/1054/124 678/1266/124 679/1064/124 +f 675/1062/154 679/1067/154 678/1066/154 +f 675/1062/119 673/1061/119 677/1065/119 +f 672/1055/153 676/1054/153 677/1065/153 +f 686/1068/117 684/1072/117 688/1069/117 +f 682/1071/117 680/1078/117 684/1072/117 +f 682/1071/121 686/1068/121 687/1073/121 +f 683/1075/119 687/1082/119 685/1076/119 +f 681/1077/155 685/1076/155 684/1072/155 +f 688/1069/120 689/1083/120 691/1079/120 +f 686/1068/156 690/1070/156 691/1081/156 +f 687/1082/119 691/1267/119 689/1083/119 +f 684/1072/155 685/1076/155 689/1083/155 +f 692/1084/140 693/1103/140 695/1085/140 +f 694/1086/142 695/1085/142 697/1087/142 +f 697/1089/144 699/1092/144 698/1090/144 +f 699/1092/145 701/1094/145 700/1093/145 +f 701/1094/146 703/1096/146 702/1095/146 +f 703/1096/147 705/1101/147 704/1097/147 +f 697/1099/119 695/1268/119 705/1100/119 +f 695/1268/119 693/1269/119 705/1100/119 +f 693/1269/119 707/1270/119 705/1100/119 +f 705/1100/119 703/1271/119 701/1272/119 +f 701/1272/119 699/1098/119 705/1100/119 +f 705/1101/148 707/1273/148 706/1102/148 +f 706/1102/150 707/1273/150 693/1103/150 +f 706/1104/117 692/1274/117 694/1105/117 +f 694/1105/117 696/1275/117 698/1106/117 +f 698/1106/117 700/1276/117 702/1277/117 +f 702/1277/117 704/1278/117 698/1106/117 +f 704/1278/117 706/1104/117 698/1106/117 +f 714/1107/124 715/1111/124 712/1108/124 +f 710/1110/118 712/1108/118 715/1111/118 +f 709/1113/121 714/1107/121 713/1109/121 +f 711/1115/119 715/1111/119 714/1107/119 +f 708/1117/117 713/1109/117 712/1108/117 +f 731/1119/137 728/1136/137 736/1120/137 +f 725/1122/117 733/1146/117 732/1123/117 +f 723/1125/119 731/1119/119 730/1126/119 +f 720/1128/117 729/1137/117 728/1129/117 +f 719/1131/119 727/1139/119 726/1132/119 +f 716/1134/117 725/1122/117 724/1124/117 +f 723/1125/120 722/1279/120 728/1136/120 +f 721/1127/124 730/1126/124 729/1137/124 +f 719/1131/120 718/1280/120 724/1138/120 +f 717/1133/124 726/1132/124 725/1122/124 +f 737/1140/117 745/1152/117 744/1141/117 +f 739/1121/119 747/1155/119 746/1143/119 +f 729/1137/136 730/1126/136 738/1144/136 +f 724/1138/137 732/1156/137 735/1145/137 +f 726/1132/136 734/1147/136 733/1146/136 +f 730/1126/119 731/1119/119 739/1121/119 +f 729/1137/117 737/1140/117 736/1142/117 +f 726/1132/119 727/1139/119 735/1145/119 +f 742/1148/118 743/1281/118 740/1149/118 +f 746/1143/118 747/1282/118 744/1151/118 +f 735/1145/119 743/1157/119 742/1148/119 +f 733/1146/117 741/1150/117 740/1153/117 +f 739/1121/120 736/1120/120 744/1154/120 +f 738/1144/124 746/1143/124 745/1152/124 +f 732/1156/120 740/1283/120 743/1157/120 +f 734/1147/124 742/1148/124 741/1150/124 +f 764/1158/157 765/1169/157 766/1159/157 +f 752/1161/158 748/1184/158 749/1162/158 +f 750/1163/159 751/1284/159 753/1164/159 +f 762/1165/160 763/1177/160 769/1166/160 +f 758/1168/158 760/1172/158 765/1169/158 +f 753/1164/119 755/1285/119 754/1170/119 +f 749/1171/161 767/1286/161 766/1159/161 +f 760/1172/158 750/1185/158 749/1171/158 +f 754/1170/162 755/1285/162 757/1173/162 +f 770/1167/119 776/1193/119 777/1175/119 +f 758/1168/158 764/1158/158 763/1177/158 +f 756/1174/163 757/1173/163 759/1178/163 +f 755/1181/158 753/1287/158 751/1179/158 +f 751/1179/158 761/1288/158 759/1180/158 +f 759/1180/158 757/1289/158 755/1181/158 +f 749/1162/164 748/1184/164 771/1176/164 +f 758/1168/117 759/1178/117 761/1183/117 +f 763/1177/165 764/1158/165 768/1160/165 +f 752/1161/158 754/1170/158 762/1165/158 +f 761/1183/166 751/1290/166 750/1185/166 +f 754/1170/158 756/1174/158 763/1177/158 +f 762/1165/167 770/1167/167 771/1176/167 +f 772/1188/168 773/1291/168 775/1186/168 +f 773/1291/168 777/1292/168 775/1186/168 +f 777/1292/168 776/1293/168 775/1186/168 +f 768/1160/163 774/1194/163 775/1189/163 +f 766/1159/166 767/1286/166 773/1190/166 +f 767/1182/159 771/1176/159 777/1175/159 +f 769/1166/162 775/1189/162 776/1193/162 +f 768/1160/117 766/1159/117 772/1191/117 +f 794/1195/169 795/1210/169 796/1196/169 +f 782/1198/170 778/1222/170 779/1199/170 +f 781/1201/171 783/1294/171 782/1198/171 +f 793/1202/172 799/1221/172 800/1203/172 +f 790/1205/170 795/1210/170 794/1195/170 +f 782/1198/119 783/1294/119 785/1207/119 +f 779/1209/173 797/1295/173 796/1196/173 +f 780/1211/170 779/1209/170 795/1210/170 +f 785/1207/174 787/1296/174 786/1212/174 +f 801/1213/119 800/1203/119 806/1214/119 +f 788/1206/170 794/1195/170 793/1202/170 +f 786/1212/175 787/1296/175 789/1216/175 +f 785/1218/170 783/1297/170 781/1219/170 +f 781/1219/170 791/1298/170 789/1299/170 +f 789/1299/170 787/1217/170 781/1219/170 +f 779/1199/176 778/1222/176 801/1213/176 +f 789/1216/117 791/1223/117 790/1205/117 +f 793/1202/177 794/1195/177 798/1197/177 +f 782/1198/170 784/1208/170 792/1204/170 +f 791/1223/178 781/1300/178 780/1211/178 +f 784/1208/170 786/1212/170 793/1202/170 +f 792/1204/179 800/1203/179 801/1213/179 +f 802/1225/180 803/1301/180 807/1226/180 +f 807/1226/180 806/1302/180 805/1303/180 +f 805/1303/180 804/1224/180 807/1226/180 +f 798/1197/175 804/1231/175 805/1227/175 +f 796/1196/178 797/1295/178 803/1228/178 +f 797/1220/171 801/1213/171 807/1215/171 +f 799/1221/174 805/1227/174 806/1214/174 +f 798/1197/117 796/1196/117 802/1229/117 diff --git a/src/main/resources/assets/hbm/models/armor/wings_pheo.obj b/src/main/resources/assets/hbm/models/armor/wings_pheo.obj new file mode 100644 index 000000000..33db0a913 --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/wings_pheo.obj @@ -0,0 +1,3317 @@ +# Blender v2.79 (sub 0) OBJ File: 'wings_pheo.blend' +# www.blender.org +o Wings +v -1.000001 7.000000 -1.999999 +v -1.500001 9.500000 -2.871983 +v -1.000001 10.000000 -1.999999 +v -1.500001 7.500000 -2.871983 +v -2.500001 9.500000 -2.871983 +v -2.500001 7.500000 -2.871983 +v -3.000001 10.000000 -1.999999 +v -3.000001 7.000000 -1.999999 +v -4.250002 8.000000 -2.435999 +v -2.250001 9.000000 -2.435999 +v -2.250001 8.000000 -2.435999 +v -4.250002 9.000000 2.564001 +v -4.250002 9.000000 -2.435999 +v -4.250002 8.000000 2.564001 +v -2.250001 9.000000 2.564001 +v 1.499999 9.500000 -2.871983 +v 0.999999 7.000000 -1.999999 +v 0.999999 10.000000 -1.999999 +v 2.499999 9.500000 -2.871983 +v 1.499999 7.500000 -2.871983 +v 2.999999 10.000000 -1.999999 +v 2.499999 7.500000 -2.871983 +v 2.999999 7.000000 -1.999999 +v 2.249999 9.000000 -2.435999 +v 4.249998 8.000000 -2.435999 +v 2.249999 8.000000 -2.435999 +v 4.249998 9.000000 2.564001 +v 4.249998 9.000000 -2.435999 +v 2.249999 9.000000 2.564001 +v 4.249998 8.000000 2.564001 +v -0.000001 7.806561 4.193441 +v 1.306559 7.806560 5.500001 +v -0.000001 7.806560 6.806561 +v -0.923873 11.806561 6.423872 +v 0.923871 11.806561 6.423872 +v 0.923871 11.806560 4.576128 +v 0.499999 11.806561 6.000000 +v 0.499999 12.806560 5.000000 +v 0.499999 12.806561 6.000000 +v 0.499999 11.806560 5.000000 +v -0.500001 12.806560 5.000000 +v -0.500001 11.806560 5.000000 +v -0.500001 12.806561 6.000000 +v -0.500001 11.806561 6.000000 +v -0.000001 12.806560 4.193440 +v 1.306559 12.806561 5.500000 +v -0.000001 12.806561 6.806561 +v -0.923873 14.806561 6.423872 +v 0.923871 14.806561 6.423872 +v 0.923871 14.806560 4.576128 +v -0.000001 14.806561 6.207105 +v 0.707103 15.806561 5.500000 +v -0.000001 15.806561 6.207105 +v 0.707103 14.806561 5.500000 +v -0.000001 15.806560 4.792896 +v -0.000001 14.806560 4.792896 +v -0.707105 15.806561 5.500000 +v -0.707105 14.806561 5.500000 +v -1.847761 10.347760 3.000001 +v -2.613122 8.500000 3.000001 +v 2.613119 8.500000 3.000001 +v -0.923873 10.730448 4.000000 +v -1.306561 9.806560 4.000001 +v 1.306559 9.806560 4.000001 +v 0.499999 9.306560 5.000001 +v 0.499999 10.306560 4.000001 +v 0.499999 10.306560 5.000001 +v -0.500001 9.306560 4.000001 +v -0.500001 10.306560 5.000001 +v -0.500001 10.306560 4.000001 +v 0.499999 9.306560 4.000001 +v -0.500001 9.306560 5.000001 +v 2.968687 11.836898 6.270864 +v 6.098895 13.978768 7.567441 +v 3.579679 10.926658 6.523952 +v 6.251967 6.375392 8.713233 +v 8.254976 10.196560 9.542912 +v 5.029967 8.195904 8.207072 +v 6.634639 6.375392 7.789361 +v 10.330158 4.558351 9.320097 +v 6.634638 4.125135 7.789361 +v 6.251966 -0.375393 8.713233 +v 9.947486 1.441648 10.243969 +v 6.251966 1.874864 8.713233 +v 6.634638 -0.375393 7.789361 +v 8.637644 -4.196560 8.619026 +v 5.412654 -2.195904 7.283201 +v 2.585997 -5.836897 7.194737 +v 5.716205 -7.978768 8.491314 +v 3.196989 -4.926657 7.447825 +v 2.939134 0.924287 6.258625 +v 2.556446 2.308096 7.182497 +v 2.939134 2.308096 6.258625 +v 2.939134 5.075712 6.258625 +v 1.804975 6.195247 6.871233 +v 2.187662 6.195247 5.947361 +v 2.562766 -3.019072 6.373330 +v 1.256206 -3.019072 5.832129 +v 1.909486 -2.311968 6.102737 +v 1.718142 -3.726176 6.564673 +v 2.371422 -3.019072 6.835266 +v 4.869949 -9.239506 8.140786 +v 5.252637 -9.239506 7.216913 +v 5.632269 -10.090160 7.915361 +v 0.684719 8.434304 5.324817 +v 0.873023 9.284945 6.485217 +v 1.255711 9.284945 5.561329 +v 4.869951 15.239504 8.140785 +v 5.632288 16.090160 7.915360 +v 5.252639 15.239504 7.216912 +v 1.436191 7.314767 5.636081 +v 0.677775 7.874528 6.404337 +v 1.060463 7.874528 5.480449 +v 5.189886 9.411458 7.190929 +v 4.807215 9.411458 8.114800 +v 3.196991 10.926658 7.447824 +v 6.562463 12.718032 8.841857 +v 5.716207 13.978768 8.491313 +v 8.637662 10.196560 8.619024 +v 10.330160 7.675071 9.320096 +v 6.945151 12.718032 7.917968 +v 6.731838 3.000000 8.912017 +v 7.114526 3.000000 7.988129 +v 5.412654 8.195904 7.283201 +v 5.029965 -2.195904 8.207073 +v 5.189886 -3.411455 7.190929 +v 4.807213 -3.411455 8.114802 +v 1.937391 9.400594 6.926081 +v 3.807983 10.016402 7.700913 +v 2.585999 11.836898 7.194736 +v 2.968670 -5.836897 6.270865 +v 2.015005 -4.986256 6.958225 +v 2.567182 -4.163617 7.186962 +v 2.187662 -0.195248 5.947361 +v 2.556446 0.924287 7.182497 +v 2.939134 3.691904 6.258625 +v 2.556446 5.075712 7.182497 +v 1.826703 10.135602 5.797841 +v 2.320063 9.400594 6.002193 +v 6.634638 1.874864 7.789361 +v 3.502046 -3.340992 6.491794 +v 1.053502 -1.314768 6.559969 +v 3.119358 -3.340992 7.415681 +v 6.251966 4.125135 8.713233 +v 9.947486 4.558351 10.243969 +v 9.947486 7.675071 10.243968 +v 10.330158 1.441648 9.320097 +v 10.330158 -1.675072 9.320097 +v 2.949870 -4.163617 6.263073 +v 4.190670 -4.016400 6.777025 +v 3.579662 -4.926657 6.523953 +v 4.190670 10.016402 6.777025 +v 2.430751 8.665586 7.130433 +v 2.813423 8.665586 6.206561 +v 8.254972 -4.196560 9.542913 +v 9.947486 -1.675072 10.243969 +v 6.562461 -6.718033 8.841858 +v 6.945133 -6.718033 7.917969 +v 6.098877 -7.978768 7.567441 +v 3.807982 -4.016400 7.700913 +v 1.060446 -1.874544 5.480449 +v 2.397678 -4.986256 6.034353 +v 0.677774 -1.874529 6.404337 +v 1.436190 -1.314768 5.636081 +v 1.718142 -2.311968 6.564673 +v 1.064862 -3.019072 6.294081 +v 1.444015 10.135602 6.721713 +v 0.302047 8.434306 6.248705 +v 1.690255 8.637570 5.741329 +v 2.124815 7.990175 5.921329 +v 1.742127 7.990175 6.845201 +v 1.307583 8.637570 6.665201 +v 1.053503 7.314767 6.559969 +v -6.098897 13.978770 7.567441 +v -2.968689 11.836898 6.270864 +v -3.579681 10.926658 6.523952 +v -8.254976 10.196562 9.542912 +v -6.251969 6.375392 8.713233 +v -5.029969 8.195904 8.207072 +v -10.330162 4.558351 9.320097 +v -6.634641 6.375392 7.789361 +v -6.634642 4.125135 7.789361 +v -9.947490 1.441648 10.243969 +v -6.251970 -0.375393 8.713233 +v -6.251970 1.874864 8.713233 +v -8.637651 -4.196560 8.619026 +v -6.634642 -0.375393 7.789361 +v -5.412658 -2.195904 7.283201 +v -5.716211 -7.978768 8.491314 +v -2.586003 -5.836897 7.194737 +v -3.196995 -4.926657 7.447825 +v -2.556450 2.308096 7.182497 +v -2.939138 0.924287 6.258625 +v -2.939138 2.308096 6.258625 +v -1.804977 6.195247 6.871233 +v -2.939138 5.075712 6.258625 +v -2.187666 6.195247 5.947361 +v -2.562770 -3.019072 6.373330 +v -1.256210 -3.019072 5.832129 +v -1.909490 -3.726176 6.102737 +v -1.718146 -3.726176 6.564673 +v -2.371426 -3.019072 6.835266 +v -4.869955 -9.239506 8.140786 +v -5.632275 -10.090160 7.915361 +v -5.252643 -9.239506 7.216913 +v -0.873025 9.284945 6.485217 +v -0.684721 8.434304 5.324817 +v -1.255713 9.284945 5.561329 +v -4.869953 15.239504 8.140785 +v -5.252641 15.239504 7.216912 +v -5.632288 16.090160 7.915360 +v -0.677777 7.874528 6.404337 +v -1.436193 7.314767 5.636081 +v -1.060465 7.874528 5.480449 +v -5.189890 9.411458 7.190929 +v -5.412658 8.195904 7.283201 +v -3.196993 10.926658 7.447824 +v -6.562465 12.718034 8.841857 +v -3.807986 10.016402 7.700913 +v -4.807217 9.411458 8.114800 +v -8.637666 10.196562 8.619024 +v -6.945153 12.718034 7.917968 +v -4.190674 10.016402 6.777025 +v -6.731842 3.000000 8.912017 +v -6.251970 4.125135 8.713233 +v -5.189890 -3.411455 7.190929 +v -5.029971 -2.195904 8.207073 +v -4.807219 -3.411455 8.114802 +v -1.937393 9.400594 6.926081 +v -2.430753 8.665586 7.130433 +v -2.968674 -5.836897 6.270865 +v -2.015011 -4.986256 6.958225 +v -2.567186 -4.163617 7.186962 +v -2.187666 -0.195248 5.947361 +v -2.556450 0.924287 7.182497 +v -2.939138 3.691904 6.258625 +v -2.556450 5.075712 7.182497 +v -1.826705 10.135602 5.797841 +v -2.320065 9.400594 6.002193 +v -6.634642 1.874864 7.789361 +v -1.053506 -1.314768 6.559969 +v -3.502050 -3.340992 6.491794 +v -3.119362 -3.340992 7.415681 +v -2.556450 3.691904 7.182497 +v -1.804978 -0.195248 6.871233 +v -9.947490 4.558351 10.243969 +v -10.330162 1.441648 9.320097 +v -7.114530 3.000000 7.988129 +v -2.949874 -4.163617 6.263073 +v -4.190674 -4.016400 6.777025 +v -2.813426 8.665586 6.206561 +v -8.254980 -4.196560 9.542913 +v -6.562467 -6.718033 8.841858 +v -3.807986 -4.016400 7.700913 +v -3.579666 -4.926657 6.523953 +v -6.945139 -6.718033 7.917969 +v -1.060450 -1.874544 5.480449 +v -1.436194 -1.314768 5.636081 +v -2.397682 -4.986256 6.034353 +v -0.677778 -1.874529 6.404337 +v -6.098883 -7.978768 7.567441 +v -1.909490 -2.311968 6.102737 +v -1.064866 -3.019072 6.294081 +v -1.718146 -2.311968 6.564673 +v -1.444017 10.135602 6.721713 +v -2.586001 11.836898 7.194736 +v -5.716209 13.978770 8.491313 +v -0.302049 8.434306 6.248705 +v -1.690257 8.637570 5.741329 +v -2.124817 7.990175 5.921329 +v -1.307585 8.637570 6.665201 +v -1.742129 7.990175 6.845201 +v -1.053505 7.314767 6.559969 +v 0.947598 -0.526720 7.057297 +v 1.609230 0.173919 6.790161 +v 1.712958 -0.526720 5.209537 +v 2.442462 -1.702288 7.676481 +v 2.163518 -2.402912 7.019745 +v 2.546206 -2.402912 6.095873 +v 3.109726 -2.694577 7.411682 +v 4.035453 -1.885552 6.712738 +v 3.652766 -1.885552 7.636610 +v 3.492398 -2.694577 6.487793 +v 3.288014 -1.297776 6.403137 +v 2.905326 -1.297776 7.327009 +v 2.744974 -2.106800 6.178209 +v 2.362286 -2.106800 7.102081 +v 2.771630 3.000000 5.648049 +v 2.197614 2.133968 7.033873 +v 2.197614 3.866031 7.033873 +v 3.854030 3.000000 8.261185 +v 4.045374 2.133968 7.799233 +v 4.428046 2.133968 6.875361 +v 4.969246 2.500000 8.181921 +v 5.351934 3.500000 7.258049 +v 4.969246 3.500000 8.181921 +v 5.351934 2.500000 7.258049 +v 4.428062 3.500000 6.875361 +v 4.045374 2.500000 7.799233 +v 4.045374 3.500000 7.799233 +v 4.428062 2.500000 6.875361 +v 1.712959 6.526705 5.209537 +v 1.609231 5.826080 6.790161 +v 0.668655 7.227344 6.400561 +v 2.442463 7.702287 7.676497 +v 3.104095 7.001647 7.409345 +v 3.486783 7.001647 6.485473 +v 3.109727 8.694576 7.411681 +v 4.035455 7.885551 6.712737 +v 3.492399 8.694576 6.487793 +v 2.744975 8.106786 6.178209 +v 2.362287 8.106786 7.102081 +v 3.652766 7.885551 7.636609 +v 3.288015 7.297775 6.403137 +v 2.905327 7.297775 7.327025 +v -0.668658 -1.227345 6.400561 +v -1.051330 -1.227345 5.476674 +v -1.712962 -0.526720 5.209537 +v -3.104098 -1.001648 7.409346 +v -3.486786 -1.001648 6.485474 +v -2.546210 -2.402912 6.095873 +v -4.035459 -1.885552 6.712738 +v -3.109730 -2.694577 7.411682 +v -3.652770 -1.885552 7.636610 +v -3.288018 -1.297776 6.403137 +v -3.492402 -2.694577 6.487793 +v -2.905330 -1.297776 7.327009 +v -2.362290 -2.106800 7.102081 +v -2.744978 -2.106800 6.178209 +v -2.197618 3.866031 7.033873 +v -2.197618 2.133968 7.033873 +v -2.771634 3.000000 5.648049 +v -3.854034 3.000000 8.261185 +v -4.045378 3.866031 7.799233 +v -4.428066 3.866031 6.875361 +v -5.351938 3.500000 7.258049 +v -4.969250 2.500000 8.181921 +v -4.969250 3.500000 8.181921 +v -4.428066 3.500000 6.875361 +v -5.351938 2.500000 7.258049 +v -4.045378 2.500000 7.799233 +v -4.045378 3.500000 7.799233 +v -4.428066 2.500000 6.875361 +v -0.668657 7.227344 6.400561 +v -1.609233 5.826080 6.790161 +v -1.712961 6.526705 5.209537 +v -2.442466 7.702287 7.676497 +v -2.163522 8.402912 7.019745 +v -2.546209 8.402912 6.095873 +v -3.109730 8.694576 7.411681 +v -4.035457 7.885551 6.712737 +v -3.652769 7.885551 7.636609 +v -2.744977 8.106786 6.178209 +v -3.492401 8.694576 6.487793 +v -2.362289 8.106786 7.102081 +v -2.905329 7.297775 7.327025 +v -3.288018 7.297775 6.403137 +v -2.250001 8.000000 2.564001 +v 2.249999 8.000000 2.564001 +v -1.306561 7.806560 5.500001 +v -0.923873 7.806561 4.576129 +v 0.923871 7.806561 4.576129 +v 0.923871 7.806560 6.423873 +v -0.923873 7.806560 6.423873 +v -0.000001 11.806560 4.193440 +v -0.923873 11.806560 4.576128 +v -1.306561 11.806561 5.500000 +v -0.000001 11.806561 6.806561 +v 1.306559 11.806561 5.500000 +v -1.306561 12.806561 5.500000 +v -0.923873 12.806560 4.576128 +v 0.923871 12.806560 4.576128 +v 0.923871 12.806561 6.423872 +v -0.923873 12.806561 6.423872 +v -0.000001 14.806560 4.193440 +v -0.923873 14.806560 4.576128 +v -1.306561 14.806561 5.500000 +v -0.000001 14.806561 6.806561 +v 1.306559 14.806561 5.500000 +v -1.847761 6.652241 3.000001 +v -0.000002 5.886881 3.000001 +v 1.847759 6.652241 3.000001 +v 1.847759 10.347760 3.000001 +v -0.000001 11.113120 3.000001 +v -0.923873 8.882688 4.000001 +v -0.000001 8.500000 4.000001 +v 0.923871 8.882688 4.000001 +v 0.923871 10.730448 4.000000 +v -0.000001 11.113120 4.000000 +v 1.909486 -3.726176 6.102737 +v 2.556446 3.691904 7.182497 +v 1.804974 -0.195248 6.871233 +v -9.947490 7.675071 10.243968 +v -10.330160 7.675071 9.320096 +v -9.947490 -1.675072 10.243969 +v -10.330162 -1.675072 9.320097 +v 1.991918 0.173919 5.866273 +v 1.051326 -1.227345 5.476674 +v 0.668654 -1.227345 6.400561 +v 3.207838 -1.702288 5.828737 +v 3.486782 -1.001648 6.485474 +v 3.104094 -1.001648 7.409346 +v 2.580302 3.866031 6.109985 +v 2.580302 2.133968 6.109985 +v 2.006270 3.000000 7.495809 +v 4.619390 3.000000 6.413425 +v 4.428062 3.866031 6.875361 +v 4.045374 3.866031 7.799233 +v 1.051343 7.227344 5.476673 +v 1.991919 5.826080 5.866273 +v 0.947598 6.526704 7.057297 +v 3.207839 7.702287 5.828737 +v 2.546206 8.402912 6.095873 +v 2.163519 8.402912 7.019745 +v -1.991922 0.173919 5.866273 +v -1.609234 0.173919 6.790161 +v -0.947602 -0.526720 7.057297 +v -3.207842 -1.702288 5.828737 +v -2.163522 -2.402912 7.019745 +v -2.442466 -1.702288 7.676481 +v -2.580305 3.866031 6.109985 +v -2.006274 3.000000 7.495809 +v -2.580306 2.133968 6.109985 +v -4.619394 3.000000 6.413425 +v -4.428050 2.133968 6.875361 +v -4.045378 2.133968 7.799233 +v -1.051345 7.227344 5.476673 +v -0.947602 6.526704 7.057297 +v -1.991921 5.826080 5.866273 +v -3.207841 7.702287 5.828737 +v -3.486785 7.001647 6.485473 +v -3.104097 7.001647 7.409345 +v -1.847761 6.652241 2.000001 +v -0.000002 5.886881 2.000001 +v -2.613122 8.500000 2.000001 +v -1.847761 10.347760 2.000001 +v -0.000001 11.113120 2.000001 +v 1.847759 10.347760 2.000001 +v 2.613119 8.500000 2.000001 +v 1.847759 6.652241 2.000001 +v -0.923873 8.882688 3.000001 +v -0.000001 8.500000 3.000001 +v -1.306561 9.806560 3.000001 +v -0.923873 10.730448 3.000001 +v -0.000001 11.113120 3.000001 +v 0.923871 10.730448 3.000001 +v 1.306559 9.806560 3.000001 +v 0.923871 8.882688 3.000001 +v 6.537359 14.741792 8.290257 +v 9.252560 10.696720 9.414928 +v 11.062702 4.666671 10.164721 +v 11.062702 1.333328 10.164721 +v 9.252556 -4.696721 9.414930 +v 6.537341 -8.741791 8.290257 +v 7.442415 13.393440 8.665153 +v 11.062704 8.000000 10.164720 +v 11.062702 -2.000000 10.164721 +v 7.442413 -7.393441 8.665138 +v -6.537361 14.741794 8.290257 +v -9.252560 10.696722 9.414928 +v -11.062706 4.666671 10.164721 +v -11.062706 1.333328 10.164721 +v -9.252563 -4.696721 9.414930 +v -6.537347 -8.741791 8.290257 +v -7.442417 13.393442 8.665153 +v -7.442419 -7.393441 8.665138 +v -1.195137 7.667616 5.387409 +v -0.468273 8.741538 6.074385 +v -1.169633 8.741536 5.361569 +v -1.240850 6.651344 5.432513 +v -0.493777 7.667615 6.100209 +v -1.375057 5.652399 5.556401 +v -0.539617 6.649616 6.145441 +v -1.629602 4.703504 5.769841 +v -0.675570 5.638912 6.270913 +v -2.072769 3.908464 6.082657 +v -0.940114 4.656047 6.492593 +v -2.704066 3.519151 6.399441 +v -1.438914 3.769903 6.843601 +v -3.613330 3.416544 6.725329 +v -2.342530 3.242431 7.289793 +v -0.482385 7.654545 4.686113 +v -0.456833 8.741536 4.660209 +v -0.532866 6.535551 4.735857 +v -0.685538 5.402399 4.876657 +v -0.991506 4.271200 5.132721 +v -1.589794 3.210943 5.553329 +v -2.681298 2.567119 6.094305 +v 0.244527 8.741536 5.373025 +v 0.218975 7.654545 5.398913 +v 0.168366 6.533840 5.448769 +v 0.013950 5.388912 5.591168 +v -0.302018 4.223743 5.855457 +v -0.955938 3.072368 6.314273 +v -2.319778 2.290399 6.984657 +v -3.783682 2.461712 6.481857 +v -3.390242 3.138496 7.659633 +v 0.468271 8.741538 6.074385 +v 1.195135 7.667616 5.387409 +v 1.169631 8.741536 5.361569 +v 0.493775 7.667615 6.100209 +v 1.240846 6.651344 5.432513 +v 0.539615 6.649616 6.145441 +v 1.375055 5.652399 5.556401 +v 0.675566 5.638912 6.270913 +v 1.629598 4.703504 5.769841 +v 0.940110 4.656047 6.492593 +v 2.072767 3.908464 6.082657 +v 1.438910 3.769903 6.843601 +v 2.704062 3.519151 6.399441 +v 2.342526 3.242431 7.289793 +v 3.613326 3.416544 6.725329 +v 0.482383 7.654545 4.686113 +v 0.456831 8.741536 4.660209 +v 0.532862 6.535551 4.735857 +v 0.685534 5.402399 4.876657 +v 0.991502 4.271200 5.132721 +v 1.589790 3.210943 5.553329 +v 2.681294 2.567119 6.094305 +v 3.783678 2.461712 6.481857 +v -0.244529 8.741536 5.373025 +v -0.218977 7.654545 5.398913 +v -0.168370 6.533840 5.448769 +v -0.013954 5.388912 5.591168 +v 0.302014 4.223743 5.855457 +v 0.955934 3.072368 6.314273 +v 2.319774 2.290399 6.984657 +v 3.560606 2.183679 7.416161 +v 3.390238 3.138496 7.659633 +v -0.505554 -0.537121 6.181089 +v -1.705058 -1.282032 5.659217 +v -1.104546 -0.404991 5.391313 +v -2.224898 -0.603264 6.177906 +v -1.741506 0.114113 5.961233 +v -1.142514 -0.018017 6.751025 +v -1.674466 -0.801440 6.988929 +v -0.514625 7.670944 6.227841 +v 0.244415 8.742066 5.578129 +v -0.519057 8.742066 6.223985 +v -0.509409 6.677375 6.233313 +v 0.248847 7.670944 5.582001 +v -0.501362 5.685087 6.245441 +v 0.254063 6.676303 5.587473 +v -0.495330 4.695344 6.269073 +v 0.262142 5.678976 5.599681 +v -0.502498 3.709648 6.307905 +v 0.268238 4.675792 5.623649 +v -0.534450 2.729952 6.364193 +v 0.260830 3.663521 5.663537 +v -0.624322 1.765793 6.450561 +v 0.227166 2.639488 5.722513 +v -0.802962 0.832912 6.573489 +v 0.129454 1.594095 5.816257 +v -0.076978 0.526655 5.957713 +v -1.160465 7.669631 5.464385 +v -1.164897 8.742066 5.460513 +v -1.155217 6.666704 5.469905 +v -1.141058 4.671455 5.505873 +v -1.147121 5.666320 5.482129 +v -1.148210 3.685520 5.544705 +v -1.179874 2.712591 5.600561 +v -1.267570 1.770368 5.684897 +v -1.436706 0.882721 5.801537 +v -0.401441 8.742064 4.814673 +v -0.397009 7.669617 4.818529 +v -0.391745 6.665632 4.824065 +v -0.383602 5.660208 4.836353 +v -0.377490 4.651888 4.860449 +v -0.384882 3.639393 4.900337 +v -0.418258 2.622112 4.958897 +v -0.513778 1.598673 5.050609 +v -0.710722 0.576463 5.185777 +v 0.505550 -0.537121 6.181089 +v 1.705054 -1.282032 5.659217 +v 1.154622 -1.480208 6.470242 +v 1.104542 -0.404991 5.391313 +v 2.224894 -0.603264 6.177906 +v 1.142510 -0.018017 6.751025 +v 1.741502 0.114113 5.961233 +v 1.674462 -0.801440 6.988929 +v -0.244417 8.742066 5.578129 +v 0.514623 7.670944 6.227841 +v 0.519055 8.742066 6.223985 +v -0.248849 7.670944 5.582001 +v 0.509407 6.677375 6.233313 +v -0.254065 6.676303 5.587473 +v 0.501358 5.685087 6.245441 +v -0.262146 5.678976 5.599681 +v 0.495326 4.695344 6.269073 +v -0.268242 4.675792 5.623649 +v 0.502494 3.709648 6.307905 +v -0.260834 3.663521 5.663537 +v 0.534446 2.729952 6.364193 +v -0.227170 2.639488 5.722513 +v 0.624318 1.765793 6.450561 +v -0.129458 1.594095 5.816257 +v 0.802958 0.832912 6.573489 +v 0.076974 0.526655 5.957713 +v 1.160463 7.669631 5.464385 +v 1.164895 8.742066 5.460513 +v 1.155215 6.666704 5.469905 +v 1.147119 5.666320 5.482129 +v 1.141054 4.671455 5.505873 +v 1.148206 3.685520 5.544705 +v 1.179870 2.712591 5.600561 +v 1.267566 1.770368 5.684897 +v 1.436702 0.882721 5.801537 +v 0.401439 8.742064 4.814673 +v 0.397007 7.669617 4.818529 +v 0.391742 6.665632 4.824065 +v 0.383598 5.660208 4.836353 +v 0.377486 4.651888 4.860449 +v 0.384878 3.639393 4.900337 +v 0.418254 2.622112 4.958897 +v 0.513774 1.598673 5.050609 +v 0.710718 0.576463 5.185777 +v -1.017601 7.507328 5.698993 +v -0.145233 8.325872 6.193137 +v -0.980033 8.325872 5.642577 +v -1.050081 7.273712 5.754129 +v -0.185457 7.484560 6.253057 +v -1.294898 6.929504 6.656577 +v -0.454322 6.898592 6.464321 +v -0.429473 8.325872 4.807777 +v -0.484961 7.262192 4.888929 +v -1.584402 6.546240 5.326433 +v -0.810002 6.513088 5.150961 +v 0.405327 8.325872 5.358337 +v 0.347199 7.239424 5.443009 +v -1.589825 6.083295 6.212801 +v -0.214242 6.137968 5.861153 +v -2.393745 6.626960 6.636497 +v -2.388321 7.089920 5.750129 +v -1.289473 7.392448 5.770209 +v -2.093393 7.936128 6.193905 +v -2.098817 7.473167 7.080273 +v 0.145231 8.325872 6.193137 +v 1.017599 7.507328 5.698993 +v 0.980031 8.325872 5.642577 +v 0.185455 7.484560 6.253057 +v 1.050079 7.273712 5.754129 +v 1.294894 6.929504 6.656577 +v 1.289471 7.392448 5.770209 +v 0.429471 8.325872 4.807777 +v 0.484958 7.262192 4.888929 +v 0.809998 6.513088 5.150961 +v 1.584398 6.546240 5.326433 +v -0.405329 8.325872 5.358337 +v -0.347201 7.239424 5.443009 +v 0.214238 6.137968 5.861153 +v 1.589823 6.083295 6.212801 +v 0.454319 6.898592 6.464321 +v 2.393743 6.626960 6.636497 +v 2.388319 7.089920 5.750129 +v 2.093390 7.936128 6.193905 +v -11.062704 8.000002 10.164720 +v -11.062706 -2.000000 10.164721 +v -3.560610 2.183679 7.416161 +v -1.154626 -1.480208 6.470242 +v 2.098814 7.473167 7.080273 +vt 0.081633 0.968750 +vt 0.061224 0.890625 +vt 0.081633 0.875000 +vt 0.061224 0.937500 +vt 0.040816 0.875000 +vt 0.061224 0.875000 +vt 0.020408 0.953125 +vt 0.000000 0.875000 +vt 0.020408 0.890625 +vt 0.051020 0.875000 +vt 0.020408 0.843750 +vt 0.061224 0.843750 +vt 0.051020 0.968750 +vt 0.020408 1.000000 +vt 0.030612 0.968750 +vt 0.306122 1.000000 +vt 0.346939 0.968750 +vt 0.346939 1.000000 +vt 0.204082 0.968750 +vt 0.306122 0.968750 +vt 0.204082 1.000000 +vt 0.163265 0.968750 +vt 0.102041 0.890625 +vt 0.081633 0.968750 +vt 0.081633 0.875000 +vt 0.142857 0.875000 +vt 0.122449 0.937500 +vt 0.122449 0.875000 +vt 0.163265 0.875000 +vt 0.142857 0.953125 +vt 0.142857 0.890625 +vt 0.102041 0.843750 +vt 0.132653 0.875000 +vt 0.112245 0.875000 +vt 0.142857 1.000000 +vt 0.112245 0.968750 +vt 0.132653 0.968750 +vt 0.346939 0.968750 +vt 0.306122 1.000000 +vt 0.346939 1.000000 +vt 0.204082 0.968750 +vt 0.306122 0.968750 +vt 0.163265 0.968750 +vt 0.204082 1.000000 +vt 0.030523 0.530020 +vt 0.000625 0.484238 +vt 0.030523 0.438455 +vt 0.113475 0.517055 +vt 0.070929 0.517055 +vt 0.070929 0.451907 +vt 0.040816 0.437500 +vt 0.020408 0.406250 +vt 0.040816 0.406250 +vt 0.020408 0.437500 +vt 0.000000 0.406250 +vt 0.081633 0.437500 +vt 0.061224 0.406250 +vt 0.081633 0.406250 +vt 0.061224 0.437500 +vt 0.091890 0.342876 +vt 0.061776 0.296763 +vt 0.091890 0.250649 +vt 0.009485 0.328368 +vt 0.009485 0.264376 +vt 0.051275 0.264376 +vt 0.000000 0.218750 +vt 0.020408 0.187500 +vt 0.020408 0.218750 +vt 0.020408 0.156250 +vt 0.040816 0.187500 +vt 0.061224 0.187500 +vt 0.040816 0.218750 +vt 0.040816 0.250000 +vt 0.086417 0.680290 +vt 0.101117 0.734630 +vt 0.000744 0.734630 +vt 0.174631 0.671136 +vt 0.183383 0.703490 +vt 0.123622 0.703490 +vt 0.265306 0.687500 +vt 0.285714 0.656250 +vt 0.285714 0.687500 +vt 0.244898 0.656250 +vt 0.224490 0.687500 +vt 0.224490 0.656250 +vt 0.204082 0.687500 +vt 0.204082 0.656250 +vt 0.265306 0.656250 +vt 0.244898 0.687500 +vt 0.946587 0.500188 +vt 0.941317 0.624978 +vt 0.923664 0.500188 +vt 0.539572 0.843634 +vt 0.502462 0.968567 +vt 0.493663 0.843600 +vt 0.742186 0.499995 +vt 0.705196 0.624993 +vt 0.696377 0.499995 +vt 0.742090 0.843256 +vt 0.705017 0.968226 +vt 0.696177 0.843256 +vt 0.537888 0.499994 +vt 0.500866 0.625038 +vt 0.492038 0.499995 +vt 0.949632 0.843767 +vt 0.944354 0.968723 +vt 0.926678 0.843767 +vt 0.715573 0.687680 +vt 0.687339 0.718286 +vt 0.687339 0.687680 +vt 0.513107 0.689383 +vt 0.484864 0.718633 +vt 0.484875 0.689362 +vt 0.591837 0.281250 +vt 0.612245 0.312500 +vt 0.591837 0.312500 +vt 0.632653 0.281250 +vt 0.612245 0.250000 +vt 0.632653 0.250000 +vt 0.999056 0.844873 +vt 0.979791 0.844873 +vt 0.989423 0.813856 +vt 0.410021 0.719079 +vt 0.421762 0.749826 +vt 0.403382 0.750314 +vt 0.366847 0.968784 +vt 0.357147 1.000021 +vt 0.347446 0.968784 +vt 0.456643 0.689340 +vt 0.442517 0.718601 +vt 0.442527 0.689330 +vt 0.469388 0.281250 +vt 0.448980 0.250000 +vt 0.469388 0.250000 +vt 0.424800 0.843549 +vt 0.438876 0.968520 +vt 0.407083 0.968496 +vt 0.470704 0.859810 +vt 0.809048 0.500188 +vt 0.846068 0.624978 +vt 0.782568 0.624978 +vt 0.877817 0.516393 +vt 0.909567 0.624978 +vt 0.469388 0.187500 +vt 0.489796 0.218750 +vt 0.469388 0.218750 +vt 0.835527 0.375399 +vt 0.854894 0.500188 +vt 0.448980 0.250000 +vt 0.469388 0.218750 +vt 0.469388 0.250000 +vt 0.433658 0.781075 +vt 0.447754 0.843566 +vt 0.366847 0.843838 +vt 0.999056 0.968942 +vt 0.979791 0.968943 +vt 0.943003 0.812528 +vt 0.922258 0.812528 +vt 0.511406 0.375197 +vt 0.483211 0.375197 +vt 0.715573 0.718286 +vt 0.715728 0.375305 +vt 0.687557 0.375305 +vt 0.513097 0.718654 +vt 0.933347 0.437793 +vt 0.914837 0.437793 +vt 0.631215 0.375306 +vt 0.650567 0.499995 +vt 0.604757 0.499996 +vt 0.510204 0.218750 +vt 0.571429 0.250000 +vt 0.510204 0.250000 +vt 0.630870 0.718285 +vt 0.650265 0.843256 +vt 0.604352 0.843256 +vt 0.448980 0.218750 +vt 0.367347 0.187500 +vt 0.448980 0.187500 +vt 0.659104 0.687679 +vt 0.630870 0.687679 +vt 0.367347 0.218750 +vt 0.448980 0.218750 +vt 0.641426 0.968226 +vt 0.577834 0.968226 +vt 0.673221 0.859484 +vt 0.641747 0.624993 +vt 0.578299 0.624993 +vt 0.673472 0.516187 +vt 0.427678 0.468795 +vt 0.446189 0.499995 +vt 0.423264 0.499995 +vt 0.489796 0.187500 +vt 0.571429 0.218750 +vt 0.838423 0.718810 +vt 0.857816 0.843767 +vt 0.811908 0.843767 +vt 0.489796 0.281250 +vt 0.530612 0.250000 +vt 0.530612 0.281250 +vt 0.866654 0.687571 +vt 0.838423 0.687571 +vt 0.367347 0.250000 +vt 0.448980 0.281250 +vt 0.367347 0.281250 +vt 0.848977 0.968723 +vt 0.785393 0.968723 +vt 0.880770 0.859993 +vt 0.912562 0.968723 +vt 0.437362 0.625038 +vt 0.405610 0.625038 +vt 0.469114 0.516200 +vt 0.489796 0.218750 +vt 0.489796 0.250000 +vt 0.489796 0.250000 +vt 0.440918 0.375197 +vt 0.448396 0.468795 +vt 0.367347 0.156250 +vt 0.387755 0.125000 +vt 0.387755 0.156250 +vt 0.979791 0.999960 +vt 0.909001 0.718810 +vt 0.901514 0.812528 +vt 0.894885 0.718810 +vt 0.448980 0.125000 +vt 0.400340 0.499995 +vt 0.373859 0.625038 +vt 0.406960 0.468795 +vt 0.903724 0.843767 +vt 0.894885 0.687571 +vt 0.632653 0.343750 +vt 0.612245 0.343750 +vt 0.632653 0.312500 +vt 0.653061 0.281250 +vt 0.653061 0.312500 +vt 0.900741 0.500188 +vt 0.896327 0.437793 +vt 0.415123 0.781061 +vt 0.401845 0.843531 +vt 0.375290 0.968472 +vt 0.428401 0.718591 +vt 0.428410 0.689319 +vt 0.428571 0.312500 +vt 0.408163 0.343750 +vt 0.408163 0.312500 +vt 0.910424 0.406596 +vt 0.894121 0.406596 +vt 0.551020 0.281250 +vt 0.551020 0.250000 +vt 0.387755 0.312500 +vt 0.438087 0.749838 +vt 0.452194 0.781089 +vt 0.347446 0.843838 +vt 0.366847 0.781365 +vt 0.454413 0.749850 +vt 0.920108 0.375398 +vt 0.906011 0.375398 +vt 0.571429 0.281250 +vt 0.571429 0.250000 +vt 0.891914 0.375398 +vt 0.387755 0.343750 +vt 0.367347 0.312500 +vt 0.941317 0.624978 +vt 0.946587 0.500188 +vt 0.923664 0.500188 +vt 0.502462 0.968567 +vt 0.539572 0.843634 +vt 0.493663 0.843600 +vt 0.705196 0.624993 +vt 0.742186 0.499995 +vt 0.696377 0.499995 +vt 0.705017 0.968226 +vt 0.742090 0.843256 +vt 0.696177 0.843256 +vt 0.500866 0.625038 +vt 0.537888 0.499994 +vt 0.492038 0.499995 +vt 0.944354 0.968723 +vt 0.949632 0.843767 +vt 0.926678 0.843767 +vt 0.687339 0.718286 +vt 0.715573 0.687680 +vt 0.687339 0.687680 +vt 0.484864 0.718633 +vt 0.513107 0.689383 +vt 0.484875 0.689362 +vt 0.591837 0.281250 +vt 0.612245 0.312500 +vt 0.612245 0.281250 +vt 0.612245 0.250000 +vt 0.632653 0.281250 +vt 0.632653 0.250000 +vt 0.999056 0.844873 +vt 0.989423 0.813856 +vt 0.979791 0.844873 +vt 0.421762 0.749826 +vt 0.410021 0.719079 +vt 0.403382 0.750314 +vt 0.366847 0.968784 +vt 0.347446 0.968784 +vt 0.357147 1.000021 +vt 0.442517 0.718601 +vt 0.456643 0.689340 +vt 0.442527 0.689330 +vt 0.469388 0.281250 +vt 0.448980 0.250000 +vt 0.448980 0.281250 +vt 0.424800 0.843549 +vt 0.438876 0.968520 +vt 0.447754 0.843566 +vt 0.470704 0.859810 +vt 0.809048 0.500188 +vt 0.846068 0.624978 +vt 0.854894 0.500188 +vt 0.909567 0.624978 +vt 0.900741 0.500188 +vt 0.877817 0.516393 +vt 0.469388 0.187500 +vt 0.489796 0.218750 +vt 0.489796 0.187500 +vt 0.835527 0.375399 +vt 0.863720 0.375399 +vt 0.469388 0.218750 +vt 0.448980 0.250000 +vt 0.469388 0.250000 +vt 0.433658 0.781075 +vt 0.452194 0.781089 +vt 0.347446 0.843838 +vt 0.979791 0.968943 +vt 0.943003 0.812528 +vt 0.922258 0.812528 +vt 0.511406 0.375197 +vt 0.483211 0.375197 +vt 0.715573 0.718286 +vt 0.715728 0.375305 +vt 0.687557 0.375305 +vt 0.513097 0.718654 +vt 0.933347 0.437793 +vt 0.914837 0.437793 +vt 0.631215 0.375306 +vt 0.650567 0.499995 +vt 0.659386 0.375306 +vt 0.571429 0.250000 +vt 0.510204 0.218750 +vt 0.510204 0.250000 +vt 0.630870 0.718285 +vt 0.650265 0.843256 +vt 0.659104 0.718285 +vt 0.448980 0.187500 +vt 0.367347 0.218750 +vt 0.448980 0.218750 +vt 0.659104 0.687679 +vt 0.630870 0.687679 +vt 0.448980 0.218750 +vt 0.367347 0.250000 +vt 0.604352 0.843256 +vt 0.641426 0.968226 +vt 0.673221 0.859484 +vt 0.604757 0.499996 +vt 0.641747 0.624993 +vt 0.673472 0.516187 +vt 0.427678 0.468795 +vt 0.446189 0.499995 +vt 0.448396 0.468795 +vt 0.571429 0.187500 +vt 0.838423 0.718810 +vt 0.857816 0.843767 +vt 0.866654 0.718810 +vt 0.530612 0.250000 +vt 0.489796 0.281250 +vt 0.530612 0.281250 +vt 0.866654 0.687571 +vt 0.838423 0.687571 +vt 0.367347 0.250000 +vt 0.367347 0.281250 +vt 0.811908 0.843767 +vt 0.848977 0.968723 +vt 0.912562 0.968723 +vt 0.903724 0.843767 +vt 0.880770 0.859993 +vt 0.423264 0.499995 +vt 0.437362 0.625038 +vt 0.469114 0.516200 +vt 0.489796 0.218750 +vt 0.489796 0.250000 +vt 0.469388 0.218750 +vt 0.489796 0.250000 +vt 0.440918 0.375197 +vt 0.455016 0.375197 +vt 0.387755 0.125000 +vt 0.367347 0.156250 +vt 0.387755 0.156250 +vt 0.999056 0.999960 +vt 0.999056 0.968942 +vt 0.901514 0.812528 +vt 0.909001 0.718810 +vt 0.894885 0.718810 +vt 0.448980 0.125000 +vt 0.400340 0.499995 +vt 0.405610 0.625038 +vt 0.406960 0.468795 +vt 0.894885 0.687571 +vt 0.909001 0.687571 +vt 0.612245 0.343750 +vt 0.632653 0.312500 +vt 0.653061 0.281250 +vt 0.653061 0.312500 +vt 0.896327 0.437793 +vt 0.415123 0.781061 +vt 0.401845 0.843531 +vt 0.407083 0.968496 +vt 0.428401 0.718591 +vt 0.428410 0.689319 +vt 0.408163 0.343750 +vt 0.428571 0.312500 +vt 0.408163 0.312500 +vt 0.910424 0.406596 +vt 0.894121 0.406596 +vt 0.551020 0.281250 +vt 0.387755 0.343750 +vt 0.438087 0.749838 +vt 0.454413 0.749850 +vt 0.366847 0.781365 +vt 0.347446 0.781365 +vt 0.456633 0.718612 +vt 0.920108 0.375398 +vt 0.906011 0.375398 +vt 0.571429 0.281250 +vt 0.551020 0.250000 +vt 0.891914 0.375398 +vt 0.367347 0.312500 +vt 0.387755 0.312500 +vt 0.041121 0.031229 +vt 0.051204 0.004486 +vt 0.081454 0.031229 +vt 0.000282 0.031347 +vt 0.010345 0.004658 +vt 0.030471 0.004658 +vt 0.183673 0.062500 +vt 0.163265 0.093750 +vt 0.163265 0.062500 +vt 0.183673 0.093750 +vt 0.163265 0.125000 +vt 0.163265 0.031250 +vt 0.142857 0.062500 +vt 0.204082 0.093750 +vt 0.204082 0.062500 +vt 0.081538 0.031290 +vt 0.051341 0.057986 +vt 0.051341 0.004593 +vt 0.000430 0.031293 +vt 0.010496 0.004596 +vt 0.030627 0.004596 +vt 0.163265 0.093750 +vt 0.183673 0.062500 +vt 0.183673 0.093750 +vt 0.163265 0.062500 +vt 0.183673 0.031250 +vt 0.163265 0.125000 +vt 0.183673 0.125000 +vt 0.204082 0.062500 +vt 0.142857 0.093750 +vt 0.142857 0.062500 +vt 0.030690 0.004335 +vt 0.030690 0.058109 +vt 0.000278 0.031222 +vt 0.040894 0.031222 +vt 0.051031 0.004335 +vt 0.071307 0.004335 +vt 0.183673 0.093750 +vt 0.163265 0.062500 +vt 0.183673 0.062500 +vt 0.183673 0.031250 +vt 0.183673 0.125000 +vt 0.163265 0.093750 +vt 0.204082 0.062500 +vt 0.142857 0.062500 +vt 0.142857 0.093750 +vt 0.051204 0.057972 +vt 0.071371 0.057972 +vt 0.081454 0.031229 +vt 0.010345 0.058036 +vt 0.030471 0.058036 +vt 0.030471 0.004658 +vt 0.163265 0.093750 +vt 0.183673 0.062500 +vt 0.163265 0.062500 +vt 0.163265 0.125000 +vt 0.183673 0.093750 +vt 0.163265 0.031250 +vt 0.183673 0.031250 +vt 0.142857 0.062500 +vt 0.142857 0.093750 +vt 0.204082 0.093750 +vt 0.051341 0.004593 +vt 0.051341 0.057986 +vt 0.081538 0.031290 +vt 0.000430 0.031293 +vt 0.010496 0.057989 +vt 0.030627 0.057989 +vt 0.183673 0.062500 +vt 0.163265 0.093750 +vt 0.183673 0.093750 +vt 0.183673 0.031250 +vt 0.163265 0.062500 +vt 0.163265 0.125000 +vt 0.183673 0.125000 +vt 0.204082 0.062500 +vt 0.142857 0.093750 +vt 0.142857 0.062500 +vt 0.000278 0.031222 +vt 0.030690 0.058109 +vt 0.030690 0.004335 +vt 0.040894 0.031222 +vt 0.051031 0.058109 +vt 0.071307 0.058109 +vt 0.183673 0.093750 +vt 0.163265 0.062500 +vt 0.163265 0.093750 +vt 0.183673 0.031250 +vt 0.183673 0.062500 +vt 0.183673 0.125000 +vt 0.163265 0.125000 +vt 0.204082 0.062500 +vt 0.142857 0.062500 +vt 0.061224 0.953125 +vt 0.040816 0.937500 +vt 0.000000 0.968750 +vt 0.030612 0.875000 +vt 0.061224 1.000000 +vt 0.163265 1.000000 +vt 0.102041 0.953125 +vt 0.142857 0.937500 +vt 0.163265 0.968750 +vt 0.142857 0.843750 +vt 0.102041 1.000000 +vt 0.163265 1.000000 +vt 0.060422 0.484238 +vt 0.051665 0.516611 +vt 0.009382 0.516611 +vt 0.009382 0.451865 +vt 0.051665 0.451865 +vt 0.092202 0.438414 +vt 0.113475 0.451907 +vt 0.122286 0.484481 +vt 0.092202 0.530548 +vt 0.062117 0.484481 +vt 0.000000 0.437500 +vt 0.122005 0.296763 +vt 0.113185 0.329370 +vt 0.070596 0.329370 +vt 0.070596 0.264156 +vt 0.113185 0.264156 +vt 0.059930 0.296372 +vt 0.051275 0.328368 +vt 0.030380 0.341621 +vt 0.000830 0.296372 +vt 0.030380 0.251124 +vt 0.000000 0.187500 +vt 0.040816 0.156250 +vt 0.061224 0.218750 +vt 0.020408 0.250000 +vt 0.086417 0.788970 +vt 0.050930 0.811478 +vt 0.015443 0.788970 +vt 0.015443 0.680290 +vt 0.050930 0.657782 +vt 0.174632 0.735843 +vt 0.153503 0.749244 +vt 0.132374 0.735843 +vt 0.132374 0.671136 +vt 0.153503 0.657735 +vt 0.973067 0.624978 +vt 0.566048 0.968615 +vt 0.768645 0.624993 +vt 0.768608 0.968226 +vt 0.564369 0.625038 +vt 0.976146 0.968723 +vt 0.612245 0.281250 +vt 0.456633 0.718612 +vt 0.863720 0.375399 +vt 0.659386 0.375306 +vt 0.571429 0.218750 +vt 0.659104 0.718285 +vt 0.367347 0.218750 +vt 0.367347 0.250000 +vt 0.571429 0.187500 +vt 0.866654 0.718810 +vt 0.455016 0.375197 +vt 0.367347 0.125000 +vt 0.999056 0.999960 +vt 0.448980 0.156250 +vt 0.909001 0.687571 +vt 0.428571 0.343750 +vt 0.347446 0.781365 +vt 0.926728 0.406596 +vt 0.367347 0.343750 +vt 0.973067 0.624978 +vt 0.566048 0.968615 +vt 0.768645 0.624993 +vt 0.768608 0.968226 +vt 0.564369 0.625038 +vt 0.976146 0.968723 +vt 0.591837 0.312500 +vt 0.469388 0.250000 +vt 0.782568 0.624978 +vt 0.366847 0.843838 +vt 0.571429 0.218750 +vt 0.367347 0.187500 +vt 0.367347 0.218750 +vt 0.577834 0.968226 +vt 0.578299 0.624993 +vt 0.571429 0.218750 +vt 0.785393 0.968723 +vt 0.367347 0.125000 +vt 0.979791 0.999960 +vt 0.448980 0.156250 +vt 0.373859 0.625038 +vt 0.632653 0.343750 +vt 0.375290 0.968472 +vt 0.428571 0.343750 +vt 0.926728 0.406596 +vt 0.571429 0.250000 +vt 0.367347 0.343750 +vt 0.071371 0.004485 +vt 0.071371 0.057972 +vt 0.051204 0.057972 +vt 0.040534 0.031347 +vt 0.030471 0.058036 +vt 0.010345 0.058036 +vt 0.183673 0.125000 +vt 0.183673 0.031250 +vt 0.142857 0.093750 +vt 0.071472 0.004593 +vt 0.071472 0.057986 +vt 0.041275 0.031290 +vt 0.040693 0.031293 +vt 0.030627 0.057989 +vt 0.010496 0.057989 +vt 0.163265 0.031250 +vt 0.204082 0.093750 +vt 0.010415 0.004335 +vt 0.040828 0.031222 +vt 0.010415 0.058109 +vt 0.081444 0.031222 +vt 0.071307 0.058109 +vt 0.051031 0.058109 +vt 0.163265 0.031250 +vt 0.163265 0.125000 +vt 0.204082 0.093750 +vt 0.071371 0.004485 +vt 0.051204 0.004486 +vt 0.041121 0.031229 +vt 0.040534 0.031347 +vt 0.010345 0.004658 +vt 0.000282 0.031347 +vt 0.183673 0.125000 +vt 0.204082 0.062500 +vt 0.071472 0.004593 +vt 0.041275 0.031290 +vt 0.071472 0.057986 +vt 0.040693 0.031293 +vt 0.030627 0.004596 +vt 0.010496 0.004596 +vt 0.163265 0.031250 +vt 0.204082 0.093750 +vt 0.010415 0.004335 +vt 0.010415 0.058109 +vt 0.040828 0.031222 +vt 0.081444 0.031222 +vt 0.071307 0.004335 +vt 0.051031 0.004335 +vt 0.163265 0.031250 +vt 0.204082 0.093750 +vt 0.142857 0.093750 +vt 0.163265 0.656250 +vt 0.142857 0.531250 +vt 0.163265 0.531250 +vt 0.142857 0.656250 +vt 0.122449 0.531250 +vt 0.122449 0.656250 +vt 0.102041 0.531250 +vt 0.102041 0.656250 +vt 0.081633 0.531250 +vt 0.081633 0.656250 +vt 0.061224 0.531250 +vt 0.061224 0.656250 +vt 0.040816 0.531250 +vt 0.040816 0.656250 +vt 0.020408 0.531250 +vt 0.020408 0.656250 +vt 0.000000 0.531250 +vt 0.163265 0.406250 +vt 0.142857 0.343750 +vt 0.163265 0.343750 +vt 0.142857 0.406250 +vt 0.122449 0.343750 +vt 0.122449 0.406250 +vt 0.102041 0.343750 +vt 0.102041 0.406250 +vt 0.081633 0.343750 +vt 0.081633 0.406250 +vt 0.061224 0.343750 +vt 0.061224 0.406250 +vt 0.040816 0.343750 +vt 0.040816 0.406250 +vt 0.020408 0.343750 +vt 0.020408 0.406250 +vt 0.000000 0.343750 +vt 0.163265 0.843750 +vt 0.122449 0.812500 +vt 0.163265 0.812500 +vt 0.122449 0.843750 +vt 0.081633 0.812500 +vt 0.081633 0.843750 +vt 0.040816 0.812500 +vt 0.040816 0.843750 +vt 0.000000 0.812500 +vt 0.326531 0.843750 +vt 0.285714 0.812500 +vt 0.326531 0.812500 +vt 0.285714 0.843750 +vt 0.244898 0.812500 +vt 0.244898 0.843750 +vt 0.204082 0.812500 +vt 0.204082 0.781250 +vt 0.183673 0.750000 +vt 0.204082 0.750000 +vt 0.183673 0.781250 +vt 0.163265 0.750000 +vt 0.163265 0.781250 +vt 0.142857 0.750000 +vt 0.142857 0.781250 +vt 0.122449 0.750000 +vt 0.285714 0.781250 +vt 0.265306 0.750000 +vt 0.285714 0.750000 +vt 0.265306 0.781250 +vt 0.244898 0.750000 +vt 0.244898 0.781250 +vt 0.224490 0.750000 +vt 0.224490 0.781250 +vt 0.945730 0.656044 +vt 0.504661 0.999805 +vt 0.707401 0.656092 +vt 0.707227 1.000056 +vt 0.503072 0.656263 +vt 0.948773 0.999731 +vt 0.436655 0.999754 +vt 0.402652 0.999729 +vt 0.843861 0.656044 +vt 0.775948 0.656044 +vt 0.639216 1.000056 +vt 0.571429 1.000000 +vt 0.639542 0.656092 +vt 0.571684 0.656092 +vt 0.846768 0.999731 +vt 0.775510 1.000000 +vt 0.435155 0.656264 +vt 0.401197 0.656264 +vt 0.367239 0.656264 +vt 0.914772 0.999731 +vt 0.367347 1.000000 +vt 0.911774 0.656044 +vt 0.945730 0.656044 +vt 0.504661 0.999805 +vt 0.707401 0.656092 +vt 0.707227 1.000056 +vt 0.503072 0.656263 +vt 0.948773 0.999731 +vt 0.436655 0.999754 +vt 0.843861 0.656044 +vt 0.639216 1.000056 +vt 0.639542 0.656092 +vt 0.846768 0.999731 +vt 0.435155 0.656264 +vt 0.401197 0.656264 +vt 0.914772 0.999731 +vt 0.402652 0.999729 +vt 0.911774 0.656044 +vt 0.000000 0.062500 +vt 0.020408 0.125000 +vt 0.000000 0.125000 +vt 0.020408 0.062500 +vt 0.040816 0.125000 +vt 0.040816 0.062500 +vt 0.061224 0.125000 +vt 0.061224 0.062500 +vt 0.081633 0.125000 +vt 0.081633 0.062500 +vt 0.102041 0.125000 +vt 0.122449 0.062500 +vt 0.122449 0.125000 +vt 0.000000 0.125000 +vt 0.020408 0.062500 +vt 0.020408 0.125000 +vt 0.040816 0.125000 +vt 0.040816 0.062500 +vt 0.061224 0.125000 +vt 0.061224 0.062500 +vt 0.081633 0.125000 +vt 0.081633 0.062500 +vt 0.102041 0.125000 +vt 0.122449 0.062500 +vt 0.122449 0.125000 +vt 0.122449 0.125000 +vt 0.102041 0.062500 +vt 0.122449 0.062500 +vt 0.102041 0.125000 +vt 0.081633 0.062500 +vt 0.081633 0.125000 +vt 0.061224 0.062500 +vt 0.061224 0.125000 +vt 0.040816 0.062500 +vt 0.040816 0.125000 +vt 0.020408 0.062500 +vt 0.000000 0.125000 +vt 0.000000 0.062500 +vt 0.020408 0.125000 +vt 0.000000 0.062500 +vt 0.000000 0.125000 +vt 0.040816 0.125000 +vt 0.020408 0.062500 +vt 0.061224 0.125000 +vt 0.040816 0.062500 +vt 0.081633 0.125000 +vt 0.061224 0.062500 +vt 0.102041 0.125000 +vt 0.081633 0.062500 +vt 0.122449 0.062500 +vt 0.102041 0.062500 +vt 0.000000 0.125000 +vt 0.020408 0.062500 +vt 0.000000 0.062500 +vt 0.040816 0.125000 +vt 0.020408 0.125000 +vt 0.061224 0.125000 +vt 0.040816 0.062500 +vt 0.081633 0.125000 +vt 0.061224 0.062500 +vt 0.102041 0.125000 +vt 0.081633 0.062500 +vt 0.122449 0.125000 +vt 0.102041 0.062500 +vt 0.122449 0.062500 +vt 0.102041 0.125000 +vt 0.122449 0.125000 +vt 0.081633 0.062500 +vt 0.102041 0.062500 +vt 0.061224 0.125000 +vt 0.081633 0.125000 +vt 0.040816 0.062500 +vt 0.061224 0.062500 +vt 0.020408 0.062500 +vt 0.040816 0.125000 +vt 0.000000 0.062500 +vt 0.020408 0.125000 +vt 0.448980 0.093750 +vt 0.469388 0.062500 +vt 0.469388 0.093750 +vt 0.428571 0.093750 +vt 0.448980 0.062500 +vt 0.408163 0.093750 +vt 0.428571 0.062500 +vt 0.387755 0.093750 +vt 0.408163 0.062500 +vt 0.367347 0.093750 +vt 0.387755 0.062500 +vt 0.346939 0.093750 +vt 0.367347 0.062500 +vt 0.326531 0.093750 +vt 0.346939 0.062500 +vt 0.448980 0.125000 +vt 0.469388 0.125000 +vt 0.428571 0.125000 +vt 0.408163 0.125000 +vt 0.387755 0.125000 +vt 0.367347 0.125000 +vt 0.346939 0.125000 +vt 0.469388 0.031250 +vt 0.448980 0.000000 +vt 0.469388 0.000000 +vt 0.448980 0.031250 +vt 0.428571 0.000000 +vt 0.428571 0.031250 +vt 0.408163 0.000000 +vt 0.408163 0.031250 +vt 0.387755 0.000000 +vt 0.387755 0.031250 +vt 0.367347 0.000000 +vt 0.367347 0.031250 +vt 0.346939 0.000000 +vt 0.346939 0.031250 +vt 0.326531 0.000000 +vt 0.326531 0.062500 +vt 0.326531 0.062500 +vt 0.346939 0.031250 +vt 0.326531 0.031250 +vt 0.346939 0.062500 +vt 0.367347 0.031250 +vt 0.367347 0.062500 +vt 0.387755 0.031250 +vt 0.387755 0.062500 +vt 0.408163 0.031250 +vt 0.408163 0.062500 +vt 0.428571 0.031250 +vt 0.428571 0.062500 +vt 0.448980 0.031250 +vt 0.448980 0.062500 +vt 0.469388 0.031250 +vt 0.346939 0.000000 +vt 0.326531 0.000000 +vt 0.367347 0.000000 +vt 0.387755 0.000000 +vt 0.408163 0.000000 +vt 0.428571 0.000000 +vt 0.448980 0.000000 +vt 0.469388 0.000000 +vt 0.326531 0.093750 +vt 0.346939 0.125000 +vt 0.346939 0.093750 +vt 0.367347 0.125000 +vt 0.367347 0.093750 +vt 0.387755 0.125000 +vt 0.387755 0.093750 +vt 0.408163 0.125000 +vt 0.408163 0.093750 +vt 0.428571 0.125000 +vt 0.428571 0.093750 +vt 0.448980 0.125000 +vt 0.448980 0.093750 +vt 0.469388 0.125000 +vt 0.469388 0.093750 +vt 0.469388 0.062500 +vt 0.510204 0.031250 +vt 0.489796 0.000000 +vt 0.510204 0.000000 +vt 0.510204 0.125000 +vt 0.489796 0.093750 +vt 0.510204 0.093750 +vt 0.510204 0.062500 +vt 0.489796 0.062500 +vt 0.673469 0.062500 +vt 0.693878 0.031250 +vt 0.693878 0.062500 +vt 0.653061 0.062500 +vt 0.673469 0.031250 +vt 0.632653 0.062500 +vt 0.653061 0.031250 +vt 0.612245 0.062500 +vt 0.632653 0.031250 +vt 0.591837 0.062500 +vt 0.612245 0.031250 +vt 0.571429 0.062500 +vt 0.591837 0.031250 +vt 0.551020 0.062500 +vt 0.571429 0.031250 +vt 0.530612 0.062500 +vt 0.551020 0.031250 +vt 0.530612 0.031250 +vt 0.673469 0.093750 +vt 0.693878 0.093750 +vt 0.653061 0.093750 +vt 0.612245 0.093750 +vt 0.632653 0.093750 +vt 0.591837 0.093750 +vt 0.571429 0.093750 +vt 0.551020 0.093750 +vt 0.530612 0.093750 +vt 0.693878 0.125000 +vt 0.673469 0.125000 +vt 0.653061 0.125000 +vt 0.632653 0.125000 +vt 0.612245 0.125000 +vt 0.591837 0.125000 +vt 0.571429 0.125000 +vt 0.551020 0.125000 +vt 0.530612 0.125000 +vt 0.673469 0.000000 +vt 0.693878 0.000000 +vt 0.653061 0.000000 +vt 0.612245 0.000000 +vt 0.632653 0.000000 +vt 0.591837 0.000000 +vt 0.571429 0.000000 +vt 0.551020 0.000000 +vt 0.530612 0.000000 +vt 0.673469 0.093750 +vt 0.693878 0.125000 +vt 0.693878 0.093750 +vt 0.673469 0.000000 +vt 0.693878 0.031250 +vt 0.693878 0.000000 +vt 0.673469 0.062500 +vt 0.673469 0.031250 +vt 0.693878 0.062500 +vt 0.489796 0.093750 +vt 0.510204 0.062500 +vt 0.489796 0.062500 +vt 0.510204 0.093750 +vt 0.530612 0.062500 +vt 0.530612 0.093750 +vt 0.551020 0.062500 +vt 0.551020 0.093750 +vt 0.571429 0.062500 +vt 0.571429 0.093750 +vt 0.591837 0.062500 +vt 0.591837 0.093750 +vt 0.612245 0.062500 +vt 0.612245 0.093750 +vt 0.632653 0.062500 +vt 0.632653 0.093750 +vt 0.653061 0.062500 +vt 0.653061 0.093750 +vt 0.510204 0.031250 +vt 0.489796 0.031250 +vt 0.530612 0.031250 +vt 0.551020 0.031250 +vt 0.571429 0.031250 +vt 0.591837 0.031250 +vt 0.612245 0.031250 +vt 0.632653 0.031250 +vt 0.653061 0.031250 +vt 0.489796 0.000000 +vt 0.510204 0.000000 +vt 0.530612 0.000000 +vt 0.551020 0.000000 +vt 0.571429 0.000000 +vt 0.591837 0.000000 +vt 0.612245 0.000000 +vt 0.632653 0.000000 +vt 0.653061 0.000000 +vt 0.510204 0.125000 +vt 0.530612 0.125000 +vt 0.571429 0.125000 +vt 0.591837 0.125000 +vt 0.612245 0.125000 +vt 0.632653 0.125000 +vt 0.653061 0.125000 +vt 0.673469 0.125000 +vt 0.285714 0.093750 +vt 0.306122 0.062500 +vt 0.306122 0.093750 +vt 0.265306 0.093750 +vt 0.285714 0.062500 +vt 0.244898 0.062500 +vt 0.265306 0.062500 +vt 0.306122 0.125000 +vt 0.285714 0.125000 +vt 0.244898 0.125000 +vt 0.265306 0.125000 +vt 0.306122 0.031250 +vt 0.285714 0.000000 +vt 0.306122 0.000000 +vt 0.285714 0.031250 +vt 0.265306 0.000000 +vt 0.244898 0.031250 +vt 0.265306 0.031250 +vt 0.224490 0.031250 +vt 0.224490 0.000000 +vt 0.244898 0.000000 +vt 0.244898 0.093750 +vt 0.224490 0.125000 +vt 0.224490 0.093750 +vt 0.224490 0.062500 +vt 0.224490 0.062500 +vt 0.244898 0.031250 +vt 0.224490 0.031250 +vt 0.244898 0.062500 +vt 0.265306 0.031250 +vt 0.285714 0.062500 +vt 0.285714 0.031250 +vt 0.224490 0.000000 +vt 0.244898 0.000000 +vt 0.265306 0.000000 +vt 0.285714 0.000000 +vt 0.224490 0.093750 +vt 0.244898 0.125000 +vt 0.244898 0.093750 +vt 0.265306 0.125000 +vt 0.265306 0.093750 +vt 0.285714 0.093750 +vt 0.265306 0.062500 +vt 0.306122 0.093750 +vt 0.306122 0.125000 +vt 0.285714 0.125000 +vt 0.306122 0.000000 +vt 0.306122 0.031250 +vt 0.000000 0.656250 +vt 0.000000 0.406250 +vt 0.000000 0.843750 +vt 0.204082 0.843750 +vt 0.122449 0.781250 +vt 0.979486 0.656044 +vt 0.775259 0.656092 +vt 0.570989 0.656263 +vt 0.979592 1.000000 +vt 0.979486 0.656044 +vt 0.571429 1.000000 +vt 0.775259 0.656092 +vt 0.775510 1.000000 +vt 0.570989 0.656263 +vt 0.979592 1.000000 +vt 0.775948 0.656044 +vt 0.571684 0.656092 +vt 0.367239 0.656264 +vt 0.367347 1.000000 +vt 0.102041 0.062500 +vt 0.000000 0.062500 +vt 0.102041 0.062500 +vt 0.020408 0.125000 +vt 0.122449 0.125000 +vt 0.122449 0.062500 +vt 0.000000 0.125000 +vt 0.326531 0.125000 +vt 0.326531 0.031250 +vt 0.326531 0.125000 +vt 0.489796 0.031250 +vt 0.489796 0.125000 +vt 0.489796 0.125000 +vt 0.551020 0.125000 +vt 0.224490 0.125000 +vt 0.306122 0.062500 +vn 0.8675 -0.0000 -0.4974 +vn 0.0000 0.0000 -1.0000 +vn -0.8675 0.0000 -0.4974 +vn 0.0000 0.8675 -0.4974 +vn 0.0000 -0.8675 -0.4974 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 -0.0000 0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.3827 -0.0000 -0.9239 +vn -0.3827 -0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn -0.7474 -0.5878 -0.3096 +vn 0.6533 -0.7071 0.2706 +vn -0.7474 0.5878 -0.3096 +vn -0.9062 -0.1946 -0.3754 +vn -0.8388 -0.4191 -0.3474 +vn -0.9062 0.1946 -0.3754 +vn 0.6204 0.7410 0.2570 +vn 0.0995 0.9942 0.0412 +vn -0.4594 -0.8676 -0.1903 +vn 0.0995 -0.9942 0.0412 +vn 0.6204 -0.7410 0.2570 +vn -0.4594 0.8676 -0.1903 +vn -0.4510 0.8728 -0.1868 +vn -0.8388 0.4191 -0.3474 +vn -0.4510 -0.8728 -0.1868 +vn -0.6890 -0.6662 -0.2854 +vn -0.6533 0.7071 -0.2706 +vn -0.6533 -0.7071 -0.2706 +vn -0.6890 0.6662 -0.2854 +vn 0.7474 0.5878 0.3096 +vn -0.3827 -0.0000 -0.9239 +vn 0.3827 -0.0000 0.9239 +vn 0.9239 0.0000 -0.3827 +vn 0.7474 -0.5878 -0.3096 +vn -0.6533 -0.7071 0.2706 +vn 0.7474 0.5878 -0.3096 +vn 0.9062 -0.1946 -0.3754 +vn 0.8388 -0.4191 -0.3474 +vn 0.9062 0.1946 -0.3754 +vn -0.6204 0.7410 0.2570 +vn -0.0995 0.9942 0.0412 +vn 0.4594 -0.8676 -0.1903 +vn -0.0995 -0.9942 0.0412 +vn -0.6204 -0.7410 0.2570 +vn 0.4594 0.8676 -0.1903 +vn 0.4510 0.8728 -0.1868 +vn 0.8388 0.4191 -0.3474 +vn 0.4510 -0.8728 -0.1868 +vn 0.6890 -0.6662 -0.2854 +vn 0.6533 0.7071 -0.2706 +vn 0.6533 -0.7071 -0.2706 +vn 0.6890 0.6662 -0.2854 +vn -0.7474 0.5878 0.3096 +vn 0.7474 -0.5878 0.3096 +vn 0.5430 0.8090 0.2249 +vn -0.5430 -0.8090 -0.2249 +vn 0.9239 0.0000 0.3827 +vn -0.5431 0.8090 -0.2249 +vn 0.5430 -0.8090 0.2249 +vn -0.7474 -0.5878 0.3096 +vn -0.5430 0.8090 0.2249 +vn 0.5430 -0.8090 -0.2249 +vn -0.9239 0.0000 0.3827 +vn 0.5431 0.8090 -0.2249 +vn -0.5430 -0.8090 0.2249 +vn -0.5430 0.8090 -0.2249 +vn 0.5430 0.8090 -0.2249 +vn -0.0001 -0.6302 -0.7764 +vn -0.5490 0.6302 -0.5490 +vn 0.0001 0.6302 -0.7764 +vn -0.5491 -0.6302 -0.5489 +vn -0.7764 0.6302 0.0000 +vn -0.7764 -0.6302 -0.0000 +vn -0.5490 0.6302 0.5490 +vn -0.5490 -0.6302 0.5490 +vn -0.0001 0.6302 0.7764 +vn 0.0001 -0.6302 0.7764 +vn 0.5490 0.6302 0.5490 +vn 0.5491 -0.6302 0.5489 +vn 0.7764 0.6302 -0.0000 +vn 0.7764 -0.6302 0.0000 +vn 0.5490 0.6302 -0.5490 +vn 0.5490 -0.6302 -0.5490 +vn 0.0000 -0.6302 -0.7764 +vn -0.5489 0.6302 -0.5491 +vn -0.5490 -0.6302 -0.5490 +vn -0.7764 -0.6302 0.0001 +vn -0.5491 0.6302 0.5490 +vn 0.0002 -0.6302 0.7764 +vn 0.7764 -0.6302 -0.0001 +vn 0.5491 0.6302 -0.5490 +vn 0.0000 -0.7764 0.6302 +vn -0.7071 -0.7071 0.0000 +vn -0.5490 -0.5490 0.6302 +vn -0.7764 -0.0000 0.6302 +vn -0.7071 0.7071 0.0000 +vn -0.5488 0.5492 0.6302 +vn -0.0000 0.7764 0.6302 +vn 0.7071 0.7071 0.0000 +vn 0.5493 0.5488 0.6302 +vn 0.7764 0.0000 0.6302 +vn 0.7071 -0.7071 0.0000 +vn -0.0002 -0.7764 0.6302 +vn -0.5491 -0.5489 0.6302 +vn -0.7764 0.0001 0.6302 +vn -0.5490 0.5491 0.6302 +vn -0.0002 0.7764 0.6302 +vn 0.5491 0.5489 0.6302 +vn 0.7764 -0.0001 0.6302 +vn 0.5489 -0.5491 0.6302 +vn -0.0725 0.5338 -0.8425 +vn 0.5441 0.1350 -0.8281 +vn -0.1400 0.0807 0.9869 +vn -0.2007 0.1350 0.9703 +vn 0.5988 0.0807 -0.7968 +vn 0.5847 -0.0000 -0.8112 +vn -0.1400 -0.0807 0.9869 +vn -0.1602 0.0000 0.9871 +vn 0.5988 -0.0807 -0.7968 +vn 0.5441 -0.1350 -0.8281 +vn -0.6469 -0.5339 0.5445 +vn -0.2007 -0.1350 0.9703 +vn 0.8787 0.3090 0.3640 +vn 0.5442 0.1350 -0.8280 +vn 0.8787 -0.3090 0.3640 +vn -0.0725 -0.5338 -0.8425 +vn 0.1621 -0.9845 0.0671 +vn -0.6469 0.5339 0.5445 +vn 0.1621 0.9845 0.0672 +vn 0.0725 0.5338 -0.8425 +vn -0.5441 0.1350 -0.8281 +vn 0.1400 0.0807 0.9869 +vn 0.2007 0.1350 0.9703 +vn -0.5988 0.0807 -0.7968 +vn -0.5847 0.0000 -0.8112 +vn 0.1400 -0.0807 0.9869 +vn 0.1602 -0.0000 0.9871 +vn -0.5988 -0.0807 -0.7968 +vn -0.5441 -0.1350 -0.8281 +vn 0.6469 -0.5339 0.5445 +vn 0.2007 -0.1350 0.9703 +vn -0.5442 0.1350 -0.8281 +vn 0.0725 -0.5338 -0.8425 +vn 0.6469 0.5339 0.5445 +vn -0.1527 0.3585 -0.9209 +vn 0.9802 0.1966 -0.0227 +vn 0.7592 -0.3585 -0.5432 +vn 0.0683 0.9137 -0.4005 +vn 0.6770 0.1966 0.7093 +vn -0.2348 0.9138 0.3314 +vn 0.1527 -0.3585 0.9209 +vn -0.7592 0.3585 0.5432 +vn -0.0683 -0.9137 0.4005 +vn -0.9802 -0.1967 0.0227 +vn 0.2349 -0.9137 -0.3315 +vn 0.8668 0.0000 -0.4986 +vn -0.4119 0.6861 -0.5996 +vn 0.7152 0.6862 -0.1327 +vn 0.4119 0.6862 0.5995 +vn -0.7152 0.6862 0.1326 +vn 0.2603 0.0000 0.9655 +vn -0.8668 -0.0001 0.4986 +vn 0.4119 -0.6862 0.5995 +vn -0.7152 -0.6862 0.1326 +vn 0.7152 -0.6862 -0.1326 +vn -0.2603 0.0001 -0.9655 +vn -0.1528 -0.3584 -0.9210 +vn 0.2349 0.9137 -0.3315 +vn 0.7592 0.3585 -0.5432 +vn -0.6770 0.1966 -0.7093 +vn -0.0683 0.9137 0.4005 +vn -0.9802 0.1966 0.0228 +vn 0.1527 0.3585 0.9209 +vn -0.7592 -0.3584 0.5432 +vn 0.6770 -0.1966 0.7093 +vn -0.2348 -0.9138 0.3314 +vn 0.9802 -0.1966 -0.0228 +vn -0.9802 0.1967 -0.0227 +vn 0.1526 0.3587 -0.9209 +vn -0.7592 -0.3585 -0.5432 +vn -0.6771 0.1967 0.7091 +vn -0.0683 0.9137 -0.4005 +vn -0.1527 -0.3585 0.9209 +vn 0.2349 0.9137 0.3315 +vn 0.0683 -0.9137 0.4005 +vn 0.7591 0.3587 0.5433 +vn -0.2349 -0.9137 -0.3315 +vn 0.9802 -0.1967 0.0227 +vn 0.6770 -0.1966 -0.7093 +vn -0.8668 -0.0002 -0.4986 +vn 0.4119 0.6862 -0.5995 +vn 0.2603 0.0000 -0.9655 +vn -0.4119 0.6862 0.5996 +vn -0.7153 0.6861 -0.1327 +vn -0.2603 -0.0000 0.9655 +vn 0.7152 0.6863 0.1325 +vn -0.4119 -0.6862 0.5995 +vn 0.8668 -0.0000 0.4986 +vn -0.7152 -0.6862 -0.1326 +vn 0.7153 -0.6862 0.1327 +vn 0.4119 -0.6862 -0.5996 +vn -0.7593 0.3584 -0.5432 +vn 0.6771 0.1966 -0.7091 +vn 0.1526 -0.3586 -0.9209 +vn 0.0683 0.9138 0.4004 +vn -0.2348 0.9138 -0.3314 +vn 0.7592 -0.3585 0.5432 +vn 0.9802 0.1966 0.0229 +vn -0.6770 -0.1966 0.7093 +vn -0.1526 0.3586 0.9209 +vn -0.9802 -0.1966 -0.0228 +vn 0.2349 -0.9137 0.3315 +vn -0.0683 -0.9137 -0.4005 +vn -0.9993 0.0339 -0.0133 +vn 0.0027 0.0240 0.9997 +vn -0.9995 0.0233 -0.0192 +vn -0.9958 0.0865 -0.0302 +vn -0.0027 0.0343 0.9994 +vn -0.9810 0.1881 -0.0475 +vn 0.0156 0.0822 0.9965 +vn -0.9325 0.3479 -0.0969 +vn 0.0358 0.1638 0.9858 +vn -0.7605 0.6101 -0.2224 +vn 0.0878 0.2562 0.9626 +vn -0.4465 0.8164 -0.3661 +vn 0.1860 0.3229 0.9280 +vn -0.2452 0.8662 -0.4354 +vn 0.2543 0.3958 0.8824 +vn 0.0123 -0.0345 -0.9993 +vn 0.0184 -0.0243 -0.9995 +vn 0.0236 -0.0859 -0.9960 +vn 0.0191 -0.1756 -0.9843 +vn 0.0070 -0.2964 -0.9550 +vn -0.0419 -0.4638 -0.8850 +vn -0.1623 -0.5372 -0.8277 +vn 0.9997 -0.0236 -0.0025 +vn 0.9994 -0.0341 0.0040 +vn 0.9960 -0.0897 -0.0054 +vn 0.9805 -0.1964 0.0053 +vn 0.9296 -0.3665 0.0396 +vn 0.7506 -0.6422 0.1556 +vn 0.3973 -0.8490 0.3482 +vn -0.2307 -0.5578 -0.7973 +vn 0.2668 0.3966 0.8784 +vn -0.0027 0.0240 0.9997 +vn 0.9993 0.0339 -0.0133 +vn 0.9995 0.0233 -0.0192 +vn 0.0027 0.0343 0.9994 +vn 0.9958 0.0865 -0.0302 +vn -0.0156 0.0822 0.9965 +vn 0.9810 0.1881 -0.0475 +vn -0.0358 0.1638 0.9858 +vn 0.9325 0.3479 -0.0969 +vn -0.0878 0.2562 0.9626 +vn 0.7605 0.6101 -0.2224 +vn -0.1860 0.3229 0.9280 +vn 0.4465 0.8164 -0.3661 +vn -0.2543 0.3958 0.8824 +vn 0.2452 0.8662 -0.4354 +vn -0.0123 -0.0345 -0.9993 +vn -0.0184 -0.0243 -0.9995 +vn -0.0236 -0.0859 -0.9960 +vn -0.0191 -0.1756 -0.9843 +vn -0.0070 -0.2964 -0.9550 +vn 0.0419 -0.4638 -0.8850 +vn 0.1623 -0.5372 -0.8277 +vn 0.2307 -0.5578 -0.7973 +vn -0.9997 -0.0236 -0.0025 +vn -0.9994 -0.0341 0.0040 +vn -0.9960 -0.0897 -0.0054 +vn -0.9805 -0.1964 0.0053 +vn -0.9296 -0.3665 0.0396 +vn -0.7506 -0.6422 0.1556 +vn -0.3973 -0.8490 0.3482 +vn -0.2214 -0.8806 0.4189 +vn -0.2668 0.3966 0.8784 +vn 0.8871 -0.4423 0.1317 +vn 0.0612 -0.3307 -0.9417 +vn 0.0718 -0.2813 -0.9569 +vn -0.8385 0.5091 -0.1943 +vn -0.8894 0.4253 -0.1676 +vn 0.0076 0.2420 0.9702 +vn 0.0374 0.2658 0.9633 +vn -0.0835 0.0042 0.9965 +vn 0.9966 0.0044 0.0817 +vn -0.0852 0.0032 0.9964 +vn -0.0840 0.0083 0.9964 +vn 0.9966 0.0051 0.0828 +vn -0.0830 0.0174 0.9964 +vn 0.9966 0.0074 0.0817 +vn -0.0806 0.0316 0.9962 +vn 0.9967 0.0085 0.0805 +vn -0.0778 0.0497 0.9957 +vn 0.9968 0.0019 0.0796 +vn -0.0691 0.0773 0.9946 +vn 0.9967 -0.0161 0.0796 +vn -0.0573 0.1174 0.9914 +vn 0.9953 -0.0569 0.0785 +vn -0.0250 0.1728 0.9846 +vn 0.9878 -0.1317 0.0829 +vn 0.9594 -0.2657 0.0947 +vn -0.9965 -0.0050 -0.0836 +vn -0.9964 -0.0044 -0.0846 +vn -0.9964 -0.0074 -0.0846 +vn -0.9962 -0.0022 -0.0870 +vn -0.9963 -0.0086 -0.0858 +vn -0.9959 0.0155 -0.0886 +vn -0.9939 0.0554 -0.0949 +vn -0.9863 0.1280 -0.1045 +vn -0.9576 0.2564 -0.1313 +vn 0.0812 -0.0033 -0.9967 +vn 0.0829 -0.0041 -0.9966 +vn 0.0824 -0.0083 -0.9966 +vn 0.0835 -0.0174 -0.9964 +vn 0.0860 -0.0316 -0.9958 +vn 0.0885 -0.0500 -0.9948 +vn 0.0946 -0.0790 -0.9924 +vn 0.0979 -0.1235 -0.9875 +vn 0.1014 -0.1959 -0.9754 +vn -0.8871 -0.4423 0.1317 +vn -0.0612 -0.3307 -0.9417 +vn -0.8353 -0.5292 0.1489 +vn -0.0718 -0.2813 -0.9569 +vn 0.8385 0.5091 -0.1943 +vn -0.0076 0.2420 0.9702 +vn 0.8894 0.4253 -0.1676 +vn -0.0374 0.2658 0.9633 +vn -0.9966 0.0044 0.0817 +vn 0.0835 0.0042 0.9965 +vn 0.0852 0.0032 0.9964 +vn -0.9966 0.0051 0.0828 +vn 0.0840 0.0083 0.9964 +vn -0.9966 0.0074 0.0817 +vn 0.0830 0.0174 0.9964 +vn -0.9967 0.0085 0.0805 +vn 0.0806 0.0316 0.9962 +vn -0.9968 0.0019 0.0796 +vn 0.0778 0.0497 0.9957 +vn -0.9967 -0.0161 0.0796 +vn 0.0691 0.0773 0.9946 +vn -0.9953 -0.0569 0.0785 +vn 0.0573 0.1174 0.9914 +vn -0.9878 -0.1317 0.0829 +vn 0.0250 0.1728 0.9846 +vn -0.9594 -0.2657 0.0947 +vn 0.9965 -0.0050 -0.0836 +vn 0.9964 -0.0044 -0.0846 +vn 0.9964 -0.0074 -0.0846 +vn 0.9963 -0.0086 -0.0858 +vn 0.9962 -0.0022 -0.0870 +vn 0.9960 0.0155 -0.0886 +vn 0.9939 0.0554 -0.0949 +vn 0.9863 0.1280 -0.1045 +vn 0.9576 0.2564 -0.1313 +vn -0.0812 -0.0033 -0.9967 +vn -0.0829 -0.0041 -0.9966 +vn -0.0824 -0.0083 -0.9966 +vn -0.0835 -0.0174 -0.9964 +vn -0.0860 -0.0316 -0.9958 +vn -0.0885 -0.0500 -0.9948 +vn -0.0946 -0.0790 -0.9924 +vn -0.0979 -0.1235 -0.9875 +vn -0.1014 -0.1959 -0.9754 +vn -0.9802 0.1141 0.1617 +vn 0.2278 0.0574 0.9720 +vn -0.9831 0.0571 0.1740 +vn -0.4692 0.8728 -0.1348 +vn 0.2873 0.1080 0.9517 +vn 0.3977 0.1157 0.9102 +vn 0.3390 0.0521 0.9393 +vn -0.1728 -0.0663 -0.9827 +vn -0.1422 -0.1806 -0.9732 +vn -0.3697 -0.2896 -0.8829 +vn -0.0968 -0.4427 -0.8914 +vn 0.9713 -0.0686 -0.2277 +vn 0.9424 -0.2704 -0.1966 +vn -0.2114 -0.9461 0.2455 +vn 0.5626 -0.8223 0.0853 +vn -0.2928 -0.8184 0.4945 +vn -0.4990 -0.0644 -0.8642 +vn 0.3441 0.8382 -0.4232 +vn 0.4733 0.8574 -0.2021 +vn 0.5631 0.2098 0.7993 +vn -0.2278 0.0574 0.9720 +vn 0.9802 0.1141 0.1617 +vn 0.9831 0.0571 0.1740 +vn -0.2873 0.1080 0.9517 +vn 0.4692 0.8728 -0.1348 +vn -0.3977 0.1157 0.9102 +vn -0.3441 0.8382 -0.4232 +vn 0.1728 -0.0663 -0.9827 +vn 0.1422 -0.1806 -0.9732 +vn 0.0968 -0.4427 -0.8914 +vn 0.3697 -0.2896 -0.8829 +vn -0.9713 -0.0686 -0.2277 +vn -0.9424 -0.2704 -0.1966 +vn -0.5626 -0.8223 0.0853 +vn 0.2114 -0.9461 0.2455 +vn -0.3390 0.0521 0.9393 +vn 0.2928 -0.8184 0.4945 +vn 0.4990 -0.0644 -0.8642 +vn -0.4733 0.8574 -0.2021 +vn 0.5488 -0.5492 0.6302 +vn -0.1621 0.9845 0.0672 +vn -0.8787 0.3090 0.3640 +vn -0.8787 -0.3090 0.3640 +vn -0.1621 -0.9845 0.0671 +vn -0.6770 -0.1966 -0.7093 +vn -0.4119 -0.6862 -0.5996 +vn 0.0683 -0.9137 -0.4005 +vn 0.2214 -0.8806 0.4189 +vn 0.8353 -0.5292 0.1489 +vn -0.5631 0.2098 0.7993 +s off +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 2/6/2 +f 6/7/3 7/8/3 5/9/3 +f 2/10/4 7/11/4 3/12/4 +f 4/13/5 8/14/5 6/15/5 +f 9/16/2 10/17/2 11/18/2 +f 9/16/6 12/19/6 13/20/6 +f 14/21/7 15/22/7 12/19/7 +f 16/23/3 17/24/3 18/25/3 +f 19/26/2 20/27/2 16/28/2 +f 21/29/1 22/30/1 19/31/1 +f 18/32/4 19/33/4 16/34/4 +f 23/35/5 20/36/5 22/37/5 +f 24/38/2 25/39/2 26/40/2 +f 27/41/8 25/39/8 28/42/8 +f 29/43/7 30/44/7 27/41/7 +f 31/45/9 32/46/9 33/47/9 +f 34/48/10 35/49/10 36/50/10 +f 37/51/8 38/52/8 39/53/8 +f 40/54/2 41/55/2 38/52/2 +f 42/56/6 43/57/6 41/58/6 +f 44/59/7 39/53/7 43/57/7 +f 45/60/9 46/61/9 47/62/9 +f 48/63/10 49/64/10 50/65/10 +f 51/66/11 52/67/11 53/68/11 +f 54/69/12 55/70/12 52/67/12 +f 56/71/13 57/72/13 55/70/13 +f 58/73/14 53/68/14 57/72/14 +f 55/70/10 53/68/10 52/67/10 +f 59/74/7 60/75/7 61/76/7 +f 62/77/7 63/78/7 64/79/7 +f 65/80/8 66/81/8 67/82/8 +f 68/83/6 69/84/6 70/85/6 +f 70/85/10 67/86/10 66/87/10 +f 71/88/9 72/89/9 68/83/9 +f 73/90/15 74/91/15 75/92/15 +f 76/93/16 77/94/16 78/95/16 +f 79/96/15 80/97/15 81/98/15 +f 82/99/16 83/100/16 84/101/16 +f 85/102/15 86/103/15 87/104/15 +f 88/105/16 89/106/16 90/107/16 +f 91/108/17 92/109/17 93/110/17 +f 94/111/18 95/112/18 96/113/18 +f 97/114/15 98/115/15 99/116/15 +f 100/117/19 97/118/19 101/119/19 +f 102/120/18 103/121/18 104/122/18 +f 105/123/20 106/124/20 107/125/20 +f 108/126/20 109/127/20 110/128/20 +f 111/129/18 112/130/18 113/131/18 +f 114/132/21 78/133/21 115/134/21 +f 116/135/16 117/136/16 118/137/16 +f 115/138/16 77/94/16 117/136/16 +f 79/139/15 119/140/15 120/141/15 +f 114/142/15 121/143/15 119/140/15 +f 122/144/22 81/145/22 123/146/22 +f 94/147/15 124/148/15 79/139/15 +f 125/149/23 126/150/23 127/151/23 +f 128/152/16 129/153/16 116/135/16 +f 110/128/20 130/154/20 108/126/20 +f 103/121/18 88/155/18 131/156/18 +f 132/157/16 90/107/16 133/158/16 +f 91/159/15 87/104/15 134/160/15 +f 135/161/16 84/101/16 92/109/16 +f 94/162/15 81/98/15 136/163/15 +f 137/164/16 78/95/16 95/112/16 +f 138/165/15 75/92/15 139/166/15 +f 91/167/15 140/168/15 85/169/15 +f 141/170/24 142/171/24 143/172/24 +f 137/173/16 144/174/16 76/175/16 +f 140/176/25 92/177/25 84/178/25 +f 136/179/17 137/173/17 94/180/17 +f 125/149/26 134/181/26 87/182/26 +f 76/175/16 145/183/16 146/184/16 +f 122/185/16 83/100/16 145/183/16 +f 85/169/15 147/186/15 148/187/15 +f 123/188/15 80/97/15 147/186/15 +f 149/189/15 150/190/15 151/191/15 +f 144/192/27 136/193/27 81/145/27 +f 135/194/16 125/195/16 82/196/16 +f 152/197/28 153/198/28 154/199/28 +f 134/200/20 135/194/20 91/201/20 +f 95/202/29 124/203/29 96/204/29 +f 82/196/16 155/205/16 156/206/16 +f 127/207/16 157/208/16 155/205/16 +f 151/191/15 158/209/15 159/210/15 +f 126/211/15 86/103/15 158/209/15 +f 127/151/30 150/212/30 160/213/30 +f 84/178/31 123/146/31 140/176/31 +f 114/132/32 129/214/32 152/197/32 +f 161/215/15 141/216/15 149/189/15 +f 150/212/24 143/172/24 160/213/24 +f 162/217/20 133/218/20 149/219/20 +f 88/155/18 162/220/18 131/156/18 +f 163/221/16 143/222/16 142/223/16 +f 163/224/33 149/219/33 133/218/33 +f 131/225/15 159/210/15 103/226/15 +f 162/227/15 151/191/15 131/225/15 +f 133/158/16 160/228/16 143/222/16 +f 164/229/20 163/221/20 142/223/20 +f 90/107/16 157/208/16 160/228/16 +f 98/115/34 165/230/34 99/231/34 +f 166/232/16 101/233/16 165/234/16 +f 98/115/35 100/117/35 166/232/35 +f 139/166/15 152/235/15 154/236/15 +f 167/237/16 116/135/16 130/238/16 +f 130/238/16 118/137/16 108/239/16 +f 113/131/18 168/240/18 105/241/18 +f 75/92/15 121/143/15 152/235/15 +f 167/242/18 139/243/18 128/244/18 +f 169/245/15 154/236/15 170/246/15 +f 170/247/28 153/198/28 171/248/28 +f 139/243/36 172/249/36 128/244/36 +f 172/250/16 153/251/16 128/152/16 +f 73/252/20 167/253/20 130/154/20 +f 112/130/16 171/254/16 172/250/16 +f 105/255/15 169/245/15 113/256/15 +f 111/257/28 171/248/28 173/258/28 +f 113/256/15 170/246/15 111/259/15 +f 168/240/16 172/250/16 106/124/16 +f 169/260/37 106/261/37 172/249/37 +f 174/262/38 175/263/38 176/264/38 +f 177/265/39 178/266/39 179/267/39 +f 180/268/38 181/269/38 182/270/38 +f 183/271/39 184/272/39 185/273/39 +f 186/274/38 187/275/38 188/276/38 +f 189/277/39 190/278/39 191/279/39 +f 192/280/40 193/281/40 194/282/40 +f 195/283/41 196/284/41 197/285/41 +f 198/286/38 199/287/38 200/288/38 +f 198/289/42 201/290/42 202/291/42 +f 203/292/41 204/293/41 205/294/41 +f 206/295/43 207/296/43 208/297/43 +f 209/298/43 210/299/43 211/300/43 +f 212/301/41 213/302/41 214/303/41 +f 215/304/44 179/305/44 216/306/44 +f 217/307/39 218/308/39 219/309/39 +f 177/265/39 179/267/39 220/310/39 +f 181/311/38 221/312/38 216/313/38 +f 222/314/38 223/315/38 215/316/38 +f 224/317/45 182/318/45 225/319/45 +f 196/320/38 216/313/38 197/321/38 +f 226/322/46 227/323/46 228/324/46 +f 229/325/39 219/309/39 230/326/39 +f 209/298/43 175/327/43 210/299/43 +f 231/328/41 203/292/41 205/294/41 +f 191/279/39 232/329/39 233/330/39 +f 188/276/38 193/331/38 234/332/38 +f 185/273/39 235/333/39 192/280/39 +f 182/270/38 196/334/38 236/335/38 +f 179/267/39 237/336/39 195/283/39 +f 176/264/38 238/337/38 239/338/38 +f 193/339/38 240/340/38 194/341/38 +f 241/342/47 242/343/47 243/344/47 +f 237/345/39 225/346/39 244/347/39 +f 185/348/48 194/349/48 240/350/48 +f 237/345/40 236/351/40 196/352/40 +f 188/353/49 245/354/49 227/323/49 +f 178/355/39 246/356/39 225/346/39 +f 183/271/39 185/273/39 224/357/39 +f 187/358/38 247/359/38 240/340/38 +f 180/268/38 182/270/38 248/360/38 +f 249/361/38 250/362/38 242/363/38 +f 182/318/50 244/364/50 225/319/50 +f 235/365/39 227/366/39 245/367/39 +f 230/368/51 223/369/51 251/370/51 +f 235/365/43 234/371/43 193/372/43 +f 216/306/52 195/373/52 197/374/52 +f 184/375/39 252/376/39 227/366/39 +f 253/377/39 254/378/39 228/379/39 +f 255/380/38 256/381/38 250/362/38 +f 186/274/38 188/276/38 226/382/38 +f 250/383/53 228/324/53 254/384/53 +f 185/348/54 248/385/54 224/317/54 +f 219/386/55 215/304/55 223/369/55 +f 257/387/38 242/363/38 258/388/38 +f 243/344/47 250/383/47 254/384/47 +f 233/389/43 259/390/43 249/391/43 +f 231/328/41 232/392/41 190/393/41 +f 243/394/39 260/395/39 241/396/39 +f 249/391/56 260/397/56 233/389/56 +f 231/398/38 261/399/38 255/380/38 +f 259/400/38 255/380/38 249/361/38 +f 254/378/39 233/330/39 243/394/39 +f 258/401/43 260/395/43 257/402/43 +f 253/377/39 191/279/39 254/378/39 +f 262/403/57 263/404/57 199/287/57 +f 202/405/39 263/404/39 264/406/39 +f 263/404/58 200/288/58 199/287/58 +f 223/315/38 239/338/38 251/407/38 +f 265/408/39 217/307/39 229/325/39 +f 266/409/39 267/410/39 217/307/39 +f 268/411/41 214/303/41 207/412/41 +f 222/314/38 176/264/38 223/315/38 +f 239/413/41 265/414/41 229/415/41 +f 251/407/38 269/416/38 270/417/38 +f 270/418/51 230/368/51 251/370/51 +f 229/415/59 269/419/59 239/413/59 +f 271/420/39 230/326/39 272/421/39 +f 175/327/43 265/422/43 238/423/43 +f 212/301/39 272/421/39 273/424/39 +f 269/416/38 207/425/38 214/426/38 +f 213/427/51 272/428/51 270/418/51 +f 270/417/38 214/426/38 213/429/38 +f 268/411/39 271/420/39 212/301/39 +f 206/430/60 269/419/60 271/431/60 +f 274/432/20 275/433/20 276/434/20 +f 277/435/61 278/436/61 279/437/61 +f 280/438/61 281/439/61 282/440/61 +f 283/441/15 284/442/15 281/439/15 +f 285/443/16 280/438/16 282/440/16 +f 281/439/62 285/444/62 282/440/62 +f 286/445/63 280/438/63 287/446/63 +f 288/447/17 289/448/17 290/449/17 +f 291/450/64 292/451/64 293/452/64 +f 294/453/64 295/454/64 296/455/64 +f 297/456/15 298/457/15 295/454/15 +f 299/458/16 296/455/16 300/459/16 +f 298/460/10 296/455/10 295/454/10 +f 297/456/9 299/461/9 301/462/9 +f 302/463/18 303/464/18 304/465/18 +f 305/466/37 306/467/37 307/468/37 +f 308/469/37 309/470/37 310/471/37 +f 309/470/15 311/472/15 310/471/15 +f 312/473/16 313/474/16 308/469/16 +f 311/475/65 308/469/65 310/471/65 +f 314/476/66 313/474/66 315/477/66 +f 316/478/43 317/479/43 318/480/43 +f 319/481/67 320/482/67 321/483/67 +f 322/484/67 323/485/67 324/486/67 +f 325/487/38 326/488/38 322/484/38 +f 327/489/39 323/485/39 328/490/39 +f 322/484/68 327/491/68 325/492/68 +f 329/493/69 323/485/69 326/488/69 +f 330/494/40 331/495/40 332/496/40 +f 333/497/70 334/498/70 335/499/70 +f 336/500/70 337/501/70 338/502/70 +f 339/503/38 340/504/38 336/500/38 +f 338/502/39 341/505/39 342/506/39 +f 338/502/10 339/507/10 336/500/10 +f 341/508/9 340/504/9 343/509/9 +f 344/510/41 345/511/41 346/512/41 +f 347/513/60 348/514/60 349/515/60 +f 350/516/60 351/517/60 352/518/60 +f 353/519/38 351/517/38 354/520/38 +f 355/521/39 352/518/39 356/522/39 +f 350/516/71 353/523/71 354/520/71 +f 357/524/72 352/518/72 351/517/72 +f 1/1/1 4/525/1 2/2/1 +f 4/4/2 6/526/2 5/5/2 +f 6/7/3 8/527/3 7/8/3 +f 2/10/4 5/528/4 7/11/4 +f 4/13/5 1/529/5 8/14/5 +f 9/16/2 13/20/2 10/17/2 +f 9/16/6 14/21/6 12/19/6 +f 14/21/7 358/530/7 15/22/7 +f 16/23/3 20/531/3 17/24/3 +f 19/26/2 22/532/2 20/27/2 +f 21/29/1 23/533/1 22/30/1 +f 18/32/4 21/534/4 19/33/4 +f 23/35/5 17/535/5 20/36/5 +f 24/38/2 28/42/2 25/39/2 +f 27/41/8 30/44/8 25/39/8 +f 29/43/7 359/536/7 30/44/7 +f 360/537/9 361/538/9 31/45/9 +f 31/45/9 362/539/9 32/46/9 +f 32/46/9 363/540/9 33/47/9 +f 33/47/9 364/541/9 360/537/9 +f 360/537/9 31/45/9 33/47/9 +f 36/50/10 365/542/10 366/543/10 +f 366/543/10 367/544/10 34/48/10 +f 34/48/10 368/545/10 35/49/10 +f 35/49/10 369/546/10 36/50/10 +f 36/50/10 366/543/10 34/48/10 +f 37/51/8 40/54/8 38/52/8 +f 40/54/2 42/547/2 41/55/2 +f 42/56/6 44/59/6 43/57/6 +f 44/59/7 37/51/7 39/53/7 +f 370/548/9 371/549/9 45/60/9 +f 45/60/9 372/550/9 46/61/9 +f 46/61/9 373/551/9 47/62/9 +f 47/62/9 374/552/9 370/548/9 +f 370/548/9 45/60/9 47/62/9 +f 50/65/10 375/553/10 376/554/10 +f 376/554/10 377/555/10 48/63/10 +f 48/63/10 378/556/10 49/64/10 +f 49/64/10 379/557/10 50/65/10 +f 50/65/10 376/554/10 48/63/10 +f 51/66/11 54/558/11 52/67/11 +f 54/69/12 56/559/12 55/70/12 +f 56/71/13 58/560/13 57/72/13 +f 58/73/14 51/561/14 53/68/14 +f 55/70/10 57/72/10 53/68/10 +f 60/75/7 380/562/7 61/76/7 +f 380/562/7 381/563/7 61/76/7 +f 381/563/7 382/564/7 61/76/7 +f 61/76/7 383/565/7 384/566/7 +f 384/566/7 59/74/7 61/76/7 +f 63/78/7 385/567/7 64/79/7 +f 385/567/7 386/568/7 64/79/7 +f 386/568/7 387/569/7 64/79/7 +f 64/79/7 388/570/7 389/571/7 +f 389/571/7 62/77/7 64/79/7 +f 65/80/8 71/88/8 66/81/8 +f 68/83/6 72/89/6 69/84/6 +f 70/85/10 69/84/10 67/86/10 +f 71/88/9 65/80/9 72/89/9 +f 73/90/15 110/572/15 74/91/15 +f 76/93/16 146/573/16 77/94/16 +f 79/96/15 120/574/15 80/97/15 +f 82/99/16 156/575/16 83/100/16 +f 85/102/15 148/576/15 86/103/15 +f 88/105/16 102/577/16 89/106/16 +f 91/108/17 135/161/17 92/109/17 +f 94/111/18 137/164/18 95/112/18 +f 97/114/15 390/578/15 98/115/15 +f 100/117/19 390/578/19 97/118/19 +f 105/123/20 168/240/20 106/124/20 +f 111/129/18 173/579/18 112/130/18 +f 114/132/21 124/203/21 78/133/21 +f 116/135/16 129/153/16 117/136/16 +f 117/136/16 129/153/16 115/138/16 +f 115/138/16 78/95/16 77/94/16 +f 79/139/15 124/148/15 119/140/15 +f 119/140/15 124/148/15 114/142/15 +f 114/142/15 152/235/15 121/143/15 +f 122/144/22 144/192/22 81/145/22 +f 94/147/15 96/580/15 124/148/15 +f 125/149/23 87/182/23 126/150/23 +f 128/152/16 153/251/16 129/153/16 +f 110/128/20 73/252/20 130/154/20 +f 103/121/18 102/120/18 88/155/18 +f 132/157/16 88/105/16 90/107/16 +f 91/159/15 85/102/15 87/104/15 +f 135/161/16 82/99/16 84/101/16 +f 94/162/15 79/96/15 81/98/15 +f 137/164/16 76/93/16 78/95/16 +f 138/165/15 73/90/15 75/92/15 +f 91/167/15 93/581/15 140/168/15 +f 141/170/24 164/582/24 142/171/24 +f 137/173/16 391/583/16 144/174/16 +f 140/176/25 93/584/25 92/177/25 +f 136/179/17 391/583/17 137/173/17 +f 125/149/26 392/585/26 134/181/26 +f 76/175/16 144/174/16 145/183/16 +f 145/183/16 144/174/16 122/185/16 +f 122/185/16 84/101/16 83/100/16 +f 85/169/15 140/168/15 147/186/15 +f 147/186/15 140/168/15 123/188/15 +f 123/188/15 81/98/15 80/97/15 +f 149/189/15 141/216/15 150/190/15 +f 144/192/27 391/586/27 136/193/27 +f 135/194/16 392/587/16 125/195/16 +f 152/197/28 129/214/28 153/198/28 +f 134/200/20 392/587/20 135/194/20 +f 95/202/29 78/133/29 124/203/29 +f 82/196/16 125/195/16 155/205/16 +f 155/205/16 125/195/16 127/207/16 +f 127/207/16 160/228/16 157/208/16 +f 151/191/15 150/190/15 158/209/15 +f 158/209/15 150/190/15 126/211/15 +f 126/211/15 87/104/15 86/103/15 +f 127/151/30 126/150/30 150/212/30 +f 84/178/31 122/144/31 123/146/31 +f 114/132/32 115/134/32 129/214/32 +f 161/215/15 164/588/15 141/216/15 +f 150/212/24 141/170/24 143/172/24 +f 162/217/20 132/589/20 133/218/20 +f 88/155/18 132/590/18 162/220/18 +f 163/221/16 133/158/16 143/222/16 +f 163/224/33 161/591/33 149/219/33 +f 131/225/15 151/191/15 159/210/15 +f 162/227/15 149/189/15 151/191/15 +f 133/158/16 90/107/16 160/228/16 +f 164/229/20 161/592/20 163/221/20 +f 90/107/16 89/106/16 157/208/16 +f 98/115/34 166/232/34 165/230/34 +f 166/232/16 100/117/16 101/233/16 +f 98/115/35 390/578/35 100/117/35 +f 139/166/15 75/92/15 152/235/15 +f 167/237/16 128/152/16 116/135/16 +f 130/238/16 116/135/16 118/137/16 +f 113/131/18 112/130/18 168/240/18 +f 75/92/15 74/91/15 121/143/15 +f 167/242/18 138/593/18 139/243/18 +f 169/245/15 139/166/15 154/236/15 +f 170/247/28 154/199/28 153/198/28 +f 139/243/36 169/260/36 172/249/36 +f 172/250/16 171/254/16 153/251/16 +f 73/252/20 138/594/20 167/253/20 +f 112/130/16 173/579/16 171/254/16 +f 105/255/15 107/595/15 169/245/15 +f 111/257/28 170/247/28 171/248/28 +f 113/256/15 169/245/15 170/246/15 +f 168/240/16 112/130/16 172/250/16 +f 169/260/37 107/596/37 106/261/37 +f 174/262/38 210/597/38 175/263/38 +f 177/265/39 393/598/39 178/266/39 +f 180/268/38 394/599/38 181/269/38 +f 183/271/39 395/600/39 184/272/39 +f 186/274/38 396/601/38 187/275/38 +f 189/277/39 203/602/39 190/278/39 +f 192/280/40 235/333/40 193/281/40 +f 195/283/41 237/336/41 196/284/41 +f 198/286/38 262/603/38 199/287/38 +f 198/289/42 200/288/42 201/290/42 +f 206/295/43 268/411/43 207/296/43 +f 212/301/41 273/424/41 213/302/41 +f 215/304/44 220/604/44 179/305/44 +f 217/307/39 267/410/39 218/308/39 +f 220/310/39 219/309/39 218/308/39 +f 218/308/39 177/265/39 220/310/39 +f 181/311/38 394/605/38 221/312/38 +f 215/316/38 216/313/38 221/312/38 +f 221/312/38 222/314/38 215/316/38 +f 224/317/45 248/385/45 182/318/45 +f 196/320/38 181/311/38 216/313/38 +f 226/322/46 188/353/46 227/323/46 +f 229/325/39 217/307/39 219/309/39 +f 209/298/43 266/606/43 175/327/43 +f 231/328/41 190/393/41 203/292/41 +f 191/279/39 190/278/39 232/329/39 +f 188/276/38 187/275/38 193/331/38 +f 185/273/39 184/272/39 235/333/39 +f 182/270/38 181/269/38 196/334/38 +f 179/267/39 178/266/39 237/336/39 +f 176/264/38 175/263/38 238/337/38 +f 193/339/38 187/358/38 240/340/38 +f 241/342/47 258/607/47 242/343/47 +f 237/345/39 178/355/39 225/346/39 +f 185/348/48 192/608/48 194/349/48 +f 237/345/40 244/347/40 236/351/40 +f 188/353/49 234/609/49 245/354/49 +f 178/355/39 393/610/39 246/356/39 +f 224/357/39 225/346/39 246/356/39 +f 246/356/39 183/271/39 224/357/39 +f 187/358/38 396/611/38 247/359/38 +f 248/360/38 240/340/38 247/359/38 +f 247/359/38 180/268/38 248/360/38 +f 249/361/38 255/380/38 250/362/38 +f 182/318/50 236/612/50 244/364/50 +f 235/365/39 184/375/39 227/366/39 +f 230/368/51 219/386/51 223/369/51 +f 235/365/43 245/367/43 234/371/43 +f 216/306/52 179/305/52 195/373/52 +f 184/375/39 395/613/39 252/376/39 +f 228/379/39 227/366/39 252/376/39 +f 252/376/39 253/377/39 228/379/39 +f 255/380/38 261/399/38 256/381/38 +f 226/382/38 250/362/38 256/381/38 +f 256/381/38 186/274/38 226/382/38 +f 250/383/53 226/322/53 228/324/53 +f 185/348/54 240/350/54 248/385/54 +f 219/386/55 220/604/55 215/304/55 +f 257/387/38 249/361/38 242/363/38 +f 243/344/47 242/343/47 250/383/47 +f 233/389/43 232/614/43 259/390/43 +f 231/328/41 259/615/41 232/392/41 +f 243/394/39 233/330/39 260/395/39 +f 249/391/56 257/616/56 260/397/56 +f 231/398/38 205/617/38 261/399/38 +f 259/400/38 231/398/38 255/380/38 +f 254/378/39 191/279/39 233/330/39 +f 258/401/43 241/396/43 260/395/43 +f 253/377/39 189/277/39 191/279/39 +f 262/403/57 264/618/57 263/404/57 +f 202/405/39 201/290/39 263/404/39 +f 263/404/58 201/290/58 200/288/58 +f 223/315/38 176/264/38 239/338/38 +f 265/408/39 266/409/39 217/307/39 +f 266/409/39 209/619/39 267/410/39 +f 268/411/41 212/301/41 214/303/41 +f 222/314/38 174/262/38 176/264/38 +f 239/413/41 238/620/41 265/414/41 +f 251/407/38 239/338/38 269/416/38 +f 270/418/51 272/428/51 230/368/51 +f 229/415/59 271/431/59 269/419/59 +f 271/420/39 229/325/39 230/326/39 +f 175/327/43 266/606/43 265/422/43 +f 212/301/39 271/420/39 272/421/39 +f 269/416/38 208/621/38 207/425/38 +f 213/427/51 273/622/51 272/428/51 +f 270/417/38 269/416/38 214/426/38 +f 268/411/39 206/295/39 271/420/39 +f 206/430/60 208/623/60 269/419/60 +f 275/433/20 397/624/20 276/434/20 +f 276/434/20 398/625/20 399/626/20 +f 399/626/20 274/432/20 276/434/20 +f 279/437/61 400/627/61 401/628/61 +f 401/628/61 402/629/61 279/437/61 +f 402/629/61 277/435/61 279/437/61 +f 280/438/61 283/441/61 281/439/61 +f 283/441/15 286/630/15 284/442/15 +f 285/443/16 287/631/16 280/438/16 +f 281/439/62 284/632/62 285/444/62 +f 286/445/63 283/441/63 280/438/63 +f 290/449/17 403/633/17 288/447/17 +f 288/447/17 404/634/17 289/448/17 +f 289/448/17 405/635/17 290/449/17 +f 293/452/64 406/636/64 291/450/64 +f 406/636/64 407/637/64 291/450/64 +f 407/637/64 408/638/64 291/450/64 +f 294/453/64 297/456/64 295/454/64 +f 297/456/15 301/639/15 298/457/15 +f 299/458/16 294/453/16 296/455/16 +f 298/460/10 300/640/10 296/455/10 +f 297/456/9 294/453/9 299/461/9 +f 304/465/18 409/641/18 302/463/18 +f 302/463/18 410/642/18 303/464/18 +f 303/464/18 411/643/18 304/465/18 +f 307/468/37 412/644/37 413/645/37 +f 413/645/37 414/646/37 307/468/37 +f 414/646/37 305/466/37 307/468/37 +f 308/469/37 313/474/37 309/470/37 +f 309/470/15 314/647/15 311/472/15 +f 312/473/16 315/648/16 313/474/16 +f 311/475/73 312/649/73 308/469/73 +f 314/476/66 309/470/66 313/474/66 +f 318/480/43 415/650/43 416/651/43 +f 416/651/43 417/652/43 318/480/43 +f 417/652/43 316/478/43 318/480/43 +f 320/482/67 418/653/67 321/483/67 +f 321/483/67 419/654/67 420/655/67 +f 420/655/67 319/481/67 321/483/67 +f 322/484/67 326/488/67 323/485/67 +f 325/487/38 329/656/38 326/488/38 +f 327/489/39 324/486/39 323/485/39 +f 322/484/68 324/486/68 327/491/68 +f 329/493/69 328/657/69 323/485/69 +f 332/496/40 421/658/40 330/494/40 +f 330/494/40 422/659/40 331/495/40 +f 331/495/40 423/660/40 332/496/40 +f 335/499/70 424/661/70 333/497/70 +f 424/661/70 425/662/70 333/497/70 +f 425/662/70 426/663/70 333/497/70 +f 336/500/70 340/504/70 337/501/70 +f 339/503/38 343/664/38 340/504/38 +f 338/502/39 337/501/39 341/505/39 +f 338/502/10 342/665/10 339/507/10 +f 341/508/9 337/501/9 340/504/9 +f 346/512/41 427/666/41 344/510/41 +f 344/510/41 428/667/41 345/511/41 +f 345/511/41 429/668/41 346/512/41 +f 349/515/60 430/669/60 347/513/60 +f 430/669/60 431/670/60 347/513/60 +f 431/670/60 432/671/60 347/513/60 +f 350/516/60 354/520/60 351/517/60 +f 353/519/38 357/672/38 351/517/38 +f 355/521/39 350/516/39 352/518/39 +f 350/516/74 355/673/74 353/523/74 +f 357/524/72 356/674/72 352/518/72 +s 1 +f 31/675/75 366/676/76 365/677/77 +f 361/678/78 367/679/79 366/676/76 +f 360/680/80 34/681/81 367/679/79 +f 364/682/82 368/683/83 34/681/81 +f 33/684/84 35/685/85 368/683/83 +f 363/686/86 369/687/87 35/685/85 +f 32/688/88 36/689/89 369/687/87 +f 362/690/90 365/691/77 36/689/89 +f 45/692/91 376/693/92 375/694/77 +f 371/695/93 377/696/79 376/693/92 +f 370/697/94 48/698/95 377/696/79 +f 374/699/82 378/700/83 48/698/95 +f 47/701/96 49/702/85 378/700/83 +f 373/703/86 379/704/87 49/702/85 +f 46/705/97 50/706/98 379/704/87 +f 372/707/90 375/708/77 50/706/98 +f 381/709/99 433/710/100 434/711/9 +f 380/712/101 435/713/6 433/710/100 +f 60/714/102 436/715/103 435/713/6 +f 59/716/104 437/717/10 436/715/103 +f 384/718/105 438/719/106 437/720/10 +f 383/721/107 439/722/8 438/719/106 +f 61/723/108 440/724/109 439/722/8 +f 440/724/109 381/709/99 434/711/9 +f 386/725/110 441/726/100 442/727/9 +f 385/728/111 443/729/6 441/726/100 +f 63/730/112 444/731/103 443/729/6 +f 62/732/113 445/733/10 444/731/103 +f 389/734/114 446/735/106 445/736/10 +f 388/737/115 447/738/8 446/735/106 +f 64/739/116 448/740/109 447/738/8 +f 387/741/117 442/727/9 448/740/109 +f 110/572/118 449/742/37 74/91/119 +f 146/573/120 450/743/37 77/94/121 +f 120/574/122 451/744/64 80/97/123 +f 156/575/124 452/745/64 83/100/125 +f 148/576/126 453/746/61 86/103/127 +f 102/577/128 454/747/61 89/106/129 +f 118/137/121 455/748/37 449/749/37 +f 77/94/121 455/748/37 117/136/121 +f 120/141/122 450/750/37 456/751/130 +f 121/143/131 450/750/37 119/140/119 +f 146/184/120 451/752/64 456/753/130 +f 83/100/125 451/752/64 145/183/125 +f 148/187/126 452/754/64 457/755/132 +f 147/186/123 451/744/64 452/754/64 +f 156/206/124 453/756/61 457/757/132 +f 157/208/129 453/756/61 155/205/129 +f 159/210/127 458/758/61 454/759/61 +f 158/209/127 453/746/61 458/758/61 +f 103/226/133 454/759/61 104/760/134 +f 89/106/129 458/761/61 157/208/129 +f 108/239/135 449/749/37 109/762/136 +f 74/91/119 455/763/37 121/143/131 +f 459/764/60 210/597/137 174/262/138 +f 460/765/60 393/598/139 177/265/140 +f 461/766/70 394/599/141 180/268/142 +f 462/767/70 395/600/143 183/271/144 +f 463/768/67 396/601/145 186/274/146 +f 464/769/67 203/602/147 189/277/148 +f 267/410/140 465/770/60 218/308/140 +f 465/770/60 177/265/140 218/308/140 +f 394/605/141 460/771/60 221/312/149 +f 460/771/60 222/314/138 221/312/149 +f 393/610/139 461/772/70 246/356/144 +f 461/772/70 183/271/144 246/356/144 +f 396/611/145 462/773/70 247/359/142 +f 247/359/142 461/766/70 180/268/142 +f 395/613/143 463/774/67 252/376/148 +f 463/774/67 253/377/148 252/376/148 +f 261/399/146 466/775/67 256/381/146 +f 256/381/146 463/768/67 186/274/146 +f 205/617/150 464/776/67 261/399/146 +f 466/777/67 189/277/148 253/377/148 +f 209/619/151 459/778/60 267/410/140 +f 465/779/60 174/262/138 222/314/138 +f 276/780/152 401/781/153 400/782/154 +f 397/783/155 402/784/156 401/781/153 +f 275/785/157 277/786/158 402/784/156 +f 274/787/159 278/788/160 277/786/158 +f 399/789/161 279/790/162 278/788/160 +f 279/790/162 276/791/152 400/792/154 +f 406/793/163 403/794/164 407/795/165 +f 403/794/164 408/796/166 407/795/165 +f 290/797/167 291/798/168 408/796/166 +f 405/799/169 292/800/170 291/798/168 +f 289/801/171 293/802/172 292/800/170 +f 293/802/172 288/803/173 406/804/163 +f 302/805/174 413/806/175 412/807/176 +f 409/808/177 414/809/178 413/806/175 +f 304/810/179 305/811/180 414/809/178 +f 411/812/181 306/813/182 305/811/180 +f 303/814/183 307/815/184 306/813/182 +f 307/815/184 302/816/174 412/817/176 +f 320/818/185 318/819/186 418/820/187 +f 319/821/188 415/822/189 320/818/185 +f 420/823/190 416/824/191 319/821/188 +f 419/825/192 417/826/193 420/823/190 +f 321/827/194 316/828/195 419/825/192 +f 321/827/194 318/829/186 317/830/196 +f 424/831/197 421/832/198 332/833/199 +f 334/834/200 421/832/198 335/835/201 +f 333/836/202 330/837/203 334/834/200 +f 426/838/204 422/839/205 333/836/202 +f 425/840/206 331/841/207 426/838/204 +f 424/842/197 423/843/208 425/840/206 +f 430/844/209 427/845/210 346/846/211 +f 348/847/212 427/845/210 349/848/213 +f 348/847/212 428/849/214 344/850/215 +f 432/851/216 428/849/214 347/852/217 +f 431/853/218 345/854/219 432/851/216 +f 430/855/209 429/856/220 431/853/218 +f 467/857/221 468/858/222 469/859/223 +f 470/860/224 471/861/225 467/857/221 +f 472/862/226 473/863/227 470/860/224 +f 474/864/228 475/865/229 472/862/226 +f 476/866/230 477/867/231 474/864/228 +f 478/868/232 479/869/233 476/866/230 +f 480/870/234 481/871/235 478/868/232 +f 482/872/236 469/859/223 483/873/237 +f 482/872/236 470/860/224 467/857/221 +f 484/874/238 472/862/226 470/860/224 +f 485/875/239 474/864/228 472/862/226 +f 486/876/240 476/866/230 474/864/228 +f 487/877/241 478/868/232 476/866/230 +f 488/878/242 480/870/234 478/868/232 +f 489/879/243 482/880/236 483/881/237 +f 490/882/244 484/883/238 482/880/236 +f 491/884/245 485/885/239 484/883/238 +f 492/886/246 486/887/240 485/885/239 +f 493/888/247 487/889/241 486/887/240 +f 494/890/248 488/891/242 487/889/241 +f 495/892/249 496/893/250 488/891/242 +f 468/858/222 490/882/244 489/879/243 +f 473/863/227 490/882/244 471/861/225 +f 475/865/229 491/884/245 473/863/227 +f 477/867/231 492/886/246 475/865/229 +f 479/869/233 493/888/247 477/867/231 +f 481/871/235 494/890/248 479/869/233 +f 497/894/251 495/892/249 481/871/235 +f 498/895/252 499/896/253 500/897/254 +f 501/898/255 502/899/256 499/896/253 +f 503/900/257 504/901/258 502/899/256 +f 505/902/259 506/903/260 504/901/258 +f 507/904/261 508/905/262 506/903/260 +f 509/906/263 510/907/264 508/905/262 +f 511/908/265 512/909/266 510/907/264 +f 500/897/254 513/910/267 514/911/268 +f 513/910/267 502/899/256 515/912/269 +f 515/912/269 504/901/258 516/913/270 +f 516/913/270 506/903/260 517/914/271 +f 517/914/271 508/905/262 518/915/272 +f 518/915/272 510/907/264 519/916/273 +f 519/916/273 512/909/266 520/917/274 +f 521/918/275 513/919/267 522/920/276 +f 522/920/276 515/921/269 523/922/277 +f 523/922/277 516/923/270 524/924/278 +f 524/924/278 517/925/271 525/926/279 +f 525/926/279 518/927/272 526/928/280 +f 526/928/280 519/929/273 527/930/281 +f 527/930/281 520/931/274 528/932/282 +f 498/895/252 522/920/276 501/898/255 +f 522/920/276 503/900/257 501/898/255 +f 523/922/277 505/902/259 503/900/257 +f 524/924/278 507/904/261 505/902/259 +f 525/926/279 509/906/263 507/904/261 +f 526/928/280 511/908/265 509/906/263 +f 527/930/281 529/933/283 511/908/265 +f 530/934/284 531/935/285 532/936/286 +f 532/937/286 533/938/287 534/939/288 +f 533/938/287 535/940/289 534/939/288 +f 536/941/290 530/934/284 535/940/289 +f 537/942/291 538/943/292 539/944/293 +f 540/945/294 541/946/295 537/942/291 +f 542/947/296 543/948/297 540/945/294 +f 544/949/298 545/950/299 542/947/296 +f 546/951/300 547/952/301 544/949/298 +f 548/953/302 549/954/303 546/951/300 +f 550/955/304 551/956/305 548/953/302 +f 552/957/306 553/958/307 550/955/304 +f 535/940/289 554/959/308 552/957/306 +f 555/960/309 539/944/293 556/961/310 +f 557/962/311 537/942/291 555/960/309 +f 557/962/311 542/947/296 540/945/294 +f 558/963/312 542/947/296 559/964/313 +f 560/965/314 544/949/298 558/963/312 +f 561/966/315 546/951/300 560/965/314 +f 562/967/316 548/953/302 561/966/315 +f 563/968/317 550/955/304 562/967/316 +f 534/939/288 552/957/306 563/968/317 +f 564/969/318 555/960/309 556/961/310 +f 565/970/319 557/962/311 555/960/309 +f 566/971/320 559/964/313 557/962/311 +f 567/972/321 558/963/312 559/964/313 +f 568/973/322 560/965/314 558/963/312 +f 569/974/323 561/966/315 560/965/314 +f 570/975/324 562/967/316 561/966/315 +f 571/976/325 563/968/317 562/967/316 +f 572/977/326 534/939/288 563/968/317 +f 538/943/292 565/978/319 564/979/318 +f 541/946/295 566/980/320 565/978/319 +f 545/950/299 566/980/320 543/948/297 +f 545/950/299 568/981/322 567/982/321 +f 547/952/301 569/983/323 568/981/322 +f 549/954/303 570/984/324 569/983/323 +f 551/956/305 571/985/325 570/984/324 +f 553/958/307 572/986/326 571/985/325 +f 554/959/308 532/936/286 572/986/326 +f 573/987/327 574/988/328 575/989/329 +f 576/990/330 577/991/331 574/992/328 +f 578/993/332 577/991/331 579/994/333 +f 573/987/327 580/995/334 578/993/332 +f 581/996/335 582/997/336 583/998/337 +f 584/999/338 585/1000/339 582/997/336 +f 586/1001/340 587/1002/341 585/1000/339 +f 588/1003/342 589/1004/343 587/1002/341 +f 590/1005/344 591/1006/345 589/1004/343 +f 592/1007/346 593/1008/347 591/1006/345 +f 594/1009/348 595/1010/349 593/1008/347 +f 596/1011/350 597/1012/351 595/1010/349 +f 598/1013/352 578/993/332 597/1012/351 +f 583/998/337 599/1014/353 600/1015/354 +f 582/997/336 601/1016/355 599/1014/353 +f 601/1016/355 587/1002/341 602/1017/356 +f 587/1002/341 603/1018/357 602/1017/356 +f 589/1004/343 604/1019/358 603/1018/357 +f 591/1006/345 605/1020/359 604/1019/358 +f 593/1008/347 606/1021/360 605/1020/359 +f 595/1010/349 607/1022/361 606/1021/360 +f 597/1012/351 579/994/333 607/1022/361 +f 608/1023/362 599/1014/353 609/1024/363 +f 609/1024/363 601/1016/355 610/1025/364 +f 610/1025/364 602/1017/356 611/1026/365 +f 611/1026/365 603/1018/357 612/1027/366 +f 612/1027/366 604/1019/358 613/1028/367 +f 613/1028/367 605/1020/359 614/1029/368 +f 614/1029/368 606/1021/360 615/1030/369 +f 615/1030/369 607/1022/361 616/1031/370 +f 616/1031/370 579/994/333 576/990/330 +f 581/996/335 609/1032/363 584/999/338 +f 584/999/338 610/1033/364 586/1001/340 +f 610/1033/364 588/1003/342 586/1001/340 +f 588/1003/342 612/1034/366 590/1005/344 +f 590/1005/344 613/1035/367 592/1007/346 +f 592/1007/346 614/1036/368 594/1009/348 +f 594/1009/348 615/1037/369 596/1011/350 +f 596/1011/350 616/1038/370 598/1013/352 +f 598/1013/352 576/1039/330 573/987/327 +f 617/1040/371 618/1041/372 619/1042/373 +f 620/1043/374 621/1044/375 617/1040/371 +f 620/1043/374 622/1045/376 623/1046/377 +f 624/1047/378 617/1040/371 619/1042/373 +f 625/1048/379 620/1043/374 617/1040/371 +f 626/1049/380 620/1043/374 627/1050/381 +f 628/1051/382 625/1052/379 624/1053/378 +f 629/1054/383 627/1055/381 625/1052/379 +f 630/1056/384 627/1055/381 631/1057/385 +f 621/1044/375 628/1051/382 618/1041/372 +f 623/1046/377 629/1054/383 621/1044/375 +f 623/1046/377 630/1056/384 631/1057/385 +f 622/1045/376 632/1058/386 630/1056/384 +f 630/1056/384 633/1059/387 626/1060/380 +f 634/1061/388 633/1062/387 635/1063/389 +f 622/1045/376 635/1063/389 636/1064/390 +f 637/1065/391 638/1066/392 639/1067/393 +f 640/1068/394 641/1069/395 638/1066/392 +f 641/1069/395 642/1070/396 643/1071/397 +f 644/1072/398 638/1066/392 645/1073/399 +f 645/1073/399 641/1069/395 646/1074/400 +f 641/1069/395 647/1075/401 646/1074/400 +f 648/1076/402 645/1077/399 649/1078/403 +f 649/1078/403 646/1079/400 650/1080/404 +f 646/1079/400 651/1081/405 650/1080/404 +f 648/1076/402 640/1068/394 637/1065/391 +f 649/1078/403 652/1082/406 640/1068/394 +f 652/1082/406 651/1081/405 642/1070/396 +f 653/1083/407 642/1070/396 651/1081/405 +f 654/1084/408 651/1081/405 647/1085/401 +f 643/1071/397 654/1086/408 647/1075/401 +f 642/1070/396 655/1087/409 643/1071/397 +f 31/675/75 361/678/78 366/676/76 +f 361/678/78 360/680/80 367/679/79 +f 360/680/80 364/682/82 34/681/81 +f 364/682/82 33/684/84 368/683/83 +f 33/684/84 363/686/86 35/685/85 +f 363/686/86 32/688/88 369/687/87 +f 32/688/88 362/690/90 36/689/89 +f 362/690/90 31/1088/75 365/691/77 +f 45/692/91 371/695/93 376/693/92 +f 371/695/93 370/697/94 377/696/79 +f 370/697/94 374/699/82 48/698/95 +f 374/699/82 47/701/96 378/700/83 +f 47/701/96 373/703/86 49/702/85 +f 373/703/86 46/705/97 379/704/87 +f 46/705/97 372/707/90 50/706/98 +f 372/707/90 45/1089/91 375/708/77 +f 381/709/99 380/712/101 433/710/100 +f 380/712/101 60/714/102 435/713/6 +f 60/714/102 59/716/104 436/715/103 +f 59/716/104 384/1090/105 437/717/10 +f 384/718/105 383/721/107 438/719/106 +f 383/721/107 61/723/108 439/722/8 +f 61/723/108 382/1091/410 440/724/109 +f 440/724/109 382/1091/410 381/709/99 +f 386/725/110 385/728/111 441/726/100 +f 385/728/111 63/730/112 443/729/6 +f 63/730/112 62/732/113 444/731/103 +f 62/732/113 389/1092/114 445/733/10 +f 389/734/114 388/737/115 446/735/106 +f 388/737/115 64/739/116 447/738/8 +f 64/739/116 387/741/117 448/740/109 +f 387/741/117 386/725/110 442/727/9 +f 110/572/118 109/1093/136 449/742/37 +f 146/573/120 456/753/130 450/743/37 +f 120/574/122 456/1094/130 451/744/64 +f 156/575/124 457/757/132 452/745/64 +f 148/576/126 457/1095/132 453/746/61 +f 102/577/128 104/1096/134 454/747/61 +f 118/137/121 117/136/121 455/748/37 +f 77/94/121 450/743/37 455/748/37 +f 120/141/122 119/140/119 450/750/37 +f 121/143/131 455/763/37 450/750/37 +f 146/184/120 145/183/125 451/752/64 +f 83/100/125 452/745/64 451/752/64 +f 148/187/126 147/186/123 452/754/64 +f 147/186/123 80/97/123 451/744/64 +f 156/206/124 155/205/129 453/756/61 +f 157/208/129 458/761/61 453/756/61 +f 159/210/127 158/209/127 458/758/61 +f 158/209/127 86/103/127 453/746/61 +f 103/226/133 159/210/127 454/759/61 +f 89/106/129 454/747/61 458/761/61 +f 108/239/135 118/137/121 449/749/37 +f 74/91/119 449/742/37 455/763/37 +f 459/764/60 211/1097/411 210/597/137 +f 460/765/60 656/1098/412 393/598/139 +f 461/766/70 656/1099/412 394/599/141 +f 462/767/70 657/1100/413 395/600/143 +f 463/768/67 657/1101/413 396/601/145 +f 464/769/67 204/1102/414 203/602/147 +f 267/410/140 459/778/60 465/770/60 +f 465/770/60 460/765/60 177/265/140 +f 394/605/141 656/1103/412 460/771/60 +f 460/771/60 465/779/60 222/314/138 +f 393/610/139 656/1098/412 461/772/70 +f 461/772/70 462/767/70 183/271/144 +f 396/611/145 657/1104/413 462/773/70 +f 247/359/142 462/773/70 461/766/70 +f 395/613/143 657/1100/413 463/774/67 +f 463/774/67 466/777/67 253/377/148 +f 261/399/146 464/776/67 466/775/67 +f 256/381/146 466/775/67 463/768/67 +f 205/617/150 204/1105/414 464/776/67 +f 466/777/67 464/769/67 189/277/148 +f 209/619/151 211/1106/411 459/778/60 +f 465/779/60 459/764/60 174/262/138 +f 276/780/152 397/783/155 401/781/153 +f 397/783/155 275/785/157 402/784/156 +f 275/785/157 274/787/159 277/786/158 +f 274/787/159 399/789/161 278/788/160 +f 399/789/161 398/1107/415 279/790/162 +f 279/790/162 398/1107/415 276/791/152 +f 406/793/163 288/1108/173 403/794/164 +f 403/794/164 290/797/167 408/796/166 +f 290/797/167 405/799/169 291/798/168 +f 405/799/169 289/801/171 292/800/170 +f 289/801/171 404/1109/416 293/802/172 +f 293/802/172 404/1109/416 288/803/173 +f 302/805/174 409/808/177 413/806/175 +f 409/808/177 304/810/179 414/809/178 +f 304/810/179 411/812/181 305/811/180 +f 411/812/181 303/814/183 306/813/182 +f 303/814/183 410/1110/417 307/815/184 +f 307/815/184 410/1110/417 302/816/174 +f 320/818/185 415/822/189 318/819/186 +f 319/821/188 416/824/191 415/822/189 +f 420/823/190 417/826/193 416/824/191 +f 419/825/192 316/828/195 417/826/193 +f 321/827/194 317/830/196 316/828/195 +f 321/827/194 418/1111/187 318/829/186 +f 424/831/197 335/835/201 421/832/198 +f 334/834/200 330/837/203 421/832/198 +f 333/836/202 422/839/205 330/837/203 +f 426/838/204 331/841/207 422/839/205 +f 425/840/206 423/843/208 331/841/207 +f 424/842/197 332/1112/199 423/843/208 +f 430/844/209 349/848/213 427/845/210 +f 348/847/212 344/850/215 427/845/210 +f 348/847/212 347/852/217 428/849/214 +f 432/851/216 345/854/219 428/849/214 +f 431/853/218 429/856/220 345/854/219 +f 430/855/209 346/1113/211 429/856/220 +f 467/857/221 471/861/225 468/858/222 +f 470/860/224 473/863/227 471/861/225 +f 472/862/226 475/865/229 473/863/227 +f 474/864/228 477/867/231 475/865/229 +f 476/866/230 479/869/233 477/867/231 +f 478/868/232 481/871/235 479/869/233 +f 480/870/234 497/894/251 481/871/235 +f 482/872/236 467/857/221 469/859/223 +f 482/872/236 484/874/238 470/860/224 +f 484/874/238 485/875/239 472/862/226 +f 485/875/239 486/876/240 474/864/228 +f 486/876/240 487/877/241 476/866/230 +f 487/877/241 488/878/242 478/868/232 +f 488/878/242 496/1114/250 480/870/234 +f 489/879/243 490/882/244 482/880/236 +f 490/882/244 491/884/245 484/883/238 +f 491/884/245 492/886/246 485/885/239 +f 492/886/246 493/888/247 486/887/240 +f 493/888/247 494/890/248 487/889/241 +f 494/890/248 495/892/249 488/891/242 +f 495/892/249 658/1115/418 496/893/250 +f 468/858/222 471/861/225 490/882/244 +f 473/863/227 491/884/245 490/882/244 +f 475/865/229 492/886/246 491/884/245 +f 477/867/231 493/888/247 492/886/246 +f 479/869/233 494/890/248 493/888/247 +f 481/871/235 495/892/249 494/890/248 +f 497/894/251 658/1115/418 495/892/249 +f 498/895/252 501/898/255 499/896/253 +f 501/898/255 503/900/257 502/899/256 +f 503/900/257 505/902/259 504/901/258 +f 505/902/259 507/904/261 506/903/260 +f 507/904/261 509/906/263 508/905/262 +f 509/906/263 511/908/265 510/907/264 +f 511/908/265 529/933/283 512/909/266 +f 500/897/254 499/896/253 513/910/267 +f 513/910/267 499/896/253 502/899/256 +f 515/912/269 502/899/256 504/901/258 +f 516/913/270 504/901/258 506/903/260 +f 517/914/271 506/903/260 508/905/262 +f 518/915/272 508/905/262 510/907/264 +f 519/916/273 510/907/264 512/909/266 +f 521/918/275 514/1116/268 513/919/267 +f 522/920/276 513/919/267 515/921/269 +f 523/922/277 515/921/269 516/923/270 +f 524/924/278 516/923/270 517/925/271 +f 525/926/279 517/925/271 518/927/272 +f 526/928/280 518/927/272 519/929/273 +f 527/930/281 519/929/273 520/931/274 +f 498/895/252 521/918/275 522/920/276 +f 522/920/276 523/922/277 503/900/257 +f 523/922/277 524/924/278 505/902/259 +f 524/924/278 525/926/279 507/904/261 +f 525/926/279 526/928/280 509/906/263 +f 526/928/280 527/930/281 511/908/265 +f 527/930/281 528/932/282 529/933/283 +f 530/934/284 659/1117/419 531/935/285 +f 532/937/286 531/1118/285 533/938/287 +f 533/938/287 536/941/290 535/940/289 +f 536/941/290 659/1117/419 530/934/284 +f 537/942/291 541/946/295 538/943/292 +f 540/945/294 543/948/297 541/946/295 +f 542/947/296 545/950/299 543/948/297 +f 544/949/298 547/952/301 545/950/299 +f 546/951/300 549/954/303 547/952/301 +f 548/953/302 551/956/305 549/954/303 +f 550/955/304 553/958/307 551/956/305 +f 552/957/306 554/959/308 553/958/307 +f 535/940/289 530/934/284 554/959/308 +f 555/960/309 537/942/291 539/944/293 +f 557/962/311 540/945/294 537/942/291 +f 557/962/311 559/964/313 542/947/296 +f 558/963/312 544/949/298 542/947/296 +f 560/965/314 546/951/300 544/949/298 +f 561/966/315 548/953/302 546/951/300 +f 562/967/316 550/955/304 548/953/302 +f 563/968/317 552/957/306 550/955/304 +f 534/939/288 535/940/289 552/957/306 +f 564/969/318 565/970/319 555/960/309 +f 565/970/319 566/971/320 557/962/311 +f 566/971/320 567/972/321 559/964/313 +f 567/972/321 568/973/322 558/963/312 +f 568/973/322 569/974/323 560/965/314 +f 569/974/323 570/975/324 561/966/315 +f 570/975/324 571/976/325 562/967/316 +f 571/976/325 572/977/326 563/968/317 +f 572/977/326 532/937/286 534/939/288 +f 538/943/292 541/946/295 565/978/319 +f 541/946/295 543/948/297 566/980/320 +f 545/950/299 567/982/321 566/980/320 +f 545/950/299 547/952/301 568/981/322 +f 547/952/301 549/954/303 569/983/323 +f 549/954/303 551/956/305 570/984/324 +f 551/956/305 553/958/307 571/985/325 +f 553/958/307 554/959/308 572/986/326 +f 554/959/308 530/934/284 532/936/286 +f 573/987/327 576/1039/330 574/988/328 +f 576/990/330 579/994/333 577/991/331 +f 578/993/332 580/995/334 577/991/331 +f 573/987/327 575/989/329 580/995/334 +f 581/996/335 584/999/338 582/997/336 +f 584/999/338 586/1001/340 585/1000/339 +f 586/1001/340 588/1003/342 587/1002/341 +f 588/1003/342 590/1005/344 589/1004/343 +f 590/1005/344 592/1007/346 591/1006/345 +f 592/1007/346 594/1009/348 593/1008/347 +f 594/1009/348 596/1011/350 595/1010/349 +f 596/1011/350 598/1013/352 597/1012/351 +f 598/1013/352 573/987/327 578/993/332 +f 583/998/337 582/997/336 599/1014/353 +f 582/997/336 585/1000/339 601/1016/355 +f 601/1016/355 585/1000/339 587/1002/341 +f 587/1002/341 589/1004/343 603/1018/357 +f 589/1004/343 591/1006/345 604/1019/358 +f 591/1006/345 593/1008/347 605/1020/359 +f 593/1008/347 595/1010/349 606/1021/360 +f 595/1010/349 597/1012/351 607/1022/361 +f 597/1012/351 578/993/332 579/994/333 +f 608/1023/362 600/1015/354 599/1014/353 +f 609/1024/363 599/1014/353 601/1016/355 +f 610/1025/364 601/1016/355 602/1017/356 +f 611/1026/365 602/1017/356 603/1018/357 +f 612/1027/366 603/1018/357 604/1019/358 +f 613/1028/367 604/1019/358 605/1020/359 +f 614/1029/368 605/1020/359 606/1021/360 +f 615/1030/369 606/1021/360 607/1022/361 +f 616/1031/370 607/1022/361 579/994/333 +f 581/996/335 608/1119/362 609/1032/363 +f 584/999/338 609/1032/363 610/1033/364 +f 610/1033/364 611/1120/365 588/1003/342 +f 588/1003/342 611/1120/365 612/1034/366 +f 590/1005/344 612/1034/366 613/1035/367 +f 592/1007/346 613/1035/367 614/1036/368 +f 594/1009/348 614/1036/368 615/1037/369 +f 596/1011/350 615/1037/369 616/1038/370 +f 598/1013/352 616/1038/370 576/1039/330 +f 617/1040/371 621/1044/375 618/1041/372 +f 620/1043/374 623/1046/377 621/1044/375 +f 620/1043/374 634/1061/388 622/1045/376 +f 624/1047/378 625/1048/379 617/1040/371 +f 625/1048/379 627/1050/381 620/1043/374 +f 626/1049/380 634/1061/388 620/1043/374 +f 628/1051/382 629/1054/383 625/1052/379 +f 629/1054/383 631/1057/385 627/1055/381 +f 630/1056/384 626/1060/380 627/1055/381 +f 621/1044/375 629/1054/383 628/1051/382 +f 623/1046/377 631/1057/385 629/1054/383 +f 623/1046/377 622/1045/376 630/1056/384 +f 622/1045/376 636/1064/390 632/1058/386 +f 630/1056/384 632/1058/386 633/1059/387 +f 634/1061/388 626/1049/380 633/1062/387 +f 622/1045/376 634/1061/388 635/1063/389 +f 637/1065/391 640/1068/394 638/1066/392 +f 640/1068/394 652/1082/406 641/1069/395 +f 641/1069/395 652/1082/406 642/1070/396 +f 644/1072/398 639/1067/393 638/1066/392 +f 645/1073/399 638/1066/392 641/1069/395 +f 641/1069/395 643/1071/397 647/1075/401 +f 648/1076/402 644/1121/398 645/1077/399 +f 649/1078/403 645/1077/399 646/1079/400 +f 646/1079/400 647/1085/401 651/1081/405 +f 648/1076/402 649/1078/403 640/1068/394 +f 649/1078/403 650/1080/404 652/1082/406 +f 652/1082/406 650/1080/404 651/1081/405 +f 653/1083/407 660/1122/420 642/1070/396 +f 654/1084/408 653/1083/407 651/1081/405 +f 643/1071/397 655/1087/409 654/1086/408 +f 642/1070/396 660/1122/420 655/1087/409 diff --git a/src/main/resources/assets/hbm/models/blocks/crane_buffer.obj b/src/main/resources/assets/hbm/models/blocks/crane_buffer.obj new file mode 100644 index 000000000..22810c603 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/crane_buffer.obj @@ -0,0 +1,141 @@ +# Blender v2.79 (sub 0) OBJ File: 'crane_buffer.blend' +# www.blender.org +o Back +v 0.500000 0.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.750000 0.500000 +v 0.500000 0.750000 -0.500000 +vt 1.000000 0.750000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt -0.000000 0.750000 +vn 1.0000 0.0000 0.0000 +s off +f 4/1/1 1/2/1 2/3/1 +f 4/1/1 3/4/1 1/2/1 +o Side +v -0.500000 0.250000 0.375000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.250000 -0.375000 +v 0.500000 0.000000 -0.500000 +v -0.500000 0.625000 0.375000 +v 0.500000 0.750000 0.500000 +v -0.500000 0.625000 -0.375000 +v 0.500000 0.750000 -0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.750000 -0.500000 +v -0.500000 0.750000 0.500000 +vt 1.000000 0.750000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.750000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.125000 0.250000 +vt 1.000000 0.000000 +vt 0.875000 0.250000 +vt -0.000000 0.750000 +vt 0.000000 0.000000 +vt 1.000000 0.750000 +vt 0.875000 0.625000 +vt 0.125000 0.625000 +vt -0.000000 0.750000 +vt -0.000000 0.750000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +s off +f 15/5/2 8/6/2 13/7/2 +f 10/8/3 14/9/3 6/10/3 +f 7/11/4 14/12/4 5/13/4 +f 7/11/4 15/14/4 13/15/4 +f 5/13/4 16/16/4 9/17/4 +f 9/17/4 15/14/4 11/18/4 +f 15/5/2 12/19/2 8/6/2 +f 10/8/3 16/20/3 14/9/3 +f 7/11/4 13/15/4 14/12/4 +f 7/11/4 11/18/4 15/14/4 +f 5/13/4 14/12/4 16/16/4 +f 9/17/4 16/16/4 15/14/4 +o Inner +v 0.000000 0.250000 -0.375000 +v 0.000000 0.250000 0.375000 +v 0.000000 0.625000 -0.375000 +v 0.000000 0.625000 0.375000 +vt 0.875000 0.250000 +vt 0.125000 0.625000 +vt 0.125000 0.250000 +vt 0.875000 0.625000 +vn -1.0000 0.0000 0.0000 +s off +f 18/21/5 19/22/5 17/23/5 +f 18/21/5 20/24/5 19/22/5 +o InnerSide +v -0.500000 0.250000 0.375000 +v -0.500000 0.250000 -0.375000 +v -0.500000 0.625000 0.375000 +v -0.500000 0.625000 -0.375000 +v 0.000000 0.250000 -0.375000 +v 0.000000 0.250000 0.375000 +v 0.000000 0.625000 -0.375000 +v 0.000000 0.625000 0.375000 +vt 0.125000 1.000000 +vt 0.875000 0.500000 +vt 0.875000 1.000000 +vt 0.312500 1.000000 +vt 0.687500 0.500000 +vt 0.687500 1.000000 +vt 0.312500 1.000000 +vt 0.687500 0.500000 +vt 0.687500 1.000000 +vt 0.125000 0.500000 +vt 0.312500 0.500000 +vt 0.312500 0.500000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 24/25/6 28/26/6 23/27/6 +f 22/28/7 27/29/7 24/30/7 +f 23/31/8 26/32/8 21/33/8 +f 24/25/6 27/34/6 28/26/6 +f 22/28/7 25/35/7 27/29/7 +f 23/31/8 28/36/8 26/32/8 +o Belt +v -0.500000 0.250000 0.375000 +v -0.500000 0.250000 -0.375000 +v 0.000000 0.250000 -0.375000 +v 0.000000 0.250000 0.375000 +vt 0.875000 0.000000 +vt 0.125000 0.500000 +vt 0.125000 0.000000 +vt 0.875000 0.500000 +vn 0.0000 1.0000 0.0000 +s off +f 29/37/9 31/38/9 30/39/9 +f 29/37/9 32/40/9 31/38/9 +o Top_Top.001 +v 0.500000 0.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.750000 0.500000 +v 0.500000 0.750000 -0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.750000 -0.500000 +v -0.500000 0.750000 0.500000 +vt 0.999900 0.000100 +vt 0.000100 0.999900 +vt 0.000100 0.000100 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.999900 0.999900 +vt 1.000000 0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 37/41/10 33/42/10 38/43/10 +f 35/44/11 39/45/11 40/46/11 +f 37/41/10 34/47/10 33/42/10 +f 35/44/11 36/48/11 39/45/11 diff --git a/src/main/resources/assets/hbm/models/blocks/crt.obj b/src/main/resources/assets/hbm/models/blocks/crt.obj new file mode 100644 index 000000000..402e7d9ed --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/crt.obj @@ -0,0 +1,126 @@ +# Blender v2.79 (sub 0) OBJ File: 'crt.blend' +# www.blender.org +o Screen +v 0.437500 0.875000 -0.375000 +v 0.437500 0.875000 0.375000 +v 0.437500 0.125000 -0.375000 +v 0.437500 0.125000 0.375000 +vt 0.437500 0.437500 +vt 0.062500 0.062500 +vt 0.437500 0.062500 +vt 0.062500 0.437500 +vn 1.0000 0.0000 0.0000 +s off +f 1/1/1 4/2/1 3/3/1 +f 1/1/1 2/4/1 4/2/1 +o Monitor +v 0.000000 1.000000 -0.500000 +v 0.000000 1.000000 0.500000 +v 0.000000 0.000000 -0.500000 +v 0.000000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 0.125000 0.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.875000 0.375000 +v 0.500000 0.875000 -0.375000 +v 0.437500 0.125000 0.375000 +v 0.437500 0.125000 -0.375000 +v 0.437500 0.875000 0.375000 +v 0.437500 0.875000 -0.375000 +v -0.500000 0.250000 0.250000 +v -0.500000 0.250000 -0.250000 +v -0.500000 0.750000 0.250000 +v -0.500000 0.750000 -0.250000 +vt 1.000000 0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.000000 +vt 0.031250 0.062500 +vt 0.062500 0.437500 +vt 0.031250 0.437500 +vt 0.500000 0.500000 +vt 0.437500 0.062500 +vt 0.500000 0.000000 +vt 0.062500 0.062500 +vt 0.000000 0.000000 +vt 0.062500 0.437500 +vt 0.000000 0.500000 +vt 0.437500 0.437500 +vt 0.062500 0.468750 +vt 0.437500 0.437500 +vt 0.437500 0.468750 +vt 0.468750 0.437500 +vt 0.437500 0.062500 +vt 0.468750 0.062500 +vt 0.437500 0.031250 +vt 0.062500 0.062500 +vt 0.062500 0.031250 +vt 1.000000 0.000000 +vt 0.500000 0.250000 +vt 1.000000 0.000000 +vt 0.500000 0.250000 +vt 0.500000 -0.000000 +vt 1.000000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.000000 +vt 0.625000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 1.000000 0.250000 +vt 0.625000 0.500000 +vt 1.000000 0.250000 +vt 0.625000 0.500000 +vt 1.000000 0.250000 +vt 0.625000 0.500000 +vt 1.000000 0.250000 +vt 0.625000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.4472 0.0000 -0.8944 +vn -0.4472 -0.8944 0.0000 +vn -0.4472 0.0000 0.8944 +vn -0.4472 0.8944 0.0000 +s off +f 10/5/2 5/6/2 12/7/2 +f 13/8/2 19/9/2 15/10/2 +f 12/11/3 14/12/3 10/13/3 +f 10/13/3 13/14/3 9/15/3 +f 9/15/3 15/16/3 11/17/3 +f 11/17/3 16/18/3 12/11/3 +f 15/19/4 20/20/4 16/21/4 +f 16/22/5 18/23/5 14/24/5 +f 14/25/6 17/26/6 13/27/6 +f 9/28/4 7/29/4 10/13/4 +f 11/30/5 8/31/5 9/32/5 +f 12/33/6 6/34/6 11/35/6 +f 21/36/7 24/37/7 22/38/7 +f 7/39/8 24/40/8 5/6/8 +f 8/41/9 22/42/9 7/29/9 +f 6/43/10 21/44/10 8/31/10 +f 5/45/11 23/46/11 6/34/11 +f 10/5/2 7/39/2 5/6/2 +f 13/8/2 17/26/2 19/9/2 +f 12/11/3 16/18/3 14/12/3 +f 10/13/3 14/12/3 13/14/3 +f 9/15/3 13/14/3 15/16/3 +f 11/17/3 15/16/3 16/18/3 +f 15/19/4 19/9/4 20/20/4 +f 16/22/5 20/20/5 18/23/5 +f 14/25/6 18/23/6 17/26/6 +f 9/28/4 8/41/4 7/29/4 +f 11/30/5 6/43/5 8/31/5 +f 12/33/6 5/45/6 6/34/6 +f 21/36/7 23/46/7 24/37/7 +f 7/39/8 22/47/8 24/40/8 +f 8/41/9 21/48/9 22/42/9 +f 6/43/10 23/49/10 21/44/10 +f 5/45/11 24/37/11 23/46/11 diff --git a/src/main/resources/assets/hbm/models/blocks/floodlight.obj b/src/main/resources/assets/hbm/models/blocks/floodlight.obj new file mode 100644 index 000000000..fa59bc7f0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/floodlight.obj @@ -0,0 +1,355 @@ +# Blender v2.79 (sub 0) OBJ File: 'floodlight.blend' +# www.blender.org +o Lamps +v -0.375000 0.625000 -1.062500 +v -0.375000 0.625000 -0.312500 +v 0.375000 0.625000 -0.312500 +v 0.375000 0.625000 -1.062500 +v -0.375000 0.562500 -1.062500 +v -0.375000 0.562500 -0.312500 +v 0.375000 0.562500 -0.312500 +v 0.375000 0.562500 -1.062500 +v 0.375000 0.562500 0.312500 +v 0.375000 0.562500 1.062500 +v -0.375000 0.562500 1.062500 +v -0.375000 0.562500 0.312500 +v 0.375000 0.625000 0.312500 +v 0.375000 0.625000 1.062500 +v -0.375000 0.625000 1.062500 +v -0.375000 0.625000 0.312500 +vt 0.666667 0.695652 +vt 0.444444 0.717391 +vt 0.444444 0.695652 +vt 0.666667 0.978261 +vt 0.444444 0.978261 +vt 0.444444 1.000000 +vt 0.666667 1.000000 +vt 0.685185 0.978261 +vt 0.666667 0.717391 +vt 0.685185 0.717391 +vt 0.425926 0.717391 +vt 0.425926 0.978261 +vt 0.425926 0.717391 +vt 0.444444 0.978261 +vt 0.425926 0.978261 +vt 0.685185 0.978261 +vt 0.666667 0.717391 +vt 0.685185 0.717391 +vt 0.444444 1.000000 +vt 0.666667 0.978261 +vt 0.666667 1.000000 +vt 0.444444 0.717391 +vt 0.666667 0.695652 +vt 0.444444 0.695652 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 4/1/1 7/2/1 3/3/1 +f 7/2/2 5/4/2 6/5/2 +f 2/6/3 5/4/3 1/7/3 +f 1/8/4 8/9/4 4/10/4 +f 3/11/5 6/5/5 2/12/5 +f 14/13/5 11/14/5 15/15/5 +f 16/16/4 9/17/4 13/18/4 +f 15/19/3 12/20/3 16/21/3 +f 10/22/2 12/20/2 11/14/2 +f 13/23/1 10/22/1 14/24/1 +f 4/1/1 8/9/1 7/2/1 +f 7/2/2 8/9/2 5/4/2 +f 2/6/3 6/5/3 5/4/3 +f 1/8/4 5/4/4 8/9/4 +f 3/11/5 7/2/5 6/5/5 +f 14/13/5 10/22/5 11/14/5 +f 16/16/4 12/20/4 9/17/4 +f 15/19/3 11/14/3 12/20/3 +f 10/22/2 9/17/2 12/20/2 +f 13/23/1 9/17/1 10/22/1 +o Lights +v -0.500000 0.375000 -0.187500 +v 0.500000 0.375000 -0.187500 +v -0.500000 0.375000 -1.187500 +v 0.500000 0.375000 -1.187500 +v -0.375000 0.625000 -1.062500 +v -0.375000 0.625000 -0.312500 +v 0.375000 0.625000 -0.312500 +v 0.375000 0.625000 -1.062500 +v -0.250000 0.125000 -0.937500 +v -0.250000 0.125000 -0.437500 +v 0.250000 0.125000 -0.437500 +v 0.250000 0.125000 -0.937500 +v -0.500000 0.625000 -1.187500 +v -0.500000 0.625000 -0.187500 +v 0.500000 0.625000 -0.187500 +v 0.500000 0.625000 -1.187500 +v 0.375000 0.750000 0.312500 +v 0.375000 0.750000 1.062500 +v -0.375000 0.750000 1.062500 +v -0.375000 0.750000 0.312500 +v 0.375000 0.625000 0.312500 +v 0.375000 0.625000 1.062500 +v -0.375000 0.625000 1.062500 +v -0.375000 0.625000 0.312500 +v 0.500000 0.625000 0.187500 +v 0.500000 0.625000 1.187500 +v -0.500000 0.625000 1.187500 +v -0.500000 0.625000 0.187500 +v 0.250000 0.125000 0.437500 +v 0.250000 0.125000 0.937500 +v -0.250000 0.125000 0.937500 +v -0.250000 0.125000 0.437500 +v -0.375000 0.625000 -1.062500 +v -0.375000 0.625000 -0.312500 +v 0.375000 0.625000 -0.312500 +v 0.375000 0.625000 -1.062500 +v 0.375000 0.625000 0.312500 +v 0.375000 0.625000 1.062500 +v -0.375000 0.625000 1.062500 +v -0.375000 0.625000 0.312500 +v -0.375000 0.750000 -1.062500 +v -0.375000 0.750000 -0.312500 +v 0.375000 0.750000 -0.312500 +v 0.375000 0.750000 -1.062500 +v 0.500000 0.375000 0.187500 +v -0.500000 0.375000 0.187500 +v 0.500000 0.375000 1.187500 +v -0.500000 0.375000 1.187500 +vt 0.407407 0.260870 +vt 0.629630 0.173913 +vt 0.703704 0.260870 +vt 0.407407 0.347826 +vt 0.703704 0.260870 +vt 0.407407 0.347826 +vt 0.407407 0.260870 +vt 0.703704 0.260870 +vt 0.407407 0.347826 +vt 0.407407 0.260870 +vt 0.703704 0.260870 +vt 0.407407 0.347826 +vt 0.407407 0.260870 +vt 0.629630 0.000000 +vt 0.481481 0.173913 +vt 0.481481 0.000000 +vt 0.481481 0.173913 +vt 0.629630 0.173913 +vt 0.629630 0.173913 +vt 0.629630 0.173913 +vt 0.666667 0.652174 +vt 0.407407 0.695652 +vt 0.444444 0.652174 +vt 0.444444 0.391304 +vt 0.703704 0.347826 +vt 0.666667 0.391304 +vt 0.703704 0.695652 +vt 0.740741 0.347826 +vt 0.962963 0.304348 +vt 0.962963 0.347826 +vt 0.962963 0.000000 +vt 0.740741 0.043478 +vt 0.740741 0.000000 +vt 0.703704 0.043478 +vt 0.740741 0.304348 +vt 0.703704 0.304348 +vt 1.000000 0.304348 +vt 0.962963 0.043478 +vt 1.000000 0.043478 +vt 0.666667 0.391304 +vt 0.703704 0.695652 +vt 0.666667 0.652174 +vt 0.444444 0.391304 +vt 0.703704 0.347826 +vt 0.444444 0.652174 +vt 0.407407 0.347826 +vt 0.407407 0.695652 +vt 0.407407 0.260870 +vt 0.629630 0.173913 +vt 0.703704 0.260870 +vt 0.407407 0.260870 +vt 0.629630 0.173913 +vt 0.703704 0.260870 +vt 0.407407 0.260870 +vt 0.629630 0.173913 +vt 0.703704 0.260870 +vt 0.629630 0.000000 +vt 0.481481 0.173913 +vt 0.481481 0.000000 +vt 0.407407 0.347826 +vt 0.740741 0.043478 +vt 0.962963 0.304348 +vt 0.740741 0.304348 +vt 0.407407 0.347826 +vt 0.407407 0.347826 +vt 0.703704 0.260870 +vt 0.407407 0.260870 +vt 1.000000 0.304348 +vt 0.962963 0.043478 +vt 1.000000 0.043478 +vt 0.703704 0.043478 +vt 0.703704 0.304348 +vt 0.629630 0.173913 +vt 0.962963 0.000000 +vt 0.740741 0.000000 +vt 0.740741 0.347826 +vt 0.962963 0.347826 +vt 0.703704 0.347826 +vt 0.703704 0.347826 +vt 0.703704 0.347826 +vt 0.481481 0.173913 +vt 0.481481 0.173913 +vt 0.481481 0.173913 +vt 0.481481 0.173913 +vt 0.481481 0.173913 +vt 0.703704 0.347826 +vt 0.703704 0.347826 +vt 0.703704 0.347826 +vn 0.7071 -0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 1.0000 0.0000 +s off +f 18/25/6 28/26/6 20/27/6 +f 20/27/7 31/28/7 18/25/7 +f 17/29/8 29/30/8 19/31/8 +f 19/32/9 32/33/9 20/34/9 +f 18/35/10 30/36/10 17/37/10 +f 25/38/11 27/39/11 26/40/11 +f 17/29/12 25/41/12 26/42/12 +f 20/34/13 25/43/13 19/32/13 +f 17/37/14 27/44/14 18/35/14 +f 21/45/15 30/46/15 22/47/15 +f 22/47/15 31/28/15 23/48/15 +f 23/48/15 32/49/15 24/50/15 +f 24/50/15 29/51/15 21/45/15 +f 39/52/8 36/53/8 40/54/8 +f 37/55/7 34/56/7 38/57/7 +f 38/58/10 35/59/10 39/60/10 +f 40/61/9 33/62/9 37/63/9 +f 34/56/15 36/53/15 35/59/15 +f 53/64/15 44/65/15 56/66/15 +f 54/67/15 41/68/15 53/64/15 +f 55/69/15 42/70/15 54/67/15 +f 56/66/15 43/71/15 55/69/15 +f 64/72/14 46/73/14 63/74/14 +f 61/75/13 48/76/13 62/77/13 +f 62/78/12 47/79/12 64/80/12 +f 48/81/11 46/82/11 47/83/11 +f 63/74/10 43/84/10 64/72/10 +f 59/85/15 57/86/15 58/87/15 +f 62/77/9 41/88/9 61/75/9 +f 64/80/8 44/89/8 62/78/8 +f 61/90/7 42/70/7 63/91/7 +f 49/92/9 60/93/9 52/94/9 +f 51/95/10 58/87/10 50/96/10 +f 61/90/6 46/82/6 45/97/6 +f 52/98/7 59/85/7 51/99/7 +f 50/100/8 57/86/8 49/101/8 +f 18/25/6 27/39/6 28/26/6 +f 20/27/7 32/49/7 31/28/7 +f 17/29/8 30/102/8 29/30/8 +f 19/32/9 29/103/9 32/33/9 +f 18/35/10 31/104/10 30/36/10 +f 25/38/11 28/26/11 27/39/11 +f 17/29/12 19/31/12 25/41/12 +f 20/34/13 28/105/13 25/43/13 +f 17/37/14 26/106/14 27/44/14 +f 21/45/15 29/51/15 30/46/15 +f 22/47/15 30/46/15 31/28/15 +f 23/48/15 31/28/15 32/49/15 +f 24/50/15 32/49/15 29/51/15 +f 39/52/8 35/59/8 36/53/8 +f 37/55/7 33/62/7 34/56/7 +f 38/58/10 34/56/10 35/59/10 +f 40/61/9 36/53/9 33/62/9 +f 34/56/15 33/62/15 36/53/15 +f 53/64/15 41/68/15 44/65/15 +f 54/67/15 42/70/15 41/68/15 +f 55/69/15 43/71/15 42/70/15 +f 56/66/15 44/65/15 43/71/15 +f 64/72/14 47/107/14 46/73/14 +f 61/75/13 45/108/13 48/76/13 +f 62/78/12 48/109/12 47/79/12 +f 48/81/11 45/97/11 46/82/11 +f 63/74/10 42/110/10 43/84/10 +f 59/85/15 60/93/15 57/86/15 +f 62/77/9 44/111/9 41/88/9 +f 64/80/8 43/112/8 44/89/8 +f 61/90/7 41/68/7 42/70/7 +f 49/92/9 57/86/9 60/93/9 +f 51/95/10 59/85/10 58/87/10 +f 61/90/6 63/91/6 46/82/6 +f 52/98/7 60/93/7 59/85/7 +f 50/100/8 58/87/8 57/86/8 +o Base +v -0.500000 0.000000 0.187500 +v 0.500000 0.000000 0.187500 +v -0.500000 0.000000 -0.187500 +v 0.500000 0.000000 -0.187500 +v -0.375000 0.500000 0.187500 +v 0.375000 0.500000 0.187500 +v -0.375000 0.500000 -0.187500 +v 0.375000 0.500000 -0.187500 +v -0.125000 0.750000 -0.187500 +v -0.125000 0.750000 0.187500 +v 0.125000 0.750000 0.187500 +v 0.125000 0.750000 -0.187500 +vt 0.111111 0.260870 +vt -0.000000 0.608696 +vt -0.000000 0.260870 +vt 0.259259 0.304348 +vt 0.333333 0.478261 +vt 0.259259 0.565217 +vt 0.111111 0.086957 +vt 0.111111 0.608696 +vt 0.111111 0.260870 +vt 0.259259 0.565217 +vt 0.111111 0.608696 +vt 0.000000 0.782609 +vt -0.000000 0.869565 +vt 0.111111 0.956522 +vt -0.000000 0.956522 +vt 0.259259 0.304348 +vt 0.333333 0.478261 +vt 0.111111 0.782609 +vt -0.000000 0.086957 +vt 0.111111 -0.000000 +vt 0.333333 0.391304 +vt 0.111111 0.869565 +vt 0.333333 0.391304 +vt 0.000000 -0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9701 0.2425 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.9701 0.2425 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 67/113/16 66/114/16 65/115/16 +f 71/116/17 76/117/17 72/118/17 +f 65/115/18 71/119/18 67/113/18 +f 67/113/17 72/118/17 68/120/17 +f 66/121/19 69/122/19 65/123/19 +f 68/120/20 70/124/20 66/114/20 +f 75/125/21 73/126/21 74/127/21 +f 70/128/19 74/129/19 69/122/19 +f 72/130/22 75/125/22 70/124/22 +f 69/131/23 73/132/23 71/119/23 +f 67/113/16 68/120/16 66/114/16 +f 71/116/17 73/133/17 76/117/17 +f 65/115/18 69/131/18 71/119/18 +f 67/113/17 71/116/17 72/118/17 +f 66/121/19 70/128/19 69/122/19 +f 68/120/20 72/130/20 70/124/20 +f 75/125/21 76/134/21 73/126/21 +f 70/128/19 75/135/19 74/129/19 +f 72/130/22 76/134/22 75/125/22 +f 69/131/23 74/136/23 73/132/23 diff --git a/src/main/resources/assets/hbm/models/blocks/funnel.obj b/src/main/resources/assets/hbm/models/blocks/funnel.obj new file mode 100644 index 000000000..c166fd7a3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/funnel.obj @@ -0,0 +1,90 @@ +# Blender v2.79 (sub 0) OBJ File: 'funnel.blend' +# www.blender.org +o Bottom +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 +vt 0.750000 0.750000 +vt 0.250000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.750000 +vn 0.0000 -1.0000 0.0000 +s off +f 4/1/1 1/2/1 2/3/1 +f 4/1/1 3/4/1 1/2/1 +o Top +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt -0.000000 1.000000 +vn 0.0000 1.0000 0.0000 +s off +f 6/5/2 7/6/2 8/7/2 +f 6/5/2 5/8/2 7/6/2 +o Side +v -0.250000 0.000000 0.250000 +v -0.500000 1.000000 0.500000 +v -0.250000 0.000000 -0.250000 +v -0.500000 1.000000 -0.500000 +v 0.250000 0.000000 0.250000 +v 0.500000 1.000000 0.500000 +v 0.250000 0.000000 -0.250000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 -0.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000097 0.999903 +vt 0.000097 0.999903 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.8944 -0.4472 0.0000 +vn 0.0000 -0.4472 -0.8944 +vn -0.8944 -0.4472 0.0000 +s off +f 10/9/3 18/10/3 17/11/3 +f 12/12/4 19/13/4 18/14/4 +f 16/15/5 20/16/5 19/17/5 +f 14/18/6 17/19/6 20/20/6 +f 20/20/7 9/21/7 13/22/7 +f 19/17/8 13/23/8 15/24/8 +f 18/14/9 15/25/9 11/26/9 +f 17/11/10 11/27/10 9/28/10 +f 10/9/3 12/29/3 18/10/3 +f 12/12/4 16/30/4 19/13/4 +f 16/15/5 14/31/5 20/16/5 +f 14/18/6 10/32/6 17/19/6 +f 20/20/7 17/19/7 9/21/7 +f 19/17/8 20/16/8 13/23/8 +f 18/14/9 19/13/9 15/25/9 +f 17/11/10 18/10/10 11/27/10 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj new file mode 100644 index 000000000..2bb100bbd --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj @@ -0,0 +1,1366 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_curve_wide.blend' +# www.blender.org +o Plane.001 +v -1.312500 0.062500 0.500000 +v -1.312500 0.187500 0.500000 +v -1.250000 0.062500 0.500000 +v -1.250000 0.187500 0.500000 +v 0.250000 0.062500 0.500000 +v 0.312499 0.062500 0.500000 +v 0.312499 0.187500 0.500000 +v 0.250000 0.187500 0.500000 +v -1.502685 0.000000 0.251008 +v 0.489705 0.000000 0.076696 +v -1.535368 0.000000 -0.122565 +v 0.457022 0.000000 -0.296877 +v -1.535368 0.062500 -0.122565 +v -1.502685 0.062500 0.251008 +v 0.489705 0.062500 0.076696 +v 0.457022 0.062500 -0.296877 +v 0.405654 0.125000 -0.166905 +v 0.094343 0.125000 -0.139669 +v 0.416548 0.125000 -0.042381 +v 0.105237 0.125000 -0.015145 +v 0.405654 0.062500 -0.166905 +v 0.094343 0.062500 -0.139669 +v 0.416548 0.062500 -0.042381 +v 0.105237 0.062500 -0.015145 +v -1.451317 0.062500 0.121036 +v -1.140006 0.062500 0.093800 +v -1.462212 0.062500 -0.003488 +v -1.150901 0.062500 -0.030724 +v -1.451317 0.125000 0.121036 +v -1.140006 0.125000 0.093800 +v -1.462212 0.125000 -0.003488 +v -1.150901 0.125000 -0.030724 +v -6.500000 0.187500 -6.249998 +v -6.500000 0.187500 -6.312497 +v -6.500000 0.062500 -6.312497 +v -6.500000 0.062500 -6.249998 +v -6.500000 0.187500 -4.749999 +v -6.500000 0.062500 -4.749999 +v -6.500000 0.187500 -4.687499 +v -6.500000 0.062500 -4.687499 +v -5.599200 0.187500 -4.608689 +v -5.588348 0.187500 -4.670239 +v -5.588348 0.062500 -4.670239 +v -5.599200 0.062500 -4.608689 +v -5.327875 0.062500 -6.147450 +v -5.327875 0.187500 -6.147450 +v -5.317022 0.062500 -6.209000 +v -5.317022 0.187500 -6.209000 +v -4.191364 0.187500 -5.842923 +v -4.169989 0.187500 -5.901654 +v -4.169989 0.062500 -5.901654 +v -4.191364 0.062500 -5.842923 +v -4.704395 0.187500 -4.433385 +v -4.704395 0.062500 -4.433385 +v -4.725770 0.187500 -4.374655 +v -4.725770 0.062500 -4.374655 +v -3.906250 0.187500 -3.992507 +v -3.875001 0.187500 -4.046633 +v -3.875001 0.062500 -4.046633 +v -3.906250 0.062500 -3.992507 +v -3.125000 0.062500 -5.345670 +v -3.125000 0.187500 -5.345670 +v -3.093751 0.062500 -5.399796 +v -3.093751 0.187500 -5.399796 +v -2.161184 0.187500 -4.670798 +v -2.121011 0.187500 -4.718676 +v -2.121011 0.062500 -4.718676 +v -2.161184 0.062500 -4.670798 +v -3.125366 0.187500 -3.521733 +v -3.125366 0.062500 -3.521733 +v -3.165539 0.187500 -3.473855 +v -3.165539 0.062500 -3.473855 +v -2.526145 0.187500 -2.834461 +v -2.478267 0.187500 -2.874635 +v -2.478267 0.062500 -2.874635 +v -2.526145 0.062500 -2.834461 +v -1.329201 0.062500 -3.838815 +v -1.329201 0.187500 -3.838815 +v -1.281323 0.062500 -3.878989 +v -1.281323 0.187500 -3.878989 +v -0.654329 0.187500 -2.874999 +v -0.600204 0.187500 -2.906249 +v -0.600204 0.062500 -2.906249 +v -0.654329 0.062500 -2.874999 +v -1.953367 0.187500 -2.125000 +v -1.953367 0.062500 -2.125000 +v -2.007493 0.187500 -2.093750 +v -2.007493 0.062500 -2.093750 +v -1.625344 0.187500 -1.274230 +v -1.566614 0.187500 -1.295606 +v -1.566614 0.062500 -1.295606 +v -1.625344 0.062500 -1.274230 +v -0.157075 0.062500 -1.808635 +v -0.157075 0.187500 -1.808635 +v -0.098345 0.062500 -1.830012 +v -0.098345 0.187500 -1.830012 +v 0.147452 0.187500 -0.672125 +v 0.209002 0.187500 -0.682978 +v 0.209002 0.062500 -0.682978 +v 0.147452 0.062500 -0.672125 +v -1.329760 0.187500 -0.411653 +v -1.329760 0.062500 -0.411653 +v -1.391310 0.187500 -0.400800 +v -1.391310 0.062500 -0.400800 +v -1.621842 0.000000 -0.612984 +v 0.310009 0.000000 -1.130622 +v -1.718900 0.000000 -0.975206 +v 0.212953 0.000000 -1.492844 +v -1.718900 0.062500 -0.975206 +v -1.621842 0.062500 -0.612984 +v 0.310009 0.062500 -1.130622 +v 0.212953 0.062500 -1.492844 +v 0.184934 0.125000 -1.355928 +v -0.116918 0.125000 -1.275047 +v 0.217287 0.125000 -1.235187 +v -0.084565 0.125000 -1.154306 +v 0.184934 0.062500 -1.355928 +v -0.116918 0.062500 -1.275047 +v 0.217287 0.062500 -1.235187 +v -0.084565 0.062500 -1.154306 +v -1.593824 0.062500 -0.749901 +v -1.291972 0.062500 -0.830782 +v -1.626177 0.062500 -0.870642 +v -1.324325 0.062500 -0.951523 +v -1.593824 0.125000 -0.749901 +v -1.291972 0.125000 -0.830782 +v -1.626177 0.125000 -0.870642 +v -1.324325 0.125000 -0.951523 +v -1.889220 0.000000 -1.443159 +v -0.076604 0.000000 -2.288395 +v -2.047702 0.000000 -1.783024 +v -0.235086 0.000000 -2.628261 +v -2.047702 0.062500 -1.783024 +v -1.889220 0.062500 -1.443159 +v -0.076604 0.062500 -2.288395 +v -0.235086 0.062500 -2.628261 +v -0.238903 0.125000 -2.488559 +v -0.522124 0.125000 -2.356490 +v -0.186076 0.125000 -2.375270 +v -0.469297 0.125000 -2.243202 +v -0.238903 0.062500 -2.488559 +v -0.522124 0.062500 -2.356490 +v -0.186076 0.062500 -2.375270 +v -0.469297 0.062500 -2.243202 +v -1.885403 0.062500 -1.582861 +v -1.602182 0.062500 -1.714929 +v -1.938231 0.062500 -1.696149 +v -1.655010 0.062500 -1.828217 +v -1.885403 0.125000 -1.582861 +v -1.602182 0.125000 -1.714929 +v -1.938231 0.125000 -1.696149 +v -1.655010 0.125000 -1.828217 +v -2.296694 0.000000 -2.214291 +v -0.658390 0.000000 -3.361444 +v -2.511786 0.000000 -2.521473 +v -0.873481 0.000000 -3.668626 +v -2.511786 0.062500 -2.521473 +v -2.296694 0.062500 -2.214291 +v -0.658390 0.062500 -3.361444 +v -0.873481 0.062500 -3.668626 +v -0.852982 0.125000 -3.530384 +v -1.108966 0.125000 -3.351141 +v -0.781284 0.125000 -3.427989 +v -1.037269 0.125000 -3.248747 +v -0.852982 0.062500 -3.530384 +v -1.108966 0.062500 -3.351141 +v -0.781284 0.062500 -3.427989 +v -1.037269 0.062500 -3.248747 +v -2.317194 0.062500 -2.352534 +v -2.061209 0.062500 -2.531776 +v -2.388892 0.062500 -2.454927 +v -2.132906 0.062500 -2.634170 +v -2.317194 0.125000 -2.352534 +v -2.061209 0.125000 -2.531776 +v -2.388892 0.125000 -2.454927 +v -2.132906 0.125000 -2.634170 +v -2.831883 0.000000 -2.902951 +v -1.417670 0.000000 -4.317164 +v -3.097049 0.000000 -3.168117 +v -1.682835 0.000000 -4.582330 +v -3.097049 0.062500 -3.168117 +v -2.831883 0.062500 -2.902951 +v -1.417670 0.062500 -4.317164 +v -1.682835 0.062500 -4.582330 +v -1.638640 0.125000 -4.449748 +v -1.859611 0.125000 -4.228776 +v -1.550253 0.125000 -4.361359 +v -1.771223 0.125000 -4.140388 +v -1.638640 0.062500 -4.449748 +v -1.859611 0.062500 -4.228776 +v -1.550253 0.062500 -4.361359 +v -1.771223 0.062500 -4.140388 +v -2.876078 0.062500 -3.035534 +v -2.655107 0.062500 -3.256505 +v -2.964466 0.062500 -3.123922 +v -2.743495 0.062500 -3.344893 +v -2.876078 0.125000 -3.035534 +v -2.655107 0.125000 -3.256505 +v -2.964466 0.125000 -3.123922 +v -2.743495 0.125000 -3.344893 +v -3.478527 0.000000 -3.488214 +v -2.331373 0.000000 -5.126518 +v -3.785709 0.000000 -3.703305 +v -2.638556 0.000000 -5.341610 +v -3.785709 0.062500 -3.703305 +v -3.478527 0.062500 -3.488214 +v -2.331373 0.062500 -5.126518 +v -2.638556 0.062500 -5.341610 +v -2.572011 0.125000 -5.218716 +v -2.751253 0.125000 -4.962731 +v -2.469616 0.125000 -5.147019 +v -2.648859 0.125000 -4.891034 +v -2.572011 0.062500 -5.218716 +v -2.751253 0.062500 -4.962731 +v -2.469616 0.062500 -5.147019 +v -2.648859 0.062500 -4.891034 +v -3.545072 0.062500 -3.611109 +v -3.365830 0.062500 -3.867094 +v -3.647467 0.062500 -3.682805 +v -3.468224 0.062500 -3.938790 +v -3.545072 0.125000 -3.611109 +v -3.365830 0.125000 -3.867094 +v -3.647467 0.125000 -3.682805 +v -3.468224 0.125000 -3.938790 +v -4.216976 0.000000 -3.952298 +v -3.371739 0.000000 -5.764913 +v -4.556841 0.000000 -4.110780 +v -3.711604 0.000000 -5.923395 +v -4.556841 0.062500 -4.110780 +v -4.216976 0.062500 -3.952298 +v -3.371739 0.062500 -5.764913 +v -3.711604 0.062500 -5.923395 +v -3.624729 0.125000 -5.813924 +v -3.756797 0.125000 -5.530703 +v -3.511442 0.125000 -5.761096 +v -3.643509 0.125000 -5.477876 +v -3.624729 0.062500 -5.813924 +v -3.756797 0.062500 -5.530703 +v -3.511442 0.062500 -5.761096 +v -3.643509 0.062500 -5.477876 +v -4.303851 0.062500 -4.061769 +v -4.171782 0.062500 -4.344991 +v -4.417139 0.062500 -4.114597 +v -4.285071 0.062500 -4.397818 +v -4.303851 0.125000 -4.061769 +v -4.171782 0.125000 -4.344991 +v -4.417139 0.125000 -4.114597 +v -4.285071 0.125000 -4.397818 +v -5.024794 0.000000 -4.281100 +v -4.507154 0.000000 -6.212952 +v -5.387016 0.000000 -4.378157 +v -4.869377 0.000000 -6.310009 +v -5.387016 0.062500 -4.378157 +v -5.024794 0.062500 -4.281100 +v -4.507154 0.062500 -6.212952 +v -4.869377 0.062500 -6.310009 +v -4.764813 0.125000 -6.217286 +v -4.845694 0.125000 -5.915435 +v -4.644072 0.125000 -6.184934 +v -4.724953 0.125000 -5.883083 +v -4.764813 0.062500 -6.217286 +v -4.845694 0.062500 -5.915435 +v -4.644072 0.062500 -6.184934 +v -4.724953 0.062500 -5.883083 +v -5.129358 0.062500 -4.373823 +v -5.048478 0.062500 -4.675675 +v -5.250099 0.062500 -4.406175 +v -5.169218 0.062500 -4.708027 +v -5.129358 0.125000 -4.373823 +v -5.048478 0.125000 -4.675675 +v -5.250099 0.125000 -4.406175 +v -5.169218 0.125000 -4.708027 +v -5.877435 0.000000 -4.464632 +v -5.703122 0.000000 -6.457021 +v -6.251008 0.000000 -4.497314 +v -6.076696 0.000000 -6.489705 +v -6.251008 0.062500 -4.497314 +v -5.877435 0.062500 -4.464632 +v -5.703122 0.062500 -6.457021 +v -6.076696 0.062500 -6.489705 +v -5.957620 0.125000 -6.416547 +v -5.984855 0.125000 -6.105237 +v -5.833095 0.125000 -6.405653 +v -5.860331 0.125000 -6.094343 +v -5.957620 0.062500 -6.416547 +v -5.984855 0.062500 -6.105237 +v -5.833095 0.062500 -6.405653 +v -5.860331 0.062500 -6.094343 +v -5.996511 0.062500 -4.537788 +v -5.969276 0.062500 -4.849099 +v -6.121037 0.062500 -4.548682 +v -6.093800 0.062500 -4.859993 +v -5.996511 0.125000 -4.537788 +v -5.969276 0.125000 -4.849099 +v -6.121037 0.125000 -4.548682 +v -6.093800 0.125000 -4.859993 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9962 0.0000 0.0872 +vn 0.0872 0.0000 0.9962 +vn 0.9962 0.0000 -0.0872 +vn -0.0872 0.0000 -0.9962 +vn -0.0872 0.0000 0.9962 +vn 0.0872 0.0000 -0.9962 +vn -1.0000 0.0000 0.0000 +vn 0.2588 0.0000 -0.9659 +vn -0.2588 0.0000 0.9659 +vn 0.4226 0.0000 -0.9063 +vn -0.4226 0.0000 0.9063 +vn -0.5736 0.0000 0.8192 +vn 0.5736 0.0000 -0.8192 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.8192 0.0000 -0.5736 +vn -0.8192 0.0000 0.5736 +vn 0.9063 0.0000 -0.4226 +vn -0.9063 0.0000 0.4226 +vn -0.9659 0.0000 0.2588 +vn 0.9659 0.0000 -0.2588 +vn 0.2588 0.0000 0.9659 +vn -0.2588 0.0000 -0.9659 +vn 0.4226 0.0000 0.9063 +vn -0.4226 0.0000 -0.9063 +vn 0.5736 0.0000 0.8192 +vn -0.5736 0.0000 -0.8192 +vn -0.8191 0.0000 0.5736 +vn 0.8191 0.0000 -0.5736 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.8192 0.0000 0.5736 +vn -0.8192 0.0000 -0.5736 +vn 0.9063 0.0000 0.4226 +vn -0.9063 0.0000 -0.4226 +vn 0.9659 0.0000 0.2588 +vn -0.9659 0.0000 -0.2588 +vn 0.9962 0.0000 0.0872 +vn -0.9962 0.0000 -0.0872 +vn -0.0871 0.0000 0.9962 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/1 6/5/1 7/6/1 +f 11/7/2 10/8/2 9/9/2 +f 15/10/3 13/11/3 14/12/3 +f 9/13/4 13/14/4 11/15/4 +f 10/16/5 14/17/5 9/18/5 +f 12/19/6 15/20/6 10/8/6 +f 11/7/7 16/21/7 12/22/7 +f 39/23/8 44/24/8 41/25/8 +f 42/26/3 39/23/3 41/25/3 +f 36/27/2 47/28/2 45/29/2 +f 33/30/8 45/31/8 46/32/8 +f 38/33/9 42/26/9 43/34/9 +f 40/35/2 43/34/2 44/36/2 +f 35/37/10 33/38/10 34/39/10 +f 39/40/10 38/41/10 40/42/10 +f 44/43/2 54/44/2 56/45/2 +f 43/46/11 53/47/11 54/44/11 +f 46/48/12 52/49/12 49/50/12 +f 45/51/2 51/52/2 52/53/2 +f 53/47/3 41/54/3 55/55/3 +f 41/54/12 56/56/12 55/55/12 +f 34/57/3 46/32/3 48/58/3 +f 35/59/9 48/58/9 47/28/9 +f 54/60/13 58/61/13 59/62/13 +f 56/63/2 59/62/2 60/64/2 +f 64/65/3 49/66/3 62/67/3 +f 51/68/13 64/65/13 63/69/13 +f 55/70/14 60/71/14 57/72/14 +f 58/61/3 55/70/3 57/72/3 +f 47/73/11 50/74/11 51/52/11 +f 50/74/3 46/48/3 49/50/3 +f 29/75/4 27/76/4 25/77/4 +f 20/78/3 17/79/3 18/80/3 +f 17/79/6 23/81/6 21/82/6 +f 19/83/5 24/84/5 23/85/5 +f 18/80/7 21/86/7 22/87/7 +f 20/78/4 22/88/4 24/89/4 +f 31/90/7 28/91/7 27/92/7 +f 30/93/5 25/94/5 26/95/5 +f 32/96/6 26/97/6 28/98/6 +f 29/75/3 32/96/3 31/90/3 +f 69/99/3 57/100/3 71/101/3 +f 57/100/15 72/102/15 71/101/15 +f 63/103/16 66/104/16 67/105/16 +f 66/104/3 62/106/3 65/107/3 +f 60/108/2 70/109/2 72/110/2 +f 59/111/16 69/99/16 70/109/16 +f 52/112/2 63/69/2 61/113/2 +f 49/66/14 61/114/14 62/67/14 +f 71/115/17 76/116/17 73/117/17 +f 69/118/3 73/117/3 74/119/3 +f 68/120/2 79/121/2 77/122/2 +f 65/123/17 77/124/17 78/125/17 +f 70/126/18 74/119/18 75/127/18 +f 72/128/2 75/127/2 76/129/2 +f 62/106/15 68/130/15 65/107/15 +f 61/131/2 67/105/2 68/132/2 +f 75/133/19 85/134/19 86/135/19 +f 78/136/20 84/137/20 81/138/20 +f 84/139/2 79/140/2 83/141/2 +f 85/134/3 73/142/3 87/143/3 +f 73/142/20 88/144/20 87/143/20 +f 79/140/19 82/145/19 83/141/19 +f 80/146/3 65/123/3 78/125/3 +f 67/147/18 80/146/18 79/121/18 +f 86/148/21 90/149/21 91/150/21 +f 88/151/2 91/150/2 92/152/2 +f 82/153/3 94/154/3 96/155/3 +f 83/156/21 96/155/21 95/157/21 +f 87/158/22 92/159/22 89/160/22 +f 90/149/3 87/158/3 89/160/3 +f 82/145/3 78/136/3 81/138/3 +f 76/161/2 86/135/2 88/162/2 +f 89/163/23 104/164/23 103/165/23 +f 95/166/24 98/167/24 99/168/24 +f 98/167/3 94/169/3 97/170/3 +f 92/171/2 102/172/2 104/173/2 +f 91/174/24 101/175/24 102/172/24 +f 94/169/23 100/176/23 97/170/23 +f 84/177/2 95/157/2 93/178/2 +f 81/179/22 93/180/22 94/154/22 +f 102/181/6 4/182/6 3/183/6 +f 99/184/6 7/185/6 6/186/6 +f 104/187/2 3/183/2 1/188/2 +f 100/189/2 6/186/2 5/190/2 +f 97/191/4 5/192/4 8/193/4 +f 101/194/3 2/195/3 4/182/3 +f 103/196/4 1/197/4 2/195/4 +f 7/185/3 97/191/3 8/193/3 +f 93/198/2 99/168/2 100/199/2 +f 101/175/3 89/163/3 103/165/3 +f 107/200/2 106/201/2 105/202/2 +f 111/203/3 109/204/3 110/205/3 +f 105/206/23 109/207/23 107/208/23 +f 106/209/25 110/210/25 105/211/25 +f 108/212/24 111/213/24 106/201/24 +f 107/200/26 112/214/26 108/215/26 +f 125/216/23 123/217/23 121/218/23 +f 116/219/3 113/220/3 114/221/3 +f 113/220/24 119/222/24 117/223/24 +f 115/224/25 120/225/25 119/226/25 +f 114/221/26 117/227/26 118/228/26 +f 116/219/23 118/229/23 120/230/23 +f 127/231/26 124/232/26 123/233/26 +f 126/234/25 121/235/25 122/236/25 +f 128/237/24 122/238/24 124/239/24 +f 125/216/3 128/237/3 127/231/3 +f 131/240/2 130/241/2 129/242/2 +f 135/243/3 133/244/3 134/245/3 +f 129/246/22 133/247/22 131/248/22 +f 130/249/27 134/250/27 129/251/27 +f 132/252/21 135/253/21 130/241/21 +f 131/240/28 136/254/28 132/255/28 +f 149/256/22 147/257/22 145/258/22 +f 138/259/3 139/260/3 137/261/3 +f 137/261/21 143/262/21 141/263/21 +f 139/260/27 144/264/27 143/265/27 +f 138/259/28 141/266/28 142/267/28 +f 140/268/22 142/269/22 144/270/22 +f 151/271/28 148/272/28 147/273/28 +f 150/274/27 145/275/27 146/276/27 +f 152/277/21 146/278/21 148/279/21 +f 149/256/3 152/277/3 151/271/3 +f 155/280/2 154/281/2 153/282/2 +f 158/283/3 160/284/3 157/285/3 +f 153/286/20 157/287/20 155/288/20 +f 154/289/29 158/290/29 153/291/29 +f 156/292/19 159/293/19 154/281/19 +f 155/280/30 160/284/30 156/294/30 +f 173/295/31 171/296/31 169/297/31 +f 164/298/3 161/299/3 162/300/3 +f 161/299/32 167/301/32 165/302/32 +f 163/303/29 168/304/29 167/305/29 +f 162/300/30 165/306/30 166/307/30 +f 164/298/20 166/308/20 168/309/20 +f 175/310/30 172/311/30 171/312/30 +f 174/313/29 169/314/29 170/315/29 +f 176/316/19 170/317/19 172/318/19 +f 173/295/3 176/316/3 175/310/3 +f 179/319/2 178/320/2 177/321/2 +f 183/322/3 181/323/3 182/324/3 +f 177/325/17 181/326/17 179/327/17 +f 178/328/33 182/329/33 177/330/33 +f 180/331/18 183/332/18 178/320/18 +f 179/319/34 184/333/34 180/334/34 +f 197/335/17 195/336/17 193/337/17 +f 186/338/3 187/339/3 185/340/3 +f 185/340/18 191/341/18 189/342/18 +f 187/339/33 192/343/33 191/344/33 +f 186/338/34 189/345/34 190/346/34 +f 188/347/17 190/348/17 192/349/17 +f 199/350/34 196/351/34 195/352/34 +f 198/353/33 193/354/33 194/355/33 +f 200/356/18 194/357/18 196/358/18 +f 197/335/3 200/356/3 199/350/3 +f 201/359/2 204/360/2 202/361/2 +f 206/362/3 208/363/3 205/364/3 +f 201/365/15 205/366/15 203/367/15 +f 202/368/35 206/369/35 201/370/35 +f 204/371/16 207/372/16 202/361/16 +f 203/373/36 208/363/36 204/360/36 +f 221/374/15 219/375/15 217/376/15 +f 212/377/3 209/378/3 210/379/3 +f 209/378/16 215/380/16 213/381/16 +f 211/382/35 216/383/35 215/384/35 +f 210/379/36 213/385/36 214/386/36 +f 212/377/15 214/387/15 216/388/15 +f 223/389/36 220/390/36 219/391/36 +f 222/392/35 217/393/35 218/394/35 +f 224/395/16 218/396/16 220/397/16 +f 221/374/3 224/395/3 223/389/3 +f 227/398/2 226/399/2 225/400/2 +f 231/401/3 229/402/3 230/403/3 +f 225/404/14 229/405/14 227/406/14 +f 226/407/37 230/408/37 225/409/37 +f 228/410/13 231/411/13 226/399/13 +f 227/398/38 232/412/38 228/413/38 +f 245/414/14 243/415/14 241/416/14 +f 234/417/3 235/418/3 233/419/3 +f 233/419/13 239/420/13 237/421/13 +f 235/418/37 240/422/37 239/423/37 +f 234/417/38 237/424/38 238/425/38 +f 236/426/14 238/427/14 240/428/14 +f 247/429/38 244/430/38 243/431/38 +f 246/432/37 241/433/37 242/434/37 +f 248/435/13 242/436/13 244/437/13 +f 245/414/3 248/435/3 247/429/3 +f 249/438/2 252/439/2 250/440/2 +f 254/441/3 256/442/3 253/443/3 +f 249/444/12 253/445/12 251/446/12 +f 250/447/39 254/448/39 249/449/39 +f 252/450/11 255/451/11 250/440/11 +f 251/452/40 256/442/40 252/439/40 +f 269/453/12 267/454/12 265/455/12 +f 260/456/3 257/457/3 258/458/3 +f 257/457/11 263/459/11 261/460/11 +f 259/461/39 264/462/39 263/463/39 +f 258/458/40 261/464/40 262/465/40 +f 260/456/12 262/466/12 264/467/12 +f 271/468/40 268/469/40 267/470/40 +f 270/471/39 265/472/39 266/473/39 +f 272/474/11 266/475/11 268/476/11 +f 269/453/3 272/474/3 271/468/3 +f 273/477/2 276/478/2 274/479/2 +f 278/480/3 280/481/3 277/482/3 +f 273/483/8 277/484/8 275/485/8 +f 274/486/41 278/487/41 273/488/41 +f 276/489/9 279/490/9 274/479/9 +f 275/491/42 280/481/42 276/478/42 +f 293/492/43 291/493/43 289/494/43 +f 284/495/3 281/496/3 282/497/3 +f 281/496/9 287/498/9 285/499/9 +f 283/500/41 288/501/41 287/502/41 +f 282/497/42 285/503/42 286/504/42 +f 284/495/8 286/505/8 288/506/8 +f 295/507/42 292/508/42 291/509/42 +f 294/510/41 289/511/41 290/512/41 +f 296/513/9 290/514/9 292/515/9 +f 293/492/3 296/513/3 295/507/3 +f 3/1/1 4/516/1 2/2/1 +f 8/4/1 5/517/1 6/5/1 +f 11/7/2 12/22/2 10/8/2 +f 15/10/3 16/21/3 13/11/3 +f 9/13/4 14/518/4 13/14/4 +f 10/16/5 15/519/5 14/17/5 +f 12/19/6 16/520/6 15/20/6 +f 11/7/7 13/11/7 16/21/7 +f 39/23/8 40/521/8 44/24/8 +f 42/26/3 37/522/3 39/23/3 +f 36/27/2 35/59/2 47/28/2 +f 33/30/8 36/523/8 45/31/8 +f 38/33/9 37/522/9 42/26/9 +f 40/35/2 38/33/2 43/34/2 +f 35/37/10 36/524/10 33/38/10 +f 39/40/10 37/525/10 38/41/10 +f 44/43/2 43/46/2 54/44/2 +f 43/46/11 42/526/11 53/47/11 +f 46/48/12 45/527/12 52/49/12 +f 45/51/2 47/73/2 51/52/2 +f 53/47/3 42/526/3 41/54/3 +f 41/54/12 44/528/12 56/56/12 +f 34/57/3 33/30/3 46/32/3 +f 35/59/9 34/57/9 48/58/9 +f 54/60/13 53/529/13 58/61/13 +f 56/63/2 54/60/2 59/62/2 +f 64/65/3 50/530/3 49/66/3 +f 51/68/13 50/530/13 64/65/13 +f 55/70/14 56/531/14 60/71/14 +f 58/61/3 53/529/3 55/70/3 +f 47/73/11 48/532/11 50/74/11 +f 50/74/3 48/532/3 46/48/3 +f 29/75/4 31/90/4 27/76/4 +f 20/78/3 19/83/3 17/79/3 +f 17/79/6 19/83/6 23/81/6 +f 19/83/5 20/78/5 24/84/5 +f 18/80/7 17/79/7 21/86/7 +f 20/78/4 18/80/4 22/88/4 +f 31/90/7 32/96/7 28/91/7 +f 30/93/5 29/75/5 25/94/5 +f 32/96/6 30/93/6 26/97/6 +f 29/75/3 30/93/3 32/96/3 +f 69/99/3 58/533/3 57/100/3 +f 57/100/15 60/534/15 72/102/15 +f 63/103/16 64/535/16 66/104/16 +f 66/104/3 64/535/3 62/106/3 +f 60/108/2 59/111/2 70/109/2 +f 59/111/16 58/533/16 69/99/16 +f 52/112/2 51/68/2 63/69/2 +f 49/66/14 52/536/14 61/114/14 +f 71/115/17 72/537/17 76/116/17 +f 69/118/3 71/115/3 73/117/3 +f 68/120/2 67/147/2 79/121/2 +f 65/123/17 68/538/17 77/124/17 +f 70/126/18 69/118/18 74/119/18 +f 72/128/2 70/126/2 75/127/2 +f 62/106/15 61/539/15 68/130/15 +f 61/131/2 63/103/2 67/105/2 +f 75/133/19 74/540/19 85/134/19 +f 78/136/20 77/541/20 84/137/20 +f 84/139/2 77/542/2 79/140/2 +f 85/134/3 74/540/3 73/142/3 +f 73/142/20 76/543/20 88/144/20 +f 79/140/19 80/544/19 82/145/19 +f 80/146/3 66/545/3 65/123/3 +f 67/147/18 66/545/18 80/146/18 +f 86/148/21 85/546/21 90/149/21 +f 88/151/2 86/148/2 91/150/2 +f 82/153/3 81/179/3 94/154/3 +f 83/156/21 82/153/21 96/155/21 +f 87/158/22 88/547/22 92/159/22 +f 90/149/3 85/546/3 87/158/3 +f 82/145/3 80/544/3 78/136/3 +f 76/161/2 75/133/2 86/135/2 +f 89/163/23 92/548/23 104/164/23 +f 95/166/24 96/549/24 98/167/24 +f 98/167/3 96/549/3 94/169/3 +f 92/171/2 91/174/2 102/172/2 +f 91/174/24 90/550/24 101/175/24 +f 94/169/23 93/551/23 100/176/23 +f 84/177/2 83/156/2 95/157/2 +f 81/179/22 84/552/22 93/180/22 +f 102/181/6 101/194/6 4/182/6 +f 99/184/6 98/553/6 7/185/6 +f 104/187/2 102/181/2 3/183/2 +f 100/189/2 99/184/2 6/186/2 +f 97/191/4 100/554/4 5/192/4 +f 101/194/3 103/196/3 2/195/3 +f 103/196/4 104/555/4 1/197/4 +f 7/185/3 98/553/3 97/191/3 +f 93/198/2 95/166/2 99/168/2 +f 101/175/3 90/550/3 89/163/3 +f 107/200/2 108/215/2 106/201/2 +f 111/203/3 112/214/3 109/204/3 +f 105/206/23 110/556/23 109/207/23 +f 106/209/25 111/557/25 110/210/25 +f 108/212/24 112/558/24 111/213/24 +f 107/200/26 109/204/26 112/214/26 +f 125/216/23 127/231/23 123/217/23 +f 116/219/3 115/224/3 113/220/3 +f 113/220/24 115/224/24 119/222/24 +f 115/224/25 116/219/25 120/225/25 +f 114/221/26 113/220/26 117/227/26 +f 116/219/23 114/221/23 118/229/23 +f 127/231/26 128/237/26 124/232/26 +f 126/234/25 125/216/25 121/235/25 +f 128/237/24 126/234/24 122/238/24 +f 125/216/3 126/234/3 128/237/3 +f 131/240/2 132/255/2 130/241/2 +f 135/243/3 136/254/3 133/244/3 +f 129/246/22 134/559/22 133/247/22 +f 130/249/27 135/560/27 134/250/27 +f 132/252/21 136/561/21 135/253/21 +f 131/240/28 133/244/28 136/254/28 +f 149/256/22 151/271/22 147/257/22 +f 138/259/3 140/268/3 139/260/3 +f 137/261/21 139/260/21 143/262/21 +f 139/260/27 140/268/27 144/264/27 +f 138/259/28 137/261/28 141/266/28 +f 140/268/22 138/259/22 142/269/22 +f 151/271/28 152/277/28 148/272/28 +f 150/274/27 149/256/27 145/275/27 +f 152/277/21 150/274/21 146/278/21 +f 149/256/3 150/274/3 152/277/3 +f 155/280/2 156/294/2 154/281/2 +f 158/283/3 159/562/3 160/284/3 +f 153/286/20 158/563/20 157/287/20 +f 154/289/29 159/564/29 158/290/29 +f 156/292/19 160/565/19 159/293/19 +f 155/280/30 157/285/30 160/284/30 +f 173/295/31 175/310/31 171/296/31 +f 164/298/3 163/303/3 161/299/3 +f 161/299/32 163/303/32 167/301/32 +f 163/303/29 164/298/29 168/304/29 +f 162/300/30 161/299/30 165/306/30 +f 164/298/20 162/300/20 166/308/20 +f 175/310/30 176/316/30 172/311/30 +f 174/313/29 173/295/29 169/314/29 +f 176/316/19 174/313/19 170/317/19 +f 173/295/3 174/313/3 176/316/3 +f 179/319/2 180/334/2 178/320/2 +f 183/322/3 184/333/3 181/323/3 +f 177/325/17 182/566/17 181/326/17 +f 178/328/33 183/567/33 182/329/33 +f 180/331/18 184/568/18 183/332/18 +f 179/319/34 181/323/34 184/333/34 +f 197/335/17 199/350/17 195/336/17 +f 186/338/3 188/347/3 187/339/3 +f 185/340/18 187/339/18 191/341/18 +f 187/339/33 188/347/33 192/343/33 +f 186/338/34 185/340/34 189/345/34 +f 188/347/17 186/338/17 190/348/17 +f 199/350/34 200/356/34 196/351/34 +f 198/353/33 197/335/33 193/354/33 +f 200/356/18 198/353/18 194/357/18 +f 197/335/3 198/353/3 200/356/3 +f 201/359/2 203/373/2 204/360/2 +f 206/362/3 207/569/3 208/363/3 +f 201/365/15 206/570/15 205/366/15 +f 202/368/35 207/571/35 206/369/35 +f 204/371/16 208/572/16 207/372/16 +f 203/373/36 205/364/36 208/363/36 +f 221/374/15 223/389/15 219/375/15 +f 212/377/3 211/382/3 209/378/3 +f 209/378/16 211/382/16 215/380/16 +f 211/382/35 212/377/35 216/383/35 +f 210/379/36 209/378/36 213/385/36 +f 212/377/15 210/379/15 214/387/15 +f 223/389/36 224/395/36 220/390/36 +f 222/392/35 221/374/35 217/393/35 +f 224/395/16 222/392/16 218/396/16 +f 221/374/3 222/392/3 224/395/3 +f 227/398/2 228/413/2 226/399/2 +f 231/401/3 232/412/3 229/402/3 +f 225/404/14 230/573/14 229/405/14 +f 226/407/37 231/574/37 230/408/37 +f 228/410/13 232/575/13 231/411/13 +f 227/398/38 229/402/38 232/412/38 +f 245/414/14 247/429/14 243/415/14 +f 234/417/3 236/426/3 235/418/3 +f 233/419/13 235/418/13 239/420/13 +f 235/418/37 236/426/37 240/422/37 +f 234/417/38 233/419/38 237/424/38 +f 236/426/14 234/417/14 238/427/14 +f 247/429/38 248/435/38 244/430/38 +f 246/432/37 245/414/37 241/433/37 +f 248/435/13 246/432/13 242/436/13 +f 245/414/3 246/432/3 248/435/3 +f 249/438/2 251/452/2 252/439/2 +f 254/441/3 255/576/3 256/442/3 +f 249/444/12 254/577/12 253/445/12 +f 250/447/39 255/578/39 254/448/39 +f 252/450/11 256/579/11 255/451/11 +f 251/452/40 253/443/40 256/442/40 +f 269/453/12 271/468/12 267/454/12 +f 260/456/3 259/461/3 257/457/3 +f 257/457/11 259/461/11 263/459/11 +f 259/461/39 260/456/39 264/462/39 +f 258/458/40 257/457/40 261/464/40 +f 260/456/12 258/458/12 262/466/12 +f 271/468/40 272/474/40 268/469/40 +f 270/471/39 269/453/39 265/472/39 +f 272/474/11 270/471/11 266/475/11 +f 269/453/3 270/471/3 272/474/3 +f 273/477/2 275/491/2 276/478/2 +f 278/480/3 279/580/3 280/481/3 +f 273/483/8 278/581/8 277/484/8 +f 274/486/41 279/582/41 278/487/41 +f 276/489/9 280/583/9 279/490/9 +f 275/491/42 277/482/42 280/481/42 +f 293/492/8 295/507/8 291/493/8 +f 284/495/3 283/500/3 281/496/3 +f 281/496/9 283/500/9 287/498/9 +f 283/500/41 284/495/41 288/501/41 +f 282/497/42 281/496/42 285/503/42 +f 284/495/8 282/497/8 286/505/8 +f 295/507/42 296/513/42 292/508/42 +f 294/510/41 293/492/41 289/511/41 +f 296/513/9 294/510/9 290/514/9 +f 293/492/3 294/510/3 296/513/3 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj new file mode 100644 index 000000000..d03d672a0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj @@ -0,0 +1,1966 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_curve_wide9.blend' +# www.blender.org +o Plane.001 +v -1.312500 0.062500 0.500000 +v -1.312500 0.187500 0.500000 +v -1.250000 0.062500 0.500000 +v -1.250000 0.187500 0.500000 +v 0.250000 0.062500 0.500000 +v 0.312499 0.062500 0.500000 +v 0.312499 0.187500 0.500000 +v 0.250000 0.187500 0.500000 +v -1.502724 0.000000 0.229277 +v 0.492993 0.000000 0.098470 +v -1.527250 0.000000 -0.144921 +v 0.468467 0.000000 -0.275727 +v -1.527250 0.062500 -0.144921 +v -1.502724 0.062500 0.229277 +v 0.492993 0.062500 0.098470 +v 0.468467 0.062500 -0.275727 +v 0.414277 0.125000 -0.146907 +v 0.102446 0.125000 -0.126468 +v 0.422452 0.125000 -0.022174 +v 0.110621 0.125000 -0.001736 +v 0.414277 0.062500 -0.146907 +v 0.102446 0.062500 -0.126468 +v 0.422452 0.062500 -0.022174 +v 0.110621 0.062500 -0.001736 +v -1.448533 0.062500 0.100457 +v -1.136702 0.062500 0.080018 +v -1.456709 0.062500 -0.024276 +v -1.144878 0.062500 -0.044714 +v -1.448533 0.125000 0.100457 +v -1.136702 0.125000 0.080018 +v -1.456709 0.125000 -0.024276 +v -1.144878 0.125000 -0.044714 +v 0.202066 0.187500 -0.414624 +v 0.264223 0.187500 -0.421157 +v 0.264223 0.062500 -0.421157 +v 0.202066 0.062500 -0.414624 +v -1.289716 0.187500 -0.257831 +v -1.289716 0.062500 -0.257831 +v -1.351874 0.187500 -0.251298 +v -1.351874 0.062500 -0.251298 +v 0.119925 0.187500 -1.332222 +v 0.119925 0.062500 -1.332222 +v 0.058792 0.187500 -1.319227 +v 0.058792 0.062500 -1.319227 +v -1.469564 0.062500 -0.994365 +v -1.408430 0.062500 -1.007360 +v -1.408430 0.187500 -1.007360 +v -1.469564 0.187500 -0.994365 +v -0.118814 0.187500 -2.223212 +v -0.118814 0.062500 -2.223212 +v -0.178254 0.187500 -2.203898 +v -0.178254 0.062500 -2.203898 +v -1.664281 0.062500 -1.721060 +v -1.604840 0.062500 -1.740373 +v -1.604840 0.187500 -1.740373 +v -1.664281 0.187500 -1.721060 +v -0.449381 0.187500 -3.084367 +v -0.449381 0.062500 -3.084367 +v -0.506476 0.187500 -3.058946 +v -0.506476 0.062500 -3.058946 +v -1.933891 0.062500 -2.423420 +v -1.876795 0.062500 -2.448841 +v -1.876795 0.187500 -2.448841 +v -1.933891 0.187500 -2.423420 +v -0.868151 0.187500 -3.906250 +v -0.868151 0.062500 -3.906250 +v -0.922276 0.187500 -3.875000 +v -0.922276 0.062500 -3.875000 +v -2.275442 0.062500 -3.093750 +v -2.221315 0.062500 -3.125000 +v -2.221315 0.187500 -3.125000 +v -2.275442 0.187500 -3.093750 +v -1.370537 0.187500 -4.679857 +v -1.370537 0.062500 -4.679857 +v -1.421100 0.187500 -4.643121 +v -1.421100 0.062500 -4.643121 +v -2.685189 0.062500 -3.724707 +v -2.634626 0.062500 -3.761444 +v -2.634626 0.187500 -3.761444 +v -2.685189 0.187500 -3.724707 +v -1.951035 0.187500 -5.396713 +v -1.951035 0.062500 -5.396713 +v -1.997481 0.187500 -5.354893 +v -1.997481 0.062500 -5.354893 +v -3.158646 0.062500 -4.309377 +v -3.112200 0.062500 -4.351198 +v -3.112200 0.187500 -4.351198 +v -3.158646 0.187500 -4.309377 +v -2.603286 0.187500 -6.048964 +v -2.603286 0.062500 -6.048964 +v -2.645105 0.187500 -6.002518 +v -2.645105 0.062500 -6.002518 +v -3.690623 0.062500 -4.841354 +v -3.648803 0.062500 -4.887801 +v -3.648803 0.187500 -4.887801 +v -3.690623 0.187500 -4.841354 +v -3.320142 0.187500 -6.629462 +v -3.320142 0.062500 -6.629462 +v -3.356877 0.187500 -6.578900 +v -3.356877 0.062500 -6.578900 +v -4.275292 0.062500 -5.314811 +v -4.238556 0.062500 -5.365375 +v -4.238556 0.187500 -5.365375 +v -4.275292 0.187500 -5.314811 +v -4.093749 0.187500 -7.131849 +v -4.093749 0.062500 -7.131849 +v -4.124998 0.187500 -7.077724 +v -4.124998 0.062500 -7.077724 +v -4.906249 0.062500 -5.724559 +v -4.875000 0.062500 -5.778686 +v -4.875000 0.187500 -5.778686 +v -4.906249 0.187500 -5.724559 +v -4.915632 0.187500 -7.550620 +v -4.915632 0.062500 -7.550620 +v -4.941052 0.187500 -7.493525 +v -4.941052 0.062500 -7.493525 +v -5.576580 0.062500 -6.066110 +v -5.551159 0.062500 -6.123206 +v -5.551159 0.187500 -6.123206 +v -5.576580 0.187500 -6.066110 +v -5.776787 0.187500 -7.881186 +v -5.776787 0.062500 -7.881186 +v -5.796100 0.187500 -7.821747 +v -5.796100 0.062500 -7.821747 +v -6.278940 0.062500 -6.335721 +v -6.259626 0.062500 -6.395162 +v -6.259626 0.187500 -6.395162 +v -6.278940 0.187500 -6.335721 +v -6.667778 0.187500 -8.119927 +v -6.667778 0.062500 -8.119927 +v -6.680771 0.187500 -8.058794 +v -6.680771 0.062500 -8.058794 +v -7.005634 0.062500 -6.530438 +v -6.992640 0.062500 -6.591572 +v -6.992640 0.187500 -6.591572 +v -7.005634 0.187500 -6.530438 +v -7.578842 0.187500 -8.264227 +v -7.578842 0.062500 -8.264227 +v -7.585375 0.187500 -8.202069 +v -7.585375 0.062500 -8.202069 +v -7.748702 0.062500 -6.648129 +v -7.742168 0.062500 -6.710286 +v -7.742168 0.187500 -6.710286 +v -7.748702 0.187500 -6.648129 +v -8.500000 0.187500 -8.312503 +v -8.500000 0.062500 -8.312503 +v -8.499999 0.187500 -8.250003 +v -8.499999 0.062500 -8.250003 +v -8.500000 0.062500 -6.687503 +v -8.500000 0.062500 -6.750003 +v -8.500000 0.187500 -6.750003 +v -8.500000 0.187500 -6.687503 +v -1.593841 0.000000 -0.657635 +v 0.369080 0.000000 -1.040966 +v -1.665715 0.000000 -1.025683 +v 0.297205 0.000000 -1.409014 +v -1.665715 0.062500 -1.025683 +v -1.593841 0.062500 -0.657635 +v 0.369080 0.062500 -1.040966 +v 0.297205 0.062500 -1.409014 +v 0.259823 0.125000 -1.274352 +v -0.046885 0.125000 -1.214457 +v 0.283780 0.125000 -1.151670 +v -0.022925 0.125000 -1.091774 +v 0.259823 0.062500 -1.274352 +v -0.046885 0.062500 -1.214457 +v 0.283780 0.062500 -1.151670 +v -0.022925 0.062500 -1.091774 +v -1.556457 0.062500 -0.792297 +v -1.249751 0.062500 -0.852192 +v -1.580416 0.062500 -0.914979 +v -1.273710 0.062500 -0.974875 +v -1.556457 0.125000 -0.792297 +v -1.249751 0.125000 -0.852192 +v -1.580416 0.125000 -0.914979 +v -1.273710 0.125000 -0.974875 +v -1.804025 0.000000 -1.549166 +v 0.092067 0.000000 -2.185431 +v -1.923324 0.000000 -1.904684 +v -0.027232 0.000000 -2.540948 +v -1.923324 0.062500 -1.904684 +v -1.804025 0.062500 -1.549166 +v 0.092067 0.062500 -2.185431 +v -0.027232 0.062500 -2.540948 +v -0.046719 0.125000 -2.402559 +v -0.342983 0.125000 -2.303143 +v -0.006952 0.125000 -2.284053 +v -0.303216 0.125000 -2.184637 +v -0.046719 0.062500 -2.402559 +v -0.342983 0.062500 -2.303143 +v -0.006952 0.062500 -2.284053 +v -0.303216 0.062500 -2.184637 +v -1.784539 0.062500 -1.687555 +v -1.488274 0.062500 -1.786972 +v -1.824306 0.062500 -1.806061 +v -1.528041 0.062500 -1.905477 +v -1.784539 0.125000 -1.687555 +v -1.488274 0.125000 -1.786972 +v -1.824306 0.125000 -1.806061 +v -1.528041 0.125000 -1.905477 +v -2.128780 0.000000 -2.405635 +v -0.331959 0.000000 -3.283946 +v -2.293463 0.000000 -2.742540 +v -0.496641 0.000000 -3.620850 +v -2.293463 0.062500 -2.742540 +v -2.128780 0.062500 -2.405635 +v -0.331959 0.062500 -3.283946 +v -0.496641 0.062500 -3.620850 +v -0.497897 0.125000 -3.481102 +v -0.778651 0.125000 -3.343866 +v -0.443003 0.125000 -3.368800 +v -0.723756 0.125000 -3.231565 +v -0.497897 0.062500 -3.481102 +v -0.778651 0.062500 -3.343866 +v -0.443003 0.062500 -3.368800 +v -0.723756 0.062500 -3.231565 +v -2.127524 0.062500 -2.545384 +v -1.846769 0.062500 -2.682620 +v -2.182419 0.062500 -2.657685 +v -1.901665 0.062500 -2.794921 +v -2.127524 0.125000 -2.545384 +v -1.846769 0.125000 -2.682620 +v -2.182419 0.125000 -2.657685 +v -1.901665 0.125000 -2.794921 +v -2.562548 0.000000 -3.212389 +v -0.895741 0.000000 -4.317718 +v -2.769797 0.000000 -3.524915 +v -1.102990 0.000000 -4.630244 +v -2.769797 0.062500 -3.524915 +v -2.562548 0.062500 -3.212389 +v -0.895741 0.062500 -4.317718 +v -1.102990 0.062500 -4.630244 +v -1.085994 0.125000 -4.491527 +v -1.346433 0.125000 -4.318820 +v -1.016911 0.125000 -4.387352 +v -1.277349 0.125000 -4.214644 +v -1.085994 0.062500 -4.491527 +v -1.346433 0.062500 -4.318820 +v -1.016911 0.062500 -4.387352 +v -1.277349 0.062500 -4.214644 +v -2.579544 0.062500 -3.351105 +v -2.319104 0.062500 -3.523814 +v -2.648627 0.062500 -3.455281 +v -2.388188 0.062500 -3.627988 +v -2.579544 0.125000 -3.351105 +v -2.319104 0.125000 -3.523814 +v -2.648627 0.125000 -3.455281 +v -2.388188 0.125000 -3.627988 +v -3.097907 0.000000 -3.955622 +v -1.589635 0.000000 -5.269057 +v -3.344176 0.000000 -4.238423 +v -1.835903 0.000000 -5.551857 +v -3.344176 0.062500 -4.238423 +v -3.097907 0.062500 -3.955622 +v -1.589635 0.062500 -5.269057 +v -1.835903 0.062500 -5.551857 +v -1.800947 0.125000 -5.416546 +v -2.036615 0.125000 -5.211322 +v -1.718857 0.125000 -5.322279 +v -1.954525 0.125000 -5.117055 +v -1.800947 0.062500 -5.416546 +v -2.036615 0.062500 -5.211322 +v -1.718857 0.062500 -5.322279 +v -1.954525 0.062500 -5.117055 +v -3.132864 0.062500 -4.090933 +v -2.897195 0.062500 -4.296158 +v -3.214954 0.062500 -4.185201 +v -2.979286 0.062500 -4.390424 +v -3.132864 0.125000 -4.090933 +v -2.897195 0.125000 -4.296158 +v -3.214954 0.125000 -4.185201 +v -2.979286 0.125000 -4.390424 +v -3.725698 0.000000 -4.622618 +v -2.401767 0.000000 -6.121686 +v -4.006773 0.000000 -4.870855 +v -2.682841 0.000000 -6.369922 +v -4.006773 0.062500 -4.870855 +v -3.725698 0.062500 -4.622618 +v -2.401767 0.062500 -6.121686 +v -2.682841 0.062500 -6.369922 +v -2.630522 0.125000 -6.240331 +v -2.837387 0.125000 -6.006102 +v -2.536831 0.125000 -6.157585 +v -2.743695 0.125000 -5.923357 +v -2.630522 0.062500 -6.240331 +v -2.837387 0.062500 -6.006102 +v -2.536831 0.062500 -6.157585 +v -2.743695 0.062500 -5.923357 +v -3.778018 0.062500 -4.752209 +v -3.571152 0.062500 -4.986439 +v -3.871710 0.062500 -4.834955 +v -3.664845 0.062500 -5.069184 +v -3.778018 0.125000 -4.752209 +v -3.571152 0.125000 -4.986439 +v -3.871710 0.125000 -4.834955 +v -3.664845 0.125000 -5.069184 +v -4.435179 0.000000 -5.201965 +v -3.318242 0.000000 -6.861015 +v -4.746251 0.000000 -5.411391 +v -3.629313 0.000000 -7.070441 +v -4.746251 0.062500 -5.411391 +v -4.435179 0.062500 -5.201965 +v -3.318242 0.062500 -6.861015 +v -3.629313 0.062500 -7.070441 +v -3.560526 0.125000 -6.948788 +v -3.735048 0.125000 -6.689561 +v -3.456836 0.125000 -6.878979 +v -3.631357 0.125000 -6.619753 +v -3.560526 0.062500 -6.948788 +v -3.735048 0.062500 -6.689561 +v -3.456836 0.062500 -6.878979 +v -3.631357 0.062500 -6.619753 +v -4.503965 0.062500 -5.323618 +v -4.329443 0.062500 -5.582846 +v -4.607657 0.062500 -5.393427 +v -4.433135 0.062500 -5.652653 +v -4.503965 0.125000 -5.323618 +v -4.329443 0.125000 -5.582846 +v -4.607657 0.125000 -5.393427 +v -4.433135 0.125000 -5.652653 +v -5.214210 0.000000 -5.683750 +v -4.323378 0.000000 -7.474396 +v -5.549956 0.000000 -5.850781 +v -4.659122 0.000000 -7.641427 +v -5.549956 0.062500 -5.850781 +v -5.214210 0.062500 -5.683750 +v -4.323378 0.062500 -7.474396 +v -4.659122 0.062500 -7.641427 +v -4.575046 0.125000 -7.529794 +v -4.714239 0.125000 -7.250005 +v -4.463130 0.125000 -7.474116 +v -4.602324 0.125000 -7.194328 +v -4.575046 0.062500 -7.529794 +v -4.714239 0.062500 -7.250005 +v -4.463130 0.062500 -7.474116 +v -4.602324 0.062500 -7.194328 +v -5.298286 0.062500 -5.795384 +v -5.159094 0.062500 -6.075173 +v -5.410203 0.062500 -5.851061 +v -5.271009 0.062500 -6.130849 +v -5.298286 0.125000 -5.795384 +v -5.159094 0.125000 -6.075173 +v -5.410203 0.125000 -5.851061 +v -5.271009 0.125000 -6.130849 +v -6.049461 0.000000 -6.059729 +v -5.399977 0.000000 -7.951333 +v -6.404138 0.000000 -6.181507 +v -5.754651 0.000000 -8.073112 +v -6.404138 0.062500 -6.181507 +v -6.049461 0.062500 -6.059729 +v -5.399977 0.062500 -7.951333 +v -5.754651 0.062500 -8.073112 +v -5.656723 0.125000 -7.973407 +v -5.758205 0.125000 -7.677843 +v -5.538497 0.125000 -7.932814 +v -5.639980 0.125000 -7.637251 +v -5.656723 0.062500 -7.973407 +v -5.758205 0.062500 -7.677843 +v -5.538497 0.062500 -7.932814 +v -5.639980 0.062500 -7.637251 +v -6.147390 0.062500 -6.159434 +v -6.045908 0.062500 -6.454998 +v -6.265616 0.062500 -6.200027 +v -6.164133 0.062500 -6.495589 +v -6.147390 0.125000 -6.159434 +v -6.045908 0.125000 -6.454998 +v -6.265616 0.125000 -6.200027 +v -6.164133 0.125000 -6.495589 +v -6.926642 0.000000 -6.323469 +v -6.529619 0.000000 -8.283666 +v -7.294180 0.000000 -6.397911 +v -6.897154 0.000000 -8.358108 +v -7.294180 0.062500 -6.397911 +v -6.926642 0.062500 -6.323469 +v -6.529619 0.062500 -8.283666 +v -6.897154 0.062500 -8.358108 +v -6.787049 0.125000 -8.272038 +v -6.849084 0.125000 -7.965756 +v -6.664536 0.125000 -8.247224 +v -6.726572 0.125000 -7.940943 +v -6.787049 0.062500 -8.272038 +v -6.849084 0.062500 -7.965756 +v -6.664536 0.062500 -8.247224 +v -6.726572 0.062500 -7.940943 +v -7.036747 0.062500 -6.409539 +v -6.974712 0.062500 -6.715820 +v -7.159261 0.062500 -6.434352 +v -7.097224 0.062500 -6.740633 +v -7.036747 0.125000 -6.409539 +v -6.974712 0.125000 -6.715820 +v -7.159261 0.125000 -6.434352 +v -7.097224 0.125000 -6.740633 +v -7.830744 0.000000 -6.470458 +v -7.692974 0.000000 -8.465706 +v -8.204854 0.000000 -6.496290 +v -8.067081 0.000000 -8.491539 +v -8.204854 0.062500 -6.496290 +v -7.830744 0.062500 -6.470458 +v -7.692974 0.062500 -8.465706 +v -8.067081 0.062500 -8.491539 +v -7.946684 0.125000 -8.420578 +v -7.968211 0.125000 -8.108818 +v -7.821981 0.125000 -8.411966 +v -7.843508 0.125000 -8.100208 +v -7.946684 0.062500 -8.420578 +v -7.968211 0.062500 -8.108818 +v -7.821981 0.062500 -8.411966 +v -7.843508 0.062500 -8.100208 +v -7.951141 0.062500 -6.541420 +v -7.929615 0.062500 -6.853178 +v -8.075846 0.062500 -6.550030 +v -8.054317 0.062500 -6.861787 +v -7.951141 0.125000 -6.541420 +v -7.929615 0.125000 -6.853178 +v -8.075846 0.125000 -6.550030 +v -8.054317 0.125000 -6.861787 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9979 0.0000 0.0654 +vn 0.0654 0.0000 0.9979 +vn 0.9979 0.0000 -0.0654 +vn -0.0654 0.0000 -0.9979 +vn 0.9986 0.0000 -0.0523 +vn -0.9986 0.0000 0.0523 +vn -0.9659 0.0000 0.2588 +vn 0.9877 0.0000 -0.1564 +vn -0.9877 0.0000 0.1564 +vn -0.9336 0.0000 0.3584 +vn 0.9659 0.0000 -0.2588 +vn 0.9336 0.0000 -0.3584 +vn 0.8387 0.0000 -0.5446 +vn 0.8910 0.0000 -0.4540 +vn -0.8910 0.0000 0.4540 +vn -0.8387 0.0000 0.5446 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7771 0.0000 0.6293 +vn 0.7771 0.0000 -0.6293 +vn 0.6293 0.0000 -0.7771 +vn 0.5446 0.0000 -0.8387 +vn -0.5446 0.0000 0.8387 +vn -0.6293 0.0000 0.7771 +vn -0.4540 0.0000 0.8910 +vn 0.3584 0.0000 -0.9336 +vn 0.4540 0.0000 -0.8910 +vn 0.2588 0.0000 -0.9659 +vn -0.3584 0.0000 0.9336 +vn -0.1564 0.0000 0.9877 +vn -0.2588 0.0000 0.9659 +vn -0.0523 0.0000 0.9986 +vn 0.1564 0.0000 -0.9877 +vn -1.0000 0.0000 0.0000 +vn 0.0523 0.0000 -0.9986 +vn -0.9815 0.0000 0.1917 +vn 0.1917 0.0000 0.9815 +vn 0.9815 0.0000 -0.1917 +vn -0.1917 0.0000 -0.9815 +vn -0.9480 0.0000 0.3181 +vn 0.3181 0.0000 0.9480 +vn 0.9480 0.0000 -0.3181 +vn -0.3181 0.0000 -0.9480 +vn -0.8984 0.0000 0.4392 +vn 0.4392 0.0000 0.8984 +vn 0.8984 0.0000 -0.4392 +vn -0.4392 0.0000 -0.8984 +vn -0.8334 0.0000 0.5527 +vn 0.5527 0.0000 0.8334 +vn 0.8334 0.0000 -0.5527 +vn -0.5527 0.0000 -0.8334 +vn -0.7541 0.0000 0.6567 +vn 0.6567 0.0000 0.7541 +vn 0.7541 0.0000 -0.6567 +vn -0.6567 0.0000 -0.7541 +vn -0.6620 0.0000 0.7495 +vn 0.7495 0.0000 0.6620 +vn 0.6620 0.0000 -0.7495 +vn -0.7495 0.0000 -0.6620 +vn -0.5585 0.0000 0.8295 +vn 0.8295 0.0000 0.5585 +vn 0.5585 0.0000 -0.8295 +vn -0.8295 0.0000 -0.5585 +vn -0.4454 0.0000 0.8953 +vn 0.8953 0.0000 0.4454 +vn 0.4454 0.0000 -0.8953 +vn -0.8953 0.0000 -0.4454 +vn -0.3247 0.0000 0.9458 +vn 0.9458 0.0000 0.3247 +vn 0.3247 0.0000 -0.9458 +vn -0.9458 0.0000 -0.3247 +vn -0.1985 0.0000 0.9801 +vn 0.9801 0.0000 0.1985 +vn 0.1985 0.0000 -0.9801 +vn -0.9801 0.0000 -0.1985 +vn -0.0689 0.0000 0.9976 +vn 0.9976 0.0000 0.0689 +vn 0.0689 0.0000 -0.9976 +vn -0.9976 0.0000 -0.0689 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/1 6/5/1 7/6/1 +f 9/7/2 12/8/2 10/9/2 +f 14/10/3 16/11/3 13/12/3 +f 9/13/4 13/14/4 11/15/4 +f 10/16/5 14/17/5 9/18/5 +f 12/19/6 15/20/6 10/9/6 +f 11/21/7 16/11/7 12/8/7 +f 29/22/4 27/23/4 25/24/4 +f 20/25/3 17/26/3 18/27/3 +f 17/26/6 23/28/6 21/29/6 +f 19/30/5 24/31/5 23/32/5 +f 18/27/7 21/33/7 22/34/7 +f 20/25/4 22/35/4 24/36/4 +f 31/37/7 28/38/7 27/39/7 +f 30/40/5 25/41/5 26/42/5 +f 32/43/6 26/44/6 28/45/6 +f 29/22/3 32/43/3 31/37/3 +f 40/46/2 3/47/2 1/48/2 +f 7/49/3 33/50/3 8/51/3 +f 35/52/8 7/49/8 6/53/8 +f 39/54/9 1/55/9 2/56/9 +f 37/57/3 2/56/3 4/58/3 +f 36/59/2 6/53/2 5/60/2 +f 33/50/9 5/61/9 8/51/9 +f 38/62/8 4/58/8 3/47/8 +f 34/63/3 43/64/3 33/65/3 +f 45/66/2 38/67/2 40/68/2 +f 51/69/10 44/70/10 43/71/10 +f 52/72/2 42/73/2 44/74/2 +f 42/75/11 34/63/11 35/76/11 +f 48/77/12 40/78/12 39/79/12 +f 47/80/3 39/79/3 37/81/3 +f 44/82/2 35/76/2 36/83/2 +f 43/64/12 36/84/12 33/65/12 +f 46/85/11 37/81/11 38/67/11 +f 55/86/3 64/87/3 56/88/3 +f 64/87/13 53/89/13 56/88/13 +f 54/90/14 47/91/14 46/92/14 +f 45/93/2 54/90/2 46/92/2 +f 41/94/3 51/69/3 43/71/3 +f 50/95/14 41/94/14 42/73/14 +f 56/96/10 45/97/10 48/98/10 +f 55/99/3 48/98/3 47/91/3 +f 57/100/3 67/101/3 59/102/3 +f 69/103/2 62/104/2 61/105/2 +f 60/106/2 50/107/2 52/108/2 +f 59/109/13 52/110/13 51/111/13 +f 62/112/15 55/86/15 54/113/15 +f 61/114/2 54/113/2 53/115/2 +f 49/116/3 59/109/3 51/111/3 +f 58/117/15 49/116/15 50/107/15 +f 77/118/2 70/119/2 69/120/2 +f 78/121/16 71/122/16 70/119/16 +f 66/123/17 57/100/17 58/124/17 +f 72/125/18 61/126/18 64/127/18 +f 63/128/3 72/125/3 64/127/3 +f 68/129/2 58/124/2 60/130/2 +f 67/101/18 60/131/18 59/102/18 +f 70/132/17 63/128/17 62/104/17 +f 84/133/2 74/134/2 76/135/2 +f 79/136/3 88/137/3 80/138/3 +f 65/139/3 75/140/3 67/141/3 +f 74/142/16 65/139/16 66/143/16 +f 80/144/19 69/145/19 72/146/19 +f 71/122/3 80/144/3 72/146/3 +f 76/147/2 66/143/2 68/148/2 +f 75/140/19 68/149/19 67/141/19 +f 96/150/20 85/151/20 88/152/20 +f 90/153/21 81/154/21 82/155/21 +f 83/156/22 76/157/22 75/158/22 +f 86/159/23 79/136/23 78/160/23 +f 85/161/2 78/160/2 77/162/2 +f 73/163/3 83/156/3 75/158/3 +f 82/164/23 73/163/23 74/134/23 +f 88/137/22 77/165/22 80/138/22 +f 101/166/2 94/167/2 93/168/2 +f 102/169/24 95/170/24 94/167/24 +f 87/171/3 96/150/3 88/152/3 +f 92/172/2 82/155/2 84/173/2 +f 91/174/20 84/175/20 83/176/20 +f 94/177/21 87/171/21 86/178/21 +f 93/179/2 86/178/2 85/180/2 +f 81/154/3 91/174/3 83/176/3 +f 110/181/25 103/182/25 102/183/25 +f 107/184/26 100/185/26 99/186/26 +f 89/187/3 99/188/3 91/189/3 +f 98/190/24 89/187/24 90/191/24 +f 104/192/27 93/193/27 96/194/27 +f 95/170/3 104/192/3 96/194/3 +f 100/195/2 90/191/2 92/196/2 +f 99/188/27 92/197/27 91/189/27 +f 111/198/3 120/199/3 112/200/3 +f 120/199/28 109/201/28 112/200/28 +f 109/202/2 102/183/2 101/203/2 +f 97/204/3 107/184/3 99/186/3 +f 106/205/25 97/204/25 98/206/25 +f 112/207/26 101/208/26 104/209/26 +f 103/182/3 112/207/3 104/209/3 +f 108/210/2 98/206/2 100/211/2 +f 122/212/29 113/213/29 114/214/29 +f 113/213/3 123/215/3 115/216/3 +f 116/217/2 106/218/2 108/219/2 +f 115/220/28 108/221/28 107/222/28 +f 118/223/30 111/198/30 110/224/30 +f 117/225/2 110/224/2 109/226/2 +f 105/227/3 115/220/3 107/222/3 +f 114/228/30 105/227/30 106/218/30 +f 133/229/2 126/230/2 125/231/2 +f 134/232/31 127/233/31 126/230/31 +f 128/234/32 117/235/32 120/236/32 +f 119/237/3 128/234/3 120/236/3 +f 124/238/2 114/214/2 116/239/2 +f 123/215/32 116/240/32 115/216/32 +f 126/241/29 119/237/29 118/242/29 +f 125/243/2 118/242/2 117/244/2 +f 139/245/33 132/246/33 131/247/33 +f 140/248/2 130/249/2 132/250/2 +f 121/251/3 131/252/3 123/253/3 +f 130/254/31 121/251/31 122/255/31 +f 136/256/34 125/257/34 128/258/34 +f 127/233/3 136/256/3 128/258/3 +f 132/259/2 122/255/2 124/260/2 +f 131/252/34 124/261/34 123/253/34 +f 151/262/3 144/263/3 143/264/3 +f 152/265/35 141/266/35 144/263/35 +f 142/267/36 135/268/36 134/269/36 +f 133/270/2 142/267/2 134/269/2 +f 129/271/3 139/245/3 131/247/3 +f 138/272/36 129/271/36 130/249/36 +f 144/273/33 133/274/33 136/275/33 +f 143/276/3 136/275/3 135/268/3 +f 146/277/37 147/278/37 145/279/37 +f 152/280/37 150/281/37 149/282/37 +f 148/283/2 138/284/2 140/285/2 +f 147/286/35 140/287/35 139/288/35 +f 150/289/38 143/264/38 142/290/38 +f 149/291/2 142/290/2 141/292/2 +f 137/293/3 147/286/3 139/288/3 +f 146/294/38 137/293/38 138/284/38 +f 155/295/2 154/296/2 153/297/2 +f 159/298/3 157/299/3 158/300/3 +f 153/301/39 157/302/39 155/303/39 +f 154/304/40 158/305/40 153/306/40 +f 156/307/41 159/308/41 154/296/41 +f 155/295/42 160/309/42 156/310/42 +f 173/311/39 171/312/39 169/313/39 +f 164/314/3 161/315/3 162/316/3 +f 161/315/41 167/317/41 165/318/41 +f 163/319/40 168/320/40 167/321/40 +f 162/316/42 165/322/42 166/323/42 +f 164/314/39 166/324/39 168/325/39 +f 175/326/42 172/327/42 171/328/42 +f 174/329/40 169/330/40 170/331/40 +f 176/332/41 170/333/41 172/334/41 +f 173/311/3 176/332/3 175/326/3 +f 179/335/2 178/336/2 177/337/2 +f 183/338/3 181/339/3 182/340/3 +f 177/341/43 181/342/43 179/343/43 +f 178/344/44 182/345/44 177/346/44 +f 180/347/45 183/348/45 178/336/45 +f 179/335/46 184/349/46 180/350/46 +f 197/351/43 195/352/43 193/353/43 +f 188/354/3 185/355/3 186/356/3 +f 185/355/45 191/357/45 189/358/45 +f 187/359/44 192/360/44 191/361/44 +f 186/356/46 189/362/46 190/363/46 +f 188/354/43 190/364/43 192/365/43 +f 199/366/46 196/367/46 195/368/46 +f 198/369/44 193/370/44 194/371/44 +f 200/372/45 194/373/45 196/374/45 +f 197/351/3 200/372/3 199/366/3 +f 203/375/2 202/376/2 201/377/2 +f 207/378/3 205/379/3 206/380/3 +f 201/381/47 205/382/47 203/383/47 +f 202/384/48 206/385/48 201/386/48 +f 204/387/49 207/388/49 202/376/49 +f 203/375/50 208/389/50 204/390/50 +f 221/391/47 219/392/47 217/393/47 +f 212/394/3 209/395/3 210/396/3 +f 209/395/49 215/397/49 213/398/49 +f 211/399/48 216/400/48 215/401/48 +f 210/396/50 213/402/50 214/403/50 +f 212/394/47 214/404/47 216/405/47 +f 223/406/50 220/407/50 219/408/50 +f 222/409/48 217/410/48 218/411/48 +f 224/412/49 218/413/49 220/414/49 +f 221/391/3 224/412/3 223/406/3 +f 227/415/2 226/416/2 225/417/2 +f 231/418/3 229/419/3 230/420/3 +f 225/421/51 229/422/51 227/423/51 +f 226/424/52 230/425/52 225/426/52 +f 228/427/53 231/428/53 226/416/53 +f 227/415/54 232/429/54 228/430/54 +f 245/431/51 243/432/51 241/433/51 +f 236/434/3 233/435/3 234/436/3 +f 233/435/53 239/437/53 237/438/53 +f 235/439/52 240/440/52 239/441/52 +f 234/436/54 237/442/54 238/443/54 +f 236/434/51 238/444/51 240/445/51 +f 247/446/54 244/447/54 243/448/54 +f 246/449/52 241/450/52 242/451/52 +f 248/452/53 242/453/53 244/454/53 +f 245/431/3 248/452/3 247/446/3 +f 251/455/2 250/456/2 249/457/2 +f 255/458/3 253/459/3 254/460/3 +f 249/461/55 253/462/55 251/463/55 +f 250/464/56 254/465/56 249/466/56 +f 252/467/57 255/468/57 250/456/57 +f 251/455/58 256/469/58 252/470/58 +f 269/471/55 267/472/55 265/473/55 +f 260/474/3 257/475/3 258/476/3 +f 257/475/57 263/477/57 261/478/57 +f 259/479/56 264/480/56 263/481/56 +f 258/476/58 261/482/58 262/483/58 +f 260/474/55 262/484/55 264/485/55 +f 271/486/58 268/487/58 267/488/58 +f 270/489/56 265/490/56 266/491/56 +f 272/492/57 266/493/57 268/494/57 +f 269/471/3 272/492/3 271/486/3 +f 275/495/2 274/496/2 273/497/2 +f 279/498/3 277/499/3 278/500/3 +f 273/501/59 277/502/59 275/503/59 +f 274/504/60 278/505/60 273/506/60 +f 276/507/61 279/508/61 274/496/61 +f 275/495/62 280/509/62 276/510/62 +f 293/511/59 291/512/59 289/513/59 +f 284/514/3 281/515/3 282/516/3 +f 281/515/61 287/517/61 285/518/61 +f 283/519/60 288/520/60 287/521/60 +f 282/516/62 285/522/62 286/523/62 +f 284/514/59 286/524/59 288/525/59 +f 295/526/62 292/527/62 291/528/62 +f 294/529/60 289/530/60 290/531/60 +f 296/532/61 290/533/61 292/534/61 +f 293/511/3 296/532/3 295/526/3 +f 299/535/2 298/536/2 297/537/2 +f 303/538/3 301/539/3 302/540/3 +f 297/541/63 301/542/63 299/543/63 +f 298/544/64 302/545/64 297/546/64 +f 300/547/65 303/548/65 298/536/65 +f 299/535/66 304/549/66 300/550/66 +f 317/551/63 315/552/63 313/553/63 +f 308/554/3 305/555/3 306/556/3 +f 305/555/65 311/557/65 309/558/65 +f 307/559/64 312/560/64 311/561/64 +f 306/556/66 309/562/66 310/563/66 +f 308/554/63 310/564/63 312/565/63 +f 319/566/66 316/567/66 315/568/66 +f 318/569/64 313/570/64 314/571/64 +f 320/572/65 314/573/65 316/574/65 +f 317/551/3 320/572/3 319/566/3 +f 323/575/2 322/576/2 321/577/2 +f 327/578/3 325/579/3 326/580/3 +f 321/581/67 325/582/67 323/583/67 +f 322/584/68 326/585/68 321/586/68 +f 324/587/69 327/588/69 322/576/69 +f 323/575/70 328/589/70 324/590/70 +f 341/591/67 339/592/67 337/593/67 +f 332/594/3 329/595/3 330/596/3 +f 329/595/69 335/597/69 333/598/69 +f 331/599/68 336/600/68 335/601/68 +f 330/596/70 333/602/70 334/603/70 +f 332/594/67 334/604/67 336/605/67 +f 343/606/70 340/607/70 339/608/70 +f 342/609/68 337/610/68 338/611/68 +f 344/612/69 338/613/69 340/614/69 +f 341/591/3 344/612/3 343/606/3 +f 347/615/2 346/616/2 345/617/2 +f 351/618/3 349/619/3 350/620/3 +f 345/621/71 349/622/71 347/623/71 +f 346/624/72 350/625/72 345/626/72 +f 348/627/73 351/628/73 346/616/73 +f 347/615/74 352/629/74 348/630/74 +f 365/631/71 363/632/71 361/633/71 +f 356/634/3 353/635/3 354/636/3 +f 353/635/73 359/637/73 357/638/73 +f 355/639/72 360/640/72 359/641/72 +f 354/636/74 357/642/74 358/643/74 +f 356/634/71 358/644/71 360/645/71 +f 367/646/74 364/647/74 363/648/74 +f 366/649/72 361/650/72 362/651/72 +f 368/652/73 362/653/73 364/654/73 +f 365/631/3 368/652/3 367/646/3 +f 371/655/2 370/656/2 369/657/2 +f 375/658/3 373/659/3 374/660/3 +f 369/661/75 373/662/75 371/663/75 +f 370/664/76 374/665/76 369/666/76 +f 372/667/77 375/668/77 370/656/77 +f 371/655/78 376/669/78 372/670/78 +f 389/671/75 387/672/75 385/673/75 +f 380/674/3 377/675/3 378/676/3 +f 377/675/77 383/677/77 381/678/77 +f 379/679/76 384/680/76 383/681/76 +f 378/676/78 381/682/78 382/683/78 +f 380/674/75 382/684/75 384/685/75 +f 391/686/78 388/687/78 387/688/78 +f 390/689/76 385/690/76 386/691/76 +f 392/692/77 386/693/77 388/694/77 +f 389/671/3 392/692/3 391/686/3 +f 395/695/2 394/696/2 393/697/2 +f 399/698/3 397/699/3 398/700/3 +f 393/701/79 397/702/79 395/703/79 +f 394/704/80 398/705/80 393/706/80 +f 396/707/81 399/708/81 394/696/81 +f 395/695/82 400/709/82 396/710/82 +f 413/711/79 411/712/79 409/713/79 +f 404/714/3 401/715/3 402/716/3 +f 401/715/81 407/717/81 405/718/81 +f 403/719/80 408/720/80 407/721/80 +f 402/716/82 405/722/82 406/723/82 +f 404/714/79 406/724/79 408/725/79 +f 415/726/82 412/727/82 411/728/82 +f 414/729/80 409/730/80 410/731/80 +f 416/732/81 410/733/81 412/734/81 +f 413/711/3 416/732/3 415/726/3 +f 3/1/1 4/735/1 2/2/1 +f 8/4/1 5/736/1 6/5/1 +f 9/7/2 11/21/2 12/8/2 +f 14/10/3 15/737/3 16/11/3 +f 9/13/4 14/738/4 13/14/4 +f 10/16/5 15/739/5 14/17/5 +f 12/19/6 16/740/6 15/20/6 +f 11/21/7 13/12/7 16/11/7 +f 29/22/4 31/37/4 27/23/4 +f 20/25/3 19/30/3 17/26/3 +f 17/26/6 19/30/6 23/28/6 +f 19/30/5 20/25/5 24/31/5 +f 18/27/7 17/26/7 21/33/7 +f 20/25/4 18/27/4 22/35/4 +f 31/37/7 32/43/7 28/38/7 +f 30/40/5 29/22/5 25/41/5 +f 32/43/6 30/40/6 26/44/6 +f 29/22/3 30/40/3 32/43/3 +f 40/46/2 38/62/2 3/47/2 +f 7/49/3 34/741/3 33/50/3 +f 35/52/8 34/741/8 7/49/8 +f 39/54/9 40/742/9 1/55/9 +f 37/57/3 39/54/3 2/56/3 +f 36/59/2 35/52/2 6/53/2 +f 33/50/9 36/743/9 5/61/9 +f 38/62/8 37/57/8 4/58/8 +f 34/63/3 41/744/3 43/64/3 +f 45/66/2 46/85/2 38/67/2 +f 51/69/10 52/745/10 44/70/10 +f 52/72/2 50/95/2 42/73/2 +f 42/75/11 41/744/11 34/63/11 +f 48/77/12 45/746/12 40/78/12 +f 47/80/3 48/77/3 39/79/3 +f 44/82/2 42/75/2 35/76/2 +f 43/64/12 44/747/12 36/84/12 +f 46/85/11 47/80/11 37/81/11 +f 55/86/3 63/748/3 64/87/3 +f 64/87/13 61/749/13 53/89/13 +f 54/90/14 55/99/14 47/91/14 +f 45/93/2 53/750/2 54/90/2 +f 41/94/3 49/751/3 51/69/3 +f 50/95/14 49/751/14 41/94/14 +f 56/96/10 53/752/10 45/97/10 +f 55/99/3 56/96/3 48/98/3 +f 57/100/3 65/753/3 67/101/3 +f 69/103/2 70/132/2 62/104/2 +f 60/106/2 58/117/2 50/107/2 +f 59/109/13 60/754/13 52/110/13 +f 62/112/15 63/748/15 55/86/15 +f 61/114/2 62/112/2 54/113/2 +f 49/116/3 57/755/3 59/109/3 +f 58/117/15 57/755/15 49/116/15 +f 77/118/2 78/121/2 70/119/2 +f 78/121/16 79/756/16 71/122/16 +f 66/123/17 65/753/17 57/100/17 +f 72/125/18 69/757/18 61/126/18 +f 63/128/3 71/758/3 72/125/3 +f 68/129/2 66/123/2 58/124/2 +f 67/101/18 68/759/18 60/131/18 +f 70/132/17 71/758/17 63/128/17 +f 84/133/2 82/164/2 74/134/2 +f 79/136/3 87/760/3 88/137/3 +f 65/139/3 73/761/3 75/140/3 +f 74/142/16 73/761/16 65/139/16 +f 80/144/19 77/762/19 69/145/19 +f 71/122/3 79/756/3 80/144/3 +f 76/147/2 74/142/2 66/143/2 +f 75/140/19 76/763/19 68/149/19 +f 96/150/20 93/764/20 85/151/20 +f 90/153/21 89/765/21 81/154/21 +f 83/156/22 84/766/22 76/157/22 +f 86/159/23 87/760/23 79/136/23 +f 85/161/2 86/159/2 78/160/2 +f 73/163/3 81/767/3 83/156/3 +f 82/164/23 81/767/23 73/163/23 +f 88/137/22 85/768/22 77/165/22 +f 101/166/2 102/169/2 94/167/2 +f 102/169/24 103/769/24 95/170/24 +f 87/171/3 95/770/3 96/150/3 +f 92/172/2 90/153/2 82/155/2 +f 91/174/20 92/771/20 84/175/20 +f 94/177/21 95/770/21 87/171/21 +f 93/179/2 94/177/2 86/178/2 +f 81/154/3 89/765/3 91/174/3 +f 110/181/25 111/772/25 103/182/25 +f 107/184/26 108/773/26 100/185/26 +f 89/187/3 97/774/3 99/188/3 +f 98/190/24 97/774/24 89/187/24 +f 104/192/27 101/775/27 93/193/27 +f 95/170/3 103/769/3 104/192/3 +f 100/195/2 98/190/2 90/191/2 +f 99/188/27 100/776/27 92/197/27 +f 111/198/3 119/777/3 120/199/3 +f 120/199/28 117/778/28 109/201/28 +f 109/202/2 110/181/2 102/183/2 +f 97/204/3 105/779/3 107/184/3 +f 106/205/25 105/779/25 97/204/25 +f 112/207/26 109/780/26 101/208/26 +f 103/182/3 111/772/3 112/207/3 +f 108/210/2 106/205/2 98/206/2 +f 122/212/29 121/781/29 113/213/29 +f 113/213/3 121/781/3 123/215/3 +f 116/217/2 114/228/2 106/218/2 +f 115/220/28 116/782/28 108/221/28 +f 118/223/30 119/777/30 111/198/30 +f 117/225/2 118/223/2 110/224/2 +f 105/227/3 113/783/3 115/220/3 +f 114/228/30 113/783/30 105/227/30 +f 133/229/2 134/232/2 126/230/2 +f 134/232/31 135/784/31 127/233/31 +f 128/234/32 125/785/32 117/235/32 +f 119/237/3 127/786/3 128/234/3 +f 124/238/2 122/212/2 114/214/2 +f 123/215/32 124/787/32 116/240/32 +f 126/241/29 127/786/29 119/237/29 +f 125/243/2 126/241/2 118/242/2 +f 139/245/33 140/788/33 132/246/33 +f 140/248/2 138/272/2 130/249/2 +f 121/251/3 129/789/3 131/252/3 +f 130/254/31 129/789/31 121/251/31 +f 136/256/34 133/790/34 125/257/34 +f 127/233/3 135/784/3 136/256/3 +f 132/259/2 130/254/2 122/255/2 +f 131/252/34 132/791/34 124/261/34 +f 151/262/3 152/265/3 144/263/3 +f 152/265/35 149/792/35 141/266/35 +f 142/267/36 143/276/36 135/268/36 +f 133/270/2 141/793/2 142/267/2 +f 129/271/3 137/794/3 139/245/3 +f 138/272/36 137/794/36 129/271/36 +f 144/273/33 141/795/33 133/274/33 +f 143/276/3 144/273/3 136/275/3 +f 146/277/37 148/796/37 147/278/37 +f 152/280/37 151/797/37 150/281/37 +f 148/283/2 146/294/2 138/284/2 +f 147/286/35 148/798/35 140/287/35 +f 150/289/38 151/262/38 143/264/38 +f 149/291/2 150/289/2 142/290/2 +f 137/293/3 145/799/3 147/286/3 +f 146/294/38 145/799/38 137/293/38 +f 155/295/2 156/310/2 154/296/2 +f 159/298/3 160/309/3 157/299/3 +f 153/301/39 158/800/39 157/302/39 +f 154/304/40 159/801/40 158/305/40 +f 156/307/41 160/802/41 159/308/41 +f 155/295/42 157/299/42 160/309/42 +f 173/311/39 175/326/39 171/312/39 +f 164/314/3 163/319/3 161/315/3 +f 161/315/41 163/319/41 167/317/41 +f 163/319/40 164/314/40 168/320/40 +f 162/316/42 161/315/42 165/322/42 +f 164/314/39 162/316/39 166/324/39 +f 175/326/42 176/332/42 172/327/42 +f 174/329/40 173/311/40 169/330/40 +f 176/332/41 174/329/41 170/333/41 +f 173/311/3 174/329/3 176/332/3 +f 179/335/2 180/350/2 178/336/2 +f 183/338/3 184/349/3 181/339/3 +f 177/341/43 182/803/43 181/342/43 +f 178/344/44 183/804/44 182/345/44 +f 180/347/45 184/805/45 183/348/45 +f 179/335/46 181/339/46 184/349/46 +f 197/351/43 199/366/43 195/352/43 +f 188/354/3 187/359/3 185/355/3 +f 185/355/45 187/359/45 191/357/45 +f 187/359/44 188/354/44 192/360/44 +f 186/356/46 185/355/46 189/362/46 +f 188/354/43 186/356/43 190/364/43 +f 199/366/46 200/372/46 196/367/46 +f 198/369/44 197/351/44 193/370/44 +f 200/372/45 198/369/45 194/373/45 +f 197/351/3 198/369/3 200/372/3 +f 203/375/2 204/390/2 202/376/2 +f 207/378/3 208/389/3 205/379/3 +f 201/381/47 206/806/47 205/382/47 +f 202/384/48 207/807/48 206/385/48 +f 204/387/49 208/808/49 207/388/49 +f 203/375/50 205/379/50 208/389/50 +f 221/391/47 223/406/47 219/392/47 +f 212/394/3 211/399/3 209/395/3 +f 209/395/49 211/399/49 215/397/49 +f 211/399/48 212/394/48 216/400/48 +f 210/396/50 209/395/50 213/402/50 +f 212/394/47 210/396/47 214/404/47 +f 223/406/50 224/412/50 220/407/50 +f 222/409/48 221/391/48 217/410/48 +f 224/412/49 222/409/49 218/413/49 +f 221/391/3 222/409/3 224/412/3 +f 227/415/2 228/430/2 226/416/2 +f 231/418/3 232/429/3 229/419/3 +f 225/421/51 230/809/51 229/422/51 +f 226/424/52 231/810/52 230/425/52 +f 228/427/53 232/811/53 231/428/53 +f 227/415/54 229/419/54 232/429/54 +f 245/431/51 247/446/51 243/432/51 +f 236/434/3 235/439/3 233/435/3 +f 233/435/53 235/439/53 239/437/53 +f 235/439/52 236/434/52 240/440/52 +f 234/436/54 233/435/54 237/442/54 +f 236/434/51 234/436/51 238/444/51 +f 247/446/54 248/452/54 244/447/54 +f 246/449/52 245/431/52 241/450/52 +f 248/452/53 246/449/53 242/453/53 +f 245/431/3 246/449/3 248/452/3 +f 251/455/2 252/470/2 250/456/2 +f 255/458/3 256/469/3 253/459/3 +f 249/461/55 254/812/55 253/462/55 +f 250/464/56 255/813/56 254/465/56 +f 252/467/57 256/814/57 255/468/57 +f 251/455/58 253/459/58 256/469/58 +f 269/471/55 271/486/55 267/472/55 +f 260/474/3 259/479/3 257/475/3 +f 257/475/57 259/479/57 263/477/57 +f 259/479/56 260/474/56 264/480/56 +f 258/476/58 257/475/58 261/482/58 +f 260/474/55 258/476/55 262/484/55 +f 271/486/58 272/492/58 268/487/58 +f 270/489/56 269/471/56 265/490/56 +f 272/492/57 270/489/57 266/493/57 +f 269/471/3 270/489/3 272/492/3 +f 275/495/2 276/510/2 274/496/2 +f 279/498/3 280/509/3 277/499/3 +f 273/501/59 278/815/59 277/502/59 +f 274/504/60 279/816/60 278/505/60 +f 276/507/61 280/817/61 279/508/61 +f 275/495/62 277/499/62 280/509/62 +f 293/511/59 295/526/59 291/512/59 +f 284/514/3 283/519/3 281/515/3 +f 281/515/61 283/519/61 287/517/61 +f 283/519/60 284/514/60 288/520/60 +f 282/516/62 281/515/62 285/522/62 +f 284/514/59 282/516/59 286/524/59 +f 295/526/62 296/532/62 292/527/62 +f 294/529/60 293/511/60 289/530/60 +f 296/532/61 294/529/61 290/533/61 +f 293/511/3 294/529/3 296/532/3 +f 299/535/2 300/550/2 298/536/2 +f 303/538/3 304/549/3 301/539/3 +f 297/541/63 302/818/63 301/542/63 +f 298/544/64 303/819/64 302/545/64 +f 300/547/65 304/820/65 303/548/65 +f 299/535/66 301/539/66 304/549/66 +f 317/551/63 319/566/63 315/552/63 +f 308/554/3 307/559/3 305/555/3 +f 305/555/65 307/559/65 311/557/65 +f 307/559/64 308/554/64 312/560/64 +f 306/556/66 305/555/66 309/562/66 +f 308/554/63 306/556/63 310/564/63 +f 319/566/66 320/572/66 316/567/66 +f 318/569/64 317/551/64 313/570/64 +f 320/572/65 318/569/65 314/573/65 +f 317/551/3 318/569/3 320/572/3 +f 323/575/2 324/590/2 322/576/2 +f 327/578/3 328/589/3 325/579/3 +f 321/581/67 326/821/67 325/582/67 +f 322/584/68 327/822/68 326/585/68 +f 324/587/69 328/823/69 327/588/69 +f 323/575/70 325/579/70 328/589/70 +f 341/591/67 343/606/67 339/592/67 +f 332/594/3 331/599/3 329/595/3 +f 329/595/69 331/599/69 335/597/69 +f 331/599/68 332/594/68 336/600/68 +f 330/596/70 329/595/70 333/602/70 +f 332/594/67 330/596/67 334/604/67 +f 343/606/70 344/612/70 340/607/70 +f 342/609/68 341/591/68 337/610/68 +f 344/612/69 342/609/69 338/613/69 +f 341/591/3 342/609/3 344/612/3 +f 347/615/2 348/630/2 346/616/2 +f 351/618/3 352/629/3 349/619/3 +f 345/621/71 350/824/71 349/622/71 +f 346/624/72 351/825/72 350/625/72 +f 348/627/73 352/826/73 351/628/73 +f 347/615/74 349/619/74 352/629/74 +f 365/631/71 367/646/71 363/632/71 +f 356/634/3 355/639/3 353/635/3 +f 353/635/73 355/639/73 359/637/73 +f 355/639/72 356/634/72 360/640/72 +f 354/636/74 353/635/74 357/642/74 +f 356/634/71 354/636/71 358/644/71 +f 367/646/74 368/652/74 364/647/74 +f 366/649/72 365/631/72 361/650/72 +f 368/652/73 366/649/73 362/653/73 +f 365/631/3 366/649/3 368/652/3 +f 371/655/2 372/670/2 370/656/2 +f 375/658/3 376/669/3 373/659/3 +f 369/661/75 374/827/75 373/662/75 +f 370/664/76 375/828/76 374/665/76 +f 372/667/77 376/829/77 375/668/77 +f 371/655/78 373/659/78 376/669/78 +f 389/671/75 391/686/75 387/672/75 +f 380/674/3 379/679/3 377/675/3 +f 377/675/77 379/679/77 383/677/77 +f 379/679/76 380/674/76 384/680/76 +f 378/676/78 377/675/78 381/682/78 +f 380/674/75 378/676/75 382/684/75 +f 391/686/78 392/692/78 388/687/78 +f 390/689/76 389/671/76 385/690/76 +f 392/692/77 390/689/77 386/693/77 +f 389/671/3 390/689/3 392/692/3 +f 395/695/2 396/710/2 394/696/2 +f 399/698/3 400/709/3 397/699/3 +f 393/701/79 398/830/79 397/702/79 +f 394/704/80 399/831/80 398/705/80 +f 396/707/81 400/832/81 399/708/81 +f 395/695/82 397/699/82 400/709/82 +f 413/711/79 415/726/79 411/712/79 +f 404/714/3 403/719/3 401/715/3 +f 401/715/81 403/719/81 407/717/81 +f 403/719/80 404/714/80 408/720/80 +f 402/716/82 401/715/82 405/722/82 +f 404/714/79 402/716/79 406/724/79 +f 415/726/82 416/732/82 412/727/82 +f 414/729/80 413/711/80 409/730/80 +f 416/732/81 414/729/81 410/733/81 +f 413/711/3 414/729/3 416/732/3 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj new file mode 100644 index 000000000..4fb15ebb7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj @@ -0,0 +1,185 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_straight_short.blend' +# www.blender.org +o Plane.001 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.062500 0.187500 +v 1.000000 0.062500 0.187500 +v 1.000000 0.062500 -0.187500 +v -0.812500 0.062500 0.500000 +v 0.812500 0.062500 0.500000 +v -0.812500 0.187500 0.500000 +v 0.812500 0.187500 0.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.187500 0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.187500 0.500000 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v -0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -0.500000 +v -0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.187500 -0.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.187500 -0.500000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 1/7/3 5/8/3 3/9/3 +f 2/10/4 6/11/4 1/12/4 +f 4/13/5 7/14/5 2/2/5 +f 3/1/6 8/15/6 4/16/6 +f 36/17/5 10/18/5 34/19/5 +f 13/20/3 38/21/3 37/22/3 +f 12/23/4 13/24/4 10/25/4 +f 10/18/1 37/26/1 34/19/1 +f 11/27/2 40/28/2 35/29/2 +f 9/30/4 16/31/4 11/32/4 +f 21/33/3 19/34/3 17/35/3 +f 23/36/6 20/37/6 19/38/6 +f 22/39/4 17/40/4 18/41/4 +f 24/42/5 18/43/5 20/44/5 +f 21/33/2 24/42/2 23/36/2 +f 29/45/3 27/46/3 25/47/3 +f 31/48/6 28/49/6 27/50/6 +f 30/51/4 25/52/4 26/53/4 +f 32/54/5 26/55/5 28/56/5 +f 29/45/2 32/54/2 31/48/2 +f 33/57/1 15/58/1 9/59/1 +f 39/60/5 16/61/5 15/58/5 +f 36/17/2 14/62/2 12/63/2 +f 11/27/3 33/64/3 9/65/3 +f 33/66/6 40/67/6 39/68/6 +f 38/69/6 34/70/6 37/71/6 +f 3/1/1 4/16/1 2/2/1 +f 7/4/2 8/15/2 5/5/2 +f 1/7/3 6/72/3 5/8/3 +f 2/10/4 7/73/4 6/11/4 +f 4/13/5 8/74/5 7/14/5 +f 3/1/6 5/5/6 8/15/6 +f 36/17/5 12/63/5 10/18/5 +f 13/20/3 14/62/3 38/21/3 +f 12/23/4 14/75/4 13/24/4 +f 10/18/1 13/76/1 37/26/1 +f 11/27/2 16/61/2 40/28/2 +f 9/30/4 15/77/4 16/31/4 +f 21/33/3 23/36/3 19/34/3 +f 23/36/6 24/42/6 20/37/6 +f 22/39/4 21/33/4 17/40/4 +f 24/42/5 22/39/5 18/43/5 +f 21/33/2 22/39/2 24/42/2 +f 29/45/3 31/48/3 27/46/3 +f 31/48/6 32/54/6 28/49/6 +f 30/51/4 29/45/4 25/52/4 +f 32/54/5 30/51/5 26/55/5 +f 29/45/2 30/51/2 32/54/2 +f 33/57/1 39/60/1 15/58/1 +f 39/60/5 40/28/5 16/61/5 +f 36/17/2 38/21/2 14/62/2 +f 11/27/3 35/29/3 33/64/3 +f 33/66/6 35/78/6 40/67/6 +f 38/69/6 36/79/6 34/70/6 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj new file mode 100644 index 000000000..9cfecc35f --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj @@ -0,0 +1,3923 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_switch.blend' +# www.blender.org +o SignTurn +v -2.500000 1.000000 -1.125000 +v -1.500000 1.000000 -1.125000 +v -2.500000 2.000000 -1.125000 +v -1.500000 2.000000 -1.125000 +v -2.500000 2.000000 -0.875000 +v -2.500000 1.000000 -0.875000 +v -1.500000 1.000000 -0.875000 +v -1.500000 2.000000 -0.875000 +v -2.125000 1.000000 -0.875000 +v -1.875000 1.000000 -0.875000 +v -2.125000 1.000000 -1.125000 +v -1.875000 1.000000 -1.125000 +v -2.125000 0.000000 -1.125000 +v -2.125000 0.000000 -0.875000 +v -1.875000 0.000000 -0.875000 +v -1.875000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/8/3 2/9/3 +f 1/3/4 5/10/4 3/1/4 +f 3/11/5 8/12/5 4/13/5 +f 2/14/6 6/15/6 1/16/6 +f 13/17/6 15/18/6 14/19/6 +f 16/20/1 11/21/1 12/22/1 +f 14/23/2 10/24/2 9/25/2 +f 15/26/3 12/27/3 10/28/3 +f 13/29/4 9/30/4 11/31/4 +f 3/1/1 4/32/1 2/2/1 +f 7/4/2 8/33/2 5/5/2 +f 4/7/3 8/34/3 7/8/3 +f 1/3/4 6/35/4 5/10/4 +f 3/11/5 5/36/5 8/12/5 +f 2/14/6 7/37/6 6/15/6 +f 13/17/6 16/38/6 15/18/6 +f 16/20/1 13/39/1 11/21/1 +f 14/23/2 15/40/2 10/24/2 +f 15/26/3 16/41/3 12/27/3 +f 13/29/4 14/42/4 9/30/4 +o SignStraight +v -2.500000 1.000000 -1.125000 +v -1.500000 1.000000 -1.125000 +v -2.500000 2.000000 -1.125000 +v -1.500000 2.000000 -1.125000 +v -2.500000 2.000000 -0.875000 +v -2.500000 1.000000 -0.875000 +v -1.500000 1.000000 -0.875000 +v -1.500000 2.000000 -0.875000 +v -2.125000 1.000000 -0.875000 +v -1.875000 1.000000 -0.875000 +v -2.125000 1.000000 -1.125000 +v -1.875000 1.000000 -1.125000 +v -2.125000 0.000000 -1.125000 +v -2.125000 0.000000 -0.875000 +v -1.875000 0.000000 -0.875000 +v -1.875000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.000100 0.999900 +vt 0.000000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 19/43/7 18/44/7 17/45/7 +f 23/46/8 21/47/8 22/48/8 +f 20/49/9 23/50/9 18/51/9 +f 17/45/10 21/52/10 19/43/10 +f 19/53/11 24/54/11 20/55/11 +f 18/56/12 22/57/12 17/58/12 +f 29/59/12 31/60/12 30/61/12 +f 32/62/7 27/63/7 28/64/7 +f 30/65/8 26/66/8 25/67/8 +f 31/68/9 28/69/9 26/70/9 +f 29/71/10 25/72/10 27/73/10 +f 19/43/7 20/74/7 18/44/7 +f 23/46/8 24/75/8 21/47/8 +f 20/49/9 24/76/9 23/50/9 +f 17/45/10 22/77/10 21/52/10 +f 19/53/11 21/78/11 24/54/11 +f 18/56/12 23/79/12 22/57/12 +f 29/59/12 32/80/12 31/60/12 +f 32/62/7 29/81/7 27/63/7 +f 30/65/8 31/82/8 26/66/8 +f 31/68/9 32/83/9 28/69/9 +f 29/71/10 30/84/10 25/72/10 +o Rail +v 1.000000 0.062500 4.812500 +v 1.000000 0.062500 5.187500 +v -1.000000 0.062500 5.187500 +v -1.000000 0.062500 4.812500 +v -1.000000 0.000000 5.187500 +v 1.000000 0.000000 5.187500 +v -1.000000 0.000000 4.812500 +v 1.000000 0.000000 4.812500 +v -1.000000 0.000000 4.187500 +v 1.000000 0.000000 4.187500 +v -1.000000 0.000000 3.812500 +v 1.000000 0.000000 3.812500 +v -1.000000 0.000000 3.187500 +v 1.000000 0.000000 3.187500 +v -1.000000 0.000000 2.812500 +v 1.000000 0.000000 2.812500 +v -1.000000 0.000000 7.187500 +v 1.000000 0.000000 7.187500 +v -1.000000 0.000000 6.812500 +v 1.000000 0.000000 6.812500 +v -1.000000 0.000000 6.187500 +v 1.000000 0.000000 6.187500 +v -1.000000 0.000000 5.812500 +v 1.000000 0.000000 5.812500 +v -1.000000 0.062500 3.812500 +v -1.000000 0.062500 4.187500 +v 1.000000 0.062500 4.187500 +v 1.000000 0.062500 3.812500 +v -1.000000 0.062500 2.812500 +v -1.000000 0.062500 3.187500 +v 1.000000 0.062500 3.187500 +v 1.000000 0.062500 2.812500 +v -1.000000 0.062500 6.812500 +v -1.000000 0.062500 7.187500 +v 1.000000 0.062500 7.187500 +v 1.000000 0.062500 6.812500 +v -1.000000 0.062500 5.812500 +v -1.000000 0.062500 6.187500 +v 1.000000 0.062500 6.187500 +v 1.000000 0.062500 5.812500 +v -0.812500 0.062500 7.500000 +v 0.812500 0.062500 7.500000 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.187500 7.500000 +v 0.812500 0.187500 7.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v 0.750000 0.062500 7.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 0.187500 7.500000 +v 0.750000 0.187500 2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.062500 7.500000 +v -0.750000 0.187500 2.500000 +v -0.750000 0.187500 7.500000 +v 0.625000 0.062500 7.062500 +v 0.937500 0.062500 7.062500 +v 0.625000 0.062500 6.937500 +v 0.937500 0.062500 6.937500 +v 0.625000 0.125000 7.062500 +v 0.937500 0.125000 7.062500 +v 0.625000 0.125000 6.937500 +v 0.937500 0.125000 6.937500 +v -0.937500 0.062500 7.062500 +v -0.625000 0.062500 7.062500 +v -0.937500 0.062500 6.937500 +v -0.625000 0.062500 6.937500 +v -0.937500 0.125000 7.062500 +v -0.625000 0.125000 7.062500 +v -0.937500 0.125000 6.937500 +v -0.625000 0.125000 6.937500 +v 0.625000 0.062500 6.062500 +v 0.937500 0.062500 6.062500 +v 0.625000 0.062500 5.937500 +v 0.937500 0.062500 5.937500 +v 0.625000 0.125000 6.062500 +v 0.937500 0.125000 6.062500 +v 0.625000 0.125000 5.937500 +v 0.937500 0.125000 5.937500 +v -0.937500 0.062500 6.062500 +v -0.625000 0.062500 6.062500 +v -0.937500 0.062500 5.937500 +v -0.625000 0.062500 5.937500 +v -0.937500 0.125000 6.062500 +v -0.625000 0.125000 6.062500 +v -0.937500 0.125000 5.937500 +v -0.625000 0.125000 5.937500 +v 0.625000 0.062500 5.062500 +v 0.937500 0.062500 5.062500 +v 0.625000 0.062500 4.937500 +v 0.937500 0.062500 4.937500 +v 0.625000 0.125000 5.062500 +v 0.937500 0.125000 5.062500 +v 0.625000 0.125000 4.937500 +v 0.937500 0.125000 4.937500 +v -0.937500 0.062500 5.062500 +v -0.625000 0.062500 5.062500 +v -0.937500 0.062500 4.937500 +v -0.625000 0.062500 4.937500 +v -0.937500 0.125000 5.062500 +v -0.625000 0.125000 5.062500 +v -0.937500 0.125000 4.937500 +v -0.625000 0.125000 4.937500 +v 0.625000 0.062500 4.062500 +v 0.937500 0.062500 4.062500 +v 0.625000 0.062500 3.937500 +v 0.937500 0.062500 3.937500 +v 0.625000 0.125000 4.062500 +v 0.937500 0.125000 4.062500 +v 0.625000 0.125000 3.937500 +v 0.937500 0.125000 3.937500 +v -0.937500 0.062500 4.062500 +v -0.625000 0.062500 4.062500 +v -0.937500 0.062500 3.937500 +v -0.625000 0.062500 3.937500 +v -0.937500 0.125000 4.062500 +v -0.625000 0.125000 4.062500 +v -0.937500 0.125000 3.937500 +v -0.625000 0.125000 3.937500 +v 0.625000 0.062500 3.062500 +v 0.937500 0.062500 3.062500 +v 0.625000 0.062500 2.937500 +v 0.937500 0.062500 2.937500 +v 0.625000 0.125000 3.062500 +v 0.937500 0.125000 3.062500 +v 0.625000 0.125000 2.937500 +v 0.937500 0.125000 2.937500 +v -0.937500 0.062500 3.062500 +v -0.625000 0.062500 3.062500 +v -0.937500 0.062500 2.937500 +v -0.625000 0.062500 2.937500 +v -0.937500 0.125000 3.062500 +v -0.625000 0.125000 3.062500 +v -0.937500 0.125000 2.937500 +v -0.625000 0.125000 2.937500 +v -0.812500 0.062500 3.500000 +v -0.812500 0.062500 4.500000 +v -0.812500 0.062500 5.500000 +v -0.812500 0.062500 6.500000 +v 0.812500 0.062500 6.500000 +v 0.812500 0.062500 5.500000 +v 0.812500 0.062500 4.500000 +v 0.812500 0.062500 3.500000 +v -0.812500 0.187500 3.500000 +v -0.812500 0.187500 4.500000 +v -0.812500 0.187500 5.500000 +v -0.812500 0.187500 6.500000 +v 0.812500 0.187500 6.500000 +v 0.812500 0.187500 5.500000 +v 0.812500 0.187500 4.500000 +v 0.812500 0.187500 3.500000 +v 0.750000 0.062500 6.500000 +v 0.750000 0.062500 5.500000 +v 0.750000 0.062500 4.500000 +v 0.750000 0.062500 3.500000 +v 0.750000 0.187500 6.500000 +v 0.750000 0.187500 5.500000 +v 0.750000 0.187500 4.500000 +v 0.750000 0.187500 3.500000 +v -0.750000 0.062500 3.500000 +v -0.750000 0.062500 4.500000 +v -0.750000 0.062500 5.500000 +v -0.750000 0.062500 6.500000 +v -0.750000 0.187500 3.500000 +v -0.750000 0.187500 4.500000 +v -0.750000 0.187500 5.500000 +v -0.750000 0.187500 6.500000 +v 1.000000 0.062500 -5.187500 +v 1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -5.187500 +v -1.000000 0.000000 -4.812500 +v 1.000000 0.000000 -4.812500 +v -1.000000 0.000000 -5.187500 +v 1.000000 0.000000 -5.187500 +v -1.000000 0.000000 -5.812500 +v 1.000000 0.000000 -5.812500 +v -1.000000 0.000000 -6.187500 +v 1.000000 0.000000 -6.187500 +v -1.000000 0.000000 -6.812500 +v 1.000000 0.000000 -6.812500 +v -1.000000 0.000000 -7.187500 +v 1.000000 0.000000 -7.187500 +v -1.000000 0.000000 -2.812500 +v 1.000000 0.000000 -2.812500 +v -1.000000 0.000000 -3.187500 +v 1.000000 0.000000 -3.187500 +v -1.000000 0.000000 -3.812500 +v 1.000000 0.000000 -3.812500 +v -1.000000 0.000000 -4.187500 +v 1.000000 0.000000 -4.187500 +v -1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -4.187500 +v -1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -4.187500 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.062500 -7.500000 +v 0.812500 0.062500 -7.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 +v -0.812500 0.187500 -7.500000 +v 0.812500 0.187500 -7.500000 +v 0.750000 0.062500 -2.500000 +v 0.750000 0.062500 -7.500000 +v 0.750000 0.187500 -2.500000 +v 0.750000 0.187500 -7.500000 +v -0.750000 0.062500 -7.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.187500 -7.500000 +v -0.750000 0.187500 -2.500000 +v 0.625000 0.062500 -2.937500 +v 0.937500 0.062500 -2.937500 +v 0.625000 0.062500 -3.062500 +v 0.937500 0.062500 -3.062500 +v 0.625000 0.125000 -2.937500 +v 0.937500 0.125000 -2.937500 +v 0.625000 0.125000 -3.062500 +v 0.937500 0.125000 -3.062500 +v -0.937500 0.062500 -2.937500 +v -0.625000 0.062500 -2.937500 +v -0.937500 0.062500 -3.062500 +v -0.625000 0.062500 -3.062500 +v -0.937500 0.125000 -2.937500 +v -0.625000 0.125000 -2.937500 +v -0.937500 0.125000 -3.062500 +v -0.625000 0.125000 -3.062500 +v 0.625000 0.062500 -3.937500 +v 0.937500 0.062500 -3.937500 +v 0.625000 0.062500 -4.062500 +v 0.937500 0.062500 -4.062500 +v 0.625000 0.125000 -3.937500 +v 0.937500 0.125000 -3.937500 +v 0.625000 0.125000 -4.062500 +v 0.937500 0.125000 -4.062500 +v -0.937500 0.062500 -3.937500 +v -0.625000 0.062500 -3.937500 +v -0.937500 0.062500 -4.062500 +v -0.625000 0.062500 -4.062500 +v -0.937500 0.125000 -3.937500 +v -0.625000 0.125000 -3.937500 +v -0.937500 0.125000 -4.062500 +v -0.625000 0.125000 -4.062500 +v 0.625000 0.062500 -4.937500 +v 0.937500 0.062500 -4.937500 +v 0.625000 0.062500 -5.062500 +v 0.937500 0.062500 -5.062500 +v 0.625000 0.125000 -4.937500 +v 0.937500 0.125000 -4.937500 +v 0.625000 0.125000 -5.062500 +v 0.937500 0.125000 -5.062500 +v -0.937500 0.062500 -4.937500 +v -0.625000 0.062500 -4.937500 +v -0.937500 0.062500 -5.062500 +v -0.625000 0.062500 -5.062500 +v -0.937500 0.125000 -4.937500 +v -0.625000 0.125000 -4.937500 +v -0.937500 0.125000 -5.062500 +v -0.625000 0.125000 -5.062500 +v 0.625000 0.062500 -5.937500 +v 0.937500 0.062500 -5.937500 +v 0.625000 0.062500 -6.062500 +v 0.937500 0.062500 -6.062500 +v 0.625000 0.125000 -5.937500 +v 0.937500 0.125000 -5.937500 +v 0.625000 0.125000 -6.062500 +v 0.937500 0.125000 -6.062500 +v -0.937500 0.062500 -5.937500 +v -0.625000 0.062500 -5.937500 +v -0.937500 0.062500 -6.062500 +v -0.625000 0.062500 -6.062500 +v -0.937500 0.125000 -5.937500 +v -0.625000 0.125000 -5.937500 +v -0.937500 0.125000 -6.062500 +v -0.625000 0.125000 -6.062500 +v 0.625000 0.062500 -6.937500 +v 0.937500 0.062500 -6.937500 +v 0.625000 0.062500 -7.062500 +v 0.937500 0.062500 -7.062500 +v 0.625000 0.125000 -6.937500 +v 0.937500 0.125000 -6.937500 +v 0.625000 0.125000 -7.062500 +v 0.937500 0.125000 -7.062500 +v -0.937500 0.062500 -6.937500 +v -0.625000 0.062500 -6.937500 +v -0.937500 0.062500 -7.062500 +v -0.625000 0.062500 -7.062500 +v -0.937500 0.125000 -6.937500 +v -0.625000 0.125000 -6.937500 +v -0.937500 0.125000 -7.062500 +v -0.625000 0.125000 -7.062500 +v -0.812500 0.062500 -6.500000 +v -0.812500 0.062500 -5.500000 +v -0.812500 0.062500 -4.500000 +v -0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -4.500000 +v 0.812500 0.062500 -5.500000 +v 0.812500 0.062500 -6.500000 +v -0.812500 0.187500 -6.500000 +v -0.812500 0.187500 -5.500000 +v -0.812500 0.187500 -4.500000 +v -0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -4.500000 +v 0.812500 0.187500 -5.500000 +v 0.812500 0.187500 -6.500000 +v 0.750000 0.062500 -3.500000 +v 0.750000 0.062500 -4.500000 +v 0.750000 0.062500 -5.500000 +v 0.750000 0.062500 -6.500000 +v 0.750000 0.187500 -3.500000 +v 0.750000 0.187500 -4.500000 +v 0.750000 0.187500 -5.500000 +v 0.750000 0.187500 -6.500000 +v -0.750000 0.062500 -6.500000 +v -0.750000 0.062500 -5.500000 +v -0.750000 0.062500 -4.500000 +v -0.750000 0.062500 -3.500000 +v -0.750000 0.187500 -6.500000 +v -0.750000 0.187500 -5.500000 +v -0.750000 0.187500 -4.500000 +v -0.750000 0.187500 -3.500000 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +v -1.725096 0.062500 1.451439 +v -1.966661 0.062500 1.649687 +v -1.645797 0.062500 1.548066 +v -1.887362 0.062500 1.746314 +v -1.756082 0.062500 1.315164 +v -1.518184 0.062500 1.605042 +v -3.064205 0.062500 2.873829 +v -3.302103 0.062500 2.583950 +v -1.756082 0.000000 1.315164 +v -3.302103 0.000000 2.583950 +v -1.518184 0.000000 1.605042 +v -3.064205 0.000000 2.873829 +v -0.504144 0.062500 3.159608 +v -0.504144 0.187500 3.159608 +v -1.855282 0.187500 4.062409 +v -1.855282 0.062500 4.062409 +v -0.556111 0.062500 3.194331 +v -0.556111 0.187500 3.194331 +v -1.803315 0.187500 4.027686 +v -1.803315 0.062500 4.027686 +v 0.217808 0.062500 4.510286 +v 0.217808 0.187500 4.510286 +v -1.283496 0.187500 5.132147 +v -1.283496 0.062500 5.132147 +v 0.160065 0.062500 4.534204 +v 0.160065 0.187500 4.534204 +v -1.225753 0.187500 5.108229 +v -1.225753 0.062500 5.108229 +v 0.662384 0.062500 5.975857 +v 0.662384 0.187500 5.975857 +v -0.931392 0.187500 6.292879 +v -0.931392 0.062500 6.292879 +v 0.601084 0.062500 5.988050 +v 0.601084 0.187500 5.988050 +v -0.870092 0.187500 6.280685 +v -0.870092 0.062500 6.280685 +v 0.812499 0.062500 7.500000 +v 0.812499 0.187500 7.500000 +v -0.812501 0.187500 7.500000 +v -0.812501 0.062500 7.500000 +v 0.749998 0.062500 7.500000 +v 0.749998 0.187500 7.500000 +v -0.750000 0.187500 7.500000 +v -0.750000 0.062500 7.500000 +v -1.376398 0.062500 2.183322 +v -1.376398 0.187500 2.183322 +v -1.324431 0.187500 2.148599 +v -1.324431 0.062500 2.148599 +v -3.495856 0.062500 2.040392 +v -3.495856 0.187500 2.040392 +v -2.144718 0.187500 1.137591 +v -2.144718 0.062500 1.137591 +v -3.443888 0.062500 2.005669 +v -3.443888 0.187500 2.005669 +v -2.196684 0.187500 1.172314 +v -2.196684 0.062500 1.172314 +v -4.217808 0.062500 0.689714 +v -4.217808 0.187500 0.689714 +v -2.716504 0.187500 0.067853 +v -2.716504 0.062500 0.067853 +v -4.160065 0.062500 0.665796 +v -4.160065 0.187500 0.665796 +v -2.774246 0.187500 0.091771 +v -2.774246 0.062500 0.091771 +v -4.662384 0.062500 -0.775857 +v -4.662384 0.187500 -0.775857 +v -3.068608 0.187500 -1.092879 +v -3.068608 0.062500 -1.092879 +v -4.601084 0.062500 -0.788050 +v -4.601084 0.187500 -0.788050 +v -3.129908 0.187500 -1.080685 +v -3.129908 0.062500 -1.080685 +v -4.812499 0.062500 -2.300000 +v -4.812499 0.187500 -2.300000 +v -3.187499 0.187500 -2.300000 +v -3.187499 0.062500 -2.300000 +v -4.749998 0.062500 -2.300000 +v -4.749998 0.187500 -2.300000 +v -3.250000 0.187500 -2.300000 +v -3.250000 0.062500 -2.300000 +v -2.932924 0.125000 2.442679 +v -3.174490 0.125000 2.640927 +v -2.853625 0.125000 2.539305 +v -3.095191 0.125000 2.737553 +v -2.623602 0.062500 3.016677 +v -2.623602 0.187500 3.016677 +v -2.675569 0.062500 3.051401 +v -2.675569 0.187500 3.051401 +v -2.932924 0.062500 2.442679 +v -3.174490 0.062500 2.640927 +v -2.853625 0.062500 2.539305 +v -3.095191 0.062500 2.737553 +v -1.725096 0.125000 1.451439 +v -1.966661 0.125000 1.649687 +v -1.645797 0.125000 1.548066 +v -1.887362 0.125000 1.746314 +v -3.000000 0.062500 -5.187500 +v -3.000000 0.062500 -4.812500 +v -5.000000 0.062500 -4.812500 +v -5.000000 0.062500 -5.187500 +v -5.000000 0.000000 -4.812500 +v -3.000000 0.000000 -4.812500 +v -5.000000 0.000000 -5.187500 +v -3.000000 0.000000 -5.187500 +v -5.000000 0.000000 -5.812500 +v -3.000000 0.000000 -5.812500 +v -5.000000 0.000000 -6.187500 +v -3.000000 0.000000 -6.187500 +v -5.000000 0.000000 -6.812500 +v -3.000000 0.000000 -6.812500 +v -5.000000 0.000000 -7.187500 +v -3.000000 0.000000 -7.187500 +v -5.000000 0.000000 -3.812500 +v -3.000000 0.000000 -3.812500 +v -5.000000 0.000000 -4.187500 +v -3.000000 0.000000 -4.187500 +v -5.000000 0.062500 -6.187500 +v -5.000000 0.062500 -5.812500 +v -3.000000 0.062500 -5.812500 +v -3.000000 0.062500 -6.187500 +v -5.000000 0.062500 -7.187500 +v -5.000000 0.062500 -6.812500 +v -3.000000 0.062500 -6.812500 +v -3.000000 0.062500 -7.187500 +v -5.000000 0.062500 -4.187500 +v -5.000000 0.062500 -3.812500 +v -3.000000 0.062500 -3.812500 +v -3.000000 0.062500 -4.187500 +v -4.812500 0.062500 -7.500000 +v -3.187500 0.062500 -7.500000 +v -4.812500 0.187500 -7.500000 +v -3.187500 0.187500 -7.500000 +v -3.250000 0.062500 -7.500000 +v -3.250000 0.187500 -7.500000 +v -4.750000 0.062500 -7.500000 +v -4.750000 0.187500 -7.500000 +v -3.375000 0.062500 -3.937500 +v -3.062500 0.062500 -3.937500 +v -3.375000 0.062500 -4.062500 +v -3.062500 0.062500 -4.062500 +v -3.375000 0.125000 -3.937500 +v -3.062500 0.125000 -3.937500 +v -3.375000 0.125000 -4.062500 +v -3.062500 0.125000 -4.062500 +v -4.937500 0.062500 -3.937500 +v -4.625000 0.062500 -3.937500 +v -4.937500 0.062500 -4.062500 +v -4.625000 0.062500 -4.062500 +v -4.937500 0.125000 -3.937500 +v -4.625000 0.125000 -3.937500 +v -4.937500 0.125000 -4.062500 +v -4.625000 0.125000 -4.062500 +v -3.375000 0.062500 -4.937500 +v -3.062500 0.062500 -4.937500 +v -3.375000 0.062500 -5.062500 +v -3.062500 0.062500 -5.062500 +v -3.375000 0.125000 -4.937500 +v -3.062500 0.125000 -4.937500 +v -3.375000 0.125000 -5.062500 +v -3.062500 0.125000 -5.062500 +v -4.937500 0.062500 -4.937500 +v -4.625000 0.062500 -4.937500 +v -4.937500 0.062500 -5.062500 +v -4.625000 0.062500 -5.062500 +v -4.937500 0.125000 -4.937500 +v -4.625000 0.125000 -4.937500 +v -4.937500 0.125000 -5.062500 +v -4.625000 0.125000 -5.062500 +v -3.375000 0.062500 -5.937500 +v -3.062500 0.062500 -5.937500 +v -3.375000 0.062500 -6.062500 +v -3.062500 0.062500 -6.062500 +v -3.375000 0.125000 -5.937500 +v -3.062500 0.125000 -5.937500 +v -3.375000 0.125000 -6.062500 +v -3.062500 0.125000 -6.062500 +v -4.937500 0.062500 -5.937500 +v -4.625000 0.062500 -5.937500 +v -4.937500 0.062500 -6.062500 +v -4.625000 0.062500 -6.062500 +v -4.937500 0.125000 -5.937500 +v -4.625000 0.125000 -5.937500 +v -4.937500 0.125000 -6.062500 +v -4.625000 0.125000 -6.062500 +v -3.375000 0.062500 -6.937500 +v -3.062500 0.062500 -6.937500 +v -3.375000 0.062500 -7.062500 +v -3.062500 0.062500 -7.062500 +v -3.375000 0.125000 -6.937500 +v -3.062500 0.125000 -6.937500 +v -3.375000 0.125000 -7.062500 +v -3.062500 0.125000 -7.062500 +v -4.937500 0.062500 -6.937500 +v -4.625000 0.062500 -6.937500 +v -4.937500 0.062500 -7.062500 +v -4.625000 0.062500 -7.062500 +v -4.937500 0.125000 -6.937500 +v -4.625000 0.125000 -6.937500 +v -4.937500 0.125000 -7.062500 +v -4.625000 0.125000 -7.062500 +v -4.812500 0.062500 -6.500000 +v -4.812500 0.062500 -5.500000 +v -4.812500 0.062500 -4.500000 +v -4.812500 0.062500 -3.500000 +v -3.187500 0.062500 -3.500000 +v -3.187500 0.062500 -4.500000 +v -3.187500 0.062500 -5.500000 +v -3.187500 0.062500 -6.500000 +v -4.812500 0.187500 -6.500000 +v -4.812500 0.187500 -5.500000 +v -4.812500 0.187500 -4.500000 +v -4.812500 0.187500 -3.500000 +v -3.187500 0.187500 -3.500000 +v -3.187500 0.187500 -4.500000 +v -3.187500 0.187500 -5.500000 +v -3.187500 0.187500 -6.500000 +v -3.250000 0.062500 -3.500000 +v -3.250000 0.062500 -4.500000 +v -3.250000 0.062500 -5.500000 +v -3.250000 0.062500 -6.500000 +v -3.250000 0.187500 -3.500000 +v -3.250000 0.187500 -4.500000 +v -3.250000 0.187500 -5.500000 +v -3.250000 0.187500 -6.500000 +v -4.750000 0.062500 -6.500000 +v -4.750000 0.062500 -5.500000 +v -4.750000 0.062500 -4.500000 +v -4.750000 0.062500 -3.500000 +v -4.750000 0.187500 -6.500000 +v -4.750000 0.187500 -5.500000 +v -4.750000 0.187500 -4.500000 +v -4.750000 0.187500 -3.500000 +v -2.346383 0.062500 0.486832 +v -2.621983 0.062500 0.634143 +v -2.287458 0.062500 0.597072 +v -2.563059 0.062500 0.744383 +v -2.350187 0.062500 0.347129 +v -2.173414 0.062500 0.677850 +v -3.937256 0.062500 1.620643 +v -4.114030 0.062500 1.289923 +v -2.350187 0.000000 0.347129 +v -4.114030 0.000000 1.289923 +v -2.173414 0.000000 0.677850 +v -3.937256 0.000000 1.620643 +v -3.724385 0.125000 1.223389 +v -3.999985 0.125000 1.370701 +v -3.665460 0.125000 1.333629 +v -3.941061 0.125000 1.480941 +v -3.724385 0.062500 1.223389 +v -3.999985 0.062500 1.370701 +v -3.665460 0.062500 1.333629 +v -3.941061 0.062500 1.480941 +v -2.346383 0.125000 0.486832 +v -2.621983 0.125000 0.634143 +v -2.287458 0.125000 0.597072 +v -2.563059 0.125000 0.744383 +v -2.787336 0.062500 -0.609743 +v -3.086380 0.062500 -0.519029 +v -2.751051 0.062500 -0.490125 +v -3.050095 0.062500 -0.399411 +v -2.763813 0.062500 -0.747503 +v -2.654956 0.062500 -0.388651 +v -4.568837 0.062500 0.191919 +v -4.677694 0.062500 -0.166934 +v -2.763813 0.000000 -0.747503 +v -4.677694 0.000000 -0.166934 +v -2.654956 0.000000 -0.388651 +v -4.568837 0.000000 0.191919 +v -4.282555 0.125000 -0.156173 +v -4.581599 0.125000 -0.065459 +v -4.246270 0.125000 -0.036556 +v -4.545314 0.125000 0.054159 +v -4.282555 0.062500 -0.156173 +v -4.581599 0.062500 -0.065459 +v -4.246270 0.062500 -0.036556 +v -4.545314 0.062500 0.054159 +v -2.787336 0.125000 -0.609743 +v -3.086380 0.125000 -0.519029 +v -2.751051 0.125000 -0.490125 +v -3.050095 0.125000 -0.399411 +v -3.005888 0.062500 -1.771274 +v -3.316883 0.062500 -1.740644 +v -2.993635 0.062500 -1.646876 +v -3.304631 0.062500 -1.616246 +v -2.955941 0.062500 -1.901798 +v -2.919184 0.062500 -1.528604 +v -4.909554 0.062500 -1.332570 +v -4.946310 0.062500 -1.705764 +v -2.955941 0.000000 -1.901798 +v -4.946310 0.000000 -1.705764 +v -2.919184 0.000000 -1.528604 +v -4.909554 0.000000 -1.332570 +v -4.560863 0.125000 -1.618122 +v -4.871859 0.125000 -1.587492 +v -4.548611 0.125000 -1.493724 +v -4.859607 0.125000 -1.463094 +v -4.560863 0.062500 -1.618122 +v -4.871859 0.062500 -1.587492 +v -4.548611 0.062500 -1.493724 +v -4.859607 0.062500 -1.463094 +v -3.005888 0.125000 -1.771274 +v -3.316883 0.125000 -1.740644 +v -2.993635 0.125000 -1.646876 +v -3.304631 0.125000 -1.616246 +v -0.904809 0.062500 2.462447 +v -1.146375 0.062500 2.660695 +v -0.825510 0.062500 2.559073 +v -1.067076 0.062500 2.757321 +v -0.935795 0.062500 2.326171 +v -0.697898 0.062500 2.616050 +v -2.243919 0.062500 3.884836 +v -2.481816 0.062500 3.594958 +v -0.935795 0.000000 2.326171 +v -2.481816 0.000000 3.594958 +v -0.697898 0.000000 2.616050 +v -2.243919 0.000000 3.884836 +v -2.112638 0.125000 3.453686 +v -2.354204 0.125000 3.651934 +v -2.033339 0.125000 3.550313 +v -2.274905 0.125000 3.748561 +v -2.112638 0.062500 3.453686 +v -2.354204 0.062500 3.651934 +v -2.033339 0.062500 3.550313 +v -2.274905 0.062500 3.748561 +v -0.904809 0.125000 2.462447 +v -1.146375 0.125000 2.660695 +v -0.825510 0.125000 2.559073 +v -1.067076 0.125000 2.757321 +v -5.000000 0.000000 -2.812500 +v -3.000000 0.000000 -2.812500 +v -5.000000 0.000000 -3.187500 +v -3.000000 0.000000 -3.187500 +v -5.000000 0.062500 -3.187500 +v -5.000000 0.062500 -2.812500 +v -3.000000 0.062500 -2.812500 +v -3.000000 0.062500 -3.187500 +v -3.375000 0.062500 -2.937500 +v -3.062500 0.062500 -2.937500 +v -3.375000 0.062500 -3.062500 +v -3.062500 0.062500 -3.062500 +v -3.375000 0.125000 -2.937500 +v -3.062500 0.125000 -2.937500 +v -3.375000 0.125000 -3.062500 +v -3.062500 0.125000 -3.062500 +v -4.937500 0.062500 -2.937500 +v -4.625000 0.062500 -2.937500 +v -4.937500 0.062500 -3.062500 +v -4.625000 0.062500 -3.062500 +v -4.937500 0.125000 -2.937500 +v -4.625000 0.125000 -2.937500 +v -4.937500 0.125000 -3.062500 +v -4.625000 0.125000 -3.062500 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.406250 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.218750 1.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.218750 1.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 -0.000000 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.031250 +vt 0.406250 0.156250 +vt 0.187500 1.000000 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7765 0.0000 -0.6301 +vn 0.8819 0.0000 -0.4714 +vn -0.7730 0.0000 0.6344 +vn 0.6344 0.0000 0.7730 +vn 0.9569 0.0000 -0.2903 +vn -0.9569 0.0000 0.2903 +vn -0.8819 0.0000 0.4714 +vn -0.9952 0.0000 0.0980 +vn 0.9952 0.0000 -0.0980 +vn -0.7765 0.0000 0.6301 +vn 0.7730 0.0000 -0.6344 +vn -0.6344 0.0000 -0.7730 +vn 0.4714 0.0000 0.8819 +vn -0.4714 0.0000 -0.8819 +vn 0.2903 0.0000 0.9569 +vn -0.2903 0.0000 -0.9569 +vn 0.0980 0.0000 0.9952 +vn -0.0980 0.0000 -0.9952 +s off +f 34/85/13 36/86/13 35/87/13 +f 39/88/14 38/89/14 37/90/14 +f 43/91/14 42/92/14 41/93/14 +f 47/94/14 46/95/14 45/96/14 +f 51/97/14 50/98/14 49/99/14 +f 55/100/14 54/101/14 53/102/14 +f 59/103/13 57/104/13 58/105/13 +f 63/106/13 61/107/13 62/108/13 +f 67/109/13 65/110/13 66/111/13 +f 71/112/13 69/113/13 70/114/13 +f 49/115/15 65/116/15 51/117/15 +f 42/118/16 58/119/16 41/120/16 +f 50/121/16 66/122/16 49/123/16 +f 44/124/17 59/125/17 42/92/17 +f 52/126/17 67/127/17 50/98/17 +f 43/91/18 60/128/18 44/129/18 +f 37/130/15 36/131/15 39/132/15 +f 51/97/18 68/133/18 52/134/18 +f 45/135/15 61/136/15 47/137/15 +f 38/138/16 35/139/16 37/140/16 +f 53/141/15 69/142/15 55/143/15 +f 46/144/16 62/145/16 45/146/16 +f 40/147/17 34/148/17 38/89/17 +f 54/149/16 70/150/16 53/151/16 +f 48/152/17 63/153/17 46/95/17 +f 39/88/18 33/154/18 40/155/18 +f 56/156/17 71/157/17 54/101/17 +f 47/94/18 64/158/18 48/159/18 +f 41/160/15 57/161/15 43/162/15 +f 55/100/18 72/163/18 56/164/18 +f 181/165/17 74/166/17 173/167/17 +f 177/168/15 75/169/15 169/170/15 +f 81/171/15 189/172/15 185/173/15 +f 78/174/16 81/175/16 74/176/16 +f 80/177/13 192/178/13 184/179/13 +f 74/166/14 185/180/14 173/167/14 +f 75/181/14 516/182/14 85/183/14 +f 85/183/17 197/184/17 193/185/17 +f 77/186/13 200/187/13 180/188/13 +f 75/181/14 193/185/14 169/189/14 +f 79/190/15 492/191/15 75/169/15 +f 73/192/16 88/193/16 77/194/16 +f 93/195/15 91/196/15 89/197/15 +f 95/198/18 92/199/18 91/200/18 +f 94/201/16 89/202/16 90/203/16 +f 96/204/17 90/205/17 92/206/17 +f 93/195/13 96/204/13 95/198/13 +f 101/207/15 99/208/15 97/209/15 +f 103/210/18 100/211/18 99/212/18 +f 102/213/16 97/214/16 98/215/16 +f 104/216/17 98/217/17 100/218/17 +f 101/207/13 104/216/13 103/210/13 +f 109/219/15 107/220/15 105/221/15 +f 111/222/18 108/223/18 107/224/18 +f 110/225/16 105/226/16 106/227/16 +f 112/228/17 106/229/17 108/230/17 +f 109/219/13 112/228/13 111/222/13 +f 117/231/15 115/232/15 113/233/15 +f 119/234/18 116/235/18 115/236/18 +f 118/237/16 113/238/16 114/239/16 +f 120/240/17 114/241/17 116/242/17 +f 117/231/13 120/240/13 119/234/13 +f 125/243/15 123/244/15 121/245/15 +f 127/246/18 124/247/18 123/248/18 +f 126/249/16 121/250/16 122/251/16 +f 128/252/17 122/253/17 124/254/17 +f 125/243/13 128/252/13 127/246/13 +f 133/255/15 131/256/15 129/257/15 +f 135/258/18 132/259/18 131/260/18 +f 134/261/16 129/262/16 130/263/16 +f 136/264/17 130/265/17 132/266/17 +f 133/255/13 136/264/13 135/258/13 +f 141/267/15 139/268/15 137/269/15 +f 143/270/18 140/271/18 139/272/18 +f 142/273/16 137/274/16 138/275/16 +f 144/276/17 138/277/17 140/278/17 +f 141/267/13 144/276/13 143/270/13 +f 149/279/15 147/280/15 145/281/15 +f 151/282/18 148/283/18 147/284/18 +f 150/285/16 145/286/16 146/287/16 +f 152/288/17 146/289/17 148/290/17 +f 149/279/13 152/288/13 151/282/13 +f 157/291/15 155/292/15 153/293/15 +f 159/294/18 156/295/18 155/296/18 +f 158/297/16 153/298/16 154/299/16 +f 160/300/17 154/301/17 156/302/17 +f 157/291/13 160/300/13 159/294/13 +f 165/303/15 163/304/15 161/305/15 +f 167/306/18 164/307/18 163/308/18 +f 166/309/16 161/310/16 162/311/16 +f 168/312/17 162/313/17 164/314/17 +f 165/303/13 168/312/13 167/306/13 +f 172/315/14 86/316/14 73/317/14 +f 171/318/14 196/319/14 172/320/14 +f 170/321/14 195/322/14 171/323/14 +f 169/324/14 194/325/14 170/326/14 +f 177/168/13 87/327/13 79/190/13 +f 178/328/13 197/329/13 177/330/13 +f 179/331/13 198/332/13 178/333/13 +f 180/334/13 199/335/13 179/336/13 +f 196/337/17 88/338/17 86/316/17 +f 195/339/17 200/340/17 196/319/17 +f 194/341/17 199/342/17 195/322/17 +f 193/343/17 198/344/17 194/325/17 +f 176/345/14 82/346/14 76/347/14 +f 175/348/14 188/349/14 176/350/14 +f 174/351/14 187/352/14 175/353/14 +f 173/354/14 186/355/14 174/356/14 +f 181/165/13 83/357/13 78/358/13 +f 182/359/13 189/360/13 181/361/13 +f 183/362/13 190/363/13 182/364/13 +f 184/365/13 191/366/13 183/367/13 +f 188/368/15 84/369/15 82/370/15 +f 187/371/15 192/372/15 188/373/15 +f 186/374/15 191/375/15 187/376/15 +f 185/377/15 190/378/15 186/379/15 +f 77/186/15 172/380/15 73/381/15 +f 180/334/15 171/382/15 172/383/15 +f 179/331/15 170/384/15 171/385/15 +f 178/328/15 169/386/15 170/387/15 +f 80/177/17 176/345/17 76/347/17 +f 184/365/17 175/348/17 176/350/17 +f 183/362/17 174/351/17 175/353/17 +f 182/359/17 173/354/17 174/356/17 +f 202/388/13 204/389/13 203/390/13 +f 207/391/14 206/392/14 205/393/14 +f 211/394/14 210/395/14 209/396/14 +f 215/397/14 214/398/14 213/399/14 +f 219/400/14 218/401/14 217/402/14 +f 223/403/14 222/404/14 221/405/14 +f 227/406/13 225/407/13 226/408/13 +f 231/409/13 229/410/13 230/411/13 +f 235/412/13 233/413/13 234/414/13 +f 239/415/13 237/416/13 238/417/13 +f 217/418/15 233/419/15 219/420/15 +f 210/421/16 226/422/16 209/423/16 +f 218/424/16 234/425/16 217/426/16 +f 212/427/17 227/428/17 210/395/17 +f 220/429/17 235/430/17 218/401/17 +f 211/394/18 228/431/18 212/432/18 +f 205/433/15 204/434/15 207/435/15 +f 219/400/18 236/436/18 220/437/18 +f 213/438/15 229/439/15 215/440/15 +f 206/441/16 203/442/16 205/443/16 +f 221/444/15 237/445/15 223/446/15 +f 214/447/16 230/448/16 213/449/16 +f 208/450/17 202/451/17 206/392/17 +f 222/452/16 238/453/16 221/454/16 +f 216/455/17 231/456/17 214/398/17 +f 207/391/18 201/457/18 208/458/18 +f 224/459/17 239/460/17 222/404/17 +f 215/397/18 232/461/18 216/462/18 +f 209/463/15 225/464/15 211/465/15 +f 223/403/18 240/466/18 224/467/18 +f 349/468/17 242/469/17 341/470/17 +f 345/471/15 243/472/15 337/473/15 +f 249/474/15 357/475/15 353/476/15 +f 520/477/13 79/190/13 87/327/13 +f 248/478/13 360/479/13 352/480/13 +f 242/469/14 353/481/14 341/470/14 +f 244/482/18 252/483/18 248/484/18 +f 253/485/17 365/486/17 361/487/17 +f 245/488/13 368/489/13 348/490/13 +f 243/491/14 361/487/14 337/492/14 +f 247/493/18 253/494/18 243/495/18 +f 85/183/17 520/477/17 87/327/17 +f 261/496/15 259/497/15 257/498/15 +f 263/499/18 260/500/18 259/501/18 +f 262/502/16 257/503/16 258/504/16 +f 264/505/17 258/506/17 260/507/17 +f 261/496/13 264/505/13 263/499/13 +f 269/508/15 267/509/15 265/510/15 +f 271/511/18 268/512/18 267/513/18 +f 270/514/16 265/515/16 266/516/16 +f 272/517/17 266/518/17 268/519/17 +f 269/508/13 272/517/13 271/511/13 +f 277/520/15 275/521/15 273/522/15 +f 279/523/18 276/524/18 275/525/18 +f 278/526/16 273/527/16 274/528/16 +f 280/529/17 274/530/17 276/531/17 +f 277/520/13 280/529/13 279/523/13 +f 285/532/15 283/533/15 281/534/15 +f 287/535/18 284/536/18 283/537/18 +f 286/538/16 281/539/16 282/540/16 +f 288/541/17 282/542/17 284/543/17 +f 285/532/13 288/541/13 287/535/13 +f 293/544/15 291/545/15 289/546/15 +f 295/547/18 292/548/18 291/549/18 +f 294/550/16 289/551/16 290/552/16 +f 296/553/17 290/554/17 292/555/17 +f 293/544/13 296/553/13 295/547/13 +f 301/556/15 299/557/15 297/558/15 +f 303/559/18 300/560/18 299/561/18 +f 302/562/16 297/563/16 298/564/16 +f 304/565/17 298/566/17 300/567/17 +f 301/556/13 304/565/13 303/559/13 +f 309/568/15 307/569/15 305/570/15 +f 311/571/18 308/572/18 307/573/18 +f 310/574/16 305/575/16 306/576/16 +f 312/577/17 306/578/17 308/579/17 +f 309/568/13 312/577/13 311/571/13 +f 317/580/15 315/581/15 313/582/15 +f 319/583/18 316/584/18 315/585/18 +f 318/586/16 313/587/16 314/588/16 +f 320/589/17 314/590/17 316/591/17 +f 317/580/13 320/589/13 319/583/13 +f 325/592/15 323/593/15 321/594/15 +f 327/595/18 324/596/18 323/597/18 +f 326/598/16 321/599/16 322/600/16 +f 328/601/17 322/602/17 324/603/17 +f 325/592/13 328/601/13 327/595/13 +f 333/604/15 331/605/15 329/606/15 +f 335/607/18 332/608/18 331/609/18 +f 334/610/16 329/611/16 330/612/16 +f 336/613/17 330/614/17 332/615/17 +f 333/604/13 336/613/13 335/607/13 +f 340/616/14 254/617/14 241/618/14 +f 339/619/14 364/620/14 340/621/14 +f 338/622/14 363/623/14 339/624/14 +f 337/625/14 362/626/14 338/627/14 +f 345/471/13 255/628/13 247/629/13 +f 346/630/13 365/631/13 345/632/13 +f 347/633/13 366/634/13 346/635/13 +f 348/636/13 367/637/13 347/638/13 +f 364/639/17 256/640/17 254/617/17 +f 363/641/17 368/642/17 364/620/17 +f 362/643/17 367/644/17 363/623/17 +f 361/645/17 366/646/17 362/626/17 +f 344/647/14 250/648/14 244/649/14 +f 343/650/14 356/651/14 344/652/14 +f 342/653/14 355/654/14 343/655/14 +f 341/656/14 354/657/14 342/658/14 +f 349/468/13 251/659/13 246/660/13 +f 350/661/13 357/662/13 349/663/13 +f 351/664/13 358/665/13 350/666/13 +f 352/667/13 359/668/13 351/669/13 +f 356/670/15 252/671/15 250/672/15 +f 355/673/15 360/674/15 356/675/15 +f 354/676/15 359/677/15 355/678/15 +f 353/679/15 358/680/15 354/681/15 +f 245/488/15 340/682/15 241/683/15 +f 348/636/15 339/684/15 340/685/15 +f 347/633/15 338/686/15 339/687/15 +f 346/630/15 337/688/15 338/689/15 +f 248/478/17 344/647/17 244/649/17 +f 352/667/17 343/650/17 344/652/17 +f 351/664/17 342/653/17 343/655/17 +f 350/661/17 341/656/17 342/658/17 +f 370/690/13 372/691/13 371/692/13 +f 375/693/14 374/694/14 373/695/14 +f 379/696/14 378/697/14 377/698/14 +f 383/699/14 382/700/14 381/701/14 +f 387/702/14 386/703/14 385/704/14 +f 391/705/14 390/706/14 389/707/14 +f 395/708/13 393/709/13 394/710/13 +f 399/711/13 397/712/13 398/713/13 +f 403/714/13 401/715/13 402/716/13 +f 407/717/13 405/718/13 406/719/13 +f 385/720/15 401/721/15 387/722/15 +f 378/723/16 394/724/16 377/725/16 +f 386/726/16 402/727/16 385/728/16 +f 380/729/17 395/730/17 378/697/17 +f 388/731/17 403/732/17 386/703/17 +f 379/696/18 396/733/18 380/734/18 +f 373/735/15 372/736/15 375/737/15 +f 387/702/18 404/738/18 388/739/18 +f 381/740/15 397/741/15 383/742/15 +f 374/743/16 371/744/16 373/745/16 +f 389/746/15 405/747/15 391/748/15 +f 382/749/16 398/750/16 381/751/16 +f 376/752/17 370/753/17 374/694/17 +f 390/754/16 406/755/16 389/756/16 +f 384/757/17 399/758/17 382/700/17 +f 375/693/18 369/759/18 376/760/18 +f 392/761/17 407/762/17 390/706/17 +f 383/699/18 400/763/18 384/764/18 +f 377/765/15 393/766/15 379/767/15 +f 391/705/18 408/768/18 392/769/18 +f 413/770/15 411/771/15 409/772/15 +f 415/773/18 412/774/18 411/775/18 +f 414/776/16 409/777/16 410/778/16 +f 416/779/17 410/780/17 412/781/17 +f 413/770/13 416/779/13 415/773/13 +f 421/782/15 419/783/15 417/784/15 +f 423/785/18 420/786/18 419/787/18 +f 422/788/16 417/789/16 418/790/16 +f 424/791/17 418/792/17 420/793/17 +f 421/782/13 424/791/13 423/785/13 +f 429/794/15 427/795/15 425/796/15 +f 431/797/18 428/798/18 427/799/18 +f 430/800/16 425/801/16 426/802/16 +f 432/803/17 426/804/17 428/805/17 +f 429/794/13 432/803/13 431/797/13 +f 437/806/15 435/807/15 433/808/15 +f 439/809/18 436/810/18 435/811/18 +f 438/812/16 433/813/16 434/814/16 +f 440/815/17 434/816/17 436/817/17 +f 437/806/13 440/815/13 439/809/13 +f 445/818/15 443/819/15 441/820/15 +f 447/821/18 444/822/18 443/823/18 +f 446/824/16 441/825/16 442/826/16 +f 448/827/17 442/828/17 444/829/17 +f 445/818/13 448/827/13 447/821/13 +f 453/830/15 451/831/15 449/832/15 +f 455/833/18 452/834/18 451/835/18 +f 454/836/16 449/837/16 450/838/16 +f 456/839/17 450/840/17 452/841/17 +f 453/830/13 456/839/13 455/833/13 +f 461/842/15 459/843/15 457/844/15 +f 463/845/18 460/846/18 459/847/18 +f 462/848/16 457/849/16 458/850/16 +f 464/851/17 458/852/17 460/853/17 +f 461/842/13 464/851/13 463/845/13 +f 469/854/15 467/855/15 465/856/15 +f 471/857/18 468/858/18 467/859/18 +f 470/860/16 465/861/16 466/862/16 +f 472/863/17 466/864/17 468/865/17 +f 469/854/13 472/863/13 471/857/13 +f 477/866/15 475/867/15 473/868/15 +f 479/869/18 476/870/18 475/871/18 +f 478/872/16 473/873/16 474/874/16 +f 480/875/17 474/876/17 476/877/17 +f 477/866/13 480/875/13 479/869/13 +f 485/878/15 483/879/15 481/880/15 +f 487/881/18 484/882/18 483/883/18 +f 486/884/16 481/885/16 482/886/16 +f 488/887/17 482/888/17 484/889/17 +f 485/878/13 488/887/13 487/881/13 +f 491/890/14 516/182/14 492/891/14 +f 490/892/14 515/893/14 491/894/14 +f 489/895/14 514/896/14 490/897/14 +f 498/898/13 517/899/13 497/900/13 +f 499/901/13 518/902/13 498/903/13 +f 500/904/13 519/905/13 499/906/13 +f 515/907/17 520/477/17 516/182/17 +f 514/908/17 519/909/17 515/893/17 +f 513/910/17 518/911/17 514/896/17 +f 495/912/14 508/913/14 496/914/14 +f 494/915/14 507/916/14 495/917/14 +f 493/918/14 506/919/14 494/920/14 +f 502/921/13 509/922/13 501/923/13 +f 503/924/13 510/925/13 502/926/13 +f 504/927/13 511/928/13 503/929/13 +f 507/930/15 512/931/15 508/932/15 +f 506/933/15 511/934/15 507/935/15 +f 505/936/15 510/937/15 506/938/15 +f 500/904/15 491/939/15 492/191/15 +f 499/901/15 490/940/15 491/941/15 +f 498/898/15 489/942/15 490/943/15 +f 504/927/17 495/912/17 496/914/17 +f 503/924/17 494/915/17 495/917/17 +f 502/921/17 493/918/17 494/920/17 +f 493/918/17 80/177/17 76/347/17 +f 80/177/13 509/922/13 84/369/13 +f 509/922/15 82/370/15 84/369/15 +f 505/944/14 76/347/14 82/346/14 +f 517/899/17 254/617/17 256/640/17 +f 245/488/13 517/899/13 256/640/13 +f 489/942/15 245/488/15 241/683/15 +f 513/910/14 241/618/14 254/617/14 +f 246/660/17 496/914/17 242/469/17 +f 512/931/13 246/660/13 251/659/13 +f 249/474/15 512/931/15 251/659/15 +f 242/469/14 508/913/14 249/945/14 +f 571/946/19 568/947/19 572/948/19 +f 605/949/19 539/950/19 540/951/19 +f 605/952/19 574/953/19 606/954/19 +f 539/955/20 548/956/20 540/957/20 +f 536/958/14 548/956/14 544/959/14 +f 530/960/14 531/961/14 532/962/14 +f 537/963/14 568/964/14 533/965/14 +f 532/966/21 528/967/21 530/968/21 +f 534/969/19 568/964/19 567/970/19 +f 615/971/22 524/972/22 523/973/22 +f 571/946/13 566/974/13 567/975/13 +f 538/976/13 567/970/13 566/977/13 +f 616/978/21 522/979/21 524/980/21 +f 542/981/23 549/982/23 541/983/23 +f 545/984/24 554/985/24 546/986/24 +f 534/987/13 546/988/13 542/989/13 +f 536/990/25 543/991/25 535/992/25 +f 535/992/13 547/993/13 539/955/13 +f 533/994/14 545/995/14 537/996/14 +f 537/997/25 546/988/25 538/998/25 +f 534/987/20 541/999/20 533/994/20 +f 549/1000/14 561/1001/14 553/1002/14 +f 551/1003/13 563/1004/13 555/1005/13 +f 544/1006/14 556/1007/14 552/1008/14 +f 547/1009/23 556/1007/23 548/1010/23 +f 542/981/13 554/985/13 550/1011/13 +f 544/1012/24 551/1013/24 543/1014/24 +f 543/1014/13 555/1015/13 547/1009/13 +f 541/983/14 553/1016/14 545/1017/14 +f 553/1018/26 562/1019/26 554/1020/26 +f 550/1021/27 557/1022/27 549/1000/27 +f 552/1023/14 564/1024/14 560/1025/14 +f 555/1005/27 564/1024/27 556/1026/27 +f 550/1021/13 562/1019/13 558/1027/13 +f 552/1028/26 559/1029/26 551/1003/26 +f 606/1030/13 535/1031/13 539/950/13 +f 575/1032/25 584/1033/25 576/1034/25 +f 572/1035/14 584/1036/14 580/1037/14 +f 576/1038/28 566/974/28 575/1039/28 +f 537/1040/28 566/977/28 565/1041/28 +f 529/1042/29 526/1043/29 531/961/29 +f 565/1044/14 572/948/14 568/947/14 +f 526/1045/13 528/1046/13 527/1047/13 +f 614/1048/30 521/1049/30 522/1050/30 +f 530/960/30 525/1051/30 529/1052/30 +f 531/1053/22 527/1054/22 532/1055/22 +f 578/1056/24 585/1057/24 577/1058/24 +f 581/1059/23 590/1060/23 582/1061/23 +f 570/1062/13 582/1063/13 578/1064/13 +f 572/1035/20 579/1065/20 571/1066/20 +f 571/1066/13 583/1067/13 575/1032/13 +f 569/1068/14 581/1069/14 573/1070/14 +f 573/1070/20 582/1063/20 574/1071/20 +f 570/1062/25 577/1072/25 569/1073/25 +f 589/1074/14 593/1075/14 597/1076/14 +f 587/1077/13 599/1078/13 591/1079/13 +f 580/1080/14 592/1081/14 588/1082/14 +f 583/1083/24 592/1084/24 584/1085/24 +f 578/1056/13 590/1060/13 586/1086/13 +f 580/1080/23 587/1087/23 579/1088/23 +f 579/1088/13 591/1089/13 583/1083/13 +f 577/1090/14 589/1091/14 581/1059/14 +f 589/1074/27 598/1092/27 590/1093/27 +f 586/1094/26 593/1095/26 585/1096/26 +f 588/1097/14 600/1098/14 596/1099/14 +f 591/1079/26 600/1100/26 592/1101/26 +f 590/1093/13 594/1102/13 586/1094/13 +f 588/1097/27 595/1103/27 587/1077/27 +f 570/1104/28 607/1105/28 608/1106/28 +f 602/1107/13 603/1108/13 601/1109/13 +f 574/953/13 608/1106/13 606/954/13 +f 601/1109/29 611/1110/29 609/1111/29 +f 603/1108/22 612/1112/22 611/1113/22 +f 602/1107/30 609/1114/30 610/1115/30 +f 536/1116/14 605/949/14 540/951/14 +f 604/1117/21 610/1118/21 612/1119/21 +f 607/1120/14 573/1121/14 605/952/14 +f 614/1048/13 615/971/13 613/1122/13 +f 613/1122/29 523/1123/29 521/1124/29 +f 618/1125/13 620/1126/13 619/1127/13 +f 623/1128/14 622/1129/14 621/1130/14 +f 627/1131/14 626/1132/14 625/1133/14 +f 631/1134/14 630/1135/14 629/1136/14 +f 635/1137/14 634/1138/14 633/1139/14 +f 639/1140/13 637/1141/13 638/1142/13 +f 643/1143/13 641/1144/13 642/1145/13 +f 647/1146/13 645/1147/13 646/1148/13 +f 626/1149/16 638/1150/16 625/1151/16 +f 628/1152/17 639/1153/17 626/1132/17 +f 627/1131/18 640/1154/18 628/1155/18 +f 621/1156/15 620/1157/15 623/1158/15 +f 629/1159/15 641/1160/15 631/1161/15 +f 622/1162/16 619/1163/16 621/1164/16 +f 633/1165/15 645/1166/15 635/1167/15 +f 630/1168/16 642/1169/16 629/1170/16 +f 624/1171/17 618/1172/17 622/1129/17 +f 634/1173/16 646/1174/16 633/1175/16 +f 632/1176/17 643/1177/17 630/1135/17 +f 623/1128/18 617/1178/18 624/1179/18 +f 636/1180/17 647/1181/17 634/1138/17 +f 631/1134/18 644/1182/18 632/1183/18 +f 625/1184/15 637/1185/15 627/1186/15 +f 635/1137/18 648/1187/18 636/1188/18 +f 729/1189/15 649/1190/15 721/1191/15 +f 652/1192/13 744/1193/13 736/1194/13 +f 650/1195/18 654/1196/18 652/1197/18 +f 655/1198/17 749/1199/17 745/1200/17 +f 649/1201/14 745/1200/14 721/1202/14 +f 651/1203/18 655/1204/18 649/1205/18 +f 661/1206/15 659/1207/15 657/1208/15 +f 663/1209/18 660/1210/18 659/1211/18 +f 662/1212/16 657/1213/16 658/1214/16 +f 664/1215/17 658/1216/17 660/1217/17 +f 661/1206/13 664/1215/13 663/1209/13 +f 669/1218/15 667/1219/15 665/1220/15 +f 671/1221/18 668/1222/18 667/1223/18 +f 670/1224/16 665/1225/16 666/1226/16 +f 672/1227/17 666/1228/17 668/1229/17 +f 669/1218/13 672/1227/13 671/1221/13 +f 677/1230/15 675/1231/15 673/1232/15 +f 679/1233/18 676/1234/18 675/1235/18 +f 678/1236/16 673/1237/16 674/1238/16 +f 680/1239/17 674/1240/17 676/1241/17 +f 677/1230/13 680/1239/13 679/1233/13 +f 685/1242/15 683/1243/15 681/1244/15 +f 687/1245/18 684/1246/18 683/1247/18 +f 686/1248/16 681/1249/16 682/1250/16 +f 688/1251/17 682/1252/17 684/1253/17 +f 685/1242/13 688/1251/13 687/1245/13 +f 693/1254/15 691/1255/15 689/1256/15 +f 695/1257/18 692/1258/18 691/1259/18 +f 694/1260/16 689/1261/16 690/1262/16 +f 696/1263/17 690/1264/17 692/1265/17 +f 693/1254/13 696/1263/13 695/1257/13 +f 701/1266/15 699/1267/15 697/1268/15 +f 703/1269/18 700/1270/18 699/1271/18 +f 702/1272/16 697/1273/16 698/1274/16 +f 704/1275/17 698/1276/17 700/1277/17 +f 701/1266/13 704/1275/13 703/1269/13 +f 709/1278/15 707/1279/15 705/1280/15 +f 711/1281/18 708/1282/18 707/1283/18 +f 710/1284/16 705/1285/16 706/1286/16 +f 712/1287/17 706/1288/17 708/1289/17 +f 709/1278/13 712/1287/13 711/1281/13 +f 717/1290/15 715/1291/15 713/1292/15 +f 719/1293/18 716/1294/18 715/1295/18 +f 718/1296/16 713/1297/16 714/1298/16 +f 720/1299/17 714/1300/17 716/1301/17 +f 717/1290/13 720/1299/13 719/1293/13 +f 723/1302/14 748/1303/14 724/1304/14 +f 722/1305/14 747/1306/14 723/1307/14 +f 721/1308/14 746/1309/14 722/1310/14 +f 729/1189/13 656/1311/13 651/1312/13 +f 730/1313/13 749/1314/13 729/1315/13 +f 731/1316/13 750/1317/13 730/1318/13 +f 732/1319/13 751/1320/13 731/1321/13 +f 747/1322/17 752/1323/17 748/1303/17 +f 746/1324/17 751/1325/17 747/1306/17 +f 745/1326/17 750/1327/17 746/1309/17 +f 728/1328/14 653/1329/14 650/1330/14 +f 727/1331/14 740/1332/14 728/1333/14 +f 726/1334/14 739/1335/14 727/1336/14 +f 725/1337/14 738/1338/14 726/1339/14 +f 734/1340/13 741/1341/13 733/1342/13 +f 735/1343/13 742/1344/13 734/1345/13 +f 736/1346/13 743/1347/13 735/1348/13 +f 740/1349/15 654/1350/15 653/1351/15 +f 739/1352/15 744/1353/15 740/1354/15 +f 738/1355/15 743/1356/15 739/1357/15 +f 737/1358/15 742/1359/15 738/1360/15 +f 732/1319/15 723/1361/15 724/1362/15 +f 731/1316/15 722/1363/15 723/1364/15 +f 730/1313/15 721/1365/15 722/1366/15 +f 652/1192/17 728/1328/17 650/1330/17 +f 736/1346/17 727/1331/17 728/1333/17 +f 735/1343/17 726/1334/17 727/1336/17 +f 734/1340/17 725/1337/17 726/1339/17 +f 741/1367/15 600/1368/15 599/1369/15 +f 595/1370/13 741/1367/13 599/1369/13 +f 725/1371/17 595/1370/17 596/1372/17 +f 737/1373/14 596/1372/14 600/1374/14 +f 594/1375/15 724/1376/15 593/1377/15 +f 752/1378/13 594/1375/13 598/1379/13 +f 597/1380/17 752/1378/17 598/1379/17 +f 597/1380/14 724/1381/14 748/1382/14 +f 608/1383/28 536/1384/28 535/1031/28 +f 762/1385/14 763/1386/14 764/1387/14 +f 764/1388/25 760/1389/25 762/1390/25 +f 775/1391/31 756/1392/31 755/1393/31 +f 776/1394/25 754/1395/25 756/1396/25 +f 761/1397/20 758/1398/20 763/1386/20 +f 758/1399/13 760/1400/13 759/1401/13 +f 774/1402/32 753/1403/32 754/1404/32 +f 762/1385/32 757/1405/32 761/1406/32 +f 763/1407/31 759/1408/31 764/1409/31 +f 766/1410/13 767/1411/13 765/1412/13 +f 765/1412/20 771/1413/20 769/1414/20 +f 767/1411/31 772/1415/31 771/1416/31 +f 766/1410/32 769/1417/32 770/1418/32 +f 768/1419/25 770/1420/25 772/1421/25 +f 774/1402/13 775/1391/13 773/1422/13 +f 773/1422/20 755/1423/20 753/1424/20 +f 788/1425/14 785/1426/14 787/1427/14 +f 788/1428/24 784/1429/24 786/1430/24 +f 799/1431/33 780/1432/33 779/1433/33 +f 800/1434/24 778/1435/24 780/1436/24 +f 785/1437/23 782/1438/23 787/1427/23 +f 783/1439/13 781/1440/13 784/1441/13 +f 798/1442/34 777/1443/34 778/1444/34 +f 786/1445/34 781/1440/34 785/1426/34 +f 787/1446/33 783/1447/33 788/1448/33 +f 790/1449/13 791/1450/13 789/1451/13 +f 789/1451/23 795/1452/23 793/1453/23 +f 791/1450/33 796/1454/33 795/1455/33 +f 790/1449/34 793/1456/34 794/1457/34 +f 792/1458/24 794/1459/24 796/1460/24 +f 798/1442/13 799/1431/13 797/1461/13 +f 797/1461/23 779/1462/23 777/1463/23 +f 810/1464/14 811/1465/14 812/1466/14 +f 812/1467/26 808/1468/26 810/1469/26 +f 823/1470/35 804/1471/35 803/1472/35 +f 824/1473/26 802/1474/26 804/1475/26 +f 809/1476/27 806/1477/27 811/1465/27 +f 806/1478/13 808/1479/13 807/1480/13 +f 822/1481/36 801/1482/36 802/1483/36 +f 810/1464/36 805/1484/36 809/1485/36 +f 811/1486/35 807/1487/35 812/1488/35 +f 816/1489/13 813/1490/13 814/1491/13 +f 813/1490/27 819/1492/27 817/1493/27 +f 815/1494/35 820/1495/35 819/1496/35 +f 814/1491/36 817/1497/36 818/1498/36 +f 816/1489/26 818/1499/26 820/1500/26 +f 822/1481/13 823/1470/13 821/1501/13 +f 821/1501/27 803/1502/27 801/1503/27 +f 836/1504/14 833/1505/14 835/1506/14 +f 836/1507/21 832/1508/21 834/1509/21 +f 847/1510/22 828/1511/22 827/1512/22 +f 848/1513/21 826/1514/21 828/1515/21 +f 833/1516/29 830/1517/29 835/1506/29 +f 831/1518/13 829/1519/13 832/1520/13 +f 846/1521/30 825/1522/30 826/1523/30 +f 834/1524/30 829/1519/30 833/1505/30 +f 835/1525/22 831/1526/22 836/1527/22 +f 838/1528/13 839/1529/13 837/1530/13 +f 837/1530/29 843/1531/29 841/1532/29 +f 839/1529/22 844/1533/22 843/1534/22 +f 838/1528/30 841/1535/30 842/1536/30 +f 840/1537/21 842/1538/21 844/1539/21 +f 846/1521/13 847/1510/13 845/1540/13 +f 845/1540/29 827/1541/29 825/1542/29 +f 851/1543/14 850/1544/14 849/1545/14 +f 855/1546/13 853/1547/13 854/1548/13 +f 849/1549/15 853/1550/15 851/1551/15 +f 850/1552/16 854/1553/16 849/1554/16 +f 852/1555/17 855/1556/17 850/1544/17 +f 851/1543/18 856/1557/18 852/1558/18 +f 861/1559/15 859/1560/15 857/1561/15 +f 863/1562/18 860/1563/18 859/1564/18 +f 862/1565/16 857/1566/16 858/1567/16 +f 864/1568/17 858/1569/17 860/1570/17 +f 861/1559/13 864/1568/13 863/1562/13 +f 869/1571/15 867/1572/15 865/1573/15 +f 871/1574/18 868/1575/18 867/1576/18 +f 870/1577/16 865/1578/16 866/1579/16 +f 872/1580/17 866/1581/17 868/1582/17 +f 869/1571/13 872/1580/13 871/1574/13 +f 34/85/13 33/154/13 36/86/13 +f 39/88/14 40/155/14 38/89/14 +f 43/91/14 44/129/14 42/92/14 +f 47/94/14 48/159/14 46/95/14 +f 51/97/14 52/134/14 50/98/14 +f 55/100/14 56/164/14 54/101/14 +f 59/103/13 60/128/13 57/104/13 +f 63/106/13 64/158/13 61/107/13 +f 67/109/13 68/133/13 65/110/13 +f 71/112/13 72/163/13 69/113/13 +f 49/115/15 66/1583/15 65/116/15 +f 42/118/16 59/1584/16 58/119/16 +f 50/121/16 67/1585/16 66/122/16 +f 44/124/17 60/1586/17 59/125/17 +f 52/126/17 68/1587/17 67/127/17 +f 43/91/18 57/104/18 60/128/18 +f 37/130/15 35/1588/15 36/131/15 +f 51/97/18 65/110/18 68/133/18 +f 45/135/15 62/1589/15 61/136/15 +f 38/138/16 34/1590/16 35/139/16 +f 53/141/15 70/1591/15 69/142/15 +f 46/144/16 63/1592/16 62/145/16 +f 40/147/17 33/1593/17 34/148/17 +f 54/149/16 71/1594/16 70/150/16 +f 48/152/17 64/1595/17 63/153/17 +f 39/88/18 36/86/18 33/154/18 +f 56/156/17 72/1596/17 71/157/17 +f 47/94/18 61/107/18 64/158/18 +f 41/160/15 58/1597/15 57/161/15 +f 55/100/18 69/113/18 72/163/18 +f 181/165/17 78/358/17 74/166/17 +f 177/168/15 79/190/15 75/169/15 +f 81/171/15 83/357/15 189/172/15 +f 78/174/16 83/1598/16 81/175/16 +f 80/177/13 84/369/13 192/178/13 +f 74/166/14 81/1599/14 185/180/14 +f 75/181/14 492/891/14 516/182/14 +f 85/183/17 87/327/17 197/184/17 +f 77/186/13 88/338/13 200/187/13 +f 75/181/14 85/183/14 193/185/14 +f 79/190/15 500/904/15 492/191/15 +f 73/192/16 86/1600/16 88/193/16 +f 93/195/15 95/198/15 91/196/15 +f 95/198/18 96/204/18 92/199/18 +f 94/201/16 93/195/16 89/202/16 +f 96/204/17 94/201/17 90/205/17 +f 93/195/13 94/201/13 96/204/13 +f 101/207/15 103/210/15 99/208/15 +f 103/210/18 104/216/18 100/211/18 +f 102/213/16 101/207/16 97/214/16 +f 104/216/17 102/213/17 98/217/17 +f 101/207/13 102/213/13 104/216/13 +f 109/219/15 111/222/15 107/220/15 +f 111/222/18 112/228/18 108/223/18 +f 110/225/16 109/219/16 105/226/16 +f 112/228/17 110/225/17 106/229/17 +f 109/219/13 110/225/13 112/228/13 +f 117/231/15 119/234/15 115/232/15 +f 119/234/18 120/240/18 116/235/18 +f 118/237/16 117/231/16 113/238/16 +f 120/240/17 118/237/17 114/241/17 +f 117/231/13 118/237/13 120/240/13 +f 125/243/15 127/246/15 123/244/15 +f 127/246/18 128/252/18 124/247/18 +f 126/249/16 125/243/16 121/250/16 +f 128/252/17 126/249/17 122/253/17 +f 125/243/13 126/249/13 128/252/13 +f 133/255/15 135/258/15 131/256/15 +f 135/258/18 136/264/18 132/259/18 +f 134/261/16 133/255/16 129/262/16 +f 136/264/17 134/261/17 130/265/17 +f 133/255/13 134/261/13 136/264/13 +f 141/267/15 143/270/15 139/268/15 +f 143/270/18 144/276/18 140/271/18 +f 142/273/16 141/267/16 137/274/16 +f 144/276/17 142/273/17 138/277/17 +f 141/267/13 142/273/13 144/276/13 +f 149/279/15 151/282/15 147/280/15 +f 151/282/18 152/288/18 148/283/18 +f 150/285/16 149/279/16 145/286/16 +f 152/288/17 150/285/17 146/289/17 +f 149/279/13 150/285/13 152/288/13 +f 157/291/15 159/294/15 155/292/15 +f 159/294/18 160/300/18 156/295/18 +f 158/297/16 157/291/16 153/298/16 +f 160/300/17 158/297/17 154/301/17 +f 157/291/13 158/297/13 160/300/13 +f 165/303/15 167/306/15 163/304/15 +f 167/306/18 168/312/18 164/307/18 +f 166/309/16 165/303/16 161/310/16 +f 168/312/17 166/309/17 162/313/17 +f 165/303/13 166/309/13 168/312/13 +f 172/315/14 196/337/14 86/316/14 +f 171/318/14 195/339/14 196/319/14 +f 170/321/14 194/341/14 195/322/14 +f 169/324/14 193/343/14 194/325/14 +f 177/168/13 197/184/13 87/327/13 +f 178/328/13 198/344/13 197/329/13 +f 179/331/13 199/342/13 198/332/13 +f 180/334/13 200/340/13 199/335/13 +f 196/337/17 200/187/17 88/338/17 +f 195/339/17 199/335/17 200/340/17 +f 194/341/17 198/332/17 199/342/17 +f 193/343/17 197/329/17 198/344/17 +f 176/345/14 188/1601/14 82/346/14 +f 175/348/14 187/1602/14 188/349/14 +f 174/351/14 186/1603/14 187/352/14 +f 173/354/14 185/1604/14 186/355/14 +f 181/165/13 189/172/13 83/357/13 +f 182/359/13 190/378/13 189/360/13 +f 183/362/13 191/375/13 190/363/13 +f 184/365/13 192/372/13 191/366/13 +f 188/368/15 192/178/15 84/369/15 +f 187/371/15 191/366/15 192/372/15 +f 186/374/15 190/363/15 191/375/15 +f 185/377/15 189/360/15 190/378/15 +f 77/186/15 180/188/15 172/380/15 +f 180/334/15 179/336/15 171/382/15 +f 179/331/15 178/333/15 170/384/15 +f 178/328/15 177/330/15 169/386/15 +f 80/177/17 184/179/17 176/345/17 +f 184/365/17 183/367/17 175/348/17 +f 183/362/17 182/364/17 174/351/17 +f 182/359/17 181/361/17 173/354/17 +f 202/388/13 201/457/13 204/389/13 +f 207/391/14 208/458/14 206/392/14 +f 211/394/14 212/432/14 210/395/14 +f 215/397/14 216/462/14 214/398/14 +f 219/400/14 220/437/14 218/401/14 +f 223/403/14 224/467/14 222/404/14 +f 227/406/13 228/431/13 225/407/13 +f 231/409/13 232/461/13 229/410/13 +f 235/412/13 236/436/13 233/413/13 +f 239/415/13 240/466/13 237/416/13 +f 217/418/15 234/1605/15 233/419/15 +f 210/421/16 227/1606/16 226/422/16 +f 218/424/16 235/1607/16 234/425/16 +f 212/427/17 228/1608/17 227/428/17 +f 220/429/17 236/1609/17 235/430/17 +f 211/394/18 225/407/18 228/431/18 +f 205/433/15 203/1610/15 204/434/15 +f 219/400/18 233/413/18 236/436/18 +f 213/438/15 230/1611/15 229/439/15 +f 206/441/16 202/1612/16 203/442/16 +f 221/444/15 238/1613/15 237/445/15 +f 214/447/16 231/1614/16 230/448/16 +f 208/450/17 201/1615/17 202/451/17 +f 222/452/16 239/1616/16 238/453/16 +f 216/455/17 232/1617/17 231/456/17 +f 207/391/18 204/389/18 201/457/18 +f 224/459/17 240/1618/17 239/460/17 +f 215/397/18 229/410/18 232/461/18 +f 209/463/15 226/1619/15 225/464/15 +f 223/403/18 237/416/18 240/466/18 +f 349/468/17 246/660/17 242/469/17 +f 345/471/15 247/629/15 243/472/15 +f 249/474/15 251/659/15 357/475/15 +f 520/477/13 500/904/13 79/190/13 +f 248/478/13 252/671/13 360/479/13 +f 242/469/14 249/945/14 353/481/14 +f 244/482/18 250/1620/18 252/483/18 +f 253/485/17 255/628/17 365/486/17 +f 245/488/13 256/640/13 368/489/13 +f 243/491/14 253/485/14 361/487/14 +f 247/493/18 255/1621/18 253/494/18 +f 85/183/17 516/182/17 520/477/17 +f 261/496/15 263/499/15 259/497/15 +f 263/499/18 264/505/18 260/500/18 +f 262/502/16 261/496/16 257/503/16 +f 264/505/17 262/502/17 258/506/17 +f 261/496/13 262/502/13 264/505/13 +f 269/508/15 271/511/15 267/509/15 +f 271/511/18 272/517/18 268/512/18 +f 270/514/16 269/508/16 265/515/16 +f 272/517/17 270/514/17 266/518/17 +f 269/508/13 270/514/13 272/517/13 +f 277/520/15 279/523/15 275/521/15 +f 279/523/18 280/529/18 276/524/18 +f 278/526/16 277/520/16 273/527/16 +f 280/529/17 278/526/17 274/530/17 +f 277/520/13 278/526/13 280/529/13 +f 285/532/15 287/535/15 283/533/15 +f 287/535/18 288/541/18 284/536/18 +f 286/538/16 285/532/16 281/539/16 +f 288/541/17 286/538/17 282/542/17 +f 285/532/13 286/538/13 288/541/13 +f 293/544/15 295/547/15 291/545/15 +f 295/547/18 296/553/18 292/548/18 +f 294/550/16 293/544/16 289/551/16 +f 296/553/17 294/550/17 290/554/17 +f 293/544/13 294/550/13 296/553/13 +f 301/556/15 303/559/15 299/557/15 +f 303/559/18 304/565/18 300/560/18 +f 302/562/16 301/556/16 297/563/16 +f 304/565/17 302/562/17 298/566/17 +f 301/556/13 302/562/13 304/565/13 +f 309/568/15 311/571/15 307/569/15 +f 311/571/18 312/577/18 308/572/18 +f 310/574/16 309/568/16 305/575/16 +f 312/577/17 310/574/17 306/578/17 +f 309/568/13 310/574/13 312/577/13 +f 317/580/15 319/583/15 315/581/15 +f 319/583/18 320/589/18 316/584/18 +f 318/586/16 317/580/16 313/587/16 +f 320/589/17 318/586/17 314/590/17 +f 317/580/13 318/586/13 320/589/13 +f 325/592/15 327/595/15 323/593/15 +f 327/595/18 328/601/18 324/596/18 +f 326/598/16 325/592/16 321/599/16 +f 328/601/17 326/598/17 322/602/17 +f 325/592/13 326/598/13 328/601/13 +f 333/604/15 335/607/15 331/605/15 +f 335/607/18 336/613/18 332/608/18 +f 334/610/16 333/604/16 329/611/16 +f 336/613/17 334/610/17 330/614/17 +f 333/604/13 334/610/13 336/613/13 +f 340/616/14 364/639/14 254/617/14 +f 339/619/14 363/641/14 364/620/14 +f 338/622/14 362/643/14 363/623/14 +f 337/625/14 361/645/14 362/626/14 +f 345/471/13 365/486/13 255/628/13 +f 346/630/13 366/646/13 365/631/13 +f 347/633/13 367/644/13 366/634/13 +f 348/636/13 368/642/13 367/637/13 +f 364/639/17 368/489/17 256/640/17 +f 363/641/17 367/637/17 368/642/17 +f 362/643/17 366/634/17 367/644/17 +f 361/645/17 365/631/17 366/646/17 +f 344/647/14 356/1622/14 250/648/14 +f 343/650/14 355/1623/14 356/651/14 +f 342/653/14 354/1624/14 355/654/14 +f 341/656/14 353/1625/14 354/657/14 +f 349/468/13 357/475/13 251/659/13 +f 350/661/13 358/680/13 357/662/13 +f 351/664/13 359/677/13 358/665/13 +f 352/667/13 360/674/13 359/668/13 +f 356/670/15 360/479/15 252/671/15 +f 355/673/15 359/668/15 360/674/15 +f 354/676/15 358/665/15 359/677/15 +f 353/679/15 357/662/15 358/680/15 +f 245/488/15 348/490/15 340/682/15 +f 348/636/15 347/638/15 339/684/15 +f 347/633/15 346/635/15 338/686/15 +f 346/630/15 345/632/15 337/688/15 +f 248/478/17 352/480/17 344/647/17 +f 352/667/17 351/669/17 343/650/17 +f 351/664/17 350/666/17 342/653/17 +f 350/661/17 349/663/17 341/656/17 +f 370/690/13 369/759/13 372/691/13 +f 375/693/14 376/760/14 374/694/14 +f 379/696/14 380/734/14 378/697/14 +f 383/699/14 384/764/14 382/700/14 +f 387/702/14 388/739/14 386/703/14 +f 391/705/14 392/769/14 390/706/14 +f 395/708/13 396/733/13 393/709/13 +f 399/711/13 400/763/13 397/712/13 +f 403/714/13 404/738/13 401/715/13 +f 407/717/13 408/768/13 405/718/13 +f 385/720/15 402/1626/15 401/721/15 +f 378/723/16 395/1627/16 394/724/16 +f 386/726/16 403/1628/16 402/727/16 +f 380/729/17 396/1629/17 395/730/17 +f 388/731/17 404/1630/17 403/732/17 +f 379/696/18 393/709/18 396/733/18 +f 373/735/15 371/1631/15 372/736/15 +f 387/702/18 401/715/18 404/738/18 +f 381/740/15 398/1632/15 397/741/15 +f 374/743/16 370/1633/16 371/744/16 +f 389/746/15 406/1634/15 405/747/15 +f 382/749/16 399/1635/16 398/750/16 +f 376/752/17 369/1636/17 370/753/17 +f 390/754/16 407/1637/16 406/755/16 +f 384/757/17 400/1638/17 399/758/17 +f 375/693/18 372/691/18 369/759/18 +f 392/761/17 408/1639/17 407/762/17 +f 383/699/18 397/712/18 400/763/18 +f 377/765/15 394/1640/15 393/766/15 +f 391/705/18 405/718/18 408/768/18 +f 413/770/15 415/773/15 411/771/15 +f 415/773/18 416/779/18 412/774/18 +f 414/776/16 413/770/16 409/777/16 +f 416/779/17 414/776/17 410/780/17 +f 413/770/13 414/776/13 416/779/13 +f 421/782/15 423/785/15 419/783/15 +f 423/785/18 424/791/18 420/786/18 +f 422/788/16 421/782/16 417/789/16 +f 424/791/17 422/788/17 418/792/17 +f 421/782/13 422/788/13 424/791/13 +f 429/794/15 431/797/15 427/795/15 +f 431/797/18 432/803/18 428/798/18 +f 430/800/16 429/794/16 425/801/16 +f 432/803/17 430/800/17 426/804/17 +f 429/794/13 430/800/13 432/803/13 +f 437/806/15 439/809/15 435/807/15 +f 439/809/18 440/815/18 436/810/18 +f 438/812/16 437/806/16 433/813/16 +f 440/815/17 438/812/17 434/816/17 +f 437/806/13 438/812/13 440/815/13 +f 445/818/15 447/821/15 443/819/15 +f 447/821/18 448/827/18 444/822/18 +f 446/824/16 445/818/16 441/825/16 +f 448/827/17 446/824/17 442/828/17 +f 445/818/13 446/824/13 448/827/13 +f 453/830/15 455/833/15 451/831/15 +f 455/833/18 456/839/18 452/834/18 +f 454/836/16 453/830/16 449/837/16 +f 456/839/17 454/836/17 450/840/17 +f 453/830/13 454/836/13 456/839/13 +f 461/842/15 463/845/15 459/843/15 +f 463/845/18 464/851/18 460/846/18 +f 462/848/16 461/842/16 457/849/16 +f 464/851/17 462/848/17 458/852/17 +f 461/842/13 462/848/13 464/851/13 +f 469/854/15 471/857/15 467/855/15 +f 471/857/18 472/863/18 468/858/18 +f 470/860/16 469/854/16 465/861/16 +f 472/863/17 470/860/17 466/864/17 +f 469/854/13 470/860/13 472/863/13 +f 477/866/15 479/869/15 475/867/15 +f 479/869/18 480/875/18 476/870/18 +f 478/872/16 477/866/16 473/873/16 +f 480/875/17 478/872/17 474/876/17 +f 477/866/13 478/872/13 480/875/13 +f 485/878/15 487/881/15 483/879/15 +f 487/881/18 488/887/18 484/882/18 +f 486/884/16 485/878/16 481/885/16 +f 488/887/17 486/884/17 482/888/17 +f 485/878/13 486/884/13 488/887/13 +f 491/890/14 515/907/14 516/182/14 +f 490/892/14 514/908/14 515/893/14 +f 489/895/14 513/910/14 514/896/14 +f 498/898/13 518/911/13 517/899/13 +f 499/901/13 519/909/13 518/902/13 +f 500/904/13 520/477/13 519/905/13 +f 515/907/17 519/905/17 520/477/17 +f 514/908/17 518/902/17 519/909/17 +f 513/910/17 517/899/17 518/911/17 +f 495/912/14 507/1641/14 508/913/14 +f 494/915/14 506/1642/14 507/916/14 +f 493/918/14 505/944/14 506/919/14 +f 502/921/13 510/937/13 509/922/13 +f 503/924/13 511/934/13 510/925/13 +f 504/927/13 512/931/13 511/928/13 +f 507/930/15 511/928/15 512/931/15 +f 506/933/15 510/925/15 511/934/15 +f 505/936/15 509/922/15 510/937/15 +f 500/904/15 499/906/15 491/939/15 +f 499/901/15 498/903/15 490/940/15 +f 498/898/15 497/900/15 489/942/15 +f 504/927/17 503/929/17 495/912/17 +f 503/924/17 502/926/17 494/915/17 +f 502/921/17 501/923/17 493/918/17 +f 493/918/17 501/923/17 80/177/17 +f 80/177/13 501/923/13 509/922/13 +f 509/922/15 505/936/15 82/370/15 +f 505/944/14 493/918/14 76/347/14 +f 517/899/17 513/910/17 254/617/17 +f 245/488/13 497/900/13 517/899/13 +f 489/942/15 497/900/15 245/488/15 +f 513/910/14 489/895/14 241/618/14 +f 246/660/17 504/927/17 496/914/17 +f 512/931/13 504/927/13 246/660/13 +f 249/474/15 508/932/15 512/931/15 +f 242/469/14 496/914/14 508/913/14 +f 571/946/19 567/975/19 568/947/19 +f 605/949/19 606/1030/19 539/950/19 +f 605/952/19 573/1121/19 574/953/19 +f 539/955/20 547/993/20 548/956/20 +f 536/958/14 540/957/14 548/956/14 +f 530/960/14 529/1052/14 531/961/14 +f 537/963/14 565/1643/14 568/964/14 +f 532/966/21 527/1644/21 528/967/21 +f 534/969/19 533/965/19 568/964/19 +f 615/971/22 616/978/22 524/972/22 +f 571/946/13 575/1039/13 566/974/13 +f 538/976/13 534/969/13 567/970/13 +f 616/978/21 614/1048/21 522/979/21 +f 542/981/23 550/1011/23 549/982/23 +f 545/984/24 553/1645/24 554/985/24 +f 534/987/13 538/998/13 546/988/13 +f 536/990/25 544/1646/25 543/991/25 +f 535/992/13 543/991/13 547/993/13 +f 533/994/14 541/999/14 545/995/14 +f 537/997/25 545/1647/25 546/988/25 +f 534/987/20 542/989/20 541/999/20 +f 549/1000/14 557/1022/14 561/1001/14 +f 551/1003/13 559/1029/13 563/1004/13 +f 544/1006/14 548/1010/14 556/1007/14 +f 547/1009/23 555/1015/23 556/1007/23 +f 542/981/13 546/986/13 554/985/13 +f 544/1012/24 552/1648/24 551/1013/24 +f 543/1014/13 551/1013/13 555/1015/13 +f 541/983/14 549/982/14 553/1016/14 +f 553/1018/26 561/1649/26 562/1019/26 +f 550/1021/27 558/1027/27 557/1022/27 +f 552/1023/14 556/1026/14 564/1024/14 +f 555/1005/27 563/1004/27 564/1024/27 +f 550/1021/13 554/1020/13 562/1019/13 +f 552/1028/26 560/1650/26 559/1029/26 +f 606/1030/13 608/1383/13 535/1031/13 +f 575/1032/25 583/1067/25 584/1033/25 +f 572/1035/14 576/1651/14 584/1036/14 +f 576/1038/28 565/1652/28 566/974/28 +f 537/1040/28 538/976/28 566/977/28 +f 529/1042/29 525/1653/29 526/1043/29 +f 565/1044/14 576/1654/14 572/948/14 +f 526/1045/13 525/1051/13 528/1046/13 +f 614/1048/30 613/1122/30 521/1049/30 +f 530/960/30 528/1046/30 525/1051/30 +f 531/1053/22 526/1655/22 527/1054/22 +f 578/1056/24 586/1086/24 585/1057/24 +f 581/1059/23 589/1091/23 590/1060/23 +f 570/1062/13 574/1071/13 582/1063/13 +f 572/1035/20 580/1037/20 579/1065/20 +f 571/1066/13 579/1065/13 583/1067/13 +f 569/1068/14 577/1656/14 581/1069/14 +f 573/1070/20 581/1069/20 582/1063/20 +f 570/1062/25 578/1064/25 577/1072/25 +f 589/1074/14 585/1657/14 593/1075/14 +f 587/1077/13 595/1103/13 599/1078/13 +f 580/1080/14 584/1658/14 592/1081/14 +f 583/1083/24 591/1089/24 592/1084/24 +f 578/1056/13 582/1061/13 590/1060/13 +f 580/1080/23 588/1082/23 587/1087/23 +f 579/1088/13 587/1087/13 591/1089/13 +f 577/1090/14 585/1659/14 589/1091/14 +f 589/1074/27 597/1076/27 598/1092/27 +f 586/1094/26 594/1102/26 593/1095/26 +f 588/1097/14 592/1660/14 600/1098/14 +f 591/1079/26 599/1078/26 600/1100/26 +f 590/1093/13 598/1092/13 594/1102/13 +f 588/1097/27 596/1099/27 595/1103/27 +f 570/1104/28 569/1661/28 607/1105/28 +f 602/1107/13 604/1117/13 603/1108/13 +f 574/953/13 570/1104/13 608/1106/13 +f 601/1109/29 603/1108/29 611/1110/29 +f 603/1108/22 604/1117/22 612/1112/22 +f 602/1107/30 601/1109/30 609/1114/30 +f 536/1116/14 607/1662/14 605/949/14 +f 604/1117/21 602/1107/21 610/1118/21 +f 607/1120/14 569/1663/14 573/1121/14 +f 614/1048/13 616/978/13 615/971/13 +f 613/1122/29 615/971/29 523/1123/29 +f 618/1125/13 617/1178/13 620/1126/13 +f 623/1128/14 624/1179/14 622/1129/14 +f 627/1131/14 628/1155/14 626/1132/14 +f 631/1134/14 632/1183/14 630/1135/14 +f 635/1137/14 636/1188/14 634/1138/14 +f 639/1140/13 640/1154/13 637/1141/13 +f 643/1143/13 644/1182/13 641/1144/13 +f 647/1146/13 648/1187/13 645/1147/13 +f 626/1149/16 639/1664/16 638/1150/16 +f 628/1152/17 640/1665/17 639/1153/17 +f 627/1131/18 637/1141/18 640/1154/18 +f 621/1156/15 619/1666/15 620/1157/15 +f 629/1159/15 642/1667/15 641/1160/15 +f 622/1162/16 618/1668/16 619/1163/16 +f 633/1165/15 646/1669/15 645/1166/15 +f 630/1168/16 643/1670/16 642/1169/16 +f 624/1171/17 617/1671/17 618/1172/17 +f 634/1173/16 647/1672/16 646/1174/16 +f 632/1176/17 644/1673/17 643/1177/17 +f 623/1128/18 620/1126/18 617/1178/18 +f 636/1180/17 648/1674/17 647/1181/17 +f 631/1134/18 641/1144/18 644/1182/18 +f 625/1184/15 638/1675/15 637/1185/15 +f 635/1137/18 645/1147/18 648/1187/18 +f 729/1189/15 651/1312/15 649/1190/15 +f 652/1192/13 654/1350/13 744/1193/13 +f 650/1195/18 653/1676/18 654/1196/18 +f 655/1198/17 656/1311/17 749/1199/17 +f 649/1201/14 655/1198/14 745/1200/14 +f 651/1203/18 656/1677/18 655/1204/18 +f 661/1206/15 663/1209/15 659/1207/15 +f 663/1209/18 664/1215/18 660/1210/18 +f 662/1212/16 661/1206/16 657/1213/16 +f 664/1215/17 662/1212/17 658/1216/17 +f 661/1206/13 662/1212/13 664/1215/13 +f 669/1218/15 671/1221/15 667/1219/15 +f 671/1221/18 672/1227/18 668/1222/18 +f 670/1224/16 669/1218/16 665/1225/16 +f 672/1227/17 670/1224/17 666/1228/17 +f 669/1218/13 670/1224/13 672/1227/13 +f 677/1230/15 679/1233/15 675/1231/15 +f 679/1233/18 680/1239/18 676/1234/18 +f 678/1236/16 677/1230/16 673/1237/16 +f 680/1239/17 678/1236/17 674/1240/17 +f 677/1230/13 678/1236/13 680/1239/13 +f 685/1242/15 687/1245/15 683/1243/15 +f 687/1245/18 688/1251/18 684/1246/18 +f 686/1248/16 685/1242/16 681/1249/16 +f 688/1251/17 686/1248/17 682/1252/17 +f 685/1242/13 686/1248/13 688/1251/13 +f 693/1254/15 695/1257/15 691/1255/15 +f 695/1257/18 696/1263/18 692/1258/18 +f 694/1260/16 693/1254/16 689/1261/16 +f 696/1263/17 694/1260/17 690/1264/17 +f 693/1254/13 694/1260/13 696/1263/13 +f 701/1266/15 703/1269/15 699/1267/15 +f 703/1269/18 704/1275/18 700/1270/18 +f 702/1272/16 701/1266/16 697/1273/16 +f 704/1275/17 702/1272/17 698/1276/17 +f 701/1266/13 702/1272/13 704/1275/13 +f 709/1278/15 711/1281/15 707/1279/15 +f 711/1281/18 712/1287/18 708/1282/18 +f 710/1284/16 709/1278/16 705/1285/16 +f 712/1287/17 710/1284/17 706/1288/17 +f 709/1278/13 710/1284/13 712/1287/13 +f 717/1290/15 719/1293/15 715/1291/15 +f 719/1293/18 720/1299/18 716/1294/18 +f 718/1296/16 717/1290/16 713/1297/16 +f 720/1299/17 718/1296/17 714/1300/17 +f 717/1290/13 718/1296/13 720/1299/13 +f 723/1302/14 747/1322/14 748/1303/14 +f 722/1305/14 746/1324/14 747/1306/14 +f 721/1308/14 745/1326/14 746/1309/14 +f 729/1189/13 749/1199/13 656/1311/13 +f 730/1313/13 750/1327/13 749/1314/13 +f 731/1316/13 751/1325/13 750/1317/13 +f 732/1319/13 752/1323/13 751/1320/13 +f 747/1322/17 751/1320/17 752/1323/17 +f 746/1324/17 750/1317/17 751/1325/17 +f 745/1326/17 749/1314/17 750/1327/17 +f 728/1328/14 740/1678/14 653/1329/14 +f 727/1331/14 739/1679/14 740/1332/14 +f 726/1334/14 738/1680/14 739/1335/14 +f 725/1337/14 737/1681/14 738/1338/14 +f 734/1340/13 742/1359/13 741/1341/13 +f 735/1343/13 743/1356/13 742/1344/13 +f 736/1346/13 744/1353/13 743/1347/13 +f 740/1349/15 744/1193/15 654/1350/15 +f 739/1352/15 743/1347/15 744/1353/15 +f 738/1355/15 742/1344/15 743/1356/15 +f 737/1358/15 741/1341/15 742/1359/15 +f 732/1319/15 731/1321/15 723/1361/15 +f 731/1316/15 730/1318/15 722/1363/15 +f 730/1313/15 729/1315/15 721/1365/15 +f 652/1192/17 736/1194/17 728/1328/17 +f 736/1346/17 735/1348/17 727/1331/17 +f 735/1343/17 734/1345/17 726/1334/17 +f 734/1340/17 733/1342/17 725/1337/17 +f 741/1367/15 737/1682/15 600/1368/15 +f 595/1370/13 733/1683/13 741/1367/13 +f 725/1371/17 733/1683/17 595/1370/17 +f 737/1373/14 725/1371/14 596/1372/14 +f 594/1375/15 732/1684/15 724/1376/15 +f 752/1378/13 732/1684/13 594/1375/13 +f 597/1380/17 748/1382/17 752/1378/17 +f 597/1380/14 593/1685/14 724/1381/14 +f 608/1383/28 607/1686/28 536/1384/28 +f 762/1385/14 761/1406/14 763/1386/14 +f 764/1388/25 759/1687/25 760/1389/25 +f 775/1391/31 776/1394/31 756/1392/31 +f 776/1394/25 774/1402/25 754/1395/25 +f 761/1397/20 757/1688/20 758/1398/20 +f 758/1399/13 757/1405/13 760/1400/13 +f 774/1402/32 773/1422/32 753/1403/32 +f 762/1385/32 760/1400/32 757/1405/32 +f 763/1407/31 758/1689/31 759/1408/31 +f 766/1410/13 768/1419/13 767/1411/13 +f 765/1412/20 767/1411/20 771/1413/20 +f 767/1411/31 768/1419/31 772/1415/31 +f 766/1410/32 765/1412/32 769/1417/32 +f 768/1419/25 766/1410/25 770/1420/25 +f 774/1402/13 776/1394/13 775/1391/13 +f 773/1422/20 775/1391/20 755/1423/20 +f 788/1425/14 786/1445/14 785/1426/14 +f 788/1428/24 783/1690/24 784/1429/24 +f 799/1431/33 800/1434/33 780/1432/33 +f 800/1434/24 798/1442/24 778/1435/24 +f 785/1437/23 781/1691/23 782/1438/23 +f 783/1439/13 782/1692/13 781/1440/13 +f 798/1442/34 797/1461/34 777/1443/34 +f 786/1445/34 784/1441/34 781/1440/34 +f 787/1446/33 782/1693/33 783/1447/33 +f 790/1449/13 792/1458/13 791/1450/13 +f 789/1451/23 791/1450/23 795/1452/23 +f 791/1450/33 792/1458/33 796/1454/33 +f 790/1449/34 789/1451/34 793/1456/34 +f 792/1458/24 790/1449/24 794/1459/24 +f 798/1442/13 800/1434/13 799/1431/13 +f 797/1461/23 799/1431/23 779/1462/23 +f 810/1464/14 809/1485/14 811/1465/14 +f 812/1467/26 807/1694/26 808/1468/26 +f 823/1470/35 824/1473/35 804/1471/35 +f 824/1473/26 822/1481/26 802/1474/26 +f 809/1476/27 805/1695/27 806/1477/27 +f 806/1478/13 805/1484/13 808/1479/13 +f 822/1481/36 821/1501/36 801/1482/36 +f 810/1464/36 808/1479/36 805/1484/36 +f 811/1486/35 806/1696/35 807/1487/35 +f 816/1489/13 815/1494/13 813/1490/13 +f 813/1490/27 815/1494/27 819/1492/27 +f 815/1494/35 816/1489/35 820/1495/35 +f 814/1491/36 813/1490/36 817/1497/36 +f 816/1489/26 814/1491/26 818/1499/26 +f 822/1481/13 824/1473/13 823/1470/13 +f 821/1501/27 823/1470/27 803/1502/27 +f 836/1504/14 834/1524/14 833/1505/14 +f 836/1507/21 831/1697/21 832/1508/21 +f 847/1510/22 848/1513/22 828/1511/22 +f 848/1513/21 846/1521/21 826/1514/21 +f 833/1516/29 829/1698/29 830/1517/29 +f 831/1518/13 830/1699/13 829/1519/13 +f 846/1521/30 845/1540/30 825/1522/30 +f 834/1524/30 832/1520/30 829/1519/30 +f 835/1525/22 830/1700/22 831/1526/22 +f 838/1528/13 840/1537/13 839/1529/13 +f 837/1530/29 839/1529/29 843/1531/29 +f 839/1529/22 840/1537/22 844/1533/22 +f 838/1528/30 837/1530/30 841/1535/30 +f 840/1537/21 838/1528/21 842/1538/21 +f 846/1521/13 848/1513/13 847/1510/13 +f 845/1540/29 847/1510/29 827/1541/29 +f 851/1543/14 852/1558/14 850/1544/14 +f 855/1546/13 856/1557/13 853/1547/13 +f 849/1549/15 854/1701/15 853/1550/15 +f 850/1552/16 855/1702/16 854/1553/16 +f 852/1555/17 856/1703/17 855/1556/17 +f 851/1543/18 853/1547/18 856/1557/18 +f 861/1559/15 863/1562/15 859/1560/15 +f 863/1562/18 864/1568/18 860/1563/18 +f 862/1565/16 861/1559/16 857/1566/16 +f 864/1568/17 862/1565/17 858/1569/17 +f 861/1559/13 862/1565/13 864/1568/13 +f 869/1571/15 871/1574/15 867/1572/15 +f 871/1574/18 872/1580/18 868/1575/18 +f 870/1577/16 869/1571/16 865/1578/16 +f 872/1580/17 870/1577/17 866/1581/17 +f 869/1571/13 870/1577/13 872/1580/13 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj new file mode 100644 index 000000000..f4ebf2c55 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj @@ -0,0 +1,3933 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_switch_flipped.blend' +# www.blender.org +o SignTurn +v 1.500000 1.000000 -1.125000 +v 2.500000 1.000000 -1.125000 +v 1.500000 2.000000 -1.125000 +v 2.500000 2.000000 -1.125000 +v 1.500000 2.000000 -0.875000 +v 1.500000 1.000000 -0.875000 +v 2.500000 1.000000 -0.875000 +v 2.500000 2.000000 -0.875000 +v 1.875000 1.000000 -0.875000 +v 2.125000 1.000000 -0.875000 +v 1.875000 1.000000 -1.125000 +v 2.125000 1.000000 -1.125000 +v 1.875000 0.000000 -1.125000 +v 1.875000 0.000000 -0.875000 +v 2.125000 0.000000 -0.875000 +v 2.125000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/8/3 2/9/3 +f 1/3/4 5/10/4 3/1/4 +f 3/11/5 8/12/5 4/13/5 +f 2/14/6 6/15/6 1/16/6 +f 13/17/6 15/18/6 14/19/6 +f 16/20/1 11/21/1 12/22/1 +f 14/23/2 10/24/2 9/25/2 +f 15/26/3 12/27/3 10/28/3 +f 13/29/4 9/30/4 11/31/4 +f 3/1/1 4/32/1 2/2/1 +f 7/4/2 8/33/2 5/5/2 +f 4/7/3 8/34/3 7/8/3 +f 1/3/4 6/35/4 5/10/4 +f 3/11/5 5/36/5 8/12/5 +f 2/14/6 7/37/6 6/15/6 +f 13/17/6 16/38/6 15/18/6 +f 16/20/1 13/39/1 11/21/1 +f 14/23/2 15/40/2 10/24/2 +f 15/26/3 16/41/3 12/27/3 +f 13/29/4 14/42/4 9/30/4 +o SignStraight +v 1.500000 1.000000 -1.125000 +v 2.500000 1.000000 -1.125000 +v 1.500000 2.000000 -1.125000 +v 2.500000 2.000000 -1.125000 +v 1.500000 2.000000 -0.875000 +v 1.500000 1.000000 -0.875000 +v 2.500000 1.000000 -0.875000 +v 2.500000 2.000000 -0.875000 +v 1.875000 1.000000 -0.875000 +v 2.125000 1.000000 -0.875000 +v 1.875000 1.000000 -1.125000 +v 2.125000 1.000000 -1.125000 +v 1.875000 0.000000 -1.125000 +v 1.875000 0.000000 -0.875000 +v 2.125000 0.000000 -0.875000 +v 2.125000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.000100 0.999900 +vt 0.000000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 19/43/7 18/44/7 17/45/7 +f 23/46/8 21/47/8 22/48/8 +f 20/49/9 23/50/9 18/51/9 +f 17/45/10 21/52/10 19/43/10 +f 19/53/11 24/54/11 20/55/11 +f 18/56/12 22/57/12 17/58/12 +f 29/59/12 31/60/12 30/61/12 +f 32/62/7 27/63/7 28/64/7 +f 30/65/8 26/66/8 25/67/8 +f 31/68/9 28/69/9 26/70/9 +f 29/71/10 25/72/10 27/73/10 +f 19/43/7 20/74/7 18/44/7 +f 23/46/8 24/75/8 21/47/8 +f 20/49/9 24/76/9 23/50/9 +f 17/45/10 22/77/10 21/52/10 +f 19/53/11 21/78/11 24/54/11 +f 18/56/12 23/79/12 22/57/12 +f 29/59/12 32/80/12 31/60/12 +f 32/62/7 29/81/7 27/63/7 +f 30/65/8 31/82/8 26/66/8 +f 31/68/9 32/83/9 28/69/9 +f 29/71/10 30/84/10 25/72/10 +o Rail +v 1.000000 0.062500 4.812500 +v 1.000000 0.062500 5.187500 +v -1.000000 0.062500 5.187500 +v -1.000000 0.062500 4.812500 +v -1.000000 0.000000 5.187500 +v 1.000000 0.000000 5.187500 +v -1.000000 0.000000 4.812500 +v 1.000000 0.000000 4.812500 +v -1.000000 0.000000 4.187500 +v 1.000000 0.000000 4.187500 +v -1.000000 0.000000 3.812500 +v 1.000000 0.000000 3.812500 +v -1.000000 0.000000 3.187500 +v 1.000000 0.000000 3.187500 +v -1.000000 0.000000 2.812500 +v 1.000000 0.000000 2.812500 +v -1.000000 0.000000 7.187500 +v 1.000000 0.000000 7.187500 +v -1.000000 0.000000 6.812500 +v 1.000000 0.000000 6.812500 +v -1.000000 0.000000 6.187500 +v 1.000000 0.000000 6.187500 +v -1.000000 0.000000 5.812500 +v 1.000000 0.000000 5.812500 +v -1.000000 0.062500 3.812500 +v -1.000000 0.062500 4.187500 +v 1.000000 0.062500 4.187500 +v 1.000000 0.062500 3.812500 +v -1.000000 0.062500 2.812500 +v -1.000000 0.062500 3.187500 +v 1.000000 0.062500 3.187500 +v 1.000000 0.062500 2.812500 +v -1.000000 0.062500 6.812500 +v -1.000000 0.062500 7.187500 +v 1.000000 0.062500 7.187500 +v 1.000000 0.062500 6.812500 +v -1.000000 0.062500 5.812500 +v -1.000000 0.062500 6.187500 +v 1.000000 0.062500 6.187500 +v 1.000000 0.062500 5.812500 +v -0.812500 0.062500 7.500000 +v 0.812500 0.062500 7.500000 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.187500 7.500000 +v 0.812500 0.187500 7.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v 0.750000 0.062500 7.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 0.187500 7.500000 +v 0.750000 0.187500 2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.062500 7.500000 +v -0.750000 0.187500 2.500000 +v -0.750000 0.187500 7.500000 +v 0.625000 0.062500 7.062500 +v 0.937500 0.062500 7.062500 +v 0.625000 0.062500 6.937500 +v 0.937500 0.062500 6.937500 +v 0.625000 0.125000 7.062500 +v 0.937500 0.125000 7.062500 +v 0.625000 0.125000 6.937500 +v 0.937500 0.125000 6.937500 +v -0.937500 0.062500 7.062500 +v -0.625000 0.062500 7.062500 +v -0.937500 0.062500 6.937500 +v -0.625000 0.062500 6.937500 +v -0.937500 0.125000 7.062500 +v -0.625000 0.125000 7.062500 +v -0.937500 0.125000 6.937500 +v -0.625000 0.125000 6.937500 +v 0.625000 0.062500 6.062500 +v 0.937500 0.062500 6.062500 +v 0.625000 0.062500 5.937500 +v 0.937500 0.062500 5.937500 +v 0.625000 0.125000 6.062500 +v 0.937500 0.125000 6.062500 +v 0.625000 0.125000 5.937500 +v 0.937500 0.125000 5.937500 +v -0.937500 0.062500 6.062500 +v -0.625000 0.062500 6.062500 +v -0.937500 0.062500 5.937500 +v -0.625000 0.062500 5.937500 +v -0.937500 0.125000 6.062500 +v -0.625000 0.125000 6.062500 +v -0.937500 0.125000 5.937500 +v -0.625000 0.125000 5.937500 +v 0.625000 0.062500 5.062500 +v 0.937500 0.062500 5.062500 +v 0.625000 0.062500 4.937500 +v 0.937500 0.062500 4.937500 +v 0.625000 0.125000 5.062500 +v 0.937500 0.125000 5.062500 +v 0.625000 0.125000 4.937500 +v 0.937500 0.125000 4.937500 +v -0.937500 0.062500 5.062500 +v -0.625000 0.062500 5.062500 +v -0.937500 0.062500 4.937500 +v -0.625000 0.062500 4.937500 +v -0.937500 0.125000 5.062500 +v -0.625000 0.125000 5.062500 +v -0.937500 0.125000 4.937500 +v -0.625000 0.125000 4.937500 +v 0.625000 0.062500 4.062500 +v 0.937500 0.062500 4.062500 +v 0.625000 0.062500 3.937500 +v 0.937500 0.062500 3.937500 +v 0.625000 0.125000 4.062500 +v 0.937500 0.125000 4.062500 +v 0.625000 0.125000 3.937500 +v 0.937500 0.125000 3.937500 +v -0.937500 0.062500 4.062500 +v -0.625000 0.062500 4.062500 +v -0.937500 0.062500 3.937500 +v -0.625000 0.062500 3.937500 +v -0.937500 0.125000 4.062500 +v -0.625000 0.125000 4.062500 +v -0.937500 0.125000 3.937500 +v -0.625000 0.125000 3.937500 +v 0.625000 0.062500 3.062500 +v 0.937500 0.062500 3.062500 +v 0.625000 0.062500 2.937500 +v 0.937500 0.062500 2.937500 +v 0.625000 0.125000 3.062500 +v 0.937500 0.125000 3.062500 +v 0.625000 0.125000 2.937500 +v 0.937500 0.125000 2.937500 +v -0.937500 0.062500 3.062500 +v -0.625000 0.062500 3.062500 +v -0.937500 0.062500 2.937500 +v -0.625000 0.062500 2.937500 +v -0.937500 0.125000 3.062500 +v -0.625000 0.125000 3.062500 +v -0.937500 0.125000 2.937500 +v -0.625000 0.125000 2.937500 +v -0.812500 0.062500 3.500000 +v -0.812500 0.062500 4.500000 +v -0.812500 0.062500 5.500000 +v -0.812500 0.062500 6.500000 +v 0.812500 0.062500 6.500000 +v 0.812500 0.062500 5.500000 +v 0.812500 0.062500 4.500000 +v 0.812500 0.062500 3.500000 +v -0.812500 0.187500 3.500000 +v -0.812500 0.187500 4.500000 +v -0.812500 0.187500 5.500000 +v -0.812500 0.187500 6.500000 +v 0.812500 0.187500 6.500000 +v 0.812500 0.187500 5.500000 +v 0.812500 0.187500 4.500000 +v 0.812500 0.187500 3.500000 +v 0.750000 0.062500 6.500000 +v 0.750000 0.062500 5.500000 +v 0.750000 0.062500 4.500000 +v 0.750000 0.062500 3.500000 +v 0.750000 0.187500 6.500000 +v 0.750000 0.187500 5.500000 +v 0.750000 0.187500 4.500000 +v 0.750000 0.187500 3.500000 +v -0.750000 0.062500 3.500000 +v -0.750000 0.062500 4.500000 +v -0.750000 0.062500 5.500000 +v -0.750000 0.062500 6.500000 +v -0.750000 0.187500 3.500000 +v -0.750000 0.187500 4.500000 +v -0.750000 0.187500 5.500000 +v -0.750000 0.187500 6.500000 +v 1.000000 0.062500 -5.187500 +v 1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -5.187500 +v -1.000000 0.000000 -4.812500 +v 1.000000 0.000000 -4.812500 +v -1.000000 0.000000 -5.187500 +v 1.000000 0.000000 -5.187500 +v -1.000000 0.000000 -5.812500 +v 1.000000 0.000000 -5.812500 +v -1.000000 0.000000 -6.187500 +v 1.000000 0.000000 -6.187500 +v -1.000000 0.000000 -6.812500 +v 1.000000 0.000000 -6.812500 +v -1.000000 0.000000 -7.187500 +v 1.000000 0.000000 -7.187500 +v -1.000000 0.000000 -2.812500 +v 1.000000 0.000000 -2.812500 +v -1.000000 0.000000 -3.187500 +v 1.000000 0.000000 -3.187500 +v -1.000000 0.000000 -3.812500 +v 1.000000 0.000000 -3.812500 +v -1.000000 0.000000 -4.187500 +v 1.000000 0.000000 -4.187500 +v -1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -4.187500 +v -1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -4.187500 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.062500 -7.500000 +v 0.812500 0.062500 -7.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 +v -0.812500 0.187500 -7.500000 +v 0.812500 0.187500 -7.500000 +v 0.750000 0.062500 -2.500000 +v 0.750000 0.062500 -7.500000 +v 0.750000 0.187500 -2.500000 +v 0.750000 0.187500 -7.500000 +v -0.750000 0.062500 -7.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.187500 -7.500000 +v -0.750000 0.187500 -2.500000 +v 0.625000 0.062500 -2.937500 +v 0.937500 0.062500 -2.937500 +v 0.625000 0.062500 -3.062500 +v 0.937500 0.062500 -3.062500 +v 0.625000 0.125000 -2.937500 +v 0.937500 0.125000 -2.937500 +v 0.625000 0.125000 -3.062500 +v 0.937500 0.125000 -3.062500 +v -0.937500 0.062500 -2.937500 +v -0.625000 0.062500 -2.937500 +v -0.937500 0.062500 -3.062500 +v -0.625000 0.062500 -3.062500 +v -0.937500 0.125000 -2.937500 +v -0.625000 0.125000 -2.937500 +v -0.937500 0.125000 -3.062500 +v -0.625000 0.125000 -3.062500 +v 0.625000 0.062500 -3.937500 +v 0.937500 0.062500 -3.937500 +v 0.625000 0.062500 -4.062500 +v 0.937500 0.062500 -4.062500 +v 0.625000 0.125000 -3.937500 +v 0.937500 0.125000 -3.937500 +v 0.625000 0.125000 -4.062500 +v 0.937500 0.125000 -4.062500 +v -0.937500 0.062500 -3.937500 +v -0.625000 0.062500 -3.937500 +v -0.937500 0.062500 -4.062500 +v -0.625000 0.062500 -4.062500 +v -0.937500 0.125000 -3.937500 +v -0.625000 0.125000 -3.937500 +v -0.937500 0.125000 -4.062500 +v -0.625000 0.125000 -4.062500 +v 0.625000 0.062500 -4.937500 +v 0.937500 0.062500 -4.937500 +v 0.625000 0.062500 -5.062500 +v 0.937500 0.062500 -5.062500 +v 0.625000 0.125000 -4.937500 +v 0.937500 0.125000 -4.937500 +v 0.625000 0.125000 -5.062500 +v 0.937500 0.125000 -5.062500 +v -0.937500 0.062500 -4.937500 +v -0.625000 0.062500 -4.937500 +v -0.937500 0.062500 -5.062500 +v -0.625000 0.062500 -5.062500 +v -0.937500 0.125000 -4.937500 +v -0.625000 0.125000 -4.937500 +v -0.937500 0.125000 -5.062500 +v -0.625000 0.125000 -5.062500 +v 0.625000 0.062500 -5.937500 +v 0.937500 0.062500 -5.937500 +v 0.625000 0.062500 -6.062500 +v 0.937500 0.062500 -6.062500 +v 0.625000 0.125000 -5.937500 +v 0.937500 0.125000 -5.937500 +v 0.625000 0.125000 -6.062500 +v 0.937500 0.125000 -6.062500 +v -0.937500 0.062500 -5.937500 +v -0.625000 0.062500 -5.937500 +v -0.937500 0.062500 -6.062500 +v -0.625000 0.062500 -6.062500 +v -0.937500 0.125000 -5.937500 +v -0.625000 0.125000 -5.937500 +v -0.937500 0.125000 -6.062500 +v -0.625000 0.125000 -6.062500 +v 0.625000 0.062500 -6.937500 +v 0.937500 0.062500 -6.937500 +v 0.625000 0.062500 -7.062500 +v 0.937500 0.062500 -7.062500 +v 0.625000 0.125000 -6.937500 +v 0.937500 0.125000 -6.937500 +v 0.625000 0.125000 -7.062500 +v 0.937500 0.125000 -7.062500 +v -0.937500 0.062500 -6.937500 +v -0.625000 0.062500 -6.937500 +v -0.937500 0.062500 -7.062500 +v -0.625000 0.062500 -7.062500 +v -0.937500 0.125000 -6.937500 +v -0.625000 0.125000 -6.937500 +v -0.937500 0.125000 -7.062500 +v -0.625000 0.125000 -7.062500 +v -0.812500 0.062500 -6.500000 +v -0.812500 0.062500 -5.500000 +v -0.812500 0.062500 -4.500000 +v -0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -4.500000 +v 0.812500 0.062500 -5.500000 +v 0.812500 0.062500 -6.500000 +v -0.812500 0.187500 -6.500000 +v -0.812500 0.187500 -5.500000 +v -0.812500 0.187500 -4.500000 +v -0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -4.500000 +v 0.812500 0.187500 -5.500000 +v 0.812500 0.187500 -6.500000 +v 0.750000 0.062500 -3.500000 +v 0.750000 0.062500 -4.500000 +v 0.750000 0.062500 -5.500000 +v 0.750000 0.062500 -6.500000 +v 0.750000 0.187500 -3.500000 +v 0.750000 0.187500 -4.500000 +v 0.750000 0.187500 -5.500000 +v 0.750000 0.187500 -6.500000 +v -0.750000 0.062500 -6.500000 +v -0.750000 0.062500 -5.500000 +v -0.750000 0.062500 -4.500000 +v -0.750000 0.062500 -3.500000 +v -0.750000 0.187500 -6.500000 +v -0.750000 0.187500 -5.500000 +v -0.750000 0.187500 -4.500000 +v -0.750000 0.187500 -3.500000 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +v 1.725096 0.062500 1.451439 +v 1.966661 0.062500 1.649687 +v 1.645797 0.062500 1.548066 +v 1.887362 0.062500 1.746314 +v 1.756082 0.062500 1.315164 +v 1.518184 0.062500 1.605042 +v 3.064205 0.062500 2.873829 +v 3.302103 0.062500 2.583950 +v 1.756082 0.000000 1.315164 +v 3.302103 0.000000 2.583950 +v 1.518184 0.000000 1.605042 +v 3.064205 0.000000 2.873829 +v 0.504144 0.062500 3.159608 +v 0.504144 0.187500 3.159608 +v 1.855282 0.187500 4.062409 +v 1.855282 0.062500 4.062409 +v 0.556111 0.062500 3.194331 +v 0.556111 0.187500 3.194331 +v 1.803315 0.187500 4.027686 +v 1.803315 0.062500 4.027686 +v -0.217808 0.062500 4.510286 +v -0.217808 0.187500 4.510286 +v 1.283496 0.187500 5.132147 +v 1.283496 0.062500 5.132147 +v -0.160065 0.062500 4.534204 +v -0.160065 0.187500 4.534204 +v 1.225753 0.187500 5.108229 +v 1.225753 0.062500 5.108229 +v -0.662384 0.062500 5.975857 +v -0.662384 0.187500 5.975857 +v 0.931392 0.187500 6.292879 +v 0.931392 0.062500 6.292879 +v -0.601084 0.062500 5.988050 +v -0.601084 0.187500 5.988050 +v 0.870092 0.187500 6.280685 +v 0.870092 0.062500 6.280685 +v -0.812499 0.062500 7.500000 +v -0.812499 0.187500 7.500000 +v 0.812501 0.187500 7.500000 +v 0.812501 0.062500 7.500000 +v -0.749998 0.062500 7.500000 +v -0.749998 0.187500 7.500000 +v 0.750000 0.187500 7.500000 +v 0.750000 0.062500 7.500000 +v 1.376398 0.062500 2.183322 +v 1.376398 0.187500 2.183322 +v 1.324431 0.187500 2.148599 +v 1.324431 0.062500 2.148599 +v 3.495856 0.062500 2.040392 +v 3.495856 0.187500 2.040392 +v 2.144718 0.187500 1.137591 +v 2.144718 0.062500 1.137591 +v 3.443888 0.062500 2.005669 +v 3.443888 0.187500 2.005669 +v 2.196684 0.187500 1.172314 +v 2.196684 0.062500 1.172314 +v 4.217808 0.062500 0.689714 +v 4.217808 0.187500 0.689714 +v 2.716504 0.187500 0.067853 +v 2.716504 0.062500 0.067853 +v 4.160065 0.062500 0.665796 +v 4.160065 0.187500 0.665796 +v 2.774246 0.187500 0.091771 +v 2.774246 0.062500 0.091771 +v 4.662384 0.062500 -0.775857 +v 4.662384 0.187500 -0.775857 +v 3.068608 0.187500 -1.092879 +v 3.068608 0.062500 -1.092879 +v 4.601084 0.062500 -0.788050 +v 4.601084 0.187500 -0.788050 +v 3.129908 0.187500 -1.080685 +v 3.129908 0.062500 -1.080685 +v 4.812499 0.062500 -2.300000 +v 4.812499 0.187500 -2.300000 +v 3.187499 0.187500 -2.300000 +v 3.187499 0.062500 -2.300000 +v 4.749998 0.062500 -2.300000 +v 4.749998 0.187500 -2.300000 +v 3.250000 0.187500 -2.300000 +v 3.250000 0.062500 -2.300000 +v 2.932924 0.125000 2.442679 +v 3.174490 0.125000 2.640927 +v 2.853625 0.125000 2.539305 +v 3.095191 0.125000 2.737553 +v 2.623602 0.062500 3.016677 +v 2.623602 0.187500 3.016677 +v 2.675569 0.062500 3.051401 +v 2.675569 0.187500 3.051401 +v 2.932924 0.062500 2.442679 +v 3.174490 0.062500 2.640927 +v 2.853625 0.062500 2.539305 +v 3.095191 0.062500 2.737553 +v 1.725096 0.125000 1.451439 +v 1.966661 0.125000 1.649687 +v 1.645797 0.125000 1.548066 +v 1.887362 0.125000 1.746314 +v 3.000000 0.062500 -5.187500 +v 3.000000 0.062500 -4.812500 +v 5.000000 0.062500 -4.812500 +v 5.000000 0.062500 -5.187500 +v 5.000000 0.000000 -4.812500 +v 3.000000 0.000000 -4.812500 +v 5.000000 0.000000 -5.187500 +v 3.000000 0.000000 -5.187500 +v 5.000000 0.000000 -5.812500 +v 3.000000 0.000000 -5.812500 +v 5.000000 0.000000 -6.187500 +v 3.000000 0.000000 -6.187500 +v 5.000000 0.000000 -6.812500 +v 3.000000 0.000000 -6.812500 +v 5.000000 0.000000 -7.187500 +v 3.000000 0.000000 -7.187500 +v 5.000000 0.000000 -3.812500 +v 3.000000 0.000000 -3.812500 +v 5.000000 0.000000 -4.187500 +v 3.000000 0.000000 -4.187500 +v 5.000000 0.062500 -6.187500 +v 5.000000 0.062500 -5.812500 +v 3.000000 0.062500 -5.812500 +v 3.000000 0.062500 -6.187500 +v 5.000000 0.062500 -7.187500 +v 5.000000 0.062500 -6.812500 +v 3.000000 0.062500 -6.812500 +v 3.000000 0.062500 -7.187500 +v 5.000000 0.062500 -4.187500 +v 5.000000 0.062500 -3.812500 +v 3.000000 0.062500 -3.812500 +v 3.000000 0.062500 -4.187500 +v 4.812500 0.062500 -7.500000 +v 3.187500 0.062500 -7.500000 +v 4.812500 0.187500 -7.500000 +v 3.187500 0.187500 -7.500000 +v 3.250000 0.062500 -7.500000 +v 3.250000 0.187500 -7.500000 +v 4.750000 0.062500 -7.500000 +v 4.750000 0.187500 -7.500000 +v 3.375000 0.062500 -3.937500 +v 3.062500 0.062500 -3.937500 +v 3.375000 0.062500 -4.062500 +v 3.062500 0.062500 -4.062500 +v 3.375000 0.125000 -3.937500 +v 3.062500 0.125000 -3.937500 +v 3.375000 0.125000 -4.062500 +v 3.062500 0.125000 -4.062500 +v 4.937500 0.062500 -3.937500 +v 4.625000 0.062500 -3.937500 +v 4.937500 0.062500 -4.062500 +v 4.625000 0.062500 -4.062500 +v 4.937500 0.125000 -3.937500 +v 4.625000 0.125000 -3.937500 +v 4.937500 0.125000 -4.062500 +v 4.625000 0.125000 -4.062500 +v 3.375000 0.062500 -4.937500 +v 3.062500 0.062500 -4.937500 +v 3.375000 0.062500 -5.062500 +v 3.062500 0.062500 -5.062500 +v 3.375000 0.125000 -4.937500 +v 3.062500 0.125000 -4.937500 +v 3.375000 0.125000 -5.062500 +v 3.062500 0.125000 -5.062500 +v 4.937500 0.062500 -4.937500 +v 4.625000 0.062500 -4.937500 +v 4.937500 0.062500 -5.062500 +v 4.625000 0.062500 -5.062500 +v 4.937500 0.125000 -4.937500 +v 4.625000 0.125000 -4.937500 +v 4.937500 0.125000 -5.062500 +v 4.625000 0.125000 -5.062500 +v 3.375000 0.062500 -5.937500 +v 3.062500 0.062500 -5.937500 +v 3.375000 0.062500 -6.062500 +v 3.062500 0.062500 -6.062500 +v 3.375000 0.125000 -5.937500 +v 3.062500 0.125000 -5.937500 +v 3.375000 0.125000 -6.062500 +v 3.062500 0.125000 -6.062500 +v 4.937500 0.062500 -5.937500 +v 4.625000 0.062500 -5.937500 +v 4.937500 0.062500 -6.062500 +v 4.625000 0.062500 -6.062500 +v 4.937500 0.125000 -5.937500 +v 4.625000 0.125000 -5.937500 +v 4.937500 0.125000 -6.062500 +v 4.625000 0.125000 -6.062500 +v 3.375000 0.062500 -6.937500 +v 3.062500 0.062500 -6.937500 +v 3.375000 0.062500 -7.062500 +v 3.062500 0.062500 -7.062500 +v 3.375000 0.125000 -6.937500 +v 3.062500 0.125000 -6.937500 +v 3.375000 0.125000 -7.062500 +v 3.062500 0.125000 -7.062500 +v 4.937500 0.062500 -6.937500 +v 4.625000 0.062500 -6.937500 +v 4.937500 0.062500 -7.062500 +v 4.625000 0.062500 -7.062500 +v 4.937500 0.125000 -6.937500 +v 4.625000 0.125000 -6.937500 +v 4.937500 0.125000 -7.062500 +v 4.625000 0.125000 -7.062500 +v 4.812500 0.062500 -6.500000 +v 4.812500 0.062500 -5.500000 +v 4.812500 0.062500 -4.500000 +v 4.812500 0.062500 -3.500000 +v 3.187500 0.062500 -3.500000 +v 3.187500 0.062500 -4.500000 +v 3.187500 0.062500 -5.500000 +v 3.187500 0.062500 -6.500000 +v 4.812500 0.187500 -6.500000 +v 4.812500 0.187500 -5.500000 +v 4.812500 0.187500 -4.500000 +v 4.812500 0.187500 -3.500000 +v 3.187500 0.187500 -3.500000 +v 3.187500 0.187500 -4.500000 +v 3.187500 0.187500 -5.500000 +v 3.187500 0.187500 -6.500000 +v 3.250000 0.062500 -3.500000 +v 3.250000 0.062500 -4.500000 +v 3.250000 0.062500 -5.500000 +v 3.250000 0.062500 -6.500000 +v 3.250000 0.187500 -3.500000 +v 3.250000 0.187500 -4.500000 +v 3.250000 0.187500 -5.500000 +v 3.250000 0.187500 -6.500000 +v 4.750000 0.062500 -6.500000 +v 4.750000 0.062500 -5.500000 +v 4.750000 0.062500 -4.500000 +v 4.750000 0.062500 -3.500000 +v 4.750000 0.187500 -6.500000 +v 4.750000 0.187500 -5.500000 +v 4.750000 0.187500 -4.500000 +v 4.750000 0.187500 -3.500000 +v 2.346383 0.062500 0.486832 +v 2.621983 0.062500 0.634143 +v 2.287458 0.062500 0.597072 +v 2.563059 0.062500 0.744383 +v 2.350187 0.062500 0.347129 +v 2.173414 0.062500 0.677850 +v 3.937256 0.062500 1.620643 +v 4.114030 0.062500 1.289923 +v 2.350187 0.000000 0.347129 +v 4.114030 0.000000 1.289923 +v 2.173414 0.000000 0.677850 +v 3.937256 0.000000 1.620643 +v 3.724385 0.125000 1.223389 +v 3.999985 0.125000 1.370701 +v 3.665460 0.125000 1.333629 +v 3.941061 0.125000 1.480941 +v 3.724385 0.062500 1.223389 +v 3.999985 0.062500 1.370701 +v 3.665460 0.062500 1.333629 +v 3.941061 0.062500 1.480941 +v 2.346383 0.125000 0.486832 +v 2.621983 0.125000 0.634143 +v 2.287458 0.125000 0.597072 +v 2.563059 0.125000 0.744383 +v 2.787336 0.062500 -0.609743 +v 3.086380 0.062500 -0.519029 +v 2.751051 0.062500 -0.490125 +v 3.050095 0.062500 -0.399411 +v 2.763813 0.062500 -0.747503 +v 2.654956 0.062500 -0.388651 +v 4.568837 0.062500 0.191919 +v 4.677694 0.062500 -0.166934 +v 2.763813 0.000000 -0.747503 +v 4.677694 0.000000 -0.166934 +v 2.654956 0.000000 -0.388651 +v 4.568837 0.000000 0.191919 +v 4.282555 0.125000 -0.156173 +v 4.581599 0.125000 -0.065459 +v 4.246270 0.125000 -0.036556 +v 4.545314 0.125000 0.054159 +v 4.282555 0.062500 -0.156173 +v 4.581599 0.062500 -0.065459 +v 4.246270 0.062500 -0.036556 +v 4.545314 0.062500 0.054159 +v 2.787336 0.125000 -0.609743 +v 3.086380 0.125000 -0.519029 +v 2.751051 0.125000 -0.490125 +v 3.050095 0.125000 -0.399411 +v 3.005888 0.062500 -1.771274 +v 3.316883 0.062500 -1.740644 +v 2.993635 0.062500 -1.646876 +v 3.304631 0.062500 -1.616246 +v 2.955941 0.062500 -1.901798 +v 2.919184 0.062500 -1.528604 +v 4.909554 0.062500 -1.332570 +v 4.946310 0.062500 -1.705764 +v 2.955941 0.000000 -1.901798 +v 4.946310 0.000000 -1.705764 +v 2.919184 0.000000 -1.528604 +v 4.909554 0.000000 -1.332570 +v 4.560863 0.125000 -1.618122 +v 4.871859 0.125000 -1.587492 +v 4.548611 0.125000 -1.493724 +v 4.859607 0.125000 -1.463094 +v 4.560863 0.062500 -1.618122 +v 4.871859 0.062500 -1.587492 +v 4.548611 0.062500 -1.493724 +v 4.859607 0.062500 -1.463094 +v 3.005888 0.125000 -1.771274 +v 3.316883 0.125000 -1.740644 +v 2.993635 0.125000 -1.646876 +v 3.304631 0.125000 -1.616246 +v 0.904809 0.062500 2.462447 +v 1.146375 0.062500 2.660695 +v 0.825510 0.062500 2.559073 +v 1.067076 0.062500 2.757321 +v 0.935795 0.062500 2.326171 +v 0.697898 0.062500 2.616050 +v 2.243919 0.062500 3.884836 +v 2.481816 0.062500 3.594958 +v 0.935795 0.000000 2.326171 +v 2.481816 0.000000 3.594958 +v 0.697898 0.000000 2.616050 +v 2.243919 0.000000 3.884836 +v 2.112638 0.125000 3.453686 +v 2.354204 0.125000 3.651934 +v 2.033339 0.125000 3.550313 +v 2.274905 0.125000 3.748561 +v 2.112638 0.062500 3.453686 +v 2.354204 0.062500 3.651934 +v 2.033339 0.062500 3.550313 +v 2.274905 0.062500 3.748561 +v 0.904809 0.125000 2.462447 +v 1.146375 0.125000 2.660695 +v 0.825510 0.125000 2.559073 +v 1.067076 0.125000 2.757321 +v 5.000000 0.000000 -2.812500 +v 3.000000 0.000000 -2.812500 +v 5.000000 0.000000 -3.187500 +v 3.000000 0.000000 -3.187500 +v 5.000000 0.062500 -3.187500 +v 5.000000 0.062500 -2.812500 +v 3.000000 0.062500 -2.812500 +v 3.000000 0.062500 -3.187500 +v 3.375000 0.062500 -2.937500 +v 3.062500 0.062500 -2.937500 +v 3.375000 0.062500 -3.062500 +v 3.062500 0.062500 -3.062500 +v 3.375000 0.125000 -2.937500 +v 3.062500 0.125000 -2.937500 +v 3.375000 0.125000 -3.062500 +v 3.062500 0.125000 -3.062500 +v 4.937500 0.062500 -2.937500 +v 4.625000 0.062500 -2.937500 +v 4.937500 0.062500 -3.062500 +v 4.625000 0.062500 -3.062500 +v 4.937500 0.125000 -2.937500 +v 4.625000 0.125000 -2.937500 +v 4.937500 0.125000 -3.062500 +v 4.625000 0.125000 -3.062500 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.000000 +vt 0.218750 1.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.593750 0.125000 +vt 0.437500 0.062500 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.000000 +vt 0.218750 1.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 -0.000000 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.531250 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.406250 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.187500 0.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.406250 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.187500 0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7765 0.0000 -0.6301 +vn -0.8819 0.0000 -0.4714 +vn 0.7730 0.0000 0.6344 +vn -0.6344 0.0000 0.7730 +vn -0.9569 0.0000 -0.2903 +vn 0.9569 0.0000 0.2903 +vn 0.8819 0.0000 0.4714 +vn 0.9952 0.0000 0.0980 +vn -0.9952 0.0000 -0.0980 +vn 0.7765 0.0000 0.6301 +vn -0.7730 0.0000 -0.6344 +vn 0.6344 0.0000 -0.7730 +vn -0.4714 0.0000 0.8819 +vn 0.4714 0.0000 -0.8819 +vn -0.2903 0.0000 0.9569 +vn 0.2903 0.0000 -0.9569 +vn -0.0980 0.0000 0.9952 +vn 0.0980 0.0000 -0.9952 +s off +f 34/85/13 36/86/13 35/87/13 +f 39/88/14 38/89/14 37/90/14 +f 43/91/14 42/92/14 41/93/14 +f 47/94/14 46/95/14 45/96/14 +f 51/97/14 50/98/14 49/99/14 +f 55/100/14 54/101/14 53/102/14 +f 59/103/13 57/104/13 58/105/13 +f 63/106/13 61/107/13 62/108/13 +f 67/109/13 65/110/13 66/111/13 +f 71/112/13 69/113/13 70/114/13 +f 49/115/15 65/116/15 51/117/15 +f 42/118/16 58/119/16 41/120/16 +f 50/121/16 66/122/16 49/123/16 +f 44/124/17 59/125/17 42/92/17 +f 52/126/17 67/127/17 50/98/17 +f 43/91/18 60/128/18 44/129/18 +f 37/130/15 36/131/15 39/132/15 +f 51/97/18 68/133/18 52/134/18 +f 45/135/15 61/136/15 47/137/15 +f 38/138/16 35/139/16 37/140/16 +f 53/141/15 69/142/15 55/143/15 +f 46/144/16 62/145/16 45/146/16 +f 40/147/17 34/148/17 38/89/17 +f 54/149/16 70/150/16 53/151/16 +f 48/152/17 63/153/17 46/95/17 +f 39/88/18 33/154/18 40/155/18 +f 56/156/17 71/157/17 54/101/17 +f 47/94/18 64/158/18 48/159/18 +f 41/160/15 57/161/15 43/162/15 +f 55/100/18 72/163/18 56/164/18 +f 181/165/17 74/166/17 173/167/17 +f 177/168/15 75/169/15 169/170/15 +f 81/171/15 189/172/15 185/173/15 +f 78/174/16 81/175/16 74/176/16 +f 80/177/13 192/178/13 184/179/13 +f 74/166/14 185/180/14 173/167/14 +f 75/181/14 516/182/14 85/183/14 +f 85/183/17 197/184/17 193/185/17 +f 77/186/13 200/187/13 180/188/13 +f 75/181/14 193/185/14 169/189/14 +f 79/190/15 492/191/15 75/169/15 +f 73/192/16 88/193/16 77/194/16 +f 93/195/15 91/196/15 89/197/15 +f 95/198/18 92/199/18 91/200/18 +f 94/201/16 89/202/16 90/203/16 +f 96/204/17 90/205/17 92/206/17 +f 93/195/13 96/204/13 95/198/13 +f 101/207/15 99/208/15 97/209/15 +f 103/210/18 100/211/18 99/212/18 +f 102/213/16 97/214/16 98/215/16 +f 104/216/17 98/217/17 100/218/17 +f 101/207/13 104/216/13 103/210/13 +f 109/219/15 107/220/15 105/221/15 +f 111/222/18 108/223/18 107/224/18 +f 110/225/16 105/226/16 106/227/16 +f 112/228/17 106/229/17 108/230/17 +f 109/219/13 112/228/13 111/222/13 +f 117/231/15 115/232/15 113/233/15 +f 119/234/18 116/235/18 115/236/18 +f 118/237/16 113/238/16 114/239/16 +f 120/240/17 114/241/17 116/242/17 +f 117/231/13 120/240/13 119/234/13 +f 125/243/15 123/244/15 121/245/15 +f 127/246/18 124/247/18 123/248/18 +f 126/249/16 121/250/16 122/251/16 +f 128/252/17 122/253/17 124/254/17 +f 125/243/13 128/252/13 127/246/13 +f 133/255/15 131/256/15 129/257/15 +f 135/258/18 132/259/18 131/260/18 +f 134/261/16 129/262/16 130/263/16 +f 136/264/17 130/265/17 132/266/17 +f 133/255/13 136/264/13 135/258/13 +f 141/267/15 139/268/15 137/269/15 +f 143/270/18 140/271/18 139/272/18 +f 142/273/16 137/274/16 138/275/16 +f 144/276/17 138/277/17 140/278/17 +f 141/267/13 144/276/13 143/270/13 +f 149/279/15 147/280/15 145/281/15 +f 151/282/18 148/283/18 147/284/18 +f 150/285/16 145/286/16 146/287/16 +f 152/288/17 146/289/17 148/290/17 +f 149/279/13 152/288/13 151/282/13 +f 157/291/15 155/292/15 153/293/15 +f 159/294/18 156/295/18 155/296/18 +f 158/297/16 153/298/16 154/299/16 +f 160/300/17 154/301/17 156/302/17 +f 157/291/13 160/300/13 159/294/13 +f 165/303/15 163/304/15 161/305/15 +f 167/306/18 164/307/18 163/308/18 +f 166/309/16 161/310/16 162/311/16 +f 168/312/17 162/313/17 164/314/17 +f 165/303/13 168/312/13 167/306/13 +f 172/315/14 86/316/14 73/317/14 +f 171/318/14 196/319/14 172/320/14 +f 170/321/14 195/322/14 171/323/14 +f 169/324/14 194/325/14 170/326/14 +f 177/168/13 87/327/13 79/190/13 +f 178/328/13 197/329/13 177/330/13 +f 179/331/13 198/332/13 178/333/13 +f 180/334/13 199/335/13 179/336/13 +f 196/337/17 88/338/17 86/316/17 +f 195/339/17 200/340/17 196/319/17 +f 194/341/17 199/342/17 195/322/17 +f 193/343/17 198/344/17 194/325/17 +f 176/345/14 82/346/14 76/347/14 +f 175/348/14 188/349/14 176/350/14 +f 174/351/14 187/352/14 175/353/14 +f 173/354/14 186/355/14 174/356/14 +f 181/165/13 83/357/13 78/358/13 +f 182/359/13 189/360/13 181/361/13 +f 183/362/13 190/363/13 182/364/13 +f 184/365/13 191/366/13 183/367/13 +f 188/368/15 84/369/15 82/370/15 +f 187/371/15 192/372/15 188/373/15 +f 186/374/15 191/375/15 187/376/15 +f 185/377/15 190/378/15 186/379/15 +f 77/186/15 172/380/15 73/381/15 +f 180/334/15 171/382/15 172/383/15 +f 179/331/15 170/384/15 171/385/15 +f 178/328/15 169/386/15 170/387/15 +f 80/177/17 176/345/17 76/347/17 +f 184/365/17 175/348/17 176/350/17 +f 183/362/17 174/351/17 175/353/17 +f 182/359/17 173/354/17 174/356/17 +f 202/388/13 204/389/13 203/390/13 +f 207/391/14 206/392/14 205/393/14 +f 211/394/14 210/395/14 209/396/14 +f 215/397/14 214/398/14 213/399/14 +f 219/400/14 218/401/14 217/402/14 +f 223/403/14 222/404/14 221/405/14 +f 227/406/13 225/407/13 226/408/13 +f 231/409/13 229/410/13 230/411/13 +f 235/412/13 233/413/13 234/414/13 +f 239/415/13 237/416/13 238/417/13 +f 217/418/15 233/419/15 219/420/15 +f 210/421/16 226/422/16 209/423/16 +f 218/424/16 234/425/16 217/426/16 +f 212/427/17 227/428/17 210/395/17 +f 220/429/17 235/430/17 218/401/17 +f 211/394/18 228/431/18 212/432/18 +f 205/433/15 204/434/15 207/435/15 +f 219/400/18 236/436/18 220/437/18 +f 213/438/15 229/439/15 215/440/15 +f 206/441/16 203/442/16 205/443/16 +f 221/444/15 237/445/15 223/446/15 +f 214/447/16 230/448/16 213/449/16 +f 208/450/17 202/451/17 206/392/17 +f 222/452/16 238/453/16 221/454/16 +f 216/455/17 231/456/17 214/398/17 +f 207/391/18 201/457/18 208/458/18 +f 224/459/17 239/460/17 222/404/17 +f 215/397/18 232/461/18 216/462/18 +f 209/463/15 225/464/15 211/465/15 +f 223/403/18 240/466/18 224/467/18 +f 349/468/17 242/469/17 341/470/17 +f 345/471/15 243/472/15 337/473/15 +f 249/474/15 357/475/15 353/476/15 +f 520/477/13 79/190/13 87/327/13 +f 248/478/13 360/479/13 352/480/13 +f 242/469/14 353/481/14 341/470/14 +f 244/482/18 252/483/18 248/484/18 +f 253/485/17 365/486/17 361/487/17 +f 245/488/13 368/489/13 348/490/13 +f 243/491/14 361/487/14 337/492/14 +f 247/493/18 253/494/18 243/495/18 +f 85/183/17 520/477/17 87/327/17 +f 261/496/15 259/497/15 257/498/15 +f 263/499/18 260/500/18 259/501/18 +f 262/502/16 257/503/16 258/504/16 +f 264/505/17 258/506/17 260/507/17 +f 261/496/13 264/505/13 263/499/13 +f 269/508/15 267/509/15 265/510/15 +f 271/511/18 268/512/18 267/513/18 +f 270/514/16 265/515/16 266/516/16 +f 272/517/17 266/518/17 268/519/17 +f 269/508/13 272/517/13 271/511/13 +f 277/520/15 275/521/15 273/522/15 +f 279/523/18 276/524/18 275/525/18 +f 278/526/16 273/527/16 274/528/16 +f 280/529/17 274/530/17 276/531/17 +f 277/520/13 280/529/13 279/523/13 +f 285/532/15 283/533/15 281/534/15 +f 287/535/18 284/536/18 283/537/18 +f 286/538/16 281/539/16 282/540/16 +f 288/541/17 282/542/17 284/543/17 +f 285/532/13 288/541/13 287/535/13 +f 293/544/15 291/545/15 289/546/15 +f 295/547/18 292/548/18 291/549/18 +f 294/550/16 289/551/16 290/552/16 +f 296/553/17 290/554/17 292/555/17 +f 293/544/13 296/553/13 295/547/13 +f 301/556/15 299/557/15 297/558/15 +f 303/559/18 300/560/18 299/561/18 +f 302/562/16 297/563/16 298/564/16 +f 304/565/17 298/566/17 300/567/17 +f 301/556/13 304/565/13 303/559/13 +f 309/568/15 307/569/15 305/570/15 +f 311/571/18 308/572/18 307/573/18 +f 310/574/16 305/575/16 306/576/16 +f 312/577/17 306/578/17 308/579/17 +f 309/568/13 312/577/13 311/571/13 +f 317/580/15 315/581/15 313/582/15 +f 319/583/18 316/584/18 315/585/18 +f 318/586/16 313/587/16 314/588/16 +f 320/589/17 314/590/17 316/591/17 +f 317/580/13 320/589/13 319/583/13 +f 325/592/15 323/593/15 321/594/15 +f 327/595/18 324/596/18 323/597/18 +f 326/598/16 321/599/16 322/600/16 +f 328/601/17 322/602/17 324/603/17 +f 325/592/13 328/601/13 327/595/13 +f 333/604/15 331/605/15 329/606/15 +f 335/607/18 332/608/18 331/609/18 +f 334/610/16 329/611/16 330/612/16 +f 336/613/17 330/614/17 332/615/17 +f 333/604/13 336/613/13 335/607/13 +f 340/616/14 254/617/14 241/618/14 +f 339/619/14 364/620/14 340/621/14 +f 338/622/14 363/623/14 339/624/14 +f 337/625/14 362/626/14 338/627/14 +f 345/471/13 255/628/13 247/629/13 +f 346/630/13 365/631/13 345/632/13 +f 347/633/13 366/634/13 346/635/13 +f 348/636/13 367/637/13 347/638/13 +f 364/639/17 256/640/17 254/617/17 +f 363/641/17 368/642/17 364/620/17 +f 362/643/17 367/644/17 363/623/17 +f 361/645/17 366/646/17 362/626/17 +f 344/647/14 250/648/14 244/649/14 +f 343/650/14 356/651/14 344/652/14 +f 342/653/14 355/654/14 343/655/14 +f 341/656/14 354/657/14 342/658/14 +f 349/468/13 251/659/13 246/660/13 +f 350/661/13 357/662/13 349/663/13 +f 351/664/13 358/665/13 350/666/13 +f 352/667/13 359/668/13 351/669/13 +f 356/670/15 252/671/15 250/672/15 +f 355/673/15 360/674/15 356/675/15 +f 354/676/15 359/677/15 355/678/15 +f 353/679/15 358/680/15 354/681/15 +f 245/488/15 340/682/15 241/683/15 +f 348/636/15 339/684/15 340/685/15 +f 347/633/15 338/686/15 339/687/15 +f 346/630/15 337/688/15 338/689/15 +f 248/478/17 344/647/17 244/649/17 +f 352/667/17 343/650/17 344/652/17 +f 351/664/17 342/653/17 343/655/17 +f 350/661/17 341/656/17 342/658/17 +f 370/690/13 372/691/13 371/692/13 +f 375/693/14 374/694/14 373/695/14 +f 379/696/14 378/697/14 377/698/14 +f 383/699/14 382/700/14 381/701/14 +f 387/702/14 386/703/14 385/704/14 +f 391/705/14 390/706/14 389/707/14 +f 395/708/13 393/709/13 394/710/13 +f 399/711/13 397/712/13 398/713/13 +f 403/714/13 401/715/13 402/716/13 +f 407/717/13 405/718/13 406/719/13 +f 385/720/15 401/721/15 387/722/15 +f 378/723/16 394/724/16 377/725/16 +f 386/726/16 402/727/16 385/728/16 +f 380/729/17 395/730/17 378/697/17 +f 388/731/17 403/732/17 386/703/17 +f 379/696/18 396/733/18 380/734/18 +f 373/735/15 372/736/15 375/737/15 +f 387/702/18 404/738/18 388/739/18 +f 381/740/15 397/741/15 383/742/15 +f 374/743/16 371/744/16 373/745/16 +f 389/746/15 405/747/15 391/748/15 +f 382/749/16 398/750/16 381/751/16 +f 376/752/17 370/753/17 374/694/17 +f 390/754/16 406/755/16 389/756/16 +f 384/757/17 399/758/17 382/700/17 +f 375/693/18 369/759/18 376/760/18 +f 392/761/17 407/762/17 390/706/17 +f 383/699/18 400/763/18 384/764/18 +f 377/765/15 393/766/15 379/767/15 +f 391/705/18 408/768/18 392/769/18 +f 413/770/15 411/771/15 409/772/15 +f 415/773/18 412/774/18 411/775/18 +f 414/776/16 409/777/16 410/778/16 +f 416/779/17 410/780/17 412/781/17 +f 413/770/13 416/779/13 415/773/13 +f 421/782/15 419/783/15 417/784/15 +f 423/785/18 420/786/18 419/787/18 +f 422/788/16 417/789/16 418/790/16 +f 424/791/17 418/792/17 420/793/17 +f 421/782/13 424/791/13 423/785/13 +f 429/794/15 427/795/15 425/796/15 +f 431/797/18 428/798/18 427/799/18 +f 430/800/16 425/801/16 426/802/16 +f 432/803/17 426/804/17 428/805/17 +f 429/794/13 432/803/13 431/797/13 +f 437/806/15 435/807/15 433/808/15 +f 439/809/18 436/810/18 435/811/18 +f 438/812/16 433/813/16 434/814/16 +f 440/815/17 434/816/17 436/817/17 +f 437/806/13 440/815/13 439/809/13 +f 445/818/15 443/819/15 441/820/15 +f 447/821/18 444/822/18 443/823/18 +f 446/824/16 441/825/16 442/826/16 +f 448/827/17 442/828/17 444/829/17 +f 445/818/13 448/827/13 447/821/13 +f 453/830/15 451/831/15 449/832/15 +f 455/833/18 452/834/18 451/835/18 +f 454/836/16 449/837/16 450/838/16 +f 456/839/17 450/840/17 452/841/17 +f 453/830/13 456/839/13 455/833/13 +f 461/842/15 459/843/15 457/844/15 +f 463/845/18 460/846/18 459/847/18 +f 462/848/16 457/849/16 458/850/16 +f 464/851/17 458/852/17 460/853/17 +f 461/842/13 464/851/13 463/845/13 +f 469/854/15 467/855/15 465/856/15 +f 471/857/18 468/858/18 467/859/18 +f 470/860/16 465/861/16 466/862/16 +f 472/863/17 466/864/17 468/865/17 +f 469/854/13 472/863/13 471/857/13 +f 477/866/15 475/867/15 473/868/15 +f 479/869/18 476/870/18 475/871/18 +f 478/872/16 473/873/16 474/874/16 +f 480/875/17 474/876/17 476/877/17 +f 477/866/13 480/875/13 479/869/13 +f 485/878/15 483/879/15 481/880/15 +f 487/881/18 484/882/18 483/883/18 +f 486/884/16 481/885/16 482/886/16 +f 488/887/17 482/888/17 484/889/17 +f 485/878/13 488/887/13 487/881/13 +f 491/890/14 516/182/14 492/891/14 +f 490/892/14 515/893/14 491/894/14 +f 489/895/14 514/896/14 490/897/14 +f 498/898/13 517/899/13 497/900/13 +f 499/901/13 518/902/13 498/903/13 +f 500/904/13 519/905/13 499/906/13 +f 515/907/17 520/477/17 516/182/17 +f 514/908/17 519/909/17 515/893/17 +f 513/910/17 518/911/17 514/896/17 +f 495/912/14 508/913/14 496/914/14 +f 494/915/14 507/916/14 495/917/14 +f 493/918/14 506/919/14 494/920/14 +f 502/921/13 509/922/13 501/923/13 +f 503/924/13 510/925/13 502/926/13 +f 504/927/13 511/928/13 503/929/13 +f 507/930/15 512/931/15 508/932/15 +f 506/933/15 511/934/15 507/935/15 +f 505/936/15 510/937/15 506/938/15 +f 500/904/15 491/939/15 492/191/15 +f 499/901/15 490/940/15 491/941/15 +f 498/898/15 489/942/15 490/943/15 +f 504/927/17 495/912/17 496/914/17 +f 503/924/17 494/915/17 495/917/17 +f 502/921/17 493/918/17 494/920/17 +f 493/918/17 80/177/17 76/347/17 +f 80/177/13 509/922/13 84/369/13 +f 509/922/15 82/370/15 84/369/15 +f 505/944/14 76/347/14 82/346/14 +f 517/899/17 254/617/17 256/640/17 +f 245/488/13 517/899/13 256/640/13 +f 489/942/15 245/488/15 241/683/15 +f 513/910/14 241/618/14 254/617/14 +f 246/660/17 496/914/17 242/469/17 +f 512/931/13 246/660/13 251/659/13 +f 249/474/15 512/931/15 251/659/15 +f 242/469/14 508/913/14 249/945/14 +f 568/946/19 571/947/19 572/948/19 +f 539/949/19 605/950/19 540/951/19 +f 574/952/19 605/953/19 606/954/19 +f 548/955/20 539/956/20 540/957/20 +f 536/958/14 548/955/14 540/957/14 +f 531/959/14 530/960/14 532/961/14 +f 537/962/14 568/963/14 565/964/14 +f 528/965/21 532/966/21 530/967/21 +f 568/963/19 534/968/19 567/969/19 +f 524/970/22 615/971/22 523/972/22 +f 571/947/13 566/973/13 575/974/13 +f 567/969/13 538/975/13 566/976/13 +f 522/977/21 616/978/21 524/979/21 +f 549/980/23 542/981/23 541/982/23 +f 554/983/24 545/984/24 546/985/24 +f 534/986/13 546/987/13 538/988/13 +f 543/989/25 536/990/25 535/991/25 +f 539/956/13 543/989/13 535/991/13 +f 545/992/14 533/993/14 537/994/14 +f 546/987/25 537/995/25 538/988/25 +f 541/996/20 534/986/20 533/993/20 +f 561/997/14 549/998/14 553/999/14 +f 563/1000/13 551/1001/13 555/1002/13 +f 544/1003/14 556/1004/14 548/1005/14 +f 556/1004/23 547/1006/23 548/1005/23 +f 542/981/13 554/983/13 546/985/13 +f 551/1007/24 544/1008/24 543/1009/24 +f 555/1010/13 543/1009/13 547/1006/13 +f 553/1011/14 541/982/14 545/1012/14 +f 562/1013/26 553/1014/26 554/1015/26 +f 557/1016/27 550/1017/27 549/998/27 +f 552/1018/14 564/1019/14 556/1020/14 +f 564/1019/27 555/1002/27 556/1020/27 +f 550/1017/13 562/1013/13 554/1015/13 +f 559/1021/26 552/1022/26 551/1001/26 +f 535/1023/13 606/1024/13 539/949/13 +f 584/1025/25 575/1026/25 576/1027/25 +f 572/1028/14 584/1029/14 576/1030/14 +f 566/973/28 576/1031/28 575/974/28 +f 566/976/28 537/1032/28 565/1033/28 +f 526/1034/29 529/1035/29 531/1036/29 +f 565/1037/14 572/948/14 576/1038/14 +f 528/1039/13 526/1040/13 527/1041/13 +f 521/1042/30 614/1043/30 522/1044/30 +f 525/1045/30 530/960/30 529/1046/30 +f 527/1047/22 531/1048/22 532/1049/22 +f 585/1050/24 578/1051/24 577/1052/24 +f 590/1053/23 581/1054/23 582/1055/23 +f 570/1056/13 582/1057/13 574/1058/13 +f 579/1059/20 572/1028/20 571/1060/20 +f 583/1061/13 571/1060/13 575/1026/13 +f 581/1062/14 569/1063/14 573/1064/14 +f 582/1057/20 573/1064/20 574/1058/20 +f 577/1065/25 570/1056/25 569/1066/25 +f 589/1067/14 593/1068/14 585/1069/14 +f 599/1070/13 587/1071/13 591/1072/13 +f 580/1073/14 592/1074/14 584/1075/14 +f 592/1076/24 583/1077/24 584/1078/24 +f 578/1051/13 590/1053/13 582/1055/13 +f 587/1079/23 580/1073/23 579/1080/23 +f 591/1081/13 579/1080/13 583/1077/13 +f 589/1082/14 577/1083/14 581/1054/14 +f 598/1084/27 589/1067/27 590/1085/27 +f 593/1086/26 586/1087/26 585/1088/26 +f 588/1089/14 600/1090/14 592/1091/14 +f 600/1092/26 591/1072/26 592/1093/26 +f 594/1094/13 590/1085/13 586/1087/13 +f 595/1095/27 588/1089/27 587/1071/27 +f 607/1096/28 570/1097/28 608/1098/28 +f 602/1099/13 603/1100/13 604/1101/13 +f 608/1098/13 574/952/13 606/954/13 +f 611/1102/29 601/1103/29 609/1104/29 +f 612/1105/22 603/1100/22 611/1106/22 +f 609/1107/30 602/1099/30 610/1108/30 +f 536/1109/14 605/950/14 607/1110/14 +f 610/1111/21 604/1101/21 612/1112/21 +f 607/1113/14 573/1114/14 569/1115/14 +f 614/1043/13 615/971/13 616/978/13 +f 523/1116/29 613/1117/29 521/1118/29 +f 620/1119/13 618/1120/13 619/1121/13 +f 622/1122/14 623/1123/14 621/1124/14 +f 626/1125/14 627/1126/14 625/1127/14 +f 630/1128/14 631/1129/14 629/1130/14 +f 634/1131/14 635/1132/14 633/1133/14 +f 637/1134/13 639/1135/13 638/1136/13 +f 641/1137/13 643/1138/13 642/1139/13 +f 645/1140/13 647/1141/13 646/1142/13 +f 638/1143/16 626/1144/16 625/1145/16 +f 639/1146/15 628/1147/15 626/1148/15 +f 640/1149/18 627/1126/18 628/1150/18 +f 620/1151/17 621/1152/17 623/1153/17 +f 641/1154/17 629/1155/17 631/1156/17 +f 619/1157/16 622/1158/16 621/1159/16 +f 645/1160/17 633/1161/17 635/1162/17 +f 642/1163/16 630/1164/16 629/1165/16 +f 618/1166/15 624/1167/15 622/1168/15 +f 646/1169/16 634/1170/16 633/1171/16 +f 643/1172/15 632/1173/15 630/1174/15 +f 617/1175/18 623/1123/18 624/1176/18 +f 647/1177/15 636/1178/15 634/1179/15 +f 644/1180/18 631/1129/18 632/1181/18 +f 637/1182/17 625/1183/17 627/1184/17 +f 648/1185/18 635/1132/18 636/1186/18 +f 649/1187/17 729/1188/17 721/1189/17 +f 744/1190/13 652/1191/13 736/1192/13 +f 654/1193/18 650/1194/18 652/1195/18 +f 749/1196/15 655/1197/15 745/1198/15 +f 745/1198/14 649/1199/14 721/1200/14 +f 655/1201/18 651/1202/18 649/1203/18 +f 659/1204/17 661/1205/17 657/1206/17 +f 660/1207/18 663/1208/18 659/1209/18 +f 657/1210/16 662/1211/16 658/1212/16 +f 658/1213/15 664/1214/15 660/1215/15 +f 664/1214/13 661/1205/13 663/1208/13 +f 667/1216/17 669/1217/17 665/1218/17 +f 668/1219/18 671/1220/18 667/1221/18 +f 665/1222/16 670/1223/16 666/1224/16 +f 666/1225/15 672/1226/15 668/1227/15 +f 672/1226/13 669/1217/13 671/1220/13 +f 675/1228/17 677/1229/17 673/1230/17 +f 676/1231/18 679/1232/18 675/1233/18 +f 673/1234/16 678/1235/16 674/1236/16 +f 674/1237/15 680/1238/15 676/1239/15 +f 680/1238/13 677/1229/13 679/1232/13 +f 683/1240/17 685/1241/17 681/1242/17 +f 684/1243/18 687/1244/18 683/1245/18 +f 681/1246/16 686/1247/16 682/1248/16 +f 682/1249/15 688/1250/15 684/1251/15 +f 688/1250/13 685/1241/13 687/1244/13 +f 691/1252/17 693/1253/17 689/1254/17 +f 692/1255/18 695/1256/18 691/1257/18 +f 689/1258/16 694/1259/16 690/1260/16 +f 690/1261/15 696/1262/15 692/1263/15 +f 696/1262/13 693/1253/13 695/1256/13 +f 699/1264/17 701/1265/17 697/1266/17 +f 700/1267/18 703/1268/18 699/1269/18 +f 697/1270/16 702/1271/16 698/1272/16 +f 698/1273/15 704/1274/15 700/1275/15 +f 704/1274/13 701/1265/13 703/1268/13 +f 707/1276/17 709/1277/17 705/1278/17 +f 708/1279/18 711/1280/18 707/1281/18 +f 705/1282/16 710/1283/16 706/1284/16 +f 706/1285/15 712/1286/15 708/1287/15 +f 712/1286/13 709/1277/13 711/1280/13 +f 715/1288/17 717/1289/17 713/1290/17 +f 716/1291/18 719/1292/18 715/1293/18 +f 713/1294/16 718/1295/16 714/1296/16 +f 714/1297/15 720/1298/15 716/1299/15 +f 720/1298/13 717/1289/13 719/1292/13 +f 748/1300/14 723/1301/14 724/1302/14 +f 747/1303/14 722/1304/14 723/1305/14 +f 746/1306/14 721/1307/14 722/1308/14 +f 656/1309/13 729/1188/13 651/1310/13 +f 749/1311/13 730/1312/13 729/1313/13 +f 750/1314/13 731/1315/13 730/1316/13 +f 751/1317/13 732/1318/13 731/1319/13 +f 752/1320/15 747/1321/15 748/1300/15 +f 751/1322/15 746/1323/15 747/1303/15 +f 750/1324/15 745/1325/15 746/1306/15 +f 653/1326/14 728/1327/14 650/1328/14 +f 740/1329/14 727/1330/14 728/1331/14 +f 739/1332/14 726/1333/14 727/1334/14 +f 738/1335/14 725/1336/14 726/1337/14 +f 741/1338/13 734/1339/13 733/1340/13 +f 742/1341/13 735/1342/13 734/1343/13 +f 743/1344/13 736/1345/13 735/1346/13 +f 654/1347/17 740/1348/17 653/1349/17 +f 744/1350/17 739/1351/17 740/1352/17 +f 743/1353/17 738/1354/17 739/1355/17 +f 742/1356/17 737/1357/17 738/1358/17 +f 723/1359/17 732/1318/17 724/1360/17 +f 722/1361/17 731/1315/17 723/1362/17 +f 721/1363/17 730/1312/17 722/1364/17 +f 728/1327/15 652/1191/15 650/1328/15 +f 727/1330/15 736/1345/15 728/1331/15 +f 726/1333/15 735/1342/15 727/1334/15 +f 725/1336/15 734/1339/15 726/1337/15 +f 600/1365/17 741/1366/17 599/1367/17 +f 741/1366/13 595/1368/13 599/1367/13 +f 595/1368/15 725/1369/15 596/1370/15 +f 596/1370/14 737/1371/14 600/1372/14 +f 724/1373/17 594/1374/17 593/1375/17 +f 598/1376/13 732/1377/13 752/1378/13 +f 752/1378/15 597/1379/15 598/1376/15 +f 748/1380/14 593/1381/14 597/1379/14 +f 536/1382/28 608/1383/28 535/1023/28 +f 763/1384/14 762/1385/14 764/1386/14 +f 760/1387/25 764/1388/25 762/1389/25 +f 756/1390/31 775/1391/31 755/1392/31 +f 754/1393/25 776/1394/25 756/1395/25 +f 758/1396/20 761/1397/20 763/1398/20 +f 760/1399/13 758/1400/13 759/1401/13 +f 753/1402/32 774/1403/32 754/1404/32 +f 757/1405/32 762/1385/32 761/1406/32 +f 759/1407/31 763/1408/31 764/1409/31 +f 766/1410/13 767/1411/13 768/1412/13 +f 771/1413/20 765/1414/20 769/1415/20 +f 772/1416/31 767/1411/31 771/1417/31 +f 769/1418/32 766/1410/32 770/1419/32 +f 770/1420/25 768/1412/25 772/1421/25 +f 774/1403/13 775/1391/13 776/1394/13 +f 755/1422/20 773/1423/20 753/1424/20 +f 788/1425/14 785/1426/14 786/1427/14 +f 784/1428/24 788/1429/24 786/1430/24 +f 780/1431/33 799/1432/33 779/1433/33 +f 778/1434/24 800/1435/24 780/1436/24 +f 782/1437/23 785/1438/23 787/1439/23 +f 783/1440/13 781/1441/13 782/1442/13 +f 777/1443/34 798/1444/34 778/1445/34 +f 781/1441/34 786/1427/34 785/1426/34 +f 783/1446/33 787/1447/33 788/1448/33 +f 790/1449/13 791/1450/13 792/1451/13 +f 795/1452/23 789/1453/23 793/1454/23 +f 796/1455/33 791/1450/33 795/1456/33 +f 793/1457/34 790/1449/34 794/1458/34 +f 794/1459/24 792/1451/24 796/1460/24 +f 798/1444/13 799/1432/13 800/1435/13 +f 779/1461/23 797/1462/23 777/1463/23 +f 811/1464/14 810/1465/14 812/1466/14 +f 808/1467/26 812/1468/26 810/1469/26 +f 804/1470/35 823/1471/35 803/1472/35 +f 802/1473/26 824/1474/26 804/1475/26 +f 806/1476/27 809/1477/27 811/1478/27 +f 808/1479/13 806/1480/13 807/1481/13 +f 801/1482/36 822/1483/36 802/1484/36 +f 805/1485/36 810/1465/36 809/1486/36 +f 807/1487/35 811/1488/35 812/1489/35 +f 813/1490/13 816/1491/13 814/1492/13 +f 819/1493/27 813/1490/27 817/1494/27 +f 820/1495/35 815/1496/35 819/1497/35 +f 817/1498/36 814/1492/36 818/1499/36 +f 818/1500/26 816/1491/26 820/1501/26 +f 821/1502/13 824/1474/13 822/1483/13 +f 803/1503/27 821/1502/27 801/1504/27 +f 836/1505/14 833/1506/14 834/1507/14 +f 832/1508/21 836/1509/21 834/1510/21 +f 828/1511/22 847/1512/22 827/1513/22 +f 826/1514/21 848/1515/21 828/1516/21 +f 830/1517/29 833/1518/29 835/1519/29 +f 831/1520/13 829/1521/13 830/1522/13 +f 825/1523/30 846/1524/30 826/1525/30 +f 829/1521/30 834/1507/30 833/1506/30 +f 831/1526/22 835/1527/22 836/1528/22 +f 838/1529/13 839/1530/13 840/1531/13 +f 843/1532/29 837/1533/29 841/1534/29 +f 844/1535/22 839/1530/22 843/1536/22 +f 841/1537/30 838/1529/30 842/1538/30 +f 842/1539/21 840/1531/21 844/1540/21 +f 845/1541/13 848/1515/13 846/1524/13 +f 827/1542/29 845/1541/29 825/1543/29 +f 850/1544/14 851/1545/14 849/1546/14 +f 853/1547/13 855/1548/13 854/1549/13 +f 853/1550/17 849/1551/17 851/1552/17 +f 854/1553/16 850/1554/16 849/1555/16 +f 855/1556/15 852/1557/15 850/1558/15 +f 856/1559/18 851/1545/18 852/1560/18 +f 859/1561/17 861/1562/17 857/1563/17 +f 860/1564/18 863/1565/18 859/1566/18 +f 857/1567/16 862/1568/16 858/1569/16 +f 858/1570/15 864/1571/15 860/1572/15 +f 864/1571/13 861/1562/13 863/1565/13 +f 867/1573/17 869/1574/17 865/1575/17 +f 868/1576/18 871/1577/18 867/1578/18 +f 865/1579/16 870/1580/16 866/1581/16 +f 866/1582/15 872/1583/15 868/1584/15 +f 872/1583/13 869/1574/13 871/1577/13 +f 34/85/13 33/154/13 36/86/13 +f 39/88/14 40/155/14 38/89/14 +f 43/91/14 44/129/14 42/92/14 +f 47/94/14 48/159/14 46/95/14 +f 51/97/14 52/134/14 50/98/14 +f 55/100/14 56/164/14 54/101/14 +f 59/103/13 60/128/13 57/104/13 +f 63/106/13 64/158/13 61/107/13 +f 67/109/13 68/133/13 65/110/13 +f 71/112/13 72/163/13 69/113/13 +f 49/115/15 66/1585/15 65/116/15 +f 42/118/16 59/1586/16 58/119/16 +f 50/121/16 67/1587/16 66/122/16 +f 44/124/17 60/1588/17 59/125/17 +f 52/126/17 68/1589/17 67/127/17 +f 43/91/18 57/104/18 60/128/18 +f 37/130/15 35/1590/15 36/131/15 +f 51/97/18 65/110/18 68/133/18 +f 45/135/15 62/1591/15 61/136/15 +f 38/138/16 34/1592/16 35/139/16 +f 53/141/15 70/1593/15 69/142/15 +f 46/144/16 63/1594/16 62/145/16 +f 40/147/17 33/1595/17 34/148/17 +f 54/149/16 71/1596/16 70/150/16 +f 48/152/17 64/1597/17 63/153/17 +f 39/88/18 36/86/18 33/154/18 +f 56/156/17 72/1598/17 71/157/17 +f 47/94/18 61/107/18 64/158/18 +f 41/160/15 58/1599/15 57/161/15 +f 55/100/18 69/113/18 72/163/18 +f 181/165/17 78/358/17 74/166/17 +f 177/168/15 79/190/15 75/169/15 +f 81/171/15 83/357/15 189/172/15 +f 78/174/16 83/1600/16 81/175/16 +f 80/177/13 84/369/13 192/178/13 +f 74/166/14 81/1601/14 185/180/14 +f 75/181/14 492/891/14 516/182/14 +f 85/183/17 87/327/17 197/184/17 +f 77/186/13 88/338/13 200/187/13 +f 75/181/14 85/183/14 193/185/14 +f 79/190/15 500/904/15 492/191/15 +f 73/192/16 86/1602/16 88/193/16 +f 93/195/15 95/198/15 91/196/15 +f 95/198/18 96/204/18 92/199/18 +f 94/201/16 93/195/16 89/202/16 +f 96/204/17 94/201/17 90/205/17 +f 93/195/13 94/201/13 96/204/13 +f 101/207/15 103/210/15 99/208/15 +f 103/210/18 104/216/18 100/211/18 +f 102/213/16 101/207/16 97/214/16 +f 104/216/17 102/213/17 98/217/17 +f 101/207/13 102/213/13 104/216/13 +f 109/219/15 111/222/15 107/220/15 +f 111/222/18 112/228/18 108/223/18 +f 110/225/16 109/219/16 105/226/16 +f 112/228/17 110/225/17 106/229/17 +f 109/219/13 110/225/13 112/228/13 +f 117/231/15 119/234/15 115/232/15 +f 119/234/18 120/240/18 116/235/18 +f 118/237/16 117/231/16 113/238/16 +f 120/240/17 118/237/17 114/241/17 +f 117/231/13 118/237/13 120/240/13 +f 125/243/15 127/246/15 123/244/15 +f 127/246/18 128/252/18 124/247/18 +f 126/249/16 125/243/16 121/250/16 +f 128/252/17 126/249/17 122/253/17 +f 125/243/13 126/249/13 128/252/13 +f 133/255/15 135/258/15 131/256/15 +f 135/258/18 136/264/18 132/259/18 +f 134/261/16 133/255/16 129/262/16 +f 136/264/17 134/261/17 130/265/17 +f 133/255/13 134/261/13 136/264/13 +f 141/267/15 143/270/15 139/268/15 +f 143/270/18 144/276/18 140/271/18 +f 142/273/16 141/267/16 137/274/16 +f 144/276/17 142/273/17 138/277/17 +f 141/267/13 142/273/13 144/276/13 +f 149/279/15 151/282/15 147/280/15 +f 151/282/18 152/288/18 148/283/18 +f 150/285/16 149/279/16 145/286/16 +f 152/288/17 150/285/17 146/289/17 +f 149/279/13 150/285/13 152/288/13 +f 157/291/15 159/294/15 155/292/15 +f 159/294/18 160/300/18 156/295/18 +f 158/297/16 157/291/16 153/298/16 +f 160/300/17 158/297/17 154/301/17 +f 157/291/13 158/297/13 160/300/13 +f 165/303/15 167/306/15 163/304/15 +f 167/306/18 168/312/18 164/307/18 +f 166/309/16 165/303/16 161/310/16 +f 168/312/17 166/309/17 162/313/17 +f 165/303/13 166/309/13 168/312/13 +f 172/315/14 196/337/14 86/316/14 +f 171/318/14 195/339/14 196/319/14 +f 170/321/14 194/341/14 195/322/14 +f 169/324/14 193/343/14 194/325/14 +f 177/168/13 197/184/13 87/327/13 +f 178/328/13 198/344/13 197/329/13 +f 179/331/13 199/342/13 198/332/13 +f 180/334/13 200/340/13 199/335/13 +f 196/337/17 200/187/17 88/338/17 +f 195/339/17 199/335/17 200/340/17 +f 194/341/17 198/332/17 199/342/17 +f 193/343/17 197/329/17 198/344/17 +f 176/345/14 188/1603/14 82/346/14 +f 175/348/14 187/1604/14 188/349/14 +f 174/351/14 186/1605/14 187/352/14 +f 173/354/14 185/1606/14 186/355/14 +f 181/165/13 189/172/13 83/357/13 +f 182/359/13 190/378/13 189/360/13 +f 183/362/13 191/375/13 190/363/13 +f 184/365/13 192/372/13 191/366/13 +f 188/368/15 192/178/15 84/369/15 +f 187/371/15 191/366/15 192/372/15 +f 186/374/15 190/363/15 191/375/15 +f 185/377/15 189/360/15 190/378/15 +f 77/186/15 180/188/15 172/380/15 +f 180/334/15 179/336/15 171/382/15 +f 179/331/15 178/333/15 170/384/15 +f 178/328/15 177/330/15 169/386/15 +f 80/177/17 184/179/17 176/345/17 +f 184/365/17 183/367/17 175/348/17 +f 183/362/17 182/364/17 174/351/17 +f 182/359/17 181/361/17 173/354/17 +f 202/388/13 201/457/13 204/389/13 +f 207/391/14 208/458/14 206/392/14 +f 211/394/14 212/432/14 210/395/14 +f 215/397/14 216/462/14 214/398/14 +f 219/400/14 220/437/14 218/401/14 +f 223/403/14 224/467/14 222/404/14 +f 227/406/13 228/431/13 225/407/13 +f 231/409/13 232/461/13 229/410/13 +f 235/412/13 236/436/13 233/413/13 +f 239/415/13 240/466/13 237/416/13 +f 217/418/15 234/1607/15 233/419/15 +f 210/421/16 227/1608/16 226/422/16 +f 218/424/16 235/1609/16 234/425/16 +f 212/427/17 228/1610/17 227/428/17 +f 220/429/17 236/1611/17 235/430/17 +f 211/394/18 225/407/18 228/431/18 +f 205/433/15 203/1612/15 204/434/15 +f 219/400/18 233/413/18 236/436/18 +f 213/438/15 230/1613/15 229/439/15 +f 206/441/16 202/1614/16 203/442/16 +f 221/444/15 238/1615/15 237/445/15 +f 214/447/16 231/1616/16 230/448/16 +f 208/450/17 201/1617/17 202/451/17 +f 222/452/16 239/1618/16 238/453/16 +f 216/455/17 232/1619/17 231/456/17 +f 207/391/18 204/389/18 201/457/18 +f 224/459/17 240/1620/17 239/460/17 +f 215/397/18 229/410/18 232/461/18 +f 209/463/15 226/1621/15 225/464/15 +f 223/403/18 237/416/18 240/466/18 +f 349/468/17 246/660/17 242/469/17 +f 345/471/15 247/629/15 243/472/15 +f 249/474/15 251/659/15 357/475/15 +f 520/477/13 500/904/13 79/190/13 +f 248/478/13 252/671/13 360/479/13 +f 242/469/14 249/945/14 353/481/14 +f 244/482/18 250/1622/18 252/483/18 +f 253/485/17 255/628/17 365/486/17 +f 245/488/13 256/640/13 368/489/13 +f 243/491/14 253/485/14 361/487/14 +f 247/493/18 255/1623/18 253/494/18 +f 85/183/17 516/182/17 520/477/17 +f 261/496/15 263/499/15 259/497/15 +f 263/499/18 264/505/18 260/500/18 +f 262/502/16 261/496/16 257/503/16 +f 264/505/17 262/502/17 258/506/17 +f 261/496/13 262/502/13 264/505/13 +f 269/508/15 271/511/15 267/509/15 +f 271/511/18 272/517/18 268/512/18 +f 270/514/16 269/508/16 265/515/16 +f 272/517/17 270/514/17 266/518/17 +f 269/508/13 270/514/13 272/517/13 +f 277/520/15 279/523/15 275/521/15 +f 279/523/18 280/529/18 276/524/18 +f 278/526/16 277/520/16 273/527/16 +f 280/529/17 278/526/17 274/530/17 +f 277/520/13 278/526/13 280/529/13 +f 285/532/15 287/535/15 283/533/15 +f 287/535/18 288/541/18 284/536/18 +f 286/538/16 285/532/16 281/539/16 +f 288/541/17 286/538/17 282/542/17 +f 285/532/13 286/538/13 288/541/13 +f 293/544/15 295/547/15 291/545/15 +f 295/547/18 296/553/18 292/548/18 +f 294/550/16 293/544/16 289/551/16 +f 296/553/17 294/550/17 290/554/17 +f 293/544/13 294/550/13 296/553/13 +f 301/556/15 303/559/15 299/557/15 +f 303/559/18 304/565/18 300/560/18 +f 302/562/16 301/556/16 297/563/16 +f 304/565/17 302/562/17 298/566/17 +f 301/556/13 302/562/13 304/565/13 +f 309/568/15 311/571/15 307/569/15 +f 311/571/18 312/577/18 308/572/18 +f 310/574/16 309/568/16 305/575/16 +f 312/577/17 310/574/17 306/578/17 +f 309/568/13 310/574/13 312/577/13 +f 317/580/15 319/583/15 315/581/15 +f 319/583/18 320/589/18 316/584/18 +f 318/586/16 317/580/16 313/587/16 +f 320/589/17 318/586/17 314/590/17 +f 317/580/13 318/586/13 320/589/13 +f 325/592/15 327/595/15 323/593/15 +f 327/595/18 328/601/18 324/596/18 +f 326/598/16 325/592/16 321/599/16 +f 328/601/17 326/598/17 322/602/17 +f 325/592/13 326/598/13 328/601/13 +f 333/604/15 335/607/15 331/605/15 +f 335/607/18 336/613/18 332/608/18 +f 334/610/16 333/604/16 329/611/16 +f 336/613/17 334/610/17 330/614/17 +f 333/604/13 334/610/13 336/613/13 +f 340/616/14 364/639/14 254/617/14 +f 339/619/14 363/641/14 364/620/14 +f 338/622/14 362/643/14 363/623/14 +f 337/625/14 361/645/14 362/626/14 +f 345/471/13 365/486/13 255/628/13 +f 346/630/13 366/646/13 365/631/13 +f 347/633/13 367/644/13 366/634/13 +f 348/636/13 368/642/13 367/637/13 +f 364/639/17 368/489/17 256/640/17 +f 363/641/17 367/637/17 368/642/17 +f 362/643/17 366/634/17 367/644/17 +f 361/645/17 365/631/17 366/646/17 +f 344/647/14 356/1624/14 250/648/14 +f 343/650/14 355/1625/14 356/651/14 +f 342/653/14 354/1626/14 355/654/14 +f 341/656/14 353/1627/14 354/657/14 +f 349/468/13 357/475/13 251/659/13 +f 350/661/13 358/680/13 357/662/13 +f 351/664/13 359/677/13 358/665/13 +f 352/667/13 360/674/13 359/668/13 +f 356/670/15 360/479/15 252/671/15 +f 355/673/15 359/668/15 360/674/15 +f 354/676/15 358/665/15 359/677/15 +f 353/679/15 357/662/15 358/680/15 +f 245/488/15 348/490/15 340/682/15 +f 348/636/15 347/638/15 339/684/15 +f 347/633/15 346/635/15 338/686/15 +f 346/630/15 345/632/15 337/688/15 +f 248/478/17 352/480/17 344/647/17 +f 352/667/17 351/669/17 343/650/17 +f 351/664/17 350/666/17 342/653/17 +f 350/661/17 349/663/17 341/656/17 +f 370/690/13 369/759/13 372/691/13 +f 375/693/14 376/760/14 374/694/14 +f 379/696/14 380/734/14 378/697/14 +f 383/699/14 384/764/14 382/700/14 +f 387/702/14 388/739/14 386/703/14 +f 391/705/14 392/769/14 390/706/14 +f 395/708/13 396/733/13 393/709/13 +f 399/711/13 400/763/13 397/712/13 +f 403/714/13 404/738/13 401/715/13 +f 407/717/13 408/768/13 405/718/13 +f 385/720/15 402/1628/15 401/721/15 +f 378/723/16 395/1629/16 394/724/16 +f 386/726/16 403/1630/16 402/727/16 +f 380/729/17 396/1631/17 395/730/17 +f 388/731/17 404/1632/17 403/732/17 +f 379/696/18 393/709/18 396/733/18 +f 373/735/15 371/1633/15 372/736/15 +f 387/702/18 401/715/18 404/738/18 +f 381/740/15 398/1634/15 397/741/15 +f 374/743/16 370/1635/16 371/744/16 +f 389/746/15 406/1636/15 405/747/15 +f 382/749/16 399/1637/16 398/750/16 +f 376/752/17 369/1638/17 370/753/17 +f 390/754/16 407/1639/16 406/755/16 +f 384/757/17 400/1640/17 399/758/17 +f 375/693/18 372/691/18 369/759/18 +f 392/761/17 408/1641/17 407/762/17 +f 383/699/18 397/712/18 400/763/18 +f 377/765/15 394/1642/15 393/766/15 +f 391/705/18 405/718/18 408/768/18 +f 413/770/15 415/773/15 411/771/15 +f 415/773/18 416/779/18 412/774/18 +f 414/776/16 413/770/16 409/777/16 +f 416/779/17 414/776/17 410/780/17 +f 413/770/13 414/776/13 416/779/13 +f 421/782/15 423/785/15 419/783/15 +f 423/785/18 424/791/18 420/786/18 +f 422/788/16 421/782/16 417/789/16 +f 424/791/17 422/788/17 418/792/17 +f 421/782/13 422/788/13 424/791/13 +f 429/794/15 431/797/15 427/795/15 +f 431/797/18 432/803/18 428/798/18 +f 430/800/16 429/794/16 425/801/16 +f 432/803/17 430/800/17 426/804/17 +f 429/794/13 430/800/13 432/803/13 +f 437/806/15 439/809/15 435/807/15 +f 439/809/18 440/815/18 436/810/18 +f 438/812/16 437/806/16 433/813/16 +f 440/815/17 438/812/17 434/816/17 +f 437/806/13 438/812/13 440/815/13 +f 445/818/15 447/821/15 443/819/15 +f 447/821/18 448/827/18 444/822/18 +f 446/824/16 445/818/16 441/825/16 +f 448/827/17 446/824/17 442/828/17 +f 445/818/13 446/824/13 448/827/13 +f 453/830/15 455/833/15 451/831/15 +f 455/833/18 456/839/18 452/834/18 +f 454/836/16 453/830/16 449/837/16 +f 456/839/17 454/836/17 450/840/17 +f 453/830/13 454/836/13 456/839/13 +f 461/842/15 463/845/15 459/843/15 +f 463/845/18 464/851/18 460/846/18 +f 462/848/16 461/842/16 457/849/16 +f 464/851/17 462/848/17 458/852/17 +f 461/842/13 462/848/13 464/851/13 +f 469/854/15 471/857/15 467/855/15 +f 471/857/18 472/863/18 468/858/18 +f 470/860/16 469/854/16 465/861/16 +f 472/863/17 470/860/17 466/864/17 +f 469/854/13 470/860/13 472/863/13 +f 477/866/15 479/869/15 475/867/15 +f 479/869/18 480/875/18 476/870/18 +f 478/872/16 477/866/16 473/873/16 +f 480/875/17 478/872/17 474/876/17 +f 477/866/13 478/872/13 480/875/13 +f 485/878/15 487/881/15 483/879/15 +f 487/881/18 488/887/18 484/882/18 +f 486/884/16 485/878/16 481/885/16 +f 488/887/17 486/884/17 482/888/17 +f 485/878/13 486/884/13 488/887/13 +f 491/890/14 515/907/14 516/182/14 +f 490/892/14 514/908/14 515/893/14 +f 489/895/14 513/910/14 514/896/14 +f 498/898/13 518/911/13 517/899/13 +f 499/901/13 519/909/13 518/902/13 +f 500/904/13 520/477/13 519/905/13 +f 515/907/17 519/905/17 520/477/17 +f 514/908/17 518/902/17 519/909/17 +f 513/910/17 517/899/17 518/911/17 +f 495/912/14 507/1643/14 508/913/14 +f 494/915/14 506/1644/14 507/916/14 +f 493/918/14 505/944/14 506/919/14 +f 502/921/13 510/937/13 509/922/13 +f 503/924/13 511/934/13 510/925/13 +f 504/927/13 512/931/13 511/928/13 +f 507/930/15 511/928/15 512/931/15 +f 506/933/15 510/925/15 511/934/15 +f 505/936/15 509/922/15 510/937/15 +f 500/904/15 499/906/15 491/939/15 +f 499/901/15 498/903/15 490/940/15 +f 498/898/15 497/900/15 489/942/15 +f 504/927/17 503/929/17 495/912/17 +f 503/924/17 502/926/17 494/915/17 +f 502/921/17 501/923/17 493/918/17 +f 493/918/17 501/923/17 80/177/17 +f 80/177/13 501/923/13 509/922/13 +f 509/922/15 505/936/15 82/370/15 +f 505/944/14 493/918/14 76/347/14 +f 517/899/17 513/910/17 254/617/17 +f 245/488/13 497/900/13 517/899/13 +f 489/942/15 497/900/15 245/488/15 +f 513/910/14 489/895/14 241/618/14 +f 246/660/17 504/927/17 496/914/17 +f 512/931/13 504/927/13 246/660/13 +f 249/474/15 508/932/15 512/931/15 +f 242/469/14 496/914/14 508/913/14 +f 568/946/19 567/1645/19 571/947/19 +f 539/949/19 606/1024/19 605/950/19 +f 574/952/19 573/1114/19 605/953/19 +f 548/955/20 547/1646/20 539/956/20 +f 536/958/14 544/1647/14 548/955/14 +f 531/959/14 529/1046/14 530/960/14 +f 537/962/14 533/1648/14 568/963/14 +f 528/965/21 527/1649/21 532/966/21 +f 568/963/19 533/1648/19 534/968/19 +f 524/970/22 616/978/22 615/971/22 +f 571/947/13 567/1645/13 566/973/13 +f 567/969/13 534/968/13 538/975/13 +f 522/977/21 614/1043/21 616/978/21 +f 549/980/23 550/1650/23 542/981/23 +f 554/983/24 553/1651/24 545/984/24 +f 534/986/13 542/1652/13 546/987/13 +f 543/989/25 544/1653/25 536/990/25 +f 539/956/13 547/1646/13 543/989/13 +f 545/992/14 541/996/14 533/993/14 +f 546/987/25 545/1654/25 537/995/25 +f 541/996/20 542/1652/20 534/986/20 +f 561/997/14 557/1016/14 549/998/14 +f 563/1000/13 559/1021/13 551/1001/13 +f 544/1003/14 552/1655/14 556/1004/14 +f 556/1004/23 555/1010/23 547/1006/23 +f 542/981/13 550/1650/13 554/983/13 +f 551/1007/24 552/1656/24 544/1008/24 +f 555/1010/13 551/1007/13 543/1009/13 +f 553/1011/14 549/980/14 541/982/14 +f 562/1013/26 561/1657/26 553/1014/26 +f 557/1016/27 558/1658/27 550/1017/27 +f 552/1018/14 560/1659/14 564/1019/14 +f 564/1019/27 563/1000/27 555/1002/27 +f 550/1017/13 558/1658/13 562/1013/13 +f 559/1021/26 560/1660/26 552/1022/26 +f 535/1023/13 608/1383/13 606/1024/13 +f 584/1025/25 583/1061/25 575/1026/25 +f 572/1028/14 580/1661/14 584/1029/14 +f 566/973/28 565/1662/28 576/1031/28 +f 566/976/28 538/975/28 537/1032/28 +f 526/1034/29 525/1663/29 529/1035/29 +f 565/1037/14 568/946/14 572/948/14 +f 528/1039/13 525/1045/13 526/1040/13 +f 521/1042/30 613/1117/30 614/1043/30 +f 525/1045/30 528/1039/30 530/960/30 +f 527/1047/22 526/1664/22 531/1048/22 +f 585/1050/24 586/1665/24 578/1051/24 +f 590/1053/23 589/1082/23 581/1054/23 +f 570/1056/13 578/1666/13 582/1057/13 +f 579/1059/20 580/1661/20 572/1028/20 +f 583/1061/13 579/1059/13 571/1060/13 +f 581/1062/14 577/1667/14 569/1063/14 +f 582/1057/20 581/1062/20 573/1064/20 +f 577/1065/25 578/1666/25 570/1056/25 +f 589/1067/14 597/1668/14 593/1068/14 +f 599/1070/13 595/1095/13 587/1071/13 +f 580/1073/14 588/1669/14 592/1074/14 +f 592/1076/24 591/1081/24 583/1077/24 +f 578/1051/13 586/1665/13 590/1053/13 +f 587/1079/23 588/1669/23 580/1073/23 +f 591/1081/13 587/1079/13 579/1080/13 +f 589/1082/14 585/1670/14 577/1083/14 +f 598/1084/27 597/1668/27 589/1067/27 +f 593/1086/26 594/1094/26 586/1087/26 +f 588/1089/14 596/1671/14 600/1090/14 +f 600/1092/26 599/1070/26 591/1072/26 +f 594/1094/13 598/1084/13 590/1085/13 +f 595/1095/27 596/1671/27 588/1089/27 +f 607/1096/28 569/1672/28 570/1097/28 +f 602/1099/13 601/1103/13 603/1100/13 +f 608/1098/13 570/1097/13 574/952/13 +f 611/1102/29 603/1100/29 601/1103/29 +f 612/1105/22 604/1101/22 603/1100/22 +f 609/1107/30 601/1103/30 602/1099/30 +f 536/1109/14 540/951/14 605/950/14 +f 610/1111/21 602/1099/21 604/1101/21 +f 607/1113/14 605/953/14 573/1114/14 +f 614/1043/13 613/1117/13 615/971/13 +f 523/1116/29 615/971/29 613/1117/29 +f 620/1119/13 617/1175/13 618/1120/13 +f 622/1122/14 624/1176/14 623/1123/14 +f 626/1125/14 628/1150/14 627/1126/14 +f 630/1128/14 632/1181/14 631/1129/14 +f 634/1131/14 636/1186/14 635/1132/14 +f 637/1134/13 640/1149/13 639/1135/13 +f 641/1137/13 644/1180/13 643/1138/13 +f 645/1140/13 648/1185/13 647/1141/13 +f 638/1143/16 639/1673/16 626/1144/16 +f 639/1146/15 640/1674/15 628/1147/15 +f 640/1149/18 637/1134/18 627/1126/18 +f 620/1151/17 619/1675/17 621/1152/17 +f 641/1154/17 642/1676/17 629/1155/17 +f 619/1157/16 618/1677/16 622/1158/16 +f 645/1160/17 646/1678/17 633/1161/17 +f 642/1163/16 643/1679/16 630/1164/16 +f 618/1166/15 617/1680/15 624/1167/15 +f 646/1169/16 647/1681/16 634/1170/16 +f 643/1172/15 644/1682/15 632/1173/15 +f 617/1175/18 620/1119/18 623/1123/18 +f 647/1177/15 648/1683/15 636/1178/15 +f 644/1180/18 641/1137/18 631/1129/18 +f 637/1182/17 638/1684/17 625/1183/17 +f 648/1185/18 645/1140/18 635/1132/18 +f 649/1187/17 651/1310/17 729/1188/17 +f 744/1190/13 654/1347/13 652/1191/13 +f 654/1193/18 653/1685/18 650/1194/18 +f 749/1196/15 656/1309/15 655/1197/15 +f 745/1198/14 655/1197/14 649/1199/14 +f 655/1201/18 656/1686/18 651/1202/18 +f 659/1204/17 663/1208/17 661/1205/17 +f 660/1207/18 664/1214/18 663/1208/18 +f 657/1210/16 661/1205/16 662/1211/16 +f 658/1213/15 662/1211/15 664/1214/15 +f 664/1214/13 662/1211/13 661/1205/13 +f 667/1216/17 671/1220/17 669/1217/17 +f 668/1219/18 672/1226/18 671/1220/18 +f 665/1222/16 669/1217/16 670/1223/16 +f 666/1225/15 670/1223/15 672/1226/15 +f 672/1226/13 670/1223/13 669/1217/13 +f 675/1228/17 679/1232/17 677/1229/17 +f 676/1231/18 680/1238/18 679/1232/18 +f 673/1234/16 677/1229/16 678/1235/16 +f 674/1237/15 678/1235/15 680/1238/15 +f 680/1238/13 678/1235/13 677/1229/13 +f 683/1240/17 687/1244/17 685/1241/17 +f 684/1243/18 688/1250/18 687/1244/18 +f 681/1246/16 685/1241/16 686/1247/16 +f 682/1249/15 686/1247/15 688/1250/15 +f 688/1250/13 686/1247/13 685/1241/13 +f 691/1252/17 695/1256/17 693/1253/17 +f 692/1255/18 696/1262/18 695/1256/18 +f 689/1258/16 693/1253/16 694/1259/16 +f 690/1261/15 694/1259/15 696/1262/15 +f 696/1262/13 694/1259/13 693/1253/13 +f 699/1264/17 703/1268/17 701/1265/17 +f 700/1267/18 704/1274/18 703/1268/18 +f 697/1270/16 701/1265/16 702/1271/16 +f 698/1273/15 702/1271/15 704/1274/15 +f 704/1274/13 702/1271/13 701/1265/13 +f 707/1276/17 711/1280/17 709/1277/17 +f 708/1279/18 712/1286/18 711/1280/18 +f 705/1282/16 709/1277/16 710/1283/16 +f 706/1285/15 710/1283/15 712/1286/15 +f 712/1286/13 710/1283/13 709/1277/13 +f 715/1288/17 719/1292/17 717/1289/17 +f 716/1291/18 720/1298/18 719/1292/18 +f 713/1294/16 717/1289/16 718/1295/16 +f 714/1297/15 718/1295/15 720/1298/15 +f 720/1298/13 718/1295/13 717/1289/13 +f 748/1300/14 747/1321/14 723/1301/14 +f 747/1303/14 746/1323/14 722/1304/14 +f 746/1306/14 745/1325/14 721/1307/14 +f 656/1309/13 749/1196/13 729/1188/13 +f 749/1311/13 750/1324/13 730/1312/13 +f 750/1314/13 751/1322/13 731/1315/13 +f 751/1317/13 752/1320/13 732/1318/13 +f 752/1320/15 751/1317/15 747/1321/15 +f 751/1322/15 750/1314/15 746/1323/15 +f 750/1324/15 749/1311/15 745/1325/15 +f 653/1326/14 740/1687/14 728/1327/14 +f 740/1329/14 739/1688/14 727/1330/14 +f 739/1332/14 738/1689/14 726/1333/14 +f 738/1335/14 737/1690/14 725/1336/14 +f 741/1338/13 742/1356/13 734/1339/13 +f 742/1341/13 743/1353/13 735/1342/13 +f 743/1344/13 744/1350/13 736/1345/13 +f 654/1347/17 744/1190/17 740/1348/17 +f 744/1350/17 743/1344/17 739/1351/17 +f 743/1353/17 742/1341/17 738/1354/17 +f 742/1356/17 741/1338/17 737/1357/17 +f 723/1359/17 731/1319/17 732/1318/17 +f 722/1361/17 730/1316/17 731/1315/17 +f 721/1363/17 729/1313/17 730/1312/17 +f 728/1327/15 736/1192/15 652/1191/15 +f 727/1330/15 735/1346/15 736/1345/15 +f 726/1333/15 734/1343/15 735/1342/15 +f 725/1336/15 733/1340/15 734/1339/15 +f 600/1365/17 737/1691/17 741/1366/17 +f 741/1366/13 733/1692/13 595/1368/13 +f 595/1368/15 733/1692/15 725/1369/15 +f 596/1370/14 725/1369/14 737/1371/14 +f 724/1373/17 732/1377/17 594/1374/17 +f 598/1376/13 594/1374/13 732/1377/13 +f 752/1378/15 748/1380/15 597/1379/15 +f 748/1380/14 724/1693/14 593/1381/14 +f 536/1382/28 607/1694/28 608/1383/28 +f 763/1384/14 761/1406/14 762/1385/14 +f 760/1387/25 759/1695/25 764/1388/25 +f 756/1390/31 776/1394/31 775/1391/31 +f 754/1393/25 774/1403/25 776/1394/25 +f 758/1396/20 757/1696/20 761/1397/20 +f 760/1399/13 757/1405/13 758/1400/13 +f 753/1402/32 773/1423/32 774/1403/32 +f 757/1405/32 760/1399/32 762/1385/32 +f 759/1407/31 758/1697/31 763/1408/31 +f 766/1410/13 765/1414/13 767/1411/13 +f 771/1413/20 767/1411/20 765/1414/20 +f 772/1416/31 768/1412/31 767/1411/31 +f 769/1418/32 765/1414/32 766/1410/32 +f 770/1420/25 766/1410/25 768/1412/25 +f 774/1403/13 773/1423/13 775/1391/13 +f 755/1422/20 775/1391/20 773/1423/20 +f 788/1425/14 787/1698/14 785/1426/14 +f 784/1428/24 783/1699/24 788/1429/24 +f 780/1431/33 800/1435/33 799/1432/33 +f 778/1434/24 798/1444/24 800/1435/24 +f 782/1437/23 781/1700/23 785/1438/23 +f 783/1440/13 784/1701/13 781/1441/13 +f 777/1443/34 797/1462/34 798/1444/34 +f 781/1441/34 784/1701/34 786/1427/34 +f 783/1446/33 782/1702/33 787/1447/33 +f 790/1449/13 789/1453/13 791/1450/13 +f 795/1452/23 791/1450/23 789/1453/23 +f 796/1455/33 792/1451/33 791/1450/33 +f 793/1457/34 789/1453/34 790/1449/34 +f 794/1459/24 790/1449/24 792/1451/24 +f 798/1444/13 797/1462/13 799/1432/13 +f 779/1461/23 799/1432/23 797/1462/23 +f 811/1464/14 809/1486/14 810/1465/14 +f 808/1467/26 807/1703/26 812/1468/26 +f 804/1470/35 824/1474/35 823/1471/35 +f 802/1473/26 822/1483/26 824/1474/26 +f 806/1476/27 805/1704/27 809/1477/27 +f 808/1479/13 805/1485/13 806/1480/13 +f 801/1482/36 821/1502/36 822/1483/36 +f 805/1485/36 808/1479/36 810/1465/36 +f 807/1487/35 806/1705/35 811/1488/35 +f 813/1490/13 815/1496/13 816/1491/13 +f 819/1493/27 815/1496/27 813/1490/27 +f 820/1495/35 816/1491/35 815/1496/35 +f 817/1498/36 813/1490/36 814/1492/36 +f 818/1500/26 814/1492/26 816/1491/26 +f 821/1502/13 823/1471/13 824/1474/13 +f 803/1503/27 823/1471/27 821/1502/27 +f 836/1505/14 835/1706/14 833/1506/14 +f 832/1508/21 831/1707/21 836/1509/21 +f 828/1511/22 848/1515/22 847/1512/22 +f 826/1514/21 846/1524/21 848/1515/21 +f 830/1517/29 829/1708/29 833/1518/29 +f 831/1520/13 832/1709/13 829/1521/13 +f 825/1523/30 845/1541/30 846/1524/30 +f 829/1521/30 832/1709/30 834/1507/30 +f 831/1526/22 830/1710/22 835/1527/22 +f 838/1529/13 837/1533/13 839/1530/13 +f 843/1532/29 839/1530/29 837/1533/29 +f 844/1535/22 840/1531/22 839/1530/22 +f 841/1537/30 837/1533/30 838/1529/30 +f 842/1539/21 838/1529/21 840/1531/21 +f 845/1541/13 847/1512/13 848/1515/13 +f 827/1542/29 847/1512/29 845/1541/29 +f 850/1544/14 852/1560/14 851/1545/14 +f 853/1547/13 856/1559/13 855/1548/13 +f 853/1550/17 854/1711/17 849/1551/17 +f 854/1553/16 855/1712/16 850/1554/16 +f 855/1556/15 856/1713/15 852/1557/15 +f 856/1559/18 853/1547/18 851/1545/18 +f 859/1561/17 863/1565/17 861/1562/17 +f 860/1564/18 864/1571/18 863/1565/18 +f 857/1567/16 861/1562/16 862/1568/16 +f 858/1570/15 862/1568/15 864/1571/15 +f 864/1571/13 862/1568/13 861/1562/13 +f 867/1573/17 871/1577/17 869/1574/17 +f 868/1576/18 872/1583/18 871/1577/18 +f 865/1579/16 869/1574/16 870/1580/16 +f 866/1582/15 870/1580/15 872/1583/15 +f 872/1583/13 870/1580/13 869/1574/13 diff --git a/src/main/resources/assets/hbm/models/blocks/toaster.obj b/src/main/resources/assets/hbm/models/blocks/toaster.obj new file mode 100644 index 000000000..f43798c79 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/toaster.obj @@ -0,0 +1,186 @@ +# Blender v2.79 (sub 0) OBJ File: 'toaster.blend' +# www.blender.org +o Plane +v 0.093750 0.312500 -0.125000 +v 0.031250 0.312500 -0.125000 +v 0.093750 0.312500 0.125000 +v 0.031250 0.312500 0.125000 +v -0.125000 0.000000 0.250000 +v 0.125000 0.000000 0.250000 +v -0.125000 0.000000 -0.250000 +v 0.125000 0.000000 -0.250000 +v -0.125000 0.250000 0.250000 +v 0.125000 0.250000 0.250000 +v -0.125000 0.250000 -0.250000 +v 0.125000 0.250000 -0.250000 +v -0.125000 0.312500 0.187500 +v 0.125000 0.312500 0.187500 +v -0.125000 0.312500 -0.187500 +v 0.125000 0.312500 -0.187500 +v -0.031250 0.312500 -0.125000 +v -0.093750 0.312500 -0.125000 +v -0.031250 0.312500 0.125000 +v -0.093750 0.312500 0.125000 +v 0.093750 0.062500 -0.125000 +v 0.031250 0.062500 -0.125000 +v 0.093750 0.062500 0.125000 +v 0.031250 0.062500 0.125000 +v -0.031250 0.062500 0.125000 +v -0.031250 0.062500 -0.125000 +v -0.093750 0.062500 -0.125000 +v -0.093750 0.062500 0.125000 +v -0.093750 0.156250 -0.250000 +v 0.093750 0.156250 -0.250000 +v -0.093750 0.218750 -0.250000 +v 0.093750 0.218750 -0.250000 +v 0.093750 0.156250 -0.312500 +v -0.093750 0.156250 -0.312500 +v 0.093750 0.218750 -0.312500 +v -0.093750 0.218750 -0.312500 +vt 0.750000 0.812500 +vt 0.812500 0.562500 +vt 0.812500 0.812500 +vt 0.500000 0.000000 +vt 0.000000 0.250000 +vt 0.000000 -0.000000 +vt 0.500000 0.812500 +vt 0.437500 0.562500 +vt 0.500000 0.562500 +vt 0.750000 0.812500 +vt 0.812500 0.562500 +vt 0.812500 0.812500 +vt 0.500000 0.250000 +vt 0.062500 0.562500 +vt 0.750000 0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.000000 +vt 1.000000 0.000000 +vt 0.750000 0.250000 +vt 0.750000 0.000000 +vt 0.375000 0.718750 +vt 0.125000 0.656250 +vt 0.375000 0.656250 +vt -0.000000 0.562500 +vt 0.062500 0.812500 +vt -0.000000 0.812500 +vt 0.125000 0.593750 +vt 0.375000 0.593750 +vt 0.125000 0.781250 +vt 0.437500 0.812500 +vt 0.500000 0.250000 +vt 0.062500 0.562500 +vt -0.000000 0.250000 +vt 0.375000 0.781250 +vt 0.500000 0.500000 +vt 0.750000 0.562500 +vt 0.500000 0.562500 +vt 0.500000 0.500000 +vt 0.750000 0.562500 +vt 0.500000 0.562500 +vt 0.750000 0.812500 +vt 0.812500 0.562500 +vt 0.812500 0.812500 +vt 0.500000 0.812500 +vt 0.750000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.750000 0.562500 +vt 0.812500 0.562500 +vt 0.812500 0.812500 +vt 0.500000 0.812500 +vt 0.750000 0.562500 +vt 0.750000 0.375000 +vt 0.562500 0.312500 +vt 0.750000 0.312500 +vt 0.812500 0.375000 +vt 0.812500 0.312500 +vt 0.750000 0.250000 +vt 0.562500 0.250000 +vt 0.500000 0.312500 +vt 0.562500 0.375000 +vt 0.500000 0.375000 +vt 0.562500 0.437500 +vt 0.750000 0.437500 +vt 0.500000 0.500000 +vt 0.000000 0.500000 +vt 0.750000 0.250000 +vt 1.000000 0.250000 +vt 0.125000 0.718750 +vt 0.500000 0.500000 +vt 0.437500 0.562500 +vt -0.000000 0.500000 +vt 0.750000 0.500000 +vt 0.750000 0.500000 +vt 0.500000 0.562500 +vt 0.500000 0.562500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn -1.0000 0.0000 0.0000 +s off +f 3/1/1 24/2/1 4/3/1 +f 7/4/2 6/5/2 5/6/2 +f 11/7/3 16/8/3 12/9/3 +f 19/10/1 28/11/1 20/12/1 +f 8/13/4 14/14/4 6/5/4 +f 7/15/1 12/16/1 8/17/1 +f 6/18/5 9/19/5 5/20/5 +f 17/21/6 4/22/6 2/23/6 +f 10/24/7 13/25/7 9/26/7 +f 3/27/6 16/8/6 1/28/6 +f 20/29/6 15/30/6 13/25/6 +f 5/31/8 15/32/8 7/33/8 +f 15/30/6 18/34/6 17/21/6 +f 13/25/6 14/14/6 4/22/6 +f 23/35/6 22/36/6 24/37/6 +f 25/38/6 27/39/6 28/40/6 +f 2/41/5 21/42/5 1/43/5 +f 20/44/4 27/39/4 18/45/4 +f 4/46/4 22/36/4 2/41/4 +f 1/47/8 23/48/8 3/1/8 +f 18/45/5 26/49/5 17/50/5 +f 17/51/8 25/52/8 19/10/8 +f 36/53/1 33/54/1 34/55/1 +f 31/56/8 34/55/8 29/57/8 +f 29/58/2 33/54/2 30/59/2 +f 30/60/4 35/61/4 32/62/4 +f 32/63/6 36/53/6 31/64/6 +f 3/1/1 23/48/1 24/2/1 +f 7/4/2 8/13/2 6/5/2 +f 11/7/3 15/30/3 16/8/3 +f 19/10/1 25/52/1 28/11/1 +f 8/13/4 12/65/4 16/8/4 +f 16/8/4 14/14/4 8/13/4 +f 14/14/4 10/66/4 6/5/4 +f 7/15/1 11/67/1 12/16/1 +f 6/18/5 10/68/5 9/19/5 +f 17/21/6 19/69/6 4/22/6 +f 10/24/7 14/14/7 13/25/7 +f 3/27/6 14/14/6 16/8/6 +f 20/29/6 18/34/6 15/30/6 +f 5/31/8 9/70/8 13/71/8 +f 13/71/8 15/32/8 5/31/8 +f 15/32/8 11/72/8 7/33/8 +f 17/21/6 2/23/6 15/30/6 +f 2/23/6 1/28/6 16/8/6 +f 15/30/6 2/23/6 16/8/6 +f 3/27/6 4/22/6 14/14/6 +f 4/22/6 19/69/6 13/25/6 +f 19/69/6 20/29/6 13/25/6 +f 23/35/6 21/73/6 22/36/6 +f 25/38/6 26/74/6 27/39/6 +f 2/41/5 22/36/5 21/42/5 +f 20/44/4 28/40/4 27/39/4 +f 4/46/4 24/37/4 22/36/4 +f 1/47/8 21/75/8 23/48/8 +f 18/45/5 27/39/5 26/49/5 +f 17/51/8 26/76/8 25/52/8 +f 36/53/1 35/61/1 33/54/1 +f 31/56/8 36/53/8 34/55/8 +f 29/58/2 34/55/2 33/54/2 +f 30/60/4 33/54/4 35/61/4 +f 32/63/6 35/61/6 36/53/6 diff --git a/src/main/resources/assets/hbm/models/bombs/ap_mine.obj b/src/main/resources/assets/hbm/models/bombs/ap_mine.obj new file mode 100644 index 000000000..b9762718c --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/ap_mine.obj @@ -0,0 +1,749 @@ +# Blender v2.79 (sub 0) OBJ File: 'ap_mine.blend' +# www.blender.org +o Circle +v 0.000000 0.000000 -0.500000 +v -0.250000 0.000000 -0.433013 +v -0.433013 0.000000 -0.250000 +v -0.500000 0.000000 0.000000 +v -0.433013 0.000000 0.250000 +v -0.250000 0.000000 0.433013 +v -0.000000 0.000000 0.500000 +v 0.250000 0.000000 0.433013 +v 0.433013 0.000000 0.250000 +v 0.500000 0.000000 0.000000 +v 0.433013 0.000000 -0.250000 +v 0.250000 0.000000 -0.433013 +v -0.250000 0.250000 -0.433013 +v 0.000000 0.250000 -0.500000 +v -0.433013 0.250000 -0.250000 +v -0.500000 0.250000 0.000000 +v -0.433013 0.250000 0.250000 +v -0.250000 0.250000 0.433013 +v -0.000000 0.250000 0.500000 +v 0.250000 0.250000 0.433013 +v 0.433013 0.250000 0.250000 +v 0.500000 0.250000 0.000000 +v 0.433013 0.250000 -0.250000 +v 0.250000 0.250000 -0.433013 +v 0.000000 0.250000 -0.312500 +v -0.156250 0.250000 -0.270633 +v -0.270633 0.250000 -0.156250 +v -0.312500 0.250000 0.000000 +v -0.270633 0.250000 0.156250 +v -0.156250 0.250000 0.270633 +v -0.000000 0.250000 0.312500 +v 0.156250 0.250000 0.270633 +v 0.270633 0.250000 0.156250 +v 0.312500 0.250000 0.000000 +v 0.270633 0.250000 -0.156250 +v 0.156250 0.250000 -0.270633 +v 0.000000 0.375000 -0.250000 +v -0.125000 0.375000 -0.216506 +v -0.216506 0.375000 -0.125000 +v -0.250000 0.375000 0.000000 +v -0.216506 0.375000 0.125000 +v -0.125000 0.375000 0.216506 +v -0.000000 0.375000 0.250000 +v 0.125000 0.375000 0.216506 +v 0.216506 0.375000 0.125000 +v 0.250000 0.375000 0.000000 +v 0.216506 0.375000 -0.125000 +v 0.125000 0.375000 -0.216506 +v 0.031250 -0.062500 -0.250000 +v 0.031250 -0.062500 -0.562500 +v -0.031250 -0.062500 -0.250000 +v -0.031250 -0.062500 -0.562500 +v 0.031250 0.312500 -0.250000 +v 0.031250 0.312500 -0.562500 +v -0.031250 0.312500 -0.250000 +v -0.031250 0.312500 -0.562500 +v 0.250000 -0.062500 0.031250 +v 0.562500 -0.062500 0.031250 +v 0.250000 -0.062500 -0.031250 +v 0.562500 -0.062500 -0.031250 +v 0.250000 0.312500 0.031250 +v 0.562500 0.312500 0.031250 +v 0.250000 0.312500 -0.031250 +v 0.562500 0.312500 -0.031250 +v -0.562500 0.312500 0.031250 +v -0.250000 0.312500 0.031250 +v -0.562500 0.312500 -0.031250 +v -0.250000 0.312500 -0.031250 +v -0.562500 -0.062500 0.031250 +v -0.250000 -0.062500 0.031250 +v -0.562500 -0.062500 -0.031250 +v -0.250000 -0.062500 -0.031250 +v 0.031250 0.312500 0.562500 +v 0.031250 0.312500 0.250000 +v -0.031250 0.312500 0.562500 +v -0.031250 0.312500 0.250000 +v 0.031250 -0.062500 0.562500 +v 0.031250 -0.062500 0.250000 +v -0.031250 -0.062500 0.562500 +v -0.031250 -0.062500 0.250000 +v 0.187500 0.000000 -0.324759 +v 0.324760 0.000000 -0.187500 +v 0.375000 0.000000 0.000000 +v 0.324759 0.000000 0.187500 +v 0.187500 0.000000 0.324760 +v -0.000000 0.000000 0.375000 +v -0.187500 0.000000 0.324760 +v -0.324760 0.000000 0.187500 +v -0.375000 0.000000 0.000000 +v -0.324760 0.000000 -0.187500 +v -0.187500 0.000000 -0.324759 +v 0.000000 0.000000 -0.375000 +v 0.187500 -0.125000 -0.324759 +v 0.324760 -0.125000 -0.187500 +v 0.375000 -0.125000 0.000000 +v 0.324759 -0.125000 0.187500 +v 0.187500 -0.125000 0.324760 +v -0.000000 -0.125000 0.375000 +v -0.187500 -0.125000 0.324760 +v -0.324760 -0.125000 0.187500 +v -0.375000 -0.125000 0.000000 +v -0.324760 -0.125000 -0.187500 +v -0.187500 -0.125000 -0.324759 +v 0.000000 -0.125000 -0.375000 +v -0.097937 -0.062500 -0.232131 +v -0.254187 -0.062500 -0.502764 +v -0.152063 -0.062500 -0.200881 +v -0.308313 -0.062500 -0.471514 +v -0.097937 0.312500 -0.232131 +v -0.254187 0.312500 -0.502764 +v -0.152063 0.312500 -0.200881 +v -0.308313 0.312500 -0.471514 +v 0.232131 -0.062500 -0.097937 +v 0.502764 -0.062500 -0.254187 +v 0.200881 -0.062500 -0.152063 +v 0.471514 -0.062500 -0.308313 +v 0.232131 0.312500 -0.097937 +v 0.502764 0.312500 -0.254187 +v 0.200881 0.312500 -0.152063 +v 0.471514 0.312500 -0.308313 +v -0.471514 0.312500 0.308313 +v -0.200881 0.312500 0.152063 +v -0.502764 0.312500 0.254187 +v -0.232131 0.312500 0.097937 +v -0.471514 -0.062500 0.308313 +v -0.200881 -0.062500 0.152063 +v -0.502764 -0.062500 0.254187 +v -0.232131 -0.062500 0.097937 +v 0.308313 0.312500 0.471514 +v 0.152063 0.312500 0.200881 +v 0.254187 0.312500 0.502764 +v 0.097937 0.312500 0.232131 +v 0.308313 -0.062500 0.471514 +v 0.152063 -0.062500 0.200881 +v 0.254187 -0.062500 0.502764 +v 0.097937 -0.062500 0.232131 +v -0.200881 -0.062500 -0.152063 +v -0.471514 -0.062500 -0.308313 +v -0.232131 -0.062500 -0.097937 +v -0.502764 -0.062500 -0.254187 +v -0.200881 0.312500 -0.152063 +v -0.471514 0.312500 -0.308313 +v -0.232131 0.312500 -0.097937 +v -0.502764 0.312500 -0.254187 +v 0.152063 -0.062500 -0.200881 +v 0.308313 -0.062500 -0.471514 +v 0.097937 -0.062500 -0.232131 +v 0.254187 -0.062500 -0.502764 +v 0.152063 0.312500 -0.200881 +v 0.308313 0.312500 -0.471514 +v 0.097937 0.312500 -0.232131 +v 0.254187 0.312500 -0.502764 +v -0.254187 0.312500 0.502764 +v -0.097937 0.312500 0.232131 +v -0.308313 0.312500 0.471514 +v -0.152063 0.312500 0.200881 +v -0.254187 -0.062500 0.502764 +v -0.097937 -0.062500 0.232131 +v -0.308313 -0.062500 0.471514 +v -0.152063 -0.062500 0.200881 +v 0.502764 0.312500 0.254187 +v 0.232131 0.312500 0.097937 +v 0.471514 0.312500 0.308313 +v 0.200881 0.312500 0.152063 +v 0.502764 -0.062500 0.254187 +v 0.232131 -0.062500 0.097937 +v 0.471514 -0.062500 0.308313 +v 0.200881 -0.062500 0.152063 +vt 0.166667 0.080000 +vt 0.250000 0.160000 +vt 0.166667 0.160000 +vt 0.291806 0.541901 +vt 0.374860 0.541901 +vt 0.416387 0.680000 +vt 0.500000 0.320000 +vt 0.562500 0.440000 +vt 0.520833 0.440000 +vt 0.583333 0.320000 +vt 0.645833 0.440000 +vt 0.604167 0.440000 +vt 0.750000 0.320000 +vt 0.687500 0.440000 +vt 0.666667 0.320000 +vt 0.812500 0.440000 +vt 0.770833 0.440000 +vt 0.916667 0.320000 +vt 0.854167 0.440000 +vt 0.833333 0.320000 +vt 1.000000 0.320000 +vt 0.937500 0.440000 +vt 0.083333 0.320000 +vt 0.020833 0.440000 +vt -0.000000 0.320000 +vt 0.166667 0.320000 +vt 0.104167 0.440000 +vt 0.250000 0.320000 +vt 0.187500 0.440000 +vt 0.333333 0.320000 +vt 0.270833 0.440000 +vt 0.395833 0.440000 +vt 0.354167 0.440000 +vt 0.416667 0.320000 +vt 0.479167 0.440000 +vt 0.437500 0.440000 +vt 0.416667 0.520000 +vt 0.520833 0.560000 +vt 0.416667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.840000 +vt 0.416667 0.800000 +vt 0.541667 0.560000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.541667 0.560000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.520000 +vt 0.416667 0.840000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.000000 0.080000 +vt 0.083333 0.160000 +vt -0.000000 0.160000 +vt 0.083333 0.080000 +vt 0.916667 0.080000 +vt 1.000000 0.160000 +vt 0.916667 0.160000 +vt 0.833333 0.080000 +vt 0.833333 0.160000 +vt 0.750000 0.160000 +vt 0.812500 0.080000 +vt 0.666667 0.080000 +vt 0.666667 0.160000 +vt 0.583333 0.160000 +vt 0.645833 0.080000 +vt 0.500000 0.160000 +vt 0.562500 0.080000 +vt 0.416667 0.160000 +vt 0.479167 0.080000 +vt 0.333333 0.160000 +vt 0.395833 0.080000 +vt 0.250000 0.080000 +vt 0.187513 0.552110 +vt 0.187513 0.967890 +vt -0.000027 0.760000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.520833 0.840000 +vt 0.416667 0.840000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.541667 0.560000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.520000 +vt 0.416667 0.840000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.840000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.416667 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.520833 0.840000 +vt 0.416667 0.840000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.541667 0.560000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.520000 +vt 0.416667 0.840000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.840000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.229167 0.080000 +vt 0.405260 0.759732 +vt 0.374860 0.818099 +vt 0.333333 0.839464 +vt 0.291806 0.818099 +vt 0.261407 0.759732 +vt 0.250279 0.680000 +vt 0.261407 0.600268 +vt 0.333333 0.520537 +vt 0.405260 0.600268 +vt 0.729167 0.440000 +vt 0.895833 0.440000 +vt 0.979167 0.440000 +vt 0.062500 0.440000 +vt 0.145833 0.440000 +vt 0.229167 0.440000 +vt 0.312500 0.440000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.645833 0.800000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.416667 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.416667 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.062500 0.080000 +vt 0.145833 0.080000 +vt 0.979167 0.080000 +vt 0.895833 0.080000 +vt 0.750000 0.080000 +vt 0.729167 0.080000 +vt 0.583333 0.080000 +vt 0.500000 0.080000 +vt 0.416667 0.080000 +vt 0.333333 0.080000 +vt 0.312500 0.080000 +vt 0.016724 0.639974 +vt 0.062487 0.552109 +vt 0.125000 0.519949 +vt 0.233276 0.639974 +vt 0.250027 0.760000 +vt 0.233276 0.880025 +vt 0.125000 1.000051 +vt 0.062487 0.967890 +vt 0.016724 0.880025 +vt 0.416667 0.520000 +vt 0.645833 0.800000 +vt 0.645833 0.800000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.416667 0.520000 +vt 0.645833 0.800000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.416667 0.520000 +vt 0.645833 0.800000 +vt 0.645833 0.800000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.416667 0.520000 +vt 0.645833 0.800000 +vt 0.416667 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.479167 0.520000 +vt 0.437500 0.520000 +vt 0.520833 0.520000 +vt 0.604167 0.520000 +vt 0.687500 0.520000 +vt 0.770833 0.520000 +vt 0.854167 0.520000 +vt 0.937500 0.520000 +vt 0.020833 0.520000 +vt 0.104167 0.520000 +vt 0.187500 0.520000 +vt 0.270833 0.520000 +vt 0.354167 0.520000 +vt 0.062500 -0.000000 +vt 0.645833 -0.000000 +vt 0.895833 -0.000000 +vt 0.562500 -0.000000 +vt 0.979167 -0.000000 +vt 0.479167 -0.000000 +vt 0.395833 -0.000000 +vt 0.312500 -0.000000 +vt 0.229167 -0.000000 +vt 0.812500 -0.000000 +vt 0.729167 -0.000000 +vt 0.145833 -0.000000 +vt 0.562500 0.520000 +vt 0.645833 0.520000 +vt 0.729167 0.520000 +vt 0.812500 0.520000 +vt 0.895833 0.520000 +vt 0.979167 0.520000 +vt 0.062500 0.520000 +vt 0.145833 0.520000 +vt 0.229167 0.520000 +vt 0.312500 0.520000 +vt 0.395833 0.520000 +vt 0.000000 -0.000000 +vt 0.583333 -0.000000 +vt 0.833333 -0.000000 +vt 0.500000 -0.000000 +vt 0.916667 -0.000000 +vt 0.416667 -0.000000 +vt 0.333333 -0.000000 +vt 0.250000 -0.000000 +vt 0.166667 -0.000000 +vt 0.750000 -0.000000 +vt 0.666667 -0.000000 +vt 0.083333 -0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.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 +vn 0.7746 0.4472 0.4472 +vn 0.8944 0.4472 0.0000 +vn 0.7746 0.4472 -0.4472 +vn 0.4472 0.4472 -0.7746 +vn 0.0000 0.4472 -0.8944 +vn -0.4472 0.4472 -0.7746 +vn -0.7746 0.4472 -0.4472 +vn -0.8944 0.4472 0.0000 +vn -0.7746 0.4472 0.4472 +vn -0.4472 0.4472 0.7746 +vn -0.0000 0.4472 0.8944 +vn 0.4472 0.4472 0.7746 +s off +f 87/1/1 7/2/1 6/3/1 +f 45/4/2 47/5/2 37/6/2 +f 22/7/2 35/8/2 34/9/2 +f 23/10/2 36/11/2 35/12/2 +f 14/13/2 36/14/2 24/15/2 +f 14/13/2 26/16/2 25/17/2 +f 15/18/2 26/19/2 13/20/2 +f 16/21/2 27/22/2 15/18/2 +f 17/23/2 28/24/2 16/25/2 +f 18/26/2 29/27/2 17/23/2 +f 19/28/2 30/29/2 18/26/2 +f 20/30/2 31/31/2 19/28/2 +f 20/30/2 33/32/2 32/33/2 +f 21/34/2 34/35/2 33/36/2 +f 51/37/1 50/38/1 49/39/1 +f 54/40/2 55/41/2 53/42/2 +f 52/43/3 54/40/3 50/38/3 +f 51/44/4 56/45/4 52/43/4 +f 50/38/5 53/42/5 49/39/5 +f 59/46/3 64/47/3 60/48/3 +f 58/49/6 61/50/6 57/51/6 +f 60/48/5 62/52/5 58/49/5 +f 59/53/1 58/49/1 57/51/1 +f 62/52/2 63/54/2 61/50/2 +f 71/55/3 68/56/3 72/57/3 +f 72/57/1 69/58/1 71/55/1 +f 69/59/4 67/60/4 71/55/4 +f 79/61/4 76/62/4 80/63/4 +f 67/60/2 66/64/2 68/56/2 +f 70/65/6 65/66/6 69/59/6 +f 80/63/1 77/67/1 79/61/1 +f 77/68/6 75/69/6 79/61/6 +f 75/69/2 74/70/2 76/62/2 +f 78/71/5 73/72/5 77/68/5 +f 89/73/1 5/74/1 4/75/1 +f 88/76/1 6/3/1 5/74/1 +f 90/77/1 4/78/1 3/79/1 +f 91/80/1 3/79/1 2/81/1 +f 1/82/1 91/83/1 2/81/1 +f 81/84/1 1/82/1 12/85/1 +f 11/86/1 81/87/1 12/85/1 +f 10/88/1 82/89/1 11/86/1 +f 9/90/1 83/91/1 10/88/1 +f 8/92/1 84/93/1 9/90/1 +f 86/94/1 8/92/1 7/2/1 +f 96/95/1 100/96/1 104/97/1 +f 105/98/1 108/99/1 106/100/1 +f 109/101/2 112/102/2 111/103/2 +f 108/104/7 110/105/7 106/100/7 +f 107/106/8 112/107/8 108/104/8 +f 106/100/9 109/101/9 105/98/9 +f 115/108/7 120/109/7 116/110/7 +f 114/111/10 117/112/10 113/113/10 +f 116/110/9 118/114/9 114/111/9 +f 115/115/1 114/111/1 113/113/1 +f 118/114/2 119/116/2 117/112/2 +f 127/117/7 124/118/7 128/119/7 +f 128/119/1 125/120/1 127/117/1 +f 125/121/8 123/122/8 127/117/8 +f 135/123/8 132/124/8 136/125/8 +f 124/118/2 121/126/2 122/127/2 +f 126/128/10 121/129/10 125/121/10 +f 134/130/1 135/123/1 136/125/1 +f 133/131/10 131/132/10 135/123/10 +f 131/132/2 130/133/2 132/124/2 +f 134/134/9 129/135/9 133/131/9 +f 137/136/1 140/137/1 138/138/1 +f 141/139/2 144/140/2 143/141/2 +f 140/142/11 142/143/11 138/138/11 +f 139/144/12 144/145/12 140/142/12 +f 138/138/13 141/139/13 137/136/13 +f 147/146/11 152/147/11 148/148/11 +f 146/149/14 149/150/14 145/151/14 +f 148/148/13 150/152/13 146/149/13 +f 147/153/1 146/149/1 145/151/1 +f 150/152/2 151/154/2 149/150/2 +f 159/155/11 156/156/11 160/157/11 +f 160/157/1 157/158/1 159/155/1 +f 157/159/12 155/160/12 159/155/12 +f 167/161/12 164/162/12 168/163/12 +f 156/156/2 153/164/2 154/165/2 +f 158/166/14 153/167/14 157/159/14 +f 168/163/1 165/168/1 167/161/1 +f 165/169/14 163/170/14 167/161/14 +f 163/170/2 162/171/2 164/162/2 +f 166/172/13 161/173/13 165/169/13 +f 87/1/1 86/174/1 7/2/1 +f 37/6/2 38/175/2 39/176/2 +f 39/176/2 40/177/2 41/178/2 +f 41/178/2 42/179/2 43/180/2 +f 43/180/2 44/181/2 45/4/2 +f 45/4/2 46/182/2 47/5/2 +f 47/5/2 48/183/2 37/6/2 +f 37/6/2 39/176/2 41/178/2 +f 41/178/2 43/180/2 37/6/2 +f 43/180/2 45/4/2 37/6/2 +f 22/7/2 23/10/2 35/8/2 +f 23/10/2 24/15/2 36/11/2 +f 14/13/2 25/184/2 36/14/2 +f 14/13/2 13/20/2 26/16/2 +f 15/18/2 27/185/2 26/19/2 +f 16/21/2 28/186/2 27/22/2 +f 17/23/2 29/187/2 28/24/2 +f 18/26/2 30/188/2 29/27/2 +f 19/28/2 31/189/2 30/29/2 +f 20/30/2 32/190/2 31/31/2 +f 20/30/2 21/34/2 33/32/2 +f 21/34/2 22/7/2 34/35/2 +f 51/37/1 52/191/1 50/38/1 +f 54/40/2 56/192/2 55/41/2 +f 52/43/3 56/45/3 54/40/3 +f 51/44/4 55/193/4 56/45/4 +f 50/38/5 54/40/5 53/42/5 +f 59/46/3 63/194/3 64/47/3 +f 58/49/6 62/52/6 61/50/6 +f 60/48/5 64/47/5 62/52/5 +f 59/53/1 60/195/1 58/49/1 +f 62/52/2 64/196/2 63/54/2 +f 71/55/3 67/60/3 68/56/3 +f 72/57/1 70/197/1 69/58/1 +f 69/59/4 65/66/4 67/60/4 +f 79/61/4 75/69/4 76/62/4 +f 67/60/2 65/198/2 66/64/2 +f 70/65/6 66/199/6 65/66/6 +f 80/63/1 78/200/1 77/67/1 +f 77/68/6 73/72/6 75/69/6 +f 75/69/2 73/201/2 74/70/2 +f 78/71/5 74/202/5 73/72/5 +f 89/73/1 88/203/1 5/74/1 +f 88/76/1 87/204/1 6/3/1 +f 90/77/1 89/205/1 4/78/1 +f 91/80/1 90/206/1 3/79/1 +f 1/82/1 92/207/1 91/83/1 +f 81/84/1 92/208/1 1/82/1 +f 11/86/1 82/209/1 81/87/1 +f 10/88/1 83/210/1 82/89/1 +f 9/90/1 84/211/1 83/91/1 +f 8/92/1 85/212/1 84/93/1 +f 86/94/1 85/213/1 8/92/1 +f 104/97/1 93/214/1 94/215/1 +f 94/215/1 95/216/1 96/95/1 +f 96/95/1 97/217/1 100/96/1 +f 97/217/1 98/218/1 100/96/1 +f 98/218/1 99/219/1 100/96/1 +f 100/96/1 101/220/1 102/221/1 +f 102/221/1 103/222/1 104/97/1 +f 104/97/1 94/215/1 96/95/1 +f 100/96/1 102/221/1 104/97/1 +f 105/98/1 107/223/1 108/99/1 +f 109/101/2 110/105/2 112/102/2 +f 108/104/7 112/107/7 110/105/7 +f 107/106/8 111/224/8 112/107/8 +f 106/100/9 110/105/9 109/101/9 +f 115/108/7 119/225/7 120/109/7 +f 114/111/10 118/114/10 117/112/10 +f 116/110/9 120/109/9 118/114/9 +f 115/115/1 116/226/1 114/111/1 +f 118/114/2 120/227/2 119/116/2 +f 127/117/7 123/122/7 124/118/7 +f 128/119/1 126/228/1 125/120/1 +f 125/121/8 121/129/8 123/122/8 +f 135/123/8 131/132/8 132/124/8 +f 124/118/2 123/122/2 121/126/2 +f 126/128/10 122/229/10 121/129/10 +f 134/130/1 133/230/1 135/123/1 +f 133/131/10 129/135/10 131/132/10 +f 131/132/2 129/231/2 130/133/2 +f 134/134/9 130/232/9 129/135/9 +f 137/136/1 139/233/1 140/137/1 +f 141/139/2 142/143/2 144/140/2 +f 140/142/11 144/145/11 142/143/11 +f 139/144/12 143/234/12 144/145/12 +f 138/138/13 142/143/13 141/139/13 +f 147/146/11 151/235/11 152/147/11 +f 146/149/14 150/152/14 149/150/14 +f 148/148/13 152/147/13 150/152/13 +f 147/153/1 148/236/1 146/149/1 +f 150/152/2 152/237/2 151/154/2 +f 159/155/11 155/160/11 156/156/11 +f 160/157/1 158/238/1 157/158/1 +f 157/159/12 153/167/12 155/160/12 +f 167/161/12 163/170/12 164/162/12 +f 156/156/2 155/160/2 153/164/2 +f 158/166/14 154/239/14 153/167/14 +f 168/163/1 166/240/1 165/168/1 +f 165/169/14 161/173/14 163/170/14 +f 163/170/2 161/241/2 162/171/2 +f 166/172/13 162/242/13 161/173/13 +s 1 +f 9/90/14 20/30/10 8/92/10 +f 6/3/12 17/23/8 5/74/8 +f 1/82/3 24/15/13 12/85/13 +f 3/79/11 13/20/7 2/81/7 +f 10/88/5 21/34/14 9/90/14 +f 7/2/6 18/26/12 6/3/12 +f 4/78/4 15/18/11 3/79/11 +f 11/86/9 22/7/5 10/88/5 +f 8/92/10 19/28/6 7/2/6 +f 5/74/8 16/25/4 4/75/4 +f 12/85/13 23/10/9 11/86/9 +f 2/81/7 14/13/3 1/82/3 +f 33/36/15 46/243/16 45/244/15 +f 35/8/17 46/245/16 34/9/16 +f 36/11/18 47/246/17 35/12/17 +f 25/184/19 48/247/18 36/14/18 +f 26/16/20 37/248/19 25/17/19 +f 27/185/21 38/249/20 26/19/20 +f 28/186/22 39/250/21 27/22/21 +f 29/187/23 40/251/22 28/24/22 +f 30/188/24 41/252/23 29/27/23 +f 31/189/25 42/253/24 30/29/24 +f 32/190/26 43/254/25 31/31/25 +f 33/32/15 44/255/26 32/33/26 +f 89/73/4 100/256/8 88/203/8 +f 82/209/9 93/257/13 81/87/13 +f 91/80/7 102/258/11 90/206/11 +f 83/210/5 94/259/9 82/89/9 +f 90/77/11 101/260/4 89/205/4 +f 84/211/14 95/261/5 83/91/5 +f 85/212/10 96/262/14 84/93/14 +f 86/94/6 97/263/10 85/213/10 +f 87/1/12 98/264/6 86/174/6 +f 92/207/3 103/265/7 91/83/7 +f 81/84/13 104/266/3 92/208/3 +f 88/76/8 99/267/12 87/204/12 +f 9/90/14 21/34/14 20/30/10 +f 6/3/12 18/26/12 17/23/8 +f 1/82/3 14/13/3 24/15/13 +f 3/79/11 15/18/11 13/20/7 +f 10/88/5 22/7/5 21/34/14 +f 7/2/6 19/28/6 18/26/12 +f 4/78/4 16/21/4 15/18/11 +f 11/86/9 23/10/9 22/7/5 +f 8/92/10 20/30/10 19/28/6 +f 5/74/8 17/23/8 16/25/4 +f 12/85/13 24/15/13 23/10/9 +f 2/81/7 13/20/7 14/13/3 +f 33/36/15 34/35/16 46/243/16 +f 35/8/17 47/268/17 46/245/16 +f 36/11/18 48/269/18 47/246/17 +f 25/184/19 37/270/19 48/247/18 +f 26/16/20 38/271/20 37/248/19 +f 27/185/21 39/272/21 38/249/20 +f 28/186/22 40/273/22 39/250/21 +f 29/187/23 41/274/23 40/251/22 +f 30/188/24 42/275/24 41/252/23 +f 31/189/25 43/276/25 42/253/24 +f 32/190/26 44/277/26 43/254/25 +f 33/32/15 45/278/15 44/255/26 +f 89/73/4 101/279/4 100/256/8 +f 82/209/9 94/280/9 93/257/13 +f 91/80/7 103/281/7 102/258/11 +f 83/210/5 95/282/5 94/259/9 +f 90/77/11 102/283/11 101/260/4 +f 84/211/14 96/284/14 95/261/5 +f 85/212/10 97/285/10 96/262/14 +f 86/94/6 98/286/6 97/263/10 +f 87/1/12 99/287/12 98/264/6 +f 92/207/3 104/288/3 103/265/7 +f 81/84/13 93/289/13 104/266/3 +f 88/76/8 100/290/8 99/267/12 diff --git a/src/main/resources/assets/hbm/models/bombs/gadget.obj b/src/main/resources/assets/hbm/models/bombs/gadget.obj new file mode 100644 index 000000000..e2e007e50 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/gadget.obj @@ -0,0 +1,10019 @@ +# Blender v2.79 (sub 0) OBJ File: 'gadget.blend' +# www.blender.org +o Wires +v -1.174005 1.942922 -0.549430 +v -1.183310 1.913090 -0.549430 +v -1.182231 1.912753 -0.518200 +v -1.172926 1.942586 -0.518200 +v -1.196076 1.821231 -0.548875 +v -1.202886 1.790732 -0.548875 +v -1.202886 1.790732 -0.517625 +v -1.196076 1.821231 -0.517625 +v -1.238634 1.797799 -0.528074 +v -1.233117 1.828558 -0.528074 +v -1.206878 1.823852 -0.511767 +v -1.212395 1.793093 -0.511767 +v -1.217782 1.698130 -0.548875 +v -1.224592 1.667631 -0.548875 +v -1.224592 1.667631 -0.517625 +v -1.217782 1.698130 -0.517625 +v -1.259217 1.671675 -0.533248 +v -1.257805 1.702893 -0.533248 +v -1.235729 1.701894 -0.511153 +v -1.237141 1.670676 -0.511153 +v -1.239488 1.575029 -0.548875 +v -1.246298 1.544530 -0.548875 +v -1.246298 1.544530 -0.517625 +v -1.239488 1.575029 -0.517625 +v -1.279112 1.546412 -0.529872 +v -1.280785 1.577617 -0.529872 +v -1.255606 1.578968 -0.511412 +v -1.253933 1.547762 -0.511412 +v -1.216391 1.945193 -0.663251 +v -1.188182 1.958640 -0.663251 +v -1.181072 1.943725 -0.636726 +v -1.209281 1.930278 -0.636726 +v -1.241104 1.815372 -0.659276 +v -1.217851 1.836249 -0.659276 +v -1.203790 1.820588 -0.636177 +v -1.227042 1.799710 -0.636177 +v -1.239636 1.660727 -0.666553 +v -1.261933 1.682622 -0.666553 +v -1.253403 1.691308 -0.637772 +v -1.231106 1.669413 -0.637772 +v -1.239488 1.575029 -0.673875 +v -1.246298 1.544530 -0.673875 +v -1.246298 1.544530 -0.642625 +v -1.239488 1.575029 -0.642625 +v -1.256174 1.540192 -0.672388 +v -1.280892 1.559312 -0.672388 +v -1.279152 1.561561 -0.641268 +v -1.254434 1.542440 -0.641268 +v -1.174370 1.944332 -0.798875 +v -1.181180 1.913833 -0.798875 +v -1.181180 1.913833 -0.767625 +v -1.174370 1.944332 -0.767625 +v -1.215594 1.947240 -0.785575 +v -1.186501 1.958649 -0.785575 +v -1.179327 1.940356 -0.761275 +v -1.208420 1.928947 -0.761275 +v -1.196076 1.821231 -0.798875 +v -1.202886 1.790732 -0.798875 +v -1.202886 1.790732 -0.767625 +v -1.196076 1.821231 -0.767625 +v -1.240732 1.814322 -0.788906 +v -1.217902 1.835661 -0.788906 +v -1.207178 1.824188 -0.761889 +v -1.230008 1.802849 -0.761889 +v -1.242324 1.660806 -0.790220 +v -1.262535 1.684641 -0.790220 +v -1.251858 1.693694 -0.762281 +v -1.231647 1.669860 -0.762281 +v -1.239488 1.575029 -0.798875 +v -1.246298 1.544530 -0.798875 +v -1.246298 1.544530 -0.767625 +v -1.239488 1.575029 -0.767625 +v -1.252976 1.544934 -0.802555 +v -1.277033 1.564880 -0.802555 +v -1.282493 1.558295 -0.772498 +v -1.258435 1.538350 -0.772498 +v -1.174370 1.944332 -0.923875 +v -1.181180 1.913833 -0.923875 +v -1.181180 1.913833 -0.892625 +v -1.174370 1.944332 -0.892625 +v -1.212353 1.945965 -0.921560 +v -1.181977 1.953300 -0.921560 +v -1.180960 1.949093 -0.890611 +v -1.211337 1.941757 -0.890611 +v -1.196076 1.821231 -0.923875 +v -1.202886 1.790732 -0.923875 +v -1.202886 1.790732 -0.892625 +v -1.196076 1.821231 -0.892625 +v -1.239209 1.806511 -0.919429 +v -1.222351 1.832825 -0.919429 +v -1.215715 1.828573 -0.889189 +v -1.232572 1.802260 -0.889189 +v -1.217782 1.698130 -0.923875 +v -1.224592 1.667631 -0.923875 +v -1.224592 1.667631 -0.892625 +v -1.217782 1.698130 -0.892625 +v -1.228890 1.670839 -0.929152 +v -1.253067 1.690639 -0.929152 +v -1.261768 1.680014 -0.901081 +v -1.237591 1.660214 -0.901081 +v -1.239488 1.575029 -0.923875 +v -1.246298 1.544530 -0.923875 +v -1.246298 1.544530 -0.892625 +v -1.239488 1.575029 -0.892625 +v -1.259141 1.538664 -0.919660 +v -1.282409 1.559525 -0.919660 +v -1.277393 1.565119 -0.889326 +v -1.254125 1.544258 -0.889326 +v -1.174370 1.944332 -1.048875 +v -1.181180 1.913833 -1.048875 +v -1.181180 1.913833 -1.017625 +v -1.174370 1.944332 -1.017625 +v -1.209377 1.949713 -1.046222 +v -1.178154 1.951008 -1.046222 +v -1.177951 1.946095 -1.015361 +v -1.209174 1.944801 -1.015361 +v -1.196076 1.821231 -1.048875 +v -1.202886 1.790732 -1.048875 +v -1.202886 1.790732 -1.017625 +v -1.196076 1.821231 -1.017625 +v -1.217782 1.698130 -1.048875 +v -1.224592 1.667631 -1.048875 +v -1.224592 1.667631 -1.017625 +v -1.217782 1.698130 -1.017625 +v -1.239488 1.575029 -1.048875 +v -1.246298 1.544530 -1.048875 +v -1.246298 1.544530 -1.017625 +v -1.239488 1.575029 -1.017625 +v -1.174370 1.944332 -1.173875 +v -1.181180 1.913833 -1.173875 +v -1.181180 1.913833 -1.142625 +v -1.174370 1.944332 -1.142625 +v -1.196076 1.821231 -1.173875 +v -1.202886 1.790732 -1.173875 +v -1.202886 1.790732 -1.142625 +v -1.196076 1.821231 -1.142625 +v -1.224011 1.796775 -1.180323 +v -1.203896 1.820690 -1.180323 +v -1.221566 1.835552 -1.159265 +v -1.241681 1.811637 -1.159265 +v -1.217782 1.698130 -1.173875 +v -1.224592 1.667631 -1.173875 +v -1.224592 1.667631 -1.142625 +v -1.217782 1.698130 -1.142625 +v -1.239488 1.575029 -1.173875 +v -1.246298 1.544530 -1.173875 +v -1.246298 1.544530 -1.142625 +v -1.239488 1.575029 -1.142625 +v -1.256882 1.542336 -1.175459 +v -1.278993 1.564419 -1.175459 +v -1.281359 1.562049 -1.144389 +v -1.259249 1.539966 -1.144389 +v 0.362842 2.375147 0.326274 +v 0.386903 2.373444 0.306407 +v 0.370036 2.388315 0.284706 +v 0.345975 2.390018 0.304574 +v 0.384077 2.432766 0.344619 +v 0.405915 2.423475 0.324288 +v 0.384420 2.422550 0.301623 +v 0.362582 2.431840 0.321954 +v -0.918945 1.110495 -0.342736 +v -0.931564 1.094373 -0.319127 +v -0.936371 1.121008 -0.303506 +v -0.923751 1.137131 -0.327115 +v -0.379805 2.444080 -0.309020 +v -0.367132 2.433805 -0.335673 +v -0.388692 2.411236 -0.337222 +v -0.401364 2.421511 -0.310569 +v 0.402196 2.434005 -0.311901 +v 0.396841 2.423141 -0.340708 +v 0.366301 2.421311 -0.334341 +v 0.371656 2.432175 -0.305534 +v -0.378623 0.564951 0.303071 +v -0.371040 0.557246 0.332392 +v -0.389874 0.579733 0.343171 +v -0.397457 0.587438 0.313851 +v 0.393651 0.572855 0.303131 +v 0.404220 0.573220 0.332537 +v 0.374846 0.571829 0.343111 +v 0.364277 0.571465 0.313705 +v 0.390783 0.579489 -0.342983 +v 0.405056 0.566658 -0.318321 +v 0.377714 0.565195 -0.303259 +v 0.363441 0.578026 -0.327921 +v 0.701539 1.282990 0.756744 +v 0.694797 1.253772 0.747945 +v 0.701307 1.261198 0.718296 +v 0.708049 1.290416 0.727095 +v -0.378277 2.436777 0.342343 +v -0.368708 2.439423 0.312712 +v -0.390220 2.418539 0.303900 +v -0.399789 2.415894 0.333531 +v 0.440212 2.090464 0.757640 +v 0.454304 2.095352 0.730180 +v 0.426795 2.102869 0.717400 +v 0.412703 2.097980 0.744860 +v 0.712255 1.254904 -0.728834 +v 0.684271 1.258951 -0.742139 +v 0.690591 1.289284 -0.746206 +v 0.718576 1.285237 -0.732900 +v 0.019550 0.757477 0.728517 +v 0.010032 0.767352 0.756596 +v -0.019550 0.767483 0.746523 +v -0.010032 0.757608 0.718444 +v 0.011101 0.775618 -0.751392 +v 0.014829 0.746439 -0.740846 +v -0.011101 0.749342 -0.723648 +v -0.014829 0.778521 -0.734194 +v -0.692788 1.289504 -0.748037 +v -0.694407 1.258821 -0.753733 +v -0.710059 1.254684 -0.727003 +v -0.708439 1.285368 -0.721307 +v -0.933840 1.870228 0.339042 +v -0.923487 1.899704 0.338352 +v -0.921475 1.898269 0.307200 +v -0.931829 1.868792 0.307890 +v 0.451844 2.105888 -0.729343 +v 0.445829 2.082972 -0.749720 +v 0.415163 2.087443 -0.745697 +v 0.421178 2.110360 -0.725320 +v -0.423559 2.116383 -0.738324 +v -0.421411 2.089866 -0.754719 +v -0.443448 2.076950 -0.736716 +v -0.445596 2.103467 -0.720321 +v -0.377169 0.573822 -0.344001 +v -0.369308 0.556547 -0.319174 +v -0.391328 0.570862 -0.302241 +v -0.399189 0.588137 -0.327067 +v 0.935823 1.863839 -0.325374 +v 0.912476 1.879881 -0.338572 +v 0.919493 1.904657 -0.320868 +v 0.942839 1.888617 -0.307670 +v 0.922768 1.100037 0.337866 +v 0.918963 1.103356 0.307026 +v 0.932547 1.131467 0.308377 +v 0.936352 1.128147 0.339216 +v -0.925593 1.094452 0.328629 +v -0.931403 1.120862 0.344290 +v -0.929723 1.137052 0.317614 +v -0.923912 1.110641 0.301952 +v 0.943630 1.125342 -0.311239 +v 0.933693 1.095992 -0.315285 +v 0.911686 1.106161 -0.335003 +v 0.921622 1.135511 -0.330957 +v -0.425439 2.093643 0.757870 +v -0.422154 2.115550 0.735828 +v -0.441567 2.099689 0.717170 +v -0.444853 2.077783 0.739212 +v 0.942297 1.870918 0.332933 +v 0.937698 1.880986 0.303709 +v 0.913019 1.897579 0.313309 +v 0.917617 1.887511 0.342533 +v -1.156318 1.937406 -0.550100 +v -1.165622 1.907573 -0.550100 +v -1.164544 1.907237 -0.518870 +v -1.155239 1.937070 -0.518870 +v -1.178721 1.817356 -0.548875 +v -1.185531 1.786857 -0.548875 +v -1.185531 1.786857 -0.517625 +v -1.178721 1.817356 -0.517625 +v -1.200428 1.694255 -0.548875 +v -1.207237 1.663756 -0.548875 +v -1.207237 1.663756 -0.517625 +v -1.200428 1.694255 -0.517625 +v -1.222133 1.571154 -0.548875 +v -1.228943 1.540655 -0.548875 +v -1.228943 1.540655 -0.517625 +v -1.222133 1.571154 -0.517625 +v -1.157016 1.940457 -0.673875 +v -1.163825 1.909958 -0.673875 +v -1.163825 1.909958 -0.642625 +v -1.157016 1.940457 -0.642625 +v -1.178721 1.817356 -0.673875 +v -1.185531 1.786857 -0.673875 +v -1.185531 1.786857 -0.642625 +v -1.178721 1.817356 -0.642625 +v -1.200428 1.694255 -0.673875 +v -1.207237 1.663756 -0.673875 +v -1.207237 1.663756 -0.642625 +v -1.200428 1.694255 -0.642625 +v -1.222133 1.571154 -0.673875 +v -1.228943 1.540655 -0.673875 +v -1.228943 1.540655 -0.642625 +v -1.222133 1.571154 -0.642625 +v -1.157016 1.940457 -0.798875 +v -1.163825 1.909958 -0.798875 +v -1.163825 1.909958 -0.767625 +v -1.157016 1.940457 -0.767625 +v -1.178721 1.817356 -0.798875 +v -1.185531 1.786857 -0.798875 +v -1.185531 1.786857 -0.767625 +v -1.178721 1.817356 -0.767625 +v -1.200428 1.694255 -0.798875 +v -1.207237 1.663756 -0.798875 +v -1.207237 1.663756 -0.767625 +v -1.200428 1.694255 -0.767625 +v -1.222133 1.571154 -0.798875 +v -1.228943 1.540655 -0.798875 +v -1.228943 1.540655 -0.767625 +v -1.222133 1.571154 -0.767625 +v -1.157016 1.940457 -0.923875 +v -1.163825 1.909958 -0.923875 +v -1.163825 1.909958 -0.892625 +v -1.157016 1.940457 -0.892625 +v -1.178721 1.817356 -0.923875 +v -1.185531 1.786857 -0.923875 +v -1.185531 1.786857 -0.892625 +v -1.178721 1.817356 -0.892625 +v -1.200428 1.694255 -0.923875 +v -1.207237 1.663756 -0.923875 +v -1.207237 1.663756 -0.892625 +v -1.200428 1.694255 -0.892625 +v -1.222133 1.571154 -0.923875 +v -1.228943 1.540655 -0.923875 +v -1.228943 1.540655 -0.892625 +v -1.222133 1.571154 -0.892625 +v -1.157016 1.940457 -1.048875 +v -1.163825 1.909958 -1.048875 +v -1.163825 1.909958 -1.017625 +v -1.157016 1.940457 -1.017625 +v -1.178721 1.817356 -1.048875 +v -1.185531 1.786857 -1.048875 +v -1.185531 1.786857 -1.017625 +v -1.178721 1.817356 -1.017625 +v -1.200428 1.694255 -1.048875 +v -1.207237 1.663756 -1.048875 +v -1.207237 1.663756 -1.017625 +v -1.200428 1.694255 -1.017625 +v -1.222133 1.571154 -1.048875 +v -1.228943 1.540655 -1.048875 +v -1.228943 1.540655 -1.017625 +v -1.222133 1.571154 -1.017625 +v -1.157016 1.940457 -1.173875 +v -1.163825 1.909958 -1.173875 +v -1.163825 1.909958 -1.142625 +v -1.157016 1.940457 -1.142625 +v -1.178721 1.817356 -1.173875 +v -1.185531 1.786857 -1.173875 +v -1.185531 1.786857 -1.142625 +v -1.178721 1.817356 -1.142625 +v -1.200428 1.694255 -1.173875 +v -1.207237 1.663756 -1.173875 +v -1.207237 1.663756 -1.142625 +v -1.200428 1.694255 -1.142625 +v -1.222133 1.571154 -1.173875 +v -1.228943 1.540655 -1.173875 +v -1.228943 1.540655 -1.142625 +v -1.222133 1.571154 -1.142625 +v 0.017136 0.743499 0.724780 +v 0.004522 0.734500 0.751918 +v -0.022795 0.747049 0.743382 +v -0.010181 0.756049 0.716244 +v -0.932735 1.892860 -0.303414 +v -0.921417 1.904215 -0.330238 +v -0.922581 1.875637 -0.342828 +v -0.933899 1.864282 -0.316004 +v -0.871601 1.130094 -0.328227 +v -0.874083 1.115559 -0.300674 +v -0.888143 1.140746 -0.288653 +v -0.885661 1.155281 -0.316206 +v -0.354684 2.391416 -0.290709 +v -0.345393 2.386196 -0.320086 +v -0.372583 2.372046 -0.326171 +v -0.381874 2.377266 -0.296794 +v 0.383366 2.379659 -0.294388 +v 0.378403 2.372027 -0.324283 +v 0.349512 2.383803 -0.322492 +v 0.354475 2.391435 -0.292597 +v -0.359405 0.609935 0.285871 +v -0.343644 0.613086 0.312670 +v -0.367861 0.628427 0.325109 +v -0.383623 0.625276 0.298310 +v 0.376633 0.615788 0.286180 +v 0.384590 0.629038 0.313341 +v 0.356245 0.622573 0.324799 +v 0.348287 0.609324 0.297639 +v 0.372838 0.627684 -0.327806 +v 0.386201 0.623987 -0.299800 +v 0.360040 0.610678 -0.289074 +v 0.346677 0.614375 -0.317080 +v 0.657378 1.298058 0.712639 +v 0.654377 1.267693 0.705891 +v 0.678131 1.269832 0.685699 +v 0.681132 1.300197 0.692447 +v -0.350919 2.380516 0.323522 +v -0.347705 2.392903 0.295013 +v -0.376347 2.382946 0.287458 +v -0.379561 2.370559 0.315968 +v 0.415770 2.049235 0.711656 +v 0.433448 2.064315 0.690760 +v 0.410693 2.085341 0.686682 +v 0.393014 2.070262 0.707578 +v 0.675740 1.267926 -0.689162 +v 0.653419 1.269644 -0.710965 +v 0.659769 1.299965 -0.715076 +v 0.682090 1.298246 -0.693273 +v 0.020709 0.791764 0.692041 +v 0.012137 0.813454 0.712841 +v -0.017903 0.807859 0.706297 +v -0.009332 0.786169 0.685497 +v 0.012411 0.812776 -0.716227 +v 0.020553 0.791856 -0.694488 +v -0.009605 0.786847 -0.688011 +v -0.017748 0.807768 -0.709750 +v -0.658659 1.301218 -0.714382 +v -0.650449 1.271109 -0.712762 +v -0.671239 1.266673 -0.689856 +v -0.679449 1.296781 -0.691476 +v -0.880574 1.849442 0.320662 +v -0.869416 1.878621 0.319862 +v -0.879170 1.881541 0.290318 +v -0.890328 1.852362 0.291118 +v 0.430095 2.071926 -0.688614 +v 0.424389 2.049967 -0.710104 +v 0.396367 2.062652 -0.715624 +v 0.402074 2.084610 -0.694134 +v -0.396101 2.083585 -0.697934 +v -0.396827 2.059312 -0.717603 +v -0.424750 2.050992 -0.706304 +v -0.424023 2.075265 -0.686635 +v -0.355627 0.622050 -0.328835 +v -0.344899 0.609076 -0.302507 +v -0.371639 0.616312 -0.288045 +v -0.382368 0.629286 -0.314372 +v 0.890566 1.844954 -0.310510 +v 0.875991 1.865047 -0.329496 +v 0.874790 1.886029 -0.306370 +v 0.889365 1.865937 -0.287384 +v 0.871530 1.122561 0.319584 +v 0.881710 1.119498 0.290198 +v 0.893825 1.148279 0.291396 +v 0.883646 1.151341 0.320782 +v -0.870180 1.116141 0.310253 +v -0.875363 1.142718 0.325854 +v -0.889564 1.154698 0.300727 +v -0.884381 1.128121 0.285126 +v 0.892881 1.146892 -0.292548 +v 0.879864 1.118546 -0.294453 +v 0.872474 1.123948 -0.324332 +v 0.885491 1.152294 -0.322427 +v -0.396307 2.059003 0.714012 +v -0.396346 2.083800 0.694994 +v -0.424543 2.075575 0.684326 +v -0.424505 2.050777 0.703344 +v 0.888492 1.845253 0.312187 +v 0.891987 1.861657 0.285820 +v 0.876863 1.885731 0.298793 +v 0.873368 1.869327 0.325160 +v -0.882969 1.873529 -0.288091 +v -0.870514 1.884555 -0.314546 +v -0.876775 1.857454 -0.328789 +v -0.889231 1.846428 -0.302334 +v -0.699444 1.251063 0.744007 +v -0.694129 1.278865 0.757249 +v -0.703402 1.293125 0.731034 +v -0.708717 1.265323 0.717791 +v -0.658734 1.263845 0.700877 +v -0.653428 1.291646 0.714126 +v -0.676775 1.304045 0.697461 +v -0.682081 1.276244 0.684212 +v -1.250682 1.800300 -0.504844 +v -1.244312 1.830791 -0.507355 +v -1.213916 1.824775 -0.503297 +v -1.220286 1.794284 -0.500787 +v -0.982266 1.884840 0.312786 +v -0.974819 1.915070 0.310093 +v -0.951790 1.907635 0.290320 +v -0.959237 1.877405 0.293013 +v -1.167644 1.905013 -0.411622 +v -1.147809 1.916676 -0.432767 +v -1.136946 1.887927 -0.438433 +v -1.156782 1.876265 -0.417288 +v -1.257349 1.835502 -0.632977 +v -1.231683 1.852062 -0.639583 +v -1.214005 1.829928 -0.626387 +v -1.239671 1.813368 -0.619780 +v -1.269599 1.671725 -0.522009 +v -1.273585 1.701356 -0.512916 +v -1.243640 1.702671 -0.504076 +v -1.239654 1.673040 -0.513170 +v -0.968102 1.101122 0.300168 +v -0.972912 1.126964 0.317068 +v -0.948098 1.140378 0.303620 +v -0.943288 1.114537 0.286720 +v -1.267418 1.634185 -0.650618 +v -1.296099 1.645030 -0.644588 +v -1.286089 1.656278 -0.617205 +v -1.257408 1.645433 -0.623235 +v -1.219398 1.450479 -0.568415 +v -1.246450 1.444145 -0.554110 +v -1.237709 1.461724 -0.529796 +v -1.210657 1.468058 -0.544101 +v -1.225639 1.945001 -0.500581 +v -1.202324 1.964765 -0.507089 +v -1.181590 1.941875 -0.502320 +v -1.204905 1.922112 -0.495812 +v -0.739907 2.136739 0.580774 +v -0.720859 2.154554 0.563559 +v -0.706554 2.128916 0.552854 +v -0.725602 2.111100 0.570069 +v -0.475138 2.112171 0.756943 +v -0.463366 2.130661 0.734670 +v -0.462442 2.106389 0.715009 +v -0.474215 2.087899 0.737281 +v -1.291063 1.545456 -0.511536 +v -1.294220 1.576348 -0.508029 +v -1.263562 1.578856 -0.502518 +v -1.260405 1.547964 -0.506026 +v -0.948442 1.317475 0.575246 +v -0.950512 1.347329 0.584250 +v -0.924351 1.353901 0.568470 +v -0.922282 1.324048 0.559466 +v -0.756633 1.265295 0.736868 +v -0.754544 1.293962 0.749129 +v -0.740023 1.303943 0.723320 +v -0.742113 1.275275 0.711059 +v -1.225876 1.970677 -0.643945 +v -1.196034 1.974689 -0.652306 +v -1.187520 1.951665 -0.632966 +v -1.217363 1.947655 -0.624605 +v -0.708222 2.312728 0.031637 +v -0.684215 2.309114 0.011961 +v -0.679826 2.280078 0.022649 +v -0.703834 2.283692 0.042325 +v -0.411357 2.455568 0.318103 +v -0.391060 2.450723 0.294841 +v -0.394931 2.419864 0.297890 +v -0.415228 2.424709 0.321152 +v -1.228111 1.987383 -0.749764 +v -1.198901 1.987463 -0.760869 +v -1.191670 1.963609 -0.742021 +v -1.220880 1.963529 -0.730916 +v -0.277296 2.456410 -0.010313 +v -0.260202 2.446807 -0.034647 +v -0.260223 2.417734 -0.023188 +v -0.277317 2.427338 0.001146 +v 0.382950 2.477947 0.302954 +v 0.401710 2.466248 0.280868 +v 0.384206 2.440387 0.279700 +v 0.365446 2.452085 0.301786 +v -1.273125 1.853628 -0.757993 +v -1.244658 1.862154 -0.767662 +v -1.231839 1.845921 -0.744237 +v -1.260306 1.837394 -0.734568 +v -1.160286 2.014342 -0.651530 +v -1.136128 2.009203 -0.670676 +v -1.128525 1.983731 -0.654246 +v -1.152682 1.988870 -0.635100 +v 0.080443 2.494827 0.551902 +v 0.096290 2.488848 0.525641 +v 0.084872 2.459760 0.525373 +v 0.069024 2.465739 0.551635 +v 0.430137 2.160579 0.735670 +v 0.443491 2.155233 0.707927 +v 0.418740 2.138223 0.699291 +v 0.405385 2.143569 0.727033 +v -0.689883 2.292951 -0.139719 +v -0.666622 2.287297 -0.159807 +v -0.663706 2.258391 -0.148296 +v -0.686967 2.264045 -0.128207 +v -0.300987 2.458956 0.229682 +v -0.279693 2.452532 0.207731 +v -0.279809 2.422510 0.216403 +v -0.301103 2.428934 0.238355 +v -1.277962 1.837572 -0.904344 +v -1.249453 1.847567 -0.912339 +v -1.238062 1.836657 -0.885362 +v -1.266571 1.826662 -0.877367 +v -1.141885 2.033298 -0.805968 +v -1.119419 2.022224 -0.824656 +v -1.112888 2.000027 -0.803651 +v -1.135353 2.011101 -0.784963 +v -0.418521 2.457716 -0.345257 +v -0.399861 2.444430 -0.366514 +v -0.405683 2.416358 -0.354078 +v -0.424342 2.429645 -0.332821 +v -1.270686 1.522317 -0.670676 +v -1.301203 1.527655 -0.666583 +v -1.295299 1.539801 -0.638402 +v -1.264781 1.534463 -0.642495 +v -0.780971 0.763280 -0.028970 +v -0.806318 0.752764 -0.014020 +v -0.804512 0.776759 0.005919 +v -0.779165 0.787275 -0.009031 +v -0.406400 0.557614 0.294573 +v -0.420413 0.542511 0.318069 +v -0.425938 0.569777 0.332302 +v -0.411926 0.584881 0.308805 +v -0.344519 2.443688 -0.494384 +v -0.331553 2.418868 -0.508254 +v -0.339349 2.401105 -0.483754 +v -0.352316 2.425925 -0.469884 +v 0.733007 2.298563 0.154754 +v 0.732383 2.276609 0.132523 +v 0.709714 2.261625 0.147956 +v 0.710338 2.283579 0.170187 +v 0.954970 1.941841 0.330687 +v 0.946309 1.933336 0.301891 +v 0.916809 1.930163 0.311700 +v 0.925469 1.938668 0.340496 +v -1.218629 1.988256 -0.914058 +v -1.189564 1.977734 -0.918651 +v -1.189073 1.966384 -0.889539 +v -1.218138 1.976906 -0.884946 +v 0.177467 2.442102 -0.227170 +v 0.184429 2.416794 -0.244128 +v 0.169763 2.398763 -0.223239 +v 0.162800 2.424071 -0.206282 +v -1.262764 1.537974 -0.805700 +v -1.293445 1.540689 -0.810977 +v -1.299228 1.533265 -0.781178 +v -1.268546 1.530550 -0.775901 +v -1.209338 1.460512 -0.817654 +v -1.227308 1.436931 -0.827533 +v -1.233191 1.428994 -0.797885 +v -1.215221 1.452575 -0.788007 +v -0.408007 0.558527 -0.352639 +v -0.414998 0.536402 -0.331706 +v -0.416323 0.558080 -0.309236 +v -0.409331 0.580204 -0.330169 +v -0.619798 0.742553 -0.370855 +v -0.640000 0.728000 -0.351969 +v -0.629834 0.745133 -0.327893 +v -0.609632 0.759685 -0.346778 +v -1.230728 1.458044 -0.706418 +v -1.257711 1.452871 -0.691528 +v -1.246891 1.468263 -0.666576 +v -1.219908 1.473435 -0.681466 +v -1.251448 1.654751 -0.784951 +v -1.278645 1.668818 -0.778707 +v -1.267097 1.679091 -0.751547 +v -1.239899 1.665023 -0.757791 +v -0.464045 2.119620 -0.761644 +v -0.457127 2.092153 -0.774844 +v -0.468140 2.077278 -0.749664 +v -0.475058 2.104745 -0.736464 +v -1.117438 2.044700 -0.999156 +v -1.103125 2.018915 -1.009494 +v -1.108725 2.004847 -0.982157 +v -1.123038 2.030631 -0.971820 +v -1.208328 1.975719 -1.041368 +v -1.179732 1.963533 -1.044577 +v -1.180409 1.954099 -1.014793 +v -1.209006 1.966285 -1.011583 +v 0.370087 2.477650 -0.329685 +v 0.371356 2.459130 -0.354824 +v 0.353789 2.437906 -0.340075 +v 0.352520 2.456427 -0.314936 +v -0.132913 2.490284 -0.521946 +v -0.120696 2.470372 -0.542701 +v -0.124076 2.446984 -0.522253 +v -0.136292 2.466897 -0.501497 +v -1.147826 2.037695 -0.938888 +v -1.124978 2.023528 -0.954821 +v -1.120232 2.004141 -0.930775 +v -1.143079 2.018309 -0.914842 +v -1.246547 1.833347 -1.032266 +v -1.216374 1.838247 -1.038758 +v -1.208372 1.824850 -1.011683 +v -1.238545 1.819950 -1.005191 +v 0.428442 2.141779 -0.767958 +v 0.426250 2.114627 -0.783271 +v 0.404111 2.105176 -0.763344 +v 0.406303 2.132328 -0.748031 +v 0.164884 2.170792 -0.897882 +v 0.168723 2.142047 -0.909527 +v 0.159689 2.129786 -0.882239 +v 0.155849 2.158530 -0.870595 +v -1.150275 2.044380 -1.142511 +v -1.135978 2.018185 -1.151785 +v -1.138413 2.006614 -1.122859 +v -1.152710 2.032808 -1.113584 +v -1.227184 1.966674 -1.172049 +v -1.196179 1.963353 -1.174106 +v -1.194762 1.957582 -1.143427 +v -1.225767 1.960901 -1.141370 +v -0.081033 0.550667 0.561118 +v -0.099551 0.530750 0.576511 +v -0.122591 0.551858 0.576106 +v -0.104073 0.571775 0.560713 +v -0.347769 0.595844 -0.578732 +v -0.369951 0.574112 -0.575229 +v -0.384405 0.592243 -0.554278 +v -0.362223 0.613974 -0.557781 +v -1.209457 1.466930 -0.928891 +v -1.232608 1.446149 -0.925946 +v -1.231919 1.449780 -0.894915 +v -1.208768 1.470561 -0.897860 +v -1.270576 1.532740 -0.915894 +v -1.301602 1.533237 -0.912197 +v -1.297879 1.535439 -0.881248 +v -1.266853 1.534943 -0.884945 +v 0.389232 0.555409 0.297459 +v 0.391752 0.529902 0.315335 +v 0.364631 0.536924 0.329180 +v 0.362111 0.562432 0.311304 +v -0.207880 0.569246 -0.561510 +v -0.220553 0.540752 -0.563527 +v -0.238641 0.547050 -0.538834 +v -0.225968 0.575543 -0.536817 +v -1.211726 1.465680 -0.963766 +v -1.237311 1.449687 -0.971904 +v -1.245983 1.448300 -0.941913 +v -1.220399 1.464293 -0.933775 +v -1.253845 1.642335 -0.948006 +v -1.283614 1.650151 -0.953414 +v -1.290991 1.642364 -0.924063 +v -1.261222 1.634548 -0.918655 +v 0.943516 1.871226 -0.359015 +v 0.914742 1.883286 -0.357229 +v 0.926923 1.911920 -0.354350 +v 0.955696 1.899860 -0.356136 +v 0.889329 1.870978 -0.569970 +v 0.863983 1.882787 -0.556015 +v 0.874178 1.911718 -0.561980 +v 0.899523 1.899910 -0.575935 +v 0.495434 1.861500 -0.981034 +v 0.480957 1.873584 -0.956116 +v 0.486243 1.902391 -0.967014 +v 0.500721 1.890307 -0.991932 +v -0.834393 1.814548 -1.283235 +v -0.836801 1.826961 -1.254658 +v -0.835730 1.855639 -1.267025 +v -0.833322 1.843226 -1.295602 +v -1.148200 1.825860 -1.266218 +v -1.138704 1.838350 -1.239193 +v -1.145305 1.866894 -1.250066 +v -1.154801 1.854404 -1.277091 +v -1.234792 1.805403 -1.194849 +v -1.212062 1.823185 -1.182861 +v -1.232931 1.845551 -1.176468 +v -1.255660 1.827768 -1.188457 +v 0.715545 1.248159 -0.776684 +v 0.686409 1.254946 -0.767652 +v 0.692966 1.285450 -0.769420 +v 0.722102 1.278663 -0.778453 +v 0.546517 1.291902 -0.987323 +v 0.530960 1.295632 -0.960479 +v 0.538480 1.325963 -0.960335 +v 0.554037 1.322233 -0.987180 +v -0.873200 1.639222 -1.281797 +v -0.876222 1.639836 -1.250700 +v -0.868384 1.670086 -1.250535 +v -0.865361 1.669473 -1.281632 +v -1.186465 1.724763 -1.278934 +v -1.168041 1.720581 -1.254042 +v -1.162655 1.751340 -1.252860 +v -1.181080 1.755523 -1.277752 +v -1.252684 1.708028 -1.067193 +v -1.221807 1.705025 -1.063432 +v -1.221114 1.731966 -1.047613 +v -1.251991 1.734969 -1.051374 +v -0.954687 1.560271 -1.298775 +v -0.985937 1.560271 -1.298775 +v -0.985937 1.591521 -1.298775 +v -0.954687 1.591521 -1.298775 +v -0.963335 1.590347 -1.336192 +v -0.970149 1.559849 -1.336192 +v -0.952451 1.555895 -1.310741 +v -0.945637 1.586393 -1.310741 +v -1.101448 1.611016 -1.336589 +v -1.086425 1.583614 -1.336589 +v -1.066532 1.594520 -1.315097 +v -1.081556 1.621922 -1.315097 +v -0.954687 1.560271 -1.251899 +v -0.985937 1.560271 -1.251899 +v -0.985937 1.591521 -1.251900 +v -0.954687 1.591521 -1.251900 +v -1.077788 1.581977 -1.252000 +v -1.109038 1.581977 -1.252000 +v -1.109038 1.613227 -1.252000 +v -1.077788 1.613227 -1.252000 +v 0.745194 1.273139 0.735025 +v 0.735015 1.244827 0.726576 +v 0.719654 1.257532 0.702510 +v 0.729833 1.285844 0.710959 +v 0.943610 1.259989 0.566791 +v 0.931926 1.231665 0.560645 +v 0.906328 1.244857 0.548509 +v 0.918013 1.273181 0.554655 +v 0.973016 1.351905 -0.575358 +v 0.960954 1.323080 -0.574949 +v 0.934052 1.334495 -0.563880 +v 0.946114 1.363320 -0.564288 +v 0.600109 1.441009 -1.009472 +v 0.592197 1.411235 -1.004230 +v 0.577894 1.419695 -0.977765 +v 0.585806 1.449470 -0.983007 +v -1.073487 1.623846 -1.364865 +v -1.067278 1.593794 -1.358955 +v -1.058762 1.601281 -1.329834 +v -1.064971 1.631332 -1.335745 +v 0.951122 1.085692 0.312932 +v 0.926018 1.099264 0.300198 +v 0.940128 1.127087 0.302037 +v 0.965232 1.113515 0.314771 +v 0.935073 1.197188 -0.576146 +v 0.909195 1.208910 -0.563128 +v 0.922666 1.237072 -0.561709 +v 0.948544 1.225349 -0.574726 +v 0.560659 1.358615 -0.982424 +v 0.547104 1.365096 -0.955023 +v 0.557465 1.394521 -0.956857 +v 0.571020 1.388041 -0.984259 +v -0.840678 1.692593 -1.288240 +v -0.843022 1.696158 -1.257282 +v -0.836343 1.726539 -1.260275 +v -0.833999 1.722973 -1.291232 +v -1.187308 1.756017 -1.283439 +v -1.176978 1.758718 -1.254070 +v -1.181892 1.789558 -1.255177 +v -1.192222 1.786859 -1.284546 +v -1.281084 1.697572 -1.201442 +v -1.256675 1.712997 -1.189491 +v -1.276172 1.731483 -1.173532 +v -1.300580 1.716059 -1.185483 +v 0.953203 1.134244 -0.358307 +v 0.944705 1.104700 -0.363921 +v 0.914640 1.113173 -0.362995 +v 0.923138 1.142717 -0.357381 +v 0.925834 1.168328 -0.575803 +v 0.918043 1.138104 -0.577344 +v 0.890808 1.144413 -0.563379 +v 0.898599 1.174636 -0.561838 +v 0.528609 1.250118 -0.993705 +v 0.521870 1.219603 -0.993587 +v 0.506780 1.223040 -0.966439 +v 0.513519 1.253554 -0.966556 +v -0.935810 1.584189 -1.354551 +v -0.942693 1.553706 -1.354520 +v -0.936888 1.552426 -1.323841 +v -0.930005 1.582909 -1.323871 +v -0.246489 0.832329 -0.855722 +v -0.258502 0.803503 -0.856856 +v -0.266625 0.805704 -0.826760 +v -0.254612 0.834530 -0.825626 +v -1.214327 1.469654 -1.049257 +v -1.236530 1.447909 -1.052539 +v -1.241021 1.447826 -1.021614 +v -1.218818 1.469571 -1.018332 +v -1.262501 1.543276 -1.052072 +v -1.293222 1.548172 -1.055042 +v -1.296599 1.545773 -1.024067 +v -1.265878 1.540877 -1.021098 +v 0.374585 0.560388 -0.353116 +v 0.377918 0.534075 -0.336591 +v 0.358668 0.545373 -0.314720 +v 0.355335 0.571686 -0.331244 +v -0.000276 0.530372 -0.584431 +v -0.012797 0.502610 -0.577427 +v -0.023881 0.514358 -0.550675 +v -0.011360 0.542120 -0.557679 +v -1.218359 1.455832 -1.164818 +v -1.241896 1.435340 -1.163192 +v -1.245818 1.442244 -1.132967 +v -1.222281 1.462735 -1.134594 +v -1.269335 1.533842 -1.177511 +v -1.300350 1.537532 -1.178506 +v -1.301281 1.538129 -1.147276 +v -1.270266 1.534439 -1.146281 +v -1.173318 1.944097 -0.673875 +v -1.180127 1.913598 -0.673875 +v -1.180127 1.913598 -0.642625 +v -1.173318 1.944097 -0.642625 +v -1.195024 1.820996 -0.673875 +v -1.201833 1.790497 -0.673875 +v -1.201833 1.790497 -0.642625 +v -1.195024 1.820996 -0.642625 +v -1.216730 1.697895 -0.673875 +v -1.223539 1.667396 -0.673875 +v -1.223539 1.667396 -0.642625 +v -1.216730 1.697895 -0.642625 +v -1.216730 1.697895 -0.798875 +v -1.223539 1.667396 -0.798875 +v -1.223539 1.667396 -0.767625 +v -1.216730 1.697895 -0.767625 +v -0.364991 2.414379 -0.298050 +v -0.355700 2.409160 -0.327426 +v -0.382890 2.395009 -0.333511 +v -0.392181 2.400229 -0.304135 +v 0.425906 2.063924 0.730832 +v 0.443584 2.079004 0.709936 +v 0.420829 2.100030 0.705858 +v 0.403150 2.084951 0.726754 +v -0.904467 1.858820 0.329478 +v -0.893309 1.888000 0.328678 +v -0.903063 1.890920 0.299133 +v -0.914221 1.861741 0.299933 +v -0.894073 1.106308 0.319069 +v -0.899256 1.132884 0.334669 +v -0.913457 1.144864 0.309542 +v -0.908274 1.118287 0.293942 +v -0.675568 1.257920 0.720053 +v -0.670262 1.285721 0.733302 +v -0.693610 1.298119 0.716636 +v -0.698915 1.270318 0.703387 +v -1.219347 1.937230 -0.524101 +v -1.196883 1.958954 -0.524101 +v -1.177292 1.938695 -0.510599 +v -1.199756 1.916971 -0.510599 +v -0.430747 0.577754 -0.354696 +v -0.447749 0.560204 -0.335216 +v -0.436113 0.575960 -0.310866 +v -0.419111 0.593510 -0.330346 +v -1.252167 1.693828 -1.058028 +v -1.220919 1.694257 -1.058028 +v -1.221169 1.712454 -1.032624 +v -1.252416 1.712025 -1.032624 +v -1.259744 1.683084 -1.186409 +v -1.242361 1.709054 -1.186409 +v -1.255320 1.717729 -1.159328 +v -1.272704 1.691760 -1.159328 +vt 0.017442 0.019417 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.009709 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.122093 0.038835 +vt 0.110465 0.029126 +vt 0.122093 0.029126 +vt 0.168605 0.048544 +vt 0.162791 0.038835 +vt 0.168605 0.038835 +vt 0.168605 0.019417 +vt 0.162791 0.009709 +vt 0.168605 0.009709 +vt 0.168605 0.029126 +vt 0.162791 0.019417 +vt 0.005814 0.029126 +vt 0.017442 0.038835 +vt 0.005814 0.038835 +vt 0.348837 0.038835 +vt 0.343023 0.029126 +vt 0.348837 0.029126 +vt 0.348837 0.048544 +vt 0.343023 0.038835 +vt 0.348837 0.019417 +vt 0.343023 0.009709 +vt 0.348837 0.009709 +vt 0.343023 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.308140 0.048544 +vt 0.302326 0.038835 +vt 0.308140 0.038835 +vt 0.308140 0.019417 +vt 0.302326 0.009709 +vt 0.308140 0.009709 +vt 0.308140 0.029126 +vt 0.302326 0.019417 +vt 0.005814 0.029126 +vt 0.017442 0.038835 +vt 0.005814 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011814 0.038878 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.009709 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.011628 0.009709 +vt 0.017442 0.009709 +vt 0.005814 0.038835 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.038835 +vt 0.005814 0.038835 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.011628 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.023256 0.029126 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.023256 0.019417 +vt 0.011628 0.009709 +vt 0.023256 0.009709 +vt 0.005814 0.038835 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.017442 0.038835 +vt 0.023256 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.029126 +vt 0.023256 0.038835 +vt 0.017442 0.019417 +vt 0.023256 0.029126 +vt 0.017442 0.009709 +vt 0.023256 0.019417 +vt 0.424419 0.038835 +vt 0.412791 0.048544 +vt 0.412791 0.038835 +vt 0.424419 0.019417 +vt 0.412791 0.009709 +vt 0.424419 0.009709 +vt 0.424419 0.029126 +vt 0.412791 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.319767 0.029126 +vt 0.308140 0.038835 +vt 0.308140 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.017442 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.011628 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.011628 0.038835 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.011628 0.009709 +vt 0.005814 0.048544 +vt 0.174419 0.029126 +vt 0.174419 0.048544 +vt 0.174419 0.038835 +vt 0.174419 0.019417 +vt 0.174419 0.009709 +vt 0.005814 0.019417 +vt 0.011628 0.009709 +vt 0.005814 0.048544 +vt 0.406977 0.029126 +vt 0.412791 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.313953 0.029126 +vt 0.313953 0.048544 +vt 0.313953 0.038835 +vt 0.313953 0.019417 +vt 0.313953 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.151163 0.019417 +vt 0.139535 0.009709 +vt 0.151163 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.581395 0.029126 +vt 0.569767 0.019417 +vt 0.581395 0.019417 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.180233 0.029126 +vt 0.168605 0.038835 +vt 0.168605 0.029126 +vt 0.005814 0.019417 +vt 0.011628 0.029126 +vt 0.005814 0.048544 +vt 0.383721 0.029126 +vt 0.372093 0.038835 +vt 0.372093 0.029126 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.011628 0.019417 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.343023 0.029126 +vt 0.331395 0.038835 +vt 0.331395 0.029126 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.563953 0.029126 +vt 0.563953 0.019417 +vt 0.569767 0.029126 +vt 0.563953 0.038835 +vt 0.569767 0.048544 +vt 0.569767 0.038835 +vt 0.569767 0.009709 +vt 0.563953 0.009709 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.005814 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.048544 +vt 0.116279 0.029126 +vt 0.116279 0.019417 +vt 0.279070 0.029126 +vt 0.273256 0.038835 +vt 0.273256 0.029126 +vt 0.279070 0.038835 +vt 0.273256 0.048544 +vt 0.279070 0.019417 +vt 0.273256 0.009709 +vt 0.279070 0.009709 +vt 0.273256 0.019417 +vt 0.284884 0.038835 +vt 0.284884 0.029126 +vt 0.279070 0.048544 +vt 0.284884 0.019417 +vt 0.284884 0.009709 +vt 0.383721 0.038835 +vt 0.372093 0.048544 +vt 0.383721 0.019417 +vt 0.372093 0.009709 +vt 0.383721 0.009709 +vt 0.372093 0.019417 +vt 0.360465 0.038835 +vt 0.360465 0.029126 +vt 0.017442 0.009709 +vt 0.005814 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.038835 +vt 0.017442 0.038835 +vt 0.540698 0.019417 +vt 0.529070 0.029126 +vt 0.529070 0.019417 +vt 0.540698 0.029126 +vt 0.529070 0.038835 +vt 0.540698 0.048544 +vt 0.540698 0.038835 +vt 0.424419 0.019417 +vt 0.412791 0.029126 +vt 0.412791 0.019417 +vt 0.424419 0.029126 +vt 0.412791 0.038835 +vt 0.424419 0.048544 +vt 0.424419 0.038835 +vt 0.715116 0.038835 +vt 0.703488 0.048544 +vt 0.703488 0.038835 +vt 0.715116 0.019417 +vt 0.703488 0.009709 +vt 0.715116 0.009709 +vt 0.715116 0.029126 +vt 0.703488 0.019417 +vt 0.697674 0.029126 +vt 0.703488 0.029126 +vt 0.290698 0.038835 +vt 0.279070 0.048544 +vt 0.279070 0.038835 +vt 0.290698 0.019417 +vt 0.279070 0.009709 +vt 0.290698 0.009709 +vt 0.290698 0.029126 +vt 0.279070 0.019417 +vt 0.476744 0.029126 +vt 0.470930 0.038835 +vt 0.470930 0.029126 +vt 0.476744 0.038835 +vt 0.470930 0.048544 +vt 0.476744 0.019417 +vt 0.470930 0.009709 +vt 0.476744 0.009709 +vt 0.470930 0.019417 +vt 0.482558 0.038835 +vt 0.482558 0.029126 +vt 0.482558 0.048544 +vt 0.482558 0.009709 +vt 0.482558 0.019417 +vt 0.453488 0.009709 +vt 0.441860 0.019417 +vt 0.441860 0.009709 +vt 0.453488 0.029126 +vt 0.453488 0.019417 +vt 0.453488 0.038835 +vt 0.441860 0.029126 +vt 0.441860 0.038835 +vt 0.436047 0.048544 +vt 0.436047 0.038835 +vt 0.581395 0.038835 +vt 0.581395 0.009709 +vt 0.308140 0.019417 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.308140 0.029126 +vt 0.296512 0.038835 +vt 0.308140 0.048544 +vt 0.308140 0.038835 +vt 0.139535 0.029126 +vt 0.151163 0.029126 +vt 0.139535 0.038835 +vt 0.151163 0.038835 +vt 0.151163 0.048544 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.197674 0.029126 +vt 0.191860 0.019417 +vt 0.197674 0.019417 +vt 0.191860 0.038835 +vt 0.191860 0.029126 +vt 0.197674 0.038835 +vt 0.191860 0.048544 +vt 0.191860 0.009709 +vt 0.197674 0.009709 +vt 0.209302 0.029126 +vt 0.209302 0.019417 +vt 0.209302 0.048544 +vt 0.209302 0.038835 +vt 0.209302 0.009709 +vt 0.343023 0.038835 +vt 0.331395 0.048544 +vt 0.343023 0.019417 +vt 0.331395 0.009709 +vt 0.343023 0.009709 +vt 0.331395 0.019417 +vt 0.325581 0.038835 +vt 0.325581 0.029126 +vt 0.180233 0.038835 +vt 0.168605 0.048544 +vt 0.180233 0.019417 +vt 0.168605 0.009709 +vt 0.180233 0.009709 +vt 0.168605 0.019417 +vt 0.162791 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.005814 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.048544 +vt 0.023256 0.038835 +vt 0.488372 0.019417 +vt 0.476744 0.009709 +vt 0.488372 0.009709 +vt 0.488372 0.029126 +vt 0.476744 0.019417 +vt 0.476744 0.038835 +vt 0.476744 0.029126 +vt 0.476744 0.048544 +vt 0.470930 0.038835 +vt 0.680233 0.019417 +vt 0.668605 0.009709 +vt 0.680233 0.009709 +vt 0.680233 0.029126 +vt 0.668605 0.019417 +vt 0.668605 0.038835 +vt 0.668605 0.029126 +vt 0.232558 0.029126 +vt 0.226744 0.019417 +vt 0.232558 0.019417 +vt 0.226744 0.038835 +vt 0.226744 0.029126 +vt 0.232558 0.038835 +vt 0.226744 0.048544 +vt 0.226744 0.009709 +vt 0.232558 0.009709 +vt 0.238372 0.029126 +vt 0.238372 0.019417 +vt 0.238372 0.048544 +vt 0.238372 0.038835 +vt 0.238372 0.009709 +vt 0.482558 0.038835 +vt 0.470930 0.048544 +vt 0.470930 0.038835 +vt 0.482558 0.009709 +vt 0.470930 0.019417 +vt 0.470930 0.009709 +vt 0.482558 0.029126 +vt 0.482558 0.019417 +vt 0.319767 0.038835 +vt 0.308140 0.048544 +vt 0.319767 0.019417 +vt 0.308140 0.009709 +vt 0.319767 0.009709 +vt 0.308140 0.019417 +vt 0.302326 0.029126 +vt 0.552326 0.038835 +vt 0.540698 0.048544 +vt 0.540698 0.038835 +vt 0.552326 0.019417 +vt 0.540698 0.009709 +vt 0.552326 0.009709 +vt 0.552326 0.029126 +vt 0.540698 0.019417 +vt 0.529070 0.029126 +vt 0.540698 0.029126 +vt 0.110465 0.048544 +vt 0.110465 0.038835 +vt 0.122093 0.009709 +vt 0.110465 0.019417 +vt 0.110465 0.009709 +vt 0.122093 0.019417 +vt 0.063953 0.048544 +vt 0.290698 0.019417 +vt 0.284884 0.029126 +vt 0.284884 0.019417 +vt 0.290698 0.029126 +vt 0.284884 0.038835 +vt 0.290698 0.048544 +vt 0.290698 0.038835 +vt 0.284884 0.009709 +vt 0.290698 0.009709 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.296512 0.048544 +vt 0.296512 0.038835 +vt 0.296512 0.009709 +vt 0.063953 0.009709 +vt 0.063953 0.019417 +vt 0.063953 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.186047 0.029126 +vt 0.186047 0.048544 +vt 0.186047 0.038835 +vt 0.186047 0.009709 +vt 0.023256 0.029126 +vt 0.023256 0.019417 +vt 0.116279 0.009709 +vt 0.116279 0.038835 +vt 0.156977 0.038835 +vt 0.162791 0.029126 +vt 0.220930 0.029126 +vt 0.220930 0.038835 +vt 0.220930 0.019417 +vt 0.220930 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.186047 0.019417 +vt 0.023256 0.048544 +vt 0.063953 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.019417 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.220930 0.048544 +vt 0.156977 0.019417 +vt 0.156977 0.029126 +vt 0.156977 0.009709 +vt 0.156977 0.048544 +vt 0.162791 0.048544 +vt 0.116279 0.048544 +vt 0.302326 0.038835 +vt 0.302326 0.019417 +vt 0.302326 0.009709 +vt 0.023256 0.038835 +vt 0.017442 0.029126 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.244186 0.029126 +vt 0.244186 0.038835 +vt 0.244186 0.048544 +vt 0.244186 0.019417 +vt 0.302326 0.048544 +vt 0.244186 0.009709 +vt 0.290698 0.038835 +vt 0.191860 0.029126 +vt 0.290698 0.029126 +vt 0.279070 0.029126 +vt 0.279070 0.048544 +vt 0.279070 0.038835 +vt 0.279070 0.019417 +vt 0.279070 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.023256 0.019417 +vt 0.238372 0.029126 +vt 0.238372 0.038835 +vt 0.238372 0.048544 +vt 0.238372 0.019417 +vt 0.238372 0.009709 +vt 0.273256 0.029126 +vt 0.279070 0.029126 +vt 0.273256 0.038835 +vt 0.273256 0.019417 +vt 0.273256 0.009709 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.197674 0.029126 +vt 0.197674 0.038835 +vt 0.197674 0.048544 +vt 0.197674 0.019417 +vt 0.273256 0.048544 +vt 0.406977 0.038835 +vt 0.406977 0.019417 +vt 0.406977 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.261628 0.029126 +vt 0.261628 0.038835 +vt 0.261628 0.048544 +vt 0.261628 0.019417 +vt 0.406977 0.048544 +vt 0.261628 0.009709 +vt 0.459302 0.038835 +vt 0.459302 0.019417 +vt 0.459302 0.009709 +vt 0.459302 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.038835 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.058140 0.029126 +vt 0.058140 0.038835 +vt 0.058140 0.048544 +vt 0.058140 0.019417 +vt 0.023256 0.029126 +vt 0.377907 0.038835 +vt 0.377907 0.048544 +vt 0.290698 0.048544 +vt 0.290698 0.019417 +vt 0.377907 0.009709 +vt 0.377907 0.019417 +vt 0.377907 0.029126 +vt 0.459302 0.048544 +vt 0.191860 0.038835 +vt 0.191860 0.048544 +vt 0.191860 0.009709 +vt 0.191860 0.019417 +vt 0.290698 0.009709 +vt 0.261628 0.038835 +vt 0.261628 0.019417 +vt 0.261628 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.069767 0.029126 +vt 0.069767 0.038835 +vt 0.069767 0.048544 +vt 0.069767 0.019417 +vt 0.261628 0.029126 +vt 0.261628 0.048544 +vt 0.069767 0.009709 +vt 0.023256 0.029126 +vt 0.017442 0.029126 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.337209 0.038835 +vt 0.354651 0.038835 +vt 0.354651 0.048544 +vt 0.354651 0.009709 +vt 0.354651 0.019417 +vt 0.354651 0.029126 +vt 0.023256 0.019417 +vt 0.040698 0.029126 +vt 0.023256 0.029126 +vt 0.337209 0.019417 +vt 0.337209 0.029126 +vt 0.337209 0.009709 +vt 0.337209 0.048544 +vt 0.343023 0.048544 +vt 0.127907 0.029126 +vt 0.127907 0.019417 +vt 0.127907 0.009709 +vt 0.127907 0.038835 +vt 0.023256 0.009709 +vt 0.529070 0.038835 +vt 0.529070 0.019417 +vt 0.529070 0.009709 +vt 0.023256 0.038835 +vt 0.215116 0.029126 +vt 0.215116 0.038835 +vt 0.023256 0.048544 +vt 0.215116 0.048544 +vt 0.023256 0.009709 +vt 0.215116 0.019417 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.325581 0.029126 +vt 0.447674 0.038835 +vt 0.325581 0.038835 +vt 0.447674 0.048544 +vt 0.325581 0.048544 +vt 0.325581 0.019417 +vt 0.447674 0.009709 +vt 0.447674 0.019417 +vt 0.447674 0.029126 +vt 0.529070 0.048544 +vt 0.215116 0.009709 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.139535 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.040698 0.009709 +vt 0.139535 0.019417 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.009709 +vt 0.023256 0.048544 +vt 0.069767 0.038835 +vt 0.029070 0.029126 +vt 0.069767 0.029126 +vt 0.029070 0.019417 +vt 0.069767 0.019417 +vt 0.069767 0.009709 +vt 0.029070 0.009709 +vt 0.029070 0.048544 +vt 0.029070 0.038835 +vt 0.255814 0.038835 +vt 0.255814 0.029126 +vt 0.255814 0.019417 +vt 0.255814 0.009709 +vt 0.255814 0.048544 +vt 0.296512 0.038835 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.296512 0.009709 +vt 0.302326 0.029126 +vt 0.296512 0.048544 +vt 0.302326 0.048544 +vt 0.162791 0.038835 +vt 0.162791 0.019417 +vt 0.162791 0.009709 +vt 0.040698 0.038835 +vt 0.162791 0.048544 +vt 0.040698 0.048544 +vt 0.040698 0.009709 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.360465 0.009709 +vt 0.360465 0.019417 +vt 0.273256 0.029126 +vt 0.273256 0.038835 +vt 0.360465 0.048544 +vt 0.273256 0.048544 +vt 0.273256 0.019417 +vt 0.058140 0.038835 +vt 0.058140 0.048544 +vt 0.058140 0.009709 +vt 0.058140 0.019417 +vt 0.058140 0.029126 +vt 0.017442 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.038835 +vt 0.325581 0.009709 +vt 0.325581 0.019417 +vt 0.273256 0.029126 +vt 0.273256 0.038835 +vt 0.325581 0.048544 +vt 0.273256 0.048544 +vt 0.273256 0.019417 +vt 0.034884 0.038835 +vt 0.034884 0.048544 +vt 0.034884 0.009709 +vt 0.034884 0.019417 +vt 0.034884 0.029126 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.517442 0.019417 +vt 0.517442 0.029126 +vt 0.517442 0.038835 +vt 0.517442 0.048544 +vt 0.563953 0.048544 +vt 0.517442 0.009709 +vt 0.284884 0.029126 +vt 0.284884 0.038835 +vt 0.284884 0.048544 +vt 0.284884 0.009709 +vt 0.284884 0.019417 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.040698 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.040698 0.009709 +vt 0.023256 0.009709 +vt 0.005814 0.009709 +vt 0.017442 0.009709 +vt 0.005814 0.009709 +vt 0.523256 0.009709 +vt 0.529070 0.009709 +vt 0.523256 0.019417 +vt 0.523256 0.038835 +vt 0.523256 0.029126 +vt 0.523256 0.048544 +vt 0.331395 0.019417 +vt 0.331395 0.029126 +vt 0.331395 0.038835 +vt 0.331395 0.048544 +vt 0.063953 0.009709 +vt 0.063953 0.019417 +vt 0.063953 0.029126 +vt 0.063953 0.038835 +vt 0.063953 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.540698 0.009709 +vt 0.470930 0.019417 +vt 0.470930 0.009709 +vt 0.470930 0.029126 +vt 0.436047 0.048544 +vt 0.470930 0.048544 +vt 0.436047 0.019417 +vt 0.436047 0.029126 +vt 0.436047 0.038835 +vt 0.337209 0.048544 +vt 0.337209 0.009709 +vt 0.337209 0.019417 +vt 0.337209 0.029126 +vt 0.337209 0.038835 +vt 0.093023 0.038835 +vt 0.093023 0.048544 +vt 0.093023 0.019417 +vt 0.093023 0.029126 +vt 0.040698 0.048544 +vt 0.040698 0.009709 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.040698 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.017442 0.009709 +vt 0.488372 0.038835 +vt 0.436047 0.019417 +vt 0.436047 0.009709 +vt 0.436047 0.029126 +vt 0.389535 0.038835 +vt 0.389535 0.048544 +vt 0.389535 0.009709 +vt 0.389535 0.019417 +vt 0.389535 0.029126 +vt 0.116279 0.038835 +vt 0.116279 0.048544 +vt 0.116279 0.019417 +vt 0.116279 0.029126 +vt 0.058140 0.048544 +vt 0.058140 0.009709 +vt 0.058140 0.019417 +vt 0.058140 0.029126 +vt 0.058140 0.038835 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.441860 0.048544 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.009709 +vt 0.470930 0.029126 +vt 0.459302 0.038835 +vt 0.459302 0.029126 +vt 0.023256 0.048544 +vt 0.005814 0.038835 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.005814 0.029126 +vt 0.023256 0.019417 +vt 0.005814 0.019417 +vt 0.023256 0.009709 +vt 0.005814 0.009709 +vt 0.029070 0.038835 +vt 0.029070 0.029126 +vt 0.697674 0.038835 +vt 0.697674 0.019417 +vt 0.697674 0.009709 +vt 0.651163 0.038835 +vt 0.651163 0.048544 +vt 0.697674 0.048544 +vt 0.651163 0.009709 +vt 0.651163 0.019417 +vt 0.651163 0.029126 +vt 0.436047 0.029126 +vt 0.436047 0.038835 +vt 0.436047 0.048544 +vt 0.436047 0.019417 +vt 0.331395 0.038835 +vt 0.331395 0.048544 +vt 0.331395 0.009709 +vt 0.331395 0.019417 +vt 0.331395 0.029126 +vt 0.029070 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.680233 0.038835 +vt 0.668605 0.048544 +vt 0.662791 0.038835 +vt 0.662791 0.019417 +vt 0.662791 0.009709 +vt 0.662791 0.029126 +vt 0.488372 0.038835 +vt 0.662791 0.048544 +vt 0.488372 0.048544 +vt 0.488372 0.009709 +vt 0.488372 0.019417 +vt 0.488372 0.029126 +vt 0.383721 0.038835 +vt 0.383721 0.048544 +vt 0.383721 0.009709 +vt 0.383721 0.019417 +vt 0.383721 0.029126 +vt 0.116279 0.038835 +vt 0.116279 0.048544 +vt 0.116279 0.019417 +vt 0.116279 0.029126 +vt 0.052326 0.009709 +vt 0.052326 0.019417 +vt 0.052326 0.029126 +vt 0.052326 0.038835 +vt 0.029070 0.048544 +vt 0.052326 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.029070 0.029126 +vt 0.029070 0.038835 +vt 0.023256 0.038835 +vt 0.459302 0.009709 +vt 0.459302 0.019417 +vt 0.424419 0.038835 +vt 0.424419 0.048544 +vt 0.459302 0.048544 +vt 0.424419 0.009709 +vt 0.424419 0.019417 +vt 0.424419 0.029126 +vt 0.313953 0.029126 +vt 0.313953 0.038835 +vt 0.313953 0.048544 +vt 0.313953 0.019417 +vt 0.029070 0.038835 +vt 0.029070 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.029070 0.029126 +vt 0.023256 0.009709 +vt 0.238372 0.019417 +vt 0.296512 0.009709 +vt 0.238372 0.029126 +vt 0.238372 0.048544 +vt 0.296512 0.048544 +vt 0.034884 0.009709 +vt 0.034884 0.019417 +vt 0.034884 0.029126 +vt 0.034884 0.038835 +vt 0.238372 0.038835 +vt 0.034884 0.048544 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.308140 0.009709 +vt 0.406977 0.009709 +vt 0.412791 0.009709 +vt 0.406977 0.019417 +vt 0.406977 0.029126 +vt 0.406977 0.048544 +vt 0.406977 0.038835 +vt 0.325581 0.019417 +vt 0.325581 0.029126 +vt 0.325581 0.038835 +vt 0.325581 0.048544 +vt 0.040698 0.019417 +vt 0.325581 0.009709 +vt 0.040698 0.029126 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.005814 0.009709 +vt 0.011628 0.009709 +vt 0.424419 0.009709 +vt 0.005814 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.424419 0.048544 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.284884 0.048544 +vt 0.383721 0.048544 +vt 0.005814 0.048544 +vt 0.529070 0.048544 +vt 0.412791 0.048544 +vt 0.715116 0.048544 +vt 0.290698 0.048544 +vt 0.476744 0.048544 +vt 0.581395 0.048544 +vt 0.197674 0.048544 +vt 0.343023 0.048544 +vt 0.180233 0.048544 +vt 0.005814 0.009709 +vt 0.232558 0.048544 +vt 0.482558 0.048544 +vt 0.319767 0.048544 +vt 0.552326 0.048544 +vt 0.122093 0.048544 +vt 0.284884 0.048544 +vt 0.197674 0.009709 +vt 0.058140 0.009709 +vt 0.127907 0.048544 +vt 0.325581 0.009709 +vt 0.069767 0.048544 +vt 0.273256 0.009709 +vt 0.273256 0.009709 +vt 0.331395 0.009709 +vt 0.436047 0.009709 +vt 0.093023 0.009709 +vt 0.488372 0.048544 +vt 0.116279 0.009709 +vt 0.453488 0.048544 +vt 0.005814 0.048544 +vt 0.436047 0.009709 +vt 0.680233 0.048544 +vt 0.116279 0.009709 +vt 0.023256 0.048544 +vt 0.313953 0.009709 +vt 0.238372 0.009709 +vt 0.040698 0.009709 +vn -0.1987 -0.9327 0.3009 +vn -0.4297 -0.5556 -0.7118 +vn -0.0322 -0.8001 0.5990 +vn 0.8167 0.0672 0.5732 +vn 0.5228 0.6581 0.5419 +vn -0.0041 0.9160 -0.4012 +vn 0.0025 0.6642 -0.7475 +vn -0.2349 -0.6674 -0.7066 +vn 0.1861 0.6827 -0.7066 +vn -0.3240 -0.5971 -0.7338 +vn -0.4111 0.7374 -0.5360 +vn -0.0434 0.6814 -0.7306 +vn 0.0026 -0.7882 0.6154 +vn -0.6562 -0.5407 -0.5264 +vn 0.3294 0.7106 0.6217 +vn 0.2890 -0.8069 0.5151 +vn 0.5413 0.6728 0.5043 +vn -0.2631 -0.6162 -0.7423 +vn -0.4144 0.6926 -0.5904 +vn -0.0036 0.6890 -0.7247 +vn 0.0106 -0.7691 0.6390 +vn -0.4894 -0.6433 -0.5888 +vn 0.2780 0.7127 0.6441 +vn -0.1731 -0.5478 0.8185 +vn 0.4082 0.7238 0.5563 +vn -0.2815 -0.6019 -0.7473 +vn -0.5240 0.6396 -0.5624 +vn -0.0329 0.6894 -0.7237 +vn 0.0527 -0.7923 0.6079 +vn -0.5185 -0.6701 -0.5311 +vn 0.3061 0.7107 0.6334 +vn 0.3483 -0.6377 0.6870 +vn 0.3925 0.7915 0.4685 +vn -0.3480 -0.6379 -0.6871 +vn -0.5016 -0.7102 0.4940 +vn -0.7390 -0.1192 -0.6631 +vn -0.2105 -0.7437 0.6346 +vn 0.5180 0.2010 0.8315 +vn 0.4184 0.6429 0.6416 +vn 0.3503 0.7327 -0.5835 +vn 0.2726 0.7074 -0.6521 +vn -0.8686 0.4478 -0.2122 +vn -0.3249 -0.6289 -0.7064 +vn -0.2826 -0.8411 0.4611 +vn -0.7449 -0.2105 -0.6331 +vn -0.1211 -0.7602 0.6383 +vn 0.5858 0.2530 0.7700 +vn 0.4078 0.6594 0.6316 +vn 0.1204 0.8161 -0.5652 +vn 0.4208 0.8642 -0.2758 +vn -0.2328 0.4357 0.8695 +vn -0.1424 0.3654 0.9199 +vn 0.1164 -0.7448 0.6571 +vn 0.1257 -0.7617 -0.6356 +vn -0.0781 -0.6041 -0.7931 +vn 0.0683 0.7675 0.6374 +vn 0.4322 -0.3767 0.8194 +vn -0.0481 0.7362 -0.6750 +vn -0.2721 0.8014 0.5326 +vn 0.2499 -0.9033 0.3486 +vn 0.2764 -0.4564 -0.8457 +vn 0.3547 -0.2366 -0.9045 +vn 0.0214 -0.6144 -0.7887 +vn -0.5098 0.5459 -0.6649 +vn -0.0537 0.7549 -0.6536 +vn 0.1032 -0.6636 0.7409 +vn 0.3203 -0.6132 -0.7221 +vn -0.0290 0.7634 0.6453 +vn 0.2851 -0.5604 0.7776 +vn -0.4289 0.6390 0.6385 +vn 0.1055 0.5991 -0.7937 +vn -0.7651 -0.0157 -0.6437 +vn 0.3776 0.7691 -0.5156 +vn -0.3675 -0.6247 -0.6889 +vn -0.5403 -0.7272 0.4234 +vn -0.1941 -0.7585 0.6221 +vn 0.6650 -0.0222 0.7465 +vn 0.3773 0.6784 0.6304 +vn 0.1253 0.6280 -0.7681 +vn -0.6681 -0.3254 -0.6692 +vn 0.1932 0.7529 -0.6291 +vn -0.3097 -0.6454 -0.6982 +vn -0.3230 -0.7746 0.5437 +vn -0.1680 -0.7435 0.6473 +vn 0.5529 0.3586 0.7521 +vn 0.3940 0.6391 0.6605 +vn 0.1134 -0.7473 0.6548 +vn 0.0412 -0.7952 -0.6050 +vn -0.1031 -0.6071 -0.7879 +vn 0.0994 0.7632 0.6384 +vn 0.4049 -0.4241 0.8101 +vn -0.0390 0.7303 -0.6820 +vn -0.2053 0.8301 0.5185 +vn 0.8458 -0.4633 0.2644 +vn 0.3933 -0.0332 -0.9188 +vn 0.3572 0.1234 -0.9259 +vn 0.0197 0.7699 -0.6379 +vn 0.3813 -0.4495 -0.8078 +vn -0.3840 0.7257 -0.5708 +vn 0.1511 -0.7325 -0.6638 +vn 0.2022 -0.7544 0.6245 +vn -0.0330 -0.5991 0.8000 +vn -0.5785 0.4643 0.6706 +vn -0.0590 0.7452 0.6642 +vn 0.2660 0.5494 -0.7921 +vn -0.6977 -0.2607 -0.6672 +vn 0.5392 0.4678 -0.7003 +vn -0.3682 -0.6581 -0.6568 +vn -0.6589 -0.4275 0.6189 +vn -0.3391 -0.6858 0.6439 +vn 0.5198 0.3263 0.7895 +vn 0.4013 0.5646 0.7212 +vn 0.1574 0.6517 -0.7420 +vn -0.4791 -0.5461 -0.6872 +vn 0.1738 0.7123 -0.6800 +vn -0.2478 -0.6701 -0.6997 +vn -0.2610 -0.7103 0.6537 +vn -0.1769 -0.7169 0.6743 +vn 0.3358 0.6040 0.7228 +vn 0.2714 0.6559 0.7044 +vn 0.0637 0.7755 -0.6282 +vn 0.5355 -0.2746 -0.7987 +vn -0.3209 0.8036 -0.5013 +vn 0.0937 -0.7779 -0.6214 +vn 0.1674 -0.7911 0.5883 +vn -0.0858 -0.5874 0.8048 +vn -0.6290 0.3764 0.6802 +vn -0.0707 0.7365 0.6728 +vn -0.0274 -0.6061 -0.7949 +vn -0.5492 0.4956 -0.6729 +vn -0.0503 0.7458 -0.6643 +vn 0.1415 -0.7141 0.6856 +vn 0.1464 -0.7715 -0.6191 +vn 0.0185 0.7670 0.6414 +vn 0.3708 -0.4877 0.7903 +vn -0.3791 0.7174 0.5845 +vn 0.2682 0.5175 -0.8126 +vn -0.7339 -0.1388 -0.6649 +vn 0.6189 0.4247 -0.6608 +vn -0.4028 -0.6453 -0.6491 +vn -0.7259 -0.3441 0.5955 +vn -0.3715 -0.6781 0.6342 +vn 0.5317 0.2193 0.8181 +vn 0.4652 0.5966 0.6540 +vn -0.8947 0.0303 -0.4457 +vn -0.3087 -0.7240 0.6169 +vn -0.6429 -0.4665 0.6076 +vn 0.6424 -0.0806 0.7621 +vn 0.4092 0.6117 0.6770 +vn 0.2052 0.4256 -0.8813 +vn 0.0785 0.6076 -0.7903 +vn -0.1541 -0.6901 -0.7071 +vn 0.1541 0.6901 -0.7071 +vn -0.7380 0.1716 0.6526 +vn -0.3768 -0.7319 -0.5678 +vn -0.4807 -0.5952 0.6439 +vn 0.1003 0.5476 0.8307 +vn 0.6662 0.5656 0.4861 +vn 0.6275 0.5623 -0.5385 +vn 0.6760 -0.2402 -0.6966 +vn 0.1847 -0.1508 0.9712 +vn 0.0499 -0.6952 -0.7171 +vn -0.0981 -0.6249 0.7745 +vn -0.1198 0.7536 0.6463 +vn -0.8413 0.2036 0.5008 +vn -0.0738 0.7751 -0.6275 +vn -0.7186 0.2744 -0.6390 +vn 0.2823 0.5925 -0.7545 +vn -0.0766 -0.7686 -0.6351 +vn 0.4568 0.3596 -0.8137 +vn 0.4108 0.6761 -0.6117 +vn -0.3244 -0.6204 0.7140 +vn -0.1571 -0.8670 -0.4729 +vn 0.0430 0.6478 0.7606 +vn -0.7702 -0.2511 0.5863 +vn 0.0060 0.8495 0.5276 +vn -0.6346 -0.4263 0.6447 +vn -0.1690 -0.7494 -0.6402 +vn -0.3227 -0.6359 0.7011 +vn 0.0807 0.6449 0.7600 +vn 0.0732 0.7883 0.6109 +vn 0.3775 0.6348 -0.6742 +vn 0.4561 0.5005 -0.7358 +vn -0.0017 0.7596 -0.6504 +vn 0.3155 -0.5701 -0.7586 +vn -0.3876 0.6785 -0.6240 +vn 0.0782 -0.6688 -0.7393 +vn 0.1825 -0.7019 0.6885 +vn -0.0006 -0.6256 0.7801 +vn -0.4645 0.5846 0.6652 +vn -0.0316 0.7504 0.6602 +vn -0.7490 -0.6504 -0.1266 +vn 0.3403 -0.8625 0.3746 +vn 0.6673 -0.6999 0.2549 +vn -0.7240 0.6670 -0.1761 +vn -0.6766 -0.5182 -0.5231 +vn 0.6065 0.7850 0.1262 +vn -0.3891 0.7577 -0.5240 +vn 0.7104 0.5808 0.3976 +vn 0.9360 -0.3489 0.0475 +vn 0.1504 -0.2267 -0.9623 +vn 0.9639 -0.1225 0.2366 +vn -0.9097 0.4116 -0.0547 +vn 0.1790 0.3744 -0.9098 +vn -0.1465 -0.2820 0.9482 +vn -0.9324 0.3108 0.1844 +vn -0.1861 -0.6826 0.7066 +vn 0.2349 0.6674 0.7066 +vn 0.6368 -0.3605 0.6816 +vn 0.5636 0.8227 0.0748 +vn 0.3938 -0.0795 0.9158 +vn -0.1541 -0.6901 0.7071 +vn 0.1541 0.6901 0.7071 +vn -0.1341 0.1854 0.9735 +vn 0.8973 -0.2880 0.3345 +vn -0.2066 0.4012 0.8924 +vn 0.1397 0.5999 -0.7878 +vn 0.0783 0.6345 -0.7690 +vn 0.1359 0.8990 0.4163 +vn 0.0466 0.2350 0.9709 +vn 0.6456 -0.5877 -0.4877 +vn 0.3547 0.6721 -0.6500 +vn 0.2630 0.7857 -0.5599 +vn 0.4795 0.6087 0.6320 +vn 0.9667 -0.1673 -0.1936 +vn 0.8642 -0.3905 -0.3173 +vn 0.6464 0.7413 0.1806 +vn 0.6023 -0.1871 -0.7761 +vn 0.4726 0.8787 -0.0666 +vn -0.4138 -0.6167 -0.6697 +vn 0.7769 -0.0817 0.6243 +vn 0.6816 -0.1570 -0.7146 +vn 0.8539 0.2805 0.4385 +vn -0.3819 -0.6595 -0.6474 +vn 0.2402 0.6116 0.7538 +vn -0.3768 -0.6620 0.6479 +vn 0.7731 0.2130 0.5975 +vn 0.6519 -0.5646 -0.5062 +vn 0.8757 0.3674 0.3135 +vn 0.3347 -0.4721 0.8155 +vn 0.9334 -0.1140 -0.3404 +vn 0.4092 0.2351 0.8816 +vn -0.8497 0.0342 0.5261 +vn -0.6330 0.0984 -0.7678 +vn -0.7932 0.2621 0.5497 +vn -0.1729 0.7512 -0.6370 +vn -0.4712 0.0065 0.8820 +vn -0.2611 -0.9544 0.1444 +vn -0.3929 0.2436 0.8867 +vn 0.2852 0.9511 -0.1184 +vn -0.3122 0.8760 -0.3676 +vn -0.8135 -0.5406 -0.2144 +vn -0.4886 0.2032 0.8485 +vn 0.4018 0.4518 0.7965 +vn 0.7895 0.3989 -0.4665 +vn 0.2153 0.7629 0.6096 +vn 0.8207 0.2092 -0.5316 +vn -0.1640 -0.7047 -0.6903 +vn -0.8343 -0.1971 0.5149 +vn -0.4283 -0.3953 -0.8126 +vn -0.7326 -0.1263 0.6688 +vn 0.8255 0.2021 -0.5270 +vn 0.4050 0.4383 0.8024 +vn -0.8255 -0.2021 0.5270 +vn -0.4050 -0.4383 -0.8024 +vn 0.5512 -0.4219 -0.7198 +vn -0.7104 -0.3079 -0.6329 +vn -0.5454 0.4621 0.6993 +vn -0.7567 0.1368 -0.6393 +vn -0.3768 0.2713 0.8857 +vn 0.4880 0.2185 -0.8450 +vn 0.3818 0.9001 0.2100 +vn -0.6068 0.7171 -0.3429 +vn -0.9275 0.2130 -0.3071 +vn 0.1651 -0.4340 -0.8856 +vn 0.3850 -0.4908 -0.7816 +vn 0.8231 0.4343 0.3659 +vn -0.2725 -0.0363 0.9615 +vn 0.8754 0.0177 0.4831 +vn -0.4555 0.1385 0.8794 +vn -0.9397 -0.0794 -0.3326 +vn 0.4553 -0.1778 -0.8724 +vn -0.8018 -0.4861 -0.3475 +vn 0.9005 0.2043 0.3839 +vn -0.0753 -0.3799 0.9219 +vn 0.9465 -0.2556 0.1970 +vn -0.2968 -0.4084 0.8632 +vn -0.9147 0.3074 -0.2624 +vn 0.2880 0.3635 -0.8859 +vn -0.8699 -0.2801 -0.4061 +vn -0.5841 -0.7385 0.3368 +vn -0.1116 -0.7158 -0.6894 +vn -0.2993 -0.7263 0.6188 +vn 0.6527 0.7016 -0.2861 +vn 0.5372 -0.6386 -0.5511 +vn -0.4582 0.6183 0.6386 +vn 0.2784 0.9477 -0.1559 +vn 0.5644 0.3101 0.7650 +vn -0.0334 0.4046 0.9139 +vn 0.7022 0.5285 -0.4771 +vn -0.1951 -0.4628 -0.8647 +vn 0.7413 0.6178 -0.2622 +vn -0.7412 -0.4814 0.4679 +vn -0.6072 0.1258 -0.7846 +vn 0.5695 -0.0387 0.8211 +vn -0.6237 -0.4191 0.6598 +vn 0.1319 -0.7982 0.5877 +vn 0.9894 -0.1101 -0.0945 +vn 0.3317 -0.2589 0.9071 +vn 0.9229 -0.1076 -0.3696 +vn -0.1720 0.3889 -0.9051 +vn -0.9055 0.1755 0.3863 +vn -0.0534 0.9031 -0.4261 +vn -0.8136 -0.0107 0.5813 +vn 0.9149 -0.1346 -0.3806 +vn 0.1149 -0.8170 0.5651 +vn -0.1149 0.8170 -0.5651 +vn -0.9149 0.1346 0.3805 +vn -0.6417 -0.6459 -0.4136 +vn -0.3821 0.8420 -0.3808 +vn -0.7065 -0.6883 -0.1645 +vn 0.6580 0.6409 0.3953 +vn -0.3559 0.7176 -0.5986 +vn 0.3721 -0.7243 0.5804 +vn 0.8200 0.5213 0.2365 +vn 0.5610 -0.7234 0.4024 +vn -0.7080 -0.6741 0.2105 +vn 0.5748 -0.7962 -0.1886 +vn -0.8752 0.3490 0.3350 +vn -0.4792 -0.6581 -0.5807 +vn 0.8653 -0.3782 0.3289 +vn -0.2807 -0.7853 0.5519 +vn 0.6372 -0.7411 -0.2113 +vn -0.5180 -0.6049 0.6048 +vn -0.6122 0.7706 0.1772 +vn 0.4757 0.5678 -0.6718 +vn -0.8631 0.2704 -0.4266 +vn -0.2540 -0.8889 0.3812 +vn -0.2973 -0.7836 0.5455 +vn -0.3425 0.5823 0.7373 +vn -0.6858 0.5747 0.4465 +vn -0.3263 -0.4130 -0.8503 +vn -0.5737 -0.7394 0.3525 +vn 0.4609 0.5945 0.6589 +vn -0.2703 -0.5498 0.7903 +vn -0.0407 -0.7186 0.6942 +vn 0.2925 0.7527 -0.5898 +vn 0.1464 0.6427 0.7520 +vn 0.0092 0.7270 -0.6866 +vn -0.2542 -0.7843 -0.5658 +vn -0.4950 -0.5784 -0.6484 +vn 0.4732 0.5942 0.6504 +vn -0.0318 -0.7263 0.6866 +vn -0.4732 -0.5942 -0.6504 +vn 0.0318 0.7263 -0.6866 +vn 0.5156 -0.7732 -0.3691 +vn -0.7364 -0.4992 -0.4565 +vn -0.5054 0.7930 0.3402 +vn -0.7567 -0.1865 -0.6267 +vn -0.3983 0.6908 0.6034 +vn 0.5338 -0.2659 -0.8027 +vn 0.5662 0.8138 -0.1306 +vn 0.6100 -0.3559 -0.7079 +vn -0.4050 -0.9141 -0.0185 +vn -0.6263 0.3606 0.6911 +vn -0.6635 -0.7193 -0.2060 +vn -0.4668 0.4479 0.7625 +vn 0.1080 0.9510 -0.2897 +vn -0.2329 -0.1743 0.9567 +vn 0.6717 -0.7263 0.1462 +vn -0.3719 -0.1344 0.9185 +vn -0.7324 0.6351 -0.2456 +vn -0.8581 0.4350 -0.2728 +vn 0.1661 -0.2106 -0.9633 +vn -0.3430 0.9364 0.0747 +vn -0.6911 -0.2147 -0.6901 +vn -0.2434 0.0053 -0.9699 +vn 0.3164 0.0251 0.9483 +vn -0.2154 0.9453 0.2449 +vn 0.5033 -0.8631 0.0415 +vn 0.6902 0.1939 0.6971 +vn 0.4746 -0.8751 -0.0949 +vn 0.5283 0.5594 -0.6387 +vn -0.4281 -0.6918 -0.5815 +vn -0.0044 -0.7265 -0.6872 +vn 0.0569 0.7064 0.7055 +vn 0.3348 0.7987 -0.5000 +vn -0.1546 -0.6357 0.7563 +vn 0.3769 0.4792 0.7927 +vn 0.1890 0.3140 0.9304 +vn 0.0563 -0.9287 0.3666 +vn 0.4215 -0.8770 0.2306 +vn -0.1489 0.9889 -0.0026 +vn -0.1696 0.1151 0.9788 +vn -0.4754 0.8520 -0.2192 +vn 0.1701 -0.4667 -0.8679 +vn -0.2498 -0.3312 -0.9099 +vn 0.2041 0.3303 0.9216 +vn 0.4386 -0.8724 0.2156 +vn -0.2041 -0.3303 -0.9216 +vn -0.4386 0.8724 -0.2156 +vn -0.0958 -0.7667 0.6348 +vn -0.6132 -0.6768 -0.4072 +vn 0.3413 -0.8457 0.4102 +vn -0.4209 -0.5140 -0.7474 +vn -0.0863 0.9762 -0.1987 +vn 0.4885 0.5012 0.7142 +vn 0.1795 0.7247 -0.6653 +vn 0.6291 0.7573 -0.1751 +vn -0.2848 0.2525 -0.9247 +vn -0.6573 -0.7283 0.1935 +vn -0.6652 0.3941 -0.6342 +vn -0.4200 -0.8624 0.2825 +vn -0.2708 0.1673 0.9480 +vn 0.4379 -0.1541 -0.8857 +vn -0.6430 0.6024 -0.4730 +vn 0.5907 -0.2668 -0.7615 +vn -0.4049 0.1976 0.8927 +vn -0.1982 0.9410 -0.2743 +vn 0.2786 -0.9100 0.3070 +vn -0.2843 0.0119 0.9586 +vn 0.8624 0.2612 0.4336 +vn 0.6756 -0.5956 0.4346 +vn 0.2653 -0.3415 -0.9017 +vn 0.2986 0.9157 -0.2689 +vn 0.1365 -0.3645 -0.9212 +vn -0.3365 -0.8709 0.3583 +vn -0.4280 -0.8614 0.2735 +vn 0.6924 -0.3819 -0.6122 +vn 0.3992 -0.9112 0.1021 +vn 0.3246 0.1860 0.9274 +vn 0.1185 -0.9056 0.4073 +vn 0.6368 0.3335 0.6952 +vn -0.0183 0.9992 -0.0366 +vn -0.6853 -0.3414 -0.6433 +vn -0.4501 0.8913 -0.0558 +vn -0.3135 -0.5477 -0.7757 +vn 0.6484 0.3485 0.6769 +vn 0.4082 -0.9096 0.0773 +vn -0.6484 -0.3485 -0.6769 +vn -0.4082 0.9096 -0.0773 +vn -0.3210 -0.8300 0.4562 +vn -0.6943 0.3903 0.6046 +vn -0.0034 0.8914 -0.4532 +vn -0.9766 0.1648 -0.1381 +vn -0.4063 0.8092 0.4244 +vn 0.2642 -0.9099 -0.3197 +vn 0.6182 0.6582 -0.4296 +vn -0.6470 0.7509 -0.1324 +vn -0.8747 -0.4842 -0.0214 +vn 0.8025 0.5477 0.2367 +vn 0.3362 -0.3065 -0.8905 +vn 0.2268 -0.4975 -0.8373 +vn -0.5725 0.4524 -0.6838 +vn -0.7144 0.1696 0.6788 +vn 0.3935 0.9071 0.1492 +vn -0.4974 -0.8672 -0.0226 +vn 0.6116 -0.4102 -0.6765 +vn 0.7246 0.6868 0.0569 +vn 0.3657 -0.9172 0.1581 +vn -0.7300 -0.3981 0.5556 +vn 0.0714 0.9675 -0.2427 +vn 0.9870 -0.0412 0.1553 +vn -0.3877 -0.8217 0.4178 +vn -0.7500 -0.5546 -0.3604 +vn 0.3517 0.8382 0.4168 +vn -0.8003 0.5975 0.0502 +vn -0.1623 -0.7226 0.6719 +vn -0.5460 0.4845 0.6835 +vn -0.9104 0.0213 -0.4132 +vn 0.7965 0.0791 0.5995 +vn 0.2178 0.9745 0.0544 +vn -0.2725 -0.9457 0.1773 +vn 0.3271 -0.0944 -0.9402 +vn -0.0894 0.9675 -0.2364 +vn -0.8719 -0.0755 -0.4839 +vn -0.9938 0.0941 0.0589 +vn 0.9998 -0.0174 0.0077 +vn -0.2200 -0.9383 0.2667 +vn -0.7517 0.2021 0.6277 +vn 0.0117 0.9977 -0.0670 +vn 0.7580 -0.1398 -0.6371 +vn -0.2097 -0.9497 0.2325 +vn 0.4615 0.5732 -0.6771 +vn -0.5932 0.7810 0.1952 +vn -0.4711 0.8332 0.2896 +vn -0.2876 0.3872 0.8760 +vn 0.2811 -0.4577 -0.8435 +vn 0.3577 0.9110 -0.2051 +vn -0.3941 -0.8261 0.4027 +vn 0.4298 0.8782 0.2101 +vn -0.8149 0.5790 -0.0280 +vn 0.6148 -0.7839 0.0867 +vn -0.7295 -0.6585 -0.1848 +vn -0.6685 0.4797 0.5683 +vn 0.4678 0.8795 -0.0877 +vn 0.5949 -0.5882 -0.5479 +vn -0.6039 -0.7701 0.2056 +vn -0.3291 0.8416 0.4282 +vn 0.2781 0.4194 0.8642 +vn 0.5038 0.6762 -0.5376 +vn -0.5943 -0.4566 0.6621 +vn 0.5481 -0.7374 -0.3948 +vn 0.8556 -0.3745 0.3573 +vn -0.6550 -0.4905 0.5748 +vn -0.6499 0.7288 0.2155 +vn 0.4264 0.5950 -0.6813 +vn 0.6335 -0.7499 -0.1903 +vn -0.4599 -0.5565 0.6919 +vn 0.8109 0.3794 -0.4456 +vn -0.8100 -0.1752 0.5596 +vn 0.2914 -0.7470 -0.5976 +vn 0.2690 0.6740 -0.6880 +vn -0.8448 0.5217 -0.1193 +vn 0.7547 -0.5933 0.2801 +vn -0.6461 -0.4114 0.6429 +vn -0.3883 0.8721 0.2978 +vn 0.3508 0.5176 -0.7804 +vn 0.3826 -0.8795 -0.2829 +vn -0.4180 -0.3621 0.8332 +vn 0.8765 0.2784 -0.3927 +vn -0.8407 -0.2444 0.4833 +vn -0.1261 -0.5163 -0.8471 +vn 0.3504 0.5253 0.7754 +vn 0.8547 -0.2614 0.4485 +vn 0.0839 0.5954 -0.7990 +vn -0.5247 -0.5033 0.6866 +vn -0.6983 0.7157 0.0145 +vn 0.3298 0.5010 -0.8001 +vn 0.7411 -0.6602 -0.1225 +vn -0.4331 -0.4093 0.8031 +vn -0.9589 0.1474 -0.2423 +vn 0.5949 0.6374 -0.4898 +vn 0.1486 -0.7505 -0.6439 +vn 0.4890 -0.8146 -0.3119 +vn -0.5073 -0.4918 0.7076 +vn -0.6247 -0.3704 0.6874 +vn -0.0710 0.8171 0.5721 +vn 0.4464 0.5441 -0.7104 +vn 0.5914 -0.7831 -0.1927 +vn -0.4738 -0.5082 0.7192 +vn 0.5172 0.4376 -0.7356 +vn -0.5878 -0.1870 0.7871 +vn 0.3673 -0.8894 -0.2722 +vn 0.0349 0.4740 -0.8798 +vn -0.9371 0.0139 -0.3487 +vn 0.7538 -0.1086 0.6480 +vn -0.5897 -0.4279 0.6849 +vn -0.6510 0.7559 -0.0687 +vn 0.3060 0.3065 -0.9013 +vn 0.6576 -0.7530 0.0232 +vn -0.4199 -0.1893 0.8876 +vn -0.2473 0.9580 0.1455 +vn -0.2020 -0.9484 0.2444 +vn 0.5830 -0.6765 0.4500 +vn -0.4605 0.1303 0.8781 +vn 0.4085 -0.4306 -0.8048 +vn 0.2165 0.9668 -0.1358 +vn 0.3120 -0.4462 -0.8388 +vn 0.2631 -0.1403 -0.9545 +vn -0.5192 -0.5257 -0.6738 +vn -0.8836 -0.0571 -0.4648 +vn -0.7339 0.3227 0.5977 +vn -0.8435 -0.1810 -0.5057 +vn 0.7459 0.0919 0.6597 +vn -0.6172 -0.7793 -0.1086 +vn -0.5849 0.2350 0.7763 +vn 0.6106 0.7832 0.1175 +vn 0.4756 -0.3733 -0.7965 +vn 0.6124 -0.0786 -0.7866 +vn -0.3226 0.1594 0.9330 +vn -0.8634 -0.2877 -0.4145 +vn 0.4235 0.1895 -0.8858 +vn -0.1220 0.9649 -0.2326 +vn 0.4553 -0.0643 -0.8880 +vn 0.5315 -0.4396 0.7241 +vn 0.1099 -0.9620 0.2501 +vn -0.4799 0.2512 0.8406 +vn -0.7576 0.1088 0.6436 +vn -0.7008 0.5242 -0.4838 +vn 0.1837 0.9773 -0.1054 +vn 0.5751 -0.0263 -0.8176 +vn 0.4974 -0.1172 -0.8595 +vn -0.5375 -0.8324 -0.1348 +vn -0.1628 -0.9842 0.0700 +vn -0.4796 0.2149 0.8508 +vn -0.4151 0.2790 0.8659 +vn 0.5206 0.8375 0.1659 +vn 0.1999 0.2686 0.9423 +vn 0.4974 0.6591 -0.5640 +vn 0.5980 0.1225 -0.7921 +vn -0.6773 0.1812 -0.7131 +vn 0.2671 -0.2905 0.9188 +vn -0.8915 -0.1078 0.4400 +vn 0.3109 -0.6088 -0.7299 +vn -0.2057 -0.2590 0.9437 +vn -0.1071 -0.9928 -0.0531 +vn 0.1601 0.9863 -0.0400 +vn 0.2084 -0.0774 -0.9750 +vn -0.6295 -0.7689 -0.1116 +vn -0.7003 -0.7117 -0.0558 +vn -0.0933 -0.0398 0.9948 +vn -0.2426 0.0430 0.9692 +vn 0.6697 0.7197 0.1831 +vn 0.7238 0.6792 0.1215 +vn 0.1418 0.0367 -0.9892 +vn 0.2546 -0.2867 -0.9236 +vn -0.8678 -0.4559 -0.1977 +vn -0.4612 0.1783 0.8692 +vn 0.8370 0.4766 0.2687 +vn 0.1574 -0.5422 -0.8254 +vn -0.9128 0.1144 -0.3920 +vn -0.4638 0.5400 0.7024 +vn 0.7789 -0.0185 0.6269 +vn -0.5785 0.4621 -0.6722 +vn 0.4140 -0.2452 -0.8766 +vn -0.3969 0.3223 0.8594 +vn -0.0643 -0.9634 0.2601 +vn 0.4249 -0.1725 -0.8886 +vn 0.1659 -0.8895 0.4257 +vn -0.4703 0.3457 0.8120 +vn -0.2182 0.9112 -0.3495 +vn 0.5066 0.0654 -0.8597 +vn 0.5320 -0.3871 0.7531 +vn -0.7423 0.1524 0.6525 +vn -0.6625 0.5178 -0.5412 +vn -0.3562 -0.8956 -0.2664 +vn -0.3446 0.1057 0.9328 +vn -0.1992 0.9799 0.0053 +vn 0.3336 0.1680 -0.9276 +vn 0.2019 -0.9794 -0.0085 +vn -0.3694 0.0117 0.9292 +vn 0.3135 0.2266 -0.9222 +vn 0.6053 -0.7645 0.2216 +vn -0.4899 -0.0173 0.8716 +vn -0.6371 0.7546 -0.1572 +vn -0.7236 -0.5849 -0.3664 +vn -0.5327 -0.8438 0.0647 +vn -0.3446 0.5336 0.7724 +vn 0.1284 0.9133 -0.3865 +vn 0.2985 -0.3186 -0.8997 +vn -0.1022 -0.9435 0.3152 +vn -0.2823 0.4325 0.8563 +vn 0.3348 -0.2232 -0.9155 +vn 0.2145 -0.8276 0.5187 +vn -0.4124 0.4160 0.8104 +vn -0.3006 0.8738 -0.3824 +vn 0.3416 0.1692 -0.9245 +vn 0.4642 -0.1135 0.8784 +vn -0.8134 -0.1030 0.5724 +vn -0.8122 0.1267 -0.5695 +vn 0.9415 -0.2104 -0.2631 +vn 0.0633 -0.9271 0.3694 +vn -0.9104 -0.1301 0.3928 +vn -0.1711 0.9275 -0.3324 +vn -0.0690 -0.8846 -0.4613 +vn -0.8465 -0.2876 0.4481 +vn 0.3498 0.8982 0.2664 +vn 0.7957 -0.0475 -0.6039 +vn -0.5592 -0.4258 0.7113 +vn 0.5651 0.5927 0.5739 +vn 0.4646 0.3662 -0.8063 +vn -0.7067 0.0222 0.7072 +vn 0.4937 0.0294 0.8691 +vn 0.7111 0.1980 -0.6746 +vn 0.5981 0.0137 -0.8013 +vn 0.6127 -0.7754 0.1525 +vn -0.7857 0.6172 0.0416 +vn -0.4353 -0.5450 0.7166 +vn 0.1299 -0.7822 -0.6094 +vn -0.6591 -0.6440 0.3884 +vn -0.1085 0.7966 0.5946 +vn 0.7068 0.3494 -0.6151 +vn 0.7064 0.3379 -0.6220 +vn -0.4297 -0.3527 -0.8313 +vn -0.8181 -0.4300 0.3817 +vn 0.3101 0.2952 0.9037 +vn 0.7115 0.0658 -0.6996 +vn -0.5774 0.3389 -0.7428 +vn -0.9075 0.0416 0.4179 +vn 0.3667 -0.3583 0.8586 +vn -0.2755 0.9545 0.1143 +vn -0.9270 -0.3737 0.0329 +vn 0.9256 0.3770 0.0335 +vn -0.7865 -0.4321 0.4412 +vn -0.2490 0.9599 0.1285 +vn 0.8157 0.3547 -0.4569 +vn 0.4216 -0.8783 -0.2255 +vn -0.4351 -0.4289 0.7917 +vn -0.1481 0.9665 0.2094 +vn 0.4549 0.3426 -0.8220 +vn 0.2574 -0.8763 -0.4072 +vn 0.0335 -0.9107 -0.4116 +vn -0.0791 -0.4056 0.9106 +vn -0.0265 0.9485 0.3156 +vn 0.0798 0.3353 -0.9387 +vn 0.3401 -0.3729 0.8633 +vn 0.0044 0.9708 0.2399 +vn -0.3684 0.3597 -0.8573 +vn -0.1224 -0.8686 -0.4803 +vn 0.9876 0.1284 -0.0904 +vn -0.2107 0.9162 0.3407 +vn -0.9769 0.1397 -0.1614 +vn -0.3239 -0.8267 -0.4601 +vn 0.3711 -0.9220 -0.1109 +vn -0.3999 0.9080 0.1250 +vn 0.8647 0.4267 -0.2651 +vn 0.2298 -0.7115 -0.6640 +vn -0.4953 -0.6927 0.5242 +vn -0.1132 0.8403 0.5301 +vn 0.5370 0.5298 -0.6565 +vn -0.1055 -0.6795 -0.7261 +vn -0.2539 -0.6941 0.6737 +vn 0.1121 0.7165 0.6885 +vn 0.2393 0.6455 -0.7253 +vn 0.1504 -0.9154 0.3734 +vn 0.4241 0.8094 0.4062 +vn -0.3577 0.7131 -0.6029 +vn -0.5820 -0.4526 -0.6756 +vn -0.8391 -0.3764 -0.3927 +vn 0.7841 -0.5636 -0.2600 +vn 0.6074 0.6459 0.4624 +vn -0.6371 0.7212 0.2719 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7565 0.2801 0.5910 +vn 0.5443 -0.8297 -0.1235 +vn 0.8828 0.4547 0.1177 +vn 0.8838 -0.4285 0.1878 +vn -0.6795 -0.7130 -0.1730 +vn -0.2525 -0.9041 -0.3447 +vn -0.8862 0.2546 -0.3871 +vn -0.7540 0.6569 -0.0005 +vn 0.1598 0.9663 0.2016 +vn 0.6875 0.7038 0.1787 +vn 0.6206 -0.7828 -0.0449 +vn -0.1026 -0.7106 -0.6961 +vn -0.3012 0.4964 -0.8142 +vn 0.1147 -0.9166 0.3830 +vn -0.1488 0.9297 -0.3370 +vn -0.6268 -0.3634 -0.6893 +vn 0.4333 -0.8807 0.1914 +vn -0.7989 -0.4539 -0.3947 +vn -0.1489 0.9872 -0.0565 +vn 0.8655 0.2728 0.4202 +vn 0.9019 0.3333 -0.2748 +vn 0.4442 -0.8537 -0.2717 +vn -0.8436 -0.4830 0.2346 +vn -0.1912 0.9616 0.1970 +vn 0.2033 -0.8017 -0.5622 +vn -0.4912 -0.5450 0.6795 +vn -0.0721 0.9248 0.3736 +vn 0.5095 0.4379 -0.7407 +vn 0.3860 -0.5540 0.7376 +vn -0.0119 0.9527 0.3037 +vn -0.4849 -0.5845 0.6506 +vn 0.3445 -0.8966 0.2782 +vn -0.0772 0.9793 -0.1873 +vn -0.8300 -0.5010 -0.2453 +vn 0.9119 0.1938 0.3618 +vn 0.3814 -0.8538 -0.3543 +vn -0.8523 -0.4728 0.2238 +vn -0.1429 0.9481 0.2840 +vn 0.9097 0.3007 -0.2865 +vn 0.1304 -0.7520 -0.6461 +vn -0.5343 -0.5766 0.6181 +vn -0.0021 0.8722 0.4892 +vn 0.5445 0.4768 -0.6901 +vn -0.0902 -0.7405 -0.6660 +vn -0.2096 -0.6247 0.7522 +vn 0.1063 0.7960 0.5958 +vn 0.2020 0.5904 -0.7814 +vn 0.3252 -0.6269 0.7080 +vn 0.0485 0.8656 0.4984 +vn -0.3481 0.6422 -0.6829 +vn -0.1956 -0.6185 -0.7610 +vn 0.9736 -0.0040 -0.2282 +vn -0.2017 0.7745 0.5995 +vn -0.9944 0.0933 0.0504 +vn -0.4004 -0.6883 -0.6049 +vn -0.1248 -0.7838 -0.6083 +vn -0.8725 -0.4818 -0.0812 +vn -0.4472 0.8721 0.1986 +vn 0.5213 -0.7642 -0.3797 +vn -0.7499 -0.6135 0.2476 +vn -0.3307 0.8915 0.3096 +vn 0.8182 0.4883 -0.3035 +vn 0.5073 0.5487 -0.6645 +vn 0.2258 -0.7195 -0.6568 +vn -0.4715 -0.6893 0.5501 +vn -0.1392 0.8252 0.5474 +vn -0.2674 -0.5836 -0.7667 +vn -0.0568 -0.8294 0.5558 +vn 0.3050 0.7751 0.5533 +vn 0.0095 0.6415 -0.7671 +vn -0.0947 -0.7168 -0.6909 +vn 0.6058 0.3301 -0.7240 +vn -0.4589 -0.6586 0.5963 +vn 0.4527 0.5344 -0.7138 +vn 0.5595 0.4568 -0.6916 +vn -0.4402 -0.5088 -0.7398 +vn -0.6433 -0.5243 0.5579 +vn 0.3556 0.4699 0.8079 +vn 0.0817 0.6801 0.7285 +vn 0.3670 -0.0994 -0.9249 +vn 0.4477 0.2074 -0.8698 +vn 0.4768 0.2563 -0.8408 +vn 0.5041 -0.8597 -0.0821 +vn -0.2968 -0.4352 0.8500 +vn -0.4614 0.8538 0.2413 +vn -0.0479 -0.9042 -0.4244 +vn -0.5334 -0.4823 0.6949 +vn 0.0086 0.8769 0.4806 +vn 0.5231 0.2213 -0.8231 +vn -0.4604 -0.6189 -0.6364 +vn -0.6689 -0.3560 0.6525 +vn 0.4275 0.6255 0.6527 +vn 0.5744 0.2549 -0.7779 +vn 0.4376 -0.0943 -0.8942 +vn -0.7630 0.0448 -0.6449 +vn -0.8311 0.0761 0.5509 +vn 0.3769 -0.0973 0.9211 +s 1 +f 900/1/1 2/2/2 3/3/3 +f 899/4/4 3/3/3 4/5/5 +f 898/6/6 4/7/5 1/8/7 +f 254/9/8 1/8/7 253/10/9 +f 6/11/10 10/12/11 5/13/12 +f 7/14/13 9/15/14 6/11/10 +f 8/16/15 12/17/16 7/18/13 +f 5/13/12 11/19/17 8/16/15 +f 14/20/18 18/21/19 13/22/20 +f 15/23/21 17/24/22 14/20/18 +f 16/25/23 20/26/24 15/27/21 +f 13/22/20 19/28/25 16/25/23 +f 22/29/26 26/30/27 21/31/28 +f 23/32/29 25/33/30 22/29/26 +f 24/34/31 28/35/32 23/36/29 +f 21/31/28 27/37/33 24/34/31 +f 862/38/34 32/39/35 29/40/36 +f 863/41/37 31/42/38 32/39/35 +f 864/43/39 30/44/40 31/45/38 +f 518/46/41 29/40/36 517/47/42 +f 866/48/43 36/49/44 33/50/45 +f 867/51/46 35/52/47 36/49/44 +f 868/53/48 34/54/49 35/55/47 +f 450/56/50 353/57/51 449/58/52 +f 871/59/53 37/60/54 870/61/55 +f 872/62/56 40/63/57 871/64/53 +f 869/65/58 39/66/59 872/62/56 +f 358/67/60 161/68/61 357/69/62 +f 42/70/63 46/71/64 41/72/65 +f 43/73/66 45/74/67 42/70/63 +f 44/75/68 48/76/69 43/77/66 +f 41/72/65 47/78/70 44/75/68 +f 49/79/71 53/80/72 54/81/73 +f 50/82/74 56/83/75 53/80/72 +f 51/84/76 55/85/77 56/83/75 +f 52/86/78 54/81/73 55/87/77 +f 57/88/79 61/89/80 62/90/81 +f 58/91/82 64/92/83 61/89/80 +f 59/93/84 63/94/85 64/92/83 +f 60/95/86 62/90/81 63/96/85 +f 875/97/87 65/98/88 874/99/89 +f 876/100/90 68/101/91 875/102/87 +f 873/103/92 67/104/93 876/100/90 +f 422/105/94 225/106/95 421/107/96 +f 69/108/97 73/109/98 74/110/99 +f 70/111/100 76/112/101 73/113/98 +f 71/114/102 75/115/103 76/112/101 +f 72/116/104 74/110/99 75/115/103 +f 77/117/105 81/118/106 82/119/107 +f 78/120/108 84/121/109 81/118/106 +f 79/122/110 83/123/111 84/121/109 +f 80/124/112 82/119/107 83/125/111 +f 85/126/113 89/127/114 90/128/115 +f 86/129/116 92/130/117 89/127/114 +f 87/131/118 91/132/119 92/130/117 +f 88/133/120 90/128/115 91/134/119 +f 93/135/121 97/136/122 98/137/123 +f 94/138/124 100/139/125 97/140/122 +f 95/141/126 99/142/127 100/139/125 +f 96/143/128 98/137/123 99/142/127 +f 102/144/129 106/145/130 101/146/131 +f 103/147/132 105/148/133 102/144/129 +f 104/149/134 108/150/135 103/151/132 +f 101/146/131 107/152/136 104/149/134 +f 109/153/137 113/154/138 114/155/139 +f 110/156/140 116/157/141 113/154/138 +f 111/158/142 115/159/143 116/157/141 +f 112/160/144 114/155/139 115/161/143 +f 657/162/145 119/163/146 660/164/147 +f 659/165/148 119/163/146 120/166/149 +f 658/167/150 120/168/149 117/169/151 +f 322/170/152 117/169/151 321/171/153 +f 908/172/154 122/173/155 123/174/156 +f 908/172/154 124/175/157 907/176/158 +f 907/176/158 121/177/159 906/178/160 +f 326/179/152 121/180/159 325/181/153 +f 844/182/161 126/183/162 127/184/163 +f 844/182/161 128/185/164 843/186/165 +f 843/186/165 125/187/166 842/188/167 +f 330/189/152 125/187/166 329/190/153 +f 334/191/152 129/192/168 333/193/153 +f 134/194/169 138/195/170 133/196/171 +f 135/197/172 137/198/173 134/194/169 +f 136/199/174 140/200/175 135/197/172 +f 133/201/171 139/202/176 136/199/174 +f 912/203/177 142/204/178 143/205/179 +f 912/203/177 144/206/180 911/207/181 +f 911/207/181 141/208/182 910/209/183 +f 342/210/152 141/211/182 341/212/153 +f 145/213/184 149/214/185 150/215/186 +f 146/216/187 152/217/188 149/218/185 +f 147/219/189 151/220/190 152/217/188 +f 148/221/191 150/215/186 151/220/190 +f 754/222/192 759/223/193 753/224/194 +f 755/225/195 758/226/196 754/222/192 +f 756/227/197 757/228/198 755/225/195 +f 753/229/194 760/230/199 756/227/197 +f 154/231/200 159/232/201 158/233/202 +f 156/234/203 159/235/201 155/236/204 +f 153/237/205 160/238/206 156/234/203 +f 286/239/152 49/79/71 285/240/153 +f 3/3/3 254/9/8 255/241/207 +f 4/5/5 255/241/207 256/242/208 +f 1/8/7 256/243/208 253/10/9 +f 441/244/209 246/245/210 245/246/211 +f 259/247/212 6/11/10 258/248/152 +f 259/249/212 8/16/15 7/18/13 +f 257/250/153 8/16/15 260/251/213 +f 262/252/152 13/22/20 261/253/153 +f 263/254/212 14/20/18 262/252/152 +f 263/255/212 16/25/23 15/27/21 +f 261/253/153 16/25/23 264/256/213 +f 266/257/152 21/31/28 265/258/153 +f 267/259/212 22/29/26 266/257/152 +f 267/260/212 24/34/31 23/36/29 +f 265/258/153 24/34/31 268/261/213 +f 175/262/214 370/263/215 371/264/216 +f 269/265/153 862/38/34 861/266/217 +f 271/267/212 862/38/34 270/268/152 +f 272/269/213 863/41/37 271/267/212 +f 269/265/153 864/43/39 272/270/213 +f 274/271/152 865/272/218 273/273/153 +f 275/274/212 866/48/43 274/271/152 +f 275/274/212 868/275/48 867/51/46 +f 273/273/153 868/53/48 276/276/213 +f 277/277/153 870/61/55 869/65/58 +f 279/278/212 870/61/55 278/279/152 +f 280/280/213 871/64/53 279/281/212 +f 277/277/153 872/62/56 280/280/213 +f 287/282/212 50/82/74 286/239/152 +f 287/282/212 52/283/78 51/84/76 +f 285/240/153 52/86/78 288/284/213 +f 158/233/202 537/285/219 157/286/220 +f 291/287/212 58/91/82 290/288/152 +f 291/287/212 60/289/86 59/93/84 +f 289/290/153 60/95/86 292/291/213 +f 258/248/152 5/13/12 257/250/153 +f 293/292/153 874/99/89 873/103/92 +f 295/293/212 874/99/89 294/294/152 +f 296/295/213 875/102/87 295/296/212 +f 293/292/153 876/100/90 296/295/213 +f 299/297/212 70/111/100 298/298/152 +f 299/297/212 72/116/104 71/114/102 +f 297/299/153 72/116/104 300/300/213 +f 406/301/221 209/302/222 405/303/223 +f 303/304/212 78/120/108 302/305/152 +f 303/304/212 80/306/112 79/122/110 +f 301/307/153 80/124/112 304/308/213 +f 307/309/212 86/129/116 306/310/152 +f 307/309/212 88/311/120 87/131/118 +f 305/312/153 88/133/120 308/313/213 +f 290/288/152 57/88/79 289/290/153 +f 311/314/212 94/138/124 310/315/152 +f 311/314/212 96/143/128 95/141/126 +f 309/316/153 96/143/128 312/317/213 +f 315/318/212 102/144/129 314/319/152 +f 315/320/212 104/149/134 103/151/132 +f 313/321/153 104/149/134 316/322/213 +f 398/323/224 201/324/225 397/325/226 +f 319/326/212 110/156/140 318/327/152 +f 319/326/212 112/328/144 111/158/142 +f 317/329/153 112/160/144 320/330/213 +f 417/331/227 222/332/228 221/333/229 +f 323/334/212 118/335/230 322/170/152 +f 323/334/212 120/166/149 119/163/146 +f 321/171/153 120/168/149 324/336/213 +f 365/337/231 170/338/232 169/339/233 +f 327/340/212 122/173/155 326/179/152 +f 327/340/212 124/175/157 123/174/156 +f 325/341/153 124/175/157 328/342/213 +f 331/343/212 126/183/162 330/344/152 +f 331/343/212 128/185/164 127/184/163 +f 329/190/153 128/185/164 332/345/213 +f 335/346/212 130/347/234 334/191/152 +f 335/346/212 132/348/235 131/349/236 +f 333/193/153 132/350/235 336/351/213 +f 413/352/237 218/353/238 217/354/239 +f 339/355/212 134/194/169 338/356/152 +f 339/355/212 136/199/174 135/197/172 +f 337/357/153 136/199/174 340/358/213 +f 343/359/212 142/204/178 342/210/152 +f 343/359/212 144/206/180 143/205/179 +f 341/360/153 144/206/180 344/361/213 +f 347/362/212 146/216/187 346/363/152 +f 347/362/212 148/221/191 147/219/189 +f 345/364/153 148/221/191 348/365/213 +f 201/324/225 350/366/240 349/367/241 +f 202/368/242 351/369/243 350/366/240 +f 204/370/244 351/369/243 203/371/245 +f 204/372/244 349/367/241 352/373/246 +f 358/67/60 163/374/247 162/375/248 +f 359/376/249 164/377/250 163/374/247 +f 357/69/62 164/378/250 360/379/251 +f 490/380/252 163/374/247 491/381/253 +f 877/382/254 166/383/255 165/384/256 +f 878/385/257 167/386/258 166/383/255 +f 880/387/259 167/388/258 879/389/260 +f 877/382/254 168/390/261 880/387/259 +f 362/391/262 877/382/254 361/392/263 +f 362/391/262 879/393/260 878/385/257 +f 364/394/264 879/389/260 363/395/265 +f 364/394/264 877/382/254 880/387/259 +f 366/396/266 171/397/267 170/338/232 +f 368/398/268 171/399/267 367/400/269 +f 365/337/231 172/401/270 368/398/268 +f 169/339/233 646/402/271 645/403/272 +f 176/404/273 371/264/216 372/405/274 +f 176/406/273 369/407/275 173/408/276 +f 374/409/277 179/410/278 178/411/279 +f 375/412/280 180/413/281 179/410/278 +f 373/414/282 180/413/281 376/415/283 +f 378/416/284 183/417/285 182/418/286 +f 379/419/287 184/420/288 183/417/285 +f 377/421/289 184/420/288 380/422/290 +f 382/423/291 187/424/292 186/425/293 +f 384/426/294 187/427/292 383/428/295 +f 381/429/296 188/430/297 384/426/294 +f 186/425/293 773/431/298 185/432/299 +f 386/433/300 191/434/301 190/435/302 +f 388/436/303 191/437/301 387/438/304 +f 385/439/305 192/440/306 388/436/303 +f 881/441/307 194/442/308 193/443/309 +f 882/444/310 195/445/311 194/442/308 +f 884/446/312 195/447/311 883/448/313 +f 881/441/307 196/449/314 884/446/312 +f 390/450/315 881/441/307 389/451/316 +f 391/452/317 882/444/310 390/450/315 +f 391/453/317 884/446/312 883/448/313 +f 392/454/318 881/441/307 884/446/312 +f 394/455/319 199/456/320 198/457/321 +f 396/458/322 199/456/320 395/459/323 +f 393/460/324 200/461/325 396/458/322 +f 197/462/326 734/463/327 733/464/328 +f 398/323/224 203/371/245 202/368/242 +f 399/465/329 204/370/244 203/371/245 +f 397/325/226 204/372/244 400/466/330 +f 402/467/331 207/468/332 206/469/333 +f 403/470/334 208/471/335 207/468/332 +f 401/472/336 208/471/335 404/473/337 +f 211/474/338 406/301/221 407/475/339 +f 212/476/340 407/475/339 408/477/341 +f 405/478/223 212/476/340 408/477/341 +f 614/479/342 211/474/338 615/480/343 +f 886/481/344 213/482/345 885/483/346 +f 886/481/344 215/484/347 214/485/348 +f 887/486/349 216/487/350 215/484/347 +f 885/483/346 216/488/350 888/489/351 +f 410/490/352 885/483/346 409/491/353 +f 410/490/352 887/486/349 886/481/344 +f 412/492/354 887/486/349 411/493/355 +f 409/491/353 888/489/351 412/494/354 +f 414/495/356 219/496/357 218/353/238 +f 416/497/358 219/498/357 415/499/359 +f 413/352/237 220/500/360 416/497/358 +f 217/354/239 662/501/361 661/502/362 +f 418/503/363 223/504/364 222/332/228 +f 420/505/365 223/506/364 419/507/366 +f 417/331/227 224/508/367 420/505/365 +f 222/332/228 633/509/368 221/333/229 +f 422/105/94 227/510/369 226/511/370 +f 423/512/371 228/513/372 227/510/369 +f 421/107/96 228/514/372 424/515/373 +f 226/511/370 617/516/374 225/106/95 +f 427/517/375 230/518/376 426/519/377 +f 428/520/378 231/521/379 427/517/375 +f 428/520/378 229/522/380 232/523/381 +f 230/524/376 709/525/382 229/522/380 +f 431/526/383 234/527/384 430/528/385 +f 432/529/386 235/530/387 431/526/383 +f 432/529/386 233/531/388 236/532/389 +f 890/533/390 237/534/391 889/535/392 +f 890/533/390 239/536/393 238/537/394 +f 891/538/395 240/539/396 239/536/393 +f 889/535/392 240/540/396 892/541/397 +f 434/542/398 889/535/392 433/543/399 +f 434/542/398 891/538/395 890/533/390 +f 436/544/400 891/538/395 435/545/401 +f 436/546/400 889/535/392 892/541/397 +f 438/547/402 243/548/403 242/549/404 +f 439/550/405 244/551/406 243/552/403 +f 437/553/407 244/551/406 440/554/408 +f 442/555/409 247/556/410 246/245/210 +f 444/557/411 247/558/410 443/559/412 +f 441/244/209 248/560/413 444/557/411 +f 246/245/210 501/561/414 245/246/211 +f 446/562/415 251/563/416 250/564/417 +f 448/565/418 251/566/416 447/567/419 +f 445/568/420 252/569/421 448/565/418 +f 250/564/417 597/570/422 249/571/423 +f 450/56/50 355/572/424 354/573/425 +f 451/574/426 356/575/427 355/576/424 +f 449/58/52 356/575/427 452/577/428 +f 471/578/429 354/573/425 355/572/424 +f 893/579/430 454/580/431 453/581/432 +f 894/582/433 455/583/434 454/580/431 +f 896/584/435 455/583/434 895/585/436 +f 893/579/430 456/586/437 896/587/435 +f 458/588/438 893/579/430 457/589/439 +f 458/588/438 895/585/436 894/582/433 +f 460/590/440 895/585/436 459/591/441 +f 457/589/439 896/587/435 460/592/440 +f 471/593/429 356/575/427 472/594/442 +f 472/594/442 353/57/51 469/595/443 +f 474/596/444 33/50/45 473/597/445 +f 215/484/347 466/598/446 214/485/348 +f 215/484/347 468/599/447 467/600/448 +f 213/482/345 468/601/447 216/488/350 +f 462/602/449 9/15/14 461/603/450 +f 491/381/253 164/377/250 492/604/451 +f 489/605/452 164/378/250 161/68/61 +f 485/606/453 38/607/454 37/60/54 +f 239/536/393 482/608/455 238/537/394 +f 240/539/396 483/609/456 239/536/393 +f 240/540/396 481/610/457 484/611/458 +f 463/612/459 10/12/11 462/602/449 +f 463/612/459 12/17/16 11/19/17 +f 464/613/460 9/15/14 12/614/16 +f 462/602/449 465/615/461 466/598/446 +f 463/612/459 466/598/446 467/600/448 +f 463/612/459 468/599/447 464/616/460 +f 464/613/460 465/615/461 461/603/450 +f 473/597/445 470/617/462 474/596/444 +f 475/618/463 470/617/462 471/578/429 +f 476/619/464 471/593/429 472/594/442 +f 476/619/464 469/595/443 473/597/445 +f 470/617/462 353/57/51 354/573/425 +f 475/618/463 34/54/49 474/596/444 +f 475/620/463 36/49/44 35/52/47 +f 476/619/464 33/50/45 36/49/44 +f 477/621/465 18/21/19 17/24/22 +f 479/622/466 18/21/19 478/623/467 +f 480/624/468 19/28/25 479/622/466 +f 480/625/468 17/24/22 20/626/24 +f 477/621/465 482/608/455 478/623/467 +f 479/622/466 482/608/455 483/609/456 +f 480/624/468 483/609/456 484/627/458 +f 480/625/468 481/610/457 477/621/465 +f 214/485/348 465/615/461 213/482/345 +f 487/628/469 38/607/454 486/629/470 +f 488/630/471 39/66/59 487/628/469 +f 488/631/471 37/60/54 40/632/57 +f 485/606/453 490/380/252 486/629/470 +f 486/629/470 491/381/253 487/628/469 +f 488/630/471 491/381/253 492/604/451 +f 485/606/453 492/633/451 489/605/452 +f 490/380/252 161/68/61 162/375/248 +f 247/556/410 502/634/472 246/245/210 +f 247/558/410 504/635/473 503/636/474 +f 248/560/413 501/561/414 504/635/473 +f 494/637/475 897/638/476 493/639/477 +f 495/640/478 898/6/6 494/637/475 +f 495/641/478 900/1/1 899/4/4 +f 496/642/479 897/638/476 900/1/1 +f 494/637/475 497/643/480 498/644/481 +f 495/640/478 498/644/481 499/645/482 +f 495/641/478 500/646/483 496/642/479 +f 496/642/479 497/643/480 493/639/477 +f 498/644/481 501/561/414 502/634/472 +f 498/644/481 503/647/474 499/645/482 +f 499/648/482 504/635/473 500/646/483 +f 497/643/480 504/635/473 501/561/414 +f 562/649/484 557/650/485 561/651/486 +f 455/583/434 514/652/487 454/580/431 +f 455/583/434 516/653/488 515/654/489 +f 456/586/437 513/655/490 516/656/488 +f 507/657/491 26/30/27 506/658/492 +f 508/659/493 27/37/33 507/657/491 +f 508/660/493 25/33/30 28/661/32 +f 505/662/494 510/663/495 506/658/492 +f 507/657/491 510/663/495 511/664/496 +f 508/659/493 511/664/496 512/665/497 +f 508/660/493 509/666/498 505/662/494 +f 510/663/495 513/655/490 514/652/487 +f 511/664/496 514/652/487 515/654/489 +f 511/664/496 516/653/488 512/665/497 +f 512/667/497 513/655/490 509/666/498 +f 237/534/391 482/608/455 481/610/457 +f 190/435/302 525/668/499 189/669/500 +f 191/434/301 526/670/501 190/435/302 +f 191/437/301 528/671/502 527/672/503 +f 192/440/306 525/668/499 528/671/502 +f 519/673/504 30/44/40 518/46/41 +f 519/674/504 32/39/35 31/42/38 +f 520/675/505 29/40/36 32/39/35 +f 518/46/41 521/676/506 522/677/507 +f 519/673/504 522/677/507 523/678/508 +f 519/674/504 524/679/509 520/675/505 +f 520/675/505 521/676/506 517/47/42 +f 385/439/305 190/435/302 189/669/500 +f 521/676/506 526/670/501 522/677/507 +f 522/677/507 527/680/503 523/678/508 +f 524/679/509 527/672/503 528/671/502 +f 521/676/506 528/671/502 525/668/499 +f 159/232/201 538/681/510 158/233/202 +f 159/235/201 540/682/511 539/683/512 +f 157/286/220 540/682/511 160/238/206 +f 530/684/513 53/80/72 529/685/514 +f 531/686/515 54/81/73 530/684/513 +f 531/687/515 56/83/75 55/85/77 +f 532/688/516 53/80/72 56/83/75 +f 530/684/513 533/689/517 534/690/518 +f 531/686/515 534/690/518 535/691/519 +f 531/687/515 536/692/520 532/688/516 +f 532/688/516 533/689/517 529/685/514 +f 534/690/518 537/285/219 538/681/510 +f 534/690/518 539/693/512 535/691/519 +f 535/694/519 540/682/511 536/692/520 +f 533/689/517 540/682/511 537/285/219 +f 195/445/311 554/695/521 194/442/308 +f 195/447/311 556/696/522 555/697/523 +f 196/449/314 553/698/524 556/696/522 +f 543/699/525 62/90/81 542/700/526 +f 543/701/525 64/92/83 63/94/85 +f 544/702/527 61/89/80 64/92/83 +f 542/700/526 545/703/528 546/704/529 +f 542/700/526 547/705/530 543/699/525 +f 543/701/525 548/706/531 544/702/527 +f 541/707/532 548/706/531 545/703/528 +f 561/651/486 550/708/533 562/649/484 +f 562/649/484 551/709/534 563/710/535 +f 564/711/536 551/712/534 552/713/537 +f 561/651/486 552/713/537 549/714/538 +f 550/708/533 553/698/524 554/695/521 +f 551/709/534 554/695/521 555/715/523 +f 551/712/534 556/696/522 552/713/537 +f 552/713/537 553/698/524 549/714/538 +f 545/703/528 558/716/539 546/704/529 +f 547/705/530 558/716/539 559/717/540 +f 548/706/531 559/718/540 560/719/541 +f 548/706/531 557/650/485 545/703/528 +f 563/710/535 558/716/539 562/649/484 +f 563/720/535 560/719/541 559/718/540 +f 557/650/485 564/711/536 561/651/486 +f 505/662/494 26/30/27 25/33/30 +f 167/386/258 574/721/542 166/383/255 +f 167/388/258 576/722/543 575/723/544 +f 165/384/256 576/722/543 168/390/261 +f 566/724/545 89/127/114 565/725/546 +f 567/726/547 90/128/115 566/724/545 +f 567/727/547 92/130/117 91/132/119 +f 568/728/548 89/127/114 92/130/117 +f 566/724/545 569/729/549 570/730/550 +f 567/726/547 570/730/550 571/731/551 +f 567/727/547 572/732/552 568/728/548 +f 568/728/548 569/729/549 565/725/546 +f 570/730/550 573/733/553 574/721/542 +f 570/730/550 575/734/544 571/731/551 +f 571/735/551 576/722/543 572/732/552 +f 569/729/549 576/722/543 573/733/553 +f 542/700/526 61/89/80 541/707/532 +f 175/262/214 586/736/554 174/737/555 +f 176/404/273 587/738/556 175/262/214 +f 176/406/273 585/739/557 588/740/558 +f 577/741/559 46/71/64 45/74/67 +f 43/73/66 282/742/152 283/743/212 +f 44/75/68 283/744/212 284/745/213 +f 41/72/65 284/745/213 281/746/153 +f 689/747/560 686/748/561 690/749/562 +f 282/742/152 41/72/65 281/746/153 +f 173/408/276 370/263/215 174/737/555 +f 579/750/563 46/71/64 578/751/564 +f 580/752/565 47/78/70 579/750/563 +f 580/753/565 45/74/67 48/754/69 +f 577/741/559 582/755/566 578/751/564 +f 579/750/563 582/755/566 583/756/567 +f 580/752/565 583/756/567 584/757/568 +f 580/753/565 581/758/569 577/741/559 +f 582/755/566 585/739/557 586/736/554 +f 582/755/566 587/738/556 583/756/567 +f 583/756/567 588/759/558 584/757/568 +f 581/758/569 588/740/558 585/739/557 +f 251/563/416 598/760/570 250/564/417 +f 251/566/416 600/761/571 599/762/572 +f 252/569/421 597/570/422 600/761/571 +f 602/763/573 589/764/574 590/765/575 +f 603/766/576 590/765/575 591/767/577 +f 603/768/576 592/769/578 604/770/579 +f 604/770/579 589/764/574 601/771/580 +f 602/763/573 81/118/106 601/771/580 +f 605/772/581 594/773/582 606/774/583 +f 606/774/583 595/775/584 607/776/585 +f 608/777/586 595/778/584 596/779/587 +f 605/772/581 596/779/587 593/780/588 +f 593/780/588 598/760/570 594/773/582 +f 594/773/582 599/781/572 595/775/584 +f 596/779/587 599/762/572 600/761/571 +f 593/780/588 600/761/571 597/570/422 +f 603/766/576 82/119/107 602/763/573 +f 603/768/576 84/121/109 83/123/111 +f 604/770/579 81/118/106 84/121/109 +f 590/765/575 605/772/581 606/774/583 +f 591/767/577 606/774/583 607/776/585 +f 591/782/577 608/777/586 592/769/578 +f 592/769/578 605/772/581 589/764/574 +f 616/783/589 211/474/338 212/476/340 +f 613/784/590 212/476/340 209/785/222 +f 609/786/591 74/110/99 73/109/98 +f 610/787/592 75/115/103 74/110/99 +f 612/788/593 75/115/103 611/789/594 +f 609/790/591 76/112/101 612/788/593 +f 609/786/591 614/479/342 610/787/592 +f 610/787/592 615/480/343 611/789/594 +f 612/788/593 615/480/343 616/783/589 +f 609/790/591 616/783/589 613/784/590 +f 613/791/590 210/792/595 614/479/342 +f 226/511/370 619/793/596 618/794/597 +f 227/510/369 620/795/598 619/793/596 +f 225/106/95 620/796/598 228/514/372 +f 621/797/599 902/798/600 622/799/601 +f 622/799/601 903/800/602 623/801/603 +f 624/802/604 903/800/602 904/803/605 +f 621/797/599 904/804/605 901/805/606 +f 617/516/374 902/798/600 901/805/606 +f 619/793/596 902/798/600 618/794/597 +f 620/795/598 903/800/602 619/793/596 +f 620/796/598 901/805/606 904/804/605 +f 625/806/607 622/799/601 626/807/608 +f 627/808/609 622/799/601 623/801/603 +f 628/809/610 623/801/603 624/802/604 +f 628/810/610 621/797/599 625/806/607 +f 629/811/611 626/807/608 630/812/612 +f 630/812/612 627/808/609 631/813/613 +f 632/814/614 627/808/609 628/809/610 +f 629/811/611 628/810/610 625/806/607 +f 629/811/611 66/815/615 65/98/88 +f 631/813/613 66/815/615 630/812/612 +f 632/814/614 67/104/93 631/813/613 +f 632/816/614 65/98/88 68/817/91 +f 381/429/296 186/425/293 185/432/299 +f 223/504/364 634/818/616 222/332/228 +f 223/506/364 636/819/617 635/820/618 +f 224/508/367 633/509/368 636/819/617 +f 638/821/619 633/509/368 634/818/616 +f 638/821/619 635/822/618 639/823/620 +f 639/824/620 636/819/617 640/825/621 +f 637/826/622 636/819/617 633/509/368 +f 642/827/623 637/826/622 638/821/619 +f 643/828/624 638/821/619 639/823/620 +f 643/829/624 640/825/621 644/830/625 +f 644/830/625 637/826/622 641/831/626 +f 642/827/623 113/154/138 641/831/626 +f 643/828/624 114/155/139 642/827/623 +f 643/829/624 116/157/141 115/159/143 +f 644/830/625 113/154/138 116/157/141 +f 171/397/267 646/402/271 170/338/232 +f 172/401/270 647/832/627 171/399/267 +f 172/401/270 645/403/272 648/833/628 +f 649/834/629 646/402/271 650/835/630 +f 650/835/630 647/836/627 651/837/631 +f 652/838/632 647/832/627 648/833/628 +f 649/834/629 648/833/628 645/403/272 +f 654/839/633 649/834/629 650/835/630 +f 655/840/634 650/835/630 651/837/631 +f 655/841/634 652/838/632 656/842/635 +f 656/842/635 649/834/629 653/843/636 +f 658/167/150 653/843/636 654/839/633 +f 658/167/150 655/840/634 659/844/148 +f 659/165/148 656/842/635 660/164/147 +f 657/162/145 656/842/635 653/843/636 +f 906/845/160 122/173/155 905/846/637 +f 219/496/357 662/501/361 218/353/238 +f 220/500/360 663/847/638 219/498/357 +f 220/500/360 661/502/362 664/848/639 +f 665/849/640 662/501/361 666/850/641 +f 666/850/641 663/851/638 667/852/642 +f 668/853/643 663/847/638 664/848/639 +f 665/849/640 664/848/639 661/502/362 +f 670/854/644 665/849/640 666/850/641 +f 670/854/644 667/852/642 671/855/645 +f 671/856/645 668/853/643 672/857/646 +f 669/858/647 668/853/643 665/849/640 +f 674/859/648 669/858/647 670/854/644 +f 675/860/649 670/854/644 671/855/645 +f 675/861/649 672/857/646 676/862/650 +f 676/862/650 669/858/647 673/863/651 +f 130/347/234 674/859/648 129/192/168 +f 129/192/168 675/860/649 132/350/235 +f 131/349/236 675/861/649 676/862/650 +f 130/347/234 676/862/650 673/863/651 +f 677/864/652 350/366/240 678/865/653 +f 679/866/654 350/366/240 351/369/243 +f 680/867/655 351/369/243 352/868/246 +f 680/869/655 349/367/241 677/864/652 +f 682/870/656 677/864/652 678/865/653 +f 683/871/657 678/865/653 679/866/654 +f 683/871/657 680/867/655 684/872/658 +f 684/873/658 677/864/652 681/874/659 +f 686/748/561 681/874/659 682/870/656 +f 686/748/561 683/871/657 687/875/660 +f 687/875/660 684/872/658 688/876/661 +f 685/877/662 684/873/658 681/874/659 +f 690/749/562 687/875/660 691/878/663 +f 687/875/660 692/879/664 691/878/663 +f 688/880/661 689/747/560 692/881/664 +f 346/882/152 145/213/184 345/364/153 +f 689/747/560 106/145/130 105/148/133 +f 690/749/562 107/152/136 106/145/130 +f 692/879/664 107/152/136 691/878/663 +f 689/747/560 108/883/135 692/881/664 +f 310/884/152 93/135/121 309/316/153 +f 178/411/279 693/885/665 177/886/666 +f 179/410/278 694/887/667 178/411/279 +f 179/410/278 696/888/668 695/889/669 +f 180/413/281 693/890/665 696/888/668 +f 698/891/670 693/885/665 694/887/667 +f 699/892/671 694/887/667 695/889/669 +f 699/892/671 696/888/668 700/893/672 +f 700/893/672 693/890/665 697/894/673 +f 701/895/674 698/891/670 702/896/675 +f 702/896/675 699/892/671 703/897/676 +f 704/898/677 699/892/671 700/893/672 +f 701/899/674 700/893/672 697/894/673 +f 705/900/678 702/896/675 706/901/679 +f 706/901/679 703/897/676 707/902/680 +f 708/903/681 701/899/674 705/904/678 +f 708/903/681 703/897/676 704/898/677 +f 98/137/123 705/900/678 706/901/679 +f 98/137/123 707/902/680 99/142/127 +f 99/142/127 708/903/681 100/139/125 +f 97/140/122 708/903/681 705/904/678 +f 374/409/277 177/886/666 373/905/282 +f 230/518/376 711/906/682 710/907/683 +f 231/521/379 712/908/684 711/906/682 +f 229/522/380 712/908/684 232/523/381 +f 714/909/685 709/525/382 710/910/683 +f 715/911/686 710/907/683 711/906/682 +f 715/911/686 712/908/684 716/912/687 +f 716/912/687 709/525/382 713/913/688 +f 718/914/689 713/913/688 714/909/685 +f 718/915/689 715/911/686 719/916/690 +f 719/916/690 716/912/687 720/917/691 +f 717/918/692 716/912/687 713/913/688 +f 302/305/152 77/117/105 301/307/153 +f 721/919/693 718/914/689 722/920/694 +f 723/921/695 718/915/689 719/916/690 +f 724/922/696 719/916/690 720/917/691 +f 724/922/696 717/918/692 721/919/693 +f 726/923/697 721/919/693 722/920/694 +f 726/924/697 723/921/695 727/925/698 +f 727/925/698 724/922/696 728/926/699 +f 725/927/700 724/922/696 721/919/693 +f 730/928/701 725/927/700 726/923/697 +f 730/929/701 727/925/698 731/930/702 +f 731/930/702 728/926/699 732/931/703 +f 729/932/704 728/926/699 725/927/700 +f 730/928/701 137/198/173 729/932/704 +f 730/929/701 139/202/176 138/933/170 +f 731/930/702 140/200/175 139/202/176 +f 729/932/704 140/200/175 732/931/703 +f 425/934/705 230/524/376 229/522/380 +f 198/457/321 735/935/706 734/936/327 +f 200/461/325 735/935/706 199/456/320 +f 197/462/326 736/937/707 200/461/325 +f 737/938/708 734/463/327 738/939/709 +f 738/940/709 735/935/706 739/941/710 +f 740/942/711 735/935/706 736/937/707 +f 737/938/708 736/937/707 733/464/328 +f 741/943/712 738/939/709 742/944/713 +f 743/945/714 738/940/709 739/941/710 +f 744/946/715 739/941/710 740/942/711 +f 744/946/715 737/938/708 741/943/712 +f 746/947/716 741/943/712 742/944/713 +f 746/948/716 743/945/714 747/949/717 +f 747/949/717 744/946/715 748/950/718 +f 745/951/719 744/946/715 741/943/712 +f 749/952/720 746/947/716 750/953/721 +f 750/954/721 747/949/717 751/955/722 +f 752/956/723 747/949/717 748/950/718 +f 749/952/720 748/950/718 745/951/719 +f 393/460/324 198/957/321 197/462/326 +f 750/953/721 905/846/637 749/952/720 +f 750/954/721 907/176/158 906/178/160 +f 751/955/722 908/172/154 907/176/158 +f 749/952/720 908/172/154 752/956/723 +f 754/222/192 765/958/724 766/959/725 +f 754/222/192 767/960/726 755/225/195 +f 755/225/195 768/961/727 756/227/197 +f 753/229/194 768/961/727 765/962/724 +f 241/963/728 818/964/729 817/965/730 +f 763/966/731 770/967/732 762/968/733 +f 761/969/734 770/967/732 771/970/735 +f 764/971/736 771/970/735 772/972/737 +f 763/973/731 772/972/737 769/974/738 +f 790/975/739 761/969/734 789/976/740 +f 187/424/292 774/977/741 186/425/293 +f 187/427/292 776/978/742 775/979/743 +f 188/430/297 773/431/298 776/978/742 +f 778/980/744 773/431/298 774/977/741 +f 779/981/745 774/977/741 775/982/743 +f 779/983/745 776/978/742 780/984/746 +f 780/984/746 773/431/298 777/985/747 +f 781/986/748 778/980/744 782/987/749 +f 782/987/749 779/981/745 783/988/750 +f 784/989/751 779/983/745 780/984/746 +f 781/986/748 780/984/746 777/985/747 +f 786/990/752 781/986/748 782/987/749 +f 786/990/752 783/988/750 787/991/753 +f 787/992/753 784/989/751 788/993/754 +f 785/994/755 784/989/751 781/986/748 +f 786/990/752 791/995/756 790/975/739 +f 791/996/756 788/993/754 792/997/757 +f 792/997/757 785/994/755 789/976/740 +f 785/994/755 790/975/739 789/976/740 +f 791/995/756 762/968/733 790/975/739 +f 791/996/756 764/971/736 763/973/731 +f 792/997/757 761/969/734 764/971/736 +f 429/998/758 234/999/384 233/531/388 +f 234/999/384 793/1000/759 233/531/388 +f 234/527/384 795/1001/760 794/1002/761 +f 236/532/389 795/1001/760 235/530/387 +f 233/531/388 796/1003/762 236/532/389 +f 797/1004/763 794/1005/761 798/1006/764 +f 798/1007/764 795/1001/760 799/1008/765 +f 800/1009/766 795/1001/760 796/1003/762 +f 797/1004/763 796/1003/762 793/1000/759 +f 801/1010/767 798/1006/764 802/1011/768 +f 802/1012/768 799/1008/765 803/1013/769 +f 804/1014/770 799/1008/765 800/1009/766 +f 801/1010/767 800/1009/766 797/1004/763 +f 805/1015/771 802/1011/768 806/1016/772 +f 807/1017/773 802/1012/768 803/1013/769 +f 808/1018/774 803/1013/769 804/1014/770 +f 808/1018/774 801/1010/767 805/1015/771 +f 810/1019/775 807/1017/773 811/1020/776 +f 811/1020/776 808/1018/774 812/1021/777 +f 808/1018/774 809/1022/778 812/1021/777 +f 814/1023/779 809/1022/778 810/1024/775 +f 814/1025/779 811/1020/776 815/1026/780 +f 815/1026/780 812/1021/777 816/1027/781 +f 813/1028/782 812/1021/777 809/1022/778 +f 814/1023/779 909/1029/783 813/1028/782 +f 814/1025/779 911/207/181 910/209/183 +f 815/1026/780 912/203/177 911/207/181 +f 813/1028/782 912/203/177 816/1027/781 +f 243/548/403 818/964/729 242/549/404 +f 244/551/406 819/1030/784 243/552/403 +f 244/551/406 817/965/730 820/1031/785 +f 822/1032/786 817/965/730 818/964/729 +f 823/1033/787 818/964/729 819/1034/784 +f 823/1035/787 820/1031/785 824/1036/788 +f 824/1036/788 817/965/730 821/1037/789 +f 825/1038/790 822/1032/786 826/1039/791 +f 826/1039/791 823/1033/787 827/1040/792 +f 828/1041/793 823/1035/787 824/1036/788 +f 825/1038/790 824/1036/788 821/1037/789 +f 830/1042/794 825/1038/790 826/1039/791 +f 831/1043/795 826/1039/791 827/1040/792 +f 831/1044/795 828/1041/793 832/1045/796 +f 832/1045/796 825/1038/790 829/1046/797 +f 830/1042/794 757/228/198 829/1046/797 +f 831/1043/795 758/226/196 830/1042/794 +f 831/1044/795 760/230/199 759/1047/193 +f 832/1045/796 757/228/198 760/230/199 +f 834/1048/798 205/1049/799 206/469/333 +f 207/468/332 834/1048/798 206/469/333 +f 208/471/335 835/1050/800 207/468/332 +f 833/1051/801 208/471/335 205/1052/799 +f 837/1053/802 834/1048/798 838/1054/803 +f 838/1054/803 835/1050/800 839/1055/804 +f 840/1056/805 835/1050/800 836/1057/806 +f 837/1058/802 836/1057/806 833/1051/801 +f 841/1059/807 838/1054/803 842/188/167 +f 842/188/167 839/1055/804 843/186/165 +f 844/182/161 839/1055/804 840/1056/805 +f 841/1060/807 840/1056/805 837/1058/802 +f 402/467/331 205/1049/799 401/1061/336 +f 182/418/286 845/1062/808 181/1063/809 +f 183/417/285 846/1064/810 182/418/286 +f 184/420/288 847/1065/811 183/417/285 +f 184/420/288 845/1066/808 848/1067/812 +f 850/1068/813 845/1062/808 846/1064/810 +f 851/1069/814 846/1064/810 847/1065/811 +f 851/1069/814 848/1067/812 852/1070/815 +f 852/1070/815 845/1066/808 849/1071/816 +f 854/1072/817 849/1073/816 850/1068/813 +f 854/1072/817 851/1069/814 855/1074/818 +f 855/1074/818 852/1070/815 856/1075/819 +f 853/1076/820 852/1070/815 849/1071/816 +f 857/1077/821 854/1072/817 858/1078/822 +f 858/1078/822 855/1074/818 859/1079/823 +f 860/1080/824 855/1074/818 856/1075/819 +f 857/1081/821 856/1075/819 853/1076/820 +f 857/1077/821 150/215/186 149/214/185 +f 859/1079/823 150/215/186 858/1078/822 +f 860/1080/824 151/220/190 859/1079/823 +f 860/1080/824 149/218/185 152/217/188 +f 194/442/308 553/698/524 193/443/309 +f 454/580/431 513/655/490 453/581/432 +f 173/408/276 586/736/554 585/739/557 +f 166/383/255 573/733/553 165/384/256 +f 897/638/476 1/8/7 2/2/2 +f 870/61/55 38/607/454 869/65/58 +f 865/272/218 33/50/45 34/54/49 +f 861/266/217 29/40/36 30/44/40 +f 874/99/89 66/815/615 873/103/92 +f 805/1015/771 810/1024/775 809/1022/778 +f 909/1029/783 141/211/182 142/204/178 +f 298/1082/152 69/108/97 297/299/153 +f 314/319/152 101/146/131 313/321/153 +f 438/547/402 241/963/728 437/553/407 +f 841/1059/807 125/187/166 126/1083/162 +f 318/327/152 109/153/137 317/329/153 +f 658/167/150 118/335/230 657/162/145 +f 378/416/284 181/1063/809 377/1084/289 +f 338/356/152 133/196/171 337/1085/153 +f 445/568/420 250/564/417 249/571/423 +f 153/237/205 158/233/202 157/286/220 +f 306/310/152 85/126/113 305/312/153 +f 900/1/1 897/638/476 2/2/2 +f 899/4/4 900/1/1 3/3/3 +f 898/6/6 899/1086/4 4/7/5 +f 254/9/8 2/2/2 1/8/7 +f 6/11/10 9/15/14 10/12/11 +f 7/14/13 12/614/16 9/15/14 +f 8/16/15 11/19/17 12/17/16 +f 5/13/12 10/12/11 11/19/17 +f 14/20/18 17/24/22 18/21/19 +f 15/23/21 20/626/24 17/24/22 +f 16/25/23 19/28/25 20/26/24 +f 13/22/20 18/21/19 19/28/25 +f 22/29/26 25/33/30 26/30/27 +f 23/32/29 28/661/32 25/33/30 +f 24/34/31 27/37/33 28/35/32 +f 21/31/28 26/30/27 27/37/33 +f 862/38/34 863/41/37 32/39/35 +f 863/41/37 864/1087/39 31/42/38 +f 864/43/39 861/266/217 30/44/40 +f 518/46/41 30/44/40 29/40/36 +f 866/48/43 867/51/46 36/49/44 +f 867/51/46 868/275/48 35/52/47 +f 868/53/48 865/272/218 34/54/49 +f 450/56/50 354/573/425 353/57/51 +f 871/59/53 40/632/57 37/60/54 +f 872/62/56 39/66/59 40/63/57 +f 869/65/58 38/607/454 39/66/59 +f 358/67/60 162/375/248 161/68/61 +f 42/70/63 45/74/67 46/71/64 +f 43/73/66 48/754/69 45/74/67 +f 44/75/68 47/78/70 48/76/69 +f 41/72/65 46/71/64 47/78/70 +f 49/79/71 50/82/74 53/80/72 +f 50/82/74 51/84/76 56/83/75 +f 51/84/76 52/283/78 55/85/77 +f 52/86/78 49/79/71 54/81/73 +f 57/88/79 58/91/82 61/89/80 +f 58/91/82 59/93/84 64/92/83 +f 59/93/84 60/289/86 63/94/85 +f 60/95/86 57/88/79 62/90/81 +f 875/97/87 68/817/91 65/98/88 +f 876/100/90 67/104/93 68/101/91 +f 873/103/92 66/815/615 67/104/93 +f 422/105/94 226/511/370 225/106/95 +f 69/108/97 70/1088/100 73/109/98 +f 70/111/100 71/114/102 76/112/101 +f 71/114/102 72/116/104 75/115/103 +f 72/116/104 69/108/97 74/110/99 +f 77/117/105 78/120/108 81/118/106 +f 78/120/108 79/122/110 84/121/109 +f 79/122/110 80/306/112 83/123/111 +f 80/124/112 77/117/105 82/119/107 +f 85/126/113 86/129/116 89/127/114 +f 86/129/116 87/131/118 92/130/117 +f 87/131/118 88/311/120 91/132/119 +f 88/133/120 85/126/113 90/128/115 +f 93/135/121 94/1089/124 97/136/122 +f 94/138/124 95/141/126 100/139/125 +f 95/141/126 96/143/128 99/142/127 +f 96/143/128 93/135/121 98/137/123 +f 102/144/129 105/148/133 106/145/130 +f 103/147/132 108/883/135 105/148/133 +f 104/149/134 107/152/136 108/150/135 +f 101/146/131 106/145/130 107/152/136 +f 109/153/137 110/156/140 113/154/138 +f 110/156/140 111/158/142 116/157/141 +f 111/158/142 112/328/144 115/159/143 +f 112/160/144 109/153/137 114/155/139 +f 657/162/145 118/335/230 119/163/146 +f 659/165/148 660/164/147 119/163/146 +f 658/167/150 659/844/148 120/168/149 +f 322/170/152 118/335/230 117/169/151 +f 908/172/154 905/846/637 122/173/155 +f 908/172/154 123/174/156 124/175/157 +f 907/176/158 124/175/157 121/177/159 +f 326/179/152 122/173/155 121/180/159 +f 844/182/161 841/1060/807 126/183/162 +f 844/182/161 127/184/163 128/185/164 +f 843/186/165 128/185/164 125/187/166 +f 330/189/152 126/1083/162 125/187/166 +f 334/191/152 130/347/234 129/192/168 +f 134/194/169 137/198/173 138/195/170 +f 135/197/172 140/200/175 137/198/173 +f 136/199/174 139/202/176 140/200/175 +f 133/201/171 138/933/170 139/202/176 +f 912/203/177 909/1029/783 142/204/178 +f 912/203/177 143/205/179 144/206/180 +f 911/207/181 144/206/180 141/208/182 +f 342/210/152 142/204/178 141/211/182 +f 145/213/184 146/1090/187 149/214/185 +f 146/216/187 147/219/189 152/217/188 +f 147/219/189 148/221/191 151/220/190 +f 148/221/191 145/213/184 150/215/186 +f 754/222/192 758/226/196 759/223/193 +f 755/225/195 757/228/198 758/226/196 +f 756/227/197 760/230/199 757/228/198 +f 753/229/194 759/1047/193 760/230/199 +f 154/231/200 155/1091/204 159/232/201 +f 156/234/203 160/238/206 159/235/201 +f 153/237/205 157/286/220 160/238/206 +f 286/239/152 50/82/74 49/79/71 +f 3/3/3 2/2/2 254/9/8 +f 4/5/5 3/3/3 255/241/207 +f 1/8/7 4/7/5 256/243/208 +f 441/244/209 442/555/409 246/245/210 +f 259/247/212 7/14/13 6/11/10 +f 259/249/212 260/251/213 8/16/15 +f 257/250/153 5/13/12 8/16/15 +f 262/252/152 14/20/18 13/22/20 +f 263/254/212 15/23/21 14/20/18 +f 263/255/212 264/256/213 16/25/23 +f 261/253/153 13/22/20 16/25/23 +f 266/257/152 22/29/26 21/31/28 +f 267/259/212 23/32/29 22/29/26 +f 267/260/212 268/261/213 24/34/31 +f 265/258/153 21/31/28 24/34/31 +f 175/262/214 174/737/555 370/263/215 +f 269/265/153 270/268/152 862/38/34 +f 271/267/212 863/41/37 862/38/34 +f 272/269/213 864/1087/39 863/41/37 +f 269/265/153 861/266/217 864/43/39 +f 274/271/152 866/48/43 865/272/218 +f 275/274/212 867/51/46 866/48/43 +f 275/274/212 276/1092/213 868/275/48 +f 273/273/153 865/272/218 868/53/48 +f 277/277/153 278/279/152 870/61/55 +f 279/278/212 871/59/53 870/61/55 +f 280/280/213 872/62/56 871/64/53 +f 277/277/153 869/65/58 872/62/56 +f 287/282/212 51/84/76 50/82/74 +f 287/282/212 288/1093/213 52/283/78 +f 285/240/153 49/79/71 52/86/78 +f 158/233/202 538/681/510 537/285/219 +f 291/287/212 59/93/84 58/91/82 +f 291/287/212 292/1094/213 60/289/86 +f 289/290/153 57/88/79 60/95/86 +f 258/248/152 6/11/10 5/13/12 +f 293/292/153 294/294/152 874/99/89 +f 295/293/212 875/97/87 874/99/89 +f 296/295/213 876/100/90 875/102/87 +f 293/292/153 873/103/92 876/100/90 +f 299/297/212 71/114/102 70/111/100 +f 299/297/212 300/300/213 72/116/104 +f 297/299/153 69/108/97 72/116/104 +f 406/301/221 210/792/595 209/302/222 +f 303/304/212 79/122/110 78/120/108 +f 303/304/212 304/1095/213 80/306/112 +f 301/307/153 77/117/105 80/124/112 +f 307/309/212 87/131/118 86/129/116 +f 307/309/212 308/1096/213 88/311/120 +f 305/312/153 85/126/113 88/133/120 +f 290/288/152 58/91/82 57/88/79 +f 311/314/212 95/141/126 94/138/124 +f 311/314/212 312/317/213 96/143/128 +f 309/316/153 93/135/121 96/143/128 +f 315/318/212 103/147/132 102/144/129 +f 315/320/212 316/322/213 104/149/134 +f 313/321/153 101/146/131 104/149/134 +f 398/323/224 202/368/242 201/324/225 +f 319/326/212 111/158/142 110/156/140 +f 319/326/212 320/1097/213 112/328/144 +f 317/329/153 109/153/137 112/160/144 +f 417/331/227 418/503/363 222/332/228 +f 323/334/212 119/163/146 118/335/230 +f 323/334/212 324/1098/213 120/166/149 +f 321/171/153 117/169/151 120/168/149 +f 365/337/231 366/396/266 170/338/232 +f 327/340/212 123/174/156 122/173/155 +f 327/340/212 328/342/213 124/175/157 +f 325/341/153 121/177/159 124/175/157 +f 331/343/212 127/184/163 126/183/162 +f 331/343/212 332/345/213 128/185/164 +f 329/190/153 125/187/166 128/185/164 +f 335/346/212 131/349/236 130/347/234 +f 335/346/212 336/1099/213 132/348/235 +f 333/193/153 129/192/168 132/350/235 +f 413/352/237 414/495/356 218/353/238 +f 339/355/212 135/197/172 134/194/169 +f 339/355/212 340/358/213 136/199/174 +f 337/357/153 133/201/171 136/199/174 +f 343/359/212 143/205/179 142/204/178 +f 343/359/212 344/361/213 144/206/180 +f 341/360/153 141/208/182 144/206/180 +f 347/362/212 147/219/189 146/216/187 +f 347/362/212 348/365/213 148/221/191 +f 345/364/153 145/213/184 148/221/191 +f 201/324/225 202/368/242 350/366/240 +f 202/368/242 203/371/245 351/369/243 +f 204/370/244 352/868/246 351/369/243 +f 204/372/244 201/324/225 349/367/241 +f 358/67/60 359/376/249 163/374/247 +f 359/376/249 360/1100/251 164/377/250 +f 357/69/62 161/68/61 164/378/250 +f 490/380/252 162/375/248 163/374/247 +f 877/382/254 878/385/257 166/383/255 +f 878/385/257 879/393/260 167/386/258 +f 880/387/259 168/390/261 167/388/258 +f 877/382/254 165/384/256 168/390/261 +f 362/391/262 878/385/257 877/382/254 +f 362/391/262 363/1101/265 879/393/260 +f 364/394/264 880/387/259 879/389/260 +f 364/394/264 361/392/263 877/382/254 +f 366/396/266 367/1102/269 171/397/267 +f 368/398/268 172/401/270 171/399/267 +f 365/337/231 169/339/233 172/401/270 +f 169/339/233 170/338/232 646/402/271 +f 176/404/273 175/262/214 371/264/216 +f 176/406/273 372/1103/274 369/407/275 +f 374/409/277 375/412/280 179/410/278 +f 375/412/280 376/415/283 180/413/281 +f 373/414/282 177/1104/666 180/413/281 +f 378/416/284 379/419/287 183/417/285 +f 379/419/287 380/422/290 184/420/288 +f 377/421/289 181/1105/809 184/420/288 +f 382/423/291 383/1106/295 187/424/292 +f 384/426/294 188/430/297 187/427/292 +f 381/429/296 185/432/299 188/430/297 +f 186/425/293 774/977/741 773/431/298 +f 386/433/300 387/1107/304 191/434/301 +f 388/436/303 192/440/306 191/437/301 +f 385/439/305 189/669/500 192/440/306 +f 881/441/307 882/444/310 194/442/308 +f 882/444/310 883/1108/313 195/445/311 +f 884/446/312 196/449/314 195/447/311 +f 881/441/307 193/443/309 196/449/314 +f 390/450/315 882/444/310 881/441/307 +f 391/452/317 883/1108/313 882/444/310 +f 391/453/317 392/454/318 884/446/312 +f 392/454/318 389/451/316 881/441/307 +f 394/455/319 395/459/323 199/456/320 +f 396/458/322 200/461/325 199/456/320 +f 393/460/324 197/462/326 200/461/325 +f 197/462/326 198/957/321 734/463/327 +f 398/323/224 399/465/329 203/371/245 +f 399/465/329 400/1109/330 204/370/244 +f 397/325/226 201/324/225 204/372/244 +f 402/467/331 403/470/334 207/468/332 +f 403/470/334 404/473/337 208/471/335 +f 401/472/336 205/1052/799 208/471/335 +f 211/474/338 210/792/595 406/301/221 +f 212/476/340 211/474/338 407/475/339 +f 405/478/223 209/785/222 212/476/340 +f 614/479/342 210/792/595 211/474/338 +f 886/481/344 214/485/348 213/482/345 +f 886/481/344 887/486/349 215/484/347 +f 887/486/349 888/1110/351 216/487/350 +f 885/483/346 213/482/345 216/488/350 +f 410/490/352 886/481/344 885/483/346 +f 410/490/352 411/493/355 887/486/349 +f 412/492/354 888/1110/351 887/486/349 +f 409/491/353 885/483/346 888/489/351 +f 414/495/356 415/1111/359 219/496/357 +f 416/497/358 220/500/360 219/498/357 +f 413/352/237 217/354/239 220/500/360 +f 217/354/239 218/353/238 662/501/361 +f 418/503/363 419/1112/366 223/504/364 +f 420/505/365 224/508/367 223/506/364 +f 417/331/227 221/333/229 224/508/367 +f 222/332/228 634/818/616 633/509/368 +f 422/105/94 423/512/371 227/510/369 +f 423/512/371 424/1113/373 228/513/372 +f 421/107/96 225/106/95 228/514/372 +f 226/511/370 618/794/597 617/516/374 +f 427/517/375 231/521/379 230/518/376 +f 428/520/378 232/523/381 231/521/379 +f 428/520/378 425/934/705 229/522/380 +f 230/524/376 710/910/683 709/525/382 +f 431/526/383 235/530/387 234/527/384 +f 432/529/386 236/532/389 235/530/387 +f 432/529/386 429/998/758 233/531/388 +f 890/533/390 238/537/394 237/534/391 +f 890/533/390 891/538/395 239/536/393 +f 891/538/395 892/1114/397 240/539/396 +f 889/535/392 237/534/391 240/540/396 +f 434/542/398 890/533/390 889/535/392 +f 434/542/398 435/545/401 891/538/395 +f 436/544/400 892/1114/397 891/538/395 +f 436/546/400 433/543/399 889/535/392 +f 438/547/402 439/1115/405 243/548/403 +f 439/550/405 440/554/408 244/551/406 +f 437/553/407 241/963/728 244/551/406 +f 442/555/409 443/1116/412 247/556/410 +f 444/557/411 248/560/413 247/558/410 +f 441/244/209 245/246/211 248/560/413 +f 246/245/210 502/634/472 501/561/414 +f 446/562/415 447/1117/419 251/563/416 +f 448/565/418 252/569/421 251/566/416 +f 445/568/420 249/571/423 252/569/421 +f 250/564/417 598/760/570 597/570/422 +f 450/56/50 451/1118/426 355/572/424 +f 451/574/426 452/577/428 356/575/427 +f 449/58/52 353/57/51 356/575/427 +f 471/578/429 470/617/462 354/573/425 +f 893/579/430 894/582/433 454/580/431 +f 894/582/433 895/585/436 455/583/434 +f 896/584/435 456/1119/437 455/583/434 +f 893/579/430 453/581/432 456/586/437 +f 458/588/438 894/582/433 893/579/430 +f 458/588/438 459/591/441 895/585/436 +f 460/590/440 896/584/435 895/585/436 +f 457/589/439 893/579/430 896/587/435 +f 471/593/429 355/576/424 356/575/427 +f 472/594/442 356/575/427 353/57/51 +f 474/596/444 34/54/49 33/50/45 +f 215/484/347 467/600/448 466/598/446 +f 215/484/347 216/487/350 468/599/447 +f 213/482/345 465/615/461 468/601/447 +f 462/602/449 10/12/11 9/15/14 +f 491/381/253 163/374/247 164/377/250 +f 489/605/452 492/633/451 164/378/250 +f 485/606/453 486/629/470 38/607/454 +f 239/536/393 483/609/456 482/608/455 +f 240/539/396 484/627/458 483/609/456 +f 240/540/396 237/534/391 481/610/457 +f 463/612/459 11/19/17 10/12/11 +f 463/612/459 464/616/460 12/17/16 +f 464/613/460 461/603/450 9/15/14 +f 462/602/449 461/603/450 465/615/461 +f 463/612/459 462/602/449 466/598/446 +f 463/612/459 467/600/448 468/599/447 +f 464/613/460 468/601/447 465/615/461 +f 473/597/445 469/595/443 470/617/462 +f 475/618/463 474/596/444 470/617/462 +f 476/619/464 475/620/463 471/593/429 +f 476/619/464 472/594/442 469/595/443 +f 470/617/462 469/595/443 353/57/51 +f 475/618/463 35/55/47 34/54/49 +f 475/620/463 476/619/464 36/49/44 +f 476/619/464 473/597/445 33/50/45 +f 477/621/465 478/623/467 18/21/19 +f 479/622/466 19/28/25 18/21/19 +f 480/624/468 20/26/24 19/28/25 +f 480/625/468 477/621/465 17/24/22 +f 477/621/465 481/610/457 482/608/455 +f 479/622/466 478/623/467 482/608/455 +f 480/624/468 479/622/466 483/609/456 +f 480/625/468 484/611/458 481/610/457 +f 214/485/348 466/598/446 465/615/461 +f 487/628/469 39/66/59 38/607/454 +f 488/630/471 40/63/57 39/66/59 +f 488/631/471 485/606/453 37/60/54 +f 485/606/453 489/605/452 490/380/252 +f 486/629/470 490/380/252 491/381/253 +f 488/630/471 487/628/469 491/381/253 +f 485/606/453 488/631/471 492/633/451 +f 490/380/252 489/605/452 161/68/61 +f 247/556/410 503/647/474 502/634/472 +f 247/558/410 248/560/413 504/635/473 +f 248/560/413 245/246/211 501/561/414 +f 494/637/475 898/6/6 897/638/476 +f 495/640/478 899/1086/4 898/6/6 +f 495/641/478 496/642/479 900/1/1 +f 496/642/479 493/639/477 897/638/476 +f 494/637/475 493/639/477 497/643/480 +f 495/640/478 494/637/475 498/644/481 +f 495/641/478 499/648/482 500/646/483 +f 496/642/479 500/646/483 497/643/480 +f 498/644/481 497/643/480 501/561/414 +f 498/644/481 502/634/472 503/647/474 +f 499/648/482 503/636/474 504/635/473 +f 497/643/480 500/646/483 504/635/473 +f 562/649/484 558/716/539 557/650/485 +f 455/583/434 515/654/489 514/652/487 +f 455/583/434 456/1119/437 516/653/488 +f 456/586/437 453/581/432 513/655/490 +f 507/657/491 27/37/33 26/30/27 +f 508/659/493 28/35/32 27/37/33 +f 508/660/493 505/662/494 25/33/30 +f 505/662/494 509/666/498 510/663/495 +f 507/657/491 506/658/492 510/663/495 +f 508/659/493 507/657/491 511/664/496 +f 508/660/493 512/667/497 509/666/498 +f 510/663/495 509/666/498 513/655/490 +f 511/664/496 510/663/495 514/652/487 +f 511/664/496 515/654/489 516/653/488 +f 512/667/497 516/656/488 513/655/490 +f 237/534/391 238/537/394 482/608/455 +f 190/435/302 526/670/501 525/668/499 +f 191/434/301 527/680/503 526/670/501 +f 191/437/301 192/440/306 528/671/502 +f 192/440/306 189/669/500 525/668/499 +f 519/673/504 31/45/38 30/44/40 +f 519/674/504 520/675/505 32/39/35 +f 520/675/505 517/47/42 29/40/36 +f 518/46/41 517/47/42 521/676/506 +f 519/673/504 518/46/41 522/677/507 +f 519/674/504 523/1120/508 524/679/509 +f 520/675/505 524/679/509 521/676/506 +f 385/439/305 386/433/300 190/435/302 +f 521/676/506 525/668/499 526/670/501 +f 522/677/507 526/670/501 527/680/503 +f 524/679/509 523/1120/508 527/672/503 +f 521/676/506 524/679/509 528/671/502 +f 159/232/201 539/693/512 538/681/510 +f 159/235/201 160/238/206 540/682/511 +f 157/286/220 537/285/219 540/682/511 +f 530/684/513 54/81/73 53/80/72 +f 531/686/515 55/87/77 54/81/73 +f 531/687/515 532/688/516 56/83/75 +f 532/688/516 529/685/514 53/80/72 +f 530/684/513 529/685/514 533/689/517 +f 531/686/515 530/684/513 534/690/518 +f 531/687/515 535/694/519 536/692/520 +f 532/688/516 536/692/520 533/689/517 +f 534/690/518 533/689/517 537/285/219 +f 534/690/518 538/681/510 539/693/512 +f 535/694/519 539/683/512 540/682/511 +f 533/689/517 536/692/520 540/682/511 +f 195/445/311 555/715/523 554/695/521 +f 195/447/311 196/449/314 556/696/522 +f 196/449/314 193/443/309 553/698/524 +f 543/699/525 63/96/85 62/90/81 +f 543/701/525 544/702/527 64/92/83 +f 544/702/527 541/707/532 61/89/80 +f 542/700/526 541/707/532 545/703/528 +f 542/700/526 546/704/529 547/705/530 +f 543/701/525 547/1121/530 548/706/531 +f 541/707/532 544/702/527 548/706/531 +f 561/651/486 549/714/538 550/708/533 +f 562/649/484 550/708/533 551/709/534 +f 564/711/536 563/720/535 551/712/534 +f 561/651/486 564/711/536 552/713/537 +f 550/708/533 549/714/538 553/698/524 +f 551/709/534 550/708/533 554/695/521 +f 551/712/534 555/697/523 556/696/522 +f 552/713/537 556/696/522 553/698/524 +f 545/703/528 557/650/485 558/716/539 +f 547/705/530 546/704/529 558/716/539 +f 548/706/531 547/1121/530 559/718/540 +f 548/706/531 560/719/541 557/650/485 +f 563/710/535 559/717/540 558/716/539 +f 563/720/535 564/711/536 560/719/541 +f 557/650/485 560/719/541 564/711/536 +f 505/662/494 506/658/492 26/30/27 +f 167/386/258 575/734/544 574/721/542 +f 167/388/258 168/390/261 576/722/543 +f 165/384/256 573/733/553 576/722/543 +f 566/724/545 90/128/115 89/127/114 +f 567/726/547 91/134/119 90/128/115 +f 567/727/547 568/728/548 92/130/117 +f 568/728/548 565/725/546 89/127/114 +f 566/724/545 565/725/546 569/729/549 +f 567/726/547 566/724/545 570/730/550 +f 567/727/547 571/735/551 572/732/552 +f 568/728/548 572/732/552 569/729/549 +f 570/730/550 569/729/549 573/733/553 +f 570/730/550 574/721/542 575/734/544 +f 571/735/551 575/723/544 576/722/543 +f 569/729/549 572/732/552 576/722/543 +f 542/700/526 62/90/81 61/89/80 +f 175/262/214 587/738/556 586/736/554 +f 176/404/273 588/759/558 587/738/556 +f 176/406/273 173/408/276 585/739/557 +f 577/741/559 578/751/564 46/71/64 +f 43/73/66 42/70/63 282/742/152 +f 44/75/68 43/77/66 283/744/212 +f 41/72/65 44/75/68 284/745/213 +f 689/747/560 685/877/662 686/748/561 +f 282/742/152 42/70/63 41/72/65 +f 173/408/276 369/407/275 370/263/215 +f 579/750/563 47/78/70 46/71/64 +f 580/752/565 48/76/69 47/78/70 +f 580/753/565 577/741/559 45/74/67 +f 577/741/559 581/758/569 582/755/566 +f 579/750/563 578/751/564 582/755/566 +f 580/752/565 579/750/563 583/756/567 +f 580/753/565 584/1122/568 581/758/569 +f 582/755/566 581/758/569 585/739/557 +f 582/755/566 586/736/554 587/738/556 +f 583/756/567 587/738/556 588/759/558 +f 581/758/569 584/1122/568 588/740/558 +f 251/563/416 599/781/572 598/760/570 +f 251/566/416 252/569/421 600/761/571 +f 252/569/421 249/571/423 597/570/422 +f 602/763/573 601/771/580 589/764/574 +f 603/766/576 602/763/573 590/765/575 +f 603/768/576 591/782/577 592/769/578 +f 604/770/579 592/769/578 589/764/574 +f 602/763/573 82/119/107 81/118/106 +f 605/772/581 593/780/588 594/773/582 +f 606/774/583 594/773/582 595/775/584 +f 608/777/586 607/1123/585 595/778/584 +f 605/772/581 608/777/586 596/779/587 +f 593/780/588 597/570/422 598/760/570 +f 594/773/582 598/760/570 599/781/572 +f 596/779/587 595/778/584 599/762/572 +f 593/780/588 596/779/587 600/761/571 +f 603/766/576 83/125/111 82/119/107 +f 603/768/576 604/770/579 84/121/109 +f 604/770/579 601/771/580 81/118/106 +f 590/765/575 589/764/574 605/772/581 +f 591/767/577 590/765/575 606/774/583 +f 591/782/577 607/1123/585 608/777/586 +f 592/769/578 608/777/586 605/772/581 +f 616/783/589 615/480/343 211/474/338 +f 613/784/590 616/783/589 212/476/340 +f 609/786/591 610/787/592 74/110/99 +f 610/787/592 611/789/594 75/115/103 +f 612/788/593 76/112/101 75/115/103 +f 609/790/591 73/113/98 76/112/101 +f 609/786/591 613/791/590 614/479/342 +f 610/787/592 614/479/342 615/480/343 +f 612/788/593 611/789/594 615/480/343 +f 609/790/591 612/788/593 616/783/589 +f 613/791/590 209/302/222 210/792/595 +f 226/511/370 227/510/369 619/793/596 +f 227/510/369 228/513/372 620/795/598 +f 225/106/95 617/516/374 620/796/598 +f 621/797/599 901/805/606 902/798/600 +f 622/799/601 902/798/600 903/800/602 +f 624/802/604 623/801/603 903/800/602 +f 621/797/599 624/1124/604 904/804/605 +f 617/516/374 618/794/597 902/798/600 +f 619/793/596 903/800/602 902/798/600 +f 620/795/598 904/803/605 903/800/602 +f 620/796/598 617/516/374 901/805/606 +f 625/806/607 621/797/599 622/799/601 +f 627/808/609 626/807/608 622/799/601 +f 628/809/610 627/808/609 623/801/603 +f 628/810/610 624/1124/604 621/797/599 +f 629/811/611 625/806/607 626/807/608 +f 630/812/612 626/807/608 627/808/609 +f 632/814/614 631/813/613 627/808/609 +f 629/811/611 632/816/614 628/810/610 +f 629/811/611 630/812/612 66/815/615 +f 631/813/613 67/104/93 66/815/615 +f 632/814/614 68/101/91 67/104/93 +f 632/816/614 629/811/611 65/98/88 +f 381/429/296 382/423/291 186/425/293 +f 223/504/364 635/822/618 634/818/616 +f 223/506/364 224/508/367 636/819/617 +f 224/508/367 221/333/229 633/509/368 +f 638/821/619 637/826/622 633/509/368 +f 638/821/619 634/818/616 635/822/618 +f 639/824/620 635/820/618 636/819/617 +f 637/826/622 640/825/621 636/819/617 +f 642/827/623 641/831/626 637/826/622 +f 643/828/624 642/827/623 638/821/619 +f 643/829/624 639/824/620 640/825/621 +f 644/830/625 640/825/621 637/826/622 +f 642/827/623 114/155/139 113/154/138 +f 643/828/624 115/161/143 114/155/139 +f 643/829/624 644/830/625 116/157/141 +f 644/830/625 641/831/626 113/154/138 +f 171/397/267 647/836/627 646/402/271 +f 172/401/270 648/833/628 647/832/627 +f 172/401/270 169/339/233 645/403/272 +f 649/834/629 645/403/272 646/402/271 +f 650/835/630 646/402/271 647/836/627 +f 652/838/632 651/1125/631 647/832/627 +f 649/834/629 652/838/632 648/833/628 +f 654/839/633 653/843/636 649/834/629 +f 655/840/634 654/839/633 650/835/630 +f 655/841/634 651/1125/631 652/838/632 +f 656/842/635 652/838/632 649/834/629 +f 658/167/150 657/162/145 653/843/636 +f 658/167/150 654/839/633 655/840/634 +f 659/165/148 655/841/634 656/842/635 +f 657/162/145 660/164/147 656/842/635 +f 906/845/160 121/180/159 122/173/155 +f 219/496/357 663/851/638 662/501/361 +f 220/500/360 664/848/639 663/847/638 +f 220/500/360 217/354/239 661/502/362 +f 665/849/640 661/502/362 662/501/361 +f 666/850/641 662/501/361 663/851/638 +f 668/853/643 667/1126/642 663/847/638 +f 665/849/640 668/853/643 664/848/639 +f 670/854/644 669/858/647 665/849/640 +f 670/854/644 666/850/641 667/852/642 +f 671/856/645 667/1126/642 668/853/643 +f 669/858/647 672/857/646 668/853/643 +f 674/859/648 673/863/651 669/858/647 +f 675/860/649 674/859/648 670/854/644 +f 675/861/649 671/856/645 672/857/646 +f 676/862/650 672/857/646 669/858/647 +f 130/347/234 673/863/651 674/859/648 +f 129/192/168 674/859/648 675/860/649 +f 131/349/236 132/348/235 675/861/649 +f 130/347/234 131/349/236 676/862/650 +f 677/864/652 349/367/241 350/366/240 +f 679/866/654 678/865/653 350/366/240 +f 680/867/655 679/866/654 351/369/243 +f 680/869/655 352/373/246 349/367/241 +f 682/870/656 681/874/659 677/864/652 +f 683/871/657 682/870/656 678/865/653 +f 683/871/657 679/866/654 680/867/655 +f 684/873/658 680/869/655 677/864/652 +f 686/748/561 685/877/662 681/874/659 +f 686/748/561 682/870/656 683/871/657 +f 687/875/660 683/871/657 684/872/658 +f 685/877/662 688/880/661 684/873/658 +f 690/749/562 686/748/561 687/875/660 +f 687/875/660 688/876/661 692/879/664 +f 688/880/661 685/877/662 689/747/560 +f 346/882/152 146/1090/187 145/213/184 +f 689/747/560 690/749/562 106/145/130 +f 690/749/562 691/878/663 107/152/136 +f 692/879/664 108/150/135 107/152/136 +f 689/747/560 105/148/133 108/883/135 +f 310/884/152 94/1089/124 93/135/121 +f 178/411/279 694/887/667 693/885/665 +f 179/410/278 695/889/669 694/887/667 +f 179/410/278 180/413/281 696/888/668 +f 180/413/281 177/1104/666 693/890/665 +f 698/891/670 697/1127/673 693/885/665 +f 699/892/671 698/891/670 694/887/667 +f 699/892/671 695/889/669 696/888/668 +f 700/893/672 696/888/668 693/890/665 +f 701/895/674 697/1127/673 698/891/670 +f 702/896/675 698/891/670 699/892/671 +f 704/898/677 703/897/676 699/892/671 +f 701/899/674 704/898/677 700/893/672 +f 705/900/678 701/895/674 702/896/675 +f 706/901/679 702/896/675 703/897/676 +f 708/903/681 704/898/677 701/899/674 +f 708/903/681 707/902/680 703/897/676 +f 98/137/123 97/136/122 705/900/678 +f 98/137/123 706/901/679 707/902/680 +f 99/142/127 707/902/680 708/903/681 +f 97/140/122 100/139/125 708/903/681 +f 374/409/277 178/411/279 177/886/666 +f 230/518/376 231/521/379 711/906/682 +f 231/521/379 232/523/381 712/908/684 +f 229/522/380 709/525/382 712/908/684 +f 714/909/685 713/913/688 709/525/382 +f 715/911/686 714/1128/685 710/907/683 +f 715/911/686 711/906/682 712/908/684 +f 716/912/687 712/908/684 709/525/382 +f 718/914/689 717/918/692 713/913/688 +f 718/915/689 714/1128/685 715/911/686 +f 719/916/690 715/911/686 716/912/687 +f 717/918/692 720/917/691 716/912/687 +f 302/305/152 78/120/108 77/117/105 +f 721/919/693 717/918/692 718/914/689 +f 723/921/695 722/1129/694 718/915/689 +f 724/922/696 723/921/695 719/916/690 +f 724/922/696 720/917/691 717/918/692 +f 726/923/697 725/927/700 721/919/693 +f 726/924/697 722/1129/694 723/921/695 +f 727/925/698 723/921/695 724/922/696 +f 725/927/700 728/926/699 724/922/696 +f 730/928/701 729/932/704 725/927/700 +f 730/929/701 726/924/697 727/925/698 +f 731/930/702 727/925/698 728/926/699 +f 729/932/704 732/931/703 728/926/699 +f 730/928/701 138/195/170 137/198/173 +f 730/929/701 731/930/702 139/202/176 +f 731/930/702 732/931/703 140/200/175 +f 729/932/704 137/198/173 140/200/175 +f 425/934/705 426/1130/377 230/524/376 +f 198/457/321 199/456/320 735/935/706 +f 200/461/325 736/937/707 735/935/706 +f 197/462/326 733/464/328 736/937/707 +f 737/938/708 733/464/328 734/463/327 +f 738/940/709 734/936/327 735/935/706 +f 740/942/711 739/941/710 735/935/706 +f 737/938/708 740/942/711 736/937/707 +f 741/943/712 737/938/708 738/939/709 +f 743/945/714 742/1131/713 738/940/709 +f 744/946/715 743/945/714 739/941/710 +f 744/946/715 740/942/711 737/938/708 +f 746/947/716 745/951/719 741/943/712 +f 746/948/716 742/1131/713 743/945/714 +f 747/949/717 743/945/714 744/946/715 +f 745/951/719 748/950/718 744/946/715 +f 749/952/720 745/951/719 746/947/716 +f 750/954/721 746/948/716 747/949/717 +f 752/956/723 751/955/722 747/949/717 +f 749/952/720 752/956/723 748/950/718 +f 393/460/324 394/1132/319 198/957/321 +f 750/953/721 906/845/160 905/846/637 +f 750/954/721 751/955/722 907/176/158 +f 751/955/722 752/956/723 908/172/154 +f 749/952/720 905/846/637 908/172/154 +f 754/222/192 753/224/194 765/958/724 +f 754/222/192 766/959/725 767/960/726 +f 755/225/195 767/960/726 768/961/727 +f 753/229/194 756/227/197 768/961/727 +f 241/963/728 242/549/404 818/964/729 +f 763/966/731 769/1133/738 770/967/732 +f 761/969/734 762/968/733 770/967/732 +f 764/971/736 761/969/734 771/970/735 +f 763/973/731 764/971/736 772/972/737 +f 790/975/739 762/968/733 761/969/734 +f 187/424/292 775/982/743 774/977/741 +f 187/427/292 188/430/297 776/978/742 +f 188/430/297 185/432/299 773/431/298 +f 778/980/744 777/985/747 773/431/298 +f 779/981/745 778/980/744 774/977/741 +f 779/983/745 775/979/743 776/978/742 +f 780/984/746 776/978/742 773/431/298 +f 781/986/748 777/985/747 778/980/744 +f 782/987/749 778/980/744 779/981/745 +f 784/989/751 783/1134/750 779/983/745 +f 781/986/748 784/989/751 780/984/746 +f 786/990/752 785/994/755 781/986/748 +f 786/990/752 782/987/749 783/988/750 +f 787/992/753 783/1134/750 784/989/751 +f 785/994/755 788/993/754 784/989/751 +f 786/990/752 787/991/753 791/995/756 +f 791/996/756 787/992/753 788/993/754 +f 792/997/757 788/993/754 785/994/755 +f 785/994/755 786/990/752 790/975/739 +f 791/995/756 763/966/731 762/968/733 +f 791/996/756 792/997/757 764/971/736 +f 792/997/757 789/976/740 761/969/734 +f 429/998/758 430/1135/385 234/999/384 +f 234/999/384 794/1005/761 793/1000/759 +f 234/527/384 235/530/387 795/1001/760 +f 236/532/389 796/1003/762 795/1001/760 +f 233/531/388 793/1000/759 796/1003/762 +f 797/1004/763 793/1000/759 794/1005/761 +f 798/1007/764 794/1002/761 795/1001/760 +f 800/1009/766 799/1008/765 795/1001/760 +f 797/1004/763 800/1009/766 796/1003/762 +f 801/1010/767 797/1004/763 798/1006/764 +f 802/1012/768 798/1007/764 799/1008/765 +f 804/1014/770 803/1013/769 799/1008/765 +f 801/1010/767 804/1014/770 800/1009/766 +f 805/1015/771 801/1010/767 802/1011/768 +f 807/1017/773 806/1136/772 802/1012/768 +f 808/1018/774 807/1017/773 803/1013/769 +f 808/1018/774 804/1014/770 801/1010/767 +f 810/1019/775 806/1136/772 807/1017/773 +f 811/1020/776 807/1017/773 808/1018/774 +f 808/1018/774 805/1015/771 809/1022/778 +f 814/1023/779 813/1028/782 809/1022/778 +f 814/1025/779 810/1019/775 811/1020/776 +f 815/1026/780 811/1020/776 812/1021/777 +f 813/1028/782 816/1027/781 812/1021/777 +f 814/1023/779 910/1137/183 909/1029/783 +f 814/1025/779 815/1026/780 911/207/181 +f 815/1026/780 816/1027/781 912/203/177 +f 813/1028/782 909/1029/783 912/203/177 +f 243/548/403 819/1034/784 818/964/729 +f 244/551/406 820/1031/785 819/1030/784 +f 244/551/406 241/963/728 817/965/730 +f 822/1032/786 821/1037/789 817/965/730 +f 823/1033/787 822/1032/786 818/964/729 +f 823/1035/787 819/1030/784 820/1031/785 +f 824/1036/788 820/1031/785 817/965/730 +f 825/1038/790 821/1037/789 822/1032/786 +f 826/1039/791 822/1032/786 823/1033/787 +f 828/1041/793 827/1138/792 823/1035/787 +f 825/1038/790 828/1041/793 824/1036/788 +f 830/1042/794 829/1046/797 825/1038/790 +f 831/1043/795 830/1042/794 826/1039/791 +f 831/1044/795 827/1138/792 828/1041/793 +f 832/1045/796 828/1041/793 825/1038/790 +f 830/1042/794 758/226/196 757/228/198 +f 831/1043/795 759/223/193 758/226/196 +f 831/1044/795 832/1045/796 760/230/199 +f 832/1045/796 829/1046/797 757/228/198 +f 834/1048/798 833/1139/801 205/1049/799 +f 207/468/332 835/1050/800 834/1048/798 +f 208/471/335 836/1057/806 835/1050/800 +f 833/1051/801 836/1057/806 208/471/335 +f 837/1053/802 833/1139/801 834/1048/798 +f 838/1054/803 834/1048/798 835/1050/800 +f 840/1056/805 839/1055/804 835/1050/800 +f 837/1058/802 840/1056/805 836/1057/806 +f 841/1059/807 837/1053/802 838/1054/803 +f 842/188/167 838/1054/803 839/1055/804 +f 844/182/161 843/186/165 839/1055/804 +f 841/1060/807 844/182/161 840/1056/805 +f 402/467/331 206/469/333 205/1049/799 +f 182/418/286 846/1064/810 845/1062/808 +f 183/417/285 847/1065/811 846/1064/810 +f 184/420/288 848/1067/812 847/1065/811 +f 184/420/288 181/1105/809 845/1066/808 +f 850/1068/813 849/1073/816 845/1062/808 +f 851/1069/814 850/1068/813 846/1064/810 +f 851/1069/814 847/1065/811 848/1067/812 +f 852/1070/815 848/1067/812 845/1066/808 +f 854/1072/817 853/1140/820 849/1073/816 +f 854/1072/817 850/1068/813 851/1069/814 +f 855/1074/818 851/1069/814 852/1070/815 +f 853/1076/820 856/1075/819 852/1070/815 +f 857/1077/821 853/1140/820 854/1072/817 +f 858/1078/822 854/1072/817 855/1074/818 +f 860/1080/824 859/1079/823 855/1074/818 +f 857/1081/821 860/1080/824 856/1075/819 +f 857/1077/821 858/1078/822 150/215/186 +f 859/1079/823 151/220/190 150/215/186 +f 860/1080/824 152/217/188 151/220/190 +f 860/1080/824 857/1081/821 149/218/185 +f 194/442/308 554/695/521 553/698/524 +f 454/580/431 514/652/487 513/655/490 +f 173/408/276 174/737/555 586/736/554 +f 166/383/255 574/721/542 573/733/553 +f 897/638/476 898/6/6 1/8/7 +f 870/61/55 37/60/54 38/607/454 +f 865/272/218 866/48/43 33/50/45 +f 861/266/217 862/38/34 29/40/36 +f 874/99/89 65/98/88 66/815/615 +f 805/1015/771 806/1016/772 810/1024/775 +f 909/1029/783 910/1137/183 141/211/182 +f 298/1082/152 70/1088/100 69/108/97 +f 314/319/152 102/144/129 101/146/131 +f 438/547/402 242/549/404 241/963/728 +f 841/1059/807 842/188/167 125/187/166 +f 318/327/152 110/156/140 109/153/137 +f 658/167/150 117/169/151 118/335/230 +f 378/416/284 182/418/286 181/1063/809 +f 338/356/152 134/194/169 133/196/171 +f 445/568/420 446/562/415 250/564/417 +f 153/237/205 154/231/200 158/233/202 +f 306/310/152 86/129/116 85/126/113 +o Body +v -1.000000 0.062500 -0.500000 +v -1.000000 0.000000 -0.562500 +v -1.000000 0.000000 -0.500000 +v -1.000000 0.062500 -0.562500 +v 1.000000 0.000000 -0.562500 +v 1.000000 0.062500 -0.562500 +v 1.000000 0.000000 -0.500000 +v -1.000000 0.062500 -0.437500 +v -1.000000 0.125000 -0.500000 +v 1.000000 0.062500 -0.500000 +v 1.000000 0.062500 -0.437500 +v -1.000000 0.000000 -0.437500 +v 1.000000 0.000000 -0.437500 +v 1.000000 0.125000 -0.437500 +v -0.937500 0.187500 -0.500000 +v 0.937500 0.187500 -0.437500 +v 0.937500 0.187500 -0.500000 +v -0.937500 0.187500 -0.437500 +v -1.000000 0.125000 -0.437500 +v 1.000000 0.125000 -0.500000 +v -1.000000 -0.000000 0.562500 +v -1.000000 0.062500 0.500000 +v -1.000000 -0.000000 0.500000 +v 1.000000 -0.000000 0.562500 +v -1.000000 0.062500 0.562500 +v 1.000000 -0.000000 0.500000 +v 1.000000 0.062500 0.562500 +v -1.000000 0.125000 0.500000 +v -1.000000 0.062500 0.437500 +v 1.000000 0.062500 0.500000 +v -1.000000 -0.000000 0.437500 +v 1.000000 0.062500 0.437500 +v 1.000000 -0.000000 0.437500 +v 1.000000 0.125000 0.437500 +v 0.937500 0.187500 0.437500 +v -0.937500 0.187500 0.500000 +v 0.937500 0.187500 0.500000 +v -1.000000 0.125000 0.437500 +v 1.000000 0.125000 0.500000 +v -0.531250 0.187500 0.437500 +v -0.531250 0.000000 -0.437500 +v -0.531250 -0.000000 0.437500 +v -0.468750 0.187500 -0.437500 +v -0.468750 -0.000000 0.437500 +v -0.468750 0.000000 -0.437500 +v -0.531250 0.187500 -0.437500 +v -0.468750 0.187500 0.437500 +v 0.531250 0.000000 -0.437500 +v 0.531250 0.187500 0.437500 +v 0.531250 -0.000000 0.437500 +v 0.468750 -0.000000 0.437500 +v 0.468750 0.187500 -0.437500 +v 0.468750 0.000000 -0.437500 +v 0.468750 0.187500 0.437500 +v 0.531250 0.187500 -0.437500 +v -0.619649 0.820234 -0.375000 +v -0.749885 0.081628 -0.437500 +v -0.749885 0.081628 -0.375000 +v -0.619649 0.820234 -0.437500 +v -0.565233 0.049069 -0.437500 +v -0.434997 0.787675 -0.437500 +v -0.565233 0.049069 -0.375000 +v -0.434997 0.787675 -0.375000 +v -0.600024 0.335540 -0.421875 +v -0.379053 0.114569 -0.453125 +v -0.379053 0.114569 -0.421875 +v -0.600024 0.335540 -0.453125 +v -0.334858 0.158763 -0.453125 +v -0.555829 0.379734 -0.453125 +v -0.334858 0.158763 -0.421875 +v -0.555829 0.379734 -0.421875 +v 0.749885 0.081628 -0.437500 +v 0.619649 0.820234 -0.375000 +v 0.749885 0.081628 -0.375000 +v 0.565233 0.049069 -0.437500 +v 0.619649 0.820234 -0.437500 +v 0.565233 0.049069 -0.375000 +v 0.434997 0.787675 -0.437500 +v 0.434997 0.787675 -0.375000 +v 0.379053 0.114569 -0.453125 +v 0.600024 0.335540 -0.421875 +v 0.379053 0.114569 -0.421875 +v 0.334858 0.158763 -0.453125 +v 0.600024 0.335540 -0.453125 +v 0.334858 0.158763 -0.421875 +v 0.555829 0.379734 -0.453125 +v 0.555829 0.379734 -0.421875 +v -0.749885 0.081628 0.437500 +v -0.619649 0.820234 0.375000 +v -0.749885 0.081628 0.375000 +v -0.565233 0.049069 0.437500 +v -0.619649 0.820234 0.437500 +v -0.565233 0.049069 0.375000 +v -0.434997 0.787675 0.437500 +v -0.434997 0.787675 0.375000 +v -0.379053 0.114569 0.453125 +v -0.600024 0.335540 0.421875 +v -0.379053 0.114569 0.421875 +v -0.334858 0.158763 0.453125 +v -0.600024 0.335540 0.453125 +v -0.334858 0.158763 0.421875 +v -0.555829 0.379734 0.453125 +v -0.555829 0.379734 0.421875 +v 0.619649 0.820234 0.375000 +v 0.749885 0.081628 0.437500 +v 0.749885 0.081628 0.375000 +v 0.619649 0.820234 0.437500 +v 0.565233 0.049069 0.437500 +v 0.434997 0.787675 0.437500 +v 0.565233 0.049069 0.375000 +v 0.434997 0.787675 0.375000 +v 0.600024 0.335540 0.421875 +v 0.379053 0.114569 0.453125 +v 0.379053 0.114569 0.421875 +v 0.600024 0.335540 0.453125 +v 0.334858 0.158763 0.453125 +v 0.555829 0.379734 0.453125 +v 0.334858 0.158763 0.421875 +v 0.555829 0.379734 0.421875 +v 0.000000 1.980546 1.233917 +v 0.183897 1.943967 0.733917 +v 0.000000 1.980546 0.733917 +v 0.183897 1.943967 1.233917 +v 0.339797 1.839797 0.733917 +v 0.339797 1.839797 1.233917 +v 0.443967 1.683897 0.733917 +v 0.443967 1.683897 1.233917 +v 0.480546 1.500000 0.733917 +v 0.480546 1.500000 1.233917 +v 0.443967 1.316103 0.733917 +v 0.443967 1.316103 1.233917 +v 0.339797 1.160202 0.733917 +v 0.183897 1.056033 1.233917 +v 0.183897 1.056033 0.733917 +v 0.000000 1.019453 0.733917 +v 0.000000 1.019453 1.233917 +v -0.183897 1.056033 0.733917 +v -0.183897 1.056033 1.233917 +v -0.339798 1.160202 0.733917 +v -0.339798 1.160202 1.233917 +v -0.443967 1.316103 0.733917 +v -0.443967 1.316103 1.233917 +v -0.480547 1.500000 0.733917 +v -0.480547 1.500000 1.233917 +v -0.443967 1.683897 0.733917 +v -0.443967 1.683897 1.233917 +v -0.339798 1.839797 0.733917 +v 0.339797 1.160202 1.233917 +v -0.339798 1.839797 1.233917 +v -0.183897 1.943967 0.733917 +v -0.183897 1.943967 1.233917 +v 0.490881 1.143354 -0.961093 +v -0.187500 0.922934 -0.961093 +v -0.606763 1.500000 -0.961093 +v 0.187500 2.077066 -0.961093 +v 0.361622 2.222140 -0.627943 +v 0.312593 2.071245 -0.856743 +v 0.736322 2.034969 -0.523593 +v 0.281250 2.365599 -0.523593 +v 0.490881 1.856646 -0.961093 +v 0.575049 2.067076 -0.627943 +v 0.446690 1.973818 -0.856743 +v 0.717021 1.871668 -0.627943 +v 0.588663 1.778410 -0.856743 +v 0.910144 1.500000 -0.523593 +v 0.606763 1.500000 -0.961093 +v 0.798543 1.620769 -0.627943 +v 0.639883 1.620769 -0.856743 +v 0.798543 1.379231 -0.627943 +v 0.639883 1.379231 -0.856743 +v 0.736322 0.965031 -0.523593 +v 0.717021 1.128333 -0.627943 +v 0.588663 1.221590 -0.856743 +v 0.575048 0.932924 -0.627943 +v 0.446690 1.026182 -0.856743 +v 0.361622 0.777860 -0.627943 +v 0.187500 0.922934 -0.961093 +v 0.281250 0.634401 -0.523593 +v 0.312593 0.928755 -0.856743 +v 0.131905 0.703221 -0.627943 +v 0.082876 0.854115 -0.856743 +v -0.131905 0.703221 -0.627943 +v -0.281250 0.634401 -0.523593 +v -0.082877 0.854115 -0.856743 +v -0.361622 0.777860 -0.627943 +v -0.312593 0.928755 -0.856743 +v -0.736322 0.965031 -0.523593 +v -0.490881 1.143354 -0.961093 +v -0.575049 0.932924 -0.627943 +v -0.446690 1.026182 -0.856743 +v -0.717021 1.128332 -0.627943 +v -0.588663 1.221591 -0.856743 +v -0.910144 1.500000 -0.523593 +v -0.798543 1.379231 -0.627943 +v -0.639883 1.379231 -0.856743 +v -0.798543 1.620769 -0.627943 +v -0.639883 1.620769 -0.856743 +v -0.736322 2.034969 -0.523593 +v -0.490881 1.856646 -0.961093 +v -0.717021 1.871668 -0.627943 +v -0.588663 1.778410 -0.856743 +v -0.575048 2.067076 -0.627943 +v -0.446690 1.973818 -0.856743 +v -0.281250 2.365598 -0.523593 +v -0.187500 2.077066 -0.961093 +v -0.361621 2.222140 -0.627943 +v -0.312593 2.071246 -0.856743 +v -0.131905 2.296779 -0.627943 +v -0.082876 2.145885 -0.856743 +v 0.131905 2.296779 -0.627943 +v 0.082876 2.145885 -0.856743 +v -0.606763 1.500000 0.961093 +v 0.490881 1.143354 0.961093 +v 0.490881 1.856646 0.961093 +v 0.187500 2.077066 0.961093 +v 0.361622 2.222140 0.627943 +v 0.281250 2.365599 0.523593 +v 0.736322 2.034969 0.523593 +v 0.575049 2.067076 0.627943 +v 0.446690 1.973818 0.856743 +v 0.717021 1.871668 0.627943 +v 0.910144 1.500000 0.523593 +v 0.798543 1.620769 0.627943 +v 0.606763 1.500000 0.961093 +v 0.588663 1.778410 0.856743 +v 0.798543 1.379231 0.627943 +v 0.736322 0.965031 0.523593 +v 0.717021 1.128333 0.627943 +v 0.588663 1.221590 0.856743 +v 0.575048 0.932924 0.627943 +v 0.361622 0.777860 0.627943 +v 0.281250 0.634401 0.523593 +v 0.187500 0.922934 0.961093 +v 0.312593 0.928755 0.856743 +v 0.131905 0.703221 0.627943 +v -0.131905 0.703221 0.627943 +v -0.281250 0.634401 0.523593 +v -0.187500 0.922934 0.961093 +v -0.082877 0.854115 0.856743 +v -0.361622 0.777860 0.627943 +v -0.736322 0.965031 0.523593 +v -0.575049 0.932924 0.627943 +v -0.490881 1.143354 0.961093 +v -0.312593 0.928755 0.856743 +v -0.717021 1.128332 0.627943 +v -0.798543 1.379231 0.627943 +v -0.910144 1.500000 0.523593 +v -0.639883 1.379231 0.856743 +v -0.798543 1.620769 0.627943 +v -0.736322 2.034969 0.523593 +v -0.717021 1.871668 0.627943 +v -0.490881 1.856646 0.961093 +v -0.588663 1.778410 0.856743 +v -0.575048 2.067076 0.627943 +v -0.361621 2.222140 0.627943 +v -0.281250 2.365598 0.523593 +v -0.187500 2.077066 0.961093 +v -0.312593 2.071246 0.856743 +v -0.131905 2.296779 0.627943 +v 0.131905 2.296779 0.627943 +v 0.082876 2.145885 0.856743 +v 0.000000 2.461093 -0.437500 +v 0.367794 2.387934 -0.562500 +v 0.000000 2.461093 -0.562500 +v 0.367794 2.387934 -0.437500 +v 0.679595 2.179595 -0.562500 +v 0.679595 2.179595 -0.437500 +v 0.887934 1.867794 -0.562500 +v 0.887934 1.867794 -0.437500 +v 0.961093 1.500000 -0.562500 +v 0.961093 1.500000 -0.437500 +v 0.887934 1.132205 -0.562500 +v 0.887934 1.132205 -0.437500 +v 0.679595 0.820405 -0.562500 +v 0.367794 0.612066 -0.437500 +v 0.367794 0.612066 -0.562500 +v 0.000000 0.538907 -0.562500 +v 0.000000 0.538907 -0.437500 +v -0.367794 0.612066 -0.562500 +v -0.367794 0.612066 -0.437500 +v -0.679595 0.820404 -0.562500 +v -0.679595 0.820404 -0.437500 +v -0.887934 1.132205 -0.562500 +v -0.887934 1.132205 -0.437500 +v -0.961093 1.500000 -0.562500 +v -0.961093 1.500000 -0.437500 +v -0.887934 1.867795 -0.562500 +v -0.887934 1.867795 -0.437500 +v -0.679595 2.179596 -0.562500 +v -0.679595 2.179596 -0.437500 +v -0.367794 2.387935 -0.562500 +v -0.367794 2.387935 -0.437500 +v 0.294635 2.211313 -0.562500 +v 0.294635 2.211313 -0.437500 +v 0.000000 2.269920 -0.437500 +v 0.544415 2.044415 -0.562500 +v 0.711313 1.794636 -0.562500 +v 0.711313 1.794636 -0.437500 +v 0.544415 2.044415 -0.437500 +v 0.769920 1.500000 -0.562500 +v 0.711313 1.205364 -0.562500 +v 0.711313 1.205364 -0.437500 +v 0.769920 1.500000 -0.437500 +v 0.544415 0.955585 -0.562500 +v 0.679595 0.820405 -0.437500 +v 0.294635 0.788687 -0.562500 +v 0.294635 0.788687 -0.437500 +v 0.544415 0.955585 -0.437500 +v 0.000000 0.730080 -0.562500 +v -0.294635 0.788687 -0.562500 +v 0.000000 0.730080 -0.437500 +v -0.544415 0.955584 -0.562500 +v -0.544415 0.955584 -0.437500 +v -0.294635 0.788687 -0.437500 +v -0.711313 1.205364 -0.562500 +v -0.769920 1.500000 -0.562500 +v -0.769920 1.500000 -0.437500 +v -0.711313 1.205364 -0.437500 +v -0.711313 1.794636 -0.562500 +v -0.544415 2.044416 -0.562500 +v -0.711313 1.794636 -0.437500 +v -0.294635 2.211313 -0.562500 +v -0.294635 2.211313 -0.437500 +v -0.544415 2.044416 -0.437500 +v 0.000000 2.269920 -0.562500 +v 0.367794 2.387934 0.562500 +v 0.000000 2.461093 0.437500 +v 0.000000 2.461093 0.562500 +v 0.679595 2.179595 0.437500 +v 0.367794 2.387934 0.437500 +v 0.887934 1.867794 0.562500 +v 0.679595 2.179595 0.562500 +v 0.961093 1.500000 0.562500 +v 0.887934 1.867794 0.437500 +v 0.887934 1.132205 0.562500 +v 0.961093 1.500000 0.437500 +v 0.679595 0.820405 0.562500 +v 0.887934 1.132205 0.437500 +v 0.367794 0.612066 0.437500 +v 0.679595 0.820405 0.437500 +v 0.000000 0.538907 0.562500 +v 0.367794 0.612066 0.562500 +v -0.367794 0.612066 0.562500 +v 0.000000 0.538907 0.437500 +v -0.679595 0.820404 0.562500 +v -0.367794 0.612066 0.437500 +v -0.887934 1.132205 0.562500 +v -0.679595 0.820404 0.437500 +v -0.961093 1.500000 0.562500 +v -0.887934 1.132205 0.437500 +v -0.887934 1.867795 0.562500 +v -0.961093 1.500000 0.437500 +v -0.679595 2.179596 0.562500 +v -0.887934 1.867795 0.437500 +v -0.367794 2.387935 0.562500 +v -0.679595 2.179596 0.437500 +v -0.367794 2.387935 0.437500 +v 0.000000 2.269920 0.562500 +v 0.294635 2.211313 0.562500 +v 0.294635 2.211313 0.437500 +v 0.000000 2.269920 0.437500 +v 0.544415 2.044415 0.562500 +v 0.544415 2.044415 0.437500 +v 0.711313 1.794636 0.562500 +v 0.711313 1.794636 0.437500 +v 0.769920 1.500000 0.562500 +v 0.769920 1.500000 0.437500 +v 0.711313 1.205364 0.562500 +v 0.711313 1.205364 0.437500 +v 0.544415 0.955585 0.562500 +v 0.544415 0.955585 0.437500 +v 0.294635 0.788687 0.562500 +v 0.294635 0.788687 0.437500 +v 0.000000 0.730080 0.562500 +v 0.000000 0.730080 0.437500 +v -0.294635 0.788687 0.562500 +v -0.294635 0.788687 0.437500 +v -0.544415 0.955584 0.562500 +v -0.544415 0.955584 0.437500 +v -0.711313 1.205364 0.562500 +v -0.711313 1.205364 0.437500 +v -0.769920 1.500000 0.562500 +v -0.769920 1.500000 0.437500 +v -0.711313 1.794636 0.562500 +v -0.711313 1.794636 0.437500 +v -0.544415 2.044416 0.562500 +v -0.544415 2.044416 0.437500 +v -0.294635 2.211313 0.562500 +v -0.294635 2.211313 0.437500 +v 0.613304 2.201693 0.000000 +v 0.657498 2.245887 -0.312500 +v 0.569110 2.157499 -0.312500 +v 0.701693 2.113304 -0.437500 +v 0.613304 2.201693 -0.437500 +v 0.701693 2.113304 0.000000 +v 0.745887 2.157498 0.312500 +v 0.657498 2.069110 0.312500 +v 0.657498 2.245887 0.312500 +v 0.701693 2.113304 0.437500 +v 0.701693 2.290081 0.000000 +v 0.790081 2.201693 0.000000 +v 0.613304 2.024916 0.437500 +v 0.569110 2.157499 0.312500 +v 0.613304 2.201693 0.437500 +v 0.745887 2.157498 -0.312500 +v 0.657498 2.069110 -0.312500 +v 0.524916 2.113304 -0.437500 +v -0.613304 2.201693 0.000000 +v -0.657498 2.245887 -0.312500 +v -0.701693 2.290081 0.000000 +v -0.701693 2.113304 -0.437500 +v -0.745887 2.157498 -0.312500 +v -0.701693 2.113304 0.000000 +v -0.745887 2.157498 0.312500 +v -0.790081 2.201693 0.000000 +v -0.701693 2.113304 0.437500 +v -0.657498 2.245887 0.312500 +v -0.657498 2.069110 0.312500 +v -0.613304 2.201693 0.437500 +v -0.569110 2.157499 0.312500 +v -0.657498 2.069110 -0.312500 +v -0.569110 2.157499 -0.312500 +v -0.613304 2.201693 -0.437500 +v 0.613304 0.798307 0.000000 +v 0.657498 0.754113 -0.312500 +v 0.701693 0.709919 0.000000 +v 0.613304 0.798307 -0.437500 +v 0.745887 0.842502 -0.312500 +v 0.701693 0.886696 0.000000 +v 0.745887 0.842502 0.312500 +v 0.790081 0.798307 0.000000 +v 0.613304 0.798307 0.437500 +v 0.657498 0.754113 0.312500 +v 0.657498 0.930890 0.312500 +v 0.701693 0.886696 0.437500 +v 0.569110 0.842502 0.312500 +v 0.657498 0.930890 -0.312500 +v 0.569110 0.842502 -0.312500 +v 0.701693 0.886696 -0.437500 +v -0.613304 0.798307 0.000000 +v -0.657498 0.754113 -0.312500 +v -0.569110 0.842502 -0.312500 +v -0.745887 0.842502 -0.312500 +v -0.613304 0.798307 -0.437500 +v -0.701693 0.886696 0.000000 +v -0.745887 0.842502 0.312500 +v -0.657498 0.930890 0.312500 +v -0.613304 0.798307 0.437500 +v -0.701693 0.886696 0.437500 +v -0.701693 0.709919 0.000000 +v -0.790081 0.798307 0.000000 +v -0.613304 0.975084 0.437500 +v -0.569110 0.842502 0.312500 +v -0.657498 0.754113 0.312500 +v -0.657498 0.930890 -0.312500 +v -0.524916 0.886696 -0.437500 +v -0.701693 0.886696 -0.437500 +v 0.000000 2.064916 0.777541 +v 0.113655 1.774387 0.914054 +v 0.216184 2.021915 0.777541 +v 0.000000 1.796994 -0.914054 +v 0.216184 2.021915 -0.777540 +v 0.113655 1.774387 -0.914054 +v 0.000000 2.414054 -0.296994 +v 0.367794 2.387934 0.000000 +v 0.349793 2.344476 -0.296994 +v 0.297552 2.218354 0.564917 +v 0.000000 2.277541 0.564917 +v 0.000000 1.500000 -0.961093 +v 0.000000 2.277541 -0.564916 +v 0.297552 2.218354 -0.564916 +v 0.349793 2.344476 0.296994 +v 0.000000 2.414054 0.296994 +v 0.000000 1.796994 0.914054 +v 0.000000 1.500000 0.961093 +v 0.000000 2.064916 -0.777540 +v 0.000000 2.461093 0.000000 +v 0.210007 1.710007 0.914054 +v 0.399456 1.899456 0.777541 +v 0.210007 1.710006 -0.914054 +v 0.679596 2.179595 0.000000 +v 0.646334 2.146334 -0.296994 +v 0.549804 2.049804 0.564917 +v 0.549804 2.049804 -0.564916 +v 0.646334 2.146334 0.296994 +v 0.399456 1.899456 -0.777540 +v 0.844476 1.849793 0.296994 +v 0.887934 1.867794 0.000000 +v 0.521915 1.716184 0.777541 +v 0.274387 1.613655 -0.914054 +v 0.844476 1.849793 -0.296994 +v 0.718354 1.797552 0.564917 +v 0.718354 1.797552 -0.564916 +v 0.274387 1.613655 0.914054 +v 0.521915 1.716184 -0.777540 +v 0.296994 1.500000 0.914054 +v 0.564916 1.500000 -0.777540 +v 0.914054 1.500000 0.296994 +v 0.961093 1.500000 0.000000 +v 0.564916 1.500000 0.777541 +v 0.296994 1.500000 -0.914054 +v 0.914054 1.500000 -0.296994 +v 0.777541 1.500000 0.564917 +v 0.777541 1.500000 -0.564916 +v 0.718354 1.202448 -0.564916 +v 0.844476 1.150206 0.296994 +v 0.274387 1.386345 0.914054 +v 0.521915 1.283816 -0.777540 +v 0.887934 1.132205 0.000000 +v 0.521915 1.283816 0.777541 +v 0.274387 1.386345 -0.914054 +v 0.844476 1.150206 -0.296994 +v 0.718354 1.202448 0.564917 +v 0.549804 0.950195 0.564917 +v 0.210007 1.289993 -0.914054 +v 0.549804 0.950195 -0.564916 +v 0.646334 0.853666 0.296994 +v 0.210007 1.289993 0.914054 +v 0.399456 1.100543 -0.777540 +v 0.679595 0.820404 0.000000 +v 0.399456 1.100543 0.777541 +v 0.646334 0.853666 -0.296994 +v 0.349793 0.655524 -0.296994 +v 0.297552 0.781646 0.564916 +v 0.113655 1.225613 -0.914054 +v 0.297552 0.781646 -0.564916 +v 0.349793 0.655524 0.296994 +v 0.113655 1.225613 0.914054 +v 0.216184 0.978085 -0.777540 +v 0.367794 0.612066 0.000000 +v 0.216184 0.978085 0.777541 +v 0.000000 0.935084 0.777541 +v 0.000000 1.203006 -0.914054 +v 0.000000 0.585946 -0.296994 +v 0.000000 0.722459 0.564916 +v 0.000000 0.722459 -0.564916 +v 0.000000 0.585946 0.296994 +v 0.000000 1.203006 0.914054 +v 0.000000 0.935084 -0.777540 +v 0.000000 0.538907 0.000000 +v -0.297552 0.781646 -0.564916 +v -0.216184 0.978085 -0.777540 +v -0.367795 0.612066 0.000000 +v -0.113655 1.225613 0.914054 +v -0.216184 0.978085 0.777541 +v -0.113655 1.225613 -0.914054 +v -0.349794 0.655524 -0.296994 +v -0.297552 0.781646 0.564916 +v -0.349793 0.655524 0.296994 +v -0.646334 0.853666 0.296994 +v -0.210007 1.289993 0.914054 +v -0.549804 0.950196 -0.564916 +v -0.399456 1.100544 -0.777540 +v -0.679596 0.820405 0.000000 +v -0.399456 1.100544 0.777541 +v -0.210007 1.289994 -0.914054 +v -0.646334 0.853666 -0.296994 +v -0.549804 0.950196 0.564917 +v -0.718354 1.202448 -0.564916 +v -0.844476 1.150207 0.296994 +v -0.274387 1.386345 0.914054 +v -0.521915 1.283816 -0.777540 +v -0.887934 1.132206 0.000000 +v -0.521915 1.283816 0.777541 +v -0.274387 1.386345 -0.914054 +v -0.844476 1.150207 -0.296994 +v -0.718354 1.202448 0.564917 +v -0.777541 1.500000 0.564917 +v -0.296994 1.500000 -0.914054 +v -0.777541 1.500000 -0.564916 +v -0.914054 1.500000 0.296994 +v -0.296994 1.500000 0.914054 +v -0.564916 1.500000 -0.777540 +v -0.961093 1.500000 0.000000 +v -0.564916 1.500000 0.777541 +v -0.914054 1.500000 -0.296994 +v -0.521914 1.716184 -0.777540 +v -0.274387 1.613655 -0.914054 +v -0.844476 1.849794 -0.296994 +v -0.718354 1.797552 0.564917 +v -0.718354 1.797552 -0.564916 +v -0.844476 1.849793 0.296994 +v -0.274387 1.613655 0.914054 +v -0.887934 1.867795 0.000000 +v -0.521914 1.716184 0.777541 +v -0.679595 2.179596 0.000000 +v -0.210007 1.710007 0.914054 +v -0.399456 1.899456 0.777541 +v -0.210006 1.710007 -0.914054 +v -0.646333 2.146334 -0.296994 +v -0.549804 2.049804 0.564917 +v -0.549804 2.049804 -0.564916 +v -0.646333 2.146334 0.296994 +v -0.399456 1.899456 -0.777540 +v -0.113655 1.774387 0.914054 +v -0.297551 2.218354 -0.564916 +v -0.216184 2.021915 -0.777540 +v -0.367794 2.387934 0.000000 +v -0.216184 2.021915 0.777541 +v -0.113655 1.774387 -0.914054 +v -0.349793 2.344476 -0.296994 +v -0.297551 2.218354 0.564917 +v -0.349793 2.344476 0.296994 +v -0.937500 0.187500 0.437500 +v 0.312593 2.071245 0.856743 +v 0.639883 1.620769 0.856743 +v 0.639883 1.379231 0.856743 +v 0.446690 1.026182 0.856743 +v 0.082876 0.854115 0.856743 +v -0.446690 1.026182 0.856743 +v -0.588663 1.221591 0.856743 +v -0.639883 1.620769 0.856743 +v -0.446690 1.973818 0.856743 +v -0.082876 2.145885 0.856743 +v 0.524916 2.113304 0.437500 +v 0.613304 2.024916 -0.437500 +v -0.613304 2.024916 0.437500 +v -0.524916 2.113304 0.437500 +v -0.524916 2.113304 -0.437500 +v -0.613304 2.024916 -0.437500 +v 0.613304 0.975084 0.437500 +v 0.524916 0.886696 0.437500 +v 0.524916 0.886696 -0.437500 +v 0.613304 0.975084 -0.437500 +v -0.524916 0.886696 0.437500 +v -0.613304 0.975084 -0.437500 +v 0.284663 2.432218 -0.215667 +v 0.241696 2.328486 -0.378320 +v 0.261693 2.376764 -0.198249 +v 0.264666 2.383941 -0.395739 +v 0.414923 2.256733 -0.378320 +v 0.437894 2.312188 -0.395739 +v 0.434921 2.305010 -0.198249 +v 0.386817 2.352198 -0.335715 +v 0.416453 2.423745 -0.293109 +v 0.393482 2.368290 -0.275691 +v 0.335740 2.392208 -0.275691 +v 0.329074 2.376116 -0.335715 +v 0.457891 2.360465 -0.215667 +v 0.409787 2.407653 -0.353133 +v 0.358710 2.447663 -0.293109 +v 0.352044 2.431571 -0.353133 +v -0.261693 2.376764 -0.198249 +v -0.264666 2.383941 -0.395739 +v -0.284663 2.432218 -0.215667 +v -0.414923 2.256733 -0.378320 +v -0.241696 2.328486 -0.378320 +v -0.434921 2.305010 -0.198249 +v -0.437894 2.312188 -0.395739 +v -0.457891 2.360465 -0.215667 +v -0.416453 2.423745 -0.293109 +v -0.386817 2.352198 -0.335715 +v -0.393482 2.368290 -0.275691 +v -0.329074 2.376116 -0.335715 +v -0.335740 2.392208 -0.275691 +v -0.409787 2.407653 -0.353133 +v -0.358710 2.447663 -0.293109 +v -0.352044 2.431571 -0.353133 +v 0.261693 2.376764 0.198249 +v 0.264666 2.383941 0.395739 +v 0.284663 2.432218 0.215667 +v 0.414923 2.256733 0.378320 +v 0.241696 2.328486 0.378320 +v 0.434921 2.305010 0.198249 +v 0.437894 2.312188 0.395739 +v 0.457891 2.360465 0.215667 +v 0.416453 2.423745 0.293109 +v 0.386817 2.352198 0.335715 +v 0.393482 2.368290 0.275691 +v 0.329074 2.376116 0.335715 +v 0.335740 2.392208 0.275691 +v 0.409787 2.407653 0.353133 +v 0.358710 2.447663 0.293109 +v 0.352044 2.431571 0.353133 +v -0.284663 2.432218 0.215667 +v -0.241696 2.328486 0.378320 +v -0.261693 2.376764 0.198249 +v -0.264666 2.383941 0.395739 +v -0.414923 2.256733 0.378320 +v -0.437894 2.312188 0.395739 +v -0.434921 2.305010 0.198249 +v -0.386817 2.352198 0.335715 +v -0.416453 2.423745 0.293109 +v -0.393482 2.368290 0.275691 +v -0.335740 2.392208 0.275691 +v -0.329074 2.376116 0.335715 +v -0.457891 2.360465 0.215667 +v -0.409787 2.407653 0.353133 +v -0.358710 2.447663 0.293109 +v -0.352044 2.431571 0.353133 +v 0.261693 0.623236 -0.198249 +v 0.264666 0.616059 -0.395739 +v 0.284663 0.567782 -0.215667 +v 0.414923 0.743267 -0.378320 +v 0.241696 0.671514 -0.378320 +v 0.434921 0.694990 -0.198249 +v 0.437894 0.687812 -0.395739 +v 0.457891 0.639535 -0.215667 +v 0.416453 0.576255 -0.293109 +v 0.386817 0.647802 -0.335715 +v 0.393482 0.631710 -0.275691 +v 0.329074 0.623884 -0.335715 +v 0.335740 0.607792 -0.275691 +v 0.409787 0.592347 -0.353133 +v 0.358710 0.552337 -0.293109 +v 0.352044 0.568430 -0.353133 +v -0.284663 0.567782 -0.215667 +v -0.241696 0.671514 -0.378320 +v -0.261693 0.623236 -0.198249 +v -0.264666 0.616059 -0.395739 +v -0.414923 0.743267 -0.378320 +v -0.437894 0.687812 -0.395739 +v -0.434921 0.694990 -0.198249 +v -0.386817 0.647802 -0.335715 +v -0.416453 0.576255 -0.293109 +v -0.393482 0.631710 -0.275691 +v -0.335740 0.607792 -0.275691 +v -0.329074 0.623884 -0.335715 +v -0.457891 0.639535 -0.215667 +v -0.409787 0.592347 -0.353133 +v -0.358710 0.552337 -0.293109 +v -0.352044 0.568430 -0.353133 +v 0.284663 0.567782 0.215667 +v 0.241696 0.671514 0.378320 +v 0.261693 0.623236 0.198249 +v 0.264666 0.616059 0.395739 +v 0.414923 0.743267 0.378320 +v 0.437894 0.687812 0.395739 +v 0.434921 0.694990 0.198249 +v 0.386817 0.647802 0.335715 +v 0.416453 0.576255 0.293109 +v 0.393482 0.631710 0.275691 +v 0.335740 0.607792 0.275691 +v 0.329074 0.623884 0.335715 +v 0.457891 0.639535 0.215667 +v 0.409787 0.592347 0.353133 +v 0.358710 0.552337 0.293109 +v 0.352044 0.568430 0.353133 +v -0.261693 0.623236 0.198249 +v -0.264666 0.616059 0.395739 +v -0.284663 0.567782 0.215667 +v -0.414923 0.743267 0.378320 +v -0.241696 0.671514 0.378320 +v -0.434921 0.694990 0.198249 +v -0.437894 0.687812 0.395739 +v -0.457891 0.639535 0.215667 +v -0.416453 0.576255 0.293109 +v -0.386817 0.647802 0.335715 +v -0.393482 0.631710 0.275691 +v -0.329074 0.623884 0.335715 +v -0.335740 0.607792 0.275691 +v -0.409787 0.592347 0.353133 +v -0.358710 0.552337 0.293109 +v -0.352044 0.568430 0.353133 +v 0.292716 2.062386 0.759617 +v 0.344670 2.133894 0.582840 +v 0.266740 2.026632 0.715423 +v 0.370646 2.169648 0.627035 +v 0.496360 2.023684 0.582840 +v 0.522337 2.059438 0.627035 +v 0.418430 1.916423 0.715423 +v 0.444407 1.952176 0.759617 +v 0.419820 2.024667 0.715423 +v 0.395233 2.097157 0.759617 +v 0.369257 2.061403 0.715423 +v 0.395233 2.097157 0.671229 +v 0.445797 2.060421 0.671229 +v 0.421210 2.132911 0.715423 +v 0.445797 2.060421 0.759617 +v 0.471774 2.096174 0.715423 +v 0.625315 1.395397 0.759617 +v 0.709378 1.368084 0.582840 +v 0.583284 1.409054 0.715423 +v 0.751409 1.354427 0.627035 +v 0.651437 1.189760 0.582840 +v 0.567375 1.217074 0.759617 +v 0.525343 1.230731 0.715423 +v 0.628719 1.262858 0.715423 +v 0.690064 1.308643 0.759617 +v 0.648033 1.322299 0.715423 +v 0.690064 1.308643 0.671229 +v 0.670751 1.249202 0.671229 +v 0.693468 1.176104 0.627035 +v 0.732095 1.294986 0.715423 +v 0.670751 1.249202 0.759617 +v 0.712782 1.235545 0.715423 +v 0.093750 0.872966 0.759617 +v 0.093750 0.784577 0.582840 +v 0.093750 0.917160 0.715423 +v -0.093750 0.740383 0.627035 +v -0.093750 0.784577 0.582840 +v -0.093750 0.872966 0.759617 +v -0.093750 0.917160 0.715423 +v -0.031250 0.828771 0.715423 +v 0.031250 0.784577 0.759617 +v 0.031250 0.828771 0.715423 +v 0.031250 0.784577 0.671229 +v -0.031250 0.784577 0.671229 +v 0.093750 0.740383 0.627035 +v 0.031250 0.740383 0.715423 +v -0.031250 0.784577 0.759617 +v -0.031250 0.740383 0.715423 +v -0.567375 1.217074 0.759617 +v -0.651437 1.189761 0.582840 +v -0.525344 1.230731 0.715423 +v -0.751409 1.354427 0.627035 +v -0.709378 1.368084 0.582840 +v -0.625316 1.395398 0.759617 +v -0.583284 1.409054 0.715423 +v -0.648033 1.322300 0.715423 +v -0.670751 1.249202 0.759617 +v -0.628720 1.262859 0.715423 +v -0.670751 1.249202 0.671229 +v -0.690064 1.308643 0.671229 +v -0.693468 1.176104 0.627035 +v -0.712782 1.235545 0.715423 +v -0.690064 1.308643 0.759617 +v -0.732096 1.294986 0.715423 +v -0.444407 1.952177 0.759617 +v -0.496360 2.023685 0.582840 +v -0.418430 1.916423 0.715423 +v -0.370646 2.169648 0.627035 +v -0.344669 2.133894 0.582840 +v -0.266739 2.026633 0.715423 +v -0.292716 2.062387 0.759617 +v -0.369256 2.061404 0.715423 +v -0.445797 2.060421 0.759617 +v -0.419820 2.024667 0.715423 +v -0.445797 2.060421 0.671229 +v -0.395233 2.097158 0.671229 +v -0.522337 2.059438 0.627035 +v -0.471773 2.096175 0.715423 +v -0.395233 2.097158 0.759617 +v -0.421210 2.132912 0.715423 +v 0.344670 2.133894 -0.582840 +v 0.292716 2.062386 -0.759617 +v 0.266740 2.026632 -0.715423 +v 0.496360 2.023684 -0.582840 +v 0.370646 2.169648 -0.627035 +v 0.418430 1.916423 -0.715423 +v 0.522337 2.059438 -0.627035 +v 0.444407 1.952176 -0.759617 +v 0.395233 2.097157 -0.759617 +v 0.419820 2.024667 -0.715423 +v 0.369257 2.061403 -0.715423 +v 0.395233 2.097157 -0.671229 +v 0.445797 2.060421 -0.671229 +v 0.445797 2.060421 -0.759617 +v 0.421210 2.132911 -0.715423 +v 0.471774 2.096174 -0.715423 +v 0.709378 1.368084 -0.582840 +v 0.625315 1.395397 -0.759617 +v 0.583284 1.409054 -0.715423 +v 0.693468 1.176104 -0.627035 +v 0.751409 1.354427 -0.627035 +v 0.525343 1.230731 -0.715423 +v 0.651437 1.189760 -0.582840 +v 0.567375 1.217074 -0.759617 +v 0.690064 1.308643 -0.759617 +v 0.628719 1.262858 -0.715423 +v 0.648033 1.322299 -0.715423 +v 0.690064 1.308643 -0.671229 +v 0.670751 1.249202 -0.671229 +v 0.670751 1.249202 -0.759617 +v 0.732095 1.294986 -0.715423 +v 0.712782 1.235545 -0.715423 +v 0.093750 0.784577 -0.582840 +v 0.093750 0.872966 -0.759617 +v 0.093750 0.917160 -0.715423 +v -0.093750 0.740383 -0.627035 +v 0.093750 0.740383 -0.627035 +v -0.093750 0.784577 -0.582840 +v -0.093750 0.872966 -0.759617 +v -0.093750 0.917160 -0.715423 +v 0.031250 0.784577 -0.759617 +v -0.031250 0.828771 -0.715423 +v 0.031250 0.828771 -0.715423 +v 0.031250 0.784577 -0.671229 +v -0.031250 0.784577 -0.671229 +v -0.031250 0.784577 -0.759617 +v 0.031250 0.740383 -0.715423 +v -0.031250 0.740383 -0.715423 +v -0.651437 1.189761 -0.582840 +v -0.567375 1.217074 -0.759617 +v -0.525344 1.230731 -0.715423 +v -0.751409 1.354427 -0.627035 +v -0.693468 1.176104 -0.627035 +v -0.709378 1.368084 -0.582840 +v -0.625316 1.395398 -0.759617 +v -0.583284 1.409054 -0.715423 +v -0.670751 1.249202 -0.759617 +v -0.648033 1.322300 -0.715423 +v -0.628720 1.262859 -0.715423 +v -0.670751 1.249202 -0.671229 +v -0.690064 1.308643 -0.671229 +v -0.690064 1.308643 -0.759617 +v -0.712782 1.235545 -0.715423 +v -0.732096 1.294986 -0.715423 +v -0.496360 2.023685 -0.582840 +v -0.444407 1.952177 -0.759617 +v -0.418430 1.916423 -0.715423 +v -0.344669 2.133894 -0.582840 +v -0.522337 2.059438 -0.627035 +v -0.266739 2.026633 -0.715423 +v -0.370646 2.169648 -0.627035 +v -0.292716 2.062387 -0.759617 +v -0.445797 2.060421 -0.759617 +v -0.369256 2.061404 -0.715423 +v -0.419820 2.024667 -0.715423 +v -0.445797 2.060421 -0.671229 +v -0.395233 2.097158 -0.671229 +v -0.395233 2.097158 -0.759617 +v -0.471773 2.096175 -0.715423 +v -0.421210 2.132912 -0.715423 +v 0.932218 1.215337 -0.215667 +v 0.828486 1.258304 -0.378320 +v 0.876764 1.238307 -0.198249 +v 0.883941 1.235334 -0.395739 +v 0.756733 1.085077 -0.378320 +v 0.860465 1.042109 -0.215667 +v 0.805010 1.065079 -0.198249 +v 0.852198 1.113183 -0.335715 +v 0.923745 1.083547 -0.293109 +v 0.868290 1.106518 -0.275691 +v 0.876116 1.170926 -0.335715 +v 0.892208 1.164260 -0.275691 +v 0.812188 1.062106 -0.395739 +v 0.907653 1.090213 -0.353133 +v 0.947663 1.141290 -0.293109 +v 0.931570 1.147956 -0.353133 +v 0.828486 1.741696 -0.378320 +v 0.932218 1.784663 -0.215667 +v 0.876764 1.761693 -0.198249 +v 0.756733 1.914923 -0.378320 +v 0.883941 1.764666 -0.395739 +v 0.805010 1.934921 -0.198249 +v 0.812188 1.937894 -0.395739 +v 0.860465 1.957891 -0.215667 +v 0.923745 1.916453 -0.293109 +v 0.852198 1.886817 -0.335715 +v 0.868290 1.893483 -0.275691 +v 0.892208 1.835740 -0.275691 +v 0.876116 1.829074 -0.335715 +v 0.931570 1.852044 -0.353133 +v 0.907653 1.909787 -0.353133 +v 0.947663 1.858710 -0.293109 +v 0.828486 1.258304 0.378320 +v 0.932218 1.215337 0.215667 +v 0.876764 1.238307 0.198249 +v 0.756733 1.085077 0.378320 +v 0.883941 1.235334 0.395739 +v 0.860465 1.042109 0.215667 +v 0.812188 1.062106 0.395739 +v 0.805010 1.065079 0.198249 +v 0.868290 1.106518 0.275691 +v 0.907653 1.090213 0.353133 +v 0.852198 1.113183 0.335715 +v 0.892208 1.164260 0.275691 +v 0.876116 1.170926 0.335715 +v 0.947663 1.141290 0.293109 +v 0.931570 1.147956 0.353133 +v 0.932218 1.784663 0.215667 +v 0.828486 1.741696 0.378320 +v 0.876764 1.761693 0.198249 +v 0.883941 1.764666 0.395739 +v 0.756733 1.914923 0.378320 +v 0.812188 1.937894 0.395739 +v 0.805010 1.934921 0.198249 +v 0.860465 1.957891 0.215667 +v 0.852198 1.886817 0.335715 +v 0.923745 1.916453 0.293109 +v 0.868290 1.893483 0.275691 +v 0.876116 1.829074 0.335715 +v 0.892208 1.835740 0.275691 +v 0.931570 1.852044 0.353133 +v 0.907653 1.909787 0.353133 +v 0.947663 1.858710 0.293109 +v -0.828486 1.258304 -0.378320 +v -0.932218 1.215337 -0.215667 +v -0.876764 1.238307 -0.198249 +v -0.756733 1.085077 -0.378320 +v -0.883941 1.235334 -0.395739 +v -0.805010 1.065079 -0.198249 +v -0.812188 1.062106 -0.395739 +v -0.860465 1.042109 -0.215667 +v -0.923745 1.083547 -0.293109 +v -0.852198 1.113183 -0.335715 +v -0.868290 1.106517 -0.275691 +v -0.892208 1.164260 -0.275691 +v -0.876116 1.170926 -0.335715 +v -0.931570 1.147956 -0.353133 +v -0.907653 1.090213 -0.353133 +v -0.947663 1.141290 -0.293109 +v -0.932218 1.784663 -0.215667 +v -0.828486 1.741696 -0.378320 +v -0.876764 1.761693 -0.198249 +v -0.883941 1.764666 -0.395739 +v -0.756733 1.914923 -0.378320 +v -0.860465 1.957891 -0.215667 +v -0.805010 1.934921 -0.198249 +v -0.852198 1.886817 -0.335715 +v -0.923745 1.916453 -0.293109 +v -0.868290 1.893482 -0.275691 +v -0.876116 1.829074 -0.335715 +v -0.892208 1.835740 -0.275691 +v -0.812188 1.937894 -0.395739 +v -0.907653 1.909787 -0.353133 +v -0.947663 1.858710 -0.293109 +v -0.931570 1.852044 -0.353133 +v -0.932218 1.215337 0.215667 +v -0.828486 1.258304 0.378320 +v -0.876764 1.238307 0.198249 +v -0.883941 1.235334 0.395739 +v -0.756733 1.085077 0.378320 +v -0.812188 1.062106 0.395739 +v -0.805010 1.065079 0.198249 +v -0.860465 1.042109 0.215667 +v -0.852198 1.113183 0.335715 +v -0.923745 1.083547 0.293109 +v -0.868290 1.106517 0.275691 +v -0.876116 1.170926 0.335715 +v -0.892208 1.164260 0.275691 +v -0.931570 1.147956 0.353133 +v -0.907653 1.090213 0.353133 +v -0.947663 1.141290 0.293109 +v -0.828486 1.741696 0.378320 +v -0.932218 1.784663 0.215667 +v -0.876764 1.761693 0.198249 +v -0.756733 1.914923 0.378320 +v -0.883941 1.764666 0.395739 +v -0.860465 1.957891 0.215667 +v -0.812188 1.937894 0.395739 +v -0.805010 1.934921 0.198249 +v -0.868290 1.893482 0.275691 +v -0.907653 1.909787 0.353133 +v -0.852198 1.886817 0.335715 +v -0.892208 1.835740 0.275691 +v -0.876116 1.829074 0.335715 +v -0.947663 1.858710 0.293109 +v -0.931570 1.852044 0.353133 +v 0.923745 1.083547 0.293109 +v -0.923745 1.916453 0.293109 +v -0.807442 1.959695 -1.252000 +v -0.807442 1.959695 -0.439500 +v -1.212871 1.460005 -0.439500 +v -0.905119 1.405740 -0.439500 +v -0.905119 1.405740 -1.252000 +v -1.212871 1.460005 -1.252000 +v -1.115194 2.013960 -1.252000 +v -1.115194 2.013960 -0.439500 +v -1.126047 1.952409 -1.189500 +v -1.202018 1.521556 -1.189500 +v -1.191165 1.583106 -1.189500 +v -1.180312 1.644657 -1.189500 +v -1.169459 1.706207 -1.189500 +v -1.158606 1.767758 -1.189500 +v -1.136900 1.890859 -1.189500 +v -1.147753 1.829308 -1.189500 +v -1.136900 1.890859 -0.502000 +v -1.180312 1.644657 -0.939500 +v -1.231010 1.717060 -0.939500 +v -1.169459 1.706207 -0.939500 +v -1.126047 1.952409 -0.564500 +v -1.136900 1.890859 -0.627000 +v -1.136900 1.890859 -0.564500 +v -1.202018 1.521556 -1.064500 +v -1.252716 1.593959 -1.064500 +v -1.191165 1.583106 -1.064500 +v -1.126047 1.952409 -0.689500 +v -1.136900 1.890859 -0.752000 +v -1.136900 1.890859 -0.689500 +v -1.187598 1.963262 -0.627000 +v -1.198451 1.901712 -0.627000 +v -1.126047 1.952409 -0.814500 +v -1.136900 1.890859 -0.877000 +v -1.136900 1.890859 -0.814500 +v -1.147753 1.829308 -0.752000 +v -1.220157 1.778611 -0.752000 +v -1.158606 1.767758 -0.752000 +v -1.126047 1.952409 -0.939500 +v -1.136900 1.890859 -1.002000 +v -1.136900 1.890859 -0.939500 +v -1.191165 1.583106 -0.939500 +v -1.252716 1.593959 -0.877000 +v -1.191165 1.583106 -0.877000 +v -1.126047 1.952409 -1.064500 +v -1.136900 1.890859 -1.127000 +v -1.136900 1.890859 -1.064500 +v -1.180312 1.644657 -0.877000 +v -1.231010 1.717060 -0.877000 +v -1.241863 1.655510 -0.877000 +v -1.147753 1.829308 -0.502000 +v -1.147753 1.829308 -0.564500 +v -1.147753 1.829308 -0.627000 +v -1.147753 1.829308 -0.689500 +v -1.147753 1.829308 -0.814500 +v -1.147753 1.829308 -0.877000 +v -1.147753 1.829308 -0.939500 +v -1.147753 1.829308 -1.002000 +v -1.147753 1.829308 -1.064500 +v -1.147753 1.829308 -1.127000 +v -1.158606 1.767758 -0.502000 +v -1.169459 1.706207 -1.064500 +v -1.231010 1.717060 -1.002000 +v -1.169459 1.706207 -1.002000 +v -1.158606 1.767758 -0.627000 +v -1.158606 1.767758 -0.564500 +v -1.202018 1.521556 -1.002000 +v -1.252716 1.593959 -1.002000 +v -1.263569 1.532409 -1.002000 +v -1.158606 1.767758 -0.689500 +v -1.209304 1.840161 -1.189500 +v -1.209304 1.840161 -1.127000 +v -1.158606 1.767758 -0.877000 +v -1.158606 1.767758 -0.814500 +v -1.187598 1.963262 -0.564500 +v -1.158606 1.767758 -1.002000 +v -1.158606 1.767758 -0.939500 +v -1.220157 1.778611 -0.689500 +v -1.209304 1.840161 -0.689500 +v -1.158606 1.767758 -1.064500 +v -1.158606 1.767758 -1.127000 +v -1.180312 1.644657 -0.814500 +v -1.231010 1.717060 -0.814500 +v -1.169459 1.706207 -0.814500 +v -1.169459 1.706207 -0.502000 +v -1.169459 1.706207 -0.564500 +v -1.169459 1.706207 -0.627000 +v -1.169459 1.706207 -0.689500 +v -1.169459 1.706207 -0.752000 +v -1.169459 1.706207 -0.877000 +v -1.169459 1.706207 -1.127000 +v -1.180312 1.644657 -0.502000 +v -1.202018 1.521556 -0.939500 +v -1.252716 1.593959 -0.939500 +v -1.180312 1.644657 -0.627000 +v -1.180312 1.644657 -0.564500 +v -1.187598 1.963262 -0.502000 +v -1.198451 1.901712 -0.502000 +v -1.180312 1.644657 -0.752000 +v -1.180312 1.644657 -0.689500 +v -1.220157 1.778611 -0.627000 +v -1.191165 1.583106 -0.814500 +v -1.252716 1.593959 -0.752000 +v -1.191165 1.583106 -0.752000 +v -1.180312 1.644657 -1.002000 +v -1.231010 1.717060 -0.752000 +v -1.241863 1.655510 -0.752000 +v -1.180312 1.644657 -1.127000 +v -1.180312 1.644657 -1.064500 +v -1.191165 1.583106 -0.502000 +v -1.191165 1.583106 -0.564500 +v -1.191165 1.583106 -0.627000 +v -1.191165 1.583106 -0.689500 +v -1.191165 1.583106 -1.002000 +v -1.191165 1.583106 -1.127000 +v -1.202018 1.521556 -0.502000 +v -1.202018 1.521556 -0.877000 +v -1.263569 1.532409 -0.877000 +v -1.202018 1.521556 -0.627000 +v -1.202018 1.521556 -0.564500 +v -1.209304 1.840161 -1.002000 +v -1.202018 1.521556 -0.752000 +v -1.202018 1.521556 -0.689500 +v -1.187598 1.963262 -1.127000 +v -1.126047 1.952409 -1.127000 +v -1.202018 1.521556 -0.814500 +v -1.220157 1.778611 -0.564500 +v -1.209304 1.840161 -0.564500 +v -1.231010 1.717060 -0.689500 +v -1.202018 1.521556 -1.127000 +v -1.252716 1.593959 -0.814500 +v -1.126047 1.952409 -0.502000 +v -1.126047 1.952409 -0.627000 +v -1.126047 1.952409 -0.752000 +v -1.126047 1.952409 -0.877000 +v -1.126047 1.952409 -1.002000 +v -1.198451 1.901712 -0.564500 +v -1.198451 1.901712 -0.689500 +v -1.187598 1.963262 -0.752000 +v -1.198451 1.901712 -0.814500 +v -1.198451 1.901712 -0.752000 +v -1.187598 1.963262 -0.877000 +v -1.198451 1.901712 -0.939500 +v -1.198451 1.901712 -0.877000 +v -1.187598 1.963262 -1.002000 +v -1.198451 1.901712 -1.064500 +v -1.198451 1.901712 -1.002000 +v -1.198451 1.901712 -1.127000 +v -1.187598 1.963262 -1.189500 +v -1.198451 1.901712 -1.189500 +v -1.209304 1.840161 -0.502000 +v -1.220157 1.778611 -0.502000 +v -1.209304 1.840161 -0.627000 +v -1.209304 1.840161 -0.752000 +v -1.220157 1.778611 -0.814500 +v -1.209304 1.840161 -0.877000 +v -1.220157 1.778611 -0.939500 +v -1.220157 1.778611 -0.877000 +v -1.220157 1.778611 -1.064500 +v -1.220157 1.778611 -1.002000 +v -1.220157 1.778611 -1.189500 +v -1.220157 1.778611 -1.127000 +v -1.231010 1.717060 -0.502000 +v -1.241863 1.655510 -0.564500 +v -1.241863 1.655510 -0.502000 +v -1.231010 1.717060 -0.627000 +v -1.241863 1.655510 -0.689500 +v -1.241863 1.655510 -0.627000 +v -1.241863 1.655510 -0.814500 +v -1.241863 1.655510 -0.939500 +v -1.241863 1.655510 -1.064500 +v -1.241863 1.655510 -1.002000 +v -1.241863 1.655510 -1.127000 +v -1.231010 1.717060 -1.189500 +v -1.241863 1.655510 -1.189500 +v -1.252716 1.593959 -0.502000 +v -1.263569 1.532409 -0.564500 +v -1.263569 1.532409 -0.502000 +v -1.252716 1.593959 -0.627000 +v -1.263569 1.532409 -0.689500 +v -1.263569 1.532409 -0.627000 +v -1.263569 1.532409 -0.814500 +v -1.263569 1.532409 -0.752000 +v -1.263569 1.532409 -0.939500 +v -1.263569 1.532409 -1.064500 +v -1.263569 1.532409 -1.127000 +v -1.252716 1.593959 -1.189500 +v -1.263569 1.532409 -1.189500 +v -1.209304 1.840161 -0.814500 +v -1.187598 1.963262 -0.689500 +v -1.252716 1.593959 -1.127000 +v -1.231010 1.717060 -1.127000 +v -1.231010 1.717060 -1.064500 +v -1.209304 1.840161 -0.939500 +v -1.187598 1.963262 -0.814500 +v -1.209304 1.840161 -1.064500 +v -1.187598 1.963262 -0.939500 +v -1.187598 1.963262 -1.064500 +v -1.252716 1.593959 -0.564500 +v -1.252716 1.593959 -0.689500 +v -1.231010 1.717060 -0.564500 +v -0.934110 1.601245 -1.252000 +v -0.995661 1.612098 -1.252000 +v -0.944963 1.539694 -1.252000 +v -1.006514 1.550547 -1.252000 +v -0.934110 1.601245 -1.314400 +v -0.995661 1.612098 -1.314400 +v -0.944963 1.539694 -1.314400 +v -1.006514 1.550547 -1.314400 +v -1.057211 1.622951 -1.252000 +v -1.118762 1.633804 -1.252000 +v -1.068064 1.561400 -1.252000 +v -1.129615 1.572253 -1.252000 +v -1.057211 1.622951 -1.314500 +v -1.118762 1.633804 -1.314500 +v -1.068064 1.561400 -1.314500 +v -1.129615 1.572253 -1.314500 +vt 0.982558 0.504854 +vt 0.988372 0.495146 +vt 0.982558 0.495146 +vt 0.488372 0.834951 +vt 0.470930 0.699029 +vt 0.470930 0.834951 +vt 0.837209 0.242718 +vt 0.831395 0.252427 +vt 0.831395 0.242718 +vt 0.488372 0.699029 +vt 0.494186 0.834951 +vt 0.494186 0.699029 +vt 0.802326 0.233010 +vt 0.802326 0.242718 +vt 0.802326 0.582524 +vt 0.988372 0.572816 +vt 0.988372 0.582524 +vt 0.808140 0.495146 +vt 0.988372 0.475728 +vt 0.802326 0.475728 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.802326 0.262136 +vt 0.581395 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.563107 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.831395 0.252427 +vt 0.994186 0.572816 +vt 0.988372 0.563107 +vt 0.994186 0.563107 +vt 0.982558 0.504854 +vt 0.988372 0.495146 +vt 0.988372 0.504854 +vt 0.837209 0.242718 +vt 0.837209 0.252427 +vt 0.802326 0.572816 +vt 0.796512 0.563107 +vt 0.802326 0.563107 +vt 0.988372 0.543689 +vt 0.802326 0.553398 +vt 0.802326 0.543689 +vt 0.802326 0.233010 +vt 0.831395 0.242718 +vt 0.831395 0.233010 +vt 0.872093 0.349515 +vt 0.802326 0.339806 +vt 0.802326 0.349515 +vt 0.872093 0.310680 +vt 0.802326 0.300971 +vt 0.802326 0.310680 +vt 0.988372 0.485437 +vt 0.808140 0.504854 +vt 0.802326 0.514563 +vt 0.802326 0.524272 +vt 0.872093 0.310680 +vt 0.802326 0.300971 +vt 0.872093 0.300971 +vt 0.802326 0.572816 +vt 0.796512 0.563107 +vt 0.796512 0.572816 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.802326 0.339806 +vt 0.872093 0.349515 +vt 0.802326 0.339806 +vt 0.802326 0.349515 +vt 0.802326 0.582524 +vt 0.988372 0.572816 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.802326 0.300971 +vt 0.488372 0.834951 +vt 0.470930 0.699029 +vt 0.488372 0.699029 +vt 0.802326 0.233010 +vt 0.831395 0.223301 +vt 0.831395 0.233010 +vt 0.988372 0.553398 +vt 0.988372 0.504854 +vt 0.994186 0.495146 +vt 0.796512 0.252427 +vt 0.994186 0.553398 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.872093 0.271845 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.796512 0.310680 +vt 0.802326 0.533981 +vt 0.988372 0.543689 +vt 0.988372 0.533981 +vt 0.831395 0.223301 +vt 0.802326 0.242718 +vt 0.831395 0.242718 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.802326 0.339806 +vt 0.796512 0.252427 +vt 0.802326 0.242718 +vt 0.802326 0.252427 +vt 0.872093 0.310680 +vt 0.802326 0.271845 +vt 0.872093 0.271845 +vt 0.796512 0.339806 +vt 0.796512 0.310680 +vt 0.831395 0.252427 +vt 0.802326 0.495146 +vt 0.796512 0.504854 +vt 0.796512 0.495146 +vt 0.802326 0.242718 +vt 0.831395 0.252427 +vt 0.872093 0.310680 +vt 0.872093 0.349515 +vt 0.872093 0.339806 +vt 0.796512 0.553398 +vt 0.802326 0.563107 +vt 0.802326 0.553398 +vt 0.802326 0.495146 +vt 0.796512 0.504854 +vt 0.802326 0.504854 +vt 0.831395 0.223301 +vt 0.831395 0.233010 +vt 0.837209 0.242718 +vt 0.837209 0.252427 +vt 0.802326 0.300971 +vt 0.994186 0.572816 +vt 0.988372 0.563107 +vt 0.877907 0.310680 +vt 0.872093 0.339806 +vt 0.877907 0.339806 +vt 0.994186 0.563107 +vt 0.988372 0.553398 +vt 0.465116 0.699029 +vt 0.494186 0.834951 +vt 0.877907 0.310680 +vt 0.796512 0.252427 +vt 0.796512 0.242718 +vt 0.494186 0.699029 +vt 0.511628 0.834951 +vt 0.994186 0.495146 +vt 0.994186 0.504854 +vt 0.872093 0.349515 +vt 0.872093 0.339806 +vt 0.511628 0.834951 +vt 0.511628 0.699029 +vt 0.877907 0.310680 +vt 0.872093 0.339806 +vt 0.877907 0.339806 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.802326 0.533981 +vt 0.796512 0.252427 +vt 0.796512 0.242718 +vt 0.337209 0.640777 +vt 0.354651 0.689320 +vt 0.354651 0.650485 +vt 0.325581 0.582524 +vt 0.308140 0.533981 +vt 0.308140 0.572816 +vt 0.325581 0.466019 +vt 0.308140 0.514563 +vt 0.325581 0.524272 +vt 0.325581 0.640777 +vt 0.308140 0.592233 +vt 0.308140 0.631068 +vt 0.593023 0.514563 +vt 0.406977 0.689320 +vt 0.389535 0.640777 +vt 0.389535 0.699029 +vt 0.360465 0.747573 +vt 0.377907 0.699029 +vt 0.360465 0.708738 +vt 0.308140 0.922330 +vt 0.325581 0.873786 +vt 0.308140 0.883495 +vt 0.337209 0.932039 +vt 0.354651 0.980583 +vt 0.354651 0.941748 +vt 0.337209 0.815534 +vt 0.354651 0.766990 +vt 0.337209 0.757282 +vt 0.360465 0.223301 +vt 0.377907 0.174757 +vt 0.360465 0.184466 +vt 0.308140 0.825243 +vt 0.308140 0.864078 +vt 0.337209 0.873786 +vt 0.354651 0.922330 +vt 0.354651 0.883495 +vt 0.360465 0.592233 +vt 0.377907 0.640777 +vt 0.377907 0.582524 +vt 0.360465 0.980583 +vt 0.377907 0.932039 +vt 0.360465 0.941748 +vt 0.360465 0.067961 +vt 0.377907 0.116505 +vt 0.377907 0.058252 +vt 0.337209 0.466019 +vt 0.354651 0.417476 +vt 0.337209 0.407767 +vt 0.325581 0.116505 +vt 0.308140 0.067961 +vt 0.308140 0.106796 +vt 0.308140 0.165049 +vt 0.308140 0.126214 +vt 0.406977 0.165049 +vt 0.389535 0.116505 +vt 0.389535 0.174757 +vt 0.325581 0.407767 +vt 0.308140 0.359223 +vt 0.308140 0.398058 +vt 0.325581 0.174757 +vt 0.308140 0.223301 +vt 0.325581 0.233010 +vt 0.360465 0.339806 +vt 0.377907 0.291262 +vt 0.360465 0.300971 +vt 0.389535 0.233010 +vt 0.406977 0.281553 +vt 0.406977 0.242718 +vt 0.337209 0.291262 +vt 0.354651 0.242718 +vt 0.337209 0.233010 +vt 0.389535 0.291262 +vt 0.406977 0.339806 +vt 0.406977 0.300971 +vt 0.354651 0.359223 +vt 0.354651 0.398058 +vt 0.406977 0.922330 +vt 0.389535 0.873786 +vt 0.389535 0.932039 +vt 0.360465 0.533981 +vt 0.360465 0.572816 +vt 0.308140 0.417476 +vt 0.308140 0.456311 +vt 0.360465 0.825243 +vt 0.377907 0.873786 +vt 0.377907 0.815534 +vt 0.389535 0.466019 +vt 0.406977 0.514563 +vt 0.406977 0.475728 +vt 0.802326 0.233010 +vt 0.831395 0.233010 +vt 0.837209 0.242718 +vt 0.831395 0.242718 +vt 0.831395 0.262136 +vt 0.802326 0.262136 +vt 0.808140 0.495146 +vt 0.802326 0.504854 +vt 0.465116 0.699029 +vt 0.470930 0.834951 +vt 0.465116 0.834951 +vt 0.808140 0.504854 +vt 0.337209 0.582524 +vt 0.354651 0.533981 +vt 0.337209 0.524272 +vt 0.406977 0.533981 +vt 0.389535 0.582524 +vt 0.406977 0.572816 +vt 0.354651 0.592233 +vt 0.354651 0.631068 +vt 0.406977 0.592233 +vt 0.406977 0.631068 +vt 0.360465 0.689320 +vt 0.360465 0.650485 +vt 0.308140 0.689320 +vt 0.308140 0.650485 +vt 0.406977 0.747573 +vt 0.389535 0.757282 +vt 0.325581 0.699029 +vt 0.308140 0.747573 +vt 0.325581 0.757282 +vt 0.360465 0.766990 +vt 0.360465 0.805825 +vt 0.308140 0.281553 +vt 0.325581 0.291262 +vt 0.406977 0.825243 +vt 0.406977 0.864078 +vt 0.360465 0.359223 +vt 0.377907 0.407767 +vt 0.377907 0.349515 +vt 0.337209 0.116505 +vt 0.354651 0.165049 +vt 0.354651 0.126214 +vt 0.337209 0.174757 +vt 0.354651 0.223301 +vt 0.354651 0.184466 +vt 0.354651 0.067961 +vt 0.354651 0.106796 +vt 0.325581 0.932039 +vt 0.308140 0.980583 +vt 0.325581 0.990291 +vt 0.406977 0.067961 +vt 0.406977 0.106796 +vt 0.406977 0.980583 +vt 0.406977 0.941748 +vt 0.360465 0.922330 +vt 0.360465 0.883495 +vt 0.360465 0.165049 +vt 0.360465 0.126214 +vt 0.354651 0.825243 +vt 0.354651 0.864078 +vt 0.406977 0.223301 +vt 0.406977 0.184466 +vt 0.360465 0.242718 +vt 0.360465 0.281553 +vt 0.308140 0.339806 +vt 0.325581 0.349515 +vt 0.354651 0.339806 +vt 0.354651 0.300971 +vt 0.406977 0.766990 +vt 0.389535 0.815534 +vt 0.406977 0.805825 +vt 0.406977 0.359223 +vt 0.389535 0.407767 +vt 0.406977 0.398058 +vt 0.308140 0.805825 +vt 0.325581 0.815534 +vt 0.406977 0.417476 +vt 0.406977 0.456311 +vt 0.377907 0.466019 +vt 0.360465 0.417476 +vt 0.360465 0.456311 +vt 0.354651 0.514563 +vt 0.354651 0.475728 +vt 0.360465 0.514563 +vt 0.360465 0.475728 +vt 0.581395 0.466019 +vt 0.581395 0.514563 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.558140 0.466019 +vt 0.569767 0.446602 +vt 0.569767 0.466019 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.569767 0.563107 +vt 0.831395 0.223301 +vt 0.558140 0.514563 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.558140 0.514563 +vt 0.569767 0.563107 +vt 0.558140 0.563107 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.569767 0.446602 +vt 0.581395 0.563107 +vt 0.593023 0.514563 +vt 0.593023 0.563107 +vt 0.558140 0.514563 +vt 0.569767 0.563107 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.593023 0.446602 +vt 0.569767 0.563107 +vt 0.569767 0.514563 +vt 0.581395 0.466019 +vt 0.581395 0.582524 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.558140 0.514563 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.581395 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.563107 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.593023 0.446602 +vt 0.593023 0.514563 +vt 0.581395 0.466019 +vt 0.581395 0.514563 +vt 0.569767 0.514563 +vt 0.569767 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.582524 +vt 0.581395 0.563107 +vt 0.877907 0.310680 +vt 0.593023 0.514563 +vt 0.569767 0.446602 +vt 0.988372 0.475728 +vt 0.802326 0.475728 +vt 0.581395 0.466019 +vt 0.569767 0.446602 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.662281 0.950003 +vt 0.570315 0.837433 +vt 0.570033 0.949354 +vt 0.337209 0.699029 +vt 0.354651 0.747573 +vt 0.354651 0.708738 +vt 0.802326 0.485437 +vt 0.988372 0.485437 +vt 0.982558 0.495146 +vt 0.988372 0.514563 +vt 0.988372 0.524272 +vt 0.802326 0.524272 +vt 0.802326 0.514563 +vt 0.988372 0.524272 +vt 0.802326 0.485437 +vt 0.988372 0.514563 +vt 0.525581 0.851052 +vt 0.548382 0.944680 +vt 0.492314 0.982754 +vt 0.570027 0.744687 +vt 0.570320 0.632766 +vt 0.634153 0.598647 +vt 0.598452 0.984140 +vt 0.633688 0.984388 +vt 0.673311 0.894119 +vt 0.662564 0.838082 +vt 0.634144 0.803296 +vt 0.598908 0.803048 +vt 0.559286 0.893317 +vt 0.796512 0.553398 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.819767 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.819767 0.708738 +vt 0.802326 0.718447 +vt 0.819767 0.718447 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.843023 0.951456 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.848837 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.951456 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.970874 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.802326 0.718447 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.970874 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.819767 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.819767 0.708738 +vt 0.819767 0.718447 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.837209 0.737864 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.802326 0.718447 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.837209 0.728155 +vt 0.843023 0.718447 +vt 0.837209 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.825581 0.747573 +vt 0.825581 0.718447 +vt 0.843023 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.831395 0.728155 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.747573 +vt 0.825581 0.718447 +vt 0.819767 0.747573 +vt 0.825581 0.747573 +vt 0.819767 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.837209 0.737864 +vt 0.831395 0.728155 +vt 0.831395 0.737864 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.825581 0.718447 +vt 0.819767 0.747573 +vt 0.825581 0.747573 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.728155 +vt 0.837209 0.737864 +vt 0.831395 0.737864 +vt 0.819767 0.708738 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.831395 0.961165 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.825581 0.980583 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.819767 0.718447 +vt 0.819767 0.747573 +vt 0.813953 0.728155 +vt 0.831395 0.728155 +vt 0.837209 0.737864 +vt 0.831395 0.737864 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.831395 0.737864 +vt 0.831395 0.728155 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.848837 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.961165 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.837209 0.737864 +vt 0.802326 0.708738 +vt 0.819767 0.718447 +vt 0.819767 0.708738 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.819767 0.718447 +vt 0.819767 0.747573 +vt 0.813953 0.728155 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.819767 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.843023 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.831395 0.737864 +vt 0.796512 0.718447 +vt 0.802326 0.757282 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.737864 +vt 0.837209 0.747573 +vt 0.843023 0.747573 +vt 0.848837 0.737864 +vt 0.843023 0.728155 +vt 0.848837 0.728155 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.819767 0.718447 +vt 0.813953 0.728155 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.728155 +vt 0.831395 0.737864 +vt 0.831395 0.728155 +vt 0.796512 0.718447 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.819767 0.708738 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.819767 0.757282 +vt 0.802326 0.757282 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.819767 0.718447 +vt 0.843023 0.737864 +vt 0.848837 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.819767 0.757282 +vt 0.802326 0.757282 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.819767 0.708738 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.837209 0.747573 +vt 0.843023 0.737864 +vt 0.843023 0.747573 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.802326 0.757282 +vt 0.796512 0.718447 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.796512 0.718447 +vt 0.802326 0.708738 +vt 0.819767 0.708738 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.848837 0.737864 +vt 0.843023 0.728155 +vt 0.848837 0.728155 +vt 0.825581 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.802326 0.951456 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.802326 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.819767 0.980583 +vt 0.802326 0.951456 +vt 0.819767 0.941748 +vt 0.802326 0.941748 +vt 0.837209 0.718447 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.837209 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.819767 0.951456 +vt 0.819767 0.980583 +vt 0.819767 0.941748 +vt 0.802326 0.951456 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.843023 0.951456 +vt 0.808140 0.970874 +vt 0.802326 0.951456 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.802326 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.837209 0.970874 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.848837 0.961165 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.819767 0.941748 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.843023 0.718447 +vt 0.837209 0.718447 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.970874 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.757282 +vt 0.825581 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.831395 0.961165 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.831395 0.728155 +vt 0.831395 0.737864 +vt 0.517442 0.291262 +vt 0.546512 0.378641 +vt 0.517442 0.378641 +vt 0.517442 0.427184 +vt 0.441860 0.514563 +vt 0.441860 0.427184 +vt 0.441860 0.242718 +vt 0.517442 0.242718 +vt 0.441860 0.378641 +vt 0.441860 0.291262 +vt 0.552326 0.203883 +vt 0.558140 0.213592 +vt 0.552326 0.213592 +vt 0.627907 0.126214 +vt 0.622093 0.116505 +vt 0.627907 0.116505 +vt 0.610465 0.155340 +vt 0.604651 0.145631 +vt 0.610465 0.145631 +vt 0.604651 0.213592 +vt 0.610465 0.203883 +vt 0.610465 0.213592 +vt 0.639535 0.252427 +vt 0.645349 0.242718 +vt 0.645349 0.252427 +vt 0.575581 0.116505 +vt 0.569767 0.126214 +vt 0.569767 0.116505 +vt 0.627907 0.165049 +vt 0.633721 0.155340 +vt 0.633721 0.165049 +vt 0.593023 0.242718 +vt 0.598837 0.233010 +vt 0.598837 0.242718 +vt 0.569767 0.223301 +vt 0.575581 0.233010 +vt 0.569767 0.233010 +vt 0.627907 0.223301 +vt 0.633721 0.213592 +vt 0.633721 0.223301 +vt 0.639535 0.233010 +vt 0.633721 0.242718 +vt 0.633721 0.233010 +vt 0.575581 0.242718 +vt 0.581395 0.233010 +vt 0.581395 0.242718 +vt 0.627907 0.194175 +vt 0.633721 0.203883 +vt 0.627907 0.203883 +vt 0.610465 0.252427 +vt 0.604651 0.262136 +vt 0.604651 0.252427 +vt 0.622093 0.174757 +vt 0.616279 0.165049 +vt 0.622093 0.165049 +vt 0.569767 0.174757 +vt 0.563953 0.184466 +vt 0.563953 0.174757 +vt 0.610465 0.184466 +vt 0.616279 0.174757 +vt 0.616279 0.184466 +vt 0.569767 0.194175 +vt 0.575581 0.184466 +vt 0.575581 0.194175 +vt 0.645349 0.184466 +vt 0.639535 0.174757 +vt 0.645349 0.174757 +vt 0.645349 0.126214 +vt 0.639535 0.116505 +vt 0.645349 0.116505 +vt 0.569767 0.165049 +vt 0.575581 0.174757 +vt 0.622093 0.242718 +vt 0.627907 0.233010 +vt 0.627907 0.242718 +vt 0.563953 0.126214 +vt 0.563953 0.116505 +vt 0.616279 0.203883 +vt 0.616279 0.213592 +vt 0.581395 0.126214 +vt 0.581395 0.116505 +vt 0.587209 0.262136 +vt 0.581395 0.252427 +vt 0.587209 0.252427 +vt 0.633721 0.126214 +vt 0.633721 0.116505 +vt 0.627907 0.145631 +vt 0.633721 0.145631 +vt 0.627907 0.135922 +vt 0.651163 0.116505 +vt 0.651163 0.126214 +vt 0.616279 0.233010 +vt 0.610465 0.242718 +vt 0.610465 0.233010 +vt 0.569767 0.203883 +vt 0.563953 0.213592 +vt 0.563953 0.203883 +vt 0.639535 0.203883 +vt 0.639535 0.213592 +vt 0.610465 0.271845 +vt 0.604651 0.271845 +vt 0.627907 0.184466 +vt 0.627907 0.174757 +vt 0.558140 0.135922 +vt 0.563953 0.145631 +vt 0.558140 0.145631 +vt 0.604651 0.194175 +vt 0.610465 0.194175 +vt 0.598837 0.252427 +vt 0.593023 0.252427 +vt 0.616279 0.106796 +vt 0.622093 0.106796 +vt 0.587209 0.233010 +vt 0.587209 0.242718 +vt 0.581395 0.165049 +vt 0.587209 0.155340 +vt 0.587209 0.165049 +vt 0.651163 0.233010 +vt 0.651163 0.242718 +vt 0.575581 0.262136 +vt 0.581395 0.271845 +vt 0.575581 0.271845 +vt 0.558140 0.194175 +vt 0.563953 0.194175 +vt 0.639535 0.165049 +vt 0.639535 0.106796 +vt 0.616279 0.135922 +vt 0.622093 0.126214 +vt 0.622093 0.135922 +vt 0.563953 0.155340 +vt 0.569767 0.145631 +vt 0.569767 0.155340 +vt 0.581395 0.223301 +vt 0.587209 0.213592 +vt 0.587209 0.223301 +vt 0.633721 0.271845 +vt 0.627907 0.262136 +vt 0.633721 0.262136 +vt 0.610465 0.126214 +vt 0.616279 0.116505 +vt 0.616279 0.126214 +vt 0.627907 0.252427 +vt 0.616279 0.262136 +vt 0.616279 0.271845 +vt 0.581395 0.135922 +vt 0.587209 0.145631 +vt 0.581395 0.145631 +vt 0.587209 0.126214 +vt 0.593023 0.116505 +vt 0.593023 0.126214 +vt 0.604651 0.135922 +vt 0.598837 0.126214 +vt 0.552326 0.155340 +vt 0.552326 0.145631 +vt 0.604651 0.165049 +vt 0.610465 0.165049 +vt 0.627907 0.281553 +vt 0.633721 0.281553 +vt 0.610465 0.281553 +vt 0.604651 0.281553 +vt 0.569767 0.135922 +vt 0.575581 0.126214 +vt 0.575581 0.135922 +vt 0.598837 0.184466 +vt 0.604651 0.174757 +vt 0.604651 0.184466 +vt 0.651163 0.174757 +vt 0.651163 0.184466 +vt 0.598837 0.106796 +vt 0.593023 0.106796 +vt 0.563953 0.223301 +vt 0.558140 0.223301 +vt 0.604651 0.126214 +vt 0.598837 0.116505 +vt 0.604651 0.116505 +vt 0.593023 0.165049 +vt 0.598837 0.174757 +vt 0.593023 0.174757 +vt 0.587209 0.271845 +vt 0.569767 0.252427 +vt 0.575581 0.252427 +vt 0.575581 0.106796 +vt 0.569767 0.106796 +vt 0.581395 0.194175 +vt 0.587209 0.203883 +vt 0.581395 0.203883 +vt 0.558140 0.165049 +vt 0.563953 0.165049 +vt 0.616279 0.223301 +vt 0.622093 0.233010 +vt 0.581395 0.213592 +vt 0.558140 0.271845 +vt 0.563953 0.281553 +vt 0.558140 0.281553 +vt 0.645349 0.233010 +vt 0.563953 0.271845 +vt 0.569767 0.262136 +vt 0.569767 0.271845 +vt 0.593023 0.145631 +vt 0.593023 0.155340 +vt 0.558140 0.262136 +vt 0.552326 0.271845 +vt 0.552326 0.262136 +vt 0.622093 0.194175 +vt 0.616279 0.194175 +vt 0.639535 0.262136 +vt 0.639535 0.271845 +vt 0.639535 0.145631 +vt 0.639535 0.155340 +vt 0.639535 0.135922 +vt 0.645349 0.135922 +vt 0.563953 0.242718 +vt 0.563953 0.233010 +vt 0.598837 0.155340 +vt 0.598837 0.145631 +vt 0.604651 0.233010 +vt 0.604651 0.242718 +vt 0.575581 0.155340 +vt 0.575581 0.145631 +vt 0.587209 0.184466 +vt 0.587209 0.174757 +vt 0.622093 0.155340 +vt 0.622093 0.145631 +vt 0.639535 0.223301 +vt 0.593023 0.203883 +vt 0.593023 0.213592 +vt 0.581395 0.174757 +vt 0.581395 0.184466 +vt 0.587209 0.281553 +vt 0.581395 0.281553 +vt 0.622093 0.271845 +vt 0.622093 0.262136 +vt 0.598837 0.135922 +vt 0.593023 0.135922 +vt 0.616279 0.145631 +vt 0.616279 0.155340 +vt 0.622093 0.213592 +vt 0.622093 0.203883 +vt 0.593023 0.194175 +vt 0.598837 0.194175 +vt 0.575581 0.213592 +vt 0.575581 0.203883 +vt 0.610465 0.223301 +vt 0.604651 0.223301 +vt 0.598837 0.271845 +vt 0.598837 0.262136 +vt 0.563953 0.252427 +vt 0.558140 0.252427 +vt 0.639535 0.194175 +vt 0.645349 0.194175 +vt 0.593023 0.262136 +vt 0.593023 0.271845 +vt 0.593023 0.223301 +vt 0.598837 0.223301 +vt 0.616279 0.252427 +vt 0.622093 0.252427 +vt 0.633721 0.184466 +vt 0.633721 0.174757 +vt 0.598837 0.203883 +vt 0.598837 0.213592 +vt 0.843023 0.961165 +vt 0.843023 0.737864 +vt 0.843023 0.737864 +vt 0.837209 0.737864 +vt 0.843023 0.961165 +vt 0.843023 0.961165 +vt 0.843023 0.961165 +vt 0.837209 0.970874 +vt 0.843023 0.737864 +vt 0.837209 0.970874 +vt 0.412791 0.378641 +vt 0.412791 0.291262 +vt 0.593023 0.135922 +vt 0.598837 0.126214 +vt 0.598837 0.135922 +vt 0.604651 0.126214 +vt 0.598837 0.116505 +vt 0.604651 0.116505 +vt 0.598837 0.106796 +vt 0.593023 0.116505 +vt 0.593023 0.106796 +vt 0.587209 0.116505 +vt 0.593023 0.126214 +vt 0.587209 0.126214 +vt 0.575581 0.106796 +vt 0.569767 0.116505 +vt 0.569767 0.106796 +vt 0.563953 0.116505 +vt 0.569767 0.126214 +vt 0.563953 0.126214 +vt 0.569767 0.135922 +vt 0.575581 0.126214 +vt 0.575581 0.135922 +vt 0.581395 0.126214 +vt 0.575581 0.116505 +vt 0.581395 0.116505 +vt 0.837209 0.252427 +vt 0.593023 0.582524 +vt 0.802326 0.262136 +vt 0.796512 0.572816 +vt 0.796512 0.310680 +vt 0.988372 0.582524 +vt 0.872093 0.271845 +vt 0.802326 0.223301 +vt 0.994186 0.504854 +vt 0.796512 0.242718 +vt 0.802326 0.543689 +vt 0.802326 0.223301 +vt 0.796512 0.310680 +vt 0.796512 0.242718 +vt 0.802326 0.349515 +vt 0.796512 0.495146 +vt 0.802326 0.223301 +vt 0.994186 0.553398 +vt 0.465116 0.834951 +vt 0.877907 0.339806 +vt 0.511628 0.699029 +vt 0.802326 0.349515 +vt 0.802326 0.262136 +vt 0.988372 0.533981 +vt 0.308140 0.475728 +vt 0.406977 0.650485 +vt 0.377907 0.757282 +vt 0.337209 0.990291 +vt 0.354651 0.805825 +vt 0.377907 0.233010 +vt 0.360465 0.631068 +vt 0.377907 0.990291 +vt 0.360465 0.106796 +vt 0.354651 0.456311 +vt 0.325581 0.058252 +vt 0.406977 0.126214 +vt 0.308140 0.184466 +vt 0.354651 0.281553 +vt 0.389535 0.349515 +vt 0.337209 0.349515 +vt 0.406977 0.883495 +vt 0.377907 0.524272 +vt 0.360465 0.864078 +vt 0.389535 0.524272 +vt 0.837209 0.252427 +vt 0.354651 0.572816 +vt 0.406977 0.708738 +vt 0.308140 0.708738 +vt 0.308140 0.242718 +vt 0.360465 0.398058 +vt 0.337209 0.058252 +vt 0.308140 0.941748 +vt 0.389535 0.058252 +vt 0.389535 0.990291 +vt 0.308140 0.300971 +vt 0.308140 0.766990 +vt 0.872093 0.271845 +vt 0.558140 0.446602 +vt 0.558140 0.582524 +vt 0.802326 0.223301 +vt 0.569767 0.514563 +vt 0.593023 0.446602 +vt 0.558140 0.446602 +vt 0.581395 0.514563 +vt 0.569767 0.514563 +vt 0.593023 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.582524 +vt 0.593023 0.582524 +vt 0.877907 0.339806 +vt 0.581395 0.514563 +vt 0.558140 0.446602 +vt 0.558140 0.446602 +vt 0.593023 0.446602 +vt 0.469513 0.889126 +vt 0.478881 0.866040 +vt 0.492825 0.850698 +vt 0.509224 0.845435 +vt 0.539406 0.866694 +vt 0.548594 0.889980 +vt 0.551745 0.917365 +vt 0.539014 0.967766 +vt 0.525070 0.983108 +vt 0.508671 0.988371 +vt 0.478489 0.967112 +vt 0.469302 0.943826 +vt 0.466150 0.916441 +vt 0.673311 0.689481 +vt 0.662275 0.745362 +vt 0.633678 0.779739 +vt 0.598443 0.779481 +vt 0.559285 0.688647 +vt 0.598917 0.598389 +vt 0.662569 0.633441 +vt 0.802326 0.708738 +vt 0.796512 0.747573 +vt 0.825581 0.951456 +vt 0.848837 0.970874 +vt 0.825581 0.951456 +vt 0.802326 0.708738 +vt 0.848837 0.970874 +vt 0.831395 0.728155 +vt 0.848837 0.970874 +vt 0.819767 0.757282 +vt 0.843023 0.718447 +vt 0.837209 0.747573 +vt 0.837209 0.728155 +vt 0.802326 0.708738 +vt 0.837209 0.728155 +vt 0.825581 0.951456 +vt 0.843023 0.718447 +vt 0.837209 0.747573 +vt 0.831395 0.728155 +vt 0.837209 0.747573 +vt 0.831395 0.728155 +vt 0.796512 0.747573 +vt 0.819767 0.757282 +vt 0.796512 0.747573 +vt 0.802326 0.708738 +vt 0.837209 0.747573 +vt 0.843023 0.718447 +vt 0.848837 0.737864 +vt 0.802326 0.708738 +vt 0.819767 0.757282 +vt 0.796512 0.747573 +vt 0.796512 0.747573 +vt 0.825581 0.951456 +vt 0.848837 0.970874 +vt 0.825581 0.951456 +vt 0.843023 0.718447 +vt 0.831395 0.961165 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.831395 0.961165 +vt 0.825581 0.951456 +vt 0.843023 0.951456 +vt 0.848837 0.970874 +vt 0.802326 0.941748 +vt 0.819767 0.757282 +vt 0.825581 0.951456 +vt 0.843023 0.951456 +vt 0.848837 0.970874 +vt 0.546512 0.291262 +vt 0.517442 0.514563 +vt 0.558140 0.203883 +vt 0.604651 0.155340 +vt 0.604651 0.203883 +vt 0.639535 0.242718 +vt 0.627907 0.155340 +vt 0.593023 0.233010 +vt 0.575581 0.223301 +vt 0.627907 0.213592 +vt 0.633721 0.194175 +vt 0.610465 0.262136 +vt 0.569767 0.184466 +vt 0.610465 0.174757 +vt 0.639535 0.184466 +vt 0.639535 0.126214 +vt 0.575581 0.165049 +vt 0.581395 0.262136 +vt 0.633721 0.135922 +vt 0.616279 0.242718 +vt 0.569767 0.213592 +vt 0.622093 0.184466 +vt 0.563953 0.135922 +vt 0.581395 0.155340 +vt 0.645349 0.165049 +vt 0.645349 0.106796 +vt 0.627907 0.271845 +vt 0.610465 0.116505 +vt 0.633721 0.252427 +vt 0.587209 0.135922 +vt 0.587209 0.116505 +vt 0.610465 0.135922 +vt 0.558140 0.155340 +vt 0.598837 0.165049 +vt 0.569767 0.242718 +vt 0.587209 0.194175 +vt 0.622093 0.223301 +vt 0.563953 0.262136 +vt 0.593023 0.184466 +vt 0.645349 0.223301 +vt 0.412791 0.961165 +vt 0.459302 0.990291 +vt 0.412791 0.990291 +vt 0.412791 0.844660 +vt 0.459302 0.873786 +vt 0.412791 0.873786 +vt 0.412791 0.728155 +vt 0.459302 0.757282 +vt 0.412791 0.757282 +vt 0.412791 0.932039 +vt 0.459302 0.961165 +vt 0.412791 0.582524 +vt 0.459302 0.611650 +vt 0.412791 0.611650 +vt 0.459302 0.786408 +vt 0.412791 0.786408 +vt 0.412791 0.902913 +vt 0.459302 0.932039 +vt 0.459302 0.902913 +vt 0.459302 0.815534 +vt 0.412791 0.815534 +vt 0.151163 0.174757 +vt 0.122093 0.233010 +vt 0.122093 0.174757 +vt 0.412791 0.640777 +vt 0.459302 0.669903 +vt 0.412791 0.669903 +vt 0.459302 0.640777 +vt 0.779070 0.485437 +vt 0.790698 0.553398 +vt 0.779070 0.533981 +vt 0.680233 0.815534 +vt 0.720930 0.834951 +vt 0.691860 0.834951 +vt 0.732558 0.902913 +vt 0.732558 0.815534 +vt 0.680233 0.902913 +vt 0.720930 0.883495 +vt 0.691860 0.660194 +vt 0.680233 0.728155 +vt 0.680233 0.640777 +vt 0.680233 0.728155 +vt 0.720930 0.747573 +vt 0.691860 0.747573 +vt 0.732558 0.815534 +vt 0.732558 0.728155 +vt 0.680233 0.815534 +vt 0.720930 0.796117 +vt 0.779070 0.660194 +vt 0.790698 0.728155 +vt 0.779070 0.708738 +vt 0.720930 0.660194 +vt 0.732558 0.728155 +vt 0.732558 0.640777 +vt 0.720930 0.708738 +vt 0.779070 0.796117 +vt 0.790698 0.728155 +vt 0.790698 0.815534 +vt 0.680233 0.553398 +vt 0.720930 0.572816 +vt 0.691860 0.572816 +vt 0.732558 0.553398 +vt 0.720930 0.621359 +vt 0.680233 0.640777 +vt 0.732349 0.640524 +vt 0.790698 0.466019 +vt 0.779070 0.398058 +vt 0.790698 0.378641 +vt 0.680233 0.466019 +vt 0.720930 0.485437 +vt 0.691860 0.485437 +vt 0.732558 0.466019 +vt 0.720930 0.533981 +vt 0.680233 0.553398 +vt 0.732558 0.553398 +vt 0.779070 0.135922 +vt 0.790698 0.203883 +vt 0.779070 0.184466 +vt 0.680233 0.378641 +vt 0.720930 0.398058 +vt 0.691860 0.398058 +vt 0.732558 0.466019 +vt 0.732558 0.378641 +vt 0.680233 0.466019 +vt 0.720930 0.446602 +vt 0.779070 0.621359 +vt 0.790698 0.553398 +vt 0.790698 0.640777 +vt 0.680233 0.291262 +vt 0.720376 0.311760 +vt 0.691860 0.310680 +vt 0.732558 0.378641 +vt 0.732558 0.291262 +vt 0.680233 0.378641 +vt 0.720930 0.359223 +vt 0.779070 0.310680 +vt 0.790698 0.378641 +vt 0.779070 0.359223 +vt 0.680233 0.203883 +vt 0.720930 0.223301 +vt 0.691860 0.223301 +vt 0.732558 0.291262 +vt 0.732558 0.203883 +vt 0.680233 0.291262 +vt 0.720930 0.271845 +vt 0.691860 0.796117 +vt 0.680233 0.116505 +vt 0.720930 0.135922 +vt 0.691860 0.135922 +vt 0.732558 0.203883 +vt 0.732558 0.116505 +vt 0.680233 0.203883 +vt 0.720930 0.184466 +vt 0.779070 0.922330 +vt 0.790698 0.990291 +vt 0.779070 0.970874 +vt 0.680233 0.902913 +vt 0.720930 0.922330 +vt 0.691860 0.922330 +vt 0.732558 0.902913 +vt 0.720930 0.970874 +vt 0.680233 0.990291 +vt 0.732558 0.990291 +vt 0.691860 0.621359 +vt 0.063954 0.281553 +vt 0.034884 0.252427 +vt 0.063954 0.242718 +vt 0.790698 0.815534 +vt 0.750000 0.834951 +vt 0.738372 0.815534 +vt 0.738372 0.902913 +vt 0.750000 0.883495 +vt 0.790698 0.902913 +vt 0.691860 0.883495 +vt 0.750000 0.747573 +vt 0.738372 0.728155 +vt 0.738372 0.815534 +vt 0.750000 0.796117 +vt 0.691860 0.271845 +vt 0.790698 0.640777 +vt 0.750000 0.660194 +vt 0.738372 0.640777 +vt 0.738372 0.728155 +vt 0.750000 0.708738 +vt 0.779070 0.223301 +vt 0.790698 0.291262 +vt 0.779070 0.271845 +vt 0.750000 0.572816 +vt 0.738372 0.553398 +vt 0.750000 0.621359 +vt 0.738581 0.640524 +vt 0.779070 0.834951 +vt 0.779070 0.883495 +vt 0.790698 0.466019 +vt 0.750000 0.485437 +vt 0.738372 0.466019 +vt 0.750000 0.533981 +vt 0.738372 0.553398 +vt 0.691860 0.533981 +vt 0.750000 0.398058 +vt 0.738372 0.378641 +vt 0.738372 0.466019 +vt 0.750000 0.446602 +vt 0.790698 0.291262 +vt 0.750554 0.311760 +vt 0.738372 0.291262 +vt 0.750000 0.359223 +vt 0.738372 0.378641 +vt 0.790698 0.203883 +vt 0.750000 0.223301 +vt 0.738372 0.203883 +vt 0.738372 0.291262 +vt 0.750000 0.271845 +vt 0.790698 0.116505 +vt 0.750000 0.135922 +vt 0.738372 0.116505 +vt 0.750000 0.184466 +vt 0.738372 0.203883 +vt 0.790698 0.902913 +vt 0.750000 0.922330 +vt 0.738372 0.902913 +vt 0.738372 0.990291 +vt 0.750000 0.970874 +vt 0.412791 0.524272 +vt 0.459302 0.553398 +vt 0.412791 0.553398 +vt 0.459302 0.844660 +vt 0.412791 0.699029 +vt 0.459302 0.728155 +vt 0.459302 0.699029 +vt 0.459302 0.582524 +vt 0.267442 0.951456 +vt 0.238372 0.980583 +vt 0.238372 0.941748 +vt 0.267442 0.485437 +vt 0.238372 0.514563 +vt 0.238372 0.475728 +vt 0.180233 0.524272 +vt 0.151163 0.582524 +vt 0.151163 0.524272 +vt 0.005814 0.553398 +vt 0.034884 0.543689 +vt 0.034884 0.563107 +vt 0.122093 0.116505 +vt 0.093023 0.169903 +vt 0.093023 0.121359 +vt 0.122093 0.699029 +vt 0.093023 0.752427 +vt 0.093023 0.703884 +vt 0.267442 0.543689 +vt 0.296512 0.553398 +vt 0.267442 0.563107 +vt 0.063954 0.708738 +vt 0.151163 0.466019 +vt 0.238372 0.417476 +vt 0.267442 0.446602 +vt 0.238372 0.456311 +vt 0.063954 0.165049 +vt 0.034884 0.135922 +vt 0.063954 0.126214 +vt 0.151163 0.932039 +vt 0.122093 0.990291 +vt 0.122093 0.932039 +vt 0.005814 0.611650 +vt 0.034884 0.601942 +vt 0.034884 0.621359 +vt 0.122093 0.640777 +vt 0.093023 0.694175 +vt 0.093023 0.645631 +vt 0.209302 0.228155 +vt 0.180233 0.174757 +vt 0.209302 0.179612 +vt 0.267442 0.601942 +vt 0.296512 0.611651 +vt 0.267442 0.621359 +vt 0.238372 0.592233 +vt 0.209302 0.635922 +vt 0.209302 0.587379 +vt 0.122093 0.582524 +vt 0.180233 0.407767 +vt 0.151163 0.349515 +vt 0.180233 0.349515 +vt 0.267442 0.213592 +vt 0.238372 0.184466 +vt 0.267442 0.194175 +vt 0.267442 0.155340 +vt 0.238372 0.126214 +vt 0.267442 0.135922 +vt 0.151163 0.640777 +vt 0.180233 0.699029 +vt 0.151163 0.699029 +vt 0.238372 0.223301 +vt 0.005814 0.669903 +vt 0.034884 0.660194 +vt 0.034884 0.679612 +vt 0.093023 0.228155 +vt 0.093023 0.179612 +vt 0.180233 0.640777 +vt 0.180233 0.582524 +vt 0.267442 0.660194 +vt 0.296512 0.669903 +vt 0.267442 0.679612 +vt 0.063954 0.223301 +vt 0.063954 0.184466 +vt 0.267442 0.718447 +vt 0.296512 0.728155 +vt 0.267442 0.737864 +vt 0.093023 0.762136 +vt 0.063954 0.805825 +vt 0.063954 0.766990 +vt 0.151163 0.116505 +vt 0.267442 0.252427 +vt 0.238372 0.281553 +vt 0.238372 0.242718 +vt 0.034884 0.796116 +vt 0.034884 0.776699 +vt 0.180233 0.233010 +vt 0.151163 0.291262 +vt 0.151163 0.233010 +vt 0.093023 0.529126 +vt 0.063954 0.572816 +vt 0.063954 0.533981 +vt 0.005814 0.728155 +vt 0.034884 0.718447 +vt 0.034884 0.737864 +vt 0.093023 0.286408 +vt 0.093023 0.237864 +vt 0.209302 0.286408 +vt 0.209302 0.237864 +vt 0.122093 0.058252 +vt 0.093023 0.111651 +vt 0.093023 0.063107 +vt 0.093023 0.878641 +vt 0.093023 0.927184 +vt 0.267442 0.776699 +vt 0.296512 0.786408 +vt 0.267442 0.796117 +vt 0.122093 0.291262 +vt 0.238372 0.747573 +vt 0.238372 0.708738 +vt 0.063954 0.980583 +vt 0.034884 0.951456 +vt 0.063954 0.941748 +vt 0.180233 0.757282 +vt 0.151163 0.815534 +vt 0.151163 0.757282 +vt 0.209302 0.752427 +vt 0.209302 0.703884 +vt 0.005814 0.786408 +vt 0.063954 0.883495 +vt 0.005814 0.844660 +vt 0.034884 0.834951 +vt 0.034884 0.854369 +vt 0.122093 0.407767 +vt 0.093023 0.461165 +vt 0.093023 0.412621 +vt 0.209302 0.461165 +vt 0.209302 0.412621 +vt 0.267442 0.834952 +vt 0.296512 0.844660 +vt 0.267442 0.854369 +vt 0.238372 0.864078 +vt 0.209302 0.820388 +vt 0.238372 0.825243 +vt 0.122093 0.466019 +vt 0.180233 0.873786 +vt 0.151163 0.873786 +vt 0.180233 0.932039 +vt 0.093023 0.470874 +vt 0.063954 0.514563 +vt 0.063954 0.475728 +vt 0.005814 0.902913 +vt 0.034884 0.893204 +vt 0.034884 0.912621 +vt 0.122093 0.524272 +vt 0.093023 0.519417 +vt 0.093023 0.820388 +vt 0.063954 0.864078 +vt 0.063954 0.825243 +vt 0.267442 0.893204 +vt 0.296512 0.902913 +vt 0.267442 0.912621 +vt 0.063954 0.689320 +vt 0.063954 0.650485 +vt 0.063954 0.631068 +vt 0.063954 0.592233 +vt 0.238372 0.883495 +vt 0.238372 0.922330 +vt 0.238372 0.067961 +vt 0.267442 0.097087 +vt 0.238372 0.106796 +vt 0.063954 0.067961 +vt 0.034884 0.097087 +vt 0.034884 0.077670 +vt 0.180233 0.990291 +vt 0.209302 0.063107 +vt 0.209302 0.111651 +vt 0.005814 0.961165 +vt 0.034884 0.970874 +vt 0.180233 0.116505 +vt 0.180233 0.058252 +vt 0.209302 0.121359 +vt 0.296512 0.961165 +vt 0.267442 0.970874 +vt 0.063953 0.106796 +vt 0.151163 0.058252 +vt 0.180233 0.815534 +vt 0.238372 0.766990 +vt 0.034884 0.485437 +vt 0.005814 0.087379 +vt 0.209302 0.694175 +vt 0.209302 0.645631 +vt 0.209302 0.985437 +vt 0.209302 0.936893 +vt 0.267442 0.077670 +vt 0.296512 0.087379 +vt 0.122093 0.349515 +vt 0.093023 0.402913 +vt 0.093023 0.354369 +vt 0.296512 0.145631 +vt 0.238372 0.300971 +vt 0.209302 0.344660 +vt 0.209302 0.296116 +vt 0.122093 0.757282 +vt 0.122093 0.815534 +vt 0.063954 0.417476 +vt 0.034884 0.446602 +vt 0.034884 0.427184 +vt 0.238372 0.359223 +vt 0.267442 0.388349 +vt 0.238372 0.398058 +vt 0.063954 0.359223 +vt 0.063954 0.398058 +vt 0.005814 0.145631 +vt 0.034884 0.155340 +vt 0.093023 0.985437 +vt 0.093023 0.936893 +vt 0.209302 0.927184 +vt 0.093023 0.587379 +vt 0.093023 0.635922 +vt 0.296512 0.203884 +vt 0.238372 0.689320 +vt 0.122093 0.873786 +vt 0.005814 0.203883 +vt 0.034884 0.194175 +vt 0.034884 0.213592 +vt 0.209302 0.762136 +vt 0.238372 0.805825 +vt 0.209302 0.810680 +vt 0.005814 0.262136 +vt 0.034884 0.271845 +vt 0.093023 0.577670 +vt 0.209302 0.529126 +vt 0.296512 0.262136 +vt 0.267442 0.271845 +vt 0.238372 0.572816 +vt 0.238372 0.533981 +vt 0.063954 0.747573 +vt 0.267442 0.330097 +vt 0.267442 0.310680 +vt 0.063954 0.300971 +vt 0.093023 0.344660 +vt 0.063954 0.339806 +vt 0.005814 0.320388 +vt 0.034884 0.310680 +vt 0.034884 0.330097 +vt 0.093023 0.810680 +vt 0.296512 0.320388 +vt 0.209302 0.878641 +vt 0.238372 0.631068 +vt 0.034884 0.368932 +vt 0.063954 0.456311 +vt 0.005814 0.378641 +vt 0.034884 0.388349 +vt 0.209302 0.354369 +vt 0.209302 0.470874 +vt 0.180233 0.466019 +vt 0.267442 0.368932 +vt 0.296512 0.378641 +vt 0.209302 0.402913 +vt 0.267442 0.427184 +vt 0.296512 0.436893 +vt 0.151163 0.407767 +vt 0.238372 0.650485 +vt 0.005814 0.436893 +vt 0.180233 0.291262 +vt 0.296512 0.495146 +vt 0.267442 0.504854 +vt 0.209302 0.169903 +vt 0.005814 0.495146 +vt 0.034884 0.504854 +vt 0.093023 0.296116 +vt 0.691860 0.708738 +vt 0.691860 0.446602 +vt 0.691860 0.359223 +vt 0.691860 0.184466 +vt 0.691860 0.970874 +vt 0.779070 0.747573 +vt 0.779070 0.572816 +vt 0.779070 0.446602 +vt 0.459302 0.524272 +vt 0.151163 0.990291 +vt 0.238372 0.165049 +vt 0.063954 0.922330 +vt 0.209302 0.868932 +vt 0.093023 0.868932 +vt 0.238372 0.339806 +vt 0.209302 0.577670 +vt 0.209302 0.519417 +vn 0.7071 0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9848 -0.1736 -0.0000 +vn -0.9848 0.1736 0.0000 +vn 0.1736 -0.9848 -0.0000 +vn 0.9848 -0.1736 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.1736 -0.9848 0.0000 +vn 0.9848 0.1736 0.0000 +vn 0.1736 0.9848 0.0000 +vn -0.1736 0.9848 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.2575 -0.1067 -0.9604 +vn 0.9239 -0.3827 0.0000 +vn -0.1066 -0.2575 0.9604 +vn 0.6725 0.2185 -0.7071 +vn 0.3675 0.8873 -0.2787 +vn -0.3827 0.9239 0.0000 +vn 0.1067 -0.2575 0.9604 +vn 0.1066 -0.2575 0.9604 +vn -0.9239 0.3827 0.0000 +vn -0.1067 -0.2575 0.9604 +vn 0.2575 -0.1066 -0.9604 +vn -0.9239 -0.3827 -0.0000 +vn -0.3675 0.8873 -0.2787 +vn 0.6725 0.2185 0.7071 +vn -0.1067 0.2575 -0.9604 +vn -0.1066 0.2575 0.9604 +vn 0.3675 0.8873 0.2787 +vn -0.1067 0.2575 0.9604 +vn -0.8090 0.5878 -0.0000 +vn -0.2575 -0.1067 -0.9604 +vn -0.1067 -0.2575 -0.9604 +vn 0.1066 0.2575 0.9604 +vn -0.3675 0.8873 0.2787 +vn 0.1067 0.2575 0.9604 +vn 0.1066 -0.2575 -0.9604 +vn -0.1066 -0.2575 -0.9604 +vn 0.3675 -0.8873 -0.2787 +vn 0.2575 0.1066 -0.9604 +vn -0.3675 -0.8873 -0.2787 +vn -0.4156 -0.5721 0.7071 +vn 0.1067 -0.2575 -0.9604 +vn 0.3827 -0.9239 -0.0000 +vn 0.3675 -0.8873 0.2787 +vn 0.1067 0.2575 -0.9604 +vn -0.8090 -0.5878 0.0000 +vn 0.1066 0.2575 -0.9604 +vn -0.3675 -0.8873 0.2787 +vn -0.1066 0.2575 -0.9604 +vn -0.4156 -0.5721 -0.7071 +vn 0.4156 0.5721 0.7071 +vn -0.3090 -0.9511 -0.0000 +vn 0.8090 -0.5878 0.0000 +vn 0.3090 0.9511 -0.0000 +vn 0.6725 -0.2185 0.7071 +vn -0.3090 0.9511 -0.0000 +vn -0.6725 0.2185 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.3090 -0.9511 0.0000 +vn -0.2575 -0.1066 -0.9604 +vn -0.6725 0.2185 0.7071 +vn -0.6725 -0.2185 0.7071 +vn 0.4156 -0.5721 -0.7071 +vn -0.4156 0.5721 0.7071 +vn 0.8090 0.5878 0.0000 +vn 0.4156 0.5721 -0.7071 +vn 0.6725 -0.2185 -0.7071 +vn -0.3827 -0.9239 -0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.6725 -0.2185 -0.7071 +vn -0.4156 0.5721 -0.7071 +vn 0.4156 -0.5721 0.7071 +vn -0.4156 0.5720 -0.7071 +vn 0.3827 0.9239 0.0000 +vn 0.8873 -0.3675 -0.2787 +vn -0.2575 0.1067 0.9604 +vn 0.2575 0.1067 -0.9604 +vn -0.2575 -0.1067 0.9604 +vn 0.8873 0.3675 -0.2787 +vn -0.2575 -0.1066 0.9604 +vn 0.2575 0.1067 0.9604 +vn 0.2575 -0.1067 0.9604 +vn -0.2575 0.1066 -0.9604 +vn 0.8873 -0.3675 0.2787 +vn -0.2575 0.1067 -0.9604 +vn 0.2575 -0.1066 0.9604 +vn 0.8873 0.3675 0.2787 +vn 0.2575 0.1066 0.9604 +vn -0.8873 -0.3675 -0.2787 +vn -0.8873 0.3675 -0.2787 +vn -0.8873 -0.3675 0.2787 +vn -0.2575 0.1066 0.9604 +vn -0.8873 0.3675 0.2787 +vn -0.4156 0.5720 0.7071 +vn -0.9848 0.1737 0.0000 +vn -0.6688 -0.6688 0.3245 +vn -0.6325 -0.6325 0.4472 +vn 0.6325 -0.6325 0.4472 +vn 0.6688 -0.6688 0.3245 +vn -0.6688 -0.6688 -0.3245 +vn 0.6325 -0.6325 -0.4472 +vn 0.6688 -0.6688 -0.3245 +vn -0.8803 -0.3646 -0.3034 +vn -0.6738 -0.6738 -0.3034 +vn -0.6325 -0.6325 -0.4472 +vn 0.0000 -0.8348 0.5506 +vn -0.2539 -0.7815 0.5698 +vn 0.2539 0.7815 -0.5698 +vn 0.4907 0.6754 -0.5506 +vn 0.6648 0.4830 -0.5698 +vn 0.7939 -0.2580 -0.5506 +vn 0.6648 -0.4830 -0.5698 +vn 0.8218 -0.0000 -0.5698 +vn 0.7939 0.2580 -0.5506 +vn 0.7939 -0.2580 0.5506 +vn 0.6648 -0.4830 0.5698 +vn 0.7939 0.2580 0.5506 +vn 0.6648 0.4830 0.5698 +vn 0.8218 0.0000 0.5698 +vn 0.4907 -0.6754 -0.5506 +vn 0.2539 -0.7815 -0.5698 +vn -0.6648 -0.4830 0.5698 +vn -0.4907 -0.6754 0.5506 +vn -0.0000 -0.8348 -0.5506 +vn -0.2539 -0.7815 -0.5698 +vn -0.4907 0.6754 0.5506 +vn -0.2539 0.7815 0.5698 +vn -0.4907 -0.6754 -0.5506 +vn -0.6648 -0.4830 -0.5698 +vn 0.4907 -0.6754 0.5506 +vn 0.2539 -0.7815 0.5698 +vn -0.7939 -0.2580 -0.5506 +vn -0.8218 -0.0000 -0.5698 +vn -0.7939 -0.2580 0.5506 +vn -0.8218 0.0000 0.5698 +vn -0.7939 0.2580 -0.5506 +vn -0.6648 0.4830 -0.5698 +vn -0.4907 0.6754 -0.5506 +vn -0.2539 0.7815 -0.5698 +vn 0.0000 0.8348 0.5506 +vn 0.2539 0.7815 0.5698 +vn 0.0000 0.8348 -0.5506 +vn -0.6003 0.0000 -0.7998 +vn -0.3016 -0.1249 -0.9452 +vn -0.5546 -0.2297 -0.7998 +vn 0.4907 0.6754 0.5506 +vn -0.7939 0.2580 0.5506 +vn -0.6648 0.4830 0.5698 +vn 0.6325 0.6325 0.4472 +vn 0.6688 0.6688 0.3245 +vn -0.6325 0.6325 -0.4472 +vn -0.6688 0.6688 -0.3245 +vn -0.6325 0.6325 0.4472 +vn -0.6688 0.6688 0.3245 +vn 0.6688 0.6688 -0.3245 +vn 0.6325 0.6325 -0.4472 +vn 0.1249 -0.3016 0.9452 +vn -0.0000 -0.6003 0.7998 +vn 0.2297 -0.5546 0.7998 +vn -0.1249 0.3016 0.9452 +vn -0.0000 0.6003 0.7998 +vn -0.2297 0.5546 0.7998 +vn -0.0000 0.9528 0.3034 +vn 0.0000 0.3265 -0.9452 +vn 0.1249 0.3016 -0.9452 +vn -0.3646 -0.8803 -0.3034 +vn -0.5767 -0.5767 -0.5787 +vn -0.3121 -0.7535 -0.5787 +vn 0.8803 0.3646 -0.3034 +vn 0.8155 -0.0000 -0.5787 +vn 0.7535 0.3121 -0.5787 +vn -0.0000 0.3265 0.9452 +vn 0.1249 0.3016 0.9452 +vn 0.5546 0.2297 -0.7998 +vn -0.4245 0.4245 0.7998 +vn -0.4245 -0.4245 -0.7998 +vn -0.1249 -0.3016 -0.9452 +vn -0.2297 -0.5546 -0.7998 +vn 0.0000 -0.9528 -0.3034 +vn 0.3646 -0.8803 -0.3034 +vn 0.2309 0.2309 -0.9452 +vn 0.6738 0.6738 -0.3034 +vn 0.5767 0.5767 -0.5787 +vn -0.7535 -0.3121 0.5787 +vn -0.6738 -0.6738 0.3034 +vn -0.5767 -0.5767 0.5787 +vn 0.2309 0.2309 0.9452 +vn 0.2297 0.5546 0.7998 +vn 0.5767 0.5767 0.5787 +vn 0.3121 0.7535 0.5787 +vn 0.3646 0.8803 -0.3034 +vn -0.6738 0.6738 0.3034 +vn -0.8803 0.3646 0.3034 +vn -0.3016 -0.1249 0.9452 +vn -0.4245 -0.4245 0.7998 +vn -0.2309 -0.2309 0.9452 +vn -0.2297 -0.5546 0.7998 +vn -0.1249 -0.3016 0.9452 +vn 0.8803 0.3646 0.3034 +vn -0.5546 -0.2297 0.7998 +vn 0.3016 0.1249 -0.9452 +vn -0.7535 -0.3121 -0.5787 +vn 0.6738 0.6738 0.3034 +vn 0.3646 0.8803 0.3034 +vn 0.3016 0.1249 0.9452 +vn 0.3265 -0.0000 0.9452 +vn 0.5546 -0.2297 -0.7998 +vn 0.6003 -0.0000 -0.7998 +vn -0.6003 0.0000 0.7998 +vn 0.3016 -0.1249 -0.9452 +vn 0.3265 -0.0000 -0.9452 +vn -0.8803 -0.3646 0.3034 +vn -0.0000 0.8155 -0.5787 +vn 0.2297 0.5546 -0.7998 +vn -0.0000 0.6003 -0.7998 +vn -0.8155 0.0000 -0.5787 +vn -0.8155 0.0000 0.5787 +vn -0.0000 -0.8155 -0.5787 +vn 0.5767 -0.5767 -0.5787 +vn 0.3121 -0.7535 -0.5787 +vn 0.3016 -0.1249 0.9452 +vn -0.9528 -0.0000 -0.3034 +vn 0.6003 -0.0000 0.7998 +vn 0.5546 0.2297 0.7998 +vn -0.0000 -0.6003 -0.7998 +vn 0.1249 -0.3016 -0.9452 +vn 0.2297 -0.5546 -0.7998 +vn 0.9528 -0.0000 0.3034 +vn 0.8155 -0.0000 0.5787 +vn 0.7535 0.3121 0.5787 +vn 0.4245 -0.4245 -0.7998 +vn 0.2309 -0.2309 -0.9452 +vn -0.6738 0.6738 -0.3034 +vn -0.3121 0.7535 -0.5787 +vn -0.5767 0.5767 -0.5787 +vn -0.3121 0.7535 0.5787 +vn -0.5767 0.5767 0.5787 +vn 0.2309 -0.2309 0.9452 +vn 0.4245 -0.4245 0.7998 +vn 0.7535 -0.3121 0.5787 +vn 0.5546 -0.2297 0.7998 +vn -0.3646 0.8803 -0.3034 +vn 0.6738 -0.6738 0.3034 +vn 0.3646 -0.8803 0.3034 +vn -0.2297 0.5546 -0.7998 +vn -0.0000 0.9528 -0.3034 +vn 0.7535 -0.3121 -0.5787 +vn 0.4245 0.4245 -0.7998 +vn 0.0000 -0.3265 -0.9452 +vn 0.0000 -0.9528 0.3034 +vn -0.0000 -0.8155 0.5787 +vn -0.3121 -0.7535 0.5787 +vn -0.3646 -0.8803 0.3034 +vn 0.0000 -0.3265 0.9452 +vn 0.8803 -0.3646 0.3034 +vn -0.1249 0.3016 -0.9452 +vn 0.3121 -0.7535 0.5787 +vn -0.8803 0.3646 -0.3034 +vn -0.7535 0.3121 -0.5787 +vn -0.7535 0.3121 0.5787 +vn 0.9528 0.0000 -0.3034 +vn 0.8803 -0.3646 -0.3034 +vn -0.4245 0.4245 -0.7998 +vn -0.2309 0.2309 -0.9452 +vn -0.5546 0.2297 0.7998 +vn -0.2309 0.2309 0.9452 +vn -0.5546 0.2297 -0.7998 +vn -0.2309 -0.2309 -0.9452 +vn 0.3121 0.7535 -0.5787 +vn 0.6738 -0.6738 -0.3034 +vn -0.3265 -0.0000 -0.9452 +vn -0.0000 0.8155 0.5787 +vn -0.3265 -0.0000 0.9452 +vn -0.3016 0.1249 0.9452 +vn -0.3016 0.1249 -0.9452 +vn 0.5767 -0.5767 0.5787 +vn 0.4245 0.4245 0.7998 +vn -0.3646 0.8803 0.3034 +vn -0.9528 0.0000 0.3034 +s off +f 949/1141/825 946/1142/825 947/1143/825 +f 967/1144/826 962/1145/826 960/1146/826 +f 1030/1147/827 1025/1148/827 1028/1149/827 +f 961/1150/828 964/1151/828 966/1152/828 +f 1031/1153/829 1028/1149/829 1029/1154/829 +f 920/1155/830 925/1156/830 923/1157/830 +f 1516/1158/831 944/1159/831 941/1160/831 +f 1027/1161/832 1026/1162/832 1024/1163/832 +f 1331/1164/825 1332/1165/825 1329/1166/825 +f 1012/1167/827 1010/1168/827 1008/1169/827 +f 923/1170/826 919/1171/826 922/1172/826 +f 929/1173/825 926/1174/825 932/1175/825 +f 1013/1176/832 1008/1169/832 1010/1177/832 +f 924/1178/833 913/1179/833 915/1180/833 +f 918/1181/831 914/1182/831 916/1183/831 +f 999/1184/829 995/1185/829 997/1186/829 +f 991/1187/834 987/1188/834 989/1189/834 +f 1004/1190/835 1002/1191/835 1000/1192/835 +f 947/1143/831 946/1193/831 944/1159/831 +f 1516/1158/828 949/1141/828 947/1143/828 +f 948/1194/830 940/1195/830 934/1196/830 +f 971/1197/835 970/1198/835 968/1199/835 +f 943/1200/833 934/1201/833 941/1202/833 +f 1022/1203/836 1017/1204/836 1020/1205/836 +f 1007/1206/837 1003/1207/837 1005/1208/837 +f 1003/1207/830 1004/1190/830 1000/1192/830 +f 941/1209/831 945/1210/831 943/1200/831 +f 985/1211/830 989/1212/830 986/1213/830 +f 958/1214/833 954/1215/833 952/1216/833 +f 983/1217/830 978/1218/830 982/1219/830 +f 919/1171/838 914/1182/838 917/1220/838 +f 1029/1154/830 1025/1148/830 1027/1161/830 +f 951/1221/826 944/1222/826 946/1142/826 +f 1024/1223/825 1029/1154/825 1027/1161/825 +f 922/1172/826 917/1220/826 918/1224/826 +f 1016/1225/831 1022/1226/831 1023/1227/831 +f 989/1228/836 984/1229/836 986/1230/836 +f 934/1231/828 939/1232/828 942/1233/828 +f 994/1234/830 999/1184/830 997/1186/830 +f 1014/1235/830 1008/1169/830 1011/1236/830 +f 974/1237/839 969/1238/839 972/1239/839 +f 976/1240/829 981/1241/829 979/1242/829 +f 1019/1243/830 1020/1205/830 1017/1204/830 +f 968/1199/830 974/1244/830 975/1245/830 +f 1005/1246/839 1000/1192/839 1002/1247/839 +f 981/1241/831 977/1248/831 979/1242/831 +f 931/1249/833 913/1250/833 920/1251/833 +f 998/1252/831 992/1253/831 995/1185/831 +f 987/1188/831 988/1254/831 984/1229/831 +f 971/1197/831 972/1239/831 969/1238/831 +f 1023/1255/834 1020/1205/834 1021/1256/834 +f 937/1257/833 935/1258/833 933/1259/833 +f 950/1260/833 934/1261/833 940/1262/833 +f 1031/1153/831 1026/1263/831 1030/1264/831 +f 997/1265/827 992/1253/827 994/1266/827 +f 1019/1243/840 1018/1267/840 1016/1225/840 +f 944/1268/826 938/1269/826 945/1210/826 +f 1001/1270/841 1006/1271/841 1007/1272/841 +f 988/1254/840 986/1213/840 984/1229/840 +f 942/1273/826 936/1274/826 938/1269/826 +f 945/1210/838 935/1258/838 943/1200/838 +f 963/1275/838 960/1146/838 962/1145/838 +f 952/1216/828 955/1276/828 958/1214/828 +f 1016/1277/842 1021/1256/842 1019/1243/842 +f 993/1278/825 998/1252/825 999/1279/825 +f 1516/1158/829 940/1262/829 948/1194/829 +f 939/1232/830 933/1259/830 936/1274/830 +f 959/1280/826 957/1281/826 955/1276/826 +f 932/1175/826 923/1282/826 922/1283/826 +f 975/1284/837 972/1239/837 973/1285/837 +f 938/1269/838 933/1259/838 935/1258/838 +f 966/1152/833 965/1286/833 963/1287/833 +f 925/1156/838 915/1180/838 919/1171/838 +f 985/1288/842 990/1289/842 991/1290/842 +f 996/1291/832 994/1292/832 992/1253/832 +f 913/1293/828 918/1181/828 916/1183/828 +f 1009/1294/829 1014/1235/829 1015/1295/829 +f 1241/1296/831 1277/1297/831 1275/1298/831 +f 1238/1299/830 1270/1300/830 1271/1301/830 +f 1267/1302/830 1270/1303/830 1240/1304/830 +f 1244/1305/830 1271/1306/830 1274/1307/830 +f 1320/1308/825 1329/1166/825 1332/1165/825 +f 1209/1309/831 1178/1310/831 1180/1311/831 +f 1215/1312/830 1181/1313/830 1210/1314/830 +f 1284/1315/830 1249/1316/830 1282/1317/830 +f 1251/1318/831 1287/1319/831 1285/1320/831 +f 1250/1321/831 1279/1322/831 1248/1323/831 +f 1230/1324/830 1194/1325/830 1225/1326/830 +f 1249/1316/830 1280/1327/830 1282/1328/830 +f 1252/1329/831 1285/1330/831 1283/1331/831 +f 1206/1332/830 1179/1333/830 1177/1334/830 +f 1223/1335/830 1187/1336/830 1219/1337/830 +f 1223/1338/830 1192/1339/830 1190/1340/830 +f 1269/1341/831 1299/1342/831 1268/1343/831 +f 1255/1344/830 1286/1345/830 1288/1346/830 +f 1290/1347/830 1255/1344/830 1288/1348/830 +f 1224/1349/831 1191/1350/831 1193/1351/831 +f 1265/1352/830 1296/1353/830 1298/1354/830 +f 1257/1355/830 1292/1356/830 1259/1357/830 +f 1233/1358/830 1198/1359/830 1229/1360/830 +f 1195/1361/831 1228/1362/831 1227/1363/831 +f 1264/1364/831 1293/1365/831 1262/1366/831 +f 1197/1367/831 1231/1368/831 1228/1369/831 +f 1297/1370/831 1268/1343/831 1299/1371/831 +f 1218/1372/831 1186/1373/831 1188/1374/831 +f 1177/1334/830 1207/1375/830 1206/1376/830 +f 1267/1302/830 1298/1377/830 1300/1378/830 +f 1214/1379/830 1217/1380/830 1185/1381/830 +f 1203/1382/831 1237/1383/831 1234/1384/831 +f 1015/1385/825 1011/1236/825 1013/1386/825 +f 982/1387/832 977/1248/832 980/1388/832 +f 983/1217/825 980/1388/825 981/1241/825 +f 979/1242/827 978/1389/827 976/1390/827 +f 930/1391/829 921/1392/829 931/1249/829 +f 956/1393/838 953/1394/838 957/1395/838 +f 930/1391/828 929/1173/828 927/1396/828 +f 1242/1397/831 1273/1398/831 1239/1399/831 +f 1237/1400/831 1175/1401/831 1205/1402/831 +f 1272/1403/831 1241/1296/831 1275/1404/831 +f 1205/1405/831 1178/1310/831 1208/1406/831 +f 1210/1407/830 1179/1333/830 1211/1408/830 +f 1276/1409/830 1244/1305/830 1274/1410/830 +f 1212/1411/831 1180/1311/831 1182/1412/831 +f 1243/1413/830 1278/1414/830 1245/1415/830 +f 1185/1381/830 1215/1416/830 1214/1417/830 +f 1259/1357/830 1294/1418/830 1261/1419/830 +f 1213/1420/831 1186/1373/831 1216/1421/831 +f 1233/1422/830 1202/1423/830 1200/1424/830 +f 1258/1425/831 1291/1426/831 1289/1427/831 +f 1260/1428/831 1293/1429/831 1291/1430/831 +f 1287/1431/831 1258/1425/831 1289/1432/831 +f 1254/1433/830 1286/1434/830 1253/1435/830 +f 1221/1436/831 1191/1350/831 1222/1437/831 +f 1188/1374/831 1221/1438/831 1218/1439/831 +f 1219/1440/830 1217/1380/830 1220/1441/830 +f 1225/1442/830 1192/1339/830 1226/1443/830 +f 1281/1444/831 1252/1329/831 1283/1445/831 +f 1193/1351/831 1227/1446/831 1224/1447/831 +f 1198/1359/830 1230/1448/830 1229/1449/830 +f 1261/1419/830 1296/1450/830 1263/1451/830 +f 1264/1364/831 1297/1452/831 1295/1453/831 +f 1212/1454/831 1184/1455/831 1213/1456/831 +f 1231/1457/831 1201/1458/831 1232/1459/831 +f 1245/1415/830 1280/1460/830 1247/1461/830 +f 1232/1462/831 1203/1382/831 1234/1463/831 +f 1204/1464/830 1236/1465/830 1235/1466/830 +f 1269/1341/831 1273/1467/831 1301/1468/831 +f 1207/1469/830 1204/1464/830 1235/1470/830 +f 1320/1308/825 1321/1471/825 1322/1472/825 +f 1001/1473/831 1005/1474/831 1002/1191/831 +f 1367/1475/829 1369/1476/829 1355/1477/829 +f 1346/1478/825 1347/1479/825 1342/1480/825 +f 1010/1481/831 1015/1385/831 1013/1386/831 +f 1325/1482/827 1324/1483/827 1333/1484/827 +f 1357/1485/829 1358/1486/829 1359/1487/829 +f 1334/1488/825 1335/1489/825 1321/1471/825 +f 1323/1490/827 1333/1484/827 1324/1483/827 +f 1310/1491/829 1302/1492/829 1315/1493/829 +f 1307/1494/832 1308/1495/832 1309/1496/832 +f 1359/1487/829 1361/1497/829 1364/1498/829 +f 1304/1499/829 1306/1500/829 1319/1501/829 +f 1325/1482/827 1326/1502/827 1327/1503/827 +f 1302/1492/829 1303/1504/829 1304/1499/829 +f 1315/1493/829 1316/1505/829 1310/1491/829 +f 1330/1506/827 1328/1507/827 1326/1502/827 +f 1317/1508/832 1307/1494/832 1318/1509/832 +f 1341/1510/825 1340/1511/825 1349/1512/825 +f 1344/1513/827 1348/1514/827 1345/1515/827 +f 1354/1516/832 1356/1517/832 1368/1518/832 +f 1336/1519/827 1337/1520/827 1338/1521/827 +f 1341/1510/825 1342/1480/825 1343/1522/825 +f 1309/1496/832 1311/1523/832 1314/1524/832 +f 1365/1525/832 1360/1526/832 1366/1527/832 +f 1336/1519/827 1345/1515/827 1348/1514/827 +f 968/1528/841 973/1285/841 971/1197/841 +f 1366/1527/832 1352/1529/832 1365/1525/832 +f 1351/1530/825 1349/1512/825 1340/1511/825 +f 923/1531/830 930/1391/830 920/1532/830 +f 1352/1529/832 1353/1533/832 1354/1516/832 +f 1355/1477/829 1357/1485/829 1367/1475/829 +f 1318/1509/832 1305/1534/832 1317/1508/832 +f 1350/1535/827 1339/1536/827 1337/1520/827 +f 1164/1537/830 1125/1538/830 1126/1539/830 +f 1246/1540/831 1279/1541/831 1277/1542/831 +f 931/1543/830 920/1532/830 930/1391/830 +f 923/1531/830 926/1544/830 928/1545/830 +f 932/1546/831 922/1547/831 929/1173/831 +f 913/1548/831 921/1549/831 927/1396/831 +f 949/1141/830 934/1196/830 942/1550/830 +f 941/1160/831 950/1551/831 1516/1158/831 +f 913/1548/831 929/1173/831 922/1547/831 +f 942/1550/830 951/1552/830 949/1141/830 +f 1045/1553/830 1039/1554/830 1063/1555/830 +f 1072/1556/831 1064/1557/831 1065/1558/831 +f 1126/1539/830 1127/1559/830 1169/1560/830 +f 1169/1560/830 1164/1537/830 1126/1539/830 +f 1124/1561/830 1155/1562/830 1150/1563/830 +f 1150/1563/830 1145/1564/830 1125/1538/830 +f 1125/1538/830 1136/1565/830 1126/1539/830 +f 1124/1561/830 1150/1563/830 1125/1538/830 +f 916/1566/833 915/1180/833 913/1179/833 +f 1587/1567/843 1588/1568/843 1589/1569/843 +f 1872/1570/844 1867/1571/844 1870/1572/844 +f 1578/1573/845 1574/1574/845 1576/1575/845 +f 1631/1576/846 1621/1577/846 1625/1578/846 +f 1802/1579/847 1796/1580/847 1801/1581/847 +f 1549/1582/848 1542/1583/848 1539/1584/848 +f 1550/1585/848 1544/1586/848 1542/1583/848 +f 1546/1587/848 1551/1588/848 1544/1586/848 +f 1548/1589/848 1539/1584/848 1551/1588/848 +f 1888/1590/849 1884/1591/849 1882/1592/849 +f 1617/1593/850 1613/1594/850 1615/1595/850 +f 1598/1596/851 1600/1597/851 1594/1598/851 +f 1575/1599/852 1573/1600/852 1571/1601/852 +f 1574/1602/853 1572/1603/853 1575/1604/853 +f 1850/1605/849 1846/1606/849 1848/1607/849 +f 1861/1608/854 1864/1609/854 1866/1610/854 +f 1594/1611/855 1595/1612/855 1596/1613/855 +f 1557/1614/856 1566/1615/856 1567/1616/856 +f 1556/1617/856 1564/1618/856 1566/1615/856 +f 1564/1618/856 1562/1619/856 1565/1620/856 +f 1565/1620/856 1557/1614/856 1567/1616/856 +f 1729/1621/857 1724/1622/857 1722/1623/857 +f 1549/1624/852 1554/1625/852 1550/1626/852 +f 1596/1627/858 1601/1628/858 1597/1629/858 +f 1584/1630/846 1582/1631/846 1580/1632/846 +f 1539/1584/852 1540/1633/852 1541/1634/852 +f 1590/1635/850 1591/1636/850 1588/1637/850 +f 1562/1619/855 1558/1638/855 1560/1639/855 +f 1555/1640/859 1562/1619/859 1560/1641/859 +f 1563/1642/855 1564/1643/855 1565/1644/855 +f 1573/1600/860 1582/1645/860 1583/1646/860 +f 1572/1603/860 1580/1647/860 1582/1645/860 +f 1580/1647/860 1578/1573/860 1581/1648/860 +f 1581/1648/860 1573/1600/860 1583/1646/860 +f 1597/1649/843 1602/1650/843 1598/1651/843 +f 1569/1652/861 1565/1653/861 1567/1654/861 +f 1670/1655/862 1669/1656/862 1667/1657/862 +f 1846/1658/863 1847/1659/863 1843/1660/863 +f 1542/1583/864 1543/1661/864 1540/1662/864 +f 1551/1588/845 1543/1663/845 1544/1586/845 +f 1551/1588/865 1541/1664/865 1545/1665/865 +f 1546/1666/845 1547/1667/845 1548/1668/845 +f 1597/1669/866 1590/1635/866 1587/1567/866 +f 1598/1670/866 1592/1671/866 1590/1635/866 +f 1594/1672/866 1599/1673/866 1592/1671/866 +f 1596/1674/866 1587/1567/866 1599/1673/866 +f 1570/1675/843 1567/1676/843 1566/1677/843 +f 1548/1678/867 1553/1679/867 1549/1680/867 +f 1568/1681/868 1566/1682/868 1564/1683/868 +f 1655/1684/845 1653/1685/845 1651/1686/845 +f 1654/1687/867 1652/1688/867 1655/1689/867 +f 1658/1690/852 1654/1691/852 1656/1692/852 +f 1651/1693/869 1658/1690/869 1656/1694/869 +f 1659/1695/852 1660/1696/852 1661/1697/852 +f 1605/1698/870 1614/1699/870 1615/1700/870 +f 1604/1701/870 1612/1702/870 1614/1699/870 +f 1612/1702/870 1610/1703/870 1613/1704/870 +f 1613/1704/870 1605/1698/870 1615/1700/870 +f 1666/1705/845 1663/1706/845 1662/1707/845 +f 1665/1708/864 1661/1709/864 1663/1710/864 +f 1903/1711/871 1899/1712/871 1904/1713/871 +f 1635/1714/855 1636/1715/855 1637/1716/855 +f 1638/1717/861 1639/1718/861 1636/1719/861 +f 1647/1720/843 1639/1721/843 1640/1722/843 +f 1647/1720/868 1637/1723/868 1641/1724/868 +f 1642/1725/843 1643/1726/843 1644/1727/843 +f 1629/1728/872 1622/1729/872 1619/1730/872 +f 1630/1731/872 1624/1732/872 1622/1729/872 +f 1626/1733/872 1631/1576/872 1624/1732/872 +f 1628/1734/872 1619/1730/872 1631/1576/872 +f 1667/1657/873 1673/1735/873 1674/1736/873 +f 1644/1737/874 1649/1738/874 1645/1739/874 +f 1666/1705/865 1660/1740/865 1664/1741/865 +f 1843/1742/875 1844/1743/875 1845/1744/875 +f 1558/1745/874 1556/1617/874 1559/1746/874 +f 1610/1703/843 1606/1747/843 1608/1748/843 +f 1603/1749/851 1610/1703/851 1608/1750/851 +f 1579/1751/845 1580/1752/845 1581/1753/845 +f 1645/1754/876 1638/1717/876 1635/1714/876 +f 1646/1755/876 1640/1722/876 1638/1717/876 +f 1642/1756/876 1647/1720/876 1640/1722/876 +f 1644/1757/876 1635/1714/876 1647/1720/876 +f 1629/1758/845 1634/1759/845 1630/1760/845 +f 1559/1761/843 1557/1614/843 1555/1762/843 +f 1634/1759/877 1626/1763/877 1630/1764/877 +f 1619/1730/845 1620/1765/845 1621/1766/845 +f 1622/1729/877 1623/1767/877 1620/1768/877 +f 1741/1769/878 1739/1770/878 1744/1771/878 +f 1571/1772/879 1578/1573/879 1576/1773/879 +f 1626/1774/852 1627/1775/852 1628/1776/852 +f 1653/1685/880 1662/1777/880 1663/1778/880 +f 1652/1688/880 1660/1779/880 1662/1777/880 +f 1660/1779/880 1658/1690/880 1661/1780/880 +f 1661/1780/880 1653/1685/880 1663/1778/880 +f 1815/1781/878 1813/1782/878 1811/1783/878 +f 1645/1784/855 1650/1785/855 1646/1786/855 +f 1628/1787/853 1633/1788/853 1629/1789/853 +f 1618/1790/881 1612/1791/881 1616/1792/881 +f 1751/1793/862 1749/1794/862 1747/1795/862 +f 1748/1796/882 1752/1797/882 1749/1798/882 +f 1755/1799/882 1756/1800/882 1757/1801/882 +f 1678/1802/883 1667/1657/883 1677/1803/883 +f 1679/1804/883 1670/1655/883 1678/1802/883 +f 1675/1805/883 1672/1806/883 1679/1804/883 +f 1677/1803/883 1674/1736/883 1675/1805/883 +f 1770/1807/884 1769/1808/884 1768/1809/884 +f 1760/1810/885 1759/1811/885 1756/1812/885 +f 1822/1813/878 1819/1814/878 1821/1815/878 +f 1767/1816/886 1765/1817/886 1763/1818/886 +f 1763/1819/887 1766/1820/887 1767/1816/887 +f 1802/1821/888 1798/1822/888 1800/1823/888 +f 1753/1824/883 1747/1825/883 1750/1826/883 +f 1776/1827/889 1773/1828/889 1771/1829/889 +f 1693/1830/887 1683/1831/887 1692/1832/887 +f 1694/1833/887 1686/1834/887 1693/1830/887 +f 1690/1835/887 1695/1836/887 1694/1833/887 +f 1692/1832/887 1688/1837/887 1690/1835/887 +f 1650/1785/861 1642/1838/861 1646/1839/861 +f 1777/1840/886 1773/1841/886 1774/1842/886 +f 1783/1843/826 1781/1844/826 1779/1845/826 +f 1793/1846/890 1791/1847/890 1794/1848/890 +f 1786/1849/833 1782/1850/833 1784/1851/833 +f 1709/1852/890 1699/1853/890 1708/1854/890 +f 1710/1855/890 1711/1856/890 1709/1852/890 +f 1706/1857/890 1702/1858/890 1710/1855/890 +f 1708/1854/890 1704/1859/890 1706/1857/890 +f 1586/1860/852 1583/1861/852 1582/1862/852 +f 1708/1863/826 1712/1864/826 1709/1865/826 +f 1699/1853/891 1705/1866/891 1704/1859/891 +f 1713/1867/891 1708/1868/891 1706/1869/891 +f 1799/1870/892 1797/1871/892 1795/1872/892 +f 1931/1873/893 1934/1874/893 1932/1875/893 +f 1697/1876/894 1692/1877/894 1690/1878/894 +f 1631/1576/852 1623/1879/852 1624/1732/852 +f 1808/1880/847 1805/1881/847 1803/1882/847 +f 1725/1883/895 1715/1884/895 1724/1885/895 +f 1726/1886/895 1727/1887/895 1725/1883/895 +f 1726/1886/895 1720/1888/895 1718/1889/895 +f 1724/1885/895 1720/1888/895 1722/1890/895 +f 1692/1891/886 1696/1892/886 1693/1893/886 +f 1761/1894/883 1759/1895/883 1762/1896/883 +f 1806/1897/892 1803/1882/892 1805/1898/892 +f 1611/1899/843 1612/1900/843 1613/1901/843 +f 1550/1902/869 1552/1903/869 1546/1904/869 +f 1725/1905/892 1723/1906/892 1728/1907/892 +f 1813/1908/896 1818/1909/896 1816/1910/896 +f 1741/1911/897 1731/1912/897 1740/1913/897 +f 1742/1914/897 1743/1915/897 1741/1911/897 +f 1742/1914/897 1737/1916/897 1734/1917/897 +f 1740/1913/897 1737/1916/897 1738/1918/897 +f 1825/1919/897 1823/1920/897 1826/1921/897 +f 1817/1922/897 1811/1923/897 1814/1924/897 +f 1824/1925/898 1823/1926/898 1820/1927/898 +f 1755/1799/862 1758/1928/862 1761/1894/862 +f 1686/1834/886 1685/1929/886 1683/1831/886 +f 1672/1806/899 1668/1930/899 1670/1655/899 +f 1672/1806/885 1673/1931/885 1671/1932/885 +f 1810/1933/895 1806/1934/895 1807/1935/895 +f 1742/1936/898 1745/1937/898 1738/1938/898 +f 1748/1796/899 1758/1939/899 1757/1940/899 +f 1758/1939/899 1753/1824/899 1759/1941/899 +f 1759/1941/899 1754/1942/899 1756/1943/899 +f 1754/1942/899 1757/1940/899 1756/1943/899 +f 1680/1944/899 1679/1945/899 1678/1946/899 +f 1618/1790/855 1615/1947/855 1614/1948/855 +f 1676/1949/862 1678/1950/862 1677/1951/862 +f 1727/1887/892 1717/1952/892 1715/1884/892 +f 1607/1953/855 1605/1698/855 1603/1954/855 +f 1695/1836/884 1689/1955/884 1687/1956/884 +f 1683/1831/894 1689/1957/894 1688/1837/894 +f 1776/1827/884 1775/1958/884 1772/1959/884 +f 1764/1960/900 1774/1961/900 1773/1962/900 +f 1767/1816/900 1775/1963/900 1774/1961/900 +f 1766/1820/900 1772/1964/900 1775/1963/900 +f 1770/1807/900 1773/1962/900 1772/1964/900 +f 1775/1965/887 1777/1840/887 1774/1966/887 +f 1694/1967/900 1696/1892/900 1698/1968/900 +f 1694/1969/884 1697/1876/884 1690/1970/884 +f 1953/1971/901 1869/1972/901 1867/1973/901 +f 1702/1858/833 1705/1974/833 1703/1975/833 +f 1712/1864/902 1710/1976/902 1709/1977/902 +f 1734/1917/898 1736/1978/898 1735/1979/898 +f 1792/1980/903 1789/1981/903 1787/1982/903 +f 1711/1856/902 1703/1983/902 1700/1984/902 +f 1780/1985/902 1790/1986/902 1789/1987/902 +f 1783/1843/902 1791/1988/902 1790/1986/902 +f 1782/1850/902 1788/1989/902 1791/1988/902 +f 1785/1990/902 1789/1987/902 1788/1989/902 +f 1714/1991/833 1706/1992/833 1710/1993/833 +f 1794/1848/833 1788/1994/833 1792/1980/833 +f 1784/1995/890 1783/1843/890 1779/1996/890 +f 1780/1985/903 1786/1997/903 1781/1998/903 +f 1606/1999/858 1604/1701/858 1607/2000/858 +f 1716/2001/904 1718/1889/904 1719/2002/904 +f 1718/1889/888 1721/2003/888 1719/2004/888 +f 1715/1884/857 1721/2005/857 1720/1888/857 +f 1764/1960/889 1768/2006/889 1765/2007/889 +f 1796/1580/904 1806/2008/904 1805/2009/904 +f 1799/1870/904 1807/2010/904 1806/2008/904 +f 1807/2010/904 1801/1581/904 1804/2011/904 +f 1801/1581/904 1805/2009/904 1804/2011/904 +f 1725/2012/904 1730/2013/904 1726/2014/904 +f 1726/2015/888 1729/1621/888 1722/2016/888 +f 1795/2017/895 1798/1822/895 1799/1870/895 +f 1743/1915/878 1733/2018/878 1731/1912/878 +f 1732/2019/905 1734/1917/905 1735/2020/905 +f 1711/1856/826 1701/2021/826 1699/1853/826 +f 1737/1916/906 1733/2022/906 1736/2023/906 +f 1745/1937/906 1740/2024/906 1738/2025/906 +f 1812/2026/905 1822/2027/905 1821/2028/905 +f 1815/1781/905 1823/2029/905 1822/2027/905 +f 1823/2029/907 1818/1909/907 1820/2030/907 +f 1818/1909/905 1821/2028/905 1820/2030/905 +f 1744/1771/905 1742/2031/905 1741/2032/905 +f 1679/2033/885 1681/2034/885 1675/2035/885 +f 1599/1673/855 1591/2036/855 1592/1671/855 +f 1922/2037/849 1923/2038/849 1924/2039/849 +f 1909/2040/844 1910/2041/844 1907/2042/844 +f 1929/2043/893 1924/2044/893 1928/2045/893 +f 1913/2046/908 1914/2047/908 1915/2048/908 +f 1837/2049/909 1827/2050/909 1838/2051/909 +f 1837/2049/909 1839/2052/909 1830/2053/909 +f 1836/2054/909 1839/2052/909 1834/2055/909 +f 1836/2054/909 1827/2050/909 1832/2056/909 +f 1917/2057/901 1921/2058/901 1916/2059/901 +f 1915/2060/910 1920/2061/910 1917/2062/910 +f 1913/2063/854 1921/2058/854 1919/2064/854 +f 1859/2065/908 1860/2066/908 1861/2067/908 +f 1893/2068/911 1894/2069/911 1890/2070/911 +f 1929/2043/875 1926/2071/875 1927/2072/875 +f 1891/2073/912 1895/2074/912 1892/2075/912 +f 1824/1925/896 1821/2076/896 1819/1814/896 +f 1854/2077/913 1847/1659/913 1855/2078/913 +f 1847/1659/913 1852/2079/913 1855/2078/913 +f 1849/2080/913 1853/2081/913 1852/2079/913 +f 1850/1605/913 1854/2077/913 1853/2081/913 +f 1903/1711/849 1901/2082/849 1902/2083/849 +f 1898/2084/914 1901/2085/914 1905/2086/914 +f 1935/2087/915 1930/2088/915 1933/2089/915 +f 1890/2090/849 1891/2073/849 1892/2091/849 +f 1941/2092/916 1942/2093/916 1938/2094/916 +f 1941/2095/908 1943/2096/908 1944/2097/908 +f 1945/2098/917 1939/2099/917 1943/2096/917 +f 1954/2100/908 1948/2101/908 1946/2102/908 +f 1870/2103/918 1863/2104/918 1871/2105/918 +f 1871/2105/918 1865/2106/918 1869/2107/918 +f 1869/2107/918 1864/1609/918 1867/2108/918 +f 1867/2108/918 1860/2066/918 1870/2103/918 +f 1856/2109/875 1854/2110/875 1855/2111/875 +f 1951/2112/919 1946/2113/919 1949/2114/919 +f 1952/2115/901 1949/2116/901 1950/2117/901 +f 1906/2118/901 1907/2119/901 1908/2120/901 +f 1830/2053/919 1831/2121/919 1828/2122/919 +f 1897/2123/875 1893/2124/875 1895/2125/875 +f 1832/2056/920 1829/2126/920 1833/2127/920 +f 1936/2128/875 1932/2129/875 1930/2130/875 +f 1885/2131/921 1874/2132/921 1886/2133/921 +f 1885/2131/921 1879/2134/921 1877/2135/921 +f 1884/2136/921 1879/2134/921 1882/2137/921 +f 1884/2136/921 1874/2132/921 1881/2138/921 +f 1808/1880/888 1807/2139/888 1804/2140/888 +f 1934/2141/849 1935/2087/849 1933/2142/849 +f 1851/2143/922 1854/2144/922 1858/2145/922 +f 1948/2146/916 1952/2115/916 1950/2147/916 +f 1938/2148/901 1939/2099/901 1940/2149/901 +f 1862/2150/910 1863/2104/910 1859/2151/910 +f 1862/2152/901 1864/1609/901 1865/2106/901 +f 1816/2153/898 1817/1922/898 1814/2154/898 +f 1857/2155/849 1853/2156/849 1851/2143/849 +f 1901/2157/923 1894/2069/923 1902/2158/923 +f 1894/2069/923 1899/2159/923 1902/2158/923 +f 1896/2160/923 1900/2161/923 1899/2159/923 +f 1897/2123/923 1901/2157/923 1900/2161/923 +f 1886/2162/875 1887/2163/875 1885/2164/875 +f 1599/1673/881 1589/2165/881 1593/2166/881 +f 1856/2109/893 1852/2167/893 1857/2155/893 +f 1752/2168/885 1753/1824/885 1750/2169/885 +f 1925/2170/915 1926/2171/915 1923/2172/915 +f 1831/2173/901 1832/2056/901 1833/2174/901 +f 1874/2132/871 1880/2175/871 1881/2138/871 +f 1916/2176/924 1906/2118/924 1917/2177/924 +f 1916/2176/924 1918/2178/924 1909/2040/924 +f 1915/2179/924 1918/2178/924 1913/2180/924 +f 1915/2179/924 1906/2118/924 1911/2181/924 +f 1675/2182/873 1676/1949/873 1677/2183/873 +f 1585/2184/877 1581/2185/877 1583/2186/877 +f 1869/2187/910 1873/2188/910 1871/2189/910 +f 1874/2132/875 1875/2190/875 1876/2191/875 +f 1695/1836/900 1684/2192/900 1686/1834/900 +f 1881/2138/849 1878/2193/849 1879/2134/849 +f 1845/2194/922 1850/1605/922 1848/2195/922 +f 1904/1713/875 1900/2196/875 1898/2084/875 +f 1933/2197/925 1922/2037/925 1934/2198/925 +f 1933/2197/925 1927/2072/925 1925/2170/925 +f 1932/2199/925 1927/2072/925 1930/2200/925 +f 1932/2199/925 1922/2037/925 1929/2043/925 +f 1838/2201/908 1842/2202/908 1837/2203/908 +f 1883/2204/871 1886/2205/871 1884/2206/871 +f 1887/2163/912 1882/2207/912 1885/2208/912 +f 1827/2050/908 1828/2209/908 1829/2210/908 +f 1877/2135/912 1878/2211/912 1875/2212/912 +f 1910/2213/908 1911/2181/908 1912/2214/908 +f 1911/2181/926 1908/2215/926 1912/2216/926 +f 1834/2217/901 1835/2218/901 1836/2219/901 +f 1949/2220/927 1942/2093/927 1950/2221/927 +f 1950/2221/927 1944/2097/927 1948/2222/927 +f 1948/2222/927 1943/2096/927 1946/2223/927 +f 1946/2223/927 1939/2099/927 1949/2220/927 +f 1873/2188/908 1870/2224/908 1871/2225/908 +f 1836/2226/916 1841/2227/916 1838/2228/916 +f 1834/2229/917 1842/2202/917 1840/2230/917 +f 1549/1582/848 1550/1585/848 1542/1583/848 +f 1550/1585/848 1546/1587/848 1544/1586/848 +f 1546/1587/848 1548/1589/848 1551/1588/848 +f 1548/1589/848 1549/1582/848 1539/1584/848 +f 1557/1614/856 1556/1617/856 1566/1615/856 +f 1556/1617/856 1561/2231/856 1564/1618/856 +f 1564/1618/856 1561/2231/856 1562/1619/856 +f 1565/1620/856 1562/1619/856 1557/1614/856 +f 1573/1600/860 1572/1603/860 1582/1645/860 +f 1572/1603/860 1577/2232/860 1580/1647/860 +f 1580/1647/860 1577/2232/860 1578/1573/860 +f 1581/1648/860 1578/1573/860 1573/1600/860 +f 1597/1669/866 1598/1670/866 1590/1635/866 +f 1598/1670/866 1594/1672/866 1592/1671/866 +f 1594/1672/866 1596/1674/866 1599/1673/866 +f 1596/1674/866 1597/1669/866 1587/1567/866 +f 1605/1698/870 1604/1701/870 1614/1699/870 +f 1604/1701/870 1609/2233/870 1612/1702/870 +f 1612/1702/870 1609/2233/870 1610/1703/870 +f 1613/1704/870 1610/1703/870 1605/1698/870 +f 1629/1728/872 1630/1731/872 1622/1729/872 +f 1630/1731/872 1626/1733/872 1624/1732/872 +f 1626/1733/872 1628/1734/872 1631/1576/872 +f 1628/1734/872 1629/1728/872 1619/1730/872 +f 1645/1754/876 1646/1755/876 1638/1717/876 +f 1646/1755/876 1642/1756/876 1640/1722/876 +f 1642/1756/876 1644/1757/876 1647/1720/876 +f 1644/1757/876 1645/1754/876 1635/1714/876 +f 1653/1685/880 1652/1688/880 1662/1777/880 +f 1652/1688/880 1657/2234/880 1660/1779/880 +f 1660/1779/880 1657/2234/880 1658/1690/880 +f 1661/1780/880 1658/1690/880 1653/1685/880 +f 1678/1802/883 1670/1655/883 1667/1657/883 +f 1679/1804/883 1672/1806/883 1670/1655/883 +f 1675/1805/883 1674/1736/883 1672/1806/883 +f 1677/1803/883 1667/1657/883 1674/1736/883 +f 1693/1830/887 1686/1834/887 1683/1831/887 +f 1694/1833/887 1695/1836/887 1686/1834/887 +f 1690/1835/887 1688/1837/887 1695/1836/887 +f 1692/1832/887 1683/1831/887 1688/1837/887 +f 1709/1852/890 1711/1856/890 1699/1853/890 +f 1710/1855/890 1702/1858/890 1711/1856/890 +f 1706/1857/890 1704/1859/890 1702/1858/890 +f 1708/1854/890 1699/1853/890 1704/1859/890 +f 1725/1883/895 1727/1887/895 1715/1884/895 +f 1726/1886/895 1718/1889/895 1727/1887/895 +f 1726/1886/895 1722/1890/895 1720/1888/895 +f 1724/1885/895 1715/1884/895 1720/1888/895 +f 1741/1911/897 1743/1915/897 1731/1912/897 +f 1742/1914/897 1734/1917/897 1743/1915/897 +f 1742/1914/928 1738/1918/928 1737/1916/928 +f 1740/1913/897 1731/1912/897 1737/1916/897 +f 1748/1796/899 1751/1793/899 1758/1939/899 +f 1758/1939/899 1751/1793/899 1753/1824/899 +f 1759/1941/899 1753/1824/899 1754/1942/899 +f 1754/1942/899 1748/1796/899 1757/1940/899 +f 1764/1960/900 1767/1816/900 1774/1961/900 +f 1767/1816/900 1766/1820/900 1775/1963/900 +f 1766/1820/900 1770/1807/900 1772/1964/900 +f 1770/1807/900 1764/1960/900 1773/1962/900 +f 1780/1985/902 1783/1843/902 1790/1986/902 +f 1783/1843/902 1782/1850/902 1791/1988/902 +f 1782/1850/902 1785/1990/902 1788/1989/902 +f 1785/1990/902 1780/1985/902 1789/1987/902 +f 1796/1580/904 1799/1870/904 1806/2008/904 +f 1799/1870/904 1798/1822/904 1807/2010/904 +f 1807/2010/904 1798/1822/904 1801/1581/904 +f 1801/1581/904 1796/1580/904 1805/2009/904 +f 1812/2026/905 1815/1781/905 1822/2027/905 +f 1815/1781/905 1817/1922/905 1823/2029/905 +f 1823/2029/905 1817/1922/905 1818/1909/905 +f 1818/1909/905 1812/2026/905 1821/2028/905 +f 1837/2049/909 1830/2053/909 1827/2050/909 +f 1837/2049/909 1834/2055/909 1839/2052/909 +f 1836/2054/909 1832/2056/909 1839/2052/909 +f 1836/2054/909 1838/2051/909 1827/2050/909 +f 1854/2077/913 1844/1743/913 1847/1659/913 +f 1847/1659/913 1849/2080/913 1852/2079/913 +f 1849/2080/913 1850/1605/913 1853/2081/913 +f 1850/1605/913 1844/1743/913 1854/2077/913 +f 1870/2103/918 1860/2066/918 1863/2104/918 +f 1871/2105/918 1863/2104/918 1865/2106/918 +f 1869/2107/918 1865/2106/918 1864/1609/918 +f 1867/2108/918 1864/1609/918 1860/2066/918 +f 1885/2131/921 1877/2135/921 1874/2132/921 +f 1885/2131/921 1882/2137/921 1879/2134/921 +f 1884/2136/921 1881/2138/921 1879/2134/921 +f 1884/2136/921 1886/2133/921 1874/2132/921 +f 1901/2157/923 1891/2073/923 1894/2069/923 +f 1894/2069/923 1896/2160/923 1899/2159/923 +f 1896/2160/923 1897/2123/923 1900/2161/923 +f 1897/2123/923 1891/2073/923 1901/2157/923 +f 1916/2176/924 1909/2040/924 1906/2118/924 +f 1916/2176/924 1913/2180/924 1918/2178/924 +f 1915/2179/924 1911/2181/924 1918/2178/924 +f 1915/2179/924 1917/2177/924 1906/2118/924 +f 1933/2197/925 1925/2170/925 1922/2037/925 +f 1933/2197/925 1930/2200/925 1927/2072/925 +f 1932/2199/925 1929/2043/925 1927/2072/925 +f 1932/2199/925 1934/2198/925 1922/2037/925 +f 1949/2220/927 1939/2099/927 1942/2093/927 +f 1950/2221/927 1942/2093/927 1944/2097/927 +f 1948/2222/927 1944/2097/927 1943/2096/927 +f 1946/2223/927 1943/2096/927 1939/2099/927 +f 1793/1846/826 1789/2235/826 1790/2236/826 +f 1957/2237/830 1956/2238/830 1962/2239/830 +f 1956/2240/837 1959/2241/837 1955/2242/837 +f 1957/2237/839 1959/2243/839 1958/2244/839 +f 1956/2240/841 1961/2245/841 1962/2239/841 +f 1962/2239/835 1960/2246/835 1957/2237/835 +f 2062/2247/831 2146/2248/831 2015/2249/831 +f 1966/2250/831 2127/2251/831 1967/2252/831 +f 2047/2253/929 2071/2254/929 1996/2255/929 +f 2147/2256/929 2111/2257/929 2109/2258/929 +f 1978/2259/831 1979/2260/831 1980/2261/831 +f 2024/2262/835 2115/2263/835 2025/2264/835 +f 1988/2265/831 2148/2266/831 1986/2267/831 +f 2142/2268/929 1990/2269/929 2107/2270/929 +f 2045/2271/830 2116/2272/830 2118/2273/830 +f 1977/2274/831 2028/2275/831 1975/2276/831 +f 2022/2277/839 1978/2278/839 2020/2279/839 +f 2154/2280/841 2038/2281/841 2039/2282/841 +f 1971/2283/830 2050/2284/830 2051/2285/830 +f 2033/2286/831 2149/2287/831 2012/2288/831 +f 2036/2289/841 2042/2290/841 2037/2291/841 +f 2121/2292/839 2053/2293/839 2048/2294/839 +f 2052/2295/830 2059/2296/830 2060/2297/830 +f 2053/2298/831 2082/2299/831 2041/2300/831 +f 2152/2301/929 2131/2302/929 2129/2303/929 +f 2150/2304/929 2097/2305/929 2095/2306/929 +f 2048/2307/830 2119/2308/830 2121/2292/830 +f 2153/2309/841 2065/2310/841 2066/2311/841 +f 2025/2264/830 2034/2312/830 2013/2313/830 +f 2109/2258/830 2026/2314/830 2009/2315/830 +f 1968/2316/831 2024/2262/831 1970/2317/831 +f 2054/2318/839 2023/2319/839 2018/2320/839 +f 2097/2305/839 1994/2321/839 1987/2322/839 +f 2148/2266/929 2094/2323/929 2092/2324/929 +f 1982/2325/830 2092/2324/830 2094/2323/830 +f 2150/2304/841 2088/2326/841 1992/2327/841 +f 2134/2328/839 2076/2329/839 2072/2330/839 +f 2058/2331/830 2016/2332/830 2125/2333/830 +f 2028/2275/841 2085/2334/841 1975/2335/841 +f 2149/2287/835 2113/2336/835 2074/2337/835 +f 2035/2338/831 2036/2289/831 2037/2339/831 +f 1993/2340/830 2098/2341/830 2100/2342/830 +f 2111/2257/839 2030/2343/839 2026/2344/839 +f 2142/2268/841 1989/2345/841 2008/2346/841 +f 2127/2251/841 2044/2347/841 1967/2348/841 +f 2027/2349/831 2142/2268/831 2008/2350/831 +f 2079/2351/831 2084/2352/831 2055/2353/831 +f 1979/2260/841 2067/2354/841 1980/2355/841 +f 2023/2356/831 2032/2357/831 2007/2358/831 +f 2125/2333/839 2062/2359/839 2058/2360/839 +f 2069/2361/830 2129/2303/830 2131/2302/830 +f 1987/2362/830 2095/2306/830 2097/2305/830 +f 2061/2363/839 2128/2364/839 1966/2365/839 +f 2151/2366/841 2089/2367/841 1998/2368/841 +f 1969/2369/831 2102/2370/831 1963/2371/831 +f 2143/2372/929 1985/2373/929 1984/2374/929 +f 2061/2375/830 2145/2376/830 2126/2377/830 +f 1976/2378/830 1984/2374/830 1985/2373/830 +f 2113/2336/839 2033/2379/839 2029/2380/839 +f 2075/2381/830 2056/2382/830 2136/2383/830 +f 2083/2384/830 2144/2385/830 2139/2386/830 +f 2070/2387/830 1996/2255/830 2071/2254/830 +f 2144/2385/835 2141/2388/835 2139/2386/835 +f 2100/2342/839 2000/2389/839 1993/2390/839 +f 2046/2391/831 2047/2253/831 1995/2392/831 +f 1983/2393/831 2143/2372/831 1981/2394/831 +f 2074/2337/830 2029/2395/830 2011/2396/830 +f 2034/2397/839 2114/2398/839 1968/2399/839 +f 1973/2400/841 2043/2401/841 1974/2402/841 +f 2152/2301/841 2063/2403/841 2064/2404/841 +f 1965/2405/841 2144/2385/841 2068/2406/841 +f 2028/2275/929 2051/2285/929 2050/2284/929 +f 2146/2248/841 2017/2407/841 2015/2408/841 +f 2082/2299/929 2121/2292/929 2119/2308/929 +f 1964/2409/831 2140/2410/831 1965/2411/831 +f 2001/2412/830 2002/2413/830 2003/2414/830 +f 2032/2357/929 2054/2318/929 2106/2415/929 +f 2151/2366/835 2100/2342/835 2098/2341/835 +f 2049/2416/831 2154/2280/831 2039/2417/831 +f 1970/2418/841 2025/2264/841 2013/2419/841 +f 1999/2420/830 2077/2421/830 2101/2422/830 +f 2000/2423/831 2151/2366/831 1998/2424/831 +f 2072/2425/830 2132/2426/830 2134/2328/830 +f 2077/2421/835 2103/2427/835 2101/2422/835 +f 2104/2428/830 2014/2429/830 2004/2430/830 +f 1979/2260/835 2022/2277/835 2021/2431/835 +f 2105/2432/839 2019/2433/839 2014/2434/839 +f 2084/2352/841 2057/2435/841 2055/2436/841 +f 2081/2437/841 2004/2438/841 2005/2439/841 +f 2060/2297/839 2035/2440/839 2052/2441/839 +f 2143/2372/841 2086/2442/841 1981/2443/841 +f 2148/2266/841 2087/2444/841 1986/2445/841 +f 1994/2446/831 2150/2304/831 1992/2447/831 +f 2118/2273/839 2049/2448/839 2045/2449/839 +f 2071/2254/839 2046/2450/839 2070/2451/839 +f 2107/2270/830 1991/2452/830 1989/2453/830 +f 2136/2383/839 2079/2454/839 2075/2455/839 +f 2084/2352/929 2136/2383/929 2056/2382/929 +f 2003/2414/839 1972/2456/839 2001/2457/839 +f 2094/2323/839 1988/2458/839 1982/2459/839 +f 2154/2280/929 2118/2273/929 2116/2272/929 +f 2020/2460/830 2021/2431/830 2022/2277/830 +f 2102/2370/841 2078/2461/841 1963/2462/841 +f 1973/2400/929 2003/2414/929 2002/2413/929 +f 2082/2299/841 2040/2463/841 2041/2464/841 +f 2146/2248/835 2125/2333/835 2016/2332/835 +f 2032/2357/841 2006/2465/841 2007/2466/841 +f 1985/2373/839 1983/2467/839 1976/2468/839 +f 2139/2386/839 1964/2469/839 2083/2470/839 +f 2047/2253/841 1997/2471/841 1995/2472/841 +f 2145/2376/835 2128/2364/835 2126/2377/835 +f 2051/2285/839 1977/2473/839 1971/2474/839 +f 2036/2289/929 2060/2297/929 2059/2296/929 +f 1972/2475/831 1973/2400/831 1974/2476/831 +f 2101/2422/839 1969/2477/839 1999/2478/839 +f 2147/2256/841 2009/2479/841 2010/2480/841 +f 2149/2287/841 2011/2481/841 2012/2482/841 +f 2081/2437/929 2105/2432/929 2104/2428/929 +f 2153/2309/929 2134/2328/929 2132/2426/929 +f 2019/2483/831 2081/2437/831 2005/2484/831 +f 2073/2485/831 2152/2301/831 2064/2486/831 +f 2106/2415/830 2018/2487/830 2006/2488/830 +f 1990/2269/839 2027/2489/839 1991/2490/839 +f 2076/2491/831 2153/2309/831 2066/2492/831 +f 2131/2302/839 2073/2493/839 2069/2494/839 +f 2030/2495/831 2147/2256/831 2010/2496/831 +f 1904/1713/923 1905/2086/923 1903/1711/923 +f 1584/1630/860 1585/2184/860 1586/1860/860 +f 1568/1681/856 1569/1652/856 1570/1675/856 +f 1552/1903/848 1553/1679/848 1547/1667/848 +f 1664/1741/880 1665/1708/880 1666/1705/880 +f 1648/2497/876 1649/1738/876 1643/1726/876 +f 1616/1792/870 1617/1593/870 1618/1790/870 +f 1696/1892/887 1697/1876/887 1698/1968/887 +f 1600/1597/866 1601/1628/866 1595/1612/866 +f 1680/1944/883 1681/2034/883 1682/2498/883 +f 1776/1827/900 1777/1840/900 1778/2499/900 +f 1712/1864/890 1713/1867/890 1714/1991/890 +f 1792/1980/902 1793/1846/902 1794/1848/902 +f 1810/1933/904 1803/1882/904 1809/2500/904 +f 1947/2501/927 1951/2112/927 1952/2115/927 +f 1760/1810/899 1761/1894/899 1762/1896/899 +f 1730/2013/895 1723/1906/895 1729/1621/895 +f 1824/1925/905 1825/1919/905 1826/1921/905 +f 1632/2502/872 1633/1788/872 1627/1775/872 +f 1857/2155/913 1858/2145/913 1856/2109/913 +f 1868/2503/918 1872/1570/918 1873/2188/918 +f 1936/2128/925 1937/2504/925 1931/1873/925 +f 1840/2230/909 1841/2227/909 1835/2218/909 +f 1744/1771/897 1745/1937/897 1746/2505/897 +f 1888/1590/921 1889/2506/921 1883/2204/921 +f 1919/2064/924 1920/2061/924 1914/2047/924 +f 1960/2246/831 1955/2507/831 1959/2508/831 +f 2157/2509/837 2159/2510/837 2155/2511/837 +f 2155/2512/841 2160/2513/841 2156/2514/841 +f 2156/2515/835 2162/2516/835 2158/2517/835 +f 2158/2518/839 2161/2519/839 2157/2520/839 +f 2164/2521/835 2170/2522/835 2166/2523/835 +f 2166/2524/839 2169/2525/839 2165/2526/839 +f 2165/2527/837 2167/2528/837 2163/2529/837 +f 2163/2530/841 2168/2531/841 2164/2532/841 +f 2159/2510/831 2162/2516/831 2160/2513/831 +f 2168/2531/831 2169/2525/831 2170/2522/831 +f 949/1141/825 951/1221/825 946/1142/825 +f 967/1144/826 961/1150/826 962/1145/826 +f 1030/1147/827 1026/2533/827 1025/1148/827 +f 961/1150/828 967/1144/828 964/1151/828 +f 1031/1153/829 1030/1264/829 1028/1149/829 +f 920/1155/830 924/1178/830 925/1156/830 +f 1516/1158/831 947/1143/831 944/1159/831 +f 1027/1161/832 1025/1148/832 1026/1162/832 +f 1331/1164/825 1530/2534/825 1332/1165/825 +f 1012/1167/827 1009/2535/827 1010/1168/827 +f 923/1170/826 925/1156/826 919/1171/826 +f 929/1173/825 928/1545/825 926/1174/825 +f 1013/1176/832 1011/1236/832 1008/1169/832 +f 924/1178/833 920/2536/833 913/1179/833 +f 918/1181/831 917/1220/831 914/1182/831 +f 999/1184/829 998/1252/829 995/1185/829 +f 991/1187/834 990/1289/834 987/1188/834 +f 1004/1190/835 1001/1473/835 1002/1191/835 +f 1516/1158/828 948/1194/828 949/1141/828 +f 971/1197/835 969/1238/835 970/1198/835 +f 943/1200/833 935/1258/833 934/1201/833 +f 1022/1203/836 1018/2537/836 1017/1204/836 +f 1007/1206/837 1006/1271/837 1003/1207/837 +f 1003/1207/830 1006/1271/830 1004/1190/830 +f 941/1209/831 944/2538/831 945/1210/831 +f 985/1211/830 991/2539/830 989/1212/830 +f 958/1214/833 953/1394/833 954/1215/833 +f 983/1217/830 976/2540/830 978/1218/830 +f 919/1171/838 915/1180/838 914/1182/838 +f 1029/1154/830 1028/1149/830 1025/1148/830 +f 951/1221/826 942/2541/826 944/1222/826 +f 1024/1223/825 1031/2542/825 1029/1154/825 +f 922/1172/826 919/1171/826 917/1220/826 +f 1016/1225/831 1018/1267/831 1022/1226/831 +f 989/1228/836 987/1188/836 984/1229/836 +f 934/1231/828 937/2543/828 939/1232/828 +f 994/1234/830 993/2544/830 999/1184/830 +f 1014/1235/830 1012/1167/830 1008/1169/830 +f 974/1237/839 970/2545/839 969/1238/839 +f 976/1240/829 983/2546/829 981/1241/829 +f 1019/1243/830 1021/1256/830 1020/1205/830 +f 968/1199/830 970/1198/830 974/1244/830 +f 1005/1246/839 1003/1207/839 1000/1192/839 +f 981/1241/831 980/1388/831 977/1248/831 +f 931/1249/833 921/1392/833 913/1250/833 +f 998/1252/831 996/1291/831 992/1253/831 +f 987/1188/831 990/1289/831 988/1254/831 +f 971/1197/831 973/1285/831 972/1239/831 +f 1023/1255/834 1022/2547/834 1020/1205/834 +f 937/1257/833 934/1201/833 935/1258/833 +f 950/1260/833 941/2548/833 934/1261/833 +f 1031/1153/831 1024/2549/831 1026/1263/831 +f 997/1265/827 995/1185/827 992/1253/827 +f 1019/1243/840 1017/1204/840 1018/1267/840 +f 944/1268/826 942/1273/826 938/1269/826 +f 1001/1270/841 1004/1190/841 1006/1271/841 +f 988/1254/840 985/1211/840 986/1213/840 +f 942/1273/826 939/2550/826 936/1274/826 +f 945/1210/838 938/1269/838 935/1258/838 +f 963/1275/838 965/2551/838 960/1146/838 +f 952/1216/828 959/1280/828 955/1276/828 +f 1016/1277/842 1023/2552/842 1021/1256/842 +f 993/1278/825 996/1291/825 998/1252/825 +f 1516/1158/829 950/1260/829 940/1262/829 +f 939/1232/830 937/2543/830 933/1259/830 +f 959/1280/826 956/2553/826 957/1281/826 +f 932/1175/826 926/1174/826 923/1282/826 +f 975/1284/837 974/2554/837 972/1239/837 +f 938/1269/838 936/1274/838 933/1259/838 +f 966/1152/833 964/1151/833 965/1286/833 +f 925/1156/838 924/1178/838 915/1180/838 +f 985/1288/842 988/1254/842 990/1289/842 +f 996/1291/832 993/2555/832 994/1292/832 +f 913/1293/828 922/2556/828 918/1181/828 +f 1009/1294/829 1012/1167/829 1014/1235/829 +f 1241/1296/831 1246/1540/831 1277/1297/831 +f 1238/1299/830 1240/1304/830 1270/1300/830 +f 1267/1302/830 1300/2557/830 1270/1303/830 +f 1244/1305/830 1238/1299/830 1271/1306/830 +f 1320/1308/825 1322/1472/825 1329/1166/825 +f 1209/1309/831 1208/2558/831 1178/1310/831 +f 1215/1312/830 1183/2559/830 1181/1313/830 +f 1284/1315/830 1254/1433/830 1249/1316/830 +f 1251/1318/831 1256/2560/831 1287/1319/831 +f 1250/1321/831 1281/2561/831 1279/1322/831 +f 1230/1324/830 1196/2562/830 1194/1325/830 +f 1249/1316/830 1247/1461/830 1280/1327/830 +f 1252/1329/831 1251/1318/831 1285/1330/831 +f 1206/1332/830 1211/2563/830 1179/1333/830 +f 1223/1335/830 1190/2564/830 1187/1336/830 +f 1223/1338/830 1226/2565/830 1192/1339/830 +f 1269/1341/831 1301/2566/831 1299/1342/831 +f 1255/1344/830 1253/2567/830 1286/1345/830 +f 1290/1347/830 1257/1355/830 1255/1344/830 +f 1224/1349/831 1222/2568/831 1191/1350/831 +f 1265/1352/830 1263/1451/830 1296/1353/830 +f 1257/1355/830 1290/2569/830 1292/1356/830 +f 1233/1358/830 1200/1424/830 1198/1359/830 +f 1195/1361/831 1197/1367/831 1228/1362/831 +f 1264/1364/831 1295/2570/831 1293/1365/831 +f 1197/1367/831 1199/2571/831 1231/1368/831 +f 1297/1370/831 1266/2572/831 1268/1343/831 +f 1218/1372/831 1216/2573/831 1186/1373/831 +f 1177/1334/830 1174/2574/830 1207/1375/830 +f 1267/1302/830 1265/1352/830 1298/1377/830 +f 1214/1379/830 1220/2575/830 1217/1380/830 +f 1203/1382/831 1176/2576/831 1237/1383/831 +f 1015/1385/825 1014/1235/825 1011/1236/825 +f 982/1387/832 978/2577/832 977/1248/832 +f 983/1217/825 982/1219/825 980/1388/825 +f 979/1242/827 977/1248/827 978/1389/827 +f 930/1391/829 927/1396/829 921/1392/829 +f 956/1393/838 954/1215/838 953/1394/838 +f 930/1391/828 928/1545/828 929/1173/828 +f 1242/1397/831 1272/2578/831 1273/1398/831 +f 1237/1400/831 1176/2576/831 1175/1401/831 +f 1272/1403/831 1242/1397/831 1241/1296/831 +f 1205/1405/831 1175/1401/831 1178/1310/831 +f 1210/1407/830 1181/1313/830 1179/1333/830 +f 1276/1409/830 1243/1413/830 1244/1305/830 +f 1212/1411/831 1209/2579/831 1180/1311/831 +f 1243/1413/830 1276/2580/830 1278/1414/830 +f 1185/1381/830 1183/2559/830 1215/1416/830 +f 1259/1357/830 1292/2581/830 1294/1418/830 +f 1213/1420/831 1184/1455/831 1186/1373/831 +f 1233/1422/830 1236/2582/830 1202/1423/830 +f 1258/1425/831 1260/1428/831 1291/1426/831 +f 1260/1428/831 1262/1366/831 1293/1429/831 +f 1287/1431/831 1256/2583/831 1258/1425/831 +f 1254/1433/830 1284/2584/830 1286/1434/830 +f 1221/1436/831 1189/2585/831 1191/1350/831 +f 1188/1374/831 1189/2586/831 1221/1438/831 +f 1219/1440/830 1187/1336/830 1217/1380/830 +f 1225/1442/830 1194/1325/830 1192/1339/830 +f 1281/1444/831 1250/1321/831 1252/1329/831 +f 1193/1351/831 1195/1361/831 1227/1446/831 +f 1198/1359/830 1196/2562/830 1230/1448/830 +f 1261/1419/830 1294/2587/830 1296/1450/830 +f 1264/1364/831 1266/2572/831 1297/1452/831 +f 1212/1454/831 1182/1412/831 1184/1455/831 +f 1231/1457/831 1199/2571/831 1201/1458/831 +f 1245/1415/830 1278/2588/830 1280/1460/830 +f 1232/1462/831 1201/1458/831 1203/1382/831 +f 1204/1464/830 1202/1423/830 1236/1465/830 +f 1269/1341/831 1239/1399/831 1273/1467/831 +f 1207/1469/830 1174/2574/830 1204/1464/830 +f 1320/1308/825 1334/1488/825 1321/1471/825 +f 1001/1473/831 1007/2589/831 1005/1474/831 +f 1367/1475/829 1538/2590/829 1369/1476/829 +f 1346/1478/825 1533/2591/825 1347/1479/825 +f 1010/1481/831 1009/2592/831 1015/1385/831 +f 1325/1482/827 1327/1503/827 1324/1483/827 +f 1357/1485/829 1363/2593/829 1358/1486/829 +f 1334/1488/825 1531/2594/825 1335/1489/825 +f 1323/1490/827 1532/2595/827 1333/1484/827 +f 1310/1491/829 1312/2596/829 1302/1492/829 +f 1307/1494/832 1313/2597/832 1308/1495/832 +f 1359/1487/829 1358/1486/829 1361/1497/829 +f 1304/1499/829 1303/1504/829 1306/1500/829 +f 1325/1482/827 1330/1506/827 1326/1502/827 +f 1302/1492/829 1312/2596/829 1303/1504/829 +f 1315/1493/829 1527/2598/829 1316/1505/829 +f 1330/1506/827 1529/2599/827 1328/1507/827 +f 1317/1508/832 1313/2597/832 1307/1494/832 +f 1341/1510/825 1343/1522/825 1340/1511/825 +f 1344/1513/827 1534/2600/827 1348/1514/827 +f 1354/1516/832 1353/1533/832 1356/1517/832 +f 1336/1519/827 1350/1535/827 1337/1520/827 +f 1341/1510/825 1346/1478/825 1342/1480/825 +f 1309/1496/832 1308/1495/832 1311/1523/832 +f 1365/1525/832 1537/2601/832 1360/1526/832 +f 1336/1519/827 1338/1521/827 1345/1515/827 +f 968/1528/841 975/2602/841 973/1285/841 +f 1366/1527/832 1362/2603/832 1352/1529/832 +f 1351/1530/825 1536/2604/825 1349/1512/825 +f 923/1531/830 928/1545/830 930/1391/830 +f 1352/1529/832 1362/2603/832 1353/1533/832 +f 1355/1477/829 1363/2593/829 1357/1485/829 +f 1318/1509/832 1528/2605/832 1305/1534/832 +f 1350/1535/827 1535/2606/827 1339/1536/827 +f 1164/1537/830 1124/1561/830 1125/1538/830 +f 1246/1540/831 1248/1323/831 1279/1541/831 +f 949/1141/830 948/1194/830 934/1196/830 +f 913/1548/831 927/1396/831 929/1173/831 +f 1054/2607/830 1052/2608/830 1050/2609/830 +f 1050/2609/830 1048/2610/830 1045/1553/830 +f 1045/1553/830 1060/2611/830 1043/2612/830 +f 1043/2612/830 1041/2613/830 1045/1553/830 +f 1041/2613/830 1039/1554/830 1045/1553/830 +f 1039/1554/830 1037/2614/830 1063/1555/830 +f 1037/2614/830 1035/2615/830 1063/1555/830 +f 1035/2615/830 1032/2616/830 1063/1555/830 +f 1063/1555/830 1061/2617/830 1054/2607/830 +f 1061/2617/830 1058/2618/830 1054/2607/830 +f 1058/2618/830 1056/2619/830 1054/2607/830 +f 1054/2607/830 1050/2609/830 1045/1553/830 +f 1054/2607/830 1045/1553/830 1063/1555/830 +f 1066/2620/831 1111/2621/831 1072/1556/831 +f 1111/2621/831 1117/2622/831 1072/1556/831 +f 1117/2622/831 1067/2623/831 1072/1556/831 +f 1072/1556/831 1078/2624/831 1064/1557/831 +f 1064/1557/831 1089/2625/831 1065/1558/831 +f 1065/1558/831 1100/2626/831 1072/1556/831 +f 1100/2626/831 1066/2620/831 1072/1556/831 +f 916/1566/833 914/1182/833 915/1180/833 +f 1587/1567/843 1590/1635/843 1588/1568/843 +f 1872/1570/854 1953/1971/854 1867/1571/854 +f 1578/1573/845 1577/2232/845 1574/1574/845 +f 1631/1576/853 1619/1730/853 1621/1577/853 +f 1802/1579/847 1797/2627/847 1796/1580/847 +f 1888/1590/849 1883/2204/849 1884/1591/849 +f 1617/1593/851 1611/1899/851 1613/1594/851 +f 1598/1596/851 1602/1650/851 1600/1597/851 +f 1575/1599/852 1572/1603/852 1573/1600/852 +f 1574/1602/853 1577/2232/853 1572/1603/853 +f 1850/1605/849 1849/2080/849 1846/1606/849 +f 1861/1608/844 1860/2066/844 1864/1609/844 +f 1594/1611/855 1600/1597/855 1595/1612/855 +f 1729/1621/857 1723/1906/857 1724/1622/857 +f 1549/1624/852 1553/1679/852 1554/1625/852 +f 1596/1627/881 1595/1612/881 1601/1628/881 +f 1584/1630/846 1586/1860/846 1582/1631/846 +f 1539/1584/852 1542/1583/852 1540/1633/852 +f 1590/1635/850 1592/1671/850 1591/1636/850 +f 1562/1619/855 1561/2231/855 1558/1638/855 +f 1555/1640/861 1557/1614/861 1562/1619/861 +f 1563/1642/855 1568/1681/855 1564/1643/855 +f 1597/1649/843 1601/1628/843 1602/1650/843 +f 1569/1652/859 1563/1642/859 1565/1653/859 +f 1670/1655/862 1668/2628/862 1669/1656/862 +f 1846/1658/863 1849/2080/863 1847/1659/863 +f 1542/1583/864 1544/1586/864 1543/1661/864 +f 1551/1588/845 1545/2629/845 1543/1663/845 +f 1551/1588/867 1539/1584/867 1541/1664/867 +f 1546/1666/845 1552/1903/845 1547/1667/845 +f 1570/1675/843 1569/1652/843 1567/1676/843 +f 1548/1678/865 1547/1667/865 1553/1679/865 +f 1568/1681/868 1570/1675/868 1566/1682/868 +f 1655/1684/845 1652/1688/845 1653/1685/845 +f 1654/1687/867 1657/2234/867 1652/1688/867 +f 1658/1690/852 1657/2234/852 1654/1691/852 +f 1651/1693/864 1653/1685/864 1658/1690/864 +f 1659/1695/852 1664/1741/852 1660/1696/852 +f 1666/1705/845 1665/1708/845 1663/1706/845 +f 1665/1708/869 1659/1695/869 1661/1709/869 +f 1903/1711/911 1902/2630/911 1899/1712/911 +f 1635/1714/855 1638/1717/855 1636/1715/855 +f 1638/1717/861 1640/1722/861 1639/1718/861 +f 1647/1720/843 1641/2631/843 1639/1721/843 +f 1647/1720/874 1635/1714/874 1637/1723/874 +f 1642/1725/843 1648/2497/843 1643/1726/843 +f 1667/1657/873 1669/2632/873 1673/1735/873 +f 1644/1737/868 1643/1726/868 1649/1738/868 +f 1666/1705/867 1662/2633/867 1660/1740/867 +f 1843/1742/875 1847/1659/875 1844/1743/875 +f 1558/1745/874 1561/2231/874 1556/1617/874 +f 1610/1703/843 1609/2233/843 1606/1747/843 +f 1603/1749/850 1605/1698/850 1610/1703/850 +f 1579/1751/845 1584/1630/845 1580/1752/845 +f 1629/1758/845 1633/1788/845 1634/1759/845 +f 1559/1761/843 1556/1617/843 1557/1614/843 +f 1634/1759/879 1632/2502/879 1626/1763/879 +f 1619/1730/845 1622/1729/845 1620/1765/845 +f 1622/1729/877 1624/1732/877 1623/1767/877 +f 1741/1769/878 1740/2634/878 1739/1770/878 +f 1571/1772/877 1573/1600/877 1578/1573/877 +f 1626/1774/852 1632/2502/852 1627/1775/852 +f 1815/1781/878 1812/2026/878 1813/1782/878 +f 1645/1784/855 1649/1738/855 1650/1785/855 +f 1628/1787/846 1627/1775/846 1633/1788/846 +f 1618/1790/858 1614/2635/858 1612/1791/858 +f 1751/1793/862 1748/1796/862 1749/1794/862 +f 1748/1796/882 1754/1942/882 1752/1797/882 +f 1755/1799/882 1760/1810/882 1756/1800/882 +f 1770/1807/884 1766/1820/884 1769/1808/884 +f 1760/1810/885 1762/1896/885 1759/1811/885 +f 1822/1813/878 1825/1919/878 1819/1814/878 +f 1767/1816/886 1764/1960/886 1765/1817/886 +f 1763/1819/887 1769/2636/887 1766/1820/887 +f 1802/1821/888 1801/1581/888 1798/1822/888 +f 1753/1824/883 1751/1793/883 1747/1825/883 +f 1776/1827/889 1772/2637/889 1773/1828/889 +f 1650/1785/859 1648/2497/859 1642/1838/859 +f 1777/1840/886 1771/1829/886 1773/1841/886 +f 1783/1843/826 1780/1985/826 1781/1844/826 +f 1793/1846/890 1790/2638/890 1791/1847/890 +f 1786/1849/833 1785/1990/833 1782/1850/833 +f 1586/1860/852 1585/2184/852 1583/1861/852 +f 1708/1863/826 1707/2639/826 1712/1864/826 +f 1699/1853/891 1701/2640/891 1705/1866/891 +f 1713/1867/891 1707/2639/891 1708/1868/891 +f 1799/1870/892 1796/1580/892 1797/1871/892 +f 1931/1873/893 1937/2504/893 1934/1874/893 +f 1697/1876/894 1691/2641/894 1692/1877/894 +f 1631/1576/852 1625/2642/852 1623/1879/852 +f 1808/1880/847 1804/2643/847 1805/1881/847 +f 1692/1891/886 1691/2641/886 1696/1892/886 +f 1761/1894/883 1758/2644/883 1759/1895/883 +f 1806/1897/892 1809/2500/892 1803/1882/892 +f 1611/1899/843 1616/1792/843 1612/1900/843 +f 1550/1902/869 1554/1625/869 1552/1903/869 +f 1725/1905/892 1724/2645/892 1723/1906/892 +f 1813/1908/896 1812/2026/896 1818/1909/896 +f 1825/1919/897 1822/2646/897 1823/1920/897 +f 1817/1922/897 1815/1781/897 1811/1923/897 +f 1824/1925/898 1826/1921/898 1823/1926/898 +f 1755/1799/862 1757/2647/862 1758/1928/862 +f 1686/1834/886 1684/2648/886 1685/1929/886 +f 1672/1806/899 1671/2649/899 1668/1930/899 +f 1672/1806/885 1674/1736/885 1673/1931/885 +f 1810/1933/895 1809/2500/895 1806/1934/895 +f 1742/1936/898 1746/2505/898 1745/1937/898 +f 1680/1944/899 1682/2498/899 1679/1945/899 +f 1618/1790/855 1617/1593/855 1615/1947/855 +f 1676/1949/862 1680/1944/862 1678/1950/862 +f 1727/1887/892 1716/2650/892 1717/1952/892 +f 1607/1953/855 1604/1701/855 1605/1698/855 +f 1695/1836/884 1688/1837/884 1689/1955/884 +f 1683/1831/894 1685/2651/894 1689/1957/894 +f 1776/1827/884 1778/2499/884 1775/1958/884 +f 1775/1965/887 1778/2499/887 1777/1840/887 +f 1694/1967/900 1693/2652/900 1696/1892/900 +f 1694/1969/884 1698/1968/884 1697/1876/884 +f 1953/1971/901 1868/2503/901 1869/1972/901 +f 1702/1858/833 1704/1859/833 1705/1974/833 +f 1712/1864/902 1714/1991/902 1710/1976/902 +f 1734/1917/898 1737/1916/898 1736/1978/898 +f 1792/1980/903 1788/2653/903 1789/1981/903 +f 1711/1856/902 1702/1858/902 1703/1983/902 +f 1714/1991/833 1713/1867/833 1706/1992/833 +f 1794/1848/833 1791/2654/833 1788/1994/833 +f 1784/1995/890 1782/1850/890 1783/1843/890 +f 1780/1985/903 1785/1990/903 1786/1997/903 +f 1606/1999/858 1609/2233/858 1604/1701/858 +f 1716/2001/904 1727/1887/904 1718/1889/904 +f 1718/1889/888 1720/1888/888 1721/2003/888 +f 1715/1884/857 1717/2655/857 1721/2005/857 +f 1764/1960/889 1770/1807/889 1768/2006/889 +f 1725/2012/904 1728/1907/904 1730/2013/904 +f 1726/2015/888 1730/2013/888 1729/1621/888 +f 1795/2017/895 1800/2656/895 1798/1822/895 +f 1743/1915/878 1732/2657/878 1733/2018/878 +f 1732/2019/905 1743/1915/905 1734/1917/905 +f 1711/1856/826 1700/2658/826 1701/2021/826 +f 1737/1916/906 1731/1912/906 1733/2022/906 +f 1745/1937/906 1739/1770/906 1740/2024/906 +f 1744/1771/905 1746/2505/905 1742/2031/905 +f 1679/2033/885 1682/2498/885 1681/2034/885 +f 1599/1673/855 1593/2659/855 1591/2036/855 +f 1922/2037/849 1925/2170/849 1923/2038/849 +f 1909/2040/844 1918/2178/844 1910/2041/844 +f 1929/2043/863 1922/2037/863 1924/2044/863 +f 1913/2046/908 1919/2064/908 1914/2047/908 +f 1917/2057/901 1920/2061/901 1921/2058/901 +f 1915/2060/926 1914/2047/926 1920/2061/926 +f 1913/2063/844 1916/2660/844 1921/2058/844 +f 1859/2065/908 1863/2104/908 1860/2066/908 +f 1893/2068/911 1896/2160/911 1894/2069/911 +f 1929/2043/875 1928/2661/875 1926/2071/875 +f 1891/2073/914 1897/2123/914 1895/2074/914 +f 1824/1925/896 1820/2662/896 1821/2076/896 +f 1903/1711/849 1905/2086/849 1901/2082/849 +f 1898/2084/914 1900/2663/914 1901/2085/914 +f 1935/2087/922 1936/2128/922 1930/2088/922 +f 1890/2090/849 1894/2069/849 1891/2073/849 +f 1941/2092/916 1944/2097/916 1942/2093/916 +f 1941/2095/908 1945/2664/908 1943/2096/908 +f 1945/2098/919 1940/2665/919 1939/2099/919 +f 1954/2100/908 1947/2501/908 1948/2101/908 +f 1856/2109/875 1858/2145/875 1854/2110/875 +f 1951/2112/917 1954/2100/917 1946/2113/917 +f 1952/2115/901 1951/2112/901 1949/2116/901 +f 1906/2118/901 1909/2040/901 1907/2119/901 +f 1830/2053/919 1839/2052/919 1831/2121/919 +f 1897/2123/875 1896/2160/875 1893/2124/875 +f 1832/2056/916 1827/2050/916 1829/2126/916 +f 1936/2128/875 1931/1873/875 1932/2129/875 +f 1808/1880/888 1810/1933/888 1807/2139/888 +f 1934/2141/849 1937/2504/849 1935/2087/849 +f 1851/2143/922 1853/2666/922 1854/2144/922 +f 1948/2146/920 1947/2501/920 1952/2115/920 +f 1938/2148/901 1942/2093/901 1939/2099/901 +f 1862/2150/910 1865/2106/910 1863/2104/910 +f 1862/2152/901 1866/2667/901 1864/1609/901 +f 1816/2153/898 1818/1909/898 1817/1922/898 +f 1857/2155/849 1852/2668/849 1853/2156/849 +f 1886/2162/875 1889/2506/875 1887/2163/875 +f 1599/1673/858 1587/1567/858 1589/2165/858 +f 1856/2109/863 1855/2669/863 1852/2167/863 +f 1752/2168/885 1754/1942/885 1753/1824/885 +f 1925/2170/915 1927/2072/915 1926/2171/915 +f 1831/2173/901 1839/2052/901 1832/2056/901 +f 1874/2132/911 1876/2670/911 1880/2175/911 +f 1675/2182/873 1681/2034/873 1676/1949/873 +f 1585/2184/879 1579/1751/879 1581/2185/879 +f 1869/2187/926 1868/2503/926 1873/2188/926 +f 1874/2132/875 1877/2135/875 1875/2190/875 +f 1695/1836/900 1687/2671/900 1684/2192/900 +f 1881/2138/849 1880/2672/849 1878/2193/849 +f 1845/2194/922 1844/1743/922 1850/1605/922 +f 1904/1713/875 1899/2673/875 1900/2196/875 +f 1838/2201/908 1841/2227/908 1842/2202/908 +f 1883/2204/871 1889/2506/871 1886/2205/871 +f 1887/2163/914 1888/1590/914 1882/2207/914 +f 1827/2050/908 1830/2053/908 1828/2209/908 +f 1877/2135/912 1879/2134/912 1878/2211/912 +f 1910/2213/908 1918/2178/908 1911/2181/908 +f 1911/2181/910 1906/2118/910 1908/2215/910 +f 1834/2217/901 1840/2230/901 1835/2218/901 +f 1873/2188/908 1872/1570/908 1870/2224/908 +f 1836/2226/920 1835/2218/920 1841/2227/920 +f 1834/2229/919 1837/2674/919 1842/2202/919 +f 1793/1846/826 1787/1982/826 1789/2235/826 +f 1957/2237/830 1958/2675/830 1956/2238/830 +f 1956/2240/837 1958/2676/837 1959/2241/837 +f 1957/2237/839 1960/2246/839 1959/2243/839 +f 1956/2240/841 1955/2242/841 1961/2245/841 +f 1962/2239/835 1961/2245/835 1960/2246/835 +f 2062/2247/831 2124/2677/831 2146/2248/831 +f 1966/2250/831 2128/2364/831 2127/2251/831 +f 2047/2253/929 2137/2678/929 2071/2254/929 +f 2147/2256/929 2110/2679/929 2111/2257/929 +f 1978/2259/831 2138/2680/831 1979/2260/831 +f 2024/2262/929 2114/2398/929 2115/2263/929 +f 1988/2265/831 2093/2681/831 2148/2266/831 +f 2142/2268/929 2108/2682/929 1990/2269/929 +f 2045/2271/830 2038/2683/830 2116/2272/830 +f 1977/2274/831 2090/2684/831 2028/2275/831 +f 2022/2277/839 2138/2680/839 1978/2278/839 +f 2154/2280/841 2116/2272/841 2038/2281/841 +f 1971/2283/830 2085/2685/830 2050/2284/830 +f 2033/2286/831 2112/2686/831 2149/2287/831 +f 2036/2289/841 2059/2296/841 2042/2290/841 +f 2121/2292/839 2120/2687/839 2053/2293/839 +f 2052/2295/830 2042/2688/830 2059/2296/830 +f 2053/2298/831 2120/2687/831 2082/2299/831 +f 2152/2301/929 2130/2689/929 2131/2302/929 +f 2150/2304/929 2096/2690/929 2097/2305/929 +f 2048/2307/830 2040/2691/830 2119/2308/830 +f 2153/2309/841 2132/2426/841 2065/2310/841 +f 2025/2264/830 2115/2263/830 2034/2312/830 +f 2109/2258/830 2111/2257/830 2026/2314/830 +f 1968/2316/831 2114/2398/831 2024/2262/831 +f 2054/2318/839 2031/2692/839 2023/2319/839 +f 2097/2305/839 2096/2690/839 1994/2321/839 +f 2148/2266/929 2093/2681/929 2094/2323/929 +f 1982/2325/830 2087/2693/830 2092/2324/830 +f 2150/2304/841 2095/2306/841 2088/2326/841 +f 2134/2328/839 2133/2694/839 2076/2329/839 +f 2058/2331/830 2017/2695/830 2016/2332/830 +f 2028/2275/841 2050/2284/841 2085/2334/841 +f 2149/2287/929 2112/2686/929 2113/2336/929 +f 2035/2338/831 2122/2696/831 2036/2289/831 +f 1993/2340/830 2089/2697/830 2098/2341/830 +f 2111/2257/839 2110/2679/839 2030/2343/839 +f 2142/2268/841 2107/2270/841 1989/2345/841 +f 2127/2251/841 2145/2376/841 2044/2347/841 +f 2027/2349/831 2108/2682/831 2142/2268/831 +f 2079/2351/831 2135/2698/831 2084/2352/831 +f 1979/2260/841 2021/2431/841 2067/2354/841 +f 2023/2356/831 2031/2692/831 2032/2357/831 +f 2125/2333/839 2124/2677/839 2062/2359/839 +f 2069/2361/830 2063/2699/830 2129/2303/830 +f 1987/2362/830 2088/2700/830 2095/2306/830 +f 2061/2363/839 2126/2377/839 2128/2364/839 +f 2151/2366/841 2098/2341/841 2089/2367/841 +f 1969/2369/831 2103/2427/831 2102/2370/831 +f 2143/2372/929 2091/2701/929 1985/2373/929 +f 2061/2375/830 2044/2702/830 2145/2376/830 +f 1976/2378/830 2086/2703/830 1984/2374/830 +f 2113/2336/839 2112/2686/839 2033/2379/839 +f 2075/2381/830 2057/2704/830 2056/2382/830 +f 2083/2384/830 2068/2705/830 2144/2385/830 +f 2070/2387/830 1997/2706/830 1996/2255/830 +f 2144/2385/929 2140/2410/929 2141/2388/929 +f 2100/2342/839 2099/2707/839 2000/2389/839 +f 2046/2391/831 2137/2678/831 2047/2253/831 +f 1983/2393/831 2091/2701/831 2143/2372/831 +f 2074/2337/830 2113/2336/830 2029/2395/830 +f 2034/2397/839 2115/2263/839 2114/2398/839 +f 1973/2400/841 2002/2413/841 2043/2401/841 +f 2152/2301/841 2129/2303/841 2063/2403/841 +f 1965/2405/841 2140/2410/841 2144/2385/841 +f 2028/2275/929 2090/2684/929 2051/2285/929 +f 2146/2248/841 2016/2332/841 2017/2407/841 +f 2082/2299/929 2120/2687/929 2121/2292/929 +f 1964/2409/831 2141/2388/831 2140/2410/831 +f 2001/2412/830 2043/2708/830 2002/2413/830 +f 2032/2357/929 2031/2692/929 2054/2318/929 +f 2151/2366/929 2099/2707/929 2100/2342/929 +f 2049/2416/831 2117/2709/831 2154/2280/831 +f 1970/2418/841 2024/2262/841 2025/2264/841 +f 1999/2420/830 2078/2710/830 2077/2421/830 +f 2000/2423/831 2099/2707/831 2151/2366/831 +f 2072/2425/830 2065/2711/830 2132/2426/830 +f 2077/2421/929 2102/2370/929 2103/2427/929 +f 2104/2428/830 2105/2432/830 2014/2429/830 +f 1979/2260/929 2138/2680/929 2022/2277/929 +f 2105/2432/839 2080/2712/839 2019/2433/839 +f 2084/2352/841 2056/2382/841 2057/2435/841 +f 2081/2437/841 2104/2428/841 2004/2438/841 +f 2060/2297/839 2122/2696/839 2035/2440/839 +f 2143/2372/841 1984/2374/841 2086/2442/841 +f 2148/2266/841 2092/2324/841 2087/2444/841 +f 1994/2446/831 2096/2690/831 2150/2304/831 +f 2118/2273/839 2117/2709/839 2049/2448/839 +f 2071/2254/839 2137/2678/839 2046/2450/839 +f 2107/2270/830 1990/2269/830 1991/2452/830 +f 2136/2383/839 2135/2698/839 2079/2454/839 +f 2084/2352/929 2135/2698/929 2136/2383/929 +f 2003/2414/839 2123/2713/839 1972/2456/839 +f 2094/2323/839 2093/2681/839 1988/2458/839 +f 2154/2280/929 2117/2709/929 2118/2273/929 +f 2020/2460/830 2067/2714/830 2021/2431/830 +f 2102/2370/841 2077/2421/841 2078/2461/841 +f 1973/2400/929 2123/2713/929 2003/2414/929 +f 2082/2299/841 2119/2308/841 2040/2463/841 +f 2146/2248/929 2124/2677/929 2125/2333/929 +f 2032/2357/841 2106/2415/841 2006/2465/841 +f 1985/2373/839 2091/2701/839 1983/2467/839 +f 2139/2386/839 2141/2388/839 1964/2469/839 +f 2047/2253/841 1996/2255/841 1997/2471/841 +f 2145/2376/929 2127/2251/929 2128/2364/929 +f 2051/2285/839 2090/2684/839 1977/2473/839 +f 2036/2289/929 2122/2696/929 2060/2297/929 +f 1972/2475/831 2123/2713/831 1973/2400/831 +f 2101/2422/839 2103/2427/839 1969/2477/839 +f 2147/2256/841 2109/2258/841 2009/2479/841 +f 2149/2287/841 2074/2337/841 2011/2481/841 +f 2081/2437/929 2080/2712/929 2105/2432/929 +f 2153/2309/929 2133/2694/929 2134/2328/929 +f 2019/2483/831 2080/2712/831 2081/2437/831 +f 2073/2485/831 2130/2689/831 2152/2301/831 +f 2106/2415/830 2054/2318/830 2018/2487/830 +f 1990/2269/839 2108/2682/839 2027/2489/839 +f 2076/2491/831 2133/2694/831 2153/2309/831 +f 2131/2302/839 2130/2689/839 2073/2493/839 +f 2030/2495/831 2110/2679/831 2147/2256/831 +f 1904/1713/923 1898/2084/923 1905/2086/923 +f 1584/1630/860 1579/1751/860 1585/2184/860 +f 1568/1681/856 1563/1642/856 1569/1652/856 +f 1552/1903/848 1554/1625/848 1553/1679/848 +f 1664/1741/880 1659/1695/880 1665/1708/880 +f 1648/2497/876 1650/1785/876 1649/1738/876 +f 1616/1792/870 1611/1899/870 1617/1593/870 +f 1696/1892/887 1691/2641/887 1697/1876/887 +f 1600/1597/866 1602/1650/866 1601/1628/866 +f 1680/1944/883 1676/1949/883 1681/2034/883 +f 1776/1827/900 1771/1829/900 1777/1840/900 +f 1712/1864/890 1707/2639/890 1713/1867/890 +f 1792/1980/902 1787/1982/902 1793/1846/902 +f 1810/1933/904 1808/1880/904 1803/1882/904 +f 1947/2501/927 1954/2100/927 1951/2112/927 +f 1760/1810/899 1755/1799/899 1761/1894/899 +f 1730/2013/895 1728/1907/895 1723/1906/895 +f 1824/1925/905 1819/1814/905 1825/1919/905 +f 1632/2502/872 1634/1759/872 1633/1788/872 +f 1857/2155/913 1851/2143/913 1858/2145/913 +f 1868/2503/918 1953/1971/918 1872/1570/918 +f 1936/2128/925 1935/2087/925 1937/2504/925 +f 1840/2230/909 1842/2202/909 1841/2227/909 +f 1744/1771/897 1739/1770/897 1745/1937/897 +f 1888/1590/921 1887/2163/921 1889/2506/921 +f 1919/2064/924 1921/2058/924 1920/2061/924 +f 1960/2246/831 1961/2245/831 1955/2507/831 +f 2157/2509/837 2161/2519/837 2159/2510/837 +f 2155/2512/841 2159/2510/841 2160/2513/841 +f 2156/2515/835 2160/2513/835 2162/2516/835 +f 2158/2518/839 2162/2516/839 2161/2519/839 +f 2164/2521/835 2168/2531/835 2170/2522/835 +f 2166/2524/839 2170/2522/839 2169/2525/839 +f 2165/2527/837 2169/2525/837 2167/2528/837 +f 2163/2530/841 2167/2528/841 2168/2531/841 +f 2159/2510/831 2161/2519/831 2162/2516/831 +f 2168/2531/831 2167/2528/831 2169/2525/831 +s 1 +f 1252/1329/832 1247/1461/845 1249/1316/832 +f 1262/1366/855 1257/1355/827 1259/1357/855 +f 1050/2715/901 1047/2716/838 1048/2717/838 +f 1244/1305/825 1242/1397/908 1238/1299/908 +f 1058/2718/852 1055/2719/833 1056/2720/833 +f 1366/1527/930 1361/1497/931 1358/1486/930 +f 1202/1423/829 1199/2571/852 1200/1424/852 +f 1260/1428/827 1255/1344/901 1257/1355/827 +f 1266/2572/852 1261/1419/833 1263/1451/852 +f 1035/2721/908 1034/2722/828 1032/2723/828 +f 1256/2560/838 1254/1433/875 1253/1435/838 +f 1242/1397/908 1240/1304/828 1238/1299/908 +f 1250/1321/845 1245/1415/826 1247/1461/845 +f 1052/2724/827 1049/2725/901 1050/2715/901 +f 1060/2726/832 1042/2727/845 1043/2728/845 +f 1181/1313/843 1178/1310/825 1179/1333/825 +f 1174/2574/828 1203/1382/849 1204/1464/849 +f 1347/1479/932 1345/1515/933 1342/1480/933 +f 1032/2723/828 1062/2729/849 1063/2730/849 +f 1362/2603/827 1355/1477/934 1353/1533/934 +f 1269/1341/849 1265/1352/829 1267/1302/849 +f 1351/1530/935 1337/1520/936 1339/1536/935 +f 1239/1399/828 1267/1302/849 1240/1304/828 +f 1246/1540/843 1244/1305/825 1243/1413/843 +f 1190/2564/838 1188/1374/875 1187/1336/875 +f 1185/1381/845 1182/1412/826 1183/2559/826 +f 1054/2731/855 1051/2732/827 1052/2724/827 +f 1264/1364/833 1259/1357/855 1261/1419/833 +f 1056/2720/833 1053/2733/855 1054/2731/855 +f 1200/1424/852 1197/1367/833 1198/1359/833 +f 1063/2730/849 1059/2734/829 1061/2735/829 +f 1466/2736/827 1478/2737/937 1469/2738/938 +f 1041/2739/826 1038/2740/843 1039/2741/843 +f 1043/2728/845 1040/2742/826 1041/2739/826 +f 1248/1323/826 1243/1413/843 1245/1415/826 +f 1179/1333/825 1175/1401/908 1177/1334/908 +f 1217/1380/832 1184/1455/845 1185/1381/845 +f 1254/1433/875 1252/1329/832 1249/1316/832 +f 1369/1476/939 1353/1533/934 1355/1477/934 +f 1521/2743/940 1150/2744/941 1151/2745/940 +f 1067/2746/942 1068/2747/943 1069/2748/943 +f 1070/2749/944 1068/2747/943 1071/2750/942 +f 1072/2751/944 1073/2752/943 1070/2749/944 +f 1082/2753/945 1064/2754/946 1078/2755/947 +f 1072/2756/944 1075/2757/948 1076/2758/948 +f 1077/2759/947 1075/2757/948 1070/2760/944 +f 1078/2761/947 1079/2762/948 1077/2759/947 +f 1519/2763/949 1125/2764/950 1141/2765/949 +f 1078/2755/947 1081/2766/945 1082/2753/945 +f 1083/2767/946 1081/2766/945 1077/2768/947 +f 1064/2754/946 1084/2769/945 1083/2767/946 +f 1518/2770/951 1126/2771/952 1136/2772/953 +f 1064/2773/946 1086/2774/954 1087/2775/954 +f 1083/2776/946 1088/2777/954 1086/2774/954 +f 1089/2778/955 1088/2777/954 1090/2779/955 +f 1155/2780/956 1156/2781/957 1150/2782/941 +f 1089/2783/955 1092/2784/958 1093/2785/958 +f 1090/2786/955 1094/2787/958 1092/2784/958 +f 1065/2788/959 1094/2787/958 1095/2789/959 +f 1525/2790/960 1169/2791/961 1170/2792/960 +f 1065/2793/959 1097/2794/962 1098/2795/962 +f 1099/2796/963 1097/2794/962 1095/2797/959 +f 1100/2798/963 1101/2799/962 1099/2796/963 +f 1146/2800/964 1125/2801/950 1145/2802/965 +f 1100/2803/963 1103/2804/966 1104/2805/966 +f 1105/2806/967 1103/2804/966 1099/2807/963 +f 1066/2808/967 1106/2809/966 1105/2806/967 +f 1523/2810/968 1124/2811/969 1160/2812/968 +f 1066/2813/967 1108/2814/970 1109/2815/970 +f 1110/2816/971 1108/2814/970 1105/2817/967 +f 1111/2818/971 1112/2819/970 1110/2816/971 +f 1072/2756/944 1080/2820/948 1078/2761/947 +f 1111/2821/971 1114/2822/972 1115/2823/972 +f 1116/2824/973 1114/2822/972 1110/2825/971 +f 1117/2826/973 1118/2827/972 1116/2824/973 +f 1526/2828/974 1127/2829/975 1173/2830/974 +f 1117/2831/973 1120/2832/976 1121/2833/976 +f 1116/2834/973 1122/2835/976 1120/2832/976 +f 1067/2836/942 1122/2835/976 1071/2837/942 +f 1064/2773/946 1091/2838/954 1089/2778/955 +f 1485/2839/977 1477/2840/978 1474/2841/979 +f 1127/2842/975 1128/2843/980 1129/2844/975 +f 1128/2843/980 1130/2845/952 1129/2844/975 +f 1131/2846/980 1126/2847/952 1130/2845/952 +f 1072/2751/944 1069/2748/943 1074/2848/943 +f 1126/2771/952 1133/2849/951 1130/2850/952 +f 1133/2849/951 1134/2851/953 1130/2850/952 +f 1135/2852/951 1136/2772/953 1134/2851/953 +f 1111/2818/971 1109/2815/970 1113/2853/970 +f 1136/2854/953 1138/2855/949 1134/2856/953 +f 1138/2855/949 1139/2857/950 1134/2856/953 +f 1140/2858/949 1125/2764/950 1139/2857/950 +f 1524/2859/981 1164/2860/982 1165/2861/981 +f 1125/2801/950 1142/2862/964 1139/2863/950 +f 1139/2863/950 1143/2864/964 1144/2865/965 +f 1143/2864/964 1145/2802/965 1144/2865/965 +f 1517/2866/980 1126/2847/952 1132/2867/980 +f 1145/2868/965 1147/2869/940 1144/2870/965 +f 1144/2870/965 1148/2871/940 1149/2872/941 +f 1148/2871/940 1150/2744/941 1149/2872/941 +f 1065/2788/959 1093/2785/958 1096/2873/958 +f 1150/2782/941 1152/2874/957 1149/2875/941 +f 1152/2874/957 1153/2876/956 1149/2875/941 +f 1154/2877/957 1155/2780/956 1153/2876/956 +f 1098/2795/962 1100/2798/963 1065/2793/959 +f 1155/2878/956 1157/2879/968 1153/2880/956 +f 1153/2880/956 1158/2881/968 1159/2882/969 +f 1158/2881/968 1124/2811/969 1159/2882/969 +f 1124/2883/969 1161/2884/981 1159/2885/969 +f 1161/2884/981 1162/2886/982 1159/2885/969 +f 1163/2887/981 1164/2860/982 1162/2886/982 +f 1104/2805/966 1066/2808/967 1100/2803/963 +f 1164/2888/982 1166/2889/960 1162/2890/982 +f 1162/2890/982 1167/2891/960 1168/2892/961 +f 1167/2891/960 1169/2791/961 1168/2892/961 +f 1115/2823/972 1117/2826/973 1111/2821/971 +f 1169/2893/961 1171/2894/974 1168/2895/961 +f 1171/2894/974 1129/2896/975 1168/2895/961 +f 1172/2897/974 1127/2829/975 1129/2896/975 +f 1121/2833/976 1067/2836/942 1117/2831/973 +f 1048/2898/838 1046/2899/875 1045/2900/875 +f 1258/1425/901 1253/2567/838 1255/1344/901 +f 1316/1505/983 1308/1495/984 1310/1491/984 +f 1217/1380/832 1188/1374/875 1186/1373/832 +f 1061/2735/829 1057/2901/852 1058/2718/852 +f 1037/2902/825 1033/2903/908 1035/2721/908 +f 1183/2559/826 1180/1311/843 1181/1313/843 +f 1196/2562/855 1193/1351/827 1194/1325/827 +f 1194/1325/827 1191/1350/901 1192/1339/901 +f 1204/1464/849 1201/1458/829 1202/1423/829 +f 1198/1359/833 1195/1361/855 1196/2562/855 +f 1177/1334/908 1176/2576/828 1174/2574/828 +f 1192/1339/901 1189/2585/838 1190/1340/838 +f 1335/1489/985 1324/1483/986 1321/1471/986 +f 1327/1503/829 1321/1471/986 1324/1483/986 +f 1331/1164/987 1326/1502/988 1328/1507/987 +f 1317/1508/989 1306/1500/990 1303/1504/989 +f 1310/1491/984 1313/2597/825 1312/2596/825 +f 1303/1504/989 1313/2597/825 1317/1508/989 +f 1268/1343/829 1263/1451/852 1265/1352/829 +f 1039/2741/843 1036/2904/825 1037/2902/825 +f 1343/1522/832 1337/1520/936 1340/1511/936 +f 1366/1527/930 1363/2593/827 1362/2603/827 +f 1060/2726/832 1046/2899/875 1044/2905/832 +f 1329/1166/988 1327/1503/829 1326/1502/988 +f 1345/1515/933 1343/1522/832 1342/1480/933 +f 1440/2906/991 1444/2907/992 1443/2908/993 +f 1507/2909/994 1370/2910/995 1511/2911/996 +f 1385/2912/997 1377/2913/908 1389/2914/828 +f 1381/2915/831 1373/2916/998 1375/2917/999 +f 1459/2918/1000 1464/2919/1001 1453/2920/1002 +f 1403/2921/1003 1416/2922/1004 1405/2923/1005 +f 1386/2924/1006 1387/2925/830 1371/2926/1007 +f 1416/2922/1004 1407/2927/1008 1405/2923/1005 +f 1510/2928/849 1385/2912/997 1389/2914/828 +f 1500/2929/1009 1507/2930/994 1511/2931/996 +f 1465/2932/1010 1458/2933/1011 1454/2934/1012 +f 1442/2935/875 1446/2936/1013 1435/2937/1014 +f 1454/2934/1012 1464/2919/1001 1465/2932/1010 +f 1381/2938/831 1375/2939/999 1392/2940/1015 +f 1394/2941/1016 1405/2942/1005 1396/2943/1017 +f 1479/2944/1018 1462/2945/1019 1470/2946/1020 +f 1371/2947/1007 1387/2948/830 1390/2949/1021 +f 1372/2950/1022 1395/2951/1023 1379/2952/1024 +f 1377/2913/908 1394/2941/1016 1378/2953/1025 +f 1505/2954/1026 1496/2955/852 1494/2956/1027 +f 1473/2957/1028 1467/2958/1029 1463/2959/1030 +f 1463/2960/1030 1457/2961/1031 1456/2962/1032 +f 1393/2963/825 1399/2964/1033 1400/2965/843 +f 1476/2966/1034 1470/2946/1020 1467/2958/1029 +f 1381/2967/831 1392/2968/1015 1402/2969/1035 +f 1469/2738/938 1471/2970/1036 1464/2971/1001 +f 1379/2952/1024 1397/2972/1037 1384/2973/1038 +f 1390/2974/1021 1387/2975/830 1406/2976/1039 +f 1464/2971/1001 1474/2977/979 1465/2978/1010 +f 1406/2979/1039 1387/2980/830 1408/2981/1040 +f 1416/2982/1004 1420/2983/1041 1409/2984/1042 +f 1455/2985/901 1469/2738/938 1459/2918/1000 +f 1473/2986/1028 1487/2987/1043 1476/2988/1034 +f 1409/2984/1042 1423/2989/1044 1413/2990/1045 +f 1472/2991/1046 1486/2992/833 1475/2993/855 +f 1382/2994/1047 1374/2995/1048 1388/2996/1049 +f 1381/2997/831 1402/2998/1035 1413/2999/1045 +f 1478/2737/937 1482/3000/1050 1471/3001/1036 +f 1480/3002/1051 1472/2991/1046 1479/3003/1018 +f 1446/3004/1013 1453/3005/1002 1448/3006/1052 +f 1428/3007/1053 1435/2937/1014 1438/3008/1054 +f 1408/3009/1040 1387/3010/830 1419/3011/1055 +f 1474/2841/979 1482/3000/1050 1485/2839/977 +f 1496/2955/852 1488/3012/1056 1486/2992/833 +f 1406/2979/1039 1412/3013/1057 1401/3014/1058 +f 1451/3015/1059 1437/3016/1060 1441/3017/1061 +f 1410/3018/1062 1421/3019/845 1411/3020/826 +f 1401/3014/1058 1415/3021/1063 1404/3022/1064 +f 1381/3023/831 1413/2990/1045 1423/2989/1044 +f 1438/3008/1054 1431/3024/1065 1428/3007/1053 +f 1381/3025/831 1423/3026/1044 1427/3027/1066 +f 1502/3028/1067 1508/3029/1068 1504/3030/1069 +f 1514/3031/1070 1505/2954/1026 1503/3032/1071 +f 1419/3033/1055 1387/3034/830 1430/3035/1072 +f 1433/3036/1073 1425/3037/1074 1422/3038/1075 +f 1502/3028/1067 1510/2928/849 1513/3039/1076 +f 1422/3038/1075 1430/3035/1072 1433/3036/1073 +f 1421/3019/845 1429/3040/1077 1432/3041/832 +f 1432/3041/832 1439/3042/1078 1442/2935/875 +f 1508/3043/1068 1388/3044/1049 1509/3045/1079 +f 1381/3046/831 1427/3047/1066 1437/3048/1060 +f 1508/3043/1068 1376/3049/1080 1382/3050/1047 +f 1417/3051/1081 1431/3052/1065 1420/3053/1041 +f 1430/3054/1072 1387/3055/830 1440/3056/991 +f 1396/2943/1017 1407/3057/1008 1398/3058/1082 +f 1393/2963/825 1403/2921/1003 1394/2941/1016 +f 1398/3059/1082 1375/2939/999 1374/3060/1048 +f 1433/3061/1073 1440/3056/991 1443/3062/993 +f 1444/3063/992 1456/3064/1032 1457/3065/1031 +f 1451/3066/1059 1458/3067/1011 1445/3068/1083 +f 1449/3069/1084 1442/2935/875 1439/3042/1078 +f 1447/3070/1085 1457/3065/1031 1460/3071/1086 +f 1381/3072/831 1437/3016/1060 1445/3073/1083 +f 1447/3070/1085 1461/3074/1087 1449/3075/1084 +f 1460/3076/1086 1462/2945/1019 1461/3074/1087 +f 1440/2906/991 1387/3077/830 1450/3078/1088 +f 1448/3006/1052 1454/3079/1012 1451/3066/1059 +f 1452/3080/838 1459/2918/1000 1446/3004/1013 +f 1476/2988/1034 1480/3002/1051 1479/3003/1018 +f 1425/3037/1074 1429/3040/1077 1418/3081/1089 +f 1419/3011/1055 1412/3082/1057 1408/3009/1040 +f 1388/3044/1049 1512/3083/1090 1509/3045/1079 +f 1475/2993/855 1488/3012/1056 1478/2737/937 +f 1503/3032/1071 1511/2931/996 1514/3031/1070 +f 1381/3084/831 1445/3068/1083 1458/3067/1011 +f 1404/3085/1064 1397/2972/1037 1395/3086/1023 +f 1447/3087/1085 1439/3042/1078 1436/3088/1091 +f 1450/3089/1088 1387/3090/830 1456/3064/1032 +f 1491/3091/1092 1504/3092/1069 1493/3093/1093 +f 1456/2962/1032 1387/3094/830 1463/2960/1030 +f 1487/3095/1043 1492/3096/1094 1480/3097/1051 +f 1414/3098/1095 1421/3019/845 1424/3099/1096 +f 1506/3100/1097 1512/3101/1090 1501/3102/1098 +f 1497/3103/1099 1499/3104/1100 1500/3105/1009 +f 1510/2928/849 1376/3049/1080 1513/3039/1076 +f 1489/3106/1101 1504/3092/1069 1506/3107/1097 +f 1381/3108/831 1458/2933/1011 1468/3109/1102 +f 1435/2937/1014 1448/3110/1052 1438/3111/1054 +f 1429/3040/1077 1436/3112/1091 1439/3042/1078 +f 1383/3113/1103 1394/2941/1016 1396/3114/1017 +f 1463/2959/1030 1387/3115/830 1473/2957/1028 +f 1395/3086/1023 1401/3116/1058 1404/3085/1064 +f 1432/3041/832 1435/2937/1014 1434/3117/1104 +f 1420/3053/1041 1427/3027/1066 1423/3026/1044 +f 1398/3058/1082 1402/2969/1035 1392/2968/1015 +f 1466/2736/827 1472/2991/1046 1475/2993/855 +f 1396/3114/1017 1374/3060/1048 1383/3113/1103 +f 1381/3118/831 1468/3119/1102 1477/3120/978 +f 1415/3121/1063 1422/3122/1075 1425/3123/1074 +f 1381/3124/831 1477/2840/978 1481/3125/1105 +f 1382/2994/1047 1378/2953/1025 1383/3126/1103 +f 1380/3127/1106 1384/2973/1038 1385/2912/997 +f 1473/2986/1028 1387/3128/830 1484/3129/1107 +f 1372/3130/1022 1380/3127/1106 1370/3131/995 +f 1399/2964/1033 1411/3020/826 1400/2965/843 +f 1431/3024/1065 1437/3048/1060 1427/3047/1066 +f 1409/3132/1042 1402/2998/1035 1407/2927/1008 +f 1411/3020/826 1403/2921/1003 1400/2965/843 +f 1495/3133/1108 1487/3095/1043 1484/3134/1107 +f 1397/2972/1037 1377/2913/908 1384/2973/1038 +f 1485/3135/977 1493/3136/1093 1489/3137/1101 +f 1381/3138/831 1481/3139/1105 1490/3140/1109 +f 1414/3098/1095 1417/3141/1081 1416/2982/1004 +f 1415/3021/1063 1399/2964/1033 1404/3022/1064 +f 1484/3134/1107 1387/3142/830 1495/3133/1108 +f 1433/3061/1073 1436/3112/1091 1426/3143/1110 +f 1461/3074/1087 1452/3080/838 1449/3075/1084 +f 1371/2947/1007 1391/3144/1111 1372/2950/1022 +f 1462/2945/1019 1455/2985/901 1461/3074/1087 +f 1506/3107/1097 1490/3145/1109 1489/3106/1101 +f 1485/3135/977 1490/3140/1109 1481/3139/1105 +f 1486/2992/833 1494/2956/1027 1496/2955/852 +f 1504/3030/1069 1509/3146/1079 1506/3100/1097 +f 1381/3147/831 1490/3145/1109 1501/3148/1098 +f 1492/3149/1094 1505/2954/1026 1494/2956/1027 +f 1514/3150/1070 1385/2912/997 1515/3151/1112 +f 1495/3152/1108 1387/3153/830 1499/3104/1100 +f 1497/3103/1099 1503/3154/1071 1492/3149/1094 +f 1499/3155/1100 1387/3156/830 1507/2930/994 +f 1443/2908/993 1447/3087/1085 1436/3088/1091 +f 1491/3091/1092 1498/3157/829 1502/3028/1067 +f 1465/2978/1010 1477/3120/978 1468/3119/1102 +f 1406/2976/1039 1391/3158/1111 1390/2974/1021 +f 1505/2954/1026 1510/2928/849 1498/3157/829 +f 1441/3017/1061 1448/3110/1052 1451/3015/1059 +f 1381/3159/831 1501/3102/1098 1512/3101/1090 +f 1480/3097/1051 1494/2956/1027 1483/3160/1113 +f 1434/3117/1104 1417/3051/1081 1424/3099/1096 +f 1425/3123/1074 1410/3018/1062 1415/3121/1063 +f 1507/2909/994 1387/3161/830 1386/3162/1006 +f 1370/2910/995 1514/3150/1070 1511/2911/996 +f 1421/3019/845 1434/3117/1104 1424/3099/1096 +f 1370/3131/995 1371/2926/1007 1372/3130/1022 +f 1388/2996/1049 1375/2917/999 1373/2916/998 +f 1376/3049/1080 1377/2913/908 1378/2953/1025 +f 1457/2961/1031 1470/3163/1020 1460/3076/1086 +f 1381/3164/831 1512/3083/1090 1373/3165/998 +f 1488/3012/1056 1493/3136/1093 1482/3166/1050 +f 1067/2746/942 1071/2750/942 1068/2747/943 +f 1070/2749/944 1073/2752/943 1068/2747/943 +f 1072/2751/944 1074/2848/943 1073/2752/943 +f 1072/2756/944 1070/2760/944 1075/2757/948 +f 1077/2759/947 1079/2762/948 1075/2757/948 +f 1078/2761/947 1080/2820/948 1079/2762/948 +f 1078/2755/947 1077/2768/947 1081/2766/945 +f 1083/2767/946 1084/2769/945 1081/2766/945 +f 1064/2754/946 1085/3167/945 1084/2769/945 +f 1064/2773/946 1083/2776/946 1086/2774/954 +f 1083/2776/946 1090/2779/955 1088/2777/954 +f 1089/2778/955 1091/2838/954 1088/2777/954 +f 1089/2783/955 1090/2786/955 1092/2784/958 +f 1090/2786/955 1095/2789/959 1094/2787/958 +f 1065/2788/959 1096/2873/958 1094/2787/958 +f 1065/2793/959 1095/2797/959 1097/2794/962 +f 1099/2796/963 1101/2799/962 1097/2794/962 +f 1100/2798/963 1102/3168/962 1101/2799/962 +f 1100/2803/963 1099/2807/963 1103/2804/966 +f 1105/2806/967 1106/2809/966 1103/2804/966 +f 1066/2808/967 1107/3169/966 1106/2809/966 +f 1066/2813/967 1105/2817/967 1108/2814/970 +f 1110/2816/971 1112/2819/970 1108/2814/970 +f 1111/2818/971 1113/2853/970 1112/2819/970 +f 1111/2821/971 1110/2825/971 1114/2822/972 +f 1116/2824/973 1118/2827/972 1114/2822/972 +f 1117/2826/973 1119/3170/972 1118/2827/972 +f 1117/2831/973 1116/2834/973 1120/2832/976 +f 1116/2834/973 1071/2837/942 1122/2835/976 +f 1067/2836/942 1123/3171/976 1122/2835/976 +f 1127/2842/975 1517/2866/980 1128/2843/980 +f 1128/2843/980 1131/2846/980 1130/2845/952 +f 1131/2846/980 1132/2867/980 1126/2847/952 +f 1126/2771/952 1137/3172/951 1133/2849/951 +f 1133/2849/951 1135/2852/951 1134/2851/953 +f 1135/2852/951 1518/2770/951 1136/2772/953 +f 1136/2854/953 1519/2763/949 1138/2855/949 +f 1138/2855/949 1140/2858/949 1139/2857/950 +f 1140/2858/949 1141/2765/949 1125/2764/950 +f 1125/2801/950 1520/3173/964 1142/2862/964 +f 1139/2863/950 1142/2862/964 1143/2864/964 +f 1143/2864/964 1146/2800/964 1145/2802/965 +f 1145/2868/965 1521/2743/940 1147/2869/940 +f 1144/2870/965 1147/2869/940 1148/2871/940 +f 1148/2871/940 1151/2745/940 1150/2744/941 +f 1150/2782/941 1156/2781/957 1152/2874/957 +f 1152/2874/957 1154/2877/957 1153/2876/956 +f 1154/2877/957 1522/3174/957 1155/2780/956 +f 1155/2878/956 1523/2810/968 1157/2879/968 +f 1153/2880/956 1157/2879/968 1158/2881/968 +f 1158/2881/968 1160/2812/968 1124/2811/969 +f 1124/2883/969 1524/2859/981 1161/2884/981 +f 1161/2884/981 1163/2887/981 1162/2886/982 +f 1163/2887/981 1165/2861/981 1164/2860/982 +f 1164/2888/982 1525/2790/960 1166/2889/960 +f 1162/2890/982 1166/2889/960 1167/2891/960 +f 1167/2891/960 1170/2792/960 1169/2791/961 +f 1169/2893/961 1526/2828/974 1171/2894/974 +f 1171/2894/974 1172/2897/974 1129/2896/975 +f 1172/2897/974 1173/2830/974 1127/2829/975 +f 1252/1329/832 1250/1321/845 1247/1461/845 +f 1262/1366/855 1260/1428/827 1257/1355/827 +f 1050/2715/901 1049/2725/901 1047/2716/838 +f 1244/1305/825 1241/1296/825 1242/1397/908 +f 1058/2718/852 1057/2901/852 1055/2719/833 +f 1366/1527/930 1360/1526/931 1361/1497/931 +f 1202/1423/829 1201/1458/829 1199/2571/852 +f 1260/1428/827 1258/1425/901 1255/1344/901 +f 1266/2572/852 1264/1364/833 1261/1419/833 +f 1035/2721/908 1033/2903/908 1034/2722/828 +f 1256/2560/838 1251/1318/875 1254/1433/875 +f 1242/1397/908 1239/1399/828 1240/1304/828 +f 1250/1321/845 1248/1323/826 1245/1415/826 +f 1052/2724/827 1051/2732/827 1049/2725/901 +f 1060/2726/832 1044/2905/832 1042/2727/845 +f 1181/1313/843 1180/1311/843 1178/1310/825 +f 1174/2574/828 1176/2576/828 1203/1382/849 +f 1347/1479/932 1344/1513/932 1345/1515/933 +f 1032/2723/828 1034/2722/828 1062/2729/849 +f 1362/2603/827 1363/2593/827 1355/1477/934 +f 1269/1341/849 1268/1343/829 1265/1352/829 +f 1351/1530/935 1340/1511/936 1337/1520/936 +f 1239/1399/828 1269/1341/849 1267/1302/849 +f 1246/1540/843 1241/1296/825 1244/1305/825 +f 1190/2564/838 1189/2586/838 1188/1374/875 +f 1185/1381/845 1184/1455/845 1182/1412/826 +f 1054/2731/855 1053/2733/855 1051/2732/827 +f 1264/1364/833 1262/1366/855 1259/1357/855 +f 1056/2720/833 1055/2719/833 1053/2733/855 +f 1200/1424/852 1199/2571/852 1197/1367/833 +f 1063/2730/849 1062/2729/849 1059/2734/829 +f 1466/2736/827 1475/2993/855 1478/2737/937 +f 1041/2739/826 1040/2742/826 1038/2740/843 +f 1043/2728/845 1042/2727/845 1040/2742/826 +f 1248/1323/826 1246/1540/843 1243/1413/843 +f 1179/1333/825 1178/1310/825 1175/1401/908 +f 1217/1380/832 1186/1373/832 1184/1455/845 +f 1254/1433/875 1251/1318/875 1252/1329/832 +f 1369/1476/939 1356/1517/939 1353/1533/934 +f 1521/2743/940 1145/2868/965 1150/2744/941 +f 1082/2753/945 1085/3167/945 1064/2754/946 +f 1519/2763/949 1136/2854/953 1125/2764/950 +f 1518/2770/951 1137/3172/951 1126/2771/952 +f 1155/2780/956 1522/3174/957 1156/2781/957 +f 1525/2790/960 1164/2888/982 1169/2791/961 +f 1146/2800/964 1520/3173/964 1125/2801/950 +f 1523/2810/968 1155/2878/956 1124/2811/969 +f 1072/2756/944 1076/2758/948 1080/2820/948 +f 1526/2828/974 1169/2893/961 1127/2829/975 +f 1064/2773/946 1087/2775/954 1091/2838/954 +f 1485/2839/977 1481/3125/1105 1477/2840/978 +f 1072/2751/944 1067/2746/942 1069/2748/943 +f 1111/2818/971 1066/2813/967 1109/2815/970 +f 1524/2859/981 1124/2883/969 1164/2860/982 +f 1517/2866/980 1127/2842/975 1126/2847/952 +f 1065/2788/959 1089/2783/955 1093/2785/958 +f 1098/2795/962 1102/3168/962 1100/2798/963 +f 1104/2805/966 1107/3169/966 1066/2808/967 +f 1115/2823/972 1119/3170/972 1117/2826/973 +f 1121/2833/976 1123/3171/976 1067/2836/942 +f 1048/2898/838 1047/3175/838 1046/2899/875 +f 1258/1425/901 1256/2583/838 1253/2567/838 +f 1316/1505/983 1311/1523/983 1308/1495/984 +f 1217/1380/832 1187/1336/875 1188/1374/875 +f 1061/2735/829 1059/2734/829 1057/2901/852 +f 1037/2902/825 1036/2904/825 1033/2903/908 +f 1183/2559/826 1182/1412/826 1180/1311/843 +f 1196/2562/855 1195/1361/855 1193/1351/827 +f 1194/1325/827 1193/1351/827 1191/1350/901 +f 1204/1464/849 1203/1382/849 1201/1458/829 +f 1198/1359/833 1197/1367/833 1195/1361/855 +f 1177/1334/908 1175/1401/908 1176/2576/828 +f 1192/1339/901 1191/1350/901 1189/2585/838 +f 1335/1489/985 1323/1490/985 1324/1483/986 +f 1327/1503/829 1322/1472/829 1321/1471/986 +f 1331/1164/987 1329/1166/988 1326/1502/988 +f 1317/1508/989 1305/1534/990 1306/1500/990 +f 1310/1491/984 1308/1495/984 1313/2597/825 +f 1303/1504/989 1312/2596/825 1313/2597/825 +f 1268/1343/829 1266/2572/852 1263/1451/852 +f 1039/2741/843 1038/2740/843 1036/2904/825 +f 1343/1522/832 1338/1521/832 1337/1520/936 +f 1366/1527/930 1358/1486/930 1363/2593/827 +f 1060/2726/832 1045/2900/875 1046/2899/875 +f 1329/1166/988 1322/1472/829 1327/1503/829 +f 1345/1515/933 1338/1521/832 1343/1522/832 +f 1440/2906/991 1450/3078/1088 1444/2907/992 +f 1507/2909/994 1386/3162/1006 1370/2910/995 +f 1385/2912/997 1384/2973/1038 1377/2913/908 +f 1459/2918/1000 1469/2738/938 1464/2919/1001 +f 1403/2921/1003 1414/3098/1095 1416/2922/1004 +f 1416/2922/1004 1409/3132/1042 1407/2927/1008 +f 1510/2928/849 1515/3151/1112 1385/2912/997 +f 1500/2929/1009 1499/3155/1100 1507/2930/994 +f 1465/2932/1010 1468/3109/1102 1458/2933/1011 +f 1442/2935/875 1452/3176/838 1446/2936/1013 +f 1454/2934/1012 1453/2920/1002 1464/2919/1001 +f 1394/2941/1016 1403/2921/1003 1405/2942/1005 +f 1479/2944/1018 1472/2991/1046 1462/2945/1019 +f 1372/2950/1022 1391/3144/1111 1395/2951/1023 +f 1377/2913/908 1393/2963/825 1394/2941/1016 +f 1505/2954/1026 1498/3157/829 1496/2955/852 +f 1473/2957/1028 1476/2966/1034 1467/2958/1029 +f 1463/2960/1030 1467/3177/1029 1457/2961/1031 +f 1393/2963/825 1397/2972/1037 1399/2964/1033 +f 1476/2966/1034 1479/2944/1018 1470/2946/1020 +f 1469/2738/938 1478/2737/937 1471/2970/1036 +f 1379/2952/1024 1395/2951/1023 1397/2972/1037 +f 1464/2971/1001 1471/2970/1036 1474/2977/979 +f 1416/2982/1004 1417/3141/1081 1420/2983/1041 +f 1455/2985/901 1466/2736/827 1469/2738/938 +f 1473/2986/1028 1484/3129/1107 1487/2987/1043 +f 1409/2984/1042 1420/2983/1041 1423/2989/1044 +f 1472/2991/1046 1483/3160/1113 1486/2992/833 +f 1382/2994/1047 1383/3126/1103 1374/2995/1048 +f 1478/2737/937 1488/3012/1056 1482/3000/1050 +f 1480/3002/1051 1483/3160/1113 1472/2991/1046 +f 1446/3004/1013 1459/2918/1000 1453/3005/1002 +f 1428/3007/1053 1434/3117/1104 1435/2937/1014 +f 1474/2841/979 1471/3001/1036 1482/3000/1050 +f 1496/2955/852 1491/3091/1092 1488/3012/1056 +f 1406/2979/1039 1408/2981/1040 1412/3013/1057 +f 1451/3015/1059 1445/3073/1083 1437/3016/1060 +f 1410/3018/1062 1418/3081/1089 1421/3019/845 +f 1401/3014/1058 1412/3013/1057 1415/3021/1063 +f 1438/3008/1054 1441/3178/1061 1431/3024/1065 +f 1502/3028/1067 1513/3039/1076 1508/3029/1068 +f 1514/3031/1070 1515/3151/1112 1505/2954/1026 +f 1433/3036/1073 1426/3179/1110 1425/3037/1074 +f 1502/3028/1067 1498/3157/829 1510/2928/849 +f 1422/3038/1075 1419/3033/1055 1430/3035/1072 +f 1421/3019/845 1418/3081/1089 1429/3040/1077 +f 1432/3041/832 1429/3040/1077 1439/3042/1078 +f 1508/3043/1068 1382/3050/1047 1388/3044/1049 +f 1508/3043/1068 1513/3039/1076 1376/3049/1080 +f 1417/3051/1081 1428/3180/1053 1431/3052/1065 +f 1396/2943/1017 1405/2942/1005 1407/3057/1008 +f 1393/2963/825 1400/2965/843 1403/2921/1003 +f 1398/3059/1082 1392/2940/1015 1375/2939/999 +f 1433/3061/1073 1430/3054/1072 1440/3056/991 +f 1444/3063/992 1450/3089/1088 1456/3064/1032 +f 1451/3066/1059 1454/3079/1012 1458/3067/1011 +f 1449/3069/1084 1452/3176/838 1442/2935/875 +f 1447/3070/1085 1444/3063/992 1457/3065/1031 +f 1447/3070/1085 1460/3071/1086 1461/3074/1087 +f 1460/3076/1086 1470/3163/1020 1462/2945/1019 +f 1448/3006/1052 1453/3005/1002 1454/3079/1012 +f 1452/3080/838 1455/2985/901 1459/2918/1000 +f 1476/2988/1034 1487/2987/1043 1480/3002/1051 +f 1425/3037/1074 1426/3179/1110 1429/3040/1077 +f 1419/3011/1055 1422/3122/1075 1412/3082/1057 +f 1388/3044/1049 1373/3165/998 1512/3083/1090 +f 1475/2993/855 1486/2992/833 1488/3012/1056 +f 1503/3032/1071 1500/2929/1009 1511/2931/996 +f 1404/3085/1064 1399/2964/1033 1397/2972/1037 +f 1447/3087/1085 1449/3069/1084 1439/3042/1078 +f 1491/3091/1092 1502/3028/1067 1504/3092/1069 +f 1487/3095/1043 1497/3181/1099 1492/3096/1094 +f 1414/3098/1095 1411/3020/826 1421/3019/845 +f 1506/3100/1097 1509/3146/1079 1512/3101/1090 +f 1497/3103/1099 1495/3152/1108 1499/3104/1100 +f 1510/2928/849 1389/2914/828 1376/3049/1080 +f 1489/3106/1101 1493/3093/1093 1504/3092/1069 +f 1435/2937/1014 1446/2936/1013 1448/3110/1052 +f 1429/3040/1077 1426/3143/1110 1436/3112/1091 +f 1383/3113/1103 1378/2953/1025 1394/2941/1016 +f 1395/3086/1023 1391/3158/1111 1401/3116/1058 +f 1432/3041/832 1442/2935/875 1435/2937/1014 +f 1420/3053/1041 1431/3052/1065 1427/3027/1066 +f 1398/3058/1082 1407/3057/1008 1402/2969/1035 +f 1466/2736/827 1462/2945/1019 1472/2991/1046 +f 1396/3114/1017 1398/3059/1082 1374/3060/1048 +f 1415/3121/1063 1412/3082/1057 1422/3122/1075 +f 1382/2994/1047 1376/3049/1080 1378/2953/1025 +f 1380/3127/1106 1379/3182/1024 1384/2973/1038 +f 1372/3130/1022 1379/3182/1024 1380/3127/1106 +f 1399/2964/1033 1410/3018/1062 1411/3020/826 +f 1431/3024/1065 1441/3178/1061 1437/3048/1060 +f 1409/3132/1042 1413/2999/1045 1402/2998/1035 +f 1411/3020/826 1414/3098/1095 1403/2921/1003 +f 1495/3133/1108 1497/3181/1099 1487/3095/1043 +f 1397/2972/1037 1393/2963/825 1377/2913/908 +f 1485/3135/977 1482/3166/1050 1493/3136/1093 +f 1414/3098/1095 1424/3099/1096 1417/3141/1081 +f 1415/3021/1063 1410/3018/1062 1399/2964/1033 +f 1433/3061/1073 1443/3062/993 1436/3112/1091 +f 1461/3074/1087 1455/2985/901 1452/3080/838 +f 1371/2947/1007 1390/2949/1021 1391/3144/1111 +f 1462/2945/1019 1466/2736/827 1455/2985/901 +f 1506/3107/1097 1501/3148/1098 1490/3145/1109 +f 1485/3135/977 1489/3137/1101 1490/3140/1109 +f 1486/2992/833 1483/3160/1113 1494/2956/1027 +f 1504/3030/1069 1508/3029/1068 1509/3146/1079 +f 1492/3149/1094 1503/3154/1071 1505/2954/1026 +f 1514/3150/1070 1380/3183/1106 1385/2912/997 +f 1497/3103/1099 1500/3105/1009 1503/3154/1071 +f 1443/2908/993 1444/2907/992 1447/3087/1085 +f 1491/3091/1092 1496/2955/852 1498/3157/829 +f 1465/2978/1010 1474/2977/979 1477/3120/978 +f 1406/2976/1039 1401/3116/1058 1391/3158/1111 +f 1505/2954/1026 1515/3151/1112 1510/2928/849 +f 1441/3017/1061 1438/3111/1054 1448/3110/1052 +f 1480/3097/1051 1492/3096/1094 1494/2956/1027 +f 1434/3117/1104 1428/3180/1053 1417/3051/1081 +f 1425/3123/1074 1418/3081/1089 1410/3018/1062 +f 1370/2910/995 1380/3183/1106 1514/3150/1070 +f 1421/3019/845 1432/3041/832 1434/3117/1104 +f 1370/3131/995 1386/2924/1006 1371/2926/1007 +f 1388/2996/1049 1374/2995/1048 1375/2917/999 +f 1376/3049/1080 1389/2914/828 1377/2913/908 +f 1457/2961/1031 1467/3177/1029 1470/3163/1020 +f 1488/3012/1056 1491/3091/1092 1493/3136/1093 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_chain.obj b/src/main/resources/assets/hbm/models/bombs/n45_chain.obj deleted file mode 100644 index aa2cf4c00..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_chain.obj +++ /dev/null @@ -1,1133 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_chain.blend' -# www.blender.org -o Torus -v 0.000000 -0.000000 -0.110000 -v 0.020000 -0.000000 -0.090000 -v 0.000000 -0.000000 -0.070000 -v -0.020000 -0.000000 -0.090000 -v -0.000000 0.116673 -0.077782 -v 0.020000 0.095459 -0.063640 -v -0.000000 0.074246 -0.049497 -v -0.020000 0.095459 -0.063640 -v -0.000000 0.165000 -0.000000 -v 0.020000 0.135000 -0.000000 -v -0.000000 0.105000 -0.000000 -v -0.020000 0.135000 -0.000000 -v -0.000000 0.116673 0.077782 -v 0.020000 0.095459 0.063640 -v -0.000000 0.074246 0.049497 -v -0.020000 0.095459 0.063640 -v 0.000000 -0.000000 0.110000 -v 0.020000 -0.000000 0.090000 -v 0.000000 -0.000000 0.070000 -v -0.020000 -0.000000 0.090000 -v 0.000000 0.835000 0.000000 -v 0.020000 0.865000 0.000000 -v 0.000000 0.895000 0.000000 -v -0.020000 0.865000 0.000000 -v 0.000000 0.883327 -0.077782 -v 0.020000 0.904541 -0.063640 -v 0.000000 0.925754 -0.049497 -v -0.020000 0.904541 -0.063640 -v 0.000000 1.000000 -0.110000 -v 0.020000 1.000000 -0.090000 -v 0.000000 1.000000 -0.070000 -v -0.020000 1.000000 -0.090000 -v 0.000000 1.000000 0.110000 -v 0.020000 1.000000 0.090000 -v 0.000000 1.000000 0.070000 -v -0.020000 1.000000 0.090000 -v 0.000000 0.883327 0.077782 -v 0.020000 0.904541 0.063640 -v 0.000000 0.925754 0.049498 -v -0.020000 0.904541 0.063640 -v 0.000000 0.501667 0.000000 -v 0.020000 0.531667 0.000000 -v 0.000000 0.561667 0.000000 -v -0.020000 0.531667 0.000000 -v 0.000000 0.549994 -0.077782 -v 0.020000 0.571207 -0.063640 -v 0.000000 0.592420 -0.049497 -v -0.020000 0.571207 -0.063640 -v 0.000000 0.666667 -0.110000 -v 0.020000 0.666667 -0.090000 -v 0.000000 0.666667 -0.070000 -v -0.020000 0.666667 -0.090000 -v -0.000000 0.783339 -0.077782 -v 0.020000 0.762126 -0.063640 -v -0.000000 0.740913 -0.049497 -v -0.020000 0.762126 -0.063640 -v -0.000000 0.831667 -0.000000 -v 0.020000 0.801667 -0.000000 -v -0.000000 0.771667 -0.000000 -v -0.020000 0.801667 -0.000000 -v -0.000000 0.783339 0.077782 -v 0.020000 0.762126 0.063640 -v -0.000000 0.740913 0.049497 -v -0.020000 0.762126 0.063640 -v 0.000000 0.666667 0.110000 -v 0.020000 0.666667 0.090000 -v 0.000000 0.666667 0.070000 -v -0.020000 0.666667 0.090000 -v 0.000000 0.549994 0.077782 -v 0.020000 0.571207 0.063640 -v 0.000000 0.592420 0.049498 -v -0.020000 0.571207 0.063640 -v 0.000000 0.168333 0.000000 -v 0.020000 0.198333 0.000000 -v 0.000000 0.228333 0.000000 -v -0.020000 0.198333 0.000000 -v 0.000000 0.216661 -0.077782 -v 0.020000 0.237874 -0.063640 -v 0.000000 0.259087 -0.049497 -v -0.020000 0.237874 -0.063640 -v 0.000000 0.333333 -0.110000 -v 0.020000 0.333333 -0.090000 -v 0.000000 0.333333 -0.070000 -v -0.020000 0.333333 -0.090000 -v -0.000000 0.450006 -0.077782 -v 0.020000 0.428793 -0.063640 -v -0.000000 0.407579 -0.049497 -v -0.020000 0.428793 -0.063640 -v -0.000000 0.498333 -0.000000 -v 0.020000 0.468333 -0.000000 -v -0.000000 0.438333 -0.000000 -v -0.020000 0.468333 -0.000000 -v -0.000000 0.450006 0.077782 -v 0.020000 0.428793 0.063640 -v -0.000000 0.407579 0.049497 -v -0.020000 0.428793 0.063640 -v 0.000000 0.333333 0.110000 -v 0.020000 0.333333 0.090000 -v 0.000000 0.333333 0.070000 -v -0.020000 0.333333 0.090000 -v 0.000000 0.216661 0.077782 -v 0.020000 0.237874 0.063640 -v 0.000000 0.259087 0.049498 -v -0.020000 0.237874 0.063640 -v -0.000000 0.001667 -0.000000 -v -0.000000 0.031667 -0.020000 -v -0.000000 0.061667 -0.000000 -v -0.000000 0.031667 0.020000 -v -0.077782 0.049994 -0.000000 -v -0.063640 0.071207 -0.020000 -v -0.049497 0.092420 -0.000000 -v -0.063640 0.071207 0.020000 -v -0.110000 0.166667 0.000000 -v -0.090000 0.166667 -0.020000 -v -0.070000 0.166667 0.000000 -v -0.090000 0.166667 0.020000 -v -0.077782 0.283339 0.000000 -v -0.063640 0.262126 -0.020000 -v -0.049497 0.240913 0.000000 -v -0.063640 0.262126 0.020000 -v -0.000000 0.331667 0.000000 -v -0.000000 0.301667 -0.020000 -v -0.000000 0.271667 0.000000 -v -0.000000 0.301667 0.020000 -v 0.077782 0.283339 0.000000 -v 0.063640 0.262126 -0.020000 -v 0.049497 0.240913 0.000000 -v 0.063640 0.262126 0.020000 -v 0.110000 0.166667 0.000000 -v 0.090000 0.166667 -0.020000 -v 0.070000 0.166667 0.000000 -v 0.090000 0.166667 0.020000 -v 0.077782 0.049994 0.000000 -v 0.063640 0.071207 -0.020000 -v 0.049498 0.092421 0.000000 -v 0.063640 0.071207 0.020000 -v -0.000000 0.668333 -0.000000 -v -0.000000 0.698333 -0.020000 -v -0.000000 0.728333 -0.000000 -v -0.000000 0.698333 0.020000 -v -0.077782 0.716661 -0.000000 -v -0.063640 0.737874 -0.020000 -v -0.049497 0.759087 -0.000000 -v -0.063640 0.737874 0.020000 -v -0.110000 0.833333 0.000000 -v -0.090000 0.833333 -0.020000 -v -0.070000 0.833333 0.000000 -v -0.090000 0.833333 0.020000 -v -0.077782 0.950006 0.000000 -v -0.063640 0.928793 -0.020000 -v -0.049497 0.907579 0.000000 -v -0.063640 0.928793 0.020000 -v -0.000000 0.998333 0.000000 -v -0.000000 0.968333 -0.020000 -v -0.000000 0.938333 0.000000 -v -0.000000 0.968333 0.020000 -v 0.077782 0.950006 0.000000 -v 0.063640 0.928793 -0.020000 -v 0.049497 0.907579 0.000000 -v 0.063640 0.928793 0.020000 -v 0.110000 0.833333 0.000000 -v 0.090000 0.833333 -0.020000 -v 0.070000 0.833333 0.000000 -v 0.090000 0.833333 0.020000 -v 0.077782 0.716661 0.000000 -v 0.063640 0.737874 -0.020000 -v 0.049498 0.759087 0.000000 -v 0.063640 0.737874 0.020000 -v -0.000000 0.335000 -0.000000 -v -0.000000 0.365000 -0.020000 -v -0.000000 0.395000 -0.000000 -v -0.000000 0.365000 0.020000 -v -0.077782 0.383327 -0.000000 -v -0.063640 0.404541 -0.020000 -v -0.049497 0.425754 -0.000000 -v -0.063640 0.404541 0.020000 -v -0.110000 0.500000 0.000000 -v -0.090000 0.500000 -0.020000 -v -0.070000 0.500000 0.000000 -v -0.090000 0.500000 0.020000 -v -0.077782 0.616673 0.000000 -v -0.063640 0.595459 -0.020000 -v -0.049497 0.574246 0.000000 -v -0.063640 0.595459 0.020000 -v -0.000000 0.665000 0.000000 -v -0.000000 0.635000 -0.020000 -v -0.000000 0.605000 0.000000 -v -0.000000 0.635000 0.020000 -v 0.077782 0.616673 0.000000 -v 0.063640 0.595459 -0.020000 -v 0.049497 0.574246 0.000000 -v 0.063640 0.595459 0.020000 -v 0.110000 0.500000 0.000000 -v 0.090000 0.500000 -0.020000 -v 0.070000 0.500000 0.000000 -v 0.090000 0.500000 0.020000 -v 0.077782 0.383327 0.000000 -v 0.063640 0.404541 -0.020000 -v 0.049498 0.425754 0.000000 -v 0.063640 0.404541 0.020000 -vt 0.333333 0.000000 -vt 0.333333 0.130952 -vt 0.291667 0.119048 -vt 0.291667 0.869048 -vt 0.291667 0.761905 -vt 0.333333 0.773809 -vt 0.875000 0.488095 -vt 0.916666 0.476191 -vt 0.916666 0.583333 -vt 0.125000 0.535715 -vt 0.166667 0.523810 -vt 0.166667 0.654762 -vt 0.041667 0.654762 -vt 0.041667 0.785714 -vt 0.000000 0.773809 -vt 0.791667 0.869048 -vt 0.791667 0.976190 -vt 0.750000 0.964286 -vt 0.875000 0.773809 -vt 0.916667 0.761905 -vt 0.916667 0.869047 -vt 0.750000 0.642857 -vt 0.708333 0.654762 -vt 0.708333 0.523809 -vt 0.666667 0.130952 -vt 0.708333 0.142857 -vt 0.708333 0.250000 -vt 0.541667 0.869048 -vt 0.583333 0.880952 -vt 0.583333 0.964286 -vt 0.791667 0.964286 -vt 0.791667 0.880952 -vt 0.833333 0.869048 -vt 0.083333 0.535714 -vt 0.083333 0.642857 -vt 0.291667 0.261905 -vt 0.250000 0.250000 -vt 0.250000 0.142857 -vt 0.166667 0.785714 -vt 0.208333 0.797619 -vt 0.208333 0.880953 -vt 0.000000 0.880952 -vt 0.000000 0.797619 -vt 0.583333 0.273810 -vt 0.583333 0.380952 -vt 0.541667 0.392857 -vt 0.250000 0.392857 -vt 0.208333 0.380952 -vt 0.208334 0.273810 -vt 0.916666 0.345238 -vt 0.875000 0.333333 -vt 0.875000 0.250000 -vt 0.916667 0.666667 -vt 0.916667 0.750000 -vt 0.875000 0.761905 -vt 0.583333 0.511905 -vt 0.583333 0.404762 -vt 0.625000 0.392857 -vt 0.666666 0.392857 -vt 0.625000 0.380952 -vt 0.625000 0.273810 -vt 0.083333 0.892857 -vt 0.125000 0.904762 -vt 0.125000 0.988095 -vt 0.958333 0.750000 -vt 0.958333 0.666667 -vt 1.000000 0.654762 -vt 0.500000 0.404762 -vt 0.500000 0.511905 -vt 0.458333 0.523809 -vt 0.125000 0.773810 -vt 0.125000 0.785714 -vt 0.125000 0.892857 -vt 0.083333 0.880952 -vt 0.958333 0.357143 -vt 1.000000 0.345238 -vt 1.000000 0.452381 -vt 0.541667 0.250000 -vt 0.500000 0.261905 -vt 0.500000 0.130952 -vt 0.166667 0.000000 -vt 0.166667 0.130952 -vt 0.125000 0.119048 -vt 0.791666 0.500000 -vt 0.791666 0.607143 -vt 0.750000 0.595238 -vt 0.750000 0.404762 -vt 0.791666 0.392857 -vt 0.208333 0.011905 -vt 0.250000 0.000000 -vt 0.250000 0.130952 -vt 0.083333 0.523810 -vt 0.041667 0.511905 -vt 0.041667 0.404762 -vt 0.916666 0.238095 -vt 0.875000 0.226190 -vt 0.875000 0.142857 -vt 0.041667 0.880952 -vt 0.041667 0.797619 -vt 0.083333 0.785714 -vt 0.500000 0.380952 -vt 0.500000 0.273809 -vt 0.541667 0.261905 -vt 0.583333 0.261905 -vt 0.541667 0.142857 -vt 0.958333 0.000000 -vt 1.000000 0.011905 -vt 1.000000 0.095238 -vt 0.958333 0.333333 -vt 0.958333 0.250000 -vt 1.000000 0.238095 -vt 0.541667 0.535714 -vt 0.541667 0.642857 -vt 0.500000 0.654762 -vt 0.041667 0.130952 -vt 0.041667 0.261905 -vt 0.000000 0.250000 -vt 1.000000 0.761905 -vt 1.000000 0.869047 -vt 0.958333 0.857143 -vt 0.250000 0.785714 -vt 0.250000 0.892857 -vt 0.375000 0.535714 -vt 0.416667 0.523809 -vt 0.416667 0.654762 -vt 0.083333 0.130952 -vt 0.083333 0.261905 -vt 0.041667 0.250000 -vt 0.541667 0.654762 -vt 0.541667 0.761905 -vt 0.500000 0.750000 -vt 0.916666 0.380952 -vt 0.958333 0.369048 -vt 0.958333 0.476190 -vt 0.458333 0.011905 -vt 0.500000 0.000000 -vt 0.416667 0.261905 -vt 0.458333 0.273810 -vt 0.458333 0.380952 -vt 0.500000 0.761905 -vt 0.458333 0.750000 -vt 0.458333 0.666667 -vt 0.416667 0.964286 -vt 0.416667 0.880952 -vt 0.458333 0.869048 -vt 0.125000 0.666667 -vt 0.291667 0.392857 -vt 0.250000 0.380952 -vt 0.250000 0.273810 -vt 0.333333 0.761905 -vt 0.291667 0.750000 -vt 0.291667 0.666667 -vt 0.791666 0.357143 -vt 0.791666 0.273809 -vt 0.833333 0.261905 -vt 0.208333 0.142857 -vt 0.208333 0.250000 -vt 0.166667 0.261905 -vt 0.583333 0.654762 -vt 0.583333 0.523809 -vt 0.625000 0.535714 -vt 0.958333 0.761905 -vt 0.958333 0.869047 -vt 0.916667 0.857143 -vt 0.000000 0.904762 -vt 0.041667 0.892857 -vt 0.041667 1.000000 -vt 0.666666 0.273809 -vt 0.708333 0.261905 -vt 0.708333 0.392857 -vt 0.083333 0.000000 -vt 0.041667 0.119048 -vt 0.416667 0.869048 -vt 0.416667 0.976191 -vt 0.375000 0.964286 -vt 0.750000 0.273809 -vt 0.791666 0.261905 -vt 0.791666 0.369048 -vt 0.250000 0.261905 -vt 0.208333 0.392857 -vt 0.166667 0.380953 -vt 0.166667 0.273810 -vt 0.833333 0.750000 -vt 0.833333 0.666667 -vt 0.833333 0.345238 -vt 0.000000 0.642857 -vt 0.000000 0.535714 -vt 0.041667 0.523810 -vt 0.208333 0.523810 -vt 0.166667 0.511905 -vt 0.166667 0.404762 -vt 0.708334 0.869048 -vt 0.750000 0.880952 -vt 0.958333 0.571428 -vt 0.958333 0.488095 -vt 1.000000 0.476191 -vt 0.125000 0.511905 -vt 0.125000 0.404762 -vt 0.166667 0.392857 -vt 0.291667 0.000000 -vt 0.291667 0.130952 -vt 0.250000 0.119048 -vt 0.833333 0.654762 -vt 0.833333 0.761905 -vt 0.791667 0.750000 -vt 0.916666 0.142857 -vt 0.958333 0.130952 -vt 0.958333 0.238095 -vt 0.041667 0.380952 -vt 0.000000 0.392857 -vt 0.000000 0.261905 -vt 0.750000 0.392857 -vt 0.750000 0.523809 -vt 0.708333 0.511905 -vt 0.833333 0.392857 -vt 0.833333 0.500000 -vt 0.791666 0.488095 -vt 0.875000 0.880952 -vt 0.916667 0.976190 -vt 0.208333 0.773810 -vt 0.625000 0.130952 -vt 0.583333 0.119048 -vt 0.583333 0.011905 -vt 0.791667 0.238095 -vt 0.750000 0.226190 -vt 0.750000 0.142857 -vt 0.166667 0.892857 -vt 0.750000 0.250000 -vt 0.083333 0.392857 -vt 0.875000 0.000000 -vt 0.916666 0.011905 -vt 0.916666 0.095238 -vt 0.791666 0.095238 -vt 0.791666 0.011905 -vt 0.833333 0.000000 -vt 0.416667 0.642857 -vt 0.416667 0.535714 -vt 0.625000 0.261905 -vt 0.583333 0.250000 -vt 0.375000 0.869048 -vt 0.375000 0.976190 -vt 0.333333 0.964286 -vt 0.166667 0.904762 -vt 0.208333 0.892857 -vt 0.208333 1.000000 -vt 0.375000 0.511905 -vt 0.333333 0.523809 -vt 0.333333 0.392857 -vt 0.208333 0.000000 -vt 0.208333 0.130952 -vt 0.166667 0.119048 -vt 0.791667 0.857143 -vt 0.458333 0.773809 -vt 0.500000 0.869047 -vt 0.375000 0.273809 -vt 0.416667 0.392857 -vt 0.666667 0.261905 -vt 0.625000 0.250000 -vt 0.625000 0.142857 -vt 0.750000 0.857143 -vt 0.750000 0.773809 -vt 0.250000 0.964286 -vt 0.250000 0.880953 -vt 0.625000 0.119048 -vt 0.625000 0.011905 -vt 0.666667 0.000000 -vt 0.375000 0.261905 -vt 0.333333 0.250000 -vt 0.333333 0.142857 -vt 0.500000 0.857143 -vt 0.500000 0.773809 -vt 0.833333 0.464286 -vt 0.833333 0.380952 -vt 0.875000 0.369048 -vt 0.500000 0.535714 -vt 0.500000 0.642857 -vt 0.458333 0.654762 -vt 0.250000 0.404762 -vt 0.875000 0.380952 -vt 0.916666 0.369048 -vt 0.291667 0.142857 -vt 0.333333 0.261905 -vt 0.458333 0.130952 -vt 0.458333 0.261905 -vt 0.416667 0.250000 -vt 0.416667 0.761905 -vt 0.375000 0.750000 -vt 0.291667 0.976191 -vt 0.666666 0.642857 -vt 0.625000 0.654762 -vt 0.625000 0.523809 -vt 0.125000 0.392857 -vt 0.083333 0.380953 -vt 0.083333 0.273810 -vt 0.916667 0.654762 -vt 0.666667 0.880952 -vt 0.666667 0.964285 -vt 0.625000 0.976190 -vt 0.458333 0.119048 -vt 0.416667 0.130952 -vt 0.125000 0.261905 -vt 0.083333 0.250000 -vt 0.083333 0.142857 -vt 0.875000 0.857143 -vt 0.916666 0.571429 -vt 0.916666 0.488095 -vt 0.333333 0.119048 -vt 0.333333 0.011905 -vt 0.375000 0.000000 -vt 0.541667 0.130952 -vt 0.541667 0.000000 -vt 0.250000 1.000000 -vt 0.208333 0.988095 -vt 0.541667 0.964285 -vt 0.500000 0.976190 -vt 0.250000 0.642857 -vt 0.208333 0.654762 -vt 0.583333 0.392857 -vt 0.541667 0.511905 -vt 0.375000 0.761905 -vt 0.416667 0.773810 -vt 0.583333 0.857143 -vt 0.291667 0.523810 -vt 0.666666 0.404762 -vt 0.666666 0.511905 -vt 0.250000 0.750000 -vt 0.250000 0.666667 -vt 0.666667 0.857143 -vt 0.666667 0.773809 -vt 0.708334 0.761905 -vt 0.041667 0.773810 -vt 0.041667 0.666667 -vt 0.083333 0.654762 -vt 0.125000 0.011905 -vt 0.583333 0.761905 -vt 0.541667 0.750000 -vt 0.541667 0.666667 -vt 0.791667 0.666667 -vt 0.750000 0.761905 -vt 0.375000 0.642857 -vt 0.333333 0.654762 -vt 0.375000 0.250000 -vt 0.458333 0.761905 -vt 0.416667 0.857143 -vt 0.833333 0.142857 -vt 0.875000 0.130952 -vt 0.875000 0.238095 -vt 0.291667 0.273810 -vt 0.750000 0.261905 -vt 0.708333 0.380952 -vt 0.666667 0.761905 -vt 0.666667 0.869047 -vt 0.625000 0.857143 -vt 0.500000 0.964285 -vt 0.458333 0.976190 -vt 0.291667 0.511905 -vt 0.291667 0.404762 -vt 0.833333 0.511905 -vt 0.833333 0.595238 -vt 0.625000 0.869048 -vt 0.250000 0.773809 -vt 0.208333 0.785714 -vt 0.708333 0.011905 -vt 0.708333 0.119048 -vt 0.166667 0.797619 -vt 0.166667 0.880952 -vt 0.416667 0.750000 -vt 0.416667 0.666667 -vt 0.125000 0.250000 -vt 0.125000 0.142857 -vt 0.000000 0.130952 -vt 0.000000 0.000000 -vt 0.041667 0.011905 -vt 0.083333 1.000000 -vt 0.041667 0.988095 -vt 0.708334 0.666667 -vt 0.750000 0.654762 -vt 0.458333 0.142857 -vt 0.458333 0.392857 -vt 0.791666 0.000000 -vt 0.791666 0.107143 -vt 0.750000 0.095238 -vt 0.333333 0.666667 -vt 0.375000 0.654762 -vt 0.000000 0.523810 -vt 0.625000 0.773809 -vt 0.708334 0.880952 -vt 0.708333 0.964285 -vt 0.666667 0.976190 -vt 0.750000 0.011905 -vt 0.750000 0.119048 -vt 0.708333 0.130952 -vt 0.541667 0.011905 -vt 0.541667 0.119048 -vt 0.875000 0.107143 -vt 0.833333 0.095238 -vt 0.833333 0.011905 -vt 1.000000 0.142857 -vt 1.000000 0.226190 -vt 0.291667 0.642857 -vt 0.291667 0.535714 -vt 0.291667 0.654762 -vt 0.833333 0.583333 -vt 0.833333 0.476191 -vt 0.958333 0.095238 -vt 0.916666 0.107143 -vt 0.916666 0.000000 -vt 0.375000 0.380952 -vt 0.666667 0.750000 -vt 0.625000 0.666667 -vt 0.666667 0.654762 -vt 0.041667 0.273810 -vt 0.458333 0.404762 -vt 0.458333 0.511905 -vt 0.625000 0.761905 -vt 0.583334 0.750000 -vt 0.583333 0.666667 -vt 0.250000 0.857143 -vt 0.583333 0.535714 -vt 0.583333 0.642857 -vt 0.375000 0.404762 -vt 0.833333 0.238095 -vt 0.791667 0.226190 -vt 0.791667 0.142857 -vt 0.833333 0.964286 -vt 0.833333 0.880952 -vt 0.875000 0.869048 -vt 0.125000 0.380953 -vt 0.125000 0.273810 -vt 0.416667 0.000000 -vt 0.375000 0.119047 -vt 0.958333 0.880952 -vt 1.000000 0.976190 -vt 0.125000 0.523810 -vt 0.125000 0.654762 -vt 0.166667 0.642857 -vt 0.333333 0.857143 -vt 0.541667 0.523810 -vt 0.291667 0.011905 -vt 0.875000 0.571429 -vt 0.125000 0.642857 -vt 0.000000 0.666667 -vt 0.750000 0.535714 -vt 0.541667 0.976190 -vt 0.833333 0.976190 -vt 0.875000 0.654762 -vt 0.083333 0.797619 -vt 0.958333 0.440476 -vt 0.750000 0.511905 -vt 0.750000 0.488095 -vt 0.208333 0.119048 -vt 0.916666 0.130952 -vt 0.583333 0.130952 -vt 0.958333 0.107143 -vt 0.500000 0.523809 -vt 0.000000 0.142857 -vt 0.958333 0.773809 -vt 0.041667 0.142857 -vt 0.500000 0.666667 -vt 0.916666 0.464286 -vt 0.833333 0.369048 -vt 0.625000 0.642857 -vt 0.916667 0.773809 -vt 0.000000 0.988095 -vt 0.666667 0.380952 -vt 0.375000 0.880952 -vt 0.750000 0.357143 -vt 0.208333 0.261905 -vt 0.708334 0.976190 -vt 1.000000 0.583333 -vt 0.250000 0.011905 -vt 0.916667 0.226190 -vt 0.708333 0.404762 -vt 0.791666 0.404762 -vt 0.875000 0.964285 -vt 0.208333 0.666667 -vt 0.625000 0.000000 -vt 0.791667 0.130952 -vt 0.166667 1.000000 -vt 0.833333 0.107143 -vt 0.583333 0.142857 -vt 0.333333 0.880952 -vt 0.166667 0.988095 -vt 0.166667 0.011905 -vt 0.791667 0.773809 -vt 0.458333 0.857143 -vt 0.791667 0.761905 -vt 0.375000 0.130952 -vt 0.875000 0.476191 -vt 0.250000 0.511905 -vt 0.875000 0.464286 -vt 0.291667 0.250000 -vt 0.416667 0.142857 -vt 0.375000 0.666667 -vt 0.666666 0.535714 -vt 0.125000 0.130952 -vt 0.958333 0.583333 -vt 0.208333 0.904762 -vt 0.541667 0.880952 -vt 0.250000 0.535714 -vt 0.541667 0.404762 -vt 0.583333 0.773809 -vt 0.375000 0.142857 -vt 0.833333 0.226191 -vt 0.291667 0.380953 -vt 0.708333 0.273809 -vt 0.500000 0.880952 -vt 0.041667 0.904762 -vt 0.708334 0.750000 -vt 0.458333 0.250000 -vt 0.333333 0.750000 -vt 0.583333 0.869047 -vt 0.708333 0.000000 -vt 0.958333 0.011905 -vt 0.666667 0.666667 -vt 0.625000 0.750000 -vt 0.833333 0.130952 -vt 0.875000 0.976190 -vt 0.375000 0.011905 -vt 0.958333 0.964285 -vt 0.166667 0.535715 -vn 0.694000 0.191600 -0.694000 -vn 0.694000 -0.191600 0.694000 -vn -0.694000 -0.191600 0.694000 -vn -0.694000 0.191600 -0.694000 -vn 0.786600 0.524400 -0.325800 -vn 0.786600 -0.524400 0.325800 -vn -0.786600 -0.524400 0.325800 -vn -0.786600 0.524400 -0.325800 -vn 0.786600 0.524400 0.325800 -vn 0.786600 -0.524400 -0.325800 -vn -0.786600 -0.524400 -0.325800 -vn -0.786600 0.524400 0.325800 -vn 0.694000 0.191600 0.694000 -vn 0.694000 -0.191600 -0.694000 -vn -0.694000 -0.191600 -0.694000 -vn -0.694000 0.191600 0.694000 -vn -0.325800 -0.524400 -0.786600 -vn 0.325800 0.524400 -0.786600 -vn 0.325800 0.524400 0.786600 -vn -0.325800 -0.524400 0.786600 -vn -0.325800 0.524400 -0.786600 -vn 0.325800 -0.524400 -0.786600 -vn 0.325800 -0.524400 0.786600 -vn -0.325800 0.524400 0.786600 -s off -f 1/1/1 5/2/1 6/3/1 -f 2/4/2 6/5/2 7/6/2 -f 7/7/3 8/8/3 4/9/3 -f 8/10/4 5/11/4 1/12/4 -f 5/13/5 9/14/5 10/15/5 -f 6/16/6 10/17/6 11/18/6 -f 11/19/7 12/20/7 8/21/7 -f 12/22/8 9/23/8 5/24/8 -f 13/25/9 14/26/9 10/27/9 -f 14/28/10 15/29/10 11/30/10 -f 11/31/11 15/32/11 16/33/11 -f 12/34/12 16/35/12 13/13/12 -f 17/36/13 18/37/13 14/38/13 -f 18/39/14 19/40/14 15/41/14 -f 15/42/15 19/43/15 20/14/15 -f 16/44/16 20/45/16 17/46/16 -f 25/47/10 26/48/10 22/49/10 -f 26/50/9 27/51/9 23/52/9 -f 23/53/12 27/54/12 28/55/12 -f 24/56/11 28/57/11 25/58/11 -f 29/59/14 30/60/14 26/61/14 -f 30/62/13 31/63/13 27/64/13 -f 27/65/16 31/66/16 32/67/16 -f 28/68/15 32/69/15 29/70/15 -f 33/12/2 37/39/2 38/71/2 -f 34/72/1 38/73/1 39/74/1 -f 39/75/4 40/76/4 36/77/4 -f 40/78/3 37/79/3 33/80/3 -f 37/81/6 21/82/6 22/83/6 -f 38/84/5 22/85/5 23/86/5 -f 23/87/8 24/88/8 40/84/8 -f 24/89/7 21/90/7 37/91/7 -f 45/92/10 46/93/10 42/94/10 -f 46/95/9 47/96/9 43/97/9 -f 43/98/12 47/99/12 48/100/12 -f 44/101/11 48/102/11 45/103/11 -f 49/104/14 50/78/14 46/105/14 -f 50/106/13 51/107/13 47/108/13 -f 47/109/16 51/110/16 52/111/16 -f 48/112/15 52/113/15 49/114/15 -f 49/115/1 53/116/1 54/117/1 -f 50/118/2 54/119/2 55/120/2 -f 55/40/3 56/121/3 52/122/3 -f 56/123/4 53/124/4 49/125/4 -f 53/126/5 57/127/5 58/128/5 -f 54/129/6 58/130/6 59/131/6 -f 59/132/7 60/133/7 56/134/7 -f 60/135/8 57/136/8 53/80/8 -f 61/137/9 62/138/9 58/139/9 -f 62/140/10 63/141/10 59/142/10 -f 59/143/11 63/144/11 64/145/11 -f 60/146/12 64/71/12 61/100/12 -f 65/147/13 66/148/13 62/149/13 -f 66/150/14 67/151/14 63/152/14 -f 63/153/15 67/154/15 68/155/15 -f 64/156/16 68/157/16 65/158/16 -f 65/159/2 69/160/2 70/161/2 -f 66/162/1 70/163/1 71/164/1 -f 71/165/4 72/166/4 68/167/4 -f 72/168/3 69/169/3 65/170/3 -f 69/171/6 41/126/6 42/172/6 -f 70/173/5 42/174/5 43/175/5 -f 43/176/8 44/177/8 72/178/8 -f 44/156/7 41/91/7 69/179/7 -f 77/180/10 78/181/10 74/182/10 -f 78/55/9 79/183/9 75/184/9 -f 75/52/12 79/51/12 80/185/12 -f 76/186/11 80/187/11 77/188/11 -f 81/189/14 82/190/14 78/191/14 -f 82/192/13 83/193/13 79/18/13 -f 79/194/16 83/195/16 84/196/16 -f 80/197/15 84/198/15 81/199/15 -f 81/200/1 85/201/1 86/202/1 -f 82/203/2 86/204/2 87/205/2 -f 87/206/3 88/207/3 84/208/3 -f 88/209/4 85/210/4 81/211/4 -f 85/212/5 89/213/5 90/214/5 -f 86/215/6 90/216/6 91/217/6 -f 91/218/7 92/21/7 88/219/7 -f 92/220/8 89/39/8 85/12/8 -f 93/221/9 94/222/9 90/223/9 -f 94/224/10 95/225/10 91/226/10 -f 91/64/11 95/63/11 96/227/11 -f 92/226/12 96/228/12 93/169/12 -f 97/229/13 98/198/13 94/197/13 -f 98/230/14 99/231/14 95/232/14 -f 95/233/15 99/234/15 100/235/15 -f 96/236/16 100/237/16 97/70/16 -f 97/221/2 101/238/2 102/239/2 -f 98/240/1 102/241/1 103/242/1 -f 103/243/4 104/244/4 100/245/4 -f 104/246/3 101/247/3 97/248/3 -f 101/249/6 73/250/6 74/251/6 -f 102/204/5 74/33/5 75/252/5 -f 75/253/8 76/140/8 104/254/8 -f 76/255/7 73/137/7 101/256/7 -f 109/257/17 110/258/17 106/259/17 -f 110/16/18 111/260/18 107/261/18 -f 107/262/19 111/263/19 112/4/19 -f 108/264/20 112/265/20 109/266/20 -f 113/267/15 114/268/15 110/269/15 -f 114/28/1 115/270/1 111/271/1 -f 111/272/13 115/273/13 116/274/13 -f 112/275/3 116/276/3 113/277/3 -f 113/189/4 117/180/4 118/278/4 -f 114/50/14 118/95/14 119/110/14 -f 119/279/2 120/280/2 116/8/2 -f 120/281/16 117/2/16 113/282/16 -f 117/283/21 121/284/21 122/285/21 -f 118/125/22 122/286/22 123/287/22 -f 123/242/23 124/288/23 120/4/23 -f 124/289/24 121/290/24 117/291/24 -f 125/292/18 126/293/18 122/294/18 -f 126/295/17 127/66/17 123/65/17 -f 123/296/20 127/297/20 128/298/20 -f 124/135/19 128/299/19 125/300/19 -f 129/301/1 130/302/1 126/303/1 -f 130/204/15 131/19/15 127/304/15 -f 127/305/3 131/306/3 132/134/3 -f 128/307/13 132/308/13 129/309/13 -f 129/310/14 133/311/14 134/223/14 -f 130/122/4 134/312/4 135/313/4 -f 135/314/16 136/315/16 132/254/16 -f 136/316/2 133/317/2 129/189/2 -f 133/318/22 105/160/22 106/319/22 -f 134/240/21 106/320/21 107/321/21 -f 107/322/24 108/28/24 136/130/24 -f 108/278/23 105/147/23 133/323/23 -f 141/58/17 142/324/17 138/325/17 -f 142/5/18 143/326/18 139/327/18 -f 139/328/19 143/329/19 144/330/19 -f 140/331/20 144/332/20 141/333/20 -f 145/171/15 146/334/15 142/83/15 -f 146/335/1 147/336/1 143/337/1 -f 143/338/13 147/205/13 148/339/13 -f 144/123/3 148/340/3 145/341/3 -f 145/300/4 149/137/4 150/342/4 -f 146/343/14 150/145/14 151/344/14 -f 151/345/2 152/346/2 148/347/2 -f 152/348/16 149/282/16 145/248/16 -f 149/349/21 153/212/21 154/350/21 -f 150/351/22 154/352/22 155/353/22 -f 155/354/23 156/355/23 152/145/23 -f 156/44/24 153/238/24 149/58/24 -f 157/247/18 158/356/18 154/357/18 -f 158/84/17 159/358/17 155/359/17 -f 155/30/20 159/29/20 160/360/20 -f 156/327/19 160/361/19 157/362/19 -f 161/266/1 162/363/1 158/364/1 -f 162/72/15 163/365/15 159/366/15 -f 159/367/3 163/368/3 164/277/3 -f 160/369/13 164/370/13 161/82/13 -f 161/371/14 165/372/14 166/373/14 -f 162/62/4 166/374/4 167/375/4 -f 167/376/16 168/377/16 164/339/16 -f 168/378/2 165/80/2 161/79/2 -f 165/379/22 137/284/22 138/102/22 -f 166/380/21 138/381/21 139/382/21 -f 139/383/24 140/384/24 168/320/24 -f 140/93/23 137/385/23 165/210/23 -f 173/24/17 174/325/17 170/324/17 -f 174/335/18 175/386/18 171/353/18 -f 171/387/19 175/388/19 176/389/19 -f 172/390/20 176/391/20 173/392/20 -f 177/136/15 178/393/15 174/394/15 -f 178/395/1 179/396/1 175/397/1 -f 175/398/13 179/399/13 180/208/13 -f 176/400/3 180/401/3 177/247/3 -f 177/323/4 181/402/4 182/316/4 -f 178/403/14 182/404/14 183/7/14 -f 183/405/2 184/406/2 180/407/2 -f 184/408/16 181/248/16 177/282/16 -f 181/24/21 185/23/21 186/289/21 -f 182/23/22 186/330/22 187/409/22 -f 187/410/23 188/411/23 184/351/23 -f 188/412/24 185/127/24 181/229/24 -f 189/256/18 190/413/18 186/414/18 -f 190/415/17 191/416/17 187/417/17 -f 187/418/20 191/361/20 192/5/20 -f 188/419/19 192/420/19 189/129/19 -f 193/124/1 194/246/1 190/421/1 -f 194/422/15 195/423/15 191/424/15 -f 191/425/3 195/426/3 196/427/3 -f 192/428/13 196/429/13 193/158/13 -f 193/430/14 197/300/14 198/431/14 -f 194/219/4 198/21/4 199/432/4 -f 199/432/16 200/119/16 196/433/16 -f 200/34/2 197/434/2 193/435/2 -f 197/189/22 169/317/22 170/436/22 -f 198/320/21 170/240/21 171/437/21 -f 171/260/24 172/192/24 200/330/24 -f 172/68/23 169/46/23 197/438/23 -f 2/439/1 1/1/1 6/3/1 -f 3/437/2 2/4/2 7/6/2 -f 3/440/3 7/7/3 4/9/3 -f 4/441/4 8/10/4 1/12/4 -f 6/442/5 5/13/5 10/15/5 -f 7/193/6 6/16/6 11/18/6 -f 7/304/7 11/19/7 8/21/7 -f 8/443/8 12/22/8 5/24/8 -f 9/257/9 13/25/9 10/27/9 -f 10/444/10 14/28/10 11/30/10 -f 12/445/11 11/31/11 16/33/11 -f 9/188/12 12/34/12 13/13/12 -f 13/201/13 17/36/13 14/38/13 -f 14/227/14 18/39/14 15/41/14 -f 16/166/15 15/42/15 20/14/15 -f 13/103/16 16/44/16 17/46/16 -f 21/179/10 25/47/10 22/49/10 -f 22/95/9 26/50/9 23/52/9 -f 24/446/12 23/53/12 28/55/12 -f 21/291/11 24/56/11 25/58/11 -f 25/257/14 29/59/14 26/61/14 -f 26/374/13 30/62/13 27/64/13 -f 28/118/16 27/65/16 32/67/16 -f 25/379/15 28/68/15 29/70/15 -f 34/146/2 33/12/2 38/71/2 -f 35/447/1 34/72/1 39/74/1 -f 35/448/4 39/75/4 36/77/4 -f 36/105/3 40/78/3 33/80/3 -f 38/334/6 37/81/6 22/83/6 -f 39/449/5 38/84/5 23/86/5 -f 39/450/8 23/87/8 40/84/8 -f 40/451/7 24/89/7 37/91/7 -f 41/229/10 45/92/10 42/94/10 -f 42/452/9 46/95/9 43/97/9 -f 44/62/12 43/98/12 48/100/12 -f 41/46/11 44/101/11 45/103/11 -f 45/453/14 49/104/14 46/105/14 -f 46/454/13 50/106/13 47/108/13 -f 48/76/16 47/109/16 52/111/16 -f 45/455/15 48/112/15 49/114/15 -f 50/456/1 49/115/1 54/117/1 -f 51/457/2 50/118/2 55/120/2 -f 51/41/3 55/40/3 52/122/3 -f 52/340/4 56/123/4 49/125/4 -f 54/458/5 53/126/5 58/128/5 -f 55/459/6 54/129/6 59/131/6 -f 55/460/7 59/132/7 56/134/7 -f 56/299/8 60/135/8 53/80/8 -f 57/256/9 61/137/9 58/139/9 -f 58/114/10 62/140/10 59/142/10 -f 60/355/11 59/143/11 64/145/11 -f 57/333/12 60/146/12 61/100/12 -f 61/36/13 65/147/13 62/149/13 -f 62/341/14 66/150/14 63/152/14 -f 64/461/15 63/153/15 68/155/15 -f 61/82/16 64/156/16 65/158/16 -f 66/462/2 65/159/2 70/161/2 -f 67/463/1 66/162/1 71/164/1 -f 67/464/4 71/165/4 68/167/4 -f 68/465/3 72/168/3 65/170/3 -f 70/373/6 69/171/6 42/172/6 -f 71/466/5 70/173/5 43/175/5 -f 71/467/8 43/176/8 72/178/8 -f 72/157/7 44/156/7 69/179/7 -f 73/468/10 77/180/10 74/182/10 -f 74/446/9 78/55/9 75/184/9 -f 76/422/12 75/52/12 80/185/12 -f 73/13/11 76/186/11 77/188/11 -f 77/180/14 81/189/14 78/191/14 -f 78/469/13 82/192/13 79/18/13 -f 80/470/16 79/194/16 84/196/16 -f 77/11/15 80/197/15 81/199/15 -f 82/471/1 81/200/1 86/202/1 -f 83/338/2 82/203/2 87/205/2 -f 83/472/3 87/206/3 84/208/3 -f 84/412/4 88/209/4 81/211/4 -f 86/473/5 85/212/5 90/214/5 -f 87/474/6 86/215/6 91/217/6 -f 87/475/7 91/218/7 88/219/7 -f 88/476/8 92/220/8 85/12/8 -f 89/477/9 93/221/9 90/223/9 -f 90/478/10 94/224/10 91/226/10 -f 92/479/11 91/64/11 96/227/11 -f 89/392/12 92/226/12 93/169/12 -f 93/92/13 97/229/13 94/197/13 -f 94/395/14 98/230/14 95/232/14 -f 96/480/15 95/233/15 100/235/15 -f 93/277/16 96/236/16 97/70/16 -f 98/481/2 97/221/2 102/239/2 -f 99/482/1 98/240/1 103/242/1 -f 99/483/4 103/243/4 100/245/4 -f 100/421/3 104/246/3 97/248/3 -f 102/484/6 101/249/6 74/251/6 -f 103/485/5 102/204/5 75/252/5 -f 103/486/8 75/253/8 104/254/8 -f 104/408/7 76/255/7 101/256/7 -f 105/25/17 109/257/17 106/259/17 -f 106/487/18 110/16/18 107/261/18 -f 108/288/19 107/262/19 112/4/19 -f 105/25/20 108/264/20 109/266/20 -f 109/488/15 113/267/15 110/269/15 -f 110/130/1 114/28/1 111/271/1 -f 112/489/13 111/272/13 116/274/13 -f 109/70/3 112/275/3 113/277/3 -f 114/490/4 113/189/4 118/278/4 -f 115/109/14 114/50/14 119/110/14 -f 115/491/2 119/279/2 116/8/2 -f 116/492/16 120/281/16 113/282/16 -f 118/493/21 117/283/21 122/285/21 -f 119/494/22 118/125/22 123/287/22 -f 119/482/23 123/242/23 120/4/23 -f 120/495/24 124/289/24 117/291/24 -f 121/301/18 125/292/18 122/294/18 -f 122/20/17 126/295/17 123/65/17 -f 124/360/20 123/296/20 128/298/20 -f 121/430/19 124/135/19 125/300/19 -f 125/496/1 129/301/1 126/303/1 -f 126/33/15 130/204/15 127/304/15 -f 128/497/3 127/305/3 132/134/3 -f 125/488/13 128/307/13 129/309/13 -f 130/222/14 129/310/14 134/223/14 -f 131/498/4 130/122/4 135/313/4 -f 131/499/16 135/314/16 132/254/16 -f 132/500/2 136/316/2 129/189/2 -f 134/501/22 133/318/22 106/319/22 -f 135/344/21 134/240/21 107/321/21 -f 135/502/24 107/322/24 136/130/24 -f 136/490/23 108/278/23 133/323/23 -f 137/291/17 141/58/17 138/325/17 -f 138/402/18 142/5/18 139/327/18 -f 140/192/19 139/328/19 144/330/19 -f 137/100/20 140/331/20 141/333/20 -f 141/126/15 145/171/15 142/83/15 -f 142/159/1 146/335/1 143/337/1 -f 144/377/13 143/338/13 148/339/13 -f 141/247/3 144/123/3 145/341/3 -f 146/503/4 145/300/4 150/342/4 -f 147/321/14 146/343/14 151/344/14 -f 147/504/2 151/345/2 148/347/2 -f 148/505/16 152/348/16 145/248/16 -f 150/506/21 149/349/21 154/350/21 -f 151/386/22 150/351/22 155/353/22 -f 151/507/23 155/354/23 152/145/23 -f 152/45/24 156/44/24 149/58/24 -f 153/248/18 157/247/18 154/357/18 -f 154/85/17 158/84/17 155/359/17 -f 156/298/20 155/30/20 160/360/20 -f 153/317/19 156/327/19 157/362/19 -f 157/25/1 161/266/1 158/364/1 -f 158/73/15 162/72/15 159/366/15 -f 160/343/3 159/367/3 164/277/3 -f 157/158/13 160/369/13 161/82/13 -f 162/172/14 161/371/14 166/373/14 -f 163/508/4 162/62/4 167/375/4 -f 163/509/16 167/376/16 164/339/16 -f 164/510/2 168/378/2 161/79/2 -f 166/101/22 165/379/22 138/102/22 -f 167/390/21 166/380/21 139/382/21 -f 167/511/24 139/383/24 168/320/24 -f 168/94/23 140/93/23 165/210/23 -f 169/170/17 173/24/17 170/324/17 -f 170/512/18 174/335/18 171/353/18 -f 172/352/19 171/387/19 176/389/19 -f 169/513/20 172/390/20 173/392/20 -f 173/80/15 177/136/15 174/394/15 -f 174/230/1 178/395/1 175/397/1 -f 176/207/13 175/398/13 180/208/13 -f 173/341/3 176/400/3 177/247/3 -f 178/500/4 177/323/4 182/316/4 -f 179/440/14 178/403/14 183/7/14 -f 179/514/2 183/405/2 180/407/2 -f 180/255/16 184/408/16 177/282/16 -f 182/495/21 181/24/21 186/289/21 -f 183/515/22 182/23/22 187/409/22 -f 183/516/23 187/410/23 184/351/23 -f 184/209/24 188/412/24 181/229/24 -f 185/124/18 189/256/18 186/414/18 -f 186/290/17 190/415/17 187/417/17 -f 188/4/20 187/418/20 192/5/20 -f 185/438/19 188/419/19 189/129/19 -f 189/256/1 193/124/1 190/421/1 -f 190/517/15 194/422/15 191/424/15 -f 192/518/3 191/425/3 196/427/3 -f 189/199/13 192/428/13 193/158/13 -f 194/519/14 193/430/14 198/431/14 -f 195/520/4 194/219/4 199/432/4 -f 195/520/16 199/432/16 196/433/16 -f 196/35/2 200/34/2 193/435/2 -f 198/521/22 197/189/22 170/436/22 -f 199/6/21 198/320/21 171/437/21 -f 199/261/24 171/260/24 200/330/24 -f 200/69/23 172/68/23 197/438/23 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_globe.obj b/src/main/resources/assets/hbm/models/bombs/n45_globe.obj deleted file mode 100644 index 1034f8a3e..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_globe.obj +++ /dev/null @@ -1,1766 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_globe.blend' -# www.blender.org -o Icosphere -v 0.000000 -0.500000 0.000000 -v 0.361804 -0.223610 0.262863 -v -0.138194 -0.223610 0.425325 -v -0.447213 -0.223608 0.000000 -v -0.138194 -0.223610 -0.425325 -v 0.361804 -0.223610 -0.262863 -v 0.138194 0.223610 0.425325 -v -0.361804 0.223610 0.262863 -v -0.361804 0.223610 -0.262863 -v 0.138194 0.223610 -0.425325 -v 0.447213 0.223608 0.000000 -v 0.000000 0.500000 0.000000 -v -0.116411 -0.328760 0.358282 -v -0.081228 -0.425327 0.249998 -v -0.038803 -0.483975 0.119426 -v 0.101590 -0.483975 0.073809 -v 0.212661 -0.425327 0.154506 -v 0.304773 -0.328759 0.221428 -v 0.265970 -0.251151 0.340856 -v 0.131434 -0.262869 0.404506 -v -0.014820 -0.251151 0.432092 -v 0.406365 -0.251150 -0.147619 -v 0.425324 -0.262868 0.000000 -v 0.406365 -0.251150 0.147619 -v 0.101590 -0.483975 -0.073809 -v 0.212661 -0.425327 -0.154506 -v 0.304773 -0.328759 -0.221428 -v -0.376721 -0.328757 0.000000 -v -0.262865 -0.425326 0.000000 -v -0.125573 -0.483974 0.000000 -v -0.241986 -0.251151 0.358282 -v -0.344095 -0.262868 0.249998 -v -0.415525 -0.251149 0.119427 -v -0.116411 -0.328760 -0.358282 -v -0.081228 -0.425327 -0.249998 -v -0.038803 -0.483975 -0.119426 -v -0.415525 -0.251149 -0.119427 -v -0.344095 -0.262868 -0.249998 -v -0.241986 -0.251151 -0.358282 -v -0.014820 -0.251151 -0.432092 -v 0.131434 -0.262869 -0.404506 -v 0.265970 -0.251151 -0.340856 -v 0.478313 0.125575 0.073809 -v 0.475529 -0.000000 0.154506 -v 0.430349 -0.125575 0.221429 -v 0.430349 -0.125575 -0.221429 -v 0.475529 0.000000 -0.154506 -v 0.478313 0.125575 -0.073809 -v 0.077608 0.125576 0.477711 -v 0.000000 -0.000000 0.500000 -v -0.077608 -0.125576 0.477711 -v 0.343579 -0.125576 0.340858 -v 0.293893 0.000000 0.404508 -v 0.218003 0.125576 0.432094 -v -0.430349 0.125575 0.221429 -v -0.475529 -0.000000 0.154506 -v -0.478313 -0.125575 0.073809 -v -0.218003 -0.125576 0.432094 -v -0.293893 0.000000 0.404508 -v -0.343579 0.125576 0.340858 -v -0.343579 0.125576 -0.340858 -v -0.293893 -0.000000 -0.404508 -v -0.218003 -0.125576 -0.432094 -v -0.478313 -0.125575 -0.073809 -v -0.475529 0.000000 -0.154506 -v -0.430349 0.125575 -0.221429 -v 0.218003 0.125576 -0.432094 -v 0.293893 -0.000000 -0.404508 -v 0.343579 -0.125576 -0.340858 -v -0.077608 -0.125576 -0.477711 -v 0.000000 0.000000 -0.500000 -v 0.077608 0.125576 -0.477711 -v 0.415525 0.251149 0.119427 -v 0.344095 0.262868 0.249998 -v 0.241986 0.251151 0.358282 -v 0.014820 0.251151 0.432092 -v -0.131434 0.262869 0.404506 -v -0.265970 0.251151 0.340856 -v -0.406365 0.251150 0.147619 -v -0.425324 0.262868 0.000000 -v -0.406365 0.251150 -0.147619 -v -0.265970 0.251151 -0.340856 -v -0.131434 0.262869 -0.404506 -v 0.014820 0.251151 -0.432092 -v 0.241986 0.251151 -0.358282 -v 0.344095 0.262868 -0.249998 -v 0.415525 0.251149 -0.119427 -v 0.038803 0.483975 0.119426 -v 0.081228 0.425327 0.249998 -v 0.116411 0.328760 0.358282 -v 0.376721 0.328757 0.000000 -v 0.262865 0.425326 0.000000 -v 0.125573 0.483974 0.000000 -v -0.101590 0.483975 0.073809 -v -0.212661 0.425327 0.154506 -v -0.304773 0.328759 0.221428 -v -0.101590 0.483975 -0.073809 -v -0.212661 0.425327 -0.154506 -v -0.304773 0.328759 -0.221428 -v 0.038803 0.483975 -0.119426 -v 0.081228 0.425327 -0.249998 -v 0.116411 0.328760 -0.358282 -v 0.180900 0.447215 -0.131431 -v 0.319097 0.361805 -0.131432 -v 0.223605 0.361806 -0.262864 -v -0.069099 0.447215 -0.212660 -v -0.026395 0.361806 -0.344092 -v -0.180902 0.361806 -0.293889 -v -0.223605 0.447215 0.000000 -v -0.335408 0.361805 -0.081229 -v -0.335408 0.361805 0.081229 -v -0.069099 0.447215 0.212660 -v -0.180902 0.361806 0.293889 -v -0.026395 0.361806 0.344092 -v 0.180900 0.447215 0.131431 -v 0.223605 0.361806 0.262864 -v 0.319097 0.361805 0.131432 -v 0.430902 0.138198 -0.212661 -v 0.404510 0.000000 -0.293891 -v 0.335410 0.138199 -0.344095 -v -0.069099 0.138199 -0.475528 -v -0.154508 -0.000000 -0.475528 -v -0.223608 0.138199 -0.425324 -v -0.473607 0.138198 -0.081229 -v -0.500000 0.000000 0.000000 -v -0.473606 0.138198 0.081229 -v -0.223608 0.138198 0.425324 -v -0.154509 -0.000000 0.475528 -v -0.069100 0.138198 0.475528 -v 0.335410 0.138198 0.344095 -v 0.404509 -0.000001 0.293891 -v 0.430902 0.138197 0.212662 -v 0.154509 -0.000000 -0.475528 -v 0.223608 -0.138199 -0.425324 -v 0.069100 -0.138199 -0.475527 -v -0.404509 -0.000000 -0.293892 -v -0.335409 -0.138199 -0.344095 -v -0.430902 -0.138198 -0.212662 -v -0.404509 0.000000 0.293892 -v -0.430902 -0.138198 0.212662 -v -0.335410 -0.138199 0.344095 -v 0.154509 0.000000 0.475528 -v 0.069100 -0.138199 0.475527 -v 0.223608 -0.138199 0.425324 -v 0.500000 0.000000 0.000000 -v 0.473607 -0.138198 0.081229 -v 0.473607 -0.138198 -0.081229 -v 0.180902 -0.361806 -0.293890 -v 0.069098 -0.447215 -0.212661 -v 0.026395 -0.361805 -0.344093 -v -0.223605 -0.361806 -0.262864 -v -0.180901 -0.447214 -0.131431 -v -0.319097 -0.361805 -0.131431 -v -0.319097 -0.361805 0.131432 -v -0.180901 -0.447214 0.131432 -v -0.223605 -0.361805 0.262864 -v 0.335409 -0.361805 -0.081228 -v 0.335409 -0.361805 0.081229 -v 0.223605 -0.447214 0.000000 -v 0.026395 -0.361806 0.344093 -v 0.069099 -0.447215 0.212660 -v 0.180902 -0.361805 0.293890 -vt 0.608486 0.627808 -vt 0.608486 0.706299 -vt 0.534124 0.652932 -vt 0.310435 0.483432 -vt 0.374204 0.437666 -vt 0.374204 0.529197 -vt 0.426628 0.841439 -vt 0.401505 0.915800 -vt 0.348137 0.841439 -vt 0.907272 0.920733 -vt 0.828780 0.920733 -vt 0.882148 0.846372 -vt 0.874545 0.689455 -vt 0.828780 0.625687 -vt 0.920309 0.625687 -vt 0.772490 0.167110 -vt 0.850981 0.167110 -vt 0.797614 0.241473 -vt 0.769801 0.100887 -vt 0.848293 0.100887 -vt 0.794924 0.175250 -vt 0.815700 0.692491 -vt 0.894191 0.692491 -vt 0.840822 0.766854 -vt 0.547368 0.720701 -vt 0.611139 0.674935 -vt 0.611139 0.766466 -vt 0.549115 0.146651 -vt 0.612885 0.100887 -vt 0.612885 0.192418 -vt 0.934454 0.634587 -vt 0.909328 0.708949 -vt 0.855961 0.634587 -vt 0.593092 0.350373 -vt 0.638857 0.414143 -vt 0.547326 0.414143 -vt 0.282846 0.730947 -vt 0.282846 0.652455 -vt 0.357208 0.705822 -vt 0.773203 0.897303 -vt 0.773203 0.818810 -vt 0.847565 0.872178 -vt 0.051567 0.652455 -vt 0.125930 0.677581 -vt 0.051567 0.730949 -vt 0.768055 0.674935 -vt 0.846548 0.674935 -vt 0.793180 0.749298 -vt 0.792634 0.664985 -vt 0.792633 0.586493 -vt 0.866996 0.639860 -vt 0.828382 0.409716 -vt 0.782618 0.345946 -vt 0.874148 0.345946 -vt 0.140480 0.720831 -vt 0.061988 0.720831 -vt 0.115355 0.646469 -vt 0.367596 0.606851 -vt 0.413361 0.670621 -vt 0.321831 0.670621 -vt 0.680539 0.833453 -vt 0.627171 0.907814 -vt 0.602047 0.833453 -vt 0.657253 0.837483 -vt 0.605186 0.919318 -vt 0.564685 0.837483 -vt 0.832307 0.649510 -vt 0.879612 0.727611 -vt 0.782618 0.727611 -vt 0.123857 0.412167 -vt 0.169290 0.491370 -vt 0.077980 0.491370 -vt 0.680124 0.827323 -vt 0.629873 0.910286 -vt 0.588814 0.827323 -vt 0.116896 0.195119 -vt 0.202982 0.239807 -vt 0.116896 0.292113 -vt 0.665837 0.587817 -vt 0.665837 0.688548 -vt 0.578601 0.638183 -vt 0.667838 0.846819 -vt 0.720143 0.932905 -vt 0.623148 0.932905 -vt 0.170616 0.336829 -vt 0.123311 0.414930 -vt 0.073621 0.336829 -vt 0.782618 0.189030 -vt 0.828493 0.109826 -vt 0.873928 0.189030 -vt 0.357473 0.335614 -vt 0.450041 0.335614 -vt 0.397975 0.417450 -vt 0.543461 0.901290 -vt 0.543461 0.804295 -vt 0.629548 0.848985 -vt 0.196306 0.133322 -vt 0.196306 0.225890 -vt 0.114469 0.185389 -vt 0.312994 0.100887 -vt 0.392198 0.146321 -vt 0.312994 0.192197 -vt 0.187189 0.438608 -vt 0.141423 0.502378 -vt 0.095658 0.438608 -vt 0.412255 0.647635 -vt 0.337894 0.594269 -vt 0.412255 0.569144 -vt 0.668119 0.461612 -vt 0.586284 0.409546 -vt 0.668119 0.369045 -vt 0.634770 0.671471 -vt 0.543461 0.671471 -vt 0.593711 0.588508 -vt 0.615574 0.212985 -vt 0.536371 0.258419 -vt 0.536371 0.167110 -vt 0.131228 0.258419 -vt 0.048265 0.208169 -vt 0.131228 0.167110 -vt 0.173654 0.619509 -vt 0.090761 0.669875 -vt 0.090761 0.569144 -vt 0.864399 0.771859 -vt 0.777164 0.721493 -vt 0.864399 0.671128 -vt 0.854488 0.697145 -vt 0.768402 0.749450 -vt 0.768402 0.652455 -vt 0.622805 0.671128 -vt 0.575500 0.749229 -vt 0.525810 0.671128 -vt 0.693357 0.376647 -vt 0.647481 0.455851 -vt 0.602047 0.376647 -vt 0.909465 0.418665 -vt 0.826501 0.377605 -vt 0.909465 0.327354 -vt 0.676350 0.363194 -vt 0.590264 0.407885 -vt 0.590264 0.310890 -vt 0.194997 0.799938 -vt 0.116896 0.750248 -vt 0.194997 0.702943 -vt 0.413141 0.449935 -vt 0.321831 0.449935 -vt 0.367707 0.370732 -vt 0.956812 0.067343 -vt 0.911047 0.131113 -vt 0.865282 0.067343 -vt 0.439665 0.684523 -vt 0.348137 0.684523 -vt 0.393901 0.620754 -vt 0.454467 0.178697 -vt 0.357473 0.178697 -vt 0.404777 0.100597 -vt 0.140652 0.143473 -vt 0.049344 0.143473 -vt 0.099593 0.060510 -vt 0.413360 0.134803 -vt 0.367595 0.213815 -vt 0.321831 0.134803 -vt 0.147373 0.910119 -vt 0.064411 0.859870 -vt 0.147373 0.818810 -vt 0.456893 0.427214 -vt 0.412204 0.513300 -vt 0.359899 0.427214 -vt 0.701307 0.452073 -vt 0.600577 0.452073 -vt 0.650943 0.364838 -vt 0.942479 0.133207 -vt 0.856394 0.185513 -vt 0.856394 0.088518 -vt 0.612225 0.757412 -vt 0.534124 0.710108 -vt 0.612225 0.660418 -vt 0.892722 0.310890 -vt 0.846847 0.390094 -vt 0.801413 0.310890 -vt 0.402596 0.660454 -vt 0.319633 0.619396 -vt 0.402596 0.569144 -vt 0.913570 0.621448 -vt 0.827484 0.666139 -vt 0.827484 0.569144 -vt 0.429367 0.450881 -vt 0.336800 0.450881 -vt 0.377301 0.369045 -vt 0.162855 0.892591 -vt 0.083842 0.938357 -vt 0.083842 0.846827 -vt 0.650181 0.746374 -vt 0.575820 0.771498 -vt 0.575820 0.693006 -vt 0.602047 0.612767 -vt 0.693577 0.612767 -vt 0.647812 0.676536 -vt 0.865297 0.114428 -vt 0.962291 0.114428 -vt 0.914987 0.192528 -vt 0.268715 0.743765 -vt 0.268715 0.652455 -vt 0.351678 0.702706 -vt 0.791954 0.858522 -vt 0.837719 0.779510 -vt 0.883484 0.858522 -vt 0.298093 0.079182 -vt 0.395087 0.079182 -vt 0.345397 0.157282 -vt 0.591241 0.526190 -vt 0.635930 0.440104 -vt 0.688236 0.526190 -vt 0.085282 0.337848 -vt 0.186012 0.337848 -vt 0.135647 0.425084 -vt 0.333594 0.501788 -vt 0.385899 0.415702 -vt 0.430588 0.501788 -vt 0.838116 0.819178 -vt 0.929425 0.819178 -vt 0.888366 0.902142 -vt 0.075276 0.441903 -vt 0.075276 0.350373 -vt 0.154289 0.396139 -vt 0.819907 0.587817 -vt 0.912475 0.587817 -vt 0.860409 0.669653 -vt 0.077266 0.150237 -vt 0.127631 0.067343 -vt 0.177997 0.150237 -vt 0.611383 0.327625 -vt 0.703951 0.327625 -vt 0.663449 0.409462 -vt 0.828780 0.468770 -vt 0.874214 0.389566 -vt 0.920089 0.468770 -vt 0.767242 0.189661 -vt 0.845733 0.189662 -vt 0.820608 0.264024 -vt 0.089306 0.824587 -vt 0.142674 0.898949 -vt 0.064182 0.898949 -vt 0.652442 0.806259 -vt 0.702693 0.889222 -vt 0.611383 0.889222 -vt 0.406831 0.086015 -vt 0.454137 0.164116 -vt 0.357142 0.164116 -vt 0.513533 0.421023 -vt 0.604843 0.421023 -vt 0.559409 0.500226 -vt 0.617518 0.336829 -vt 0.669585 0.418665 -vt 0.577018 0.418665 -vt 0.588825 0.067343 -vt 0.685820 0.067343 -vt 0.633515 0.153429 -vt 0.600578 0.107191 -vt 0.687814 0.157556 -vt 0.600577 0.207921 -vt 0.613812 0.236515 -vt 0.699899 0.184210 -vt 0.699899 0.281204 -vt 0.331167 0.148292 -vt 0.378472 0.070190 -vt 0.428161 0.148292 -vt 0.319771 0.892703 -vt 0.398975 0.846827 -vt 0.398975 0.938137 -vt 0.803261 0.583569 -vt 0.886226 0.624629 -vt 0.803261 0.674880 -vt 0.075945 0.159202 -vt 0.172941 0.159202 -vt 0.128252 0.245288 -vt 0.066422 0.439695 -vt 0.144524 0.489384 -vt 0.066422 0.536690 -vt 0.617055 0.067343 -vt 0.708365 0.067343 -vt 0.662490 0.146546 -vt 0.310435 0.686113 -vt 0.388927 0.686113 -vt 0.363801 0.760475 -vt 0.625047 0.658795 -vt 0.571679 0.733158 -vt 0.546556 0.658795 -vt 0.128375 0.593330 -vt 0.178627 0.676294 -vt 0.087317 0.676294 -vt 0.321587 0.671128 -vt 0.368894 0.749230 -vt 0.271898 0.749230 -vt 0.095658 0.202487 -vt 0.186968 0.202487 -vt 0.141534 0.281691 -vt 0.814170 0.837483 -vt 0.897133 0.887734 -vt 0.814170 0.928793 -vt 0.334913 0.067343 -vt 0.431908 0.067343 -vt 0.379603 0.153431 -vt 0.367199 0.682891 -vt 0.316833 0.770128 -vt 0.266468 0.682891 -vt 0.370387 0.140824 -vt 0.456474 0.088518 -vt 0.456474 0.185514 -vt 0.671778 0.579095 -vt 0.671778 0.670407 -vt 0.588814 0.629347 -vt 0.508595 0.698331 -vt 0.587799 0.652455 -vt 0.587799 0.743767 -vt 0.331167 0.543961 -vt 0.414132 0.585022 -vt 0.331167 0.635273 -vt 0.104257 0.355580 -vt 0.190345 0.310890 -vt 0.190345 0.407886 -vt 0.842205 0.299749 -vt 0.883265 0.382714 -vt 0.791954 0.382714 -vt 0.585156 0.866755 -vt 0.664360 0.912190 -vt 0.585156 0.958067 -vt 0.632846 0.645936 -vt 0.657971 0.720299 -vt 0.579478 0.720299 -vt 0.156472 0.648286 -vt 0.103103 0.722649 -vt 0.077980 0.648286 -vt 0.839929 0.268747 -vt 0.789677 0.185782 -vt 0.880988 0.185782 -vt 0.079753 0.660456 -vt 0.079753 0.569144 -vt 0.162717 0.619395 -vt 0.395600 0.898015 -vt 0.304290 0.898015 -vt 0.349723 0.818810 -vt 0.336762 0.426559 -vt 0.336762 0.329562 -vt 0.414862 0.379252 -vt 0.433348 0.407886 -vt 0.347261 0.363197 -vt 0.433348 0.310890 -vt 0.288858 0.771861 -vt 0.288858 0.671128 -vt 0.376094 0.721494 -vt 0.466231 0.689903 -vt 0.380144 0.637597 -vt 0.466231 0.592906 -vt 0.085535 0.402201 -vt 0.085534 0.310890 -vt 0.168498 0.351949 -vt 0.644497 0.402201 -vt 0.565293 0.356326 -vt 0.644497 0.310890 -vt 0.301440 0.532264 -vt 0.301440 0.439695 -vt 0.383276 0.491762 -vt 0.941118 0.465571 -vt 0.858224 0.415205 -vt 0.941118 0.364838 -vt 0.116896 0.449030 -vt 0.194998 0.498722 -vt 0.116896 0.546026 -vt 0.348137 0.227717 -vt 0.393572 0.148513 -vt 0.439448 0.227717 -vt 0.555892 0.846827 -vt 0.619662 0.892593 -vt 0.555892 0.938358 -vt 0.860078 0.308682 -vt 0.806709 0.383044 -vt 0.781585 0.308682 -vt 0.075759 0.934479 -vt 0.075759 0.837483 -vt 0.153859 0.884787 -vt 0.622028 0.532263 -vt 0.540192 0.491760 -vt 0.622028 0.439695 -vt 0.154332 0.766466 -vt 0.075319 0.720702 -vt 0.154332 0.674935 -vt 0.066423 0.282778 -vt 0.066423 0.185782 -vt 0.144523 0.235471 -vt 0.670568 0.666140 -vt 0.584482 0.621452 -vt 0.670568 0.569144 -vt 0.628967 0.430900 -vt 0.578601 0.343664 -vt 0.679331 0.343664 -vt 0.443660 0.678391 -vt 0.342930 0.678391 -vt 0.393295 0.595496 -vt 0.825036 0.708583 -vt 0.825036 0.617272 -vt 0.907999 0.658330 -vt 0.196523 0.951183 -vt 0.104994 0.951183 -vt 0.150759 0.872170 -vt 0.638504 0.172694 -vt 0.588814 0.094593 -vt 0.685808 0.094593 -vt 0.456893 0.270297 -vt 0.359899 0.270297 -vt 0.404589 0.184210 -vt 0.857791 0.776572 -vt 0.816732 0.693608 -vt 0.908041 0.693608 -vt 0.415032 0.678024 -vt 0.323723 0.678024 -vt 0.369598 0.598819 -vt 0.815700 0.444043 -vt 0.879468 0.489810 -vt 0.815700 0.535575 -vt 0.624669 0.308682 -vt 0.624669 0.400213 -vt 0.560899 0.354448 -vt 0.612226 0.406505 -vt 0.612226 0.503501 -vt 0.534124 0.456197 -vt 0.383285 0.658704 -vt 0.430589 0.736806 -vt 0.333594 0.736806 -vt 0.293382 0.564897 -vt 0.384692 0.564897 -vt 0.339257 0.644102 -vt 0.832456 0.060995 -vt 0.884522 0.142832 -vt 0.791954 0.142832 -vt 0.348205 0.346165 -vt 0.445200 0.346165 -vt 0.392893 0.432253 -vt 0.393297 0.107191 -vt 0.443661 0.194428 -vt 0.342930 0.194428 -vt 0.836248 0.343664 -vt 0.936979 0.343664 -vt 0.886613 0.426559 -vt 0.663120 0.086015 -vt 0.703621 0.167853 -vt 0.611053 0.167853 -vt 0.064547 0.100887 -vt 0.156078 0.100887 -vt 0.110312 0.179901 -vt 0.638547 0.683107 -vt 0.688237 0.761209 -vt 0.591241 0.761209 -vt 0.858224 0.862297 -vt 0.955219 0.862297 -vt 0.910528 0.948385 -vt 0.915549 0.588198 -vt 0.956607 0.671162 -vt 0.865297 0.671162 -vt 0.288144 0.167110 -vt 0.379455 0.167110 -vt 0.333578 0.246315 -vt 0.149027 0.659294 -vt 0.174150 0.733657 -vt 0.095658 0.733657 -vt 0.616286 0.818810 -vt 0.616286 0.910342 -vt 0.552516 0.864576 -vt 0.944253 0.592906 -vt 0.944253 0.689902 -vt 0.866150 0.642597 -vt 0.929425 0.570951 -vt 0.929425 0.662262 -vt 0.846461 0.612012 -vt 0.828780 0.153445 -vt 0.920091 0.153445 -vt 0.874656 0.232650 -vt 0.368035 0.336829 -vt 0.420101 0.418667 -vt 0.327533 0.418667 -vt 0.126232 0.603815 -vt 0.223228 0.603815 -vt 0.170922 0.689903 -vt 0.371319 0.574322 -vt 0.421684 0.661560 -vt 0.320953 0.661560 -vt 0.129972 0.821811 -vt 0.182278 0.907898 -vt 0.085282 0.907898 -vt 0.945884 0.685696 -vt 0.898577 0.763796 -vt 0.848888 0.685696 -vt 0.277412 0.421023 -vt 0.356616 0.466898 -vt 0.277412 0.512333 -vt 0.179884 0.105093 -vt 0.179884 0.197661 -vt 0.098047 0.145595 -vt 0.791954 0.292734 -vt 0.874849 0.343100 -vt 0.791954 0.393466 -vt 0.625297 0.090795 -vt 0.625297 0.183364 -vt 0.543461 0.142863 -vt 0.311248 0.674935 -vt 0.390452 0.720369 -vt 0.311248 0.766246 -vt 0.848371 0.427516 -vt 0.873494 0.501879 -vt 0.795002 0.501879 -vt 0.153518 0.489552 -vt 0.061988 0.489552 -vt 0.107753 0.425782 -vt 0.939732 0.145445 -vt 0.842736 0.145445 -vt 0.890041 0.067343 -vt 0.782618 0.442902 -vt 0.860720 0.395598 -vt 0.860720 0.492594 -vt 0.428110 0.847679 -vt 0.382345 0.926694 -vt 0.336579 0.847679 -vt 0.172941 0.723309 -vt 0.075945 0.723309 -vt 0.125634 0.645207 -vt 0.697573 0.848801 -vt 0.652884 0.934889 -vt 0.600577 0.848801 -vt 0.186013 0.180932 -vt 0.085282 0.180932 -vt 0.135646 0.093695 -vt 0.427565 0.569144 -vt 0.375261 0.655233 -vt 0.330570 0.569144 -vt 0.870255 0.522660 -vt 0.778945 0.522660 -vt 0.820003 0.439695 -vt 0.901838 0.241550 -vt 0.855961 0.162346 -vt 0.947272 0.162346 -vt 0.166086 0.392441 -vt 0.073519 0.392441 -vt 0.125584 0.310605 -vt 0.186013 0.582000 -vt 0.135648 0.664895 -vt 0.085282 0.582000 -vt 0.423735 0.387045 -vt 0.331167 0.387045 -vt 0.371668 0.305208 -vt 0.169290 0.176046 -vt 0.123857 0.255250 -vt 0.077980 0.176046 -vt 0.380612 0.650238 -vt 0.405735 0.724601 -vt 0.327243 0.724601 -vt 0.173738 0.385253 -vt 0.120370 0.310890 -vt 0.198863 0.310890 -vt 0.955162 0.846819 -vt 0.955162 0.943815 -vt 0.877060 0.896510 -vt 0.867724 0.242423 -vt 0.945825 0.195119 -vt 0.945825 0.292115 -vt 0.166331 0.924742 -vt 0.087317 0.878976 -vt 0.166331 0.833211 -vt 0.626425 0.431592 -vt 0.543461 0.381340 -vt 0.626425 0.340280 -vt 0.791954 0.550382 -vt 0.888951 0.550382 -vt 0.836643 0.636470 -vt 0.371320 0.086015 -vt 0.421685 0.173252 -vt 0.320953 0.173252 -vt 0.629548 0.595073 -vt 0.543461 0.647379 -vt 0.543461 0.550382 -vt 0.409081 0.684813 -vt 0.330979 0.637507 -vt 0.409081 0.587817 -vt 0.647923 0.219730 -vt 0.602047 0.140526 -vt 0.693358 0.140526 -vt 0.357473 0.657330 -vt 0.398533 0.574366 -vt 0.448784 0.657330 -vt 0.466232 0.932906 -vt 0.369236 0.932906 -vt 0.413926 0.846819 -vt 0.438000 0.767213 -vt 0.359899 0.717523 -vt 0.438000 0.670217 -vt 0.155756 0.354448 -vt 0.076743 0.400213 -vt 0.076743 0.308682 -vt 0.835332 0.658795 -vt 0.860455 0.733158 -vt 0.781963 0.733158 -vt 0.650183 0.482723 -vt 0.575820 0.536090 -vt 0.575820 0.457597 -vt 0.953025 0.424267 -vt 0.856029 0.424267 -vt 0.903335 0.346165 -vt 0.882066 0.162146 -vt 0.790756 0.162146 -vt 0.841007 0.079182 -vt 0.543461 0.873823 -vt 0.622665 0.828388 -vt 0.622665 0.919699 -vt 0.073519 0.549358 -vt 0.156483 0.599608 -vt 0.073519 0.640669 -vt 0.439926 0.835307 -vt 0.395235 0.921395 -vt 0.342930 0.835307 -vt 0.320953 0.330169 -vt 0.421685 0.330169 -vt 0.371318 0.417406 -vt 0.844730 0.107191 -vt 0.945463 0.107191 -vt 0.895096 0.190085 -vt 0.353507 0.185782 -vt 0.394009 0.267619 -vt 0.301440 0.267619 -vt 0.403983 0.308682 -vt 0.358107 0.387886 -vt 0.312672 0.308682 -vt 0.939029 0.414035 -vt 0.846461 0.414035 -vt 0.898528 0.332198 -vt 0.212319 0.846819 -vt 0.212319 0.943815 -vt 0.126232 0.899125 -vt 0.418637 0.119560 -vt 0.418637 0.212129 -vt 0.336800 0.171627 -vt 0.579478 0.161590 -vt 0.658683 0.207024 -vt 0.579478 0.252900 -vt 0.155852 0.569144 -vt 0.180977 0.643507 -vt 0.102484 0.643507 -vt 0.777728 0.564897 -vt 0.852091 0.618264 -vt 0.777728 0.643390 -vt 0.339227 0.693608 -vt 0.421064 0.745673 -vt 0.339227 0.786176 -vt 0.611383 0.566378 -vt 0.702693 0.566378 -vt 0.652442 0.649343 -vt 0.559512 0.614581 -vt 0.638717 0.569144 -vt 0.638717 0.660455 -vt 0.028834 0.652455 -vt 0.111799 0.702705 -vt 0.028834 0.743767 -vt 0.543461 0.343101 -vt 0.626356 0.292733 -vt 0.626356 0.393465 -vt 0.533011 0.671128 -vt 0.620247 0.721492 -vt 0.533011 0.771860 -vt 0.271486 0.704764 -vt 0.357573 0.652455 -vt 0.357574 0.749452 -vt 0.867724 0.449031 -vt 0.945825 0.496336 -vt 0.867724 0.546027 -vt 0.297568 0.139714 -vt 0.343445 0.060510 -vt 0.388879 0.139714 -vt 0.063075 0.128872 -vt 0.141176 0.079182 -vt 0.141176 0.176179 -vt 0.791954 0.838078 -vt 0.878041 0.793386 -vt 0.878041 0.890382 -vt 0.064849 0.583569 -vt 0.142950 0.633258 -vt 0.064849 0.680565 -vt 0.327243 0.257202 -vt 0.372678 0.177997 -vt 0.418553 0.257202 -vt 0.546556 0.189661 -vt 0.610325 0.235426 -vt 0.546556 0.281193 -vt 0.321831 0.827537 -vt 0.396192 0.880903 -vt 0.321831 0.906029 -vt 0.552003 0.079182 -vt 0.633839 0.131247 -vt 0.552003 0.171750 -vt 0.779721 0.671128 -vt 0.861557 0.711629 -vt 0.779721 0.763697 -vt 0.825036 0.944513 -vt 0.870800 0.865499 -vt 0.916564 0.944513 -vt 0.846461 0.097180 -vt 0.943455 0.097180 -vt 0.893765 0.175282 -vt 0.031677 0.702823 -vt 0.114570 0.652455 -vt 0.114570 0.753187 -vt 0.578601 0.086015 -vt 0.665836 0.136379 -vt 0.578601 0.186747 -vt 0.848888 0.285776 -vt 0.901192 0.199689 -vt 0.945881 0.285776 -vt 0.336800 0.607798 -vt 0.428110 0.607798 -vt 0.387051 0.690763 -vt 0.815700 0.241694 -vt 0.894903 0.195817 -vt 0.894903 0.287127 -vt 0.825036 0.369045 -vt 0.907999 0.410103 -vt 0.825036 0.460356 -vt 0.600577 0.691884 -vt 0.650943 0.608989 -vt 0.701308 0.691884 -vt 0.825689 0.329562 -vt 0.918256 0.329562 -vt 0.877756 0.411399 -vt 0.062209 0.268865 -vt 0.107643 0.189661 -vt 0.153518 0.268865 -vt 0.571948 0.586493 -vt 0.635717 0.632257 -vt 0.571948 0.678024 -vt 0.795773 0.350373 -vt 0.870135 0.403740 -vt 0.795773 0.428865 -vt 0.550926 0.185782 -vt 0.632761 0.237848 -vt 0.550926 0.278350 -vt 0.619085 0.407662 -vt 0.571779 0.329562 -vt 0.668773 0.329562 -vt 0.655024 0.255246 -vt 0.575820 0.300680 -vt 0.575820 0.209370 -vt 0.917363 0.431281 -vt 0.865297 0.349445 -vt 0.957865 0.349445 -vt 0.172940 0.488290 -vt 0.075945 0.488290 -vt 0.128250 0.402204 -vt 0.393295 0.438580 -vt 0.342930 0.351344 -vt 0.443660 0.351344 -vt 0.958954 0.705381 -vt 0.858224 0.705381 -vt 0.908589 0.622487 -vt 0.127818 0.436414 -vt 0.087317 0.354578 -vt 0.179884 0.354578 -vt 0.460138 0.146356 -vt 0.368609 0.146356 -vt 0.414373 0.067343 -vt 0.349556 0.661670 -vt 0.299867 0.583569 -vt 0.396861 0.583569 -vt 0.945881 0.528779 -vt 0.848888 0.528779 -vt 0.893577 0.442693 -vt 0.398532 0.897210 -vt 0.357473 0.814247 -vt 0.448782 0.814247 -vt 0.947270 0.477670 -vt 0.855961 0.477670 -vt 0.901836 0.398466 -vt 0.819368 0.134872 -vt 0.794243 0.060510 -vt 0.872735 0.060510 -vt 0.637326 0.124279 -vt 0.545795 0.124279 -vt 0.591561 0.060510 -vt 0.710808 0.759224 -vt 0.613812 0.759224 -vt 0.661118 0.681124 -vt 0.196305 0.715253 -vt 0.104994 0.715253 -vt 0.155246 0.632290 -vt 0.390409 0.350373 -vt 0.390410 0.441683 -vt 0.311206 0.396249 -vt 0.670651 0.370112 -vt 0.588814 0.422179 -vt 0.588814 0.329611 -vt 0.611486 0.652455 -vt 0.566795 0.738542 -vt 0.514490 0.652455 -vt 0.874849 0.085451 -vt 0.787613 0.135818 -vt 0.787613 0.035087 -vt 0.385899 0.258785 -vt 0.333594 0.172698 -vt 0.430588 0.172698 -vt 0.085316 0.771709 -vt 0.132621 0.693608 -vt 0.182311 0.771709 -vt 0.670788 0.409816 -vt 0.624912 0.489020 -vt 0.579478 0.409816 -vt 0.953105 0.167851 -vt 0.860537 0.167851 -vt 0.912604 0.086015 -vt 0.709234 0.592906 -vt 0.709233 0.689901 -vt 0.623147 0.645211 -vt 0.565997 0.665918 -vt 0.615687 0.587817 -vt 0.662991 0.665918 -vt 0.823919 0.743766 -vt 0.744716 0.698331 -vt 0.823919 0.652455 -vt 0.807743 0.640994 -vt 0.782618 0.566632 -vt 0.861110 0.566632 -vt 0.155712 0.667671 -vt 0.064182 0.667671 -vt 0.109947 0.603902 -vt 0.842204 0.622594 -vt 0.791954 0.539630 -vt 0.883264 0.539630 -vt 0.646345 0.583569 -vt 0.605844 0.665406 -vt 0.553777 0.583569 -vt 0.625434 0.250206 -vt 0.534124 0.250206 -vt 0.579559 0.171003 -vt 0.668119 0.709839 -vt 0.585156 0.659589 -vt 0.668119 0.618529 -vt 0.613391 0.088518 -vt 0.699477 0.133207 -vt 0.613391 0.185513 -vt 0.630697 0.035087 -vt 0.630697 0.135817 -vt 0.543461 0.085451 -vt 0.677327 0.230881 -vt 0.591241 0.283188 -vt 0.591241 0.186192 -vt 0.897270 0.119559 -vt 0.897270 0.210869 -vt 0.814305 0.169809 -vt 0.393571 0.384634 -vt 0.439447 0.463837 -vt 0.348137 0.463837 -vt 0.164829 0.797586 -vt 0.123770 0.880549 -vt 0.073519 0.797586 -vt 0.654422 0.346165 -vt 0.699112 0.432251 -vt 0.602117 0.432251 -vt 0.964719 0.702944 -vt 0.915030 0.781044 -vt 0.867724 0.702944 -vt 0.310435 0.189441 -vt 0.389639 0.234874 -vt 0.310435 0.280750 -vt 0.815127 0.421023 -vt 0.840252 0.495385 -vt 0.761759 0.495385 -vt 0.184460 0.141706 -vt 0.237826 0.067343 -vt 0.262951 0.141706 -vt 0.325414 0.361141 -vt 0.408377 0.310890 -vt 0.408377 0.402199 -vt 0.053503 0.656207 -vt 0.053503 0.564897 -vt 0.136466 0.615149 -vt 0.795633 0.660454 -vt 0.795633 0.569144 -vt 0.874836 0.614578 -vt 0.577981 0.745675 -vt 0.659816 0.693608 -vt 0.659816 0.786175 -vt 0.163106 0.171412 -vt 0.112741 0.088518 -vt 0.213470 0.088518 -vt 0.822753 0.675052 -vt 0.873118 0.587817 -vt 0.923483 0.675052 -vt 0.919352 0.407884 -vt 0.833267 0.355578 -vt 0.919352 0.310890 -vt 0.575554 0.160062 -vt 0.657390 0.119560 -vt 0.657390 0.212127 -vt 0.373118 0.493322 -vt 0.327243 0.414118 -vt 0.418552 0.414118 -vt 0.865297 0.911042 -vt 0.906356 0.828078 -vt 0.956606 0.911042 -vt 0.658501 0.524207 -vt 0.613812 0.438121 -vt 0.710805 0.438121 -vt 0.310776 0.915583 -vt 0.360465 0.837483 -vt 0.407769 0.915583 -vt 0.109946 0.210865 -vt 0.064182 0.131852 -vt 0.155711 0.131852 -vt 0.534124 0.470892 -vt 0.579889 0.407123 -vt 0.625653 0.470892 -vt 0.801703 0.846827 -vt 0.855070 0.921189 -vt 0.776578 0.921189 -vt 0.161442 0.067343 -vt 0.211693 0.150306 -vt 0.120383 0.150306 -vt 0.120495 0.421023 -vt 0.120495 0.512332 -vt 0.037533 0.462081 -vt 0.064182 0.367782 -vt 0.155492 0.367782 -vt 0.110058 0.446985 -vt 0.151619 0.056693 -vt 0.151619 0.153688 -vt 0.073519 0.103998 -vt 0.534124 0.152593 -vt 0.620211 0.197283 -vt 0.534124 0.249588 -vt 0.909988 0.086015 -vt 0.909988 0.186746 -vt 0.822753 0.136381 -vt 0.782618 0.141686 -vt 0.868704 0.193991 -vt 0.782618 0.238681 -vt 0.414130 0.792189 -vt 0.414130 0.883499 -vt 0.331167 0.842440 -vt 0.541608 0.564897 -vt 0.620811 0.610772 -vt 0.541609 0.656207 -vt 0.196305 0.382807 -vt 0.196305 0.475373 -vt 0.114469 0.423308 -vt 0.108395 0.346165 -vt 0.191288 0.396530 -vt 0.108395 0.446896 -vt 0.708378 0.092609 -vt 0.658688 0.170709 -vt 0.611383 0.092609 -vt 0.121042 0.598819 -vt 0.166806 0.677832 -vt 0.075276 0.677832 -vt 0.638086 0.438109 -vt 0.592320 0.501879 -vt 0.546556 0.438109 -vn 0.048200 -0.987800 0.148200 -vn 0.723000 -0.554500 0.412100 -vn -0.126100 -0.987800 0.091600 -vn -0.126100 -0.987800 -0.091600 -vn 0.048200 -0.987800 -0.148200 -vn 0.819300 -0.398700 0.412100 -vn -0.138700 -0.398700 0.906500 -vn -0.905000 -0.398700 0.148200 -vn -0.420600 -0.398700 -0.814900 -vn 0.645100 -0.398700 -0.651900 -vn 0.771100 -0.302400 0.560300 -vn -0.294500 -0.302400 0.906500 -vn -0.953200 -0.302400 0.000000 -vn -0.294500 -0.302400 -0.906500 -vn 0.771100 -0.302400 -0.560300 -vn 0.342700 0.554500 0.758300 -vn -0.615300 0.554500 0.560300 -vn -0.723000 0.554500 -0.412100 -vn 0.168500 0.554500 -0.814900 -vn 0.827100 0.554500 -0.091600 -vn 0.126100 0.987800 -0.091600 -vn 0.391200 0.915800 -0.091400 -vn 0.644100 0.759400 -0.091500 -vn 0.233400 0.957500 -0.169600 -vn 0.207900 0.915800 -0.343800 -vn 0.516800 0.836300 -0.183000 -vn 0.491100 0.794700 -0.356800 -vn 0.333800 0.836300 -0.435000 -vn 0.286000 0.759400 -0.584300 -vn 0.752000 0.636900 -0.169600 -vn 0.726100 0.595500 -0.343800 -vn 0.598700 0.672600 -0.435000 -vn 0.551300 0.595500 -0.584300 -vn 0.393600 0.636900 -0.662800 -vn 0.342700 0.554500 -0.758300 -vn -0.048200 0.987800 -0.148200 -vn 0.033900 0.915800 -0.400300 -vn 0.112100 0.759400 -0.640900 -vn -0.089100 0.957500 -0.274300 -vn -0.262700 0.915800 -0.303900 -vn -0.014400 0.836300 -0.548100 -vn -0.187600 0.794700 -0.577300 -vn -0.310500 0.836300 -0.451900 -vn -0.467400 0.759400 -0.452600 -vn 0.071100 0.636900 -0.767600 -vn -0.102600 0.595500 -0.796800 -vn -0.228700 0.672600 -0.703800 -vn -0.385400 0.595500 -0.704900 -vn -0.508700 0.636900 -0.579200 -vn -0.615300 0.554500 -0.560300 -vn -0.155800 0.987800 0.000000 -vn -0.370200 0.915800 -0.156000 -vn -0.574900 0.759400 -0.304600 -vn -0.288500 0.957500 0.000000 -vn -0.370200 0.915800 0.156000 -vn -0.525700 0.836300 -0.155700 -vn -0.607100 0.794700 0.000000 -vn -0.525700 0.836300 0.155700 -vn -0.574900 0.759400 0.304600 -vn -0.708100 0.636900 -0.304900 -vn -0.789500 0.595500 -0.148700 -vn -0.740000 0.672600 0.000000 -vn -0.789500 0.595500 0.148700 -vn -0.708100 0.636900 0.304900 -vn -0.723000 0.554500 0.412100 -vn -0.048200 0.987800 0.148200 -vn -0.262700 0.915800 0.303900 -vn -0.467400 0.759400 0.452600 -vn -0.089100 0.957500 0.274300 -vn 0.033900 0.915800 0.400300 -vn -0.310500 0.836300 0.451900 -vn -0.187600 0.794700 0.577300 -vn -0.014400 0.836300 0.548100 -vn 0.112100 0.759400 0.640900 -vn -0.508700 0.636900 0.579200 -vn -0.385400 0.595500 0.704900 -vn -0.228700 0.672600 0.703800 -vn -0.102600 0.595500 0.796800 -vn 0.071100 0.636900 0.767600 -vn 0.168500 0.554500 0.814900 -vn 0.126100 0.987800 0.091600 -vn 0.207900 0.915800 0.343800 -vn 0.286000 0.759400 0.584300 -vn 0.233400 0.957500 0.169600 -vn 0.391200 0.915800 0.091500 -vn 0.333800 0.836300 0.435000 -vn 0.491100 0.794700 0.356800 -vn 0.516800 0.836300 0.183000 -vn 0.644100 0.759400 0.091500 -vn 0.393600 0.636900 0.662800 -vn 0.551300 0.595500 0.584300 -vn 0.598700 0.672600 0.435000 -vn 0.726100 0.595500 0.343800 -vn 0.752000 0.636900 0.169600 -vn 0.827100 0.554500 0.091600 -vn 0.905000 0.398700 -0.148200 -vn 0.936600 0.174500 -0.303900 -vn 0.888300 -0.078400 -0.452600 -vn 0.896300 0.348500 -0.274300 -vn 0.803900 0.439900 -0.400300 -vn 0.886900 0.096200 -0.451900 -vn 0.794700 0.187600 -0.577300 -vn 0.754400 0.361100 -0.548100 -vn 0.629100 0.439900 -0.640900 -vn 0.797200 -0.170200 -0.579200 -vn 0.704900 -0.078400 -0.704900 -vn 0.703800 0.096200 -0.703800 -vn 0.578500 0.174500 -0.796800 -vn 0.537900 0.348500 -0.767600 -vn 0.420600 0.398700 -0.814900 -vn 0.138700 0.398700 -0.906500 -vn 0.000400 0.174500 -0.984600 -vn -0.156000 -0.078400 -0.984600 -vn 0.016000 0.348500 -0.937200 -vn -0.132300 0.439900 -0.888300 -vn -0.155700 0.096200 -0.983100 -vn -0.303500 0.187600 -0.934200 -vn -0.288200 0.361100 -0.886900 -vn -0.415100 0.439900 -0.796400 -vn -0.304500 -0.170200 -0.937200 -vn -0.452600 -0.078400 -0.888300 -vn -0.451900 0.096200 -0.886900 -vn -0.579100 0.174500 -0.796400 -vn -0.563800 0.348500 -0.748800 -vn -0.645100 0.398700 -0.651900 -vn -0.819300 0.398700 -0.412100 -vn -0.936300 0.174500 -0.304600 -vn -0.984600 -0.078400 -0.156000 -vn -0.886400 0.348500 -0.304900 -vn -0.885700 0.439900 -0.148700 -vn -0.983100 0.096200 -0.155700 -vn -0.982200 0.187600 0.000000 -vn -0.932500 0.361100 0.000000 -vn -0.885700 0.439900 0.148700 -vn -0.985400 -0.170200 0.000000 -vn -0.984600 -0.078400 0.156000 -vn -0.983100 0.096200 0.155700 -vn -0.936300 0.174500 0.304600 -vn -0.886400 0.348500 0.304900 -vn -0.819300 0.398700 0.412100 -vn -0.645100 0.398700 0.651900 -vn -0.579100 0.174500 0.796400 -vn -0.452600 -0.078400 0.888300 -vn -0.563800 0.348500 0.748800 -vn -0.415100 0.439900 0.796400 -vn -0.451900 0.096200 0.886900 -vn -0.303500 0.187600 0.934200 -vn -0.288200 0.361100 0.886900 -vn -0.132300 0.439900 0.888300 -vn -0.304500 -0.170200 0.937200 -vn -0.156000 -0.078400 0.984600 -vn -0.155700 0.096200 0.983100 -vn 0.000400 0.174500 0.984600 -vn 0.016000 0.348500 0.937200 -vn 0.138700 0.398700 0.906500 -vn 0.420600 0.398700 0.814900 -vn 0.578500 0.174500 0.796800 -vn 0.704900 -0.078400 0.704900 -vn 0.537900 0.348500 0.767600 -vn 0.629100 0.439900 0.640900 -vn 0.703800 0.096200 0.703800 -vn 0.794700 0.187600 0.577300 -vn 0.754400 0.361100 0.548100 -vn 0.803900 0.439900 0.400300 -vn 0.797200 -0.170200 0.579200 -vn 0.888300 -0.078400 0.452600 -vn 0.886900 0.096200 0.451900 -vn 0.936600 0.174500 0.303900 -vn 0.896300 0.348500 0.274400 -vn 0.905000 0.398700 0.148200 -vn 0.294500 0.302400 -0.906500 -vn 0.452600 0.078400 -0.888300 -vn 0.579100 -0.174500 -0.796400 -vn 0.304500 0.170200 -0.937200 -vn 0.156000 0.078400 -0.984600 -vn 0.451900 -0.096200 -0.886900 -vn 0.303500 -0.187600 -0.934200 -vn 0.155700 -0.096200 -0.983100 -vn -0.000400 -0.174500 -0.984600 -vn 0.563800 -0.348500 -0.748800 -vn 0.415100 -0.439900 -0.796400 -vn 0.288200 -0.361100 -0.886900 -vn 0.132300 -0.439900 -0.888300 -vn -0.016000 -0.348500 -0.937200 -vn -0.138700 -0.398700 -0.906500 -vn -0.771100 0.302400 -0.560300 -vn -0.704900 0.078400 -0.704900 -vn -0.578500 -0.174500 -0.796800 -vn -0.797200 0.170200 -0.579200 -vn -0.888300 0.078400 -0.452600 -vn -0.703800 -0.096200 -0.703800 -vn -0.794700 -0.187600 -0.577300 -vn -0.886900 -0.096200 -0.451900 -vn -0.936600 -0.174500 -0.303900 -vn -0.537900 -0.348500 -0.767600 -vn -0.629100 -0.439900 -0.640900 -vn -0.754400 -0.361100 -0.548100 -vn -0.803900 -0.439900 -0.400300 -vn -0.896300 -0.348500 -0.274400 -vn -0.905000 -0.398700 -0.148200 -vn -0.771100 0.302400 0.560300 -vn -0.888300 0.078400 0.452600 -vn -0.936600 -0.174500 0.303900 -vn -0.797200 0.170200 0.579200 -vn -0.704900 0.078400 0.704900 -vn -0.886900 -0.096200 0.451900 -vn -0.794700 -0.187600 0.577400 -vn -0.703800 -0.096200 0.703800 -vn -0.578500 -0.174500 0.796800 -vn -0.896300 -0.348500 0.274400 -vn -0.803900 -0.439900 0.400300 -vn -0.754400 -0.361100 0.548100 -vn -0.629100 -0.439900 0.640900 -vn -0.537900 -0.348500 0.767600 -vn -0.420600 -0.398700 0.814900 -vn 0.294500 0.302400 0.906500 -vn 0.156000 0.078400 0.984600 -vn -0.000400 -0.174500 0.984600 -vn 0.304500 0.170200 0.937200 -vn 0.452600 0.078400 0.888300 -vn 0.155700 -0.096200 0.983100 -vn 0.303500 -0.187600 0.934200 -vn 0.451900 -0.096200 0.886900 -vn 0.579100 -0.174500 0.796400 -vn -0.016000 -0.348500 0.937200 -vn 0.132300 -0.439900 0.888300 -vn 0.288200 -0.361100 0.886900 -vn 0.415100 -0.439900 0.796400 -vn 0.563800 -0.348500 0.748800 -vn 0.645100 -0.398700 0.651900 -vn 0.953200 0.302400 0.000000 -vn 0.984600 0.078400 0.156000 -vn 0.936300 -0.174500 0.304600 -vn 0.985400 0.170200 0.000000 -vn 0.984600 0.078400 -0.156000 -vn 0.983100 -0.096200 0.155700 -vn 0.982200 -0.187600 0.000000 -vn 0.983100 -0.096200 -0.155700 -vn 0.936300 -0.174500 -0.304600 -vn 0.886400 -0.348500 0.304900 -vn 0.885700 -0.439900 0.148700 -vn 0.932500 -0.361100 0.000000 -vn 0.885700 -0.439900 -0.148700 -vn 0.886400 -0.348500 -0.304900 -vn 0.819300 -0.398700 -0.412100 -vn 0.615300 -0.554500 -0.560300 -vn 0.467400 -0.759400 -0.452600 -vn 0.262700 -0.915800 -0.303900 -vn 0.508700 -0.636900 -0.579200 -vn 0.385400 -0.595500 -0.704900 -vn 0.310500 -0.836300 -0.451900 -vn 0.187600 -0.794700 -0.577300 -vn 0.228700 -0.672600 -0.703800 -vn 0.102600 -0.595500 -0.796800 -vn 0.089100 -0.957500 -0.274300 -vn -0.033900 -0.915800 -0.400300 -vn 0.014400 -0.836300 -0.548100 -vn -0.112100 -0.759400 -0.640900 -vn -0.071100 -0.636900 -0.767600 -vn -0.168500 -0.554500 -0.814900 -vn -0.342700 -0.554500 -0.758300 -vn -0.286000 -0.759400 -0.584300 -vn -0.207900 -0.915800 -0.343800 -vn -0.393600 -0.636900 -0.662800 -vn -0.551300 -0.595500 -0.584300 -vn -0.333800 -0.836300 -0.435000 -vn -0.491100 -0.794700 -0.356800 -vn -0.598700 -0.672600 -0.435000 -vn -0.726100 -0.595500 -0.343800 -vn -0.233400 -0.957500 -0.169600 -vn -0.391200 -0.915800 -0.091400 -vn -0.516800 -0.836300 -0.183000 -vn -0.644100 -0.759400 -0.091400 -vn -0.752000 -0.636900 -0.169600 -vn -0.827100 -0.554500 -0.091600 -vn -0.827100 -0.554500 0.091600 -vn -0.644100 -0.759400 0.091500 -vn -0.391200 -0.915800 0.091500 -vn -0.752000 -0.636900 0.169600 -vn -0.726100 -0.595500 0.343800 -vn -0.516800 -0.836300 0.183000 -vn -0.491100 -0.794700 0.356800 -vn -0.598700 -0.672600 0.435000 -vn -0.551300 -0.595500 0.584300 -vn -0.233400 -0.957500 0.169600 -vn -0.207900 -0.915800 0.343800 -vn -0.333800 -0.836300 0.435000 -vn -0.286000 -0.759400 0.584300 -vn -0.393600 -0.636900 0.662800 -vn -0.342700 -0.554500 0.758300 -vn 0.723000 -0.554500 -0.412100 -vn 0.789500 -0.595500 -0.148700 -vn 0.789500 -0.595500 0.148700 -vn 0.708100 -0.636900 -0.304900 -vn 0.574900 -0.759400 -0.304600 -vn 0.740000 -0.672600 -0.000000 -vn 0.607100 -0.794700 0.000000 -vn 0.525700 -0.836300 -0.155700 -vn 0.370200 -0.915800 -0.155900 -vn 0.708100 -0.636900 0.304900 -vn 0.574900 -0.759400 0.304600 -vn 0.525700 -0.836300 0.155700 -vn 0.370200 -0.915800 0.156000 -vn 0.288500 -0.957500 0.000000 -vn 0.155800 -0.987800 0.000000 -vn -0.168500 -0.554500 0.814900 -vn -0.112100 -0.759400 0.640900 -vn -0.033900 -0.915800 0.400300 -vn -0.071100 -0.636900 0.767600 -vn 0.102600 -0.595500 0.796800 -vn 0.014400 -0.836300 0.548100 -vn 0.187600 -0.794700 0.577300 -vn 0.228700 -0.672600 0.703800 -vn 0.385400 -0.595500 0.704900 -vn 0.089100 -0.957500 0.274400 -vn 0.262700 -0.915800 0.303900 -vn 0.310500 -0.836300 0.451900 -vn 0.467400 -0.759400 0.452600 -vn 0.508700 -0.636900 0.579200 -vn 0.615300 -0.554500 0.560300 -s off -f 1/1/1 16/2/1 15/3/1 -f 2/4/2 18/5/2 24/6/2 -f 1/7/3 15/8/3 30/9/3 -f 1/10/4 30/11/4 36/12/4 -f 1/13/5 36/14/5 25/15/5 -f 2/16/6 24/17/6 45/18/6 -f 3/19/7 21/20/7 51/21/7 -f 4/22/8 33/23/8 57/24/8 -f 5/25/9 39/26/9 63/27/9 -f 6/28/10 42/29/10 69/30/10 -f 2/31/11 45/32/11 52/33/11 -f 3/34/12 51/35/12 58/36/12 -f 4/37/13 57/38/13 64/39/13 -f 5/40/14 63/41/14 70/42/14 -f 6/43/15 69/44/15 46/45/15 -f 7/46/16 75/47/16 90/48/16 -f 8/49/17 78/50/17 96/51/17 -f 9/52/18 81/53/18 99/54/18 -f 10/55/19 84/56/19 102/57/19 -f 11/58/20 87/59/20 91/60/20 -f 93/61/21 100/62/21 12/63/21 -f 92/64/22 103/65/22 93/66/22 -f 91/67/23 104/68/23 92/69/23 -f 93/70/24 103/71/24 100/72/24 -f 103/73/25 101/74/25 100/75/25 -f 92/76/26 104/77/26 103/78/26 -f 104/79/27 105/80/27 103/81/27 -f 103/82/28 105/83/28 101/84/28 -f 105/85/29 102/86/29 101/87/29 -f 91/88/30 87/89/30 104/90/30 -f 87/91/31 86/92/31 104/93/31 -f 104/94/32 86/95/32 105/96/32 -f 86/97/33 85/98/33 105/99/33 -f 105/100/34 85/101/34 102/102/34 -f 85/103/35 10/104/35 102/105/35 -f 100/106/36 97/107/36 12/108/36 -f 101/109/37 106/110/37 100/111/37 -f 102/112/38 107/113/38 101/114/38 -f 100/115/39 106/116/39 97/117/39 -f 106/118/40 98/119/40 97/120/40 -f 101/121/41 107/122/41 106/123/41 -f 107/124/42 108/125/42 106/126/42 -f 106/127/43 108/128/43 98/129/43 -f 108/130/44 99/131/44 98/132/44 -f 102/133/45 84/134/45 107/135/45 -f 84/136/46 83/137/46 107/138/46 -f 107/139/47 83/140/47 108/141/47 -f 83/142/48 82/143/48 108/144/48 -f 108/145/49 82/146/49 99/147/49 -f 82/148/50 9/149/50 99/150/50 -f 97/151/51 94/152/51 12/153/51 -f 98/154/52 109/155/52 97/156/52 -f 99/157/53 110/158/53 98/159/53 -f 97/160/54 109/161/54 94/162/54 -f 109/163/55 95/164/55 94/165/55 -f 98/166/56 110/167/56 109/168/56 -f 110/169/57 111/170/57 109/171/57 -f 109/172/58 111/173/58 95/174/58 -f 111/175/59 96/176/59 95/177/59 -f 99/178/60 81/179/60 110/180/60 -f 81/181/61 80/182/61 110/183/61 -f 110/184/62 80/185/62 111/186/62 -f 80/187/63 79/188/63 111/189/63 -f 111/190/64 79/191/64 96/192/64 -f 79/193/65 8/194/65 96/195/65 -f 94/196/66 88/197/66 12/198/66 -f 95/199/67 112/200/67 94/201/67 -f 96/202/68 113/203/68 95/204/68 -f 94/205/69 112/206/69 88/207/69 -f 112/208/70 89/209/70 88/210/70 -f 95/211/71 113/212/71 112/213/71 -f 113/214/72 114/215/72 112/216/72 -f 112/217/73 114/218/73 89/219/73 -f 114/220/74 90/221/74 89/222/74 -f 96/223/75 78/224/75 113/225/75 -f 78/226/76 77/227/76 113/228/76 -f 113/229/77 77/230/77 114/231/77 -f 77/232/78 76/233/78 114/234/78 -f 114/235/79 76/236/79 90/237/79 -f 76/238/80 7/239/80 90/240/80 -f 88/241/81 93/242/81 12/243/81 -f 89/244/82 115/245/82 88/246/82 -f 90/247/83 116/248/83 89/249/83 -f 88/250/84 115/251/84 93/252/84 -f 115/253/85 92/254/85 93/255/85 -f 89/256/86 116/257/86 115/258/86 -f 116/259/87 117/260/87 115/261/87 -f 115/262/88 117/263/88 92/264/88 -f 117/265/89 91/266/89 92/267/89 -f 90/268/90 75/269/90 116/270/90 -f 75/271/91 74/272/91 116/273/91 -f 116/274/92 74/275/92 117/276/92 -f 74/277/93 73/278/93 117/279/93 -f 117/280/94 73/281/94 91/282/94 -f 73/283/95 11/284/95 91/285/95 -f 48/286/96 87/287/96 11/288/96 -f 47/289/97 118/290/97 48/291/97 -f 46/292/98 119/293/98 47/294/98 -f 48/295/99 118/296/99 87/297/99 -f 118/298/100 86/299/100 87/300/100 -f 47/301/101 119/302/101 118/303/101 -f 119/304/102 120/305/102 118/306/102 -f 118/307/103 120/308/103 86/309/103 -f 120/310/104 85/311/104 86/312/104 -f 46/313/105 69/314/105 119/315/105 -f 69/316/106 68/317/106 119/318/106 -f 119/319/107 68/320/107 120/321/107 -f 68/322/108 67/323/108 120/324/108 -f 120/325/109 67/326/109 85/327/109 -f 67/328/110 10/329/110 85/330/110 -f 72/331/111 84/332/111 10/333/111 -f 71/334/112 121/335/112 72/336/112 -f 70/337/113 122/338/113 71/339/113 -f 72/340/114 121/341/114 84/342/114 -f 121/343/115 83/344/115 84/345/115 -f 71/346/116 122/347/116 121/348/116 -f 122/349/117 123/350/117 121/351/117 -f 121/352/118 123/353/118 83/354/118 -f 123/355/119 82/356/119 83/357/119 -f 70/358/120 63/359/120 122/360/120 -f 63/361/121 62/362/121 122/363/121 -f 122/364/122 62/365/122 123/366/122 -f 62/367/123 61/368/123 123/369/123 -f 123/370/124 61/371/124 82/372/124 -f 61/373/125 9/374/125 82/375/125 -f 66/376/126 81/377/126 9/378/126 -f 65/379/127 124/380/127 66/381/127 -f 64/382/128 125/383/128 65/384/128 -f 66/385/129 124/386/129 81/387/129 -f 124/388/130 80/389/130 81/390/130 -f 65/391/131 125/392/131 124/393/131 -f 125/394/132 126/395/132 124/396/132 -f 124/397/133 126/398/133 80/399/133 -f 126/400/134 79/401/134 80/402/134 -f 64/403/135 57/404/135 125/405/135 -f 57/406/136 56/407/136 125/408/136 -f 125/409/137 56/410/137 126/411/137 -f 56/412/138 55/413/138 126/414/138 -f 126/415/139 55/416/139 79/417/139 -f 55/418/140 8/419/140 79/420/140 -f 60/421/141 78/422/141 8/423/141 -f 59/424/142 127/425/142 60/426/142 -f 58/427/143 128/428/143 59/429/143 -f 60/430/144 127/431/144 78/432/144 -f 127/433/145 77/434/145 78/435/145 -f 59/436/146 128/437/146 127/438/146 -f 128/439/147 129/440/147 127/441/147 -f 127/442/148 129/443/148 77/444/148 -f 129/445/149 76/446/149 77/447/149 -f 58/448/150 51/449/150 128/450/150 -f 51/451/151 50/452/151 128/453/151 -f 128/454/152 50/455/152 129/456/152 -f 50/457/153 49/458/153 129/459/153 -f 129/460/154 49/461/154 76/462/154 -f 49/463/155 7/464/155 76/465/155 -f 54/466/156 75/467/156 7/468/156 -f 53/469/157 130/470/157 54/471/157 -f 52/472/158 131/473/158 53/474/158 -f 54/475/159 130/476/159 75/477/159 -f 130/478/160 74/479/160 75/480/160 -f 53/481/161 131/482/161 130/483/161 -f 131/484/162 132/485/162 130/486/162 -f 130/487/163 132/488/163 74/489/163 -f 132/490/164 73/491/164 74/492/164 -f 52/493/165 45/494/165 131/495/165 -f 45/496/166 44/497/166 131/498/166 -f 131/499/167 44/500/167 132/501/167 -f 44/502/168 43/503/168 132/504/168 -f 132/505/169 43/506/169 73/507/169 -f 43/508/170 11/509/170 73/510/170 -f 67/511/171 72/512/171 10/513/171 -f 68/514/172 133/515/172 67/516/172 -f 69/517/173 134/518/173 68/519/173 -f 67/520/174 133/521/174 72/522/174 -f 133/523/175 71/524/175 72/525/175 -f 68/526/176 134/527/176 133/528/176 -f 134/529/177 135/530/177 133/531/177 -f 133/532/178 135/533/178 71/534/178 -f 135/535/179 70/536/179 71/537/179 -f 69/538/180 42/539/180 134/540/180 -f 42/541/181 41/542/181 134/543/181 -f 134/544/182 41/545/182 135/546/182 -f 41/547/183 40/548/183 135/549/183 -f 135/550/184 40/551/184 70/552/184 -f 40/553/185 5/554/185 70/555/185 -f 61/556/186 66/557/186 9/558/186 -f 62/559/187 136/560/187 61/561/187 -f 63/562/188 137/563/188 62/564/188 -f 61/565/189 136/566/189 66/567/189 -f 136/568/190 65/569/190 66/570/190 -f 62/571/191 137/572/191 136/573/191 -f 137/574/192 138/575/192 136/576/192 -f 136/577/193 138/578/193 65/579/193 -f 138/580/194 64/581/194 65/582/194 -f 63/583/195 39/584/195 137/585/195 -f 39/586/196 38/587/196 137/588/196 -f 137/589/197 38/590/197 138/591/197 -f 38/592/198 37/593/198 138/594/198 -f 138/595/199 37/596/199 64/597/199 -f 37/598/200 4/599/200 64/600/200 -f 55/601/201 60/602/201 8/603/201 -f 56/604/202 139/605/202 55/606/202 -f 57/607/203 140/608/203 56/609/203 -f 55/610/204 139/611/204 60/612/204 -f 139/613/205 59/614/205 60/615/205 -f 56/616/206 140/617/206 139/618/206 -f 140/619/207 141/620/207 139/621/207 -f 139/622/208 141/623/208 59/624/208 -f 141/625/209 58/626/209 59/627/209 -f 57/628/210 33/629/210 140/630/210 -f 33/631/211 32/632/211 140/633/211 -f 140/634/212 32/635/212 141/636/212 -f 32/637/213 31/638/213 141/639/213 -f 141/640/214 31/641/214 58/642/214 -f 31/643/215 3/644/215 58/645/215 -f 49/646/216 54/647/216 7/648/216 -f 50/649/217 142/650/217 49/651/217 -f 51/652/218 143/653/218 50/654/218 -f 49/655/219 142/656/219 54/657/219 -f 142/658/220 53/659/220 54/660/220 -f 50/661/221 143/662/221 142/663/221 -f 143/664/222 144/665/222 142/666/222 -f 142/667/223 144/668/223 53/669/223 -f 144/670/224 52/671/224 53/672/224 -f 51/673/225 21/674/225 143/675/225 -f 21/676/226 20/677/226 143/678/226 -f 143/679/227 20/680/227 144/681/227 -f 20/682/228 19/683/228 144/684/228 -f 144/685/229 19/686/229 52/687/229 -f 19/688/230 2/689/230 52/690/230 -f 43/691/231 48/692/231 11/693/231 -f 44/694/232 145/695/232 43/696/232 -f 45/697/233 146/698/233 44/699/233 -f 43/700/234 145/701/234 48/702/234 -f 145/703/235 47/704/235 48/705/235 -f 44/706/236 146/707/236 145/708/236 -f 146/709/237 147/710/237 145/711/237 -f 145/712/238 147/713/238 47/714/238 -f 147/715/239 46/716/239 47/717/239 -f 45/718/240 24/719/240 146/720/240 -f 24/721/241 23/722/241 146/723/241 -f 146/724/242 23/725/242 147/726/242 -f 23/727/243 22/728/243 147/729/243 -f 147/730/244 22/731/244 46/732/244 -f 22/733/245 6/734/245 46/735/245 -f 27/736/246 42/737/246 6/738/246 -f 26/739/247 148/740/247 27/741/247 -f 25/742/248 149/743/248 26/744/248 -f 27/745/249 148/746/249 42/747/249 -f 148/748/250 41/749/250 42/750/250 -f 26/751/251 149/752/251 148/753/251 -f 149/754/252 150/755/252 148/756/252 -f 148/757/253 150/758/253 41/759/253 -f 150/760/254 40/761/254 41/762/254 -f 25/763/255 36/764/255 149/765/255 -f 36/766/256 35/767/256 149/768/256 -f 149/769/257 35/770/257 150/771/257 -f 35/772/258 34/773/258 150/774/258 -f 150/775/259 34/776/259 40/777/259 -f 34/778/260 5/779/260 40/780/260 -f 34/781/261 39/782/261 5/783/261 -f 35/784/262 151/785/262 34/786/262 -f 36/787/263 152/788/263 35/789/263 -f 34/790/264 151/791/264 39/792/264 -f 151/793/265 38/794/265 39/795/265 -f 35/796/266 152/797/266 151/798/266 -f 152/799/267 153/800/267 151/801/267 -f 151/802/268 153/803/268 38/804/268 -f 153/805/269 37/806/269 38/807/269 -f 36/808/270 30/809/270 152/810/270 -f 30/811/271 29/812/271 152/813/271 -f 152/814/272 29/815/272 153/816/272 -f 29/817/273 28/818/273 153/819/273 -f 153/820/274 28/821/274 37/822/274 -f 28/823/275 4/824/275 37/825/275 -f 28/826/276 33/827/276 4/828/276 -f 29/829/277 154/830/277 28/831/277 -f 30/832/278 155/833/278 29/834/278 -f 28/835/279 154/836/279 33/837/279 -f 154/838/280 32/839/280 33/840/280 -f 29/841/281 155/842/281 154/843/281 -f 155/844/282 156/845/282 154/846/282 -f 154/847/283 156/848/283 32/849/283 -f 156/850/284 31/851/284 32/852/284 -f 30/853/285 15/854/285 155/855/285 -f 15/856/286 14/857/286 155/858/286 -f 155/859/287 14/860/287 156/861/287 -f 14/862/288 13/863/288 156/864/288 -f 156/865/289 13/866/289 31/867/289 -f 13/868/290 3/869/290 31/870/290 -f 22/871/291 27/872/291 6/873/291 -f 23/874/292 157/875/292 22/876/292 -f 24/877/293 158/878/293 23/879/293 -f 22/880/294 157/881/294 27/882/294 -f 157/883/295 26/884/295 27/885/295 -f 23/886/296 158/887/296 157/888/296 -f 158/889/297 159/890/297 157/891/297 -f 157/892/298 159/893/298 26/894/298 -f 159/895/299 25/896/299 26/897/299 -f 24/898/300 18/899/300 158/900/300 -f 18/901/301 17/902/301 158/903/301 -f 158/904/302 17/905/302 159/906/302 -f 17/907/303 16/908/303 159/909/303 -f 159/910/304 16/911/304 25/912/304 -f 16/913/305 1/914/305 25/915/305 -f 13/916/306 21/917/306 3/918/306 -f 14/919/307 160/920/307 13/921/307 -f 15/922/308 161/923/308 14/924/308 -f 13/925/309 160/926/309 21/927/309 -f 160/928/310 20/929/310 21/930/310 -f 14/931/311 161/932/311 160/933/311 -f 161/934/312 162/935/312 160/936/312 -f 160/937/313 162/938/313 20/939/313 -f 162/940/314 19/941/314 20/942/314 -f 15/943/315 16/944/315 161/945/315 -f 16/946/316 17/947/316 161/948/316 -f 161/949/317 17/950/317 162/951/317 -f 17/952/318 18/953/318 162/954/318 -f 162/955/319 18/956/319 19/957/319 -f 18/958/320 2/959/320 19/960/320 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_knob.obj b/src/main/resources/assets/hbm/models/bombs/n45_knob.obj deleted file mode 100644 index 65db02879..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_knob.obj +++ /dev/null @@ -1,75 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_knob.blend' -# www.blender.org -o Cylinder -v 0.000000 0.475000 -0.062500 -v 0.000000 0.525000 -0.062500 -v 0.044194 0.475000 -0.044194 -v 0.044194 0.525000 -0.044194 -v 0.062500 0.475000 0.000000 -v 0.062500 0.525000 0.000000 -v 0.044194 0.475000 0.044194 -v 0.044194 0.525000 0.044194 -v -0.000000 0.475000 0.062500 -v -0.000000 0.525000 0.062500 -v -0.044194 0.475000 0.044194 -v -0.044194 0.525000 0.044194 -v -0.062500 0.475000 -0.000000 -v -0.062500 0.525000 -0.000000 -v -0.044194 0.475000 -0.044194 -v -0.044194 0.525000 -0.044194 -vt 0.610389 0.766502 -vt 0.766501 0.610389 -vt 0.929679 0.773566 -vt 0.766501 0.389611 -vt 0.997269 0.389611 -vt 0.610388 0.233498 -vt 0.773565 0.070321 -vt 0.389611 0.233499 -vt 0.389611 0.002731 -vt 0.233498 0.389612 -vt 0.070321 0.226435 -vt 0.233498 0.610389 -vt 0.002731 0.610389 -vt 0.389611 0.766502 -vt 0.610388 0.997269 -vt 0.226434 0.929679 -vt 0.773566 0.929679 -vt 0.997269 0.610388 -vt 0.929678 0.226434 -vt 0.610388 0.002731 -vt 0.226434 0.070322 -vt 0.002731 0.389612 -vt 0.389611 0.997269 -vt 0.070321 0.773566 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn 0.000000 1.000000 0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/12/7 10/8/7 2/1/7 -f 16/14/8 2/1/8 1/15/8 -f 14/12/9 16/14/9 15/16/9 -f 1/17/1 2/1/1 3/3/1 -f 3/18/2 4/2/2 5/5/2 -f 5/19/3 6/4/3 7/7/3 -f 7/20/4 8/6/4 9/9/4 -f 9/21/5 10/8/5 11/11/5 -f 11/22/6 12/10/6 13/13/6 -f 6/4/7 4/2/7 2/1/7 -f 2/1/7 16/14/7 14/12/7 -f 14/12/7 12/10/7 10/8/7 -f 10/8/7 8/6/7 6/4/7 -f 6/4/7 2/1/7 10/8/7 -f 15/23/8 16/14/8 1/15/8 -f 13/24/9 14/12/9 15/16/9 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_rod.obj b/src/main/resources/assets/hbm/models/bombs/n45_rod.obj deleted file mode 100644 index a0a4e6bee..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_rod.obj +++ /dev/null @@ -1,75 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_rod.blend' -# www.blender.org -o Cylinder.001 -v 0.000000 0.512500 -0.031000 -v 0.000000 0.887500 -0.031000 -v 0.021920 0.512500 -0.021920 -v 0.021920 0.887500 -0.021920 -v 0.031000 0.512500 0.000000 -v 0.031000 0.887500 0.000000 -v 0.021920 0.512500 0.021920 -v 0.021920 0.887500 0.021920 -v -0.000000 0.512500 0.031000 -v -0.000000 0.887500 0.031000 -v -0.021920 0.512500 0.021920 -v -0.021920 0.887500 0.021920 -v -0.031000 0.512500 0.000000 -v -0.031000 0.887500 0.000000 -v -0.021920 0.512500 -0.021920 -v -0.021920 0.887500 -0.021920 -vt 0.423308 0.866102 -vt 0.368629 0.866102 -vt 0.368629 0.001892 -vt 0.313950 0.866102 -vt 0.313950 0.001892 -vt 0.259271 0.866102 -vt 0.259272 0.001892 -vt 0.204592 0.866102 -vt 0.204593 0.001892 -vt 0.149913 0.866102 -vt 0.149914 0.001891 -vt 0.095234 0.866102 -vt 0.095236 0.001891 -vt 0.095234 0.998109 -vt 0.040555 0.998108 -vt 0.477987 0.866102 -vt 0.423308 0.001892 -vt 0.040555 0.866102 -vt 0.040557 0.001891 -vt 0.001891 0.959445 -vt 0.001891 0.904766 -vt 0.133898 0.904766 -vt 0.133898 0.959445 -vt 0.477986 0.001892 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn 0.000000 1.000000 0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/12/7 8/14/7 6/15/7 -f 16/16/8 2/1/8 1/17/8 -f 14/12/9 16/18/9 15/19/9 -f 1/17/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 6/15/7 4/20/7 14/12/7 -f 2/21/7 16/18/7 14/12/7 -f 14/12/7 12/22/7 10/23/7 -f 10/23/7 8/14/7 14/12/7 -f 4/20/7 2/21/7 14/12/7 -f 15/24/8 16/16/8 1/17/8 -f 13/13/9 14/12/9 15/19/9 diff --git a/src/main/resources/assets/hbm/models/bombs/n45_stand.obj b/src/main/resources/assets/hbm/models/bombs/n45_stand.obj deleted file mode 100644 index 1e99f7d20..000000000 --- a/src/main/resources/assets/hbm/models/bombs/n45_stand.obj +++ /dev/null @@ -1,166 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'n45_stand.blend' -# www.blender.org -o Icosphere.001 -v 0.000000 0.100000 -0.125000 -v 0.000000 0.525000 -0.125000 -v 0.088388 0.100000 -0.088388 -v 0.088388 0.525000 -0.088388 -v 0.125000 0.100000 0.000000 -v 0.125000 0.525000 0.000000 -v 0.088388 0.100000 0.088388 -v 0.088388 0.525000 0.088388 -v -0.000000 0.100000 0.125000 -v -0.000000 0.525000 0.125000 -v -0.088388 0.100000 0.088388 -v -0.088388 0.525000 0.088388 -v -0.125000 0.100000 -0.000000 -v -0.125000 0.525000 -0.000000 -v -0.088388 0.100000 -0.088388 -v -0.088388 0.525000 -0.088388 -v 0.000000 0.100000 -0.250000 -v 0.176777 0.100000 -0.176777 -v 0.250000 0.100000 0.000000 -v 0.176777 0.100000 0.176777 -v -0.000000 0.100000 0.250000 -v -0.176777 0.100000 0.176777 -v -0.250000 0.100000 -0.000000 -v -0.176777 0.100000 -0.176777 -v -0.000000 0.000000 -0.375000 -v 0.265165 0.000000 -0.265165 -v 0.375000 0.000000 0.000000 -v 0.265165 0.000000 0.265165 -v -0.000000 0.000000 0.375000 -v -0.265165 0.000000 0.265165 -v -0.375000 0.000000 -0.000000 -v -0.265165 0.000000 -0.265165 -vt 0.590034 0.983303 -vt 0.536822 0.983303 -vt 0.536822 0.746920 -vt 0.483611 0.983303 -vt 0.483611 0.746920 -vt 0.430399 0.983303 -vt 0.430399 0.746920 -vt 0.377187 0.983303 -vt 0.377187 0.746920 -vt 0.323976 0.983303 -vt 0.323976 0.746920 -vt 0.270764 0.983303 -vt 0.270764 0.746920 -vt 0.643246 0.983303 -vt 0.590034 0.746920 -vt 0.696457 0.983303 -vt 0.643246 0.746920 -vt 0.807223 0.505400 -vt 0.737698 0.505400 -vt 0.778425 0.407078 -vt 0.346117 0.113818 -vt 0.444439 0.073092 -vt 0.501535 0.141409 -vt 0.175484 0.456239 -vt 0.224645 0.407078 -vt 0.265371 0.505400 -vt 0.607792 0.676034 -vt 0.558631 0.626872 -vt 0.656953 0.586146 -vt 0.195847 0.194564 -vt 0.265371 0.194564 -vt 0.224645 0.292886 -vt 0.827586 0.243725 -vt 0.778425 0.292886 -vt 0.737698 0.194564 -vt 0.346117 0.655670 -vt 0.346117 0.586146 -vt 0.444439 0.626872 -vt 0.395278 0.023931 -vt 0.656953 0.044294 -vt 0.656953 0.113818 -vt 0.558631 0.073092 -vt 0.649018 0.497465 -vt 0.354051 0.497465 -vt 0.354052 0.202499 -vt 0.292962 0.349982 -vt 0.501535 0.558555 -vt 0.710108 0.349982 -vt 0.649018 0.202499 -vt 0.696457 0.746920 -vt 0.827586 0.456239 -vt 0.195847 0.505400 -vt 0.656953 0.655670 -vt 0.175484 0.243725 -vt 0.807223 0.194564 -vt 0.395278 0.676034 -vt 0.346117 0.044294 -vt 0.607792 0.023931 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn -0.000000 1.000000 -0.000000 -vn -0.250500 0.756000 -0.604800 -vn 0.000000 -1.000000 0.000000 -vn -0.604800 0.756000 0.250500 -vn 0.250500 0.756000 0.604800 -vn 0.604800 0.756000 -0.250500 -vn -0.604800 0.756000 -0.250500 -vn -0.250500 0.756000 0.604800 -vn 0.604800 0.756000 0.250500 -vn 0.250500 0.756000 -0.604800 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 16/14/7 2/1/7 1/15/7 -f 14/16/8 16/14/8 15/17/8 -f 7/18/9 20/19/9 19/20/9 -f 24/21/10 17/22/10 25/23/10 -f 13/24/9 23/25/9 22/26/9 -f 9/27/9 21/28/9 20/29/9 -f 15/30/9 24/31/9 23/32/9 -f 5/33/9 19/34/9 18/35/9 -f 11/36/9 22/37/9 21/38/9 -f 1/39/9 17/22/9 24/21/9 -f 3/40/9 18/41/9 17/42/9 -f 28/43/11 30/44/11 32/45/11 -f 23/25/12 31/46/12 30/44/12 -f 21/28/13 29/47/13 28/43/13 -f 19/34/14 27/48/14 26/49/14 -f 24/31/15 32/45/15 31/46/15 -f 22/37/16 30/44/16 29/47/16 -f 19/20/17 20/19/17 28/43/17 -f 17/42/18 18/41/18 26/49/18 -f 1/15/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 15/17/7 16/14/7 1/15/7 -f 13/50/8 14/16/8 15/17/8 -f 5/51/9 7/18/9 19/20/9 -f 32/45/10 24/21/10 25/23/10 -f 11/52/9 13/24/9 22/26/9 -f 7/53/9 9/27/9 20/29/9 -f 13/54/9 15/30/9 23/32/9 -f 3/55/9 5/33/9 18/35/9 -f 9/56/9 11/36/9 21/38/9 -f 15/57/9 1/39/9 24/21/9 -f 1/58/9 3/40/9 17/42/9 -f 32/45/11 25/23/11 26/49/11 -f 26/49/11 27/48/11 28/43/11 -f 28/43/11 29/47/11 30/44/11 -f 30/44/11 31/46/11 32/45/11 -f 32/45/11 26/49/11 28/43/11 -f 22/26/12 23/25/12 30/44/12 -f 20/29/13 21/28/13 28/43/13 -f 18/35/14 19/34/14 26/49/14 -f 23/32/15 24/31/15 31/46/15 -f 21/38/16 22/37/16 29/47/16 -f 27/48/17 19/20/17 28/43/17 -f 25/23/18 17/42/18 26/49/18 diff --git a/src/main/resources/assets/hbm/models/bombs/tsar.obj b/src/main/resources/assets/hbm/models/bombs/tsar.obj new file mode 100644 index 000000000..b40b0a192 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/tsar.obj @@ -0,0 +1,10781 @@ +# Blender v2.79 (sub 0) OBJ File: 'tsar.blend' +# www.blender.org +o Cylinder.004_Cylinder.007 +v -2.620922 1.635705 0.578094 +v -2.855725 1.642531 0.571237 +v -2.857056 1.618167 0.619268 +v -2.621934 1.617162 0.614649 +v -2.854581 1.570805 0.644821 +v -2.620051 1.581115 0.634097 +v -2.848963 1.513135 0.641050 +v -2.615775 1.537224 0.631227 +v -2.842643 1.466264 0.614492 +v -2.611261 1.503337 0.612760 +v -2.563446 1.585110 0.537187 +v -2.564632 1.589535 0.547590 +v -2.566141 1.591165 0.565786 +v -2.566561 1.583473 0.580950 +v -2.565780 1.568521 0.589017 +v -2.564006 1.550314 0.587826 +v -2.562723 1.539821 0.583649 +v -2.617283 1.631775 0.534227 +v -2.850945 1.637368 0.513600 +v -2.613003 1.612516 0.500754 +v -2.585983 1.617706 0.539960 +v -2.582817 1.603788 0.514795 +v -2.588855 1.620807 0.574583 +v -2.589654 1.606172 0.603435 +v -2.588167 1.577722 0.618784 +v -2.584792 1.543080 0.616519 +v -2.581442 1.517618 0.603197 +v -2.844932 1.609716 0.467325 +v -2.898388 1.597308 0.470969 +v -2.903679 1.621500 0.511863 +v -2.919393 1.564240 0.501247 +v -2.921673 1.574001 0.519696 +v -2.907963 1.626127 0.563514 +v -2.923886 1.576390 0.546373 +v -2.909156 1.604294 0.606555 +v -2.924502 1.565114 0.568603 +v -2.906938 1.561851 0.629454 +v -2.923356 1.543193 0.580430 +v -2.901903 1.510171 0.626075 +v -2.920756 1.516501 0.578685 +v -2.896337 1.468756 0.602850 +v -2.918334 1.497845 0.569361 +v 0.197844 1.759225 0.642473 +v 0.197845 1.827974 0.671655 +v 0.197844 1.912615 0.553176 +v 0.197844 2.031451 0.273215 +v 0.197844 2.057882 0.130027 +v 0.197844 1.989133 0.100845 +v 0.351714 2.057882 0.130027 +v 0.351714 1.989133 0.100845 +v 0.351714 2.031451 0.273215 +v 0.351714 1.912615 0.553176 +v 0.351714 1.827974 0.671655 +v 0.351714 1.759225 0.642473 +v 0.324833 2.031451 0.273215 +v 0.224726 2.031451 0.273215 +v 0.224726 2.090056 0.353570 +v 0.324833 2.090056 0.353570 +v 0.224726 2.082111 0.505154 +v 0.324832 2.082111 0.505154 +v 0.224726 1.912615 0.553176 +v 0.324832 1.912615 0.553176 +v 0.324833 2.071492 0.382580 +v 0.324833 2.008010 0.328440 +v 0.224726 2.071492 0.382581 +v 0.224726 2.008010 0.328439 +v 0.324833 2.066682 0.474362 +v 0.324833 1.936056 0.497951 +v 0.224726 1.936056 0.497951 +v 0.224726 2.066682 0.474362 +v -0.757311 1.000000 -1.032090 +v 1.306870 1.000000 -1.032090 +v 1.306870 0.681067 -0.981576 +v -0.757311 0.681066 -0.981576 +v 1.306869 0.393353 -0.834979 +v -0.757311 0.393352 -0.834979 +v 1.306870 0.165022 -0.606647 +v -0.757311 0.165021 -0.606647 +v 1.306870 0.018424 -0.318933 +v -0.757311 0.018424 -0.318933 +v 1.306870 -0.032090 -0.000000 +v -0.757311 -0.032090 -0.000000 +v 1.306870 0.018424 0.318934 +v -0.757311 0.018424 0.318933 +v 1.306870 0.165022 0.606647 +v -0.757311 0.165021 0.606647 +v 1.306870 0.393353 0.834979 +v -0.757311 0.393353 0.834979 +v 1.306870 0.681067 0.981576 +v -0.757311 0.681066 0.981576 +v 1.306870 1.000000 1.032090 +v -0.757311 1.000000 1.032090 +v 1.306870 1.318934 0.981576 +v -0.757311 1.318933 0.981576 +v -0.757311 1.606647 0.834979 +v 1.306870 1.606648 0.834979 +v 1.306869 1.834979 0.606647 +v -0.757311 1.834979 0.606647 +v 1.306869 1.981576 0.318934 +v -0.757311 1.981576 0.318934 +v 1.306869 2.032090 0.000000 +v -0.757311 2.032090 0.000000 +v 1.306870 1.981576 -0.318933 +v -0.757311 1.981576 -0.318933 +v 1.306870 1.834979 -0.606647 +v -0.757311 1.834978 -0.606647 +v 1.306870 1.606647 -0.834978 +v -0.757311 1.606647 -0.834978 +v 2.054217 0.490209 -0.701667 +v 2.054217 0.298333 -0.509791 +v -0.757311 1.318933 -0.981576 +v 1.306870 1.318933 -0.981576 +v -3.225221 0.299680 -0.227548 +v -3.225221 0.404272 -0.432822 +v 2.054217 0.490209 0.701667 +v 2.054217 0.298333 0.509791 +v 2.521168 0.480886 0.377158 +v 2.521168 0.622842 0.519114 +v 2.054217 1.000000 -0.867308 +v 2.054217 0.731987 -0.824859 +v 2.054217 1.509791 0.701667 +v 2.054217 1.701667 0.509791 +v 2.054217 1.701667 -0.509791 +v 2.054217 1.509791 -0.701667 +v 2.054217 0.132692 -0.000000 +v 2.054217 0.175141 0.268013 +v 2.054217 1.000000 0.867308 +v 2.054217 1.268013 0.824859 +v 2.054217 1.867308 0.000000 +v 2.054217 1.824859 -0.268013 +v 2.054217 0.175141 -0.268013 +v 2.054217 0.731987 0.824859 +v 2.054217 1.824859 0.268013 +v 2.054217 1.268013 -0.824859 +v 2.521168 0.358340 -0.000000 +v 2.521168 0.389745 -0.198284 +v 2.772793 0.679104 -0.104265 +v 2.772793 0.662590 -0.000000 +v 2.521168 1.000000 -0.641660 +v 2.521168 0.801716 -0.610255 +v 2.521168 1.641660 0.000000 +v 2.521168 1.610255 -0.198284 +v 2.521168 0.801716 0.610255 +v 2.521168 0.622842 -0.519114 +v 2.521168 1.519114 -0.377158 +v 2.521168 1.000000 0.641660 +v 2.521168 0.480886 -0.377158 +v 2.521168 1.377158 -0.519114 +v 2.521168 1.198284 0.610255 +v 2.521168 1.198284 -0.610255 +v 2.521168 1.377159 0.519114 +v 2.521168 1.519114 0.377158 +v 2.521168 0.389745 0.198284 +v 2.521168 1.610255 0.198284 +v 2.772792 1.337410 0.000000 +v 2.772792 1.320896 0.104265 +v 2.836521 1.161198 0.052376 +v 2.836520 1.169494 0.000000 +v 2.772792 1.104266 -0.320896 +v 2.772792 1.000000 -0.337410 +v 2.772793 1.198325 0.272970 +v 2.772793 1.272971 0.198325 +v 2.772792 0.679104 0.104265 +v 2.772793 0.727030 0.198325 +v 2.772793 0.801676 0.272971 +v 2.772793 0.895735 -0.320896 +v 2.772793 1.320896 -0.104266 +v 2.772793 0.895735 0.320896 +v 2.772793 0.801676 -0.272971 +v 2.772792 1.272971 -0.198325 +v 2.772792 1.000000 0.337410 +v 2.772792 0.727030 -0.198325 +v 2.772792 1.198325 -0.272970 +v 2.772792 1.104266 0.320896 +v 2.836521 0.947624 -0.161198 +v 2.836521 1.000000 -0.169493 +v 2.836520 1.052377 -0.161198 +v 2.836521 1.099626 -0.137123 +v 2.836521 1.137123 -0.099626 +v 2.836521 1.161198 -0.052376 +v 2.836521 1.137123 0.099626 +v 2.836521 1.099626 0.137123 +v 2.836521 1.052377 0.161198 +v 2.836521 1.000000 0.169493 +v 2.836521 0.947624 0.161198 +v 2.836520 0.900375 0.137123 +v 2.836521 0.862877 0.099626 +v 2.836521 0.838803 0.052376 +v 2.836521 0.830507 -0.000000 +v 2.836521 0.838803 -0.052376 +v 2.836521 0.862877 -0.099626 +v 2.836521 0.900375 -0.137123 +v -3.225221 1.700320 0.227548 +v -3.225221 1.736360 0.000000 +v -5.250397 1.736359 0.000000 +v -5.250397 1.700319 0.227548 +v -3.225221 0.772452 0.700320 +v -3.225221 0.567178 0.595728 +v -3.225221 1.595728 0.432822 +v -3.225221 1.227548 -0.700320 +v -3.225221 1.432822 -0.595728 +v -3.225221 0.567178 -0.595728 +v -3.225221 0.772452 -0.700320 +v -3.225221 0.404272 0.432822 +v -3.225221 0.299680 0.227548 +v -3.225221 1.432822 0.595728 +v -3.225221 1.227548 0.700320 +v -3.225221 1.595728 -0.432821 +v -3.225221 1.700320 -0.227548 +v -3.225221 0.263640 -0.000000 +v -3.225221 1.000000 0.736360 +v -3.225221 1.000000 -0.736360 +v -5.250397 1.700319 -0.227548 +v -5.250396 1.595727 -0.432821 +v -5.250396 1.534429 -0.388286 +v -5.250397 1.628259 -0.204134 +v -5.250397 0.567177 0.595728 +v -5.250396 0.404271 0.432822 +v -5.250397 0.772451 -0.700320 +v -5.250396 0.999999 -0.736360 +v -5.250397 0.772451 0.700320 +v -5.250397 0.567177 -0.595728 +v -5.250397 0.999999 0.736360 +v -5.250397 0.404271 -0.432822 +v -5.250397 1.432821 -0.595728 +v -5.250397 1.227547 0.700320 +v -5.250397 0.299679 -0.227548 +v -5.250397 1.227547 -0.700320 +v -5.250397 1.432821 0.595728 +v -5.250396 0.263639 -0.000000 +v -5.250397 1.595727 0.432822 +v -5.250396 0.299679 0.227548 +v -5.250397 1.388285 -0.534430 +v -5.250397 1.204133 -0.628260 +v -3.225221 1.204133 -0.628260 +v -3.225221 1.388285 -0.534430 +v -5.250397 0.999999 0.660592 +v -5.250397 0.795865 0.628260 +v -5.250397 0.465569 -0.388286 +v -5.250397 0.611713 -0.534430 +v -5.250397 1.204133 0.628260 +v -5.250396 0.371739 -0.204134 +v -5.250397 1.388285 0.534430 +v -5.250397 0.339407 -0.000000 +v -5.250397 0.999999 -0.660592 +v -5.250396 1.534429 0.388286 +v -5.250396 0.371739 0.204134 +v -5.250397 1.628259 0.204134 +v -5.250397 0.465569 0.388286 +v -5.250397 1.660591 0.000000 +v -5.250397 0.611713 0.534430 +v -5.250397 0.795865 -0.628260 +v -3.225221 0.999999 -0.660592 +v -3.225221 0.795865 -0.628260 +v -3.225221 0.611713 -0.534430 +v -3.225221 0.465569 -0.388286 +v -3.225221 0.371739 -0.204134 +v -3.225221 0.339407 -0.000000 +v -3.225221 0.371739 0.204134 +v -3.225221 0.465569 0.388286 +v -3.225221 0.611713 0.534430 +v -3.225221 0.795865 0.628260 +v -3.225221 0.999999 0.660592 +v -3.225221 1.204133 0.628260 +v -3.225221 1.388285 0.534430 +v -3.225221 1.534429 0.388286 +v -3.225221 1.628259 0.204134 +v -3.225221 1.660591 0.000000 +v -3.225221 1.628259 -0.204134 +v -3.225221 1.534429 -0.388286 +v 2.588751 1.000000 -0.551802 +v 2.764493 1.000000 -0.551802 +v 2.764494 0.935086 -0.524914 +v 2.588751 0.935086 -0.524914 +v 2.802250 1.000000 -0.533620 +v 2.816855 1.000000 -0.500856 +v 2.816855 0.971110 -0.488889 +v 2.802250 0.947943 -0.512057 +v 2.764493 0.908198 -0.460000 +v 2.588750 0.908198 -0.460000 +v 2.816855 0.959144 -0.460000 +v 2.802250 0.926380 -0.460000 +v 2.764493 0.935086 -0.395086 +v 2.588751 0.935086 -0.395086 +v 2.816855 0.971110 -0.431111 +v 2.802250 0.947943 -0.407943 +v 2.764493 1.000000 -0.368198 +v 2.588750 1.000000 -0.368198 +v 2.816855 1.000000 -0.419144 +v 2.802250 1.000000 -0.386380 +v 2.802250 1.052057 -0.407943 +v 2.764493 1.064914 -0.395086 +v 2.588750 1.064914 -0.395086 +v 2.816855 1.028889 -0.431110 +v 2.802250 1.073620 -0.460000 +v 2.764493 1.091802 -0.460000 +v 2.588751 1.091802 -0.460000 +v 2.816855 1.040856 -0.460000 +v 2.802250 1.052057 -0.512057 +v 2.764493 1.064914 -0.524914 +v 2.816855 1.028889 -0.488889 +v 2.588751 1.064914 -0.524914 +v 2.588751 1.000000 0.368198 +v 2.764493 1.000000 0.368198 +v 2.764493 0.935086 0.395086 +v 2.588751 0.935086 0.395086 +v 2.802250 1.000000 0.386380 +v 2.816855 1.000000 0.419144 +v 2.816855 0.971110 0.431111 +v 2.802250 0.947943 0.407943 +v 2.764493 0.908198 0.460000 +v 2.588751 0.908198 0.460000 +v 2.816855 0.959144 0.460000 +v 2.802250 0.926380 0.460000 +v 2.764494 0.935086 0.524914 +v 2.588751 0.935086 0.524914 +v 2.816855 0.971111 0.488889 +v 2.802250 0.947943 0.512057 +v 2.764493 1.000000 0.551802 +v 2.588751 1.000000 0.551802 +v 2.816854 1.000000 0.500856 +v 2.802250 1.000000 0.533620 +v 2.802250 1.052057 0.512057 +v 2.764493 1.064914 0.524914 +v 2.588750 1.064914 0.524914 +v 2.816855 1.028889 0.488889 +v 2.802250 1.073620 0.460000 +v 2.764494 1.091802 0.460000 +v 2.588751 1.091802 0.460000 +v 2.816855 1.040856 0.460000 +v 2.802250 1.052057 0.407943 +v 2.764494 1.064914 0.395086 +v 2.816855 1.028889 0.431111 +v 2.588751 1.064914 0.395086 +v 0.197845 1.759225 -0.642473 +v 0.197845 1.989133 -0.100845 +v 0.197844 2.057882 -0.130027 +v 0.197844 2.031451 -0.273215 +v 0.197845 1.912615 -0.553176 +v 0.197844 1.827974 -0.671655 +v 0.351714 1.989133 -0.100845 +v 0.351714 2.057882 -0.130027 +v 0.351714 1.759225 -0.642473 +v 0.351714 1.827974 -0.671655 +v 0.351714 1.912615 -0.553176 +v 0.351714 2.031451 -0.273215 +v 0.324833 2.031451 -0.273215 +v 0.324832 2.090055 -0.353570 +v 0.224726 2.090055 -0.353570 +v 0.224726 2.031451 -0.273215 +v 0.324833 2.082111 -0.505154 +v 0.224726 2.082111 -0.505154 +v 0.224726 1.912615 -0.553176 +v 0.324833 1.912615 -0.553176 +v 0.324833 2.008010 -0.328439 +v 0.324833 2.071492 -0.382581 +v 0.224726 2.008010 -0.328439 +v 0.224726 2.071492 -0.382580 +v 0.324833 2.066682 -0.474362 +v 0.324833 1.936056 -0.497951 +v 0.224726 2.066682 -0.474362 +v 0.224726 1.936056 -0.497951 +v 0.274779 1.028989 1.006440 +v 0.274779 0.957612 1.079144 +v 0.338506 0.940748 1.076465 +v 0.368048 1.004307 1.002519 +v 0.385156 0.894675 1.069146 +v 0.436326 0.936875 0.991806 +v 0.402232 0.831738 1.059147 +v 0.461318 0.844761 0.977173 +v 0.385156 0.768801 1.049149 +v 0.436327 0.752646 0.962539 +v 0.338506 0.722728 1.041829 +v 0.368049 0.685214 0.951826 +v 0.274779 0.705864 1.039150 +v 0.274779 0.660532 0.947905 +v 0.211053 0.722727 1.041829 +v 0.181510 0.685214 0.951826 +v 0.164402 0.768801 1.049149 +v 0.113232 0.752646 0.962539 +v 0.147327 0.831738 1.059147 +v 0.088241 0.844761 0.977173 +v 0.164402 0.894675 1.069146 +v 0.113232 0.936875 0.991806 +v 0.197515 0.787682 1.052148 +v 0.185562 0.831738 1.059147 +v 0.211053 0.940748 1.076465 +v 0.181510 1.004307 1.002519 +v 0.319388 0.908045 1.071270 +v 0.274779 0.919849 1.073145 +v 0.274779 0.925524 1.037426 +v 0.319387 0.913719 1.035550 +v 0.230171 0.755431 1.047024 +v 0.274779 0.743626 1.045149 +v 0.319388 0.755431 1.047024 +v 0.352043 0.787682 1.052148 +v 0.363996 0.831738 1.059147 +v 0.230171 0.908045 1.071270 +v 0.352043 0.875793 1.066146 +v 0.197515 0.875793 1.066146 +v 0.230171 0.913719 1.035550 +v 0.197515 0.881468 1.030426 +v 0.185562 0.837412 1.023427 +v 0.197515 0.793356 1.016428 +v 0.230171 0.761105 1.011305 +v 0.274779 0.749300 1.009429 +v 0.319388 0.761105 1.011305 +v 0.352043 0.793356 1.016428 +v 0.363996 0.837412 1.023427 +v 0.352043 0.881468 1.030427 +v 0.274779 1.028989 -1.006440 +v 0.368049 1.004307 -1.002519 +v 0.338505 0.940748 -1.076465 +v 0.274779 0.957612 -1.079144 +v 0.436327 0.936875 -0.991807 +v 0.385156 0.894675 -1.069146 +v 0.461318 0.844761 -0.977173 +v 0.402232 0.831738 -1.059147 +v 0.436327 0.752647 -0.962539 +v 0.385156 0.768801 -1.049149 +v 0.368049 0.685215 -0.951826 +v 0.338506 0.722728 -1.041829 +v 0.274779 0.660533 -0.947905 +v 0.274779 0.705864 -1.039150 +v 0.181510 0.685215 -0.951826 +v 0.211053 0.722728 -1.041829 +v 0.113232 0.752647 -0.962539 +v 0.164402 0.768801 -1.049149 +v 0.088241 0.844761 -0.977173 +v 0.147327 0.831738 -1.059147 +v 0.113232 0.936875 -0.991806 +v 0.164402 0.894675 -1.069146 +v 0.185563 0.831738 -1.059147 +v 0.197515 0.787682 -1.052148 +v 0.181510 1.004307 -1.002519 +v 0.211053 0.940748 -1.076465 +v 0.319388 0.908045 -1.071270 +v 0.319388 0.913720 -1.035550 +v 0.274779 0.925524 -1.037425 +v 0.274779 0.919850 -1.073145 +v 0.230171 0.755431 -1.047025 +v 0.274779 0.743626 -1.045149 +v 0.319388 0.755431 -1.047025 +v 0.352043 0.787682 -1.052148 +v 0.363996 0.831738 -1.059147 +v 0.230171 0.908045 -1.071270 +v 0.352043 0.875794 -1.066146 +v 0.197515 0.875794 -1.066146 +v 0.352043 0.881469 -1.030427 +v 0.363996 0.837413 -1.023427 +v 0.352043 0.793357 -1.016429 +v 0.319387 0.761106 -1.011305 +v 0.274779 0.749301 -1.009430 +v 0.230171 0.761106 -1.011305 +v 0.197515 0.793357 -1.016429 +v 0.185563 0.837413 -1.023427 +v 0.197515 0.881468 -1.030427 +v 0.230171 0.913720 -1.035550 +v -5.245664 1.724600 0.143804 +v -5.194486 1.806213 0.165672 +v -5.178945 1.806213 0.165672 +v -5.127767 1.724600 0.143804 +v -5.127767 1.699425 0.237762 +v -5.178945 1.781037 0.259629 +v -5.194487 1.781037 0.259629 +v -5.245664 1.699425 0.237762 +v -5.194486 1.789429 0.228310 +v -5.245664 1.707816 0.206443 +v -5.127767 1.707816 0.206443 +v -5.178945 1.789429 0.228310 +v -5.194486 1.780201 0.262749 +v -5.194487 1.657673 0.284806 +v -5.178945 1.657673 0.284806 +v -5.178945 1.780201 0.262749 +v -5.178945 1.807048 0.162553 +v -5.178945 1.711965 0.082187 +v -5.194486 1.711965 0.082187 +v -5.194486 1.807048 0.162553 +v -5.245664 1.716209 0.175123 +v -5.127767 1.716209 0.175123 +v -5.178945 1.797821 0.196991 +v -5.194486 1.797821 0.196991 +v -5.194487 1.680623 0.199156 +v -5.178945 1.680623 0.199156 +v -5.178945 1.689015 0.167837 +v -5.194487 1.689015 0.167837 +v -5.245664 1.676589 0.231643 +v -5.127767 1.676589 0.231643 +v -5.245664 1.693372 0.169004 +v -5.127767 1.693372 0.169004 +v -5.127767 1.684980 0.200324 +v -5.245664 1.684980 0.200324 +v -5.245664 1.701764 0.137685 +v -5.127767 1.701764 0.137685 +v -5.254691 1.721862 0.168034 +v -5.254690 1.709168 0.215409 +v -5.297078 1.734766 0.222269 +v -5.297078 1.747460 0.174893 +v -5.254690 1.809059 0.242176 +v -5.254690 1.821754 0.194800 +v -5.296170 1.782376 0.235026 +v -5.303239 1.758633 0.228664 +v -5.303239 1.771327 0.181288 +v -5.296170 1.795070 0.187649 +v -4.735427 1.756607 0.186990 +v -5.258313 1.800607 0.198463 +v -5.258313 1.792577 0.228430 +v -4.735427 1.748737 0.216365 +v -4.735427 1.714383 0.207160 +v -5.258312 1.727160 0.210900 +v -5.258312 1.735189 0.180934 +v -4.735427 1.722255 0.177786 +v -4.738048 1.775154 0.227643 +v -4.738048 1.685866 0.203718 +v -4.703030 1.716621 0.211958 +v -4.703030 1.747569 0.220251 +v -4.713286 1.767075 0.225477 +v -4.738048 1.695836 0.166508 +v -4.738048 1.785124 0.190433 +v -4.713286 1.777045 0.188268 +v -4.703029 1.757539 0.183041 +v -4.703030 1.726591 0.174749 +v -4.755419 1.709252 0.136762 +v -4.755419 1.754777 0.148961 +v -4.747920 1.774392 0.154217 +v -4.723568 1.784320 0.156877 +v -4.699216 1.774392 0.154217 +v -4.691718 1.754777 0.148961 +v -4.691718 1.709252 0.136762 +v -4.723568 1.766025 0.225158 +v -4.723568 1.757680 0.256300 +v -4.699217 1.747751 0.253640 +v -4.699216 1.756096 0.222498 +v -4.755419 1.700907 0.167905 +v -4.755419 1.746433 0.180104 +v -4.691718 1.690956 0.205043 +v -4.691718 1.736482 0.217242 +v -4.691718 1.728137 0.248385 +v -4.691718 1.682611 0.236187 +v -4.723568 1.775976 0.188019 +v -4.747920 1.766048 0.185359 +v -4.755419 1.736482 0.217242 +v -4.755419 1.728137 0.248385 +v -4.747920 1.747751 0.253640 +v -4.747920 1.756096 0.222498 +v -4.691718 1.746433 0.180104 +v -4.699217 1.766048 0.185359 +v -4.755419 1.682611 0.236187 +v -4.691718 1.700907 0.167905 +v -4.755418 1.690956 0.205043 +v -4.798187 1.751698 0.243955 +v -4.761486 1.751697 0.243955 +v -4.761486 1.751643 -0.243955 +v -4.798187 1.751643 -0.243955 +v -4.798187 1.569596 0.550618 +v -4.761486 1.569596 0.550619 +v -4.798186 1.248075 0.750550 +v -4.761485 1.248075 0.750550 +v -4.798187 0.878909 0.779609 +v -4.761485 0.878909 0.779609 +v -4.797982 0.536913 0.638658 +v -4.761280 0.536913 0.638658 +v -4.798189 0.295753 0.357419 +v -4.761487 0.295753 0.357419 +v -4.798187 0.210817 -0.000000 +v -4.761485 0.210817 -0.000000 +v -4.798189 0.295753 -0.355937 +v -4.761488 0.295753 -0.355937 +v -4.798189 0.537259 -0.641050 +v -4.761488 0.537259 -0.641050 +v -4.798187 0.878909 -0.780850 +v -4.761485 0.878909 -0.780850 +v -4.798187 1.248075 -0.750708 +v -4.761486 1.248075 -0.750708 +v -4.798186 1.557471 -0.558672 +v -4.761486 1.557471 -0.558672 +v -3.764244 1.624065 0.401704 +v -3.764243 1.604246 0.391606 +v -3.715309 1.604246 0.391606 +v -3.715310 1.624065 0.401704 +v -3.790732 1.674196 0.303318 +v -3.790732 1.654377 0.293219 +v -3.790732 1.621852 0.357052 +v -3.790732 1.641671 0.367150 +v -3.688820 1.654377 0.293219 +v -3.688820 1.674196 0.303318 +v -3.688820 1.641671 0.367150 +v -3.688820 1.621852 0.357052 +v -3.715309 1.691802 0.268764 +v -3.715309 1.671983 0.258666 +v -3.764243 1.671983 0.258666 +v -3.764243 1.691802 0.268764 +v -3.715309 2.365680 0.068327 +v -3.715309 2.365680 0.046084 +v -3.764244 2.365680 0.046084 +v -3.764243 2.365680 0.068327 +v -3.688820 2.255258 0.068327 +v -3.688820 2.255258 0.046084 +v -3.688820 2.326899 0.046084 +v -3.688820 2.326899 0.068327 +v -3.790732 2.255258 0.046083 +v -3.790732 2.255258 0.068327 +v -3.790732 2.326899 0.068327 +v -3.790732 2.326899 0.046084 +v -3.764243 2.216478 0.068327 +v -3.764244 2.216478 0.046084 +v -3.715309 2.216478 0.046084 +v -3.715309 2.216478 0.068327 +v -3.746801 2.291079 0.068327 +v -3.732751 2.291079 0.068327 +v -3.732750 1.657933 0.335234 +v -3.746801 1.657933 0.335234 +v -4.064243 1.624065 0.401704 +v -4.064243 1.604246 0.391606 +v -4.015309 1.604246 0.391606 +v -4.015309 1.624065 0.401704 +v -4.090732 1.674196 0.303318 +v -4.090733 1.654377 0.293219 +v -4.090732 1.621852 0.357052 +v -4.090732 1.641671 0.367150 +v -3.988820 1.654376 0.293219 +v -3.988820 1.674196 0.303318 +v -3.988820 1.641671 0.367150 +v -3.988820 1.621852 0.357052 +v -4.015309 1.691802 0.268764 +v -4.015309 1.671983 0.258666 +v -4.064243 1.671982 0.258666 +v -4.064243 1.691802 0.268764 +v -4.015309 2.365680 0.068327 +v -4.015309 2.365680 0.046083 +v -4.064244 2.365680 0.046084 +v -4.064244 2.365680 0.068327 +v -3.988821 2.255258 0.068327 +v -3.988821 2.255258 0.046084 +v -3.988821 2.326899 0.046084 +v -3.988820 2.326899 0.068327 +v -4.090732 2.255258 0.046084 +v -4.090732 2.255258 0.068327 +v -4.090732 2.326899 0.068327 +v -4.090732 2.326899 0.046084 +v -4.064244 2.216478 0.068327 +v -4.064244 2.216478 0.046084 +v -4.015309 2.216478 0.046084 +v -4.015309 2.216478 0.068327 +v -4.046802 2.291079 0.068327 +v -4.032752 2.291079 0.068327 +v -4.032751 1.657933 0.335234 +v -4.046801 1.657933 0.335234 +v -4.364244 1.624065 0.401704 +v -4.364244 1.604246 0.391606 +v -4.315310 1.604246 0.391606 +v -4.315310 1.624065 0.401704 +v -4.390733 1.674195 0.303318 +v -4.390733 1.654376 0.293219 +v -4.390733 1.621852 0.357052 +v -4.390733 1.641671 0.367150 +v -4.288821 1.654376 0.293219 +v -4.288821 1.674195 0.303318 +v -4.288821 1.641671 0.367150 +v -4.288821 1.621852 0.357052 +v -4.315310 1.691801 0.268764 +v -4.315310 1.671982 0.258666 +v -4.364244 1.671982 0.258666 +v -4.364243 1.691801 0.268764 +v -4.315309 2.365680 0.068327 +v -4.315310 2.365680 0.046084 +v -4.364244 2.365680 0.046084 +v -4.364244 2.365680 0.068327 +v -4.288821 2.255258 0.068327 +v -4.288821 2.255258 0.046084 +v -4.288821 2.326899 0.046084 +v -4.288821 2.326899 0.068327 +v -4.390733 2.255258 0.046083 +v -4.390733 2.255258 0.068327 +v -4.390733 2.326899 0.068327 +v -4.390733 2.326899 0.046084 +v -4.364244 2.216478 0.068327 +v -4.364244 2.216477 0.046084 +v -4.315310 2.216478 0.046083 +v -4.315309 2.216478 0.068327 +v -4.346802 2.291079 0.068327 +v -4.346802 1.657933 0.335234 +v -4.332751 1.657933 0.335234 +v -4.332752 2.291079 0.068327 +v -3.764244 1.624065 -0.401704 +v -3.715309 1.624065 -0.401704 +v -3.715309 1.604246 -0.391606 +v -3.764244 1.604246 -0.391606 +v -3.790732 1.674196 -0.303318 +v -3.790732 1.641671 -0.367150 +v -3.790732 1.621852 -0.357052 +v -3.790732 1.654377 -0.293219 +v -3.688820 1.654377 -0.293219 +v -3.688820 1.621852 -0.357052 +v -3.688821 1.641671 -0.367150 +v -3.688820 1.674196 -0.303318 +v -3.715309 1.691802 -0.268764 +v -3.715309 1.671982 -0.258666 +v -3.764244 1.671982 -0.258666 +v -3.764244 1.691801 -0.268764 +v -3.715310 2.365680 -0.068327 +v -3.764244 2.365680 -0.068327 +v -3.764244 2.365680 -0.046083 +v -3.715310 2.365680 -0.046083 +v -3.688821 2.255258 -0.068327 +v -3.688821 2.326899 -0.068327 +v -3.688821 2.326899 -0.046083 +v -3.688821 2.255258 -0.046084 +v -3.790733 2.255258 -0.046083 +v -3.790732 2.326899 -0.046083 +v -3.790733 2.326899 -0.068327 +v -3.790732 2.255258 -0.068327 +v -3.764244 2.216478 -0.068327 +v -3.764244 2.216478 -0.046083 +v -3.715310 2.216478 -0.046083 +v -3.715310 2.216478 -0.068327 +v -3.746802 2.291079 -0.068327 +v -3.732752 2.291079 -0.068327 +v -3.732751 1.657933 -0.335234 +v -3.746801 1.657933 -0.335234 +v -4.064244 1.624065 -0.401704 +v -4.015310 1.624065 -0.401704 +v -4.015310 1.604246 -0.391606 +v -4.064244 1.604246 -0.391606 +v -4.090733 1.674195 -0.303318 +v -4.090733 1.641671 -0.367150 +v -4.090733 1.621852 -0.357052 +v -4.090733 1.654376 -0.293219 +v -3.988821 1.654376 -0.293219 +v -3.988821 1.621852 -0.357052 +v -3.988820 1.641671 -0.367150 +v -3.988821 1.674195 -0.303318 +v -4.015309 1.691801 -0.268764 +v -4.015310 1.671982 -0.258666 +v -4.064243 1.671982 -0.258666 +v -4.064244 1.691801 -0.268764 +v -4.015310 2.365680 -0.068327 +v -4.064244 2.365680 -0.068327 +v -4.064244 2.365680 -0.046083 +v -4.015309 2.365680 -0.046084 +v -3.988821 2.255258 -0.068327 +v -3.988821 2.326899 -0.068327 +v -3.988821 2.326899 -0.046083 +v -3.988821 2.255258 -0.046084 +v -4.090733 2.255258 -0.046084 +v -4.090733 2.326899 -0.046083 +v -4.090733 2.326899 -0.068327 +v -4.090733 2.255258 -0.068327 +v -4.064244 2.216478 -0.068327 +v -4.064244 2.216478 -0.046083 +v -4.015309 2.216478 -0.046083 +v -4.015310 2.216478 -0.068327 +v -4.046802 2.291079 -0.068327 +v -4.046802 1.657933 -0.335234 +v -4.032751 1.657933 -0.335234 +v -4.032752 2.291079 -0.068327 +v -4.364244 1.624065 -0.401704 +v -4.315310 1.624065 -0.401704 +v -4.315310 1.604246 -0.391606 +v -4.364244 1.604246 -0.391606 +v -4.390733 1.674195 -0.303318 +v -4.390733 1.641671 -0.367150 +v -4.390733 1.621852 -0.357052 +v -4.390733 1.654376 -0.293219 +v -4.288821 1.654376 -0.293219 +v -4.288821 1.621852 -0.357052 +v -4.288821 1.641671 -0.367150 +v -4.288821 1.674195 -0.303318 +v -4.315310 1.691801 -0.268764 +v -4.315310 1.671982 -0.258666 +v -4.364244 1.671982 -0.258666 +v -4.364244 1.691801 -0.268764 +v -4.315310 2.365680 -0.068327 +v -4.364244 2.365680 -0.068327 +v -4.364244 2.365680 -0.046083 +v -4.315310 2.365680 -0.046084 +v -4.288821 2.255258 -0.068327 +v -4.288821 2.326899 -0.068327 +v -4.288821 2.326899 -0.046083 +v -4.288821 2.255258 -0.046083 +v -4.390733 2.255258 -0.046083 +v -4.390733 2.326899 -0.046083 +v -4.390733 2.326899 -0.068327 +v -4.390734 2.255258 -0.068327 +v -4.364244 2.216477 -0.068327 +v -4.364244 2.216478 -0.046083 +v -4.315310 2.216478 -0.046083 +v -4.315310 2.216477 -0.068327 +v -4.346802 2.291079 -0.068327 +v -4.332752 2.291079 -0.068327 +v -4.332752 1.657933 -0.335234 +v -4.346802 1.657933 -0.335234 +v -5.204793 2.553267 0.054916 +v -5.204793 1.948851 0.054916 +v -5.007714 1.696526 0.054916 +v -4.801618 1.696526 0.054916 +v -4.801618 1.993642 0.054916 +v -4.511972 1.993641 0.054916 +v -4.511972 1.696526 0.054916 +v -3.522396 1.696526 0.054916 +v -3.522397 2.356017 0.054916 +v -3.580169 2.495494 0.054916 +v -3.719646 2.553267 0.054916 +v -3.522396 1.696526 -0.054916 +v -3.522396 2.356017 -0.054916 +v -3.719646 2.553267 -0.054916 +v -3.580169 2.495494 -0.054916 +v -5.204792 2.553267 -0.054916 +v -5.204793 1.948851 -0.054916 +v -4.511971 1.696526 -0.054916 +v -4.511972 1.993642 -0.054916 +v -4.801618 1.993641 -0.054916 +v -5.007713 1.696526 -0.054916 +v -4.801618 1.696526 -0.054916 +v -2.620651 1.578781 -0.635644 +v -2.855374 1.570747 -0.643818 +v -2.857096 1.618464 -0.618870 +v -2.621962 1.615098 -0.616657 +v -2.855011 1.643442 -0.571184 +v -2.620375 1.634108 -0.580363 +v -2.849679 1.638988 -0.513535 +v -2.616317 1.630718 -0.536488 +v -2.843465 1.611886 -0.466963 +v -2.611883 1.611857 -0.502809 +v -2.563223 1.537561 -0.585249 +v -2.564442 1.548011 -0.589552 +v -2.566041 1.566218 -0.590966 +v -2.566585 1.581282 -0.583090 +v -2.565927 1.589168 -0.568035 +v -2.564244 1.587762 -0.549835 +v -2.562994 1.583461 -0.539387 +v -2.616795 1.534889 -0.632237 +v -2.850307 1.513076 -0.639342 +v -2.612434 1.501203 -0.613370 +v -2.585602 1.540616 -0.617930 +v -2.582372 1.515298 -0.604307 +v -2.588645 1.575259 -0.620619 +v -2.589679 1.603922 -0.605633 +v -2.588427 1.618926 -0.576988 +v -2.585224 1.616250 -0.542359 +v -2.581937 1.602633 -0.517045 +v -2.844189 1.466496 -0.612232 +v -2.897730 1.469698 -0.600068 +v -2.903115 1.510860 -0.623781 +v -2.919075 1.499452 -0.566742 +v -2.921404 1.518007 -0.576286 +v -2.907656 1.562540 -0.627793 +v -2.923749 1.544699 -0.578358 +v -2.909199 1.605301 -0.605436 +v -2.924546 1.566785 -0.566811 +v -2.907331 1.627685 -0.562703 +v -2.923581 1.578345 -0.544740 +v -2.902553 1.623693 -0.511042 +v -2.921113 1.576284 -0.518058 +v -2.897081 1.599987 -0.469888 +v -2.918740 1.566743 -0.499506 +v -2.620680 0.362780 -0.576979 +v -2.855411 0.354758 -0.569034 +v -2.857095 0.379520 -0.616850 +v -2.621962 0.381625 -0.613370 +v -2.854974 0.427107 -0.642012 +v -2.620347 0.417844 -0.632521 +v -2.849615 0.484770 -0.637781 +v -2.616268 0.461729 -0.629301 +v -2.843390 0.531445 -0.610858 +v -2.611826 0.495480 -0.610569 +v -2.563247 0.413306 -0.535926 +v -2.564463 0.408962 -0.546360 +v -2.566054 0.407479 -0.564562 +v -2.566586 0.415296 -0.579657 +v -2.565916 0.430320 -0.587602 +v -2.564224 0.448524 -0.586266 +v -2.562971 0.458988 -0.582005 +v -2.616845 0.366356 -0.533098 +v -2.850372 0.359457 -0.511379 +v -2.612492 0.385353 -0.499484 +v -2.585641 0.380625 -0.538865 +v -2.582418 0.394345 -0.513599 +v -2.588668 0.377802 -0.573498 +v -2.589680 0.392677 -0.602221 +v -2.588405 0.421262 -0.617336 +v -2.585186 0.455900 -0.614794 +v -2.581892 0.481265 -0.601274 +v -2.844264 0.386746 -0.464902 +v -2.897797 0.398925 -0.468179 +v -2.903173 0.375053 -0.509250 +v -2.919109 0.432145 -0.498074 +v -2.921433 0.422530 -0.516593 +v -2.907689 0.370842 -0.560917 +v -2.923766 0.420355 -0.543278 +v -2.909198 0.393032 -0.603766 +v -2.924546 0.431815 -0.565409 +v -2.907297 0.435677 -0.626315 +v -2.923563 0.453841 -0.577055 +v -2.902494 0.487350 -0.622523 +v -2.921083 0.480529 -0.575096 +v -2.897013 0.528594 -0.598975 +v -2.918705 0.499117 -0.565627 +v -2.620900 0.420081 0.634087 +v -2.855697 0.427027 0.641053 +v -2.857063 0.379093 0.616503 +v -2.621940 0.383600 0.615402 +v -2.854623 0.353723 0.569040 +v -2.620083 0.364291 0.579279 +v -2.849031 0.357716 0.511382 +v -2.615827 0.367330 0.535397 +v -2.842721 0.384454 0.464613 +v -2.611320 0.385928 0.501580 +v -2.563428 0.461157 0.583624 +v -2.564617 0.450738 0.588009 +v -2.566134 0.432536 0.589569 +v -2.566566 0.417403 0.581818 +v -2.565795 0.409394 0.566834 +v -2.564030 0.410654 0.548631 +v -2.562750 0.414872 0.538154 +v -2.617242 0.463962 0.630327 +v -2.850890 0.484682 0.636113 +v -2.612954 0.497508 0.611196 +v -2.585951 0.458268 0.616220 +v -2.582779 0.483486 0.602399 +v -2.588838 0.423635 0.619187 +v -2.589659 0.394841 0.604440 +v -2.588193 0.379602 0.575930 +v -2.584834 0.382001 0.541295 +v -2.581490 0.395420 0.515883 +v -2.844868 0.531061 0.608639 +v -2.898332 0.527492 0.596243 +v -2.903632 0.486507 0.620278 +v -2.919367 0.497353 0.563067 +v -2.921652 0.478868 0.572757 +v -2.907938 0.434840 0.624705 +v -2.923877 0.452183 0.575043 +v -2.909163 0.391885 0.602705 +v -2.924509 0.429997 0.563680 +v -2.906977 0.369150 0.560172 +v -2.923380 0.418255 0.541713 +v -2.901966 0.372729 0.508503 +v -2.920792 0.420104 0.515027 +v -2.896408 0.396113 0.467176 +v -2.918374 0.429498 0.496407 +v -0.694283 1.367351 -0.956906 +v -0.694283 1.558230 -0.859648 +v -0.643300 1.583064 -0.908389 +v -0.643300 1.392185 -1.005646 +v 1.243842 1.367351 0.956906 +v -0.694283 1.367351 0.956906 +v 1.243842 1.558230 0.859648 +v -0.694283 1.558230 0.859648 +v -0.643300 1.583064 0.908389 +v 1.192858 1.583065 0.908389 +v 1.243842 1.558230 -0.859648 +v 1.243842 1.367351 -0.956906 +v -0.643300 1.392185 1.005647 +v 1.192858 1.392185 1.005646 +v 1.192858 1.583065 -0.908389 +v 1.192858 1.392185 -1.005646 +v -3.764244 0.340080 0.339605 +v -3.764243 0.358734 0.327490 +v -3.715309 0.358734 0.327490 +v -3.715310 0.340080 0.339605 +v -3.790732 0.400219 0.432213 +v -3.790732 0.418874 0.420099 +v -3.790732 0.379856 0.360015 +v -3.790732 0.361201 0.372129 +v -3.688820 0.418874 0.420099 +v -3.688820 0.400219 0.432213 +v -3.688820 0.361201 0.372129 +v -3.688820 0.379856 0.360015 +v -3.715309 0.421341 0.464737 +v -3.715309 0.439995 0.452622 +v -3.764243 0.439995 0.452622 +v -3.764243 0.421341 0.464737 +v -3.715309 0.257985 1.148551 +v -3.715309 0.277248 1.159673 +v -3.764244 0.277248 1.159673 +v -3.764243 0.257985 1.148551 +v -3.688820 0.313196 1.052923 +v -3.688820 0.332459 1.064044 +v -3.688820 0.296639 1.126087 +v -3.688820 0.277376 1.114966 +v -3.790732 0.332460 1.064045 +v -3.790732 0.313196 1.052923 +v -3.790732 0.277376 1.114966 +v -3.790732 0.296639 1.126087 +v -3.764243 0.332586 1.019338 +v -3.764244 0.351849 1.030460 +v -3.715309 0.351849 1.030460 +v -3.715309 0.332586 1.019338 +v -3.746801 0.295286 1.083945 +v -3.732751 0.295286 1.083945 +v -3.732750 0.380710 0.402171 +v -3.746801 0.380710 0.402171 +v -4.064243 0.340080 0.339605 +v -4.064243 0.358734 0.327490 +v -4.015309 0.358734 0.327490 +v -4.015309 0.340080 0.339605 +v -4.090732 0.400219 0.432213 +v -4.090733 0.418874 0.420099 +v -4.090732 0.379856 0.360015 +v -4.090732 0.361201 0.372129 +v -3.988820 0.418875 0.420098 +v -3.988820 0.400219 0.432213 +v -3.988820 0.361201 0.372129 +v -3.988820 0.379856 0.360015 +v -4.015309 0.421341 0.464737 +v -4.015309 0.439995 0.452622 +v -4.064243 0.439996 0.452622 +v -4.064243 0.421341 0.464737 +v -4.015309 0.257985 1.148551 +v -4.015309 0.277249 1.159673 +v -4.064244 0.277248 1.159673 +v -4.064244 0.257985 1.148551 +v -3.988821 0.313196 1.052923 +v -3.988821 0.332459 1.064044 +v -3.988821 0.296639 1.126087 +v -3.988820 0.277376 1.114966 +v -4.090732 0.332459 1.064044 +v -4.090732 0.313196 1.052923 +v -4.090732 0.277376 1.114966 +v -4.090732 0.296639 1.126087 +v -4.064244 0.332586 1.019338 +v -4.064244 0.351849 1.030460 +v -4.015309 0.351849 1.030460 +v -4.015309 0.332586 1.019338 +v -4.046802 0.295286 1.083945 +v -4.032752 0.295286 1.083945 +v -4.032751 0.380710 0.402171 +v -4.046801 0.380710 0.402171 +v -4.364244 0.340080 0.339605 +v -4.364244 0.358734 0.327490 +v -4.315310 0.358734 0.327490 +v -4.315310 0.340080 0.339605 +v -4.390733 0.400219 0.432212 +v -4.390733 0.418875 0.420098 +v -4.390733 0.379856 0.360015 +v -4.390733 0.361201 0.372129 +v -4.288821 0.418875 0.420098 +v -4.288821 0.400219 0.432212 +v -4.288821 0.361201 0.372129 +v -4.288821 0.379856 0.360015 +v -4.315310 0.421341 0.464736 +v -4.315310 0.439996 0.452622 +v -4.364244 0.439996 0.452622 +v -4.364243 0.421341 0.464736 +v -4.315309 0.257985 1.148551 +v -4.315310 0.277248 1.159673 +v -4.364244 0.277248 1.159673 +v -4.364244 0.257985 1.148551 +v -4.288821 0.313196 1.052923 +v -4.288821 0.332459 1.064044 +v -4.288821 0.296639 1.126087 +v -4.288821 0.277376 1.114966 +v -4.390733 0.332460 1.064045 +v -4.390733 0.313196 1.052923 +v -4.390733 0.277376 1.114966 +v -4.390733 0.296639 1.126087 +v -4.364244 0.332586 1.019338 +v -4.364244 0.351850 1.030459 +v -4.315310 0.351850 1.030460 +v -4.315309 0.332586 1.019338 +v -4.346802 0.295286 1.083945 +v -4.346802 0.380710 0.402171 +v -4.332751 0.380710 0.402171 +v -4.332752 0.295286 1.083945 +v -3.764244 1.035851 0.741309 +v -3.715309 1.035851 0.741309 +v -3.715309 1.037016 0.719097 +v -3.764244 1.037016 0.719097 +v -3.790732 0.925581 0.735531 +v -3.790732 0.997124 0.739279 +v -3.790732 0.998288 0.717067 +v -3.790732 0.926745 0.713318 +v -3.688820 0.926745 0.713318 +v -3.688820 0.998288 0.717067 +v -3.688821 0.997124 0.739279 +v -3.688820 0.925581 0.735531 +v -3.715309 0.886853 0.733501 +v -3.715309 0.888018 0.711288 +v -3.764244 0.888018 0.711288 +v -3.764244 0.886854 0.733500 +v -3.715310 0.376331 1.216878 +v -3.764244 0.376331 1.216878 +v -3.764244 0.357067 1.205756 +v -3.715310 0.357067 1.205756 +v -3.688821 0.431542 1.121250 +v -3.688821 0.395721 1.183293 +v -3.688821 0.376458 1.172171 +v -3.688821 0.412279 1.110128 +v -3.790733 0.412278 1.110128 +v -3.790732 0.376458 1.172171 +v -3.790733 0.395721 1.183293 +v -3.790732 0.431542 1.121250 +v -3.764244 0.450932 1.087665 +v -3.764244 0.431668 1.076543 +v -3.715310 0.431668 1.076543 +v -3.715310 0.450932 1.087665 +v -3.746802 0.413631 1.152272 +v -3.732752 0.413631 1.152272 +v -3.732751 0.961353 0.737405 +v -3.746801 0.961353 0.737405 +v -4.064244 1.035851 0.741309 +v -4.015310 1.035851 0.741309 +v -4.015310 1.037016 0.719097 +v -4.064244 1.037016 0.719097 +v -4.090733 0.925582 0.735530 +v -4.090733 0.997124 0.739279 +v -4.090733 0.998288 0.717067 +v -4.090733 0.926745 0.713317 +v -3.988821 0.926745 0.713317 +v -3.988821 0.998288 0.717067 +v -3.988820 0.997124 0.739279 +v -3.988821 0.925582 0.735530 +v -4.015309 0.886854 0.733500 +v -4.015310 0.888018 0.711288 +v -4.064243 0.888018 0.711288 +v -4.064244 0.886854 0.733500 +v -4.015310 0.376331 1.216878 +v -4.064244 0.376331 1.216878 +v -4.064244 0.357067 1.205756 +v -4.015309 0.357068 1.205757 +v -3.988821 0.431542 1.121250 +v -3.988821 0.395721 1.183293 +v -3.988821 0.376458 1.172171 +v -3.988821 0.412279 1.110128 +v -4.090733 0.412279 1.110128 +v -4.090733 0.376458 1.172171 +v -4.090733 0.395721 1.183293 +v -4.090733 0.431542 1.121250 +v -4.064244 0.450932 1.087665 +v -4.064244 0.431668 1.076543 +v -4.015309 0.431668 1.076543 +v -4.015310 0.450932 1.087665 +v -4.046802 0.413631 1.152272 +v -4.046802 0.961353 0.737405 +v -4.032751 0.961353 0.737405 +v -4.032752 0.413631 1.152272 +v -4.364244 1.035851 0.741309 +v -4.315310 1.035851 0.741309 +v -4.315310 1.037016 0.719097 +v -4.364244 1.037016 0.719097 +v -4.390733 0.925582 0.735530 +v -4.390733 0.997124 0.739279 +v -4.390733 0.998288 0.717067 +v -4.390733 0.926745 0.713317 +v -4.288821 0.926745 0.713317 +v -4.288821 0.998288 0.717067 +v -4.288821 0.997124 0.739279 +v -4.288821 0.925582 0.735530 +v -4.315310 0.886854 0.733500 +v -4.315310 0.888018 0.711288 +v -4.364244 0.888018 0.711288 +v -4.364244 0.886854 0.733500 +v -4.315310 0.376331 1.216878 +v -4.364244 0.376331 1.216878 +v -4.364244 0.357067 1.205756 +v -4.315310 0.357068 1.205757 +v -4.288821 0.431542 1.121250 +v -4.288821 0.395721 1.183293 +v -4.288821 0.376458 1.172171 +v -4.288821 0.412278 1.110128 +v -4.390733 0.412278 1.110128 +v -4.390733 0.376458 1.172171 +v -4.390733 0.395721 1.183293 +v -4.390734 0.431542 1.121250 +v -4.364244 0.450932 1.087664 +v -4.364244 0.431668 1.076543 +v -4.315310 0.431668 1.076543 +v -4.315310 0.450932 1.087664 +v -4.346802 0.413631 1.152272 +v -4.332752 0.413631 1.152272 +v -4.332752 0.961353 0.737405 +v -4.346802 0.961353 0.737405 +v -5.204793 0.175806 1.317712 +v -5.204793 0.478014 0.794272 +v -5.007714 0.604176 0.575752 +v -4.801618 0.604176 0.575752 +v -4.801618 0.455618 0.833062 +v -4.511972 0.455619 0.833061 +v -4.511972 0.604176 0.575752 +v -3.522396 0.604176 0.575752 +v -3.522397 0.274431 1.146888 +v -3.580169 0.204692 1.267679 +v -3.719646 0.175806 1.317712 +v -3.522396 0.699294 0.630668 +v -3.522396 0.369548 1.201804 +v -3.719646 0.270923 1.372628 +v -3.580169 0.299810 1.322595 +v -5.204792 0.270923 1.372628 +v -5.204793 0.573131 0.849188 +v -4.511971 0.699294 0.630668 +v -4.511972 0.550736 0.887978 +v -4.801618 0.550736 0.887977 +v -5.007713 0.699294 0.630668 +v -4.801618 0.699294 0.630668 +v -3.764244 1.035852 -0.741309 +v -3.764243 1.037016 -0.719097 +v -3.715309 1.037016 -0.719097 +v -3.715310 1.035852 -0.741309 +v -3.790732 0.925581 -0.735531 +v -3.790732 0.926745 -0.713318 +v -3.790732 0.998288 -0.717067 +v -3.790732 0.997124 -0.739280 +v -3.688820 0.926745 -0.713318 +v -3.688820 0.925581 -0.735531 +v -3.688820 0.997124 -0.739280 +v -3.688820 0.998288 -0.717067 +v -3.715309 0.886854 -0.733501 +v -3.715309 0.888018 -0.711288 +v -3.764243 0.888018 -0.711288 +v -3.764243 0.886854 -0.733501 +v -3.715309 0.376331 -1.216878 +v -3.715309 0.357068 -1.205757 +v -3.764244 0.357068 -1.205757 +v -3.764243 0.376331 -1.216878 +v -3.688820 0.431542 -1.121250 +v -3.688820 0.412279 -1.110128 +v -3.688820 0.376459 -1.172171 +v -3.688820 0.395722 -1.183293 +v -3.790732 0.412278 -1.110128 +v -3.790732 0.431542 -1.121250 +v -3.790732 0.395722 -1.183293 +v -3.790732 0.376459 -1.172171 +v -3.764243 0.450932 -1.087665 +v -3.764244 0.431669 -1.076544 +v -3.715309 0.431669 -1.076544 +v -3.715309 0.450932 -1.087665 +v -3.746801 0.413632 -1.152272 +v -3.732751 0.413632 -1.152272 +v -3.732750 0.961353 -0.737405 +v -3.746801 0.961353 -0.737405 +v -4.064243 1.035852 -0.741309 +v -4.064243 1.037016 -0.719097 +v -4.015309 1.037016 -0.719097 +v -4.015309 1.035852 -0.741309 +v -4.090732 0.925581 -0.735531 +v -4.090733 0.926745 -0.713318 +v -4.090732 0.998288 -0.717067 +v -4.090732 0.997124 -0.739280 +v -3.988820 0.926745 -0.713317 +v -3.988820 0.925581 -0.735531 +v -3.988820 0.997124 -0.739280 +v -3.988820 0.998288 -0.717067 +v -4.015309 0.886854 -0.733501 +v -4.015309 0.888018 -0.711288 +v -4.064243 0.888019 -0.711288 +v -4.064243 0.886854 -0.733501 +v -4.015309 0.376331 -1.216878 +v -4.015309 0.357067 -1.205756 +v -4.064244 0.357068 -1.205757 +v -4.064244 0.376331 -1.216878 +v -3.988821 0.431542 -1.121250 +v -3.988821 0.412279 -1.110128 +v -3.988821 0.376459 -1.172171 +v -3.988820 0.395722 -1.183293 +v -4.090732 0.412279 -1.110128 +v -4.090732 0.431542 -1.121250 +v -4.090732 0.395722 -1.183293 +v -4.090732 0.376459 -1.172171 +v -4.064244 0.450932 -1.087665 +v -4.064244 0.431669 -1.076544 +v -4.015309 0.431669 -1.076544 +v -4.015309 0.450932 -1.087665 +v -4.046802 0.413632 -1.152272 +v -4.032752 0.413632 -1.152272 +v -4.032751 0.961353 -0.737405 +v -4.046801 0.961353 -0.737405 +v -4.364244 1.035852 -0.741309 +v -4.364244 1.037016 -0.719097 +v -4.315310 1.037016 -0.719097 +v -4.315310 1.035852 -0.741309 +v -4.390733 0.925582 -0.735530 +v -4.390733 0.926745 -0.713317 +v -4.390733 0.998288 -0.717067 +v -4.390733 0.997124 -0.739280 +v -4.288821 0.926745 -0.713317 +v -4.288821 0.925582 -0.735530 +v -4.288821 0.997124 -0.739280 +v -4.288821 0.998288 -0.717067 +v -4.315310 0.886854 -0.733500 +v -4.315310 0.888019 -0.711288 +v -4.364244 0.888019 -0.711288 +v -4.364243 0.886854 -0.733500 +v -4.315309 0.376331 -1.216878 +v -4.315310 0.357068 -1.205757 +v -4.364244 0.357068 -1.205757 +v -4.364244 0.376331 -1.216878 +v -4.288821 0.431542 -1.121250 +v -4.288821 0.412279 -1.110128 +v -4.288821 0.376459 -1.172171 +v -4.288821 0.395722 -1.183293 +v -4.390733 0.412278 -1.110128 +v -4.390733 0.431542 -1.121250 +v -4.390733 0.395722 -1.183293 +v -4.390733 0.376459 -1.172171 +v -4.364244 0.450932 -1.087665 +v -4.364244 0.431670 -1.076543 +v -4.315310 0.431668 -1.076543 +v -4.315309 0.450932 -1.087665 +v -4.346802 0.413632 -1.152272 +v -4.346802 0.961353 -0.737405 +v -4.332751 0.961353 -0.737405 +v -4.332752 0.413632 -1.152272 +v -3.764244 0.340080 -0.339605 +v -3.715309 0.340080 -0.339605 +v -3.715309 0.358734 -0.327491 +v -3.764244 0.358734 -0.327491 +v -3.790732 0.400219 -0.432213 +v -3.790732 0.361202 -0.372129 +v -3.790732 0.379856 -0.360015 +v -3.790732 0.418875 -0.420099 +v -3.688820 0.418875 -0.420099 +v -3.688820 0.379856 -0.360015 +v -3.688821 0.361202 -0.372129 +v -3.688820 0.400219 -0.432213 +v -3.715309 0.421341 -0.464737 +v -3.715309 0.439996 -0.452622 +v -3.764244 0.439996 -0.452622 +v -3.764244 0.421341 -0.464736 +v -3.715310 0.257985 -1.148551 +v -3.764244 0.257985 -1.148551 +v -3.764244 0.277249 -1.159673 +v -3.715310 0.277249 -1.159673 +v -3.688821 0.313196 -1.052923 +v -3.688821 0.277376 -1.114966 +v -3.688821 0.296640 -1.126088 +v -3.688821 0.332459 -1.064044 +v -3.790733 0.332460 -1.064045 +v -3.790732 0.296640 -1.126088 +v -3.790733 0.277376 -1.114966 +v -3.790732 0.313196 -1.052923 +v -3.764244 0.332586 -1.019338 +v -3.764244 0.351850 -1.030460 +v -3.715310 0.351850 -1.030460 +v -3.715310 0.332586 -1.019338 +v -3.746802 0.295286 -1.083945 +v -3.732752 0.295286 -1.083945 +v -3.732751 0.380711 -0.402171 +v -3.746801 0.380711 -0.402171 +v -4.064244 0.340080 -0.339605 +v -4.015310 0.340080 -0.339605 +v -4.015310 0.358734 -0.327491 +v -4.064244 0.358734 -0.327491 +v -4.090733 0.400220 -0.432212 +v -4.090733 0.361202 -0.372129 +v -4.090733 0.379856 -0.360015 +v -4.090733 0.418875 -0.420098 +v -3.988821 0.418875 -0.420098 +v -3.988821 0.379856 -0.360015 +v -3.988820 0.361202 -0.372129 +v -3.988821 0.400220 -0.432212 +v -4.015309 0.421341 -0.464736 +v -4.015310 0.439996 -0.452622 +v -4.064243 0.439996 -0.452622 +v -4.064244 0.421341 -0.464736 +v -4.015310 0.257985 -1.148551 +v -4.064244 0.257985 -1.148551 +v -4.064244 0.277249 -1.159673 +v -4.015309 0.277248 -1.159673 +v -3.988821 0.313196 -1.052923 +v -3.988821 0.277376 -1.114966 +v -3.988821 0.296640 -1.126088 +v -3.988821 0.332459 -1.064044 +v -4.090733 0.332459 -1.064044 +v -4.090733 0.296640 -1.126088 +v -4.090733 0.277376 -1.114966 +v -4.090733 0.313196 -1.052923 +v -4.064244 0.332586 -1.019338 +v -4.064244 0.351850 -1.030460 +v -4.015309 0.351850 -1.030460 +v -4.015310 0.332586 -1.019338 +v -4.046802 0.295286 -1.083945 +v -4.046802 0.380711 -0.402171 +v -4.032751 0.380711 -0.402171 +v -4.032752 0.295286 -1.083945 +v -4.364244 0.340080 -0.339605 +v -4.315310 0.340080 -0.339605 +v -4.315310 0.358734 -0.327491 +v -4.364244 0.358734 -0.327491 +v -4.390733 0.400220 -0.432212 +v -4.390733 0.361202 -0.372129 +v -4.390733 0.379856 -0.360015 +v -4.390733 0.418875 -0.420098 +v -4.288821 0.418875 -0.420098 +v -4.288821 0.379856 -0.360015 +v -4.288821 0.361202 -0.372129 +v -4.288821 0.400220 -0.432212 +v -4.315310 0.421341 -0.464736 +v -4.315310 0.439996 -0.452622 +v -4.364244 0.439996 -0.452622 +v -4.364244 0.421341 -0.464736 +v -4.315310 0.257985 -1.148551 +v -4.364244 0.257985 -1.148551 +v -4.364244 0.277249 -1.159673 +v -4.315310 0.277248 -1.159673 +v -4.288821 0.313196 -1.052923 +v -4.288821 0.277376 -1.114966 +v -4.288821 0.296640 -1.126088 +v -4.288821 0.332460 -1.064045 +v -4.390733 0.332460 -1.064045 +v -4.390733 0.296640 -1.126088 +v -4.390733 0.277376 -1.114966 +v -4.390734 0.313196 -1.052923 +v -4.364244 0.332587 -1.019337 +v -4.364244 0.351850 -1.030460 +v -4.315310 0.351850 -1.030460 +v -4.315310 0.332587 -1.019337 +v -4.346802 0.295286 -1.083945 +v -4.332752 0.295286 -1.083945 +v -4.332752 0.380711 -0.402171 +v -4.346802 0.380711 -0.402171 +v -5.204793 0.270923 -1.372628 +v -5.204793 0.573131 -0.849188 +v -5.007714 0.699294 -0.630668 +v -4.801618 0.699294 -0.630668 +v -4.801618 0.550736 -0.887978 +v -4.511972 0.550736 -0.887978 +v -4.511972 0.699294 -0.630668 +v -3.522396 0.699294 -0.630668 +v -3.522397 0.369548 -1.201805 +v -3.580169 0.299810 -1.322595 +v -3.719646 0.270923 -1.372628 +v -3.522396 0.604176 -0.575752 +v -3.522396 0.274431 -1.146888 +v -3.719646 0.175806 -1.317712 +v -3.580169 0.204693 -1.267679 +v -5.204792 0.175806 -1.317712 +v -5.204793 0.478014 -0.794273 +v -4.511971 0.604176 -0.575752 +v -4.511972 0.455619 -0.833062 +v -4.801618 0.455619 -0.833062 +v -5.007713 0.604176 -0.575752 +v -4.801618 0.604176 -0.575752 +v -5.245664 1.555620 0.486839 +v -5.194486 1.615364 0.546583 +v -5.178945 1.615364 0.546583 +v -5.127767 1.555620 0.486839 +v -5.127767 1.486839 0.555621 +v -5.178945 1.546583 0.615365 +v -5.194487 1.546583 0.615365 +v -5.245664 1.486839 0.555621 +v -5.194486 1.569510 0.592438 +v -5.245664 1.509765 0.532693 +v -5.127767 1.509765 0.532693 +v -5.178945 1.569510 0.592438 +v -5.194486 1.544299 0.617649 +v -5.194487 1.427158 0.575487 +v -5.178945 1.427158 0.575487 +v -5.178945 1.544299 0.617649 +v -5.178945 1.617648 0.544300 +v -5.178945 1.575486 0.427159 +v -5.194486 1.575486 0.427159 +v -5.194486 1.617648 0.544300 +v -5.245664 1.532693 0.509766 +v -5.127767 1.532693 0.509766 +v -5.178945 1.592438 0.569510 +v -5.194486 1.592438 0.569510 +v -5.194487 1.489858 0.512786 +v -5.178945 1.489858 0.512786 +v -5.178945 1.512786 0.489859 +v -5.194487 1.512786 0.489859 +v -5.245664 1.470121 0.538903 +v -5.127767 1.470121 0.538903 +v -5.245664 1.515976 0.493049 +v -5.127767 1.515976 0.493049 +v -5.127767 1.493048 0.515976 +v -5.245664 1.493048 0.515976 +v -5.245664 1.538902 0.470121 +v -5.127767 1.538902 0.470121 +v -5.254691 1.541133 0.506453 +v -5.254690 1.506452 0.541134 +v -5.297078 1.525191 0.559874 +v -5.297078 1.559873 0.525192 +v -5.254690 1.579578 0.614261 +v -5.254690 1.614260 0.579579 +v -5.296170 1.560045 0.594727 +v -5.303239 1.542663 0.577345 +v -5.303239 1.577344 0.542664 +v -5.296170 1.594726 0.560045 +v -4.735427 1.561746 0.540243 +v -5.258313 1.594114 0.572178 +v -5.258313 1.572177 0.594115 +v -4.735427 1.540243 0.561746 +v -4.735427 1.515094 0.536598 +v -5.258312 1.524289 0.546226 +v -5.258312 1.546225 0.524289 +v -4.735427 1.536598 0.515095 +v -4.738048 1.557482 0.584722 +v -4.738048 1.492118 0.519358 +v -4.703030 1.514633 0.541873 +v -4.703030 1.537288 0.564528 +v -4.713286 1.551567 0.578807 +v -4.738048 1.519357 0.492119 +v -4.738048 1.584721 0.557482 +v -4.713286 1.578807 0.551568 +v -4.703029 1.564527 0.537288 +v -4.703030 1.541872 0.514633 +v -4.755419 1.545849 0.473066 +v -4.755419 1.579176 0.506393 +v -4.747920 1.593535 0.520752 +v -4.723568 1.600803 0.528020 +v -4.699216 1.593535 0.520752 +v -4.691718 1.579176 0.506393 +v -4.691718 1.545849 0.473066 +v -4.723568 1.550818 0.578005 +v -4.723568 1.528020 0.600803 +v -4.699217 1.520751 0.593535 +v -4.699216 1.543549 0.570737 +v -4.755419 1.523051 0.495865 +v -4.755419 1.556378 0.529191 +v -4.691718 1.495864 0.523051 +v -4.691718 1.529191 0.556379 +v -4.691718 1.506393 0.579177 +v -4.691718 1.473065 0.545850 +v -4.723568 1.578005 0.550818 +v -4.747920 1.570737 0.543550 +v -4.755419 1.529191 0.556379 +v -4.755419 1.506393 0.579177 +v -4.747920 1.520751 0.593535 +v -4.747920 1.543549 0.570737 +v -4.691718 1.556378 0.529191 +v -4.699217 1.570737 0.543550 +v -4.755419 1.473065 0.545850 +v -4.691718 1.523051 0.495865 +v -4.755418 1.495864 0.523051 +v -5.245664 1.237761 0.699426 +v -5.194486 1.259629 0.781038 +v -5.178945 1.259629 0.781038 +v -5.127767 1.237761 0.699426 +v -5.127767 1.143804 0.724602 +v -5.178945 1.165672 0.806214 +v -5.194487 1.165672 0.806214 +v -5.245664 1.143804 0.724602 +v -5.194486 1.196991 0.797822 +v -5.245664 1.175123 0.716209 +v -5.127767 1.175123 0.716209 +v -5.178945 1.196991 0.797822 +v -5.194486 1.162552 0.807050 +v -5.194487 1.082186 0.711966 +v -5.178945 1.082186 0.711966 +v -5.178945 1.162552 0.807050 +v -5.178945 1.262748 0.780202 +v -5.178945 1.284806 0.657674 +v -5.194486 1.284806 0.657674 +v -5.194486 1.262748 0.780202 +v -5.245664 1.206442 0.707818 +v -5.127767 1.206442 0.707818 +v -5.178945 1.228311 0.789430 +v -5.194486 1.228311 0.789430 +v -5.194487 1.167837 0.689015 +v -5.178945 1.167837 0.689015 +v -5.178945 1.199156 0.680624 +v -5.194487 1.199156 0.680624 +v -5.245664 1.137685 0.701765 +v -5.127767 1.137685 0.701765 +v -5.245664 1.200324 0.684981 +v -5.127767 1.200324 0.684981 +v -5.127767 1.169004 0.693373 +v -5.245664 1.169004 0.693373 +v -5.245664 1.231642 0.676589 +v -5.127767 1.231642 0.676589 +v -5.254691 1.215409 0.709169 +v -5.254690 1.168033 0.721863 +v -5.297078 1.174892 0.747461 +v -5.297078 1.222268 0.734766 +v -5.254690 1.194798 0.821755 +v -5.254690 1.242175 0.809061 +v -5.296170 1.187649 0.795072 +v -5.303239 1.181287 0.771328 +v -5.303239 1.228663 0.758634 +v -5.296170 1.235025 0.782377 +v -4.735427 1.216364 0.748737 +v -5.258313 1.228428 0.792579 +v -5.258313 1.198462 0.800608 +v -4.735427 1.186990 0.756609 +v -4.735427 1.177785 0.722255 +v -5.258312 1.180934 0.735191 +v -5.258312 1.210900 0.727160 +v -4.735427 1.207160 0.714385 +v -4.738048 1.190432 0.785125 +v -4.738048 1.166507 0.695837 +v -4.703030 1.174749 0.726592 +v -4.703030 1.183041 0.757540 +v -4.713286 1.188267 0.777046 +v -4.738048 1.203717 0.685867 +v -4.738048 1.227642 0.775155 +v -4.713286 1.225477 0.767076 +v -4.703029 1.220250 0.747570 +v -4.703030 1.211958 0.716622 +v -4.755419 1.236186 0.682612 +v -4.755419 1.248384 0.728138 +v -4.747920 1.253640 0.747753 +v -4.723568 1.256300 0.757681 +v -4.699216 1.253640 0.747753 +v -4.691718 1.248384 0.728138 +v -4.691718 1.236186 0.682612 +v -4.723568 1.188019 0.775977 +v -4.723568 1.156877 0.784321 +v -4.699217 1.154216 0.774393 +v -4.699216 1.185358 0.766048 +v -4.755419 1.205043 0.690957 +v -4.755419 1.217242 0.736483 +v -4.691718 1.167905 0.700908 +v -4.691718 1.180103 0.746434 +v -4.691718 1.148961 0.754779 +v -4.691718 1.136761 0.709253 +v -4.723568 1.225158 0.766025 +v -4.747920 1.222498 0.756097 +v -4.755419 1.180103 0.746434 +v -4.755419 1.148961 0.754779 +v -4.747920 1.154216 0.774393 +v -4.747920 1.185358 0.766048 +v -4.691718 1.217242 0.736483 +v -4.699217 1.222498 0.756097 +v -4.755419 1.136761 0.709253 +v -4.691718 1.205043 0.690957 +v -4.755418 1.167905 0.700908 +v -5.245664 0.856194 0.724602 +v -5.194486 0.834327 0.806214 +v -5.178945 0.834327 0.806214 +v -5.127767 0.856194 0.724602 +v -5.127767 0.762237 0.699426 +v -5.178945 0.740369 0.781038 +v -5.194487 0.740369 0.781038 +v -5.245664 0.762237 0.699426 +v -5.194486 0.771688 0.789430 +v -5.245664 0.793556 0.707818 +v -5.127767 0.793556 0.707818 +v -5.178945 0.771688 0.789430 +v -5.194486 0.737249 0.780203 +v -5.194487 0.715192 0.657674 +v -5.178945 0.715192 0.657674 +v -5.178945 0.737249 0.780203 +v -5.178945 0.837446 0.807050 +v -5.178945 0.917811 0.711966 +v -5.194486 0.917811 0.711966 +v -5.194486 0.837446 0.807050 +v -5.245664 0.824875 0.716210 +v -5.127767 0.824875 0.716210 +v -5.178945 0.803008 0.797822 +v -5.194486 0.803008 0.797822 +v -5.194487 0.800843 0.680624 +v -5.178945 0.800843 0.680624 +v -5.178945 0.832162 0.689016 +v -5.194487 0.832162 0.689016 +v -5.245664 0.768356 0.676590 +v -5.127767 0.768356 0.676590 +v -5.245664 0.830994 0.693374 +v -5.127767 0.830994 0.693374 +v -5.127767 0.799675 0.684981 +v -5.245664 0.799675 0.684981 +v -5.245664 0.862314 0.701765 +v -5.127767 0.862314 0.701765 +v -5.254691 0.831965 0.721863 +v -5.254690 0.784589 0.709169 +v -5.297078 0.777730 0.734767 +v -5.297078 0.825106 0.747461 +v -5.254690 0.757823 0.809060 +v -5.254690 0.805199 0.821755 +v -5.296170 0.764973 0.782378 +v -5.303239 0.771335 0.758634 +v -5.303239 0.818710 0.771328 +v -5.296170 0.812349 0.795072 +v -4.735427 0.813008 0.756608 +v -5.258313 0.801535 0.800608 +v -5.258313 0.771569 0.792579 +v -4.735427 0.783634 0.748738 +v -4.735427 0.792839 0.714384 +v -5.258312 0.789098 0.727162 +v -5.258312 0.819065 0.735190 +v -4.735427 0.822213 0.722256 +v -4.738048 0.772356 0.775155 +v -4.738048 0.796281 0.685867 +v -4.703030 0.788040 0.716622 +v -4.703030 0.779748 0.747570 +v -4.713286 0.774521 0.767076 +v -4.738048 0.833491 0.695837 +v -4.738048 0.809566 0.785126 +v -4.713286 0.811731 0.777046 +v -4.703029 0.816957 0.757540 +v -4.703030 0.825250 0.726593 +v -4.755419 0.863237 0.709253 +v -4.755419 0.851038 0.754779 +v -4.747920 0.845782 0.774394 +v -4.723568 0.843122 0.784322 +v -4.699216 0.845782 0.774394 +v -4.691718 0.851038 0.754779 +v -4.691718 0.863237 0.709253 +v -4.723568 0.774841 0.766026 +v -4.723568 0.743698 0.757681 +v -4.699217 0.746358 0.747753 +v -4.699216 0.777501 0.756097 +v -4.755419 0.832093 0.700908 +v -4.755419 0.819895 0.746434 +v -4.691718 0.794956 0.690957 +v -4.691718 0.782757 0.736483 +v -4.691718 0.751614 0.728139 +v -4.691718 0.763812 0.682613 +v -4.723568 0.811980 0.775977 +v -4.747920 0.814640 0.766049 +v -4.755419 0.782757 0.736483 +v -4.755419 0.751614 0.728139 +v -4.747920 0.746358 0.747753 +v -4.747920 0.777501 0.756097 +v -4.691718 0.819895 0.746434 +v -4.699217 0.814640 0.766049 +v -4.755419 0.763812 0.682613 +v -4.691718 0.832093 0.700908 +v -4.755418 0.794956 0.690957 +v -5.245664 0.513160 0.555621 +v -5.194486 0.453416 0.615365 +v -5.178945 0.453416 0.615365 +v -5.127767 0.513160 0.555621 +v -5.127767 0.444378 0.486840 +v -5.178945 0.384634 0.546584 +v -5.194487 0.384634 0.546584 +v -5.245664 0.444378 0.486840 +v -5.194486 0.407561 0.569511 +v -5.245664 0.467305 0.509767 +v -5.127767 0.467305 0.509767 +v -5.178945 0.407561 0.569511 +v -5.194486 0.382350 0.544301 +v -5.194487 0.424512 0.427159 +v -5.178945 0.424512 0.427159 +v -5.178945 0.382350 0.544301 +v -5.178945 0.455699 0.617649 +v -5.178945 0.572839 0.575487 +v -5.194486 0.572839 0.575487 +v -5.194486 0.455699 0.617649 +v -5.245664 0.490232 0.532694 +v -5.127767 0.490232 0.532694 +v -5.178945 0.430488 0.592439 +v -5.194486 0.430488 0.592439 +v -5.194487 0.487213 0.489860 +v -5.178945 0.487213 0.489860 +v -5.178945 0.510140 0.512787 +v -5.194487 0.510140 0.512787 +v -5.245664 0.461096 0.470123 +v -5.127767 0.461096 0.470123 +v -5.245664 0.506950 0.515977 +v -5.127767 0.506950 0.515977 +v -5.127767 0.484023 0.493049 +v -5.245664 0.484023 0.493049 +v -5.245664 0.529878 0.538904 +v -5.127767 0.529878 0.538904 +v -5.254691 0.493546 0.541135 +v -5.254690 0.458864 0.506454 +v -5.297078 0.440125 0.525192 +v -5.297078 0.474807 0.559874 +v -5.254690 0.385738 0.579579 +v -5.254690 0.420420 0.614261 +v -5.296170 0.405272 0.560046 +v -5.303239 0.422653 0.542664 +v -5.303239 0.457334 0.577346 +v -5.296170 0.439954 0.594727 +v -4.735427 0.459756 0.561747 +v -5.258313 0.427820 0.594115 +v -5.258313 0.405884 0.572178 +v -4.735427 0.438252 0.540244 +v -4.735427 0.463401 0.515095 +v -5.258312 0.453773 0.524290 +v -5.258312 0.475710 0.546226 +v -4.735427 0.484904 0.536599 +v -4.738048 0.415277 0.557483 +v -4.738048 0.480641 0.492119 +v -4.703030 0.458126 0.514634 +v -4.703030 0.435471 0.537289 +v -4.713286 0.421191 0.551568 +v -4.738048 0.507880 0.519359 +v -4.738048 0.442516 0.584722 +v -4.713286 0.448431 0.578808 +v -4.703029 0.462710 0.564528 +v -4.703030 0.485366 0.541873 +v -4.755419 0.526933 0.545850 +v -4.755419 0.493605 0.579177 +v -4.747920 0.479246 0.593536 +v -4.723568 0.471979 0.600804 +v -4.699216 0.479246 0.593536 +v -4.691718 0.493605 0.579177 +v -4.691718 0.526933 0.545850 +v -4.723568 0.421993 0.550819 +v -4.723568 0.399196 0.528021 +v -4.699217 0.406463 0.520752 +v -4.699216 0.429261 0.543550 +v -4.755419 0.504134 0.523052 +v -4.755419 0.470807 0.556379 +v -4.691718 0.476948 0.495865 +v -4.691718 0.443620 0.529192 +v -4.691718 0.420822 0.506394 +v -4.691718 0.454149 0.473067 +v -4.723568 0.449181 0.578006 +v -4.747920 0.456449 0.570738 +v -4.755419 0.443620 0.529192 +v -4.755419 0.420822 0.506394 +v -4.747920 0.406463 0.520752 +v -4.747920 0.429261 0.543550 +v -4.691718 0.470807 0.556379 +v -4.699217 0.456449 0.570738 +v -4.755419 0.454149 0.473067 +v -4.691718 0.504134 0.523052 +v -4.755418 0.476948 0.495865 +v -5.245664 0.300573 0.237762 +v -5.194486 0.218961 0.259631 +v -5.178945 0.218961 0.259631 +v -5.127767 0.300573 0.237762 +v -5.127767 0.275397 0.143805 +v -5.178945 0.193785 0.165673 +v -5.194487 0.193785 0.165673 +v -5.245664 0.275397 0.143805 +v -5.194486 0.202177 0.196992 +v -5.245664 0.283789 0.175124 +v -5.127767 0.283789 0.175124 +v -5.178945 0.202177 0.196992 +v -5.194486 0.192949 0.162554 +v -5.194487 0.288033 0.082188 +v -5.178945 0.288033 0.082188 +v -5.178945 0.192949 0.162554 +v -5.178945 0.219797 0.262750 +v -5.178945 0.342324 0.284807 +v -5.194486 0.342324 0.284807 +v -5.194486 0.219797 0.262750 +v -5.245664 0.292181 0.206444 +v -5.127767 0.292181 0.206444 +v -5.178945 0.210569 0.228312 +v -5.194486 0.210569 0.228312 +v -5.194487 0.310983 0.167838 +v -5.178945 0.310983 0.167838 +v -5.178945 0.319375 0.199157 +v -5.194487 0.319375 0.199157 +v -5.245664 0.298234 0.137686 +v -5.127767 0.298234 0.137686 +v -5.245664 0.315018 0.200325 +v -5.127767 0.315018 0.200325 +v -5.127767 0.306626 0.169005 +v -5.245664 0.306626 0.169005 +v -5.245664 0.323410 0.231644 +v -5.127767 0.323410 0.231644 +v -5.254691 0.290830 0.215410 +v -5.254690 0.278136 0.168035 +v -5.297078 0.252538 0.174893 +v -5.297078 0.265232 0.222269 +v -5.254690 0.178244 0.194800 +v -5.254690 0.190938 0.242176 +v -5.296170 0.204927 0.187651 +v -5.303239 0.228671 0.181288 +v -5.303239 0.241365 0.228664 +v -5.296170 0.217622 0.235027 +v -4.735427 0.251261 0.216366 +v -5.258313 0.207420 0.228430 +v -5.258313 0.199391 0.198463 +v -4.735427 0.243390 0.186992 +v -4.735427 0.277744 0.177786 +v -5.258312 0.264808 0.180936 +v -5.258312 0.272838 0.210902 +v -4.735427 0.285614 0.207161 +v -4.738048 0.214873 0.190433 +v -4.738048 0.304162 0.166509 +v -4.703030 0.273406 0.174750 +v -4.703030 0.242459 0.183042 +v -4.713286 0.222953 0.188269 +v -4.738048 0.314132 0.203718 +v -4.738048 0.224844 0.227643 +v -4.713286 0.232923 0.225479 +v -4.703029 0.252429 0.220252 +v -4.703030 0.283377 0.211960 +v -4.755419 0.317387 0.236187 +v -4.755419 0.271861 0.248385 +v -4.747920 0.252246 0.253641 +v -4.723568 0.242318 0.256301 +v -4.699216 0.252246 0.253641 +v -4.691718 0.271861 0.248385 +v -4.691718 0.317387 0.236187 +v -4.723568 0.224022 0.188020 +v -4.723568 0.215677 0.156878 +v -4.699217 0.225606 0.154217 +v -4.699216 0.233951 0.185360 +v -4.755419 0.309042 0.205044 +v -4.755419 0.263516 0.217243 +v -4.691718 0.299091 0.167906 +v -4.691718 0.253565 0.180104 +v -4.691718 0.245220 0.148962 +v -4.691718 0.290746 0.136763 +v -4.723568 0.233974 0.225159 +v -4.747920 0.243901 0.222499 +v -4.755419 0.253565 0.180104 +v -4.755419 0.245220 0.148962 +v -4.747920 0.225606 0.154217 +v -4.747920 0.233951 0.185360 +v -4.691718 0.263516 0.217243 +v -4.699217 0.243901 0.222499 +v -4.755419 0.290746 0.136763 +v -4.691718 0.309042 0.205044 +v -4.755418 0.299091 0.167906 +v -5.245664 0.275397 -0.143804 +v -5.194486 0.193785 -0.165672 +v -5.178945 0.193785 -0.165672 +v -5.127767 0.275397 -0.143804 +v -5.127767 0.300573 -0.237762 +v -5.178945 0.218960 -0.259630 +v -5.194487 0.218960 -0.259630 +v -5.245664 0.300573 -0.237762 +v -5.194486 0.210569 -0.228310 +v -5.245664 0.292181 -0.206443 +v -5.127767 0.292181 -0.206443 +v -5.178945 0.210569 -0.228310 +v -5.194486 0.219796 -0.262750 +v -5.194487 0.342325 -0.284806 +v -5.178945 0.342325 -0.284806 +v -5.178945 0.219796 -0.262750 +v -5.178945 0.192949 -0.162553 +v -5.178945 0.288033 -0.082187 +v -5.194486 0.288033 -0.082187 +v -5.194486 0.192949 -0.162553 +v -5.245664 0.283789 -0.175124 +v -5.127767 0.283789 -0.175124 +v -5.178945 0.202177 -0.196991 +v -5.194486 0.202177 -0.196991 +v -5.194487 0.319375 -0.199156 +v -5.178945 0.319375 -0.199156 +v -5.178945 0.310982 -0.167837 +v -5.194487 0.310982 -0.167837 +v -5.245664 0.323409 -0.231643 +v -5.127767 0.323409 -0.231643 +v -5.245664 0.306625 -0.169004 +v -5.127767 0.306625 -0.169004 +v -5.127767 0.315018 -0.200323 +v -5.245664 0.315018 -0.200323 +v -5.245664 0.298234 -0.137685 +v -5.127767 0.298234 -0.137685 +v -5.254691 0.278136 -0.168034 +v -5.254690 0.290830 -0.215409 +v -5.297078 0.265232 -0.222269 +v -5.297078 0.252538 -0.174893 +v -5.254690 0.190938 -0.242176 +v -5.254690 0.178244 -0.194800 +v -5.296170 0.217621 -0.235026 +v -5.303239 0.241365 -0.228664 +v -5.303239 0.228671 -0.181288 +v -5.296170 0.204927 -0.187649 +v -4.735427 0.243390 -0.186991 +v -5.258313 0.199391 -0.198463 +v -5.258313 0.207420 -0.228430 +v -4.735427 0.251261 -0.216365 +v -4.735427 0.285615 -0.207160 +v -5.258312 0.272837 -0.210900 +v -5.258312 0.264809 -0.180934 +v -4.735427 0.277743 -0.177786 +v -4.738048 0.224844 -0.227643 +v -4.738048 0.314132 -0.203718 +v -4.703030 0.283376 -0.211958 +v -4.703030 0.252429 -0.220251 +v -4.713286 0.232923 -0.225478 +v -4.738048 0.304162 -0.166508 +v -4.738048 0.214873 -0.190433 +v -4.713286 0.222953 -0.188268 +v -4.703029 0.242459 -0.183041 +v -4.703030 0.273406 -0.174749 +v -4.755419 0.290746 -0.136762 +v -4.755419 0.245220 -0.148961 +v -4.747920 0.225605 -0.154217 +v -4.723568 0.215677 -0.156877 +v -4.699216 0.225605 -0.154217 +v -4.691718 0.245220 -0.148961 +v -4.691718 0.290746 -0.136762 +v -4.723568 0.233973 -0.225158 +v -4.723568 0.242318 -0.256300 +v -4.699217 0.252246 -0.253640 +v -4.699216 0.243902 -0.222498 +v -4.755419 0.299090 -0.167905 +v -4.755419 0.253565 -0.180103 +v -4.691718 0.309041 -0.205043 +v -4.691718 0.263516 -0.217242 +v -4.691718 0.271860 -0.248385 +v -4.691718 0.317386 -0.236187 +v -4.723568 0.224022 -0.188019 +v -4.747920 0.233950 -0.185359 +v -4.755419 0.263516 -0.217242 +v -4.755419 0.271860 -0.248385 +v -4.747920 0.252246 -0.253640 +v -4.747920 0.243902 -0.222498 +v -4.691718 0.253565 -0.180103 +v -4.699217 0.233950 -0.185359 +v -4.755419 0.317386 -0.236187 +v -4.691718 0.299090 -0.167905 +v -4.755418 0.309041 -0.205043 +v -5.245664 0.444378 -0.486839 +v -5.194486 0.384633 -0.546583 +v -5.178945 0.384633 -0.546583 +v -5.127767 0.444378 -0.486839 +v -5.127767 0.513159 -0.555621 +v -5.178945 0.453414 -0.615365 +v -5.194487 0.453414 -0.615365 +v -5.245664 0.513159 -0.555621 +v -5.194486 0.430488 -0.592437 +v -5.245664 0.490232 -0.532693 +v -5.127767 0.490232 -0.532693 +v -5.178945 0.430488 -0.592437 +v -5.194486 0.455698 -0.617649 +v -5.194487 0.572839 -0.575487 +v -5.178945 0.572839 -0.575487 +v -5.178945 0.455698 -0.617649 +v -5.178945 0.382350 -0.544300 +v -5.178945 0.424512 -0.427159 +v -5.194486 0.424512 -0.427159 +v -5.194486 0.382350 -0.544300 +v -5.245664 0.467304 -0.509767 +v -5.127767 0.467304 -0.509767 +v -5.178945 0.407560 -0.569510 +v -5.194486 0.407560 -0.569510 +v -5.194487 0.510139 -0.512786 +v -5.178945 0.510139 -0.512786 +v -5.178945 0.487211 -0.489859 +v -5.194487 0.487211 -0.489859 +v -5.245664 0.529876 -0.538903 +v -5.127767 0.529876 -0.538903 +v -5.245664 0.484022 -0.493049 +v -5.127767 0.484022 -0.493049 +v -5.127767 0.506949 -0.515976 +v -5.245664 0.506949 -0.515976 +v -5.245664 0.461095 -0.470121 +v -5.127767 0.461095 -0.470121 +v -5.254691 0.458864 -0.506453 +v -5.254690 0.493545 -0.541134 +v -5.297078 0.474807 -0.559874 +v -5.297078 0.440125 -0.525192 +v -5.254690 0.420420 -0.614261 +v -5.254690 0.385738 -0.579579 +v -5.296170 0.439953 -0.594727 +v -5.303239 0.457334 -0.577346 +v -5.303239 0.422653 -0.542664 +v -5.296170 0.405271 -0.560045 +v -4.735427 0.438252 -0.540243 +v -5.258313 0.405884 -0.572178 +v -5.258313 0.427820 -0.594115 +v -4.735427 0.459755 -0.561746 +v -4.735427 0.484904 -0.536598 +v -5.258312 0.475709 -0.546226 +v -5.258312 0.453773 -0.524289 +v -4.735427 0.463400 -0.515095 +v -4.738048 0.442516 -0.584722 +v -4.738048 0.507879 -0.519358 +v -4.703030 0.485365 -0.541873 +v -4.703030 0.462710 -0.564528 +v -4.713286 0.448430 -0.578807 +v -4.738048 0.480640 -0.492119 +v -4.738048 0.415276 -0.557482 +v -4.713286 0.421191 -0.551568 +v -4.703029 0.435470 -0.537288 +v -4.703030 0.458125 -0.514633 +v -4.755419 0.454149 -0.473066 +v -4.755419 0.420822 -0.506393 +v -4.747920 0.406463 -0.520753 +v -4.723568 0.399195 -0.528020 +v -4.699216 0.406463 -0.520753 +v -4.691718 0.420822 -0.506393 +v -4.691718 0.454149 -0.473066 +v -4.723568 0.449180 -0.578005 +v -4.723568 0.471978 -0.600803 +v -4.699217 0.479246 -0.593535 +v -4.699216 0.456449 -0.570737 +v -4.755419 0.476947 -0.495865 +v -4.755419 0.443620 -0.529191 +v -4.691718 0.504134 -0.523051 +v -4.691718 0.470807 -0.556379 +v -4.691718 0.493604 -0.579177 +v -4.691718 0.526932 -0.545850 +v -4.723568 0.421993 -0.550818 +v -4.747920 0.429260 -0.543550 +v -4.755419 0.470807 -0.556379 +v -4.755419 0.493604 -0.579177 +v -4.747920 0.479246 -0.593535 +v -4.747920 0.456449 -0.570737 +v -4.691718 0.443620 -0.529191 +v -4.699217 0.429260 -0.543550 +v -4.755419 0.526932 -0.545850 +v -4.691718 0.476947 -0.495865 +v -4.755418 0.504134 -0.523051 +v -5.245664 0.762236 -0.699426 +v -5.194486 0.740368 -0.781038 +v -5.178945 0.740368 -0.781038 +v -5.127767 0.762236 -0.699426 +v -5.127767 0.856193 -0.724602 +v -5.178945 0.834325 -0.806214 +v -5.194487 0.834325 -0.806214 +v -5.245664 0.856193 -0.724602 +v -5.194486 0.803006 -0.797821 +v -5.245664 0.824875 -0.716209 +v -5.127767 0.824875 -0.716209 +v -5.178945 0.803006 -0.797821 +v -5.194486 0.837445 -0.807050 +v -5.194487 0.917811 -0.711966 +v -5.178945 0.917811 -0.711966 +v -5.178945 0.837445 -0.807050 +v -5.178945 0.737249 -0.780202 +v -5.178945 0.715192 -0.657674 +v -5.194486 0.715192 -0.657674 +v -5.194486 0.737249 -0.780202 +v -5.245664 0.793555 -0.707818 +v -5.127767 0.793555 -0.707818 +v -5.178945 0.771687 -0.789430 +v -5.194486 0.771687 -0.789430 +v -5.194487 0.832161 -0.689015 +v -5.178945 0.832161 -0.689015 +v -5.178945 0.800841 -0.680624 +v -5.194487 0.800841 -0.680624 +v -5.245664 0.862312 -0.701765 +v -5.127767 0.862312 -0.701765 +v -5.245664 0.799674 -0.684981 +v -5.127767 0.799674 -0.684981 +v -5.127767 0.830993 -0.693373 +v -5.245664 0.830993 -0.693373 +v -5.245664 0.768355 -0.676589 +v -5.127767 0.768355 -0.676589 +v -5.254691 0.784589 -0.709169 +v -5.254690 0.831964 -0.721863 +v -5.297078 0.825106 -0.747461 +v -5.297078 0.777730 -0.734766 +v -5.254690 0.805199 -0.821755 +v -5.254690 0.757823 -0.809061 +v -5.296170 0.812348 -0.795072 +v -5.303239 0.818710 -0.771328 +v -5.303239 0.771335 -0.758634 +v -5.296170 0.764972 -0.782377 +v -4.735427 0.783633 -0.748737 +v -5.258313 0.771569 -0.792579 +v -5.258313 0.801535 -0.800608 +v -4.735427 0.813007 -0.756608 +v -4.735427 0.822213 -0.722255 +v -5.258312 0.819063 -0.735191 +v -5.258312 0.789097 -0.727160 +v -4.735427 0.792838 -0.714385 +v -4.738048 0.809565 -0.785125 +v -4.738048 0.833490 -0.695837 +v -4.703030 0.825249 -0.726592 +v -4.703030 0.816957 -0.757540 +v -4.713286 0.811730 -0.777046 +v -4.738048 0.796280 -0.685866 +v -4.738048 0.772356 -0.775155 +v -4.713286 0.774520 -0.767076 +v -4.703029 0.779747 -0.747570 +v -4.703030 0.788039 -0.716622 +v -4.755419 0.763812 -0.682612 +v -4.755419 0.751613 -0.728138 +v -4.747920 0.746358 -0.747753 +v -4.723568 0.743697 -0.757681 +v -4.699216 0.746358 -0.747753 +v -4.691718 0.751613 -0.728138 +v -4.691718 0.763812 -0.682612 +v -4.723568 0.811978 -0.775977 +v -4.723568 0.843121 -0.784321 +v -4.699217 0.845782 -0.774393 +v -4.699216 0.814639 -0.766048 +v -4.755419 0.794955 -0.690957 +v -4.755419 0.782756 -0.736483 +v -4.691718 0.832093 -0.700908 +v -4.691718 0.819895 -0.746434 +v -4.691718 0.851037 -0.754779 +v -4.691718 0.863236 -0.709253 +v -4.723568 0.774840 -0.766025 +v -4.747920 0.777500 -0.756097 +v -4.755419 0.819895 -0.746434 +v -4.755419 0.851037 -0.754779 +v -4.747920 0.845782 -0.774393 +v -4.747920 0.814639 -0.766048 +v -4.691718 0.782756 -0.736483 +v -4.699217 0.777500 -0.756097 +v -4.755419 0.863236 -0.709253 +v -4.691718 0.794955 -0.690957 +v -4.755418 0.832093 -0.700908 +v -5.245664 1.143803 -0.724602 +v -5.194486 1.165671 -0.806214 +v -5.178945 1.165671 -0.806214 +v -5.127767 1.143803 -0.724602 +v -5.127767 1.237760 -0.699426 +v -5.178945 1.259628 -0.781038 +v -5.194487 1.259628 -0.781038 +v -5.245664 1.237760 -0.699426 +v -5.194486 1.228309 -0.789430 +v -5.245664 1.206441 -0.707817 +v -5.127767 1.206441 -0.707817 +v -5.178945 1.228309 -0.789430 +v -5.194486 1.262748 -0.780203 +v -5.194487 1.284805 -0.657674 +v -5.178945 1.284805 -0.657674 +v -5.178945 1.262748 -0.780203 +v -5.178945 1.162552 -0.807049 +v -5.178945 1.082186 -0.711966 +v -5.194486 1.082186 -0.711966 +v -5.194486 1.162552 -0.807049 +v -5.245664 1.175122 -0.716210 +v -5.127767 1.175122 -0.716210 +v -5.178945 1.196990 -0.797822 +v -5.194486 1.196990 -0.797822 +v -5.194487 1.199155 -0.680624 +v -5.178945 1.199155 -0.680624 +v -5.178945 1.167835 -0.689016 +v -5.194487 1.167835 -0.689016 +v -5.245664 1.231641 -0.676590 +v -5.127767 1.231641 -0.676590 +v -5.245664 1.169003 -0.693373 +v -5.127767 1.169003 -0.693373 +v -5.127767 1.200322 -0.684981 +v -5.245664 1.200322 -0.684981 +v -5.245664 1.137684 -0.701765 +v -5.127767 1.137684 -0.701765 +v -5.254691 1.168033 -0.721863 +v -5.254690 1.215408 -0.709169 +v -5.297078 1.222268 -0.734767 +v -5.297078 1.174891 -0.747461 +v -5.254690 1.242175 -0.809060 +v -5.254690 1.194798 -0.821755 +v -5.296170 1.235024 -0.782378 +v -5.303239 1.228662 -0.758634 +v -5.303239 1.181287 -0.771328 +v -5.296170 1.187648 -0.795071 +v -4.735427 1.186989 -0.756608 +v -5.258313 1.198462 -0.800608 +v -5.258313 1.228428 -0.792578 +v -4.735427 1.216363 -0.748738 +v -4.735427 1.207159 -0.714384 +v -5.258312 1.210899 -0.727162 +v -5.258312 1.180933 -0.735190 +v -4.735427 1.177784 -0.722256 +v -4.738048 1.227641 -0.775155 +v -4.738048 1.203717 -0.685867 +v -4.703030 1.211957 -0.716622 +v -4.703030 1.220250 -0.747570 +v -4.713286 1.225476 -0.767076 +v -4.738048 1.166507 -0.695837 +v -4.738048 1.190431 -0.785126 +v -4.713286 1.188266 -0.777046 +v -4.703029 1.183040 -0.757540 +v -4.703030 1.174747 -0.726593 +v -4.755419 1.136761 -0.709253 +v -4.755419 1.148960 -0.754779 +v -4.747920 1.154216 -0.774394 +v -4.723568 1.156876 -0.784322 +v -4.699216 1.154216 -0.774394 +v -4.691718 1.148960 -0.754779 +v -4.691718 1.136761 -0.709253 +v -4.723568 1.225157 -0.766026 +v -4.723568 1.256299 -0.757681 +v -4.699217 1.253639 -0.747752 +v -4.699216 1.222497 -0.756097 +v -4.755419 1.167904 -0.700908 +v -4.755419 1.180102 -0.746434 +v -4.691718 1.205042 -0.690957 +v -4.691718 1.217241 -0.736483 +v -4.691718 1.248383 -0.728139 +v -4.691718 1.236185 -0.682613 +v -4.723568 1.188018 -0.775977 +v -4.747920 1.185358 -0.766049 +v -4.755419 1.217241 -0.736483 +v -4.755419 1.248383 -0.728139 +v -4.747920 1.253639 -0.747752 +v -4.747920 1.222497 -0.756097 +v -4.691718 1.180102 -0.746434 +v -4.699217 1.185358 -0.766049 +v -4.755419 1.236185 -0.682613 +v -4.691718 1.167904 -0.700908 +v -4.755418 1.205042 -0.690957 +v -5.245664 1.486838 -0.555621 +v -5.194486 1.546582 -0.615365 +v -5.178945 1.546582 -0.615365 +v -5.127767 1.486838 -0.555621 +v -5.127767 1.555619 -0.486840 +v -5.178945 1.615364 -0.546584 +v -5.194487 1.615364 -0.546584 +v -5.245664 1.555619 -0.486840 +v -5.194486 1.592436 -0.569511 +v -5.245664 1.532692 -0.509767 +v -5.127767 1.532692 -0.509767 +v -5.178945 1.592436 -0.569511 +v -5.194486 1.617648 -0.544301 +v -5.194487 1.575485 -0.427159 +v -5.178945 1.575485 -0.427159 +v -5.178945 1.617648 -0.544301 +v -5.178945 1.544298 -0.617649 +v -5.178945 1.427158 -0.575487 +v -5.194486 1.427158 -0.575487 +v -5.194486 1.544298 -0.617649 +v -5.245664 1.509765 -0.532694 +v -5.127767 1.509765 -0.532694 +v -5.178945 1.569509 -0.592439 +v -5.194486 1.569509 -0.592439 +v -5.194487 1.512785 -0.489860 +v -5.178945 1.512785 -0.489860 +v -5.178945 1.489858 -0.512787 +v -5.194487 1.489858 -0.512787 +v -5.245664 1.538902 -0.470122 +v -5.127767 1.538902 -0.470122 +v -5.245664 1.493047 -0.515977 +v -5.127767 1.493047 -0.515977 +v -5.127767 1.515975 -0.493049 +v -5.245664 1.515975 -0.493049 +v -5.245664 1.470120 -0.538903 +v -5.127767 1.470120 -0.538903 +v -5.254691 1.506452 -0.541135 +v -5.254690 1.541133 -0.506454 +v -5.297078 1.559873 -0.525192 +v -5.297078 1.525191 -0.559874 +v -5.254690 1.614259 -0.579579 +v -5.254690 1.579578 -0.614261 +v -5.296170 1.594726 -0.560046 +v -5.303239 1.577344 -0.542664 +v -5.303239 1.542663 -0.577345 +v -5.296170 1.560044 -0.594727 +v -4.735427 1.540241 -0.561747 +v -5.258313 1.572177 -0.594115 +v -5.258313 1.594114 -0.572178 +v -4.735427 1.561745 -0.540244 +v -4.735427 1.536597 -0.515095 +v -5.258312 1.546225 -0.524290 +v -5.258312 1.524287 -0.546226 +v -4.735427 1.515094 -0.536599 +v -4.738048 1.584721 -0.557483 +v -4.738048 1.519357 -0.492119 +v -4.703030 1.541871 -0.514634 +v -4.703030 1.564527 -0.537289 +v -4.713286 1.578806 -0.551568 +v -4.738048 1.492117 -0.519359 +v -4.738048 1.557481 -0.584722 +v -4.713286 1.551566 -0.578808 +v -4.703029 1.537287 -0.564528 +v -4.703030 1.514632 -0.541873 +v -4.755419 1.473064 -0.545850 +v -4.755419 1.506392 -0.579177 +v -4.747920 1.520751 -0.593536 +v -4.723568 1.528019 -0.600804 +v -4.699216 1.520751 -0.593536 +v -4.691718 1.506392 -0.579177 +v -4.691718 1.473064 -0.545850 +v -4.723568 1.578004 -0.550819 +v -4.723568 1.600802 -0.528021 +v -4.699217 1.593534 -0.520752 +v -4.699216 1.570736 -0.543550 +v -4.755419 1.495863 -0.523052 +v -4.755419 1.529190 -0.556379 +v -4.691718 1.523050 -0.495865 +v -4.691718 1.556377 -0.529192 +v -4.691718 1.579175 -0.506394 +v -4.691718 1.545849 -0.473066 +v -4.723568 1.550817 -0.578006 +v -4.747920 1.543549 -0.570738 +v -4.755419 1.556377 -0.529192 +v -4.755419 1.579175 -0.506394 +v -4.747920 1.593534 -0.520752 +v -4.747920 1.570736 -0.543550 +v -4.691718 1.529190 -0.556379 +v -4.699217 1.543549 -0.570738 +v -4.755419 1.545849 -0.473066 +v -4.691718 1.495863 -0.523052 +v -4.755418 1.523050 -0.495865 +v -5.245664 1.699424 -0.237762 +v -5.194486 1.781036 -0.259631 +v -5.178945 1.781036 -0.259631 +v -5.127767 1.699424 -0.237762 +v -5.127767 1.724600 -0.143805 +v -5.178945 1.806212 -0.165673 +v -5.194487 1.806212 -0.165673 +v -5.245664 1.724600 -0.143805 +v -5.194486 1.797820 -0.196992 +v -5.245664 1.716208 -0.175124 +v -5.127767 1.716208 -0.175124 +v -5.178945 1.797820 -0.196992 +v -5.194486 1.807049 -0.162554 +v -5.194487 1.711964 -0.082188 +v -5.178945 1.711964 -0.082188 +v -5.178945 1.807049 -0.162554 +v -5.178945 1.780200 -0.262750 +v -5.178945 1.657673 -0.284807 +v -5.194486 1.657673 -0.284807 +v -5.194486 1.780200 -0.262750 +v -5.245664 1.707817 -0.206443 +v -5.127767 1.707817 -0.206443 +v -5.178945 1.789428 -0.228312 +v -5.194486 1.789428 -0.228312 +v -5.194487 1.689014 -0.167838 +v -5.178945 1.689014 -0.167838 +v -5.178945 1.680623 -0.199157 +v -5.194487 1.680623 -0.199157 +v -5.245664 1.701764 -0.137686 +v -5.127767 1.701764 -0.137686 +v -5.245664 1.684980 -0.200325 +v -5.127767 1.684980 -0.200325 +v -5.127767 1.693372 -0.169005 +v -5.245664 1.693372 -0.169005 +v -5.245664 1.676587 -0.231643 +v -5.127767 1.676587 -0.231643 +v -5.254691 1.709167 -0.215410 +v -5.254690 1.721861 -0.168034 +v -5.297078 1.747460 -0.174893 +v -5.297078 1.734765 -0.222269 +v -5.254690 1.821754 -0.194800 +v -5.254690 1.809059 -0.242176 +v -5.296170 1.795070 -0.187650 +v -5.303239 1.771327 -0.181288 +v -5.303239 1.758633 -0.228664 +v -5.296170 1.782376 -0.235027 +v -4.735427 1.748736 -0.216365 +v -5.258313 1.792577 -0.228430 +v -5.258313 1.800607 -0.198463 +v -4.735427 1.756607 -0.186992 +v -4.735427 1.722253 -0.177786 +v -5.258312 1.735189 -0.180936 +v -5.258312 1.727159 -0.210902 +v -4.735427 1.714383 -0.207161 +v -4.738048 1.785124 -0.190433 +v -4.738048 1.695836 -0.166509 +v -4.703030 1.726591 -0.174750 +v -4.703030 1.757539 -0.183042 +v -4.713286 1.777045 -0.188269 +v -4.738048 1.685865 -0.203718 +v -4.738048 1.775154 -0.227643 +v -4.713286 1.767074 -0.225478 +v -4.703029 1.747568 -0.220252 +v -4.703030 1.716621 -0.211960 +v -4.755419 1.682611 -0.236187 +v -4.755419 1.728137 -0.248385 +v -4.747920 1.747752 -0.253641 +v -4.723568 1.757680 -0.256301 +v -4.699216 1.747752 -0.253641 +v -4.691718 1.728137 -0.248385 +v -4.691718 1.682611 -0.236187 +v -4.723568 1.775975 -0.188020 +v -4.723568 1.784320 -0.156878 +v -4.699217 1.774391 -0.154217 +v -4.699216 1.766047 -0.185359 +v -4.755419 1.690956 -0.205044 +v -4.755419 1.736481 -0.217243 +v -4.691718 1.700907 -0.167906 +v -4.691718 1.746433 -0.180104 +v -4.691718 1.754778 -0.148962 +v -4.691718 1.709252 -0.136763 +v -4.723568 1.766024 -0.225159 +v -4.747920 1.756096 -0.222499 +v -4.755419 1.746433 -0.180104 +v -4.755419 1.754778 -0.148962 +v -4.747920 1.774391 -0.154217 +v -4.747920 1.766047 -0.185359 +v -4.691718 1.736481 -0.217243 +v -4.699217 1.756096 -0.222499 +v -4.755419 1.709252 -0.136763 +v -4.691718 1.690956 -0.205044 +v -4.755418 1.700907 -0.167906 +vt 0.854271 0.490000 +vt 0.844221 0.480000 +vt 0.844221 0.470000 +vt 0.844221 0.490000 +vt 0.839196 0.510000 +vt 0.839196 0.490000 +vt 0.874372 0.510000 +vt 0.884422 0.520000 +vt 0.884422 0.530000 +vt 0.889447 0.510000 +vt 0.884422 0.490000 +vt 0.889447 0.490000 +vt 0.874372 0.490000 +vt 0.839196 0.460000 +vt 0.849246 0.440000 +vt 0.839196 0.440000 +vt 0.849246 0.460000 +vt 0.864322 0.440000 +vt 0.879397 0.440000 +vt 0.864322 0.460000 +vt 0.879397 0.460000 +vt 0.839196 0.430000 +vt 0.849246 0.410000 +vt 0.839196 0.410000 +vt 0.864322 0.430000 +vt 0.879397 0.430000 +vt 0.864322 0.410000 +vt 0.849246 0.430000 +vt 0.864322 0.470000 +vt 0.879397 0.470000 +vt 0.839196 0.470000 +vt 0.844221 0.510000 +vt 0.854271 0.510000 +vt 0.673367 0.410000 +vt 0.678392 0.450000 +vt 0.673367 0.450000 +vt 0.673367 0.750000 +vt 0.678392 0.790000 +vt 0.673367 0.790000 +vt 0.673367 0.110000 +vt 0.678392 0.150000 +vt 0.673367 0.150000 +vt 0.673367 0.350000 +vt 0.678392 0.390000 +vt 0.673367 0.390000 +vt 0.678392 0.710000 +vt 0.678392 0.750000 +vt 0.673367 0.050000 +vt 0.678392 0.090000 +vt 0.673367 0.090000 +vt 0.673367 0.310000 +vt 0.678392 0.350000 +vt 0.673367 0.690000 +vt 0.678392 0.650000 +vt 0.678392 0.690000 +vt 0.673367 0.010000 +vt 0.678392 0.050000 +vt 0.673367 0.250000 +vt 0.678392 0.290000 +vt 0.673367 0.290000 +vt 0.673367 0.610000 +vt 0.673367 0.650000 +vt 0.673367 0.990000 +vt 0.678392 0.950000 +vt 0.678392 0.990000 +vt 0.673367 0.550000 +vt 0.678392 0.590000 +vt 0.673367 0.590000 +vt 0.673367 0.950000 +vt 0.678392 0.910000 +vt 0.673367 0.510000 +vt 0.678392 0.550000 +vt 0.673367 0.850000 +vt 0.678392 0.890000 +vt 0.673367 0.890000 +vt 0.678392 0.210000 +vt 0.678392 0.250000 +vt 0.673367 0.490000 +vt 0.678392 0.490000 +vt 0.673367 0.810000 +vt 0.678392 0.850000 +vt 0.673367 0.190000 +vt 0.678392 0.190000 +vt 0.941328 0.806921 +vt 0.891960 0.878298 +vt 0.842592 0.806921 +vt 0.874372 0.490000 +vt 0.854271 0.490000 +vt 0.844221 0.470000 +vt 0.889447 0.490000 +vt 0.884422 0.510000 +vt 0.884422 0.490000 +vt 0.854271 0.510000 +vt 0.874372 0.510000 +vt 0.884422 0.530000 +vt 0.839196 0.490000 +vt 0.844221 0.510000 +vt 0.839196 0.510000 +vt 0.844221 0.490000 +vt 0.849246 0.440000 +vt 0.839196 0.460000 +vt 0.839196 0.440000 +vt 0.864322 0.460000 +vt 0.849246 0.460000 +vt 0.879397 0.440000 +vt 0.879397 0.460000 +vt 0.839196 0.430000 +vt 0.849246 0.410000 +vt 0.849246 0.430000 +vt 0.864322 0.440000 +vt 0.864322 0.430000 +vt 0.879397 0.430000 +vt 0.864322 0.410000 +vt 0.864322 0.470000 +vt 0.879397 0.470000 +vt 0.839196 0.470000 +vt 0.889446 0.390000 +vt 0.884422 0.400000 +vt 0.884421 0.390000 +vt 0.894472 0.400000 +vt 0.889447 0.400000 +vt 0.894471 0.390000 +vt 0.899498 0.400000 +vt 0.839196 0.390000 +vt 0.844221 0.400000 +vt 0.839196 0.400000 +vt 0.849246 0.390000 +vt 0.844221 0.390000 +vt 0.854271 0.400000 +vt 0.849246 0.400000 +vt 0.869346 0.390000 +vt 0.874372 0.400000 +vt 0.869347 0.400000 +vt 0.864322 0.400000 +vt 0.864321 0.390000 +vt 0.854271 0.390000 +vt 0.859297 0.400000 +vt 0.879396 0.390000 +vt 0.874371 0.390000 +vt 0.859296 0.390000 +vt 0.879397 0.400000 +vt 0.853224 0.347841 +vt 0.853094 0.362605 +vt 0.840244 0.362159 +vt 0.854271 0.390000 +vt 0.849246 0.400000 +vt 0.849246 0.390000 +vt 0.844221 0.390000 +vt 0.839196 0.400000 +vt 0.839196 0.390000 +vt 0.899498 0.400000 +vt 0.894473 0.390000 +vt 0.899498 0.390000 +vt 0.894472 0.400000 +vt 0.889448 0.390000 +vt 0.884422 0.400000 +vt 0.884422 0.390000 +vt 0.869347 0.400000 +vt 0.864322 0.390000 +vt 0.869347 0.390000 +vt 0.874372 0.390000 +vt 0.879397 0.390000 +vt 0.859297 0.400000 +vt 0.859297 0.390000 +vt 0.874372 0.400000 +vt 0.840307 0.347617 +vt 0.853160 0.347617 +vt 0.846734 0.369767 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.176822 +vt 0.892816 0.183178 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.882826 0.183178 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.640000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.984925 0.140000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.849246 0.110000 +vt 0.839196 0.010000 +vt 0.849246 0.010000 +vt 0.864322 0.160000 +vt 0.854271 0.140000 +vt 0.864322 0.140000 +vt 0.849246 0.130000 +vt 0.839196 0.110000 +vt 0.984925 0.140000 +vt 0.994975 0.140000 +vt 0.984925 0.040000 +vt 0.994975 0.040000 +vt 0.929648 0.010000 +vt 0.919598 0.050000 +vt 0.929648 0.050000 +vt 0.949749 0.070000 +vt 0.949749 0.050000 +vt 0.969849 0.010000 +vt 0.949749 0.055312 +vt 0.949749 0.010000 +vt 0.959799 0.010000 +vt 0.959799 0.050000 +vt 0.994975 0.010000 +vt 0.984925 0.010000 +vt 1.000000 0.890000 +vt 0.994975 0.930000 +vt 0.994975 0.890000 +vt 0.839196 1.000000 +vt 0.994975 0.990000 +vt 1.000000 1.000000 +vt 0.994975 0.950000 +vt 0.844221 0.990000 +vt 0.844221 0.950000 +vt 0.844221 0.930000 +vt 0.839196 0.940000 +vt 0.839196 0.930000 +vt 0.844221 0.890000 +vt 0.839196 0.950000 +vt 0.839196 0.990000 +vt 1.000000 0.990000 +vt 1.000000 0.950000 +vt 1.000000 0.880000 +vt 0.839196 0.880000 +vt 1.000000 0.940000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.984925 0.047500 +vt 0.949749 0.055312 +vt 0.969849 0.010000 +vt 0.949749 0.010000 +vt 0.984925 0.047500 +vt 0.849246 0.110000 +vt 0.854428 0.130313 +vt 0.849246 0.010000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.640000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.333333 +vt 0.500000 0.333333 +vt 0.500000 0.416667 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.984925 0.140000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.849246 0.110000 +vt 0.839196 0.010000 +vt 0.849246 0.010000 +vt 0.864322 0.140000 +vt 0.854271 0.160000 +vt 0.854271 0.140000 +vt 0.849246 0.130000 +vt 0.839196 0.110000 +vt 0.984925 0.140000 +vt 0.864322 0.160000 +vt 0.994975 0.040000 +vt 0.984925 0.040000 +vt 0.929648 0.010000 +vt 0.919598 0.050000 +vt 0.929648 0.050000 +vt 0.949749 0.070000 +vt 0.949749 0.050000 +vt 0.969849 0.010000 +vt 0.949749 0.055312 +vt 0.949749 0.010000 +vt 0.959799 0.010000 +vt 0.959799 0.050000 +vt 0.994975 0.010000 +vt 0.984925 0.010000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.984925 0.047500 +vt 0.949749 0.055312 +vt 0.969849 0.010000 +vt 0.949749 0.010000 +vt 0.984925 0.047500 +vt 0.849246 0.110000 +vt 0.854428 0.130313 +vt 0.849246 0.010000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.640000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.984925 0.140000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.849246 0.110000 +vt 0.839196 0.010000 +vt 0.849246 0.010000 +vt 0.864322 0.140000 +vt 0.854271 0.160000 +vt 0.854271 0.140000 +vt 0.849246 0.130000 +vt 0.839196 0.110000 +vt 0.984925 0.140000 +vt 0.864322 0.160000 +vt 0.994975 0.140000 +vt 0.984925 0.040000 +vt 0.994975 0.040000 +vt 0.929648 0.010000 +vt 0.919598 0.050000 +vt 0.929648 0.050000 +vt 0.949749 0.070000 +vt 0.949749 0.050000 +vt 0.969849 0.010000 +vt 0.949749 0.055312 +vt 0.949749 0.010000 +vt 0.959799 0.010000 +vt 0.959799 0.050000 +vt 0.994975 0.010000 +vt 0.984925 0.010000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.984925 0.047500 +vt 0.949749 0.055312 +vt 0.969849 0.010000 +vt 0.949749 0.010000 +vt 0.984925 0.047500 +vt 0.849246 0.110000 +vt 0.854428 0.130313 +vt 0.849246 0.010000 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.183178 +vt 0.892816 0.176822 +vt 0.892816 0.183178 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.183178 +vt 0.882826 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.887001 0.199480 +vt 0.893434 0.195279 +vt 0.893434 0.199481 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.887001 0.199480 +vt 0.893434 0.195279 +vt 0.893434 0.199481 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.882826 0.183178 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.182496 +vt 0.888908 0.177504 +vt 0.890610 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.886997 0.199481 +vt 0.892501 0.190838 +vt 0.892501 0.192852 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.887000 0.184202 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.887001 0.175798 +vt 0.893434 0.180000 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.886997 0.199481 +vt 0.892501 0.190838 +vt 0.892501 0.192852 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.887000 0.184202 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.882826 0.183178 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.177504 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.884422 0.470000 +vt 0.884422 0.480000 +vt 0.844221 0.530000 +vt 0.844221 0.520000 +vt 0.884422 0.510000 +vt 0.879397 0.410000 +vt 0.849246 0.470000 +vt 0.678392 0.410000 +vt 0.678392 0.110000 +vt 0.673367 0.710000 +vt 0.678392 0.310000 +vt 0.678392 0.010000 +vt 0.678392 0.610000 +vt 0.673367 0.910000 +vt 0.678392 0.510000 +vt 0.673367 0.210000 +vt 0.678392 0.810000 +vt 0.840052 0.775000 +vt 0.842592 0.743079 +vt 0.849965 0.714283 +vt 0.861449 0.691430 +vt 0.875920 0.676758 +vt 0.922471 0.691430 +vt 0.891960 0.671702 +vt 0.908001 0.676758 +vt 0.933955 0.714283 +vt 0.941328 0.743079 +vt 0.943869 0.775000 +vt 0.933955 0.835717 +vt 0.922471 0.858570 +vt 0.908001 0.873242 +vt 0.875920 0.873242 +vt 0.861449 0.858570 +vt 0.849965 0.835717 +vt 0.844221 0.480000 +vt 0.884422 0.470000 +vt 0.884422 0.480000 +vt 0.889447 0.510000 +vt 0.884422 0.520000 +vt 0.844221 0.530000 +vt 0.844221 0.520000 +vt 0.839196 0.410000 +vt 0.879397 0.410000 +vt 0.849246 0.470000 +vt 0.899496 0.390000 +vt 0.850331 0.367915 +vt 0.846604 0.369764 +vt 0.842912 0.367657 +vt 0.839314 0.354742 +vt 0.840373 0.347395 +vt 0.843136 0.342085 +vt 0.846863 0.340235 +vt 0.850556 0.342342 +vt 0.854153 0.355258 +vt 0.854271 0.400000 +vt 0.844221 0.400000 +vt 0.889447 0.400000 +vt 0.864322 0.400000 +vt 0.879397 0.400000 +vt 0.843023 0.367788 +vt 0.840307 0.362383 +vt 0.839313 0.355000 +vt 0.843024 0.342212 +vt 0.846734 0.340233 +vt 0.850444 0.342212 +vt 0.854154 0.355000 +vt 0.853160 0.362383 +vt 0.850444 0.367788 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.839196 0.200000 +vt 0.844221 0.200000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.200000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.650000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.854271 0.160000 +vt 0.839196 0.130000 +vt 0.984925 0.160000 +vt 0.919598 0.010000 +vt 0.929648 0.070000 +vt 1.000000 0.930000 +vt 1.000000 0.940000 +vt 0.839196 0.890000 +vt 0.839196 0.940000 +vt 0.854428 0.130313 +vt 0.929648 0.010000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.650000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.416667 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.839196 0.130000 +vt 0.984925 0.160000 +vt 0.994975 0.140000 +vt 0.919598 0.010000 +vt 0.929648 0.070000 +vt 0.854428 0.130313 +vt 0.929648 0.010000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.650000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.839196 0.130000 +vt 0.984925 0.160000 +vt 0.919598 0.010000 +vt 0.929648 0.070000 +vt 0.854428 0.130313 +vt 0.929648 0.010000 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.882265 0.177504 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.881167 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.888908 0.182496 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.175798 +vt 0.884233 0.181007 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.182496 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658724 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643403 +vt 0.884422 0.644949 +vt 0.881957 0.643403 +vt 0.145729 0.250000 +vt 0.311558 0.200000 +vt 0.311558 0.250000 +vt 0.145729 0.150000 +vt 0.311558 0.150000 +vt 0.311558 0.100000 +vt 0.145729 0.100000 +vt 0.311558 0.050000 +vt 0.145729 0.050000 +vt 0.311558 -0.000000 +vt 0.145729 1.000000 +vt 0.311558 0.950000 +vt 0.311558 1.000000 +vt 0.145729 0.950000 +vt 0.311558 0.900000 +vt 0.145729 0.900000 +vt 0.311558 0.850000 +vt 0.145729 0.800000 +vt 0.311558 0.800000 +vt 0.311558 0.750000 +vt 0.145729 0.700000 +vt 0.311558 0.700000 +vt 0.311558 0.650000 +vt 0.145729 0.600000 +vt 0.311558 0.600000 +vt 0.311558 0.550000 +vt 0.145729 0.550000 +vt 0.311558 0.500000 +vt 0.145729 0.500000 +vt 0.311558 0.450000 +vt 0.145729 0.400000 +vt 0.311558 0.400000 +vt 0.311558 0.350000 +vt 0.085427 0.150000 +vt 0.085427 0.110000 +vt 0.145729 0.300000 +vt 0.311558 0.300000 +vt 0.512563 0.050000 +vt 0.512563 0.090000 +vt 0.085427 0.890000 +vt 0.045226 0.850000 +vt 0.085427 0.850000 +vt 0.145729 0.850000 +vt 0.085427 0.210000 +vt 0.145729 0.200000 +vt 0.145729 0.650000 +vt 0.085427 0.610000 +vt 0.145729 0.350000 +vt 0.085427 0.390000 +vt 0.085427 0.350000 +vt 0.085427 0.950000 +vt 0.145729 0.750000 +vt 0.085427 0.710000 +vt 0.145729 0.450000 +vt 0.085427 0.490000 +vt 0.085427 0.450000 +vt 0.085427 0.050000 +vt 0.085427 0.810000 +vt 0.085427 0.550000 +vt 0.085427 0.310000 +vt 0.085427 0.910000 +vt 0.085427 0.650000 +vt 0.085427 0.410000 +vt 0.085427 0.010000 +vt 0.145729 -0.000000 +vt 0.085427 0.750000 +vt 0.085427 0.510000 +vt 0.085427 0.250000 +vt 0.045226 0.020000 +vt 0.015075 0.050000 +vt 0.015075 0.030000 +vt 0.045226 0.220000 +vt 0.045226 0.450000 +vt 0.045226 0.820000 +vt 0.085427 0.190000 +vt 0.045226 0.150000 +vt 0.045226 0.420000 +vt 0.085427 0.790000 +vt 0.045226 0.750000 +vt 0.045226 0.120000 +vt 0.045226 0.380000 +vt 0.045226 0.350000 +vt 0.045226 0.720000 +vt 0.045226 0.080000 +vt 0.045226 0.050000 +vt 0.045226 0.320000 +vt 0.085427 0.690000 +vt 0.045226 0.650000 +vt 0.085427 0.290000 +vt 0.045226 0.250000 +vt 0.045226 0.620000 +vt 0.085427 0.990000 +vt 0.045226 0.950000 +vt 0.085427 0.590000 +vt 0.045226 0.550000 +vt 0.045226 0.920000 +vt 0.045226 0.520000 +vt 0.015075 0.550000 +vt 0.000000 0.540000 +vt 0.015075 0.530000 +vt 0.045226 0.280000 +vt 0.015075 0.250000 +vt 0.015075 0.630000 +vt 0.045226 0.980000 +vt 0.015075 0.950000 +vt 0.015075 0.570000 +vt 0.015075 0.930000 +vt 0.015075 0.870000 +vt 0.015075 0.850000 +vt 0.015075 0.230000 +vt 0.015075 0.470000 +vt 0.015075 0.450000 +vt 0.015075 0.830000 +vt 0.045226 0.180000 +vt 0.015075 0.150000 +vt 0.015075 0.430000 +vt 0.045226 0.780000 +vt 0.015075 0.750000 +vt 0.015075 0.130000 +vt 0.015075 0.370000 +vt 0.015075 0.350000 +vt 0.015075 0.730000 +vt 0.015075 0.070000 +vt 0.015075 0.330000 +vt 0.015075 0.670000 +vt 0.015075 0.650000 +vt 0.953345 0.878086 +vt 0.945036 0.854673 +vt 0.953658 0.831713 +vt -0.000000 0.860000 +vt 0.000000 0.850000 +vt 0.000000 0.240000 +vt -0.000000 0.460000 +vt -0.000000 0.450000 +vt 0.000000 0.840000 +vt 0.000000 0.160000 +vt 0.000000 0.150000 +vt -0.000000 0.440000 +vt 0.000000 0.760000 +vt 0.000000 0.750000 +vt 0.000000 0.140000 +vt -0.000000 0.360000 +vt 0.000000 0.350000 +vt 0.000000 0.740000 +vt -0.000000 0.060000 +vt 0.000000 0.050000 +vt -0.000000 0.340000 +vt 0.000000 0.660000 +vt 0.000000 0.650000 +vt -0.000000 0.040000 +vt 0.000000 0.260000 +vt 0.000000 0.250000 +vt 0.000000 0.640000 +vt -0.000000 0.960000 +vt 0.000000 0.950000 +vt -0.000000 0.560000 +vt 0.000000 0.550000 +vt 0.000000 0.940000 +vt 0.512563 0.510000 +vt 0.512563 0.550000 +vt 0.512563 0.850000 +vt 0.512563 0.590000 +vt 0.512563 0.350000 +vt 0.512563 0.190000 +vt 0.512563 0.910000 +vt 0.512563 0.950000 +vt 0.512563 0.690000 +vt 0.512563 0.450000 +vt 0.512563 0.790000 +vt 0.512563 0.290000 +vt 0.512563 0.150000 +vt 0.512563 0.890000 +vt 0.512563 0.210000 +vt 0.512563 0.250000 +vt 0.512563 0.650000 +vt 0.512563 0.390000 +vt 0.512563 0.990000 +vt 0.512563 0.750000 +vt 0.512563 0.490000 +vt 0.512563 0.810000 +vt 0.512563 0.110000 +vt 0.512563 0.710000 +vt 0.512563 0.310000 +vt 0.839196 0.350000 +vt 0.839196 0.690000 +vt 0.839196 0.010000 +vt 0.839196 0.050000 +vt 0.839196 0.290000 +vt 0.839196 0.650000 +vt 0.839196 0.990000 +vt 0.839196 0.550000 +vt 0.839196 0.590000 +vt 0.839196 0.910000 +vt 0.839196 0.950000 +vt 0.839196 0.890000 +vt 0.839196 0.250000 +vt 0.839196 0.490000 +vt 0.839196 0.850000 +vt 0.839196 0.190000 +vt 0.839196 0.450000 +vt 0.839196 0.790000 +vt 0.839196 0.150000 +vt 0.839196 0.390000 +vt 0.839196 0.750000 +vt 0.839196 0.090000 +vt 0.849246 0.550000 +vt 0.864322 0.540000 +vt 0.864322 0.550000 +vt 0.839196 0.550000 +vt 0.844221 0.540000 +vt 0.844221 0.550000 +vt 0.849246 0.540000 +vt 0.849246 0.530000 +vt 0.864322 0.530000 +vt 0.839196 0.540000 +vt 0.844221 0.530000 +vt 0.849246 0.610000 +vt 0.864322 0.600000 +vt 0.864322 0.610000 +vt 0.844221 0.610000 +vt 0.839196 0.600000 +vt 0.844221 0.600000 +vt 0.849246 0.600000 +vt 0.849246 0.590000 +vt 0.864322 0.590000 +vt 0.839196 0.590000 +vt 0.844221 0.590000 +vt 0.844221 0.580000 +vt 0.849246 0.580000 +vt 0.864322 0.580000 +vt 0.839196 0.580000 +vt 0.849246 0.570000 +vt 0.864322 0.570000 +vt 0.839196 0.570000 +vt 0.844221 0.570000 +vt 0.844221 0.560000 +vt 0.849246 0.560000 +vt 0.864368 0.600000 +vt 0.865827 0.592995 +vt 0.869347 0.590093 +vt 0.864322 0.560000 +vt 0.849246 0.550000 +vt 0.864322 0.540000 +vt 0.864322 0.550000 +vt 0.839196 0.550000 +vt 0.844221 0.540000 +vt 0.844221 0.550000 +vt 0.849246 0.540000 +vt 0.864322 0.530000 +vt 0.839196 0.540000 +vt 0.844221 0.530000 +vt 0.849246 0.530000 +vt 0.849246 0.610000 +vt 0.864322 0.600000 +vt 0.864322 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.600000 +vt 0.844221 0.610000 +vt 0.849246 0.600000 +vt 0.849246 0.590000 +vt 0.864322 0.590000 +vt 0.839196 0.590000 +vt 0.844221 0.590000 +vt 0.849246 0.580000 +vt 0.864322 0.580000 +vt 0.844221 0.580000 +vt 0.849246 0.570000 +vt 0.864322 0.570000 +vt 0.839196 0.570000 +vt 0.844221 0.570000 +vt 0.844221 0.560000 +vt 0.849246 0.560000 +vt 0.864368 0.600000 +vt 0.865827 0.592995 +vt 0.869347 0.590093 +vt 0.864322 0.560000 +vt 0.864321 0.370000 +vt 0.869346 0.370000 +vt 0.859296 0.370000 +vt 0.854271 0.370000 +vt 0.849246 0.370000 +vt 0.844221 0.370000 +vt 0.839196 0.370000 +vt 0.899496 0.370000 +vt 0.894471 0.370000 +vt 0.889446 0.370000 +vt 0.884421 0.370000 +vt 0.879396 0.370000 +vt 0.874371 0.370000 +vt 0.864322 0.410000 +vt 0.889447 0.410000 +vt 0.849246 0.410000 +vt 0.844221 0.410000 +vt 0.869347 0.410000 +vt 0.859297 0.410000 +vt 0.884422 0.410000 +vt 0.839196 0.410000 +vt 0.854271 0.410000 +vt 0.879397 0.410000 +vt 0.894472 0.410000 +vt 0.874372 0.410000 +vt 0.869347 0.370000 +vt 0.874372 0.370000 +vt 0.879397 0.370000 +vt 0.889448 0.370000 +vt 0.884422 0.370000 +vt 0.899498 0.370000 +vt 0.894473 0.370000 +vt 0.839196 0.370000 +vt 0.849246 0.370000 +vt 0.844221 0.370000 +vt 0.854271 0.370000 +vt 0.864322 0.370000 +vt 0.859297 0.370000 +vt 0.874372 0.410000 +vt 0.844221 0.410000 +vt 0.889447 0.410000 +vt 0.864322 0.410000 +vt 0.879397 0.410000 +vt 0.849246 0.410000 +vt 0.894472 0.410000 +vt 0.884422 0.410000 +vt 0.859297 0.410000 +vt 0.839196 0.410000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.889447 0.650000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.904523 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658725 +vt 0.879571 0.655599 +vt 0.888623 0.658724 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643403 +vt 0.884422 0.644949 +vt 0.881957 0.643403 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658725 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643402 +vt 0.884422 0.644949 +vt 0.881957 0.643402 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658724 +vt 0.879571 0.655599 +vt 0.888623 0.658724 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643403 +vt 0.884422 0.644949 +vt 0.881957 0.643403 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.889447 0.640000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.904523 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.889447 0.640000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.904523 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.175822 +vt 0.890826 0.180000 +vt 0.890826 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.879571 0.655599 +vt 0.889273 0.655599 +vt 0.888623 0.658724 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888693 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.045226 0.880000 +vt 0.085427 0.090000 +vt 0.045226 0.480000 +vt 0.045226 0.680000 +vt 0.045226 0.580000 +vt 0.015075 0.270000 +vt 0.015075 0.970000 +vt 0.015075 0.170000 +vt 0.015075 0.770000 +vt 0.967295 0.840936 +vt 0.968989 0.847779 +vt 0.969538 0.855329 +vt 0.968887 0.862846 +vt 0.967101 0.869596 +vt 0.964355 0.874917 +vt 0.960916 0.878289 +vt 0.957122 0.879380 +vt 0.949953 0.874532 +vt 0.947279 0.869066 +vt 0.945585 0.862223 +vt 0.945687 0.847156 +vt 0.947473 0.840406 +vt 0.950219 0.835085 +vt 0.957452 0.830621 +vt 0.961229 0.831916 +vt 0.964621 0.835470 +vt 0.512563 0.410000 +vt 0.512563 0.010000 +vt 0.512563 0.610000 +vt 0.839196 0.310000 +vt 0.839196 0.610000 +vt 0.839196 0.510000 +vt 0.839196 0.210000 +vt 0.839196 0.810000 +vt 0.839196 0.410000 +vt 0.839196 0.110000 +vt 0.839196 0.710000 +vt 0.839196 0.530000 +vt 0.839196 0.610000 +vt 0.872867 0.592995 +vt 0.874325 0.600000 +vt 0.872867 0.607005 +vt 0.869347 0.609907 +vt 0.865827 0.607005 +vt 0.839196 0.560000 +vt 0.839196 0.530000 +vt 0.839196 0.600000 +vt 0.839196 0.580000 +vt 0.872867 0.592994 +vt 0.874325 0.600000 +vt 0.872867 0.607005 +vt 0.869347 0.609907 +vt 0.865827 0.607005 +vt 0.839196 0.560000 +vt 0.899498 0.410000 +vt 0.869347 0.410000 +vt 0.854271 0.410000 +vt 0.899498 0.410000 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.650000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.640000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.640000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.889273 0.655599 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888693 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.879571 0.655599 +vt 0.889273 0.655599 +vt 0.888623 0.658725 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888692 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.889273 0.655599 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888693 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.650000 +vt 0.899498 0.670000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.650000 +vt 0.899498 0.670000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.892547 0.180000 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.3907 -0.9205 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.3907 0.9205 +vn 0.0000 0.8137 0.5813 +vn 0.0000 0.8079 -0.5893 +vn 0.0000 0.9986 0.0523 +vn 0.0000 0.2726 0.9621 +vn -0.0000 -0.6489 0.7609 +vn 0.0000 -0.1777 -0.9841 +vn -0.0000 -0.9986 -0.0523 +vn 0.0000 0.9834 0.1815 +vn 0.0000 0.9205 0.3907 +vn 0.0000 0.3907 0.9205 +vn 0.0000 -0.3907 -0.9205 +vn 0.0000 0.8137 -0.5813 +vn 0.0000 0.8080 0.5892 +vn 0.0000 0.9986 -0.0523 +vn 0.0000 0.2726 -0.9621 +vn -0.0000 -0.6489 -0.7609 +vn 0.0000 -0.1777 0.9841 +vn 0.0000 -0.9986 0.0523 +vn 0.0000 0.9834 -0.1815 +vn 0.0000 0.9205 -0.3907 +vn 0.0000 -0.1569 0.9876 +vn 0.0000 -0.1569 -0.9876 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.2588 0.9659 +vn -0.8553 0.5004 0.1341 +vn 0.8553 0.5004 0.1341 +vn 0.0000 0.1772 0.9842 +vn 0.0000 0.6455 -0.7637 +vn 0.0000 0.9659 0.2588 +vn -0.5301 -0.8190 -0.2194 +vn -0.0001 0.2588 -0.9659 +vn 0.0866 0.9623 0.2578 +vn 0.0006 -0.2588 0.9659 +vn -0.0254 -0.9656 -0.2587 +vn 0.0006 0.2588 -0.9659 +vn -0.9611 0.2669 0.0715 +vn -0.9703 -0.2337 -0.0626 +vn -0.5543 0.8040 0.2154 +vn 0.3200 0.9151 0.2452 +vn 0.8916 0.4374 0.1172 +vn 0.6727 -0.7147 -0.1915 +vn 0.0000 1.0000 -0.0001 +vn -0.0000 0.8598 0.5106 +vn 0.0000 0.5281 0.8492 +vn 0.0000 0.0785 0.9969 +vn 0.0000 -0.3810 0.9246 +vn 0.0000 -0.7591 0.6510 +vn 0.0000 -0.9729 0.2312 +vn 0.0000 -0.9727 -0.2321 +vn 0.0000 -0.7630 -0.6463 +vn 0.0000 -0.3787 -0.9255 +vn 0.0000 0.0814 -0.9967 +vn 0.0000 0.5273 -0.8496 +vn 0.0000 0.8511 -0.5251 +vn 0.0000 0.8910 0.4540 +vn 0.0000 0.3885 0.9215 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.8910 -0.4540 +vn 0.0000 0.3884 -0.9215 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.3885 -0.9215 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7881 -0.6156 -0.0000 +vn -0.7315 0.3095 -0.6075 +vn 0.0000 0.4540 0.8910 +vn -0.0000 0.4540 -0.8910 +vn 0.0000 -0.8910 0.4540 +vn 0.7315 0.3095 -0.6075 +vn -0.7315 0.3095 0.6075 +vn 0.7315 0.3095 0.6075 +vn 0.0000 -0.8910 -0.4540 +vn 0.0000 -0.8387 0.5446 +vn 0.0000 -0.9922 -0.1243 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.0524 0.9986 +vn 0.0000 0.6038 0.7972 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.0523 0.9986 +vn 0.0000 0.6038 0.7971 +vn 0.3827 -0.4619 0.8001 +vn 0.9239 -0.1913 0.3314 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn -0.7881 0.3078 -0.5331 +vn 0.0000 -0.0523 -0.9986 +vn 0.0000 0.6038 -0.7971 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8387 -0.5447 +vn 0.0000 -0.9922 0.1243 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.8387 -0.5446 +vn 0.3827 -0.4619 -0.8001 +vn 0.9239 -0.1913 -0.3314 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn -0.7881 0.3078 0.5331 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.8553 0.3664 0.3663 +vn 0.8553 0.3664 0.3663 +vn 0.0000 -0.3387 0.9409 +vn 0.0000 0.9409 -0.3387 +vn 0.0000 0.7071 0.7071 +vn -0.8553 0.3663 0.3663 +vn -0.5301 -0.5996 -0.5996 +vn -0.0001 0.7071 -0.7071 +vn 0.0866 0.7045 0.7044 +vn 0.0006 -0.7071 0.7071 +vn -0.0254 -0.7069 -0.7069 +vn 0.0006 0.7071 -0.7071 +vn -0.9610 0.1954 0.1954 +vn -0.9703 -0.1711 -0.1711 +vn -0.5543 0.5885 0.5885 +vn 0.3200 0.6699 0.6699 +vn 0.8916 0.3202 0.3202 +vn 0.6727 -0.5232 -0.5232 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 -0.9659 0.2588 +vn -0.8553 0.1341 0.5004 +vn 0.8553 0.1341 0.5004 +vn 0.0000 -0.7637 0.6455 +vn 0.0000 0.9842 0.1772 +vn 0.0000 0.2588 0.9659 +vn -0.5301 -0.2195 -0.8190 +vn -0.0001 0.9659 -0.2588 +vn 0.0866 0.2579 0.9623 +vn 0.0006 -0.9659 0.2588 +vn -0.0254 -0.2588 -0.9656 +vn 0.0006 0.9659 -0.2588 +vn -0.9611 0.0715 0.2669 +vn -0.9703 -0.0626 -0.2337 +vn -0.5543 0.2154 0.8040 +vn 0.3200 0.2452 0.9151 +vn 0.8916 0.1172 0.4374 +vn 0.6727 -0.1915 -0.7147 +vn 0.0000 -0.9659 -0.2588 +vn -0.8553 -0.1341 0.5004 +vn 0.8553 -0.1341 0.5004 +vn 0.0000 -0.9842 0.1772 +vn 0.0000 0.7637 0.6455 +vn -0.5301 0.2194 -0.8190 +vn -0.0001 0.9659 0.2588 +vn 0.0866 -0.2578 0.9623 +vn 0.0006 -0.9659 -0.2588 +vn -0.0254 0.2587 -0.9656 +vn 0.0006 0.9659 0.2588 +vn -0.9611 -0.0715 0.2669 +vn -0.9703 0.0626 -0.2337 +vn -0.5543 -0.2154 0.8040 +vn 0.3200 -0.2452 0.9151 +vn 0.8916 -0.1172 0.4374 +vn 0.6727 0.1915 -0.7147 +vn 0.0000 -0.7071 -0.7071 +vn -0.8553 -0.3663 0.3664 +vn 0.8553 -0.3663 0.3664 +vn 0.0000 -0.9409 -0.3386 +vn 0.0000 0.3387 0.9409 +vn -0.8553 -0.3663 0.3663 +vn -0.5301 0.5996 -0.5996 +vn -0.0001 0.7071 0.7071 +vn 0.0866 -0.7044 0.7045 +vn 0.0006 -0.7071 -0.7071 +vn -0.0254 0.7069 -0.7069 +vn 0.0006 0.7071 0.7071 +vn -0.9611 -0.1954 0.1954 +vn -0.9703 0.1711 -0.1711 +vn -0.5543 -0.5885 0.5885 +vn 0.3200 -0.6699 0.6699 +vn 0.8916 -0.3202 0.3202 +vn 0.6727 0.5232 -0.5232 +vn 0.0000 -0.2588 -0.9659 +vn -0.8553 -0.5004 0.1341 +vn 0.8553 -0.5004 0.1341 +vn 0.0000 -0.6455 -0.7637 +vn 0.0000 -0.1772 0.9842 +vn -0.5301 0.8190 -0.2195 +vn -0.0001 0.2588 0.9659 +vn 0.0866 -0.9623 0.2579 +vn 0.0006 -0.2588 -0.9659 +vn -0.0254 0.9656 -0.2588 +vn 0.0006 0.2588 0.9659 +vn -0.9610 -0.2670 0.0715 +vn -0.9703 0.2337 -0.0626 +vn -0.5543 -0.8040 0.2154 +vn 0.3200 -0.9151 0.2452 +vn 0.8916 -0.4374 0.1172 +vn 0.6727 0.7147 -0.1915 +vn -0.8553 -0.5004 -0.1341 +vn 0.8553 -0.5004 -0.1341 +vn 0.0000 -0.1772 -0.9842 +vn 0.0000 -0.6455 0.7637 +vn -0.5301 0.8190 0.2195 +vn -0.0001 -0.2588 0.9659 +vn 0.0866 -0.9623 -0.2578 +vn -0.0254 0.9656 0.2587 +vn -0.9611 -0.2669 -0.0715 +vn -0.9703 0.2337 0.0626 +vn -0.5543 -0.8040 -0.2154 +vn 0.3200 -0.9151 -0.2452 +vn 0.8916 -0.4374 -0.1172 +vn 0.6727 0.7147 0.1915 +vn -0.8553 -0.3664 -0.3663 +vn 0.8553 -0.3663 -0.3663 +vn 0.0000 0.3387 -0.9409 +vn 0.0000 -0.9409 0.3386 +vn -0.5301 0.5996 0.5996 +vn -0.0001 -0.7071 0.7071 +vn 0.0866 -0.7045 -0.7044 +vn -0.0254 0.7069 0.7069 +vn -0.9611 -0.1954 -0.1954 +vn -0.9703 0.1711 0.1711 +vn -0.5543 -0.5885 -0.5885 +vn 0.3200 -0.6699 -0.6699 +vn 0.8916 -0.3202 -0.3202 +vn 0.6727 0.5232 0.5232 +vn -0.8553 -0.1341 -0.5004 +vn 0.8553 -0.1341 -0.5004 +vn 0.0000 0.7637 -0.6455 +vn 0.0000 -0.9842 -0.1772 +vn -0.5301 0.2195 0.8190 +vn -0.0001 -0.9659 0.2588 +vn 0.0866 -0.2579 -0.9623 +vn -0.0254 0.2588 0.9656 +vn -0.9611 -0.0715 -0.2669 +vn -0.9703 0.0626 0.2337 +vn -0.5543 -0.2154 -0.8040 +vn 0.3200 -0.2452 -0.9151 +vn 0.8916 -0.1172 -0.4374 +vn 0.6727 0.1915 0.7147 +vn -0.8553 0.1340 -0.5004 +vn 0.8553 0.1341 -0.5004 +vn 0.0000 0.9842 -0.1772 +vn 0.0000 -0.7637 -0.6455 +vn -0.8553 0.1341 -0.5004 +vn -0.5301 -0.2195 0.8190 +vn -0.0001 -0.9659 -0.2588 +vn 0.0866 0.2578 -0.9623 +vn -0.0254 -0.2587 0.9656 +vn -0.9611 0.0715 -0.2669 +vn -0.9703 -0.0626 0.2337 +vn -0.5543 0.2154 -0.8040 +vn 0.3200 0.2452 -0.9151 +vn 0.8916 0.1172 -0.4374 +vn 0.6727 -0.1915 0.7147 +vn -0.8553 0.3663 -0.3664 +vn 0.8553 0.3663 -0.3663 +vn 0.0000 0.9409 0.3386 +vn 0.0000 -0.3387 -0.9409 +vn -0.5301 -0.5996 0.5996 +vn -0.0001 -0.7071 -0.7071 +vn 0.0866 0.7044 -0.7045 +vn -0.0254 -0.7069 0.7069 +vn -0.9610 0.1954 -0.1954 +vn -0.9703 -0.1711 0.1711 +vn -0.5543 0.5886 -0.5885 +vn 0.3200 0.6699 -0.6699 +vn 0.8916 0.3202 -0.3202 +vn 0.6727 -0.5232 0.5232 +vn -0.8553 0.5004 -0.1341 +vn 0.8553 0.5004 -0.1341 +vn 0.0000 0.6455 0.7637 +vn 0.0000 0.1772 -0.9842 +vn -0.5301 -0.8190 0.2195 +vn -0.0001 -0.2588 -0.9659 +vn 0.0866 0.9623 -0.2579 +vn -0.0254 -0.9656 0.2588 +vn -0.9610 0.2670 -0.0715 +vn -0.9703 -0.2337 0.0626 +vn -0.5543 0.8040 -0.2154 +vn 0.3200 0.9151 -0.2452 +vn 0.8916 0.4374 -0.1172 +vn 0.6727 -0.7147 0.1915 +vn 0.0000 0.8080 0.5893 +vn -0.0254 -0.9656 -0.2588 +vn -0.9610 0.2670 0.0715 +vn -0.5543 0.8039 0.2154 +vn 0.0000 -0.7591 0.6509 +vn 0.0000 0.5274 -0.8496 +vn 0.0000 0.3884 0.9215 +vn -0.7881 -0.6155 0.0000 +vn 0.0000 -0.8387 0.5447 +vn 0.0000 0.6038 -0.7972 +vn 0.8553 0.3663 0.3663 +vn 0.0000 0.9409 -0.3386 +vn 0.0866 0.7044 0.7045 +vn -0.9611 0.1954 0.1954 +vn -0.0000 -0.9659 0.2589 +vn 0.0866 0.2578 0.9623 +vn -0.0254 -0.2587 -0.9656 +vn -0.5301 0.2195 -0.8190 +vn 0.0866 -0.2579 0.9623 +vn -0.0254 0.2588 -0.9656 +vn -0.9611 -0.0715 0.2670 +vn 0.8553 -0.3663 0.3663 +vn 0.0000 -0.9409 -0.3387 +vn 0.0866 -0.7045 0.7044 +vn -0.9610 -0.1954 0.1954 +vn -0.9703 0.1710 -0.1711 +vn 0.0866 -0.9623 0.2578 +vn -0.0254 0.9656 -0.2587 +vn -0.9611 -0.2669 0.0715 +vn -0.5301 0.8190 0.2194 +vn -0.0254 0.9656 0.2588 +vn -0.0000 0.2589 -0.9659 +vn 0.0000 -0.9409 0.3387 +vn -0.8553 -0.3663 -0.3663 +vn 0.0866 -0.7044 -0.7045 +vn -0.9610 -0.1954 -0.1954 +vn -0.0000 0.9659 -0.2589 +vn 0.0866 -0.2578 -0.9623 +vn -0.0254 0.2587 0.9656 +vn -0.9611 -0.0715 -0.2670 +vn -0.5301 -0.2194 0.8190 +vn 0.0866 0.2579 -0.9623 +vn -0.0254 -0.2588 0.9656 +vn -0.9611 0.0715 -0.2670 +vn -0.8553 0.3663 -0.3663 +vn 0.8553 0.3663 -0.3664 +vn 0.0000 0.9409 0.3387 +vn 0.0866 0.7045 -0.7044 +vn -0.9611 0.1954 -0.1954 +vn -0.9703 -0.1710 0.1711 +vn -0.5543 0.5885 -0.5885 +vn 0.0866 0.9623 -0.2578 +vn -0.0254 -0.9656 0.2587 +vn -0.9611 0.2669 -0.0715 +vn -0.1484 0.9718 0.1832 +vn 0.2193 0.7003 0.6793 +vn 0.2207 0.9548 0.1989 +vn -0.1362 0.2058 0.9691 +vn 0.2323 0.2268 0.9458 +vn -0.0878 -0.2912 0.9526 +vn 0.2563 -0.2412 0.9360 +vn -0.0599 -0.4966 0.8659 +vn 0.2606 -0.4321 0.8634 +vn 0.9315 0.0185 0.3634 +vn 0.9150 0.3857 0.1185 +vn 0.9188 0.1426 0.3680 +vn -0.1074 0.9434 -0.3139 +vn 0.2376 0.9334 -0.2690 +vn 0.2401 0.8559 -0.4580 +vn 0.6185 0.7666 -0.1725 +vn 0.6022 0.7283 -0.3270 +vn 0.9115 0.4026 -0.0841 +vn 0.6147 0.7680 0.1798 +vn 0.9257 0.3782 -0.0057 +vn 0.6179 0.5678 0.5439 +vn 0.9138 0.2979 0.2761 +vn 0.6236 0.2090 0.7533 +vn 0.6330 -0.1431 0.7608 +vn 0.9189 -0.0596 0.3901 +vn -0.0814 0.8519 -0.5174 +vn -0.6382 0.7109 -0.2955 +vn -0.5963 0.6564 -0.4621 +vn -0.9783 0.1436 -0.1493 +vn -0.6797 0.7264 0.1017 +vn -0.9889 0.1441 -0.0351 +vn -0.6959 0.5088 0.5068 +vn -0.1625 0.7053 0.6900 +vn -0.9933 0.0744 0.0879 +vn -0.6698 0.1098 0.7344 +vn -0.9859 -0.0467 0.1607 +vn -0.6223 -0.2870 0.7283 +vn -0.9735 -0.1608 0.1629 +vn -0.5786 -0.4543 0.6774 +vn -0.9610 -0.2130 0.1765 +vn 0.1072 0.0000 -0.9942 +vn -0.0592 -0.3085 -0.9494 +vn -0.0592 0.0000 -0.9982 +vn 0.1072 -0.5844 -0.8044 +vn -0.0592 -0.5868 -0.8076 +vn -0.0592 -0.8076 -0.5868 +vn 0.1072 -0.8044 -0.5844 +vn -0.0592 -0.9494 -0.3085 +vn 0.1072 -0.9456 -0.3072 +vn -0.0592 -0.9982 -0.0000 +vn 0.1072 -0.9942 -0.0000 +vn -0.0592 -0.9494 0.3085 +vn 0.1072 -0.9456 0.3072 +vn -0.0592 -0.8076 0.5868 +vn 0.1072 -0.8044 0.5844 +vn -0.0592 -0.5868 0.8076 +vn 0.1072 -0.3072 0.9456 +vn -0.0592 -0.3085 0.9494 +vn -0.0592 0.0000 0.9982 +vn 0.1072 0.3072 0.9456 +vn -0.0592 0.3085 0.9494 +vn -0.0592 0.5868 0.8076 +vn 0.1072 0.8044 0.5844 +vn -0.0592 0.8076 0.5868 +vn -0.0592 0.9494 0.3085 +vn 0.1072 0.9456 0.3072 +vn -0.0592 0.9982 0.0000 +vn 0.1072 0.9942 -0.0000 +vn -0.0592 0.9494 -0.3085 +vn 0.1072 0.8044 -0.5844 +vn -0.0592 0.8076 -0.5868 +vn -0.0592 0.5868 -0.8076 +vn 0.3239 -0.5561 -0.7654 +vn 0.3239 -0.7654 -0.5561 +vn 0.1072 0.3072 -0.9456 +vn -0.0592 0.3085 -0.9494 +vn -0.0600 -0.9493 -0.3085 +vn -0.0600 -0.8076 -0.5867 +vn 0.3239 -0.7654 0.5561 +vn 0.6069 -0.4672 0.6430 +vn 0.3239 -0.5561 0.7654 +vn 0.1072 -0.5844 0.8044 +vn 0.3239 -0.2924 -0.8998 +vn 0.1072 -0.3072 -0.9456 +vn 0.1072 0.5844 0.8044 +vn 0.3239 0.7654 0.5561 +vn 0.1072 0.5844 -0.8044 +vn 0.3239 0.7654 -0.5561 +vn 0.3239 0.5561 -0.7654 +vn 0.3239 -0.8998 0.2924 +vn 0.1072 -0.0000 0.9942 +vn 0.3239 0.2924 0.8998 +vn 0.1072 0.9456 -0.3072 +vn 0.3239 0.9461 0.0000 +vn 0.3239 0.8998 -0.2924 +vn 0.3239 -0.8998 -0.2924 +vn 0.3239 -0.2924 0.8998 +vn 0.3239 0.8998 0.2924 +vn 0.3239 0.2924 -0.8998 +vn 0.3239 0.5561 0.7654 +vn 0.3239 -0.9461 -0.0000 +vn 0.3239 -0.0000 0.9461 +vn 0.3239 0.0000 -0.9461 +vn 0.6069 -0.7948 0.0000 +vn 0.8573 -0.4896 -0.1591 +vn 0.8573 -0.5148 0.0000 +vn 0.6069 -0.2456 -0.7559 +vn 0.6069 0.7559 -0.2456 +vn 0.6069 -0.2456 0.7559 +vn 0.6069 -0.4672 -0.6430 +vn 0.6069 0.6430 -0.4672 +vn 0.6069 -0.0000 0.7948 +vn 0.6069 -0.6430 -0.4672 +vn 0.6069 0.4672 -0.6430 +vn 0.6069 0.2456 0.7559 +vn 0.6069 -0.7559 -0.2456 +vn 0.6069 0.2456 -0.7559 +vn 0.6069 0.4672 0.6430 +vn 0.6069 0.0000 -0.7948 +vn 0.6069 0.6430 0.4672 +vn 0.6069 -0.7559 0.2456 +vn 0.6069 0.7559 0.2456 +vn 0.6069 -0.6430 0.4672 +vn 0.6069 0.7948 -0.0000 +vn 0.8573 0.4896 0.1591 +vn 0.9802 0.1978 0.0000 +vn 0.8573 0.5148 0.0000 +vn 0.8573 0.0000 -0.5148 +vn 0.8573 0.4165 0.3026 +vn 0.8573 -0.4896 0.1591 +vn 0.8573 -0.4165 0.3026 +vn 0.8573 -0.3026 0.4165 +vn 0.8573 -0.1591 -0.4896 +vn 0.8573 0.4896 -0.1591 +vn 0.8573 -0.1591 0.4896 +vn 0.8573 -0.3026 -0.4165 +vn 0.8573 0.4165 -0.3026 +vn 0.8573 0.0000 0.5148 +vn 0.8573 -0.4165 -0.3026 +vn 0.8573 0.3026 -0.4165 +vn 0.8573 0.1591 0.4896 +vn 0.8573 0.1591 -0.4896 +vn 0.8573 0.3026 0.4165 +vn 0.9803 0.1880 0.0611 +vn 0.9803 -0.0000 0.1977 +vn 0.9803 -0.1880 0.0611 +vn 0.9803 -0.1599 0.1162 +vn 0.9803 -0.1162 0.1600 +vn 0.9803 -0.0611 -0.1880 +vn 0.9803 0.1880 -0.0611 +vn 0.9803 -0.0611 0.1880 +vn 0.9803 -0.1162 -0.1599 +vn 0.9803 0.1600 -0.1162 +vn 0.9803 -0.1600 -0.1162 +vn 0.9803 0.1162 -0.1600 +vn 0.9803 0.0611 0.1880 +vn 0.9803 -0.1880 -0.0611 +vn 0.9803 0.0611 -0.1881 +vn 0.9803 0.1162 0.1599 +vn 0.9803 -0.1977 0.0000 +vn 0.9803 0.0000 -0.1977 +vn 0.9803 0.1599 0.1162 +vn -0.0600 0.9982 -0.0000 +vn -0.0000 0.9511 0.3090 +vn -0.0600 0.9493 0.3085 +vn -0.0600 -0.5867 0.8076 +vn -0.0600 0.8076 0.5867 +vn -0.0600 0.5867 -0.8076 +vn -0.0600 -0.3085 -0.9493 +vn -0.0600 -0.8076 0.5867 +vn -0.0600 -0.9493 0.3085 +vn -0.0600 0.3085 0.9493 +vn -0.0600 0.9493 -0.3085 +vn -0.0600 -0.3085 0.9493 +vn -0.0600 0.3085 -0.9493 +vn -0.0600 -0.5867 -0.8076 +vn -0.0600 -0.0000 -0.9982 +vn -0.0600 0.5867 0.8076 +vn -0.0600 0.8076 -0.5867 +vn -0.0600 -0.9982 0.0000 +vn -0.0600 -0.0000 0.9982 +vn 0.0000 -0.8090 0.5878 +vn -0.0000 0.9511 -0.3090 +vn 0.0000 -0.5878 0.8090 +vn 0.0000 -0.3090 -0.9511 +vn -0.0000 0.8090 -0.5878 +vn 0.0000 -0.3090 0.9511 +vn 0.0000 -0.5878 -0.8090 +vn 0.0000 -0.8090 -0.5878 +vn -0.0000 0.5878 -0.8090 +vn -0.0000 0.5878 0.8090 +vn -0.0000 0.3090 0.9511 +vn 0.0000 -0.9511 -0.3090 +vn -0.0000 0.3090 -0.9511 +vn -0.0000 0.8090 0.5878 +vn 0.0000 -0.9511 0.3090 +vn 0.2116 0.0000 -0.9774 +vn 0.9665 0.0000 -0.2567 +vn 0.6774 -0.5201 -0.5201 +vn 0.6774 0.0000 -0.7356 +vn 0.2116 -0.6911 -0.6911 +vn 0.2116 -0.9774 0.0000 +vn 0.9665 -0.1815 -0.1815 +vn 0.6774 -0.7356 0.0000 +vn 0.9665 -0.1815 0.1815 +vn 0.6774 -0.5201 0.5201 +vn 0.2116 -0.6911 0.6911 +vn 0.2116 -0.0000 0.9774 +vn 0.9665 -0.0000 0.2567 +vn 0.6774 -0.0000 0.7356 +vn 0.6774 0.5201 0.5201 +vn 0.2116 0.6911 0.6911 +vn 0.9665 0.1815 0.1815 +vn 0.2116 0.9774 -0.0000 +vn 0.9665 0.2567 -0.0000 +vn 0.6774 0.7356 -0.0000 +vn 0.6774 0.5201 -0.5201 +vn 0.2116 0.6911 -0.6911 +vn 0.9665 -0.2567 0.0000 +vn -0.0000 0.7136 0.7006 +vn 0.4073 0.6058 0.6834 +vn 0.7055 0.3113 0.6367 +vn 0.8147 -0.0910 0.5727 +vn 0.7055 -0.4933 0.5088 +vn 0.4073 -0.7878 0.4621 +vn 0.0000 -0.8956 0.4449 +vn -0.4073 -0.7878 0.4621 +vn -0.4073 -0.7878 0.4620 +vn -0.7055 -0.4933 0.5088 +vn -0.8147 -0.0910 0.5727 +vn -0.7055 0.3113 0.6367 +vn -0.4073 0.6058 0.6834 +vn -0.0000 -0.9876 -0.1569 +vn -0.5000 -0.8553 -0.1359 +vn 0.5000 0.8553 0.1359 +vn 0.8660 0.4938 0.0784 +vn -0.5000 0.8553 0.1359 +vn -0.8660 0.4938 0.0784 +vn 0.5000 -0.8553 -0.1359 +vn -0.8660 -0.4938 -0.0784 +vn -0.8660 -0.4938 -0.0785 +vn 0.0000 0.9876 0.1569 +vn 0.8660 -0.4938 -0.0785 +vn -0.0000 0.7136 -0.7006 +vn 0.4073 0.6058 -0.6834 +vn 0.7055 0.3113 -0.6367 +vn 0.8147 -0.0910 -0.5727 +vn 0.7055 -0.4933 -0.5088 +vn 0.4073 -0.7878 -0.4620 +vn -0.0000 -0.8956 -0.4449 +vn -0.4073 -0.7878 -0.4620 +vn -0.7055 -0.4933 -0.5088 +vn -0.8147 -0.0910 -0.5727 +vn -0.7055 0.3113 -0.6367 +vn -0.4073 0.6058 -0.6834 +vn -0.5000 -0.8553 0.1359 +vn 0.0000 -0.9876 0.1569 +vn 0.8660 0.4938 -0.0785 +vn 0.5000 0.8553 -0.1359 +vn -0.5000 0.8553 -0.1359 +vn -0.8660 0.4938 -0.0785 +vn 0.5000 -0.8553 0.1359 +vn -0.8660 -0.4938 0.0785 +vn 0.0000 0.9876 -0.1569 +vn 0.8660 -0.4938 0.0784 +vn 0.7231 0.6672 0.1788 +vn -0.9844 0.1700 0.0455 +vn 0.9844 0.1699 0.0455 +vn -0.7230 0.6673 0.1788 +vn -0.7231 0.6673 0.1788 +vn -0.7231 0.6672 0.1788 +vn -0.9844 0.1699 0.0455 +vn 0.9844 0.1700 0.0455 +vn -0.4669 -0.4015 0.7879 +vn 0.4669 -0.4015 0.7880 +vn -0.9554 0.1340 -0.2630 +vn -0.9555 -0.1340 0.2630 +vn 0.9554 0.1340 -0.2630 +vn 0.9554 -0.1340 0.2630 +vn 0.4669 0.4015 -0.7879 +vn 0.4669 -0.4015 0.7879 +vn -0.4669 0.4015 -0.7879 +vn -0.9554 -0.1340 0.2630 +vn 0.4669 0.8843 -0.0000 +vn -0.4669 0.8843 0.0000 +vn 0.9554 -0.2952 0.0000 +vn 0.9554 0.2952 0.0000 +vn -0.9554 -0.2952 0.0000 +vn -0.9555 0.2952 0.0000 +vn -0.4669 -0.8843 0.0000 +vn -0.9554 0.2952 0.0000 +vn 0.4669 -0.8843 0.0000 +vn 0.9555 0.2951 0.0000 +vn 0.9555 -0.2952 0.0000 +vn 0.9555 0.2952 -0.0000 +vn 0.4669 -0.4015 -0.7879 +vn -0.4669 -0.4015 -0.7879 +vn -0.9555 -0.1340 -0.2630 +vn -0.9554 0.1340 0.2630 +vn -0.9555 0.1340 0.2630 +vn 0.9554 0.1340 0.2630 +vn 0.9554 -0.1340 -0.2630 +vn 0.9555 0.1340 0.2630 +vn 0.4669 0.4015 0.7879 +vn 0.9554 -0.1339 -0.2630 +vn -0.4669 0.4015 0.7879 +vn -0.4669 0.4014 0.7879 +vn -0.9554 -0.1340 -0.2630 +vn 0.4669 0.4014 0.7879 +vn -0.4669 0.4014 0.7880 +vn 0.4669 0.4014 0.7880 +vn -0.9554 -0.2952 0.0001 +vn -0.1442 0.1945 -0.9703 +vn 0.2193 0.6891 -0.6907 +vn 0.2247 0.2119 -0.9511 +vn -0.1404 0.9708 -0.1946 +vn 0.2284 0.9498 -0.2139 +vn -0.0945 0.9485 0.3025 +vn 0.2500 0.9343 0.2542 +vn -0.0672 0.8594 0.5069 +vn 0.2536 0.8593 0.4441 +vn 0.9295 0.3686 -0.0089 +vn 0.9164 0.3942 0.0693 +vn 0.9277 0.0040 -0.3732 +vn -0.1007 -0.3028 -0.9477 +vn 0.2441 -0.2561 -0.9353 +vn 0.2471 -0.4461 -0.8602 +vn 0.6235 -0.1596 -0.7654 +vn 0.6078 -0.3147 -0.7290 +vn 0.9141 -0.0743 -0.3987 +vn 0.6177 0.1926 -0.7624 +vn 0.9164 0.1282 -0.3793 +vn 0.6179 0.5542 -0.5577 +vn 0.9138 0.2847 -0.2895 +vn 0.6206 0.7592 -0.1964 +vn 0.6281 0.7624 0.1559 +vn 0.9176 0.3746 -0.1330 +vn -0.0740 -0.5073 -0.8586 +vn -0.6328 -0.2901 -0.7179 +vn -0.5903 -0.4572 -0.6653 +vn -0.9767 -0.1528 -0.1507 +vn -0.6763 0.1071 -0.7288 +vn -0.9880 -0.0386 -0.1498 +vn -0.6959 0.5093 -0.5063 +vn -0.1625 0.6978 -0.6976 +vn -0.9934 0.0835 -0.0786 +vn -0.6732 0.7321 -0.1043 +vn -0.9870 0.1548 0.0434 +vn -0.6278 0.7213 0.2926 +vn -0.9752 0.1557 0.1575 +vn -0.5846 0.6686 0.4596 +vn -0.9630 0.1687 0.2099 +vn -0.1446 -0.9709 -0.1907 +vn 0.2194 -0.6935 -0.6862 +vn 0.2243 -0.9520 -0.2081 +vn -0.1400 -0.1983 -0.9701 +vn 0.2287 -0.2177 -0.9488 +vn -0.0939 0.2988 -0.9497 +vn 0.2506 0.2504 -0.9352 +vn -0.0665 0.5036 -0.8614 +vn 0.2542 0.4406 -0.8609 +vn 0.9297 -0.0109 -0.3681 +vn 0.9162 -0.3803 -0.1262 +vn 0.9177 -0.1350 -0.3736 +vn -0.1013 -0.9465 0.3064 +vn 0.2434 -0.9344 0.2599 +vn 0.2464 -0.8586 0.4496 +vn 0.6230 -0.7650 0.1629 +vn 0.6073 -0.7281 0.3179 +vn 0.9138 -0.3989 0.0763 +vn 0.6175 -0.7635 -0.1893 +vn 0.9275 -0.3737 -0.0021 +vn 0.6179 -0.5602 -0.5517 +vn 0.9138 -0.2911 -0.2831 +vn 0.6209 -0.1996 -0.7581 +vn 0.6286 0.1526 -0.7626 +vn 0.9166 0.0673 -0.3940 +vn -0.0747 -0.8566 0.5106 +vn -0.6333 -0.7165 0.2926 +vn -0.5908 -0.6632 0.4595 +vn -0.9769 -0.1495 0.1529 +vn -0.6766 -0.7288 -0.1046 +vn -0.9881 -0.1492 0.0387 +vn -0.6959 -0.5079 -0.5077 +vn -0.1625 -0.7002 -0.6952 +vn -0.9934 -0.0784 -0.0837 +vn -0.6729 -0.1068 -0.7320 +vn -0.9869 0.0433 -0.1555 +vn -0.6272 0.2901 -0.7228 +vn -0.9750 0.1574 -0.1568 +vn -0.5841 0.4572 -0.6707 +vn -0.9628 0.2098 -0.1700 +vn -0.1480 -0.1870 0.9712 +vn 0.2193 -0.6821 0.6976 +vn 0.2211 -0.2028 0.9539 +vn -0.1366 -0.9698 0.2021 +vn 0.2320 -0.9468 0.2230 +vn -0.0884 -0.9514 -0.2949 +vn 0.2558 -0.9352 -0.2450 +vn -0.0606 -0.8639 -0.4999 +vn 0.2600 -0.8618 -0.4356 +vn 0.9313 -0.3639 0.0166 +vn 0.9186 -0.3903 -0.0616 +vn 0.9259 0.0037 0.3777 +vn -0.1068 0.3103 0.9446 +vn 0.2382 0.2653 0.9343 +vn 0.2407 0.4546 0.8576 +vn 0.6190 0.1692 0.7670 +vn 0.6027 0.3239 0.7293 +vn 0.9117 0.0821 0.4025 +vn 0.6150 -0.1831 0.7670 +vn 0.9151 -0.1204 0.3848 +vn 0.6179 -0.5464 0.5654 +vn 0.9138 -0.2778 0.2964 +vn 0.6233 -0.7544 0.2058 +vn 0.6326 -0.7605 -0.1463 +vn 0.9187 -0.3690 0.1407 +vn -0.0807 0.5141 0.8539 +vn -0.6377 0.2930 0.7124 +vn -0.5957 0.4599 0.6585 +vn -0.9782 0.1492 0.1446 +vn -0.6794 -0.1042 0.7264 +vn -0.9889 0.0350 0.1447 +vn -0.6959 -0.5084 0.5072 +vn -0.1625 -0.6927 0.7027 +vn -0.9934 -0.0877 0.0745 +vn -0.6701 -0.7345 0.1073 +vn -0.9860 -0.1600 -0.0469 +vn -0.6228 -0.7268 -0.2896 +vn -0.9736 -0.1618 -0.1609 +vn -0.5791 -0.6753 -0.4567 +vn -0.9612 -0.1752 -0.2132 +vn -0.4669 -0.4816 -0.7417 +vn 0.4669 -0.4817 -0.7416 +vn -0.4669 -0.4816 -0.7416 +vn -0.9554 0.1608 0.2475 +vn -0.9554 -0.1608 -0.2475 +vn 0.9554 0.1607 0.2475 +vn 0.9554 -0.1608 -0.2475 +vn 0.9554 0.1608 0.2476 +vn 0.4669 0.4816 0.7416 +vn 0.4669 0.4817 0.7416 +vn 0.4669 -0.4816 -0.7416 +vn -0.9554 0.1608 0.2476 +vn -0.4669 0.4816 0.7416 +vn 0.4669 -0.4422 0.7658 +vn -0.4669 -0.4422 0.7658 +vn 0.9554 0.1476 -0.2556 +vn 0.9554 -0.1476 0.2556 +vn -0.9554 0.1476 -0.2556 +vn -0.9555 -0.1476 0.2556 +vn -0.9555 0.1476 -0.2556 +vn -0.4669 0.4421 -0.7658 +vn -0.4669 0.4421 -0.7659 +vn -0.9554 -0.1476 0.2556 +vn 0.4669 0.4422 -0.7658 +vn -0.9554 0.1607 0.2476 +vn 0.9554 0.1608 0.2475 +vn -0.4669 0.4817 0.7416 +vn -0.4669 -0.4421 0.7658 +vn -0.4669 0.4422 -0.7658 +vn -0.4669 0.4816 0.7417 +vn 0.4669 -0.4421 0.7659 +vn 0.4669 -0.4421 0.7658 +vn 0.9555 0.1476 -0.2556 +vn 0.9555 -0.1476 0.2556 +vn 0.4669 0.8831 0.0463 +vn -0.4669 0.8831 0.0463 +vn -0.9555 0.2947 0.0155 +vn -0.9554 -0.2948 -0.0154 +vn -0.9554 -0.2947 -0.0154 +vn 0.9554 -0.2948 -0.0154 +vn 0.9554 0.2948 0.0155 +vn 0.4669 -0.8831 -0.0463 +vn -0.4669 -0.8831 -0.0463 +vn -0.9554 0.2948 0.0155 +vn 0.9554 0.2948 0.0154 +vn 0.9555 -0.2947 -0.0154 +vn -0.9554 0.1475 -0.2556 +vn -0.9554 0.1475 -0.2557 +vn 0.4669 0.4421 -0.7659 +vn -0.4669 0.8831 -0.0463 +vn 0.4669 0.8831 -0.0463 +vn -0.9554 -0.2948 0.0154 +vn -0.9554 0.2948 -0.0154 +vn -0.9555 0.2947 -0.0154 +vn 0.9554 -0.2948 0.0154 +vn 0.9554 0.2948 -0.0155 +vn 0.4669 -0.8831 0.0463 +vn -0.4669 -0.8831 0.0463 +vn 0.4669 -0.4422 -0.7658 +vn -0.4669 -0.4421 -0.7659 +vn 0.9554 0.1476 0.2556 +vn 0.9554 -0.1476 -0.2556 +vn -0.9554 0.1476 0.2556 +vn -0.9555 -0.1476 -0.2556 +vn -0.9555 0.1476 0.2556 +vn -0.4669 0.4422 0.7658 +vn -0.4669 -0.4421 -0.7658 +vn -0.9554 -0.1476 -0.2556 +vn 0.4669 0.4422 0.7658 +vn -0.9554 0.2948 -0.0155 +vn -0.4669 -0.4422 -0.7658 +vn 0.9555 -0.1476 -0.2556 +vn 0.4669 0.4421 0.7658 +vn 0.4669 0.4421 0.7659 +vn 0.4669 -0.4816 0.7416 +vn -0.4669 -0.4816 0.7416 +vn -0.9555 -0.1608 0.2475 +vn -0.9554 0.1608 -0.2475 +vn 0.9554 0.1607 -0.2476 +vn 0.9554 -0.1608 0.2475 +vn 0.9555 0.1607 -0.2475 +vn 0.4669 0.4817 -0.7416 +vn -0.4669 0.4816 -0.7416 +vn -0.9554 -0.1608 0.2475 +vn -0.9554 0.1475 0.2556 +vn -0.9554 -0.1475 -0.2556 +vn -0.9554 0.1475 0.2557 +vn -0.4669 0.4421 0.7658 +vn -0.9554 -0.1475 -0.2557 +vn -0.4669 -0.4817 0.7416 +vn -0.9554 0.1608 -0.2476 +vn 0.9554 -0.1607 0.2476 +vn 0.9554 0.1608 -0.2475 +vn -0.4669 0.4817 -0.7416 +vn 0.9554 0.1607 -0.2475 +vn 0.9554 0.1608 -0.2476 +vn 0.4669 0.4816 -0.7416 +vn 0.7231 0.4884 0.4884 +vn -0.9844 0.1244 0.1244 +vn 0.9844 0.1244 0.1244 +vn -0.7231 0.4885 0.4885 +vn 0.7231 0.4885 0.4885 +vn 0.7231 0.4884 0.4885 +vn 0.7231 0.1788 0.6672 +vn -0.9844 0.0455 0.1700 +vn 0.9844 0.0455 0.1700 +vn -0.7231 0.1788 0.6673 +vn -0.7231 0.1788 0.6672 +vn 0.9844 0.0455 0.1699 +vn 0.9844 0.0456 0.1700 +vn 0.7231 0.1787 0.6672 +vn 0.7231 -0.1788 0.6672 +vn -0.9844 -0.0455 0.1700 +vn 0.9844 -0.0455 0.1699 +vn -0.7231 -0.1788 0.6673 +vn -0.7231 -0.1788 0.6672 +vn 0.9844 -0.0455 0.1700 +vn 0.9844 -0.0456 0.1700 +vn 0.7231 -0.4885 0.4884 +vn -0.9844 -0.1244 0.1244 +vn 0.9844 -0.1244 0.1244 +vn -0.7231 -0.4885 0.4885 +vn 0.7231 -0.4885 0.4885 +vn 0.7231 -0.6672 0.1788 +vn -0.9844 -0.1700 0.0455 +vn 0.9844 -0.1700 0.0455 +vn -0.7231 -0.6673 0.1788 +vn -0.7231 -0.6672 0.1788 +vn -0.9844 -0.1699 0.0455 +vn 0.9844 -0.1699 0.0455 +vn 0.7231 -0.6672 -0.1788 +vn -0.9844 -0.1699 -0.0455 +vn 0.9844 -0.1699 -0.0455 +vn -0.7231 -0.6672 -0.1788 +vn -0.7231 -0.6673 -0.1788 +vn -0.9844 -0.1700 -0.0455 +vn 0.9844 -0.1700 -0.0455 +vn 0.7231 -0.4884 -0.4885 +vn -0.9844 -0.1244 -0.1244 +vn 0.9844 -0.1244 -0.1244 +vn -0.7231 -0.4885 -0.4885 +vn 0.7231 -0.4885 -0.4885 +vn 0.7231 -0.1788 -0.6672 +vn -0.9844 -0.0455 -0.1700 +vn 0.9844 -0.0455 -0.1699 +vn -0.7231 -0.1788 -0.6673 +vn -0.7231 -0.1788 -0.6672 +vn 0.9844 -0.0456 -0.1700 +vn 0.9844 -0.0455 -0.1700 +vn 0.7231 -0.1788 -0.6673 +vn 0.7231 -0.1787 -0.6672 +vn 0.7231 0.1788 -0.6672 +vn -0.9844 0.0455 -0.1700 +vn 0.9844 0.0456 -0.1699 +vn -0.7231 0.1788 -0.6673 +vn -0.7231 0.1788 -0.6672 +vn 0.9844 0.0455 -0.1699 +vn 0.9844 0.0455 -0.1700 +vn 0.9844 0.0456 -0.1700 +vn 0.7231 0.4885 -0.4884 +vn -0.9844 0.1244 -0.1244 +vn 0.9844 0.1244 -0.1244 +vn -0.7231 0.4885 -0.4885 +vn 0.7231 0.6672 -0.1788 +vn -0.9844 0.1700 -0.0455 +vn 0.9844 0.1699 -0.0455 +vn -0.7231 0.6673 -0.1788 +vn -0.7231 0.6672 -0.1788 +vn -0.9844 0.1699 -0.0455 +vn 0.9844 0.1700 -0.0455 +vn 0.6186 -0.2988 0.7267 +vn -0.9669 0.1561 -0.2020 +vn 0.9665 0.1815 -0.1815 +vn -0.9555 0.2952 0.0001 +vn 0.9554 -0.1341 -0.2630 +vn 0.6130 0.7263 0.3111 +vn -0.9649 -0.2053 -0.1637 +vn 0.6135 0.3079 -0.7272 +vn -0.9651 -0.1624 0.2054 +vn 0.6181 -0.7258 -0.3020 +vn -0.9667 0.2019 0.1573 +vn 0.9555 0.1476 0.2556 +vn 0.9554 -0.1607 0.2475 +s off +f 46/1/1 47/2/1 48/3/1 +f 47/4/2 50/5/2 48/6/2 +f 52/7/3 53/8/3 54/9/3 +f 54/10/4 44/11/4 43/12/4 +f 44/11/5 52/7/5 45/13/5 +f 56/14/6 58/15/6 55/16/6 +f 57/17/7 60/18/7 58/15/7 +f 62/19/8 59/20/8 61/21/8 +f 58/15/3 64/22/3 55/16/3 +f 64/22/9 65/23/9 66/24/9 +f 67/25/3 58/15/3 60/18/3 +f 60/18/3 68/26/3 67/25/3 +f 68/26/10 70/27/10 67/25/10 +f 67/25/11 65/23/11 63/28/11 +f 57/17/1 70/29/1 59/20/1 +f 59/20/1 69/30/1 61/21/1 +f 66/31/1 57/17/1 56/14/1 +f 46/1/12 49/32/12 47/4/12 +f 45/13/13 51/33/13 46/1/13 +f 214/34/1 216/35/1 213/36/1 +f 223/37/1 238/38/1 221/39/1 +f 224/40/1 240/41/1 222/42/1 +f 225/43/1 215/44/1 214/45/1 +f 223/37/1 241/46/1 237/47/1 +f 227/48/1 239/49/1 224/50/1 +f 228/51/1 233/52/1 225/43/1 +f 226/53/1 243/54/1 241/55/1 +f 230/56/1 242/57/1 227/48/1 +f 220/58/1 234/59/1 228/60/1 +f 231/61/1 243/54/1 229/62/1 +f 230/63/1 247/64/1 244/65/1 +f 196/66/1 246/67/1 231/68/1 +f 232/69/1 249/70/1 247/64/1 +f 195/71/1 248/72/1 196/66/1 +f 217/73/1 249/74/1 218/75/1 +f 220/58/1 252/76/1 245/77/1 +f 195/78/1 216/35/1 250/79/1 +f 221/80/1 251/81/1 217/73/1 +f 219/82/1 240/41/1 252/83/1 +f 264/84/1 268/85/1 235/86/1 +f 338/87/1 339/88/1 335/89/1 +f 336/90/14 342/91/14 337/92/14 +f 345/93/3 346/94/3 341/95/3 +f 335/96/15 344/97/15 343/98/15 +f 339/88/16 344/97/16 340/99/16 +f 348/100/17 350/101/17 347/102/17 +f 348/100/18 352/103/18 349/104/18 +f 352/103/19 354/105/19 353/106/19 +f 355/107/3 348/100/3 347/102/3 +f 355/107/20 358/108/20 356/109/20 +f 351/110/3 356/109/3 359/111/3 +f 351/110/3 360/112/3 354/105/3 +f 361/113/21 360/112/21 359/111/21 +f 356/109/22 361/113/22 359/111/22 +f 361/114/1 349/104/1 352/103/1 +f 352/103/1 362/115/1 361/114/1 +f 349/104/1 357/116/1 350/101/1 +f 342/91/23 338/87/23 337/92/23 +f 346/94/24 339/88/24 338/87/24 +f 379/117/25 386/118/25 381/119/25 +f 379/117/25 393/120/25 385/121/25 +f 377/122/25 394/123/25 393/120/25 +f 375/124/25 395/125/25 394/126/25 +f 371/127/25 395/125/25 373/128/25 +f 371/127/25 397/129/25 396/130/25 +f 364/131/25 398/132/25 390/133/25 +f 364/131/25 389/134/25 365/135/25 +f 369/136/25 399/137/25 397/129/25 +f 383/138/25 398/132/25 387/139/25 +f 367/140/25 389/134/25 399/137/25 +f 381/119/25 400/141/25 383/138/25 +f 408/142/25 410/143/25 402/144/25 +f 430/145/26 434/146/26 428/147/26 +f 434/146/26 426/148/26 428/147/26 +f 426/148/26 442/149/26 424/150/26 +f 442/151/26 422/152/26 424/153/26 +f 443/154/26 420/155/26 422/152/26 +f 420/155/26 445/156/26 418/157/26 +f 440/158/26 436/159/26 414/160/26 +f 413/161/26 440/158/26 414/160/26 +f 445/156/26 416/162/26 418/157/26 +f 436/159/26 448/163/26 432/164/26 +f 416/162/26 437/165/26 413/161/26 +f 448/163/26 430/145/26 432/164/26 +f 451/166/26 455/167/26 439/168/26 +f 460/169/27 462/170/27 459/171/27 +f 464/172/28 466/173/28 463/174/28 +f 467/175/29 466/173/29 465/176/29 +f 470/177/30 463/174/30 469/178/30 +f 469/178/27 467/179/27 470/180/27 +f 471/181/31 473/182/31 474/183/31 +f 476/184/32 478/185/32 475/186/32 +f 471/181/33 470/187/33 467/188/33 +f 480/189/28 482/190/28 479/191/28 +f 460/192/29 479/193/29 482/194/29 +f 482/195/33 475/186/33 478/185/33 +f 461/196/30 480/189/30 462/170/30 +f 483/197/1 471/181/1 467/198/1 +f 484/199/3 474/183/3 473/182/3 +f 485/200/3 475/186/3 481/201/3 +f 486/202/1 478/185/1 477/203/1 +f 466/173/28 488/204/28 463/174/28 +f 479/191/28 490/205/28 480/189/28 +f 469/178/27 492/206/27 468/207/27 +f 459/171/1 489/208/1 479/193/1 +f 469/178/3 488/204/3 491/209/3 +f 468/210/1 487/211/1 466/173/1 +f 462/170/27 493/212/27 459/171/27 +f 462/170/3 490/205/3 494/213/3 +f 496/214/34 498/215/34 495/216/34 +f 496/214/3 500/217/3 499/218/3 +f 501/219/28 497/220/28 496/214/28 +f 498/221/35 503/222/35 504/223/35 +f 505/224/36 507/225/36 508/226/36 +f 508/226/37 510/227/37 509/228/37 +f 512/229/38 510/227/38 511/230/38 +f 511/231/39 505/224/39 512/232/39 +f 501/233/40 503/234/40 502/235/40 +f 503/236/41 497/237/41 502/238/41 +f 500/217/42 501/233/42 499/218/42 +f 516/239/28 513/240/28 515/241/28 +f 519/242/27 521/243/27 522/244/27 +f 519/245/43 517/246/43 520/247/43 +f 517/246/44 521/243/44 520/247/44 +f 521/243/3 515/241/3 522/244/3 +f 518/248/45 515/241/45 514/249/45 +f 519/245/1 514/250/1 513/251/1 +f 524/252/27 526/253/27 528/254/27 +f 538/255/28 531/256/28 543/257/28 +f 546/258/28 540/259/28 535/260/28 +f 537/261/27 542/262/27 530/263/27 +f 552/264/46 554/265/46 551/266/46 +f 552/267/47 555/268/47 556/269/47 +f 556/270/48 557/271/48 558/272/48 +f 557/273/49 560/274/49 558/275/49 +f 560/276/50 561/277/50 562/278/50 +f 561/279/51 564/280/51 562/281/51 +f 564/282/52 565/283/52 566/284/52 +f 565/285/53 568/286/53 566/287/53 +f 567/288/54 570/289/54 568/290/54 +f 570/291/55 571/292/55 572/293/55 +f 571/294/56 574/295/56 572/296/56 +f 574/297/57 575/298/57 576/299/57 +f 553/300/58 575/301/58 554/302/58 +f 587/303/59 586/304/59 584/305/59 +f 612/306/60 610/307/60 609/308/60 +f 603/309/61 602/310/61 600/311/61 +f 623/312/59 622/313/59 620/314/59 +f 648/315/60 646/316/60 645/317/60 +f 639/318/61 638/319/61 636/320/61 +f 659/321/59 658/322/59 656/323/59 +f 682/324/60 684/325/60 681/326/60 +f 675/327/61 674/328/61 672/329/61 +f 689/330/62 700/331/62 696/332/62 +f 718/333/63 720/334/63 717/335/63 +f 705/336/64 716/337/64 712/338/64 +f 725/339/62 736/340/62 732/341/62 +f 756/342/65 754/343/65 753/344/65 +f 741/345/64 752/346/64 748/347/64 +f 761/348/62 772/349/62 768/350/62 +f 790/351/65 792/352/65 789/353/65 +f 777/354/64 788/355/64 784/356/64 +f 793/357/61 798/358/61 803/359/61 +f 805/360/3 800/361/3 804/362/3 +f 803/363/66 807/364/66 806/365/66 +f 807/366/67 801/367/67 805/360/67 +f 808/368/68 803/363/68 806/365/68 +f 793/369/1 809/370/1 794/371/1 +f 810/372/1 798/373/1 811/374/1 +f 811/374/69 797/375/69 812/376/69 +f 813/377/64 812/378/64 814/379/64 +f 796/380/3 812/376/3 797/381/3 +f 795/382/70 809/370/70 813/383/70 +f 941/384/71 943/385/71 944/386/71 +f 948/387/62 950/388/62 947/389/62 +f 954/390/72 949/391/72 953/392/72 +f 955/393/73 944/386/73 943/385/73 +f 946/394/74 954/390/74 953/392/74 +f 951/395/75 956/396/75 955/393/75 +f 946/397/76 949/391/76 948/398/76 +f 947/399/77 954/390/77 945/400/77 +f 941/401/78 956/396/78 952/402/78 +f 942/403/59 955/393/59 943/385/59 +f 811/404/64 804/362/64 810/372/64 +f 806/405/64 805/360/64 811/404/64 +f 808/368/64 811/404/64 812/378/64 +f 812/378/64 809/406/64 808/368/64 +f 797/407/61 795/408/61 796/409/61 +f 797/407/61 794/410/61 795/408/61 +f 803/359/61 801/411/61 802/412/61 +f 798/358/61 800/413/61 801/411/61 +f 967/414/79 966/415/79 964/416/79 +f 992/417/80 990/418/80 989/419/80 +f 983/420/81 982/421/81 980/422/81 +f 1003/423/79 1002/424/79 1000/425/79 +f 1028/426/80 1026/427/80 1025/428/80 +f 1019/429/81 1018/430/81 1016/431/81 +f 1039/432/79 1038/433/79 1036/434/79 +f 1062/435/80 1064/436/80 1061/437/80 +f 1055/438/81 1054/439/81 1052/440/81 +f 1069/441/82 1080/442/82 1076/443/82 +f 1097/444/83 1099/445/83 1100/446/83 +f 1085/447/84 1096/448/84 1092/449/84 +f 1105/450/85 1116/451/85 1112/452/85 +f 1136/453/86 1134/454/86 1133/455/86 +f 1121/456/84 1132/457/84 1128/458/84 +f 1141/459/85 1152/460/85 1148/461/85 +f 1170/462/86 1172/463/86 1169/464/86 +f 1157/465/84 1168/466/84 1164/467/84 +f 1173/468/81 1178/469/81 1183/470/81 +f 1185/471/3 1180/472/3 1184/473/3 +f 1186/474/87 1182/475/87 1187/476/87 +f 1187/477/88 1181/478/88 1185/471/88 +f 1188/479/89 1183/480/89 1186/474/89 +f 1174/481/1 1188/479/1 1189/482/1 +f 1190/483/1 1178/484/1 1191/485/1 +f 1191/485/90 1177/486/90 1192/487/90 +f 1193/488/84 1192/489/84 1194/490/84 +f 1176/491/3 1192/487/3 1177/492/3 +f 1175/493/91 1189/482/91 1193/494/91 +f 1191/495/84 1184/473/84 1190/483/84 +f 1186/496/84 1185/471/84 1191/495/84 +f 1188/479/84 1191/495/84 1192/489/84 +f 1192/489/84 1189/497/84 1188/479/84 +f 1177/498/81 1175/499/81 1176/500/81 +f 1177/498/81 1174/501/81 1175/499/81 +f 1183/470/81 1181/502/81 1182/503/81 +f 1178/469/81 1180/504/81 1181/502/81 +f 1205/505/92 1204/506/92 1202/507/92 +f 1230/508/93 1228/509/93 1227/510/93 +f 1221/511/94 1220/512/94 1218/513/94 +f 1241/514/92 1240/515/92 1238/516/92 +f 1266/517/93 1264/518/93 1263/519/93 +f 1257/520/94 1256/521/94 1254/522/94 +f 1277/523/92 1276/524/92 1274/525/92 +f 1300/526/93 1302/527/93 1299/528/93 +f 1293/529/94 1292/530/94 1290/531/94 +f 1307/532/95 1318/533/95 1314/534/95 +f 1336/535/96 1338/536/96 1335/537/96 +f 1323/538/97 1334/539/97 1330/540/97 +f 1343/541/98 1354/542/98 1350/543/98 +f 1374/544/96 1372/545/96 1371/546/96 +f 1359/547/97 1370/548/97 1366/549/97 +f 1379/550/98 1390/551/98 1386/552/98 +f 1408/553/96 1410/554/96 1407/555/96 +f 1395/556/97 1406/557/97 1402/558/97 +f 1411/559/94 1416/560/94 1421/561/94 +f 1423/562/3 1418/563/3 1422/564/3 +f 1424/565/99 1420/566/99 1425/567/99 +f 1425/568/100 1419/569/100 1423/562/100 +f 1426/570/101 1421/571/101 1424/565/101 +f 1411/572/1 1427/573/1 1412/574/1 +f 1428/575/1 1416/576/1 1429/577/1 +f 1429/577/102 1415/578/102 1430/579/102 +f 1431/580/97 1430/581/97 1432/582/97 +f 1414/583/3 1430/579/3 1415/584/3 +f 1413/585/103 1427/573/103 1431/586/103 +f 1429/587/97 1422/564/97 1428/575/97 +f 1424/588/97 1423/562/97 1429/587/97 +f 1426/570/97 1429/587/97 1430/581/97 +f 1430/581/97 1427/589/97 1426/570/97 +f 1415/590/94 1413/591/94 1414/592/94 +f 1415/590/94 1412/593/94 1413/591/94 +f 1421/561/94 1419/594/94 1420/595/94 +f 1416/560/94 1418/596/94 1419/594/94 +f 1434/597/104 1436/598/104 1433/599/104 +f 1438/600/105 1440/601/105 1437/602/105 +f 1441/603/106 1440/601/106 1439/604/106 +f 1444/605/107 1437/602/107 1443/606/107 +f 1443/606/104 1441/607/104 1444/608/104 +f 1445/609/108 1447/610/108 1448/611/108 +f 1450/612/109 1452/613/109 1449/614/109 +f 1445/609/110 1444/615/110 1441/616/110 +f 1454/617/105 1456/618/105 1453/619/105 +f 1434/620/111 1453/621/111 1456/622/111 +f 1456/623/110 1449/614/110 1452/613/110 +f 1435/624/107 1454/617/107 1436/598/107 +f 1457/625/1 1445/609/1 1441/626/1 +f 1458/627/3 1448/611/3 1447/610/3 +f 1459/628/3 1449/614/3 1455/629/3 +f 1460/630/1 1452/613/1 1451/631/1 +f 1440/601/105 1462/632/105 1437/602/105 +f 1453/619/105 1464/633/105 1454/617/105 +f 1443/606/104 1466/634/104 1442/635/104 +f 1433/599/1 1463/636/1 1453/621/1 +f 1443/606/3 1462/632/3 1465/637/3 +f 1442/638/1 1461/639/1 1440/601/1 +f 1436/598/104 1467/640/104 1433/599/104 +f 1436/598/3 1464/633/3 1468/641/3 +f 1469/642/112 1471/643/112 1472/644/112 +f 1470/645/3 1474/646/3 1473/647/3 +f 1475/648/105 1471/649/105 1470/645/105 +f 1472/650/113 1477/651/113 1478/652/113 +f 1479/653/114 1481/654/114 1482/655/114 +f 1482/655/115 1484/656/115 1483/657/115 +f 1485/658/116 1483/657/116 1484/656/116 +f 1485/659/117 1479/653/117 1486/660/117 +f 1475/661/118 1477/662/118 1476/663/118 +f 1477/664/119 1471/643/119 1476/665/119 +f 1474/646/120 1475/661/120 1473/647/120 +f 1490/666/105 1487/667/105 1489/668/105 +f 1493/669/104 1495/670/104 1496/671/104 +f 1493/672/121 1491/673/121 1494/674/121 +f 1494/674/122 1490/666/122 1495/670/122 +f 1495/670/3 1489/668/3 1496/671/3 +f 1488/675/123 1496/671/123 1489/668/123 +f 1493/672/1 1488/676/1 1487/677/1 +f 1498/678/104 1500/679/104 1502/680/104 +f 1512/681/105 1505/682/105 1517/683/105 +f 1520/684/105 1514/685/105 1509/686/105 +f 1511/687/104 1516/688/104 1504/689/104 +f 1526/690/124 1528/691/124 1525/692/124 +f 1530/693/125 1532/694/125 1529/695/125 +f 1533/696/126 1532/694/126 1531/697/126 +f 1536/698/127 1529/695/127 1535/699/127 +f 1535/699/124 1533/700/124 1536/701/124 +f 1537/702/128 1539/703/128 1540/704/128 +f 1542/705/129 1544/706/129 1541/707/129 +f 1537/702/130 1536/708/130 1533/709/130 +f 1546/710/125 1548/711/125 1545/712/125 +f 1526/713/126 1545/714/126 1548/715/126 +f 1548/716/130 1541/707/130 1544/706/130 +f 1527/717/127 1546/710/127 1528/691/127 +f 1549/718/1 1537/702/1 1533/719/1 +f 1550/720/3 1540/704/3 1539/703/3 +f 1551/721/3 1541/707/3 1547/722/3 +f 1552/723/1 1544/706/1 1543/724/1 +f 1532/694/125 1554/725/125 1529/695/125 +f 1545/712/125 1556/726/125 1546/710/125 +f 1535/699/124 1558/727/124 1534/728/124 +f 1525/692/1 1555/729/1 1545/714/1 +f 1535/699/3 1554/725/3 1557/730/3 +f 1534/731/1 1553/732/1 1532/694/1 +f 1528/691/124 1559/733/124 1525/692/124 +f 1528/691/3 1556/726/3 1560/734/3 +f 1561/735/131 1563/736/131 1564/737/131 +f 1565/738/3 1561/735/3 1566/739/3 +f 1567/740/125 1563/741/125 1562/742/125 +f 1564/743/132 1569/744/132 1570/745/132 +f 1572/746/133 1574/747/133 1571/748/133 +f 1574/747/134 1576/749/134 1575/750/134 +f 1578/751/135 1576/749/135 1577/752/135 +f 1577/753/136 1571/748/136 1578/754/136 +f 1567/755/137 1569/756/137 1568/757/137 +f 1569/758/138 1563/736/138 1568/759/138 +f 1566/739/139 1567/755/139 1565/738/139 +f 1582/760/125 1579/761/125 1581/762/125 +f 1585/763/124 1587/764/124 1588/765/124 +f 1585/766/140 1583/767/140 1586/768/140 +f 1583/767/141 1587/764/141 1586/768/141 +f 1587/764/3 1581/762/3 1588/765/3 +f 1584/769/142 1581/762/142 1580/770/142 +f 1585/766/1 1580/771/1 1579/772/1 +f 1590/773/124 1592/774/124 1594/775/124 +f 1604/776/125 1597/777/125 1609/778/125 +f 1612/779/125 1606/780/125 1601/781/125 +f 1603/782/124 1608/783/124 1596/784/124 +f 1618/785/33 1620/786/33 1617/787/33 +f 1622/788/143 1624/789/143 1621/790/143 +f 1625/791/144 1624/789/144 1623/792/144 +f 1628/793/145 1621/790/145 1627/794/145 +f 1627/794/33 1625/795/33 1628/796/33 +f 1629/797/146 1631/798/146 1632/799/146 +f 1634/800/147 1636/801/147 1633/802/147 +f 1629/797/28 1628/803/28 1625/804/28 +f 1638/805/143 1640/806/143 1637/807/143 +f 1618/808/144 1637/809/144 1640/810/144 +f 1640/811/28 1633/802/28 1636/801/28 +f 1619/812/145 1638/805/145 1620/786/145 +f 1641/813/1 1629/797/1 1625/814/1 +f 1642/815/3 1632/799/3 1631/798/3 +f 1643/816/3 1633/802/3 1639/817/3 +f 1644/818/1 1636/801/1 1635/819/1 +f 1624/789/143 1646/820/143 1621/790/143 +f 1637/807/143 1648/821/143 1638/805/143 +f 1627/794/33 1650/822/33 1626/823/33 +f 1617/787/1 1647/824/1 1637/809/1 +f 1627/794/3 1646/820/3 1649/825/3 +f 1626/826/1 1645/827/1 1624/789/1 +f 1620/786/33 1651/828/33 1617/787/33 +f 1620/786/3 1648/821/3 1652/829/3 +f 1654/830/148 1656/831/148 1653/832/148 +f 1657/833/3 1653/832/3 1658/834/3 +f 1659/835/143 1655/836/143 1654/830/143 +f 1656/837/149 1661/838/149 1662/839/149 +f 1663/840/150 1665/841/150 1666/842/150 +f 1666/842/151 1668/843/151 1667/844/151 +f 1670/845/152 1668/843/152 1669/846/152 +f 1669/847/153 1663/840/153 1670/848/153 +f 1659/849/154 1661/850/154 1660/851/154 +f 1660/852/155 1656/831/155 1655/853/155 +f 1658/834/156 1659/849/156 1657/833/156 +f 1674/854/143 1671/855/143 1673/856/143 +f 1677/857/33 1679/858/33 1680/859/33 +f 1677/860/157 1675/861/157 1678/862/157 +f 1675/861/158 1679/858/158 1678/862/158 +f 1679/858/3 1673/856/3 1680/859/3 +f 1676/863/159 1673/856/159 1672/864/159 +f 1677/860/1 1672/865/1 1671/866/1 +f 1682/867/33 1684/868/33 1686/869/33 +f 1696/870/143 1689/871/143 1701/872/143 +f 1704/873/143 1698/874/143 1693/875/143 +f 1695/876/33 1700/877/33 1688/878/33 +f 1710/879/110 1712/880/110 1709/881/110 +f 1714/882/160 1716/883/160 1713/884/160 +f 1717/885/161 1716/883/161 1715/886/161 +f 1720/887/162 1713/884/162 1719/888/162 +f 1719/888/110 1717/889/110 1720/890/110 +f 1721/891/163 1723/892/163 1724/893/163 +f 1726/894/164 1728/895/164 1725/896/164 +f 1721/891/105 1720/897/105 1717/898/105 +f 1730/899/160 1732/900/160 1729/901/160 +f 1710/902/165 1729/903/165 1732/904/165 +f 1732/905/105 1725/896/105 1728/895/105 +f 1711/906/162 1730/899/162 1712/880/162 +f 1733/907/1 1721/891/1 1717/908/1 +f 1734/909/3 1724/893/3 1723/892/3 +f 1735/910/3 1725/896/3 1731/911/3 +f 1736/912/1 1728/895/1 1727/913/1 +f 1716/883/160 1738/914/160 1713/884/160 +f 1729/901/160 1740/915/160 1730/899/160 +f 1719/888/110 1742/916/110 1718/917/110 +f 1709/881/1 1739/918/1 1729/903/1 +f 1719/888/3 1738/914/3 1741/919/3 +f 1718/920/1 1737/921/1 1716/883/1 +f 1712/880/110 1743/922/110 1709/881/110 +f 1712/880/3 1740/915/3 1744/923/3 +f 1745/924/166 1747/925/166 1748/926/166 +f 1749/927/3 1745/924/3 1750/928/3 +f 1751/929/160 1747/930/160 1746/931/160 +f 1748/932/167 1753/933/167 1754/934/167 +f 1755/935/168 1757/936/168 1758/937/168 +f 1758/937/169 1760/938/169 1759/939/169 +f 1762/940/170 1760/938/170 1761/941/170 +f 1761/942/171 1755/935/171 1762/943/171 +f 1751/944/172 1753/945/172 1752/946/172 +f 1753/947/173 1747/925/173 1752/948/173 +f 1750/928/174 1751/944/174 1749/927/174 +f 1766/949/160 1763/950/160 1765/951/160 +f 1769/952/110 1771/953/110 1772/954/110 +f 1769/955/175 1767/956/175 1770/957/175 +f 1770/957/176 1766/949/176 1771/953/176 +f 1771/953/3 1765/951/3 1772/954/3 +f 1768/958/177 1765/951/177 1764/959/177 +f 1769/955/1 1764/960/1 1763/961/1 +f 1774/962/110 1776/963/110 1778/964/110 +f 1788/965/160 1781/966/160 1793/967/160 +f 1796/968/160 1790/969/160 1785/970/160 +f 1787/971/110 1792/972/110 1780/973/110 +f 1802/974/130 1804/975/130 1801/976/130 +f 1806/977/178 1808/978/178 1805/979/178 +f 1809/980/179 1808/978/179 1807/981/179 +f 1812/982/180 1805/979/180 1811/983/180 +f 1811/983/130 1809/984/130 1812/985/130 +f 1813/986/181 1815/987/181 1816/988/181 +f 1818/989/182 1820/990/182 1817/991/182 +f 1813/986/125 1812/992/125 1809/993/125 +f 1822/994/178 1824/995/178 1821/996/178 +f 1802/997/179 1821/998/179 1824/999/179 +f 1824/1000/125 1817/991/125 1820/990/125 +f 1803/1001/180 1822/994/180 1804/975/180 +f 1825/1002/1 1813/986/1 1809/1003/1 +f 1826/1004/3 1816/988/3 1815/987/3 +f 1827/1005/3 1817/991/3 1823/1006/3 +f 1828/1007/1 1820/990/1 1819/1008/1 +f 1808/978/178 1830/1009/178 1805/979/178 +f 1821/996/178 1832/1010/178 1822/994/178 +f 1811/983/130 1834/1011/130 1810/1012/130 +f 1801/976/1 1831/1013/1 1821/998/1 +f 1811/983/3 1830/1009/3 1833/1014/3 +f 1810/1015/1 1829/1016/1 1808/978/1 +f 1804/975/130 1835/1017/130 1801/976/130 +f 1804/975/3 1832/1010/3 1836/1018/3 +f 1837/1019/183 1839/1020/183 1840/1021/183 +f 1841/1022/3 1837/1019/3 1842/1023/3 +f 1843/1024/178 1839/1025/178 1838/1026/178 +f 1840/1027/184 1845/1028/184 1846/1029/184 +f 1848/1030/185 1850/1031/185 1847/1032/185 +f 1850/1031/186 1852/1033/186 1851/1034/186 +f 1853/1035/187 1851/1034/187 1852/1033/187 +f 1853/1036/188 1847/1032/188 1854/1037/188 +f 1843/1038/189 1845/1039/189 1844/1040/189 +f 1845/1041/190 1839/1020/190 1844/1042/190 +f 1842/1023/191 1843/1038/191 1841/1022/191 +f 1858/1043/178 1855/1044/178 1857/1045/178 +f 1861/1046/130 1863/1047/130 1864/1048/130 +f 1861/1049/192 1859/1050/192 1862/1051/192 +f 1859/1050/193 1863/1047/193 1862/1051/193 +f 1863/1047/3 1857/1045/3 1864/1048/3 +f 1860/1052/194 1857/1045/194 1856/1053/194 +f 1861/1049/1 1856/1054/1 1855/1055/1 +f 1866/1056/130 1868/1057/130 1870/1058/130 +f 1880/1059/178 1873/1060/178 1885/1061/178 +f 1888/1062/178 1882/1063/178 1877/1064/178 +f 1879/1065/130 1884/1066/130 1872/1067/130 +f 1894/1068/28 1896/1069/28 1893/1070/28 +f 1898/1071/27 1900/1072/27 1897/1073/27 +f 1902/1074/195 1899/1075/195 1901/1076/195 +f 1904/1077/196 1897/1073/196 1903/1078/196 +f 1903/1078/28 1901/1079/28 1904/1080/28 +f 1905/1081/197 1907/1082/197 1908/1083/197 +f 1910/1084/198 1912/1085/198 1909/1086/198 +f 1905/1081/143 1904/1087/143 1901/1088/143 +f 1914/1089/27 1916/1090/27 1913/1091/27 +f 1894/1092/195 1913/1093/195 1916/1094/195 +f 1916/1095/143 1909/1086/143 1912/1085/143 +f 1895/1096/196 1914/1089/196 1896/1069/196 +f 1917/1097/1 1905/1081/1 1901/1098/1 +f 1918/1099/3 1908/1083/3 1907/1082/3 +f 1919/1100/3 1909/1086/3 1915/1101/3 +f 1920/1102/1 1912/1085/1 1911/1103/1 +f 1900/1072/27 1922/1104/27 1897/1073/27 +f 1913/1091/27 1924/1105/27 1914/1089/27 +f 1903/1078/28 1926/1106/28 1902/1107/28 +f 1893/1070/1 1923/1108/1 1913/1093/1 +f 1903/1078/3 1922/1104/3 1925/1109/3 +f 1902/1074/1 1921/1110/1 1900/1072/1 +f 1896/1069/28 1927/1111/28 1893/1070/28 +f 1896/1069/3 1924/1105/3 1928/1112/3 +f 1929/1113/199 1931/1114/199 1932/1115/199 +f 1933/1116/3 1929/1113/3 1934/1117/3 +f 1935/1118/27 1931/1119/27 1930/1120/27 +f 1932/1121/200 1937/1122/200 1938/1123/200 +f 1939/1124/201 1941/1125/201 1942/1126/201 +f 1942/1126/39 1944/1127/39 1943/1128/39 +f 1946/1129/202 1944/1127/202 1945/1130/202 +f 1945/1131/37 1939/1124/37 1946/1132/37 +f 1935/1133/203 1937/1134/203 1936/1135/203 +f 1937/1136/204 1931/1114/204 1936/1137/204 +f 1934/1117/205 1935/1133/205 1933/1116/205 +f 1950/1138/27 1947/1139/27 1949/1140/27 +f 1953/1141/28 1955/1142/28 1956/1143/28 +f 1953/1144/206 1951/1145/206 1954/1146/206 +f 1951/1145/207 1955/1142/207 1954/1146/207 +f 1955/1142/3 1949/1140/3 1956/1143/3 +f 1952/1147/208 1949/1140/208 1948/1148/208 +f 1953/1144/1 1948/1149/1 1947/1150/1 +f 1958/1151/28 1960/1152/28 1962/1153/28 +f 1972/1154/27 1965/1155/27 1977/1156/27 +f 1980/1157/27 1974/1158/27 1969/1159/27 +f 1971/1160/28 1976/1161/28 1964/1162/28 +f 1986/1163/105 1988/1164/105 1985/1165/105 +f 1990/1166/104 1992/1167/104 1989/1168/104 +f 1993/1169/209 1992/1167/209 1991/1170/209 +f 1996/1171/210 1989/1168/210 1995/1172/210 +f 1995/1172/105 1993/1173/105 1996/1174/105 +f 1997/1175/211 1999/1176/211 2000/1177/211 +f 2002/1178/212 2004/1179/212 2001/1180/212 +f 1997/1175/160 1996/1181/160 1993/1182/160 +f 2006/1183/104 2008/1184/104 2005/1185/104 +f 1986/1186/209 2005/1187/209 2008/1188/209 +f 2008/1189/160 2001/1180/160 2004/1179/160 +f 1987/1190/210 2006/1183/210 1988/1164/210 +f 2009/1191/1 1997/1175/1 1993/1192/1 +f 2010/1193/3 2000/1177/3 1999/1176/3 +f 2011/1194/3 2001/1180/3 2007/1195/3 +f 2012/1196/1 2004/1179/1 2003/1197/1 +f 1992/1167/104 2014/1198/104 1989/1168/104 +f 2005/1185/104 2016/1199/104 2006/1183/104 +f 1995/1172/105 2018/1200/105 1994/1201/105 +f 1985/1165/1 2015/1202/1 2005/1187/1 +f 1995/1172/3 2014/1198/3 2017/1203/3 +f 1994/1204/1 2013/1205/1 1992/1167/1 +f 1988/1164/105 2019/1206/105 1985/1165/105 +f 1988/1164/3 2016/1199/3 2020/1207/3 +f 2021/1208/213 2023/1209/213 2024/1210/213 +f 2025/1211/3 2021/1208/3 2026/1212/3 +f 2027/1213/104 2023/1214/104 2022/1215/104 +f 2024/1216/214 2029/1217/214 2030/1218/214 +f 2032/1219/215 2034/1220/215 2031/1221/215 +f 2034/1220/117 2036/1222/117 2035/1223/117 +f 2037/1224/216 2035/1223/216 2036/1222/216 +f 2037/1225/115 2031/1221/115 2038/1226/115 +f 2027/1227/217 2029/1228/217 2028/1229/217 +f 2029/1230/218 2023/1209/218 2028/1231/218 +f 2026/1212/219 2027/1227/219 2025/1211/219 +f 2042/1232/104 2039/1233/104 2041/1234/104 +f 2045/1235/105 2047/1236/105 2048/1237/105 +f 2045/1238/220 2043/1239/220 2046/1240/220 +f 2043/1239/221 2047/1236/221 2046/1240/221 +f 2047/1236/3 2041/1234/3 2048/1237/3 +f 2044/1241/222 2041/1234/222 2040/1242/222 +f 2045/1238/1 2040/1243/1 2039/1244/1 +f 2050/1245/105 2052/1246/105 2054/1247/105 +f 2064/1248/104 2057/1249/104 2069/1250/104 +f 2072/1251/104 2066/1252/104 2061/1253/104 +f 2063/1254/105 2068/1255/105 2056/1256/105 +f 2078/1257/125 2080/1258/125 2077/1259/125 +f 2082/1260/124 2084/1261/124 2081/1262/124 +f 2086/1263/223 2083/1264/223 2085/1265/223 +f 2088/1266/224 2081/1262/224 2087/1267/224 +f 2087/1267/125 2085/1268/125 2088/1269/125 +f 2089/1270/225 2091/1271/225 2092/1272/225 +f 2094/1273/226 2096/1274/226 2093/1275/226 +f 2089/1270/178 2088/1276/178 2085/1277/178 +f 2098/1278/124 2100/1279/124 2097/1280/124 +f 2078/1281/223 2097/1282/223 2100/1283/223 +f 2100/1284/178 2093/1275/178 2096/1274/178 +f 2079/1285/224 2098/1278/224 2080/1258/224 +f 2101/1286/1 2089/1270/1 2085/1287/1 +f 2102/1288/3 2092/1272/3 2091/1271/3 +f 2103/1289/3 2093/1275/3 2099/1290/3 +f 2104/1291/1 2096/1274/1 2095/1292/1 +f 2084/1261/124 2106/1293/124 2081/1262/124 +f 2097/1280/124 2108/1294/124 2098/1278/124 +f 2087/1267/125 2110/1295/125 2086/1296/125 +f 2077/1259/1 2107/1297/1 2097/1282/1 +f 2087/1267/3 2106/1293/3 2109/1298/3 +f 2086/1263/1 2105/1299/1 2084/1261/1 +f 2080/1258/125 2111/1300/125 2077/1259/125 +f 2080/1258/3 2108/1294/3 2112/1301/3 +f 2114/1302/227 2116/1303/227 2113/1304/227 +f 2117/1305/3 2113/1304/3 2118/1306/3 +f 2119/1307/124 2115/1308/124 2114/1302/124 +f 2116/1309/228 2121/1310/228 2122/1311/228 +f 2123/1312/229 2125/1313/229 2126/1314/229 +f 2126/1314/136 2128/1315/136 2127/1316/136 +f 2130/1317/230 2128/1315/230 2129/1318/230 +f 2129/1319/134 2123/1312/134 2130/1320/134 +f 2119/1321/231 2121/1322/231 2120/1323/231 +f 2121/1324/232 2115/1325/232 2120/1326/232 +f 2118/1306/233 2119/1321/233 2117/1305/233 +f 2134/1327/124 2131/1328/124 2133/1329/124 +f 2137/1330/125 2139/1331/125 2140/1332/125 +f 2131/1333/234 2138/1334/234 2137/1335/234 +f 2138/1334/235 2134/1327/235 2139/1331/235 +f 2139/1331/3 2133/1329/3 2140/1332/3 +f 2136/1336/236 2133/1329/236 2132/1337/236 +f 2137/1335/1 2132/1338/1 2131/1333/1 +f 2142/1339/125 2144/1340/125 2146/1341/125 +f 2156/1342/124 2149/1343/124 2161/1344/124 +f 2164/1345/124 2158/1346/124 2153/1347/124 +f 2155/1348/125 2160/1349/125 2148/1350/125 +f 2170/1351/143 2172/1352/143 2169/1353/143 +f 2174/1354/33 2176/1355/33 2173/1356/33 +f 2177/1357/237 2176/1355/237 2175/1358/237 +f 2180/1359/238 2173/1356/238 2179/1360/238 +f 2179/1360/143 2177/1361/143 2180/1362/143 +f 2181/1363/239 2183/1364/239 2184/1365/239 +f 2186/1366/240 2188/1367/240 2185/1368/240 +f 2181/1363/27 2180/1369/27 2177/1370/27 +f 2190/1371/33 2192/1372/33 2189/1373/33 +f 2170/1374/241 2189/1375/241 2192/1376/241 +f 2192/1377/27 2185/1368/27 2188/1367/27 +f 2171/1378/238 2190/1371/238 2172/1352/238 +f 2193/1379/1 2181/1363/1 2177/1380/1 +f 2194/1381/3 2184/1365/3 2183/1364/3 +f 2195/1382/3 2185/1368/3 2191/1383/3 +f 2196/1384/1 2188/1367/1 2187/1385/1 +f 2176/1355/33 2198/1386/33 2173/1356/33 +f 2189/1373/33 2200/1387/33 2190/1371/33 +f 2179/1360/143 2202/1388/143 2178/1389/143 +f 2169/1353/1 2199/1390/1 2189/1375/1 +f 2179/1360/3 2198/1386/3 2201/1391/3 +f 2178/1392/1 2197/1393/1 2176/1355/1 +f 2172/1352/143 2203/1394/143 2169/1353/143 +f 2172/1352/3 2200/1387/3 2204/1395/3 +f 2205/1396/242 2207/1397/242 2208/1398/242 +f 2209/1399/3 2205/1396/3 2210/1400/3 +f 2211/1401/33 2207/1402/33 2206/1403/33 +f 2208/1404/243 2213/1405/243 2214/1406/243 +f 2215/1407/244 2217/1408/244 2218/1409/244 +f 2218/1409/153 2220/1410/153 2219/1411/153 +f 2221/1412/245 2219/1411/245 2220/1410/245 +f 2221/1413/151 2215/1407/151 2222/1414/151 +f 2211/1415/246 2213/1416/246 2212/1417/246 +f 2213/1418/247 2207/1397/247 2212/1419/247 +f 2210/1400/248 2211/1415/248 2209/1399/248 +f 2226/1420/33 2223/1421/33 2225/1422/33 +f 2229/1423/143 2231/1424/143 2232/1425/143 +f 2229/1426/249 2227/1427/249 2230/1428/249 +f 2230/1428/250 2226/1420/250 2231/1424/250 +f 2231/1424/3 2225/1422/3 2232/1425/3 +f 2228/1429/251 2225/1422/251 2224/1430/251 +f 2229/1426/1 2224/1431/1 2223/1432/1 +f 2234/1433/143 2236/1434/143 2238/1435/143 +f 2248/1436/33 2241/1437/33 2253/1438/33 +f 2256/1439/33 2250/1440/33 2245/1441/33 +f 2247/1442/143 2252/1443/143 2240/1444/143 +f 2262/1445/160 2264/1446/160 2261/1447/160 +f 2266/1448/110 2268/1449/110 2265/1450/110 +f 2269/1451/252 2268/1449/252 2267/1452/252 +f 2272/1453/253 2265/1450/253 2271/1454/253 +f 2271/1454/160 2269/1455/160 2272/1456/160 +f 2273/1457/254 2275/1458/254 2276/1459/254 +f 2278/1460/255 2280/1461/255 2277/1462/255 +f 2273/1457/104 2272/1463/104 2269/1464/104 +f 2281/1465/110 2283/1466/110 2284/1467/110 +f 2262/1468/252 2281/1469/252 2284/1470/252 +f 2284/1471/104 2277/1462/104 2280/1461/104 +f 2263/1472/253 2282/1473/253 2264/1446/253 +f 2285/1474/1 2273/1457/1 2269/1475/1 +f 2286/1476/3 2276/1459/3 2275/1458/3 +f 2287/1477/3 2277/1462/3 2283/1478/3 +f 2288/1479/1 2280/1461/1 2279/1480/1 +f 2268/1449/110 2290/1481/110 2265/1450/110 +f 2281/1465/110 2292/1482/110 2282/1473/110 +f 2271/1454/160 2294/1483/160 2270/1484/160 +f 2261/1447/1 2291/1485/1 2281/1469/1 +f 2271/1454/3 2290/1481/3 2293/1486/3 +f 2270/1487/1 2289/1488/1 2268/1449/1 +f 2264/1446/160 2295/1489/160 2261/1447/160 +f 2264/1446/3 2292/1482/3 2296/1490/3 +f 2297/1491/256 2299/1492/256 2300/1493/256 +f 2301/1494/3 2297/1491/3 2302/1495/3 +f 2303/1496/110 2299/1497/110 2298/1498/110 +f 2300/1499/257 2305/1500/257 2306/1501/257 +f 2308/1502/258 2310/1503/258 2307/1504/258 +f 2310/1503/171 2312/1505/171 2311/1506/171 +f 2314/1507/259 2312/1505/259 2313/1508/259 +f 2313/1509/169 2307/1504/169 2314/1510/169 +f 2303/1511/260 2305/1512/260 2304/1513/260 +f 2305/1514/261 2299/1492/261 2304/1515/261 +f 2302/1495/262 2303/1511/262 2301/1494/262 +f 2318/1516/110 2315/1517/110 2317/1518/110 +f 2321/1519/160 2323/1520/160 2324/1521/160 +f 2321/1522/263 2319/1523/263 2322/1524/263 +f 2322/1524/264 2318/1516/264 2323/1520/264 +f 2323/1520/3 2317/1518/3 2324/1521/3 +f 2320/1525/265 2317/1518/265 2316/1526/265 +f 2321/1522/1 2316/1527/1 2315/1528/1 +f 2326/1529/160 2328/1530/160 2330/1531/160 +f 2340/1532/110 2333/1533/110 2345/1534/110 +f 2348/1535/110 2342/1536/110 2337/1537/110 +f 2339/1538/160 2344/1539/160 2332/1540/160 +f 2354/1541/178 2356/1542/178 2353/1543/178 +f 2358/1544/130 2360/1545/130 2357/1546/130 +f 2361/1547/266 2360/1545/266 2359/1548/266 +f 2363/1549/267 2358/1550/267 2357/1546/267 +f 2363/1549/178 2361/1551/178 2364/1552/178 +f 2365/1553/268 2367/1554/268 2368/1555/268 +f 2370/1556/269 2372/1557/269 2369/1558/269 +f 2365/1553/124 2364/1559/124 2361/1560/124 +f 2373/1561/130 2375/1562/130 2376/1563/130 +f 2354/1564/266 2373/1565/266 2376/1566/266 +f 2376/1567/124 2369/1558/124 2372/1557/124 +f 2355/1568/267 2374/1569/267 2356/1542/267 +f 2377/1570/1 2365/1553/1 2361/1571/1 +f 2378/1572/3 2368/1555/3 2367/1554/3 +f 2379/1573/3 2369/1558/3 2375/1574/3 +f 2380/1575/1 2372/1557/1 2371/1576/1 +f 2360/1545/130 2382/1577/130 2357/1546/130 +f 2373/1561/130 2384/1578/130 2374/1569/130 +f 2363/1549/178 2386/1579/178 2362/1580/178 +f 2353/1543/1 2383/1581/1 2373/1565/1 +f 2363/1549/3 2382/1577/3 2385/1582/3 +f 2362/1583/1 2381/1584/1 2360/1545/1 +f 2356/1542/178 2387/1585/178 2353/1543/178 +f 2356/1542/3 2384/1578/3 2388/1586/3 +f 2390/1587/270 2392/1588/270 2389/1589/270 +f 2393/1590/3 2389/1589/3 2394/1591/3 +f 2395/1592/130 2391/1593/130 2390/1587/130 +f 2392/1594/271 2397/1595/271 2398/1596/271 +f 2400/1597/272 2402/1598/272 2399/1599/272 +f 2402/1598/188 2404/1600/188 2403/1601/188 +f 2406/1602/273 2404/1600/273 2405/1603/273 +f 2405/1604/186 2399/1599/186 2406/1605/186 +f 2395/1606/274 2397/1607/274 2396/1608/274 +f 2397/1609/275 2391/1610/275 2396/1611/275 +f 2394/1591/276 2395/1606/276 2393/1590/276 +f 2410/1612/130 2407/1613/130 2409/1614/130 +f 2413/1615/178 2415/1616/178 2416/1617/178 +f 2413/1618/277 2411/1619/277 2414/1620/277 +f 2411/1619/278 2415/1616/278 2414/1620/278 +f 2415/1616/3 2409/1614/3 2416/1617/3 +f 2412/1621/279 2409/1614/279 2408/1622/279 +f 2412/1623/1 2407/1624/1 2413/1618/1 +f 2418/1625/178 2420/1626/178 2422/1627/178 +f 2432/1628/130 2425/1629/130 2437/1630/130 +f 2440/1631/130 2434/1632/130 2429/1633/130 +f 2431/1634/178 2436/1635/178 2424/1636/178 +f 48/3/1 43/1637/1 46/1/1 +f 43/1637/1 44/1638/1 45/13/1 +f 46/1/1 43/1637/1 45/13/1 +f 47/4/2 49/32/2 50/5/2 +f 54/9/3 50/1639/3 52/7/3 +f 50/1639/3 49/1640/3 51/33/3 +f 52/7/3 50/1639/3 51/33/3 +f 54/10/4 53/1641/4 44/11/4 +f 44/11/5 53/1641/5 52/7/5 +f 56/14/6 57/17/6 58/15/6 +f 57/17/7 59/20/7 60/18/7 +f 62/19/8 60/18/8 59/20/8 +f 58/15/3 63/28/3 64/22/3 +f 64/22/9 63/28/9 65/23/9 +f 67/25/3 63/28/3 58/15/3 +f 60/18/3 62/19/3 68/26/3 +f 68/26/10 69/1642/10 70/27/10 +f 67/25/11 70/27/11 65/23/11 +f 57/17/1 65/1643/1 70/29/1 +f 59/20/1 70/29/1 69/30/1 +f 66/31/1 65/1643/1 57/17/1 +f 46/1/12 51/33/12 49/32/12 +f 45/13/13 52/7/13 51/33/13 +f 214/34/1 215/1644/1 216/35/1 +f 223/37/1 237/47/1 238/38/1 +f 224/40/1 239/1645/1 240/41/1 +f 225/43/1 233/52/1 215/44/1 +f 223/37/1 226/1646/1 241/46/1 +f 227/48/1 242/57/1 239/49/1 +f 228/51/1 234/1647/1 233/52/1 +f 226/53/1 229/62/1 243/54/1 +f 230/56/1 244/1648/1 242/57/1 +f 220/58/1 245/77/1 234/59/1 +f 231/61/1 246/1649/1 243/54/1 +f 230/63/1 232/69/1 247/64/1 +f 196/66/1 248/72/1 246/67/1 +f 232/69/1 218/1650/1 249/70/1 +f 195/71/1 250/1651/1 248/72/1 +f 217/73/1 251/81/1 249/74/1 +f 220/58/1 219/1652/1 252/76/1 +f 195/78/1 213/36/1 216/35/1 +f 221/80/1 238/1653/1 251/81/1 +f 219/82/1 222/42/1 240/41/1 +f 235/86/1 253/1654/1 254/1655/1 +f 254/1655/1 255/1656/1 256/1657/1 +f 256/1657/1 257/1658/1 260/1659/1 +f 257/1658/1 258/1660/1 260/1659/1 +f 258/1660/1 259/1661/1 260/1659/1 +f 260/1659/1 261/1662/1 262/1663/1 +f 262/1663/1 263/1664/1 264/84/1 +f 264/84/1 265/1665/1 266/1666/1 +f 266/1666/1 267/1667/1 264/84/1 +f 267/1667/1 268/85/1 264/84/1 +f 268/85/1 269/1668/1 235/86/1 +f 269/1668/1 270/1669/1 235/86/1 +f 270/1669/1 236/1670/1 235/86/1 +f 235/86/1 254/1655/1 256/1657/1 +f 260/1659/1 262/1663/1 264/84/1 +f 235/86/1 256/1657/1 260/1659/1 +f 260/1659/1 264/84/1 235/86/1 +f 340/1671/1 335/89/1 339/88/1 +f 335/89/1 336/1672/1 338/87/1 +f 336/1672/1 337/1673/1 338/87/1 +f 336/90/14 341/1674/14 342/91/14 +f 342/1675/3 341/95/3 346/94/3 +f 341/95/3 343/1676/3 345/93/3 +f 343/1676/3 344/1677/3 345/93/3 +f 335/96/15 340/99/15 344/97/15 +f 339/88/16 345/93/16 344/97/16 +f 348/100/280 349/104/280 350/101/280 +f 348/100/18 351/110/18 352/103/18 +f 352/103/19 351/110/19 354/105/19 +f 355/107/3 356/109/3 348/100/3 +f 355/107/20 357/1678/20 358/108/20 +f 351/110/3 348/100/3 356/109/3 +f 351/110/3 359/111/3 360/112/3 +f 361/113/21 362/1679/21 360/112/21 +f 356/109/22 358/108/22 361/113/22 +f 361/114/1 358/1680/1 349/104/1 +f 352/103/1 353/106/1 362/115/1 +f 349/104/1 358/1680/1 357/116/1 +f 342/91/23 346/94/23 338/87/23 +f 346/94/24 345/93/24 339/88/24 +f 379/117/25 385/121/25 386/118/25 +f 379/117/25 377/122/25 393/120/25 +f 377/122/25 375/1681/25 394/123/25 +f 375/124/25 373/128/25 395/125/25 +f 371/127/25 396/130/25 395/125/25 +f 371/127/25 369/136/25 397/129/25 +f 364/131/25 387/139/25 398/132/25 +f 364/131/25 390/133/25 389/134/25 +f 369/136/25 367/140/25 399/137/25 +f 383/138/25 400/141/25 398/132/25 +f 367/140/25 365/135/25 389/134/25 +f 381/119/25 386/118/25 400/141/25 +f 410/143/25 392/1682/25 402/144/25 +f 392/1682/25 391/1683/25 402/144/25 +f 391/1683/25 401/1684/25 402/144/25 +f 402/144/25 403/1685/25 404/1686/25 +f 404/1686/25 405/1687/25 402/144/25 +f 405/1687/25 406/1688/25 402/144/25 +f 406/1688/25 407/1689/25 408/142/25 +f 408/142/25 409/1690/25 410/143/25 +f 406/1688/25 408/142/25 402/144/25 +f 430/145/26 433/1691/26 434/146/26 +f 434/146/26 441/1692/26 426/148/26 +f 426/148/26 441/1692/26 442/149/26 +f 442/151/26 443/154/26 422/152/26 +f 443/154/26 444/1693/26 420/155/26 +f 420/155/26 444/1693/26 445/156/26 +f 440/158/26 446/1694/26 436/159/26 +f 413/161/26 437/165/26 440/158/26 +f 445/156/26 447/1695/26 416/162/26 +f 436/159/26 446/1694/26 448/163/26 +f 416/162/26 447/1695/26 437/165/26 +f 448/163/26 433/1691/26 430/145/26 +f 439/168/26 438/1696/26 449/1697/26 +f 449/1697/26 450/1698/26 439/168/26 +f 450/1698/26 451/166/26 439/168/26 +f 451/166/26 452/1699/26 455/167/26 +f 452/1699/26 453/1700/26 455/167/26 +f 453/1700/26 454/1701/26 455/167/26 +f 455/167/26 456/1702/26 439/168/26 +f 456/1702/26 457/1703/26 439/168/26 +f 457/1703/26 458/1704/26 439/168/26 +f 460/169/27 461/1705/27 462/170/27 +f 464/172/28 465/1706/28 466/173/28 +f 467/175/29 468/210/29 466/173/29 +f 470/177/30 464/1707/30 463/174/30 +f 469/178/27 468/207/27 467/179/27 +f 471/181/31 472/1708/31 473/182/31 +f 476/184/32 477/203/32 478/185/32 +f 471/181/33 474/183/33 470/187/33 +f 480/189/28 481/1709/28 482/190/28 +f 460/192/29 459/171/29 479/193/29 +f 482/195/33 481/1710/33 475/186/33 +f 461/196/30 481/1711/30 480/189/30 +f 483/197/1 472/1708/1 471/181/1 +f 484/199/3 470/1712/3 474/183/3 +f 485/200/3 476/184/3 475/186/3 +f 486/202/1 482/1713/1 478/185/1 +f 466/173/28 487/211/28 488/204/28 +f 479/191/28 489/1714/28 490/205/28 +f 469/178/27 491/209/27 492/206/27 +f 459/171/1 493/212/1 489/208/1 +f 469/178/3 463/174/3 488/204/3 +f 468/210/1 492/1715/1 487/211/1 +f 462/170/27 494/213/27 493/212/27 +f 462/170/3 480/189/3 490/205/3 +f 496/214/34 497/237/34 498/215/34 +f 496/214/3 495/216/3 500/217/3 +f 496/214/28 499/218/28 501/219/28 +f 501/219/28 502/1716/28 497/220/28 +f 504/223/27 500/217/27 495/216/27 +f 495/216/27 498/221/27 504/223/27 +f 505/224/36 506/1717/36 507/225/36 +f 508/226/37 507/225/37 510/227/37 +f 512/229/281 509/228/281 510/227/281 +f 511/231/39 506/1717/39 505/224/39 +f 501/233/282 504/1718/282 503/234/282 +f 503/236/41 498/215/41 497/237/41 +f 500/217/283 504/1718/283 501/233/283 +f 517/1719/28 513/240/28 516/239/28 +f 513/240/28 514/1720/28 515/241/28 +f 522/244/27 518/1721/27 519/242/27 +f 519/242/27 520/1722/27 521/243/27 +f 519/245/43 513/251/43 517/246/43 +f 517/246/44 516/239/44 521/243/44 +f 521/243/3 516/239/3 515/241/3 +f 518/248/45 522/244/45 515/241/45 +f 519/245/1 518/1723/1 514/250/1 +f 529/1724/27 523/1725/27 524/252/27 +f 524/252/27 525/1726/27 526/253/27 +f 526/253/27 527/1727/27 528/254/27 +f 528/254/27 529/1724/27 524/252/27 +f 548/1728/28 539/1729/28 538/255/28 +f 538/255/28 532/1730/28 531/256/28 +f 531/256/28 544/1731/28 543/257/28 +f 543/257/28 548/1728/28 538/255/28 +f 546/258/28 547/1732/28 540/259/28 +f 540/259/28 541/1733/28 535/260/28 +f 535/260/28 534/1734/28 549/1735/28 +f 549/1735/28 546/258/28 535/260/28 +f 530/263/27 533/1736/27 537/261/27 +f 537/261/27 536/1737/27 550/1738/27 +f 550/1738/27 542/262/27 537/261/27 +f 542/262/27 545/1739/27 530/263/27 +f 552/264/46 553/1740/46 554/265/46 +f 552/267/47 551/1741/47 555/268/47 +f 556/270/48 555/1742/48 557/271/48 +f 557/273/49 559/1743/49 560/274/49 +f 560/276/50 559/1744/50 561/277/50 +f 561/279/284 563/1745/284 564/280/284 +f 564/282/52 563/1746/52 565/283/52 +f 565/285/53 567/1747/53 568/286/53 +f 567/288/54 569/1748/54 570/289/54 +f 570/291/55 569/1749/55 571/292/55 +f 571/294/56 573/1750/56 574/295/56 +f 574/297/285 573/1751/285 575/298/285 +f 553/300/58 576/1752/58 575/301/58 +f 586/304/59 589/1753/59 592/1754/59 +f 592/1754/59 581/1755/59 586/304/59 +f 581/1755/59 584/305/59 586/304/59 +f 584/305/59 577/1756/59 580/1757/59 +f 580/1757/59 587/303/59 584/305/59 +f 612/306/60 611/1758/60 610/307/60 +f 602/310/61 605/1759/61 608/1760/61 +f 608/1760/61 597/1761/61 602/310/61 +f 597/1761/61 600/311/61 602/310/61 +f 600/311/61 593/1762/61 596/1763/61 +f 596/1763/61 603/309/61 600/311/61 +f 622/313/59 625/1764/59 628/1765/59 +f 628/1765/59 617/1766/59 622/313/59 +f 617/1766/59 620/314/59 622/313/59 +f 620/314/59 613/1767/59 616/1768/59 +f 616/1768/59 623/312/59 620/314/59 +f 648/315/60 647/1769/60 646/316/60 +f 638/319/61 641/1770/61 644/1771/61 +f 644/1771/61 633/1772/61 638/319/61 +f 633/1772/61 636/320/61 638/319/61 +f 636/320/61 629/1773/61 632/1774/61 +f 632/1774/61 639/318/61 636/320/61 +f 658/322/59 661/1775/59 664/1776/59 +f 664/1776/59 653/1777/59 658/322/59 +f 653/1777/59 656/323/59 658/322/59 +f 656/323/59 649/1778/59 652/1779/59 +f 652/1779/59 659/321/59 656/323/59 +f 682/324/286 683/1780/286 684/325/286 +f 674/328/61 677/1781/61 680/1782/61 +f 680/1782/61 669/1783/61 674/328/61 +f 669/1783/61 672/329/61 674/328/61 +f 672/329/61 665/1784/61 668/1785/61 +f 668/1785/61 675/327/61 672/329/61 +f 700/331/62 697/1786/62 696/332/62 +f 696/332/62 695/1787/62 690/1788/62 +f 695/1787/62 686/1789/62 690/1788/62 +f 686/1789/62 685/1790/62 690/1788/62 +f 690/1788/62 689/330/62 696/332/62 +f 718/333/65 719/1791/65 720/334/65 +f 716/337/64 713/1792/64 712/338/64 +f 712/338/64 711/1793/64 706/1794/64 +f 711/1793/64 702/1795/64 706/1794/64 +f 702/1795/64 701/1796/64 706/1794/64 +f 706/1794/64 705/336/64 712/338/64 +f 736/340/62 733/1797/62 732/341/62 +f 732/341/62 731/1798/62 726/1799/62 +f 731/1798/62 722/1800/62 726/1799/62 +f 722/1800/62 721/1801/62 726/1799/62 +f 726/1799/62 725/339/62 732/341/62 +f 756/342/63 755/1802/63 754/343/63 +f 752/346/64 749/1803/64 748/347/64 +f 748/347/64 747/1804/64 742/1805/64 +f 747/1804/64 738/1806/64 742/1805/64 +f 738/1806/64 737/1807/64 742/1805/64 +f 742/1805/64 741/345/64 748/347/64 +f 772/349/62 769/1808/62 768/350/62 +f 768/350/62 767/1809/62 762/1810/62 +f 767/1809/62 758/1811/62 762/1810/62 +f 758/1811/62 757/1812/62 762/1810/62 +f 762/1810/62 761/348/62 768/350/62 +f 790/351/63 791/1813/63 792/352/63 +f 788/355/64 785/1814/64 784/356/64 +f 784/356/64 783/1815/64 778/1816/64 +f 783/1815/64 774/1817/64 778/1816/64 +f 774/1817/64 773/1818/64 778/1816/64 +f 778/1816/64 777/354/64 784/356/64 +f 793/357/61 797/407/61 798/358/61 +f 805/360/3 801/367/3 800/361/3 +f 803/363/66 802/1819/66 807/364/66 +f 807/366/67 802/1820/67 801/367/67 +f 808/368/68 793/1821/68 803/363/68 +f 793/369/1 808/368/1 809/370/1 +f 810/372/1 799/1822/1 798/373/1 +f 811/374/69 798/1823/69 797/375/69 +f 796/380/3 814/379/3 812/376/3 +f 795/382/287 794/371/287 809/370/287 +f 941/384/71 942/1824/71 943/385/71 +f 948/387/62 949/391/62 950/388/62 +f 954/390/72 950/388/72 949/391/72 +f 955/393/73 956/396/73 944/386/73 +f 946/394/74 945/1825/74 954/390/74 +f 951/395/75 952/1826/75 956/396/75 +f 946/397/76 953/392/76 949/391/76 +f 947/399/77 950/388/77 954/390/77 +f 941/401/78 944/386/78 956/396/78 +f 942/403/59 951/1827/59 955/393/59 +f 811/404/64 805/360/64 804/362/64 +f 806/405/64 807/1828/64 805/360/64 +f 808/368/64 806/405/64 811/404/64 +f 812/378/64 813/377/64 809/406/64 +f 797/407/61 793/357/61 794/410/61 +f 803/359/61 798/358/61 801/411/61 +f 798/358/61 799/1829/61 800/413/61 +f 966/415/79 969/1830/79 972/1831/79 +f 972/1831/79 961/1832/79 966/415/79 +f 961/1832/79 964/416/79 966/415/79 +f 964/416/79 957/1833/79 960/1834/79 +f 960/1834/79 967/414/79 964/416/79 +f 992/417/80 991/1835/80 990/418/80 +f 982/421/81 985/1836/81 988/1837/81 +f 988/1837/81 977/1838/81 982/421/81 +f 977/1838/81 980/422/81 982/421/81 +f 980/422/81 973/1839/81 976/1840/81 +f 976/1840/81 983/420/81 980/422/81 +f 1002/424/288 1005/1841/288 1008/1842/288 +f 1008/1842/79 997/1843/79 1002/424/79 +f 997/1843/79 1000/425/79 1002/424/79 +f 1000/425/79 993/1844/79 996/1845/79 +f 996/1845/79 1003/423/79 1000/425/79 +f 1028/426/80 1027/1846/80 1026/427/80 +f 1018/430/81 1021/1847/81 1024/1848/81 +f 1024/1848/81 1013/1849/81 1018/430/81 +f 1013/1849/81 1016/431/81 1018/430/81 +f 1016/431/81 1009/1850/81 1012/1851/81 +f 1012/1851/81 1019/429/81 1016/431/81 +f 1038/433/79 1041/1852/79 1044/1853/79 +f 1044/1853/79 1033/1854/79 1038/433/79 +f 1033/1854/79 1036/434/79 1038/433/79 +f 1036/434/79 1029/1855/79 1032/1856/79 +f 1032/1856/79 1039/432/79 1036/434/79 +f 1062/435/80 1063/1857/80 1064/436/80 +f 1054/439/81 1057/1858/81 1060/1859/81 +f 1060/1859/81 1049/1860/81 1054/439/81 +f 1049/1860/81 1052/440/81 1054/439/81 +f 1052/440/81 1045/1861/81 1048/1862/81 +f 1048/1862/81 1055/438/81 1052/440/81 +f 1080/442/85 1077/1863/85 1076/443/85 +f 1076/443/85 1075/1864/85 1070/1865/85 +f 1075/1864/85 1066/1866/85 1070/1865/85 +f 1066/1866/85 1065/1867/85 1070/1865/85 +f 1070/1865/85 1069/441/85 1076/443/85 +f 1097/444/86 1098/1868/86 1099/445/86 +f 1096/448/84 1093/1869/84 1092/449/84 +f 1092/449/84 1091/1870/84 1086/1871/84 +f 1091/1870/84 1082/1872/84 1086/1871/84 +f 1082/1872/84 1081/1873/84 1086/1871/84 +f 1086/1871/84 1085/447/84 1092/449/84 +f 1116/451/85 1113/1874/85 1112/452/85 +f 1112/452/85 1111/1875/85 1106/1876/85 +f 1111/1875/85 1102/1877/85 1106/1876/85 +f 1102/1877/85 1101/1878/85 1106/1876/85 +f 1106/1876/85 1105/450/85 1112/452/85 +f 1136/453/83 1135/1879/83 1134/454/83 +f 1132/457/84 1129/1880/84 1128/458/84 +f 1128/458/84 1127/1881/84 1122/1882/84 +f 1127/1881/84 1118/1883/84 1122/1882/84 +f 1118/1883/84 1117/1884/84 1122/1882/84 +f 1122/1882/84 1121/456/84 1128/458/84 +f 1152/460/85 1149/1885/85 1148/461/85 +f 1148/461/85 1147/1886/85 1142/1887/85 +f 1147/1886/85 1138/1888/85 1142/1887/85 +f 1138/1888/85 1137/1889/85 1142/1887/85 +f 1142/1887/85 1141/459/85 1148/461/85 +f 1170/462/83 1171/1890/83 1172/463/83 +f 1168/466/84 1165/1891/84 1164/467/84 +f 1164/467/84 1163/1892/84 1158/1893/84 +f 1163/1892/84 1154/1894/84 1158/1893/84 +f 1154/1894/84 1153/1895/84 1158/1893/84 +f 1158/1893/84 1157/465/84 1164/467/84 +f 1173/468/81 1177/498/81 1178/469/81 +f 1185/471/3 1181/478/3 1180/472/3 +f 1186/474/87 1183/480/87 1182/475/87 +f 1187/477/88 1182/1896/88 1181/478/88 +f 1188/479/89 1173/1897/89 1183/480/89 +f 1174/481/1 1173/1898/1 1188/479/1 +f 1190/483/1 1179/1899/1 1178/484/1 +f 1191/485/90 1178/1900/90 1177/486/90 +f 1176/491/3 1194/490/3 1192/487/3 +f 1175/493/91 1174/481/91 1189/482/91 +f 1191/495/84 1185/471/84 1184/473/84 +f 1186/496/84 1187/1901/84 1185/471/84 +f 1188/479/84 1186/496/84 1191/495/84 +f 1192/489/84 1193/488/84 1189/497/84 +f 1177/498/81 1173/468/81 1174/501/81 +f 1183/470/81 1178/469/81 1181/502/81 +f 1178/469/81 1179/1902/81 1180/504/81 +f 1204/506/92 1207/1903/92 1210/1904/92 +f 1210/1904/92 1199/1905/92 1204/506/92 +f 1199/1905/92 1202/507/92 1204/506/92 +f 1202/507/92 1195/1906/92 1198/1907/92 +f 1198/1907/92 1205/505/92 1202/507/92 +f 1230/508/289 1229/1908/289 1228/509/289 +f 1220/512/94 1223/1909/94 1226/1910/94 +f 1226/1910/94 1215/1911/94 1220/512/94 +f 1215/1911/94 1218/513/94 1220/512/94 +f 1218/513/94 1211/1912/94 1214/1913/94 +f 1214/1913/94 1221/511/94 1218/513/94 +f 1240/515/92 1243/1914/92 1246/1915/92 +f 1246/1915/92 1235/1916/92 1240/515/92 +f 1235/1916/92 1238/516/92 1240/515/92 +f 1238/516/92 1231/1917/92 1234/1918/92 +f 1234/1918/92 1241/514/92 1238/516/92 +f 1266/517/93 1265/1919/93 1264/518/93 +f 1256/521/94 1259/1920/94 1262/1921/94 +f 1262/1921/94 1251/1922/94 1256/521/94 +f 1251/1922/94 1254/522/94 1256/521/94 +f 1254/522/94 1247/1923/94 1250/1924/94 +f 1250/1924/94 1257/520/94 1254/522/94 +f 1276/524/92 1279/1925/92 1282/1926/92 +f 1282/1926/92 1271/1927/92 1276/524/92 +f 1271/1927/92 1274/525/92 1276/524/92 +f 1274/525/92 1267/1928/92 1270/1929/92 +f 1270/1929/92 1277/523/92 1274/525/92 +f 1300/526/289 1301/1930/289 1302/527/289 +f 1292/530/94 1295/1931/94 1298/1932/94 +f 1298/1932/94 1287/1933/94 1292/530/94 +f 1287/1933/94 1290/531/94 1292/530/94 +f 1290/531/94 1283/1934/94 1286/1935/94 +f 1286/1935/94 1293/529/94 1290/531/94 +f 1318/533/98 1315/1936/98 1314/534/98 +f 1314/534/98 1313/1937/98 1308/1938/98 +f 1313/1937/98 1304/1939/98 1308/1938/98 +f 1304/1939/98 1303/1940/98 1308/1938/98 +f 1308/1938/98 1307/532/98 1314/534/98 +f 1336/535/96 1337/1941/96 1338/536/96 +f 1334/539/97 1331/1942/97 1330/540/97 +f 1330/540/97 1329/1943/97 1324/1944/97 +f 1329/1943/97 1320/1945/97 1324/1944/97 +f 1320/1945/97 1319/1946/97 1324/1944/97 +f 1324/1944/97 1323/538/97 1330/540/97 +f 1354/542/98 1351/1947/98 1350/543/98 +f 1350/543/98 1349/1948/98 1344/1949/98 +f 1349/1948/98 1340/1950/98 1344/1949/98 +f 1340/1950/98 1339/1951/98 1344/1949/98 +f 1344/1949/98 1343/541/98 1350/543/98 +f 1374/544/96 1373/1952/96 1372/545/96 +f 1370/548/97 1367/1953/97 1366/549/97 +f 1366/549/97 1365/1954/97 1360/1955/97 +f 1365/1954/97 1356/1956/97 1360/1955/97 +f 1356/1956/97 1355/1957/97 1360/1955/97 +f 1360/1955/97 1359/547/97 1366/549/97 +f 1390/551/95 1387/1958/95 1386/552/95 +f 1386/552/98 1385/1959/98 1380/1960/98 +f 1385/1959/98 1376/1961/98 1380/1960/98 +f 1376/1961/95 1375/1962/95 1380/1960/95 +f 1380/1960/98 1379/550/98 1386/552/98 +f 1408/553/96 1409/1963/96 1410/554/96 +f 1406/557/97 1403/1964/97 1402/558/97 +f 1402/558/97 1401/1965/97 1396/1966/97 +f 1401/1965/97 1392/1967/97 1396/1966/97 +f 1392/1967/97 1391/1968/97 1396/1966/97 +f 1396/1966/97 1395/556/97 1402/558/97 +f 1411/559/94 1415/590/94 1416/560/94 +f 1423/562/3 1419/569/3 1418/563/3 +f 1424/565/99 1421/571/99 1420/566/99 +f 1425/568/100 1420/1969/100 1419/569/100 +f 1426/570/101 1411/1970/101 1421/571/101 +f 1411/572/1 1426/570/1 1427/573/1 +f 1428/575/1 1417/1971/1 1416/576/1 +f 1429/577/102 1416/1972/102 1415/578/102 +f 1414/583/3 1432/582/3 1430/579/3 +f 1413/585/103 1412/574/103 1427/573/103 +f 1429/587/97 1423/562/97 1422/564/97 +f 1424/588/97 1425/1973/97 1423/562/97 +f 1426/570/97 1424/588/97 1429/587/97 +f 1430/581/97 1431/580/97 1427/589/97 +f 1415/590/94 1411/559/94 1412/593/94 +f 1421/561/94 1416/560/94 1419/594/94 +f 1416/560/94 1417/1974/94 1418/596/94 +f 1434/597/104 1435/1975/104 1436/598/104 +f 1438/600/105 1439/1976/105 1440/601/105 +f 1441/603/106 1442/638/106 1440/601/106 +f 1444/605/290 1438/1977/290 1437/602/290 +f 1443/606/104 1442/635/104 1441/607/104 +f 1445/609/108 1446/1978/108 1447/610/108 +f 1450/612/291 1451/631/291 1452/613/291 +f 1445/609/110 1448/611/110 1444/615/110 +f 1454/617/105 1455/1979/105 1456/618/105 +f 1434/620/111 1433/599/111 1453/621/111 +f 1456/623/110 1455/1980/110 1449/614/110 +f 1435/624/107 1455/1981/107 1454/617/107 +f 1457/625/1 1446/1978/1 1445/609/1 +f 1458/627/3 1444/1982/3 1448/611/3 +f 1459/628/3 1450/612/3 1449/614/3 +f 1460/630/1 1456/1983/1 1452/613/1 +f 1440/601/105 1461/639/105 1462/632/105 +f 1453/619/105 1463/1984/105 1464/633/105 +f 1443/606/104 1465/637/104 1466/634/104 +f 1433/599/1 1467/640/1 1463/636/1 +f 1443/606/3 1437/602/3 1462/632/3 +f 1442/638/1 1466/1985/1 1461/639/1 +f 1436/598/104 1468/641/104 1467/640/104 +f 1436/598/3 1454/617/3 1464/633/3 +f 1469/642/112 1470/645/112 1471/643/112 +f 1470/645/3 1469/642/3 1474/646/3 +f 1470/645/105 1473/647/105 1475/648/105 +f 1475/648/214 1476/1986/214 1471/649/214 +f 1478/652/104 1474/646/104 1469/642/104 +f 1469/642/104 1472/650/104 1478/652/104 +f 1479/653/292 1480/1987/292 1481/654/292 +f 1482/655/115 1481/654/115 1484/656/115 +f 1485/658/116 1486/1988/116 1483/657/116 +f 1485/659/117 1480/1987/117 1479/653/117 +f 1475/661/293 1478/1989/293 1477/662/293 +f 1477/664/119 1472/644/119 1471/643/119 +f 1474/646/120 1478/1989/120 1475/661/120 +f 1491/1990/105 1487/667/105 1490/666/105 +f 1487/667/105 1488/1991/105 1489/668/105 +f 1496/671/104 1492/1992/104 1493/669/104 +f 1493/669/104 1494/1993/104 1495/670/104 +f 1493/672/121 1487/677/121 1491/673/121 +f 1494/674/122 1491/673/122 1490/666/122 +f 1495/670/3 1490/666/3 1489/668/3 +f 1488/675/123 1492/1994/123 1496/671/123 +f 1493/672/1 1492/1995/1 1488/676/1 +f 1503/1996/104 1497/1997/104 1498/678/104 +f 1498/678/104 1499/1998/104 1500/679/104 +f 1500/679/104 1501/1999/104 1502/680/104 +f 1502/680/104 1503/1996/104 1498/678/104 +f 1522/2000/105 1513/2001/105 1512/681/105 +f 1512/681/105 1506/2002/105 1505/682/105 +f 1505/682/105 1518/2003/105 1517/683/105 +f 1517/683/105 1522/2000/105 1512/681/105 +f 1520/684/105 1521/2004/105 1514/685/105 +f 1514/685/105 1515/2005/105 1509/686/105 +f 1509/686/105 1508/2006/105 1523/2007/105 +f 1523/2007/105 1520/684/105 1509/686/105 +f 1504/689/104 1507/2008/104 1511/687/104 +f 1511/687/104 1510/2009/104 1524/2010/104 +f 1524/2010/104 1516/688/104 1511/687/104 +f 1516/688/104 1519/2011/104 1504/689/104 +f 1526/690/124 1527/2012/124 1528/691/124 +f 1530/693/125 1531/2013/125 1532/694/125 +f 1533/696/126 1534/731/126 1532/694/126 +f 1536/698/127 1530/2014/127 1529/695/127 +f 1535/699/124 1534/728/124 1533/700/124 +f 1537/702/128 1538/2015/128 1539/703/128 +f 1542/705/129 1543/724/129 1544/706/129 +f 1537/702/130 1540/704/130 1536/708/130 +f 1546/710/125 1547/2016/125 1548/711/125 +f 1526/713/126 1525/692/126 1545/714/126 +f 1548/716/130 1547/2017/130 1541/707/130 +f 1527/717/127 1547/2018/127 1546/710/127 +f 1549/718/1 1538/2015/1 1537/702/1 +f 1550/720/3 1536/2019/3 1540/704/3 +f 1551/721/3 1542/705/3 1541/707/3 +f 1552/723/1 1548/2020/1 1544/706/1 +f 1532/694/125 1553/732/125 1554/725/125 +f 1545/712/125 1555/2021/125 1556/726/125 +f 1535/699/124 1557/730/124 1558/727/124 +f 1525/692/1 1559/733/1 1555/729/1 +f 1535/699/3 1529/695/3 1554/725/3 +f 1534/731/1 1558/2022/1 1553/732/1 +f 1528/691/124 1560/734/124 1559/733/124 +f 1528/691/3 1546/710/3 1556/726/3 +f 1561/735/131 1562/742/131 1563/736/131 +f 1565/738/3 1562/742/3 1561/735/3 +f 1562/742/125 1565/738/125 1567/740/125 +f 1567/740/294 1568/2023/294 1563/741/294 +f 1570/745/124 1566/739/124 1561/735/124 +f 1561/735/124 1564/743/124 1570/745/124 +f 1572/746/295 1573/2024/295 1574/747/295 +f 1574/747/134 1573/2024/134 1576/749/134 +f 1578/751/296 1575/750/296 1576/749/296 +f 1577/753/136 1572/746/136 1571/748/136 +f 1567/755/137 1570/2025/137 1569/756/137 +f 1569/758/138 1564/737/138 1563/736/138 +f 1566/739/139 1570/2025/139 1567/755/139 +f 1583/2026/125 1579/761/125 1582/760/125 +f 1579/761/125 1580/2027/125 1581/762/125 +f 1588/765/124 1584/2028/124 1585/763/124 +f 1585/763/124 1586/2029/124 1587/764/124 +f 1585/766/140 1579/772/140 1583/767/140 +f 1583/767/141 1582/760/141 1587/764/141 +f 1587/764/3 1582/760/3 1581/762/3 +f 1584/769/142 1588/765/142 1581/762/142 +f 1585/766/1 1584/2030/1 1580/771/1 +f 1595/2031/124 1589/2032/124 1590/773/124 +f 1590/773/124 1591/2033/124 1592/774/124 +f 1592/774/124 1593/2034/124 1594/775/124 +f 1594/775/124 1595/2031/124 1590/773/124 +f 1614/2035/125 1605/2036/125 1604/776/125 +f 1604/776/125 1598/2037/125 1597/777/125 +f 1597/777/125 1610/2038/125 1609/778/125 +f 1609/778/125 1614/2035/125 1604/776/125 +f 1612/779/125 1613/2039/125 1606/780/125 +f 1606/780/125 1607/2040/125 1601/781/125 +f 1601/781/125 1600/2041/125 1615/2042/125 +f 1615/2042/125 1612/779/125 1601/781/125 +f 1596/784/124 1599/2043/124 1603/782/124 +f 1603/782/124 1602/2044/124 1616/2045/124 +f 1616/2045/124 1608/783/124 1603/782/124 +f 1608/783/124 1611/2046/124 1596/784/124 +f 1618/785/33 1619/2047/33 1620/786/33 +f 1622/788/143 1623/2048/143 1624/789/143 +f 1625/791/144 1626/826/144 1624/789/144 +f 1628/793/145 1622/2049/145 1621/790/145 +f 1627/794/33 1626/823/33 1625/795/33 +f 1629/797/146 1630/2050/146 1631/798/146 +f 1634/800/147 1635/819/147 1636/801/147 +f 1629/797/28 1632/799/28 1628/803/28 +f 1638/805/143 1639/2051/143 1640/806/143 +f 1618/808/144 1617/787/144 1637/809/144 +f 1640/811/28 1639/2052/28 1633/802/28 +f 1619/812/145 1639/2053/145 1638/805/145 +f 1641/813/1 1630/2050/1 1629/797/1 +f 1642/815/3 1628/2054/3 1632/799/3 +f 1643/816/3 1634/800/3 1633/802/3 +f 1644/818/1 1640/2055/1 1636/801/1 +f 1624/789/143 1645/827/143 1646/820/143 +f 1637/807/143 1647/2056/143 1648/821/143 +f 1627/794/33 1649/825/33 1650/822/33 +f 1617/787/1 1651/828/1 1647/824/1 +f 1627/794/3 1621/790/3 1646/820/3 +f 1626/826/1 1650/2057/1 1645/827/1 +f 1620/786/33 1652/829/33 1651/828/33 +f 1620/786/3 1638/805/3 1648/821/3 +f 1654/830/297 1655/853/297 1656/831/297 +f 1657/833/3 1654/830/3 1653/832/3 +f 1654/830/143 1657/833/143 1659/835/143 +f 1659/835/143 1660/2058/143 1655/836/143 +f 1662/839/33 1658/834/33 1653/832/33 +f 1653/832/33 1656/837/33 1662/839/33 +f 1663/840/298 1664/2059/298 1665/841/298 +f 1666/842/151 1665/841/151 1668/843/151 +f 1670/845/299 1667/844/299 1668/843/299 +f 1669/847/153 1664/2059/153 1663/840/153 +f 1659/849/300 1662/2060/300 1661/850/300 +f 1660/852/155 1661/2061/155 1656/831/155 +f 1658/834/156 1662/2060/156 1659/849/156 +f 1675/2062/143 1671/855/143 1674/854/143 +f 1671/855/143 1672/2063/143 1673/856/143 +f 1680/859/33 1676/2064/33 1677/857/33 +f 1677/857/33 1678/2065/33 1679/858/33 +f 1677/860/157 1671/866/157 1675/861/157 +f 1675/861/158 1674/854/158 1679/858/158 +f 1679/858/3 1674/854/3 1673/856/3 +f 1676/863/159 1680/859/159 1673/856/159 +f 1677/860/1 1676/2066/1 1672/865/1 +f 1687/2067/33 1681/2068/33 1682/867/33 +f 1682/867/33 1683/2069/33 1684/868/33 +f 1684/868/33 1685/2070/33 1686/869/33 +f 1686/869/33 1687/2067/33 1682/867/33 +f 1706/2071/143 1697/2072/143 1696/870/143 +f 1696/870/143 1690/2073/143 1689/871/143 +f 1689/871/143 1702/2074/143 1701/872/143 +f 1701/872/143 1706/2071/143 1696/870/143 +f 1704/873/143 1705/2075/143 1698/874/143 +f 1698/874/143 1699/2076/143 1693/875/143 +f 1693/875/143 1692/2077/143 1707/2078/143 +f 1707/2078/143 1704/873/143 1693/875/143 +f 1688/878/33 1691/2079/33 1695/876/33 +f 1695/876/33 1694/2080/33 1708/2081/33 +f 1708/2081/33 1700/877/33 1695/876/33 +f 1700/877/33 1703/2082/33 1688/878/33 +f 1710/879/110 1711/2083/110 1712/880/110 +f 1714/882/160 1715/2084/160 1716/883/160 +f 1717/885/165 1718/920/165 1716/883/165 +f 1720/887/301 1714/2085/301 1713/884/301 +f 1719/888/110 1718/917/110 1717/889/110 +f 1721/891/302 1722/2086/302 1723/892/302 +f 1726/894/164 1727/913/164 1728/895/164 +f 1721/891/105 1724/893/105 1720/897/105 +f 1730/899/160 1731/2087/160 1732/900/160 +f 1710/902/161 1709/881/161 1729/903/161 +f 1732/905/105 1731/2088/105 1725/896/105 +f 1711/906/301 1731/2089/301 1730/899/301 +f 1733/907/1 1722/2086/1 1721/891/1 +f 1734/909/3 1720/2090/3 1724/893/3 +f 1735/910/3 1726/894/3 1725/896/3 +f 1736/912/1 1732/2091/1 1728/895/1 +f 1716/883/160 1737/921/160 1738/914/160 +f 1729/901/160 1739/2092/160 1740/915/160 +f 1719/888/110 1741/919/110 1742/916/110 +f 1709/881/1 1743/922/1 1739/918/1 +f 1719/888/3 1713/884/3 1738/914/3 +f 1718/920/1 1742/2093/1 1737/921/1 +f 1712/880/110 1744/923/110 1743/922/110 +f 1712/880/3 1730/899/3 1740/915/3 +f 1745/924/166 1746/931/166 1747/925/166 +f 1749/927/3 1746/931/3 1745/924/3 +f 1746/931/160 1749/927/160 1751/929/160 +f 1751/929/160 1752/2094/160 1747/930/160 +f 1754/934/110 1750/928/110 1745/924/110 +f 1745/924/110 1748/932/110 1754/934/110 +f 1755/935/303 1756/2095/303 1757/936/303 +f 1758/937/169 1757/936/169 1760/938/169 +f 1762/940/170 1759/939/170 1760/938/170 +f 1761/942/171 1756/2095/171 1755/935/171 +f 1751/944/304 1754/2096/304 1753/945/304 +f 1753/947/305 1748/926/305 1747/925/305 +f 1750/928/174 1754/2096/174 1751/944/174 +f 1767/2097/160 1763/950/160 1766/949/160 +f 1763/950/160 1764/2098/160 1765/951/160 +f 1772/954/110 1768/2099/110 1769/952/110 +f 1769/952/110 1770/2100/110 1771/953/110 +f 1769/955/175 1763/961/175 1767/956/175 +f 1770/957/176 1767/956/176 1766/949/176 +f 1771/953/3 1766/949/3 1765/951/3 +f 1768/958/177 1772/954/177 1765/951/177 +f 1769/955/1 1768/2101/1 1764/960/1 +f 1779/2102/110 1773/2103/110 1774/962/110 +f 1774/962/110 1775/2104/110 1776/963/110 +f 1776/963/110 1777/2105/110 1778/964/110 +f 1778/964/110 1779/2102/110 1774/962/110 +f 1798/2106/160 1789/2107/160 1788/965/160 +f 1788/965/160 1782/2108/160 1781/966/160 +f 1781/966/160 1794/2109/160 1793/967/160 +f 1793/967/160 1798/2106/160 1788/965/160 +f 1796/968/160 1797/2110/160 1790/969/160 +f 1790/969/160 1791/2111/160 1785/970/160 +f 1785/970/160 1784/2112/160 1799/2113/160 +f 1799/2113/160 1796/968/160 1785/970/160 +f 1780/973/110 1783/2114/110 1787/971/110 +f 1787/971/110 1786/2115/110 1800/2116/110 +f 1800/2116/110 1792/972/110 1787/971/110 +f 1792/972/110 1795/2117/110 1780/973/110 +f 1802/974/130 1803/2118/130 1804/975/130 +f 1806/977/178 1807/2119/178 1808/978/178 +f 1809/980/179 1810/1015/179 1808/978/179 +f 1812/982/180 1806/2120/180 1805/979/180 +f 1811/983/130 1810/1012/130 1809/984/130 +f 1813/986/181 1814/2121/181 1815/987/181 +f 1818/989/182 1819/1008/182 1820/990/182 +f 1813/986/294 1816/988/294 1812/992/294 +f 1822/994/178 1823/2122/178 1824/995/178 +f 1802/997/179 1801/976/179 1821/998/179 +f 1824/1000/125 1823/2123/125 1817/991/125 +f 1803/1001/180 1823/2124/180 1822/994/180 +f 1825/1002/1 1814/2121/1 1813/986/1 +f 1826/1004/3 1812/2125/3 1816/988/3 +f 1827/1005/3 1818/989/3 1817/991/3 +f 1828/1007/1 1824/2126/1 1820/990/1 +f 1808/978/178 1829/1016/178 1830/1009/178 +f 1821/996/178 1831/2127/178 1832/1010/178 +f 1811/983/130 1833/1014/130 1834/1011/130 +f 1801/976/1 1835/1017/1 1831/1013/1 +f 1811/983/3 1805/979/3 1830/1009/3 +f 1810/1015/1 1834/2128/1 1829/1016/1 +f 1804/975/130 1836/1018/130 1835/1017/130 +f 1804/975/3 1822/994/3 1832/1010/3 +f 1837/1019/183 1838/1026/183 1839/1020/183 +f 1841/1022/3 1838/1026/3 1837/1019/3 +f 1838/1026/178 1841/1022/178 1843/1024/178 +f 1843/1024/178 1844/2129/178 1839/1025/178 +f 1846/1029/130 1842/1023/130 1837/1019/130 +f 1837/1019/130 1840/1027/130 1846/1029/130 +f 1848/1030/306 1849/2130/306 1850/1031/306 +f 1850/1031/186 1849/2130/186 1852/1033/186 +f 1853/1035/307 1854/2131/307 1851/1034/307 +f 1853/1036/188 1848/1030/188 1847/1032/188 +f 1843/1038/308 1846/2132/308 1845/1039/308 +f 1845/1041/190 1840/1021/190 1839/1020/190 +f 1842/1023/191 1846/2132/191 1843/1038/191 +f 1859/2133/178 1855/1044/178 1858/1043/178 +f 1855/1044/178 1856/2134/178 1857/1045/178 +f 1864/1048/130 1860/2135/130 1861/1046/130 +f 1861/1046/130 1862/2136/130 1863/1047/130 +f 1861/1049/192 1855/1055/192 1859/1050/192 +f 1859/1050/193 1858/1043/193 1863/1047/193 +f 1863/1047/3 1858/1043/3 1857/1045/3 +f 1860/1052/194 1864/1048/194 1857/1045/194 +f 1861/1049/1 1860/2137/1 1856/1054/1 +f 1871/2138/130 1865/2139/130 1870/1058/130 +f 1865/2139/130 1866/1056/130 1870/1058/130 +f 1866/1056/130 1867/2140/130 1868/1057/130 +f 1868/1057/130 1869/2141/130 1870/1058/130 +f 1890/2142/178 1881/2143/178 1880/1059/178 +f 1880/1059/178 1874/2144/178 1873/1060/178 +f 1873/1060/178 1886/2145/178 1885/1061/178 +f 1885/1061/178 1890/2142/178 1880/1059/178 +f 1888/1062/178 1889/2146/178 1882/1063/178 +f 1882/1063/178 1883/2147/178 1877/1064/178 +f 1877/1064/178 1876/2148/178 1891/2149/178 +f 1891/2149/178 1888/1062/178 1877/1064/178 +f 1872/1067/130 1875/2150/130 1879/1065/130 +f 1879/1065/130 1878/2151/130 1892/2152/130 +f 1892/2152/130 1884/1066/130 1879/1065/130 +f 1884/1066/130 1887/2153/130 1872/1067/130 +f 1894/1068/28 1895/2154/28 1896/1069/28 +f 1898/1071/27 1899/2155/27 1900/1072/27 +f 1902/1074/195 1900/1072/195 1899/1075/195 +f 1904/1077/196 1898/2156/196 1897/1073/196 +f 1903/1078/28 1902/1107/28 1901/1079/28 +f 1905/1081/197 1906/2157/197 1907/1082/197 +f 1910/1084/198 1911/1103/198 1912/1085/198 +f 1905/1081/143 1908/1083/143 1904/1087/143 +f 1914/1089/27 1915/2158/27 1916/1090/27 +f 1894/1092/195 1893/1070/195 1913/1093/195 +f 1916/1095/143 1915/2159/143 1909/1086/143 +f 1895/1096/196 1915/2160/196 1914/1089/196 +f 1917/1097/1 1906/2157/1 1905/1081/1 +f 1918/1099/3 1904/2161/3 1908/1083/3 +f 1919/1100/3 1910/1084/3 1909/1086/3 +f 1920/1102/1 1916/2162/1 1912/1085/1 +f 1900/1072/27 1921/1110/27 1922/1104/27 +f 1913/1091/27 1923/2163/27 1924/1105/27 +f 1903/1078/28 1925/1109/28 1926/1106/28 +f 1893/1070/1 1927/1111/1 1923/1108/1 +f 1903/1078/3 1897/1073/3 1922/1104/3 +f 1902/1074/1 1926/2164/1 1921/1110/1 +f 1896/1069/28 1928/1112/28 1927/1111/28 +f 1896/1069/3 1914/1089/3 1924/1105/3 +f 1929/1113/309 1930/1120/309 1931/1114/309 +f 1933/1116/3 1930/1120/3 1929/1113/3 +f 1930/1120/27 1933/1116/27 1935/1118/27 +f 1935/1118/27 1936/2165/27 1931/1119/27 +f 1938/1123/28 1934/1117/28 1929/1113/28 +f 1929/1113/28 1932/1121/28 1938/1123/28 +f 1939/1124/201 1940/2166/201 1941/1125/201 +f 1942/1126/39 1941/1125/39 1944/1127/39 +f 1946/1129/310 1943/1128/310 1944/1127/310 +f 1945/1131/37 1940/2166/37 1939/1124/37 +f 1935/1133/203 1938/2167/203 1937/1134/203 +f 1937/1136/204 1932/1115/204 1931/1114/204 +f 1934/1117/205 1938/2167/205 1935/1133/205 +f 1951/2168/27 1947/1139/27 1950/1138/27 +f 1947/1139/27 1948/2169/27 1949/1140/27 +f 1956/1143/28 1952/2170/28 1953/1141/28 +f 1953/1141/28 1954/2171/28 1955/1142/28 +f 1953/1144/206 1947/1150/206 1951/1145/206 +f 1951/1145/207 1950/1138/207 1955/1142/207 +f 1955/1142/3 1950/1138/3 1949/1140/3 +f 1952/1147/208 1956/1143/208 1949/1140/208 +f 1953/1144/1 1952/2172/1 1948/1149/1 +f 1963/2173/28 1957/2174/28 1962/1153/28 +f 1957/2174/28 1958/1151/28 1962/1153/28 +f 1958/1151/28 1959/2175/28 1960/1152/28 +f 1960/1152/28 1961/2176/28 1962/1153/28 +f 1982/2177/27 1973/2178/27 1977/1156/27 +f 1973/2178/27 1972/1154/27 1977/1156/27 +f 1972/1154/311 1966/2179/311 1965/1155/311 +f 1965/1155/27 1978/2180/27 1977/1156/27 +f 1980/1157/27 1981/2181/27 1974/1158/27 +f 1974/1158/27 1975/2182/27 1969/1159/27 +f 1969/1159/27 1968/2183/27 1983/2184/27 +f 1983/2184/27 1980/1157/27 1969/1159/27 +f 1964/1162/28 1967/2185/28 1971/1160/28 +f 1971/1160/28 1970/2186/28 1984/2187/28 +f 1984/2187/28 1976/1161/28 1971/1160/28 +f 1976/1161/28 1979/2188/28 1964/1162/28 +f 1986/1163/105 1987/2189/105 1988/1164/105 +f 1990/1166/104 1991/2190/104 1992/1167/104 +f 1993/1169/209 1994/1204/209 1992/1167/209 +f 1996/1171/210 1990/2191/210 1989/1168/210 +f 1995/1172/105 1994/1201/105 1993/1173/105 +f 1997/1175/211 1998/2192/211 1999/1176/211 +f 2002/1178/312 2003/1197/312 2004/1179/312 +f 1997/1175/160 2000/1177/160 1996/1181/160 +f 2006/1183/104 2007/2193/104 2008/1184/104 +f 1986/1186/313 1985/1165/313 2005/1187/313 +f 2008/1189/160 2007/2194/160 2001/1180/160 +f 1987/1190/210 2007/2195/210 2006/1183/210 +f 2009/1191/1 1998/2192/1 1997/1175/1 +f 2010/1193/3 1996/2196/3 2000/1177/3 +f 2011/1194/3 2002/1178/3 2001/1180/3 +f 2012/1196/1 2008/2197/1 2004/1179/1 +f 1992/1167/104 2013/1205/104 2014/1198/104 +f 2005/1185/104 2015/2198/104 2016/1199/104 +f 1995/1172/105 2017/1203/105 2018/1200/105 +f 1985/1165/1 2019/1206/1 2015/1202/1 +f 1995/1172/3 1989/1168/3 2014/1198/3 +f 1994/1204/1 2018/2199/1 2013/1205/1 +f 1988/1164/105 2020/1207/105 2019/1206/105 +f 1988/1164/3 2006/1183/3 2016/1199/3 +f 2021/1208/213 2022/1215/213 2023/1209/213 +f 2025/1211/3 2022/1215/3 2021/1208/3 +f 2022/1215/104 2025/1211/104 2027/1213/104 +f 2027/1213/104 2028/2200/104 2023/1214/104 +f 2030/1218/105 2026/1212/105 2021/1208/105 +f 2021/1208/105 2024/1216/105 2030/1218/105 +f 2032/1219/314 2033/2201/314 2034/1220/314 +f 2034/1220/117 2033/2201/117 2036/1222/117 +f 2037/1224/216 2038/2202/216 2035/1223/216 +f 2037/1225/115 2032/1219/115 2031/1221/115 +f 2027/1227/315 2030/2203/315 2029/1228/315 +f 2029/1230/218 2024/1210/218 2023/1209/218 +f 2026/1212/219 2030/2203/219 2027/1227/219 +f 2043/2204/104 2039/1233/104 2042/1232/104 +f 2039/1233/104 2040/2205/104 2041/1234/104 +f 2048/1237/105 2044/2206/105 2045/1235/105 +f 2045/1235/105 2046/2207/105 2047/1236/105 +f 2045/1238/220 2039/1244/220 2043/1239/220 +f 2043/1239/221 2042/1232/221 2047/1236/221 +f 2047/1236/3 2042/1232/3 2041/1234/3 +f 2044/1241/222 2048/1237/222 2041/1234/222 +f 2045/1238/1 2044/2208/1 2040/1243/1 +f 2055/2209/105 2049/2210/105 2050/1245/105 +f 2050/1245/105 2051/2211/105 2052/1246/105 +f 2052/1246/105 2053/2212/105 2054/1247/105 +f 2054/1247/105 2055/2209/105 2050/1245/105 +f 2074/2213/104 2065/2214/104 2069/1250/104 +f 2065/2214/104 2064/1248/104 2069/1250/104 +f 2064/1248/104 2058/2215/104 2057/1249/104 +f 2057/1249/104 2070/2216/104 2069/1250/104 +f 2072/1251/104 2073/2217/104 2066/1252/104 +f 2066/1252/104 2067/2218/104 2061/1253/104 +f 2061/1253/104 2060/2219/104 2075/2220/104 +f 2075/2220/104 2072/1251/104 2061/1253/104 +f 2056/1256/105 2059/2221/105 2063/1254/105 +f 2063/1254/105 2062/2222/105 2076/2223/105 +f 2076/2223/105 2068/1255/105 2063/1254/105 +f 2068/1255/105 2071/2224/105 2056/1256/105 +f 2078/1257/125 2079/2225/125 2080/1258/125 +f 2082/1260/124 2083/2226/124 2084/1261/124 +f 2086/1263/223 2084/1261/223 2083/1264/223 +f 2088/1266/224 2082/2227/224 2081/1262/224 +f 2087/1267/125 2086/1296/125 2085/1268/125 +f 2089/1270/225 2090/2228/225 2091/1271/225 +f 2094/1273/226 2095/1292/226 2096/1274/226 +f 2089/1270/178 2092/1272/178 2088/1276/178 +f 2098/1278/124 2099/2229/124 2100/1279/124 +f 2078/1281/223 2077/1259/223 2097/1282/223 +f 2100/1284/178 2099/2230/178 2093/1275/178 +f 2079/1285/224 2099/2231/224 2098/1278/224 +f 2101/1286/1 2090/2228/1 2089/1270/1 +f 2102/1288/3 2088/2232/3 2092/1272/3 +f 2103/1289/3 2094/1273/3 2093/1275/3 +f 2104/1291/1 2100/2233/1 2096/1274/1 +f 2084/1261/124 2105/1299/124 2106/1293/124 +f 2097/1280/124 2107/2234/124 2108/1294/124 +f 2087/1267/125 2109/1298/125 2110/1295/125 +f 2077/1259/1 2111/1300/1 2107/1297/1 +f 2087/1267/3 2081/1262/3 2106/1293/3 +f 2086/1263/1 2110/2235/1 2105/1299/1 +f 2080/1258/125 2112/1301/125 2111/1300/125 +f 2080/1258/3 2098/1278/3 2108/1294/3 +f 2114/1302/227 2115/1325/227 2116/1303/227 +f 2117/1305/3 2114/1302/3 2113/1304/3 +f 2114/1302/124 2117/1305/124 2119/1307/124 +f 2119/1307/316 2120/2236/316 2115/1308/316 +f 2122/1311/125 2118/1306/125 2113/1304/125 +f 2113/1304/125 2116/1309/125 2122/1311/125 +f 2123/1312/317 2124/2237/317 2125/1313/317 +f 2126/1314/136 2125/1313/136 2128/1315/136 +f 2130/1317/318 2127/1316/318 2128/1315/318 +f 2129/1319/134 2124/2237/134 2123/1312/134 +f 2119/1321/319 2122/2238/319 2121/1322/319 +f 2121/1324/232 2116/1303/232 2115/1325/232 +f 2118/1306/233 2122/2238/233 2119/1321/233 +f 2135/2239/124 2131/1328/124 2134/1327/124 +f 2131/1328/124 2132/2240/124 2133/1329/124 +f 2140/1332/125 2136/2241/125 2137/1330/125 +f 2137/1330/125 2138/2242/125 2139/1331/125 +f 2131/1333/234 2135/2243/234 2138/1334/234 +f 2138/1334/235 2135/2243/235 2134/1327/235 +f 2139/1331/3 2134/1327/3 2133/1329/3 +f 2136/1336/236 2140/1332/236 2133/1329/236 +f 2137/1335/1 2136/2244/1 2132/1338/1 +f 2147/2245/125 2141/2246/125 2142/1339/125 +f 2142/1339/125 2143/2247/125 2144/1340/125 +f 2144/1340/125 2145/2248/125 2146/1341/125 +f 2146/1341/125 2147/2245/125 2142/1339/125 +f 2166/2249/124 2157/2250/124 2156/1342/124 +f 2156/1342/124 2150/2251/124 2149/1343/124 +f 2149/1343/124 2162/2252/124 2161/1344/124 +f 2161/1344/124 2166/2249/124 2156/1342/124 +f 2164/1345/124 2165/2253/124 2158/1346/124 +f 2158/1346/124 2159/2254/124 2153/1347/124 +f 2153/1347/124 2152/2255/124 2167/2256/124 +f 2167/2256/124 2164/1345/124 2153/1347/124 +f 2148/1350/125 2151/2257/125 2155/1348/125 +f 2155/1348/125 2154/2258/125 2168/2259/125 +f 2168/2259/125 2160/1349/125 2155/1348/125 +f 2160/1349/125 2163/2260/125 2148/1350/125 +f 2170/1351/143 2171/2261/143 2172/1352/143 +f 2174/1354/33 2175/2262/33 2176/1355/33 +f 2177/1357/241 2178/1392/241 2176/1355/241 +f 2180/1359/238 2174/2263/238 2173/1356/238 +f 2179/1360/143 2178/1389/143 2177/1361/143 +f 2181/1363/239 2182/2264/239 2183/1364/239 +f 2186/1366/240 2187/1385/240 2188/1367/240 +f 2181/1363/27 2184/1365/27 2180/1369/27 +f 2190/1371/33 2191/2265/33 2192/1372/33 +f 2170/1374/241 2169/1353/241 2189/1375/241 +f 2192/1377/27 2191/2266/27 2185/1368/27 +f 2171/1378/238 2191/2267/238 2190/1371/238 +f 2193/1379/1 2182/2264/1 2181/1363/1 +f 2194/1381/3 2180/2268/3 2184/1365/3 +f 2195/1382/3 2186/1366/3 2185/1368/3 +f 2196/1384/1 2192/2269/1 2188/1367/1 +f 2176/1355/33 2197/1393/33 2198/1386/33 +f 2189/1373/33 2199/2270/33 2200/1387/33 +f 2179/1360/143 2201/1391/143 2202/1388/143 +f 2169/1353/1 2203/1394/1 2199/1390/1 +f 2179/1360/3 2173/1356/3 2198/1386/3 +f 2178/1392/1 2202/2271/1 2197/1393/1 +f 2172/1352/143 2204/1395/143 2203/1394/143 +f 2172/1352/3 2190/1371/3 2200/1387/3 +f 2205/1396/320 2206/1403/320 2207/1397/320 +f 2209/1399/3 2206/1403/3 2205/1396/3 +f 2206/1403/33 2209/1399/33 2211/1401/33 +f 2211/1401/33 2212/2272/33 2207/1402/33 +f 2214/1406/143 2210/1400/143 2205/1396/143 +f 2205/1396/143 2208/1404/143 2214/1406/143 +f 2215/1407/321 2216/2273/321 2217/1408/321 +f 2218/1409/153 2217/1408/153 2220/1410/153 +f 2221/1412/322 2222/2274/322 2219/1411/322 +f 2221/1413/151 2216/2273/151 2215/1407/151 +f 2211/1415/323 2214/2275/323 2213/1416/323 +f 2213/1418/247 2208/1398/247 2207/1397/247 +f 2210/1400/248 2214/2275/248 2211/1415/248 +f 2227/2276/33 2223/1421/33 2226/1420/33 +f 2223/1421/33 2224/2277/33 2225/1422/33 +f 2232/1425/143 2228/2278/143 2229/1423/143 +f 2229/1423/143 2230/2279/143 2231/1424/143 +f 2229/1426/249 2223/1432/249 2227/1427/249 +f 2230/1428/250 2227/1427/250 2226/1420/250 +f 2231/1424/3 2226/1420/3 2225/1422/3 +f 2228/1429/251 2232/1425/251 2225/1422/251 +f 2229/1426/1 2228/2280/1 2224/1431/1 +f 2239/2281/143 2233/2282/143 2234/1433/143 +f 2234/1433/143 2235/2283/143 2236/1434/143 +f 2236/1434/143 2237/2284/143 2238/1435/143 +f 2238/1435/143 2239/2281/143 2234/1433/143 +f 2258/2285/33 2249/2286/33 2248/1436/33 +f 2248/1436/33 2242/2287/33 2241/1437/33 +f 2241/1437/33 2254/2288/33 2253/1438/33 +f 2253/1438/33 2258/2285/33 2248/1436/33 +f 2256/1439/33 2257/2289/33 2250/1440/33 +f 2250/1440/33 2251/2290/33 2245/1441/33 +f 2245/1441/33 2244/2291/33 2259/2292/33 +f 2259/2292/33 2256/1439/33 2245/1441/33 +f 2240/1444/143 2243/2293/143 2247/1442/143 +f 2247/1442/143 2246/2294/143 2260/2295/143 +f 2260/2295/143 2252/1443/143 2247/1442/143 +f 2252/1443/143 2255/2296/143 2240/1444/143 +f 2262/1445/160 2263/2297/160 2264/1446/160 +f 2266/1448/110 2267/2298/110 2268/1449/110 +f 2269/1451/324 2270/1487/324 2268/1449/324 +f 2272/1453/325 2266/2299/325 2265/1450/325 +f 2271/1454/160 2270/1484/160 2269/1455/160 +f 2273/1457/326 2274/2300/326 2275/1458/326 +f 2278/1460/255 2279/1480/255 2280/1461/255 +f 2273/1457/104 2276/1459/104 2272/1463/104 +f 2281/1465/110 2282/1473/110 2283/1466/110 +f 2262/1468/324 2261/1447/324 2281/1469/324 +f 2284/1471/104 2283/2301/104 2277/1462/104 +f 2263/1472/325 2283/2302/325 2282/1473/325 +f 2285/1474/1 2274/2300/1 2273/1457/1 +f 2286/1476/3 2272/2303/3 2276/1459/3 +f 2287/1477/3 2278/1460/3 2277/1462/3 +f 2288/1479/1 2284/2304/1 2280/1461/1 +f 2268/1449/110 2289/1488/110 2290/1481/110 +f 2281/1465/110 2291/2305/110 2292/1482/110 +f 2271/1454/160 2293/1486/160 2294/1483/160 +f 2261/1447/1 2295/1489/1 2291/1485/1 +f 2271/1454/3 2265/1450/3 2290/1481/3 +f 2270/1487/1 2294/2306/1 2289/1488/1 +f 2264/1446/160 2296/1490/160 2295/1489/160 +f 2264/1446/3 2282/1473/3 2292/1482/3 +f 2297/1491/256 2298/1498/256 2299/1492/256 +f 2301/1494/3 2298/1498/3 2297/1491/3 +f 2298/1498/110 2301/1494/110 2303/1496/110 +f 2303/1496/110 2304/2307/110 2299/1497/110 +f 2306/1501/160 2302/1495/160 2297/1491/160 +f 2297/1491/160 2300/1499/160 2306/1501/160 +f 2308/1502/327 2309/2308/327 2310/1503/327 +f 2310/1503/171 2309/2308/171 2312/1505/171 +f 2314/1507/259 2311/1506/259 2312/1505/259 +f 2313/1509/169 2308/1502/169 2307/1504/169 +f 2303/1511/328 2306/2309/328 2305/1512/328 +f 2305/1514/329 2300/1493/329 2299/1492/329 +f 2302/1495/330 2306/2309/330 2303/1511/330 +f 2319/2310/110 2315/1517/110 2318/1516/110 +f 2315/1517/110 2316/2311/110 2317/1518/110 +f 2324/1521/160 2320/2312/160 2321/1519/160 +f 2321/1519/160 2322/2313/160 2323/1520/160 +f 2321/1522/263 2315/1528/263 2319/1523/263 +f 2322/1524/264 2319/1523/264 2318/1516/264 +f 2323/1520/3 2318/1516/3 2317/1518/3 +f 2320/1525/265 2324/1521/265 2317/1518/265 +f 2321/1522/1 2320/2314/1 2316/1527/1 +f 2331/2315/160 2325/2316/160 2326/1529/160 +f 2326/1529/160 2327/2317/160 2328/1530/160 +f 2328/1530/160 2329/2318/160 2330/1531/160 +f 2330/1531/160 2331/2315/160 2326/1529/160 +f 2350/2319/110 2341/2320/110 2340/1532/110 +f 2340/1532/110 2334/2321/110 2333/1533/110 +f 2333/1533/110 2346/2322/110 2345/1534/110 +f 2345/1534/110 2350/2319/110 2340/1532/110 +f 2348/1535/110 2349/2323/110 2342/1536/110 +f 2342/1536/110 2343/2324/110 2337/1537/110 +f 2337/1537/110 2336/2325/110 2351/2326/110 +f 2351/2326/110 2348/1535/110 2337/1537/110 +f 2332/1540/160 2335/2327/160 2339/1538/160 +f 2339/1538/160 2338/2328/160 2352/2329/160 +f 2352/2329/160 2344/1539/160 2339/1538/160 +f 2344/1539/160 2347/2330/160 2332/1540/160 +f 2354/1541/178 2355/2331/178 2356/1542/178 +f 2358/1544/130 2359/2332/130 2360/1545/130 +f 2361/1547/266 2362/1583/266 2360/1545/266 +f 2363/1549/267 2364/2333/267 2358/1550/267 +f 2363/1549/178 2362/1580/178 2361/1551/178 +f 2365/1553/268 2366/2334/268 2367/1554/268 +f 2370/1556/269 2371/1576/269 2372/1557/269 +f 2365/1553/124 2368/1555/124 2364/1559/124 +f 2373/1561/130 2374/1569/130 2375/1562/130 +f 2354/1564/266 2353/1543/266 2373/1565/266 +f 2376/1567/124 2375/2335/124 2369/1558/124 +f 2355/1568/267 2375/2336/267 2374/1569/267 +f 2377/1570/1 2366/2334/1 2365/1553/1 +f 2378/1572/3 2364/2337/3 2368/1555/3 +f 2379/1573/3 2370/1556/3 2369/1558/3 +f 2380/1575/1 2376/2338/1 2372/1557/1 +f 2360/1545/130 2381/1584/130 2382/1577/130 +f 2373/1561/130 2383/2339/130 2384/1578/130 +f 2363/1549/178 2385/1582/178 2386/1579/178 +f 2353/1543/1 2387/1585/1 2383/1581/1 +f 2363/1549/3 2357/1546/3 2382/1577/3 +f 2362/1583/1 2386/2340/1 2381/1584/1 +f 2356/1542/178 2388/1586/178 2387/1585/178 +f 2356/1542/3 2374/1569/3 2384/1578/3 +f 2390/1587/270 2391/1610/270 2392/1588/270 +f 2393/1590/3 2390/1587/3 2389/1589/3 +f 2390/1587/130 2393/1590/130 2395/1592/130 +f 2395/1592/130 2396/2341/130 2391/1593/130 +f 2398/1596/178 2394/1591/178 2389/1589/178 +f 2389/1589/178 2392/1594/178 2398/1596/178 +f 2400/1597/331 2401/2342/331 2402/1598/331 +f 2402/1598/188 2401/2342/188 2404/1600/188 +f 2406/1602/332 2403/1601/332 2404/1600/332 +f 2405/1604/186 2400/1597/186 2399/1599/186 +f 2395/1606/333 2398/2343/333 2397/1607/333 +f 2397/1609/275 2392/1588/275 2391/1610/275 +f 2394/1591/276 2398/2343/276 2395/1606/276 +f 2411/2344/130 2407/1613/130 2410/1612/130 +f 2407/1613/130 2408/2345/130 2409/1614/130 +f 2416/1617/178 2412/2346/178 2413/1615/178 +f 2413/1615/178 2414/2347/178 2415/1616/178 +f 2413/1618/277 2407/1624/277 2411/1619/277 +f 2411/1619/278 2410/1612/278 2415/1616/278 +f 2415/1616/3 2410/1612/3 2409/1614/3 +f 2412/1621/279 2416/1617/279 2409/1614/279 +f 2412/1623/1 2408/2348/1 2407/1624/1 +f 2423/2349/178 2417/2350/178 2418/1625/178 +f 2418/1625/178 2419/2351/178 2420/1626/178 +f 2420/1626/178 2421/2352/178 2422/1627/178 +f 2422/1627/178 2423/2349/178 2418/1625/178 +f 2442/2353/130 2433/2354/130 2432/1628/130 +f 2432/1628/130 2426/2355/130 2425/1629/130 +f 2425/1629/130 2438/2356/130 2437/1630/130 +f 2437/1630/130 2442/2353/130 2432/1628/130 +f 2440/1631/130 2441/2357/130 2434/1632/130 +f 2434/1632/130 2435/2358/130 2429/1633/130 +f 2429/1633/130 2428/2359/130 2443/2360/130 +f 2443/2360/130 2440/1631/130 2429/1633/130 +f 2424/1636/178 2427/2361/178 2431/1634/178 +f 2431/1634/178 2430/2362/178 2444/2363/178 +f 2444/2363/178 2436/1635/178 2431/1634/178 +f 2436/1635/178 2439/2364/178 2424/1636/178 +s 1 +f 2/2365/334 4/2366/335 1/2367/336 +f 4/2366/335 5/2368/337 6/2369/338 +f 6/2369/338 7/2370/339 8/2371/340 +f 8/2371/340 9/2372/341 10/2373/342 +f 16/2374/343 13/2375/344 15/2376/345 +f 19/2377/346 1/2367/336 18/2378/347 +f 20/2379/348 21/2380/349 22/2381/350 +f 21/2380/349 11/2382/351 22/2381/350 +f 18/2378/347 23/2383/352 21/2380/349 +f 21/2380/349 13/2384/344 12/2385/353 +f 1/2367/336 24/2386/354 23/2383/352 +f 23/2383/352 14/2387/355 13/2384/344 +f 6/2369/338 24/2386/354 4/2366/335 +f 25/2388/356 14/2387/355 24/2386/354 +f 8/2371/340 25/2388/356 6/2369/338 +f 26/2389/357 15/2390/345 25/2388/356 +f 10/2373/342 26/2389/357 8/2371/340 +f 26/2389/357 17/2391/358 16/2392/343 +f 28/2393/359 18/2378/347 20/2379/348 +f 28/2393/359 30/2394/360 19/2377/346 +f 29/2395/361 32/2396/362 30/2394/360 +f 19/2377/346 33/2397/363 2/2365/334 +f 30/2394/360 34/2398/364 33/2397/363 +f 2/2365/334 35/2399/365 3/2400/366 +f 33/2397/363 36/2401/367 35/2399/365 +f 5/2368/337 35/2399/365 37/2402/368 +f 37/2402/368 36/2401/367 38/2403/369 +f 7/2370/339 37/2402/368 39/2404/370 +f 39/2404/370 38/2403/369 40/2405/371 +f 9/2372/341 39/2404/370 41/2406/372 +f 41/2406/372 40/2405/371 42/2407/373 +f 38/2408/369 36/2409/367 34/2410/364 +f 72/2411/374 74/2412/375 71/2413/376 +f 74/2412/375 75/2414/377 76/2415/378 +f 75/2414/377 78/2416/379 76/2415/378 +f 77/2417/380 80/2418/381 78/2416/379 +f 79/2419/382 82/2420/383 80/2418/381 +f 81/2421/384 84/2422/385 82/2423/383 +f 83/2424/386 86/2425/387 84/2422/385 +f 85/2426/388 88/2427/389 86/2425/387 +f 88/2427/389 89/2428/390 90/2429/391 +f 89/2428/390 92/2430/392 90/2429/391 +f 92/2430/392 93/2431/393 94/2432/394 +f 95/2433/395 97/2434/396 98/2435/397 +f 97/2434/396 100/2436/398 98/2435/397 +f 99/2437/399 102/2438/400 100/2436/398 +f 101/2439/401 104/2440/402 102/2438/400 +f 104/2440/402 105/2441/403 106/2442/404 +f 105/2441/403 108/2443/405 106/2442/404 +f 77/2417/380 109/2444/406 110/2445/407 +f 112/2446/408 71/2413/376 111/2447/409 +f 78/2416/379 113/2448/410 114/2449/411 +f 116/2450/412 118/2451/413 115/2452/414 +f 85/2426/388 115/2452/414 87/2453/415 +f 72/2411/374 120/2454/416 73/2455/417 +f 96/2456/418 122/2457/419 97/2434/396 +f 107/2458/420 123/2459/421 124/2460/422 +f 81/2421/384 126/2461/423 83/2424/386 +f 91/2462/424 128/2463/425 93/2431/393 +f 103/2464/426 129/2465/427 130/2466/428 +f 77/2417/380 131/2467/429 79/2419/382 +f 87/2453/415 132/2468/430 89/2428/390 +f 97/2434/396 133/2469/431 99/2437/399 +f 107/2458/420 134/2470/432 112/2446/408 +f 73/2455/417 109/2444/406 75/2414/377 +f 85/2426/388 126/2461/423 116/2471/412 +f 93/2431/393 121/2472/433 96/2456/418 +f 105/2441/403 130/2466/428 123/2473/421 +f 79/2419/382 125/2474/434 81/2475/384 +f 89/2428/390 127/2476/435 91/2462/424 +f 101/2439/401 133/2469/431 129/2477/427 +f 112/2446/408 119/2478/436 72/2411/374 +f 135/2479/437 137/2480/438 138/2481/439 +f 119/2478/436 140/2482/440 120/2454/416 +f 129/2465/427 142/2483/441 130/2466/428 +f 115/2452/414 143/2484/442 132/2468/430 +f 120/2485/416 144/2486/443 109/2444/406 +f 130/2466/428 145/2487/444 123/2473/421 +f 132/2488/430 146/2489/445 127/2476/435 +f 109/2444/406 147/2490/446 110/2445/407 +f 124/2460/422 145/2491/444 148/2492/447 +f 127/2476/435 149/2493/448 128/2463/425 +f 131/2467/429 147/2494/446 136/2495/449 +f 124/2460/422 150/2496/450 134/2470/432 +f 128/2497/425 151/2498/451 121/2472/433 +f 125/2474/434 136/2495/449 135/2479/437 +f 134/2499/432 139/2500/452 119/2478/436 +f 122/2457/419 151/2498/451 152/2501/453 +f 125/2502/434 153/2503/454 126/2461/423 +f 122/2504/419 154/2505/455 133/2469/431 +f 116/2471/412 153/2503/454 117/2506/456 +f 133/2469/431 141/2507/457 129/2477/427 +f 156/2508/458 158/2509/459 155/2510/460 +f 150/2511/450 160/2512/461 139/2500/452 +f 151/2498/451 162/2513/462 152/2501/453 +f 135/2514/437 163/2515/463 153/2503/454 +f 154/2505/455 162/2516/462 156/2508/458 +f 117/2506/456 163/2515/463 164/2517/464 +f 141/2507/457 156/2508/458 155/2510/460 +f 118/2451/413 164/2518/464 165/2519/465 +f 140/2482/440 160/2512/461 166/2520/466 +f 142/2483/441 155/2521/460 167/2522/467 +f 143/2484/442 165/2519/465 168/2523/468 +f 140/2524/440 169/2525/469 144/2486/443 +f 142/2483/441 170/2526/470 145/2487/444 +f 143/2527/442 171/2528/471 146/2489/445 +f 144/2486/443 172/2529/472 147/2490/446 +f 148/2492/447 170/2530/470 173/2531/473 +f 146/2489/445 174/2532/474 149/2493/448 +f 136/2495/449 172/2533/472 137/2480/438 +f 148/2492/447 159/2534/475 150/2496/450 +f 151/2498/451 174/2535/474 161/2536/476 +f 157/2537/477 184/2538/478 188/2539/479 +f 165/2519/465 187/2540/480 186/2541/481 +f 160/2512/461 175/2542/482 166/2520/466 +f 167/2522/467 158/2543/459 180/2544/483 +f 168/2523/468 186/2541/481 185/2545/484 +f 169/2525/469 175/2546/482 192/2547/485 +f 167/2522/467 179/2548/486 170/2526/470 +f 171/2528/471 185/2549/484 184/2550/478 +f 169/2525/469 191/2551/487 172/2529/472 +f 173/2531/473 179/2552/486 178/2553/488 +f 171/2528/471 183/2554/489 174/2532/474 +f 137/2480/438 191/2555/487 190/2556/490 +f 173/2531/473 177/2557/491 159/2534/475 +f 161/2536/476 183/2558/489 182/2559/492 +f 137/2480/438 189/2560/493 138/2481/439 +f 160/2512/461 177/2561/491 176/2562/494 +f 161/2536/476 181/2563/495 162/2513/462 +f 163/2515/463 189/2564/493 188/2565/479 +f 156/2508/458 181/2566/495 157/2567/477 +f 163/2515/463 187/2568/480 164/2517/464 +f 194/2569/496 196/66/497 193/2570/498 +f 90/2429/391 198/2571/499 88/2427/389 +f 100/2436/398 199/2572/500 98/2435/397 +f 111/2447/409 201/2573/501 108/2443/405 +f 76/2415/378 203/2574/502 74/2412/375 +f 84/2422/385 204/2575/503 205/2576/504 +f 95/2433/395 207/2577/505 94/2432/394 +f 106/2442/404 209/2578/506 104/2440/402 +f 82/2420/383 113/2448/410 80/2418/381 +f 92/2430/392 197/2579/507 90/2429/391 +f 102/2438/400 193/2570/498 100/2436/398 +f 71/2413/376 200/2580/508 111/2447/409 +f 78/2416/379 202/2581/509 76/2415/378 +f 88/2427/389 204/2582/503 86/2425/387 +f 71/2413/376 203/2583/502 212/2584/510 +f 98/2435/397 206/2585/511 95/2433/395 +f 108/2443/405 208/2586/512 106/2442/404 +f 84/2422/385 210/2587/513 82/2423/383 +f 94/2432/394 211/2588/514 92/2430/392 +f 104/2440/402 194/2589/496 102/2438/400 +f 198/2571/499 218/75/515 204/2582/503 +f 203/2583/502 220/58/64 212/2584/510 +f 194/2589/496 213/36/516 195/78/68 +f 197/2590/507 217/73/517 198/2571/499 +f 202/2581/509 219/82/518 203/2574/502 +f 209/2578/506 214/34/519 213/36/516 +f 197/2579/507 223/37/61 221/39/520 +f 114/2591/411 222/42/521 202/2581/509 +f 201/2573/501 214/45/519 208/2586/512 +f 207/2592/505 223/37/61 211/2588/514 +f 113/2448/410 224/50/522 114/2449/411 +f 200/2593/508 225/43/523 201/2573/501 +f 207/2577/505 229/62/524 226/53/525 +f 113/2448/410 230/56/69 227/48/526 +f 200/2580/508 220/58/64 228/60/527 +f 206/2585/511 231/61/528 229/62/524 +f 205/2576/504 230/63/69 210/2587/513 +f 193/2570/498 231/68/528 199/2572/500 +f 204/2575/503 232/69/529 205/2576/504 +f 112/2446/408 108/2443/405 107/2458/420 +f 96/2456/418 94/2432/394 93/2431/393 +f 234/1647/520 236/2594/517 233/52/517 +f 243/54/521 264/2595/518 241/55/518 +f 242/57/497 258/2596/68 257/2597/497 +f 245/77/61 235/2598/520 234/59/520 +f 246/1649/522 265/2599/521 243/54/521 +f 247/64/516 258/2600/68 244/65/68 +f 246/67/522 267/2601/526 266/2602/522 +f 247/64/516 260/2603/519 259/2604/516 +f 250/1651/69 267/2601/526 248/72/526 +f 251/81/523 260/2605/519 249/74/519 +f 252/76/525 253/2606/61 245/77/61 +f 216/35/529 268/2607/69 250/79/69 +f 238/1653/527 261/2608/523 251/81/523 +f 240/41/524 254/2609/525 252/83/525 +f 215/1644/515 269/2610/529 216/35/529 +f 237/47/64 262/2611/527 238/38/527 +f 239/1645/528 255/2612/524 240/41/524 +f 215/44/515 236/2594/517 270/2613/515 +f 241/46/518 263/2614/64 237/47/64 +f 242/57/497 256/2615/528 239/49/528 +f 272/2616/530 274/2617/160 271/2618/64 +f 276/2619/531 278/2620/532 275/2621/533 +f 272/2616/530 278/2620/532 273/2622/534 +f 274/2617/160 279/2623/535 280/2624/69 +f 277/2625/536 282/2626/537 278/2620/532 +f 273/2622/534 282/2626/537 279/2623/535 +f 279/2627/535 284/2628/105 280/2629/69 +f 282/2630/537 285/2631/538 286/2632/539 +f 279/2627/535 286/2632/539 283/2633/540 +f 284/2628/105 287/2634/541 288/2635/61 +f 286/2632/539 289/2636/542 290/2637/543 +f 286/2632/539 287/2634/541 283/2633/540 +f 287/2634/541 291/2638/544 292/2639/545 +f 287/2634/541 293/2640/110 288/2635/61 +f 290/2637/543 294/2641/546 291/2638/544 +f 291/2638/544 296/2642/547 292/2639/545 +f 292/2639/545 297/2643/68 293/2640/110 +f 291/2638/544 298/2644/548 295/2645/549 +f 296/2642/547 299/2646/550 300/2647/551 +f 289/2648/542 285/2649/538 281/2650/552 +f 296/2642/547 302/2651/104 297/2643/68 +f 298/2644/548 299/2646/550 295/2645/549 +f 300/2647/551 271/2618/64 302/2651/104 +f 299/2646/550 276/2619/531 275/2621/533 +f 299/2646/550 272/2616/530 300/2647/551 +f 304/2652/530 306/2653/160 303/2654/64 +f 308/2655/531 310/2656/532 307/2657/533 +f 304/2652/530 310/2656/532 305/2658/534 +f 305/2658/534 312/2659/69 306/2653/160 +f 309/2660/536 314/2661/537 310/2656/532 +f 310/2656/532 311/2662/535 305/2658/534 +f 311/2663/535 316/2664/105 312/2665/69 +f 313/2666/552 318/2667/539 314/2668/537 +f 314/2668/537 315/2669/540 311/2663/535 +f 316/2664/105 319/2670/541 320/2671/61 +f 318/2667/539 321/2672/542 322/2673/543 +f 315/2669/540 322/2673/543 319/2670/541 +f 322/2673/543 324/2674/545 319/2670/541 +f 320/2671/61 324/2674/545 325/2675/110 +f 321/2672/542 323/2676/544 322/2673/543 +f 323/2676/544 328/2677/547 324/2674/545 +f 324/2674/545 329/2678/68 325/2675/110 +f 323/2676/544 330/2679/548 327/2680/549 +f 328/2677/547 331/2681/550 332/2682/551 +f 321/2683/542 317/2684/538 313/2685/552 +f 328/2677/547 334/2686/104 329/2678/68 +f 330/2679/548 331/2681/550 327/2680/549 +f 334/2686/104 304/2652/530 303/2654/64 +f 331/2681/550 308/2655/531 307/2657/533 +f 332/2682/551 307/2657/533 304/2652/530 +f 364/131/553 366/2687/554 363/2688/553 +f 365/135/554 368/2689/555 366/2687/554 +f 368/2689/555 369/136/556 370/2690/556 +f 369/136/556 372/2691/557 370/2690/556 +f 372/2691/557 373/128/558 374/2692/558 +f 373/128/558 376/2693/559 374/2692/558 +f 376/2694/559 377/122/560 378/2695/561 +f 377/122/560 380/2696/562 378/2695/561 +f 379/117/562 382/2697/563 380/2696/562 +f 382/2697/563 383/138/564 384/2698/564 +f 383/138/564 388/2699/565 384/2698/564 +f 388/2699/565 364/131/553 363/2688/553 +f 390/133/566 392/2700/567 389/134/567 +f 393/120/568 404/2701/569 385/121/569 +f 395/125/570 408/2702/571 407/2703/570 +f 398/132/572 391/2704/566 390/133/566 +f 389/134/567 410/2705/573 399/137/574 +f 385/121/569 403/2706/3 386/118/3 +f 394/126/575 407/2703/570 406/2707/575 +f 397/129/1 410/2705/573 409/2708/1 +f 386/118/3 402/2709/576 400/141/576 +f 394/123/575 405/2710/568 393/120/568 +f 396/130/571 409/2708/1 408/2702/571 +f 400/141/576 401/2711/572 398/132/572 +f 411/2712/577 413/161/578 414/160/577 +f 412/2713/578 416/162/579 413/161/578 +f 415/2714/579 418/157/580 416/162/579 +f 419/2715/581 418/157/580 417/2716/580 +f 419/2715/581 422/152/582 420/155/581 +f 423/2717/583 422/152/582 421/2718/582 +f 423/2719/583 426/148/584 424/150/583 +f 427/2720/585 426/148/584 425/2721/584 +f 427/2720/585 430/145/586 428/147/585 +f 429/2722/586 432/164/587 430/145/586 +f 435/2723/588 432/164/587 431/2724/587 +f 435/2723/588 414/160/577 436/159/588 +f 438/2725/589 440/158/590 437/165/589 +f 434/146/591 454/2726/592 441/1692/592 +f 443/154/593 451/2727/594 444/1693/594 +f 440/158/590 458/2728/595 446/1694/595 +f 449/2729/596 437/165/589 447/1695/596 +f 433/1691/3 455/2730/591 434/146/591 +f 442/151/597 452/2731/593 443/154/593 +f 450/2732/1 447/1695/596 445/156/1 +f 457/2733/598 433/1691/3 448/163/598 +f 441/1692/592 453/2734/597 442/149/597 +f 451/2727/594 445/156/1 444/1693/594 +f 446/1694/595 457/2733/598 448/163/598 +f 531/2735/33 533/2736/599 530/2737/33 +f 534/2738/1 524/252/600 523/1725/1 +f 537/261/601 539/1729/3 536/1737/3 +f 540/2739/33 525/2740/602 541/2741/603 +f 543/257/600 545/2742/604 542/2743/605 +f 528/254/601 547/2744/599 546/258/606 +f 538/255/606 533/2736/599 532/2745/599 +f 524/252/600 541/2741/603 525/2740/602 +f 531/2746/33 545/2742/604 544/2747/604 +f 528/254/601 549/1735/3 529/1724/3 +f 548/1728/1 542/2743/605 550/2748/1 +f 526/2749/33 547/2744/599 527/2750/599 +f 578/2751/607 580/1757/608 577/1756/607 +f 582/2752/609 584/305/610 581/1755/609 +f 585/2753/611 587/303/612 588/2754/612 +f 589/2755/613 585/2753/611 590/2756/613 +f 579/2757/614 587/303/612 580/2758/608 +f 582/2752/609 592/2759/615 591/2760/615 +f 577/2761/607 583/2762/616 578/2763/607 +f 590/2764/613 592/1754/615 589/1753/613 +f 594/2765/617 596/1763/618 593/1762/617 +f 598/2766/619 600/311/620 597/1761/619 +f 602/310/621 604/2767/622 601/2768/621 +f 602/310/621 606/2769/623 605/2770/623 +f 595/2771/618 603/309/624 596/2772/618 +f 598/2766/619 608/2773/625 607/2774/625 +f 600/311/620 594/2775/617 593/2776/617 +f 605/1759/623 607/2777/625 608/1760/625 +f 614/2778/607 616/1768/614 613/1767/607 +f 618/2779/609 620/314/616 617/1766/609 +f 621/2780/611 623/312/612 624/2781/612 +f 622/313/611 626/2782/613 625/2783/613 +f 624/2781/612 616/2784/614 615/2785/614 +f 627/2786/615 617/1766/609 628/2787/615 +f 613/2788/607 619/2789/616 614/2790/607 +f 626/2791/613 628/1765/615 625/1764/613 +f 629/1773/617 631/2792/618 632/1774/618 +f 634/2793/619 636/320/620 633/1772/619 +f 638/319/621 640/2794/624 637/2795/621 +f 638/319/621 642/2796/623 641/2797/623 +f 640/2794/624 632/2798/618 631/2799/618 +f 634/2793/619 644/2800/625 643/2801/625 +f 629/2802/617 635/2803/620 630/2804/617 +f 642/2805/623 644/1771/625 641/1770/623 +f 650/2806/607 652/1779/614 649/1778/607 +f 653/1777/609 655/2807/616 656/323/616 +f 658/322/611 660/2808/612 657/2809/611 +f 661/2810/613 657/2809/611 662/2811/613 +f 660/2808/612 652/2812/614 651/2813/614 +f 663/2814/615 653/1777/609 664/2815/615 +f 649/2816/607 655/2807/616 650/2817/607 +f 662/2818/613 664/1776/615 661/1775/613 +f 666/2819/617 668/1785/618 665/1784/617 +f 670/2820/619 672/329/626 669/1783/627 +f 674/328/621 676/2821/624 673/2822/621 +f 677/2823/623 673/2822/621 678/2824/623 +f 676/2821/624 668/2825/618 667/2826/618 +f 670/2820/619 680/2827/625 679/2828/625 +f 665/2829/617 671/2830/628 666/2831/617 +f 677/1781/623 679/2832/625 680/1782/625 +f 686/1789/629 688/2833/630 685/1790/630 +f 690/1788/631 692/2834/632 689/330/633 +f 693/2835/634 695/1787/635 696/332/636 +f 697/2836/637 693/2835/634 696/332/636 +f 687/2837/629 695/1787/635 694/2838/638 +f 700/2839/639 692/2834/632 699/2840/640 +f 685/2841/630 691/2842/641 690/1788/631 +f 700/331/639 698/2843/642 697/1786/637 +f 702/1795/618 704/2844/617 701/1796/617 +f 706/1794/620 708/2845/619 705/336/619 +f 710/2846/624 712/338/621 709/2847/621 +f 714/2848/623 712/338/621 713/2849/623 +f 702/2850/618 710/2846/624 703/2851/618 +f 716/2852/625 708/2845/619 715/2853/625 +f 704/2854/617 706/1794/620 701/2855/617 +f 716/337/625 714/2856/623 713/1792/623 +f 722/1800/629 724/2857/630 721/1801/630 +f 725/339/632 727/2858/641 728/2859/632 +f 730/2860/635 732/341/636 729/2861/634 +f 733/2862/642 729/2861/634 732/341/636 +f 722/2863/629 730/2860/635 723/2864/629 +f 736/2865/640 728/2859/632 735/2866/643 +f 721/2867/630 727/2858/641 726/1799/641 +f 736/340/640 734/2868/644 733/1797/642 +f 737/1807/617 739/2869/618 740/2870/617 +f 742/1805/620 744/2871/619 741/345/619 +f 745/2872/621 747/1804/624 748/347/621 +f 749/2873/623 745/2872/621 748/347/621 +f 738/2874/618 746/2875/624 739/2876/618 +f 751/2877/625 741/345/619 744/2871/619 +f 740/2878/617 742/1805/620 737/2879/617 +f 752/346/625 750/2880/623 749/1803/623 +f 758/1811/629 760/2881/630 757/1812/630 +f 761/348/632 763/2882/641 764/2883/632 +f 766/2884/635 768/350/634 765/2885/634 +f 769/2886/637 765/2885/634 768/350/634 +f 758/2887/629 766/2884/635 759/2888/629 +f 772/2889/639 764/2883/632 771/2890/639 +f 757/2891/630 763/2882/641 762/1810/641 +f 772/349/639 770/2892/637 769/1808/637 +f 774/1817/618 776/2893/617 773/1818/617 +f 778/1816/620 780/2894/619 777/354/619 +f 782/2895/624 784/356/645 781/2896/645 +f 786/2897/623 784/356/645 785/2898/623 +f 774/2899/618 782/2895/624 775/2900/618 +f 787/2901/625 777/354/619 780/2894/619 +f 776/2902/617 778/1816/620 773/2903/617 +f 788/355/625 786/2904/623 785/1814/623 +f 816/2905/646 818/2906/647 815/2907/648 +f 818/2906/647 819/2908/649 820/2909/650 +f 820/2909/650 821/2910/651 822/2911/652 +f 822/2911/652 823/2912/653 824/2913/654 +f 830/2914/655 831/2915/656 826/2916/657 +f 833/2917/658 815/2907/648 832/2918/659 +f 834/2919/660 835/2920/661 836/2921/662 +f 835/2920/661 825/2922/663 836/2921/662 +f 832/2918/659 837/2923/664 835/2920/661 +f 835/2920/661 827/2924/665 826/2925/657 +f 815/2907/648 838/2926/666 837/2923/664 +f 837/2923/664 828/2927/667 827/2924/665 +f 820/2909/650 838/2926/666 818/2906/647 +f 839/2928/668 828/2927/667 838/2926/666 +f 822/2911/652 839/2928/668 820/2909/650 +f 840/2929/669 829/2930/670 839/2928/668 +f 824/2913/654 840/2929/669 822/2911/652 +f 840/2929/669 831/2931/656 830/2932/655 +f 842/2933/671 832/2918/659 834/2919/660 +f 842/2933/671 844/2934/672 833/2917/658 +f 843/2935/673 846/2936/674 844/2934/672 +f 833/2917/658 847/2937/675 816/2905/646 +f 844/2934/672 848/2938/676 847/2937/675 +f 816/2905/646 849/2939/677 817/2940/678 +f 847/2937/675 850/2941/679 849/2939/677 +f 819/2908/649 849/2939/677 851/2942/680 +f 851/2942/680 850/2941/679 852/2943/681 +f 821/2910/651 851/2942/680 853/2944/682 +f 853/2944/682 852/2943/681 854/2945/683 +f 823/2912/653 853/2944/682 855/2946/684 +f 855/2946/684 854/2945/683 856/2947/685 +f 852/2948/681 850/2949/679 848/2950/676 +f 858/2951/686 860/2952/687 857/2953/688 +f 860/2952/687 861/2954/689 862/2955/690 +f 862/2955/690 863/2956/691 864/2957/692 +f 864/2957/692 865/2958/693 866/2959/694 +f 872/2960/695 869/2961/696 871/2962/697 +f 875/2963/698 857/2953/688 874/2964/699 +f 876/2965/700 877/2966/701 878/2967/702 +f 877/2966/701 867/2968/703 878/2967/702 +f 874/2964/699 879/2969/704 877/2966/701 +f 877/2966/701 869/2970/696 868/2971/705 +f 857/2953/688 880/2972/706 879/2969/704 +f 879/2969/704 870/2973/707 869/2970/696 +f 862/2955/690 880/2972/706 860/2952/687 +f 881/2974/708 870/2973/707 880/2972/706 +f 864/2957/692 881/2974/708 862/2955/690 +f 882/2975/709 871/2976/697 881/2974/708 +f 866/2959/694 882/2975/709 864/2957/692 +f 882/2975/709 873/2977/710 872/2978/695 +f 884/2979/711 874/2964/699 876/2965/700 +f 884/2979/711 886/2980/712 875/2963/698 +f 885/2981/713 888/2982/714 886/2980/712 +f 875/2963/698 889/2983/715 858/2951/686 +f 886/2980/712 890/2984/716 889/2983/715 +f 858/2951/686 891/2985/717 859/2986/718 +f 889/2983/715 892/2987/719 891/2985/717 +f 861/2954/689 891/2985/717 893/2988/720 +f 893/2988/720 892/2987/719 894/2989/721 +f 863/2956/691 893/2988/720 895/2990/722 +f 895/2990/722 894/2989/721 896/2991/723 +f 865/2958/693 895/2990/722 897/2992/724 +f 897/2992/724 896/2991/723 898/2993/725 +f 894/2994/721 892/2995/719 890/2996/716 +f 900/2997/726 902/2998/727 899/2999/728 +f 902/2998/727 903/3000/729 904/3001/730 +f 904/3001/730 905/3002/731 906/3003/732 +f 906/3003/732 907/3004/733 908/3005/734 +f 914/3006/735 915/3007/736 910/3008/737 +f 917/3009/738 899/2999/728 916/3010/739 +f 918/3011/740 919/3012/741 920/3013/742 +f 919/3012/741 909/3014/743 920/3013/742 +f 916/3010/739 921/3015/744 919/3012/741 +f 919/3012/741 911/3016/745 910/3017/737 +f 899/2999/728 922/3018/746 921/3015/744 +f 921/3015/744 912/3019/747 911/3016/745 +f 904/3001/730 922/3018/746 902/2998/727 +f 923/3020/748 912/3019/747 922/3018/746 +f 906/3003/732 923/3020/748 904/3001/730 +f 924/3021/749 913/3022/750 923/3020/748 +f 908/3005/734 924/3021/749 906/3003/732 +f 924/3021/749 915/3023/736 914/3024/735 +f 926/3025/751 916/3010/739 918/3011/740 +f 926/3025/751 928/3026/752 917/3009/738 +f 927/3027/753 930/3028/754 928/3026/752 +f 917/3009/738 931/3029/755 900/2997/726 +f 928/3026/752 932/3030/756 931/3029/755 +f 900/2997/726 933/3031/757 901/3032/758 +f 931/3029/755 934/3033/759 933/3031/757 +f 903/3000/729 933/3031/757 935/3034/760 +f 935/3034/760 934/3033/759 936/3035/761 +f 905/3002/731 935/3034/760 937/3036/762 +f 937/3036/762 936/3035/761 938/3037/763 +f 907/3004/733 937/3036/762 939/3038/764 +f 939/3038/764 938/3037/763 940/3039/765 +f 936/3040/761 934/3041/759 932/3042/756 +f 958/3043/766 960/1834/767 957/1833/768 +f 961/1832/769 963/3044/770 964/416/770 +f 966/415/771 968/3045/772 965/3046/773 +f 969/3047/774 965/3046/773 970/3048/775 +f 959/3049/776 967/414/772 960/3050/767 +f 962/3051/777 972/3052/778 971/3053/778 +f 957/3054/768 963/3044/770 958/3055/766 +f 970/3056/775 972/1831/778 969/1830/774 +f 974/3057/779 976/1840/780 973/1839/779 +f 977/1838/781 979/3058/782 980/422/782 +f 982/421/783 984/3059/784 981/3060/785 +f 982/421/783 986/3061/786 985/3062/787 +f 975/3063/780 983/420/788 976/3064/780 +f 987/3065/789 977/1838/781 988/3066/789 +f 973/3067/779 979/3058/782 974/3068/779 +f 985/1836/787 987/3069/789 988/1837/789 +f 994/3070/768 996/1845/776 993/1844/768 +f 997/1843/790 999/3071/770 1000/425/770 +f 1001/3072/791 1003/423/772 1004/3073/772 +f 1002/424/791 1006/3074/774 1005/3075/774 +f 1004/3073/772 996/3076/776 995/3077/776 +f 1007/3078/778 997/1843/790 1008/3079/792 +f 1000/425/770 994/3080/768 993/3081/768 +f 1005/1841/774 1007/3082/778 1008/1842/792 +f 1009/1850/779 1011/3083/793 1012/1851/793 +f 1013/1849/781 1015/3084/782 1016/431/782 +f 1018/430/783 1020/3085/788 1017/3086/783 +f 1021/3087/794 1017/3086/783 1022/3088/794 +f 1011/3089/793 1019/429/788 1012/3090/793 +f 1023/3091/789 1013/1849/781 1024/3092/789 +f 1009/3093/779 1015/3084/782 1010/3094/779 +f 1022/3095/794 1024/1848/789 1021/1847/794 +f 1030/3096/768 1032/1856/776 1029/1855/768 +f 1033/1854/769 1035/3097/770 1036/434/770 +f 1038/433/791 1040/3098/772 1037/3099/773 +f 1041/3100/774 1037/3099/773 1042/3101/774 +f 1040/3098/772 1032/3102/776 1031/3103/776 +f 1043/3104/778 1033/1854/769 1044/3105/795 +f 1036/434/770 1030/3106/768 1029/3107/768 +f 1042/3108/774 1044/1853/795 1041/1852/774 +f 1046/3109/796 1048/1862/780 1045/1861/797 +f 1049/1860/798 1051/3110/799 1052/440/799 +f 1054/439/783 1056/3111/788 1053/3112/783 +f 1057/3113/787 1053/3112/783 1058/3114/787 +f 1047/3115/780 1055/438/788 1048/3116/780 +f 1050/3117/798 1060/3118/789 1059/3119/789 +f 1045/3120/797 1051/3110/799 1046/3121/796 +f 1057/1858/787 1059/3122/789 1060/1859/789 +f 1066/1866/800 1068/3123/801 1065/1867/801 +f 1070/1865/802 1072/3124/803 1069/441/804 +f 1073/3125/805 1075/1864/806 1076/443/805 +f 1077/3126/807 1073/3125/805 1076/443/805 +f 1067/3127/800 1075/1864/806 1074/3128/806 +f 1080/3129/808 1072/3124/803 1079/3130/808 +f 1065/3131/801 1071/3132/809 1070/1865/802 +f 1080/442/808 1078/3133/807 1077/1863/807 +f 1082/1872/780 1084/3134/779 1081/1873/779 +f 1086/1871/782 1088/3135/781 1085/447/781 +f 1090/3136/788 1092/449/783 1089/3137/783 +f 1094/3138/794 1092/449/783 1093/3139/794 +f 1082/3140/780 1090/3136/788 1083/3141/780 +f 1096/3142/789 1088/3135/781 1095/3143/789 +f 1081/3144/779 1087/3145/782 1086/1871/782 +f 1096/448/789 1094/3146/794 1093/1869/794 +f 1102/1877/800 1104/3147/801 1101/1878/801 +f 1105/450/803 1107/3148/809 1108/3149/803 +f 1110/3150/810 1112/452/811 1109/3151/805 +f 1113/3152/807 1109/3151/805 1112/452/811 +f 1102/3153/800 1110/3150/810 1103/3154/800 +f 1116/3155/808 1108/3149/803 1115/3156/808 +f 1101/3157/801 1107/3148/809 1106/1876/809 +f 1116/451/808 1114/3158/807 1113/1874/807 +f 1117/1884/796 1119/3159/793 1120/3160/797 +f 1122/1882/799 1124/3161/781 1121/456/781 +f 1125/3162/783 1127/1881/788 1128/458/783 +f 1129/3163/794 1125/3162/783 1128/458/783 +f 1118/3164/780 1126/3165/788 1119/3166/793 +f 1131/3167/789 1121/456/781 1124/3161/781 +f 1120/3168/797 1122/1882/799 1117/3169/796 +f 1132/457/789 1130/3170/794 1129/1880/794 +f 1138/1888/800 1140/3171/801 1137/1889/801 +f 1141/459/803 1143/3172/809 1144/3173/803 +f 1146/3174/806 1148/461/805 1145/3175/805 +f 1149/3176/807 1145/3175/805 1148/461/805 +f 1138/3177/800 1146/3174/806 1139/3178/800 +f 1152/3179/808 1144/3173/803 1151/3180/808 +f 1137/3181/801 1143/3172/809 1142/1887/809 +f 1152/460/808 1150/3182/807 1149/1885/807 +f 1154/1894/780 1156/3183/779 1153/1895/779 +f 1157/465/781 1159/3184/782 1160/3185/781 +f 1162/3186/788 1164/467/812 1161/3187/813 +f 1166/3188/787 1164/467/812 1165/3189/787 +f 1154/3190/780 1162/3186/788 1155/3191/780 +f 1167/3192/814 1157/465/781 1160/3185/781 +f 1156/3193/779 1158/1893/782 1153/3194/779 +f 1168/466/814 1166/3195/787 1165/1891/787 +f 1196/3196/815 1198/1907/816 1195/1906/815 +f 1199/1905/817 1201/3197/818 1202/507/819 +f 1204/506/820 1206/3198/821 1203/3199/820 +f 1207/3200/822 1203/3199/820 1208/3201/822 +f 1197/3202/816 1205/505/821 1198/3203/816 +f 1200/3204/817 1210/3205/823 1209/3206/823 +f 1195/3207/815 1201/3197/818 1196/3208/815 +f 1208/3209/822 1210/1904/823 1207/1903/822 +f 1212/3210/824 1214/1913/825 1211/1912/824 +f 1215/1911/826 1217/3211/827 1218/513/827 +f 1220/512/828 1222/3212/829 1219/3213/830 +f 1220/512/828 1224/3214/831 1223/3215/831 +f 1213/3216/832 1221/511/833 1214/3217/825 +f 1216/3218/826 1226/3219/834 1225/3220/834 +f 1218/513/827 1212/3221/824 1211/3222/824 +f 1223/1909/831 1225/3223/834 1226/1910/834 +f 1232/3224/815 1234/1918/816 1231/1917/815 +f 1235/1916/817 1237/3225/835 1238/516/818 +f 1239/3226/820 1241/514/821 1242/3227/821 +f 1240/515/820 1244/3228/822 1243/3229/822 +f 1242/3227/821 1234/3230/816 1233/3231/816 +f 1245/3232/823 1235/1916/817 1246/3233/823 +f 1231/3234/815 1237/3225/835 1232/3235/815 +f 1244/3236/822 1246/1915/823 1243/1914/822 +f 1247/1923/824 1249/3237/836 1250/1924/836 +f 1251/1922/826 1253/3238/837 1254/522/837 +f 1256/521/828 1258/3239/833 1255/3240/828 +f 1256/521/828 1260/3241/831 1259/3242/831 +f 1258/3239/833 1250/3243/836 1249/3244/836 +f 1261/3245/834 1251/1922/826 1262/3246/834 +f 1247/3247/824 1253/3238/837 1248/3248/824 +f 1260/3249/831 1262/1921/834 1259/1920/831 +f 1268/3250/815 1270/1929/816 1267/1928/815 +f 1271/1927/817 1273/3251/835 1274/525/835 +f 1276/524/820 1278/3252/821 1275/3253/820 +f 1279/3254/822 1275/3253/820 1280/3255/822 +f 1278/3252/821 1270/3256/816 1269/3257/816 +f 1281/3258/823 1271/1927/817 1282/3259/823 +f 1267/3260/815 1273/3251/835 1268/3261/815 +f 1280/3262/822 1282/1926/823 1279/1925/822 +f 1284/3263/824 1286/1935/836 1283/1934/824 +f 1287/1933/826 1289/3264/837 1290/531/837 +f 1292/530/828 1294/3265/833 1291/3266/828 +f 1295/3267/831 1291/3266/828 1296/3268/831 +f 1285/3269/836 1293/529/833 1286/3270/836 +f 1288/3271/826 1298/3272/838 1297/3273/839 +f 1283/3274/824 1289/3264/837 1284/3275/824 +f 1295/1931/831 1297/3276/839 1298/1932/838 +f 1304/1939/840 1306/3277/841 1303/1940/841 +f 1308/1938/842 1310/3278/843 1307/532/843 +f 1311/3279/844 1313/1937/845 1314/534/846 +f 1315/3280/847 1311/3279/844 1314/534/846 +f 1305/3281/840 1313/1937/845 1312/3282/845 +f 1318/3283/848 1310/3278/843 1317/3284/848 +f 1303/3285/841 1309/3286/849 1308/1938/842 +f 1318/533/848 1316/3287/847 1315/1936/847 +f 1320/1945/832 1322/3288/824 1319/1946/824 +f 1324/1944/827 1326/3289/826 1323/538/826 +f 1327/3290/850 1329/1943/851 1330/540/852 +f 1332/3291/853 1330/540/852 1331/3292/831 +f 1320/3293/832 1328/3294/854 1321/3295/836 +f 1334/3296/834 1326/3289/826 1333/3297/834 +f 1319/3298/824 1325/3299/827 1324/1944/827 +f 1334/539/834 1332/3300/853 1331/1942/831 +f 1340/1950/840 1342/3301/855 1339/1951/841 +f 1343/541/843 1345/3302/849 1346/3303/856 +f 1348/3304/857 1350/543/846 1347/3305/858 +f 1351/3306/847 1347/3305/858 1350/543/846 +f 1340/3307/840 1348/3304/857 1341/3308/840 +f 1354/3309/848 1346/3303/856 1353/3310/859 +f 1339/3311/841 1345/3302/849 1344/1949/849 +f 1354/542/848 1352/3312/847 1351/1947/847 +f 1355/1957/824 1357/3313/836 1358/3314/824 +f 1360/1955/827 1362/3315/826 1359/547/826 +f 1363/3316/828 1365/1954/833 1366/549/828 +f 1367/3317/853 1363/3316/828 1366/549/828 +f 1356/3318/836 1364/3319/833 1357/3320/836 +f 1370/3321/839 1362/3315/826 1369/3322/839 +f 1358/3323/824 1360/1955/827 1355/3324/824 +f 1370/548/839 1368/3325/853 1367/1953/853 +f 1376/1961/840 1378/3326/841 1375/1962/841 +f 1379/550/843 1381/3327/849 1382/3328/856 +f 1384/3329/845 1386/552/860 1383/3330/861 +f 1387/3331/862 1383/3330/861 1386/552/860 +f 1376/3332/840 1384/3329/845 1377/3333/840 +f 1390/3334/848 1382/3328/856 1389/3335/848 +f 1378/3336/841 1380/1960/849 1375/3337/841 +f 1390/551/848 1388/3338/862 1387/1958/862 +f 1392/1967/836 1394/3339/824 1391/1968/824 +f 1396/1966/827 1398/3340/826 1395/556/826 +f 1399/3341/828 1401/1965/833 1402/558/828 +f 1403/3342/831 1399/3341/828 1402/558/828 +f 1393/3343/836 1401/1965/833 1400/3344/833 +f 1405/3345/834 1395/556/826 1398/3340/826 +f 1394/3346/824 1396/1966/827 1391/3347/824 +f 1406/557/834 1404/3348/831 1403/1964/831 +f 1505/3349/110 1507/3350/863 1504/3351/110 +f 1508/3352/1 1498/678/864 1497/1997/1 +f 1511/687/865 1513/2001/3 1510/2009/3 +f 1514/3353/110 1499/3354/866 1515/3355/866 +f 1517/683/864 1519/3356/866 1516/3357/864 +f 1502/680/865 1521/3358/867 1520/684/865 +f 1512/681/865 1507/3350/863 1506/3359/868 +f 1498/678/864 1515/3355/866 1499/3354/866 +f 1505/3360/110 1519/3356/866 1518/3361/866 +f 1502/680/865 1523/2007/3 1503/1996/3 +f 1522/2000/1 1516/3357/864 1524/3362/1 +f 1500/3363/110 1521/3358/867 1501/3364/868 +f 1597/3365/130 1599/3366/869 1596/3367/130 +f 1600/3368/1 1590/773/870 1589/2032/1 +f 1602/2044/3 1604/776/871 1605/2036/3 +f 1606/3369/130 1591/3370/872 1607/3371/873 +f 1609/778/870 1611/3372/873 1608/3373/870 +f 1594/775/874 1613/3374/869 1612/779/875 +f 1604/776/871 1599/3366/869 1598/3375/869 +f 1590/773/870 1607/3371/873 1591/3370/872 +f 1597/3376/130 1611/3372/873 1610/3377/873 +f 1594/775/874 1615/2042/3 1595/2031/3 +f 1609/778/870 1616/3378/1 1614/2035/1 +f 1592/3379/130 1613/3374/869 1593/3380/876 +f 1689/3381/28 1691/3382/877 1688/3383/28 +f 1692/3384/1 1682/867/878 1681/2068/1 +f 1695/876/879 1697/2072/3 1694/2080/3 +f 1698/3385/28 1683/3386/880 1699/3387/880 +f 1701/872/878 1703/3388/881 1700/3389/878 +f 1686/869/879 1705/3390/877 1704/873/882 +f 1696/870/883 1691/3382/877 1690/3391/877 +f 1682/867/878 1699/3387/880 1683/3386/880 +f 1689/3392/28 1703/3388/881 1702/3393/881 +f 1686/869/879 1707/2078/3 1687/2067/3 +f 1706/2071/1 1700/3389/878 1708/3394/1 +f 1684/3395/28 1705/3390/877 1685/3396/877 +f 1780/3397/105 1782/3398/884 1783/3399/884 +f 1784/3400/1 1774/962/885 1773/2103/1 +f 1787/971/886 1789/2107/3 1786/2115/3 +f 1790/3401/105 1775/3402/887 1791/3403/887 +f 1793/967/885 1795/3404/887 1792/3405/885 +f 1778/964/886 1797/3406/888 1796/968/886 +f 1788/965/886 1783/3399/884 1782/3398/884 +f 1774/962/885 1791/3403/887 1775/3402/887 +f 1781/3407/105 1795/3404/887 1794/3408/887 +f 1778/964/886 1799/2113/3 1779/2102/3 +f 1798/2106/1 1792/3405/885 1800/3409/1 +f 1776/3410/105 1797/3406/888 1777/3411/884 +f 1873/3412/125 1875/3413/889 1872/3414/125 +f 1876/3415/1 1866/1056/890 1865/2139/1 +f 1879/1065/891 1881/2143/3 1878/2151/3 +f 1882/3416/125 1867/3417/892 1883/3418/892 +f 1885/1061/890 1887/3419/893 1884/3420/894 +f 1870/1058/895 1889/3421/889 1888/1062/891 +f 1880/1059/891 1875/3413/889 1874/3422/889 +f 1866/1056/890 1883/3418/892 1867/3417/892 +f 1873/3423/125 1887/3419/893 1886/3424/893 +f 1870/1058/895 1891/2149/3 1871/2138/3 +f 1890/2142/1 1884/3420/894 1892/3425/1 +f 1868/3426/125 1889/3421/889 1869/3427/889 +f 1965/3428/143 1967/3429/896 1964/3430/143 +f 1968/3431/1 1958/1151/897 1957/2174/1 +f 1971/1160/898 1973/2178/3 1970/2186/3 +f 1974/3432/143 1959/3433/899 1975/3434/900 +f 1977/1156/901 1979/3435/899 1976/3436/901 +f 1962/1153/898 1981/3437/896 1980/1157/902 +f 1972/1154/898 1967/3429/896 1966/3438/896 +f 1958/1151/897 1975/3434/900 1959/3433/899 +f 1965/3439/143 1979/3435/899 1978/3440/899 +f 1962/1153/898 1983/2184/3 1963/2173/3 +f 1982/2177/1 1976/3436/901 1984/3441/1 +f 1960/3442/143 1981/3437/896 1961/3443/896 +f 2057/3444/160 2059/3445/903 2056/3446/160 +f 2060/3447/1 2050/1245/904 2049/2210/1 +f 2063/1254/905 2065/2214/3 2062/2222/3 +f 2066/3448/160 2051/3449/906 2067/3450/906 +f 2069/1250/904 2071/3451/906 2068/3452/904 +f 2054/1247/905 2073/3453/907 2072/1251/905 +f 2064/1248/905 2059/3445/903 2058/3454/903 +f 2050/1245/904 2067/3450/906 2051/3449/906 +f 2057/3455/160 2071/3451/906 2070/3456/906 +f 2054/1247/905 2075/2220/3 2055/2209/3 +f 2074/2213/1 2068/3452/904 2076/3457/1 +f 2052/3458/160 2073/3453/907 2053/3459/903 +f 2149/3460/178 2151/3461/908 2148/3462/178 +f 2152/3463/1 2142/1339/909 2141/2246/1 +f 2155/1348/910 2157/2250/3 2154/2258/3 +f 2158/3464/178 2143/3465/911 2159/3466/911 +f 2161/1344/909 2163/3467/912 2160/3468/909 +f 2146/1341/910 2165/3469/908 2164/1345/913 +f 2156/1342/914 2151/3461/908 2150/3470/915 +f 2142/1339/909 2159/3466/911 2143/3465/911 +f 2149/3471/178 2163/3467/912 2162/3472/912 +f 2146/1341/910 2167/2256/3 2147/2245/3 +f 2166/2249/1 2160/3468/909 2168/3473/1 +f 2144/3474/178 2165/3469/908 2145/3475/916 +f 2241/3476/27 2243/3477/917 2240/3478/27 +f 2244/3479/1 2234/1433/918 2233/2282/1 +f 2247/1442/919 2249/2286/3 2246/2294/3 +f 2250/3480/27 2235/3481/920 2251/3482/920 +f 2253/1438/918 2255/3483/921 2252/3484/918 +f 2238/1435/922 2257/3485/917 2256/1439/923 +f 2248/1436/924 2243/3477/917 2242/3486/917 +f 2234/1433/918 2251/3482/920 2235/3481/920 +f 2241/3487/27 2255/3483/921 2254/3488/921 +f 2238/1435/922 2259/2292/3 2239/2281/3 +f 2258/2285/1 2252/3484/918 2260/3489/1 +f 2236/3490/27 2257/3485/917 2237/3491/917 +f 2333/3492/104 2335/3493/925 2332/3494/104 +f 2336/3495/1 2326/1529/926 2325/2316/1 +f 2339/1538/927 2341/2320/3 2338/2328/3 +f 2342/3496/104 2327/3497/928 2343/3498/928 +f 2345/1534/926 2347/3499/928 2344/3500/926 +f 2330/1531/927 2349/3501/925 2348/1535/927 +f 2340/1532/927 2335/3493/925 2334/3502/925 +f 2326/1529/926 2343/3498/928 2327/3497/928 +f 2333/3503/104 2347/3499/928 2346/3504/928 +f 2330/1531/927 2351/2326/3 2331/2315/3 +f 2350/2319/1 2344/3500/926 2352/3505/1 +f 2328/3506/104 2349/3501/925 2329/3507/925 +f 2425/3508/124 2427/3509/929 2424/3510/124 +f 2428/3511/1 2418/1625/930 2417/2350/1 +f 2431/1634/931 2433/2354/3 2430/2362/3 +f 2434/3512/124 2419/3513/932 2435/3514/932 +f 2437/1630/930 2439/3515/933 2436/3516/934 +f 2422/1627/931 2441/3517/929 2440/1631/935 +f 2432/1628/935 2427/3509/929 2426/3518/929 +f 2418/1625/930 2435/3514/932 2419/3513/932 +f 2425/3519/124 2439/3515/933 2438/3520/933 +f 2422/1627/931 2443/2360/3 2423/2349/3 +f 2442/2353/1 2436/3516/934 2444/3521/1 +f 2420/3522/124 2441/3517/929 2421/3523/929 +f 2/2365/334 3/2400/366 4/2366/335 +f 4/2366/335 3/2400/366 5/2368/337 +f 6/2369/338 5/2368/337 7/2370/339 +f 8/2371/340 7/2370/339 9/2372/341 +f 17/3524/358 11/3525/351 16/2374/343 +f 11/3525/351 12/3526/353 16/2374/343 +f 12/3526/353 13/2375/344 16/2374/343 +f 13/2375/344 14/3527/355 15/2376/345 +f 19/2377/346 2/2365/334 1/2367/336 +f 20/2379/348 18/2378/347 21/2380/349 +f 21/2380/349 12/2385/353 11/2382/351 +f 18/2378/347 1/2367/336 23/2383/352 +f 21/2380/349 23/2383/352 13/2384/344 +f 1/2367/336 4/2366/335 24/2386/354 +f 23/2383/352 24/2386/354 14/2387/355 +f 6/2369/338 25/2388/356 24/2386/354 +f 25/2388/356 15/2390/345 14/2387/355 +f 8/2371/340 26/2389/357 25/2388/356 +f 26/2389/357 16/2392/343 15/2390/345 +f 10/2373/342 27/3528/936 26/2389/357 +f 26/2389/357 27/3528/936 17/2391/358 +f 28/2393/359 19/2377/346 18/2378/347 +f 28/2393/359 29/2395/361 30/2394/360 +f 29/2395/361 31/3529/937 32/2396/362 +f 19/2377/346 30/2394/360 33/2397/363 +f 30/2394/360 32/2396/362 34/2398/364 +f 2/2365/334 33/2397/363 35/2399/365 +f 33/2397/363 34/2398/364 36/2401/367 +f 5/2368/337 3/2400/366 35/2399/365 +f 37/2402/368 35/2399/365 36/2401/367 +f 7/2370/339 5/2368/337 37/2402/368 +f 39/2404/370 37/2402/368 38/2403/369 +f 9/2372/341 7/2370/339 39/2404/370 +f 41/2406/372 39/2404/370 40/2405/371 +f 34/2410/364 32/3530/362 40/3531/371 +f 32/3530/362 31/3532/937 40/3531/371 +f 31/3532/937 42/3533/373 40/3531/371 +f 40/3531/371 38/2408/369 34/2410/364 +f 72/2411/374 73/2455/417 74/2412/375 +f 74/2412/375 73/2455/417 75/2414/377 +f 75/2414/377 77/2417/380 78/2416/379 +f 77/2417/380 79/2419/382 80/2418/381 +f 79/2419/382 81/2475/384 82/2420/383 +f 81/2421/384 83/2424/386 84/2422/385 +f 83/2424/386 85/2426/388 86/2425/387 +f 85/2426/388 87/2453/415 88/2427/389 +f 88/2427/389 87/2453/415 89/2428/390 +f 89/2428/390 91/2462/424 92/2430/392 +f 92/2430/392 91/2462/424 93/2431/393 +f 95/2433/395 96/2456/418 97/2434/396 +f 97/2434/396 99/2437/399 100/2436/398 +f 99/2437/399 101/2439/401 102/2438/400 +f 101/2439/401 103/2464/426 104/2440/402 +f 104/2440/402 103/2464/426 105/2441/403 +f 105/2441/403 107/2458/420 108/2443/405 +f 77/2417/380 75/2414/377 109/2444/406 +f 112/2446/408 72/2411/374 71/2413/376 +f 78/2416/379 80/2418/381 113/2448/410 +f 116/2450/412 117/3534/456 118/2451/413 +f 85/2426/388 116/2450/412 115/2452/414 +f 72/2411/374 119/2478/436 120/2454/416 +f 96/2456/418 121/2472/433 122/2457/419 +f 107/2458/420 105/2441/403 123/2459/421 +f 81/2421/384 125/2502/434 126/2461/423 +f 91/2462/424 127/2476/435 128/2463/425 +f 103/2464/426 101/2439/401 129/2465/427 +f 77/2417/380 110/3535/407 131/2467/429 +f 87/2453/415 115/2452/414 132/2468/430 +f 97/2434/396 122/2504/419 133/2469/431 +f 107/2458/420 124/2460/422 134/2470/432 +f 73/2455/417 120/2485/416 109/2444/406 +f 85/2426/388 83/2424/386 126/2461/423 +f 93/2431/393 128/2497/425 121/2472/433 +f 105/2441/403 103/2464/426 130/2466/428 +f 79/2419/382 131/2467/429 125/2474/434 +f 89/2428/390 132/2488/430 127/2476/435 +f 101/2439/401 99/2437/399 133/2469/431 +f 112/2446/408 134/2499/432 119/2478/436 +f 135/2479/437 136/2495/449 137/2480/438 +f 119/2478/436 139/2500/452 140/2482/440 +f 129/2465/427 141/3536/457 142/2483/441 +f 115/2452/414 118/2451/413 143/2484/442 +f 120/2485/416 140/2524/440 144/2486/443 +f 130/2466/428 142/2483/441 145/2487/444 +f 132/2488/430 143/2527/442 146/2489/445 +f 109/2444/406 144/2486/443 147/2490/446 +f 124/2460/422 123/2459/421 145/2491/444 +f 127/2476/435 146/2489/445 149/2493/448 +f 131/2467/429 110/3535/407 147/2494/446 +f 124/2460/422 148/2492/447 150/2496/450 +f 128/2497/425 149/3537/448 151/2498/451 +f 125/2474/434 131/2467/429 136/2495/449 +f 134/2499/432 150/2511/450 139/2500/452 +f 122/2457/419 121/2472/433 151/2498/451 +f 125/2502/434 135/2514/437 153/2503/454 +f 122/2504/419 152/3538/453 154/2505/455 +f 116/2471/412 126/2461/423 153/2503/454 +f 133/2469/431 154/2505/455 141/2507/457 +f 156/2508/458 157/2567/477 158/2509/459 +f 150/2511/450 159/3539/475 160/2512/461 +f 151/2498/451 161/2536/476 162/2513/462 +f 135/2514/437 138/3540/439 163/2515/463 +f 154/2505/455 152/3538/453 162/2516/462 +f 117/2506/456 153/2503/454 163/2515/463 +f 141/2507/457 154/2505/455 156/2508/458 +f 118/2451/413 117/3534/456 164/2518/464 +f 140/2482/440 139/2500/452 160/2512/461 +f 142/2483/441 141/3536/457 155/2521/460 +f 143/2484/442 118/2451/413 165/2519/465 +f 140/2524/440 166/3541/466 169/2525/469 +f 142/2483/441 167/2522/467 170/2526/470 +f 143/2527/442 168/3542/468 171/2528/471 +f 144/2486/443 169/2525/469 172/2529/472 +f 148/2492/447 145/2491/444 170/2530/470 +f 146/2489/445 171/2528/471 174/2532/474 +f 136/2495/449 147/2494/446 172/2533/472 +f 148/2492/447 173/2531/473 159/2534/475 +f 151/2498/451 149/3537/448 174/2535/474 +f 192/3543/485 175/3544/482 176/3545/494 +f 176/3545/494 177/3546/491 178/3547/488 +f 178/3547/488 179/3548/486 180/3549/483 +f 180/3549/483 158/3550/459 157/2537/477 +f 157/2537/477 181/3551/495 184/2538/478 +f 181/3551/495 182/3552/492 184/2538/478 +f 182/3552/492 183/3553/489 184/2538/478 +f 184/2538/478 185/3554/484 186/3555/481 +f 186/3555/481 187/3556/480 188/2539/479 +f 188/2539/479 189/3557/493 190/3558/490 +f 190/3558/490 191/3559/487 192/3543/485 +f 192/3543/485 176/3545/494 157/2537/477 +f 176/3545/494 178/3547/488 157/2537/477 +f 178/3547/488 180/3549/483 157/2537/477 +f 184/2538/478 186/3555/481 188/2539/479 +f 188/2539/479 190/3558/490 157/2537/477 +f 190/3558/490 192/3543/485 157/2537/477 +f 165/2519/465 164/2518/464 187/2540/480 +f 160/2512/461 176/2562/494 175/2542/482 +f 167/2522/467 155/2521/460 158/2543/459 +f 168/2523/468 165/2519/465 186/2541/481 +f 169/2525/469 166/3541/466 175/2546/482 +f 167/2522/467 180/2544/483 179/2548/486 +f 171/2528/471 168/3542/468 185/2549/484 +f 169/2525/469 192/2547/485 191/2551/487 +f 173/2531/473 170/2530/470 179/2552/486 +f 171/2528/471 184/2550/478 183/2554/489 +f 137/2480/438 172/2533/472 191/2555/487 +f 173/2531/473 178/2553/488 177/2557/491 +f 161/2536/476 174/2535/474 183/2558/489 +f 137/2480/438 190/2556/490 189/2560/493 +f 160/2512/461 159/3539/475 177/2561/491 +f 161/2536/476 182/2559/492 181/2563/495 +f 163/2515/463 138/3540/439 189/2564/493 +f 156/2508/458 162/2516/462 181/2566/495 +f 163/2515/463 188/2565/479 187/2568/480 +f 194/2569/496 195/71/68 196/66/497 +f 90/2429/391 197/2590/507 198/2571/499 +f 100/2436/398 193/2570/498 199/2572/500 +f 111/2447/409 200/2593/508 201/2573/501 +f 76/2415/378 202/2581/509 203/2574/502 +f 84/2422/385 86/2425/387 204/2575/503 +f 95/2433/395 206/2585/511 207/2577/505 +f 106/2442/404 208/3560/512 209/2578/506 +f 82/2420/383 210/3561/513 113/2448/410 +f 92/2430/392 211/2588/514 197/2579/507 +f 102/2438/400 194/2569/496 193/2570/498 +f 71/2413/376 212/2584/510 200/2580/508 +f 78/2416/379 114/2591/411 202/2581/509 +f 88/2427/389 198/2571/499 204/2582/503 +f 71/2413/376 74/2412/375 203/2583/502 +f 98/2435/397 199/3562/500 206/2585/511 +f 108/2443/405 201/2573/501 208/2586/512 +f 84/2422/385 205/2576/504 210/2587/513 +f 94/2432/394 207/2592/505 211/2588/514 +f 104/2440/402 209/2578/506 194/2589/496 +f 198/2571/499 217/73/517 218/75/515 +f 203/2583/502 219/1652/518 220/58/64 +f 194/2589/496 209/2578/506 213/36/516 +f 197/2590/507 221/80/520 217/73/517 +f 202/2581/509 222/42/521 219/82/518 +f 209/2578/506 208/3560/512 214/34/519 +f 197/2579/507 211/2588/514 223/37/61 +f 114/2591/411 224/40/522 222/42/521 +f 201/2573/501 225/43/523 214/45/519 +f 207/2592/505 226/1646/525 223/37/61 +f 113/2448/410 227/48/526 224/50/522 +f 200/2593/508 228/51/527 225/43/523 +f 207/2577/505 206/2585/511 229/62/524 +f 113/2448/410 210/3561/513 230/56/69 +f 200/2580/508 212/2584/510 220/58/64 +f 206/2585/511 199/3562/500 231/61/528 +f 205/2576/504 232/69/529 230/63/69 +f 193/2570/498 196/66/497 231/68/528 +f 204/2575/503 218/1650/515 232/69/529 +f 112/2446/408 111/2447/409 108/2443/405 +f 96/2456/418 95/2433/395 94/2432/394 +f 234/1647/520 235/3563/520 236/2594/517 +f 243/54/521 265/2599/521 264/2595/518 +f 242/57/497 244/1648/68 258/2596/68 +f 245/77/61 253/2606/61 235/2598/520 +f 246/1649/522 266/3564/522 265/2599/521 +f 247/64/516 259/2604/516 258/2600/68 +f 246/67/522 248/72/526 267/2601/526 +f 247/64/516 249/70/519 260/2603/519 +f 250/1651/69 268/3565/69 267/2601/526 +f 251/81/523 261/2608/523 260/2605/519 +f 252/76/525 254/3566/525 253/2606/61 +f 216/35/529 269/2610/529 268/2607/69 +f 238/1653/527 262/3567/527 261/2608/523 +f 240/41/524 255/2612/524 254/2609/525 +f 215/1644/515 270/3568/515 269/2610/529 +f 237/47/64 263/2614/64 262/2611/527 +f 239/1645/528 256/3569/528 255/2612/524 +f 215/44/515 233/52/517 236/2594/517 +f 241/46/518 264/3570/518 263/2614/64 +f 242/57/497 257/2597/497 256/2615/528 +f 272/2616/530 273/2622/534 274/2617/160 +f 276/2619/531 277/2625/536 278/2620/532 +f 272/2616/530 275/2621/533 278/2620/532 +f 274/2617/160 273/2622/534 279/2623/535 +f 277/2625/536 281/3571/552 282/2626/537 +f 273/2622/534 278/2620/532 282/2626/537 +f 279/2627/535 283/2633/540 284/2628/105 +f 282/2630/537 281/3572/552 285/2631/538 +f 279/2627/535 282/2630/537 286/2632/539 +f 284/2628/105 283/2633/540 287/2634/541 +f 286/2632/539 285/2631/538 289/2636/542 +f 286/2632/539 290/2637/543 287/2634/541 +f 287/2634/541 290/2637/543 291/2638/544 +f 287/2634/541 292/2639/545 293/2640/110 +f 290/2637/543 289/2636/542 294/2641/546 +f 291/2638/544 295/2645/549 296/2642/547 +f 292/2639/545 296/2642/547 297/2643/68 +f 291/2638/544 294/2641/546 298/2644/548 +f 296/2642/547 295/2645/549 299/2646/550 +f 281/2650/552 277/3573/536 276/3574/531 +f 276/3574/531 301/3575/938 281/2650/552 +f 301/3575/938 298/3576/548 281/2650/552 +f 298/3576/548 294/3577/546 281/2650/552 +f 294/3577/546 289/2648/542 281/2650/552 +f 296/2642/547 300/2647/551 302/2651/104 +f 298/2644/548 301/3578/938 299/2646/550 +f 300/2647/551 272/2616/530 271/2618/64 +f 299/2646/550 301/3578/938 276/2619/531 +f 299/2646/550 275/2621/533 272/2616/530 +f 304/2652/530 305/2658/534 306/2653/160 +f 308/2655/531 309/2660/536 310/2656/532 +f 304/2652/530 307/2657/533 310/2656/532 +f 305/2658/534 311/2662/535 312/2659/69 +f 309/2660/536 313/3579/552 314/2661/537 +f 310/2656/532 314/2661/537 311/2662/535 +f 311/2663/535 315/2669/540 316/2664/105 +f 313/2666/552 317/3580/538 318/2667/539 +f 314/2668/537 318/2667/539 315/2669/540 +f 316/2664/105 315/2669/540 319/2670/541 +f 318/2667/539 317/3580/538 321/2672/542 +f 315/2669/540 318/2667/539 322/2673/543 +f 322/2673/543 323/2676/544 324/2674/545 +f 320/2671/61 319/2670/541 324/2674/545 +f 321/2672/542 326/3581/546 323/2676/544 +f 323/2676/544 327/2680/549 328/2677/547 +f 324/2674/545 328/2677/547 329/2678/68 +f 323/2676/544 326/3581/546 330/2679/548 +f 328/2677/547 327/2680/549 331/2681/550 +f 313/2685/552 309/3582/536 308/3583/531 +f 308/3583/531 333/3584/938 313/2685/552 +f 333/3584/938 330/3585/548 313/2685/552 +f 330/3585/548 326/3586/546 313/2685/552 +f 326/3586/546 321/2683/542 313/2685/552 +f 328/2677/547 332/2682/551 334/2686/104 +f 330/2679/548 333/3587/938 331/2681/550 +f 334/2686/104 332/2682/551 304/2652/530 +f 331/2681/550 333/3587/938 308/2655/531 +f 332/2682/551 331/2681/550 307/2657/533 +f 364/131/553 365/135/554 366/2687/554 +f 365/135/554 367/140/555 368/2689/555 +f 368/2689/555 367/140/555 369/136/556 +f 369/136/556 371/127/557 372/2691/557 +f 372/2691/557 371/127/557 373/128/558 +f 373/128/558 375/124/559 376/2693/559 +f 376/2694/559 375/1681/559 377/122/560 +f 377/122/560 379/117/562 380/2696/562 +f 379/117/562 381/119/563 382/2697/563 +f 382/2697/563 381/119/563 383/138/564 +f 383/138/564 387/139/565 388/2699/565 +f 388/2699/565 387/139/565 364/131/553 +f 390/133/566 391/2704/566 392/2700/567 +f 393/120/568 405/2710/568 404/2701/569 +f 395/125/570 396/130/571 408/2702/571 +f 398/132/572 401/2711/572 391/2704/566 +f 389/134/567 392/2700/567 410/2705/573 +f 385/121/569 404/2701/569 403/2706/3 +f 394/126/575 395/125/570 407/2703/570 +f 397/129/1 399/137/574 410/2705/573 +f 386/118/3 403/2706/3 402/2709/576 +f 394/123/575 406/3588/575 405/2710/568 +f 396/130/571 397/129/1 409/2708/1 +f 400/141/576 402/2709/576 401/2711/572 +f 411/2712/577 412/2713/578 413/161/578 +f 412/2713/578 415/2714/579 416/162/579 +f 415/2714/579 417/2716/580 418/157/580 +f 419/2715/581 420/155/581 418/157/580 +f 419/2715/581 421/2718/582 422/152/582 +f 423/2717/583 424/153/583 422/152/582 +f 423/2719/583 425/2721/584 426/148/584 +f 427/2720/585 428/147/585 426/148/584 +f 427/2720/585 429/2722/586 430/145/586 +f 429/2722/586 431/2724/587 432/164/587 +f 435/2723/588 436/159/588 432/164/587 +f 435/2723/588 411/2712/577 414/160/577 +f 438/2725/589 439/3589/590 440/158/590 +f 434/146/591 455/2730/591 454/2726/592 +f 443/154/593 452/2731/593 451/2727/594 +f 440/158/590 439/3589/590 458/2728/595 +f 449/2729/596 438/2725/589 437/165/589 +f 433/1691/3 456/3590/3 455/2730/591 +f 442/151/597 453/3591/597 452/2731/593 +f 450/2732/1 449/2729/596 447/1695/596 +f 457/2733/598 456/3590/3 433/1691/3 +f 441/1692/592 454/2726/592 453/2734/597 +f 451/2727/594 450/2732/1 445/156/1 +f 446/1694/595 458/2728/595 457/2733/598 +f 531/2735/33 532/2745/599 533/2736/599 +f 534/2738/1 535/3592/600 524/252/600 +f 537/261/601 538/255/606 539/1729/3 +f 540/2739/33 526/3593/33 525/2740/602 +f 543/257/600 544/2747/604 545/2742/604 +f 528/254/601 527/2750/599 547/2744/599 +f 538/255/606 537/261/601 533/2736/599 +f 524/252/600 535/3592/600 541/2741/603 +f 531/2746/33 530/3594/33 545/2742/604 +f 528/254/601 546/258/606 549/1735/3 +f 548/1728/1 543/257/600 542/2743/605 +f 526/2749/33 540/3595/33 547/2744/599 +f 578/2751/607 579/3596/614 580/1757/608 +f 582/2752/609 583/2762/616 584/305/610 +f 585/2753/611 586/304/611 587/303/612 +f 589/2755/613 586/304/611 585/2753/611 +f 579/2757/614 588/2754/612 587/303/612 +f 582/2752/609 581/1755/609 592/2759/615 +f 577/2761/607 584/305/610 583/2762/616 +f 590/2764/613 591/3597/615 592/1754/615 +f 594/2765/617 595/3598/618 596/1763/618 +f 598/2766/619 599/3599/620 600/311/620 +f 602/310/621 603/309/624 604/2767/622 +f 602/310/621 601/2768/621 606/2769/623 +f 595/2771/618 604/2767/622 603/309/624 +f 598/2766/619 597/1761/619 608/2773/625 +f 600/311/620 599/3599/620 594/2775/617 +f 605/1759/623 606/3600/623 607/2777/625 +f 614/2778/607 615/3601/614 616/1768/614 +f 618/2779/609 619/2789/616 620/314/616 +f 621/2780/611 622/313/611 623/312/612 +f 622/313/611 621/2780/611 626/2782/613 +f 624/2781/612 623/312/612 616/2784/614 +f 627/2786/615 618/2779/609 617/1766/609 +f 613/2788/607 620/314/616 619/2789/616 +f 626/2791/613 627/3602/615 628/1765/615 +f 629/1773/617 630/3603/617 631/2792/618 +f 634/2793/619 635/2803/620 636/320/620 +f 638/319/621 639/318/624 640/2794/624 +f 638/319/621 637/2795/621 642/2796/623 +f 640/2794/624 639/318/624 632/2798/618 +f 634/2793/619 633/1772/619 644/2800/625 +f 629/2802/617 636/320/620 635/2803/620 +f 642/2805/623 643/3604/625 644/1771/625 +f 650/2806/607 651/3605/614 652/1779/614 +f 653/1777/609 654/3606/609 655/2807/616 +f 658/322/611 659/321/612 660/2808/612 +f 661/2810/613 658/322/611 657/2809/611 +f 660/2808/612 659/321/612 652/2812/614 +f 663/2814/615 654/3606/609 653/1777/609 +f 649/2816/607 656/323/616 655/2807/616 +f 662/2818/613 663/3607/615 664/1776/615 +f 666/2819/617 667/3608/618 668/1785/618 +f 670/2820/619 671/2830/628 672/329/626 +f 674/328/621 675/327/624 676/2821/624 +f 677/2823/623 674/328/621 673/2822/621 +f 676/2821/624 675/327/624 668/2825/618 +f 670/2820/619 669/1783/627 680/2827/625 +f 665/2829/617 672/329/626 671/2830/628 +f 677/1781/623 678/3609/623 679/2832/625 +f 686/1789/629 687/3610/629 688/2833/630 +f 690/1788/631 691/2842/641 692/2834/632 +f 693/2835/634 694/2838/638 695/1787/635 +f 697/2836/637 698/3611/642 693/2835/634 +f 687/2837/629 686/3612/629 695/1787/635 +f 700/2839/639 689/330/633 692/2834/632 +f 685/2841/630 688/3613/630 691/2842/641 +f 700/331/639 699/3614/640 698/2843/642 +f 702/1795/618 703/3615/618 704/2844/617 +f 706/1794/620 707/3616/620 708/2845/619 +f 710/2846/624 711/1793/939 712/338/621 +f 714/2848/623 709/2847/621 712/338/621 +f 702/2850/618 711/1793/939 710/2846/624 +f 716/2852/625 705/336/619 708/2845/619 +f 704/2854/617 707/3616/620 706/1794/620 +f 716/337/625 715/3617/625 714/2856/623 +f 722/1800/629 723/3618/629 724/2857/630 +f 725/339/632 726/1799/641 727/2858/641 +f 730/2860/635 731/1798/940 732/341/636 +f 733/2862/642 734/3619/644 729/2861/634 +f 722/2863/629 731/1798/940 730/2860/635 +f 736/2865/640 725/339/632 728/2859/632 +f 721/2867/630 724/3620/630 727/2858/641 +f 736/340/640 735/3621/643 734/2868/644 +f 737/1807/617 738/1806/618 739/2869/618 +f 742/1805/620 743/3622/626 744/2871/619 +f 745/2872/621 746/2875/624 747/1804/624 +f 749/2873/623 750/3623/623 745/2872/621 +f 738/2874/618 747/1804/624 746/2875/624 +f 751/2877/625 752/3624/625 741/345/619 +f 740/2878/617 743/3622/626 742/1805/620 +f 752/346/625 751/3625/625 750/2880/623 +f 758/1811/629 759/3626/629 760/2881/630 +f 761/348/632 762/1810/641 763/2882/641 +f 766/2884/635 767/1809/635 768/350/634 +f 769/2886/637 770/3627/637 765/2885/634 +f 758/2887/629 767/1809/635 766/2884/635 +f 772/2889/639 761/348/632 764/2883/632 +f 757/2891/630 760/3628/630 763/2882/641 +f 772/349/639 771/3629/639 770/2892/637 +f 774/1817/618 775/3630/618 776/2893/617 +f 778/1816/620 779/3631/620 780/2894/619 +f 782/2895/624 783/1815/624 784/356/645 +f 786/2897/623 781/2896/645 784/356/645 +f 774/2899/618 783/1815/624 782/2895/624 +f 787/2901/625 788/3632/625 777/354/619 +f 776/2902/617 779/3631/620 778/1816/620 +f 788/355/625 787/3633/625 786/2904/623 +f 816/2905/646 817/2940/678 818/2906/647 +f 818/2906/647 817/2940/678 819/2908/649 +f 820/2909/650 819/2908/649 821/2910/651 +f 822/2911/652 821/2910/651 823/2912/653 +f 831/2915/656 825/3634/663 826/2916/657 +f 826/2916/657 827/3635/665 829/3636/670 +f 827/3635/665 828/3637/667 829/3636/670 +f 829/3636/670 830/2914/655 826/2916/657 +f 833/2917/658 816/2905/646 815/2907/648 +f 834/2919/660 832/2918/659 835/2920/661 +f 835/2920/661 826/2925/657 825/2922/663 +f 832/2918/659 815/2907/648 837/2923/664 +f 835/2920/661 837/2923/664 827/2924/665 +f 815/2907/648 818/2906/647 838/2926/666 +f 837/2923/664 838/2926/666 828/2927/667 +f 820/2909/650 839/2928/668 838/2926/666 +f 839/2928/668 829/2930/670 828/2927/667 +f 822/2911/652 840/2929/669 839/2928/668 +f 840/2929/669 830/2932/655 829/2930/670 +f 824/2913/654 841/3638/941 840/2929/669 +f 840/2929/669 841/3638/941 831/2931/656 +f 842/2933/671 833/2917/658 832/2918/659 +f 842/2933/671 843/2935/673 844/2934/672 +f 843/2935/673 845/3639/942 846/2936/674 +f 833/2917/658 844/2934/672 847/2937/675 +f 844/2934/672 846/2936/674 848/2938/676 +f 816/2905/646 847/2937/675 849/2939/677 +f 847/2937/675 848/2938/676 850/2941/679 +f 819/2908/649 817/2940/678 849/2939/677 +f 851/2942/680 849/2939/677 850/2941/679 +f 821/2910/651 819/2908/649 851/2942/680 +f 853/2944/682 851/2942/680 852/2943/681 +f 823/2912/653 821/2910/651 853/2944/682 +f 855/2946/684 853/2944/682 854/2945/683 +f 848/2950/676 846/3640/674 854/3641/683 +f 846/3640/674 845/3642/942 854/3641/683 +f 845/3642/942 856/3643/685 854/3641/683 +f 854/3641/683 852/2948/681 848/2950/676 +f 858/2951/686 859/2986/718 860/2952/687 +f 860/2952/687 859/2986/718 861/2954/689 +f 862/2955/690 861/2954/689 863/2956/691 +f 864/2957/692 863/2956/691 865/2958/693 +f 873/3644/710 867/3645/703 872/2960/695 +f 867/3645/703 868/3646/705 872/2960/695 +f 868/3646/705 869/2961/696 872/2960/695 +f 869/2961/696 870/3647/707 871/2962/697 +f 875/2963/698 858/2951/686 857/2953/688 +f 876/2965/700 874/2964/699 877/2966/701 +f 877/2966/701 868/2971/705 867/2968/703 +f 874/2964/699 857/2953/688 879/2969/704 +f 877/2966/701 879/2969/704 869/2970/696 +f 857/2953/688 860/2952/687 880/2972/706 +f 879/2969/704 880/2972/706 870/2973/707 +f 862/2955/690 881/2974/708 880/2972/706 +f 881/2974/708 871/2976/697 870/2973/707 +f 864/2957/692 882/2975/709 881/2974/708 +f 882/2975/709 872/2978/695 871/2976/697 +f 866/2959/694 883/3648/943 882/2975/709 +f 882/2975/709 883/3648/943 873/2977/710 +f 884/2979/711 875/2963/698 874/2964/699 +f 884/2979/711 885/2981/713 886/2980/712 +f 885/2981/713 887/3649/944 888/2982/714 +f 875/2963/698 886/2980/712 889/2983/715 +f 886/2980/712 888/2982/714 890/2984/716 +f 858/2951/686 889/2983/715 891/2985/717 +f 889/2983/715 890/2984/716 892/2987/719 +f 861/2954/689 859/2986/718 891/2985/717 +f 893/2988/720 891/2985/717 892/2987/719 +f 863/2956/691 861/2954/689 893/2988/720 +f 895/2990/722 893/2988/720 894/2989/721 +f 865/2958/693 863/2956/691 895/2990/722 +f 897/2992/724 895/2990/722 896/2991/723 +f 890/2996/716 888/3650/714 896/3651/723 +f 888/3650/714 887/3652/944 896/3651/723 +f 887/3652/944 898/3653/725 896/3651/723 +f 896/3651/723 894/2994/721 890/2996/716 +f 900/2997/726 901/3032/758 902/2998/727 +f 902/2998/727 901/3032/758 903/3000/729 +f 904/3001/730 903/3000/729 905/3002/731 +f 906/3003/732 905/3002/731 907/3004/733 +f 915/3007/736 909/3654/743 910/3008/737 +f 910/3008/737 911/3655/745 913/3656/750 +f 911/3655/745 912/3657/747 913/3656/750 +f 913/3656/750 914/3006/735 910/3008/737 +f 917/3009/738 900/2997/726 899/2999/728 +f 918/3011/740 916/3010/739 919/3012/741 +f 919/3012/741 910/3017/737 909/3014/743 +f 916/3010/739 899/2999/728 921/3015/744 +f 919/3012/741 921/3015/744 911/3016/745 +f 899/2999/728 902/2998/727 922/3018/746 +f 921/3015/744 922/3018/746 912/3019/747 +f 904/3001/730 923/3020/748 922/3018/746 +f 923/3020/748 913/3022/750 912/3019/747 +f 906/3003/732 924/3021/749 923/3020/748 +f 924/3021/749 914/3024/735 913/3022/750 +f 908/3005/734 925/3658/945 924/3021/749 +f 924/3021/749 925/3658/945 915/3023/736 +f 926/3025/751 917/3009/738 916/3010/739 +f 926/3025/751 927/3027/753 928/3026/752 +f 927/3027/753 929/3659/946 930/3028/754 +f 917/3009/738 928/3026/752 931/3029/755 +f 928/3026/752 930/3028/754 932/3030/756 +f 900/2997/726 931/3029/755 933/3031/757 +f 931/3029/755 932/3030/756 934/3033/759 +f 903/3000/729 901/3032/758 933/3031/757 +f 935/3034/760 933/3031/757 934/3033/759 +f 905/3002/731 903/3000/729 935/3034/760 +f 937/3036/762 935/3034/760 936/3035/761 +f 907/3004/733 905/3002/731 937/3036/762 +f 939/3038/764 937/3036/762 938/3037/763 +f 932/3042/756 930/3660/754 938/3661/763 +f 930/3660/754 929/3662/946 938/3661/763 +f 929/3662/946 940/3663/765 938/3661/763 +f 938/3661/763 936/3040/761 932/3042/756 +f 958/3043/766 959/3664/776 960/1834/767 +f 961/1832/769 962/3051/777 963/3044/770 +f 966/415/771 967/414/772 968/3045/772 +f 969/3047/774 966/415/771 965/3046/773 +f 959/3049/776 968/3045/772 967/414/772 +f 962/3051/777 961/1832/769 972/3052/778 +f 957/3054/768 964/416/770 963/3044/770 +f 970/3056/775 971/3665/778 972/1831/778 +f 974/3057/779 975/3666/780 976/1840/780 +f 977/1838/781 978/3667/781 979/3058/782 +f 982/421/783 983/420/788 984/3059/784 +f 982/421/783 981/3060/785 986/3061/786 +f 975/3063/780 984/3059/784 983/420/788 +f 987/3065/789 978/3667/781 977/1838/781 +f 973/3067/779 980/422/782 979/3058/782 +f 985/1836/787 986/3668/786 987/3069/789 +f 994/3070/768 995/3669/776 996/1845/776 +f 997/1843/790 998/3670/790 999/3071/770 +f 1001/3072/791 1002/424/791 1003/423/772 +f 1002/424/791 1001/3072/791 1006/3074/774 +f 1004/3073/772 1003/423/772 996/3076/776 +f 1007/3078/778 998/3670/790 997/1843/790 +f 1000/425/770 999/3071/770 994/3080/768 +f 1005/1841/774 1006/3671/774 1007/3082/778 +f 1009/1850/779 1010/3672/779 1011/3083/793 +f 1013/1849/781 1014/3673/798 1015/3084/782 +f 1018/430/783 1019/429/788 1020/3085/788 +f 1021/3087/794 1018/430/783 1017/3086/783 +f 1011/3089/793 1020/3085/788 1019/429/788 +f 1023/3091/789 1014/3673/798 1013/1849/781 +f 1009/3093/779 1016/431/782 1015/3084/782 +f 1022/3095/794 1023/3674/789 1024/1848/789 +f 1030/3096/768 1031/3675/776 1032/1856/776 +f 1033/1854/769 1034/3676/777 1035/3097/770 +f 1038/433/791 1039/432/772 1040/3098/772 +f 1041/3100/774 1038/433/791 1037/3099/773 +f 1040/3098/772 1039/432/772 1032/3102/776 +f 1043/3104/778 1034/3676/777 1033/1854/769 +f 1036/434/770 1035/3097/770 1030/3106/768 +f 1042/3108/774 1043/3677/778 1044/1853/795 +f 1046/3109/796 1047/3678/780 1048/1862/780 +f 1049/1860/798 1050/3117/798 1051/3110/799 +f 1054/439/783 1055/438/788 1056/3111/788 +f 1057/3113/787 1054/439/783 1053/3112/783 +f 1047/3115/780 1056/3111/788 1055/438/788 +f 1050/3117/798 1049/1860/798 1060/3118/789 +f 1045/3120/797 1052/440/799 1051/3110/799 +f 1057/1858/787 1058/3679/787 1059/3122/789 +f 1066/1866/800 1067/3680/800 1068/3123/801 +f 1070/1865/802 1071/3132/809 1072/3124/803 +f 1073/3125/805 1074/3128/806 1075/1864/806 +f 1077/3126/807 1078/3681/807 1073/3125/805 +f 1067/3127/800 1066/3682/800 1075/1864/806 +f 1080/3129/808 1069/441/804 1072/3124/803 +f 1065/3131/801 1068/3683/801 1071/3132/809 +f 1080/442/808 1079/3684/808 1078/3133/807 +f 1082/1872/780 1083/3685/780 1084/3134/779 +f 1086/1871/782 1087/3145/782 1088/3135/781 +f 1090/3136/788 1091/1870/784 1092/449/783 +f 1094/3138/794 1089/3137/783 1092/449/783 +f 1082/3140/780 1091/1870/784 1090/3136/788 +f 1096/3142/789 1085/447/781 1088/3135/781 +f 1081/3144/779 1084/3686/779 1087/3145/782 +f 1096/448/789 1095/3687/789 1094/3146/794 +f 1102/1877/800 1103/3688/800 1104/3147/801 +f 1105/450/803 1106/1876/809 1107/3148/809 +f 1110/3150/810 1111/1875/810 1112/452/811 +f 1113/3152/807 1114/3689/807 1109/3151/805 +f 1102/3153/800 1111/1875/810 1110/3150/810 +f 1116/3155/808 1105/450/803 1108/3149/803 +f 1101/3157/801 1104/3690/801 1107/3148/809 +f 1116/451/808 1115/3691/808 1114/3158/807 +f 1117/1884/796 1118/1883/780 1119/3159/793 +f 1122/1882/799 1123/3692/799 1124/3161/781 +f 1125/3162/783 1126/3165/788 1127/1881/788 +f 1129/3163/794 1130/3693/794 1125/3162/783 +f 1118/3164/780 1127/1881/788 1126/3165/788 +f 1131/3167/789 1132/3694/789 1121/456/781 +f 1120/3168/797 1123/3692/799 1122/1882/799 +f 1132/457/789 1131/3695/789 1130/3170/794 +f 1138/1888/800 1139/3696/800 1140/3171/801 +f 1141/459/803 1142/1887/809 1143/3172/809 +f 1146/3174/806 1147/1886/806 1148/461/805 +f 1149/3176/807 1150/3697/807 1145/3175/805 +f 1138/3177/800 1147/1886/806 1146/3174/806 +f 1152/3179/808 1141/459/803 1144/3173/803 +f 1137/3181/801 1140/3698/801 1143/3172/809 +f 1152/460/808 1151/3699/808 1150/3182/807 +f 1154/1894/780 1155/3700/780 1156/3183/779 +f 1157/465/781 1158/1893/782 1159/3184/782 +f 1162/3186/788 1163/1892/788 1164/467/812 +f 1166/3188/787 1161/3187/813 1164/467/812 +f 1154/3190/780 1163/1892/788 1162/3186/788 +f 1167/3192/814 1168/3701/814 1157/465/781 +f 1156/3193/779 1159/3184/782 1158/1893/782 +f 1168/466/814 1167/3702/814 1166/3195/787 +f 1196/3196/815 1197/3703/816 1198/1907/816 +f 1199/1905/817 1200/3204/817 1201/3197/818 +f 1204/506/820 1205/505/821 1206/3198/821 +f 1207/3200/822 1204/506/820 1203/3199/820 +f 1197/3202/816 1206/3198/821 1205/505/821 +f 1200/3204/817 1199/1905/817 1210/3205/823 +f 1195/3207/815 1202/507/819 1201/3197/818 +f 1208/3209/822 1209/3704/823 1210/1904/823 +f 1212/3210/824 1213/3705/832 1214/1913/825 +f 1215/1911/826 1216/3218/826 1217/3211/827 +f 1220/512/828 1221/511/833 1222/3212/829 +f 1220/512/828 1219/3213/830 1224/3214/831 +f 1213/3216/832 1222/3212/829 1221/511/833 +f 1216/3218/826 1215/1911/826 1226/3219/834 +f 1218/513/827 1217/3211/827 1212/3221/824 +f 1223/1909/831 1224/3706/831 1225/3223/834 +f 1232/3224/815 1233/3707/816 1234/1918/816 +f 1235/1916/817 1236/3708/817 1237/3225/835 +f 1239/3226/820 1240/515/820 1241/514/821 +f 1240/515/820 1239/3226/820 1244/3228/822 +f 1242/3227/821 1241/514/821 1234/3230/816 +f 1245/3232/823 1236/3708/817 1235/1916/817 +f 1231/3234/815 1238/516/818 1237/3225/835 +f 1244/3236/822 1245/3709/823 1246/1915/823 +f 1247/1923/824 1248/3710/824 1249/3237/836 +f 1251/1922/826 1252/3711/947 1253/3238/837 +f 1256/521/828 1257/520/833 1258/3239/833 +f 1256/521/828 1255/3240/828 1260/3241/831 +f 1258/3239/833 1257/520/833 1250/3243/836 +f 1261/3245/834 1252/3711/947 1251/1922/826 +f 1247/3247/824 1254/522/837 1253/3238/837 +f 1260/3249/831 1261/3712/834 1262/1921/834 +f 1268/3250/815 1269/3713/816 1270/1929/816 +f 1271/1927/817 1272/3714/817 1273/3251/835 +f 1276/524/820 1277/523/821 1278/3252/821 +f 1279/3254/822 1276/524/820 1275/3253/820 +f 1278/3252/821 1277/523/821 1270/3256/816 +f 1281/3258/823 1272/3714/817 1271/1927/817 +f 1267/3260/815 1274/525/835 1273/3251/835 +f 1280/3262/822 1281/3715/823 1282/1926/823 +f 1284/3263/824 1285/3716/836 1286/1935/836 +f 1287/1933/826 1288/3271/826 1289/3264/837 +f 1292/530/828 1293/529/833 1294/3265/833 +f 1295/3267/831 1292/530/828 1291/3266/828 +f 1285/3269/836 1294/3265/833 1293/529/833 +f 1288/3271/826 1287/1933/826 1298/3272/838 +f 1283/3274/824 1290/531/837 1289/3264/837 +f 1295/1931/831 1296/3717/831 1297/3276/839 +f 1304/1939/840 1305/3718/840 1306/3277/841 +f 1308/1938/842 1309/3286/849 1310/3278/843 +f 1311/3279/844 1312/3282/845 1313/1937/845 +f 1315/3280/847 1316/3719/847 1311/3279/844 +f 1305/3281/840 1304/3720/840 1313/1937/845 +f 1318/3283/848 1307/532/843 1310/3278/843 +f 1303/3285/841 1306/3721/841 1309/3286/849 +f 1318/533/848 1317/3722/848 1316/3287/847 +f 1320/1945/832 1321/3723/836 1322/3288/824 +f 1324/1944/827 1325/3299/827 1326/3289/826 +f 1327/3290/850 1328/3294/854 1329/1943/851 +f 1332/3291/853 1327/3290/850 1330/540/852 +f 1320/3293/832 1329/1943/851 1328/3294/854 +f 1334/3296/834 1323/538/826 1326/3289/826 +f 1319/3298/824 1322/3724/824 1325/3299/827 +f 1334/539/834 1333/3725/834 1332/3300/853 +f 1340/1950/840 1341/3726/840 1342/3301/855 +f 1343/541/843 1344/1949/849 1345/3302/849 +f 1348/3304/857 1349/1948/857 1350/543/846 +f 1351/3306/847 1352/3727/847 1347/3305/858 +f 1340/3307/840 1349/1948/857 1348/3304/857 +f 1354/3309/848 1343/541/843 1346/3303/856 +f 1339/3311/841 1342/3728/855 1345/3302/849 +f 1354/542/848 1353/3729/859 1352/3312/847 +f 1355/1957/824 1356/1956/836 1357/3313/836 +f 1360/1955/827 1361/3730/827 1362/3315/826 +f 1363/3316/828 1364/3319/833 1365/1954/833 +f 1367/3317/853 1368/3731/853 1363/3316/828 +f 1356/3318/836 1365/1954/833 1364/3319/833 +f 1370/3321/839 1359/547/826 1362/3315/826 +f 1358/3323/824 1361/3730/827 1360/1955/827 +f 1370/548/839 1369/3732/839 1368/3325/853 +f 1376/1961/840 1377/3733/840 1378/3326/841 +f 1379/550/843 1380/1960/849 1381/3327/849 +f 1384/3329/845 1385/1959/948 1386/552/860 +f 1387/3331/862 1388/3734/862 1383/3330/861 +f 1376/3332/840 1385/1959/948 1384/3329/845 +f 1390/3334/848 1379/550/843 1382/3328/856 +f 1378/3336/841 1381/3327/849 1380/1960/849 +f 1390/551/848 1389/3735/848 1388/3338/862 +f 1392/1967/836 1393/3736/836 1394/3339/824 +f 1396/1966/827 1397/3737/827 1398/3340/826 +f 1399/3341/828 1400/3344/833 1401/1965/833 +f 1403/3342/831 1404/3738/831 1399/3341/828 +f 1393/3343/836 1392/3739/836 1401/1965/833 +f 1405/3345/834 1406/3740/834 1395/556/826 +f 1394/3346/824 1397/3737/827 1396/1966/827 +f 1406/557/834 1405/3741/834 1404/3348/831 +f 1505/3349/110 1506/3359/868 1507/3350/863 +f 1508/3352/1 1509/3742/864 1498/678/864 +f 1511/687/865 1512/681/865 1513/2001/3 +f 1514/3353/110 1500/3743/110 1499/3354/866 +f 1517/683/864 1518/3361/866 1519/3356/866 +f 1502/680/865 1501/3364/868 1521/3358/867 +f 1512/681/865 1511/687/865 1507/3350/863 +f 1498/678/864 1509/3742/864 1515/3355/866 +f 1505/3360/110 1504/3744/110 1519/3356/866 +f 1502/680/865 1520/684/865 1523/2007/3 +f 1522/2000/1 1517/683/864 1516/3357/864 +f 1500/3363/110 1514/3745/110 1521/3358/867 +f 1597/3365/130 1598/3375/869 1599/3366/869 +f 1600/3368/1 1601/3746/870 1590/773/870 +f 1602/2044/3 1603/782/874 1604/776/871 +f 1606/3369/130 1592/3747/130 1591/3370/872 +f 1609/778/870 1610/3377/873 1611/3372/873 +f 1594/775/874 1593/3380/876 1613/3374/869 +f 1604/776/871 1603/782/874 1599/3366/869 +f 1590/773/870 1601/3746/870 1607/3371/873 +f 1597/3376/130 1596/3748/130 1611/3372/873 +f 1594/775/874 1612/779/875 1615/2042/3 +f 1609/778/870 1608/3373/870 1616/3378/1 +f 1592/3379/130 1606/3749/130 1613/3374/869 +f 1689/3381/28 1690/3391/877 1691/3382/877 +f 1692/3384/1 1693/3750/878 1682/867/878 +f 1695/876/879 1696/870/883 1697/2072/3 +f 1698/3385/28 1684/3751/28 1683/3386/880 +f 1701/872/878 1702/3393/881 1703/3388/881 +f 1686/869/879 1685/3396/877 1705/3390/877 +f 1696/870/883 1695/876/879 1691/3382/877 +f 1682/867/878 1693/3750/878 1699/3387/880 +f 1689/3392/28 1688/3752/28 1703/3388/881 +f 1686/869/879 1704/873/882 1707/2078/3 +f 1706/2071/1 1701/872/878 1700/3389/878 +f 1684/3395/28 1698/3753/28 1705/3390/877 +f 1780/3397/105 1781/3754/105 1782/3398/884 +f 1784/3400/1 1785/3755/885 1774/962/885 +f 1787/971/886 1788/965/886 1789/2107/3 +f 1790/3401/105 1776/3756/105 1775/3402/887 +f 1793/967/885 1794/3408/887 1795/3404/887 +f 1778/964/886 1777/3411/884 1797/3406/888 +f 1788/965/886 1787/971/886 1783/3399/884 +f 1774/962/885 1785/3755/885 1791/3403/887 +f 1781/3407/105 1780/3757/105 1795/3404/887 +f 1778/964/886 1796/968/886 1799/2113/3 +f 1798/2106/1 1793/967/885 1792/3405/885 +f 1776/3410/105 1790/3758/105 1797/3406/888 +f 1873/3412/125 1874/3422/889 1875/3413/889 +f 1876/3415/1 1877/3759/890 1866/1056/890 +f 1879/1065/891 1880/1059/891 1881/2143/3 +f 1882/3416/125 1868/3760/125 1867/3417/892 +f 1885/1061/890 1886/3424/893 1887/3419/893 +f 1870/1058/895 1869/3427/889 1889/3421/889 +f 1880/1059/891 1879/1065/891 1875/3413/889 +f 1866/1056/890 1877/3759/890 1883/3418/892 +f 1873/3423/125 1872/3761/125 1887/3419/893 +f 1870/1058/895 1888/1062/891 1891/2149/3 +f 1890/2142/1 1885/1061/890 1884/3420/894 +f 1868/3426/125 1882/3762/125 1889/3421/889 +f 1965/3428/143 1966/3438/896 1967/3429/896 +f 1968/3431/1 1969/3763/897 1958/1151/897 +f 1971/1160/898 1972/1154/898 1973/2178/3 +f 1974/3432/143 1960/3764/143 1959/3433/899 +f 1977/1156/901 1978/3440/899 1979/3435/899 +f 1962/1153/898 1961/3443/896 1981/3437/896 +f 1972/1154/898 1971/1160/898 1967/3429/896 +f 1958/1151/897 1969/3763/897 1975/3434/900 +f 1965/3439/143 1964/3765/143 1979/3435/899 +f 1962/1153/898 1980/1157/902 1983/2184/3 +f 1982/2177/1 1977/1156/901 1976/3436/901 +f 1960/3442/143 1974/3766/143 1981/3437/896 +f 2057/3444/160 2058/3454/903 2059/3445/903 +f 2060/3447/1 2061/3767/904 2050/1245/904 +f 2063/1254/905 2064/1248/905 2065/2214/3 +f 2066/3448/160 2052/3768/160 2051/3449/906 +f 2069/1250/904 2070/3456/906 2071/3451/906 +f 2054/1247/905 2053/3459/903 2073/3453/907 +f 2064/1248/905 2063/1254/905 2059/3445/903 +f 2050/1245/904 2061/3767/904 2067/3450/906 +f 2057/3455/160 2056/3769/160 2071/3451/906 +f 2054/1247/905 2072/1251/905 2075/2220/3 +f 2074/2213/1 2069/1250/904 2068/3452/904 +f 2052/3458/160 2066/3770/160 2073/3453/907 +f 2149/3460/178 2150/3470/915 2151/3461/908 +f 2152/3463/1 2153/3771/909 2142/1339/909 +f 2155/1348/910 2156/1342/914 2157/2250/3 +f 2158/3464/178 2144/3772/178 2143/3465/911 +f 2161/1344/909 2162/3472/912 2163/3467/912 +f 2146/1341/910 2145/3475/916 2165/3469/908 +f 2156/1342/914 2155/1348/910 2151/3461/908 +f 2142/1339/909 2153/3771/909 2159/3466/911 +f 2149/3471/178 2148/3773/178 2163/3467/912 +f 2146/1341/910 2164/1345/913 2167/2256/3 +f 2166/2249/1 2161/1344/909 2160/3468/909 +f 2144/3474/178 2158/3774/178 2165/3469/908 +f 2241/3476/27 2242/3486/917 2243/3477/917 +f 2244/3479/1 2245/3775/918 2234/1433/918 +f 2247/1442/919 2248/1436/924 2249/2286/3 +f 2250/3480/27 2236/3776/27 2235/3481/920 +f 2253/1438/918 2254/3488/921 2255/3483/921 +f 2238/1435/922 2237/3491/917 2257/3485/917 +f 2248/1436/924 2247/1442/919 2243/3477/917 +f 2234/1433/918 2245/3775/918 2251/3482/920 +f 2241/3487/27 2240/3777/27 2255/3483/921 +f 2238/1435/922 2256/1439/923 2259/2292/3 +f 2258/2285/1 2253/1438/918 2252/3484/918 +f 2236/3490/27 2250/3778/27 2257/3485/917 +f 2333/3492/104 2334/3502/925 2335/3493/925 +f 2336/3495/1 2337/3779/926 2326/1529/926 +f 2339/1538/927 2340/1532/927 2341/2320/3 +f 2342/3496/104 2328/3780/104 2327/3497/928 +f 2345/1534/926 2346/3504/928 2347/3499/928 +f 2330/1531/927 2329/3507/925 2349/3501/925 +f 2340/1532/927 2339/1538/927 2335/3493/925 +f 2326/1529/926 2337/3779/926 2343/3498/928 +f 2333/3503/104 2332/3781/104 2347/3499/928 +f 2330/1531/927 2348/1535/927 2351/2326/3 +f 2350/2319/1 2345/1534/926 2344/3500/926 +f 2328/3506/104 2342/3782/104 2349/3501/925 +f 2425/3508/124 2426/3518/929 2427/3509/929 +f 2428/3511/1 2429/3783/930 2418/1625/930 +f 2431/1634/931 2432/1628/935 2433/2354/3 +f 2434/3512/124 2420/3784/124 2419/3513/932 +f 2437/1630/930 2438/3520/933 2439/3515/933 +f 2422/1627/931 2421/3523/929 2441/3517/929 +f 2432/1628/935 2431/1634/931 2427/3509/929 +f 2418/1625/930 2429/3783/930 2435/3514/932 +f 2425/3519/124 2424/3785/124 2439/3515/933 +f 2422/1627/931 2440/1631/935 2443/2360/3 +f 2442/2353/1 2437/1630/930 2436/3516/934 +f 2420/3522/124 2434/3786/124 2441/3517/929 diff --git a/src/main/resources/assets/hbm/models/cel_prime_battery.obj b/src/main/resources/assets/hbm/models/cel_prime_battery.obj deleted file mode 100644 index 504947834..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_battery.obj +++ /dev/null @@ -1,127 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_battery.blend' -# www.blender.org -o Cube.004_Cube.005 -v -0.500000 0.000000 -1.500000 -v -0.500000 5.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 4.000000 -1.500000 -v -0.500000 0.000000 1.500000 -v -0.500000 5.000000 1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 4.000000 1.500000 -v 1.500000 3.800000 -1.350000 -v 1.500000 0.200000 -1.350000 -v 1.500000 3.800000 1.350000 -v 1.500000 0.200000 1.350000 -v 0.500000 3.800000 -1.350000 -v 0.500000 0.200000 -1.350000 -v 0.500000 3.800000 1.350000 -v 0.500000 0.200000 1.350000 -v 1.500000 0.200000 1.099999 -v 1.500000 1.600000 1.099999 -v 0.500000 0.200000 1.100000 -v 0.500000 1.600000 1.100000 -v 1.500000 0.200000 0.100000 -v 1.500000 1.600000 0.100000 -v 0.500000 0.200000 0.100000 -v 0.500000 1.600000 0.100000 -v 1.500000 0.200000 -0.100001 -v 1.500000 1.600000 -0.100001 -v 0.500000 0.200000 -0.100000 -v 0.500000 1.600000 -0.100000 -v 1.500000 0.200000 -1.100001 -v 1.500000 1.600000 -1.100001 -v 0.500000 0.200000 -1.100000 -v 0.500000 1.600000 -1.100000 -v 1.500000 1.700000 -0.100001 -v 1.500000 3.100000 -0.100001 -v 0.500000 1.700000 -0.100000 -v 0.500000 3.100000 -0.100000 -v 1.500000 1.700000 -1.100001 -v 1.500000 3.100000 -1.100001 -v 0.500000 1.700000 -1.100000 -v 0.500000 3.100000 -1.100000 -v 1.500000 1.700000 1.099999 -v 1.500000 3.100000 1.099999 -v 0.500000 1.700000 1.100000 -v 0.500000 3.100000 1.100000 -v 1.500000 1.700000 0.100000 -v 1.500000 3.100000 0.100000 -v 0.500000 1.700000 0.100000 -v 0.500000 3.100000 0.100000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 -0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -s off -f 4//1 3//1 1//1 -f 3//2 10//2 12//2 -f 8//3 6//3 5//3 -f 2//4 1//4 5//4 -f 3//5 7//5 5//5 -f 8//6 4//6 2//6 -f 10//7 14//7 16//7 -f 8//2 11//2 9//2 -f 4//2 9//2 10//2 -f 7//2 12//2 11//2 -f 15//2 16//2 14//2 -f 11//5 15//5 13//5 -f 12//1 16//1 15//1 -f 9//3 13//3 14//3 -f 20//3 19//3 17//3 -f 24//4 23//4 19//4 -f 22//1 21//1 23//1 -f 18//2 17//2 21//2 -f 19//5 23//5 21//5 -f 22//7 24//7 20//7 -f 28//3 27//3 25//3 -f 30//1 29//1 31//1 -f 26//2 25//2 29//2 -f 32//7 28//7 26//7 -f 36//3 35//3 33//3 -f 38//1 37//1 39//1 -f 34//2 33//2 37//2 -f 40//7 36//7 34//7 -f 44//3 43//3 41//3 -f 46//1 45//1 47//1 -f 42//2 41//2 45//2 -f 46//7 48//7 44//7 -f 43//5 47//5 45//5 -f 39//5 37//5 33//5 -f 2//1 4//1 1//1 -f 7//2 3//2 12//2 -f 7//3 8//3 5//3 -f 6//4 2//4 5//4 -f 1//5 3//5 5//5 -f 6//6 8//6 2//6 -f 12//7 10//7 16//7 -f 4//2 8//2 9//2 -f 3//2 4//2 10//2 -f 8//2 7//2 11//2 -f 13//2 15//2 14//2 -f 9//5 11//5 13//5 -f 11//1 12//1 15//1 -f 10//3 9//3 14//3 -f 18//3 20//3 17//3 -f 20//4 24//4 19//4 -f 24//1 22//1 23//1 -f 22//2 18//2 21//2 -f 17//5 19//5 21//5 -f 18//7 22//7 20//7 -f 26//3 28//3 25//3 -f 32//1 30//1 31//1 -f 30//2 26//2 29//2 -f 30//7 32//7 26//7 -f 34//3 36//3 33//3 -f 40//1 38//1 39//1 -f 38//2 34//2 37//2 -f 38//7 40//7 34//7 -f 42//3 44//3 41//3 -f 48//1 46//1 47//1 -f 46//2 42//2 45//2 -f 42//7 46//7 44//7 -f 41//5 43//5 45//5 -f 35//5 39//5 33//5 diff --git a/src/main/resources/assets/hbm/models/cel_prime_port.obj b/src/main/resources/assets/hbm/models/cel_prime_port.obj deleted file mode 100644 index 300372f6b..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_port.obj +++ /dev/null @@ -1,75 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_port.blend' -# www.blender.org -o Cube.002_Cube.003 -v -0.500000 0.000000 -1.500000 -v -0.500000 5.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 4.000000 -1.500000 -v -0.500000 0.000000 1.500000 -v -0.500000 5.000000 1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 4.000000 1.500000 -v 1.400000 0.343750 -0.156250 -v 1.400000 0.656250 -0.156250 -v 1.400000 0.343750 0.156250 -v 1.400000 0.656250 0.156250 -v 1.500000 0.050000 -0.450000 -v 1.500000 0.950000 -0.450000 -v 1.500000 0.050000 0.450000 -v 1.500000 0.950000 0.450000 -v 1.400000 0.050000 0.450000 -v 1.400000 0.050000 -0.450000 -v 1.400000 0.950000 -0.450000 -v 1.400000 0.950000 0.450000 -v 1.500000 0.343750 0.156250 -v 1.500000 0.343750 -0.156250 -v 1.500000 0.656250 -0.156250 -v 1.500000 0.656250 0.156250 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 1.000000 0.000000 -s off -f 4//1 3//1 1//1 -f 8//2 6//2 5//2 -f 2//3 1//3 5//3 -f 3//4 7//4 5//4 -f 8//5 4//5 2//5 -f 11//3 12//3 10//3 -f 16//4 20//4 19//4 -f 3//6 13//6 15//6 -f 7//6 15//6 16//6 -f 14//6 13//6 3//6 -f 16//6 14//6 4//6 -f 19//6 20//6 17//6 -f 13//7 18//7 17//7 -f 15//1 17//1 20//1 -f 14//2 19//2 18//2 -f 23//6 24//6 21//6 -f 12//7 24//7 23//7 -f 9//4 22//4 21//4 -f 11//2 21//2 24//2 -f 10//1 23//1 22//1 -f 2//1 4//1 1//1 -f 7//2 8//2 5//2 -f 6//3 2//3 5//3 -f 1//4 3//4 5//4 -f 6//5 8//5 2//5 -f 9//3 11//3 10//3 -f 14//4 16//4 19//4 -f 7//6 3//6 15//6 -f 8//6 7//6 16//6 -f 4//6 14//6 3//6 -f 8//6 16//6 4//6 -f 18//6 19//6 17//6 -f 15//7 13//7 17//7 -f 16//1 15//1 20//1 -f 13//2 14//2 18//2 -f 22//6 23//6 21//6 -f 10//7 12//7 23//7 -f 11//4 9//4 21//4 -f 12//2 11//2 24//2 -f 9//1 10//1 22//1 diff --git a/src/main/resources/assets/hbm/models/cel_prime_tanks.obj b/src/main/resources/assets/hbm/models/cel_prime_tanks.obj deleted file mode 100644 index 2b060d409..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_tanks.obj +++ /dev/null @@ -1,151 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_tanks.blend' -# www.blender.org -o Cube.003_Cube.004 -v -0.500000 0.000000 -1.500000 -v -0.500000 5.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 4.000000 -1.500000 -v -0.500000 0.000000 1.500000 -v -0.500000 5.000000 1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 4.000000 1.500000 -v 1.500000 3.800000 -1.350000 -v 1.500000 0.200000 -1.350000 -v 1.500000 3.800000 1.350000 -v 1.500000 0.200000 1.350000 -v 0.000000 3.800000 -1.350000 -v 0.000000 0.200000 -1.350000 -v 0.000000 3.800000 1.350000 -v 0.000000 0.200000 1.350000 -v 0.750000 3.800000 -1.100000 -v 0.750000 0.200000 -1.100000 -v 0.750000 0.200000 0.100000 -v 0.750000 3.800000 0.100000 -v 1.103553 0.200000 0.246447 -v 1.103553 3.800000 0.246447 -v 1.250000 0.200000 0.600000 -v 1.250000 3.800000 0.600000 -v 1.103553 0.200000 0.953553 -v 1.103553 3.800000 0.953553 -v 0.750000 0.200000 1.100000 -v 0.750000 3.800000 1.100000 -v 0.396446 0.200000 0.953553 -v 0.396446 3.800000 0.953553 -v 0.250000 0.200000 0.600000 -v 0.250000 3.800000 0.600000 -v 0.396446 0.200000 0.246447 -v 0.396446 3.800000 0.246447 -v 1.103553 0.200000 -0.953553 -v 1.103553 3.800000 -0.953553 -v 1.250000 0.200000 -0.600000 -v 1.250000 3.800000 -0.600000 -v 1.103553 0.200000 -0.246447 -v 1.103553 3.800000 -0.246447 -v 0.750000 0.200000 -0.100000 -v 0.750000 3.800000 -0.100000 -v 0.396446 0.200000 -0.246447 -v 0.396446 3.800000 -0.246447 -v 0.250000 0.200000 -0.600000 -v 0.250000 3.800000 -0.600000 -v 0.396446 0.200000 -0.953553 -v 0.396446 3.800000 -0.953553 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.923900 0.000000 0.382700 -vn 0.382700 0.000000 -0.923900 -vn -0.382700 0.000000 0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 0.923900 -vn 0.923900 0.000000 0.382700 -vn -0.923900 0.000000 -0.382700 -vn -0.382700 0.000000 -0.923900 -s off -f 4//1 3//1 1//1 -f 7//2 12//2 11//2 -f 8//3 6//3 5//3 -f 2//4 1//4 5//4 -f 3//5 7//5 5//5 -f 8//6 4//6 2//6 -f 12//1 16//1 15//1 -f 3//2 10//2 12//2 -f 8//2 11//2 9//2 -f 4//2 9//2 10//2 -f 15//2 16//2 14//2 -f 9//3 13//3 14//3 -f 10//7 14//7 16//7 -f 11//5 15//5 13//5 -f 44//8 46//8 45//8 -f 20//9 22//9 21//9 -f 42//10 44//10 43//10 -f 22//11 24//11 23//11 -f 40//12 42//12 41//12 -f 24//13 26//13 25//13 -f 39//5 45//5 47//5 -f 38//13 40//13 39//13 -f 26//12 28//12 27//12 -f 46//14 48//14 47//14 -f 36//11 38//11 37//11 -f 28//10 30//10 29//10 -f 48//15 17//15 18//15 -f 17//9 36//9 35//9 -f 30//8 32//8 31//8 -f 32//7 28//7 24//7 -f 34//15 20//15 19//15 -f 32//14 34//14 33//14 -f 46//7 42//7 17//7 -f 25//5 31//5 33//5 -f 2//1 4//1 1//1 -f 8//2 7//2 11//2 -f 7//3 8//3 5//3 -f 6//4 2//4 5//4 -f 1//5 3//5 5//5 -f 6//6 8//6 2//6 -f 11//1 12//1 15//1 -f 7//2 3//2 12//2 -f 4//2 8//2 9//2 -f 3//2 4//2 10//2 -f 13//2 15//2 14//2 -f 10//3 9//3 14//3 -f 12//7 10//7 16//7 -f 9//5 11//5 13//5 -f 43//8 44//8 45//8 -f 19//9 20//9 21//9 -f 41//10 42//10 43//10 -f 21//11 22//11 23//11 -f 39//12 40//12 41//12 -f 23//13 24//13 25//13 -f 47//5 18//5 39//5 -f 35//5 37//5 39//5 -f 39//5 41//5 43//5 -f 43//5 45//5 39//5 -f 18//5 35//5 39//5 -f 37//13 38//13 39//13 -f 25//12 26//12 27//12 -f 45//14 46//14 47//14 -f 35//11 36//11 37//11 -f 27//10 28//10 29//10 -f 47//15 48//15 18//15 -f 18//9 17//9 35//9 -f 29//8 30//8 31//8 -f 24//7 22//7 32//7 -f 20//7 34//7 32//7 -f 32//7 30//7 28//7 -f 28//7 26//7 24//7 -f 22//7 20//7 32//7 -f 33//15 34//15 19//15 -f 31//14 32//14 33//14 -f 38//7 36//7 17//7 -f 17//7 48//7 46//7 -f 46//7 44//7 42//7 -f 42//7 40//7 38//7 -f 38//7 17//7 42//7 -f 33//5 19//5 21//5 -f 21//5 23//5 25//5 -f 25//5 27//5 29//5 -f 29//5 31//5 25//5 -f 33//5 21//5 25//5 diff --git a/src/main/resources/assets/hbm/models/cel_prime_terminal.obj b/src/main/resources/assets/hbm/models/cel_prime_terminal.obj deleted file mode 100644 index e17e2e075..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_terminal.obj +++ /dev/null @@ -1,77 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_terminal.blend' -# www.blender.org -o Cube.001_Cube.002 -v -0.500000 0.000000 -1.500000 -v -0.500000 5.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 4.000000 -1.500000 -v -0.500000 0.000000 1.500000 -v -0.500000 5.000000 1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 4.000000 1.500000 -v 1.500000 1.500000 -0.500000 -v 1.500000 2.500000 -0.500000 -v 1.750000 1.500000 -0.500000 -v 1.750000 2.500000 -0.500000 -v 1.500000 1.500000 0.500000 -v 1.500000 2.500000 0.500000 -v 1.750000 1.500000 0.500000 -v 1.750000 2.500000 0.500000 -v 1.750000 1.250000 -0.500000 -v 1.500000 1.250000 -0.500000 -v 1.750000 1.250000 0.500000 -v 1.500000 1.250000 0.500000 -v 2.250000 1.300000 0.500000 -v 2.250000 1.300000 -0.500000 -v 2.250000 1.050000 0.500000 -v 2.250000 1.050000 -0.500000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.371400 0.928500 0.000000 -vn -0.371400 -0.928500 0.000000 -s off -f 4//1 3//1 1//1 -f 8//2 7//2 3//2 -f 8//3 6//3 5//3 -f 2//4 1//4 5//4 -f 3//5 7//5 5//5 -f 8//6 4//6 2//6 -f 12//1 11//1 9//1 -f 16//2 15//2 11//2 -f 14//3 13//3 15//3 -f 10//4 9//4 13//4 -f 11//1 17//1 18//1 -f 16//7 12//7 10//7 -f 17//5 19//5 20//5 -f 19//3 23//3 21//3 -f 9//4 18//4 20//4 -f 13//3 20//3 19//3 -f 21//2 23//2 24//2 -f 17//1 11//1 22//1 -f 15//8 21//8 22//8 -f 17//9 24//9 23//9 -f 2//1 4//1 1//1 -f 4//2 8//2 3//2 -f 7//3 8//3 5//3 -f 6//4 2//4 5//4 -f 1//5 3//5 5//5 -f 6//6 8//6 2//6 -f 10//1 12//1 9//1 -f 12//2 16//2 11//2 -f 16//3 14//3 15//3 -f 14//4 10//4 13//4 -f 9//1 11//1 18//1 -f 14//7 16//7 10//7 -f 18//5 17//5 20//5 -f 15//3 19//3 21//3 -f 13//4 9//4 20//4 -f 15//3 13//3 19//3 -f 22//2 21//2 24//2 -f 24//1 17//1 22//1 -f 11//8 15//8 22//8 -f 19//9 17//9 23//9 diff --git a/src/main/resources/assets/hbm/models/cel_prime_tower.obj b/src/main/resources/assets/hbm/models/cel_prime_tower.obj deleted file mode 100644 index e05e1bcad..000000000 --- a/src/main/resources/assets/hbm/models/cel_prime_tower.obj +++ /dev/null @@ -1,281 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cel_prime_tower.blend' -# www.blender.org -o Cube_Cube.001 -v 1.500000 0.000000 1.500000 -v 1.500000 5.000000 1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 5.000000 -1.500000 -v -1.500000 0.000000 1.500000 -v -1.500000 5.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v -1.500000 5.000000 -1.500000 -v 1.500000 4.750000 1.350000 -v 1.500000 0.250000 1.350000 -v 1.500000 0.250000 -1.350000 -v 1.500000 4.750000 -1.350000 -v 1.350000 4.750000 -1.500000 -v 1.350000 0.250000 -1.500000 -v -1.350000 0.250000 -1.500000 -v -1.350000 4.750000 -1.500000 -v -1.500000 4.750000 -1.350000 -v -1.500000 0.250000 -1.350000 -v -1.500000 0.250000 1.350000 -v -1.500000 4.750000 1.350000 -v -1.350000 4.750000 1.500000 -v -1.350000 0.250000 1.500000 -v 1.350000 0.250000 1.500000 -v 1.350000 4.750000 1.500000 -v 1.350000 4.750000 1.350000 -v 1.350000 0.250000 1.350000 -v 1.350000 0.250000 -1.350000 -v 1.350000 4.750000 -1.350000 -v 1.350000 4.750000 -1.350000 -v 1.350000 0.250000 -1.350000 -v -1.350000 0.250000 -1.350000 -v -1.350000 4.750000 -1.350000 -v -1.350000 4.750000 -1.350000 -v -1.350000 0.250000 -1.350000 -v -1.350000 0.250000 1.350000 -v -1.350000 4.750000 1.350000 -v -1.350000 4.750000 1.350000 -v -1.350000 0.250000 1.350000 -v 1.350000 0.250000 1.350000 -v 1.350000 4.750000 1.350000 -v -1.000000 7.000000 1.000000 -v 1.000000 7.000000 1.000000 -v -1.000000 7.000000 -1.000000 -v 1.000000 7.000000 -1.000000 -v 0.265165 8.000000 -0.265165 -v -0.000000 8.000000 -0.375000 -v 0.000000 8.000000 -0.500000 -v 0.000000 12.000000 -0.500000 -v 0.353553 8.000000 -0.353553 -v 0.353553 12.000000 -0.353553 -v 0.500000 8.000000 0.000000 -v 0.500000 12.000000 0.000000 -v 0.353553 8.000000 0.353553 -v 0.353553 12.000000 0.353553 -v -0.000000 8.000000 0.500000 -v -0.000000 12.000000 0.500000 -v -0.353553 8.000000 0.353553 -v -0.353553 12.000000 0.353553 -v -0.500000 8.000000 -0.000000 -v -0.500000 12.000000 -0.000000 -v -0.353553 8.000000 -0.353553 -v -0.353553 12.000000 -0.353553 -v 0.265165 12.000000 -0.265165 -v -0.000000 12.000000 -0.375000 -v 0.375000 8.000000 0.000000 -v 0.375000 12.000000 0.000000 -v 0.265165 8.000000 0.265165 -v 0.265165 12.000000 0.265165 -v -0.000000 8.000000 0.375000 -v -0.000000 12.000000 0.375000 -v -0.265165 8.000000 0.265165 -v -0.265165 12.000000 0.265165 -v -0.375000 8.000000 -0.000000 -v -0.375000 12.000000 -0.000000 -v -0.265165 8.000000 -0.265165 -v -0.265165 12.000000 -0.265165 -v -0.500000 7.000000 -0.500000 -v -0.500000 10.000000 -0.500000 -v -0.500000 7.000000 -1.000000 -v -0.500000 10.500000 -1.000000 -v 0.500000 7.000000 -0.500000 -v 0.500000 10.000000 -0.500000 -v 0.500000 7.000000 -1.000000 -v 0.500000 10.500000 -1.000000 -v -0.500000 10.353554 -0.146447 -v -0.500000 10.853554 -0.646447 -v 0.500000 10.853554 -0.646447 -v 0.500000 10.353554 -0.146447 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 1.000000 0.000000 -vn 0.970100 0.242500 0.000000 -vn 0.000000 0.242500 -0.970100 -vn -0.970100 0.242500 0.000000 -vn 0.000000 0.242500 0.970100 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn 0.000000 0.707100 -0.707100 -vn 0.000000 0.707100 0.707100 -vn 0.000000 -0.707100 0.707100 -s off -f 5//1 7//1 3//1 -f 10//2 9//2 2//2 -f 11//2 10//2 1//2 -f 12//2 11//2 3//2 -f 9//2 12//2 4//2 -f 14//3 13//3 4//3 -f 15//3 14//3 3//3 -f 16//3 15//3 7//3 -f 13//3 16//3 8//3 -f 18//4 17//4 8//4 -f 19//4 18//4 7//4 -f 20//4 19//4 5//4 -f 17//4 20//4 6//4 -f 22//5 21//5 6//5 -f 23//5 22//5 5//5 -f 24//5 23//5 1//5 -f 21//5 24//5 2//5 -f 26//2 27//2 28//2 -f 26//3 25//3 9//3 -f 27//6 26//6 10//6 -f 28//5 27//5 11//5 -f 25//1 28//1 12//1 -f 30//3 31//3 32//3 -f 30//4 29//4 13//4 -f 31//6 30//6 14//6 -f 32//2 31//2 15//2 -f 29//1 32//1 16//1 -f 34//4 35//4 36//4 -f 34//5 33//5 17//5 -f 35//6 34//6 18//6 -f 36//3 35//3 19//3 -f 33//1 36//1 20//1 -f 38//5 39//5 40//5 -f 38//2 37//2 21//2 -f 39//6 38//6 22//6 -f 40//4 39//4 23//4 -f 37//1 40//1 24//1 -f 42//6 44//6 43//6 -f 44//7 42//7 2//7 -f 43//8 44//8 4//8 -f 41//9 43//9 8//9 -f 42//10 41//10 6//10 -f 56//6 70//6 72//6 -f 52//6 66//6 68//6 -f 48//11 50//11 49//11 -f 55//1 69//1 67//1 -f 47//1 46//1 75//1 -f 50//12 52//12 51//12 -f 49//1 45//1 46//1 -f 59//1 73//1 71//1 -f 52//13 54//13 53//13 -f 62//6 76//6 64//6 -f 51//1 53//1 67//1 -f 54//14 56//14 55//14 -f 57//1 71//1 69//1 -f 76//14 75//14 46//14 -f 56//15 58//15 57//15 -f 51//1 65//1 45//1 -f 74//13 73//13 75//13 -f 58//16 60//16 59//16 -f 60//6 74//6 76//6 -f 62//17 48//17 47//17 -f 60//18 62//18 61//18 -f 50//6 63//6 66//6 -f 60//6 58//6 72//6 -f 54//6 68//6 70//6 -f 59//1 61//1 75//1 -f 48//6 64//6 63//6 -f 64//15 46//15 45//15 -f 63//16 45//16 65//16 -f 66//18 65//18 67//18 -f 68//17 67//17 69//17 -f 70//11 69//11 71//11 -f 72//12 71//12 73//12 -f 78//4 80//4 79//4 -f 84//3 83//3 79//3 -f 82//2 81//2 83//2 -f 78//5 77//5 81//5 -f 79//1 83//1 81//1 -f 80//19 86//19 87//19 -f 87//20 86//20 85//20 -f 84//2 87//2 88//2 -f 80//4 78//4 85//4 -f 82//21 88//21 85//21 -f 1//1 5//1 3//1 -f 1//2 10//2 2//2 -f 3//2 11//2 1//2 -f 4//2 12//2 3//2 -f 2//2 9//2 4//2 -f 3//3 14//3 4//3 -f 7//3 15//3 3//3 -f 8//3 16//3 7//3 -f 4//3 13//3 8//3 -f 7//4 18//4 8//4 -f 5//4 19//4 7//4 -f 6//4 20//4 5//4 -f 8//4 17//4 6//4 -f 5//5 22//5 6//5 -f 1//5 23//5 5//5 -f 2//5 24//5 1//5 -f 6//5 21//5 2//5 -f 25//2 26//2 28//2 -f 10//3 26//3 9//3 -f 11//6 27//6 10//6 -f 12//5 28//5 11//5 -f 9//1 25//1 12//1 -f 29//3 30//3 32//3 -f 14//4 30//4 13//4 -f 15//6 31//6 14//6 -f 16//2 32//2 15//2 -f 13//1 29//1 16//1 -f 33//4 34//4 36//4 -f 18//5 34//5 17//5 -f 19//6 35//6 18//6 -f 20//3 36//3 19//3 -f 17//1 33//1 20//1 -f 37//5 38//5 40//5 -f 22//2 38//2 21//2 -f 23//6 39//6 22//6 -f 24//4 40//4 23//4 -f 21//1 37//1 24//1 -f 41//6 42//6 43//6 -f 4//7 44//7 2//7 -f 8//8 43//8 4//8 -f 6//9 41//9 8//9 -f 2//10 42//10 6//10 -f 58//6 56//6 72//6 -f 54//6 52//6 68//6 -f 47//11 48//11 49//11 -f 53//1 55//1 67//1 -f 61//1 47//1 75//1 -f 49//12 50//12 51//12 -f 47//1 49//1 46//1 -f 57//1 59//1 71//1 -f 51//13 52//13 53//13 -f 48//6 62//6 64//6 -f 65//1 51//1 67//1 -f 53//14 54//14 55//14 -f 55//1 57//1 69//1 -f 64//14 76//14 46//14 -f 55//15 56//15 57//15 -f 49//1 51//1 45//1 -f 76//13 74//13 75//13 -f 57//16 58//16 59//16 -f 62//6 60//6 76//6 -f 61//17 62//17 47//17 -f 59//18 60//18 61//18 -f 52//6 50//6 66//6 -f 74//6 60//6 72//6 -f 56//6 54//6 70//6 -f 73//1 59//1 75//1 -f 50//6 48//6 63//6 -f 63//15 64//15 45//15 -f 66//16 63//16 65//16 -f 68//18 66//18 67//18 -f 70//17 68//17 69//17 -f 72//11 70//11 71//11 -f 74//12 72//12 73//12 -f 77//4 78//4 79//4 -f 80//3 84//3 79//3 -f 84//2 82//2 83//2 -f 82//5 78//5 81//5 -f 77//1 79//1 81//1 -f 84//19 80//19 87//19 -f 88//20 87//20 85//20 -f 82//2 84//2 88//2 -f 86//4 80//4 85//4 -f 78//21 82//21 85//21 diff --git a/src/main/resources/assets/hbm/models/chemplant_main.obj b/src/main/resources/assets/hbm/models/chemplant_main.obj deleted file mode 100644 index 90d39843a..000000000 --- a/src/main/resources/assets/hbm/models/chemplant_main.obj +++ /dev/null @@ -1,1870 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'chemplant_main.blend' -# www.blender.org -o Cube_Cube.001 -v -1.500000 0.000000 1.500000 -v -1.500000 0.250000 1.500000 -v -1.500000 0.000000 -1.500000 -v -1.500000 0.250000 -1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 0.250000 1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 0.250000 -1.500000 -v -1.250000 0.500000 1.250000 -v -1.250000 0.500000 -1.250000 -v 1.250000 0.500000 -1.250000 -v 1.250000 0.500000 1.250000 -v -1.250000 0.500000 0.000000 -v 0.000000 0.500000 -1.250000 -v 1.250000 0.500000 0.000000 -v 0.000000 0.500000 1.250000 -v 0.000000 0.500000 0.000000 -v 1.250000 0.750000 0.000000 -v 1.250000 0.750000 1.250000 -v 0.000000 0.750000 1.250000 -v 0.000000 0.750000 0.000000 -v 0.625000 0.750000 0.025000 -v 0.625000 2.750000 0.025000 -v 0.925000 0.750000 0.105385 -v 0.925000 2.750000 0.105385 -v 1.144615 0.750000 0.325000 -v 1.144615 2.750000 0.325000 -v 1.225000 0.750000 0.625000 -v 1.225000 2.750000 0.625000 -v 1.144615 0.750000 0.925000 -v 1.144615 2.750000 0.925000 -v 0.925000 0.750000 1.144615 -v 0.925000 2.750000 1.144615 -v 0.625000 0.750000 1.225000 -v 0.625000 2.750000 1.225000 -v 0.325000 0.750000 1.144615 -v 0.325000 2.750000 1.144615 -v 0.105385 0.750000 0.925000 -v 0.105385 2.750000 0.925000 -v 0.025000 0.750000 0.625000 -v 0.025000 2.750000 0.625000 -v 0.105385 0.750000 0.325000 -v 0.105385 2.750000 0.325000 -v 0.325000 0.750000 0.105385 -v 0.325000 2.750000 0.105385 -v 1.250000 0.750000 0.625000 -v 0.625000 0.750000 0.000000 -v 0.000000 0.750000 0.625000 -v 0.625000 0.750000 1.250000 -v 0.125000 0.500000 -1.125000 -v 1.125000 0.500000 -1.125000 -v 1.125000 0.500000 -0.125000 -v 0.125000 0.500000 -0.125000 -v -1.125000 0.500000 -0.125000 -v -1.125000 0.500000 -1.125000 -v -0.125000 0.500000 -1.125000 -v -0.125000 0.500000 -0.125000 -v 0.125000 0.650000 -1.125000 -v 1.125000 0.650000 -1.125000 -v 1.125000 0.650000 -0.125000 -v 0.125000 0.650000 -0.125000 -v 0.225000 0.650000 -1.025000 -v 1.025000 0.650000 -1.025000 -v 1.025000 0.650000 -0.225000 -v 0.225000 0.650000 -0.225000 -v -0.125000 0.650000 -0.125000 -v -0.125000 0.650000 -1.125000 -v -1.125000 0.650000 -1.125000 -v -1.125000 0.650000 -0.125000 -v 0.425000 2.000000 -0.425000 -v 0.825000 2.000000 -0.425000 -v 0.825000 2.000000 -0.825000 -v 0.425000 2.000000 -0.825000 -v 0.225000 1.850000 -1.025000 -v 1.025000 1.850000 -1.025000 -v 1.025000 1.850000 -0.225000 -v 0.225000 1.850000 -0.225000 -v 1.000000 2.750000 -0.024519 -v 0.625000 2.750000 -0.125000 -v 1.274519 2.750000 0.250000 -v 1.375000 2.750000 0.625000 -v 1.274519 2.750000 1.000000 -v 1.000000 2.750000 1.274519 -v 0.625000 2.750000 1.375000 -v 0.250000 2.750000 1.274519 -v -0.024519 2.750000 1.000000 -v -0.125000 2.750000 0.625000 -v -0.024519 2.750000 0.250000 -v 0.250000 2.750000 -0.024519 -v 1.000000 3.000000 -0.024519 -v 0.625000 3.000000 -0.125000 -v 1.274519 3.000000 0.250000 -v 1.375000 3.000000 0.625000 -v 1.274519 3.000000 1.000000 -v 1.000000 3.000000 1.274519 -v 0.625000 3.000000 1.375000 -v 0.250000 3.000000 1.274519 -v -0.024519 3.000000 1.000000 -v -0.125000 3.000000 0.625000 -v -0.024519 3.000000 0.250000 -v 0.250000 3.000000 -0.024519 -v -0.225000 0.650000 -1.025000 -v -0.225000 0.650000 -0.225000 -v -1.025000 0.650000 -0.225000 -v -1.025000 0.650000 -1.025000 -v -0.225000 1.850000 -1.025000 -v -0.225000 1.850000 -0.225000 -v -1.025000 1.850000 -0.225000 -v -1.025000 1.850000 -1.025000 -v -0.425000 2.000000 -0.825000 -v -0.425000 2.000000 -0.425000 -v -0.825000 2.000000 -0.425000 -v -0.825000 2.000000 -0.825000 -v -0.125000 0.500000 0.975000 -v -0.475000 0.500000 0.975000 -v -0.475000 0.500000 0.275000 -v -0.125000 0.500000 0.275000 -v -0.125000 1.250000 0.975000 -v -0.475000 1.250000 0.975000 -v -0.475000 1.250000 0.275000 -v -0.125000 1.250000 0.275000 -v -0.125000 1.500000 0.975000 -v -0.300000 1.500000 0.975000 -v -0.300000 1.500000 0.275000 -v -0.125000 1.500000 0.275000 -v -0.125000 1.500000 0.338636 -v -0.125000 1.500000 0.402273 -v -0.125000 1.500000 0.465909 -v -0.125000 1.500000 0.529545 -v -0.125000 1.500000 0.593182 -v -0.125000 1.500000 0.656818 -v -0.125000 1.500000 0.720455 -v -0.125000 1.500000 0.784091 -v -0.125000 1.500000 0.847727 -v -0.125000 1.500000 0.911364 -v -0.125000 1.650000 0.338636 -v -0.125000 1.650000 0.402273 -v -0.125000 1.650000 0.465909 -v -0.125000 1.650000 0.529545 -v -0.125000 1.650000 0.593182 -v -0.125000 1.650000 0.656818 -v -0.125000 1.650000 0.720455 -v -0.125000 1.650000 0.784091 -v -0.125000 1.650000 0.847727 -v -0.125000 1.650000 0.911364 -v -0.025000 1.750000 0.338636 -v -0.025000 1.750000 0.402273 -v -0.025000 1.750000 0.465909 -v -0.025000 1.750000 0.529545 -v -0.025000 1.750000 0.593182 -v -0.025000 1.750000 0.656818 -v -0.025000 1.750000 0.720455 -v -0.025000 1.750000 0.784091 -v -0.025000 1.750000 0.847727 -v -0.025000 1.750000 0.911364 -v 0.125000 1.750000 0.338636 -v 0.125000 1.750000 0.402273 -v 0.125000 1.750000 0.465909 -v 0.125000 1.750000 0.529545 -v 0.125000 1.750000 0.593182 -v 0.125000 1.750000 0.656818 -v 0.125000 1.750000 0.720455 -v 0.125000 1.750000 0.784091 -v 0.125000 1.750000 0.847727 -v 0.125000 1.750000 0.911364 -v 0.482143 2.771048 -0.425000 -v 0.539286 2.771048 -0.425000 -v 0.596429 2.771048 -0.425000 -v 0.653571 2.771048 -0.425000 -v 0.710714 2.771048 -0.425000 -v 0.767857 2.771048 -0.425000 -v 0.482143 2.000000 -0.425000 -v 0.539286 2.000000 -0.425000 -v 0.596429 2.000000 -0.425000 -v 0.653571 2.000000 -0.425000 -v 0.710714 2.000000 -0.425000 -v 0.767857 2.000000 -0.425000 -v 0.482143 2.871047 -0.075000 -v 0.539286 2.871047 -0.075000 -v 0.596429 2.871047 -0.075000 -v 0.653571 2.871047 -0.075000 -v 0.710714 2.871047 -0.075000 -v 0.767857 2.871047 -0.075000 -v 0.482143 2.871047 -0.325000 -v 0.539286 2.871047 -0.325000 -v 0.596429 2.871047 -0.325000 -v 0.653571 2.871047 -0.325000 -v 0.710714 2.871047 -0.325000 -v 0.767857 2.871047 -0.325000 -v -0.850000 1.200000 -0.250000 -v -0.850000 1.200000 0.350000 -v -0.814645 1.185355 -0.250000 -v -0.814645 1.185355 0.350000 -v -0.800000 1.150000 -0.250000 -v -0.800000 1.150000 0.350000 -v -0.814645 1.114645 -0.250000 -v -0.814645 1.114645 0.350000 -v -0.850000 1.100000 -0.250000 -v -0.850000 1.100000 0.350000 -v -0.885355 1.114645 -0.250000 -v -0.885355 1.114645 0.350000 -v -0.900000 1.150000 -0.250000 -v -0.900000 1.150000 0.350000 -v -0.885355 1.185355 -0.250000 -v -0.885355 1.185355 0.350000 -v -0.750000 1.150000 0.400000 -v -0.450000 1.150000 0.400000 -v -0.750000 1.114645 0.414645 -v -0.450000 1.114645 0.414645 -v -0.750000 1.100000 0.450000 -v -0.450000 1.100000 0.450000 -v -0.750000 1.114645 0.485355 -v -0.450000 1.114645 0.485355 -v -0.750000 1.150000 0.500000 -v -0.450000 1.150000 0.500000 -v -0.750000 1.185355 0.485355 -v -0.450000 1.185355 0.485355 -v -0.750000 1.200000 0.450000 -v -0.450000 1.200000 0.450000 -v -0.750000 1.185355 0.414645 -v -0.450000 1.185355 0.414645 -v -0.850000 1.000000 -0.250000 -v -0.850000 1.000000 0.350000 -v -0.814645 0.985355 -0.250000 -v -0.814645 0.985355 0.350000 -v -0.800000 0.950000 -0.250000 -v -0.800000 0.950000 0.350000 -v -0.814645 0.914645 -0.250000 -v -0.814645 0.914645 0.350000 -v -0.850000 0.900000 -0.250000 -v -0.850000 0.900000 0.350000 -v -0.885355 0.914645 -0.250000 -v -0.885355 0.914645 0.350000 -v -0.900000 0.950000 -0.250000 -v -0.900000 0.950000 0.350000 -v -0.885355 0.985355 -0.250000 -v -0.885355 0.985355 0.350000 -v -0.750000 0.950000 0.400000 -v -0.450000 0.950000 0.400000 -v -0.750000 0.914645 0.414645 -v -0.450000 0.914645 0.414645 -v -0.750000 0.900000 0.450000 -v -0.450000 0.900000 0.450000 -v -0.750000 0.914645 0.485355 -v -0.450000 0.914645 0.485355 -v -0.750000 0.950000 0.500000 -v -0.450000 0.950000 0.500000 -v -0.750000 0.985355 0.485355 -v -0.450000 0.985355 0.485355 -v -0.750000 1.000000 0.450000 -v -0.450000 1.000000 0.450000 -v -0.750000 0.985355 0.414645 -v -0.450000 0.985355 0.414645 -v -0.850000 0.800000 -0.250000 -v -0.850000 0.800000 0.350000 -v -0.814645 0.785355 -0.250000 -v -0.814645 0.785355 0.350000 -v -0.800000 0.750000 -0.250000 -v -0.800000 0.750000 0.350000 -v -0.814645 0.714645 -0.250000 -v -0.814645 0.714645 0.350000 -v -0.850000 0.700000 -0.250000 -v -0.850000 0.700000 0.350000 -v -0.885355 0.714645 -0.250000 -v -0.885355 0.714645 0.350000 -v -0.900000 0.750000 -0.250000 -v -0.900000 0.750000 0.350000 -v -0.885355 0.785355 -0.250000 -v -0.885355 0.785355 0.350000 -v -0.750000 0.750000 0.400000 -v -0.450000 0.750000 0.400000 -v -0.750000 0.714645 0.414645 -v -0.450000 0.714645 0.414645 -v -0.750000 0.700000 0.450000 -v -0.450000 0.700000 0.450000 -v -0.750000 0.714645 0.485355 -v -0.450000 0.714645 0.485355 -v -0.750000 0.750000 0.500000 -v -0.450000 0.750000 0.500000 -v -0.750000 0.785355 0.485355 -v -0.450000 0.785355 0.485355 -v -0.750000 0.800000 0.450000 -v -0.450000 0.800000 0.450000 -v -0.750000 0.785355 0.414645 -v -0.450000 0.785355 0.414645 -v 1.000000 0.250000 -0.250000 -v 1.000000 0.750000 -0.250000 -v 1.000000 0.250000 -0.750000 -v 1.000000 0.750000 -0.750000 -v 2.000000 0.000000 0.000000 -v 2.000000 1.000000 0.000000 -v 2.000000 0.000000 -1.000000 -v 2.000000 1.000000 -1.000000 -v 1.500000 1.000000 -1.000000 -v 1.500000 0.000000 -1.000000 -v 1.500000 1.000000 0.000000 -v 1.500000 0.000000 0.000000 -v 2.000000 0.875000 -0.875000 -v 2.000000 0.125000 -0.875000 -v 2.000000 0.875000 -0.125000 -v 2.000000 0.125000 -0.125000 -v 1.500000 0.687500 -0.687500 -v 1.500000 0.312500 -0.687500 -v 1.500000 0.687500 -0.312500 -v 1.500000 0.312500 -0.312500 -v -1.000000 0.250000 0.750000 -v -1.000000 0.750000 0.750000 -v -1.000000 0.250000 0.250000 -v -1.000000 0.750000 0.250000 -v -2.000000 0.000000 1.000000 -v -2.000000 1.000000 1.000000 -v -2.000000 0.000000 0.000000 -v -2.000000 1.000000 0.000000 -v -1.500000 1.000000 0.000000 -v -1.500000 0.000000 0.000000 -v -1.500000 1.000000 1.000000 -v -1.500000 0.000000 1.000000 -v -2.000000 0.875000 0.125000 -v -2.000000 0.125000 0.125000 -v -2.000000 0.875000 0.875000 -v -2.000000 0.125000 0.875000 -v -1.500000 0.687500 0.312500 -v -1.500000 0.312500 0.312500 -v -1.500000 0.687500 0.687500 -v -1.500000 0.312500 0.687500 -v 0.656250 0.343750 -2.000000 -v 0.656250 0.656250 -2.000000 -v 0.343750 0.343750 -1.150000 -v 0.343750 0.656250 -1.150000 -v 0.343750 0.343750 -2.000000 -v 0.343750 0.656250 -2.000000 -v 0.656250 0.343750 -1.150000 -v 0.656250 0.656250 -1.150000 -v 0.328125 0.671875 -1.150000 -v 0.328125 0.328125 -1.150000 -v 0.671875 0.671875 -1.150000 -v 0.671875 0.328125 -1.150000 -v 0.328125 0.671875 -1.000000 -v 0.328125 0.328125 -1.000000 -v 0.671875 0.671875 -1.000000 -v 0.671875 0.328125 -1.000000 -v -0.343750 0.343750 -2.000000 -v -0.343750 0.656250 -2.000000 -v -0.656250 0.343750 -1.150000 -v -0.656250 0.656250 -1.150000 -v -0.656250 0.343750 -2.000000 -v -0.656250 0.656250 -2.000000 -v -0.343750 0.343750 -1.150000 -v -0.343750 0.656250 -1.150000 -v -0.671875 0.671875 -1.150000 -v -0.671875 0.328125 -1.150000 -v -0.328125 0.671875 -1.150000 -v -0.328125 0.328125 -1.150000 -v -0.671875 0.671875 -1.000000 -v -0.671875 0.328125 -1.000000 -v -0.328125 0.671875 -1.000000 -v -0.328125 0.328125 -1.000000 -v -0.343750 0.343750 2.000000 -v -0.343750 0.656250 2.000000 -v -0.656250 0.343750 1.150000 -v -0.656250 0.656250 1.150000 -v -0.656250 0.343750 2.000000 -v -0.656250 0.656250 2.000000 -v -0.343750 0.343750 1.150000 -v -0.343750 0.656250 1.150000 -v -0.671875 0.671875 1.150000 -v -0.671875 0.328125 1.150000 -v -0.328125 0.671875 1.150000 -v -0.328125 0.328125 1.150000 -v -0.671875 0.671875 1.000000 -v -0.671875 0.328125 1.000000 -v -0.328125 0.671875 1.000000 -v -0.328125 0.328125 1.000000 -v 0.656250 0.343750 2.000000 -v 0.656250 0.656250 2.000000 -v 0.343750 0.343750 1.150000 -v 0.343750 0.656250 1.150000 -v 0.343750 0.343750 2.000000 -v 0.343750 0.656250 2.000000 -v 0.656250 0.343750 1.150000 -v 0.656250 0.656250 1.150000 -v 0.328125 0.671875 1.150000 -v 0.328125 0.328125 1.150000 -v 0.671875 0.671875 1.150000 -v 0.671875 0.328125 1.150000 -v 0.328125 0.671875 1.000000 -v 0.328125 0.328125 1.000000 -v 0.671875 0.671875 1.000000 -v 0.671875 0.328125 1.000000 -v 1.916667 0.250000 -1.100000 -v 1.916667 0.750000 -1.100000 -v 1.666667 0.500000 -1.100000 -v 1.916667 0.250000 0.100000 -v 1.916667 0.750000 0.100000 -v 1.666667 0.500000 0.100000 -v -1.583333 0.250000 -0.100000 -v -1.583333 0.750000 -0.100000 -v -1.833333 0.500000 -0.100000 -v -1.583333 0.250000 1.100000 -v -1.583333 0.750000 1.100000 -v -1.833333 0.500000 1.100000 -v 0.425000 2.000000 -0.767857 -v 0.425000 2.000000 -0.710714 -v 0.425000 2.000000 -0.653571 -v 0.425000 2.000000 -0.596429 -v 0.425000 2.000000 -0.539286 -v 0.425000 2.000000 -0.482143 -v -0.425000 2.000000 -0.767857 -v -0.425000 2.000000 -0.710714 -v -0.425000 2.000000 -0.653571 -v -0.425000 2.000000 -0.596429 -v -0.425000 2.000000 -0.539286 -v -0.425000 2.000000 -0.482143 -v 0.325000 2.121195 -0.749805 -v 0.325000 2.121195 -0.692662 -v 0.325000 2.121195 -0.635520 -v 0.325000 2.121195 -0.578377 -v 0.325000 2.121195 -0.521234 -v 0.325000 2.121195 -0.464091 -v -0.325000 2.100000 -0.767857 -v -0.325000 2.100000 -0.710714 -v -0.325000 2.100000 -0.653571 -v -0.325000 2.100000 -0.596429 -v -0.325000 2.100000 -0.539286 -v -0.325000 2.100000 -0.482143 -vt 0.490762 0.926709 -vt 0.490762 0.946350 -vt 0.255070 0.946350 -vt 0.985607 0.945886 -vt 0.985607 0.965527 -vt 0.749916 0.965527 -vt 0.757849 0.713691 -vt 0.757849 0.694050 -vt 0.993541 0.694050 -vt 0.597494 0.251404 -vt 0.597495 0.231763 -vt 0.833186 0.231763 -vt 0.006459 0.317921 -vt 0.242151 0.317921 -vt 0.242151 0.553613 -vt 0.833186 0.251404 -vt 0.715341 0.279181 -vt 0.006459 0.762941 -vt 0.016280 0.753121 -vt 0.094844 0.753121 -vt 0.749916 0.945886 -vt 0.867761 0.918110 -vt 0.993541 0.713691 -vt 0.875695 0.741468 -vt 0.255070 0.926709 -vt 0.372916 0.898933 -vt 0.104664 0.566532 -vt 0.094844 0.588137 -vt 0.067346 0.588137 -vt 0.895627 0.431077 -vt 0.875987 0.381974 -vt 0.895627 0.332872 -vt 0.104664 0.762941 -vt 0.114485 0.753121 -vt 0.193049 0.753121 -vt 0.758141 0.332872 -vt 0.777782 0.381974 -vt 0.758141 0.431077 -vt 0.875987 0.313231 -vt 0.826884 0.332872 -vt 0.777782 0.313231 -vt 0.777782 0.450718 -vt 0.826884 0.431077 -vt 0.875987 0.450718 -vt 0.547877 0.688960 -vt 0.523477 0.688960 -vt 0.523476 0.531833 -vt 0.499076 0.688960 -vt 0.499076 0.531833 -vt 0.474675 0.688961 -vt 0.474675 0.531833 -vt 0.450275 0.688961 -vt 0.450275 0.531833 -vt 0.425874 0.688961 -vt 0.425874 0.531833 -vt 0.401474 0.688961 -vt 0.401473 0.531833 -vt 0.377073 0.688961 -vt 0.377073 0.531833 -vt 0.352672 0.688961 -vt 0.352672 0.531833 -vt 0.328272 0.688961 -vt 0.328272 0.531833 -vt 0.303871 0.688961 -vt 0.303871 0.531833 -vt 0.578087 0.897548 -vt 0.583979 0.887342 -vt 0.605547 0.908909 -vt 0.279471 0.688961 -vt 0.255070 0.688961 -vt 0.255070 0.531833 -vt 0.279471 0.531833 -vt 0.777782 0.431077 -vt 0.803315 0.422797 -vt 0.826884 0.429113 -vt 0.850453 0.422797 -vt 0.867707 0.405544 -vt 0.875987 0.431077 -vt 0.867707 0.358405 -vt 0.875987 0.332872 -vt 0.850453 0.341151 -vt 0.803315 0.341151 -vt 0.777782 0.332872 -vt 0.786061 0.405544 -vt 0.779746 0.381974 -vt 0.786061 0.358405 -vt 0.116449 0.305002 -vt 0.116449 0.293218 -vt 0.195013 0.293218 -vt 0.202869 0.762941 -vt 0.193049 0.674557 -vt 0.104664 0.664736 -vt 0.114485 0.674557 -vt 0.202869 0.664736 -vt 0.373474 0.006460 -vt 0.381807 0.014793 -vt 0.326254 0.070346 -vt 0.094844 0.674557 -vt 0.016280 0.674557 -vt 0.006459 0.664736 -vt 0.293218 0.195013 -vt 0.285361 0.187156 -vt 0.285361 0.124305 -vt 0.195013 0.006459 -vt 0.195013 0.018244 -vt 0.116449 0.018244 -vt 0.305002 0.195013 -vt 0.293218 0.116449 -vt 0.006459 0.116449 -vt 0.018244 0.116449 -vt 0.018244 0.195013 -vt 0.124305 0.285361 -vt 0.124305 0.191085 -vt 0.187156 0.191085 -vt 0.026100 0.124305 -vt 0.026100 0.187156 -vt 0.187156 0.285361 -vt 0.187156 0.026100 -vt 0.124305 0.026100 -vt 0.529023 0.273114 -vt 0.520690 0.264781 -vt 0.576243 0.209228 -vt 0.584576 0.062012 -vt 0.576243 0.070345 -vt 0.520690 0.014792 -vt 0.317921 0.217561 -vt 0.326254 0.209228 -vt 0.381807 0.264781 -vt 0.337365 0.209228 -vt 0.381807 0.253671 -vt 0.120377 0.124305 -vt 0.140018 0.140018 -vt 0.140018 0.171444 -vt 0.191084 0.187156 -vt 0.171444 0.171444 -vt 0.171444 0.140018 -vt 0.187156 0.120377 -vt 0.124305 0.120377 -vt 0.191084 0.124305 -vt 0.120377 0.187156 -vt 0.473470 0.139787 -vt 0.451248 0.117566 -vt 0.454026 0.092567 -vt 0.683441 0.773992 -vt 0.678358 0.792964 -vt 0.648896 0.785069 -vt 0.560796 0.854968 -vt 0.571002 0.849076 -vt 0.578896 0.878537 -vt 0.567111 0.809447 -vt 0.578896 0.809447 -vt 0.571002 0.838909 -vt 0.595341 0.773183 -vt 0.605547 0.779075 -vt 0.583979 0.800643 -vt 0.637921 0.755892 -vt 0.643813 0.766098 -vt 0.614351 0.773992 -vt 0.683441 0.762207 -vt 0.653980 0.766098 -vt 0.702452 0.914802 -vt 0.692246 0.908909 -vt 0.713813 0.887342 -vt 0.730681 0.878537 -vt 0.718897 0.878537 -vt 0.726791 0.849076 -vt 0.719706 0.790437 -vt 0.713813 0.800643 -vt 0.692246 0.779075 -vt 0.683441 0.925777 -vt 0.659872 0.932093 -vt 0.653980 0.921887 -vt 0.736997 0.833017 -vt 0.726791 0.838909 -vt 0.718897 0.809448 -vt 0.614351 0.925777 -vt 0.614351 0.913993 -vt 0.643813 0.921887 -vt 0.597868 0.873454 -vt 0.597868 0.814531 -vt 0.699925 0.814531 -vt 0.648896 0.902915 -vt 0.678358 0.895021 -vt 0.699925 0.873454 -vt 0.707819 0.843992 -vt 0.589973 0.843992 -vt 0.619435 0.792964 -vt 0.619435 0.895021 -vt 0.404028 0.142564 -vt 0.448471 0.187007 -vt 0.381807 0.025903 -vt 0.337365 0.070346 -vt 0.520690 0.253670 -vt 0.565132 0.209228 -vt 0.565132 0.070345 -vt 0.520690 0.025903 -vt 0.454026 0.187007 -vt 0.451248 0.162008 -vt 0.448471 0.092567 -vt 0.404028 0.137009 -vt 0.498468 0.142564 -vt 0.498468 0.137009 -vt 0.429027 0.139787 -vt 0.772654 0.139975 -vt 0.713797 0.139968 -vt 0.713803 0.085034 -vt 0.094844 0.643131 -vt 0.067346 0.643131 -vt 0.006459 0.566532 -vt 0.694377 0.159597 -vt 0.666844 0.159844 -vt 0.680434 0.140054 -vt 0.597494 0.085032 -vt 0.656447 0.085032 -vt 0.656447 0.140054 -vt 0.667374 0.218844 -vt 0.694185 0.006460 -vt 0.694184 0.065389 -vt 0.666684 0.065389 -vt 0.694193 0.115020 -vt 0.694197 0.120017 -vt 0.694184 0.085032 -vt 0.680434 0.085032 -vt 0.597494 0.297099 -vt 0.597494 0.292100 -vt 0.609279 0.292100 -vt 0.620390 0.292100 -vt 0.620390 0.297099 -vt 0.609279 0.297099 -vt 0.645093 0.297099 -vt 0.645093 0.292100 -vt 0.656878 0.292100 -vt 0.233196 0.730162 -vt 0.233196 0.718377 -vt 0.238196 0.718377 -vt 0.188875 0.787645 -vt 0.188875 0.775860 -vt 0.193875 0.775860 -vt 0.233196 0.682563 -vt 0.233196 0.670778 -vt 0.238196 0.670778 -vt 0.238196 0.693674 -vt 0.233196 0.693673 -vt 0.193875 0.798755 -vt 0.188875 0.798755 -vt 0.238196 0.741272 -vt 0.233196 0.741272 -vt 0.667988 0.292100 -vt 0.667988 0.297099 -vt 0.656878 0.297099 -vt 0.632174 0.292100 -vt 0.632174 0.297099 -vt 0.679773 0.292100 -vt 0.679773 0.297099 -vt 0.238196 0.753057 -vt 0.233196 0.753057 -vt 0.193875 0.810540 -vt 0.188875 0.810540 -vt 0.238196 0.705458 -vt 0.233196 0.705458 -vt 0.220277 0.762106 -vt 0.215788 0.762106 -vt 0.215788 0.742465 -vt 0.237686 0.657860 -vt 0.233196 0.657860 -vt 0.233196 0.638219 -vt 0.220277 0.657860 -vt 0.215788 0.657860 -vt 0.215788 0.638219 -vt 0.215788 0.627108 -vt 0.215788 0.566532 -vt 0.220277 0.566532 -vt 0.233196 0.627108 -vt 0.233196 0.566532 -vt 0.237686 0.566532 -vt 0.215788 0.731355 -vt 0.215788 0.670778 -vt 0.220277 0.670778 -vt 0.220277 0.742465 -vt 0.237686 0.638219 -vt 0.220277 0.638219 -vt 0.814270 0.481676 -vt 0.814270 0.484682 -vt 0.790701 0.484682 -vt 0.452123 0.725932 -vt 0.452123 0.722925 -vt 0.499261 0.722925 -vt 0.231300 0.817551 -vt 0.234194 0.816738 -vt 0.234194 0.823920 -vt 0.218064 0.827849 -vt 0.218064 0.812810 -vt 0.220959 0.811996 -vt 0.452123 0.719919 -vt 0.499261 0.719919 -vt 0.236470 0.814774 -vt 0.236470 0.825884 -vt 0.814270 0.472656 -vt 0.814270 0.475663 -vt 0.790701 0.475663 -vt 0.452123 0.716912 -vt 0.499261 0.716912 -vt 0.814270 0.478669 -vt 0.790701 0.481676 -vt 0.452123 0.713906 -vt 0.499261 0.713906 -vt 0.452123 0.710899 -vt 0.499261 0.710899 -vt 0.215788 0.825884 -vt 0.215788 0.814774 -vt 0.814270 0.469650 -vt 0.790701 0.472656 -vt 0.452123 0.707893 -vt 0.499261 0.707893 -vt 0.223853 0.812810 -vt 0.223853 0.827849 -vt 0.220959 0.828662 -vt 0.452123 0.704886 -vt 0.452123 0.701880 -vt 0.499261 0.701880 -vt 0.499261 0.704886 -vt 0.790701 0.478669 -vt 0.814270 0.487689 -vt 0.790701 0.487689 -vt 0.814270 0.466643 -vt 0.790701 0.469650 -vt 0.231300 0.823107 -vt 0.228405 0.823920 -vt 0.814270 0.463637 -vt 0.790701 0.466643 -vt 0.226129 0.814774 -vt 0.228405 0.816738 -vt 0.226129 0.825884 -vt 0.175956 0.793899 -vt 0.175956 0.796906 -vt 0.152387 0.796906 -vt 0.452123 0.762903 -vt 0.452123 0.759896 -vt 0.499261 0.759896 -vt 0.523291 0.821793 -vt 0.524104 0.824687 -vt 0.516922 0.824687 -vt 0.512994 0.808558 -vt 0.528032 0.808558 -vt 0.528846 0.811452 -vt 0.452123 0.756890 -vt 0.499261 0.756890 -vt 0.526068 0.826964 -vt 0.514958 0.826964 -vt 0.175956 0.784880 -vt 0.175956 0.787886 -vt 0.152387 0.787886 -vt 0.452123 0.753883 -vt 0.499261 0.753883 -vt 0.175956 0.790893 -vt 0.152387 0.793899 -vt 0.452123 0.750877 -vt 0.499261 0.750877 -vt 0.452123 0.747870 -vt 0.499261 0.747870 -vt 0.514958 0.806281 -vt 0.526068 0.806281 -vt 0.175956 0.781873 -vt 0.152387 0.784880 -vt 0.452123 0.744864 -vt 0.499261 0.744864 -vt 0.528032 0.814346 -vt 0.512994 0.814346 -vt 0.512180 0.811452 -vt 0.452123 0.741857 -vt 0.452123 0.738851 -vt 0.499261 0.738851 -vt 0.499261 0.741857 -vt 0.152387 0.790893 -vt 0.175956 0.799912 -vt 0.152387 0.799912 -vt 0.175956 0.778867 -vt 0.152387 0.781873 -vt 0.517735 0.821793 -vt 0.516922 0.818899 -vt 0.175956 0.775860 -vt 0.152387 0.778867 -vt 0.514958 0.816622 -vt 0.524104 0.818899 -vt 0.239357 0.793064 -vt 0.239357 0.796071 -vt 0.215788 0.796071 -vt 0.452123 0.799874 -vt 0.452123 0.796867 -vt 0.499261 0.796867 -vt 0.806212 0.506163 -vt 0.809107 0.505349 -vt 0.809107 0.512532 -vt 0.792977 0.516460 -vt 0.792977 0.501421 -vt 0.795871 0.500608 -vt 0.452123 0.793861 -vt 0.499261 0.793861 -vt 0.811383 0.503385 -vt 0.811383 0.514496 -vt 0.239357 0.784045 -vt 0.239357 0.787051 -vt 0.215788 0.787051 -vt 0.452123 0.790854 -vt 0.499261 0.790854 -vt 0.239357 0.790058 -vt 0.215788 0.793064 -vt 0.452123 0.787848 -vt 0.499261 0.787848 -vt 0.452123 0.784841 -vt 0.499261 0.784841 -vt 0.790701 0.514496 -vt 0.790701 0.503385 -vt 0.239357 0.781038 -vt 0.215788 0.784045 -vt 0.452123 0.781835 -vt 0.499261 0.781835 -vt 0.798766 0.501421 -vt 0.798766 0.516460 -vt 0.452123 0.778828 -vt 0.452123 0.775822 -vt 0.499261 0.775822 -vt 0.499261 0.778828 -vt 0.215788 0.790058 -vt 0.239357 0.799077 -vt 0.215788 0.799077 -vt 0.239357 0.778032 -vt 0.215788 0.781038 -vt 0.806212 0.511718 -vt 0.803318 0.512532 -vt 0.215788 0.775025 -vt 0.239357 0.775025 -vt 0.801042 0.514496 -vt 0.801042 0.503385 -vt 0.803318 0.505349 -vt 0.438896 0.418417 -vt 0.411119 0.446194 -vt 0.383343 0.418417 -vt 0.511616 0.463361 -vt 0.456063 0.518914 -vt 0.428286 0.491137 -vt 0.891366 0.006459 -vt 0.881546 0.016280 -vt 0.822623 0.016280 -vt 0.411119 0.390641 -vt 0.338399 0.401251 -vt 0.282846 0.456804 -vt 0.255070 0.429027 -vt 0.310623 0.373474 -vt 0.483839 0.401251 -vt 0.511616 0.373474 -vt 0.428286 0.345698 -vt 0.393952 0.345698 -vt 0.483839 0.435584 -vt 0.795400 0.043502 -vt 0.837353 0.058233 -vt 0.837353 0.087694 -vt 0.812802 0.139468 -vt 0.822623 0.129648 -vt 0.881545 0.129648 -vt 0.918588 0.112246 -vt 0.908768 0.102425 -vt 0.908768 0.043502 -vt 0.785580 0.033682 -vt 0.795400 0.102425 -vt 0.866815 0.058233 -vt 0.866815 0.087695 -vt 0.647017 0.396432 -vt 0.647017 0.435713 -vt 0.607735 0.435713 -vt 0.666658 0.479632 -vt 0.666658 0.518914 -vt 0.588094 0.518914 -vt 0.043502 0.899048 -vt 0.102425 0.899048 -vt 0.112246 0.908869 -vt 0.666658 0.352513 -vt 0.607735 0.396432 -vt 0.745222 0.518914 -vt 0.563817 0.455354 -vt 0.563817 0.376790 -vt 0.524535 0.455354 -vt 0.666658 0.313231 -vt 0.588094 0.352513 -vt 0.588094 0.479632 -vt 0.058233 0.827634 -vt 0.058233 0.857095 -vt 0.016280 0.871826 -vt 0.102425 0.785681 -vt 0.043502 0.785681 -vt 0.033682 0.775860 -vt 0.129648 0.871826 -vt 0.129648 0.812903 -vt 0.139468 0.803083 -vt 0.016280 0.812903 -vt 0.006459 0.881646 -vt 0.087695 0.857095 -vt 0.087695 0.827634 -vt 0.785278 0.541902 -vt 0.832498 0.589122 -vt 0.815138 0.606482 -vt 0.879718 0.541902 -vt 0.879718 0.540166 -vt 0.898815 0.559262 -vt 0.879718 0.671063 -vt 0.832498 0.623843 -vt 0.849859 0.606482 -vt 0.767918 0.653702 -vt 0.897079 0.559262 -vt 0.888051 0.531833 -vt 0.907148 0.550929 -vt 0.785278 0.671063 -vt 0.785278 0.672799 -vt 0.766182 0.653702 -vt 0.897079 0.653702 -vt 0.898815 0.653702 -vt 0.879718 0.672799 -vt 0.767918 0.559262 -vt 0.766182 0.559262 -vt 0.785278 0.540166 -vt 0.416499 0.290522 -vt 0.416499 0.286033 -vt 0.405388 0.286033 -vt 0.776945 0.681132 -vt 0.757849 0.662035 -vt 0.757849 0.550929 -vt 0.776945 0.531833 -vt 0.907148 0.662035 -vt 0.888051 0.681132 -vt 0.759985 0.877761 -vt 0.807205 0.830541 -vt 0.824565 0.847902 -vt 0.759985 0.783321 -vt 0.758249 0.783321 -vt 0.777345 0.764225 -vt 0.889145 0.783321 -vt 0.841925 0.830541 -vt 0.824565 0.813181 -vt 0.871785 0.895122 -vt 0.777345 0.765961 -vt 0.749916 0.774988 -vt 0.769012 0.755892 -vt 0.889145 0.877761 -vt 0.890881 0.877761 -vt 0.871785 0.896858 -vt 0.871785 0.765961 -vt 0.871785 0.764225 -vt 0.890881 0.783321 -vt 0.777345 0.895122 -vt 0.777345 0.896858 -vt 0.758249 0.877761 -vt 0.503967 0.290522 -vt 0.503967 0.286033 -vt 0.492856 0.286033 -vt 0.899214 0.886094 -vt 0.880118 0.905191 -vt 0.769012 0.905191 -vt 0.749916 0.886094 -vt 0.880118 0.755892 -vt 0.899214 0.774988 -vt 0.640587 0.638631 -vt 0.640587 0.663182 -vt 0.573808 0.663182 -vt 0.666366 0.731188 -vt 0.639360 0.731188 -vt 0.640587 0.729961 -vt 0.665139 0.663182 -vt 0.665139 0.638630 -vt 0.731918 0.638630 -vt 0.640587 0.571851 -vt 0.665139 0.729961 -vt 0.666366 0.742973 -vt 0.639360 0.742973 -vt 0.639360 0.570624 -vt 0.666366 0.570624 -vt 0.665138 0.571851 -vt 0.733145 0.637403 -vt 0.733145 0.664409 -vt 0.731918 0.663182 -vt 0.572580 0.664409 -vt 0.572580 0.637403 -vt 0.573808 0.638631 -vt 0.639360 0.558839 -vt 0.639360 0.531833 -vt 0.666366 0.531833 -vt 0.666366 0.558839 -vt 0.560796 0.664409 -vt 0.560796 0.637403 -vt 0.744930 0.637403 -vt 0.744930 0.664409 -vt 0.334861 0.781671 -vt 0.334861 0.806222 -vt 0.268082 0.806222 -vt 0.360640 0.874229 -vt 0.333634 0.874229 -vt 0.334861 0.873001 -vt 0.359413 0.806222 -vt 0.359413 0.781671 -vt 0.426192 0.781671 -vt 0.334861 0.714892 -vt 0.359413 0.873001 -vt 0.360640 0.886014 -vt 0.333634 0.886014 -vt 0.333634 0.713664 -vt 0.360640 0.713664 -vt 0.359413 0.714892 -vt 0.427419 0.780443 -vt 0.427419 0.807450 -vt 0.426192 0.806222 -vt 0.266854 0.807450 -vt 0.266854 0.780443 -vt 0.268082 0.781671 -vt 0.329032 0.290522 -vt 0.329032 0.286033 -vt 0.317921 0.286033 -vt 0.333634 0.701880 -vt 0.360640 0.701880 -vt 0.255070 0.807450 -vt 0.255070 0.780443 -vt 0.439204 0.780443 -vt 0.439204 0.807450 -vt 0.785580 0.191669 -vt 0.785580 0.152387 -vt 0.805221 0.172028 -vt 0.777782 0.502919 -vt 0.758141 0.483278 -vt 0.777782 0.463637 -vt 0.512180 0.741161 -vt 0.512180 0.701880 -vt 0.531821 0.721520 -vt 0.531821 0.793362 -vt 0.512180 0.773721 -vt 0.531821 0.754080 -vt 0.467593 0.287451 -vt 0.555060 0.287451 -vt 0.380125 0.287451 -vt 0.392470 0.286033 -vt 0.392470 0.290522 -vt 0.567405 0.286033 -vt 0.567405 0.290522 -vt 0.479937 0.286033 -vt 0.479937 0.290522 -vt 0.006459 0.553613 -vt 0.617135 0.279181 -vt 0.813545 0.279181 -vt 0.965966 0.918110 -vt 0.769557 0.918110 -vt 0.777490 0.741468 -vt 0.973900 0.741468 -vt 0.471121 0.898933 -vt 0.274711 0.898933 -vt 0.547877 0.531833 -vt 0.595341 0.914802 -vt 0.874022 0.381975 -vt 0.826884 0.334836 -vt 0.195013 0.305002 -vt 0.317921 0.062013 -vt 0.116449 0.006459 -vt 0.305002 0.116449 -vt 0.006459 0.195013 -vt 0.584576 0.217561 -vt 0.529022 0.006459 -vt 0.373474 0.273114 -vt 0.567111 0.878537 -vt 0.560796 0.833017 -vt 0.578087 0.790437 -vt 0.614351 0.762207 -vt 0.659872 0.755892 -vt 0.719706 0.897548 -vt 0.736997 0.854968 -vt 0.702452 0.773183 -vt 0.683441 0.913993 -vt 0.730681 0.809448 -vt 0.637920 0.932093 -vt 0.772661 0.085041 -vt 0.694200 0.139930 -vt 0.597494 0.140054 -vt 0.694907 0.218597 -vt 0.666684 0.006459 -vt 0.694184 0.090030 -vt 0.694185 0.095029 -vt 0.694186 0.100027 -vt 0.694188 0.105025 -vt 0.694190 0.110023 -vt 0.694202 0.125013 -vt 0.694078 0.130204 -vt 0.694150 0.133627 -vt 0.238196 0.730162 -vt 0.193875 0.787645 -vt 0.238196 0.682563 -vt 0.220277 0.627108 -vt 0.237686 0.627108 -vt 0.220277 0.731355 -vt 0.499261 0.725932 -vt 0.790701 0.463637 -vt 0.499261 0.762903 -vt 0.152387 0.775860 -vt 0.526068 0.816622 -vt 0.499261 0.799874 -vt 0.795871 0.517274 -vt 0.215788 0.778032 -vt 0.812802 0.006459 -vt 0.456063 0.317921 -vt 0.366176 0.317921 -vt 0.891366 0.139468 -vt 0.918588 0.033682 -vt 0.785580 0.112246 -vt 0.033682 0.908869 -vt 0.745222 0.479632 -vt 0.524535 0.376790 -vt 0.588094 0.313231 -vt 0.112246 0.775860 -vt 0.139468 0.881646 -vt 0.006459 0.803082 -vt 0.405388 0.290522 -vt 0.492856 0.290522 -vt 0.317921 0.290522 -vt 0.467593 0.291941 -vt 0.555060 0.291941 -vt 0.380125 0.291941 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.707100 0.707100 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.707100 -0.707100 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.600000 0.800000 0.000000 -vn -0.600000 0.800000 0.000000 -vn 0.000000 0.800000 -0.600000 -vn 0.000000 0.800000 0.600000 -vn -0.819200 0.573500 0.000000 -vn 0.000000 0.382700 0.923900 -vn 0.382700 0.923900 0.000000 -vn 0.678600 0.281100 -0.678600 -vn -0.678600 0.281100 0.678600 -vn 0.923900 0.382700 0.000000 -vn 0.357400 0.862900 -0.357400 -vn 0.000000 -0.923900 -0.382700 -vn 0.923900 -0.382700 0.000000 -vn 0.000000 -0.382700 0.923900 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.357400 0.862900 0.357400 -vn 0.000000 -0.382700 -0.923900 -vn -0.923900 -0.382700 0.000000 -vn -0.678600 -0.281100 0.678600 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 0.000000 -vn 0.000000 -0.923900 0.382700 -vn -0.000000 0.923900 0.382700 -vn 0.000000 0.382700 -0.923900 -vn 0.678600 -0.281100 -0.678600 -vn 0.000000 0.923900 -0.382700 -vn -0.357400 -0.862900 0.357400 -vn 0.357400 -0.862900 -0.357400 -vn -0.447200 0.000000 0.894400 -vn -0.447200 0.894400 0.000000 -vn -0.447200 0.000000 -0.894400 -vn 0.351100 0.000000 -0.936300 -vn 0.351100 0.000000 0.936300 -vn 0.351100 0.936300 0.000000 -vn 0.351100 -0.936300 0.000000 -vn 0.447200 0.000000 0.894400 -vn 0.447200 0.894400 0.000000 -vn 0.447200 0.000000 -0.894400 -vn -0.351100 0.000000 -0.936300 -vn -0.351100 0.000000 0.936300 -vn -0.351100 0.936300 0.000000 -vn -0.351100 -0.936300 0.000000 -vn -0.032600 0.999500 0.000000 -vn -0.771300 -0.636400 0.000000 -s off -f 4/1/1 3/2/1 1/3/1 -f 8/4/2 7/5/2 3/6/2 -f 6/7/3 5/8/3 7/9/3 -f 2/10/4 1/11/4 5/12/4 -f 3/13/5 7/14/5 5/15/5 -f 6/16/6 16/17/6 2/10/6 -f 10/18/7 55/19/7 56/20/7 -f 4/21/8 14/22/8 8/4/8 -f 8/23/9 15/24/9 6/7/9 -f 2/25/10 13/26/10 4/1/10 -f 16/27/7 114/28/7 115/29/7 -f 16/30/1 48/31/1 17/32/1 -f 14/33/7 50/34/7 51/35/7 -f 15/36/3 46/37/3 12/38/3 -f 17/39/2 47/40/2 15/41/2 -f 12/42/4 49/43/4 16/44/4 -f 23/45/11 25/46/11 24/47/11 -f 25/46/12 27/48/12 26/49/12 -f 27/48/13 29/50/13 28/51/13 -f 29/50/14 31/52/14 30/53/14 -f 31/52/15 33/54/15 32/55/15 -f 33/54/16 35/56/16 34/57/16 -f 35/56/17 37/58/17 36/59/17 -f 37/58/18 39/60/18 38/61/18 -f 39/60/19 41/62/19 40/63/19 -f 41/62/20 43/64/20 42/65/20 -f 39/66/5 86/67/5 87/68/5 -f 45/69/21 23/70/21 22/71/21 -f 43/64/22 45/69/22 44/72/22 -f 49/43/7 19/73/7 32/74/7 -f 49/43/7 34/75/7 36/76/7 -f 36/76/7 38/77/7 20/78/7 -f 48/31/7 20/78/7 38/77/7 -f 42/79/7 21/80/7 48/31/7 -f 44/81/7 21/80/7 42/79/7 -f 47/40/7 21/80/7 44/81/7 -f 24/82/7 18/83/7 47/40/7 -f 32/74/7 19/73/7 30/84/7 -f 46/37/7 28/85/7 30/84/7 -f 46/37/7 18/83/7 26/86/7 -f 26/86/7 18/83/7 24/82/7 -f 52/87/4 60/88/4 61/89/4 -f 11/90/7 51/35/7 52/91/7 -f 17/92/7 53/93/7 50/34/7 -f 15/94/7 52/91/7 53/93/7 -f 57/95/4 66/96/4 69/97/4 -f 17/92/7 57/98/7 54/99/7 -f 14/33/7 56/20/7 57/98/7 -f 13/100/7 54/99/7 55/19/7 -f 61/101/7 65/102/7 62/103/7 -f 50/104/2 58/105/2 59/106/2 -f 53/107/1 61/101/1 58/108/1 -f 51/109/3 59/110/3 60/111/3 -f 64/112/4 76/113/4 77/114/4 -f 59/110/7 63/115/7 64/116/7 -f 60/88/7 64/112/7 65/117/7 -f 58/105/7 62/118/7 63/119/7 -f 55/120/2 68/121/2 67/122/2 -f 56/123/3 67/124/3 66/125/3 -f 54/126/1 69/127/1 68/128/1 -f 69/127/7 104/129/7 105/130/7 -f 75/131/23 72/132/23 71/133/23 -f 77/134/24 70/135/24 73/136/24 -f 62/118/2 74/137/2 75/138/2 -f 65/102/1 77/134/1 74/139/1 -f 63/115/3 75/131/3 76/140/3 -f 74/137/25 73/136/25 72/132/25 -f 110/141/23 111/142/23 107/143/23 -f 77/114/26 76/113/26 71/133/26 -f 81/144/14 93/145/14 94/146/14 -f 37/147/5 85/148/5 86/149/5 -f 35/150/5 84/151/5 85/152/5 -f 33/153/5 83/154/5 84/155/5 -f 31/156/5 82/157/5 83/158/5 -f 29/159/5 81/144/5 82/160/5 -f 45/161/5 89/162/5 79/163/5 -f 23/164/5 79/165/5 78/166/5 -f 27/167/5 80/168/5 81/169/5 -f 45/170/5 43/171/5 88/172/5 -f 25/173/5 78/174/5 80/175/5 -f 41/176/5 87/177/5 88/178/5 -f 98/179/7 96/180/7 92/181/7 -f 88/172/22 100/182/22 101/183/22 -f 79/165/11 91/184/11 90/185/11 -f 85/148/18 97/186/18 98/179/18 -f 82/157/15 94/146/15 95/187/15 -f 89/162/21 101/183/21 91/184/21 -f 78/174/12 90/185/12 92/181/12 -f 86/67/19 98/179/19 99/188/19 -f 83/154/16 95/187/16 96/180/16 -f 80/168/13 92/181/13 93/145/13 -f 87/177/20 99/188/20 100/182/20 -f 84/151/17 96/180/17 97/186/17 -f 104/129/1 108/189/1 109/190/1 -f 66/96/7 103/191/7 104/192/7 -f 68/121/7 105/193/7 102/194/7 -f 67/124/7 102/195/7 103/196/7 -f 109/197/25 113/198/25 110/141/25 -f 103/191/4 107/199/4 108/200/4 -f 105/193/2 109/197/2 106/201/2 -f 102/195/3 106/202/3 107/143/3 -f 110/141/7 113/198/7 112/203/7 -f 73/136/7 70/135/7 71/133/7 -f 108/189/24 112/203/24 113/198/24 -f 107/199/26 111/142/26 112/203/26 -f 117/204/3 121/205/3 118/206/3 -f 17/92/7 117/207/7 114/28/7 -f 17/92/7 13/100/7 116/208/7 -f 9/209/7 115/29/7 116/208/7 -f 121/210/2 120/211/2 124/212/2 -f 115/213/1 119/214/1 120/215/1 -f 116/216/2 120/211/2 121/210/2 -f 114/217/4 118/218/4 119/219/4 -f 130/220/7 129/221/7 124/212/7 -f 118/218/4 122/222/4 123/223/4 -f 121/205/3 130/220/3 118/206/3 -f 119/214/27 123/223/27 124/212/27 -f 126/224/1 127/225/1 137/226/1 -f 147/227/10 146/228/10 136/229/10 -f 128/230/1 129/231/1 139/232/1 -f 140/233/1 130/234/1 131/235/1 -f 142/236/1 132/237/1 133/238/1 -f 144/239/1 134/240/1 135/241/1 -f 155/242/10 154/243/10 144/239/10 -f 153/244/10 152/245/10 142/236/10 -f 151/246/10 150/247/10 140/233/10 -f 149/248/10 148/249/10 138/250/10 -f 157/251/7 156/252/7 146/228/7 -f 159/253/7 158/254/7 148/249/7 -f 161/255/7 160/256/7 150/247/7 -f 163/257/7 162/258/7 152/245/7 -f 165/259/7 164/260/7 154/243/7 -f 182/261/7 183/262/7 189/263/7 -f 180/264/7 181/265/7 187/266/7 -f 178/267/7 179/268/7 185/269/7 -f 167/270/2 173/271/2 172/272/2 -f 169/273/2 175/274/2 174/275/2 -f 171/276/2 177/277/2 176/278/2 -f 188/279/8 189/263/8 171/276/8 -f 186/280/8 187/266/8 169/273/8 -f 184/281/8 185/269/8 167/270/8 -f 215/282/28 217/283/28 216/284/28 -f 191/285/29 193/286/29 192/287/29 -f 195/288/30 193/289/30 220/290/30 -f 216/291/31 205/292/31 203/293/31 -f 193/286/32 195/294/32 194/295/32 -f 191/296/33 218/297/33 220/290/33 -f 209/298/34 211/299/34 210/300/34 -f 195/294/35 197/301/35 196/302/35 -f 213/303/36 215/282/36 214/304/36 -f 197/301/37 199/305/37 198/306/37 -f 199/305/38 201/307/38 200/308/38 -f 218/309/39 191/310/39 205/292/39 -f 207/311/40 209/298/40 208/312/40 -f 201/307/41 203/313/41 202/314/41 -f 201/315/42 212/316/42 214/317/42 -f 205/318/43 191/319/43 190/320/43 -f 203/313/44 205/318/44 204/321/44 -f 211/299/45 213/303/45 212/322/45 -f 217/283/46 219/323/46 218/324/46 -f 221/325/47 207/311/47 206/326/47 -f 195/288/48 206/327/48 208/328/48 -f 219/329/49 221/325/49 220/330/49 -f 212/316/50 201/315/50 199/331/50 -f 197/332/51 208/328/51 210/333/51 -f 247/334/28 249/335/28 248/336/28 -f 223/337/29 225/338/29 224/339/29 -f 227/340/30 225/341/30 252/342/30 -f 248/343/31 237/344/31 235/345/31 -f 225/338/32 227/346/32 226/347/32 -f 223/348/33 250/349/33 252/342/33 -f 241/350/34 243/351/34 242/352/34 -f 227/346/35 229/353/35 228/354/35 -f 245/355/36 247/334/36 246/356/36 -f 229/353/37 231/357/37 230/358/37 -f 231/357/38 233/359/38 232/360/38 -f 250/361/39 223/362/39 237/344/39 -f 239/363/40 241/350/40 240/364/40 -f 233/359/41 235/365/41 234/366/41 -f 233/367/42 244/368/42 246/369/42 -f 237/370/43 223/371/43 222/372/43 -f 235/365/44 237/370/44 236/373/44 -f 243/351/45 245/355/45 244/374/45 -f 249/335/46 251/375/46 250/376/46 -f 253/377/47 239/363/47 238/378/47 -f 227/340/48 238/379/48 240/380/48 -f 251/381/49 253/377/49 252/382/49 -f 242/383/50 244/368/50 233/367/50 -f 229/384/51 240/380/51 242/383/51 -f 279/385/28 281/386/28 280/387/28 -f 255/388/29 257/389/29 256/390/29 -f 259/391/30 257/392/30 284/393/30 -f 280/394/31 269/395/31 267/396/31 -f 257/389/32 259/397/32 258/398/32 -f 255/399/33 282/400/33 284/393/33 -f 273/401/34 275/402/34 274/403/34 -f 259/397/35 261/404/35 260/405/35 -f 277/406/36 279/385/36 278/407/36 -f 261/404/37 263/408/37 262/409/37 -f 263/408/38 265/410/38 264/411/38 -f 282/412/39 255/413/39 269/395/39 -f 271/414/40 273/401/40 272/415/40 -f 265/410/41 267/416/41 266/417/41 -f 267/396/42 265/418/42 276/419/42 -f 269/420/43 255/421/43 254/422/43 -f 267/416/44 269/420/44 268/423/44 -f 275/402/45 277/406/45 276/424/45 -f 281/386/46 283/425/46 282/426/46 -f 285/427/47 271/414/47 270/428/47 -f 259/391/48 270/429/48 272/430/48 -f 282/431/49 283/432/49 285/427/49 -f 274/433/50 276/419/50 265/418/50 -f 263/434/51 261/435/51 272/430/51 -f 289/436/1 288/437/1 286/438/1 -f 293/439/2 292/440/2 295/441/2 -f 292/442/3 299/443/3 301/444/3 -f 287/445/52 286/438/52 297/446/52 -f 295/447/5 292/448/5 290/449/5 -f 294/450/53 289/436/53 287/445/53 -f 293/451/7 294/450/7 296/452/7 -f 296/453/4 297/446/4 290/449/4 -f 294/454/54 295/441/54 288/437/54 -f 301/455/55 305/456/55 304/457/55 -f 291/458/3 300/459/3 298/460/3 -f 293/461/3 298/462/3 299/463/3 -f 290/464/3 301/455/3 300/465/3 -f 304/457/3 305/456/3 303/466/3 -f 298/462/56 302/467/56 303/466/56 -f 299/443/57 303/466/57 305/456/57 -f 300/459/58 304/457/58 302/467/58 -f 306/468/3 308/469/3 309/470/3 -f 315/471/2 312/472/2 313/473/2 -f 321/474/1 319/475/1 312/476/1 -f 317/477/59 306/468/59 307/478/59 -f 310/479/5 312/472/5 315/471/5 -f 307/478/60 309/470/60 314/480/60 -f 316/481/7 314/480/7 313/482/7 -f 310/483/4 317/477/4 316/484/4 -f 308/469/61 315/471/61 314/485/61 -f 324/486/62 325/487/62 321/488/62 -f 318/489/1 320/490/1 311/491/1 -f 319/492/1 318/493/1 313/494/1 -f 320/495/1 321/488/1 310/496/1 -f 323/497/1 325/487/1 324/486/1 -f 323/497/63 322/498/63 318/493/63 -f 325/487/64 323/497/64 319/475/64 -f 322/498/65 324/486/65 320/490/65 -f 332/499/3 326/500/3 327/501/3 -f 332/502/2 337/503/2 335/504/2 -f 329/505/1 331/506/1 330/507/1 -f 333/508/7 327/501/7 331/506/7 -f 328/509/5 330/507/5 326/500/5 -f 327/501/2 326/500/2 330/507/2 -f 337/503/5 341/510/5 339/511/5 -f 329/512/2 334/513/2 336/514/2 -f 328/515/2 335/516/2 334/517/2 -f 333/518/2 336/519/2 337/520/2 -f 421/521/10 420/522/10 408/523/10 -f 334/513/7 338/524/7 340/525/7 -f 336/519/3 340/526/3 341/527/3 -f 335/516/1 339/528/1 338/529/1 -f 348/530/3 342/531/3 343/532/3 -f 348/533/2 353/534/2 351/535/2 -f 345/536/1 347/537/1 346/538/1 -f 349/539/7 343/532/7 347/537/7 -f 344/540/5 346/538/5 342/531/5 -f 343/532/2 342/531/2 346/538/2 -f 353/534/5 357/541/5 355/542/5 -f 345/543/2 350/544/2 352/545/2 -f 344/546/2 351/547/2 350/548/2 -f 349/549/2 352/550/2 353/551/2 -f 423/552/10 422/553/10 410/554/10 -f 350/544/7 354/555/7 356/556/7 -f 352/550/3 356/557/3 357/558/3 -f 351/547/1 355/559/1 354/560/1 -f 359/561/3 358/562/3 364/563/3 -f 367/564/4 369/565/4 364/566/4 -f 362/567/1 363/568/1 361/569/1 -f 363/568/7 359/561/7 365/570/7 -f 358/562/5 362/567/5 360/571/5 -f 362/567/4 358/562/4 359/561/4 -f 371/572/5 373/573/5 369/565/5 -f 368/574/4 366/575/4 361/576/4 -f 366/577/4 367/578/4 360/579/4 -f 369/580/4 368/581/4 365/582/4 -f 372/583/2 373/584/2 371/585/2 -f 372/583/7 370/586/7 366/575/7 -f 373/587/3 372/588/3 368/581/3 -f 370/589/1 371/590/1 367/578/1 -f 375/591/3 374/592/3 380/593/3 -f 383/594/4 385/595/4 380/596/4 -f 378/597/1 379/598/1 377/599/1 -f 379/598/7 375/591/7 381/600/7 -f 374/592/5 378/597/5 376/601/5 -f 378/597/4 374/592/4 375/591/4 -f 387/602/5 389/603/5 385/595/5 -f 384/604/4 382/605/4 377/606/4 -f 382/607/4 383/608/4 376/609/4 -f 385/610/4 384/611/4 381/612/4 -f 425/613/10 424/614/10 412/615/10 -f 388/616/7 386/617/7 382/605/7 -f 389/618/3 388/619/3 384/611/3 -f 386/620/1 387/621/1 383/608/1 -f 391/622/2 390/623/2 392/624/2 -f 394/625/4 395/626/4 393/627/4 -f 397/628/2 396/629/2 398/630/2 -f 400/631/4 401/632/4 399/633/4 -f 414/634/66 420/522/66 421/521/66 -f 416/635/66 422/553/66 423/552/66 -f 418/636/66 424/614/66 425/613/66 -f 418/636/67 406/637/67 407/638/67 -f 416/635/67 404/639/67 405/640/67 -f 414/634/67 402/641/67 403/642/67 -f 2/25/1 4/1/1 1/3/1 -f 4/21/2 8/4/2 3/6/2 -f 8/23/3 6/7/3 7/9/3 -f 6/16/4 2/10/4 5/12/4 -f 1/643/5 3/13/5 5/15/5 -f 9/644/6 2/10/6 16/17/6 -f 6/16/6 12/645/6 16/17/6 -f 14/33/7 10/18/7 56/20/7 -f 11/646/8 8/4/8 14/22/8 -f 4/21/8 10/647/8 14/22/8 -f 12/648/9 6/7/9 15/24/9 -f 8/23/9 11/649/9 15/24/9 -f 10/650/10 4/1/10 13/26/10 -f 2/25/10 9/651/10 13/26/10 -f 9/209/7 16/27/7 115/29/7 -f 21/80/1 17/32/1 48/31/1 -f 16/30/1 20/78/1 48/31/1 -f 11/90/7 14/33/7 51/35/7 -f 19/73/3 12/38/3 46/37/3 -f 15/36/3 18/83/3 46/37/3 -f 18/83/2 15/41/2 47/40/2 -f 17/39/2 21/80/2 47/40/2 -f 20/78/4 16/44/4 49/43/4 -f 12/42/4 19/73/4 49/43/4 -f 22/652/11 23/45/11 24/47/11 -f 24/47/12 25/46/12 26/49/12 -f 26/49/13 27/48/13 28/51/13 -f 28/51/14 29/50/14 30/53/14 -f 30/53/15 31/52/15 32/55/15 -f 32/55/16 33/54/16 34/57/16 -f 34/57/17 35/56/17 36/59/17 -f 36/59/18 37/58/18 38/61/18 -f 38/61/19 39/60/19 40/63/19 -f 40/63/20 41/62/20 42/65/20 -f 41/653/5 39/66/5 87/68/5 -f 44/72/21 45/69/21 22/71/21 -f 42/65/22 43/64/22 44/72/22 -f 34/75/7 49/43/7 32/74/7 -f 20/78/7 49/43/7 36/76/7 -f 40/654/7 48/31/7 38/77/7 -f 40/654/7 42/79/7 48/31/7 -f 22/655/7 47/40/7 44/81/7 -f 22/655/7 24/82/7 47/40/7 -f 19/73/7 46/37/7 30/84/7 -f 28/85/7 46/37/7 26/86/7 -f 53/656/4 52/87/4 61/89/4 -f 15/94/7 11/90/7 52/91/7 -f 14/33/7 17/92/7 50/34/7 -f 17/92/7 15/94/7 53/93/7 -f 54/657/4 57/95/4 69/97/4 -f 13/100/7 17/92/7 54/99/7 -f 17/92/7 14/33/7 57/98/7 -f 10/18/7 13/100/7 55/19/7 -f 58/108/7 61/101/7 62/103/7 -f 51/658/2 50/104/2 59/106/2 -f 50/659/1 53/107/1 58/108/1 -f 52/660/3 51/109/3 60/111/3 -f 65/117/4 64/112/4 77/114/4 -f 60/111/7 59/110/7 64/116/7 -f 61/89/7 60/88/7 65/117/7 -f 59/106/7 58/105/7 63/119/7 -f 56/661/2 55/120/2 67/122/2 -f 57/662/3 56/123/3 66/125/3 -f 55/663/1 54/126/1 68/128/1 -f 68/128/7 69/127/7 105/130/7 -f 76/140/23 75/131/23 71/133/23 -f 74/139/24 77/134/24 73/136/24 -f 63/119/2 62/118/2 75/138/2 -f 62/103/1 65/102/1 74/139/1 -f 64/116/3 63/115/3 76/140/3 -f 75/138/25 74/137/25 72/132/25 -f 106/202/23 110/141/23 107/143/23 -f 70/135/26 77/114/26 71/133/26 -f 82/160/14 81/144/14 94/146/14 -f 39/664/5 37/147/5 86/149/5 -f 37/665/5 35/150/5 85/152/5 -f 35/666/5 33/153/5 84/155/5 -f 33/667/5 31/156/5 83/158/5 -f 31/668/5 29/159/5 82/160/5 -f 23/669/5 45/161/5 79/163/5 -f 25/670/5 23/164/5 78/166/5 -f 29/671/5 27/167/5 81/169/5 -f 89/672/5 45/170/5 88/172/5 -f 27/673/5 25/173/5 80/175/5 -f 43/674/5 41/176/5 88/178/5 -f 92/181/7 90/185/7 100/182/7 -f 91/184/7 101/183/7 100/182/7 -f 100/182/7 99/188/7 98/179/7 -f 98/179/7 97/186/7 96/180/7 -f 96/180/7 95/187/7 94/146/7 -f 94/146/7 93/145/7 92/181/7 -f 90/185/7 91/184/7 100/182/7 -f 100/182/7 98/179/7 92/181/7 -f 96/180/7 94/146/7 92/181/7 -f 89/672/22 88/172/22 101/183/22 -f 78/166/11 79/165/11 90/185/11 -f 86/149/18 85/148/18 98/179/18 -f 83/158/15 82/157/15 95/187/15 -f 79/163/21 89/162/21 91/184/21 -f 80/175/12 78/174/12 92/181/12 -f 87/68/19 86/67/19 99/188/19 -f 84/155/16 83/154/16 96/180/16 -f 81/169/13 80/168/13 93/145/13 -f 88/178/20 87/177/20 100/182/20 -f 85/152/17 84/151/17 97/186/17 -f 105/130/1 104/129/1 109/190/1 -f 69/97/7 66/96/7 104/192/7 -f 67/122/7 68/121/7 102/194/7 -f 66/125/7 67/124/7 103/196/7 -f 106/201/25 109/197/25 110/141/25 -f 104/192/4 103/191/4 108/200/4 -f 102/194/2 105/193/2 106/201/2 -f 103/196/3 102/195/3 107/143/3 -f 111/142/7 110/141/7 112/203/7 -f 72/132/7 73/136/7 71/133/7 -f 109/190/24 108/189/24 113/198/24 -f 108/200/26 107/199/26 112/203/26 -f 114/675/3 117/204/3 118/206/3 -f 16/27/7 17/92/7 114/28/7 -f 117/207/7 17/92/7 116/208/7 -f 13/100/7 9/209/7 116/208/7 -f 125/676/2 121/210/2 124/212/2 -f 116/677/1 115/213/1 120/215/1 -f 117/678/2 116/216/2 121/210/2 -f 115/679/4 114/217/4 119/219/4 -f 123/223/7 122/222/7 135/680/7 -f 135/680/7 134/681/7 123/223/7 -f 133/682/7 132/683/7 123/223/7 -f 131/684/7 130/220/7 124/212/7 -f 129/221/7 128/685/7 124/212/7 -f 127/686/7 126/687/7 124/212/7 -f 125/676/7 124/212/7 126/687/7 -f 123/223/7 134/681/7 133/682/7 -f 132/683/7 131/684/7 123/223/7 -f 128/685/7 127/686/7 124/212/7 -f 124/212/7 123/223/7 131/684/7 -f 119/219/4 118/218/4 123/223/4 -f 122/222/3 118/206/3 135/680/3 -f 121/205/3 125/676/3 126/687/3 -f 126/687/3 127/686/3 121/205/3 -f 128/685/3 129/221/3 121/205/3 -f 130/220/3 131/684/3 118/206/3 -f 132/683/3 133/682/3 118/206/3 -f 134/681/3 135/680/3 118/206/3 -f 121/205/3 127/686/3 128/685/3 -f 134/681/3 118/206/3 133/682/3 -f 131/684/3 132/683/3 118/206/3 -f 121/205/3 129/221/3 130/220/3 -f 120/215/27 119/214/27 124/212/27 -f 136/229/1 126/224/1 137/226/1 -f 137/226/10 147/227/10 136/229/10 -f 138/250/1 128/230/1 139/232/1 -f 141/688/1 140/233/1 131/235/1 -f 143/689/1 142/236/1 133/238/1 -f 145/690/1 144/239/1 135/241/1 -f 145/690/10 155/242/10 144/239/10 -f 143/689/10 153/244/10 142/236/10 -f 141/688/10 151/246/10 140/233/10 -f 139/232/10 149/248/10 138/250/10 -f 147/227/7 157/251/7 146/228/7 -f 149/248/7 159/253/7 148/249/7 -f 151/246/7 161/255/7 150/247/7 -f 153/244/7 163/257/7 152/245/7 -f 155/242/7 165/259/7 154/243/7 -f 188/279/7 182/261/7 189/263/7 -f 186/280/7 180/264/7 187/266/7 -f 184/281/7 178/267/7 185/269/7 -f 166/691/2 167/270/2 172/272/2 -f 168/692/2 169/273/2 174/275/2 -f 170/693/2 171/276/2 176/278/2 -f 170/693/8 188/279/8 171/276/8 -f 168/692/8 186/280/8 169/273/8 -f 166/691/8 184/281/8 167/270/8 -f 214/304/28 215/282/28 216/284/28 -f 190/694/29 191/285/29 192/287/29 -f 206/327/30 195/288/30 220/290/30 -f 214/317/31 216/291/31 203/293/31 -f 192/287/32 193/286/32 194/295/32 -f 193/289/33 191/296/33 220/290/33 -f 208/312/34 209/298/34 210/300/34 -f 194/295/35 195/294/35 196/302/35 -f 212/322/36 213/303/36 214/304/36 -f 196/302/37 197/301/37 198/306/37 -f 198/306/38 199/305/38 200/308/38 -f 216/291/39 218/309/39 205/292/39 -f 206/326/40 207/311/40 208/312/40 -f 200/308/41 201/307/41 202/314/41 -f 203/293/42 201/315/42 214/317/42 -f 204/321/43 205/318/43 190/320/43 -f 202/314/44 203/313/44 204/321/44 -f 210/300/45 211/299/45 212/322/45 -f 216/284/46 217/283/46 218/324/46 -f 220/330/47 221/325/47 206/326/47 -f 197/332/48 195/288/48 208/328/48 -f 218/695/49 219/329/49 220/330/49 -f 210/333/50 212/316/50 199/331/50 -f 199/331/51 197/332/51 210/333/51 -f 246/356/28 247/334/28 248/336/28 -f 222/696/29 223/337/29 224/339/29 -f 238/379/30 227/340/30 252/342/30 -f 246/369/31 248/343/31 235/345/31 -f 224/339/32 225/338/32 226/347/32 -f 225/341/33 223/348/33 252/342/33 -f 240/364/34 241/350/34 242/352/34 -f 226/347/35 227/346/35 228/354/35 -f 244/374/36 245/355/36 246/356/36 -f 228/354/37 229/353/37 230/358/37 -f 230/358/38 231/357/38 232/360/38 -f 248/343/39 250/361/39 237/344/39 -f 238/378/40 239/363/40 240/364/40 -f 232/360/41 233/359/41 234/366/41 -f 235/345/42 233/367/42 246/369/42 -f 236/373/43 237/370/43 222/372/43 -f 234/366/44 235/365/44 236/373/44 -f 242/352/45 243/351/45 244/374/45 -f 248/336/46 249/335/46 250/376/46 -f 252/382/47 253/377/47 238/378/47 -f 229/384/48 227/340/48 240/380/48 -f 250/697/49 251/381/49 252/382/49 -f 231/698/50 242/383/50 233/367/50 -f 231/698/51 229/384/51 242/383/51 -f 278/407/28 279/385/28 280/387/28 -f 254/699/29 255/388/29 256/390/29 -f 270/429/30 259/391/30 284/393/30 -f 278/700/31 280/394/31 267/396/31 -f 256/390/32 257/389/32 258/398/32 -f 257/392/33 255/399/33 284/393/33 -f 272/415/34 273/401/34 274/403/34 -f 258/398/35 259/397/35 260/405/35 -f 276/424/36 277/406/36 278/407/36 -f 260/405/37 261/404/37 262/409/37 -f 262/409/38 263/408/38 264/411/38 -f 280/394/39 282/412/39 269/395/39 -f 270/428/40 271/414/40 272/415/40 -f 264/411/41 265/410/41 266/417/41 -f 278/700/42 267/396/42 276/419/42 -f 268/423/43 269/420/43 254/422/43 -f 266/417/44 267/416/44 268/423/44 -f 274/403/45 275/402/45 276/424/45 -f 280/387/46 281/386/46 282/426/46 -f 284/701/47 285/427/47 270/428/47 -f 261/435/48 259/391/48 272/430/48 -f 284/701/49 282/431/49 285/427/49 -f 263/434/50 274/433/50 265/418/50 -f 274/433/51 263/434/51 272/430/51 -f 287/445/1 289/436/1 286/438/1 -f 294/454/2 293/439/2 295/441/2 -f 290/702/3 292/442/3 301/444/3 -f 296/453/52 287/445/52 297/446/52 -f 297/446/5 295/447/5 290/449/5 -f 296/452/53 294/450/53 287/445/53 -f 291/703/7 293/451/7 296/452/7 -f 291/704/4 296/453/4 290/449/4 -f 289/436/54 294/454/54 288/437/54 -f 300/465/55 301/455/55 304/457/55 -f 293/705/3 291/458/3 298/460/3 -f 292/706/3 293/461/3 299/463/3 -f 291/707/3 290/464/3 300/465/3 -f 302/467/3 304/457/3 303/466/3 -f 299/463/56 298/462/56 303/466/56 -f 301/444/57 299/443/57 305/456/57 -f 298/460/58 300/459/58 302/467/58 -f 307/478/3 306/468/3 309/470/3 -f 314/485/2 315/471/2 313/473/2 -f 310/708/1 321/474/1 312/476/1 -f 316/484/59 317/477/59 307/478/59 -f 317/709/5 310/479/5 315/471/5 -f 316/481/60 307/478/60 314/480/60 -f 311/710/7 316/481/7 313/482/7 -f 311/711/4 310/483/4 316/484/4 -f 309/470/61 308/469/61 314/485/61 -f 320/495/62 324/486/62 321/488/62 -f 313/712/1 318/489/1 311/491/1 -f 312/713/1 319/492/1 313/494/1 -f 311/714/1 320/495/1 310/496/1 -f 322/498/1 323/497/1 324/486/1 -f 319/492/63 323/497/63 318/493/63 -f 321/474/64 325/487/64 319/475/64 -f 318/489/65 322/498/65 320/490/65 -f 333/518/3 332/499/3 327/501/3 -f 328/509/2 332/502/2 335/504/2 -f 328/515/1 329/505/1 330/507/1 -f 329/512/7 333/508/7 331/506/7 -f 332/502/5 328/509/5 326/500/5 -f 331/506/2 327/501/2 330/507/2 -f 335/504/5 337/503/5 339/511/5 -f 333/508/2 329/512/2 336/514/2 -f 329/505/2 328/515/2 334/517/2 -f 332/499/2 333/518/2 337/520/2 -f 409/715/10 421/521/10 408/523/10 -f 336/514/7 334/513/7 340/525/7 -f 337/520/3 336/519/3 341/527/3 -f 334/517/1 335/516/1 338/529/1 -f 349/549/3 348/530/3 343/532/3 -f 344/540/2 348/533/2 351/535/2 -f 344/546/1 345/536/1 346/538/1 -f 345/543/7 349/539/7 347/537/7 -f 348/533/5 344/540/5 342/531/5 -f 347/537/2 343/532/2 346/538/2 -f 351/535/5 353/534/5 355/542/5 -f 349/539/2 345/543/2 352/545/2 -f 345/536/2 344/546/2 350/548/2 -f 348/530/2 349/549/2 353/551/2 -f 411/716/10 423/552/10 410/554/10 -f 352/545/7 350/544/7 356/556/7 -f 353/551/3 352/550/3 357/558/3 -f 350/548/1 351/547/1 354/560/1 -f 365/582/3 359/561/3 364/563/3 -f 360/571/4 367/564/4 364/566/4 -f 360/579/1 362/567/1 361/569/1 -f 361/576/7 363/568/7 365/570/7 -f 364/566/5 358/562/5 360/571/5 -f 363/568/4 362/567/4 359/561/4 -f 367/564/5 371/572/5 369/565/5 -f 365/570/4 368/574/4 361/576/4 -f 361/569/4 366/577/4 360/579/4 -f 364/563/4 369/580/4 365/582/4 -f 370/586/2 372/583/2 371/585/2 -f 368/574/7 372/583/7 366/575/7 -f 369/580/3 373/587/3 368/581/3 -f 366/577/1 370/589/1 367/578/1 -f 381/612/3 375/591/3 380/593/3 -f 376/601/4 383/594/4 380/596/4 -f 376/609/1 378/597/1 377/599/1 -f 377/606/7 379/598/7 381/600/7 -f 380/596/5 374/592/5 376/601/5 -f 379/598/4 378/597/4 375/591/4 -f 383/594/5 387/602/5 385/595/5 -f 381/600/4 384/604/4 377/606/4 -f 377/599/4 382/607/4 376/609/4 -f 380/593/4 385/610/4 381/612/4 -f 413/717/10 425/613/10 412/615/10 -f 384/604/7 388/616/7 382/605/7 -f 385/610/3 389/618/3 384/611/3 -f 382/607/1 386/620/1 383/608/1 -f 415/718/66 414/634/66 421/521/66 -f 417/719/66 416/635/66 423/552/66 -f 419/720/66 418/636/66 425/613/66 -f 419/720/67 418/636/67 407/638/67 -f 417/719/67 416/635/67 405/640/67 -f 415/718/67 414/634/67 403/642/67 diff --git a/src/main/resources/assets/hbm/models/chemplant_main_new.obj b/src/main/resources/assets/hbm/models/chemplant_main_new.obj deleted file mode 100644 index 285894abe..000000000 --- a/src/main/resources/assets/hbm/models/chemplant_main_new.obj +++ /dev/null @@ -1,1733 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'chemplant_main_new.blend' -# www.blender.org -o Cube_Cube.001 -v -1.500000 0.000000 1.500000 -v -1.500000 0.250000 1.500000 -v -1.500000 0.000000 -1.500000 -v -1.500000 0.250000 -1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 0.250000 1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 0.250000 -1.500000 -v -1.250000 0.500000 1.250000 -v -1.250000 0.500000 -1.250000 -v 1.250000 0.500000 -1.250000 -v 1.250000 0.500000 1.250000 -v -1.250000 0.500000 0.000000 -v 0.000000 0.500000 -1.250000 -v 1.250000 0.500000 0.000000 -v 0.000000 0.500000 1.250000 -v 0.000000 0.500000 0.000000 -v 1.250000 0.750000 0.000000 -v 1.250000 0.750000 1.250000 -v 0.000000 0.750000 1.250000 -v 0.000000 0.750000 0.000000 -v 0.625000 0.750000 0.025000 -v 0.625000 2.750000 0.025000 -v 0.925000 0.750000 0.105385 -v 0.925000 2.750000 0.105385 -v 1.144615 0.750000 0.325000 -v 1.144615 2.750000 0.325000 -v 1.225000 0.750000 0.625000 -v 1.225000 2.750000 0.625000 -v 1.144615 0.750000 0.925000 -v 1.144615 2.750000 0.925000 -v 0.925000 0.750000 1.144615 -v 0.925000 2.750000 1.144615 -v 0.625000 0.750000 1.225000 -v 0.625000 2.750000 1.225000 -v 0.325000 0.750000 1.144615 -v 0.325000 2.750000 1.144615 -v 0.105385 0.750000 0.925000 -v 0.105385 2.750000 0.925000 -v 0.025000 0.750000 0.625000 -v 0.025000 2.750000 0.625000 -v 0.105385 0.750000 0.325000 -v 0.105385 2.750000 0.325000 -v 0.325000 0.750000 0.105385 -v 0.325000 2.750000 0.105385 -v 1.250000 0.750000 0.625000 -v 0.625000 0.750000 0.000000 -v 0.000000 0.750000 0.625000 -v 0.625000 0.750000 1.250000 -v 0.125000 0.500000 -1.125000 -v 1.125000 0.500000 -1.125000 -v 1.125000 0.500000 -0.125000 -v 0.125000 0.500000 -0.125000 -v -1.125000 0.500000 -0.125000 -v -1.125000 0.500000 -1.125000 -v -0.125000 0.500000 -1.125000 -v -0.125000 0.500000 -0.125000 -v 0.125000 0.650000 -1.125000 -v 1.125000 0.650000 -1.125000 -v 1.125000 0.650000 -0.125000 -v 0.125000 0.650000 -0.125000 -v 0.225000 0.650000 -1.025000 -v 1.025000 0.650000 -1.025000 -v 1.025000 0.650000 -0.225000 -v 0.225000 0.650000 -0.225000 -v -0.125000 0.650000 -0.125000 -v -0.125000 0.650000 -1.125000 -v -1.125000 0.650000 -1.125000 -v -1.125000 0.650000 -0.125000 -v 0.425000 2.000000 -0.425000 -v 0.825000 2.000000 -0.425000 -v 0.825000 2.000000 -0.825000 -v 0.425000 2.000000 -0.825000 -v 0.225000 1.850000 -1.025000 -v 1.025000 1.850000 -1.025000 -v 1.025000 1.850000 -0.225000 -v 0.225000 1.850000 -0.225000 -v 1.000000 2.750000 -0.024519 -v 0.625000 2.750000 -0.125000 -v 1.274519 2.750000 0.250000 -v 1.375000 2.750000 0.625000 -v 1.274519 2.750000 1.000000 -v 1.000000 2.750000 1.274519 -v 0.625000 2.750000 1.375000 -v 0.250000 2.750000 1.274519 -v -0.024519 2.750000 1.000000 -v -0.125000 2.750000 0.625000 -v -0.024519 2.750000 0.250000 -v 0.250000 2.750000 -0.024519 -v 1.000000 3.000000 -0.024519 -v 0.625000 3.000000 -0.125000 -v 1.274519 3.000000 0.250000 -v 1.375000 3.000000 0.625000 -v 1.274519 3.000000 1.000000 -v 1.000000 3.000000 1.274519 -v 0.625000 3.000000 1.375000 -v 0.250000 3.000000 1.274519 -v -0.024519 3.000000 1.000000 -v -0.125000 3.000000 0.625000 -v -0.024519 3.000000 0.250000 -v 0.250000 3.000000 -0.024519 -v -0.225000 0.650000 -1.025000 -v -0.225000 0.650000 -0.225000 -v -1.025000 0.650000 -0.225000 -v -1.025000 0.650000 -1.025000 -v -0.225000 1.850000 -1.025000 -v -0.225000 1.850000 -0.225000 -v -1.025000 1.850000 -0.225000 -v -1.025000 1.850000 -1.025000 -v -0.425000 2.000000 -0.825000 -v -0.425000 2.000000 -0.425000 -v -0.825000 2.000000 -0.425000 -v -0.825000 2.000000 -0.825000 -v -0.125000 0.500000 0.975000 -v -0.475000 0.500000 0.975000 -v -0.475000 0.500000 0.275000 -v -0.125000 0.500000 0.275000 -v -0.125000 1.250000 0.975000 -v -0.475000 1.250000 0.975000 -v -0.475000 1.250000 0.275000 -v -0.125000 1.250000 0.275000 -v -0.125000 1.500000 0.975000 -v -0.300000 1.500000 0.975000 -v -0.300000 1.500000 0.275000 -v -0.125000 1.500000 0.275000 -v -0.125000 1.500000 0.338636 -v -0.125000 1.500000 0.402273 -v -0.125000 1.500000 0.465909 -v -0.125000 1.500000 0.529545 -v -0.125000 1.500000 0.593182 -v -0.125000 1.500000 0.656818 -v -0.125000 1.500000 0.720455 -v -0.125000 1.500000 0.784091 -v -0.125000 1.500000 0.847727 -v -0.125000 1.500000 0.911364 -v -0.125000 1.650000 0.338636 -v -0.125000 1.650000 0.402273 -v -0.125000 1.650000 0.465909 -v -0.125000 1.650000 0.529545 -v -0.125000 1.650000 0.593182 -v -0.125000 1.650000 0.656818 -v -0.125000 1.650000 0.720455 -v -0.125000 1.650000 0.784091 -v -0.125000 1.650000 0.847727 -v -0.125000 1.650000 0.911364 -v -0.025000 1.750000 0.338636 -v -0.025000 1.750000 0.402273 -v -0.025000 1.750000 0.465909 -v -0.025000 1.750000 0.529545 -v -0.025000 1.750000 0.593182 -v -0.025000 1.750000 0.656818 -v -0.025000 1.750000 0.720455 -v -0.025000 1.750000 0.784091 -v -0.025000 1.750000 0.847727 -v -0.025000 1.750000 0.911364 -v 0.125000 1.750000 0.338636 -v 0.125000 1.750000 0.402273 -v 0.125000 1.750000 0.465909 -v 0.125000 1.750000 0.529545 -v 0.125000 1.750000 0.593182 -v 0.125000 1.750000 0.656818 -v 0.125000 1.750000 0.720455 -v 0.125000 1.750000 0.784091 -v 0.125000 1.750000 0.847727 -v 0.125000 1.750000 0.911364 -v 0.482143 2.771048 -0.425000 -v 0.539286 2.771048 -0.425000 -v 0.596429 2.771048 -0.425000 -v 0.653571 2.771048 -0.425000 -v 0.710714 2.771048 -0.425000 -v 0.767857 2.771048 -0.425000 -v 0.482143 2.000000 -0.425000 -v 0.539286 2.000000 -0.425000 -v 0.596429 2.000000 -0.425000 -v 0.653571 2.000000 -0.425000 -v 0.710714 2.000000 -0.425000 -v 0.767857 2.000000 -0.425000 -v 0.482143 2.871047 -0.075000 -v 0.539286 2.871047 -0.075000 -v 0.596429 2.871047 -0.075000 -v 0.653571 2.871047 -0.075000 -v 0.710714 2.871047 -0.075000 -v 0.767857 2.871047 -0.075000 -v 0.482143 2.871047 -0.325000 -v 0.539286 2.871047 -0.325000 -v 0.596429 2.871047 -0.325000 -v 0.653571 2.871047 -0.325000 -v 0.710714 2.871047 -0.325000 -v 0.767857 2.871047 -0.325000 -v -0.850000 1.200000 -0.250000 -v -0.850000 1.200000 0.350000 -v -0.814645 1.185355 -0.250000 -v -0.814645 1.185355 0.350000 -v -0.800000 1.150000 -0.250000 -v -0.800000 1.150000 0.350000 -v -0.814645 1.114645 -0.250000 -v -0.814645 1.114645 0.350000 -v -0.850000 1.100000 -0.250000 -v -0.850000 1.100000 0.350000 -v -0.885355 1.114645 -0.250000 -v -0.885355 1.114645 0.350000 -v -0.900000 1.150000 -0.250000 -v -0.900000 1.150000 0.350000 -v -0.885355 1.185355 -0.250000 -v -0.885355 1.185355 0.350000 -v -0.750000 1.150000 0.400000 -v -0.450000 1.150000 0.400000 -v -0.750000 1.114645 0.414645 -v -0.450000 1.114645 0.414645 -v -0.750000 1.100000 0.450000 -v -0.450000 1.100000 0.450000 -v -0.750000 1.114645 0.485355 -v -0.450000 1.114645 0.485355 -v -0.750000 1.150000 0.500000 -v -0.450000 1.150000 0.500000 -v -0.750000 1.185355 0.485355 -v -0.450000 1.185355 0.485355 -v -0.750000 1.200000 0.450000 -v -0.450000 1.200000 0.450000 -v -0.750000 1.185355 0.414645 -v -0.450000 1.185355 0.414645 -v -0.850000 1.000000 -0.250000 -v -0.850000 1.000000 0.350000 -v -0.814645 0.985355 -0.250000 -v -0.814645 0.985355 0.350000 -v -0.800000 0.950000 -0.250000 -v -0.800000 0.950000 0.350000 -v -0.814645 0.914645 -0.250000 -v -0.814645 0.914645 0.350000 -v -0.850000 0.900000 -0.250000 -v -0.850000 0.900000 0.350000 -v -0.885355 0.914645 -0.250000 -v -0.885355 0.914645 0.350000 -v -0.900000 0.950000 -0.250000 -v -0.900000 0.950000 0.350000 -v -0.885355 0.985355 -0.250000 -v -0.885355 0.985355 0.350000 -v -0.750000 0.950000 0.400000 -v -0.450000 0.950000 0.400000 -v -0.750000 0.914645 0.414645 -v -0.450000 0.914645 0.414645 -v -0.750000 0.900000 0.450000 -v -0.450000 0.900000 0.450000 -v -0.750000 0.914645 0.485355 -v -0.450000 0.914645 0.485355 -v -0.750000 0.950000 0.500000 -v -0.450000 0.950000 0.500000 -v -0.750000 0.985355 0.485355 -v -0.450000 0.985355 0.485355 -v -0.750000 1.000000 0.450000 -v -0.450000 1.000000 0.450000 -v -0.750000 0.985355 0.414645 -v -0.450000 0.985355 0.414645 -v -0.850000 0.800000 -0.250000 -v -0.850000 0.800000 0.350000 -v -0.814645 0.785355 -0.250000 -v -0.814645 0.785355 0.350000 -v -0.800000 0.750000 -0.250000 -v -0.800000 0.750000 0.350000 -v -0.814645 0.714645 -0.250000 -v -0.814645 0.714645 0.350000 -v -0.850000 0.700000 -0.250000 -v -0.850000 0.700000 0.350000 -v -0.885355 0.714645 -0.250000 -v -0.885355 0.714645 0.350000 -v -0.900000 0.750000 -0.250000 -v -0.900000 0.750000 0.350000 -v -0.885355 0.785355 -0.250000 -v -0.885355 0.785355 0.350000 -v -0.750000 0.750000 0.400000 -v -0.450000 0.750000 0.400000 -v -0.750000 0.714645 0.414645 -v -0.450000 0.714645 0.414645 -v -0.750000 0.700000 0.450000 -v -0.450000 0.700000 0.450000 -v -0.750000 0.714645 0.485355 -v -0.450000 0.714645 0.485355 -v -0.750000 0.750000 0.500000 -v -0.450000 0.750000 0.500000 -v -0.750000 0.785355 0.485355 -v -0.450000 0.785355 0.485355 -v -0.750000 0.800000 0.450000 -v -0.450000 0.800000 0.450000 -v -0.750000 0.785355 0.414645 -v -0.450000 0.785355 0.414645 -v 1.000000 0.250000 -0.250000 -v 1.000000 0.750000 -0.250000 -v 1.000000 0.250000 -0.750000 -v 1.000000 0.750000 -0.750000 -v 2.000000 0.000000 0.000000 -v 2.000000 1.000000 0.000000 -v 2.000000 0.000000 -1.000000 -v 2.000000 1.000000 -1.000000 -v 1.500000 1.000000 -1.000000 -v 1.500000 0.000000 -1.000000 -v 1.500000 1.000000 0.000000 -v 1.500000 0.000000 0.000000 -v 2.000000 0.875000 -0.875000 -v 2.000000 0.125000 -0.875000 -v 2.000000 0.875000 -0.125000 -v 2.000000 0.125000 -0.125000 -v 1.500000 0.687500 -0.687500 -v 1.500000 0.312500 -0.687500 -v 1.500000 0.687500 -0.312500 -v 1.500000 0.312500 -0.312500 -v -1.000000 0.250000 0.750000 -v -1.000000 0.750000 0.750000 -v -1.000000 0.250000 0.250000 -v -1.000000 0.750000 0.250000 -v -2.000000 0.000000 1.000000 -v -2.000000 1.000000 1.000000 -v -2.000000 0.000000 0.000000 -v -2.000000 1.000000 0.000000 -v -1.500000 1.000000 0.000000 -v -1.500000 0.000000 0.000000 -v -1.500000 1.000000 1.000000 -v -1.500000 0.000000 1.000000 -v -2.000000 0.875000 0.125000 -v -2.000000 0.125000 0.125000 -v -2.000000 0.875000 0.875000 -v -2.000000 0.125000 0.875000 -v -1.500000 0.687500 0.312500 -v -1.500000 0.312500 0.312500 -v -1.500000 0.687500 0.687500 -v -1.500000 0.312500 0.687500 -v 0.656250 0.343750 -2.000000 -v 0.656250 0.656250 -2.000000 -v 0.343750 0.343750 -1.150000 -v 0.343750 0.656250 -1.150000 -v 0.343750 0.343750 -2.000000 -v 0.343750 0.656250 -2.000000 -v 0.656250 0.343750 -1.150000 -v 0.656250 0.656250 -1.150000 -v 0.328125 0.671875 -1.150000 -v 0.328125 0.328125 -1.150000 -v 0.671875 0.671875 -1.150000 -v 0.671875 0.328125 -1.150000 -v 0.328125 0.671875 -1.000000 -v 0.328125 0.328125 -1.000000 -v 0.671875 0.671875 -1.000000 -v 0.671875 0.328125 -1.000000 -v -0.343750 0.343750 -2.000000 -v -0.343750 0.656250 -2.000000 -v -0.656250 0.343750 -1.150000 -v -0.656250 0.656250 -1.150000 -v -0.656250 0.343750 -2.000000 -v -0.656250 0.656250 -2.000000 -v -0.343750 0.343750 -1.150000 -v -0.343750 0.656250 -1.150000 -v -0.671875 0.671875 -1.150000 -v -0.671875 0.328125 -1.150000 -v -0.328125 0.671875 -1.150000 -v -0.328125 0.328125 -1.150000 -v -0.671875 0.671875 -1.000000 -v -0.671875 0.328125 -1.000000 -v -0.328125 0.671875 -1.000000 -v -0.328125 0.328125 -1.000000 -v -0.343750 0.343750 2.000000 -v -0.343750 0.656250 2.000000 -v -0.656250 0.343750 1.150000 -v -0.656250 0.656250 1.150000 -v -0.656250 0.343750 2.000000 -v -0.656250 0.656250 2.000000 -v -0.343750 0.343750 1.150000 -v -0.343750 0.656250 1.150000 -v -0.671875 0.671875 1.150000 -v -0.671875 0.328125 1.150000 -v -0.328125 0.671875 1.150000 -v -0.328125 0.328125 1.150000 -v -0.671875 0.671875 1.000000 -v -0.671875 0.328125 1.000000 -v -0.328125 0.671875 1.000000 -v -0.328125 0.328125 1.000000 -v 0.656250 0.343750 2.000000 -v 0.656250 0.656250 2.000000 -v 0.343750 0.343750 1.150000 -v 0.343750 0.656250 1.150000 -v 0.343750 0.343750 2.000000 -v 0.343750 0.656250 2.000000 -v 0.656250 0.343750 1.150000 -v 0.656250 0.656250 1.150000 -v 0.328125 0.671875 1.150000 -v 0.328125 0.328125 1.150000 -v 0.671875 0.671875 1.150000 -v 0.671875 0.328125 1.150000 -v 0.328125 0.671875 1.000000 -v 0.328125 0.328125 1.000000 -v 0.671875 0.671875 1.000000 -v 0.671875 0.328125 1.000000 -v 1.916667 0.250000 -1.100000 -v 1.916667 0.750000 -1.100000 -v 1.666667 0.500000 -1.100000 -v 1.916667 0.250000 0.100000 -v 1.916667 0.750000 0.100000 -v 1.666667 0.500000 0.100000 -v -1.583333 0.250000 -0.100000 -v -1.583333 0.750000 -0.100000 -v -1.833333 0.500000 -0.100000 -v -1.583333 0.250000 1.100000 -v -1.583333 0.750000 1.100000 -v -1.833333 0.500000 1.100000 -v 0.425000 2.000000 -0.767857 -v 0.425000 2.000000 -0.710714 -v 0.425000 2.000000 -0.653571 -v 0.425000 2.000000 -0.596429 -v 0.425000 2.000000 -0.539286 -v 0.425000 2.000000 -0.482143 -v -0.425000 2.000000 -0.767857 -v -0.425000 2.000000 -0.710714 -v -0.425000 2.000000 -0.653571 -v -0.425000 2.000000 -0.596429 -v -0.425000 2.000000 -0.539286 -v -0.425000 2.000000 -0.482143 -v 0.325000 2.121195 -0.749805 -v 0.325000 2.121195 -0.692662 -v 0.325000 2.121195 -0.635520 -v 0.325000 2.121195 -0.578377 -v 0.325000 2.121195 -0.521234 -v 0.325000 2.121195 -0.464091 -v -0.325000 2.100000 -0.767857 -v -0.325000 2.100000 -0.710714 -v -0.325000 2.100000 -0.653571 -v -0.325000 2.100000 -0.596429 -v -0.325000 2.100000 -0.539286 -v -0.325000 2.100000 -0.482143 -vt 0.758477 0.603324 -vt 0.758477 0.583793 -vt 0.996758 0.583793 -vt 0.760430 0.603324 -vt 0.760430 0.583793 -vt 0.994805 0.583793 -vt 0.759772 0.603163 -vt 0.759772 0.583522 -vt 0.995463 0.583522 -vt 0.006459 0.317921 -vt 0.242151 0.317921 -vt 0.242151 0.553613 -vt 0.994805 0.603324 -vt 0.877617 0.630668 -vt 0.006459 0.762941 -vt 0.016280 0.753121 -vt 0.094844 0.753121 -vt 0.995463 0.603163 -vt 0.877618 0.630939 -vt 0.996758 0.603324 -vt 0.875664 0.630668 -vt 0.104664 0.566532 -vt 0.094844 0.588137 -vt 0.067346 0.588137 -vt 0.960569 0.162535 -vt 0.940928 0.113433 -vt 0.960569 0.064331 -vt 0.104664 0.762941 -vt 0.114485 0.753121 -vt 0.193049 0.753121 -vt 0.823082 0.064331 -vt 0.842723 0.113433 -vt 0.823082 0.162535 -vt 0.940928 0.044690 -vt 0.891826 0.064331 -vt 0.842723 0.044690 -vt 0.842723 0.182176 -vt 0.891826 0.162535 -vt 0.940928 0.182176 -vt 0.946278 0.936992 -vt 0.921877 0.936992 -vt 0.921877 0.779864 -vt 0.897476 0.936992 -vt 0.897476 0.779864 -vt 0.873076 0.936992 -vt 0.873076 0.779864 -vt 0.848675 0.936992 -vt 0.848675 0.779864 -vt 0.824275 0.936992 -vt 0.824274 0.779864 -vt 0.799874 0.936992 -vt 0.799874 0.779864 -vt 0.775473 0.936992 -vt 0.775473 0.779864 -vt 0.751073 0.936992 -vt 0.751073 0.779864 -vt 0.726672 0.936992 -vt 0.726672 0.779864 -vt 0.702272 0.936992 -vt 0.702272 0.779864 -vt 0.331580 0.524720 -vt 0.337472 0.514514 -vt 0.359040 0.536081 -vt 0.677871 0.936992 -vt 0.653470 0.936992 -vt 0.653470 0.779864 -vt 0.677871 0.779864 -vt 0.842723 0.162535 -vt 0.868256 0.154256 -vt 0.891826 0.160571 -vt 0.915395 0.154256 -vt 0.932649 0.137002 -vt 0.940928 0.162535 -vt 0.932648 0.089864 -vt 0.940928 0.064331 -vt 0.915395 0.072610 -vt 0.868256 0.072610 -vt 0.842723 0.064331 -vt 0.851003 0.137002 -vt 0.844687 0.113433 -vt 0.851003 0.089864 -vt 0.117682 0.307042 -vt 0.117682 0.295258 -vt 0.196246 0.295258 -vt 0.202869 0.762941 -vt 0.193049 0.674557 -vt 0.104664 0.664736 -vt 0.114485 0.674557 -vt 0.202869 0.664736 -vt 0.094844 0.674557 -vt 0.016280 0.674557 -vt 0.006459 0.664736 -vt 0.294451 0.197053 -vt 0.286595 0.189197 -vt 0.286595 0.126345 -vt 0.196246 0.008500 -vt 0.196246 0.020284 -vt 0.117682 0.020284 -vt 0.306236 0.197053 -vt 0.294451 0.118489 -vt 0.007693 0.118489 -vt 0.019478 0.118489 -vt 0.019478 0.197053 -vt 0.125539 0.287401 -vt 0.125539 0.193125 -vt 0.188390 0.193125 -vt 0.027334 0.126345 -vt 0.027334 0.189196 -vt 0.188390 0.287401 -vt 0.188390 0.028141 -vt 0.125539 0.028141 -vt 0.121611 0.126345 -vt 0.141252 0.142058 -vt 0.141252 0.173484 -vt 0.192318 0.189196 -vt 0.172677 0.173484 -vt 0.172677 0.142058 -vt 0.188390 0.122417 -vt 0.125539 0.122417 -vt 0.192318 0.126345 -vt 0.121611 0.189197 -vt 0.436934 0.401164 -vt 0.431851 0.420136 -vt 0.402389 0.412242 -vt 0.314289 0.482140 -vt 0.324495 0.476248 -vt 0.332389 0.505709 -vt 0.320604 0.436619 -vt 0.332389 0.436620 -vt 0.324495 0.466081 -vt 0.348834 0.400355 -vt 0.359040 0.406247 -vt 0.337472 0.427815 -vt 0.391414 0.383064 -vt 0.397306 0.393270 -vt 0.367844 0.401164 -vt 0.436934 0.389380 -vt 0.407473 0.393270 -vt 0.455945 0.541974 -vt 0.445739 0.536081 -vt 0.467306 0.514514 -vt 0.484174 0.505710 -vt 0.472390 0.505709 -vt 0.480284 0.476248 -vt 0.473199 0.417609 -vt 0.467306 0.427815 -vt 0.445739 0.406247 -vt 0.436934 0.552950 -vt 0.413365 0.559265 -vt 0.407473 0.549059 -vt 0.490490 0.460189 -vt 0.480284 0.466081 -vt 0.472390 0.436620 -vt 0.367844 0.552950 -vt 0.367844 0.541165 -vt 0.397306 0.549059 -vt 0.351361 0.500626 -vt 0.351361 0.441703 -vt 0.453418 0.441703 -vt 0.402389 0.530087 -vt 0.431851 0.522193 -vt 0.453418 0.500626 -vt 0.461312 0.471164 -vt 0.343466 0.471164 -vt 0.372928 0.420136 -vt 0.372928 0.522193 -vt 0.772654 0.139975 -vt 0.713797 0.139968 -vt 0.713803 0.085034 -vt 0.094844 0.643131 -vt 0.067346 0.643131 -vt 0.006459 0.566532 -vt 0.694377 0.159597 -vt 0.666844 0.159844 -vt 0.680434 0.140054 -vt 0.597494 0.085032 -vt 0.656447 0.085032 -vt 0.656447 0.140054 -vt 0.667374 0.218844 -vt 0.694185 0.006460 -vt 0.694184 0.065389 -vt 0.666684 0.065389 -vt 0.694193 0.115020 -vt 0.694197 0.120017 -vt 0.694184 0.085032 -vt 0.680434 0.085032 -vt 0.597494 0.297099 -vt 0.597494 0.292100 -vt 0.609279 0.292100 -vt 0.620390 0.292100 -vt 0.620390 0.297099 -vt 0.609279 0.297099 -vt 0.645093 0.297099 -vt 0.645093 0.292100 -vt 0.656878 0.292100 -vt 0.233196 0.730162 -vt 0.233196 0.718377 -vt 0.238196 0.718377 -vt 0.188875 0.787645 -vt 0.188875 0.775860 -vt 0.193875 0.775860 -vt 0.233196 0.682563 -vt 0.233196 0.670778 -vt 0.238196 0.670778 -vt 0.238196 0.693674 -vt 0.233196 0.693673 -vt 0.193875 0.798755 -vt 0.188875 0.798755 -vt 0.238196 0.741272 -vt 0.233196 0.741272 -vt 0.667988 0.292100 -vt 0.667988 0.297099 -vt 0.656878 0.297099 -vt 0.632174 0.292100 -vt 0.632174 0.297099 -vt 0.679773 0.292100 -vt 0.679773 0.297099 -vt 0.238196 0.753057 -vt 0.233196 0.753057 -vt 0.193875 0.810540 -vt 0.188875 0.810540 -vt 0.238196 0.705458 -vt 0.233196 0.705458 -vt 0.220277 0.762106 -vt 0.215788 0.762106 -vt 0.215788 0.742465 -vt 0.237686 0.657860 -vt 0.233196 0.657860 -vt 0.233196 0.638219 -vt 0.220277 0.657860 -vt 0.215788 0.657860 -vt 0.215788 0.638219 -vt 0.215788 0.627108 -vt 0.215788 0.566532 -vt 0.220277 0.566532 -vt 0.233196 0.627108 -vt 0.233196 0.566532 -vt 0.237686 0.566532 -vt 0.215788 0.731355 -vt 0.215788 0.670778 -vt 0.220277 0.670778 -vt 0.220277 0.742465 -vt 0.237686 0.638219 -vt 0.220277 0.638219 -vt 0.814270 0.481676 -vt 0.814270 0.484682 -vt 0.790701 0.484682 -vt 0.364364 0.643439 -vt 0.364364 0.640432 -vt 0.411502 0.640432 -vt 0.231300 0.817551 -vt 0.234194 0.816738 -vt 0.234194 0.823920 -vt 0.218064 0.827849 -vt 0.218064 0.812810 -vt 0.220959 0.811996 -vt 0.364364 0.637425 -vt 0.411502 0.637426 -vt 0.236470 0.814774 -vt 0.236470 0.825884 -vt 0.814270 0.472656 -vt 0.814270 0.475663 -vt 0.790701 0.475663 -vt 0.364364 0.634419 -vt 0.411502 0.634419 -vt 0.814270 0.478669 -vt 0.790701 0.481676 -vt 0.364364 0.631412 -vt 0.411502 0.631412 -vt 0.364364 0.628406 -vt 0.411502 0.628406 -vt 0.215788 0.825884 -vt 0.215788 0.814774 -vt 0.814270 0.469650 -vt 0.790701 0.472656 -vt 0.364364 0.625399 -vt 0.411502 0.625399 -vt 0.223853 0.812810 -vt 0.223853 0.827849 -vt 0.220959 0.828662 -vt 0.364364 0.622393 -vt 0.364364 0.619386 -vt 0.411502 0.619386 -vt 0.411502 0.622393 -vt 0.790701 0.478669 -vt 0.814270 0.487689 -vt 0.790701 0.487689 -vt 0.814270 0.466643 -vt 0.790701 0.469650 -vt 0.231300 0.823107 -vt 0.228405 0.823920 -vt 0.814270 0.463637 -vt 0.790701 0.466643 -vt 0.226129 0.814774 -vt 0.228405 0.816738 -vt 0.226129 0.825884 -vt 0.175956 0.793899 -vt 0.175956 0.796906 -vt 0.152387 0.796906 -vt 0.364364 0.680409 -vt 0.364364 0.677403 -vt 0.411502 0.677403 -vt 0.435532 0.739300 -vt 0.436346 0.742194 -vt 0.429163 0.742194 -vt 0.425235 0.726064 -vt 0.440274 0.726064 -vt 0.441087 0.728959 -vt 0.364364 0.674396 -vt 0.411502 0.674396 -vt 0.438310 0.744470 -vt 0.427199 0.744470 -vt 0.175956 0.784880 -vt 0.175956 0.787886 -vt 0.152387 0.787886 -vt 0.364364 0.671390 -vt 0.411502 0.671390 -vt 0.175956 0.790893 -vt 0.152387 0.793899 -vt 0.364364 0.668383 -vt 0.411502 0.668383 -vt 0.364364 0.665377 -vt 0.411502 0.665377 -vt 0.427199 0.723788 -vt 0.438310 0.723788 -vt 0.175956 0.781873 -vt 0.152387 0.784880 -vt 0.364364 0.662370 -vt 0.411502 0.662370 -vt 0.440274 0.731853 -vt 0.425235 0.731853 -vt 0.424421 0.728959 -vt 0.364364 0.659364 -vt 0.364364 0.656357 -vt 0.411502 0.656357 -vt 0.411502 0.659364 -vt 0.152387 0.790893 -vt 0.175956 0.799912 -vt 0.152387 0.799912 -vt 0.175956 0.778867 -vt 0.152387 0.781873 -vt 0.429977 0.739300 -vt 0.429163 0.736406 -vt 0.175956 0.775860 -vt 0.152387 0.778867 -vt 0.427199 0.734129 -vt 0.436346 0.736406 -vt 0.239357 0.793064 -vt 0.239357 0.796071 -vt 0.215788 0.796071 -vt 0.364364 0.717381 -vt 0.364364 0.714374 -vt 0.411502 0.714374 -vt 0.806212 0.506163 -vt 0.809107 0.505349 -vt 0.809107 0.512532 -vt 0.792977 0.516460 -vt 0.792977 0.501421 -vt 0.795871 0.500608 -vt 0.364364 0.711367 -vt 0.411502 0.711367 -vt 0.811383 0.503385 -vt 0.811383 0.514496 -vt 0.239357 0.784045 -vt 0.239357 0.787051 -vt 0.215788 0.787051 -vt 0.364364 0.708361 -vt 0.411502 0.708361 -vt 0.239357 0.790058 -vt 0.215788 0.793064 -vt 0.364364 0.705355 -vt 0.411502 0.705355 -vt 0.364364 0.702348 -vt 0.411502 0.702348 -vt 0.790701 0.514496 -vt 0.790701 0.503385 -vt 0.239357 0.781038 -vt 0.215788 0.784045 -vt 0.364364 0.699341 -vt 0.411502 0.699341 -vt 0.798766 0.501421 -vt 0.798766 0.516460 -vt 0.364364 0.696335 -vt 0.364364 0.693328 -vt 0.411502 0.693328 -vt 0.411502 0.696335 -vt 0.215788 0.790058 -vt 0.239357 0.799077 -vt 0.215788 0.799077 -vt 0.239357 0.778032 -vt 0.215788 0.781038 -vt 0.806212 0.511718 -vt 0.803318 0.512532 -vt 0.215788 0.775025 -vt 0.239357 0.775025 -vt 0.801042 0.514496 -vt 0.801042 0.503385 -vt 0.803318 0.505349 -vt 0.479643 0.114270 -vt 0.479643 0.153552 -vt 0.440361 0.153552 -vt 0.562843 0.094629 -vt 0.562843 0.173193 -vt 0.523561 0.173193 -vt 0.141735 0.828410 -vt 0.131915 0.838230 -vt 0.072992 0.838230 -vt 0.440361 0.114270 -vt 0.396442 0.173193 -vt 0.396442 0.251756 -vt 0.357160 0.251756 -vt 0.357160 0.173193 -vt 0.499284 0.070351 -vt 0.499284 0.031069 -vt 0.420720 0.070351 -vt 0.396442 0.094629 -vt 0.523561 0.094629 -vt 0.045769 0.865453 -vt 0.087722 0.880183 -vt 0.087722 0.909645 -vt 0.063171 0.961418 -vt 0.072992 0.951598 -vt 0.131915 0.951598 -vt 0.168958 0.934196 -vt 0.159137 0.924375 -vt 0.159137 0.865453 -vt 0.035949 0.855632 -vt 0.045769 0.924375 -vt 0.117184 0.880183 -vt 0.117184 0.909645 -vt 0.357160 0.094629 -vt 0.141735 0.961418 -vt 0.420720 0.031069 -vt 0.063171 0.828410 -vt 0.168958 0.855632 -vt 0.035949 0.934196 -vt 0.713342 0.434861 -vt 0.646563 0.434861 -vt 0.646563 0.410310 -vt 0.646563 0.501640 -vt 0.647790 0.502868 -vt 0.620784 0.502868 -vt 0.555232 0.410310 -vt 0.622011 0.410310 -vt 0.622011 0.434861 -vt 0.646563 0.343531 -vt 0.622011 0.501640 -vt 0.647790 0.514653 -vt 0.620784 0.514653 -vt 0.622011 0.343531 -vt 0.620784 0.342303 -vt 0.647790 0.342303 -vt 0.555232 0.434861 -vt 0.554004 0.436089 -vt 0.554004 0.409082 -vt 0.713342 0.410310 -vt 0.714569 0.409082 -vt 0.714569 0.436089 -vt 0.416499 0.290522 -vt 0.416499 0.286033 -vt 0.405388 0.286033 -vt 0.620784 0.330518 -vt 0.647790 0.330519 -vt 0.726354 0.409082 -vt 0.726354 0.436089 -vt 0.542220 0.436089 -vt 0.542220 0.409082 -vt 0.503967 0.290522 -vt 0.503967 0.286033 -vt 0.492856 0.286033 -vt 0.631811 0.650917 -vt 0.631811 0.675468 -vt 0.565032 0.675468 -vt 0.657590 0.743475 -vt 0.630584 0.743475 -vt 0.631811 0.742247 -vt 0.656363 0.675468 -vt 0.656363 0.650917 -vt 0.723142 0.650917 -vt 0.631811 0.584137 -vt 0.656363 0.742247 -vt 0.657590 0.755259 -vt 0.630584 0.755259 -vt 0.630584 0.582910 -vt 0.657590 0.582910 -vt 0.656363 0.584137 -vt 0.724369 0.649689 -vt 0.724369 0.676695 -vt 0.723142 0.675468 -vt 0.563805 0.676696 -vt 0.563805 0.649689 -vt 0.565032 0.650917 -vt 0.630584 0.571125 -vt 0.630584 0.544119 -vt 0.657590 0.544119 -vt 0.657590 0.571125 -vt 0.552020 0.676696 -vt 0.552020 0.649689 -vt 0.736154 0.649689 -vt 0.736154 0.676695 -vt 0.329032 0.290522 -vt 0.329032 0.286033 -vt 0.317921 0.286033 -vt 0.776804 0.281183 -vt 0.776804 0.241901 -vt 0.796445 0.261542 -vt 0.777782 0.502919 -vt 0.758141 0.483278 -vt 0.777782 0.463637 -vt 0.424421 0.658668 -vt 0.424421 0.619386 -vt 0.444062 0.639027 -vt 0.444062 0.710869 -vt 0.424421 0.691228 -vt 0.444062 0.671587 -vt 0.467593 0.287451 -vt 0.555060 0.287451 -vt 0.380125 0.287451 -vt 0.392470 0.286033 -vt 0.392470 0.290522 -vt 0.567405 0.286033 -vt 0.567405 0.290522 -vt 0.479937 0.286033 -vt 0.479937 0.290522 -vt 0.006459 0.553613 -vt 0.779961 0.630668 -vt 0.975274 0.630668 -vt 0.779412 0.630939 -vt 0.975822 0.630939 -vt 0.778008 0.630668 -vt 0.977227 0.630668 -vt 0.946277 0.779864 -vt 0.348834 0.541974 -vt 0.938964 0.113433 -vt 0.891826 0.066295 -vt 0.196246 0.307042 -vt 0.117682 0.008500 -vt 0.306236 0.118489 -vt 0.007693 0.197053 -vt 0.320604 0.505709 -vt 0.314289 0.460189 -vt 0.331580 0.417609 -vt 0.367844 0.389379 -vt 0.413365 0.383064 -vt 0.473199 0.524720 -vt 0.490490 0.482140 -vt 0.455945 0.400355 -vt 0.436934 0.541165 -vt 0.484174 0.436620 -vt 0.391414 0.559265 -vt 0.772661 0.085041 -vt 0.694200 0.139930 -vt 0.597494 0.140054 -vt 0.694907 0.218597 -vt 0.666684 0.006459 -vt 0.694184 0.090030 -vt 0.694185 0.095029 -vt 0.694186 0.100027 -vt 0.694188 0.105025 -vt 0.694190 0.110023 -vt 0.694202 0.125013 -vt 0.694078 0.130204 -vt 0.694150 0.133627 -vt 0.238196 0.730162 -vt 0.193875 0.787645 -vt 0.238196 0.682563 -vt 0.220277 0.627108 -vt 0.237686 0.627108 -vt 0.220277 0.731355 -vt 0.411502 0.643439 -vt 0.790701 0.463637 -vt 0.411502 0.680409 -vt 0.152387 0.775860 -vt 0.438310 0.734129 -vt 0.411502 0.717381 -vt 0.795871 0.517274 -vt 0.215788 0.778032 -vt 0.405388 0.290522 -vt 0.492856 0.290522 -vt 0.317921 0.290522 -vt 0.467593 0.291941 -vt 0.555060 0.291941 -vt 0.380125 0.291941 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.707100 0.707100 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.707100 -0.707100 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.600000 0.800000 0.000000 -vn -0.600000 0.800000 0.000000 -vn 0.000000 0.800000 -0.600000 -vn 0.000000 0.800000 0.600000 -vn -0.819200 0.573500 0.000000 -vn 0.000000 0.382700 0.923900 -vn 0.382700 0.923900 0.000000 -vn 0.678600 0.281100 -0.678600 -vn -0.678600 0.281100 0.678600 -vn 0.923900 0.382700 0.000000 -vn 0.357400 0.862900 -0.357400 -vn 0.000000 -0.923900 -0.382700 -vn 0.923900 -0.382700 0.000000 -vn 0.000000 -0.382700 0.923900 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.357400 0.862900 0.357400 -vn 0.000000 -0.382700 -0.923900 -vn -0.923900 -0.382700 0.000000 -vn -0.678600 -0.281100 0.678600 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 0.000000 -vn 0.000000 -0.923900 0.382700 -vn -0.000000 0.923900 0.382700 -vn 0.000000 0.382700 -0.923900 -vn 0.678600 -0.281100 -0.678600 -vn 0.000000 0.923900 -0.382700 -vn -0.357400 -0.862900 0.357400 -vn 0.357400 -0.862900 -0.357400 -vn -0.447200 0.000000 0.894400 -vn -0.447200 0.894400 0.000000 -vn -0.447200 0.000000 -0.894400 -vn 0.351100 0.000000 -0.936300 -vn 0.351100 0.000000 0.936300 -vn 0.351100 0.936300 0.000000 -vn 0.351100 -0.936300 0.000000 -vn 0.447200 0.000000 0.894400 -vn 0.447200 0.894400 0.000000 -vn 0.447200 0.000000 -0.894400 -vn -0.351100 0.000000 -0.936300 -vn -0.351100 0.000000 0.936300 -vn -0.351100 0.936300 0.000000 -vn -0.351100 -0.936300 0.000000 -vn -0.032600 0.999500 0.000000 -vn -0.771300 -0.636400 0.000000 -s off -f 4/1/1 3/2/1 1/3/1 -f 8/4/2 7/5/2 3/6/2 -f 6/7/3 5/8/3 7/9/3 -f 2/4/4 1/5/4 5/6/4 -f 3/10/5 7/11/5 5/12/5 -f 6/13/6 16/14/6 2/4/6 -f 10/15/7 55/16/7 56/17/7 -f 4/13/8 14/14/8 8/4/8 -f 8/18/9 15/19/9 6/7/9 -f 2/20/10 13/21/10 4/1/10 -f 16/22/7 114/23/7 115/24/7 -f 16/25/1 48/26/1 17/27/1 -f 14/28/7 50/29/7 51/30/7 -f 15/31/3 46/32/3 12/33/3 -f 17/34/2 47/35/2 15/36/2 -f 12/37/4 49/38/4 16/39/4 -f 23/40/11 25/41/11 24/42/11 -f 25/41/12 27/43/12 26/44/12 -f 27/43/13 29/45/13 28/46/13 -f 29/45/14 31/47/14 30/48/14 -f 31/47/15 33/49/15 32/50/15 -f 33/49/16 35/51/16 34/52/16 -f 35/51/17 37/53/17 36/54/17 -f 37/53/18 39/55/18 38/56/18 -f 39/55/19 41/57/19 40/58/19 -f 41/57/20 43/59/20 42/60/20 -f 39/61/5 86/62/5 87/63/5 -f 45/64/21 23/65/21 22/66/21 -f 43/59/22 45/64/22 44/67/22 -f 49/38/7 19/68/7 32/69/7 -f 49/38/7 34/70/7 36/71/7 -f 36/71/7 38/72/7 20/73/7 -f 48/26/7 20/73/7 38/72/7 -f 42/74/7 21/75/7 48/26/7 -f 44/76/7 21/75/7 42/74/7 -f 47/35/7 21/75/7 44/76/7 -f 24/77/7 18/78/7 47/35/7 -f 32/69/7 19/68/7 30/79/7 -f 46/32/7 28/80/7 30/79/7 -f 46/32/7 18/78/7 26/81/7 -f 26/81/7 18/78/7 24/77/7 -f 52/82/4 60/83/4 61/84/4 -f 11/85/7 51/30/7 52/86/7 -f 17/87/7 53/88/7 50/29/7 -f 15/89/7 52/86/7 53/88/7 -f 57/82/4 66/83/4 69/84/4 -f 17/87/7 57/90/7 54/91/7 -f 14/28/7 56/17/7 57/90/7 -f 13/92/7 54/91/7 55/16/7 -f 61/93/7 65/94/7 62/95/7 -f 50/96/2 58/97/2 59/98/2 -f 53/99/1 61/93/1 58/100/1 -f 51/101/3 59/102/3 60/103/3 -f 64/104/4 76/105/4 77/106/4 -f 59/102/7 63/107/7 64/108/7 -f 60/83/7 64/104/7 65/109/7 -f 58/97/7 62/110/7 63/111/7 -f 55/96/2 68/97/2 67/98/2 -f 56/101/3 67/102/3 66/103/3 -f 54/99/1 69/93/1 68/100/1 -f 69/93/7 104/94/7 105/95/7 -f 75/112/23 72/113/23 71/114/23 -f 77/115/24 70/116/24 73/117/24 -f 62/110/2 74/118/2 75/119/2 -f 65/94/1 77/115/1 74/120/1 -f 63/107/3 75/112/3 76/121/3 -f 74/118/25 73/117/25 72/113/25 -f 110/113/23 111/114/23 107/121/23 -f 77/106/26 76/105/26 71/114/26 -f 81/122/14 93/123/14 94/124/14 -f 37/125/5 85/126/5 86/127/5 -f 35/128/5 84/129/5 85/130/5 -f 33/131/5 83/132/5 84/133/5 -f 31/134/5 82/135/5 83/136/5 -f 29/137/5 81/122/5 82/138/5 -f 45/139/5 89/140/5 79/141/5 -f 23/142/5 79/143/5 78/144/5 -f 27/145/5 80/146/5 81/147/5 -f 45/148/5 43/149/5 88/150/5 -f 25/151/5 78/152/5 80/153/5 -f 41/154/5 87/155/5 88/156/5 -f 98/157/7 96/158/7 92/159/7 -f 88/150/22 100/160/22 101/161/22 -f 79/143/11 91/162/11 90/163/11 -f 85/126/18 97/164/18 98/157/18 -f 82/135/15 94/124/15 95/165/15 -f 89/140/21 101/161/21 91/162/21 -f 78/152/12 90/163/12 92/159/12 -f 86/62/19 98/157/19 99/166/19 -f 83/132/16 95/165/16 96/158/16 -f 80/146/13 92/159/13 93/123/13 -f 87/155/20 99/166/20 100/160/20 -f 84/129/17 96/158/17 97/164/17 -f 104/94/1 108/115/1 109/120/1 -f 66/83/7 103/104/7 104/109/7 -f 68/97/7 105/110/7 102/111/7 -f 67/102/7 102/107/7 103/108/7 -f 109/118/25 113/117/25 110/113/25 -f 103/104/4 107/105/4 108/106/4 -f 105/110/2 109/118/2 106/119/2 -f 102/107/3 106/112/3 107/121/3 -f 110/113/7 113/117/7 112/116/7 -f 73/117/7 70/116/7 71/114/7 -f 108/115/24 112/116/24 113/117/24 -f 107/105/26 111/114/26 112/116/26 -f 117/167/3 121/168/3 118/169/3 -f 17/87/7 117/170/7 114/23/7 -f 17/87/7 13/92/7 116/171/7 -f 9/172/7 115/24/7 116/171/7 -f 121/173/2 120/174/2 124/175/2 -f 115/176/1 119/177/1 120/178/1 -f 116/179/2 120/174/2 121/173/2 -f 114/180/4 118/181/4 119/182/4 -f 130/183/7 129/184/7 124/175/7 -f 118/181/4 122/185/4 123/186/4 -f 121/168/3 130/183/3 118/169/3 -f 119/177/27 123/186/27 124/175/27 -f 126/187/1 127/188/1 137/189/1 -f 147/190/10 146/191/10 136/192/10 -f 128/193/1 129/194/1 139/195/1 -f 140/196/1 130/197/1 131/198/1 -f 142/199/1 132/200/1 133/201/1 -f 144/202/1 134/203/1 135/204/1 -f 155/205/10 154/206/10 144/202/10 -f 153/207/10 152/208/10 142/199/10 -f 151/209/10 150/210/10 140/196/10 -f 149/211/10 148/212/10 138/213/10 -f 157/214/7 156/215/7 146/191/7 -f 159/216/7 158/217/7 148/212/7 -f 161/218/7 160/219/7 150/210/7 -f 163/220/7 162/221/7 152/208/7 -f 165/222/7 164/223/7 154/206/7 -f 182/224/7 183/225/7 189/226/7 -f 180/227/7 181/228/7 187/229/7 -f 178/230/7 179/231/7 185/232/7 -f 167/233/2 173/234/2 172/235/2 -f 169/236/2 175/237/2 174/238/2 -f 171/239/2 177/240/2 176/241/2 -f 188/242/8 189/226/8 171/239/8 -f 186/243/8 187/229/8 169/236/8 -f 184/244/8 185/232/8 167/233/8 -f 215/245/28 217/246/28 216/247/28 -f 191/248/29 193/249/29 192/250/29 -f 195/251/30 193/252/30 220/253/30 -f 216/254/31 205/255/31 203/256/31 -f 193/249/32 195/257/32 194/258/32 -f 191/259/33 218/260/33 220/253/33 -f 209/261/34 211/262/34 210/263/34 -f 195/257/35 197/264/35 196/265/35 -f 213/266/36 215/245/36 214/267/36 -f 197/264/37 199/268/37 198/269/37 -f 199/268/38 201/270/38 200/271/38 -f 218/272/39 191/273/39 205/255/39 -f 207/274/40 209/261/40 208/275/40 -f 201/270/41 203/276/41 202/277/41 -f 201/278/42 212/279/42 214/280/42 -f 205/281/43 191/282/43 190/283/43 -f 203/276/44 205/281/44 204/284/44 -f 211/262/45 213/266/45 212/285/45 -f 217/246/46 219/286/46 218/287/46 -f 221/288/47 207/274/47 206/289/47 -f 195/251/48 206/290/48 208/291/48 -f 219/292/49 221/288/49 220/293/49 -f 212/279/50 201/278/50 199/294/50 -f 197/295/51 208/291/51 210/296/51 -f 247/297/28 249/298/28 248/299/28 -f 223/300/29 225/301/29 224/302/29 -f 227/303/30 225/304/30 252/305/30 -f 248/306/31 237/307/31 235/308/31 -f 225/301/32 227/309/32 226/310/32 -f 223/311/33 250/312/33 252/305/33 -f 241/313/34 243/314/34 242/315/34 -f 227/309/35 229/316/35 228/317/35 -f 245/318/36 247/297/36 246/319/36 -f 229/316/37 231/320/37 230/321/37 -f 231/320/38 233/322/38 232/323/38 -f 250/324/39 223/325/39 237/307/39 -f 239/326/40 241/313/40 240/327/40 -f 233/322/41 235/328/41 234/329/41 -f 233/330/42 244/331/42 246/332/42 -f 237/333/43 223/334/43 222/335/43 -f 235/328/44 237/333/44 236/336/44 -f 243/314/45 245/318/45 244/337/45 -f 249/298/46 251/338/46 250/339/46 -f 253/340/47 239/326/47 238/341/47 -f 227/303/48 238/342/48 240/343/48 -f 251/344/49 253/340/49 252/345/49 -f 242/346/50 244/331/50 233/330/50 -f 229/347/51 240/343/51 242/346/51 -f 279/348/28 281/349/28 280/350/28 -f 255/351/29 257/352/29 256/353/29 -f 259/354/30 257/355/30 284/356/30 -f 280/357/31 269/358/31 267/359/31 -f 257/352/32 259/360/32 258/361/32 -f 255/362/33 282/363/33 284/356/33 -f 273/364/34 275/365/34 274/366/34 -f 259/360/35 261/367/35 260/368/35 -f 277/369/36 279/348/36 278/370/36 -f 261/367/37 263/371/37 262/372/37 -f 263/371/38 265/373/38 264/374/38 -f 282/375/39 255/376/39 269/358/39 -f 271/377/40 273/364/40 272/378/40 -f 265/373/41 267/379/41 266/380/41 -f 267/359/42 265/381/42 276/382/42 -f 269/383/43 255/384/43 254/385/43 -f 267/379/44 269/383/44 268/386/44 -f 275/365/45 277/369/45 276/387/45 -f 281/349/46 283/388/46 282/389/46 -f 285/390/47 271/377/47 270/391/47 -f 259/354/48 270/392/48 272/393/48 -f 282/394/49 283/395/49 285/390/49 -f 274/396/50 276/382/50 265/381/50 -f 263/397/51 261/398/51 272/393/51 -f 289/399/1 288/400/1 286/401/1 -f 293/402/2 292/403/2 295/404/2 -f 292/405/3 299/406/3 301/407/3 -f 287/408/52 286/401/52 297/409/52 -f 295/410/5 292/411/5 290/412/5 -f 294/413/53 289/399/53 287/408/53 -f 293/414/7 294/413/7 296/415/7 -f 296/416/4 297/409/4 290/412/4 -f 294/417/54 295/404/54 288/400/54 -f 301/418/55 305/419/55 304/420/55 -f 291/421/3 300/422/3 298/423/3 -f 293/424/3 298/425/3 299/426/3 -f 290/427/3 301/418/3 300/428/3 -f 304/420/3 305/419/3 303/429/3 -f 298/425/56 302/430/56 303/429/56 -f 299/406/57 303/429/57 305/419/57 -f 300/422/58 304/420/58 302/430/58 -f 306/400/3 308/401/3 309/408/3 -f 315/409/2 312/412/2 313/431/2 -f 321/422/1 319/423/1 312/432/1 -f 317/404/59 306/400/59 307/399/59 -f 310/411/5 312/412/5 315/409/5 -f 307/399/60 309/408/60 314/415/60 -f 316/413/7 314/415/7 313/433/7 -f 310/403/4 317/404/4 316/417/4 -f 308/401/61 315/409/61 314/416/61 -f 324/419/62 325/420/62 321/428/62 -f 318/406/1 320/407/1 311/434/1 -f 319/425/1 318/426/1 313/435/1 -f 320/418/1 321/428/1 310/436/1 -f 323/430/1 325/420/1 324/419/1 -f 323/430/63 322/429/63 318/426/63 -f 325/420/64 323/430/64 319/423/64 -f 322/429/65 324/419/65 320/407/65 -f 332/437/3 326/438/3 327/439/3 -f 332/440/2 337/441/2 335/442/2 -f 329/443/1 331/444/1 330/445/1 -f 333/446/7 327/439/7 331/444/7 -f 328/447/5 330/445/5 326/438/5 -f 327/439/2 326/438/2 330/445/2 -f 337/441/5 341/448/5 339/449/5 -f 329/450/2 334/451/2 336/452/2 -f 328/453/2 335/454/2 334/455/2 -f 333/456/2 336/457/2 337/458/2 -f 421/459/10 420/460/10 408/461/10 -f 334/451/7 338/462/7 340/463/7 -f 336/457/3 340/464/3 341/465/3 -f 335/454/1 339/466/1 338/467/1 -f 348/437/3 342/438/3 343/439/3 -f 348/440/2 353/441/2 351/442/2 -f 345/443/1 347/444/1 346/445/1 -f 349/446/7 343/439/7 347/444/7 -f 344/447/5 346/445/5 342/438/5 -f 343/439/2 342/438/2 346/445/2 -f 353/441/5 357/448/5 355/449/5 -f 345/450/2 350/451/2 352/452/2 -f 344/453/2 351/454/2 350/455/2 -f 349/456/2 352/457/2 353/458/2 -f 423/468/10 422/469/10 410/470/10 -f 350/451/7 354/462/7 356/463/7 -f 352/457/3 356/464/3 357/465/3 -f 351/454/1 355/466/1 354/467/1 -f 359/471/3 358/472/3 364/473/3 -f 367/474/4 369/475/4 364/476/4 -f 362/477/1 363/478/1 361/479/1 -f 363/478/7 359/471/7 365/480/7 -f 358/472/5 362/477/5 360/481/5 -f 362/477/4 358/472/4 359/471/4 -f 371/482/5 373/483/5 369/475/5 -f 368/484/4 366/485/4 361/486/4 -f 366/487/4 367/488/4 360/489/4 -f 369/490/4 368/491/4 365/492/4 -f 372/493/2 373/494/2 371/495/2 -f 372/493/7 370/496/7 366/485/7 -f 373/497/3 372/498/3 368/491/3 -f 370/499/1 371/500/1 367/488/1 -f 375/444/3 374/445/3 380/453/3 -f 383/441/4 385/442/4 380/447/4 -f 378/438/1 379/439/1 377/456/1 -f 379/439/7 375/444/7 381/450/7 -f 374/445/5 378/438/5 376/440/5 -f 378/438/4 374/445/4 375/444/4 -f 387/448/5 389/449/5 385/442/5 -f 384/451/4 382/452/4 377/446/4 -f 382/457/4 383/458/4 376/437/4 -f 385/454/4 384/455/4 381/443/4 -f 425/501/10 424/502/10 412/503/10 -f 388/462/7 386/463/7 382/452/7 -f 389/466/3 388/467/3 384/455/3 -f 386/464/1 387/465/1 383/458/1 -f 391/504/2 390/505/2 392/506/2 -f 394/507/4 395/508/4 393/509/4 -f 397/510/2 396/511/2 398/512/2 -f 400/513/4 401/514/4 399/515/4 -f 414/516/66 420/460/66 421/459/66 -f 416/517/66 422/469/66 423/468/66 -f 418/518/66 424/502/66 425/501/66 -f 418/518/67 406/519/67 407/520/67 -f 416/517/67 404/521/67 405/522/67 -f 414/516/67 402/523/67 403/524/67 -f 2/20/1 4/1/1 1/3/1 -f 4/13/2 8/4/2 3/6/2 -f 8/18/3 6/7/3 7/9/3 -f 6/13/4 2/4/4 5/6/4 -f 1/525/5 3/10/5 5/12/5 -f 9/526/6 2/4/6 16/14/6 -f 6/13/6 12/527/6 16/14/6 -f 14/28/7 10/15/7 56/17/7 -f 11/526/8 8/4/8 14/14/8 -f 4/13/8 10/527/8 14/14/8 -f 12/528/9 6/7/9 15/19/9 -f 8/18/9 11/529/9 15/19/9 -f 10/530/10 4/1/10 13/21/10 -f 2/20/10 9/531/10 13/21/10 -f 9/172/7 16/22/7 115/24/7 -f 21/75/1 17/27/1 48/26/1 -f 16/25/1 20/73/1 48/26/1 -f 11/85/7 14/28/7 51/30/7 -f 19/68/3 12/33/3 46/32/3 -f 15/31/3 18/78/3 46/32/3 -f 18/78/2 15/36/2 47/35/2 -f 17/34/2 21/75/2 47/35/2 -f 20/73/4 16/39/4 49/38/4 -f 12/37/4 19/68/4 49/38/4 -f 22/532/11 23/40/11 24/42/11 -f 24/42/12 25/41/12 26/44/12 -f 26/44/13 27/43/13 28/46/13 -f 28/46/14 29/45/14 30/48/14 -f 30/48/15 31/47/15 32/50/15 -f 32/50/16 33/49/16 34/52/16 -f 34/52/17 35/51/17 36/54/17 -f 36/54/18 37/53/18 38/56/18 -f 38/56/19 39/55/19 40/58/19 -f 40/58/20 41/57/20 42/60/20 -f 41/533/5 39/61/5 87/63/5 -f 44/67/21 45/64/21 22/66/21 -f 42/60/22 43/59/22 44/67/22 -f 34/70/7 49/38/7 32/69/7 -f 20/73/7 49/38/7 36/71/7 -f 40/534/7 48/26/7 38/72/7 -f 40/534/7 42/74/7 48/26/7 -f 22/535/7 47/35/7 44/76/7 -f 22/535/7 24/77/7 47/35/7 -f 19/68/7 46/32/7 30/79/7 -f 28/80/7 46/32/7 26/81/7 -f 53/536/4 52/82/4 61/84/4 -f 15/89/7 11/85/7 52/86/7 -f 14/28/7 17/87/7 50/29/7 -f 17/87/7 15/89/7 53/88/7 -f 54/536/4 57/82/4 69/84/4 -f 13/92/7 17/87/7 54/91/7 -f 17/87/7 14/28/7 57/90/7 -f 10/15/7 13/92/7 55/16/7 -f 58/100/7 61/93/7 62/95/7 -f 51/537/2 50/96/2 59/98/2 -f 50/538/1 53/99/1 58/100/1 -f 52/539/3 51/101/3 60/103/3 -f 65/109/4 64/104/4 77/106/4 -f 60/103/7 59/102/7 64/108/7 -f 61/84/7 60/83/7 65/109/7 -f 59/98/7 58/97/7 63/111/7 -f 56/537/2 55/96/2 67/98/2 -f 57/539/3 56/101/3 66/103/3 -f 55/538/1 54/99/1 68/100/1 -f 68/100/7 69/93/7 105/95/7 -f 76/121/23 75/112/23 71/114/23 -f 74/120/24 77/115/24 73/117/24 -f 63/111/2 62/110/2 75/119/2 -f 62/95/1 65/94/1 74/120/1 -f 64/108/3 63/107/3 76/121/3 -f 75/119/25 74/118/25 72/113/25 -f 106/112/23 110/113/23 107/121/23 -f 70/116/26 77/106/26 71/114/26 -f 82/138/14 81/122/14 94/124/14 -f 39/540/5 37/125/5 86/127/5 -f 37/541/5 35/128/5 85/130/5 -f 35/542/5 33/131/5 84/133/5 -f 33/543/5 31/134/5 83/136/5 -f 31/544/5 29/137/5 82/138/5 -f 23/545/5 45/139/5 79/141/5 -f 25/546/5 23/142/5 78/144/5 -f 29/547/5 27/145/5 81/147/5 -f 89/548/5 45/148/5 88/150/5 -f 27/549/5 25/151/5 80/153/5 -f 43/550/5 41/154/5 88/156/5 -f 92/159/7 90/163/7 100/160/7 -f 91/162/7 101/161/7 100/160/7 -f 100/160/7 99/166/7 98/157/7 -f 98/157/7 97/164/7 96/158/7 -f 96/158/7 95/165/7 94/124/7 -f 94/124/7 93/123/7 92/159/7 -f 90/163/7 91/162/7 100/160/7 -f 100/160/7 98/157/7 92/159/7 -f 96/158/7 94/124/7 92/159/7 -f 89/548/22 88/150/22 101/161/22 -f 78/144/11 79/143/11 90/163/11 -f 86/127/18 85/126/18 98/157/18 -f 83/136/15 82/135/15 95/165/15 -f 79/141/21 89/140/21 91/162/21 -f 80/153/12 78/152/12 92/159/12 -f 87/63/19 86/62/19 99/166/19 -f 84/133/16 83/132/16 96/158/16 -f 81/147/13 80/146/13 93/123/13 -f 88/156/20 87/155/20 100/160/20 -f 85/130/17 84/129/17 97/164/17 -f 105/95/1 104/94/1 109/120/1 -f 69/84/7 66/83/7 104/109/7 -f 67/98/7 68/97/7 102/111/7 -f 66/103/7 67/102/7 103/108/7 -f 106/119/25 109/118/25 110/113/25 -f 104/109/4 103/104/4 108/106/4 -f 102/111/2 105/110/2 106/119/2 -f 103/108/3 102/107/3 107/121/3 -f 111/114/7 110/113/7 112/116/7 -f 72/113/7 73/117/7 71/114/7 -f 109/120/24 108/115/24 113/117/24 -f 108/106/26 107/105/26 112/116/26 -f 114/551/3 117/167/3 118/169/3 -f 16/22/7 17/87/7 114/23/7 -f 117/170/7 17/87/7 116/171/7 -f 13/92/7 9/172/7 116/171/7 -f 125/552/2 121/173/2 124/175/2 -f 116/553/1 115/176/1 120/178/1 -f 117/554/2 116/179/2 121/173/2 -f 115/555/4 114/180/4 119/182/4 -f 123/186/7 122/185/7 135/556/7 -f 135/556/7 134/557/7 123/186/7 -f 133/558/7 132/559/7 123/186/7 -f 131/560/7 130/183/7 124/175/7 -f 129/184/7 128/561/7 124/175/7 -f 127/562/7 126/563/7 124/175/7 -f 125/552/7 124/175/7 126/563/7 -f 123/186/7 134/557/7 133/558/7 -f 132/559/7 131/560/7 123/186/7 -f 128/561/7 127/562/7 124/175/7 -f 124/175/7 123/186/7 131/560/7 -f 119/182/4 118/181/4 123/186/4 -f 122/185/3 118/169/3 135/556/3 -f 121/168/3 125/552/3 126/563/3 -f 126/563/3 127/562/3 121/168/3 -f 128/561/3 129/184/3 121/168/3 -f 130/183/3 131/560/3 118/169/3 -f 132/559/3 133/558/3 118/169/3 -f 134/557/3 135/556/3 118/169/3 -f 121/168/3 127/562/3 128/561/3 -f 134/557/3 118/169/3 133/558/3 -f 131/560/3 132/559/3 118/169/3 -f 121/168/3 129/184/3 130/183/3 -f 120/178/27 119/177/27 124/175/27 -f 136/192/1 126/187/1 137/189/1 -f 137/189/10 147/190/10 136/192/10 -f 138/213/1 128/193/1 139/195/1 -f 141/564/1 140/196/1 131/198/1 -f 143/565/1 142/199/1 133/201/1 -f 145/566/1 144/202/1 135/204/1 -f 145/566/10 155/205/10 144/202/10 -f 143/565/10 153/207/10 142/199/10 -f 141/564/10 151/209/10 140/196/10 -f 139/195/10 149/211/10 138/213/10 -f 147/190/7 157/214/7 146/191/7 -f 149/211/7 159/216/7 148/212/7 -f 151/209/7 161/218/7 150/210/7 -f 153/207/7 163/220/7 152/208/7 -f 155/205/7 165/222/7 154/206/7 -f 188/242/7 182/224/7 189/226/7 -f 186/243/7 180/227/7 187/229/7 -f 184/244/7 178/230/7 185/232/7 -f 166/567/2 167/233/2 172/235/2 -f 168/568/2 169/236/2 174/238/2 -f 170/569/2 171/239/2 176/241/2 -f 170/569/8 188/242/8 171/239/8 -f 168/568/8 186/243/8 169/236/8 -f 166/567/8 184/244/8 167/233/8 -f 214/267/28 215/245/28 216/247/28 -f 190/570/29 191/248/29 192/250/29 -f 206/290/30 195/251/30 220/253/30 -f 214/280/31 216/254/31 203/256/31 -f 192/250/32 193/249/32 194/258/32 -f 193/252/33 191/259/33 220/253/33 -f 208/275/34 209/261/34 210/263/34 -f 194/258/35 195/257/35 196/265/35 -f 212/285/36 213/266/36 214/267/36 -f 196/265/37 197/264/37 198/269/37 -f 198/269/38 199/268/38 200/271/38 -f 216/254/39 218/272/39 205/255/39 -f 206/289/40 207/274/40 208/275/40 -f 200/271/41 201/270/41 202/277/41 -f 203/256/42 201/278/42 214/280/42 -f 204/284/43 205/281/43 190/283/43 -f 202/277/44 203/276/44 204/284/44 -f 210/263/45 211/262/45 212/285/45 -f 216/247/46 217/246/46 218/287/46 -f 220/293/47 221/288/47 206/289/47 -f 197/295/48 195/251/48 208/291/48 -f 218/571/49 219/292/49 220/293/49 -f 210/296/50 212/279/50 199/294/50 -f 199/294/51 197/295/51 210/296/51 -f 246/319/28 247/297/28 248/299/28 -f 222/572/29 223/300/29 224/302/29 -f 238/342/30 227/303/30 252/305/30 -f 246/332/31 248/306/31 235/308/31 -f 224/302/32 225/301/32 226/310/32 -f 225/304/33 223/311/33 252/305/33 -f 240/327/34 241/313/34 242/315/34 -f 226/310/35 227/309/35 228/317/35 -f 244/337/36 245/318/36 246/319/36 -f 228/317/37 229/316/37 230/321/37 -f 230/321/38 231/320/38 232/323/38 -f 248/306/39 250/324/39 237/307/39 -f 238/341/40 239/326/40 240/327/40 -f 232/323/41 233/322/41 234/329/41 -f 235/308/42 233/330/42 246/332/42 -f 236/336/43 237/333/43 222/335/43 -f 234/329/44 235/328/44 236/336/44 -f 242/315/45 243/314/45 244/337/45 -f 248/299/46 249/298/46 250/339/46 -f 252/345/47 253/340/47 238/341/47 -f 229/347/48 227/303/48 240/343/48 -f 250/573/49 251/344/49 252/345/49 -f 231/574/50 242/346/50 233/330/50 -f 231/574/51 229/347/51 242/346/51 -f 278/370/28 279/348/28 280/350/28 -f 254/575/29 255/351/29 256/353/29 -f 270/392/30 259/354/30 284/356/30 -f 278/576/31 280/357/31 267/359/31 -f 256/353/32 257/352/32 258/361/32 -f 257/355/33 255/362/33 284/356/33 -f 272/378/34 273/364/34 274/366/34 -f 258/361/35 259/360/35 260/368/35 -f 276/387/36 277/369/36 278/370/36 -f 260/368/37 261/367/37 262/372/37 -f 262/372/38 263/371/38 264/374/38 -f 280/357/39 282/375/39 269/358/39 -f 270/391/40 271/377/40 272/378/40 -f 264/374/41 265/373/41 266/380/41 -f 278/576/42 267/359/42 276/382/42 -f 268/386/43 269/383/43 254/385/43 -f 266/380/44 267/379/44 268/386/44 -f 274/366/45 275/365/45 276/387/45 -f 280/350/46 281/349/46 282/389/46 -f 284/577/47 285/390/47 270/391/47 -f 261/398/48 259/354/48 272/393/48 -f 284/577/49 282/394/49 285/390/49 -f 263/397/50 274/396/50 265/381/50 -f 274/396/51 263/397/51 272/393/51 -f 287/408/1 289/399/1 286/401/1 -f 294/417/2 293/402/2 295/404/2 -f 290/434/3 292/405/3 301/407/3 -f 296/416/52 287/408/52 297/409/52 -f 297/409/5 295/410/5 290/412/5 -f 296/415/53 294/413/53 287/408/53 -f 291/433/7 293/414/7 296/415/7 -f 291/431/4 296/416/4 290/412/4 -f 289/399/54 294/417/54 288/400/54 -f 300/428/55 301/418/55 304/420/55 -f 293/432/3 291/421/3 298/423/3 -f 292/435/3 293/424/3 299/426/3 -f 291/436/3 290/427/3 300/428/3 -f 302/430/3 304/420/3 303/429/3 -f 299/426/56 298/425/56 303/429/56 -f 301/407/57 299/406/57 305/419/57 -f 298/423/58 300/422/58 302/430/58 -f 307/399/3 306/400/3 309/408/3 -f 314/416/2 315/409/2 313/431/2 -f 310/421/1 321/422/1 312/432/1 -f 316/417/59 317/404/59 307/399/59 -f 317/410/5 310/411/5 315/409/5 -f 316/413/60 307/399/60 314/415/60 -f 311/414/7 316/413/7 313/433/7 -f 311/402/4 310/403/4 316/417/4 -f 309/408/61 308/401/61 314/416/61 -f 320/418/62 324/419/62 321/428/62 -f 313/405/1 318/406/1 311/434/1 -f 312/424/1 319/425/1 313/435/1 -f 311/427/1 320/418/1 310/436/1 -f 322/429/1 323/430/1 324/419/1 -f 319/425/63 323/430/63 318/426/63 -f 321/422/64 325/420/64 319/423/64 -f 318/406/65 322/429/65 320/407/65 -f 333/456/3 332/437/3 327/439/3 -f 328/447/2 332/440/2 335/442/2 -f 328/453/1 329/443/1 330/445/1 -f 329/450/7 333/446/7 331/444/7 -f 332/440/5 328/447/5 326/438/5 -f 331/444/2 327/439/2 330/445/2 -f 335/442/5 337/441/5 339/449/5 -f 333/446/2 329/450/2 336/452/2 -f 329/443/2 328/453/2 334/455/2 -f 332/437/2 333/456/2 337/458/2 -f 409/578/10 421/459/10 408/461/10 -f 336/452/7 334/451/7 340/463/7 -f 337/458/3 336/457/3 341/465/3 -f 334/455/1 335/454/1 338/467/1 -f 349/456/3 348/437/3 343/439/3 -f 344/447/2 348/440/2 351/442/2 -f 344/453/1 345/443/1 346/445/1 -f 345/450/7 349/446/7 347/444/7 -f 348/440/5 344/447/5 342/438/5 -f 347/444/2 343/439/2 346/445/2 -f 351/442/5 353/441/5 355/449/5 -f 349/446/2 345/450/2 352/452/2 -f 345/443/2 344/453/2 350/455/2 -f 348/437/2 349/456/2 353/458/2 -f 411/579/10 423/468/10 410/470/10 -f 352/452/7 350/451/7 356/463/7 -f 353/458/3 352/457/3 357/465/3 -f 350/455/1 351/454/1 354/467/1 -f 365/492/3 359/471/3 364/473/3 -f 360/481/4 367/474/4 364/476/4 -f 360/489/1 362/477/1 361/479/1 -f 361/486/7 363/478/7 365/480/7 -f 364/476/5 358/472/5 360/481/5 -f 363/478/4 362/477/4 359/471/4 -f 367/474/5 371/482/5 369/475/5 -f 365/480/4 368/484/4 361/486/4 -f 361/479/4 366/487/4 360/489/4 -f 364/473/4 369/490/4 365/492/4 -f 370/496/2 372/493/2 371/495/2 -f 368/484/7 372/493/7 366/485/7 -f 369/490/3 373/497/3 368/491/3 -f 366/487/1 370/499/1 367/488/1 -f 381/443/3 375/444/3 380/453/3 -f 376/440/4 383/441/4 380/447/4 -f 376/437/1 378/438/1 377/456/1 -f 377/446/7 379/439/7 381/450/7 -f 380/447/5 374/445/5 376/440/5 -f 379/439/4 378/438/4 375/444/4 -f 383/441/5 387/448/5 385/442/5 -f 381/450/4 384/451/4 377/446/4 -f 377/456/4 382/457/4 376/437/4 -f 380/453/4 385/454/4 381/443/4 -f 413/580/10 425/501/10 412/503/10 -f 384/451/7 388/462/7 382/452/7 -f 385/454/3 389/466/3 384/455/3 -f 382/457/1 386/464/1 383/458/1 -f 415/581/66 414/516/66 421/459/66 -f 417/582/66 416/517/66 423/468/66 -f 419/583/66 418/518/66 425/501/66 -f 419/583/67 418/518/67 407/520/67 -f 417/582/67 416/517/67 405/522/67 -f 415/581/67 414/516/67 403/524/67 diff --git a/src/main/resources/assets/hbm/models/chemplant_piston.obj b/src/main/resources/assets/hbm/models/chemplant_piston.obj deleted file mode 100644 index 16c48a3e6..000000000 --- a/src/main/resources/assets/hbm/models/chemplant_piston.obj +++ /dev/null @@ -1,150 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'chemplant_piston.blend' -# www.blender.org -o Cube.001_Cube.002 -v 0.427500 2.000000 -0.427500 -v 0.427500 2.000000 -0.822500 -v 0.822500 2.000000 -0.427500 -v 0.822500 2.000000 -0.822500 -v 0.427500 2.150000 -0.427500 -v 0.427500 2.150000 -0.822500 -v 0.822500 2.150000 -0.822500 -v 0.822500 2.150000 -0.427500 -v 0.476875 2.000000 -0.476875 -v 0.476875 2.000000 -0.773125 -v 0.773125 2.000000 -0.773125 -v 0.773125 2.000000 -0.476875 -v 0.476875 1.500000 -0.476875 -v 0.476875 1.500000 -0.773125 -v 0.773125 1.500000 -0.773125 -v 0.773125 1.500000 -0.476875 -v -0.822500 2.000000 -0.427500 -v -0.822500 2.000000 -0.822500 -v -0.427500 2.000000 -0.427500 -v -0.427500 2.000000 -0.822500 -v -0.822500 2.150000 -0.427500 -v -0.822500 2.150000 -0.822500 -v -0.427500 2.150000 -0.822500 -v -0.427500 2.150000 -0.427500 -v -0.773125 2.000000 -0.476875 -v -0.773125 2.000000 -0.773125 -v -0.476875 2.000000 -0.773125 -v -0.476875 2.000000 -0.476875 -v -0.773125 1.500000 -0.476875 -v -0.773125 1.500000 -0.773125 -v -0.476875 1.500000 -0.773125 -v -0.476875 1.500000 -0.476875 -vt 0.263926 0.442748 -vt 0.248840 0.427662 -vt 0.248840 0.337146 -vt 0.309756 0.322060 -vt 0.430444 0.322060 -vt 0.430444 0.442748 -vt 0.263926 0.322060 -vt 0.309756 0.442748 -vt 0.476275 0.442748 -vt 0.309756 0.488579 -vt 0.430444 0.276229 -vt 0.415358 0.503665 -vt 0.415358 0.656434 -vt 0.324842 0.656434 -vt 0.476275 0.322060 -vt 0.491361 0.337146 -vt 0.491361 0.427662 -vt 0.430444 0.488579 -vt 0.324842 0.503664 -vt 0.309756 0.276230 -vt 0.324842 0.261143 -vt 0.415358 0.261144 -vt 0.324842 0.108374 -vt 0.415358 0.108374 -vt 0.096070 0.427662 -vt 0.096071 0.337146 -vt 0.644130 0.337146 -vt 0.644130 0.427662 -vt 0.847582 0.752895 -vt 0.847582 0.774230 -vt 0.783577 0.838234 -vt 0.729835 0.805827 -vt 0.644497 0.720488 -vt 0.729836 0.635149 -vt 0.762243 0.838234 -vt 0.815175 0.720488 -vt 0.697428 0.602742 -vt 0.847582 0.688081 -vt 0.612089 0.752895 -vt 0.783578 0.602742 -vt 0.891602 0.494718 -vt 0.955606 0.558722 -vt 0.612089 0.688081 -vt 0.612089 0.666746 -vt 0.676094 0.602742 -vt 0.762243 0.602742 -vt 0.847582 0.666746 -vt 0.697428 0.838234 -vt 0.676093 0.838234 -vt 0.612089 0.774230 -vt 0.568069 0.946258 -vt 0.504065 0.882254 -vt 0.955606 0.882254 -vt 0.891601 0.946258 -vt 0.504065 0.558721 -vt 0.568070 0.494717 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -s off -f 3/1/1 12/2/1 11/3/1 -f 7/4/2 6/5/2 5/6/2 -f 4/7/3 7/4/3 8/8/3 -f 1/9/4 5/6/4 6/5/4 -f 3/10/5 8/8/5 5/6/5 -f 2/11/6 6/5/6 7/4/6 -f 9/12/5 13/13/5 16/14/5 -f 2/15/1 10/16/1 9/17/1 -f 1/18/1 9/12/1 12/19/1 -f 4/20/1 11/21/1 10/22/1 -f 11/21/6 15/23/6 14/24/6 -f 12/2/3 16/25/3 15/26/3 -f 10/16/4 14/27/4 13/28/4 -f 19/29/1 28/30/1 27/31/1 -f 23/32/2 22/33/2 21/34/2 -f 20/35/3 23/32/3 24/36/3 -f 17/37/4 21/34/4 22/33/4 -f 19/38/5 24/36/5 21/34/5 -f 18/39/6 22/33/6 23/32/6 -f 25/40/5 29/41/5 32/42/5 -f 18/43/1 26/44/1 25/45/1 -f 17/46/1 25/40/1 28/47/1 -f 20/48/1 27/49/1 26/50/1 -f 27/49/6 31/51/6 30/52/6 -f 28/30/3 32/53/3 31/54/3 -f 26/44/4 30/55/4 29/56/4 -f 4/7/1 3/1/1 11/3/1 -f 8/8/2 7/4/2 5/6/2 -f 3/1/3 4/7/3 8/8/3 -f 2/15/4 1/9/4 6/5/4 -f 1/18/5 3/10/5 5/6/5 -f 4/20/6 2/11/6 7/4/6 -f 12/19/5 9/12/5 16/14/5 -f 1/9/1 2/15/1 9/17/1 -f 3/10/1 1/18/1 12/19/1 -f 2/11/1 4/20/1 10/22/1 -f 10/22/6 11/21/6 14/24/6 -f 11/3/3 12/2/3 15/26/3 -f 9/17/4 10/16/4 13/28/4 -f 20/35/1 19/29/1 27/31/1 -f 24/36/2 23/32/2 21/34/2 -f 19/29/3 20/35/3 24/36/3 -f 18/43/4 17/37/4 22/33/4 -f 17/46/5 19/38/5 21/34/5 -f 20/48/6 18/39/6 23/32/6 -f 28/47/5 25/40/5 32/42/5 -f 17/37/1 18/43/1 25/45/1 -f 19/38/1 17/46/1 28/47/1 -f 18/39/1 20/48/1 26/50/1 -f 26/50/6 27/49/6 30/52/6 -f 27/31/3 28/30/3 31/54/3 -f 25/45/4 26/44/4 29/56/4 diff --git a/src/main/resources/assets/hbm/models/cwis_base.obj b/src/main/resources/assets/hbm/models/cwis_base.obj deleted file mode 100644 index 47dc23c11..000000000 --- a/src/main/resources/assets/hbm/models/cwis_base.obj +++ /dev/null @@ -1,44 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cwis_base.blend' -# www.blender.org -o Cube_Cube.001 -v -1.000000 0.000000 1.000000 -v -1.000000 0.250000 1.000000 -v -1.000000 0.000000 -1.000000 -v -1.000000 0.250000 -1.000000 -v 1.000000 0.000000 1.000000 -v 1.000000 0.250000 1.000000 -v 1.000000 0.000000 -1.000000 -v 1.000000 0.250000 -1.000000 -vt 0.444444 0.444444 -vt 0.444444 0.500000 -vt 0.000000 0.500000 -vt 0.888889 0.444444 -vt 0.888889 0.500000 -vt 0.444444 1.000000 -vt 0.444444 0.944444 -vt 0.888888 0.944444 -vt 0.000000 1.000000 -vt 0.000000 0.944444 -vt 0.444444 0.000000 -vt 0.000000 0.444444 -vt 0.888888 1.000000 -vt 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -s off -f 4/1/1 3/2/1 1/3/1 -f 8/4/2 7/5/2 3/2/2 -f 6/6/3 5/7/3 7/8/3 -f 2/9/4 1/10/4 5/7/4 -f 3/2/5 7/7/5 5/10/5 -f 8/11/6 4/1/6 2/12/6 -f 2/12/1 4/1/1 1/3/1 -f 4/1/2 8/4/2 3/2/2 -f 8/13/3 6/6/3 7/8/3 -f 6/6/4 2/9/4 5/7/4 -f 1/3/5 3/2/5 5/10/5 -f 6/14/6 8/11/6 2/12/6 diff --git a/src/main/resources/assets/hbm/models/cwis_gun.obj b/src/main/resources/assets/hbm/models/cwis_gun.obj deleted file mode 100644 index b0a3f9bfc..000000000 --- a/src/main/resources/assets/hbm/models/cwis_gun.obj +++ /dev/null @@ -1,438 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cwis_gun.blend' -# www.blender.org -o Cylinder -v -0.000000 0.125000 0.950000 -v -0.000000 0.125000 1.050000 -v 0.088388 0.088388 0.950000 -v 0.088388 0.088388 1.050000 -v 0.125000 -0.000000 0.950000 -v 0.125000 -0.000000 1.050000 -v 0.088388 -0.088388 0.950000 -v 0.088388 -0.088388 1.050000 -v -0.000000 -0.125000 0.950000 -v -0.000000 -0.125000 1.050000 -v -0.088388 -0.088388 0.950000 -v -0.088388 -0.088388 1.050000 -v -0.125000 0.000000 0.950000 -v -0.125000 0.000000 1.050000 -v -0.088388 0.088388 0.950000 -v -0.088388 0.088388 1.050000 -v -0.000000 0.125000 0.450000 -v -0.000000 0.125000 0.550000 -v 0.088388 0.088388 0.450000 -v 0.088388 0.088388 0.550000 -v 0.125000 -0.000000 0.450000 -v 0.125000 -0.000000 0.550000 -v 0.088388 -0.088388 0.450000 -v 0.088388 -0.088388 0.550000 -v -0.000000 -0.125000 0.450000 -v -0.000000 -0.125000 0.550000 -v -0.088388 -0.088388 0.450000 -v -0.088388 -0.088388 0.550000 -v -0.125000 0.000000 0.450000 -v -0.125000 0.000000 0.550000 -v -0.088388 0.088388 0.450000 -v -0.088388 0.088388 0.550000 -v -0.000000 0.125000 1.450000 -v -0.000000 0.125000 1.950000 -v 0.088388 0.088388 1.450000 -v 0.088388 0.088388 1.950000 -v 0.125000 -0.000000 1.450000 -v 0.125000 -0.000000 1.950000 -v 0.088388 -0.088388 1.450000 -v 0.088388 -0.088388 1.950000 -v -0.000000 -0.125000 1.450000 -v -0.000000 -0.125000 1.950000 -v -0.088388 -0.088388 1.450000 -v -0.088388 -0.088388 1.950000 -v -0.125000 0.000000 1.450000 -v -0.125000 0.000000 1.950000 -v -0.088388 0.088388 1.450000 -v -0.088388 0.088388 1.950000 -v -0.025000 0.050000 2.000000 -v -0.025000 0.100000 2.000000 -v -0.025000 0.050000 0.550000 -v -0.025000 0.100000 0.550000 -v 0.025000 0.050000 2.000000 -v 0.025000 0.100000 2.000000 -v 0.025000 0.050000 0.550000 -v 0.025000 0.100000 0.550000 -v -0.025000 -0.100000 2.000000 -v -0.025000 -0.050000 2.000000 -v -0.025000 -0.100000 0.550000 -v -0.025000 -0.050000 0.550000 -v 0.025000 -0.100000 2.000000 -v 0.025000 -0.050000 2.000000 -v 0.025000 -0.100000 0.550000 -v 0.025000 -0.050000 0.550000 -v 0.030801 0.046651 2.000000 -v 0.074103 0.071651 2.000000 -v 0.030801 0.046651 0.550000 -v 0.074103 0.071651 0.550000 -v 0.055801 0.003349 2.000000 -v 0.099103 0.028349 2.000000 -v 0.055801 0.003349 0.550000 -v 0.099103 0.028349 0.550000 -v -0.099103 -0.028349 2.000000 -v -0.055801 -0.003349 2.000000 -v -0.099103 -0.028349 0.550000 -v -0.055801 -0.003349 0.550000 -v -0.074103 -0.071651 2.000000 -v -0.030801 -0.046651 2.000000 -v -0.074103 -0.071651 0.550000 -v -0.030801 -0.046651 0.550000 -v 0.055801 -0.003349 2.000000 -v 0.099103 -0.028349 2.000000 -v 0.055801 -0.003349 0.550000 -v 0.099103 -0.028349 0.550000 -v 0.030801 -0.046651 2.000000 -v 0.074103 -0.071651 2.000000 -v 0.030801 -0.046651 0.550000 -v 0.074103 -0.071651 0.550000 -v -0.074103 0.071651 2.000000 -v -0.030801 0.046651 2.000000 -v -0.074103 0.071651 0.550000 -v -0.030801 0.046651 0.550000 -v -0.099103 0.028349 2.000000 -v -0.055801 0.003349 2.000000 -v -0.099103 0.028349 0.550000 -v -0.055801 0.003349 0.550000 -vt 0.550118 0.760811 -vt 0.591204 0.760811 -vt 0.591204 0.803757 -vt 0.632291 0.760811 -vt 0.673377 0.760811 -vt 0.673377 0.803757 -vt 0.714463 0.760811 -vt 0.714463 0.803757 -vt 0.385773 0.760811 -vt 0.426859 0.760811 -vt 0.426859 0.803757 -vt 0.467946 0.760811 -vt 0.781571 0.779002 -vt 0.752518 0.708863 -vt 0.822657 0.679811 -vt 0.509032 0.760811 -vt 0.550118 0.803757 -vt 0.509032 0.803757 -vt 0.781571 0.916248 -vt 0.752519 0.846109 -vt 0.822657 0.817057 -vt 0.550118 0.679811 -vt 0.550118 0.722756 -vt 0.509032 0.722756 -vt 0.467946 0.722756 -vt 0.467946 0.679811 -vt 0.426859 0.722756 -vt 0.426859 0.679811 -vt 0.385773 0.722756 -vt 0.385773 0.679811 -vt 0.714463 0.722756 -vt 0.673377 0.722756 -vt 0.673377 0.679811 -vt 0.632291 0.722756 -vt 0.951920 0.118219 -vt 0.881781 0.089166 -vt 0.910834 0.019028 -vt 0.591204 0.722756 -vt 0.632291 0.679811 -vt 0.183373 0.233755 -vt 0.142286 0.233755 -vt 0.142286 0.019028 -vt 0.101200 0.233755 -vt 0.101200 0.019028 -vt 0.060114 0.233755 -vt 0.060114 0.019028 -vt 0.019028 0.233755 -vt 0.019028 0.019028 -vt 0.347718 0.233755 -vt 0.306632 0.233755 -vt 0.306632 0.019028 -vt 0.265545 0.233755 -vt 0.265545 0.019028 -vt 0.414825 0.941003 -vt 0.414825 0.841812 -vt 0.455912 0.841812 -vt 0.224459 0.019028 -vt 0.224459 0.233755 -vt 0.552072 0.941003 -vt 0.552072 0.841812 -vt 0.593158 0.841812 -vt 0.676830 0.019028 -vt 0.698302 0.019028 -vt 0.698303 0.641726 -vt 0.509936 0.019028 -vt 0.531409 0.019028 -vt 0.531408 0.641726 -vt 0.655356 0.641726 -vt 0.633883 0.641726 -vt 0.633884 0.019028 -vt 0.266926 0.293283 -vt 0.266926 0.271810 -vt 0.288398 0.271810 -vt 0.719775 0.019028 -vt 0.719777 0.641726 -vt 0.655357 0.019028 -vt 0.676830 0.641726 -vt 0.574354 0.641726 -vt 0.552882 0.641726 -vt 0.552881 0.019028 -vt 0.266926 0.352811 -vt 0.266926 0.331338 -vt 0.288398 0.331338 -vt 0.574355 0.019028 -vt 0.595827 0.019028 -vt 0.595828 0.641726 -vt 0.061974 0.271810 -vt 0.083446 0.271810 -vt 0.083448 0.894508 -vt 0.757834 0.019028 -vt 0.779306 0.019028 -vt 0.779306 0.641726 -vt 0.040500 0.894508 -vt 0.019028 0.894508 -vt 0.019028 0.271810 -vt 0.288398 0.590923 -vt 0.266926 0.590923 -vt 0.266926 0.569450 -vt 0.104919 0.271810 -vt 0.104921 0.894508 -vt 0.040501 0.271810 -vt 0.061974 0.894508 -vt 0.822252 0.641725 -vt 0.800780 0.641726 -vt 0.800779 0.019028 -vt 0.288398 0.531395 -vt 0.266926 0.531395 -vt 0.266926 0.509922 -vt 0.822253 0.019028 -vt 0.843725 0.019028 -vt 0.843726 0.641726 -vt 0.428934 0.019043 -vt 0.450407 0.019050 -vt 0.450193 0.641748 -vt 0.142978 0.271810 -vt 0.164451 0.271810 -vt 0.164450 0.894508 -vt 0.407245 0.641733 -vt 0.385773 0.641726 -vt 0.385988 0.019028 -vt 0.266926 0.450394 -vt 0.288398 0.450394 -vt 0.288398 0.471867 -vt 0.471879 0.019057 -vt 0.471667 0.641755 -vt 0.407462 0.019035 -vt 0.428719 0.641741 -vt 0.207397 0.894508 -vt 0.185924 0.894508 -vt 0.185923 0.271810 -vt 0.288398 0.390866 -vt 0.288398 0.412339 -vt 0.266926 0.412339 -vt 0.207397 0.271810 -vt 0.228869 0.271810 -vt 0.228870 0.894508 -vt 0.632291 0.803757 -vt 0.385773 0.803757 -vt 0.467946 0.803757 -vt 0.851710 0.708863 -vt 0.851710 0.749949 -vt 0.822657 0.779002 -vt 0.752519 0.749949 -vt 0.781571 0.679811 -vt 0.851710 0.846109 -vt 0.851710 0.887195 -vt 0.822657 0.916248 -vt 0.752518 0.887195 -vt 0.781571 0.817057 -vt 0.509032 0.679811 -vt 0.714463 0.679811 -vt 0.951920 0.019028 -vt 0.980972 0.048080 -vt 0.980972 0.089166 -vt 0.910834 0.118219 -vt 0.881781 0.048080 -vt 0.591204 0.679811 -vt 0.183373 0.019028 -vt 0.347718 0.019028 -vt 0.484964 0.870865 -vt 0.484964 0.911951 -vt 0.455912 0.941003 -vt 0.385773 0.911951 -vt 0.385773 0.870865 -vt 0.622210 0.870864 -vt 0.622210 0.911951 -vt 0.593158 0.941003 -vt 0.523019 0.911951 -vt 0.523019 0.870864 -vt 0.509934 0.641726 -vt 0.288398 0.293283 -vt 0.288398 0.352811 -vt 0.757832 0.641725 -vt 0.288398 0.569450 -vt 0.288398 0.509922 -vt 0.142977 0.894508 -vt 0.266926 0.471867 -vt 0.266926 0.390866 -vn 0.382700 0.923900 0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.923900 -0.382700 0.000000 -vn 0.000000 0.000000 1.000000 -vn -0.382700 0.923900 0.000000 -vn -0.923900 0.382700 -0.000000 -vn -0.000000 -0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.500000 0.866000 -0.000000 -vn 0.500000 -0.866000 0.000000 -vn -0.866000 -0.500000 -0.000000 -vn 0.866000 0.500000 0.000000 -vn 0.500000 0.866000 -0.000000 -vn -0.500000 -0.866000 0.000000 -vn -0.866000 0.500000 -0.000000 -vn 0.866000 -0.500000 0.000000 -s off -f 2/1/1 4/2/1 3/3/1 -f 3/3/2 4/2/2 6/4/2 -f 6/4/3 8/5/3 7/6/3 -f 8/5/4 10/7/4 9/8/4 -f 10/9/5 12/10/5 11/11/5 -f 11/11/6 12/10/6 14/12/6 -f 14/13/7 10/14/7 6/15/7 -f 16/16/8 2/1/8 1/17/8 -f 14/12/9 16/16/9 15/18/9 -f 7/19/10 11/20/10 15/21/10 -f 17/22/1 18/23/1 20/24/1 -f 20/24/2 22/25/2 21/26/2 -f 22/25/3 24/27/3 23/28/3 -f 24/27/4 26/29/4 25/30/4 -f 26/31/5 28/32/5 27/33/5 -f 27/33/6 28/32/6 30/34/6 -f 30/35/7 26/36/7 22/37/7 -f 32/38/8 18/23/8 17/22/8 -f 29/39/9 30/34/9 32/38/9 -f 34/40/1 36/41/1 35/42/1 -f 36/41/2 38/43/2 37/44/2 -f 38/43/3 40/45/3 39/46/3 -f 40/45/4 42/47/4 41/48/4 -f 42/49/5 44/50/5 43/51/5 -f 44/50/6 46/52/6 45/53/6 -f 46/54/7 40/55/7 38/56/7 -f 47/57/8 48/58/8 34/40/8 -f 46/52/9 48/58/9 47/57/9 -f 39/59/10 45/60/10 47/61/10 -f 52/62/11 51/63/11 49/64/11 -f 60/65/11 59/66/11 57/67/11 -f 54/68/12 53/69/12 55/70/12 -f 50/71/7 49/72/7 53/73/7 -f 51/63/13 55/74/13 53/75/13 -f 56/76/14 52/62/14 50/77/14 -f 62/78/12 61/79/12 63/80/12 -f 58/81/7 57/82/7 61/83/7 -f 59/66/13 63/80/13 61/79/13 -f 64/84/14 60/85/14 58/86/14 -f 68/87/15 67/88/15 65/89/15 -f 76/90/15 75/91/15 73/92/15 -f 70/93/16 69/94/16 71/95/16 -f 66/96/7 65/97/7 69/98/7 -f 67/88/17 71/99/17 69/100/17 -f 72/101/18 68/87/18 66/102/18 -f 78/103/16 77/104/16 79/105/16 -f 74/106/7 73/107/7 77/108/7 -f 75/91/17 79/105/17 77/104/17 -f 80/109/18 76/110/18 74/111/18 -f 84/112/19 83/113/19 81/114/19 -f 92/115/19 91/116/19 89/117/19 -f 86/118/20 85/119/20 87/120/20 -f 82/121/7 81/122/7 85/123/7 -f 83/113/21 87/124/21 85/125/21 -f 88/126/22 84/112/22 82/127/22 -f 94/128/20 93/129/20 95/130/20 -f 94/131/7 90/132/7 89/133/7 -f 91/116/21 95/130/21 93/129/21 -f 96/134/22 92/135/22 90/136/22 -f 1/17/1 2/1/1 3/3/1 -f 5/137/2 3/3/2 6/4/2 -f 5/137/3 6/4/3 7/6/3 -f 7/6/4 8/5/4 9/8/4 -f 9/138/5 10/9/5 11/11/5 -f 13/139/6 11/11/6 14/12/6 -f 6/15/7 4/140/7 2/141/7 -f 2/141/7 16/142/7 14/13/7 -f 14/13/7 12/143/7 10/14/7 -f 10/14/7 8/144/7 6/15/7 -f 6/15/7 2/141/7 14/13/7 -f 15/18/8 16/16/8 1/17/8 -f 13/139/9 14/12/9 15/18/9 -f 15/21/10 1/145/10 3/146/10 -f 3/146/10 5/147/10 15/21/10 -f 7/19/10 9/148/10 11/20/10 -f 11/20/10 13/149/10 15/21/10 -f 15/21/10 5/147/10 7/19/10 -f 19/150/1 17/22/1 20/24/1 -f 19/150/2 20/24/2 21/26/2 -f 21/26/3 22/25/3 23/28/3 -f 23/28/4 24/27/4 25/30/4 -f 25/151/5 26/31/5 27/33/5 -f 29/39/6 27/33/6 30/34/6 -f 22/37/7 20/152/7 18/153/7 -f 18/153/7 32/154/7 30/35/7 -f 30/35/7 28/155/7 26/36/7 -f 26/36/7 24/156/7 22/37/7 -f 22/37/7 18/153/7 30/35/7 -f 31/157/8 32/38/8 17/22/8 -f 31/157/9 29/39/9 32/38/9 -f 33/158/1 34/40/1 35/42/1 -f 35/42/2 36/41/2 37/44/2 -f 37/44/3 38/43/3 39/46/3 -f 39/46/4 40/45/4 41/48/4 -f 41/159/5 42/49/5 43/51/5 -f 43/51/6 44/50/6 45/53/6 -f 38/56/7 36/160/7 34/161/7 -f 34/161/7 48/162/7 46/54/7 -f 46/54/7 44/163/7 42/164/7 -f 42/164/7 40/55/7 46/54/7 -f 38/56/7 34/161/7 46/54/7 -f 33/158/8 47/57/8 34/40/8 -f 45/53/9 46/52/9 47/57/9 -f 47/61/10 33/165/10 35/166/10 -f 35/166/10 37/167/10 47/61/10 -f 39/59/10 41/168/10 43/169/10 -f 43/169/10 45/60/10 39/59/10 -f 47/61/10 37/167/10 39/59/10 -f 50/77/11 52/62/11 49/64/11 -f 58/170/11 60/65/11 57/67/11 -f 56/76/12 54/68/12 55/70/12 -f 54/171/7 50/71/7 53/73/7 -f 49/64/13 51/63/13 53/75/13 -f 54/68/14 56/76/14 50/77/14 -f 64/84/12 62/78/12 63/80/12 -f 62/172/7 58/81/7 61/83/7 -f 57/67/13 59/66/13 61/79/13 -f 62/78/14 64/84/14 58/86/14 -f 66/102/15 68/87/15 65/89/15 -f 74/173/15 76/90/15 73/92/15 -f 72/101/16 70/93/16 71/95/16 -f 70/174/7 66/96/7 69/98/7 -f 65/89/17 67/88/17 69/100/17 -f 70/93/18 72/101/18 66/102/18 -f 80/109/16 78/103/16 79/105/16 -f 78/175/7 74/106/7 77/108/7 -f 73/92/17 75/91/17 77/104/17 -f 78/103/18 80/109/18 74/111/18 -f 82/127/19 84/112/19 81/114/19 -f 90/176/19 92/115/19 89/117/19 -f 88/126/20 86/118/20 87/120/20 -f 86/177/7 82/121/7 85/123/7 -f 81/114/21 83/113/21 85/125/21 -f 86/118/22 88/126/22 82/127/22 -f 96/134/20 94/128/20 95/130/20 -f 93/178/7 94/131/7 89/133/7 -f 89/117/21 91/116/21 93/129/21 -f 94/128/22 96/134/22 90/136/22 diff --git a/src/main/resources/assets/hbm/models/cwis_head.obj b/src/main/resources/assets/hbm/models/cwis_head.obj deleted file mode 100644 index fe093b5d8..000000000 --- a/src/main/resources/assets/hbm/models/cwis_head.obj +++ /dev/null @@ -1,613 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cwis_head.blend' -# www.blender.org -o Cube.001_Cube.002 -v -0.500000 -0.250000 0.500000 -v -0.500000 0.250000 0.500000 -v -0.500000 -0.250000 -0.500000 -v -0.500000 0.250000 -0.500000 -v 0.500000 -0.250000 0.500000 -v 0.500000 0.250000 0.500000 -v 0.500000 -0.250000 -0.500000 -v 0.500000 0.250000 -0.500000 -v -0.187500 -0.187500 1.000000 -v -0.187500 0.187500 1.000000 -v 0.187500 -0.187500 1.000000 -v 0.187500 0.187500 1.000000 -v 0.250000 2.183013 0.000000 -v 0.000000 2.250000 0.000000 -v 0.000000 0.250000 -0.500000 -v 0.250000 0.250000 -0.433013 -v 0.433013 0.250000 -0.250000 -v 0.500000 0.250000 0.000000 -v 0.433013 0.250000 0.250000 -v 0.250000 0.250000 0.433013 -v 0.000000 0.250000 0.500000 -v -0.250000 0.250000 0.433013 -v -0.433013 0.250000 0.250000 -v -0.500000 0.250000 0.000000 -v -0.433013 0.250000 -0.250000 -v -0.250000 0.250000 -0.433013 -v 0.433013 2.000000 0.000000 -v 0.500000 1.750000 0.000000 -v -0.433013 1.750000 0.250000 -v 0.433013 1.750000 -0.250000 -v 0.375000 2.000000 -0.216506 -v 0.216506 2.183013 -0.125000 -v -0.500000 1.750000 0.000000 -v -0.433013 2.000000 0.000000 -v -0.250000 2.183012 0.000000 -v -0.375000 2.000000 0.216506 -v -0.216507 2.183012 0.125000 -v -0.250000 1.750000 0.433013 -v 0.250000 1.750000 -0.433013 -v 0.216506 2.000000 -0.375000 -v 0.125000 2.183013 -0.216506 -v -0.216506 2.000000 0.375000 -v -0.125000 2.183012 0.216507 -v 0.000000 1.750000 0.500000 -v -0.000000 1.750000 -0.500000 -v -0.000000 2.000000 -0.433013 -v -0.000000 2.183013 -0.250000 -v 0.000000 2.000000 0.433013 -v 0.000000 2.183012 0.250000 -v 0.250000 1.750000 0.433013 -v -0.250000 1.750000 -0.433013 -v -0.216507 2.000000 -0.375000 -v -0.125000 2.183013 -0.216506 -v 0.216507 2.000000 0.375000 -v 0.125000 2.183012 0.216507 -v 0.433013 1.750000 0.250000 -v -0.433013 1.750000 -0.250000 -v -0.375000 2.000000 -0.216506 -v -0.216507 2.183013 -0.125000 -v 0.375000 2.000000 0.216506 -v 0.216507 2.183012 0.125000 -v 0.000000 -0.250000 -0.650000 -v 0.000000 -0.250000 0.500000 -v 0.125000 -0.283494 -0.650000 -v 0.125000 -0.283494 0.500000 -v 0.216506 -0.375000 -0.650000 -v 0.216506 -0.375000 0.500000 -v 0.250000 -0.500000 -0.650000 -v 0.250000 -0.500000 0.500000 -v 0.216506 -0.625000 -0.650000 -v 0.216506 -0.625000 0.500000 -v 0.125000 -0.716506 -0.650000 -v 0.125000 -0.716506 0.500000 -v 0.000000 -0.750000 -0.650000 -v 0.000000 -0.750000 0.500000 -v -0.125000 -0.716506 -0.650000 -v -0.125000 -0.716506 0.500000 -v -0.216506 -0.625000 -0.650000 -v -0.216506 -0.625000 0.500000 -v -0.250000 -0.500000 -0.650000 -v -0.250000 -0.500000 0.500000 -v -0.216506 -0.375000 -0.650000 -v -0.216506 -0.375000 0.500000 -v -0.125000 -0.283494 -0.650000 -v -0.125000 -0.283494 0.500000 -v 0.106250 -0.315970 0.650000 -v -0.000000 -0.287500 0.650000 -v 0.184030 -0.393750 0.650000 -v 0.212500 -0.500000 0.650000 -v 0.184030 -0.606250 0.650000 -v 0.106250 -0.684030 0.650000 -v 0.000000 -0.712500 0.650000 -v -0.106250 -0.684030 0.650000 -v -0.184030 -0.606250 0.650000 -v -0.212500 -0.500000 0.650000 -v -0.184030 -0.393750 0.650000 -v -0.106250 -0.315970 0.650000 -v -0.300000 -0.500000 0.300000 -v -0.400000 -0.250000 0.400000 -v -0.300000 -0.500000 0.250000 -v -0.400000 -0.250000 0.150000 -v 0.300000 -0.500000 0.300000 -v 0.400000 -0.250000 0.400000 -v 0.300000 -0.500000 0.250000 -v 0.400000 -0.250000 0.150000 -v -0.300000 -0.500000 -0.250000 -v -0.400000 -0.250000 -0.150000 -v -0.300000 -0.500000 -0.300000 -v -0.400000 -0.250000 -0.400000 -v 0.300000 -0.500000 -0.250000 -v 0.400000 -0.250000 -0.150000 -v 0.300000 -0.500000 -0.300000 -v 0.400000 -0.250000 -0.400000 -vt 0.192029 0.192029 -vt 0.192029 0.280351 -vt 0.015385 0.280351 -vt 0.368673 0.192029 -vt 0.368673 0.280351 -vt 0.545317 0.192029 -vt 0.545317 0.280351 -vt 0.807971 0.378738 -vt 0.807971 0.290416 -vt 0.984615 0.290416 -vt 0.368673 0.456995 -vt 0.192029 0.015385 -vt 0.680241 0.170636 -vt 0.680241 0.104395 -vt 0.746483 0.104395 -vt 0.801684 0.259645 -vt 0.625040 0.259645 -vt 0.625040 0.015385 -vt 0.801684 0.015385 -vt 0.576088 0.181676 -vt 0.564012 0.487768 -vt 0.564011 0.752734 -vt 0.518292 0.752734 -vt 0.472573 0.752733 -vt 0.472575 0.487768 -vt 0.426855 0.752733 -vt 0.426856 0.487767 -vt 0.381136 0.752733 -vt 0.381137 0.487767 -vt 0.335417 0.752733 -vt 0.278268 0.843295 -vt 0.266839 0.887562 -vt 0.255409 0.843295 -vt 0.247042 0.798349 -vt 0.286636 0.798349 -vt 0.243980 0.752733 -vt 0.323987 0.843296 -vt 0.312557 0.887563 -vt 0.301128 0.843296 -vt 0.292761 0.798349 -vt 0.332355 0.798349 -vt 0.289698 0.752733 -vt 0.369706 0.843296 -vt 0.358276 0.887563 -vt 0.346847 0.843296 -vt 0.403995 0.887563 -vt 0.392565 0.843296 -vt 0.415425 0.843296 -vt 0.449713 0.887563 -vt 0.438284 0.843296 -vt 0.461143 0.843296 -vt 0.484003 0.843296 -vt 0.506862 0.843296 -vt 0.495432 0.887563 -vt 0.529722 0.843296 -vt 0.552581 0.843296 -vt 0.541151 0.887563 -vt 0.049674 0.843295 -vt 0.038244 0.887562 -vt 0.026815 0.843295 -vt 0.095393 0.843295 -vt 0.083963 0.887562 -vt 0.072534 0.843295 -vt 0.141112 0.843295 -vt 0.129682 0.887562 -vt 0.118253 0.843295 -vt 0.163971 0.843295 -vt 0.186831 0.843295 -vt 0.175401 0.887562 -vt 0.232550 0.843295 -vt 0.221120 0.887563 -vt 0.209690 0.843295 -vt 0.201323 0.798349 -vt 0.198261 0.752732 -vt 0.240917 0.798349 -vt 0.195198 0.798348 -vt 0.155604 0.798348 -vt 0.109886 0.798348 -vt 0.106823 0.752732 -vt 0.152542 0.752732 -vt 0.149479 0.798348 -vt 0.064167 0.798348 -vt 0.103760 0.798348 -vt 0.061104 0.752732 -vt 0.018448 0.798348 -vt 0.058041 0.798348 -vt 0.015385 0.752732 -vt 0.521355 0.798350 -vt 0.560948 0.798350 -vt 0.475636 0.798350 -vt 0.515230 0.798350 -vt 0.429917 0.798349 -vt 0.469511 0.798349 -vt 0.423792 0.798349 -vt 0.338480 0.798349 -vt 0.378073 0.798349 -vt 0.384198 0.798349 -vt 0.015386 0.487766 -vt 0.061105 0.487766 -vt 0.289699 0.487767 -vt 0.198262 0.487767 -vt 0.152543 0.487766 -vt 0.746483 0.170636 -vt 0.850636 0.093354 -vt 0.622041 0.762079 -vt 0.622041 0.739219 -vt 0.825182 0.739220 -vt 0.622041 0.716360 -vt 0.825182 0.716360 -vt 0.622041 0.693501 -vt 0.825182 0.693501 -vt 0.622041 0.670641 -vt 0.825182 0.670642 -vt 0.622041 0.647782 -vt 0.825182 0.647782 -vt 0.622041 0.624922 -vt 0.825182 0.624923 -vt 0.622042 0.602063 -vt 0.825182 0.602064 -vt 0.622042 0.579204 -vt 0.825182 0.579204 -vt 0.622042 0.556344 -vt 0.825182 0.556345 -vt 0.622042 0.533485 -vt 0.825182 0.533486 -vt 0.594783 0.691786 -vt 0.594783 0.672356 -vt 0.622042 0.510625 -vt 0.622042 0.487766 -vt 0.825183 0.487767 -vt 0.825182 0.510626 -vt 0.911978 0.846936 -vt 0.838096 0.866733 -vt 0.857892 0.792850 -vt 0.855953 0.514308 -vt 0.882496 0.487766 -vt 0.928469 0.533739 -vt 0.594784 0.508911 -vt 0.594783 0.760364 -vt 0.594783 0.740934 -vt 0.594783 0.714646 -vt 0.594783 0.695215 -vt 0.594784 0.531770 -vt 0.594784 0.512340 -vt 0.594783 0.737505 -vt 0.594784 0.554630 -vt 0.594784 0.535199 -vt 0.594783 0.577489 -vt 0.594784 0.558059 -vt 0.594783 0.600348 -vt 0.594783 0.623208 -vt 0.594783 0.603777 -vt 0.594783 0.646067 -vt 0.594783 0.626637 -vt 0.594783 0.668927 -vt 0.594783 0.649496 -vt 0.576088 0.320315 -vt 0.623651 0.337979 -vt 0.623651 0.346811 -vt 0.747302 0.290416 -vt 0.729637 0.337979 -vt 0.777200 0.364476 -vt 0.729637 0.346811 -vt 0.605986 0.394374 -vt 0.594783 0.822748 -vt 0.642346 0.840413 -vt 0.642346 0.849245 -vt 0.765997 0.792850 -vt 0.748332 0.840413 -vt 0.795895 0.866909 -vt 0.748332 0.849245 -vt 0.624682 0.896808 -vt 0.015385 0.192029 -vt 0.984615 0.378738 -vt 0.192029 0.456995 -vt 0.368673 0.015385 -vt 0.576088 0.093354 -vt 0.518293 0.487768 -vt 0.335418 0.487767 -vt 0.106824 0.487766 -vt 0.243980 0.487767 -vt 0.850636 0.181676 -vt 0.825182 0.762079 -vt 0.880752 0.792850 -vt 0.900549 0.804280 -vt 0.911978 0.824077 -vt 0.900549 0.866733 -vt 0.880752 0.878162 -vt 0.857892 0.878162 -vt 0.826666 0.846936 -vt 0.826666 0.824076 -vt 0.838096 0.804280 -vt 0.918754 0.550566 -vt 0.865668 0.550566 -vt 0.901926 0.560282 -vt 0.882496 0.560281 -vt 0.855953 0.533739 -vt 0.865669 0.497481 -vt 0.901926 0.487766 -vt 0.918754 0.497481 -vt 0.928469 0.514309 -vt 0.594784 0.489480 -vt 0.594783 0.718075 -vt 0.594783 0.580918 -vt 0.576088 0.364476 -vt 0.605986 0.290416 -vt 0.777200 0.320315 -vt 0.747302 0.394374 -vt 0.594783 0.866909 -vt 0.624682 0.792850 -vt 0.795895 0.822748 -vt 0.765997 0.896808 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.992300 0.124000 -vn 0.000000 -0.992300 0.124000 -vn -0.848000 0.000000 0.530000 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn -0.069200 0.963600 0.258200 -vn -0.186200 0.694700 0.694700 -vn -0.250600 0.250600 0.935100 -vn 0.069200 0.963600 0.258200 -vn 0.186200 0.694700 0.694700 -vn 0.250600 0.250600 0.935100 -vn 0.189000 0.963600 0.189000 -vn 0.258200 0.963600 0.069200 -vn 0.258200 0.963600 -0.069200 -vn 0.189000 0.963600 -0.189000 -vn 0.069200 0.963600 -0.258200 -vn -0.069200 0.963600 -0.258200 -vn -0.189000 0.963600 -0.189000 -vn -0.258200 0.963600 -0.069200 -vn -0.258200 0.963600 0.069200 -vn -0.189000 0.963600 0.189000 -vn -0.508600 0.694700 0.508600 -vn -0.684600 0.250600 0.684600 -vn -0.694700 0.694700 0.186200 -vn -0.935100 0.250600 0.250600 -vn -0.694700 0.694700 -0.186200 -vn -0.935100 0.250600 -0.250600 -vn -0.508600 0.694700 -0.508600 -vn -0.684600 0.250600 -0.684500 -vn -0.186200 0.694700 -0.694700 -vn -0.250600 0.250600 -0.935100 -vn 0.186200 0.694700 -0.694700 -vn 0.250600 0.250600 -0.935100 -vn 0.508600 0.694700 -0.508600 -vn 0.684600 0.250600 -0.684500 -vn 0.694700 0.694700 -0.186200 -vn 0.935100 0.250600 -0.250600 -vn 0.694700 0.694700 0.186200 -vn 0.508600 0.694700 0.508600 -vn 0.684600 0.250600 0.684500 -vn 0.935100 0.250600 0.250600 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.258800 -0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 -0.000000 0.707100 -vn -0.965900 -0.000000 0.258800 -vn -0.965900 -0.000000 -0.258800 -vn 0.848000 0.000000 0.530000 -vn 0.258800 0.965900 -0.000000 -vn 0.707100 0.707100 -0.000000 -vn 0.965900 0.258800 -0.000000 -vn 0.965900 -0.258800 0.000000 -vn 0.707100 -0.707100 0.000000 -vn 0.258800 -0.965900 0.000000 -vn -0.258800 -0.965900 0.000000 -vn -0.707100 -0.707100 0.000000 -vn -0.965900 -0.258800 0.000000 -vn -0.965900 0.258800 -0.000000 -vn 0.938900 -0.251600 0.234700 -vn -0.258800 0.965900 -0.000000 -vn -0.707100 0.707100 -0.000000 -vn -0.251600 0.938900 0.234700 -vn 0.251600 0.938900 0.234700 -vn 0.938900 0.251600 0.234700 -vn -0.687400 0.687300 0.234700 -vn 0.687400 0.687300 0.234700 -vn -0.938900 0.251600 0.234700 -vn -0.938900 -0.251600 0.234700 -vn -0.687300 -0.687400 0.234700 -vn -0.251600 -0.938900 0.234700 -vn 0.251600 -0.938900 0.234700 -vn 0.687300 -0.687300 0.234700 -vn -0.928500 -0.371400 0.000000 -vn 0.000000 -0.371400 -0.928500 -vn 0.928500 -0.371400 0.000000 -vn 0.000000 -0.371400 0.928500 -vn 0.684600 0.250600 -0.684600 -vn 0.684600 0.250600 0.684600 -vn 0.687300 0.687400 0.234700 -vn 0.687300 -0.687400 0.234700 -s off -f 4/1/1 3/2/1 1/3/1 -f 8/4/2 7/5/2 3/2/2 -f 6/6/3 5/7/3 7/5/3 -f 2/8/4 1/9/4 5/10/4 -f 3/2/5 7/5/5 5/11/5 -f 8/4/6 4/1/6 2/12/6 -f 10/13/4 9/14/4 11/15/4 -f 6/16/7 2/17/7 10/13/7 -f 1/18/8 5/19/8 11/15/8 -f 9/14/9 10/13/9 2/20/9 -f 15/21/10 45/22/10 39/23/10 -f 39/23/11 30/24/11 17/25/11 -f 17/25/12 30/24/12 28/26/12 -f 18/27/13 28/26/13 56/28/13 -f 19/29/14 56/28/14 50/30/14 -f 49/31/15 14/32/15 43/33/15 -f 49/31/16 43/33/16 42/34/16 -f 48/35/17 42/34/17 38/36/17 -f 55/37/18 14/38/18 49/39/18 -f 48/40/19 54/41/19 55/37/19 -f 44/42/20 50/30/20 54/41/20 -f 61/43/21 14/44/21 55/45/21 -f 14/46/22 61/47/22 13/48/22 -f 14/49/23 13/50/23 32/51/23 -f 32/52/24 41/53/24 14/54/24 -f 41/55/25 47/56/25 14/57/25 -f 53/58/26 14/59/26 47/60/26 -f 59/61/27 14/62/27 53/63/27 -f 35/64/28 14/65/28 59/66/28 -f 35/67/29 37/68/29 14/69/29 -f 43/70/30 14/71/30 37/72/30 -f 43/70/31 37/72/31 36/73/31 -f 29/74/32 38/36/32 42/75/32 -f 36/76/33 37/68/33 35/67/33 -f 29/74/34 36/76/34 34/77/34 -f 35/64/35 59/66/35 58/78/35 -f 57/79/36 33/80/36 34/81/36 -f 53/63/37 52/82/37 58/83/37 -f 52/82/38 51/84/38 57/79/38 -f 47/60/39 46/85/39 52/86/39 -f 46/85/40 45/87/40 51/84/40 -f 41/55/41 40/88/41 46/89/41 -f 40/88/42 39/23/42 45/22/42 -f 32/52/43 31/90/43 40/91/43 -f 31/90/44 30/24/44 39/23/44 -f 32/51/45 13/50/45 27/92/45 -f 28/26/46 30/24/46 31/93/46 -f 27/94/47 13/48/47 61/47/47 -f 54/95/48 60/96/48 61/43/48 -f 50/30/49 56/28/49 60/96/49 -f 28/26/50 27/94/50 60/97/50 -f 45/87/51 15/98/51 26/99/51 -f 57/79/52 51/84/52 26/99/52 -f 50/30/53 44/42/53 21/100/53 -f 21/100/54 44/42/54 38/36/54 -f 38/36/55 29/74/55 23/101/55 -f 29/74/56 33/80/56 24/102/56 -f 24/102/57 33/80/57 57/79/57 -f 12/103/58 11/15/58 5/104/58 -f 63/105/59 65/106/59 64/107/59 -f 65/106/60 67/108/60 66/109/60 -f 67/108/61 69/110/61 68/111/61 -f 69/110/62 71/112/62 70/113/62 -f 71/112/63 73/114/63 72/115/63 -f 73/114/64 75/116/64 74/117/64 -f 75/116/65 77/118/65 76/119/65 -f 77/118/66 79/120/66 78/121/66 -f 79/120/67 81/122/67 80/123/67 -f 81/122/68 83/124/68 82/125/68 -f 69/110/69 89/126/69 90/127/69 -f 85/128/70 63/129/70 62/130/70 -f 83/124/71 85/128/71 84/131/71 -f 68/132/2 76/133/2 84/134/2 -f 94/135/4 92/136/4 88/137/4 -f 63/129/72 85/128/72 97/138/72 -f 63/105/73 87/139/73 86/140/73 -f 67/108/74 88/141/74 89/142/74 -f 83/124/75 96/143/75 97/144/75 -f 67/108/76 65/106/76 86/145/76 -f 81/122/77 95/146/77 96/147/77 -f 79/120/78 94/148/78 95/149/78 -f 79/120/79 77/118/79 93/150/79 -f 75/116/80 92/151/80 93/152/80 -f 73/114/81 91/153/81 92/154/81 -f 71/112/82 90/155/82 91/156/82 -f 101/157/83 100/158/83 98/159/83 -f 105/160/84 104/161/84 100/158/84 -f 103/162/85 102/163/85 104/161/85 -f 99/164/86 98/159/86 102/163/86 -f 100/158/5 104/161/5 102/163/5 -f 109/165/83 108/166/83 106/167/83 -f 113/168/84 112/169/84 108/166/84 -f 111/170/85 110/171/85 112/169/85 -f 107/172/86 106/167/86 110/171/86 -f 108/166/5 112/169/5 110/171/5 -f 2/173/1 4/1/1 1/3/1 -f 4/1/2 8/4/2 3/2/2 -f 8/4/3 6/6/3 7/5/3 -f 6/174/4 2/8/4 5/10/4 -f 1/175/5 3/2/5 5/11/5 -f 6/176/6 8/4/6 2/12/6 -f 12/103/4 10/13/4 11/15/4 -f 12/103/7 6/16/7 10/13/7 -f 9/14/8 1/18/8 11/15/8 -f 1/177/9 9/14/9 2/20/9 -f 16/178/10 15/21/10 39/23/10 -f 16/178/11 39/23/11 17/25/11 -f 18/27/12 17/25/12 28/26/12 -f 19/29/13 18/27/13 56/28/13 -f 20/179/14 19/29/14 50/30/14 -f 48/35/16 49/31/16 42/34/16 -f 44/42/17 48/35/17 38/36/17 -f 49/39/19 48/40/19 55/37/19 -f 48/40/20 44/42/20 54/41/20 -f 42/75/31 43/70/31 36/73/31 -f 36/73/32 29/74/32 42/75/32 -f 34/77/33 36/76/33 35/67/33 -f 33/80/34 29/74/34 34/77/34 -f 34/81/35 35/64/35 58/78/35 -f 58/78/36 57/79/36 34/81/36 -f 59/61/37 53/63/37 58/83/37 -f 58/83/38 52/82/38 57/79/38 -f 53/58/39 47/60/39 52/86/39 -f 52/86/40 46/85/40 51/84/40 -f 47/56/41 41/55/41 46/89/41 -f 46/89/42 40/88/42 45/22/42 -f 41/53/43 32/52/43 40/91/43 -f 40/91/87 31/90/87 39/23/87 -f 31/93/45 32/51/45 27/92/45 -f 27/92/46 28/26/46 31/93/46 -f 60/97/47 27/94/47 61/47/47 -f 55/45/48 54/95/48 61/43/48 -f 54/95/88 50/30/88 60/96/88 -f 56/28/50 28/26/50 60/97/50 -f 51/84/51 45/87/51 26/99/51 -f 25/180/52 57/79/52 26/99/52 -f 20/179/53 50/30/53 21/100/53 -f 22/181/54 21/100/54 38/36/54 -f 22/181/55 38/36/55 23/101/55 -f 23/101/56 29/74/56 24/102/56 -f 25/180/57 24/102/57 57/79/57 -f 6/182/58 12/103/58 5/104/58 -f 62/183/59 63/105/59 64/107/59 -f 64/107/60 65/106/60 66/109/60 -f 66/109/61 67/108/61 68/111/61 -f 68/111/62 69/110/62 70/113/62 -f 70/113/63 71/112/63 72/115/63 -f 72/115/64 73/114/64 74/117/64 -f 74/117/65 75/116/65 76/119/65 -f 76/119/66 77/118/66 78/121/66 -f 78/121/67 79/120/67 80/123/67 -f 80/123/68 81/122/68 82/125/68 -f 71/112/69 69/110/69 90/127/69 -f 84/131/70 85/128/70 62/130/70 -f 82/125/71 83/124/71 84/131/71 -f 84/134/2 62/184/2 64/185/2 -f 64/185/2 66/186/2 84/134/2 -f 68/132/2 70/187/2 72/188/2 -f 72/188/2 74/189/2 68/132/2 -f 76/133/2 78/190/2 80/191/2 -f 80/191/2 82/192/2 84/134/2 -f 84/134/2 66/186/2 68/132/2 -f 68/132/2 74/189/2 76/133/2 -f 76/133/2 80/191/2 84/134/2 -f 88/137/4 86/193/4 96/194/4 -f 87/195/4 97/196/4 96/194/4 -f 96/194/4 95/197/4 94/135/4 -f 94/135/4 93/198/4 92/136/4 -f 92/136/4 91/199/4 88/137/4 -f 90/200/4 89/201/4 88/137/4 -f 86/193/4 87/195/4 96/194/4 -f 96/194/4 94/135/4 88/137/4 -f 91/199/4 90/200/4 88/137/4 -f 87/202/72 63/129/72 97/138/72 -f 65/106/73 63/105/73 86/140/73 -f 69/110/74 67/108/74 89/142/74 -f 85/128/75 83/124/75 97/144/75 -f 88/203/89 67/108/89 86/145/89 -f 83/124/77 81/122/77 96/147/77 -f 81/122/78 79/120/78 95/149/78 -f 94/204/79 79/120/79 93/150/79 -f 77/118/80 75/116/80 93/152/80 -f 75/116/81 73/114/81 92/154/81 -f 73/114/90 71/112/90 91/156/90 -f 99/205/83 101/157/83 98/159/83 -f 101/206/84 105/160/84 100/158/84 -f 105/207/85 103/162/85 104/161/85 -f 103/208/86 99/164/86 102/163/86 -f 98/159/5 100/158/5 102/163/5 -f 107/209/83 109/165/83 106/167/83 -f 109/210/84 113/168/84 108/166/84 -f 113/211/85 111/170/85 112/169/85 -f 111/212/86 107/172/86 110/171/86 -f 106/167/5 108/166/5 110/171/5 diff --git a/src/main/resources/assets/hbm/models/cwis_rotor.obj b/src/main/resources/assets/hbm/models/cwis_rotor.obj deleted file mode 100644 index 07d783822..000000000 --- a/src/main/resources/assets/hbm/models/cwis_rotor.obj +++ /dev/null @@ -1,202 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'cwis_rotor.blend' -# www.blender.org -o Cylinder.001 -v 0.000000 0.250000 -1.000000 -v 0.000000 0.375000 -1.000000 -v 0.500000 0.250000 -0.866025 -v 0.500000 0.375000 -0.866025 -v 0.866025 0.250000 -0.500000 -v 0.866025 0.375000 -0.500000 -v 1.000000 0.250000 0.000000 -v 1.000000 0.375000 0.000000 -v 0.866025 0.250000 0.500000 -v 0.866025 0.375000 0.500000 -v 0.500000 0.250000 0.866025 -v 0.500000 0.375000 0.866025 -v 0.000000 0.250000 1.000000 -v 0.000000 0.375000 1.000000 -v -0.500000 0.250000 0.866026 -v -0.500000 0.375000 0.866026 -v -0.866025 0.250000 0.500000 -v -0.866025 0.375000 0.500000 -v -1.000000 0.250000 0.000000 -v -1.000000 0.375000 0.000000 -v -0.866026 0.250000 -0.499999 -v -0.866026 0.375000 -0.499999 -v -0.500001 0.250000 -0.866025 -v -0.500001 0.375000 -0.866025 -v 0.500000 0.375000 0.500000 -v 0.850000 0.375000 0.500000 -v 0.500000 0.375000 -0.500000 -v 0.850000 0.375000 -0.500000 -v 0.500000 1.875000 -0.325000 -v 0.500000 1.875000 0.325000 -v 0.850000 1.875000 0.325000 -v 0.850000 1.875000 -0.325000 -v -0.850000 0.375000 0.500000 -v -0.500000 0.375000 0.500000 -v -0.850000 0.375000 -0.500000 -v -0.500000 0.375000 -0.500000 -v -0.850000 1.875000 -0.325000 -v -0.850000 1.875000 0.325000 -v -0.500000 1.875000 0.325000 -v -0.500000 1.875000 -0.325000 -vt 0.447419 0.884668 -vt 0.375998 0.884668 -vt 0.375998 0.867421 -vt 0.304576 0.884668 -vt 0.304576 0.867421 -vt 0.233155 0.884668 -vt 0.233155 0.867421 -vt 0.161734 0.884668 -vt 0.161734 0.867421 -vt 0.090312 0.884668 -vt 0.090312 0.867421 -vt 0.018891 0.884668 -vt 0.018891 0.867421 -vt 0.485201 0.867421 -vt 0.556623 0.867421 -vt 0.556623 0.884668 -vt 0.628044 0.867421 -vt 0.628044 0.884668 -vt 0.699465 0.867421 -vt 0.699465 0.884668 -vt 0.770886 0.867421 -vt 0.770886 0.884668 -vt 0.054602 0.793928 -vt 0.116454 0.563091 -vt 0.285439 0.732075 -vt 0.842308 0.867421 -vt 0.913729 0.867421 -vt 0.913729 0.884668 -vt 0.842308 0.884668 -vt 0.589769 0.732075 -vt 0.323221 0.660654 -vt 0.420785 0.563091 -vt 0.274146 0.227258 -vt 0.274146 0.316942 -vt 0.225854 0.316942 -vt 0.774146 0.227258 -vt 0.774146 0.316942 -vt 0.725854 0.316942 -vt 0.518891 0.203112 -vt 0.725854 0.227258 -vt 0.725854 0.525308 -vt 0.774146 0.018891 -vt 0.981109 0.341087 -vt 0.018891 0.203112 -vt 0.225854 0.227258 -vt 0.225854 0.525308 -vt 0.274146 0.018891 -vt 0.481109 0.341087 -vt 0.447419 0.867421 -vt 0.485201 0.884668 -vt 0.249728 0.793928 -vt 0.187876 0.829639 -vt 0.116454 0.829638 -vt 0.018891 0.732075 -vt 0.018891 0.660654 -vt 0.054602 0.598801 -vt 0.187876 0.563091 -vt 0.249728 0.598801 -vt 0.285439 0.660654 -vt 0.492206 0.563091 -vt 0.554059 0.598801 -vt 0.589769 0.660654 -vt 0.554059 0.793928 -vt 0.492206 0.829638 -vt 0.420785 0.829638 -vt 0.358932 0.793928 -vt 0.323221 0.732075 -vt 0.358932 0.598801 -vt 0.518891 0.341087 -vt 0.774145 0.525308 -vt 0.725854 0.018891 -vt 0.981109 0.203112 -vt 0.018891 0.341087 -vt 0.274145 0.525308 -vt 0.225854 0.018891 -vt 0.481109 0.203112 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn 0.000000 1.000000 0.000000 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.115900 -0.993300 -vn 0.000000 0.115900 0.993300 -vn 1.000000 0.000000 0.000000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/14/7 16/15/7 15/16/7 -f 16/15/8 18/17/8 17/18/8 -f 18/17/9 20/19/9 19/20/9 -f 20/19/10 22/21/10 21/22/10 -f 22/23/11 14/24/11 6/25/11 -f 24/26/12 2/27/12 1/28/12 -f 22/21/13 24/26/13 23/29/13 -f 7/30/14 19/31/14 23/32/14 -f 39/33/11 40/34/11 37/35/11 -f 31/36/11 32/37/11 29/38/11 -f 25/39/15 30/40/15 29/38/15 -f 27/41/16 29/38/16 32/37/16 -f 26/42/17 31/36/17 30/40/17 -f 28/43/18 32/37/18 31/36/18 -f 33/44/15 38/45/15 37/35/15 -f 35/46/16 37/35/16 40/34/16 -f 34/47/17 39/33/17 38/45/17 -f 36/48/18 40/34/18 39/33/18 -f 1/49/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 13/50/7 14/14/7 15/16/7 -f 15/16/8 16/15/8 17/18/8 -f 17/18/9 18/17/9 19/20/9 -f 19/20/10 20/19/10 21/22/10 -f 6/25/11 4/51/11 2/52/11 -f 2/52/11 24/53/11 22/23/11 -f 22/23/11 20/54/11 18/55/11 -f 18/55/11 16/56/11 14/24/11 -f 14/24/11 12/57/11 10/58/11 -f 10/58/11 8/59/11 6/25/11 -f 6/25/11 2/52/11 22/23/11 -f 22/23/11 18/55/11 14/24/11 -f 14/24/11 10/58/11 6/25/11 -f 23/29/12 24/26/12 1/28/12 -f 21/22/13 22/21/13 23/29/13 -f 23/32/14 1/60/14 3/61/14 -f 3/61/14 5/62/14 7/30/14 -f 7/30/14 9/63/14 11/64/14 -f 11/64/14 13/65/14 15/66/14 -f 15/66/14 17/67/14 19/31/14 -f 19/31/14 21/68/14 23/32/14 -f 23/32/14 3/61/14 7/30/14 -f 7/30/14 11/64/14 15/66/14 -f 15/66/14 19/31/14 7/30/14 -f 38/45/11 39/33/11 37/35/11 -f 30/40/11 31/36/11 29/38/11 -f 27/69/15 25/39/15 29/38/15 -f 28/70/16 27/41/16 32/37/16 -f 25/71/17 26/42/17 30/40/17 -f 26/72/18 28/43/18 31/36/18 -f 35/73/15 33/44/15 37/35/15 -f 36/74/16 35/46/16 40/34/16 -f 33/75/17 34/47/17 38/45/17 -f 34/76/18 36/48/18 39/33/18 diff --git a/src/main/resources/assets/hbm/models/cyclotron.obj b/src/main/resources/assets/hbm/models/cyclotron.obj deleted file mode 100644 index f645eb5bf..000000000 --- a/src/main/resources/assets/hbm/models/cyclotron.obj +++ /dev/null @@ -1,2212 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'zyclotron.blend' -# www.blender.org -o Cube -v 1.500000 0.000000 -1.500000 -v 1.500000 0.000000 1.500000 -v -1.500000 0.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v 1.500001 2.000000 -1.499999 -v 1.499999 2.000000 1.500001 -v -1.500000 2.000000 1.500000 -v -1.500000 2.000000 -1.500000 -v 0.000000 2.000000 -1.375000 -v -0.526190 2.000000 -1.270334 -v -0.972272 2.000000 -0.972272 -v -1.270334 2.000000 -0.526190 -v -1.375000 2.000000 0.000000 -v -1.270334 2.000000 0.526190 -v -0.972272 2.000000 0.972272 -v -0.526190 2.000000 1.270334 -v -0.000000 2.000000 1.375000 -v 0.526190 2.000000 1.270335 -v 0.972272 2.000000 0.972272 -v 1.270334 2.000000 0.526190 -v 1.375000 2.000000 -0.000000 -v 1.270334 2.000000 -0.526190 -v 0.972272 2.000000 -0.972272 -v 0.526189 2.000000 -1.270335 -v -0.526190 6.000000 -1.270334 -v -0.000000 6.000000 -1.375000 -v -0.972272 6.000000 -0.972272 -v -1.270335 6.000000 -0.526190 -v -1.375000 6.000000 0.000000 -v -1.270335 6.000000 0.526190 -v -0.972272 6.000000 0.972272 -v -0.526190 6.000000 1.270334 -v -0.000000 6.000000 1.375000 -v 0.526189 6.000000 1.270335 -v 0.972272 6.000000 0.972272 -v 1.270334 6.000000 0.526190 -v 1.375000 6.000000 -0.000000 -v 1.270334 6.000000 -0.526190 -v 0.972271 6.000000 -0.972272 -v 0.526189 6.000000 -1.270335 -v 0.000000 2.000000 -1.500000 -v -0.750000 2.000000 -1.500000 -v 0.750001 2.000000 -1.500000 -v -1.500000 2.000000 -0.000000 -v -1.500000 2.000000 -0.750000 -v -1.500000 2.000000 0.750000 -v -0.000001 2.000000 1.500000 -v -0.750001 2.000000 1.500000 -v 0.749999 2.000000 1.500000 -v 1.500000 2.000000 0.000001 -v 1.500000 2.000000 0.750001 -v 1.500000 2.000000 -0.749999 -v -0.358766 6.000000 -0.866137 -v -0.000000 6.000000 -0.937500 -v -0.662913 6.000000 -0.662913 -v -0.866137 6.000000 -0.358766 -v -0.937500 6.000000 0.000000 -v -0.866137 6.000000 0.358766 -v -0.662913 6.000000 0.662913 -v -0.358766 6.000000 0.866137 -v -0.000000 6.000000 0.937500 -v 0.358765 6.000000 0.866137 -v 0.662912 6.000000 0.662913 -v 0.866137 6.000000 0.358766 -v 0.937500 6.000000 -0.000000 -v 0.866137 6.000000 -0.358766 -v 0.662912 6.000000 -0.662913 -v 0.358765 6.000000 -0.866137 -v -0.358766 5.850000 -0.866137 -v -0.000000 5.850000 -0.937500 -v -0.662913 5.850000 -0.662913 -v -0.866137 5.850000 -0.358766 -v -0.937500 5.850000 0.000000 -v -0.866137 5.850000 0.358766 -v -0.662913 5.850000 0.662913 -v -0.358766 5.850000 0.866137 -v -0.000000 5.850000 0.937500 -v 0.358765 5.850000 0.866137 -v 0.662912 5.850000 0.662913 -v 0.866137 5.850000 0.358766 -v 0.937500 5.850000 -0.000000 -v 0.866137 5.850000 -0.358766 -v 0.662912 5.850000 -0.662913 -v 0.358765 5.850000 -0.866137 -v 0.866137 5.925000 0.358766 -v 0.662912 5.925000 0.662913 -v -0.866137 5.925000 -0.358766 -v -0.662913 5.925000 -0.662913 -v -1.500000 1.750000 1.500000 -v -1.500000 0.250000 1.500000 -v 1.499999 1.750000 1.500001 -v 1.500000 0.250000 1.500000 -v 1.500000 1.750000 -1.499999 -v 1.500000 0.250000 -1.500000 -v 1.500000 1.750000 1.250001 -v 1.500000 1.750000 -1.249999 -v 1.500000 0.250000 -1.250000 -v 1.500000 0.250000 1.250000 -v 1.500000 0.250000 0.500000 -v 1.500000 1.000000 0.500000 -v 1.500000 0.000000 0.500000 -v 1.500000 1.000000 -0.500000 -v 1.500000 0.000000 -0.500000 -v 1.500000 0.250000 -0.500000 -v 1.350000 1.750000 -1.249999 -v 1.350000 1.750000 1.250001 -v 1.350000 0.250000 -1.250000 -v 1.350000 0.250000 1.250000 -v 1.350000 1.000000 -0.500000 -v 1.350000 1.000000 0.500000 -v 1.350000 0.250000 0.500000 -v 1.350000 0.250000 -0.500000 -v 0.500000 0.000000 -1.500000 -v -1.250000 0.250000 -1.500000 -v 1.250000 0.250000 -1.500000 -v -1.250000 1.750000 -1.500000 -v 1.250000 1.750000 -1.500000 -v 0.500000 0.250000 -1.500000 -v -0.500000 0.000000 -1.500000 -v -0.500000 0.250000 -1.500000 -v 0.500000 1.000000 -1.500000 -v -0.500000 1.000000 -1.500000 -v 1.250000 1.750000 -1.350000 -v -1.250000 1.750000 -1.350000 -v 1.250000 0.250000 -1.350000 -v -1.250000 0.250000 -1.350000 -v -0.500000 0.250000 -1.350000 -v 0.500000 1.000000 -1.350000 -v -0.500000 1.000000 -1.350000 -v 0.500000 0.250000 -1.350000 -v -1.500000 1.750000 -1.250000 -v -1.500000 1.750000 1.250000 -v -1.500000 0.250000 -1.250000 -v -1.500000 0.250000 1.250000 -v -1.500000 0.000000 -0.500000 -v -1.500000 0.250000 -0.500000 -v -1.500000 0.000000 0.500000 -v -1.500000 0.250000 0.500000 -v -1.500000 1.000000 -0.500000 -v -1.500000 1.000000 0.500000 -v -1.350000 1.750000 1.250000 -v -1.350000 1.750000 -1.250000 -v -1.350000 0.250000 -1.250000 -v -1.350000 0.250000 1.250000 -v -1.349999 1.000000 0.500000 -v -1.349999 1.000000 -0.500000 -v -1.350000 0.250000 -0.500000 -v -1.350000 0.250000 0.500000 -v -0.500000 0.000000 1.500000 -v 1.250000 0.250000 1.500000 -v -1.250000 0.250000 1.500000 -v -1.250000 1.750000 1.500000 -v 1.249999 1.750000 1.500000 -v -0.500000 0.250000 1.500000 -v 0.500000 0.000000 1.500000 -v 0.500000 0.250000 1.500000 -v -0.500000 1.000000 1.500000 -v 0.500000 1.000000 1.500000 -v 1.249999 1.750000 1.350000 -v 0.500000 1.000000 1.350000 -v -1.250000 1.750000 1.350000 -v -1.250000 0.250000 1.350000 -v 1.250000 0.250000 1.350000 -v -0.500000 1.000000 1.350000 -v -0.500000 0.250000 1.350000 -v 0.500000 0.250000 1.350000 -v -0.883884 5.750000 0.883884 -v -1.154850 5.750000 0.478354 -v 0.883883 5.750000 -0.883884 -v 1.154849 5.750000 -0.478355 -v -0.478354 5.750000 1.154849 -v 0.478354 5.750000 -1.154850 -v -0.000000 5.750000 1.250000 -v -0.478354 5.750000 -1.154849 -v -0.000000 5.750000 -1.250000 -v 0.478354 5.750000 1.154850 -v -0.883884 5.750000 -0.883884 -v 0.883883 5.750000 0.883884 -v -1.154850 5.750000 -0.478354 -v 1.154849 5.750000 0.478354 -v -1.250000 5.750000 0.000000 -v 1.250000 5.750000 -0.000000 -v -0.526190 5.750000 -1.270334 -v -0.000000 5.750000 -1.375000 -v -0.972272 5.750000 -0.972272 -v -1.270335 5.750000 -0.526190 -v -1.375000 5.750000 0.000000 -v -1.270335 5.750000 0.526190 -v -0.972272 5.750000 0.972272 -v -0.526190 5.750000 1.270334 -v -0.000000 5.750000 1.375000 -v 0.526189 5.750000 1.270335 -v 0.972272 5.750000 0.972272 -v 1.270334 5.750000 0.526190 -v 1.375000 5.750000 -0.000000 -v 1.270334 5.750000 -0.526190 -v 0.972271 5.750000 -0.972272 -v 0.526189 5.750000 -1.270335 -v 1.100000 5.750000 1.000000 -v 1.100000 2.000000 1.000000 -v 1.100000 2.000000 -1.200000 -v 1.100000 5.750000 -1.200000 -v 1.170711 2.000000 -1.170711 -v 1.170711 5.750000 -1.170711 -v 1.200000 2.000000 -1.100000 -v 1.200000 5.750000 -1.100000 -v 1.170711 2.000000 -1.029289 -v 1.170711 5.750000 -1.029289 -v 1.100000 2.000000 -1.000000 -v 1.100000 5.750000 -1.000000 -v 1.029289 2.000000 -1.029289 -v 1.029289 5.750000 -1.029289 -v 1.000000 2.000000 -1.100000 -v 1.000000 5.750000 -1.100000 -v 1.029289 2.000000 -1.170711 -v 1.029289 5.750000 -1.170711 -v 1.170711 2.000000 1.029289 -v 1.170711 5.750000 1.029289 -v 1.200000 2.000000 1.100000 -v 1.200000 5.750000 1.100000 -v 1.170711 2.000000 1.170711 -v 1.170711 5.750000 1.170711 -v 1.100000 2.000000 1.200000 -v 1.100000 5.750000 1.200000 -v 1.029289 2.000000 1.170711 -v 1.029289 5.750000 1.170711 -v 1.000000 2.000000 1.100000 -v 1.000000 5.750000 1.100000 -v 1.029289 2.000000 1.029289 -v 1.029289 5.750000 1.029289 -v -1.100000 5.750000 1.000000 -v -1.100000 2.000000 1.000000 -v -1.029289 2.000000 1.029289 -v -1.029289 5.750000 1.029289 -v -1.000000 2.000000 1.100000 -v -1.000000 5.750000 1.100000 -v -1.029289 2.000000 1.170711 -v -1.029289 5.750000 1.170711 -v -1.100000 2.000000 1.200000 -v -1.100000 5.750000 1.200000 -v -1.170711 2.000000 1.170711 -v -1.170711 5.750000 1.170711 -v -1.200000 2.000000 1.100000 -v -1.200000 5.750000 1.100000 -v -1.170711 2.000000 1.029289 -v -1.170711 5.750000 1.029289 -v -1.100000 5.750000 -1.200000 -v -1.100000 2.000000 -1.200000 -v -1.029289 2.000000 -1.170711 -v -1.029289 5.750000 -1.170711 -v -1.000000 2.000000 -1.100000 -v -1.000000 5.750000 -1.100000 -v -1.029289 2.000000 -1.029289 -v -1.029289 5.750000 -1.029289 -v -1.100000 2.000000 -1.000000 -v -1.100000 5.750000 -1.000000 -v -1.170711 2.000000 -1.029289 -v -1.170711 5.750000 -1.029289 -v -1.200000 2.000000 -1.100000 -v -1.200000 5.750000 -1.100000 -v -1.170711 2.000000 -1.170711 -v -1.170711 5.750000 -1.170711 -v 1.000000 5.975001 -1.000000 -v 0.950000 5.945711 -1.050000 -v 0.929289 5.875000 -1.070711 -v 0.950000 5.804290 -1.050000 -v 1.000000 5.775001 -1.000000 -v 1.050000 5.804290 -0.950000 -v 1.070711 5.875000 -0.929289 -v 1.050000 5.945711 -0.950000 -v 0.879289 5.945711 -0.979289 -v 0.929289 5.975001 -0.929289 -v 0.858579 5.875000 -1.000000 -v 0.879289 5.804290 -0.979289 -v 0.929289 5.775001 -0.929289 -v 0.979289 5.804290 -0.879289 -v 1.000000 5.875000 -0.858578 -v 0.979289 5.945711 -0.879289 -v 1.070711 5.875000 0.929289 -v 1.050000 5.804289 0.950000 -v 1.000000 5.775000 1.000000 -v 0.950000 5.804289 1.050000 -v 0.929289 5.875000 1.070711 -v 0.950000 5.945711 1.050000 -v 1.000000 5.975000 1.000000 -v 1.050000 5.945711 0.950000 -v 0.879289 5.945711 0.979289 -v 0.858578 5.875000 1.000000 -v 0.929289 5.775000 0.929289 -v 0.979289 5.804289 0.879289 -v 0.879289 5.804289 0.979289 -v 1.000000 5.875000 0.858579 -v 0.929289 5.975000 0.929289 -v 0.979289 5.945711 0.879289 -v -0.929289 5.875000 -1.070711 -v -0.950000 5.804289 -1.050000 -v -1.000000 5.775000 -1.000000 -v -1.050000 5.804289 -0.950000 -v -1.070710 5.875000 -0.929289 -v -1.050000 5.945711 -0.950000 -v -1.000000 5.975000 -1.000000 -v -0.950000 5.945711 -1.050000 -v -0.979289 5.945711 -0.879289 -v -1.000000 5.875000 -0.858579 -v -0.929289 5.775000 -0.929289 -v -0.879289 5.804289 -0.979289 -v -0.979289 5.804289 -0.879289 -v -0.858578 5.875000 -1.000000 -v -0.929289 5.975000 -0.929289 -v -0.879289 5.945711 -0.979289 -v -1.000000 5.975000 1.000000 -v -0.950000 5.945711 1.050000 -v -0.929289 5.875000 1.070711 -v -0.950000 5.804289 1.050000 -v -1.000000 5.775000 1.000000 -v -1.050000 5.804289 0.950000 -v -1.070711 5.875000 0.929289 -v -1.050000 5.945711 0.950000 -v -0.979289 5.804289 0.879289 -v -0.929289 5.775000 0.929289 -v -0.858579 5.875000 1.000000 -v -0.879289 5.945711 0.979289 -v -0.879289 5.804289 0.979289 -v -0.929289 5.975000 0.929289 -v -1.000000 5.875000 0.858579 -v -0.979289 5.945711 0.879289 -v -0.883884 2.250000 0.883884 -v -1.154850 2.250000 0.478354 -v 0.883883 2.250000 -0.883884 -v 1.154849 2.250000 -0.478355 -v -0.478354 2.250000 1.154849 -v 0.478354 2.250000 -1.154850 -v -0.000000 2.250000 1.250000 -v -0.478354 2.250000 -1.154849 -v -0.000000 2.250000 -1.250000 -v 0.478354 2.250000 1.154850 -v -0.883884 2.250000 -0.883884 -v 0.883883 2.250000 0.883884 -v -1.154850 2.250000 -0.478354 -v 1.154849 2.250000 0.478354 -v -1.250000 2.250000 0.000000 -v 1.250000 2.250000 -0.000000 -v -0.526190 2.250000 -1.270334 -v 0.000000 2.250000 -1.375000 -v -0.972272 2.250000 -0.972272 -v -1.270334 2.250000 -0.526190 -v -1.375000 2.250000 0.000000 -v -1.270334 2.250000 0.526190 -v -0.972272 2.250000 0.972272 -v -0.526190 2.250000 1.270334 -v -0.000000 2.250000 1.375000 -v 0.526190 2.250000 1.270335 -v 0.972272 2.250000 0.972272 -v 1.270334 2.250000 0.526190 -v 1.375000 2.250000 -0.000000 -v 1.270334 2.250000 -0.526190 -v 0.972272 2.250000 -0.972272 -v 0.526189 2.250000 -1.270335 -v 1.500000 0.656250 -0.156250 -v 1.500000 0.250000 -0.250000 -v 1.500000 0.750000 -0.250000 -v 1.500000 0.250000 0.250000 -v 0.250000 0.750000 1.450000 -v 0.156250 0.656250 1.450000 -v -0.156250 0.343750 1.500000 -v 0.156250 0.343750 1.500000 -v 1.500000 0.750000 0.250000 -v 1.500000 0.343750 -0.156250 -v -0.250000 0.750000 1.450000 -v -0.250000 0.250000 1.450000 -v 0.250000 0.250000 1.450000 -v -0.156250 0.656250 1.450000 -v 0.250000 0.750000 1.500000 -v -0.250000 0.750000 1.500000 -v -0.156250 0.656250 1.500000 -v 0.250000 0.250000 1.500000 -v -0.156250 0.343750 1.450000 -v 0.156250 0.343750 1.450000 -v 0.156250 0.656250 1.500000 -v -0.250000 0.250000 1.500000 -v 1.500000 0.343750 0.156250 -v 1.500000 0.656250 0.156250 -v 1.450000 0.656250 -0.156250 -v 1.450000 0.656250 0.156250 -v 1.450000 0.343750 -0.156250 -v 1.450000 0.343750 0.156250 -v 1.450000 0.250000 -0.250000 -v 1.450000 0.250000 0.250000 -v 1.450000 0.750000 -0.250000 -v 1.450000 0.750000 0.250000 -v 0.250000 0.250000 -1.500000 -v -0.156250 0.343750 -1.500000 -v -0.250000 0.250000 -1.500000 -v 0.156250 0.343750 -1.500000 -v 0.250000 0.750000 -1.500000 -v -0.250000 0.750000 -1.500000 -v 0.156250 0.656250 -1.500000 -v -0.156250 0.656250 -1.500000 -v 0.156250 0.656250 -1.450000 -v -0.156250 0.656250 -1.450000 -v 0.156250 0.343750 -1.450000 -v -0.156250 0.343750 -1.450000 -v 0.250000 0.250000 -1.450000 -v -0.250000 0.250000 -1.450000 -v 0.250000 0.750000 -1.450000 -v -0.250000 0.750000 -1.450000 -v -1.500000 0.250000 -0.250001 -v -1.500000 0.343750 0.156250 -v -1.500000 0.250000 0.250000 -v -1.500000 0.343750 -0.156251 -v -1.500000 0.750000 -0.250001 -v -1.500000 0.750000 0.250000 -v -1.500000 0.656250 -0.156251 -v -1.500000 0.656250 0.156250 -v -1.449999 0.656250 0.156250 -v -1.449999 0.343750 0.156250 -v -1.449999 0.656250 -0.156251 -v -1.449999 0.750000 -0.250001 -v -1.449999 0.750000 0.250000 -v -1.449999 0.250000 0.250000 -v -1.449999 0.250000 -0.250001 -v -1.449999 0.343750 -0.156251 -vt 0.000461 0.950818 -vt 0.000470 0.922808 -vt 0.040543 0.922822 -vt 0.361111 0.875563 -vt 0.321038 0.875563 -vt 0.327413 0.843513 -vt 0.080605 0.903573 -vt 0.040533 0.903573 -vt 0.040533 0.875564 -vt 0.120677 0.903573 -vt 0.080605 0.875564 -vt 0.160749 0.903573 -vt 0.120677 0.875563 -vt 0.200821 0.903573 -vt 0.160749 0.875563 -vt 0.240894 0.903573 -vt 0.200821 0.875563 -vt 0.280966 0.903573 -vt 0.240894 0.875563 -vt 0.321038 0.903572 -vt 0.280966 0.875563 -vt 0.361111 0.903572 -vt 0.401183 0.903572 -vt 0.441256 0.903572 -vt 0.401183 0.875563 -vt 0.481328 0.903572 -vt 0.441255 0.875563 -vt 0.521400 0.903572 -vt 0.481328 0.875563 -vt 0.561472 0.903572 -vt 0.521400 0.875562 -vt 0.601545 0.903572 -vt 0.561472 0.875562 -vt 0.641617 0.903572 -vt 0.601544 0.875562 -vt 0.255335 0.430863 -vt 0.242613 0.466253 -vt 0.250054 0.428675 -vt 0.449535 0.505555 -vt 0.440199 0.505555 -vt 0.432381 0.466253 -vt 0.432381 0.544857 -vt 0.449535 0.393517 -vt 0.449535 0.449536 -vt 0.427127 0.423394 -vt 0.424940 0.418112 -vt 0.419658 0.415924 -vt 0.337497 0.617593 -vt 0.337497 0.608257 -vt 0.376799 0.600439 -vt 0.298195 0.600439 -vt 0.260617 0.418112 -vt 0.298194 0.410671 -vt 0.262805 0.423394 -vt 0.264876 0.432934 -vt 0.225458 0.505555 -vt 0.234795 0.505555 -vt 0.242613 0.544857 -vt 0.225458 0.449536 -vt 0.281478 0.393517 -vt 0.337497 0.393517 -vt 0.337497 0.402853 -vt 0.376799 0.410671 -vt 0.797881 0.890085 -vt 0.787427 0.915324 -vt 0.779665 0.912108 -vt 0.607920 0.843512 -vt 0.635242 0.843512 -vt 0.287341 0.843513 -vt 0.567847 0.843512 -vt 0.595169 0.843512 -vt 0.247269 0.843513 -vt 0.527775 0.843513 -vt 0.555097 0.843513 -vt 0.207196 0.843513 -vt 0.234518 0.843513 -vt 0.487703 0.843513 -vt 0.127052 0.843513 -vt 0.154374 0.843513 -vt 0.167124 0.843513 -vt 0.194446 0.843513 -vt 0.447631 0.843513 -vt 0.086980 0.843514 -vt 0.114302 0.843514 -vt 0.407558 0.843513 -vt 0.434880 0.843513 -vt 0.046908 0.843514 -vt 0.074230 0.843514 -vt 0.367486 0.843513 -vt 0.000461 0.875564 -vt 0.006836 0.843514 -vt 0.034157 0.843514 -vt 0.869755 0.860314 -vt 0.914311 0.890085 -vt 0.557352 0.796015 -vt 0.567806 0.770776 -vt 0.575568 0.773991 -vt 0.805316 0.858886 -vt 0.817198 0.870768 -vt 0.549917 0.827213 -vt 0.538035 0.815332 -vt 0.836006 0.844789 -vt 0.842437 0.860314 -vt 0.519226 0.841310 -vt 0.512796 0.825786 -vt 0.869755 0.843510 -vt 0.485478 0.842589 -vt 0.485478 0.825786 -vt 0.901424 0.855244 -vt 0.894994 0.870768 -vt 0.429040 0.807896 -vt 0.440922 0.796015 -vt 0.460239 0.815332 -vt 0.453809 0.830856 -vt 0.926192 0.878203 -vt 0.430354 0.770506 -vt 0.430468 0.770776 -vt 0.924879 0.915593 -vt 0.924765 0.915323 -vt 0.371218 0.823282 -vt 0.371218 0.795960 -vt 0.379621 0.795960 -vt 0.225458 0.795960 -vt 0.233861 0.795960 -vt 0.233861 0.823282 -vt 0.233861 0.787557 -vt 0.371218 0.787557 -vt 0.233861 0.831685 -vt 0.205864 0.421526 -vt 0.224537 0.421526 -vt 0.224537 0.589584 -vt 0.075153 0.987414 -vt 0.075153 0.976210 -vt 0.159182 0.976210 -vt 0.584251 0.645601 -vt 0.584251 0.477544 -vt 0.602924 0.477544 -vt 0.019134 0.589584 -vt 0.000461 0.589584 -vt 0.000461 0.421526 -vt 0.019134 0.421526 -vt 0.000461 0.393517 -vt 0.224537 0.393517 -vt 0.569989 0.999539 -vt 0.383259 0.999539 -vt 0.383259 0.988335 -vt 0.159182 0.999539 -vt 0.159182 0.988336 -vt 0.215201 0.988336 -vt 0.738046 0.999539 -vt 0.738046 0.988335 -vt 0.794065 0.988335 -vt 0.809250 0.000461 -vt 0.865269 0.000461 -vt 0.865269 0.084489 -vt 0.995980 0.000461 -vt 0.995980 0.168518 -vt 0.939961 0.084489 -vt 0.794065 0.999539 -vt 0.878094 0.988335 -vt 0.569989 0.988335 -vt 0.112499 0.617593 -vt 0.056480 0.617593 -vt 0.000461 0.999539 -vt 0.000461 0.988336 -vt 0.075153 0.988336 -vt 0.075153 0.999539 -vt 0.215201 0.999539 -vt 0.721511 0.878976 -vt 0.721511 0.902318 -vt 0.686499 0.902318 -vt 0.084490 0.951960 -vt 0.140510 0.951960 -vt 0.140510 0.963164 -vt 0.663356 0.951960 -vt 0.663356 0.963164 -vt 0.495300 0.963164 -vt 0.958633 0.842589 -vt 0.902614 0.842589 -vt 0.902614 0.758560 -vt 0.827922 0.758560 -vt 0.827922 0.842589 -vt 0.771903 0.842589 -vt 0.771903 0.674532 -vt 0.958633 0.674532 -vt 0.308568 0.951960 -vt 0.308568 0.963164 -vt 0.719375 0.951960 -vt 0.719375 0.963164 -vt 0.803403 0.951960 -vt 0.803403 0.963163 -vt 0.878094 0.951960 -vt 0.878094 0.963163 -vt 0.084490 0.963164 -vt 0.000461 0.963164 -vt 0.696290 0.149845 -vt 0.612261 0.149845 -vt 0.668281 0.131172 -vt 0.668281 0.093826 -vt 0.696290 0.075153 -vt 0.308565 0.964085 -vt 0.495295 0.964085 -vt 0.495295 0.975289 -vt 0.878094 0.964085 -vt 0.878094 0.975289 -vt 0.803401 0.975289 -vt 0.084489 0.964085 -vt 0.140508 0.964085 -vt 0.140508 0.975289 -vt 0.612261 0.131172 -vt 0.584252 0.149845 -vt 0.584252 0.075153 -vt 0.612262 0.075153 -vt 0.770982 0.674532 -vt 0.714963 0.758560 -vt 0.640270 0.758560 -vt 0.770982 0.842589 -vt 0.714963 0.842589 -vt 0.640270 0.842589 -vt 0.584251 0.842589 -vt 0.084489 0.975289 -vt 0.000461 0.975289 -vt 0.663353 0.964085 -vt 0.663353 0.975289 -vt 0.719372 0.964085 -vt 0.719372 0.975289 -vt 0.612261 0.205864 -vt 0.780319 0.205864 -vt 0.808328 0.224537 -vt 0.308565 0.975289 -vt 0.803401 0.964085 -vt 0.789655 0.477544 -vt 0.808328 0.477544 -vt 0.808328 0.645601 -vt 0.569989 0.987414 -vt 0.569989 0.976210 -vt 0.738046 0.976210 -vt 0.658943 0.449534 -vt 0.658943 0.477544 -vt 0.733636 0.449534 -vt 0.808328 0.449534 -vt 0.225516 0.618514 -vt 0.281536 0.618534 -vt 0.281507 0.702563 -vt 0.356199 0.702588 -vt 0.356228 0.618560 -vt 0.412247 0.618579 -vt 0.738046 0.987414 -vt 0.794065 0.976210 -vt 0.000461 0.987414 -vt 0.000461 0.976210 -vt 0.215201 0.987414 -vt 0.215201 0.976210 -vt 0.383259 0.976210 -vt 0.794065 0.987414 -vt 0.878094 0.976210 -vt 0.640270 0.673611 -vt 0.584251 0.673611 -vt 0.602924 0.645601 -vt 0.159182 0.987414 -vt 0.075153 0.618515 -vt 0.224537 0.767899 -vt 0.149845 0.842591 -vt 0.361111 0.950942 -vt 0.361121 0.922932 -vt 0.401193 0.922946 -vt 0.040533 0.950831 -vt 0.080615 0.922836 -vt 0.401183 0.950956 -vt 0.441265 0.922960 -vt 0.080605 0.950845 -vt 0.120687 0.922849 -vt 0.441256 0.950970 -vt 0.481338 0.922974 -vt 0.160750 0.950873 -vt 0.160759 0.922863 -vt 0.200832 0.922877 -vt 0.120677 0.950859 -vt 0.481328 0.950983 -vt 0.521410 0.922988 -vt 0.200822 0.950887 -vt 0.240904 0.922891 -vt 0.521400 0.950997 -vt 0.561482 0.923001 -vt 0.240894 0.950900 -vt 0.280976 0.922905 -vt 0.561472 0.951011 -vt 0.601554 0.923015 -vt 0.280967 0.950914 -vt 0.321049 0.922919 -vt 0.601545 0.951025 -vt 0.641626 0.923029 -vt 0.321039 0.950928 -vt 0.483162 0.913817 -vt 0.000461 0.903573 -vt 0.639795 0.912729 -vt 0.603366 0.912729 -vt 0.599723 0.912729 -vt 0.563294 0.912729 -vt 0.559651 0.912729 -vt 0.523222 0.912729 -vt 0.519579 0.912729 -vt 0.483149 0.912729 -vt 0.479506 0.912729 -vt 0.443077 0.912730 -vt 0.439434 0.912729 -vt 0.403005 0.912730 -vt 0.399362 0.912730 -vt 0.362932 0.912730 -vt 0.359289 0.912730 -vt 0.322860 0.912730 -vt 0.319217 0.912730 -vt 0.282788 0.912730 -vt 0.279145 0.912730 -vt 0.242715 0.912730 -vt 0.239072 0.912730 -vt 0.202643 0.912730 -vt 0.199000 0.912730 -vt 0.162571 0.912730 -vt 0.158928 0.912730 -vt 0.122499 0.912730 -vt 0.118856 0.912730 -vt 0.082426 0.912730 -vt 0.078783 0.912730 -vt 0.042354 0.912730 -vt 0.038711 0.912730 -vt 0.002282 0.912730 -vt 0.854572 0.540418 -vt 0.848098 0.540441 -vt 0.848098 0.169483 -vt 0.255335 0.415924 -vt 0.482830 0.764540 -vt 0.476355 0.764562 -vt 0.476367 0.393604 -vt 0.828674 0.540507 -vt 0.822199 0.540529 -vt 0.822199 0.169572 -vt 0.516136 0.764607 -vt 0.509662 0.764629 -vt 0.509662 0.393672 -vt 0.469880 0.764584 -vt 0.469893 0.393626 -vt 0.841623 0.540463 -vt 0.835148 0.540485 -vt 0.835148 0.169528 -vt 0.522611 0.764584 -vt 0.516136 0.393649 -vt 0.463406 0.764605 -vt 0.463418 0.393648 -vt 0.828674 0.169550 -vt 0.529086 0.764562 -vt 0.522611 0.393627 -vt 0.456931 0.764627 -vt 0.456943 0.393670 -vt 0.225458 0.393517 -vt 0.535561 0.764540 -vt 0.529086 0.393605 -vt 0.450456 0.764649 -vt 0.450468 0.393692 -vt 0.503187 0.764651 -vt 0.503187 0.393694 -vt 0.542035 0.764518 -vt 0.535561 0.393583 -vt 0.502254 0.764474 -vt 0.495779 0.764496 -vt 0.495791 0.393539 -vt 0.247866 0.423394 -vt 0.489304 0.764518 -vt 0.482842 0.393582 -vt 0.489317 0.393560 -vt 0.841623 0.169505 -vt 0.554985 0.764474 -vt 0.548510 0.764496 -vt 0.548510 0.393539 -vt 0.542035 0.393561 -vt 0.861047 0.540396 -vt 0.854572 0.169461 -vt 0.815724 0.540551 -vt 0.815724 0.169594 -vt 0.809250 0.540573 -vt 0.809250 0.169616 -vt 0.868443 0.540551 -vt 0.861968 0.540573 -vt 0.861968 0.169616 -vt 0.894342 0.540463 -vt 0.887867 0.540485 -vt 0.887867 0.169528 -vt 0.907291 0.540418 -vt 0.900816 0.540440 -vt 0.900816 0.169483 -vt 0.894342 0.169505 -vt 0.250054 0.418112 -vt 0.913766 0.540396 -vt 0.907291 0.169461 -vt 0.874918 0.540529 -vt 0.868443 0.169594 -vt 0.881392 0.540507 -vt 0.881392 0.169550 -vt 0.874918 0.169572 -vt 0.414377 0.418112 -vt 0.393516 0.393517 -vt 0.424940 0.428675 -vt 0.419658 0.430863 -vt 0.410118 0.432934 -vt 0.412189 0.423394 -vt 0.225459 0.617593 -vt 0.250054 0.592998 -vt 0.255335 0.595186 -vt 0.225459 0.561574 -vt 0.247866 0.587717 -vt 0.250054 0.582435 -vt 0.260617 0.592998 -vt 0.281478 0.617593 -vt 0.255335 0.580247 -vt 0.262805 0.587717 -vt 0.264876 0.578176 -vt 0.449535 0.617593 -vt 0.424940 0.592998 -vt 0.427127 0.587717 -vt 0.393516 0.617593 -vt 0.419658 0.595186 -vt 0.414377 0.592998 -vt 0.424940 0.582435 -vt 0.449535 0.561574 -vt 0.419658 0.580247 -vt 0.410118 0.578176 -vt 0.412189 0.587717 -vt 0.438110 0.746694 -vt 0.434057 0.747689 -vt 0.430486 0.742598 -vt 0.438378 0.740984 -vt 0.423490 0.738286 -vt 0.440859 0.735833 -vt 0.416492 0.733975 -vt 0.443344 0.730685 -vt 0.413168 0.728720 -vt 0.433106 0.705319 -vt 0.434728 0.710801 -vt 0.426679 0.711114 -vt 0.438365 0.715211 -vt 0.420912 0.716970 -vt 0.442006 0.719619 -vt 0.415143 0.722824 -vt 0.443938 0.724999 -vt 0.563375 0.466621 -vt 0.563375 0.474840 -vt 0.555906 0.474840 -vt 0.873658 0.639627 -vt 0.879140 0.638005 -vt 0.879453 0.646055 -vt 0.563375 0.458403 -vt 0.555906 0.458403 -vt 0.555906 0.452185 -vt 0.563375 0.503714 -vt 0.555906 0.503714 -vt 0.555906 0.495495 -vt 0.563375 0.481058 -vt 0.563375 0.487276 -vt 0.555906 0.487276 -vt 0.555906 0.481058 -vt 0.555906 0.466621 -vt 0.563375 0.509932 -vt 0.555906 0.509932 -vt 0.563375 0.495495 -vt 0.915033 0.634623 -vt 0.916028 0.638677 -vt 0.910938 0.642247 -vt 0.909323 0.634355 -vt 0.906625 0.649244 -vt 0.904173 0.631874 -vt 0.902315 0.656241 -vt 0.899024 0.629390 -vt 0.897060 0.659565 -vt 0.883551 0.634368 -vt 0.885309 0.651822 -vt 0.887958 0.630728 -vt 0.891164 0.657590 -vt 0.893339 0.628795 -vt 0.563375 0.525290 -vt 0.563375 0.533508 -vt 0.555906 0.533508 -vt 0.563375 0.545944 -vt 0.563375 0.554163 -vt 0.555906 0.554163 -vt 0.563375 0.539726 -vt 0.555906 0.539726 -vt 0.563375 0.562382 -vt 0.555906 0.562382 -vt 0.563375 0.568600 -vt 0.555906 0.568600 -vt 0.555906 0.545944 -vt 0.563375 0.517071 -vt 0.555906 0.517071 -vt 0.555906 0.510853 -vt 0.555906 0.525290 -vt 0.767541 0.913748 -vt 0.768536 0.917801 -vt 0.763446 0.921372 -vt 0.731961 0.925179 -vt 0.726166 0.922925 -vt 0.726166 0.918751 -vt 0.737817 0.930946 -vt 0.731648 0.917130 -vt 0.743672 0.936714 -vt 0.736059 0.913493 -vt 0.761831 0.913480 -vt 0.759133 0.928368 -vt 0.756681 0.910999 -vt 0.754822 0.935366 -vt 0.751532 0.908514 -vt 0.749568 0.938690 -vt 0.740466 0.909852 -vt 0.564296 0.451264 -vt 0.564296 0.445046 -vt 0.571765 0.445046 -vt 0.682764 0.917805 -vt 0.688246 0.916183 -vt 0.688559 0.924233 -vt 0.564296 0.428608 -vt 0.564296 0.422390 -vt 0.571765 0.422390 -vt 0.564296 0.393517 -vt 0.571765 0.393517 -vt 0.571765 0.399735 -vt 0.564296 0.407953 -vt 0.564296 0.399735 -vt 0.571765 0.407953 -vt 0.571765 0.416172 -vt 0.571765 0.428608 -vt 0.571765 0.436827 -vt 0.564296 0.416172 -vt 0.564296 0.436827 -vt 0.724139 0.912802 -vt 0.725134 0.916855 -vt 0.720043 0.920425 -vt 0.718429 0.912533 -vt 0.715731 0.927422 -vt 0.713278 0.910053 -vt 0.711420 0.934420 -vt 0.692657 0.912546 -vt 0.694415 0.930000 -vt 0.697064 0.908906 -vt 0.700270 0.935768 -vt 0.702444 0.906973 -vt 0.706165 0.937743 -vt 0.708130 0.907568 -vt 0.555906 0.393517 -vt 0.563375 0.393517 -vt 0.563375 0.399735 -vt 0.555906 0.445046 -vt 0.563375 0.445046 -vt 0.563375 0.451264 -vt 0.555906 0.428608 -vt 0.555906 0.422390 -vt 0.563375 0.422390 -vt 0.555906 0.436827 -vt 0.563375 0.436827 -vt 0.555906 0.416172 -vt 0.563375 0.416172 -vt 0.555906 0.407953 -vt 0.563375 0.407953 -vt 0.563375 0.428608 -vt 0.555906 0.399735 -vt 0.443090 0.913804 -vt 0.439447 0.913802 -vt 0.362945 0.913776 -vt 0.322873 0.913762 -vt 0.282801 0.913748 -vt 0.279158 0.913747 -vt 0.239086 0.913733 -vt 0.199013 0.913719 -vt 0.158941 0.913705 -vt 0.082439 0.913679 -vt 0.078797 0.913678 -vt 0.002295 0.913651 -vt 0.603379 0.913859 -vt 0.523234 0.913831 -vt 0.563307 0.913845 -vt 0.583330 0.000461 -vt 0.583330 0.392595 -vt 0.546901 0.392595 -vt 0.036890 0.000461 -vt 0.036891 0.392595 -vt 0.000462 0.392596 -vt 0.073319 0.000461 -vt 0.073320 0.392595 -vt 0.109749 0.000461 -vt 0.109749 0.392595 -vt 0.146178 0.000461 -vt 0.146178 0.392595 -vt 0.182607 0.000461 -vt 0.182607 0.392595 -vt 0.219037 0.000461 -vt 0.219036 0.392595 -vt 0.255466 0.000461 -vt 0.255466 0.392595 -vt 0.291895 0.000461 -vt 0.291896 0.392595 -vt 0.328325 0.000461 -vt 0.328325 0.392595 -vt 0.364754 0.000461 -vt 0.364755 0.392595 -vt 0.401183 0.000461 -vt 0.401184 0.392595 -vt 0.437613 0.000461 -vt 0.437613 0.392595 -vt 0.474042 0.000461 -vt 0.474043 0.392595 -vt 0.510471 0.000461 -vt 0.510472 0.392595 -vt 0.546901 0.000461 -vt 0.416903 0.700663 -vt 0.413168 0.700663 -vt 0.413168 0.665651 -vt 0.896067 0.541495 -vt 0.896067 0.545229 -vt 0.858721 0.545229 -vt 0.416903 0.622249 -vt 0.416903 0.618514 -vt 0.440244 0.618514 -vt 0.440244 0.622249 -vt 0.443979 0.622249 -vt 0.443979 0.657261 -vt 0.858721 0.604983 -vt 0.858721 0.601248 -vt 0.896067 0.601248 -vt 0.889064 0.590745 -vt 0.889064 0.555733 -vt 0.865723 0.555733 -vt 0.865723 0.590745 -vt 0.677616 0.533563 -vt 0.714963 0.533563 -vt 0.733636 0.561572 -vt 0.733636 0.477544 -vt 0.714963 0.477544 -vt 0.677616 0.477544 -vt 0.658943 0.561572 -vt 0.416903 0.657261 -vt 0.413168 0.657261 -vt 0.413168 0.622249 -vt 0.899801 0.601248 -vt 0.440244 0.657261 -vt 0.440244 0.660996 -vt 0.416903 0.660996 -vt 0.854986 0.545229 -vt 0.721511 0.870586 -vt 0.686499 0.870586 -vt 0.686499 0.847245 -vt 0.440244 0.665651 -vt 0.440244 0.700663 -vt 0.854065 0.601248 -vt 0.850330 0.601248 -vt 0.850330 0.545229 -vt 0.440244 0.704398 -vt 0.416903 0.704398 -vt 0.850330 0.541495 -vt 0.812984 0.545229 -vt 0.093826 0.477545 -vt 0.075153 0.505555 -vt 0.075153 0.421526 -vt 0.149845 0.393517 -vt 0.131172 0.421526 -vt 0.093826 0.421526 -vt 0.149845 0.421526 -vt 0.131172 0.477545 -vt 0.149845 0.505555 -vt 0.819987 0.555733 -vt 0.819987 0.590745 -vt 0.843328 0.555733 -vt 0.843328 0.590745 -vt 0.812984 0.601248 -vt 0.812984 0.604983 -vt 0.416903 0.665651 -vt 0.416903 0.661917 -vt 0.440244 0.661917 -vt 0.443979 0.665651 -vt 0.443979 0.700663 -vt 0.809250 0.545229 -vt 0.725245 0.878976 -vt 0.725245 0.902318 -vt 0.872737 0.669876 -vt 0.869003 0.669876 -vt 0.869003 0.632530 -vt 0.812984 0.673611 -vt 0.812984 0.669876 -vt 0.686499 0.878976 -vt 0.686499 0.875242 -vt 0.721511 0.875242 -vt 0.858499 0.639532 -vt 0.823487 0.639532 -vt 0.812984 0.632530 -vt 0.823487 0.662874 -vt 0.858499 0.662874 -vt 0.721511 0.906052 -vt 0.686499 0.906052 -vt 0.869003 0.628795 -vt 0.809249 0.632530 -vt 0.682764 0.902318 -vt 0.682764 0.878976 -vt 0.721511 0.847245 -vt 0.725245 0.847245 -vt 0.725245 0.870586 -vt 0.770982 0.903264 -vt 0.767247 0.903264 -vt 0.767247 0.847245 -vt 0.767247 0.843510 -vt 0.729901 0.847245 -vt 0.682764 0.870586 -vt 0.682764 0.847245 -vt 0.584252 0.000461 -vt 0.612262 0.019134 -vt 0.612262 0.000461 -vt 0.780319 0.019134 -vt 0.808328 0.056480 -vt 0.808328 0.112499 -vt 0.736903 0.857749 -vt 0.736903 0.892760 -vt 0.760245 0.857748 -vt 0.760245 0.892760 -vt 0.729901 0.903264 -vt 0.721511 0.874321 -vt 0.686499 0.874321 -vt 0.726166 0.847245 -vt 0.729901 0.906999 -vt 0.686499 0.843510 -vt 0.721511 0.843510 -vt 0.495300 0.951960 -vt 0.412189 0.786636 -vt 0.225458 0.786572 -vt 0.383259 0.987414 -vt 0.612261 0.317903 -vt 0.612261 0.355249 -vt 0.584251 0.373922 -vt 0.696290 0.373922 -vt 0.668280 0.355249 -vt 0.668280 0.317903 -vt 0.612261 0.373922 -vt 0.584251 0.299230 -vt 0.612261 0.299230 -vt 0.584251 0.224537 -vt 0.612261 0.243210 -vt 0.612262 0.429940 -vt 0.612262 0.448613 -vt 0.780319 0.429940 -vt 0.808328 0.336575 -vt 0.780319 0.243210 -vt 0.354735 0.843513 -vt 0.641617 0.875562 -vt 0.260617 0.428675 -vt 0.771903 0.908893 -vt 0.782357 0.883655 -vt 0.314663 0.843513 -vt 0.274591 0.843513 -vt 0.515025 0.843513 -vt 0.474953 0.843513 -vt 0.394808 0.843513 -vt 0.583330 0.777207 -vt 0.572876 0.802445 -vt 0.785999 0.878203 -vt 0.569233 0.807897 -vt 0.810768 0.855244 -vt 0.544465 0.830856 -vt 0.842437 0.843510 -vt 0.512796 0.842589 -vt 0.876185 0.844789 -vt 0.448357 0.827213 -vt 0.479047 0.841310 -vt 0.906875 0.858886 -vt 0.425398 0.802445 -vt 0.414944 0.777206 -vt 0.929835 0.883654 -vt 0.940289 0.908893 -vt 0.379621 0.823282 -vt 0.225458 0.823282 -vt 0.371218 0.831685 -vt 0.205864 0.589584 -vt 0.075153 0.393517 -vt 0.809250 0.168518 -vt 0.939961 0.000461 -vt 0.878094 0.999539 -vt 0.224537 0.617593 -vt 0.168518 0.617593 -vt 0.000461 0.617593 -vt 0.000461 0.951960 -vt 0.612262 0.093826 -vt 0.584251 0.674532 -vt 0.000461 0.964085 -vt 0.789655 0.645601 -vt 0.584251 0.449534 -vt 0.878094 0.987414 -vt 0.808328 0.673611 -vt 0.752309 0.673611 -vt 0.696290 0.673611 -vt 0.075153 0.842591 -vt 0.000461 0.842591 -vt 0.000461 0.767899 -vt 0.000461 0.693207 -vt 0.149845 0.618515 -vt 0.224537 0.693207 -vt 0.000461 0.618514 -vt 0.224537 0.842591 -vt 0.224537 0.618515 -vt 0.641617 0.951039 -vt 0.519591 0.913830 -vt 0.502266 0.393517 -vt 0.554985 0.393517 -vt 0.861047 0.169439 -vt 0.913766 0.169439 -vt 0.414377 0.428675 -vt 0.260617 0.582435 -vt 0.414377 0.582435 -vt 0.428933 0.705319 -vt 0.873658 0.643801 -vt 0.563375 0.452185 -vt 0.563375 0.510853 -vt 0.745847 0.907920 -vt 0.571765 0.451264 -vt 0.682764 0.921979 -vt 0.555906 0.451264 -vt 0.479519 0.913816 -vt 0.403018 0.913790 -vt 0.399375 0.913788 -vt 0.359303 0.913775 -vt 0.319230 0.913761 -vt 0.242729 0.913734 -vt 0.202656 0.913721 -vt 0.162584 0.913707 -vt 0.122512 0.913693 -vt 0.118869 0.913692 -vt 0.042367 0.913665 -vt 0.038724 0.913664 -vt 0.639808 0.913871 -vt 0.559664 0.913844 -vt 0.599736 0.913857 -vt 0.000461 0.000461 -vt 0.858721 0.541495 -vt 0.896067 0.604983 -vt 0.899801 0.545229 -vt 0.854986 0.601248 -vt 0.854065 0.545229 -vt 0.812984 0.541495 -vt 0.850330 0.604983 -vt 0.809250 0.601248 -vt 0.872737 0.632530 -vt 0.869003 0.673611 -vt 0.812984 0.628795 -vt 0.809249 0.669876 -vt 0.770982 0.847245 -vt 0.729901 0.843510 -vt 0.780319 0.000461 -vt 0.808328 0.000461 -vt 0.808328 0.168518 -vt 0.726166 0.903264 -vt 0.767247 0.906999 -vt 0.696290 0.299230 -vt 0.584253 0.448613 -vt 0.808329 0.448613 -vt 0.780319 0.448613 -vt 0.808328 0.280556 -vt 0.808328 0.392594 -vn -0.980800 0.000000 -0.195100 -vn 0.000000 1.000000 0.000000 -vn -0.831500 0.000000 -0.555600 -vn -0.555600 0.000000 -0.831500 -vn -0.195100 0.000000 -0.980800 -vn 0.195100 0.000000 -0.980800 -vn 0.555600 0.000000 -0.831500 -vn 0.831500 0.000000 -0.555600 -vn 0.980800 0.000000 -0.195100 -vn 0.980800 0.000000 0.195100 -vn 0.831500 0.000000 0.555600 -vn 0.555600 0.000000 0.831500 -vn 0.195100 0.000000 0.980800 -vn -0.195100 0.000000 0.980800 -vn -0.555600 0.000000 0.831500 -vn -0.831500 0.000000 0.555600 -vn -0.980800 0.000000 0.195100 -vn 1.000000 -0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -0.000000 -1.000000 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn -0.923900 0.000000 0.382700 -vn 0.923900 0.000000 -0.382700 -vn -0.382700 0.000000 0.923900 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 -0.923900 -vn -0.580700 -0.806900 0.108000 -vn -0.826100 -0.367200 -0.427500 -vn -0.392300 0.362500 -0.845400 -vn 0.252800 0.703100 -0.664600 -vn -0.244600 -0.769100 0.590500 -vn 0.351200 -0.397300 0.847800 -vn 0.853400 0.383100 0.353500 -vn 0.656100 0.704000 -0.271800 -vn 0.653300 0.382700 0.653300 -vn -0.590500 -0.769100 -0.244600 -vn 0.270600 -0.923900 0.270600 -vn -0.653300 -0.382700 -0.653300 -vn -0.270600 0.923900 -0.270600 -vn 0.270600 0.923900 0.270600 -vn 0.653300 -0.382700 0.653300 -vn -0.270600 -0.923900 -0.270600 -vn -0.653300 0.382700 -0.653300 -vn -0.108000 -0.806900 -0.580700 -vn 0.427500 -0.367200 -0.826100 -vn 0.845400 0.362500 -0.392300 -vn 0.664600 0.703100 0.252800 -vn -0.847800 -0.397300 0.351200 -vn -0.353500 0.383100 0.853400 -vn 0.271800 0.704000 0.656100 -vn -0.653300 0.382700 0.653300 -vn 0.653300 0.382700 -0.653300 -vn -0.270600 0.923900 0.270600 -vn 0.653300 -0.382700 -0.653300 -vn 0.270600 -0.923900 -0.270600 -vn 0.270600 0.923900 -0.270600 -vn -0.270600 -0.923900 0.270600 -vn -0.653300 -0.382700 0.653300 -vn 0.108000 -0.806900 0.580700 -vn 0.580700 -0.806900 0.108000 -vn 0.826100 -0.367200 -0.427500 -vn 0.392300 0.362500 -0.845400 -vn -0.427500 -0.367200 0.826100 -vn -0.845400 0.362500 0.392300 -vn -0.664600 0.703100 -0.252700 -vn -0.252800 0.703100 -0.664600 -vn 0.244600 -0.769100 -0.590500 -vn 0.580700 -0.806900 -0.108000 -vn 0.826100 -0.367200 0.427500 -vn 0.392300 0.362500 0.845400 -vn -0.351200 -0.397300 -0.847800 -vn -0.853400 0.383100 -0.353500 -vn -0.656100 0.704000 0.271800 -vn -0.252800 0.703100 0.664600 -vn -0.590500 -0.769100 0.244600 -vn -0.847800 -0.397300 -0.351200 -vn -0.353500 0.383100 -0.853400 -vn 0.271800 0.704000 -0.656100 -vn -0.108000 -0.806900 0.580700 -vn 0.427500 -0.367200 0.826100 -vn 0.845400 0.362500 0.392300 -vn 0.664600 0.703100 -0.252800 -vn -0.580700 -0.806900 -0.108000 -vn -0.244600 -0.769100 -0.590500 -vn 0.351200 -0.397300 -0.847800 -vn 0.853400 0.383100 -0.353500 -vn 0.656100 0.704000 0.271800 -vn -0.826100 -0.367200 0.427500 -vn -0.392300 0.362500 0.845400 -vn 0.252800 0.703100 0.664600 -vn 0.244600 -0.769100 0.590500 -vn 0.590500 -0.769100 0.244600 -vn 0.847800 -0.397300 -0.351200 -vn 0.353500 0.383100 -0.853400 -vn -0.351200 -0.397300 0.847800 -vn -0.853400 0.383100 0.353500 -vn -0.656100 0.704000 -0.271800 -vn -0.271800 0.704000 -0.656100 -vn 0.108000 -0.806900 -0.580700 -vn 0.590500 -0.769100 -0.244600 -vn 0.847800 -0.397300 0.351200 -vn 0.353500 0.383100 0.853400 -vn -0.427500 -0.367200 -0.826100 -vn -0.845400 0.362500 -0.392300 -vn -0.664600 0.703100 0.252800 -vn -0.271800 0.704000 0.656100 -s off -f 13/1/1 347/2/1 346/3/1 -f 36/4/2 37/5/2 65/6/2 -f 185/7/3 186/8/3 28/9/3 -f 183/10/4 185/7/4 27/11/4 -f 184/12/5 183/10/5 25/13/5 -f 198/14/6 184/12/6 26/15/6 -f 197/16/7 198/14/7 40/17/7 -f 196/18/8 197/16/8 39/19/8 -f 195/20/9 196/18/9 38/21/9 -f 194/22/10 195/20/10 37/5/10 -f 193/23/11 194/22/11 36/4/11 -f 192/24/12 193/23/12 35/25/12 -f 191/26/13 192/24/13 34/27/13 -f 190/28/14 191/26/14 33/29/14 -f 189/30/15 190/28/15 32/31/15 -f 188/32/16 189/30/16 31/33/16 -f 187/34/17 188/32/17 30/35/17 -f 232/36/2 14/37/2 245/38/2 -f 50/39/2 21/40/2 20/41/2 -f 22/42/2 21/40/2 50/39/2 -f 6/43/2 51/44/2 219/45/2 -f 6/43/2 221/46/2 223/47/2 -f 41/48/2 9/49/2 24/50/2 -f 10/51/2 9/49/2 41/48/2 -f 237/52/2 16/53/2 235/54/2 -f 235/54/2 16/53/2 15/55/2 -f 44/56/2 13/57/2 12/58/2 -f 14/37/2 13/57/2 44/56/2 -f 46/59/2 245/38/2 14/37/2 -f 16/53/2 237/52/2 48/60/2 -f 47/61/2 17/62/2 16/53/2 -f 18/63/2 17/62/2 47/61/2 -f 15/55/2 14/37/2 232/36/2 -f 73/64/10 72/65/10 87/66/10 -f 30/35/2 58/67/2 57/68/2 -f 37/5/2 38/21/2 66/69/2 -f 31/33/2 59/70/2 58/71/2 -f 38/21/2 39/19/2 67/72/2 -f 32/31/2 60/73/2 59/74/2 -f 40/17/2 68/75/2 67/76/2 -f 32/31/2 33/29/2 61/77/2 -f 25/13/2 53/78/2 54/79/2 -f 26/15/2 54/80/2 68/81/2 -f 33/29/2 34/27/2 62/82/2 -f 27/11/2 55/83/2 53/84/2 -f 35/25/2 63/85/2 62/86/2 -f 28/9/2 56/87/2 55/88/2 -f 35/25/2 36/4/2 64/89/2 -f 29/90/2 57/91/2 56/92/2 -f 76/93/2 78/94/2 72/65/2 -f 81/95/1 80/96/1 85/97/1 -f 58/98/9 74/99/9 73/64/9 -f 66/100/17 82/101/17 81/95/17 -f 59/102/8 75/103/8 74/99/8 -f 67/104/16 83/105/16 82/101/16 -f 60/106/7 76/93/7 75/103/7 -f 68/107/15 84/108/15 83/105/15 -f 61/109/6 77/110/6 76/93/6 -f 53/111/13 69/112/13 70/113/13 -f 54/114/14 70/113/14 84/108/14 -f 62/115/5 78/94/5 77/110/5 -f 88/116/12 71/117/12 69/112/12 -f 86/118/4 79/119/4 78/94/4 -f 85/120/3 86/121/3 63/122/3 -f 56/123/11 87/124/11 88/125/11 -f 81/95/2 83/105/2 70/113/2 -f 88/125/2 87/124/2 86/121/2 -f 87/124/15 72/126/15 79/127/15 -f 71/128/7 88/125/7 85/120/7 -f 97/129/18 94/130/18 93/131/18 -f 157/132/19 164/133/19 165/134/19 -f 89/135/20 90/136/20 151/137/20 -f 95/138/18 91/139/18 92/140/18 -f 98/141/18 92/140/18 2/142/18 -f 94/130/18 97/129/18 1/143/18 -f 96/144/21 95/145/21 106/146/21 -f 99/147/2 111/148/2 108/149/2 -f 97/150/2 107/151/2 112/152/2 -f 108/153/18 111/154/18 110/155/18 -f 107/156/18 105/157/18 109/158/18 -f 110/155/18 109/158/18 105/157/18 -f 104/159/22 112/152/22 109/160/22 -f 96/144/20 105/161/20 107/151/20 -f 50/162/18 51/163/18 95/138/18 -f 102/164/2 109/165/2 110/166/2 -f 100/167/20 110/166/20 111/148/20 -f 98/168/22 108/149/22 106/146/22 -f 398/169/22 397/170/22 394/171/22 -f 120/172/2 114/173/2 126/174/2 -f 115/175/19 125/176/19 123/177/19 -f 125/178/22 130/179/22 128/180/22 -f 129/181/22 127/182/22 126/183/22 -f 124/184/22 123/185/22 128/180/22 -f 116/186/18 124/187/18 126/174/18 -f 118/188/2 130/189/2 125/176/2 -f 121/190/18 128/191/18 130/189/18 -f 122/192/2 129/193/2 128/191/2 -f 120/172/19 127/194/19 129/195/19 -f 139/196/19 136/197/19 411/198/19 -f 411/198/19 412/199/19 140/200/19 -f 132/201/21 131/202/21 142/203/21 -f 140/204/2 145/205/2 146/206/2 -f 138/207/2 134/208/2 144/209/2 -f 407/210/19 135/211/19 137/212/19 -f 138/213/19 140/200/19 412/199/19 -f 142/214/19 146/215/19 145/216/19 -f 143/217/19 147/218/19 146/215/19 -f 145/216/19 148/219/19 144/220/19 -f 138/207/20 148/221/20 145/222/20 -f 133/223/20 143/224/20 142/203/20 -f 136/225/2 147/226/2 143/224/2 -f 133/227/19 131/228/19 8/229/19 -f 132/201/22 141/230/22 144/209/22 -f 139/231/22 146/206/22 147/226/22 -f 150/232/20 92/233/20 91/234/20 -f 153/235/19 159/236/19 163/237/19 -f 149/238/20 154/239/20 151/137/20 -f 150/232/20 155/240/20 2/241/20 -f 162/242/20 165/243/20 164/244/20 -f 160/245/20 166/246/20 163/247/20 -f 150/248/2 163/237/2 166/249/2 -f 158/250/2 160/251/2 164/133/2 -f 151/252/18 162/253/18 161/254/18 -f 156/255/18 166/249/18 160/256/18 -f 48/257/20 7/258/20 152/259/20 -f 154/260/2 165/134/2 162/253/2 -f 137/261/21 113/262/21 103/263/21 -f 20/264/11 354/265/11 353/266/11 -f 12/267/3 346/3/3 345/268/3 -f 19/269/12 353/266/12 352/270/12 -f 11/271/4 345/268/4 343/272/4 -f 18/273/13 352/270/13 351/274/13 -f 9/275/6 344/276/6 358/277/6 -f 10/278/5 343/272/5 344/276/5 -f 17/279/14 351/274/14 350/280/14 -f 24/281/7 358/277/7 357/282/7 -f 16/283/15 350/280/15 349/284/15 -f 23/285/8 357/282/8 356/286/8 -f 15/287/16 349/284/16 348/288/16 -f 22/289/9 356/286/9 355/290/9 -f 14/291/17 348/288/17 347/292/17 -f 21/293/10 355/290/10 354/265/10 -f 350/280/2 351/274/2 333/294/2 -f 186/8/1 187/295/1 29/90/1 -f 181/296/21 168/297/21 188/32/21 -f 168/298/21 167/299/21 189/30/21 -f 167/300/21 171/301/21 190/28/21 -f 171/302/21 173/303/21 191/26/21 -f 173/304/21 176/305/21 192/24/21 -f 176/306/21 178/307/21 193/23/21 -f 178/308/21 180/309/21 194/22/21 -f 194/22/21 180/310/21 182/311/21 -f 182/312/21 170/313/21 196/18/21 -f 196/18/21 170/314/21 169/315/21 -f 197/16/21 169/316/21 172/317/21 -f 172/318/21 175/319/21 184/12/21 -f 184/12/21 175/320/21 174/321/21 -f 183/10/21 174/322/21 177/323/21 -f 185/7/21 177/324/21 179/325/21 -f 186/8/21 179/326/21 181/327/21 -f 236/328/23 238/329/23 237/330/23 -f 239/331/2 48/60/2 237/52/2 -f 202/332/24 204/333/24 203/334/24 -f 244/335/25 246/336/25 245/337/25 -f 226/338/26 228/339/26 227/340/26 -f 204/333/27 206/341/27 205/342/27 -f 240/343/28 242/344/28 241/345/28 -f 224/346/28 226/338/28 225/347/28 -f 206/341/23 208/348/23 207/349/23 -f 242/344/26 244/335/26 243/350/26 -f 222/351/29 224/346/29 223/352/29 -f 208/348/29 210/353/29 209/354/29 -f 7/355/2 48/60/2 239/331/2 -f 220/356/23 222/351/23 221/357/23 -f 210/353/28 212/358/28 211/359/28 -f 228/339/25 230/360/25 229/361/25 -f 218/362/27 220/356/27 219/363/27 -f 212/364/26 214/365/26 213/366/26 -f 243/367/2 245/38/2 46/59/2 -f 216/368/30 202/332/30 201/369/30 -f 214/365/25 216/368/25 215/370/25 -f 238/329/29 240/343/29 239/371/29 -f 230/372/30 199/373/30 200/374/30 -f 199/373/24 218/362/24 217/375/24 -f 234/376/27 236/328/27 235/377/27 -f 246/336/30 231/378/30 232/379/30 -f 231/378/24 234/380/24 233/381/24 -f 252/382/23 254/383/23 253/384/23 -f 260/385/25 262/386/25 261/387/25 -f 256/388/28 258/389/28 257/390/28 -f 258/389/26 260/385/26 259/391/26 -f 7/355/2 241/392/2 243/367/2 -f 254/393/29 256/388/29 255/394/29 -f 250/395/27 252/382/27 251/396/27 -f 262/386/30 247/397/30 248/398/30 -f 247/397/24 250/395/24 249/399/24 -f 223/47/2 225/400/2 49/401/2 -f 219/45/2 51/44/2 217/402/2 -f 51/44/2 20/41/2 217/402/2 -f 217/402/2 20/41/2 200/403/2 -f 200/403/2 20/41/2 19/404/2 -f 49/401/2 225/400/2 18/63/2 -f 225/400/2 227/405/2 18/63/2 -f 19/404/2 18/63/2 227/405/2 -f 8/406/2 261/407/2 248/408/2 -f 8/406/2 45/409/2 259/410/2 -f 259/410/2 45/409/2 257/411/2 -f 248/408/2 249/412/2 42/413/2 -f 42/413/2 249/412/2 10/51/2 -f 45/409/2 12/58/2 257/411/2 -f 257/411/2 12/58/2 255/414/2 -f 249/412/2 251/415/2 10/51/2 -f 11/416/2 10/51/2 251/415/2 -f 255/414/2 12/58/2 11/416/2 -f 5/417/2 203/418/2 205/419/2 -f 5/417/2 43/420/2 201/421/2 -f 201/421/2 43/420/2 215/422/2 -f 205/419/2 207/423/2 52/424/2 -f 52/424/2 207/423/2 22/42/2 -f 43/420/2 24/50/2 215/422/2 -f 207/423/2 209/425/2 22/42/2 -f 23/426/2 22/42/2 209/425/2 -f 215/422/2 24/50/2 213/427/2 -f 213/427/2 24/50/2 23/426/2 -f 212/428/31 267/429/31 266/430/31 -f 214/431/32 266/430/32 265/432/32 -f 216/433/33 265/432/33 264/434/33 -f 202/435/34 264/434/34 263/436/34 -f 212/437/35 210/438/35 268/439/35 -f 210/438/36 208/440/36 269/441/36 -f 208/440/37 206/442/37 270/443/37 -f 206/442/38 204/444/38 263/436/38 -f 269/445/39 270/446/39 278/447/39 -f 230/448/40 228/449/40 282/450/40 -f 268/451/41 276/452/41 275/453/41 -f 266/454/42 274/455/42 273/456/42 -f 263/457/43 264/458/43 271/459/43 -f 270/446/44 263/457/44 272/460/44 -f 268/451/45 269/445/45 277/461/45 -f 267/462/46 275/463/46 274/455/46 -f 265/464/47 273/456/47 271/459/47 -f 230/465/48 281/466/48 280/467/48 -f 199/468/49 280/467/49 279/469/49 -f 218/470/50 279/469/50 286/471/50 -f 220/472/51 286/471/51 285/473/51 -f 228/449/52 226/474/52 283/475/52 -f 226/474/53 224/476/53 284/477/53 -f 224/476/54 222/478/54 285/473/54 -f 283/479/55 284/480/55 287/481/55 -f 286/482/56 279/483/56 292/484/56 -f 284/480/57 285/485/57 293/486/57 -f 279/483/58 280/487/58 290/488/58 -f 281/489/59 289/490/59 290/488/59 -f 286/482/60 294/491/60 293/486/60 -f 282/492/61 291/493/61 289/494/61 -f 283/479/62 288/495/62 291/493/62 -f 254/496/63 297/497/63 298/498/63 -f 296/499/64 297/500/64 254/501/64 -f 295/502/65 296/499/65 252/503/65 -f 302/504/66 295/502/66 250/505/66 -f 256/506/67 298/498/67 299/507/67 -f 258/508/68 299/507/68 300/509/68 -f 260/510/69 300/509/69 301/511/69 -f 301/511/70 302/504/70 247/512/70 -f 297/513/59 296/514/59 306/515/59 -f 234/516/71 231/517/71 316/518/71 -f 302/519/60 301/520/60 309/521/60 -f 297/522/61 305/523/61 307/524/61 -f 299/525/62 298/526/62 307/524/62 -f 299/525/55 304/527/55 303/528/55 -f 302/519/56 310/529/56 308/530/56 -f 301/520/57 300/531/57 303/528/57 -f 295/532/58 308/530/58 306/515/58 -f 234/533/72 315/534/72 314/535/72 -f 236/536/73 314/535/73 313/537/73 -f 238/538/74 313/537/74 312/539/74 -f 231/517/75 246/540/75 317/541/75 -f 246/540/76 244/542/76 318/543/76 -f 244/542/77 242/544/77 311/545/77 -f 240/546/78 312/539/78 311/545/78 -f 315/547/41 320/548/41 323/549/41 -f 316/550/46 319/551/46 320/552/46 -f 318/553/43 311/554/43 324/555/43 -f 317/556/42 325/557/42 319/551/42 -f 311/554/44 312/558/44 322/559/44 -f 312/558/39 313/560/39 321/561/39 -f 318/553/47 326/562/47 325/557/47 -f 313/560/45 314/563/45 323/549/45 -f 351/274/2 352/270/2 336/564/2 -f 336/565/2 352/270/2 353/266/2 -f 353/266/2 354/265/2 340/566/2 -f 354/265/2 355/290/2 342/567/2 -f 355/290/2 356/286/2 330/568/2 -f 330/569/2 356/286/2 357/282/2 -f 329/570/2 357/282/2 358/277/2 -f 332/571/2 358/277/2 344/276/2 -f 335/572/2 344/276/2 343/272/2 -f 343/272/2 345/268/2 337/573/2 -f 337/574/2 345/268/2 346/3/2 -f 346/3/2 347/2/2 341/575/2 -f 347/292/2 348/288/2 328/576/2 -f 349/284/2 350/280/2 331/577/2 -f 348/288/2 349/284/2 327/578/2 -f 341/579/1 181/580/1 179/581/1 -f 328/582/17 168/583/17 181/584/17 -f 327/585/16 167/586/16 168/583/16 -f 331/587/15 171/588/15 167/586/15 -f 333/589/14 173/590/14 171/588/14 -f 336/591/13 176/592/13 173/590/13 -f 338/593/12 178/594/12 176/592/12 -f 340/595/11 180/596/11 178/594/11 -f 342/597/10 182/598/10 180/596/10 -f 330/599/9 170/600/9 182/598/9 -f 329/601/8 169/602/8 170/600/8 -f 332/603/7 172/604/7 169/602/7 -f 335/605/6 175/606/6 172/604/6 -f 334/607/5 174/608/5 175/606/5 -f 337/609/4 177/610/4 174/608/4 -f 339/611/3 179/581/3 177/610/3 -f 382/612/20 384/613/20 386/614/20 -f 376/615/2 371/616/2 370/617/2 -f 365/618/21 377/619/21 378/620/21 -f 366/621/18 378/622/18 364/623/18 -f 374/624/21 369/625/21 363/626/21 -f 363/626/20 364/627/20 378/628/20 -f 371/616/20 378/628/20 377/629/20 -f 369/625/20 372/630/20 364/627/20 -f 369/625/20 370/617/20 377/629/20 -f 374/631/20 373/632/20 158/633/20 -f 156/634/20 373/632/20 376/635/20 -f 155/240/20 376/635/20 380/636/20 -f 374/631/20 157/637/20 154/239/20 -f 375/638/19 372/639/19 377/640/19 -f 373/641/19 363/626/19 371/616/19 -f 379/642/2 364/643/2 372/644/2 -f 380/645/18 370/617/18 369/625/18 -f 413/646/19 410/647/19 408/648/19 -f 366/621/20 379/642/20 375/638/20 -f 368/649/18 359/650/18 382/612/18 -f 361/651/20 389/652/20 387/653/20 -f 359/650/2 383/654/2 384/655/2 -f 360/656/2 387/653/2 388/657/2 -f 367/658/18 100/659/18 99/660/18 -f 103/661/18 360/662/18 362/663/18 -f 104/664/18 361/665/18 360/662/18 -f 367/658/18 361/665/18 102/666/18 -f 388/657/18 386/667/18 384/668/18 -f 388/657/18 387/653/18 385/669/18 -f 383/670/18 385/669/18 387/653/18 -f 383/670/18 389/652/18 390/671/18 -f 367/672/21 390/671/21 389/652/21 -f 381/673/21 386/674/21 385/675/21 -f 368/649/22 385/676/22 383/677/22 -f 362/678/22 388/657/22 390/671/22 -f 398/169/2 400/679/2 399/680/2 -f 393/681/2 404/682/2 403/683/2 -f 396/684/18 406/685/18 404/682/18 -f 392/686/19 402/687/19 400/688/19 -f 403/683/22 401/689/22 399/690/22 -f 401/689/22 403/683/22 404/682/22 -f 406/685/22 405/691/22 399/690/22 -f 406/685/22 400/692/22 402/693/22 -f 397/170/18 399/694/18 401/695/18 -f 391/696/19 403/683/19 405/691/19 -f 395/697/21 405/691/21 406/685/21 -f 394/171/21 401/698/21 402/699/21 -f 414/700/2 415/701/2 417/702/2 -f 412/703/22 419/704/22 420/705/22 -f 409/706/2 420/705/2 421/707/2 -f 410/647/21 422/708/21 416/709/21 -f 135/211/19 136/197/19 133/227/19 -f 137/212/19 3/710/19 134/711/19 -f 134/711/19 3/710/19 90/712/19 -f 132/713/19 46/714/19 44/715/19 -f 421/707/19 422/716/19 417/717/19 -f 416/718/19 422/716/19 421/707/19 -f 420/705/19 419/704/19 415/719/19 -f 419/704/19 418/720/19 417/717/19 -f 413/646/22 417/721/22 422/722/22 -f 407/723/20 421/707/20 418/720/20 -f 411/724/21 418/720/21 419/704/21 -f 408/648/20 416/725/20 415/726/20 -f 124/187/21 116/186/21 117/727/21 -f 159/728/20 161/729/20 164/244/20 -f 153/235/21 152/730/21 161/254/21 -f 393/731/22 391/732/22 113/733/22 -f 121/734/22 395/735/22 396/736/22 -f 118/737/22 391/732/22 395/735/22 -f 393/731/22 119/738/22 120/739/22 -f 119/738/22 4/740/22 114/741/22 -f 113/733/22 118/737/22 115/742/22 -f 94/743/22 115/742/22 117/744/22 -f 41/745/22 117/744/22 116/746/22 -f 114/741/22 4/740/22 8/229/22 -f 12/267/1 13/1/1 346/3/1 -f 64/747/2 36/4/2 65/6/2 -f 27/11/3 185/7/3 28/9/3 -f 25/13/4 183/10/4 27/11/4 -f 26/15/5 184/12/5 25/13/5 -f 40/17/6 198/14/6 26/15/6 -f 39/19/7 197/16/7 40/17/7 -f 38/21/8 196/18/8 39/19/8 -f 37/5/9 195/20/9 38/21/9 -f 36/4/10 194/22/10 37/5/10 -f 35/25/11 193/23/11 36/4/11 -f 34/27/12 192/24/12 35/25/12 -f 33/29/13 191/26/13 34/27/13 -f 32/31/14 190/28/14 33/29/14 -f 31/33/15 189/30/15 32/31/15 -f 30/35/16 188/32/16 31/33/16 -f 29/748/17 187/34/17 30/35/17 -f 51/44/2 50/39/2 20/41/2 -f 52/424/2 22/42/2 50/39/2 -f 221/46/2 6/43/2 219/45/2 -f 49/401/2 6/43/2 223/47/2 -f 43/420/2 41/48/2 24/50/2 -f 42/413/2 10/51/2 41/48/2 -f 233/749/2 235/54/2 15/55/2 -f 45/409/2 44/56/2 12/58/2 -f 46/59/2 14/37/2 44/56/2 -f 48/60/2 47/61/2 16/53/2 -f 49/401/2 18/63/2 47/61/2 -f 233/749/2 15/55/2 232/36/2 -f 87/66/10 56/750/10 57/751/10 -f 57/751/10 73/64/10 87/66/10 -f 29/748/2 30/35/2 57/68/2 -f 65/752/2 37/5/2 66/69/2 -f 30/35/2 31/33/2 58/71/2 -f 66/753/2 38/21/2 67/72/2 -f 31/33/2 32/31/2 59/74/2 -f 39/19/2 40/17/2 67/76/2 -f 60/754/2 32/31/2 61/77/2 -f 26/15/2 25/13/2 54/79/2 -f 40/17/2 26/15/2 68/81/2 -f 61/755/2 33/29/2 62/82/2 -f 25/13/2 27/11/2 53/84/2 -f 34/27/2 35/25/2 62/86/2 -f 27/11/2 28/9/2 55/88/2 -f 63/756/2 35/25/2 64/89/2 -f 28/9/2 29/90/2 56/92/2 -f 72/65/2 73/64/2 74/99/2 -f 74/99/2 75/103/2 76/93/2 -f 76/93/2 77/110/2 78/94/2 -f 78/94/2 79/119/2 72/65/2 -f 72/65/2 74/99/2 76/93/2 -f 85/97/1 64/757/1 65/758/1 -f 65/758/1 81/95/1 85/97/1 -f 57/759/9 58/98/9 73/64/9 -f 65/760/17 66/100/17 81/95/17 -f 58/761/8 59/102/8 74/99/8 -f 66/762/16 67/104/16 82/101/16 -f 59/763/7 60/106/7 75/103/7 -f 67/764/15 68/107/15 83/105/15 -f 60/765/6 61/109/6 76/93/6 -f 54/766/13 53/111/13 70/113/13 -f 68/767/14 54/114/14 84/108/14 -f 61/768/5 62/115/5 77/110/5 -f 69/112/12 53/769/12 88/116/12 -f 55/770/12 88/116/12 53/769/12 -f 78/94/4 62/771/4 86/118/4 -f 63/772/4 86/118/4 62/771/4 -f 64/773/3 85/120/3 63/122/3 -f 55/774/11 56/123/11 88/125/11 -f 70/113/2 69/112/2 71/117/2 -f 71/117/2 80/96/2 81/95/2 -f 81/95/2 82/101/2 83/105/2 -f 83/105/2 84/108/2 70/113/2 -f 70/113/2 71/117/2 81/95/2 -f 85/120/2 88/125/2 86/121/2 -f 86/121/15 87/124/15 79/127/15 -f 80/775/7 71/128/7 85/120/7 -f 96/776/18 97/129/18 93/131/18 -f 154/260/19 157/132/19 165/134/19 -f 152/259/20 89/135/20 151/137/20 -f 98/141/18 95/138/18 92/140/18 -f 2/142/18 101/777/18 98/141/18 -f 99/660/18 98/141/18 101/777/18 -f 103/661/18 1/143/18 97/129/18 -f 97/129/18 104/664/18 103/661/18 -f 105/161/21 96/144/21 106/146/21 -f 98/168/2 99/147/2 108/149/2 -f 104/159/2 97/150/2 112/152/2 -f 106/778/18 108/153/18 110/155/18 -f 112/779/18 107/156/18 109/158/18 -f 106/778/18 110/155/18 105/157/18 -f 102/780/22 104/159/22 109/160/22 -f 97/150/20 96/144/20 107/151/20 -f 96/776/18 93/131/18 5/781/18 -f 5/781/18 52/782/18 96/776/18 -f 51/163/18 6/783/18 95/138/18 -f 52/782/18 50/162/18 96/776/18 -f 95/138/18 96/776/18 50/162/18 -f 6/783/18 91/139/18 95/138/18 -f 100/167/2 102/164/2 110/166/2 -f 99/147/20 100/167/20 111/148/20 -f 95/145/22 98/168/22 106/146/22 -f 392/686/22 398/169/22 394/171/22 -f 127/194/2 120/172/2 126/174/2 -f 117/727/19 115/175/19 123/177/19 -f 123/185/22 125/178/22 128/180/22 -f 124/184/22 129/181/22 126/183/22 -f 129/181/22 124/184/22 128/180/22 -f 114/173/18 116/186/18 126/174/18 -f 115/175/2 118/188/2 125/176/2 -f 118/188/18 121/190/18 130/189/18 -f 121/190/2 122/192/2 128/191/2 -f 122/784/19 120/172/19 129/195/19 -f 407/210/19 411/198/19 136/197/19 -f 136/197/19 135/211/19 407/210/19 -f 139/196/19 411/198/19 140/200/19 -f 141/230/21 132/201/21 142/203/21 -f 139/231/2 140/204/2 146/206/2 -f 148/221/2 138/207/2 144/209/2 -f 409/785/19 407/210/19 137/212/19 -f 412/199/19 409/785/19 138/213/19 -f 137/212/19 138/213/19 409/785/19 -f 141/786/19 142/214/19 145/216/19 -f 142/214/19 143/217/19 146/215/19 -f 141/786/19 145/216/19 144/220/19 -f 140/787/20 138/207/20 145/222/20 -f 131/202/20 133/223/20 142/203/20 -f 133/223/2 136/225/2 143/224/2 -f 4/740/19 133/227/19 8/229/19 -f 134/208/22 132/201/22 144/209/22 -f 136/225/22 139/231/22 147/226/22 -f 153/788/20 150/232/20 91/234/20 -f 150/248/19 153/235/19 163/237/19 -f 151/137/20 90/136/20 3/789/20 -f 3/789/20 149/238/20 151/137/20 -f 2/241/20 92/233/20 150/232/20 -f 150/232/20 156/634/20 155/240/20 -f 161/729/20 162/242/20 164/244/20 -f 159/728/20 160/245/20 163/247/20 -f 156/255/2 150/248/2 166/249/2 -f 157/132/2 158/250/2 164/133/2 -f 152/730/18 151/252/18 161/254/18 -f 158/790/18 156/255/18 160/256/18 -f 153/788/20 91/234/20 6/791/20 -f 6/791/20 49/792/20 153/788/20 -f 47/793/20 48/257/20 152/259/20 -f 7/258/20 89/135/20 152/259/20 -f 152/259/20 153/788/20 47/793/20 -f 49/792/20 47/793/20 153/788/20 -f 151/252/2 154/260/2 162/253/2 -f 101/794/21 2/795/21 155/796/21 -f 155/796/21 149/797/21 137/261/21 -f 137/261/21 135/798/21 119/799/21 -f 149/797/21 3/800/21 137/261/21 -f 103/263/21 101/794/21 155/796/21 -f 113/262/21 1/801/21 103/263/21 -f 135/798/21 4/802/21 119/799/21 -f 119/799/21 113/262/21 137/261/21 -f 103/263/21 155/796/21 137/261/21 -f 19/269/11 20/264/11 353/266/11 -f 11/271/3 12/267/3 345/268/3 -f 18/273/12 19/269/12 352/270/12 -f 10/278/4 11/271/4 343/272/4 -f 17/279/13 18/273/13 351/274/13 -f 24/281/6 9/275/6 358/277/6 -f 9/275/5 10/278/5 344/276/5 -f 16/283/14 17/279/14 350/280/14 -f 23/285/7 24/281/7 357/282/7 -f 15/287/15 16/283/15 349/284/15 -f 22/289/8 23/285/8 356/286/8 -f 14/291/16 15/287/16 348/288/16 -f 21/293/9 22/289/9 355/290/9 -f 13/803/17 14/291/17 347/292/17 -f 20/264/10 21/293/10 354/265/10 -f 331/804/2 350/280/2 333/294/2 -f 28/9/1 186/8/1 29/90/1 -f 187/34/21 181/296/21 188/32/21 -f 188/32/21 168/298/21 189/30/21 -f 189/30/21 167/300/21 190/28/21 -f 190/28/21 171/302/21 191/26/21 -f 191/26/21 173/304/21 192/24/21 -f 192/24/21 176/306/21 193/23/21 -f 193/23/21 178/308/21 194/22/21 -f 195/20/21 194/22/21 182/311/21 -f 195/20/21 182/312/21 196/18/21 -f 197/16/21 196/18/21 169/315/21 -f 198/14/21 197/16/21 172/317/21 -f 198/14/21 172/318/21 184/12/21 -f 183/10/21 184/12/21 174/321/21 -f 185/7/21 183/10/21 177/323/21 -f 186/8/21 185/7/21 179/325/21 -f 187/295/21 186/8/21 181/327/21 -f 235/377/23 236/328/23 237/330/23 -f 201/369/24 202/332/24 203/334/24 -f 243/350/25 244/335/25 245/337/25 -f 225/347/26 226/338/26 227/340/26 -f 203/334/27 204/333/27 205/342/27 -f 239/371/28 240/343/28 241/345/28 -f 223/352/28 224/346/28 225/347/28 -f 205/342/23 206/341/23 207/349/23 -f 241/345/26 242/344/26 243/350/26 -f 221/357/29 222/351/29 223/352/29 -f 207/349/29 208/348/29 209/354/29 -f 241/392/2 7/355/2 239/331/2 -f 219/363/23 220/356/23 221/357/23 -f 209/354/28 210/353/28 211/359/28 -f 227/340/25 228/339/25 229/361/25 -f 217/375/27 218/362/27 219/363/27 -f 211/805/26 212/364/26 213/366/26 -f 215/370/30 216/368/30 201/369/30 -f 213/366/25 214/365/25 215/370/25 -f 237/330/29 238/329/29 239/371/29 -f 229/806/30 230/372/30 200/374/30 -f 200/374/24 199/373/24 217/375/24 -f 233/807/27 234/376/27 235/377/27 -f 245/337/30 246/336/30 232/379/30 -f 232/379/24 231/378/24 233/381/24 -f 251/396/23 252/382/23 253/384/23 -f 259/391/25 260/385/25 261/387/25 -f 255/394/28 256/388/28 257/390/28 -f 257/390/26 258/389/26 259/391/26 -f 46/59/2 7/355/2 243/367/2 -f 253/808/29 254/393/29 255/394/29 -f 249/399/27 250/395/27 251/396/27 -f 261/387/30 262/386/30 248/398/30 -f 248/398/24 247/397/24 249/399/24 -f 229/809/2 200/403/2 19/404/2 -f 229/809/2 19/404/2 227/405/2 -f 42/413/2 8/406/2 248/408/2 -f 261/407/2 8/406/2 259/410/2 -f 253/810/2 11/416/2 251/415/2 -f 253/810/2 255/414/2 11/416/2 -f 52/424/2 5/417/2 205/419/2 -f 203/418/2 5/417/2 201/421/2 -f 211/811/2 23/426/2 209/425/2 -f 211/811/2 213/427/2 23/426/2 -f 214/431/79 212/428/79 266/430/79 -f 216/433/80 214/431/80 265/432/80 -f 202/435/81 216/433/81 264/434/81 -f 204/444/82 202/435/82 263/436/82 -f 267/812/83 212/437/83 268/439/83 -f 268/439/84 210/438/84 269/441/84 -f 269/441/85 208/440/85 270/443/85 -f 270/443/86 206/442/86 263/436/86 -f 277/461/39 269/445/39 278/447/39 -f 281/813/87 230/448/87 282/450/87 -f 267/814/41 268/451/41 275/453/41 -f 265/464/42 266/454/42 273/456/42 -f 272/460/43 263/457/43 271/459/43 -f 278/447/44 270/446/44 272/460/44 -f 276/452/45 268/451/45 277/461/45 -f 266/454/46 267/462/46 274/455/46 -f 264/458/47 265/464/47 271/459/47 -f 199/468/88 230/465/88 280/467/88 -f 218/470/89 199/468/89 279/469/89 -f 220/472/90 218/470/90 286/471/90 -f 222/478/91 220/472/91 285/473/91 -f 282/450/92 228/449/92 283/475/92 -f 283/475/93 226/474/93 284/477/93 -f 284/477/94 224/476/94 285/473/94 -f 288/495/55 283/479/55 287/481/55 -f 294/491/56 286/482/56 292/484/56 -f 287/481/57 284/480/57 293/486/57 -f 292/484/58 279/483/58 290/488/58 -f 280/487/59 281/489/59 290/488/59 -f 285/485/60 286/482/60 293/486/60 -f 281/815/61 282/492/61 289/494/61 -f 282/492/62 283/479/62 291/493/62 -f 256/506/95 254/496/95 298/498/95 -f 252/503/96 296/499/96 254/501/96 -f 250/505/97 295/502/97 252/503/97 -f 247/512/98 302/504/98 250/505/98 -f 258/508/99 256/506/99 299/507/99 -f 260/510/100 258/508/100 300/509/100 -f 262/816/101 260/510/101 301/511/101 -f 262/816/102 301/511/102 247/512/102 -f 305/817/59 297/513/59 306/515/59 -f 315/818/103 234/516/103 316/518/103 -f 310/529/60 302/519/60 309/521/60 -f 298/526/61 297/522/61 307/524/61 -f 304/527/62 299/525/62 307/524/62 -f 300/531/55 299/525/55 303/528/55 -f 295/532/56 302/519/56 308/530/56 -f 309/521/57 301/520/57 303/528/57 -f 296/514/58 295/532/58 306/515/58 -f 236/536/104 234/533/104 314/535/104 -f 238/538/105 236/536/105 313/537/105 -f 240/546/106 238/538/106 312/539/106 -f 316/518/107 231/517/107 317/541/107 -f 317/541/108 246/540/108 318/543/108 -f 318/543/109 244/542/109 311/545/109 -f 242/544/110 240/546/110 311/545/110 -f 314/563/41 315/547/41 323/549/41 -f 315/819/46 316/550/46 320/552/46 -f 326/562/43 318/553/43 324/555/43 -f 316/550/42 317/556/42 319/551/42 -f 324/555/44 311/554/44 322/559/44 -f 322/559/39 312/558/39 321/561/39 -f 317/556/47 318/553/47 325/557/47 -f 321/561/45 313/560/45 323/549/45 -f 333/820/2 351/274/2 336/564/2 -f 338/821/2 336/565/2 353/266/2 -f 338/822/2 353/266/2 340/566/2 -f 340/823/2 354/265/2 342/567/2 -f 342/824/2 355/290/2 330/568/2 -f 329/825/2 330/569/2 357/282/2 -f 332/826/2 329/570/2 358/277/2 -f 335/827/2 332/571/2 344/276/2 -f 334/828/2 335/572/2 343/272/2 -f 334/829/2 343/272/2 337/573/2 -f 339/830/2 337/574/2 346/3/2 -f 339/831/2 346/3/2 341/575/2 -f 341/832/2 347/292/2 328/576/2 -f 327/833/2 349/284/2 331/577/2 -f 328/834/2 348/288/2 327/578/2 -f 339/611/1 341/579/1 179/581/1 -f 341/835/17 328/582/17 181/584/17 -f 328/582/16 327/585/16 168/583/16 -f 327/585/15 331/587/15 167/586/15 -f 331/587/14 333/589/14 171/588/14 -f 333/589/13 336/591/13 173/590/13 -f 336/591/12 338/593/12 176/592/12 -f 338/593/11 340/595/11 178/594/11 -f 340/595/10 342/597/10 180/596/10 -f 342/597/9 330/599/9 182/598/9 -f 330/599/8 329/601/8 170/600/8 -f 329/601/7 332/603/7 169/602/7 -f 332/603/6 335/605/6 172/604/6 -f 335/605/5 334/607/5 175/606/5 -f 334/607/4 337/609/4 174/608/4 -f 337/609/3 339/611/3 177/610/3 -f 381/673/20 382/612/20 386/614/20 -f 380/836/2 376/615/2 370/617/2 -f 366/621/21 365/618/21 378/620/21 -f 379/642/18 366/621/18 364/623/18 -f 373/837/21 374/624/21 363/626/21 -f 371/616/20 363/626/20 378/628/20 -f 370/617/20 371/616/20 377/629/20 -f 363/626/20 369/625/20 364/627/20 -f 372/630/20 369/625/20 377/629/20 -f 157/637/20 374/631/20 158/633/20 -f 376/635/20 155/240/20 156/634/20 -f 156/634/20 158/633/20 373/632/20 -f 149/238/20 155/240/20 380/636/20 -f 154/239/20 149/238/20 380/636/20 -f 380/636/20 374/631/20 154/239/20 -f 365/618/19 375/638/19 377/640/19 -f 376/838/19 373/641/19 371/616/19 -f 375/638/2 379/642/2 372/644/2 -f 374/839/18 380/645/18 369/625/18 -f 414/700/19 413/646/19 408/648/19 -f 365/618/20 366/621/20 375/638/20 -f 381/673/18 368/649/18 382/612/18 -f 360/840/20 361/651/20 387/653/20 -f 382/612/2 359/650/2 384/655/2 -f 362/841/2 360/656/2 388/657/2 -f 99/660/18 101/777/18 362/663/18 -f 362/663/18 367/658/18 99/660/18 -f 101/777/18 103/661/18 362/663/18 -f 360/662/18 103/661/18 104/664/18 -f 104/664/18 102/666/18 361/665/18 -f 100/659/18 367/658/18 102/666/18 -f 390/671/18 388/657/18 384/668/18 -f 386/667/18 388/657/18 385/669/18 -f 389/652/18 383/670/18 387/653/18 -f 384/668/18 383/670/18 390/671/18 -f 361/842/21 367/672/21 389/652/21 -f 368/649/21 381/673/21 385/675/21 -f 359/650/22 368/649/22 383/677/22 -f 367/843/22 362/678/22 390/671/22 -f 397/170/2 398/169/2 399/680/2 -f 391/844/2 393/681/2 403/683/2 -f 393/845/18 396/684/18 404/682/18 -f 398/169/19 392/686/19 400/688/19 -f 405/691/22 403/683/22 399/690/22 -f 402/693/22 401/689/22 404/682/22 -f 400/692/22 406/685/22 399/690/22 -f 404/682/22 406/685/22 402/693/22 -f 394/171/18 397/170/18 401/695/18 -f 395/846/19 391/696/19 405/691/19 -f 396/847/21 395/697/21 406/685/21 -f 392/686/21 394/171/21 402/699/21 -f 413/646/2 414/700/2 417/702/2 -f 409/848/22 412/703/22 420/705/22 -f 407/849/2 409/706/2 421/707/2 -f 408/648/21 410/647/21 416/709/21 -f 4/740/19 135/211/19 133/227/19 -f 138/213/19 137/212/19 134/711/19 -f 89/850/19 7/851/19 132/713/19 -f 132/713/19 134/711/19 90/712/19 -f 90/712/19 89/850/19 132/713/19 -f 44/715/19 45/852/19 131/228/19 -f 8/229/19 131/228/19 45/852/19 -f 132/713/19 7/851/19 46/714/19 -f 44/715/19 131/228/19 132/713/19 -f 418/720/19 421/707/19 417/717/19 -f 420/705/19 416/718/19 421/707/19 -f 416/718/19 420/705/19 415/719/19 -f 415/719/19 419/704/19 417/717/19 -f 410/647/22 413/646/22 422/722/22 -f 411/853/20 407/723/20 418/720/20 -f 412/854/21 411/724/21 419/704/21 -f 414/700/20 408/648/20 415/726/20 -f 123/177/21 124/187/21 117/727/21 -f 160/245/20 159/728/20 164/244/20 -f 159/236/21 153/235/21 161/254/21 -f 119/738/22 393/731/22 113/733/22 -f 122/855/22 121/734/22 396/736/22 -f 395/735/22 121/734/22 118/737/22 -f 118/737/22 113/733/22 391/732/22 -f 120/739/22 122/855/22 396/736/22 -f 396/736/22 393/731/22 120/739/22 -f 120/739/22 119/738/22 114/741/22 -f 1/856/22 113/733/22 115/742/22 -f 117/744/22 5/857/22 93/858/22 -f 93/858/22 94/743/22 117/744/22 -f 1/856/22 115/742/22 94/743/22 -f 8/229/22 42/859/22 116/746/22 -f 41/745/22 43/860/22 117/744/22 -f 5/857/22 117/744/22 43/860/22 -f 116/746/22 42/859/22 41/745/22 -f 116/746/22 114/741/22 8/229/22 diff --git a/src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj b/src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj new file mode 100644 index 000000000..321a3e384 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj @@ -0,0 +1,6312 @@ +# Blender v2.92.0 OBJ File: 'large_vehicle_door.blend' +# www.blender.org +o doorLeft +v 0.299220 0.487402 3.251414 +v 0.299220 5.590070 1.004025 +v 0.299220 5.128570 1.909768 +v 0.299220 4.409768 2.628571 +v 0.299220 3.503919 3.090124 +v 0.299220 2.496066 3.251015 +v 0.299220 5.679564 0.438986 +v 0.299220 0.487402 0.438985 +v 0.149610 5.900837 0.125000 +v 0.149610 0.054715 0.125000 +v 0.299220 0.054715 3.440433 +v 0.299220 2.511072 3.439998 +v 0.299220 3.563152 3.272047 +v 0.299220 4.522236 2.783369 +v 0.299220 5.283369 2.022236 +v 0.299220 5.772047 1.063152 +v 0.299220 5.900837 0.250000 +v 0.299220 0.054715 0.250000 +v 0.231315 0.487402 3.251414 +v 0.231315 2.496066 3.251015 +v 0.231315 3.503919 3.090124 +v 0.231315 4.409768 2.628571 +v 0.231315 5.128570 1.909768 +v 0.231315 5.590070 1.004025 +v 0.231315 5.679564 0.438986 +v 0.231315 0.487402 0.438985 +v 0.204275 1.917457 1.651271 +v 0.204275 2.047506 1.651271 +v 0.204275 1.917457 1.142414 +v 0.204275 2.047506 1.142414 +v 0.261126 1.933194 1.635535 +v 0.245389 1.917457 1.651271 +v 0.245389 2.047506 1.651271 +v 0.261126 2.031770 1.635535 +v 0.261126 1.933194 1.158151 +v 0.245389 1.917457 1.142414 +v 0.261126 2.031770 1.158151 +v 0.245389 2.047506 1.142414 +v 0.215124 3.126893 0.898361 +v 0.215124 3.628286 0.898361 +v 0.215124 3.126893 0.736489 +v 0.215124 3.628286 0.736489 +v 0.294289 3.126893 0.898361 +v 0.247374 3.628286 0.898361 +v 0.294289 3.126893 0.736489 +v 0.247374 3.628286 0.736489 +v 0.215124 3.447602 0.898361 +v 0.215124 3.447602 0.736489 +v 0.294289 3.447602 0.736489 +v 0.294289 3.447602 0.898361 +v 0.215124 3.126893 1.339800 +v 0.215124 3.628286 1.339800 +v 0.215124 3.126893 1.177929 +v 0.215124 3.628286 1.177929 +v 0.294289 3.126893 1.339800 +v 0.247374 3.628286 1.339800 +v 0.294289 3.126893 1.177929 +v 0.247374 3.628286 1.177929 +v 0.215124 3.447602 1.339800 +v 0.215124 3.447602 1.177929 +v 0.294289 3.447602 1.177929 +v 0.294289 3.447602 1.339800 +v 0.110842 1.775868 3.124604 +v 0.110842 2.305447 3.124604 +v 0.110842 1.775868 1.892389 +v 0.110842 2.305447 1.892389 +v 0.303721 1.835501 3.064971 +v 0.303721 2.245814 3.064971 +v 0.303721 1.835501 1.952022 +v 0.303721 2.245814 1.952022 +v 0.303721 2.305447 1.892389 +v 0.303721 1.775868 1.892389 +v 0.303721 1.775868 3.124604 +v 0.303721 2.305447 3.124604 +v 0.237602 2.245814 1.952022 +v 0.237602 1.835501 1.952022 +v 0.237602 1.835501 3.064971 +v 0.237602 2.245814 3.064971 +v 0.185097 0.938915 3.260309 +v 0.185097 1.140242 3.260309 +v 0.185097 0.938915 0.391829 +v 0.185097 1.140242 0.391829 +v 0.250002 0.938915 3.260309 +v 0.279439 0.968351 3.260309 +v 0.279439 1.110806 3.260309 +v 0.250002 1.140242 3.260309 +v 0.279439 0.968351 0.391829 +v 0.250002 0.938915 0.391829 +v 0.250002 1.140242 0.391829 +v 0.279439 1.110806 0.391829 +v 0.185097 1.623428 3.260309 +v 0.185097 1.824755 3.260309 +v 0.185097 1.623428 0.391829 +v 0.185097 1.824755 0.391829 +v 0.250002 1.623428 3.260309 +v 0.279439 1.652864 3.260309 +v 0.279439 1.795319 3.260309 +v 0.250002 1.824755 3.260309 +v 0.279439 1.652864 0.391829 +v 0.250002 1.623428 0.391829 +v 0.250002 1.824755 0.391829 +v 0.279439 1.795319 0.391829 +v 0.185097 2.307941 3.260309 +v 0.185097 2.509268 3.260309 +v 0.185097 2.307941 0.391829 +v 0.185097 2.509268 0.391829 +v 0.250002 2.307941 3.260309 +v 0.279439 2.337377 3.260309 +v 0.279439 2.479832 3.260309 +v 0.250002 2.509268 3.260309 +v 0.279439 2.337377 0.391829 +v 0.250002 2.307941 0.391829 +v 0.250002 2.509268 0.391829 +v 0.279439 2.479832 0.391829 +v 0.185097 2.992454 3.260309 +v 0.185097 3.193781 3.260309 +v 0.185097 2.992454 0.391829 +v 0.185097 3.193781 0.391829 +v 0.250002 2.992454 3.260309 +v 0.279439 3.021890 3.260309 +v 0.279439 3.164345 3.260309 +v 0.250002 3.193781 3.260309 +v 0.279439 3.021890 0.391829 +v 0.250002 2.992454 0.391829 +v 0.250002 3.193781 0.391829 +v 0.279439 3.164345 0.391829 +v 0.185097 3.676967 3.079826 +v 0.185097 3.878294 3.079826 +v 0.185097 3.676967 0.391829 +v 0.185097 3.878294 0.391829 +v 0.250002 3.676967 3.079826 +v 0.279439 3.706403 3.079826 +v 0.279439 3.848858 3.079826 +v 0.250002 3.878294 3.079826 +v 0.279439 3.706403 0.391829 +v 0.250002 3.676967 0.391829 +v 0.250002 3.878294 0.391829 +v 0.279439 3.848858 0.391829 +v 0.185097 4.361480 2.726382 +v 0.185097 4.562807 2.726382 +v 0.185097 4.361480 0.391829 +v 0.185097 4.562807 0.391829 +v 0.250002 4.361480 2.726382 +v 0.279439 4.390916 2.726382 +v 0.279439 4.533370 2.726382 +v 0.250002 4.562807 2.726382 +v 0.279439 4.390916 0.391829 +v 0.250002 4.361480 0.391829 +v 0.250002 4.562807 0.391829 +v 0.279439 4.533370 0.391829 +v 0.185097 5.045993 2.044939 +v 0.185097 5.247320 2.044939 +v 0.185097 5.045993 0.391829 +v 0.185097 5.247320 0.391829 +v 0.250002 5.045993 2.044939 +v 0.279439 5.075429 2.044939 +v 0.279439 5.217884 2.044939 +v 0.250002 5.247320 2.044939 +v 0.279439 5.075429 0.391829 +v 0.250002 5.045993 0.391829 +v 0.250002 5.247320 0.391829 +v 0.279439 5.217884 0.391829 +v 0.315590 0.554430 1.179831 +v 0.315590 0.554430 0.490474 +v 0.381347 0.554430 1.179831 +v 0.381347 0.554430 0.490474 +v 0.427845 0.600927 1.179831 +v 0.427845 0.600927 0.490474 +v 0.427845 0.666685 1.179831 +v 0.427845 0.666685 0.490474 +v 0.381347 0.713183 1.179831 +v 0.381347 0.713183 0.490474 +v 0.315590 0.713183 1.179831 +v 0.315590 0.713183 0.490474 +v 0.269092 0.666685 1.179831 +v 0.269092 0.666685 0.490474 +v 0.269092 0.600927 1.179831 +v 0.269092 0.600927 0.490474 +v 0.212011 0.554430 1.179831 +v 0.212011 0.554430 0.490474 +v 0.212011 0.713183 0.490474 +v 0.212011 0.713183 1.179831 +v 0.212011 0.666685 1.179831 +v 0.212011 0.666685 0.490474 +v 0.212011 0.600927 1.179831 +v 0.212011 0.600927 0.490474 +v 0.323809 0.574274 3.311587 +v 0.373128 0.574274 3.311587 +v 0.408001 0.609147 3.311587 +v 0.408001 0.658465 3.311587 +v 0.373128 0.693339 3.311587 +v 0.323809 0.693339 3.311587 +v 0.288936 0.658465 3.311587 +v 0.288936 0.609147 3.311587 +v 0.373127 0.574274 0.452471 +v 0.408000 0.609147 0.452471 +v 0.323808 0.574274 0.452471 +v 0.408000 0.658465 0.452471 +v 0.373127 0.693339 0.452471 +v 0.323808 0.693339 0.452471 +v 0.288935 0.658465 0.452471 +v 0.288935 0.609147 0.452471 +v 0.299220 0.790051 0.250000 +v 0.299220 5.165501 0.250000 +v 0.299220 1.519293 0.250000 +v 0.299220 2.248535 0.250000 +v 0.299220 2.977776 0.250000 +v 0.299220 3.707018 0.250000 +v 0.299220 4.436259 0.250000 +v 0.149610 5.165501 0.125000 +v 0.149610 0.790051 0.125000 +v 0.149610 4.436259 0.125000 +v 0.149610 3.707017 0.125000 +v 0.149610 2.977776 0.125000 +v 0.149610 2.248534 0.125000 +v 0.149610 1.519293 0.125000 +v 0.149610 0.054715 -0.125000 +v 0.299220 0.054715 -0.000000 +v 0.149610 0.790051 -0.125000 +v 0.149610 1.519293 -0.125000 +v 0.149610 2.248534 -0.125000 +v 0.149610 2.977776 -0.125000 +v 0.149610 3.707017 -0.125000 +v 0.149610 4.436259 -0.125000 +v 0.149610 5.165501 -0.125000 +v 0.299220 0.790051 -0.000000 +v 0.299220 1.519293 -0.000000 +v 0.299220 2.248535 -0.000000 +v 0.299220 2.977776 -0.000000 +v 0.299220 3.707018 -0.000000 +v 0.299220 4.436259 -0.000000 +v 0.299220 5.165501 -0.000000 +v -0.299220 0.487402 3.251414 +v -0.299220 5.590070 1.004025 +v -0.299220 5.128570 1.909768 +v -0.299220 4.409768 2.628571 +v -0.299220 3.503919 3.090124 +v -0.299220 2.496066 3.251015 +v -0.299220 5.679564 0.438986 +v -0.299220 0.487402 0.438985 +v -0.149610 5.900837 0.125000 +v -0.149610 0.054715 0.125000 +v -0.299220 0.054715 3.440433 +v -0.299220 2.511072 3.439998 +v -0.299220 3.563152 3.272047 +v -0.299220 4.522236 2.783369 +v -0.299220 5.283369 2.022236 +v -0.299220 5.772047 1.063152 +v -0.299220 5.900837 0.250000 +v -0.299220 0.054715 0.250000 +v -0.231315 0.487402 3.251414 +v -0.231315 2.496066 3.251015 +v -0.231315 3.503919 3.090124 +v -0.231315 4.409768 2.628571 +v -0.231315 5.128570 1.909768 +v -0.231315 5.590070 1.004025 +v -0.231315 5.679564 0.438986 +v -0.231315 0.487402 0.438985 +v -0.204275 1.917457 1.651271 +v -0.204275 2.047506 1.651271 +v -0.204275 1.917457 1.142414 +v -0.204275 2.047506 1.142414 +v -0.261126 1.933194 1.635535 +v -0.245389 1.917457 1.651271 +v -0.245389 2.047506 1.651271 +v -0.261126 2.031770 1.635535 +v -0.261126 1.933194 1.158151 +v -0.245389 1.917457 1.142414 +v -0.261126 2.031770 1.158151 +v -0.245389 2.047506 1.142414 +v -0.215124 3.126893 0.898361 +v -0.215124 3.628286 0.898361 +v -0.215124 3.126893 0.736489 +v -0.215124 3.628286 0.736489 +v -0.294289 3.126893 0.898361 +v -0.247374 3.628286 0.898361 +v -0.294289 3.126893 0.736489 +v -0.247374 3.628286 0.736489 +v -0.215124 3.447602 0.898361 +v -0.215124 3.447602 0.736489 +v -0.294289 3.447602 0.736489 +v -0.294289 3.447602 0.898361 +v -0.215124 3.126893 1.339800 +v -0.215124 3.628286 1.339800 +v -0.215124 3.126893 1.177929 +v -0.215124 3.628286 1.177929 +v -0.294289 3.126893 1.339800 +v -0.247374 3.628286 1.339800 +v -0.294289 3.126893 1.177929 +v -0.247374 3.628286 1.177929 +v -0.215124 3.447602 1.339800 +v -0.215124 3.447602 1.177929 +v -0.294289 3.447602 1.177929 +v -0.294289 3.447602 1.339800 +v -0.110842 1.775868 3.124604 +v -0.110842 2.305447 3.124604 +v -0.110842 1.775868 1.892389 +v -0.110842 2.305447 1.892389 +v -0.303721 1.835501 3.064971 +v -0.303721 2.245814 3.064971 +v -0.303721 1.835501 1.952022 +v -0.303721 2.245814 1.952022 +v -0.303721 2.305447 1.892389 +v -0.303721 1.775868 1.892389 +v -0.303721 1.775868 3.124604 +v -0.303721 2.305447 3.124604 +v -0.237602 2.245814 1.952022 +v -0.237602 1.835501 1.952022 +v -0.237602 1.835501 3.064971 +v -0.237602 2.245814 3.064971 +v -0.185097 0.938915 3.260309 +v -0.185097 1.140242 3.260309 +v -0.185097 0.938915 0.391829 +v -0.185097 1.140242 0.391829 +v -0.250002 0.938915 3.260309 +v -0.279439 0.968351 3.260309 +v -0.279439 1.110806 3.260309 +v -0.250002 1.140242 3.260309 +v -0.279439 0.968351 0.391829 +v -0.250002 0.938915 0.391829 +v -0.250002 1.140242 0.391829 +v -0.279439 1.110806 0.391829 +v -0.185097 1.623428 3.260309 +v -0.185097 1.824755 3.260309 +v -0.185097 1.623428 0.391829 +v -0.185097 1.824755 0.391829 +v -0.250002 1.623428 3.260309 +v -0.279439 1.652864 3.260309 +v -0.279439 1.795319 3.260309 +v -0.250002 1.824755 3.260309 +v -0.279439 1.652864 0.391829 +v -0.250002 1.623428 0.391829 +v -0.250002 1.824755 0.391829 +v -0.279439 1.795319 0.391829 +v -0.185097 2.307941 3.260309 +v -0.185097 2.509268 3.260309 +v -0.185097 2.307941 0.391829 +v -0.185097 2.509268 0.391829 +v -0.250002 2.307941 3.260309 +v -0.279439 2.337377 3.260309 +v -0.279439 2.479832 3.260309 +v -0.250002 2.509268 3.260309 +v -0.279439 2.337377 0.391829 +v -0.250002 2.307941 0.391829 +v -0.250002 2.509268 0.391829 +v -0.279439 2.479832 0.391829 +v -0.185097 2.992454 3.260309 +v -0.185097 3.193781 3.260309 +v -0.185097 2.992454 0.391829 +v -0.185097 3.193781 0.391829 +v -0.250002 2.992454 3.260309 +v -0.279439 3.021890 3.260309 +v -0.279439 3.164345 3.260309 +v -0.250002 3.193781 3.260309 +v -0.279439 3.021890 0.391829 +v -0.250002 2.992454 0.391829 +v -0.250002 3.193781 0.391829 +v -0.279439 3.164345 0.391829 +v -0.185097 3.676967 3.079826 +v -0.185097 3.878294 3.079826 +v -0.185097 3.676967 0.391829 +v -0.185097 3.878294 0.391829 +v -0.250002 3.676967 3.079826 +v -0.279439 3.706403 3.079826 +v -0.279439 3.848858 3.079826 +v -0.250002 3.878294 3.079826 +v -0.279439 3.706403 0.391829 +v -0.250002 3.676967 0.391829 +v -0.250002 3.878294 0.391829 +v -0.279439 3.848858 0.391829 +v -0.185097 4.361480 2.726382 +v -0.185097 4.562807 2.726382 +v -0.185097 4.361480 0.391829 +v -0.185097 4.562807 0.391829 +v -0.250002 4.361480 2.726382 +v -0.279439 4.390916 2.726382 +v -0.279439 4.533370 2.726382 +v -0.250002 4.562807 2.726382 +v -0.279439 4.390916 0.391829 +v -0.250002 4.361480 0.391829 +v -0.250002 4.562807 0.391829 +v -0.279439 4.533370 0.391829 +v -0.185097 5.045993 2.044939 +v -0.185097 5.247320 2.044939 +v -0.185097 5.045993 0.391829 +v -0.185097 5.247320 0.391829 +v -0.250002 5.045993 2.044939 +v -0.279439 5.075429 2.044939 +v -0.279439 5.217884 2.044939 +v -0.250002 5.247320 2.044939 +v -0.279439 5.075429 0.391829 +v -0.250002 5.045993 0.391829 +v -0.250002 5.247320 0.391829 +v -0.279439 5.217884 0.391829 +v -0.315590 0.554430 1.179831 +v -0.315590 0.554430 0.490474 +v -0.381347 0.554430 1.179831 +v -0.381347 0.554430 0.490474 +v -0.427845 0.600927 1.179831 +v -0.427845 0.600927 0.490474 +v -0.427845 0.666685 1.179831 +v -0.427845 0.666685 0.490474 +v -0.381347 0.713183 1.179831 +v -0.381347 0.713183 0.490474 +v -0.315590 0.713183 1.179831 +v -0.315590 0.713183 0.490474 +v -0.269092 0.666685 1.179831 +v -0.269092 0.666685 0.490474 +v -0.269092 0.600927 1.179831 +v -0.269092 0.600927 0.490474 +v -0.212011 0.554430 1.179831 +v -0.212011 0.554430 0.490474 +v -0.212011 0.713183 0.490474 +v -0.212011 0.713183 1.179831 +v -0.212011 0.666685 1.179831 +v -0.212011 0.666685 0.490474 +v -0.212011 0.600927 1.179831 +v -0.212011 0.600927 0.490474 +v -0.323809 0.574274 3.311587 +v -0.373128 0.574274 3.311587 +v -0.408001 0.609147 3.311587 +v -0.408001 0.658465 3.311587 +v -0.373128 0.693339 3.311587 +v -0.323809 0.693339 3.311587 +v -0.288936 0.658465 3.311587 +v -0.288936 0.609147 3.311587 +v -0.373127 0.574274 0.452471 +v -0.408000 0.609147 0.452471 +v -0.323808 0.574274 0.452471 +v -0.408000 0.658465 0.452471 +v -0.373127 0.693339 0.452471 +v -0.323808 0.693339 0.452471 +v -0.288935 0.658465 0.452471 +v -0.288935 0.609147 0.452471 +v -0.299220 0.790051 0.250000 +v -0.299220 5.165501 0.250000 +v -0.299220 1.519293 0.250000 +v -0.299220 2.248535 0.250000 +v -0.299220 2.977776 0.250000 +v -0.299220 3.707018 0.250000 +v -0.299220 4.436259 0.250000 +v -0.149610 5.165501 0.125000 +v -0.149610 0.790051 0.125000 +v -0.149610 4.436259 0.125000 +v -0.149610 3.707017 0.125000 +v -0.149610 2.977776 0.125000 +v -0.149610 2.248534 0.125000 +v -0.149610 1.519293 0.125000 +v -0.149610 0.054715 -0.125000 +v -0.299220 0.054715 -0.000000 +v -0.149610 0.790051 -0.125000 +v -0.149610 1.519293 -0.125000 +v -0.149610 2.248534 -0.125000 +v -0.149610 2.977776 -0.125000 +v -0.149610 3.707017 -0.125000 +v -0.149610 4.436259 -0.125000 +v -0.149610 5.165501 -0.125000 +v -0.299220 0.790051 -0.000000 +v -0.299220 1.519293 -0.000000 +v -0.299220 2.248535 -0.000000 +v -0.299220 2.977776 -0.000000 +v -0.299220 3.707018 -0.000000 +v -0.299220 4.436259 -0.000000 +v -0.299220 5.165501 -0.000000 +v 0.000000 0.054715 3.440433 +v 0.000000 2.511072 3.439998 +v 0.000000 3.563152 3.272047 +v 0.000000 4.522236 2.783369 +v 0.000000 5.283369 2.022236 +v 0.000000 5.772047 1.063152 +v 0.000000 5.900837 0.250000 +v 0.000000 0.054715 0.250000 +v 0.000000 5.900837 0.125000 +v 0.000000 0.054715 0.125000 +v 0.000000 0.790051 0.125000 +v 0.000000 1.519293 0.125000 +v 0.000000 2.248534 0.125000 +v 0.000000 2.977776 0.125000 +v 0.000000 3.707017 0.125000 +v 0.000000 4.436259 0.125000 +v 0.000000 5.165501 0.125000 +v 0.000000 0.054715 -0.125000 +v 0.000000 0.790051 -0.125000 +v 0.000000 1.519293 -0.125000 +v 0.000000 2.248534 -0.125000 +v 0.000000 2.977776 -0.125000 +v 0.000000 3.707017 -0.125000 +v 0.000000 4.436259 -0.125000 +v 0.000000 5.165501 -0.125000 +v -0.236978 1.966246 2.101461 +v -0.236978 1.868288 2.101461 +v -0.271611 1.966246 2.115807 +v -0.271611 1.868288 2.115807 +v -0.285957 1.966246 2.150440 +v -0.285957 1.868288 2.150440 +v -0.271611 1.966246 2.185074 +v -0.271611 1.868288 2.185074 +v -0.236978 1.966246 2.199419 +v -0.236978 1.868289 2.199419 +v -0.261013 1.935379 2.738888 +v -0.243801 1.942508 2.738888 +v -0.243801 1.942508 2.168687 +v -0.261013 1.935379 2.168687 +v -0.268143 1.918167 2.168687 +v -0.261013 1.900955 2.168687 +v -0.243801 1.893826 2.168687 +v -0.226590 1.900955 2.168687 +v -0.219460 1.918167 2.168687 +v -0.226590 1.935379 2.168687 +v -0.268142 1.918167 2.738888 +v -0.261013 1.900955 2.738888 +v -0.243801 1.893826 2.738888 +v -0.226589 1.900955 2.738888 +v -0.219460 1.918167 2.738888 +v -0.226589 1.935379 2.738888 +v -0.243801 1.952222 2.738888 +v -0.267882 1.942248 2.738888 +v -0.277856 1.918167 2.738888 +v -0.243801 1.952222 2.956852 +v -0.267881 1.942248 2.956852 +v -0.267882 1.894087 2.738888 +v -0.277856 1.918167 2.956852 +v -0.243801 1.884113 2.738888 +v -0.267881 1.894087 2.956852 +v -0.219721 1.894087 2.738888 +v -0.243801 1.884113 2.956852 +v -0.209747 1.918167 2.738888 +v -0.219721 1.894087 2.956852 +v -0.219721 1.942248 2.738888 +v -0.209747 1.918167 2.956852 +v -0.219721 1.942248 2.956852 +v -0.234903 1.996067 2.602893 +v -0.234903 2.177792 2.602893 +v -0.234903 1.996067 2.957389 +v -0.234903 2.177792 2.957389 +v -0.248363 1.996858 2.604437 +v -0.248363 2.177001 2.604437 +v -0.248363 1.996858 2.955846 +v -0.248363 2.177001 2.955846 +v -0.239626 2.025193 2.631219 +v -0.239626 2.077102 2.631219 +v -0.239626 2.025193 2.683128 +v -0.239626 2.077102 2.683128 +v -0.264276 2.026531 2.632558 +v -0.264276 2.075763 2.632558 +v -0.264276 2.026531 2.681789 +v -0.264276 2.075763 2.681789 +v -0.239626 2.025193 2.713007 +v -0.239626 2.077102 2.713007 +v -0.239626 2.025193 2.764916 +v -0.239626 2.077102 2.764916 +v -0.264276 2.026531 2.714346 +v -0.264276 2.075763 2.714346 +v -0.264276 2.026531 2.763577 +v -0.264276 2.075763 2.763577 +v -0.239626 2.025193 2.794795 +v -0.239626 2.077102 2.794795 +v -0.239626 2.025193 2.846704 +v -0.239626 2.077102 2.846704 +v -0.264276 2.026531 2.796134 +v -0.264276 2.075763 2.796134 +v -0.264276 2.026531 2.845365 +v -0.264276 2.075763 2.845365 +v -0.239626 2.025193 2.876583 +v -0.239626 2.077102 2.876583 +v -0.239626 2.025193 2.928492 +v -0.239626 2.077102 2.928492 +v -0.264276 2.026531 2.877922 +v -0.264276 2.075763 2.877922 +v -0.264276 2.026531 2.927153 +v -0.264276 2.075763 2.927153 +v -0.257845 2.139290 2.641807 +v -0.231994 2.143135 2.641807 +v -0.215737 2.122669 2.641807 +v -0.225334 2.098358 2.641807 +v -0.251185 2.094513 2.641807 +v -0.254999 2.096865 2.641807 +v -0.267210 2.110033 2.641807 +v -0.267441 2.114980 2.641807 +v -0.267210 2.110033 2.673316 +v -0.267441 2.114980 2.673316 +v -0.268826 2.092032 2.641807 +v -0.268826 2.092032 2.673316 +v -0.274138 2.100425 2.673316 +v -0.274138 2.100425 2.641807 +v -0.254999 2.096865 2.673316 +v -0.231994 2.143135 2.673316 +v -0.257845 2.139290 2.673316 +v -0.251185 2.094513 2.673316 +v -0.225334 2.098358 2.673316 +v -0.215737 2.122669 2.673316 +v -0.231185 2.137330 2.805390 +v -0.214479 2.117230 2.805390 +v -0.223533 2.092711 2.805390 +v -0.249294 2.088294 2.805390 +v -0.265999 2.108394 2.805390 +v -0.265969 2.112875 2.805390 +v -0.261052 2.130147 2.805390 +v -0.256944 2.132912 2.805390 +v -0.261052 2.130147 2.836899 +v -0.256944 2.132912 2.836899 +v -0.277276 2.122184 2.805390 +v -0.277276 2.122184 2.836899 +v -0.272861 2.131080 2.836899 +v -0.272861 2.131080 2.805390 +v -0.265969 2.112875 2.836899 +v -0.214479 2.117230 2.836899 +v -0.231185 2.137330 2.836899 +v -0.265999 2.108394 2.836899 +v -0.249294 2.088294 2.836899 +v -0.223533 2.092711 2.836899 +v -0.222124 2.128488 2.723598 +v -0.215961 2.103088 2.723598 +v -0.234877 2.085051 2.723598 +v -0.259955 2.092414 2.723598 +v -0.266117 2.117813 2.723598 +v -0.264119 2.121824 2.723598 +v -0.252107 2.135173 2.723598 +v -0.247201 2.135850 2.723598 +v -0.252107 2.135173 2.755107 +v -0.247201 2.135850 2.755107 +v -0.270180 2.135158 2.723598 +v -0.270180 2.135158 2.755107 +v -0.262301 2.141205 2.755107 +v -0.262301 2.141205 2.723598 +v -0.264119 2.121824 2.755107 +v -0.215961 2.103088 2.755107 +v -0.222124 2.128488 2.755107 +v -0.266117 2.117813 2.755107 +v -0.259955 2.092414 2.755107 +v -0.234877 2.085051 2.755107 +v -0.241062 2.141376 2.887181 +v -0.218098 2.128895 2.887181 +v -0.217426 2.102767 2.887181 +v -0.239718 2.089121 2.887181 +v -0.262680 2.101603 2.887181 +v -0.264312 2.105776 2.887181 +v -0.266144 2.123641 2.887181 +v -0.263352 2.127731 2.887181 +v -0.266143 2.123641 2.918690 +v -0.263352 2.127731 2.918690 +v -0.278264 2.110234 2.887181 +v -0.278264 2.110234 2.918690 +v -0.277458 2.120133 2.918690 +v -0.277458 2.120133 2.887181 +v -0.264312 2.105776 2.918690 +v -0.218098 2.128895 2.918690 +v -0.241062 2.141376 2.918690 +v -0.262680 2.101603 2.918690 +v -0.239718 2.089121 2.918690 +v -0.217426 2.102767 2.918690 +v -0.266144 2.123641 2.887181 +v -0.263352 2.127731 2.887181 +v -0.266143 2.123641 2.918690 +v -0.263352 2.127731 2.918690 +vt 0.114995 0.927786 +vt 0.122324 0.928335 +vt 0.115027 0.928335 +vt 0.115027 0.942571 +vt 0.122324 0.942571 +vt 0.114995 0.943119 +vt 0.114481 0.928272 +vt 0.114481 0.942633 +vt 0.122871 0.928272 +vt 0.977830 0.045536 +vt 0.979878 0.044536 +vt 0.979932 0.045536 +vt 0.977884 0.044536 +vt 0.979878 0.042542 +vt 0.977884 0.042542 +vt 0.979932 0.041542 +vt 0.980878 0.044591 +vt 0.980878 0.042488 +vt 0.976884 0.044591 +vt 0.980878 0.062002 +vt 0.979878 0.059953 +vt 0.980878 0.059899 +vt 0.979878 0.061948 +vt 0.977884 0.059953 +vt 0.977884 0.061948 +vt 0.976884 0.059899 +vt 0.977829 0.058953 +vt 0.979932 0.058953 +vt 0.979932 0.062948 +vt 0.979932 0.076365 +vt 0.977884 0.077365 +vt 0.977829 0.076365 +vt 0.979878 0.077365 +vt 0.977884 0.079359 +vt 0.979878 0.079359 +vt 0.977829 0.080359 +vt 0.976884 0.079414 +vt 0.976884 0.077311 +vt 0.980878 0.079414 +vt 0.976884 0.096825 +vt 0.977884 0.094776 +vt 0.977884 0.096771 +vt 0.979878 0.096771 +vt 0.979878 0.094777 +vt 0.980878 0.096825 +vt 0.979932 0.097771 +vt 0.977829 0.097771 +vt 0.977830 0.093776 +vt 0.122356 0.927786 +vt 0.122356 0.943119 +vt 0.122871 0.942633 +vt 0.977830 0.041542 +vt 0.976884 0.042488 +vt 0.976884 0.062002 +vt 0.977829 0.062948 +vt 0.979932 0.080359 +vt 0.980878 0.077311 +vt 0.976884 0.094722 +vt 0.980878 0.094722 +vt 0.979932 0.093776 +vt 0.888428 0.294606 +vt 0.900550 0.394114 +vt 0.888429 0.394114 +vt 0.900550 0.437274 +vt 0.888429 0.437274 +vt 0.900550 0.480879 +vt 0.888429 0.480879 +vt 0.900550 0.524484 +vt 0.888429 0.524484 +vt 0.900550 0.568090 +vt 0.888429 0.568090 +vt 0.801760 0.796084 +vt 0.813882 0.666839 +vt 0.813882 0.796084 +vt 0.897588 0.747418 +vt 0.900339 0.861350 +vt 0.897588 0.861350 +vt 0.899184 0.935956 +vt 0.928726 0.925829 +vt 0.928726 0.935956 +vt 0.888429 0.601441 +vt 0.894489 0.606505 +vt 0.888429 0.606505 +vt 0.476557 0.585175 +vt 0.394577 0.577535 +vt 0.494085 0.577517 +vt 0.354357 0.591708 +vt 0.395185 0.585191 +vt 0.317661 0.610406 +vt 0.351957 0.584339 +vt 0.282271 0.634969 +vt 0.313105 0.604135 +vt 0.269847 0.676217 +vt 0.288542 0.639525 +vt 0.266221 0.699107 +vt 0.262475 0.673821 +vt 0.494085 0.706763 +vt 0.476557 0.699107 +vt 0.516594 0.667355 +vt 0.510076 0.626526 +vt 0.623992 0.545155 +vt 0.933712 0.486222 +vt 0.930761 0.461662 +vt 0.933677 0.461658 +vt 0.933835 0.573519 +vt 0.930857 0.529875 +vt 0.933773 0.529871 +vt 0.933959 0.660995 +vt 0.930981 0.617175 +vt 0.933896 0.617171 +vt 0.931165 0.294610 +vt 0.934080 0.294606 +vt 0.930796 0.486226 +vt 0.930919 0.573523 +vt 0.934080 0.747247 +vt 0.931043 0.660999 +vt 0.115673 0.891561 +vt 0.120941 0.889896 +vt 0.120941 0.891562 +vt 0.113743 0.912440 +vt 0.115409 0.891825 +vt 0.115409 0.912440 +vt 0.116310 0.911802 +vt 0.120303 0.892463 +vt 0.120303 0.911802 +vt 0.115673 0.914369 +vt 0.120941 0.912703 +vt 0.120941 0.914369 +vt 0.115673 0.912703 +vt 0.121205 0.912440 +vt 0.121205 0.891825 +vt 0.116310 0.892463 +vt 0.122871 0.891825 +vt 0.122871 0.912440 +vt 0.517321 0.983616 +vt 0.530057 0.979918 +vt 0.530177 0.983265 +vt 0.517124 0.992977 +vt 0.509923 0.990179 +vt 0.517491 0.989800 +vt 0.509916 0.983328 +vt 0.516908 0.980489 +vt 0.530177 0.990089 +vt 0.533514 0.983265 +vt 0.533514 0.990089 +vt 0.508558 0.990180 +vt 0.530099 0.993292 +vt 0.862038 0.983177 +vt 0.874774 0.979479 +vt 0.874894 0.982826 +vt 0.861840 0.992538 +vt 0.854639 0.989740 +vt 0.862208 0.989361 +vt 0.854633 0.982888 +vt 0.861624 0.980050 +vt 0.874894 0.989649 +vt 0.878231 0.982826 +vt 0.878231 0.989649 +vt 0.853274 0.989741 +vt 0.874816 0.992852 +vt 0.201844 0.802196 +vt 0.194030 0.780742 +vt 0.201844 0.780742 +vt 0.473107 0.953861 +vt 0.489729 0.951182 +vt 0.489729 0.953861 +vt 0.144113 0.802196 +vt 0.136299 0.780742 +vt 0.144113 0.780742 +vt 0.144113 0.772929 +vt 0.194030 0.772929 +vt 0.194030 0.810009 +vt 0.194030 0.802196 +vt 0.191614 0.783158 +vt 0.191614 0.799780 +vt 0.146529 0.799780 +vt 0.146529 0.783158 +vt 0.489729 0.906096 +vt 0.473107 0.951182 +vt 0.473107 0.906096 +vt 0.470428 0.906096 +vt 0.470428 0.951182 +vt 0.492407 0.951182 +vt 0.492407 0.906096 +vt 0.489729 0.903418 +vt 0.473107 0.903418 +vt 0.006709 0.937024 +vt 0.009278 0.823485 +vt 0.009278 0.937024 +vt 0.011259 0.937019 +vt 0.016898 0.823479 +vt 0.016898 0.937019 +vt 0.018880 0.937014 +vt 0.018880 0.823474 +vt 0.021449 0.823474 +vt 0.021449 0.937014 +vt 0.192614 0.936977 +vt 0.195183 0.823437 +vt 0.195183 0.936977 +vt 0.197165 0.936971 +vt 0.202803 0.823432 +vt 0.202803 0.936971 +vt 0.204785 0.936966 +vt 0.204785 0.823426 +vt 0.207354 0.823426 +vt 0.207354 0.936966 +vt 0.811263 0.938243 +vt 0.813832 0.824703 +vt 0.813832 0.938243 +vt 0.815814 0.938237 +vt 0.821453 0.824698 +vt 0.821453 0.938237 +vt 0.823434 0.938232 +vt 0.823434 0.824692 +vt 0.826003 0.824692 +vt 0.826003 0.938232 +vt 0.034866 0.937024 +vt 0.037435 0.823485 +vt 0.037435 0.937024 +vt 0.039417 0.937019 +vt 0.045055 0.823479 +vt 0.045055 0.937019 +vt 0.047037 0.937014 +vt 0.047037 0.823474 +vt 0.049606 0.823474 +vt 0.049606 0.937014 +vt 0.932252 0.241137 +vt 0.934844 0.133830 +vt 0.934844 0.241137 +vt 0.936717 0.241134 +vt 0.942404 0.133826 +vt 0.942403 0.241134 +vt 0.944276 0.241130 +vt 0.944277 0.133823 +vt 0.946868 0.133823 +vt 0.946868 0.241130 +vt 0.100157 0.851974 +vt 0.097527 0.946547 +vt 0.097528 0.851974 +vt 0.095841 0.851974 +vt 0.090070 0.946546 +vt 0.090070 0.851974 +vt 0.088384 0.851974 +vt 0.088384 0.946546 +vt 0.085754 0.946546 +vt 0.085755 0.851974 +vt 0.136299 0.950395 +vt 0.203267 0.953024 +vt 0.136299 0.953024 +vt 0.136299 0.954710 +vt 0.203267 0.960481 +vt 0.136299 0.960481 +vt 0.136299 0.962168 +vt 0.203267 0.962168 +vt 0.203267 0.964797 +vt 0.136299 0.964797 +vt 0.301908 0.982691 +vt 0.329834 0.980027 +vt 0.329834 0.982690 +vt 0.301908 0.980027 +vt 0.329834 0.977363 +vt 0.301908 0.977363 +vt 0.329834 0.974699 +vt 0.301908 0.974699 +vt 0.329834 0.972035 +vt 0.301908 0.972035 +vt 0.329834 0.969371 +vt 0.970662 0.802390 +vt 0.973326 0.800078 +vt 0.973326 0.802390 +vt 0.968778 0.826786 +vt 0.968778 0.824122 +vt 0.975209 0.826786 +vt 0.975209 0.824122 +vt 0.977522 0.822238 +vt 0.977522 0.824122 +vt 0.968778 0.800078 +vt 0.970662 0.800078 +vt 0.970662 0.808821 +vt 0.968778 0.804274 +vt 0.874581 0.121851 +vt 0.876591 0.006711 +vt 0.876591 0.121851 +vt 0.968778 0.906729 +vt 0.970191 0.903318 +vt 0.973601 0.904731 +vt 0.977522 0.828669 +vt 0.973326 0.828669 +vt 0.301908 0.969371 +vt 0.329834 0.965175 +vt 0.301908 0.986886 +vt 0.975209 0.800078 +vt 0.975209 0.804274 +vt 0.977522 0.826786 +vt 0.886640 0.006709 +vt 0.888649 0.121848 +vt 0.886640 0.121849 +vt 0.882620 0.006710 +vt 0.884630 0.121849 +vt 0.882620 0.121850 +vt 0.878601 0.006711 +vt 0.880610 0.121850 +vt 0.878601 0.121850 +vt 0.888649 0.006709 +vt 0.890659 0.121848 +vt 0.884630 0.006710 +vt 0.880610 0.006711 +vt 0.711814 0.977254 +vt 0.717875 0.972190 +vt 0.717875 0.982318 +vt 0.405212 0.706763 +vt 0.375671 0.706763 +vt 0.978906 0.626265 +vt 0.968778 0.620204 +vt 0.978906 0.620204 +vt 0.973842 0.632325 +vt 0.968778 0.626265 +vt 0.978906 0.701585 +vt 0.968778 0.695524 +vt 0.978906 0.695524 +vt 0.085754 0.959964 +vt 0.093652 0.989505 +vt 0.085754 0.989505 +vt 0.973842 0.707645 +vt 0.968778 0.701585 +vt 0.968182 0.245444 +vt 0.960285 0.274985 +vt 0.960285 0.245444 +vt 0.947497 0.992681 +vt 0.977039 0.984783 +vt 0.977039 0.992681 +vt 0.645374 0.953709 +vt 0.674916 0.943582 +vt 0.674916 0.953709 +vt 0.975414 0.951347 +vt 0.967516 0.921558 +vt 0.975414 0.921558 +vt 0.384226 0.941462 +vt 0.414014 0.933565 +vt 0.414014 0.941462 +vt 0.899184 0.925829 +vt 0.928726 0.917931 +vt 0.688333 0.943582 +vt 0.717875 0.935684 +vt 0.717875 0.943582 +vt 0.645374 0.943582 +vt 0.674916 0.935684 +vt 0.263318 0.975303 +vt 0.257257 0.970239 +vt 0.263318 0.965175 +vt 0.269379 0.965175 +vt 0.269379 0.975303 +vt 0.361433 0.970908 +vt 0.367494 0.965844 +vt 0.367494 0.975971 +vt 0.384226 0.951590 +vt 0.414014 0.951590 +vt 0.688333 0.953709 +vt 0.717875 0.953709 +vt 0.651435 0.977254 +vt 0.645374 0.972190 +vt 0.651435 0.967126 +vt 0.657496 0.967127 +vt 0.657496 0.977254 +vt 0.807821 0.801148 +vt 0.801760 0.806211 +vt 0.978906 0.651803 +vt 0.973842 0.645742 +vt 0.983970 0.645742 +vt 0.645374 0.929623 +vt 0.645374 0.935684 +vt 0.688333 0.929623 +vt 0.688333 0.935684 +vt 0.899184 0.911870 +vt 0.899184 0.917931 +vt 0.384226 0.933565 +vt 0.414014 0.927504 +vt 0.978906 0.657864 +vt 0.968778 0.651803 +vt 0.947497 0.978723 +vt 0.947497 0.984783 +vt 0.355372 0.970908 +vt 0.361433 0.960780 +vt 0.974243 0.245444 +vt 0.968182 0.274985 +vt 0.705753 0.977254 +vt 0.711814 0.967126 +vt 0.099713 0.959964 +vt 0.093652 0.959964 +vt 0.813882 0.801148 +vt 0.807821 0.811275 +vt 0.967516 0.951347 +vt 0.961456 0.921558 +vt 0.900550 0.601441 +vt 0.876307 0.394114 +vt 0.876307 0.437274 +vt 0.876307 0.480879 +vt 0.876307 0.524484 +vt 0.876307 0.568090 +vt 0.826003 0.796084 +vt 0.622483 0.966501 +vt 0.508551 0.963750 +vt 0.622483 0.963750 +vt 0.928726 0.897912 +vt 0.899184 0.887784 +vt 0.928726 0.887784 +vt 0.882368 0.606505 +vt 0.876307 0.601441 +vt 0.511219 0.226008 +vt 0.503579 0.144028 +vt 0.511235 0.144636 +vt 0.517753 0.103808 +vt 0.510383 0.101409 +vt 0.536450 0.067112 +vt 0.530179 0.062556 +vt 0.565569 0.037993 +vt 0.561013 0.031722 +vt 0.602261 0.019298 +vt 0.599866 0.011926 +vt 0.625151 0.015672 +vt 0.632807 0.243536 +vt 0.625151 0.226008 +vt 0.279578 0.779761 +vt 0.260883 0.743070 +vt 0.257257 0.720180 +vt 0.913967 0.580195 +vt 0.916923 0.555635 +vt 0.916883 0.580199 +vt 0.914077 0.511982 +vt 0.917064 0.468338 +vt 0.916993 0.511987 +vt 0.914218 0.424679 +vt 0.917205 0.380859 +vt 0.917134 0.424684 +vt 0.917344 0.747253 +vt 0.914007 0.555630 +vt 0.914148 0.468333 +vt 0.914289 0.380855 +vt 0.917344 0.294611 +vt 0.065127 0.861396 +vt 0.070396 0.863061 +vt 0.065127 0.863061 +vt 0.070660 0.863325 +vt 0.072325 0.883939 +vt 0.070660 0.883939 +vt 0.065765 0.863963 +vt 0.069758 0.883302 +vt 0.065765 0.883302 +vt 0.065127 0.884203 +vt 0.070396 0.885869 +vt 0.065127 0.885869 +vt 0.070396 0.884203 +vt 0.064863 0.883939 +vt 0.064863 0.863325 +vt 0.069758 0.863963 +vt 0.063198 0.863325 +vt 0.063198 0.883939 +vt 0.568438 0.993292 +vt 0.555701 0.989594 +vt 0.568557 0.989945 +vt 0.555504 0.980233 +vt 0.548303 0.983031 +vt 0.548041 0.981699 +vt 0.555872 0.983409 +vt 0.555288 0.992721 +vt 0.548296 0.989882 +vt 0.571895 0.989945 +vt 0.568557 0.983121 +vt 0.571895 0.983121 +vt 0.546938 0.983030 +vt 0.568480 0.979918 +vt 0.491677 0.993292 +vt 0.478941 0.989594 +vt 0.491797 0.989945 +vt 0.478743 0.980233 +vt 0.471542 0.983031 +vt 0.471281 0.981699 +vt 0.479111 0.983409 +vt 0.478527 0.992721 +vt 0.471536 0.989882 +vt 0.495134 0.989945 +vt 0.491797 0.983121 +vt 0.495134 0.983121 +vt 0.470177 0.983030 +vt 0.491719 0.979918 +vt 0.567791 0.850757 +vt 0.575605 0.829304 +vt 0.575605 0.850757 +vt 0.241162 0.906203 +vt 0.224540 0.903524 +vt 0.241162 0.903524 +vt 0.510060 0.850757 +vt 0.517874 0.829304 +vt 0.517874 0.850757 +vt 0.517874 0.858571 +vt 0.567791 0.858571 +vt 0.567791 0.821490 +vt 0.567791 0.829304 +vt 0.565375 0.848342 +vt 0.565375 0.831720 +vt 0.520290 0.848342 +vt 0.520290 0.831720 +vt 0.224540 0.906203 +vt 0.241162 0.951289 +vt 0.224540 0.951289 +vt 0.221861 0.951289 +vt 0.221861 0.906203 +vt 0.243840 0.906203 +vt 0.243840 0.951289 +vt 0.241162 0.953967 +vt 0.224540 0.953967 +vt 0.176628 0.823438 +vt 0.179197 0.936978 +vt 0.176628 0.936978 +vt 0.169007 0.823432 +vt 0.174646 0.936972 +vt 0.169008 0.936972 +vt 0.167026 0.936966 +vt 0.167026 0.823426 +vt 0.164457 0.823426 +vt 0.164457 0.936966 +vt 0.257269 0.850098 +vt 0.370809 0.847529 +vt 0.370809 0.850098 +vt 0.257263 0.857718 +vt 0.370803 0.852080 +vt 0.370803 0.857718 +vt 0.370797 0.859700 +vt 0.257257 0.859700 +vt 0.257257 0.862269 +vt 0.370797 0.862269 +vt 0.784658 0.821502 +vt 0.787227 0.935042 +vt 0.784658 0.935042 +vt 0.777038 0.821496 +vt 0.782677 0.935036 +vt 0.777038 0.935036 +vt 0.775056 0.935030 +vt 0.775056 0.821490 +vt 0.772487 0.821490 +vt 0.772487 0.935030 +vt 0.148471 0.823438 +vt 0.151040 0.936978 +vt 0.148471 0.936978 +vt 0.140850 0.823432 +vt 0.146489 0.936972 +vt 0.140850 0.936972 +vt 0.138869 0.936966 +vt 0.138869 0.823426 +vt 0.136299 0.823426 +vt 0.136300 0.936966 +vt 0.944276 0.006716 +vt 0.946868 0.114023 +vt 0.944277 0.114023 +vt 0.936717 0.006712 +vt 0.942404 0.114020 +vt 0.936717 0.114020 +vt 0.934844 0.114016 +vt 0.934844 0.006709 +vt 0.932252 0.006709 +vt 0.932253 0.114016 +vt 0.645374 0.880347 +vt 0.739946 0.877717 +vt 0.739946 0.880347 +vt 0.645374 0.887804 +vt 0.739946 0.882033 +vt 0.739946 0.887804 +vt 0.739946 0.889491 +vt 0.645374 0.889491 +vt 0.645374 0.892120 +vt 0.739946 0.892120 +vt 0.811263 0.954289 +vt 0.878231 0.951660 +vt 0.878231 0.954289 +vt 0.811263 0.961746 +vt 0.878231 0.955975 +vt 0.878231 0.961746 +vt 0.878231 0.963433 +vt 0.811263 0.963433 +vt 0.811263 0.966062 +vt 0.878231 0.966062 +vt 0.427431 0.979920 +vt 0.455358 0.982584 +vt 0.427431 0.982584 +vt 0.427431 0.977257 +vt 0.455358 0.979920 +vt 0.427431 0.974593 +vt 0.455358 0.977256 +vt 0.427431 0.971929 +vt 0.455358 0.974593 +vt 0.427431 0.969265 +vt 0.455358 0.971929 +vt 0.977522 0.843970 +vt 0.975209 0.846634 +vt 0.975209 0.843970 +vt 0.968778 0.784777 +vt 0.970662 0.780230 +vt 0.975209 0.782113 +vt 0.975209 0.784777 +vt 0.977522 0.786661 +vt 0.973326 0.786661 +vt 0.977522 0.848518 +vt 0.973326 0.848518 +vt 0.968778 0.846634 +vt 0.876591 0.135269 +vt 0.874581 0.250408 +vt 0.874581 0.135268 +vt 0.973602 0.865345 +vt 0.970191 0.866758 +vt 0.968778 0.863347 +vt 0.977522 0.780230 +vt 0.973326 0.780230 +vt 0.427431 0.965069 +vt 0.455358 0.969265 +vt 0.455358 0.986780 +vt 0.977522 0.842086 +vt 0.973326 0.842086 +vt 0.977522 0.782113 +vt 0.888649 0.135271 +vt 0.886640 0.250410 +vt 0.886640 0.135271 +vt 0.884630 0.135270 +vt 0.882620 0.250410 +vt 0.882620 0.135270 +vt 0.880610 0.135270 +vt 0.878601 0.250409 +vt 0.878601 0.135269 +vt 0.890659 0.135272 +vt 0.888649 0.250411 +vt 0.884630 0.250410 +vt 0.876591 0.250408 +vt 0.880610 0.250409 +vt 0.693632 0.972190 +vt 0.699693 0.977254 +vt 0.693632 0.982318 +vt 0.632807 0.213747 +vt 0.978906 0.614143 +vt 0.973842 0.608082 +vt 0.983970 0.608082 +vt 0.978906 0.689463 +vt 0.113671 0.959964 +vt 0.105773 0.989505 +vt 0.105773 0.959964 +vt 0.973842 0.683402 +vt 0.983970 0.683402 +vt 0.988201 0.274985 +vt 0.980304 0.245444 +vt 0.988201 0.245444 +vt 0.947497 0.964764 +vt 0.977039 0.972662 +vt 0.947497 0.972662 +vt 0.674916 0.915665 +vt 0.645374 0.905537 +vt 0.674916 0.905537 +vt 0.955395 0.921558 +vt 0.947497 0.951347 +vt 0.947497 0.921558 +vt 0.414014 0.921443 +vt 0.384226 0.913545 +vt 0.414014 0.913545 +vt 0.899184 0.897912 +vt 0.928726 0.905810 +vt 0.899184 0.905810 +vt 0.688333 0.915665 +vt 0.717875 0.923563 +vt 0.688333 0.923563 +vt 0.645374 0.915665 +vt 0.674916 0.923563 +vt 0.645374 0.923563 +vt 0.275440 0.975303 +vt 0.281500 0.970239 +vt 0.281500 0.980367 +vt 0.343251 0.965844 +vt 0.349312 0.970908 +vt 0.343251 0.975971 +vt 0.384226 0.903418 +vt 0.414014 0.903418 +vt 0.717875 0.915665 +vt 0.688333 0.905537 +vt 0.717875 0.905537 +vt 0.663556 0.977254 +vt 0.669617 0.972190 +vt 0.669617 0.982318 +vt 0.826003 0.806211 +vt 0.819943 0.801148 +vt 0.973842 0.669985 +vt 0.978906 0.663925 +vt 0.983970 0.669985 +vt 0.384226 0.921443 +vt 0.968778 0.663925 +vt 0.349312 0.960780 +vt 0.980304 0.274985 +vt 0.699693 0.967126 +vt 0.819943 0.811275 +vt 0.955395 0.951347 +vt 0.876307 0.937367 +vt 0.877826 0.933398 +vt 0.877826 0.937367 +vt 0.879344 0.937367 +vt 0.879344 0.933398 +vt 0.880863 0.937367 +vt 0.882381 0.933398 +vt 0.882381 0.937367 +vt 0.840001 0.746144 +vt 0.840001 0.743338 +vt 0.841404 0.742757 +vt 0.841404 0.764111 +vt 0.840001 0.763530 +vt 0.839420 0.762127 +vt 0.968778 0.725591 +vt 0.991877 0.724836 +vt 0.991877 0.725590 +vt 0.978536 0.159457 +vt 0.979433 0.159840 +vt 0.979069 0.159990 +vt 0.968778 0.724836 +vt 0.991877 0.724081 +vt 0.968778 0.724081 +vt 0.991877 0.723327 +vt 0.977247 0.160745 +vt 0.977630 0.161642 +vt 0.976884 0.160895 +vt 0.968778 0.723326 +vt 0.991877 0.722572 +vt 0.977630 0.159093 +vt 0.978686 0.159093 +vt 0.968778 0.722572 +vt 0.991877 0.721817 +vt 0.979069 0.160745 +vt 0.979433 0.160895 +vt 0.968778 0.721817 +vt 0.991877 0.721062 +vt 0.968778 0.727100 +vt 0.991877 0.726345 +vt 0.991877 0.727100 +vt 0.968778 0.726345 +vt 0.737627 0.942995 +vt 0.736571 0.934165 +vt 0.737627 0.934165 +vt 0.736571 0.942995 +vt 0.735515 0.934165 +vt 0.735515 0.942995 +vt 0.734459 0.934165 +vt 0.734459 0.942995 +vt 0.733404 0.934165 +vt 0.732348 0.942995 +vt 0.732348 0.934165 +vt 0.731292 0.934165 +vt 0.738683 0.942995 +vt 0.738683 0.934165 +vt 0.739739 0.942995 +vt 0.739739 0.934165 +vt 0.977247 0.159990 +vt 0.976884 0.159840 +vt 0.978686 0.161642 +vt 0.978536 0.161279 +vt 0.977630 0.145676 +vt 0.976884 0.143873 +vt 0.978686 0.143127 +vt 0.977781 0.159457 +vt 0.977781 0.161279 +vt 0.987094 0.328112 +vt 0.986494 0.328523 +vt 0.986294 0.328503 +vt 0.733610 0.979860 +vt 0.733409 0.978584 +vt 0.733610 0.978584 +vt 0.734492 0.979860 +vt 0.734090 0.978584 +vt 0.734492 0.978584 +vt 0.986494 0.342610 +vt 0.987205 0.342438 +vt 0.987094 0.343021 +vt 0.987211 0.344218 +vt 0.986294 0.344748 +vt 0.738443 0.978584 +vt 0.737385 0.979860 +vt 0.737385 0.978584 +vt 0.733409 0.979860 +vt 0.732351 0.978584 +vt 0.736326 0.979860 +vt 0.735267 0.978584 +vt 0.736326 0.978584 +vt 0.735086 0.979860 +vt 0.735086 0.978584 +vt 0.732351 0.979860 +vt 0.731292 0.978584 +vt 0.734090 0.979860 +vt 0.987205 0.328695 +vt 0.986837 0.328858 +vt 0.623574 0.981645 +vt 0.622974 0.982056 +vt 0.622774 0.982036 +vt 0.839420 0.689726 +vt 0.840697 0.689525 +vt 0.840697 0.689726 +vt 0.839420 0.690608 +vt 0.840697 0.690206 +vt 0.840697 0.690608 +vt 0.840539 0.920381 +vt 0.841251 0.920209 +vt 0.841140 0.920792 +vt 0.841256 0.921989 +vt 0.840340 0.922519 +vt 0.839420 0.694559 +vt 0.840697 0.693501 +vt 0.840697 0.694559 +vt 0.839420 0.689525 +vt 0.840697 0.688467 +vt 0.839420 0.692442 +vt 0.840697 0.691383 +vt 0.840697 0.692442 +vt 0.839420 0.691202 +vt 0.840697 0.691202 +vt 0.839420 0.687408 +vt 0.840697 0.687408 +vt 0.839420 0.693501 +vt 0.839420 0.691383 +vt 0.839420 0.690206 +vt 0.623685 0.982228 +vt 0.623317 0.982391 +vt 0.841137 0.905883 +vt 0.840537 0.906294 +vt 0.840337 0.906274 +vt 0.839420 0.669157 +vt 0.840697 0.668957 +vt 0.840697 0.669157 +vt 0.840697 0.670040 +vt 0.839420 0.669637 +vt 0.840697 0.669637 +vt 0.986494 0.294941 +vt 0.987205 0.294769 +vt 0.987094 0.295352 +vt 0.987211 0.296549 +vt 0.986294 0.297079 +vt 0.839420 0.673991 +vt 0.840697 0.672932 +vt 0.840697 0.673991 +vt 0.839420 0.668957 +vt 0.840697 0.667898 +vt 0.839420 0.671873 +vt 0.840697 0.670815 +vt 0.840697 0.671873 +vt 0.839420 0.670633 +vt 0.840697 0.670633 +vt 0.839420 0.667898 +vt 0.840697 0.666839 +vt 0.839420 0.670815 +vt 0.841249 0.906466 +vt 0.840881 0.906629 +vt 0.987094 0.312223 +vt 0.986494 0.312634 +vt 0.986294 0.312613 +vt 0.628006 0.949880 +vt 0.627604 0.948603 +vt 0.628006 0.948603 +vt 0.978000 0.186892 +vt 0.978712 0.186720 +vt 0.978601 0.187303 +vt 0.978718 0.188500 +vt 0.977801 0.189030 +vt 0.631957 0.949880 +vt 0.630898 0.948603 +vt 0.631957 0.948603 +vt 0.626923 0.949880 +vt 0.625864 0.948603 +vt 0.626923 0.948603 +vt 0.629840 0.949880 +vt 0.628781 0.948603 +vt 0.629840 0.948603 +vt 0.628599 0.948603 +vt 0.625864 0.949880 +vt 0.624806 0.948603 +vt 0.630898 0.949880 +vt 0.628781 0.949880 +vt 0.627124 0.948603 +vt 0.627604 0.949880 +vt 0.627124 0.949880 +vt 0.987205 0.312806 +vt 0.986837 0.312968 +vt 0.627124 0.949880 +vt 0.626923 0.948603 +vt 0.627124 0.948603 +vt 0.900550 0.294606 +vt 0.801760 0.666839 +vt 0.900339 0.747418 +vt 0.257257 0.706763 +vt 0.510060 0.545155 +vt 0.623992 0.755490 +vt 0.564411 0.733169 +vt 0.601102 0.751865 +vt 0.535292 0.704051 +vt 0.931165 0.747251 +vt 0.115673 0.889896 +vt 0.113743 0.891825 +vt 0.509661 0.991511 +vt 0.509641 0.982031 +vt 0.508551 0.983329 +vt 0.854378 0.991072 +vt 0.854357 0.981591 +vt 0.853268 0.982890 +vt 0.136299 0.802196 +vt 0.144113 0.810009 +vt 0.006709 0.823485 +vt 0.011260 0.823479 +vt 0.192614 0.823437 +vt 0.197165 0.823432 +vt 0.811263 0.824703 +vt 0.815814 0.824698 +vt 0.034866 0.823485 +vt 0.039417 0.823479 +vt 0.932253 0.133830 +vt 0.936717 0.133826 +vt 0.100157 0.946547 +vt 0.095841 0.946547 +vt 0.203267 0.950395 +vt 0.203267 0.954710 +vt 0.970662 0.822238 +vt 0.973326 0.822238 +vt 0.970662 0.828669 +vt 0.975209 0.806938 +vt 0.973326 0.808821 +vt 0.968778 0.806938 +vt 0.874581 0.006712 +vt 0.972189 0.908141 +vt 0.970191 0.908141 +vt 0.968778 0.904731 +vt 0.972189 0.903318 +vt 0.973601 0.906729 +vt 0.301908 0.965175 +vt 0.329834 0.986886 +vt 0.890659 0.006709 +vt 0.287046 0.706763 +vt 0.316588 0.706763 +vt 0.464296 0.706763 +vt 0.434754 0.706763 +vt 0.346130 0.706763 +vt 0.983970 0.632325 +vt 0.983970 0.707645 +vt 0.257257 0.980367 +vt 0.645374 0.982318 +vt 0.674916 0.929623 +vt 0.717875 0.929623 +vt 0.928726 0.911870 +vt 0.384226 0.927504 +vt 0.968778 0.657864 +vt 0.977039 0.978723 +vt 0.355372 0.960780 +vt 0.974243 0.274985 +vt 0.705753 0.967126 +vt 0.099713 0.989505 +vt 0.813882 0.811275 +vt 0.961456 0.951347 +vt 0.876307 0.294606 +vt 0.826003 0.666839 +vt 0.508551 0.966501 +vt 0.503562 0.243536 +vt 0.632807 0.006709 +vt 0.467593 0.720180 +vt 0.467593 0.834112 +vt 0.386221 0.834096 +vt 0.345393 0.827578 +vt 0.308697 0.808880 +vt 0.914428 0.747248 +vt 0.914429 0.294606 +vt 0.070396 0.861396 +vt 0.072325 0.863325 +vt 0.548021 0.991179 +vt 0.546931 0.989881 +vt 0.471260 0.991179 +vt 0.470171 0.989881 +vt 0.510060 0.829304 +vt 0.517874 0.821490 +vt 0.179197 0.823438 +vt 0.174646 0.823432 +vt 0.257269 0.847529 +vt 0.257263 0.852080 +vt 0.787227 0.821502 +vt 0.782677 0.821496 +vt 0.151040 0.823438 +vt 0.146489 0.823432 +vt 0.946868 0.006716 +vt 0.942403 0.006712 +vt 0.645374 0.877718 +vt 0.645374 0.882034 +vt 0.811263 0.951660 +vt 0.811263 0.955975 +vt 0.977522 0.846634 +vt 0.970662 0.786661 +vt 0.968778 0.782113 +vt 0.977522 0.784777 +vt 0.970662 0.842086 +vt 0.970662 0.848518 +vt 0.968778 0.843970 +vt 0.970191 0.861935 +vt 0.972189 0.861935 +vt 0.973602 0.863347 +vt 0.972189 0.866758 +vt 0.968778 0.865345 +vt 0.455358 0.965069 +vt 0.427431 0.986780 +vt 0.890659 0.250411 +vt 0.632807 0.125122 +vt 0.632807 0.036497 +vt 0.632807 0.066039 +vt 0.632807 0.095581 +vt 0.632807 0.154663 +vt 0.632807 0.184205 +vt 0.968778 0.614143 +vt 0.968778 0.689463 +vt 0.113671 0.989505 +vt 0.977039 0.964764 +vt 0.275440 0.965175 +vt 0.663556 0.967127 +vt 0.876307 0.933398 +vt 0.880863 0.933398 +vt 0.841404 0.746726 +vt 0.839420 0.744741 +vt 0.840001 0.760724 +vt 0.841404 0.760143 +vt 0.968778 0.721062 +vt 0.733404 0.942995 +vt 0.731292 0.942995 +vt 0.976884 0.144929 +vt 0.977630 0.143127 +vt 0.979433 0.143873 +vt 0.979433 0.144929 +vt 0.978686 0.145676 +vt 0.985377 0.327974 +vt 0.985377 0.326915 +vt 0.986294 0.326385 +vt 0.987211 0.326915 +vt 0.987211 0.327974 +vt 0.986837 0.342275 +vt 0.985377 0.344218 +vt 0.985377 0.343159 +vt 0.986294 0.342630 +vt 0.987211 0.343160 +vt 0.738443 0.979860 +vt 0.735267 0.979860 +vt 0.731292 0.979860 +vt 0.621857 0.981507 +vt 0.621857 0.980448 +vt 0.622774 0.979918 +vt 0.623691 0.980448 +vt 0.623691 0.981506 +vt 0.840883 0.920046 +vt 0.839423 0.921989 +vt 0.839423 0.920931 +vt 0.840340 0.920401 +vt 0.841256 0.920931 +vt 0.839420 0.688467 +vt 0.839420 0.905745 +vt 0.839420 0.904686 +vt 0.840337 0.904156 +vt 0.841254 0.904686 +vt 0.841254 0.905745 +vt 0.839420 0.670040 +vt 0.986837 0.294606 +vt 0.985377 0.296549 +vt 0.985377 0.295491 +vt 0.986294 0.294961 +vt 0.987211 0.295491 +vt 0.839420 0.672932 +vt 0.839420 0.666839 +vt 0.985377 0.312084 +vt 0.985377 0.311025 +vt 0.986294 0.310496 +vt 0.987211 0.311025 +vt 0.987211 0.312084 +vt 0.978344 0.186557 +vt 0.976884 0.188500 +vt 0.976884 0.187442 +vt 0.977801 0.186912 +vt 0.978718 0.187442 +vt 0.628599 0.949880 +vt 0.624806 0.949880 +vt 0.626923 0.949880 +vn -0.1139 0.0000 0.9935 +vn -1.0000 0.0000 0.0000 +vn -0.1139 -0.0000 -0.9935 +vn -0.0587 -0.9983 0.0000 +vn -0.0587 0.9983 0.0000 +vn -0.0542 0.0000 0.9985 +vn -0.0542 -0.0000 -0.9985 +vn -0.0542 -0.9985 0.0000 +vn -0.0542 0.9985 0.0000 +vn -0.0543 0.0000 -0.9985 +vn 0.0000 0.0002 1.0000 +vn 0.0000 0.0792 0.9969 +vn 0.0000 0.3096 0.9509 +vn 0.0000 0.5878 0.8090 +vn 0.0000 0.8090 0.5878 +vn 0.0000 0.9511 0.3090 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9969 0.0785 +vn 0.0000 -0.9511 -0.3090 +vn 0.0000 -0.9877 -0.1564 +vn 0.0000 -0.5878 -0.8090 +vn 0.0000 -0.8090 -0.5878 +vn 0.0000 -0.0792 -0.9969 +vn 0.0000 -0.3096 -0.9509 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.0002 -1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.9679 0.2513 0.0000 +vn 0.9919 0.1267 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.6412 0.0000 -0.7674 +vn 0.0000 0.9941 0.1087 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.9919 0.1267 0.0000 +vn -0.9679 0.2513 0.0000 +vn -0.6412 0.0000 -0.7674 +vn -0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.9585 0.2850 0.0000 +vn -0.9865 0.1639 0.0000 +vn -0.8450 -0.5348 0.0000 +vn 0.7830 0.6220 -0.0000 +vn -0.9302 0.3672 0.0000 +vn 0.1471 -0.9891 -0.0000 +vn 0.3299 -0.9440 0.0000 +vn -0.1471 0.9891 0.0000 +vn 0.9302 -0.3672 0.0000 +vn -0.5247 -0.8513 0.0000 +vn -0.8112 0.5848 0.0000 +vn -0.2540 0.9672 0.0000 +vn -0.3720 0.9282 0.0000 +vn -0.8957 0.4446 0.0000 +vn 0.9381 -0.3464 0.0000 +vn -0.1690 0.9856 0.0000 +vn -0.7691 -0.6392 0.0000 +vn -0.6356 -0.7720 -0.0000 +vn 0.7690 0.6392 -0.0000 +vn 0.1690 -0.9856 0.0000 +vn -1.0000 0.0066 0.0000 +vn 0.0788 0.9969 0.0000 +vn 0.0001 -0.0000 -1.0000 +vn 0.1973 0.9803 0.0000 +vn 0.0742 0.9972 0.0000 +vn -0.6089 0.7932 0.0000 +vn -0.6089 0.7933 0.0000 +vn -0.0001 0.0000 1.0000 +vn 0.6901 -0.7237 0.0000 +vn 0.2817 0.9595 0.0000 +vn -0.9718 -0.2358 0.0000 +vn -0.9104 -0.4138 0.0000 +vn 0.9718 0.2358 -0.0000 +vn -0.2817 -0.9595 -0.0000 +vn -0.8951 0.4458 0.0000 +vn -0.8952 0.4458 0.0000 +vn 0.5092 0.8606 -0.0000 +vn -0.9967 0.0811 0.0000 +vn 0.9997 0.0257 -0.0000 +vn -0.5221 0.8529 0.0000 +vn -0.4776 -0.8786 0.0000 +vn -0.3044 -0.9525 -0.0000 +vn 0.4776 0.8786 -0.0000 +vn 0.5221 -0.8529 0.0000 +vn -0.9313 -0.3642 -0.0000 +vn -0.9313 -0.3643 -0.0000 +vn -0.2961 0.9552 0.0000 +vn -0.8260 0.5637 0.0000 +vn 0.0002 0.0000 1.0000 +s off +f 534/1/1 539/2/1 538/3/1 +f 539/2/2 536/4/2 538/3/2 +f 537/5/3 532/6/3 536/4/3 +f 534/7/4 536/4/4 532/8/4 +f 535/9/5 537/5/5 539/2/5 +f 543/10/6 546/11/6 542/12/6 +f 547/13/2 544/14/2 546/11/2 +f 545/15/7 540/16/7 544/14/7 +f 542/17/8 544/14/8 540/18/8 +f 543/19/9 545/15/9 547/13/9 +f 551/20/6 554/21/6 550/22/6 +f 555/23/2 552/24/2 554/21/2 +f 553/25/10 548/26/10 552/24/10 +f 554/21/8 548/27/8 550/28/8 +f 551/29/9 553/25/9 555/23/9 +f 559/30/6 562/31/6 558/32/6 +f 563/33/2 560/34/2 562/31/2 +f 561/35/7 556/36/7 560/34/7 +f 562/31/8 556/37/8 558/38/8 +f 563/33/9 557/39/9 561/35/9 +f 566/40/6 571/41/6 570/42/6 +f 571/41/2 568/43/2 570/42/2 +f 569/44/10 564/45/10 568/43/10 +f 570/42/8 564/46/8 566/47/8 +f 567/48/9 569/44/9 571/41/9 +f 534/1/1 535/49/1 539/2/1 +f 539/2/2 537/5/2 536/4/2 +f 537/5/3 533/50/3 532/6/3 +f 534/7/4 538/3/4 536/4/4 +f 535/9/5 533/51/5 537/5/5 +f 543/10/6 547/13/6 546/11/6 +f 547/13/2 545/15/2 544/14/2 +f 545/15/7 541/52/7 540/16/7 +f 542/17/8 546/11/8 544/14/8 +f 543/19/9 541/53/9 545/15/9 +f 551/20/6 555/23/6 554/21/6 +f 555/23/2 553/25/2 552/24/2 +f 553/25/7 549/54/7 548/26/7 +f 554/21/8 552/24/8 548/27/8 +f 551/29/9 549/55/9 553/25/9 +f 559/30/6 563/33/6 562/31/6 +f 563/33/2 561/35/2 560/34/2 +f 561/35/7 557/56/7 556/36/7 +f 562/31/8 560/34/8 556/37/8 +f 563/33/9 559/57/9 557/39/9 +f 566/40/6 567/58/6 571/41/6 +f 571/41/2 569/44/2 568/43/2 +f 569/44/7 565/59/7 564/45/7 +f 570/42/8 568/43/8 564/46/8 +f 567/48/9 565/60/9 569/44/9 +s 1 +f 465/61/11 12/62/12 466/63/12 +f 466/63/12 13/64/13 467/65/13 +f 467/65/13 14/66/14 468/67/14 +f 468/67/14 15/68/15 469/69/15 +f 469/69/15 16/70/16 470/71/16 +f 18/72/17 465/73/17 472/74/17 +f 8/75/18 19/76/18 1/77/18 +f 205/78/19 228/79/19 206/80/19 +f 471/81/20 9/82/18 473/83/18 +f 1/84/19 12/85/19 11/86/19 +f 5/87/19 12/85/19 6/88/19 +f 4/89/19 13/90/19 5/87/19 +f 4/89/19 15/91/19 14/92/19 +f 2/93/19 15/91/19 3/94/19 +f 7/95/19 16/96/19 2/93/19 +f 1/84/19 18/97/19 8/98/19 +f 21/99/19 20/100/19 26/101/19 +f 2/102/21 25/103/22 7/104/22 +f 4/105/23 23/106/24 3/107/24 +f 6/108/25 21/109/26 5/110/26 +f 7/104/27 26/111/27 8/112/27 +f 3/107/24 24/113/21 2/102/21 +f 5/110/26 22/114/23 4/105/23 +f 1/115/28 20/116/25 6/108/25 +f 33/117/27 27/118/27 32/119/27 +f 30/120/18 33/121/18 38/122/18 +f 37/123/19 31/124/19 35/125/19 +f 30/126/29 36/127/29 29/128/29 +f 35/125/30 38/129/30 37/123/30 +f 36/130/31 31/124/31 32/131/31 +f 33/121/32 37/123/32 38/122/32 +f 32/119/33 34/132/33 33/117/33 +f 36/130/17 27/133/17 29/134/17 +f 50/135/27 39/136/27 43/137/27 +f 48/138/29 46/139/29 49/140/29 +f 46/139/34 50/135/35 49/140/35 +f 44/141/27 47/142/27 50/135/27 +f 45/143/17 39/144/17 41/145/17 +f 42/146/18 44/141/18 46/139/18 +f 49/140/35 43/137/19 45/143/19 +f 48/138/29 45/143/29 41/147/29 +f 62/148/27 51/149/27 55/150/27 +f 60/151/29 58/152/29 61/153/29 +f 58/152/34 62/148/35 61/153/35 +f 56/154/27 59/155/27 62/148/27 +f 57/156/17 51/157/17 53/158/17 +f 54/159/18 56/154/18 58/152/18 +f 61/153/35 55/150/19 57/156/19 +f 60/151/29 57/156/29 53/160/29 +f 66/161/29 72/162/29 65/163/29 +f 67/164/29 78/165/29 68/166/29 +f 74/167/27 63/168/27 73/169/27 +f 72/162/17 63/170/17 65/171/17 +f 66/172/18 74/167/18 71/173/18 +f 69/174/19 71/173/19 70/175/19 +f 69/174/19 73/169/19 72/162/19 +f 68/176/19 71/173/19 74/167/19 +f 68/176/19 73/169/19 67/177/19 +f 75/178/19 77/179/19 76/180/19 +f 69/181/18 77/179/18 67/182/18 +f 68/183/17 75/178/17 70/184/17 +f 70/185/27 76/180/27 69/186/27 +f 82/187/18 86/188/18 89/189/18 +f 90/190/19 84/191/19 87/192/19 +f 88/193/31 84/191/31 83/194/31 +f 86/188/32 90/190/32 89/189/32 +f 88/193/17 79/195/17 81/196/17 +f 94/197/18 98/198/18 101/199/18 +f 102/200/19 96/201/19 99/202/19 +f 100/203/31 96/201/31 95/204/31 +f 98/198/32 102/200/32 101/199/32 +f 100/203/17 91/205/17 93/206/17 +f 106/207/18 110/208/18 113/209/18 +f 114/210/19 108/211/19 111/212/19 +f 112/213/31 108/211/31 107/214/31 +f 110/208/32 114/210/32 113/209/32 +f 112/213/17 103/215/17 105/216/17 +f 118/217/18 122/218/18 125/219/18 +f 126/220/19 120/221/19 123/222/19 +f 124/223/31 120/221/31 119/224/31 +f 122/218/32 126/220/32 125/219/32 +f 124/223/17 115/225/17 117/226/17 +f 130/227/18 134/228/18 137/229/18 +f 138/230/19 132/231/19 135/232/19 +f 136/233/31 132/231/31 131/234/31 +f 134/228/32 138/230/32 137/229/32 +f 136/233/17 127/235/17 129/236/17 +f 142/237/18 146/238/18 149/239/18 +f 150/240/19 144/241/19 147/242/19 +f 148/243/31 144/241/31 143/244/31 +f 146/238/32 150/240/32 149/239/32 +f 148/243/17 139/245/17 141/246/17 +f 154/247/18 158/248/18 161/249/18 +f 162/250/19 156/251/19 159/252/19 +f 160/253/31 156/251/31 155/254/31 +f 158/248/32 162/250/32 161/249/32 +f 160/253/17 151/255/17 153/256/17 +f 164/257/17 165/258/36 163/259/17 +f 166/260/36 167/261/37 165/258/36 +f 168/262/37 169/263/38 167/261/37 +f 170/264/38 171/265/39 169/263/38 +f 172/266/39 173/267/18 171/265/39 +f 175/268/27 185/269/27 177/270/27 +f 170/271/29 168/272/29 176/273/29 +f 178/274/29 180/275/29 186/276/29 +f 175/268/27 182/277/27 183/278/27 +f 169/279/27 173/280/27 177/270/27 +f 194/281/40 197/282/41 187/283/41 +f 202/284/29 200/285/29 198/286/29 +f 176/273/29 181/287/29 174/288/29 +f 174/289/18 182/290/18 173/267/18 +f 163/259/17 180/291/17 164/257/17 +f 177/270/27 179/292/27 163/293/27 +f 178/274/29 184/294/29 176/273/29 +f 200/295/42 193/296/43 192/297/42 +f 198/298/38 191/299/39 190/300/38 +f 195/301/36 189/302/37 188/303/36 +f 201/304/43 194/305/40 193/296/43 +f 199/306/39 192/297/42 191/299/39 +f 197/282/41 188/303/36 187/283/41 +f 196/307/37 190/300/38 189/302/37 +f 216/308/17 227/309/17 205/310/17 +f 206/311/19 207/312/19 8/98/19 +f 211/313/18 483/314/18 475/315/18 +f 211/313/18 226/316/18 219/317/18 +f 210/318/18 489/319/18 481/320/18 +f 203/321/44 216/322/44 205/323/44 +f 210/318/18 232/324/18 225/325/18 +f 215/326/44 207/327/44 206/328/44 +f 208/329/44 212/330/44 209/331/44 +f 209/332/19 232/333/19 204/334/19 +f 204/335/44 9/336/44 17/337/44 +f 218/338/44 219/339/44 226/340/44 +f 227/341/44 221/342/44 228/79/44 +f 229/343/44 223/344/44 230/345/44 +f 231/346/44 225/347/44 232/333/44 +f 215/348/18 228/349/18 221/350/18 +f 215/348/18 485/351/18 477/352/18 +f 214/353/17 229/354/17 207/355/17 +f 18/356/19 226/340/19 203/357/19 +f 207/358/19 230/345/19 208/359/19 +f 213/360/18 230/361/18 223/362/18 +f 213/360/18 487/363/18 479/364/18 +f 10/365/17 218/366/17 18/72/17 +f 212/367/17 231/368/17 209/369/17 +f 488/370/29 225/347/29 224/371/29 +f 486/372/29 223/344/29 222/373/29 +f 484/374/29 221/342/29 220/375/29 +f 217/376/29 483/377/29 219/339/29 +f 480/378/17 224/379/17 212/367/17 +f 479/380/29 212/330/29 213/381/29 +f 478/382/17 222/383/17 214/353/17 +f 477/384/29 214/385/29 215/326/29 +f 476/386/17 220/387/17 216/308/17 +f 475/388/29 216/322/29 211/389/29 +f 474/390/17 217/391/17 10/365/17 +f 210/392/29 473/393/29 9/336/29 +f 472/74/17 10/365/17 18/72/17 +f 471/81/20 16/70/16 17/394/45 +f 244/395/12 465/61/11 466/63/12 +f 245/396/13 466/63/12 467/65/13 +f 246/397/14 467/65/13 468/67/14 +f 247/398/15 468/67/14 469/69/15 +f 248/399/16 469/69/15 470/71/16 +f 465/73/17 250/400/17 472/74/17 +f 251/401/18 240/402/18 233/403/18 +f 460/404/2 437/405/2 438/406/2 +f 471/81/20 241/407/18 249/408/45 +f 233/409/2 244/410/2 238/411/2 +f 244/410/2 237/412/2 238/411/2 +f 245/413/2 236/414/2 237/412/2 +f 246/415/2 235/416/2 236/414/2 +f 247/417/2 234/418/2 235/416/2 +f 248/419/2 239/420/2 234/418/2 +f 250/421/2 233/409/2 240/422/2 +f 255/423/2 256/424/2 257/425/2 +f 257/426/22 234/427/21 239/428/22 +f 255/429/24 236/430/23 235/431/24 +f 253/432/26 238/433/25 237/434/26 +f 240/435/27 257/426/27 239/428/27 +f 256/436/21 235/431/24 234/427/21 +f 254/437/23 237/434/26 236/430/23 +f 252/438/25 233/439/28 238/433/25 +f 259/440/27 265/441/27 264/442/27 +f 265/443/18 262/444/18 270/445/18 +f 263/446/2 269/447/2 267/448/2 +f 268/449/29 262/450/29 261/451/29 +f 270/452/46 267/448/46 269/447/46 +f 263/446/47 268/453/47 264/454/47 +f 269/447/48 265/443/48 270/445/48 +f 266/455/49 264/442/49 265/441/49 +f 259/456/17 268/453/17 261/457/17 +f 271/458/27 282/459/27 275/460/27 +f 280/461/29 278/462/29 274/463/29 +f 282/459/50 278/462/51 281/464/50 +f 279/465/27 276/466/27 282/459/27 +f 271/467/17 277/468/17 273/469/17 +f 276/466/18 274/470/18 278/462/18 +f 275/460/2 281/464/50 277/468/2 +f 277/468/29 280/461/29 273/471/29 +f 283/472/27 294/473/27 287/474/27 +f 292/475/29 290/476/29 286/477/29 +f 294/473/50 290/476/51 293/478/50 +f 291/479/27 288/480/27 294/473/27 +f 283/481/17 289/482/17 285/483/17 +f 288/480/18 286/484/18 290/476/18 +f 287/474/2 293/478/50 289/482/2 +f 289/482/29 292/475/29 285/485/29 +f 304/486/29 298/487/29 297/488/29 +f 310/489/29 299/490/29 300/491/29 +f 295/492/27 306/493/27 305/494/27 +f 295/495/17 304/486/17 297/496/17 +f 306/493/18 298/497/18 303/498/18 +f 303/498/2 301/499/2 302/500/2 +f 304/486/2 299/501/2 301/499/2 +f 306/493/2 302/500/2 300/502/2 +f 305/494/2 300/502/2 299/501/2 +f 309/503/2 307/504/2 308/505/2 +f 309/503/18 301/506/18 299/507/18 +f 307/504/17 300/508/17 302/509/17 +f 308/505/27 302/510/27 301/511/27 +f 318/512/18 314/513/18 321/514/18 +f 316/515/2 322/516/2 319/517/2 +f 316/515/47 320/518/47 315/519/47 +f 322/516/48 318/512/48 321/514/48 +f 311/520/17 320/518/17 313/521/17 +f 330/522/18 326/523/18 333/524/18 +f 328/525/2 334/526/2 331/527/2 +f 328/525/47 332/528/47 327/529/47 +f 334/526/48 330/522/48 333/524/48 +f 323/530/17 332/528/17 325/531/17 +f 342/532/18 338/533/18 345/534/18 +f 340/535/2 346/536/2 343/537/2 +f 340/535/47 344/538/47 339/539/47 +f 346/536/48 342/532/48 345/534/48 +f 335/540/17 344/538/17 337/541/17 +f 354/542/18 350/543/18 357/544/18 +f 352/545/2 358/546/2 355/547/2 +f 352/545/47 356/548/47 351/549/47 +f 358/546/48 354/542/48 357/544/48 +f 347/550/17 356/548/17 349/551/17 +f 366/552/18 362/553/18 369/554/18 +f 364/555/2 370/556/2 367/557/2 +f 364/555/47 368/558/47 363/559/47 +f 370/556/48 366/552/48 369/554/48 +f 359/560/17 368/558/17 361/561/17 +f 378/562/18 374/563/18 381/564/18 +f 376/565/2 382/566/2 379/567/2 +f 376/565/47 380/568/47 375/569/47 +f 382/566/48 378/562/48 381/564/48 +f 371/570/17 380/568/17 373/571/17 +f 390/572/18 386/573/18 393/574/18 +f 388/575/2 394/576/2 391/577/2 +f 388/575/47 392/578/47 387/579/47 +f 394/576/48 390/572/48 393/574/48 +f 383/580/17 392/578/17 385/581/17 +f 397/582/41 396/583/17 395/584/17 +f 399/585/40 398/586/41 397/582/41 +f 401/587/43 400/588/40 399/585/40 +f 403/589/42 402/590/43 401/587/43 +f 405/591/18 404/592/42 403/589/42 +f 417/593/27 407/594/27 409/595/27 +f 400/596/29 404/597/29 408/598/29 +f 410/599/29 412/600/29 396/601/29 +f 407/594/27 414/602/27 405/603/27 +f 409/595/27 405/603/27 401/604/27 +f 419/605/36 434/606/37 426/607/37 +f 430/608/29 432/609/29 434/610/29 +f 413/611/29 408/598/29 406/612/29 +f 414/613/18 406/614/18 405/591/18 +f 412/615/17 395/584/17 396/583/17 +f 411/616/27 409/595/27 395/617/27 +f 416/618/29 410/599/29 408/598/29 +f 425/619/38 432/620/39 424/621/39 +f 423/622/42 430/623/43 422/624/43 +f 421/625/40 427/626/41 420/627/41 +f 426/628/37 433/629/38 425/619/38 +f 424/621/39 431/630/42 423/622/42 +f 420/627/41 429/631/36 419/605/36 +f 422/624/43 428/632/40 421/625/40 +f 459/633/17 448/634/17 437/635/17 +f 435/636/2 250/421/2 240/422/2 +f 483/314/18 443/637/18 475/315/18 +f 443/637/18 458/638/18 435/639/18 +f 489/319/18 442/640/18 481/320/18 +f 435/641/52 448/642/52 443/643/52 +f 442/640/18 464/644/18 436/645/18 +f 439/646/52 447/647/52 438/648/52 +f 440/649/52 444/650/52 445/651/52 +f 464/652/2 441/653/2 436/654/2 +f 241/655/52 436/656/52 249/657/52 +f 451/658/52 450/659/52 458/660/52 +f 459/661/52 453/662/52 452/663/52 +f 461/664/52 455/665/52 454/666/52 +f 463/667/52 457/668/52 456/669/52 +f 447/670/18 460/671/18 438/672/18 +f 485/351/18 447/670/18 477/352/18 +f 461/673/17 446/674/17 439/675/17 +f 458/660/2 250/676/2 435/677/2 +f 462/678/2 439/679/2 440/680/2 +f 445/681/18 462/682/18 440/683/18 +f 487/363/18 445/681/18 479/364/18 +f 450/684/17 242/685/17 250/400/17 +f 463/686/17 444/687/17 441/688/17 +f 457/668/29 488/370/29 456/669/29 +f 455/665/29 486/372/29 454/666/29 +f 453/662/29 484/374/29 452/663/29 +f 483/377/29 449/689/29 451/658/29 +f 456/690/17 480/378/17 444/687/17 +f 444/650/29 479/380/29 445/651/29 +f 454/691/17 478/382/17 446/674/17 +f 446/692/29 477/384/29 447/647/29 +f 452/693/17 476/386/17 448/634/17 +f 448/642/29 475/388/29 443/643/29 +f 449/694/17 474/390/17 242/685/17 +f 473/393/29 442/695/29 241/655/29 +f 242/685/17 472/74/17 250/400/17 +f 248/399/16 471/81/20 249/408/45 +f 490/696/53 493/697/46 492/698/46 +f 493/697/46 494/699/2 492/698/46 +f 495/700/2 496/701/49 494/699/2 +f 496/701/49 499/702/54 498/703/54 +f 492/704/18 496/705/18 498/706/18 +f 499/707/17 497/708/17 495/709/17 +f 502/710/18 500/711/48 501/712/18 +f 510/713/29 517/714/29 500/715/29 +f 503/716/48 510/717/2 500/711/48 +f 504/718/2 511/719/47 510/717/2 +f 513/720/29 527/721/29 525/722/29 +f 505/723/47 512/724/17 511/719/47 +f 510/713/29 521/725/29 518/726/29 +f 506/727/17 513/728/31 512/724/17 +f 501/729/29 517/714/29 516/730/29 +f 507/731/31 514/732/19 513/728/31 +f 508/733/19 515/734/32 514/735/19 +f 509/736/32 501/712/18 515/734/32 +f 516/737/18 520/738/48 519/739/18 +f 517/740/48 522/741/2 520/738/48 +f 518/742/2 524/743/47 522/741/2 +f 521/744/47 526/745/17 524/743/47 +f 526/745/17 525/746/31 528/747/31 +f 525/746/31 530/748/19 528/747/31 +f 529/749/32 519/739/18 531/750/32 +f 527/751/19 531/750/32 530/752/19 +f 512/753/29 525/722/29 523/754/29 +f 501/729/29 529/755/29 515/756/29 +f 531/757/27 520/758/27 524/759/27 +f 512/753/29 521/725/29 511/760/29 +f 515/756/29 527/721/29 514/761/29 +f 577/762/29 578/763/29 579/764/29 +f 580/765/55 579/766/56 578/767/55 +f 583/768/57 585/769/57 582/770/57 +f 580/771/27 583/772/27 586/773/27 +f 590/774/27 591/775/27 586/773/27 +f 573/776/58 591/777/58 574/778/58 +f 581/779/56 572/780/59 579/766/56 +f 590/781/60 576/782/60 575/783/60 +f 586/784/61 582/770/61 577/785/61 +f 588/786/62 573/787/62 572/780/62 +f 591/777/63 575/783/63 574/778/63 +f 576/782/64 586/784/64 577/785/64 +f 580/765/55 585/769/65 584/788/65 +f 578/763/29 582/789/29 585/790/29 +f 597/791/29 598/792/29 599/793/29 +f 600/794/66 599/795/67 598/796/66 +f 603/797/68 605/798/68 602/799/68 +f 600/800/27 603/801/27 606/802/27 +f 610/803/27 611/804/27 606/802/27 +f 607/805/69 594/806/69 593/807/69 +f 601/808/67 592/809/70 599/795/67 +f 610/810/71 596/811/71 595/812/71 +f 606/813/72 602/799/72 597/814/72 +f 592/809/73 607/815/73 593/816/73 +f 611/817/74 595/812/74 594/806/74 +f 609/818/75 597/814/75 596/811/75 +f 600/794/66 605/798/76 604/819/76 +f 598/792/29 602/820/29 605/821/29 +f 617/822/29 618/823/77 619/824/29 +f 620/825/78 619/826/79 618/827/78 +f 622/828/80 624/829/81 625/830/80 +f 620/831/82 623/832/27 626/833/27 +f 630/834/27 631/835/27 626/833/27 +f 627/836/83 614/837/83 613/838/83 +f 621/839/79 612/840/84 619/826/79 +f 630/841/85 616/842/85 615/843/85 +f 626/844/86 622/828/86 617/845/86 +f 628/846/87 613/847/87 612/840/87 +f 614/837/88 630/841/88 615/843/88 +f 629/848/89 617/845/90 616/842/90 +f 618/827/78 624/829/91 620/825/78 +f 618/823/77 622/849/29 625/850/29 +f 637/851/29 638/852/77 639/853/29 +f 643/854/92 645/855/92 642/856/92 +f 640/857/27 643/858/27 646/859/27 +f 650/860/27 651/861/27 646/859/27 +f 647/862/93 634/863/93 633/864/93 +f 641/865/94 632/866/94 639/867/94 +f 650/868/95 636/869/95 635/870/95 +f 637/871/96 643/854/96 642/856/96 +f 648/872/97 633/873/97 632/866/97 +f 651/874/98 635/870/98 634/863/98 +f 649/875/99 637/871/100 636/869/100 +f 638/876/101 644/877/101 640/878/101 +f 638/852/77 642/879/29 645/880/77 +f 654/881/102 653/882/102 652/883/102 +f 465/61/11 11/884/11 12/62/12 +f 466/63/12 12/62/12 13/64/13 +f 467/65/13 13/64/13 14/66/14 +f 468/67/14 14/66/14 15/68/15 +f 469/69/15 15/68/15 16/70/16 +f 18/72/17 11/885/17 465/73/17 +f 8/75/18 26/886/18 19/76/18 +f 205/78/19 227/341/19 228/79/19 +f 471/81/20 17/394/45 9/82/18 +f 1/84/19 6/88/19 12/85/19 +f 5/87/19 13/90/19 12/85/19 +f 4/89/19 14/92/19 13/90/19 +f 4/89/19 3/94/19 15/91/19 +f 2/93/19 16/96/19 15/91/19 +f 7/95/19 17/887/19 16/96/19 +f 1/84/19 11/86/19 18/97/19 +f 19/888/19 26/101/19 20/100/19 +f 26/101/19 25/889/19 23/890/19 +f 25/889/19 24/891/19 23/890/19 +f 23/890/19 22/892/19 26/101/19 +f 22/892/19 21/99/19 26/101/19 +f 2/102/21 24/113/21 25/103/22 +f 4/105/23 22/114/23 23/106/24 +f 6/108/25 20/116/25 21/109/26 +f 7/104/27 25/103/27 26/111/27 +f 3/107/24 23/106/24 24/113/21 +f 5/110/26 21/109/26 22/114/23 +f 1/115/28 19/893/28 20/116/25 +f 33/117/27 28/894/27 27/118/27 +f 30/120/18 28/895/18 33/121/18 +f 37/123/19 34/132/19 31/124/19 +f 30/126/29 38/129/29 36/127/29 +f 35/125/30 36/127/30 38/129/30 +f 36/130/31 35/125/31 31/124/31 +f 33/121/32 34/132/32 37/123/32 +f 32/119/33 31/124/33 34/132/33 +f 36/130/17 32/131/17 27/133/17 +f 50/135/27 47/142/27 39/136/27 +f 48/138/29 42/896/29 46/139/29 +f 46/139/34 44/141/34 50/135/35 +f 44/141/27 40/897/27 47/142/27 +f 45/143/17 43/137/17 39/144/17 +f 42/146/18 40/898/18 44/141/18 +f 49/140/35 50/135/35 43/137/19 +f 48/138/29 49/140/29 45/143/29 +f 62/148/27 59/155/27 51/149/27 +f 60/151/29 54/899/29 58/152/29 +f 58/152/34 56/154/34 62/148/35 +f 56/154/27 52/900/27 59/155/27 +f 57/156/17 55/150/17 51/157/17 +f 54/159/18 52/901/18 56/154/18 +f 61/153/35 62/148/35 55/150/19 +f 60/151/29 61/153/29 57/156/29 +f 66/161/29 71/173/29 72/162/29 +f 67/164/29 77/179/29 78/165/29 +f 74/167/27 64/902/27 63/168/27 +f 72/162/17 73/169/17 63/170/17 +f 66/172/18 64/903/18 74/167/18 +f 69/174/19 72/162/19 71/173/19 +f 69/174/19 67/177/19 73/169/19 +f 68/176/19 70/175/19 71/173/19 +f 68/176/19 74/167/19 73/169/19 +f 75/178/19 78/165/19 77/179/19 +f 69/181/18 76/180/18 77/179/18 +f 68/183/17 78/165/17 75/178/17 +f 70/185/27 75/178/27 76/180/27 +f 82/187/18 80/904/18 86/188/18 +f 90/190/19 85/905/19 84/191/19 +f 88/193/31 87/192/31 84/191/31 +f 86/188/32 85/905/32 90/190/32 +f 88/193/17 83/194/17 79/195/17 +f 94/197/18 92/906/18 98/198/18 +f 102/200/19 97/907/19 96/201/19 +f 100/203/31 99/202/31 96/201/31 +f 98/198/32 97/907/32 102/200/32 +f 100/203/17 95/204/17 91/205/17 +f 106/207/18 104/908/18 110/208/18 +f 114/210/19 109/909/19 108/211/19 +f 112/213/31 111/212/31 108/211/31 +f 110/208/32 109/909/32 114/210/32 +f 112/213/17 107/214/17 103/215/17 +f 118/217/18 116/910/18 122/218/18 +f 126/220/19 121/911/19 120/221/19 +f 124/223/31 123/222/31 120/221/31 +f 122/218/32 121/911/32 126/220/32 +f 124/223/17 119/224/17 115/225/17 +f 130/227/18 128/912/18 134/228/18 +f 138/230/19 133/913/19 132/231/19 +f 136/233/31 135/232/31 132/231/31 +f 134/228/32 133/913/32 138/230/32 +f 136/233/17 131/234/17 127/235/17 +f 142/237/18 140/914/18 146/238/18 +f 150/240/19 145/915/19 144/241/19 +f 148/243/31 147/242/31 144/241/31 +f 146/238/32 145/915/32 150/240/32 +f 148/243/17 143/244/17 139/245/17 +f 154/247/18 152/916/18 158/248/18 +f 162/250/19 157/917/19 156/251/19 +f 160/253/31 159/252/31 156/251/31 +f 158/248/32 157/917/32 162/250/32 +f 160/253/17 155/254/17 151/255/17 +f 164/257/17 166/260/36 165/258/36 +f 166/260/36 168/262/37 167/261/37 +f 168/262/37 170/264/38 169/263/38 +f 170/264/38 172/266/39 171/265/39 +f 172/266/39 174/289/18 173/267/18 +f 175/268/27 183/278/27 185/269/27 +f 168/272/29 166/918/29 164/919/29 +f 164/919/29 178/274/29 168/272/29 +f 178/274/29 176/273/29 168/272/29 +f 176/273/29 174/288/29 172/920/29 +f 172/920/29 170/271/29 176/273/29 +f 178/274/29 164/919/29 180/275/29 +f 175/268/27 173/280/27 182/277/27 +f 177/270/27 163/293/27 165/921/27 +f 165/921/27 167/922/27 177/270/27 +f 167/922/27 169/279/27 177/270/27 +f 169/279/27 171/923/27 173/280/27 +f 173/280/27 175/268/27 177/270/27 +f 194/281/40 202/924/40 197/282/41 +f 195/925/29 197/926/29 202/284/29 +f 202/284/29 201/927/29 200/285/29 +f 200/285/29 199/928/29 198/286/29 +f 198/286/29 196/929/29 195/925/29 +f 195/925/29 202/284/29 198/286/29 +f 176/273/29 184/294/29 181/287/29 +f 174/289/18 181/930/18 182/290/18 +f 163/259/17 179/931/17 180/291/17 +f 177/270/27 185/269/27 179/292/27 +f 178/274/29 186/276/29 184/294/29 +f 200/295/42 201/304/43 193/296/43 +f 198/298/38 199/306/39 191/299/39 +f 195/301/36 196/307/37 189/302/37 +f 201/304/43 202/932/40 194/305/40 +f 199/306/39 200/295/42 192/297/42 +f 197/282/41 195/301/36 188/303/36 +f 196/307/37 198/298/38 190/300/38 +f 216/308/17 220/387/17 227/309/17 +f 17/887/19 7/95/19 204/933/19 +f 7/95/19 8/98/19 207/312/19 +f 204/933/19 7/95/19 209/934/19 +f 8/98/19 18/97/19 203/935/19 +f 203/935/19 205/936/19 8/98/19 +f 205/936/19 206/311/19 8/98/19 +f 207/312/19 208/937/19 7/95/19 +f 208/937/19 209/934/19 7/95/19 +f 211/313/18 219/317/18 483/314/18 +f 211/313/18 203/938/18 226/316/18 +f 210/318/18 225/325/18 489/319/18 +f 203/321/44 211/389/44 216/322/44 +f 210/318/18 204/939/18 232/324/18 +f 215/326/44 214/385/44 207/327/44 +f 208/329/44 213/381/44 212/330/44 +f 209/332/19 231/346/19 232/333/19 +f 204/335/44 210/392/44 9/336/44 +f 218/338/44 217/376/44 219/339/44 +f 227/341/44 220/375/44 221/342/44 +f 229/343/44 222/373/44 223/344/44 +f 231/346/44 224/371/44 225/347/44 +f 215/348/18 206/940/18 228/349/18 +f 215/348/18 221/350/18 485/351/18 +f 214/353/17 222/383/17 229/354/17 +f 18/356/19 218/338/19 226/340/19 +f 207/358/19 229/343/19 230/345/19 +f 213/360/18 208/941/18 230/361/18 +f 213/360/18 223/362/18 487/363/18 +f 10/365/17 217/391/17 218/366/17 +f 212/367/17 224/379/17 231/368/17 +f 488/370/29 489/942/29 225/347/29 +f 486/372/29 487/943/29 223/344/29 +f 484/374/29 485/944/29 221/342/29 +f 217/376/29 482/945/29 483/377/29 +f 480/378/17 488/946/17 224/379/17 +f 479/380/29 480/947/29 212/330/29 +f 478/382/17 486/948/17 222/383/17 +f 477/384/29 478/949/29 214/385/29 +f 476/386/17 484/950/17 220/387/17 +f 475/388/29 476/951/29 216/322/29 +f 474/390/17 482/952/17 217/391/17 +f 210/392/29 481/953/29 473/393/29 +f 472/74/17 474/390/17 10/365/17 +f 471/81/20 470/71/16 16/70/16 +f 244/395/12 243/954/11 465/61/11 +f 245/396/13 244/395/12 466/63/12 +f 246/397/14 245/396/13 467/65/13 +f 247/398/15 246/397/14 468/67/14 +f 248/399/16 247/398/15 469/69/15 +f 465/73/17 243/955/17 250/400/17 +f 251/401/18 258/956/18 240/402/18 +f 460/404/2 459/661/2 437/405/2 +f 471/81/20 473/83/18 241/407/18 +f 233/409/2 243/957/2 244/410/2 +f 244/410/2 245/413/2 237/412/2 +f 245/413/2 246/415/2 236/414/2 +f 246/415/2 247/417/2 235/416/2 +f 247/417/2 248/419/2 234/418/2 +f 248/419/2 249/958/2 239/420/2 +f 250/421/2 243/957/2 233/409/2 +f 257/425/2 258/959/2 255/423/2 +f 258/959/2 251/960/2 252/961/2 +f 253/962/2 258/959/2 252/961/2 +f 253/962/2 254/963/2 258/959/2 +f 254/963/2 255/423/2 258/959/2 +f 257/426/22 256/436/21 234/427/21 +f 255/429/24 254/437/23 236/430/23 +f 253/432/26 252/438/25 238/433/25 +f 240/435/27 258/964/27 257/426/27 +f 256/436/21 255/429/24 235/431/24 +f 254/437/23 253/432/26 237/434/26 +f 252/438/25 251/965/28 233/439/28 +f 259/440/27 260/966/27 265/441/27 +f 265/443/18 260/967/18 262/444/18 +f 263/446/2 266/455/2 269/447/2 +f 268/449/29 270/452/29 262/450/29 +f 270/452/46 268/449/46 267/448/46 +f 263/446/47 267/448/47 268/453/47 +f 269/447/48 266/455/48 265/443/48 +f 266/455/49 263/446/49 264/442/49 +f 259/456/17 264/454/17 268/453/17 +f 271/458/27 279/465/27 282/459/27 +f 280/461/29 281/464/29 278/462/29 +f 282/459/50 276/466/51 278/462/51 +f 279/465/27 272/968/27 276/466/27 +f 271/467/17 275/460/17 277/468/17 +f 276/466/18 272/969/18 274/470/18 +f 275/460/2 282/459/50 281/464/50 +f 277/468/29 281/464/29 280/461/29 +f 283/472/27 291/479/27 294/473/27 +f 292/475/29 293/478/29 290/476/29 +f 294/473/50 288/480/51 290/476/51 +f 291/479/27 284/970/27 288/480/27 +f 283/481/17 287/474/17 289/482/17 +f 288/480/18 284/971/18 286/484/18 +f 287/474/2 294/473/50 293/478/50 +f 289/482/29 293/478/29 292/475/29 +f 304/486/29 303/498/29 298/487/29 +f 310/489/29 309/503/29 299/490/29 +f 295/492/27 296/972/27 306/493/27 +f 295/495/17 305/494/17 304/486/17 +f 306/493/18 296/973/18 298/497/18 +f 303/498/2 304/486/2 301/499/2 +f 304/486/2 305/494/2 299/501/2 +f 306/493/2 303/498/2 302/500/2 +f 305/494/2 306/493/2 300/502/2 +f 309/503/2 310/489/2 307/504/2 +f 309/503/18 308/505/18 301/506/18 +f 307/504/17 310/489/17 300/508/17 +f 308/505/27 307/504/27 302/510/27 +f 318/512/18 312/974/18 314/513/18 +f 316/515/2 317/975/2 322/516/2 +f 316/515/47 319/517/47 320/518/47 +f 322/516/48 317/975/48 318/512/48 +f 311/520/17 315/519/17 320/518/17 +f 330/522/18 324/976/18 326/523/18 +f 328/525/2 329/977/2 334/526/2 +f 328/525/47 331/527/47 332/528/47 +f 334/526/48 329/977/48 330/522/48 +f 323/530/17 327/529/17 332/528/17 +f 342/532/18 336/978/18 338/533/18 +f 340/535/2 341/979/2 346/536/2 +f 340/535/47 343/537/47 344/538/47 +f 346/536/48 341/979/48 342/532/48 +f 335/540/17 339/539/17 344/538/17 +f 354/542/18 348/980/18 350/543/18 +f 352/545/2 353/981/2 358/546/2 +f 352/545/47 355/547/47 356/548/47 +f 358/546/48 353/981/48 354/542/48 +f 347/550/17 351/549/17 356/548/17 +f 366/552/18 360/982/18 362/553/18 +f 364/555/2 365/983/2 370/556/2 +f 364/555/47 367/557/47 368/558/47 +f 370/556/48 365/983/48 366/552/48 +f 359/560/17 363/559/17 368/558/17 +f 378/562/18 372/984/18 374/563/18 +f 376/565/2 377/985/2 382/566/2 +f 376/565/47 379/567/47 380/568/47 +f 382/566/48 377/985/48 378/562/48 +f 371/570/17 375/569/17 380/568/17 +f 390/572/18 384/986/18 386/573/18 +f 388/575/2 389/987/2 394/576/2 +f 388/575/47 391/577/47 392/578/47 +f 394/576/48 389/987/48 390/572/48 +f 383/580/17 387/579/17 392/578/17 +f 397/582/41 398/586/41 396/583/17 +f 399/585/40 400/588/40 398/586/41 +f 401/587/43 402/590/43 400/588/40 +f 403/589/42 404/592/42 402/590/43 +f 405/591/18 406/614/18 404/592/42 +f 417/593/27 415/988/27 407/594/27 +f 396/601/29 398/989/29 400/596/29 +f 400/596/29 402/990/29 404/597/29 +f 404/597/29 406/612/29 408/598/29 +f 408/598/29 410/599/29 396/601/29 +f 396/601/29 400/596/29 408/598/29 +f 410/599/29 418/991/29 412/600/29 +f 407/594/27 415/988/27 414/602/27 +f 397/992/27 395/617/27 409/595/27 +f 409/595/27 407/594/27 405/603/27 +f 405/603/27 403/993/27 401/604/27 +f 401/604/27 399/994/27 397/992/27 +f 397/992/27 409/595/27 401/604/27 +f 419/605/36 429/631/36 434/606/37 +f 434/610/29 429/995/29 427/996/29 +f 427/996/29 428/997/29 434/610/29 +f 428/997/29 430/608/29 434/610/29 +f 430/608/29 431/998/29 432/609/29 +f 432/609/29 433/999/29 434/610/29 +f 413/611/29 416/618/29 408/598/29 +f 414/613/18 413/1000/18 406/614/18 +f 412/615/17 411/1001/17 395/584/17 +f 411/616/27 417/593/27 409/595/27 +f 416/618/29 418/991/29 410/599/29 +f 425/619/38 433/629/38 432/620/39 +f 423/622/42 431/630/42 430/623/43 +f 421/625/40 428/632/40 427/626/41 +f 426/628/37 434/1002/37 433/629/38 +f 424/621/39 432/620/39 431/630/42 +f 420/627/41 427/626/41 429/631/36 +f 422/624/43 430/623/43 428/632/40 +f 459/633/17 452/693/17 448/634/17 +f 240/422/2 239/420/2 439/1003/2 +f 239/420/2 249/958/2 436/1004/2 +f 441/1005/2 239/420/2 436/1004/2 +f 441/1005/2 440/1006/2 239/420/2 +f 440/1006/2 439/1003/2 239/420/2 +f 240/422/2 439/1003/2 438/1007/2 +f 438/1007/2 437/1008/2 240/422/2 +f 437/1008/2 435/636/2 240/422/2 +f 483/314/18 451/1009/18 443/637/18 +f 443/637/18 451/1009/18 458/638/18 +f 489/319/18 457/1010/18 442/640/18 +f 435/641/52 437/1011/52 448/642/52 +f 442/640/18 457/1010/18 464/644/18 +f 439/646/52 446/692/52 447/647/52 +f 440/649/52 441/1012/52 444/650/52 +f 464/652/2 463/667/2 441/653/2 +f 241/655/52 442/695/52 436/656/52 +f 451/658/52 449/689/52 450/659/52 +f 459/661/52 460/404/52 453/662/52 +f 461/664/52 462/678/52 455/665/52 +f 463/667/52 464/652/52 457/668/52 +f 447/670/18 453/1013/18 460/671/18 +f 485/351/18 453/1013/18 447/670/18 +f 461/673/17 454/691/17 446/674/17 +f 458/660/2 450/659/2 250/676/2 +f 462/678/2 461/664/2 439/679/2 +f 445/681/18 455/1014/18 462/682/18 +f 487/363/18 455/1014/18 445/681/18 +f 450/684/17 449/694/17 242/685/17 +f 463/686/17 456/690/17 444/687/17 +f 457/668/29 489/942/29 488/370/29 +f 455/665/29 487/943/29 486/372/29 +f 453/662/29 485/944/29 484/374/29 +f 483/377/29 482/945/29 449/689/29 +f 456/690/17 488/946/17 480/378/17 +f 444/650/29 480/947/29 479/380/29 +f 454/691/17 486/948/17 478/382/17 +f 446/692/29 478/949/29 477/384/29 +f 452/693/17 484/950/17 476/386/17 +f 448/642/29 476/951/29 475/388/29 +f 449/694/17 482/952/17 474/390/17 +f 473/393/29 481/953/29 442/695/29 +f 242/685/17 474/390/17 472/74/17 +f 248/399/16 470/71/16 471/81/20 +f 490/696/53 491/1015/53 493/697/46 +f 493/697/46 495/700/2 494/699/2 +f 495/700/2 497/1016/49 496/701/49 +f 496/701/49 497/1016/49 499/702/54 +f 498/706/18 490/1017/18 492/704/18 +f 492/704/18 494/1018/18 496/705/18 +f 495/709/17 493/1019/17 491/1020/17 +f 491/1020/17 499/707/17 495/709/17 +f 502/710/18 503/716/48 500/711/48 +f 510/713/29 518/726/29 517/714/29 +f 503/716/48 504/718/2 510/717/2 +f 504/718/2 505/723/47 511/719/47 +f 513/720/29 514/761/29 527/721/29 +f 505/723/47 506/727/17 512/724/17 +f 510/713/29 511/760/29 521/725/29 +f 506/727/17 507/731/31 513/728/31 +f 501/729/29 500/715/29 517/714/29 +f 507/731/31 508/1021/19 514/732/19 +f 508/733/19 509/736/32 515/734/32 +f 509/736/32 502/710/18 501/712/18 +f 516/737/18 517/740/48 520/738/48 +f 517/740/48 518/742/2 522/741/2 +f 518/742/2 521/744/47 524/743/47 +f 521/744/47 523/1022/17 526/745/17 +f 526/745/17 523/1022/17 525/746/31 +f 525/746/31 527/1023/19 530/748/19 +f 529/749/32 516/737/18 519/739/18 +f 527/751/19 529/749/32 531/750/32 +f 512/753/29 513/720/29 525/722/29 +f 501/729/29 516/730/29 529/755/29 +f 531/757/27 519/1024/27 520/758/27 +f 520/758/27 522/1025/27 524/759/27 +f 524/759/27 526/1026/27 531/757/27 +f 526/1026/27 528/1027/27 531/757/27 +f 528/1027/27 530/1028/27 531/757/27 +f 512/753/29 523/754/29 521/725/29 +f 515/756/29 529/755/29 527/721/29 +f 579/764/29 572/1029/29 577/762/29 +f 572/1029/29 573/1030/29 577/762/29 +f 573/1030/29 574/1031/29 577/762/29 +f 574/1031/29 575/1032/29 577/762/29 +f 575/1032/29 576/1033/29 577/762/29 +f 580/765/55 581/779/56 579/766/56 +f 583/768/57 584/788/57 585/769/57 +f 580/771/27 584/1034/27 583/772/27 +f 591/775/27 587/1035/27 586/773/27 +f 587/1035/27 588/1036/27 586/773/27 +f 588/1036/27 581/1037/27 586/773/27 +f 581/1037/27 580/771/27 586/773/27 +f 586/773/27 589/1038/27 590/774/27 +f 573/776/58 587/1039/58 591/777/58 +f 581/779/56 588/786/59 572/780/59 +f 590/781/60 589/1040/60 576/782/60 +f 586/784/61 583/768/61 582/770/61 +f 588/786/62 587/1041/62 573/787/62 +f 591/777/63 590/781/63 575/783/63 +f 576/782/64 589/1040/64 586/784/64 +f 580/765/55 578/767/55 585/769/65 +f 578/763/29 577/762/29 582/789/29 +f 599/793/29 592/1042/29 597/791/29 +f 592/1042/29 593/1043/29 597/791/29 +f 593/1043/29 594/1044/29 597/791/29 +f 594/1044/29 595/1045/29 597/791/29 +f 595/1045/29 596/1046/29 597/791/29 +f 600/794/66 601/808/67 599/795/67 +f 603/797/68 604/819/68 605/798/68 +f 600/800/27 604/1047/27 603/801/27 +f 611/804/27 607/1048/27 606/802/27 +f 607/1048/27 608/1049/27 606/802/27 +f 608/1049/27 601/1050/27 606/802/27 +f 601/1050/27 600/800/27 606/802/27 +f 606/802/27 609/1051/27 610/803/27 +f 607/805/69 611/817/69 594/806/69 +f 601/808/67 608/1052/70 592/809/70 +f 610/810/71 609/818/71 596/811/71 +f 606/813/72 603/797/72 602/799/72 +f 592/809/73 608/1052/73 607/815/73 +f 611/817/74 610/810/74 595/812/74 +f 609/818/75 606/813/75 597/814/75 +f 600/794/66 598/796/66 605/798/76 +f 598/792/29 597/791/29 602/820/29 +f 619/824/29 612/1053/29 617/822/29 +f 612/1053/29 613/1054/29 617/822/29 +f 613/1054/29 614/1055/29 617/822/29 +f 614/1055/29 615/1056/29 617/822/29 +f 615/1056/29 616/1057/29 617/822/29 +f 620/825/78 621/839/79 619/826/79 +f 622/828/80 623/1058/81 624/829/81 +f 620/831/82 624/1059/27 623/832/27 +f 631/835/27 627/1060/27 626/833/27 +f 627/1060/27 628/1061/27 626/833/27 +f 628/1061/27 621/1062/27 626/833/27 +f 621/1062/27 620/831/82 626/833/27 +f 626/833/27 629/1063/103 630/834/27 +f 627/836/83 631/1064/83 614/837/83 +f 621/839/79 628/846/84 612/840/84 +f 630/841/85 629/848/85 616/842/85 +f 626/844/86 623/1058/86 622/828/86 +f 628/846/87 627/1065/87 613/847/87 +f 614/837/88 631/1064/88 630/841/88 +f 629/848/89 626/844/89 617/845/90 +f 618/827/78 625/830/91 624/829/91 +f 618/823/77 617/822/29 622/849/29 +f 639/853/29 632/1066/29 637/851/29 +f 632/1066/29 633/1067/29 637/851/29 +f 633/1067/29 634/1068/29 637/851/29 +f 634/1068/29 635/1069/29 637/851/29 +f 635/1069/29 636/1070/29 637/851/29 +f 643/854/92 644/877/92 645/855/92 +f 640/857/27 644/1071/27 643/858/27 +f 651/861/27 647/1072/27 646/859/27 +f 647/1072/27 648/1073/27 646/859/27 +f 648/1073/27 641/1074/27 646/859/27 +f 641/1074/27 640/857/27 646/859/27 +f 646/859/27 649/1075/82 650/860/27 +f 647/862/93 651/874/93 634/863/93 +f 641/865/94 648/872/94 632/866/94 +f 650/868/95 649/875/95 636/869/95 +f 637/871/96 646/1076/96 643/854/96 +f 648/872/97 647/1077/97 633/873/97 +f 651/874/98 650/868/98 635/870/98 +f 649/875/99 646/1076/99 637/871/100 +f 638/876/101 645/855/101 644/877/101 +f 638/852/77 637/851/29 642/879/29 +f 654/881/102 655/1078/102 653/882/102 +o doorRight +v 0.299220 0.487402 -3.251414 +v 0.299220 5.590070 -1.004025 +v 0.299220 5.128570 -1.909768 +v 0.299220 4.409768 -2.628571 +v 0.299220 3.503919 -3.090124 +v 0.299220 2.496066 -3.251015 +v 0.299220 5.679564 -0.438986 +v 0.299220 0.487402 -0.438985 +v 0.149610 5.900837 -0.125000 +v 0.149610 0.054715 -0.125000 +v 0.299220 0.054715 -3.440433 +v 0.299220 2.511072 -3.439998 +v 0.299220 3.563152 -3.272047 +v 0.299220 4.522236 -2.783369 +v 0.299220 5.283369 -2.022236 +v 0.299220 5.772047 -1.063152 +v 0.299220 5.900837 -0.250000 +v 0.299220 0.054715 -0.250000 +v 0.231315 0.487402 -3.251414 +v 0.231315 2.496066 -3.251015 +v 0.231315 3.503919 -3.090124 +v 0.231315 4.409768 -2.628571 +v 0.231315 5.128570 -1.909768 +v 0.231315 5.590070 -1.004025 +v 0.231315 5.679564 -0.438986 +v 0.231315 0.487402 -0.438985 +v 0.204275 1.917457 -1.651271 +v 0.204275 2.047506 -1.651271 +v 0.204275 1.917457 -1.142414 +v 0.204275 2.047506 -1.142414 +v 0.261126 1.933194 -1.635535 +v 0.245389 1.917457 -1.651271 +v 0.245389 2.047506 -1.651271 +v 0.261126 2.031770 -1.635535 +v 0.261126 1.933194 -1.158151 +v 0.245389 1.917457 -1.142414 +v 0.261126 2.031770 -1.158151 +v 0.245389 2.047506 -1.142414 +v 0.215124 3.126893 -0.898361 +v 0.215124 3.628286 -0.898361 +v 0.215124 3.126893 -0.736489 +v 0.215124 3.628286 -0.736489 +v 0.294289 3.126893 -0.898361 +v 0.247374 3.628286 -0.898361 +v 0.294289 3.126893 -0.736489 +v 0.247374 3.628286 -0.736489 +v 0.215124 3.447602 -0.898361 +v 0.215124 3.447602 -0.736489 +v 0.294289 3.447602 -0.736489 +v 0.294289 3.447602 -0.898361 +v 0.215124 3.126893 -1.339800 +v 0.215124 3.628286 -1.339800 +v 0.215124 3.126893 -1.177929 +v 0.215124 3.628286 -1.177929 +v 0.294289 3.126893 -1.339800 +v 0.247374 3.628286 -1.339800 +v 0.294289 3.126893 -1.177929 +v 0.247374 3.628286 -1.177929 +v 0.215124 3.447602 -1.339800 +v 0.215124 3.447602 -1.177929 +v 0.294289 3.447602 -1.177929 +v 0.294289 3.447602 -1.339800 +v 0.110842 1.775868 -3.124604 +v 0.110842 2.305447 -3.124604 +v 0.110842 1.775868 -1.892389 +v 0.110842 2.305447 -1.892389 +v 0.303721 1.835501 -3.064971 +v 0.303721 2.245814 -3.064971 +v 0.303721 1.835501 -1.952022 +v 0.303721 2.245814 -1.952022 +v 0.303721 2.305447 -1.892389 +v 0.303721 1.775868 -1.892389 +v 0.303721 1.775868 -3.124604 +v 0.303721 2.305447 -3.124604 +v 0.237602 2.245814 -1.952022 +v 0.237602 1.835501 -1.952022 +v 0.237602 1.835501 -3.064971 +v 0.237602 2.245814 -3.064971 +v 0.185097 0.938915 -3.260309 +v 0.185097 1.140242 -3.260309 +v 0.185097 0.938915 -0.391829 +v 0.185097 1.140242 -0.391829 +v 0.250002 0.938915 -3.260309 +v 0.279439 0.968351 -3.260309 +v 0.279439 1.110806 -3.260309 +v 0.250002 1.140242 -3.260309 +v 0.279439 0.968351 -0.391829 +v 0.250002 0.938915 -0.391829 +v 0.250002 1.140242 -0.391829 +v 0.279439 1.110806 -0.391829 +v 0.185097 1.623428 -3.260309 +v 0.185097 1.824755 -3.260309 +v 0.185097 1.623428 -0.391829 +v 0.185097 1.824755 -0.391829 +v 0.250002 1.623428 -3.260309 +v 0.279439 1.652864 -3.260309 +v 0.279439 1.795319 -3.260309 +v 0.250002 1.824755 -3.260309 +v 0.279439 1.652864 -0.391829 +v 0.250002 1.623428 -0.391829 +v 0.250002 1.824755 -0.391829 +v 0.279439 1.795319 -0.391829 +v 0.185097 2.307941 -3.260309 +v 0.185097 2.509268 -3.260309 +v 0.185097 2.307941 -0.391829 +v 0.185097 2.509268 -0.391829 +v 0.250002 2.307941 -3.260309 +v 0.279439 2.337377 -3.260309 +v 0.279439 2.479832 -3.260309 +v 0.250002 2.509268 -3.260309 +v 0.279439 2.337377 -0.391829 +v 0.250002 2.307941 -0.391829 +v 0.250002 2.509268 -0.391829 +v 0.279439 2.479832 -0.391829 +v 0.185097 2.992454 -3.260309 +v 0.185097 3.193781 -3.260309 +v 0.185097 2.992454 -0.391829 +v 0.185097 3.193781 -0.391829 +v 0.250002 2.992454 -3.260309 +v 0.279439 3.021890 -3.260309 +v 0.279439 3.164345 -3.260309 +v 0.250002 3.193781 -3.260309 +v 0.279439 3.021890 -0.391829 +v 0.250002 2.992454 -0.391829 +v 0.250002 3.193781 -0.391829 +v 0.279439 3.164345 -0.391829 +v 0.185097 3.676967 -3.079826 +v 0.185097 3.878294 -3.079826 +v 0.185097 3.676967 -0.391829 +v 0.185097 3.878294 -0.391829 +v 0.250002 3.676967 -3.079826 +v 0.279439 3.706403 -3.079826 +v 0.279439 3.848858 -3.079826 +v 0.250002 3.878294 -3.079826 +v 0.279439 3.706403 -0.391829 +v 0.250002 3.676967 -0.391829 +v 0.250002 3.878294 -0.391829 +v 0.279439 3.848858 -0.391829 +v 0.185097 4.361480 -2.726382 +v 0.185097 4.562807 -2.726382 +v 0.185097 4.361480 -0.391829 +v 0.185097 4.562807 -0.391829 +v 0.250002 4.361480 -2.726382 +v 0.279439 4.390916 -2.726382 +v 0.279439 4.533370 -2.726382 +v 0.250002 4.562807 -2.726382 +v 0.279439 4.390916 -0.391829 +v 0.250002 4.361480 -0.391829 +v 0.250002 4.562807 -0.391829 +v 0.279439 4.533370 -0.391829 +v 0.185097 5.045993 -2.044939 +v 0.185097 5.247320 -2.044939 +v 0.185097 5.045993 -0.391829 +v 0.185097 5.247320 -0.391829 +v 0.250002 5.045993 -2.044939 +v 0.279439 5.075429 -2.044939 +v 0.279439 5.217884 -2.044939 +v 0.250002 5.247320 -2.044939 +v 0.279439 5.075429 -0.391829 +v 0.250002 5.045993 -0.391829 +v 0.250002 5.247320 -0.391829 +v 0.279439 5.217884 -0.391829 +v 0.315590 0.554430 -1.179831 +v 0.315590 0.554430 -0.490474 +v 0.381347 0.554430 -1.179831 +v 0.381347 0.554430 -0.490474 +v 0.427845 0.600927 -1.179831 +v 0.427845 0.600927 -0.490474 +v 0.427845 0.666685 -1.179831 +v 0.427845 0.666685 -0.490474 +v 0.381347 0.713183 -1.179831 +v 0.381347 0.713183 -0.490474 +v 0.315590 0.713183 -1.179831 +v 0.315590 0.713183 -0.490474 +v 0.269092 0.666685 -1.179831 +v 0.269092 0.666685 -0.490474 +v 0.269092 0.600927 -1.179831 +v 0.269092 0.600927 -0.490474 +v 0.212011 0.554430 -1.179831 +v 0.212011 0.554430 -0.490474 +v 0.212011 0.713183 -0.490474 +v 0.212011 0.713183 -1.179831 +v 0.212011 0.666685 -1.179831 +v 0.212011 0.666685 -0.490474 +v 0.212011 0.600927 -1.179831 +v 0.212011 0.600927 -0.490474 +v 0.323809 0.574274 -3.311587 +v 0.373128 0.574274 -3.311587 +v 0.408001 0.609147 -3.311587 +v 0.408001 0.658465 -3.311587 +v 0.373128 0.693339 -3.311587 +v 0.323809 0.693339 -3.311587 +v 0.288936 0.658465 -3.311587 +v 0.288936 0.609147 -3.311587 +v 0.373127 0.574274 -0.452471 +v 0.408000 0.609147 -0.452471 +v 0.323808 0.574274 -0.452471 +v 0.408000 0.658465 -0.452471 +v 0.373127 0.693339 -0.452471 +v 0.323808 0.693339 -0.452471 +v 0.288935 0.658465 -0.452471 +v 0.288935 0.609147 -0.452471 +v 0.149610 5.165501 -0.125000 +v 0.149610 0.790051 -0.125000 +v 0.149610 4.436259 -0.125000 +v 0.149610 3.707017 -0.125000 +v 0.149610 2.977776 -0.125000 +v 0.149610 2.248534 -0.125000 +v 0.149610 1.519293 -0.125000 +v 0.299220 5.165501 -0.250000 +v 0.299220 0.790051 -0.250000 +v 0.299220 4.436259 -0.250000 +v 0.299220 3.707017 -0.250000 +v 0.299220 2.977776 -0.250000 +v 0.299220 2.248534 -0.250000 +v 0.299220 1.519293 -0.250000 +v 0.149610 5.900837 0.125000 +v 0.299220 5.900837 0.000000 +v 0.149610 1.519293 0.125000 +v 0.149610 0.790051 0.125000 +v 0.299220 0.790051 0.000000 +v 0.299220 1.519293 0.000000 +v 0.299220 2.248534 0.000000 +v 0.149610 2.248534 0.125000 +v 0.149610 2.977776 0.125000 +v 0.299220 2.977776 0.000000 +v 0.299220 3.707017 0.000000 +v 0.149610 3.707017 0.125000 +v 0.149610 4.436259 0.125000 +v 0.299220 4.436259 0.000000 +v 0.299220 5.165501 0.000000 +v 0.149610 5.165501 0.125000 +v -0.299220 0.487402 -3.251414 +v -0.299220 5.590070 -1.004025 +v -0.299220 5.128570 -1.909768 +v -0.299220 4.409768 -2.628571 +v -0.299220 3.503919 -3.090124 +v -0.299220 2.496066 -3.251015 +v -0.299220 5.679564 -0.438986 +v -0.299220 0.487402 -0.438985 +v -0.149610 5.900837 -0.125000 +v -0.149610 0.054715 -0.125000 +v -0.299220 0.054715 -3.440433 +v -0.299220 2.511072 -3.439998 +v -0.299220 3.563152 -3.272047 +v -0.299220 4.522236 -2.783369 +v -0.299220 5.283369 -2.022236 +v -0.299220 5.772047 -1.063152 +v -0.299220 5.900837 -0.250000 +v -0.299220 0.054715 -0.250000 +v -0.231315 0.487402 -3.251414 +v -0.231315 2.496066 -3.251015 +v -0.231315 3.503919 -3.090124 +v -0.231315 4.409768 -2.628571 +v -0.231315 5.128570 -1.909768 +v -0.231315 5.590070 -1.004025 +v -0.231315 5.679564 -0.438986 +v -0.231315 0.487402 -0.438985 +v -0.204275 1.917457 -1.651271 +v -0.204275 2.047506 -1.651271 +v -0.204275 1.917457 -1.142414 +v -0.204275 2.047506 -1.142414 +v -0.261126 1.933194 -1.635535 +v -0.245389 1.917457 -1.651271 +v -0.245389 2.047506 -1.651271 +v -0.261126 2.031770 -1.635535 +v -0.261126 1.933194 -1.158151 +v -0.245389 1.917457 -1.142414 +v -0.261126 2.031770 -1.158151 +v -0.245389 2.047506 -1.142414 +v -0.215124 3.126893 -0.898361 +v -0.215124 3.628286 -0.898361 +v -0.215124 3.126893 -0.736489 +v -0.215124 3.628286 -0.736489 +v -0.294289 3.126893 -0.898361 +v -0.247374 3.628286 -0.898361 +v -0.294289 3.126893 -0.736489 +v -0.247374 3.628286 -0.736489 +v -0.215124 3.447602 -0.898361 +v -0.215124 3.447602 -0.736489 +v -0.294289 3.447602 -0.736489 +v -0.294289 3.447602 -0.898361 +v -0.215124 3.126893 -1.339800 +v -0.215124 3.628286 -1.339800 +v -0.215124 3.126893 -1.177929 +v -0.215124 3.628286 -1.177929 +v -0.294289 3.126893 -1.339800 +v -0.247374 3.628286 -1.339800 +v -0.294289 3.126893 -1.177929 +v -0.247374 3.628286 -1.177929 +v -0.215124 3.447602 -1.339800 +v -0.215124 3.447602 -1.177929 +v -0.294289 3.447602 -1.177929 +v -0.294289 3.447602 -1.339800 +v -0.110842 1.775868 -3.124604 +v -0.110842 2.305447 -3.124604 +v -0.110842 1.775868 -1.892389 +v -0.110842 2.305447 -1.892389 +v -0.303721 1.835501 -3.064971 +v -0.303721 2.245814 -3.064971 +v -0.303721 1.835501 -1.952022 +v -0.303721 2.245814 -1.952022 +v -0.303721 2.305447 -1.892389 +v -0.303721 1.775868 -1.892389 +v -0.303721 1.775868 -3.124604 +v -0.303721 2.305447 -3.124604 +v -0.237602 2.245814 -1.952022 +v -0.237602 1.835501 -1.952022 +v -0.237602 1.835501 -3.064971 +v -0.237602 2.245814 -3.064971 +v -0.185097 0.938915 -3.260309 +v -0.185097 1.140242 -3.260309 +v -0.185097 0.938915 -0.391829 +v -0.185097 1.140242 -0.391829 +v -0.250002 0.938915 -3.260309 +v -0.279439 0.968351 -3.260309 +v -0.279439 1.110806 -3.260309 +v -0.250002 1.140242 -3.260309 +v -0.279439 0.968351 -0.391829 +v -0.250002 0.938915 -0.391829 +v -0.250002 1.140242 -0.391829 +v -0.279439 1.110806 -0.391829 +v -0.185097 1.623428 -3.260309 +v -0.185097 1.824755 -3.260309 +v -0.185097 1.623428 -0.391829 +v -0.185097 1.824755 -0.391829 +v -0.250002 1.623428 -3.260309 +v -0.279439 1.652864 -3.260309 +v -0.279439 1.795319 -3.260309 +v -0.250002 1.824755 -3.260309 +v -0.279439 1.652864 -0.391829 +v -0.250002 1.623428 -0.391829 +v -0.250002 1.824755 -0.391829 +v -0.279439 1.795319 -0.391829 +v -0.185097 2.307941 -3.260309 +v -0.185097 2.509268 -3.260309 +v -0.185097 2.307941 -0.391829 +v -0.185097 2.509268 -0.391829 +v -0.250002 2.307941 -3.260309 +v -0.279439 2.337377 -3.260309 +v -0.279439 2.479832 -3.260309 +v -0.250002 2.509268 -3.260309 +v -0.279439 2.337377 -0.391829 +v -0.250002 2.307941 -0.391829 +v -0.250002 2.509268 -0.391829 +v -0.279439 2.479832 -0.391829 +v -0.185097 2.992454 -3.260309 +v -0.185097 3.193781 -3.260309 +v -0.185097 2.992454 -0.391829 +v -0.185097 3.193781 -0.391829 +v -0.250002 2.992454 -3.260309 +v -0.279439 3.021890 -3.260309 +v -0.279439 3.164345 -3.260309 +v -0.250002 3.193781 -3.260309 +v -0.279439 3.021890 -0.391829 +v -0.250002 2.992454 -0.391829 +v -0.250002 3.193781 -0.391829 +v -0.279439 3.164345 -0.391829 +v -0.185097 3.676967 -3.079826 +v -0.185097 3.878294 -3.079826 +v -0.185097 3.676967 -0.391829 +v -0.185097 3.878294 -0.391829 +v -0.250002 3.676967 -3.079826 +v -0.279439 3.706403 -3.079826 +v -0.279439 3.848858 -3.079826 +v -0.250002 3.878294 -3.079826 +v -0.279439 3.706403 -0.391829 +v -0.250002 3.676967 -0.391829 +v -0.250002 3.878294 -0.391829 +v -0.279439 3.848858 -0.391829 +v -0.185097 4.361480 -2.726382 +v -0.185097 4.562807 -2.726382 +v -0.185097 4.361480 -0.391829 +v -0.185097 4.562807 -0.391829 +v -0.250002 4.361480 -2.726382 +v -0.279439 4.390916 -2.726382 +v -0.279439 4.533370 -2.726382 +v -0.250002 4.562807 -2.726382 +v -0.279439 4.390916 -0.391829 +v -0.250002 4.361480 -0.391829 +v -0.250002 4.562807 -0.391829 +v -0.279439 4.533370 -0.391829 +v -0.185097 5.045993 -2.044939 +v -0.185097 5.247320 -2.044939 +v -0.185097 5.045993 -0.391829 +v -0.185097 5.247320 -0.391829 +v -0.250002 5.045993 -2.044939 +v -0.279439 5.075429 -2.044939 +v -0.279439 5.217884 -2.044939 +v -0.250002 5.247320 -2.044939 +v -0.279439 5.075429 -0.391829 +v -0.250002 5.045993 -0.391829 +v -0.250002 5.247320 -0.391829 +v -0.279439 5.217884 -0.391829 +v -0.315590 0.554430 -1.179831 +v -0.315590 0.554430 -0.490474 +v -0.381347 0.554430 -1.179831 +v -0.381347 0.554430 -0.490474 +v -0.427845 0.600927 -1.179831 +v -0.427845 0.600927 -0.490474 +v -0.427845 0.666685 -1.179831 +v -0.427845 0.666685 -0.490474 +v -0.381347 0.713183 -1.179831 +v -0.381347 0.713183 -0.490474 +v -0.315590 0.713183 -1.179831 +v -0.315590 0.713183 -0.490474 +v -0.269092 0.666685 -1.179831 +v -0.269092 0.666685 -0.490474 +v -0.269092 0.600927 -1.179831 +v -0.269092 0.600927 -0.490474 +v -0.212011 0.554430 -1.179831 +v -0.212011 0.554430 -0.490474 +v -0.212011 0.713183 -0.490474 +v -0.212011 0.713183 -1.179831 +v -0.212011 0.666685 -1.179831 +v -0.212011 0.666685 -0.490474 +v -0.212011 0.600927 -1.179831 +v -0.212011 0.600927 -0.490474 +v -0.323809 0.574274 -3.311587 +v -0.373128 0.574274 -3.311587 +v -0.408001 0.609147 -3.311587 +v -0.408001 0.658465 -3.311587 +v -0.373128 0.693339 -3.311587 +v -0.323809 0.693339 -3.311587 +v -0.288936 0.658465 -3.311587 +v -0.288936 0.609147 -3.311587 +v -0.373127 0.574274 -0.452471 +v -0.408000 0.609147 -0.452471 +v -0.323808 0.574274 -0.452471 +v -0.408000 0.658465 -0.452471 +v -0.373127 0.693339 -0.452471 +v -0.323808 0.693339 -0.452471 +v -0.288935 0.658465 -0.452471 +v -0.288935 0.609147 -0.452471 +v -0.149610 5.165501 -0.125000 +v -0.149610 0.790051 -0.125000 +v -0.149610 4.436259 -0.125000 +v -0.149610 3.707017 -0.125000 +v -0.149610 2.977776 -0.125000 +v -0.149610 2.248534 -0.125000 +v -0.149610 1.519293 -0.125000 +v -0.299220 5.165501 -0.250000 +v -0.299220 0.790051 -0.250000 +v -0.299220 4.436259 -0.250000 +v -0.299220 3.707017 -0.250000 +v -0.299220 2.977776 -0.250000 +v -0.299220 2.248534 -0.250000 +v -0.299220 1.519293 -0.250000 +v -0.149610 5.900837 0.125000 +v -0.299220 5.900837 0.000000 +v -0.149610 1.519293 0.125000 +v -0.149610 0.790051 0.125000 +v -0.299220 0.790051 0.000000 +v -0.299220 1.519293 0.000000 +v -0.299220 2.248534 0.000000 +v -0.149610 2.248534 0.125000 +v -0.149610 2.977776 0.125000 +v -0.299220 2.977776 0.000000 +v -0.299220 3.707017 0.000000 +v -0.149610 3.707017 0.125000 +v -0.149610 4.436259 0.125000 +v -0.299220 4.436259 0.000000 +v -0.299220 5.165501 0.000000 +v -0.149610 5.165501 0.125000 +v 0.000000 0.054715 -3.440433 +v 0.000000 2.511072 -3.439998 +v 0.000000 3.563152 -3.272047 +v 0.000000 4.522236 -2.783369 +v 0.000000 5.283369 -2.022236 +v 0.000000 5.772047 -1.063152 +v 0.000000 5.900837 -0.250000 +v 0.000000 0.054715 -0.250000 +v 0.000000 5.900837 -0.125000 +v 0.000000 0.054715 -0.125000 +v 0.000000 0.790051 -0.125000 +v 0.000000 1.519293 -0.125000 +v 0.000000 2.248534 -0.125000 +v 0.000000 2.977776 -0.125000 +v 0.000000 3.707017 -0.125000 +v 0.000000 4.436259 -0.125000 +v 0.000000 5.165501 -0.125000 +v 0.000000 5.900837 0.125000 +v 0.000000 0.790051 0.125000 +v 0.000000 1.519293 0.125000 +v 0.000000 2.248534 0.125000 +v 0.000000 2.977776 0.125000 +v 0.000000 3.707017 0.125000 +v 0.000000 4.436259 0.125000 +v 0.000000 5.165501 0.125000 +v 0.236978 1.966246 -2.101461 +v 0.236978 1.868289 -2.101461 +v 0.271611 1.966246 -2.115807 +v 0.271611 1.868289 -2.115807 +v 0.285957 1.966246 -2.150440 +v 0.285957 1.868289 -2.150440 +v 0.271611 1.966246 -2.185074 +v 0.271611 1.868289 -2.185074 +v 0.236978 1.966246 -2.199419 +v 0.236978 1.868289 -2.199419 +v 0.261013 1.935379 -2.738888 +v 0.243802 1.942508 -2.738888 +v 0.243802 1.942508 -2.168687 +v 0.261013 1.935379 -2.168687 +v 0.268143 1.918167 -2.168687 +v 0.261013 1.900955 -2.168687 +v 0.243802 1.893826 -2.168687 +v 0.226590 1.900955 -2.168687 +v 0.219460 1.918167 -2.168687 +v 0.226590 1.935379 -2.168687 +v 0.268143 1.918167 -2.738888 +v 0.261013 1.900955 -2.738888 +v 0.243802 1.893826 -2.738888 +v 0.226590 1.900955 -2.738888 +v 0.219460 1.918167 -2.738888 +v 0.226590 1.935379 -2.738888 +v 0.243802 1.952222 -2.738888 +v 0.267882 1.942248 -2.738888 +v 0.277856 1.918167 -2.738888 +v 0.243802 1.952222 -2.956852 +v 0.267882 1.942248 -2.956852 +v 0.267882 1.894087 -2.738888 +v 0.277856 1.918167 -2.956852 +v 0.243802 1.884113 -2.738888 +v 0.267882 1.894087 -2.956852 +v 0.219721 1.894087 -2.738888 +v 0.243802 1.884113 -2.956852 +v 0.209747 1.918167 -2.738888 +v 0.219721 1.894087 -2.956852 +v 0.219721 1.942248 -2.738888 +v 0.209747 1.918167 -2.956852 +v 0.219721 1.942248 -2.956852 +v 0.234904 1.996067 -2.602894 +v 0.234904 2.177792 -2.602893 +v 0.234904 1.996067 -2.957389 +v 0.234904 2.177792 -2.957389 +v 0.248364 1.996858 -2.604437 +v 0.248364 2.177001 -2.604437 +v 0.248364 1.996858 -2.955846 +v 0.248364 2.177001 -2.955846 +v 0.239626 2.025193 -2.631219 +v 0.239626 2.077102 -2.631219 +v 0.239626 2.025193 -2.683128 +v 0.239626 2.077102 -2.683128 +v 0.264276 2.026531 -2.632558 +v 0.264276 2.075763 -2.632558 +v 0.264276 2.026531 -2.681790 +v 0.264276 2.075763 -2.681790 +v 0.239626 2.025193 -2.713007 +v 0.239626 2.077102 -2.713007 +v 0.239626 2.025193 -2.764916 +v 0.239626 2.077102 -2.764916 +v 0.264276 2.026531 -2.714346 +v 0.264276 2.075763 -2.714346 +v 0.264276 2.026531 -2.763577 +v 0.264276 2.075763 -2.763577 +v 0.239626 2.025193 -2.794795 +v 0.239626 2.077102 -2.794795 +v 0.239626 2.025193 -2.846704 +v 0.239626 2.077102 -2.846704 +v 0.264276 2.026531 -2.796134 +v 0.264276 2.075763 -2.796134 +v 0.264276 2.026531 -2.845365 +v 0.264276 2.075763 -2.845365 +v 0.239626 2.025193 -2.876583 +v 0.239626 2.077102 -2.876583 +v 0.239626 2.025193 -2.928492 +v 0.239626 2.077102 -2.928492 +v 0.264276 2.026531 -2.877922 +v 0.264276 2.075763 -2.877922 +v 0.264276 2.026531 -2.927153 +v 0.264276 2.075763 -2.927153 +v 0.241062 2.141376 -2.887181 +v 0.218099 2.128895 -2.887181 +v 0.217427 2.102767 -2.887181 +v 0.239718 2.089121 -2.887181 +v 0.262680 2.101603 -2.887181 +v 0.264313 2.105776 -2.887181 +v 0.266144 2.123641 -2.887181 +v 0.263352 2.127731 -2.887181 +v 0.266144 2.123641 -2.918690 +v 0.263352 2.127731 -2.918690 +v 0.278264 2.110234 -2.887181 +v 0.278264 2.110234 -2.918690 +v 0.277458 2.120133 -2.918690 +v 0.277458 2.120133 -2.887181 +v 0.264313 2.105776 -2.918690 +v 0.218099 2.128895 -2.918690 +v 0.241062 2.141376 -2.918690 +v 0.262680 2.101603 -2.918690 +v 0.239718 2.089121 -2.918690 +v 0.217427 2.102767 -2.918690 +v 0.257846 2.139290 -2.641807 +v 0.231994 2.143135 -2.641807 +v 0.215738 2.122669 -2.641807 +v 0.225334 2.098358 -2.641807 +v 0.251185 2.094513 -2.641807 +v 0.255000 2.096865 -2.641807 +v 0.267210 2.110033 -2.641807 +v 0.267441 2.114980 -2.641807 +v 0.267210 2.110033 -2.673316 +v 0.267441 2.114980 -2.673316 +v 0.268826 2.092032 -2.641807 +v 0.268826 2.092032 -2.673316 +v 0.274138 2.100425 -2.673316 +v 0.274138 2.100425 -2.641807 +v 0.255000 2.096865 -2.673316 +v 0.231994 2.143135 -2.673316 +v 0.257846 2.139290 -2.673316 +v 0.251185 2.094513 -2.673316 +v 0.225334 2.098358 -2.673316 +v 0.215738 2.122669 -2.673316 +v 0.222125 2.128488 -2.723598 +v 0.215962 2.103088 -2.723598 +v 0.234877 2.085051 -2.723598 +v 0.259955 2.092414 -2.723598 +v 0.266117 2.117813 -2.723598 +v 0.264120 2.121824 -2.723598 +v 0.252107 2.135173 -2.723598 +v 0.247202 2.135850 -2.723598 +v 0.252107 2.135173 -2.755107 +v 0.247202 2.135850 -2.755107 +v 0.270180 2.135158 -2.723598 +v 0.270180 2.135158 -2.755107 +v 0.262302 2.141205 -2.755107 +v 0.262302 2.141205 -2.723598 +v 0.264120 2.121824 -2.755107 +v 0.215962 2.103088 -2.755107 +v 0.222125 2.128488 -2.755107 +v 0.266117 2.117813 -2.755107 +v 0.259955 2.092414 -2.755107 +v 0.234877 2.085051 -2.755107 +v 0.231185 2.137330 -2.805390 +v 0.214479 2.117230 -2.805390 +v 0.223533 2.092711 -2.805390 +v 0.249294 2.088294 -2.805390 +v 0.265999 2.108394 -2.805390 +v 0.265969 2.112875 -2.805390 +v 0.261052 2.130147 -2.805390 +v 0.256945 2.132912 -2.805390 +v 0.261052 2.130147 -2.836899 +v 0.256945 2.132912 -2.836899 +v 0.277277 2.122184 -2.805390 +v 0.277277 2.122184 -2.836899 +v 0.272861 2.131080 -2.836899 +v 0.272861 2.131080 -2.805390 +v 0.265969 2.112875 -2.836899 +v 0.214479 2.117230 -2.836899 +v 0.231185 2.137330 -2.836899 +v 0.265999 2.108394 -2.836899 +v 0.249294 2.088294 -2.836899 +v 0.223533 2.092711 -2.836899 +vt 0.071084 0.914639 +vt 0.063745 0.914089 +vt 0.071052 0.914089 +vt 0.071052 0.899835 +vt 0.063745 0.899835 +vt 0.071084 0.899286 +vt 0.071599 0.899773 +vt 0.071599 0.914152 +vt 0.063198 0.914152 +vt 0.980883 0.027178 +vt 0.979882 0.025127 +vt 0.980883 0.025072 +vt 0.979882 0.027124 +vt 0.977885 0.025127 +vt 0.977885 0.027124 +vt 0.976884 0.025072 +vt 0.977831 0.024125 +vt 0.979936 0.024125 +vt 0.979936 0.028125 +vt 0.010095 0.976613 +vt 0.012147 0.975612 +vt 0.012201 0.976613 +vt 0.010150 0.975612 +vt 0.012147 0.973615 +vt 0.010150 0.973615 +vt 0.012201 0.972613 +vt 0.013148 0.973560 +vt 0.013148 0.975666 +vt 0.009148 0.975666 +vt 0.977831 0.010708 +vt 0.979882 0.009707 +vt 0.979936 0.010708 +vt 0.977885 0.009707 +vt 0.979882 0.007710 +vt 0.977885 0.007710 +vt 0.979936 0.006709 +vt 0.980883 0.007656 +vt 0.980883 0.009761 +vt 0.976884 0.009761 +vt 0.969725 0.889901 +vt 0.971776 0.888900 +vt 0.971831 0.889901 +vt 0.969779 0.888900 +vt 0.971776 0.886903 +vt 0.969779 0.886903 +vt 0.971831 0.885901 +vt 0.972778 0.886849 +vt 0.972778 0.888954 +vt 0.968778 0.888954 +vt 0.063713 0.914639 +vt 0.063713 0.899286 +vt 0.063198 0.899773 +vt 0.976884 0.027178 +vt 0.977831 0.028125 +vt 0.010095 0.972613 +vt 0.009148 0.973560 +vt 0.977831 0.006709 +vt 0.976884 0.007656 +vt 0.969725 0.885901 +vt 0.968778 0.886849 +vt 0.838616 0.394242 +vt 0.850753 0.294606 +vt 0.850753 0.394242 +vt 0.838616 0.437457 +vt 0.850753 0.437457 +vt 0.838616 0.481118 +vt 0.850753 0.481118 +vt 0.838616 0.524780 +vt 0.850753 0.524779 +vt 0.838616 0.568441 +vt 0.850753 0.568441 +vt 0.816684 0.141189 +vt 0.804547 0.011779 +vt 0.816684 0.011779 +vt 0.637409 0.742651 +vt 0.751488 0.745406 +vt 0.637409 0.745406 +vt 0.850753 0.601835 +vt 0.844684 0.606906 +vt 0.838616 0.601835 +vt 0.623992 0.501911 +vt 0.623992 0.531738 +vt 0.616326 0.514187 +vt 0.502248 0.514187 +vt 0.494599 0.432102 +vt 0.502264 0.432711 +vt 0.508790 0.391831 +vt 0.501411 0.389428 +vt 0.527512 0.355087 +vt 0.521233 0.350525 +vt 0.556668 0.325931 +vt 0.552106 0.319652 +vt 0.593407 0.307212 +vt 0.591009 0.299830 +vt 0.616327 0.303582 +vt 0.691829 0.316956 +vt 0.728568 0.298236 +vt 0.751488 0.294606 +vt 0.861164 0.006709 +vt 0.858410 0.029913 +vt 0.858410 0.006709 +vt 0.861164 0.071146 +vt 0.858410 0.112380 +vt 0.858410 0.071146 +vt 0.861164 0.153618 +vt 0.858410 0.195017 +vt 0.858410 0.153618 +vt 0.963467 0.189030 +vt 0.960285 0.006709 +vt 0.963467 0.006723 +vt 0.861164 0.029913 +vt 0.861164 0.112380 +vt 0.861164 0.195017 +vt 0.858410 0.276493 +vt 0.070405 0.847979 +vt 0.065130 0.846311 +vt 0.070405 0.846311 +vt 0.064865 0.846046 +vt 0.063198 0.825406 +vt 0.064865 0.825406 +vt 0.069767 0.845408 +vt 0.065768 0.826044 +vt 0.069767 0.826044 +vt 0.070405 0.825142 +vt 0.065130 0.823474 +vt 0.070405 0.823474 +vt 0.065130 0.825142 +vt 0.070669 0.825406 +vt 0.070669 0.846046 +vt 0.065768 0.845408 +vt 0.072337 0.846046 +vt 0.072337 0.825406 +vt 0.832797 0.992869 +vt 0.820045 0.989167 +vt 0.832917 0.989519 +vt 0.819847 0.979794 +vt 0.812637 0.982596 +vt 0.812375 0.981262 +vt 0.820215 0.982975 +vt 0.819631 0.992298 +vt 0.812630 0.989456 +vt 0.836258 0.989519 +vt 0.832917 0.982686 +vt 0.836258 0.982686 +vt 0.811270 0.982595 +vt 0.832839 0.979479 +vt 0.157833 0.991605 +vt 0.145081 0.987902 +vt 0.157953 0.988254 +vt 0.144883 0.978529 +vt 0.137673 0.981331 +vt 0.137411 0.979997 +vt 0.145251 0.981710 +vt 0.144667 0.991033 +vt 0.137666 0.988191 +vt 0.161295 0.988254 +vt 0.157953 0.981421 +vt 0.161295 0.981421 +vt 0.136306 0.981330 +vt 0.157876 0.978214 +vt 0.115059 0.780752 +vt 0.093578 0.772929 +vt 0.115059 0.772929 +vt 0.767587 0.714665 +vt 0.784230 0.717347 +vt 0.767587 0.717347 +vt 0.115059 0.838557 +vt 0.093578 0.830734 +vt 0.115059 0.830734 +vt 0.122882 0.830734 +vt 0.122882 0.780752 +vt 0.085754 0.780752 +vt 0.093578 0.780752 +vt 0.112640 0.783171 +vt 0.095997 0.783171 +vt 0.112640 0.828315 +vt 0.095997 0.828315 +vt 0.784230 0.714665 +vt 0.767587 0.669521 +vt 0.784230 0.669521 +vt 0.786912 0.669521 +vt 0.786912 0.714665 +vt 0.764905 0.714665 +vt 0.764905 0.669521 +vt 0.767587 0.666839 +vt 0.784230 0.666839 +vt 0.493197 0.720191 +vt 0.495769 0.833877 +vt 0.493197 0.833877 +vt 0.485567 0.720186 +vt 0.491213 0.833871 +vt 0.485567 0.833871 +vt 0.483582 0.833865 +vt 0.483582 0.720180 +vt 0.481010 0.720180 +vt 0.481010 0.833865 +vt 0.916263 0.006720 +vt 0.918835 0.120406 +vt 0.916263 0.120406 +vt 0.908633 0.006714 +vt 0.914279 0.120400 +vt 0.908633 0.120400 +vt 0.906649 0.120394 +vt 0.906649 0.006709 +vt 0.904076 0.006709 +vt 0.904076 0.120394 +vt 0.916263 0.133834 +vt 0.918835 0.247520 +vt 0.916263 0.247520 +vt 0.908633 0.133829 +vt 0.914279 0.247514 +vt 0.908633 0.247514 +vt 0.906649 0.247508 +vt 0.906649 0.133823 +vt 0.904076 0.133823 +vt 0.904076 0.247508 +vt 0.926154 0.760682 +vt 0.928726 0.874367 +vt 0.926154 0.874367 +vt 0.918524 0.760676 +vt 0.924170 0.874361 +vt 0.918524 0.874361 +vt 0.916540 0.874356 +vt 0.916539 0.760670 +vt 0.913967 0.760670 +vt 0.913967 0.874356 +vt 0.491671 0.859568 +vt 0.384226 0.862163 +vt 0.384226 0.859568 +vt 0.491675 0.851999 +vt 0.384229 0.857693 +vt 0.384229 0.851999 +vt 0.384233 0.850123 +vt 0.491678 0.850123 +vt 0.491678 0.847529 +vt 0.384233 0.847529 +vt 0.478919 0.887368 +vt 0.384226 0.890001 +vt 0.384226 0.887368 +vt 0.478919 0.879901 +vt 0.384226 0.885680 +vt 0.384226 0.879901 +vt 0.384226 0.878213 +vt 0.478919 0.878213 +vt 0.478919 0.875580 +vt 0.384226 0.875580 +vt 0.874581 0.266461 +vt 0.941635 0.263828 +vt 0.941635 0.266461 +vt 0.874581 0.273928 +vt 0.941635 0.268150 +vt 0.941635 0.273928 +vt 0.941635 0.275616 +vt 0.874581 0.275616 +vt 0.874581 0.278249 +vt 0.941635 0.278249 +vt 0.751964 0.269991 +vt 0.779926 0.272658 +vt 0.751964 0.272658 +vt 0.751964 0.267324 +vt 0.779926 0.269991 +vt 0.751964 0.264657 +vt 0.779926 0.267324 +vt 0.751964 0.261989 +vt 0.779926 0.264657 +vt 0.751964 0.259322 +vt 0.779926 0.261989 +vt 0.011262 0.959196 +vt 0.008595 0.956881 +vt 0.011262 0.956881 +vt 0.977533 0.762259 +vt 0.975647 0.766813 +vt 0.971094 0.764927 +vt 0.971094 0.762259 +vt 0.968778 0.760373 +vt 0.972980 0.760373 +vt 0.006709 0.959196 +vt 0.006709 0.954995 +vt 0.008595 0.950441 +vt 0.239689 0.888219 +vt 0.241702 0.772932 +vt 0.241702 0.888219 +vt 0.758193 0.881133 +vt 0.754778 0.882547 +vt 0.753363 0.879132 +vt 0.968778 0.766813 +vt 0.972980 0.766813 +vt 0.751964 0.255121 +vt 0.779926 0.259322 +vt 0.779926 0.276860 +vt 0.013148 0.959196 +vt 0.013148 0.954995 +vt 0.968778 0.764927 +vt 0.227615 0.888217 +vt 0.229628 0.772930 +vt 0.229628 0.888217 +vt 0.231640 0.888217 +vt 0.233652 0.772930 +vt 0.233652 0.888218 +vt 0.235665 0.888218 +vt 0.237677 0.772931 +vt 0.237677 0.888219 +vt 0.225603 0.888216 +vt 0.227615 0.772929 +vt 0.231640 0.772930 +vt 0.239689 0.772932 +vt 0.235665 0.772931 +vt 0.757401 0.968504 +vt 0.787227 0.976412 +vt 0.757401 0.976412 +vt 0.978919 0.583929 +vt 0.968778 0.577860 +vt 0.978919 0.577860 +vt 0.838616 0.611976 +vt 0.899184 0.978953 +vt 0.907092 0.949373 +vt 0.907092 0.978953 +vt 0.034866 0.980021 +vt 0.042774 0.950441 +vt 0.042774 0.980021 +vt 0.973848 0.546238 +vt 0.978919 0.552306 +vt 0.968778 0.552306 +vt 0.960285 0.232027 +vt 0.968192 0.202447 +vt 0.968192 0.232027 +vt 0.913161 0.949373 +vt 0.913161 0.978953 +vt 0.300254 0.951758 +vt 0.329834 0.941618 +vt 0.329834 0.951758 +vt 0.048842 0.950441 +vt 0.048842 0.980021 +vt 0.974261 0.202447 +vt 0.974261 0.232027 +vt 0.737360 0.915678 +vt 0.743429 0.905537 +vt 0.743429 0.915678 +vt 0.973848 0.589997 +vt 0.968778 0.583929 +vt 0.510060 0.902173 +vt 0.539887 0.910081 +vt 0.510060 0.910081 +vt 0.457011 0.941511 +vt 0.427431 0.933603 +vt 0.457011 0.933603 +vt 0.329834 0.933710 +vt 0.300254 0.941618 +vt 0.300254 0.933710 +vt 0.286837 0.941618 +vt 0.257257 0.933710 +vt 0.286837 0.933710 +vt 0.427431 0.927535 +vt 0.457011 0.927535 +vt 0.300254 0.927641 +vt 0.329834 0.927641 +vt 0.257257 0.927641 +vt 0.286837 0.927641 +vt 0.349320 0.942293 +vt 0.343251 0.937222 +vt 0.349320 0.932152 +vt 0.355388 0.932152 +vt 0.355388 0.942293 +vt 0.257257 0.951758 +vt 0.286837 0.951758 +vt 0.731292 0.910608 +vt 0.737360 0.905537 +vt 0.978919 0.496410 +vt 0.973848 0.490341 +vt 0.983989 0.490341 +vt 0.427431 0.951652 +vt 0.457011 0.951652 +vt 0.769975 0.748970 +vt 0.775045 0.755038 +vt 0.764905 0.755038 +vt 0.349319 0.913665 +vt 0.355388 0.903524 +vt 0.355388 0.913665 +vt 0.343251 0.908594 +vt 0.349319 0.903524 +vt 0.510060 0.920222 +vt 0.539887 0.920222 +vt 0.510060 0.896105 +vt 0.539887 0.902173 +vt 0.978919 0.502478 +vt 0.968778 0.496410 +vt 0.973848 0.540169 +vt 0.983989 0.546238 +vt 0.769975 0.742901 +vt 0.780115 0.748970 +vt 0.757401 0.962435 +vt 0.787227 0.968504 +vt 0.850753 0.606906 +vt 0.844684 0.617046 +vt 0.810615 0.006709 +vt 0.862890 0.394242 +vt 0.862890 0.437457 +vt 0.862890 0.481118 +vt 0.862890 0.524780 +vt 0.862890 0.568441 +vt 0.828821 0.011779 +vt 0.897588 0.619922 +vt 0.900342 0.734001 +vt 0.897588 0.734001 +vt 0.856821 0.606906 +vt 0.066114 0.706928 +vt 0.036535 0.706928 +vt 0.015684 0.699263 +vt 0.226289 0.585184 +vt 0.144205 0.577535 +vt 0.243840 0.577517 +vt 0.103933 0.591727 +vt 0.144813 0.585201 +vt 0.067190 0.610448 +vt 0.101530 0.584348 +vt 0.031754 0.635043 +vt 0.062628 0.604169 +vt 0.019314 0.676344 +vt 0.038033 0.639605 +vt 0.011933 0.673945 +vt 0.243840 0.706929 +vt 0.226289 0.699263 +vt 0.643952 0.640985 +vt 0.637425 0.600105 +vt 0.751488 0.518629 +vt 0.844992 0.029914 +vt 0.842238 0.006709 +vt 0.844992 0.006709 +vt 0.844992 0.112379 +vt 0.842238 0.071146 +vt 0.844992 0.071146 +vt 0.844992 0.195014 +vt 0.842238 0.153615 +vt 0.844992 0.153615 +vt 0.971960 0.476912 +vt 0.968778 0.294618 +vt 0.971960 0.294606 +vt 0.842238 0.029914 +vt 0.842238 0.112379 +vt 0.844992 0.276493 +vt 0.842238 0.195014 +vt 0.120950 0.874811 +vt 0.115675 0.876479 +vt 0.115675 0.874811 +vt 0.122882 0.853906 +vt 0.121215 0.874547 +vt 0.121215 0.853906 +vt 0.120312 0.854545 +vt 0.116313 0.873908 +vt 0.116313 0.854545 +vt 0.120950 0.851974 +vt 0.115675 0.853642 +vt 0.115675 0.851974 +vt 0.120950 0.853642 +vt 0.115411 0.853906 +vt 0.115411 0.874547 +vt 0.120312 0.873908 +vt 0.113743 0.874547 +vt 0.113743 0.853906 +vt 0.227626 0.971087 +vt 0.240379 0.967384 +vt 0.240499 0.970735 +vt 0.227428 0.980459 +vt 0.220218 0.977658 +vt 0.227797 0.977279 +vt 0.220212 0.970798 +vt 0.227212 0.967956 +vt 0.240499 0.977568 +vt 0.243840 0.970735 +vt 0.243840 0.977568 +vt 0.218851 0.977659 +vt 0.240421 0.980775 +vt 0.183493 0.981917 +vt 0.196246 0.978214 +vt 0.196366 0.981565 +vt 0.183295 0.991289 +vt 0.176085 0.988488 +vt 0.183663 0.988109 +vt 0.176079 0.981628 +vt 0.183079 0.978786 +vt 0.196366 0.988398 +vt 0.199707 0.981565 +vt 0.199707 0.988398 +vt 0.174718 0.988489 +vt 0.196288 0.991605 +vt 0.006709 0.780752 +vt 0.014532 0.802233 +vt 0.006709 0.802233 +vt 0.572923 0.871988 +vt 0.556279 0.874670 +vt 0.556279 0.871988 +vt 0.064513 0.780752 +vt 0.072337 0.802233 +vt 0.064513 0.802233 +vt 0.064513 0.810057 +vt 0.014532 0.810057 +vt 0.014532 0.772929 +vt 0.014532 0.780752 +vt 0.016951 0.799814 +vt 0.016951 0.783171 +vt 0.062095 0.783171 +vt 0.062095 0.799814 +vt 0.556279 0.919814 +vt 0.572923 0.874670 +vt 0.572923 0.919814 +vt 0.575605 0.919814 +vt 0.575605 0.874670 +vt 0.553598 0.874670 +vt 0.553598 0.919814 +vt 0.556279 0.922495 +vt 0.572923 0.922495 +vt 0.617258 0.281189 +vt 0.503572 0.278617 +vt 0.617258 0.278617 +vt 0.617252 0.276633 +vt 0.503567 0.270987 +vt 0.617252 0.270987 +vt 0.617247 0.269002 +vt 0.503562 0.269002 +vt 0.503562 0.266430 +vt 0.617247 0.266430 +vt 0.589022 0.935186 +vt 0.591594 0.821501 +vt 0.591594 0.935186 +vt 0.593578 0.935181 +vt 0.599224 0.821496 +vt 0.599224 0.935181 +vt 0.601209 0.935176 +vt 0.601209 0.821490 +vt 0.603781 0.821490 +vt 0.603781 0.935176 +vt 0.759070 0.836249 +vt 0.645385 0.833677 +vt 0.759070 0.833677 +vt 0.759065 0.831693 +vt 0.645379 0.826047 +vt 0.759065 0.826047 +vt 0.759060 0.824063 +vt 0.645374 0.824063 +vt 0.645374 0.821490 +vt 0.759060 0.821490 +vt 0.617198 0.935186 +vt 0.619771 0.821501 +vt 0.619770 0.935186 +vt 0.621755 0.935181 +vt 0.627401 0.821496 +vt 0.627401 0.935181 +vt 0.629385 0.935176 +vt 0.629385 0.821490 +vt 0.631957 0.821490 +vt 0.631957 0.935176 +vt 0.752826 0.864300 +vt 0.645381 0.861706 +vt 0.752826 0.861706 +vt 0.752823 0.859831 +vt 0.645378 0.854136 +vt 0.752823 0.854136 +vt 0.752819 0.852261 +vt 0.645374 0.852261 +vt 0.645374 0.849667 +vt 0.752819 0.849667 +vt 0.351951 0.890107 +vt 0.257257 0.887474 +vt 0.351951 0.887474 +vt 0.351951 0.885786 +vt 0.257257 0.880008 +vt 0.351951 0.880007 +vt 0.351951 0.878319 +vt 0.257257 0.878319 +vt 0.257257 0.875686 +vt 0.351951 0.875686 +vt 0.508551 0.935913 +vt 0.575605 0.938545 +vt 0.508551 0.938545 +vt 0.508551 0.940234 +vt 0.575605 0.946012 +vt 0.508551 0.946012 +vt 0.508551 0.947701 +vt 0.575605 0.947701 +vt 0.575605 0.950333 +vt 0.508551 0.950333 +vt 0.384226 0.982545 +vt 0.412188 0.979878 +vt 0.412188 0.982545 +vt 0.384226 0.979878 +vt 0.412188 0.977210 +vt 0.384226 0.977210 +vt 0.412188 0.974543 +vt 0.384226 0.974543 +vt 0.412188 0.971876 +vt 0.384226 0.971876 +vt 0.412188 0.969209 +vt 0.975218 0.742403 +vt 0.977533 0.745070 +vt 0.975218 0.745070 +vt 0.733178 0.956412 +vt 0.735845 0.956412 +vt 0.733178 0.962851 +vt 0.735845 0.962851 +vt 0.737731 0.965167 +vt 0.735845 0.965167 +vt 0.977533 0.740517 +vt 0.977533 0.742403 +vt 0.968778 0.742403 +vt 0.973332 0.740517 +vt 0.804547 0.269897 +vt 0.806559 0.154609 +vt 0.806559 0.269897 +vt 0.368783 0.880516 +vt 0.365368 0.879101 +vt 0.366783 0.875686 +vt 0.731292 0.965167 +vt 0.731292 0.960966 +vt 0.384226 0.969208 +vt 0.412188 0.965007 +vt 0.384226 0.986746 +vt 0.977533 0.746956 +vt 0.973332 0.746956 +vt 0.733178 0.965167 +vt 0.816621 0.154607 +vt 0.818633 0.269894 +vt 0.816621 0.269895 +vt 0.812596 0.154608 +vt 0.814609 0.269895 +vt 0.812596 0.269895 +vt 0.808571 0.154609 +vt 0.810584 0.269896 +vt 0.808571 0.269896 +vt 0.818633 0.154607 +vt 0.820646 0.269894 +vt 0.814609 0.154608 +vt 0.810584 0.154608 +vt 0.787228 0.948459 +vt 0.757401 0.956367 +vt 0.757401 0.948459 +vt 0.978919 0.571792 +vt 0.862890 0.611976 +vt 0.862890 0.601835 +vt 0.919230 0.949373 +vt 0.927137 0.978953 +vt 0.919230 0.978953 +vt 0.054911 0.950441 +vt 0.062819 0.980021 +vt 0.054911 0.980021 +vt 0.978919 0.528032 +vt 0.973848 0.534101 +vt 0.968778 0.528032 +vt 0.980330 0.202447 +vt 0.988237 0.232027 +vt 0.980330 0.232027 +vt 0.329834 0.913665 +vt 0.300254 0.903524 +vt 0.329834 0.903524 +vt 0.749497 0.915678 +vt 0.973848 0.565723 +vt 0.983989 0.565723 +vt 0.539887 0.882128 +vt 0.510060 0.890036 +vt 0.510060 0.882128 +vt 0.427431 0.921466 +vt 0.457011 0.913558 +vt 0.457011 0.921466 +vt 0.329834 0.921573 +vt 0.300254 0.913665 +vt 0.257257 0.921573 +vt 0.286837 0.913665 +vt 0.286837 0.921573 +vt 0.361456 0.942293 +vt 0.367525 0.937222 +vt 0.367525 0.947363 +vt 0.257257 0.903524 +vt 0.286837 0.903524 +vt 0.755566 0.910608 +vt 0.755566 0.920748 +vt 0.973848 0.514615 +vt 0.978919 0.508547 +vt 0.983989 0.514615 +vt 0.427431 0.903418 +vt 0.457011 0.903418 +vt 0.775045 0.730764 +vt 0.769975 0.736832 +vt 0.764905 0.730764 +vt 0.361456 0.913665 +vt 0.367525 0.908595 +vt 0.367525 0.918735 +vt 0.510060 0.871988 +vt 0.539887 0.871988 +vt 0.539887 0.890036 +vt 0.968778 0.508547 +vt 0.983989 0.534101 +vt 0.780115 0.736832 +vt 0.787228 0.956367 +vt 0.856821 0.617046 +vt 0.822752 0.006709 +vt 0.492337 0.881662 +vt 0.496310 0.880141 +vt 0.496310 0.881662 +vt 0.492337 0.880141 +vt 0.496310 0.878621 +vt 0.492337 0.878621 +vt 0.496310 0.877100 +vt 0.492337 0.877100 +vt 0.496310 0.875580 +vt 0.840002 0.728758 +vt 0.840002 0.725949 +vt 0.841407 0.725367 +vt 0.841407 0.707976 +vt 0.841407 0.711950 +vt 0.840002 0.711368 +vt 0.608440 0.981430 +vt 0.585312 0.982185 +vt 0.585312 0.981430 +vt 0.977248 0.128811 +vt 0.977631 0.129710 +vt 0.976884 0.128962 +vt 0.608440 0.982185 +vt 0.585312 0.982941 +vt 0.608440 0.982941 +vt 0.585312 0.983697 +vt 0.979072 0.128056 +vt 0.978688 0.127157 +vt 0.979436 0.127905 +vt 0.608440 0.983697 +vt 0.585312 0.984452 +vt 0.978538 0.129346 +vt 0.977782 0.129346 +vt 0.608440 0.984452 +vt 0.585312 0.985208 +vt 0.977248 0.128056 +vt 0.976884 0.127905 +vt 0.608440 0.985208 +vt 0.585312 0.985964 +vt 0.608440 0.979918 +vt 0.585312 0.980674 +vt 0.585312 0.979918 +vt 0.608440 0.980674 +vt 0.063198 0.934399 +vt 0.072039 0.933342 +vt 0.072039 0.934399 +vt 0.063198 0.933342 +vt 0.072039 0.932285 +vt 0.063198 0.932285 +vt 0.072039 0.931228 +vt 0.063198 0.931228 +vt 0.072039 0.930170 +vt 0.063198 0.930170 +vt 0.072039 0.929113 +vt 0.063198 0.929113 +vt 0.072039 0.928056 +vt 0.063198 0.935456 +vt 0.072039 0.935456 +vt 0.063198 0.936514 +vt 0.072039 0.936514 +vt 0.979072 0.128811 +vt 0.979436 0.128962 +vt 0.977631 0.127157 +vt 0.977782 0.127521 +vt 0.978688 0.111188 +vt 0.979436 0.111936 +vt 0.976884 0.112993 +vt 0.978688 0.129710 +vt 0.978538 0.127521 +vt 0.841139 0.826421 +vt 0.840538 0.826833 +vt 0.840338 0.826812 +vt 0.839894 0.635303 +vt 0.838616 0.635504 +vt 0.838616 0.635303 +vt 0.839894 0.634419 +vt 0.838616 0.634822 +vt 0.838616 0.634419 +vt 0.840538 0.809135 +vt 0.841251 0.808962 +vt 0.841139 0.809546 +vt 0.841256 0.810745 +vt 0.840338 0.811275 +vt 0.839894 0.630463 +vt 0.838616 0.631523 +vt 0.838616 0.630463 +vt 0.839894 0.635504 +vt 0.838616 0.636564 +vt 0.839894 0.632583 +vt 0.838616 0.633644 +vt 0.838616 0.632583 +vt 0.839894 0.633825 +vt 0.838616 0.633825 +vt 0.839894 0.636564 +vt 0.838616 0.637624 +vt 0.839894 0.631523 +vt 0.839894 0.633644 +vt 0.839894 0.634822 +vt 0.841251 0.827005 +vt 0.840882 0.827168 +vt 0.841139 0.779257 +vt 0.840538 0.779669 +vt 0.840338 0.779648 +vt 0.494581 0.547476 +vt 0.495859 0.547275 +vt 0.495859 0.547476 +vt 0.494581 0.548359 +vt 0.495859 0.547956 +vt 0.495859 0.548359 +vt 0.631793 0.258471 +vt 0.632505 0.258299 +vt 0.632394 0.258882 +vt 0.632511 0.260081 +vt 0.631593 0.260611 +vt 0.494581 0.552316 +vt 0.495859 0.551255 +vt 0.495859 0.552316 +vt 0.494581 0.547275 +vt 0.495859 0.546215 +vt 0.494581 0.550195 +vt 0.495859 0.549135 +vt 0.495859 0.550195 +vt 0.494581 0.548953 +vt 0.495859 0.548953 +vt 0.494581 0.546215 +vt 0.495859 0.545155 +vt 0.494581 0.551255 +vt 0.494581 0.549135 +vt 0.494581 0.547956 +vt 0.841251 0.779841 +vt 0.840882 0.780004 +vt 0.841139 0.842314 +vt 0.840538 0.842726 +vt 0.840338 0.842705 +vt 0.630675 0.276350 +vt 0.631953 0.276149 +vt 0.631953 0.276350 +vt 0.630675 0.277233 +vt 0.631953 0.276830 +vt 0.631953 0.277233 +vt 0.840538 0.872706 +vt 0.841251 0.872534 +vt 0.841139 0.873117 +vt 0.841256 0.874317 +vt 0.840338 0.874847 +vt 0.630675 0.281189 +vt 0.631953 0.280129 +vt 0.631953 0.281189 +vt 0.630675 0.276149 +vt 0.631953 0.275089 +vt 0.630675 0.279069 +vt 0.631953 0.278009 +vt 0.631953 0.279069 +vt 0.630675 0.277827 +vt 0.631953 0.277827 +vt 0.630675 0.274028 +vt 0.631953 0.274028 +vt 0.630675 0.280129 +vt 0.630675 0.278009 +vt 0.630675 0.276830 +vt 0.841251 0.842898 +vt 0.840882 0.843061 +vt 0.841139 0.889993 +vt 0.840538 0.890404 +vt 0.840338 0.890384 +vt 0.591343 0.949881 +vt 0.591142 0.948603 +vt 0.591343 0.948603 +vt 0.592226 0.949881 +vt 0.591823 0.948603 +vt 0.592226 0.948603 +vt 0.840538 0.856813 +vt 0.841251 0.856641 +vt 0.841139 0.857225 +vt 0.841256 0.858424 +vt 0.840338 0.858954 +vt 0.596182 0.949881 +vt 0.595122 0.948603 +vt 0.596182 0.948603 +vt 0.591142 0.949881 +vt 0.590082 0.948603 +vt 0.594062 0.948603 +vt 0.593002 0.949881 +vt 0.593002 0.948603 +vt 0.592820 0.949881 +vt 0.592820 0.948603 +vt 0.590082 0.949881 +vt 0.589022 0.948603 +vt 0.595122 0.949881 +vt 0.591823 0.949881 +vt 0.841251 0.890576 +vt 0.840882 0.890739 +vt 0.838616 0.294606 +vt 0.804547 0.141189 +vt 0.751488 0.742652 +vt 0.623992 0.413172 +vt 0.623992 0.294606 +vt 0.623992 0.324433 +vt 0.623992 0.354013 +vt 0.623992 0.383592 +vt 0.623992 0.442751 +vt 0.623992 0.472331 +vt 0.494581 0.531738 +vt 0.751488 0.505212 +vt 0.637409 0.505212 +vt 0.637426 0.423736 +vt 0.643952 0.382855 +vt 0.662673 0.346112 +vt 0.960285 0.189016 +vt 0.861164 0.276493 +vt 0.065130 0.847979 +vt 0.063198 0.846046 +vt 0.812354 0.990755 +vt 0.811263 0.989455 +vt 0.137391 0.989490 +vt 0.136299 0.988190 +vt 0.093578 0.838557 +vt 0.085754 0.830734 +vt 0.495769 0.720191 +vt 0.491213 0.720186 +vt 0.918835 0.006720 +vt 0.914279 0.006714 +vt 0.918835 0.133834 +vt 0.914279 0.133829 +vt 0.928726 0.760682 +vt 0.924170 0.760676 +vt 0.491671 0.862163 +vt 0.491675 0.857693 +vt 0.478919 0.890001 +vt 0.478919 0.885680 +vt 0.874581 0.263828 +vt 0.874581 0.268150 +vt 0.008595 0.959196 +vt 0.975647 0.760373 +vt 0.977533 0.764927 +vt 0.968778 0.762259 +vt 0.013148 0.952327 +vt 0.006709 0.952327 +vt 0.011262 0.950441 +vt 0.754778 0.877717 +vt 0.756778 0.877717 +vt 0.758193 0.879132 +vt 0.756778 0.882547 +vt 0.753363 0.881133 +vt 0.779926 0.255121 +vt 0.751964 0.276860 +vt 0.225603 0.772929 +vt 0.899184 0.949373 +vt 0.034866 0.950441 +vt 0.960285 0.202447 +vt 0.983989 0.589997 +vt 0.427431 0.941511 +vt 0.257257 0.941618 +vt 0.343251 0.947363 +vt 0.731292 0.920748 +vt 0.343251 0.918735 +vt 0.539887 0.896105 +vt 0.968778 0.502478 +vt 0.983989 0.540169 +vt 0.780115 0.742901 +vt 0.787227 0.962435 +vt 0.850753 0.617046 +vt 0.816684 0.006709 +vt 0.862890 0.294606 +vt 0.828821 0.141189 +vt 0.900342 0.619922 +vt 0.006709 0.706928 +vt 0.125275 0.706929 +vt 0.095695 0.706929 +vt 0.214013 0.706929 +vt 0.184434 0.706929 +vt 0.154853 0.706929 +vt 0.637409 0.518629 +vt 0.751488 0.729234 +vt 0.691829 0.706885 +vt 0.728568 0.725604 +vt 0.662673 0.677729 +vt 0.968778 0.476924 +vt 0.842238 0.276493 +vt 0.120950 0.876479 +vt 0.122882 0.874547 +vt 0.219956 0.978992 +vt 0.219936 0.969499 +vt 0.218845 0.970799 +vt 0.175823 0.989822 +vt 0.175803 0.980329 +vt 0.174712 0.981629 +vt 0.072337 0.780752 +vt 0.064513 0.772929 +vt 0.503572 0.281189 +vt 0.503567 0.276632 +vt 0.589022 0.821501 +vt 0.593579 0.821496 +vt 0.645385 0.836249 +vt 0.645379 0.831693 +vt 0.617198 0.821501 +vt 0.621755 0.821496 +vt 0.645381 0.864300 +vt 0.645378 0.859830 +vt 0.257257 0.890107 +vt 0.257257 0.885786 +vt 0.575605 0.935912 +vt 0.575605 0.940234 +vt 0.737731 0.958298 +vt 0.737731 0.960966 +vt 0.731292 0.958298 +vt 0.970664 0.746956 +vt 0.968778 0.745070 +vt 0.970664 0.740517 +vt 0.804547 0.154610 +vt 0.370198 0.877100 +vt 0.370198 0.879101 +vt 0.366783 0.880516 +vt 0.365368 0.877100 +vt 0.368783 0.875686 +vt 0.384226 0.965007 +vt 0.412188 0.986746 +vt 0.820646 0.154606 +vt 0.968778 0.571792 +vt 0.927137 0.949373 +vt 0.062819 0.950441 +vt 0.988237 0.202447 +vt 0.749497 0.905537 +vt 0.427431 0.913558 +vt 0.300254 0.921573 +vt 0.257257 0.913665 +vt 0.361456 0.932152 +vt 0.361456 0.903524 +vt 0.492337 0.875580 +vt 0.841407 0.729340 +vt 0.839420 0.727354 +vt 0.839420 0.709963 +vt 0.840002 0.708558 +vt 0.608440 0.985964 +vt 0.063198 0.928056 +vt 0.979436 0.112993 +vt 0.978688 0.113740 +vt 0.977631 0.113740 +vt 0.976884 0.111936 +vt 0.977631 0.111188 +vt 0.839420 0.826282 +vt 0.839420 0.825222 +vt 0.840338 0.824692 +vt 0.841256 0.825222 +vt 0.841256 0.826282 +vt 0.840882 0.808799 +vt 0.839420 0.810745 +vt 0.839420 0.809685 +vt 0.840338 0.809155 +vt 0.841256 0.809685 +vt 0.839894 0.637624 +vt 0.839420 0.779118 +vt 0.839420 0.778058 +vt 0.840338 0.777528 +vt 0.841256 0.778058 +vt 0.841256 0.779118 +vt 0.632137 0.258136 +vt 0.630675 0.260081 +vt 0.630675 0.259021 +vt 0.631593 0.258491 +vt 0.632511 0.259021 +vt 0.494581 0.545155 +vt 0.839420 0.842175 +vt 0.839420 0.841115 +vt 0.840338 0.840585 +vt 0.841256 0.841115 +vt 0.841256 0.842175 +vt 0.840882 0.872371 +vt 0.839420 0.874316 +vt 0.839420 0.873256 +vt 0.840338 0.872726 +vt 0.841256 0.873256 +vt 0.630675 0.275089 +vt 0.839420 0.889854 +vt 0.839420 0.888794 +vt 0.840338 0.888264 +vt 0.841256 0.888794 +vt 0.841256 0.889854 +vt 0.840882 0.856478 +vt 0.839420 0.858424 +vt 0.839420 0.857364 +vt 0.840338 0.856833 +vt 0.841256 0.857364 +vt 0.594062 0.949881 +vt 0.589022 0.949881 +vn 0.1139 0.0000 -0.9935 +vn 1.0000 0.0000 0.0000 +vn 0.1139 0.0000 0.9935 +vn 0.0587 -0.9983 0.0000 +vn 0.0587 0.9983 0.0000 +vn 0.0542 0.0000 -0.9985 +vn 0.0542 0.0000 0.9985 +vn 0.0542 -0.9985 0.0000 +vn 0.0542 0.9985 0.0000 +vn 0.0543 0.0000 0.9985 +vn 0.1140 -0.0000 0.9935 +vn 0.0000 0.0792 -0.9969 +vn 0.0000 0.0002 -1.0000 +vn 0.0000 0.3096 -0.9509 +vn 0.0000 0.5878 -0.8090 +vn 0.0000 0.8090 -0.5878 +vn 0.0000 0.9511 -0.3090 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.9969 -0.0785 +vn 0.0000 0.9941 -0.1087 +vn 0.0000 -0.9877 0.1564 +vn 0.0000 -0.9511 0.3090 +vn 0.0000 -0.8090 0.5878 +vn 0.0000 -0.5878 0.8090 +vn 0.0000 -0.3096 0.9509 +vn 0.0000 -0.0792 0.9969 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.0002 1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.9919 0.1267 0.0000 +vn 0.9679 0.2513 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn 0.6412 0.0000 0.7674 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.9679 0.2513 0.0000 +vn -0.9919 0.1267 0.0000 +vn -0.6412 0.0000 0.7674 +vn 0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.5942 0.8043 0.0000 +vn 0.6894 0.7244 0.0000 +vn 0.9967 0.0811 0.0000 +vn -0.9997 0.0257 0.0000 +vn 0.5221 0.8529 0.0000 +vn 0.4776 -0.8786 0.0000 +vn 0.3044 -0.9525 0.0000 +vn -0.4776 0.8786 0.0000 +vn -0.5221 -0.8529 0.0000 +vn 0.9313 -0.3643 0.0000 +vn 0.2961 0.9552 0.0000 +vn 0.9585 0.2850 0.0000 +vn 0.9865 0.1639 0.0000 +vn 0.8450 -0.5348 0.0000 +vn -0.7830 0.6220 0.0000 +vn 0.9302 0.3672 0.0000 +vn -0.1471 -0.9891 0.0000 +vn -0.3299 -0.9440 0.0000 +vn 0.1471 0.9891 0.0000 +vn -0.9302 -0.3672 0.0000 +vn 0.5247 -0.8513 0.0000 +vn 0.8112 0.5848 0.0000 +vn -0.0001 0.0000 1.0000 +vn -0.1973 0.9803 0.0000 +vn -0.0742 0.9972 0.0000 +vn 0.6089 0.7932 0.0000 +vn 0.0001 0.0000 -1.0000 +vn -0.6901 -0.7237 0.0000 +vn -0.2817 0.9595 0.0000 +vn 0.9718 -0.2358 0.0000 +vn 0.9104 -0.4138 0.0000 +vn -0.9718 0.2358 0.0000 +vn 0.2817 -0.9595 0.0000 +vn 0.8952 0.4458 0.0000 +vn 0.8951 0.4458 0.0000 +vn -0.5092 0.8606 0.0000 +vn 0.2540 0.9672 0.0000 +vn 0.3720 0.9282 0.0000 +vn 0.8957 0.4446 0.0000 +vn -0.9381 -0.3464 0.0000 +vn 0.1690 0.9856 0.0000 +vn 0.7691 -0.6392 0.0000 +vn 0.6356 -0.7720 0.0000 +vn -0.7690 0.6392 0.0000 +vn -0.1690 -0.9856 0.0000 +vn 1.0000 0.0066 0.0000 +vn -0.0788 0.9969 0.0000 +vn -0.4775 0.8786 0.0000 +vn -0.0002 0.0000 -1.0000 +s off +f 1189/1079/104 1194/1080/104 1193/1081/104 +f 1194/1080/105 1191/1082/105 1193/1081/105 +f 1192/1083/106 1187/1084/106 1191/1082/106 +f 1193/1081/107 1187/1085/107 1189/1086/107 +f 1190/1087/108 1192/1083/108 1194/1080/108 +f 1198/1088/109 1201/1089/109 1197/1090/109 +f 1202/1091/105 1199/1092/105 1201/1089/105 +f 1200/1093/110 1195/1094/110 1199/1092/110 +f 1201/1089/111 1195/1095/111 1197/1096/111 +f 1198/1097/112 1200/1093/112 1202/1091/112 +f 1206/1098/109 1209/1099/109 1205/1100/109 +f 1210/1101/105 1207/1102/105 1209/1099/105 +f 1208/1103/113 1203/1104/113 1207/1102/113 +f 1209/1099/111 1203/1105/111 1205/1106/111 +f 1206/1107/112 1208/1103/112 1210/1101/112 +f 1214/1108/109 1217/1109/109 1213/1110/109 +f 1218/1111/105 1215/1112/105 1217/1109/105 +f 1216/1113/110 1211/1114/110 1215/1112/110 +f 1217/1109/111 1211/1115/111 1213/1116/111 +f 1214/1117/112 1216/1113/112 1218/1111/112 +f 1222/1118/109 1225/1119/109 1221/1120/109 +f 1226/1121/105 1223/1122/105 1225/1119/105 +f 1224/1123/113 1219/1124/113 1223/1122/113 +f 1225/1119/111 1219/1125/111 1221/1126/111 +f 1222/1127/112 1224/1123/112 1226/1121/112 +f 1189/1079/104 1190/1128/104 1194/1080/104 +f 1194/1080/105 1192/1083/105 1191/1082/105 +f 1192/1083/114 1188/1129/114 1187/1084/114 +f 1193/1081/107 1191/1082/107 1187/1085/107 +f 1190/1087/108 1188/1130/108 1192/1083/108 +f 1198/1088/109 1202/1091/109 1201/1089/109 +f 1202/1091/105 1200/1093/105 1199/1092/105 +f 1200/1093/110 1196/1131/110 1195/1094/110 +f 1201/1089/111 1199/1092/111 1195/1095/111 +f 1198/1097/112 1196/1132/112 1200/1093/112 +f 1206/1098/109 1210/1101/109 1209/1099/109 +f 1210/1101/105 1208/1103/105 1207/1102/105 +f 1208/1103/110 1204/1133/110 1203/1104/110 +f 1209/1099/111 1207/1102/111 1203/1105/111 +f 1206/1107/112 1204/1134/112 1208/1103/112 +f 1214/1108/109 1218/1111/109 1217/1109/109 +f 1218/1111/105 1216/1113/105 1215/1112/105 +f 1216/1113/110 1212/1135/110 1211/1114/110 +f 1217/1109/111 1215/1112/111 1211/1115/111 +f 1214/1117/112 1212/1136/112 1216/1113/112 +f 1222/1118/109 1226/1121/109 1225/1119/109 +f 1226/1121/105 1224/1123/105 1223/1122/105 +f 1224/1123/110 1220/1137/110 1219/1124/110 +f 1225/1119/111 1223/1122/111 1219/1125/111 +f 1222/1127/112 1220/1138/112 1224/1123/112 +s 1 +f 667/1139/115 1120/1140/116 1121/1141/115 +f 668/1142/117 1121/1141/115 1122/1143/117 +f 669/1144/118 1122/1143/117 1123/1145/118 +f 670/1146/119 1123/1145/118 1124/1147/119 +f 671/1148/120 1124/1147/119 1125/1149/120 +f 1120/1150/121 673/1151/121 1127/1152/121 +f 674/1153/122 663/1154/122 656/1155/122 +f 1126/1156/123 664/1157/122 672/1158/124 +f 866/1159/105 673/1160/105 663/1161/105 +f 656/1162/105 667/1163/105 661/1164/105 +f 667/1163/105 660/1165/105 661/1164/105 +f 668/1166/105 659/1167/105 660/1165/105 +f 669/1168/105 658/1169/105 659/1167/105 +f 670/1170/105 657/1171/105 658/1169/105 +f 671/1172/105 662/1173/105 657/1171/105 +f 673/1160/105 656/1162/105 663/1161/105 +f 678/1174/105 679/1175/105 680/1176/105 +f 680/1177/125 657/1178/126 662/1179/125 +f 678/1180/127 659/1181/128 658/1182/127 +f 676/1183/129 661/1184/130 660/1185/129 +f 663/1186/131 680/1187/131 662/1188/131 +f 679/1189/126 658/1182/127 657/1178/126 +f 677/1190/128 660/1185/129 659/1181/128 +f 675/1191/130 656/1192/132 661/1184/130 +f 682/1193/131 688/1194/131 687/1195/131 +f 688/1196/122 685/1197/122 693/1198/122 +f 686/1199/105 692/1200/105 690/1201/105 +f 691/1202/133 685/1203/133 684/1204/133 +f 693/1205/134 690/1201/134 692/1200/134 +f 686/1199/135 691/1206/135 687/1207/135 +f 692/1200/136 688/1196/136 693/1198/136 +f 689/1208/137 687/1195/137 688/1194/137 +f 682/1209/121 691/1206/121 684/1210/121 +f 694/1211/131 705/1212/131 698/1213/131 +f 703/1214/133 701/1215/133 697/1216/133 +f 705/1212/138 701/1215/139 704/1217/138 +f 702/1218/131 699/1219/131 705/1212/131 +f 694/1220/121 700/1221/121 696/1222/121 +f 699/1219/122 697/1223/122 701/1215/122 +f 698/1213/105 704/1217/138 700/1221/105 +f 700/1221/133 703/1214/133 696/1224/133 +f 706/1225/131 717/1226/131 710/1227/131 +f 715/1228/133 713/1229/133 709/1230/133 +f 717/1226/138 713/1229/139 716/1231/138 +f 714/1232/131 711/1233/131 717/1226/131 +f 706/1234/121 712/1235/121 708/1236/121 +f 711/1233/122 709/1237/122 713/1229/122 +f 710/1227/105 716/1231/138 712/1235/105 +f 712/1235/133 715/1228/133 708/1238/133 +f 727/1239/133 721/1240/133 720/1241/133 +f 733/1242/133 722/1243/133 723/1244/133 +f 718/1245/131 729/1246/131 728/1247/131 +f 718/1248/121 727/1239/121 720/1249/121 +f 729/1246/122 721/1250/122 726/1251/122 +f 726/1251/105 724/1252/105 725/1253/105 +f 727/1239/105 722/1254/105 724/1252/105 +f 729/1246/105 725/1253/105 723/1255/105 +f 728/1247/105 723/1255/105 722/1254/105 +f 732/1256/105 730/1257/105 731/1258/105 +f 732/1256/122 724/1259/122 722/1260/122 +f 730/1257/121 723/1261/121 725/1262/121 +f 731/1258/131 725/1263/131 724/1264/131 +f 741/1265/122 737/1266/122 744/1267/122 +f 739/1268/105 745/1269/105 742/1270/105 +f 739/1268/135 743/1271/135 738/1272/135 +f 745/1269/136 741/1265/136 744/1267/136 +f 734/1273/121 743/1271/121 736/1274/121 +f 753/1275/122 749/1276/122 756/1277/122 +f 751/1278/105 757/1279/105 754/1280/105 +f 751/1278/135 755/1281/135 750/1282/135 +f 757/1279/136 753/1275/136 756/1277/136 +f 746/1283/121 755/1281/121 748/1284/121 +f 765/1285/122 761/1286/122 768/1287/122 +f 763/1288/105 769/1289/105 766/1290/105 +f 763/1288/135 767/1291/135 762/1292/135 +f 769/1289/136 765/1285/136 768/1287/136 +f 758/1293/121 767/1291/121 760/1294/121 +f 777/1295/122 773/1296/122 780/1297/122 +f 775/1298/105 781/1299/105 778/1300/105 +f 775/1298/135 779/1301/135 774/1302/135 +f 781/1299/136 777/1295/136 780/1297/136 +f 770/1303/121 779/1301/121 772/1304/121 +f 789/1305/122 785/1306/122 792/1307/122 +f 787/1308/105 793/1309/105 790/1310/105 +f 787/1308/135 791/1311/135 786/1312/135 +f 793/1309/136 789/1305/136 792/1307/136 +f 782/1313/121 791/1311/121 784/1314/121 +f 801/1315/122 797/1316/122 804/1317/122 +f 799/1318/105 805/1319/105 802/1320/105 +f 799/1318/135 803/1321/135 798/1322/135 +f 805/1319/136 801/1315/136 804/1317/136 +f 794/1323/121 803/1321/121 796/1324/121 +f 813/1325/122 809/1326/122 816/1327/122 +f 811/1328/105 817/1329/105 814/1330/105 +f 811/1328/135 815/1331/135 810/1332/135 +f 817/1329/136 813/1325/136 816/1327/136 +f 806/1333/121 815/1331/121 808/1334/121 +f 820/1335/140 819/1336/121 818/1337/121 +f 822/1338/141 821/1339/140 820/1335/140 +f 824/1340/142 823/1341/141 822/1338/141 +f 826/1342/143 825/1343/142 824/1340/142 +f 828/1344/122 827/1345/143 826/1342/143 +f 840/1346/131 830/1347/131 832/1348/131 +f 823/1349/133 827/1350/133 831/1351/133 +f 833/1352/133 835/1353/133 819/1354/133 +f 830/1347/131 837/1355/131 828/1356/131 +f 832/1348/131 828/1356/131 824/1357/131 +f 842/1358/144 857/1359/145 849/1360/145 +f 853/1361/133 855/1362/133 857/1363/133 +f 836/1364/133 831/1351/133 829/1365/133 +f 837/1366/122 829/1367/122 828/1344/122 +f 835/1368/121 818/1337/121 819/1336/121 +f 834/1369/131 832/1348/131 818/1370/131 +f 839/1371/133 833/1352/133 831/1351/133 +f 848/1372/146 855/1373/147 847/1374/147 +f 846/1375/143 853/1376/142 845/1377/142 +f 844/1378/141 850/1379/140 843/1380/140 +f 849/1381/145 856/1382/146 848/1372/146 +f 847/1374/147 854/1383/143 846/1375/143 +f 843/1380/140 852/1384/144 842/1358/144 +f 845/1377/142 851/1385/141 844/1378/141 +f 859/1386/148 673/1387/148 866/1388/148 +f 863/1389/121 1140/1390/121 1132/1391/121 +f 664/1157/122 873/1392/122 672/1158/122 +f 871/1393/148 863/1394/148 864/1395/148 +f 869/1396/148 861/1397/148 862/1398/148 +f 862/1399/122 881/1400/122 869/1401/122 +f 867/1402/148 858/1403/148 860/1404/148 +f 864/1395/133 1132/1405/133 1131/1406/133 +f 869/1407/105 878/1408/105 870/1409/105 +f 862/1398/133 1134/1410/133 1133/1411/133 +f 860/1404/133 1136/1412/133 1135/1413/133 +f 859/1414/121 1138/1415/121 1130/1416/121 +f 863/1389/121 878/1417/121 879/1418/121 +f 872/1419/148 886/1420/148 873/1421/148 +f 876/1422/148 874/1423/148 875/1424/148 +f 879/1425/148 881/1426/148 880/1427/148 +f 882/1428/148 884/1429/148 883/1430/148 +f 875/1424/133 1139/1431/133 1138/1432/133 +f 879/1425/133 1141/1433/133 1140/1434/133 +f 883/1430/133 1143/1435/133 1142/1436/133 +f 861/1437/121 882/1438/121 883/1439/121 +f 861/1437/121 1142/1440/121 1134/1441/121 +f 867/1442/105 882/1428/105 868/1443/105 +f 859/1414/121 876/1444/121 875/1445/121 +f 860/1446/122 885/1447/122 867/1448/122 +f 871/1449/105 876/1422/105 866/1450/105 +f 864/1451/122 877/1452/122 871/1453/122 +f 858/1454/121 1144/1455/121 1136/1456/121 +f 858/1454/121 886/1457/121 887/1458/121 +f 672/1459/105 886/1420/105 865/1460/105 +f 1137/1461/133 887/1462/133 872/1419/133 +f 1135/1463/122 884/1464/122 860/1446/122 +f 1133/1465/122 880/1466/122 862/1399/122 +f 1131/1467/122 874/1468/122 864/1451/122 +f 1130/1469/133 665/1470/133 859/1386/133 +f 1128/1471/122 872/1472/122 664/1157/122 +f 665/1473/121 1127/1152/121 673/1151/121 +f 671/1148/120 1126/1156/123 672/1158/124 +f 1120/1140/116 899/1474/115 1121/1141/115 +f 1121/1141/115 900/1475/117 1122/1143/117 +f 1122/1143/117 901/1476/118 1123/1145/118 +f 1123/1145/118 902/1477/119 1124/1147/119 +f 1124/1147/119 903/1478/120 1125/1149/120 +f 905/1479/121 1120/1150/121 1127/1152/121 +f 895/1480/122 906/1481/122 888/1482/122 +f 1126/1156/123 896/1483/122 1128/1471/122 +f 1099/1484/149 1097/1485/149 894/1486/149 +f 888/1487/149 899/1488/149 898/1489/149 +f 892/1490/149 899/1488/149 893/1491/149 +f 891/1492/149 900/1493/149 892/1490/149 +f 891/1492/149 902/1494/149 901/1495/149 +f 889/1496/149 902/1494/149 890/1497/149 +f 894/1486/149 903/1498/149 889/1496/149 +f 888/1487/149 905/1499/149 895/1500/149 +f 908/1501/149 907/1502/149 913/1503/149 +f 889/1504/126 912/1505/125 894/1506/125 +f 891/1507/128 910/1508/127 890/1509/127 +f 893/1510/130 908/1511/129 892/1512/129 +f 894/1513/131 913/1514/131 895/1515/131 +f 890/1509/127 911/1516/126 889/1504/126 +f 892/1512/129 909/1517/128 891/1507/128 +f 888/1518/132 907/1519/130 893/1510/130 +f 920/1520/131 914/1521/131 919/1522/131 +f 917/1523/122 920/1524/122 925/1525/122 +f 924/1526/149 918/1527/149 922/1528/149 +f 917/1529/133 923/1530/133 916/1531/133 +f 922/1528/150 925/1532/150 924/1526/150 +f 923/1533/151 918/1527/151 919/1534/151 +f 920/1524/152 924/1526/152 925/1525/152 +f 919/1522/153 921/1535/153 920/1520/153 +f 923/1533/121 914/1536/121 916/1537/121 +f 937/1538/131 926/1539/131 930/1540/131 +f 935/1541/133 933/1542/133 936/1543/133 +f 933/1542/154 937/1538/155 936/1543/155 +f 931/1544/131 934/1545/131 937/1538/131 +f 932/1546/121 926/1547/121 928/1548/121 +f 929/1549/122 931/1544/122 933/1542/122 +f 936/1543/155 930/1540/149 932/1546/149 +f 935/1541/133 932/1546/133 928/1550/133 +f 949/1551/131 938/1552/131 942/1553/131 +f 947/1554/133 945/1555/133 948/1556/133 +f 945/1555/154 949/1551/155 948/1556/155 +f 943/1557/131 946/1558/131 949/1551/131 +f 944/1559/121 938/1560/121 940/1561/121 +f 941/1562/122 943/1557/122 945/1555/122 +f 948/1556/155 942/1553/149 944/1559/149 +f 947/1554/133 944/1559/133 940/1563/133 +f 953/1564/133 959/1565/133 952/1566/133 +f 954/1567/133 965/1568/133 955/1569/133 +f 961/1570/131 950/1571/131 960/1572/131 +f 959/1565/121 950/1573/121 952/1574/121 +f 953/1575/122 961/1570/122 958/1576/122 +f 956/1577/149 958/1576/149 957/1578/149 +f 956/1577/149 960/1572/149 959/1565/149 +f 955/1579/149 958/1576/149 961/1570/149 +f 955/1579/149 960/1572/149 954/1580/149 +f 962/1581/149 964/1582/149 963/1583/149 +f 956/1584/122 964/1582/122 954/1585/122 +f 955/1586/121 962/1581/121 957/1587/121 +f 957/1588/131 963/1583/131 956/1589/131 +f 969/1590/122 973/1591/122 976/1592/122 +f 977/1593/149 971/1594/149 974/1595/149 +f 975/1596/151 971/1594/151 970/1597/151 +f 973/1591/152 977/1593/152 976/1592/152 +f 975/1596/121 966/1598/121 968/1599/121 +f 981/1600/122 985/1601/122 988/1602/122 +f 989/1603/149 983/1604/149 986/1605/149 +f 987/1606/151 983/1604/151 982/1607/151 +f 985/1601/152 989/1603/152 988/1602/152 +f 987/1606/121 978/1608/121 980/1609/121 +f 993/1610/122 997/1611/122 1000/1612/122 +f 1001/1613/149 995/1614/149 998/1615/149 +f 999/1616/151 995/1614/151 994/1617/151 +f 997/1611/152 1001/1613/152 1000/1612/152 +f 999/1616/121 990/1618/121 992/1619/121 +f 1005/1620/122 1009/1621/122 1012/1622/122 +f 1013/1623/149 1007/1624/149 1010/1625/149 +f 1011/1626/151 1007/1624/151 1006/1627/151 +f 1009/1621/152 1013/1623/152 1012/1622/152 +f 1011/1626/121 1002/1628/121 1004/1629/121 +f 1017/1630/122 1021/1631/122 1024/1632/122 +f 1025/1633/149 1019/1634/149 1022/1635/149 +f 1023/1636/151 1019/1634/151 1018/1637/151 +f 1021/1631/152 1025/1633/152 1024/1632/152 +f 1023/1636/121 1014/1638/121 1016/1639/121 +f 1029/1640/122 1033/1641/122 1036/1642/122 +f 1037/1643/149 1031/1644/149 1034/1645/149 +f 1035/1646/151 1031/1644/151 1030/1647/151 +f 1033/1641/152 1037/1643/152 1036/1642/152 +f 1035/1646/121 1026/1648/121 1028/1649/121 +f 1041/1650/122 1045/1651/122 1048/1652/122 +f 1049/1653/149 1043/1654/149 1046/1655/149 +f 1047/1656/151 1043/1654/151 1042/1657/151 +f 1045/1651/152 1049/1653/152 1048/1652/152 +f 1047/1656/121 1038/1658/121 1040/1659/121 +f 1051/1660/121 1052/1661/144 1050/1662/121 +f 1053/1663/144 1054/1664/145 1052/1661/144 +f 1055/1665/145 1056/1666/146 1054/1664/145 +f 1057/1667/146 1058/1668/147 1056/1666/146 +f 1059/1669/147 1060/1670/122 1058/1668/147 +f 1062/1671/131 1072/1672/131 1064/1673/131 +f 1057/1674/133 1055/1675/133 1063/1676/133 +f 1065/1677/133 1067/1678/133 1073/1679/133 +f 1062/1671/131 1069/1680/131 1070/1681/131 +f 1056/1682/131 1060/1683/131 1064/1673/131 +f 1081/1684/141 1084/1685/140 1074/1686/140 +f 1089/1687/133 1087/1688/133 1085/1689/133 +f 1063/1676/133 1068/1690/133 1061/1691/133 +f 1061/1692/122 1069/1693/122 1060/1670/122 +f 1050/1662/121 1067/1694/121 1051/1660/121 +f 1064/1673/131 1066/1695/131 1050/1696/131 +f 1065/1677/133 1071/1697/133 1063/1676/133 +f 1087/1698/143 1080/1699/142 1079/1700/143 +f 1085/1701/146 1078/1702/147 1077/1703/146 +f 1082/1704/144 1076/1705/145 1075/1706/144 +f 1088/1707/142 1081/1708/141 1080/1699/142 +f 1086/1709/147 1079/1700/143 1078/1702/147 +f 1084/1685/140 1075/1706/144 1074/1686/140 +f 1083/1710/145 1077/1703/146 1076/1705/145 +f 905/1711/156 1091/1712/156 1098/1713/156 +f 1140/1390/121 1095/1714/121 1132/1391/121 +f 1105/1715/122 896/1483/122 904/1716/122 +f 1095/1717/156 1103/1718/156 1096/1719/156 +f 1093/1720/156 1101/1721/156 1094/1722/156 +f 1113/1723/122 1094/1724/122 1101/1725/122 +f 1090/1726/156 1099/1727/156 1092/1728/156 +f 1132/1405/133 1096/1719/133 1131/1406/133 +f 1110/1729/149 1101/1730/149 1102/1731/149 +f 1134/1410/133 1094/1722/133 1133/1411/133 +f 1136/1412/133 1092/1728/133 1135/1413/133 +f 1138/1415/121 1091/1732/121 1130/1416/121 +f 1095/1714/121 1110/1733/121 1102/1734/121 +f 1118/1735/156 1104/1736/156 1105/1737/156 +f 1106/1738/156 1108/1739/156 1107/1740/156 +f 1111/1741/156 1113/1742/156 1110/1729/156 +f 1116/1743/156 1114/1744/156 1115/1745/156 +f 1139/1431/133 1107/1740/133 1138/1432/133 +f 1141/1433/133 1111/1741/133 1140/1434/133 +f 1143/1435/133 1115/1745/133 1142/1436/133 +f 1093/1746/121 1114/1747/121 1100/1748/121 +f 1142/1440/121 1093/1746/121 1134/1441/121 +f 1114/1744/149 1099/1749/149 1100/1750/149 +f 1091/1732/121 1108/1751/121 1098/1752/121 +f 1117/1753/122 1092/1754/122 1099/1755/122 +f 1108/1739/149 1103/1756/149 1098/1757/149 +f 1109/1758/122 1096/1759/122 1103/1760/122 +f 1144/1455/121 1090/1761/121 1136/1456/121 +f 1090/1761/121 1118/1762/121 1097/1763/121 +f 1118/1735/149 904/1764/149 1097/1765/149 +f 1119/1766/133 1137/1461/133 1104/1736/133 +f 1116/1767/122 1135/1463/122 1092/1754/122 +f 1112/1768/122 1133/1465/122 1094/1724/122 +f 1106/1769/122 1131/1467/122 1096/1759/122 +f 897/1770/133 1130/1469/133 1091/1712/133 +f 1104/1771/122 1128/1471/122 896/1483/122 +f 1127/1152/121 897/1772/121 905/1479/121 +f 1126/1156/123 903/1478/120 904/1716/124 +f 1146/1773/157 1147/1774/134 1145/1775/157 +f 1148/1776/134 1149/1777/105 1147/1774/134 +f 1150/1778/105 1151/1779/137 1149/1777/105 +f 1152/1780/137 1153/1781/158 1151/1779/137 +f 1147/1782/122 1151/1783/122 1153/1784/122 +f 1146/1785/121 1154/1786/121 1152/1787/121 +f 1157/1788/122 1155/1789/136 1156/1790/122 +f 1155/1791/133 1173/1792/133 1172/1793/133 +f 1158/1794/136 1165/1795/105 1155/1789/136 +f 1159/1796/105 1166/1797/135 1165/1795/105 +f 1168/1798/133 1182/1799/133 1180/1800/133 +f 1160/1801/135 1167/1802/121 1166/1797/135 +f 1166/1803/133 1173/1792/133 1165/1804/133 +f 1161/1805/121 1168/1806/151 1167/1802/121 +f 1156/1807/133 1172/1793/133 1171/1808/133 +f 1162/1809/151 1169/1810/149 1168/1806/151 +f 1163/1811/149 1170/1812/152 1169/1813/149 +f 1164/1814/152 1156/1790/122 1170/1812/152 +f 1171/1815/122 1175/1816/136 1174/1817/122 +f 1172/1818/136 1177/1819/105 1175/1816/136 +f 1173/1820/105 1179/1821/135 1177/1819/105 +f 1176/1822/135 1181/1823/121 1179/1821/135 +f 1178/1824/121 1183/1825/151 1181/1823/121 +f 1180/1826/151 1185/1827/149 1183/1825/151 +f 1184/1828/152 1174/1817/122 1186/1829/152 +f 1182/1830/149 1186/1829/152 1185/1831/149 +f 1167/1832/133 1180/1800/133 1178/1833/133 +f 1156/1807/133 1184/1834/133 1170/1835/133 +f 1185/1836/131 1186/1837/131 1179/1838/131 +f 1167/1832/133 1176/1839/133 1166/1803/133 +f 1170/1835/133 1182/1799/133 1169/1840/133 +f 1232/1841/133 1233/1842/133 1234/1843/133 +f 1235/1844/159 1234/1845/160 1233/1846/159 +f 1238/1847/161 1240/1848/161 1237/1849/161 +f 1235/1850/131 1238/1851/131 1241/1852/131 +f 1245/1853/131 1246/1854/131 1241/1852/131 +f 1242/1855/162 1229/1856/162 1228/1857/162 +f 1236/1858/160 1227/1859/163 1234/1845/160 +f 1245/1860/164 1231/1861/164 1230/1862/164 +f 1241/1863/165 1237/1849/165 1232/1864/165 +f 1243/1865/166 1228/1866/166 1227/1859/166 +f 1246/1867/167 1230/1862/167 1229/1856/167 +f 1244/1868/168 1232/1864/168 1231/1861/168 +f 1233/1846/159 1239/1869/169 1235/1844/159 +f 1233/1842/133 1237/1870/133 1240/1871/133 +f 1252/1872/133 1253/1873/133 1254/1874/133 +f 1255/1875/170 1254/1876/171 1253/1877/170 +f 1258/1878/172 1260/1879/172 1257/1880/172 +f 1255/1881/131 1258/1882/131 1261/1883/131 +f 1265/1884/131 1266/1885/131 1261/1883/131 +f 1262/1886/173 1249/1887/173 1248/1888/173 +f 1256/1889/171 1247/1890/174 1254/1876/171 +f 1265/1891/175 1251/1892/175 1250/1893/175 +f 1261/1894/176 1257/1880/176 1252/1895/176 +f 1263/1896/177 1248/1897/177 1247/1890/177 +f 1266/1898/178 1250/1893/178 1249/1887/178 +f 1264/1899/179 1252/1895/179 1251/1892/179 +f 1255/1875/170 1260/1879/180 1259/1900/180 +f 1253/1873/133 1257/1901/133 1260/1902/133 +f 1272/1903/133 1273/1904/181 1274/1905/133 +f 1275/1906/182 1274/1907/183 1273/1908/182 +f 1278/1909/184 1280/1910/184 1277/1911/184 +f 1275/1912/185 1278/1913/131 1281/1914/131 +f 1285/1915/131 1286/1916/131 1281/1914/131 +f 1282/1917/186 1269/1918/186 1268/1919/186 +f 1276/1920/183 1267/1921/187 1274/1907/183 +f 1285/1922/188 1271/1923/188 1270/1924/188 +f 1281/1925/189 1277/1911/189 1272/1926/189 +f 1267/1921/190 1282/1927/190 1268/1928/190 +f 1286/1929/191 1270/1924/191 1269/1918/191 +f 1284/1930/192 1272/1926/193 1271/1923/193 +f 1273/1908/182 1279/1931/194 1275/1906/182 +f 1273/1904/181 1277/1932/133 1280/1933/133 +f 1292/1934/133 1293/1935/133 1294/1936/133 +f 1295/1937/195 1294/1938/196 1293/1939/195 +f 1298/1940/197 1300/1941/197 1297/1942/197 +f 1295/1943/131 1298/1944/131 1301/1945/131 +f 1305/1946/131 1306/1947/131 1301/1945/131 +f 1302/1948/198 1289/1949/198 1288/1950/198 +f 1296/1951/196 1287/1952/199 1294/1938/196 +f 1290/1953/200 1304/1954/200 1291/1955/200 +f 1301/1956/201 1297/1942/201 1292/1957/201 +f 1303/1958/202 1288/1959/202 1287/1952/202 +f 1306/1960/203 1290/1953/203 1289/1949/203 +f 1304/1954/204 1292/1957/204 1291/1955/204 +f 1293/1939/195 1299/1961/205 1295/1937/195 +f 1293/1935/133 1297/1962/133 1300/1963/133 +f 667/1139/115 666/1964/116 1120/1140/116 +f 668/1142/117 667/1139/115 1121/1141/115 +f 669/1144/118 668/1142/117 1122/1143/117 +f 670/1146/119 669/1144/118 1123/1145/118 +f 671/1148/120 670/1146/119 1124/1147/119 +f 1120/1150/121 666/1965/121 673/1151/121 +f 674/1153/122 681/1966/122 663/1154/122 +f 1126/1156/123 1128/1471/122 664/1157/122 +f 663/1161/105 662/1173/105 869/1967/105 +f 662/1173/105 672/1968/105 865/1969/105 +f 867/1970/105 662/1173/105 865/1969/105 +f 867/1970/105 868/1971/105 662/1173/105 +f 868/1971/105 869/1967/105 662/1173/105 +f 870/1972/105 871/1973/105 663/1161/105 +f 871/1973/105 866/1159/105 663/1161/105 +f 869/1967/105 870/1972/105 663/1161/105 +f 656/1162/105 666/1974/105 667/1163/105 +f 667/1163/105 668/1166/105 660/1165/105 +f 668/1166/105 669/1168/105 659/1167/105 +f 669/1168/105 670/1170/105 658/1169/105 +f 670/1170/105 671/1172/105 657/1171/105 +f 671/1172/105 672/1968/105 662/1173/105 +f 673/1160/105 666/1974/105 656/1162/105 +f 680/1176/105 681/1975/105 678/1174/105 +f 681/1975/105 674/1976/105 675/1977/105 +f 676/1978/105 681/1975/105 675/1977/105 +f 676/1978/105 677/1979/105 681/1975/105 +f 677/1979/105 678/1174/105 681/1975/105 +f 680/1177/125 679/1189/126 657/1178/126 +f 678/1180/127 677/1190/128 659/1181/128 +f 676/1183/129 675/1191/130 661/1184/130 +f 663/1186/131 681/1980/131 680/1187/131 +f 679/1189/126 678/1180/127 658/1182/127 +f 677/1190/128 676/1183/129 660/1185/129 +f 675/1191/130 674/1981/132 656/1192/132 +f 682/1193/131 683/1982/131 688/1194/131 +f 688/1196/122 683/1983/122 685/1197/122 +f 686/1199/105 689/1208/105 692/1200/105 +f 691/1202/133 693/1205/133 685/1203/133 +f 693/1205/134 691/1202/134 690/1201/134 +f 686/1199/135 690/1201/135 691/1206/135 +f 692/1200/136 689/1208/136 688/1196/136 +f 689/1208/137 686/1199/137 687/1195/137 +f 682/1209/121 687/1207/121 691/1206/121 +f 694/1211/131 702/1218/131 705/1212/131 +f 703/1214/133 704/1217/133 701/1215/133 +f 705/1212/138 699/1219/139 701/1215/139 +f 702/1218/131 695/1984/131 699/1219/131 +f 694/1220/121 698/1213/121 700/1221/121 +f 699/1219/122 695/1985/122 697/1223/122 +f 698/1213/105 705/1212/138 704/1217/138 +f 700/1221/133 704/1217/133 703/1214/133 +f 706/1225/131 714/1232/131 717/1226/131 +f 715/1228/133 716/1231/133 713/1229/133 +f 717/1226/138 711/1233/139 713/1229/139 +f 714/1232/131 707/1986/131 711/1233/131 +f 706/1234/121 710/1227/121 712/1235/121 +f 711/1233/122 707/1987/122 709/1237/122 +f 710/1227/105 717/1226/138 716/1231/138 +f 712/1235/133 716/1231/133 715/1228/133 +f 727/1239/133 726/1251/133 721/1240/133 +f 733/1242/133 732/1256/133 722/1243/133 +f 718/1245/131 719/1988/131 729/1246/131 +f 718/1248/121 728/1247/121 727/1239/121 +f 729/1246/122 719/1989/122 721/1250/122 +f 726/1251/105 727/1239/105 724/1252/105 +f 727/1239/105 728/1247/105 722/1254/105 +f 729/1246/105 726/1251/105 725/1253/105 +f 728/1247/105 729/1246/105 723/1255/105 +f 732/1256/105 733/1242/105 730/1257/105 +f 732/1256/122 731/1258/122 724/1259/122 +f 730/1257/121 733/1242/121 723/1261/121 +f 731/1258/131 730/1257/131 725/1263/131 +f 741/1265/122 735/1990/122 737/1266/122 +f 739/1268/105 740/1991/105 745/1269/105 +f 739/1268/135 742/1270/135 743/1271/135 +f 745/1269/136 740/1991/136 741/1265/136 +f 734/1273/121 738/1272/121 743/1271/121 +f 753/1275/122 747/1992/122 749/1276/122 +f 751/1278/105 752/1993/105 757/1279/105 +f 751/1278/135 754/1280/135 755/1281/135 +f 757/1279/136 752/1993/136 753/1275/136 +f 746/1283/121 750/1282/121 755/1281/121 +f 765/1285/122 759/1994/122 761/1286/122 +f 763/1288/105 764/1995/105 769/1289/105 +f 763/1288/135 766/1290/135 767/1291/135 +f 769/1289/136 764/1995/136 765/1285/136 +f 758/1293/121 762/1292/121 767/1291/121 +f 777/1295/122 771/1996/122 773/1296/122 +f 775/1298/105 776/1997/105 781/1299/105 +f 775/1298/135 778/1300/135 779/1301/135 +f 781/1299/136 776/1997/136 777/1295/136 +f 770/1303/121 774/1302/121 779/1301/121 +f 789/1305/122 783/1998/122 785/1306/122 +f 787/1308/105 788/1999/105 793/1309/105 +f 787/1308/135 790/1310/135 791/1311/135 +f 793/1309/136 788/1999/136 789/1305/136 +f 782/1313/121 786/1312/121 791/1311/121 +f 801/1315/122 795/2000/122 797/1316/122 +f 799/1318/105 800/2001/105 805/1319/105 +f 799/1318/135 802/1320/135 803/1321/135 +f 805/1319/136 800/2001/136 801/1315/136 +f 794/1323/121 798/1322/121 803/1321/121 +f 813/1325/122 807/2002/122 809/1326/122 +f 811/1328/105 812/2003/105 817/1329/105 +f 811/1328/135 814/1330/135 815/1331/135 +f 817/1329/136 812/2003/136 813/1325/136 +f 806/1333/121 810/1332/121 815/1331/121 +f 820/1335/140 821/1339/140 819/1336/121 +f 822/1338/141 823/1341/141 821/1339/140 +f 824/1340/142 825/1343/142 823/1341/141 +f 826/1342/143 827/1345/143 825/1343/142 +f 828/1344/122 829/1367/122 827/1345/143 +f 840/1346/131 838/2004/131 830/1347/131 +f 819/1354/133 821/2005/133 823/1349/133 +f 823/1349/133 825/2006/133 827/1350/133 +f 827/1350/133 829/1365/133 831/1351/133 +f 831/1351/133 833/1352/133 819/1354/133 +f 819/1354/133 823/1349/133 831/1351/133 +f 833/1352/133 841/2007/133 835/1353/133 +f 830/1347/131 838/2004/131 837/1355/131 +f 820/2008/131 818/1370/131 832/1348/131 +f 832/1348/131 830/1347/131 828/1356/131 +f 828/1356/131 826/2009/131 824/1357/131 +f 824/1357/131 822/2010/131 820/2008/131 +f 820/2008/131 832/1348/131 824/1357/131 +f 842/1358/144 852/1384/144 857/1359/145 +f 857/1363/133 852/2011/133 850/2012/133 +f 850/2012/133 851/2013/133 857/1363/133 +f 851/2013/133 853/1361/133 857/1363/133 +f 853/1361/133 854/2014/133 855/1362/133 +f 855/1362/133 856/2015/133 857/1363/133 +f 836/1364/133 839/1371/133 831/1351/133 +f 837/1366/122 836/2016/122 829/1367/122 +f 835/1368/121 834/2017/121 818/1337/121 +f 834/1369/131 840/1346/131 832/1348/131 +f 839/1371/133 841/2007/133 833/1352/133 +f 848/1372/146 856/1382/146 855/1373/147 +f 846/1375/143 854/1383/143 853/1376/142 +f 844/1378/141 851/1385/141 850/1379/140 +f 849/1381/145 857/2018/145 856/1382/146 +f 847/1374/147 855/1373/147 854/1383/143 +f 843/1380/140 850/1379/140 852/1384/144 +f 845/1377/142 853/1376/142 851/1385/141 +f 859/1386/148 665/1470/148 673/1387/148 +f 863/1389/121 879/1418/121 1140/1390/121 +f 664/1157/122 872/1472/122 873/1392/122 +f 871/1393/148 870/2019/148 863/1394/148 +f 869/1396/148 868/2020/148 861/1397/148 +f 862/1399/122 880/1466/122 881/1400/122 +f 867/1402/148 865/2021/148 858/1403/148 +f 864/1395/133 863/1394/133 1132/1405/133 +f 869/1407/105 881/1426/105 878/1408/105 +f 862/1398/133 861/1397/133 1134/1410/133 +f 860/1404/133 858/1403/133 1136/1412/133 +f 859/1414/121 875/1445/121 1138/1415/121 +f 863/1389/121 870/2022/121 878/1417/121 +f 872/1419/148 887/1462/148 886/1420/148 +f 876/1422/148 877/2023/148 874/1423/148 +f 879/1425/148 878/1408/148 881/1426/148 +f 882/1428/148 885/2024/148 884/1429/148 +f 875/1424/133 874/1423/133 1139/1431/133 +f 879/1425/133 880/1427/133 1141/1433/133 +f 883/1430/133 884/1429/133 1143/1435/133 +f 861/1437/121 868/2025/121 882/1438/121 +f 861/1437/121 883/1439/121 1142/1440/121 +f 867/1442/105 885/2024/105 882/1428/105 +f 859/1414/121 866/2026/121 876/1444/121 +f 860/1446/122 884/1464/122 885/1447/122 +f 871/1449/105 877/2023/105 876/1422/105 +f 864/1451/122 874/1468/122 877/1452/122 +f 858/1454/121 887/1458/121 1144/1455/121 +f 858/1454/121 865/2027/121 886/1457/121 +f 672/1459/105 873/1421/105 886/1420/105 +f 1137/1461/133 1144/2028/133 887/1462/133 +f 1135/1463/122 1143/2029/122 884/1464/122 +f 1133/1465/122 1141/2030/122 880/1466/122 +f 1131/1467/122 1139/2031/122 874/1468/122 +f 1130/1469/133 1129/2032/133 665/1470/133 +f 1128/1471/122 1137/2033/122 872/1472/122 +f 665/1473/121 1129/2034/121 1127/1152/121 +f 671/1148/120 1125/1149/120 1126/1156/123 +f 1120/1140/116 898/2035/116 899/1474/115 +f 1121/1141/115 899/1474/115 900/1475/117 +f 1122/1143/117 900/1475/117 901/1476/118 +f 1123/1145/118 901/1476/118 902/1477/119 +f 1124/1147/119 902/1477/119 903/1478/120 +f 905/1479/121 898/2036/121 1120/1150/121 +f 895/1480/122 913/2037/122 906/1481/122 +f 1126/1156/123 904/1716/124 896/1483/122 +f 904/2038/149 894/1486/149 1097/1485/149 +f 894/1486/149 895/1500/149 1101/2039/149 +f 1099/1484/149 894/1486/149 1100/2040/149 +f 895/1500/149 905/1499/149 1098/2041/149 +f 1098/2041/149 1103/2042/149 895/1500/149 +f 1103/2042/149 1102/2043/149 895/1500/149 +f 1101/2039/149 1100/2040/149 894/1486/149 +f 1102/2043/149 1101/2039/149 895/1500/149 +f 888/1487/149 893/1491/149 899/1488/149 +f 892/1490/149 900/1493/149 899/1488/149 +f 891/1492/149 901/1495/149 900/1493/149 +f 891/1492/149 890/1497/149 902/1494/149 +f 889/1496/149 903/1498/149 902/1494/149 +f 894/1486/149 904/2038/149 903/1498/149 +f 888/1487/149 898/1489/149 905/1499/149 +f 906/2044/149 913/1503/149 907/1502/149 +f 913/1503/149 912/2045/149 910/2046/149 +f 912/2045/149 911/2047/149 910/2046/149 +f 910/2046/149 909/2048/149 913/1503/149 +f 909/2048/149 908/1501/149 913/1503/149 +f 889/1504/126 911/1516/126 912/1505/125 +f 891/1507/128 909/1517/128 910/1508/127 +f 893/1510/130 907/1519/130 908/1511/129 +f 894/1513/131 912/2049/131 913/1514/131 +f 890/1509/127 910/1508/127 911/1516/126 +f 892/1512/129 908/1511/129 909/1517/128 +f 888/1518/132 906/2050/132 907/1519/130 +f 920/1520/131 915/2051/131 914/1521/131 +f 917/1523/122 915/2052/122 920/1524/122 +f 924/1526/149 921/1535/149 918/1527/149 +f 917/1529/133 925/1532/133 923/1530/133 +f 922/1528/150 923/1530/150 925/1532/150 +f 923/1533/151 922/1528/151 918/1527/151 +f 920/1524/152 921/1535/152 924/1526/152 +f 919/1522/153 918/1527/153 921/1535/153 +f 923/1533/121 919/1534/121 914/1536/121 +f 937/1538/131 934/1545/131 926/1539/131 +f 935/1541/133 929/2053/133 933/1542/133 +f 933/1542/154 931/1544/154 937/1538/155 +f 931/1544/131 927/2054/131 934/1545/131 +f 932/1546/121 930/1540/121 926/1547/121 +f 929/1549/122 927/2055/122 931/1544/122 +f 936/1543/155 937/1538/155 930/1540/149 +f 935/1541/133 936/1543/133 932/1546/133 +f 949/1551/131 946/1558/131 938/1552/131 +f 947/1554/133 941/2056/133 945/1555/133 +f 945/1555/154 943/1557/154 949/1551/155 +f 943/1557/131 939/2057/131 946/1558/131 +f 944/1559/121 942/1553/121 938/1560/121 +f 941/1562/122 939/2058/122 943/1557/122 +f 948/1556/155 949/1551/155 942/1553/149 +f 947/1554/133 948/1556/133 944/1559/133 +f 953/1564/133 958/1576/133 959/1565/133 +f 954/1567/133 964/1582/133 965/1568/133 +f 961/1570/131 951/2059/131 950/1571/131 +f 959/1565/121 960/1572/121 950/1573/121 +f 953/1575/122 951/2060/122 961/1570/122 +f 956/1577/149 959/1565/149 958/1576/149 +f 956/1577/149 954/1580/149 960/1572/149 +f 955/1579/149 957/1578/149 958/1576/149 +f 955/1579/149 961/1570/149 960/1572/149 +f 962/1581/149 965/1568/149 964/1582/149 +f 956/1584/122 963/1583/122 964/1582/122 +f 955/1586/121 965/1568/121 962/1581/121 +f 957/1588/131 962/1581/131 963/1583/131 +f 969/1590/122 967/2061/122 973/1591/122 +f 977/1593/149 972/2062/149 971/1594/149 +f 975/1596/151 974/1595/151 971/1594/151 +f 973/1591/152 972/2062/152 977/1593/152 +f 975/1596/121 970/1597/121 966/1598/121 +f 981/1600/122 979/2063/122 985/1601/122 +f 989/1603/149 984/2064/149 983/1604/149 +f 987/1606/151 986/1605/151 983/1604/151 +f 985/1601/152 984/2064/152 989/1603/152 +f 987/1606/121 982/1607/121 978/1608/121 +f 993/1610/122 991/2065/122 997/1611/122 +f 1001/1613/149 996/2066/149 995/1614/149 +f 999/1616/151 998/1615/151 995/1614/151 +f 997/1611/152 996/2066/152 1001/1613/152 +f 999/1616/121 994/1617/121 990/1618/121 +f 1005/1620/122 1003/2067/122 1009/1621/122 +f 1013/1623/149 1008/2068/149 1007/1624/149 +f 1011/1626/151 1010/1625/151 1007/1624/151 +f 1009/1621/152 1008/2068/152 1013/1623/152 +f 1011/1626/121 1006/1627/121 1002/1628/121 +f 1017/1630/122 1015/2069/122 1021/1631/122 +f 1025/1633/149 1020/2070/149 1019/1634/149 +f 1023/1636/151 1022/1635/151 1019/1634/151 +f 1021/1631/152 1020/2070/152 1025/1633/152 +f 1023/1636/121 1018/1637/121 1014/1638/121 +f 1029/1640/122 1027/2071/122 1033/1641/122 +f 1037/1643/149 1032/2072/149 1031/1644/149 +f 1035/1646/151 1034/1645/151 1031/1644/151 +f 1033/1641/152 1032/2072/152 1037/1643/152 +f 1035/1646/121 1030/1647/121 1026/1648/121 +f 1041/1650/122 1039/2073/122 1045/1651/122 +f 1049/1653/149 1044/2074/149 1043/1654/149 +f 1047/1656/151 1046/1655/151 1043/1654/151 +f 1045/1651/152 1044/2074/152 1049/1653/152 +f 1047/1656/121 1042/1657/121 1038/1658/121 +f 1051/1660/121 1053/1663/144 1052/1661/144 +f 1053/1663/144 1055/1665/145 1054/1664/145 +f 1055/1665/145 1057/1667/146 1056/1666/146 +f 1057/1667/146 1059/1669/147 1058/1668/147 +f 1059/1669/147 1061/1692/122 1060/1670/122 +f 1062/1671/131 1070/1681/131 1072/1672/131 +f 1055/1675/133 1053/2075/133 1051/2076/133 +f 1051/2076/133 1065/1677/133 1055/1675/133 +f 1065/1677/133 1063/1676/133 1055/1675/133 +f 1063/1676/133 1061/1691/133 1059/2077/133 +f 1059/2077/133 1057/1674/133 1063/1676/133 +f 1065/1677/133 1051/2076/133 1067/1678/133 +f 1062/1671/131 1060/1683/131 1069/1680/131 +f 1064/1673/131 1050/1696/131 1052/2078/131 +f 1052/2078/131 1054/2079/131 1064/1673/131 +f 1054/2079/131 1056/1682/131 1064/1673/131 +f 1056/1682/131 1058/2080/131 1060/1683/131 +f 1060/1683/131 1062/1671/131 1064/1673/131 +f 1081/1684/141 1089/2081/141 1084/1685/140 +f 1082/2082/133 1084/2083/133 1089/1687/133 +f 1089/1687/133 1088/2084/133 1087/1688/133 +f 1087/1688/133 1086/2085/133 1085/1689/133 +f 1085/1689/133 1083/2086/133 1082/2082/133 +f 1082/2082/133 1089/1687/133 1085/1689/133 +f 1063/1676/133 1071/1697/133 1068/1690/133 +f 1061/1692/122 1068/2087/122 1069/1693/122 +f 1050/1662/121 1066/2088/121 1067/1694/121 +f 1064/1673/131 1072/1672/131 1066/1695/131 +f 1065/1677/133 1073/1679/133 1071/1697/133 +f 1087/1698/143 1088/1707/142 1080/1699/142 +f 1085/1701/146 1086/1709/147 1078/1702/147 +f 1082/1704/144 1083/1710/145 1076/1705/145 +f 1088/1707/142 1089/2089/141 1081/1708/141 +f 1086/1709/147 1087/1698/143 1079/1700/143 +f 1084/1685/140 1082/1704/144 1075/1706/144 +f 1083/1710/145 1085/1701/146 1077/1703/146 +f 905/1711/156 897/1770/156 1091/1712/156 +f 1140/1390/121 1111/2090/121 1095/1714/121 +f 1105/1715/122 1104/1771/122 896/1483/122 +f 1095/1717/156 1102/2091/156 1103/1718/156 +f 1093/1720/156 1100/2092/156 1101/1721/156 +f 1113/1723/122 1112/1768/122 1094/1724/122 +f 1090/1726/156 1097/2093/156 1099/1727/156 +f 1132/1405/133 1095/1717/133 1096/1719/133 +f 1110/1729/149 1113/1742/149 1101/1730/149 +f 1134/1410/133 1093/1720/133 1094/1722/133 +f 1136/1412/133 1090/1726/133 1092/1728/133 +f 1138/1415/121 1107/2094/121 1091/1732/121 +f 1095/1714/121 1111/2090/121 1110/1733/121 +f 1118/1735/156 1119/1766/156 1104/1736/156 +f 1106/1738/156 1109/2095/156 1108/1739/156 +f 1111/1741/156 1112/2096/156 1113/1742/156 +f 1116/1743/156 1117/2097/156 1114/1744/156 +f 1139/1431/133 1106/1738/133 1107/1740/133 +f 1141/1433/133 1112/2096/133 1111/1741/133 +f 1143/1435/133 1116/1743/133 1115/1745/133 +f 1093/1746/121 1115/2098/121 1114/1747/121 +f 1142/1440/121 1115/2098/121 1093/1746/121 +f 1114/1744/149 1117/2097/149 1099/1749/149 +f 1091/1732/121 1107/2094/121 1108/1751/121 +f 1117/1753/122 1116/1767/122 1092/1754/122 +f 1108/1739/149 1109/2095/149 1103/1756/149 +f 1109/1758/122 1106/1769/122 1096/1759/122 +f 1144/1455/121 1119/2099/121 1090/1761/121 +f 1090/1761/121 1119/2099/121 1118/1762/121 +f 1118/1735/149 1105/1737/149 904/1764/149 +f 1119/1766/133 1144/2028/133 1137/1461/133 +f 1116/1767/122 1143/2029/122 1135/1463/122 +f 1112/1768/122 1141/2030/122 1133/1465/122 +f 1106/1769/122 1139/2031/122 1131/1467/122 +f 897/1770/133 1129/2032/133 1130/1469/133 +f 1104/1771/122 1137/2033/122 1128/1471/122 +f 1127/1152/121 1129/2034/121 897/1772/121 +f 1126/1156/123 1125/1149/120 903/1478/120 +f 1146/1773/157 1148/1776/134 1147/1774/134 +f 1148/1776/134 1150/1778/105 1149/1777/105 +f 1150/1778/105 1152/1780/137 1151/1779/137 +f 1152/1780/137 1154/2100/158 1153/1781/158 +f 1153/1784/122 1145/2101/122 1147/1782/122 +f 1147/1782/122 1149/2102/122 1151/1783/122 +f 1150/2103/121 1148/2104/121 1152/1787/121 +f 1148/2104/121 1146/1785/121 1152/1787/121 +f 1157/1788/122 1158/1794/136 1155/1789/136 +f 1155/1791/133 1165/1804/133 1173/1792/133 +f 1158/1794/136 1159/1796/105 1165/1795/105 +f 1159/1796/105 1160/1801/135 1166/1797/135 +f 1168/1798/133 1169/1840/133 1182/1799/133 +f 1160/1801/135 1161/1805/121 1167/1802/121 +f 1166/1803/133 1176/1839/133 1173/1792/133 +f 1161/1805/121 1162/1809/151 1168/1806/151 +f 1156/1807/133 1155/1791/133 1172/1793/133 +f 1162/1809/151 1163/2105/149 1169/1810/149 +f 1163/1811/149 1164/1814/152 1170/1812/152 +f 1164/1814/152 1157/1788/122 1156/1790/122 +f 1171/1815/122 1172/1818/136 1175/1816/136 +f 1172/1818/136 1173/1820/105 1177/1819/105 +f 1173/1820/105 1176/1822/135 1179/1821/135 +f 1176/1822/135 1178/1824/121 1181/1823/121 +f 1178/1824/121 1180/1826/151 1183/1825/151 +f 1180/1826/151 1182/2106/149 1185/1827/149 +f 1184/1828/152 1171/1815/122 1174/1817/122 +f 1182/1830/149 1184/1828/152 1186/1829/152 +f 1167/1832/133 1168/1798/133 1180/1800/133 +f 1156/1807/133 1171/1808/133 1184/1834/133 +f 1186/1837/131 1174/2107/131 1179/1838/131 +f 1174/2107/131 1175/2108/131 1179/1838/131 +f 1175/2108/131 1177/2109/131 1179/1838/131 +f 1179/1838/131 1181/2110/131 1183/2111/131 +f 1183/2111/131 1185/1836/131 1179/1838/131 +f 1167/1832/133 1178/1833/133 1176/1839/133 +f 1170/1835/133 1184/1834/133 1182/1799/133 +f 1234/1843/133 1227/2112/133 1232/1841/133 +f 1227/2112/133 1228/2113/133 1232/1841/133 +f 1228/2113/133 1229/2114/133 1232/1841/133 +f 1229/2114/133 1230/2115/133 1232/1841/133 +f 1230/2115/133 1231/2116/133 1232/1841/133 +f 1235/1844/159 1236/1858/160 1234/1845/160 +f 1238/1847/161 1239/1869/161 1240/1848/161 +f 1235/1850/131 1239/2117/131 1238/1851/131 +f 1246/1854/131 1242/2118/131 1241/1852/131 +f 1242/2118/131 1243/2119/131 1241/1852/131 +f 1243/2119/131 1236/2120/131 1241/1852/131 +f 1236/2120/131 1235/1850/131 1241/1852/131 +f 1241/1852/131 1244/2121/185 1245/1853/131 +f 1242/1855/162 1246/1867/162 1229/1856/162 +f 1236/1858/160 1243/1865/163 1227/1859/163 +f 1245/1860/164 1244/1868/164 1231/1861/164 +f 1241/1863/165 1238/1847/165 1237/1849/165 +f 1243/1865/166 1242/2122/206 1228/1866/166 +f 1246/1867/167 1245/1860/167 1230/1862/167 +f 1244/1868/168 1241/1863/168 1232/1864/168 +f 1233/1846/159 1240/1848/169 1239/1869/169 +f 1233/1842/133 1232/1841/133 1237/1870/133 +f 1254/1874/133 1247/2123/133 1252/1872/133 +f 1247/2123/133 1248/2124/133 1252/1872/133 +f 1248/2124/133 1249/2125/133 1252/1872/133 +f 1249/2125/133 1250/2126/133 1252/1872/133 +f 1250/2126/133 1251/2127/133 1252/1872/133 +f 1255/1875/170 1256/1889/171 1254/1876/171 +f 1258/1878/172 1259/1900/172 1260/1879/172 +f 1255/1881/131 1259/2128/131 1258/1882/131 +f 1266/1885/131 1262/2129/131 1261/1883/131 +f 1262/2129/131 1263/2130/131 1261/1883/131 +f 1263/2130/131 1256/2131/131 1261/1883/131 +f 1256/2131/131 1255/1881/131 1261/1883/131 +f 1261/1883/131 1264/2132/131 1265/1884/131 +f 1262/1886/173 1266/1898/173 1249/1887/173 +f 1256/1889/171 1263/1896/174 1247/1890/174 +f 1265/1891/175 1264/1899/175 1251/1892/175 +f 1261/1894/176 1258/1878/176 1257/1880/176 +f 1263/1896/177 1262/2133/177 1248/1897/177 +f 1266/1898/178 1265/1891/178 1250/1893/178 +f 1264/1899/179 1261/1894/179 1252/1895/179 +f 1255/1875/170 1253/1877/170 1260/1879/180 +f 1253/1873/133 1252/1872/133 1257/1901/133 +f 1274/1905/133 1267/2134/133 1272/1903/133 +f 1267/2134/133 1268/2135/133 1272/1903/133 +f 1268/2135/133 1269/2136/133 1272/1903/133 +f 1269/2136/133 1270/2137/133 1272/1903/133 +f 1270/2137/133 1271/2138/133 1272/1903/133 +f 1275/1906/182 1276/1920/183 1274/1907/183 +f 1278/1909/184 1279/1931/184 1280/1910/184 +f 1275/1912/185 1279/2139/131 1278/1913/131 +f 1286/1916/131 1282/2140/131 1281/1914/131 +f 1282/2140/131 1283/2141/131 1281/1914/131 +f 1283/2141/131 1276/2142/131 1281/1914/131 +f 1276/2142/131 1275/1912/185 1281/1914/131 +f 1281/1914/131 1284/2143/207 1285/1915/131 +f 1282/1917/186 1286/1929/186 1269/1918/186 +f 1276/1920/183 1283/2144/187 1267/1921/187 +f 1285/1922/188 1284/1930/188 1271/1923/188 +f 1281/1925/189 1278/1909/189 1277/1911/189 +f 1267/1921/190 1283/2144/190 1282/1927/190 +f 1286/1929/191 1285/1922/191 1270/1924/191 +f 1284/1930/192 1281/1925/192 1272/1926/193 +f 1273/1908/182 1280/1910/194 1279/1931/194 +f 1273/1904/181 1272/1903/133 1277/1932/133 +f 1294/1936/133 1287/2145/133 1292/1934/133 +f 1287/2145/133 1288/2146/133 1292/1934/133 +f 1288/2146/133 1289/2147/133 1292/1934/133 +f 1289/2147/133 1290/2148/133 1292/1934/133 +f 1290/2148/133 1291/2149/133 1292/1934/133 +f 1295/1937/195 1296/1951/196 1294/1938/196 +f 1298/1940/197 1299/1961/197 1300/1941/197 +f 1295/1943/131 1299/2150/131 1298/1944/131 +f 1306/1947/131 1302/2151/131 1301/1945/131 +f 1302/2151/131 1303/2152/131 1301/1945/131 +f 1303/2152/131 1296/2153/131 1301/1945/131 +f 1296/2153/131 1295/1943/131 1301/1945/131 +f 1301/1945/131 1304/2154/131 1305/1946/131 +f 1302/1948/198 1306/1960/198 1289/1949/198 +f 1296/1951/196 1303/1958/199 1287/1952/199 +f 1290/1953/200 1305/2155/200 1304/1954/200 +f 1301/1956/201 1298/1940/201 1297/1942/201 +f 1303/1958/202 1302/2156/202 1288/1959/202 +f 1306/1960/203 1305/2155/203 1290/1953/203 +f 1304/1954/204 1301/1956/204 1292/1957/204 +f 1293/1939/195 1300/1941/205 1299/1961/205 +f 1293/1935/133 1292/1934/133 1297/1962/133 +o frame +v 0.500000 0.000000 -3.500000 +v 0.500000 0.000000 3.500000 +v 0.500000 6.000000 3.500000 +v 0.500000 5.999982 -3.499982 +v 0.299220 0.054715 -3.299312 +v 0.299220 0.054715 3.299312 +v 0.299220 2.500000 -3.299312 +v 0.299220 3.519543 -3.137832 +v 0.299220 4.439287 -2.669199 +v 0.299220 5.169199 -1.939287 +v 0.299220 5.637832 -1.019543 +v 0.299220 5.799312 0.000000 +v 0.299220 5.637832 1.019543 +v 0.299220 5.169199 1.939287 +v 0.299220 4.439287 2.669199 +v 0.299220 3.519543 3.137832 +v 0.299220 2.500000 3.299312 +v 0.299220 0.054715 -3.440433 +v 0.299220 0.054715 3.440433 +v 0.299220 2.511072 -3.439998 +v 0.299220 3.563152 -3.439998 +v 0.299220 4.522236 -3.439998 +v 0.299220 5.283369 -3.439998 +v 0.299220 5.772047 -3.439998 +v 0.299220 5.940434 0.000000 +v 0.299220 5.772047 3.439998 +v 0.299220 5.283369 3.439998 +v 0.299220 4.522236 3.439998 +v 0.299220 3.563152 3.439998 +v 0.299220 2.511072 3.439998 +v 0.500000 0.000000 3.299312 +v 0.500000 0.000000 -3.299311 +v 0.509942 2.575847 3.433846 +v 0.500000 2.500000 3.299312 +v 0.500000 5.799312 0.000000 +v 0.500000 5.999991 0.000009 +v 0.500000 3.519543 3.137832 +v 0.509942 3.693161 3.215357 +v 0.500000 4.439287 2.669199 +v 0.509942 4.591897 2.756523 +v 0.500000 5.169199 1.939287 +v 0.509942 5.306234 2.042186 +v 0.500000 5.637832 1.019543 +v 0.509942 5.777302 1.066608 +v 0.500000 2.500000 -3.299312 +v 0.509942 2.562243 -3.433324 +v 0.509942 5.779282 -1.054175 +v 0.500000 5.637832 -1.019543 +v 0.500000 5.169199 -1.939287 +v 0.509942 5.306233 -2.042186 +v 0.500000 4.439287 -2.669199 +v 0.509942 4.591897 -2.756523 +v 0.500000 3.519543 -3.137832 +v 0.509942 3.637241 -3.226135 +v 0.500000 2.575847 3.500000 +v 0.500000 0.000000 3.433846 +v 0.500000 0.000000 -3.399656 +v -0.500000 0.000000 -3.500000 +v -0.500000 0.000000 3.500000 +v -0.500000 6.000000 3.500000 +v -0.500000 5.999982 -3.499982 +v -0.299220 0.054715 -3.299312 +v -0.299220 0.054715 3.299312 +v -0.299220 2.500000 -3.299312 +v -0.299220 3.519543 -3.137832 +v -0.299220 4.439287 -2.669199 +v -0.299220 5.169199 -1.939287 +v -0.299220 5.637832 -1.019543 +v -0.299220 5.799312 0.000000 +v -0.299220 5.637832 1.019543 +v -0.299220 5.169199 1.939287 +v -0.299220 4.439287 2.669199 +v -0.299220 3.519543 3.137832 +v -0.299220 2.500000 3.299312 +v -0.299220 0.054715 -3.440433 +v -0.299220 0.054715 3.440433 +v -0.299220 2.511072 -3.439998 +v -0.299220 3.563152 -3.439998 +v -0.299220 4.522236 -3.439998 +v -0.299220 5.283369 -3.439998 +v -0.299220 5.772047 -3.439998 +v -0.299220 5.940434 0.000000 +v -0.299220 5.772047 3.439998 +v -0.299220 5.283369 3.439998 +v -0.299220 4.522236 3.439998 +v -0.299220 3.563152 3.439998 +v -0.299220 2.511072 3.439998 +v -0.500000 0.000000 3.299312 +v -0.500000 0.000000 -3.299311 +v -0.509942 2.575847 3.433846 +v -0.500000 2.500000 3.299312 +v -0.500000 5.799312 0.000000 +v -0.500000 5.999991 0.000009 +v -0.500000 3.519543 3.137832 +v -0.509942 3.693161 3.215357 +v -0.500000 4.439287 2.669199 +v -0.509942 4.591897 2.756523 +v -0.500000 5.169199 1.939287 +v -0.509942 5.306234 2.042186 +v -0.500000 5.637832 1.019543 +v -0.509942 5.777302 1.066608 +v -0.500000 2.500000 -3.299312 +v -0.509942 2.562243 -3.433324 +v -0.509942 5.779282 -1.054175 +v -0.500000 5.637832 -1.019543 +v -0.500000 5.169199 -1.939287 +v -0.509942 5.306233 -2.042186 +v -0.500000 4.439287 -2.669199 +v -0.509942 4.591897 -2.756523 +v -0.500000 3.519543 -3.137832 +v -0.509942 3.637241 -3.226135 +v -0.500000 2.575847 3.500000 +v -0.500000 0.000000 3.433846 +v -0.500000 0.000000 -3.399656 +v 0.000000 0.000000 -3.500000 +v 0.000000 0.000000 3.500000 +v 0.000000 6.000000 3.500000 +v 0.000000 5.999982 -3.499982 +v 0.000000 0.054715 -3.299312 +v 0.000000 0.054715 3.299312 +v 0.000000 0.054715 -3.440433 +v 0.000000 0.054715 3.440433 +v 0.000000 2.511072 -3.439998 +v 0.000000 3.563152 -3.439998 +v 0.000000 4.522236 -3.439998 +v 0.000000 5.283369 -3.439998 +v 0.000000 5.772047 -3.439998 +v 0.000000 5.940434 0.000000 +v 0.000000 5.772047 3.439998 +v 0.000000 5.283369 3.439998 +v 0.000000 4.522236 3.439998 +v 0.000000 3.563152 3.439998 +v 0.000000 2.511072 3.439998 +vt 0.241702 0.739929 +vt 0.006709 0.759512 +vt 0.006709 0.739929 +vt 0.685390 0.273007 +vt 0.685390 0.278276 +vt 0.665807 0.280867 +vt 0.855026 0.768807 +vt 0.862890 0.728378 +vt 0.862890 0.768807 +vt 0.490115 0.143946 +vt 0.481472 0.102659 +vt 0.490145 0.006876 +vt 0.855026 0.728378 +vt 0.862890 0.632606 +vt 0.876307 0.622065 +vt 0.884171 0.717836 +vt 0.876307 0.717836 +vt 0.855026 0.930522 +vt 0.862890 0.890094 +vt 0.862890 0.930522 +vt 0.855026 0.849665 +vt 0.862890 0.809236 +vt 0.862890 0.849665 +vt 0.855026 0.890094 +vt 0.876307 0.758265 +vt 0.855026 0.809236 +vt 0.884171 0.798694 +vt 0.876307 0.839123 +vt 0.876307 0.798694 +vt 0.884171 0.758265 +vt 0.884171 0.839123 +vt 0.876307 0.879552 +vt 0.397594 0.017557 +vt 0.355501 0.009420 +vt 0.434984 0.035969 +vt 0.462955 0.063960 +vt 0.481394 0.185718 +vt 0.490145 0.281015 +vt 0.884171 0.879552 +vt 0.876307 0.919981 +vt 0.462955 0.223931 +vt 0.434983 0.251922 +vt 0.399781 0.269910 +vt 0.356032 0.278491 +vt 0.036915 0.353397 +vt 0.013305 0.294621 +vt 0.032444 0.294621 +vt 0.141455 0.558572 +vt 0.237228 0.564100 +vt 0.141022 0.564083 +vt 0.065501 0.533893 +vt 0.032442 0.564081 +vt 0.036914 0.505305 +vt 0.101525 0.306456 +vt 0.141023 0.294622 +vt 0.141456 0.300132 +vt 0.018561 0.389419 +vt 0.006709 0.429350 +vt 0.101524 0.552247 +vt 0.062252 0.564082 +vt 0.788343 0.516011 +vt 0.776624 0.557217 +vt 0.776624 0.516011 +vt 0.788343 0.478448 +vt 0.776624 0.478448 +vt 0.788343 0.448638 +vt 0.776624 0.448638 +vt 0.788343 0.429498 +vt 0.776624 0.429498 +vt 0.788343 0.294606 +vt 0.776624 0.294606 +vt 0.801760 0.429498 +vt 0.813480 0.294606 +vt 0.813480 0.429498 +vt 0.801760 0.448638 +vt 0.813480 0.448638 +vt 0.801760 0.478448 +vt 0.813480 0.478448 +vt 0.801760 0.516011 +vt 0.813480 0.516011 +vt 0.801760 0.557217 +vt 0.813480 0.557217 +vt 0.801760 0.653422 +vt 0.813480 0.653422 +vt 0.013302 0.564081 +vt 0.018560 0.469282 +vt 0.065503 0.324810 +vt 0.062254 0.294621 +vt 0.237228 0.294606 +vt 0.237228 0.300133 +vt 0.099816 0.564082 +vt 0.012236 0.429350 +vt 0.099818 0.294622 +vt 0.730396 0.270674 +vt 0.718677 0.276201 +vt 0.718677 0.270674 +vt 0.392975 0.266861 +vt 0.353056 0.273212 +vt 0.428998 0.248493 +vt 0.457578 0.219896 +vt 0.482256 0.143945 +vt 0.475920 0.183871 +vt 0.475919 0.104020 +vt 0.457578 0.067995 +vt 0.428998 0.039397 +vt 0.392978 0.021029 +vt 0.353057 0.014680 +vt 0.255157 0.010638 +vt 0.738547 0.270674 +vt 0.730396 0.012236 +vt 0.738547 0.012236 +vt 0.255142 0.278598 +vt 0.255136 0.273329 +vt 0.356034 0.281112 +vt 0.255161 0.006709 +vt 0.788343 0.653422 +vt 0.788343 0.557217 +vt 0.718677 0.012236 +vt 0.730396 0.006709 +vt 0.510060 0.788490 +vt 0.510060 0.768907 +vt 0.647140 0.768907 +vt 0.751964 0.140819 +vt 0.771547 0.006709 +vt 0.771547 0.241704 +vt 0.006709 0.720346 +vt 0.646224 0.278276 +vt 0.646224 0.273007 +vt 0.955361 0.496751 +vt 0.947497 0.456323 +vt 0.955361 0.456323 +vt 0.241689 0.143952 +vt 0.241719 0.281021 +vt 0.233046 0.185239 +vt 0.947497 0.496751 +vt 0.955361 0.592522 +vt 0.947497 0.594665 +vt 0.955361 0.610225 +vt 0.947497 0.705997 +vt 0.947497 0.608082 +vt 0.955361 0.335035 +vt 0.947497 0.294606 +vt 0.955361 0.294606 +vt 0.955361 0.415894 +vt 0.947497 0.375465 +vt 0.955361 0.375465 +vt 0.947497 0.335035 +vt 0.955361 0.746426 +vt 0.955361 0.705997 +vt 0.947497 0.415894 +vt 0.955361 0.827284 +vt 0.947497 0.786855 +vt 0.955361 0.786855 +vt 0.947497 0.746426 +vt 0.955361 0.867713 +vt 0.947497 0.827284 +vt 0.149169 0.270340 +vt 0.107075 0.278477 +vt 0.186559 0.251928 +vt 0.214530 0.223938 +vt 0.232968 0.102180 +vt 0.241719 0.006883 +vt 0.955361 0.908141 +vt 0.947497 0.867713 +vt 0.214529 0.063967 +vt 0.186557 0.035976 +vt 0.151355 0.017988 +vt 0.107605 0.009406 +vt 0.280851 0.505307 +vt 0.257240 0.564083 +vt 0.262497 0.469284 +vt 0.385392 0.300133 +vt 0.481164 0.294606 +vt 0.481164 0.300133 +vt 0.276379 0.294623 +vt 0.309438 0.324812 +vt 0.280851 0.353400 +vt 0.384959 0.564083 +vt 0.345461 0.552249 +vt 0.385392 0.558573 +vt 0.250645 0.429353 +vt 0.256172 0.429353 +vt 0.306190 0.294623 +vt 0.345461 0.306458 +vt 0.764905 0.516011 +vt 0.764905 0.478448 +vt 0.764905 0.448638 +vt 0.764905 0.429498 +vt 0.764905 0.294606 +vt 0.825199 0.429498 +vt 0.825199 0.448638 +vt 0.825199 0.478448 +vt 0.825199 0.516011 +vt 0.825199 0.557217 +vt 0.825199 0.653422 +vt 0.257240 0.294623 +vt 0.262496 0.389422 +vt 0.309438 0.533894 +vt 0.276379 0.564083 +vt 0.481164 0.564100 +vt 0.481164 0.558573 +vt 0.384958 0.294623 +vt 0.306190 0.564083 +vt 0.706958 0.270674 +vt 0.144548 0.021036 +vt 0.104629 0.014686 +vt 0.180571 0.039405 +vt 0.209152 0.068002 +vt 0.227494 0.104027 +vt 0.233830 0.143953 +vt 0.227494 0.183878 +vt 0.209152 0.219903 +vt 0.180573 0.248500 +vt 0.144552 0.266868 +vt 0.104632 0.273218 +vt 0.006731 0.277259 +vt 0.706958 0.012236 +vt 0.698807 0.270674 +vt 0.698807 0.012236 +vt 0.006715 0.009300 +vt 0.107607 0.006786 +vt 0.006735 0.281189 +vt 0.764905 0.653422 +vt 0.764905 0.557217 +vt 0.706958 0.006709 +vt 0.647140 0.808073 +vt 0.784220 0.788490 +vt 0.791130 0.006709 +vt 0.791130 0.140818 +vt 0.241702 0.759512 +vt 0.665807 0.006709 +vt 0.685390 0.014569 +vt 0.685390 0.006709 +vt 0.685390 0.010639 +vt 0.685390 0.280867 +vt 0.855026 0.630463 +vt 0.884171 0.619922 +vt 0.884171 0.919981 +vt 0.237228 0.558573 +vt 0.801760 0.294606 +vt 0.730396 0.276201 +vt 0.255152 0.014568 +vt 0.255144 0.281189 +vt 0.776624 0.653422 +vt 0.718677 0.006709 +vt 0.784220 0.768907 +vt 0.751964 0.241704 +vt 0.751964 0.006709 +vt 0.241702 0.720346 +vt 0.646224 0.006709 +vt 0.646224 0.010639 +vt 0.646224 0.014569 +vt 0.646224 0.280867 +vt 0.947497 0.908141 +vt 0.343753 0.564083 +vt 0.343753 0.294623 +vt 0.825199 0.294606 +vt 0.706958 0.276201 +vt 0.006727 0.273330 +vt 0.006709 0.014569 +vt 0.006717 0.006709 +vt 0.784220 0.808073 +vt 0.510060 0.808073 +vt 0.791130 0.241704 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.3090 -0.9511 +vn 0.0000 -0.0785 -0.9969 +vn 1.0000 0.0059 0.0000 +vn 0.9999 -0.0072 0.0088 +vn 1.0000 0.0070 -0.0070 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0785 0.9969 +vn 0.0000 -0.9511 -0.3090 +vn 0.0000 -0.8090 -0.5878 +vn 0.0000 -0.5878 -0.8090 +vn 0.0000 -0.3090 0.9511 +vn 0.0000 -0.5878 0.8090 +vn 0.0000 -0.8090 0.5878 +vn 0.0000 -0.9511 0.3090 +vn 0.9996 -0.0118 0.0267 +vn 0.9992 -0.0037 -0.0401 +vn 0.9997 -0.0146 0.0182 +vn 0.9998 -0.0176 0.0132 +vn 0.9999 -0.0066 -0.0091 +vn 1.0000 0.0071 0.0070 +vn 0.9998 -0.0176 -0.0129 +vn 0.9997 -0.0148 -0.0183 +vn 0.9997 -0.0111 -0.0234 +vn 0.9991 -0.0049 0.0417 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -0.0001 -1.0000 +vn 0.0000 -0.9988 -0.0489 +vn 0.0000 -0.9988 0.0489 +vn 0.0000 -0.0001 1.0000 +vn 0.0000 -0.0002 1.0000 +vn 0.0883 0.9961 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9966 -0.0205 -0.0804 +vn 0.9976 -0.0063 -0.0690 +vn 0.9980 -0.0347 -0.0530 +vn 0.9983 -0.0476 -0.0337 +vn 1.0000 -0.0054 0.0001 +vn 0.9977 -0.0641 -0.0207 +vn 0.9977 -0.0646 0.0206 +vn 0.9983 -0.0469 0.0340 +vn 0.9980 -0.0345 0.0539 +vn 0.9964 -0.0224 0.0812 +vn 0.9975 -0.0060 0.0703 +vn 1.0000 -0.0020 0.0012 +vn 0.2629 0.9648 0.0000 +vn 1.0000 -0.0001 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.9891 -0.0019 0.1474 +vn 1.0000 -0.0038 -0.0025 +vn 0.0000 -0.0002 -1.0000 +vn -1.0000 0.0059 0.0000 +vn -1.0000 0.0070 -0.0070 +vn -0.9999 -0.0072 0.0088 +vn -0.9996 -0.0118 0.0267 +vn -0.9992 -0.0037 -0.0401 +vn -0.9997 -0.0146 0.0182 +vn -0.9998 -0.0176 0.0132 +vn -0.9999 -0.0066 -0.0091 +vn -1.0000 0.0071 0.0070 +vn -0.9998 -0.0176 -0.0129 +vn -0.9997 -0.0148 -0.0183 +vn -0.9997 -0.0111 -0.0234 +vn -0.9991 -0.0049 0.0417 +vn -0.0883 0.9961 0.0000 +vn -0.9966 -0.0205 -0.0804 +vn -0.9976 -0.0063 -0.0690 +vn -0.9980 -0.0347 -0.0530 +vn -0.9983 -0.0476 -0.0337 +vn -0.9977 -0.0641 -0.0207 +vn -1.0000 -0.0054 0.0001 +vn -0.9977 -0.0646 0.0206 +vn -0.9983 -0.0469 0.0340 +vn -0.9980 -0.0345 0.0539 +vn -0.9964 -0.0224 0.0812 +vn -0.9975 -0.0060 0.0703 +vn -1.0000 -0.0020 0.0012 +vn -0.2629 0.9648 0.0000 +vn -1.0000 -0.0001 0.0000 +vn -0.9891 -0.0019 0.1474 +vn -1.0000 -0.0038 -0.0025 +s 1 +f 1424/2157/208 1307/2158/208 1421/2159/208 +f 1337/2160/209 1362/2161/209 1422/2162/209 +f 1343/2163/210 1323/2164/211 1322/2165/210 +f 1342/2166/212 1353/2167/213 1310/2168/214 +f 1340/2169/211 1312/2170/208 1323/2164/211 +f 1311/2171/215 1351/2172/216 1313/2173/216 +f 1341/2174/209 1319/2175/217 1318/2176/209 +f 1347/2177/218 1321/2178/219 1320/2179/218 +f 1349/2180/217 1320/2179/218 1319/2175/217 +f 1351/2172/216 1314/2181/220 1313/2173/216 +f 1345/2182/219 1322/2165/210 1321/2178/219 +f 1357/2183/221 1316/2184/222 1315/2185/221 +f 1359/2186/220 1315/2185/221 1314/2181/220 +f 1355/2187/222 1317/2188/223 1316/2184/222 +f 1360/2189/224 1352/2190/225 1310/2168/214 +f 1358/2191/226 1360/2189/224 1310/2168/214 +f 1356/2192/227 1358/2191/226 1310/2168/214 +f 1353/2167/213 1356/2192/227 1310/2168/214 +f 1350/2193/228 1342/2166/212 1309/2194/229 +f 1354/2195/223 1318/2196/209 1317/2188/223 +f 1348/2197/230 1350/2193/228 1309/2194/229 +f 1346/2198/231 1348/2197/230 1309/2194/229 +f 1344/2199/232 1346/2198/231 1309/2194/229 +f 1339/2200/233 1344/2199/232 1309/2194/229 +f 1316/2201/234 1330/2202/234 1329/2203/234 +f 1323/2204/234 1325/2205/234 1336/2206/234 +f 1321/2207/234 1333/2208/234 1320/2209/234 +f 1314/2210/234 1326/2211/234 1313/2212/234 +f 1317/2213/234 1331/2214/234 1330/2202/234 +f 1322/2215/234 1334/2216/234 1321/2207/234 +f 1335/2217/208 1439/2218/235 1438/2219/208 +f 1334/2220/208 1438/2219/208 1437/2221/208 +f 1333/2222/208 1437/2221/208 1436/2223/208 +f 1332/2224/208 1436/2223/208 1435/2225/208 +f 1331/2226/209 1435/2225/236 1434/2227/209 +f 1330/2228/237 1434/2229/209 1433/2230/237 +f 1329/2231/215 1433/2230/215 1432/2232/215 +f 1328/2233/215 1432/2232/215 1431/2234/215 +f 1327/2235/215 1431/2234/215 1430/2236/215 +f 1326/2237/238 1430/2236/215 1429/2238/238 +f 1324/2239/239 1429/2238/238 1427/2240/239 +f 1320/2209/234 1332/2241/234 1319/2242/234 +f 1315/2243/234 1329/2203/234 1328/2244/234 +f 1313/2212/234 1324/2245/234 1311/2246/234 +f 1322/2215/234 1336/2206/234 1335/2247/234 +f 1319/2242/234 1331/2214/234 1318/2248/234 +f 1314/2210/234 1328/2244/234 1327/2249/234 +f 1311/2250/240 1427/2251/241 1425/2252/241 +f 1343/2253/242 1339/2200/233 1340/2254/243 +f 1345/2255/244 1344/2199/232 1343/2253/242 +f 1347/2256/245 1346/2198/231 1345/2255/244 +f 1347/2256/245 1350/2193/228 1348/2197/230 +f 1341/2257/246 1350/2193/228 1349/2258/247 +f 1354/2259/248 1356/2192/227 1353/2167/213 +f 1355/2260/249 1358/2191/226 1356/2192/227 +f 1357/2261/250 1360/2189/224 1358/2191/226 +f 1359/2262/251 1352/2190/225 1360/2189/224 +f 1351/2263/252 1363/2264/253 1352/2190/225 +f 1341/2257/246 1353/2167/213 1342/2166/212 +f 1338/2265/254 1312/2266/240 1337/2267/254 +f 1340/2254/243 1362/2268/255 1337/2269/256 +f 1339/2200/233 1309/2194/229 1361/2270/257 +f 1352/2190/225 1307/2271/258 1310/2168/214 +f 1325/2272/259 1439/2218/235 1336/2273/235 +f 1426/2274/241 1325/2275/241 1312/2266/240 +f 1311/2250/240 1426/2274/241 1312/2266/240 +f 1423/2276/241 1309/2277/241 1342/2278/241 +f 1361/2279/215 1423/2280/215 1422/2281/215 +f 1364/2282/208 1424/2157/208 1421/2159/208 +f 1422/2162/209 1419/2283/209 1394/2284/209 +f 1380/2285/211 1400/2286/210 1379/2287/210 +f 1399/2288/260 1367/2289/261 1410/2290/262 +f 1397/2291/211 1369/2292/208 1394/2293/208 +f 1368/2294/215 1408/2295/216 1395/2296/215 +f 1376/2297/217 1398/2298/209 1375/2299/209 +f 1378/2300/219 1404/2301/218 1377/2302/218 +f 1377/2302/218 1406/2303/217 1376/2297/217 +f 1371/2304/220 1408/2295/216 1370/2305/216 +f 1379/2287/210 1402/2306/219 1378/2300/219 +f 1373/2307/222 1414/2308/221 1372/2309/221 +f 1372/2309/221 1416/2310/220 1371/2304/220 +f 1374/2311/223 1412/2312/222 1373/2307/222 +f 1417/2313/263 1367/2289/261 1409/2314/264 +f 1415/2315/265 1367/2289/261 1417/2313/263 +f 1413/2316/266 1367/2289/261 1415/2315/265 +f 1410/2290/262 1367/2289/261 1413/2316/266 +f 1407/2317/267 1366/2318/268 1399/2288/260 +f 1375/2319/209 1411/2320/223 1374/2311/223 +f 1405/2321/269 1366/2318/268 1407/2317/267 +f 1403/2322/270 1366/2318/268 1405/2321/269 +f 1401/2323/271 1366/2318/268 1403/2322/270 +f 1396/2324/272 1366/2318/268 1401/2323/271 +f 1373/2325/256 1387/2326/256 1374/2327/256 +f 1380/2328/256 1382/2329/256 1369/2330/256 +f 1390/2331/256 1378/2332/256 1377/2333/256 +f 1383/2334/256 1371/2335/256 1370/2336/256 +f 1374/2327/256 1388/2337/256 1375/2338/256 +f 1391/2339/256 1379/2340/256 1378/2332/256 +f 1439/2218/235 1392/2341/208 1438/2219/208 +f 1438/2219/208 1391/2342/208 1437/2221/208 +f 1437/2221/208 1390/2343/208 1436/2223/208 +f 1436/2223/208 1389/2344/208 1435/2225/208 +f 1435/2225/236 1388/2345/209 1434/2227/209 +f 1434/2229/209 1387/2346/237 1433/2230/237 +f 1433/2230/215 1386/2347/215 1432/2232/215 +f 1432/2232/215 1385/2348/215 1431/2234/215 +f 1431/2234/215 1384/2349/215 1430/2236/215 +f 1430/2236/215 1383/2350/238 1429/2238/238 +f 1429/2238/238 1381/2351/239 1427/2240/239 +f 1389/2352/256 1377/2333/256 1376/2353/256 +f 1372/2354/256 1386/2355/256 1373/2325/256 +f 1381/2356/256 1370/2336/256 1368/2357/256 +f 1379/2340/256 1393/2358/256 1380/2328/256 +f 1388/2337/256 1376/2353/256 1375/2338/256 +f 1371/2335/256 1385/2359/256 1372/2354/256 +f 1427/2251/241 1368/2360/273 1425/2252/241 +f 1396/2324/272 1400/2361/274 1397/2362/275 +f 1401/2323/271 1402/2363/276 1400/2361/274 +f 1403/2322/270 1404/2364/277 1402/2363/276 +f 1404/2364/277 1407/2317/267 1406/2365/278 +f 1407/2317/267 1398/2366/279 1406/2365/278 +f 1411/2367/280 1413/2316/266 1412/2368/281 +f 1412/2368/281 1415/2315/265 1414/2369/282 +f 1414/2369/282 1417/2313/263 1416/2370/283 +f 1416/2370/283 1409/2314/264 1408/2371/284 +f 1420/2372/285 1408/2371/284 1409/2314/264 +f 1398/2366/279 1410/2290/262 1411/2367/280 +f 1369/2373/273 1395/2374/286 1394/2375/286 +f 1397/2362/275 1419/2376/287 1396/2324/272 +f 1418/2377/288 1396/2324/272 1419/2376/287 +f 1409/2314/264 1364/2378/289 1420/2372/285 +f 1439/2218/235 1382/2379/259 1393/2380/235 +f 1382/2381/241 1426/2274/241 1369/2373/273 +f 1426/2274/241 1368/2360/273 1369/2373/273 +f 1399/2382/241 1423/2276/241 1424/2383/241 +f 1423/2280/215 1366/2384/215 1418/2385/215 +f 1424/2157/208 1310/2386/208 1307/2158/208 +f 1422/2162/209 1421/2387/209 1338/2388/209 +f 1421/2387/209 1307/2389/209 1363/2390/209 +f 1363/2390/209 1338/2388/209 1421/2387/209 +f 1338/2388/209 1337/2160/209 1422/2162/209 +f 1362/2161/209 1308/2391/209 1422/2162/209 +f 1343/2163/210 1340/2169/211 1323/2164/211 +f 1340/2169/211 1337/2392/208 1312/2170/208 +f 1311/2171/215 1338/2393/215 1351/2172/216 +f 1341/2174/209 1349/2180/217 1319/2175/217 +f 1347/2177/218 1345/2182/219 1321/2178/219 +f 1349/2180/217 1347/2177/218 1320/2179/218 +f 1351/2172/216 1359/2186/220 1314/2181/220 +f 1345/2182/219 1343/2163/210 1322/2165/210 +f 1357/2183/221 1355/2187/222 1316/2184/222 +f 1359/2186/220 1357/2183/221 1315/2185/221 +f 1355/2187/222 1354/2195/223 1317/2188/223 +f 1354/2195/223 1341/2394/209 1318/2196/209 +f 1316/2201/234 1317/2213/234 1330/2202/234 +f 1323/2204/234 1312/2395/234 1325/2205/234 +f 1321/2207/234 1334/2216/234 1333/2208/234 +f 1314/2210/234 1327/2249/234 1326/2211/234 +f 1317/2213/234 1318/2248/234 1331/2214/234 +f 1322/2215/234 1335/2247/234 1334/2216/234 +f 1335/2217/208 1336/2273/235 1439/2218/235 +f 1334/2220/208 1335/2217/208 1438/2219/208 +f 1333/2222/208 1334/2220/208 1437/2221/208 +f 1332/2224/208 1333/2222/208 1436/2223/208 +f 1331/2226/209 1332/2224/236 1435/2225/236 +f 1330/2228/237 1331/2396/209 1434/2229/209 +f 1329/2231/215 1330/2228/215 1433/2230/215 +f 1328/2233/215 1329/2231/215 1432/2232/215 +f 1327/2235/215 1328/2233/215 1431/2234/215 +f 1326/2237/238 1327/2235/215 1430/2236/215 +f 1324/2239/239 1326/2237/238 1429/2238/238 +f 1320/2209/234 1333/2208/234 1332/2241/234 +f 1315/2243/234 1316/2201/234 1329/2203/234 +f 1313/2212/234 1326/2211/234 1324/2245/234 +f 1322/2215/234 1323/2204/234 1336/2206/234 +f 1319/2242/234 1332/2241/234 1331/2214/234 +f 1314/2210/234 1315/2243/234 1328/2244/234 +f 1311/2250/240 1324/2397/241 1427/2251/241 +f 1343/2253/242 1344/2199/232 1339/2200/233 +f 1345/2255/244 1346/2198/231 1344/2199/232 +f 1347/2256/245 1348/2197/230 1346/2198/231 +f 1347/2256/245 1349/2258/247 1350/2193/228 +f 1341/2257/246 1342/2166/212 1350/2193/228 +f 1354/2259/248 1355/2260/249 1356/2192/227 +f 1355/2260/249 1357/2261/250 1358/2191/226 +f 1357/2261/250 1359/2262/251 1360/2189/224 +f 1359/2262/251 1351/2263/252 1352/2190/225 +f 1351/2263/252 1338/2398/256 1363/2264/253 +f 1341/2257/246 1354/2259/248 1353/2167/213 +f 1338/2265/254 1311/2250/240 1312/2266/240 +f 1340/2254/243 1339/2200/233 1362/2268/255 +f 1361/2270/257 1308/2399/256 1362/2268/255 +f 1362/2268/255 1339/2200/233 1361/2270/257 +f 1352/2190/225 1363/2264/253 1307/2271/258 +f 1325/2272/259 1428/2400/259 1439/2218/235 +f 1426/2274/241 1428/2401/241 1325/2275/241 +f 1311/2250/240 1425/2252/241 1426/2274/241 +f 1342/2278/241 1310/2402/241 1424/2383/241 +f 1424/2383/241 1423/2276/241 1342/2278/241 +f 1422/2281/215 1308/2403/215 1361/2279/215 +f 1361/2279/215 1309/2404/215 1423/2280/215 +f 1364/2282/208 1367/2405/208 1424/2157/208 +f 1364/2406/209 1421/2387/209 1420/2407/209 +f 1421/2387/209 1422/2162/209 1395/2408/209 +f 1420/2407/209 1421/2387/209 1395/2408/209 +f 1422/2162/209 1365/2409/209 1419/2283/209 +f 1394/2284/209 1395/2408/209 1422/2162/209 +f 1380/2285/211 1397/2291/211 1400/2286/210 +f 1397/2291/211 1380/2285/211 1369/2292/208 +f 1368/2294/215 1370/2305/216 1408/2295/216 +f 1376/2297/217 1406/2303/217 1398/2298/209 +f 1378/2300/219 1402/2306/219 1404/2301/218 +f 1377/2302/218 1404/2301/218 1406/2303/217 +f 1371/2304/220 1416/2310/220 1408/2295/216 +f 1379/2287/210 1400/2286/210 1402/2306/219 +f 1373/2307/222 1412/2312/222 1414/2308/221 +f 1372/2309/221 1414/2308/221 1416/2310/220 +f 1374/2311/223 1411/2320/223 1412/2312/222 +f 1375/2319/209 1398/2410/209 1411/2320/223 +f 1373/2325/256 1386/2355/256 1387/2326/256 +f 1380/2328/256 1393/2358/256 1382/2329/256 +f 1390/2331/256 1391/2339/256 1378/2332/256 +f 1383/2334/256 1384/2411/256 1371/2335/256 +f 1374/2327/256 1387/2326/256 1388/2337/256 +f 1391/2339/256 1392/2412/256 1379/2340/256 +f 1439/2218/235 1393/2380/235 1392/2341/208 +f 1438/2219/208 1392/2341/208 1391/2342/208 +f 1437/2221/208 1391/2342/208 1390/2343/208 +f 1436/2223/208 1390/2343/208 1389/2344/208 +f 1435/2225/236 1389/2344/236 1388/2345/209 +f 1434/2229/209 1388/2413/209 1387/2346/237 +f 1433/2230/215 1387/2346/215 1386/2347/215 +f 1432/2232/215 1386/2347/215 1385/2348/215 +f 1431/2234/215 1385/2348/215 1384/2349/215 +f 1430/2236/215 1384/2349/215 1383/2350/238 +f 1429/2238/238 1383/2350/238 1381/2351/239 +f 1389/2352/256 1390/2331/256 1377/2333/256 +f 1372/2354/256 1385/2359/256 1386/2355/256 +f 1381/2356/256 1383/2334/256 1370/2336/256 +f 1379/2340/256 1392/2412/256 1393/2358/256 +f 1388/2337/256 1389/2352/256 1376/2353/256 +f 1371/2335/256 1384/2411/256 1385/2359/256 +f 1427/2251/241 1381/2414/241 1368/2360/273 +f 1396/2324/272 1401/2323/271 1400/2361/274 +f 1401/2323/271 1403/2322/270 1402/2363/276 +f 1403/2322/270 1405/2321/269 1404/2364/277 +f 1404/2364/277 1405/2321/269 1407/2317/267 +f 1407/2317/267 1399/2288/260 1398/2366/279 +f 1411/2367/280 1410/2290/262 1413/2316/266 +f 1412/2368/281 1413/2316/266 1415/2315/265 +f 1414/2369/282 1415/2315/265 1417/2313/263 +f 1416/2370/283 1417/2313/263 1409/2314/264 +f 1420/2372/285 1395/2415/234 1408/2371/284 +f 1398/2366/279 1399/2288/260 1410/2290/262 +f 1369/2373/273 1368/2360/273 1395/2374/286 +f 1397/2362/275 1394/2416/234 1419/2376/287 +f 1419/2376/287 1365/2417/234 1418/2377/288 +f 1418/2377/288 1366/2318/268 1396/2324/272 +f 1409/2314/264 1367/2289/261 1364/2378/289 +f 1439/2218/235 1428/2400/259 1382/2379/259 +f 1382/2381/241 1428/2401/241 1426/2274/241 +f 1426/2274/241 1425/2252/241 1368/2360/273 +f 1424/2383/241 1367/2418/241 1399/2382/241 +f 1399/2382/241 1366/2419/241 1423/2276/241 +f 1418/2385/215 1365/2420/215 1422/2281/215 +f 1422/2281/215 1423/2280/215 1418/2385/215 diff --git a/src/main/resources/assets/hbm/models/doors/qe_containment.obj b/src/main/resources/assets/hbm/models/doors/qe_containment.obj new file mode 100644 index 000000000..d3c72a634 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/qe_containment.obj @@ -0,0 +1,1601 @@ +# Blender v2.92.0 OBJ File: 'qe_lockdown_doorblend.blend' +# www.blender.org +o door +v 0.125956 2.428429 1.096965 +v 0.125956 0.142335 1.385726 +v 0.125956 0.142335 -1.385726 +v 0.125956 2.128096 1.397299 +v 0.125956 2.128096 -1.397299 +v 0.125956 2.428429 -1.096965 +v 0.125956 0.042149 -1.485400 +v 0.125956 2.169381 -1.497698 +v 0.125956 0.042149 1.485400 +v 0.125956 2.169381 1.497698 +v 0.125956 2.528616 -1.138464 +v 0.125956 2.528616 1.138464 +v 0.064985 0.142335 -1.385726 +v 0.064985 2.128096 -1.397299 +v 0.064985 0.142335 1.385726 +v 0.064985 2.128096 1.397299 +v 0.064985 2.428429 -1.096965 +v 0.064985 2.428429 1.096965 +v 0.040207 0.897613 1.390926 +v 0.040207 1.171400 1.391563 +v 0.040207 0.897613 -1.390926 +v 0.040207 1.171400 -1.391554 +v 0.092371 0.897613 1.390926 +v 0.092371 1.171400 1.391563 +v 0.092371 0.897613 -1.390926 +v 0.092371 1.171400 -1.391554 +v 0.125956 1.171400 1.392205 +v 0.125956 1.171400 -1.392233 +v 0.125956 0.897613 -1.390926 +v 0.125956 0.897613 1.390926 +v 0.090460 0.951001 -1.390926 +v 0.090460 1.118012 -1.390926 +v 0.090460 0.951001 1.390926 +v 0.090460 1.118012 1.390926 +v 0.125956 1.118012 -1.391606 +v 0.125956 1.118012 1.391568 +v 0.125956 0.951001 1.390926 +v 0.125956 0.951001 -1.390926 +v 0.029347 1.034506 -0.285639 +v 0.029347 0.925197 -0.263896 +v 0.029347 0.832529 -0.201977 +v 0.029347 0.770611 -0.109309 +v 0.029347 0.748868 0.000000 +v 0.029347 0.770611 0.109309 +v 0.029347 0.832529 0.201977 +v 0.029347 0.925197 0.263896 +v 0.029347 1.034506 0.285639 +v 0.029347 1.143816 0.263896 +v 0.029347 1.236483 0.201977 +v 0.029347 1.298402 0.109309 +v 0.029347 1.320145 0.000000 +v 0.029347 1.298402 -0.109309 +v 0.029347 1.236483 -0.201977 +v 0.029347 1.143815 -0.263896 +v 0.109739 1.034506 -0.250510 +v 0.075285 1.034506 -0.285639 +v 0.109739 0.938640 -0.231441 +v 0.075285 0.925197 -0.263896 +v 0.109739 0.857369 -0.177137 +v 0.075285 0.832529 -0.201977 +v 0.109739 0.803065 -0.095866 +v 0.075285 0.770611 -0.109309 +v 0.109739 0.783996 0.000000 +v 0.075285 0.748868 0.000000 +v 0.109739 0.803065 0.095866 +v 0.075285 0.770611 0.109309 +v 0.109739 0.857369 0.177137 +v 0.075285 0.832529 0.201977 +v 0.109739 0.938640 0.231441 +v 0.075285 0.925197 0.263896 +v 0.109739 1.034506 0.250510 +v 0.075285 1.034506 0.285639 +v 0.109739 1.130372 0.231441 +v 0.075285 1.143816 0.263896 +v 0.109739 1.211644 0.177137 +v 0.075285 1.236483 0.201977 +v 0.109739 1.265947 0.095866 +v 0.075285 1.298402 0.109309 +v 0.109739 1.285016 0.000000 +v 0.075285 1.320145 0.000000 +v 0.109739 1.265947 -0.095866 +v 0.075285 1.298402 -0.109309 +v 0.109739 1.211644 -0.177137 +v 0.075285 1.236483 -0.201977 +v 0.109739 1.130372 -0.231441 +v 0.075285 1.143815 -0.263896 +v 0.015982 0.142335 0.468209 +v 0.015982 2.428429 0.468209 +v 0.015982 0.142335 0.393815 +v 0.015982 2.428429 0.393815 +v 0.125956 0.142335 0.468209 +v 0.125956 2.428429 0.468209 +v 0.125956 0.142335 0.393815 +v 0.125956 2.428429 0.393815 +v 0.015982 1.171400 0.468209 +v 0.015982 1.171400 0.393815 +v 0.125956 1.171400 0.393815 +v 0.125956 1.171400 0.468209 +v 0.015982 0.897613 0.393815 +v 0.125956 0.897613 0.393815 +v 0.125956 0.897613 0.468209 +v 0.015982 0.897613 0.468209 +v 0.059135 1.138329 0.491282 +v 0.059135 2.143588 1.400841 +v 0.059135 1.193578 0.424240 +v 0.059135 2.198836 1.333799 +v 0.101822 1.138329 0.491282 +v 0.101822 2.143588 1.400841 +v 0.101822 1.193578 0.424240 +v 0.101822 2.198836 1.333799 +v 0.054672 0.167400 1.418743 +v 0.054672 0.948722 0.471243 +v 0.054672 0.096526 1.366685 +v 0.054672 0.877848 0.419185 +v 0.097593 0.167400 1.418743 +v 0.097593 0.948722 0.471243 +v 0.097593 0.096526 1.366685 +v 0.097593 0.877848 0.419185 +v 0.015982 0.142335 -0.468209 +v 0.015982 2.428429 -0.468209 +v 0.015982 0.142335 -0.393815 +v 0.015982 2.428429 -0.393815 +v 0.125956 0.142335 -0.468209 +v 0.125956 2.428429 -0.468209 +v 0.125956 0.142335 -0.393815 +v 0.125956 2.428429 -0.393815 +v 0.015982 1.171400 -0.468209 +v 0.015982 1.171400 -0.393815 +v 0.125956 1.171400 -0.393815 +v 0.125956 1.171400 -0.468209 +v 0.015982 0.897613 -0.393815 +v 0.125956 0.897613 -0.393815 +v 0.125956 0.897613 -0.468209 +v 0.015982 0.897613 -0.468209 +v 0.059135 1.138329 -0.491282 +v 0.059135 2.143588 -1.400841 +v 0.059135 1.193578 -0.424240 +v 0.059135 2.198836 -1.333799 +v 0.101822 1.138329 -0.491282 +v 0.101822 2.143588 -1.400841 +v 0.101822 1.193578 -0.424240 +v 0.101822 2.198836 -1.333799 +v 0.054672 0.167400 -1.418743 +v 0.054672 0.948722 -0.471243 +v 0.054672 0.096526 -1.366685 +v 0.054672 0.877848 -0.419185 +v 0.097593 0.167400 -1.418743 +v 0.097593 0.948722 -0.471243 +v 0.097593 0.096526 -1.366685 +v 0.097593 0.877848 -0.419185 +v 0.075121 0.042149 1.010166 +v 0.075121 0.042149 0.687434 +v 0.075121 0.042149 0.161366 +v 0.075121 0.042149 -0.161366 +v 0.075121 0.042149 -0.687434 +v 0.075121 0.042149 -1.010166 +v 0.125956 0.042149 1.061000 +v 0.125956 0.042149 0.636600 +v 0.125956 0.042149 0.212200 +v 0.125956 0.042149 -0.212200 +v 0.125956 0.042149 -0.636600 +v 0.125956 0.042149 -1.061000 +v 0.056341 -0.123867 0.969824 +v 0.056341 -0.123867 0.727776 +v 0.056341 -0.123867 0.121024 +v 0.056341 -0.123867 -0.121024 +v 0.056341 -0.123867 -0.727776 +v 0.056341 -0.123867 -0.969824 +v -0.125956 2.428429 1.096965 +v -0.125956 0.142335 1.385726 +v -0.125956 0.142335 -1.385726 +v -0.125956 2.128096 1.397299 +v -0.125956 2.128096 -1.397299 +v -0.125956 2.428429 -1.096965 +v -0.125956 0.042149 -1.485400 +v -0.125956 2.169381 -1.497698 +v -0.125956 0.042149 1.485400 +v -0.125956 2.169381 1.497698 +v -0.125956 2.528616 -1.138464 +v -0.125956 2.528616 1.138464 +v -0.064985 0.142335 -1.385726 +v -0.064985 2.128096 -1.397299 +v -0.064985 0.142335 1.385726 +v -0.064985 2.128096 1.397299 +v -0.064985 2.428429 -1.096965 +v -0.064985 2.428429 1.096965 +v -0.040207 0.897613 1.390926 +v -0.040207 1.171400 1.391563 +v -0.040207 0.897613 -1.390926 +v -0.040207 1.171400 -1.391554 +v -0.092371 0.897613 1.390926 +v -0.092371 1.171400 1.391563 +v -0.092371 0.897613 -1.390926 +v -0.092371 1.171400 -1.391554 +v -0.125956 1.171400 1.392205 +v -0.125956 1.171400 -1.392233 +v -0.125956 0.897613 -1.390926 +v -0.125956 0.897613 1.390926 +v -0.090460 0.951001 -1.390926 +v -0.090460 1.118012 -1.390926 +v -0.090460 0.951001 1.390926 +v -0.090460 1.118012 1.390926 +v -0.125956 1.118012 -1.391606 +v -0.125956 1.118012 1.391568 +v -0.125956 0.951001 1.390926 +v -0.125956 0.951001 -1.390926 +v -0.029347 1.034506 -0.285639 +v -0.029347 0.925197 -0.263896 +v -0.029347 0.832529 -0.201977 +v -0.029347 0.770611 -0.109309 +v -0.029347 0.748868 0.000000 +v -0.029347 0.770611 0.109309 +v -0.029347 0.832529 0.201977 +v -0.029347 0.925197 0.263896 +v -0.029347 1.034506 0.285639 +v -0.029347 1.143816 0.263896 +v -0.029347 1.236483 0.201977 +v -0.029347 1.298402 0.109309 +v -0.029347 1.320145 0.000000 +v -0.029347 1.298402 -0.109309 +v -0.029347 1.236483 -0.201977 +v -0.029347 1.143815 -0.263896 +v -0.109739 1.034506 -0.250510 +v -0.075285 1.034506 -0.285639 +v -0.109739 0.938640 -0.231441 +v -0.075285 0.925197 -0.263896 +v -0.109739 0.857369 -0.177137 +v -0.075285 0.832529 -0.201977 +v -0.109739 0.803065 -0.095866 +v -0.075285 0.770611 -0.109309 +v -0.109739 0.783996 0.000000 +v -0.075285 0.748868 0.000000 +v -0.109739 0.803065 0.095866 +v -0.075285 0.770611 0.109309 +v -0.109739 0.857369 0.177137 +v -0.075285 0.832529 0.201977 +v -0.109739 0.938640 0.231441 +v -0.075285 0.925197 0.263896 +v -0.109739 1.034506 0.250510 +v -0.075285 1.034506 0.285639 +v -0.109739 1.130372 0.231441 +v -0.075285 1.143816 0.263896 +v -0.109739 1.211644 0.177137 +v -0.075285 1.236483 0.201977 +v -0.109739 1.265947 0.095866 +v -0.075285 1.298402 0.109309 +v -0.109739 1.285016 0.000000 +v -0.075285 1.320145 0.000000 +v -0.109739 1.265947 -0.095866 +v -0.075285 1.298402 -0.109309 +v -0.109739 1.211644 -0.177137 +v -0.075285 1.236483 -0.201977 +v -0.109739 1.130372 -0.231441 +v -0.075285 1.143815 -0.263896 +v -0.015982 0.142335 0.468209 +v -0.015982 2.428429 0.468209 +v -0.015982 0.142335 0.393815 +v -0.015982 2.428429 0.393815 +v -0.125956 0.142335 0.468209 +v -0.125956 2.428429 0.468209 +v -0.125956 0.142335 0.393815 +v -0.125956 2.428429 0.393815 +v -0.015982 1.171400 0.468209 +v -0.015982 1.171400 0.393815 +v -0.125956 1.171400 0.393815 +v -0.125956 1.171400 0.468209 +v -0.015982 0.897613 0.393815 +v -0.125956 0.897613 0.393815 +v -0.125956 0.897613 0.468209 +v -0.015982 0.897613 0.468209 +v -0.059135 1.138329 0.491282 +v -0.059135 2.143588 1.400841 +v -0.059135 1.193578 0.424240 +v -0.059135 2.198836 1.333799 +v -0.101822 1.138329 0.491282 +v -0.101822 2.143588 1.400841 +v -0.101822 1.193578 0.424240 +v -0.101822 2.198836 1.333799 +v -0.054672 0.167400 1.418743 +v -0.054672 0.948722 0.471243 +v -0.054672 0.096526 1.366685 +v -0.054672 0.877848 0.419185 +v -0.097593 0.167400 1.418743 +v -0.097593 0.948722 0.471243 +v -0.097593 0.096526 1.366685 +v -0.097593 0.877848 0.419185 +v -0.015982 0.142335 -0.468209 +v -0.015982 2.428429 -0.468209 +v -0.015982 0.142335 -0.393815 +v -0.015982 2.428429 -0.393815 +v -0.125956 0.142335 -0.468209 +v -0.125956 2.428429 -0.468209 +v -0.125956 0.142335 -0.393815 +v -0.125956 2.428429 -0.393815 +v -0.015982 1.171400 -0.468209 +v -0.015982 1.171400 -0.393815 +v -0.125956 1.171400 -0.393815 +v -0.125956 1.171400 -0.468209 +v -0.015982 0.897613 -0.393815 +v -0.125956 0.897613 -0.393815 +v -0.125956 0.897613 -0.468209 +v -0.015982 0.897613 -0.468209 +v -0.059135 1.138329 -0.491282 +v -0.059135 2.143588 -1.400841 +v -0.059135 1.193578 -0.424240 +v -0.059135 2.198836 -1.333799 +v -0.101822 1.138329 -0.491282 +v -0.101822 2.143588 -1.400841 +v -0.101822 1.193578 -0.424240 +v -0.101822 2.198836 -1.333799 +v -0.054672 0.167400 -1.418743 +v -0.054672 0.948722 -0.471243 +v -0.054672 0.096526 -1.366685 +v -0.054672 0.877848 -0.419185 +v -0.097593 0.167400 -1.418743 +v -0.097593 0.948722 -0.471243 +v -0.097593 0.096526 -1.366685 +v -0.097593 0.877848 -0.419185 +v -0.075121 0.042149 1.010166 +v -0.075121 0.042149 0.687434 +v -0.075121 0.042149 0.161366 +v -0.075121 0.042149 -0.161366 +v -0.075121 0.042149 -0.687434 +v -0.075121 0.042149 -1.010166 +v -0.125956 0.042149 1.061000 +v -0.125956 0.042149 0.636600 +v -0.125956 0.042149 0.212200 +v -0.125956 0.042149 -0.212200 +v -0.125956 0.042149 -0.636600 +v -0.125956 0.042149 -1.061000 +v -0.056341 -0.123867 0.969824 +v -0.056341 -0.123867 0.727776 +v -0.056341 -0.123867 0.121024 +v -0.056341 -0.123867 -0.121024 +v -0.056341 -0.123867 -0.727776 +v -0.056341 -0.123867 -0.969824 +vt 0.895448 0.314338 +vt 0.901321 0.525639 +vt 0.895448 0.525639 +vt 0.273099 0.724653 +vt 0.053805 0.700391 +vt 0.273099 0.700391 +vt 0.788557 0.587648 +vt 0.812819 0.546774 +vt 0.812819 0.587648 +vt 0.004875 0.734403 +vt 0.209756 0.758666 +vt 0.004875 0.758666 +vt 0.322029 0.700391 +vt 0.322029 0.724653 +vt 0.937895 0.608456 +vt 0.947550 0.803744 +vt 0.937904 0.799712 +vt 0.866298 0.477800 +vt 0.856648 0.549952 +vt 0.866298 0.436927 +vt 0.932801 0.468721 +vt 0.942456 0.273431 +vt 0.942456 0.478314 +vt 0.778807 0.283695 +vt 0.740232 0.258767 +vt 0.749881 0.254770 +vt 0.740231 0.039474 +vt 0.749881 0.043471 +vt 0.778807 0.014545 +vt 0.774830 0.004875 +vt 0.425063 0.839089 +vt 0.425063 0.627788 +vt 0.645240 0.866900 +vt 0.515948 0.883638 +vt 0.707201 0.877765 +vt 0.707201 0.883638 +vt 0.978538 0.273431 +vt 0.984410 0.464685 +vt 0.978538 0.464685 +vt 0.895448 0.273431 +vt 0.901320 0.314338 +vt 0.901320 0.566546 +vt 0.895448 0.566546 +vt 0.922272 0.598863 +vt 0.928144 0.865781 +vt 0.922272 0.865781 +vt 0.711943 0.004974 +vt 0.716385 0.259410 +vt 0.711944 0.259428 +vt 0.721268 0.004956 +vt 0.721268 0.259410 +vt 0.725709 0.259390 +vt 0.730481 0.004936 +vt 0.730481 0.259390 +vt 0.678126 0.259489 +vt 0.682897 0.004936 +vt 0.682897 0.259488 +vt 0.696667 0.004974 +vt 0.696667 0.259428 +vt 0.687341 0.259571 +vt 0.692225 0.004934 +vt 0.692225 0.259514 +vt 0.687342 0.004875 +vt 0.725709 0.004936 +vt 0.004875 0.790146 +vt 0.015467 0.911212 +vt 0.004875 0.911212 +vt 0.015467 0.790146 +vt 0.022632 0.911212 +vt 0.022632 0.790146 +vt 0.033224 0.911212 +vt 0.173791 0.818495 +vt 0.246533 0.807903 +vt 0.246533 0.818494 +vt 0.173791 0.807903 +vt 0.246533 0.800738 +vt 0.173791 0.790146 +vt 0.246533 0.790146 +vt 0.937895 0.813881 +vt 0.942006 0.944448 +vt 0.937895 0.944448 +vt 0.942006 0.813881 +vt 0.950364 0.944061 +vt 0.950364 0.813495 +vt 0.954475 0.944061 +vt 0.980950 0.931775 +vt 0.976816 0.813495 +vt 0.980950 0.813495 +vt 0.976816 0.931775 +vt 0.968360 0.813969 +vt 0.968360 0.932249 +vt 0.964226 0.813969 +vt 0.164041 0.800738 +vt 0.042974 0.790146 +vt 0.164041 0.790146 +vt 0.164041 0.807903 +vt 0.042974 0.800738 +vt 0.164041 0.818495 +vt 0.042974 0.807903 +vt 0.254220 0.944448 +vt 0.264812 0.871705 +vt 0.264812 0.944448 +vt 0.247055 0.944448 +vt 0.254220 0.871705 +vt 0.236463 0.871705 +vt 0.247055 0.871705 +vt 0.964676 0.545087 +vt 0.968787 0.414521 +vt 0.968787 0.545087 +vt 0.956318 0.544701 +vt 0.964676 0.414521 +vt 0.952207 0.544701 +vt 0.956318 0.414135 +vt 0.969891 0.717617 +vt 0.974025 0.599337 +vt 0.974025 0.717617 +vt 0.961435 0.717142 +vt 0.969891 0.599337 +vt 0.957301 0.717142 +vt 0.961435 0.598863 +vt 0.788557 0.342401 +vt 0.812819 0.301526 +vt 0.812819 0.342401 +vt 0.278994 0.877789 +vt 0.295085 0.904987 +vt 0.278994 0.908872 +vt 0.788557 0.505899 +vt 0.807923 0.510795 +vt 0.793453 0.510795 +vt 0.788557 0.424150 +vt 0.807923 0.429046 +vt 0.793453 0.429046 +vt 0.807923 0.541878 +vt 0.812819 0.505899 +vt 0.812819 0.465024 +vt 0.807923 0.460128 +vt 0.807923 0.347297 +vt 0.812819 0.383275 +vt 0.807923 0.378379 +vt 0.053805 0.724653 +vt 0.004875 0.700391 +vt 0.812819 0.424150 +vt 0.441154 0.894220 +vt 0.453816 0.877765 +vt 0.452007 0.894220 +vt 0.305938 0.881675 +vt 0.295085 0.881675 +vt 0.199769 0.911472 +vt 0.210621 0.888160 +vt 0.210621 0.911472 +vt 0.293276 0.865220 +vt 0.307746 0.865220 +vt 0.441154 0.917532 +vt 0.453816 0.933986 +vt 0.439346 0.933986 +vt 0.226713 0.915357 +vt 0.226713 0.884275 +vt 0.468098 0.921417 +vt 0.468098 0.890334 +vt 0.212430 0.927926 +vt 0.197960 0.927926 +vt 0.199769 0.888160 +vt 0.212430 0.871705 +vt 0.305938 0.904987 +vt 0.293276 0.921441 +vt 0.793453 0.347297 +vt 0.788557 0.383275 +vt 0.788557 0.465024 +vt 0.788557 0.546774 +vt 0.822636 0.209756 +vt 0.846898 0.004875 +vt 0.846898 0.209756 +vt 0.906649 0.851070 +vt 0.912521 0.639770 +vt 0.912521 0.851070 +vt 0.950900 0.004875 +vt 0.941245 0.200163 +vt 0.941254 0.008907 +vt 0.885698 0.477803 +vt 0.885698 0.518678 +vt 0.876048 0.549953 +vt 0.921839 0.014469 +vt 0.931494 0.209758 +vt 0.921848 0.205726 +vt 0.691906 0.303921 +vt 0.730481 0.278991 +vt 0.701555 0.307917 +vt 0.691906 0.523212 +vt 0.701555 0.519216 +vt 0.730481 0.548141 +vt 0.875168 0.839089 +vt 0.846242 0.868015 +vt 0.654991 0.866900 +vt 0.987125 0.196128 +vt 0.992998 0.004875 +vt 0.992998 0.196128 +vt 0.989648 0.598863 +vt 0.983775 0.790116 +vt 0.983775 0.598863 +vt 0.906649 0.639770 +vt 0.912521 0.598863 +vt 0.906649 0.891977 +vt 0.912521 0.891977 +vt 0.342747 0.665374 +vt 0.336874 0.932293 +vt 0.336875 0.665374 +vt 0.366750 0.401078 +vt 0.362309 0.655506 +vt 0.362309 0.401057 +vt 0.371633 0.655527 +vt 0.371633 0.401078 +vt 0.380846 0.655551 +vt 0.376074 0.401102 +vt 0.380846 0.401102 +vt 0.333262 0.655585 +vt 0.328490 0.401010 +vt 0.333263 0.401010 +vt 0.347033 0.655506 +vt 0.347033 0.401057 +vt 0.342590 0.655566 +vt 0.337707 0.400920 +vt 0.342590 0.400977 +vt 0.337707 0.655624 +vt 0.376074 0.655551 +vt 0.370254 0.786441 +vt 0.380846 0.665374 +vt 0.380846 0.786441 +vt 0.363089 0.786441 +vt 0.370254 0.665374 +vt 0.352497 0.786441 +vt 0.363089 0.665374 +vt 0.495605 0.950507 +vt 0.506197 0.877765 +vt 0.506197 0.950507 +vt 0.488440 0.950507 +vt 0.495605 0.877765 +vt 0.477849 0.877765 +vt 0.488440 0.877765 +vt 0.173927 0.875817 +vt 0.043361 0.871705 +vt 0.173927 0.871705 +vt 0.173541 0.884175 +vt 0.043361 0.875816 +vt 0.173541 0.888286 +vt 0.042974 0.884174 +vt 0.973241 0.123629 +vt 0.977375 0.005350 +vt 0.977375 0.123629 +vt 0.964785 0.123155 +vt 0.973241 0.005350 +vt 0.960651 0.123155 +vt 0.964785 0.004875 +vt 0.322029 0.855470 +vt 0.311437 0.734403 +vt 0.322029 0.734403 +vt 0.311437 0.855470 +vt 0.304272 0.734403 +vt 0.304272 0.855470 +vt 0.293680 0.734403 +vt 0.911071 0.493804 +vt 0.921663 0.566546 +vt 0.911071 0.566546 +vt 0.921663 0.493804 +vt 0.928828 0.566546 +vt 0.939420 0.493804 +vt 0.939420 0.566546 +vt 0.968787 0.403998 +vt 0.964676 0.273431 +vt 0.968787 0.273431 +vt 0.964676 0.403998 +vt 0.956318 0.273818 +vt 0.956318 0.404384 +vt 0.952207 0.273818 +vt 0.977374 0.251660 +vt 0.973241 0.133380 +vt 0.977374 0.133380 +vt 0.973241 0.251660 +vt 0.964785 0.133855 +vt 0.964785 0.252134 +vt 0.960651 0.133855 +vt 0.322029 0.877789 +vt 0.322029 0.908872 +vt 0.793453 0.541878 +vt 0.793453 0.460128 +vt 0.793453 0.378379 +vt 0.183678 0.915357 +vt 0.183678 0.884275 +vt 0.425063 0.921417 +vt 0.425063 0.890334 +vt 0.452007 0.917532 +vt 0.209756 0.734404 +vt 0.947550 0.598863 +vt 0.866298 0.559552 +vt 0.866298 0.518676 +vt 0.856649 0.283031 +vt 0.866298 0.273431 +vt 0.866298 0.314306 +vt 0.866298 0.355180 +vt 0.866298 0.396055 +vt 0.932810 0.277463 +vt 0.774830 0.293365 +vt 0.453988 0.598863 +vt 0.645240 0.599977 +vt 0.453989 0.868015 +vt 0.515948 0.877765 +vt 0.984410 0.273431 +vt 0.901320 0.273431 +vt 0.928144 0.598863 +vt 0.716385 0.004956 +vt 0.678124 0.004936 +vt 0.033224 0.790146 +vt 0.173791 0.800738 +vt 0.954475 0.813495 +vt 0.964226 0.932249 +vt 0.042974 0.818495 +vt 0.236463 0.944447 +vt 0.952207 0.414135 +vt 0.957301 0.598863 +vt 0.788557 0.301526 +vt 0.004875 0.724653 +vt 0.439346 0.877765 +vt 0.197960 0.871705 +vt 0.307746 0.921441 +vt 0.822636 0.004875 +vt 0.950900 0.209756 +vt 0.876048 0.283031 +vt 0.885698 0.396057 +vt 0.885698 0.273431 +vt 0.885698 0.314306 +vt 0.885698 0.355181 +vt 0.885698 0.559553 +vt 0.885698 0.436928 +vt 0.931494 0.004875 +vt 0.726504 0.269322 +vt 0.726505 0.557811 +vt 0.654991 0.599977 +vt 0.875168 0.627788 +vt 0.846242 0.598863 +vt 0.987125 0.004875 +vt 0.989648 0.790116 +vt 0.906649 0.598863 +vt 0.342747 0.932293 +vt 0.366750 0.655527 +vt 0.328491 0.655585 +vt 0.352497 0.665374 +vt 0.477849 0.950507 +vt 0.042974 0.888286 +vt 0.960651 0.004875 +vt 0.293680 0.855470 +vt 0.928828 0.493804 +vt 0.952207 0.404384 +vt 0.960651 0.252134 +vt 0.774310 0.356785 +vt 0.778734 0.346051 +vt 0.778734 0.356785 +vt 0.774310 0.324583 +vt 0.778734 0.313849 +vt 0.778734 0.324583 +vt 0.774310 0.313849 +vt 0.778734 0.303115 +vt 0.774310 0.474859 +vt 0.778734 0.464125 +vt 0.778734 0.474859 +vt 0.774310 0.453391 +vt 0.778734 0.453391 +vt 0.774310 0.442657 +vt 0.778734 0.442657 +vt 0.774310 0.431923 +vt 0.778734 0.431923 +vt 0.774310 0.421189 +vt 0.778734 0.421189 +vt 0.778734 0.410455 +vt 0.774310 0.399721 +vt 0.778734 0.399721 +vt 0.778734 0.388987 +vt 0.774310 0.388987 +vt 0.778734 0.378253 +vt 0.774310 0.378253 +vt 0.778734 0.367519 +vt 0.774310 0.367519 +vt 0.774310 0.346051 +vt 0.778734 0.335317 +vt 0.774310 0.335317 +vt 0.380672 0.853280 +vt 0.389768 0.846563 +vt 0.391710 0.851049 +vt 0.397514 0.841314 +vt 0.401024 0.844732 +vt 0.402736 0.833547 +vt 0.407278 0.835359 +vt 0.409423 0.824311 +vt 0.404530 0.824367 +vt 0.407228 0.813279 +vt 0.402742 0.815203 +vt 0.400946 0.803966 +vt 0.397541 0.807463 +vt 0.389804 0.802292 +vt 0.391595 0.797762 +vt 0.380574 0.795668 +vt 0.380679 0.800538 +vt 0.371575 0.802462 +vt 0.369601 0.798003 +vt 0.363855 0.807771 +vt 0.360350 0.804352 +vt 0.354053 0.813669 +vt 0.358574 0.815517 +vt 0.351811 0.824674 +vt 0.356686 0.824637 +vt 0.358476 0.833755 +vt 0.354001 0.835677 +vt 0.363674 0.841469 +vt 0.360275 0.844968 +vt 0.371430 0.846637 +vt 0.369638 0.851175 +vt 0.380596 0.848390 +vt 0.990700 0.856431 +vt 0.995125 0.867165 +vt 0.990700 0.867165 +vt 0.990700 0.824229 +vt 0.995125 0.834963 +vt 0.990700 0.834963 +vt 0.990700 0.813495 +vt 0.995125 0.824229 +vt 0.990700 0.974504 +vt 0.995125 0.985238 +vt 0.990700 0.985238 +vt 0.990700 0.963771 +vt 0.995125 0.974504 +vt 0.995125 0.953036 +vt 0.995125 0.963771 +vt 0.990700 0.942302 +vt 0.990700 0.953037 +vt 0.990700 0.931569 +vt 0.995125 0.942302 +vt 0.990700 0.920835 +vt 0.995125 0.931569 +vt 0.995125 0.910101 +vt 0.995125 0.920835 +vt 0.990700 0.899367 +vt 0.990700 0.910101 +vt 0.990700 0.888633 +vt 0.995125 0.899367 +vt 0.990700 0.877899 +vt 0.995125 0.888633 +vt 0.995125 0.877899 +vt 0.990700 0.845697 +vt 0.995125 0.856431 +vt 0.995125 0.845697 +vt 0.358695 0.881542 +vt 0.352004 0.890628 +vt 0.354214 0.879611 +vt 0.363898 0.873817 +vt 0.360512 0.870301 +vt 0.371693 0.868708 +vt 0.369926 0.864155 +vt 0.380884 0.866994 +vt 0.380981 0.862102 +vt 0.392001 0.864382 +vt 0.401281 0.870726 +vt 0.390046 0.868860 +vt 0.402825 0.881899 +vt 0.407377 0.880158 +vt 0.409363 0.891190 +vt 0.402641 0.900280 +vt 0.407127 0.902214 +vt 0.397445 0.908018 +vt 0.400833 0.911528 +vt 0.391433 0.917673 +vt 0.380404 0.919707 +vt 0.389670 0.913130 +vt 0.371351 0.912975 +vt 0.369398 0.917446 +vt 0.363652 0.907727 +vt 0.360122 0.911100 +vt 0.358560 0.899918 +vt 0.354006 0.901666 +vt 0.356895 0.890716 +vt 0.404473 0.891090 +vt 0.380501 0.914823 +vt 0.774310 0.303115 +vt 0.774310 0.464125 +vt 0.774310 0.410455 +vt 0.995125 0.813495 +vt 0.397753 0.874096 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.0058 1.0000 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0058 -1.0000 +vn 0.0000 0.0058 1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.6709 -0.7415 +vn 0.0000 -0.6709 0.7415 +vn 0.0000 -0.7715 -0.6362 +vn 0.0000 0.7715 0.6362 +vn 0.0000 0.6709 0.7415 +vn 0.0000 -0.6709 -0.7415 +vn 0.0000 -0.7715 0.6362 +vn 0.0000 0.7715 -0.6362 +vn 0.9937 -0.1124 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.2361 -0.9717 +vn 0.0000 -0.2361 0.9717 +vn 0.0000 -0.0058 -1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9937 -0.1124 0.0000 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.7139 -0.0000 -0.7002 +vn 0.7139 -0.2680 -0.6469 +vn 0.7139 -0.4951 -0.4951 +vn 0.7139 -0.6469 -0.2680 +vn 0.7139 -0.7002 -0.0000 +vn 0.7139 -0.6469 0.2680 +vn 0.7139 -0.4951 0.4951 +vn 0.7139 -0.2680 0.6469 +vn 0.7139 0.0000 0.7002 +vn 0.7139 0.2680 0.6469 +vn 0.7139 0.4951 0.4951 +vn 0.7139 0.6469 0.2680 +vn 0.7139 0.7002 0.0000 +vn 0.7139 0.6469 -0.2680 +vn 0.7139 0.4951 -0.4951 +vn 0.7139 0.2680 -0.6469 +vn -0.7139 -0.2680 -0.6469 +vn -0.7139 -0.0000 -0.7002 +vn -0.7139 -0.4951 -0.4951 +vn -0.7139 -0.6469 -0.2680 +vn -0.7139 -0.7002 0.0000 +vn -0.7139 -0.6469 0.2680 +vn -0.7139 -0.4951 0.4951 +vn -0.7139 -0.2680 0.6469 +vn -0.7139 0.0000 0.7002 +vn -0.7139 0.2680 0.6469 +vn -0.7139 0.4951 0.4951 +vn -0.7139 0.6469 0.2680 +vn -0.7139 0.7002 0.0000 +vn -0.7139 0.6469 -0.2680 +vn -0.7139 0.4951 -0.4951 +vn -0.7139 0.2680 -0.6469 +s off +f 1/1/1 17/2/1 6/3/1 +f 179/4/2 12/5/2 11/6/2 +f 177/7/1 157/8/1 9/9/1 +f 178/10/3 9/11/3 10/12/3 +f 179/4/4 8/13/4 176/14/4 +f 3/15/5 8/16/5 5/17/5 +f 161/18/5 3/19/5 160/20/5 +f 2/21/5 10/22/5 9/23/5 +f 5/24/5 11/25/5 6/26/5 +f 6/26/5 12/27/5 1/28/5 +f 4/29/5 12/27/5 10/30/5 +f 17/31/5 18/32/5 13/33/5 +f 2/34/6 16/35/6 4/36/6 +f 5/37/7 13/38/7 3/39/7 +f 4/40/8 18/41/8 1/1/8 +f 6/3/9 14/42/9 5/43/9 +f 3/44/2 15/45/2 2/46/2 +f 33/47/2 38/48/2 31/49/2 +f 38/48/5 30/50/5 29/51/5 +f 25/52/1 19/53/1 21/54/1 +f 22/55/2 24/56/2 26/57/2 +f 34/58/5 31/49/5 32/59/5 +f 28/60/5 36/61/5 35/62/5 +f 26/57/2 27/63/2 28/60/2 +f 32/59/1 36/61/1 34/58/1 +f 25/52/1 30/50/1 23/64/1 +f 90/65/10 97/66/10 96/67/10 +f 94/68/5 98/69/5 97/66/5 +f 92/70/11 95/71/11 98/69/11 +f 99/72/10 93/73/10 89/74/10 +f 100/75/5 91/76/5 93/73/5 +f 91/76/11 102/77/11 87/78/11 +f 106/79/12 109/80/12 105/81/12 +f 110/82/5 107/83/5 109/80/5 +f 108/84/13 103/85/13 107/83/13 +f 114/86/14 117/87/14 113/88/14 +f 118/89/5 115/90/5 117/87/5 +f 116/91/15 111/92/15 115/90/15 +f 129/93/11 122/94/11 128/95/11 +f 130/96/5 126/97/5 129/93/5 +f 127/98/10 124/99/10 130/96/10 +f 125/100/11 131/101/11 121/102/11 +f 123/103/5 132/104/5 125/100/5 +f 123/103/10 134/105/10 133/106/10 +f 141/107/16 138/108/16 137/109/16 +f 139/110/5 142/111/5 141/107/5 +f 135/112/17 140/113/17 139/110/17 +f 149/114/18 146/115/18 145/116/18 +f 147/117/5 150/118/5 149/114/5 +f 143/119/19 148/120/19 147/117/19 +f 330/121/1 7/122/1 162/123/1 +f 151/124/20 164/125/20 152/126/20 +f 326/127/1 152/128/1 320/129/1 +f 328/130/1 154/131/1 322/132/1 +f 151/133/1 158/134/1 157/8/1 +f 154/131/1 159/135/1 153/136/1 +f 156/137/1 161/138/1 155/139/1 +f 180/140/21 10/141/21 12/5/21 +f 326/127/1 159/135/1 158/134/1 +f 328/130/1 161/138/1 160/142/1 +f 336/143/22 156/144/22 168/145/22 +f 331/146/1 164/125/1 163/147/1 +f 333/148/1 166/149/1 165/150/1 +f 331/146/23 151/151/23 319/152/23 +f 335/153/23 155/154/23 323/155/23 +f 153/156/20 166/149/20 154/157/20 +f 155/158/20 168/145/20 156/159/20 +f 333/148/23 153/160/23 321/161/23 +f 334/162/22 154/163/22 166/149/22 +f 332/164/22 152/165/22 164/125/22 +f 330/121/1 156/137/1 324/166/1 +f 329/167/1 155/139/1 161/138/1 +f 327/168/1 153/136/1 159/135/1 +f 325/169/1 151/133/1 157/8/1 +f 175/170/24 8/171/24 7/172/24 +f 185/173/1 169/174/1 174/175/1 +f 176/176/25 171/177/25 173/178/25 +f 326/179/25 325/180/25 170/181/25 +f 170/182/25 178/183/25 172/184/25 +f 179/185/25 173/186/25 174/187/25 +f 180/188/25 174/187/25 169/189/25 +f 172/190/25 180/188/25 169/189/25 +f 185/191/25 182/192/25 181/193/25 +f 184/194/6 170/195/6 172/196/6 +f 181/197/7 173/198/7 171/199/7 +f 186/200/8 172/201/8 169/174/8 +f 182/202/9 174/175/9 173/203/9 +f 183/204/2 171/205/2 170/206/2 +f 206/207/2 201/208/2 199/209/2 +f 198/210/25 206/207/25 197/211/25 +f 187/212/1 193/213/1 189/214/1 +f 192/215/2 190/216/2 194/217/2 +f 199/209/25 202/218/25 200/219/25 +f 204/220/25 196/221/25 203/222/25 +f 194/217/2 195/223/2 192/215/2 +f 204/220/1 200/219/1 202/218/1 +f 198/210/1 193/213/1 191/224/1 +f 265/225/10 258/226/10 264/227/10 +f 266/228/25 262/229/25 265/225/25 +f 263/230/11 260/231/11 266/228/11 +f 261/232/10 267/233/10 257/234/10 +f 259/235/25 268/236/25 261/232/25 +f 259/235/11 270/237/11 269/238/11 +f 277/239/12 274/240/12 273/241/12 +f 275/242/25 278/243/25 277/239/25 +f 271/244/13 276/245/13 275/242/13 +f 285/246/14 282/247/14 281/248/14 +f 283/249/25 286/250/25 285/246/25 +f 279/251/15 284/252/15 283/249/15 +f 290/253/11 297/254/11 296/255/11 +f 294/256/25 298/257/25 297/254/25 +f 292/258/10 295/259/10 298/257/10 +f 299/260/11 293/261/11 289/262/11 +f 300/263/25 291/264/25 293/261/25 +f 291/264/10 302/265/10 287/266/10 +f 306/267/16 309/268/16 305/269/16 +f 310/270/25 307/271/25 309/268/25 +f 308/272/17 303/273/17 307/271/17 +f 314/274/18 317/275/18 313/276/18 +f 318/277/25 315/278/25 317/275/25 +f 316/279/19 311/280/19 315/278/19 +f 332/164/26 319/281/26 320/282/26 +f 325/169/1 320/129/1 319/283/1 +f 327/168/1 322/132/1 321/284/1 +f 329/167/1 324/166/1 323/285/1 +f 334/162/26 321/286/26 322/287/26 +f 336/143/26 323/288/26 324/289/26 +f 335/153/1 168/145/1 167/290/1 +f 1/1/1 18/41/1 17/2/1 +f 179/4/2 180/140/2 12/5/2 +f 177/7/1 325/169/1 157/8/1 +f 178/10/3 177/291/3 9/11/3 +f 179/4/4 11/6/4 8/13/4 +f 3/15/5 7/292/5 8/16/5 +f 7/293/5 3/19/5 162/294/5 +f 3/19/5 2/295/5 160/20/5 +f 162/294/5 3/19/5 161/18/5 +f 2/295/5 9/296/5 157/297/5 +f 158/298/5 159/299/5 2/295/5 +f 159/299/5 160/20/5 2/295/5 +f 2/295/5 157/297/5 158/298/5 +f 2/21/5 4/300/5 10/22/5 +f 5/24/5 8/301/5 11/25/5 +f 6/26/5 11/25/5 12/27/5 +f 4/29/5 1/28/5 12/27/5 +f 16/302/5 15/303/5 18/32/5 +f 15/303/5 13/33/5 18/32/5 +f 13/33/5 14/304/5 17/31/5 +f 2/34/6 15/305/6 16/35/6 +f 5/37/7 14/306/7 13/38/7 +f 4/40/8 16/307/8 18/41/8 +f 6/3/9 17/2/9 14/42/9 +f 3/44/2 13/308/2 15/45/2 +f 33/47/2 37/309/2 38/48/2 +f 38/48/5 37/309/5 30/50/5 +f 25/52/1 23/64/1 19/53/1 +f 22/55/2 20/310/2 24/56/2 +f 34/58/5 33/47/5 31/49/5 +f 28/60/5 27/63/5 36/61/5 +f 26/57/2 24/56/2 27/63/2 +f 32/59/1 35/62/1 36/61/1 +f 25/52/1 29/51/1 30/50/1 +f 90/65/10 94/68/10 97/66/10 +f 94/68/5 92/70/5 98/69/5 +f 92/70/11 88/311/11 95/71/11 +f 99/72/10 100/75/10 93/73/10 +f 100/75/5 101/312/5 91/76/5 +f 91/76/11 101/312/11 102/77/11 +f 106/79/12 110/82/12 109/80/12 +f 110/82/5 108/84/5 107/83/5 +f 108/84/13 104/313/13 103/85/13 +f 114/86/14 118/89/14 117/87/14 +f 118/89/5 116/91/5 115/90/5 +f 116/91/15 112/314/15 111/92/15 +f 129/93/11 126/97/11 122/94/11 +f 130/96/5 124/99/5 126/97/5 +f 127/98/10 120/315/10 124/99/10 +f 125/100/11 132/104/11 131/101/11 +f 123/103/5 133/106/5 132/104/5 +f 123/103/10 119/316/10 134/105/10 +f 141/107/16 142/111/16 138/108/16 +f 139/110/5 140/113/5 142/111/5 +f 135/112/17 136/317/17 140/113/17 +f 149/114/18 150/118/18 146/115/18 +f 147/117/5 148/120/5 150/118/5 +f 143/119/19 144/318/19 148/120/19 +f 330/121/1 175/319/1 7/122/1 +f 151/124/20 163/147/20 164/125/20 +f 326/127/1 158/134/1 152/128/1 +f 328/130/1 160/142/1 154/131/1 +f 151/133/1 152/128/1 158/134/1 +f 154/131/1 160/142/1 159/135/1 +f 156/137/1 162/123/1 161/138/1 +f 180/140/21 178/320/21 10/141/21 +f 326/127/1 327/168/1 159/135/1 +f 328/130/1 329/167/1 161/138/1 +f 336/143/22 324/321/22 156/144/22 +f 331/146/1 332/164/1 164/125/1 +f 333/148/1 334/162/1 166/149/1 +f 331/146/23 163/147/23 151/151/23 +f 335/153/23 167/290/23 155/154/23 +f 153/156/20 165/150/20 166/149/20 +f 155/158/20 167/290/20 168/145/20 +f 333/148/23 165/150/23 153/160/23 +f 334/162/22 322/322/22 154/163/22 +f 332/164/22 320/323/22 152/165/22 +f 330/121/1 162/123/1 156/137/1 +f 329/167/1 323/285/1 155/139/1 +f 327/168/1 321/284/1 153/136/1 +f 325/169/1 319/283/1 151/133/1 +f 175/170/24 176/324/24 8/171/24 +f 185/173/1 186/200/1 169/174/1 +f 176/176/25 175/325/25 171/177/25 +f 170/181/25 171/326/25 328/327/25 +f 171/326/25 175/328/25 330/329/25 +f 330/329/25 329/330/25 171/326/25 +f 329/330/25 328/327/25 171/326/25 +f 325/180/25 177/331/25 170/181/25 +f 328/327/25 327/332/25 170/181/25 +f 327/332/25 326/179/25 170/181/25 +f 170/182/25 177/333/25 178/183/25 +f 179/185/25 176/334/25 173/186/25 +f 180/188/25 179/185/25 174/187/25 +f 172/190/25 178/335/25 180/188/25 +f 181/193/25 183/336/25 186/337/25 +f 183/336/25 184/338/25 186/337/25 +f 186/337/25 185/191/25 181/193/25 +f 184/194/6 183/339/6 170/195/6 +f 181/197/7 182/340/7 173/198/7 +f 186/200/8 184/341/8 172/201/8 +f 182/202/9 185/173/9 174/175/9 +f 183/204/2 181/342/2 171/205/2 +f 206/207/2 205/343/2 201/208/2 +f 198/210/25 205/343/25 206/207/25 +f 187/212/1 191/224/1 193/213/1 +f 192/215/2 188/344/2 190/216/2 +f 199/209/25 201/208/25 202/218/25 +f 204/220/25 195/223/25 196/221/25 +f 194/217/2 196/221/2 195/223/2 +f 204/220/1 203/222/1 200/219/1 +f 198/210/1 197/211/1 193/213/1 +f 265/225/10 262/229/10 258/226/10 +f 266/228/25 260/231/25 262/229/25 +f 263/230/11 256/345/11 260/231/11 +f 261/232/10 268/236/10 267/233/10 +f 259/235/25 269/238/25 268/236/25 +f 259/235/11 255/346/11 270/237/11 +f 277/239/12 278/243/12 274/240/12 +f 275/242/25 276/245/25 278/243/25 +f 271/244/13 272/347/13 276/245/13 +f 285/246/14 286/250/14 282/247/14 +f 283/249/25 284/252/25 286/250/25 +f 279/251/15 280/348/15 284/252/15 +f 290/253/11 294/256/11 297/254/11 +f 294/256/25 292/258/25 298/257/25 +f 292/258/10 288/349/10 295/259/10 +f 299/260/11 300/263/11 293/261/11 +f 300/263/25 301/350/25 291/264/25 +f 291/264/10 301/350/10 302/265/10 +f 306/267/16 310/270/16 309/268/16 +f 310/270/25 308/272/25 307/271/25 +f 308/272/17 304/351/17 303/273/17 +f 314/274/18 318/277/18 317/275/18 +f 318/277/25 316/279/25 315/278/25 +f 316/279/19 312/352/19 311/280/19 +f 332/164/26 331/146/26 319/281/26 +f 325/169/1 326/127/1 320/129/1 +f 327/168/1 328/130/1 322/132/1 +f 329/167/1 330/121/1 324/166/1 +f 334/162/26 333/148/26 321/286/26 +f 336/143/26 335/153/26 323/288/26 +f 335/153/1 336/143/1 168/145/1 +s 1 +f 86/353/27 39/354/10 54/355/27 +f 60/356/8 42/357/28 41/358/8 +f 62/359/28 43/360/1 42/357/28 +f 64/361/1 44/362/29 43/363/1 +f 44/362/29 68/364/9 45/365/9 +f 45/365/9 70/366/30 46/367/30 +f 46/367/30 72/368/11 47/369/11 +f 47/369/11 74/370/31 48/371/31 +f 74/370/31 49/372/21 48/371/31 +f 49/372/21 78/373/32 50/374/32 +f 78/373/32 51/375/2 50/374/32 +f 80/376/2 52/377/33 51/375/2 +f 82/378/33 53/379/4 52/377/33 +f 84/380/4 54/355/27 53/379/4 +f 56/381/10 40/382/34 39/354/10 +f 58/383/34 41/358/8 40/382/34 +f 56/384/35 57/385/36 58/386/36 +f 58/386/36 59/387/37 60/388/37 +f 60/388/37 61/389/38 62/390/38 +f 64/391/39 61/389/38 63/392/39 +f 66/393/40 63/392/39 65/394/40 +f 68/395/41 65/394/40 67/396/41 +f 68/395/41 69/397/42 70/398/42 +f 72/399/43 69/397/42 71/400/43 +f 72/399/43 73/401/44 74/402/44 +f 74/402/44 75/403/45 76/404/45 +f 78/405/46 75/403/45 77/406/46 +f 80/407/47 77/406/46 79/408/47 +f 80/407/47 81/409/48 82/410/48 +f 82/410/48 83/411/49 84/412/49 +f 84/412/49 85/413/50 86/414/50 +f 86/414/50 55/415/35 56/384/35 +f 63/392/5 59/387/5 75/403/5 +f 207/416/10 254/417/27 222/418/27 +f 210/419/28 228/420/8 209/421/8 +f 211/422/1 230/423/28 210/419/28 +f 212/424/29 232/425/1 211/426/1 +f 213/427/9 234/428/29 212/424/29 +f 213/427/9 238/429/30 236/430/9 +f 215/431/11 238/429/30 214/432/30 +f 216/433/31 240/434/11 215/431/11 +f 217/435/21 242/436/31 216/433/31 +f 217/435/21 246/437/32 244/438/21 +f 219/439/2 246/437/32 218/440/32 +f 220/441/33 248/442/2 219/439/2 +f 221/443/4 250/444/33 220/441/33 +f 222/418/27 252/445/4 221/443/4 +f 208/446/34 224/447/10 207/416/10 +f 209/421/8 226/448/34 208/446/34 +f 225/449/51 224/450/52 226/451/51 +f 227/452/53 226/451/51 228/453/53 +f 229/454/54 228/453/53 230/455/54 +f 231/456/55 230/455/54 232/457/55 +f 234/458/56 231/456/55 232/457/55 +f 236/459/57 233/460/56 234/458/56 +f 237/461/58 236/459/57 238/462/58 +f 240/463/59 237/461/58 238/462/58 +f 241/464/60 240/463/59 242/465/60 +f 243/466/61 242/465/60 244/467/61 +f 246/468/62 243/466/61 244/467/61 +f 248/469/63 245/470/62 246/468/62 +f 249/471/64 248/469/63 250/472/64 +f 251/473/65 250/472/64 252/474/65 +f 253/475/66 252/474/65 254/476/66 +f 223/477/52 254/476/66 224/450/52 +f 239/478/25 247/479/25 223/477/25 +f 86/353/27 56/381/10 39/354/10 +f 60/356/8 62/359/28 42/357/28 +f 62/359/28 64/480/1 43/360/1 +f 64/361/1 66/481/29 44/362/29 +f 44/362/29 66/481/29 68/364/9 +f 45/365/9 68/364/9 70/366/30 +f 46/367/30 70/366/30 72/368/11 +f 47/369/11 72/368/11 74/370/31 +f 74/370/31 76/482/21 49/372/21 +f 49/372/21 76/482/21 78/373/32 +f 78/373/32 80/376/2 51/375/2 +f 80/376/2 82/378/33 52/377/33 +f 82/378/33 84/380/4 53/379/4 +f 84/380/4 86/353/27 54/355/27 +f 56/381/10 58/383/34 40/382/34 +f 58/383/34 60/356/8 41/358/8 +f 56/384/35 55/415/35 57/385/36 +f 58/386/36 57/385/36 59/387/37 +f 60/388/37 59/387/37 61/389/38 +f 64/391/39 62/390/38 61/389/38 +f 66/393/40 64/391/39 63/392/39 +f 68/395/41 66/393/40 65/394/40 +f 68/395/41 67/396/41 69/397/42 +f 72/399/43 70/398/42 69/397/42 +f 72/399/43 71/400/43 73/401/44 +f 74/402/44 73/401/44 75/403/45 +f 78/405/46 76/404/45 75/403/45 +f 80/407/47 78/405/46 77/406/46 +f 80/407/47 79/408/47 81/409/48 +f 82/410/48 81/409/48 83/411/49 +f 84/412/49 83/411/49 85/413/50 +f 86/414/50 85/413/50 55/415/35 +f 59/387/5 57/385/5 55/415/5 +f 55/415/5 85/413/5 83/411/5 +f 83/411/5 81/409/5 79/408/5 +f 79/408/5 77/406/5 83/411/5 +f 77/406/5 75/403/5 83/411/5 +f 75/403/5 73/401/5 67/396/5 +f 73/401/5 71/400/5 67/396/5 +f 71/400/5 69/397/5 67/396/5 +f 67/396/5 65/394/5 63/392/5 +f 63/392/5 61/389/5 59/387/5 +f 59/387/5 55/415/5 75/403/5 +f 55/415/5 83/411/5 75/403/5 +f 67/396/5 63/392/5 75/403/5 +f 207/416/10 224/447/10 254/417/27 +f 210/419/28 230/423/28 228/420/8 +f 211/422/1 232/483/1 230/423/28 +f 212/424/29 234/428/29 232/425/1 +f 213/427/9 236/430/9 234/428/29 +f 213/427/9 214/432/30 238/429/30 +f 215/431/11 240/434/11 238/429/30 +f 216/433/31 242/436/31 240/434/11 +f 217/435/21 244/438/21 242/436/31 +f 217/435/21 218/440/32 246/437/32 +f 219/439/2 248/442/2 246/437/32 +f 220/441/33 250/444/33 248/442/2 +f 221/443/4 252/445/4 250/444/33 +f 222/418/27 254/417/27 252/445/4 +f 208/446/34 226/448/34 224/447/10 +f 209/421/8 228/420/8 226/448/34 +f 225/449/51 223/477/52 224/450/52 +f 227/452/53 225/449/51 226/451/51 +f 229/454/54 227/452/53 228/453/53 +f 231/456/55 229/454/54 230/455/54 +f 234/458/56 233/460/56 231/456/55 +f 236/459/57 235/484/57 233/460/56 +f 237/461/58 235/484/57 236/459/57 +f 240/463/59 239/478/59 237/461/58 +f 241/464/60 239/478/59 240/463/59 +f 243/466/61 241/464/60 242/465/60 +f 246/468/62 245/470/62 243/466/61 +f 248/469/63 247/479/63 245/470/62 +f 249/471/64 247/479/63 248/469/63 +f 251/473/65 249/471/64 250/472/64 +f 253/475/66 251/473/65 252/474/65 +f 223/477/52 253/475/66 254/476/66 +f 223/477/25 225/449/25 227/452/25 +f 227/452/25 229/454/25 223/477/25 +f 229/454/25 231/456/25 223/477/25 +f 231/456/25 233/460/25 239/478/25 +f 233/460/25 235/484/25 239/478/25 +f 235/484/25 237/461/25 239/478/25 +f 239/478/25 241/464/25 247/479/25 +f 241/464/25 243/466/25 247/479/25 +f 243/466/25 245/470/25 247/479/25 +f 247/479/25 249/471/25 251/473/25 +f 251/473/25 253/475/25 223/477/25 +f 247/479/25 251/473/25 223/477/25 +f 223/477/25 231/456/25 239/478/25 +o frame +v -0.250000 0.082265 1.245283 +v -0.250000 0.082265 -1.245283 +v 0.250000 0.082265 1.245283 +v 0.250000 0.082265 -1.245283 +v -0.250000 -0.250000 -1.500000 +v -0.250000 -0.250000 1.500000 +v -0.250000 3.000000 1.500000 +v -0.250000 3.000000 -1.500000 +v 0.250000 3.000000 -1.500000 +v 0.250000 -0.250000 -1.500000 +v 0.250000 -0.250000 1.500000 +v 0.250000 3.000000 1.500000 +v -0.250000 2.476200 0.916753 +v -0.250000 2.147670 1.245283 +v -0.250000 2.147670 -1.245283 +v -0.250000 2.476200 -0.916753 +v 0.250000 2.247670 1.245283 +v 0.250000 2.476200 1.016753 +v 0.250000 2.476200 -1.016753 +v 0.250000 2.247670 -1.245283 +v 0.125956 2.528616 1.138464 +v -0.125956 2.528616 1.138464 +v -0.125956 0.041706 1.485400 +v 0.125956 0.041706 1.485400 +v -0.125956 0.041706 -1.485400 +v 0.125956 0.041706 -1.485400 +v 0.125956 0.082265 -1.245283 +v -0.125956 0.082265 -1.245283 +v 0.125956 0.082265 1.245283 +v -0.125956 0.082265 1.245283 +v -0.125956 2.476200 0.916753 +v 0.125956 2.476200 1.016753 +v 0.125956 2.247670 1.245283 +v -0.125956 2.147670 1.245283 +v -0.125956 2.147670 -1.245283 +v 0.125956 2.247670 -1.245283 +v 0.125956 2.476200 -1.016753 +v -0.125956 2.476200 -0.916753 +v 0.125956 2.169381 1.490198 +v -0.125956 2.169381 1.490198 +v -0.125956 2.169381 -1.490198 +v 0.125956 2.169381 -1.490198 +v 0.125956 2.528616 -1.138464 +v -0.125956 2.528616 -1.138464 +vt 0.252094 0.849975 +vt 0.042974 0.861955 +vt 0.042974 0.849975 +vt 0.053162 0.391169 +vt 0.367026 0.342882 +vt 0.367026 0.391169 +vt 0.900109 0.004875 +vt 0.912088 0.204338 +vt 0.900109 0.204338 +vt 0.053162 0.053162 +vt 0.367026 0.004876 +vt 0.367026 0.053162 +vt 0.415312 0.053162 +vt 0.415313 0.342882 +vt 0.004875 0.342883 +vt 0.053162 0.342883 +vt 0.286651 0.425519 +vt 0.318739 0.690640 +vt 0.286651 0.666041 +vt 0.226812 0.768416 +vt 0.271682 0.780396 +vt 0.226812 0.780396 +vt 0.856649 0.036087 +vt 0.868628 0.232469 +vt 0.856648 0.232469 +vt 0.103747 0.099831 +vt 0.334938 0.077761 +vt 0.334938 0.318284 +vt 0.125817 0.077761 +vt 0.125817 0.318284 +vt 0.055461 0.457246 +vt 0.004875 0.690640 +vt 0.004875 0.400920 +vt 0.087188 0.425519 +vt 0.318739 0.400920 +vt 0.055460 0.634314 +vt 0.087188 0.666041 +vt 0.103747 0.296214 +vt 0.049744 0.780396 +vt 0.049744 0.768416 +vt 0.004875 0.768416 +vt 0.004875 0.780396 +vt 0.414924 0.449983 +vt 0.390596 0.400920 +vt 0.414924 0.400920 +vt 0.856648 0.263681 +vt 0.868628 0.263681 +vt 0.923050 0.472894 +vt 0.911071 0.273431 +vt 0.923050 0.273431 +vt 0.868628 0.004875 +vt 0.868628 0.036087 +vt 0.890358 0.245395 +vt 0.878378 0.004875 +vt 0.890358 0.004875 +vt 0.896898 0.839383 +vt 0.884919 0.598863 +vt 0.896898 0.598863 +vt 0.430107 0.236244 +vt 0.425246 0.039582 +vt 0.430253 0.060865 +vt 0.461883 0.029415 +vt 0.459928 0.004875 +vt 0.664327 0.329425 +vt 0.459896 0.302054 +vt 0.668618 0.304997 +vt 0.664320 0.561413 +vt 0.459690 0.589112 +vt 0.452012 0.564649 +vt 0.461669 0.267743 +vt 0.425063 0.257528 +vt 0.668618 0.585734 +vt 0.042974 0.840225 +vt 0.252094 0.828245 +vt 0.252094 0.840225 +vt 0.414924 0.718936 +vt 0.390596 0.669873 +vt 0.414924 0.669873 +vt 0.822570 0.301526 +vt 0.846898 0.507007 +vt 0.822570 0.507007 +vt 0.390596 0.449983 +vt 0.812885 0.291775 +vt 0.788557 0.004875 +vt 0.812885 0.004875 +vt 0.764559 0.508596 +vt 0.740232 0.303115 +vt 0.764559 0.303115 +vt 0.452216 0.326499 +vt 0.425247 0.336687 +vt 0.664083 0.032287 +vt 0.668374 0.288821 +vt 0.664077 0.264516 +vt 0.425063 0.554433 +vt 0.430094 0.542765 +vt 0.430257 0.348360 +vt 0.668374 0.007875 +vt 0.459720 0.292303 +vt 0.252094 0.861955 +vt 0.912088 0.004875 +vt 0.053162 0.004875 +vt 0.004875 0.053162 +vt 0.271682 0.768416 +vt 0.911071 0.472894 +vt 0.856649 0.004875 +vt 0.878379 0.245395 +vt 0.884919 0.839383 +vt 0.042974 0.828245 +vt 0.390596 0.718936 +vt 0.846898 0.301526 +vt 0.788557 0.291775 +vt 0.740231 0.508596 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.6996 0.7145 +vn 0.0000 -0.6996 -0.7145 +vn 0.0000 0.0023 -1.0000 +vn 0.0000 0.0023 1.0000 +s off +f 339/485/67 369/486/67 353/487/67 +f 344/488/67 346/489/67 341/490/67 +f 371/491/68 338/492/68 364/493/68 +f 348/494/68 342/495/68 347/496/68 +f 346/489/69 342/497/69 341/498/69 +f 344/499/70 348/494/70 345/500/70 +f 338/501/71 342/502/71 337/503/71 +f 367/504/72 350/505/72 349/506/72 +f 354/507/69 373/508/69 355/509/69 +f 354/510/73 345/500/73 348/494/73 +f 339/511/73 346/489/73 340/512/73 +f 353/513/73 347/496/73 339/511/73 +f 356/514/73 346/489/73 345/500/73 +f 352/515/71 343/516/71 344/517/71 +f 351/518/71 341/519/71 338/501/71 +f 349/520/71 350/521/71 343/516/71 +f 351/518/71 352/515/71 344/517/71 +f 353/513/73 354/510/73 348/494/73 +f 355/522/73 356/514/73 345/500/73 +f 367/504/69 352/523/69 374/524/69 +f 371/525/74 352/523/74 351/526/74 +f 350/521/71 342/502/71 343/516/71 +f 379/527/75 377/528/75 378/529/75 +f 356/530/74 373/508/74 372/531/74 +f 366/532/67 350/533/67 370/534/67 +f 354/507/72 369/535/72 368/536/72 +f 365/537/70 340/538/70 363/539/70 +f 337/540/70 364/541/70 338/542/70 +f 374/543/73 358/544/73 367/545/73 +f 370/546/73 358/544/73 376/547/73 +f 363/548/71 378/549/71 362/550/71 +f 365/551/71 375/552/71 369/553/71 +f 371/554/73 380/555/73 374/543/73 +f 363/548/71 360/556/71 365/551/71 +f 356/557/68 363/558/68 340/559/68 +f 375/560/76 358/561/76 357/562/76 +f 376/563/77 360/564/77 359/565/77 +f 380/566/69 357/562/69 358/561/69 +f 362/567/70 359/568/70 360/569/70 +f 361/570/78 378/571/78 377/572/78 +f 372/573/71 379/574/71 378/549/71 +f 366/575/73 361/576/73 364/577/73 +f 369/553/71 357/578/71 368/579/71 +f 373/580/71 357/578/71 379/574/71 +f 366/575/73 376/547/73 359/581/73 +f 364/577/73 377/582/73 371/554/73 +f 339/485/67 365/583/67 369/486/67 +f 344/488/67 345/500/67 346/489/67 +f 371/491/68 351/584/68 338/492/68 +f 348/494/68 343/585/68 342/495/68 +f 346/489/69 347/496/69 342/497/69 +f 344/499/70 343/586/70 348/494/70 +f 338/501/71 341/519/71 342/502/71 +f 367/504/72 370/587/72 350/505/72 +f 354/507/69 368/536/69 373/508/69 +f 354/510/73 355/522/73 345/500/73 +f 339/511/73 347/496/73 346/489/73 +f 353/513/73 348/494/73 347/496/73 +f 356/514/73 340/512/73 346/489/73 +f 352/515/71 349/520/71 343/516/71 +f 351/518/71 344/517/71 341/519/71 +f 367/504/69 349/506/69 352/523/69 +f 371/525/74 374/524/74 352/523/74 +f 350/521/71 337/503/71 342/502/71 +f 379/527/75 380/566/75 377/528/75 +f 356/530/74 355/509/74 373/508/74 +f 366/532/67 337/588/67 350/533/67 +f 354/507/72 353/589/72 369/535/72 +f 365/537/70 339/590/70 340/538/70 +f 337/540/70 366/591/70 364/541/70 +f 374/543/73 380/555/73 358/544/73 +f 370/546/73 367/545/73 358/544/73 +f 363/548/71 372/573/71 378/549/71 +f 365/551/71 360/556/71 375/552/71 +f 371/554/73 377/582/73 380/555/73 +f 363/548/71 362/550/71 360/556/71 +f 356/557/68 372/592/68 363/558/68 +f 375/560/76 376/593/76 358/561/76 +f 376/563/77 375/594/77 360/564/77 +f 380/566/69 379/527/69 357/562/69 +f 362/567/70 361/595/70 359/568/70 +f 361/570/78 362/596/78 378/571/78 +f 372/573/71 373/580/71 379/574/71 +f 366/575/73 359/581/73 361/576/73 +f 369/553/71 375/552/71 357/578/71 +f 373/580/71 368/579/71 357/578/71 +f 366/575/73 370/546/73 376/547/73 +f 364/577/73 361/576/73 377/582/73 +o decal +v -0.074985 1.303216 -0.467952 +v -0.074985 1.303216 0.467952 +v -0.074985 2.239120 -0.467952 +v -0.074985 2.239120 0.467952 +v 0.074985 1.303216 0.467952 +v 0.074985 1.303216 -0.467952 +v 0.074985 2.239120 0.467952 +v 0.074985 2.239120 -0.467952 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +s off +f 382/597/79 383/598/79 381/599/79 +f 386/600/80 387/601/80 385/602/80 +f 382/597/79 384/603/79 383/598/79 +f 386/600/80 388/604/80 387/601/80 diff --git a/src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj b/src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj new file mode 100644 index 000000000..66bd1e8ce --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj @@ -0,0 +1,2312 @@ +# Blender v2.92.0 OBJ File: 'qe_sliding_door.blend' +# www.blender.org +o leftDoor +v 0.030935 0.772401 0.150776 +v 0.030935 0.972661 0.150776 +v 0.075000 0.088688 0.911312 +v 0.075000 1.911312 0.911312 +v 0.075000 0.088688 0.088688 +v 0.075000 1.911312 0.088688 +v 0.075000 2.000000 1.000000 +v 0.075000 0.000000 1.000000 +v 0.012500 1.861312 0.861312 +v 0.012500 0.138688 0.861312 +v 0.012500 0.138688 0.138688 +v 0.012500 1.861312 0.138688 +v 0.012500 0.733440 0.267519 +v 0.012500 0.988637 0.267519 +v 0.075000 0.655676 0.088688 +v 0.075000 1.166712 0.088688 +v 0.012500 1.166712 0.138688 +v 0.012500 0.655676 0.138688 +v 0.075000 0.733440 0.217519 +v 0.075000 0.988637 0.217519 +v 0.026895 0.753307 0.256002 +v 0.023223 0.758010 0.253518 +v 0.026895 0.753307 0.872828 +v 0.023223 0.758010 0.875312 +v 0.026895 0.834000 0.872828 +v 0.023223 0.829297 0.875312 +v 0.026895 0.834000 0.256002 +v 0.023223 0.829297 0.253518 +v 0.012500 0.753307 0.861312 +v 0.011573 0.758010 0.866015 +v 0.012500 0.753307 0.267519 +v 0.011573 0.758010 0.262816 +v 0.012500 0.834000 0.861312 +v 0.011573 0.829297 0.866015 +v 0.012500 0.834000 0.267519 +v 0.011573 0.829297 0.262816 +v 0.026895 0.873731 0.256002 +v 0.023223 0.878434 0.253518 +v 0.026895 0.873731 0.872828 +v 0.023223 0.878434 0.875312 +v 0.026895 0.954424 0.872828 +v 0.023223 0.949722 0.875312 +v 0.026895 0.954424 0.256002 +v 0.023223 0.949722 0.253518 +v 0.012500 0.873731 0.861312 +v 0.011573 0.878434 0.866015 +v 0.012500 0.873731 0.267519 +v 0.011573 0.878434 0.262816 +v 0.012500 0.954424 0.861312 +v 0.011573 0.949722 0.866015 +v 0.012500 0.954424 0.267519 +v 0.011573 0.949722 0.262816 +v 0.023223 0.758010 0.252557 +v 0.023223 0.829297 0.252557 +v 0.023223 0.758010 0.880367 +v 0.023223 0.829297 0.880367 +v 0.023223 0.878434 0.252557 +v 0.023223 0.949722 0.252557 +v 0.023223 0.878434 0.880367 +v 0.023223 0.949722 0.880367 +v 0.075000 0.772401 0.150776 +v 0.075000 0.972661 0.150776 +v -0.030935 0.772401 0.150776 +v -0.030935 0.972661 0.150776 +v -0.075000 0.088688 0.911312 +v -0.075000 1.911312 0.911312 +v -0.075000 0.088688 0.088688 +v -0.075000 1.911312 0.088688 +v -0.075000 2.000000 1.000000 +v -0.075000 0.000000 1.000000 +v -0.012500 1.861312 0.861312 +v -0.012500 0.138688 0.861312 +v -0.012500 0.138688 0.138688 +v -0.012500 1.861312 0.138688 +v -0.012500 0.733440 0.267519 +v -0.012500 0.988637 0.267519 +v -0.075000 0.655676 0.088688 +v -0.075000 1.166712 0.088688 +v -0.012500 1.166712 0.138688 +v -0.012500 0.655676 0.138688 +v -0.075000 0.733440 0.217519 +v -0.075000 0.988637 0.217519 +v -0.026895 0.753307 0.256002 +v -0.023223 0.758010 0.253518 +v -0.026895 0.753307 0.872828 +v -0.023223 0.758010 0.875312 +v -0.026895 0.834000 0.872828 +v -0.023223 0.829297 0.875312 +v -0.026895 0.834000 0.256002 +v -0.023223 0.829297 0.253518 +v -0.012500 0.753307 0.861312 +v -0.011573 0.758010 0.866015 +v -0.012500 0.753307 0.267519 +v -0.011573 0.758010 0.262816 +v -0.012500 0.834000 0.861312 +v -0.011573 0.829297 0.866015 +v -0.012500 0.834000 0.267519 +v -0.011573 0.829297 0.262816 +v -0.026895 0.873731 0.256002 +v -0.023223 0.878434 0.253518 +v -0.026895 0.873731 0.872828 +v -0.023223 0.878434 0.875312 +v -0.026895 0.954424 0.872828 +v -0.023223 0.949722 0.875312 +v -0.026895 0.954424 0.256002 +v -0.023223 0.949722 0.253518 +v -0.012500 0.873731 0.861312 +v -0.011573 0.878434 0.866015 +v -0.012500 0.873731 0.267519 +v -0.011573 0.878434 0.262816 +v -0.012500 0.954424 0.861312 +v -0.011573 0.949722 0.866015 +v -0.012500 0.954424 0.267519 +v -0.011573 0.949722 0.262816 +v -0.023223 0.758010 0.252557 +v -0.023223 0.829297 0.252557 +v -0.023223 0.758010 0.880367 +v -0.023223 0.829297 0.880367 +v -0.023223 0.878434 0.252557 +v -0.023223 0.949722 0.252557 +v -0.023223 0.878434 0.880367 +v -0.023223 0.949722 0.880367 +v -0.075000 0.772401 0.150776 +v -0.075000 0.972661 0.150776 +v 0.065000 0.000000 0.000000 +v 0.075000 0.000000 0.010000 +v 0.065000 2.000000 0.000000 +v 0.075000 2.000000 0.010000 +v 0.065000 0.655676 0.000000 +v 0.075000 0.655676 0.010000 +v 0.065000 1.166712 0.000000 +v 0.075000 1.166712 0.010000 +v 0.065000 0.733440 0.000000 +v 0.075000 0.733440 0.010000 +v 0.065000 0.988637 0.000000 +v 0.075000 0.988637 0.010000 +v 0.065000 0.982661 0.000000 +v 0.075000 0.972661 0.010000 +v 0.065000 0.762401 0.000000 +v 0.075000 0.772401 0.010000 +v 0.020935 0.982661 0.000000 +v 0.030935 0.972661 0.010000 +v 0.020935 0.762401 0.000000 +v 0.030935 0.772401 0.010000 +v -0.065000 0.000000 0.000000 +v -0.075000 0.000000 0.010000 +v -0.065000 2.000000 0.000000 +v -0.075000 2.000000 0.010000 +v -0.065000 0.655676 0.000000 +v -0.075000 0.655676 0.010000 +v -0.065000 1.166712 0.000000 +v -0.075000 1.166712 0.010000 +v -0.065000 0.733440 0.000000 +v -0.075000 0.733440 0.010000 +v -0.065000 0.988637 0.000000 +v -0.075000 0.988637 0.010000 +v -0.065000 0.982661 0.000000 +v -0.075000 0.972661 0.010000 +v -0.065000 0.762401 0.000000 +v -0.075000 0.772401 0.010000 +v -0.020935 0.982661 0.000000 +v -0.030935 0.972661 0.010000 +v -0.020935 0.762401 0.000000 +v -0.030935 0.772401 0.010000 +v -0.075000 0.954424 0.911312 +v -0.075000 0.753307 0.911312 +v 0.075000 0.954424 0.911312 +v 0.075000 0.753307 0.911312 +v 0.075000 0.954424 1.000000 +v 0.075000 0.753307 1.000000 +v -0.075000 0.954424 1.000000 +v -0.075000 0.753307 1.000000 +v -0.053113 0.981602 0.127840 +v -0.053113 0.753528 0.127840 +v -0.066310 0.981602 0.120221 +v -0.066310 0.753528 0.120221 +v -0.066310 0.981602 0.104982 +v -0.066310 0.753528 0.104982 +v -0.053113 0.981602 0.097362 +v -0.053113 0.753528 0.097362 +v -0.039915 0.981602 0.104982 +v -0.039915 0.753528 0.104982 +v -0.039915 0.981602 0.120221 +v -0.039915 0.753528 0.120221 +v -0.032467 0.940925 -0.136816 +v -0.032467 0.927874 -0.136816 +v -0.032467 0.940925 0.131365 +v -0.032467 0.927874 0.131365 +v -0.073758 0.940925 -0.136816 +v -0.073758 0.927874 -0.136816 +v -0.073758 0.940925 0.131365 +v -0.073758 0.927874 0.131365 +v -0.032467 0.818858 -0.136816 +v -0.032467 0.805807 -0.136816 +v -0.032467 0.818858 0.131365 +v -0.032467 0.805807 0.131365 +v -0.073758 0.818858 -0.136816 +v -0.073758 0.805807 -0.136816 +v -0.073758 0.818858 0.131365 +v -0.073758 0.805807 0.131365 +v -0.053113 0.939957 -0.088549 +v -0.053113 0.813798 -0.088550 +v -0.071903 0.939957 -0.099398 +v -0.071903 0.813798 -0.099398 +v -0.071903 0.939957 -0.121096 +v -0.071903 0.813798 -0.121096 +v -0.053113 0.939957 -0.131945 +v -0.053113 0.813798 -0.131945 +v -0.034322 0.939957 -0.121096 +v -0.034322 0.813798 -0.121096 +v -0.034322 0.939957 -0.099398 +v -0.034322 0.813798 -0.099398 +v 0.012500 1.861312 0.861312 +v 0.012500 0.138688 0.861312 +v 0.012500 0.138688 0.138688 +v 0.012500 1.861312 0.138688 +v 0.012500 0.733440 0.267519 +v 0.012500 0.988637 0.267519 +v 0.012500 1.166712 0.138688 +v 0.012500 0.655676 0.138688 +v 0.012500 0.753307 0.861312 +v 0.011573 0.758010 0.866015 +v 0.012500 0.753307 0.267519 +v 0.011573 0.758010 0.262816 +v 0.012500 0.834000 0.861312 +v 0.011573 0.829297 0.866015 +v 0.012500 0.834000 0.267519 +v 0.011573 0.829297 0.262816 +v 0.012500 0.873731 0.861312 +v 0.011573 0.878434 0.866015 +v 0.012500 0.873731 0.267519 +v 0.011573 0.878434 0.262816 +v 0.012500 0.954424 0.861312 +v 0.011573 0.949722 0.866015 +v 0.012500 0.954424 0.267519 +v 0.011573 0.949722 0.262816 +v -0.012500 1.861312 0.861312 +v -0.012500 0.138688 0.861312 +v -0.012500 0.138688 0.138688 +v -0.012500 1.861312 0.138688 +v -0.012500 0.733440 0.267519 +v -0.012500 0.988637 0.267519 +v -0.012500 1.166712 0.138688 +v -0.012500 0.655676 0.138688 +v -0.012500 0.753307 0.861312 +v -0.011573 0.758010 0.866015 +v -0.012500 0.753307 0.267519 +v -0.011573 0.758010 0.262816 +v -0.012500 0.834000 0.861312 +v -0.011573 0.829297 0.866015 +v -0.012500 0.834000 0.267519 +v -0.011573 0.829297 0.262816 +v -0.012500 0.873731 0.861312 +v -0.011573 0.878434 0.866015 +v -0.012500 0.873731 0.267519 +v -0.011573 0.878434 0.262816 +v -0.012500 0.954424 0.861312 +v -0.011573 0.949722 0.866015 +v -0.012500 0.954424 0.267519 +v -0.011573 0.949722 0.262816 +vt 0.727731 0.909684 +vt 0.717217 0.861903 +vt 0.727731 0.861903 +vt 0.994311 0.103548 +vt 0.958521 0.339756 +vt 0.958521 0.103548 +vt 0.883586 0.940828 +vt 0.877670 0.942230 +vt 0.878053 0.940634 +vt 0.857471 0.136616 +vt 0.838387 0.302232 +vt 0.838387 0.124694 +vt 0.401117 0.005690 +vt 0.559691 0.026850 +vt 0.401117 0.026850 +vt 0.413762 0.782316 +vt 0.549042 0.763542 +vt 0.549042 0.782317 +vt 0.819625 0.302232 +vt 0.425692 0.801413 +vt 0.711314 0.382154 +vt 0.692217 0.566498 +vt 0.692217 0.370225 +vt 0.248180 0.728437 +vt 0.063836 0.709339 +vt 0.260109 0.709340 +vt 0.804820 0.331268 +vt 0.769031 0.580736 +vt 0.769031 0.331268 +vt 0.136754 0.051912 +vt 0.353132 0.045947 +vt 0.353132 0.051912 +vt 0.075766 0.734402 +vt 0.075766 0.728437 +vt 0.091858 0.900883 +vt 0.092397 0.931216 +vt 0.073304 0.931621 +vt 0.048047 0.923951 +vt 0.547761 0.045947 +vt 0.401117 0.051912 +vt 0.401117 0.045947 +vt 0.090428 0.866950 +vt 0.132915 0.885725 +vt 0.090428 0.885725 +vt 0.132915 0.836212 +vt 0.085677 0.848454 +vt 0.128164 0.817715 +vt 0.873687 0.631974 +vt 0.894191 0.606510 +vt 0.904705 0.631974 +vt 0.612014 0.873137 +vt 0.564233 0.873137 +vt 0.560421 0.857213 +vt 0.927871 0.057405 +vt 0.917358 0.090994 +vt 0.917358 0.057405 +vt 0.863432 0.302232 +vt 0.857471 0.302232 +vt 0.353132 0.041548 +vt 0.136754 0.045947 +vt 0.621310 0.857213 +vt 0.587837 0.842515 +vt 0.711314 0.554568 +vt 0.717279 0.382154 +vt 0.717279 0.554568 +vt 0.124668 0.812883 +vt 0.909280 0.919388 +vt 0.903479 0.920905 +vt 0.903374 0.919265 +vt 0.598908 0.941632 +vt 0.599882 0.924151 +vt 0.599882 0.942747 +vt 0.912069 0.938667 +vt 0.913157 0.921031 +vt 0.913157 0.939831 +vt 0.595651 0.923166 +vt 0.595950 0.921479 +vt 0.590064 0.923387 +vt 0.589668 0.921765 +vt 0.909011 0.940828 +vt 0.909311 0.942491 +vt 0.918708 0.873065 +vt 0.912874 0.871208 +vt 0.918408 0.871402 +vt 0.595840 0.942876 +vt 0.596024 0.944398 +vt 0.909105 0.920915 +vt 0.921466 0.869241 +vt 0.922554 0.851605 +vt 0.922554 0.870405 +vt 0.886645 0.938667 +vt 0.887733 0.921031 +vt 0.887733 0.939831 +vt 0.381864 0.045947 +vt 0.372385 0.051912 +vt 0.372385 0.045947 +vt 0.883680 0.920915 +vt 0.883856 0.919388 +vt 0.918502 0.851489 +vt 0.918677 0.849962 +vt 0.912876 0.851479 +vt 0.912771 0.849839 +vt 0.883887 0.942491 +vt 0.200475 0.935830 +vt 0.183466 0.786038 +vt 0.200475 0.786038 +vt 0.392602 0.916184 +vt 0.542394 0.899175 +vt 0.542394 0.916184 +vt 0.144294 0.786038 +vt 0.155376 0.935830 +vt 0.144294 0.935830 +vt 0.736376 0.566497 +vt 0.757536 0.351450 +vt 0.757536 0.587658 +vt 0.760166 0.808558 +vt 0.749652 0.842147 +vt 0.749652 0.808558 +vt 0.761319 0.909684 +vt 0.761319 0.861903 +vt 0.542394 0.860003 +vt 0.392602 0.871085 +vt 0.392602 0.860003 +vt 0.392602 0.888093 +vt 0.542394 0.888093 +vt 0.560421 0.838116 +vt 0.568584 0.832151 +vt 0.568584 0.838116 +vt 0.597317 0.838116 +vt 0.587837 0.832151 +vt 0.597317 0.832151 +vt 0.172385 0.935830 +vt 0.172385 0.786038 +vt 0.590227 0.942930 +vt 0.621310 0.838116 +vt 0.616570 0.832151 +vt 0.621310 0.832151 +vt 0.110951 0.900478 +vt 0.097503 0.934298 +vt 0.903477 0.940634 +vt 0.549042 0.801413 +vt 0.425692 0.807378 +vt 0.211854 0.900206 +vt 0.222368 0.852425 +vt 0.222368 0.900206 +vt 0.882516 0.302232 +vt 0.863432 0.136616 +vt 0.882516 0.124694 +vt 0.559691 0.071009 +vt 0.401117 0.092169 +vt 0.401117 0.071009 +vt 0.413762 0.826475 +vt 0.549042 0.845250 +vt 0.392602 0.845250 +vt 0.901278 0.302232 +vt 0.549042 0.826475 +vt 0.549042 0.807378 +vt 0.736376 0.370225 +vt 0.063837 0.753498 +vt 0.248180 0.734401 +vt 0.260109 0.753498 +vt 0.124594 0.920643 +vt 0.106040 0.951381 +vt 0.124594 0.970155 +vt 0.066099 0.833322 +vt 0.061559 0.787093 +vt 0.108586 0.802584 +vt 0.082180 0.843621 +vt 0.045062 0.774659 +vt 0.560421 0.813054 +vt 0.612014 0.797130 +vt 0.621310 0.813054 +vt 0.917358 0.005689 +vt 0.927871 0.039278 +vt 0.917358 0.039278 +vt 0.353132 0.071009 +vt 0.124824 0.071009 +vt 0.597317 0.827753 +vt 0.587837 0.827753 +vt 0.585860 0.943106 +vt 0.587029 0.925646 +vt 0.586842 0.941897 +vt 0.899112 0.920791 +vt 0.900475 0.938441 +vt 0.899407 0.939584 +vt 0.585893 0.924471 +vt 0.903094 0.942230 +vt 0.590140 0.944568 +vt 0.900106 0.921973 +vt 0.908509 0.851365 +vt 0.909872 0.869015 +vt 0.908804 0.870158 +vt 0.873687 0.920791 +vt 0.875051 0.938442 +vt 0.873983 0.939584 +vt 0.912492 0.872804 +vt 0.878055 0.920905 +vt 0.874681 0.921973 +vt 0.909503 0.852547 +vt 0.155376 0.786038 +vt 0.542394 0.871085 +vt 0.692387 0.083838 +vt 0.725975 0.073325 +vt 0.725975 0.083838 +vt 0.255956 0.852425 +vt 0.255956 0.900206 +vt 0.045062 0.688179 +vt 0.817642 0.952534 +vt 0.781852 0.716326 +vt 0.817642 0.716326 +vt 0.877950 0.919265 +vt 0.561847 0.910100 +vt 0.560421 0.906726 +vt 0.564233 0.906726 +vt 0.053706 0.941940 +vt 0.056692 0.940368 +vt 0.132915 0.889099 +vt 0.394988 0.760168 +vt 0.549042 0.760168 +vt 0.816200 0.302233 +vt 0.819626 0.103548 +vt 0.621310 0.906726 +vt 0.614400 0.910100 +vt 0.612014 0.906726 +vt 0.757780 0.845521 +vt 0.747266 0.845521 +vt 0.764693 0.859517 +vt 0.925485 0.054031 +vt 0.991925 0.343130 +vt 0.994311 0.339756 +vt 0.784238 0.712952 +vt 0.561847 0.760168 +vt 0.560421 0.763542 +vt 0.560421 0.760168 +vt 0.106040 0.970155 +vt 0.124594 0.973530 +vt 0.106040 0.973530 +vt 0.045062 0.826392 +vt 0.058354 0.786038 +vt 0.549042 0.848624 +vt 0.904705 0.105933 +vt 0.904705 0.302233 +vt 0.621310 0.763542 +vt 0.614400 0.760168 +vt 0.621310 0.760168 +vt 0.689012 0.075710 +vt 0.692387 0.073325 +vt 0.259330 0.850040 +vt 0.259330 0.902592 +vt 0.925485 0.042652 +vt 0.914972 0.042652 +vt 0.671057 0.351450 +vt 0.124824 0.026850 +vt 0.353132 0.005690 +vt 0.353132 0.026850 +vt 0.769031 0.283283 +vt 0.804820 0.283283 +vt 0.353132 0.092169 +vt 0.103663 0.092169 +vt 0.401117 0.056310 +vt 0.547761 0.051912 +vt 0.381864 0.056310 +vt 0.372385 0.056310 +vt 0.769031 0.103548 +vt 0.804820 0.103548 +vt 0.372385 0.041548 +vt 0.381864 0.041548 +vt 0.458081 0.526437 +vt 0.607011 0.526438 +vt 0.462895 0.670321 +vt 0.831325 0.715192 +vt 0.840009 0.715191 +vt 0.840030 0.844974 +vt 0.295376 0.106106 +vt 0.439436 0.106106 +vt 0.439436 0.114406 +vt 0.557651 0.368753 +vt 0.560208 0.513936 +vt 0.557674 0.512813 +vt 0.007994 0.658645 +vt 0.016699 0.788428 +vt 0.008015 0.788429 +vt 0.106169 0.527870 +vt 0.250053 0.527870 +vt 0.250053 0.532684 +vt 0.717217 0.909684 +vt 0.580852 0.005690 +vt 0.392602 0.763542 +vt 0.804820 0.580736 +vt 0.904705 0.510044 +vt 0.904705 0.552531 +vt 0.894191 0.553957 +vt 0.904705 0.553958 +vt 0.873688 0.313612 +vt 0.904705 0.313612 +vt 0.873687 0.553957 +vt 0.873687 0.552531 +vt 0.884201 0.553957 +vt 0.873687 0.510044 +vt 0.873687 0.613420 +vt 0.873687 0.606510 +vt 0.884201 0.606510 +vt 0.904705 0.606510 +vt 0.904705 0.613420 +vt 0.873687 0.786029 +vt 0.904705 0.786029 +vt 0.927871 0.090994 +vt 0.568584 0.842515 +vt 0.587837 0.838116 +vt 0.597317 0.842515 +vt 0.616570 0.838116 +vt 0.616570 0.842515 +vt 0.598757 0.925348 +vt 0.912182 0.922144 +vt 0.921579 0.852718 +vt 0.886758 0.922144 +vt 0.381864 0.051912 +vt 0.183466 0.935830 +vt 0.392602 0.899175 +vt 0.760166 0.842147 +vt 0.560421 0.832151 +vt 0.116057 0.903560 +vt 0.211854 0.852425 +vt 0.580852 0.092169 +vt 0.901278 0.103548 +vt 0.048267 0.827448 +vt 0.281270 0.774659 +vt 0.564233 0.797130 +vt 0.564233 0.763542 +vt 0.612014 0.763542 +vt 0.927871 0.005689 +vt 0.353132 0.056310 +vt 0.568584 0.827753 +vt 0.616570 0.827753 +vt 0.281270 0.688179 +vt 0.781852 0.952534 +vt 0.560421 0.910100 +vt 0.045062 0.925523 +vt 0.090428 0.889099 +vt 0.816199 0.105971 +vt 0.621310 0.910100 +vt 0.764693 0.912070 +vt 0.914972 0.054031 +vt 0.960907 0.343130 +vt 0.815256 0.712952 +vt 0.394988 0.848624 +vt 0.689012 0.086224 +vt 0.671057 0.587658 +vt 0.401117 0.041548 +vt 0.103663 0.005689 +vt 0.607011 0.701538 +vt 0.481738 0.701538 +vt 0.458081 0.670321 +vt 0.455526 0.672827 +vt 0.455550 0.525315 +vt 0.831346 0.844976 +vt 0.829021 0.847215 +vt 0.829021 0.714139 +vt 0.842335 0.712952 +vt 0.842335 0.846028 +vt 0.292867 0.103548 +vt 0.440560 0.103572 +vt 0.470692 0.326126 +vt 0.295376 0.326126 +vt 0.470692 0.157609 +vt 0.337654 0.512849 +vt 0.506142 0.337506 +vt 0.337625 0.337533 +vt 0.549350 0.368754 +vt 0.560208 0.366244 +vt 0.016678 0.658644 +vt 0.019004 0.656405 +vt 0.019004 0.789481 +vt 0.005690 0.790668 +vt 0.005689 0.657592 +vt 0.281270 0.551527 +vt 0.281270 0.676800 +vt 0.106169 0.676800 +vt 0.103663 0.525315 +vt 0.251175 0.525339 +vt 0.264782 0.924581 +vt 0.211854 0.921044 +vt 0.264782 0.921044 +vt 0.264782 0.928117 +vt 0.211854 0.924580 +vt 0.211854 0.931653 +vt 0.211854 0.928117 +vt 0.264782 0.935190 +vt 0.264782 0.931653 +vt 0.264782 0.917508 +vt 0.211854 0.913971 +vt 0.264782 0.913971 +vt 0.211854 0.917508 +vt 0.643612 0.591953 +vt 0.640583 0.529718 +vt 0.643612 0.529718 +vt 0.627972 0.591953 +vt 0.631001 0.601535 +vt 0.627972 0.601535 +vt 0.631001 0.529718 +vt 0.631001 0.591953 +vt 0.627972 0.520135 +vt 0.627972 0.529718 +vt 0.618390 0.529718 +vt 0.618390 0.591953 +vt 0.640583 0.591953 +vt 0.030911 0.873865 +vt 0.027882 0.811629 +vt 0.030911 0.811629 +vt 0.015272 0.873865 +vt 0.018300 0.883447 +vt 0.015272 0.883447 +vt 0.018300 0.811629 +vt 0.018300 0.873865 +vt 0.015272 0.802047 +vt 0.015272 0.811629 +vt 0.005689 0.811629 +vt 0.005689 0.873865 +vt 0.027883 0.873865 +vt 0.858298 0.868664 +vt 0.829021 0.863629 +vt 0.858298 0.863629 +vt 0.829021 0.873700 +vt 0.829021 0.868664 +vt 0.858298 0.878735 +vt 0.858298 0.873700 +vt 0.858298 0.883770 +vt 0.829021 0.878735 +vt 0.858298 0.888806 +vt 0.829021 0.883770 +vt 0.829021 0.858594 +vt 0.858298 0.858594 +vt 0.211854 0.935190 +vt 0.631001 0.520135 +vt 0.018300 0.802047 +vt 0.829021 0.888806 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.6247 0.0000 0.7809 +vn 1.0000 0.0000 0.0000 +vn 0.6247 0.7809 0.0000 +vn 0.6247 -0.7809 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3821 -0.7912 0.4776 +vn 0.5439 0.4919 0.6799 +vn 0.6247 0.0000 -0.7809 +vn 0.0000 0.5862 0.8102 +vn 0.0000 -0.7071 -0.7071 +vn -0.5602 0.0000 0.8283 +vn -0.5602 0.0000 -0.8283 +vn 0.4634 0.6706 0.5793 +vn 0.0000 0.7071 0.7071 +vn 0.4634 0.6706 -0.5793 +vn 0.0000 0.7071 -0.7071 +vn 0.4634 -0.6706 0.5792 +vn 0.4634 -0.6706 -0.5792 +vn 0.4634 -0.6706 -0.5793 +vn 0.4634 -0.6706 0.5793 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.8561 0.5168 +vn -0.6247 0.0000 0.7809 +vn -0.6247 0.7809 0.0000 +vn -0.6247 -0.7809 0.0000 +vn -0.3821 -0.7912 0.4776 +vn -0.5439 0.4919 0.6799 +vn -0.6247 0.0000 -0.7809 +vn 0.5602 0.0000 0.8283 +vn 0.5602 0.0000 -0.8283 +vn -0.4637 0.6689 0.5810 +vn -0.4634 0.6706 -0.5793 +vn -0.4634 -0.6706 0.5792 +vn -0.4637 -0.6689 -0.5810 +vn -0.4634 -0.6706 0.5793 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.9811 -0.1935 0.0000 +vn 0.4637 0.6689 0.5810 +vn 0.4637 0.6689 -0.5810 +vn 0.4637 -0.6689 0.5810 +vn 0.4637 -0.6689 -0.5810 +vn -0.5603 0.0000 0.8283 +vn -0.4634 0.6706 0.5793 +vn -0.4637 0.6689 -0.5810 +vn -0.4637 -0.6689 0.5810 +vn -0.4634 -0.6706 -0.5792 +vn 0.5603 0.0000 0.8283 +vn -0.4634 -0.6706 -0.5793 +vn 0.9811 0.1935 0.0000 +vn 0.9811 -0.1935 0.0000 +vn -0.9811 0.1935 0.0000 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn 0.5773 0.5773 0.5773 +vn 0.5773 -0.5773 -0.5773 +vn 0.5773 0.5773 -0.5773 +vn -0.5773 0.5773 0.5773 +vn 0.5773 -0.5773 0.5773 +vn -0.5773 -0.5773 -0.5773 +vn -0.5773 -0.5773 0.5773 +vn -0.5773 0.5773 -0.5773 +s off +f 2/1/1 61/2/1 1/3/1 +f 7/4/2 148/5/2 69/6/2 +f 52/7/3 113/8/3 114/9/3 +f 12/10/4 16/11/4 6/12/4 +f 170/13/5 3/14/5 168/15/5 +f 5/16/5 130/17/5 15/18/5 +f 132/19/5 6/12/5 16/11/5 +f 15/18/4 11/20/4 5/16/4 +f 11/21/6 3/22/6 5/23/6 +f 9/24/7 6/25/7 4/26/7 +f 169/27/8 69/28/8 171/29/8 +f 71/30/1 49/31/1 111/32/1 +f 9/24/9 74/33/9 12/34/9 +f 19/35/10 18/36/10 15/37/10 +f 15/37/5 134/38/5 19/35/5 +f 10/39/1 91/40/1 29/41/1 +f 16/42/5 136/43/5 132/44/5 +f 20/45/11 17/46/11 14/47/11 +f 149/48/1 143/49/1 129/50/1 +f 61/51/5 62/52/5 20/53/5 +f 138/54/9 2/55/9 142/56/9 +f 12/10/8 79/57/8 17/58/8 +f 41/59/12 49/31/12 9/60/12 +f 19/61/4 20/53/4 37/62/4 +f 10/63/2 73/64/2 72/65/2 +f 17/46/13 76/66/13 14/47/13 +f 33/67/14 96/68/14 95/69/14 +f 28/70/15 21/71/15 27/72/15 +f 24/73/16 25/74/16 23/75/16 +f 21/71/17 32/76/17 31/77/17 +f 31/77/18 94/78/18 93/79/18 +f 30/80/19 23/75/19 29/81/19 +f 45/82/20 108/83/20 46/84/20 +f 36/85/21 27/72/21 35/86/21 +f 25/74/22 34/87/22 33/67/22 +f 40/88/16 41/89/16 39/90/16 +f 44/91/15 37/92/15 43/93/15 +f 33/94/1 107/95/1 45/96/1 +f 46/84/19 39/90/19 45/82/19 +f 37/92/17 48/97/17 47/98/17 +f 41/89/23 50/99/23 49/100/23 +f 49/100/14 112/101/14 111/102/14 +f 52/7/24 43/93/24 51/103/24 +f 53/104/5 56/105/5 55/106/5 +f 57/107/5 60/108/5 59/109/5 +f 55/110/9 115/111/9 53/112/9 +f 65/113/25 146/114/25 70/115/25 +f 61/116/2 144/117/2 1/118/2 +f 142/119/5 1/3/5 144/120/5 +f 59/121/9 119/122/9 57/123/9 +f 60/108/2 120/124/2 122/125/2 +f 14/126/8 113/127/8 51/128/8 +f 35/129/8 109/130/8 97/131/8 +f 56/105/2 116/132/2 118/133/2 +f 35/86/3 98/134/3 36/85/3 +f 13/135/8 93/136/8 75/137/8 +f 13/138/26 80/139/26 18/36/26 +f 29/81/20 92/140/20 30/80/20 +f 18/141/8 73/142/8 11/20/8 +f 123/143/1 64/144/1 63/145/1 +f 78/146/27 74/147/27 68/148/27 +f 65/149/25 172/150/25 166/151/25 +f 67/152/25 150/153/25 146/154/25 +f 68/148/25 152/155/25 78/146/25 +f 77/156/27 73/142/27 80/157/27 +f 65/113/28 73/64/28 67/158/28 +f 68/159/29 71/160/29 66/161/29 +f 80/139/30 81/162/30 77/163/30 +f 154/164/25 77/163/25 81/162/25 +f 78/165/25 156/166/25 82/167/25 +f 82/167/31 79/168/31 78/165/31 +f 66/161/25 148/169/25 68/159/25 +f 82/170/25 123/171/25 81/172/25 +f 64/173/9 158/174/9 162/175/9 +f 165/176/32 66/177/32 71/30/32 +f 81/172/27 89/178/27 99/179/27 +f 89/180/33 84/181/33 90/182/33 +f 87/183/34 86/184/34 85/185/34 +f 83/186/35 94/78/35 84/181/35 +f 85/185/36 92/140/36 91/187/36 +f 89/180/37 98/134/37 97/188/37 +f 87/183/38 96/68/38 88/189/38 +f 103/190/34 102/191/34 101/192/34 +f 99/193/33 106/194/33 105/195/33 +f 101/192/36 108/83/36 107/196/36 +f 99/193/35 110/197/35 100/198/35 +f 103/190/38 112/101/38 104/199/38 +f 105/195/39 114/9/39 113/8/39 +f 118/133/25 115/111/25 117/200/25 +f 122/125/25 119/122/25 121/201/25 +f 164/202/2 123/203/2 63/204/2 +f 63/145/25 162/205/25 164/206/25 +f 128/207/5 4/26/5 6/25/5 +f 8/208/9 146/209/9 126/210/9 +f 47/98/18 110/197/18 109/211/18 +f 137/212/40 136/213/40 138/214/40 +f 129/215/40 134/38/40 130/216/40 +f 135/217/40 132/44/40 136/43/40 +f 130/17/40 125/218/40 129/219/40 +f 131/220/40 128/221/40 132/19/40 +f 134/222/40 139/223/40 140/224/40 +f 144/117/20 139/225/20 143/226/20 +f 143/227/40 142/119/40 144/120/40 +f 142/56/14 137/228/14 138/54/14 +f 127/229/2 148/5/2 128/230/2 +f 145/231/9 126/210/9 146/209/9 +f 157/232/41 156/233/41 155/234/41 +f 150/235/41 153/236/41 149/237/41 +f 156/166/41 151/238/41 155/239/41 +f 149/240/41 146/154/41 150/153/41 +f 152/155/41 147/241/41 151/242/41 +f 154/243/41 159/244/41 153/245/41 +f 164/202/20 159/246/20 160/247/20 +f 164/206/41 161/248/41 163/249/41 +f 162/175/14 157/250/14 161/251/14 +f 3/22/5 126/252/5 5/23/5 +f 168/15/12 3/14/12 10/39/12 +f 4/253/5 169/254/5 167/255/5 +f 169/27/8 172/256/8 170/257/8 +f 66/177/25 171/258/25 69/259/25 +f 85/260/32 91/40/32 72/261/32 +f 87/262/32 165/176/32 101/263/32 +f 166/151/25 171/258/25 165/176/25 +f 170/257/8 70/264/8 8/265/8 +f 169/254/5 168/15/5 167/255/5 +f 39/266/12 167/255/12 25/267/12 +f 221/268/5 214/269/5 217/270/5 +f 229/271/5 225/272/5 227/273/5 +f 233/274/5 235/275/5 218/276/5 +f 259/277/42 258/278/42 257/279/42 +f 255/280/25 249/281/25 253/282/25 +f 245/283/25 247/284/25 241/285/25 +f 2/1/1 62/286/1 61/2/1 +f 7/4/2 128/230/2 148/5/2 +f 52/7/3 51/103/3 113/8/3 +f 12/10/4 17/58/4 16/11/4 +f 170/13/5 8/287/5 3/14/5 +f 5/16/5 126/288/5 130/17/5 +f 132/19/5 128/221/5 6/12/5 +f 15/18/4 18/141/4 11/20/4 +f 11/21/6 10/63/6 3/22/6 +f 9/24/7 12/34/7 6/25/7 +f 169/27/8 7/289/8 69/28/8 +f 71/30/1 9/60/1 49/31/1 +f 9/24/9 71/160/9 74/33/9 +f 19/35/10 13/138/10 18/36/10 +f 15/37/5 130/216/5 134/38/5 +f 10/39/1 72/261/1 91/40/1 +f 16/42/5 20/45/5 136/43/5 +f 20/45/11 16/42/11 17/46/11 +f 131/290/1 135/291/1 141/292/1 +f 135/291/1 137/293/1 141/292/1 +f 147/294/1 127/295/1 131/290/1 +f 157/296/1 155/297/1 161/298/1 +f 155/297/1 151/299/1 161/298/1 +f 151/299/1 147/294/1 131/290/1 +f 151/299/1 131/290/1 141/292/1 +f 153/300/1 159/301/1 163/302/1 +f 161/298/1 151/299/1 141/292/1 +f 149/48/1 153/300/1 163/302/1 +f 163/302/1 161/298/1 141/292/1 +f 143/49/1 139/303/1 133/304/1 +f 163/302/1 141/292/1 143/49/1 +f 145/305/1 149/48/1 129/50/1 +f 149/48/1 163/302/1 143/49/1 +f 129/50/1 125/306/1 145/305/1 +f 143/49/1 133/304/1 129/50/1 +f 19/61/5 134/222/5 61/51/5 +f 134/222/5 140/224/5 61/51/5 +f 138/214/5 136/213/5 62/52/5 +f 136/213/5 20/53/5 62/52/5 +f 19/61/5 61/51/5 20/53/5 +f 138/54/9 62/307/9 2/55/9 +f 12/10/8 74/147/8 79/57/8 +f 4/253/12 167/255/12 9/60/12 +f 167/255/12 41/59/12 9/60/12 +f 14/126/4 51/128/4 43/308/4 +f 37/62/4 47/309/4 35/129/4 +f 20/53/4 14/126/4 43/308/4 +f 37/62/4 35/129/4 27/310/4 +f 20/53/4 43/308/4 37/62/4 +f 31/311/4 13/135/4 21/312/4 +f 13/135/4 19/61/4 21/312/4 +f 37/62/4 27/310/4 19/61/4 +f 27/310/4 21/312/4 19/61/4 +f 10/63/2 11/21/2 73/64/2 +f 17/46/13 79/168/13 76/66/13 +f 33/67/14 34/87/14 96/68/14 +f 28/70/15 22/313/15 21/71/15 +f 24/73/16 26/314/16 25/74/16 +f 21/71/43 22/313/43 32/76/43 +f 31/77/18 32/76/18 94/78/18 +f 30/80/44 24/73/44 23/75/44 +f 45/82/20 107/196/20 108/83/20 +f 36/85/45 28/70/45 27/72/45 +f 25/74/46 26/314/46 34/87/46 +f 40/88/16 42/315/16 41/89/16 +f 44/91/47 38/316/47 37/92/47 +f 33/94/1 95/317/1 107/95/1 +f 46/84/44 40/88/44 39/90/44 +f 37/92/43 38/316/43 48/97/43 +f 41/89/46 42/315/46 50/99/46 +f 49/100/14 50/99/14 112/101/14 +f 52/7/45 44/91/45 43/93/45 +f 53/104/5 54/318/5 56/105/5 +f 57/107/5 58/319/5 60/108/5 +f 55/110/9 117/200/9 115/111/9 +f 65/113/25 67/158/25 146/114/25 +f 61/116/2 140/320/2 144/117/2 +f 142/119/5 2/1/5 1/3/5 +f 59/121/9 121/201/9 119/122/9 +f 60/108/2 58/319/2 120/124/2 +f 14/126/8 76/321/8 113/127/8 +f 35/129/8 47/309/8 109/130/8 +f 56/105/2 54/318/2 116/132/2 +f 35/86/3 97/188/3 98/134/3 +f 13/135/8 31/311/8 93/136/8 +f 13/138/26 75/322/26 80/139/26 +f 29/81/20 91/187/20 92/140/20 +f 18/141/8 80/157/8 73/142/8 +f 123/143/1 124/323/1 64/144/1 +f 78/146/27 79/57/27 74/147/27 +f 65/149/25 70/324/25 172/150/25 +f 67/152/25 77/156/25 150/153/25 +f 68/148/25 148/325/25 152/155/25 +f 77/156/27 67/152/27 73/142/27 +f 65/113/28 72/65/28 73/64/28 +f 68/159/29 74/33/29 71/160/29 +f 80/139/30 75/322/30 81/162/30 +f 154/164/25 150/235/25 77/163/25 +f 78/165/25 152/326/25 156/166/25 +f 82/167/31 76/66/31 79/168/31 +f 66/161/25 69/327/25 148/169/25 +f 82/170/25 156/233/25 124/328/25 +f 156/233/25 158/329/25 124/328/25 +f 160/330/25 154/243/25 123/171/25 +f 154/243/25 81/172/25 123/171/25 +f 82/170/25 124/328/25 123/171/25 +f 64/173/9 124/331/9 158/174/9 +f 111/32/32 103/332/32 71/30/32 +f 103/332/32 165/176/32 71/30/32 +f 105/333/27 113/127/27 76/321/27 +f 81/172/27 75/137/27 83/334/27 +f 75/137/27 93/136/27 83/334/27 +f 105/333/27 76/321/27 82/170/27 +f 97/131/27 109/130/27 99/179/27 +f 99/179/27 105/333/27 82/170/27 +f 82/170/27 81/172/27 99/179/27 +f 81/172/27 83/334/27 89/178/27 +f 89/178/27 97/131/27 99/179/27 +f 89/180/33 83/186/33 84/181/33 +f 87/183/34 88/189/34 86/184/34 +f 83/186/48 93/79/48 94/78/48 +f 85/185/49 86/184/49 92/140/49 +f 89/180/50 90/182/50 98/134/50 +f 87/183/51 95/69/51 96/68/51 +f 103/190/34 104/199/34 102/191/34 +f 99/193/52 100/198/52 106/194/52 +f 101/192/49 102/191/49 108/83/49 +f 99/193/48 109/211/48 110/197/48 +f 103/190/53 111/102/53 112/101/53 +f 105/195/50 106/194/50 114/9/50 +f 118/133/25 116/132/25 115/111/25 +f 122/125/25 120/124/25 119/122/25 +f 164/202/2 160/247/2 123/203/2 +f 63/145/25 64/144/25 162/205/25 +f 128/207/5 7/335/5 4/26/5 +f 8/208/9 70/336/9 146/209/9 +f 47/98/18 48/97/18 110/197/18 +f 137/212/40 135/337/40 136/213/40 +f 129/215/40 133/338/40 134/38/40 +f 135/217/40 131/339/40 132/44/40 +f 130/17/40 126/288/40 125/218/40 +f 131/220/40 127/340/40 128/221/40 +f 134/222/40 133/341/40 139/223/40 +f 144/117/20 140/320/20 139/225/20 +f 143/227/40 141/342/40 142/119/40 +f 142/56/14 141/343/14 137/228/14 +f 127/229/2 147/344/2 148/5/2 +f 145/231/9 125/345/9 126/210/9 +f 157/232/41 158/329/41 156/233/41 +f 150/235/41 154/164/41 153/236/41 +f 156/166/41 152/326/41 151/238/41 +f 149/240/41 145/346/41 146/154/41 +f 152/155/41 148/325/41 147/241/41 +f 154/243/41 160/330/41 159/244/41 +f 164/202/20 163/347/20 159/246/20 +f 164/206/41 162/205/41 161/248/41 +f 162/175/14 158/174/14 157/250/14 +f 3/22/5 8/348/5 126/252/5 +f 29/41/12 23/349/12 10/39/12 +f 23/349/12 168/15/12 10/39/12 +f 4/253/5 7/350/5 169/254/5 +f 169/27/8 171/29/8 172/256/8 +f 66/177/25 165/176/25 171/258/25 +f 65/149/32 166/151/32 72/261/32 +f 166/151/32 85/260/32 72/261/32 +f 101/263/32 107/95/32 95/317/32 +f 87/262/32 85/260/32 166/151/32 +f 101/263/32 95/317/32 87/262/32 +f 165/176/32 103/332/32 101/263/32 +f 87/262/32 166/151/32 165/176/32 +f 166/151/25 172/150/25 171/258/25 +f 170/257/8 172/256/8 70/264/8 +f 169/254/5 170/13/5 168/15/5 +f 33/94/12 45/96/12 39/266/12 +f 39/266/12 41/59/12 167/255/12 +f 167/255/12 168/15/12 25/267/12 +f 168/15/12 23/349/12 25/267/12 +f 25/267/12 33/94/12 39/266/12 +f 215/351/5 220/352/5 217/270/5 +f 223/353/54 224/354/54 222/355/54 +f 214/269/5 215/351/5 217/270/5 +f 217/270/5 223/353/5 221/268/5 +f 223/353/54 222/355/54 221/268/54 +f 231/356/54 232/357/54 229/271/54 +f 232/357/54 230/358/54 229/271/54 +f 226/359/55 228/360/55 227/273/55 +f 227/273/5 231/356/5 229/271/5 +f 225/272/55 226/359/55 227/273/55 +f 233/274/55 234/361/55 236/362/55 +f 233/274/55 236/362/55 235/275/55 +f 216/363/5 213/364/5 219/365/5 +f 213/364/5 233/274/5 219/365/5 +f 219/365/5 233/274/5 218/276/5 +f 257/279/25 237/366/25 243/367/25 +f 237/366/25 240/368/25 243/367/25 +f 257/279/25 243/367/25 242/369/25 +f 259/277/42 260/370/42 258/278/42 +f 242/369/25 259/277/25 257/279/25 +f 251/371/42 252/372/42 249/281/42 +f 252/372/42 250/373/42 249/281/42 +f 254/374/56 256/375/56 255/280/56 +f 255/280/25 251/371/25 249/281/25 +f 253/282/56 254/374/56 255/280/56 +f 241/285/25 244/376/25 239/377/25 +f 239/377/25 238/378/25 241/285/25 +f 238/378/25 245/283/25 241/285/25 +f 245/283/56 246/379/56 248/380/56 +f 245/283/56 248/380/56 247/284/56 +s 1 +f 175/381/57 174/382/8 173/383/8 +f 177/384/58 176/385/57 175/381/57 +f 177/384/58 180/386/1 178/387/58 +f 181/388/59 180/386/1 179/389/1 +f 183/390/60 182/391/59 181/392/59 +f 173/383/8 184/393/60 183/390/60 +f 187/394/61 186/395/62 185/396/63 +f 191/397/64 188/398/65 187/399/61 +f 191/397/64 190/400/66 192/401/67 +f 185/402/63 190/400/66 189/403/68 +f 185/404/63 191/397/64 187/405/61 +f 190/400/66 188/406/65 192/401/67 +f 195/407/61 194/408/62 193/409/63 +f 199/410/64 196/411/65 195/412/61 +f 199/410/64 198/413/66 200/414/67 +f 193/415/63 198/413/66 197/416/68 +f 193/417/63 199/410/64 195/418/61 +f 198/413/66 196/419/65 200/414/67 +f 203/420/57 202/421/8 201/422/8 +f 203/420/57 206/423/58 204/424/57 +f 207/425/1 206/423/58 205/426/58 +f 209/427/59 208/428/1 207/425/1 +f 211/429/60 210/430/59 209/427/59 +f 201/422/8 212/431/60 211/432/60 +f 175/381/57 176/385/57 174/382/8 +f 177/384/58 178/387/58 176/385/57 +f 177/384/58 179/389/1 180/386/1 +f 181/388/59 182/433/59 180/386/1 +f 183/390/60 184/393/60 182/391/59 +f 173/383/8 174/382/8 184/393/60 +f 187/394/61 188/406/65 186/395/62 +f 191/397/64 192/401/67 188/398/65 +f 191/397/64 189/403/68 190/400/66 +f 185/402/63 186/434/62 190/400/66 +f 185/404/63 189/403/68 191/397/64 +f 190/400/66 186/395/62 188/406/65 +f 195/407/61 196/419/65 194/408/62 +f 199/410/64 200/414/67 196/411/65 +f 199/410/64 197/416/68 198/413/66 +f 193/415/63 194/435/62 198/413/66 +f 193/417/63 197/416/68 199/410/64 +f 198/413/66 194/408/62 196/419/65 +f 203/420/57 204/424/57 202/421/8 +f 203/420/57 205/426/58 206/423/58 +f 207/425/1 208/428/1 206/423/58 +f 209/427/59 210/430/59 208/428/1 +f 211/429/60 212/436/60 210/430/59 +f 201/422/8 202/421/8 212/431/60 +o rightDoor +v 0.030935 0.772401 -0.150776 +v 0.030935 0.972661 -0.150776 +v 0.075000 0.088688 -0.911312 +v 0.075000 1.911312 -0.911312 +v 0.075000 0.088688 -0.088688 +v 0.075000 1.911312 -0.088688 +v 0.075000 2.000000 -1.000000 +v 0.075000 0.000000 -1.000000 +v 0.012500 1.861312 -0.861312 +v 0.012500 0.138688 -0.861312 +v 0.012500 0.138688 -0.138688 +v 0.012500 1.861312 -0.138688 +v 0.012500 0.733440 -0.267519 +v 0.012500 0.988637 -0.267519 +v 0.075000 0.655676 -0.088688 +v 0.075000 1.166712 -0.088688 +v 0.012500 1.166712 -0.138688 +v 0.012500 0.655676 -0.138688 +v 0.075000 0.733440 -0.217519 +v 0.075000 0.988637 -0.217519 +v 0.026895 0.753307 -0.256002 +v 0.023223 0.758010 -0.253518 +v 0.026895 0.753307 -0.872828 +v 0.023223 0.758010 -0.875312 +v 0.026895 0.834000 -0.872828 +v 0.023223 0.829297 -0.875312 +v 0.026895 0.834000 -0.256002 +v 0.023223 0.829297 -0.253518 +v 0.012500 0.753307 -0.861312 +v 0.011573 0.758010 -0.866015 +v 0.012500 0.753307 -0.267519 +v 0.011573 0.758010 -0.262816 +v 0.012500 0.834000 -0.861312 +v 0.011573 0.829297 -0.866015 +v 0.012500 0.834000 -0.267519 +v 0.011573 0.829297 -0.262816 +v 0.026895 0.873731 -0.256002 +v 0.023223 0.878434 -0.253518 +v 0.026895 0.873731 -0.872828 +v 0.023223 0.878434 -0.875312 +v 0.026895 0.954424 -0.872828 +v 0.023223 0.949722 -0.875312 +v 0.026895 0.954424 -0.256002 +v 0.023223 0.949722 -0.253518 +v 0.012500 0.873731 -0.861312 +v 0.011573 0.878434 -0.866015 +v 0.012500 0.873731 -0.267519 +v 0.011573 0.878434 -0.262816 +v 0.012500 0.954424 -0.861312 +v 0.011573 0.949722 -0.866015 +v 0.012500 0.954424 -0.267519 +v 0.011573 0.949722 -0.262816 +v 0.023223 0.758010 -0.252557 +v 0.023223 0.829297 -0.252557 +v 0.023223 0.758010 -0.880367 +v 0.023223 0.829297 -0.880367 +v 0.023223 0.878434 -0.252557 +v 0.023223 0.949722 -0.252557 +v 0.023223 0.878434 -0.880367 +v 0.023223 0.949722 -0.880367 +v 0.075000 0.772401 -0.150776 +v 0.075000 0.972661 -0.150776 +v -0.030935 0.772401 -0.150776 +v -0.030935 0.972661 -0.150776 +v -0.075000 0.088688 -0.911312 +v -0.075000 1.911312 -0.911312 +v -0.075000 0.088688 -0.088688 +v -0.075000 1.911312 -0.088688 +v -0.075000 2.000000 -1.000000 +v -0.075000 0.000000 -1.000000 +v -0.012500 1.861312 -0.861312 +v -0.012500 0.138688 -0.861312 +v -0.012500 0.138688 -0.138688 +v -0.012500 1.861312 -0.138688 +v -0.012500 0.733440 -0.267519 +v -0.012500 0.988637 -0.267519 +v -0.075000 0.655676 -0.088688 +v -0.075000 1.166712 -0.088688 +v -0.012500 1.166712 -0.138688 +v -0.012500 0.655676 -0.138688 +v -0.075000 0.733440 -0.217519 +v -0.075000 0.988637 -0.217519 +v -0.026895 0.753307 -0.256002 +v -0.023223 0.758010 -0.253518 +v -0.026895 0.753307 -0.872828 +v -0.023223 0.758010 -0.875312 +v -0.026895 0.834000 -0.872828 +v -0.023223 0.829297 -0.875312 +v -0.026895 0.834000 -0.256002 +v -0.023223 0.829297 -0.253518 +v -0.012500 0.753307 -0.861312 +v -0.011573 0.758010 -0.866015 +v -0.012500 0.753307 -0.267519 +v -0.011573 0.758010 -0.262816 +v -0.012500 0.834000 -0.861312 +v -0.011573 0.829297 -0.866015 +v -0.012500 0.834000 -0.267519 +v -0.011573 0.829297 -0.262816 +v -0.026895 0.873731 -0.256002 +v -0.023223 0.878434 -0.253518 +v -0.026895 0.873731 -0.872828 +v -0.023223 0.878434 -0.875312 +v -0.026895 0.954424 -0.872828 +v -0.023223 0.949722 -0.875312 +v -0.026895 0.954424 -0.256002 +v -0.023223 0.949722 -0.253518 +v -0.012500 0.873731 -0.861312 +v -0.011573 0.878434 -0.866015 +v -0.012500 0.873731 -0.267519 +v -0.011573 0.878434 -0.262816 +v -0.012500 0.954424 -0.861312 +v -0.011573 0.949722 -0.866015 +v -0.012500 0.954424 -0.267519 +v -0.011573 0.949722 -0.262816 +v -0.023223 0.758010 -0.252557 +v -0.023223 0.829297 -0.252557 +v -0.023223 0.758010 -0.880367 +v -0.023223 0.829297 -0.880367 +v -0.023223 0.878434 -0.252557 +v -0.023223 0.949722 -0.252557 +v -0.023223 0.878434 -0.880367 +v -0.023223 0.949722 -0.880367 +v -0.075000 0.772401 -0.150776 +v -0.075000 0.972661 -0.150776 +v 0.065000 0.000000 0.000000 +v 0.075000 0.000000 -0.010000 +v 0.065000 2.000000 0.000000 +v 0.075000 2.000000 -0.010000 +v 0.065000 0.655676 0.000000 +v 0.075000 0.655676 -0.010000 +v 0.065000 1.166712 0.000000 +v 0.075000 1.166712 -0.010000 +v 0.065000 0.733440 0.000000 +v 0.075000 0.733440 -0.010000 +v 0.065000 0.988637 0.000000 +v 0.075000 0.988637 -0.010000 +v 0.065000 0.982661 0.000000 +v 0.075000 0.972661 -0.010000 +v 0.065000 0.762401 0.000000 +v 0.075000 0.772401 -0.010000 +v 0.020935 0.982661 0.000000 +v 0.030935 0.972661 -0.010000 +v 0.020935 0.762401 0.000000 +v 0.030935 0.772401 -0.010000 +v -0.065000 0.000000 0.000000 +v -0.075000 0.000000 -0.010000 +v -0.065000 2.000000 0.000000 +v -0.075000 2.000000 -0.010000 +v -0.065000 0.655676 0.000000 +v -0.075000 0.655676 -0.010000 +v -0.065000 1.166712 0.000000 +v -0.075000 1.166712 -0.010000 +v -0.065000 0.733440 0.000000 +v -0.075000 0.733440 -0.010000 +v -0.065000 0.988637 0.000000 +v -0.075000 0.988637 -0.010000 +v -0.065000 0.982661 0.000000 +v -0.075000 0.972661 -0.010000 +v -0.065000 0.762401 0.000000 +v -0.075000 0.772401 -0.010000 +v -0.020935 0.982661 0.000000 +v -0.030935 0.972661 -0.010000 +v -0.020935 0.762401 0.000000 +v -0.030935 0.772401 -0.010000 +v -0.075000 0.954424 -0.911312 +v -0.075000 0.753307 -0.911312 +v -0.075000 0.954424 -1.000000 +v -0.075000 0.753307 -1.000000 +v 0.075000 0.954424 -1.000000 +v 0.075000 0.753307 -1.000000 +v 0.075000 0.954424 -0.911312 +v 0.075000 0.753307 -0.911312 +v 0.053113 0.765130 -0.133291 +v 0.053113 0.993204 -0.133291 +v 0.066310 0.765130 -0.125672 +v 0.066310 0.993204 -0.125672 +v 0.066310 0.765130 -0.110433 +v 0.066310 0.993204 -0.110433 +v 0.053113 0.765130 -0.102813 +v 0.053113 0.993204 -0.102813 +v 0.039915 0.765130 -0.110433 +v 0.039915 0.993204 -0.110433 +v 0.039915 0.765130 -0.125672 +v 0.039915 0.993204 -0.125672 +v 0.032467 0.805807 0.131365 +v 0.032467 0.818858 0.131365 +v 0.032467 0.805807 -0.136816 +v 0.032467 0.818858 -0.136816 +v 0.073758 0.805807 0.131365 +v 0.073758 0.818858 0.131365 +v 0.073758 0.805807 -0.136816 +v 0.073758 0.818858 -0.136816 +v 0.032467 0.927874 0.131365 +v 0.032467 0.940925 0.131365 +v 0.032467 0.927874 -0.136816 +v 0.032467 0.940925 -0.136816 +v 0.073758 0.927874 0.131365 +v 0.073758 0.940925 0.131365 +v 0.073758 0.927874 -0.136816 +v 0.073758 0.940925 -0.136816 +v 0.053113 0.806775 0.083099 +v 0.053113 0.932934 0.083099 +v 0.071903 0.806775 0.093947 +v 0.071903 0.932934 0.093947 +v 0.071903 0.806775 0.115645 +v 0.071903 0.932934 0.115645 +v 0.053113 0.806775 0.126494 +v 0.053113 0.932934 0.126494 +v 0.034322 0.806775 0.115645 +v 0.034322 0.932934 0.115645 +v 0.034322 0.806775 0.093947 +v 0.034322 0.932934 0.093947 +v 0.012500 1.861312 -0.861312 +v 0.012500 0.138688 -0.861312 +v 0.012500 0.138688 -0.138688 +v 0.012500 1.861312 -0.138688 +v 0.012500 0.733440 -0.267519 +v 0.012500 0.988637 -0.267519 +v 0.012500 1.166712 -0.138688 +v 0.012500 0.655676 -0.138688 +v 0.012500 0.753307 -0.861312 +v 0.011573 0.758010 -0.866015 +v 0.012500 0.753307 -0.267519 +v 0.011573 0.758010 -0.262816 +v 0.012500 0.834000 -0.861312 +v 0.011573 0.829297 -0.866015 +v 0.012500 0.834000 -0.267519 +v 0.011573 0.829297 -0.262816 +v 0.012500 0.873731 -0.861312 +v 0.011573 0.878434 -0.866015 +v 0.012500 0.873731 -0.267519 +v 0.011573 0.878434 -0.262816 +v 0.012500 0.954424 -0.861312 +v 0.011573 0.949722 -0.866015 +v 0.012500 0.954424 -0.267519 +v 0.011573 0.949722 -0.262816 +v -0.012500 1.861312 -0.861312 +v -0.012500 0.138688 -0.861312 +v -0.012500 0.138688 -0.138688 +v -0.012500 1.861312 -0.138688 +v -0.012500 0.733440 -0.267519 +v -0.012500 0.988637 -0.267519 +v -0.012500 1.166712 -0.138688 +v -0.012500 0.655676 -0.138688 +v -0.012500 0.753307 -0.861312 +v -0.011573 0.758010 -0.866015 +v -0.012500 0.753307 -0.267519 +v -0.011573 0.758010 -0.262816 +v -0.012500 0.834000 -0.861312 +v -0.011573 0.829297 -0.866015 +v -0.012500 0.834000 -0.267519 +v -0.011573 0.829297 -0.262816 +v -0.012500 0.873731 -0.861312 +v -0.011573 0.878434 -0.866015 +v -0.012500 0.873731 -0.267519 +v -0.011573 0.878434 -0.262816 +v -0.012500 0.954424 -0.861312 +v -0.011573 0.949722 -0.866015 +v -0.012500 0.954424 -0.267519 +v -0.011573 0.949722 -0.262816 +vt 0.482071 0.316646 +vt 0.492599 0.268801 +vt 0.492599 0.316646 +vt 0.916084 0.591352 +vt 0.951921 0.827876 +vt 0.916084 0.827876 +vt 0.934488 0.940835 +vt 0.928582 0.942288 +vt 0.928948 0.940645 +vt 0.817339 0.635132 +vt 0.651502 0.654242 +vt 0.639564 0.635132 +vt 0.026878 0.462326 +vt 0.005689 0.303540 +vt 0.026878 0.303540 +vt 0.314827 0.781356 +vt 0.296028 0.916817 +vt 0.296028 0.760168 +vt 0.817339 0.616345 +vt 0.314827 0.916817 +vt 0.333950 0.793302 +vt 0.333949 0.916817 +vt 0.736463 0.318882 +vt 0.717341 0.134293 +vt 0.736463 0.122348 +vt 0.594271 0.285212 +vt 0.613394 0.469801 +vt 0.594271 0.481746 +vt 0.542450 0.748788 +vt 0.292649 0.712952 +vt 0.542450 0.712952 +vt 0.046001 0.255490 +vt 0.051973 0.038824 +vt 0.051973 0.255490 +vt 0.619366 0.297157 +vt 0.613394 0.297157 +vt 0.666555 0.886644 +vt 0.652881 0.859517 +vt 0.683660 0.878096 +vt 0.702460 0.859517 +vt 0.051973 0.303540 +vt 0.046001 0.450380 +vt 0.046001 0.303540 +vt 0.680036 0.827073 +vt 0.633746 0.831619 +vt 0.649257 0.784529 +vt 0.690349 0.810970 +vt 0.926611 0.283306 +vt 0.916084 0.257808 +vt 0.936615 0.283306 +vt 0.066659 0.592068 +vt 0.014998 0.608014 +vt 0.005690 0.592068 +vt 0.749656 0.760168 +vt 0.760183 0.793801 +vt 0.749656 0.793801 +vt 0.817339 0.660210 +vt 0.817339 0.654242 +vt 0.026878 0.255490 +vt 0.026878 0.026878 +vt 0.046001 0.038824 +vt 0.029715 0.577350 +vt 0.039207 0.577350 +vt 0.711368 0.134293 +vt 0.717341 0.306937 +vt 0.711368 0.306937 +vt 0.664409 0.764925 +vt 0.659570 0.768426 +vt 0.570526 0.921544 +vt 0.564753 0.923072 +vt 0.564622 0.921479 +vt 0.717217 0.945045 +vt 0.718388 0.927567 +vt 0.718195 0.943853 +vt 0.560421 0.922992 +vt 0.561787 0.940663 +vt 0.560713 0.941820 +vt 0.717245 0.926378 +vt 0.721467 0.925304 +vt 0.727061 0.925087 +vt 0.721087 0.923635 +vt 0.727381 0.923449 +vt 0.564833 0.942859 +vt 0.564468 0.944502 +vt 0.010061 0.896685 +vt 0.015903 0.894826 +vt 0.015602 0.896491 +vt 0.721550 0.944905 +vt 0.721435 0.946497 +vt 0.561410 0.924159 +vt 0.019754 0.916314 +vt 0.018664 0.898655 +vt 0.019754 0.897489 +vt 0.924536 0.920778 +vt 0.925902 0.938449 +vt 0.924828 0.939606 +vt 0.051973 0.274769 +vt 0.046001 0.284261 +vt 0.046001 0.274769 +vt 0.928868 0.920858 +vt 0.925525 0.921945 +vt 0.015696 0.916430 +vt 0.018777 0.915200 +vt 0.010063 0.916440 +vt 0.015871 0.917960 +vt 0.009957 0.918083 +vt 0.903593 0.022721 +vt 0.753601 0.005689 +vt 0.903593 0.005689 +vt 0.592231 0.044914 +vt 0.742222 0.061946 +vt 0.592231 0.061946 +vt 0.753601 0.050849 +vt 0.903593 0.061946 +vt 0.753601 0.061946 +vt 0.692245 0.318882 +vt 0.671057 0.103548 +vt 0.692246 0.122348 +vt 0.674255 0.075714 +vt 0.640621 0.086241 +vt 0.640621 0.075714 +vt 0.526232 0.268801 +vt 0.526232 0.316646 +vt 0.742222 0.016786 +vt 0.592231 0.005689 +vt 0.742222 0.005689 +vt 0.742222 0.033818 +vt 0.592231 0.033818 +vt 0.058485 0.566973 +vt 0.066659 0.572946 +vt 0.058485 0.572946 +vt 0.039207 0.566973 +vt 0.029715 0.572946 +vt 0.029715 0.566973 +vt 0.753601 0.033817 +vt 0.903593 0.033818 +vt 0.727149 0.944802 +vt 0.010436 0.566973 +vt 0.005689 0.572946 +vt 0.005689 0.566973 +vt 0.663468 0.891757 +vt 0.635775 0.868065 +vt 0.570373 0.943049 +vt 0.339922 0.793302 +vt 0.222382 0.836271 +vt 0.211854 0.788427 +vt 0.222382 0.788427 +vt 0.651502 0.660211 +vt 0.817339 0.679320 +vt 0.639564 0.679320 +vt 0.092284 0.303540 +vt 0.071096 0.462326 +vt 0.071096 0.303540 +vt 0.359045 0.781356 +vt 0.377844 0.916817 +vt 0.359045 0.916817 +vt 0.817339 0.698107 +vt 0.619367 0.469801 +vt 0.638489 0.285211 +vt 0.638489 0.481746 +vt 0.633095 0.892296 +vt 0.663874 0.910875 +vt 0.656193 0.936166 +vt 0.713709 0.802712 +vt 0.732509 0.760168 +vt 0.732509 0.802712 +vt 0.682930 0.760168 +vt 0.695188 0.807469 +vt 0.659678 0.266412 +vt 0.014998 0.531905 +vt 0.062842 0.531905 +vt 0.066659 0.547851 +vt 0.553906 0.269791 +vt 0.543379 0.303424 +vt 0.543379 0.269791 +vt 0.056378 0.255490 +vt 0.005690 0.547851 +vt 0.039207 0.562569 +vt 0.730271 0.943568 +vt 0.731254 0.926081 +vt 0.731254 0.944703 +vt 0.573397 0.940891 +vt 0.574481 0.923217 +vt 0.574481 0.942042 +vt 0.570696 0.944663 +vt 0.727318 0.946384 +vt 0.570366 0.923131 +vt 0.007055 0.898880 +vt 0.005689 0.916555 +vt 0.005985 0.897737 +vt 0.937512 0.938677 +vt 0.938596 0.921004 +vt 0.938596 0.939828 +vt 0.009677 0.895087 +vt 0.934481 0.920918 +vt 0.934641 0.919331 +vt 0.934811 0.942449 +vt 0.903593 0.050849 +vt 0.592231 0.016786 +vt 0.592231 0.073325 +vt 0.625864 0.083852 +vt 0.592231 0.083852 +vt 0.256015 0.836271 +vt 0.256015 0.788427 +vt 0.573083 0.266412 +vt 0.852036 0.316991 +vt 0.816199 0.553514 +vt 0.816199 0.316991 +vt 0.928736 0.919265 +vt 0.066659 0.641647 +vt 0.065231 0.645026 +vt 0.062842 0.641647 +vt 0.705838 0.878096 +vt 0.702460 0.878096 +vt 0.674154 0.844929 +vt 0.632689 0.834828 +vt 0.292649 0.762557 +vt 0.292649 0.916817 +vt 0.618390 0.616345 +vt 0.817340 0.612914 +vt 0.005690 0.641647 +vt 0.012609 0.645026 +vt 0.005690 0.645026 +vt 0.677633 0.083852 +vt 0.677633 0.073325 +vt 0.529611 0.319035 +vt 0.757794 0.797179 +vt 0.747266 0.797179 +vt 0.949531 0.587974 +vt 0.951921 0.591352 +vt 0.849647 0.313612 +vt 0.065231 0.494893 +vt 0.066659 0.498272 +vt 0.062842 0.498272 +vt 0.657767 0.939155 +vt 0.672632 0.927510 +vt 0.674207 0.930499 +vt 0.735888 0.802712 +vt 0.735888 0.760168 +vt 0.381223 0.762557 +vt 0.381223 0.916817 +vt 0.620816 0.701538 +vt 0.817340 0.701537 +vt 0.012609 0.494893 +vt 0.005690 0.498272 +vt 0.005690 0.494893 +vt 0.629242 0.075714 +vt 0.629242 0.086241 +vt 0.259394 0.838661 +vt 0.259394 0.786038 +vt 0.551517 0.266412 +vt 0.540990 0.266412 +vt 0.757652 0.103548 +vt 0.757652 0.340071 +vt 0.041596 0.303540 +vt 0.005689 0.255490 +vt 0.005690 0.005690 +vt 0.590499 0.748788 +vt 0.590499 0.712952 +vt 0.071096 0.026878 +vt 0.092284 0.255490 +vt 0.071096 0.255490 +vt 0.051973 0.450380 +vt 0.056378 0.274769 +vt 0.056378 0.284261 +vt 0.770473 0.748789 +vt 0.770473 0.712952 +vt 0.041596 0.284261 +vt 0.041596 0.274769 +vt 0.839729 0.699298 +vt 0.831045 0.699299 +vt 0.831024 0.569515 +vt 0.323689 0.368753 +vt 0.326247 0.513936 +vt 0.323712 0.512813 +vt 0.484577 0.106103 +vt 0.628460 0.106103 +vt 0.628460 0.110917 +vt 0.300041 0.670357 +vt 0.295227 0.670357 +vt 0.295227 0.526483 +vt 0.089048 0.626916 +vt 0.080343 0.497134 +vt 0.089027 0.497132 +vt 0.106172 0.106106 +vt 0.250233 0.114407 +vt 0.281488 0.157609 +vt 0.482071 0.268801 +vt 0.005689 0.483514 +vt 0.292649 0.748789 +vt 0.947142 0.335929 +vt 0.947142 0.337357 +vt 0.936615 0.335929 +vt 0.947142 0.379901 +vt 0.947142 0.576595 +vt 0.916084 0.576595 +vt 0.916084 0.379901 +vt 0.916084 0.337357 +vt 0.926611 0.335929 +vt 0.916084 0.335929 +vt 0.947142 0.276387 +vt 0.947142 0.283306 +vt 0.947142 0.257808 +vt 0.916084 0.283306 +vt 0.916084 0.276387 +vt 0.947142 0.103548 +vt 0.916084 0.103548 +vt 0.062842 0.608014 +vt 0.014998 0.641647 +vt 0.760183 0.760168 +vt 0.041596 0.255490 +vt 0.058485 0.577350 +vt 0.010436 0.577350 +vt 0.010436 0.572946 +vt 0.039207 0.572946 +vt 0.051973 0.284261 +vt 0.753601 0.022721 +vt 0.742222 0.044914 +vt 0.671057 0.340071 +vt 0.674255 0.086241 +vt 0.066659 0.566973 +vt 0.632689 0.873178 +vt 0.339922 0.916817 +vt 0.211854 0.836271 +vt 0.092284 0.483514 +vt 0.377844 0.760168 +vt 0.618390 0.698107 +vt 0.659678 0.502935 +vt 0.014998 0.498272 +vt 0.553906 0.303424 +vt 0.058485 0.562569 +vt 0.029715 0.562569 +vt 0.010436 0.562569 +vt 0.730133 0.927265 +vt 0.573497 0.924351 +vt 0.006685 0.915371 +vt 0.937612 0.922137 +vt 0.625864 0.073325 +vt 0.573082 0.502935 +vt 0.852036 0.553514 +vt 0.066659 0.645026 +vt 0.705838 0.859517 +vt 0.673097 0.848138 +vt 0.620778 0.612914 +vt 0.529611 0.266412 +vt 0.918473 0.587974 +vt 0.818588 0.313612 +vt 0.066659 0.494893 +vt 0.092284 0.005689 +vt 0.056378 0.303540 +vt 0.839707 0.569514 +vt 0.842033 0.567275 +vt 0.842033 0.700351 +vt 0.828719 0.701538 +vt 0.828719 0.568462 +vt 0.103692 0.512849 +vt 0.272181 0.337506 +vt 0.103663 0.337533 +vt 0.315389 0.368754 +vt 0.326247 0.366244 +vt 0.659678 0.129760 +vt 0.659678 0.255033 +vt 0.484577 0.255033 +vt 0.482071 0.103548 +vt 0.629582 0.103572 +vt 0.444147 0.526484 +vt 0.444147 0.701573 +vt 0.318883 0.701573 +vt 0.292649 0.672839 +vt 0.292673 0.525315 +vt 0.080364 0.626918 +vt 0.078038 0.629157 +vt 0.078038 0.496080 +vt 0.091352 0.494893 +vt 0.091352 0.627970 +vt 0.281488 0.326127 +vt 0.106172 0.326127 +vt 0.103663 0.103548 +vt 0.251356 0.103572 +vt 0.250233 0.106106 +vt 0.030383 0.669552 +vt 0.079577 0.666265 +vt 0.079577 0.669552 +vt 0.030383 0.666265 +vt 0.079577 0.662978 +vt 0.030383 0.662978 +vt 0.079577 0.659692 +vt 0.030383 0.659692 +vt 0.079577 0.656405 +vt 0.030383 0.676126 +vt 0.079577 0.672839 +vt 0.079577 0.676126 +vt 0.030383 0.672839 +vt 0.882594 0.884444 +vt 0.940438 0.887259 +vt 0.882594 0.887259 +vt 0.949344 0.898980 +vt 0.940438 0.896165 +vt 0.949344 0.896165 +vt 0.940438 0.898980 +vt 0.882594 0.896165 +vt 0.882594 0.898980 +vt 0.873687 0.896165 +vt 0.940438 0.907886 +vt 0.897130 0.806314 +vt 0.894315 0.864159 +vt 0.894315 0.806314 +vt 0.882594 0.873065 +vt 0.885409 0.864159 +vt 0.885409 0.873065 +vt 0.882594 0.864159 +vt 0.885409 0.806314 +vt 0.882594 0.806314 +vt 0.885409 0.797408 +vt 0.873687 0.864159 +vt 0.833701 0.900185 +vt 0.838381 0.927396 +vt 0.833701 0.927396 +vt 0.838381 0.900185 +vt 0.843061 0.927396 +vt 0.843061 0.900185 +vt 0.847741 0.927396 +vt 0.847741 0.900185 +vt 0.852421 0.927396 +vt 0.852421 0.900185 +vt 0.857101 0.927396 +vt 0.829021 0.900185 +vt 0.829021 0.927396 +vt 0.030383 0.656405 +vt 0.940438 0.884444 +vt 0.873687 0.898980 +vt 0.882594 0.907886 +vt 0.897130 0.864159 +vt 0.882594 0.797408 +vt 0.873687 0.806314 +vt 0.857101 0.900185 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.6247 0.0000 -0.7809 +vn 1.0000 0.0000 0.0000 +vn 0.6247 0.7809 0.0000 +vn 0.6247 -0.7809 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3821 -0.7912 -0.4776 +vn 0.5439 0.4919 -0.6799 +vn 0.6247 0.0000 0.7809 +vn 0.0000 0.5862 -0.8102 +vn 0.0000 -0.7071 0.7071 +vn -0.5602 0.0000 -0.8283 +vn -0.5602 0.0000 0.8283 +vn 0.4637 0.6689 -0.5810 +vn 0.0000 0.7071 -0.7071 +vn 0.4634 0.6706 0.5793 +vn 0.0000 0.7071 0.7071 +vn 0.4634 -0.6706 -0.5792 +vn 0.4637 -0.6689 0.5810 +vn 0.4634 -0.6706 -0.5793 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.8561 -0.5168 +vn -0.6247 0.0000 -0.7809 +vn -0.6247 0.7809 0.0000 +vn -0.6247 -0.7809 0.0000 +vn -0.3821 -0.7912 -0.4776 +vn -0.5439 0.4919 -0.6799 +vn -0.6247 0.0000 0.7809 +vn 0.5602 0.0000 -0.8283 +vn 0.5602 0.0000 0.8283 +vn -0.4634 0.6706 -0.5793 +vn -0.4634 0.6706 0.5793 +vn -0.4634 -0.6706 -0.5792 +vn -0.4634 -0.6706 0.5792 +vn -0.4634 -0.6706 0.5793 +vn -0.4634 -0.6706 -0.5793 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.9811 -0.1935 0.0000 +vn 0.4634 0.6706 -0.5793 +vn 0.4637 0.6689 0.5810 +vn 0.4637 -0.6689 -0.5810 +vn 0.4634 -0.6706 0.5792 +vn -0.5603 0.0000 -0.8283 +vn 0.4634 -0.6706 0.5793 +vn -0.4637 0.6689 -0.5810 +vn -0.4637 0.6689 0.5810 +vn -0.4637 -0.6689 -0.5810 +vn -0.4637 -0.6689 0.5810 +vn 0.5603 0.0000 -0.8283 +vn 0.9811 0.1935 -0.0000 +vn -0.9811 0.1935 0.0000 +vn -0.9811 -0.1935 -0.0000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn -0.5773 0.5773 0.5773 +vn -0.5773 -0.5773 -0.5773 +vn -0.5773 -0.5773 0.5773 +vn -0.5773 0.5773 -0.5773 +vn 0.5773 -0.5773 -0.5773 +vn 0.5773 0.5773 -0.5773 +vn 0.5773 -0.5773 0.5773 +vn 0.5773 0.5773 0.5773 +s off +f 321/437/69 262/438/69 261/439/69 +f 408/440/70 267/441/70 329/442/70 +f 374/443/71 311/444/71 312/445/71 +f 276/446/72 272/447/72 266/448/72 +f 263/449/73 430/450/73 432/451/73 +f 265/452/73 390/453/73 386/454/73 +f 266/448/73 392/455/73 276/446/73 +f 275/456/72 271/457/72 278/458/72 +f 263/459/74 271/460/74 265/461/74 +f 266/462/75 269/463/75 264/464/75 +f 427/465/76 267/466/76 429/467/76 +f 309/468/69 331/469/69 371/470/69 +f 334/471/77 269/463/77 272/472/77 +f 278/473/78 279/474/78 275/475/78 +f 394/476/73 275/475/73 279/474/73 +f 351/477/69 270/478/69 289/479/69 +f 276/480/73 396/481/73 280/482/73 +f 280/482/79 277/483/79 276/480/79 +f 423/484/69 409/485/69 403/486/69 +f 280/487/73 321/488/73 279/489/73 +f 262/490/77 398/491/77 402/492/77 +f 339/493/76 272/447/76 277/494/76 +f 431/495/80 264/496/80 269/497/80 +f 279/489/72 287/498/72 297/499/72 +f 333/500/70 270/501/70 332/502/70 +f 336/503/81 277/483/81 274/504/81 +f 355/505/82 294/506/82 293/507/82 +f 287/508/83 282/509/83 288/510/83 +f 285/511/84 284/512/84 283/513/84 +f 281/514/85 292/515/85 282/509/85 +f 354/516/86 291/517/86 353/518/86 +f 283/513/87 290/519/87 289/520/87 +f 368/521/88 305/522/88 306/523/88 +f 287/508/89 296/524/89 295/525/89 +f 285/511/90 294/506/90 286/526/90 +f 301/527/84 300/528/84 299/529/84 +f 297/530/83 304/531/83 303/532/83 +f 367/533/69 293/534/69 305/535/69 +f 299/529/87 306/523/87 305/522/87 +f 297/530/85 308/536/85 298/537/85 +f 301/527/90 310/538/90 302/539/90 +f 372/540/82 309/541/82 371/542/82 +f 303/532/91 312/445/91 311/444/91 +f 316/543/73 313/544/73 315/545/73 +f 320/546/73 317/547/73 319/548/73 +f 375/549/77 315/550/77 313/551/77 +f 325/552/92 406/553/92 327/554/92 +f 404/555/70 321/556/70 261/557/70 +f 261/439/73 402/558/73 404/559/73 +f 379/560/77 319/561/77 317/562/77 +f 380/563/70 320/546/70 382/564/70 +f 373/565/76 274/566/76 311/567/76 +f 369/568/76 295/569/76 357/570/76 +f 376/571/70 316/543/70 378/572/70 +f 358/573/71 295/525/71 296/524/71 +f 353/574/76 273/575/76 335/576/76 +f 340/577/93 273/578/93 278/473/93 +f 352/579/88 289/520/88 290/519/88 +f 333/580/76 278/458/76 271/457/76 +f 324/581/69 383/582/69 323/583/69 +f 334/584/94 338/585/94 328/586/94 +f 428/587/92 325/588/92 426/589/92 +f 327/590/92 410/591/92 337/592/92 +f 412/593/92 328/586/92 338/585/92 +f 337/592/94 333/580/94 327/590/94 +f 333/500/95 325/552/95 327/554/95 +f 331/594/96 328/595/96 326/596/96 +f 341/597/97 340/577/97 337/598/97 +f 337/598/92 414/599/92 341/597/92 +f 338/600/92 416/601/92 412/602/92 +f 342/603/98 339/604/98 336/503/98 +f 408/605/92 326/596/92 328/595/92 +f 383/606/92 384/607/92 342/608/92 +f 418/609/77 324/610/77 422/611/77 +f 363/612/99 371/470/99 331/469/99 +f 341/613/94 342/608/94 359/614/94 +f 350/615/100 343/616/100 349/617/100 +f 346/618/101 347/619/101 345/620/101 +f 343/616/102 354/516/102 353/518/102 +f 352/579/103 345/620/103 351/621/103 +f 358/573/104 349/617/104 357/622/104 +f 347/619/105 356/623/105 355/505/105 +f 362/624/101 363/625/101 361/626/101 +f 366/627/100 359/628/100 365/629/100 +f 368/521/103 361/626/103 367/630/103 +f 359/628/102 370/631/102 369/632/102 +f 363/625/106 372/540/106 371/542/106 +f 374/443/107 365/629/107 373/633/107 +f 375/549/92 378/572/92 377/634/92 +f 379/560/92 382/564/92 381/635/92 +f 383/636/70 424/637/70 323/638/70 +f 422/639/92 323/583/92 424/640/92 +f 264/464/73 388/641/73 266/462/73 +f 406/642/77 268/643/77 386/644/77 +f 370/631/86 307/645/86 369/632/86 +f 396/646/108 397/647/108 398/648/108 +f 394/476/108 389/649/108 390/650/108 +f 392/651/108 395/652/108 396/481/108 +f 385/653/108 390/453/108 389/654/108 +f 388/655/108 391/656/108 392/455/108 +f 394/657/108 399/658/108 393/659/108 +f 399/660/88 404/555/88 403/661/88 +f 402/558/108 403/662/108 404/559/108 +f 402/492/82 397/663/82 401/664/82 +f 408/440/70 387/665/70 388/666/70 +f 386/644/77 405/667/77 406/642/77 +f 417/668/109 416/669/109 418/670/109 +f 413/671/109 410/672/109 409/673/109 +f 411/674/109 416/601/109 415/675/109 +f 410/591/109 405/676/109 409/677/109 +f 407/678/109 412/593/109 411/679/109 +f 419/680/109 414/681/109 413/682/109 +f 424/637/88 419/683/88 423/684/88 +f 421/685/109 424/640/109 423/686/109 +f 417/687/82 422/611/82 421/688/82 +f 263/459/73 386/689/73 268/690/73 +f 283/691/80 289/479/80 270/478/80 +f 264/496/73 429/692/73 267/693/73 +f 428/694/76 429/467/76 430/695/76 +f 326/696/92 427/697/92 425/698/92 +f 426/589/99 325/588/99 332/699/99 +f 361/700/99 425/698/99 347/701/99 +f 427/697/92 426/589/92 425/698/92 +f 330/702/76 430/695/76 268/703/76 +f 432/451/73 429/692/73 431/495/73 +f 285/704/80 431/495/80 299/705/80 +f 485/706/73 489/707/73 491/708/73 +f 495/709/110 494/710/110 493/711/110 +f 481/712/73 483/713/73 477/714/73 +f 501/715/92 507/716/92 505/717/92 +f 511/718/92 513/719/92 509/720/92 +f 517/721/92 502/722/92 503/723/92 +f 321/437/69 322/724/69 262/438/69 +f 408/440/70 388/666/70 267/441/70 +f 374/443/71 373/633/71 311/444/71 +f 276/446/72 277/494/72 272/447/72 +f 263/449/73 268/725/73 430/450/73 +f 265/452/73 275/456/73 390/453/73 +f 266/448/73 388/655/73 392/455/73 +f 275/456/72 265/452/72 271/457/72 +f 263/459/74 270/501/74 271/460/74 +f 266/462/75 272/472/75 269/463/75 +f 427/465/76 329/726/76 267/466/76 +f 309/468/69 269/497/69 331/469/69 +f 334/471/77 331/594/77 269/463/77 +f 278/473/78 273/578/78 279/474/78 +f 394/476/73 390/650/73 275/475/73 +f 351/477/69 332/699/69 270/478/69 +f 276/480/73 392/651/73 396/481/73 +f 280/482/79 274/504/79 277/483/79 +f 397/727/69 395/728/69 401/729/69 +f 395/728/69 391/730/69 401/729/69 +f 391/730/69 387/731/69 407/732/69 +f 411/733/69 415/734/69 421/735/69 +f 415/734/69 417/736/69 421/735/69 +f 391/730/69 407/732/69 411/733/69 +f 393/737/69 399/738/69 403/486/69 +f 401/729/69 391/730/69 411/733/69 +f 389/739/69 393/737/69 403/486/69 +f 423/484/69 419/740/69 413/741/69 +f 401/729/69 411/733/69 421/735/69 +f 423/484/69 413/741/69 409/485/69 +f 401/729/69 421/735/69 423/484/69 +f 385/742/69 389/739/69 405/743/69 +f 389/739/69 403/486/69 409/485/69 +f 405/743/69 389/739/69 409/485/69 +f 403/486/69 401/729/69 423/484/69 +f 280/487/73 396/646/73 322/744/73 +f 396/646/73 398/648/73 322/744/73 +f 400/745/73 394/657/73 321/488/73 +f 394/657/73 279/489/73 321/488/73 +f 280/487/73 322/744/73 321/488/73 +f 262/490/77 322/746/77 398/491/77 +f 339/493/76 334/584/76 272/447/76 +f 309/468/80 301/747/80 269/497/80 +f 301/747/80 431/495/80 269/497/80 +f 303/748/72 311/567/72 274/566/72 +f 279/489/72 273/575/72 281/749/72 +f 273/575/72 291/750/72 281/749/72 +f 303/748/72 274/566/72 280/487/72 +f 295/569/72 307/751/72 297/499/72 +f 297/499/72 303/748/72 280/487/72 +f 280/487/72 279/489/72 297/499/72 +f 279/489/72 281/749/72 287/498/72 +f 287/498/72 295/569/72 297/499/72 +f 333/500/70 271/460/70 270/501/70 +f 336/503/81 339/604/81 277/483/81 +f 355/505/82 356/623/82 294/506/82 +f 287/508/83 281/514/83 282/509/83 +f 285/511/84 286/526/84 284/512/84 +f 281/514/111 291/517/111 292/515/111 +f 354/516/86 292/515/86 291/517/86 +f 283/513/112 284/512/112 290/519/112 +f 368/521/88 367/630/88 305/522/88 +f 287/508/113 288/510/113 296/524/113 +f 285/511/114 293/507/114 294/506/114 +f 301/527/84 302/539/84 300/528/84 +f 297/530/115 298/537/115 304/531/115 +f 367/533/69 355/752/69 293/534/69 +f 299/529/112 300/528/112 306/523/112 +f 297/530/111 307/645/111 308/536/111 +f 301/527/116 309/541/116 310/538/116 +f 372/540/82 310/538/82 309/541/82 +f 303/532/113 304/531/113 312/445/113 +f 316/543/73 314/753/73 313/544/73 +f 320/546/73 318/754/73 317/547/73 +f 375/549/77 377/634/77 315/550/77 +f 325/552/92 330/755/92 406/553/92 +f 404/555/70 400/756/70 321/556/70 +f 261/439/73 262/438/73 402/558/73 +f 379/560/77 381/635/77 319/561/77 +f 380/563/70 318/754/70 320/546/70 +f 373/565/76 336/757/76 274/566/76 +f 369/568/76 307/751/76 295/569/76 +f 376/571/70 314/753/70 316/543/70 +f 358/573/71 357/622/71 295/525/71 +f 353/574/76 291/750/76 273/575/76 +f 340/577/93 335/758/93 273/578/93 +f 352/579/88 351/621/88 289/520/88 +f 333/580/76 340/759/76 278/458/76 +f 324/581/69 384/760/69 383/582/69 +f 334/584/94 339/493/94 338/585/94 +f 428/587/92 330/761/92 325/588/92 +f 327/590/92 406/762/92 410/591/92 +f 412/593/92 408/763/92 328/586/92 +f 337/592/94 340/759/94 333/580/94 +f 333/500/95 332/502/95 325/552/95 +f 331/594/96 334/471/96 328/595/96 +f 341/597/97 335/758/97 340/577/97 +f 337/598/92 410/672/92 414/599/92 +f 338/600/92 342/603/92 416/601/92 +f 342/603/98 338/600/98 339/604/98 +f 408/605/92 329/764/92 326/596/92 +f 341/613/92 414/681/92 383/606/92 +f 414/681/92 420/765/92 383/606/92 +f 418/670/92 416/669/92 384/607/92 +f 416/669/92 342/608/92 384/607/92 +f 341/613/92 383/606/92 342/608/92 +f 418/609/77 384/766/77 324/610/77 +f 326/696/99 425/698/99 331/469/99 +f 425/698/99 363/612/99 331/469/99 +f 336/757/94 373/565/94 365/767/94 +f 359/614/94 369/568/94 357/570/94 +f 342/608/94 336/757/94 365/767/94 +f 359/614/94 357/570/94 349/768/94 +f 342/608/94 365/767/94 359/614/94 +f 353/574/94 335/576/94 343/769/94 +f 335/576/94 341/613/94 343/769/94 +f 359/614/94 349/768/94 341/613/94 +f 349/768/94 343/769/94 341/613/94 +f 350/615/100 344/770/100 343/616/100 +f 346/618/101 348/771/101 347/619/101 +f 343/616/117 344/770/117 354/516/117 +f 352/579/118 346/618/118 345/620/118 +f 358/573/119 350/615/119 349/617/119 +f 347/619/120 348/771/120 356/623/120 +f 362/624/101 364/772/101 363/625/101 +f 366/627/121 360/773/121 359/628/121 +f 368/521/118 362/624/118 361/626/118 +f 359/628/117 360/773/117 370/631/117 +f 363/625/120 364/772/120 372/540/120 +f 374/443/119 366/627/119 365/629/119 +f 375/549/92 376/571/92 378/572/92 +f 379/560/92 380/563/92 382/564/92 +f 383/636/70 420/774/70 424/637/70 +f 422/639/92 324/581/92 323/583/92 +f 264/464/73 267/775/73 388/641/73 +f 406/642/77 330/776/77 268/643/77 +f 370/631/86 308/536/86 307/645/86 +f 396/646/108 395/777/108 397/647/108 +f 394/476/108 393/778/108 389/649/108 +f 392/651/108 391/779/108 395/652/108 +f 385/653/108 386/454/108 390/453/108 +f 388/655/108 387/780/108 391/656/108 +f 394/657/108 400/745/108 399/658/108 +f 399/660/88 400/756/88 404/555/88 +f 402/558/108 401/781/108 403/662/108 +f 402/492/82 398/491/82 397/663/82 +f 408/440/70 407/782/70 387/665/70 +f 386/644/77 385/783/77 405/667/77 +f 417/668/109 415/784/109 416/669/109 +f 413/671/109 414/599/109 410/672/109 +f 411/674/109 412/602/109 416/601/109 +f 410/591/109 406/762/109 405/676/109 +f 407/678/109 408/763/109 412/593/109 +f 419/680/109 420/765/109 414/681/109 +f 424/637/88 420/774/88 419/683/88 +f 421/685/109 422/639/109 424/640/109 +f 417/687/82 418/609/82 422/611/82 +f 263/459/73 265/461/73 386/689/73 +f 263/449/80 432/451/80 270/478/80 +f 432/451/80 283/691/80 270/478/80 +f 264/496/73 431/495/73 429/692/73 +f 428/694/76 427/465/76 429/467/76 +f 326/696/92 329/785/92 427/697/92 +f 351/477/99 345/786/99 332/699/99 +f 345/786/99 426/589/99 332/699/99 +f 355/752/99 367/533/99 361/700/99 +f 361/700/99 363/612/99 425/698/99 +f 425/698/99 426/589/99 347/701/99 +f 426/589/99 345/786/99 347/701/99 +f 347/701/99 355/752/99 361/700/99 +f 427/697/92 428/587/92 426/589/92 +f 330/702/76 428/694/76 430/695/76 +f 432/451/73 430/450/73 429/692/73 +f 299/705/80 305/535/80 293/534/80 +f 285/704/80 283/691/80 432/451/80 +f 299/705/80 293/534/80 285/704/80 +f 431/495/80 301/747/80 299/705/80 +f 285/704/80 432/451/80 431/495/80 +f 487/787/110 488/788/110 485/706/110 +f 488/788/110 486/789/110 485/706/110 +f 490/790/122 492/791/122 491/708/122 +f 491/708/73 487/787/73 485/706/73 +f 489/707/122 490/790/122 491/708/122 +f 493/711/73 473/792/73 479/793/73 +f 473/792/73 476/794/73 479/793/73 +f 493/711/73 479/793/73 478/795/73 +f 495/709/110 496/796/110 494/710/110 +f 478/795/73 495/709/73 493/711/73 +f 480/797/73 475/798/73 477/714/73 +f 475/798/73 474/799/73 477/714/73 +f 481/712/122 482/800/122 484/801/122 +f 474/799/73 481/712/73 477/714/73 +f 481/712/122 484/801/122 483/713/122 +f 498/802/92 499/803/92 501/715/92 +f 499/803/92 504/804/92 501/715/92 +f 508/805/123 506/806/123 505/717/123 +f 505/717/92 498/802/92 501/715/92 +f 507/716/123 508/805/123 505/717/123 +f 515/807/123 516/808/123 513/719/123 +f 516/808/123 514/809/123 513/719/123 +f 510/810/124 512/811/124 511/718/124 +f 511/718/92 515/807/92 513/719/92 +f 509/720/124 510/810/124 511/718/124 +f 500/812/92 497/813/92 503/723/92 +f 497/813/92 517/721/92 503/723/92 +f 517/721/124 518/814/124 520/815/124 +f 517/721/124 520/815/124 519/816/124 +f 517/721/92 519/816/92 502/722/92 +s 1 +f 434/817/76 435/818/125 433/819/76 +f 436/820/125 437/821/126 435/818/125 +f 438/822/126 439/823/69 437/821/126 +f 440/824/69 441/825/127 439/823/69 +f 442/826/127 443/827/128 441/828/127 +f 444/829/128 433/819/76 443/827/128 +f 446/830/129 447/831/130 445/832/131 +f 448/833/132 451/834/133 447/835/130 +f 452/836/134 449/837/135 451/834/133 +f 450/838/136 445/839/131 449/837/135 +f 451/834/133 445/832/131 447/831/130 +f 448/840/132 450/838/136 452/836/134 +f 454/841/129 455/842/130 453/843/131 +f 456/844/132 459/845/133 455/846/130 +f 460/847/134 457/848/135 459/845/133 +f 458/849/136 453/850/131 457/848/135 +f 459/845/133 453/843/131 455/842/130 +f 456/851/132 458/849/136 460/847/134 +f 462/852/76 463/853/125 461/854/76 +f 464/855/125 465/856/126 463/853/125 +f 466/857/126 467/858/69 465/856/126 +f 468/859/69 469/860/127 467/858/69 +f 470/861/127 471/862/128 469/860/127 +f 472/863/128 461/854/76 471/864/128 +f 434/817/76 436/820/125 435/818/125 +f 436/820/125 438/822/126 437/821/126 +f 438/822/126 440/824/69 439/823/69 +f 440/824/69 442/865/127 441/825/127 +f 442/826/127 444/829/128 443/827/128 +f 444/829/128 434/817/76 433/819/76 +f 446/830/129 448/866/132 447/831/130 +f 448/833/132 452/836/134 451/834/133 +f 452/836/134 450/838/136 449/837/135 +f 450/838/136 446/867/129 445/839/131 +f 451/834/133 449/837/135 445/832/131 +f 448/840/132 446/868/129 450/838/136 +f 454/841/129 456/869/132 455/842/130 +f 456/844/132 460/847/134 459/845/133 +f 460/847/134 458/849/136 457/848/135 +f 458/849/136 454/870/129 453/850/131 +f 459/845/133 457/848/135 453/843/131 +f 456/851/132 454/871/129 458/849/136 +f 462/852/76 464/855/125 463/853/125 +f 464/855/125 466/857/126 465/856/126 +f 466/857/126 468/859/69 467/858/69 +f 468/859/69 470/861/127 469/860/127 +f 470/861/127 472/872/128 471/862/128 +f 472/863/128 462/852/76 461/854/76 diff --git a/src/main/resources/assets/hbm/models/doors/round_airlock_door.obj b/src/main/resources/assets/hbm/models/doors/round_airlock_door.obj new file mode 100644 index 000000000..1a9ada200 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/round_airlock_door.obj @@ -0,0 +1,3160 @@ +# Blender v2.92.0 OBJ File: 'airlock.blend' +# www.blender.org +o frame +v -0.500000 0.000000 2.000000 +v -0.500000 4.000000 2.000000 +v -0.500000 0.000000 -2.000000 +v -0.500000 4.000000 -2.000000 +v 0.500000 0.000000 2.000000 +v 0.500000 4.000000 2.000000 +v 0.500000 0.000000 -2.000000 +v 0.500000 4.000000 -2.000000 +v 0.500000 1.990837 -1.903622 +v -0.500000 1.990837 -1.903622 +v 0.500000 2.466150 -1.706741 +v -0.500000 2.466150 -1.706741 +v 0.500000 1.480763 -1.970774 +v -0.500000 1.480763 -1.970774 +v 0.500000 0.970688 -1.903621 +v -0.500000 0.970688 -1.903622 +v 0.500000 0.495375 -1.706740 +v -0.500000 0.495375 -1.706740 +v 0.500000 2.874311 -1.393548 +v -0.500000 2.874311 -1.393548 +v 0.500000 0.056024 -1.443547 +v -0.500000 0.056024 -1.443547 +v 0.500000 3.187504 -0.985387 +v -0.500000 3.187504 -0.985387 +v 0.500000 0.056026 1.443549 +v -0.500000 0.056026 1.443549 +v 0.500000 3.384384 -0.510074 +v -0.500000 3.384384 -0.510074 +v 0.500000 3.451537 -0.000000 +v -0.500000 3.451537 -0.000000 +v 0.500000 3.384385 0.510074 +v -0.500000 3.384385 0.510074 +v 0.500000 3.187504 0.985387 +v -0.500000 3.187504 0.985387 +v 0.500000 2.874311 1.393548 +v -0.500000 2.874311 1.393548 +v 0.500000 2.466151 1.706741 +v -0.500000 2.466151 1.706741 +v 0.500000 1.990837 1.903622 +v -0.500000 1.990837 1.903622 +v 0.500000 1.480764 1.970774 +v -0.500000 1.480763 1.970774 +v 0.500000 0.970690 1.903622 +v -0.500000 0.970690 1.903622 +v 0.500000 0.495377 1.706741 +v -0.500000 0.495376 1.706741 +v -0.533603 1.476714 -2.000000 +v -0.533603 1.994352 -1.931852 +v -0.533603 2.476714 -1.732051 +v -0.533603 2.890928 -1.414214 +v -0.533603 3.208765 -1.000000 +v -0.533603 3.408566 -0.517638 +v -0.533603 3.476714 -0.000000 +v -0.533603 3.408566 0.517638 +v -0.533603 3.208765 1.000000 +v -0.533603 2.890928 1.414213 +v -0.533603 2.476715 1.732051 +v -0.533603 1.994353 1.931852 +v -0.533603 1.476715 2.000000 +v -0.533603 0.959077 1.931852 +v -0.533603 0.476715 1.732051 +v -0.533603 0.062501 1.414214 +v -0.533603 0.062500 -1.414213 +v -0.533603 0.476713 -1.732050 +v -0.533603 0.959075 -1.931851 +v 0.533603 1.476714 -2.000000 +v 0.533603 1.994352 -1.931852 +v 0.533603 2.476714 -1.732051 +v 0.533603 2.890928 -1.414214 +v 0.533603 3.208765 -1.000000 +v 0.533603 3.408566 -0.517638 +v 0.533603 3.476714 -0.000000 +v 0.533603 3.408566 0.517638 +v 0.533603 3.208765 1.000000 +v 0.533603 2.890928 1.414213 +v 0.533603 2.476715 1.732051 +v 0.533603 1.994353 1.931852 +v 0.533603 1.476715 2.000000 +v 0.533603 0.959077 1.931852 +v 0.533603 0.476715 1.732051 +v 0.533603 0.062501 1.414214 +v 0.533603 0.062500 -1.414213 +v 0.533603 0.476713 -1.732050 +v 0.533603 0.959074 -1.931851 +v -0.533603 1.970088 -1.841296 +v -0.533603 1.476714 -1.906250 +v -0.533603 2.429839 -1.650861 +v -0.533603 2.824636 -1.347922 +v -0.533603 3.127575 -0.953125 +v -0.533603 3.318010 -0.493374 +v -0.533603 3.382964 -0.000000 +v -0.533603 3.318010 0.493374 +v -0.533603 3.127575 0.953125 +v -0.533603 2.824636 1.347922 +v -0.533603 2.429840 1.650861 +v -0.533603 1.970088 1.841296 +v -0.533603 1.476715 1.906250 +v -0.533603 0.983341 1.841296 +v -0.533603 0.523590 1.650861 +v -0.533603 0.523588 -1.650860 +v -0.533603 0.983339 -1.841296 +v 0.533603 1.970088 -1.841296 +v 0.533603 1.476714 -1.906250 +v 0.533603 2.429839 -1.650861 +v 0.533603 2.824636 -1.347922 +v 0.533603 3.127575 -0.953125 +v 0.533603 3.318010 -0.493374 +v 0.533603 3.382964 -0.000000 +v 0.533603 3.318010 0.493374 +v 0.533603 3.127575 0.953125 +v 0.533603 2.824637 1.347922 +v 0.533603 2.429840 1.650861 +v 0.533603 1.970088 1.841296 +v 0.533603 1.476715 1.906250 +v 0.533603 0.983341 1.841296 +v 0.533603 0.523590 1.650861 +v 0.533603 0.523588 -1.650860 +v 0.533603 0.983339 -1.841296 +v 0.533603 -0.000000 -1.414213 +v -0.533603 -0.000000 -1.414213 +v -0.533603 0.000001 1.414214 +v 0.533603 0.000001 1.414214 +v 0.166667 0.062500 -1.414213 +v -0.166667 0.062500 -1.414213 +v -0.166667 0.062501 1.414214 +v 0.166667 0.062501 1.414214 +v 0.166667 3.382964 -0.000000 +v -0.166667 3.382964 -0.000000 +v -0.166667 3.318010 0.493374 +v 0.166667 3.318010 0.493374 +v -0.166667 0.523588 -1.650860 +v 0.166667 0.523588 -1.650860 +v 0.166667 0.523590 1.650861 +v -0.166667 0.523590 1.650861 +v -0.166667 3.127575 0.953125 +v 0.166667 3.127575 0.953125 +v -0.166667 0.983339 -1.841296 +v 0.166667 0.983339 -1.841296 +v 0.166667 1.476714 -1.906250 +v -0.166667 1.476714 -1.906250 +v -0.166667 1.970088 -1.841296 +v 0.166667 1.970088 -1.841296 +v -0.166667 2.824637 1.347922 +v 0.166667 2.824637 1.347922 +v -0.166667 2.429839 -1.650861 +v 0.166667 2.429839 -1.650861 +v -0.166667 2.429840 1.650861 +v 0.166667 2.429840 1.650861 +v -0.166667 2.824636 -1.347922 +v 0.166667 2.824636 -1.347922 +v -0.166667 1.970088 1.841296 +v 0.166667 1.970088 1.841296 +v -0.166667 3.127575 -0.953125 +v 0.166667 3.127575 -0.953125 +v -0.166667 1.476715 1.906250 +v 0.166667 1.476715 1.906250 +v -0.166667 3.318010 -0.493374 +v 0.166667 3.318010 -0.493374 +v -0.166667 0.983341 1.841296 +v 0.166667 0.983341 1.841296 +v 0.500000 -0.000000 -1.414213 +v -0.500000 -0.000000 -1.414213 +v -0.500000 0.000001 1.414214 +v 0.500000 0.000001 1.414214 +v -0.166667 0.048000 1.923243 +v -0.166667 0.047998 -1.923243 +v 0.166667 0.048000 1.923243 +v 0.166667 0.047998 -1.923243 +v -0.166667 0.978943 1.923243 +v -0.166667 0.516453 1.923243 +v 0.166667 0.978943 1.923243 +v 0.166667 0.516453 1.923243 +v -0.166667 3.334424 -1.923243 +v -0.166667 3.399957 -0.000000 +v 0.166667 3.334424 -1.923243 +v 0.166667 3.399957 -0.000000 +v -0.166667 1.476715 1.923243 +v 0.166667 1.476715 1.923243 +v -0.166667 3.142291 -1.923243 +v 0.166667 3.142291 -1.923243 +v -0.166667 1.974486 1.923243 +v 0.166667 1.974486 1.923243 +v -0.166667 2.836652 -1.923243 +v 0.166667 2.836652 -1.923243 +v -0.166667 2.438336 1.923243 +v 0.166667 2.438336 1.923243 +v -0.166667 2.438335 -1.923243 +v 0.166667 2.438335 -1.923243 +v -0.166667 2.836652 1.923243 +v 0.166667 2.836653 1.923243 +v -0.166667 1.974486 -1.923243 +v 0.166667 1.974486 -1.923243 +v -0.166667 0.978941 -1.923243 +v -0.166667 1.476714 -1.923243 +v 0.166667 0.978941 -1.923243 +v 0.166667 1.476714 -1.923243 +v -0.166667 3.142291 1.923243 +v 0.166667 3.142291 1.923243 +v -0.166667 0.516451 -1.923243 +v 0.166667 0.516451 -1.923243 +v -0.166667 3.334424 1.923243 +v 0.166667 3.334424 1.923243 +v 0.500000 0.476715 1.732051 +v 0.500000 0.959077 1.931852 +v 0.500000 1.476715 2.000000 +v 0.500000 1.994353 1.931852 +v 0.500000 2.476715 1.732051 +v 0.500000 2.890928 1.414213 +v 0.500000 3.208765 1.000000 +v 0.500000 3.408566 0.517638 +v 0.500000 3.476714 -0.000000 +v 0.500000 3.408566 -0.517638 +v 0.500000 3.208765 -1.000000 +v 0.500000 2.890928 -1.414214 +v 0.500000 2.476714 -1.732051 +v 0.500000 1.994352 -1.931852 +v 0.500000 1.476714 -2.000000 +v 0.500000 0.959074 -1.931851 +v 0.500000 0.476713 -1.732050 +v -0.500000 0.476715 1.732051 +v -0.500000 0.959077 1.931852 +v -0.500000 1.476715 2.000000 +v -0.500000 1.994353 1.931852 +v -0.500000 2.476715 1.732051 +v -0.500000 2.890928 1.414213 +v -0.500000 3.208765 1.000000 +v -0.500000 3.408566 0.517638 +v -0.500000 3.476714 -0.000000 +v -0.500000 3.408566 -0.517638 +v -0.500000 3.208765 -1.000000 +v -0.500000 2.890928 -1.414214 +v -0.500000 2.476714 -1.732051 +v -0.500000 1.994352 -1.931852 +v -0.500000 1.476714 -2.000000 +v -0.500000 0.959075 -1.931851 +v -0.500000 0.476713 -1.732050 +vt 0.068980 0.323539 +vt 0.067373 0.076025 +vt 0.101951 0.199335 +vt 0.320032 0.005495 +vt 0.321765 0.069092 +vt 0.647589 0.225990 +vt 0.647578 0.043005 +vt 0.651413 0.005495 +vt 0.067840 0.386736 +vt 0.321765 0.328100 +vt 0.320625 0.391296 +vt 0.386516 0.069092 +vt 0.007101 0.323941 +vt 0.005495 0.076427 +vt 0.317926 0.106905 +vt 0.431125 0.134236 +vt 0.435293 0.166263 +vt 0.397517 0.258065 +vt 0.132225 0.655744 +vt 0.163488 0.645688 +vt 0.165025 0.651426 +vt 0.421694 0.342907 +vt 0.403923 0.370450 +vt 0.416559 0.339942 +vt 0.100963 0.645688 +vt 0.099425 0.651426 +vt 0.409650 0.371984 +vt 0.399613 0.403189 +vt 0.071831 0.633622 +vt 0.068860 0.638766 +vt 0.409650 0.434393 +vt 0.403923 0.435928 +vt 0.042614 0.618627 +vt 0.416560 0.466435 +vt 0.526107 0.529682 +vt 0.557311 0.519644 +vt 0.558846 0.525372 +vt 0.027618 0.589410 +vt 0.022474 0.592380 +vt 0.421695 0.463471 +vt 0.436662 0.492633 +vt 0.589354 0.512735 +vt 0.015551 0.560278 +vt 0.009813 0.561816 +vt 0.440855 0.488440 +vt 0.462860 0.512735 +vt 0.011435 0.529016 +vt 0.005495 0.529016 +vt 0.465825 0.507600 +vt 0.493368 0.525372 +vt 0.619504 0.313743 +vt 0.615551 0.492633 +vt 0.615551 0.313743 +vt 0.358254 0.687384 +vt 0.381505 0.655852 +vt 0.381505 0.687384 +vt 0.381505 0.972483 +vt 0.358254 0.939643 +vt 0.381505 0.939643 +vt 0.358254 0.435125 +vt 0.381505 0.402285 +vt 0.381505 0.435125 +vt 0.358254 0.655852 +vt 0.381505 0.624319 +vt 0.381505 0.908111 +vt 0.358254 0.876578 +vt 0.381505 0.845046 +vt 0.381505 0.876578 +vt 0.358254 0.624319 +vt 0.381505 0.592787 +vt 0.358254 0.813513 +vt 0.381505 0.813513 +vt 0.358254 0.592787 +vt 0.381505 0.561255 +vt 0.358254 0.781981 +vt 0.381505 0.781981 +vt 0.358254 0.561255 +vt 0.381505 0.529722 +vt 0.381505 0.750449 +vt 0.358254 0.498190 +vt 0.381505 0.498190 +vt 0.358254 0.750449 +vt 0.381505 0.718916 +vt 0.381505 0.466657 +vt 0.358254 0.718916 +vt 0.440854 0.317937 +vt 0.436662 0.313744 +vt 0.195590 0.638765 +vt 0.132223 0.408225 +vt 0.099423 0.406604 +vt 0.132223 0.402285 +vt 0.465824 0.298777 +vt 0.462859 0.293642 +vt 0.100960 0.412342 +vt 0.068858 0.419264 +vt 0.493367 0.281005 +vt 0.698707 0.252092 +vt 0.662402 0.254221 +vt 0.662402 0.252092 +vt 0.046812 0.443605 +vt 0.042612 0.439404 +vt 0.526106 0.276695 +vt 0.494902 0.286732 +vt 0.195588 0.419263 +vt 0.163486 0.412341 +vt 0.165023 0.406603 +vt 0.027617 0.468621 +vt 0.022472 0.465651 +vt 0.557310 0.286732 +vt 0.558845 0.281005 +vt 0.009812 0.496216 +vt 0.589353 0.293641 +vt 0.494902 0.519645 +vt 0.015550 0.497753 +vt 0.108173 0.933725 +vt 0.106043 0.897420 +vt 0.108173 0.897420 +vt 0.087859 0.930852 +vt 0.085729 0.963935 +vt 0.085729 0.930852 +vt 0.714219 0.524745 +vt 0.747302 0.526874 +vt 0.714219 0.526874 +vt 0.020742 0.931104 +vt 0.018613 0.964186 +vt 0.018613 0.931104 +vt 0.551923 0.901930 +vt 0.549793 0.935013 +vt 0.549793 0.901930 +vt 0.461565 0.291956 +vt 0.435368 0.312058 +vt 0.434975 0.312450 +vt 0.414873 0.338648 +vt 0.414596 0.339129 +vt 0.401959 0.369636 +vt 0.401816 0.370172 +vt 0.397506 0.402911 +vt 0.397506 0.403466 +vt 0.401816 0.436205 +vt 0.401960 0.436741 +vt 0.414596 0.467249 +vt 0.414874 0.467729 +vt 0.434976 0.493927 +vt 0.435368 0.494319 +vt 0.461566 0.514421 +vt 0.462047 0.514699 +vt 0.492555 0.527335 +vt 0.493090 0.527479 +vt 0.525829 0.531789 +vt 0.526384 0.531789 +vt 0.559123 0.527479 +vt 0.559659 0.527335 +vt 0.590167 0.514698 +vt 0.225797 0.618625 +vt 0.221836 0.439403 +vt 0.225797 0.439403 +vt 0.619504 0.492633 +vt 0.831188 0.746127 +vt 0.807937 0.925350 +vt 0.807937 0.746127 +vt 0.192618 0.424408 +vt 0.586388 0.298776 +vt 0.221836 0.618625 +vt 0.192620 0.633620 +vt 0.773697 0.746127 +vt 0.796948 0.925350 +vt 0.773697 0.925350 +vt 0.926346 0.069867 +vt 0.949597 0.038335 +vt 0.949597 0.069867 +vt 0.949597 0.322126 +vt 0.926346 0.290593 +vt 0.949597 0.290593 +vt 0.926346 0.101399 +vt 0.949597 0.101399 +vt 0.926346 0.353658 +vt 0.949597 0.353658 +vt 0.949597 0.132932 +vt 0.926346 0.385190 +vt 0.949597 0.385190 +vt 0.949597 0.164464 +vt 0.926346 0.132932 +vt 0.926346 0.416723 +vt 0.949597 0.416723 +vt 0.949597 0.195996 +vt 0.926346 0.164464 +vt 0.949597 0.448255 +vt 0.926346 0.511320 +vt 0.949597 0.479788 +vt 0.949597 0.511320 +vt 0.949597 0.227529 +vt 0.926346 0.195996 +vt 0.926346 0.479788 +vt 0.926346 0.542852 +vt 0.949597 0.542852 +vt 0.926346 0.259061 +vt 0.949597 0.259061 +vt 0.926346 0.038335 +vt 0.949597 0.005495 +vt 0.926346 0.575693 +vt 0.949597 0.575693 +vt 0.622626 0.313752 +vt 0.622626 0.492642 +vt 0.635215 0.820032 +vt 0.632634 0.967885 +vt 0.632634 0.820018 +vt 0.815877 0.291846 +vt 0.877345 0.278740 +vt 0.877345 0.290914 +vt 0.640163 0.633315 +vt 0.641239 0.601777 +vt 0.641240 0.633315 +vt 0.860085 0.456842 +vt 0.877344 0.486978 +vt 0.845090 0.486059 +vt 0.579768 0.737922 +vt 0.641240 0.751029 +vt 0.550636 0.749989 +vt 0.872152 0.365186 +vt 0.877345 0.335517 +vt 0.877345 0.364908 +vt 0.623981 0.572926 +vt 0.641239 0.542793 +vt 0.641239 0.572474 +vt 0.634692 0.396460 +vt 0.633615 0.428001 +vt 0.633615 0.396460 +vt 0.636047 0.664578 +vt 0.641240 0.694248 +vt 0.623980 0.693710 +vt 0.650875 0.456855 +vt 0.633615 0.486991 +vt 0.633615 0.457307 +vt 0.398583 0.633314 +vt 0.397506 0.601771 +vt 0.402699 0.602049 +vt 0.650876 0.336062 +vt 0.633615 0.310283 +vt 0.670072 0.311044 +vt 0.414766 0.572916 +vt 0.397506 0.542778 +vt 0.429762 0.543697 +vt 0.786746 0.279780 +vt 0.755485 0.274588 +vt 0.414766 0.693709 +vt 0.397506 0.719487 +vt 0.397506 0.694248 +vt 0.695090 0.291847 +vt 0.633615 0.278740 +vt 0.724224 0.279780 +vt 0.519374 0.755181 +vt 0.519374 0.754105 +vt 0.860086 0.336056 +vt 0.877345 0.310279 +vt 0.458978 0.737922 +vt 0.397506 0.751029 +vt 0.397506 0.738854 +vt 0.638808 0.427723 +vt 0.915357 0.920578 +vt 0.894235 0.676845 +vt 0.915357 0.676845 +vt 0.894235 0.005495 +vt 0.915357 0.035178 +vt 0.894235 0.035178 +vt 0.915357 0.064484 +vt 0.894235 0.064484 +vt 0.915357 0.096025 +vt 0.894235 0.096025 +vt 0.894235 0.127566 +vt 0.915357 0.127566 +vt 0.915357 0.156958 +vt 0.894235 0.156958 +vt 0.915357 0.182197 +vt 0.894235 0.182197 +vt 0.915357 0.201564 +vt 0.894235 0.201564 +vt 0.915357 0.213739 +vt 0.894235 0.213739 +vt 0.915357 0.335675 +vt 0.894235 0.335675 +vt 0.915357 0.457612 +vt 0.894235 0.457612 +vt 0.915357 0.469787 +vt 0.894235 0.469787 +vt 0.915357 0.489153 +vt 0.894235 0.489153 +vt 0.915357 0.514393 +vt 0.894235 0.514393 +vt 0.915357 0.543784 +vt 0.894235 0.543784 +vt 0.915357 0.575326 +vt 0.894235 0.575326 +vt 0.894235 0.606867 +vt 0.915357 0.606867 +vt 0.915357 0.636173 +vt 0.894235 0.636173 +vt 0.894235 0.665856 +vt 0.915357 0.665856 +vt 0.488111 0.749989 +vt 0.876268 0.396447 +vt 0.877345 0.427988 +vt 0.872152 0.427710 +vt 0.397506 0.664856 +vt 0.397506 0.633314 +vt 0.755485 0.275664 +vt 0.433962 0.718726 +vt 0.633615 0.364917 +vt 0.638808 0.365195 +vt 0.633615 0.290915 +vt 0.604785 0.718726 +vt 0.641240 0.738854 +vt 0.641240 0.664857 +vt 0.840892 0.311041 +vt 0.760850 0.958917 +vt 0.762194 0.823957 +vt 0.762194 0.969333 +vt 0.877345 0.396447 +vt 0.402699 0.664577 +vt 0.990032 0.493759 +vt 0.992233 0.561870 +vt 0.990889 0.551453 +vt 0.636047 0.602055 +vt 0.633615 0.335523 +vt 0.397506 0.572463 +vt 0.877345 0.457294 +vt 0.641240 0.719488 +vt 0.462046 0.291678 +vt 0.493090 0.278898 +vt 0.526383 0.274588 +vt 0.559658 0.279041 +vt 0.005495 0.931104 +vt 0.007624 0.964186 +vt 0.005495 0.964186 +vt 0.198058 0.922286 +vt 0.200187 0.955369 +vt 0.198058 0.955369 +vt 0.536675 0.901930 +vt 0.538804 0.935013 +vt 0.536675 0.935013 +vt 0.742779 0.252092 +vt 0.709696 0.254221 +vt 0.709696 0.252092 +vt 0.753769 0.254221 +vt 0.786851 0.252092 +vt 0.786851 0.254221 +vt 0.072611 0.930852 +vt 0.074740 0.963935 +vt 0.072611 0.963935 +vt 0.187069 0.955369 +vt 0.184940 0.922286 +vt 0.187069 0.922286 +vt 0.960586 0.538006 +vt 0.962716 0.571089 +vt 0.960586 0.571089 +vt 0.341384 0.897681 +vt 0.343513 0.930765 +vt 0.341384 0.930765 +vt 0.871547 0.531064 +vt 0.869418 0.497980 +vt 0.871547 0.497980 +vt 0.328265 0.897681 +vt 0.330395 0.930765 +vt 0.328265 0.930765 +vt 0.741558 0.930395 +vt 0.743688 0.963478 +vt 0.741558 0.963478 +vt 0.620683 0.494401 +vt 0.590532 0.514503 +vt 0.620683 0.311975 +vt 0.223103 0.324116 +vt 0.221951 0.074040 +vt 0.190475 0.078944 +vt 0.191904 0.319517 +vt 0.162864 0.306928 +vt 0.161326 0.091754 +vt 0.136494 0.111633 +vt 0.137910 0.287105 +vt 0.118657 0.261353 +vt 0.117599 0.137327 +vt 0.105823 0.167232 +vt 0.106317 0.231450 +vt 0.065640 0.012427 +vt 0.651413 0.263598 +vt 0.552691 0.259238 +vt 0.586679 0.255595 +vt 0.618394 0.243259 +vt 0.586883 0.013251 +vt 0.552820 0.009503 +vt 0.618445 0.025671 +vt 0.386516 0.328100 +vt 0.257044 0.320347 +vt 0.288698 0.307876 +vt 0.256415 0.077528 +vt 0.288704 0.089685 +vt 0.317917 0.290484 +vt 0.397506 0.010132 +vt 0.521402 0.014143 +vt 0.521401 0.254494 +vt 0.492084 0.026804 +vt 0.466891 0.046640 +vt 0.492220 0.241702 +vt 0.467071 0.221661 +vt 0.447526 0.072318 +vt 0.435314 0.102161 +vt 0.447526 0.196031 +vt 0.132225 0.649804 +vt 0.405542 0.403189 +vt 0.046814 0.614426 +vt 0.526107 0.523753 +vt 0.586389 0.507600 +vt 0.358254 0.972483 +vt 0.358254 0.402285 +vt 0.358254 0.908110 +vt 0.358254 0.845046 +vt 0.358254 0.529722 +vt 0.358254 0.466657 +vt 0.071828 0.424409 +vt 0.698707 0.254221 +vt 0.526106 0.282624 +vt 0.106043 0.933725 +vt 0.087859 0.963935 +vt 0.747302 0.524745 +vt 0.020742 0.964186 +vt 0.551923 0.935013 +vt 0.831188 0.925350 +vt 0.796948 0.746127 +vt 0.926346 0.322126 +vt 0.926346 0.448255 +vt 0.926346 0.227529 +vt 0.926346 0.005495 +vt 0.635215 0.967900 +vt 0.608988 0.543712 +vt 0.665870 0.486072 +vt 0.894235 0.920578 +vt 0.915357 0.005495 +vt 0.759993 0.901223 +vt 0.992233 0.416493 +vt 0.492554 0.279041 +vt 0.525828 0.274588 +vt 0.559122 0.278898 +vt 0.590166 0.291678 +vt 0.007624 0.931104 +vt 0.200187 0.922286 +vt 0.538804 0.901930 +vt 0.742779 0.254221 +vt 0.753769 0.252092 +vt 0.074740 0.930852 +vt 0.184940 0.955369 +vt 0.962716 0.538006 +vt 0.343513 0.897681 +vt 0.869418 0.531064 +vt 0.330395 0.897681 +vt 0.743688 0.930395 +vt 0.590532 0.291873 +vn -1.0000 -0.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9659 -0.2588 +vn 0.0000 0.4566 0.8897 +vn 0.0000 0.4200 0.9075 +vn -0.0000 0.4200 -0.9075 +vn -0.0000 0.4566 -0.8897 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 0.2588 0.9659 +vn -0.0000 -0.2588 0.9659 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.9659 0.2588 +vn -0.0000 0.2588 -0.9659 +vn 0.0000 -0.5547 -0.8320 +vn 0.0000 -0.4710 -0.8822 +vn 0.0000 -0.4710 0.8822 +vn 0.0000 -0.5547 0.8320 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.9659 0.2588 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.9994 0.0341 +vn 0.0000 -0.9994 -0.0341 +s 1 +f 2/1/1 4/2/1 30/3/1 +f 4/2/2 7/4/2 3/5/2 +f 21/6/3 25/7/3 5/8/3 +f 6/9/4 1/10/4 5/11/4 +f 7/12/5 1/10/5 3/5/5 +f 4/2/6 6/13/6 8/14/6 +f 22/15/1 3/5/1 1/10/1 +f 29/16/3 27/17/3 8/18/3 +f 59/19/1 98/20/1 60/21/1 +f 110/22/3 73/23/3 74/24/3 +f 96/25/1 59/19/1 58/26/1 +f 109/27/3 72/28/3 73/23/3 +f 95/29/1 58/26/1 57/30/1 +f 72/28/3 107/31/3 71/32/3 +f 56/33/1 95/29/1 57/30/1 +f 107/31/3 70/34/3 71/32/3 +f 66/35/3 118/36/3 84/37/3 +f 93/38/1 56/33/1 55/39/1 +f 106/40/3 69/41/3 70/34/3 +f 118/36/3 83/42/3 84/37/3 +f 92/43/1 55/39/1 54/44/1 +f 105/45/3 68/46/3 69/41/3 +f 91/47/1 54/44/1 53/48/1 +f 104/49/3 67/50/3 68/46/3 +f 122/51/3 82/52/3 81/53/3 +f 108/54/5 130/55/7 127/56/5 +f 123/57/8 117/58/9 132/59/9 +f 116/60/10 126/61/11 133/62/10 +f 109/63/7 136/64/12 130/55/7 +f 117/58/9 138/65/13 132/59/9 +f 103/66/4 142/67/14 139/68/4 +f 110/69/12 144/70/15 136/64/12 +f 138/65/13 103/66/4 139/68/4 +f 142/67/14 104/71/16 146/72/16 +f 111/73/15 148/74/17 144/70/15 +f 146/72/16 105/75/18 150/76/18 +f 112/77/17 152/78/19 148/74/17 +f 105/75/18 154/79/20 150/76/18 +f 152/78/19 114/80/2 156/81/2 +f 106/82/20 158/83/21 154/79/20 +f 114/80/2 160/84/22 156/81/2 +f 107/85/21 127/56/5 158/83/21 +f 160/84/22 116/60/10 133/62/10 +f 111/86/3 74/24/3 75/87/3 +f 98/20/1 61/88/1 60/21/1 +f 86/89/1 48/90/1 47/91/1 +f 112/92/3 75/87/3 76/93/3 +f 85/94/1 49/95/1 48/90/1 +f 77/96/3 112/92/3 76/93/3 +f 162/97/23 64/98/24 236/99/24 +f 49/95/1 88/100/1 50/101/1 +f 78/102/3 113/103/3 77/96/3 +f 64/104/1 101/105/1 65/106/1 +f 50/101/1 89/107/1 51/108/1 +f 115/109/3 78/102/3 79/110/3 +f 65/106/1 86/89/1 47/91/1 +f 89/107/1 52/111/1 51/108/1 +f 80/112/3 115/109/3 79/110/3 +f 102/113/3 66/35/3 67/50/3 +f 90/114/1 53/48/1 52/111/1 +f 220/115/25 121/116/26 163/117/26 +f 60/118/14 220/119/25 221/120/14 +f 59/121/4 221/122/14 222/123/4 +f 58/124/13 222/125/4 223/126/13 +f 57/127/27 223/128/13 224/129/27 +f 207/130/27 75/87/28 208/131/28 +f 208/132/28 74/24/29 209/133/29 +f 209/134/29 73/23/30 210/135/30 +f 210/136/30 72/28/6 211/137/6 +f 211/138/6 71/32/31 212/139/31 +f 212/140/31 70/34/32 213/141/32 +f 213/142/32 69/41/33 214/143/33 +f 214/144/33 68/46/34 215/145/34 +f 215/146/34 67/50/22 216/147/22 +f 216/148/22 66/35/2 217/149/2 +f 217/150/2 84/37/19 218/151/19 +f 218/152/19 83/42/24 219/153/24 +f 121/154/1 63/155/1 120/156/1 +f 83/42/3 82/52/3 119/157/3 +f 125/158/6 63/159/6 62/160/6 +f 64/104/1 63/155/1 100/161/1 +f 80/112/3 81/53/3 116/162/3 +f 62/163/1 61/88/1 99/164/1 +f 126/165/6 82/166/6 123/167/6 +f 159/168/22 99/169/10 98/170/22 +f 90/171/21 128/172/5 91/173/5 +f 155/174/2 98/170/22 97/175/2 +f 153/176/20 90/171/21 89/177/20 +f 96/178/19 155/174/2 97/175/2 +f 149/179/18 89/177/20 88/180/18 +f 95/181/17 151/182/19 96/178/19 +f 145/183/16 88/180/18 87/184/16 +f 94/185/15 147/186/17 95/181/17 +f 85/187/14 145/183/16 87/184/16 +f 137/188/13 86/189/4 101/190/13 +f 93/191/12 143/192/15 94/185/15 +f 140/193/4 85/187/14 86/189/4 +f 131/194/9 101/190/13 100/195/9 +f 129/196/7 93/191/12 92/197/7 +f 134/198/10 62/199/11 99/169/10 +f 124/200/8 100/195/9 63/201/8 +f 128/172/5 92/197/7 91/173/5 +f 119/157/5 164/202/5 161/203/5 +f 162/204/5 121/205/5 120/206/5 +f 154/207/1 175/208/1 180/209/1 +f 140/210/3 193/211/3 194/212/3 +f 132/213/1 168/214/1 123/215/1 +f 153/216/3 173/217/3 157/218/3 +f 142/219/1 188/220/1 192/221/1 +f 131/222/3 166/223/3 199/224/3 +f 156/225/1 171/226/1 178/227/1 +f 141/228/3 187/229/3 145/230/3 +f 133/231/1 167/232/1 172/233/1 +f 155/234/3 169/235/3 159/236/3 +f 148/237/1 190/238/1 144/239/1 +f 134/240/3 165/241/3 125/242/3 +f 158/243/1 176/244/1 175/208/1 +f 147/245/3 189/246/3 185/247/3 +f 136/248/1 202/249/1 130/250/1 +f 157/218/3 174/251/3 128/252/3 +f 146/253/1 184/254/1 188/220/1 +f 135/255/3 201/256/3 197/257/3 +f 160/258/1 172/233/1 171/226/1 +f 165/259/6 168/260/6 166/261/6 +f 166/262/4 200/263/4 199/264/4 +f 199/264/4 195/265/4 193/266/4 +f 193/266/4 196/267/4 194/268/4 +f 191/269/4 196/267/4 192/270/4 +f 191/269/4 188/271/4 187/272/4 +f 187/272/4 184/273/4 183/274/4 +f 183/274/4 180/275/4 179/276/4 +f 179/276/4 175/277/4 173/278/4 +f 173/278/35 176/279/5 174/280/5 +f 174/280/5 202/281/36 201/282/36 +f 201/282/2 198/283/2 197/284/2 +f 197/284/2 190/285/2 189/286/2 +f 189/286/2 186/287/2 185/288/2 +f 185/288/2 182/289/2 181/290/2 +f 181/290/2 178/291/2 177/292/2 +f 169/293/2 178/291/2 171/294/2 +f 169/293/2 172/295/2 170/296/2 +f 165/297/2 172/295/2 167/298/2 +f 129/299/3 174/251/3 201/256/3 +f 139/300/1 195/301/1 138/302/1 +f 155/234/3 181/303/3 177/304/3 +f 130/250/1 176/244/1 127/305/1 +f 143/306/3 197/257/3 189/246/3 +f 156/225/1 182/307/1 152/308/1 +f 144/239/1 198/309/1 136/248/1 +f 149/310/3 179/311/3 153/216/3 +f 140/210/3 191/312/3 141/228/3 +f 150/313/1 180/209/1 184/254/1 +f 124/314/3 165/315/3 166/316/3 +f 139/300/1 192/221/1 196/317/1 +f 151/318/3 185/247/3 181/303/3 +f 123/319/1 167/320/1 126/321/1 +f 137/322/3 199/224/3 193/211/3 +f 152/308/1 186/323/1 148/237/1 +f 159/236/3 170/324/3 134/240/3 +f 138/302/1 200/325/1 132/213/1 +f 145/230/3 183/326/3 149/310/3 +f 207/327/27 77/96/13 76/93/27 +f 206/328/13 78/102/4 77/96/13 +f 205/329/4 79/110/14 78/102/4 +f 204/330/14 80/112/25 79/110/14 +f 57/331/27 225/332/28 56/333/28 +f 56/334/28 226/335/29 55/336/29 +f 55/337/29 227/338/30 54/339/30 +f 54/340/30 228/341/6 53/342/6 +f 53/343/6 229/344/31 52/345/31 +f 52/346/31 230/347/32 51/348/32 +f 51/349/32 231/350/33 50/351/33 +f 50/352/33 232/353/34 49/354/34 +f 49/355/34 233/356/22 48/357/22 +f 48/358/22 234/359/2 47/360/2 +f 47/361/2 235/362/19 65/363/19 +f 65/364/19 236/365/24 64/366/24 +f 83/42/24 161/367/23 219/368/24 +f 80/112/25 164/369/26 122/51/26 +f 42/370/1 1/10/1 2/1/1 +f 4/2/1 3/5/1 14/371/1 +f 4/2/1 14/371/1 10/372/1 +f 40/373/1 42/370/1 2/1/1 +f 38/374/1 40/373/1 2/1/1 +f 4/2/1 10/372/1 12/375/1 +f 4/2/1 12/375/1 20/376/1 +f 36/377/1 38/374/1 2/1/1 +f 34/378/1 36/377/1 2/1/1 +f 4/2/1 20/376/1 24/379/1 +f 4/2/1 24/379/1 28/380/1 +f 32/381/1 34/378/1 2/1/1 +f 4/2/1 28/380/1 30/3/1 +f 30/3/1 32/381/1 2/1/1 +f 4/2/2 8/382/2 7/4/2 +f 7/383/3 13/384/3 15/385/3 +f 7/383/3 15/385/3 17/386/3 +f 43/387/3 41/388/3 5/8/3 +f 45/389/3 43/387/3 5/8/3 +f 7/383/3 17/386/3 21/6/3 +f 25/7/3 45/389/3 5/8/3 +f 7/383/3 21/6/3 5/8/3 +f 6/9/4 2/1/4 1/10/4 +f 7/12/5 5/390/5 1/10/5 +f 4/2/6 2/1/6 6/13/6 +f 1/10/1 42/370/1 44/391/1 +f 1/10/1 44/391/1 46/392/1 +f 16/393/1 14/371/1 3/5/1 +f 18/394/1 16/393/1 3/5/1 +f 1/10/1 46/392/1 26/395/1 +f 22/15/1 18/394/1 3/5/1 +f 1/10/1 26/395/1 22/15/1 +f 6/396/3 5/8/3 41/388/3 +f 6/396/3 41/388/3 39/397/3 +f 13/384/3 7/383/3 8/18/3 +f 9/398/3 13/384/3 8/18/3 +f 6/396/3 39/397/3 37/399/3 +f 6/396/3 37/399/3 35/400/3 +f 11/401/3 9/398/3 8/18/3 +f 19/402/3 11/401/3 8/18/3 +f 6/396/3 35/400/3 33/403/3 +f 6/396/3 33/403/3 31/404/3 +f 23/405/3 19/402/3 8/18/3 +f 27/17/3 23/405/3 8/18/3 +f 8/18/3 6/396/3 29/16/3 +f 6/396/3 31/404/3 29/16/3 +f 59/19/1 97/406/1 98/20/1 +f 110/22/3 109/27/3 73/23/3 +f 96/25/1 97/406/1 59/19/1 +f 109/27/3 108/407/3 72/28/3 +f 95/29/1 96/25/1 58/26/1 +f 72/28/3 108/407/3 107/31/3 +f 56/33/1 94/408/1 95/29/1 +f 107/31/3 106/40/3 70/34/3 +f 66/35/3 103/409/3 118/36/3 +f 93/38/1 94/408/1 56/33/1 +f 106/40/3 105/45/3 69/41/3 +f 118/36/3 117/410/3 83/42/3 +f 92/43/1 93/38/1 55/39/1 +f 105/45/3 104/49/3 68/46/3 +f 91/47/1 92/43/1 54/44/1 +f 104/49/3 102/113/3 67/50/3 +f 122/51/3 119/157/3 82/52/3 +f 108/54/5 109/63/7 130/55/7 +f 123/57/8 82/411/8 117/58/9 +f 116/60/10 81/412/11 126/61/11 +f 109/63/7 110/69/12 136/64/12 +f 117/58/9 118/413/13 138/65/13 +f 103/66/4 102/414/14 142/67/14 +f 110/69/12 111/73/15 144/70/15 +f 138/65/13 118/413/13 103/66/4 +f 142/67/14 102/414/14 104/71/16 +f 111/73/15 112/77/17 148/74/17 +f 146/72/16 104/71/16 105/75/18 +f 112/77/17 113/415/19 152/78/19 +f 105/75/18 106/82/20 154/79/20 +f 152/78/19 113/415/19 114/80/2 +f 106/82/20 107/85/21 158/83/21 +f 114/80/2 115/416/22 160/84/22 +f 107/85/21 108/54/5 127/56/5 +f 160/84/22 115/416/22 116/60/10 +f 111/86/3 110/22/3 74/24/3 +f 98/20/1 99/164/1 61/88/1 +f 86/89/1 85/94/1 48/90/1 +f 112/92/3 111/86/3 75/87/3 +f 85/94/1 87/417/1 49/95/1 +f 77/96/3 113/103/3 112/92/3 +f 162/97/23 120/418/23 64/98/24 +f 49/95/1 87/417/1 88/100/1 +f 78/102/3 114/419/3 113/103/3 +f 64/104/1 100/161/1 101/105/1 +f 50/101/1 88/100/1 89/107/1 +f 115/109/3 114/419/3 78/102/3 +f 65/106/1 101/105/1 86/89/1 +f 89/107/1 90/114/1 52/111/1 +f 80/112/3 116/162/3 115/109/3 +f 102/113/3 103/409/3 66/35/3 +f 90/114/1 91/47/1 53/48/1 +f 220/115/25 61/420/25 121/116/26 +f 60/118/14 61/421/25 220/119/25 +f 59/121/4 60/422/14 221/122/14 +f 58/124/13 59/423/4 222/125/4 +f 57/127/27 58/424/13 223/128/13 +f 207/130/27 76/93/27 75/87/28 +f 208/132/28 75/87/28 74/24/29 +f 209/134/29 74/24/29 73/23/30 +f 210/136/30 73/23/30 72/28/6 +f 211/138/6 72/28/6 71/32/31 +f 212/140/31 71/32/31 70/34/32 +f 213/142/32 70/34/32 69/41/33 +f 214/144/33 69/41/33 68/46/34 +f 215/146/34 68/46/34 67/50/22 +f 216/148/22 67/50/22 66/35/2 +f 217/150/2 66/35/2 84/37/19 +f 218/152/19 84/37/19 83/42/24 +f 121/154/1 62/163/1 63/155/1 +f 83/42/3 117/410/3 82/52/3 +f 125/158/6 124/425/6 63/159/6 +f 64/104/1 120/156/1 63/155/1 +f 80/112/3 122/51/3 81/53/3 +f 62/163/1 121/154/1 61/88/1 +f 126/165/6 81/426/6 82/166/6 +f 159/168/22 134/198/10 99/169/10 +f 90/171/21 157/427/21 128/172/5 +f 155/174/2 159/168/22 98/170/22 +f 153/176/20 157/427/21 90/171/21 +f 96/178/19 151/182/19 155/174/2 +f 149/179/18 153/176/20 89/177/20 +f 95/181/17 147/186/17 151/182/19 +f 145/183/16 149/179/18 88/180/18 +f 94/185/15 143/192/15 147/186/17 +f 85/187/14 141/428/14 145/183/16 +f 137/188/13 140/193/4 86/189/4 +f 93/191/12 135/429/12 143/192/15 +f 140/193/4 141/428/14 85/187/14 +f 131/194/9 137/188/13 101/190/13 +f 129/196/7 135/429/12 93/191/12 +f 134/198/10 125/430/11 62/199/11 +f 124/200/8 131/194/9 100/195/9 +f 128/172/5 129/196/7 92/197/7 +f 119/157/5 122/51/5 164/202/5 +f 162/204/5 163/431/5 121/205/5 +f 154/207/1 158/243/1 175/208/1 +f 140/210/3 137/322/3 193/211/3 +f 132/213/1 200/325/1 168/214/1 +f 153/216/3 179/311/3 173/217/3 +f 142/219/1 146/253/1 188/220/1 +f 131/222/3 124/432/3 166/223/3 +f 156/225/1 160/258/1 171/226/1 +f 141/228/3 191/312/3 187/229/3 +f 133/231/1 126/433/1 167/232/1 +f 155/234/3 177/304/3 169/235/3 +f 148/237/1 186/323/1 190/238/1 +f 134/240/3 170/324/3 165/241/3 +f 158/243/1 127/305/1 176/244/1 +f 147/245/3 143/306/3 189/246/3 +f 136/248/1 198/309/1 202/249/1 +f 157/218/3 173/217/3 174/251/3 +f 146/253/1 150/313/1 184/254/1 +f 135/255/3 129/299/3 201/256/3 +f 160/258/1 133/231/1 172/233/1 +f 165/259/6 167/434/6 168/260/6 +f 166/262/4 168/435/4 200/263/4 +f 199/264/4 200/263/4 195/265/4 +f 193/266/4 195/265/4 196/267/4 +f 191/269/4 194/268/4 196/267/4 +f 191/269/4 192/270/4 188/271/4 +f 187/272/4 188/271/4 184/273/4 +f 183/274/4 184/273/4 180/275/4 +f 179/276/4 180/275/4 175/277/4 +f 173/278/35 175/277/35 176/279/5 +f 174/280/5 176/279/5 202/281/36 +f 201/282/2 202/281/2 198/283/2 +f 197/284/2 198/283/2 190/285/2 +f 189/286/2 190/285/2 186/287/2 +f 185/288/2 186/287/2 182/289/2 +f 181/290/2 182/289/2 178/291/2 +f 169/293/2 177/292/2 178/291/2 +f 169/293/2 171/294/2 172/295/2 +f 165/297/2 170/296/2 172/295/2 +f 129/299/3 128/252/3 174/251/3 +f 139/300/1 196/317/1 195/301/1 +f 155/234/3 151/318/3 181/303/3 +f 130/250/1 202/249/1 176/244/1 +f 143/306/3 135/255/3 197/257/3 +f 156/225/1 178/227/1 182/307/1 +f 144/239/1 190/238/1 198/309/1 +f 149/310/3 183/326/3 179/311/3 +f 140/210/3 194/212/3 191/312/3 +f 150/313/1 154/207/1 180/209/1 +f 124/314/3 125/436/3 165/315/3 +f 139/300/1 142/219/1 192/221/1 +f 151/318/3 147/245/3 185/247/3 +f 123/319/1 168/437/1 167/320/1 +f 137/322/3 131/222/3 199/224/3 +f 152/308/1 182/307/1 186/323/1 +f 159/236/3 169/235/3 170/324/3 +f 138/302/1 195/301/1 200/325/1 +f 145/230/3 187/229/3 183/326/3 +f 207/327/27 206/438/13 77/96/13 +f 206/328/13 205/439/4 78/102/4 +f 205/329/4 204/440/14 79/110/14 +f 204/330/14 203/441/25 80/112/25 +f 57/331/27 224/442/27 225/332/28 +f 56/334/28 225/443/28 226/335/29 +f 55/337/29 226/444/29 227/338/30 +f 54/340/30 227/445/30 228/341/6 +f 53/343/6 228/446/6 229/344/31 +f 52/346/31 229/447/31 230/347/32 +f 51/349/32 230/448/32 231/350/33 +f 50/352/33 231/449/33 232/353/34 +f 49/355/34 232/450/34 233/356/22 +f 48/358/22 233/451/22 234/359/2 +f 47/361/2 234/452/2 235/362/19 +f 65/364/19 235/453/19 236/365/24 +f 83/42/24 119/157/23 161/367/23 +f 80/112/25 203/454/25 164/369/26 +o doorRight +v 0.166667 0.183059 -1.291355 +v 0.166667 0.574264 -1.541358 +v 0.166667 1.014811 -1.723840 +v 0.166667 1.476714 -1.784650 +v 0.166667 1.938615 -1.723840 +v 0.166667 2.369039 -1.545552 +v 0.166667 2.738652 -1.261938 +v 0.166667 3.022266 -0.892325 +v 0.166667 3.200554 -0.461901 +v 0.168084 0.047997 -1.426236 +v 0.166667 0.183060 -0.183059 +v 0.168084 3.345687 -0.497568 +v 0.168084 3.153632 -0.961228 +v 0.166667 3.245492 -0.183060 +v 0.168084 2.848119 -1.359382 +v 0.168084 2.449965 -1.664895 +v 0.168084 1.986305 -1.856950 +v 0.168084 0.991167 -1.856950 +v 0.168084 1.488737 -1.922456 +v 0.168084 0.527508 -1.664895 +v 0.107558 0.183060 -0.183059 +v 0.107558 3.245492 -0.183060 +v 0.107558 0.183059 -1.291355 +v 0.107558 3.200554 -0.461901 +v 0.107558 3.022266 -0.892325 +v 0.107558 2.738652 -1.261938 +v 0.107558 2.369039 -1.545552 +v 0.107558 1.938615 -1.723840 +v 0.107558 1.014811 -1.723840 +v 0.107558 1.476714 -1.784650 +v 0.107558 0.574264 -1.541358 +v 0.166667 0.047998 -0.100000 +v 0.166667 3.039069 -0.100000 +v 0.166667 2.708339 -0.100000 +v 0.166667 2.377609 -0.100000 +v 0.166667 2.046879 -0.100000 +v 0.166667 1.716149 -0.100000 +v 0.166667 1.385420 -0.100000 +v 0.166667 1.054690 -0.100000 +v 0.166667 0.723960 -0.100000 +v 0.166667 0.393230 -0.100000 +v 0.116667 0.393230 0.100000 +v 0.166667 0.393230 0.050000 +v 0.166667 0.047998 0.050000 +v 0.116667 0.047998 0.100000 +v 0.116667 3.039069 0.100000 +v 0.166667 3.039069 0.050000 +v 0.166667 2.708339 0.050000 +v 0.116667 2.708339 0.100000 +v 0.116667 2.377609 0.100000 +v 0.166667 2.377609 0.050000 +v 0.166667 2.046879 0.050000 +v 0.116667 2.046879 0.100000 +v 0.116667 1.716149 0.100000 +v 0.166667 1.716149 0.050000 +v 0.166667 1.385420 0.050000 +v 0.116667 1.385420 0.100000 +v 0.116667 1.054690 0.100000 +v 0.166667 1.054690 0.050000 +v 0.166667 0.723960 0.050000 +v 0.116667 0.723960 0.100000 +v -0.166666 0.183059 -1.291355 +v -0.166666 0.574264 -1.541358 +v -0.166666 1.014811 -1.723840 +v -0.166666 1.476714 -1.784650 +v -0.166666 1.938615 -1.723840 +v -0.166666 2.369039 -1.545552 +v -0.166666 2.738652 -1.261938 +v -0.166666 3.022266 -0.892325 +v -0.166666 3.200554 -0.461901 +v -0.168083 0.047997 -1.426236 +v -0.166666 0.183060 -0.183059 +v -0.168083 3.345687 -0.497568 +v -0.168083 3.153632 -0.961228 +v -0.166666 3.245492 -0.183060 +v -0.168083 2.848119 -1.359382 +v -0.168083 2.449965 -1.664895 +v -0.168083 1.986305 -1.856950 +v -0.168083 0.991167 -1.856950 +v -0.168083 1.488737 -1.922456 +v -0.168083 0.527508 -1.664895 +v -0.107558 0.183060 -0.183059 +v -0.107557 3.245492 -0.183060 +v -0.107558 0.183059 -1.291355 +v -0.107557 3.200554 -0.461901 +v -0.107557 3.022266 -0.892325 +v -0.107557 2.738652 -1.261938 +v -0.107558 2.369039 -1.545552 +v -0.107558 1.938615 -1.723840 +v -0.107558 1.014811 -1.723840 +v -0.107557 1.476714 -1.784650 +v -0.107558 0.574264 -1.541358 +v -0.168083 3.397916 -0.100850 +v -0.166666 3.039069 -0.100000 +v -0.166666 2.708339 -0.100000 +v -0.166666 2.377609 -0.100000 +v -0.166666 2.046879 -0.100000 +v -0.166666 1.716149 -0.100000 +v -0.166666 1.385420 -0.100000 +v -0.166666 1.054690 -0.100000 +v -0.166666 0.723960 -0.100000 +v -0.166666 0.393230 -0.100000 +v -0.116666 0.393230 0.100000 +v -0.166666 0.393230 0.050000 +v -0.166666 0.047998 0.050000 +v -0.116666 0.047998 0.100000 +v -0.116666 3.039069 0.100000 +v -0.166666 3.039069 0.050000 +v -0.166666 2.708339 0.050000 +v -0.116666 2.708339 0.100000 +v -0.116666 2.377609 0.100000 +v -0.166666 2.377609 0.050000 +v -0.166666 2.046879 0.050000 +v -0.116666 2.046879 0.100000 +v -0.116666 1.716149 0.100000 +v -0.166666 1.716149 0.050000 +v -0.166666 1.385420 0.050000 +v -0.116666 1.385420 0.100000 +v -0.116666 1.054690 0.100000 +v -0.166666 1.054690 0.050000 +v -0.166666 0.723960 0.050000 +v -0.116666 0.723960 0.100000 +v 0.166667 0.047998 -0.183059 +v -0.166666 0.047998 -0.183059 +v 0.057399 2.947922 -0.628826 +v 0.057399 2.811188 -0.572189 +v 0.057399 2.754550 -0.435454 +v 0.057399 2.811188 -0.298720 +v 0.057399 2.947922 -0.242083 +v 0.057399 3.084657 -0.298720 +v 0.057399 3.141294 -0.435454 +v 0.057399 3.084657 -0.572189 +v 0.134706 2.811188 -0.572189 +v 0.134706 2.947922 -0.628826 +v 0.134706 2.754550 -0.435454 +v 0.134706 2.811188 -0.298720 +v 0.134706 2.947922 -0.242083 +v 0.134706 3.084657 -0.298720 +v 0.134706 3.141294 -0.435454 +v 0.134706 3.084657 -0.572189 +v -0.057398 2.947922 -0.628826 +v -0.057398 2.811188 -0.572189 +v -0.057398 2.754550 -0.435454 +v -0.057398 2.811188 -0.298720 +v -0.057398 2.947922 -0.242083 +v -0.057398 3.084657 -0.298720 +v -0.057398 3.141294 -0.435454 +v -0.057398 3.084657 -0.572189 +v -0.134705 2.811188 -0.572189 +v -0.134705 2.947922 -0.628826 +v -0.134705 2.754550 -0.435454 +v -0.134705 2.811188 -0.298720 +v -0.134705 2.947922 -0.242083 +v -0.134705 3.084657 -0.298720 +v -0.134705 3.141294 -0.435454 +v -0.134705 3.084657 -0.572189 +v 0.168084 3.397916 -0.100850 +v -0.166666 0.047998 -0.100000 +v 0.168084 3.397916 -0.184616 +v -0.168083 3.397916 -0.184616 +v 0.090995 0.595453 -0.114216 +v 0.090995 0.707781 -0.114216 +v 0.090995 0.595453 -1.616943 +v 0.090995 0.707781 -1.616943 +v 0.159155 0.609494 -0.114216 +v 0.159155 0.693740 -0.114216 +v 0.159155 0.609494 -1.616943 +v 0.159155 0.693740 -1.616943 +v 0.090995 1.262953 -0.114216 +v 0.090995 1.375282 -0.114216 +v 0.090995 1.262953 -1.841179 +v 0.090995 1.375282 -1.841179 +v 0.159155 1.276994 -0.114216 +v 0.159155 1.361241 -0.114216 +v 0.159155 1.276994 -1.841179 +v 0.159155 1.361241 -1.841179 +v 0.090995 1.930453 -0.114216 +v 0.090995 2.042782 -0.114216 +v 0.090995 1.930453 -1.753672 +v 0.090995 2.042782 -1.753672 +v 0.159155 1.944494 -0.114216 +v 0.159155 2.028741 -0.114216 +v 0.159155 1.944494 -1.753672 +v 0.159155 2.028741 -1.753672 +v 0.090995 2.597953 -0.114216 +v 0.090995 2.710282 -0.114216 +v 0.090995 2.597953 -1.403646 +v 0.090995 2.710282 -1.403646 +v 0.159155 2.611994 -0.114216 +v 0.159155 2.696241 -0.114216 +v 0.159155 2.611994 -1.403646 +v 0.159155 2.696241 -1.403646 +v -0.090994 0.595453 -0.114216 +v -0.090994 0.707781 -0.114216 +v -0.090994 0.595453 -1.616943 +v -0.090994 0.707781 -1.616943 +v -0.159155 0.609494 -0.114216 +v -0.159155 0.693740 -0.114216 +v -0.159155 0.609494 -1.616943 +v -0.159155 0.693740 -1.616943 +v -0.090994 1.262953 -0.114216 +v -0.090994 1.375282 -0.114216 +v -0.090994 1.262953 -1.841179 +v -0.090994 1.375282 -1.841179 +v -0.159155 1.276994 -0.114216 +v -0.159155 1.361241 -0.114216 +v -0.159155 1.276994 -1.841179 +v -0.159155 1.361241 -1.841179 +v -0.090994 1.930453 -0.114216 +v -0.090994 2.042782 -0.114216 +v -0.090994 1.930453 -1.753672 +v -0.090994 2.042782 -1.753672 +v -0.159155 1.944494 -0.114216 +v -0.159155 2.028741 -0.114216 +v -0.159155 1.944494 -1.753672 +v -0.159155 2.028741 -1.753672 +v -0.090994 2.597953 -0.114216 +v -0.090994 2.710282 -0.114216 +v -0.090994 2.597953 -1.403646 +v -0.090994 2.710282 -1.403646 +v -0.159155 2.611994 -0.114216 +v -0.159155 2.696241 -0.114216 +v -0.159155 2.611994 -1.403646 +v -0.159155 2.696241 -1.403646 +vt 0.633615 0.502400 +vt 0.743307 0.497980 +vt 0.743307 0.502401 +vt 0.739233 0.919405 +vt 0.744584 0.823957 +vt 0.744584 0.919405 +vt 0.749004 0.823957 +vt 0.749004 0.919405 +vt 0.734812 0.919405 +vt 0.739233 0.823957 +vt 0.772094 0.236682 +vt 0.662402 0.231331 +vt 0.772094 0.231331 +vt 0.662402 0.226911 +vt 0.772094 0.226911 +vt 0.772094 0.241103 +vt 0.662402 0.236682 +vt 0.005495 0.876659 +vt 0.109628 0.882010 +vt 0.005495 0.882010 +vt 0.109628 0.886430 +vt 0.005495 0.886430 +vt 0.005495 0.872239 +vt 0.109628 0.876659 +vt 0.261809 0.876921 +vt 0.343710 0.882272 +vt 0.261809 0.882272 +vt 0.343710 0.886692 +vt 0.261809 0.886692 +vt 0.261809 0.872501 +vt 0.343710 0.876921 +vt 0.633615 0.507752 +vt 0.743307 0.507752 +vt 0.633615 0.512172 +vt 0.743307 0.512172 +vt 0.719403 0.823957 +vt 0.723823 0.919405 +vt 0.719403 0.919405 +vt 0.709632 0.823957 +vt 0.714052 0.919405 +vt 0.709632 0.919405 +vt 0.714052 0.823957 +vt 0.858429 0.502401 +vt 0.754296 0.507752 +vt 0.754296 0.502401 +vt 0.418177 0.958691 +vt 0.413756 0.876791 +vt 0.418177 0.876791 +vt 0.427948 0.958691 +vt 0.423528 0.876791 +vt 0.427948 0.876791 +vt 0.423528 0.958691 +vt 0.858429 0.507752 +vt 0.754296 0.512172 +vt 0.858429 0.497980 +vt 0.754296 0.497980 +vt 0.633615 0.497980 +vt 0.734812 0.823957 +vt 0.662402 0.241102 +vt 0.109628 0.872239 +vt 0.343710 0.872501 +vt 0.723823 0.823957 +vt 0.413756 0.958691 +vt 0.858429 0.512172 +vt 0.993787 0.200005 +vt 0.990032 0.005495 +vt 0.993787 0.005495 +vt 0.960586 0.378465 +vt 0.964341 0.348873 +vt 0.964341 0.378465 +vt 0.960586 0.497528 +vt 0.964341 0.467240 +vt 0.964341 0.497528 +vt 0.947698 0.768695 +vt 0.926346 0.736818 +vt 0.947698 0.736818 +vt 0.676169 0.690209 +vt 0.656390 0.665899 +vt 0.664845 0.662870 +vt 0.717658 0.731702 +vt 0.687992 0.720640 +vt 0.694182 0.713686 +vt 0.762708 0.745883 +vt 0.742731 0.752246 +vt 0.744997 0.743027 +vt 0.347265 0.411967 +vt 0.327288 0.405604 +vt 0.347166 0.402285 +vt 0.329554 0.414822 +vt 0.297838 0.417804 +vt 0.302215 0.426148 +vt 0.272550 0.437210 +vt 0.278739 0.444163 +vt 0.253145 0.462500 +vt 0.260726 0.467640 +vt 0.240947 0.491951 +vt 0.245539 0.524318 +vt 0.240946 0.555159 +vt 0.236786 0.523555 +vt 0.249402 0.494980 +vt 0.249401 0.553657 +vt 0.253144 0.584609 +vt 0.276870 0.606488 +vt 0.260991 0.581640 +vt 0.038696 0.698926 +vt 0.062172 0.680912 +vt 0.107223 0.861250 +vt 0.960586 0.082619 +vt 0.964341 0.112210 +vt 0.960586 0.112210 +vt 0.960586 0.005495 +vt 0.964341 0.023434 +vt 0.960586 0.023434 +vt 0.960586 0.200985 +vt 0.964341 0.231273 +vt 0.960586 0.231273 +vt 0.964341 0.141802 +vt 0.960586 0.141802 +vt 0.964341 0.053027 +vt 0.960586 0.053026 +vt 0.964341 0.260761 +vt 0.960586 0.260761 +vt 0.960586 0.171394 +vt 0.964341 0.200985 +vt 0.964341 0.082619 +vt 0.599944 0.947302 +vt 0.596189 0.876906 +vt 0.599943 0.876906 +vt 0.964341 0.171394 +vt 0.993787 0.210994 +vt 0.990032 0.405504 +vt 0.990032 0.210994 +vt 0.685939 0.766554 +vt 0.664932 0.776082 +vt 0.664932 0.766554 +vt 0.261809 0.897681 +vt 0.284602 0.918944 +vt 0.261809 0.919034 +vt 0.173950 0.922286 +vt 0.152778 0.943293 +vt 0.152778 0.922286 +vt 0.141789 0.922286 +vt 0.120617 0.943293 +vt 0.120617 0.922286 +vt 0.504679 0.901930 +vt 0.525686 0.923102 +vt 0.504679 0.923102 +vt 0.752490 0.800264 +vt 0.742962 0.779257 +vt 0.752490 0.779257 +vt 0.564552 0.766170 +vt 0.543545 0.775698 +vt 0.543545 0.766170 +vt 0.621955 0.766170 +vt 0.600948 0.775698 +vt 0.600948 0.766170 +vt 0.507149 0.795010 +vt 0.485221 0.799501 +vt 0.485221 0.795010 +vt 0.664932 0.780573 +vt 0.685939 0.776082 +vt 0.685939 0.780573 +vt 0.600948 0.780189 +vt 0.621955 0.775698 +vt 0.621955 0.780189 +vt 0.738471 0.779257 +vt 0.742962 0.800264 +vt 0.738471 0.800264 +vt 0.543545 0.780189 +vt 0.564552 0.775698 +vt 0.564552 0.780189 +vt 0.485221 0.809029 +vt 0.507149 0.799501 +vt 0.507149 0.809029 +vt 0.723651 0.800264 +vt 0.564552 0.795010 +vt 0.485221 0.780189 +vt 0.519852 0.798186 +vt 0.510325 0.798186 +vt 0.493690 0.901930 +vt 0.472517 0.922937 +vt 0.472517 0.901930 +vt 0.530841 0.777013 +vt 0.540369 0.777013 +vt 0.741647 0.766554 +vt 0.741647 0.776082 +vt 0.588244 0.777013 +vt 0.597772 0.777013 +vt 0.652229 0.777397 +vt 0.661756 0.777397 +vt 0.947698 0.948231 +vt 0.926346 0.928078 +vt 0.947698 0.928078 +vt 0.668587 0.573240 +vt 0.692313 0.551361 +vt 0.676434 0.576210 +vt 0.960586 0.319281 +vt 0.964341 0.289690 +vt 0.964341 0.319281 +vt 0.713281 0.740046 +vt 0.668588 0.695350 +vt 0.660982 0.633531 +vt 0.656389 0.602691 +vt 0.664844 0.604193 +vt 0.118212 0.748902 +vt 0.122074 0.719563 +vt 0.219940 0.666733 +vt 0.960586 0.408057 +vt 0.964341 0.408057 +vt 0.960586 0.289690 +vt 0.964341 0.271750 +vt 0.964341 0.437648 +vt 0.960586 0.467240 +vt 0.664932 0.799885 +vt 0.685939 0.809412 +vt 0.664932 0.809412 +vt 0.960586 0.348873 +vt 0.614687 0.876906 +vt 0.610933 0.947302 +vt 0.610933 0.876906 +vt 0.960586 0.527017 +vt 0.964341 0.527017 +vt 0.543545 0.799501 +vt 0.564552 0.809029 +vt 0.543545 0.809029 +vt 0.719159 0.779257 +vt 0.709632 0.800264 +vt 0.709632 0.779257 +vt 0.600948 0.799501 +vt 0.621955 0.809029 +vt 0.600948 0.809029 +vt 0.685939 0.799885 +vt 0.664932 0.795393 +vt 0.685939 0.795393 +vt 0.485221 0.775698 +vt 0.507149 0.780189 +vt 0.621955 0.799501 +vt 0.600948 0.795010 +vt 0.621955 0.795010 +vt 0.564552 0.799501 +vt 0.543545 0.795010 +vt 0.719159 0.800264 +vt 0.723651 0.779257 +vt 0.507149 0.775698 +vt 0.485221 0.766170 +vt 0.507149 0.766170 +vt 0.762708 0.542778 +vt 0.762708 0.551357 +vt 0.347265 0.615072 +vt 0.268302 0.615067 +vt 0.472517 0.777013 +vt 0.577255 0.798186 +vt 0.720475 0.812968 +vt 0.634658 0.798186 +vt 0.698643 0.798569 +vt 0.926346 0.896201 +vt 0.947698 0.896201 +vt 0.926346 0.864325 +vt 0.947698 0.864325 +vt 0.926346 0.832448 +vt 0.947698 0.832448 +vt 0.926346 0.800571 +vt 0.947698 0.800571 +vt 0.926346 0.768695 +vt 0.652229 0.634295 +vt 0.926346 0.704941 +vt 0.947698 0.704941 +vt 0.926346 0.670920 +vt 0.947698 0.670920 +vt 0.947608 0.591958 +vt 0.926436 0.591957 +vt 0.947698 0.953551 +vt 0.926346 0.948231 +vt 0.443847 0.895592 +vt 0.438937 0.904993 +vt 0.438937 0.895592 +vt 0.443847 0.904993 +vt 0.438937 0.914393 +vt 0.443847 0.914393 +vt 0.438937 0.923794 +vt 0.443847 0.923794 +vt 0.438937 0.933194 +vt 0.443847 0.933194 +vt 0.438937 0.942595 +vt 0.443847 0.942595 +vt 0.438937 0.951995 +vt 0.443847 0.876791 +vt 0.438937 0.886191 +vt 0.438937 0.876791 +vt 0.443847 0.886191 +vt 0.454837 0.923794 +vt 0.459747 0.933194 +vt 0.454837 0.933194 +vt 0.454837 0.914393 +vt 0.459747 0.923794 +vt 0.454837 0.904993 +vt 0.459747 0.914393 +vt 0.454837 0.895592 +vt 0.459747 0.904993 +vt 0.454837 0.886191 +vt 0.459747 0.895592 +vt 0.454837 0.876791 +vt 0.459747 0.886191 +vt 0.454837 0.942595 +vt 0.459747 0.951995 +vt 0.454837 0.951995 +vt 0.459747 0.942595 +vt 0.025527 0.900082 +vt 0.029124 0.908767 +vt 0.004560 0.908767 +vt 0.863808 0.746128 +vt 0.858532 0.958902 +vt 0.858487 0.746127 +vt 0.842223 0.746128 +vt 0.847498 0.958897 +vt 0.842177 0.958898 +vt 0.042481 0.916865 +vt 0.038915 0.908257 +vt 0.063262 0.908257 +vt 0.990032 0.200005 +vt 0.762609 0.755565 +vt 0.107223 0.666733 +vt 0.089512 0.669587 +vt 0.036827 0.861250 +vt 0.020948 0.836401 +vt 0.009357 0.808419 +vt 0.005495 0.779081 +vt 0.009357 0.749742 +vt 0.020681 0.722403 +vt 0.964341 0.005495 +vt 0.596189 0.947302 +vt 0.993787 0.405504 +vt 0.284602 0.897771 +vt 0.173950 0.943293 +vt 0.141789 0.943293 +vt 0.525686 0.901930 +vt 0.510325 0.777013 +vt 0.519852 0.777013 +vt 0.493690 0.922937 +vt 0.540369 0.798186 +vt 0.530841 0.798186 +vt 0.720475 0.776082 +vt 0.720475 0.766554 +vt 0.597772 0.798186 +vt 0.588244 0.798186 +vt 0.661756 0.798569 +vt 0.652229 0.798569 +vt 0.683745 0.542783 +vt 0.149544 0.666733 +vt 0.133665 0.691581 +vt 0.219940 0.861250 +vt 0.202229 0.858395 +vt 0.174890 0.847071 +vt 0.151413 0.829057 +vt 0.133399 0.805580 +vt 0.122074 0.778241 +vt 0.960586 0.271750 +vt 0.960586 0.437648 +vt 0.614687 0.947302 +vt 0.347265 0.606493 +vt 0.482045 0.798186 +vt 0.472517 0.798186 +vt 0.482045 0.777013 +vt 0.567728 0.777013 +vt 0.577255 0.777013 +vt 0.567728 0.798186 +vt 0.741647 0.803440 +vt 0.741647 0.812968 +vt 0.720475 0.803440 +vt 0.625130 0.777013 +vt 0.634658 0.777013 +vt 0.625130 0.798186 +vt 0.689115 0.777397 +vt 0.698643 0.777397 +vt 0.689115 0.798569 +vt 0.926436 0.586682 +vt 0.947608 0.586682 +vt 0.926346 0.953551 +vt 0.443847 0.951995 +vt 0.459747 0.876791 +vt 0.025527 0.917452 +vt 0.016842 0.921049 +vt 0.008157 0.917452 +vt 0.008157 0.900082 +vt 0.016842 0.896485 +vt 0.863808 0.958903 +vt 0.847498 0.746127 +vt 0.042481 0.899649 +vt 0.051089 0.896083 +vt 0.059697 0.899649 +vt 0.059697 0.916865 +vt 0.051089 0.920430 +vn -0.2018 0.9794 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.2018 -0.9794 0.0000 +vn 0.2018 0.9794 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.2018 -0.9794 0.0000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.4624 0.8867 +vn 0.0000 0.2588 0.9659 +vn 0.0000 -0.2588 -0.9659 +vn -1.0000 -0.0049 0.0086 +vn -0.9999 -0.0027 0.0097 +vn -0.9999 -0.0025 0.0097 +vn -1.0000 -0.0083 0.0048 +vn -1.0000 -0.0069 0.0068 +vn -1.0000 -0.0068 0.0069 +vn -1.0000 -0.0093 0.0015 +vn -1.0000 -0.0091 0.0026 +vn 1.0000 -0.0093 0.0015 +vn 1.0000 -0.0091 0.0026 +vn 1.0000 -0.0083 0.0048 +vn 1.0000 -0.0069 0.0068 +vn 1.0000 -0.0068 0.0069 +vn 1.0000 -0.0050 0.0085 +vn 1.0000 -0.0049 0.0086 +vn 0.9999 -0.0027 0.0097 +vn 0.9999 0.0001 0.0103 +vn 0.9999 0.0027 0.0102 +vn 0.9999 -0.0001 0.0103 +vn 0.9999 -0.0025 0.0097 +vn 0.9999 0.0028 0.0101 +vn 0.9999 0.0047 0.0093 +vn 1.0000 0.0067 0.0038 +vn 0.9999 0.0051 0.0096 +vn 0.0000 -0.9873 0.1591 +vn 0.0000 -0.9621 0.2727 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5385 0.8426 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0024 1.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.9966 -0.0826 +vn 0.0000 0.9613 -0.2754 +vn -0.9999 0.0047 0.0093 +vn -1.0000 0.0067 0.0038 +vn -0.9999 0.0051 0.0096 +vn -1.0000 -0.0050 0.0085 +vn -0.9999 0.0001 0.0103 +vn -0.9999 0.0027 0.0102 +vn -0.9999 0.0028 0.0101 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0007 0.0001 +vn 1.0000 0.0007 0.0001 +vn 1.0000 0.0058 0.0047 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.2588 -0.9659 +vn -0.9999 -0.0001 0.0103 +vn 0.0000 -0.4144 -0.9101 +vn 0.0000 -0.4456 -0.8952 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 1.0000 -0.0004 0.0000 +vn -1.0000 -0.0004 0.0000 +vn -1.0000 0.0058 0.0047 +s off +f 442/455/37 440/456/37 444/457/37 +f 404/458/38 401/459/38 403/460/38 +f 403/460/39 397/461/39 399/462/39 +f 400/463/40 402/464/40 404/458/40 +f 412/465/38 409/466/38 411/467/38 +f 411/467/39 405/468/39 407/469/39 +f 408/470/40 410/471/40 412/465/40 +f 420/472/38 417/473/38 419/474/38 +f 419/474/39 413/475/39 415/476/39 +f 416/477/40 418/478/40 420/472/40 +f 428/479/38 425/480/38 427/481/38 +f 427/481/39 421/482/39 423/483/39 +f 424/484/40 426/485/40 428/479/40 +f 441/486/41 444/457/41 443/487/41 +f 437/488/42 443/487/42 439/489/42 +f 434/490/37 432/491/37 436/492/37 +f 429/493/42 435/494/42 431/495/42 +f 433/496/41 436/492/41 435/494/41 +f 449/497/41 452/498/41 451/499/41 +f 458/500/37 456/501/37 460/502/37 +f 453/503/42 459/504/42 455/505/42 +f 457/506/41 460/502/41 459/504/41 +f 450/507/37 448/508/37 452/498/37 +f 445/509/42 451/499/42 447/510/42 +f 442/455/37 438/511/37 440/456/37 +f 404/458/38 402/464/38 401/459/38 +f 403/460/39 401/459/39 397/461/39 +f 400/463/40 398/512/40 402/464/40 +f 412/465/38 410/471/38 409/466/38 +f 411/467/39 409/466/39 405/468/39 +f 408/470/40 406/513/40 410/471/40 +f 420/472/38 418/478/38 417/473/38 +f 419/474/39 417/473/39 413/475/39 +f 416/477/40 414/514/40 418/478/40 +f 428/479/38 426/485/38 425/480/38 +f 427/481/39 425/480/39 421/482/39 +f 424/484/40 422/515/40 426/485/40 +f 441/486/41 442/455/41 444/457/41 +f 437/488/42 441/486/42 443/487/42 +f 434/490/37 430/516/37 432/491/37 +f 429/493/42 433/496/42 435/494/42 +f 433/496/41 434/490/41 436/492/41 +f 449/497/41 450/507/41 452/498/41 +f 458/500/37 454/517/37 456/501/37 +f 453/503/42 457/506/42 459/504/42 +f 457/506/41 458/500/41 460/502/41 +f 450/507/37 446/518/37 448/508/37 +f 445/509/42 449/497/42 451/499/42 +s 1 +f 247/519/43 258/520/43 250/521/43 +f 324/522/44 304/523/45 303/524/44 +f 328/525/46 300/526/47 299/527/46 +f 316/528/43 254/529/48 315/530/48 +f 303/531/49 314/532/50 302/533/51 +f 305/534/52 312/535/53 304/536/54 +f 311/537/55 309/538/56 306/539/56 +f 250/540/57 248/541/58 395/542/57 +f 245/543/58 249/544/59 248/541/58 +f 244/545/59 251/546/60 249/544/59 +f 243/547/61 252/548/62 251/546/60 +f 242/549/63 253/550/64 252/548/62 +f 240/551/65 254/552/66 255/553/67 +f 241/554/68 255/553/67 253/550/64 +f 239/555/69 256/556/70 254/552/66 +f 237/557/71 256/556/70 238/558/72 +f 262/559/38 261/560/38 257/561/38 +f 243/562/45 263/563/44 242/564/44 +f 250/565/73 260/566/74 245/567/74 +f 239/568/47 267/569/46 238/570/46 +f 242/564/44 264/571/75 241/572/75 +f 245/567/74 261/573/76 244/574/76 +f 238/570/46 259/575/77 237/576/77 +f 240/577/78 265/578/47 239/568/47 +f 244/574/76 262/579/45 243/562/45 +f 237/580/79 257/581/79 247/582/79 +f 241/572/75 266/583/78 240/577/78 +f 319/584/43 308/585/43 311/586/43 +f 269/587/38 284/588/38 270/589/38 +f 329/590/80 269/591/80 393/592/80 +f 331/593/78 271/594/78 270/595/78 +f 333/596/78 273/597/78 272/598/78 +f 335/599/78 275/600/78 274/601/78 +f 273/602/38 292/603/38 274/604/38 +f 275/605/38 296/606/38 276/607/38 +f 271/608/38 288/609/38 272/610/38 +f 281/611/81 279/612/81 278/613/81 +f 285/614/81 283/615/81 282/616/81 +f 289/617/81 287/618/81 286/619/81 +f 293/620/81 291/621/81 290/622/81 +f 297/623/81 295/624/81 294/625/81 +f 277/626/38 280/627/38 268/628/38 +f 351/629/78 293/620/78 290/622/78 +f 355/630/78 297/623/78 294/625/78 +f 339/631/78 281/611/78 278/613/78 +f 268/632/82 280/633/82 281/611/82 +f 337/634/78 277/635/78 276/636/78 +f 276/637/82 296/638/82 297/623/82 +f 274/639/82 292/640/82 293/620/82 +f 272/641/82 288/642/82 289/617/82 +f 270/643/82 284/644/82 285/614/82 +f 396/645/83 248/646/84 309/647/84 +f 317/648/85 298/649/86 299/650/87 +f 322/651/76 306/652/74 305/653/76 +f 306/539/56 310/654/52 305/534/52 +f 304/536/54 313/655/88 303/531/49 +f 301/656/89 315/657/90 300/658/91 +f 327/659/41 326/660/41 318/661/41 +f 300/658/91 317/648/85 299/650/87 +f 325/662/75 303/524/44 302/663/75 +f 321/664/74 311/665/73 306/652/74 +f 301/666/78 325/662/75 302/663/75 +f 326/667/47 301/666/78 300/526/47 +f 345/668/41 330/669/41 331/670/41 +f 323/671/45 305/653/76 304/523/45 +f 318/672/79 298/673/79 308/674/79 +f 320/675/77 299/527/46 298/676/77 +f 357/677/41 336/678/41 337/679/41 +f 353/680/41 334/681/41 335/682/41 +f 349/683/41 332/684/41 333/685/41 +f 344/686/92 346/687/92 343/688/92 +f 340/689/92 342/690/92 339/631/92 +f 348/691/92 350/692/92 347/693/92 +f 356/694/92 358/695/92 355/630/92 +f 352/696/92 354/697/92 351/629/92 +f 341/698/41 338/699/41 394/700/41 +f 298/649/86 360/701/93 308/702/41 +f 347/693/78 289/617/78 286/619/78 +f 237/557/71 359/703/94 246/704/95 +f 343/688/78 285/614/78 282/616/78 +f 339/631/79 278/613/79 338/705/79 +f 355/630/79 294/625/79 336/706/79 +f 351/629/79 290/622/79 334/707/79 +f 347/693/79 286/619/79 332/708/79 +f 343/688/79 282/616/79 330/709/79 +f 309/647/84 249/710/96 310/711/96 +f 310/711/96 251/712/97 312/713/97 +f 312/713/97 252/714/98 313/715/98 +f 313/715/98 253/716/99 314/717/99 +f 316/528/43 253/716/99 255/718/43 +f 302/533/51 316/719/100 301/656/89 +f 315/530/48 256/720/101 317/721/101 +f 317/721/101 246/722/102 307/723/102 +f 360/724/82 246/722/82 359/725/82 +f 329/726/79 395/727/83 396/645/83 +f 370/728/43 362/729/103 361/730/43 +f 369/731/103 363/732/82 362/729/103 +f 371/733/82 364/734/45 363/732/82 +f 372/735/45 365/736/78 364/734/45 +f 373/737/78 366/738/104 365/736/78 +f 374/739/104 367/740/79 366/738/104 +f 375/741/79 368/742/97 367/743/79 +f 376/744/97 361/730/43 368/742/97 +f 378/745/103 386/746/43 377/747/43 +f 379/748/82 385/749/103 378/745/103 +f 380/750/45 387/751/82 379/748/82 +f 381/752/78 388/753/45 380/750/45 +f 382/754/104 389/755/78 381/752/78 +f 383/756/79 390/757/104 382/754/104 +f 384/758/97 391/759/79 383/760/79 +f 377/747/43 392/761/97 384/758/97 +f 392/762/41 386/763/41 389/764/41 +f 393/765/105 359/766/105 395/767/105 +f 360/768/106 329/769/106 396/770/106 +f 372/771/38 371/772/38 375/773/38 +f 247/519/43 257/774/43 258/520/43 +f 324/522/44 323/671/45 304/523/45 +f 328/525/46 326/667/47 300/526/47 +f 316/528/43 255/718/43 254/529/48 +f 303/531/49 313/655/88 314/532/50 +f 305/534/52 310/654/52 312/535/53 +f 311/537/55 396/775/55 309/538/56 +f 250/540/57 245/543/58 248/541/58 +f 245/543/58 244/545/59 249/544/59 +f 244/545/59 243/547/61 251/546/60 +f 243/547/61 242/549/63 252/548/62 +f 242/549/63 241/554/68 253/550/64 +f 240/551/65 239/555/69 254/552/66 +f 241/554/68 240/551/65 255/553/67 +f 239/555/69 238/558/72 256/556/70 +f 237/557/71 246/704/95 256/556/70 +f 258/776/38 257/561/38 260/777/38 +f 257/561/38 259/778/38 267/779/38 +f 260/777/38 257/561/38 261/560/38 +f 267/779/38 265/780/38 257/561/38 +f 265/780/38 266/781/38 257/561/38 +f 266/781/38 264/782/38 257/561/38 +f 264/782/38 263/783/38 257/561/38 +f 263/783/38 262/559/38 257/561/38 +f 243/562/45 262/579/45 263/563/44 +f 250/565/73 258/784/73 260/566/74 +f 239/568/47 265/578/47 267/569/46 +f 242/564/44 263/563/44 264/571/75 +f 245/567/74 260/566/74 261/573/76 +f 238/570/46 267/569/46 259/575/77 +f 240/577/78 266/583/78 265/578/47 +f 244/574/76 261/573/76 262/579/45 +f 237/580/79 259/785/79 257/581/79 +f 241/572/75 264/571/75 266/583/78 +f 319/584/43 318/786/43 308/585/43 +f 269/587/38 283/615/38 284/588/38 +f 329/590/80 330/787/80 269/591/80 +f 331/593/78 332/788/78 271/594/78 +f 333/596/78 334/789/78 273/597/78 +f 335/599/78 336/790/78 275/600/78 +f 273/602/38 291/621/38 292/603/38 +f 275/605/38 295/624/38 296/606/38 +f 271/608/38 287/618/38 288/609/38 +f 281/611/81 280/627/81 279/612/81 +f 285/614/81 284/588/81 283/615/81 +f 289/617/81 288/609/81 287/618/81 +f 293/620/81 292/603/81 291/621/81 +f 297/623/81 296/606/81 295/624/81 +f 277/626/38 279/612/38 280/627/38 +f 351/629/78 354/697/78 293/620/78 +f 355/630/78 358/695/78 297/623/78 +f 339/631/78 342/690/78 281/611/78 +f 281/611/82 342/690/82 268/632/82 +f 342/690/82 341/791/82 394/792/82 +f 268/632/82 342/690/82 394/792/82 +f 337/634/78 338/793/78 277/635/78 +f 297/623/82 358/695/82 276/637/82 +f 358/695/82 357/794/82 337/795/82 +f 276/637/82 358/695/82 337/795/82 +f 293/620/82 354/697/82 274/639/82 +f 354/697/82 353/796/82 335/797/82 +f 274/639/82 354/697/82 335/797/82 +f 289/617/82 350/692/82 272/641/82 +f 350/692/82 349/798/82 333/799/82 +f 272/641/82 350/692/82 333/799/82 +f 285/614/82 346/687/82 270/643/82 +f 346/687/82 345/800/82 331/801/82 +f 270/643/82 346/687/82 331/801/82 +f 396/645/83 395/727/83 248/646/84 +f 317/648/85 307/802/107 298/649/86 +f 322/651/76 321/664/74 306/652/74 +f 306/539/56 309/538/56 310/654/52 +f 304/536/54 312/535/53 313/655/88 +f 301/656/89 316/719/100 315/657/90 +f 320/803/41 318/661/41 328/804/41 +f 318/661/41 319/805/41 321/806/41 +f 328/804/41 318/661/41 326/660/41 +f 321/806/41 322/807/41 318/661/41 +f 322/807/41 323/808/41 318/661/41 +f 323/808/41 324/809/41 318/661/41 +f 324/809/41 325/810/41 318/661/41 +f 325/810/41 327/659/41 318/661/41 +f 300/658/91 315/657/90 317/648/85 +f 325/662/75 324/522/44 303/524/44 +f 321/664/74 319/811/73 311/665/73 +f 301/666/78 327/812/78 325/662/75 +f 326/667/47 327/812/78 301/666/78 +f 345/668/41 344/686/41 330/669/41 +f 323/671/45 322/651/76 305/653/76 +f 318/672/79 320/813/79 298/673/79 +f 320/675/77 328/525/46 299/527/46 +f 357/677/41 356/694/41 336/678/41 +f 353/680/41 352/696/41 334/681/41 +f 349/683/41 348/691/41 332/684/41 +f 344/686/92 345/668/92 346/687/92 +f 340/689/92 341/698/92 342/690/92 +f 348/691/92 349/683/92 350/692/92 +f 356/694/92 357/677/92 358/695/92 +f 352/696/92 353/680/92 354/697/92 +f 341/698/41 340/689/41 338/699/41 +f 298/649/86 307/802/107 360/701/93 +f 347/693/78 350/692/78 289/617/78 +f 237/557/71 247/814/38 359/703/94 +f 343/688/78 346/687/78 285/614/78 +f 279/815/79 277/816/79 278/613/79 +f 277/816/79 338/705/79 278/613/79 +f 338/705/79 340/817/79 339/631/79 +f 295/818/79 275/819/79 294/625/79 +f 275/819/79 336/706/79 294/625/79 +f 336/706/79 356/820/79 355/630/79 +f 291/821/79 273/822/79 290/622/79 +f 273/822/79 334/707/79 290/622/79 +f 334/707/79 352/823/79 351/629/79 +f 287/824/79 271/825/79 286/619/79 +f 271/825/79 332/708/79 286/619/79 +f 332/708/79 348/826/79 347/693/79 +f 283/827/79 269/828/79 282/616/79 +f 269/828/79 330/709/79 282/616/79 +f 330/709/79 344/829/79 343/688/79 +f 309/647/84 248/646/84 249/710/96 +f 310/711/96 249/710/96 251/712/97 +f 312/713/97 251/712/97 252/714/98 +f 313/715/98 252/714/98 253/716/99 +f 316/528/43 314/717/99 253/716/99 +f 302/533/51 314/532/50 316/719/100 +f 315/530/48 254/529/48 256/720/101 +f 317/721/101 256/720/101 246/722/102 +f 268/830/82 394/831/82 360/724/82 +f 360/724/82 307/723/82 246/722/82 +f 359/725/82 268/830/82 360/724/82 +f 329/726/79 393/832/79 395/727/83 +f 370/728/43 369/731/103 362/729/103 +f 369/731/103 371/733/82 363/732/82 +f 371/733/82 372/735/45 364/734/45 +f 372/735/45 373/737/78 365/736/78 +f 373/737/78 374/739/104 366/738/104 +f 374/739/104 375/833/79 367/740/79 +f 375/741/79 376/744/97 368/742/97 +f 376/744/97 370/728/43 361/730/43 +f 378/745/103 385/749/103 386/746/43 +f 379/748/82 387/751/82 385/749/103 +f 380/750/45 388/753/45 387/751/82 +f 381/752/78 389/755/78 388/753/45 +f 382/754/104 390/757/104 389/755/78 +f 383/756/79 391/834/79 390/757/104 +f 384/758/97 392/761/97 391/759/79 +f 377/747/43 386/746/43 392/761/97 +f 386/763/41 385/835/41 389/764/41 +f 385/835/41 387/836/41 389/764/41 +f 387/836/41 388/837/41 389/764/41 +f 389/764/41 390/838/41 391/839/41 +f 391/839/41 392/762/41 389/764/41 +f 393/765/105 268/840/105 359/766/105 +f 360/768/106 394/841/106 329/769/106 +f 371/772/38 369/842/38 375/773/38 +f 369/842/38 370/843/38 375/773/38 +f 370/843/38 376/844/38 375/773/38 +f 375/773/38 374/845/38 373/846/38 +f 373/846/38 372/771/38 375/773/38 +o doorLeft +v 0.166667 0.183059 1.291355 +v 0.166667 0.574264 1.541358 +v 0.166667 1.014811 1.723840 +v 0.166667 1.476714 1.784650 +v 0.166667 1.938615 1.723840 +v 0.166667 2.369039 1.545552 +v 0.166667 2.738652 1.261938 +v 0.166667 3.022266 0.892325 +v 0.166667 3.200554 0.461901 +v 0.168084 0.047998 1.426236 +v 0.166667 0.183060 0.183059 +v 0.168084 3.345687 0.497568 +v 0.168084 3.153632 0.961228 +v 0.166667 3.245492 0.183060 +v 0.168084 2.848119 1.359382 +v 0.168084 2.449965 1.664895 +v 0.168084 1.986305 1.856950 +v 0.168084 0.991167 1.856950 +v 0.168084 1.488737 1.922456 +v 0.168084 0.527508 1.664895 +v 0.107558 0.183060 0.183059 +v 0.107558 3.245492 0.183060 +v 0.107558 0.183059 1.291355 +v 0.107558 3.200554 0.461901 +v 0.107558 3.022266 0.892325 +v 0.107558 2.738652 1.261938 +v 0.107558 2.369039 1.545552 +v 0.107558 1.938615 1.723840 +v 0.107558 1.014811 1.723840 +v 0.107558 1.476714 1.784650 +v 0.107558 0.574264 1.541358 +v 0.168084 3.397916 0.100850 +v 0.166667 3.039069 0.100000 +v 0.166667 2.708339 0.100000 +v 0.166667 2.377609 0.100000 +v 0.166667 2.046879 0.100000 +v 0.166667 1.716149 0.100000 +v 0.166667 1.385420 0.100000 +v 0.166667 1.054690 0.100000 +v 0.166667 0.723960 0.100000 +v 0.166667 0.393230 0.100000 +v -0.166666 0.183059 1.291355 +v -0.166666 0.574264 1.541358 +v -0.166666 1.014811 1.723840 +v -0.166666 1.476714 1.784650 +v -0.166666 1.938615 1.723840 +v -0.166666 2.369039 1.545552 +v -0.166666 2.738652 1.261938 +v -0.166666 3.022266 0.892325 +v -0.166666 3.200554 0.461901 +v -0.168083 0.047998 1.426236 +v -0.166666 0.183060 0.183059 +v -0.168083 3.345687 0.497568 +v -0.168083 3.153632 0.961228 +v -0.166666 3.245492 0.183060 +v -0.168083 2.848119 1.359382 +v -0.168083 2.449965 1.664895 +v -0.168083 1.986305 1.856950 +v -0.168083 0.991167 1.856950 +v -0.168083 1.488737 1.922456 +v -0.168083 0.527508 1.664895 +v -0.107558 0.183060 0.183059 +v -0.107557 3.245492 0.183060 +v -0.107558 0.183059 1.291355 +v -0.107557 3.200554 0.461901 +v -0.107557 3.022266 0.892325 +v -0.107557 2.738652 1.261938 +v -0.107558 2.369039 1.545552 +v -0.107558 1.938615 1.723840 +v -0.107558 1.014811 1.723840 +v -0.107557 1.476714 1.784650 +v -0.107558 0.574264 1.541358 +v -0.166666 3.039069 0.100000 +v -0.166666 2.708339 0.100000 +v -0.166666 2.377609 0.100000 +v -0.166666 2.046879 0.100000 +v -0.166666 1.716149 0.100000 +v -0.166666 1.385420 0.100000 +v -0.166666 1.054690 0.100000 +v -0.166666 0.723960 0.100000 +v -0.166666 0.393230 0.100000 +v 0.166667 0.047999 0.183059 +v -0.168083 3.397916 0.184616 +v 0.168084 3.397916 -0.050425 +v 0.117658 3.397916 -0.100850 +v 0.116667 3.039069 -0.100000 +v 0.166667 3.039069 -0.050000 +v 0.166667 2.708339 -0.050000 +v 0.116667 2.708339 -0.100000 +v 0.116667 2.377609 -0.100000 +v 0.166667 2.377609 -0.050000 +v 0.166667 2.046879 -0.050000 +v 0.116667 2.046879 -0.100000 +v 0.116667 1.716149 -0.100000 +v 0.166667 1.716149 -0.050000 +v 0.166667 1.385420 -0.050000 +v 0.116667 1.385420 -0.100000 +v 0.116667 1.054690 -0.100000 +v 0.166667 1.054690 -0.050000 +v 0.166667 0.723960 -0.050000 +v 0.116667 0.723960 -0.100000 +v 0.116667 0.393230 -0.100000 +v 0.166667 0.393230 -0.050000 +v -0.168083 3.397916 -0.050425 +v -0.117658 3.397916 -0.100850 +v -0.116666 3.039069 -0.100000 +v -0.166666 3.039069 -0.050000 +v -0.166666 2.708339 -0.050000 +v -0.116666 2.708339 -0.100000 +v -0.116666 2.377609 -0.100000 +v -0.166666 2.377609 -0.050000 +v -0.166666 2.046879 -0.050000 +v -0.116666 2.046879 -0.100000 +v -0.116666 1.716149 -0.100000 +v -0.166666 1.716149 -0.050000 +v -0.166666 1.385420 -0.050000 +v -0.116666 1.385420 -0.100000 +v -0.116666 1.054690 -0.100000 +v -0.166666 1.054690 -0.050000 +v -0.166666 0.723960 -0.050000 +v -0.116666 0.723960 -0.100000 +v -0.116666 0.393230 -0.100000 +v -0.166666 0.393230 -0.050000 +v 0.057399 2.947922 0.628826 +v 0.057399 2.811188 0.572189 +v 0.057399 2.754550 0.435454 +v 0.057399 2.811188 0.298720 +v 0.057399 2.947922 0.242083 +v 0.057399 3.084657 0.298720 +v 0.057399 3.141294 0.435454 +v 0.057399 3.084657 0.572189 +v 0.134706 2.811188 0.572189 +v 0.134706 2.947922 0.628826 +v 0.134706 2.754550 0.435454 +v 0.134706 2.811188 0.298720 +v 0.134706 2.947922 0.242083 +v 0.134706 3.084657 0.298720 +v 0.134706 3.141294 0.435454 +v 0.134706 3.084657 0.572189 +v -0.057398 2.947922 0.628826 +v -0.057398 2.811188 0.572189 +v -0.057398 2.754550 0.435454 +v -0.057398 2.811188 0.298720 +v -0.057398 2.947922 0.242083 +v -0.057398 3.084657 0.298720 +v -0.057398 3.141294 0.435454 +v -0.057398 3.084657 0.572189 +v -0.134705 2.811188 0.572189 +v -0.134705 2.947922 0.628826 +v -0.134705 2.754550 0.435454 +v -0.134705 2.811188 0.298720 +v -0.134705 2.947922 0.242083 +v -0.134705 3.084657 0.298720 +v -0.134705 3.141294 0.435454 +v -0.134705 3.084657 0.572189 +v 0.166667 2.212244 0.100000 +v -0.166666 2.212244 0.100000 +v 0.090995 0.595453 0.114216 +v 0.090995 0.707781 0.114216 +v 0.090995 0.595453 1.616943 +v 0.090995 0.707781 1.616943 +v 0.159155 0.609494 0.114216 +v 0.159155 0.693740 0.114216 +v 0.159155 0.609494 1.616943 +v 0.159155 0.693740 1.616943 +v 0.090995 1.262953 0.114216 +v 0.090995 1.375282 0.114216 +v 0.090995 1.262953 1.841179 +v 0.090995 1.375282 1.841179 +v 0.159155 1.276994 0.114216 +v 0.159155 1.361241 0.114216 +v 0.159155 1.276994 1.841179 +v 0.159155 1.361241 1.841179 +v 0.090995 1.930453 0.114216 +v 0.090995 2.042782 0.114216 +v 0.090995 1.930453 1.753672 +v 0.090995 2.042782 1.753672 +v 0.159155 1.944494 0.114216 +v 0.159155 2.028741 0.114216 +v 0.159155 1.944494 1.753672 +v 0.159155 2.028741 1.753672 +v 0.090995 2.597953 0.114216 +v 0.090995 2.710282 0.114216 +v 0.090995 2.597953 1.403646 +v 0.090995 2.710282 1.403646 +v 0.159155 2.611994 0.114216 +v 0.159155 2.696241 0.114216 +v 0.159155 2.611994 1.403646 +v 0.159155 2.696241 1.403646 +v -0.090994 0.595453 0.114216 +v -0.090994 0.707781 0.114216 +v -0.090994 0.595453 1.616943 +v -0.090994 0.707781 1.616943 +v -0.159155 0.609494 0.114216 +v -0.159155 0.693740 0.114216 +v -0.159155 0.609494 1.616943 +v -0.159155 0.693740 1.616943 +v -0.090994 1.262953 0.114216 +v -0.090994 1.375282 0.114216 +v -0.090994 1.262953 1.841179 +v -0.090994 1.375282 1.841179 +v -0.159155 1.276994 0.114216 +v -0.159155 1.361241 0.114216 +v -0.159155 1.276994 1.841179 +v -0.159155 1.361241 1.841179 +v -0.090994 1.930453 0.114216 +v -0.090994 2.042782 0.114216 +v -0.090994 1.930453 1.753672 +v -0.090994 2.042782 1.753672 +v -0.159155 1.944494 0.114216 +v -0.159155 2.028741 0.114216 +v -0.159155 1.944494 1.753672 +v -0.159155 2.028741 1.753672 +v -0.090994 2.597953 0.114216 +v -0.090994 2.710282 0.114216 +v -0.090994 2.597953 1.403646 +v -0.090994 2.710282 1.403646 +v -0.159155 2.611994 0.114216 +v -0.159155 2.696241 0.114216 +v -0.159155 2.611994 1.403646 +v -0.159155 2.696241 1.403646 +v 0.166667 0.047999 0.100000 +v -0.166666 0.047999 0.100000 +v -0.168083 3.397916 0.100850 +v 0.168084 3.397916 0.184616 +v -0.166666 0.047999 0.183059 +vt 0.345261 0.851848 +vt 0.236786 0.847477 +vt 0.345261 0.847477 +vt 0.783083 0.236574 +vt 0.877473 0.231282 +vt 0.877473 0.236574 +vt 0.783083 0.240945 +vt 0.877473 0.240945 +vt 0.783083 0.231282 +vt 0.877473 0.226911 +vt 0.661892 0.928877 +vt 0.656600 0.820401 +vt 0.661892 0.820401 +vt 0.666263 0.928877 +vt 0.666263 0.820401 +vt 0.656600 0.928877 +vt 0.652229 0.820401 +vt 0.686915 0.923380 +vt 0.681624 0.820401 +vt 0.686915 0.820401 +vt 0.691287 0.923380 +vt 0.691287 0.820401 +vt 0.681624 0.923380 +vt 0.677252 0.820401 +vt 0.120617 0.906925 +vt 0.201609 0.901634 +vt 0.201609 0.906925 +vt 0.120617 0.911296 +vt 0.201609 0.911296 +vt 0.120617 0.901634 +vt 0.201609 0.897262 +vt 0.345261 0.857140 +vt 0.236786 0.851848 +vt 0.246449 0.872501 +vt 0.241157 0.966891 +vt 0.241157 0.872501 +vt 0.250820 0.872501 +vt 0.246449 0.966891 +vt 0.236786 0.966891 +vt 0.236786 0.872501 +vt 0.553510 0.890940 +vt 0.472517 0.886569 +vt 0.553510 0.886569 +vt 0.345261 0.861511 +vt 0.236786 0.857140 +vt 0.120617 0.881902 +vt 0.223595 0.886273 +vt 0.120617 0.886273 +vt 0.472517 0.881277 +vt 0.553510 0.881278 +vt 0.472517 0.876906 +vt 0.553510 0.876906 +vt 0.120617 0.872239 +vt 0.223595 0.876610 +vt 0.120617 0.876610 +vt 0.223595 0.881902 +vt 0.783083 0.226911 +vt 0.652229 0.928877 +vt 0.677252 0.923380 +vt 0.120617 0.897262 +vt 0.250820 0.966891 +vt 0.472517 0.890940 +vt 0.236786 0.861511 +vt 0.223595 0.872239 +vt 0.990793 0.982377 +vt 0.994505 0.790024 +vt 0.994505 0.982377 +vt 0.975330 0.140291 +vt 0.979043 0.169554 +vt 0.975330 0.169554 +vt 0.958688 0.735153 +vt 0.979803 0.703630 +vt 0.979803 0.735153 +vt 0.686077 0.070125 +vt 0.666517 0.094166 +vt 0.678580 0.065042 +vt 0.754142 0.017893 +vt 0.722778 0.020841 +vt 0.751901 0.008776 +vt 0.346040 0.826913 +vt 0.326285 0.833206 +vt 0.328526 0.824090 +vt 0.297161 0.821141 +vt 0.301490 0.812889 +vt 0.272153 0.801950 +vt 0.278274 0.795074 +vt 0.252964 0.776940 +vt 0.260460 0.771857 +vt 0.240900 0.747817 +vt 0.249262 0.744821 +vt 0.245442 0.715808 +vt 0.240900 0.685309 +vt 0.249262 0.686794 +vt 0.236786 0.716563 +vt 0.252963 0.656185 +vt 0.260723 0.659122 +vt 0.276425 0.634549 +vt 0.782646 0.086752 +vt 0.786465 0.057739 +vt 0.883246 0.005495 +vt 0.975330 0.374451 +vt 0.979043 0.345187 +vt 0.979043 0.374451 +vt 0.975330 0.286661 +vt 0.979043 0.268920 +vt 0.979043 0.286661 +vt 0.975330 0.492194 +vt 0.979043 0.462242 +vt 0.979043 0.492194 +vt 0.975330 0.403715 +vt 0.979043 0.403715 +vt 0.975330 0.315924 +vt 0.979043 0.315924 +vt 0.975330 0.521356 +vt 0.979043 0.521356 +vt 0.975330 0.462242 +vt 0.979043 0.432979 +vt 0.975330 0.345187 +vt 0.633615 0.523161 +vt 0.703230 0.526874 +vt 0.633615 0.526874 +vt 0.975330 0.023236 +vt 0.979043 0.052499 +vt 0.975330 0.052499 +vt 0.486381 0.832580 +vt 0.501037 0.853354 +vt 0.486381 0.853354 +vt 0.593125 0.832580 +vt 0.588684 0.853354 +vt 0.588684 0.832580 +vt 0.514901 0.853354 +vt 0.505479 0.832580 +vt 0.514901 0.832580 +vt 0.958688 0.703630 +vt 0.979803 0.669986 +vt 0.975330 0.198817 +vt 0.979043 0.228769 +vt 0.975330 0.228769 +vt 0.979043 0.081763 +vt 0.975330 0.081763 +vt 0.990793 0.586682 +vt 0.994505 0.779035 +vt 0.990792 0.779035 +vt 0.703891 0.046908 +vt 0.697769 0.040032 +vt 0.702042 0.207434 +vt 0.678579 0.185797 +vt 0.686339 0.182860 +vt 0.979043 0.111027 +vt 0.975330 0.111027 +vt 0.979043 0.198817 +vt 0.771656 0.215922 +vt 0.693569 0.215917 +vt 0.212598 0.897262 +vt 0.216311 0.966877 +vt 0.212598 0.966877 +vt 0.481939 0.832580 +vt 0.472517 0.853354 +vt 0.472517 0.832580 +vt 0.979043 0.257931 +vt 0.975330 0.257931 +vt 0.346040 0.626061 +vt 0.346040 0.634544 +vt 0.589985 0.820018 +vt 0.610922 0.820018 +vt 0.607782 0.832580 +vt 0.958688 0.892770 +vt 0.979803 0.861246 +vt 0.979803 0.892770 +vt 0.448966 0.780214 +vt 0.452106 0.777073 +vt 0.461528 0.777073 +vt 0.958688 0.829723 +vt 0.979803 0.798200 +vt 0.979803 0.829723 +vt 0.958688 0.944222 +vt 0.979803 0.924293 +vt 0.979803 0.944222 +vt 0.674878 0.155188 +vt 0.666516 0.156673 +vt 0.806530 0.574614 +vt 0.829747 0.556800 +vt 0.874297 0.735138 +vt 0.958688 0.949484 +vt 0.979803 0.949484 +vt 0.958688 0.766676 +vt 0.979803 0.766676 +vt 0.958688 0.798200 +vt 0.413756 0.798100 +vt 0.413756 0.776984 +vt 0.426426 0.780152 +vt 0.424479 0.819903 +vt 0.445417 0.819903 +vt 0.442276 0.832465 +vt 0.442276 0.853239 +vt 0.445417 0.856380 +vt 0.445417 0.865802 +vt 0.504178 0.856495 +vt 0.504178 0.865917 +vt 0.554409 0.853354 +vt 0.557550 0.856495 +vt 0.557550 0.865917 +vt 0.958688 0.861246 +vt 0.483240 0.820018 +vt 0.504178 0.820018 +vt 0.501037 0.832580 +vt 0.536613 0.820018 +vt 0.557550 0.820018 +vt 0.554409 0.832580 +vt 0.295591 0.929608 +vt 0.316365 0.950546 +vt 0.295591 0.950545 +vt 0.568273 0.853354 +vt 0.558851 0.832580 +vt 0.568273 0.832580 +vt 0.426437 0.799412 +vt 0.449030 0.808733 +vt 0.426490 0.808914 +vt 0.539753 0.832580 +vt 0.535312 0.853354 +vt 0.535312 0.832580 +vt 0.427620 0.832465 +vt 0.423178 0.853239 +vt 0.423178 0.832465 +vt 0.413756 0.853239 +vt 0.413756 0.832465 +vt 0.525890 0.853354 +vt 0.525890 0.832580 +vt 0.456139 0.853239 +vt 0.446718 0.832465 +vt 0.456139 0.832465 +vt 0.621645 0.853354 +vt 0.612223 0.832580 +vt 0.621645 0.832580 +vt 0.426426 0.794932 +vt 0.448977 0.799312 +vt 0.448977 0.775772 +vt 0.426437 0.775672 +vt 0.612223 0.853354 +vt 0.446718 0.853239 +vt 0.558851 0.853354 +vt 0.449030 0.766351 +vt 0.426490 0.766170 +vt 0.427620 0.853239 +vt 0.607782 0.853354 +vt 0.593125 0.853354 +vt 0.448966 0.794870 +vt 0.610922 0.856495 +vt 0.610922 0.865917 +vt 0.958777 0.591899 +vt 0.979714 0.586682 +vt 0.979714 0.591899 +vt 0.282747 0.940410 +vt 0.261809 0.950797 +vt 0.261809 0.940410 +vt 0.481939 0.853355 +vt 0.295591 0.897681 +vt 0.317276 0.918619 +vt 0.295591 0.918619 +vt 0.060116 0.930852 +vt 0.039179 0.951626 +vt 0.039179 0.930852 +vt 0.958688 0.924293 +vt 0.771657 0.015069 +vt 0.771558 0.005495 +vt 0.730569 0.930395 +vt 0.709632 0.951169 +vt 0.709632 0.930395 +vt 0.727106 0.029093 +vt 0.671059 0.126175 +vt 0.662402 0.125419 +vt 0.979043 0.140291 +vt 0.674878 0.097162 +vt 0.975330 0.005495 +vt 0.979043 0.023236 +vt 0.579262 0.853354 +vt 0.579262 0.832580 +vt 0.539753 0.853354 +vt 0.580344 0.923388 +vt 0.585200 0.932684 +vt 0.580344 0.932684 +vt 0.580344 0.914091 +vt 0.585200 0.923388 +vt 0.580344 0.904795 +vt 0.585200 0.914091 +vt 0.580344 0.895499 +vt 0.585200 0.904795 +vt 0.580344 0.886202 +vt 0.585200 0.895499 +vt 0.580344 0.876906 +vt 0.585200 0.886202 +vt 0.580344 0.941980 +vt 0.585200 0.951277 +vt 0.580344 0.951277 +vt 0.585200 0.941980 +vt 0.041812 0.917230 +vt 0.038254 0.908641 +vt 0.062546 0.908641 +vt 0.564499 0.932684 +vt 0.569355 0.923388 +vt 0.569355 0.932684 +vt 0.564499 0.923388 +vt 0.569355 0.914091 +vt 0.564499 0.914091 +vt 0.569355 0.904795 +vt 0.564499 0.904795 +vt 0.569355 0.895499 +vt 0.564499 0.895499 +vt 0.569355 0.886202 +vt 0.564499 0.886202 +vt 0.569355 0.876906 +vt 0.564499 0.951277 +vt 0.569355 0.941980 +vt 0.569355 0.951277 +vt 0.564499 0.941980 +vt 0.092421 0.900053 +vt 0.095979 0.908641 +vt 0.071686 0.908641 +vt 0.282747 0.930023 +vt 0.261809 0.930023 +vt 0.874841 0.746128 +vt 0.880058 0.956548 +vt 0.874797 0.956549 +vt 0.402767 0.766172 +vt 0.397550 0.976585 +vt 0.397506 0.766170 +vt 0.990792 0.790024 +vt 0.345942 0.836488 +vt 0.267953 0.626065 +vt 0.813631 0.005495 +vt 0.797928 0.030067 +vt 0.883246 0.197854 +vt 0.865731 0.195031 +vt 0.838695 0.183833 +vt 0.815479 0.166018 +vt 0.797664 0.142802 +vt 0.786465 0.115766 +vt 0.975330 0.268920 +vt 0.975330 0.432979 +vt 0.703230 0.523161 +vt 0.505479 0.853354 +vt 0.958688 0.669986 +vt 0.994505 0.586682 +vt 0.771657 0.207438 +vt 0.216311 0.897262 +vt 0.610922 0.829440 +vt 0.589985 0.829440 +vt 0.461528 0.798011 +vt 0.452106 0.798011 +vt 0.874297 0.542778 +vt 0.856783 0.545601 +vt 0.804682 0.735138 +vt 0.788979 0.710565 +vt 0.777517 0.682893 +vt 0.773697 0.653880 +vt 0.777517 0.624867 +vt 0.788716 0.597831 +vt 0.423258 0.776984 +vt 0.423258 0.798100 +vt 0.445417 0.829325 +vt 0.424479 0.829325 +vt 0.424479 0.865802 +vt 0.424479 0.856380 +vt 0.483240 0.865917 +vt 0.483240 0.856495 +vt 0.536613 0.865917 +vt 0.536613 0.856495 +vt 0.504178 0.829440 +vt 0.483240 0.829440 +vt 0.557550 0.829440 +vt 0.536613 0.829440 +vt 0.316365 0.929608 +vt 0.589985 0.865917 +vt 0.589985 0.856495 +vt 0.958777 0.586682 +vt 0.282747 0.950797 +vt 0.317276 0.897681 +vt 0.060116 0.951626 +vt 0.730569 0.951169 +vt 0.979043 0.005495 +vt 0.585200 0.876906 +vt 0.041812 0.900053 +vt 0.050400 0.896495 +vt 0.058989 0.900053 +vt 0.058989 0.917230 +vt 0.050400 0.920787 +vt 0.564499 0.876906 +vt 0.092421 0.917230 +vt 0.083833 0.920787 +vt 0.075244 0.917230 +vt 0.075244 0.900052 +vt 0.083833 0.896495 +vt 0.880058 0.746127 +vt 0.402767 0.976587 +vn -0.2018 -0.9794 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.2018 -0.9794 0.0000 +vn 0.2018 0.9794 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.2018 0.9794 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 -0.4144 0.9101 +vn -1.0000 -0.0049 -0.0086 +vn -0.9999 -0.0027 -0.0097 +vn -1.0000 -0.0050 -0.0085 +vn -1.0000 -0.0091 -0.0026 +vn -1.0000 -0.0083 -0.0048 +vn 1.0000 -0.0093 -0.0015 +vn 1.0000 -0.0091 -0.0026 +vn 1.0000 -0.0083 -0.0048 +vn 1.0000 -0.0069 -0.0068 +vn 1.0000 -0.0068 -0.0069 +vn 1.0000 -0.0050 -0.0085 +vn 1.0000 -0.0049 -0.0086 +vn 0.9999 -0.0027 -0.0097 +vn 0.9999 -0.0025 -0.0097 +vn 0.9999 0.0001 -0.0103 +vn 0.9999 0.0027 -0.0102 +vn 0.9999 0.0028 -0.0101 +vn 0.9999 -0.0001 -0.0103 +vn 0.9999 0.0047 -0.0093 +vn 0.9999 0.0051 -0.0096 +vn 1.0000 0.0067 -0.0038 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.9621 -0.2727 +vn 0.0000 -0.9873 -0.1591 +vn 0.0000 0.4624 -0.8867 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 0.5385 -0.8426 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 -0.4456 0.8952 +vn -1.0000 -0.0068 -0.0069 +vn -1.0000 -0.0069 -0.0068 +vn -1.0000 0.0067 -0.0038 +vn -0.9999 0.0047 -0.0093 +vn -0.9999 0.0051 -0.0096 +vn -1.0000 0.0007 -0.0001 +vn -1.0000 0.0058 -0.0047 +vn 1.0000 0.0007 -0.0001 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.2588 0.9659 +vn 0.0000 0.9966 0.0826 +vn 0.0000 0.9613 0.2754 +vn -0.9999 0.0028 -0.0101 +vn -0.9999 0.0027 -0.0102 +vn -1.0000 -0.0039 0.0000 +vn -0.7071 -0.0036 -0.7071 +vn 0.7071 -0.0036 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 1.0000 -0.0039 0.0000 +vn 0.0000 -0.0024 -1.0000 +vn -1.0000 -0.0093 -0.0015 +vn -0.9999 0.0001 -0.0103 +vn -0.9999 -0.0001 -0.0103 +vn -0.9999 -0.0025 -0.0097 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 -0.0004 0.0000 +vn -1.0000 -0.0004 0.0000 +vn 1.0000 0.0058 -0.0047 +s off +f 664/847/108 658/848/108 660/849/108 +f 622/850/109 625/851/109 624/852/109 +f 618/853/110 624/852/110 620/854/110 +f 623/855/111 621/856/111 625/851/111 +f 630/857/109 633/858/109 632/859/109 +f 626/860/110 632/859/110 628/861/110 +f 631/862/111 629/863/111 633/858/111 +f 638/864/109 641/865/109 640/866/109 +f 634/867/110 640/866/110 636/868/110 +f 639/869/111 637/870/111 641/865/111 +f 646/871/109 649/872/109 648/873/109 +f 642/874/110 648/873/110 644/875/110 +f 647/876/111 645/877/111 649/872/111 +f 665/878/112 662/879/112 664/847/112 +f 657/880/112 654/881/112 656/882/112 +f 653/883/113 655/884/113 657/880/113 +f 656/882/108 650/885/108 652/886/108 +f 677/887/113 679/888/113 681/889/113 +f 661/890/113 663/891/113 665/878/113 +f 672/892/108 666/893/108 668/894/108 +f 681/889/112 678/895/112 680/896/112 +f 680/896/108 674/897/108 676/898/108 +f 669/899/113 671/900/113 673/901/113 +f 673/901/112 670/902/112 672/892/112 +f 664/847/108 662/879/108 658/848/108 +f 622/850/109 623/855/109 625/851/109 +f 618/853/110 622/850/110 624/852/110 +f 623/855/111 619/903/111 621/856/111 +f 630/857/109 631/862/109 633/858/109 +f 626/860/110 630/857/110 632/859/110 +f 631/862/111 627/904/111 629/863/111 +f 638/864/109 639/869/109 641/865/109 +f 634/867/110 638/864/110 640/866/110 +f 639/869/111 635/905/111 637/870/111 +f 646/871/109 647/876/109 649/872/109 +f 642/874/110 646/871/110 648/873/110 +f 647/876/111 643/906/111 645/877/111 +f 665/878/112 663/891/112 662/879/112 +f 657/880/112 655/884/112 654/881/112 +f 653/883/113 651/907/113 655/884/113 +f 656/882/108 654/881/108 650/885/108 +f 677/887/113 675/908/113 679/888/113 +f 661/890/113 659/909/113 663/891/113 +f 672/892/108 670/902/108 666/893/108 +f 681/889/112 679/888/112 678/895/112 +f 680/896/108 678/895/108 674/897/108 +f 669/899/113 667/910/113 671/900/113 +f 673/901/112 671/900/112 670/902/112 +s 1 +f 482/911/114 471/912/114 474/913/114 +f 506/914/115 531/915/116 505/916/116 +f 519/917/117 480/918/118 478/919/117 +f 507/920/119 518/921/120 517/922/121 +f 510/923/122 514/924/123 513/925/122 +f 474/926/124 472/927/125 469/928/125 +f 469/928/125 473/929/126 468/930/126 +f 468/930/126 475/931/127 467/932/128 +f 467/932/128 476/933/129 466/934/130 +f 466/934/130 477/935/131 465/936/132 +f 464/937/133 478/938/134 463/939/135 +f 465/936/132 479/940/136 464/937/133 +f 463/939/135 480/941/137 462/942/138 +f 480/941/137 461/943/139 462/942/138 +f 490/944/109 489/945/109 481/946/109 +f 487/947/140 467/948/141 466/949/140 +f 484/950/142 474/951/143 469/952/142 +f 491/953/144 463/954/145 462/955/144 +f 488/956/115 466/949/140 465/957/115 +f 485/958/146 469/952/142 468/959/146 +f 483/960/147 462/955/144 461/961/147 +f 489/962/145 464/963/116 463/954/145 +f 486/964/141 468/959/146 467/948/141 +f 481/965/148 461/966/148 471/967/148 +f 464/963/116 488/956/115 465/957/115 +f 510/968/142 526/969/146 509/970/146 +f 577/971/116 558/972/116 578/973/116 +f 569/974/149 571/975/149 568/976/149 +f 499/977/109 556/978/109 498/979/109 +f 521/980/118 470/981/150 480/918/118 +f 504/982/145 532/983/144 503/984/144 +f 509/970/146 527/985/141 508/986/141 +f 512/987/114 523/988/114 515/989/114 +f 508/990/151 517/922/121 516/991/152 +f 502/992/153 521/993/154 503/994/155 +f 508/986/141 528/995/140 507/996/140 +f 505/916/116 530/997/145 504/982/145 +f 502/992/153 686/998/156 511/999/157 +f 502/1000/148 522/1001/148 512/1002/148 +f 576/1003/112 539/1004/112 538/1005/112 +f 503/984/144 524/1006/147 502/1007/147 +f 461/943/139 542/1008/158 471/1009/109 +f 534/1010/148 494/1011/148 549/1012/148 +f 514/1013/159 475/1014/160 473/1015/159 +f 546/1016/161 547/1017/161 493/1018/161 +f 517/1019/162 477/1020/163 476/1021/162 +f 543/1022/164 472/1023/165 685/1024/164 +f 504/1025/166 521/993/154 519/1026/167 +f 527/1027/112 526/1028/112 522/1029/112 +f 684/1030/148 685/1024/164 492/1031/148 +f 520/1032/114 478/919/117 479/1033/114 +f 520/1032/114 477/1020/163 518/1034/163 +f 684/1035/148 492/1036/148 545/1037/148 +f 536/1038/148 496/1039/148 553/1040/148 +f 554/1041/161 555/1042/161 497/1043/161 +f 558/972/161 559/1044/161 499/1045/161 +f 562/1046/161 563/1047/161 501/1048/161 +f 516/1049/160 476/1021/162 475/1014/160 +f 538/1050/148 498/1051/148 557/1052/148 +f 540/1053/148 500/1054/148 561/1055/148 +f 540/1056/116 499/1057/116 500/1058/116 +f 501/1059/109 560/1060/109 500/1061/109 +f 564/1062/168 533/1063/168 684/1064/168 +f 581/1065/149 583/1066/149 580/1067/149 +f 573/1068/149 575/1069/149 572/1070/149 +f 572/1070/112 537/1071/112 536/1072/112 +f 580/1067/112 541/1073/112 540/1074/112 +f 497/1075/109 552/1076/109 496/1077/109 +f 495/1078/109 548/1079/109 494/1080/109 +f 565/1081/169 567/1082/169 564/1062/169 +f 547/1083/170 545/1037/170 544/1084/170 +f 551/1085/171 549/1012/171 548/1079/171 +f 555/1086/171 553/1040/171 552/1076/171 +f 556/978/171 558/972/171 557/1052/171 +f 563/1087/171 561/1055/171 560/1060/171 +f 493/1088/172 544/1084/172 492/1089/172 +f 573/1068/116 554/1041/116 574/1090/116 +f 569/974/116 550/1091/116 570/1092/116 +f 565/1081/173 546/1016/173 566/1093/173 +f 550/1091/161 551/1094/161 495/1095/161 +f 686/1096/161 682/1097/161 542/1098/161 +f 617/1099/116 495/1100/116 616/1101/116 +f 576/1003/149 578/973/149 579/1102/149 +f 683/1103/116 501/1104/116 682/1105/116 +f 538/1106/116 497/1107/116 498/1108/116 +f 513/1109/165 473/1015/159 472/1023/165 +f 515/1110/174 513/925/122 543/1111/174 +f 534/1112/116 493/1113/116 494/1114/116 +f 509/1115/123 516/991/152 514/924/123 +f 505/1116/175 519/1026/167 520/1117/176 +f 507/996/140 529/1118/115 506/914/115 +f 506/1119/177 520/1117/176 518/921/120 +f 515/1120/143 525/1121/142 510/968/142 +f 568/976/112 535/1122/112 534/1123/112 +f 581/1065/116 562/1046/116 582/1124/116 +f 585/1125/178 593/1126/114 584/1127/114 +f 586/1128/161 592/1129/178 585/1125/178 +f 587/1130/141 594/1131/161 586/1128/161 +f 588/1132/116 595/1133/141 587/1130/141 +f 589/1134/179 596/1135/116 588/1132/116 +f 590/1136/148 597/1137/179 589/1134/179 +f 591/1138/160 598/1139/148 590/1140/148 +f 584/1127/114 599/1141/160 591/1138/160 +f 599/1142/109 593/1143/109 596/1144/109 +f 609/1145/114 601/1146/178 600/1147/114 +f 608/1148/178 602/1149/161 601/1146/178 +f 610/1150/161 603/1151/141 602/1149/161 +f 611/1152/141 604/1153/116 603/1151/141 +f 612/1154/116 605/1155/179 604/1153/116 +f 613/1156/179 606/1157/148 605/1155/179 +f 614/1158/148 607/1159/160 606/1160/148 +f 615/1161/160 600/1147/114 607/1159/160 +f 611/1162/112 610/1163/112 614/1164/112 +f 536/1165/116 616/1101/116 496/1166/116 +f 542/1167/180 492/1168/180 685/1169/180 +f 684/1170/181 686/1171/181 543/1172/181 +f 482/911/114 481/1173/114 471/912/114 +f 506/914/115 529/1118/115 531/915/116 +f 519/917/117 521/980/118 480/918/118 +f 507/920/119 506/1119/177 518/921/120 +f 510/923/122 509/1115/123 514/924/123 +f 474/926/124 685/1174/124 472/927/125 +f 469/928/125 472/927/125 473/929/126 +f 468/930/126 473/929/126 475/931/127 +f 467/932/128 475/931/127 476/933/129 +f 466/934/130 476/933/129 477/935/131 +f 464/937/133 479/940/136 478/938/134 +f 465/936/132 477/935/131 479/940/136 +f 463/939/135 478/938/134 480/941/137 +f 480/941/137 470/1175/182 461/943/139 +f 483/1176/109 481/946/109 491/1177/109 +f 481/946/109 482/1178/109 484/1179/109 +f 491/1177/109 481/946/109 489/945/109 +f 484/1179/109 485/1180/109 481/946/109 +f 485/1180/109 486/1181/109 481/946/109 +f 486/1181/109 487/1182/109 481/946/109 +f 487/1182/109 488/1183/109 481/946/109 +f 488/1183/109 490/944/109 481/946/109 +f 487/947/140 486/964/141 467/948/141 +f 484/950/142 482/1184/143 474/951/143 +f 491/953/144 489/962/145 463/954/145 +f 488/956/115 487/947/140 466/949/140 +f 485/958/146 484/950/142 469/952/142 +f 483/960/147 491/953/144 462/955/144 +f 489/962/145 490/1185/116 464/963/116 +f 486/964/141 485/958/146 468/959/146 +f 481/965/148 483/1186/148 461/966/148 +f 464/963/116 490/1185/116 488/956/115 +f 510/968/142 525/1121/142 526/969/146 +f 577/971/116 557/1052/116 558/972/116 +f 569/974/149 570/1092/149 571/975/149 +f 499/977/109 559/1187/109 556/978/109 +f 521/980/118 511/1188/150 470/981/150 +f 504/982/145 530/997/145 532/983/144 +f 509/970/146 526/969/146 527/985/141 +f 512/987/114 522/1189/114 523/988/114 +f 508/990/151 507/920/119 517/922/121 +f 502/992/153 511/999/157 521/993/154 +f 508/986/141 527/985/141 528/995/140 +f 505/916/116 531/915/116 530/997/145 +f 502/992/153 512/1190/112 686/998/156 +f 502/1000/148 524/1191/148 522/1001/148 +f 576/1003/112 579/1102/112 539/1004/112 +f 503/984/144 532/983/144 524/1006/147 +f 461/943/139 470/1175/182 542/1008/158 +f 548/1192/148 549/1012/148 494/1011/148 +f 549/1012/148 569/974/148 534/1010/148 +f 569/974/148 568/1193/148 534/1010/148 +f 514/1013/159 516/1049/160 475/1014/160 +f 493/1018/161 533/1194/161 566/1093/161 +f 533/1194/161 567/1195/161 566/1093/161 +f 566/1093/161 546/1016/161 493/1018/161 +f 517/1019/162 518/1034/163 477/1020/163 +f 543/1022/164 513/1109/165 472/1023/165 +f 504/1025/166 503/994/155 521/993/154 +f 523/1196/112 522/1029/112 525/1197/112 +f 522/1029/112 524/1198/112 532/1199/112 +f 525/1197/112 522/1029/112 526/1028/112 +f 532/1199/112 530/1200/112 522/1029/112 +f 530/1200/112 531/1201/112 522/1029/112 +f 531/1201/112 529/1202/112 522/1029/112 +f 529/1202/112 528/1203/112 522/1029/112 +f 528/1203/112 527/1027/112 522/1029/112 +f 684/1030/148 543/1022/164 685/1024/164 +f 520/1032/114 519/917/117 478/919/117 +f 520/1032/114 479/1033/114 477/1020/163 +f 544/1204/148 545/1037/148 492/1036/148 +f 545/1037/148 565/1081/148 684/1035/148 +f 565/1081/148 564/1205/148 684/1035/148 +f 552/1206/148 553/1040/148 496/1039/148 +f 553/1040/148 573/1068/148 536/1038/148 +f 573/1068/148 572/1207/148 536/1038/148 +f 497/1043/161 537/1208/161 574/1090/161 +f 537/1208/161 575/1209/161 574/1090/161 +f 574/1090/161 554/1041/161 497/1043/161 +f 499/1045/161 539/1210/161 578/973/161 +f 539/1210/161 579/1211/161 578/973/161 +f 578/973/161 558/972/161 499/1045/161 +f 501/1048/161 541/1212/161 582/1124/161 +f 541/1212/161 583/1213/161 582/1124/161 +f 582/1124/161 562/1046/161 501/1048/161 +f 516/1049/160 517/1019/162 476/1021/162 +f 556/1214/148 557/1052/148 498/1051/148 +f 557/1052/148 577/971/148 538/1050/148 +f 577/971/148 576/1215/148 538/1050/148 +f 560/1216/148 561/1055/148 500/1054/148 +f 561/1055/148 581/1065/148 540/1053/148 +f 581/1065/148 580/1217/148 540/1053/148 +f 540/1056/116 539/1218/116 499/1057/116 +f 501/1059/109 563/1087/109 560/1060/109 +f 564/1062/168 567/1082/168 533/1063/168 +f 581/1065/149 582/1124/149 583/1066/149 +f 573/1068/149 574/1090/149 575/1069/149 +f 572/1070/112 575/1069/112 537/1071/112 +f 580/1067/112 583/1066/112 541/1073/112 +f 497/1075/109 555/1086/109 552/1076/109 +f 495/1078/109 551/1085/109 548/1079/109 +f 565/1081/169 566/1093/169 567/1082/169 +f 547/1083/170 546/1016/170 545/1037/170 +f 551/1085/171 550/1091/171 549/1012/171 +f 555/1086/171 554/1041/171 553/1040/171 +f 556/978/171 559/1187/171 558/972/171 +f 563/1087/171 562/1046/171 561/1055/171 +f 493/1088/172 547/1083/172 544/1084/172 +f 573/1068/116 553/1040/116 554/1041/116 +f 569/974/116 549/1012/116 550/1091/116 +f 565/1081/173 545/1037/173 546/1016/173 +f 495/1095/161 535/1219/161 570/1092/161 +f 535/1219/161 571/1220/161 570/1092/161 +f 570/1092/161 550/1091/161 495/1095/161 +f 542/1098/161 470/981/161 511/1188/161 +f 686/1096/161 683/1221/161 682/1097/161 +f 542/1098/161 511/1188/161 686/1096/161 +f 617/1099/116 535/1222/116 495/1100/116 +f 576/1003/149 577/971/149 578/973/149 +f 683/1103/116 541/1223/116 501/1104/116 +f 538/1106/116 537/1224/116 497/1107/116 +f 513/1109/165 514/1013/159 473/1015/159 +f 515/1110/174 510/923/122 513/925/122 +f 534/1112/116 533/1225/116 493/1113/116 +f 509/1115/123 508/990/151 516/991/152 +f 505/1116/175 504/1025/166 519/1026/167 +f 507/996/140 528/995/140 529/1118/115 +f 506/1119/177 505/1116/175 520/1117/176 +f 515/1120/143 523/1226/143 525/1121/142 +f 568/976/112 571/975/112 535/1122/112 +f 581/1065/116 561/1055/116 562/1046/116 +f 585/1125/178 592/1129/178 593/1126/114 +f 586/1128/161 594/1131/161 592/1129/178 +f 587/1130/141 595/1133/141 594/1131/161 +f 588/1132/116 596/1135/116 595/1133/141 +f 589/1134/179 597/1137/179 596/1135/116 +f 590/1136/148 598/1227/148 597/1137/179 +f 591/1138/160 599/1141/160 598/1139/148 +f 584/1127/114 593/1126/114 599/1141/160 +f 593/1143/109 592/1228/109 596/1144/109 +f 592/1228/109 594/1229/109 596/1144/109 +f 594/1229/109 595/1230/109 596/1144/109 +f 596/1144/109 597/1231/109 598/1232/109 +f 598/1232/109 599/1142/109 596/1144/109 +f 609/1145/114 608/1148/178 601/1146/178 +f 608/1148/178 610/1150/161 602/1149/161 +f 610/1150/161 611/1152/141 603/1151/141 +f 611/1152/141 612/1154/116 604/1153/116 +f 612/1154/116 613/1156/179 605/1155/179 +f 613/1156/179 614/1233/148 606/1157/148 +f 614/1158/148 615/1161/160 607/1159/160 +f 615/1161/160 609/1145/114 600/1147/114 +f 610/1163/112 608/1234/112 614/1164/112 +f 608/1234/112 609/1235/112 614/1164/112 +f 609/1235/112 615/1236/112 614/1164/112 +f 614/1164/112 613/1237/112 612/1238/112 +f 612/1238/112 611/1162/112 614/1164/112 +f 536/1165/116 617/1099/116 616/1101/116 +f 542/1167/180 682/1239/180 492/1168/180 +f 684/1170/181 683/1240/181 686/1171/181 diff --git a/src/main/resources/assets/hbm/models/doors/secure_access_door.obj b/src/main/resources/assets/hbm/models/doors/secure_access_door.obj new file mode 100644 index 000000000..24c2c95b6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/secure_access_door.obj @@ -0,0 +1,4364 @@ +# Blender v2.92.0 OBJ File: 'secure_access_door.blend' +# www.blender.org +o door +v -2.340313 1.159684 0.125000 +v 2.340313 1.159684 0.125000 +v -2.500000 0.999997 0.125000 +v -2.500000 4.499997 0.125000 +v 2.500000 4.499997 0.125000 +v 2.500000 0.999997 0.125000 +v -2.340313 1.159684 0.045951 +v 2.340313 1.159684 0.045951 +v -2.340313 4.119773 0.125000 +v -2.119776 4.340310 0.125000 +v -2.496256 4.496253 0.125000 +v 2.119776 4.340310 0.125000 +v 2.340313 4.119773 0.125000 +v 2.496256 4.496253 0.125000 +v -2.119776 4.340310 0.045951 +v -2.340313 4.119773 0.045951 +v 2.340313 4.119773 0.045951 +v 2.119776 4.340310 0.045951 +v -2.500000 4.119773 0.125000 +v 2.500000 4.119773 0.125000 +v 2.500000 3.579181 0.125000 +v 2.500000 3.423868 0.125000 +v 2.500000 2.800531 0.125000 +v 2.500000 2.642630 0.125000 +v 2.500000 2.022151 0.125000 +v 2.500000 1.861122 0.125000 +v -2.340313 3.455513 0.125000 +v -2.340313 3.610826 0.125000 +v -2.340313 2.714197 0.125000 +v -2.340313 2.872098 0.125000 +v -2.340313 1.972611 0.125000 +v -2.340313 2.133640 0.125000 +v -2.340313 2.133400 0.045951 +v -2.340313 1.972851 0.045951 +v -2.340313 2.871974 0.045951 +v -2.340313 2.714321 0.045951 +v -2.340313 3.610798 0.045951 +v -2.340313 3.455542 0.045951 +v 2.340313 2.133640 0.125000 +v 2.340313 1.972611 0.125000 +v 2.340313 2.872098 0.125000 +v 2.340313 2.714197 0.125000 +v 2.340313 3.610826 0.125000 +v 2.340313 3.455513 0.125000 +v 2.340313 3.455542 0.045951 +v 2.340313 3.610798 0.045951 +v 2.340313 2.714321 0.045951 +v 2.340313 2.871974 0.045951 +v 2.340313 1.972851 0.045951 +v 2.340313 2.133400 0.045951 +v -2.500000 1.861122 0.125000 +v -2.500000 2.022151 0.125000 +v -2.500000 2.642630 0.125000 +v -2.500000 2.800531 0.125000 +v -2.500000 3.423868 0.125000 +v -2.500000 3.579181 0.125000 +v -2.340313 3.455542 0.072230 +v -2.340313 3.483067 0.099755 +v -2.340313 3.583273 0.099755 +v -2.340313 3.610798 0.072230 +v 2.340313 3.610798 0.072230 +v 2.340313 3.583273 0.099755 +v 2.340313 3.483067 0.099755 +v 2.340313 3.455542 0.072230 +v -2.340313 2.714321 0.072230 +v -2.340313 2.741846 0.099755 +v -2.340313 2.844450 0.099755 +v -2.340313 2.871974 0.072230 +v 2.340313 2.871974 0.072230 +v 2.340313 2.844450 0.099755 +v 2.340313 2.741846 0.099755 +v 2.340313 2.714321 0.072230 +v -2.340313 1.972851 0.072230 +v -2.340313 2.000376 0.099755 +v -2.340313 2.105875 0.099755 +v -2.340313 2.133400 0.072230 +v 2.340313 2.133400 0.072230 +v 2.340313 2.105875 0.099755 +v 2.340313 2.000376 0.099755 +v 2.340313 1.972851 0.072230 +v -1.212864 2.208840 0.074562 +v -1.212864 2.619229 0.074562 +v -1.243111 2.178593 0.033562 +v -1.243111 2.649477 0.033562 +v -0.802475 2.208840 0.074562 +v -0.802475 2.619229 0.074562 +v -0.772228 2.178593 0.033562 +v -0.772228 2.649477 0.033562 +v -1.243111 2.178593 0.074562 +v -1.243111 2.649477 0.074562 +v -0.772228 2.649477 0.074562 +v -0.772228 2.178593 0.074562 +v -1.212864 2.208840 0.054611 +v -1.212864 2.619229 0.054611 +v -0.802475 2.619229 0.054611 +v -0.802475 2.208840 0.054611 +v -0.204356 2.301647 0.091702 +v -0.204356 2.301647 0.020851 +v -0.204356 2.466216 0.020851 +v 0.204356 2.301647 0.091702 +v 0.204356 2.301647 0.020851 +v 0.204356 2.466216 0.020851 +v -0.204356 2.395251 0.091702 +v -0.204356 2.466216 0.055863 +v -0.204356 2.445431 0.081205 +v 0.204356 2.466216 0.055863 +v 0.204356 2.395251 0.091702 +v 0.204356 2.445431 0.081205 +v -2.500240 1.249014 0.129405 +v -2.500100 1.217400 0.147657 +v -2.499822 1.217400 0.184161 +v -2.499682 1.249014 0.202413 +v -2.499822 1.280628 0.184161 +v -2.500101 1.280628 0.147657 +v -1.553283 1.291650 0.190060 +v -2.111814 1.291690 0.190126 +v -2.112233 1.249014 0.116279 +v -1.553702 1.249014 0.116145 +v -1.553562 1.291690 0.140806 +v -2.112093 1.291650 0.140872 +v -1.546745 1.249014 0.128878 +v -2.119190 1.249014 0.129046 +v -2.119050 1.217400 0.147298 +v -1.546605 1.217400 0.147130 +v -2.118771 1.217400 0.183802 +v -1.546326 1.217400 0.183635 +v -2.118632 1.249014 0.202055 +v -1.546187 1.249014 0.201887 +v -2.118772 1.280628 0.183802 +v -1.546326 1.280628 0.183635 +v -2.119050 1.280628 0.147298 +v -1.546605 1.280628 0.147130 +v -2.111675 1.249014 0.214788 +v -1.553144 1.249014 0.214653 +v -2.111814 1.206339 0.190126 +v -1.553283 1.206378 0.190060 +v -2.112093 1.206378 0.140872 +v -1.553562 1.206339 0.140806 +v -2.111814 1.206378 0.083217 +v -2.111814 1.617254 0.083217 +v -2.111814 1.206378 0.043381 +v -2.111814 1.617254 0.043381 +v -1.553562 1.206378 0.083217 +v -1.553562 1.617254 0.083217 +v -1.553562 1.206378 0.043381 +v -1.553563 1.617254 0.043381 +v -2.111814 1.291650 0.083217 +v -2.111814 1.291650 0.043381 +v -1.553562 1.291650 0.043381 +v -1.553562 1.291650 0.083217 +v -2.111814 1.249014 0.043381 +v -2.111814 1.249014 0.083217 +v -1.553562 1.249014 0.043381 +v -1.553562 1.249014 0.083217 +v 2.500240 1.249014 0.129405 +v 2.500100 1.217400 0.147657 +v 2.499822 1.217400 0.184161 +v 2.499682 1.249014 0.202413 +v 2.499822 1.280628 0.184161 +v 2.500100 1.280628 0.147657 +v 1.553283 1.291650 0.190060 +v 2.111814 1.291690 0.190126 +v 2.112233 1.249014 0.116279 +v 1.553702 1.249014 0.116145 +v 1.553562 1.291690 0.140806 +v 2.112094 1.291650 0.140872 +v 1.546745 1.249014 0.128878 +v 2.119189 1.249014 0.129046 +v 2.119050 1.217400 0.147298 +v 1.546605 1.217400 0.147130 +v 2.118771 1.217400 0.183802 +v 1.546326 1.217400 0.183635 +v 2.118632 1.249014 0.202055 +v 1.546187 1.249014 0.201887 +v 2.118772 1.280628 0.183802 +v 1.546326 1.280628 0.183635 +v 2.119050 1.280628 0.147298 +v 1.546605 1.280628 0.147130 +v 2.111675 1.249014 0.214788 +v 1.553144 1.249014 0.214653 +v 2.111814 1.206339 0.190126 +v 1.553283 1.206378 0.190060 +v 2.112093 1.206378 0.140872 +v 1.553562 1.206339 0.140806 +v 2.111814 1.206378 0.083217 +v 2.111814 1.617254 0.083217 +v 2.111814 1.206378 0.043381 +v 2.111814 1.617254 0.043381 +v 1.553562 1.206378 0.083217 +v 1.553562 1.617254 0.083217 +v 1.553562 1.206378 0.043381 +v 1.553562 1.617254 0.043381 +v 2.111814 1.291650 0.083217 +v 2.111814 1.291650 0.043381 +v 1.553562 1.291650 0.043381 +v 1.553562 1.291650 0.083217 +v 2.111814 1.249014 0.043381 +v 2.111814 1.249014 0.083217 +v 1.553562 1.249014 0.043381 +v 1.553562 1.249014 0.083217 +v 1.168282 2.133092 0.117246 +v 1.168282 2.449447 0.117246 +v 1.116952 2.081763 0.040213 +v 1.116952 2.500776 0.040213 +v 1.964271 2.133092 0.117246 +v 1.964271 2.449447 0.117246 +v 2.015600 2.081763 0.040213 +v 2.015600 2.500776 0.040213 +v 1.116952 2.081763 0.117246 +v 1.116952 2.500776 0.117246 +v 2.015600 2.500776 0.117246 +v 2.015600 2.081763 0.117246 +v 1.657742 2.277558 0.065015 +v 1.657742 2.416211 0.065015 +v 1.916054 2.416211 0.065015 +v 1.916054 2.277558 0.065015 +v 1.220038 2.166149 0.036199 +v 1.220038 2.265817 0.036199 +v 1.319705 2.166149 0.036199 +v 1.319705 2.265817 0.036199 +v 1.269871 2.166149 0.115509 +v 1.220038 2.166149 0.065675 +v 1.234634 2.166149 0.100913 +v 1.220038 2.265817 0.065675 +v 1.234634 2.265817 0.100913 +v 1.319705 2.166149 0.065675 +v 1.305109 2.166149 0.100913 +v 1.269871 2.265817 0.115509 +v 1.319705 2.265817 0.065675 +v 1.305109 2.265817 0.100913 +v 1.293844 2.216693 0.042410 +v 1.293844 2.197116 0.053712 +v 1.293844 2.197116 0.076318 +v 1.293844 2.216693 0.087620 +v 1.293844 2.236270 0.076318 +v 1.293844 2.236270 0.053712 +v 1.715496 2.216693 0.042410 +v 1.715496 2.197116 0.053712 +v 1.715496 2.197116 0.076318 +v 1.715496 2.216693 0.087620 +v 1.715496 2.236270 0.076318 +v 1.715496 2.236270 0.053712 +v 1.916054 2.187559 0.048194 +v 1.916054 2.216693 0.031373 +v 1.715496 2.216693 0.031373 +v 1.916054 2.187559 0.081836 +v 1.916054 2.216693 0.098657 +v 1.916054 2.245828 0.081836 +v 1.916054 2.245828 0.048194 +v 1.715496 2.187559 0.048194 +v 1.715496 2.187559 0.081836 +v 1.715496 2.216693 0.098657 +v 1.715496 2.245828 0.081836 +v 1.715496 2.245828 0.048194 +v 1.168282 2.133092 0.065015 +v 1.168282 2.449447 0.065015 +v 1.964271 2.449447 0.065015 +v 1.964271 2.133092 0.065015 +v 1.659844 2.302833 0.046480 +v 1.659844 2.415082 0.046480 +v 1.913952 2.415082 0.046480 +v 1.913952 2.302833 0.046480 +v 1.683615 2.394066 0.030874 +v 1.715124 2.394066 0.030874 +v 1.683615 2.376265 0.011737 +v 1.715124 2.376265 0.011737 +v 1.683615 2.350791 0.017585 +v 1.715124 2.350791 0.017585 +v 1.683615 2.343119 0.042570 +v 1.715124 2.343119 0.042570 +v 1.683615 2.360920 0.061707 +v 1.715124 2.360920 0.061707 +v 1.683615 2.386394 0.055858 +v 1.715124 2.386394 0.055858 +v 1.683615 2.365368 0.062249 +v 1.683615 2.383127 0.059579 +v 1.715124 2.383127 0.059579 +v 1.715124 2.365368 0.062249 +v 1.683615 2.373156 0.074653 +v 1.683615 2.382544 0.071410 +v 1.715124 2.382544 0.071410 +v 1.715124 2.373156 0.074653 +v 1.740331 2.391644 0.058652 +v 1.771840 2.391644 0.058652 +v 1.740331 2.400436 0.034039 +v 1.771840 2.400436 0.034039 +v 1.740331 2.383517 0.014118 +v 1.771840 2.383517 0.014118 +v 1.740331 2.357806 0.018809 +v 1.771840 2.357806 0.018809 +v 1.740331 2.349013 0.043422 +v 1.771840 2.349013 0.043422 +v 1.740331 2.365932 0.063343 +v 1.771840 2.365932 0.063343 +v 1.740331 2.350579 0.047620 +v 1.740331 2.361125 0.062156 +v 1.771840 2.361125 0.062156 +v 1.771840 2.350579 0.047620 +v 1.740331 2.343153 0.060243 +v 1.740331 2.350354 0.067085 +v 1.771840 2.350354 0.067085 +v 1.771840 2.343153 0.060243 +v 1.797047 2.386932 0.021940 +v 1.828556 2.386932 0.021940 +v 1.797047 2.362782 0.011948 +v 1.828556 2.362782 0.011948 +v 1.797047 2.342053 0.027867 +v 1.828556 2.342053 0.027867 +v 1.797047 2.345475 0.053778 +v 1.828556 2.345475 0.053778 +v 1.797047 2.369626 0.063770 +v 1.828556 2.369626 0.063770 +v 1.797047 2.390355 0.047851 +v 1.828556 2.390355 0.047851 +v 1.797047 2.373896 0.062413 +v 1.797047 2.388932 0.052594 +v 1.828556 2.388932 0.052594 +v 1.828556 2.373896 0.062413 +v 1.797047 2.386139 0.070450 +v 1.797047 2.393326 0.063594 +v 1.828556 2.393326 0.063594 +v 1.828556 2.386139 0.070450 +v 1.853763 2.396732 0.045249 +v 1.885272 2.396732 0.045249 +v 1.853763 2.391602 0.019622 +v 1.885272 2.391602 0.019622 +v 1.853763 2.366842 0.011250 +v 1.885272 2.366842 0.011250 +v 1.853763 2.347213 0.028507 +v 1.885272 2.347213 0.028507 +v 1.853763 2.352343 0.054135 +v 1.885272 2.352343 0.054135 +v 1.853763 2.377102 0.062506 +v 1.885272 2.377102 0.062506 +v 1.853763 2.355846 0.056928 +v 1.853763 2.372370 0.063962 +v 1.885272 2.372370 0.063962 +v 1.885272 2.355846 0.056928 +v 1.853763 2.355977 0.071573 +v 1.853763 2.365673 0.073732 +v 1.885272 2.365673 0.073732 +v 1.885272 2.355977 0.071573 +v -2.340313 1.159684 -0.125000 +v 2.340313 1.159684 -0.125000 +v -2.500000 0.999997 -0.125000 +v -2.500000 4.499997 -0.125000 +v 2.500000 4.499997 -0.125000 +v 2.500000 0.999997 -0.125000 +v -2.340313 1.159684 -0.045951 +v 2.340313 1.159684 -0.045951 +v -2.340313 4.119773 -0.125000 +v -2.119776 4.340310 -0.125000 +v -2.496256 4.496253 -0.125000 +v 2.119776 4.340310 -0.125000 +v 2.340313 4.119773 -0.125000 +v 2.496256 4.496253 -0.125000 +v -2.119776 4.340310 -0.045951 +v -2.340313 4.119773 -0.045951 +v 2.340313 4.119773 -0.045951 +v 2.119776 4.340310 -0.045951 +v -2.500000 4.119773 -0.125000 +v 2.500000 4.119773 -0.125000 +v 2.500000 3.579181 -0.125000 +v 2.500000 3.423868 -0.125000 +v 2.500000 2.800531 -0.125000 +v 2.500000 2.642630 -0.125000 +v 2.500000 2.022151 -0.125000 +v 2.500000 1.861122 -0.125000 +v -2.340313 3.455513 -0.125000 +v -2.340313 3.610826 -0.125000 +v -2.340313 2.714197 -0.125000 +v -2.340313 2.872098 -0.125000 +v -2.340313 1.972611 -0.125000 +v -2.340313 2.133640 -0.125000 +v -2.340313 2.133400 -0.045951 +v -2.340313 1.972851 -0.045951 +v -2.340313 2.871974 -0.045951 +v -2.340313 2.714321 -0.045951 +v -2.340313 3.610798 -0.045951 +v -2.340313 3.455542 -0.045951 +v 2.340313 2.133640 -0.125000 +v 2.340313 1.972611 -0.125000 +v 2.340313 2.872098 -0.125000 +v 2.340313 2.714197 -0.125000 +v 2.340313 3.610826 -0.125000 +v 2.340313 3.455513 -0.125000 +v 2.340313 3.455542 -0.045951 +v 2.340313 3.610798 -0.045951 +v 2.340313 2.714321 -0.045951 +v 2.340313 2.871974 -0.045951 +v 2.340313 1.972851 -0.045951 +v 2.340313 2.133400 -0.045951 +v -2.500000 1.861122 -0.125000 +v -2.500000 2.022151 -0.125000 +v -2.500000 2.642630 -0.125000 +v -2.500000 2.800531 -0.125000 +v -2.500000 3.423868 -0.125000 +v -2.500000 3.579181 -0.125000 +v -2.340313 3.455542 -0.072230 +v -2.340313 3.483067 -0.099755 +v -2.340313 3.583273 -0.099755 +v -2.340313 3.610798 -0.072230 +v 2.340313 3.610798 -0.072230 +v 2.340313 3.583273 -0.099755 +v 2.340313 3.483067 -0.099755 +v 2.340313 3.455542 -0.072230 +v -2.340313 2.714321 -0.072230 +v -2.340313 2.741846 -0.099755 +v -2.340313 2.844450 -0.099755 +v -2.340313 2.871974 -0.072230 +v 2.340313 2.871974 -0.072230 +v 2.340313 2.844450 -0.099755 +v 2.340313 2.741846 -0.099755 +v 2.340313 2.714321 -0.072230 +v -2.340313 1.972851 -0.072230 +v -2.340313 2.000376 -0.099755 +v -2.340313 2.105875 -0.099755 +v -2.340313 2.133400 -0.072230 +v 2.340313 2.133400 -0.072230 +v 2.340313 2.105875 -0.099755 +v 2.340313 2.000376 -0.099755 +v 2.340313 1.972851 -0.072230 +v -1.212864 2.208840 -0.074562 +v -1.212864 2.619229 -0.074562 +v -1.243111 2.178593 -0.033562 +v -1.243111 2.649477 -0.033562 +v -0.802475 2.208840 -0.074562 +v -0.802475 2.619229 -0.074562 +v -0.772228 2.178593 -0.033562 +v -0.772228 2.649477 -0.033562 +v -1.243111 2.178593 -0.074562 +v -1.243111 2.649477 -0.074562 +v -0.772228 2.649477 -0.074562 +v -0.772228 2.178593 -0.074562 +v -1.212864 2.208840 -0.054611 +v -1.212864 2.619229 -0.054611 +v -0.802475 2.619229 -0.054611 +v -0.802475 2.208840 -0.054611 +v -0.204356 2.301647 -0.091702 +v -0.204356 2.301647 -0.020851 +v -0.204356 2.466216 -0.020851 +v 0.204356 2.301647 -0.091702 +v 0.204356 2.301647 -0.020851 +v 0.204356 2.466216 -0.020851 +v -0.204356 2.395251 -0.091702 +v -0.204356 2.466216 -0.055863 +v -0.204356 2.445431 -0.081205 +v 0.204356 2.466216 -0.055863 +v 0.204356 2.395251 -0.091702 +v 0.204356 2.445431 -0.081205 +v -2.500240 1.249014 -0.129405 +v -2.500100 1.217400 -0.147657 +v -2.499822 1.217400 -0.184161 +v -2.499682 1.249014 -0.202413 +v -2.499822 1.280628 -0.184161 +v -2.500101 1.280628 -0.147657 +v -1.553283 1.291650 -0.190060 +v -2.111814 1.291690 -0.190126 +v -2.112233 1.249014 -0.116279 +v -1.553702 1.249014 -0.116145 +v -1.553562 1.291690 -0.140806 +v -2.112093 1.291650 -0.140872 +v -1.546745 1.249014 -0.128878 +v -2.119190 1.249014 -0.129046 +v -2.119050 1.217400 -0.147298 +v -1.546605 1.217400 -0.147130 +v -2.118771 1.217400 -0.183802 +v -1.546326 1.217400 -0.183635 +v -2.118632 1.249014 -0.202055 +v -1.546187 1.249014 -0.201887 +v -2.118772 1.280628 -0.183802 +v -1.546326 1.280628 -0.183635 +v -2.119050 1.280628 -0.147298 +v -1.546605 1.280628 -0.147130 +v -2.111675 1.249014 -0.214788 +v -1.553144 1.249014 -0.214653 +v -2.111814 1.206339 -0.190126 +v -1.553283 1.206378 -0.190060 +v -2.112093 1.206378 -0.140872 +v -1.553562 1.206339 -0.140806 +v -2.111814 1.206378 -0.083217 +v -2.111814 1.617254 -0.083217 +v -2.111814 1.206378 -0.043381 +v -2.111814 1.617254 -0.043381 +v -1.553562 1.206378 -0.083217 +v -1.553562 1.617254 -0.083217 +v -1.553562 1.206378 -0.043381 +v -1.553563 1.617254 -0.043381 +v -2.111814 1.291650 -0.083217 +v -2.111814 1.291650 -0.043381 +v -1.553562 1.291650 -0.043381 +v -1.553562 1.291650 -0.083217 +v -2.111814 1.249014 -0.043381 +v -2.111814 1.249014 -0.083217 +v -1.553562 1.249014 -0.043381 +v -1.553562 1.249014 -0.083217 +v 2.500240 1.249014 -0.129405 +v 2.500100 1.217400 -0.147657 +v 2.499822 1.217400 -0.184161 +v 2.499682 1.249014 -0.202413 +v 2.499822 1.280628 -0.184161 +v 2.500100 1.280628 -0.147657 +v 1.553283 1.291650 -0.190060 +v 2.111814 1.291690 -0.190126 +v 2.112233 1.249014 -0.116279 +v 1.553702 1.249014 -0.116145 +v 1.553562 1.291690 -0.140806 +v 2.112094 1.291650 -0.140872 +v 1.546745 1.249014 -0.128878 +v 2.119189 1.249014 -0.129046 +v 2.119050 1.217400 -0.147298 +v 1.546605 1.217400 -0.147130 +v 2.118771 1.217400 -0.183802 +v 1.546326 1.217400 -0.183635 +v 2.118632 1.249014 -0.202055 +v 1.546187 1.249014 -0.201887 +v 2.118772 1.280628 -0.183802 +v 1.546326 1.280628 -0.183635 +v 2.119050 1.280628 -0.147298 +v 1.546605 1.280628 -0.147130 +v 2.111675 1.249014 -0.214788 +v 1.553144 1.249014 -0.214653 +v 2.111814 1.206339 -0.190126 +v 1.553283 1.206378 -0.190060 +v 2.112093 1.206378 -0.140872 +v 1.553562 1.206339 -0.140806 +v 2.111814 1.206378 -0.083217 +v 2.111814 1.617254 -0.083217 +v 2.111814 1.206378 -0.043381 +v 2.111814 1.617254 -0.043381 +v 1.553562 1.206378 -0.083217 +v 1.553562 1.617254 -0.083217 +v 1.553562 1.206378 -0.043381 +v 1.553562 1.617254 -0.043381 +v 2.111814 1.291650 -0.083217 +v 2.111814 1.291650 -0.043381 +v 1.553562 1.291650 -0.043381 +v 1.553562 1.291650 -0.083217 +v 2.111814 1.249014 -0.043381 +v 2.111814 1.249014 -0.083217 +v 1.553562 1.249014 -0.043381 +v 1.553562 1.249014 -0.083217 +v 1.168282 2.133092 -0.117246 +v 1.168282 2.449447 -0.117246 +v 1.116952 2.081763 -0.040213 +v 1.116952 2.500776 -0.040213 +v 1.964271 2.133092 -0.117246 +v 1.964271 2.449447 -0.117246 +v 2.015600 2.081763 -0.040213 +v 2.015600 2.500776 -0.040213 +v 1.116952 2.081763 -0.117246 +v 1.116952 2.500776 -0.117246 +v 2.015600 2.500776 -0.117246 +v 2.015600 2.081763 -0.117246 +v 1.657742 2.277558 -0.065015 +v 1.657742 2.416211 -0.065015 +v 1.916054 2.416211 -0.065015 +v 1.916054 2.277558 -0.065015 +v 1.220038 2.166149 -0.036199 +v 1.220038 2.265817 -0.036199 +v 1.319705 2.166149 -0.036199 +v 1.319705 2.265817 -0.036199 +v 1.269871 2.166149 -0.115509 +v 1.220038 2.166149 -0.065675 +v 1.234634 2.166149 -0.100913 +v 1.220038 2.265817 -0.065675 +v 1.234634 2.265817 -0.100913 +v 1.319705 2.166149 -0.065675 +v 1.305109 2.166149 -0.100913 +v 1.269871 2.265817 -0.115509 +v 1.319705 2.265817 -0.065675 +v 1.305109 2.265817 -0.100913 +v 1.293844 2.216693 -0.042410 +v 1.293844 2.197116 -0.053712 +v 1.293844 2.197116 -0.076318 +v 1.293844 2.216693 -0.087620 +v 1.293844 2.236270 -0.076318 +v 1.293844 2.236270 -0.053712 +v 1.715496 2.216693 -0.042410 +v 1.715496 2.197116 -0.053712 +v 1.715496 2.197116 -0.076318 +v 1.715496 2.216693 -0.087620 +v 1.715496 2.236270 -0.076318 +v 1.715496 2.236270 -0.053712 +v 1.916054 2.187559 -0.048194 +v 1.916054 2.216693 -0.031373 +v 1.715496 2.216693 -0.031373 +v 1.916054 2.187559 -0.081836 +v 1.916054 2.216693 -0.098657 +v 1.916054 2.245828 -0.081836 +v 1.916054 2.245828 -0.048194 +v 1.715496 2.187559 -0.048194 +v 1.715496 2.187559 -0.081836 +v 1.715496 2.216693 -0.098657 +v 1.715496 2.245828 -0.081836 +v 1.715496 2.245828 -0.048194 +v 1.168282 2.133092 -0.065015 +v 1.168282 2.449447 -0.065015 +v 1.964271 2.449447 -0.065015 +v 1.964271 2.133092 -0.065015 +v 1.659844 2.302833 -0.046480 +v 1.659844 2.415082 -0.046480 +v 1.913952 2.415082 -0.046480 +v 1.913952 2.302833 -0.046480 +v 1.683615 2.394066 -0.030874 +v 1.715124 2.394066 -0.030874 +v 1.683615 2.376265 -0.011737 +v 1.715124 2.376265 -0.011737 +v 1.683615 2.350791 -0.017585 +v 1.715124 2.350791 -0.017585 +v 1.683615 2.343119 -0.042570 +v 1.715124 2.343119 -0.042570 +v 1.683615 2.360920 -0.061707 +v 1.715124 2.360920 -0.061707 +v 1.683615 2.386394 -0.055858 +v 1.715124 2.386394 -0.055858 +v 1.683615 2.365368 -0.062249 +v 1.683615 2.383127 -0.059579 +v 1.715124 2.383127 -0.059579 +v 1.715124 2.365368 -0.062249 +v 1.683615 2.373156 -0.074653 +v 1.683615 2.382544 -0.071410 +v 1.715124 2.382544 -0.071410 +v 1.715124 2.373156 -0.074653 +v 1.740331 2.391644 -0.058652 +v 1.771840 2.391644 -0.058652 +v 1.740331 2.400436 -0.034039 +v 1.771840 2.400436 -0.034039 +v 1.740331 2.383517 -0.014118 +v 1.771840 2.383517 -0.014118 +v 1.740331 2.357806 -0.018809 +v 1.771840 2.357806 -0.018809 +v 1.740331 2.349013 -0.043422 +v 1.771840 2.349013 -0.043422 +v 1.740331 2.365932 -0.063343 +v 1.771840 2.365932 -0.063343 +v 1.740331 2.350579 -0.047620 +v 1.740331 2.361125 -0.062156 +v 1.771840 2.361125 -0.062156 +v 1.771840 2.350579 -0.047620 +v 1.740331 2.343153 -0.060243 +v 1.740331 2.350354 -0.067085 +v 1.771840 2.350354 -0.067085 +v 1.771840 2.343153 -0.060243 +v 1.797047 2.386932 -0.021940 +v 1.828556 2.386932 -0.021940 +v 1.797047 2.362782 -0.011948 +v 1.828556 2.362782 -0.011948 +v 1.797047 2.342053 -0.027867 +v 1.828556 2.342053 -0.027867 +v 1.797047 2.345475 -0.053778 +v 1.828556 2.345475 -0.053778 +v 1.797047 2.369626 -0.063770 +v 1.828556 2.369626 -0.063770 +v 1.797047 2.390355 -0.047851 +v 1.828556 2.390355 -0.047851 +v 1.797047 2.373896 -0.062413 +v 1.797047 2.388932 -0.052594 +v 1.828556 2.388932 -0.052594 +v 1.828556 2.373896 -0.062413 +v 1.797047 2.386139 -0.070450 +v 1.797047 2.393326 -0.063594 +v 1.828556 2.393326 -0.063594 +v 1.828556 2.386139 -0.070450 +v 1.853763 2.396732 -0.045249 +v 1.885272 2.396732 -0.045249 +v 1.853763 2.391602 -0.019622 +v 1.885272 2.391602 -0.019622 +v 1.853763 2.366842 -0.011250 +v 1.885272 2.366842 -0.011250 +v 1.853763 2.347213 -0.028507 +v 1.885272 2.347213 -0.028507 +v 1.853763 2.352343 -0.054135 +v 1.885272 2.352343 -0.054135 +v 1.853763 2.377102 -0.062506 +v 1.885272 2.377102 -0.062506 +v 1.853763 2.355846 -0.056928 +v 1.853763 2.372370 -0.063962 +v 1.885272 2.372370 -0.063962 +v 1.885272 2.355846 -0.056928 +v 1.853763 2.355977 -0.071573 +v 1.853763 2.365673 -0.073732 +v 1.885272 2.365673 -0.073732 +v 1.885272 2.355977 -0.071573 +v -2.163461 0.999997 0.125000 +v -1.682692 0.999997 0.125000 +v -1.394231 0.999997 0.125000 +v -0.913461 0.999997 0.125000 +v -0.625000 0.999997 0.125000 +v -0.144231 0.999997 0.125000 +v 0.144231 0.999997 0.125000 +v 0.625000 0.999997 0.125000 +v 0.913462 0.999997 0.125000 +v 1.394231 0.999997 0.125000 +v 1.682693 0.999997 0.125000 +v 2.163461 0.999997 0.125000 +v -2.163461 0.999997 -0.125000 +v -1.682692 0.999997 -0.125000 +v -1.394231 0.999997 -0.125000 +v -0.913461 0.999997 -0.125000 +v -0.625000 0.999997 -0.125000 +v -0.144231 0.999997 -0.125000 +v 0.144231 0.999997 -0.125000 +v 0.625000 0.999997 -0.125000 +v 0.913462 0.999997 -0.125000 +v 1.394231 0.999997 -0.125000 +v 1.682693 0.999997 -0.125000 +v 2.163461 0.999997 -0.125000 +v -2.043269 0.874997 0.093750 +v -1.802885 0.874997 0.093750 +v -1.274038 0.874997 0.093750 +v -1.033654 0.874997 0.093750 +v -0.504808 0.874997 0.093750 +v -0.264423 0.874997 0.093750 +v 0.264423 0.874997 0.093750 +v 0.504808 0.874997 0.093750 +v 1.033654 0.874997 0.093750 +v 1.274039 0.874997 0.093750 +v 1.802885 0.874997 0.093750 +v 2.043269 0.874997 0.093750 +v -2.043269 0.874997 -0.093750 +v -1.802885 0.874997 -0.093750 +v -1.274038 0.874997 -0.093750 +v -1.033654 0.874997 -0.093750 +v -0.504808 0.874997 -0.093750 +v -0.264423 0.874997 -0.093750 +v 0.264423 0.874997 -0.093750 +v 0.504808 0.874997 -0.093750 +v 1.033654 0.874997 -0.093750 +v 1.274039 0.874997 -0.093750 +v 1.802885 0.874997 -0.093750 +v 2.043269 0.874997 -0.093750 +vt 0.733844 0.172974 +vt 0.709510 0.205732 +vt 0.709510 0.172974 +vt 0.831397 0.355292 +vt 0.877231 0.351301 +vt 0.877231 0.355292 +vt 0.492430 0.004449 +vt 0.468095 0.041459 +vt 0.468095 0.004449 +vt 0.425092 0.452798 +vt 0.004556 0.460138 +vt 0.004507 0.452797 +vt 0.675567 0.125895 +vt 0.691111 0.072187 +vt 0.691111 0.132861 +vt 0.675567 0.141265 +vt 0.004877 0.575079 +vt 0.425404 0.567739 +vt 0.425462 0.575079 +vt 0.535486 0.503659 +vt 0.543181 0.473300 +vt 0.543181 0.503659 +vt 0.700410 0.955730 +vt 0.700410 0.473300 +vt 0.715817 0.509987 +vt 0.788978 0.083578 +vt 0.781284 0.004449 +vt 0.788979 0.004449 +vt 0.004663 0.484298 +vt 0.425191 0.476959 +vt 0.425248 0.484299 +vt 0.840564 0.127662 +vt 0.861856 0.110783 +vt 0.864898 0.127662 +vt 0.701335 0.954904 +vt 0.740980 0.954293 +vt 0.616380 0.658755 +vt 0.632175 0.489094 +vt 0.616380 0.706311 +vt 0.004606 0.476958 +vt 0.425141 0.469618 +vt 0.772385 0.227922 +vt 0.764691 0.243037 +vt 0.764691 0.227920 +vt 0.004984 0.651201 +vt 0.425568 0.642197 +vt 0.425569 0.651201 +vt 0.602240 0.186675 +vt 0.617784 0.240383 +vt 0.602240 0.243463 +vt 0.005091 0.665882 +vt 0.425618 0.658542 +vt 0.425676 0.665882 +vt 0.691111 0.208626 +vt 0.675567 0.213449 +vt 0.675567 0.197774 +vt 0.602240 0.171305 +vt 0.617784 0.179709 +vt 0.675567 0.292577 +vt 0.691111 0.224301 +vt 0.691111 0.308120 +vt 0.691111 0.057069 +vt 0.675567 0.069107 +vt 0.675567 0.053989 +vt 0.425462 0.627517 +vt 0.764691 0.099252 +vt 0.772385 0.155774 +vt 0.764691 0.155762 +vt 0.781284 0.243034 +vt 0.788979 0.227919 +vt 0.788979 0.243037 +vt 0.602240 0.114795 +vt 0.617784 0.164339 +vt 0.004770 0.560398 +vt 0.425355 0.551180 +vt 0.425355 0.560399 +vt 0.715817 0.919044 +vt 0.739687 0.938221 +vt 0.535487 0.946694 +vt 0.543181 0.916338 +vt 0.543181 0.946694 +vt 0.764691 0.083578 +vt 0.772385 0.004449 +vt 0.772385 0.083601 +vt 0.834341 0.348357 +vt 0.831397 0.305467 +vt 0.834341 0.308411 +vt 0.781284 0.292577 +vt 0.877231 0.301476 +vt 0.877231 0.305466 +vt 0.425305 0.543839 +vt 0.004770 0.551178 +vt 0.004720 0.543838 +vt 0.005033 0.658542 +vt 0.923079 0.004449 +vt 0.883297 0.011346 +vt 0.883297 0.004449 +vt 0.788978 0.099252 +vt 0.781284 0.155774 +vt 0.781284 0.099228 +vt 0.764691 0.171132 +vt 0.425248 0.536499 +vt 0.004663 0.536498 +vt 0.617784 0.255500 +vt 0.602240 0.258581 +vt 0.788978 0.171131 +vt 0.781284 0.227922 +vt 0.781284 0.171119 +vt 0.827406 0.305467 +vt 0.831397 0.351301 +vt 0.827406 0.351301 +vt 0.004819 0.567739 +vt 0.585191 0.188500 +vt 0.588744 0.151434 +vt 0.588744 0.188524 +vt 0.408813 0.843186 +vt 0.410755 0.883132 +vt 0.408813 0.883132 +vt 0.874287 0.308411 +vt 0.883297 0.028637 +vt 0.923079 0.025447 +vt 0.923079 0.028637 +vt 0.450701 0.841244 +vt 0.410755 0.843186 +vt 0.410755 0.841244 +vt 0.592297 0.151445 +vt 0.592297 0.188536 +vt 0.410755 0.885074 +vt 0.450701 0.883132 +vt 0.450701 0.885074 +vt 0.452643 0.883132 +vt 0.450701 0.843186 +vt 0.452643 0.843186 +vt 0.881222 0.351301 +vt 0.881222 0.305467 +vt 0.883297 0.032045 +vt 0.923079 0.032045 +vt 0.004934 0.634857 +vt 0.004877 0.627516 +vt 0.922971 0.338452 +vt 0.922971 0.354471 +vt 0.916075 0.345360 +vt 0.578084 0.151410 +vt 0.581638 0.188488 +vt 0.578084 0.188500 +vt 0.874287 0.348357 +vt 0.883297 0.025447 +vt 0.923079 0.020457 +vt 0.585191 0.151410 +vt 0.513586 0.921476 +vt 0.512564 0.917257 +vt 0.515067 0.921475 +vt 0.462309 0.358295 +vt 0.463331 0.362557 +vt 0.460816 0.358296 +vt 0.570978 0.151445 +vt 0.574531 0.188524 +vt 0.570978 0.188536 +vt 0.923079 0.011346 +vt 0.927292 0.271964 +vt 0.930370 0.273741 +vt 0.930370 0.277294 +vt 0.574531 0.151434 +vt 0.921295 0.150557 +vt 0.920274 0.145672 +vt 0.927170 0.152580 +vt 0.508461 0.924433 +vt 0.505315 0.921496 +vt 0.506735 0.921496 +vt 0.464029 0.361267 +vt 0.468237 0.362487 +vt 0.067792 0.891333 +vt 0.122132 0.896120 +vt 0.067766 0.896127 +vt 0.463324 0.354029 +vt 0.464030 0.355315 +vt 0.467486 0.355305 +vt 0.470666 0.358271 +vt 0.469231 0.358271 +vt 0.511881 0.918527 +vt 0.507722 0.917326 +vt 0.511878 0.924431 +vt 0.507718 0.925667 +vt 0.067792 0.910503 +vt 0.122132 0.905715 +vt 0.122158 0.910510 +vt 0.122119 0.900918 +vt 0.067753 0.900918 +vt 0.508468 0.918556 +vt 0.467482 0.361242 +vt 0.522312 0.925727 +vt 0.518340 0.921474 +vt 0.522312 0.921471 +vt 0.866635 0.260833 +vt 0.834941 0.206494 +vt 0.866635 0.206494 +vt 0.518336 0.925725 +vt 0.512568 0.925698 +vt 0.831064 0.260833 +vt 0.834941 0.260833 +vt 0.122129 0.919999 +vt 0.067791 0.916109 +vt 0.122130 0.916122 +vt 0.468237 0.354057 +vt 0.473941 0.354062 +vt 0.477869 0.358271 +vt 0.473937 0.358271 +vt 0.518612 0.353039 +vt 0.522932 0.105485 +vt 0.522933 0.353081 +vt 0.477872 0.362476 +vt 0.473942 0.362479 +vt 0.501328 0.352990 +vt 0.505650 0.105402 +vt 0.505650 0.352998 +vt 0.518331 0.917223 +vt 0.527254 0.105493 +vt 0.527254 0.353122 +vt 0.586021 0.300510 +vt 0.589098 0.302286 +vt 0.586021 0.307616 +vt 0.067766 0.905709 +vt 0.522306 0.917217 +vt 0.920423 0.058711 +vt 0.883344 0.062264 +vt 0.883332 0.058711 +vt 0.514292 0.352998 +vt 0.518611 0.105494 +vt 0.834941 0.264711 +vt 0.866635 0.264711 +vt 0.866635 0.202617 +vt 0.920399 0.048051 +vt 0.883332 0.044498 +vt 0.920423 0.044498 +vt 0.122130 0.885714 +vt 0.122158 0.891326 +vt 0.920387 0.051604 +vt 0.883309 0.048051 +vt 0.883309 0.055157 +vt 0.883297 0.051604 +vt 0.911809 0.919556 +vt 0.910787 0.923775 +vt 0.910104 0.922505 +vt 0.903538 0.919536 +vt 0.906684 0.916599 +vt 0.904958 0.919536 +vt 0.408852 0.903469 +vt 0.463192 0.908257 +vt 0.408826 0.908263 +vt 0.920399 0.055157 +vt 0.008327 0.841244 +vt 0.004449 0.872938 +vt 0.004449 0.841244 +vt 0.066543 0.841244 +vt 0.062666 0.872938 +vt 0.062666 0.841244 +vt 0.906691 0.922476 +vt 0.883344 0.040944 +vt 0.920435 0.040944 +vt 0.509971 0.105445 +vt 0.509971 0.352990 +vt 0.463179 0.913054 +vt 0.408826 0.917845 +vt 0.408813 0.913054 +vt 0.892629 0.346980 +vt 0.891613 0.342714 +vt 0.893335 0.345694 +vt 0.008327 0.872938 +vt 0.062666 0.876815 +vt 0.008327 0.876815 +vt 0.463192 0.917852 +vt 0.408852 0.922640 +vt 0.893333 0.339742 +vt 0.897541 0.338522 +vt 0.896787 0.339767 +vt 0.913289 0.919557 +vt 0.916559 0.915307 +vt 0.916563 0.919558 +vt 0.899971 0.342738 +vt 0.898536 0.342738 +vt 0.905941 0.915366 +vt 0.910101 0.916602 +vt 0.903246 0.346947 +vt 0.897541 0.346952 +vt 0.907176 0.338533 +vt 0.903242 0.342738 +vt 0.903247 0.338530 +vt 0.916554 0.923810 +vt 0.910791 0.915335 +vt 0.892636 0.338452 +vt 0.478497 0.827980 +vt 0.509290 0.822896 +vt 0.509290 0.827980 +vt 0.463190 0.897851 +vt 0.463218 0.903463 +vt 0.463190 0.928258 +vt 0.463218 0.922646 +vt 0.434574 0.581710 +vt 0.442073 0.669182 +vt 0.434574 0.669182 +vt 0.896791 0.345704 +vt 0.920535 0.919561 +vt 0.920529 0.923815 +vt 0.490356 0.669182 +vt 0.482858 0.581710 +vt 0.490356 0.581710 +vt 0.477862 0.664186 +vt 0.447069 0.664186 +vt 0.920535 0.915306 +vt 0.907174 0.342738 +vt 0.442073 0.581710 +vt 0.482858 0.574212 +vt 0.442073 0.676680 +vt 0.482858 0.669182 +vt 0.482858 0.676680 +vt 0.514374 0.822896 +vt 0.509290 0.745417 +vt 0.514374 0.745417 +vt 0.905945 0.923706 +vt 0.473413 0.745417 +vt 0.478497 0.822896 +vt 0.473413 0.822896 +vt 0.447069 0.586706 +vt 0.477862 0.586706 +vt 0.509290 0.740332 +vt 0.478497 0.745417 +vt 0.478497 0.740332 +vt 0.931635 0.319515 +vt 0.933055 0.322945 +vt 0.923354 0.322945 +vt 0.571259 0.354466 +vt 0.572701 0.353479 +vt 0.573181 0.353528 +vt 0.848783 0.273609 +vt 0.851652 0.283311 +vt 0.848783 0.283311 +vt 0.845071 0.273609 +vt 0.845071 0.283311 +vt 0.931635 0.302896 +vt 0.933055 0.306326 +vt 0.923354 0.306326 +vt 0.831064 0.273609 +vt 0.833933 0.283311 +vt 0.831064 0.283311 +vt 0.572675 0.234699 +vt 0.583711 0.236515 +vt 0.572785 0.236515 +vt 0.754611 0.249901 +vt 0.755542 0.247164 +vt 0.755542 0.250438 +vt 0.514291 0.105486 +vt 0.408850 0.893986 +vt 0.463189 0.893973 +vt 0.841358 0.283311 +vt 0.837645 0.273609 +vt 0.841358 0.273609 +vt 0.602115 0.557117 +vt 0.605182 0.556635 +vt 0.605182 0.557117 +vt 0.602115 0.559237 +vt 0.605182 0.558270 +vt 0.605182 0.559237 +vt 0.273168 0.912975 +vt 0.314210 0.910774 +vt 0.314210 0.912975 +vt 0.603839 0.597606 +vt 0.602129 0.598020 +vt 0.602396 0.596619 +vt 0.837645 0.283311 +vt 0.833933 0.273609 +vt 0.602115 0.593742 +vt 0.604318 0.592470 +vt 0.602115 0.568731 +vt 0.605182 0.566187 +vt 0.605182 0.568731 +vt 0.602115 0.501927 +vt 0.605182 0.499383 +vt 0.605182 0.501927 +vt 0.602115 0.556635 +vt 0.605182 0.554091 +vt 0.602115 0.563643 +vt 0.605182 0.561099 +vt 0.605182 0.563643 +vt 0.602115 0.560663 +vt 0.605182 0.560663 +vt 0.752706 0.252075 +vt 0.752706 0.251001 +vt 0.750800 0.247701 +vt 0.749870 0.250438 +vt 0.749870 0.247164 +vt 0.273168 0.910774 +vt 0.314210 0.908574 +vt 0.752706 0.245526 +vt 0.752706 0.246601 +vt 0.273168 0.908574 +vt 0.314210 0.906374 +vt 0.586762 0.236310 +vt 0.583711 0.261249 +vt 0.273168 0.915175 +vt 0.314210 0.915175 +vt 0.273168 0.906374 +vt 0.314210 0.904173 +vt 0.506276 0.686230 +vt 0.525797 0.682955 +vt 0.525797 0.686230 +vt 0.481732 0.793059 +vt 0.570978 0.236310 +vt 0.572785 0.261249 +vt 0.570978 0.261453 +vt 0.273168 0.917375 +vt 0.314210 0.917375 +vt 0.506276 0.692779 +vt 0.525797 0.689505 +vt 0.525797 0.692779 +vt 0.506276 0.696054 +vt 0.525797 0.696054 +vt 0.506276 0.689505 +vt 0.752706 0.230078 +vt 0.755542 0.231716 +vt 0.755542 0.234990 +vt 0.495228 0.793059 +vt 0.495228 0.818203 +vt 0.506276 0.702603 +vt 0.525797 0.699328 +vt 0.525797 0.702603 +vt 0.754611 0.247701 +vt 0.481732 0.818203 +vt 0.572675 0.263065 +vt 0.586171 0.263065 +vt 0.602115 0.554091 +vt 0.605182 0.551547 +vt 0.602115 0.566187 +vt 0.750800 0.249901 +vt 0.506276 0.699328 +vt 0.602115 0.561099 +vt 0.602115 0.504471 +vt 0.605182 0.504471 +vt 0.602115 0.558270 +vt 0.570991 0.353066 +vt 0.571875 0.352675 +vt 0.606241 0.581779 +vt 0.604798 0.582766 +vt 0.604318 0.582718 +vt 0.602115 0.516566 +vt 0.605182 0.514022 +vt 0.605182 0.516566 +vt 0.602115 0.507015 +vt 0.605182 0.507015 +vt 0.602115 0.514022 +vt 0.605182 0.511478 +vt 0.486770 0.355301 +vt 0.488973 0.354029 +vt 0.487051 0.358179 +vt 0.602115 0.507497 +vt 0.605182 0.507497 +vt 0.602115 0.511478 +vt 0.605182 0.511042 +vt 0.606508 0.583180 +vt 0.605624 0.583571 +vt 0.602115 0.509616 +vt 0.605182 0.508650 +vt 0.605182 0.509616 +vt 0.602115 0.511042 +vt 0.602115 0.508650 +vt 0.488494 0.359166 +vt 0.486784 0.359579 +vt 0.574045 0.341232 +vt 0.570978 0.343776 +vt 0.570978 0.341232 +vt 0.602396 0.638781 +vt 0.603839 0.637794 +vt 0.604318 0.637843 +vt 0.574045 0.338688 +vt 0.570978 0.338688 +vt 0.574045 0.326592 +vt 0.570978 0.329136 +vt 0.570978 0.326592 +vt 0.574045 0.331680 +vt 0.570978 0.334224 +vt 0.570978 0.331680 +vt 0.574045 0.329136 +vt 0.749870 0.277694 +vt 0.752073 0.276422 +vt 0.750151 0.280572 +vt 0.574045 0.338206 +vt 0.570978 0.338206 +vt 0.574045 0.334224 +vt 0.570978 0.334660 +vt 0.602129 0.637381 +vt 0.603013 0.636990 +vt 0.574045 0.336086 +vt 0.570978 0.337053 +vt 0.570978 0.336086 +vt 0.574045 0.334660 +vt 0.574045 0.337053 +vt 0.751593 0.281559 +vt 0.749883 0.281972 +vt 0.278256 0.929341 +vt 0.275712 0.926274 +vt 0.278256 0.926274 +vt 0.602396 0.712981 +vt 0.603839 0.711994 +vt 0.604318 0.712043 +vt 0.280800 0.929341 +vt 0.280800 0.926274 +vt 0.275712 0.929341 +vt 0.273168 0.926274 +vt 0.287807 0.929341 +vt 0.285263 0.926274 +vt 0.287807 0.926274 +vt 0.290351 0.929341 +vt 0.290351 0.926274 +vt 0.602115 0.667942 +vt 0.604319 0.666670 +vt 0.602396 0.670819 +vt 0.281282 0.929341 +vt 0.281282 0.926274 +vt 0.285263 0.929341 +vt 0.284827 0.926274 +vt 0.602129 0.711581 +vt 0.603013 0.711190 +vt 0.283402 0.929341 +vt 0.282435 0.926274 +vt 0.283402 0.926274 +vt 0.284827 0.929341 +vt 0.282435 0.929341 +vt 0.603839 0.671806 +vt 0.602129 0.672220 +vt 0.861856 0.044727 +vt 0.874398 0.009630 +vt 0.874398 0.056426 +vt 0.712551 0.132696 +vt 0.733844 0.115817 +vt 0.730802 0.132696 +vt 0.700010 0.167794 +vt 0.700010 0.120997 +vt 0.843605 0.087385 +vt 0.864898 0.070505 +vt 0.861856 0.087385 +vt 0.861856 0.176839 +vt 0.840564 0.193718 +vt 0.843605 0.176839 +vt 0.642226 0.350853 +vt 0.625347 0.329561 +vt 0.642226 0.326519 +vt 0.434862 0.041459 +vt 0.459196 0.004449 +vt 0.459196 0.041459 +vt 0.492430 0.094079 +vt 0.468095 0.109197 +vt 0.468095 0.094079 +vt 0.668004 0.347811 +vt 0.703102 0.360353 +vt 0.656305 0.360353 +vt 0.874398 0.075685 +vt 0.874398 0.122482 +vt 0.831064 0.141741 +vt 0.831064 0.188538 +vt 0.492430 0.109197 +vt 0.468095 0.169871 +vt 0.590249 0.317019 +vt 0.637046 0.317019 +vt 0.916054 0.095497 +vt 0.883297 0.071163 +vt 0.916054 0.071163 +vt 0.691111 0.148231 +vt 0.602240 0.019993 +vt 0.617784 0.088269 +vt 0.602240 0.099121 +vt 0.691111 0.004449 +vt 0.814516 0.351301 +vt 0.818507 0.305467 +vt 0.818507 0.351301 +vt 0.004844 0.199797 +vt 0.425348 0.207135 +vt 0.004757 0.207136 +vt 0.552080 0.473300 +vt 0.559774 0.503656 +vt 0.552080 0.503656 +vt 0.626683 0.308120 +vt 0.642226 0.258581 +vt 0.642226 0.308120 +vt 0.805572 0.004449 +vt 0.797877 0.083578 +vt 0.797877 0.004449 +vt 0.425809 0.092198 +vt 0.005286 0.084858 +vt 0.425876 0.084858 +vt 0.814471 0.155774 +vt 0.822165 0.099252 +vt 0.822165 0.155761 +vt 0.651125 0.186675 +vt 0.666669 0.240383 +vt 0.651125 0.243463 +vt 0.651125 0.171305 +vt 0.666669 0.179709 +vt 0.775041 0.509987 +vt 0.790449 0.955730 +vt 0.775041 0.919044 +vt 0.805572 0.099229 +vt 0.797877 0.099252 +vt 0.814471 0.083601 +vt 0.822165 0.083577 +vt 0.797877 0.227919 +vt 0.805572 0.243034 +vt 0.797877 0.243037 +vt 0.768681 0.305467 +vt 0.811572 0.308411 +vt 0.771626 0.308411 +vt 0.642226 0.171305 +vt 0.626683 0.179709 +vt 0.626683 0.164339 +vt 0.754283 0.331232 +vt 0.717217 0.334785 +vt 0.717193 0.331232 +vt 0.666669 0.255500 +vt 0.651125 0.258581 +vt 0.797877 0.171131 +vt 0.805572 0.227922 +vt 0.822165 0.171131 +vt 0.004603 0.283258 +vt 0.425127 0.290597 +vt 0.004536 0.290598 +vt 0.877476 0.244505 +vt 0.917422 0.204559 +vt 0.917422 0.244505 +vt 0.768682 0.351301 +vt 0.814516 0.355292 +vt 0.768682 0.355292 +vt 0.919364 0.204559 +vt 0.919364 0.244505 +vt 0.805572 0.292577 +vt 0.797877 0.292577 +vt 0.552079 0.916335 +vt 0.559774 0.946694 +vt 0.552079 0.946694 +vt 0.004911 0.183237 +vt 0.425501 0.192456 +vt 0.004911 0.192457 +vt 0.642226 0.243463 +vt 0.626683 0.255500 +vt 0.626683 0.240383 +vt 0.805572 0.155774 +vt 0.797877 0.155762 +vt 0.425501 0.183237 +vt 0.004978 0.175897 +vt 0.425569 0.175897 +vt 0.917422 0.246447 +vt 0.877476 0.246447 +vt 0.754307 0.334785 +vt 0.717228 0.338339 +vt 0.753565 0.354145 +vt 0.746668 0.347238 +vt 0.752543 0.349261 +vt 0.436354 0.358291 +vt 0.437377 0.354029 +vt 0.438074 0.355319 +vt 0.919759 0.171817 +vt 0.922226 0.169794 +vt 0.925634 0.169794 +vt 0.642226 0.114795 +vt 0.004757 0.259574 +vt 0.651125 0.019993 +vt 0.666669 0.088269 +vt 0.651125 0.099121 +vt 0.764691 0.351301 +vt 0.814471 0.004449 +vt 0.822165 0.004449 +vt 0.789524 0.954904 +vt 0.751172 0.938220 +vt 0.814516 0.305467 +vt 0.768681 0.301476 +vt 0.814516 0.301476 +vt 0.005065 0.168558 +vt 0.425655 0.168558 +vt 0.915316 0.262242 +vt 0.875534 0.255346 +vt 0.915316 0.255346 +vt 0.754271 0.327679 +vt 0.717193 0.324126 +vt 0.754283 0.324125 +vt 0.442282 0.354099 +vt 0.441528 0.355343 +vt 0.875534 0.271354 +vt 0.915316 0.276344 +vt 0.875534 0.276344 +vt 0.875534 0.262242 +vt 0.200439 0.914986 +vt 0.146099 0.919773 +vt 0.146073 0.914979 +vt 0.893198 0.362986 +vt 0.890121 0.361209 +vt 0.893198 0.355879 +vt 0.811572 0.348357 +vt 0.717181 0.327679 +vt 0.717217 0.320572 +vt 0.754307 0.320572 +vt 0.717228 0.317019 +vt 0.754319 0.317019 +vt 0.437370 0.362557 +vt 0.438076 0.361271 +vt 0.373050 0.908404 +vt 0.376196 0.905467 +vt 0.374470 0.908404 +vt 0.381322 0.908424 +vt 0.380300 0.912643 +vt 0.379617 0.911373 +vt 0.444712 0.358315 +vt 0.441532 0.361280 +vt 0.443277 0.358315 +vt 0.382802 0.908425 +vt 0.386071 0.904175 +vt 0.386075 0.908426 +vt 0.390047 0.904173 +vt 0.390047 0.908429 +vt 0.146099 0.900603 +vt 0.200439 0.905390 +vt 0.146073 0.905397 +vt 0.375458 0.912574 +vt 0.376203 0.911344 +vt 0.200426 0.910188 +vt 0.146060 0.910188 +vt 0.375453 0.904234 +vt 0.379613 0.905470 +vt 0.200435 0.891107 +vt 0.146098 0.894997 +vt 0.146097 0.891120 +vt 0.442282 0.362529 +vt 0.492791 0.685579 +vt 0.438452 0.689457 +vt 0.438452 0.685579 +vt 0.492791 0.721150 +vt 0.492791 0.689457 +vt 0.380303 0.904202 +vt 0.540474 0.105465 +vt 0.544795 0.353018 +vt 0.540474 0.353051 +vt 0.451915 0.358315 +vt 0.447987 0.362523 +vt 0.447983 0.358315 +vt 0.557757 0.105393 +vt 0.562079 0.352970 +vt 0.557757 0.352979 +vt 0.386066 0.912677 +vt 0.451917 0.354109 +vt 0.447988 0.354106 +vt 0.496668 0.689457 +vt 0.496668 0.721150 +vt 0.390041 0.912683 +vt 0.588744 0.142487 +vt 0.592297 0.105409 +vt 0.592297 0.142499 +vt 0.536153 0.105474 +vt 0.536153 0.353083 +vt 0.200436 0.894984 +vt 0.200465 0.900596 +vt 0.931108 0.076493 +vt 0.928030 0.078269 +vt 0.924953 0.076493 +vt 0.570978 0.105409 +vt 0.574531 0.142487 +vt 0.570978 0.142499 +vt 0.578084 0.105373 +vt 0.581638 0.142451 +vt 0.578084 0.142463 +vt 0.508461 0.907025 +vt 0.505315 0.904087 +vt 0.506735 0.904088 +vt 0.574531 0.105397 +vt 0.137536 0.872938 +vt 0.133658 0.841244 +vt 0.137536 0.841244 +vt 0.585191 0.105373 +vt 0.585191 0.142463 +vt 0.513586 0.904067 +vt 0.512564 0.899849 +vt 0.515067 0.904067 +vt 0.588744 0.105397 +vt 0.553436 0.105426 +vt 0.553436 0.352977 +vt 0.544795 0.105467 +vt 0.549116 0.352987 +vt 0.434574 0.721150 +vt 0.438452 0.721150 +vt 0.079319 0.872938 +vt 0.075442 0.841244 +vt 0.079319 0.841244 +vt 0.508468 0.901147 +vt 0.507722 0.899917 +vt 0.004488 0.910503 +vt 0.058828 0.905715 +vt 0.058854 0.910510 +vt 0.200436 0.925392 +vt 0.200465 0.919780 +vt 0.004488 0.891333 +vt 0.058828 0.896120 +vt 0.004462 0.896127 +vt 0.518336 0.908317 +vt 0.512568 0.908289 +vt 0.512941 0.718715 +vt 0.516125 0.715744 +vt 0.513696 0.719960 +vt 0.507768 0.715767 +vt 0.508784 0.711502 +vt 0.509489 0.712788 +vt 0.079319 0.876815 +vt 0.133658 0.872938 +vt 0.133658 0.876815 +vt 0.511878 0.907022 +vt 0.519397 0.715744 +vt 0.523331 0.719949 +vt 0.519401 0.719952 +vt 0.507718 0.908258 +vt 0.508790 0.720029 +vt 0.506276 0.715768 +vt 0.004462 0.905709 +vt 0.058815 0.900918 +vt 0.735887 0.219714 +vt 0.705094 0.214630 +vt 0.735887 0.214630 +vt 0.004449 0.900918 +vt 0.519401 0.711535 +vt 0.513696 0.711529 +vt 0.518331 0.899814 +vt 0.509488 0.718739 +vt 0.748294 0.099420 +vt 0.755792 0.011948 +vt 0.755792 0.099420 +vt 0.512945 0.712778 +vt 0.707508 0.011948 +vt 0.700010 0.099420 +vt 0.700010 0.011948 +vt 0.511881 0.901119 +vt 0.712504 0.094423 +vt 0.712504 0.016944 +vt 0.748294 0.011948 +vt 0.707508 0.004449 +vt 0.748294 0.004449 +vt 0.522312 0.904062 +vt 0.522306 0.899808 +vt 0.743297 0.016944 +vt 0.523329 0.715744 +vt 0.058826 0.885714 +vt 0.058854 0.891326 +vt 0.058826 0.916122 +vt 0.004487 0.916109 +vt 0.514691 0.715744 +vt 0.705094 0.297194 +vt 0.735887 0.302278 +vt 0.705094 0.302278 +vt 0.737769 0.347238 +vt 0.734900 0.356939 +vt 0.734900 0.347238 +vt 0.705094 0.219714 +vt 0.700010 0.297194 +vt 0.700010 0.219714 +vt 0.932863 0.109247 +vt 0.932863 0.112116 +vt 0.923161 0.109247 +vt 0.933917 0.260197 +vt 0.933917 0.263066 +vt 0.924215 0.260197 +vt 0.604318 0.731971 +vt 0.602115 0.730699 +vt 0.606241 0.727821 +vt 0.731188 0.356939 +vt 0.731188 0.347238 +vt 0.754611 0.265349 +vt 0.752706 0.267523 +vt 0.752706 0.266449 +vt 0.748294 0.106918 +vt 0.707508 0.099420 +vt 0.735887 0.297194 +vt 0.740971 0.219714 +vt 0.740971 0.297194 +vt 0.720050 0.347238 +vt 0.717181 0.356939 +vt 0.717181 0.347238 +vt 0.572675 0.225800 +vt 0.583711 0.223985 +vt 0.586171 0.225800 +vt 0.743297 0.094423 +vt 0.570978 0.305598 +vt 0.574045 0.306080 +vt 0.570978 0.306080 +vt 0.364152 0.910774 +vt 0.323109 0.908574 +vt 0.364152 0.908574 +vt 0.606508 0.746419 +vt 0.604798 0.746006 +vt 0.606241 0.745019 +vt 0.004486 0.919986 +vt 0.058825 0.919999 +vt 0.723763 0.356939 +vt 0.727475 0.347238 +vt 0.727475 0.356939 +vt 0.602115 0.473300 +vt 0.605182 0.475844 +vt 0.602115 0.475844 +vt 0.570978 0.315149 +vt 0.574045 0.317693 +vt 0.570978 0.317693 +vt 0.720050 0.356939 +vt 0.723763 0.347238 +vt 0.570978 0.310061 +vt 0.574045 0.312605 +vt 0.570978 0.312605 +vt 0.570978 0.303054 +vt 0.574045 0.305598 +vt 0.570978 0.308200 +vt 0.574045 0.309625 +vt 0.570978 0.309625 +vt 0.549116 0.105457 +vt 0.604318 0.745957 +vt 0.602115 0.744685 +vt 0.570978 0.307233 +vt 0.574045 0.308200 +vt 0.522312 0.908318 +vt 0.518340 0.904065 +vt 0.755542 0.262612 +vt 0.754611 0.263149 +vt 0.323109 0.906374 +vt 0.364152 0.906374 +vt 0.602115 0.482567 +vt 0.605182 0.483534 +vt 0.602115 0.483534 +vt 0.364152 0.917375 +vt 0.323109 0.915175 +vt 0.364152 0.915175 +vt 0.749870 0.265886 +vt 0.750800 0.263149 +vt 0.750800 0.265349 +vt 0.752706 0.260974 +vt 0.752706 0.262048 +vt 0.586762 0.199046 +vt 0.586762 0.224189 +vt 0.323109 0.912975 +vt 0.364152 0.912975 +vt 0.323109 0.910774 +vt 0.602115 0.525465 +vt 0.605182 0.528009 +vt 0.602115 0.528009 +vt 0.604318 0.656918 +vt 0.602115 0.655646 +vt 0.606241 0.655979 +vt 0.602115 0.484960 +vt 0.605182 0.485396 +vt 0.602115 0.485396 +vt 0.605182 0.482567 +vt 0.602115 0.481414 +vt 0.605182 0.481414 +vt 0.590499 0.288336 +vt 0.570978 0.285062 +vt 0.590499 0.285062 +vt 0.590499 0.291611 +vt 0.570978 0.288336 +vt 0.570978 0.281787 +vt 0.590499 0.281787 +vt 0.323109 0.904173 +vt 0.364152 0.904173 +vt 0.708329 0.249551 +vt 0.708329 0.224408 +vt 0.749870 0.216268 +vt 0.752706 0.214630 +vt 0.755542 0.216268 +vt 0.570978 0.278513 +vt 0.590499 0.278513 +vt 0.572785 0.199250 +vt 0.570978 0.224189 +vt 0.570978 0.199046 +vt 0.602115 0.487940 +vt 0.605182 0.490484 +vt 0.602115 0.490484 +vt 0.605182 0.478388 +vt 0.602115 0.478388 +vt 0.604798 0.726834 +vt 0.606508 0.726421 +vt 0.721825 0.224408 +vt 0.583711 0.199250 +vt 0.572675 0.197435 +vt 0.586171 0.197435 +vt 0.590499 0.275238 +vt 0.570978 0.271963 +vt 0.590499 0.271963 +vt 0.721825 0.249551 +vt 0.574045 0.315149 +vt 0.574045 0.310061 +vt 0.574045 0.307233 +vt 0.605182 0.480932 +vt 0.602115 0.480932 +vt 0.605182 0.487940 +vt 0.570978 0.275238 +vt 0.570978 0.300510 +vt 0.574045 0.303054 +vt 0.604318 0.607310 +vt 0.606522 0.608582 +vt 0.602396 0.611459 +vt 0.606508 0.657380 +vt 0.604798 0.656966 +vt 0.605182 0.484960 +vt 0.603839 0.612446 +vt 0.602129 0.612860 +vt 0.602115 0.540105 +vt 0.605182 0.542649 +vt 0.602115 0.542649 +vt 0.604318 0.681510 +vt 0.606522 0.682782 +vt 0.602396 0.685659 +vt 0.602115 0.535017 +vt 0.605182 0.537561 +vt 0.602115 0.537561 +vt 0.605182 0.530553 +vt 0.602115 0.530553 +vt 0.605182 0.540105 +vt 0.752073 0.296350 +vt 0.749870 0.295078 +vt 0.753995 0.295412 +vt 0.605182 0.531035 +vt 0.602115 0.531035 +vt 0.602115 0.534580 +vt 0.605182 0.535017 +vt 0.605182 0.532188 +vt 0.602115 0.533155 +vt 0.605182 0.534580 +vt 0.603839 0.686646 +vt 0.602129 0.687059 +vt 0.602115 0.532188 +vt 0.605182 0.533155 +vt 0.754262 0.296812 +vt 0.752553 0.296399 +vt 0.373050 0.924649 +vt 0.375594 0.921582 +vt 0.375594 0.924649 +vt 0.385146 0.924649 +vt 0.387690 0.921582 +vt 0.387690 0.924649 +vt 0.378138 0.921582 +vt 0.378138 0.924649 +vt 0.380682 0.921582 +vt 0.380682 0.924649 +vt 0.604318 0.696350 +vt 0.606522 0.697622 +vt 0.602396 0.700499 +vt 0.390234 0.921582 +vt 0.390234 0.924649 +vt 0.604318 0.623003 +vt 0.606522 0.624275 +vt 0.602396 0.623941 +vt 0.381164 0.921582 +vt 0.381164 0.924649 +vt 0.384710 0.924649 +vt 0.385146 0.921582 +vt 0.382317 0.921582 +vt 0.383284 0.924649 +vt 0.384710 0.921582 +vt 0.603839 0.701486 +vt 0.602129 0.701899 +vt 0.382317 0.924649 +vt 0.383284 0.921582 +vt 0.602129 0.622541 +vt 0.603839 0.622954 +vt 0.831064 0.009630 +vt 0.843605 0.044727 +vt 0.831064 0.056426 +vt 0.743344 0.167794 +vt 0.743344 0.120997 +vt 0.703102 0.317019 +vt 0.668004 0.329561 +vt 0.656305 0.317019 +vt 0.590249 0.360353 +vt 0.625347 0.347811 +vt 0.637046 0.360353 +vt 0.831064 0.075685 +vt 0.843605 0.110783 +vt 0.831064 0.122482 +vt 0.874398 0.141741 +vt 0.861856 0.153440 +vt 0.666669 0.308120 +vt 0.651125 0.308120 +vt 0.814471 0.227922 +vt 0.822165 0.227919 +vt 0.651125 0.114795 +vt 0.666669 0.164339 +vt 0.425655 0.116357 +vt 0.005065 0.116357 +vt 0.626683 0.088269 +vt 0.642226 0.019993 +vt 0.642226 0.099121 +vt 0.425194 0.274253 +vt 0.004670 0.266914 +vt 0.425261 0.266913 +vt 0.425519 0.634857 +vt 0.004984 0.642197 +vt 0.601948 0.347811 +vt 0.585069 0.326519 +vt 0.601948 0.329561 +vt 0.814471 0.292577 +vt 0.822165 0.243037 +vt 0.822165 0.292577 +vt 0.434862 0.169871 +vt 0.459196 0.109197 +vt 0.459196 0.169871 +vt 0.691403 0.347811 +vt 0.730802 0.156094 +vt 0.712551 0.156094 +vt 0.434862 0.185241 +vt 0.459196 0.185241 +vt 0.434862 0.345130 +vt 0.459196 0.261311 +vt 0.459197 0.345130 +vt 0.492430 0.245636 +vt 0.468095 0.261311 +vt 0.468095 0.245636 +vt 0.843605 0.153440 +vt 0.864898 0.136561 +vt 0.927872 0.841352 +vt 0.903538 0.869430 +vt 0.903538 0.841352 +vt 0.771626 0.348357 +vt 0.492430 0.261311 +vt 0.468095 0.345130 +vt 0.626683 0.103943 +vt 0.425040 0.297936 +vt 0.004450 0.343672 +vt 0.004449 0.297937 +vt 0.911375 0.160895 +vt 0.883297 0.136561 +vt 0.911375 0.136561 +vt 0.492430 0.185241 +vt 0.468095 0.185241 +vt 0.434862 0.094079 +vt 0.459196 0.094079 +vt 0.492430 0.169871 +vt 0.890121 0.329554 +vt 0.914455 0.301476 +vt 0.914455 0.329554 +vt 0.434862 0.261311 +vt 0.459196 0.245636 +vt 0.843605 0.021329 +vt 0.864898 0.004449 +vt 0.861856 0.021329 +vt 0.840564 0.061606 +vt 0.864898 0.061606 +vt 0.559774 0.916335 +vt 0.927872 0.878329 +vt 0.903538 0.906407 +vt 0.903538 0.878329 +vt 0.617784 0.308120 +vt 0.602240 0.308120 +vt 0.593216 0.921447 +vt 0.585394 0.473304 +vt 0.593216 0.473300 +vt 0.425034 0.445458 +vt 0.004450 0.372388 +vt 0.425034 0.372389 +vt 0.739686 0.490810 +vt 0.701335 0.474126 +vt 0.535487 0.916338 +vt 0.405859 0.731434 +vt 0.005091 0.711617 +vt 0.425676 0.711617 +vt 0.651125 0.326519 +vt 0.651125 0.350853 +vt 0.740980 0.474737 +vt 0.523590 0.614076 +vt 0.499255 0.642155 +vt 0.499255 0.614076 +vt 0.434862 0.245636 +vt 0.492430 0.041459 +vt 0.004449 0.445457 +vt 0.788978 0.155761 +vt 0.004556 0.469617 +vt 0.425141 0.460139 +vt 0.617784 0.103943 +vt 0.772385 0.292577 +vt 0.764691 0.292577 +vt 0.805572 0.171119 +vt 0.005373 0.077519 +vt 0.425963 0.077519 +vt 0.005219 0.092198 +vt 0.425809 0.101678 +vt 0.005219 0.101678 +vt 0.434862 0.109197 +vt 0.005152 0.109018 +vt 0.425742 0.109018 +vt 0.642226 0.186675 +vt 0.425434 0.199796 +vt 0.749879 0.474737 +vt 0.789524 0.474126 +vt 0.751172 0.490810 +vt 0.749879 0.954293 +vt 0.641491 0.652942 +vt 0.641741 0.625305 +vt 0.658278 0.488738 +vt 0.877476 0.204559 +vt 0.875534 0.244505 +vt 0.875534 0.204559 +vt 0.425040 0.343671 +vt 0.024267 0.363490 +vt 0.576495 0.473305 +vt 0.568673 0.921447 +vt 0.568673 0.473300 +vt 0.425348 0.259574 +vt 0.877476 0.202617 +vt 0.917422 0.202617 +vt 0.004603 0.274254 +vt 0.425194 0.283257 +vt 0.666669 0.103943 +vt 0.915316 0.279534 +vt 0.875534 0.279534 +vt 0.425963 0.004449 +vt 0.005373 0.004449 +vt 0.915316 0.282942 +vt 0.875534 0.282942 +vt 0.691403 0.329561 +vt 0.708282 0.350853 +vt 0.733844 0.205732 +vt 0.535486 0.473300 +vt 0.781284 0.083601 +vt 0.616381 0.473300 +vt 0.616381 0.506586 +vt 0.632175 0.952056 +vt 0.616381 0.554136 +vt 0.618764 0.965790 +vt 0.618423 0.937186 +vt 0.617937 0.896322 +vt 0.617645 0.871803 +vt 0.617159 0.830939 +vt 0.616381 0.582667 +vt 0.616380 0.630217 +vt 0.616867 0.806430 +vt 0.616380 0.765570 +vt 0.772385 0.243035 +vt 0.772385 0.099229 +vt 0.764691 0.004449 +vt 0.788979 0.292577 +vt 0.831397 0.301476 +vt 0.772385 0.171120 +vt 0.916075 0.354471 +vt 0.917097 0.340476 +vt 0.919563 0.338452 +vt 0.581638 0.151398 +vt 0.883297 0.020457 +vt 0.927292 0.279071 +vt 0.924215 0.277294 +vt 0.924215 0.273741 +vt 0.920274 0.136561 +vt 0.927170 0.136561 +vt 0.923762 0.152580 +vt 0.831064 0.206494 +vt 0.067790 0.919986 +vt 0.477872 0.354064 +vt 0.501328 0.105361 +vt 0.589098 0.305840 +vt 0.582943 0.305840 +vt 0.582944 0.302286 +vt 0.920435 0.062264 +vt 0.834941 0.202617 +vt 0.067791 0.885727 +vt 0.066543 0.872938 +vt 0.890121 0.342714 +vt 0.408851 0.897863 +vt 0.408851 0.928245 +vt 0.907176 0.346945 +vt 0.442073 0.574212 +vt 0.933055 0.325814 +vt 0.923354 0.325814 +vt 0.924775 0.319515 +vt 0.928205 0.318094 +vt 0.575384 0.354800 +vt 0.575384 0.357344 +vt 0.573181 0.358616 +vt 0.570978 0.357344 +vt 0.570978 0.354800 +vt 0.851652 0.273609 +vt 0.933055 0.309195 +vt 0.923354 0.309195 +vt 0.924775 0.302896 +vt 0.928205 0.301476 +vt 0.586171 0.234699 +vt 0.603013 0.598411 +vt 0.606522 0.593742 +vt 0.606522 0.596286 +vt 0.604318 0.597558 +vt 0.602115 0.596286 +vt 0.602115 0.499383 +vt 0.586762 0.261453 +vt 0.273168 0.904173 +vt 0.506276 0.682955 +vt 0.752706 0.236627 +vt 0.749870 0.234990 +vt 0.749870 0.231716 +vt 0.602115 0.551547 +vt 0.602115 0.581446 +vt 0.602115 0.578902 +vt 0.604318 0.577630 +vt 0.606522 0.578902 +vt 0.606522 0.581446 +vt 0.491177 0.355301 +vt 0.491177 0.357845 +vt 0.488973 0.359117 +vt 0.486770 0.357845 +vt 0.487668 0.359970 +vt 0.574045 0.343776 +vt 0.606522 0.639115 +vt 0.606522 0.641659 +vt 0.604319 0.642931 +vt 0.602115 0.641659 +vt 0.602115 0.639115 +vt 0.754276 0.277694 +vt 0.754276 0.280238 +vt 0.752073 0.281510 +vt 0.749870 0.280238 +vt 0.750768 0.282363 +vt 0.606522 0.713315 +vt 0.606522 0.715859 +vt 0.604319 0.717131 +vt 0.602115 0.715859 +vt 0.602115 0.713315 +vt 0.273168 0.929341 +vt 0.606522 0.667942 +vt 0.606522 0.670486 +vt 0.604318 0.671758 +vt 0.602115 0.670486 +vt 0.603013 0.672611 +vt 0.709510 0.115817 +vt 0.840564 0.070505 +vt 0.864898 0.193718 +vt 0.434862 0.004449 +vt 0.883297 0.095497 +vt 0.617784 0.004449 +vt 0.675567 0.004449 +vt 0.559774 0.473300 +vt 0.805572 0.083601 +vt 0.814471 0.099228 +vt 0.790449 0.473300 +vt 0.814471 0.171119 +vt 0.754319 0.338339 +vt 0.753565 0.363256 +vt 0.746668 0.363256 +vt 0.750076 0.347238 +vt 0.434862 0.358290 +vt 0.925634 0.185813 +vt 0.918738 0.176702 +vt 0.918738 0.185813 +vt 0.666669 0.004449 +vt 0.764691 0.305467 +vt 0.915316 0.271354 +vt 0.890121 0.357656 +vt 0.896275 0.357656 +vt 0.896275 0.361209 +vt 0.451917 0.362521 +vt 0.562079 0.105361 +vt 0.924953 0.072939 +vt 0.928030 0.071163 +vt 0.931108 0.072940 +vt 0.581638 0.105361 +vt 0.434574 0.689457 +vt 0.075442 0.872938 +vt 0.146098 0.925379 +vt 0.523331 0.711537 +vt 0.004487 0.885727 +vt 0.737769 0.356939 +vt 0.923161 0.112116 +vt 0.924582 0.105817 +vt 0.928012 0.104396 +vt 0.931442 0.105817 +vt 0.924215 0.263066 +vt 0.925636 0.256767 +vt 0.929066 0.255346 +vt 0.932496 0.256767 +vt 0.602115 0.728155 +vt 0.604318 0.726883 +vt 0.606522 0.728155 +vt 0.606522 0.730699 +vt 0.755542 0.265886 +vt 0.707508 0.106918 +vt 0.572785 0.223985 +vt 0.605624 0.746811 +vt 0.605182 0.473300 +vt 0.602115 0.742141 +vt 0.604318 0.740869 +vt 0.606522 0.742141 +vt 0.606522 0.744685 +vt 0.323109 0.917375 +vt 0.749870 0.262611 +vt 0.605182 0.525465 +vt 0.602115 0.653102 +vt 0.604318 0.651830 +vt 0.606522 0.653102 +vt 0.606522 0.655646 +vt 0.570978 0.291611 +vt 0.755542 0.219542 +vt 0.752706 0.221180 +vt 0.749870 0.219542 +vt 0.605624 0.726029 +vt 0.574045 0.300510 +vt 0.606522 0.611126 +vt 0.604318 0.612398 +vt 0.602115 0.611126 +vt 0.602115 0.608582 +vt 0.605624 0.657771 +vt 0.603013 0.613251 +vt 0.606522 0.685326 +vt 0.604318 0.686598 +vt 0.602115 0.685326 +vt 0.602115 0.682782 +vt 0.749870 0.292534 +vt 0.752073 0.291262 +vt 0.754276 0.292534 +vt 0.754276 0.295078 +vt 0.603013 0.687451 +vt 0.753378 0.297203 +vt 0.373050 0.921582 +vt 0.606522 0.700166 +vt 0.604318 0.701438 +vt 0.602115 0.700166 +vt 0.602115 0.697622 +vt 0.606522 0.626819 +vt 0.604318 0.628091 +vt 0.602115 0.626819 +vt 0.602115 0.624275 +vt 0.603013 0.702291 +vt 0.603013 0.622150 +vt 0.874398 0.188538 +vt 0.626683 0.004449 +vt 0.585069 0.350853 +vt 0.814471 0.243034 +vt 0.840564 0.136561 +vt 0.927872 0.869430 +vt 0.492430 0.345130 +vt 0.883297 0.160895 +vt 0.890121 0.301476 +vt 0.840564 0.004449 +vt 0.927872 0.906407 +vt 0.585394 0.921451 +vt 0.024908 0.731434 +vt 0.523590 0.642155 +vt 0.658278 0.937198 +vt 0.642978 0.726786 +vt 0.642978 0.952498 +vt 0.642978 0.920254 +vt 0.642978 0.874191 +vt 0.642978 0.846554 +vt 0.642978 0.800490 +vt 0.642825 0.505544 +vt 0.643117 0.473300 +vt 0.642158 0.579242 +vt 0.642408 0.551605 +vt 0.642978 0.772852 +vt 0.641074 0.699003 +vt 0.405223 0.363488 +vt 0.576495 0.921451 +vt 0.708282 0.326519 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7208 -0.6931 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.7071 -0.7071 0.0000 +vn 0.0005 0.8669 0.4984 +vn -0.0005 0.8669 -0.4984 +vn -0.0005 0.8651 -0.5016 +vn 0.0000 0.9416 0.3368 +vn 0.0000 0.5185 0.8551 +vn 0.0000 0.9416 0.3367 +vn -0.0009 -0.0000 -1.0000 +vn 0.0005 -0.8651 0.5016 +vn 0.0009 0.0000 1.0000 +vn 0.0005 -0.8669 0.4984 +vn 0.0000 0.1029 0.9947 +vn 0.0005 0.8651 0.5016 +vn 0.8773 -0.0000 -0.4799 +vn 0.9438 -0.2844 -0.1682 +vn 0.9861 0.0000 -0.1660 +vn -0.8773 -0.0000 0.4799 +vn -0.8778 -0.4127 0.2431 +vn -0.8776 0.0000 0.4795 +vn -0.0005 -0.8651 -0.5016 +vn -1.0000 -0.0000 0.0076 +vn -0.0005 -0.8669 -0.4984 +vn 0.8778 0.4175 0.2349 +vn 0.8784 0.0000 0.4779 +vn 0.8781 0.0000 0.4785 +vn -0.8774 -0.4131 0.2439 +vn -0.9430 -0.2896 -0.1641 +vn 0.0000 0.8671 0.4982 +vn 0.0002 0.8650 0.5018 +vn -0.8778 0.4127 0.2431 +vn -0.8774 0.4131 0.2439 +vn -0.8778 0.4175 -0.2349 +vn -0.9850 -0.0000 -0.1723 +vn -0.8781 -0.0000 -0.4785 +vn 0.8774 -0.4131 -0.2439 +vn 0.8783 -0.4163 0.2352 +vn 0.8774 0.4131 -0.2439 +vn 0.8783 0.4163 0.2352 +vn 0.0000 -0.8671 0.4982 +vn -0.0001 -1.0000 -0.0004 +vn 0.0002 0.0000 1.0000 +vn 0.8778 -0.4175 0.2349 +vn -0.8778 -0.4175 -0.2349 +vn 1.0000 0.0000 0.0021 +vn 1.0000 -0.0006 0.0006 +vn 0.9438 0.2844 -0.1682 +vn 0.0000 -1.0000 -0.0003 +vn -0.9430 0.2896 -0.1641 +vn -1.0000 0.0012 -0.0027 +vn -1.0000 0.0000 -0.0063 +vn 0.0000 -0.8650 -0.5018 +vn -1.0000 -0.0018 -0.0041 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.8650 -0.5018 +vn 1.0000 0.0010 0.0009 +vn 1.0000 -0.0000 0.0076 +vn 0.0002 -0.8650 0.5018 +vn 0.0005 0.8651 -0.5016 +vn 0.0009 -0.0000 -1.0000 +vn 0.0005 0.8669 -0.4984 +vn -0.0005 -0.8669 0.4984 +vn 0.0005 -0.8669 -0.4984 +vn 0.0005 -0.8651 -0.5016 +vn -0.0001 1.0000 -0.0000 +vn -0.0001 1.0000 -0.0004 +vn -0.0009 -0.0000 1.0000 +vn -0.0005 -0.8651 0.5016 +vn -0.0005 0.8651 0.5016 +vn -0.8773 0.0000 -0.4800 +vn -0.9438 -0.2844 -0.1682 +vn -0.8774 -0.4131 -0.2439 +vn -0.8784 -0.0000 0.4779 +vn -0.8778 0.4175 0.2349 +vn -0.8781 -0.0000 0.4785 +vn -0.0002 -0.8650 0.5018 +vn -0.0005 0.8669 0.4984 +vn -1.0000 -0.0006 0.0006 +vn 1.0000 0.0012 -0.0027 +vn -0.8778 -0.4175 0.2349 +vn -0.0002 0.0000 1.0000 +vn -0.0002 0.8650 0.5018 +vn 0.8778 0.4127 0.2431 +vn 0.8773 -0.0000 0.4799 +vn 0.8774 0.4131 0.2439 +vn 0.8774 -0.4131 0.2439 +vn 0.9430 -0.2896 -0.1641 +vn 0.8778 -0.4175 -0.2349 +vn -0.9861 0.0000 -0.1660 +vn -1.0000 0.0000 0.0021 +vn 0.9850 -0.0000 -0.1723 +vn 0.8781 -0.0000 -0.4785 +vn -0.8783 0.4163 0.2352 +vn -0.8774 0.4131 -0.2439 +vn 0.9430 0.2896 -0.1641 +vn 1.0000 0.0000 -0.0063 +vn 1.0000 -0.0018 -0.0041 +vn -1.0000 0.0010 0.0009 +vn -0.9438 0.2844 -0.1682 +vn 0.8778 -0.4127 0.2431 +vn 0.0001 -1.0000 -0.0004 +vn 0.0001 1.0000 -0.0000 +vn 0.0001 1.0000 -0.0004 +vn 0.8778 0.4175 -0.2349 +vn -0.8783 -0.4163 0.2352 +vn -0.9808 0.0000 0.1951 +vn -0.7071 0.0000 0.7071 +vn 0.9808 0.0000 0.1951 +vn 0.9936 0.0000 0.1127 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.9268 0.3755 +vn 0.0000 0.8731 0.4875 +vn 0.0000 0.9268 0.3754 +vn 0.0000 0.3265 0.9452 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.2935 -0.9559 +vn 0.0000 -0.6811 -0.7322 +vn 0.0000 0.9838 -0.1795 +vn 0.0000 0.3364 -0.9417 +vn 0.0000 0.9746 -0.2238 +vn 0.0000 -0.9746 0.2238 +vn 0.0000 -0.7322 0.6811 +vn 0.0000 -0.8469 0.5318 +vn 0.0000 -0.8469 0.5317 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5914 0.8064 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.9981 0.0608 +vn 0.0000 -0.9982 0.0608 +vn -0.9936 0.0000 0.1127 +vn 0.0000 -0.1211 0.9926 +vn 0.0000 0.6473 0.7622 +vn 0.0000 0.9988 0.0492 +vn 0.0000 -0.6473 -0.7622 +vn 0.0000 -0.0308 0.9995 +vn 0.0000 -0.9417 -0.3364 +vn 0.0000 0.0934 0.9956 +vn 0.0000 -0.9369 0.3495 +vn 0.0000 -0.9369 0.3496 +vn 0.0000 -0.6888 0.7249 +vn 0.0000 -0.8619 -0.5070 +vn 0.0000 0.4161 0.9093 +vn 0.0000 0.7931 -0.6091 +vn 0.0000 -0.1309 -0.9914 +vn 0.0000 0.9968 0.0800 +vn 0.0000 0.9968 0.0799 +vn 0.0000 -0.9240 -0.3823 +vn 0.0000 -0.7931 0.6091 +vn 0.0000 -0.3823 0.9240 +vn 0.0000 0.9990 -0.0443 +vn 0.0000 0.3030 0.9530 +vn 0.0000 0.6902 0.7236 +vn 0.0000 -0.5488 0.8360 +vn 0.0000 0.9286 -0.3710 +vn 0.0000 0.9473 0.3203 +vn 0.0000 0.7510 -0.6603 +vn 0.0000 0.4880 0.8728 +vn 0.0000 -0.1963 -0.9805 +vn 0.0000 -0.9473 -0.3203 +vn 0.0000 -0.9806 0.1963 +vn 0.0000 0.5925 0.8055 +vn 0.0000 -0.6234 0.7819 +vn 0.0000 -0.2174 0.9761 +vn 0.0000 -1.0000 0.0089 +vn 0.0000 0.8248 0.5654 +vn 0.0000 -0.2425 0.9701 +vn 0.7208 -0.6931 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.8773 -0.0000 -0.4799 +vn -0.8778 -0.4127 -0.2431 +vn -0.9430 -0.2896 0.1641 +vn 0.0000 0.1029 -0.9947 +vn 0.0000 0.5185 -0.8551 +vn 0.0000 0.8671 -0.4982 +vn 0.0002 0.8650 -0.5018 +vn -1.0000 -0.0000 -0.0076 +vn -0.8778 0.4127 -0.2431 +vn 0.8784 0.0000 -0.4779 +vn 0.9438 -0.2844 0.1682 +vn -0.9850 -0.0000 0.1723 +vn 0.9861 0.0000 0.1660 +vn 1.0000 -0.0006 -0.0006 +vn 1.0000 0.0000 -0.0021 +vn 0.0000 -0.8671 -0.4982 +vn 0.0002 -0.8650 -0.5018 +vn 0.8783 -0.4163 -0.2352 +vn 0.0002 0.0000 -1.0000 +vn 0.8783 0.4163 -0.2352 +vn 0.0000 -1.0000 0.0003 +vn -0.9430 0.2896 0.1641 +vn 0.9438 0.2844 0.1682 +vn 0.0000 -0.8650 0.5018 +vn -1.0000 0.0012 0.0027 +vn -1.0000 0.0000 0.0063 +vn 0.0000 0.8650 0.5018 +vn 1.0000 0.0010 -0.0009 +vn -1.0000 -0.0018 0.0041 +vn -0.0001 -1.0000 0.0004 +vn 1.0000 -0.0000 -0.0076 +vn -0.8784 -0.0000 -0.4779 +vn -1.0000 -0.0006 -0.0006 +vn -0.8773 0.0000 0.4800 +vn -0.9438 -0.2844 0.1682 +vn -0.9861 0.0000 0.1660 +vn 1.0000 0.0012 0.0027 +vn -0.8783 -0.4163 -0.2352 +vn 0.0001 -1.0000 0.0004 +vn -0.0001 1.0000 0.0004 +vn -0.0002 0.8650 -0.5018 +vn -0.9438 0.2844 0.1682 +vn 0.9850 -0.0000 0.1723 +vn 0.9430 -0.2896 0.1641 +vn 0.8778 0.4127 -0.2431 +vn 1.0000 0.0000 0.0063 +vn 1.0000 -0.0018 0.0041 +vn -0.8783 0.4163 -0.2352 +vn 0.8778 -0.4127 -0.2431 +vn 0.8776 0.0000 -0.4795 +vn -0.0002 -0.8650 -0.5018 +vn -0.0002 0.0000 -1.0000 +vn 0.9430 0.2896 0.1641 +vn -1.0000 0.0010 -0.0009 +vn 0.8778 0.4174 0.2349 +vn 0.0001 1.0000 0.0004 +vn -0.9808 0.0000 -0.1951 +vn -0.7071 0.0000 -0.7071 +vn 0.9808 0.0000 -0.1951 +vn 0.9936 0.0000 -0.1127 +vn 0.0000 0.8731 -0.4875 +vn 0.0000 0.9268 -0.3755 +vn 0.0000 0.9268 -0.3754 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 0.3364 0.9417 +vn 0.0000 0.9838 0.1795 +vn 0.0000 -0.6811 0.7322 +vn 0.0000 0.2935 0.9559 +vn 0.0000 -0.7322 -0.6811 +vn 0.0000 -0.9746 -0.2238 +vn 0.0000 0.9746 0.2238 +vn 0.0000 -0.8469 -0.5317 +vn 0.0000 -0.8469 -0.5318 +vn 0.0000 0.3265 -0.9452 +vn -1.0000 0.0000 -0.0021 +vn 0.0000 -0.6888 -0.7249 +vn 0.0000 0.5914 -0.8064 +vn 0.0000 -0.1309 0.9914 +vn 0.0000 0.7931 0.6091 +vn 0.0000 -0.9369 -0.3496 +vn 0.0000 -0.9369 -0.3495 +vn 0.0000 0.4161 -0.9093 +vn 0.0000 0.0934 -0.9956 +vn 0.0000 -0.9982 -0.0608 +vn 0.0000 -0.9981 -0.0608 +vn 0.0000 -0.6473 0.7622 +vn 0.0000 0.6473 -0.7622 +vn -0.9936 0.0000 -0.1127 +vn 0.0000 -0.1211 -0.9926 +vn 0.0000 0.9988 -0.0492 +vn 0.0000 -0.0308 -0.9995 +vn 0.0000 -0.9417 0.3364 +vn 0.0000 -0.8619 0.5070 +vn 0.0000 -0.9240 0.3823 +vn 0.0000 -0.3823 -0.9240 +vn 0.0000 -0.7931 -0.6091 +vn 0.0000 0.9968 -0.0800 +vn 0.0000 0.9968 -0.0799 +vn 0.0000 0.9990 0.0443 +vn 0.0000 0.3030 -0.9530 +vn 0.0000 0.9286 0.3710 +vn 0.0000 -0.5488 -0.8360 +vn 0.0000 0.6902 -0.7236 +vn 0.0000 -0.1963 0.9805 +vn 0.0000 0.7510 0.6603 +vn 0.0000 -0.9806 -0.1963 +vn 0.0000 -0.9473 0.3203 +vn 0.0000 0.9473 -0.3203 +vn 0.0000 0.4880 -0.8728 +vn 0.0000 0.5925 -0.8055 +vn 0.0000 -0.6234 -0.7819 +vn 0.0000 0.8248 -0.5654 +vn 0.0000 -1.0000 -0.0089 +vn 0.0000 -0.2174 -0.9761 +vn 0.0000 -0.2425 -0.9701 +vn 0.0000 0.9416 -0.3368 +vn 0.0000 0.9416 -0.3367 +vn 0.0000 1.0000 -0.0007 +vn 0.8776 0.0000 0.4795 +vn 1.0000 0.0001 0.0000 +vn 0.0000 0.9287 -0.3709 +vn 0.0000 -0.9805 0.1963 +vn -0.8776 0.0000 -0.4795 +vn 0.0000 1.0000 0.0007 +vn 0.0000 0.9287 0.3709 +vn 0.0000 -0.9805 -0.1963 +s 1 +f 708/1/1 6/2/1 696/3/1 +f 88/4/2 92/5/2 87/6/2 +f 346/7/3 19/8/3 4/9/3 +f 80/10/4 74/11/4 73/12/4 +f 30/13/5 55/14/5 54/15/5 +f 54/15/5 29/16/5 30/13/5 +f 35/17/6 69/18/6 48/19/6 +f 10/20/7 16/21/7 15/22/7 +f 5/23/5 4/24/5 10/25/5 +f 40/26/3 8/27/3 2/28/3 +f 33/29/6 77/30/6 50/31/6 +f 697/32/8 709/33/8 685/34/8 +f 14/35/5 20/36/5 5/23/5 +f 692/37/5 2/38/5 691/39/5 +f 76/40/9 78/41/9 77/30/9 +f 38/42/2 28/43/2 27/44/2 +f 59/45/5 63/46/5 62/47/5 +f 41/48/5 22/49/5 44/50/5 +f 37/51/6 61/52/6 46/53/6 +f 52/54/5 31/55/5 32/56/5 +f 42/57/5 23/58/5 41/48/5 +f 1/59/5 51/60/5 3/61/5 +f 56/62/5 27/63/5 28/64/5 +f 45/65/5 35/17/5 48/19/5 +f 32/66/2 36/67/2 29/68/2 +f 46/69/3 44/70/3 43/71/3 +f 39/72/5 24/73/5 42/57/5 +f 67/74/5 71/75/5 70/76/5 +f 12/77/5 13/78/5 14/35/5 +f 13/79/10 18/80/10 17/81/10 +f 31/82/2 7/83/2 34/84/2 +f 86/85/5 90/86/5 82/87/5 +f 43/71/3 17/88/3 46/69/3 +f 90/86/3 83/89/3 89/90/3 +f 72/91/4 66/92/4 65/93/4 +f 60/94/9 62/47/9 61/52/9 +f 101/95/1 97/96/1 98/97/1 +f 39/98/3 47/99/3 50/100/3 +f 36/67/2 30/101/2 29/68/2 +f 47/102/1 65/93/1 36/103/1 +f 34/84/2 32/66/2 31/82/2 +f 50/100/3 40/26/3 39/98/3 +f 44/50/5 21/104/5 43/105/5 +f 41/106/3 45/107/3 48/108/3 +f 84/109/6 91/110/6 88/111/6 +f 68/112/9 70/76/9 69/18/9 +f 113/113/11 131/114/12 114/115/13 +f 85/116/6 93/117/6 81/118/6 +f 81/119/5 90/86/5 89/90/5 +f 104/120/14 108/121/15 106/122/16 +f 86/123/3 96/124/3 85/125/3 +f 114/115/13 122/126/17 109/127/17 +f 81/128/2 94/129/2 82/130/2 +f 82/131/1 95/132/1 86/133/1 +f 87/134/1 89/90/1 83/135/1 +f 99/136/6 106/122/16 102/137/6 +f 95/132/5 93/117/5 96/124/5 +f 45/65/1 57/138/1 38/139/1 +f 99/140/3 98/141/3 103/142/3 +f 125/143/18 112/144/19 111/145/20 +f 85/146/5 91/110/5 86/85/5 +f 105/147/15 107/148/21 108/121/15 +f 112/144/19 129/149/22 113/113/11 +f 121/150/23 138/151/24 118/152/25 +f 127/153/26 135/154/27 133/155/28 +f 122/156/17 110/157/29 109/158/17 +f 107/148/21 97/96/5 100/159/5 +f 112/160/30 113/161/30 114/162/30 +f 123/163/31 111/145/20 110/157/29 +f 108/164/2 107/165/2 102/166/2 +f 130/167/32 134/168/33 128/169/34 +f 125/170/35 137/171/36 135/154/27 +f 119/172/6 116/173/37 115/174/38 +f 127/153/26 116/175/39 129/176/40 +f 131/177/41 117/178/42 122/179/43 +f 124/180/44 136/181/45 138/151/24 +f 132/182/46 115/183/47 130/167/32 +f 138/184/1 135/185/48 137/186/49 +f 115/174/38 133/187/50 134/188/50 +f 126/189/51 134/168/33 136/181/45 +f 123/190/52 117/178/42 137/171/36 +f 149/191/2 154/192/53 153/193/2 +f 150/194/5 140/195/5 147/196/5 +f 118/152/25 150/197/54 119/198/55 +f 146/199/6 140/195/6 144/200/6 +f 141/201/1 143/202/56 139/203/1 +f 129/176/40 120/204/57 131/177/41 +f 147/205/58 151/206/3 152/207/59 +f 172/208/48 124/209/60 170/210/60 +f 121/150/23 119/198/55 132/182/46 +f 152/207/59 141/211/3 139/212/61 +f 147/205/58 117/178/42 120/204/57 +f 167/213/62 132/214/63 178/215/63 +f 143/216/64 118/152/25 138/151/24 +f 138/184/1 139/203/1 143/202/56 +f 117/178/42 139/212/61 137/171/36 +f 170/210/60 121/217/62 167/218/62 +f 157/219/65 156/220/65 160/221/65 +f 136/222/66 133/187/50 135/185/48 +f 153/193/2 143/216/64 145/223/2 +f 160/224/67 168/225/68 177/226/69 +f 174/227/5 126/228/48 172/208/48 +f 146/229/2 150/194/54 149/230/2 +f 140/195/3 148/231/3 147/196/58 +f 157/232/70 169/233/71 156/234/72 +f 119/172/6 147/235/73 120/236/74 +f 158/237/75 171/238/76 157/232/70 +f 158/237/75 175/239/77 173/240/75 +f 167/241/78 184/242/79 170/243/80 +f 180/244/81 176/245/82 174/246/83 +f 184/247/1 181/248/48 182/249/84 +f 159/250/85 177/226/69 175/239/77 +f 196/251/86 192/252/3 195/253/3 +f 194/254/2 186/255/2 193/256/87 +f 172/257/88 180/244/81 174/246/83 +f 156/234/72 168/258/68 155/259/68 +f 178/215/63 130/260/37 176/261/37 +f 179/262/89 161/263/90 180/264/89 +f 162/265/91 173/266/92 175/267/93 +f 190/268/6 188/269/6 192/270/6 +f 162/271/37 165/272/6 161/263/90 +f 171/273/94 183/274/95 169/275/96 +f 164/276/97 196/277/86 200/278/98 +f 169/275/96 163/279/99 168/280/100 +f 161/281/101 178/282/102 176/245/82 +f 163/279/99 193/283/87 166/284/103 +f 187/285/2 198/286/104 185/287/105 +f 164/276/97 189/288/106 184/242/79 +f 165/289/107 167/241/78 178/282/102 +f 182/249/84 179/262/89 180/264/89 +f 173/266/92 181/290/108 171/273/94 +f 206/291/3 258/292/3 205/293/3 +f 184/247/1 185/294/1 183/295/109 +f 193/256/5 190/268/5 196/251/5 +f 193/296/110 165/272/6 166/297/111 +f 204/298/6 211/299/6 208/300/6 +f 163/279/99 185/287/105 198/286/104 +f 166/284/103 175/267/93 177/301/112 +f 189/288/106 199/302/3 191/303/3 +f 207/304/1 209/305/1 203/306/1 +f 205/307/5 211/299/5 206/308/5 +f 200/278/98 195/309/3 199/302/3 +f 197/310/2 193/283/87 198/286/104 +f 210/311/3 203/312/3 209/305/3 +f 208/313/2 212/314/2 207/315/2 +f 205/316/6 255/317/6 201/318/6 +f 170/243/80 182/319/113 172/257/88 +f 202/320/1 257/321/1 206/322/1 +f 202/323/5 211/299/5 210/311/5 +f 201/324/5 212/314/5 205/307/5 +f 201/325/2 256/326/2 202/327/2 +f 230/328/6 229/329/6 224/330/6 +f 275/331/3 276/332/3 273/333/3 +f 224/334/114 217/335/3 222/336/114 +f 201/324/5 210/311/5 209/305/5 +f 225/337/115 222/336/114 223/338/115 +f 223/339/1 222/340/1 226/341/1 +f 220/342/2 226/343/116 219/344/2 +f 214/345/117 259/346/117 260/347/117 +f 163/279/99 177/301/112 168/280/100 +f 237/348/3 254/349/3 245/350/3 +f 176/261/37 128/351/5 174/227/5 +f 185/294/1 191/352/1 187/353/1 +f 221/354/5 230/355/118 228/356/5 +f 277/357/119 273/358/120 276/359/121 +f 282/360/122 280/361/122 279/362/122 +f 239/363/123 234/364/5 233/365/123 +f 277/366/2 282/367/2 278/368/2 +f 227/369/118 229/370/116 230/355/118 +f 270/371/2 268/372/2 278/368/2 +f 266/373/124 267/374/125 265/375/124 +f 228/356/5 223/338/115 221/354/5 +f 286/376/126 287/377/127 285/378/126 +f 274/379/120 263/380/128 273/358/120 +f 270/381/129 271/382/130 269/383/129 +f 278/384/131 279/362/132 275/385/132 +f 237/348/3 250/386/3 238/387/3 +f 240/388/3 251/389/3 252/390/3 +f 240/391/5 235/392/133 234/364/5 +f 240/388/3 253/393/3 241/394/3 +f 241/395/133 236/396/134 235/392/133 +f 213/397/135 262/398/135 259/346/135 +f 238/399/136 233/365/123 232/400/136 +f 242/401/134 231/402/62 236/396/134 +f 249/403/134 245/404/62 254/405/134 +f 214/406/5 257/321/5 256/326/5 +f 214/407/137 261/408/138 215/409/138 +f 237/410/62 232/400/136 231/411/62 +f 247/412/5 253/413/133 252/414/5 +f 246/415/123 252/414/5 251/416/123 +f 248/417/133 254/405/134 253/413/133 +f 248/418/2 247/419/2 246/420/2 +f 261/408/5 259/346/5 262/398/5 +f 213/421/5 258/292/5 216/422/5 +f 244/423/62 250/424/136 245/425/62 +f 241/394/3 254/349/3 242/426/3 +f 216/422/5 257/321/5 215/427/5 +f 215/428/139 262/398/139 216/429/139 +f 264/430/128 265/431/124 263/380/128 +f 268/432/125 269/383/129 267/374/125 +f 238/387/3 251/389/3 239/433/3 +f 243/434/136 251/416/123 250/424/136 +f 213/421/5 256/326/5 255/317/5 +f 272/435/140 275/385/140 271/382/140 +f 284/436/141 285/378/126 283/437/141 +f 276/359/121 281/438/142 277/357/119 +f 276/332/3 279/439/3 280/440/3 +f 295/441/3 296/442/3 293/443/3 +f 288/444/127 289/445/143 287/446/127 +f 294/447/144 283/437/141 293/448/144 +f 290/449/143 291/450/145 289/445/143 +f 290/451/2 288/452/2 298/453/2 +f 297/454/146 293/448/144 296/455/146 +f 292/456/147 295/457/148 291/450/148 +f 296/442/3 299/458/3 300/459/3 +f 302/460/149 300/461/149 299/462/149 +f 298/463/150 299/462/150 295/457/150 +f 296/455/146 301/464/151 297/454/146 +f 297/465/2 302/466/2 298/453/2 +f 304/467/152 305/468/153 303/469/152 +f 315/470/3 316/471/3 313/472/3 +f 314/473/154 303/469/152 313/474/155 +f 306/475/153 307/476/156 305/477/153 +f 310/478/157 311/479/158 309/480/157 +f 308/481/156 309/480/157 307/476/156 +f 310/482/2 308/483/2 318/484/2 +f 317/485/159 313/474/155 316/486/159 +f 312/487/160 315/488/160 311/479/160 +f 316/471/3 319/489/3 320/490/3 +f 322/491/161 320/492/161 319/493/161 +f 318/494/162 319/493/162 315/488/162 +f 316/486/159 321/495/163 317/485/159 +f 317/496/2 322/497/2 318/484/2 +f 324/498/164 325/499/165 323/500/164 +f 335/501/3 336/502/3 333/503/3 +f 334/504/166 323/500/164 333/505/166 +f 326/506/165 327/507/167 325/499/165 +f 330/508/168 331/509/169 329/510/168 +f 328/511/167 329/510/168 327/512/167 +f 330/513/2 328/514/2 338/515/2 +f 337/516/170 333/505/166 336/517/170 +f 332/518/171 335/519/171 331/509/171 +f 336/502/3 339/520/3 340/521/3 +f 342/522/172 340/523/172 339/524/172 +f 338/525/173 339/524/173 335/519/173 +f 336/517/170 341/526/174 337/516/170 +f 337/527/2 342/528/2 338/515/2 +f 713/529/175 690/530/175 689/531/175 +f 719/532/8 707/533/8 731/534/8 +f 719/532/175 696/535/175 695/536/175 +f 722/537/176 686/538/176 710/539/176 +f 724/540/176 688/541/176 712/542/176 +f 703/543/8 715/544/8 691/545/8 +f 362/546/2 5/547/2 20/548/2 +f 398/549/3 55/550/3 56/551/3 +f 717/552/175 694/553/175 693/554/175 +f 709/33/175 686/555/175 685/556/175 +f 687/557/175 712/542/175 688/558/175 +f 397/559/3 54/560/3 55/550/3 +f 715/544/175 692/561/175 691/562/175 +f 345/563/1 685/564/1 3/565/1 +f 32/56/5 53/566/5 52/54/5 +f 2/567/5 26/568/5 40/569/5 +f 47/102/5 33/29/5 50/31/5 +f 28/64/5 19/570/5 56/62/5 +f 30/101/2 38/42/2 27/44/2 +f 434/571/2 430/572/2 429/573/2 +f 411/574/6 377/575/6 390/576/6 +f 358/577/7 352/578/7 357/579/7 +f 362/580/62 385/581/62 355/582/62 +f 350/583/3 382/584/3 344/585/3 +f 416/586/177 422/587/177 415/588/177 +f 378/589/2 374/590/2 371/591/2 +f 372/592/62 397/593/62 369/594/62 +f 371/595/62 396/596/62 372/592/62 +f 352/597/62 347/598/62 354/599/62 +f 382/584/3 392/600/3 381/601/3 +f 374/590/2 376/602/2 373/603/2 +f 386/604/3 388/605/3 385/606/3 +f 432/607/62 428/608/62 424/609/62 +f 384/610/62 365/611/62 366/612/62 +f 455/613/69 473/614/85 471/615/67 +f 369/594/62 398/616/62 370/617/62 +f 383/618/3 387/619/3 386/604/3 +f 372/620/2 378/589/2 371/591/2 +f 404/621/178 402/622/178 403/623/178 +f 435/624/62 437/625/62 438/626/62 +f 431/627/1 429/628/1 425/629/1 +f 438/626/3 428/630/3 427/631/3 +f 385/606/3 359/632/3 355/633/3 +f 360/634/10 355/635/10 359/636/10 +f 413/637/62 409/638/62 412/639/62 +f 386/640/62 363/641/62 364/642/62 +f 381/601/3 389/643/3 384/644/3 +f 408/645/177 414/646/177 407/647/177 +f 435/624/6 427/648/6 423/649/6 +f 456/650/77 464/651/75 473/614/85 +f 445/652/3 441/653/3 447/654/3 +f 469/655/179 477/656/180 467/657/80 +f 450/658/2 448/659/2 444/660/2 +f 366/612/62 381/661/62 384/610/62 +f 377/575/62 387/662/62 390/576/62 +f 343/663/62 393/664/62 373/665/62 +f 425/666/3 432/607/3 431/627/3 +f 373/603/2 349/667/2 343/668/2 +f 354/599/62 356/669/62 355/670/62 +f 433/671/6 426/672/6 430/673/6 +f 407/647/1 389/674/1 378/675/1 +f 439/676/1 443/677/1 440/678/1 +f 454/679/68 467/680/72 453/681/71 +f 467/657/80 479/682/181 465/683/88 +f 449/684/182 447/685/183 450/686/183 +f 439/676/62 449/684/182 442/687/62 +f 458/688/184 461/689/6 457/690/185 +f 453/691/186 452/692/186 456/693/186 +f 433/671/62 427/694/62 428/608/62 +f 454/679/68 471/615/67 469/695/68 +f 453/681/71 465/696/70 452/697/76 +f 452/697/76 464/698/75 451/699/75 +f 458/700/187 469/655/179 471/701/102 +f 476/702/188 472/703/112 470/704/100 +f 463/705/92 480/706/189 466/707/94 +f 459/708/190 473/709/82 464/710/83 +f 465/683/88 459/708/190 464/710/83 +f 460/711/191 492/712/192 496/713/193 +f 496/713/193 491/714/2 495/715/2 +f 480/716/1 477/717/194 478/718/195 +f 466/707/94 478/719/196 468/720/96 +f 468/720/96 476/702/188 470/704/100 +f 475/721/197 457/690/185 476/722/197 +f 457/723/198 474/724/93 472/703/112 +f 483/725/1 485/726/199 487/727/1 +f 462/728/200 471/701/102 473/709/82 +f 488/729/6 482/730/6 484/731/6 +f 492/732/62 482/730/62 486/733/62 +f 461/734/201 463/705/92 474/724/93 +f 466/735/202 514/736/194 512/737/202 +f 493/738/3 489/739/203 494/740/204 +f 474/741/205 509/742/5 520/743/205 +f 460/711/191 485/744/206 480/706/189 +f 459/708/190 489/739/203 462/728/200 +f 483/745/3 494/740/204 481/746/207 +f 492/732/192 488/747/2 491/748/2 +f 478/718/195 475/721/197 476/722/197 +f 485/744/206 495/715/2 487/749/2 +f 502/750/22 510/751/19 497/752/19 +f 463/753/5 512/737/202 509/754/5 +f 480/716/1 481/755/1 479/756/208 +f 500/757/209 501/758/209 502/759/209 +f 510/760/19 498/761/18 497/762/19 +f 513/763/29 500/764/17 499/765/31 +f 518/766/41 522/767/210 516/768/43 +f 511/769/20 499/765/31 498/761/18 +f 534/770/3 538/771/211 537/772/3 +f 500/764/17 517/773/13 501/774/12 +f 459/708/190 481/746/207 494/740/204 +f 509/775/212 526/776/213 506/777/214 +f 501/774/12 519/778/11 502/750/22 +f 472/779/184 520/743/205 518/780/184 +f 468/781/194 516/782/62 514/736/194 +f 490/783/3 482/730/3 489/784/203 +f 528/785/2 536/786/2 535/787/215 +f 514/788/52 522/767/210 524/789/216 +f 526/790/1 523/791/194 525/792/217 +f 489/793/73 461/689/6 462/794/218 +f 507/795/6 504/796/184 503/797/219 +f 506/777/214 538/798/211 507/799/220 +f 511/800/51 505/801/221 525/802/222 +f 515/803/23 504/804/223 517/805/46 +f 530/806/6 532/807/6 534/808/6 +f 509/775/212 507/799/220 520/809/40 +f 540/810/224 529/811/2 527/812/225 +f 520/809/40 503/813/226 518/766/41 +f 515/803/23 523/814/227 521/815/228 +f 524/816/229 521/817/230 523/791/194 +f 600/818/3 548/819/3 547/820/3 +f 503/797/219 521/817/230 522/821/230 +f 535/822/215 505/801/221 508/823/231 +f 531/824/232 506/777/214 526/776/213 +f 513/825/44 525/802/222 523/814/227 +f 551/826/1 549/827/1 545/828/1 +f 517/805/46 508/823/231 519/829/233 +f 553/830/6 546/831/6 550/832/6 +f 512/833/35 524/789/216 526/776/213 +f 544/834/62 553/830/62 548/835/62 +f 554/836/2 550/837/2 549/838/2 +f 541/839/3 531/824/232 533/840/3 +f 553/830/62 547/841/62 548/835/62 +f 535/822/215 539/842/2 540/810/224 +f 507/795/6 535/843/110 508/844/234 +f 526/790/1 527/845/1 531/846/199 +f 505/801/221 527/812/225 525/802/222 +f 519/829/233 505/801/221 510/847/34 +f 598/848/2 543/849/2 544/850/2 +f 559/851/3 566/852/235 564/853/235 +f 599/854/1 544/855/1 548/856/1 +f 568/857/1 561/858/1 564/859/1 +f 566/860/6 560/861/6 571/862/6 +f 532/807/62 535/787/62 538/771/62 +f 609/863/3 607/864/3 617/865/3 +f 564/853/235 567/866/236 565/867/236 +f 579/868/3 596/869/3 584/870/3 +f 545/871/3 552/872/3 551/826/3 +f 597/873/6 547/874/6 543/875/6 +f 568/876/237 562/877/2 561/878/2 +f 556/879/238 601/880/238 555/881/238 +f 543/882/62 552/872/62 544/834/62 +f 554/836/62 543/882/62 547/841/62 +f 615/883/239 619/884/240 618/885/241 +f 576/886/62 581/887/136 575/888/136 +f 624/889/2 619/890/2 620/891/2 +f 533/892/1 527/845/1 529/893/1 +f 572/894/242 563/895/62 570/896/62 +f 629/897/243 628/898/244 627/899/244 +f 609/900/245 608/901/246 607/902/246 +f 571/903/237 569/904/242 572/894/242 +f 613/905/247 612/906/248 611/907/248 +f 605/908/249 616/909/239 615/883/239 +f 621/910/250 620/911/251 617/912/250 +f 470/913/62 518/780/184 516/782/62 +f 616/914/2 606/915/2 620/891/2 +f 565/867/236 570/896/62 563/895/62 +f 622/916/252 624/917/252 621/910/252 +f 537/918/3 542/919/253 541/839/3 +f 592/920/3 579/868/3 580/921/3 +f 575/888/136 580/922/123 574/923/123 +f 642/924/254 644/925/254 641/926/254 +f 573/927/5 584/928/133 578/929/133 +f 595/930/3 582/931/3 583/932/3 +f 582/931/3 593/933/3 581/934/3 +f 601/880/255 558/935/255 555/936/255 +f 578/929/133 583/937/134 577/938/134 +f 577/938/134 582/939/62 576/886/62 +f 647/940/256 646/941/257 645/942/257 +f 636/943/2 626/944/2 640/945/2 +f 637/946/258 634/947/259 633/948/258 +f 643/949/260 638/950/261 639/951/261 +f 596/952/133 590/953/134 595/954/134 +f 587/955/5 591/956/133 596/952/133 +f 595/954/134 589/957/62 594/958/62 +f 574/923/123 579/959/5 573/960/5 +f 556/961/62 599/854/62 557/962/62 +f 590/963/2 591/964/2 586/965/2 +f 594/958/62 588/966/136 593/967/136 +f 603/968/262 556/969/263 557/970/262 +f 631/971/264 630/972/243 629/973/243 +f 627/899/244 626/974/265 625/975/265 +f 618/976/3 621/977/3 617/865/3 +f 593/933/3 580/921/3 581/934/3 +f 599/854/62 558/978/62 557/962/62 +f 604/979/266 557/980/266 558/981/266 +f 596/869/3 583/932/3 584/870/3 +f 592/982/123 586/983/5 587/984/5 +f 600/818/62 555/985/62 558/978/62 +f 601/880/62 603/968/62 604/979/62 +f 611/907/248 610/986/245 609/900/245 +f 555/985/62 598/848/62 556/961/62 +f 617/912/267 614/987/267 613/905/267 +f 623/988/268 618/885/241 619/884/240 +f 625/975/265 636/989/269 635/990/269 +f 633/948/270 632/991/264 631/971/264 +f 593/967/136 585/992/123 592/982/123 +f 607/993/246 606/994/249 605/908/249 +f 629/995/3 627/996/3 637/997/3 +f 635/990/269 639/951/261 638/950/261 +f 644/998/2 639/999/2 640/945/2 +f 641/926/271 640/1000/271 637/946/271 +f 638/1001/3 641/1002/3 637/997/3 +f 649/1003/272 648/1004/256 647/1005/256 +f 649/1006/3 647/1007/3 657/1008/3 +f 653/1009/273 652/1010/274 651/1011/274 +f 645/942/257 656/1012/275 655/1013/276 +f 651/1011/274 650/1014/272 649/1003/272 +f 656/1015/2 646/1016/2 660/1017/2 +f 655/1013/276 659/1018/277 658/1019/277 +f 657/1020/278 654/1021/278 653/1009/278 +f 663/1022/279 658/1019/277 659/1018/277 +f 661/1023/280 660/1024/280 657/1020/280 +f 658/1025/3 661/1026/3 657/1008/3 +f 662/1027/281 664/1028/281 661/1023/281 +f 664/1029/2 659/1030/2 660/1017/2 +f 669/1031/282 668/1032/283 667/1033/283 +f 673/1034/284 672/1035/285 671/1036/285 +f 667/1033/283 666/1037/286 665/1038/286 +f 665/1038/286 676/1039/287 675/1040/287 +f 669/1041/3 667/1042/3 677/1043/3 +f 671/1036/285 670/1044/282 669/1045/282 +f 676/1046/2 666/1047/2 680/1048/2 +f 675/1040/287 679/1049/288 678/1050/288 +f 677/1051/289 674/1052/289 673/1034/289 +f 683/1053/290 678/1050/288 679/1049/288 +f 681/1054/291 680/1055/291 677/1051/291 +f 678/1056/3 681/1057/3 677/1043/3 +f 682/1058/292 684/1059/292 681/1054/292 +f 684/1060/2 679/1061/2 680/1048/2 +f 702/1062/293 725/1063/293 701/1064/293 +f 708/1065/293 731/534/293 707/1066/293 +f 706/1067/293 729/1068/293 705/1069/293 +f 704/1070/293 727/1071/293 703/1072/293 +f 698/1073/293 721/1074/293 697/1075/293 +f 699/1076/293 724/540/293 723/1077/293 +f 370/617/62 361/1078/62 351/1079/62 +f 380/1080/2 372/620/2 369/1081/2 +f 374/1082/62 395/1083/62 371/595/62 +f 375/1084/62 389/674/62 392/1085/62 +f 368/1086/62 344/1087/62 382/1088/62 +f 400/1089/177 406/1090/177 399/1091/177 +f 64/1092/4 58/1093/4 57/138/4 +f 728/1094/176 692/1095/176 716/1096/176 +f 358/1097/2 370/1098/2 351/1099/2 +f 365/1100/2 22/1101/2 23/1102/2 +f 729/1068/1 718/1103/1 717/552/1 +f 732/1104/176 696/3/176 720/1105/176 +f 366/1106/2 23/1102/2 24/1107/2 +f 348/1108/2 26/1109/2 6/1110/2 +f 394/1111/3 51/1112/3 52/1113/3 +f 711/1114/8 699/1115/8 723/1077/8 +f 704/1116/1 693/1117/1 692/1118/1 +f 434/571/62 423/1119/62 427/694/62 +f 393/1120/3 3/1121/3 51/1112/3 +f 382/1088/62 367/1122/62 368/1086/62 +f 379/1123/62 359/1124/62 388/1125/62 +f 706/1126/1 695/1127/1 694/1128/1 +f 395/1129/3 52/1113/3 53/1130/3 +f 363/1131/2 20/548/2 21/1132/2 +f 396/1133/3 53/1130/3 54/560/3 +f 702/1134/1 691/1135/1 690/1136/1 +f 368/1137/2 25/1138/2 26/1109/2 +f 726/1139/176 690/1140/176 714/1141/176 +f 701/1142/8 713/529/8 689/1143/8 +f 360/634/1 352/578/1 354/1144/1 +f 700/1145/1 689/1146/1 688/1147/1 +f 43/105/5 20/1148/5 13/1149/5 +f 2/1150/6 7/1151/6 1/1152/6 +f 721/1074/1 710/539/1 709/33/1 +f 49/1153/5 7/1154/5 8/1155/5 +f 9/1156/5 10/25/5 11/1157/5 +f 81/119/5 92/5/5 85/146/5 +f 10/20/1 18/80/1 12/1158/1 +f 18/1159/5 16/1160/5 17/1161/5 +f 17/1161/5 37/51/5 46/53/5 +f 705/1162/8 717/552/8 693/1163/8 +f 11/1157/5 19/1164/5 9/1156/5 +f 698/1165/1 687/1166/1 686/1167/1 +f 727/1071/1 716/1096/1 715/544/1 +f 731/534/1 720/1105/1 719/532/1 +f 367/1168/2 24/1107/2 25/1138/2 +f 361/1169/3 56/551/3 19/8/3 +f 49/1153/1 73/12/1 34/1170/1 +f 48/108/3 42/1171/3 41/106/3 +f 75/1172/5 79/1173/5 78/41/5 +f 40/569/5 25/1174/5 39/72/5 +f 28/43/2 16/1175/2 9/1176/2 +f 723/1077/1 712/542/1 711/1114/1 +f 384/644/3 390/1177/3 383/618/3 +f 415/588/1 391/1178/1 376/1179/1 +f 421/1180/62 417/1181/62 420/1182/62 +f 364/1183/2 21/1132/2 22/1101/2 +f 419/1184/178 417/1181/178 418/1185/178 +f 364/642/62 383/1186/62 386/640/62 +f 412/639/178 410/1187/178 411/574/178 +f 361/1188/62 353/1189/62 351/1190/62 +f 356/669/62 362/1191/62 355/670/62 +f 701/1192/62 700/1193/62 343/1194/62 +f 436/1195/2 423/1196/2 424/1197/2 +f 358/1198/62 360/1199/62 359/1124/62 +f 725/1063/1 714/1141/1 713/529/1 +f 349/1200/6 344/1201/6 343/1202/6 +f 399/1091/1 387/662/1 380/1203/1 +f 437/625/1 424/1204/1 428/1205/1 +f 405/1206/62 401/1207/62 404/621/62 +f 370/1098/2 380/1080/2 369/1081/2 +f 373/665/62 394/1208/62 374/1082/62 +f 403/623/6 379/1123/6 388/1125/6 +f 450/686/183 446/1209/294 448/1210/295 +f 423/1119/62 432/607/62 424/609/62 +f 351/1190/62 353/1189/62 352/597/62 +f 349/1211/62 391/1178/62 350/1212/62 +f 448/1210/295 441/1213/6 444/1214/6 +f 419/1184/6 375/1084/6 392/1085/6 +f 730/1215/176 694/1216/176 718/1103/176 +f 708/1/1 348/1217/1 6/2/1 +f 88/4/2 91/110/2 92/5/2 +f 346/7/3 361/1169/3 19/8/3 +f 80/10/4 79/1173/4 74/11/4 +f 30/13/5 27/63/5 55/14/5 +f 54/15/5 53/566/5 29/16/5 +f 35/17/6 68/112/6 69/18/6 +f 10/20/7 9/1218/7 16/21/7 +f 4/24/5 11/1157/5 10/25/5 +f 10/25/5 12/77/5 5/23/5 +f 12/77/5 14/35/5 5/23/5 +f 40/26/3 49/1219/3 8/27/3 +f 33/29/6 76/40/6 77/30/6 +f 697/32/8 721/1074/8 709/33/8 +f 14/35/5 13/78/5 20/36/5 +f 6/1220/5 2/38/5 696/1221/5 +f 2/38/5 1/1222/5 691/39/5 +f 696/1221/5 2/38/5 695/1223/5 +f 1/1222/5 3/1224/5 685/1225/5 +f 686/1226/5 687/1227/5 1/1222/5 +f 687/1227/5 688/1228/5 1/1222/5 +f 1/1222/5 685/1225/5 686/1226/5 +f 695/1223/5 2/38/5 694/1229/5 +f 693/1230/5 694/1229/5 2/38/5 +f 693/1230/5 2/38/5 692/37/5 +f 689/1231/5 690/1232/5 1/1222/5 +f 690/1232/5 691/39/5 1/1222/5 +f 1/1222/5 688/1228/5 689/1231/5 +f 76/40/9 75/1172/9 78/41/9 +f 38/42/2 37/1233/2 28/43/2 +f 59/45/5 58/1093/5 63/46/5 +f 41/48/5 23/58/5 22/49/5 +f 37/51/6 60/94/6 61/52/6 +f 52/54/5 51/60/5 31/55/5 +f 42/57/5 24/73/5 23/58/5 +f 1/59/5 31/55/5 51/60/5 +f 56/62/5 55/14/5 27/63/5 +f 45/65/5 38/139/5 35/17/5 +f 32/66/2 33/1234/2 36/67/2 +f 46/69/3 45/107/3 44/70/3 +f 39/72/5 25/1174/5 24/73/5 +f 67/74/5 66/92/5 71/75/5 +f 13/79/10 12/1158/10 18/80/10 +f 31/82/2 1/1235/2 7/83/2 +f 86/85/5 91/110/5 90/86/5 +f 43/71/3 13/1236/3 17/88/3 +f 90/86/3 84/1237/3 83/89/3 +f 72/91/4 71/75/4 66/92/4 +f 60/94/9 59/45/9 62/47/9 +f 101/95/1 100/159/1 97/96/1 +f 39/98/3 42/1171/3 47/99/3 +f 36/67/2 35/1238/2 30/101/2 +f 47/102/1 72/91/1 65/93/1 +f 34/84/2 33/1234/2 32/66/2 +f 50/100/3 49/1219/3 40/26/3 +f 44/50/5 22/49/5 21/104/5 +f 41/106/3 44/70/3 45/107/3 +f 84/109/6 90/86/6 91/110/6 +f 68/112/9 67/74/9 70/76/9 +f 113/113/11 129/149/22 131/114/12 +f 85/116/6 96/124/6 93/117/6 +f 81/119/5 82/87/5 90/86/5 +f 104/120/14 105/147/15 108/121/15 +f 86/123/3 95/132/3 96/124/3 +f 114/115/13 131/114/12 122/126/17 +f 81/128/2 93/117/2 94/129/2 +f 82/131/1 94/129/1 95/132/1 +f 87/134/1 92/5/1 89/90/1 +f 99/136/6 104/120/14 106/122/16 +f 95/132/5 94/129/5 93/117/5 +f 45/65/1 64/1092/1 57/138/1 +f 98/141/3 97/1239/3 103/142/3 +f 103/142/3 105/1240/3 99/140/3 +f 105/1240/3 104/1241/3 99/140/3 +f 125/143/18 127/1242/19 112/144/19 +f 85/146/5 92/5/5 91/110/5 +f 105/147/15 103/1243/21 107/148/21 +f 112/144/19 127/1242/19 129/149/22 +f 121/150/23 124/180/44 138/151/24 +f 127/153/26 125/170/35 135/154/27 +f 122/156/17 123/163/31 110/157/29 +f 107/148/21 103/1243/21 97/96/5 +f 114/162/30 109/1244/30 110/1245/30 +f 110/1245/30 111/1246/30 114/162/30 +f 111/1246/30 112/160/30 114/162/30 +f 123/163/31 125/143/18 111/145/20 +f 100/1247/2 101/1248/2 107/165/2 +f 101/1248/2 102/166/2 107/165/2 +f 102/166/2 106/1249/2 108/164/2 +f 130/167/32 115/183/47 134/168/33 +f 125/170/35 123/190/52 137/171/36 +f 119/172/6 120/236/74 116/173/37 +f 127/153/26 133/155/28 116/175/39 +f 131/177/41 120/204/57 117/178/42 +f 124/180/44 126/189/51 136/181/45 +f 132/182/46 119/198/55 115/183/47 +f 138/184/1 136/222/66 135/185/48 +f 115/174/38 116/173/37 133/187/50 +f 126/189/51 128/169/34 134/168/33 +f 123/190/52 122/179/43 117/178/42 +f 149/191/2 150/197/54 154/192/53 +f 150/194/5 144/200/5 140/195/5 +f 118/152/25 154/192/53 150/197/54 +f 146/199/6 142/1250/6 140/195/6 +f 141/201/1 145/1251/1 143/202/56 +f 129/176/40 116/175/39 120/204/57 +f 147/205/58 148/1252/3 151/206/3 +f 172/208/48 126/228/48 124/209/60 +f 121/150/23 118/152/25 119/198/55 +f 152/207/59 151/206/3 141/211/3 +f 147/205/58 152/207/59 117/178/42 +f 167/213/62 121/1253/62 132/214/63 +f 143/216/64 154/192/53 118/152/25 +f 138/184/1 137/186/49 139/203/1 +f 117/178/42 152/207/59 139/212/61 +f 170/210/60 124/209/60 121/217/62 +f 156/220/65 155/1254/65 160/221/65 +f 160/221/65 159/1255/65 158/1256/65 +f 158/1256/65 157/219/65 160/221/65 +f 136/222/66 134/188/50 133/187/50 +f 153/193/2 154/192/53 143/216/64 +f 160/224/67 155/1257/68 168/225/68 +f 174/227/5 128/351/5 126/228/48 +f 146/229/2 144/200/2 150/194/54 +f 140/195/3 142/1258/3 148/231/3 +f 157/232/70 171/238/76 169/233/71 +f 119/172/6 150/1259/296 147/235/73 +f 158/237/75 173/240/75 171/238/76 +f 158/237/75 159/250/85 175/239/77 +f 167/241/78 164/276/97 184/242/79 +f 180/244/81 161/281/101 176/245/82 +f 184/247/1 183/295/109 181/248/48 +f 159/250/85 160/224/67 177/226/69 +f 196/251/86 190/268/3 192/252/3 +f 194/254/2 188/1260/2 186/255/2 +f 172/257/88 182/319/113 180/244/81 +f 156/234/72 169/233/71 168/258/68 +f 178/215/63 132/214/63 130/260/37 +f 179/262/89 162/271/37 161/263/90 +f 162/265/91 179/1261/297 173/266/92 +f 190/268/6 186/255/6 188/269/6 +f 162/271/37 166/297/111 165/272/6 +f 171/273/94 181/290/108 183/274/95 +f 164/276/97 165/289/107 196/277/86 +f 169/275/96 183/274/95 163/279/99 +f 161/281/101 165/289/107 178/282/102 +f 163/279/99 198/286/104 193/283/87 +f 187/285/2 197/310/2 198/286/104 +f 164/276/97 200/278/98 189/288/106 +f 165/289/107 164/276/97 167/241/78 +f 182/249/84 181/248/48 179/262/89 +f 173/266/92 179/1261/297 181/290/108 +f 206/291/3 257/321/3 258/292/3 +f 184/247/1 189/1262/56 185/294/1 +f 193/256/5 186/255/5 190/268/5 +f 193/296/110 196/1263/296 165/272/6 +f 204/298/6 210/311/6 211/299/6 +f 163/279/99 183/274/95 185/287/105 +f 166/284/103 162/265/91 175/267/93 +f 189/288/106 200/278/98 199/302/3 +f 207/304/1 212/314/1 209/305/1 +f 205/307/5 212/314/5 211/299/5 +f 200/278/98 196/277/86 195/309/3 +f 197/310/2 194/1264/2 193/283/87 +f 210/311/3 204/1265/3 203/312/3 +f 208/313/2 211/299/2 212/314/2 +f 205/316/6 258/292/6 255/317/6 +f 170/243/80 184/242/79 182/319/113 +f 202/320/1 256/326/1 257/321/1 +f 202/323/5 206/308/5 211/299/5 +f 201/324/5 209/305/5 212/314/5 +f 201/325/2 255/317/2 256/326/2 +f 229/329/6 220/1266/6 218/1267/6 +f 218/1267/6 224/330/6 229/329/6 +f 224/330/6 225/1268/6 230/328/6 +f 225/1268/6 228/1269/6 230/328/6 +f 273/333/3 263/1270/3 275/331/3 +f 263/1270/3 265/1271/3 275/331/3 +f 265/1271/3 267/1272/3 275/331/3 +f 267/1272/3 269/1273/3 275/331/3 +f 269/1273/3 271/1274/3 275/331/3 +f 224/334/114 218/1275/3 217/335/3 +f 201/324/5 202/323/5 210/311/5 +f 225/337/115 224/334/114 222/336/114 +f 222/340/1 217/1276/1 219/1277/1 +f 219/1277/1 226/341/1 222/340/1 +f 226/341/1 227/1278/1 223/339/1 +f 227/1278/1 221/1279/1 223/339/1 +f 220/342/2 229/370/116 226/343/116 +f 214/345/117 213/1280/117 259/346/117 +f 163/279/99 166/284/103 177/301/112 +f 237/348/3 242/426/3 254/349/3 +f 176/261/37 130/260/37 128/351/5 +f 185/294/1 189/1262/56 191/352/1 +f 221/354/5 227/369/118 230/355/118 +f 277/357/119 274/379/120 273/358/120 +f 282/360/122 281/438/122 280/361/122 +f 239/363/123 240/391/5 234/364/5 +f 277/366/2 281/1281/2 282/367/2 +f 227/369/118 226/343/116 229/370/116 +f 268/372/2 266/1282/2 278/368/2 +f 266/1282/2 264/1283/2 278/368/2 +f 264/1283/2 274/1284/2 278/368/2 +f 274/1284/2 277/366/2 278/368/2 +f 278/368/2 272/1285/298 270/371/2 +f 266/373/124 268/432/125 267/374/125 +f 228/356/5 225/337/115 223/338/115 +f 286/376/126 288/1286/127 287/377/127 +f 274/379/120 264/430/128 263/380/128 +f 270/381/129 272/435/130 271/382/130 +f 278/384/131 282/360/131 279/362/132 +f 237/348/3 245/350/3 250/386/3 +f 240/388/3 239/433/3 251/389/3 +f 240/391/5 241/395/133 235/392/133 +f 240/388/3 252/390/3 253/393/3 +f 241/395/133 242/401/134 236/396/134 +f 213/397/135 216/1287/135 262/398/135 +f 238/399/136 239/363/123 233/365/123 +f 242/401/134 237/1288/62 231/402/62 +f 249/403/134 244/1289/62 245/404/62 +f 214/406/5 215/427/5 257/321/5 +f 214/407/137 260/347/137 261/408/138 +f 237/410/62 238/399/136 232/400/136 +f 247/412/5 248/417/133 253/413/133 +f 246/415/123 247/412/5 252/414/5 +f 248/417/133 249/403/134 254/405/134 +f 246/420/2 243/1290/2 248/418/2 +f 243/1290/2 244/1291/2 248/418/2 +f 244/1291/2 249/1292/2 248/418/2 +f 261/408/5 260/347/5 259/346/5 +f 213/421/5 255/317/5 258/292/5 +f 244/423/62 243/434/136 250/424/136 +f 241/394/3 253/393/3 254/349/3 +f 216/422/5 258/292/5 257/321/5 +f 215/428/139 261/408/139 262/398/139 +f 264/430/128 266/1293/124 265/431/124 +f 268/432/125 270/381/129 269/383/129 +f 238/387/3 250/386/3 251/389/3 +f 243/434/136 246/415/123 251/416/123 +f 213/421/5 214/406/5 256/326/5 +f 272/435/140 278/384/140 275/385/140 +f 284/436/141 286/376/126 285/378/126 +f 276/359/121 280/361/142 281/438/142 +f 276/332/3 275/331/3 279/439/3 +f 293/443/3 283/1294/3 295/441/3 +f 283/1294/3 285/1295/3 295/441/3 +f 285/1295/3 287/1296/3 295/441/3 +f 287/1296/3 289/1297/3 295/441/3 +f 289/1297/3 291/1298/3 295/441/3 +f 288/444/127 290/449/143 289/445/143 +f 294/447/144 284/436/141 283/437/141 +f 290/449/143 292/456/145 291/450/145 +f 288/452/2 286/1299/2 298/453/2 +f 286/1299/2 284/1300/2 298/453/2 +f 284/1300/2 294/1301/2 298/453/2 +f 294/1301/2 297/465/2 298/453/2 +f 298/453/2 292/1302/2 290/451/2 +f 297/454/146 294/447/144 293/448/144 +f 292/456/147 298/463/147 295/457/148 +f 296/442/3 295/441/3 299/458/3 +f 302/460/149 301/464/149 300/461/149 +f 298/463/150 302/460/150 299/462/150 +f 296/455/146 300/461/151 301/464/151 +f 297/465/2 301/1303/2 302/466/2 +f 304/467/152 306/1304/153 305/468/153 +f 313/472/3 303/1305/3 315/470/3 +f 303/1305/3 305/1306/3 315/470/3 +f 305/1306/3 307/1307/3 315/470/3 +f 307/1307/3 309/1308/3 315/470/3 +f 309/1308/3 311/1309/3 315/470/3 +f 314/473/154 304/467/152 303/469/152 +f 306/475/153 308/481/156 307/476/156 +f 310/478/157 312/487/158 311/479/158 +f 308/481/156 310/478/157 309/480/157 +f 308/483/2 306/1310/2 318/484/2 +f 306/1310/2 304/1311/2 318/484/2 +f 304/1311/2 314/1312/2 318/484/2 +f 314/1312/2 317/496/2 318/484/2 +f 318/484/2 312/1313/2 310/482/2 +f 317/485/159 314/473/154 313/474/155 +f 312/487/160 318/494/160 315/488/160 +f 316/471/3 315/470/3 319/489/3 +f 322/491/161 321/495/161 320/492/161 +f 318/494/162 322/491/162 319/493/162 +f 316/486/159 320/492/299 321/495/163 +f 317/496/2 321/1314/2 322/497/2 +f 324/498/164 326/506/165 325/499/165 +f 333/503/3 323/1315/3 335/501/3 +f 323/1315/3 325/1316/3 335/501/3 +f 325/1316/3 327/1317/3 335/501/3 +f 327/1317/3 329/1318/3 335/501/3 +f 329/1318/3 331/1319/3 335/501/3 +f 334/504/166 324/498/164 323/500/164 +f 326/506/165 328/1320/167 327/507/167 +f 330/508/168 332/518/300 331/509/169 +f 328/511/167 330/508/168 329/510/168 +f 328/514/2 326/1321/2 338/515/2 +f 326/1321/2 324/1322/2 338/515/2 +f 324/1322/2 334/1323/2 338/515/2 +f 334/1323/2 337/527/2 338/515/2 +f 338/515/2 332/1324/2 330/513/2 +f 337/516/170 334/504/166 333/505/166 +f 332/518/171 338/525/171 335/519/171 +f 336/502/3 335/501/3 339/520/3 +f 342/522/172 341/526/172 340/523/172 +f 338/525/173 342/522/173 339/524/173 +f 336/517/170 340/523/174 341/526/174 +f 337/527/2 341/1325/2 342/528/2 +f 713/529/175 714/1141/175 690/530/175 +f 719/532/8 695/1326/8 707/533/8 +f 719/532/175 720/1105/175 696/535/175 +f 722/537/176 698/1327/176 686/538/176 +f 724/540/176 700/1328/176 688/541/176 +f 703/543/8 727/1071/8 715/544/8 +f 362/546/2 347/1329/2 5/547/2 +f 398/549/3 397/559/3 55/550/3 +f 717/552/175 718/1103/175 694/553/175 +f 709/33/175 710/539/175 686/555/175 +f 687/557/175 711/1114/175 712/542/175 +f 397/559/3 396/1133/3 54/560/3 +f 715/544/175 716/1096/175 692/561/175 +f 345/563/1 697/1330/1 685/564/1 +f 32/56/5 29/16/5 53/566/5 +f 2/567/5 6/1331/5 26/568/5 +f 47/102/5 36/103/5 33/29/5 +f 28/64/5 9/1332/5 19/570/5 +f 30/101/2 35/1238/2 38/42/2 +f 434/571/2 433/671/2 430/572/2 +f 411/574/6 410/1187/6 377/575/6 +f 358/577/7 351/1333/7 352/578/7 +f 362/580/62 363/641/62 385/581/62 +f 350/583/3 391/1334/3 382/584/3 +f 416/586/177 421/1180/177 422/587/177 +f 378/589/2 375/1335/2 374/590/2 +f 372/592/62 396/596/62 397/593/62 +f 371/595/62 395/1083/62 396/596/62 +f 352/597/62 353/1189/62 346/1336/62 +f 346/1336/62 347/598/62 352/597/62 +f 347/598/62 356/669/62 354/599/62 +f 382/584/3 391/1334/3 392/600/3 +f 374/590/2 375/1335/2 376/602/2 +f 386/604/3 387/619/3 388/605/3 +f 432/607/62 433/671/62 428/608/62 +f 384/610/62 383/1186/62 365/611/62 +f 455/613/69 456/650/77 473/614/85 +f 369/594/62 397/593/62 398/616/62 +f 383/618/3 390/1177/3 387/619/3 +f 372/620/2 377/1337/2 378/589/2 +f 404/621/178 401/1207/178 402/622/178 +f 435/624/62 436/1195/62 437/625/62 +f 431/627/1 434/571/1 429/628/1 +f 438/626/3 437/625/3 428/630/3 +f 385/606/3 388/605/3 359/632/3 +f 360/634/10 354/1144/10 355/635/10 +f 413/637/62 408/645/62 409/638/62 +f 386/640/62 385/581/62 363/641/62 +f 381/601/3 392/600/3 389/643/3 +f 408/645/177 413/637/177 414/646/177 +f 435/624/6 438/626/6 427/648/6 +f 456/650/77 451/1338/75 464/651/75 +f 445/652/3 439/1339/3 440/1340/3 +f 440/1340/3 441/653/3 445/652/3 +f 441/653/3 446/1341/3 447/654/3 +f 469/655/179 475/1342/301 477/656/180 +f 444/660/2 443/1343/2 449/1344/2 +f 443/1343/2 442/1345/2 449/1344/2 +f 449/1344/2 450/658/2 444/660/2 +f 366/612/62 367/1122/62 381/661/62 +f 377/575/62 380/1203/62 387/662/62 +f 343/663/62 345/1346/62 393/664/62 +f 425/666/3 426/1347/3 432/607/3 +f 373/603/2 376/602/2 349/667/2 +f 433/671/6 432/607/6 426/672/6 +f 407/647/1 414/646/1 389/674/1 +f 439/676/1 442/687/1 443/677/1 +f 454/679/68 469/695/68 467/680/72 +f 467/657/80 477/656/180 479/682/181 +f 449/684/182 445/1348/182 447/685/183 +f 439/676/62 445/1348/182 449/684/182 +f 458/688/184 462/794/218 461/689/6 +f 452/692/186 451/1349/186 456/693/186 +f 456/693/186 455/1350/186 454/1351/186 +f 454/1351/186 453/691/186 456/693/186 +f 433/671/62 434/571/62 427/694/62 +f 454/679/68 455/613/69 471/615/67 +f 453/681/71 467/680/72 465/696/70 +f 452/697/76 465/696/70 464/698/75 +f 458/700/187 475/1342/301 469/655/179 +f 476/702/188 457/723/198 472/703/112 +f 463/705/92 460/711/191 480/706/189 +f 459/708/190 462/728/200 473/709/82 +f 465/683/88 479/682/181 459/708/190 +f 460/711/191 461/734/201 492/712/192 +f 496/713/193 492/712/192 491/714/2 +f 480/716/1 479/756/208 477/717/194 +f 466/707/94 480/706/189 478/719/196 +f 468/720/96 478/719/196 476/702/188 +f 475/721/197 458/688/184 457/690/185 +f 457/723/198 461/734/201 474/724/93 +f 483/725/1 481/755/1 485/726/199 +f 462/728/200 458/700/187 471/701/102 +f 488/729/6 486/733/6 482/730/6 +f 492/732/62 489/784/62 482/730/62 +f 461/734/201 460/711/191 463/705/92 +f 466/735/202 468/781/194 514/736/194 +f 493/738/3 490/1352/3 489/739/203 +f 474/741/205 463/1353/5 509/742/5 +f 460/711/191 496/713/193 485/744/206 +f 459/708/190 494/740/204 489/739/203 +f 483/745/3 493/738/3 494/740/204 +f 492/732/192 486/733/2 488/747/2 +f 478/718/195 477/717/194 475/721/197 +f 485/744/206 496/713/193 495/715/2 +f 502/750/22 519/778/11 510/751/19 +f 463/753/5 466/735/202 512/737/202 +f 480/716/1 485/726/199 481/755/1 +f 502/759/209 497/1354/209 498/1355/209 +f 498/1355/209 499/1356/209 502/759/209 +f 499/1356/209 500/757/209 502/759/209 +f 510/760/19 511/769/20 498/761/18 +f 513/763/29 515/1357/17 500/764/17 +f 518/766/41 503/813/226 522/767/210 +f 511/769/20 513/763/29 499/765/31 +f 534/770/3 532/807/3 538/771/211 +f 500/764/17 515/1357/17 517/773/13 +f 459/708/190 479/682/181 481/746/207 +f 509/775/212 512/833/35 526/776/213 +f 501/774/12 517/773/13 519/778/11 +f 472/779/184 474/741/205 520/743/205 +f 468/781/194 470/913/62 516/782/62 +f 490/783/3 484/1358/3 482/730/3 +f 528/785/2 530/1359/2 536/786/2 +f 514/788/52 516/768/43 522/767/210 +f 526/790/1 524/816/229 523/791/194 +f 489/793/73 492/1360/302 461/689/6 +f 507/795/6 508/844/234 504/796/184 +f 506/777/214 542/919/253 538/798/211 +f 511/800/51 510/847/34 505/801/221 +f 515/803/23 521/815/228 504/804/223 +f 530/806/6 528/785/6 532/807/6 +f 509/775/212 506/777/214 507/799/220 +f 540/810/224 539/842/2 529/811/2 +f 520/809/40 507/799/220 503/813/226 +f 515/803/23 513/825/44 523/814/227 +f 524/816/229 522/821/230 521/817/230 +f 600/818/3 599/854/3 548/819/3 +f 503/797/219 504/796/184 521/817/230 +f 535/822/215 540/810/224 505/801/221 +f 531/824/232 542/919/253 506/777/214 +f 513/825/44 511/800/51 525/802/222 +f 551/826/1 554/836/1 549/827/1 +f 517/805/46 504/804/223 508/823/231 +f 553/830/6 552/872/6 546/831/6 +f 512/833/35 514/788/52 524/789/216 +f 544/834/62 552/872/62 553/830/62 +f 554/836/2 553/830/2 550/837/2 +f 541/839/3 542/919/253 531/824/232 +f 553/830/62 554/836/62 547/841/62 +f 535/822/215 536/1361/2 539/842/2 +f 507/795/6 538/1362/302 535/843/110 +f 526/790/1 525/792/217 527/845/1 +f 505/801/221 540/810/224 527/812/225 +f 519/829/233 508/823/231 505/801/221 +f 598/848/2 597/873/2 543/849/2 +f 559/851/3 560/1363/3 566/852/235 +f 599/854/1 598/848/1 544/855/1 +f 561/858/1 559/1364/1 564/859/1 +f 564/859/1 565/1365/1 568/857/1 +f 565/1365/1 563/1366/1 568/857/1 +f 563/1366/1 569/1367/1 568/857/1 +f 560/861/6 562/1368/6 571/862/6 +f 571/862/6 572/1369/6 570/1370/6 +f 570/1370/6 567/1371/6 571/862/6 +f 567/1371/6 566/860/6 571/862/6 +f 532/807/62 528/785/62 535/787/62 +f 607/864/3 605/1372/3 617/865/3 +f 605/1372/3 615/1373/3 617/865/3 +f 615/1373/3 618/976/3 617/865/3 +f 617/865/3 613/1374/3 611/1375/3 +f 611/1375/3 609/863/3 617/865/3 +f 564/853/235 566/852/235 567/866/236 +f 579/868/3 587/1376/3 596/869/3 +f 545/871/3 546/1377/3 552/872/3 +f 597/873/6 600/818/6 547/874/6 +f 568/876/237 571/903/237 562/877/2 +f 556/879/238 602/1378/238 601/880/238 +f 543/882/62 551/826/62 552/872/62 +f 554/836/62 551/826/62 543/882/62 +f 615/883/239 616/909/239 619/884/240 +f 576/886/62 582/939/62 581/887/136 +f 624/889/2 623/1379/2 619/890/2 +f 533/892/1 531/846/199 527/845/1 +f 572/894/242 569/904/242 563/895/62 +f 629/897/243 630/1380/243 628/898/244 +f 609/900/245 610/986/245 608/901/246 +f 571/903/237 568/876/237 569/904/242 +f 613/905/247 614/987/247 612/906/248 +f 605/908/249 606/994/249 616/909/239 +f 621/910/250 624/917/251 620/911/251 +f 470/913/62 472/779/184 518/780/184 +f 606/915/2 608/1381/2 620/891/2 +f 608/1381/2 610/1382/2 620/891/2 +f 610/1382/2 612/1383/2 620/891/2 +f 612/1383/2 614/1384/298 620/891/2 +f 620/891/2 619/890/2 616/914/2 +f 565/867/236 567/866/236 570/896/62 +f 622/916/252 623/988/252 624/917/252 +f 537/918/3 538/798/211 542/919/253 +f 592/920/3 587/1376/3 579/868/3 +f 575/888/136 581/887/136 580/922/123 +f 642/924/254 643/949/254 644/925/254 +f 573/927/5 579/1385/5 584/928/133 +f 595/930/3 594/1386/3 582/931/3 +f 582/931/3 594/1386/3 593/933/3 +f 601/880/255 604/979/255 558/935/255 +f 578/929/133 584/928/133 583/937/134 +f 577/938/134 583/937/134 582/939/62 +f 647/940/256 648/1387/256 646/941/257 +f 626/944/2 628/1388/2 640/945/2 +f 628/1388/2 630/1389/2 640/945/2 +f 630/1389/2 632/1390/2 640/945/2 +f 632/1390/2 634/1391/2 640/945/2 +f 640/945/2 639/999/2 636/943/2 +f 637/946/258 640/1000/259 634/947/259 +f 643/949/260 642/924/260 638/950/261 +f 596/952/133 591/956/133 590/953/134 +f 587/955/5 586/1392/5 591/956/133 +f 595/954/134 590/953/134 589/957/62 +f 574/923/123 580/922/123 579/959/5 +f 556/961/62 598/848/62 599/854/62 +f 586/965/2 585/1393/2 590/963/2 +f 585/1393/2 588/1394/2 590/963/2 +f 588/1394/2 589/1395/2 590/963/2 +f 594/958/62 589/957/62 588/966/136 +f 603/968/262 602/1378/263 556/969/263 +f 631/971/264 632/991/264 630/972/243 +f 627/899/244 628/898/244 626/974/265 +f 618/976/3 622/1396/3 621/977/3 +f 593/933/3 592/920/3 580/921/3 +f 599/854/62 600/818/62 558/978/62 +f 604/979/266 603/968/266 557/980/266 +f 596/869/3 595/930/3 583/932/3 +f 592/982/123 585/992/123 586/983/5 +f 600/818/62 597/873/62 555/985/62 +f 601/880/62 602/1378/62 603/968/62 +f 611/907/248 612/906/248 610/986/245 +f 555/985/62 597/873/62 598/848/62 +f 617/912/267 620/911/267 614/987/267 +f 623/988/268 622/916/268 618/885/241 +f 625/975/265 626/974/265 636/989/269 +f 633/948/270 634/947/270 632/991/264 +f 593/967/136 588/966/136 585/992/123 +f 607/993/246 608/1397/246 606/994/249 +f 627/996/3 625/1398/3 637/997/3 +f 625/1398/3 635/1399/3 637/997/3 +f 635/1399/3 638/1001/3 637/997/3 +f 637/997/3 633/1400/3 631/1401/3 +f 631/1401/3 629/995/3 637/997/3 +f 635/990/269 636/989/269 639/951/261 +f 644/998/2 643/1402/2 639/999/2 +f 641/926/271 644/925/271 640/1000/271 +f 638/1001/3 642/1403/3 641/1002/3 +f 649/1003/272 650/1014/272 648/1004/256 +f 647/1007/3 645/1404/3 657/1008/3 +f 645/1404/3 655/1405/3 657/1008/3 +f 655/1405/3 658/1025/3 657/1008/3 +f 657/1008/3 653/1406/3 651/1407/3 +f 651/1407/3 649/1006/3 657/1008/3 +f 653/1009/273 654/1021/273 652/1010/274 +f 645/942/257 646/941/257 656/1012/275 +f 651/1011/274 652/1010/274 650/1014/272 +f 646/1016/2 648/1408/2 660/1017/2 +f 648/1408/2 650/1409/2 660/1017/2 +f 650/1409/2 652/1410/2 660/1017/2 +f 652/1410/2 654/1411/2 660/1017/2 +f 660/1017/2 659/1030/2 656/1015/2 +f 655/1013/276 656/1012/275 659/1018/277 +f 657/1020/278 660/1024/278 654/1021/278 +f 663/1022/279 662/1027/303 658/1019/277 +f 661/1023/280 664/1028/280 660/1024/280 +f 658/1025/3 662/1412/3 661/1026/3 +f 662/1027/281 663/1022/281 664/1028/281 +f 664/1029/2 663/1413/2 659/1030/2 +f 669/1031/282 670/1414/282 668/1032/283 +f 673/1034/284 674/1052/304 672/1035/285 +f 667/1033/283 668/1032/283 666/1037/286 +f 665/1038/286 666/1037/286 676/1039/287 +f 667/1042/3 665/1415/3 677/1043/3 +f 665/1415/3 675/1416/3 677/1043/3 +f 675/1416/3 678/1056/3 677/1043/3 +f 677/1043/3 673/1417/3 671/1418/3 +f 671/1418/3 669/1041/3 677/1043/3 +f 671/1036/285 672/1035/285 670/1044/282 +f 666/1047/2 668/1419/2 680/1048/2 +f 668/1419/2 670/1420/2 680/1048/2 +f 670/1420/2 672/1421/2 680/1048/2 +f 672/1421/2 674/1422/2 680/1048/2 +f 680/1048/2 679/1061/2 676/1046/2 +f 675/1040/287 676/1039/287 679/1049/288 +f 677/1051/289 680/1055/289 674/1052/289 +f 683/1053/290 682/1058/290 678/1050/288 +f 681/1054/291 684/1059/291 680/1055/291 +f 678/1056/3 682/1423/3 681/1057/3 +f 682/1058/292 683/1053/292 684/1059/292 +f 684/1060/2 683/1424/2 679/1061/2 +f 702/1062/293 726/1139/293 725/1063/293 +f 708/1065/293 732/1104/293 731/534/293 +f 706/1067/293 730/1215/293 729/1068/293 +f 704/1070/293 728/1094/293 727/1071/293 +f 698/1073/293 722/537/293 721/1074/293 +f 699/1076/293 700/1425/293 724/540/293 +f 370/617/62 398/616/62 361/1078/62 +f 380/1080/2 377/1337/2 372/620/2 +f 374/1082/62 394/1208/62 395/1083/62 +f 375/1084/62 378/675/62 389/674/62 +f 368/1086/62 348/1426/62 344/1087/62 +f 400/1089/177 405/1206/177 406/1090/177 +f 64/1092/4 63/46/4 58/1093/4 +f 728/1094/176 704/1427/176 692/1095/176 +f 358/1097/2 379/1428/2 370/1098/2 +f 365/1100/2 364/1183/2 22/1101/2 +f 729/1068/1 730/1215/1 718/1103/1 +f 732/1104/176 708/1/176 696/3/176 +f 366/1106/2 365/1100/2 23/1102/2 +f 348/1108/2 368/1137/2 26/1109/2 +f 394/1111/3 393/1120/3 51/1112/3 +f 711/1114/8 687/1429/8 699/1115/8 +f 704/1116/1 705/1430/1 693/1117/1 +f 434/571/62 431/627/62 423/1119/62 +f 393/1120/3 345/1431/3 3/1121/3 +f 382/1088/62 381/661/62 367/1122/62 +f 379/1123/62 358/1198/62 359/1124/62 +f 706/1126/1 707/1432/1 695/1127/1 +f 395/1129/3 394/1111/3 52/1113/3 +f 363/1131/2 362/546/2 20/548/2 +f 396/1133/3 395/1129/3 53/1130/3 +f 702/1134/1 703/1433/1 691/1135/1 +f 368/1137/2 367/1168/2 25/1138/2 +f 726/1139/176 702/1434/176 690/1140/176 +f 701/1142/8 725/1063/8 713/529/8 +f 360/634/1 357/579/1 352/578/1 +f 700/1145/1 701/1435/1 689/1146/1 +f 43/105/5 21/104/5 20/1148/5 +f 2/1150/6 8/1436/6 7/1151/6 +f 721/1074/1 722/537/1 710/539/1 +f 49/1153/5 34/1170/5 7/1154/5 +f 81/119/5 89/90/5 92/5/5 +f 10/20/1 15/22/1 18/80/1 +f 18/1159/5 15/1437/5 16/1160/5 +f 17/1161/5 16/1160/5 37/51/5 +f 705/1162/8 729/1068/8 717/552/8 +f 11/1157/5 4/24/5 19/1164/5 +f 698/1165/1 699/1438/1 687/1166/1 +f 727/1071/1 728/1094/1 716/1096/1 +f 731/534/1 732/1104/1 720/1105/1 +f 367/1168/2 366/1106/2 24/1107/2 +f 361/1169/3 398/549/3 56/551/3 +f 49/1153/1 80/10/1 73/12/1 +f 48/108/3 47/99/3 42/1171/3 +f 75/1172/5 74/11/5 79/1173/5 +f 40/569/5 26/568/5 25/1174/5 +f 28/43/2 37/1233/2 16/1175/2 +f 723/1077/1 724/540/1 712/542/1 +f 384/644/3 389/643/3 390/1177/3 +f 415/588/1 422/587/1 391/1178/1 +f 421/1180/62 416/586/62 417/1181/62 +f 364/1183/2 363/1131/2 21/1132/2 +f 419/1184/178 420/1182/178 417/1181/178 +f 364/642/62 365/611/62 383/1186/62 +f 412/639/178 409/638/178 410/1187/178 +f 361/1188/62 346/1336/62 353/1189/62 +f 356/669/62 347/598/62 362/1191/62 +f 343/1194/62 344/1439/62 703/1440/62 +f 344/1439/62 348/1441/62 708/1442/62 +f 708/1442/62 707/1443/62 344/1439/62 +f 707/1443/62 706/1444/62 344/1439/62 +f 344/1439/62 706/1444/62 705/1445/62 +f 697/1446/62 345/1447/62 343/1194/62 +f 700/1193/62 699/1448/62 343/1194/62 +f 699/1448/62 698/1449/62 343/1194/62 +f 698/1449/62 697/1446/62 343/1194/62 +f 705/1445/62 704/1450/62 344/1439/62 +f 704/1450/62 703/1440/62 344/1439/62 +f 703/1440/62 702/1451/62 343/1194/62 +f 702/1451/62 701/1192/62 343/1194/62 +f 436/1195/2 435/624/2 423/1196/2 +f 358/1198/62 357/1452/62 360/1199/62 +f 725/1063/1 726/1139/1 714/1141/1 +f 349/1200/6 350/1453/6 344/1201/6 +f 399/1091/1 406/1090/1 387/662/1 +f 437/625/1 436/1195/1 424/1204/1 +f 405/1206/62 400/1089/62 401/1207/62 +f 370/1098/2 379/1428/2 380/1080/2 +f 373/665/62 393/664/62 394/1208/62 +f 403/623/6 402/622/6 379/1123/6 +f 450/686/183 447/685/183 446/1209/294 +f 423/1119/62 431/627/62 432/607/62 +f 349/1211/62 376/1179/62 391/1178/62 +f 448/1210/295 446/1209/294 441/1213/6 +f 419/1184/6 418/1185/6 375/1084/6 +f 730/1215/176 706/1454/176 694/1216/176 +o base +v -2.500000 1.000000 0.125000 +v 2.500000 1.000000 0.125000 +v -2.500000 1.000000 -0.125000 +v 2.500000 1.000000 -0.125000 +v -2.163461 1.000000 0.125000 +v -1.682692 1.000000 0.125000 +v -1.394231 1.000000 0.125000 +v -0.913461 1.000000 0.125000 +v -0.625000 1.000000 0.125000 +v -0.144231 1.000000 0.125000 +v 0.144231 1.000000 0.125000 +v 0.625000 1.000000 0.125000 +v 0.913462 1.000000 0.125000 +v 1.394231 1.000000 0.125000 +v 1.682693 1.000000 0.125000 +v 2.163462 1.000000 0.125000 +v -2.163461 1.000000 -0.125000 +v -1.682692 1.000000 -0.125000 +v -1.394231 1.000000 -0.125000 +v -0.913461 1.000000 -0.125000 +v -0.625000 1.000000 -0.125000 +v -0.144231 1.000000 -0.125000 +v 0.144231 1.000000 -0.125000 +v 0.625000 1.000000 -0.125000 +v 0.913462 1.000000 -0.125000 +v 1.394231 1.000000 -0.125000 +v 1.682693 1.000000 -0.125000 +v 2.163462 1.000000 -0.125000 +v -2.043269 0.875000 0.093750 +v -1.802885 0.875000 0.093750 +v -1.274038 0.875000 0.093750 +v -1.033654 0.875000 0.093750 +v -0.504808 0.875000 0.093750 +v -0.264423 0.875000 0.093750 +v 0.264423 0.875000 0.093750 +v 0.504808 0.875000 0.093750 +v 1.033654 0.875000 0.093750 +v 1.274039 0.875000 0.093750 +v 1.802885 0.875000 0.093750 +v 2.043269 0.875000 0.093750 +v -2.043269 0.875000 -0.093750 +v -1.802885 0.875000 -0.093750 +v -1.274038 0.875000 -0.093750 +v -1.033654 0.875000 -0.093750 +v -0.504808 0.875000 -0.093750 +v -0.264423 0.875000 -0.093750 +v 0.264423 0.875000 -0.093750 +v 0.504808 0.875000 -0.093750 +v 1.033654 0.875000 -0.093750 +v 1.274039 0.875000 -0.093750 +v 1.802885 0.875000 -0.093750 +v 2.043269 0.875000 -0.093750 +v -2.500000 1.000000 0.500000 +v -2.500000 1.000000 -0.500000 +v 2.500000 1.000000 0.500000 +v 2.500000 1.000000 -0.500000 +v -2.500000 0.000000 0.500000 +v -2.500000 0.000000 -0.500000 +v 2.500000 0.000000 0.500000 +v 2.500000 0.000000 -0.500000 +v 2.163462 1.062500 0.125000 +v 2.500000 1.062500 0.125000 +v 2.163462 1.062500 -0.125000 +v 2.500000 1.062500 -0.125000 +v -2.500000 1.062500 0.125000 +v -2.163461 1.062500 0.125000 +v -1.682692 1.062500 0.125000 +v -1.394231 1.062500 0.125000 +v -0.913461 1.062500 0.125000 +v -0.625000 1.062500 0.125000 +v -0.144231 1.062500 0.125000 +v 0.144231 1.062500 0.125000 +v 0.625000 1.062500 0.125000 +v 0.913462 1.062500 0.125000 +v 1.394231 1.062500 0.125000 +v 1.682693 1.062500 0.125000 +v -2.500000 1.062500 -0.125000 +v -2.163461 1.062500 -0.125000 +v -1.682692 1.062500 -0.125000 +v -1.394231 1.062500 -0.125000 +v -0.913461 1.062500 -0.125000 +v -0.625000 1.062500 -0.125000 +v -0.144231 1.062500 -0.125000 +v 0.144231 1.062500 -0.125000 +v 0.625000 1.062500 -0.125000 +v 0.913462 1.062500 -0.125000 +v 1.394231 1.062500 -0.125000 +v 1.682693 1.062500 -0.125000 +v -2.500000 1.062500 0.437500 +v 2.500000 1.062500 0.437500 +v 2.500000 1.062500 -0.437500 +v -2.500000 1.062500 -0.437500 +v -2.500000 4.499997 0.125000 +v 2.500000 4.499997 0.125000 +v -2.500000 4.499997 -0.125000 +v 2.500000 4.499997 -0.125000 +v 2.500000 4.999997 -0.125000 +v -2.500000 4.999997 -0.125000 +v 2.500000 4.999997 0.125000 +v -2.500000 4.999997 0.125000 +v 2.500000 4.584002 -0.341924 +v -2.500000 4.584002 -0.341924 +v 2.500000 4.584002 0.341924 +v -2.500000 4.584002 0.341924 +v 2.500000 4.999997 -0.341924 +v -2.500000 4.999997 -0.341924 +v 2.500000 4.999997 0.341924 +v -2.500000 4.999997 0.341924 +vt 0.995551 0.832453 +vt 0.903538 0.372388 +vt 0.995551 0.372388 +vt 0.004449 0.740332 +vt 0.464514 0.832345 +vt 0.004449 0.832345 +vt 0.894639 0.464401 +vt 0.434574 0.372388 +vt 0.894639 0.372388 +vt 0.883297 0.104396 +vt 0.914263 0.127399 +vt 0.883297 0.127399 +vt 0.241266 0.930716 +vt 0.264269 0.904173 +vt 0.264269 0.930716 +vt 0.221219 0.879319 +vt 0.209364 0.846141 +vt 0.221219 0.857200 +vt 0.909839 0.192797 +vt 0.883297 0.169794 +vt 0.909839 0.169794 +vt 0.485268 0.852835 +vt 0.505396 0.836879 +vt 0.502521 0.852835 +vt 0.473413 0.926350 +vt 0.496416 0.899808 +vt 0.496416 0.926350 +vt 0.195568 0.841244 +vt 0.162390 0.853100 +vt 0.151331 0.841244 +vt 0.318069 0.895275 +vt 0.338196 0.879319 +vt 0.341072 0.895275 +vt 0.514376 0.886013 +vt 0.514376 0.841776 +vt 0.499255 0.651053 +vt 0.525797 0.674057 +vt 0.499255 0.674057 +vt 0.370806 0.879319 +vt 0.358951 0.846141 +vt 0.370806 0.857200 +vt 0.502521 0.874953 +vt 0.288334 0.879319 +vt 0.271082 0.857200 +vt 0.288334 0.857200 +vt 0.238472 0.879319 +vt 0.238472 0.857200 +vt 0.320944 0.857200 +vt 0.338196 0.857200 +vt 0.184509 0.853100 +vt 0.162390 0.870352 +vt 0.388059 0.879319 +vt 0.388059 0.857200 +vt 0.146434 0.850224 +vt 0.482393 0.890909 +vt 0.505396 0.890909 +vt 0.300190 0.890378 +vt 0.300190 0.846141 +vt 0.200465 0.873228 +vt 0.200465 0.850224 +vt 0.399914 0.846141 +vt 0.291209 0.841244 +vt 0.320944 0.879319 +vt 0.309088 0.846141 +vt 0.390934 0.841244 +vt 0.268206 0.895275 +vt 0.291209 0.895275 +vt 0.250327 0.890378 +vt 0.250327 0.846141 +vt 0.367931 0.895275 +vt 0.390934 0.895275 +vt 0.485268 0.874953 +vt 0.473413 0.841776 +vt 0.241347 0.841244 +vt 0.218344 0.841244 +vt 0.184509 0.870352 +vt 0.151331 0.882208 +vt 0.218344 0.895275 +vt 0.350052 0.890378 +vt 0.350052 0.846141 +vt 0.271082 0.879319 +vt 0.259226 0.846141 +vt 0.341072 0.841244 +vt 0.318069 0.841244 +vt 0.894636 0.700521 +vt 0.888604 0.654741 +vt 0.894521 0.654738 +vt 0.841467 0.867572 +vt 0.836035 0.841924 +vt 0.841594 0.841952 +vt 0.522258 0.605178 +vt 0.499255 0.574212 +vt 0.522258 0.574212 +vt 0.209364 0.930716 +vt 0.232367 0.904173 +vt 0.232367 0.930716 +vt 0.469079 0.565313 +vt 0.434574 0.565313 +vt 0.434574 0.473300 +vt 0.535833 0.096462 +vt 0.501328 0.004449 +vt 0.593341 0.004449 +vt 0.836363 0.773181 +vt 0.836233 0.799101 +vt 0.807869 0.939936 +vt 0.888458 0.773182 +vt 0.888328 0.799102 +vt 0.859964 0.939936 +vt 0.841825 0.799136 +vt 0.894639 0.729014 +vt 0.888578 0.700511 +vt 0.842044 0.773229 +vt 0.836608 0.729026 +vt 0.842544 0.729014 +vt 0.836709 0.473339 +vt 0.807494 0.479148 +vt 0.801659 0.473300 +vt 0.894139 0.773229 +vt 0.888703 0.729026 +vt 0.836483 0.700510 +vt 0.842541 0.700521 +vt 0.835565 0.945607 +vt 0.835591 0.940063 +vt 0.893920 0.799137 +vt 0.836509 0.654740 +vt 0.842426 0.654737 +vt 0.888803 0.473339 +vt 0.859588 0.479148 +vt 0.853753 0.473300 +vt 0.893689 0.841952 +vt 0.836534 0.627597 +vt 0.842402 0.627598 +vt 0.887660 0.945608 +vt 0.887686 0.940063 +vt 0.893562 0.867572 +vt 0.888130 0.841925 +vt 0.836583 0.582562 +vt 0.842433 0.582567 +vt 0.893366 0.910233 +vt 0.888013 0.867546 +vt 0.836614 0.555582 +vt 0.842458 0.555588 +vt 0.842508 0.510644 +vt 0.836702 0.479181 +vt 0.842544 0.479188 +vt 0.836666 0.510638 +vt 0.894603 0.510644 +vt 0.888797 0.479181 +vt 0.894639 0.479188 +vt 0.893230 0.940089 +vt 0.887821 0.910207 +vt 0.894553 0.555588 +vt 0.888761 0.510638 +vt 0.799348 0.479155 +vt 0.799723 0.939943 +vt 0.894528 0.582568 +vt 0.888709 0.555582 +vt 0.841135 0.940088 +vt 0.835726 0.910207 +vt 0.841271 0.910232 +vt 0.851443 0.479155 +vt 0.851818 0.939943 +vt 0.894497 0.627599 +vt 0.888678 0.582562 +vt 0.835918 0.867546 +vt 0.888628 0.627597 +vt 0.233016 0.948456 +vt 0.251643 0.984178 +vt 0.233016 0.991391 +vt 0.014324 0.956233 +vt 0.443677 0.977701 +vt 0.014324 0.977701 +vt 0.082167 0.993341 +vt 0.103634 0.950405 +vt 0.103634 0.993341 +vt 0.211548 0.991391 +vt 0.122262 0.986127 +vt 0.032779 0.982491 +vt 0.462133 0.946769 +vt 0.462133 0.982491 +vt 0.476898 0.940769 +vt 0.047544 0.976491 +vt 0.047544 0.940769 +vt 0.503969 0.961382 +vt 0.074613 0.981357 +vt 0.074613 0.961382 +vt 0.443677 0.937606 +vt 0.443677 0.956233 +vt 0.483594 0.956906 +vt 0.054238 0.976881 +vt 0.054238 0.956906 +vt 0.211548 0.948456 +vt 0.192921 0.984178 +vt 0.192921 0.948456 +vt 0.082167 0.950405 +vt 0.063539 0.986127 +vt 0.063539 0.950405 +vt 0.014324 0.996329 +vt 0.903538 0.832453 +vt 0.464514 0.740333 +vt 0.434574 0.464401 +vt 0.914263 0.104396 +vt 0.241266 0.904173 +vt 0.209364 0.890378 +vt 0.883297 0.192797 +vt 0.482393 0.836879 +vt 0.473413 0.899808 +vt 0.525797 0.651053 +vt 0.358951 0.890378 +vt 0.146434 0.873228 +vt 0.399914 0.890378 +vt 0.268206 0.841244 +vt 0.309088 0.890378 +vt 0.367931 0.841244 +vt 0.473413 0.886012 +vt 0.195568 0.882208 +vt 0.241347 0.895275 +vt 0.259226 0.890378 +vt 0.499255 0.605178 +vt 0.209364 0.904173 +vt 0.526587 0.473300 +vt 0.492082 0.565313 +vt 0.526587 0.565313 +vt 0.593341 0.096462 +vt 0.558837 0.096462 +vt 0.501328 0.096462 +vt 0.802299 0.945455 +vt 0.854395 0.945455 +vt 0.251643 0.948456 +vt 0.122262 0.950405 +vt 0.032779 0.946769 +vt 0.476898 0.976491 +vt 0.503969 0.981358 +vt 0.014324 0.937606 +vt 0.483594 0.976881 +vt 0.443677 0.996329 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.2425 0.9701 +vn 0.7208 0.6931 0.0000 +vn 0.0000 0.2425 -0.9701 +vn -0.7208 0.6931 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.8321 0.3922 0.3922 +vn 0.4472 0.6325 0.6325 +vn -0.7071 0.0000 -0.7071 +vn -0.8321 0.3922 0.3922 +vn -0.7071 0.0000 0.7071 +vn -0.8321 0.3922 -0.3922 +vn -0.4472 0.6325 -0.6325 +vn 0.7071 0.0000 0.7071 +vn 0.8321 0.3922 -0.3922 +vn -0.4472 0.6325 0.6325 +vn 0.4472 0.6325 -0.6325 +vn 0.8944 0.4472 0.0000 +vn 0.5993 -0.4524 0.6604 +vn 0.8700 -0.4597 0.1780 +vn -0.8700 -0.4597 0.1780 +vn -0.8944 0.4472 0.0000 +vn -0.8700 -0.4597 -0.1780 +vn 0.8700 -0.4597 -0.1780 +vn -0.5993 -0.4524 -0.6604 +vn -0.5774 0.5774 0.5774 +vn -0.5993 -0.4524 0.6604 +vn 0.5774 0.5774 -0.5774 +vn 0.5993 -0.4524 -0.6604 +vn -0.5774 0.5774 -0.5774 +vn 0.5774 0.5774 0.5774 +s 1 +f 792/1455/305 789/1456/305 790/1457/305 +f 792/1458/306 786/1459/306 788/1460/306 +f 789/1461/307 787/1462/307 785/1463/307 +f 736/1464/308 748/1465/308 734/1466/308 +f 755/1467/308 742/1468/308 743/1469/308 +f 778/1470/309 753/1471/309 777/1472/309 +f 738/1473/308 751/1474/308 750/1475/308 +f 773/1476/310 737/1477/310 761/1478/310 +f 753/1479/308 740/1480/308 741/1481/308 +f 746/1482/311 769/1483/311 745/1484/311 +f 756/1485/312 768/1486/312 744/1487/312 +f 738/1488/311 761/1478/311 737/1489/311 +f 759/1490/308 746/1491/308 747/1492/308 +f 784/1493/309 759/1494/309 783/1495/309 +f 762/1496/308 773/1476/308 761/1478/308 +f 764/1497/308 775/1498/308 763/1499/308 +f 766/1500/308 777/1472/308 765/1501/308 +f 768/1486/308 779/1502/308 767/1503/308 +f 770/1504/308 781/1505/308 769/1483/308 +f 772/1506/308 783/1495/308 771/1507/308 +f 781/1505/310 745/1508/310 769/1483/310 +f 750/1509/312 762/1496/312 738/1510/312 +f 740/1511/311 763/1499/311 739/1512/311 +f 758/1513/312 770/1504/312 746/1514/312 +f 747/1515/311 772/1506/311 771/1507/311 +f 775/1498/310 739/1516/310 763/1499/310 +f 780/1517/309 755/1518/309 779/1502/309 +f 783/1495/310 747/1519/310 771/1507/310 +f 752/1520/312 764/1497/312 740/1521/312 +f 742/1522/311 765/1501/311 741/1523/311 +f 760/1524/312 772/1506/312 748/1525/312 +f 774/1526/309 749/1527/309 773/1476/309 +f 741/1528/310 777/1472/310 753/1529/310 +f 782/1530/309 757/1531/309 781/1505/309 +f 766/1500/312 754/1532/312 778/1470/312 +f 744/1533/311 767/1503/311 743/1534/311 +f 776/1535/309 751/1536/309 775/1498/309 +f 743/1537/310 779/1502/310 755/1538/310 +f 754/1539/307 814/1540/307 753/1541/307 +f 738/1542/306 800/1543/306 739/1544/306 +f 737/1545/308 735/1546/308 733/1547/308 +f 757/1548/308 744/1549/308 745/1550/308 +f 734/1551/313 787/1552/313 791/1553/313 +f 735/1554/314 790/1555/314 789/1556/314 +f 802/1557/308 801/1558/308 821/1559/308 +f 817/1560/308 818/1561/308 823/1562/308 +f 739/1544/306 801/1558/306 740/1563/306 +f 755/1564/307 815/1565/307 754/1539/307 +f 741/1566/306 803/1567/306 742/1568/306 +f 734/1569/315 822/1570/316 787/1571/317 +f 756/1572/307 816/1573/307 755/1564/307 +f 742/1568/306 804/1574/306 743/1575/306 +f 733/1576/318 821/1559/319 797/1577/318 +f 757/1578/307 817/1560/307 756/1572/307 +f 743/1575/306 805/1579/306 744/1580/306 +f 735/1581/320 824/1582/321 786/1583/322 +f 758/1584/307 818/1561/307 757/1578/307 +f 744/1580/306 806/1585/306 745/1586/306 +f 736/1587/323 823/1562/324 796/1588/323 +f 759/1589/307 819/1590/307 758/1584/307 +f 745/1586/306 807/1591/306 746/1592/306 +f 760/1593/307 820/1594/307 759/1589/307 +f 746/1592/306 808/1595/306 747/1596/306 +f 748/1597/306 794/1598/315 734/1599/315 +f 747/1596/306 793/1600/306 748/1597/306 +f 740/1563/306 802/1557/306 741/1566/306 +f 749/1601/307 809/1602/320 735/1603/320 +f 736/1604/323 795/1605/307 760/1593/307 +f 750/1606/307 810/1607/307 749/1601/307 +f 787/1608/317 821/1559/319 785/1609/325 +f 751/1610/307 811/1611/307 750/1606/307 +f 733/1612/318 798/1613/306 737/1614/306 +f 786/1615/322 823/1562/324 788/1616/326 +f 752/1617/307 812/1618/307 751/1610/307 +f 737/1614/306 799/1619/306 738/1542/306 +f 753/1541/307 813/1620/307 752/1617/307 +f 831/1621/327 835/1622/328 826/1623/329 +f 829/1624/308 832/1625/308 831/1626/308 +f 825/1627/330 830/1628/331 827/1629/332 +f 828/1630/333 831/1621/327 826/1623/329 +f 830/1628/331 834/1631/334 827/1629/332 +f 835/1632/328 840/1633/335 836/1634/336 +f 834/1635/334 837/1636/337 833/1637/338 +f 827/1638/332 833/1639/338 828/1640/333 +f 829/1624/327 838/1641/339 830/1642/331 +f 826/1643/329 836/1644/336 825/1645/330 +f 829/1646/327 833/1647/338 837/1648/337 +f 832/1649/331 836/1650/336 840/1651/335 +f 832/1625/331 839/1652/340 831/1626/327 +f 792/1455/305 791/1653/305 789/1456/305 +f 792/1458/306 790/1654/306 786/1459/306 +f 789/1461/307 791/1655/307 787/1462/307 +f 736/1464/308 760/1656/308 748/1465/308 +f 755/1467/308 754/1657/308 742/1468/308 +f 778/1470/309 754/1658/309 753/1471/309 +f 738/1473/308 739/1659/308 751/1474/308 +f 773/1476/310 749/1660/310 737/1477/310 +f 753/1479/308 752/1661/308 740/1480/308 +f 746/1482/311 770/1504/311 769/1483/311 +f 756/1485/312 780/1517/312 768/1486/312 +f 738/1488/311 762/1496/311 761/1478/311 +f 759/1490/308 758/1662/308 746/1491/308 +f 784/1493/309 760/1663/309 759/1494/309 +f 762/1496/308 774/1526/308 773/1476/308 +f 764/1497/308 776/1535/308 775/1498/308 +f 766/1500/308 778/1470/308 777/1472/308 +f 768/1486/308 780/1517/308 779/1502/308 +f 770/1504/308 782/1530/308 781/1505/308 +f 772/1506/308 784/1493/308 783/1495/308 +f 781/1505/310 757/1664/310 745/1508/310 +f 750/1509/312 774/1526/312 762/1496/312 +f 740/1511/311 764/1497/311 763/1499/311 +f 758/1513/312 782/1530/312 770/1504/312 +f 747/1515/311 748/1665/311 772/1506/311 +f 775/1498/310 751/1666/310 739/1516/310 +f 780/1517/309 756/1667/309 755/1518/309 +f 783/1495/310 759/1668/310 747/1519/310 +f 752/1520/312 776/1535/312 764/1497/312 +f 742/1522/311 766/1500/311 765/1501/311 +f 760/1524/312 784/1493/312 772/1506/312 +f 774/1526/309 750/1669/309 749/1527/309 +f 741/1528/310 765/1501/310 777/1472/310 +f 782/1530/309 758/1670/309 757/1531/309 +f 766/1500/312 742/1671/312 754/1532/312 +f 744/1533/311 768/1486/311 767/1503/311 +f 776/1535/309 752/1672/309 751/1536/309 +f 743/1537/310 767/1503/310 779/1502/310 +f 754/1539/307 815/1565/307 814/1540/307 +f 738/1542/306 799/1619/306 800/1543/306 +f 737/1545/308 749/1673/308 735/1546/308 +f 757/1548/308 756/1674/308 744/1549/308 +f 791/1553/313 792/1675/313 736/1676/313 +f 792/1675/313 788/1677/313 736/1676/313 +f 736/1676/313 734/1551/313 791/1553/313 +f 789/1556/314 785/1678/314 733/1679/314 +f 735/1554/314 786/1680/314 790/1555/314 +f 789/1556/314 733/1679/314 735/1554/314 +f 821/1559/308 822/1570/308 804/1574/308 +f 822/1570/308 794/1598/308 793/1600/308 +f 793/1600/308 808/1595/308 822/1570/308 +f 808/1595/308 807/1591/308 822/1570/308 +f 822/1570/308 807/1591/308 806/1585/308 +f 798/1613/308 797/1577/308 821/1559/308 +f 801/1558/308 800/1543/308 821/1559/308 +f 800/1543/308 799/1619/308 821/1559/308 +f 799/1619/308 798/1613/308 821/1559/308 +f 806/1585/308 805/1579/308 822/1570/308 +f 805/1579/308 804/1574/308 822/1570/308 +f 804/1574/308 803/1567/308 821/1559/308 +f 803/1567/308 802/1557/308 821/1559/308 +f 823/1562/308 824/1582/308 815/1565/308 +f 824/1582/308 809/1602/308 810/1607/308 +f 810/1607/308 811/1611/308 824/1582/308 +f 811/1611/308 812/1618/308 824/1582/308 +f 824/1582/308 812/1618/308 813/1620/308 +f 795/1605/308 796/1588/308 823/1562/308 +f 818/1561/308 819/1590/308 823/1562/308 +f 819/1590/308 820/1594/308 823/1562/308 +f 820/1594/308 795/1605/308 823/1562/308 +f 813/1620/308 814/1540/308 824/1582/308 +f 814/1540/308 815/1565/308 824/1582/308 +f 815/1565/308 816/1573/308 823/1562/308 +f 816/1573/308 817/1560/308 823/1562/308 +f 739/1544/306 800/1543/306 801/1558/306 +f 755/1564/307 816/1573/307 815/1565/307 +f 741/1566/306 802/1557/306 803/1567/306 +f 734/1569/315 794/1598/315 822/1570/316 +f 756/1572/307 817/1560/307 816/1573/307 +f 742/1568/306 803/1567/306 804/1574/306 +f 733/1576/318 785/1681/325 821/1559/319 +f 757/1578/307 818/1561/307 817/1560/307 +f 743/1575/306 804/1574/306 805/1579/306 +f 735/1581/320 809/1602/320 824/1582/321 +f 758/1584/307 819/1590/307 818/1561/307 +f 744/1580/306 805/1579/306 806/1585/306 +f 736/1587/323 788/1682/326 823/1562/324 +f 759/1589/307 820/1594/307 819/1590/307 +f 745/1586/306 806/1585/306 807/1591/306 +f 760/1593/307 795/1605/307 820/1594/307 +f 746/1592/306 807/1591/306 808/1595/306 +f 748/1597/306 793/1600/306 794/1598/315 +f 747/1596/306 808/1595/306 793/1600/306 +f 740/1563/306 801/1558/306 802/1557/306 +f 749/1601/307 810/1607/307 809/1602/320 +f 736/1604/323 796/1588/323 795/1605/307 +f 750/1606/307 811/1611/307 810/1607/307 +f 787/1608/317 822/1570/316 821/1559/319 +f 751/1610/307 812/1618/307 811/1611/307 +f 733/1612/318 797/1577/318 798/1613/306 +f 786/1615/322 824/1582/321 823/1562/324 +f 752/1617/307 813/1620/307 812/1618/307 +f 737/1614/306 798/1613/306 799/1619/306 +f 753/1541/307 814/1540/307 813/1620/307 +f 831/1621/327 839/1683/340 835/1622/328 +f 829/1624/308 830/1642/308 832/1625/308 +f 825/1627/330 832/1649/331 830/1628/331 +f 828/1630/333 829/1646/327 831/1621/327 +f 830/1628/331 838/1684/339 834/1631/334 +f 835/1632/328 839/1685/340 840/1633/335 +f 834/1635/334 838/1686/339 837/1636/337 +f 827/1638/332 834/1687/334 833/1639/338 +f 829/1624/327 837/1688/337 838/1641/339 +f 826/1643/329 835/1689/328 836/1644/336 +f 829/1646/327 828/1630/333 833/1647/338 +f 832/1649/331 825/1627/330 836/1650/336 +f 832/1625/331 840/1690/335 839/1652/340 diff --git a/src/main/resources/assets/hbm/models/doors/silo_hatch.obj b/src/main/resources/assets/hbm/models/doors/silo_hatch.obj new file mode 100644 index 000000000..e500f7adf --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/silo_hatch.obj @@ -0,0 +1,344 @@ +# Blender v2.79 (sub 0) OBJ File: 'silo_hatch.blend' +# www.blender.org +o Hatch +v -1.750000 0.750000 1.750000 +v 1.750000 0.750000 1.750000 +v -1.750000 0.750000 -1.750000 +v 1.750000 0.750000 -1.750000 +v -1.750000 1.000000 -1.750000 +v -1.750000 1.000000 1.750000 +v 1.750000 1.000000 1.750000 +v 1.750000 1.000000 -1.750000 +v -1.500000 0.750000 -1.500000 +v -1.500000 0.750000 1.500000 +v 1.500000 0.750000 1.500000 +v 1.500000 0.750000 -1.500000 +v -1.500000 0.500000 -1.500000 +v -1.500000 0.500000 1.500000 +v 1.500000 0.500000 1.500000 +v 1.500000 0.500000 -1.500000 +v -1.000000 0.750000 -1.500000 +v 1.000000 0.750000 -1.500000 +v -1.000000 0.750000 -2.000000 +v 1.000000 0.750000 -2.000000 +v -1.000000 0.500000 -2.000000 +v -1.000000 0.500000 -1.500000 +v 1.000000 0.500000 -1.500000 +v 1.000000 0.500000 -2.000000 +vt 0.588235 0.333333 +vt 0.970588 0.309524 +vt 1.000000 0.333333 +vt 1.000000 0.357143 +vt 0.588235 0.690476 +vt 0.588235 0.357143 +vt 1.000000 0.333333 +vt 0.588235 0.357143 +vt 0.588235 0.333333 +vt 1.000000 0.333333 +vt 0.588235 0.357143 +vt 0.588235 0.333333 +vt 1.000000 0.333333 +vt 0.588235 0.357143 +vt 0.588235 0.333333 +vt 0.970588 0.309524 +vt 0.970588 0.309524 +vt 0.970588 0.309524 +vt 0.617647 0.309524 +vt 0.970588 0.285714 +vt 0.617647 0.309524 +vt 0.970588 0.285714 +vt 0.617647 0.309524 +vt 0.970588 0.285714 +vt 0.617647 0.309524 +vt 0.970588 0.285714 +vt 0.970588 0.000000 +vt 0.617647 0.285714 +vt 0.617647 -0.000000 +vt 0.852941 0.809524 +vt 0.617647 0.761905 +vt 0.852941 0.761905 +vt 0.617647 0.738095 +vt 0.852941 0.690476 +vt 0.852941 0.738095 +vt 0.558824 0.761905 +vt 0.911765 0.738095 +vt 0.911765 0.761905 +vt 1.000000 0.690476 +vt 1.000000 0.357143 +vt 1.000000 0.357143 +vt 1.000000 0.357143 +vt 0.617647 0.285714 +vt 0.617647 0.285714 +vt 0.617647 0.285714 +vt 0.617647 0.809524 +vt 0.617647 0.690476 +vt 0.558824 0.738095 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 1/1/1 11/2/1 2/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/3/4 6/6/4 1/1/4 +f 4/10/5 7/11/5 2/12/5 +f 1/13/6 5/14/6 3/15/6 +f 2/12/1 12/16/1 4/10/1 +f 4/9/1 9/17/1 3/7/1 +f 3/15/1 10/18/1 1/13/1 +f 11/19/5 16/20/5 12/16/5 +f 9/21/6 14/22/6 10/18/6 +f 12/23/3 13/24/3 9/17/3 +f 10/25/4 15/26/4 11/2/4 +f 16/27/1 14/28/1 13/29/1 +f 17/30/2 20/31/2 19/32/2 +f 24/33/1 22/34/1 21/35/1 +f 18/36/5 24/33/5 20/31/5 +f 20/31/3 21/35/3 19/32/3 +f 19/32/6 22/37/6 17/38/6 +f 1/1/1 10/25/1 11/2/1 +f 7/4/2 8/39/2 5/5/2 +f 3/7/3 5/40/3 8/8/3 +f 2/3/4 7/4/4 6/6/4 +f 4/10/5 8/41/5 7/11/5 +f 1/13/6 6/42/6 5/14/6 +f 2/12/1 11/19/1 12/16/1 +f 4/9/1 12/23/1 9/17/1 +f 3/15/1 9/21/1 10/18/1 +f 11/19/5 15/43/5 16/20/5 +f 9/21/6 13/44/6 14/22/6 +f 12/23/3 16/45/3 13/24/3 +f 10/25/4 14/28/4 15/26/4 +f 16/27/1 15/26/1 14/28/1 +f 17/30/2 18/46/2 20/31/2 +f 24/33/1 23/47/1 22/34/1 +f 18/36/5 23/48/5 24/33/5 +f 20/31/3 24/33/3 21/35/3 +f 19/32/6 21/35/6 22/37/6 +o Frame +v -2.500000 0.000000 2.500000 +v 2.500000 0.000000 2.500000 +v -2.500000 0.000000 -2.500000 +v 2.500000 0.000000 -2.500000 +v -2.500000 0.250000 2.500000 +v 2.500000 0.250000 2.500000 +v -2.500000 0.250000 -2.500000 +v 2.500000 0.250000 -2.500000 +v -2.250000 1.000000 2.250000 +v 2.250000 1.000000 2.250000 +v -2.250000 1.000000 -2.250000 +v 2.250000 1.000000 -2.250000 +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 0.750000 -1.500000 +v -1.500000 0.750000 1.500000 +v 1.500000 0.750000 1.500000 +v 1.500000 0.750000 -1.500000 +v -1.750000 0.750000 1.750000 +v 1.750000 0.750000 1.750000 +v -1.750000 0.750000 -1.750000 +v 1.750000 0.750000 -1.750000 +v -1.750000 1.000000 1.750000 +v 1.750000 1.000000 1.750000 +v -1.750000 1.000000 -1.750000 +v 1.750000 1.000000 -1.750000 +v -1.000000 0.750000 -1.750000 +v 1.000000 0.750000 -1.750000 +v 1.000000 0.500000 -1.500000 +v -1.000000 0.500000 -1.500000 +v -1.000000 1.000000 -1.750000 +v 1.000000 1.000000 -1.750000 +v -1.000000 1.000000 -2.000000 +v 1.000000 1.000000 -2.000000 +v -1.000000 0.500000 -2.000000 +v 1.000000 0.500000 -2.000000 +v -1.000000 0.750000 -1.500000 +v 1.000000 0.750000 -1.500000 +vt 0.117647 0.761905 +vt 0.470588 0.761905 +vt 0.176471 0.809524 +vt 0.588235 0.500000 +vt 0.029412 0.571429 +vt -0.000000 0.500000 +vt 0.588235 0.476190 +vt 0.000000 0.500000 +vt 0.000000 0.476190 +vt 0.588235 0.476190 +vt -0.000000 0.476190 +vt 0.588235 0.476190 +vt -0.000000 0.500000 +vt -0.000000 0.476190 +vt 0.588235 0.476190 +vt -0.000000 0.500000 +vt -0.000000 0.476190 +vt 0.470588 0.380952 +vt 0.588235 0.500000 +vt 0.029412 0.571429 +vt 0.588235 0.500000 +vt 0.029412 0.571429 +vt 0.588235 0.500000 +vt 0.029412 0.571429 +vt 0.000000 0.000000 +vt 0.117647 0.380952 +vt 0.470588 0.833333 +vt 0.117647 0.761905 +vt 0.470588 0.761905 +vt 0.470588 0.833333 +vt 0.117647 0.761905 +vt 0.470588 0.761905 +vt 0.470588 0.833333 +vt 0.117647 0.761905 +vt 0.470588 0.761905 +vt 0.470588 0.095238 +vt 0.588235 0.000000 +vt 0.117647 0.095238 +vt 0.088235 0.857143 +vt 0.117647 0.833333 +vt 0.088235 0.857143 +vt 0.117647 0.833333 +vt 0.176471 0.857143 +vt 0.117647 0.833333 +vt 0.176471 0.833333 +vt 0.088235 0.857143 +vt 0.117647 0.833333 +vt 0.500000 0.857143 +vt 0.088235 0.880952 +vt 0.500000 0.857143 +vt 0.088235 0.880952 +vt 0.500000 0.857143 +vt 0.088235 0.880952 +vt 0.500000 0.619048 +vt 0.558824 0.571429 +vt 0.500000 0.952381 +vt 0.558824 1.000000 +vt 0.176471 0.928571 +vt 0.411765 0.976190 +vt 0.176471 0.976190 +vt 0.088235 0.619048 +vt 0.029412 1.000000 +vt 0.176471 0.880952 +vt 0.411765 0.928571 +vt 0.117647 0.928571 +vt 0.117647 0.904762 +vt 0.147059 0.904762 +vt 0.176471 0.880952 +vt 0.088235 0.857143 +vt 0.500000 0.857143 +vt 0.411765 0.880952 +vt 0.411765 0.857143 +vt 0.470588 0.833333 +vt 0.411765 0.833333 +vt 0.441176 0.904762 +vt 0.470588 0.928571 +vt 0.411765 0.809524 +vt 0.558824 0.571429 +vt 0.558824 0.571429 +vt 0.558824 0.571429 +vt 0.500000 0.880952 +vt 0.500000 0.880952 +vt 0.500000 0.880952 +vt 0.088235 0.952381 +vt 0.411765 0.880952 +vt 0.147059 0.880952 +vt 0.088235 0.880952 +vt 0.500000 0.880952 +vt 0.176471 0.952381 +vt 0.411765 0.952381 +vt 0.441176 0.880952 +vt 0.470588 0.904762 +vn 0.0000 0.0000 1.0000 +vn 0.9487 0.3162 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.9487 0.3162 0.0000 +vn 0.0000 0.3162 -0.9487 +vn 0.0000 0.3162 0.9487 +vn 0.0000 1.0000 0.0000 +s off +f 39/49/7 40/50/7 56/51/7 +f 32/52/8 34/53/8 30/54/8 +f 26/55/7 29/56/7 25/57/7 +f 28/58/9 30/54/9 26/59/9 +f 25/60/10 31/61/10 27/62/10 +f 27/63/11 32/64/11 28/65/11 +f 25/57/12 38/66/12 26/55/12 +f 29/67/13 35/68/13 31/61/13 +f 31/69/14 36/70/14 32/64/14 +f 30/71/15 33/72/15 29/56/15 +f 27/73/12 37/74/12 25/57/12 +f 42/75/11 38/76/11 37/77/11 +f 43/78/10 40/79/10 38/80/10 +f 41/81/9 37/82/9 39/83/9 +f 26/55/12 40/84/12 28/85/12 +f 28/85/12 39/86/12 27/73/12 +f 42/75/16 46/87/16 43/88/16 +f 43/78/16 48/89/16 44/90/16 +f 53/91/16 41/92/16 63/93/16 +f 41/81/16 45/94/16 42/95/16 +f 45/96/11 50/97/11 46/87/11 +f 46/98/10 52/99/10 48/89/10 +f 47/100/9 49/101/9 45/94/9 +f 50/102/16 33/72/16 34/103/16 +f 52/104/16 34/103/16 36/105/16 +f 61/106/7 60/107/7 59/108/7 +f 49/109/16 35/110/16 33/72/16 +f 56/111/16 62/112/16 61/106/16 +f 59/113/9 57/114/9 53/115/9 +f 57/116/7 47/117/7 53/91/7 +f 48/118/7 58/119/7 54/120/7 +f 35/110/16 60/107/16 36/105/16 +f 44/121/16 54/120/16 64/122/16 +f 54/123/10 60/124/10 62/112/10 +f 63/93/7 41/92/7 56/51/7 +f 41/92/7 39/49/7 56/51/7 +f 40/50/7 44/121/7 55/125/7 +f 44/121/7 64/122/7 55/125/7 +f 40/50/7 55/125/7 56/51/7 +f 32/52/8 36/126/8 34/53/8 +f 26/55/7 30/71/7 29/56/7 +f 28/58/9 32/52/9 30/54/9 +f 25/60/10 29/67/10 31/61/10 +f 27/63/11 31/69/11 32/64/11 +f 25/57/12 37/74/12 38/66/12 +f 29/67/13 33/127/13 35/68/13 +f 31/69/14 35/128/14 36/70/14 +f 30/71/15 34/103/15 33/72/15 +f 27/73/12 39/86/12 37/74/12 +f 42/75/11 43/88/11 38/76/11 +f 43/78/10 44/90/10 40/79/10 +f 41/81/9 42/95/9 37/82/9 +f 26/55/12 38/66/12 40/84/12 +f 28/85/12 40/84/12 39/86/12 +f 42/75/16 45/96/16 46/87/16 +f 43/78/16 46/98/16 48/89/16 +f 53/91/16 47/117/16 41/92/16 +f 41/81/16 47/100/16 45/94/16 +f 45/96/11 49/129/11 50/97/11 +f 46/98/10 50/130/10 52/99/10 +f 47/100/9 51/131/9 49/101/9 +f 50/102/16 49/109/16 33/72/16 +f 52/104/16 50/102/16 34/103/16 +f 61/106/7 62/112/7 60/107/7 +f 49/109/16 51/132/16 35/110/16 +f 56/111/16 55/133/16 62/112/16 +f 63/134/9 56/111/9 53/115/9 +f 56/111/9 61/106/9 53/115/9 +f 61/106/9 59/113/9 53/115/9 +f 57/116/7 51/135/7 47/117/7 +f 48/118/7 52/136/7 58/119/7 +f 35/110/16 51/132/16 59/108/16 +f 51/132/16 57/137/16 59/108/16 +f 58/138/16 52/104/16 60/107/16 +f 52/104/16 36/105/16 60/107/16 +f 35/110/16 59/108/16 60/107/16 +f 44/121/16 48/118/16 54/120/16 +f 55/133/10 64/139/10 54/123/10 +f 54/123/10 58/140/10 60/124/10 +f 62/112/10 55/133/10 54/123/10 diff --git a/src/main/resources/assets/hbm/models/doors/silo_hatch_large.obj b/src/main/resources/assets/hbm/models/doors/silo_hatch_large.obj new file mode 100644 index 000000000..c8f7bfe4a --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/silo_hatch_large.obj @@ -0,0 +1,576 @@ +# Blender v2.79 (sub 0) OBJ File: 'silo_hatch_large.blend' +# www.blender.org +o Hatch +v 2.750000 0.750000 -1.750000 +v 1.750000 0.750000 -2.750000 +v -2.750000 0.750000 -1.750000 +v -1.750000 0.750000 -2.750000 +v -2.750000 0.750000 1.750000 +v -1.750000 0.750000 2.750000 +v -2.750000 1.000000 -1.750000 +v -2.750000 1.000000 1.750000 +v 2.750000 1.000000 -1.750000 +v 2.750000 1.000000 1.750000 +v 1.750000 1.000000 2.750000 +v -1.750000 1.000000 2.750000 +v 2.750000 0.750000 1.750000 +v 1.750000 0.750000 2.750000 +v 1.750000 1.000000 -2.750000 +v -1.750000 1.000000 -2.750000 +v -1.250000 0.750000 -2.500000 +v 1.250000 0.750000 -2.500000 +v -1.250000 0.750000 -3.000000 +v 1.250000 0.750000 -3.000000 +v -1.250000 0.500000 -3.000000 +v -1.250000 0.500000 -2.500000 +v 1.250000 0.500000 -2.500000 +v 1.250000 0.500000 -3.000000 +v -1.500000 0.750000 -2.500000 +v 1.500000 0.750000 -2.500000 +v -1.500000 0.750000 2.500000 +v 1.500000 0.750000 2.500000 +v 2.500000 0.750000 1.500000 +v 2.500000 0.750000 -1.500000 +v -2.500000 0.750000 -1.500000 +v -2.500000 0.750000 1.500000 +v 1.500000 0.500000 -2.500000 +v 2.500000 0.500000 -1.500000 +v 2.500000 0.500000 1.500000 +v -1.500000 0.500000 2.500000 +v 1.500000 0.500000 2.500000 +v -2.500000 0.500000 -1.500000 +v -2.500000 0.500000 1.500000 +v -1.500000 0.500000 -2.500000 +vt 0.918367 0.620690 +vt 1.000000 0.603448 +vt 1.000000 0.620690 +vt 0.918367 0.620690 +vt 1.000000 0.603448 +vt 1.000000 0.620690 +vt 0.632653 0.620690 +vt 0.918367 0.603448 +vt 0.918367 0.620690 +vt 0.632653 0.620690 +vt 0.918367 0.603448 +vt 0.632653 0.620690 +vt 0.918367 0.603448 +vt 1.000000 0.603448 +vt 1.000000 0.620690 +vt 0.918367 0.620690 +vt 1.000000 0.603448 +vt 1.000000 0.620690 +vt 0.632653 0.620690 +vt 0.918367 0.603448 +vt 0.653061 0.586207 +vt 0.897959 0.586207 +vt 0.918367 1.000000 +vt 0.551020 0.931035 +vt 0.816327 0.224138 +vt 0.612245 0.189655 +vt 0.816327 0.189655 +vt 0.612245 0.172414 +vt 0.816327 0.137931 +vt 0.816327 0.172414 +vt 0.571429 0.189655 +vt 0.857143 0.172414 +vt 0.857143 0.189655 +vt 1.000000 0.586207 +vt 0.653061 0.586207 +vt 0.897959 0.586207 +vt 1.000000 0.586207 +vt 0.918367 0.586207 +vt 1.000000 0.586207 +vt 0.653061 0.586207 +vt 0.897959 0.586207 +vt 1.000000 0.586207 +vt 0.918367 0.586207 +vt 0.632653 0.603448 +vt 0.897959 0.586207 +vt 0.918367 0.586207 +vt 1.000000 0.568965 +vt 0.653061 0.568965 +vt 0.571429 0.293103 +vt 0.897959 0.224138 +vt 0.897959 0.568965 +vt 0.653061 0.586207 +vt 0.897959 0.568965 +vt 1.000000 0.568965 +vt 1.000000 0.568965 +vt 0.897959 0.568965 +vt 0.918367 0.586207 +vt 1.000000 0.568965 +vt 0.897959 0.568965 +vt 0.632653 0.603448 +vt 0.632653 0.603448 +vt 0.632653 0.603448 +vt 1.000000 0.689655 +vt 1.000000 0.931035 +vt 0.632653 1.000000 +vt 0.551020 0.689655 +vt 0.612245 0.224138 +vt 0.612245 0.137931 +vt 0.571429 0.172414 +vt 0.918367 0.568965 +vt 0.979592 0.293103 +vt 0.979592 0.500000 +vt 0.571429 0.500000 +vt 0.653061 0.224138 +vt 0.653061 0.568965 +vt 0.918367 0.568965 +vt 0.918367 0.568965 +vt 0.653061 0.568965 +vt 0.918367 0.568965 +vt 0.653061 0.568965 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 11/1/1 13/2/1 10/3/1 +f 16/4/2 3/5/2 7/6/2 +f 7/7/3 5/8/3 8/9/3 +f 12/10/4 14/11/4 11/1/4 +f 15/12/5 4/13/5 16/4/5 +f 8/9/6 6/14/6 12/15/6 +f 9/16/7 2/17/7 15/18/7 +f 10/19/8 1/20/8 9/16/8 +f 14/11/9 27/21/9 28/22/9 +f 15/23/10 7/24/10 12/10/10 +f 17/25/10 20/26/10 19/27/10 +f 24/28/9 22/29/9 21/30/9 +f 18/31/8 24/28/8 20/26/8 +f 20/26/5 21/30/5 19/27/5 +f 19/27/3 22/32/3 17/33/3 +f 14/11/9 29/34/9 13/2/9 +f 1/20/9 29/35/9 30/36/9 +f 26/37/9 1/20/9 30/38/9 +f 5/8/9 27/39/9 6/14/9 +f 5/8/9 31/40/9 32/41/9 +f 31/42/9 4/13/9 25/43/9 +f 2/44/9 25/45/9 4/13/9 +f 28/46/1 35/47/1 29/34/1 +f 36/48/9 38/49/9 33/50/9 +f 27/21/4 37/51/4 28/22/4 +f 26/52/5 40/53/5 25/45/5 +f 25/43/2 38/54/2 31/42/2 +f 30/38/7 33/55/7 26/37/7 +f 31/40/3 39/56/3 32/41/3 +f 32/57/6 36/58/6 27/39/6 +f 29/35/8 34/59/8 30/36/8 +f 11/1/1 14/11/1 13/2/1 +f 16/4/2 4/13/2 3/5/2 +f 7/7/3 3/60/3 5/8/3 +f 12/10/4 6/61/4 14/11/4 +f 15/12/5 2/44/5 4/13/5 +f 8/9/6 5/8/6 6/14/6 +f 9/16/7 1/20/7 2/17/7 +f 10/19/8 13/62/8 1/20/8 +f 14/11/9 6/61/9 27/21/9 +f 12/10/10 11/1/10 10/63/10 +f 10/63/10 9/64/10 15/23/10 +f 15/23/10 16/65/10 7/24/10 +f 7/24/10 8/66/10 12/10/10 +f 12/10/10 10/63/10 15/23/10 +f 17/25/10 18/67/10 20/26/10 +f 24/28/9 23/68/9 22/29/9 +f 18/31/8 23/69/8 24/28/8 +f 20/26/5 24/28/5 21/30/5 +f 19/27/3 21/30/3 22/32/3 +f 14/11/9 28/46/9 29/34/9 +f 1/20/9 13/62/9 29/35/9 +f 26/37/9 2/17/9 1/20/9 +f 5/8/9 32/57/9 27/39/9 +f 5/8/9 3/60/9 31/40/9 +f 31/42/9 3/5/9 4/13/9 +f 2/44/9 26/52/9 25/45/9 +f 28/46/1 37/70/1 35/47/1 +f 33/50/9 34/71/9 35/72/9 +f 35/72/9 37/51/9 36/48/9 +f 36/48/9 39/73/9 38/49/9 +f 38/49/9 40/74/9 33/50/9 +f 33/50/9 35/72/9 36/48/9 +f 27/21/4 36/48/4 37/51/4 +f 26/52/5 33/75/5 40/53/5 +f 25/43/2 40/76/2 38/54/2 +f 30/38/7 34/77/7 33/55/7 +f 31/40/3 38/78/3 39/56/3 +f 32/57/6 39/79/6 36/58/6 +f 29/35/8 35/80/8 34/59/8 +o Frame +v -2.500000 0.000000 1.500000 +v -2.500000 0.000000 -3.500000 +v 2.500000 0.000000 -3.500000 +v -3.250000 1.000000 -2.250000 +v -2.500000 0.250000 -3.500000 +v 2.500000 0.250000 -3.500000 +v -3.250000 1.000000 2.250000 +v -2.250000 1.000000 -3.250000 +v 2.250000 1.000000 -3.250000 +v -3.500000 0.250000 -2.500000 +v -1.500000 0.000000 -2.500000 +v 1.500000 0.000000 -2.500000 +v -1.500000 0.750000 -2.500000 +v -3.500000 0.250000 2.500000 +v 1.500000 0.750000 -2.500000 +v -3.500000 0.000000 -2.500000 +v -1.750000 0.750000 -2.750000 +v 1.750000 0.750000 -2.750000 +v -3.500000 0.000000 2.500000 +v -1.750000 1.000000 -2.750000 +v 1.750000 1.000000 -2.750000 +v -1.250000 0.750000 -2.750000 +v 1.250000 0.750000 -2.750000 +v 1.250000 0.500000 -2.500000 +v -1.250000 0.500000 -2.500000 +v -1.250000 1.000000 -2.750000 +v 1.250000 1.000000 -2.750000 +v -1.250000 1.000000 -3.000000 +v 1.250000 1.000000 -3.000000 +v -1.250000 0.500000 -3.000000 +v 1.250000 0.500000 -3.000000 +v -1.250000 0.750000 -2.500000 +v 1.250000 0.750000 -2.500000 +v -2.500000 0.000000 3.500000 +v 2.500000 0.000000 3.500000 +v -2.500000 0.250000 3.500000 +v 2.500000 0.250000 3.500000 +v -2.250000 1.000000 3.250000 +v 2.250000 1.000000 3.250000 +v -1.500000 0.000000 2.500000 +v 1.500000 0.000000 2.500000 +v -1.500000 0.750000 2.500000 +v 1.500000 0.750000 2.500000 +v -1.750000 0.750000 2.750000 +v 1.750000 0.750000 2.750000 +v -1.750000 1.000000 2.750000 +v 1.750000 1.000000 2.750000 +v 3.500000 0.000000 2.500000 +v 3.500000 0.000000 -2.500000 +v 3.500000 0.250000 2.500000 +v 3.500000 0.250000 -2.500000 +v 3.250000 1.000000 2.250000 +v 3.250000 1.000000 -2.250000 +v 2.500000 0.000000 1.500000 +v 2.500000 0.000000 -1.500000 +v 2.500000 0.750000 1.500000 +v 2.500000 0.750000 -1.500000 +v 2.750000 0.750000 1.750000 +v 2.750000 0.750000 -1.750000 +v 2.750000 1.000000 1.750000 +v 2.750000 1.000000 -1.750000 +v -2.500000 0.000000 -1.500000 +v -2.500000 0.750000 -1.500000 +v -2.500000 0.750000 1.500000 +v -2.750000 0.750000 1.750000 +v -2.750000 0.750000 -1.750000 +v -2.750000 1.000000 1.750000 +v -2.750000 1.000000 -1.750000 +vt 0.122449 0.827586 +vt 0.367347 0.827586 +vt 0.142857 0.862069 +vt 0.061224 0.655172 +vt 0.020408 0.931035 +vt 0.020408 0.620690 +vt 0.510204 0.896552 +vt 0.551020 0.620690 +vt 0.551020 0.931035 +vt 0.387755 0.896552 +vt 0.102041 0.913793 +vt 0.102041 0.896552 +vt 0.489796 0.482759 +vt 0.081633 0.500000 +vt 0.081633 0.482759 +vt 0.387755 0.896552 +vt 0.102041 0.913793 +vt 0.102041 0.896552 +vt 0.489796 0.500000 +vt 0.102041 0.551724 +vt 0.367347 0.879310 +vt 0.122449 0.879310 +vt 0.571429 0.413793 +vt 0.489796 0.137931 +vt 0.571429 0.068966 +vt 0.367347 0.879310 +vt 0.122449 0.879310 +vt 0.122449 0.827586 +vt 0.367347 0.827586 +vt 0.489796 -0.000000 +vt 0.163265 0.068966 +vt 0.081633 -0.000000 +vt 0.122449 0.827586 +vt 0.367347 0.827586 +vt 0.000000 0.068966 +vt 0.081633 0.344828 +vt 0.000000 0.413793 +vt 0.142857 0.896552 +vt 0.122449 0.879310 +vt 0.142857 0.879310 +vt 0.489796 0.482759 +vt 0.081633 0.500000 +vt 0.081633 0.482759 +vt 0.489796 0.500000 +vt 0.102041 0.551724 +vt 0.081633 0.500000 +vt 0.489796 0.500000 +vt 0.102041 0.551724 +vt 0.489796 0.482759 +vt 0.081633 0.482759 +vt 0.183673 0.948276 +vt 0.387755 0.982759 +vt 0.183673 0.982759 +vt 0.183673 0.913793 +vt 0.387755 0.948276 +vt 0.142857 0.948276 +vt 0.142857 0.931035 +vt 0.163265 0.931035 +vt 0.142857 0.913793 +vt 0.102041 0.896552 +vt 0.387755 0.896552 +vt 0.346939 0.913793 +vt 0.346939 0.896552 +vt 0.102041 1.000000 +vt 0.469388 1.000000 +vt 0.367347 0.879310 +vt 0.346939 0.879310 +vt 0.408163 0.931035 +vt 0.428571 0.948276 +vt 0.489796 0.482759 +vt 0.081633 0.500000 +vt 0.081633 0.482759 +vt 0.408163 0.413793 +vt 0.489796 0.500000 +vt 0.102041 0.551724 +vt 0.367347 0.879310 +vt 0.122449 0.827586 +vt 0.367347 0.827586 +vt 0.102041 0.896552 +vt 0.122449 0.879310 +vt 0.387755 0.896552 +vt 0.102041 0.913793 +vt 0.428571 0.586207 +vt 0.469388 0.551724 +vt 0.408163 0.068966 +vt 0.469388 0.827586 +vt 0.387755 0.879310 +vt 0.387755 0.827586 +vt 0.469388 0.896552 +vt 0.469388 0.913793 +vt 0.387755 0.913793 +vt 0.433673 0.965517 +vt 0.571429 0.551724 +vt 0.489796 0.551724 +vt 0.571429 0.482759 +vt 0.571429 0.500000 +vt 0.081633 0.137931 +vt 0.387755 0.827586 +vt 0.469388 0.879310 +vt 0.387755 0.879310 +vt 0.469388 0.896552 +vt 0.469388 0.913793 +vt 0.061224 0.896552 +vt 0.142857 0.965517 +vt 0.571429 0.500000 +vt 0.489796 0.551724 +vt 0.571429 0.482759 +vt 0.163265 0.413793 +vt 0.469388 0.879310 +vt 0.387755 0.827586 +vt 0.469388 0.827586 +vt 0.387755 0.879310 +vt 0.469388 0.896552 +vt 0.469388 0.913793 +vt 0.387755 0.913793 +vt 0.142857 0.586207 +vt 0.571429 0.551724 +vt 0.489796 0.551724 +vt 0.571429 0.482759 +vt 0.489796 0.344828 +vt 0.387755 0.879310 +vt 0.469388 0.827586 +vt 0.469388 0.879310 +vt 0.469388 0.896552 +vt 0.469388 0.913793 +vt 0.510204 0.655172 +vt 0.571429 0.551724 +vt 0.571429 0.500000 +vt 0.571429 0.482759 +vt 0.346939 0.862069 +vt 0.387755 0.913793 +vt 0.387755 0.913793 +vt 0.469388 0.551724 +vt 0.469388 0.551724 +vt 0.469388 0.551724 +vt 0.387755 0.913793 +vt 0.163265 0.913793 +vt 0.102041 0.913793 +vt 0.183673 0.965517 +vt 0.387755 0.965517 +vt 0.408163 0.913793 +vt 0.428571 0.931035 +vt 0.469388 0.879310 +vt 0.469388 0.827586 +vt 0.571429 0.551724 +vt 0.571429 0.500000 +vt 0.387755 0.827586 +vt 0.489796 0.551724 +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 0.3162 -0.9487 +vn 0.0000 -1.0000 0.0000 +vn -0.9487 0.3162 0.0000 +vn 0.9487 0.3162 0.0000 +vn 0.0000 0.3162 0.9487 +vn -0.7071 0.0000 0.7071 +vn 0.6396 0.4264 -0.6396 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.6396 0.4264 -0.6396 +vn -0.7071 0.0000 -0.7071 +vn -0.6396 0.4264 0.6396 +vn 0.6396 0.4264 0.6396 +s off +f 51/81/11 52/82/11 65/83/11 +f 107/84/12 44/85/12 47/86/12 +f 101/87/12 92/88/12 93/89/12 +f 106/90/13 107/91/13 105/92/13 +f 42/93/14 46/94/14 43/95/14 +f 98/96/15 101/97/15 99/98/15 +f 45/99/16 49/100/16 46/94/16 +f 96/101/12 99/98/12 97/102/12 +f 88/103/17 95/104/17 89/105/17 +f 103/106/12 105/92/12 104/107/12 +f 103/106/13 41/108/13 102/109/13 +f 43/110/17 51/111/17 42/112/17 +f 96/101/15 95/113/15 94/114/15 +f 56/115/17 41/116/17 59/117/17 +f 62/118/12 53/119/12 72/120/12 +f 89/121/13 90/122/13 88/123/13 +f 54/124/18 44/125/18 50/126/18 +f 91/127/19 92/128/19 90/122/19 +f 59/129/15 50/126/15 56/130/15 +f 70/131/11 69/132/11 68/133/11 +f 65/134/12 71/135/12 70/131/12 +f 68/136/13 66/137/13 62/138/13 +f 66/139/11 57/140/11 62/118/11 +f 58/141/11 67/142/11 63/143/11 +f 48/144/12 69/132/12 49/145/12 +f 55/146/12 63/143/12 73/147/12 +f 63/148/15 69/149/15 71/135/15 +f 75/150/11 76/151/11 74/152/11 +f 74/152/17 81/153/17 75/150/17 +f 77/154/20 78/155/20 76/151/20 +f 82/156/14 81/157/14 80/158/14 +f 82/156/12 85/159/12 83/160/12 +f 84/161/14 87/162/14 85/159/14 +f 87/163/12 78/155/12 79/164/12 +f 43/110/17 95/104/17 52/165/17 +f 95/166/21 55/167/21 52/168/21 +f 55/167/12 99/169/12 58/141/12 +f 58/141/21 101/170/21 61/171/21 +f 101/87/12 49/145/12 61/172/12 +f 91/127/22 49/173/22 93/174/22 +f 91/127/23 43/175/23 46/176/23 +f 56/115/17 51/111/17 102/177/17 +f 102/178/24 53/179/24 103/180/24 +f 106/90/12 53/179/12 57/181/12 +f 60/182/24 106/90/24 57/181/24 +f 48/144/12 108/183/12 60/184/12 +f 50/185/25 48/186/25 45/99/25 +f 56/187/26 45/99/26 42/93/26 +f 80/188/17 59/117/17 41/116/17 +f 104/189/23 80/190/23 41/191/23 +f 82/192/12 105/193/12 84/161/12 +f 84/161/23 107/194/23 86/195/23 +f 107/84/12 78/155/12 86/196/12 +f 54/124/27 78/197/27 47/198/27 +f 74/199/21 54/124/21 59/129/21 +f 94/200/17 75/150/17 81/153/17 +f 96/201/26 81/202/26 83/203/26 +f 98/96/12 83/203/12 85/204/12 +f 87/205/26 98/96/26 85/204/26 +f 79/164/12 100/206/12 87/163/12 +f 92/207/28 77/154/28 90/208/28 +f 77/154/24 88/209/24 90/208/24 +f 72/120/11 53/119/11 65/83/11 +f 53/119/11 51/81/11 65/83/11 +f 52/82/11 55/146/11 64/210/11 +f 55/146/11 73/147/11 64/210/11 +f 52/82/11 64/210/11 65/83/11 +f 107/84/12 108/183/12 44/85/12 +f 101/87/12 100/206/12 92/88/12 +f 106/90/13 108/211/13 107/91/13 +f 42/93/14 45/99/14 46/94/14 +f 98/96/15 100/212/15 101/97/15 +f 45/99/16 48/213/16 49/100/16 +f 96/101/12 98/96/12 99/98/12 +f 88/103/17 94/200/17 95/104/17 +f 103/106/12 106/90/12 105/92/12 +f 103/106/13 104/107/13 41/108/13 +f 43/110/17 52/165/17 51/111/17 +f 96/101/15 97/102/15 95/113/15 +f 56/115/17 102/177/17 41/116/17 +f 62/118/12 57/140/12 53/119/12 +f 89/121/13 91/127/13 90/122/13 +f 54/124/18 47/214/18 44/125/18 +f 91/127/19 93/215/19 92/128/19 +f 59/129/15 54/124/15 50/126/15 +f 70/131/11 71/135/11 69/132/11 +f 65/134/12 64/216/12 71/135/12 +f 72/217/13 65/134/13 62/138/13 +f 65/134/13 70/131/13 62/138/13 +f 70/131/13 68/136/13 62/138/13 +f 66/139/11 60/218/11 57/140/11 +f 58/141/11 61/171/11 67/142/11 +f 48/144/12 60/184/12 68/133/12 +f 60/184/12 66/219/12 68/133/12 +f 67/220/12 61/172/12 69/132/12 +f 61/172/12 49/145/12 69/132/12 +f 48/144/12 68/133/12 69/132/12 +f 55/146/12 58/141/12 63/143/12 +f 64/216/15 73/221/15 63/148/15 +f 63/148/15 67/222/15 69/149/15 +f 71/135/15 64/216/15 63/148/15 +f 75/150/11 77/154/11 76/151/11 +f 74/152/17 80/188/17 81/153/17 +f 77/154/20 79/164/20 78/155/20 +f 82/156/14 83/160/14 81/157/14 +f 82/156/12 84/161/12 85/159/12 +f 84/161/14 86/195/14 87/162/14 +f 87/163/12 86/196/12 78/155/12 +f 43/110/17 89/105/17 95/104/17 +f 95/166/21 97/223/21 55/167/21 +f 55/167/12 97/223/12 99/169/12 +f 58/141/21 99/169/21 101/170/21 +f 101/87/12 93/89/12 49/145/12 +f 91/127/22 46/176/22 49/173/22 +f 91/127/23 89/121/23 43/175/23 +f 56/115/17 42/112/17 51/111/17 +f 102/178/24 51/224/24 53/179/24 +f 106/90/12 103/180/12 53/179/12 +f 60/182/24 108/211/24 106/90/24 +f 48/144/12 44/85/12 108/183/12 +f 50/185/25 44/225/25 48/186/25 +f 56/187/26 50/185/26 45/99/26 +f 80/188/17 74/152/17 59/117/17 +f 104/189/23 82/192/23 80/190/23 +f 82/192/12 104/189/12 105/193/12 +f 84/161/23 105/193/23 107/194/23 +f 107/84/12 47/86/12 78/155/12 +f 54/124/27 76/226/27 78/197/27 +f 74/199/21 76/226/21 54/124/21 +f 94/200/17 88/103/17 75/150/17 +f 96/201/26 94/227/26 81/202/26 +f 98/96/12 96/201/12 83/203/12 +f 87/205/26 100/212/26 98/96/26 +f 79/164/12 92/88/12 100/206/12 +f 92/207/28 79/228/28 77/154/28 +f 77/154/24 75/150/24 88/209/24 diff --git a/src/main/resources/assets/hbm/models/doors/sliding_blast_door.dae b/src/main/resources/assets/hbm/models/doors/sliding_blast_door.dae new file mode 100644 index 000000000..5e24b46e3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/sliding_blast_door.dae @@ -0,0 +1,523 @@ + + + + + Blender User + Blender 2.90.0 commit date:2020-08-31, commit time:11:26, hash:0330d1af29c0 + + 2020-09-23T20:18:02 + 2020-09-23T20:18:02 + + Z_UP + + + + + + + door0_png + + + + + door0_png-surface + + + + + + 0 0 0 1 + + + + + + 1.45 + + + + + + + + + door0.png + + + + + + + + + + + + -0.09754508 -0.4903927 -0.242556 -0.08284217 -0.4164779 -0.317556 -0.1913416 -0.4619397 -0.242556 -0.1625014 -0.3923135 -0.317556 -0.2777849 -0.4157344 -0.242556 -0.2359154 -0.3530725 -0.317556 -0.3535535 -0.3535532 -0.242556 -0.3002642 -0.3002633 -0.317556 -0.4157346 -0.277785 -0.242556 -0.3530725 -0.2359158 -0.317556 -0.4619393 -0.1913415 -0.242556 -0.3923131 -0.1625013 -0.317556 -0.4903929 -0.09754502 -0.242556 -0.4164781 -0.08284199 -0.317556 -0.5004594 0.00187844 -0.2425482 -0.4246374 0 -0.317556 -0.4903926 0.09754526 -0.242556 -0.4164779 0.08284246 -0.317556 -0.4619393 0.1913417 -0.242556 -0.392313 0.1625016 -0.317556 -0.4157346 0.2777853 -0.242556 -0.3530727 0.2359158 -0.317556 -0.3535535 0.3535535 -0.242556 -0.3002639 0.3002639 -0.317556 -0.2777848 0.4157353 -0.242556 -0.2359154 0.3530734 -0.317556 -0.1913416 0.4619403 -0.242556 -0.1625011 0.3923142 -0.317556 -0.09754508 0.4903932 -0.242556 -0.08284294 0.4164784 -0.317556 -0.09754508 -0.4903927 0.207669 -0.08284217 -0.4164779 0.282669 -0.1913416 -0.4619397 0.207669 -0.1625014 -0.3923135 0.282669 -0.2777849 -0.4157344 0.207669 -0.2359154 -0.3530725 0.282669 -0.3535535 -0.3535532 0.207669 -0.3002642 -0.3002633 0.282669 -0.4157346 -0.277785 0.207669 -0.3530725 -0.2359158 0.282669 -0.4619393 -0.1913415 0.207669 -0.3923131 -0.1625013 0.282669 -0.4903929 -0.09754502 0.207669 -0.4164781 -0.08284199 0.282669 -0.4995414 -0.001877963 0.2076613 -0.4246374 0 0.282669 -0.4903926 0.09754526 0.207669 -0.4164779 0.08284246 0.282669 -0.4619393 0.1913417 0.207669 -0.392313 0.1625016 0.282669 -0.4157346 0.2777853 0.207669 -0.3530727 0.2359158 0.282669 -0.3535535 0.3535535 0.207669 -0.3002639 0.3002639 0.282669 -0.2777848 0.4157353 0.207669 -0.2359154 0.3530734 0.282669 -0.1913416 0.4619403 0.207669 -0.1625011 0.3923142 0.282669 -0.09754508 0.4903932 0.207669 -0.08284294 0.4164784 0.282669 -2.7797e-7 0.4163811 0.262669 -0.01996839 0.4226706 0.282669 -2.86847e-7 0.5 0.1794527 -0.01996773 0.4980335 0.207669 -2.7797e-7 0.4163811 -0.297556 -0.01996839 0.4226706 -0.317556 -2.86847e-7 0.5 -0.2143397 -0.01996773 0.4980335 -0.242556 -0.01996713 -0.4980334 -0.242556 2.86847e-7 -0.5 -0.2143397 2.63627e-7 -0.4163811 -0.297556 -0.01996779 -0.4226704 -0.317556 -0.01996713 -0.4980334 0.207669 2.86847e-7 -0.5 0.1794527 0.2795697 0.2081907 -0.152556 0.27957 -0.2081903 -0.152556 2.63627e-7 -0.4163811 0.262669 -0.01996779 -0.4226704 0.282669 0.2795697 0.2081907 0.117669 0.27957 -0.2081903 0.117669 + + + + + + + + + + -0.6343932 0.7730106 0 -0.634393 0.7730109 0 -0.6343933 0.7730106 0 -0.3918982 -0.5865173 0.7088112 -0.4987916 -0.498792 0.7088113 -0.4987914 -0.4987922 0.7088114 -0.1376165 -0.6918438 -0.7088117 -0.2699458 -0.6517022 -0.7088114 -0.1376158 -0.6918442 -0.7088114 -0.3918983 -0.5865174 -0.7088111 -0.2699457 -0.6517022 -0.7088115 -0.4987917 -0.4987921 -0.7088112 -0.3918983 -0.5865177 -0.7088109 -0.5865182 -0.3918968 -0.7088112 -0.4987915 -0.498792 -0.7088115 -0.6517023 -0.2699455 -0.7088114 -0.5865182 -0.3918969 -0.7088112 -0.6918433 -0.1376187 -0.7088116 -0.651702 -0.2699455 -0.7088116 -0.6914468 -0.1380745 -0.70911 -0.7036247 -0.00131309 -0.7105706 -0.7040166 0.001163065 -0.7101826 -0.6908355 0.1386065 -0.7096018 -0.651703 0.2699446 -0.7088111 -0.6914079 0.1398018 -0.7088093 -0.5865182 0.3918963 -0.7088115 -0.6517027 0.269945 -0.7088113 -0.5865183 0.3918968 -0.7088112 -0.4987924 0.4987913 -0.7088112 -0.391899 0.5865169 -0.7088112 -0.4987925 0.4987915 -0.7088112 -0.2699452 0.6517028 -0.7088111 -0.3918986 0.5865172 -0.7088111 -0.1376148 0.691845 -0.7088108 -0.2699449 0.6517028 -0.7088112 0 0 -1 0 2.23898e-7 -1 0 2.44089e-7 -1 -0.7730121 -0.6343914 0 -0.7730121 -0.6343913 0 -0.5865182 0.391897 0.7088111 -0.4987924 0.4987913 0.7088114 -0.4987923 0.4987916 0.7088112 -0.994697 0.1028484 3.86987e-4 -0.9956281 0.09337615 0.002420604 -0.9945092 0.1046497 0 -0.6922908 -0.1371796 0.7084598 -0.7072311 -0.002328574 0.7069787 -0.6920359 -0.1366496 0.7088112 -0.06930738 -0.7037019 -0.707107 -0.06930822 -0.7037011 -0.7071076 1 2.77687e-7 0 1 2.77687e-7 0 -0.6918437 0.1376188 0.7088114 -0.651703 0.2699447 0.7088111 -0.6928161 0.1364942 0.7080786 0.597267 -0.8020426 0 0.5972671 -0.8020426 0 0.597267 -0.8020426 0 -0.1376149 0.6918449 0.7088109 -0.06930512 0.7037024 0.7071066 -0.06930601 0.7037022 0.7071068 -0.3918989 0.5865168 0.7088112 -0.2699451 0.6517028 0.7088111 -0.3918989 0.586517 0.7088111 -0.9569385 -0.290291 0 -0.9569385 -0.290291 0 -0.9569385 -0.2902909 0 0 5.97108e-7 1 0 1.38861e-7 1 0 4.89142e-7 1 -0.5865181 -0.3918969 0.7088113 -0.6517022 -0.2699455 0.7088114 -0.5865182 -0.3918969 0.7088112 0.4604119 2.99879e-7 0.8877055 0.4604119 2.90584e-7 0.8877055 0.4604119 2.84085e-7 0.8877055 0.6818548 -0.5159897 0.518487 0.6818463 -0.5159928 0.5184951 0.6818447 -0.5159934 0.5184967 -0.6343903 -0.773013 0 -0.6343906 -0.7730128 0 -0.6343902 -0.7730129 0 -0.7067841 -3.6214e-4 0.7074292 -0.5865182 0.3918964 0.7088115 -0.1376146 0.6918448 0.7088111 -0.06930732 -0.7037019 0.7071068 -0.1376165 -0.6918439 0.7088115 -0.06930816 -0.7037014 0.7071073 0.6818493 0.5159911 0.5184929 0.6818571 0.5159883 0.5184854 0.6818478 0.5159917 0.5184944 0.7076703 4.96666e-7 0.7065428 0.7076709 4.36843e-7 0.7065423 0.7076709 4.35285e-7 0.7065423 1 6.44172e-7 0 -0.8819222 -0.471395 0 -0.8819223 -0.4713949 0 -0.8819222 -0.471395 0 -0.9949877 -0.09999227 0.001029133 -0.9953851 -0.09596174 1.64625e-4 -0.9949128 -0.1007338 0.001188278 -0.4713987 0.8819202 0 -0.290286 -0.9569399 0 -0.2902855 -0.9569401 0 -0.2902855 -0.9569402 0 -0.9569392 0.2902885 0 -0.9569393 0.2902885 0 -0.9569392 0.2902885 0 -0.1376149 0.691845 -0.7088108 -0.06930506 0.7037028 -0.7071062 0.6818575 0.5159879 -0.5184853 0.6818491 0.5159913 -0.5184928 0.6818476 0.515992 -0.5184943 0.6818549 -0.5159896 -0.518487 0.6818468 -0.5159925 -0.5184947 0.6818563 -0.5159891 -0.5184857 0.7076709 5.18025e-7 -0.7065423 0.7076714 4.75952e-7 -0.7065417 0.7076709 5.18853e-7 -0.7065423 1 0 0 1 0 0 0.4604119 3.24432e-7 -0.8877055 0.4604119 3.30949e-7 -0.8877055 0.4604119 3.19875e-7 -0.8877055 -0.8819226 0.4713943 0 -0.8819226 0.4713944 0 -0.8819226 0.4713943 0 0.597266 0.8020432 0 0.597266 0.8020431 0 0.5972661 0.8020432 0 -0.7730118 0.6343917 0 -0.2699457 -0.6517022 0.7088115 -0.2699459 -0.6517023 0.7088112 -0.2902847 0.9569404 0 -0.2902842 0.9569405 0 -0.2902848 0.9569404 0 -0.4714003 -0.8819194 0 -0.4713999 -0.8819196 0 -0.4713998 -0.8819196 0 -0.09801191 0.9951853 -3.8043e-7 -0.09801286 0.9951852 -2.13198e-6 -0.09801191 0.9951853 -5.68066e-7 -0.09801632 -0.9951849 1.60855e-7 -0.09801632 -0.9951849 -1.62177e-7 -0.09801626 -0.9951848 0 -0.6343929 0.7730109 0 -0.3918983 -0.5865173 0.7088112 0 6.7705e-7 -1 0 3.34205e-7 -1 0 -5.35771e-7 -1 0 -1.62897e-7 -1 0 -1.16722e-6 -1 0 -1.3466e-7 -1 0 -1.94201e-6 -1 0 7.26139e-6 -1 0 7.26151e-6 -1 0 -4.09277e-6 -1 0 -2.69318e-7 -1 -0.7730122 -0.6343914 0 -0.9957892 0.09163045 0.002795159 -0.6517027 0.2699446 0.7088115 0.5972672 -0.8020424 0 -0.2699449 0.6517025 0.7088115 -0.9569385 -0.290291 0 0 -3.99966e-7 1 0 -2.23898e-7 1 0 -2.77085e-7 1 0 0 1 0 5.35771e-7 1 0 0 1 0 0 1 0 1.0104e-6 1 0 7.26139e-6 1 0 2.08782e-7 1 0 -1.16722e-6 1 -0.6517019 -0.2699454 0.7088118 0.4604119 3.14074e-7 0.8877055 0.6818562 -0.5159893 0.5184856 -0.6343907 -0.7730127 0 -0.1376154 -0.6918442 0.7088115 0.6818584 0.5159878 0.5184841 0.7076703 4.97843e-7 0.7065428 1 6.44172e-7 0 -0.8819223 -0.4713948 0 -0.9954588 -0.09519404 0 -0.2902861 -0.9569399 0 -0.9569392 0.2902885 0 -0.06930601 0.7037022 -0.7071068 0.6818588 0.5159873 -0.518484 0.6818452 -0.5159931 -0.5184962 0.7076715 4.74856e-7 -0.7065417 1 0 0 0.4604119 3.40901e-7 -0.8877055 -0.8819226 0.4713944 0 0.597266 0.8020433 0 -0.2902842 0.9569406 0 -0.4714004 -0.8819195 0 -0.09801262 0.9951853 5.71151e-7 -0.09801316 0.9951852 2.14356e-6 -0.09801262 0.9951853 3.82497e-7 -0.0980162 -0.9951848 -6.08658e-7 -0.09801632 -0.9951849 0 -0.09801614 -0.9951848 6.03696e-7 + + + + + + + + + + 0.6835938 0.08984375 0.6914063 0.05078125 0.6914063 0.08984375 0.6132813 0.05078125 0.6210938 0.04296875 0.6210938 0.05078125 0.5976563 0.08984375 0.6054688 0.09765625 0.5976563 0.09765625 0.6132813 0.08984375 0.6054688 0.09765625 0.6054688 0.08984375 0.6132813 0.08984375 0.6210938 0.09765625 0.6132813 0.09765625 0.6289063 0.08984375 0.6210938 0.09765625 0.6210938 0.08984375 0.6367188 0.08984375 0.6289063 0.09765625 0.6289063 0.08984375 0.6367188 0.08984375 0.6445313 0.09765625 0.6367188 0.09765625 0.6445313 0.08984375 0.6523438 0.09765625 0.6445313 0.09765625 0.6523438 0.08984375 0.6601563 0.09765625 0.6523438 0.09765625 0.6679688 0.08984375 0.6601563 0.09765625 0.6601563 0.08984375 0.6679688 0.08984375 0.6757813 0.09765625 0.6679688 0.09765625 0.6757813 0.08984375 0.6835938 0.09765625 0.6757813 0.09765625 0.6914063 0.08984375 0.6835938 0.09765625 0.6835938 0.08984375 0.6992188 0.08984375 0.6914063 0.09765625 0.6914063 0.08984375 0.6992188 0.08984375 0.7070313 0.09765625 0.6992188 0.09765625 0.6445313 0.09873586 0.6523438 0.09765625 0.6132813 0.1367187 0.6210938 0.08984375 0.6289063 0.05078125 0.6289063 0.08984375 0.6757813 0.05078125 0.6835938 0.04296875 0.6835938 0.05078125 0.6523438 0.08984375 0.6601563 0.05078125 0.6601563 0.08984375 0.6445313 0.04296875 0.6523438 0.05078125 0.6445313 0.05078125 0.5976563 0.08984375 0.5898438 0.09765625 0.5898438 0.08984375 0.6015625 0.15625 0.59375 0.203125 0.59375 0.1640625 0.6601563 0.04296875 0.6679688 0.05078125 0.6601563 0.05078125 0.6328125 0.171875 0.6015625 0.2109375 0.6015625 0.15625 0.7070313 0.05078125 0.7148438 0.04296875 0.7148438 0.05078125 0.6914063 0.04296875 0.6992188 0.05078125 0.6914063 0.05078125 0.6367188 0.08984375 0.6445313 0.05078125 0.6445313 0.08984375 0.6747738 0.03576993 0.6679536 0.03945618 0.6914063 0.00390625 0.6289063 0.04296875 0.6367188 0.05078125 0.6289063 0.05078125 0.6132813 0.2265625 0.671875 0.1953125 0.6914063 0.2265625 0.5898438 0.05078125 0.5859375 0.04296875 0.5898438 0.04296875 0.6132813 0.08984375 0.6210938 0.05078125 0.6210938 0.08984375 0.6210938 0.04296875 0.6289063 0.05078125 0.6210938 0.05078125 0.6367188 0.05078125 0.6445313 0.04296875 0.6445313 0.05078125 0.6523438 0.04296875 0.6601563 0.05078125 0.6523438 0.05078125 0.6679688 0.05078125 0.6757813 0.04296875 0.6757813 0.05078125 0.6835938 0.04296875 0.6914063 0.05078125 0.6835938 0.05078125 0.6992188 0.05078125 0.7070313 0.04296875 0.7070313 0.05078125 0.5898438 0.04296875 0.5976563 0.05078125 0.5898438 0.05078125 0.71875 0.04296875 0.7148438 0.05078125 0.7148438 0.04296875 0.6914063 0 0.6132813 0.00390625 0.6132813 0 0.671875 0.171875 0.6328125 0.1953125 0.6328125 0.171875 0.6289063 0.08984375 0.6367188 0.05078125 0.6367188 0.08984375 0.6445313 0.08984375 0.6523438 0.05078125 0.6523438 0.08984375 0.6914063 0.08984375 0.6992188 0.05078125 0.6992188 0.08984375 0.6054688 0.08984375 0.5976563 0.05078125 0.6054688 0.05078125 0.6601563 0.08984375 0.6679688 0.05078125 0.6679688 0.08984375 0.7070313 0.08984375 0.7148438 0.09765625 0.7070313 0.09765625 0.7148438 0.08984375 0.71875 0.09765625 0.7148438 0.09765625 0.5898438 0.08984375 0.5859375 0.09765625 0.5859375 0.08984375 0.6914063 0.140625 0.6132813 0.1367187 0.6914063 0.1367187 0.703125 0.15625 0.7109375 0.203125 0.703125 0.2109375 0.671875 0.171875 0.6132813 0.140625 0.6914063 0.140625 0.6679688 0.08984375 0.6757813 0.05078125 0.6757813 0.08984375 0.703125 0.15625 0.671875 0.1953125 0.671875 0.171875 0.6757813 0.08984375 0.6835938 0.05078125 0.6835938 0.08984375 0.6054688 0.04296875 0.6132813 0.05078125 0.6054688 0.05078125 0.5976563 0.05078125 0.6054688 0.04296875 0.6054688 0.05078125 0.6992188 0.08984375 0.7070313 0.05078125 0.7070313 0.08984375 0.6132813 0.08984375 0.6054688 0.05078125 0.6132813 0.05078125 0.7070313 0.05078125 0.7148438 0.0546875 0.71875 0.05078125 0.5859375 0.08984375 0.5859375 0.05078125 0.5976563 0.08984375 0.6835938 0.08984375 0.6835938 0.05078125 0.6914063 0.05078125 0.6132813 0.05078125 0.6132813 0.04296875 0.6210938 0.04296875 0.5976563 0.08984375 0.6054688 0.08984375 0.6054688 0.09765625 0.6132813 0.08984375 0.6132813 0.09765625 0.6054688 0.09765625 0.6132813 0.08984375 0.6210938 0.08984375 0.6210938 0.09765625 0.6289063 0.08984375 0.6289063 0.09765625 0.6210938 0.09765625 0.6367188 0.08984375 0.6367188 0.09765625 0.6289063 0.09765625 0.6367188 0.08984375 0.6445313 0.08984375 0.6445313 0.09765625 0.6445313 0.08984375 0.6523438 0.08984375 0.6523438 0.09765625 0.6523438 0.08984375 0.6601563 0.08984375 0.6601563 0.09765625 0.6679688 0.08984375 0.6679688 0.09765625 0.6601563 0.09765625 0.6679688 0.08984375 0.6757813 0.08984375 0.6757813 0.09765625 0.6757813 0.08984375 0.6835938 0.08984375 0.6835938 0.09765625 0.6914063 0.08984375 0.6914063 0.09765625 0.6835938 0.09765625 0.6992188 0.08984375 0.6992188 0.09765625 0.6914063 0.09765625 0.6992188 0.08984375 0.7070313 0.08984375 0.7070313 0.09765625 0.6523438 0.09765625 0.6601563 0.09854209 0.6914063 0.1367187 0.6601563 0.09854209 0.6679148 0.1013388 0.6914063 0.1367187 0.6679148 0.1013388 0.6747011 0.10494 0.6914063 0.1367187 0.6747011 0.10494 0.6806643 0.1098146 0.6914063 0.1367187 0.6806643 0.1098146 0.685575 0.1157753 0.6914063 0.1367187 0.685575 0.1157753 0.6892446 0.1225928 0.6914063 0.1367187 0.6892446 0.1225928 0.6909218 0.1300054 0.6914063 0.1367187 0.6914063 0.1367187 0.6132813 0.1367187 0.6523438 0.09765625 0.6132813 0.1367187 0.6142691 0.1299437 0.6165477 0.1225457 0.6165477 0.1225457 0.6205933 0.1157407 0.6132813 0.1367187 0.6205933 0.1157407 0.6254902 0.1097899 0.6132813 0.1367187 0.6254902 0.1097899 0.6314379 0.1049224 0.6132813 0.1367187 0.6314379 0.1049224 0.6382079 0.101325 0.6132813 0.1367187 0.6382079 0.101325 0.6445313 0.09873586 0.6132813 0.1367187 0.6210938 0.08984375 0.6210938 0.05078125 0.6289063 0.05078125 0.6757813 0.05078125 0.6757813 0.04296875 0.6835938 0.04296875 0.6523438 0.08984375 0.6523438 0.05078125 0.6601563 0.05078125 0.6445313 0.04296875 0.6523438 0.04296875 0.6523438 0.05078125 0.5976563 0.08984375 0.5976563 0.09765625 0.5898438 0.09765625 0.6015625 0.15625 0.6015625 0.2109375 0.59375 0.203125 0.6601563 0.04296875 0.6679688 0.04296875 0.6679688 0.05078125 0.6328125 0.171875 0.6328125 0.1953125 0.6015625 0.2109375 0.7070313 0.05078125 0.7070313 0.04296875 0.7148438 0.04296875 0.6914063 0.04296875 0.6992188 0.04296875 0.6992188 0.05078125 0.6367188 0.08984375 0.6367188 0.05078125 0.6445313 0.05078125 0.6679536 0.03945618 0.6601563 0.04235351 0.6914063 0.00390625 0.6601563 0.04235351 0.6523438 0.04296875 0.6914063 0.00390625 0.6523438 0.04296875 0.6445313 0.04219973 0.6132813 0.00390625 0.6445313 0.04219973 0.6380147 0.03946441 0.6132813 0.00390625 0.6380147 0.03946441 0.6311754 0.03578418 0.6132813 0.00390625 0.6311754 0.03578418 0.6251654 0.03080129 0.6132813 0.00390625 0.6251654 0.03080129 0.620215 0.02470719 0.6132813 0.00390625 0.620215 0.02470719 0.6159337 0.01773637 0.6132813 0.00390625 0.6159337 0.01773637 0.6140136 0.01015651 0.6132813 0.00390625 0.6132813 0.00390625 0.6914063 0.00390625 0.6523438 0.04296875 0.6914063 0.00390625 0.6910508 0.01015782 0.6893759 0.01772797 0.6856948 0.02469295 0.6914063 0.00390625 0.6893759 0.01772797 0.6856948 0.02469295 0.6807643 0.03078502 0.6914063 0.00390625 0.6807643 0.03078502 0.6747738 0.03576993 0.6914063 0.00390625 0.6289063 0.04296875 0.6367188 0.04296875 0.6367188 0.05078125 0.6132813 0.2265625 0.6328125 0.1953125 0.671875 0.1953125 0.5898438 0.05078125 0.5859375 0.05078125 0.5859375 0.04296875 0.6132813 0.08984375 0.6132813 0.05078125 0.6210938 0.05078125 0.6210938 0.04296875 0.6289063 0.04296875 0.6289063 0.05078125 0.6367188 0.05078125 0.6367188 0.04296875 0.6445313 0.04296875 0.6523438 0.04296875 0.6601563 0.04296875 0.6601563 0.05078125 0.6679688 0.05078125 0.6679688 0.04296875 0.6757813 0.04296875 0.6835938 0.04296875 0.6914063 0.04296875 0.6914063 0.05078125 0.6992188 0.05078125 0.6992188 0.04296875 0.7070313 0.04296875 0.5898438 0.04296875 0.5976563 0.04296875 0.5976563 0.05078125 0.71875 0.04296875 0.71875 0.05078125 0.7148438 0.05078125 0.6914063 0 0.6914063 0.00390625 0.6132813 0.00390625 0.671875 0.171875 0.671875 0.1953125 0.6328125 0.1953125 0.6289063 0.08984375 0.6289063 0.05078125 0.6367188 0.05078125 0.6445313 0.08984375 0.6445313 0.05078125 0.6523438 0.05078125 0.6914063 0.08984375 0.6914063 0.05078125 0.6992188 0.05078125 0.6054688 0.08984375 0.5976563 0.08984375 0.5976563 0.05078125 0.6601563 0.08984375 0.6601563 0.05078125 0.6679688 0.05078125 0.7070313 0.08984375 0.7148438 0.08984375 0.7148438 0.09765625 0.7148438 0.08984375 0.71875 0.08984375 0.71875 0.09765625 0.5898438 0.08984375 0.5898438 0.09765625 0.5859375 0.09765625 0.6914063 0.140625 0.6132813 0.140625 0.6132813 0.1367187 0.703125 0.15625 0.7109375 0.1640625 0.7109375 0.203125 0.671875 0.171875 0.6328125 0.171875 0.6132813 0.140625 0.6679688 0.08984375 0.6679688 0.05078125 0.6757813 0.05078125 0.703125 0.15625 0.703125 0.2109375 0.671875 0.1953125 0.6757813 0.08984375 0.6757813 0.05078125 0.6835938 0.05078125 0.6054688 0.04296875 0.6132813 0.04296875 0.6132813 0.05078125 0.5976563 0.05078125 0.5976563 0.04296875 0.6054688 0.04296875 0.6992188 0.08984375 0.6992188 0.05078125 0.7070313 0.05078125 0.6132813 0.08984375 0.6054688 0.08984375 0.6054688 0.05078125 0.71875 0.05078125 0.71875 0.08984375 0.7070313 0.05078125 0.71875 0.08984375 0.7148438 0.08984375 0.7070313 0.08984375 0.7070313 0.05078125 0.71875 0.08984375 0.7070313 0.08984375 0.5898438 0.05078125 0.5976563 0.05078125 0.5859375 0.05078125 0.5976563 0.05078125 0.5976563 0.08984375 0.5859375 0.05078125 0.5976563 0.08984375 0.5898438 0.0859375 0.5859375 0.08984375 + + + + + + + + + + + + + + +

22 0 0 54 1 1 24 2 2 34 3 3 37 4 4 36 5 5 0 6 6 3 7 7 1 8 8 4 9 9 3 7 10 2 10 11 4 9 12 7 11 13 5 12 14 8 13 15 7 11 16 6 14 17 10 15 18 9 16 19 8 13 20 10 15 21 13 17 22 11 18 23 12 19 24 15 20 25 13 17 26 14 21 27 17 22 28 15 20 29 18 23 30 17 22 31 16 24 32 18 23 33 21 25 34 19 26 35 20 27 36 23 28 37 21 25 38 24 29 39 23 28 40 22 30 41 26 31 42 25 32 43 24 29 44 26 31 45 29 33 46 27 34 47 13 35 48 15 36 49 71 37 50 6 38 51 38 38 52 8 39 53 50 40 54 53 41 55 52 42 56 14 43 57 46 44 58 16 45 59 43 46 60 44 47 61 42 48 62 0 6 63 71 49 64 68 50 65 70 51 66 73 52 67 69 51 68 47 53 69 48 54 70 46 55 71 75 56 72 76 57 73 70 58 74 58 59 75 61 60 76 63 61 77 55 62 78 56 63 79 54 64 80 10 65 81 42 66 82 12 67 83 51 68 84 49 69 85 61 70 86 39 71 87 40 72 88 38 73 89 76 74 90 78 75 91 60 76 92 72 77 93 76 78 94 77 79 95 4 80 96 36 81 97 6 82 98 37 4 99 38 73 100 36 5 101 40 72 102 43 46 103 42 48 104 45 83 105 46 55 106 44 47 107 48 54 108 51 84 109 50 40 110 53 41 111 54 64 112 52 42 113 56 63 114 59 85 115 58 59 116 77 86 117 30 87 118 72 88 119 60 89 120 63 90 121 61 91 122 60 92 123 77 93 124 76 94 125 74 95 126 79 95 127 75 95 128 8 96 129 40 97 130 10 98 131 12 99 132 44 100 133 14 101 134 24 102 135 56 102 136 26 102 137 2 103 138 30 104 139 32 105 140 16 106 141 48 107 142 18 108 143 28 109 144 65 110 145 29 33 146 67 111 147 64 112 148 65 113 149 68 114 150 70 115 151 69 116 152 64 117 153 71 118 154 65 119 155 64 120 156 62 121 157 60 120 158 74 122 159 70 123 160 64 124 161 18 125 162 50 126 163 20 127 164 64 128 165 78 129 166 74 130 167 20 131 168 52 131 169 22 131 170 33 132 171 34 3 172 32 133 173 30 87 174 33 132 175 32 133 176 26 134 177 58 135 178 28 136 179 4 137 180 32 138 181 34 139 182 58 140 183 63 141 184 62 142 185 69 143 186 73 144 187 0 145 188 22 0 189 52 146 190 54 1 191 34 3 192 35 147 193 37 4 194 0 6 195 2 10 196 3 7 197 4 9 198 5 12 199 3 7 200 4 9 201 6 14 202 7 11 203 8 13 204 9 16 205 7 11 206 10 15 207 11 18 208 9 16 209 10 15 210 12 19 211 13 17 212 12 19 213 14 21 214 15 20 215 14 21 216 16 24 217 17 22 218 18 23 219 19 26 220 17 22 221 18 23 222 20 27 223 21 25 224 20 27 225 22 30 226 23 28 227 24 29 228 25 32 229 23 28 230 26 31 231 27 34 232 25 32 233 26 31 234 28 109 235 29 33 236 15 36 237 17 148 238 65 149 239 17 148 240 19 150 241 65 149 242 19 150 243 21 151 244 65 149 245 21 151 246 23 152 247 65 149 248 23 152 249 25 153 250 65 149 251 25 153 252 27 154 253 65 149 254 27 154 255 29 155 256 65 149 257 65 149 258 71 37 259 15 36 260 71 37 261 1 156 262 3 157 263 3 157 264 5 158 265 71 37 266 5 158 267 7 35 268 71 37 269 7 35 270 9 35 271 71 37 272 9 35 273 11 35 274 71 37 275 11 35 276 13 35 277 71 37 278 6 38 279 36 159 280 38 38 281 50 40 282 51 84 283 53 41 284 14 43 285 44 160 286 46 44 287 43 46 288 45 83 289 44 47 290 0 6 291 1 8 292 71 49 293 70 51 294 76 51 295 73 52 296 47 53 297 49 161 298 48 54 299 75 56 300 79 162 301 76 57 302 58 59 303 59 85 304 61 60 305 55 62 306 57 163 307 56 63 308 10 65 309 40 164 310 42 66 311 49 69 312 47 165 313 61 70 314 47 165 315 45 166 316 61 70 317 45 166 318 43 167 319 77 168 320 43 167 321 41 169 322 77 168 323 41 169 324 39 170 325 77 168 326 39 170 327 37 171 328 77 168 329 37 171 330 35 172 331 77 168 332 35 172 333 33 170 334 77 168 335 33 170 336 31 170 337 77 168 338 77 168 339 61 70 340 45 166 341 61 70 342 59 173 343 57 174 344 55 170 345 61 70 346 57 174 347 55 170 348 53 175 349 61 70 350 53 175 351 51 68 352 61 70 353 39 71 354 41 176 355 40 72 356 76 74 357 79 177 358 78 75 359 72 77 360 73 178 361 76 78 362 4 80 363 34 179 364 36 81 365 37 4 366 39 71 367 38 73 368 40 72 369 41 176 370 43 46 371 45 83 372 47 53 373 46 55 374 48 54 375 49 161 376 51 84 377 53 41 378 55 62 379 54 64 380 56 63 381 57 163 382 59 85 383 77 86 384 31 180 385 30 87 386 60 89 387 62 181 388 63 90 389 60 92 390 61 182 391 77 93 392 74 95 393 78 183 394 79 95 395 8 96 396 38 184 397 40 97 398 12 99 399 42 185 400 44 100 401 24 102 402 54 102 403 56 102 404 2 103 405 0 186 406 30 104 407 16 106 408 46 187 409 48 107 410 28 109 411 67 188 412 65 110 413 67 111 414 66 189 415 64 112 416 68 114 417 71 190 418 70 115 419 64 117 420 70 191 421 71 118 422 64 120 423 66 192 424 62 121 425 74 122 426 75 193 427 70 123 428 18 125 429 48 194 430 50 126 431 64 128 432 60 195 433 78 129 434 20 131 435 50 131 436 52 131 437 33 132 438 35 147 439 34 3 440 30 87 441 31 180 442 33 132 443 26 134 444 56 196 445 58 135 446 4 137 447 2 197 448 32 138 449 62 142 450 66 198 451 58 140 452 66 198 453 67 199 454 28 200 455 58 140 456 66 198 457 28 200 458 72 201 459 30 202 460 73 144 461 30 202 462 0 145 463 73 144 464 0 145 465 68 203 466 69 143 467

+
+
+
+ + + + 0 2.25 0.1901126 -1.52002e-7 2.440548 0.1025 4.08359e-7 1.075447 0.1025 0 0.1136917 0.1025 0 3.469546 0.1025 0 2.25 -0.1901126 -1.52002e-7 2.440548 -0.1025 4.08359e-7 1.075447 -0.1025 0 0.1136917 -0.1025 0 3.469546 -0.1025 3.09736e-7 0.7086623 0.1025 3.09736e-7 0.7086623 -0.1025 1.78937e-7 0.4805372 -0.1025 1.78937e-7 0.4805372 0.1025 0 3.085717 0.1025 0 2.824327 0.1025 0 3.6 0.28 0 3.085717 -0.1025 0 2.824327 -0.1025 0 3.6 -0.28 -1.91969e-7 2.312293 0.28 0 2.956147 0.28 -0.15 3.372954 0.04624998 -0.15 3.181039 0.04624998 -1.91969e-7 2.312293 -0.28 0 2.956147 -0.28 -0.1500001 2.535223 0.04624998 -0.15 3.372954 -0.04624998 -0.1500001 2.727113 0.04624998 -0.15 3.181039 -0.04624998 -0.1499996 0.9852741 0.04624998 -0.1500001 2.535223 -0.04624998 -0.1500001 2.727113 -0.04624998 -0.1499996 0.8018819 0.04624998 -0.1499999 0.2061649 0.04624998 -0.1499996 0.9852741 -0.04624998 -0.1499998 0.3895877 0.04624998 -0.1499996 0.8018819 -0.04624998 -0.0975449 1.259607 0.2252249 -0.1499999 0.2061649 -0.04624998 -0.1499998 0.3895877 -0.04624998 -0.1913415 1.28806 0.2252249 -0.0975449 1.259607 -0.2252249 -0.1913415 1.28806 -0.2252249 -0.2777847 1.334266 -0.2252249 -0.3535534 1.396447 -0.2252249 -0.4157344 1.472215 -0.2252249 -0.4619392 1.558658 -0.2252249 -0.4903927 1.652455 -0.2252249 -0.5000002 1.75 -0.2252249 -0.4903924 1.847545 -0.2252249 -0.4619392 1.941342 -0.2252249 -0.4157344 2.027785 -0.2252249 -0.3535533 2.103554 -0.2252249 -0.2777847 2.165735 -0.2252249 -0.1913415 2.21194 -0.2252249 -0.0975449 2.240393 -0.2252249 -2.5 0 -0.3 -2.5 3.6 -0.3 -0.1076551 2.291218 -0.3 -0.2111718 2.259816 -0.3 -0.1076541 1.208783 -0.3 -0.3065744 2.208822 -0.3 -0.3901959 2.140196 -0.3 -0.4588215 2.056575 -0.3 -0.5098147 1.961173 -0.3 -0.5412172 1.857655 -0.3 -0.5518206 1.75 -0.3 -0.5098149 1.538828 -0.3 -0.5412175 1.642346 -0.3 -0.4588212 1.443425 -0.3 -0.3901962 1.359805 -0.3 -0.3065744 1.291179 -0.3 -0.2111722 1.240185 -0.3 -0.2777847 1.334266 0.2252249 -0.3535534 1.396447 0.2252249 -0.4157344 1.472215 0.2252249 -0.4619392 1.558658 0.2252249 -0.4903927 1.652455 0.2252249 -0.5000002 1.75 0.2252249 -0.4903924 1.847545 0.2252249 -0.4619392 1.941342 0.2252249 -0.4157344 2.027785 0.2252249 -0.3535533 2.103554 0.2252249 -0.2777847 2.165735 0.2252249 -0.1913415 2.21194 0.2252249 -0.0975449 2.240393 0.2252249 -2.5 0 0.3 -2.5 3.6 0.3 -0.1076551 2.291218 0.3 -0.2111718 2.259816 0.3 -0.1076541 1.208783 0.3 -0.3065744 2.208822 0.3 -0.3901959 2.140196 0.3 -0.4588215 2.056575 0.3 -0.5098147 1.961173 0.3 -0.5412172 1.857655 0.3 -0.5518206 1.75 0.3 -0.5098149 1.538828 0.3 -0.5412175 1.642346 0.3 -0.4588212 1.443425 0.3 -0.3901962 1.359805 0.3 -0.3065744 1.291179 0.3 -0.2111722 1.240185 0.3 -0.01996612 2.248034 0.2252249 4.69387e-7 1.25 0.1901128 -0.01996552 1.251966 0.2252249 -0.01996749 2.299854 0.3 5.01112e-7 1.187707 0.28 -0.01996672 1.200146 0.3 -0.01996612 2.248034 -0.2252249 4.69387e-7 1.25 -0.1901128 -0.01996552 1.251966 -0.2252249 -0.01996749 2.299854 -0.3 5.01112e-7 1.187707 -0.28 -0.01996672 1.200146 -0.3 -0.0199685 0 -0.3 0 0 -0.28 -0.0199685 3.6 -0.3 -0.0199685 0 0.3 0 0 0.28 -0.0199685 3.6 0.3 -0.7168543 1.601754 0.3 -0.7168543 1.601754 -0.3 -0.793989 1.532466 -0.3 -0.793989 1.532466 0.3 -0.800998 1.719646 0.29 -2.299443 1.727324 0.29 -2.299443 1.732078 0.29 -0.7895248 1.739647 0.29 -0.8395245 1.639647 0.29 -2.349443 1.632078 0.29 -2.349443 1.627324 0.29 -0.8509981 1.619646 0.29 -0.800998 1.719646 -0.29 -2.299443 1.727324 -0.29 -2.299443 1.732078 -0.29 -0.7895248 1.739647 -0.29 -0.8395245 1.639647 -0.29 -2.349443 1.632078 -0.29 -2.349443 1.627324 -0.29 -0.8509981 1.619646 -0.29 -0.8895249 1.539647 -0.29 -2.399442 1.532078 -0.29 -2.399442 1.527324 -0.29 -0.9009982 1.519646 -0.29 -0.1025001 1.065 -0.29 -0.2545286 1.101132 -0.29 -0.2464555 1.124981 -0.29 -0.1025001 1.068555 -0.29 -0.1525005 0.9685549 -0.29 -0.2964556 1.024982 -0.29 -0.3045286 1.001132 -0.29 -0.1525005 0.965 -0.29 -0.2024998 0.8685547 -0.29 -0.3464557 0.9249814 -0.29 -0.3545283 0.9011322 -0.29 -0.2024998 0.8650001 -0.29 -0.8895249 1.539647 0.29 -2.399442 1.532078 0.29 -2.399442 1.527324 0.29 -0.9009982 1.519646 0.29 -0.1025001 1.065 0.29 -0.2545286 1.101132 0.29 -0.2464555 1.124981 0.29 -0.1025001 1.068555 0.29 -0.1525005 0.9685549 0.29 -0.2964556 1.024982 0.29 -0.3045286 1.001132 0.29 -0.1525005 0.965 0.29 -0.8078106 1.704702 -0.3 -2.314443 1.717202 -0.3 -2.314443 1.742202 -0.3 -0.7828105 1.754702 -0.3 -0.6782872 1.636398 -0.3 -0.08750009 1.05 -0.3 -0.2625001 1.0875 -0.3 -0.2374999 1.1375 -0.3 -0.08750009 1.075 -0.3 -0.7554213 1.567111 -0.3 -0.8328103 1.654702 -0.3 -2.364443 1.642202 -0.3 -2.364443 1.617202 -0.3 -0.8578106 1.604702 -0.3 -0.1375005 0.975 -0.3 -0.2875 1.0375 -0.3 -0.3125001 0.9875 -0.3 -0.1375005 0.9500001 -0.3 -0.8325563 1.497822 -0.3 -0.8828107 1.554702 -0.3 -2.414442 1.542202 -0.3 -2.414442 1.517202 -0.3 -0.9078107 1.504702 -0.3 -0.8711233 1.463179 -0.3 -0.1874998 0.8750001 -0.3 -0.3375002 0.9375 -0.3 -0.3624998 0.8874998 -0.3 -0.1874998 0.85 -0.3 -0.09874212 2.536093 -0.29 -0.2565256 2.502283 -0.29 -0.8027049 1.884098 -0.29 -2.3032 1.871648 -0.29 -2.3032 1.868949 -0.29 -0.7878426 1.856582 -0.29 -0.2442126 2.471882 -0.29 -0.09874206 2.532495 -0.29 -0.148742 2.632494 -0.29 -0.2942119 2.571882 -0.29 -0.8378435 1.956581 -0.29 -2.3532 1.968949 -0.29 -2.3532 1.971648 -0.29 -0.8527053 1.984098 -0.29 -0.3065256 2.602283 -0.29 -0.148742 2.636093 -0.29 -0.1987422 2.732494 -0.29 -0.3442123 2.671883 -0.29 -0.8878433 2.056582 -0.29 -2.4032 2.068949 -0.29 -2.4032 2.071649 -0.29 -0.902705 2.084099 -0.29 -0.3565258 2.702283 -0.29 -0.1987422 2.736094 -0.29 -0.2024998 0.8685547 0.29 -0.3464557 0.9249814 0.29 -0.3545283 0.9011322 0.29 -0.2024998 0.8650001 0.29 -0.8078106 1.704702 0.3 -2.314443 1.717202 0.3 -2.314443 1.742202 0.3 -0.7828105 1.754702 0.3 -0.6782872 1.636398 0.3 -0.08750009 1.05 0.3 -0.2625001 1.0875 0.3 -0.2374999 1.1375 0.3 -0.08750009 1.075 0.3 -0.7554213 1.567111 0.3 -0.8328103 1.654702 0.3 -2.364443 1.642202 0.3 -2.364443 1.617202 0.3 -0.8578106 1.604702 0.3 -0.1375005 0.975 0.3 -0.2875 1.0375 0.3 -0.3125001 0.9875 0.3 -0.1375005 0.9500001 0.3 -0.08750009 2.55 -0.3 -0.2625001 2.5125 -0.3 -0.8078107 1.895298 -0.3 -2.314443 1.882797 -0.3 -2.314443 1.857798 -0.3 -0.7828105 1.845298 -0.3 -0.2375006 2.4625 -0.3 -0.08749985 2.525 -0.3 -0.1374999 2.625 -0.3 -0.2874999 2.5625 -0.3 -0.8328113 1.945297 -0.3 -2.364443 1.957798 -0.3 -2.364443 1.982798 -0.3 -0.8578112 1.995298 -0.3 -0.3125 2.6125 -0.3 -0.1374999 2.65 -0.3 -0.1875001 2.725 -0.3 -0.3375003 2.6625 -0.3 -0.8828111 2.045298 -0.3 -2.414442 2.057798 -0.3 -2.414443 2.082798 -0.3 -0.9078108 2.095299 -0.3 -0.3625002 2.7125 -0.3 -0.1875001 2.75 -0.3 -0.8325563 1.497822 0.3 -0.8828107 1.554702 0.3 -2.414442 1.542202 0.3 -2.414442 1.517202 0.3 -0.9078107 1.504702 0.3 -0.8711233 1.463179 0.3 -0.1874998 0.8750001 0.3 -0.3375002 0.9375 0.3 -0.3624998 0.8874998 0.3 -0.1874998 0.85 0.3 -0.09874212 2.536093 0.29 -0.2565256 2.502283 0.29 -0.8027049 1.884098 0.29 -2.3032 1.871648 0.29 -2.3032 1.868949 0.29 -0.7878426 1.856582 0.29 -0.2442126 2.471882 0.29 -0.09874206 2.532495 0.29 -0.148742 2.632494 0.29 -0.2942119 2.571882 0.29 -0.8378435 1.956581 0.29 -2.3532 1.968949 0.29 -2.3532 1.971648 0.29 -0.8527053 1.984098 0.29 -0.3065256 2.602283 0.29 -0.148742 2.636093 0.29 -0.1987422 2.732494 0.29 -0.3442123 2.671883 0.29 -0.8878433 2.056582 0.29 -2.4032 2.068949 0.29 -2.4032 2.071649 0.29 -0.902705 2.084099 0.29 -0.3565258 2.702283 0.29 -0.1987422 2.736094 0.29 -0.08750009 2.55 0.3 -0.2625001 2.5125 0.3 -0.8078107 1.895298 0.3 -2.314443 1.882797 0.3 -2.314443 1.857798 0.3 -0.7828105 1.845298 0.3 -0.2375006 2.4625 0.3 -0.08749985 2.525 0.3 -0.1374999 2.625 0.3 -0.2874999 2.5625 0.3 -0.8328113 1.945297 0.3 -2.364443 1.957798 0.3 -2.364443 1.982798 0.3 -0.8578112 1.995298 0.3 -0.3125 2.6125 0.3 -0.1374999 2.65 0.3 -0.1875001 2.725 0.3 -0.3375003 2.6625 0.3 -0.8828111 2.045298 0.3 -2.414442 2.057798 0.3 -2.414443 2.082798 0.3 -0.9078108 2.095299 0.3 -0.3625002 2.7125 0.3 -0.1875001 2.75 0.3 + + + + + + + + + + 0.3145374 0.7593539 0.5696033 0.4566342 0.6834017 0.5696027 0.3145368 0.7593542 0.5696033 0.6834027 0.4566314 0.5696039 0.7593544 0.3145365 0.5696032 0.6834021 0.4566323 0.5696039 0 0 1 0 0 1 0 0 1 0.3511235 -1.67326e-7 -0.9363292 0.3511235 -1.62951e-7 -0.9363292 0.3511235 -1.76222e-7 -0.9363293 0.4156916 0.3672803 0.8320491 0.4156867 0.367279 0.8320521 0.415706 0.3672839 0.8320403 0.8819228 -0.4713941 0 0.8819228 -0.4713941 0 -1 0 0 0.3511235 0 -0.9363293 0.3511235 0 -0.9363293 0.3511235 0 -0.9363292 0.3511237 0 0.9363291 0.3511236 0 0.9363291 0.3511238 0 0.9363291 0 -1 0 0.002777755 -0.5541474 0.832414 0.536346 0.8439983 0 0.536346 0.8439983 0 0.536346 0.8439982 0 0.3511235 0 0.9363292 0.3511235 0 0.9363292 0.3511235 0 0.9363293 0 0 1 0 1.92734e-6 1 0 1.99867e-6 1 0.5811843 0.5811857 0.5696034 0.4566344 0.6834017 0.5696026 0.5811844 0.5811857 0.5696033 1 -5.50439e-7 -2.50955e-7 1 -4.68813e-7 0 1 -2.29155e-7 0 0.3511235 0 0.9363293 0.3511235 0 0.9363293 0.3511235 -1.26799e-7 0.9363293 0.8219191 -1.15571e-6 0.5696045 0.806126 -0.1603518 0.5696036 0.821919 -6.2664e-7 0.5696045 0.5337434 0.8456465 0 0.5337436 0.8456465 0 0.5337432 0.8456466 0 0.3511235 -1.67326e-7 0.9363292 0.3511235 -1.62951e-7 0.9363292 0.3511235 -1.58473e-7 0.9363292 0 0 -1 0 0 -1 0 0 -1 0.1603493 0.8061268 -0.5696032 0.3145368 0.7593542 -0.5696033 0.3145374 0.7593539 -0.5696034 0.4566342 0.6834017 -0.5696029 0.4566346 0.6834017 -0.5696026 0.5811844 0.5811856 -0.5696035 0.6834021 0.4566323 -0.5696039 0.6834027 0.4566314 -0.5696039 0.7593544 0.3145365 -0.569603 0.7593539 0.3145374 -0.5696034 0.8061259 0.1603522 -0.5696036 0.8061262 0.1603509 -0.5696037 0.8219191 -1.18673e-6 -0.5696043 0.806126 -0.1603518 -0.5696036 0.8061254 -0.1603525 -0.5696043 0.7593542 -0.3145361 -0.5696039 0.7593543 -0.3145356 -0.5696038 0.6834028 -0.4566321 -0.5696032 0.6834021 -0.4566323 -0.5696039 0.5811858 -0.5811836 -0.569604 0.5811854 -0.5811836 -0.5696045 0.4566357 -0.6833997 -0.569604 0.4566341 -0.6834009 -0.569604 0.3145351 -0.7593545 -0.5696038 0.3145343 -0.7593545 -0.5696043 0.160346 -0.8061259 -0.5696054 0 0 1 0.7730125 0.6343908 0 0.7730117 0.6343917 0 0.7730116 0.6343919 0 1 5.09293e-7 0 1 5.09294e-7 0 0 1 0 1 -2.43718e-7 0 1 -2.43718e-7 0 1 -2.43718e-7 0 0.9569385 0.2902909 0 0.9951844 -0.09802114 0 0.9951844 -0.09802138 0 0.9951843 -0.09802138 0 0.08068132 -0.8192392 -0.5677479 0.08068323 -0.8192395 -0.5677472 1 -5.73751e-7 1.59682e-7 1 -2.29156e-7 0 1 -5.73752e-7 -1.59682e-7 0.6343905 0.7730128 0 0.0980128 -0.9951853 -9.00984e-7 0.09801453 -0.995185 -3.33873e-6 0.09801298 -0.9951852 -7.31142e-7 0.5811856 -0.5811837 0.5696042 0.6834022 -0.4566323 0.5696038 0.6834028 -0.456632 0.5696033 0.5546735 0 0.8320681 0.5546838 0 0.8320612 0.5546501 0 0.8320838 0.7593541 -0.3145361 0.5696038 0.7593544 -0.3145357 0.5696037 1 0 0 1 0 0 1 0 0 0.2902861 -0.9569399 0 0.2902861 -0.9569399 0 1 -1.62506e-7 0 1 -1.62506e-7 0 1 -1.62506e-7 0 0 0 1 0 2.19782e-7 1 0 0 1 0.9569391 -0.2902891 0 0.9569392 -0.2902885 0 0.9569392 -0.2902884 0 0.5247786 0.8512388 0 0.5247787 0.8512387 0 0.7076854 -1.05085e-6 0.7065278 0.7076636 -3.16629e-7 0.7065496 0.7076632 -3.05197e-7 0.7065499 0.7076845 0 0.7065287 0.7076849 0 0.7065283 0.7076739 5.63803e-7 0.7065392 0.734586 0.5576849 0.3864855 0.7345733 0.5576928 0.3864982 0.7345888 0.5576832 0.3864827 0.7345755 -0.5576897 0.3864986 0.7345896 -0.5576811 0.3864841 0.7345928 -0.5576792 0.3864808 0.1603491 0.8061268 0.5696033 0.08068722 0.8192399 0.5677462 0.0806868 0.81924 0.5677458 -0.4156923 -0.3672716 0.8320526 -0.4156948 -0.3672745 0.8320501 -0.4156946 -0.3672742 0.8320503 1 2.50967e-7 0 1 1.40723e-6 0 1 2.50964e-7 0 0 0 -1 0 1.4878e-7 -1 0 0 -1 -0.247269 -0.5950805 0.7646812 -0.2059103 -0.523135 0.827001 -0.2031505 -0.5182729 0.8307365 0.08068764 0.8192399 -0.5677461 0.08068782 0.8192401 -0.5677457 0.7345755 -0.5576897 -0.3864986 0.7345896 -0.5576811 -0.3864841 0.7345715 -0.557692 -0.3865026 0.7345736 0.5576925 -0.3864981 0.7345868 0.5576841 -0.386485 0.7345898 0.5576822 -0.3864821 0.7076739 5.53942e-7 -0.7065393 0.7076845 0 -0.7065287 0.7076632 0 -0.70655 0.7076854 -1.05085e-6 -0.7065278 0.7076636 -3.16629e-7 -0.7065496 0.7076857 -1.0599e-6 -0.7065275 0.1284115 0.5448601 0.8286362 0.1369335 0.6363362 0.7591611 0.1276369 0.5370348 0.833848 -0.247272 -0.5950862 0.7646757 -0.2059102 -0.5231365 0.8270002 -0.2031501 -0.518274 0.8307358 0.4713991 -0.88192 0 0.4713975 -0.8819208 0 0.4713972 -0.881921 0 0.002777814 -0.5541442 0.8324162 -0.5547027 0 0.8320487 -0.5546967 0 0.8320526 -0.5547119 0 0.8320425 -0.4156932 -0.3672752 0.8320505 -0.4156932 -0.3672751 0.8320506 -0.4156969 -0.3672764 0.8320482 0.005794823 0.6984466 -0.7156388 0.5546735 0 -0.8320681 0.5546838 0 -0.8320612 0.5546907 0 -0.8320566 0.002777576 -0.5541462 -0.8324148 0.415695 0.3672761 0.8320492 0.4156937 0.3672749 0.8320505 0.4156946 0.3672727 0.832051 0.1369335 0.6363362 -0.7591612 0.1284115 0.5448599 -0.8286364 0.1276369 0.5370345 -0.8338482 -0.247272 -0.5950862 -0.7646757 -0.2059102 -0.5231365 -0.8270002 -0.2496667 -0.5991954 -0.7606782 -0.5547027 0 -0.8320487 -0.5546967 0 -0.8320526 -0.5546945 0 -0.8320541 0.6343934 -0.7730104 0 0.6343922 -0.7730114 0 0.634392 -0.7730116 0 0.002777814 -0.5541439 -0.8324164 0.5547032 -3.09999e-6 -0.8320484 0.5546957 -4.46819e-6 -0.8320533 0.5546907 -5.3726e-6 -0.8320566 0.005794405 0.6984342 -0.7156509 0.4156919 0.3672707 0.8320533 0.4156947 0.3672753 0.8320499 0.4156946 0.3672752 0.8320499 -0.247269 -0.5950805 -0.7646812 -0.2059103 -0.523135 -0.827001 -0.2496635 -0.5991894 -0.760684 0.1369325 0.6363381 -0.7591598 0.1284115 0.5448601 -0.8286363 0.1276369 0.5370345 -0.8338483 -0.5546988 6.57176e-7 -0.8320513 -0.5546994 1.07511e-6 -0.8320509 -0.5546998 1.23986e-6 -0.8320507 -0.4156906 -0.3672719 0.8320533 -0.4156932 -0.3672719 0.8320521 -0.4156928 -0.3672719 0.8320522 0.002777755 -0.5541473 -0.8324141 0.5546996 0 -0.8320508 0.5546971 0 -0.8320525 0.5546954 0 -0.8320535 0.005794823 0.6984468 -0.7156386 0.09801656 0.9951848 0 0.09801757 0.9951848 0 0.09801739 0.9951848 0 -0.2472648 -0.595077 -0.7646852 -0.2059086 -0.5231367 -0.8270004 -0.2496592 -0.5991858 -0.7606884 0.1369304 0.6363315 -0.7591655 0.1284093 0.5448591 -0.8286373 0.1276347 0.5370339 -0.833849 -0.5547013 0 -0.8320496 -0.5546998 0 -0.8320506 -0.5546993 0 -0.8320509 0 0 -1 0 -3.95226e-7 -1 0 0 -1 0 -1.23219e-7 -1 0 -2.74687e-7 -1 0 0 -1 0 4.35463e-7 -1 0 2.38063e-7 -1 0 5.43911e-7 -1 0 0 -1 0 0 -1 0 0 -1 0.5547032 -3.09999e-6 0.8320484 0.5546957 -4.46819e-6 0.8320533 0.5547203 0 0.832037 0.002845048 0.55524 0.8316853 0.1392566 -0.6498728 -0.7471767 0.1392546 -0.6498692 -0.7471802 0.1392567 -0.649873 -0.7471765 0.4980677 -0.4400513 -0.7471837 0.498074 -0.4400577 -0.7471758 0.4980676 -0.4400511 -0.7471838 0.005514204 -0.6645976 -0.7471811 0.005514323 -0.6645982 -0.7471806 0.005514323 -0.6645982 -0.7471806 0.6646261 0 -0.7471762 0.6646263 0 -0.7471761 0.6646257 0 -0.7471765 0.005423843 0.6645983 -0.7471812 0.005423784 0.664599 -0.7471805 0.005423843 0.6645983 -0.7471812 -0.498071 0.4400544 -0.7471797 -0.4980723 0.4400577 -0.7471768 -0.498071 0.4400543 -0.7471797 -0.2556239 0.613499 -0.7471783 -0.2556251 0.6134998 -0.7471773 -0.2556252 0.6134999 -0.7471771 -0.6646295 -1.07835e-5 -0.7471731 -0.6646242 -8.11875e-6 -0.7471779 -0.6646425 -1.72009e-5 -0.7471616 -0.2556227 0.6135003 -0.7471776 -0.2556253 0.6135003 -0.7471768 -0.2556254 0.6135003 -0.7471767 -0.4980725 0.4400578 -0.7471767 -0.4980718 0.4400575 -0.7471774 -0.4980725 0.4400578 -0.7471767 0.00542438 0.6646025 -0.7471775 0.005423963 0.6645963 -0.7471829 0.00542438 0.6646025 -0.7471775 0.6646173 0 -0.747184 0.6646137 0 -0.7471872 0.005514204 -0.6645995 -0.7471795 0.005514144 -0.6645969 -0.7471818 0.4980665 -0.4400533 -0.7471834 0.498072 -0.4400562 -0.747178 0.4980664 -0.4400532 -0.7471834 0.1392568 -0.6498669 -0.7471818 0.1392573 -0.6498682 -0.7471805 0.1392567 -0.6498668 -0.7471818 -0.6646494 0 -0.7471554 -0.6646315 0 -0.7471714 -0.6646926 0 -0.7471171 -0.2556215 0.6135013 -0.7471773 -0.2556219 0.6135027 -0.7471759 -0.255622 0.6135028 -0.7471759 -0.498069 0.4400547 -0.7471808 -0.4980714 0.4400574 -0.7471776 -0.4980689 0.4400547 -0.7471809 0.005423843 0.6645988 -0.7471808 0.005423963 0.6645992 -0.7471803 0.005423843 0.6645988 -0.7471808 0.6646085 8.05506e-6 -0.7471919 0.6646179 1.14085e-5 -0.7471835 0.6645858 0 -0.747212 0.005514204 -0.6646032 -0.7471762 0.005514442 -0.6645985 -0.7471804 0.005514442 -0.6645984 -0.7471804 0.4980708 -0.4400545 -0.7471798 0.4980698 -0.4400572 -0.7471787 0.4980708 -0.4400544 -0.7471798 0.1392568 -0.6498672 -0.7471815 0.1392573 -0.6498679 -0.7471808 0.1392568 -0.6498672 -0.7471815 -0.664636 0 -0.7471674 -0.6646267 0 -0.7471757 -0.6646584 0 -0.7471475 0.3511238 0 -0.9363291 0.3511238 0 -0.9363291 0.3511238 0 -0.9363291 0 1 0 -4.24418e-7 1 0 -0.4156933 -0.3672716 -0.8320521 -0.4156937 -0.3672717 -0.8320518 -0.4156907 -0.3672713 -0.8320535 -0.5546988 6.57176e-7 0.8320513 -0.5546994 1.07511e-6 0.8320509 -0.5546977 0 0.832052 0.1284115 0.5448603 0.8286362 0.1369324 0.6363382 0.7591595 0.1276368 0.5370347 0.8338482 0.3511235 0 -0.9363292 0.3511235 0 -0.9363292 0.3511235 0 -0.9363293 0.5438629 -0.839174 0 0.5438632 -0.839174 0 0.5438625 -0.8391744 0 0.290286 0.9569401 0 0.2902842 0.9569406 0 0.2902837 0.9569406 0 1 -1.55289e-7 0 1 -1.55289e-7 0 1 -1.55289e-7 0 0.9951847 0.0980184 0 0.9951847 0.0980184 0 0.8061255 -0.1603525 0.5696043 0.160346 -0.8061259 0.5696054 0.08068132 -0.8192392 0.5677479 0.1603469 -0.8061251 0.5696064 0.3145343 -0.7593545 0.5696043 0.3145352 -0.7593545 0.5696038 0.456634 -0.6834008 0.569604 0.4566356 -0.6833998 0.569604 0.5811853 -0.5811838 0.5696044 -0.4156944 -0.3672736 -0.8320507 -0.4156946 -0.3672738 -0.8320505 -0.4156917 -0.3672717 -0.832053 0.8061259 0.1603522 0.5696038 0.7593539 0.3145374 0.5696034 0.8061261 0.1603509 0.5696038 0.8819222 0.471395 0 0.8819227 0.4713943 0 0.8819228 0.4713941 0 0 0 1 0 0 1 0 0 1 0.5278378 0.8493452 0 0.5278379 0.8493452 0 0.5278376 0.8493454 0 0.7730123 -0.6343912 0 0.7730115 -0.6343922 0 0.7730114 -0.6343923 0 0.4156943 0.3672724 -0.8320512 0.4156944 0.3672724 -0.8320512 0.4156937 0.3672749 -0.8320505 0.5414058 -0.8407614 0 0.5414066 -0.840761 0 0.5414096 -0.8407591 0 0.5184706 -0.8550956 0 0.5184705 -0.8550956 0 0.5184707 -0.8550955 0 0.002777576 -0.5541458 0.8324151 0.5152202 -0.8570579 0 0.5152201 -0.8570579 0 0.5152205 -0.8570577 0 0.1603484 0.806127 0.5696033 0.4156939 0.3672745 -0.8320506 0.4156939 0.3672746 -0.8320505 0.4156914 0.367271 -0.8320533 -0.4156951 -0.3672754 -0.8320496 -0.415695 -0.3672752 -0.8320497 -0.4156973 -0.3672767 -0.8320479 0.5546996 0 0.8320508 0.5546971 0 0.8320525 0.5547052 0 0.8320469 0.002845108 0.55524 0.8316854 0.4156961 0.3672786 -0.8320477 0.415696 0.3672785 -0.8320478 0.4157062 0.3672832 -0.8320406 -0.2472648 -0.595077 0.7646852 -0.2059086 -0.5231367 0.8270004 -0.203149 -0.518275 0.8307357 0.1284093 0.5448591 0.8286372 0.1369304 0.6363314 0.7591656 0.1276347 0.5370339 0.8338489 -0.5547013 0 0.8320496 -0.5546998 0 0.8320506 -0.5547036 0 0.8320481 0 0 1 0 -3.98899e-7 1 0 0 1 0 -2.74687e-7 1 0 -3.0899e-7 1 0 6.311e-7 1 0 2.38063e-7 1 0 2.67784e-7 1 0 0 1 0 0 1 0 0 1 0.1392566 -0.6498728 0.7471767 0.1392546 -0.6498692 0.7471802 0.1392544 -0.6498689 0.7471805 0.4980677 -0.4400513 0.7471837 0.498074 -0.4400577 0.7471758 0.4980741 -0.4400577 0.7471757 0.005514264 -0.6645989 0.7471801 0.005514204 -0.6645975 0.7471812 0.005514264 -0.6645989 0.7471801 0.6646263 0 0.7471761 0.6646261 0 0.7471762 0.6646257 0 0.7471765 0.005423843 0.6645983 0.7471812 0.005423784 0.664599 0.7471805 0.005423784 0.664599 0.7471805 -0.498071 0.4400544 0.7471797 -0.4980723 0.4400577 0.7471768 -0.4980723 0.4400578 0.7471768 -0.2556251 0.6134998 0.7471773 -0.2556236 0.6134998 0.7471777 -0.2556252 0.6134998 0.7471773 -0.6646244 -7.37247e-6 0.7471776 -0.6646298 -9.24683e-6 0.747173 -0.6646425 -1.37607e-5 0.7471616 -0.2556251 0.6135006 0.7471766 -0.2556226 0.613501 0.7471771 -0.2556253 0.6135006 0.7471765 -0.4980725 0.4400578 0.7471767 -0.4980718 0.4400575 0.7471774 -0.4980718 0.4400575 0.7471774 0.00542438 0.6646025 0.7471775 0.005423963 0.6645963 0.7471829 0.005423963 0.6645963 0.747183 0.664618 0 0.7471833 0.6646203 0 0.7471814 0.005514144 -0.6645976 0.7471812 0.005514204 -0.6645994 0.7471796 0.4980665 -0.4400533 0.7471834 0.498072 -0.4400562 0.747178 0.4980721 -0.4400563 0.7471779 0.1392568 -0.6498669 0.7471818 0.1392573 -0.6498682 0.7471805 0.1392574 -0.6498683 0.7471805 -0.6646316 0 0.7471713 -0.6646499 0 0.7471551 -0.6646937 0 0.747116 -0.2556218 0.613503 0.7471758 -0.2556213 0.6135019 0.7471769 -0.2556218 0.613503 0.7471757 -0.498069 0.4400547 0.7471808 -0.4980714 0.4400574 0.7471776 -0.4980714 0.4400575 0.7471776 0.005423843 0.6645988 0.7471808 0.005423963 0.6645992 0.7471803 0.005423963 0.6645992 0.7471803 0.6646192 1.09697e-5 0.7471823 0.6646127 7.74523e-6 0.7471881 0.6645972 0 0.7472019 0.005514442 -0.664599 0.7471799 0.005514204 -0.6646025 0.7471768 0.005514442 -0.664599 0.7471799 0.4980708 -0.4400545 0.7471798 0.4980698 -0.4400572 0.7471787 0.4980698 -0.4400572 0.7471787 0.1392568 -0.6498672 0.7471815 0.1392573 -0.6498679 0.7471808 0.1392573 -0.649868 0.7471807 -0.6646261 0 0.7471761 -0.6646356 0 0.7471677 -0.6646584 0 0.7471475 0.4713993 0.88192 0 0.4714007 0.8819192 0 0.471401 0.881919 0 1 -2.1347e-7 0 1 -2.1347e-7 0 1 -4.61982e-7 0 1 -5.07598e-7 -1.27249e-7 1 -5.07598e-7 1.27249e-7 1 -2.48619e-7 0 1 -2.27123e-7 0 1 -2.4862e-7 0 1 -1.26968e-7 0 0 0 -1 0 0 -1 0 0 -1 0 2.14569e-6 -1 0 2.18924e-6 -1 0 0 -1 0 -1.60963e-7 -1 0 0 -1 0 1.81362e-6 -1 0 -2.08944e-7 -1 0 0 -1 0 1.80776e-6 -1 0 0 -1 0 4.1097e-7 -1 0 7.41582e-7 -1 0 0 -1 0 0 -1 0 0 1 0 4.1097e-7 1 0 7.41582e-7 1 0 0 1 0 0 1 0 -2.29913e-7 1 0 1.81362e-6 1 0 -2.59411e-7 1 0 1.80776e-6 1 0 0 1 0.3511235 -1.58473e-7 -0.9363292 0.4156954 0.3672781 0.8320482 0.4156956 0.3672782 0.8320481 0.3511235 -1.26799e-7 -0.9363293 0.3511234 0 0.9363293 0.005700111 -0.6984379 0.715648 0.5363459 0.8439984 0 0.3511235 0 0.9363293 1 -5.50439e-7 2.50955e-7 1 -4.68813e-7 0 1 -4.61982e-7 0 0.3511235 0 0.9363292 0.5337439 0.8456462 0 0.3511235 -1.76222e-7 0.9363293 0 0 -1 0 0 -1 0 6.10492e-7 -1 0 0 -1 0 2.2855e-7 -1 0 0 -1 0 1.64048e-7 -1 0.1603484 0.806127 -0.5696033 0.5811845 0.5811856 -0.5696034 0.8219191 -6.41443e-7 -0.5696044 0.1603469 -0.8061251 -0.5696063 0.7730126 0.6343906 0 1 -2.43718e-7 0 0.9951844 -0.09802114 0 0.09801054 -0.9951854 7.31724e-7 0.09801465 -0.995185 3.34139e-6 0.0980103 -0.9951854 9.01702e-7 0.5546907 0 0.8320566 1 0 0 1 -1.62506e-7 0 0 -2.12872e-7 1 0 0 1 0 0 1 0 0 1 0 -2.82887e-7 1 0 -1.72937e-7 1 0 0 1 0 -2.70725e-7 1 0 3.64819e-7 1 0 3.00716e-7 1 0 0 1 0 -6.38744e-7 1 0 -7.09734e-7 1 0 0 1 0 -4.59166e-7 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 -1.46248e-7 1 0 -3.68839e-7 1 0.956939 -0.2902892 0 0.5247784 0.8512389 0 0.7076857 -1.0599e-6 0.7065275 0.7076629 0 0.7065503 0.7076632 0 0.70655 0.7345698 0.557695 0.3865017 0.7345715 -0.557692 0.3865026 -0.4156941 -0.3672758 0.8320498 -0.4156942 -0.3672759 0.8320498 1 1.40724e-6 0 0 0 -1 0 0 -1 0 0 -1 0 -2.15585e-7 -1 0 -1.36613e-7 -1 0 -1.77386e-7 -1 0 0 -1 0 4.00955e-7 -1 0 4.16689e-7 -1 0 -1.24905e-7 -1 0 -6.14878e-7 -1 0 -5.40444e-7 -1 0 0 -1 0 0 -1 0 -1.88394e-7 -1 0 -2.29583e-7 -1 0 0 -1 0 0 -1 0 0 -1 0 1.72186e-7 -1 0 0 -1 0 1.28361e-6 -1 0 6.14348e-7 -1 0 2.15126e-7 -1 0 0 -1 0 -3.68839e-7 -1 -0.2496635 -0.5991894 0.760684 0.7345928 -0.5576792 -0.3864808 0.7345699 0.5576949 -0.3865017 0.7076629 0 -0.7065503 0.7076849 0 -0.7065283 0.7076632 -3.05197e-7 -0.7065499 0.1373258 0.6408494 0.755284 -0.2496667 -0.5991954 0.7606782 0.4713994 -0.8819199 0 0.00570017 -0.6984381 0.7156478 -0.5546945 0 0.8320541 -0.4156941 -0.3672741 0.8320506 -0.4156942 -0.3672743 0.8320505 0.002845048 0.55524 -0.8316853 0.5546501 0 -0.8320838 0.005699992 -0.6984384 -0.7156475 0.4156951 0.3672763 0.8320491 0.4156946 0.3672727 0.8320509 0.1373258 0.6408494 -0.755284 -0.2031501 -0.518274 -0.8307358 -0.5547119 0 -0.8320425 0.6343936 -0.7730102 0 0.00570017 -0.6984382 -0.7156477 0.5547203 0 -0.832037 0.4156942 0.3672743 0.8320503 0.4156948 0.367275 0.8320499 -0.2031505 -0.5182729 -0.8307365 0.1373248 0.6408514 -0.7552824 -0.5546977 0 -0.832052 -0.4156951 -0.3672747 0.8320499 -0.4156952 -0.3672747 0.8320498 0.005700111 -0.6984385 -0.7156475 0.5547052 0 -0.8320469 0.002845108 0.55524 -0.8316854 0.09801715 0.9951848 2.76455e-7 0.09801632 0.9951848 0 0.09801703 0.9951848 -2.73797e-7 -0.203149 -0.518275 -0.8307357 0.1373227 0.6408446 -0.7552885 -0.5547036 0 -0.8320481 0 -9.59795e-7 -1 0 0 -1 0 0 -1 0 0 -1 0 -1.92609e-7 -1 0 -2.18245e-7 -1 0 0 -1 0 2.66489e-7 -1 0 0 -1 0 1.66754e-7 -1 0 0 -1 0 0 -1 0 -1.40258e-7 -1 0 2.65235e-7 -1 0 0 -1 0 -2.45227e-7 -1 0 3.22989e-7 -1 0 0 -1 0 0 -1 0 -3.75728e-7 -1 0 -3.86628e-7 -1 0 0 -1 0 2.32592e-7 -1 0 1.68056e-7 -1 0 -3.81689e-7 -1 0 -3.0899e-7 -1 0 1.31223e-5 -1 0 1.17215e-5 -1 0 2.67784e-7 -1 0 0 -1 0 0 -1 0 0 -1 0.5546907 -5.3726e-6 0.8320566 0.005794405 0.6984342 0.7156509 0.1392544 -0.6498689 -0.7471805 0.4980741 -0.4400577 -0.7471757 0.005514204 -0.6645976 -0.7471811 0.6646263 0 -0.747176 0.005423784 0.664599 -0.7471805 -0.4980723 0.4400578 -0.7471768 -0.2556238 0.6134989 -0.7471784 -0.6646208 -6.43755e-6 -0.7471809 -0.2556226 0.6135004 -0.7471777 -0.4980718 0.4400575 -0.7471774 0.005423963 0.6645963 -0.747183 0.6646122 0 -0.7471886 0.005514204 -0.6645995 -0.7471795 0.4980721 -0.4400563 -0.7471779 0.1392574 -0.6498683 -0.7471805 -0.6646202 0 -0.7471815 -0.2556214 0.6135013 -0.7471773 -0.4980714 0.4400575 -0.7471776 0.005423963 0.6645992 -0.7471803 0.664622 1.28749e-5 -0.7471798 0.005514204 -0.6646032 -0.7471762 0.4980698 -0.4400572 -0.7471787 0.1392573 -0.649868 -0.7471807 -0.6646208 0 -0.7471809 0.3511238 0 -0.9363291 -1.33256e-6 1 0 -0.4156952 -0.3672747 -0.8320498 -0.4156951 -0.3672747 -0.8320499 -0.5546998 1.23986e-6 0.8320507 0.1373248 0.6408516 0.7552823 0.3511235 0 -0.9363293 0.005794823 0.6984466 0.7156388 0.5438638 -0.8391735 0 0.2902863 0.9569399 0 1 -1.55289e-7 0 0.08068323 -0.8192395 0.5677472 -0.4156942 -0.3672759 -0.8320498 -0.4156941 -0.3672758 -0.8320499 0.8819221 0.4713952 0 0 0 1 0 0 1 0 0 1 0 1.56002e-7 1 0 0 1 0 0 1 0 0 1 0.5278382 0.8493449 0 0.7730125 -0.634391 0 0.4156951 0.3672763 -0.8320491 0.415695 0.3672761 -0.8320492 0.5414041 -0.8407626 0 0.5184703 -0.8550957 0 0.005700051 -0.6984378 0.7156481 0.5152196 -0.8570583 0 0.4156948 0.367275 -0.8320499 0.4156942 0.3672744 -0.8320505 -0.4156932 -0.3672751 -0.8320506 -0.4156932 -0.3672752 -0.8320505 0.5546954 0 0.8320535 0.005794823 0.6984468 0.7156386 0.4156867 0.367279 -0.8320521 0.4156917 0.3672801 -0.8320491 -0.2496592 -0.5991858 0.7606884 0.1373227 0.6408445 0.7552886 -0.5546993 0 0.8320509 0 0 1 0 -9.59795e-7 1 0 3.21479e-7 1 0 3.81689e-7 1 0 0 1 0 0 1 0 -2.07554e-7 1 0 0 1 0 0 1 0 0 1 0 0 1 0 2.41319e-7 1 0 1.45541e-7 1 0 0 1 0 0 1 0 3.31672e-7 1 0 -2.45227e-7 1 0 0 1 0 0 1 0 0 1 0 0 1 0 -2.42043e-7 1 0 -1.79408e-7 1 0 0 1 0 -3.87653e-7 1 0 1.17497e-5 1 0 0 1 0 1.31223e-5 1 0 1.50781e-7 1 0 7.91143e-7 1 0.1392567 -0.649873 0.7471765 0.4980676 -0.4400511 0.7471838 0.005514204 -0.6645975 0.7471812 0.6646263 0 0.747176 0.005423843 0.6645983 0.7471812 -0.498071 0.4400543 0.7471797 -0.2556236 0.6134998 0.7471778 -0.6646211 -6.18994e-6 0.7471807 -0.2556225 0.613501 0.7471772 -0.4980725 0.4400578 0.7471767 0.00542438 0.6646025 0.7471775 0.6646171 0 0.7471842 0.4980664 -0.4400532 0.7471834 0.1392567 -0.6498668 0.7471818 -0.6646202 0 0.7471815 -0.2556213 0.6135018 0.747177 -0.4980689 0.4400547 0.7471809 0.005423843 0.6645988 0.7471808 0.664622 1.23797e-5 0.7471798 0.005514204 -0.6646025 0.7471768 0.4980708 -0.4400544 0.7471798 0.1392568 -0.6498672 0.7471815 -0.6646202 0 0.7471814 0.471399 0.8819202 0 1 -2.27122e-7 0 1 -1.25559e-7 0 1 0 0 1 0 0 1 -1.25559e-7 0 1 -1.26968e-7 0 0 0 1 + + + + + + + + + + 0.8945313 0.390625 0.9023438 0.3828125 0.9023438 0.390625 0.8945313 0.3671875 0.9023438 0.359375 0.9023438 0.3671875 0.8085938 0.59375 0.8320313 0.5976563 0.8085938 0.5976563 0.6210938 0.3085938 0.625 0.2890625 0.625 0.3046875 0.8984375 0.5976563 0.8984375 0.6015625 0.890625 0.6015625 0.8945313 0.3203125 0.8554688 0.328125 0.8554688 0.3203125 0.8046875 0.4960938 0.84375 0.2773438 0.84375 0.4960938 0.6210938 0.34375 0.625 0.3242188 0.625 0.3398438 0.6328125 0.4804688 0.6367188 0.4609375 0.6367188 0.484375 0.8046875 0.7539063 0.8046875 0.7929688 0.6484375 0.7929688 0.8984375 0.5898438 0.9453125 0.59375 0.8984375 0.59375 0.6367188 0.4609375 0.625 0.4648438 0.6210938 0.4609375 0.6328125 0.4492188 0.6367188 0.4296875 0.6367188 0.453125 0.9414063 0.59375 0.8828125 0.5976563 0.8828125 0.59375 0.8945313 0.375 0.9023438 0.3828125 0.8945313 0.3828125 0.8945313 0.375 0.9023438 0.3671875 0.9023438 0.375 0.6367188 0.3203125 0.6367188 0.3085938 0.6445313 0.3476563 0.6367188 0.34375 0.6328125 0.3242188 0.6367188 0.3203125 0.8945313 0.34375 0.9023438 0.3359375 0.9023438 0.34375 0.6367188 0.4296875 0.625 0.4335938 0.6210938 0.4296875 0.6367188 0.3085938 0.6328125 0.2890625 0.6367188 0.2851563 0.6627917 0.443255 0.6739633 0.4412869 0.6484375 0.4960938 0.8554688 0.3984375 0.8476563 0.390625 0.8554688 0.390625 0.8554688 0.390625 0.8476563 0.3828125 0.8554688 0.3828125 0.8476563 0.3828125 0.8554688 0.375 0.8554688 0.3828125 0.8554688 0.375 0.8476563 0.3671875 0.8554688 0.3671875 0.8554688 0.3671875 0.8476563 0.359375 0.8554688 0.359375 0.8476563 0.359375 0.8554688 0.3515625 0.8554688 0.359375 0.8476563 0.3515625 0.8554688 0.34375 0.8554688 0.3515625 0.8554688 0.34375 0.8476563 0.3359375 0.8554688 0.3359375 0.8554688 0.3359375 0.8476563 0.328125 0.8554688 0.328125 0.8476563 0.328125 0.8554688 0.3203125 0.8554688 0.328125 0.8476563 0.3203125 0.8554688 0.3125 0.8554688 0.3203125 0.8476563 0.3125 0.8554688 0.3046875 0.8554688 0.3125 0.8476563 0.3046875 0.8554688 0.296875 0.8554688 0.3046875 0.8476563 0.296875 0.8554688 0.2890625 0.8554688 0.296875 0.8320313 0.59375 0.8828125 0.5976563 0.8320313 0.5976563 0.8945313 0.3671875 0.8554688 0.375 0.8554688 0.3671875 0.6171875 0.3515625 0.6445313 0.3476563 0.640625 0.3515625 0.6484375 0.5351563 0.8046875 0.4960938 0.8046875 0.5351563 0.6328125 0.3046875 0.625 0.2890625 0.6328125 0.2890625 0.8945313 0.3515625 0.8554688 0.359375 0.8554688 0.3515625 0.8945313 0.3359375 0.8554688 0.34375 0.8554688 0.3359375 0.8554688 0.2890625 0.8476563 0.28125 0.8554688 0.28125 0.6367188 0.34375 0.6132813 0.3476563 0.6210938 0.34375 0.8945313 0.375 0.8554688 0.3828125 0.8554688 0.375 0.8945313 0.2773438 0.8945313 0.28125 0.8945313 0.2890625 0.8945313 0.3125 0.9023438 0.3203125 0.8945313 0.3203125 0.9414063 0.6054688 0.9453125 0.6132813 0.9414063 0.609375 0.8945313 0.3203125 0.9023438 0.328125 0.8945313 0.328125 0.6328125 0.4492188 0.625 0.4335938 0.6328125 0.4335938 0.8945313 0.2890625 0.8554688 0.296875 0.8554688 0.2890625 0.625 0.3242188 0.6328125 0.3398438 0.625 0.3398438 0.6543128 0.6952406 0.6484375 0.6875 0.6550616 0.6870194 0.8945313 0.328125 0.8554688 0.3359375 0.8554688 0.328125 0.6367188 0.2851563 0.625 0.2890625 0.6210938 0.2851563 0.6132813 0.3476563 0.609375 0.2773438 0.6132813 0.2773438 0.609375 0.4179688 0.6132813 0.4179688 0.6132813 0.4570313 0.8945313 0.40625 0.9023438 0.4101563 0.8945313 0.4101563 0.9023438 0.2773438 0.8945313 0.28125 0.8945313 0.2773438 0.8945313 0.3984375 0.9023438 0.40625 0.8945313 0.40625 0.890625 0.578125 0.8984375 0.578125 0.8984375 0.5820313 0.6132813 0.4179688 0.640625 0.4140625 0.6445313 0.4179688 0.6628094 0.3425499 0.6614339 0.3489242 0.6549568 0.3471782 0.8046875 0.5820313 0.8320313 0.578125 0.8320313 0.5820313 0.8476563 0.40625 0.8554688 0.3984375 0.8554688 0.40625 0.8476563 0.2773438 0.8554688 0.28125 0.8476563 0.28125 0.8476563 0.4101563 0.8554688 0.40625 0.8554688 0.4101563 0.6445313 0.4570313 0.6484375 0.4140625 0.6484375 0.4960938 0.6445313 0.3476563 0.6484375 0.2773438 0.6484375 0.3476563 0.8320313 0.578125 0.8046875 0.5742188 0.8320313 0.5742188 0.8046875 0.5703125 0.8320313 0.5664063 0.8320313 0.5703125 0.8945313 0.296875 0.8554688 0.3046875 0.8554688 0.296875 0.8984375 0.578125 0.9453125 0.5820313 0.8984375 0.5820313 0.8085938 0.609375 0.8046875 0.6015625 0.8085938 0.6054688 0.8320313 0.5703125 0.8320313 0.5664063 0.890625 0.5664063 0.9453125 0.5234375 0.8984375 0.5195313 0.9453125 0.5195313 0.9414063 0.5273438 0.9453125 0.5195313 0.9453125 0.53125 0.9453125 0.5273438 0.8984375 0.53125 0.8984375 0.5273438 0.8984375 0.5742188 0.890625 0.578125 0.8320313 0.5742188 0.8046875 0.5234375 0.8320313 0.5195313 0.8320313 0.5234375 0.8046875 0.5273438 0.8320313 0.53125 0.8046875 0.53125 0.8085938 0.5234375 0.8046875 0.53125 0.8046875 0.5195313 0.8945313 0.3046875 0.8554688 0.3125 0.8554688 0.3046875 0.9453125 0.515625 0.8984375 0.5195313 0.8984375 0.515625 0.9414063 0.515625 0.9453125 0.5078125 0.9453125 0.5195313 0.9453125 0.5117188 0.8984375 0.5078125 0.9453125 0.5078125 0.890625 0.5898438 0.8320313 0.5898438 0.8320313 0.5859375 0.8046875 0.515625 0.8320313 0.5195313 0.8046875 0.5195313 0.8046875 0.5117188 0.8320313 0.5078125 0.8320313 0.5117188 0.8085938 0.5117188 0.8046875 0.5195313 0.8046875 0.5078125 0.890625 0.5898438 0.8984375 0.5898438 0.8984375 0.59375 0.9453125 0.5039063 0.8984375 0.5078125 0.8984375 0.5039063 0.9414063 0.5039063 0.9453125 0.4960938 0.9453125 0.5078125 0.9453125 0.5 0.8984375 0.4960938 0.9453125 0.4960938 0.8945313 0.4101563 0.8554688 0.4101563 0.8554688 0.3984375 0.8046875 0.5039063 0.8320313 0.5078125 0.8046875 0.5078125 0.8046875 0.5 0.8320313 0.4960938 0.8320313 0.5 0.8085938 0.5 0.8046875 0.5078125 0.8046875 0.4960938 0.7958816 0.4011822 0.7107183 0.3984869 0.792643 0.3962891 0.8320313 0.5351563 0.8828125 0.5390625 0.8320313 0.5390625 0.8320313 0.546875 0.8828125 0.5507813 0.8320313 0.5507813 0.8320313 0.5585938 0.8828125 0.5625 0.8320313 0.5625 0.9414063 0.6171875 0.9453125 0.625 0.9414063 0.6210938 0.9453125 0.5859375 0.8984375 0.5898438 0.8984375 0.5859375 0.8046875 0.5390625 0.8320313 0.5429688 0.8046875 0.5429688 0.8320313 0.5390625 0.8984375 0.5429688 0.8320313 0.5429688 0.9453125 0.5390625 0.8984375 0.5429688 0.8984375 0.5390625 0.9414063 0.5351563 0.9453125 0.5429688 0.9414063 0.5390625 0.9453125 0.53125 0.8984375 0.5351563 0.9453125 0.5351563 0.8984375 0.53125 0.8320313 0.5351563 0.8984375 0.5351563 0.8046875 0.53125 0.8320313 0.5351563 0.8320313 0.53125 0.8085938 0.5390625 0.8046875 0.53125 0.8085938 0.5351563 0.8046875 0.546875 0.8320313 0.5429688 0.8320313 0.546875 0.8984375 0.546875 0.8320313 0.5429688 0.8984375 0.5429688 0.9453125 0.546875 0.8984375 0.5429688 0.9453125 0.5429688 0.9414063 0.546875 0.9453125 0.5546875 0.9414063 0.5507813 0.9453125 0.5507813 0.8984375 0.5546875 0.8984375 0.5507813 0.8320313 0.5507813 0.8984375 0.5546875 0.8320313 0.5546875 0.8046875 0.5507813 0.8320313 0.5546875 0.8046875 0.5546875 0.8085938 0.5507813 0.8046875 0.5429688 0.8085938 0.546875 0.8046875 0.5585938 0.8320313 0.5546875 0.8320313 0.5585938 0.8984375 0.5585938 0.8320313 0.5546875 0.8984375 0.5546875 0.9453125 0.5585938 0.8984375 0.5546875 0.9453125 0.5546875 0.9414063 0.5585938 0.9453125 0.5664063 0.9414063 0.5625 0.9453125 0.5625 0.8984375 0.5664063 0.8984375 0.5625 0.8320313 0.5625 0.8984375 0.5664063 0.8320313 0.5664063 0.8046875 0.5625 0.8320313 0.5664063 0.8046875 0.5664063 0.8085938 0.5625 0.8046875 0.5546875 0.8085938 0.5585938 0.6210938 0.4609375 0.625 0.4804688 0.6210938 0.484375 0.6445313 0.5351563 0.6484375 0.4960938 0.6484375 0.5351563 0.8984375 0.5039063 0.8984375 0.5078125 0.890625 0.5078125 0.8085938 0.6210938 0.8046875 0.6132813 0.8085938 0.6171875 0.8320313 0.5898438 0.8046875 0.5859375 0.8320313 0.5859375 0.6210938 0.4296875 0.625 0.4492188 0.6210938 0.453125 0.9453125 0.5742188 0.8984375 0.578125 0.8984375 0.5742188 0.6210938 0.453125 0.6328125 0.4492188 0.6367188 0.453125 0.8554688 0.3984375 0.8945313 0.390625 0.8945313 0.3984375 0.625 0.4648438 0.6328125 0.4804688 0.625 0.4804688 0.8945313 0.34375 0.8554688 0.3515625 0.8554688 0.34375 0.8945313 0.3359375 0.9023438 0.328125 0.9023438 0.3359375 0.8945313 0.2890625 0.9023438 0.28125 0.9023438 0.2890625 0.8945313 0.2890625 0.9023438 0.296875 0.8945313 0.296875 0.8945313 0.296875 0.9023438 0.3046875 0.8945313 0.3046875 0.8945313 0.3046875 0.9023438 0.3125 0.8945313 0.3125 0.8984375 0.515625 0.8984375 0.5195313 0.890625 0.5195313 0.8945313 0.3515625 0.9023438 0.359375 0.8945313 0.359375 0.8945313 0.34375 0.9023438 0.3515625 0.8945313 0.3515625 0.8945313 0.359375 0.8554688 0.3671875 0.8554688 0.359375 0.6484375 0.5351563 0.657865 0.5954006 0.6542191 0.6023433 0.6367188 0.3203125 0.625 0.3242188 0.6210938 0.3203125 0.8945313 0.3125 0.8554688 0.3203125 0.8554688 0.3125 0.8320313 0.5234375 0.8320313 0.5195313 0.890625 0.5195313 0.6367188 0.484375 0.625 0.4804688 0.6328125 0.4804688 0.6210938 0.3085938 0.6328125 0.3046875 0.6367188 0.3085938 0.8984375 0.5664063 0.9453125 0.5703125 0.8984375 0.5703125 0.6210938 0.34375 0.6328125 0.3398438 0.6367188 0.34375 0.8945313 0.3984375 0.9023438 0.390625 0.9023438 0.3984375 0.8320313 0.5117188 0.8320313 0.5078125 0.890625 0.5078125 0.8984375 0.5273438 0.8984375 0.53125 0.890625 0.53125 0.9414063 0.6289063 0.9453125 0.6367188 0.9414063 0.6328125 0.9453125 0.5976563 0.8984375 0.6015625 0.8984375 0.5976563 0.8320313 0.5 0.8320313 0.4960938 0.890625 0.4960938 0.8046875 0.59375 0.8320313 0.5898438 0.8320313 0.59375 0.8320313 0.6015625 0.8046875 0.5976563 0.8320313 0.5976563 0.8085938 0.6328125 0.8046875 0.625 0.8085938 0.6289063 0.7899345 0.6359996 0.7093751 0.6334774 0.7931929 0.6311195 0.8320313 0.6328125 0.8828125 0.6289063 0.8828125 0.6328125 0.8320313 0.6210938 0.8828125 0.6171875 0.8828125 0.6210938 0.8320313 0.609375 0.8828125 0.6054688 0.8828125 0.609375 0.8046875 0.6289063 0.8320313 0.625 0.8320313 0.6289063 0.8320313 0.6289063 0.8984375 0.625 0.8984375 0.6289063 0.8984375 0.625 0.9453125 0.6289063 0.8984375 0.6289063 0.9453125 0.5898438 0.9414063 0.5976563 0.9414063 0.59375 0.9453125 0.6328125 0.8984375 0.6367188 0.8984375 0.6328125 0.8984375 0.6328125 0.8320313 0.6367188 0.8320313 0.6328125 0.8320313 0.6367188 0.8046875 0.6328125 0.8320313 0.6328125 0.8046875 0.6015625 0.8085938 0.59375 0.8085938 0.5976563 0.8320313 0.625 0.8046875 0.6210938 0.8320313 0.6210938 0.8984375 0.6210938 0.8320313 0.625 0.8320313 0.6210938 0.9453125 0.6210938 0.8984375 0.625 0.8984375 0.6210938 0.9453125 0.578125 0.9414063 0.5859375 0.9414063 0.5820313 0.8984375 0.6132813 0.9453125 0.6171875 0.8984375 0.6171875 0.8320313 0.6171875 0.8984375 0.6132813 0.8984375 0.6171875 0.8046875 0.6171875 0.8320313 0.6132813 0.8320313 0.6171875 0.8046875 0.5898438 0.8085938 0.5820313 0.8085938 0.5859375 0.8320313 0.6132813 0.8046875 0.609375 0.8320313 0.609375 0.8984375 0.609375 0.8320313 0.6132813 0.8320313 0.609375 0.9453125 0.609375 0.8984375 0.6132813 0.8984375 0.609375 0.9453125 0.5664063 0.9414063 0.5742188 0.9414063 0.5703125 0.8984375 0.6015625 0.9453125 0.6054688 0.8984375 0.6054688 0.8320313 0.6054688 0.8984375 0.6015625 0.8984375 0.6054688 0.8046875 0.6054688 0.8320313 0.6015625 0.8320313 0.6054688 0.8046875 0.578125 0.8085938 0.5703125 0.8085938 0.5742188 0.8554688 0.390625 0.8945313 0.3828125 0.8945313 0.390625 0.6210938 0.4296875 0.6445313 0.4179688 0.6367188 0.4296875 0.6132813 0.2773438 0.6367188 0.2851563 0.6210938 0.2851563 0.6367188 0.484375 0.6132813 0.4960938 0.6210938 0.484375 0.6132813 0.4179688 0.6210938 0.4296875 0.6210938 0.453125 0.8085938 0.5039063 0.8320313 0.5 0.8320313 0.5039063 0.8320313 0.5039063 0.8828125 0.5 0.8828125 0.5039063 0.8828125 0.5 0.9414063 0.5039063 0.8828125 0.5039063 0.8320313 0.5234375 0.8085938 0.5273438 0.8085938 0.5234375 0.8828125 0.5234375 0.8320313 0.5273438 0.8320313 0.5234375 0.8828125 0.5234375 0.9414063 0.5273438 0.8828125 0.5273438 0.8085938 0.515625 0.8320313 0.5117188 0.8320313 0.515625 0.8320313 0.515625 0.8828125 0.5117188 0.8828125 0.515625 0.8828125 0.5117188 0.9414063 0.515625 0.8828125 0.515625 0.8085938 0.5820313 0.8320313 0.5859375 0.8085938 0.5859375 0.8320313 0.5820313 0.8828125 0.5859375 0.8320313 0.5859375 0.8828125 0.5859375 0.9414063 0.5820313 0.9414063 0.5859375 0.8085938 0.5703125 0.8320313 0.5742188 0.8085938 0.5742188 0.8828125 0.5742188 0.8320313 0.5703125 0.8828125 0.5703125 0.8828125 0.5742188 0.9414063 0.5703125 0.9414063 0.5742188 0.8945313 0.390625 0.8945313 0.3828125 0.9023438 0.3828125 0.8945313 0.3671875 0.8945313 0.359375 0.9023438 0.359375 0.8085938 0.59375 0.8320313 0.59375 0.8320313 0.5976563 0.6210938 0.3085938 0.6210938 0.2851563 0.625 0.2890625 0.890625 0.6015625 0.8320313 0.6015625 0.8320313 0.5976563 0.8320313 0.5976563 0.8984375 0.5976563 0.890625 0.6015625 0.8945313 0.3203125 0.8945313 0.328125 0.8554688 0.328125 0.8046875 0.4960938 0.8046875 0.2773438 0.84375 0.2773438 0.6210938 0.34375 0.6210938 0.3203125 0.625 0.3242188 0.6328125 0.4804688 0.6328125 0.4648438 0.6367188 0.4609375 0.6484375 0.7929688 0.6484375 0.7890625 0.6484375 0.7578125 0.6484375 0.7578125 0.6484375 0.7539063 0.6484375 0.7929688 0.6484375 0.7539063 0.8046875 0.7539063 0.6484375 0.7929688 0.8984375 0.5898438 0.9453125 0.5898438 0.9453125 0.59375 0.6367188 0.4609375 0.6328125 0.4648438 0.625 0.4648438 0.6328125 0.4492188 0.6328125 0.4335938 0.6367188 0.4296875 0.9414063 0.59375 0.9414063 0.5976563 0.8828125 0.5976563 0.8945313 0.375 0.9023438 0.375 0.9023438 0.3828125 0.8945313 0.375 0.8945313 0.3671875 0.9023438 0.3671875 0.6210938 0.3203125 0.6210938 0.34375 0.6132813 0.3476563 0.6132813 0.3476563 0.6132813 0.2773438 0.6210938 0.3085938 0.6132813 0.2773438 0.6210938 0.2851563 0.6210938 0.3085938 0.6210938 0.3203125 0.6132813 0.3476563 0.6210938 0.3085938 0.6367188 0.3085938 0.6367188 0.2851563 0.6445313 0.2773438 0.6210938 0.3203125 0.6210938 0.3085938 0.6367188 0.3085938 0.6445313 0.3476563 0.6367188 0.34375 0.6367188 0.3203125 0.6367188 0.3203125 0.6210938 0.3203125 0.6367188 0.3085938 0.6367188 0.3085938 0.6445313 0.2773438 0.6445313 0.3476563 0.6367188 0.34375 0.6328125 0.3398438 0.6328125 0.3242188 0.8945313 0.34375 0.8945313 0.3359375 0.9023438 0.3359375 0.6367188 0.4296875 0.6328125 0.4335938 0.625 0.4335938 0.6367188 0.3085938 0.6328125 0.3046875 0.6328125 0.2890625 0.6484375 0.4960938 0.6484375 0.4140625 0.6553167 0.429395 0.6484375 0.4140625 0.6551535 0.4274626 0.6553167 0.429395 0.6553167 0.429395 0.6589134 0.4344661 0.6590877 0.4363514 0.79587 0.4048618 0.8046875 0.4960938 0.712595 0.4026403 0.8046875 0.4960938 0.6484375 0.4960938 0.6739633 0.4412869 0.6739633 0.4412869 0.712595 0.4026403 0.8046875 0.4960938 0.6590877 0.4363514 0.6626338 0.4413934 0.6627917 0.443255 0.6553167 0.429395 0.6590877 0.4363514 0.6484375 0.4960938 0.6590877 0.4363514 0.6627917 0.443255 0.6484375 0.4960938 0.8554688 0.3984375 0.8476563 0.3984375 0.8476563 0.390625 0.8554688 0.390625 0.8476563 0.390625 0.8476563 0.3828125 0.8476563 0.3828125 0.8476563 0.375 0.8554688 0.375 0.8554688 0.375 0.8476563 0.375 0.8476563 0.3671875 0.8554688 0.3671875 0.8476563 0.3671875 0.8476563 0.359375 0.8476563 0.359375 0.8476563 0.3515625 0.8554688 0.3515625 0.8476563 0.3515625 0.8476563 0.34375 0.8554688 0.34375 0.8554688 0.34375 0.8476563 0.34375 0.8476563 0.3359375 0.8554688 0.3359375 0.8476563 0.3359375 0.8476563 0.328125 0.8476563 0.328125 0.8476563 0.3203125 0.8554688 0.3203125 0.8476563 0.3203125 0.8476563 0.3125 0.8554688 0.3125 0.8476563 0.3125 0.8476563 0.3046875 0.8554688 0.3046875 0.8476563 0.3046875 0.8476563 0.296875 0.8554688 0.296875 0.8476563 0.296875 0.8476563 0.2890625 0.8554688 0.2890625 0.8320313 0.59375 0.8828125 0.59375 0.8828125 0.5976563 0.8945313 0.3671875 0.8945313 0.375 0.8554688 0.375 0.6171875 0.3515625 0.6132813 0.3476563 0.6445313 0.3476563 0.6484375 0.5351563 0.6484375 0.4960938 0.8046875 0.4960938 0.6328125 0.3046875 0.625 0.3046875 0.625 0.2890625 0.8945313 0.3515625 0.8945313 0.359375 0.8554688 0.359375 0.8945313 0.3359375 0.8945313 0.34375 0.8554688 0.34375 0.8554688 0.2890625 0.8476563 0.2890625 0.8476563 0.28125 0.6367188 0.34375 0.6445313 0.3476563 0.6132813 0.3476563 0.8945313 0.375 0.8945313 0.3828125 0.8554688 0.3828125 0.8945313 0.2890625 0.8554688 0.2890625 0.8945313 0.2773438 0.8554688 0.2890625 0.8554688 0.28125 0.8554688 0.2773438 0.8945313 0.2773438 0.8554688 0.2890625 0.8554688 0.2773438 0.8945313 0.3125 0.9023438 0.3125 0.9023438 0.3203125 0.9414063 0.6054688 0.9453125 0.6015625 0.9453125 0.6132813 0.8945313 0.3203125 0.9023438 0.3203125 0.9023438 0.328125 0.6328125 0.4492188 0.625 0.4492188 0.625 0.4335938 0.8945313 0.2890625 0.8945313 0.296875 0.8554688 0.296875 0.625 0.3242188 0.6328125 0.3242188 0.6328125 0.3398438 0.7067155 0.6729791 0.8046875 0.7539063 0.6721291 0.7070778 0.8046875 0.7539063 0.6484375 0.7539063 0.6721291 0.7070778 0.6851683 0.6598361 0.6862586 0.6534677 0.6942515 0.660293 0.665088 0.6946941 0.6966667 0.663116 0.6991799 0.6652868 0.6685958 0.7009387 0.7017183 0.6680247 0.7042396 0.670189 0.6825394 0.6662004 0.6851683 0.6598361 0.6942515 0.660293 0.665088 0.6946941 0.6991799 0.6652868 0.6666692 0.697633 0.665088 0.6946941 0.6666692 0.697633 0.6579065 0.7014715 0.6545063 0.6970323 0.665088 0.6946941 0.6579065 0.7014715 0.6545063 0.6970323 0.6579065 0.7014715 0.658129 0.7032284 0.6685958 0.7009387 0.7042396 0.670189 0.6701936 0.7038277 0.6685958 0.7009387 0.6701936 0.7038277 0.6615781 0.7076281 0.658129 0.7032284 0.6685958 0.7009387 0.6615781 0.7076281 0.6618196 0.7093647 0.6721291 0.7070778 0.6484375 0.7539063 0.658129 0.7032284 0.6615781 0.7076281 0.6618196 0.7093647 0.6545063 0.6970323 0.658129 0.7032284 0.6484375 0.7539063 0.658129 0.7032284 0.6618196 0.7093647 0.6484375 0.7539063 0.678657 0.672223 0.6825394 0.6662004 0.6942515 0.660293 0.6736712 0.6775319 0.678657 0.672223 0.6942515 0.660293 0.6543128 0.6952406 0.6545063 0.6970323 0.6484375 0.6875 0.6545063 0.6970323 0.6484375 0.7539063 0.6484375 0.6875 0.6736712 0.6775319 0.6942515 0.660293 0.6631827 0.691349 0.6736712 0.6775319 0.6631827 0.691349 0.6678602 0.6818433 0.6631827 0.691349 0.6543128 0.6952406 0.6550616 0.6870194 0.6678602 0.6818433 0.6631827 0.691349 0.6615377 0.6850305 0.6615377 0.6850305 0.6631827 0.691349 0.6550616 0.6870194 0.8945313 0.328125 0.8945313 0.3359375 0.8554688 0.3359375 0.6367188 0.2851563 0.6328125 0.2890625 0.625 0.2890625 0.6132813 0.3476563 0.609375 0.3476563 0.609375 0.2773438 0.6132813 0.4570313 0.6132813 0.4960938 0.609375 0.4960938 0.609375 0.4960938 0.609375 0.4179688 0.6132813 0.4570313 0.8945313 0.40625 0.9023438 0.40625 0.9023438 0.4101563 0.9023438 0.2773438 0.9023438 0.28125 0.8945313 0.28125 0.8945313 0.3984375 0.9023438 0.3984375 0.9023438 0.40625 0.8984375 0.5820313 0.8320313 0.5820313 0.890625 0.578125 0.8320313 0.5820313 0.8320313 0.578125 0.890625 0.578125 0.6132813 0.4179688 0.6171875 0.4140625 0.640625 0.4140625 0.6484375 0.2773438 0.8046875 0.2773438 0.6708264 0.3265217 0.8046875 0.2773438 0.7060039 0.3593519 0.6708264 0.3265217 0.6941677 0.3724869 0.6869742 0.3796073 0.6852775 0.3732706 0.6988602 0.3673141 0.6964595 0.3695758 0.6645369 0.3391391 0.7036679 0.3622302 0.7012655 0.3644847 0.6676817 0.3327765 0.6484375 0.2773438 0.6708264 0.3265217 0.660544 0.3246204 0.6941677 0.3724869 0.6852775 0.3732706 0.6825568 0.3669947 0.665953 0.3361465 0.6988602 0.3673141 0.6645369 0.3391391 0.6571138 0.3326402 0.665953 0.3361465 0.6645369 0.3391391 0.6571138 0.3326402 0.6645369 0.3391391 0.6539687 0.3371986 0.6572394 0.3308789 0.6571138 0.3326402 0.6539687 0.3371986 0.6691008 0.3298349 0.7036679 0.3622302 0.6676817 0.3327765 0.6484375 0.2773438 0.660544 0.3246204 0.6572394 0.3308789 0.660544 0.3246204 0.6604059 0.3263612 0.6572394 0.3308789 0.6604059 0.3263612 0.6691008 0.3298349 0.6676817 0.3327765 0.6604059 0.3263612 0.6676817 0.3327765 0.6572394 0.3308789 0.6941677 0.3724869 0.6825568 0.3669947 0.6786093 0.3611079 0.6941677 0.3724869 0.6786093 0.3611079 0.6735859 0.3559776 0.6484375 0.2773438 0.6572394 0.3308789 0.6539687 0.3371986 0.6628094 0.3425499 0.6941677 0.3724869 0.6735859 0.3559776 0.6484375 0.2773438 0.6539687 0.3371986 0.6484375 0.3476563 0.6539687 0.3371986 0.6538631 0.3389946 0.6484375 0.3476563 0.6538631 0.3389946 0.6628094 0.3425499 0.6549568 0.3471782 0.6628094 0.3425499 0.6735859 0.3559776 0.6677594 0.3518777 0.6628094 0.3425499 0.6677594 0.3518777 0.6614339 0.3489242 0.6549568 0.3471782 0.6484375 0.3476563 0.6538631 0.3389946 0.8046875 0.5820313 0.8046875 0.578125 0.8320313 0.578125 0.8476563 0.40625 0.8476563 0.3984375 0.8554688 0.3984375 0.8476563 0.2773438 0.8554688 0.2773438 0.8554688 0.28125 0.8476563 0.4101563 0.8476563 0.40625 0.8554688 0.40625 0.6484375 0.4960938 0.6445313 0.4960938 0.6445313 0.4570313 0.6445313 0.4570313 0.6445313 0.4179688 0.6484375 0.4140625 0.6445313 0.3476563 0.6445313 0.2773438 0.6484375 0.2773438 0.8320313 0.578125 0.8046875 0.578125 0.8046875 0.5742188 0.8046875 0.5703125 0.8046875 0.5664063 0.8320313 0.5664063 0.8945313 0.296875 0.8945313 0.3046875 0.8554688 0.3046875 0.8984375 0.578125 0.9453125 0.578125 0.9453125 0.5820313 0.8085938 0.609375 0.8046875 0.6132813 0.8046875 0.6015625 0.890625 0.5664063 0.8984375 0.5664063 0.8984375 0.5703125 0.8984375 0.5703125 0.8320313 0.5703125 0.890625 0.5664063 0.9453125 0.5234375 0.8984375 0.5234375 0.8984375 0.5195313 0.9414063 0.5273438 0.9414063 0.5234375 0.9453125 0.5195313 0.9453125 0.5273438 0.9453125 0.53125 0.8984375 0.53125 0.8984375 0.578125 0.890625 0.578125 0.8984375 0.5742188 0.890625 0.578125 0.8320313 0.578125 0.8320313 0.5742188 0.8046875 0.5234375 0.8046875 0.5195313 0.8320313 0.5195313 0.8046875 0.5273438 0.8320313 0.5273438 0.8320313 0.53125 0.8085938 0.5234375 0.8085938 0.5273438 0.8046875 0.53125 0.8945313 0.3046875 0.8945313 0.3125 0.8554688 0.3125 0.9453125 0.515625 0.9453125 0.5195313 0.8984375 0.5195313 0.9414063 0.515625 0.9414063 0.5117188 0.9453125 0.5078125 0.9453125 0.5117188 0.8984375 0.5117188 0.8984375 0.5078125 0.8320313 0.5859375 0.8984375 0.5859375 0.890625 0.5898438 0.8984375 0.5859375 0.8984375 0.5898438 0.890625 0.5898438 0.8046875 0.515625 0.8320313 0.515625 0.8320313 0.5195313 0.8046875 0.5117188 0.8046875 0.5078125 0.8320313 0.5078125 0.8085938 0.5117188 0.8085938 0.515625 0.8046875 0.5195313 0.8984375 0.59375 0.8320313 0.59375 0.890625 0.5898438 0.8320313 0.59375 0.8320313 0.5898438 0.890625 0.5898438 0.9453125 0.5039063 0.9453125 0.5078125 0.8984375 0.5078125 0.9414063 0.5039063 0.9414063 0.5 0.9453125 0.4960938 0.9453125 0.5 0.8984375 0.5 0.8984375 0.4960938 0.8554688 0.40625 0.8554688 0.3984375 0.8554688 0.4101563 0.8554688 0.3984375 0.8945313 0.3984375 0.8945313 0.4101563 0.8945313 0.3984375 0.8945313 0.40625 0.8945313 0.4101563 0.8046875 0.5039063 0.8320313 0.5039063 0.8320313 0.5078125 0.8046875 0.5 0.8046875 0.4960938 0.8320313 0.4960938 0.8085938 0.5 0.8085938 0.5039063 0.8046875 0.5078125 0.8046875 0.2773438 0.8046875 0.4960938 0.7958816 0.4011822 0.8046875 0.4960938 0.79587 0.4048618 0.7958816 0.4011822 0.7088977 0.3616208 0.7060039 0.3593519 0.7934817 0.3560252 0.7060039 0.3593519 0.8046875 0.2773438 0.7934817 0.3560252 0.6719875 0.4374769 0.6626338 0.4413934 0.6703681 0.4343076 0.6626338 0.4413934 0.6590877 0.4363514 0.6703681 0.4343076 0.7107183 0.3984869 0.6719875 0.4374769 0.6703681 0.4343076 0.6683581 0.4304701 0.6589134 0.4344661 0.6667141 0.4272662 0.6589134 0.4344661 0.6553167 0.429395 0.6667141 0.4272662 0.7072473 0.3915 0.6683581 0.4304701 0.6667141 0.4272662 0.7037395 0.3845635 0.6647186 0.4234158 0.6765272 0.4028772 0.6647186 0.4234158 0.6551535 0.4274626 0.6564746 0.4133117 0.6765272 0.4028772 0.6647186 0.4234158 0.6707679 0.4072312 0.6551535 0.4274626 0.6484375 0.4140625 0.6564746 0.4133117 0.6564746 0.4133117 0.664846 0.4109677 0.6647186 0.4234158 0.664846 0.4109677 0.6707679 0.4072312 0.6647186 0.4234158 0.7037395 0.3845635 0.6765272 0.4028772 0.6808764 0.3969842 0.7037395 0.3845635 0.6808764 0.3969842 0.6847027 0.3909546 0.6862974 0.3846162 0.6869742 0.3796073 0.7037395 0.3845635 0.6869742 0.3796073 0.6941677 0.3724869 0.7019447 0.3798312 0.7037395 0.3845635 0.6869742 0.3796073 0.7019447 0.3798312 0.7037395 0.3845635 0.6847027 0.3909546 0.6862974 0.3846162 0.7886615 0.3855476 0.7037395 0.3845635 0.7019447 0.3798312 0.7886615 0.3855476 0.7019447 0.3798312 0.7870407 0.3757169 0.789077 0.3885076 0.7886615 0.3855476 0.7922265 0.3932982 0.7886615 0.3855476 0.7870407 0.3757169 0.7922265 0.3932982 0.7870407 0.3757169 0.7873313 0.3727117 0.7902636 0.3677988 0.7922265 0.3932982 0.7870407 0.3757169 0.7902636 0.3677988 0.7072473 0.3915 0.6667141 0.4272662 0.7056617 0.3886672 0.7922265 0.3932982 0.7072473 0.3915 0.789077 0.3885076 0.7072473 0.3915 0.7056617 0.3886672 0.789077 0.3885076 0.7034366 0.3757264 0.6964595 0.3695758 0.7047283 0.3728319 0.6964595 0.3695758 0.6988602 0.3673141 0.7047283 0.3728319 0.7873313 0.3727117 0.7034366 0.3757264 0.7047283 0.3728319 0.7873313 0.3727117 0.7047283 0.3728319 0.7902636 0.3677988 0.7922265 0.3932982 0.7902636 0.3677988 0.7936452 0.3597685 0.7902636 0.3677988 0.7905749 0.3647736 0.7936452 0.3597685 0.792643 0.3962891 0.7922265 0.3932982 0.7958816 0.4011822 0.7062069 0.3686895 0.7012655 0.3644847 0.7074477 0.3657639 0.7012655 0.3644847 0.7036679 0.3622302 0.7074477 0.3657639 0.7905749 0.3647736 0.7062069 0.3686895 0.7074477 0.3657639 0.7936452 0.3597685 0.7934817 0.3560252 0.8046875 0.2773438 0.7905749 0.3647736 0.7074477 0.3657639 0.7936452 0.3597685 0.7922265 0.3932982 0.7936452 0.3597685 0.7958816 0.4011822 0.7936452 0.3597685 0.8046875 0.2773438 0.7958816 0.4011822 0.7107183 0.3984869 0.6703681 0.4343076 0.709154 0.3956355 0.7107183 0.3984869 0.709154 0.3956355 0.792643 0.3962891 0.8828125 0.5351563 0.9414063 0.5351563 0.8828125 0.5390625 0.9414063 0.5351563 0.9414063 0.5390625 0.8828125 0.5390625 0.8085938 0.5390625 0.8085938 0.5351563 0.8320313 0.5390625 0.8085938 0.5351563 0.8320313 0.5351563 0.8320313 0.5390625 0.8320313 0.5351563 0.8828125 0.5351563 0.8828125 0.5390625 0.8828125 0.546875 0.9414063 0.546875 0.8828125 0.5507813 0.9414063 0.546875 0.9414063 0.5507813 0.8828125 0.5507813 0.8085938 0.5507813 0.8085938 0.546875 0.8320313 0.5507813 0.8085938 0.546875 0.8320313 0.546875 0.8320313 0.5507813 0.8320313 0.546875 0.8828125 0.546875 0.8828125 0.5507813 0.8828125 0.5585938 0.9414063 0.5585938 0.8828125 0.5625 0.9414063 0.5585938 0.9414063 0.5625 0.8828125 0.5625 0.8085938 0.5625 0.8085938 0.5585938 0.8320313 0.5625 0.8085938 0.5585938 0.8320313 0.5585938 0.8320313 0.5625 0.8320313 0.5585938 0.8828125 0.5585938 0.8828125 0.5625 0.9414063 0.6171875 0.9453125 0.6132813 0.9453125 0.625 0.9453125 0.5859375 0.9453125 0.5898438 0.8984375 0.5898438 0.8046875 0.5390625 0.8320313 0.5390625 0.8320313 0.5429688 0.8320313 0.5390625 0.8984375 0.5390625 0.8984375 0.5429688 0.9453125 0.5390625 0.9453125 0.5429688 0.8984375 0.5429688 0.9414063 0.5351563 0.9453125 0.53125 0.9453125 0.5429688 0.9453125 0.53125 0.8984375 0.53125 0.8984375 0.5351563 0.8984375 0.53125 0.8320313 0.53125 0.8320313 0.5351563 0.8046875 0.53125 0.8046875 0.5351563 0.8320313 0.5351563 0.8085938 0.5390625 0.8046875 0.5429688 0.8046875 0.53125 0.8046875 0.546875 0.8046875 0.5429688 0.8320313 0.5429688 0.8984375 0.546875 0.8320313 0.546875 0.8320313 0.5429688 0.9453125 0.546875 0.8984375 0.546875 0.8984375 0.5429688 0.9414063 0.546875 0.9453125 0.5429688 0.9453125 0.5546875 0.9453125 0.5507813 0.9453125 0.5546875 0.8984375 0.5546875 0.8320313 0.5507813 0.8984375 0.5507813 0.8984375 0.5546875 0.8046875 0.5507813 0.8320313 0.5507813 0.8320313 0.5546875 0.8085938 0.5507813 0.8046875 0.5546875 0.8046875 0.5429688 0.8046875 0.5585938 0.8046875 0.5546875 0.8320313 0.5546875 0.8984375 0.5585938 0.8320313 0.5585938 0.8320313 0.5546875 0.9453125 0.5585938 0.8984375 0.5585938 0.8984375 0.5546875 0.9414063 0.5585938 0.9453125 0.5546875 0.9453125 0.5664063 0.9453125 0.5625 0.9453125 0.5664063 0.8984375 0.5664063 0.8320313 0.5625 0.8984375 0.5625 0.8984375 0.5664063 0.8046875 0.5625 0.8320313 0.5625 0.8320313 0.5664063 0.8085938 0.5625 0.8046875 0.5664063 0.8046875 0.5546875 0.6210938 0.4609375 0.625 0.4648438 0.625 0.4804688 0.6445313 0.5351563 0.6445313 0.4960938 0.6484375 0.4960938 0.8320313 0.5078125 0.8320313 0.5039063 0.890625 0.5078125 0.8320313 0.5039063 0.8984375 0.5039063 0.890625 0.5078125 0.8085938 0.6210938 0.8046875 0.625 0.8046875 0.6132813 0.8320313 0.5898438 0.8046875 0.5898438 0.8046875 0.5859375 0.6210938 0.4296875 0.625 0.4335938 0.625 0.4492188 0.9453125 0.5742188 0.9453125 0.578125 0.8984375 0.578125 0.6210938 0.453125 0.625 0.4492188 0.6328125 0.4492188 0.8554688 0.3984375 0.8554688 0.390625 0.8945313 0.390625 0.625 0.4648438 0.6328125 0.4648438 0.6328125 0.4804688 0.8945313 0.34375 0.8945313 0.3515625 0.8554688 0.3515625 0.8945313 0.3359375 0.8945313 0.328125 0.9023438 0.328125 0.8945313 0.2890625 0.8945313 0.28125 0.9023438 0.28125 0.8945313 0.2890625 0.9023438 0.2890625 0.9023438 0.296875 0.8945313 0.296875 0.9023438 0.296875 0.9023438 0.3046875 0.8945313 0.3046875 0.9023438 0.3046875 0.9023438 0.3125 0.8320313 0.5195313 0.8320313 0.515625 0.890625 0.5195313 0.8320313 0.515625 0.8984375 0.515625 0.890625 0.5195313 0.8945313 0.3515625 0.9023438 0.3515625 0.9023438 0.359375 0.8945313 0.34375 0.9023438 0.34375 0.9023438 0.3515625 0.8945313 0.359375 0.8945313 0.3671875 0.8554688 0.3671875 0.6484375 0.5351563 0.8046875 0.5351563 0.6725161 0.590524 0.8046875 0.5351563 0.7931963 0.6274399 0.7112594 0.6293308 0.6725161 0.590524 0.8046875 0.5351563 0.7112594 0.6293308 0.6613433 0.5885105 0.661254 0.5903719 0.657865 0.5954006 0.6484375 0.5351563 0.6725161 0.590524 0.6613433 0.5885105 0.6540729 0.6042755 0.6484375 0.6210938 0.6542191 0.6023433 0.6484375 0.6210938 0.6484375 0.5351563 0.6542191 0.6023433 0.657865 0.5954006 0.657732 0.5972856 0.6542191 0.6023433 0.6484375 0.5351563 0.6613433 0.5885105 0.657865 0.5954006 0.6367188 0.3203125 0.6328125 0.3242188 0.625 0.3242188 0.8945313 0.3125 0.8945313 0.3203125 0.8554688 0.3203125 0.8984375 0.5195313 0.8984375 0.5234375 0.890625 0.5195313 0.8984375 0.5234375 0.8320313 0.5234375 0.890625 0.5195313 0.6367188 0.484375 0.6210938 0.484375 0.625 0.4804688 0.6210938 0.3085938 0.625 0.3046875 0.6328125 0.3046875 0.8984375 0.5664063 0.9453125 0.5664063 0.9453125 0.5703125 0.6210938 0.34375 0.625 0.3398438 0.6328125 0.3398438 0.8945313 0.3984375 0.8945313 0.390625 0.9023438 0.390625 0.8984375 0.5078125 0.8984375 0.5117188 0.890625 0.5078125 0.8984375 0.5117188 0.8320313 0.5117188 0.890625 0.5078125 0.8320313 0.53125 0.8320313 0.5273438 0.890625 0.53125 0.8320313 0.5273438 0.8984375 0.5273438 0.890625 0.53125 0.9414063 0.6289063 0.9453125 0.625 0.9453125 0.6367188 0.9453125 0.5976563 0.9453125 0.6015625 0.8984375 0.6015625 0.8984375 0.4960938 0.8984375 0.5 0.890625 0.4960938 0.8984375 0.5 0.8320313 0.5 0.890625 0.4960938 0.8046875 0.59375 0.8046875 0.5898438 0.8320313 0.5898438 0.8320313 0.6015625 0.8046875 0.6015625 0.8046875 0.5976563 0.8085938 0.6328125 0.8046875 0.6367188 0.8046875 0.625 0.7931963 0.6274399 0.8046875 0.5351563 0.7931929 0.6311195 0.8046875 0.5351563 0.8046875 0.7539063 0.7931929 0.6311195 0.8046875 0.7539063 0.7067155 0.6729791 0.7931327 0.6730901 0.7067155 0.6729791 0.709585 0.6706083 0.7931327 0.6730901 0.8046875 0.7539063 0.7931327 0.6730901 0.7931531 0.6693429 0.7079739 0.6665234 0.7042396 0.670189 0.7017183 0.6680247 0.7931929 0.6311195 0.8046875 0.7539063 0.7931531 0.6693429 0.7079739 0.6665234 0.7017183 0.6680247 0.7066196 0.6636469 0.657865 0.5954006 0.661254 0.5903719 0.669142 0.5974904 0.661254 0.5903719 0.6706756 0.5943269 0.669142 0.5974904 0.669142 0.5974904 0.6706756 0.5943269 0.7093751 0.6334774 0.6542191 0.6023433 0.657732 0.5972856 0.6656011 0.6045186 0.657732 0.5972856 0.6672064 0.6013207 0.6656011 0.6045186 0.6656011 0.6045186 0.6672064 0.6013207 0.7058358 0.6404517 0.6540729 0.6042755 0.6635924 0.6083861 0.6543546 0.6202624 0.6635924 0.6083861 0.7022034 0.6473758 0.6745533 0.6295657 0.6543546 0.6202624 0.6484375 0.6210938 0.6540729 0.6042755 0.6616945 0.6221625 0.6543546 0.6202624 0.6635924 0.6083861 0.6685211 0.62525 0.6616945 0.6221625 0.6635924 0.6083861 0.6745533 0.6295657 0.6685211 0.62525 0.6635924 0.6083861 0.6794179 0.6348639 0.6745533 0.6295657 0.7022034 0.6473758 0.6831247 0.6409096 0.6794179 0.6348639 0.7022034 0.6473758 0.6942515 0.660293 0.6862586 0.6534677 0.7019596 0.6526791 0.6862586 0.6534677 0.6855093 0.6472589 0.7022034 0.6473758 0.6855093 0.6472589 0.6831247 0.6409096 0.7022034 0.6473758 0.6862586 0.6534677 0.7022034 0.6473758 0.7019596 0.6526791 0.7019596 0.6526791 0.7022034 0.6473758 0.7859094 0.6467247 0.785943 0.6536587 0.7019596 0.6526791 0.7859094 0.6467247 0.785943 0.6536587 0.7859094 0.6467247 0.7895057 0.6389886 0.7859094 0.6467247 0.7863369 0.6437664 0.7895057 0.6389886 0.7863486 0.6566506 0.785943 0.6536587 0.7894666 0.6614478 0.7042044 0.6432787 0.6656011 0.6045186 0.7058358 0.6404517 0.7042044 0.6432787 0.7058358 0.6404517 0.7863369 0.6437664 0.7058358 0.6404517 0.7895057 0.6389886 0.7863369 0.6437664 0.785943 0.6536587 0.7895057 0.6389886 0.7894666 0.6614478 0.6991799 0.6652868 0.6966667 0.663116 0.7049899 0.6595649 0.6966667 0.663116 0.7035919 0.6567221 0.7049899 0.6595649 0.7049899 0.6595649 0.7035919 0.6567221 0.7863486 0.6566506 0.7894666 0.6614478 0.7049899 0.6595649 0.7863486 0.6566506 0.7079739 0.6665234 0.7066196 0.6636469 0.7898935 0.6644589 0.7898935 0.6644589 0.7894666 0.6614478 0.7931531 0.6693429 0.7894666 0.6614478 0.7895057 0.6389886 0.7931531 0.6693429 0.7895057 0.6389886 0.7899345 0.6359996 0.7931929 0.6311195 0.7931531 0.6693429 0.7895057 0.6389886 0.7931929 0.6311195 0.7931531 0.6693429 0.7079739 0.6665234 0.7898935 0.6644589 0.7077907 0.6363229 0.669142 0.5974904 0.7093751 0.6334774 0.7899345 0.6359996 0.7077907 0.6363229 0.7093751 0.6334774 0.8320313 0.6328125 0.8085938 0.6328125 0.8320313 0.6289063 0.8085938 0.6328125 0.8085938 0.6289063 0.8320313 0.6289063 0.8828125 0.6289063 0.9414063 0.6289063 0.9414063 0.6328125 0.8828125 0.6289063 0.9414063 0.6328125 0.8828125 0.6328125 0.8320313 0.6328125 0.8320313 0.6289063 0.8828125 0.6289063 0.8320313 0.6210938 0.8085938 0.6210938 0.8320313 0.6171875 0.8085938 0.6210938 0.8085938 0.6171875 0.8320313 0.6171875 0.8828125 0.6171875 0.9414063 0.6171875 0.9414063 0.6210938 0.8828125 0.6171875 0.9414063 0.6210938 0.8828125 0.6210938 0.8320313 0.6210938 0.8320313 0.6171875 0.8828125 0.6171875 0.8320313 0.609375 0.8085938 0.609375 0.8320313 0.6054688 0.8085938 0.609375 0.8085938 0.6054688 0.8320313 0.6054688 0.8828125 0.6054688 0.9414063 0.6054688 0.9414063 0.609375 0.8828125 0.6054688 0.9414063 0.609375 0.8828125 0.609375 0.8320313 0.609375 0.8320313 0.6054688 0.8828125 0.6054688 0.8046875 0.6289063 0.8046875 0.625 0.8320313 0.625 0.8320313 0.6289063 0.8320313 0.625 0.8984375 0.625 0.8984375 0.625 0.9453125 0.625 0.9453125 0.6289063 0.9453125 0.5898438 0.9453125 0.6015625 0.9414063 0.5976563 0.9453125 0.6328125 0.9453125 0.6367188 0.8984375 0.6367188 0.8984375 0.6328125 0.8984375 0.6367188 0.8320313 0.6367188 0.8320313 0.6367188 0.8046875 0.6367188 0.8046875 0.6328125 0.8046875 0.6015625 0.8046875 0.5898438 0.8085938 0.59375 0.8320313 0.625 0.8046875 0.625 0.8046875 0.6210938 0.8984375 0.6210938 0.8984375 0.625 0.8320313 0.625 0.9453125 0.6210938 0.9453125 0.625 0.8984375 0.625 0.9453125 0.578125 0.9453125 0.5898438 0.9414063 0.5859375 0.8984375 0.6132813 0.9453125 0.6132813 0.9453125 0.6171875 0.8320313 0.6171875 0.8320313 0.6132813 0.8984375 0.6132813 0.8046875 0.6171875 0.8046875 0.6132813 0.8320313 0.6132813 0.8046875 0.5898438 0.8046875 0.578125 0.8085938 0.5820313 0.8320313 0.6132813 0.8046875 0.6132813 0.8046875 0.609375 0.8984375 0.609375 0.8984375 0.6132813 0.8320313 0.6132813 0.9453125 0.609375 0.9453125 0.6132813 0.8984375 0.6132813 0.9453125 0.5664063 0.9453125 0.578125 0.9414063 0.5742188 0.8984375 0.6015625 0.9453125 0.6015625 0.9453125 0.6054688 0.8320313 0.6054688 0.8320313 0.6015625 0.8984375 0.6015625 0.8046875 0.6054688 0.8046875 0.6015625 0.8320313 0.6015625 0.8046875 0.578125 0.8046875 0.5664063 0.8085938 0.5703125 0.8554688 0.390625 0.8554688 0.3828125 0.8945313 0.3828125 0.6210938 0.4296875 0.6132813 0.4179688 0.6445313 0.4179688 0.6132813 0.2773438 0.6445313 0.2773438 0.6367188 0.2851563 0.6367188 0.484375 0.6445313 0.4960938 0.6132813 0.4960938 0.6445313 0.4960938 0.6367188 0.484375 0.6445313 0.4570313 0.6367188 0.484375 0.6367188 0.4609375 0.6445313 0.4570313 0.6210938 0.4609375 0.6210938 0.484375 0.6132813 0.4570313 0.6210938 0.484375 0.6132813 0.4960938 0.6132813 0.4570313 0.6445313 0.4570313 0.6367188 0.4609375 0.6367188 0.453125 0.6367188 0.4609375 0.6210938 0.4609375 0.6210938 0.453125 0.6367188 0.4296875 0.6445313 0.4179688 0.6367188 0.453125 0.6445313 0.4179688 0.6445313 0.4570313 0.6367188 0.453125 0.6367188 0.4609375 0.6210938 0.453125 0.6367188 0.453125 0.6210938 0.4609375 0.6132813 0.4570313 0.6210938 0.453125 0.6132813 0.4570313 0.6132813 0.4179688 0.6210938 0.453125 0.8085938 0.5039063 0.8085938 0.5 0.8320313 0.5 0.8320313 0.5039063 0.8320313 0.5 0.8828125 0.5 0.8828125 0.5 0.9414063 0.5 0.9414063 0.5039063 0.8320313 0.5234375 0.8320313 0.5273438 0.8085938 0.5273438 0.8828125 0.5234375 0.8828125 0.5273438 0.8320313 0.5273438 0.8828125 0.5234375 0.9414063 0.5234375 0.9414063 0.5273438 0.8085938 0.515625 0.8085938 0.5117188 0.8320313 0.5117188 0.8320313 0.515625 0.8320313 0.5117188 0.8828125 0.5117188 0.8828125 0.5117188 0.9414063 0.5117188 0.9414063 0.515625 0.8085938 0.5820313 0.8320313 0.5820313 0.8320313 0.5859375 0.8320313 0.5820313 0.8828125 0.5820313 0.8828125 0.5859375 0.8828125 0.5859375 0.8828125 0.5820313 0.9414063 0.5820313 0.8085938 0.5703125 0.8320313 0.5703125 0.8320313 0.5742188 0.8828125 0.5742188 0.8320313 0.5742188 0.8320313 0.5703125 0.8828125 0.5742188 0.8828125 0.5703125 0.9414063 0.5703125 + + + + + + + + + + + + + + +

41 0 0 102 1 1 103 2 2 76 3 3 98 4 4 100 5 5 222 6 6 224 7 7 225 8 8 13 9 9 34 10 10 36 11 11 161 12 12 272 13 13 273 14 14 82 15 15 51 15 16 52 16 17 58 17 18 87 17 19 88 17 20 2 18 21 33 19 22 30 20 23 27 21 24 17 22 25 9 23 26 87 24 27 57 24 28 116 24 29 269 25 30 159 25 31 158 25 32 17 26 33 23 27 34 14 28 35 32 29 36 6 30 37 18 31 38 159 32 39 161 33 40 158 34 41 75 35 42 102 1 43 74 36 44 75 35 45 100 5 46 101 37 47 11 38 48 12 39 49 114 40 50 7 41 51 37 42 52 11 43 53 79 44 54 96 45 55 97 46 56 6 47 57 26 48 58 1 49 59 12 50 60 39 51 61 8 52 62 267 53 63 266 54 64 118 55 65 42 56 66 73 57 67 43 58 68 43 58 69 72 59 70 44 60 71 72 59 72 45 61 73 44 60 74 45 61 75 70 62 76 46 63 77 46 63 78 68 64 79 47 65 80 68 64 81 48 66 82 47 65 83 69 67 84 49 68 85 48 66 86 49 68 87 66 69 88 50 70 89 50 70 90 65 71 91 51 72 92 65 71 93 52 73 94 51 72 95 64 74 96 53 75 97 52 73 98 63 76 99 54 77 100 53 75 101 62 78 102 55 79 103 54 77 104 60 80 105 56 81 106 55 79 107 223 82 108 161 33 109 224 7 110 76 83 111 45 84 112 46 85 113 105 86 114 114 40 115 111 87 116 121 88 117 58 88 118 88 88 119 40 89 120 34 90 121 39 91 122 78 92 123 47 92 124 48 92 125 80 93 126 49 94 127 50 95 128 56 81 129 113 96 130 110 97 131 7 98 132 108 99 133 2 100 134 75 101 135 44 101 136 45 101 137 0 102 138 104 103 139 86 104 140 83 105 141 94 106 142 82 107 143 128 108 144 227 109 145 127 110 146 82 107 147 95 111 148 81 112 149 32 113 150 26 114 151 31 115 152 86 116 153 55 116 154 56 117 155 33 118 156 35 119 157 30 120 158 234 121 159 109 122 160 91 123 161 81 124 162 50 125 163 51 126 164 8 127 165 34 127 166 3 128 167 108 129 168 119 130 169 120 131 170 107 132 171 20 133 172 21 134 173 106 135 174 108 136 175 105 137 176 20 138 177 104 139 178 0 140 179 38 141 180 109 142 181 106 143 182 235 144 183 236 145 184 130 146 185 20 147 186 5 148 187 24 149 188 177 150 189 73 151 190 61 152 191 166 153 192 241 154 193 167 155 194 115 156 195 42 56 196 112 157 197 24 158 198 110 159 199 113 160 200 114 161 201 112 162 202 111 163 203 25 164 204 113 165 205 118 166 206 114 167 207 116 168 208 115 169 209 232 170 210 162 171 211 163 172 212 165 173 213 233 174 214 164 175 215 85 176 216 54 177 217 55 178 218 236 179 219 131 179 220 130 179 221 162 180 222 234 181 223 165 182 224 164 183 225 233 184 226 230 185 227 135 186 228 170 186 229 171 186 230 136 187 231 171 188 232 172 189 233 136 190 234 173 190 235 137 190 236 126 191 237 122 192 238 163 193 239 146 194 240 176 195 241 147 196 242 149 197 243 177 198 244 178 199 245 146 200 246 178 201 247 175 202 248 84 203 249 53 204 250 54 205 251 139 206 252 180 206 253 138 206 254 139 207 255 182 208 256 181 209 257 140 210 258 183 210 259 182 210 260 125 211 261 242 212 262 168 213 263 150 214 264 185 215 265 184 216 266 153 217 267 186 218 268 152 219 269 153 220 270 184 221 271 187 222 272 268 223 273 269 224 274 158 225 275 143 226 276 189 226 277 142 226 278 143 227 279 191 228 280 190 229 281 144 230 282 192 230 283 191 230 284 105 231 285 111 232 286 42 233 287 154 234 288 195 235 289 194 236 290 157 237 291 196 238 292 156 239 293 157 240 294 194 241 295 197 242 296 263 243 297 262 244 298 256 245 299 204 246 300 200 247 301 199 248 302 207 249 303 211 250 304 212 251 305 215 252 306 219 253 307 220 254 308 131 255 309 238 256 310 132 257 311 132 258 312 239 258 313 133 258 314 198 259 315 245 260 316 244 261 317 199 262 318 246 263 319 245 264 320 201 265 321 246 266 322 200 267 323 202 268 324 247 269 325 201 270 326 202 271 327 249 272 328 248 273 329 203 274 330 250 275 331 249 276 332 205 277 333 250 278 334 204 279 335 198 280 336 251 281 337 205 282 338 206 283 339 253 284 340 207 285 341 208 286 342 253 287 343 254 288 344 209 289 345 254 290 346 255 291 347 209 292 348 256 293 349 210 270 350 210 294 351 257 295 352 211 295 353 212 296 354 257 297 355 258 298 356 213 299 357 258 300 358 259 301 359 213 302 360 252 303 361 206 304 362 214 305 363 261 306 364 215 307 365 216 308 366 261 309 367 262 310 368 217 311 369 262 312 370 263 313 371 217 314 372 264 315 373 218 316 374 218 317 375 265 318 376 219 319 377 220 320 378 265 321 379 266 322 380 221 323 381 266 324 382 267 325 383 221 326 384 260 327 385 214 328 386 14 329 387 22 330 388 4 331 389 16 332 390 118 333 391 121 88 392 142 334 393 189 335 394 188 336 395 169 337 396 240 338 397 166 339 398 242 340 399 169 341 400 168 342 401 1 343 402 28 344 403 15 345 404 127 258 405 226 258 406 126 258 407 15 346 408 32 347 409 18 348 410 42 349 411 41 350 412 38 351 413 23 352 414 27 353 415 22 354 416 79 355 417 48 355 418 49 356 419 80 357 420 95 111 421 96 45 422 86 358 423 107 359 424 89 360 425 86 358 426 90 361 427 85 362 428 85 362 429 92 363 430 84 364 431 84 364 432 93 365 433 83 105 434 138 366 435 180 367 436 179 368 437 78 369 438 98 4 439 77 370 440 79 44 441 99 371 442 78 369 443 77 372 444 46 373 445 47 374 446 121 375 447 317 376 448 302 377 449 11 378 450 33 379 451 10 380 452 83 381 453 52 382 454 53 383 455 147 384 456 176 385 457 123 386 458 9 387 459 22 388 460 27 389 461 13 390 462 40 391 463 12 392 464 229 393 465 128 393 466 129 393 467 2 394 468 35 395 469 7 396 470 38 141 471 103 2 472 91 397 473 152 398 474 186 399 475 124 400 476 137 401 477 173 402 478 174 403 479 159 404 480 271 405 481 160 406 482 160 407 483 272 407 484 161 407 485 156 408 486 196 409 487 193 410 488 222 411 489 275 412 490 223 413 491 276 414 492 225 415 493 224 416 494 225 417 495 274 418 496 222 419 497 314 420 498 320 421 499 321 8 500 284 422 501 280 423 502 283 424 503 287 425 504 291 426 505 288 427 506 295 428 507 299 429 508 296 430 509 278 431 510 303 432 511 279 433 512 279 434 513 304 435 514 280 436 515 304 437 516 281 438 517 280 439 518 305 440 519 282 441 520 281 442 521 282 443 522 307 444 523 283 445 524 283 446 525 308 447 526 284 448 527 308 449 528 285 450 529 284 451 530 309 452 531 278 453 532 285 454 533 311 455 534 286 456 535 287 457 536 288 458 537 311 459 538 287 460 539 289 461 540 312 462 541 288 463 542 314 464 543 289 465 544 290 442 545 315 466 546 290 467 547 291 466 548 292 468 549 315 469 550 291 470 551 293 471 552 316 472 553 292 473 554 310 474 555 293 475 556 286 476 557 319 477 558 294 478 559 295 479 560 296 480 561 319 481 562 295 482 563 297 483 564 320 484 565 296 485 566 322 486 567 297 487 568 298 488 569 323 489 570 298 490 571 299 491 572 300 492 573 323 493 574 299 494 575 301 495 576 324 496 577 300 497 578 318 498 579 301 499 580 294 500 581 43 501 582 74 502 583 41 503 584 1 504 585 24 149 586 6 505 587 120 506 588 8 507 589 3 508 590 9 509 591 16 510 592 4 511 593 20 147 594 1 504 595 15 512 596 154 513 597 156 514 598 155 515 599 155 515 600 145 516 601 142 517 602 145 516 603 143 518 604 142 517 605 147 519 606 149 520 607 146 520 608 134 521 609 148 522 610 147 519 611 134 521 612 136 523 613 137 524 614 150 525 615 152 526 616 151 527 617 151 527 618 141 528 619 138 529 620 141 528 621 139 520 622 138 529 623 166 530 624 168 531 625 169 8 626 167 532 627 133 533 628 168 531 629 133 533 630 131 8 631 132 8 632 165 534 633 163 535 634 162 8 635 126 536 636 164 537 637 129 538 638 126 536 639 128 539 640 127 8 641 41 0 642 74 36 643 102 1 644 76 3 645 77 370 646 98 4 647 222 6 648 223 82 649 224 7 650 13 9 651 3 540 652 34 10 653 273 14 654 276 541 655 224 542 656 224 542 657 161 12 658 273 14 659 82 15 660 81 16 661 51 15 662 58 17 663 57 17 664 87 17 665 2 18 666 10 543 667 33 19 668 27 21 669 29 544 670 17 22 671 116 24 672 117 24 673 120 24 674 120 24 675 119 24 676 116 24 677 119 24 678 87 24 679 116 24 680 269 545 681 270 545 682 159 545 683 17 26 684 29 546 685 23 27 686 32 29 687 31 547 688 6 30 689 159 32 690 160 8 691 161 33 692 75 35 693 101 37 694 102 1 695 75 35 696 76 3 697 100 5 698 10 548 699 2 100 700 108 99 701 108 99 702 120 506 703 13 549 704 120 506 705 3 508 706 13 549 707 10 548 708 108 99 709 13 549 710 12 39 711 8 507 712 117 550 713 10 548 714 13 549 715 12 39 716 114 40 717 7 98 718 11 38 719 11 38 720 10 548 721 12 39 722 12 39 723 117 550 724 114 40 725 7 41 726 35 551 727 37 42 728 79 44 729 80 357 730 96 45 731 6 47 732 31 552 733 26 48 734 12 50 735 40 553 736 39 51 737 118 55 738 113 554 739 244 555 740 113 554 741 251 556 742 244 555 743 244 555 744 252 520 745 259 557 746 264 558 747 58 559 748 265 520 749 58 559 750 118 55 751 266 54 752 266 54 753 265 520 754 58 559 755 259 557 756 260 560 757 267 53 758 244 555 759 259 557 760 118 55 761 259 557 762 267 53 763 118 55 764 42 56 765 61 561 766 73 57 767 43 58 768 73 57 769 72 59 770 72 59 771 71 562 772 45 61 773 45 61 774 71 562 775 70 62 776 46 63 777 70 62 778 68 64 779 68 64 780 69 67 781 48 66 782 69 67 783 67 563 784 49 68 785 49 68 786 67 563 787 66 69 788 50 70 789 66 69 790 65 71 791 65 71 792 64 74 793 52 73 794 64 74 795 63 76 796 53 75 797 63 76 798 62 78 799 54 77 800 62 78 801 60 80 802 55 79 803 60 80 804 59 564 805 56 81 806 223 82 807 158 34 808 161 33 809 76 83 810 75 565 811 45 84 812 105 86 813 108 99 814 114 40 815 121 88 816 118 333 817 58 88 818 40 89 819 36 566 820 34 90 821 78 92 822 77 92 823 47 92 824 80 93 825 79 567 826 49 94 827 56 81 828 59 564 829 113 96 830 7 98 831 114 40 832 108 99 833 75 101 834 74 101 835 44 101 836 86 104 837 56 568 838 0 102 839 56 568 840 110 569 841 5 570 842 0 102 843 56 568 844 5 570 845 83 105 846 93 365 847 94 106 848 128 108 849 228 571 850 227 109 851 82 107 852 94 106 853 95 111 854 32 113 855 28 572 856 26 114 857 86 116 858 85 117 859 55 116 860 33 118 861 37 573 862 35 119 863 273 574 864 87 575 865 276 576 866 87 575 867 119 577 868 276 576 869 99 578 870 97 579 871 230 580 872 232 581 873 122 582 874 235 583 875 242 584 876 125 585 877 268 586 878 98 587 879 99 578 880 230 580 881 232 581 882 235 583 883 241 588 884 232 581 885 241 588 886 240 589 887 231 590 888 232 581 889 240 589 890 231 590 891 240 589 892 243 591 893 242 584 894 268 586 895 275 8 896 242 584 897 275 8 898 274 8 899 243 591 900 242 584 901 274 8 902 277 592 903 276 576 904 119 577 905 243 591 906 274 8 907 277 592 908 231 590 909 243 591 910 119 577 911 243 591 912 277 592 913 119 577 914 100 8 915 98 587 916 230 580 917 101 593 918 100 8 919 230 580 920 234 121 921 231 590 922 109 122 923 231 590 924 119 577 925 109 122 926 101 593 927 230 580 928 233 594 929 101 593 930 233 594 931 102 595 932 233 594 933 234 121 934 91 123 935 102 595 936 233 594 937 103 8 938 103 8 939 233 594 940 91 123 941 81 124 942 80 596 943 50 125 944 8 127 945 39 597 946 34 127 947 108 129 948 109 598 949 119 130 950 21 134 951 16 599 952 121 600 953 121 600 954 107 132 955 21 134 956 106 135 957 109 601 958 108 136 959 20 138 960 107 602 961 104 139 962 38 141 963 91 397 964 109 142 965 130 146 966 167 603 967 235 144 968 167 603 969 241 604 970 235 144 971 20 147 972 0 605 973 5 148 974 116 606 975 57 607 976 196 608 977 57 607 978 193 609 979 196 608 980 174 610 981 67 611 982 69 612 983 179 613 984 123 614 985 176 615 986 188 616 987 124 617 988 186 618 989 116 606 990 196 608 991 197 619 992 174 610 993 69 612 994 68 620 995 185 621 996 179 613 997 176 615 998 184 622 999 185 621 1000 176 615 1001 184 622 1002 176 615 1003 175 623 1004 187 624 1005 184 622 1006 175 623 1007 195 625 1008 188 616 1009 186 618 1010 116 606 1011 197 619 1012 187 624 1013 197 619 1014 194 626 1015 187 624 1016 194 626 1017 195 625 1018 186 618 1019 194 626 1020 186 618 1021 187 624 1022 174 610 1023 68 620 1024 70 627 1025 174 610 1026 70 627 1027 71 628 1028 116 606 1029 187 624 1030 175 623 1031 177 150 1032 174 610 1033 71 628 1034 116 606 1035 175 623 1036 115 629 1037 175 623 1038 178 630 1039 115 629 1040 178 630 1041 177 150 1042 61 152 1043 177 150 1044 71 628 1045 72 631 1046 177 150 1047 72 631 1048 73 151 1049 61 152 1050 115 629 1051 178 630 1052 166 153 1053 240 632 1054 241 154 1055 115 156 1056 61 561 1057 42 56 1058 24 158 1059 5 633 1060 110 159 1061 114 161 1062 115 634 1063 112 162 1064 118 166 1065 19 635 1066 25 164 1067 25 164 1068 24 636 1069 113 165 1070 114 167 1071 117 637 1072 116 168 1073 232 170 1074 231 638 1075 162 171 1076 165 173 1077 234 639 1078 233 174 1079 85 176 1080 84 640 1081 54 177 1082 236 641 1083 237 641 1084 131 641 1085 162 180 1086 231 642 1087 234 181 1088 230 185 1089 229 643 1090 129 644 1091 129 644 1092 164 183 1093 230 185 1094 135 645 1095 134 645 1096 170 645 1097 136 187 1098 135 646 1099 171 188 1100 136 647 1101 172 647 1102 173 647 1103 226 648 1104 122 192 1105 126 191 1106 122 192 1107 232 649 1108 163 193 1109 146 194 1110 175 650 1111 176 195 1112 149 197 1113 148 651 1114 177 198 1115 146 200 1116 149 652 1117 178 201 1118 84 203 1119 83 653 1120 53 204 1121 139 654 1122 181 654 1123 180 654 1124 139 207 1125 140 655 1126 182 208 1127 140 645 1128 141 645 1129 183 645 1130 168 213 1131 133 656 1132 125 211 1133 133 656 1134 239 657 1135 125 211 1136 150 214 1137 151 658 1138 185 215 1139 153 217 1140 187 659 1141 186 218 1142 153 220 1143 150 660 1144 184 221 1145 158 225 1146 223 661 1147 268 223 1148 223 661 1149 275 662 1150 268 223 1151 143 663 1152 190 663 1153 189 663 1154 143 227 1155 144 664 1156 191 228 1157 144 665 1158 145 665 1159 192 665 1160 112 666 1161 42 233 1162 111 232 1163 42 233 1164 38 667 1165 105 231 1166 38 667 1167 106 668 1168 105 231 1169 154 234 1170 155 669 1171 195 235 1172 157 237 1173 197 670 1174 196 238 1175 157 240 1176 154 671 1177 194 241 1178 57 607 1179 58 559 1180 263 243 1181 58 559 1182 264 558 1183 263 243 1184 192 672 1185 193 609 1186 191 673 1187 193 609 1188 57 607 1189 191 673 1190 261 674 1191 260 560 1192 258 675 1193 260 560 1194 259 557 1195 258 675 1196 262 244 1197 261 674 1198 258 675 1199 253 676 1200 252 520 1201 245 677 1202 252 520 1203 244 555 1204 245 677 1205 254 678 1206 253 676 1207 245 677 1208 249 679 1209 250 680 1210 63 681 1211 250 680 1212 251 556 1213 59 682 1214 63 681 1215 250 680 1216 62 683 1217 251 556 1218 113 554 1219 59 682 1220 59 682 1221 60 684 1222 250 680 1223 60 684 1224 62 683 1225 250 680 1226 249 679 1227 63 681 1228 64 685 1229 249 679 1230 64 685 1231 65 686 1232 66 687 1233 67 611 1234 249 679 1235 67 611 1236 174 610 1237 173 688 1238 249 679 1239 67 611 1240 173 688 1241 249 679 1242 65 686 1243 66 687 1244 248 689 1245 249 679 1246 173 688 1247 248 689 1248 173 688 1249 172 520 1250 247 520 1251 248 689 1252 255 520 1253 248 689 1254 172 520 1255 255 520 1256 172 520 1257 171 690 1258 181 520 1259 255 520 1260 172 520 1261 181 520 1262 254 678 1263 245 677 1264 246 520 1265 255 520 1266 254 678 1267 247 520 1268 254 678 1269 246 520 1270 247 520 1271 170 691 1272 123 614 1273 180 692 1274 123 614 1275 179 613 1276 180 692 1277 171 690 1278 170 691 1279 180 692 1280 171 690 1281 180 692 1282 181 520 1283 255 520 1284 181 520 1285 190 520 1286 181 520 1287 182 693 1288 190 520 1289 256 245 1290 255 520 1291 263 243 1292 183 694 1293 124 617 1294 189 695 1295 124 617 1296 188 616 1297 189 695 1298 182 693 1299 183 694 1300 189 695 1301 190 520 1302 191 673 1303 57 607 1304 182 693 1305 189 695 1306 190 520 1307 255 520 1308 190 520 1309 263 243 1310 190 520 1311 57 607 1312 263 243 1313 262 244 1314 258 675 1315 257 696 1316 262 244 1317 257 696 1318 256 245 1319 203 697 1320 202 520 1321 200 247 1322 202 520 1323 201 520 1324 200 247 1325 198 698 1326 205 699 1327 199 248 1328 205 699 1329 204 246 1330 199 248 1331 204 246 1332 203 697 1333 200 247 1334 208 700 1335 209 520 1336 211 250 1337 209 520 1338 210 520 1339 211 250 1340 213 520 1341 206 701 1342 212 251 1343 206 701 1344 207 249 1345 212 251 1346 207 249 1347 208 700 1348 211 250 1349 216 702 1350 217 520 1351 219 253 1352 217 520 1353 218 520 1354 219 253 1355 221 520 1356 214 703 1357 220 254 1358 214 703 1359 215 252 1360 220 254 1361 215 252 1362 216 702 1363 219 253 1364 131 255 1365 237 704 1366 238 256 1367 132 705 1368 238 705 1369 239 705 1370 198 259 1371 199 706 1372 245 260 1373 199 262 1374 200 707 1375 246 263 1376 201 265 1377 247 708 1378 246 266 1379 202 268 1380 248 709 1381 247 269 1382 202 271 1383 203 710 1384 249 272 1385 203 274 1386 204 711 1387 250 275 1388 205 277 1389 251 712 1390 250 278 1391 198 280 1392 244 713 1393 251 281 1394 206 283 1395 252 714 1396 253 284 1397 208 286 1398 207 715 1399 253 287 1400 209 289 1401 208 716 1402 254 290 1403 209 292 1404 255 717 1405 256 293 1406 210 294 1407 256 718 1408 257 295 1409 212 296 1410 211 719 1411 257 297 1412 213 299 1413 212 720 1414 258 300 1415 213 302 1416 259 721 1417 252 303 1418 214 305 1419 260 722 1420 261 306 1421 216 308 1422 215 723 1423 261 309 1424 217 311 1425 216 724 1426 262 312 1427 217 314 1428 263 725 1429 264 315 1430 218 317 1431 264 726 1432 265 318 1433 220 320 1434 219 727 1435 265 321 1436 221 323 1437 220 728 1438 266 324 1439 221 326 1440 267 729 1441 260 327 1442 14 329 1443 23 730 1444 22 330 1445 16 332 1446 19 731 1447 118 333 1448 195 732 1449 155 733 1450 188 336 1451 155 733 1452 142 334 1453 188 336 1454 169 337 1455 243 734 1456 240 338 1457 242 340 1458 243 735 1459 169 341 1460 1 343 1461 26 736 1462 28 344 1463 127 737 1464 227 737 1465 226 737 1466 15 346 1467 28 738 1468 32 347 1469 42 349 1470 43 739 1471 41 350 1472 23 352 1473 29 740 1474 27 353 1475 79 355 1476 78 356 1477 48 355 1478 80 357 1479 81 112 1480 95 111 1481 86 358 1482 104 741 1483 107 359 1484 86 358 1485 89 360 1486 90 361 1487 85 362 1488 90 361 1489 92 363 1490 84 364 1491 92 363 1492 93 365 1493 185 742 1494 151 743 1495 179 368 1496 151 743 1497 138 366 1498 179 368 1499 78 369 1500 99 371 1501 98 4 1502 79 44 1503 97 46 1504 99 371 1505 77 372 1506 76 744 1507 46 373 1508 121 375 1509 88 745 1510 324 746 1511 88 745 1512 322 8 1513 323 8 1514 324 746 1515 88 745 1516 323 8 1517 325 747 1518 318 748 1519 317 376 1520 121 375 1521 324 746 1522 325 747 1523 309 749 1524 107 750 1525 302 377 1526 107 750 1527 121 375 1528 302 377 1529 317 376 1530 310 751 1531 302 377 1532 121 375 1533 325 747 1534 317 376 1535 11 378 1536 37 752 1537 33 379 1538 83 381 1539 82 753 1540 52 382 1541 170 754 1542 134 755 1543 123 386 1544 134 755 1545 147 384 1546 123 386 1547 9 387 1548 4 756 1549 22 388 1550 13 390 1551 36 757 1552 40 391 1553 229 758 1554 228 758 1555 128 758 1556 2 394 1557 30 759 1558 35 395 1559 38 141 1560 41 0 1561 103 2 1562 183 760 1563 141 761 1564 124 400 1565 141 761 1566 152 398 1567 124 400 1568 177 762 1569 148 763 1570 174 403 1571 148 763 1572 137 401 1573 174 403 1574 159 404 1575 270 764 1576 271 405 1577 160 765 1578 271 765 1579 272 765 1580 192 766 1581 145 767 1582 193 410 1583 145 767 1584 156 408 1585 193 410 1586 222 411 1587 274 768 1588 275 412 1589 276 414 1590 277 769 1591 225 415 1592 225 417 1593 277 770 1594 274 418 1595 322 8 1596 88 745 1597 321 8 1598 88 745 1599 87 575 1600 321 8 1601 87 575 1602 273 574 1603 271 771 1604 273 574 1605 272 772 1606 271 771 1607 87 575 1608 271 771 1609 270 8 1610 269 773 1611 268 586 1612 125 585 1613 321 8 1614 87 575 1615 270 8 1616 269 773 1617 125 585 1618 239 774 1619 317 376 1620 318 748 1621 316 775 1622 318 748 1623 319 776 1624 316 775 1625 316 775 1626 319 776 1627 320 421 1628 302 377 1629 310 751 1630 303 777 1631 310 751 1632 311 778 1633 303 777 1634 303 777 1635 311 778 1636 312 779 1637 309 749 1638 308 780 1639 89 781 1640 308 780 1641 307 782 1642 93 783 1643 89 781 1644 107 750 1645 309 749 1646 90 784 1647 89 781 1648 308 780 1649 92 785 1650 90 784 1651 308 780 1652 93 783 1653 92 785 1654 308 780 1655 94 8 1656 93 783 1657 307 782 1658 95 8 1659 94 8 1660 307 782 1661 230 580 1662 97 579 1663 229 786 1664 97 579 1665 96 787 1666 307 782 1667 96 787 1668 95 8 1669 307 782 1670 97 579 1671 307 782 1672 229 786 1673 229 786 1674 307 782 1675 306 788 1676 228 8 1677 229 786 1678 306 788 1679 228 8 1680 306 788 1681 313 789 1682 306 788 1683 305 790 1684 313 789 1685 227 791 1686 228 8 1687 237 8 1688 304 8 1689 303 777 1690 312 779 1691 304 8 1692 312 779 1693 305 790 1694 312 779 1695 313 789 1696 305 790 1697 228 8 1698 313 789 1699 237 8 1700 235 583 1701 122 582 1702 236 792 1703 122 582 1704 226 793 1705 236 792 1706 236 792 1707 226 793 1708 227 791 1709 237 8 1710 236 792 1711 227 791 1712 269 773 1713 239 774 1714 238 794 1715 238 794 1716 237 8 1717 270 8 1718 237 8 1719 313 789 1720 270 8 1721 313 789 1722 314 420 1723 321 8 1724 270 8 1725 313 789 1726 321 8 1727 270 8 1728 269 773 1729 238 794 1730 315 795 1731 316 775 1732 320 421 1733 314 420 1734 315 795 1735 320 421 1736 284 422 1737 285 796 1738 279 797 1739 285 796 1740 278 798 1741 279 797 1742 280 423 1743 281 8 1744 282 8 1745 280 423 1746 282 8 1747 283 424 1748 284 422 1749 279 797 1750 280 423 1751 287 425 1752 286 799 1753 292 800 1754 286 799 1755 293 8 1756 292 800 1757 291 426 1758 290 8 1759 289 8 1760 291 426 1761 289 8 1762 288 427 1763 287 425 1764 292 800 1765 291 426 1766 295 428 1767 294 8 1768 300 8 1769 294 8 1770 301 8 1771 300 8 1772 299 429 1773 298 8 1774 297 8 1775 299 429 1776 297 8 1777 296 430 1778 295 428 1779 300 8 1780 299 429 1781 278 431 1782 302 801 1783 303 432 1784 279 434 1785 303 802 1786 304 435 1787 304 437 1788 305 803 1789 281 438 1790 305 440 1791 306 804 1792 282 441 1793 282 443 1794 306 805 1795 307 444 1796 283 446 1797 307 806 1798 308 447 1799 308 449 1800 309 807 1801 285 450 1802 309 452 1803 302 808 1804 278 453 1805 311 455 1806 310 809 1807 286 456 1808 288 458 1809 312 810 1810 311 459 1811 289 461 1812 313 811 1813 312 462 1814 314 464 1815 313 812 1816 289 465 1817 315 466 1818 314 467 1819 290 467 1820 292 468 1821 316 813 1822 315 469 1823 293 471 1824 317 814 1825 316 472 1826 310 474 1827 317 815 1828 293 475 1829 319 477 1830 318 816 1831 294 478 1832 296 480 1833 320 817 1834 319 481 1835 297 483 1836 321 818 1837 320 484 1838 322 486 1839 321 819 1840 297 487 1841 323 489 1842 322 820 1843 298 490 1844 300 492 1845 324 821 1846 323 493 1847 301 495 1848 325 822 1849 324 496 1850 318 498 1851 325 823 1852 301 499 1853 43 501 1854 44 824 1855 74 502 1856 1 504 1857 20 147 1858 24 149 1859 120 506 1860 117 550 1861 8 507 1862 9 509 1863 19 825 1864 16 510 1865 19 825 1866 9 509 1867 25 826 1868 9 509 1869 17 827 1870 25 826 1871 14 828 1872 4 511 1873 21 829 1874 4 511 1875 16 510 1876 21 829 1877 25 826 1878 17 827 1879 18 830 1880 17 827 1881 14 828 1882 15 512 1883 6 505 1884 24 149 1885 18 830 1886 24 149 1887 25 826 1888 18 830 1889 17 827 1890 15 512 1891 18 830 1892 14 828 1893 21 829 1894 15 512 1895 21 829 1896 20 147 1897 15 512 1898 154 513 1899 157 520 1900 156 514 1901 155 515 1902 156 514 1903 145 516 1904 145 516 1905 144 520 1906 143 518 1907 147 519 1908 148 522 1909 149 520 1910 134 521 1911 137 524 1912 148 522 1913 134 521 1914 135 520 1915 136 523 1916 150 525 1917 153 520 1918 152 526 1919 151 527 1920 152 526 1921 141 528 1922 141 528 1923 140 520 1924 139 520 1925 166 530 1926 167 532 1927 168 531 1928 167 532 1929 130 831 1930 133 533 1931 133 533 1932 130 831 1933 131 8 1934 165 534 1935 164 537 1936 163 535 1937 126 536 1938 163 535 1939 164 537 1940 126 536 1941 129 538 1942 128 539 1943

+
+
+
+ + + + 1.125 1.2511 -0.2375 1.875 1.2511 -0.2375 1.875 2.2527 -0.2375 1.125 2.2527 -0.2375 1.125 1.251099 0.2375 1.875 1.251099 0.2375 1.875 2.2527 0.2375 1.125 2.2527 0.2375 + + + + + + + + + + 0 0 -1 0 0 1 + + + + + + + + + + 0.3398438 0.8203125 0.40625 0.8632813 0.3398438 0.8632813 0.1484375 0.8203125 0.08203125 0.8632813 0.08203125 0.8203125 0.3398438 0.8203125 0.40625 0.8203125 0.40625 0.8632813 0.1484375 0.8203125 0.1484375 0.8632813 0.08203125 0.8632813 + + + + + + + + + + + + + + +

0 0 0 2 0 1 1 0 2 6 1 3 4 1 4 5 1 5 0 0 6 3 0 7 2 0 8 6 1 9 7 1 10 4 1 11

+
+
+
+ + + + -2.7797e-7 0.4163811 0.262669 2.63627e-7 -0.4163811 0.262669 0.2795697 0.2081907 0.117669 0.27957 -0.2081903 0.117669 0.2795697 0.2081907 -0.152556 0.27957 -0.2081903 -0.152556 0.09754449 0.4903932 -0.242556 0.0828424 0.4164784 -0.317556 0.1913412 0.4619403 -0.242556 0.1625002 0.3923144 -0.317556 0.2777848 0.4157353 -0.242556 0.2359163 0.3530727 -0.317556 0.3535532 0.353554 -0.242556 0.3002635 0.3002646 -0.317556 0.4157345 0.277786 -0.242556 0.3530725 0.2359166 -0.317556 0.4619396 0.1913424 -0.242556 0.3923134 0.1625022 -0.317556 0.4903928 0.09754586 -0.242556 0.416478 0.08284306 -0.317556 0.5000004 7.15256e-7 -0.242556 0.4246375 8.34465e-7 -0.317556 0.4903927 -0.09754455 -0.242556 0.4164779 -0.08284199 -0.317556 0.4619401 -0.1913412 -0.242556 0.3923138 -0.1625012 -0.317556 0.4157351 -0.2777848 -0.242556 0.353073 -0.2359156 -0.317556 0.3535538 -0.3535532 -0.242556 0.3002642 -0.3002635 -0.317556 0.2777854 -0.4157344 -0.242556 0.2359163 -0.3530723 -0.317556 0.1913417 -0.4619397 -0.242556 0.162501 -0.3923137 -0.317556 0.0975455 -0.4903927 -0.242556 0.082843 -0.4164779 -0.317556 0.09754449 0.4903932 0.207669 0.0828424 0.4164784 0.282669 0.1913412 0.4619403 0.207669 0.1625002 0.3923144 0.282669 0.2777848 0.4157353 0.207669 0.2359163 0.3530727 0.282669 0.3535532 0.353554 0.207669 0.3002635 0.3002646 0.282669 0.4157345 0.277786 0.207669 0.3530725 0.2359166 0.282669 0.4619396 0.1913424 0.207669 0.3923134 0.1625022 0.282669 0.4903928 0.09754586 0.207669 0.416478 0.08284306 0.282669 0.5000004 7.15256e-7 0.207669 0.4246375 8.34465e-7 0.282669 0.4903927 -0.09754455 0.207669 0.4164779 -0.08284199 0.282669 0.4619401 -0.1913412 0.207669 0.3923138 -0.1625012 0.282669 0.4157351 -0.2777848 0.207669 0.353073 -0.2359156 0.282669 0.3535538 -0.3535532 0.207669 0.3002642 -0.3002635 0.282669 0.2777854 -0.4157344 0.207669 0.2359163 -0.3530723 0.282669 0.1913417 -0.4619397 0.207669 0.162501 -0.3923137 0.282669 0.0975455 -0.4903927 0.207669 0.082843 -0.4164779 0.282669 0.01996779 0.4226706 0.282669 0.01996713 0.4980335 0.207669 -2.86847e-7 0.5 0.1794527 -2.7797e-7 0.4163811 -0.297556 0.01996779 0.4226706 -0.317556 0.01996713 0.4980335 -0.242556 -2.86847e-7 0.5 -0.2143397 2.86847e-7 -0.5 -0.2143397 0.01996773 -0.4980334 -0.242556 2.63627e-7 -0.4163811 -0.297556 0.01996833 -0.4226705 -0.317556 2.86847e-7 -0.5 0.1794527 0.01996773 -0.4980334 0.207669 0.01996833 -0.4226705 0.282669 + + + + + + + + + + -0.597267 0.8020425 0 -0.597267 0.8020425 0 -0.597267 0.8020426 0 0 -2.04634e-6 1 0 3.63074e-6 1 0 0 1 -0.4604119 -3.11456e-7 0.8877055 -0.4604119 -3.28784e-7 0.8877055 -0.4604119 -3.40901e-7 0.8877055 0 -9.6597e-7 -1 0 2.02082e-6 -1 0 0 -1 0.1376144 0.6918451 -0.7088109 0.2699437 0.6517032 -0.7088112 0.1376144 0.6918458 -0.7088102 0.3918973 0.5865175 -0.7088115 0.2699443 0.6517028 -0.7088114 0.4987913 0.4987925 -0.7088111 0.391898 0.5865171 -0.7088114 0.5865169 0.3918989 -0.7088111 0.4987911 0.4987931 -0.7088109 0.5865169 0.3918986 -0.7088113 0.6517024 0.2699456 -0.7088112 0.6517026 0.2699452 -0.7088112 0.6918438 0.1376183 -0.7088114 0.6918439 0.1376182 -0.7088112 0.7053979 -2.52695e-7 -0.7088116 0.6918441 -0.1376166 -0.7088113 0.7053984 -1.6417e-7 -0.7088111 0.6517035 -0.2699428 -0.7088114 0.6918436 -0.1376168 -0.7088117 0.5865179 -0.3918975 -0.7088111 0.6517036 -0.2699429 -0.7088112 0.4987917 -0.4987921 -0.7088112 0.5865176 -0.3918977 -0.7088113 0.391898 -0.5865173 -0.7088114 0.4987916 -0.4987922 -0.7088112 0.2699458 -0.6517023 -0.7088113 0.3918978 -0.5865172 -0.7088114 0.1376171 -0.6918442 -0.7088111 0.2699452 -0.6517028 -0.7088111 0.2699453 -0.6517027 0.7088111 0.1376169 -0.6918443 0.708811 0.2699455 -0.6517025 0.7088112 0.7053979 -2.83429e-7 0.7088116 0.691844 -0.1376168 0.7088114 0.7053983 -3.40777e-7 0.7088113 0.6517034 -0.2699428 0.7088115 0.5865178 -0.3918976 0.7088112 0.6517034 -0.2699431 0.7088113 0.9951844 -0.09802079 0 0.9951844 -0.09802079 0 -1 0 0 -1 0 0 -1 0 0 0.8819208 0.4713979 0 0.8819208 0.4713977 0 0.8819207 0.4713979 0 0.6517024 0.2699453 0.7088114 0.6918437 0.1376184 0.7088114 0.6918439 0.1376183 0.7088112 0.9951846 0.09802001 0 0.9951846 0.09802001 0 0.9951845 0.09802001 0 0.4713966 0.8819215 0 0.06930506 0.7037026 0.7071064 0.1376147 0.6918449 0.7088109 0.06930607 0.7037023 0.7071067 0.4987913 0.4987926 0.7088111 0.586517 0.3918988 0.7088112 0.5865169 0.3918989 0.7088113 0.4987916 -0.4987919 0.7088114 0.3918982 -0.5865171 0.7088114 0.3918979 -0.5865172 0.7088115 -0.6818548 -0.5159897 0.5184869 -0.6818471 -0.5159924 0.5184944 -0.6818561 -0.5159893 0.5184856 0.06930792 -0.7037023 -0.7071065 0.1376169 -0.6918446 -0.7088108 0.8819218 -0.471396 0 0.8819218 -0.4713959 0 0.8819218 -0.4713959 0 0.2902838 0.9569406 0 0.2902842 0.9569405 0 0.2902837 0.9569407 0 0.3918977 0.5865172 0.7088115 0.3918972 0.5865176 0.7088115 0.6517025 0.2699455 0.7088112 0.5865175 -0.3918976 0.7088114 0.06930792 -0.7037022 0.7071066 0.0693084 -0.7037022 0.7071065 -0.68185 0.5159907 0.5184923 -0.6818572 0.5159882 0.5184854 -0.6818584 0.5159877 0.5184842 -0.707671 -4.92412e-7 0.7065421 -0.7076705 -4.75302e-7 0.7065426 -0.707671 -4.92749e-7 0.7065422 -1 -2.77687e-7 0 -1 -2.77687e-7 0 -1 -2.77687e-7 0 0.4713984 -0.8819205 0 0.471398 -0.8819206 0 0.4713985 -0.8819205 0 0.7730101 0.6343939 0 0.7730098 0.6343941 0 0.7730101 0.6343938 0 0.2902868 -0.9569398 0 0.2902863 -0.9569398 0 0.2902868 -0.9569397 0 0.9569398 0.2902867 0 0.9569398 0.2902867 0 0.0980122 0.9951852 -5.71151e-7 0.09801298 0.9951852 -2.14356e-6 0.0980122 0.9951853 -3.82497e-7 -0.5972661 -0.8020432 0 -0.5972661 -0.8020433 0 0.2699437 0.6517032 0.7088113 0.2699443 0.651703 0.7088112 0.9569412 -0.290282 0 0.9569412 -0.290282 0 0.9569413 -0.290282 0 0.0693047 0.7037029 -0.7071061 0.06930518 0.7037021 -0.7071069 -0.6818498 0.5159909 -0.5184922 -0.6818572 0.5159881 -0.5184854 -0.6818484 0.5159915 -0.5184936 -0.6818479 -0.5159922 -0.5184936 -0.6818553 -0.5159894 -0.5184867 -0.6818565 -0.5159889 -0.5184855 -0.7076711 -4.72608e-7 -0.7065421 -0.7076715 -5.06113e-7 -0.7065417 -0.7076715 -5.06772e-7 -0.7065417 0.6343919 0.7730116 0 0.6343916 0.7730119 0 0.6343919 0.7730116 0 0.6343917 -0.7730117 0 0.6343914 -0.7730121 0 0.6343918 -0.7730117 0 -0.4604119 -3.00579e-7 -0.8877055 -0.4604119 -3.16534e-7 -0.8877055 -0.4604119 -2.89421e-7 -0.8877055 0.7730115 -0.6343922 0 -1 -6.44172e-7 0 0.09801656 -0.9951848 -1.48747e-7 0.09801667 -0.9951848 -8.33601e-7 0.09801656 -0.9951848 -2.22113e-7 -0.5972671 0.8020426 0 0 -1.90785e-7 1 0 0 1 0 -3.63078e-6 1 0 0 1 0 1.87484e-7 1 0 2.02082e-6 1 0 -9.6597e-7 1 0 5.97108e-7 1 0 1.38861e-7 1 0 -3.99963e-7 1 0 0 1 0 0 1 0 -1.14507e-6 1 -0.4604119 -2.84992e-7 0.8877055 0 0 -1 0 -2.23897e-7 -1 0 -6.77045e-7 -1 0 6.74627e-7 -1 0 5.97108e-7 -1 0.137617 -0.6918443 0.708811 0.6918436 -0.1376166 0.7088117 0.8819207 0.4713977 0 0.9951845 0.09802001 0 0.1376145 0.6918452 0.7088107 0.498791 0.498793 0.7088111 0.4987915 -0.4987919 0.7088114 -0.6818456 -0.5159929 0.5184959 0.0693084 -0.7037019 -0.7071068 0.8819217 -0.471396 0 0.2902843 0.9569405 0 -0.6818485 0.5159912 0.5184937 -0.7076705 -4.74856e-7 0.7065426 -1 -2.77687e-7 0 0.4713979 -0.8819206 0 0.7730098 0.6343941 0 0.2902863 -0.9569399 0 0.9569397 0.2902867 0 0.09801262 0.9951853 3.81906e-7 0.09801256 0.9951852 5.70269e-7 0.0980128 0.9951851 2.14025e-6 -0.597266 -0.8020431 0 -0.6818584 0.5159877 -0.5184842 -0.6818464 -0.5159928 -0.518495 -0.707671 -4.71735e-7 -0.7065421 0.6343915 0.7730119 0 0.6343914 -0.7730121 0 -0.4604119 -3.40901e-7 -0.8877055 -1 -6.44172e-7 0 0.09801656 -0.9951848 2.25639e-7 0.09801667 -0.9951848 8.46833e-7 0.09801656 -0.9951848 1.51108e-7 + + + + + + + + + + 0.8085938 0.1953125 0.8398438 0.15625 0.8398438 0.2109375 0.7533172 0.01754212 0.751044 0.00946933 0.75 0.00390625 0.828125 0.140625 0.7700133 0.1715973 0.75 0.140625 0.8184773 0.1105983 0.8237214 0.1178196 0.828125 0.1367187 0.734375 0.08984375 0.7421875 0.09765625 0.734375 0.09765625 0.75 0.08984375 0.7421875 0.09765625 0.7421875 0.08984375 0.7578125 0.08984375 0.75 0.09765625 0.75 0.08984375 0.7578125 0.08984375 0.765625 0.09765625 0.7578125 0.09765625 0.765625 0.08984375 0.7734375 0.09765625 0.765625 0.09765625 0.7734375 0.08984375 0.78125 0.09765625 0.7734917 0.09771662 0.78125 0.08984375 0.7893186 0.09727245 0.78125 0.09765625 0.796875 0.08984375 0.7893186 0.09727245 0.7890625 0.08984375 0.796875 0.08984375 0.8046875 0.09765625 0.796875 0.09765625 0.8125 0.08984375 0.8046875 0.09765625 0.8046875 0.08984375 0.8203125 0.08984375 0.8125 0.09765625 0.8125 0.08984375 0.8203125 0.08984375 0.828125 0.09765625 0.8203125 0.09765625 0.8359375 0.08984375 0.828125 0.09765625 0.828125 0.08984375 0.84375 0.08984375 0.8359375 0.09765625 0.8359375 0.08984375 0.8359375 0.04296875 0.84375 0.05078125 0.8359375 0.05078125 0.7890625 0.04296875 0.796875 0.05078125 0.7890625 0.05078125 0.8046875 0.04296875 0.8125 0.05078125 0.8046875 0.05078125 0.7890625 0.08984375 0.796875 0.05078125 0.796875 0.08984375 0.7304688 0.203125 0.7382813 0.15625 0.7382813 0.2109375 0.765625 0.08984375 0.7734375 0.05078125 0.7734375 0.08984375 0.7734375 0.05078125 0.78125 0.04296875 0.78125 0.05078125 0.78125 0.08984375 0.7890625 0.05078125 0.7890625 0.08984375 0.7421875 0.08984375 0.75 0.05078125 0.75 0.08984375 0.7265625 0.04296875 0.734375 0.05078125 0.7265625 0.05078125 0.7578125 0.05078125 0.765625 0.04296875 0.765625 0.05078125 0.8203125 0.05078125 0.828125 0.04296875 0.828125 0.05078125 0.8515625 0.05078125 0.8554688 0.04296875 0.8554688 0.05078125 0.84375 0.08984375 0.8515625 0.09765625 0.84375 0.09765625 0.8125 0.08984375 0.8046875 0.05078125 0.8125 0.05078125 0.734375 0.08984375 0.7421875 0.05078125 0.7421875 0.08984375 0.75 0.04296875 0.7578125 0.05078125 0.75 0.05078125 0.765625 0.05078125 0.7734375 0.04296875 0.7734375 0.05078125 0.78125 0.05078125 0.7890625 0.04296875 0.7890625 0.05078125 0.796875 0.05078125 0.8046875 0.04296875 0.8046875 0.05078125 0.8125 0.04296875 0.8203125 0.05078125 0.8125 0.05078125 0.828125 0.04296875 0.8359375 0.05078125 0.828125 0.05078125 0.84375 0.05078125 0.8515625 0.04296875 0.8515625 0.05078125 0.7226563 0.04296875 0.7265625 0.05078125 0.7226563 0.05078125 0.75 0 0.828125 0.00390625 0.75 0.00390625 0.8398438 0.15625 0.8476563 0.203125 0.8398438 0.2109375 0.828125 0.08984375 0.8359375 0.05078125 0.8359375 0.08984375 0.7578125 0.08984375 0.765625 0.05078125 0.765625 0.08984375 0.8359375 0.08984375 0.84375 0.05078125 0.84375 0.08984375 0.7734375 0.08984375 0.78125 0.05078125 0.78125 0.08984375 0.7226563 0.05078125 0.7265625 0.0546875 0.734375 0.05078125 0.7695313 0.1953125 0.7382813 0.15625 0.7700133 0.1715973 0.7421875 0.04296875 0.75 0.05078125 0.7421875 0.05078125 0.796875 0.08984375 0.8046875 0.05078125 0.8046875 0.08984375 0.734375 0.08984375 0.7265625 0.09765625 0.7265625 0.08984375 0.7226563 0.09765625 0.7265625 0.08984375 0.7265625 0.09765625 0.8554688 0.09765625 0.8515625 0.08984375 0.8554688 0.08984375 0.828125 0.1367187 0.75 0.140625 0.75 0.1367187 0.734375 0.05078125 0.7421875 0.04296875 0.7421875 0.05078125 0.75 0.08984375 0.7578125 0.05078125 0.7578125 0.08984375 0.8203125 0.08984375 0.828125 0.05078125 0.828125 0.08984375 0.7695313 0.1953125 0.828125 0.2265625 0.75 0.2265625 0.8125 0.08984375 0.8203125 0.05078125 0.8203125 0.08984375 0.8085938 0.1953125 0.7700133 0.1715973 0.8085938 0.171875 0.84375 0.05078125 0.8515625 0.0546875 0.8554688 0.05078125 0.8085938 0.1953125 0.8085938 0.171875 0.8398438 0.15625 0.75 0.00390625 0.828125 0.00390625 0.7890625 0.04296875 0.828125 0.00390625 0.827323 0.009233057 0.8250798 0.01732593 0.75 0.00390625 0.7890625 0.04296875 0.78125 0.04248046 0.8250798 0.01732593 0.8214626 0.02477586 0.828125 0.00390625 0.8214626 0.02477586 0.8166109 0.03129625 0.828125 0.00390625 0.8166109 0.03129625 0.8107108 0.03663653 0.828125 0.00390625 0.8107108 0.03663653 0.803989 0.04059159 0.828125 0.00390625 0.803989 0.04059159 0.796875 0.04223632 0.828125 0.00390625 0.796875 0.04223632 0.7890625 0.04296875 0.828125 0.00390625 0.78125 0.04248046 0.7744784 0.04067754 0.75 0.00390625 0.7744784 0.04067754 0.767748 0.03676021 0.75 0.00390625 0.767748 0.03676021 0.761833 0.03145509 0.75 0.00390625 0.761833 0.03145509 0.7569603 0.02496612 0.75 0.00390625 0.7569603 0.02496612 0.7533172 0.01754212 0.75 0.00390625 0.828125 0.140625 0.8085938 0.171875 0.7700133 0.1715973 0.827797 0.1308701 0.828125 0.1367187 0.8269097 0.1260809 0.828125 0.1367187 0.75 0.1367187 0.7893186 0.09727245 0.8269097 0.1260809 0.828125 0.1367187 0.8237214 0.1178196 0.75 0.1367187 0.7505323 0.1307337 0.7516314 0.1243688 0.7516314 0.1243688 0.7543035 0.1180313 0.75 0.1367187 0.7543035 0.1180313 0.7595249 0.1107753 0.75 0.1367187 0.7595249 0.1107753 0.7658746 0.1048324 0.75 0.1367187 0.7658746 0.1048324 0.7731086 0.1004312 0.75 0.1367187 0.7731086 0.1004312 0.78125 0.09814453 0.75 0.1367187 0.78125 0.09814453 0.7893186 0.09727245 0.75 0.1367187 0.7893186 0.09727245 0.796875 0.09814453 0.828125 0.1367187 0.796875 0.09814453 0.8048682 0.1003353 0.828125 0.1367187 0.8048682 0.1003353 0.8121114 0.1046946 0.828125 0.1367187 0.8121114 0.1046946 0.8184773 0.1105983 0.828125 0.1367187 0.734375 0.08984375 0.7421875 0.08984375 0.7421875 0.09765625 0.75 0.08984375 0.75 0.09765625 0.7421875 0.09765625 0.7578125 0.08984375 0.7578125 0.09765625 0.75 0.09765625 0.7578125 0.08984375 0.765625 0.08984375 0.765625 0.09765625 0.765625 0.08984375 0.7734375 0.08984375 0.7734375 0.09765625 0.7734375 0.08984375 0.78125 0.08984375 0.78125 0.09765625 0.78125 0.08984375 0.7890625 0.08984375 0.7893186 0.09727245 0.796875 0.08984375 0.796875 0.09765625 0.7893186 0.09727245 0.796875 0.08984375 0.8046875 0.08984375 0.8046875 0.09765625 0.8125 0.08984375 0.8125 0.09765625 0.8046875 0.09765625 0.8203125 0.08984375 0.8203125 0.09765625 0.8125 0.09765625 0.8203125 0.08984375 0.828125 0.08984375 0.828125 0.09765625 0.8359375 0.08984375 0.8359375 0.09765625 0.828125 0.09765625 0.84375 0.08984375 0.84375 0.09765625 0.8359375 0.09765625 0.8359375 0.04296875 0.84375 0.04296875 0.84375 0.05078125 0.7890625 0.04296875 0.796875 0.04296875 0.796875 0.05078125 0.8046875 0.04296875 0.8125 0.04296875 0.8125 0.05078125 0.7890625 0.08984375 0.7890625 0.05078125 0.796875 0.05078125 0.7304688 0.203125 0.7304688 0.1640625 0.7382813 0.15625 0.765625 0.08984375 0.765625 0.05078125 0.7734375 0.05078125 0.7734375 0.05078125 0.7734375 0.04296875 0.78125 0.04296875 0.78125 0.08984375 0.78125 0.05078125 0.7890625 0.05078125 0.7421875 0.08984375 0.7421875 0.05078125 0.75 0.05078125 0.7265625 0.04296875 0.734375 0.04296875 0.734375 0.05078125 0.7578125 0.05078125 0.7578125 0.04296875 0.765625 0.04296875 0.8203125 0.05078125 0.8203125 0.04296875 0.828125 0.04296875 0.8515625 0.05078125 0.8515625 0.04296875 0.8554688 0.04296875 0.84375 0.08984375 0.8515625 0.08984375 0.8515625 0.09765625 0.8125 0.08984375 0.8046875 0.08984375 0.8046875 0.05078125 0.734375 0.08984375 0.734375 0.05078125 0.7421875 0.05078125 0.75 0.04296875 0.7578125 0.04296875 0.7578125 0.05078125 0.765625 0.05078125 0.765625 0.04296875 0.7734375 0.04296875 0.78125 0.05078125 0.78125 0.04296875 0.7890625 0.04296875 0.796875 0.05078125 0.796875 0.04296875 0.8046875 0.04296875 0.8125 0.04296875 0.8203125 0.04296875 0.8203125 0.05078125 0.828125 0.04296875 0.8359375 0.04296875 0.8359375 0.05078125 0.84375 0.05078125 0.84375 0.04296875 0.8515625 0.04296875 0.7226563 0.04296875 0.7265625 0.04296875 0.7265625 0.05078125 0.75 0 0.828125 0 0.828125 0.00390625 0.8398438 0.15625 0.8476563 0.1640625 0.8476563 0.203125 0.828125 0.08984375 0.828125 0.05078125 0.8359375 0.05078125 0.7578125 0.08984375 0.7578125 0.05078125 0.765625 0.05078125 0.8359375 0.08984375 0.8359375 0.05078125 0.84375 0.05078125 0.7734375 0.08984375 0.7734375 0.05078125 0.78125 0.05078125 0.734375 0.05078125 0.734375 0.08984375 0.7226563 0.08984375 0.734375 0.08984375 0.7265625 0.08984375 0.7226563 0.08984375 0.7226563 0.08984375 0.7226563 0.05078125 0.734375 0.05078125 0.7695313 0.1953125 0.7382813 0.2109375 0.7382813 0.15625 0.7421875 0.04296875 0.75 0.04296875 0.75 0.05078125 0.796875 0.08984375 0.796875 0.05078125 0.8046875 0.05078125 0.734375 0.08984375 0.734375 0.09765625 0.7265625 0.09765625 0.7226563 0.09765625 0.7226563 0.08984375 0.7265625 0.08984375 0.8554688 0.09765625 0.8515625 0.09765625 0.8515625 0.08984375 0.828125 0.1367187 0.828125 0.140625 0.75 0.140625 0.734375 0.05078125 0.734375 0.04296875 0.7421875 0.04296875 0.75 0.08984375 0.75 0.05078125 0.7578125 0.05078125 0.8203125 0.08984375 0.8203125 0.05078125 0.828125 0.05078125 0.7695313 0.1953125 0.8085938 0.1953125 0.828125 0.2265625 0.8125 0.08984375 0.8125 0.05078125 0.8203125 0.05078125 0.8085938 0.1953125 0.7695313 0.1953125 0.7700133 0.1715973 0.8554688 0.05078125 0.8554688 0.08984375 0.84375 0.05078125 0.8554688 0.08984375 0.8515625 0.08984375 0.84375 0.08984375 0.84375 0.05078125 0.8554688 0.08984375 0.84375 0.08984375 + + + + + + + + + + + + + + +

3 0 0 75 1 1 1 2 2 39 3 3 37 4 4 66 5 5 75 6 6 4 7 7 69 8 8 29 9 9 31 10 10 76 11 11 6 12 12 9 13 13 7 14 14 10 15 15 9 13 16 8 16 17 12 17 18 11 18 19 10 15 20 12 17 21 15 19 22 13 20 23 14 21 24 17 22 25 15 19 26 16 23 27 19 24 28 17 22 29 18 25 30 21 26 31 19 24 32 22 27 33 21 26 34 20 28 35 22 27 36 25 29 37 23 30 38 26 31 39 25 29 40 24 32 41 28 33 42 27 34 43 26 31 44 28 33 45 31 35 46 29 36 47 32 37 48 31 35 49 30 38 50 34 39 51 33 40 52 32 37 53 63 41 54 64 42 55 62 43 56 51 44 57 52 45 58 50 46 59 55 47 60 56 48 61 54 49 62 20 50 63 52 51 64 22 50 65 68 52 66 69 53 67 0 54 68 14 55 69 46 56 70 16 57 71 46 58 72 49 59 73 48 60 74 18 61 75 50 62 76 20 63 77 8 64 78 40 64 79 10 64 80 66 65 81 36 66 82 67 67 83 42 68 84 45 69 85 44 70 86 58 71 87 61 72 88 60 73 89 78 74 90 1 75 91 77 76 92 34 39 93 76 77 94 35 78 95 26 79 96 54 80 97 56 81 98 6 82 99 38 83 100 8 84 101 41 85 102 42 68 103 40 86 104 44 70 105 47 87 106 46 58 107 48 60 108 51 44 109 50 46 110 52 45 111 55 47 112 54 49 113 57 88 114 58 71 115 56 48 116 61 72 117 62 43 118 60 73 119 64 42 120 79 89 121 78 90 122 0 91 123 67 92 124 68 93 125 0 94 126 79 95 127 66 96 128 75 97 129 77 98 130 1 99 131 30 100 132 62 101 133 32 102 134 12 103 135 44 104 136 14 105 137 32 106 138 64 107 139 34 108 140 16 109 141 48 109 142 18 110 143 68 111 144 67 112 145 36 113 146 2 114 147 69 114 148 4 115 149 39 116 150 40 86 151 38 117 152 22 118 153 54 119 154 24 120 155 6 12 156 70 121 157 71 122 158 69 123 159 71 124 160 70 125 161 75 126 162 74 127 163 73 128 164 76 129 165 69 130 166 70 131 167 36 66 168 39 116 169 38 117 170 10 132 171 42 133 172 12 134 173 28 135 174 60 136 175 30 137 176 2 138 177 1 139 178 0 140 179 26 141 180 58 141 181 28 141 182 3 142 183 4 142 184 5 142 185 64 143 186 78 144 187 77 145 188 3 0 189 5 146 190 75 1 191 66 5 192 79 147 193 51 148 194 79 147 195 65 149 196 63 150 197 66 5 198 51 148 199 49 151 200 63 150 201 61 152 202 79 147 203 61 152 204 59 153 205 79 147 206 59 153 207 57 154 208 79 147 209 57 154 210 55 155 211 79 147 212 55 155 213 53 156 214 79 147 215 53 156 216 51 148 217 79 147 218 49 151 219 47 157 220 66 5 221 47 157 222 45 157 223 66 5 224 45 157 225 43 158 226 66 5 227 43 158 228 41 159 229 66 5 230 41 159 231 39 3 232 66 5 233 75 6 234 5 160 235 4 7 236 35 161 237 76 11 238 33 161 239 76 11 240 70 161 241 21 162 242 33 161 243 76 11 244 31 10 245 70 161 246 7 161 247 9 161 248 9 161 249 11 161 250 70 161 251 11 161 252 13 161 253 70 161 254 13 161 255 15 161 256 70 161 257 15 161 258 17 161 259 70 161 260 17 161 261 19 161 262 70 161 263 19 161 264 21 162 265 70 161 266 21 162 267 23 163 268 76 11 269 23 163 270 25 164 271 76 11 272 25 164 273 27 165 274 76 11 275 27 165 276 29 9 277 76 11 278 6 12 279 8 16 280 9 13 281 10 15 282 11 18 283 9 13 284 12 17 285 13 20 286 11 18 287 12 17 288 14 21 289 15 19 290 14 21 291 16 23 292 17 22 293 16 23 294 18 25 295 19 24 296 18 25 297 20 28 298 21 26 299 22 27 300 23 30 301 21 26 302 22 27 303 24 32 304 25 29 305 26 31 306 27 34 307 25 29 308 28 33 309 29 36 310 27 34 311 28 33 312 30 38 313 31 35 314 32 37 315 33 40 316 31 35 317 34 39 318 35 78 319 33 40 320 63 41 321 65 166 322 64 42 323 51 44 324 53 167 325 52 45 326 55 47 327 57 88 328 56 48 329 20 50 330 50 51 331 52 51 332 68 52 333 72 53 334 69 53 335 14 55 336 44 168 337 46 56 338 46 58 339 47 87 340 49 59 341 18 61 342 48 169 343 50 62 344 8 64 345 38 64 346 40 64 347 66 65 348 37 170 349 36 66 350 42 68 351 43 171 352 45 69 353 58 71 354 59 172 355 61 72 356 78 74 357 79 173 358 1 75 359 34 39 360 74 174 361 76 77 362 26 79 363 24 175 364 54 80 365 6 82 366 36 176 367 38 83 368 41 85 369 43 171 370 42 68 371 44 70 372 45 69 373 47 87 374 48 60 375 49 59 376 51 44 377 52 45 378 53 167 379 55 47 380 57 88 381 59 172 382 58 71 383 61 72 384 63 41 385 62 43 386 64 42 387 65 166 388 79 89 389 0 91 390 66 177 391 67 92 392 0 94 393 1 178 394 79 95 395 75 97 396 73 179 397 77 98 398 30 100 399 60 180 400 62 101 401 12 103 402 42 181 403 44 104 404 32 106 405 62 182 406 64 107 407 16 109 408 46 183 409 48 109 410 36 113 411 6 184 412 72 185 413 6 184 414 71 186 415 72 185 416 72 185 417 68 111 418 36 113 419 2 114 420 0 187 421 69 114 422 39 116 423 41 85 424 40 86 425 22 118 426 52 119 427 54 119 428 6 12 429 7 14 430 70 121 431 69 123 432 72 188 433 71 124 434 75 126 435 76 189 436 74 127 437 76 129 438 75 190 439 69 130 440 36 66 441 37 170 442 39 116 443 10 132 444 40 191 445 42 133 446 28 135 447 58 192 448 60 136 449 2 138 450 3 193 451 1 139 452 26 141 453 56 141 454 58 141 455 3 142 456 2 194 457 4 142 458 77 145 459 73 195 460 64 143 461 73 195 462 74 196 463 34 197 464 64 143 465 73 195 466 34 197 467

+
+
+
+ + + + 0.09754467 2.240393 -0.2252249 0.1913414 2.21194 -0.2252249 0.277785 2.165735 -0.2252249 0.3535534 2.103554 -0.2252249 0.4157347 2.027786 -0.2252249 0.4619398 1.941342 -0.2252249 0.4903929 1.847546 -0.2252249 0.5000006 1.750001 -0.2252249 0.4903929 1.652455 -0.2252249 0.4619402 1.558659 -0.2252249 0.4157353 1.472215 -0.2252249 0.353554 1.396447 -0.2252249 0.2777856 1.334266 -0.2252249 0.1913419 1.28806 -0.2252249 0.09754568 1.259607 -0.2252249 2.5 0 -0.3 2.5 3.6 -0.3 0.5412177 1.857655 -0.3 0.5518211 1.750001 -0.3 0.5412175 1.642346 -0.3 0.509816 1.538828 -0.3 0.4588222 1.443425 -0.3 0.4588216 2.056576 -0.3 0.5098155 1.961173 -0.3 0.3901956 2.140197 -0.3 0.3065758 1.291179 -0.3 0.3901967 1.359804 -0.3 0.2111708 2.259817 -0.3 0.1076547 2.291218 -0.3 0.3065758 2.208822 -0.3 0.2111719 1.240184 -0.3 0.1076555 1.208783 -0.3 0.09754467 2.240393 0.2252249 0.1913414 2.21194 0.2252249 0.277785 2.165735 0.2252249 0.3535534 2.103554 0.2252249 0.4157347 2.027786 0.2252249 0.4619398 1.941342 0.2252249 0.4903929 1.847546 0.2252249 0.5000006 1.750001 0.2252249 0.4903929 1.652455 0.2252249 0.4619402 1.558659 0.2252249 0.4157353 1.472215 0.2252249 0.353554 1.396447 0.2252249 0.2777856 1.334266 0.2252249 0.1913419 1.28806 0.2252249 0.09754568 1.259607 0.2252249 2.5 0 0.3 2.5 3.6 0.3 0.5412177 1.857655 0.3 0.5518211 1.750001 0.3 0.5412175 1.642346 0.3 0.509816 1.538828 0.3 0.4588222 1.443425 0.3 0.4588216 2.056576 0.3 0.5098155 1.961173 0.3 0.3901956 2.140197 0.3 0.3065758 1.291179 0.3 0.3901967 1.359804 0.3 0.2111708 2.259817 0.3 0.1076547 2.291218 0.3 0.3065758 2.208822 0.3 0.2111719 1.240184 0.3 0.1076555 1.208783 0.3 0 2.25 0.1901126 0.01996588 2.248034 0.225225 0.01996648 1.251966 0.2252249 4.69387e-7 1.25 0.1901128 -1.52002e-7 2.440548 0.1025 0.01996701 2.299854 0.3 0 2.25 -0.1901126 0.01996588 2.248034 -0.225225 0.01996648 1.251966 -0.2252249 4.69387e-7 1.25 -0.1901128 -1.52002e-7 2.440548 -0.1025 0.01996701 2.299854 -0.3 4.08359e-7 1.075447 -0.1025 0.01996779 1.200146 -0.3 0 0.1136917 -0.1025 0.0199685 0 -0.3 0.0199685 3.6 -0.3 0 3.469546 -0.1025 1.123558 1.2511 -0.2375 4.08359e-7 1.075447 0.1025 0.01996779 1.200146 0.3 0 0.1136917 0.1025 0.0199685 0 0.3 1.069991 1.200069 -0.3 1.123558 1.2511 -0.255 1.873558 1.2511 -0.255 1.918091 1.1999 -0.3 1.918472 2.2999 -0.3 1.069991 2.2999 -0.3 0.0199685 3.6 0.3 0 3.469546 0.1025 1.123558 1.2511 0.2375 1.873558 1.2511 0.2375 1.069991 1.200069 0.3 1.123558 1.2511 0.255 1.873558 1.2511 -0.2375 1.123558 2.2527 -0.2375 1.873558 1.2511 0.255 1.918091 1.1999 0.3 1.873558 2.2527 0.255 1.918472 2.2999 0.3 1.123558 2.2527 0.255 3.09736e-7 0.7086623 -0.1025 1.78937e-7 0.4805372 -0.1025 5.01112e-7 1.187707 -0.28 1.069991 2.2999 0.3 0 0 -0.28 0 3.085717 -0.1025 0 2.824327 -0.1025 0 3.6 -0.28 3.09736e-7 0.7086623 0.1025 1.78937e-7 0.4805372 0.1025 5.01112e-7 1.187707 0.28 0 0 0.28 -1.91969e-7 2.312293 -0.28 0 2.956147 -0.28 -0.15 3.372954 -0.04624998 0 3.085717 0.1025 -0.15 3.181039 -0.04624998 0 2.824327 0.1025 -0.1500001 2.535223 -0.04624998 -0.1500001 2.727113 -0.04624998 0 3.6 0.28 -1.91969e-7 2.312293 0.28 -0.1499996 0.9852741 -0.04624998 -0.1499996 0.8018819 -0.04624998 -0.15 3.372954 0.04624998 -0.1499999 0.2061649 -0.04624998 -0.1499998 0.3895877 -0.04624998 -0.15 3.181039 0.04624998 -0.1500001 2.535223 0.04624998 -1.6225e-7 2.438235 0 -0.1500001 2.727113 0.04624998 -0.1499996 0.9852741 0.04624998 -0.1499996 0.8018819 0.04624998 -0.1499999 0.2061649 0.04624998 -0.1499998 0.3895877 0.04624998 1.873558 2.2527 -0.255 1.873558 2.2527 -0.2375 1.123558 2.2527 0.2375 1.123558 2.2527 -0.255 1.873558 2.2527 0.2375 2.5 2.2999 -0.3 2.5 1.1999 -0.3 2.5 2.2999 0.3 2.5 1.1999 0.3 + + + + + + + + + + -0.4713954 -0.881922 0 -0.471397 -0.8819212 0 -0.4713972 -0.8819211 0 -0.1603451 -0.8061259 -0.5696055 -0.3145329 -0.7593548 -0.5696046 -0.3145369 -0.7593541 -0.5696035 -0.4566335 -0.6834014 -0.5696037 -0.4566342 -0.6834018 -0.5696027 -0.5811833 -0.5811852 -0.5696049 -0.6834005 -0.4566345 -0.5696041 -0.6834009 -0.4566346 -0.5696036 -0.7593537 -0.3145365 -0.569604 -0.759354 -0.3145361 -0.5696038 -0.8061259 -0.1603507 -0.5696039 -0.8061252 -0.1603507 -0.5696049 -0.8219188 5.43392e-7 -0.5696047 -0.8061268 0.1603488 -0.5696033 -0.8061268 0.1603493 -0.5696033 -0.7593554 0.3145334 -0.5696035 -0.7593557 0.3145333 -0.5696033 -0.683402 0.456633 -0.5696034 -0.6834015 0.4566333 -0.5696038 -0.5811846 0.5811849 -0.5696039 -0.4566344 0.6834013 -0.5696032 -0.4566337 0.6834019 -0.5696029 -0.314536 0.759354 -0.5696039 -0.3145365 0.759354 -0.5696038 -0.1603486 0.8061263 -0.5696041 -1 4.61982e-7 0 -1 5.07598e-7 -1.27249e-7 -1 5.07598e-7 1.27249e-7 -0.8819224 0.4713947 0 -0.8819215 0.4713963 0 -0.8819213 0.4713966 0 -1 2.29156e-7 0 -1 -5.09293e-7 0 -1 -5.09294e-7 0 -0.683402 0.456633 0.5696035 -0.7593556 0.3145333 0.5696035 -0.7593554 0.3145334 0.5696035 -0.9951846 -0.09801995 0 -0.9951845 -0.09802013 0 -0.9951844 -0.09802019 0 -0.634393 -0.7730107 0 -0.6343907 -0.7730126 0 -0.6343902 -0.773013 0 -0.9951844 0.09802079 0 -0.9951844 0.09802061 0 -0.9951844 0.09802055 0 -0.7730095 -0.6343946 0 -0.7730103 -0.6343935 0 -0.7730105 -0.6343934 0 -0.5438634 0.8391737 0 -0.5438629 0.839174 0 -0.5438651 0.8391727 0 -0.09801197 -0.9951853 -8.84485e-7 -0.0980103 -0.9951855 8.83768e-7 -0.09801042 -0.9951854 7.17172e-7 -0.6343917 0.7730119 0 -0.6343917 0.7730119 0 -0.0806871 0.8192397 -0.5677464 -0.08068704 0.8192401 -0.5677459 -0.08068078 -0.8192393 -0.5677479 -0.08068215 -0.8192397 -0.5677471 -0.5811846 0.5811849 0.5696039 -0.4566345 0.6834014 0.5696032 -0.581184 0.581185 0.5696045 -0.3511235 0 0.9363293 -0.3511235 0 0.9363293 -0.3511235 1.26799e-7 0.9363293 -0.1603486 0.8061262 0.569604 -0.0806871 0.8192397 0.5677464 -0.1603495 0.806126 0.5696042 -0.1603454 -0.8061259 0.5696055 -0.08068132 -0.8192393 0.5677478 -0.08068329 -0.8192396 0.5677471 0.6432213 0 0.7656804 0.6432204 0 0.7656811 0.6432214 0 0.7656803 -0.7345879 0.5576829 0.3864849 -0.7345733 0.5576923 0.3864989 -0.7345692 0.5576949 0.3865029 0 -1 0 0 -1 0 -1 0 0 -1 -2.69205e-7 -2.47892e-7 -1 1.32263e-7 0 1 0 0 -0.7345875 -0.5576838 -0.3864844 -0.7345767 -0.5576896 -0.3864964 -0.7345737 -0.5576913 -0.3864998 -0.7345879 0.5576829 -0.3864849 -0.7345733 0.5576923 -0.3864989 -0.7345911 0.5576808 -0.3864817 -0.7076857 0 -0.7065274 -0.7076861 0 -0.706527 -0.7076745 7.91684e-7 -0.7065386 -0.7076636 2.8569e-7 -0.7065495 -0.7076846 -4.0339e-7 -0.7065286 -0.7076848 -4.11876e-7 -0.7065283 -1 -2.2805e-7 0 -1 0 0 -1 -4.15078e-7 3.1988e-7 -0.7076634 1.26636e-7 0.7065498 -0.7076857 8.03417e-7 0.7065275 -0.707686 8.11089e-7 0.7065272 -1 0 0 -0.5395073 -0.8419809 0 -0.5417323 -0.840532 0.005674242 -0.5417317 -0.8405325 -0.005674242 -0.7076846 -4.08711e-7 0.7065286 -0.7076636 2.94254e-7 0.7065495 -0.7076848 -4.17368e-7 0.7065283 1.27023e-4 0.6612758 -0.7501431 1.13751e-5 0.6602643 -0.7510334 1.32074e-4 0.6613199 -0.7501041 -0.7105743 2.39428e-4 -0.7036222 -0.7079722 1.59211e-5 -0.7062404 -0.7106512 2.46046e-4 -0.7035445 0 -0.6900383 -0.7237729 0 -0.6900351 -0.723776 0 -0.6900348 -0.7237763 0.6432204 0 -0.7656812 0.6432211 0 -0.7656806 0.6432211 0 -0.7656805 0 1 0 -0.7345761 -0.5576902 0.3864969 -0.734589 -0.5576823 0.3864834 -0.7345725 -0.5576923 0.3865005 -1.24484e-7 -1 0 -5.59233e-7 -1 0 0 -1 0 1.27023e-4 0.6612758 0.7501431 1.13751e-5 0.6602643 0.7510334 0 0.6601647 0.7511209 -0.5184705 0.8550956 0 -0.5184706 0.8550955 0 -0.5184701 0.8550958 0 -0.5247786 -0.8512388 0 -0.5247787 -0.8512387 0 -0.7105708 2.39427e-4 0.7036258 -0.7079728 1.59204e-5 0.7062398 -0.7077873 0 0.7064257 -1 2.43718e-7 0 -1 2.43718e-7 0 -1 2.43718e-7 0 -1 2.4862e-7 0 -1 1.25559e-7 0 -1 0 0 -0.9569397 -0.2902868 0 -0.9569398 -0.2902864 0 -0.9569399 -0.2902863 0 -0.09801679 0.9951848 0 -0.09801781 0.9951847 0 -0.09801763 0.9951848 0 -0.3511235 0 0.9363292 -0.3511235 0 0.9363292 -0.3511235 0 0.9363293 0 0 1 0 0 1 -0.3511238 0 -0.9363291 -0.3511238 0 -0.9363291 -0.3511238 0 -0.9363291 -0.3511235 1.67326e-7 0.9363292 -0.3511235 1.62951e-7 0.9363292 -0.3511235 1.58473e-7 0.9363292 -0.536346 -0.8439983 0 -0.536346 -0.8439983 0 -0.536346 -0.8439982 0 -0.3511235 0 -0.9363292 -0.3511235 0 -0.9363292 -0.3511235 0 -0.9363293 -1 1.62506e-7 0 -1 1.62506e-7 0 -1 1.62506e-7 0 -1 0 0 -1 0 0 -1 0 0 -0.3511235 0 -0.9363293 -0.3511235 0 -0.9363293 -0.3511235 0 -0.9363292 0 0 -1 0 0 -1 -0.3511235 1.67326e-7 -0.9363292 -0.3511235 1.62951e-7 -0.9363292 -0.3511235 1.76222e-7 -0.9363293 -1 1.55289e-7 0 -1 1.55289e-7 0 -1 1.55289e-7 0 -0.5278378 -0.8493452 0 -0.5278379 -0.8493452 0 -0.5278376 -0.8493454 0 -0.3511237 0 0.9363291 -0.3511236 0 0.9363291 -0.3511238 0 0.9363291 -0.2902857 -0.9569401 0 -0.2902857 -0.95694 0 -0.4713973 0.881921 0 -0.4713988 0.8819202 0 -0.4713992 0.88192 0 -0.5414069 0.8407608 0 -0.5414057 0.8407616 0 -0.5414035 0.8407629 0 -3.01672e-7 -0.6900385 0.7237728 -2.70583e-7 -0.6900386 0.7237725 -3.04663e-7 -0.6900385 0.7237728 -0.7730115 0.634392 0 -0.7730116 0.6343921 0 -0.3145365 0.759354 0.5696038 -0.314536 0.759354 0.5696039 -0.4566337 0.683402 0.5696029 -0.9569411 0.2902824 0 -0.9569412 0.2902818 0 -0.9569413 0.2902818 0 -0.2902867 0.9569398 0 -0.2902849 0.9569403 0 -0.2902846 0.9569405 0 -0.6834015 0.4566333 0.5696038 -0.8061268 0.1603488 0.5696034 -0.8061268 0.1603493 0.5696033 -0.8219189 5.04332e-7 0.5696046 -0.8219183 0 0.5696056 -0.8061252 -0.1603507 0.5696051 -0.806126 -0.1603507 0.569604 -0.7593538 -0.3145364 0.569604 -0.7593541 -0.314536 0.5696037 -0.6834009 -0.4566345 0.5696036 -0.6834005 -0.4566345 0.5696041 -0.5811833 -0.5811852 0.569605 -0.5811827 -0.5811851 0.5696057 -0.4566335 -0.6834014 0.5696037 -0.4566343 -0.6834019 0.5696026 -0.3145369 -0.7593541 0.5696035 -0.3145329 -0.7593549 0.5696046 -0.1603447 -0.8061255 0.5696064 -0.8819204 -0.4713984 0 -0.8819208 -0.4713976 0 -0.881921 -0.4713975 0 0 -1 0 -4.98186e-7 -1 0 -0.5152201 0.8570579 0 -0.5152202 0.8570579 0 -0.5152204 0.8570578 0 -1 4.68813e-7 0 -1 5.73752e-7 -1.59682e-7 -1 2.29156e-7 0 0 0 -1 0 -1.91543e-7 -1 0 0 -1 0 0 1 0 0 1 0 -1.21794e-7 1 0 0 1 0 0 1 -0.4713951 -0.8819221 0 -0.1603447 -0.8061254 -0.5696064 -0.5811827 -0.5811851 -0.5696056 -0.8219181 0 -0.5696057 -0.581184 0.581185 -0.5696045 -0.1603495 0.806126 -0.5696042 -1 4.61982e-7 0 -0.8819226 0.4713944 0 -0.9951845 -0.09801995 0 -0.6343935 -0.7730104 0 -0.9951844 0.09802085 0 -0.7730094 -0.6343947 0 -0.543862 0.8391748 0 -0.09801453 -0.995185 3.27493e-6 -0.09801197 -0.9951853 -7.17754e-7 -0.09801453 -0.995185 -3.27759e-6 -0.3511235 0 0.9363292 -0.08068704 0.8192401 0.5677459 0.6432204 0 0.7656812 -0.7345911 0.5576808 0.3864817 0 -1 0 0 -1 0 -1 2.27123e-7 0 -1 2.2954e-7 0 -1 1.26968e-7 0 -1 2.08632e-7 0 -1 2.79317e-7 0 -1 -2.48586e-7 3.88868e-7 -0.7345899 -0.5576824 -0.3864817 -0.7345692 0.5576949 -0.3865029 -0.7076629 1.53543e-7 -0.7065503 -0.7076632 1.71906e-7 -0.70655 -0.7076633 2.96417e-7 -0.7065499 -1 -6.21159e-7 -3.10249e-7 -0.7076631 0 0.7065501 -0.5387343 -0.8422613 -0.01900953 -0.5387367 -0.8422598 0.01900947 -0.7076633 3.05197e-7 0.7065499 0 0.6601647 -0.7511209 -0.7077865 0 -0.7064265 0 -0.6900384 -0.7237728 0.6432204 0 -0.7656813 -0.734592 -0.5576806 0.3864803 -6.18455e-7 -1 0 1.32074e-4 0.6613199 0.7501041 -0.5184707 0.8550953 0 -0.5247784 -0.8512389 0 -0.7106475 2.46045e-4 0.7035482 -1 2.43718e-7 0 -0.9569397 -0.290287 0 -0.09801751 0.9951847 0 -0.09801661 0.9951848 0 -0.09801745 0.9951847 0 -0.3511235 0 0.9363293 0 0 1 0 0 1 -0.3511238 0 -0.9363291 -0.3511235 1.76222e-7 0.9363293 -0.5363459 -0.8439984 0 -0.3511235 0 -0.9363293 -1 1.62506e-7 0 -1 0 0 -0.3511235 1.26799e-7 -0.9363293 0 1.20822e-7 -1 -0.3511235 1.58473e-7 -0.9363292 -1 1.55289e-7 0 -0.5278382 -0.8493449 0 -0.3511234 0 0.9363293 -0.4713971 0.8819212 0 -0.5414109 0.8407583 0 -2.69301e-7 -0.6900387 0.7237725 -0.9569411 0.2902826 0 -0.290287 0.9569397 0 -0.8819204 -0.4713985 0 -0.5152199 0.8570581 0 -1 4.68813e-7 0 -1 5.73752e-7 1.59682e-7 -1 5.50439e-7 -2.50955e-7 -1 5.50439e-7 2.50956e-7 0 0 -1 0 0 -1 0 1.75693e-6 -1 0 -7.64911e-7 -1 0 2.39844e-7 -1 0 1.06743e-6 -1 0 -1.65418e-7 -1 0 5.14993e-7 -1 0 -2.47438e-7 -1 0 0 -1 0 0 -1 0 -1.7419e-7 1 0 7.79265e-7 1 0 2.00537e-7 1 0 -1.40526e-6 1 0 9.49386e-7 1 0 -2.94844e-7 1 0 3.49563e-7 1 0 -2.01391e-7 1 0 0 1 0 -3.14327e-7 1 + + + + + + + + + + 0.02734375 0.6953125 0.01953125 0.65625 0.02734375 0.65625 0.01171875 0.65625 0.01953125 0.6484375 0.01953125 0.65625 0.01953125 0.65625 0.02734375 0.6484375 0.02734375 0.65625 0.02734375 0.6484375 0.03515625 0.65625 0.02734375 0.65625 0.03515625 0.65625 0.04296875 0.6484375 0.04296875 0.65625 0.04296875 0.65625 0.05078125 0.6484375 0.05078125 0.65625 0.05078125 0.6484375 0.05859375 0.65625 0.05078125 0.65625 0.05859375 0.6484375 0.06640625 0.65625 0.05859375 0.65625 0.06640625 0.65625 0.07421875 0.6484375 0.07421875 0.65625 0.07421875 0.6484375 0.08203125 0.65625 0.07421875 0.65625 0.08203125 0.6484375 0.08984375 0.65625 0.08203125 0.65625 0.08984375 0.6484375 0.09765625 0.65625 0.08984375 0.65625 0.09765625 0.65625 0.1054687 0.6484375 0.1054687 0.65625 0.1054687 0.6484375 0.1132812 0.65625 0.1054687 0.65625 0.1132812 0.6484375 0.1210937 0.65625 0.1132812 0.65625 0.484375 0.9375 0.4726563 0.9609375 0.4726563 0.9453125 0.08984375 0.6953125 0.08203125 0.65625 0.08984375 0.65625 0.4101563 0.9375 0.40625 0.96875 0.40625 0.9375 0.08984375 0.6953125 0.08203125 0.703125 0.08203125 0.6953125 0.06640625 0.6953125 0.05859375 0.65625 0.06640625 0.65625 0.03515625 0.6953125 0.02734375 0.65625 0.03515625 0.65625 0.07421875 0.6953125 0.06640625 0.65625 0.07421875 0.65625 0.04296875 0.6953125 0.03515625 0.65625 0.04296875 0.65625 0.3164063 0.9570313 0.3125 0.9453125 0.3164063 0.9492188 0 0.6953125 0 0.65625 0.01171875 0.65625 0.1054687 0.6953125 0.09765625 0.65625 0.1054687 0.65625 0.1210937 0.65625 0.1289062 0.6484375 0.1289062 0.65625 0.00390625 0.6484375 0.01171875 0.65625 0.00390625 0.65625 0.09765625 0.6953125 0.1054687 0.703125 0.09765625 0.703125 0.4179688 0.9609375 0.4375 0.9570313 0.4414063 0.9609375 0.1210937 0.6953125 0.1289062 0.703125 0.1210937 0.703125 0.01171875 0.6953125 0.00390625 0.703125 0.00390625 0.6953125 0.1523437 0.8671875 0.08203125 0.8632813 0.1484375 0.8632813 0.1289062 0.6953125 0.1328125 0.703125 0.1289062 0.703125 0.484375 0.9335938 0.484375 0.7773438 0.5234375 0.7773438 0.3125 0.9609375 0.3476563 0.96875 0.3007813 0.9609375 0.0625 0.703125 0 0.7041016 0 0.703125 0.00390625 0.65625 0 0.6484375 0.00390625 0.6484375 0.1289062 0.65625 0.1328125 0.6484375 0.1328125 0.65625 0.3476563 0.9335938 0.3476563 0.9375 0.3046875 0.9375 0.484375 0.9335938 0.4101563 0.9375 0.4101563 0.9335938 0.3359375 0.9609375 0.3359375 0.9453125 0.3476563 0.9414063 0 0.7333984 0.0625 0.734375 0 0.734375 0.265625 0.9726563 0.3476563 0.96875 0.3476563 0.9726563 0.171875 0.7041016 0.109375 0.703125 0.109375 0.7041016 0.3359375 0.9609375 0.3320313 0.9570313 0.3320313 0.9492188 0.4101563 0.96875 0.484375 0.9726563 0.4101563 0.9726563 0.40625 0.8632813 0.4101563 0.8164063 0.4101563 0.8671875 0.40625 0.8203125 0.3359375 0.8164063 0.4101563 0.8164063 0.3398438 0.8632813 0.3359375 0.8164063 0.3398438 0.8203125 0.40625 0.8632813 0.3359375 0.8671875 0.3398438 0.8632813 0.21875 0.703125 0.171875 0.7041016 0.171875 0.703125 0 0.703125 0.00390625 0.6953125 0.00390625 0.703125 0.0625 0.734375 0.109375 0.7333984 0.0625 0.7333984 0.08203125 0.8632813 0.078125 0.8164063 0.08203125 0.8203125 0.4296875 0.7773438 0.375 0.7773438 0.375 0.7382813 0.109375 0.734375 0.171875 0.7333984 0.109375 0.7333984 0.453125 0.9570313 0.4492188 0.9453125 0.453125 0.9492188 0.171875 0.703125 0.109375 0.734375 0.109375 0.703125 0.46875 0.9570313 0.4726563 0.9453125 0.4726563 0.9609375 0.08203125 0.8203125 0.1523437 0.8164063 0.1484375 0.8203125 0.46875 0.9570313 0.453125 0.9492188 0.46875 0.9492188 0.171875 0.734375 0.21875 0.7333984 0.171875 0.7333984 0.2773438 0.9453125 0.3046875 0.9375 0.3007813 0.9453125 0.05859375 0.6953125 0.05078125 0.65625 0.05859375 0.65625 0.1328125 0.65625 0.1328125 0.6953125 0.1210937 0.6953125 0.3164063 0.9570313 0.3359375 0.9609375 0.3125 0.9609375 0.078125 0.8164063 0.078125 0.8671875 0.0078125 0.7773438 0.2265625 0.7773438 0.265625 0.7773438 0.265625 0.9296875 0.3007813 0.9453125 0.28125 0.9492188 0.2773438 0.9453125 0.4492188 0.9609375 0.46875 0.9570313 0.4726563 0.9609375 0.3007813 0.9609375 0.296875 0.9492188 0.3007813 0.9453125 0.3359375 0.9453125 0.3164063 0.9492188 0.3125 0.9453125 0.4375 0.9492188 0.421875 0.9570313 0.421875 0.9492188 0.3320313 0.9492188 0.3164063 0.9570313 0.3164063 0.9492188 0.421875 0.9453125 0.4375 0.9492188 0.421875 0.9492188 0.4101563 0.8671875 0.4101563 0.8164063 0.484375 0.7773438 0.4492188 0.9453125 0.46875 0.9492188 0.453125 0.9492188 0.0625 0.703125 0 0.734375 0 0.703125 0.296875 0.9492188 0.28125 0.9570313 0.28125 0.9492188 0.4414063 0.9609375 0.4375 0.9492188 0.4414063 0.9453125 0.28125 0.9570313 0.3007813 0.9609375 0.2773438 0.9609375 0.01953125 0.65625 0.01171875 0.6953125 0.01171875 0.65625 0.1132812 0.6953125 0.1054687 0.65625 0.1132812 0.65625 0.28125 0.9492188 0.2773438 0.9609375 0.2773438 0.9453125 0.1523437 0.8164063 0.1484375 0.8632813 0.1484375 0.8203125 0.21875 0.703125 0.171875 0.734375 0.171875 0.703125 0.08984375 0.65625 0.09765625 0.6953125 0.08984375 0.6953125 0.1210937 0.6953125 0.1132812 0.703125 0.1132812 0.6953125 0.1132812 0.6953125 0.1054687 0.703125 0.1054687 0.6953125 0.07421875 0.65625 0.08203125 0.6953125 0.07421875 0.6953125 0.1210937 0.6953125 0.1132812 0.65625 0.1210937 0.65625 0.09765625 0.6953125 0.08984375 0.703125 0.08984375 0.6953125 0.08203125 0.6953125 0.07421875 0.703125 0.07421875 0.6953125 0.06640625 0.6953125 0.07421875 0.703125 0.06640625 0.703125 0.06640625 0.6953125 0.05859375 0.703125 0.05859375 0.6953125 0.05859375 0.6953125 0.05078125 0.703125 0.05078125 0.6953125 0.04296875 0.6953125 0.05078125 0.703125 0.04296875 0.703125 0.03515625 0.6953125 0.04296875 0.703125 0.03515625 0.703125 0.03515625 0.6953125 0.02734375 0.703125 0.02734375 0.6953125 0.01953125 0.6953125 0.02734375 0.703125 0.01953125 0.703125 0.01171875 0.6953125 0.01953125 0.703125 0.01171875 0.703125 0.05078125 0.6953125 0.04296875 0.65625 0.05078125 0.65625 0.109375 0.703125 0.0625 0.7041016 0.0625 0.703125 0.109375 0.703125 0.0625 0.734375 0.0625 0.703125 0.421875 0.9492188 0.4179688 0.9609375 0.4179688 0.9453125 0.4101563 0.9375 0.484375 0.9375 0.4492188 0.9453125 0.4179688 0.9453125 0.4101563 0.96875 0.4101563 0.9375 0.265625 0.7773438 0.3359375 0.8164063 0.3359375 0.8671875 0.3359375 0.8164063 0.4101563 0.7773438 0.4101563 0.8164063 0.4101563 0.8671875 0.3805916 0.8997213 0.3731499 0.8991516 0.1523437 0.8671875 0.1206293 0.9000405 0.1134656 0.8996057 0.1523437 0.8164063 0.078125 0.7773438 0.1523437 0.7773438 0.2265625 0.9335938 0.1523437 0.9335938 0.1523437 0.8671875 0.02734375 0.6953125 0.01953125 0.6953125 0.01953125 0.65625 0.01171875 0.65625 0.01171875 0.6484375 0.01953125 0.6484375 0.01953125 0.65625 0.01953125 0.6484375 0.02734375 0.6484375 0.02734375 0.6484375 0.03515625 0.6484375 0.03515625 0.65625 0.03515625 0.65625 0.03515625 0.6484375 0.04296875 0.6484375 0.04296875 0.65625 0.04296875 0.6484375 0.05078125 0.6484375 0.05078125 0.6484375 0.05859375 0.6484375 0.05859375 0.65625 0.05859375 0.6484375 0.06640625 0.6484375 0.06640625 0.65625 0.06640625 0.65625 0.06640625 0.6484375 0.07421875 0.6484375 0.07421875 0.6484375 0.08203125 0.6484375 0.08203125 0.65625 0.08203125 0.6484375 0.08984375 0.6484375 0.08984375 0.65625 0.08984375 0.6484375 0.09765625 0.6484375 0.09765625 0.65625 0.09765625 0.65625 0.09765625 0.6484375 0.1054687 0.6484375 0.1054687 0.6484375 0.1132812 0.6484375 0.1132812 0.65625 0.1132812 0.6484375 0.1210937 0.6484375 0.1210937 0.65625 0.484375 0.9375 0.484375 0.96875 0.4726563 0.9609375 0.08984375 0.6953125 0.08203125 0.6953125 0.08203125 0.65625 0.4101563 0.9375 0.4101563 0.96875 0.40625 0.96875 0.08984375 0.6953125 0.08984375 0.703125 0.08203125 0.703125 0.06640625 0.6953125 0.05859375 0.6953125 0.05859375 0.65625 0.03515625 0.6953125 0.02734375 0.6953125 0.02734375 0.65625 0.07421875 0.6953125 0.06640625 0.6953125 0.06640625 0.65625 0.04296875 0.6953125 0.03515625 0.6953125 0.03515625 0.65625 0.3164063 0.9570313 0.3125 0.9609375 0.3125 0.9453125 0.00390625 0.65625 0.01171875 0.65625 0 0.65625 0.01171875 0.65625 0.01171875 0.6953125 0 0.6953125 0.01171875 0.6953125 0.00390625 0.6914063 0 0.6953125 0.1054687 0.6953125 0.09765625 0.6953125 0.09765625 0.65625 0.1210937 0.65625 0.1210937 0.6484375 0.1289062 0.6484375 0.00390625 0.6484375 0.01171875 0.6484375 0.01171875 0.65625 0.09765625 0.6953125 0.1054687 0.6953125 0.1054687 0.703125 0.4179688 0.9609375 0.421875 0.9570313 0.4375 0.9570313 0.1210937 0.6953125 0.1289062 0.6953125 0.1289062 0.703125 0.01171875 0.6953125 0.01171875 0.703125 0.00390625 0.703125 0.1523437 0.8671875 0.078125 0.8671875 0.08203125 0.8632813 0.1289062 0.6953125 0.1328125 0.6953125 0.1328125 0.703125 0.5234375 0.7773438 0.5234375 0.9335938 0.484375 0.9335938 0.5234375 0.9335938 0.5195313 0.9335938 0.484375 0.9335938 0.5195313 0.9335938 0.4882813 0.9335938 0.484375 0.9335938 0.265625 0.9375 0.2773438 0.9453125 0.2773438 0.9609375 0.3007813 0.9609375 0.3007813 0.9453125 0.3125 0.9609375 0.3007813 0.9453125 0.3046875 0.9375 0.3125 0.9453125 0.3125 0.9609375 0.3007813 0.9453125 0.3125 0.9453125 0.265625 0.96875 0.265625 0.9375 0.2773438 0.9609375 0.265625 0.96875 0.2773438 0.9609375 0.3007813 0.9609375 0.3359375 0.9609375 0.3359375 0.9609375 0.3476563 0.96875 0.3125 0.9609375 0.3359375 0.9609375 0.3476563 0.96875 0.3476563 0.96875 0.265625 0.96875 0.3007813 0.9609375 0.3046875 0.9375 0.3476563 0.9375 0.3125 0.9453125 0.3476563 0.9375 0.3359375 0.9453125 0.3125 0.9453125 0.0625 0.703125 0.0625 0.7041016 0 0.7041016 0.00390625 0.65625 0 0.65625 0 0.6484375 0.1289062 0.65625 0.1289062 0.6484375 0.1328125 0.6484375 0.265625 0.9375 0.265625 0.9335938 0.3046875 0.9375 0.265625 0.9335938 0.3476563 0.9335938 0.3046875 0.9375 0.484375 0.9335938 0.484375 0.9375 0.4101563 0.9375 0.34375 0.9375 0.3476563 0.9414063 0.3359375 0.9453125 0.3476563 0.9414063 0.3476563 0.9648438 0.3359375 0.9609375 0.3476563 0.9648438 0.34375 0.96875 0.3359375 0.9609375 0 0.7333984 0.0625 0.7333984 0.0625 0.734375 0.265625 0.9726563 0.265625 0.96875 0.3476563 0.96875 0.171875 0.7041016 0.171875 0.703125 0.109375 0.703125 0.3320313 0.9492188 0.3359375 0.9453125 0.3359375 0.9609375 0.3359375 0.9609375 0.3359375 0.9609375 0.3320313 0.9570313 0.4101563 0.96875 0.484375 0.96875 0.484375 0.9726563 0.40625 0.8632813 0.40625 0.8203125 0.4101563 0.8164063 0.40625 0.8203125 0.3398438 0.8203125 0.3359375 0.8164063 0.3398438 0.8632813 0.3359375 0.8671875 0.3359375 0.8164063 0.40625 0.8632813 0.4101563 0.8671875 0.3359375 0.8671875 0.21875 0.703125 0.21875 0.7041016 0.171875 0.7041016 0 0.703125 0 0.6953125 0.00390625 0.6953125 0.0625 0.734375 0.109375 0.734375 0.109375 0.7333984 0.08203125 0.8632813 0.078125 0.8671875 0.078125 0.8164063 0.375 0.7773438 0.265625 0.7773438 0.265625 0.7382813 0.375 0.7382813 0.4296875 0.7382813 0.4296875 0.7773438 0.4296875 0.7382813 0.484375 0.7382813 0.4296875 0.7773438 0.375 0.7773438 0.265625 0.7382813 0.375 0.7382813 0.484375 0.7382813 0.484375 0.7773438 0.4296875 0.7773438 0.109375 0.734375 0.171875 0.734375 0.171875 0.7333984 0.453125 0.9570313 0.4492188 0.9609375 0.4492188 0.9453125 0.171875 0.703125 0.171875 0.734375 0.109375 0.734375 0.46875 0.9570313 0.46875 0.9492188 0.4726563 0.9453125 0.08203125 0.8203125 0.078125 0.8164063 0.1523437 0.8164063 0.46875 0.9570313 0.453125 0.9570313 0.453125 0.9492188 0.171875 0.734375 0.21875 0.734375 0.21875 0.7333984 0.2773438 0.9453125 0.265625 0.9375 0.3046875 0.9375 0.05859375 0.6953125 0.05078125 0.6953125 0.05078125 0.65625 0.1289062 0.6953125 0.1210937 0.6953125 0.1328125 0.6953125 0.1210937 0.6953125 0.1210937 0.65625 0.1328125 0.65625 0.1210937 0.65625 0.1289062 0.6601563 0.1328125 0.65625 0.3164063 0.9570313 0.3320313 0.9570313 0.3359375 0.9609375 0.078125 0.8671875 0.078125 0.9335938 0.0078125 0.9335938 0.0078125 0.9335938 0.0078125 0.7773438 0.078125 0.8671875 0.0078125 0.7773438 0.078125 0.7773438 0.078125 0.8164063 0.265625 0.9296875 0.2617188 0.9335938 0.2304687 0.9335938 0.2304687 0.9335938 0.2265625 0.9296875 0.265625 0.9296875 0.2265625 0.9296875 0.2265625 0.7773438 0.265625 0.9296875 0.3007813 0.9453125 0.296875 0.9492188 0.28125 0.9492188 0.4492188 0.9609375 0.453125 0.9570313 0.46875 0.9570313 0.3007813 0.9609375 0.296875 0.9570313 0.296875 0.9492188 0.3359375 0.9453125 0.3320313 0.9492188 0.3164063 0.9492188 0.4375 0.9492188 0.4375 0.9570313 0.421875 0.9570313 0.3320313 0.9492188 0.3320313 0.9570313 0.3164063 0.9570313 0.421875 0.9453125 0.4414063 0.9453125 0.4375 0.9492188 0.4101563 0.8164063 0.4101563 0.7773438 0.484375 0.7773438 0.484375 0.7773438 0.484375 0.9335938 0.4101563 0.8671875 0.484375 0.9335938 0.4101563 0.9335938 0.4101563 0.8671875 0.4492188 0.9453125 0.4726563 0.9453125 0.46875 0.9492188 0.0625 0.703125 0.0625 0.734375 0 0.734375 0.296875 0.9492188 0.296875 0.9570313 0.28125 0.9570313 0.4414063 0.9609375 0.4375 0.9570313 0.4375 0.9492188 0.28125 0.9570313 0.296875 0.9570313 0.3007813 0.9609375 0.01953125 0.65625 0.01953125 0.6953125 0.01171875 0.6953125 0.1132812 0.6953125 0.1054687 0.6953125 0.1054687 0.65625 0.28125 0.9492188 0.28125 0.9570313 0.2773438 0.9609375 0.1523437 0.8164063 0.1523437 0.8671875 0.1484375 0.8632813 0.21875 0.703125 0.21875 0.734375 0.171875 0.734375 0.08984375 0.65625 0.09765625 0.65625 0.09765625 0.6953125 0.1210937 0.6953125 0.1210937 0.703125 0.1132812 0.703125 0.1132812 0.6953125 0.1132812 0.703125 0.1054687 0.703125 0.07421875 0.65625 0.08203125 0.65625 0.08203125 0.6953125 0.1210937 0.6953125 0.1132812 0.6953125 0.1132812 0.65625 0.09765625 0.6953125 0.09765625 0.703125 0.08984375 0.703125 0.08203125 0.6953125 0.08203125 0.703125 0.07421875 0.703125 0.06640625 0.6953125 0.07421875 0.6953125 0.07421875 0.703125 0.06640625 0.6953125 0.06640625 0.703125 0.05859375 0.703125 0.05859375 0.6953125 0.05859375 0.703125 0.05078125 0.703125 0.04296875 0.6953125 0.05078125 0.6953125 0.05078125 0.703125 0.03515625 0.6953125 0.04296875 0.6953125 0.04296875 0.703125 0.03515625 0.6953125 0.03515625 0.703125 0.02734375 0.703125 0.01953125 0.6953125 0.02734375 0.6953125 0.02734375 0.703125 0.01171875 0.6953125 0.01953125 0.6953125 0.01953125 0.703125 0.05078125 0.6953125 0.04296875 0.6953125 0.04296875 0.65625 0.109375 0.703125 0.109375 0.7041016 0.0625 0.7041016 0.109375 0.703125 0.109375 0.734375 0.0625 0.734375 0.421875 0.9492188 0.421875 0.9570313 0.4179688 0.9609375 0.4492188 0.9609375 0.4726563 0.9609375 0.484375 0.96875 0.484375 0.96875 0.4101563 0.96875 0.4492188 0.9609375 0.4101563 0.96875 0.4179688 0.9609375 0.4414063 0.9609375 0.4101563 0.96875 0.4414063 0.9609375 0.4492188 0.9609375 0.4414063 0.9453125 0.4179688 0.9453125 0.4101563 0.9375 0.4492188 0.9609375 0.4414063 0.9609375 0.4414063 0.9453125 0.484375 0.9375 0.4726563 0.9453125 0.4492188 0.9453125 0.4492188 0.9453125 0.4492188 0.9609375 0.4414063 0.9453125 0.4414063 0.9453125 0.4101563 0.9375 0.4492188 0.9453125 0.4179688 0.9453125 0.4179688 0.9609375 0.4101563 0.96875 0.3359375 0.9335938 0.265625 0.9335938 0.3359375 0.8671875 0.265625 0.9335938 0.265625 0.7773438 0.3359375 0.8671875 0.265625 0.7773438 0.3359375 0.7773438 0.3359375 0.8164063 0.3359375 0.8164063 0.3359375 0.7773438 0.4101563 0.7773438 0.3365457 0.9266614 0.3359375 0.9335938 0.3359375 0.8671875 0.4101563 0.8671875 0.4101563 0.9335938 0.4093334 0.9257813 0.4101563 0.8671875 0.4093334 0.9257813 0.4082009 0.9194982 0.338568 0.9201555 0.3365457 0.9266614 0.3359375 0.8671875 0.3418357 0.9143871 0.338568 0.9201555 0.3359375 0.8671875 0.4101563 0.8671875 0.4082009 0.9194982 0.4048051 0.9138015 0.4101563 0.8671875 0.4048051 0.9138015 0.400143 0.9087718 0.3463863 0.9092633 0.3418357 0.9143871 0.3359375 0.8671875 0.3520503 0.9050107 0.3463863 0.9092633 0.3359375 0.8671875 0.4101563 0.8671875 0.400143 0.9087718 0.3943881 0.9046313 0.4101563 0.8671875 0.3943881 0.9046313 0.3877754 0.9015697 0.3520503 0.9050107 0.3359375 0.8671875 0.358594 0.901826 0.3359375 0.8671875 0.4101563 0.8671875 0.3731499 0.8991516 0.358594 0.901826 0.3359375 0.8671875 0.3657317 0.8998496 0.3657317 0.8998496 0.3359375 0.8671875 0.3731499 0.8991516 0.4101563 0.8671875 0.3877754 0.9015697 0.3805916 0.8997213 0.07895302 0.9276447 0.078125 0.9335938 0.078125 0.8671875 0.1523437 0.8671875 0.1523437 0.9335938 0.149919 0.9257966 0.1523437 0.8671875 0.149919 0.9257966 0.1476761 0.9193678 0.08070421 0.9211758 0.07895302 0.9276447 0.078125 0.8671875 0.08370715 0.9153638 0.08070421 0.9211758 0.078125 0.8671875 0.1523437 0.8671875 0.1476761 0.9193678 0.1442694 0.9137199 0.1523437 0.8671875 0.1442694 0.9137199 0.1396595 0.9087614 0.08795803 0.9101732 0.08370715 0.9153638 0.078125 0.8671875 0.09330022 0.9058326 0.08795803 0.9101732 0.078125 0.8671875 0.1523437 0.8671875 0.1396595 0.9087614 0.134019 0.904713 0.1523437 0.8671875 0.134019 0.904713 0.1275818 0.9017626 0.09330022 0.9058326 0.078125 0.8671875 0.09951663 0.9025395 0.078125 0.8671875 0.1523437 0.8671875 0.1134656 0.8996057 0.09951663 0.9025395 0.078125 0.8671875 0.1063379 0.9004384 0.1063379 0.9004384 0.078125 0.8671875 0.1134656 0.8996057 0.1523437 0.8671875 0.1275818 0.9017626 0.1206293 0.9000405 0.1523437 0.8164063 0.078125 0.8164063 0.078125 0.7773438 0.1523437 0.8671875 0.1523437 0.8164063 0.2265625 0.7773438 0.1523437 0.8164063 0.1523437 0.7773438 0.2265625 0.7773438 0.2265625 0.7773438 0.2265625 0.9335938 0.1523437 0.8671875 + + + + + + + + + + + + + + +

34 0 0 1 1 1 2 2 2 0 3 3 27 4 4 1 5 5 1 5 6 29 6 7 2 7 8 29 6 9 3 8 10 2 7 11 3 8 12 22 9 13 4 10 14 4 10 15 23 11 16 5 12 17 23 11 18 6 13 19 5 12 20 17 14 21 7 15 22 6 13 23 7 15 24 19 16 25 8 17 26 19 16 27 9 18 28 8 17 29 20 19 30 10 20 31 9 18 32 21 21 33 11 22 34 10 20 35 11 22 36 25 23 37 12 24 38 25 23 39 13 25 40 12 24 41 30 26 42 14 27 43 13 25 44 110 28 45 85 29 46 78 30 47 42 31 48 9 32 49 10 33 50 108 34 51 67 35 52 73 36 53 42 37 54 52 38 55 41 39 56 39 40 57 6 41 58 7 42 59 35 43 60 2 44 61 3 45 62 40 46 63 7 47 64 8 48 65 36 49 66 3 50 67 4 51 68 136 52 69 112 53 70 125 54 71 64 55 72 70 56 73 0 57 74 44 58 75 11 58 76 12 59 77 14 27 78 77 60 79 72 61 80 75 62 81 0 3 82 71 63 83 43 64 84 57 65 85 58 66 86 83 67 87 138 68 88 114 69 89 46 70 90 84 71 91 63 72 92 32 73 93 69 74 94 65 75 95 109 76 96 98 77 97 105 78 98 66 79 99 116 80 100 84 81 101 79 82 102 15 83 103 47 83 104 123 84 105 127 85 106 121 86 107 144 87 108 82 87 109 88 87 110 71 88 111 118 89 112 75 90 113 72 91 114 108 92 115 73 93 116 75 94 117 118 95 118 119 96 119 79 97 120 108 98 121 77 99 122 135 100 123 74 101 124 70 102 125 95 87 126 105 87 127 98 87 128 93 103 129 127 104 130 69 105 131 89 106 132 142 106 133 141 106 134 135 107 135 134 108 136 124 109 137 116 110 138 86 111 139 84 112 140 88 113 141 90 114 142 87 115 143 89 116 144 91 117 145 90 118 146 144 119 147 91 120 148 141 121 149 88 122 150 92 123 151 144 124 152 88 125 153 99 125 154 89 125 155 127 126 156 65 127 157 69 128 158 143 129 159 103 130 160 105 131 161 98 132 162 102 133 163 101 134 164 147 87 165 146 87 166 148 87 167 145 106 168 101 106 169 103 106 170 140 135 171 107 136 172 132 137 173 99 106 174 145 106 175 142 106 176 139 138 177 78 138 178 85 139 179 101 140 180 104 141 181 103 142 182 139 143 183 132 144 184 131 145 185 96 125 186 98 125 187 101 125 188 81 146 189 119 147 190 111 148 191 38 149 192 5 150 193 6 151 194 73 152 195 67 153 196 46 154 197 136 155 198 68 156 199 123 157 200 102 158 201 97 159 202 47 158 203 48 125 204 16 125 205 80 125 206 111 160 207 120 161 208 81 162 209 115 163 210 139 164 211 85 165 212 121 166 213 122 167 214 111 168 215 74 169 216 125 170 217 112 171 218 129 172 219 137 173 220 128 174 221 124 175 222 136 176 223 125 177 224 76 178 225 129 179 226 128 180 227 87 181 228 90 182 229 15 182 230 107 183 231 131 184 232 132 185 233 100 87 234 95 87 235 82 87 236 122 186 237 130 187 238 120 188 239 114 189 240 129 190 241 106 191 242 130 192 243 121 193 244 94 194 245 1 195 246 32 195 247 0 196 248 45 197 249 12 198 250 13 199 251 120 200 252 94 201 253 81 202 254 104 203 255 105 204 256 103 205 257 82 125 258 96 125 259 99 125 260 10 206 261 43 206 262 42 207 263 46 70 264 62 208 265 45 209 266 45 209 267 57 65 268 44 210 269 8 211 270 41 212 271 40 213 272 46 214 273 13 215 274 14 216 275 43 64 276 53 217 277 42 37 278 41 39 279 51 218 280 40 219 281 39 220 282 51 218 283 50 221 284 39 220 285 49 222 286 38 223 287 38 223 288 55 224 289 37 225 290 36 226 291 55 224 292 54 227 293 35 228 294 54 227 295 56 229 296 35 228 297 61 230 298 34 231 299 33 232 300 61 230 301 59 233 302 32 73 303 59 233 304 60 234 305 37 235 306 4 236 307 5 237 308 141 130 309 100 238 310 144 131 311 142 239 312 143 129 313 100 238 314 128 240 315 83 241 316 76 242 317 108 34 318 110 28 319 107 243 320 76 244 321 116 245 322 108 34 323 16 182 324 91 182 325 92 246 326 91 182 327 147 182 328 90 182 329 87 181 330 19 247 331 18 248 332 109 249 333 49 250 334 50 251 335 104 158 336 149 158 337 148 158 338 93 252 339 69 253 340 109 249 341 34 0 342 33 254 343 1 1 344 0 3 345 28 255 346 27 4 347 1 5 348 27 4 349 29 6 350 29 6 351 24 256 352 3 8 353 3 8 354 24 256 355 22 9 356 4 10 357 22 9 358 23 11 359 23 11 360 17 14 361 6 13 362 17 14 363 18 257 364 7 15 365 7 15 366 18 257 367 19 16 368 19 16 369 20 19 370 9 18 371 20 19 372 21 21 373 10 20 374 21 21 375 26 258 376 11 22 377 11 22 378 26 258 379 25 23 380 25 23 381 30 26 382 13 25 383 30 26 384 31 259 385 14 27 386 110 28 387 117 260 388 85 29 389 42 31 390 41 261 391 9 32 392 108 34 393 116 245 394 67 35 395 42 37 396 53 217 397 52 38 398 39 40 399 38 262 400 6 41 401 35 43 402 34 263 403 2 44 404 40 46 405 39 264 406 7 47 407 36 49 408 35 265 409 3 50 410 136 52 411 123 266 412 112 53 413 71 267 414 0 57 415 70 56 416 0 57 417 32 268 418 64 55 419 32 268 420 65 269 421 64 55 422 44 58 423 43 59 424 11 58 425 14 27 426 31 259 427 77 60 428 75 62 429 28 255 430 0 3 431 43 64 432 44 210 433 57 65 434 83 67 435 137 270 436 138 68 437 46 70 438 66 271 439 84 71 440 32 73 441 60 234 442 69 74 443 109 76 444 97 272 445 98 77 446 66 79 447 67 273 448 116 80 449 47 83 450 86 274 451 79 82 452 86 274 453 117 275 454 79 82 455 117 275 456 110 275 457 79 82 458 113 276 459 81 146 460 94 277 461 121 86 462 111 148 463 123 84 464 111 148 465 119 147 466 112 278 467 123 84 468 111 148 469 112 278 470 126 279 471 113 276 472 94 277 473 126 279 474 94 277 475 121 86 476 68 280 477 135 100 478 127 85 479 123 84 480 68 280 481 127 85 482 127 85 483 126 279 484 121 86 485 119 147 486 118 281 487 112 278 488 118 281 489 74 101 490 112 278 491 144 87 492 100 87 493 82 87 494 71 88 495 70 282 496 118 89 497 72 91 498 77 283 499 108 92 500 113 284 501 80 285 502 119 96 503 80 285 504 75 94 505 119 96 506 79 97 507 110 286 508 108 98 509 118 281 510 70 102 511 74 101 512 70 102 513 64 287 514 135 100 515 64 287 516 127 85 517 135 100 518 95 87 519 143 87 520 105 87 521 93 103 522 126 288 523 127 104 524 89 106 525 99 106 526 142 106 527 124 109 528 74 289 529 135 107 530 135 107 531 68 290 532 134 108 533 116 110 534 117 291 535 86 111 536 88 113 537 89 292 538 90 114 539 89 116 540 141 293 541 91 117 542 144 119 543 92 294 544 91 120 545 88 122 546 87 295 547 92 123 548 88 125 549 82 125 550 99 125 551 127 126 552 64 296 553 65 127 554 143 129 555 145 297 556 103 130 557 98 132 558 97 298 559 102 133 560 146 87 561 16 87 562 48 87 563 148 87 564 149 87 565 147 87 566 149 87 567 47 87 568 147 87 569 146 87 570 48 87 571 148 87 572 47 87 573 15 87 574 147 87 575 145 106 576 96 106 577 101 106 578 140 135 579 115 299 580 107 136 581 99 106 582 96 106 583 145 106 584 139 138 585 131 300 586 78 138 587 101 140 588 102 301 589 104 141 590 139 143 591 140 302 592 132 144 593 96 125 594 95 125 595 98 125 596 81 146 597 113 276 598 119 147 599 38 149 600 37 303 601 5 150 602 66 304 603 46 154 604 67 153 605 46 154 606 14 305 607 73 152 608 14 305 609 72 306 610 73 152 611 136 155 612 134 307 613 68 156 614 97 159 615 84 308 616 86 309 617 86 309 618 47 158 619 97 159 620 47 158 621 149 158 622 102 158 623 80 125 624 113 125 625 126 125 626 126 125 627 93 125 628 80 125 629 93 125 630 48 125 631 80 125 632 111 160 633 122 310 634 120 161 635 115 163 636 140 311 637 139 164 638 121 166 639 133 312 640 122 167 641 74 169 642 124 313 643 125 170 644 129 172 645 138 314 646 137 173 647 124 175 648 134 315 649 136 176 650 76 178 651 106 316 652 129 179 653 90 182 654 147 182 655 15 182 656 15 182 657 79 182 658 87 181 659 79 182 660 77 317 661 87 181 662 107 183 663 78 318 664 131 184 665 100 87 666 143 87 667 95 87 668 122 186 669 133 319 670 130 187 671 114 189 672 138 320 673 129 190 674 130 192 675 133 321 676 121 193 677 1 195 678 33 196 679 32 195 680 45 197 681 44 322 682 12 198 683 120 200 684 130 323 685 94 201 686 104 203 687 109 324 688 105 204 689 82 125 690 95 125 691 96 125 692 10 206 693 11 207 694 43 206 695 46 70 696 63 72 697 62 208 698 45 209 699 62 208 700 57 65 701 8 211 702 9 325 703 41 212 704 46 214 705 45 326 706 13 215 707 43 64 708 58 66 709 53 217 710 41 39 711 52 38 712 51 218 713 39 220 714 40 219 715 51 218 716 39 220 717 50 221 718 49 222 719 38 223 720 49 222 721 55 224 722 36 226 723 37 225 724 55 224 725 35 228 726 36 226 727 54 227 728 35 228 729 56 229 730 61 230 731 33 232 732 34 231 733 61 230 734 32 73 735 33 232 736 59 233 737 37 235 738 36 327 739 4 236 740 141 130 741 142 239 742 100 238 743 142 239 744 145 297 745 143 129 746 128 240 747 137 328 748 83 241 749 115 329 750 85 29 751 117 260 752 117 260 753 116 245 754 115 329 755 116 245 756 83 330 757 114 331 758 116 245 759 114 331 760 115 329 761 106 332 762 76 244 763 108 34 764 115 329 765 114 331 766 106 332 767 110 28 768 78 30 769 107 243 770 107 243 771 115 329 772 106 332 773 106 332 774 108 34 775 107 243 776 76 244 777 83 330 778 116 245 779 75 333 780 80 334 781 92 246 782 80 334 783 16 182 784 92 246 785 16 182 786 146 182 787 91 182 788 91 182 789 146 182 790 147 182 791 28 182 792 75 333 793 92 246 794 87 181 795 77 317 796 31 335 797 87 181 798 31 335 799 30 336 800 27 182 801 28 182 802 92 246 803 29 337 804 27 182 805 92 246 806 87 181 807 30 336 808 25 338 809 87 181 810 25 338 811 26 339 812 24 340 813 29 337 814 92 246 815 22 341 816 24 340 817 92 246 818 87 181 819 26 339 820 21 342 821 87 181 822 21 342 823 20 343 824 22 341 825 92 246 826 23 182 827 92 246 828 87 181 829 18 248 830 23 182 831 92 246 832 17 182 833 17 182 834 92 246 835 18 248 836 87 181 837 20 343 838 19 247 839 63 344 840 84 308 841 97 159 842 109 249 843 69 253 844 60 345 845 109 249 846 60 345 847 59 346 848 62 347 849 63 344 850 97 159 851 57 348 852 62 347 853 97 159 854 109 249 855 59 346 856 61 349 857 109 249 858 61 349 859 56 350 860 58 158 861 57 348 862 97 159 863 53 158 864 58 158 865 97 159 866 109 249 867 56 350 868 54 351 869 109 249 870 54 351 871 55 352 872 53 158 873 97 159 874 52 158 875 97 159 876 109 249 877 50 251 878 52 158 879 97 159 880 51 353 881 51 353 882 97 159 883 50 251 884 109 249 885 55 352 886 49 250 887 104 158 888 102 158 889 149 158 890 109 249 891 104 158 892 48 158 893 104 158 894 148 158 895 48 158 896 48 158 897 93 252 898 109 249 899

+
+
+
+ + + + -3.5 0 0.5 -3.5 4 0.5 -3.5 0 -0.5 -3.5 4 -0.5 3.5 0 0.5 3.5 4 0.5 3.5 0 -0.5 3.5 4 -0.5 -2.449998 0.06249982 0.3 -2.499998 0.1124998 0.3 2.499999 0.1124998 0.3 2.449999 0.06249982 0.3 2.449999 3.499999 0.3 2.499999 3.449999 0.3 -2.499998 3.45 0.3 -2.449998 3.5 0.3 -2.566542 0.01615011 0.5 -2.499998 0.1124998 0.4125 -2.460354 0.003356516 0.5 -2.449998 0.06249982 0.4125 2.465347 0.003356516 0.5 2.449999 0.06249982 0.4125 2.499999 0.1124998 0.4125 2.570442 0.01410555 0.5 2.570653 3.507365 0.5 -2.449998 0.06249982 -0.3 -2.499998 0.1124998 -0.3 2.499999 0.1124998 -0.3 2.449999 0.06249982 -0.3 2.449999 3.499999 -0.3 2.499999 3.449999 -0.3 -2.499998 3.45 -0.3 -2.449998 3.5 -0.3 -2.566542 0.01615011 -0.5 -2.499998 0.1124998 -0.4125 -2.460354 0.003356516 -0.5 -2.449998 0.06249982 -0.4125 2.465347 0.003356516 -0.5 2.449999 0.06249982 -0.4125 2.499999 0.1124998 -0.4125 2.570442 0.01410555 -0.5 2.570653 3.507365 -0.5 2.499999 3.449999 -0.4125 2.509674 3.568343 -0.5 2.449999 3.499999 -0.4125 -2.515752 3.568344 -0.5 -2.449998 3.5 -0.4125 -2.499998 3.45 -0.4125 -2.566191 3.518172 -0.5 2.499999 3.449999 0.4125 2.509674 3.568343 0.5 2.449999 3.499999 0.4125 -2.515752 3.568344 0.5 2.449999 3.599999 -0.3000003 2.499999 3.549999 -0.3000003 -2.499998 3.549999 -0.3000003 -2.449998 3.599999 -0.3000003 -2.449998 3.5 0.4125 -2.499998 3.45 0.4125 -2.499998 0 -0.3 -2.566191 3.518172 0.5 2.449999 3.599999 0.3000003 2.499999 0 -0.3 2.499999 3.549999 0.3000003 -3.5 0 -0.5 -2.499998 3.549999 0.3000003 3.5 0 -0.5 -2.449998 3.599999 0.3000003 3.062499 3.549999 -0.3000004 -2.499998 0 0.3 3.062499 0 -0.3000001 2.499999 0 0.3 -3.5 0 0.5 3.5 0 0.5 -3.062498 3.549999 -0.3000005 -3.062498 0 -0.3000002 -3.5 0.02500009 -0.45 3.062499 3.549999 0.3000004 3.5 0.02500009 -0.45 3.062499 0 0.3000001 -3.062498 3.549999 0.3000005 -3.062498 0 0.3000002 -3.5 0.02500009 0.45 3.5 0.02500009 0.45 + + + + + + + + + + -1 0 0 -0.7071079 -0.7071058 0 -0.4914328 -0.4914404 0.7190133 -1 0 0 0 1 0 0.4790179 -0.4790199 0.7355828 -0.6058115 0.6058108 0.515738 0 0.8284935 0.5599987 -0.7071071 0.7071066 0 0.7071078 -0.7071059 0 1 0 0 0.7975064 0 0.6033105 0.0771737 0.64055 0.7640287 0 -1 0 -0.6058115 0.6058108 -0.515738 0.4782425 -0.480796 -0.7349281 0.6165269 0.6165267 -0.4896831 -0.4914354 -0.4914371 -0.7190139 0 0.8284936 -0.5599986 0.7975074 0 -0.6033093 -0.7780221 0 -0.628237 -2.1912e-7 -0.7880899 -0.6155603 0.7071072 0.7071065 0 0 0 -1 0 -1 0 -0.7071036 -0.70711 0 0 3.89255e-6 1 0 0 1 -2.1912e-7 -0.7880899 0.6155602 0.7071036 -0.70711 0 -1 0 0 -0.7789177 4.71053e-5 0.6271261 -1.62189e-7 -1 0 7.41746e-7 0 1 -3.17891e-7 3.70874e-6 -1 0 3.89255e-6 -1 7.41746e-7 0 -1 0 7.68902e-7 -1 0 7.68902e-7 1 -9.00692e-7 0 1 -1 0 0 -0.7071078 -0.7071059 0 -0.4914354 -0.4914371 0.7190139 0.4782425 -0.480796 0.7349281 -0.0651189 0.6366786 0.7683749 0 0.8284941 0.5599979 -0.7071073 0.7071063 0 0.7071079 -0.7071058 0 0.7960138 -7.97699e-5 0.6052786 0.6165269 0.6165267 0.4896831 -0.06511884 0.6366788 -0.7683748 0.4790179 -0.4790199 -0.7355828 0.0771737 0.64055 -0.7640287 -0.4914328 -0.4914404 -0.7190133 0 0.8284941 -0.559998 0.7960132 -7.97698e-5 -0.6052795 -0.7789177 4.71053e-5 -0.6271261 0 -0.7880892 -0.6155612 -4.76837e-7 -1 0 -0.7071092 -0.7071044 0 3.27826e-6 3.35274e-6 1 3.27825e-6 2.98025e-6 1 0 2.91942e-6 1 -3.27826e-6 2.98022e-6 1 -3.27825e-6 3.35278e-6 1 0 -0.7880892 0.6155611 0.7071092 -0.7071044 0 -1 0 0 9.44843e-7 -1 0 0 0 -1 -0.7780221 0 0.628237 1.58946e-7 0 1 1.77415e-7 0 1 1.58948e-7 3.17892e-6 1 -9.00692e-7 0 -1 -3.17892e-7 0 -1 -3.36361e-7 0 -1 3.27825e-6 2.98025e-6 -1 3.27825e-6 3.35273e-6 -1 -3.27826e-6 2.98022e-6 -1 0 2.91942e-6 -1 -3.27825e-6 3.35278e-6 -1 1.58948e-7 3.17892e-6 -1 1.77415e-7 0 -1 1.58946e-7 0 -1 0 -7.7243e-7 -1 0 -7.7243e-7 1 -3.17893e-7 3.70874e-6 1 -3.36361e-7 0 1 -3.17892e-7 0 1 + + + + + + + + + + 0.4492188 0.2695313 0.4570313 0.078125 0.4570313 0.2695313 0.4570313 0.2773438 0.4492188 0.2695313 0.4492188 0.2773438 0.4570313 0.2851563 0.4648438 0.2773438 0.4648438 0.2851563 0.0625 0.0625 0 0.3125 0 0.0625 0.4570313 0.4101563 0.4492188 0.4179688 0.4492188 0.4101563 0.4570313 0.609375 0.4492188 0.4179688 0.4570313 0.4179688 0.1367187 0.6171875 0.4492188 0.609375 0.4492188 0.6171875 0.1289062 0.2773438 0.1210937 0.2851563 0.1210937 0.2773438 0.4570313 0.0625 0.4648438 0.0703125 0.4570313 0.0703125 0.4570313 0.0703125 0.1289062 0.0625 0.4570313 0.0625 0.4492188 0.078125 0.1367187 0.0703125 0.4492188 0.0703125 0.4570313 0.078125 0.4492188 0.0703125 0.4570313 0.0703125 0.1289062 0.2695313 0.1367187 0.2773438 0.1289062 0.2773438 0.1367187 0.078125 0.1289062 0.2695313 0.1289062 0.078125 0.1210937 0.2773438 0.1289062 0.0703125 0.1289062 0.2773438 0.1210937 0.0625 0.1289062 0.0703125 0.1210937 0.0703125 0.1367187 0.2695313 0.4492188 0.2773438 0.1367187 0.2773438 0.4492188 0.609375 0.4570313 0.6171875 0.4492188 0.6171875 0.1367187 0.4179688 0.1289062 0.4101563 0.1367187 0.4101563 0.1289062 0.4179688 0.1367187 0.609375 0.1289062 0.609375 0.4492188 0.4179688 0.1367187 0.4101563 0.1367187 0.4179688 0.4648438 0.6171875 0.4570313 0.625 0.4648438 0.625 0.1289062 0.4101563 0.1210937 0.4023438 0.1289062 0.4023438 0.1289062 0.625 0.1210937 0.6171875 0.1210937 0.625 0.4648438 0.4023438 0.4570313 0.4101563 0.4570313 0.4023438 0.1289062 0.625 0.4570313 0.6171875 0.4570313 0.625 0.1289062 0.6171875 0.1210937 0.4101563 0.1289062 0.4101563 0.4648438 0.4101563 0.4570313 0.6171875 0.4570313 0.4101563 0.4570313 0.4101563 0.1289062 0.4023438 0.1289062 0.4101563 0.1289062 0.6171875 0.1367187 0.609375 0.1367187 0.6171875 0.0625 0.625 0.1210937 0.625 0.4648438 0.625 0.0546875 0.6484375 0.0078125 0.6289063 0.0546875 0.6289063 0.0546875 0.3320313 0.0078125 0.3359375 0.0078125 0.3320313 0.0078125 0.3359375 0.0078125 0.625 0 0.625 0.4648438 0.0625 0.1210937 0.0625 0.0625 0.05859375 0.1289062 0.2851563 0.4570313 0.2773438 0.1289062 0.2773438 0.0546875 0.625 0.0078125 0.6289063 0.0078125 0.625 0.5859375 0.0625 0.5234375 0.3125 0.5234375 0.0625 0.5234375 0.3125 0.4648438 0.2851563 0.4648438 0.28125 0.578125 0.3164063 0.53125 0.6289063 0.578125 0.6289063 0.5234375 0.375 0.0625 0.3125 0.5234375 0.3125 0.5234375 0.05859375 0.0625 0 0.0625 0.05859375 0.1367187 0.1992187 0.3554688 0.234375 0.1367187 0.234375 0.0078125 0.3125 0.0546875 0.3320313 0.0078125 0.3320313 0.4648438 0.4023438 0.0625 0.375 0.5234375 0.375 0.0625 0 0.5234375 0.05859375 0.0625 0.05859375 0.4648438 0.2773438 0.4570313 0.0703125 0.4648438 0.0703125 0.1289062 0.078125 0.1367187 0.0703125 0.1367187 0.078125 0.0546875 0.3359375 0.0078125 0.625 0.0078125 0.3359375 0.3554688 0.234375 0.1367187 0.1992187 0.3554688 0.1992187 0.1445312 0.1640625 0.3554688 0.1992187 0.3476563 0.1640625 0.3554688 0.1992187 0.3554688 0.1640625 0.3476563 0.1640625 0.0625 0.3359375 0.0546875 0.3359375 0.0546875 0.625 0.1445312 0.234375 0.3476563 0.234375 0.3554688 0.2695313 0.5859375 0.3398438 0.5859375 0.6054688 0.578125 0.5976563 0.5234375 0.6054688 0.5234375 0.3398438 0.53125 0.3476563 0.1445312 0.234375 0.3476563 0.234375 0.3554688 0.2695313 0.4492188 0.2695313 0.4492188 0.078125 0.4570313 0.078125 0.4570313 0.2773438 0.4570313 0.2695313 0.4492188 0.2695313 0.4570313 0.2851563 0.4570313 0.2773438 0.4648438 0.2773438 0.0625 0.0625 0.0625 0.3125 0 0.3125 0.4570313 0.4101563 0.4570313 0.4179688 0.4492188 0.4179688 0.4570313 0.609375 0.4492188 0.609375 0.4492188 0.4179688 0.1367187 0.6171875 0.1367187 0.609375 0.4492188 0.609375 0.1289062 0.2773438 0.1289062 0.2851563 0.1210937 0.2851563 0.4570313 0.0625 0.4648438 0.0625 0.4648438 0.0703125 0.4570313 0.0703125 0.1289062 0.0703125 0.1289062 0.0625 0.4492188 0.078125 0.1367187 0.078125 0.1367187 0.0703125 0.4570313 0.078125 0.4492188 0.078125 0.4492188 0.0703125 0.1289062 0.2695313 0.1367187 0.2695313 0.1367187 0.2773438 0.1367187 0.078125 0.1367187 0.2695313 0.1289062 0.2695313 0.1210937 0.2773438 0.1210937 0.0703125 0.1289062 0.0703125 0.1210937 0.0625 0.1289062 0.0625 0.1289062 0.0703125 0.1367187 0.2695313 0.4492188 0.2695313 0.4492188 0.2773438 0.4492188 0.609375 0.4570313 0.609375 0.4570313 0.6171875 0.1367187 0.4179688 0.1289062 0.4179688 0.1289062 0.4101563 0.1289062 0.4179688 0.1367187 0.4179688 0.1367187 0.609375 0.4492188 0.4179688 0.4492188 0.4101563 0.1367187 0.4101563 0.4648438 0.6171875 0.4570313 0.6171875 0.4570313 0.625 0.1289062 0.4101563 0.1210937 0.4101563 0.1210937 0.4023438 0.1289062 0.625 0.1289062 0.6171875 0.1210937 0.6171875 0.4648438 0.4023438 0.4648438 0.4101563 0.4570313 0.4101563 0.1289062 0.625 0.1289062 0.6171875 0.4570313 0.6171875 0.1289062 0.6171875 0.1210937 0.6171875 0.1210937 0.4101563 0.4648438 0.4101563 0.4648438 0.6171875 0.4570313 0.6171875 0.4570313 0.4101563 0.4570313 0.4023438 0.1289062 0.4023438 0.1289062 0.6171875 0.1289062 0.609375 0.1367187 0.609375 0.5234375 0.625 0.5234375 0.6289063 0.0625 0.6289063 0.0625 0.625 0.0625 0.375 0.1210937 0.40625 0.0625 0.625 0.1210937 0.40625 0.1210937 0.625 0.5234375 0.625 0.0625 0.6289063 0.4648438 0.625 0.0625 0.6289063 0.0625 0.625 0.4648438 0.625 0.0546875 0.6484375 0.0078125 0.6484375 0.0078125 0.6289063 0.0546875 0.3320313 0.0546875 0.3359375 0.0078125 0.3359375 0.0078125 0.625 0.0078125 0.6289063 0 0.6289063 0 0.6289063 0 0.625 0.0078125 0.625 0 0.625 0 0.3359375 0.0078125 0.3359375 0 0.3359375 0 0.3320313 0.0078125 0.3359375 0 0.3320313 0.0078125 0.3320313 0.0078125 0.3359375 0.1210937 0.0625 0.1210937 0.28125 0.0625 0.05859375 0.1210937 0.28125 0.0625 0.3125 0.0625 0.05859375 0.0625 0.05859375 0.5234375 0.05859375 0.5234375 0.0625 0.0625 0.05859375 0.5234375 0.0625 0.4648438 0.0625 0.0625 0.05859375 0.0625 0.05859375 0.4648438 0.0625 0.1289062 0.2851563 0.4570313 0.2851563 0.4570313 0.2773438 0.0546875 0.625 0.0546875 0.6289063 0.0078125 0.6289063 0.5859375 0.0625 0.5859375 0.3125 0.5234375 0.3125 0.4648438 0.0625 0.5234375 0.0625 0.4648438 0.28125 0.5234375 0.0625 0.5234375 0.3125 0.4648438 0.28125 0.0625 0.3125 0.1210937 0.28125 0.1210937 0.2851563 0.0625 0.3125 0.1210937 0.2851563 0.4648438 0.2851563 0.5234375 0.3125 0.0625 0.3125 0.4648438 0.2851563 0.578125 0.3164063 0.53125 0.3164063 0.53125 0.6289063 0.5234375 0.375 0.0625 0.375 0.0625 0.3125 0.5234375 0.05859375 0.5234375 0 0.0625 0 0.1367187 0.1992187 0.3554688 0.1992187 0.3554688 0.234375 0.0078125 0.3125 0.0546875 0.3125 0.0546875 0.3320313 0.5234375 0.375 0.5234375 0.625 0.4648438 0.40625 0.5234375 0.625 0.4648438 0.625 0.4648438 0.40625 0.1210937 0.4023438 0.1210937 0.40625 0.0625 0.375 0.5234375 0.375 0.4648438 0.40625 0.4648438 0.4023438 0.4648438 0.4023438 0.1210937 0.4023438 0.0625 0.375 0.0625 0 0.5234375 0 0.5234375 0.05859375 0.4648438 0.2773438 0.4570313 0.2773438 0.4570313 0.0703125 0.1289062 0.078125 0.1289062 0.0703125 0.1367187 0.0703125 0.0546875 0.3359375 0.0546875 0.625 0.0078125 0.625 0.3554688 0.234375 0.1367187 0.234375 0.1367187 0.1992187 0.1445312 0.1640625 0.1367187 0.1640625 0.1367187 0.1992187 0.1367187 0.1992187 0.3554688 0.1992187 0.1445312 0.1640625 0.3554688 0.1992187 0.3554688 0.1640625 0.3476563 0.1640625 0.3476563 0.1640625 0.1445312 0.1640625 0.3554688 0.1992187 0.1445312 0.1640625 0.1367187 0.1640625 0.1367187 0.1992187 0.3554688 0.1992187 0.1445312 0.1640625 0.1367187 0.1992187 0.0625 0.3359375 0.0625 0.3320313 0.0546875 0.3359375 0.0625 0.3320313 0.0546875 0.3320313 0.0546875 0.3359375 0.0625 0.6289063 0.0625 0.625 0.0546875 0.625 0.0625 0.625 0.0625 0.3359375 0.0546875 0.625 0.0546875 0.625 0.0546875 0.6289063 0.0625 0.6289063 0.3554688 0.234375 0.3554688 0.2695313 0.3476563 0.234375 0.3554688 0.2695313 0.1367187 0.2695313 0.1445312 0.234375 0.1367187 0.2695313 0.1367187 0.234375 0.1445312 0.234375 0.578125 0.3476563 0.578125 0.3398438 0.5859375 0.3398438 0.5859375 0.6054688 0.578125 0.6054688 0.578125 0.5976563 0.578125 0.5976563 0.578125 0.3476563 0.5859375 0.3398438 0.53125 0.5976563 0.53125 0.6054688 0.5234375 0.6054688 0.5234375 0.3398438 0.53125 0.3398438 0.53125 0.3476563 0.53125 0.3476563 0.53125 0.5976563 0.5234375 0.6054688 0.3476563 0.234375 0.3554688 0.234375 0.3554688 0.2695313 0.3554688 0.2695313 0.1367187 0.2695313 0.1445312 0.234375 0.1367187 0.2695313 0.1367187 0.234375 0.1445312 0.234375 + + + + + + + + + + + + + + +

13 0 0 22 0 1 49 0 2 13 1 3 51 1 4 12 1 5 50 2 6 49 2 7 24 2 8 0 3 9 3 3 10 2 3 11 44 1 12 30 1 13 29 1 14 39 0 15 30 0 16 42 0 17 36 4 18 28 4 19 38 4 20 57 5 21 60 5 22 58 5 23 20 6 24 22 6 25 21 6 26 21 7 27 18 7 28 20 7 29 11 4 30 19 4 31 21 4 32 22 8 33 11 8 34 21 8 35 58 9 36 15 9 37 57 9 38 9 10 39 58 10 40 17 10 41 60 11 42 17 11 43 58 11 44 18 12 45 17 12 46 16 12 47 15 13 48 51 13 49 57 13 50 28 8 51 39 8 52 38 8 53 32 9 54 47 9 55 46 9 56 47 10 57 26 10 58 34 10 59 44 13 60 32 13 61 46 13 62 39 14 63 37 14 64 38 14 65 46 15 66 48 15 67 45 15 68 35 16 69 34 16 70 36 16 71 43 17 72 42 17 73 44 17 74 35 18 75 38 18 76 37 18 77 34 19 78 48 19 79 47 19 80 41 20 81 39 20 82 42 20 83 46 21 84 43 21 85 44 21 86 36 22 87 26 22 88 25 22 89 2 23 90 33 23 91 35 23 92 80 24 93 55 24 94 65 24 95 63 25 96 53 25 97 54 25 98 32 26 99 29 26 100 53 26 101 18 27 102 16 27 103 0 27 104 50 28 105 57 28 106 51 28 107 67 29 108 55 29 109 56 29 110 6 10 111 5 10 112 4 10 113 5 27 114 50 27 115 24 27 116 83 4 117 76 4 118 82 4 119 7 4 120 1 4 121 5 4 122 4 4 123 2 4 124 0 4 125 79 30 126 68 30 127 70 30 128 68 24 129 63 24 130 54 24 131 43 23 132 3 23 133 7 23 134 64 24 135 73 24 136 72 24 137 24 31 138 22 31 139 23 31 140 9 22 141 19 22 142 8 22 143 61 32 144 56 32 145 53 32 146 80 10 147 75 10 148 74 10 149 27 33 150 68 33 151 30 33 152 80 34 153 65 34 154 14 34 155 61 35 156 12 35 157 15 35 158 10 36 159 13 36 160 77 36 161 71 37 162 69 37 163 8 37 164 59 38 165 62 38 166 28 38 167 26 39 168 31 39 169 74 39 170 13 40 171 10 40 172 22 40 173 13 41 174 49 41 175 51 41 176 50 42 177 51 42 178 49 42 179 0 3 180 1 3 181 3 3 182 44 41 183 42 41 184 30 41 185 39 40 186 27 40 187 30 40 188 36 4 189 25 4 190 28 4 191 57 43 192 52 43 193 60 43 194 20 44 195 23 44 196 22 44 197 21 45 198 19 45 199 18 45 200 11 4 201 8 4 202 19 4 203 22 46 204 10 46 205 11 46 206 58 47 207 14 47 208 15 47 209 9 10 210 14 10 211 58 10 212 60 48 213 16 48 214 17 48 215 18 49 216 19 49 217 17 49 218 15 13 219 12 13 220 51 13 221 28 46 222 27 46 223 39 46 224 32 47 225 31 47 226 47 47 227 47 10 228 31 10 229 26 10 230 44 13 231 29 13 232 32 13 233 39 50 234 40 50 235 37 50 236 46 51 237 47 51 238 48 51 239 35 52 240 33 52 241 34 52 242 43 53 243 41 53 244 42 53 245 35 54 246 36 54 247 38 54 248 34 55 249 33 55 250 48 55 251 41 56 252 40 56 253 39 56 254 46 57 255 45 57 256 43 57 257 36 22 258 34 22 259 26 22 260 37 23 261 40 23 262 6 23 263 2 23 264 3 23 265 48 23 266 2 23 267 48 23 268 33 23 269 37 23 270 6 23 271 35 23 272 6 23 273 2 23 274 35 23 275 80 58 276 74 58 277 55 58 278 63 59 279 61 59 280 53 59 281 29 60 282 30 60 283 54 60 284 54 61 285 53 61 286 29 61 287 53 62 288 56 62 289 32 62 290 56 63 291 55 63 292 32 63 293 55 64 294 31 64 295 32 64 296 16 27 297 60 27 298 0 27 299 60 27 300 1 27 301 0 27 302 4 27 303 23 27 304 20 27 305 4 27 306 20 27 307 18 27 308 0 27 309 4 27 310 18 27 311 50 65 312 52 65 313 57 65 314 67 66 315 65 66 316 55 66 317 6 10 318 7 10 319 5 10 320 23 27 321 4 27 322 24 27 323 4 27 324 5 27 325 24 27 326 1 27 327 60 27 328 52 27 329 1 27 330 52 27 331 50 27 332 5 27 333 1 27 334 50 27 335 83 4 336 78 4 337 76 4 338 7 4 339 3 4 340 1 4 341 4 4 342 6 4 343 2 4 344 79 67 345 77 67 346 68 67 347 68 68 348 77 68 349 63 68 350 7 23 351 6 23 352 41 23 353 6 23 354 40 23 355 41 23 356 45 23 357 48 23 358 3 23 359 7 23 360 41 23 361 43 23 362 43 69 363 45 69 364 3 69 365 64 24 366 66 24 367 73 24 368 24 70 369 49 70 370 22 70 371 9 22 372 17 22 373 19 22 374 61 24 375 67 24 376 56 24 377 80 10 378 81 10 379 75 10 380 27 71 381 62 71 382 70 71 383 70 72 384 68 72 385 27 72 386 68 73 387 54 73 388 30 73 389 14 74 390 9 74 391 80 74 392 9 75 393 69 75 394 81 75 395 80 76 396 9 76 397 81 76 398 61 77 399 63 77 400 12 77 401 63 78 402 13 78 403 12 78 404 65 79 405 67 79 406 15 79 407 67 80 408 61 80 409 15 80 410 15 81 411 14 81 412 65 81 413 63 82 414 77 82 415 13 82 416 77 83 417 79 83 418 10 83 419 79 84 420 71 84 421 10 84 422 11 23 423 10 23 424 71 23 425 69 23 426 9 23 427 8 23 428 8 85 429 11 85 430 71 85 431 25 27 432 26 27 433 59 27 434 62 27 435 27 27 436 28 27 437 28 86 438 25 86 439 59 86 440 31 87 441 55 87 442 74 87 443 74 88 444 75 88 445 26 88 446 75 89 447 59 89 448 26 89 449

+
+
+
+
+ + + + + 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 + + + + + + + + 7.54979e-8 -1 0 1.82539e-7 1 7.54979e-8 0 1.75 0 0 1 0.01755606 0 0 0 1 0.08690225 -0.9962168 0 1.82539e-7 0.9962168 0.08690225 0 1.75 0 0 1 0.01755606 0 0 0 1 0.3064026 -0.951902 0 1.82539e-7 0.951902 0.3064026 0 1.75 0 0 1 0.01755606 0 0 0 1 0.5796046 -0.8148978 0 1.82539e-7 0.8148978 0.5796046 0 1.75 0 0 1 0.01755606 0 0 0 1 0.8148978 -0.5796046 0 1.82539e-7 0.5796046 0.8148978 0 1.75 0 0 1 0.01755606 0 0 0 1 0.951902 -0.3064026 0 1.82539e-7 0.3064026 0.951902 0 1.75 0 0 1 0.01755606 0 0 0 1 0.9962168 -0.08690242 0 1.82539e-7 0.08690242 0.9962168 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.86265e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 + + + + + + + + LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR + + + + + + + + + + + + + + + + + + 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 + + + + + + + + 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.040625 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.121875 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.125 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.128125 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.15 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.246175 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.4424 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.712725 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1.0312 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1.371875 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1.7088 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 2.016025 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 2.2676 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 2.437575 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 2.5 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR + + + + + + + + + + + + + + + + + + 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 + + + + + + + + 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.040625 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.121875 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.125 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.128125 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.15 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.246175 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.4424 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.712725 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -1.0312 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -1.371875 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -1.7088 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -2.016025 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -2.2676 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -2.437575 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -2.5 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR + + + + + + + + + + + + + + + + + + 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 + + + + + + + + 7.54979e-8 -1 0 1.82539e-7 1 7.54979e-8 0 1.75 0 0 1 0.01755606 0 0 0 1 0.08690225 -0.9962168 0 1.82539e-7 0.9962168 0.08690225 0 1.75 0 0 1 0.01755606 0 0 0 1 0.3064026 -0.951902 0 1.82539e-7 0.951902 0.3064026 0 1.75 0 0 1 0.01755606 0 0 0 1 0.5796046 -0.8148978 0 1.82539e-7 0.8148978 0.5796046 0 1.75 0 0 1 0.01755606 0 0 0 1 0.8148978 -0.5796046 0 1.82539e-7 0.5796046 0.8148978 0 1.75 0 0 1 0.01755606 0 0 0 1 0.951902 -0.3064026 0 1.82539e-7 0.3064026 0.951902 0 1.75 0 0 1 0.01755606 0 0 0 1 0.9962168 -0.08690242 0 1.82539e-7 0.08690242 0.9962168 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.86265e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 + + + + + + + + LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR + + + + + + + + + + + + + + + + + + + 1 0 0 -2.5 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + + + + 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 + + + + + + + + + + + + + 1 0 0 2.5 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + + + + 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 + + + + + + + + + + + + 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + + + + + + 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj b/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj new file mode 100644 index 000000000..dc0017cc3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj @@ -0,0 +1,2522 @@ +# Blender v2.92.0 OBJ File: 'sliding_seal_door.blend' +# www.blender.org +o frame +v 0.125000 2.000000 -0.500000 +v 0.125000 0.000000 -0.500000 +v 0.125000 0.000000 0.500000 +v 0.125000 2.000000 0.500000 +v 0.125000 0.076037 0.228141 +v 0.125000 0.271859 0.423963 +v 0.125000 0.102272 0.326052 +v 0.125000 0.173948 0.397728 +v 0.125000 1.728141 0.423963 +v 0.125000 1.923963 0.228141 +v 0.125000 1.826052 0.397728 +v 0.125000 1.897728 0.326052 +v 0.125000 0.271859 -0.423963 +v 0.125000 0.076037 -0.228141 +v 0.125000 0.173948 -0.397728 +v 0.125000 0.102272 -0.326052 +v 0.125000 1.923963 -0.228141 +v 0.125000 1.728141 -0.423963 +v 0.125000 1.897728 -0.326052 +v 0.125000 1.826052 -0.397728 +v 0.089033 1.728141 -0.423963 +v 0.089033 1.826052 -0.397728 +v 0.089033 1.897728 -0.326052 +v 0.089033 1.923963 -0.228141 +v 0.089033 0.076037 -0.228141 +v 0.089033 0.102272 -0.326052 +v 0.089033 0.173948 -0.397728 +v 0.089033 0.271859 -0.423963 +v 0.089033 0.271859 0.423963 +v 0.089033 0.173948 0.397728 +v 0.089033 0.102272 0.326052 +v 0.089033 0.076037 0.228141 +v 0.089033 1.923963 0.228141 +v 0.089033 1.897728 0.326052 +v 0.089033 1.826052 0.397728 +v 0.089033 1.728141 0.423963 +v 0.089033 0.036209 -0.233384 +v 0.089033 0.036209 0.233384 +v 0.089033 1.846138 0.432517 +v 0.089033 1.733384 0.463791 +v 0.089033 1.932517 0.346138 +v 0.089033 1.963791 0.233384 +v 0.089033 0.067483 0.346138 +v 0.089033 0.153862 0.432517 +v 0.089033 0.266616 0.463791 +v 0.089033 0.036209 -0.432517 +v 0.089033 0.036209 -0.477970 +v 0.089033 0.036209 -0.346138 +v 0.089033 1.963791 -0.346138 +v 0.089033 1.963791 -0.233384 +v 0.089033 1.963791 -0.432517 +v 0.089033 1.963791 -0.477970 +v 0.125000 0.053035 0.242267 +v 0.125000 0.253733 0.450214 +v 0.125000 0.079924 0.346241 +v 0.125000 0.153384 0.422355 +v 0.125000 1.746267 0.450214 +v 0.125000 1.946965 0.242267 +v 0.125000 1.846616 0.422355 +v 0.125000 1.920076 0.346241 +v 0.125000 0.253733 -0.450214 +v 0.125000 0.053035 -0.242267 +v 0.125000 0.153384 -0.422355 +v 0.125000 0.079924 -0.346241 +v 0.125000 1.946965 -0.242267 +v 0.125000 1.746267 -0.450214 +v 0.125000 1.920076 -0.346241 +v 0.125000 1.846616 -0.422355 +v 0.139289 0.068129 0.233128 +v 0.139289 0.094589 0.333179 +v 0.139289 0.166878 0.406422 +v 0.139289 0.265627 0.433231 +v 0.139289 1.734373 0.433231 +v 0.139289 1.833122 0.406422 +v 0.139289 1.905411 0.333179 +v 0.139289 1.931871 0.233128 +v 0.139289 0.265627 -0.433231 +v 0.139289 0.166878 -0.406422 +v 0.139289 0.094589 -0.333179 +v 0.139289 0.068129 -0.233128 +v 0.139289 1.931871 -0.233128 +v 0.139289 1.905411 -0.333179 +v 0.139289 1.833122 -0.406422 +v 0.139289 1.734373 -0.433231 +v 0.139289 0.058093 0.238676 +v 0.139289 0.084837 0.341109 +v 0.139289 0.157905 0.416095 +v 0.139289 0.257718 0.443541 +v 0.139289 1.742282 0.443541 +v 0.139289 1.842094 0.416095 +v 0.139289 1.915163 0.341109 +v 0.139289 1.941907 0.238676 +v 0.139289 0.257718 -0.443541 +v 0.139289 0.157905 -0.416095 +v 0.139289 0.084837 -0.341109 +v 0.139289 0.058093 -0.238676 +v 0.139289 1.941907 -0.238676 +v 0.139289 1.915163 -0.341109 +v 0.139289 1.842094 -0.416095 +v 0.139289 1.742282 -0.443541 +v -0.125000 2.000000 -0.500000 +v -0.125000 0.000000 -0.500000 +v -0.125000 0.000000 0.500000 +v -0.125000 2.000000 0.500000 +v -0.125000 0.076037 0.228141 +v -0.125000 0.271859 0.423963 +v -0.125000 0.102272 0.326052 +v -0.125000 0.173948 0.397728 +v -0.125000 1.728141 0.423963 +v -0.125000 1.923963 0.228141 +v -0.125000 1.826052 0.397728 +v -0.125000 1.897728 0.326052 +v -0.125000 0.271859 -0.423963 +v -0.125000 0.076037 -0.228141 +v -0.125000 0.173948 -0.397728 +v -0.125000 0.102272 -0.326052 +v -0.125000 1.923963 -0.228141 +v -0.125000 1.728141 -0.423963 +v -0.125000 1.897728 -0.326052 +v -0.125000 1.826052 -0.397728 +v -0.089033 1.728141 -0.423963 +v -0.089033 1.826052 -0.397728 +v -0.089033 1.897728 -0.326052 +v -0.089033 1.923963 -0.228141 +v -0.089033 0.076037 -0.228141 +v -0.089033 0.102272 -0.326052 +v -0.089033 0.173948 -0.397728 +v -0.089033 0.271859 -0.423963 +v -0.089033 0.271859 0.423963 +v -0.089033 0.173948 0.397728 +v -0.089033 0.102272 0.326052 +v -0.089033 0.076037 0.228141 +v -0.089033 1.923963 0.228141 +v -0.089033 1.897728 0.326052 +v -0.089033 1.826052 0.397728 +v -0.089033 1.728141 0.423963 +v -0.089033 0.036209 -0.233384 +v -0.089033 0.036209 0.233384 +v -0.089033 1.846138 0.432517 +v -0.089033 1.733384 0.463791 +v -0.089033 1.932517 0.346138 +v -0.089033 1.963791 0.233384 +v -0.089033 0.067483 0.346138 +v -0.089033 0.153862 0.432517 +v -0.089033 0.266616 0.463791 +v -0.089033 0.036209 -0.432517 +v -0.089033 0.036209 -0.477970 +v -0.089033 0.036209 -0.346138 +v -0.089033 1.963791 -0.346138 +v -0.089033 1.963791 -0.233384 +v -0.089033 1.963791 -0.432517 +v -0.089033 1.963791 -0.477970 +v -0.125000 0.053035 0.242267 +v -0.125000 0.253733 0.450214 +v -0.125000 0.079924 0.346241 +v -0.125000 0.153384 0.422355 +v -0.125000 1.746267 0.450214 +v -0.125000 1.946965 0.242267 +v -0.125000 1.846616 0.422355 +v -0.125000 1.920076 0.346241 +v -0.125000 0.253733 -0.450214 +v -0.125000 0.053035 -0.242267 +v -0.125000 0.153384 -0.422355 +v -0.125000 0.079924 -0.346241 +v -0.125000 1.946965 -0.242267 +v -0.125000 1.746267 -0.450214 +v -0.125000 1.920076 -0.346241 +v -0.125000 1.846616 -0.422355 +v -0.139289 0.068129 0.233128 +v -0.139289 0.094589 0.333179 +v -0.139289 0.166878 0.406422 +v -0.139289 0.265627 0.433231 +v -0.139289 1.734373 0.433231 +v -0.139289 1.833122 0.406422 +v -0.139289 1.905411 0.333179 +v -0.139289 1.931871 0.233128 +v -0.139289 0.265627 -0.433231 +v -0.139289 0.166878 -0.406422 +v -0.139289 0.094589 -0.333179 +v -0.139289 0.068129 -0.233128 +v -0.139289 1.931871 -0.233128 +v -0.139289 1.905411 -0.333179 +v -0.139289 1.833122 -0.406422 +v -0.139289 1.734373 -0.433231 +v -0.139289 0.058093 0.238676 +v -0.139289 0.084837 0.341109 +v -0.139289 0.157905 0.416095 +v -0.139289 0.257718 0.443541 +v -0.139289 1.742282 0.443541 +v -0.139289 1.842094 0.416095 +v -0.139289 1.915163 0.341109 +v -0.139289 1.941907 0.238676 +v -0.139289 0.257718 -0.443541 +v -0.139289 0.157905 -0.416095 +v -0.139289 0.084837 -0.341109 +v -0.139289 0.058093 -0.238676 +v -0.139289 1.941907 -0.238676 +v -0.139289 1.915163 -0.341109 +v -0.139289 1.842094 -0.416095 +v -0.139289 1.742282 -0.443541 +v 0.000000 0.036209 0.233384 +v 0.000000 1.846138 0.432517 +v 0.000000 1.932517 0.346138 +v 0.000000 1.963791 0.233384 +v 0.000000 0.067483 0.346138 +v 0.000000 0.153862 0.432517 +v 0.000000 0.266616 0.463791 +v 0.000000 0.036209 -0.432517 +v 0.000000 0.036209 -0.346138 +v 0.000000 1.963791 -0.346138 +v 0.000000 1.963791 -0.432517 +v 0.000000 1.963791 -0.477970 +v 0.000000 0.036209 -0.233384 +v 0.000000 1.733384 0.463791 +v 0.000000 0.036209 -0.477970 +v 0.000000 1.963791 -0.233384 +vt 0.904854 0.827347 +vt 0.912404 0.923128 +vt 0.904854 0.923128 +vt 0.182166 0.407583 +vt 0.214442 0.424360 +vt 0.160340 0.413227 +vt 0.730026 0.958073 +vt 0.722475 0.652378 +vt 0.730026 0.652378 +vt 0.912404 0.806069 +vt 0.912404 0.827347 +vt 0.904854 0.784791 +vt 0.912404 0.763512 +vt 0.912404 0.784791 +vt 0.904854 0.806069 +vt 0.932696 0.944406 +vt 0.940246 0.923128 +vt 0.940246 0.944406 +vt 0.932696 0.965684 +vt 0.940246 0.965684 +vt 0.932695 0.784790 +vt 0.940246 0.763512 +vt 0.940246 0.784790 +vt 0.932695 0.806068 +vt 0.940246 0.806068 +vt 0.932695 0.827347 +vt 0.940246 0.827347 +vt 0.904854 0.944406 +vt 0.912404 0.944406 +vt 0.904854 0.965684 +vt 0.912404 0.965684 +vt 0.966711 0.756750 +vt 0.974261 0.451055 +vt 0.974261 0.756750 +vt 0.932696 0.923128 +vt 0.932696 0.986962 +vt 0.940246 0.986962 +vt 0.422073 0.482879 +vt 0.433410 0.838040 +vt 0.422073 0.788572 +vt 0.295881 0.650980 +vt 0.282013 0.670433 +vt 0.288578 0.646764 +vt 0.295881 0.787867 +vt 0.282013 0.810216 +vt 0.282013 0.792083 +vt 0.369446 0.638910 +vt 0.340532 0.622066 +vt 0.389999 0.633403 +vt 0.354400 0.790843 +vt 0.340532 0.771391 +vt 0.348893 0.770290 +vt 0.310927 0.802913 +vt 0.282013 0.819757 +vt 0.354400 0.653956 +vt 0.340532 0.631607 +vt 0.365229 0.813192 +vt 0.347097 0.795059 +vt 0.904854 0.986962 +vt 0.912404 0.986962 +vt 0.631115 0.055869 +vt 0.649805 0.032200 +vt 0.649805 0.055869 +vt 0.631115 0.611283 +vt 0.649805 0.586720 +vt 0.649805 0.611283 +vt 0.631115 0.561077 +vt 0.649805 0.536515 +vt 0.649805 0.561077 +vt 0.290374 0.767314 +vt 0.290374 0.671533 +vt 0.282013 0.768414 +vt 0.306711 0.628631 +vt 0.310927 0.635934 +vt 0.340532 0.673409 +vt 0.348893 0.674509 +vt 0.369446 0.805889 +vt 0.388898 0.819757 +vt 0.340532 0.649740 +vt 0.949298 0.452156 +vt 0.957659 0.758947 +vt 0.949298 0.757847 +vt 0.330379 0.622066 +vt 0.331480 0.630427 +vt 0.198143 0.392163 +vt 0.203991 0.371098 +vt 0.214442 0.004526 +vt 0.865192 0.817262 +vt 0.858261 0.797178 +vt 0.861696 0.796063 +vt 0.852813 0.799151 +vt 0.859566 0.820210 +vt 0.856513 0.821732 +vt 0.592572 0.439565 +vt 0.585588 0.459661 +vt 0.589275 0.437907 +vt 0.580143 0.457706 +vt 0.586941 0.436609 +vt 0.583470 0.458607 +vt 0.602693 0.421328 +vt 0.599653 0.419257 +vt 0.583884 0.435080 +vt 0.597329 0.418076 +vt 0.615681 0.405976 +vt 0.618533 0.408287 +vt 0.610906 0.402422 +vt 0.594693 0.416061 +vt 0.858132 0.697391 +vt 0.861606 0.698513 +vt 0.865116 0.677295 +vt 0.861819 0.675637 +vt 0.852687 0.695436 +vt 0.859486 0.674339 +vt 0.856014 0.696337 +vt 0.875237 0.659059 +vt 0.872197 0.656987 +vt 0.856428 0.672810 +vt 0.869873 0.655806 +vt 0.888224 0.643707 +vt 0.891076 0.646018 +vt 0.883449 0.640153 +vt 0.867237 0.653791 +vt 0.981481 0.010131 +vt 0.985505 0.237997 +vt 0.981527 0.237046 +vt 0.203992 0.057788 +vt 0.198143 0.036724 +vt 0.182166 0.021303 +vt 0.160340 0.015659 +vt 0.004526 0.004526 +vt 0.058629 0.015659 +vt 0.036803 0.021303 +vt 0.020825 0.036724 +vt 0.014977 0.057789 +vt 0.004528 0.424360 +vt 0.014978 0.371099 +vt 0.020826 0.392163 +vt 0.036803 0.407583 +vt 0.058629 0.413227 +vt 0.585717 0.559449 +vt 0.583550 0.560522 +vt 0.589353 0.581187 +vt 0.587023 0.582481 +vt 0.597374 0.600993 +vt 0.599696 0.599816 +vt 0.613430 0.614296 +vt 0.615683 0.613092 +vt 0.989529 0.239202 +vt 0.985466 0.008672 +vt 0.989522 0.005561 +vt 0.885969 0.642498 +vt 0.856093 0.798250 +vt 0.861896 0.818916 +vt 0.869918 0.838723 +vt 0.872239 0.837545 +vt 0.885973 0.852026 +vt 0.888226 0.850822 +vt 0.012574 0.918273 +vt 0.008511 0.687744 +vt 0.012567 0.684632 +vt 0.613425 0.404768 +vt 0.004526 0.689203 +vt 0.008550 0.917069 +vt 0.004572 0.916117 +vt 0.867284 0.840731 +vt 0.875277 0.835481 +vt 0.883455 0.854365 +vt 0.580270 0.561422 +vt 0.589153 0.558335 +vt 0.589062 0.460784 +vt 0.993618 0.239807 +vt 0.993618 0.004526 +vt 0.583970 0.584003 +vt 0.592648 0.579533 +vt 0.594741 0.603002 +vt 0.602733 0.597751 +vt 0.016663 0.918878 +vt 0.016663 0.683597 +vt 0.610912 0.616635 +vt 0.631115 0.732934 +vt 0.649805 0.709265 +vt 0.649805 0.732934 +vt 0.631115 0.751066 +vt 0.649805 0.751066 +vt 0.631115 0.014067 +vt 0.649805 0.004526 +vt 0.649805 0.014067 +vt 0.631115 0.032200 +vt 0.631115 0.228619 +vt 0.649805 0.204057 +vt 0.649805 0.228619 +vt 0.631115 0.204057 +vt 0.649805 0.178414 +vt 0.631115 0.586720 +vt 0.631115 0.178414 +vt 0.649805 0.153851 +vt 0.004526 0.674545 +vt 0.214442 0.622066 +vt 0.214442 0.674545 +vt 0.677547 0.004526 +vt 0.730026 0.424358 +vt 0.677547 0.424358 +vt 0.631116 0.760608 +vt 0.649805 0.760608 +vt 0.461152 0.807049 +vt 0.479841 0.402422 +vt 0.479841 0.807049 +vt 0.631115 0.536515 +vt 0.631115 0.709265 +vt 0.631115 0.153851 +vt 0.677547 0.643326 +vt 0.730026 0.433410 +vt 0.730026 0.643326 +vt 0.190397 0.881984 +vt 0.094616 0.874434 +vt 0.190397 0.874434 +vt 0.255771 0.407583 +vt 0.277596 0.413227 +vt 0.223495 0.424360 +vt 0.713423 0.652379 +vt 0.705873 0.958073 +vt 0.705873 0.652379 +vt 0.073338 0.881984 +vt 0.094616 0.881984 +vt 0.030782 0.881984 +vt 0.052060 0.874434 +vt 0.052060 0.881984 +vt 0.073338 0.874434 +vt 0.602077 0.869276 +vt 0.623356 0.861726 +vt 0.623356 0.869276 +vt 0.644634 0.861726 +vt 0.644634 0.869276 +vt 0.442462 0.869276 +vt 0.463740 0.861726 +vt 0.463740 0.869276 +vt 0.485018 0.861726 +vt 0.485018 0.869276 +vt 0.506296 0.861726 +vt 0.506296 0.869276 +vt 0.211675 0.874434 +vt 0.211675 0.881984 +vt 0.232953 0.874434 +vt 0.232953 0.881984 +vt 0.964879 0.004526 +vt 0.972429 0.310220 +vt 0.964879 0.310220 +vt 0.602077 0.861726 +vt 0.665912 0.861726 +vt 0.665912 0.869276 +vt 0.916191 0.004526 +vt 0.904854 0.359687 +vt 0.904855 0.053992 +vt 0.237362 0.790843 +vt 0.223494 0.771391 +vt 0.231855 0.770290 +vt 0.237362 0.653956 +vt 0.223494 0.631607 +vt 0.252408 0.638910 +vt 0.739078 0.631101 +vt 0.767991 0.614257 +vt 0.788545 0.619764 +vt 0.739078 0.481777 +vt 0.752945 0.462324 +vt 0.747438 0.482877 +vt 0.223494 0.622066 +vt 0.272961 0.633403 +vt 0.739078 0.621560 +vt 0.752945 0.599211 +vt 0.763775 0.439975 +vt 0.767991 0.447278 +vt 0.254232 0.874434 +vt 0.254232 0.881984 +vt 0.668494 0.055869 +vt 0.668494 0.611283 +vt 0.668494 0.561077 +vt 0.231855 0.674510 +vt 0.223494 0.673409 +vt 0.248192 0.813192 +vt 0.252408 0.805889 +vt 0.739078 0.579758 +vt 0.747438 0.578658 +vt 0.787444 0.433410 +vt 0.788545 0.441771 +vt 0.955827 0.004526 +vt 0.947465 0.311311 +vt 0.947466 0.005627 +vt 0.271861 0.819757 +vt 0.272961 0.811396 +vt 0.239793 0.392163 +vt 0.233945 0.371098 +vt 0.223494 0.004526 +vt 0.862987 0.061715 +vt 0.869917 0.041630 +vt 0.866422 0.062829 +vt 0.864292 0.038682 +vt 0.857539 0.059741 +vt 0.861238 0.037160 +vt 0.869842 0.404863 +vt 0.862858 0.384768 +vt 0.866332 0.383645 +vt 0.857413 0.386723 +vt 0.864212 0.407819 +vt 0.861155 0.409348 +vt 0.879963 0.423098 +vt 0.866546 0.406520 +vt 0.874599 0.426351 +vt 0.871964 0.428366 +vt 0.892950 0.438449 +vt 0.895802 0.436138 +vt 0.888175 0.442003 +vt 0.862858 0.161501 +vt 0.866332 0.160379 +vt 0.869842 0.181597 +vt 0.857413 0.163457 +vt 0.864212 0.184553 +vt 0.861155 0.186082 +vt 0.879963 0.199833 +vt 0.866545 0.183254 +vt 0.874599 0.203086 +vt 0.871964 0.205101 +vt 0.892950 0.215184 +vt 0.895802 0.212873 +vt 0.888175 0.218738 +vt 0.987299 0.699025 +vt 0.983360 0.926896 +vt 0.983313 0.700458 +vt 0.233945 0.057789 +vt 0.239793 0.036724 +vt 0.255771 0.021303 +vt 0.277597 0.015659 +vt 0.433410 0.004526 +vt 0.379308 0.015659 +vt 0.401134 0.021304 +vt 0.417111 0.036724 +vt 0.422960 0.057789 +vt 0.433410 0.424360 +vt 0.422959 0.371097 +vt 0.417111 0.392162 +vt 0.401133 0.407583 +vt 0.379308 0.413227 +vt 0.860741 0.385822 +vt 0.862986 0.284980 +vt 0.860818 0.283907 +vt 0.866621 0.263241 +vt 0.864291 0.261947 +vt 0.874643 0.243433 +vt 0.890699 0.230129 +vt 0.876965 0.244611 +vt 0.987338 0.927885 +vt 0.991379 0.695962 +vt 0.991386 0.929157 +vt 0.876923 0.201904 +vt 0.890695 0.216393 +vt 0.860741 0.162555 +vt 0.860819 0.060642 +vt 0.866622 0.039976 +vt 0.874644 0.020169 +vt 0.890699 0.006865 +vt 0.876965 0.021346 +vt 0.987338 0.683984 +vt 0.991379 0.452060 +vt 0.991386 0.685255 +vt 0.876923 0.425169 +vt 0.890694 0.439658 +vt 0.987299 0.455123 +vt 0.983360 0.682994 +vt 0.983313 0.456556 +vt 0.872010 0.018160 +vt 0.880002 0.023411 +vt 0.888181 0.004526 +vt 0.892952 0.008069 +vt 0.895802 0.010374 +vt 0.857538 0.283007 +vt 0.866421 0.286094 +vt 0.995474 0.694957 +vt 0.995474 0.929807 +vt 0.861238 0.260425 +vt 0.869917 0.264894 +vt 0.872009 0.241424 +vt 0.880002 0.246675 +vt 0.995474 0.451055 +vt 0.995474 0.685905 +vt 0.888181 0.227790 +vt 0.892952 0.231334 +vt 0.895802 0.233638 +vt 0.668494 0.732934 +vt 0.668494 0.751066 +vt 0.668494 0.014067 +vt 0.668494 0.032200 +vt 0.668494 0.228619 +vt 0.668494 0.204057 +vt 0.668494 0.586720 +vt 0.668494 0.178414 +vt 0.668494 0.760608 +vt 0.442462 0.402422 +vt 0.442462 0.807049 +vt 0.668494 0.536515 +vt 0.668494 0.709265 +vt 0.668494 0.153851 +vt 0.739078 0.424358 +vt 0.791557 0.004526 +vt 0.791557 0.424358 +vt 0.722475 0.958073 +vt 0.904854 0.763512 +vt 0.932695 0.763512 +vt 0.966711 0.451055 +vt 0.433410 0.433412 +vt 0.331480 0.808420 +vt 0.389999 0.811396 +vt 0.957659 0.451055 +vt 0.891076 0.848518 +vt 0.618533 0.610788 +vt 0.631115 0.004526 +vt 0.004526 0.622066 +vt 0.730026 0.004526 +vt 0.461151 0.402422 +vt 0.677547 0.433410 +vt 0.713423 0.958073 +vt 0.030782 0.874434 +vt 0.442462 0.861726 +vt 0.972429 0.004526 +vt 0.916191 0.409154 +vt 0.230059 0.795060 +vt 0.223494 0.649740 +vt 0.745642 0.458108 +vt 0.739078 0.603427 +vt 0.955827 0.312412 +vt 0.668494 0.004526 +vt 0.739078 0.004526 +vn 0.0000 -0.9914 -0.1305 +vn 0.0000 -0.9914 0.1305 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 -0.1305 -0.9914 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.9914 -0.1305 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.1305 0.9914 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.9914 0.1305 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.1305 0.9914 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9909 -0.1349 +vn 0.0000 -0.8638 -0.5038 +vn 0.0000 -0.5038 -0.8638 +vn 0.0000 -0.1349 -0.9909 +vn 0.5785 -0.7172 0.3885 +vn 0.5147 -0.8479 0.1271 +vn 0.5072 -0.8566 0.0950 +vn 0.3608 0.9232 -0.1322 +vn 0.4265 0.7984 -0.4251 +vn 0.4330 0.7770 -0.4570 +vn 0.5785 0.7172 0.3885 +vn 0.5147 0.8479 0.1271 +vn 0.5847 0.6955 0.4177 +vn 0.3608 -0.9232 -0.1322 +vn 0.4265 -0.7984 -0.4251 +vn 0.3550 -0.9290 -0.1043 +vn 0.6108 0.3862 0.6912 +vn 0.6133 0.4076 0.6765 +vn 0.4330 -0.7770 -0.4570 +vn 0.4732 -0.4444 -0.7607 +vn 0.5767 0.1242 0.8074 +vn 0.5686 0.0871 0.8180 +vn 0.4489 -0.1331 -0.8836 +vn 0.4742 -0.4551 -0.7537 +vn 0.5147 -0.8479 -0.1271 +vn 0.5072 -0.8566 -0.0950 +vn 0.5785 -0.7172 -0.3885 +vn 0.5847 -0.6955 -0.4177 +vn 0.3608 0.9232 0.1322 +vn 0.4265 0.7984 0.4251 +vn 0.3550 0.9290 0.1043 +vn 0.6108 -0.3862 -0.6912 +vn 0.6133 -0.4076 -0.6765 +vn 0.4330 0.7770 0.4570 +vn 0.4732 0.4444 0.7607 +vn 0.5767 -0.1242 -0.8074 +vn 0.5686 -0.0871 -0.8180 +vn 0.4489 0.1331 0.8836 +vn 0.4742 0.4551 0.7537 +vn 0.5767 0.1242 -0.8074 +vn 0.5686 0.0871 -0.8180 +vn 0.5767 -0.1242 0.8074 +vn 0.5686 -0.0871 0.8180 +vn 0.4732 0.4444 -0.7607 +vn 0.4742 0.4551 -0.7537 +vn 0.6108 -0.3862 0.6912 +vn 0.5847 -0.6955 0.4177 +vn 0.4489 0.1331 -0.8836 +vn 0.4446 0.1047 -0.8896 +vn 0.6133 -0.4076 0.6765 +vn 0.3550 -0.9290 0.1043 +vn 0.3608 -0.9232 0.1322 +vn 0.5072 0.8566 -0.0950 +vn 0.5072 0.8566 0.0950 +vn 0.4489 -0.1331 0.8836 +vn 0.4446 0.1047 0.8896 +vn 0.4265 -0.7984 0.4251 +vn 0.4330 -0.7770 0.4570 +vn 0.5785 0.7172 -0.3885 +vn 0.5147 0.8479 -0.1271 +vn 0.3550 0.9290 -0.1043 +vn 0.4732 -0.4444 0.7607 +vn 0.4742 -0.4551 0.7537 +vn 0.6108 0.3862 -0.6912 +vn 0.5847 0.6955 -0.4177 +vn 0.4446 -0.1047 -0.8896 +vn 0.4446 -0.1047 0.8896 +vn 0.6133 0.4076 -0.6765 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.1349 -0.9909 +vn 0.0000 0.5038 -0.8638 +vn 0.0000 0.8638 -0.5038 +vn 0.0000 0.9909 -0.1349 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.5147 -0.8479 0.1271 +vn -0.5785 -0.7172 0.3885 +vn -0.5072 -0.8566 0.0950 +vn -0.4265 0.7984 -0.4251 +vn -0.3608 0.9232 -0.1322 +vn -0.4330 0.7770 -0.4570 +vn -0.5785 0.7172 0.3885 +vn -0.5147 0.8479 0.1271 +vn -0.5072 0.8566 0.0950 +vn -0.3608 -0.9232 -0.1322 +vn -0.4265 -0.7984 -0.4251 +vn -0.4330 -0.7770 -0.4570 +vn -0.6108 0.3862 0.6912 +vn -0.5847 0.6955 0.4177 +vn -0.4732 -0.4444 -0.7607 +vn -0.4742 -0.4551 -0.7537 +vn -0.5767 0.1242 0.8074 +vn -0.5686 0.0871 0.8180 +vn -0.4489 -0.1331 -0.8836 +vn -0.5147 -0.8479 -0.1271 +vn -0.5072 -0.8566 -0.0950 +vn -0.5785 -0.7172 -0.3885 +vn -0.3608 0.9232 0.1322 +vn -0.4265 0.7984 0.4251 +vn -0.4330 0.7770 0.4570 +vn -0.6108 -0.3862 -0.6912 +vn -0.5847 -0.6955 -0.4177 +vn -0.4732 0.4444 0.7607 +vn -0.4742 0.4551 0.7537 +vn -0.5767 -0.1242 -0.8074 +vn -0.5686 -0.0871 -0.8180 +vn -0.4489 0.1331 0.8836 +vn -0.5767 0.1242 -0.8074 +vn -0.5686 0.0871 -0.8180 +vn -0.5767 -0.1242 0.8074 +vn -0.5686 -0.0871 0.8180 +vn -0.4732 0.4444 -0.7607 +vn -0.4742 0.4551 -0.7537 +vn -0.5847 -0.6955 0.4177 +vn -0.6108 -0.3862 0.6912 +vn -0.4489 0.1331 -0.8836 +vn -0.3550 -0.9290 0.1043 +vn -0.3608 -0.9232 0.1322 +vn -0.5072 0.8566 -0.0950 +vn -0.4446 0.1047 0.8896 +vn -0.4489 -0.1331 0.8836 +vn -0.4265 -0.7984 0.4251 +vn -0.4330 -0.7770 0.4570 +vn -0.5147 0.8479 -0.1271 +vn -0.5785 0.7172 -0.3885 +vn -0.3550 0.9290 -0.1043 +vn -0.4732 -0.4444 0.7607 +vn -0.4742 -0.4551 0.7537 +vn -0.5847 0.6955 -0.4177 +vn -0.6108 0.3862 -0.6912 +vn -0.4446 -0.1047 -0.8896 +vn -0.3550 -0.9290 -0.1043 +vn -0.6133 0.4076 0.6765 +vn -0.3550 0.9290 0.1043 +vn -0.6133 -0.4076 -0.6765 +vn -0.6133 -0.4076 0.6765 +vn -0.4446 0.1047 -0.8896 +vn -0.4446 -0.1047 0.8896 +vn -0.6133 0.4076 -0.6765 +s 1 +f 10/1/1 24/2/2 17/3/2 +f 67/4/3 1/5/3 65/6/3 +f 6/7/4 36/8/5 9/9/5 +f 10/1/1 34/10/6 33/11/1 +f 11/12/7 36/13/5 35/14/7 +f 12/15/6 35/14/7 34/10/6 +f 7/16/8 32/17/9 31/18/8 +f 8/19/10 31/18/8 30/20/10 +f 15/21/11 28/22/12 27/23/11 +f 16/24/13 27/23/11 26/25/13 +f 14/26/14 26/25/13 25/27/14 +f 19/28/15 24/2/2 23/29/15 +f 20/30/16 23/29/15 22/31/16 +f 13/32/12 21/33/17 28/34/12 +f 14/26/14 32/17/9 5/35/9 +f 6/36/4 30/20/10 29/37/4 +f 21/38/18 47/39/18 28/40/18 +f 31/41/18 38/42/18 43/43/18 +f 26/44/18 46/45/18 48/46/18 +f 22/47/18 52/48/18 21/49/18 +f 34/50/18 42/51/18 33/52/18 +f 27/53/18 47/54/18 46/45/18 +f 23/55/18 51/56/18 22/47/18 +f 34/50/18 39/57/18 41/58/18 +f 18/59/17 22/31/16 21/60/17 +f 37/61/19 209/62/19 213/63/19 +f 42/64/20 203/65/21 204/66/20 +f 39/67/22 214/68/23 202/69/22 +f 25/70/18 38/42/18 32/71/18 +f 26/44/18 37/72/18 25/70/18 +f 31/41/18 44/73/18 30/74/18 +f 33/52/18 50/75/18 24/76/18 +f 35/77/18 40/78/18 39/57/18 +f 23/55/18 50/75/18 49/79/18 +f 29/80/18 40/81/18 36/82/18 +f 30/74/18 45/83/18 29/84/18 +f 1/5/3 67/4/3 68/85/3 +f 68/85/3 66/86/3 1/5/3 +f 66/86/3 2/87/3 1/5/3 +f 19/88/24 81/89/25 17/90/26 +f 65/91/27 98/92/28 67/93/29 +f 16/94/30 80/95/31 79/96/32 +f 62/97/33 95/98/34 96/99/35 +f 15/100/36 79/96/32 78/101/37 +f 64/102/38 94/103/39 95/98/34 +f 15/100/36 77/104/40 13/105/41 +f 61/106/42 94/103/39 63/107/43 +f 17/90/26 76/108/44 10/109/45 +f 12/110/46 76/108/44 75/111/47 +f 58/112/48 91/113/49 92/114/50 +f 11/115/51 75/111/47 74/116/52 +f 60/117/53 90/118/54 91/113/49 +f 11/115/51 73/119/55 9/120/56 +f 57/121/57 90/118/54 59/122/58 +f 9/123/56 72/124/59 6/125/60 +f 61/126/3 63/127/3 2/87/3 +f 64/128/3 2/87/3 63/127/3 +f 62/129/3 2/87/3 64/128/3 +f 62/129/3 3/130/3 2/87/3 +f 53/131/3 55/132/3 3/130/3 +f 56/133/3 3/130/3 55/132/3 +f 54/134/3 3/130/3 56/133/3 +f 54/134/3 4/135/3 3/130/3 +f 57/136/3 59/137/3 4/135/3 +f 60/138/3 4/135/3 59/137/3 +f 58/139/3 4/135/3 60/138/3 +f 58/139/3 1/5/3 4/135/3 +f 96/99/3 79/96/3 80/95/3 +f 96/99/3 69/140/3 85/141/3 +f 85/141/3 70/142/3 86/143/3 +f 87/144/3 70/142/3 71/145/3 +f 88/146/3 71/145/3 72/147/3 +f 88/148/3 73/149/3 89/150/3 +f 89/151/3 74/116/3 90/118/3 +f 90/118/3 75/111/3 91/113/3 +f 92/114/3 75/111/3 76/108/3 +f 92/114/3 81/89/3 97/152/3 +f 97/152/3 82/153/3 98/92/3 +f 99/154/3 82/153/3 83/155/3 +f 100/156/3 83/155/3 84/157/3 +f 100/158/3 77/159/3 93/160/3 +f 93/161/3 78/101/3 94/103/3 +f 94/103/3 79/96/3 95/98/3 +f 13/162/41 84/163/61 18/164/62 +f 67/93/29 99/154/63 68/165/64 +f 20/166/65 82/153/66 19/88/24 +f 66/167/67 99/154/63 100/156/68 +f 20/166/65 84/157/61 83/155/69 +f 62/97/33 85/141/70 53/168/71 +f 5/169/72 80/95/31 14/170/73 +f 54/171/74 89/150/75 57/172/57 +f 53/168/71 86/143/76 55/173/77 +f 7/174/78 69/140/79 5/169/72 +f 58/112/48 97/152/80 65/91/27 +f 55/173/77 87/144/81 56/175/82 +f 8/176/83 70/142/84 7/174/78 +f 66/177/67 93/160/85 61/178/42 +f 54/179/74 87/144/81 88/146/86 +f 8/176/83 72/147/59 71/145/87 +f 49/180/88 216/181/88 210/182/88 +f 51/183/88 210/182/88 211/184/88 +f 46/185/19 215/186/19 208/187/19 +f 48/188/19 208/187/19 209/62/19 +f 45/189/89 206/190/90 207/191/89 +f 44/192/90 205/193/91 206/190/90 +f 41/194/21 202/69/22 203/65/21 +f 43/195/91 201/196/92 205/193/91 +f 102/197/88 3/198/88 103/199/88 +f 101/200/93 2/201/93 102/202/93 +f 52/203/88 211/184/88 212/204/88 +f 212/205/94 47/206/94 52/207/94 +f 207/191/89 40/208/23 45/189/89 +f 204/66/20 50/209/88 42/64/20 +f 213/63/19 38/210/92 37/61/19 +f 101/211/19 4/212/19 1/213/19 +f 124/214/2 110/215/1 117/216/2 +f 167/217/18 165/218/18 101/219/18 +f 136/220/5 106/221/4 109/222/5 +f 134/223/6 110/215/1 133/224/1 +f 136/225/5 111/226/7 135/227/7 +f 135/227/7 112/228/6 134/223/6 +f 132/229/9 107/230/8 131/231/8 +f 131/231/8 108/232/10 130/233/10 +f 128/234/12 115/235/11 127/236/11 +f 127/236/11 116/237/13 126/238/13 +f 126/238/13 114/239/14 125/240/14 +f 124/214/2 119/241/15 123/242/15 +f 123/242/15 120/243/16 122/244/16 +f 121/245/17 113/246/12 128/247/12 +f 132/229/9 114/239/14 105/248/9 +f 130/233/10 106/249/4 129/250/4 +f 147/251/3 121/252/3 128/253/3 +f 131/254/3 138/255/3 132/256/3 +f 126/257/3 146/258/3 127/259/3 +f 152/260/3 122/261/3 121/262/3 +f 142/263/3 134/264/3 133/265/3 +f 127/259/3 147/266/3 128/267/3 +f 151/268/3 123/269/3 122/261/3 +f 134/264/3 139/270/3 135/271/3 +f 122/244/16 118/272/17 121/273/17 +f 209/62/19 137/274/19 213/63/19 +f 203/65/21 142/275/20 204/66/20 +f 214/68/23 139/276/22 202/69/22 +f 138/255/3 125/277/3 132/256/3 +f 137/278/3 126/257/3 125/277/3 +f 144/279/3 131/254/3 130/280/3 +f 150/281/3 133/265/3 124/282/3 +f 135/271/3 140/283/3 136/284/3 +f 123/269/3 150/281/3 124/282/3 +f 140/285/3 129/286/3 136/287/3 +f 145/288/3 130/280/3 129/289/3 +f 101/219/18 168/290/18 167/217/18 +f 168/290/18 101/219/18 166/291/18 +f 102/292/18 166/291/18 101/219/18 +f 181/293/95 119/294/96 117/295/97 +f 198/296/98 165/297/99 167/298/100 +f 116/299/101 180/300/102 114/301/103 +f 162/302/104 195/303/105 164/304/106 +f 115/305/107 179/306/108 116/299/101 +f 164/304/106 194/307/109 163/308/110 +f 177/309/111 115/305/107 113/310/112 +f 194/307/109 161/311/113 163/308/110 +f 176/312/114 117/295/97 110/313/115 +f 112/314/116 176/312/114 110/313/115 +f 158/315/117 191/316/118 160/317/119 +f 111/318/120 175/319/121 112/314/116 +f 160/317/119 190/320/122 159/321/123 +f 173/322/124 111/318/120 109/323/125 +f 190/320/122 157/324/126 159/321/123 +f 172/325/127 109/326/125 106/327/128 +f 161/328/18 102/292/18 163/329/18 +f 164/330/18 163/329/18 102/292/18 +f 162/331/18 164/330/18 102/292/18 +f 103/332/18 162/331/18 102/292/18 +f 153/333/18 103/332/18 155/334/18 +f 156/335/18 155/334/18 103/332/18 +f 154/336/18 156/335/18 103/332/18 +f 104/337/18 154/336/18 103/332/18 +f 157/338/18 104/337/18 159/339/18 +f 160/340/18 159/339/18 104/337/18 +f 158/341/18 160/340/18 104/337/18 +f 101/219/18 158/341/18 104/337/18 +f 179/306/18 196/342/18 180/300/18 +f 169/343/18 196/342/18 185/344/18 +f 170/345/18 185/344/18 186/346/18 +f 187/347/18 170/345/18 186/346/18 +f 188/348/18 171/349/18 187/347/18 +f 173/350/18 188/351/18 189/352/18 +f 174/353/18 189/354/18 190/320/18 +f 175/319/18 190/320/18 191/316/18 +f 192/355/18 175/319/18 191/316/18 +f 181/293/18 192/355/18 197/356/18 +f 182/357/18 197/356/18 198/296/18 +f 199/358/18 182/357/18 198/296/18 +f 200/359/18 183/360/18 199/358/18 +f 177/361/18 200/362/18 193/363/18 +f 178/364/18 193/365/18 194/307/18 +f 179/306/18 194/307/18 195/303/18 +f 184/366/129 113/367/112 118/368/130 +f 199/358/131 167/298/100 168/369/132 +f 182/357/133 120/370/134 119/294/96 +f 166/371/135 199/358/131 168/369/132 +f 120/370/134 184/372/129 118/373/130 +f 185/344/136 162/302/104 153/374/137 +f 180/300/102 105/375/138 114/301/103 +f 189/352/139 154/376/140 157/377/126 +f 186/346/141 153/374/137 155/378/142 +f 169/343/143 107/379/144 105/375/138 +f 197/356/145 158/315/117 165/297/99 +f 187/347/146 155/378/142 156/380/147 +f 170/345/148 108/381/149 107/379/144 +f 193/363/150 166/382/135 161/383/113 +f 154/384/140 187/347/146 156/380/147 +f 108/381/149 172/385/127 106/386/128 +f 216/181/88 149/387/88 210/182/88 +f 210/182/88 151/388/88 211/184/88 +f 215/186/19 146/389/19 208/187/19 +f 208/187/19 148/390/19 209/62/19 +f 206/190/90 145/391/89 207/191/89 +f 205/193/91 144/392/90 206/190/90 +f 202/69/22 141/393/21 203/65/21 +f 201/196/92 143/394/91 205/193/91 +f 211/184/88 152/395/88 212/204/88 +f 147/396/94 212/205/94 152/397/94 +f 140/398/23 207/191/89 145/391/89 +f 150/399/88 204/66/20 142/275/20 +f 138/400/92 213/63/19 137/274/19 +f 104/401/94 3/402/94 4/403/94 +f 10/1/1 33/11/1 24/2/2 +f 6/7/4 29/404/4 36/8/5 +f 10/1/1 12/15/6 34/10/6 +f 11/12/7 9/405/5 36/13/5 +f 12/15/6 11/12/7 35/14/7 +f 7/16/8 5/35/9 32/17/9 +f 8/19/10 7/16/8 31/18/8 +f 15/21/11 13/406/12 28/22/12 +f 16/24/13 15/21/11 27/23/11 +f 14/26/14 16/24/13 26/25/13 +f 19/28/15 17/3/2 24/2/2 +f 20/30/16 19/28/15 23/29/15 +f 13/32/12 18/407/17 21/33/17 +f 14/26/14 25/27/14 32/17/9 +f 6/36/4 8/19/10 30/20/10 +f 21/38/18 52/408/18 47/39/18 +f 31/41/18 32/71/18 38/42/18 +f 26/44/18 27/53/18 46/45/18 +f 22/47/18 51/56/18 52/48/18 +f 34/50/18 41/58/18 42/51/18 +f 27/53/18 28/409/18 47/54/18 +f 23/55/18 49/79/18 51/56/18 +f 34/50/18 35/77/18 39/57/18 +f 18/59/17 20/30/16 22/31/16 +f 37/61/19 48/188/19 209/62/19 +f 42/64/20 41/194/21 203/65/21 +f 39/67/22 40/208/23 214/68/23 +f 25/70/18 37/72/18 38/42/18 +f 26/44/18 48/46/18 37/72/18 +f 31/41/18 43/43/18 44/73/18 +f 33/52/18 42/51/18 50/75/18 +f 35/77/18 36/410/18 40/78/18 +f 23/55/18 24/76/18 50/75/18 +f 29/80/18 45/411/18 40/81/18 +f 30/74/18 44/73/18 45/83/18 +f 66/86/3 61/126/3 2/87/3 +f 19/88/24 82/153/66 81/89/25 +f 65/91/27 97/152/80 98/92/28 +f 16/94/30 14/170/73 80/95/31 +f 62/97/33 64/102/38 95/98/34 +f 15/100/36 16/94/30 79/96/32 +f 64/102/38 63/107/43 94/103/39 +f 15/100/36 78/101/37 77/104/40 +f 61/106/42 93/161/85 94/103/39 +f 17/90/26 81/89/25 76/108/44 +f 12/110/46 10/109/45 76/108/44 +f 58/112/48 60/117/53 91/113/49 +f 11/115/51 12/110/46 75/111/47 +f 60/117/53 59/122/58 90/118/54 +f 11/115/51 74/116/52 73/119/55 +f 57/121/57 89/151/75 90/118/54 +f 9/123/56 73/149/55 72/124/59 +f 62/129/3 53/131/3 3/130/3 +f 54/134/3 57/136/3 4/135/3 +f 58/139/3 65/6/3 1/5/3 +f 96/99/3 95/98/3 79/96/3 +f 96/99/3 80/95/3 69/140/3 +f 85/141/3 69/140/3 70/142/3 +f 87/144/3 86/143/3 70/142/3 +f 88/146/3 87/144/3 71/145/3 +f 88/148/3 72/124/3 73/149/3 +f 89/151/3 73/119/3 74/116/3 +f 90/118/3 74/116/3 75/111/3 +f 92/114/3 91/113/3 75/111/3 +f 92/114/3 76/108/3 81/89/3 +f 97/152/3 81/89/3 82/153/3 +f 99/154/3 98/92/3 82/153/3 +f 100/156/3 99/154/3 83/155/3 +f 100/158/3 84/163/3 77/159/3 +f 93/161/3 77/104/3 78/101/3 +f 94/103/3 78/101/3 79/96/3 +f 13/162/41 77/159/40 84/163/61 +f 67/93/29 98/92/28 99/154/63 +f 20/166/65 83/155/69 82/153/66 +f 66/167/67 68/165/64 99/154/63 +f 20/166/65 18/412/62 84/157/61 +f 62/97/33 96/99/35 85/141/70 +f 5/169/72 69/140/79 80/95/31 +f 54/171/74 88/148/86 89/150/75 +f 53/168/71 85/141/70 86/143/76 +f 7/174/78 70/142/84 69/140/79 +f 58/112/48 92/114/50 97/152/80 +f 55/173/77 86/143/76 87/144/81 +f 8/176/83 71/145/87 70/142/84 +f 66/177/67 100/158/68 93/160/85 +f 54/179/74 56/175/82 87/144/81 +f 8/176/83 6/413/60 72/147/59 +f 49/180/88 50/209/88 216/181/88 +f 51/183/88 49/180/88 210/182/88 +f 46/185/19 47/414/19 215/186/19 +f 48/188/19 46/185/19 208/187/19 +f 45/189/89 44/192/90 206/190/90 +f 44/192/90 43/195/91 205/193/91 +f 41/194/21 39/67/22 202/69/22 +f 43/195/91 38/210/92 201/196/92 +f 102/197/88 2/415/88 3/198/88 +f 101/200/93 1/416/93 2/201/93 +f 52/203/88 51/183/88 211/184/88 +f 212/205/94 215/417/94 47/206/94 +f 207/191/89 214/68/23 40/208/23 +f 204/66/20 216/181/88 50/209/88 +f 213/63/19 201/196/92 38/210/92 +f 101/211/19 104/418/19 4/212/19 +f 124/214/2 133/224/1 110/215/1 +f 136/220/5 129/419/4 106/221/4 +f 134/223/6 112/228/6 110/215/1 +f 136/225/5 109/420/5 111/226/7 +f 135/227/7 111/226/7 112/228/6 +f 132/229/9 105/248/9 107/230/8 +f 131/231/8 107/230/8 108/232/10 +f 128/234/12 113/421/12 115/235/11 +f 127/236/11 115/235/11 116/237/13 +f 126/238/13 116/237/13 114/239/14 +f 124/214/2 117/216/2 119/241/15 +f 123/242/15 119/241/15 120/243/16 +f 121/245/17 118/422/17 113/246/12 +f 132/229/9 125/240/14 114/239/14 +f 130/233/10 108/232/10 106/249/4 +f 147/251/3 152/423/3 121/252/3 +f 131/254/3 143/424/3 138/255/3 +f 126/257/3 148/425/3 146/258/3 +f 152/260/3 151/268/3 122/261/3 +f 142/263/3 141/426/3 134/264/3 +f 127/259/3 146/258/3 147/266/3 +f 151/268/3 149/427/3 123/269/3 +f 134/264/3 141/426/3 139/270/3 +f 122/244/16 120/243/16 118/272/17 +f 209/62/19 148/390/19 137/274/19 +f 203/65/21 141/393/21 142/275/20 +f 214/68/23 140/398/23 139/276/22 +f 138/255/3 137/278/3 125/277/3 +f 137/278/3 148/425/3 126/257/3 +f 144/279/3 143/424/3 131/254/3 +f 150/281/3 142/263/3 133/265/3 +f 135/271/3 139/270/3 140/283/3 +f 123/269/3 149/427/3 150/281/3 +f 140/285/3 145/428/3 129/286/3 +f 145/288/3 144/279/3 130/280/3 +f 102/292/18 161/328/18 166/291/18 +f 181/293/95 182/357/133 119/294/96 +f 198/296/98 197/356/145 165/297/99 +f 116/299/101 179/306/108 180/300/102 +f 162/302/104 196/342/151 195/303/105 +f 115/305/107 178/364/152 179/306/108 +f 164/304/106 195/303/105 194/307/109 +f 177/309/111 178/364/152 115/305/107 +f 194/307/109 193/365/150 161/311/113 +f 176/312/114 181/293/95 117/295/97 +f 112/314/116 175/319/121 176/312/114 +f 158/315/117 192/355/153 191/316/118 +f 111/318/120 174/353/154 175/319/121 +f 160/317/119 191/316/118 190/320/122 +f 173/322/124 174/353/154 111/318/120 +f 190/320/122 189/354/139 157/324/126 +f 172/325/127 173/350/124 109/326/125 +f 103/332/18 153/333/18 162/331/18 +f 104/337/18 157/338/18 154/336/18 +f 101/219/18 165/218/18 158/341/18 +f 179/306/18 195/303/18 196/342/18 +f 169/343/18 180/300/18 196/342/18 +f 170/345/18 169/343/18 185/344/18 +f 187/347/18 171/349/18 170/345/18 +f 188/348/18 172/385/18 171/349/18 +f 173/350/18 172/325/18 188/351/18 +f 174/353/18 173/322/18 189/354/18 +f 175/319/18 174/353/18 190/320/18 +f 192/355/18 176/312/18 175/319/18 +f 181/293/18 176/312/18 192/355/18 +f 182/357/18 181/293/18 197/356/18 +f 199/358/18 183/360/18 182/357/18 +f 200/359/18 184/372/18 183/360/18 +f 177/361/18 184/366/18 200/362/18 +f 178/364/18 177/309/18 193/365/18 +f 179/306/18 178/364/18 194/307/18 +f 184/366/129 177/361/111 113/367/112 +f 199/358/131 198/296/98 167/298/100 +f 182/357/133 183/360/155 120/370/134 +f 166/371/135 200/359/156 199/358/131 +f 120/370/134 183/360/155 184/372/129 +f 185/344/136 196/342/151 162/302/104 +f 180/300/102 169/343/143 105/375/138 +f 189/352/139 188/351/157 154/376/140 +f 186/346/141 185/344/136 153/374/137 +f 169/343/143 170/345/148 107/379/144 +f 197/356/145 192/355/153 158/315/117 +f 187/347/146 186/346/141 155/378/142 +f 170/345/148 171/349/158 108/381/149 +f 193/363/150 200/362/156 166/382/135 +f 154/384/140 188/348/157 187/347/146 +f 108/381/149 171/349/158 172/385/127 +f 216/181/88 150/399/88 149/387/88 +f 210/182/88 149/387/88 151/388/88 +f 215/186/19 147/429/19 146/389/19 +f 208/187/19 146/389/19 148/390/19 +f 206/190/90 144/392/90 145/391/89 +f 205/193/91 143/394/91 144/392/90 +f 202/69/22 139/276/22 141/393/21 +f 201/196/92 138/400/92 143/394/91 +f 211/184/88 151/388/88 152/395/88 +f 147/396/94 215/417/94 212/205/94 +f 140/398/23 214/68/23 207/191/89 +f 150/399/88 216/181/88 204/66/20 +f 138/400/92 201/196/92 213/63/19 +f 104/401/94 103/430/94 3/402/94 +o door +v 0.089033 0.062912 -0.229749 +v 0.089033 0.062912 0.229749 +v 0.089033 1.832227 0.408665 +v 0.089033 1.908665 0.332227 +v 0.089033 1.937088 0.229749 +v 0.089033 0.091335 0.332227 +v 0.089033 0.167773 0.408665 +v 0.089033 0.167773 -0.408665 +v 0.089033 0.091335 -0.332227 +v 0.089033 1.908665 -0.332227 +v 0.089033 1.937088 -0.229749 +v 0.089033 1.832227 -0.408665 +v 0.089033 0.036209 0.233384 +v 0.089033 0.036209 -0.233384 +v 0.089033 1.846138 0.432517 +v 0.089033 1.733384 0.463791 +v 0.089033 1.932517 0.346138 +v 0.089033 1.963791 0.233384 +v 0.089033 0.067483 0.346138 +v 0.089033 0.153862 0.432517 +v 0.089033 0.266616 0.463791 +v 0.089033 0.153862 -0.432517 +v 0.089033 0.266616 -0.463791 +v 0.089033 0.067483 -0.346138 +v 0.089033 1.932517 -0.346138 +v 0.089033 1.963791 -0.233384 +v 0.089033 1.846138 -0.432517 +v 0.089033 1.733384 -0.463791 +v 0.089033 1.440030 -0.463791 +v 0.089033 0.559970 0.463791 +v 0.089033 0.559970 -0.463791 +v 0.089033 0.853323 -0.463791 +v 0.089033 1.146677 -0.463791 +v 0.089033 1.440030 0.463791 +v 0.089033 1.146677 0.463791 +v 0.089033 0.853323 0.463791 +v 0.067522 0.088680 0.216673 +v 0.067522 0.088680 -0.216673 +v 0.067522 1.809342 0.385405 +v 0.067522 1.883679 0.313317 +v 0.067522 1.911320 0.216673 +v 0.067522 0.116321 0.313317 +v 0.067522 0.190658 0.385405 +v 0.067522 0.190658 -0.385405 +v 0.067522 0.116321 -0.313317 +v 0.067522 1.883679 -0.313317 +v 0.067522 1.911320 -0.216673 +v 0.067522 1.809342 -0.385405 +v 0.089033 1.719954 0.437088 +v 0.089033 1.737910 0.432067 +v 0.089033 1.732162 0.454811 +v 0.089033 0.262090 0.432067 +v 0.089033 0.280046 0.437088 +v 0.089033 0.267838 0.454811 +v 0.089033 0.280046 -0.437088 +v 0.089033 0.262090 -0.432067 +v 0.089033 0.267838 -0.454811 +v 0.089033 1.737910 -0.432067 +v 0.089033 1.719954 -0.437088 +v 0.089033 1.732162 -0.454811 +v 0.089033 0.568817 -0.437088 +v 0.089033 0.551123 -0.437088 +v 0.089033 0.559970 -0.454975 +v 0.089033 0.861853 -0.437088 +v 0.089033 0.844794 -0.437088 +v 0.089033 0.853323 -0.454975 +v 0.089033 1.155206 -0.437088 +v 0.089033 1.138147 -0.437088 +v 0.089033 1.146677 -0.454975 +v 0.089033 1.448877 -0.437088 +v 0.089033 1.431183 -0.437088 +v 0.089033 1.440030 -0.454975 +v 0.089033 1.431183 0.437088 +v 0.089033 1.448877 0.437088 +v 0.089033 1.440030 0.454975 +v 0.089033 1.138147 0.437088 +v 0.089033 1.155206 0.437088 +v 0.089033 1.146677 0.454975 +v 0.089033 0.844794 0.437088 +v 0.089033 0.861853 0.437088 +v 0.089033 0.853323 0.454975 +v 0.089033 0.551123 0.437088 +v 0.089033 0.568817 0.437088 +v 0.089033 0.559970 0.454975 +v 0.067522 1.689992 -0.412210 +v 0.067522 1.727860 -0.407321 +v 0.067522 1.727860 0.407321 +v 0.067522 1.689992 0.412210 +v 0.067522 0.310008 -0.412210 +v 0.067522 0.272139 -0.407321 +v 0.067522 0.310008 0.412210 +v 0.067522 0.272139 0.407321 +v 0.067522 0.553441 -0.412210 +v 0.067522 0.590698 -0.412210 +v 0.067522 0.590698 0.412210 +v 0.067522 0.553441 0.412210 +v 0.067522 0.839382 -0.412210 +v 0.067522 0.875331 -0.412210 +v 0.067522 0.839382 0.412210 +v 0.067522 0.875331 0.412210 +v 0.067522 1.124669 -0.412210 +v 0.067522 1.160618 -0.412210 +v 0.067522 1.124669 0.412210 +v 0.067522 1.160618 0.412210 +v 0.067522 1.409302 -0.412210 +v 0.067522 1.446559 -0.412210 +v 0.067522 1.446559 0.412210 +v 0.067522 1.409302 0.412210 +v 0.079726 1.134115 0.439682 +v 0.079726 1.151172 0.439682 +v 0.079726 0.848828 0.439682 +v 0.079726 0.865885 0.439682 +v 0.079726 0.300058 -0.434752 +v 0.079726 0.282090 -0.429863 +v 0.079726 1.699942 -0.434752 +v 0.079726 1.717910 -0.429863 +v 0.079726 1.717910 0.434792 +v 0.079726 1.699942 0.439682 +v 0.079726 0.300058 0.439682 +v 0.079726 0.282090 0.434792 +v 0.079726 0.563230 -0.434752 +v 0.079726 0.580909 -0.434752 +v 0.079726 0.580909 0.439682 +v 0.079726 0.563230 0.439682 +v 0.079726 0.848828 -0.434752 +v 0.079726 0.865885 -0.434752 +v 0.079726 1.134115 -0.434752 +v 0.079726 1.151172 -0.434752 +v 0.079726 1.419091 -0.434752 +v 0.079726 1.436770 -0.434752 +v 0.079726 1.436770 0.439682 +v 0.079726 1.419091 0.439682 +v -0.089033 0.062912 -0.229749 +v -0.089033 0.062912 0.229749 +v -0.089033 1.832227 0.408665 +v -0.089033 1.908665 0.332227 +v -0.089033 1.937088 0.229749 +v -0.089033 0.091335 0.332227 +v -0.089033 0.167773 0.408665 +v -0.089033 0.167773 -0.408665 +v -0.089033 0.091335 -0.332227 +v -0.089033 1.908665 -0.332227 +v -0.089033 1.937088 -0.229749 +v -0.089033 1.832227 -0.408665 +v -0.089033 0.036209 0.233384 +v -0.089033 0.036209 -0.233384 +v -0.089033 1.846138 0.432517 +v -0.089033 1.733384 0.463791 +v -0.089033 1.932517 0.346138 +v -0.089033 1.963791 0.233384 +v -0.089033 0.067483 0.346138 +v -0.089033 0.153862 0.432517 +v -0.089033 0.266616 0.463791 +v -0.089033 0.153862 -0.432517 +v -0.089033 0.266616 -0.463791 +v -0.089033 0.067483 -0.346138 +v -0.089033 1.932517 -0.346138 +v -0.089033 1.963791 -0.233384 +v -0.089033 1.846138 -0.432517 +v -0.089033 1.733384 -0.463791 +v -0.089033 1.440030 -0.463791 +v -0.089033 0.559970 0.463791 +v -0.089033 0.559970 -0.463791 +v -0.089033 0.853323 -0.463791 +v -0.089033 1.146677 -0.463791 +v -0.089033 1.440030 0.463791 +v -0.089033 1.146677 0.463791 +v -0.089033 0.853323 0.463791 +v -0.067522 0.088680 0.216673 +v -0.067522 0.088680 -0.216673 +v -0.067522 1.809342 0.385405 +v -0.067522 1.883679 0.313317 +v -0.067522 1.911320 0.216673 +v -0.067522 0.116321 0.313317 +v -0.067522 0.190658 0.385405 +v -0.067522 0.190658 -0.385405 +v -0.067522 0.116321 -0.313317 +v -0.067522 1.883679 -0.313317 +v -0.067522 1.911320 -0.216673 +v -0.067522 1.809342 -0.385405 +v -0.089033 1.719954 0.437088 +v -0.089033 1.737910 0.432067 +v -0.089033 1.732162 0.454811 +v -0.089033 0.262090 0.432067 +v -0.089033 0.280046 0.437088 +v -0.089033 0.267838 0.454811 +v -0.089033 0.280046 -0.437088 +v -0.089033 0.262090 -0.432067 +v -0.089033 0.267838 -0.454811 +v -0.089033 1.737910 -0.432067 +v -0.089033 1.719954 -0.437088 +v -0.089033 1.732162 -0.454811 +v -0.089033 0.568817 -0.437088 +v -0.089033 0.551123 -0.437088 +v -0.089033 0.559970 -0.454975 +v -0.089033 0.861853 -0.437088 +v -0.089033 0.844794 -0.437088 +v -0.089033 0.853323 -0.454975 +v -0.089033 1.155206 -0.437088 +v -0.089033 1.138147 -0.437088 +v -0.089033 1.146677 -0.454975 +v -0.089033 1.448877 -0.437088 +v -0.089033 1.431183 -0.437088 +v -0.089033 1.440030 -0.454975 +v -0.089033 1.431183 0.437088 +v -0.089033 1.448877 0.437088 +v -0.089033 1.440030 0.454975 +v -0.089033 1.138147 0.437088 +v -0.089033 1.155206 0.437088 +v -0.089033 1.146677 0.454975 +v -0.089033 0.844794 0.437088 +v -0.089033 0.861853 0.437088 +v -0.089033 0.853323 0.454975 +v -0.089033 0.551123 0.437088 +v -0.089033 0.568817 0.437088 +v -0.089033 0.559970 0.454975 +v -0.067522 1.689992 -0.412210 +v -0.067522 1.727860 -0.407321 +v -0.067522 1.727860 0.407321 +v -0.067522 1.689992 0.412210 +v -0.067522 0.310008 -0.412210 +v -0.067522 0.272139 -0.407321 +v -0.067522 0.310008 0.412210 +v -0.067522 0.272139 0.407321 +v -0.067522 0.553441 -0.412210 +v -0.067522 0.590698 -0.412210 +v -0.067522 0.590698 0.412210 +v -0.067522 0.553441 0.412210 +v -0.067522 0.839382 -0.412210 +v -0.067522 0.875331 -0.412210 +v -0.067522 0.839382 0.412210 +v -0.067522 0.875331 0.412210 +v -0.067522 1.124669 -0.412210 +v -0.067522 1.160618 -0.412210 +v -0.067522 1.124669 0.412210 +v -0.067522 1.160618 0.412210 +v -0.067522 1.409302 -0.412210 +v -0.067522 1.446559 -0.412210 +v -0.067522 1.446559 0.412210 +v -0.067522 1.409302 0.412210 +v -0.079726 1.134115 0.439682 +v -0.079726 1.151172 0.439682 +v -0.079726 0.848828 0.439682 +v -0.079726 0.865885 0.439682 +v -0.079726 0.300058 -0.434752 +v -0.079726 0.282090 -0.429863 +v -0.079726 1.699942 -0.434752 +v -0.079726 1.717910 -0.429863 +v -0.079726 1.717910 0.434792 +v -0.079726 1.699942 0.439682 +v -0.079726 0.300058 0.439682 +v -0.079726 0.282090 0.434792 +v -0.079726 0.563230 -0.434752 +v -0.079726 0.580909 -0.434752 +v -0.079726 0.580909 0.439682 +v -0.079726 0.563230 0.439682 +v -0.079726 0.848828 -0.434752 +v -0.079726 0.865885 -0.434752 +v -0.079726 1.134115 -0.434752 +v -0.079726 1.151172 -0.434752 +v -0.079726 1.419091 -0.434752 +v -0.079726 1.436770 -0.434752 +v -0.079726 1.436770 0.439682 +v -0.079726 1.419091 0.439682 +vt 0.783593 0.831993 +vt 0.770625 0.819241 +vt 0.786830 0.825688 +vt 0.904889 0.572687 +vt 0.904889 0.512544 +vt 0.910360 0.514355 +vt 0.764922 0.653705 +vt 0.756727 0.675027 +vt 0.750214 0.670777 +vt 0.934743 0.510728 +vt 0.927961 0.461088 +vt 0.934717 0.454799 +vt 0.744799 0.692104 +vt 0.751356 0.783421 +vt 0.744526 0.786188 +vt 0.904889 0.632829 +vt 0.910364 0.574436 +vt 0.783665 0.646709 +vt 0.761647 0.649126 +vt 0.783850 0.640153 +vt 0.739383 0.691433 +vt 0.910357 0.694788 +vt 0.917138 0.744427 +vt 0.910383 0.750717 +vt 0.821727 0.653705 +vt 0.801970 0.668151 +vt 0.818451 0.649126 +vt 0.807019 0.670776 +vt 0.796188 0.691433 +vt 0.749803 0.807573 +vt 0.739078 0.786824 +vt 0.764620 0.824799 +vt 0.744748 0.810146 +vt 0.910357 0.510728 +vt 0.917138 0.461089 +vt 0.917112 0.511201 +vt 0.840397 0.831993 +vt 0.827430 0.819241 +vt 0.843635 0.825688 +vt 0.745166 0.668151 +vt 0.806608 0.807573 +vt 0.795882 0.786824 +vt 0.801331 0.786188 +vt 0.821424 0.824799 +vt 0.801552 0.810145 +vt 0.934743 0.694788 +vt 0.927961 0.744427 +vt 0.927987 0.694314 +vt 0.840556 0.838653 +vt 0.818043 0.829441 +vt 0.801604 0.692104 +vt 0.783752 0.838653 +vt 0.761239 0.829441 +vt 0.770853 0.659218 +vt 0.934736 0.574436 +vt 0.927993 0.628317 +vt 0.927993 0.577199 +vt 0.934736 0.634577 +vt 0.927993 0.686669 +vt 0.927993 0.635687 +vt 0.910364 0.634578 +vt 0.917107 0.686670 +vt 0.910360 0.691161 +vt 0.840470 0.646709 +vt 0.827657 0.659218 +vt 0.917106 0.628317 +vt 0.910364 0.631080 +vt 0.910364 0.570938 +vt 0.917107 0.518846 +vt 0.917106 0.569829 +vt 0.295529 0.438043 +vt 0.345528 0.607370 +vt 0.295529 0.607370 +vt 0.052365 0.438043 +vt 0.102363 0.607367 +vt 0.052365 0.607367 +vt 0.393369 0.567210 +vt 0.387691 0.587060 +vt 0.355688 0.606368 +vt 0.112420 0.438043 +vt 0.163496 0.607367 +vt 0.112420 0.607367 +vt 0.042205 0.439048 +vt 0.042206 0.606362 +vt 0.004526 0.567206 +vt 0.173340 0.438043 +vt 0.224551 0.607368 +vt 0.173340 0.607369 +vt 0.234395 0.438043 +vt 0.285472 0.607370 +vt 0.234395 0.607370 +vt 0.940211 0.512544 +vt 0.940246 0.452090 +vt 0.751649 0.694916 +vt 0.813531 0.675027 +vt 0.940210 0.572687 +vt 0.934739 0.514355 +vt 0.813165 0.803316 +vt 0.808453 0.694916 +vt 0.940210 0.632828 +vt 0.934736 0.631080 +vt 0.756360 0.803316 +vt 0.940211 0.692971 +vt 0.934739 0.691161 +vt 0.940246 0.753425 +vt 0.934717 0.750716 +vt 0.904889 0.692971 +vt 0.904854 0.753426 +vt 0.934736 0.570939 +vt 0.927993 0.518846 +vt 0.904854 0.452090 +vt 0.910383 0.454799 +vt 0.808160 0.783421 +vt 0.911333 0.754460 +vt 0.906690 0.753196 +vt 0.911333 0.451055 +vt 0.906690 0.452320 +vt 0.933767 0.451055 +vt 0.938409 0.452320 +vt 0.933767 0.754460 +vt 0.938409 0.753195 +vt 0.938406 0.512543 +vt 0.938402 0.572687 +vt 0.938402 0.632828 +vt 0.938406 0.692972 +vt 0.906694 0.692973 +vt 0.906697 0.632829 +vt 0.906697 0.572687 +vt 0.906694 0.512543 +vt 0.917106 0.635687 +vt 0.927076 0.453302 +vt 0.045440 0.434418 +vt 0.045441 0.612005 +vt 0.166666 0.433413 +vt 0.166667 0.613011 +vt 0.918024 0.453302 +vt 0.918024 0.752213 +vt 0.927987 0.511202 +vt 0.927993 0.569829 +vt 0.927076 0.752213 +vt 0.917112 0.694314 +vt 0.840655 0.640153 +vt 0.352454 0.612010 +vt 0.348762 0.433413 +vt 0.352453 0.434417 +vt 0.049131 0.613009 +vt 0.049131 0.433413 +vt 0.109207 0.613009 +vt 0.105575 0.433414 +vt 0.109207 0.433414 +vt 0.170170 0.613011 +vt 0.170170 0.433413 +vt 0.231225 0.613012 +vt 0.227721 0.433413 +vt 0.231224 0.433413 +vt 0.292316 0.613013 +vt 0.288684 0.433414 +vt 0.292316 0.433414 +vt 0.355688 0.439047 +vt 0.227721 0.613012 +vt 0.105576 0.613009 +vt 0.348763 0.613014 +vt 0.288685 0.613013 +vt 0.534518 0.522925 +vt 0.571091 0.462674 +vt 0.571091 0.522925 +vt 0.525466 0.462674 +vt 0.488893 0.522925 +vt 0.488893 0.462674 +vt 0.525466 0.522925 +vt 0.488893 0.583177 +vt 0.525466 0.583177 +vt 0.488893 0.643428 +vt 0.103937 0.865381 +vt 0.079904 0.828809 +vt 0.103937 0.828809 +vt 0.079904 0.865381 +vt 0.054814 0.828809 +vt 0.525466 0.402422 +vt 0.488893 0.402422 +vt 0.054814 0.865381 +vt 0.030782 0.828809 +vt 0.525466 0.643428 +vt 0.488893 0.703680 +vt 0.442462 0.816101 +vt 0.466495 0.852674 +vt 0.442462 0.852674 +vt 0.466495 0.816101 +vt 0.491585 0.852674 +vt 0.491585 0.816101 +vt 0.515617 0.852674 +vt 0.515617 0.816101 +vt 0.611486 0.852674 +vt 0.611486 0.816101 +vt 0.635519 0.852674 +vt 0.635519 0.816101 +vt 0.660609 0.852674 +vt 0.534518 0.703680 +vt 0.571091 0.643428 +vt 0.571091 0.703680 +vt 0.660609 0.816101 +vt 0.684642 0.852674 +vt 0.534518 0.462674 +vt 0.571091 0.402422 +vt 0.272961 0.865381 +vt 0.248929 0.828809 +vt 0.272961 0.828809 +vt 0.248929 0.865381 +vt 0.223838 0.828809 +vt 0.223838 0.865381 +vt 0.199806 0.828809 +vt 0.199806 0.865381 +vt 0.534518 0.583177 +vt 0.571091 0.583177 +vt 0.845124 0.011186 +vt 0.832156 0.023938 +vt 0.826151 0.018380 +vt 0.406715 0.685366 +vt 0.412185 0.743698 +vt 0.406711 0.741949 +vt 0.818257 0.168152 +vt 0.826453 0.189473 +vt 0.811744 0.172402 +vt 0.937528 0.014559 +vt 0.930746 0.064198 +vt 0.930772 0.008270 +vt 0.812887 0.059757 +vt 0.806330 0.151074 +vt 0.806057 0.056990 +vt 0.406711 0.745446 +vt 0.412185 0.803840 +vt 0.406711 0.802091 +vt 0.823177 0.194053 +vt 0.845196 0.196470 +vt 0.800914 0.151745 +vt 0.399936 0.915438 +vt 0.406718 0.865799 +vt 0.406692 0.921727 +vt 0.826453 0.397025 +vt 0.806696 0.382579 +vt 0.811744 0.379954 +vt 0.800913 0.359297 +vt 0.806330 0.358626 +vt 0.800609 0.056354 +vt 0.811335 0.035605 +vt 0.806279 0.033033 +vt 0.406718 0.681738 +vt 0.399936 0.632099 +vt 0.406692 0.625810 +vt 0.845124 0.218738 +vt 0.832156 0.231489 +vt 0.826151 0.225932 +vt 0.806696 0.175027 +vt 0.800609 0.263906 +vt 0.811335 0.243157 +vt 0.806057 0.264542 +vt 0.806279 0.240585 +vt 0.930746 0.248259 +vt 0.937528 0.297898 +vt 0.930772 0.304187 +vt 0.845283 0.212078 +vt 0.845754 0.213902 +vt 0.845283 0.004526 +vt 0.845755 0.006350 +vt 0.832384 0.183961 +vt 0.930753 0.127906 +vt 0.937496 0.181787 +vt 0.930753 0.184550 +vt 0.930753 0.188048 +vt 0.937496 0.240140 +vt 0.930750 0.244631 +vt 0.399968 0.857680 +vt 0.406711 0.805588 +vt 0.406714 0.862172 +vt 0.832383 0.391513 +vt 0.845196 0.404022 +vt 0.399969 0.799328 +vt 0.399968 0.689857 +vt 0.448109 0.052365 +vt 0.617432 0.102364 +vt 0.448109 0.102362 +vt 0.448105 0.295531 +vt 0.617433 0.345528 +vt 0.448106 0.345530 +vt 0.597123 0.010205 +vt 0.611928 0.025473 +vt 0.616429 0.042208 +vt 0.448105 0.234396 +vt 0.617432 0.285472 +vt 0.448105 0.285473 +vt 0.577272 0.393368 +vt 0.488267 0.393370 +vt 0.616429 0.355686 +vt 0.448106 0.173341 +vt 0.617432 0.224552 +vt 0.448106 0.224552 +vt 0.448108 0.112421 +vt 0.617433 0.163498 +vt 0.448108 0.163497 +vt 0.925278 0.066015 +vt 0.818257 0.375704 +vt 0.930750 0.067825 +vt 0.930753 0.124409 +vt 0.925279 0.126158 +vt 0.817892 0.247415 +vt 0.817892 0.039863 +vt 0.925279 0.186299 +vt 0.925278 0.246442 +vt 0.412186 0.863982 +vt 0.937496 0.072317 +vt 0.412186 0.683555 +vt 0.812887 0.267309 +vt 0.410384 0.924207 +vt 0.405742 0.925471 +vt 0.405742 0.622066 +vt 0.410384 0.623331 +vt 0.927080 0.005791 +vt 0.931722 0.004526 +vt 0.931722 0.307931 +vt 0.927080 0.306666 +vt 0.927083 0.066014 +vt 0.927086 0.126158 +vt 0.927086 0.186299 +vt 0.927083 0.246443 +vt 0.410381 0.863983 +vt 0.410378 0.803840 +vt 0.410378 0.743698 +vt 0.410381 0.683554 +vt 0.399969 0.806698 +vt 0.399969 0.740840 +vt 0.938413 0.006773 +vt 0.449109 0.355690 +vt 0.621059 0.352452 +vt 0.622062 0.231225 +vt 0.617432 0.234395 +vt 0.399051 0.624313 +vt 0.399963 0.682212 +vt 0.399051 0.923224 +vt 0.937501 0.064672 +vt 0.937496 0.123300 +vt 0.937496 0.130670 +vt 0.937496 0.189157 +vt 0.937501 0.247785 +vt 0.938413 0.305684 +vt 0.399963 0.865325 +vt 0.823177 0.401605 +vt 0.622063 0.049133 +vt 0.443471 0.045440 +vt 0.621059 0.045442 +vt 0.442462 0.348765 +vt 0.622063 0.348762 +vt 0.622062 0.292316 +vt 0.442463 0.288686 +vt 0.622062 0.288685 +vt 0.442463 0.227723 +vt 0.622062 0.227721 +vt 0.622062 0.170171 +vt 0.442464 0.166668 +vt 0.622062 0.166667 +vt 0.622062 0.109209 +vt 0.442466 0.105576 +vt 0.622062 0.105578 +vt 0.449115 0.042205 +vt 0.617432 0.173341 +vt 0.617432 0.295529 +vt 0.617433 0.052367 +vt 0.617433 0.112422 +vt 0.534518 0.643428 +vt 0.784307 0.641951 +vt 0.841028 0.836829 +vt 0.784223 0.836829 +vt 0.786830 0.652929 +vt 0.843635 0.652929 +vt 0.917106 0.577199 +vt 0.345528 0.438043 +vt 0.102362 0.438043 +vt 0.372423 0.601866 +vt 0.372423 0.443548 +vt 0.387691 0.458355 +vt 0.393369 0.478205 +vt 0.163496 0.438043 +vt 0.025471 0.601860 +vt 0.010204 0.587055 +vt 0.004526 0.478204 +vt 0.010203 0.458355 +vt 0.025470 0.443549 +vt 0.224551 0.438043 +vt 0.285471 0.438043 +vt 0.841112 0.641951 +vt 0.030782 0.865381 +vt 0.525466 0.703680 +vt 0.684642 0.816101 +vt 0.534518 0.402422 +vt 0.848361 0.017491 +vt 0.813179 0.148262 +vt 0.845838 0.201228 +vt 0.845381 0.203026 +vt 0.822770 0.013738 +vt 0.848361 0.225043 +vt 0.822770 0.221290 +vt 0.848361 0.190250 +vt 0.848361 0.397802 +vt 0.399969 0.748210 +vt 0.488272 0.004526 +vt 0.453616 0.025470 +vt 0.468422 0.010203 +vt 0.577274 0.004528 +vt 0.468417 0.387693 +vt 0.453611 0.372426 +vt 0.611928 0.372422 +vt 0.597122 0.387690 +vt 0.925243 0.005561 +vt 0.813179 0.355814 +vt 0.925243 0.306896 +vt 0.412221 0.924437 +vt 0.412221 0.623101 +vt 0.443467 0.352456 +vt 0.442463 0.231227 +vt 0.845838 0.408780 +vt 0.845381 0.410578 +vt 0.442467 0.049131 +vt 0.442463 0.292318 +vt 0.442464 0.170171 +vt 0.442466 0.109207 +vn 0.7790 0.1642 -0.6052 +vn 0.8198 0.2555 -0.5126 +vn 0.7857 0.1313 -0.6045 +vn 1.0000 0.0000 -0.0000 +vn 0.8258 0.2898 0.4837 +vn 0.8225 0.4962 0.2778 +vn 0.8229 0.4869 0.2928 +vn 0.7564 0.0000 0.6541 +vn 0.7693 0.0222 0.6385 +vn 0.7802 0.0915 0.6187 +vn 0.7889 0.6067 0.0976 +vn 0.7831 0.6180 -0.0704 +vn 0.7889 0.6067 -0.0976 +vn 0.7564 0.0000 -0.6541 +vn 0.7693 -0.0222 -0.6385 +vn 0.7802 -0.0915 -0.6187 +vn 0.7693 0.0222 -0.6385 +vn 0.7790 -0.1642 0.6052 +vn 0.8198 -0.2555 0.5126 +vn 0.7857 -0.1313 0.6045 +vn 0.7693 -0.0222 0.6385 +vn 0.7790 0.1642 0.6052 +vn 0.8198 0.2555 0.5126 +vn 0.7790 -0.1642 -0.6052 +vn 0.8198 -0.2555 -0.5126 +vn 0.8258 -0.2898 -0.4837 +vn 0.7831 0.6180 0.0704 +vn 0.8225 -0.4962 -0.2778 +vn 0.8229 -0.4869 -0.2928 +vn 0.7889 -0.6067 0.0976 +vn 0.8225 -0.4962 0.2778 +vn 0.8229 -0.4869 0.2928 +vn 0.7889 -0.6067 -0.0976 +vn 0.7831 -0.6180 -0.0704 +vn 0.8258 -0.2898 0.4837 +vn 0.8225 0.4962 -0.2778 +vn 0.8229 0.4869 -0.2928 +vn 0.8258 0.2898 -0.4837 +vn 0.7831 -0.6180 0.0704 +vn 0.7857 0.1313 0.6045 +vn 0.6319 -0.7750 0.0000 +vn 0.6121 -0.7908 0.0000 +vn 0.7802 0.0915 -0.6187 +vn 0.7857 -0.1313 -0.6045 +vn 0.7802 -0.0915 0.6187 +vn 0.6121 0.7908 0.0000 +vn 0.6257 0.7800 0.0000 +vn 0.6319 0.7750 0.0000 +vn 0.6257 -0.7800 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.9909 -0.1349 +vn 0.0000 -0.8638 -0.5038 +vn 0.0000 -0.5038 -0.8638 +vn 0.0000 -0.1349 -0.9909 +vn 0.0000 0.1349 -0.9909 +vn 0.0000 0.5038 -0.8638 +vn 0.0000 0.8638 -0.5038 +vn 0.0000 0.9909 -0.1349 +vn 0.0000 0.9909 0.1349 +vn 0.0000 0.8638 0.5038 +vn 0.0000 0.5038 0.8638 +vn 0.0000 0.1349 0.9909 +vn 0.0000 -0.1349 0.9909 +vn 0.0000 -0.5038 0.8638 +vn 0.0000 -0.8638 0.5038 +vn 0.0000 -0.9909 0.1349 +vn -0.7790 0.1642 -0.6052 +vn -0.8198 0.2555 -0.5126 +vn -0.8258 0.2898 -0.4837 +vn -1.0000 0.0000 0.0000 +vn -0.8225 0.4962 0.2778 +vn -0.8258 0.2898 0.4837 +vn -0.8229 0.4869 0.2928 +vn -0.7693 0.0222 0.6385 +vn -0.7564 0.0000 0.6541 +vn -0.7802 0.0915 0.6187 +vn -0.7831 0.6180 -0.0704 +vn -0.7889 0.6067 0.0976 +vn -0.7889 0.6067 -0.0976 +vn -0.7693 -0.0222 -0.6385 +vn -0.7564 0.0000 -0.6541 +vn -0.7802 -0.0915 -0.6187 +vn -0.7693 0.0222 -0.6385 +vn -0.7802 0.0915 -0.6187 +vn -0.7790 -0.1642 0.6052 +vn -0.8198 -0.2555 0.5126 +vn -0.8258 -0.2898 0.4837 +vn -0.7693 -0.0222 0.6385 +vn -0.7802 -0.0915 0.6187 +vn -0.8198 0.2555 0.5126 +vn -0.7790 0.1642 0.6052 +vn -0.8198 -0.2555 -0.5126 +vn -0.7790 -0.1642 -0.6052 +vn -0.8258 -0.2898 -0.4837 +vn -0.8225 -0.4962 -0.2778 +vn -0.8229 -0.4869 -0.2928 +vn -0.8225 -0.4962 0.2778 +vn -0.7889 -0.6067 0.0976 +vn -0.8229 -0.4869 0.2928 +vn -0.7889 -0.6067 -0.0976 +vn -0.8225 0.4962 -0.2778 +vn -0.8229 0.4869 -0.2928 +vn -0.7831 -0.6180 0.0704 +vn -0.7857 0.1313 0.6045 +vn -0.6319 -0.7750 0.0000 +vn -0.6121 -0.7908 0.0000 +vn -0.7857 0.1313 -0.6045 +vn -0.7857 -0.1313 -0.6045 +vn -0.7857 -0.1313 0.6045 +vn -0.6121 0.7908 0.0000 +vn -0.6257 0.7800 0.0000 +vn -0.6319 0.7750 0.0000 +vn -0.6257 -0.7800 0.0000 +vn -0.7831 0.6180 0.0704 +vn -0.7831 -0.6180 -0.0704 +s 1 +f 268/431/159 259/432/160 308/433/161 +f 252/434/162 246/435/162 299/436/162 +f 224/437/163 261/438/164 225/439/165 +f 278/440/166 305/441/167 271/442/168 +f 217/443/169 253/444/170 218/445/171 +f 251/446/162 252/434/162 296/447/162 +f 272/448/162 238/449/162 239/450/162 +f 218/445/162 230/451/162 217/443/162 +f 290/452/172 304/453/173 265/454/174 +f 219/455/162 233/456/162 231/457/162 +f 220/458/162 234/459/162 233/456/162 +f 222/460/162 229/461/162 218/445/162 +f 223/462/162 235/463/162 222/460/162 +f 298/464/172 307/465/175 312/466/172 +f 274/467/176 264/468/177 302/469/178 +f 225/439/162 238/449/162 224/437/162 +f 225/439/162 230/451/162 240/470/162 +f 226/471/162 242/472/162 227/473/162 +f 228/474/162 241/475/162 226/471/162 +f 286/476/166 301/477/179 322/478/166 +f 274/467/162 244/479/162 243/480/162 +f 227/473/162 234/459/162 221/481/162 +f 268/431/162 237/482/162 236/483/162 +f 272/448/180 260/484/181 224/437/163 +f 280/485/166 317/486/166 314/487/166 +f 283/488/166 321/489/166 318/490/166 +f 293/491/172 324/492/172 289/493/172 +f 266/494/182 255/495/183 219/455/184 +f 296/447/172 319/496/172 292/497/172 +f 295/498/172 311/499/172 315/500/172 +f 322/501/162 304/502/162 323/503/162 +f 305/504/162 312/505/162 307/506/162 +f 257/507/162 256/508/162 303/509/162 +f 310/510/162 315/511/162 311/512/162 +f 306/513/162 308/514/162 253/515/162 +f 314/516/162 319/517/162 316/518/162 +f 318/519/162 324/520/162 320/521/162 +f 247/522/162 271/442/162 239/523/162 +f 217/443/169 261/438/164 254/524/185 +f 219/455/184 256/525/186 220/458/187 +f 248/526/162 277/527/162 247/522/162 +f 227/473/188 262/528/189 226/471/190 +f 221/481/191 256/525/186 257/529/192 +f 248/526/162 249/530/162 284/531/162 +f 228/474/193 262/528/189 264/468/177 +f 218/445/171 258/532/194 222/460/195 +f 249/530/162 245/533/162 287/534/162 +f 245/533/162 244/535/162 275/536/162 +f 223/462/196 258/532/194 259/432/160 +f 250/537/162 265/454/162 232/538/162 +f 281/539/166 310/540/166 277/527/166 +f 246/435/162 237/541/162 269/542/162 +f 251/446/162 289/493/162 250/537/162 +f 221/481/191 263/543/197 227/473/188 +f 265/454/162 266/544/162 267/545/162 +f 268/546/162 269/542/162 270/547/162 +f 271/442/162 272/548/162 273/549/162 +f 274/550/162 275/536/162 276/551/162 +f 277/527/162 278/440/162 279/552/162 +f 280/485/162 281/539/162 282/553/162 +f 283/488/162 284/531/162 285/554/162 +f 286/476/162 287/534/162 288/555/162 +f 289/493/162 290/452/162 291/556/162 +f 292/497/162 293/491/162 294/557/162 +f 295/498/162 296/447/162 297/558/162 +f 298/464/162 299/436/162 300/559/162 +f 320/560/172 292/497/172 319/496/172 +f 315/500/172 296/447/172 295/498/172 +f 271/442/168 306/561/198 272/548/180 +f 308/514/199 330/562/199 336/563/199 +f 315/511/200 341/564/200 327/565/200 +f 308/566/161 269/542/201 268/546/159 +f 299/436/172 312/466/172 311/499/172 +f 265/454/174 303/567/202 266/544/182 +f 277/527/166 309/568/166 278/440/166 +f 280/485/166 313/569/166 281/539/166 +f 318/490/166 284/531/166 283/488/166 +f 322/478/166 287/534/166 286/476/166 +f 275/536/203 302/570/178 301/477/179 +f 289/493/172 323/571/172 290/452/172 +f 266/494/162 231/457/162 232/572/162 +f 333/573/162 331/574/162 332/575/162 +f 335/576/162 330/562/162 329/577/162 +f 339/578/162 337/579/162 338/580/162 +f 328/581/162 341/564/162 342/582/162 +f 326/583/162 343/584/162 344/585/162 +f 347/586/162 345/587/162 346/588/162 +f 320/521/204 344/585/204 318/519/204 +f 311/512/205 338/580/205 310/510/205 +f 303/509/206 332/575/206 302/589/206 +f 319/517/200 343/584/200 325/590/200 +f 312/505/207 337/579/207 340/591/207 +f 304/502/199 331/574/199 334/592/199 +f 323/503/205 346/588/205 322/501/205 +f 307/506/206 329/577/206 305/504/206 +f 316/518/204 342/582/204 314/516/204 +f 324/520/207 345/587/207 348/593/207 +f 384/594/208 246/595/208 252/596/208 +f 379/597/209 248/598/209 247/599/209 +f 380/600/209 249/601/209 248/598/209 +f 381/602/209 245/603/209 249/601/209 +f 362/604/210 240/605/211 230/606/210 +f 372/607/211 238/608/212 240/605/211 +f 371/609/213 247/599/209 239/610/213 +f 370/611/212 239/612/213 238/608/212 +f 377/613/209 244/614/214 245/603/209 +f 376/615/214 243/616/215 244/617/214 +f 375/618/215 241/619/216 243/616/215 +f 373/620/216 242/621/217 241/619/216 +f 374/622/217 234/623/218 242/621/217 +f 366/624/218 233/625/219 234/623/218 +f 365/626/219 231/627/220 233/625/219 +f 364/628/221 250/629/208 232/630/221 +f 363/631/220 232/632/221 231/627/220 +f 378/633/208 237/634/222 246/595/208 +f 369/635/222 236/636/223 237/637/222 +f 368/638/223 235/639/224 236/636/223 +f 367/640/224 229/641/225 235/639/224 +f 361/642/225 230/606/210 229/641/225 +f 383/643/208 252/596/208 251/644/208 +f 400/645/226 391/646/227 355/647/228 +f 431/648/229 384/649/229 427/650/229 +f 393/651/230 356/652/231 357/653/232 +f 437/654/233 410/655/234 403/656/235 +f 385/657/236 349/658/237 350/659/238 +f 428/660/229 383/661/229 424/662/229 +f 370/663/229 356/652/229 404/664/229 +f 362/665/229 350/659/229 349/658/229 +f 436/666/239 422/667/240 397/668/241 +f 351/669/229 365/670/229 352/671/229 +f 352/671/229 366/672/229 353/673/229 +f 361/674/229 354/675/229 350/659/229 +f 367/676/229 355/647/229 354/675/229 +f 430/677/240 439/678/242 401/679/243 +f 406/680/244 396/681/245 360/682/246 +f 356/652/229 372/683/229 357/653/229 +f 357/653/229 362/665/229 349/658/229 +f 374/684/229 358/685/229 359/686/229 +f 373/687/229 360/682/229 358/685/229 +f 418/688/234 433/689/247 407/690/248 +f 376/691/229 408/692/229 406/680/229 +f 366/672/229 359/686/229 353/673/229 +f 369/693/229 402/694/229 400/645/229 +f 392/695/249 404/664/250 356/652/231 +f 412/696/234 449/697/234 416/698/234 +f 415/699/234 453/700/234 419/701/234 +f 456/702/240 425/703/240 421/704/240 +f 387/705/251 398/706/252 351/669/253 +f 451/707/240 428/660/240 424/662/240 +f 427/650/240 443/708/240 431/648/240 +f 436/709/229 454/710/229 455/711/229 +f 444/712/229 437/713/229 439/714/229 +f 394/715/229 396/716/229 434/717/229 +f 447/718/229 442/719/229 443/720/229 +f 386/721/229 385/722/229 438/723/229 +f 451/724/229 446/725/229 448/726/229 +f 456/727/229 450/728/229 452/729/229 +f 403/656/229 410/655/229 379/730/229 +f 349/658/237 393/651/230 357/653/232 +f 388/731/254 351/669/253 352/671/255 +f 409/732/229 413/733/229 380/734/229 +f 394/735/256 359/686/257 358/685/258 +f 353/673/259 388/731/254 352/671/255 +f 416/698/229 380/734/229 412/696/229 +f 360/682/246 394/735/256 358/685/258 +f 390/736/260 350/659/238 354/675/261 +f 419/701/229 381/737/229 415/699/229 +f 407/690/229 377/738/229 418/688/229 +f 355/647/228 390/736/260 354/675/261 +f 397/668/229 422/667/229 382/739/229 +f 442/740/234 413/733/234 409/732/234 +f 401/679/229 378/741/229 430/677/229 +f 421/704/229 425/703/229 383/661/229 +f 395/742/262 353/673/259 359/686/257 +f 397/668/229 399/743/229 398/744/229 +f 400/745/229 402/746/229 401/679/229 +f 403/656/229 405/747/229 404/748/229 +f 406/749/229 408/750/229 407/690/229 +f 409/732/229 411/751/229 410/655/229 +f 412/696/229 414/752/229 413/733/229 +f 415/699/229 417/753/229 416/698/229 +f 418/688/229 420/754/229 419/701/229 +f 421/704/229 423/755/229 422/667/229 +f 424/662/229 426/756/229 425/703/229 +f 427/650/229 429/757/229 428/660/229 +f 430/677/229 432/758/229 431/648/229 +f 452/759/240 424/662/240 425/703/240 +f 428/660/240 447/760/240 427/650/240 +f 403/656/235 438/761/263 437/654/233 +f 440/762/264 462/763/264 438/723/264 +f 447/718/265 473/764/265 445/765/265 +f 401/679/243 440/766/266 400/745/226 +f 444/767/240 431/648/240 443/708/240 +f 397/668/241 435/768/267 436/666/239 +f 409/732/234 441/769/234 442/740/234 +f 412/696/234 445/770/234 446/771/234 +f 416/698/234 450/772/234 415/699/234 +f 419/701/234 454/773/234 418/688/234 +f 434/774/268 407/690/248 433/689/247 +f 421/704/240 455/775/240 456/702/240 +f 363/776/229 351/669/229 398/706/229 +f 463/777/229 465/778/229 464/779/229 +f 462/763/229 467/780/229 461/781/229 +f 469/782/229 471/783/229 470/784/229 +f 473/764/229 460/785/229 474/786/229 +f 475/787/229 458/788/229 476/789/229 +f 477/790/229 479/791/229 478/792/229 +f 476/789/269 452/729/269 450/728/269 +f 470/784/270 443/720/270 442/719/270 +f 464/779/271 435/793/271 434/717/271 +f 451/724/265 475/787/265 449/794/265 +f 444/712/272 469/782/272 441/795/272 +f 436/709/264 463/777/264 433/796/264 +f 478/792/270 455/711/270 454/710/270 +f 461/781/271 439/714/271 437/713/271 +f 474/786/269 448/726/269 446/725/269 +f 456/727/272 477/790/272 453/797/272 +f 382/798/208 251/644/208 250/629/208 +f 268/431/159 223/462/196 259/432/160 +f 246/435/162 300/559/162 299/436/162 +f 299/436/162 295/498/162 252/434/162 +f 295/498/162 297/558/162 252/434/162 +f 224/437/163 260/484/181 261/438/164 +f 278/440/166 309/568/166 305/441/167 +f 217/443/169 254/524/185 253/444/170 +f 252/434/162 297/558/162 296/447/162 +f 296/447/162 292/497/162 251/446/162 +f 292/497/162 294/557/162 251/446/162 +f 239/450/162 273/799/162 272/448/162 +f 272/448/162 224/437/162 238/449/162 +f 218/445/162 229/461/162 230/451/162 +f 290/452/172 323/571/172 304/453/173 +f 219/455/162 220/458/162 233/456/162 +f 220/458/162 221/481/162 234/459/162 +f 222/460/162 235/463/162 229/461/162 +f 223/462/162 236/483/162 235/463/162 +f 298/464/172 269/542/201 307/465/175 +f 274/467/176 228/474/193 264/468/177 +f 225/439/162 240/470/162 238/449/162 +f 225/439/162 217/443/162 230/451/162 +f 226/471/162 241/475/162 242/472/162 +f 228/474/162 243/480/162 241/475/162 +f 286/476/166 275/536/203 301/477/179 +f 243/480/162 228/474/162 274/467/162 +f 274/467/162 276/800/162 244/479/162 +f 227/473/162 242/472/162 234/459/162 +f 236/483/162 223/462/162 268/431/162 +f 268/431/162 270/801/162 237/482/162 +f 272/448/180 306/802/198 260/484/181 +f 280/485/166 284/531/166 317/486/166 +f 283/488/166 287/534/166 321/489/166 +f 293/491/172 320/560/172 324/492/172 +f 266/494/182 303/803/202 255/495/183 +f 296/447/172 316/804/172 319/496/172 +f 295/498/172 299/436/172 311/499/172 +f 322/501/162 301/805/162 304/502/162 +f 305/504/162 309/806/162 312/505/162 +f 255/807/162 303/509/162 256/508/162 +f 303/509/162 302/589/162 257/507/162 +f 302/589/162 264/808/162 262/809/162 +f 262/809/162 263/810/162 302/589/162 +f 263/810/162 257/507/162 302/589/162 +f 310/510/162 313/811/162 315/511/162 +f 259/812/162 258/813/162 308/514/162 +f 258/813/162 253/515/162 308/514/162 +f 253/515/162 254/814/162 306/513/162 +f 254/814/162 261/815/162 306/513/162 +f 261/815/162 260/816/162 306/513/162 +f 314/516/162 317/817/162 319/517/162 +f 318/519/162 321/818/162 324/520/162 +f 247/522/162 279/552/162 278/440/162 +f 278/440/162 271/442/162 247/522/162 +f 271/442/162 273/549/162 239/523/162 +f 217/443/169 225/439/165 261/438/164 +f 219/455/184 255/495/183 256/525/186 +f 248/526/162 282/553/162 281/539/162 +f 281/539/162 277/527/162 248/526/162 +f 277/527/162 279/552/162 247/522/162 +f 227/473/188 263/543/197 262/528/189 +f 221/481/191 220/458/187 256/525/186 +f 249/530/162 285/554/162 284/531/162 +f 284/531/162 280/485/162 248/526/162 +f 280/485/162 282/553/162 248/526/162 +f 228/474/193 226/471/190 262/528/189 +f 218/445/171 253/444/170 258/532/194 +f 245/533/162 288/555/162 287/534/162 +f 287/534/162 283/488/162 249/530/162 +f 283/488/162 285/554/162 249/530/162 +f 244/535/162 276/551/162 275/536/162 +f 275/536/162 286/476/162 245/533/162 +f 286/476/162 288/555/162 245/533/162 +f 223/462/196 222/460/195 258/532/194 +f 250/537/162 291/556/162 290/452/162 +f 290/452/162 265/454/162 250/537/162 +f 265/454/162 267/545/162 232/538/162 +f 281/539/166 313/569/166 310/540/166 +f 237/541/162 270/547/162 269/542/162 +f 269/542/162 298/464/162 246/435/162 +f 298/464/162 300/559/162 246/435/162 +f 251/446/162 294/557/162 293/491/162 +f 293/491/162 289/493/162 251/446/162 +f 289/493/162 291/556/162 250/537/162 +f 221/481/191 257/529/192 263/543/197 +f 320/560/172 293/491/172 292/497/172 +f 315/500/172 316/804/172 296/447/172 +f 271/442/168 305/441/167 306/561/198 +f 308/514/199 306/513/199 330/562/199 +f 315/511/200 313/811/200 341/564/200 +f 308/566/161 307/465/175 269/542/201 +f 299/436/172 298/464/172 312/466/172 +f 265/454/174 304/453/173 303/567/202 +f 277/527/166 310/540/166 309/568/166 +f 280/485/166 314/487/166 313/569/166 +f 318/490/166 317/486/166 284/531/166 +f 322/478/166 321/489/166 287/534/166 +f 275/536/203 274/550/176 302/570/178 +f 289/493/172 324/492/172 323/571/172 +f 232/572/162 267/819/162 266/494/162 +f 266/494/162 219/455/162 231/457/162 +f 333/573/162 334/592/162 331/574/162 +f 335/576/162 336/563/162 330/562/162 +f 339/578/162 340/591/162 337/579/162 +f 328/581/162 327/565/162 341/564/162 +f 326/583/162 325/590/162 343/584/162 +f 347/586/162 348/593/162 345/587/162 +f 320/521/204 326/583/204 344/585/204 +f 311/512/205 339/578/205 338/580/205 +f 303/509/206 333/573/206 332/575/206 +f 319/517/200 317/817/200 343/584/200 +f 312/505/207 309/806/207 337/579/207 +f 304/502/199 301/805/199 331/574/199 +f 323/503/205 347/586/205 346/588/205 +f 307/506/206 335/576/206 329/577/206 +f 316/518/204 328/581/204 342/582/204 +f 324/520/207 321/818/207 345/587/207 +f 384/594/208 378/633/208 246/595/208 +f 379/597/209 380/600/209 248/598/209 +f 380/600/209 381/602/209 249/601/209 +f 381/602/209 377/613/209 245/603/209 +f 362/604/210 372/607/211 240/605/211 +f 372/607/211 370/611/212 238/608/212 +f 371/609/213 379/597/209 247/599/209 +f 370/611/212 371/820/213 239/612/213 +f 377/613/209 376/821/214 244/614/214 +f 376/615/214 375/618/215 243/616/215 +f 375/618/215 373/620/216 241/619/216 +f 373/620/216 374/622/217 242/621/217 +f 374/622/217 366/624/218 234/623/218 +f 366/624/218 365/626/219 233/625/219 +f 365/626/219 363/631/220 231/627/220 +f 364/628/221 382/798/208 250/629/208 +f 363/631/220 364/822/221 232/632/221 +f 378/633/208 369/823/222 237/634/222 +f 369/635/222 368/638/223 236/636/223 +f 368/638/223 367/640/224 235/639/224 +f 367/640/224 361/642/225 229/641/225 +f 361/642/225 362/604/210 230/606/210 +f 383/643/208 384/594/208 252/596/208 +f 400/645/226 440/824/266 391/646/227 +f 431/648/229 432/758/229 378/741/229 +f 378/741/229 384/649/229 431/648/229 +f 384/649/229 429/757/229 427/650/229 +f 393/651/230 392/695/249 356/652/231 +f 437/654/233 441/769/234 410/655/234 +f 385/657/236 386/825/273 349/658/237 +f 428/660/229 429/757/229 384/649/229 +f 384/649/229 383/661/229 428/660/229 +f 383/661/229 426/756/229 424/662/229 +f 404/664/229 405/826/229 371/827/229 +f 371/827/229 370/663/229 404/664/229 +f 362/665/229 361/674/229 350/659/229 +f 436/666/239 455/775/240 422/667/240 +f 351/669/229 363/776/229 365/670/229 +f 352/671/229 365/670/229 366/672/229 +f 361/674/229 367/676/229 354/675/229 +f 367/676/229 368/828/229 355/647/229 +f 430/677/240 444/767/240 439/678/242 +f 406/680/244 434/829/268 396/681/245 +f 356/652/229 370/663/229 372/683/229 +f 357/653/229 372/683/229 362/665/229 +f 374/684/229 373/687/229 358/685/229 +f 373/687/229 375/830/229 360/682/229 +f 418/688/234 454/773/234 433/689/247 +f 406/680/229 360/682/229 375/830/229 +f 375/830/229 376/691/229 406/680/229 +f 366/672/229 374/684/229 359/686/229 +f 400/645/229 355/647/229 368/828/229 +f 368/828/229 369/693/229 400/645/229 +f 392/695/249 438/831/263 404/664/250 +f 412/696/234 446/771/234 449/697/234 +f 415/699/234 450/772/234 453/700/234 +f 456/702/240 452/759/240 425/703/240 +f 387/705/251 435/832/267 398/706/252 +f 451/707/240 448/833/240 428/660/240 +f 427/650/240 447/760/240 443/708/240 +f 436/709/229 433/796/229 454/710/229 +f 444/712/229 441/795/229 437/713/229 +f 434/717/229 435/793/229 389/834/229 +f 435/793/229 387/835/229 388/836/229 +f 389/834/229 435/793/229 388/836/229 +f 389/834/229 395/837/229 434/717/229 +f 395/837/229 394/715/229 434/717/229 +f 447/718/229 445/765/229 442/719/229 +f 385/722/229 390/838/229 440/762/229 +f 390/838/229 391/839/229 440/762/229 +f 440/762/229 438/723/229 385/722/229 +f 438/723/229 392/840/229 393/841/229 +f 393/841/229 386/721/229 438/723/229 +f 451/724/229 449/794/229 446/725/229 +f 456/727/229 453/797/229 450/728/229 +f 410/655/229 411/751/229 379/730/229 +f 379/730/229 371/842/229 403/656/229 +f 371/842/229 405/747/229 403/656/229 +f 349/658/237 386/825/273 393/651/230 +f 388/731/254 387/705/251 351/669/253 +f 413/733/229 414/752/229 380/734/229 +f 380/734/229 379/730/229 409/732/229 +f 379/730/229 411/751/229 409/732/229 +f 394/735/256 395/742/262 359/686/257 +f 353/673/259 389/843/274 388/731/254 +f 416/698/229 417/753/229 381/737/229 +f 381/737/229 380/734/229 416/698/229 +f 380/734/229 414/752/229 412/696/229 +f 360/682/246 396/681/245 394/735/256 +f 390/736/260 385/657/236 350/659/238 +f 419/701/229 420/754/229 377/738/229 +f 377/738/229 381/737/229 419/701/229 +f 381/737/229 417/753/229 415/699/229 +f 407/690/229 408/750/229 376/844/229 +f 376/844/229 377/738/229 407/690/229 +f 377/738/229 420/754/229 418/688/229 +f 355/647/228 391/646/227 390/736/260 +f 422/667/229 423/755/229 382/739/229 +f 382/739/229 364/845/229 397/668/229 +f 364/845/229 399/743/229 397/668/229 +f 442/740/234 445/770/234 413/733/234 +f 401/679/229 402/746/229 369/846/229 +f 369/846/229 378/741/229 401/679/229 +f 378/741/229 432/758/229 430/677/229 +f 425/703/229 426/756/229 383/661/229 +f 383/661/229 382/739/229 421/704/229 +f 382/739/229 423/755/229 421/704/229 +f 395/742/262 389/843/274 353/673/259 +f 452/759/240 451/707/240 424/662/240 +f 428/660/240 448/833/240 447/760/240 +f 403/656/235 404/748/250 438/761/263 +f 440/762/264 468/847/264 462/763/264 +f 447/718/265 459/848/265 473/764/265 +f 401/679/243 439/678/242 440/766/266 +f 444/767/240 430/677/240 431/648/240 +f 397/668/241 398/744/252 435/768/267 +f 409/732/234 410/655/234 441/769/234 +f 412/696/234 413/733/234 445/770/234 +f 416/698/234 449/697/234 450/772/234 +f 419/701/234 453/700/234 454/773/234 +f 434/774/268 406/749/244 407/690/248 +f 421/704/240 422/667/240 455/775/240 +f 398/706/229 399/849/229 364/850/229 +f 364/850/229 363/776/229 398/706/229 +f 463/777/229 466/851/229 465/778/229 +f 462/763/229 468/847/229 467/780/229 +f 469/782/229 472/852/229 471/783/229 +f 473/764/229 459/848/229 460/785/229 +f 475/787/229 457/853/229 458/788/229 +f 477/790/229 480/854/229 479/791/229 +f 476/789/269 458/788/269 452/729/269 +f 470/784/270 471/783/270 443/720/270 +f 464/779/271 465/778/271 435/793/271 +f 451/724/265 457/853/265 475/787/265 +f 444/712/272 472/852/272 469/782/272 +f 436/709/264 466/851/264 463/777/264 +f 478/792/270 479/791/270 455/711/270 +f 461/781/271 467/780/271 439/714/271 +f 474/786/269 460/785/269 448/726/269 +f 456/727/272 480/854/272 477/790/272 +f 382/798/208 383/643/208 251/644/208 diff --git a/src/main/resources/assets/hbm/models/doors/water_door.obj b/src/main/resources/assets/hbm/models/doors/water_door.obj new file mode 100644 index 000000000..6dfaabcff --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/water_door.obj @@ -0,0 +1,7570 @@ +# Blender v2.92.0 OBJ File: 'water_door.blend' +# www.blender.org +o bolt +v 0.165037 2.447428 -0.486393 +v 0.165037 2.563211 -0.486393 +v 0.165037 2.447428 -1.450890 +v 0.165037 2.563211 -1.450890 +v 0.197443 2.447428 -0.486393 +v 0.197443 2.563211 -0.486393 +v 0.197443 2.447428 -1.450890 +v 0.197443 2.563211 -1.450890 +v 0.165037 0.441220 -0.486393 +v 0.165037 0.557003 -0.486393 +v 0.165037 0.441220 -1.450890 +v 0.165037 0.557003 -1.450890 +v 0.197443 0.441220 -0.486393 +v 0.197443 0.557003 -0.486393 +v 0.197443 0.441220 -1.450890 +v 0.197443 0.557003 -1.450890 +vt 0.017052 0.475044 +vt 0.410579 0.522284 +vt 0.017052 0.522285 +vt 0.423801 0.461821 +vt 0.410579 0.414580 +vt 0.423801 0.414580 +vt 0.410579 0.461821 +vt 0.017052 0.414580 +vt 0.017052 0.461821 +vt 0.003830 0.414580 +vt 0.017052 0.401357 +vt 0.410579 0.401358 +vt 0.410579 0.475043 +vt 0.478701 0.414580 +vt 0.431462 0.808107 +vt 0.431460 0.414580 +vt 0.491925 0.821329 +vt 0.539166 0.808106 +vt 0.539166 0.821329 +vt 0.491925 0.808106 +vt 0.539165 0.414580 +vt 0.491924 0.414580 +vt 0.539165 0.401357 +vt 0.552388 0.414579 +vt 0.552388 0.808106 +vt 0.478703 0.808106 +vt 0.003830 0.461821 +vt 0.491924 0.401357 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/6/2 +f 8/7/3 5/8/3 7/5/3 +f 6/9/4 1/10/4 5/8/4 +f 7/5/5 1/11/5 3/12/5 +f 4/13/6 6/9/6 8/7/6 +f 10/14/1 11/15/1 9/16/1 +f 12/17/2 15/18/2 11/19/2 +f 16/20/3 13/21/3 15/18/3 +f 14/22/4 9/23/4 13/21/4 +f 15/18/5 9/24/5 11/25/5 +f 12/26/6 14/22/6 16/20/6 +f 2/1/1 4/13/1 3/2/1 +f 4/4/2 8/7/2 7/5/2 +f 8/7/3 6/9/3 5/8/3 +f 6/9/4 2/27/4 1/10/4 +f 7/5/5 5/8/5 1/11/5 +f 4/13/6 2/1/6 6/9/6 +f 10/14/1 12/26/1 11/15/1 +f 12/17/2 16/20/2 15/18/2 +f 16/20/3 14/22/3 13/21/3 +f 14/22/4 10/28/4 9/23/4 +f 15/18/5 13/21/5 9/24/5 +f 12/26/6 10/14/6 14/22/6 +o door +v 0.101040 2.807820 -0.722241 +v 0.101040 2.743416 -0.939834 +v 0.101040 2.807820 0.722241 +v 0.101040 2.743416 0.939834 +v 0.101040 2.325418 -1.144342 +v 0.101040 2.325418 1.144342 +v 0.101040 0.674582 -1.144342 +v 0.101040 0.674582 1.144342 +v 0.101040 0.256584 -0.939834 +v 0.101040 0.256584 0.939834 +v 0.101040 0.192180 -0.722241 +v 0.101040 0.192180 0.722241 +v 0.125000 2.848552 -0.726781 +v 0.125000 2.780064 -0.958169 +v 0.125000 2.848552 0.726781 +v 0.125000 2.780064 0.958169 +v 0.125000 2.330607 -1.179983 +v 0.125000 2.330607 1.179983 +v 0.125000 0.669393 -1.179983 +v 0.125000 0.669393 1.179983 +v 0.125000 0.219935 -0.958169 +v 0.125000 0.219935 0.958169 +v 0.125000 0.151448 -0.726781 +v 0.125000 0.151448 0.726781 +v 0.125000 2.848552 -0.108504 +v 0.125000 2.848552 0.108504 +v 0.125000 0.151448 0.108504 +v 0.125000 0.151448 -0.108504 +v 0.101040 2.807820 -0.108504 +v 0.101040 2.807820 0.108504 +v 0.101040 0.192180 0.108504 +v 0.101040 0.192180 -0.108504 +v 0.133246 2.807820 -0.071231 +v 0.133246 2.807820 0.071231 +v 0.133246 0.192180 0.071231 +v 0.133246 0.192180 -0.071231 +v 0.101040 2.325418 0.722241 +v 0.101040 2.325418 0.108504 +v 0.133246 2.324229 0.071231 +v 0.133246 2.324229 -0.071231 +v 0.101040 2.325418 -0.108504 +v 0.101040 2.325418 -0.722241 +v 0.101040 0.674582 0.722241 +v 0.101040 0.674582 0.108504 +v 0.133246 0.675771 0.071231 +v 0.133246 0.675771 -0.071231 +v 0.101040 0.674582 -0.108504 +v 0.101040 0.674582 -0.722241 +v 0.130922 1.829642 -0.108504 +v 0.130922 1.906068 -0.108504 +v 0.130922 1.093932 -0.108504 +v 0.130922 1.170358 -0.108504 +v 0.130922 1.906068 0.108504 +v 0.130922 1.829642 0.108504 +v 0.130922 1.170358 0.108504 +v 0.130922 1.093932 0.108504 +v 0.130922 1.829642 1.144342 +v 0.130922 1.906068 1.144342 +v 0.130922 1.906068 0.722241 +v 0.130922 1.829642 0.722241 +v 0.130922 1.170358 0.722241 +v 0.130922 1.093932 0.722241 +v 0.130922 1.093932 1.144342 +v 0.130922 1.170358 1.144342 +v 0.130922 1.829642 -0.722241 +v 0.130922 1.906068 -0.722241 +v 0.130922 1.906068 -1.144342 +v 0.130922 1.829642 -1.144342 +v 0.130922 1.170358 -1.144342 +v 0.130922 1.093932 -1.144342 +v 0.130922 1.093932 -0.722241 +v 0.130922 1.170358 -0.722241 +v 0.125000 1.075880 -1.179983 +v 0.125000 1.188410 -1.179983 +v 0.125000 1.811590 -1.179983 +v 0.125000 1.924120 -1.179983 +v 0.125000 1.924120 1.179983 +v 0.125000 1.811590 1.179983 +v 0.125000 1.188410 1.179983 +v 0.125000 1.075880 1.179983 +v 0.101040 1.075880 -1.144342 +v 0.101040 1.188410 -1.144342 +v 0.101040 1.811590 -1.144342 +v 0.101040 1.924120 -1.144342 +v 0.101040 1.924120 1.144342 +v 0.101040 1.811590 1.144342 +v 0.101040 1.188410 1.144342 +v 0.101040 1.075880 1.144342 +v 0.133246 1.075880 -0.071231 +v 0.133246 1.188410 -0.071231 +v 0.133246 1.811590 -0.071231 +v 0.133246 1.924120 -0.071231 +v 0.101040 1.924120 -0.108504 +v 0.101040 1.811590 -0.108504 +v 0.101040 1.188410 -0.108504 +v 0.101040 1.075880 -0.108504 +v 0.101040 1.075880 0.722241 +v 0.101040 1.188410 0.722241 +v 0.101040 1.811590 0.722241 +v 0.101040 1.924120 0.722241 +v 0.101040 1.075880 0.108504 +v 0.101040 1.188410 0.108504 +v 0.101040 1.811590 0.108504 +v 0.101040 1.924120 0.108504 +v 0.133246 1.075880 0.071231 +v 0.133246 1.188410 0.071231 +v 0.133246 1.811590 0.071231 +v 0.133246 1.924120 0.071231 +v 0.101040 1.924120 -0.722241 +v 0.101040 1.811590 -0.722241 +v 0.101040 1.188410 -0.722241 +v 0.101040 1.075880 -0.722241 +v 0.101040 0.392644 1.051717 +v 0.101040 0.605411 1.126214 +v 0.124987 0.404961 1.120039 +v 0.101040 0.605411 -1.126213 +v 0.101040 0.392644 -1.051717 +v 0.124987 0.404961 -1.120039 +v 0.101040 0.392642 -0.722241 +v 0.101040 0.605412 -0.722241 +v 0.101040 0.392635 -0.108504 +v 0.101040 0.605416 -0.108504 +v 0.133246 0.392635 -0.071231 +v 0.133246 0.605416 -0.071231 +v 0.133246 0.392635 0.071231 +v 0.133246 0.605416 0.071231 +v 0.101040 0.392635 0.108504 +v 0.101040 0.605416 0.108504 +v 0.101040 0.605412 0.722241 +v 0.101040 0.392642 0.722241 +v 0.124996 0.586645 1.161225 +v 0.124996 0.586645 -1.161225 +v 0.148339 0.594584 0.722241 +v 0.148339 0.403470 0.722241 +v 0.148339 0.403463 0.108504 +v 0.148339 0.594588 0.108504 +v 0.148339 0.403463 -0.108504 +v 0.148339 0.594588 -0.108504 +v 0.148339 0.403470 -0.722241 +v 0.148339 0.594584 -0.722241 +v 0.101040 2.603477 -1.033087 +v 0.101040 2.403613 -1.126622 +v 0.124987 2.595039 -1.120039 +v 0.101040 2.403613 1.126622 +v 0.101040 2.600861 1.034830 +v 0.124987 2.595039 1.120039 +v 0.101040 2.590124 0.722241 +v 0.101040 2.403611 0.722241 +v 0.101040 2.590129 0.108504 +v 0.101040 2.403606 0.108504 +v 0.133246 2.590129 0.071231 +v 0.133246 2.403606 0.071231 +v 0.133246 2.590129 -0.071231 +v 0.133246 2.403606 -0.071231 +v 0.101040 2.590129 -0.108504 +v 0.101040 2.403606 -0.108504 +v 0.101040 2.403611 -0.722241 +v 0.101040 2.590124 -0.722241 +v 0.124996 2.411551 -1.161633 +v 0.124996 2.411551 1.161633 +v 0.148339 2.579340 -0.108504 +v 0.148339 2.414395 -0.108504 +v 0.148339 2.414400 -0.722241 +v 0.148339 2.579335 -0.722241 +v 0.148339 2.579340 0.108504 +v 0.148339 2.414395 0.108504 +v 0.148339 2.579335 0.722241 +v 0.148339 2.414400 0.722241 +v -0.101040 2.807820 -0.722241 +v -0.101040 2.743416 -0.939834 +v -0.101040 2.807820 0.722241 +v -0.101040 2.743416 0.939834 +v -0.101040 2.325418 -1.144342 +v -0.101040 2.325418 1.144342 +v -0.101040 0.674582 -1.144342 +v -0.101040 0.674582 1.144342 +v -0.101040 0.256584 -0.939834 +v -0.101040 0.256584 0.939834 +v -0.101040 0.192180 -0.722241 +v -0.101040 0.192180 0.722241 +v -0.125000 2.848552 -0.726781 +v -0.125000 2.780064 -0.958169 +v -0.125000 2.848552 0.726781 +v -0.125000 2.780064 0.958169 +v -0.125000 2.330607 -1.179983 +v -0.125000 2.330607 1.179983 +v -0.125000 0.669393 -1.179983 +v -0.125000 0.669393 1.179983 +v -0.125000 0.219935 -0.958169 +v -0.125000 0.219935 0.958169 +v -0.125000 0.151448 -0.726781 +v -0.125000 0.151448 0.726781 +v -0.125000 2.848552 -0.108504 +v -0.125000 2.848552 0.108504 +v -0.125000 0.151448 0.108504 +v -0.125000 0.151448 -0.108504 +v -0.101040 2.807820 -0.108504 +v -0.101040 2.807820 0.108504 +v -0.101040 0.192180 0.108504 +v -0.101040 0.192180 -0.108504 +v -0.133246 2.807820 -0.071231 +v -0.133246 2.807820 0.071231 +v -0.133246 0.192180 0.071231 +v -0.133246 0.192180 -0.071231 +v -0.101040 2.325418 0.722241 +v -0.101040 2.325418 0.108504 +v -0.133246 2.324229 0.071231 +v -0.133246 2.324229 -0.071231 +v -0.101040 2.325418 -0.108504 +v -0.101040 2.325418 -0.722241 +v -0.101040 0.674582 0.722241 +v -0.101040 0.674582 0.108504 +v -0.133246 0.675771 0.071231 +v -0.133246 0.675771 -0.071231 +v -0.101040 0.674582 -0.108504 +v -0.101040 0.674582 -0.722241 +v -0.130922 1.829642 -0.108504 +v -0.130922 1.906068 -0.108504 +v -0.130922 1.093932 -0.108504 +v -0.130922 1.170358 -0.108504 +v -0.130922 1.906068 0.108504 +v -0.130922 1.829642 0.108504 +v -0.130922 1.170358 0.108504 +v -0.130922 1.093932 0.108504 +v -0.130922 1.829642 1.144342 +v -0.130922 1.906068 1.144342 +v -0.130922 1.906068 0.722241 +v -0.130922 1.829642 0.722241 +v -0.130922 1.170358 0.722241 +v -0.130922 1.093932 0.722241 +v -0.130922 1.093932 1.144342 +v -0.130922 1.170358 1.144342 +v -0.130922 1.829642 -0.722241 +v -0.130922 1.906068 -0.722241 +v -0.130922 1.906068 -1.144342 +v -0.130922 1.829642 -1.144342 +v -0.130922 1.170358 -1.144342 +v -0.130922 1.093932 -1.144342 +v -0.130922 1.093932 -0.722241 +v -0.130922 1.170358 -0.722241 +v -0.125000 1.075880 -1.179983 +v -0.125000 1.188410 -1.179983 +v -0.125000 1.811590 -1.179983 +v -0.125000 1.924120 -1.179983 +v -0.125000 1.924120 1.179983 +v -0.125000 1.811590 1.179983 +v -0.125000 1.188410 1.179983 +v -0.125000 1.075880 1.179983 +v -0.101040 1.075880 -1.144342 +v -0.101040 1.188410 -1.144342 +v -0.101040 1.811590 -1.144342 +v -0.101040 1.924120 -1.144342 +v -0.101040 1.924120 1.144342 +v -0.101040 1.811590 1.144342 +v -0.101040 1.188410 1.144342 +v -0.101040 1.075880 1.144342 +v -0.133246 1.075880 -0.071231 +v -0.133246 1.188410 -0.071231 +v -0.133246 1.811590 -0.071231 +v -0.133246 1.924120 -0.071231 +v -0.101040 1.924120 -0.108504 +v -0.101040 1.811590 -0.108504 +v -0.101040 1.188410 -0.108504 +v -0.101040 1.075880 -0.108504 +v -0.101040 1.075880 0.722241 +v -0.101040 1.188410 0.722241 +v -0.101040 1.811590 0.722241 +v -0.101040 1.924120 0.722241 +v -0.101040 1.075880 0.108504 +v -0.101040 1.188410 0.108504 +v -0.101040 1.811590 0.108504 +v -0.101040 1.924120 0.108504 +v -0.133246 1.075880 0.071231 +v -0.133246 1.188410 0.071231 +v -0.133246 1.811590 0.071231 +v -0.133246 1.924120 0.071231 +v -0.101040 1.924120 -0.722241 +v -0.101040 1.811590 -0.722241 +v -0.101040 1.188410 -0.722241 +v -0.101040 1.075880 -0.722241 +v -0.101040 0.392644 1.051717 +v -0.101040 0.605411 1.126214 +v -0.124987 0.404961 1.120039 +v -0.101040 0.605411 -1.126213 +v -0.101040 0.392644 -1.051717 +v -0.124987 0.404961 -1.120039 +v -0.101040 0.392642 -0.722241 +v -0.101040 0.605412 -0.722241 +v -0.101040 0.392635 -0.108504 +v -0.101040 0.605416 -0.108504 +v -0.133246 0.392635 -0.071231 +v -0.133246 0.605416 -0.071231 +v -0.133246 0.392635 0.071231 +v -0.133246 0.605416 0.071231 +v -0.101040 0.392635 0.108504 +v -0.101040 0.605416 0.108504 +v -0.101040 0.605412 0.722241 +v -0.101040 0.392642 0.722241 +v -0.124996 0.586645 1.161225 +v -0.124996 0.586645 -1.161225 +v -0.148339 0.594584 0.722241 +v -0.148339 0.403470 0.722241 +v -0.148339 0.403463 0.108504 +v -0.148339 0.594588 0.108504 +v -0.148339 0.403463 -0.108504 +v -0.148339 0.594588 -0.108504 +v -0.148339 0.403470 -0.722241 +v -0.148339 0.594584 -0.722241 +v -0.101040 2.603477 -1.033087 +v -0.101040 2.403613 -1.126622 +v -0.124987 2.595039 -1.120039 +v -0.101040 2.403613 1.126622 +v -0.101040 2.600861 1.034830 +v -0.124987 2.595039 1.120039 +v -0.101040 2.590124 0.722241 +v -0.101040 2.403611 0.722241 +v -0.101040 2.590129 0.108504 +v -0.101040 2.403606 0.108504 +v -0.133246 2.590129 0.071231 +v -0.133246 2.403606 0.071231 +v -0.133246 2.590129 -0.071231 +v -0.133246 2.403606 -0.071231 +v -0.101040 2.590129 -0.108504 +v -0.101040 2.403606 -0.108504 +v -0.101040 2.403611 -0.722241 +v -0.101040 2.590124 -0.722241 +v -0.124996 2.411551 -1.161633 +v -0.124996 2.411551 1.161633 +v -0.148339 2.579340 -0.108504 +v -0.148339 2.414395 -0.108504 +v -0.148339 2.414400 -0.722241 +v -0.148339 2.579335 -0.722241 +v -0.148339 2.579340 0.108504 +v -0.148339 2.414395 0.108504 +v -0.148339 2.579335 0.722241 +v -0.148339 2.414400 0.722241 +v 0.197647 2.347521 -0.528361 +v 0.197647 2.645470 -0.528361 +v 0.197647 2.347521 -0.647202 +v 0.197647 2.645470 -0.647202 +v 0.226225 2.347521 -0.528361 +v 0.226225 2.645470 -0.528361 +v 0.226225 2.347521 -0.647202 +v 0.226225 2.645470 -0.647202 +v 0.097240 2.347521 -0.528361 +v 0.097240 2.645470 -0.528361 +v 0.097240 2.347521 -0.647202 +v 0.097240 2.645470 -0.647202 +v 0.164155 2.347521 -0.528361 +v 0.164155 2.645470 -0.528361 +v 0.164155 2.347521 -0.647202 +v 0.164155 2.645470 -0.647202 +v 0.203265 2.586435 -0.575212 +v 0.203265 2.612117 -0.575212 +v 0.203265 2.586435 -0.600894 +v 0.203265 2.612117 -0.600894 +v 0.244293 2.612117 -0.600894 +v 0.244293 2.586435 -0.600894 +v 0.244293 2.586435 -0.575212 +v 0.244293 2.612117 -0.575212 +v 0.161929 2.564306 -0.571122 +v 0.161929 2.582345 -0.553083 +v 0.161929 2.616207 -0.553083 +v 0.161929 2.634246 -0.571122 +v 0.161929 2.582345 -0.623023 +v 0.161929 2.564306 -0.604984 +v 0.161929 2.634246 -0.604984 +v 0.161929 2.616207 -0.623023 +v 0.203265 2.616207 -0.623023 +v 0.203265 2.634246 -0.604984 +v 0.203265 2.621491 -0.610268 +v 0.203265 2.564306 -0.604984 +v 0.203265 2.582345 -0.623023 +v 0.203265 2.577062 -0.610268 +v 0.203265 2.582345 -0.553083 +v 0.203265 2.564306 -0.571122 +v 0.203265 2.577062 -0.565838 +v 0.203265 2.634246 -0.571122 +v 0.203265 2.616207 -0.553083 +v 0.203265 2.621491 -0.565838 +v 0.203265 2.384638 -0.575212 +v 0.203265 2.410320 -0.575212 +v 0.203265 2.384638 -0.600894 +v 0.203265 2.410320 -0.600894 +v 0.244293 2.410320 -0.600894 +v 0.244293 2.384638 -0.600894 +v 0.244293 2.384638 -0.575212 +v 0.244293 2.410320 -0.575212 +v 0.161929 2.362509 -0.571122 +v 0.161929 2.380548 -0.553083 +v 0.161929 2.414410 -0.553083 +v 0.161929 2.432449 -0.571122 +v 0.161929 2.380548 -0.623023 +v 0.161929 2.362509 -0.604984 +v 0.161929 2.432449 -0.604984 +v 0.161929 2.414410 -0.623023 +v 0.203265 2.414410 -0.623023 +v 0.203265 2.432449 -0.604984 +v 0.203265 2.419693 -0.610268 +v 0.203265 2.362509 -0.604984 +v 0.203265 2.380548 -0.623023 +v 0.203265 2.375264 -0.610268 +v 0.203265 2.380548 -0.553083 +v 0.203265 2.362509 -0.571122 +v 0.203265 2.375264 -0.565838 +v 0.203265 2.432449 -0.571122 +v 0.203265 2.414410 -0.553083 +v 0.203265 2.419693 -0.565838 +v 0.197647 0.341313 -0.866632 +v 0.197647 0.639262 -0.866632 +v 0.197647 0.341313 -0.985472 +v 0.197647 0.639262 -0.985472 +v 0.226225 0.341313 -0.866632 +v 0.226225 0.639262 -0.866632 +v 0.226225 0.341313 -0.985472 +v 0.226225 0.639262 -0.985472 +v 0.097240 0.341313 -0.866632 +v 0.097240 0.639262 -0.866632 +v 0.097240 0.341313 -0.985472 +v 0.097240 0.639262 -0.985472 +v 0.164155 0.341313 -0.866632 +v 0.164155 0.639262 -0.866632 +v 0.164155 0.341313 -0.985472 +v 0.164155 0.639262 -0.985472 +v 0.203265 0.580227 -0.913483 +v 0.203265 0.605909 -0.913483 +v 0.203265 0.580227 -0.939164 +v 0.203265 0.605909 -0.939164 +v 0.244293 0.605909 -0.939164 +v 0.244293 0.580227 -0.939164 +v 0.244293 0.580227 -0.913483 +v 0.244293 0.605909 -0.913483 +v 0.161929 0.558098 -0.909392 +v 0.161929 0.576137 -0.891353 +v 0.161929 0.609999 -0.891353 +v 0.161929 0.628038 -0.909392 +v 0.161929 0.576137 -0.961294 +v 0.161929 0.558098 -0.943255 +v 0.161929 0.628038 -0.943255 +v 0.161929 0.609999 -0.961294 +v 0.203265 0.609999 -0.961294 +v 0.203265 0.628038 -0.943255 +v 0.203265 0.615283 -0.948538 +v 0.203265 0.558098 -0.943255 +v 0.203265 0.576137 -0.961294 +v 0.203265 0.570854 -0.948538 +v 0.203265 0.576137 -0.891353 +v 0.203265 0.558098 -0.909392 +v 0.203265 0.570854 -0.904109 +v 0.203265 0.628038 -0.909392 +v 0.203265 0.609999 -0.891353 +v 0.203265 0.615283 -0.904109 +v 0.203265 0.378430 -0.913483 +v 0.203265 0.404112 -0.913483 +v 0.203265 0.378430 -0.939164 +v 0.203265 0.404112 -0.939164 +v 0.244293 0.404112 -0.939164 +v 0.244293 0.378430 -0.939164 +v 0.244293 0.378430 -0.913483 +v 0.244293 0.404112 -0.913483 +v 0.161929 0.356301 -0.909392 +v 0.161929 0.374340 -0.891353 +v 0.161929 0.408202 -0.891353 +v 0.161929 0.426241 -0.909392 +v 0.161929 0.374340 -0.961294 +v 0.161929 0.356301 -0.943255 +v 0.161929 0.426241 -0.943255 +v 0.161929 0.408202 -0.961294 +v 0.203265 0.408202 -0.961294 +v 0.203265 0.426241 -0.943255 +v 0.203265 0.413486 -0.948538 +v 0.203265 0.356301 -0.943255 +v 0.203265 0.374340 -0.961294 +v 0.203265 0.369056 -0.948538 +v 0.203265 0.374340 -0.891353 +v 0.203265 0.356301 -0.909392 +v 0.203265 0.369056 -0.904109 +v 0.203265 0.426241 -0.909392 +v 0.203265 0.408202 -0.891353 +v 0.203265 0.413486 -0.904109 +v 0.197647 0.341313 -0.528361 +v 0.197647 0.639262 -0.528361 +v 0.197647 0.341313 -0.647202 +v 0.197647 0.639262 -0.647202 +v 0.226225 0.341313 -0.528361 +v 0.226225 0.639262 -0.528361 +v 0.226225 0.341313 -0.647202 +v 0.226225 0.639262 -0.647202 +v 0.097240 0.341313 -0.528361 +v 0.097240 0.639262 -0.528361 +v 0.097240 0.341313 -0.647202 +v 0.097240 0.639262 -0.647202 +v 0.164155 0.341313 -0.528361 +v 0.164155 0.639262 -0.528361 +v 0.164155 0.341313 -0.647202 +v 0.164155 0.639262 -0.647202 +v 0.203265 0.580227 -0.575212 +v 0.203265 0.605909 -0.575212 +v 0.203265 0.580227 -0.600894 +v 0.203265 0.605909 -0.600894 +v 0.244293 0.605909 -0.600894 +v 0.244293 0.580227 -0.600894 +v 0.244293 0.580227 -0.575212 +v 0.244293 0.605909 -0.575212 +v 0.161929 0.558098 -0.571122 +v 0.161929 0.576137 -0.553083 +v 0.161929 0.609999 -0.553083 +v 0.161929 0.628038 -0.571122 +v 0.161929 0.576137 -0.623023 +v 0.161929 0.558098 -0.604984 +v 0.161929 0.628038 -0.604984 +v 0.161929 0.609999 -0.623023 +v 0.203265 0.609999 -0.623023 +v 0.203265 0.628038 -0.604984 +v 0.203265 0.615283 -0.610268 +v 0.203265 0.558098 -0.604984 +v 0.203265 0.576137 -0.623023 +v 0.203265 0.570854 -0.610268 +v 0.203265 0.576137 -0.553083 +v 0.203265 0.558098 -0.571122 +v 0.203265 0.570854 -0.565839 +v 0.203265 0.628038 -0.571122 +v 0.203265 0.609999 -0.553083 +v 0.203265 0.615283 -0.565839 +v 0.203265 0.378430 -0.575212 +v 0.203265 0.404112 -0.575212 +v 0.203265 0.378430 -0.600894 +v 0.203265 0.404112 -0.600894 +v 0.244293 0.404112 -0.600894 +v 0.244293 0.378430 -0.600894 +v 0.244293 0.378430 -0.575212 +v 0.244293 0.404112 -0.575212 +v 0.161929 0.356301 -0.571122 +v 0.161929 0.374340 -0.553083 +v 0.161929 0.408202 -0.553083 +v 0.161929 0.426241 -0.571122 +v 0.161929 0.374340 -0.623023 +v 0.161929 0.356301 -0.604984 +v 0.161929 0.426241 -0.604984 +v 0.161929 0.408202 -0.623023 +v 0.203265 0.408202 -0.623023 +v 0.203265 0.426241 -0.604984 +v 0.203265 0.413486 -0.610268 +v 0.203265 0.356301 -0.604984 +v 0.203265 0.374340 -0.623023 +v 0.203265 0.369056 -0.610268 +v 0.203265 0.374340 -0.553083 +v 0.203265 0.356301 -0.571122 +v 0.203265 0.369056 -0.565839 +v 0.203265 0.426241 -0.571122 +v 0.203265 0.408202 -0.553083 +v 0.203265 0.413486 -0.565839 +v 0.197647 2.347521 -0.866632 +v 0.197647 2.645470 -0.866632 +v 0.197647 2.347521 -0.985472 +v 0.197647 2.645470 -0.985472 +v 0.226225 2.347521 -0.866632 +v 0.226225 2.645470 -0.866632 +v 0.226225 2.347521 -0.985472 +v 0.226225 2.645470 -0.985472 +v 0.097240 2.347521 -0.866632 +v 0.097240 2.645470 -0.866632 +v 0.097240 2.347521 -0.985472 +v 0.097240 2.645470 -0.985472 +v 0.164155 2.347521 -0.866632 +v 0.164155 2.645470 -0.866632 +v 0.164155 2.347521 -0.985472 +v 0.164155 2.645470 -0.985472 +v 0.203265 2.586436 -0.913483 +v 0.203265 2.612117 -0.913483 +v 0.203265 2.586436 -0.939164 +v 0.203265 2.612117 -0.939164 +v 0.244293 2.612117 -0.939164 +v 0.244293 2.586436 -0.939164 +v 0.244293 2.586436 -0.913483 +v 0.244293 2.612117 -0.913483 +v 0.161929 2.564306 -0.909392 +v 0.161929 2.582345 -0.891353 +v 0.161929 2.616208 -0.891353 +v 0.161929 2.634247 -0.909392 +v 0.161929 2.582345 -0.961294 +v 0.161929 2.564306 -0.943255 +v 0.161929 2.634247 -0.943255 +v 0.161929 2.616208 -0.961294 +v 0.203265 2.616208 -0.961294 +v 0.203265 2.634247 -0.943255 +v 0.203265 2.621491 -0.948538 +v 0.203265 2.564306 -0.943255 +v 0.203265 2.582345 -0.961294 +v 0.203265 2.577062 -0.948538 +v 0.203265 2.582345 -0.891353 +v 0.203265 2.564306 -0.909392 +v 0.203265 2.577062 -0.904109 +v 0.203265 2.634247 -0.909392 +v 0.203265 2.616208 -0.891353 +v 0.203265 2.621491 -0.904109 +v 0.203265 2.384638 -0.913483 +v 0.203265 2.410320 -0.913483 +v 0.203265 2.384638 -0.939164 +v 0.203265 2.410320 -0.939164 +v 0.244293 2.410320 -0.939164 +v 0.244293 2.384638 -0.939164 +v 0.244293 2.384638 -0.913483 +v 0.244293 2.410320 -0.913483 +v 0.161929 2.362509 -0.909392 +v 0.161929 2.380548 -0.891353 +v 0.161929 2.414410 -0.891353 +v 0.161929 2.432449 -0.909392 +v 0.161929 2.380548 -0.961294 +v 0.161929 2.362509 -0.943255 +v 0.161929 2.432449 -0.943255 +v 0.161929 2.414410 -0.961294 +v 0.203265 2.414410 -0.961294 +v 0.203265 2.432449 -0.943255 +v 0.203265 2.419694 -0.948538 +v 0.203265 2.362509 -0.943255 +v 0.203265 2.380548 -0.961294 +v 0.203265 2.375265 -0.948538 +v 0.203265 2.380548 -0.891353 +v 0.203265 2.362509 -0.909392 +v 0.203265 2.375265 -0.904109 +v 0.203265 2.432449 -0.909392 +v 0.203265 2.414410 -0.891353 +v 0.203265 2.419694 -0.904109 +vt 0.511490 0.377541 +vt 0.478344 0.390762 +vt 0.478345 0.377541 +vt 0.194788 0.944062 +vt 0.161643 0.947241 +vt 0.161643 0.944062 +vt 0.194788 0.947241 +vt 0.161643 0.960462 +vt 0.194788 0.960462 +vt 0.161643 0.963641 +vt 0.158463 0.960462 +vt 0.158463 0.947241 +vt 0.197968 0.947241 +vt 0.882134 0.687732 +vt 0.874690 0.654587 +vt 0.882134 0.654587 +vt 0.874690 0.687732 +vt 0.861469 0.654587 +vt 0.861469 0.687732 +vt 0.854025 0.654587 +vt 0.861469 0.647143 +vt 0.874690 0.647143 +vt 0.874690 0.695177 +vt 0.034978 0.968702 +vt 0.034978 0.972469 +vt 0.032517 0.969157 +vt 0.423791 0.822353 +vt 0.419227 0.819496 +vt 0.423791 0.819496 +vt 0.032972 0.979074 +vt 0.029205 0.974476 +vt 0.032972 0.974476 +vt 0.027198 0.972469 +vt 0.022599 0.968702 +vt 0.027198 0.968702 +vt 0.039577 0.972469 +vt 0.039577 0.968702 +vt 0.032517 0.972014 +vt 0.029660 0.972014 +vt 0.029205 0.966695 +vt 0.032972 0.966695 +vt 0.029660 0.969157 +vt 0.416370 0.816639 +vt 0.419227 0.813782 +vt 0.419227 0.816639 +vt 0.423791 0.816639 +vt 0.423791 0.825210 +vt 0.419227 0.822353 +vt 0.423791 0.813782 +vt 0.033559 0.973057 +vt 0.033559 0.968114 +vt 0.028617 0.968114 +vt 0.028617 0.973057 +vt 0.039577 0.965864 +vt 0.034978 0.965864 +vt 0.034978 0.975307 +vt 0.039577 0.975307 +vt 0.027198 0.965864 +vt 0.022599 0.965864 +vt 0.022599 0.975307 +vt 0.027198 0.975307 +vt 0.029205 0.962097 +vt 0.032972 0.962097 +vt 0.701874 0.977962 +vt 0.701874 0.974195 +vt 0.704336 0.977507 +vt 0.689065 0.943870 +vt 0.684500 0.941013 +vt 0.689065 0.941013 +vt 0.703881 0.967590 +vt 0.707648 0.972188 +vt 0.703881 0.972188 +vt 0.709655 0.974195 +vt 0.714253 0.977962 +vt 0.709655 0.977962 +vt 0.697276 0.974195 +vt 0.697276 0.977962 +vt 0.704336 0.974650 +vt 0.707193 0.974650 +vt 0.707648 0.979969 +vt 0.703881 0.979969 +vt 0.707193 0.977507 +vt 0.681643 0.938156 +vt 0.684500 0.935299 +vt 0.684500 0.938156 +vt 0.689065 0.938156 +vt 0.689065 0.946727 +vt 0.684500 0.943870 +vt 0.689065 0.935299 +vt 0.703293 0.973607 +vt 0.703293 0.978550 +vt 0.708236 0.978550 +vt 0.708236 0.973607 +vt 0.697276 0.980800 +vt 0.701874 0.980800 +vt 0.701874 0.971357 +vt 0.697276 0.971357 +vt 0.709655 0.980800 +vt 0.714253 0.980800 +vt 0.714253 0.971357 +vt 0.709655 0.971357 +vt 0.707648 0.984567 +vt 0.703881 0.984567 +vt 0.889793 0.647143 +vt 0.903014 0.680288 +vt 0.889793 0.680288 +vt 0.493260 0.943731 +vt 0.460114 0.946910 +vt 0.460114 0.943731 +vt 0.493260 0.946910 +vt 0.460114 0.960131 +vt 0.493260 0.960131 +vt 0.460114 0.963310 +vt 0.456935 0.960131 +vt 0.456935 0.946910 +vt 0.496439 0.946910 +vt 0.772543 0.890867 +vt 0.805689 0.883423 +vt 0.805689 0.890867 +vt 0.772543 0.883423 +vt 0.805689 0.870202 +vt 0.772543 0.870202 +vt 0.805689 0.862758 +vt 0.813133 0.870202 +vt 0.813133 0.883423 +vt 0.765099 0.883423 +vt 0.408141 0.976041 +vt 0.404374 0.976041 +vt 0.407686 0.973579 +vt 0.867301 0.965358 +vt 0.862737 0.962501 +vt 0.867301 0.962501 +vt 0.397769 0.974034 +vt 0.402367 0.970267 +vt 0.402367 0.974034 +vt 0.404374 0.968260 +vt 0.408141 0.963662 +vt 0.408141 0.968260 +vt 0.404374 0.980639 +vt 0.408141 0.980639 +vt 0.404829 0.973579 +vt 0.404829 0.970722 +vt 0.410148 0.970267 +vt 0.410148 0.974034 +vt 0.407686 0.970722 +vt 0.859880 0.959644 +vt 0.862737 0.956788 +vt 0.862737 0.959644 +vt 0.867301 0.959644 +vt 0.867301 0.968215 +vt 0.862737 0.965358 +vt 0.867301 0.956788 +vt 0.403786 0.974622 +vt 0.408729 0.974622 +vt 0.408729 0.969679 +vt 0.403786 0.969679 +vt 0.410979 0.980639 +vt 0.410979 0.976041 +vt 0.401536 0.976041 +vt 0.401536 0.980639 +vt 0.410979 0.968260 +vt 0.410979 0.963662 +vt 0.401536 0.963662 +vt 0.401536 0.968260 +vt 0.414746 0.970267 +vt 0.414746 0.974034 +vt 0.443840 0.950804 +vt 0.443840 0.954571 +vt 0.441378 0.951259 +vt 0.054658 0.970667 +vt 0.050093 0.967811 +vt 0.054658 0.967811 +vt 0.441833 0.961177 +vt 0.438066 0.956578 +vt 0.441833 0.956578 +vt 0.436059 0.954571 +vt 0.431460 0.950804 +vt 0.436059 0.950804 +vt 0.448438 0.954571 +vt 0.448438 0.950804 +vt 0.441378 0.954116 +vt 0.438521 0.954116 +vt 0.438066 0.948798 +vt 0.441833 0.948798 +vt 0.438521 0.951259 +vt 0.047236 0.964954 +vt 0.050093 0.962097 +vt 0.050093 0.964954 +vt 0.054658 0.964954 +vt 0.054658 0.973525 +vt 0.050093 0.970667 +vt 0.054657 0.962097 +vt 0.442421 0.955159 +vt 0.442421 0.950217 +vt 0.437478 0.950217 +vt 0.437478 0.955159 +vt 0.448438 0.947966 +vt 0.443840 0.947966 +vt 0.443840 0.957409 +vt 0.448438 0.957409 +vt 0.436059 0.947966 +vt 0.431460 0.947966 +vt 0.431461 0.957409 +vt 0.436059 0.957409 +vt 0.438066 0.944199 +vt 0.441833 0.944199 +vt 0.675687 0.855341 +vt 0.688907 0.888487 +vt 0.675687 0.888487 +vt 0.058924 0.934858 +vt 0.025779 0.938038 +vt 0.025779 0.934858 +vt 0.058924 0.938038 +vt 0.025779 0.951258 +vt 0.058924 0.951258 +vt 0.025779 0.954437 +vt 0.022599 0.951258 +vt 0.022599 0.938038 +vt 0.062104 0.938038 +vt 0.861382 0.862758 +vt 0.828236 0.870202 +vt 0.828236 0.862758 +vt 0.861382 0.870202 +vt 0.828236 0.883423 +vt 0.861382 0.883423 +vt 0.828236 0.890867 +vt 0.820792 0.883423 +vt 0.820792 0.870202 +vt 0.868826 0.870202 +vt 0.376465 0.974034 +vt 0.376465 0.970267 +vt 0.378927 0.973579 +vt 0.797157 0.964005 +vt 0.792593 0.961147 +vt 0.797157 0.961147 +vt 0.378472 0.963662 +vt 0.382239 0.968260 +vt 0.378472 0.968260 +vt 0.384246 0.970267 +vt 0.388845 0.974034 +vt 0.384246 0.974034 +vt 0.371867 0.970267 +vt 0.371867 0.974034 +vt 0.378927 0.970722 +vt 0.381784 0.970722 +vt 0.382239 0.976041 +vt 0.378472 0.976041 +vt 0.381784 0.973579 +vt 0.789736 0.958290 +vt 0.792593 0.955434 +vt 0.792593 0.958290 +vt 0.797157 0.958290 +vt 0.797157 0.966861 +vt 0.792593 0.964005 +vt 0.797157 0.955434 +vt 0.377884 0.969679 +vt 0.377884 0.974622 +vt 0.382827 0.974622 +vt 0.382827 0.969679 +vt 0.371867 0.976872 +vt 0.376465 0.976872 +vt 0.376465 0.967429 +vt 0.371867 0.967429 +vt 0.384246 0.976872 +vt 0.388845 0.976872 +vt 0.388844 0.967429 +vt 0.384246 0.967429 +vt 0.382239 0.980639 +vt 0.378472 0.980639 +vt 0.775471 0.967813 +vt 0.771704 0.967813 +vt 0.775016 0.965351 +vt 0.756238 0.968067 +vt 0.751673 0.965210 +vt 0.756238 0.965210 +vt 0.765099 0.965806 +vt 0.769697 0.962039 +vt 0.769697 0.965806 +vt 0.771704 0.960032 +vt 0.775471 0.955434 +vt 0.775471 0.960032 +vt 0.771704 0.972411 +vt 0.775471 0.972411 +vt 0.772159 0.965351 +vt 0.772159 0.962494 +vt 0.777478 0.962039 +vt 0.777478 0.965806 +vt 0.775016 0.962494 +vt 0.748816 0.962353 +vt 0.751673 0.959496 +vt 0.751673 0.962353 +vt 0.756238 0.962353 +vt 0.756238 0.970924 +vt 0.751673 0.968067 +vt 0.756238 0.959496 +vt 0.771116 0.966394 +vt 0.776059 0.966394 +vt 0.776059 0.961451 +vt 0.771116 0.961451 +vt 0.778309 0.972411 +vt 0.778309 0.967813 +vt 0.768866 0.967813 +vt 0.768866 0.972411 +vt 0.778309 0.960032 +vt 0.778309 0.955434 +vt 0.768866 0.955434 +vt 0.768866 0.960032 +vt 0.782076 0.962039 +vt 0.782076 0.965806 +vt 0.512483 0.943731 +vt 0.525704 0.976877 +vt 0.512483 0.976877 +vt 0.074406 0.963605 +vt 0.107552 0.960426 +vt 0.107552 0.963605 +vt 0.074406 0.960426 +vt 0.107552 0.947205 +vt 0.074406 0.947205 +vt 0.107552 0.944026 +vt 0.110731 0.947205 +vt 0.110731 0.960426 +vt 0.071227 0.960426 +vt 0.030043 0.901723 +vt 0.063189 0.894279 +vt 0.063189 0.901723 +vt 0.030043 0.894279 +vt 0.063189 0.881059 +vt 0.030043 0.881059 +vt 0.063189 0.873614 +vt 0.070633 0.881059 +vt 0.070633 0.894279 +vt 0.022599 0.894279 +vt 0.660584 0.966766 +vt 0.656817 0.966766 +vt 0.660129 0.964304 +vt 0.977236 0.397669 +vt 0.972672 0.394812 +vt 0.977236 0.394812 +vt 0.650212 0.964759 +vt 0.654810 0.960992 +vt 0.654810 0.964759 +vt 0.656817 0.958985 +vt 0.660584 0.954387 +vt 0.660584 0.958985 +vt 0.656817 0.971364 +vt 0.660584 0.971364 +vt 0.657272 0.964304 +vt 0.657272 0.961447 +vt 0.662591 0.960992 +vt 0.662591 0.964759 +vt 0.660129 0.961447 +vt 0.969815 0.391955 +vt 0.972672 0.389098 +vt 0.972672 0.391955 +vt 0.977236 0.391955 +vt 0.977236 0.400526 +vt 0.972672 0.397669 +vt 0.977236 0.389098 +vt 0.656229 0.965347 +vt 0.661172 0.965347 +vt 0.661172 0.960404 +vt 0.656229 0.960404 +vt 0.663422 0.971364 +vt 0.663422 0.966766 +vt 0.653979 0.966766 +vt 0.653979 0.971364 +vt 0.663422 0.958985 +vt 0.663422 0.954387 +vt 0.653979 0.954387 +vt 0.653979 0.958985 +vt 0.667189 0.960992 +vt 0.667189 0.964759 +vt 0.352279 0.963111 +vt 0.348512 0.963111 +vt 0.351824 0.960649 +vt 0.558839 0.924580 +vt 0.563403 0.927437 +vt 0.558839 0.927437 +vt 0.341907 0.961105 +vt 0.346505 0.957337 +vt 0.346505 0.961105 +vt 0.348512 0.955331 +vt 0.352279 0.950732 +vt 0.352279 0.955331 +vt 0.348512 0.967710 +vt 0.352279 0.967710 +vt 0.348967 0.960649 +vt 0.348967 0.957793 +vt 0.354286 0.957337 +vt 0.354286 0.961105 +vt 0.351824 0.957793 +vt 0.566260 0.930294 +vt 0.563403 0.933151 +vt 0.563403 0.930294 +vt 0.558839 0.930294 +vt 0.558839 0.921723 +vt 0.563403 0.924580 +vt 0.558839 0.933151 +vt 0.347924 0.961692 +vt 0.352867 0.961692 +vt 0.352867 0.956750 +vt 0.347924 0.956750 +vt 0.355117 0.967710 +vt 0.355117 0.963111 +vt 0.345674 0.963111 +vt 0.345674 0.967710 +vt 0.355117 0.955331 +vt 0.355117 0.950732 +vt 0.345674 0.950732 +vt 0.345674 0.955331 +vt 0.358885 0.957337 +vt 0.358885 0.961105 +vt 0.511490 0.390762 +vt 0.194788 0.963641 +vt 0.197968 0.960462 +vt 0.854025 0.687732 +vt 0.861469 0.695177 +vt 0.029205 0.979074 +vt 0.022599 0.972469 +vt 0.416370 0.813782 +vt 0.419227 0.825210 +vt 0.707648 0.967590 +vt 0.714253 0.974195 +vt 0.681643 0.935299 +vt 0.684500 0.946727 +vt 0.903014 0.647143 +vt 0.493260 0.963310 +vt 0.496439 0.960131 +vt 0.772543 0.862758 +vt 0.765099 0.870202 +vt 0.397769 0.970267 +vt 0.404374 0.963662 +vt 0.859880 0.956788 +vt 0.862737 0.968215 +vt 0.438066 0.961177 +vt 0.431460 0.954571 +vt 0.047236 0.962097 +vt 0.050093 0.973525 +vt 0.688907 0.855341 +vt 0.058924 0.954437 +vt 0.062104 0.951258 +vt 0.861382 0.890867 +vt 0.868826 0.883423 +vt 0.382239 0.963662 +vt 0.388844 0.970267 +vt 0.789736 0.955434 +vt 0.792593 0.966861 +vt 0.765099 0.962039 +vt 0.771704 0.955434 +vt 0.748816 0.959496 +vt 0.751673 0.970924 +vt 0.525704 0.943731 +vt 0.074406 0.944026 +vt 0.071227 0.947205 +vt 0.030043 0.873614 +vt 0.022599 0.881059 +vt 0.650212 0.960992 +vt 0.656817 0.954387 +vt 0.969815 0.389098 +vt 0.972672 0.400526 +vt 0.341907 0.957337 +vt 0.348512 0.950732 +vt 0.566260 0.933151 +vt 0.563403 0.921723 +vt 0.962155 0.498815 +vt 0.946315 0.483530 +vt 0.951470 0.482388 +vt 0.292551 0.908723 +vt 0.297329 0.864080 +vt 0.297329 0.909300 +vt 0.702534 0.910123 +vt 0.698853 0.936428 +vt 0.697276 0.909630 +vt 0.377124 0.887972 +vt 0.384948 0.956002 +vt 0.371867 0.888476 +vt 0.373391 0.861674 +vt 0.378558 0.862768 +vt 0.095346 0.841810 +vt 0.078293 0.866016 +vt 0.079778 0.831435 +vt 0.411927 0.362717 +vt 0.436133 0.345664 +vt 0.436133 0.369882 +vt 0.697276 0.721157 +vt 0.705975 0.766143 +vt 0.697276 0.766143 +vt 0.697277 0.834419 +vt 0.705975 0.834419 +vt 0.574383 0.786681 +vt 0.621341 0.717354 +vt 0.621341 0.786681 +vt 0.180764 0.899749 +vt 0.165628 0.923956 +vt 0.158463 0.899749 +vt 0.140691 0.868091 +vt 0.125555 0.843884 +vt 0.140691 0.831438 +vt 0.861720 0.571207 +vt 0.854025 0.526267 +vt 0.861720 0.524250 +vt 0.604921 0.904982 +vt 0.601436 0.878650 +vt 0.606591 0.879793 +vt 0.612106 0.973083 +vt 0.599659 0.905436 +vt 0.949800 0.457198 +vt 0.944539 0.456744 +vt 0.140691 0.936367 +vt 0.118390 0.868091 +vt 0.478418 0.836683 +vt 0.546694 0.828988 +vt 0.546694 0.836683 +vt 0.854026 0.639483 +vt 0.854025 0.571207 +vt 0.710224 0.842078 +vt 0.715387 0.843068 +vt 0.956985 0.389098 +vt 0.962155 0.390049 +vt 0.929895 0.931209 +vt 0.924414 0.939908 +vt 0.924414 0.931077 +vt 0.701542 0.386315 +vt 0.701542 0.391795 +vt 0.696582 0.388057 +vt 0.949162 0.319186 +vt 0.944539 0.339181 +vt 0.944539 0.323332 +vt 0.929894 0.947567 +vt 0.924414 0.969867 +vt 0.924414 0.947567 +vt 0.903086 0.747560 +vt 0.908566 0.739865 +vt 0.908566 0.747692 +vt 0.676304 0.386315 +vt 0.676304 0.392525 +vt 0.671927 0.389227 +vt 0.688923 0.391795 +vt 0.683963 0.388057 +vt 0.688923 0.386315 +vt 0.739610 0.391572 +vt 0.734440 0.388131 +vt 0.739610 0.386315 +vt 0.753440 0.931842 +vt 0.748816 0.951837 +vt 0.748816 0.927696 +vt 0.906363 0.639483 +vt 0.906363 0.571207 +vt 0.333757 0.943873 +vt 0.309540 0.959721 +vt 0.309540 0.943873 +vt 0.333757 0.938393 +vt 0.309540 0.938393 +vt 0.504409 0.345664 +vt 0.504409 0.369882 +vt 0.750618 0.834419 +vt 0.903086 0.947567 +vt 0.908566 0.969867 +vt 0.903086 0.969867 +vt 0.689617 0.717354 +vt 0.689617 0.786681 +vt 0.977306 0.524250 +vt 0.985809 0.571207 +vt 0.977306 0.571207 +vt 0.908566 0.804721 +vt 0.903086 0.874048 +vt 0.903086 0.804721 +vt 0.929895 0.886566 +vt 0.924415 0.886566 +vt 0.834425 0.786823 +vt 0.765099 0.739865 +vt 0.834425 0.739865 +vt 0.431460 0.881326 +vt 0.478418 0.881326 +vt 0.924415 0.874048 +vt 0.908566 0.874048 +vt 0.903086 0.886566 +vt 0.908566 0.931077 +vt 0.903086 0.931209 +vt 0.924415 0.792203 +vt 0.908566 0.792203 +vt 0.834425 0.855099 +vt 0.765099 0.786823 +vt 0.908566 0.886566 +vt 0.850784 0.808141 +vt 0.895427 0.855099 +vt 0.850784 0.855099 +vt 0.416370 0.599271 +vt 0.421147 0.529944 +vt 0.421147 0.599271 +vt 0.590697 0.386315 +vt 0.635340 0.391092 +vt 0.590119 0.391092 +vt 0.906363 0.524250 +vt 0.705975 0.719185 +vt 0.750618 0.766143 +vt 0.546694 0.881326 +vt 0.903086 0.792203 +vt 0.929895 0.804721 +vt 0.929895 0.874048 +vt 0.850784 0.739865 +vt 0.895427 0.808141 +vt 0.929895 0.792203 +vt 0.924415 0.747692 +vt 0.929895 0.747560 +vt 0.560047 0.823690 +vt 0.564825 0.868333 +vt 0.560047 0.868333 +vt 0.470685 0.382319 +vt 0.401359 0.377541 +vt 0.470685 0.377541 +vt 0.960886 0.173680 +vt 0.964770 0.241956 +vt 0.960886 0.241956 +vt 0.960886 0.334373 +vt 0.964770 0.381331 +vt 0.960886 0.381331 +vt 0.989692 0.778858 +vt 0.985809 0.731901 +vt 0.989692 0.731901 +vt 0.924415 0.804721 +vt 0.985809 0.663625 +vt 0.989692 0.663625 +vt 0.989692 0.571207 +vt 0.985809 0.524250 +vt 0.989692 0.524250 +vt 0.912276 0.191579 +vt 0.896428 0.260905 +vt 0.896428 0.191579 +vt 0.118390 0.965355 +vt 0.140690 0.970835 +vt 0.118390 0.970835 +vt 0.560047 0.770811 +vt 0.564825 0.815454 +vt 0.560047 0.815454 +vt 0.964770 0.334373 +vt 0.973272 0.381331 +vt 0.977306 0.731901 +vt 0.985809 0.778858 +vt 0.977306 0.778858 +vt 0.964770 0.126722 +vt 0.973272 0.173680 +vt 0.964770 0.173680 +vt 0.977306 0.663625 +vt 0.973272 0.241956 +vt 0.985809 0.639483 +vt 0.977306 0.639483 +vt 0.964770 0.266097 +vt 0.973272 0.334373 +vt 0.973423 0.571207 +vt 0.973423 0.639483 +vt 0.960886 0.126722 +vt 0.977156 0.241956 +vt 0.977156 0.173680 +vt 0.989692 0.639483 +vt 0.977156 0.381331 +vt 0.977156 0.334373 +vt 0.960886 0.266097 +vt 0.973272 0.126722 +vt 0.977156 0.126722 +vt 0.973272 0.266097 +vt 0.973423 0.524250 +vt 0.973423 0.663625 +vt 0.973423 0.731901 +vt 0.973423 0.778858 +vt 0.977156 0.266097 +vt 0.937554 0.874470 +vt 0.941182 0.873085 +vt 0.941182 0.877578 +vt 0.900865 0.689333 +vt 0.904493 0.687948 +vt 0.904493 0.692441 +vt 0.937554 0.900498 +vt 0.941182 0.897390 +vt 0.941182 0.901883 +vt 0.889793 0.689802 +vt 0.893206 0.687948 +vt 0.893206 0.692725 +vt 0.974157 0.408185 +vt 0.973894 0.412060 +vt 0.969815 0.410177 +vt 0.870080 0.728312 +vt 0.870080 0.732196 +vt 0.865882 0.729914 +vt 0.937554 0.886623 +vt 0.941182 0.885237 +vt 0.941182 0.889731 +vt 0.862539 0.389233 +vt 0.862539 0.393117 +vt 0.858341 0.390835 +vt 0.937554 0.741874 +vt 0.941573 0.752384 +vt 0.937554 0.750376 +vt 0.974157 0.420558 +vt 0.937554 0.831087 +vt 0.941573 0.820577 +vt 0.941573 0.833096 +vt 0.937554 0.790731 +vt 0.941573 0.780221 +vt 0.941573 0.792740 +vt 0.180764 0.831473 +vt 0.158464 0.831473 +vt 0.908566 0.947567 +vt 0.924415 0.739865 +vt 0.929895 0.739865 +vt 0.617276 0.863365 +vt 0.615741 0.855341 +vt 0.974840 0.486710 +vt 0.969815 0.494974 +vt 0.970038 0.487022 +vt 0.292551 0.918134 +vt 0.297576 0.926398 +vt 0.292774 0.926086 +vt 0.118889 0.775223 +vt 0.123843 0.706772 +vt 0.124265 0.775055 +vt 0.756046 0.920036 +vt 0.748816 0.898762 +vt 0.756046 0.894958 +vt 0.150421 0.614029 +vt 0.145357 0.682370 +vt 0.145048 0.614189 +vt 0.148468 0.577451 +vt 0.145067 0.569966 +vt 0.433477 0.828988 +vt 0.478418 0.828988 +vt 0.123824 0.682440 +vt 0.124085 0.614116 +vt 0.145233 0.774949 +vt 0.145374 0.706709 +vt 0.145361 0.819164 +vt 0.124627 0.565415 +vt 0.121057 0.569182 +vt 0.118719 0.613964 +vt 0.148744 0.811669 +vt 0.150597 0.775094 +vt 0.150804 0.706823 +vt 0.118390 0.682322 +vt 0.121349 0.820020 +vt 0.124930 0.823778 +vt 0.121773 0.702573 +vt 0.147427 0.686567 +vt 0.842086 0.739865 +vt 0.842085 0.808141 +vt 0.102511 0.866016 +vt 0.078293 0.934292 +vt 0.309540 0.965201 +vt 0.333757 0.959721 +vt 0.333757 0.965201 +vt 0.908566 0.939908 +vt 0.903086 0.939908 +vt 0.390110 0.847611 +vt 0.387329 0.838144 +vt 0.715387 0.950181 +vt 0.704017 0.935324 +vt 0.969815 0.504122 +vt 0.974617 0.513041 +vt 0.969816 0.513041 +vt 0.436262 0.968836 +vt 0.431460 0.977756 +vt 0.431461 0.968836 +vt 0.163923 0.682368 +vt 0.182432 0.706700 +vt 0.163904 0.706645 +vt 0.161863 0.686545 +vt 0.159554 0.579292 +vt 0.164151 0.614096 +vt 0.158785 0.614004 +vt 0.182420 0.682417 +vt 0.184482 0.686608 +vt 0.158622 0.775163 +vt 0.164011 0.775077 +vt 0.842085 0.853127 +vt 0.182190 0.775035 +vt 0.182308 0.614138 +vt 0.162601 0.569894 +vt 0.183172 0.565415 +vt 0.162456 0.819349 +vt 0.187684 0.614037 +vt 0.186007 0.820003 +vt 0.187559 0.775139 +vt 0.187859 0.706817 +vt 0.012567 0.964099 +vt 0.003830 0.944483 +vt 0.012567 0.939896 +vt 0.158507 0.682251 +vt 0.012607 0.907688 +vt 0.003830 0.927287 +vt 0.007897 0.906755 +vt 0.159300 0.809760 +vt 0.186122 0.569220 +vt 0.896428 0.317934 +vt 0.912276 0.273424 +vt 0.912276 0.317934 +vt 0.313424 0.704790 +vt 0.321926 0.680648 +vt 0.321926 0.704790 +vt 0.576159 0.949773 +vt 0.579645 0.923442 +vt 0.581315 0.948631 +vt 0.890948 0.117046 +vt 0.898643 0.072106 +vt 0.898643 0.119063 +vt 0.301881 0.633691 +vt 0.232554 0.680649 +vt 0.232554 0.633691 +vt 0.626712 0.878650 +vt 0.642552 0.863365 +vt 0.631868 0.879792 +vt 0.728304 0.891885 +vt 0.724624 0.865580 +vt 0.729788 0.866684 +vt 0.240249 0.858158 +vt 0.284892 0.811201 +vt 0.284892 0.858158 +vt 0.081500 0.569163 +vt 0.084333 0.614085 +vt 0.078962 0.613908 +vt 0.896428 0.134549 +vt 0.912276 0.126722 +vt 0.912276 0.134549 +vt 0.896428 0.179060 +vt 0.912276 0.179060 +vt 0.309540 0.862457 +vt 0.326593 0.838251 +vt 0.333758 0.862457 +vt 0.202683 0.923955 +vt 0.217819 0.899749 +vt 0.217819 0.936402 +vt 0.592000 0.965058 +vt 0.590465 0.973082 +vt 0.364208 0.874797 +vt 0.349071 0.850590 +vt 0.364208 0.838144 +vt 0.399293 0.932471 +vt 0.403026 0.906173 +vt 0.404460 0.931377 +vt 0.105273 0.706731 +vt 0.105312 0.682391 +vt 0.107368 0.686578 +vt 0.689617 0.847682 +vt 0.621341 0.803039 +vt 0.689617 0.803039 +vt 0.219353 0.614177 +vt 0.200968 0.682546 +vt 0.201178 0.614191 +vt 0.917756 0.260905 +vt 0.917756 0.191579 +vt 0.301881 0.688308 +vt 0.232554 0.735265 +vt 0.232554 0.688308 +vt 0.689617 0.794341 +vt 0.621341 0.794340 +vt 0.104848 0.774990 +vt 0.083730 0.706630 +vt 0.937554 0.862318 +vt 0.941182 0.860933 +vt 0.941182 0.865426 +vt 0.961879 0.778858 +vt 0.965763 0.731901 +vt 0.965763 0.778858 +vt 0.576354 0.794340 +vt 0.630197 0.904981 +vt 0.416370 0.806123 +vt 0.421147 0.761480 +vt 0.421147 0.806123 +vt 0.546649 0.369882 +vt 0.614925 0.345664 +vt 0.614925 0.369882 +vt 0.969815 0.470786 +vt 0.974840 0.479050 +vt 0.970038 0.478738 +vt 0.081713 0.686492 +vt 0.083790 0.682300 +vt 0.105279 0.614229 +vt 0.108851 0.577554 +vt 0.110638 0.614094 +vt 0.200938 0.706829 +vt 0.195717 0.775183 +vt 0.195523 0.706937 +vt 0.862724 0.448315 +vt 0.854026 0.516591 +vt 0.854025 0.448315 +vt 0.554691 0.967948 +vt 0.560171 0.943731 +vt 0.560171 0.967948 +vt 0.854025 0.403329 +vt 0.232554 0.926434 +vt 0.240249 0.926434 +vt 0.558839 0.910259 +vt 0.566068 0.888985 +vt 0.566068 0.914064 +vt 0.586830 0.855341 +vt 0.592000 0.856293 +vt 0.637382 0.973082 +vt 0.642552 0.972131 +vt 0.416012 0.946534 +vt 0.413231 0.956002 +vt 0.224624 0.775254 +vt 0.219458 0.706797 +vt 0.224895 0.706914 +vt 0.714161 0.391795 +vt 0.709202 0.390052 +vt 0.714161 0.386315 +vt 0.110226 0.775160 +vt 0.110731 0.706859 +vt 0.195518 0.899749 +vt 0.217819 0.831473 +vt 0.917756 0.273424 +vt 0.917756 0.318066 +vt 0.953377 0.571207 +vt 0.949494 0.639483 +vt 0.949494 0.571207 +vt 0.313424 0.773066 +vt 0.309540 0.820023 +vt 0.309540 0.773066 +vt 0.012607 0.898163 +vt 0.003830 0.878565 +vt 0.012607 0.873614 +vt 0.313424 0.565415 +vt 0.309540 0.612372 +vt 0.309540 0.565415 +vt 0.321926 0.773066 +vt 0.325810 0.704790 +vt 0.325810 0.773066 +vt 0.838696 0.345664 +vt 0.838696 0.350441 +vt 0.835284 0.347518 +vt 0.953377 0.639483 +vt 0.961879 0.571207 +vt 0.961879 0.639483 +vt 0.313424 0.612372 +vt 0.309540 0.680648 +vt 0.850682 0.393117 +vt 0.846484 0.391514 +vt 0.850682 0.389233 +vt 0.943286 0.003830 +vt 0.943286 0.072106 +vt 0.974157 0.444854 +vt 0.969815 0.442862 +vt 0.973894 0.440979 +vt 0.313424 0.680648 +vt 0.321926 0.612372 +vt 0.621341 0.847682 +vt 0.574383 0.803039 +vt 0.953377 0.663625 +vt 0.961879 0.663625 +vt 0.907367 0.401357 +vt 0.862724 0.401357 +vt 0.416370 0.606930 +vt 0.421147 0.676257 +vt 0.416370 0.676257 +vt 0.949162 0.375128 +vt 0.944539 0.355133 +vt 0.949162 0.350987 +vt 0.953377 0.778858 +vt 0.961879 0.731901 +vt 0.321926 0.820023 +vt 0.325810 0.820023 +vt 0.917756 0.134417 +vt 0.917756 0.126722 +vt 0.965763 0.639483 +vt 0.858223 0.732196 +vt 0.854025 0.729914 +vt 0.858223 0.728312 +vt 0.313424 0.820023 +vt 0.941573 0.760043 +vt 0.937554 0.770554 +vt 0.937554 0.762051 +vt 0.943286 0.119063 +vt 0.309540 0.704790 +vt 0.140690 0.944026 +vt 0.118390 0.949506 +vt 0.118390 0.944026 +vt 0.965763 0.663625 +vt 0.364207 0.943073 +vt 0.341907 0.874797 +vt 0.325810 0.612372 +vt 0.325810 0.680648 +vt 0.721821 0.388057 +vt 0.726781 0.386315 +vt 0.726781 0.391795 +vt 0.890948 0.179060 +vt 0.890948 0.134417 +vt 0.953377 0.731901 +vt 0.416370 0.683917 +vt 0.421147 0.753243 +vt 0.416370 0.753243 +vt 0.197431 0.569219 +vt 0.195796 0.614081 +vt 0.735994 0.959930 +vt 0.741157 0.958941 +vt 0.688907 0.916141 +vt 0.684284 0.896147 +vt 0.688907 0.900293 +vt 0.890948 0.003830 +vt 0.898643 0.003830 +vt 0.890948 0.318066 +vt 0.896428 0.326765 +vt 0.890948 0.326765 +vt 0.859880 0.944541 +vt 0.868617 0.924925 +vt 0.868617 0.949128 +vt 0.941573 0.800399 +vt 0.937554 0.810909 +vt 0.937554 0.802407 +vt 0.301881 0.565415 +vt 0.232554 0.565415 +vt 0.554691 0.943731 +vt 0.538843 0.967948 +vt 0.538843 0.943731 +vt 0.140690 0.965355 +vt 0.140690 0.949506 +vt 0.965763 0.571207 +vt 0.284892 0.926434 +vt 0.890948 0.191579 +vt 0.890948 0.260905 +vt 0.105485 0.570061 +vt 0.890948 0.273424 +vt 0.747269 0.388131 +vt 0.752440 0.386315 +vt 0.752440 0.391572 +vt 0.912276 0.260905 +vt 0.560047 0.717931 +vt 0.564825 0.762574 +vt 0.560047 0.762574 +vt 0.961879 0.524250 +vt 0.835284 0.361023 +vt 0.838696 0.358101 +vt 0.838696 0.362878 +vt 0.533363 0.967948 +vt 0.533363 0.943731 +vt 0.104784 0.819259 +vt 0.083864 0.775023 +vt 0.664268 0.392525 +vt 0.659891 0.389612 +vt 0.664268 0.386315 +vt 0.941573 0.840755 +vt 0.937554 0.851265 +vt 0.937554 0.842763 +vt 0.917756 0.179060 +vt 0.953377 0.524250 +vt 0.949494 0.524250 +vt 0.907367 0.448315 +vt 0.862724 0.516591 +vt 0.896428 0.273424 +vt 0.937554 0.912650 +vt 0.941182 0.909542 +vt 0.941182 0.914035 +vt 0.974157 0.432481 +vt 0.219475 0.682519 +vt 0.221529 0.686702 +vt 0.912276 0.326765 +vt 0.080747 0.819998 +vt 0.078491 0.775165 +vt 0.917756 0.326765 +vt 0.232554 0.813217 +vt 0.240249 0.811200 +vt 0.741157 0.851828 +vt 0.652232 0.391117 +vt 0.643313 0.386315 +vt 0.652232 0.386315 +vt 0.448724 0.978069 +vt 0.443922 0.969150 +vt 0.448724 0.968836 +vt 0.198886 0.702648 +vt 0.223890 0.809813 +vt 0.219241 0.775160 +vt 0.220975 0.569932 +vt 0.200390 0.565415 +vt 0.195518 0.682427 +vt 0.321926 0.565415 +vt 0.301881 0.735265 +vt 0.232554 0.803541 +vt 0.297329 0.811200 +vt 0.292551 0.855843 +vt 0.292551 0.811200 +vt 0.748817 0.842655 +vt 0.753594 0.887298 +vt 0.748816 0.887298 +vt 0.224010 0.579344 +vt 0.224725 0.614094 +vt 0.110731 0.682286 +vt 0.201081 0.775087 +vt 0.197195 0.820002 +vt 0.974840 0.452513 +vt 0.969815 0.460777 +vt 0.970038 0.452825 +vt 0.410851 0.838144 +vt 0.416012 0.839143 +vt 0.949494 0.778858 +vt 0.949494 0.731901 +vt 0.949494 0.663625 +vt 0.309540 0.930733 +vt 0.333758 0.930733 +vt 0.108202 0.811773 +vt 0.965763 0.524250 +vt 0.325810 0.565415 +vt 0.522443 0.362717 +vt 0.546649 0.345664 +vt 0.078342 0.682167 +vt 0.078293 0.706739 +vt 0.835284 0.373460 +vt 0.838696 0.370537 +vt 0.838696 0.375315 +vt 0.896428 0.126722 +vt 0.890948 0.126722 +vt 0.224895 0.682411 +vt 0.220721 0.819387 +vt 0.200139 0.823813 +vt 0.249890 0.529944 +vt 0.181109 0.557756 +vt 0.181109 0.529944 +vt 0.925415 0.126722 +vt 0.953227 0.171943 +vt 0.925415 0.171943 +vt 0.953227 0.184461 +vt 0.925415 0.184461 +vt 0.953227 0.253788 +vt 0.925415 0.253788 +vt 0.088187 0.529944 +vt 0.061342 0.557756 +vt 0.061342 0.529944 +vt 0.033993 0.557754 +vt 0.033993 0.529946 +vt 0.914023 0.581989 +vt 0.941834 0.651315 +vt 0.914023 0.651315 +vt 0.914023 0.569470 +vt 0.941834 0.581989 +vt 0.811014 0.013269 +vt 0.811013 0.003830 +vt 0.838824 0.013269 +vt 0.156968 0.557756 +vt 0.156968 0.529944 +vt 0.088187 0.557756 +vt 0.838825 0.181109 +vt 0.811013 0.156968 +vt 0.838825 0.156968 +vt 0.838823 0.304084 +vt 0.811013 0.276736 +vt 0.838825 0.276736 +vt 0.838825 0.249890 +vt 0.811013 0.181109 +vt 0.811013 0.249891 +vt 0.013063 0.557755 +vt 0.003830 0.557756 +vt 0.013063 0.529945 +vt 0.914023 0.524250 +vt 0.941834 0.569470 +vt 0.838825 0.061342 +vt 0.811015 0.033993 +vt 0.838823 0.033993 +vt 0.325014 0.557755 +vt 0.304084 0.557754 +vt 0.325014 0.529945 +vt 0.304084 0.529946 +vt 0.276735 0.557756 +vt 0.276735 0.529944 +vt 0.941834 0.663834 +vt 0.914023 0.663834 +vt 0.953227 0.266306 +vt 0.925415 0.266306 +vt 0.953227 0.311527 +vt 0.925415 0.311527 +vt 0.811014 0.324809 +vt 0.811015 0.304084 +vt 0.838824 0.324809 +vt 0.941834 0.709054 +vt 0.914023 0.709054 +vt 0.838825 0.088187 +vt 0.811013 0.061342 +vt 0.811013 0.088187 +vt 0.249890 0.557756 +vt 0.960620 0.506839 +vt 0.292551 0.864080 +vt 0.390110 0.955002 +vt 0.401359 0.346858 +vt 0.574383 0.717354 +vt 0.180764 0.936403 +vt 0.617276 0.972131 +vt 0.118391 0.936367 +vt 0.861720 0.639483 +vt 0.929895 0.939908 +vt 0.949162 0.343327 +vt 0.929894 0.969867 +vt 0.903086 0.739865 +vt 0.753440 0.947690 +vt 0.431460 0.836683 +vt 0.765099 0.855099 +vt 0.416370 0.529944 +vt 0.635340 0.386315 +vt 0.750618 0.719186 +vt 0.895427 0.739865 +vt 0.564825 0.823113 +vt 0.401359 0.382319 +vt 0.564825 0.770234 +vt 0.941573 0.739865 +vt 0.970202 0.422690 +vt 0.937554 0.822585 +vt 0.937554 0.782229 +vt 0.974840 0.496149 +vt 0.297576 0.916959 +vt 0.118391 0.706895 +vt 0.750927 0.919379 +vt 0.150804 0.682252 +vt 0.121754 0.686636 +vt 0.147444 0.702513 +vt 0.102511 0.934292 +vt 0.712839 0.959930 +vt 0.974617 0.503808 +vt 0.436262 0.978069 +vt 0.158463 0.706753 +vt 0.161839 0.702446 +vt 0.184497 0.702510 +vt 0.187859 0.682307 +vt 0.183054 0.823814 +vt 0.007855 0.965022 +vt 0.012607 0.932237 +vt 0.574383 0.922987 +vt 0.890948 0.072106 +vt 0.301881 0.680649 +vt 0.641017 0.855341 +vt 0.723046 0.892378 +vt 0.085084 0.565415 +vt 0.310734 0.827683 +vt 0.397769 0.905669 +vt 0.107356 0.702525 +vt 0.624936 0.905436 +vt 0.416370 0.760902 +vt 0.974840 0.469611 +vt 0.081667 0.702429 +vt 0.232554 0.858158 +vt 0.560950 0.889642 +vt 0.195519 0.831472 +vt 0.007897 0.899096 +vt 0.574383 0.847682 +vt 0.421147 0.606930 +vt 0.944539 0.370981 +vt 0.941573 0.772562 +vt 0.341907 0.943073 +vt 0.421147 0.683917 +vt 0.684284 0.920288 +vt 0.863905 0.924002 +vt 0.941573 0.812918 +vt 0.564825 0.717354 +vt 0.084313 0.823776 +vt 0.941573 0.853273 +vt 0.907367 0.516591 +vt 0.970202 0.430349 +vt 0.221528 0.702603 +vt 0.738610 0.842078 +vt 0.642999 0.391117 +vt 0.443923 0.978069 +vt 0.198893 0.686746 +vt 0.301881 0.803541 +vt 0.297329 0.856421 +vt 0.753594 0.842078 +vt 0.974840 0.461952 +vt 0.512068 0.347149 +vt 0.953227 0.126722 +vt 0.838825 0.003830 +vt 0.003830 0.529944 +vt 0.941834 0.524250 +vt 0.334248 0.529944 +vt 0.334248 0.557756 +vt 0.838825 0.334248 +vt 0.811013 0.334248 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.8722 0.3210 -0.3692 +vn 0.8648 0.4236 -0.2696 +vn 0.8609 0.4168 -0.2918 +vn 0.8326 0.0701 -0.5495 +vn 0.8299 0.0000 -0.5579 +vn 0.8355 0.0676 -0.5453 +vn 0.8632 -0.4995 0.0739 +vn 0.8725 -0.4038 0.2752 +vn 0.8632 -0.4998 0.0712 +vn 0.8632 -0.4995 -0.0739 +vn 0.8619 -0.5070 0.0000 +vn 0.8632 -0.4998 -0.0712 +vn 0.8725 -0.4037 -0.2752 +vn 0.8580 -0.3995 -0.3228 +vn 0.8632 0.4995 0.0739 +vn 0.8648 0.4236 0.2696 +vn 0.8609 0.4168 0.2918 +vn 0.8619 0.5070 0.0000 +vn 0.8632 0.4998 0.0712 +vn 0.8632 0.4995 -0.0739 +vn 0.8632 0.4998 -0.0712 +vn 0.7567 0.0000 -0.6538 +vn 0.7439 -0.1827 0.6428 +vn 0.7477 -0.1538 0.6460 +vn 0.6913 -0.4066 0.5973 +vn 0.9801 -0.1984 0.0000 +vn 0.9930 -0.1185 0.0000 +vn 0.7567 0.0000 0.6538 +vn 0.7477 0.1538 0.6460 +vn 0.6913 0.4066 0.5973 +vn 0.7439 0.1827 0.6428 +vn 0.7477 0.1538 -0.6460 +vn 0.6913 0.4066 -0.5973 +vn 0.7439 0.1827 -0.6428 +vn 0.6913 -0.4066 -0.5973 +vn 0.7477 -0.1538 -0.6460 +vn 0.7439 -0.1827 -0.6428 +vn 0.9930 0.1185 0.0000 +vn 0.9801 0.1984 0.0000 +vn 0.9957 0.0000 -0.0928 +vn 0.8324 -0.0604 0.5508 +vn 0.8299 0.0000 0.5579 +vn 0.8325 -0.0626 0.5505 +vn 0.8324 -0.0604 -0.5508 +vn 0.5171 0.8559 0.0000 +vn 0.5116 0.8469 0.1446 +vn 0.5123 0.8481 0.1351 +vn 0.5123 0.8481 -0.1351 +vn -0.7477 0.1538 -0.6460 +vn -0.7567 0.0000 -0.6538 +vn -0.7439 0.1827 -0.6428 +vn 0.8326 0.0701 0.5495 +vn 0.9957 0.0000 0.0928 +vn 0.5171 -0.8559 0.0000 +vn 0.5123 -0.8481 0.1351 +vn 0.5116 -0.8469 -0.1446 +vn 0.5123 -0.8481 -0.1351 +vn 0.4884 0.8085 0.3283 +vn 0.4884 -0.8085 0.3283 +vn 0.5116 -0.8469 0.1446 +vn 0.4884 -0.8085 -0.3283 +vn 0.5116 0.8469 -0.1446 +vn 0.4884 0.8085 -0.3283 +vn 0.9865 0.0000 0.1639 +vn 0.9865 0.0000 -0.1639 +vn 0.8722 0.3210 0.3692 +vn 0.8751 0.3187 0.3642 +vn 0.8430 0.1242 -0.5234 +vn 0.8430 0.1242 0.5234 +vn 0.8355 0.0676 0.5453 +vn 0.2232 0.9748 -0.0000 +vn 0.2779 0.9581 -0.0692 +vn 0.2324 0.9726 -0.0011 +vn -0.8691 -0.1186 -0.4803 +vn -0.9219 -0.1215 -0.3680 +vn -0.9296 -0.1218 -0.3478 +vn 0.2231 -0.9748 0.0000 +vn 0.2779 -0.9581 0.0692 +vn 0.2284 -0.9736 0.0008 +vn 0.3872 -0.9217 0.0253 +vn 0.3960 -0.9179 0.0267 +vn 0.9996 0.0000 0.0293 +vn 0.9996 -0.0016 0.0284 +vn 0.9996 0.0000 -0.0293 +vn 0.9985 -0.0090 -0.0543 +vn 0.9996 -0.0016 -0.0284 +vn 0.9985 -0.0090 0.0543 +vn 0.9985 -0.0120 0.0529 +vn 0.5589 0.8281 0.0432 +vn 0.2324 0.9726 0.0011 +vn 0.3872 -0.9217 -0.0253 +vn 0.2284 -0.9736 -0.0008 +vn 0.2779 -0.9581 -0.0692 +vn 0.2226 -0.9725 -0.0683 +vn 0.2226 0.9725 0.0683 +vn 0.2779 0.9581 0.0692 +vn 0.5589 0.8281 -0.0432 +vn 0.5742 0.8175 -0.0453 +vn 0.4856 0.8723 -0.0568 +vn 0.4856 -0.8723 0.0568 +vn 0.9214 -0.2503 -0.2971 +vn 0.9294 -0.2431 -0.2778 +vn 0.9206 -0.2516 0.2987 +vn 0.8580 -0.3995 0.3228 +vn 0.8318 -0.1227 0.5413 +vn 0.8318 -0.1227 -0.5413 +vn 0.4844 0.8730 0.0566 +vn 0.2769 0.9584 0.0690 +vn 0.2769 0.9584 -0.0690 +vn 0.2981 0.9543 -0.0206 +vn 0.2249 0.9743 -0.0160 +vn 0.2223 0.9748 -0.0168 +vn 0.2769 -0.9584 -0.0690 +vn 0.2769 -0.9584 0.0690 +vn 0.4844 -0.8730 0.0566 +vn 0.2223 0.9747 0.0210 +vn 0.2275 0.9736 0.0196 +vn 0.9996 0.0017 -0.0286 +vn 0.9996 0.0000 0.0297 +vn 0.9996 0.0017 0.0286 +vn 0.9985 0.0094 0.0543 +vn 0.9985 0.0121 0.0531 +vn 0.9985 0.0094 -0.0543 +vn 0.9996 0.0000 -0.0297 +vn 0.2224 -0.9750 0.0000 +vn 0.2241 -0.9746 0.0002 +vn 0.2978 -0.9546 -0.0094 +vn 0.2241 -0.9746 -0.0002 +vn 0.2219 -0.9727 -0.0680 +vn -0.8671 0.1251 0.4821 +vn -0.9420 0.1285 0.3099 +vn -0.9524 0.1286 0.2764 +vn 0.2219 0.9727 0.0680 +vn -0.8674 0.1251 -0.4816 +vn -0.9426 0.1285 -0.3081 +vn -0.8318 0.1227 -0.5413 +vn 0.3700 0.9289 0.0158 +vn 0.3782 0.9256 0.0143 +vn 0.2978 -0.9546 0.0094 +vn 0.3015 -0.9534 0.0098 +vn -0.8648 0.4236 0.2696 +vn -0.8632 0.4995 0.0739 +vn -0.8609 0.4168 0.2918 +vn -0.8648 0.4236 -0.2696 +vn -0.8722 0.3210 -0.3692 +vn -0.8609 0.4168 -0.2918 +vn -0.8632 -0.4995 0.0739 +vn -0.8725 -0.4038 0.2752 +vn -0.8580 -0.3995 0.3228 +vn -0.5589 0.8281 -0.0432 +vn -0.2324 0.9726 -0.0011 +vn -0.2232 0.9748 -0.0000 +vn -0.8722 0.3210 0.3692 +vn -0.8751 0.3187 0.3642 +vn -0.8725 -0.4037 -0.2752 +vn -0.8632 -0.4995 -0.0739 +vn -0.8580 -0.3995 -0.3228 +vn -0.2779 -0.9581 0.0692 +vn -0.2779 -0.9581 -0.0692 +vn -0.4856 -0.8723 -0.0568 +vn -0.9996 0.0000 0.0297 +vn -0.9996 0.0017 0.0286 +vn -0.7567 0.0000 0.6538 +vn -0.9996 0.0000 0.0293 +vn -0.5123 -0.8481 0.1351 +vn -0.5116 -0.8469 0.1446 +vn -0.4884 -0.8085 0.3283 +vn -0.5116 0.8469 0.1446 +vn -0.5171 0.8559 0.0000 +vn -0.5123 0.8481 0.1351 +vn -0.8632 0.4995 -0.0739 +vn -0.8299 0.0000 -0.5579 +vn -0.8324 -0.0604 -0.5508 +vn -0.8430 0.1242 -0.5234 +vn -0.8355 0.0676 -0.5453 +vn -0.8326 0.0701 -0.5495 +vn -0.4856 0.8723 -0.0568 +vn -0.2779 0.9581 -0.0692 +vn -0.2779 0.9581 0.0692 +vn -0.2284 -0.9736 -0.0008 +vn -0.3872 -0.9217 -0.0253 +vn -0.2231 -0.9748 -0.0000 +vn -0.2769 -0.9584 -0.0690 +vn -0.2224 -0.9750 -0.0000 +vn -0.2219 -0.9727 -0.0680 +vn -0.7439 -0.1827 -0.6428 +vn 0.9219 -0.1215 -0.3680 +vn 0.8691 -0.1186 -0.4803 +vn 0.9296 -0.1218 -0.3478 +vn -0.8619 0.5070 0.0000 +vn -0.9214 -0.2503 -0.2971 +vn -0.9294 -0.2431 -0.2778 +vn -0.2223 0.9747 0.0210 +vn -0.2769 0.9584 -0.0690 +vn -0.2219 0.9727 -0.0680 +vn -0.7439 -0.1827 0.6428 +vn -0.6913 -0.4066 0.5973 +vn -0.7477 -0.1538 0.6460 +vn -0.2226 -0.9725 0.0683 +vn -0.5171 -0.8559 0.0000 +vn -0.5123 0.8481 -0.1351 +vn 0.8674 0.1251 -0.4816 +vn 0.9426 0.1285 -0.3081 +vn 0.9528 0.1286 -0.2749 +vn -0.5123 -0.8481 -0.1351 +vn -0.4884 -0.8085 -0.3283 +vn -0.5116 -0.8469 -0.1446 +vn -0.9801 0.1984 0.0000 +vn -0.9930 0.1185 0.0000 +vn -0.9957 0.0000 -0.0928 +vn -0.4884 0.8085 0.3283 +vn -0.9957 0.0000 0.0928 +vn -0.9865 0.0000 0.1639 +vn -0.7477 0.1538 0.6460 +vn -0.7439 0.1827 0.6428 +vn -0.6913 0.4066 0.5973 +vn -0.8299 0.0000 0.5579 +vn -0.2978 -0.9546 0.0094 +vn -0.2241 -0.9746 0.0002 +vn -0.8619 -0.5070 0.0000 +vn -0.9930 -0.1185 0.0000 +vn -0.9801 -0.1984 0.0000 +vn 0.9420 0.1285 0.3099 +vn 0.8671 0.1251 0.4821 +vn 0.9524 0.1286 0.2764 +vn -0.9865 0.0000 -0.1639 +vn -0.9996 -0.0016 -0.0284 +vn -0.9985 -0.0090 -0.0543 +vn -0.9996 0.0000 -0.0293 +vn -0.6913 0.4066 -0.5973 +vn -0.8324 -0.0604 0.5508 +vn -0.5116 0.8469 -0.1446 +vn -0.4884 0.8085 -0.3283 +vn -0.9985 -0.0090 0.0543 +vn -0.9996 -0.0016 0.0284 +vn -0.6913 -0.4066 -0.5973 +vn -0.7477 -0.1538 -0.6460 +vn -0.2769 0.9584 0.0690 +vn -0.4844 0.8730 0.0566 +vn -0.2324 0.9726 0.0011 +vn -0.5589 0.8281 0.0432 +vn -0.9206 -0.2516 0.2987 +vn -0.8318 -0.1227 0.5413 +vn -0.8318 -0.1227 -0.5413 +vn -0.8325 -0.0626 -0.5505 +vn -0.4844 -0.8730 -0.0566 +vn -0.2769 -0.9584 0.0690 +vn -0.3700 0.9289 0.0158 +vn -0.2275 0.9736 0.0196 +vn -0.9985 0.0094 0.0543 +vn -0.9985 0.0121 0.0531 +vn -0.2219 -0.9727 0.0680 +vn -0.8326 0.0701 0.5495 +vn -0.2249 0.9743 -0.0160 +vn -0.2981 0.9543 -0.0206 +vn -0.2223 0.9748 -0.0168 +vn -0.2226 -0.9725 -0.0683 +vn -0.2241 -0.9746 -0.0002 +vn -0.2978 -0.9546 -0.0094 +vn -0.8355 0.0676 0.5453 +vn -0.8430 0.1242 0.5234 +vn -0.9996 0.0017 -0.0286 +vn -0.3872 -0.9217 0.0253 +vn -0.2284 -0.9736 0.0008 +vn -0.2226 0.9725 -0.0683 +vn -0.2226 0.9725 0.0683 +vn -0.2219 0.9727 0.0680 +vn -0.9985 0.0094 -0.0543 +vn -0.9985 0.0121 -0.0531 +vn 0.0000 0.9897 0.1434 +vn 0.0000 -0.1112 0.9938 +vn 0.0000 0.9897 -0.1434 +vn 0.0000 0.8420 -0.5396 +vn 0.0000 0.4536 -0.8912 +vn 0.0000 -0.2211 0.9753 +vn 0.0000 -0.4536 -0.8912 +vn 0.0000 -0.8420 -0.5396 +vn 0.0000 -0.9897 -0.1434 +vn 0.0000 0.2211 -0.9753 +vn 0.0000 0.1112 -0.9938 +vn 0.0000 -0.8420 0.5396 +vn 0.0000 -0.4536 0.8912 +vn 0.0000 0.2211 0.9753 +vn 0.0000 0.4536 0.8912 +vn 0.0000 0.8420 0.5396 +vn 0.0000 0.1112 0.9938 +vn 0.0000 -0.2211 -0.9753 +vn 0.0000 -0.1112 -0.9938 +vn 0.0000 -0.9897 0.1434 +vn 0.8751 0.3187 -0.3642 +vn 0.8325 -0.0626 -0.5505 +vn 0.8478 0.1172 -0.5172 +vn 0.8478 0.1172 0.5172 +vn 0.2226 0.9725 -0.0683 +vn -0.8478 -0.1172 -0.5172 +vn 0.2226 -0.9725 0.0683 +vn 0.9985 -0.0120 -0.0529 +vn 0.5742 0.8175 0.0453 +vn 0.3960 -0.9179 -0.0267 +vn 0.4856 0.8723 0.0568 +vn 0.4856 -0.8723 -0.0568 +vn 0.9285 -0.2445 0.2794 +vn 0.2219 0.9727 -0.0680 +vn 0.4844 0.8730 -0.0566 +vn 0.3024 0.9530 -0.0199 +vn 0.4844 -0.8730 -0.0566 +vn 0.2219 -0.9727 0.0680 +vn 0.9985 0.0121 -0.0531 +vn 0.3015 -0.9534 -0.0098 +vn -0.8318 0.1227 0.5413 +vn -0.9528 0.1286 -0.2749 +vn -0.8632 0.4998 0.0712 +vn -0.8751 0.3187 -0.3642 +vn -0.8632 -0.4998 0.0712 +vn -0.5742 0.8175 -0.0453 +vn -0.8632 -0.4998 -0.0712 +vn -0.4856 -0.8723 0.0568 +vn -0.8632 0.4998 -0.0712 +vn -0.8478 0.1172 -0.5172 +vn -0.4856 0.8723 0.0568 +vn -0.3960 -0.9179 -0.0267 +vn 0.8478 -0.1172 -0.5172 +vn 0.8318 0.1227 -0.5413 +vn -0.3015 -0.9534 0.0098 +vn 0.8318 0.1227 0.5413 +vn -0.9985 -0.0120 -0.0529 +vn -0.8325 -0.0626 0.5505 +vn -0.9985 -0.0120 0.0529 +vn -0.4844 0.8730 -0.0566 +vn -0.5742 0.8175 0.0453 +vn -0.9285 -0.2445 0.2794 +vn -0.4844 -0.8730 0.0566 +vn -0.3782 0.9256 0.0143 +vn -0.3024 0.9530 -0.0199 +vn -0.3015 -0.9534 -0.0098 +vn -0.8478 0.1172 0.5172 +vn -0.9996 0.0000 -0.0297 +vn -0.3960 -0.9179 0.0267 +s off +f 354/29/7 355/30/7 353/31/7 +f 356/32/8 359/33/8 355/34/8 +f 360/35/9 357/36/9 359/33/9 +f 358/37/10 353/38/10 357/36/10 +f 359/33/11 353/39/11 355/40/11 +f 356/41/12 358/37/12 360/35/12 +f 364/42/8 367/43/8 363/44/8 +f 368/45/9 365/46/9 367/43/9 +f 366/47/10 361/48/10 365/46/10 +f 367/43/11 361/49/11 363/50/11 +f 364/51/12 366/47/12 368/45/12 +f 389/52/9 385/53/9 371/54/9 +f 370/55/12 373/56/12 372/57/12 +f 383/58/12 394/59/12 386/60/12 +f 395/61/10 378/62/10 391/63/10 +f 384/64/8 389/52/8 381/65/8 +f 386/60/9 394/59/9 372/66/9 +f 395/61/9 391/63/9 370/67/9 +f 392/68/9 388/69/9 369/70/9 +f 373/71/9 375/72/9 374/73/9 +f 372/57/8 374/73/8 371/74/8 +f 369/75/10 376/76/10 370/55/10 +f 371/74/11 375/72/11 369/77/11 +f 385/53/9 386/60/9 387/78/9 +f 388/69/9 389/52/9 390/79/9 +f 391/63/9 392/68/9 393/80/9 +f 394/59/9 395/61/9 396/81/9 +f 382/82/13 389/52/13 388/83/13 +f 386/84/14 384/64/14 383/85/14 +f 392/86/15 378/62/15 377/87/15 +f 380/88/16 395/61/16 394/89/16 +f 388/69/11 377/90/11 382/91/11 +f 417/92/9 413/93/9 399/94/9 +f 398/95/12 401/96/12 400/97/12 +f 411/98/12 422/99/12 414/100/12 +f 423/101/10 406/102/10 419/103/10 +f 412/104/8 417/92/8 409/105/8 +f 414/100/9 422/99/9 400/106/9 +f 423/101/9 419/103/9 398/107/9 +f 420/108/9 416/109/9 397/110/9 +f 401/111/9 403/112/9 402/113/9 +f 400/97/8 402/113/8 399/114/8 +f 397/115/10 404/116/10 398/95/10 +f 399/114/11 403/112/11 397/117/11 +f 413/93/9 414/100/9 415/118/9 +f 416/109/9 417/92/9 418/119/9 +f 419/103/9 420/108/9 421/120/9 +f 422/99/9 423/101/9 424/121/9 +f 410/122/13 417/92/13 416/123/13 +f 414/124/14 412/104/14 411/125/14 +f 420/126/15 406/102/15 405/127/15 +f 408/128/16 423/101/16 422/129/16 +f 416/109/11 405/130/11 410/131/11 +f 426/132/7 427/133/7 425/134/7 +f 428/135/8 431/136/8 427/137/8 +f 432/138/9 429/139/9 431/136/9 +f 430/140/10 425/141/10 429/139/10 +f 431/136/11 425/142/11 427/143/11 +f 428/144/12 430/140/12 432/138/12 +f 436/145/8 439/146/8 435/147/8 +f 440/148/9 437/149/9 439/146/9 +f 438/150/10 433/151/10 437/149/10 +f 439/146/11 433/152/11 435/153/11 +f 436/154/12 438/150/12 440/148/12 +f 461/155/9 457/156/9 443/157/9 +f 442/158/12 445/159/12 444/160/12 +f 455/161/12 466/162/12 458/163/12 +f 467/164/10 450/165/10 463/166/10 +f 456/167/8 461/155/8 453/168/8 +f 458/163/9 466/162/9 444/169/9 +f 467/164/9 463/166/9 442/170/9 +f 464/171/9 460/172/9 441/173/9 +f 445/174/9 447/175/9 446/176/9 +f 444/160/8 446/176/8 443/177/8 +f 441/178/10 448/179/10 442/158/10 +f 443/177/11 447/175/11 441/180/11 +f 457/156/9 458/163/9 459/181/9 +f 460/172/9 461/155/9 462/182/9 +f 463/166/9 464/171/9 465/183/9 +f 466/162/9 467/164/9 468/184/9 +f 454/185/13 461/155/13 460/186/13 +f 458/187/14 456/167/14 455/188/14 +f 464/189/15 450/165/15 449/190/15 +f 452/191/16 467/164/16 466/192/16 +f 460/172/11 449/193/11 454/194/11 +f 489/195/9 485/196/9 471/197/9 +f 470/198/12 473/199/12 472/200/12 +f 483/201/12 494/202/12 486/203/12 +f 495/204/10 478/205/10 491/206/10 +f 484/207/8 489/195/8 481/208/8 +f 486/203/9 494/202/9 472/209/9 +f 495/204/9 491/206/9 470/210/9 +f 492/211/9 488/212/9 469/213/9 +f 473/214/9 475/215/9 474/216/9 +f 472/200/8 474/216/8 471/217/8 +f 469/218/10 476/219/10 470/198/10 +f 471/217/11 475/215/11 469/220/11 +f 485/196/9 486/203/9 487/221/9 +f 488/212/9 489/195/9 490/222/9 +f 491/206/9 492/211/9 493/223/9 +f 494/202/9 495/204/9 496/224/9 +f 482/225/13 489/195/13 488/226/13 +f 486/227/14 484/207/14 483/228/14 +f 492/229/15 478/205/15 477/230/15 +f 480/231/16 495/204/16 494/232/16 +f 488/212/11 477/233/11 482/234/11 +f 498/235/7 499/236/7 497/237/7 +f 500/238/8 503/239/8 499/240/8 +f 504/241/9 501/242/9 503/239/9 +f 502/243/10 497/244/10 501/242/10 +f 503/239/11 497/245/11 499/246/11 +f 500/247/12 502/243/12 504/241/12 +f 508/248/8 511/249/8 507/250/8 +f 512/251/9 509/252/9 511/249/9 +f 510/253/10 505/254/10 509/252/10 +f 511/249/11 505/255/11 507/256/11 +f 508/257/12 510/253/12 512/251/12 +f 533/258/9 529/259/9 515/260/9 +f 514/261/12 517/262/12 516/263/12 +f 527/264/12 538/265/12 530/266/12 +f 539/267/10 522/268/10 535/269/10 +f 528/270/8 533/258/8 525/271/8 +f 530/266/9 538/265/9 516/272/9 +f 539/267/9 535/269/9 514/273/9 +f 536/274/9 532/275/9 513/276/9 +f 517/277/9 519/278/9 518/279/9 +f 516/263/8 518/279/8 515/280/8 +f 513/281/10 520/282/10 514/261/10 +f 515/280/11 519/278/11 513/283/11 +f 529/259/9 530/266/9 531/284/9 +f 532/275/9 533/258/9 534/285/9 +f 535/269/9 536/274/9 537/286/9 +f 538/265/9 539/267/9 540/287/9 +f 526/288/13 533/258/13 532/289/13 +f 530/290/14 528/270/14 527/291/14 +f 536/292/15 522/268/15 521/293/15 +f 524/294/16 539/267/16 538/295/16 +f 532/275/11 521/296/11 526/297/11 +f 561/298/9 557/299/9 543/300/9 +f 542/301/12 545/302/12 544/303/12 +f 555/304/12 566/305/12 558/306/12 +f 567/307/10 550/308/10 563/309/10 +f 556/310/8 561/298/8 553/311/8 +f 558/306/9 566/305/9 544/312/9 +f 567/307/9 563/309/9 542/313/9 +f 564/314/9 560/315/9 541/316/9 +f 545/317/9 547/318/9 546/319/9 +f 544/303/8 546/319/8 543/320/8 +f 541/321/10 548/322/10 542/301/10 +f 543/320/11 547/318/11 541/323/11 +f 557/299/9 558/306/9 559/324/9 +f 560/315/9 561/298/9 562/325/9 +f 563/309/9 564/314/9 565/326/9 +f 566/305/9 567/307/9 568/327/9 +f 554/328/13 561/298/13 560/329/13 +f 558/330/14 556/310/14 555/331/14 +f 564/332/15 550/308/15 549/333/15 +f 552/334/16 567/307/16 566/335/16 +f 560/315/11 549/336/11 554/337/11 +f 570/338/7 571/339/7 569/340/7 +f 572/341/8 575/342/8 571/343/8 +f 576/344/9 573/345/9 575/342/9 +f 574/346/10 569/347/10 573/345/10 +f 575/342/11 569/348/11 571/349/11 +f 572/350/12 574/346/12 576/344/12 +f 580/351/8 583/352/8 579/353/8 +f 584/354/9 581/355/9 583/352/9 +f 582/356/10 577/357/10 581/355/10 +f 583/352/11 577/358/11 579/359/11 +f 580/360/12 582/356/12 584/354/12 +f 605/361/9 601/362/9 587/363/9 +f 586/364/12 589/365/12 588/366/12 +f 599/367/12 610/368/12 602/369/12 +f 611/370/10 594/371/10 607/372/10 +f 600/373/8 605/361/8 597/374/8 +f 602/369/9 610/368/9 588/375/9 +f 611/370/9 607/372/9 586/376/9 +f 608/377/9 604/378/9 585/379/9 +f 589/380/9 591/381/9 590/382/9 +f 588/366/8 590/382/8 587/383/8 +f 585/384/10 592/385/10 586/364/10 +f 587/383/11 591/381/11 585/386/11 +f 601/362/9 602/369/9 603/387/9 +f 604/378/9 605/361/9 606/388/9 +f 607/372/9 608/377/9 609/389/9 +f 610/368/9 611/370/9 612/390/9 +f 598/391/13 605/361/13 604/392/13 +f 602/393/14 600/373/14 599/394/14 +f 608/395/15 594/371/15 593/396/15 +f 596/397/16 611/370/16 610/398/16 +f 604/378/11 593/399/11 598/400/11 +f 633/401/9 629/402/9 615/403/9 +f 614/404/12 617/405/12 616/406/12 +f 627/407/12 638/408/12 630/409/12 +f 639/410/10 622/411/10 635/412/10 +f 628/413/8 633/401/8 625/414/8 +f 630/409/9 638/408/9 616/415/9 +f 639/410/9 635/412/9 614/416/9 +f 636/417/9 632/418/9 613/419/9 +f 617/420/9 619/421/9 618/422/9 +f 616/406/8 618/422/8 615/423/8 +f 613/424/10 620/425/10 614/404/10 +f 615/423/11 619/421/11 613/426/11 +f 629/402/9 630/409/9 631/427/9 +f 632/418/9 633/401/9 634/428/9 +f 635/412/9 636/417/9 637/429/9 +f 638/408/9 639/410/9 640/430/9 +f 626/431/13 633/401/13 632/432/13 +f 630/433/14 628/413/14 627/434/14 +f 636/435/15 622/411/15 621/436/15 +f 624/437/16 639/410/16 638/438/16 +f 632/418/11 621/439/11 626/440/11 +f 354/29/7 356/441/7 355/30/7 +f 356/32/8 360/35/8 359/33/8 +f 360/35/9 358/37/9 357/36/9 +f 358/37/10 354/442/10 353/38/10 +f 359/33/11 357/36/11 353/39/11 +f 356/41/12 354/443/12 358/37/12 +f 364/42/8 368/45/8 367/43/8 +f 368/45/9 366/47/9 365/46/9 +f 366/47/10 362/444/10 361/48/10 +f 367/43/11 365/46/11 361/49/11 +f 364/51/12 362/445/12 366/47/12 +f 387/78/9 372/66/9 385/53/9 +f 372/66/9 371/54/9 385/53/9 +f 371/54/9 390/79/9 389/52/9 +f 370/55/12 376/76/12 373/56/12 +f 383/58/12 380/446/12 394/59/12 +f 395/61/10 379/447/10 378/62/10 +f 384/64/8 385/53/8 389/52/8 +f 396/81/9 370/67/9 394/59/9 +f 370/67/9 372/66/9 394/59/9 +f 372/66/9 387/78/9 386/60/9 +f 393/80/9 369/70/9 391/63/9 +f 369/70/9 370/67/9 391/63/9 +f 370/67/9 396/81/9 395/61/9 +f 390/79/9 371/54/9 388/69/9 +f 371/54/9 369/70/9 388/69/9 +f 369/70/9 393/80/9 392/68/9 +f 373/71/9 376/448/9 375/72/9 +f 372/57/8 373/56/8 374/73/8 +f 369/75/10 375/449/10 376/76/10 +f 371/74/11 374/73/11 375/72/11 +f 382/82/13 381/65/13 389/52/13 +f 386/84/14 385/53/14 384/64/14 +f 392/86/15 391/63/15 378/62/15 +f 380/88/16 379/447/16 395/61/16 +f 388/69/11 392/68/11 377/90/11 +f 415/118/9 400/106/9 413/93/9 +f 400/106/9 399/94/9 413/93/9 +f 399/94/9 418/119/9 417/92/9 +f 398/95/12 404/116/12 401/96/12 +f 411/98/12 408/450/12 422/99/12 +f 423/101/10 407/451/10 406/102/10 +f 412/104/8 413/93/8 417/92/8 +f 424/121/9 398/107/9 422/99/9 +f 398/107/9 400/106/9 422/99/9 +f 400/106/9 415/118/9 414/100/9 +f 421/120/9 397/110/9 419/103/9 +f 397/110/9 398/107/9 419/103/9 +f 398/107/9 424/121/9 423/101/9 +f 418/119/9 399/94/9 416/109/9 +f 399/94/9 397/110/9 416/109/9 +f 397/110/9 421/120/9 420/108/9 +f 401/111/9 404/452/9 403/112/9 +f 400/97/8 401/96/8 402/113/8 +f 397/115/10 403/453/10 404/116/10 +f 399/114/11 402/113/11 403/112/11 +f 410/122/13 409/105/13 417/92/13 +f 414/124/14 413/93/14 412/104/14 +f 420/126/15 419/103/15 406/102/15 +f 408/128/16 407/451/16 423/101/16 +f 416/109/11 420/108/11 405/130/11 +f 426/132/7 428/454/7 427/133/7 +f 428/135/8 432/138/8 431/136/8 +f 432/138/9 430/140/9 429/139/9 +f 430/140/10 426/455/10 425/141/10 +f 431/136/11 429/139/11 425/142/11 +f 428/144/12 426/456/12 430/140/12 +f 436/145/8 440/148/8 439/146/8 +f 440/148/9 438/150/9 437/149/9 +f 438/150/10 434/457/10 433/151/10 +f 439/146/11 437/149/11 433/152/11 +f 436/154/12 434/458/12 438/150/12 +f 459/181/9 444/169/9 457/156/9 +f 444/169/9 443/157/9 457/156/9 +f 443/157/9 462/182/9 461/155/9 +f 442/158/12 448/179/12 445/159/12 +f 455/161/12 452/459/12 466/162/12 +f 467/164/10 451/460/10 450/165/10 +f 456/167/8 457/156/8 461/155/8 +f 468/184/9 442/170/9 466/162/9 +f 442/170/9 444/169/9 466/162/9 +f 444/169/9 459/181/9 458/163/9 +f 465/183/9 441/173/9 463/166/9 +f 441/173/9 442/170/9 463/166/9 +f 442/170/9 468/184/9 467/164/9 +f 462/182/9 443/157/9 460/172/9 +f 443/157/9 441/173/9 460/172/9 +f 441/173/9 465/183/9 464/171/9 +f 445/174/9 448/461/9 447/175/9 +f 444/160/8 445/159/8 446/176/8 +f 441/178/10 447/462/10 448/179/10 +f 443/177/11 446/176/11 447/175/11 +f 454/185/13 453/168/13 461/155/13 +f 458/187/14 457/156/14 456/167/14 +f 464/189/15 463/166/15 450/165/15 +f 452/191/16 451/460/16 467/164/16 +f 460/172/11 464/171/11 449/193/11 +f 487/221/9 472/209/9 485/196/9 +f 472/209/9 471/197/9 485/196/9 +f 471/197/9 490/222/9 489/195/9 +f 470/198/12 476/219/12 473/199/12 +f 483/201/12 480/463/12 494/202/12 +f 495/204/10 479/464/10 478/205/10 +f 484/207/8 485/196/8 489/195/8 +f 496/224/9 470/210/9 494/202/9 +f 470/210/9 472/209/9 494/202/9 +f 472/209/9 487/221/9 486/203/9 +f 493/223/9 469/213/9 491/206/9 +f 469/213/9 470/210/9 491/206/9 +f 470/210/9 496/224/9 495/204/9 +f 490/222/9 471/197/9 488/212/9 +f 471/197/9 469/213/9 488/212/9 +f 469/213/9 493/223/9 492/211/9 +f 473/214/9 476/465/9 475/215/9 +f 472/200/8 473/199/8 474/216/8 +f 469/218/10 475/466/10 476/219/10 +f 471/217/11 474/216/11 475/215/11 +f 482/225/13 481/208/13 489/195/13 +f 486/227/14 485/196/14 484/207/14 +f 492/229/15 491/206/15 478/205/15 +f 480/231/16 479/464/16 495/204/16 +f 488/212/11 492/211/11 477/233/11 +f 498/235/7 500/467/7 499/236/7 +f 500/238/8 504/241/8 503/239/8 +f 504/241/9 502/243/9 501/242/9 +f 502/243/10 498/468/10 497/244/10 +f 503/239/11 501/242/11 497/245/11 +f 500/247/12 498/469/12 502/243/12 +f 508/248/8 512/251/8 511/249/8 +f 512/251/9 510/253/9 509/252/9 +f 510/253/10 506/470/10 505/254/10 +f 511/249/11 509/252/11 505/255/11 +f 508/257/12 506/471/12 510/253/12 +f 531/284/9 516/272/9 529/259/9 +f 516/272/9 515/260/9 529/259/9 +f 515/260/9 534/285/9 533/258/9 +f 514/261/12 520/282/12 517/262/12 +f 527/264/12 524/472/12 538/265/12 +f 539/267/10 523/473/10 522/268/10 +f 528/270/8 529/259/8 533/258/8 +f 540/287/9 514/273/9 538/265/9 +f 514/273/9 516/272/9 538/265/9 +f 516/272/9 531/284/9 530/266/9 +f 537/286/9 513/276/9 535/269/9 +f 513/276/9 514/273/9 535/269/9 +f 514/273/9 540/287/9 539/267/9 +f 534/285/9 515/260/9 532/275/9 +f 515/260/9 513/276/9 532/275/9 +f 513/276/9 537/286/9 536/274/9 +f 517/277/9 520/474/9 519/278/9 +f 516/263/8 517/262/8 518/279/8 +f 513/281/10 519/475/10 520/282/10 +f 515/280/11 518/279/11 519/278/11 +f 526/288/13 525/271/13 533/258/13 +f 530/290/14 529/259/14 528/270/14 +f 536/292/15 535/269/15 522/268/15 +f 524/294/16 523/473/16 539/267/16 +f 532/275/11 536/274/11 521/296/11 +f 559/324/9 544/312/9 557/299/9 +f 544/312/9 543/300/9 557/299/9 +f 543/300/9 562/325/9 561/298/9 +f 542/301/12 548/322/12 545/302/12 +f 555/304/12 552/476/12 566/305/12 +f 567/307/10 551/477/10 550/308/10 +f 556/310/8 557/299/8 561/298/8 +f 568/327/9 542/313/9 566/305/9 +f 542/313/9 544/312/9 566/305/9 +f 544/312/9 559/324/9 558/306/9 +f 565/326/9 541/316/9 563/309/9 +f 541/316/9 542/313/9 563/309/9 +f 542/313/9 568/327/9 567/307/9 +f 562/325/9 543/300/9 560/315/9 +f 543/300/9 541/316/9 560/315/9 +f 541/316/9 565/326/9 564/314/9 +f 545/317/9 548/478/9 547/318/9 +f 544/303/8 545/302/8 546/319/8 +f 541/321/10 547/479/10 548/322/10 +f 543/320/11 546/319/11 547/318/11 +f 554/328/13 553/311/13 561/298/13 +f 558/330/14 557/299/14 556/310/14 +f 564/332/15 563/309/15 550/308/15 +f 552/334/16 551/477/16 567/307/16 +f 560/315/11 564/314/11 549/336/11 +f 570/338/7 572/480/7 571/339/7 +f 572/341/8 576/344/8 575/342/8 +f 576/344/9 574/346/9 573/345/9 +f 574/346/10 570/481/10 569/347/10 +f 575/342/11 573/345/11 569/348/11 +f 572/350/12 570/482/12 574/346/12 +f 580/351/8 584/354/8 583/352/8 +f 584/354/9 582/356/9 581/355/9 +f 582/356/10 578/483/10 577/357/10 +f 583/352/11 581/355/11 577/358/11 +f 580/360/12 578/484/12 582/356/12 +f 603/387/9 588/375/9 601/362/9 +f 588/375/9 587/363/9 601/362/9 +f 587/363/9 606/388/9 605/361/9 +f 586/364/12 592/385/12 589/365/12 +f 599/367/12 596/485/12 610/368/12 +f 611/370/10 595/486/10 594/371/10 +f 600/373/8 601/362/8 605/361/8 +f 612/390/9 586/376/9 610/368/9 +f 586/376/9 588/375/9 610/368/9 +f 588/375/9 603/387/9 602/369/9 +f 609/389/9 585/379/9 607/372/9 +f 585/379/9 586/376/9 607/372/9 +f 586/376/9 612/390/9 611/370/9 +f 606/388/9 587/363/9 604/378/9 +f 587/363/9 585/379/9 604/378/9 +f 585/379/9 609/389/9 608/377/9 +f 589/380/9 592/487/9 591/381/9 +f 588/366/8 589/365/8 590/382/8 +f 585/384/10 591/488/10 592/385/10 +f 587/383/11 590/382/11 591/381/11 +f 598/391/13 597/374/13 605/361/13 +f 602/393/14 601/362/14 600/373/14 +f 608/395/15 607/372/15 594/371/15 +f 596/397/16 595/486/16 611/370/16 +f 604/378/11 608/377/11 593/399/11 +f 631/427/9 616/415/9 629/402/9 +f 616/415/9 615/403/9 629/402/9 +f 615/403/9 634/428/9 633/401/9 +f 614/404/12 620/425/12 617/405/12 +f 627/407/12 624/489/12 638/408/12 +f 639/410/10 623/490/10 622/411/10 +f 628/413/8 629/402/8 633/401/8 +f 640/430/9 614/416/9 638/408/9 +f 614/416/9 616/415/9 638/408/9 +f 616/415/9 631/427/9 630/409/9 +f 637/429/9 613/419/9 635/412/9 +f 613/419/9 614/416/9 635/412/9 +f 614/416/9 640/430/9 639/410/9 +f 634/428/9 615/403/9 632/418/9 +f 615/403/9 613/419/9 632/418/9 +f 613/419/9 637/429/9 636/417/9 +f 617/420/9 620/491/9 619/421/9 +f 616/406/8 617/405/8 618/422/8 +f 613/424/10 619/492/10 620/425/10 +f 615/423/11 618/422/11 619/421/11 +f 626/431/13 625/414/13 633/401/13 +f 630/433/14 629/402/14 628/413/14 +f 636/435/15 635/412/15 622/411/15 +f 624/437/16 623/490/16 639/410/16 +f 632/418/11 636/417/11 621/439/11 +s 1 +f 129/493/17 38/494/18 26/495/19 +f 24/496/20 96/497/21 36/498/22 +f 17/499/23 30/500/24 29/501/25 +f 19/502/26 42/503/27 31/504/28 +f 19/502/26 32/505/29 20/506/30 +f 18/507/9 174/508/9 157/509/9 +f 20/510/9 163/511/9 19/512/9 +f 160/513/9 53/514/9 164/515/9 +f 166/516/9 53/514/9 54/517/9 +f 98/518/9 126/519/9 127/520/9 +f 146/521/9 26/522/9 28/523/9 +f 135/524/9 25/525/9 133/526/9 +f 64/527/9 132/528/9 23/529/9 +f 27/530/31 37/531/32 25/532/33 +f 27/530/31 44/533/34 39/534/35 +f 28/535/36 38/494/18 40/536/37 +f 137/537/9 27/538/9 135/524/9 +f 59/539/9 144/540/9 60/541/9 +f 64/527/9 138/542/9 136/543/9 +f 17/499/23 41/544/27 45/545/27 +f 28/535/36 43/546/34 47/547/34 +f 57/548/38 170/549/38 56/550/38 +f 46/551/39 50/552/40 42/553/41 +f 43/554/42 52/555/43 51/556/43 +f 143/557/44 51/558/45 141/559/44 +f 60/560/44 142/561/44 61/562/44 +f 43/563/46 51/564/45 47/565/47 +f 52/566/48 44/567/49 48/568/50 +f 41/569/51 49/570/52 45/571/53 +f 50/572/54 41/573/55 42/574/55 +f 112/575/9 64/527/9 128/576/9 +f 167/577/9 49/578/54 50/579/54 +f 165/580/44 50/579/40 46/581/39 +f 19/512/9 165/582/9 46/583/9 +f 53/514/9 120/584/9 54/517/9 +f 137/585/38 52/586/48 48/587/50 +f 127/520/9 110/588/9 111/589/9 +f 86/590/56 88/591/9 87/592/9 +f 122/593/44 119/594/44 118/595/44 +f 109/596/38 56/550/38 108/597/38 +f 114/598/9 102/599/9 103/600/9 +f 104/601/9 59/539/9 113/602/9 +f 122/593/9 107/603/9 123/604/9 +f 120/605/44 55/606/44 54/607/44 +f 61/562/9 105/608/9 121/609/9 +f 118/610/9 115/611/9 114/598/9 +f 124/612/9 56/550/9 55/606/9 +f 58/613/9 100/614/9 21/615/9 +f 94/616/21 103/617/21 102/618/21 +f 21/619/57 92/620/58 33/621/59 +f 128/576/9 23/529/9 97/622/9 +f 22/623/9 116/624/9 53/514/9 +f 113/602/9 60/541/9 117/625/9 +f 117/626/44 61/562/44 121/609/44 +f 107/603/38 111/627/38 110/628/38 +f 57/629/9 125/630/9 58/613/9 +f 112/631/38 62/632/38 63/633/38 +f 22/634/60 93/635/21 101/636/21 +f 90/637/58 99/638/58 98/639/58 +f 116/640/61 69/641/61 120/642/61 +f 125/643/61 83/644/62 100/645/63 +f 103/646/64 77/647/61 114/648/61 +f 121/609/44 118/595/44 117/626/44 +f 120/605/44 123/604/44 124/612/44 +f 121/609/9 106/649/9 122/593/9 +f 108/597/9 123/604/9 107/603/9 +f 114/648/61 71/650/61 118/651/61 +f 127/652/61 85/653/62 98/654/63 +f 108/597/38 110/628/38 109/596/38 +f 112/631/38 106/649/38 105/608/38 +f 290/655/7 275/656/7 274/657/7 +f 220/658/65 305/659/66 216/660/67 +f 23/661/68 89/662/58 97/663/58 +f 82/664/9 84/665/56 83/644/56 +f 78/666/9 80/667/69 79/668/69 +f 74/669/69 76/670/9 75/671/9 +f 72/672/9 77/647/9 78/666/9 +f 75/671/9 70/673/9 69/641/9 +f 87/592/9 68/674/9 67/675/9 +f 66/676/9 81/677/9 82/664/9 +f 128/678/70 67/675/70 112/679/70 +f 101/680/64 75/671/61 116/640/61 +f 119/681/70 76/670/70 115/682/70 +f 111/683/61 88/591/61 127/652/61 +f 99/684/71 81/677/70 126/685/70 +f 109/686/61 82/664/61 125/643/61 +f 115/682/70 73/687/72 102/688/73 +f 69/641/9 65/689/9 66/676/9 +f 97/690/71 87/592/70 128/678/70 +f 117/691/70 78/666/70 113/692/70 +f 113/692/70 79/668/72 104/693/73 +f 126/685/70 65/689/70 110/694/70 +f 119/681/70 65/689/70 70/673/70 +f 66/676/61 120/642/61 69/641/61 +f 118/651/61 68/674/61 111/683/61 +f 67/675/9 71/650/9 72/672/9 +f 117/691/70 67/675/70 72/672/70 +f 98/695/63 85/696/62 90/697/74 +f 100/698/63 83/699/62 92/700/74 +f 99/701/71 91/702/75 84/703/76 +f 86/704/76 97/705/71 89/706/75 +f 104/707/73 79/708/72 96/709/77 +f 80/710/78 103/711/64 95/712/79 +f 102/713/73 73/714/72 94/715/77 +f 74/716/78 101/717/64 93/718/79 +f 74/719/69 94/720/80 73/721/69 +f 80/722/69 96/709/80 79/708/69 +f 85/723/56 89/724/81 90/725/81 +f 83/726/56 91/727/81 92/728/81 +f 143/729/9 28/523/9 47/730/9 +f 51/558/43 139/731/9 141/559/9 +f 142/561/9 62/632/9 61/562/9 +f 63/633/38 140/732/38 138/733/38 +f 133/734/82 37/531/32 134/735/83 +f 36/736/22 130/737/84 24/738/20 +f 132/739/85 35/740/86 23/741/68 +f 136/742/87 154/743/88 156/744/89 +f 132/745/90 134/746/91 133/747/92 +f 146/748/93 151/749/94 150/750/95 +f 129/751/96 150/750/95 131/752/97 +f 59/539/9 130/753/9 145/754/9 +f 150/750/98 152/755/9 149/756/99 +f 155/757/100 154/743/9 153/758/9 +f 134/759/101 156/744/102 155/757/100 +f 131/752/103 149/756/99 147/760/104 +f 130/761/105 149/756/106 145/762/87 +f 133/763/107 155/757/108 135/764/93 +f 135/764/93 153/758/109 137/765/110 +f 144/766/111 149/756/106 152/755/112 +f 132/767/113 156/744/89 148/768/114 +f 152/755/112 154/743/88 140/769/115 +f 141/770/116 153/758/109 151/749/94 +f 152/755/9 153/758/9 154/743/9 +f 172/771/9 58/613/9 173/772/9 +f 17/773/9 171/774/9 174/508/9 +f 45/775/53 169/776/38 171/777/38 +f 55/606/9 170/549/9 168/778/9 +f 54/607/44 168/778/44 166/779/44 +f 161/780/117 32/505/29 162/781/118 +f 157/782/119 30/500/24 18/783/120 +f 21/784/57 175/785/121 158/786/121 +f 176/787/122 22/788/60 160/789/122 +f 181/790/9 178/791/9 177/792/9 +f 167/793/123 181/790/124 177/792/125 +f 161/794/126 183/795/127 163/796/128 +f 178/791/129 182/797/130 168/798/131 +f 174/799/132 177/792/125 180/800/133 +f 158/801/9 58/613/9 21/615/9 +f 179/802/134 177/792/9 178/791/9 +f 182/797/9 183/795/135 184/803/136 +f 184/803/136 162/804/137 176/805/138 +f 179/802/134 159/806/139 180/800/140 +f 164/807/141 182/797/130 184/803/142 +f 158/808/143 179/802/144 173/809/141 +f 173/809/141 178/791/129 172/810/145 +f 160/811/146 162/812/147 161/813/148 +f 163/796/128 181/790/124 165/814/149 +f 158/815/150 159/816/151 175/817/152 +f 157/818/153 180/800/133 159/806/154 +f 160/819/155 184/803/142 176/805/156 +f 224/820/7 292/821/7 223/822/7 +f 239/823/7 235/824/7 240/825/7 +f 205/826/157 195/827/158 193/828/159 +f 300/829/7 232/830/7 191/831/7 +f 294/832/7 266/833/7 295/834/7 +f 206/835/160 297/836/161 194/837/162 +f 185/838/163 198/839/164 186/840/165 +f 227/841/7 272/842/7 281/843/7 +f 300/844/166 324/845/167 304/846/168 +f 230/847/7 310/848/7 229/849/7 +f 273/850/7 229/849/7 289/851/7 +f 331/852/7 188/853/7 187/854/7 +f 193/855/7 303/856/7 301/857/7 +f 205/826/157 301/858/169 302/859/170 +f 314/860/7 194/861/7 297/862/7 +f 200/863/171 187/864/172 188/865/173 +f 319/866/174 321/867/175 307/868/176 +f 288/869/7 221/870/7 222/871/7 +f 351/872/177 350/873/7 352/874/178 +f 287/875/179 290/655/179 286/876/179 +f 270/877/7 282/878/7 271/879/7 +f 334/880/7 221/870/7 332/881/7 +f 318/882/180 320/883/7 319/866/7 +f 267/884/181 252/885/182 259/886/183 +f 251/887/184 293/888/185 268/889/186 +f 221/870/7 328/890/7 332/881/7 +f 196/891/187 206/835/160 194/837/162 +f 261/892/188 190/893/189 269/894/188 +f 185/895/7 339/896/7 213/897/7 +f 298/898/190 204/899/191 192/900/192 +f 308/901/193 322/902/194 320/883/195 +f 323/903/196 301/904/197 303/905/198 +f 346/906/199 341/907/200 340/908/201 +f 226/909/7 340/910/7 341/911/7 +f 337/912/66 213/913/202 339/914/66 +f 326/915/7 226/909/7 341/911/7 +f 312/916/7 227/841/7 228/917/7 +f 302/918/203 300/919/204 301/920/205 +f 195/827/158 212/921/206 216/922/206 +f 211/923/206 196/891/187 215/924/206 +f 200/863/171 329/925/207 330/926/208 +f 342/927/209 345/928/210 339/929/211 +f 214/930/212 210/931/213 218/932/214 +f 314/933/198 319/866/174 311/934/215 +f 195/935/7 305/936/7 303/856/7 +f 223/822/179 288/937/179 222/938/179 +f 244/939/216 287/940/216 283/941/216 +f 320/883/7 321/867/7 319/866/7 +f 245/942/185 271/943/217 282/944/185 +f 326/945/218 327/946/219 325/947/220 +f 253/948/184 295/949/185 266/950/186 +f 246/951/216 285/952/216 281/953/216 +f 270/954/221 262/955/222 241/956/223 +f 238/957/7 243/958/7 237/959/7 +f 256/960/185 279/961/185 295/949/185 +f 254/962/182 257/963/183 265/964/181 +f 232/830/7 280/965/7 296/966/7 +f 272/967/221 264/968/222 247/969/223 +f 236/970/7 255/971/7 235/824/7 +f 284/972/7 190/973/7 221/870/7 +f 233/974/7 237/959/7 234/975/7 +f 268/976/7 226/909/7 189/977/7 +f 271/978/188 262/979/188 270/980/188 +f 209/981/224 218/982/225 210/983/224 +f 252/984/226 250/985/7 251/887/226 +f 247/986/223 281/953/216 272/987/221 +f 228/988/179 310/848/179 312/989/179 +f 288/990/185 234/975/185 237/959/185 +f 266/991/186 258/992/227 253/993/184 +f 248/994/228 246/951/7 247/986/228 +f 262/995/229 242/996/228 241/997/228 +f 191/831/7 296/966/7 265/998/7 +f 239/823/185 282/944/185 286/999/185 +f 311/1000/179 219/1001/230 215/1002/231 +f 250/985/185 277/1003/185 293/888/185 +f 311/1004/7 196/1005/7 314/860/7 +f 235/824/216 296/1006/216 280/1007/216 +f 211/1008/232 215/1009/231 219/1010/230 +f 230/847/66 280/1011/66 231/1012/66 +f 236/970/185 286/999/185 279/961/185 +f 249/1013/7 234/975/7 250/985/7 +f 267/1014/233 258/1015/233 266/1016/233 +f 328/1017/234 352/874/235 332/1018/200 +f 209/1019/236 185/838/163 213/1020/236 +f 220/1021/237 211/1022/238 219/1023/237 +f 232/830/7 306/1024/7 231/1025/7 +f 225/1026/66 338/1027/66 340/1028/66 +f 330/1029/239 328/1030/240 329/1031/241 +f 258/1032/242 254/1033/226 253/1034/226 +f 278/1035/7 295/834/7 279/1036/7 +f 217/1037/225 335/1038/7 218/1039/225 +f 307/1040/7 219/1001/237 309/1041/7 +f 237/959/185 284/1042/185 288/990/185 +f 228/917/7 281/843/7 285/1043/7 +f 279/1044/66 275/656/66 278/1045/66 +f 324/845/243 302/1046/244 323/903/245 +f 277/1047/66 224/820/66 225/1026/66 +f 220/1048/65 216/1049/67 212/1050/246 +f 291/1051/179 288/937/179 292/821/179 +f 189/1052/247 260/1053/233 268/1054/233 +f 244/939/7 242/1055/228 243/958/7 +f 248/1056/248 263/1057/249 271/1058/217 +f 218/1039/214 333/1059/179 214/1060/212 +f 299/1061/250 317/1062/251 318/882/180 +f 209/1063/252 213/1064/202 217/1065/253 +f 260/1066/242 252/1067/226 251/1068/226 +f 289/851/7 274/657/7 273/850/7 +f 245/942/7 240/825/7 246/951/7 +f 285/1069/179 229/849/179 228/988/179 +f 274/657/66 280/1011/66 273/850/66 +f 241/1070/223 283/941/216 270/1071/221 +f 293/1072/7 225/1073/7 226/909/7 +f 276/1074/7 291/1051/7 292/821/7 +f 235/824/216 285/952/216 240/825/216 +f 268/1075/186 260/1076/227 251/1077/184 +f 264/968/229 248/1078/228 247/969/228 +f 286/876/179 289/851/179 285/1069/179 +f 345/928/210 349/1079/254 335/1080/255 +f 338/1027/7 223/822/7 336/1081/7 +f 317/1062/256 298/1082/257 313/1083/168 +f 336/1081/179 222/938/179 334/1084/179 +f 227/841/7 298/1085/7 192/1086/7 +f 198/839/164 325/1087/258 186/840/165 +f 343/1088/259 189/1089/247 326/1090/259 +f 344/1091/260 190/1092/189 202/1093/261 +f 338/1094/262 350/873/263 346/906/199 +f 325/1095/264 348/1096/265 342/927/209 +f 346/906/7 349/1079/7 345/928/7 +f 330/1097/266 352/874/178 344/1098/267 +f 332/1018/200 350/873/263 334/1099/268 +f 256/960/7 254/1100/226 255/971/7 +f 283/1101/7 286/1102/7 282/878/7 +f 257/1103/233 191/1104/269 265/1105/233 +f 192/1106/192 264/1107/188 272/1108/188 +f 278/1045/66 276/1074/66 277/1047/66 +f 351/872/270 329/1109/271 331/1110/272 +f 321/867/175 303/905/198 305/1111/273 +f 347/1112/274 326/1113/275 341/907/200 +f 203/1114/276 300/1115/277 191/1116/269 +f 322/902/7 323/903/245 321/867/7 +f 187/864/172 210/1117/236 214/1118/236 +f 345/928/7 347/1112/278 346/906/7 +f 249/1013/216 267/1119/181 294/1120/216 +f 233/974/216 294/1120/216 278/1121/216 +f 333/1122/7 187/854/7 214/1123/7 +f 297/1124/279 318/882/280 314/933/198 +f 243/958/185 269/1125/217 284/1042/185 +f 255/971/216 265/1126/181 296/1006/216 +f 233/974/216 287/940/216 238/957/216 +f 186/1127/7 342/1128/7 185/895/7 +f 324/845/167 306/1129/281 304/846/168 +f 320/883/195 313/1083/168 312/1130/282 +f 242/1131/248 261/1132/249 269/1133/217 +f 308/1134/66 231/1012/66 306/1135/66 +f 349/1079/254 331/1110/272 333/1136/283 +f 347/1112/278 327/1137/284 343/1138/285 +f 199/1139/286 42/1140/12 210/1141/12 +f 204/1142/287 96/1143/10 264/1144/10 +f 264/1144/10 95/1145/10 263/1146/10 +f 263/1146/10 94/1147/10 262/1148/10 +f 197/1149/288 30/1150/289 198/1151/289 +f 198/1151/289 159/1152/290 327/1153/290 +f 259/1154/8 90/1155/8 258/1156/8 +f 260/1157/8 91/1158/8 259/1154/8 +f 147/1159/291 36/1160/287 315/1161/291 +f 210/1141/12 41/1162/12 209/1163/12 +f 209/1163/12 29/1164/288 197/1149/288 +f 212/1165/11 43/1166/11 211/1167/11 +f 302/1168/292 37/1169/293 205/1170/293 +f 207/1171/294 44/1172/11 212/1165/11 +f 205/1170/293 39/1173/294 207/1171/294 +f 175/1174/295 33/1175/296 343/1176/295 +f 201/1177/296 92/1178/8 260/1157/8 +f 206/1179/297 131/1180/298 299/1181/298 +f 176/1182/299 162/1183/300 344/1184/299 +f 330/1185/300 32/1186/301 200/1187/301 +f 258/1156/8 89/1188/8 257/1189/8 +f 262/1148/10 93/1190/10 261/1191/10 +f 261/1191/10 34/1192/302 202/1193/302 +f 148/1194/303 134/1195/292 316/1196/303 +f 257/1189/8 35/1197/304 203/1198/304 +f 208/1199/305 38/1200/297 206/1179/297 +f 211/1167/11 40/1201/305 208/1199/305 +f 200/1187/301 31/1202/286 199/1139/286 +f 129/493/17 131/1203/306 38/494/18 +f 24/496/20 104/1204/21 96/497/21 +f 17/499/23 18/783/120 30/500/24 +f 19/502/26 46/1205/27 42/503/27 +f 19/502/26 31/504/28 32/505/29 +f 18/507/9 17/773/9 174/508/9 +f 20/510/9 161/1206/9 163/511/9 +f 160/513/9 22/623/9 53/514/9 +f 166/516/9 164/515/9 53/514/9 +f 98/518/9 99/1207/9 126/519/9 +f 146/521/9 129/1208/9 26/522/9 +f 135/524/9 27/538/9 25/525/9 +f 64/527/9 136/543/9 132/528/9 +f 27/530/31 39/534/35 37/531/32 +f 27/530/31 48/1209/34 44/533/34 +f 28/535/36 26/495/19 38/494/18 +f 137/537/9 48/1210/9 27/538/9 +f 59/539/9 145/754/9 144/540/9 +f 64/527/9 63/1211/9 138/542/9 +f 17/499/23 29/501/25 41/544/27 +f 28/535/36 40/536/37 43/546/34 +f 57/548/38 172/1212/38 170/549/38 +f 43/554/42 44/1213/42 52/555/43 +f 143/557/44 47/1214/47 51/558/45 +f 60/560/44 144/1215/44 142/561/44 +f 50/572/54 49/1216/54 41/573/55 +f 112/575/9 63/1211/9 64/527/9 +f 167/577/9 169/776/9 49/578/54 +f 165/580/44 167/577/44 50/579/40 +f 19/512/9 163/511/9 165/582/9 +f 53/514/9 116/624/9 120/584/9 +f 137/585/38 139/731/38 52/586/48 +f 127/520/9 126/519/9 110/588/9 +f 86/590/56 85/653/56 88/591/9 +f 122/593/44 123/604/44 119/594/44 +f 109/596/38 57/548/38 56/550/38 +f 114/598/9 115/611/9 102/599/9 +f 104/601/9 24/1217/9 59/539/9 +f 122/593/9 106/649/9 107/603/9 +f 120/605/44 124/612/44 55/606/44 +f 61/562/9 62/632/9 105/608/9 +f 118/610/9 119/1218/9 115/611/9 +f 124/612/9 108/597/9 56/550/9 +f 58/613/9 125/630/9 100/614/9 +f 94/616/21 95/1219/21 103/617/21 +f 21/619/57 100/1220/58 92/620/58 +f 128/576/9 64/527/9 23/529/9 +f 22/623/9 101/1221/9 116/624/9 +f 113/602/9 59/539/9 60/541/9 +f 117/626/44 60/560/44 61/562/44 +f 107/603/38 106/649/38 111/627/38 +f 57/629/9 109/1222/9 125/630/9 +f 112/631/38 105/608/38 62/632/38 +f 22/634/60 34/1223/307 93/635/21 +f 90/637/58 91/1224/58 99/638/58 +f 116/640/61 75/671/61 69/641/61 +f 125/643/61 82/664/61 83/644/62 +f 103/646/64 80/667/78 77/647/61 +f 121/609/44 122/593/44 118/595/44 +f 120/605/44 119/594/44 123/604/44 +f 121/609/9 105/608/9 106/649/9 +f 108/597/9 124/612/9 123/604/9 +f 114/648/61 77/647/61 71/650/61 +f 127/652/61 88/591/61 85/653/62 +f 108/597/38 107/603/38 110/628/38 +f 112/631/38 111/627/38 106/649/38 +f 290/655/7 291/1051/7 275/656/7 +f 220/658/65 307/1040/66 305/659/66 +f 23/661/68 35/1225/86 89/662/58 +f 82/664/9 81/677/9 84/665/56 +f 78/666/9 77/647/9 80/667/69 +f 74/669/69 73/687/69 76/670/9 +f 72/672/9 71/650/9 77/647/9 +f 75/671/9 76/670/9 70/673/9 +f 87/592/9 88/591/9 68/674/9 +f 66/676/9 65/689/9 81/677/9 +f 128/678/70 87/592/70 67/675/70 +f 101/680/64 74/669/78 75/671/61 +f 119/681/70 70/673/70 76/670/70 +f 111/683/61 68/674/61 88/591/61 +f 99/684/71 84/665/76 81/677/70 +f 109/686/61 66/676/61 82/664/61 +f 115/682/70 76/670/70 73/687/72 +f 69/641/9 70/673/9 65/689/9 +f 97/690/71 86/590/76 87/592/70 +f 117/691/70 72/672/70 78/666/70 +f 113/692/70 78/666/70 79/668/72 +f 126/685/70 81/677/70 65/689/70 +f 119/681/70 110/694/70 65/689/70 +f 66/676/61 109/686/61 120/642/61 +f 118/651/61 71/650/61 68/674/61 +f 67/675/9 68/674/9 71/650/9 +f 117/691/70 112/679/70 67/675/70 +f 74/719/69 93/1226/80 94/720/80 +f 80/722/69 95/1227/80 96/709/80 +f 85/723/56 86/1228/56 89/724/81 +f 83/726/56 84/1229/56 91/727/81 +f 143/729/9 146/521/9 28/523/9 +f 51/558/43 52/586/43 139/731/9 +f 142/561/9 140/732/9 62/632/9 +f 63/633/38 62/632/38 140/732/38 +f 133/734/82 25/532/33 37/531/32 +f 36/736/22 147/1230/308 130/737/84 +f 132/739/85 148/1231/309 35/740/86 +f 136/742/87 138/1232/310 154/743/88 +f 132/745/90 148/1233/311 134/746/91 +f 146/748/93 143/1234/312 151/749/94 +f 129/751/96 146/748/93 150/750/95 +f 59/539/9 24/1217/9 130/753/9 +f 150/750/98 151/749/9 152/755/9 +f 155/757/100 156/744/102 154/743/9 +f 134/759/101 148/768/313 156/744/102 +f 131/752/103 150/750/98 149/756/99 +f 130/761/105 147/760/314 149/756/106 +f 133/763/107 134/759/315 155/757/108 +f 135/764/93 155/757/108 153/758/109 +f 144/766/111 145/762/87 149/756/106 +f 132/767/113 136/742/87 156/744/89 +f 142/1235/316 144/766/111 152/755/112 +f 154/743/88 138/1232/310 140/769/115 +f 140/769/115 142/1235/316 152/755/112 +f 139/1236/317 137/765/110 153/758/109 +f 151/749/94 143/1234/312 141/770/116 +f 141/770/116 139/1236/317 153/758/109 +f 152/755/9 151/749/9 153/758/9 +f 172/771/9 57/629/9 58/613/9 +f 17/773/9 45/1237/9 171/774/9 +f 45/775/53 49/578/52 169/776/38 +f 55/606/9 56/550/9 170/549/9 +f 54/607/44 55/606/44 168/778/44 +f 161/780/117 20/506/30 32/505/29 +f 157/782/119 159/1238/318 30/500/24 +f 21/784/57 33/1239/59 175/785/121 +f 176/787/122 34/1240/307 22/788/60 +f 181/790/9 182/797/9 178/791/9 +f 177/792/125 171/1241/319 169/1242/320 +f 167/793/123 165/814/149 181/790/124 +f 177/792/125 169/1242/320 167/793/123 +f 161/794/126 162/804/321 183/795/127 +f 170/1243/322 172/810/145 178/791/129 +f 182/797/130 166/1244/323 168/798/131 +f 168/798/131 170/1243/322 178/791/129 +f 174/799/132 171/1241/319 177/792/125 +f 158/801/9 173/772/9 58/613/9 +f 179/802/134 180/800/140 177/792/9 +f 182/797/9 181/790/9 183/795/135 +f 184/803/136 183/795/135 162/804/137 +f 179/802/134 175/1245/324 159/806/139 +f 164/807/141 166/1244/323 182/797/130 +f 158/808/143 175/1245/325 179/802/144 +f 173/809/141 179/802/144 178/791/129 +f 160/811/146 176/1246/326 162/812/147 +f 163/796/128 183/795/127 181/790/124 +f 158/815/150 157/1247/327 159/816/151 +f 157/818/153 174/799/132 180/800/133 +f 160/819/155 164/807/141 184/803/142 +f 224/820/7 276/1074/7 292/821/7 +f 239/823/7 236/970/7 235/824/7 +f 205/826/157 207/1248/328 195/827/158 +f 300/829/7 304/1249/7 232/830/7 +f 294/832/7 267/1250/7 266/833/7 +f 206/835/160 299/1251/329 297/836/161 +f 185/838/163 197/1252/330 198/839/164 +f 227/841/7 192/1086/7 272/842/7 +f 300/844/166 316/1253/331 324/845/167 +f 230/847/7 308/1134/7 310/848/7 +f 273/850/7 230/847/7 229/849/7 +f 331/852/7 329/1254/7 188/853/7 +f 193/855/7 195/935/7 303/856/7 +f 205/826/157 193/828/159 301/858/169 +f 314/860/7 196/1005/7 194/861/7 +f 200/863/171 199/1255/332 187/864/172 +f 309/1256/333 311/934/215 319/866/174 +f 321/867/175 305/1111/273 307/868/176 +f 307/868/176 309/1256/333 319/866/174 +f 288/869/7 284/972/7 221/870/7 +f 351/872/177 349/1079/7 350/873/7 +f 287/875/179 291/1051/179 290/655/179 +f 270/877/7 283/1101/7 282/878/7 +f 334/880/7 222/871/7 221/870/7 +f 318/882/180 317/1062/251 320/883/7 +f 251/887/184 250/985/185 293/888/185 +f 221/870/7 190/973/7 328/890/7 +f 196/891/187 208/1257/334 206/835/160 +f 261/892/188 202/1258/261 190/893/189 +f 185/895/7 342/1128/7 339/896/7 +f 298/898/190 315/1259/335 204/899/191 +f 320/883/195 312/1130/282 310/1260/336 +f 308/901/193 306/1129/281 322/902/194 +f 320/883/195 310/1260/336 308/901/193 +f 323/903/196 302/1046/337 301/904/197 +f 346/906/199 347/1112/274 341/907/200 +f 226/909/7 225/1073/7 340/910/7 +f 337/912/66 217/1037/253 213/913/202 +f 326/915/7 189/977/7 226/909/7 +f 312/916/7 313/1261/7 227/841/7 +f 302/918/203 316/1262/338 300/919/204 +f 195/827/158 207/1248/328 212/921/206 +f 211/923/206 208/1257/334 196/891/187 +f 200/863/171 188/865/173 329/925/207 +f 342/927/209 348/1096/265 345/928/210 +f 314/933/198 318/882/280 319/866/174 +f 195/935/7 216/1263/7 305/936/7 +f 223/822/179 292/821/179 288/937/179 +f 244/939/216 238/957/216 287/940/216 +f 320/883/7 322/902/7 321/867/7 +f 245/942/185 248/994/248 271/943/217 +f 326/945/218 343/1264/339 327/946/219 +f 253/948/184 256/960/185 295/949/185 +f 246/951/216 240/825/216 285/952/216 +f 238/957/7 244/939/7 243/958/7 +f 256/960/185 236/970/185 279/961/185 +f 232/830/7 231/1025/7 280/965/7 +f 236/970/7 256/960/7 255/971/7 +f 284/972/7 269/1265/7 190/973/7 +f 233/974/7 238/957/7 237/959/7 +f 268/976/7 293/1072/7 226/909/7 +f 271/978/188 263/1266/188 262/979/188 +f 209/981/224 217/1267/225 218/982/225 +f 252/984/226 249/1013/7 250/985/7 +f 247/986/223 246/951/216 281/953/216 +f 228/988/179 229/849/179 310/848/179 +f 288/990/185 277/1003/185 234/975/185 +f 248/994/228 245/942/7 246/951/7 +f 262/995/229 261/1268/229 242/996/228 +f 191/831/7 232/830/7 296/966/7 +f 239/823/185 245/942/185 282/944/185 +f 311/1000/179 309/1041/179 219/1001/230 +f 250/985/185 234/975/185 277/1003/185 +f 311/1004/7 215/1269/7 196/1005/7 +f 235/824/216 255/971/216 296/1006/216 +f 230/847/66 273/850/66 280/1011/66 +f 236/970/185 239/823/185 286/999/185 +f 249/1013/7 233/974/7 234/975/7 +f 267/1014/233 259/1270/233 258/1015/233 +f 328/1017/234 344/1098/340 352/874/235 +f 209/1019/236 197/1252/330 185/838/163 +f 220/1021/237 212/1271/238 211/1022/238 +f 232/830/7 304/1249/7 306/1024/7 +f 225/1026/66 224/820/66 338/1027/66 +f 330/1029/239 344/1272/341 328/1030/240 +f 258/1032/242 257/1273/242 254/1033/226 +f 278/1035/7 294/832/7 295/834/7 +f 217/1037/225 337/912/7 335/1038/7 +f 307/1040/7 220/658/237 219/1001/237 +f 237/959/185 243/958/185 284/1042/185 +f 228/917/7 227/841/7 281/843/7 +f 279/1044/66 274/657/66 275/656/66 +f 324/845/243 316/1253/342 302/1046/244 +f 277/1047/66 276/1074/66 224/820/66 +f 291/1051/179 287/875/179 288/937/179 +f 189/1052/247 201/1274/343 260/1053/233 +f 244/939/7 241/1070/228 242/1055/228 +f 218/1039/214 335/1038/179 333/1059/179 +f 299/1061/250 315/1275/344 317/1062/251 +f 260/1066/242 259/1276/242 252/1067/226 +f 289/851/7 290/655/7 274/657/7 +f 245/942/7 239/823/7 240/825/7 +f 285/1069/179 289/851/179 229/849/179 +f 274/657/66 279/1044/66 280/1011/66 +f 241/1070/223 244/939/216 283/941/216 +f 293/1072/7 277/1277/7 225/1073/7 +f 276/1074/7 275/656/7 291/1051/7 +f 235/824/216 280/1007/216 285/952/216 +f 264/968/229 263/1278/229 248/1078/228 +f 286/876/179 290/655/179 289/851/179 +f 337/1279/345 339/929/211 345/928/210 +f 349/1079/254 333/1136/283 335/1080/255 +f 335/1080/255 337/1279/345 345/928/210 +f 338/1027/7 224/820/7 223/822/7 +f 317/1062/256 315/1275/346 298/1082/257 +f 336/1081/179 223/822/179 222/938/179 +f 227/841/7 313/1261/7 298/1085/7 +f 198/839/164 327/1280/347 325/1087/258 +f 343/1088/259 201/1281/343 189/1089/247 +f 344/1091/260 328/1282/260 190/1092/189 +f 336/1283/348 334/1099/268 350/873/263 +f 346/906/199 340/908/201 338/1094/262 +f 338/1094/262 336/1283/348 350/873/263 +f 325/1095/264 327/1137/349 348/1096/265 +f 346/906/7 350/873/7 349/1079/7 +f 330/1097/266 351/872/177 352/874/178 +f 332/1018/200 352/874/235 350/873/263 +f 256/960/7 253/948/226 254/1100/226 +f 283/1101/7 287/1284/7 286/1102/7 +f 257/1103/233 203/1285/276 191/1104/269 +f 192/1106/192 204/1286/191 264/1107/188 +f 278/1045/66 275/656/66 276/1074/66 +f 351/872/270 330/1097/350 329/1109/271 +f 321/867/175 323/903/196 303/905/198 +f 347/1112/274 343/1138/351 326/1113/275 +f 203/1114/276 316/1287/352 300/1115/277 +f 322/902/7 324/845/243 323/903/245 +f 187/864/172 199/1255/332 210/1117/236 +f 345/928/7 348/1096/353 347/1112/278 +f 249/1013/216 252/984/182 267/1119/181 +f 233/974/216 249/1013/216 294/1120/216 +f 333/1122/7 331/852/7 187/854/7 +f 297/1124/279 299/1061/354 318/882/280 +f 243/958/185 242/1055/248 269/1125/217 +f 255/971/216 254/1100/182 265/1126/181 +f 233/974/216 278/1121/216 287/940/216 +f 186/1127/7 325/1288/7 342/1128/7 +f 324/845/167 322/902/194 306/1129/281 +f 320/883/195 317/1062/256 313/1083/168 +f 308/1134/66 230/847/66 231/1012/66 +f 349/1079/254 351/872/270 331/1110/272 +f 347/1112/278 348/1096/353 327/1137/284 +f 199/1139/286 31/1202/286 42/1140/12 +f 204/1142/287 36/1289/287 96/1143/10 +f 264/1144/10 96/1143/10 95/1145/10 +f 263/1146/10 95/1145/10 94/1147/10 +f 197/1149/288 29/1164/288 30/1150/289 +f 198/1151/289 30/1150/289 159/1152/290 +f 259/1154/8 91/1158/8 90/1155/8 +f 260/1157/8 92/1178/8 91/1158/8 +f 36/1160/287 204/1290/287 315/1161/291 +f 315/1161/291 299/1181/298 131/1180/298 +f 131/1180/298 147/1159/291 315/1161/291 +f 210/1141/12 42/1140/12 41/1162/12 +f 209/1163/12 41/1162/12 29/1164/288 +f 212/1165/11 44/1172/11 43/1166/11 +f 302/1168/292 134/1195/292 37/1169/293 +f 207/1171/294 39/1173/294 44/1172/11 +f 205/1170/293 37/1169/293 39/1173/294 +f 33/1175/296 201/1291/296 343/1176/295 +f 343/1176/295 327/1153/290 159/1152/290 +f 159/1152/290 175/1174/295 343/1176/295 +f 201/1177/296 33/1292/296 92/1178/8 +f 206/1179/297 38/1200/297 131/1180/298 +f 162/1183/300 330/1185/300 344/1184/299 +f 344/1184/299 202/1293/302 34/1294/302 +f 34/1294/302 176/1182/299 344/1184/299 +f 330/1185/300 162/1183/300 32/1186/301 +f 258/1156/8 90/1155/8 89/1188/8 +f 262/1148/10 94/1147/10 93/1190/10 +f 261/1191/10 93/1190/10 34/1192/302 +f 134/1195/292 302/1168/292 316/1196/303 +f 316/1196/303 203/1295/304 35/1296/304 +f 35/1296/304 148/1194/303 316/1196/303 +f 257/1189/8 89/1188/8 35/1197/304 +f 208/1199/305 40/1201/305 38/1200/297 +f 211/1167/11 43/1166/11 40/1201/305 +f 200/1187/301 32/1186/301 31/1202/286 +o frame +v -0.125000 0.000000 1.500000 +v -0.125000 3.000000 1.500000 +v -0.125000 0.000000 -1.500000 +v -0.125000 3.000000 -1.500000 +v 0.125000 0.000000 1.500000 +v 0.125000 3.000000 1.500000 +v 0.125000 0.000000 -1.500000 +v 0.125000 3.000000 -1.500000 +v 0.125000 2.937500 0.737027 +v -0.125000 2.937500 0.737027 +v 0.125000 2.857760 -0.997420 +v -0.125000 2.857760 -0.997420 +v 0.125000 2.937500 -0.737027 +v -0.125000 2.937500 -0.737027 +v 0.125000 2.857760 0.997420 +v -0.125000 2.857760 0.997420 +v 0.125000 2.639908 -1.188040 +v -0.125000 2.639908 -1.188040 +v 0.125000 2.342317 -1.257812 +v -0.125000 2.342317 -1.257812 +v 0.125000 2.639908 1.188040 +v -0.125000 2.639908 1.188040 +v 0.125000 0.657683 -1.257812 +v -0.125000 0.657683 -1.257812 +v 0.125000 2.342317 1.257812 +v -0.125000 2.342317 1.257812 +v 0.125000 0.657683 1.257812 +v -0.125000 0.657683 1.257812 +v 0.125000 0.360092 -1.188040 +v -0.125000 0.360092 -1.188040 +v 0.125000 0.360092 1.188040 +v -0.125000 0.360092 1.188040 +v 0.125000 0.142239 0.997420 +v -0.125000 0.142239 0.997420 +v 0.125000 0.142239 -0.997420 +v -0.125000 0.142239 -0.997420 +v 0.125000 0.062500 -0.737027 +v -0.125000 0.062500 -0.737027 +v 0.125000 0.062500 0.737027 +v -0.125000 0.062500 0.737027 +v -0.125000 2.848552 0.726781 +v -0.125000 2.848552 -0.726781 +v 0.125000 2.848552 -0.726781 +v 0.125000 2.780064 -0.958169 +v -0.125000 2.780064 -0.958169 +v 0.125000 2.848552 0.726781 +v 0.125000 2.780064 0.958169 +v -0.125000 2.780064 0.958169 +v 0.125000 2.595050 -1.120056 +v 0.125000 2.330607 -1.179983 +v -0.125000 2.595050 -1.120056 +v -0.125000 2.330607 -1.179983 +v -0.125000 2.595050 1.120056 +v 0.125000 2.595050 1.120056 +v 0.125000 2.330607 1.179983 +v -0.125000 2.330607 1.179983 +v 0.125000 0.669393 -1.179983 +v -0.125000 0.669393 -1.179983 +v -0.125000 0.669393 1.179983 +v 0.125000 0.669393 1.179983 +v 0.125000 0.404949 1.120056 +v -0.125000 0.404949 1.120056 +v 0.125000 0.404949 -1.120056 +v -0.125000 0.404949 -1.120056 +v 0.125000 0.219935 -0.958169 +v -0.125000 0.219935 -0.958169 +v -0.125000 0.219935 0.958169 +v 0.125000 0.219935 0.958169 +v 0.125000 0.151448 -0.726781 +v -0.125000 0.151448 -0.726781 +v -0.125000 0.151448 0.726781 +v 0.125000 0.151448 0.726781 +v -0.165200 2.915023 0.725503 +v -0.165200 2.915023 -0.725503 +v 0.165200 2.912970 -0.724451 +v 0.165200 2.834591 -0.980400 +v -0.165200 2.836530 -0.981824 +v 0.165200 2.912970 0.724451 +v 0.165200 2.834591 0.980400 +v -0.165200 2.836530 0.981824 +v 0.165200 2.620457 -1.167768 +v 0.165200 2.327943 -1.236349 +v -0.165200 2.622084 -1.169464 +v -0.165200 2.329146 -1.238145 +v -0.165200 2.622084 1.169464 +v 0.165200 2.620457 1.167768 +v 0.165200 2.327943 1.236349 +v -0.165200 2.329146 1.238145 +v 0.165200 0.672056 -1.236349 +v -0.165200 0.670854 -1.238145 +v -0.165200 0.670854 1.238145 +v 0.165200 0.672056 1.236349 +v 0.165200 0.379543 1.167768 +v -0.165200 0.377916 1.169464 +v 0.165200 0.379543 -1.167768 +v -0.165200 0.377916 -1.169464 +v 0.165200 0.165408 -0.980400 +v -0.165200 0.163470 -0.981824 +v -0.165200 0.163470 0.981824 +v 0.165200 0.165408 0.980400 +v 0.165200 0.087030 -0.724451 +v -0.165200 0.084977 -0.725503 +v -0.165200 0.084977 0.725503 +v 0.165200 0.087030 0.724451 +v 0.165200 2.848552 -0.726781 +v 0.165200 0.669393 -1.179983 +v 0.165200 2.330607 -1.179983 +v -0.165200 0.219935 -0.958169 +v -0.165200 0.151448 -0.726781 +v -0.165200 2.848552 0.726781 +v -0.165200 2.848552 -0.726781 +v -0.165200 2.330607 1.179983 +v -0.165200 2.595050 1.120056 +v 0.165200 0.151448 -0.726781 +v 0.165200 0.219935 -0.958169 +v 0.165200 2.330607 1.179983 +v 0.165200 0.404949 1.120056 +v 0.165200 0.219935 0.958169 +v 0.165200 2.780064 0.958169 +v 0.165200 2.595050 1.120056 +v 0.165200 2.780064 -0.958169 +v -0.165200 2.780064 -0.958169 +v 0.165200 2.848552 0.726781 +v -0.165200 2.780064 0.958169 +v 0.165200 2.595050 -1.120056 +v -0.165200 2.595050 -1.120056 +v -0.165200 2.330607 -1.179983 +v -0.165200 0.669393 -1.179983 +v -0.165200 0.669393 1.179983 +v 0.165200 0.669393 1.179983 +v -0.165200 0.404949 1.120056 +v 0.165200 0.404949 -1.120056 +v -0.165200 0.404949 -1.120056 +v -0.165200 0.219935 0.958169 +v -0.165200 0.151448 0.726781 +v 0.165200 0.151448 0.726781 +v 0.230582 0.420818 -1.368763 +v 0.080675 0.420818 -1.368763 +v 0.080675 0.577552 -1.368763 +v 0.230582 0.577552 -1.368763 +v 0.080675 0.559258 -1.358201 +v 0.230582 0.559258 -1.358201 +v 0.080675 0.559258 -1.337076 +v 0.230582 0.559258 -1.337076 +v 0.080675 0.577552 -1.326513 +v 0.230582 0.577552 -1.326513 +v 0.080675 0.595847 -1.337076 +v 0.230582 0.595847 -1.337076 +v 0.080675 0.595847 -1.358201 +v 0.230582 0.595847 -1.358201 +v 0.080675 0.402524 -1.358201 +v 0.230582 0.402524 -1.358201 +v 0.080675 0.402524 -1.337076 +v 0.230582 0.402524 -1.337076 +v 0.080675 0.420819 -1.326513 +v 0.230582 0.420819 -1.326513 +v 0.080675 0.439113 -1.337076 +v 0.230582 0.439113 -1.337076 +v 0.080675 0.439113 -1.358201 +v 0.230582 0.439113 -1.358201 +v 0.198458 0.382969 -1.310873 +v 0.198458 0.398839 -1.286747 +v 0.198458 0.597258 -1.286747 +v 0.198458 0.613127 -1.310873 +v 0.198458 0.398839 -1.408400 +v 0.198458 0.382969 -1.384274 +v 0.198458 0.613127 -1.384274 +v 0.198458 0.597258 -1.408400 +v 0.218101 0.398839 -1.316452 +v 0.218101 0.382969 -1.340579 +v 0.218101 0.613127 -1.340579 +v 0.218101 0.597258 -1.316452 +v 0.218101 0.382969 -1.354568 +v 0.218101 0.398839 -1.378695 +v 0.218101 0.597258 -1.378695 +v 0.218101 0.613127 -1.354568 +v 0.117133 0.382969 -1.306907 +v 0.117133 0.398839 -1.286747 +v 0.117133 0.597258 -1.286747 +v 0.117133 0.613127 -1.306907 +v 0.117133 0.398839 -1.408400 +v 0.117133 0.382969 -1.388240 +v 0.117133 0.613127 -1.388240 +v 0.117133 0.597258 -1.408400 +v 0.164418 0.398839 -1.288175 +v 0.164418 0.382969 -1.308335 +v 0.164418 0.613127 -1.308335 +v 0.164418 0.597257 -1.288175 +v 0.164418 0.382969 -1.386812 +v 0.164418 0.398839 -1.406973 +v 0.164418 0.597257 -1.406973 +v 0.164418 0.613127 -1.386812 +v 0.230582 2.427027 -1.368763 +v 0.080675 2.427027 -1.368763 +v 0.080675 2.583760 -1.368763 +v 0.230582 2.583760 -1.368763 +v 0.080675 2.565465 -1.358201 +v 0.230582 2.565465 -1.358201 +v 0.080675 2.565465 -1.337076 +v 0.230582 2.565465 -1.337076 +v 0.080675 2.583760 -1.326513 +v 0.230582 2.583760 -1.326513 +v 0.080675 2.602055 -1.337076 +v 0.230582 2.602055 -1.337076 +v 0.080675 2.602055 -1.358201 +v 0.230582 2.602055 -1.358201 +v 0.080675 2.408732 -1.358201 +v 0.230582 2.408732 -1.358201 +v 0.080675 2.408732 -1.337076 +v 0.230582 2.408732 -1.337076 +v 0.080675 2.427027 -1.326513 +v 0.230582 2.427027 -1.326513 +v 0.080675 2.445322 -1.337076 +v 0.230582 2.445322 -1.337076 +v 0.080675 2.445322 -1.358201 +v 0.230582 2.445322 -1.358201 +v 0.198458 2.389177 -1.310873 +v 0.198458 2.405047 -1.286747 +v 0.198458 2.603466 -1.286747 +v 0.198458 2.619336 -1.310873 +v 0.198458 2.405047 -1.408400 +v 0.198458 2.389177 -1.384273 +v 0.198458 2.619336 -1.384273 +v 0.198458 2.603466 -1.408400 +v 0.218101 2.405047 -1.316452 +v 0.218101 2.389177 -1.340578 +v 0.218101 2.619336 -1.340578 +v 0.218101 2.603466 -1.316452 +v 0.218101 2.389177 -1.354568 +v 0.218101 2.405047 -1.378694 +v 0.218101 2.603466 -1.378694 +v 0.218101 2.619336 -1.354568 +v 0.117133 2.389177 -1.306907 +v 0.117133 2.405047 -1.286747 +v 0.117133 2.603466 -1.286747 +v 0.117133 2.619336 -1.306907 +v 0.117133 2.405047 -1.408400 +v 0.117133 2.389177 -1.388240 +v 0.117133 2.619336 -1.388240 +v 0.117133 2.603466 -1.408400 +v 0.164418 2.405047 -1.288174 +v 0.164418 2.389177 -1.308335 +v 0.164418 2.619336 -1.308335 +v 0.164418 2.603466 -1.288174 +v 0.164418 2.389177 -1.386812 +v 0.164418 2.405047 -1.406972 +v 0.164418 2.603466 -1.406972 +v 0.164418 2.619336 -1.386812 +vt 0.523106 0.381508 +vt 0.545208 0.377541 +vt 0.545208 0.381508 +vt 0.546975 0.384195 +vt 0.545208 0.388441 +vt 0.801271 0.940418 +vt 0.796004 0.931517 +vt 0.801271 0.931358 +vt 0.521338 0.385754 +vt 0.519150 0.380887 +vt 0.521338 0.384195 +vt 0.767060 0.321658 +vt 0.768828 0.324345 +vt 0.767060 0.335209 +vt 0.523105 0.392408 +vt 0.545208 0.392408 +vt 0.772134 0.929272 +vt 0.794236 0.924002 +vt 0.794236 0.929272 +vt 0.794236 0.942505 +vt 0.765099 0.940418 +vt 0.770366 0.931517 +vt 0.770366 0.940259 +vt 0.794236 0.947774 +vt 0.772134 0.942505 +vt 0.811367 0.391021 +vt 0.809329 0.387491 +vt 0.813405 0.387491 +vt 0.793185 0.331070 +vt 0.776487 0.333423 +vt 0.776487 0.331070 +vt 0.930721 0.719067 +vt 0.914023 0.721420 +vt 0.914023 0.719067 +vt 0.793185 0.333423 +vt 0.776487 0.335777 +vt 0.930721 0.716713 +vt 0.914023 0.716713 +vt 0.793185 0.321658 +vt 0.776487 0.324011 +vt 0.776487 0.321658 +vt 0.930721 0.723773 +vt 0.914023 0.726126 +vt 0.914023 0.723773 +vt 0.930721 0.728479 +vt 0.914023 0.730832 +vt 0.914023 0.728479 +vt 0.793185 0.324011 +vt 0.776487 0.326364 +vt 0.834837 0.386315 +vt 0.836875 0.387491 +vt 0.836875 0.389844 +vt 0.930721 0.726126 +vt 0.793185 0.326364 +vt 0.776487 0.328717 +vt 0.930721 0.721420 +vt 0.793185 0.328717 +vt 0.547515 0.390166 +vt 0.547515 0.386200 +vt 0.520798 0.390166 +vt 0.523105 0.388441 +vt 0.547515 0.379783 +vt 0.520798 0.379783 +vt 0.520798 0.383750 +vt 0.797093 0.947706 +vt 0.797093 0.942437 +vt 0.769277 0.947706 +vt 0.772134 0.947774 +vt 0.797093 0.924070 +vt 0.769277 0.924070 +vt 0.769277 0.929339 +vt 0.546975 0.385754 +vt 0.549163 0.380886 +vt 0.549163 0.389063 +vt 0.209594 0.970120 +vt 0.205627 0.948018 +vt 0.209594 0.948018 +vt 0.212281 0.946250 +vt 0.216527 0.948018 +vt 0.666628 0.910555 +vt 0.657727 0.915822 +vt 0.657568 0.910555 +vt 0.213840 0.971888 +vt 0.208972 0.974076 +vt 0.212281 0.971888 +vt 0.580692 0.377541 +vt 0.582460 0.380228 +vt 0.580692 0.391092 +vt 0.220494 0.970120 +vt 0.220494 0.948018 +vt 0.655481 0.939692 +vt 0.650212 0.917590 +vt 0.655482 0.917590 +vt 0.668715 0.917590 +vt 0.666628 0.946727 +vt 0.657727 0.941460 +vt 0.666469 0.941460 +vt 0.673984 0.939692 +vt 0.673984 0.917590 +vt 0.821064 0.387491 +vt 0.823102 0.386315 +vt 0.825140 0.387491 +vt 0.679555 0.971085 +vt 0.677202 0.954387 +vt 0.679555 0.954387 +vt 0.738611 0.969943 +vt 0.721913 0.972296 +vt 0.721913 0.969943 +vt 0.677202 0.971085 +vt 0.674849 0.954387 +vt 0.738611 0.967590 +vt 0.721913 0.967590 +vt 0.688968 0.971085 +vt 0.686615 0.954387 +vt 0.688968 0.954387 +vt 0.738611 0.974649 +vt 0.721913 0.977002 +vt 0.721913 0.974649 +vt 0.738611 0.979355 +vt 0.721913 0.981709 +vt 0.721913 0.979355 +vt 0.686615 0.971085 +vt 0.684261 0.954387 +vt 0.562085 0.875993 +vt 0.564123 0.877169 +vt 0.564123 0.879522 +vt 0.738611 0.977002 +vt 0.684261 0.971085 +vt 0.681908 0.954387 +vt 0.738611 0.972296 +vt 0.681908 0.971085 +vt 0.218252 0.945711 +vt 0.214285 0.945711 +vt 0.218252 0.972427 +vt 0.216527 0.970120 +vt 0.207869 0.945711 +vt 0.207869 0.972427 +vt 0.211835 0.972427 +vt 0.673916 0.914733 +vt 0.668647 0.914733 +vt 0.673916 0.942549 +vt 0.668715 0.939692 +vt 0.650280 0.914733 +vt 0.650280 0.942549 +vt 0.655549 0.942549 +vt 0.213840 0.946250 +vt 0.208972 0.944062 +vt 0.217149 0.944062 +vt 0.523106 0.377541 +vt 0.796004 0.940259 +vt 0.519150 0.389063 +vt 0.768828 0.332521 +vt 0.744958 0.335209 +vt 0.744958 0.321658 +vt 0.743190 0.332521 +vt 0.743190 0.324345 +vt 0.772134 0.924002 +vt 0.765099 0.931358 +vt 0.813405 0.389844 +vt 0.809329 0.389844 +vt 0.811367 0.386315 +vt 0.793185 0.335777 +vt 0.930721 0.730832 +vt 0.834837 0.391021 +vt 0.832799 0.389844 +vt 0.832799 0.387491 +vt 0.520798 0.386200 +vt 0.547515 0.383750 +vt 0.769277 0.942437 +vt 0.797093 0.929339 +vt 0.205627 0.970120 +vt 0.666469 0.915822 +vt 0.217148 0.974075 +vt 0.582460 0.388405 +vt 0.558590 0.391092 +vt 0.558590 0.377541 +vt 0.556823 0.388405 +vt 0.556823 0.380228 +vt 0.650212 0.939692 +vt 0.657568 0.946727 +vt 0.825140 0.389844 +vt 0.823102 0.391021 +vt 0.821064 0.389844 +vt 0.674849 0.971085 +vt 0.738611 0.981709 +vt 0.562085 0.880699 +vt 0.560047 0.879522 +vt 0.560047 0.877169 +vt 0.214285 0.972427 +vt 0.211836 0.945711 +vt 0.668647 0.942549 +vt 0.655549 0.914733 +vt 0.401359 0.003830 +vt 0.408321 0.088818 +vt 0.401361 0.338004 +vt 0.393699 0.365850 +vt 0.365852 0.031678 +vt 0.393699 0.031678 +vt 0.280864 0.038640 +vt 0.031677 0.031680 +vt 0.031677 0.365850 +vt 0.003830 0.031680 +vt 0.031677 0.003832 +vt 0.365852 0.003830 +vt 0.365852 0.393698 +vt 0.365852 0.365850 +vt 0.841888 0.485825 +vt 0.846366 0.647738 +vt 0.841888 0.647738 +vt 0.769577 0.647738 +vt 0.765099 0.485825 +vt 0.769577 0.485825 +vt 0.697356 0.474001 +vt 0.708945 0.447031 +vt 0.702588 0.475501 +vt 0.743270 0.076473 +vt 0.748362 0.239849 +vt 0.743190 0.241352 +vt 0.116663 0.358888 +vt 0.814040 0.485825 +vt 0.809562 0.458945 +vt 0.814040 0.458945 +vt 0.797425 0.485825 +vt 0.801903 0.647738 +vt 0.797425 0.647738 +vt 0.628662 0.637787 +vt 0.640527 0.664610 +vt 0.635711 0.667109 +vt 0.754815 0.268328 +vt 0.750109 0.270703 +vt 0.841888 0.458945 +vt 0.846366 0.485825 +vt 0.797425 0.458945 +vt 0.801902 0.485825 +vt 0.702448 0.637376 +vt 0.697276 0.638880 +vt 0.560135 0.473269 +vt 0.571963 0.446453 +vt 0.565468 0.474876 +vt 0.728569 0.253018 +vt 0.735531 0.003830 +vt 0.735531 0.338004 +vt 0.814040 0.647738 +vt 0.809562 0.485825 +vt 0.765099 0.458945 +vt 0.769577 0.458945 +vt 0.586568 0.692218 +vt 0.571913 0.664610 +vt 0.590826 0.688728 +vt 0.769577 0.702002 +vt 0.765099 0.674618 +vt 0.769577 0.674618 +vt 0.841888 0.674618 +vt 0.814040 0.702002 +vt 0.814040 0.674618 +vt 0.841888 0.702002 +vt 0.814040 0.732206 +vt 0.814040 0.431561 +vt 0.841888 0.401357 +vt 0.841888 0.431561 +vt 0.797425 0.674618 +vt 0.797425 0.702002 +vt 0.878810 0.196531 +vt 0.850962 0.381573 +vt 0.850963 0.196531 +vt 0.769577 0.732206 +vt 0.797425 0.732206 +vt 0.797425 0.431561 +vt 0.769577 0.431561 +vt 0.797425 0.401357 +vt 0.769577 0.401357 +vt 0.850962 0.188872 +vt 0.878810 0.003830 +vt 0.878810 0.188872 +vt 0.769214 0.021788 +vt 0.754859 0.049503 +vt 0.750154 0.047134 +vt 0.801903 0.702002 +vt 0.769193 0.296049 +vt 0.773358 0.292689 +vt 0.801903 0.458945 +vt 0.586590 0.418847 +vt 0.567148 0.443960 +vt 0.765099 0.431561 +vt 0.797900 0.313998 +vt 0.801475 0.310034 +vt 0.801903 0.431561 +vt 0.615740 0.401357 +vt 0.590849 0.422333 +vt 0.765099 0.401357 +vt 0.797897 0.003830 +vt 0.773379 0.025144 +vt 0.801903 0.732206 +vt 0.615746 0.709695 +vt 0.619388 0.705598 +vt 0.765099 0.702002 +vt 0.979972 0.974174 +vt 0.974896 0.788118 +vt 0.979972 0.786518 +vt 0.883288 0.381573 +vt 0.878810 0.381573 +vt 0.572625 0.636718 +vt 0.578156 0.662994 +vt 0.634082 0.474876 +vt 0.641239 0.636718 +vt 0.633938 0.636178 +vt 0.955972 0.972704 +vt 0.949494 0.787822 +vt 0.955973 0.787985 +vt 0.565324 0.636178 +vt 0.710061 0.475048 +vt 0.931894 0.505372 +vt 0.925415 0.320490 +vt 0.931894 0.320653 +vt 0.748502 0.077974 +vt 0.755924 0.240301 +vt 0.646770 0.662995 +vt 0.989892 0.128323 +vt 0.996170 0.313071 +vt 0.989892 0.312775 +vt 0.761304 0.266651 +vt 0.710010 0.637828 +vt 0.755560 0.707562 +vt 0.731650 0.685815 +vt 0.757439 0.701378 +vt 0.572689 0.474336 +vt 0.659463 0.422333 +vt 0.689616 0.411717 +vt 0.663366 0.426670 +vt 0.594728 0.684386 +vt 0.646819 0.448064 +vt 0.640577 0.446453 +vt 0.974896 0.972573 +vt 0.968618 0.787822 +vt 0.641303 0.474336 +vt 0.755975 0.077521 +vt 0.621002 0.699326 +vt 0.708900 0.665856 +vt 0.715389 0.664178 +vt 0.801472 0.007790 +vt 0.777586 0.029541 +vt 0.659440 0.688728 +vt 0.689617 0.699326 +vt 0.688002 0.705598 +vt 0.621002 0.411717 +vt 0.594752 0.426670 +vt 0.755558 0.405318 +vt 0.731671 0.427068 +vt 0.727464 0.422672 +vt 0.777564 0.288288 +vt 0.803354 0.303850 +vt 0.663342 0.684386 +vt 0.578204 0.448064 +vt 0.715432 0.448705 +vt 0.727443 0.690216 +vt 0.761346 0.051177 +vt 0.560047 0.637787 +vt 0.628749 0.473269 +vt 0.765099 0.647738 +vt 0.846366 0.674618 +vt 0.567097 0.667109 +vt 0.801903 0.674618 +vt 0.809562 0.647738 +vt 0.704195 0.668230 +vt 0.846366 0.431561 +vt 0.684360 0.709695 +vt 0.809562 0.401357 +vt 0.814040 0.401357 +vt 0.751982 0.401357 +vt 0.723300 0.419316 +vt 0.846366 0.458945 +vt 0.655182 0.692219 +vt 0.809562 0.431561 +vt 0.704240 0.444662 +vt 0.809562 0.674618 +vt 0.723279 0.693576 +vt 0.846366 0.702002 +vt 0.655204 0.418847 +vt 0.635762 0.443960 +vt 0.846366 0.732206 +vt 0.841888 0.732206 +vt 0.684355 0.401357 +vt 0.809562 0.702002 +vt 0.751986 0.711526 +vt 0.846484 0.003830 +vt 0.850963 0.003830 +vt 0.984815 0.126722 +vt 0.984816 0.314376 +vt 0.883288 0.188872 +vt 0.936879 0.506839 +vt 0.936879 0.319186 +vt 0.846484 0.196531 +vt 0.960957 0.974171 +vt 0.960957 0.786518 +vt 0.662272 0.030807 +vt 0.474619 0.030807 +vt 0.441471 0.303256 +vt 0.474619 0.311027 +vt 0.417204 0.282023 +vt 0.441470 0.038579 +vt 0.417203 0.059813 +vt 0.408322 0.253018 +vt 0.338874 0.292590 +vt 0.338874 0.104938 +vt 0.066426 0.071790 +vt 0.058654 0.104939 +vt 0.087659 0.047523 +vt 0.331102 0.071789 +vt 0.309869 0.047522 +vt 0.116664 0.038641 +vt 0.003830 0.365850 +vt 0.031677 0.393698 +vt 0.058654 0.292591 +vt 0.331102 0.325739 +vt 0.309869 0.350006 +vt 0.066426 0.325740 +vt 0.087659 0.350006 +vt 0.280864 0.358888 +vt 0.662272 0.311027 +vt 0.695421 0.038579 +vt 0.719687 0.059812 +vt 0.695421 0.303255 +vt 0.719687 0.282022 +vt 0.728569 0.088816 +vt 0.801903 0.401357 +vt 0.619384 0.405449 +vt 0.765099 0.732206 +vt 0.883288 0.196531 +vt 0.949494 0.972866 +vt 0.925415 0.505535 +vt 0.996170 0.128027 +vt 0.687998 0.405449 +vt 0.968617 0.972870 +vt 0.803354 0.013970 +vt 0.757439 0.411498 +vt 0.846366 0.401357 +vt 0.809562 0.732206 +vt 0.846484 0.188872 +vt 0.883288 0.003830 +vt 0.846484 0.381573 +vn 0.8341 0.0000 0.5516 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.8341 0.0000 -0.5516 +vn 0.0302 0.0000 0.9995 +vn 0.0302 0.0000 -0.9995 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.6392 -0.6425 -0.4226 +vn 0.6392 0.6425 -0.4226 +vn 0.6392 -0.6425 0.4226 +vn 0.6391 0.6425 0.4226 +vn 0.0187 -0.7856 -0.6184 +vn 0.0187 0.7856 -0.6184 +vn 0.0187 -0.7856 0.6184 +vn 0.0187 0.7856 0.6184 +vn 0.6392 0.6425 0.4227 +vn 0.6391 -0.6425 0.4226 +vn 0.6392 0.6425 0.4226 +vn 0.6391 -0.6425 0.4227 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.9897 0.1434 +vn 0.0000 -0.9897 -0.1434 +vn 0.0000 0.9897 -0.1434 +vn 0.0000 0.9897 0.1434 +vn -0.5135 0.8467 -0.1398 +vn -0.5473 0.7055 -0.4502 +vn -0.5093 0.8532 -0.1126 +vn -0.5135 -0.8467 0.1398 +vn -0.5093 -0.8532 -0.1126 +vn -0.5135 -0.8467 -0.1398 +vn 0.0000 -0.9589 0.2838 +vn 0.0000 -0.8420 0.5395 +vn 0.5469 0.8259 -0.1371 +vn 0.5809 0.6864 -0.4376 +vn 0.5811 0.6808 -0.4458 +vn -0.5473 -0.7055 -0.4502 +vn -0.5475 -0.7002 -0.4582 +vn 0.0000 0.8420 0.5395 +vn -0.5093 0.8532 0.1126 +vn -0.5135 0.8467 0.1398 +vn 0.5469 -0.8259 -0.1371 +vn 0.5809 -0.6864 -0.4376 +vn 0.5424 -0.8330 -0.1090 +vn 0.0000 0.9589 0.2838 +vn 0.5589 -0.3954 0.7289 +vn 0.5809 -0.6864 0.4376 +vn 0.5529 -0.3591 0.7519 +vn 0.0000 0.4536 -0.8912 +vn 0.0000 0.6585 -0.7526 +vn 0.0000 0.8420 -0.5395 +vn 0.0000 -0.8420 -0.5395 +vn 0.0000 -0.4536 -0.8912 +vn 0.0000 -0.1112 -0.9938 +vn 0.0000 -0.4536 0.8912 +vn 0.0000 -0.1112 0.9938 +vn 0.0000 0.1112 -0.9938 +vn 0.0000 0.4536 0.8912 +vn 0.0000 0.1112 0.9938 +vn -0.5253 -0.4049 0.7484 +vn -0.5473 -0.7055 0.4502 +vn -0.5475 -0.7002 0.4582 +vn -0.5253 -0.4049 -0.7484 +vn -0.5198 -0.3697 -0.7702 +vn 0.0000 0.6585 0.7526 +vn 0.5589 -0.3954 -0.7289 +vn 0.5811 -0.6808 -0.4458 +vn -0.4669 -0.1159 -0.8767 +vn -0.4604 -0.0861 -0.8835 +vn 0.4994 -0.1145 -0.8588 +vn 0.5529 -0.3591 -0.7519 +vn -0.4669 -0.1159 0.8767 +vn -0.5198 -0.3697 0.7702 +vn 0.4994 -0.1145 0.8588 +vn 0.4924 -0.0833 0.8664 +vn 0.4924 0.0833 0.8664 +vn 0.4994 0.1145 0.8588 +vn 0.5424 -0.8330 0.1090 +vn 0.5469 -0.8259 0.1371 +vn 0.5469 0.8259 0.1371 +vn 0.5424 0.8330 -0.1090 +vn 0.0000 -0.9589 -0.2838 +vn 0.5811 -0.6808 0.4458 +vn 0.5809 0.6864 0.4376 +vn 0.5424 0.8330 0.1090 +vn 0.0000 0.9589 -0.2838 +vn -0.5093 -0.8532 0.1126 +vn -0.5473 0.7055 0.4502 +vn -0.5475 0.7002 0.4582 +vn 0.4994 0.1145 -0.8588 +vn 0.5529 0.3591 -0.7519 +vn 0.4924 0.0833 -0.8664 +vn -0.4669 0.1159 -0.8767 +vn -0.5198 0.3697 -0.7702 +vn -0.5253 0.4049 -0.7484 +vn 0.0000 -0.6585 0.7526 +vn 0.5589 0.3954 -0.7289 +vn -0.5475 0.7002 -0.4582 +vn 0.0000 -0.6585 -0.7526 +vn -0.5253 0.4049 0.7484 +vn -0.5198 0.3697 0.7702 +vn 0.5589 0.3954 0.7289 +vn 0.5811 0.6808 0.4458 +vn 0.5529 0.3591 0.7519 +vn -0.4669 0.1159 0.8767 +vn -0.4604 0.0861 0.8835 +vn 0.4924 -0.0833 -0.8664 +vn -0.4605 0.0861 -0.8835 +vn -0.4605 -0.0861 0.8835 +s off +f 812/1297/355 802/1298/355 809/1299/355 +f 809/1299/356 810/1300/356 814/1301/356 +f 822/1302/357 826/1303/357 817/1304/357 +f 816/1305/358 804/1306/358 811/1307/358 +f 805/1308/359 806/1309/359 802/1310/359 +f 808/1311/360 814/1301/360 805/1312/360 +f 828/1313/361 818/1314/361 825/1315/361 +f 825/1315/356 826/1303/356 830/1316/356 +f 823/1317/358 827/1318/358 832/1319/358 +f 821/1320/362 831/1321/362 830/1316/362 +f 777/1322/356 798/1323/356 794/1324/356 +f 780/1325/363 781/1326/363 779/1327/363 +f 796/1328/364 797/1329/364 795/1330/364 +f 782/1331/357 783/1332/357 781/1326/357 +f 794/1333/365 795/1330/365 793/1334/365 +f 784/1335/365 785/1336/365 783/1337/365 +f 800/1338/366 778/1339/366 799/1340/366 +f 792/1341/357 793/1342/357 791/1343/357 +f 786/1344/364 787/1345/364 785/1336/364 +f 788/1346/356 786/1347/356 784/1348/356 +f 777/1349/363 791/1343/363 778/1339/363 +f 788/1350/358 789/1351/358 787/1345/358 +f 798/1352/358 799/1340/358 797/1329/358 +f 790/1353/366 779/1327/366 789/1351/366 +f 806/1354/367 814/1301/367 813/1355/367 +f 807/1356/368 815/1357/368 808/1311/368 +f 801/1358/369 809/1299/369 802/1298/369 +f 804/1359/370 812/1297/370 811/1360/370 +f 822/1361/371 830/1316/371 829/1362/371 +f 823/1363/372 831/1321/372 824/1364/372 +f 817/1365/373 825/1315/373 818/1314/373 +f 820/1366/374 828/1313/374 827/1367/374 +f 813/1368/357 801/1369/357 806/1370/357 +f 868/1371/355 858/1372/355 865/1373/355 +f 865/1373/356 866/1374/356 870/1375/356 +f 878/1376/357 882/1377/357 873/1378/357 +f 872/1379/358 860/1380/358 867/1381/358 +f 861/1382/359 862/1383/359 858/1384/359 +f 864/1385/360 870/1375/360 861/1386/360 +f 884/1387/361 874/1388/361 881/1389/361 +f 881/1389/356 882/1377/356 886/1390/356 +f 879/1391/358 883/1392/358 888/1393/358 +f 880/1394/362 886/1390/362 877/1395/362 +f 854/1396/356 852/1397/356 850/1398/356 +f 836/1399/363 837/1400/363 835/1401/363 +f 852/1402/364 853/1403/364 851/1404/364 +f 838/1405/357 839/1406/357 837/1400/357 +f 850/1407/365 851/1404/365 849/1408/365 +f 840/1409/365 841/1410/365 839/1411/365 +f 856/1412/366 834/1413/366 855/1414/366 +f 848/1415/357 849/1416/357 847/1417/357 +f 842/1418/364 843/1419/364 841/1410/364 +f 844/1420/356 842/1421/356 840/1422/356 +f 833/1423/363 847/1417/363 834/1413/363 +f 844/1424/358 845/1425/358 843/1419/358 +f 854/1426/358 855/1414/358 853/1403/358 +f 846/1427/366 835/1401/366 845/1425/366 +f 862/1428/367 870/1375/367 869/1429/367 +f 863/1430/368 871/1431/368 864/1385/368 +f 857/1432/369 865/1373/369 858/1372/369 +f 860/1433/375 868/1371/375 867/1434/375 +f 878/1435/371 886/1390/371 885/1436/371 +f 879/1437/372 887/1438/372 880/1394/372 +f 873/1439/373 881/1389/373 874/1388/373 +f 876/1440/374 884/1387/374 883/1441/374 +f 869/1442/357 857/1443/357 862/1444/357 +f 812/1297/355 803/1445/355 802/1298/355 +f 810/1300/356 813/1368/356 814/1301/356 +f 814/1301/356 815/1357/356 812/1297/356 +f 815/1357/356 816/1305/356 812/1297/356 +f 816/1305/356 811/1307/356 812/1297/356 +f 812/1297/356 809/1299/356 814/1301/356 +f 822/1302/357 829/1446/357 826/1303/357 +f 816/1305/358 807/1447/358 804/1306/358 +f 806/1309/359 801/1448/359 802/1310/359 +f 802/1310/359 803/1449/359 808/1450/359 +f 803/1449/359 804/1451/359 808/1450/359 +f 804/1451/359 807/1452/359 808/1450/359 +f 808/1450/359 805/1308/359 802/1310/359 +f 808/1311/360 815/1357/360 814/1301/360 +f 828/1313/361 819/1453/361 818/1314/361 +f 826/1303/356 829/1446/356 830/1316/356 +f 830/1316/356 831/1321/356 828/1313/356 +f 831/1321/356 832/1319/356 828/1313/356 +f 832/1319/356 827/1318/356 828/1313/356 +f 828/1313/356 825/1315/356 830/1316/356 +f 823/1317/358 820/1454/358 827/1318/358 +f 821/1320/362 824/1364/362 831/1321/362 +f 794/1324/356 792/1455/356 777/1322/356 +f 777/1322/356 800/1456/356 798/1323/356 +f 798/1323/356 796/1457/356 794/1324/356 +f 780/1325/363 782/1331/363 781/1326/363 +f 796/1328/364 798/1352/364 797/1329/364 +f 782/1331/357 784/1458/357 783/1332/357 +f 794/1333/365 796/1328/365 795/1330/365 +f 784/1335/365 786/1344/365 785/1336/365 +f 800/1338/366 777/1349/366 778/1339/366 +f 792/1341/357 794/1459/357 793/1342/357 +f 786/1344/364 788/1350/364 787/1345/364 +f 784/1348/356 782/1460/356 788/1346/356 +f 782/1460/356 780/1461/356 788/1346/356 +f 780/1461/356 790/1462/356 788/1346/356 +f 777/1349/363 792/1341/363 791/1343/363 +f 788/1350/358 790/1353/358 789/1351/358 +f 798/1352/358 800/1338/358 799/1340/358 +f 790/1353/366 780/1325/366 779/1327/366 +f 806/1354/367 805/1312/367 814/1301/367 +f 807/1356/368 816/1463/368 815/1357/368 +f 801/1358/376 810/1464/376 809/1299/376 +f 804/1359/377 803/1445/377 812/1297/377 +f 822/1361/371 821/1320/371 830/1316/371 +f 823/1363/372 832/1465/372 831/1321/372 +f 817/1365/373 826/1466/373 825/1315/373 +f 820/1366/374 819/1453/374 828/1313/374 +f 813/1368/357 810/1300/357 801/1369/357 +f 868/1371/355 859/1467/355 858/1372/355 +f 866/1374/356 869/1442/356 870/1375/356 +f 870/1375/356 871/1431/356 868/1371/356 +f 871/1431/356 872/1379/356 868/1371/356 +f 872/1379/356 867/1381/356 868/1371/356 +f 868/1371/356 865/1373/356 870/1375/356 +f 878/1376/357 885/1468/357 882/1377/357 +f 872/1379/358 863/1469/358 860/1380/358 +f 862/1383/359 857/1470/359 858/1384/359 +f 858/1384/359 859/1471/359 864/1472/359 +f 859/1471/359 860/1473/359 864/1472/359 +f 860/1473/359 863/1474/359 864/1472/359 +f 864/1472/359 861/1382/359 858/1384/359 +f 864/1385/360 871/1431/360 870/1375/360 +f 884/1387/361 875/1475/361 874/1388/361 +f 882/1377/356 885/1468/356 886/1390/356 +f 886/1390/356 887/1438/356 884/1387/356 +f 887/1438/356 888/1393/356 884/1387/356 +f 888/1393/356 883/1392/356 884/1387/356 +f 884/1387/356 881/1389/356 886/1390/356 +f 879/1391/358 876/1476/358 883/1392/358 +f 880/1394/362 887/1438/362 886/1390/362 +f 850/1398/356 848/1477/356 854/1396/356 +f 848/1477/356 833/1478/356 854/1396/356 +f 833/1478/356 856/1479/356 854/1396/356 +f 836/1399/363 838/1405/363 837/1400/363 +f 852/1402/364 854/1426/364 853/1403/364 +f 838/1405/357 840/1480/357 839/1406/357 +f 850/1407/365 852/1402/365 851/1404/365 +f 840/1409/365 842/1418/365 841/1410/365 +f 856/1412/366 833/1423/366 834/1413/366 +f 848/1415/357 850/1481/357 849/1416/357 +f 842/1418/364 844/1424/364 843/1419/364 +f 840/1422/356 838/1482/356 844/1420/356 +f 838/1482/356 836/1483/356 844/1420/356 +f 836/1483/356 846/1484/356 844/1420/356 +f 833/1423/363 848/1415/363 847/1417/363 +f 844/1424/358 846/1427/358 845/1425/358 +f 854/1426/358 856/1412/358 855/1414/358 +f 846/1427/366 836/1399/366 835/1401/366 +f 862/1428/367 861/1386/367 870/1375/367 +f 863/1430/368 872/1485/368 871/1431/368 +f 857/1432/378 866/1486/378 865/1373/378 +f 860/1433/375 859/1467/375 868/1371/375 +f 878/1435/371 877/1395/371 886/1390/371 +f 879/1437/372 888/1487/372 887/1438/372 +f 873/1439/373 882/1488/373 881/1389/373 +f 876/1440/374 875/1475/374 884/1387/374 +f 869/1442/357 866/1374/357 857/1443/357 +s 1 +f 641/1489/359 680/1490/359 643/1491/359 +f 644/1492/379 647/1493/379 643/1494/379 +f 647/1493/356 677/1495/356 645/1496/356 +f 646/1497/380 641/1498/380 645/1496/380 +f 647/1493/357 641/1499/357 643/1500/357 +f 644/1501/358 646/1497/358 648/1502/358 +f 683/1503/381 763/1504/382 686/1505/382 +f 712/1506/383 754/1507/384 709/1508/384 +f 654/1509/385 717/1510/386 714/1511/387 +f 680/1512/388 742/1513/389 678/1514/390 +f 649/1515/356 648/1502/356 646/1497/356 +f 682/1516/381 762/1517/391 685/1518/392 +f 710/1519/384 775/1520/383 711/1521/383 +f 653/1522/393 716/1523/394 651/1524/395 +f 678/1514/390 738/1525/396 676/1526/397 +f 684/1527/392 745/1528/381 683/1503/381 +f 706/1529/398 749/1530/384 710/1519/384 +f 654/1509/385 713/1531/399 650/1532/400 +f 677/1533/401 737/1534/402 741/1535/403 +f 654/1536/359 642/1537/359 644/1538/359 +f 681/1539/382 751/1540/381 682/1516/381 +f 709/1508/384 755/1541/404 705/1542/398 +f 671/1543/405 740/1544/406 733/1545/407 +f 701/1546/408 758/1547/409 708/1548/410 +f 687/1549/411 693/1550/412 688/1551/411 +f 694/1552/412 696/1553/413 693/1550/412 +f 686/1505/382 688/1551/411 681/1539/382 +f 683/1503/381 681/1539/382 682/1516/381 +f 691/1554/414 690/1555/415 689/1556/414 +f 712/1506/383 710/1519/384 711/1521/383 +f 682/1516/381 684/1527/392 683/1503/381 +f 685/1518/392 689/1556/414 684/1527/392 +f 701/1546/408 707/1557/410 702/1558/408 +f 708/1548/410 711/1521/383 707/1557/410 +f 706/1529/398 709/1508/384 705/1542/398 +f 695/1559/413 699/1560/416 696/1561/413 +f 700/1562/416 702/1558/408 699/1563/416 +f 704/1564/417 705/1542/398 703/1565/417 +f 698/1566/418 703/1565/417 697/1567/418 +f 697/1568/418 692/1569/415 698/1570/418 +f 672/1571/419 739/1572/420 674/1573/421 +f 707/1557/410 771/1574/408 702/1558/408 +f 670/1575/422 738/1525/396 736/1576/423 +f 704/1564/417 748/1577/424 706/1529/398 +f 669/1578/425 737/1534/402 675/1579/426 +f 705/1542/398 772/1580/417 703/1565/417 +f 664/1581/427 736/1576/423 730/1582/428 +f 698/1566/418 773/1583/417 704/1564/417 +f 663/1584/429 735/1585/430 669/1578/425 +f 703/1565/417 746/1586/418 697/1567/418 +f 668/1587/431 734/1588/432 672/1571/419 +f 702/1558/408 769/1589/416 699/1563/416 +f 667/1590/433 733/1545/407 732/1591/434 +f 700/1562/416 757/1592/408 701/1546/408 +f 667/1593/433 727/1594/435 665/1595/436 +f 695/1559/413 770/1596/416 700/1597/416 +f 740/1544/356 776/1598/356 758/1599/356 +f 718/1600/356 745/1601/356 715/1602/356 +f 728/1603/359 769/1604/359 731/1605/359 +f 741/1535/356 776/1598/356 744/1606/356 +f 717/1510/359 751/1607/359 714/1511/359 +f 730/1608/359 767/1609/359 724/1610/359 +f 743/1611/359 749/1612/359 742/1513/359 +f 716/1523/356 745/1601/356 761/1613/356 +f 722/1614/356 746/1615/356 729/1616/356 +f 738/1525/359 749/1612/359 748/1617/359 +f 714/1511/359 750/1618/359 713/1531/359 +f 728/1619/359 753/1620/359 752/1621/359 +f 737/1534/356 754/1622/356 741/1535/356 +f 726/1623/356 756/1624/356 760/1625/356 +f 733/1545/356 758/1599/356 757/1626/356 +f 726/1623/356 759/1627/356 719/1628/356 +f 732/1629/356 756/1630/356 727/1594/356 +f 719/1628/356 763/1631/356 718/1600/356 +f 739/1572/359 775/1632/359 743/1611/359 +f 733/1545/356 770/1633/356 732/1591/356 +f 720/1634/359 750/1618/359 764/1635/359 +f 731/1636/359 771/1637/359 734/1588/359 +f 721/1638/356 747/1639/356 722/1640/356 +f 735/1585/356 746/1641/356 772/1642/356 +f 724/1643/359 766/1644/359 723/1645/359 +f 730/1582/359 773/1646/359 768/1647/359 +f 721/1638/356 761/1613/356 765/1648/356 +f 735/1585/356 755/1649/356 737/1534/356 +f 723/1645/359 762/1650/359 717/1510/359 +f 736/1576/359 748/1617/359 773/1646/359 +f 725/1651/359 764/1635/359 753/1620/359 +f 734/1588/359 774/1652/359 739/1572/359 +f 677/1533/401 744/1606/437 679/1653/438 +f 649/1654/439 715/1602/440 653/1522/393 +f 708/1548/410 776/1655/383 712/1506/383 +f 686/1505/382 759/1656/441 687/1549/411 +f 679/1653/438 740/1544/406 673/1657/442 +f 649/1654/439 719/1628/443 718/1600/444 +f 711/1521/383 774/1658/445 707/1557/410 +f 688/1551/411 750/1659/382 681/1539/382 +f 680/1512/388 739/1572/420 743/1611/446 +f 650/1532/400 720/1634/447 656/1660/448 +f 690/1555/415 765/1661/414 689/1556/414 +f 659/1662/449 721/1638/450 722/1640/451 +f 691/1554/414 767/1663/415 692/1664/415 +f 660/1665/452 723/1645/453 658/1666/454 +f 689/1556/414 761/1667/455 684/1527/392 +f 657/1668/456 716/1523/394 721/1638/450 +f 685/1518/392 766/1669/414 691/1554/414 +f 658/1666/454 717/1510/386 652/1670/457 +f 693/1550/412 764/1671/458 688/1551/411 +f 662/1672/459 720/1634/447 725/1651/460 +f 687/1549/411 760/1673/412 694/1552/412 +f 661/1674/461 719/1628/443 655/1675/462 +f 694/1552/412 756/1676/413 695/1677/413 +f 665/1678/436 726/1623/463 661/1674/461 +f 696/1553/413 753/1679/412 693/1550/412 +f 666/1680/464 725/1651/460 728/1619/465 +f 697/1568/418 747/1681/415 690/1682/415 +f 659/1683/449 729/1616/466 663/1684/429 +f 692/1569/415 768/1685/418 698/1570/418 +f 664/1686/427 724/1610/467 660/1687/452 +f 699/1560/416 752/1688/413 696/1561/413 +f 666/1689/464 731/1605/468 668/1690/431 +f 641/1489/359 642/1537/359 666/1691/359 +f 641/1489/359 666/1691/359 668/1692/359 +f 670/1693/359 664/1694/359 643/1491/359 +f 676/1695/359 670/1693/359 643/1491/359 +f 641/1489/359 668/1692/359 672/1696/359 +f 641/1489/359 672/1696/359 674/1697/359 +f 678/1698/359 676/1695/359 643/1491/359 +f 641/1489/359 674/1697/359 680/1490/359 +f 680/1490/359 678/1698/359 643/1491/359 +f 644/1492/379 648/1502/379 647/1493/379 +f 647/1493/356 648/1502/356 659/1699/356 +f 647/1493/356 659/1699/356 663/1700/356 +f 671/1701/356 667/1702/356 645/1496/356 +f 673/1703/356 671/1701/356 645/1496/356 +f 647/1493/356 663/1700/356 669/1704/356 +f 647/1493/356 669/1704/356 675/1705/356 +f 679/1706/356 673/1703/356 645/1496/356 +f 647/1493/356 675/1705/356 677/1495/356 +f 677/1495/356 679/1706/356 645/1496/356 +f 646/1497/380 642/1707/380 641/1498/380 +f 647/1493/357 645/1496/357 641/1499/357 +f 644/1501/358 642/1708/358 646/1497/358 +f 683/1503/381 745/1528/381 763/1504/382 +f 712/1506/383 776/1655/383 754/1507/384 +f 654/1509/385 652/1670/457 717/1510/386 +f 680/1512/388 743/1611/446 742/1513/389 +f 646/1497/356 645/1496/356 667/1702/356 +f 646/1497/356 667/1702/356 665/1709/356 +f 657/1710/356 659/1699/356 648/1502/356 +f 651/1711/356 657/1710/356 648/1502/356 +f 646/1497/356 665/1709/356 661/1712/356 +f 646/1497/356 661/1712/356 655/1713/356 +f 653/1714/356 651/1711/356 648/1502/356 +f 646/1497/356 655/1713/356 649/1515/356 +f 649/1515/356 653/1714/356 648/1502/356 +f 682/1516/381 751/1540/381 762/1517/391 +f 710/1519/384 749/1530/384 775/1520/383 +f 653/1522/393 715/1602/440 716/1523/394 +f 678/1514/390 742/1513/389 738/1525/396 +f 684/1527/392 761/1667/391 745/1528/381 +f 706/1529/398 748/1577/404 749/1530/384 +f 654/1509/385 714/1511/387 713/1531/399 +f 677/1533/401 675/1579/426 737/1534/402 +f 644/1538/359 643/1491/359 664/1694/359 +f 644/1538/359 664/1694/359 660/1715/359 +f 662/1716/359 666/1691/359 642/1537/359 +f 656/1717/359 662/1716/359 642/1537/359 +f 644/1538/359 660/1715/359 658/1718/359 +f 644/1538/359 658/1718/359 652/1719/359 +f 650/1720/359 656/1717/359 642/1537/359 +f 644/1538/359 652/1719/359 654/1536/359 +f 654/1536/359 650/1720/359 642/1537/359 +f 681/1539/382 750/1659/382 751/1540/381 +f 709/1508/384 754/1507/384 755/1541/404 +f 671/1543/405 673/1657/442 740/1544/406 +f 701/1546/408 757/1592/408 758/1547/409 +f 687/1549/411 694/1552/412 693/1550/412 +f 694/1552/412 695/1677/413 696/1553/413 +f 686/1505/382 687/1549/411 688/1551/411 +f 683/1503/381 686/1505/382 681/1539/382 +f 691/1554/414 692/1664/415 690/1555/415 +f 712/1506/383 709/1508/384 710/1519/384 +f 682/1516/381 685/1518/392 684/1527/392 +f 685/1518/392 691/1554/414 689/1556/414 +f 701/1546/408 708/1548/410 707/1557/410 +f 708/1548/410 712/1506/383 711/1521/383 +f 706/1529/398 710/1519/384 709/1508/384 +f 695/1559/413 700/1597/416 699/1560/416 +f 700/1562/416 701/1546/408 702/1558/408 +f 704/1564/417 706/1529/398 705/1542/398 +f 698/1566/418 704/1564/417 703/1565/417 +f 697/1568/418 690/1682/415 692/1569/415 +f 672/1571/419 734/1588/432 739/1572/420 +f 707/1557/410 774/1658/409 771/1574/408 +f 670/1575/422 676/1526/397 738/1525/396 +f 704/1564/417 773/1583/417 748/1577/424 +f 669/1578/425 735/1585/430 737/1534/402 +f 705/1542/398 755/1541/424 772/1580/417 +f 664/1581/427 670/1575/422 736/1576/423 +f 698/1566/418 768/1721/418 773/1583/417 +f 663/1584/429 729/1722/466 735/1585/430 +f 703/1565/417 772/1580/417 746/1586/418 +f 668/1587/431 731/1636/468 734/1588/432 +f 702/1558/408 771/1574/408 769/1589/416 +f 667/1590/433 671/1543/405 733/1545/407 +f 700/1562/416 770/1723/416 757/1592/408 +f 667/1593/433 732/1629/434 727/1594/435 +f 695/1559/413 756/1724/413 770/1596/416 +f 740/1544/356 744/1606/356 776/1598/356 +f 718/1600/356 763/1631/356 745/1601/356 +f 728/1603/359 752/1725/359 769/1604/359 +f 741/1535/356 754/1622/356 776/1598/356 +f 717/1510/359 762/1650/359 751/1607/359 +f 730/1608/359 768/1726/359 767/1609/359 +f 743/1611/359 775/1632/359 749/1612/359 +f 716/1523/356 715/1602/356 745/1601/356 +f 722/1614/356 747/1727/356 746/1615/356 +f 738/1525/359 742/1513/359 749/1612/359 +f 714/1511/359 751/1607/359 750/1618/359 +f 728/1619/359 725/1651/359 753/1620/359 +f 737/1534/356 755/1649/356 754/1622/356 +f 726/1623/356 727/1728/356 756/1624/356 +f 733/1545/356 740/1544/356 758/1599/356 +f 726/1623/356 760/1625/356 759/1627/356 +f 732/1629/356 770/1729/356 756/1630/356 +f 719/1628/356 759/1627/356 763/1631/356 +f 739/1572/359 774/1652/359 775/1632/359 +f 733/1545/356 757/1626/356 770/1633/356 +f 720/1634/359 713/1531/359 750/1618/359 +f 731/1636/359 769/1730/359 771/1637/359 +f 721/1638/356 765/1648/356 747/1639/356 +f 735/1585/356 729/1722/356 746/1641/356 +f 724/1643/359 767/1731/359 766/1644/359 +f 730/1582/359 736/1576/359 773/1646/359 +f 721/1638/356 716/1523/356 761/1613/356 +f 735/1585/356 772/1642/356 755/1649/356 +f 723/1645/359 766/1644/359 762/1650/359 +f 736/1576/359 738/1525/359 748/1617/359 +f 725/1651/359 720/1634/359 764/1635/359 +f 734/1588/359 771/1637/359 774/1652/359 +f 677/1533/401 741/1535/403 744/1606/437 +f 649/1654/439 718/1600/444 715/1602/440 +f 708/1548/410 758/1547/445 776/1655/383 +f 686/1505/382 763/1504/382 759/1656/441 +f 679/1653/438 744/1606/437 740/1544/406 +f 649/1654/439 655/1675/462 719/1628/443 +f 711/1521/383 775/1520/383 774/1658/445 +f 688/1551/411 764/1671/441 750/1659/382 +f 680/1512/388 674/1573/421 739/1572/420 +f 650/1532/400 713/1531/399 720/1634/447 +f 690/1555/415 747/1732/415 765/1661/414 +f 659/1662/449 657/1668/456 721/1638/450 +f 691/1554/414 766/1669/414 767/1663/415 +f 660/1665/452 724/1643/467 723/1645/453 +f 689/1556/414 765/1661/414 761/1667/455 +f 657/1668/456 651/1524/395 716/1523/394 +f 685/1518/392 762/1517/455 766/1669/414 +f 658/1666/454 723/1645/453 717/1510/386 +f 693/1550/412 753/1679/412 764/1671/458 +f 662/1672/459 656/1660/448 720/1634/447 +f 687/1549/411 759/1656/458 760/1673/412 +f 661/1674/461 726/1623/463 719/1628/443 +f 694/1552/412 760/1673/412 756/1676/413 +f 665/1678/436 727/1728/435 726/1623/463 +f 696/1553/413 752/1733/413 753/1679/412 +f 666/1680/464 662/1672/459 725/1651/460 +f 697/1568/418 746/1734/418 747/1681/415 +f 659/1683/449 722/1614/451 729/1616/466 +f 692/1569/415 767/1735/415 768/1685/418 +f 664/1686/427 730/1608/428 724/1610/467 +f 699/1560/416 769/1736/416 752/1688/413 +f 666/1689/464 728/1603/465 731/1605/468 +o spinny_lower +v 0.127409 0.571053 -0.570525 +v 0.311433 0.571053 -0.573891 +v 0.127409 0.586056 -0.579187 +v 0.311433 0.583141 -0.580870 +v 0.127409 0.586056 -0.596510 +v 0.311433 0.583141 -0.594827 +v 0.127409 0.571053 -0.605172 +v 0.311433 0.571053 -0.601806 +v 0.127409 0.556051 -0.596510 +v 0.311433 0.558966 -0.594827 +v 0.127409 0.556051 -0.579187 +v 0.311433 0.558966 -0.580870 +v 0.296158 0.571053 -0.570525 +v 0.244484 0.571053 -0.570525 +v 0.244484 0.586056 -0.579187 +v 0.296158 0.586056 -0.579187 +v 0.244484 0.586056 -0.596510 +v 0.296158 0.586056 -0.596510 +v 0.244484 0.571053 -0.605172 +v 0.296158 0.571053 -0.605172 +v 0.244484 0.556051 -0.596510 +v 0.296158 0.556051 -0.596510 +v 0.244484 0.556051 -0.579187 +v 0.296158 0.556051 -0.579187 +v 0.248187 0.538846 -0.569253 +v 0.292455 0.538846 -0.569253 +v 0.292455 0.571053 -0.550658 +v 0.248187 0.571053 -0.550658 +v 0.248187 0.538846 -0.606444 +v 0.292455 0.538846 -0.606444 +v 0.248187 0.571053 -0.625039 +v 0.292455 0.571053 -0.625039 +v 0.248187 0.603261 -0.606444 +v 0.292455 0.603261 -0.606444 +v 0.248187 0.603261 -0.569253 +v 0.292455 0.603261 -0.569253 +v 0.264576 0.585795 -0.571215 +v 0.375908 0.798690 -0.587129 +v 0.252583 0.591199 -0.579309 +v 0.363915 0.804094 -0.595223 +v 0.252527 0.590075 -0.594713 +v 0.363860 0.802970 -0.610627 +v 0.264465 0.583548 -0.602023 +v 0.375797 0.796443 -0.617937 +v 0.276457 0.578144 -0.593929 +v 0.387789 0.791039 -0.609843 +v 0.276513 0.579268 -0.578525 +v 0.387845 0.792162 -0.594439 +v 0.265024 0.589041 -0.594850 +v 0.375908 0.639695 -0.806877 +v 0.253032 0.583014 -0.602490 +v 0.363915 0.633667 -0.814518 +v 0.252976 0.568017 -0.606182 +v 0.363859 0.618670 -0.818209 +v 0.264913 0.559048 -0.602232 +v 0.375797 0.609701 -0.814260 +v 0.276906 0.565075 -0.594592 +v 0.387789 0.615728 -0.806619 +v 0.276962 0.580072 -0.590900 +v 0.387845 0.630725 -0.802928 +v 0.264576 0.567567 -0.605240 +v 0.375908 0.382270 -0.719820 +v 0.252583 0.558438 -0.601869 +v 0.363915 0.373140 -0.716448 +v 0.252527 0.550293 -0.588746 +v 0.363859 0.364995 -0.703326 +v 0.264465 0.551277 -0.578996 +v 0.375797 0.365980 -0.693575 +v 0.276457 0.560406 -0.582368 +v 0.387789 0.375109 -0.696947 +v 0.276513 0.568551 -0.595490 +v 0.387845 0.383254 -0.710069 +v 0.264576 0.551049 -0.588028 +v 0.375908 0.388167 -0.450017 +v 0.252583 0.551435 -0.578304 +v 0.363915 0.388553 -0.440293 +v 0.252527 0.561398 -0.566502 +v 0.363860 0.398516 -0.428491 +v 0.264465 0.570975 -0.564425 +v 0.375797 0.408094 -0.426414 +v 0.276457 0.570589 -0.574150 +v 0.387789 0.407708 -0.436139 +v 0.276513 0.560626 -0.585951 +v 0.387845 0.397745 -0.447940 +v 0.269238 0.562315 -0.566999 +v 0.375908 0.648259 -0.361717 +v 0.257245 0.571682 -0.564361 +v 0.363915 0.657627 -0.359079 +v 0.257189 0.585985 -0.570190 +v 0.363860 0.671929 -0.364907 +v 0.269127 0.590920 -0.578657 +v 0.375797 0.676864 -0.373374 +v 0.281119 0.581552 -0.581295 +v 0.387789 0.667496 -0.376013 +v 0.281175 0.567249 -0.575466 +v 0.387845 0.653194 -0.370184 +v 0.380466 0.828227 -0.481324 +v 0.398360 0.821379 -0.484160 +v 0.405772 0.804848 -0.491008 +v 0.398360 0.788316 -0.497855 +v 0.380466 0.781468 -0.500692 +v 0.362572 0.788316 -0.497855 +v 0.355160 0.804848 -0.491008 +v 0.362572 0.821379 -0.484160 +v 0.380466 0.677578 -0.330675 +v 0.398360 0.674742 -0.337523 +v 0.405772 0.667894 -0.354054 +v 0.398360 0.661046 -0.370586 +v 0.380466 0.658210 -0.377434 +v 0.362572 0.661046 -0.370586 +v 0.355160 0.667894 -0.354054 +v 0.362572 0.674742 -0.337523 +v 0.380466 0.464529 -0.330675 +v 0.398360 0.467365 -0.337523 +v 0.405772 0.474213 -0.354054 +v 0.398360 0.481060 -0.370586 +v 0.380466 0.483897 -0.377434 +v 0.362572 0.481060 -0.370586 +v 0.355160 0.474213 -0.354054 +v 0.362572 0.467365 -0.337523 +v 0.380466 0.313880 -0.481324 +v 0.398360 0.320727 -0.484160 +v 0.405772 0.337259 -0.491008 +v 0.398360 0.353791 -0.497856 +v 0.380466 0.360639 -0.500692 +v 0.362572 0.353791 -0.497856 +v 0.355160 0.337259 -0.491008 +v 0.362572 0.320727 -0.484160 +v 0.380466 0.313880 -0.694373 +v 0.398360 0.320727 -0.691537 +v 0.405772 0.337259 -0.684689 +v 0.398360 0.353791 -0.677842 +v 0.380466 0.360639 -0.675005 +v 0.362572 0.353791 -0.677842 +v 0.355160 0.337259 -0.684689 +v 0.362572 0.320727 -0.691537 +v 0.380466 0.464529 -0.845022 +v 0.398360 0.467365 -0.838174 +v 0.405772 0.474213 -0.821643 +v 0.398360 0.481060 -0.805111 +v 0.380466 0.483897 -0.798263 +v 0.362572 0.481060 -0.805111 +v 0.355160 0.474213 -0.821643 +v 0.362572 0.467365 -0.838174 +v 0.380466 0.677578 -0.845022 +v 0.398360 0.674742 -0.838174 +v 0.405772 0.667894 -0.821643 +v 0.398360 0.661047 -0.805111 +v 0.380466 0.658210 -0.798263 +v 0.362572 0.661047 -0.805111 +v 0.355160 0.667894 -0.821643 +v 0.362572 0.674742 -0.838174 +v 0.380466 0.828227 -0.694373 +v 0.398360 0.821379 -0.691537 +v 0.405772 0.804848 -0.684689 +v 0.398360 0.788316 -0.677842 +v 0.380466 0.781468 -0.675005 +v 0.362572 0.788316 -0.677842 +v 0.355160 0.804848 -0.684689 +v 0.362572 0.821379 -0.691537 +v -0.044410 0.571053 -0.570525 +v -0.228434 0.571053 -0.573891 +v -0.044410 0.586056 -0.579187 +v -0.228434 0.583141 -0.580870 +v -0.044410 0.586056 -0.596510 +v -0.228434 0.583141 -0.594827 +v -0.044410 0.571053 -0.605172 +v -0.228434 0.571053 -0.601806 +v -0.044410 0.556051 -0.596510 +v -0.228434 0.558966 -0.594827 +v -0.044410 0.556051 -0.579187 +v -0.228434 0.558966 -0.580870 +v -0.213159 0.571053 -0.570525 +v -0.161485 0.571053 -0.570525 +v -0.161485 0.586056 -0.579187 +v -0.213159 0.586056 -0.579187 +v -0.161485 0.586056 -0.596510 +v -0.213159 0.586056 -0.596510 +v -0.161485 0.571053 -0.605172 +v -0.213159 0.571053 -0.605172 +v -0.161485 0.556051 -0.596510 +v -0.213159 0.556051 -0.596510 +v -0.161485 0.556051 -0.579187 +v -0.213159 0.556051 -0.579187 +v -0.165188 0.538846 -0.569253 +v -0.209456 0.538846 -0.569253 +v -0.209456 0.571053 -0.550658 +v -0.165188 0.571053 -0.550658 +v -0.165188 0.538846 -0.606444 +v -0.209456 0.538846 -0.606444 +v -0.165188 0.571053 -0.625039 +v -0.209456 0.571053 -0.625039 +v -0.165188 0.603261 -0.606444 +v -0.209456 0.603261 -0.606444 +v -0.165188 0.603261 -0.569253 +v -0.209456 0.603261 -0.569253 +v -0.181577 0.585795 -0.571215 +v -0.292909 0.798690 -0.587129 +v -0.169584 0.591199 -0.579309 +v -0.280916 0.804094 -0.595223 +v -0.169529 0.590076 -0.594713 +v -0.280861 0.802970 -0.610627 +v -0.181466 0.583548 -0.602023 +v -0.292798 0.796443 -0.617937 +v -0.193459 0.578144 -0.593929 +v -0.304791 0.791039 -0.609843 +v -0.193514 0.579268 -0.578525 +v -0.304846 0.792162 -0.594439 +v -0.182026 0.589041 -0.594850 +v -0.292909 0.639695 -0.806877 +v -0.170033 0.583014 -0.602490 +v -0.280916 0.633667 -0.814518 +v -0.169977 0.568017 -0.606182 +v -0.280861 0.618670 -0.818209 +v -0.181915 0.559048 -0.602232 +v -0.292798 0.609701 -0.814260 +v -0.193907 0.565075 -0.594592 +v -0.304791 0.615728 -0.806620 +v -0.193963 0.580072 -0.590901 +v -0.304846 0.630725 -0.802928 +v -0.181577 0.567567 -0.605240 +v -0.292909 0.382270 -0.719820 +v -0.169584 0.558438 -0.601869 +v -0.280916 0.373140 -0.716448 +v -0.169529 0.550293 -0.588746 +v -0.280861 0.364995 -0.703326 +v -0.181466 0.551277 -0.578996 +v -0.292798 0.365980 -0.693575 +v -0.193459 0.560406 -0.582368 +v -0.304791 0.375109 -0.696947 +v -0.193514 0.568551 -0.595490 +v -0.304846 0.383254 -0.710069 +v -0.181577 0.551049 -0.588028 +v -0.292909 0.388168 -0.450017 +v -0.169584 0.551435 -0.578304 +v -0.280916 0.388553 -0.440293 +v -0.169529 0.561398 -0.566502 +v -0.280861 0.398516 -0.428491 +v -0.181466 0.570975 -0.564425 +v -0.292798 0.408094 -0.426414 +v -0.193459 0.570589 -0.574150 +v -0.304791 0.407708 -0.436139 +v -0.193514 0.560626 -0.585951 +v -0.304846 0.397745 -0.447940 +v -0.186239 0.562315 -0.566999 +v -0.292909 0.648259 -0.361717 +v -0.174246 0.571682 -0.564361 +v -0.280916 0.657627 -0.359079 +v -0.174191 0.585985 -0.570190 +v -0.280861 0.671929 -0.364907 +v -0.186128 0.590920 -0.578657 +v -0.292798 0.676864 -0.373374 +v -0.198121 0.581552 -0.581295 +v -0.304791 0.667497 -0.376013 +v -0.198176 0.567249 -0.575466 +v -0.304846 0.653194 -0.370184 +v -0.297467 0.828227 -0.481324 +v -0.315361 0.821379 -0.484160 +v -0.322773 0.804848 -0.491008 +v -0.315361 0.788316 -0.497855 +v -0.297467 0.781468 -0.500692 +v -0.279573 0.788316 -0.497855 +v -0.272162 0.804848 -0.491008 +v -0.279573 0.821379 -0.484160 +v -0.297467 0.677578 -0.330675 +v -0.315361 0.674742 -0.337523 +v -0.322773 0.667894 -0.354054 +v -0.315361 0.661047 -0.370586 +v -0.297467 0.658210 -0.377434 +v -0.279573 0.661047 -0.370586 +v -0.272162 0.667894 -0.354054 +v -0.279573 0.674742 -0.337523 +v -0.297467 0.464529 -0.330675 +v -0.315361 0.467365 -0.337523 +v -0.322773 0.474213 -0.354054 +v -0.315361 0.481060 -0.370586 +v -0.297467 0.483897 -0.377434 +v -0.279573 0.481060 -0.370586 +v -0.272162 0.474213 -0.354054 +v -0.279573 0.467365 -0.337523 +v -0.297467 0.313880 -0.481324 +v -0.315361 0.320727 -0.484160 +v -0.322773 0.337259 -0.491008 +v -0.315361 0.353791 -0.497856 +v -0.297467 0.360639 -0.500692 +v -0.279573 0.353791 -0.497856 +v -0.272162 0.337259 -0.491008 +v -0.279573 0.320727 -0.484160 +v -0.297467 0.313880 -0.694373 +v -0.315361 0.320727 -0.691537 +v -0.322773 0.337259 -0.684689 +v -0.315361 0.353791 -0.677842 +v -0.297467 0.360639 -0.675005 +v -0.279573 0.353791 -0.677842 +v -0.272162 0.337259 -0.684689 +v -0.279573 0.320727 -0.691537 +v -0.297467 0.464529 -0.845022 +v -0.315361 0.467365 -0.838175 +v -0.322773 0.474213 -0.821643 +v -0.315361 0.481060 -0.805111 +v -0.297467 0.483897 -0.798263 +v -0.279573 0.481060 -0.805111 +v -0.272162 0.474213 -0.821643 +v -0.279573 0.467365 -0.838175 +v -0.297467 0.677578 -0.845022 +v -0.315361 0.674742 -0.838174 +v -0.322773 0.667894 -0.821643 +v -0.315361 0.661047 -0.805111 +v -0.297467 0.658210 -0.798263 +v -0.279573 0.661047 -0.805111 +v -0.272162 0.667894 -0.821643 +v -0.279573 0.674742 -0.838174 +v -0.297467 0.828227 -0.694373 +v -0.315361 0.821379 -0.691537 +v -0.322773 0.804848 -0.684689 +v -0.315361 0.788316 -0.677842 +v -0.297467 0.781468 -0.675005 +v -0.279573 0.788316 -0.677842 +v -0.272162 0.804848 -0.684689 +v -0.279573 0.821379 -0.691537 +vt 0.799635 0.362279 +vt 0.827262 0.359326 +vt 0.827222 0.362762 +vt 0.800448 0.375165 +vt 0.827415 0.369730 +vt 0.827624 0.373751 +vt 0.799726 0.370763 +vt 0.827275 0.366229 +vt 0.799597 0.366415 +vt 0.762423 0.391682 +vt 0.760099 0.390340 +vt 0.762423 0.386315 +vt 0.800031 0.354283 +vt 0.827395 0.355916 +vt 0.827624 0.352523 +vt 0.788264 0.364363 +vt 0.785449 0.361184 +vt 0.788551 0.361047 +vt 0.784514 0.366272 +vt 0.787270 0.367605 +vt 0.783039 0.368301 +vt 0.785025 0.370236 +vt 0.783984 0.355430 +vt 0.785188 0.350017 +vt 0.787304 0.353840 +vt 0.788273 0.357581 +vt 0.791373 0.353216 +vt 0.796382 0.357395 +vt 0.797036 0.352990 +vt 0.799724 0.358261 +vt 0.796056 0.361474 +vt 0.791701 0.357754 +vt 0.795690 0.365588 +vt 0.791589 0.361641 +vt 0.791021 0.365400 +vt 0.795191 0.370261 +vt 0.789634 0.369320 +vt 0.786082 0.373815 +vt 0.795397 0.378285 +vt 0.799279 0.347383 +vt 0.801389 0.350415 +vt 0.286473 0.934138 +vt 0.283504 0.980386 +vt 0.283504 0.934093 +vt 0.301319 0.934093 +vt 0.298350 0.980386 +vt 0.298350 0.934093 +vt 0.295381 0.934138 +vt 0.295381 0.980430 +vt 0.292412 0.934182 +vt 0.292412 0.980475 +vt 0.289442 0.934183 +vt 0.286473 0.980430 +vt 0.867854 0.901496 +vt 0.820842 0.898526 +vt 0.867866 0.898526 +vt 0.820842 0.916343 +vt 0.867852 0.913373 +vt 0.867866 0.916343 +vt 0.820829 0.913373 +vt 0.867827 0.910404 +vt 0.820804 0.910404 +vt 0.867815 0.907434 +vt 0.820805 0.904465 +vt 0.867828 0.904465 +vt 0.820830 0.901496 +vt 0.548210 0.936048 +vt 0.551180 0.889032 +vt 0.551180 0.936071 +vt 0.533363 0.936071 +vt 0.536332 0.889032 +vt 0.536332 0.936072 +vt 0.539302 0.936049 +vt 0.539302 0.889009 +vt 0.542271 0.936025 +vt 0.542271 0.888986 +vt 0.545241 0.936025 +vt 0.548210 0.889008 +vt 0.837375 0.924047 +vt 0.834405 0.970295 +vt 0.834405 0.924002 +vt 0.852221 0.924002 +vt 0.849251 0.970295 +vt 0.849251 0.924002 +vt 0.846282 0.924046 +vt 0.846282 0.970339 +vt 0.843313 0.924091 +vt 0.843313 0.970384 +vt 0.840344 0.924091 +vt 0.837374 0.970339 +vt 0.434430 0.936466 +vt 0.431460 0.889069 +vt 0.434429 0.889017 +vt 0.449276 0.936519 +vt 0.446307 0.889090 +vt 0.449276 0.889069 +vt 0.443337 0.936508 +vt 0.443337 0.889059 +vt 0.440368 0.936456 +vt 0.440368 0.889006 +vt 0.437399 0.936435 +vt 0.437399 0.888985 +vt 0.400992 0.791352 +vt 0.397193 0.754418 +vt 0.400852 0.754391 +vt 0.394091 0.791397 +vt 0.393709 0.754385 +vt 0.390187 0.754324 +vt 0.390588 0.791361 +vt 0.386451 0.754283 +vt 0.382815 0.791366 +vt 0.382712 0.754242 +vt 0.379184 0.754177 +vt 0.407987 0.754399 +vt 0.404551 0.791300 +vt 0.404509 0.754364 +vt 0.401029 0.830484 +vt 0.397466 0.791406 +vt 0.393644 0.828434 +vt 0.390393 0.827137 +vt 0.386724 0.791360 +vt 0.387036 0.826636 +vt 0.383603 0.827212 +vt 0.379180 0.791346 +vt 0.408711 0.828478 +vt 0.408040 0.791308 +vt 0.405031 0.829914 +vt 0.401081 0.569288 +vt 0.397276 0.530538 +vt 0.401303 0.529944 +vt 0.397510 0.569275 +vt 0.393569 0.531995 +vt 0.394002 0.569210 +vt 0.390094 0.533390 +vt 0.390377 0.569117 +vt 0.386663 0.533954 +vt 0.386493 0.569035 +vt 0.383340 0.533443 +vt 0.382642 0.568946 +vt 0.380148 0.532152 +vt 0.407993 0.569370 +vt 0.405237 0.530579 +vt 0.408711 0.531968 +vt 0.404608 0.569300 +vt 0.397153 0.606277 +vt 0.393668 0.606235 +vt 0.390146 0.606165 +vt 0.386408 0.606121 +vt 0.382669 0.606079 +vt 0.379138 0.568835 +vt 0.407945 0.606274 +vt 0.404466 0.606234 +vt 0.400804 0.643287 +vt 0.400811 0.606255 +vt 0.393655 0.643272 +vt 0.390136 0.643206 +vt 0.386405 0.643166 +vt 0.379155 0.643060 +vt 0.379143 0.606013 +vt 0.404468 0.643264 +vt 0.400813 0.680323 +vt 0.397140 0.643310 +vt 0.397149 0.680346 +vt 0.393664 0.680308 +vt 0.390145 0.680243 +vt 0.386415 0.680202 +vt 0.382675 0.643125 +vt 0.382685 0.680161 +vt 0.407962 0.680337 +vt 0.407952 0.643302 +vt 0.404477 0.680299 +vt 0.400825 0.717358 +vt 0.393676 0.717344 +vt 0.390157 0.717280 +vt 0.382696 0.717198 +vt 0.379166 0.680096 +vt 0.404489 0.717335 +vt 0.397161 0.717382 +vt 0.386427 0.717239 +vt 0.379176 0.717133 +vt 0.407973 0.717373 +vt 0.720912 0.364623 +vt 0.693285 0.361670 +vt 0.720872 0.361187 +vt 0.721066 0.354219 +vt 0.694098 0.348783 +vt 0.721275 0.350197 +vt 0.720925 0.357719 +vt 0.693377 0.353186 +vt 0.693247 0.357533 +vt 0.777055 0.387656 +vt 0.777055 0.390340 +vt 0.774731 0.391682 +vt 0.721046 0.368033 +vt 0.693374 0.365687 +vt 0.721275 0.371425 +vt 0.693682 0.369665 +vt 0.682202 0.362901 +vt 0.678936 0.360105 +vt 0.681915 0.359585 +vt 0.680920 0.356343 +vt 0.678164 0.357676 +vt 0.676690 0.355648 +vt 0.678676 0.353713 +vt 0.678838 0.373931 +vt 0.677634 0.368519 +vt 0.680955 0.370109 +vt 0.678692 0.365585 +vt 0.681923 0.366367 +vt 0.685023 0.370733 +vt 0.690686 0.370958 +vt 0.690033 0.366554 +vt 0.689707 0.362474 +vt 0.685352 0.366194 +vt 0.688841 0.353688 +vt 0.679099 0.362764 +vt 0.685239 0.362307 +vt 0.684671 0.358548 +vt 0.683285 0.354629 +vt 0.689047 0.345664 +vt 0.679733 0.350133 +vt 0.682787 0.378285 +vt 0.692930 0.376566 +vt 0.695039 0.373533 +vt 0.953914 0.104208 +vt 0.950945 0.057960 +vt 0.953914 0.057915 +vt 0.968761 0.104252 +vt 0.965791 0.057960 +vt 0.968761 0.057960 +vt 0.962822 0.104208 +vt 0.965791 0.104253 +vt 0.959853 0.104163 +vt 0.962822 0.057916 +vt 0.956883 0.104163 +vt 0.959853 0.057871 +vt 0.956883 0.057871 +vt 0.901087 0.717683 +vt 0.854075 0.720652 +vt 0.854064 0.717683 +vt 0.901085 0.705805 +vt 0.854075 0.702836 +vt 0.901099 0.702836 +vt 0.901060 0.708775 +vt 0.854062 0.705805 +vt 0.901048 0.711744 +vt 0.854037 0.708775 +vt 0.854038 0.714714 +vt 0.854025 0.711744 +vt 0.901062 0.714714 +vt 0.459905 0.936048 +vt 0.456935 0.889032 +vt 0.459905 0.889008 +vt 0.474752 0.936071 +vt 0.471782 0.889032 +vt 0.474752 0.889032 +vt 0.468813 0.936049 +vt 0.471782 0.936072 +vt 0.465844 0.936025 +vt 0.468813 0.889009 +vt 0.462874 0.936025 +vt 0.465844 0.888986 +vt 0.462874 0.888985 +vt 0.891332 0.918016 +vt 0.894301 0.964265 +vt 0.891332 0.964309 +vt 0.876485 0.917972 +vt 0.879455 0.964264 +vt 0.876486 0.964265 +vt 0.882424 0.918016 +vt 0.879455 0.917972 +vt 0.885393 0.918061 +vt 0.882424 0.964309 +vt 0.888363 0.918061 +vt 0.885393 0.964353 +vt 0.888363 0.964354 +vt 0.890948 0.381894 +vt 0.893917 0.334497 +vt 0.893917 0.381947 +vt 0.905794 0.381873 +vt 0.908763 0.334445 +vt 0.908763 0.381894 +vt 0.902824 0.334456 +vt 0.905794 0.334424 +vt 0.902824 0.381905 +vt 0.899855 0.334508 +vt 0.899855 0.381957 +vt 0.896886 0.334529 +vt 0.896886 0.381978 +vt 0.359961 0.606011 +vt 0.363760 0.569076 +vt 0.363621 0.606038 +vt 0.356860 0.569032 +vt 0.360235 0.569022 +vt 0.356477 0.606043 +vt 0.353356 0.569068 +vt 0.349219 0.606145 +vt 0.352955 0.606105 +vt 0.345583 0.569063 +vt 0.349493 0.569068 +vt 0.341953 0.606252 +vt 0.345481 0.606186 +vt 0.367278 0.606065 +vt 0.370809 0.569120 +vt 0.370756 0.606029 +vt 0.367319 0.569128 +vt 0.359879 0.530591 +vt 0.363797 0.529944 +vt 0.353162 0.533291 +vt 0.356412 0.531994 +vt 0.349805 0.533792 +vt 0.342919 0.531808 +vt 0.346372 0.533216 +vt 0.371479 0.531950 +vt 0.367800 0.530514 +vt 0.364071 0.830484 +vt 0.360279 0.791154 +vt 0.363850 0.791140 +vt 0.356338 0.828434 +vt 0.360044 0.829890 +vt 0.353146 0.791312 +vt 0.356770 0.791219 +vt 0.349432 0.826474 +vt 0.352863 0.827038 +vt 0.346108 0.826986 +vt 0.349262 0.791394 +vt 0.341907 0.791593 +vt 0.345411 0.791482 +vt 0.368006 0.829850 +vt 0.370761 0.791058 +vt 0.371479 0.828460 +vt 0.367376 0.791128 +vt 0.363579 0.754173 +vt 0.359921 0.754151 +vt 0.352914 0.754263 +vt 0.356437 0.754193 +vt 0.349176 0.754307 +vt 0.345438 0.754350 +vt 0.367235 0.754194 +vt 0.370713 0.754154 +vt 0.363572 0.717142 +vt 0.356423 0.717157 +vt 0.359908 0.717119 +vt 0.352904 0.717222 +vt 0.349174 0.717263 +vt 0.341923 0.717369 +vt 0.345443 0.717304 +vt 0.370720 0.717126 +vt 0.367236 0.717164 +vt 0.363582 0.680106 +vt 0.356432 0.680121 +vt 0.359918 0.680083 +vt 0.349184 0.680226 +vt 0.352914 0.680186 +vt 0.341934 0.680332 +vt 0.345453 0.680267 +vt 0.370731 0.680091 +vt 0.367246 0.680129 +vt 0.363594 0.643070 +vt 0.356444 0.643084 +vt 0.359930 0.643046 +vt 0.352925 0.643149 +vt 0.349195 0.643189 +vt 0.345464 0.643230 +vt 0.370742 0.643055 +vt 0.367257 0.643093 +vt 0.341944 0.643295 +vt 0.760099 0.387656 +vt 0.764747 0.387656 +vt 0.764747 0.390340 +vt 0.785286 0.363844 +vt 0.782109 0.352463 +vt 0.785042 0.358363 +vt 0.789136 0.345664 +vt 0.301319 0.980386 +vt 0.289442 0.980475 +vt 0.820792 0.907434 +vt 0.533363 0.889032 +vt 0.545241 0.888985 +vt 0.852221 0.970295 +vt 0.840343 0.970384 +vt 0.431460 0.936519 +vt 0.446306 0.936540 +vt 0.397110 0.829838 +vt 0.380151 0.828621 +vt 0.772406 0.390340 +vt 0.772406 0.387656 +vt 0.774731 0.386315 +vt 0.675759 0.371485 +vt 0.689340 0.358360 +vt 0.950945 0.104252 +vt 0.901099 0.720652 +vt 0.456935 0.936071 +vt 0.894301 0.917972 +vt 0.890948 0.334445 +vt 0.341949 0.569082 +vt 0.342916 0.828276 +vt 0.341912 0.754415 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.8660 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8660 0.5000 +vn 0.2152 -0.8457 -0.4883 +vn 0.2152 -0.8457 0.4883 +vn 0.2152 -0.0000 -0.9766 +vn 0.2152 0.8457 -0.4883 +vn 0.2152 0.8457 0.4883 +vn 0.2152 -0.0000 0.9766 +vn 0.9831 0.1587 -0.0916 +vn 0.9831 0.1587 0.0916 +vn -0.9831 0.1587 0.0916 +vn -0.9831 0.0000 0.1832 +vn -0.9831 -0.1587 0.0916 +vn -0.9831 -0.1587 -0.0916 +vn 0.9831 -0.0000 0.1832 +vn -0.9831 -0.0000 -0.1832 +vn 0.9831 0.0000 -0.1832 +vn 0.9831 -0.1587 0.0916 +vn 0.9831 -0.1587 -0.0916 +vn -0.9831 0.1587 -0.0916 +vn -0.0013 0.0752 0.9972 +vn -0.7649 0.4355 0.4747 +vn -0.7674 0.4364 0.4698 +vn -0.7685 0.3624 -0.5273 +vn -0.7709 0.3641 -0.5227 +vn -0.0085 -0.0701 -0.9975 +vn 0.0013 -0.0752 -0.9972 +vn 0.7649 -0.4355 -0.4747 +vn 0.7674 -0.4364 -0.4698 +vn 0.7685 -0.3624 0.5273 +vn 0.0085 0.0701 0.9975 +vn 0.0036 0.9722 0.2341 +vn -0.7691 0.5824 -0.2631 +vn -0.7690 0.5826 -0.2630 +vn -0.7757 -0.3873 -0.4982 +vn -0.7736 -0.3916 -0.4981 +vn -0.0076 -0.9717 -0.2361 +vn -0.0036 -0.9722 -0.2341 +vn 0.7691 -0.5824 0.2631 +vn 0.7757 0.3873 0.4982 +vn 0.7736 0.3916 0.4981 +vn 0.0076 0.9717 0.2361 +vn 0.0010 0.5263 -0.8503 +vn -0.7687 -0.0687 -0.6359 +vn -0.7701 -0.0706 -0.6341 +vn -0.7723 -0.5975 0.2158 +vn -0.7736 -0.5967 0.2134 +vn -0.0061 -0.5286 0.8489 +vn -0.0010 -0.5264 0.8503 +vn 0.7687 0.0687 0.6359 +vn 0.7701 0.0706 0.6341 +vn 0.7723 0.5975 -0.2158 +vn 0.0061 0.5286 -0.8489 +vn -0.0013 -0.6470 -0.7625 +vn -0.7649 -0.6313 -0.1281 +vn -0.7674 -0.6292 -0.1236 +vn -0.7685 0.0167 0.6397 +vn -0.7709 0.0127 0.6369 +vn -0.0085 0.6431 0.7658 +vn 0.0013 0.6470 0.7625 +vn 0.7649 0.6313 0.1281 +vn 0.7674 0.6292 0.1236 +vn 0.7685 -0.0167 -0.6397 +vn 0.0085 -0.6431 -0.7658 +vn 0.0020 -0.9228 0.3853 +vn -0.7755 -0.3271 0.5399 +vn 0.0114 -0.9245 0.3811 +vn -0.7797 -0.3191 0.5388 +vn -0.7840 0.6009 0.1558 +vn -0.0114 0.9245 -0.3811 +vn -0.0020 0.9228 -0.3853 +vn 0.7755 0.3271 -0.5399 +vn 0.7797 0.3191 -0.5388 +vn 0.7840 -0.6009 -0.1558 +vn 0.7846 -0.6000 -0.1565 +vn -0.0000 0.3827 0.9239 +vn 0.6630 0.6916 0.2865 +vn 0.0000 0.9239 0.3827 +vn 0.9955 0.0363 0.0876 +vn 0.9955 0.0876 0.0363 +vn 0.7574 -0.6033 -0.2499 +vn 0.7574 -0.2499 -0.6033 +vn 0.0000 -0.9239 -0.3827 +vn -0.7574 -0.2499 -0.6033 +vn -0.7574 -0.6033 -0.2499 +vn -0.9955 0.0876 0.0363 +vn -0.6630 0.2865 0.6916 +vn -0.6630 0.6916 0.2865 +vn 0.0000 -0.3827 0.9239 +vn 0.6630 0.2865 0.6916 +vn 0.9955 -0.0363 0.0876 +vn 0.7574 0.2499 -0.6033 +vn 0.0000 -0.3827 -0.9239 +vn -0.0000 0.3827 -0.9239 +vn -0.7574 0.2499 -0.6033 +vn -0.9955 0.0363 0.0876 +vn -0.9955 -0.0363 0.0876 +vn -0.6630 -0.2865 0.6916 +vn 0.0000 -0.9239 0.3827 +vn 0.6630 -0.2865 0.6916 +vn 0.6630 -0.6916 0.2865 +vn 0.9955 -0.0876 0.0363 +vn 0.7574 0.6033 -0.2499 +vn 0.0000 0.9239 -0.3827 +vn -0.7574 0.6033 -0.2499 +vn -0.9955 -0.0876 0.0363 +vn -0.6630 -0.6916 0.2865 +vn 0.6630 -0.6916 -0.2865 +vn 0.9955 -0.0876 -0.0363 +vn 0.7574 0.6033 0.2499 +vn -0.7574 0.6033 0.2499 +vn -0.9955 -0.0876 -0.0363 +vn -0.6630 -0.6916 -0.2865 +vn 0.9955 -0.0363 -0.0876 +vn 0.7574 0.2499 0.6033 +vn -0.9955 -0.0363 -0.0876 +vn -0.6630 -0.2865 -0.6916 +vn 0.6630 -0.2865 -0.6916 +vn 0.6630 0.2865 -0.6916 +vn 0.9955 0.0363 -0.0876 +vn 0.7574 -0.2499 0.6033 +vn -0.7574 0.2499 0.6033 +vn -0.7574 -0.2499 0.6033 +vn -0.9955 0.0363 -0.0876 +vn -0.6630 0.2865 -0.6916 +vn 0.9955 0.0876 -0.0363 +vn 0.7574 -0.6033 0.2499 +vn -0.7574 -0.6033 0.2499 +vn -0.6630 0.6916 -0.2865 +vn 0.6630 0.6916 -0.2865 +vn -0.9955 0.0876 -0.0363 +vn -1.0000 0.0000 0.0000 +vn -0.2152 -0.8457 0.4883 +vn -0.2152 -0.8457 -0.4883 +vn -0.2152 -0.0000 -0.9766 +vn -0.2152 0.8457 -0.4883 +vn -0.2152 0.8457 0.4883 +vn -0.2152 0.0000 0.9766 +vn 0.0013 0.0752 0.9972 +vn 0.7649 0.4355 0.4747 +vn -0.0085 0.0701 0.9975 +vn 0.7674 0.4364 0.4698 +vn 0.7685 0.3625 -0.5273 +vn 0.0085 -0.0701 -0.9975 +vn 0.7709 0.3641 -0.5227 +vn -0.7649 -0.4355 -0.4747 +vn -0.0013 -0.0752 -0.9972 +vn -0.7685 -0.3624 0.5273 +vn -0.7674 -0.4364 -0.4698 +vn -0.7709 -0.3641 0.5227 +vn -0.0036 0.9722 0.2341 +vn 0.7691 0.5824 -0.2631 +vn -0.0076 0.9717 0.2361 +vn 0.7757 -0.3873 -0.4982 +vn 0.7690 0.5826 -0.2630 +vn 0.0076 -0.9717 -0.2361 +vn 0.7736 -0.3916 -0.4981 +vn -0.7691 -0.5824 0.2631 +vn 0.0036 -0.9722 -0.2341 +vn -0.7757 0.3873 0.4982 +vn -0.7691 -0.5826 0.2630 +vn -0.7736 0.3916 0.4981 +vn -0.0010 0.5263 -0.8503 +vn 0.7687 -0.0687 -0.6359 +vn -0.0061 0.5286 -0.8489 +vn 0.7701 -0.0706 -0.6341 +vn 0.7723 -0.5975 0.2158 +vn 0.0061 -0.5286 0.8489 +vn 0.7736 -0.5967 0.2134 +vn -0.7687 0.0687 0.6359 +vn 0.0010 -0.5263 0.8503 +vn -0.7723 0.5975 -0.2158 +vn -0.7701 0.0706 0.6341 +vn -0.7736 0.5967 -0.2134 +vn 0.0013 -0.6470 -0.7625 +vn 0.7649 -0.6313 -0.1281 +vn -0.0085 -0.6431 -0.7658 +vn 0.7674 -0.6292 -0.1236 +vn 0.7685 0.0167 0.6397 +vn 0.0085 0.6431 0.7658 +vn 0.7709 0.0127 0.6369 +vn -0.7649 0.6313 0.1281 +vn -0.0013 0.6470 0.7625 +vn -0.7685 -0.0167 -0.6397 +vn -0.7674 0.6292 0.1236 +vn -0.7709 -0.0127 -0.6369 +vn 0.7755 -0.3271 0.5399 +vn -0.0020 -0.9228 0.3853 +vn -0.0114 -0.9245 0.3811 +vn 0.7840 0.6009 0.1558 +vn 0.7797 -0.3191 0.5388 +vn 0.0114 0.9245 -0.3811 +vn 0.7846 0.6000 0.1565 +vn 0.0020 0.9228 -0.3853 +vn -0.7755 0.3271 -0.5399 +vn -0.7797 0.3191 -0.5388 +vn -0.7840 -0.6009 -0.1558 +vn -0.7846 -0.6000 -0.1565 +vn 0.7709 -0.3641 0.5227 +vn 0.7690 -0.5826 0.2630 +vn 0.7736 0.5967 -0.2134 +vn 0.7709 -0.0127 -0.6369 +vn -0.7846 0.6000 0.1565 +s 1 +f 911/1737/469 889/1738/470 899/1739/469 +f 905/1740/471 895/1741/472 893/1742/471 +f 907/1743/472 897/1744/473 895/1741/472 +f 909/1745/473 899/1739/469 897/1744/473 +f 896/1746/474 894/1747/474 890/1748/474 +f 889/1738/470 903/1749/475 891/1750/475 +f 903/1749/475 893/1751/471 891/1750/475 +f 910/1752/476 900/1753/477 912/1754/477 +f 896/1755/478 910/1752/476 908/1756/478 +f 894/1757/479 908/1756/478 906/1758/479 +f 892/1759/480 906/1760/479 904/1761/480 +f 901/1762/481 892/1759/480 904/1761/480 +f 906/1760/482 924/1763/483 904/1761/483 +f 903/1749/484 916/1764/485 923/1765/484 +f 902/1766/485 913/1767/486 916/1764/485 +f 909/1745/487 913/1767/486 911/1737/486 +f 904/1761/483 915/1768/488 901/1762/488 +f 907/1743/489 917/1769/487 909/1745/487 +f 900/1753/477 901/1762/481 912/1754/477 +f 915/1768/470 913/1767/469 914/1770/469 +f 914/1770/469 917/1769/473 918/1771/473 +f 918/1771/473 919/1772/472 920/1773/472 +f 922/1774/471 919/1772/472 921/1775/471 +f 924/1763/475 921/1776/471 923/1765/475 +f 924/1763/475 916/1764/470 915/1768/470 +f 908/1756/490 922/1774/482 906/1758/482 +f 901/1762/488 914/1770/491 912/1754/491 +f 910/1752/492 920/1773/490 908/1756/490 +f 903/1749/484 921/1776/493 905/1777/493 +f 912/1754/491 918/1771/492 910/1752/492 +f 905/1740/493 919/1772/489 907/1743/489 +f 925/1778/494 928/1779/495 927/1780/496 +f 927/1781/496 930/1782/497 929/1783/498 +f 930/1782/497 931/1784/499 929/1783/498 +f 932/1785/500 933/1786/501 931/1784/499 +f 934/1787/502 935/1788/503 933/1786/501 +f 935/1788/503 926/1789/504 925/1778/494 +f 937/1790/505 940/1791/506 939/1792/507 +f 940/1793/506 941/1794/508 939/1795/507 +f 942/1796/509 943/1797/510 941/1794/508 +f 944/1798/511 945/1799/512 943/1797/510 +f 945/1799/512 948/1800/513 947/1801/514 +f 947/1801/514 938/1802/515 937/1790/505 +f 949/1803/516 952/1804/517 951/1805/518 +f 951/1806/518 954/1807/519 953/1808/520 +f 954/1807/519 955/1809/521 953/1808/520 +f 956/1810/522 957/1811/523 955/1809/521 +f 958/1812/524 959/1813/525 957/1811/523 +f 959/1813/525 950/1814/526 949/1803/516 +f 961/1815/527 964/1816/528 963/1817/529 +f 963/1818/529 966/1819/530 965/1820/531 +f 966/1819/530 967/1821/532 965/1820/531 +f 968/1822/533 969/1823/534 967/1821/532 +f 970/1824/535 971/1825/536 969/1823/534 +f 971/1825/536 962/1826/537 961/1815/527 +f 974/1827/538 975/1828/539 973/1829/540 +f 976/1830/541 977/1831/542 975/1832/539 +f 977/1831/542 980/1833/543 979/1834/544 +f 979/1834/544 982/1835/545 981/1836/546 +f 981/1836/546 984/1837/547 983/1838/548 +f 984/1837/547 973/1829/540 983/1838/548 +f 993/1839/549 986/1840/550 985/1841/551 +f 986/1840/550 995/1842/552 987/1843/553 +f 995/1842/552 988/1844/554 987/1843/553 +f 996/1845/555 989/1846/556 988/1844/554 +f 989/1846/556 998/1847/557 990/1848/558 +f 998/1847/557 991/1849/559 990/1848/558 +f 991/1850/559 1000/1851/560 992/1852/561 +f 1000/1851/560 985/1841/551 992/1852/561 +f 1001/1853/562 994/1854/563 993/1839/549 +f 994/1854/563 1003/1855/564 995/1842/552 +f 1003/1855/564 996/1845/555 995/1842/552 +f 1004/1856/565 997/1857/566 996/1845/555 +f 1005/1858/567 998/1847/557 997/1857/566 +f 1006/1859/568 999/1860/569 998/1847/557 +f 1007/1861/570 1000/1851/560 999/1862/569 +f 1008/1863/571 993/1839/549 1000/1851/560 +f 1009/1864/572 1002/1865/573 1001/1866/562 +f 1010/1867/574 1003/1868/564 1002/1865/573 +f 1011/1869/575 1004/1870/565 1003/1868/564 +f 1012/1871/576 1005/1872/567 1004/1870/565 +f 1013/1873/577 1006/1874/568 1005/1872/567 +f 1014/1875/578 1007/1876/570 1006/1874/568 +f 1015/1877/579 1008/1878/571 1007/1879/570 +f 1016/1880/580 1001/1866/562 1008/1878/571 +f 1009/1864/572 1018/1881/581 1010/1867/574 +f 1018/1881/581 1011/1869/575 1010/1867/574 +f 1019/1882/582 1012/1871/576 1011/1869/575 +f 1020/1883/583 1013/1873/577 1012/1871/576 +f 1021/1884/551 1014/1875/578 1013/1873/577 +f 1022/1885/584 1015/1886/579 1014/1875/578 +f 1023/1887/585 1016/1880/580 1015/1877/579 +f 1024/1888/586 1009/1864/572 1016/1880/580 +f 1025/1889/566 1018/1881/581 1017/1890/556 +f 1018/1881/581 1027/1891/587 1019/1882/582 +f 1019/1882/582 1028/1892/588 1020/1883/583 +f 1020/1883/583 1029/1893/549 1021/1884/551 +f 1029/1893/549 1022/1885/584 1021/1884/551 +f 1022/1885/584 1031/1894/589 1023/1895/585 +f 1023/1887/585 1032/1896/590 1024/1888/586 +f 1032/1896/590 1017/1890/556 1024/1888/586 +f 1033/1897/567 1026/1898/591 1025/1889/566 +f 1034/1899/592 1027/1891/587 1026/1898/591 +f 1035/1900/593 1028/1892/588 1027/1891/587 +f 1036/1901/594 1029/1893/549 1028/1892/588 +f 1037/1902/562 1030/1903/595 1029/1893/549 +f 1038/1904/596 1031/1894/589 1030/1903/595 +f 1039/1905/597 1032/1896/590 1031/1906/589 +f 1040/1907/598 1025/1889/566 1032/1896/590 +f 1041/1908/577 1034/1899/592 1033/1897/567 +f 1034/1899/592 1043/1909/599 1035/1900/593 +f 1043/1909/599 1036/1901/594 1035/1900/593 +f 1044/1910/600 1037/1902/562 1036/1901/594 +f 1037/1902/562 1046/1911/601 1038/1904/596 +f 1046/1911/601 1039/1912/597 1038/1904/596 +f 1039/1905/597 1048/1913/602 1040/1907/598 +f 1048/1913/602 1033/1897/567 1040/1907/598 +f 985/1841/551 1042/1914/603 1041/1908/577 +f 986/1840/550 1043/1909/599 1042/1914/603 +f 987/1843/553 1044/1910/600 1043/1909/599 +f 988/1844/554 1045/1915/572 1044/1910/600 +f 989/1846/556 1046/1911/601 1045/1915/572 +f 990/1848/558 1047/1916/604 1046/1911/601 +f 991/1850/559 1048/1913/602 1047/1917/604 +f 1048/1913/602 985/1841/551 1041/1908/577 +f 1049/1918/470 1071/1919/469 1059/1920/469 +f 1055/1921/472 1065/1922/471 1053/1923/471 +f 1057/1924/473 1067/1925/472 1055/1921/472 +f 1059/1920/469 1069/1926/473 1057/1924/473 +f 1058/1927/605 1060/1928/605 1050/1929/605 +f 1051/1930/475 1062/1931/470 1049/1918/470 +f 1053/1932/471 1063/1933/475 1051/1930/475 +f 1072/1934/606 1058/1935/607 1070/1936/607 +f 1068/1937/608 1058/1935/607 1056/1938/608 +f 1068/1937/608 1054/1939/609 1066/1940/609 +f 1066/1941/609 1052/1942/610 1064/1943/610 +f 1064/1943/610 1050/1944/611 1061/1945/611 +f 1084/1946/484 1066/1941/493 1064/1943/484 +f 1083/1947/483 1062/1931/488 1063/1933/483 +f 1076/1948/488 1071/1919/491 1062/1931/488 +f 1073/1949/491 1069/1926/492 1071/1919/491 +f 1075/1950/485 1064/1943/484 1061/1945/485 +f 1069/1926/492 1079/1951/490 1067/1925/490 +f 1072/1934/606 1050/1944/611 1060/1952/606 +f 1074/1953/469 1076/1948/470 1075/1950/470 +f 1078/1954/473 1073/1949/469 1074/1953/469 +f 1079/1951/472 1078/1954/473 1080/1955/472 +f 1081/1956/471 1080/1955/472 1082/1957/471 +f 1083/1947/475 1082/1958/471 1084/1946/475 +f 1076/1948/470 1084/1946/475 1075/1950/470 +f 1066/1940/493 1080/1955/489 1068/1937/489 +f 1074/1953/486 1061/1945/485 1072/1934/486 +f 1068/1937/489 1078/1954/487 1070/1936/487 +f 1081/1959/482 1063/1933/483 1065/1960/482 +f 1078/1954/487 1072/1934/486 1070/1936/487 +f 1079/1951/490 1065/1922/482 1067/1925/490 +f 1085/1961/612 1088/1962/613 1086/1963/614 +f 1087/1964/615 1090/1965/616 1088/1966/613 +f 1091/1967/617 1090/1965/616 1089/1968/618 +f 1093/1969/619 1092/1970/620 1091/1967/617 +f 1095/1971/621 1094/1972/622 1093/1969/619 +f 1095/1971/621 1086/1963/614 1096/1973/623 +f 1097/1974/624 1100/1975/625 1098/1976/626 +f 1101/1977/627 1100/1978/625 1099/1979/628 +f 1103/1980/629 1102/1981/630 1101/1977/627 +f 1105/1982/631 1104/1983/632 1103/1980/629 +f 1105/1982/631 1108/1984/633 1106/1985/634 +f 1107/1986/635 1098/1976/626 1108/1984/633 +f 1109/1987/636 1112/1988/637 1110/1989/638 +f 1111/1990/639 1114/1991/640 1112/1992/637 +f 1115/1993/641 1114/1991/640 1113/1994/642 +f 1117/1995/643 1116/1996/644 1115/1993/641 +f 1119/1997/645 1118/1998/646 1117/1995/643 +f 1119/1997/645 1110/1989/638 1120/1999/647 +f 1121/2000/648 1124/2001/649 1122/2002/650 +f 1123/2003/651 1126/2004/652 1124/2005/649 +f 1127/2006/653 1126/2004/652 1125/2007/654 +f 1129/2008/655 1128/2009/656 1127/2006/653 +f 1131/2010/657 1130/2011/658 1129/2008/655 +f 1131/2010/657 1122/2002/650 1132/2012/659 +f 1135/2013/660 1134/2014/661 1133/2015/662 +f 1137/2016/663 1136/2017/664 1135/2018/660 +f 1137/2016/663 1140/2019/665 1138/2020/666 +f 1139/2021/667 1142/2022/668 1140/2019/665 +f 1141/2023/669 1144/2024/670 1142/2022/668 +f 1133/2015/662 1144/2024/670 1143/2025/671 +f 1146/2026/561 1153/2027/549 1145/2028/551 +f 1146/2026/561 1155/2029/569 1154/2030/560 +f 1147/2031/559 1156/2032/557 1155/2029/569 +f 1149/2033/556 1156/2032/557 1148/2034/558 +f 1149/2033/556 1158/2035/555 1157/2036/566 +f 1151/2037/553 1158/2035/555 1150/2038/554 +f 1152/2039/550 1159/2040/552 1151/2041/553 +f 1145/2028/551 1160/2042/563 1152/2039/550 +f 1153/2027/549 1162/2043/571 1161/2044/562 +f 1155/2029/569 1162/2043/571 1154/2030/560 +f 1155/2029/569 1164/2045/568 1163/2046/570 +f 1157/2036/566 1164/2045/568 1156/2032/557 +f 1158/2035/555 1165/2047/567 1157/2036/566 +f 1158/2035/555 1167/2048/564 1166/2049/565 +f 1160/2042/563 1167/2050/564 1159/2040/552 +f 1153/2027/549 1168/2051/573 1160/2042/563 +f 1161/2052/562 1170/2053/580 1169/2054/572 +f 1163/2055/570 1170/2053/580 1162/2056/571 +f 1163/2055/570 1172/2057/578 1171/2058/579 +f 1165/2059/567 1172/2057/578 1164/2060/568 +f 1166/2061/565 1173/2062/577 1165/2059/567 +f 1166/2061/565 1175/2063/575 1174/2064/576 +f 1168/2065/573 1175/2066/575 1167/2067/564 +f 1161/2052/562 1176/2068/574 1168/2065/573 +f 1170/2053/580 1177/2069/556 1169/2054/572 +f 1171/2058/579 1178/2070/586 1170/2053/580 +f 1171/2058/579 1180/2071/584 1179/2072/585 +f 1173/2062/577 1180/2071/584 1172/2057/578 +f 1174/2064/576 1181/2073/551 1173/2062/577 +f 1175/2063/575 1182/2074/583 1174/2064/576 +f 1175/2066/575 1184/2075/581 1183/2076/582 +f 1169/2054/572 1184/2075/581 1176/2068/574 +f 1178/2070/586 1185/2077/566 1177/2069/556 +f 1178/2070/586 1187/2078/589 1186/2079/590 +f 1180/2071/584 1187/2078/589 1179/2072/585 +f 1181/2073/551 1188/2080/595 1180/2071/584 +f 1182/2074/583 1189/2081/549 1181/2073/551 +f 1182/2074/583 1191/2082/587 1190/2083/588 +f 1184/2075/581 1191/2084/587 1183/2076/582 +f 1184/2075/581 1185/2077/566 1192/2085/591 +f 1186/2079/590 1193/2086/567 1185/2077/566 +f 1186/2079/590 1195/2087/597 1194/2088/598 +f 1188/2080/595 1195/2087/597 1187/2078/589 +f 1188/2080/595 1197/2089/562 1196/2090/596 +f 1190/2083/588 1197/2089/562 1189/2081/549 +f 1190/2083/588 1199/2091/593 1198/2092/594 +f 1192/2085/591 1199/2093/593 1191/2084/587 +f 1185/2077/566 1200/2094/592 1192/2085/591 +f 1194/2088/598 1201/2095/577 1193/2086/567 +f 1194/2088/598 1203/2096/604 1202/2097/602 +f 1196/2090/596 1203/2096/604 1195/2087/597 +f 1197/2089/562 1204/2098/601 1196/2090/596 +f 1198/2092/594 1205/2099/572 1197/2089/562 +f 1199/2091/593 1206/2100/600 1198/2092/594 +f 1200/2094/592 1207/2101/599 1199/2093/593 +f 1193/2086/567 1208/2102/603 1200/2094/592 +f 1202/2097/602 1145/2028/551 1201/2095/577 +f 1202/2097/602 1147/2031/559 1146/2026/561 +f 1204/2098/601 1147/2031/559 1203/2096/604 +f 1204/2098/601 1149/2033/556 1148/2034/558 +f 1206/2100/600 1149/2033/556 1205/2099/572 +f 1207/2103/599 1150/2038/554 1206/2100/600 +f 1208/2102/603 1151/2041/553 1207/2101/599 +f 1201/2095/577 1152/2039/550 1208/2102/603 +f 911/1737/469 902/1766/470 889/1738/470 +f 905/1740/471 907/1743/472 895/1741/472 +f 907/1743/472 909/1745/473 897/1744/473 +f 909/1745/473 911/1737/469 899/1739/469 +f 894/1747/474 892/2104/474 890/1748/474 +f 890/1748/474 900/2105/474 898/2106/474 +f 898/2106/474 896/1746/474 890/1748/474 +f 889/1738/470 902/1766/470 903/1749/475 +f 903/1749/475 905/1777/471 893/1751/471 +f 910/1752/476 898/2107/476 900/1753/477 +f 896/1755/478 898/2107/476 910/1752/476 +f 894/1757/479 896/1755/478 908/1756/478 +f 892/1759/480 894/2108/479 906/1760/479 +f 901/1762/481 890/2109/481 892/1759/480 +f 906/1760/482 922/2110/482 924/1763/483 +f 903/1749/484 902/1766/485 916/1764/485 +f 902/1766/485 911/1737/486 913/1767/486 +f 909/1745/487 917/1769/487 913/1767/486 +f 904/1761/483 924/1763/483 915/1768/488 +f 907/1743/489 919/1772/489 917/1769/487 +f 900/1753/477 890/2109/481 901/1762/481 +f 915/1768/470 916/1764/470 913/1767/469 +f 914/1770/469 913/1767/469 917/1769/473 +f 918/1771/473 917/1769/473 919/1772/472 +f 922/1774/471 920/1773/472 919/1772/472 +f 924/1763/475 922/2110/471 921/1776/471 +f 924/1763/475 923/1765/475 916/1764/470 +f 908/1756/490 920/1773/490 922/1774/482 +f 901/1762/488 915/1768/488 914/1770/491 +f 910/1752/492 918/1771/492 920/1773/490 +f 903/1749/484 923/1765/484 921/1776/493 +f 912/1754/491 914/1770/491 918/1771/492 +f 905/1740/493 921/1775/493 919/1772/489 +f 925/1778/494 926/1789/504 928/1779/495 +f 927/1781/496 928/2111/495 930/1782/497 +f 930/1782/497 932/1785/500 931/1784/499 +f 932/1785/500 934/1787/502 933/1786/501 +f 934/1787/502 936/2112/672 935/1788/503 +f 935/1788/503 936/2112/672 926/1789/504 +f 937/1790/505 938/1802/515 940/1791/506 +f 940/1793/506 942/1796/509 941/1794/508 +f 942/1796/509 944/1798/511 943/1797/510 +f 944/1798/511 946/2113/673 945/1799/512 +f 945/1799/512 946/2113/673 948/1800/513 +f 947/1801/514 948/1800/513 938/1802/515 +f 949/1803/516 950/1814/526 952/1804/517 +f 951/1806/518 952/2114/517 954/1807/519 +f 954/1807/519 956/1810/522 955/1809/521 +f 956/1810/522 958/1812/524 957/1811/523 +f 958/1812/524 960/2115/674 959/1813/525 +f 959/1813/525 960/2115/674 950/1814/526 +f 961/1815/527 962/1826/537 964/1816/528 +f 963/1818/529 964/2116/528 966/1819/530 +f 966/1819/530 968/1822/533 967/1821/532 +f 968/1822/533 970/1824/535 969/1823/534 +f 970/1824/535 972/2117/675 971/1825/536 +f 971/1825/536 972/2117/675 962/1826/537 +f 974/1827/538 976/2118/541 975/1828/539 +f 976/1830/541 978/2119/676 977/1831/542 +f 977/1831/542 978/2119/676 980/1833/543 +f 979/1834/544 980/1833/543 982/1835/545 +f 981/1836/546 982/1835/545 984/1837/547 +f 984/1837/547 974/1827/538 973/1829/540 +f 993/1839/549 994/1854/563 986/1840/550 +f 986/1840/550 994/1854/563 995/1842/552 +f 995/1842/552 996/1845/555 988/1844/554 +f 996/1845/555 997/1857/566 989/1846/556 +f 989/1846/556 997/1857/566 998/1847/557 +f 998/1847/557 999/1860/569 991/1849/559 +f 991/1850/559 999/1862/569 1000/1851/560 +f 1000/1851/560 993/1839/549 985/1841/551 +f 1001/1853/562 1002/2120/573 994/1854/563 +f 994/1854/563 1002/2120/573 1003/1855/564 +f 1003/1855/564 1004/1856/565 996/1845/555 +f 1004/1856/565 1005/1858/567 997/1857/566 +f 1005/1858/567 1006/1859/568 998/1847/557 +f 1006/1859/568 1007/2121/570 999/1860/569 +f 1007/1861/570 1008/1863/571 1000/1851/560 +f 1008/1863/571 1001/1853/562 993/1839/549 +f 1009/1864/572 1010/1867/574 1002/1865/573 +f 1010/1867/574 1011/1869/575 1003/1868/564 +f 1011/1869/575 1012/1871/576 1004/1870/565 +f 1012/1871/576 1013/1873/577 1005/1872/567 +f 1013/1873/577 1014/1875/578 1006/1874/568 +f 1014/1875/578 1015/1886/579 1007/1876/570 +f 1015/1877/579 1016/1880/580 1008/1878/571 +f 1016/1880/580 1009/1864/572 1001/1866/562 +f 1009/1864/572 1017/1890/556 1018/1881/581 +f 1018/1881/581 1019/1882/582 1011/1869/575 +f 1019/1882/582 1020/1883/583 1012/1871/576 +f 1020/1883/583 1021/1884/551 1013/1873/577 +f 1021/1884/551 1022/1885/584 1014/1875/578 +f 1022/1885/584 1023/1895/585 1015/1886/579 +f 1023/1887/585 1024/1888/586 1016/1880/580 +f 1024/1888/586 1017/1890/556 1009/1864/572 +f 1025/1889/566 1026/1898/591 1018/1881/581 +f 1018/1881/581 1026/1898/591 1027/1891/587 +f 1019/1882/582 1027/1891/587 1028/1892/588 +f 1020/1883/583 1028/1892/588 1029/1893/549 +f 1029/1893/549 1030/1903/595 1022/1885/584 +f 1022/1885/584 1030/1903/595 1031/1894/589 +f 1023/1887/585 1031/1906/589 1032/1896/590 +f 1032/1896/590 1025/1889/566 1017/1890/556 +f 1033/1897/567 1034/1899/592 1026/1898/591 +f 1034/1899/592 1035/1900/593 1027/1891/587 +f 1035/1900/593 1036/1901/594 1028/1892/588 +f 1036/1901/594 1037/1902/562 1029/1893/549 +f 1037/1902/562 1038/1904/596 1030/1903/595 +f 1038/1904/596 1039/1912/597 1031/1894/589 +f 1039/1905/597 1040/1907/598 1032/1896/590 +f 1040/1907/598 1033/1897/567 1025/1889/566 +f 1041/1908/577 1042/1914/603 1034/1899/592 +f 1034/1899/592 1042/1914/603 1043/1909/599 +f 1043/1909/599 1044/1910/600 1036/1901/594 +f 1044/1910/600 1045/1915/572 1037/1902/562 +f 1037/1902/562 1045/1915/572 1046/1911/601 +f 1046/1911/601 1047/1916/604 1039/1912/597 +f 1039/1905/597 1047/1917/604 1048/1913/602 +f 1048/1913/602 1041/1908/577 1033/1897/567 +f 985/1841/551 986/1840/550 1042/1914/603 +f 986/1840/550 987/1843/553 1043/1909/599 +f 987/1843/553 988/1844/554 1044/1910/600 +f 988/1844/554 989/1846/556 1045/1915/572 +f 989/1846/556 990/1848/558 1046/1911/601 +f 990/1848/558 991/1849/559 1047/1916/604 +f 991/1850/559 992/1852/561 1048/1913/602 +f 1048/1913/602 992/1852/561 985/1841/551 +f 1049/1918/470 1062/1931/470 1071/1919/469 +f 1055/1921/472 1067/1925/472 1065/1922/471 +f 1057/1924/473 1069/1926/473 1067/1925/472 +f 1059/1920/469 1071/1919/469 1069/1926/473 +f 1050/1929/605 1052/2122/605 1054/2123/605 +f 1054/2123/605 1056/2124/605 1050/1929/605 +f 1056/2124/605 1058/1927/605 1050/1929/605 +f 1051/1930/475 1063/1933/475 1062/1931/470 +f 1053/1932/471 1065/1960/471 1063/1933/475 +f 1072/1934/606 1060/1952/606 1058/1935/607 +f 1068/1937/608 1070/1936/607 1058/1935/607 +f 1068/1937/608 1056/1938/608 1054/1939/609 +f 1066/1941/609 1054/2125/609 1052/1942/610 +f 1064/1943/610 1052/1942/610 1050/1944/611 +f 1084/1946/484 1082/1958/493 1066/1941/493 +f 1083/1947/483 1076/1948/488 1062/1931/488 +f 1076/1948/488 1073/1949/491 1071/1919/491 +f 1073/1949/491 1077/2126/492 1069/1926/492 +f 1075/1950/485 1084/1946/484 1064/1943/484 +f 1069/1926/492 1077/2126/492 1079/1951/490 +f 1072/1934/606 1061/1945/611 1050/1944/611 +f 1074/1953/469 1073/1949/469 1076/1948/470 +f 1078/1954/473 1077/2126/473 1073/1949/469 +f 1079/1951/472 1077/2126/473 1078/1954/473 +f 1081/1956/471 1079/1951/472 1080/1955/472 +f 1083/1947/475 1081/1959/471 1082/1958/471 +f 1076/1948/470 1083/1947/475 1084/1946/475 +f 1066/1940/493 1082/1957/493 1080/1955/489 +f 1074/1953/486 1075/1950/485 1061/1945/485 +f 1068/1937/489 1080/1955/489 1078/1954/487 +f 1081/1959/482 1083/1947/483 1063/1933/483 +f 1078/1954/487 1074/1953/486 1072/1934/486 +f 1079/1951/490 1081/1956/482 1065/1922/482 +f 1085/1961/612 1087/2127/615 1088/1962/613 +f 1087/1964/615 1089/1968/618 1090/1965/616 +f 1091/1967/617 1092/1970/620 1090/1965/616 +f 1093/1969/619 1094/1972/622 1092/1970/620 +f 1095/1971/621 1096/1973/623 1094/1972/622 +f 1095/1971/621 1085/1961/612 1086/1963/614 +f 1097/1974/624 1099/2128/628 1100/1975/625 +f 1101/1977/627 1102/1981/630 1100/1978/625 +f 1103/1980/629 1104/1983/632 1102/1981/630 +f 1105/1982/631 1106/1985/634 1104/1983/632 +f 1105/1982/631 1107/1986/635 1108/1984/633 +f 1107/1986/635 1097/1974/624 1098/1976/626 +f 1109/1987/636 1111/2129/639 1112/1988/637 +f 1111/1990/639 1113/1994/642 1114/1991/640 +f 1115/1993/641 1116/1996/644 1114/1991/640 +f 1117/1995/643 1118/1998/646 1116/1996/644 +f 1119/1997/645 1120/1999/647 1118/1998/646 +f 1119/1997/645 1109/1987/636 1110/1989/638 +f 1121/2000/648 1123/2130/651 1124/2001/649 +f 1123/2003/651 1125/2007/654 1126/2004/652 +f 1127/2006/653 1128/2009/656 1126/2004/652 +f 1129/2008/655 1130/2011/658 1128/2009/656 +f 1131/2010/657 1132/2012/659 1130/2011/658 +f 1131/2010/657 1121/2000/648 1122/2002/650 +f 1135/2013/660 1136/2131/664 1134/2014/661 +f 1137/2016/663 1138/2020/666 1136/2017/664 +f 1137/2016/663 1139/2021/667 1140/2019/665 +f 1139/2021/667 1141/2023/669 1142/2022/668 +f 1141/2023/669 1143/2025/671 1144/2024/670 +f 1133/2015/662 1134/2014/661 1144/2024/670 +f 1146/2026/561 1154/2030/560 1153/2027/549 +f 1146/2026/561 1147/2031/559 1155/2029/569 +f 1147/2031/559 1148/2034/558 1156/2032/557 +f 1149/2033/556 1157/2036/566 1156/2032/557 +f 1149/2033/556 1150/2038/554 1158/2035/555 +f 1151/2037/553 1159/2132/552 1158/2035/555 +f 1152/2039/550 1160/2042/563 1159/2040/552 +f 1145/2028/551 1153/2027/549 1160/2042/563 +f 1153/2027/549 1154/2030/560 1162/2043/571 +f 1155/2029/569 1163/2046/570 1162/2043/571 +f 1155/2029/569 1156/2032/557 1164/2045/568 +f 1157/2036/566 1165/2047/567 1164/2045/568 +f 1158/2035/555 1166/2049/565 1165/2047/567 +f 1158/2035/555 1159/2132/552 1167/2048/564 +f 1160/2042/563 1168/2051/573 1167/2050/564 +f 1153/2027/549 1161/2044/562 1168/2051/573 +f 1161/2052/562 1162/2056/571 1170/2053/580 +f 1163/2055/570 1171/2058/579 1170/2053/580 +f 1163/2055/570 1164/2060/568 1172/2057/578 +f 1165/2059/567 1173/2062/577 1172/2057/578 +f 1166/2061/565 1174/2064/576 1173/2062/577 +f 1166/2061/565 1167/2133/564 1175/2063/575 +f 1168/2065/573 1176/2068/574 1175/2066/575 +f 1161/2052/562 1169/2054/572 1176/2068/574 +f 1170/2053/580 1178/2070/586 1177/2069/556 +f 1171/2058/579 1179/2072/585 1178/2070/586 +f 1171/2058/579 1172/2057/578 1180/2071/584 +f 1173/2062/577 1181/2073/551 1180/2071/584 +f 1174/2064/576 1182/2074/583 1181/2073/551 +f 1175/2063/575 1183/2134/582 1182/2074/583 +f 1175/2066/575 1176/2068/574 1184/2075/581 +f 1169/2054/572 1177/2069/556 1184/2075/581 +f 1178/2070/586 1186/2079/590 1185/2077/566 +f 1178/2070/586 1179/2072/585 1187/2078/589 +f 1180/2071/584 1188/2080/595 1187/2078/589 +f 1181/2073/551 1189/2081/549 1188/2080/595 +f 1182/2074/583 1190/2083/588 1189/2081/549 +f 1182/2074/583 1183/2134/582 1191/2082/587 +f 1184/2075/581 1192/2085/591 1191/2084/587 +f 1184/2075/581 1177/2069/556 1185/2077/566 +f 1186/2079/590 1194/2088/598 1193/2086/567 +f 1186/2079/590 1187/2078/589 1195/2087/597 +f 1188/2080/595 1196/2090/596 1195/2087/597 +f 1188/2080/595 1189/2081/549 1197/2089/562 +f 1190/2083/588 1198/2092/594 1197/2089/562 +f 1190/2083/588 1191/2082/587 1199/2091/593 +f 1192/2085/591 1200/2094/592 1199/2093/593 +f 1185/2077/566 1193/2086/567 1200/2094/592 +f 1194/2088/598 1202/2097/602 1201/2095/577 +f 1194/2088/598 1195/2087/597 1203/2096/604 +f 1196/2090/596 1204/2098/601 1203/2096/604 +f 1197/2089/562 1205/2099/572 1204/2098/601 +f 1198/2092/594 1206/2100/600 1205/2099/572 +f 1199/2091/593 1207/2103/599 1206/2100/600 +f 1200/2094/592 1208/2102/603 1207/2101/599 +f 1193/2086/567 1201/2095/577 1208/2102/603 +f 1202/2097/602 1146/2026/561 1145/2028/551 +f 1202/2097/602 1203/2096/604 1147/2031/559 +f 1204/2098/601 1148/2034/558 1147/2031/559 +f 1204/2098/601 1205/2099/572 1149/2033/556 +f 1206/2100/600 1150/2038/554 1149/2033/556 +f 1207/2103/599 1151/2037/553 1150/2038/554 +f 1208/2102/603 1152/2039/550 1151/2041/553 +f 1201/2095/577 1145/2028/551 1152/2039/550 +o spinny_upper +v 0.127409 2.435693 -0.570525 +v 0.311433 2.435693 -0.573891 +v 0.127409 2.450696 -0.579187 +v 0.311433 2.447781 -0.580870 +v 0.127409 2.450696 -0.596510 +v 0.311433 2.447781 -0.594827 +v 0.127409 2.435693 -0.605172 +v 0.311433 2.435693 -0.601806 +v 0.127409 2.420691 -0.596510 +v 0.311433 2.423605 -0.594827 +v 0.127409 2.420691 -0.579187 +v 0.311433 2.423605 -0.580870 +v 0.296158 2.435693 -0.570525 +v 0.244484 2.435693 -0.570525 +v 0.244484 2.450696 -0.579187 +v 0.296158 2.450696 -0.579187 +v 0.244484 2.450696 -0.596510 +v 0.296158 2.450696 -0.596510 +v 0.244484 2.435693 -0.605172 +v 0.296158 2.435693 -0.605172 +v 0.244484 2.420691 -0.596510 +v 0.296158 2.420691 -0.596510 +v 0.244484 2.420691 -0.579187 +v 0.296158 2.420691 -0.579187 +v 0.248187 2.403485 -0.569253 +v 0.292455 2.403485 -0.569253 +v 0.292455 2.435693 -0.550658 +v 0.248187 2.435693 -0.550658 +v 0.248187 2.403485 -0.606444 +v 0.292455 2.403485 -0.606444 +v 0.248187 2.435693 -0.625039 +v 0.292455 2.435693 -0.625039 +v 0.248187 2.467901 -0.606444 +v 0.292455 2.467901 -0.606444 +v 0.248187 2.467901 -0.569253 +v 0.292455 2.467901 -0.569253 +v 0.264576 2.450435 -0.571215 +v 0.375908 2.663330 -0.587129 +v 0.252583 2.455839 -0.579309 +v 0.363915 2.668733 -0.595223 +v 0.252527 2.454715 -0.594713 +v 0.363860 2.667610 -0.610627 +v 0.264465 2.448188 -0.602023 +v 0.375797 2.661082 -0.617937 +v 0.276457 2.442784 -0.593929 +v 0.387789 2.655678 -0.609843 +v 0.276513 2.443907 -0.578525 +v 0.387845 2.656802 -0.594439 +v 0.265024 2.453681 -0.594850 +v 0.375908 2.504334 -0.806877 +v 0.253032 2.447653 -0.602490 +v 0.363915 2.498306 -0.814518 +v 0.252976 2.432656 -0.606182 +v 0.363859 2.483309 -0.818209 +v 0.264913 2.423687 -0.602232 +v 0.375797 2.474340 -0.814260 +v 0.276906 2.429715 -0.594592 +v 0.387789 2.480368 -0.806619 +v 0.276962 2.444712 -0.590900 +v 0.387845 2.495365 -0.802928 +v 0.264576 2.432207 -0.605240 +v 0.375908 2.246909 -0.719820 +v 0.252583 2.423077 -0.601869 +v 0.363915 2.237780 -0.716448 +v 0.252527 2.414932 -0.588746 +v 0.363859 2.229635 -0.703326 +v 0.264465 2.415917 -0.578996 +v 0.375797 2.230619 -0.693575 +v 0.276457 2.425046 -0.582368 +v 0.387789 2.239748 -0.696947 +v 0.276513 2.433191 -0.595490 +v 0.387845 2.247894 -0.710069 +v 0.264576 2.415689 -0.588028 +v 0.375908 2.252807 -0.450017 +v 0.252583 2.416074 -0.578304 +v 0.363915 2.253193 -0.440293 +v 0.252527 2.426037 -0.566502 +v 0.363860 2.263156 -0.428491 +v 0.264465 2.435615 -0.564425 +v 0.375797 2.272733 -0.426414 +v 0.276457 2.435229 -0.574150 +v 0.387789 2.272347 -0.436139 +v 0.276513 2.425266 -0.585951 +v 0.387845 2.262384 -0.447940 +v 0.269238 2.426954 -0.566999 +v 0.375908 2.512899 -0.361717 +v 0.257245 2.436322 -0.564361 +v 0.363915 2.522266 -0.359079 +v 0.257189 2.450624 -0.570190 +v 0.363860 2.536569 -0.364907 +v 0.269127 2.455559 -0.578657 +v 0.375797 2.541504 -0.373374 +v 0.281119 2.446192 -0.581295 +v 0.387789 2.532136 -0.376013 +v 0.281175 2.431889 -0.575466 +v 0.387845 2.517833 -0.370184 +v 0.380466 2.692867 -0.481324 +v 0.398360 2.686019 -0.484160 +v 0.405772 2.669487 -0.491008 +v 0.398360 2.652956 -0.497855 +v 0.380466 2.646108 -0.500692 +v 0.362572 2.652956 -0.497855 +v 0.355160 2.669487 -0.491008 +v 0.362572 2.686019 -0.484160 +v 0.380466 2.542218 -0.330675 +v 0.398360 2.539381 -0.337523 +v 0.405772 2.532534 -0.354054 +v 0.398360 2.525686 -0.370586 +v 0.380466 2.522850 -0.377434 +v 0.362572 2.525686 -0.370586 +v 0.355160 2.532534 -0.354054 +v 0.362572 2.539381 -0.337523 +v 0.380466 2.329168 -0.330675 +v 0.398360 2.332005 -0.337523 +v 0.405772 2.338852 -0.354054 +v 0.398360 2.345700 -0.370586 +v 0.380466 2.348536 -0.377434 +v 0.362572 2.345700 -0.370586 +v 0.355160 2.338852 -0.354054 +v 0.362572 2.332005 -0.337523 +v 0.380466 2.178519 -0.481324 +v 0.398360 2.185367 -0.484160 +v 0.405772 2.201899 -0.491008 +v 0.398360 2.218431 -0.497856 +v 0.380466 2.225278 -0.500692 +v 0.362572 2.218431 -0.497856 +v 0.355160 2.201899 -0.491008 +v 0.362572 2.185367 -0.484160 +v 0.380466 2.178519 -0.694373 +v 0.398360 2.185367 -0.691537 +v 0.405772 2.201899 -0.684689 +v 0.398360 2.218431 -0.677842 +v 0.380466 2.225278 -0.675005 +v 0.362572 2.218431 -0.677842 +v 0.355160 2.201899 -0.684689 +v 0.362572 2.185367 -0.691537 +v 0.380466 2.329168 -0.845022 +v 0.398360 2.332005 -0.838174 +v 0.405772 2.338852 -0.821643 +v 0.398360 2.345700 -0.805111 +v 0.380466 2.348536 -0.798263 +v 0.362572 2.345700 -0.805111 +v 0.355160 2.338852 -0.821643 +v 0.362572 2.332005 -0.838174 +v 0.380466 2.542218 -0.845022 +v 0.398360 2.539382 -0.838174 +v 0.405772 2.532534 -0.821643 +v 0.398360 2.525686 -0.805111 +v 0.380466 2.522850 -0.798263 +v 0.362572 2.525686 -0.805111 +v 0.355160 2.532534 -0.821643 +v 0.362572 2.539382 -0.838174 +v 0.380466 2.692867 -0.694373 +v 0.398360 2.686019 -0.691537 +v 0.405772 2.669487 -0.684689 +v 0.398360 2.652956 -0.677842 +v 0.380466 2.646108 -0.675005 +v 0.362572 2.652956 -0.677842 +v 0.355160 2.669487 -0.684689 +v 0.362572 2.686019 -0.691537 +v -0.044410 2.435693 -0.570525 +v -0.228434 2.435693 -0.573891 +v -0.044410 2.450695 -0.579187 +v -0.228434 2.447781 -0.580870 +v -0.044410 2.450695 -0.596510 +v -0.228434 2.447781 -0.594827 +v -0.044410 2.435693 -0.605172 +v -0.228434 2.435693 -0.601806 +v -0.044410 2.420690 -0.596510 +v -0.228434 2.423605 -0.594827 +v -0.044410 2.420690 -0.579187 +v -0.228434 2.423605 -0.580870 +v -0.213159 2.435693 -0.570525 +v -0.161486 2.435693 -0.570525 +v -0.161486 2.450695 -0.579187 +v -0.213159 2.450695 -0.579187 +v -0.161486 2.450695 -0.596510 +v -0.213159 2.450695 -0.596510 +v -0.161486 2.435693 -0.605172 +v -0.213159 2.435693 -0.605172 +v -0.161486 2.420690 -0.596510 +v -0.213159 2.420690 -0.596510 +v -0.161486 2.420690 -0.579187 +v -0.213159 2.420690 -0.579187 +v -0.165188 2.403485 -0.569253 +v -0.209457 2.403485 -0.569253 +v -0.209457 2.435693 -0.550658 +v -0.165188 2.435693 -0.550658 +v -0.165188 2.403485 -0.606444 +v -0.209457 2.403485 -0.606444 +v -0.165188 2.435693 -0.625039 +v -0.209457 2.435693 -0.625039 +v -0.165188 2.467901 -0.606444 +v -0.209457 2.467901 -0.606444 +v -0.165188 2.467901 -0.569253 +v -0.209457 2.467901 -0.569253 +v -0.181577 2.450435 -0.571215 +v -0.292909 2.663329 -0.587129 +v -0.169584 2.455838 -0.579309 +v -0.280916 2.668733 -0.595223 +v -0.169529 2.454715 -0.594713 +v -0.280861 2.667610 -0.610627 +v -0.181466 2.448187 -0.602023 +v -0.292798 2.661082 -0.617937 +v -0.193459 2.442784 -0.593929 +v -0.304791 2.655678 -0.609843 +v -0.193514 2.443907 -0.578525 +v -0.304846 2.656802 -0.594439 +v -0.182026 2.453681 -0.594850 +v -0.292909 2.504334 -0.806877 +v -0.170033 2.447653 -0.602490 +v -0.280916 2.498306 -0.814518 +v -0.169977 2.432656 -0.606182 +v -0.280861 2.483309 -0.818209 +v -0.181915 2.423687 -0.602232 +v -0.292798 2.474340 -0.814260 +v -0.193907 2.429715 -0.594592 +v -0.304791 2.480368 -0.806620 +v -0.193963 2.444712 -0.590901 +v -0.304846 2.495365 -0.802928 +v -0.181577 2.432206 -0.605240 +v -0.292909 2.246909 -0.719820 +v -0.169584 2.423077 -0.601869 +v -0.280916 2.237780 -0.716448 +v -0.169529 2.414932 -0.588746 +v -0.280861 2.229635 -0.703326 +v -0.181466 2.415916 -0.578996 +v -0.292798 2.230619 -0.693575 +v -0.193459 2.425046 -0.582368 +v -0.304791 2.239748 -0.696947 +v -0.193514 2.433191 -0.595490 +v -0.304846 2.247893 -0.710069 +v -0.181577 2.415688 -0.588028 +v -0.292909 2.252807 -0.450017 +v -0.169584 2.416074 -0.578304 +v -0.280916 2.253192 -0.440293 +v -0.169529 2.426037 -0.566502 +v -0.280861 2.263155 -0.428491 +v -0.181466 2.435614 -0.564425 +v -0.292798 2.272733 -0.426414 +v -0.193459 2.435229 -0.574150 +v -0.304791 2.272347 -0.436139 +v -0.193514 2.425266 -0.585951 +v -0.304846 2.262384 -0.447940 +v -0.186239 2.426954 -0.566999 +v -0.292909 2.512898 -0.361717 +v -0.174246 2.436321 -0.564361 +v -0.280916 2.522266 -0.359079 +v -0.174191 2.450624 -0.570190 +v -0.280861 2.536569 -0.364907 +v -0.186128 2.455559 -0.578657 +v -0.292798 2.541503 -0.373374 +v -0.198121 2.446191 -0.581295 +v -0.304791 2.532136 -0.376013 +v -0.198176 2.431889 -0.575466 +v -0.304846 2.517833 -0.370184 +v -0.297467 2.692866 -0.481324 +v -0.315361 2.686019 -0.484160 +v -0.322773 2.669487 -0.491008 +v -0.315361 2.652955 -0.497855 +v -0.297467 2.646108 -0.500692 +v -0.279574 2.652955 -0.497855 +v -0.272162 2.669487 -0.491008 +v -0.279574 2.686019 -0.484160 +v -0.297467 2.542217 -0.330675 +v -0.315361 2.539381 -0.337523 +v -0.322773 2.532533 -0.354054 +v -0.315361 2.525686 -0.370586 +v -0.297467 2.522849 -0.377434 +v -0.279574 2.525686 -0.370586 +v -0.272162 2.532533 -0.354054 +v -0.279574 2.539381 -0.337523 +v -0.297467 2.329168 -0.330675 +v -0.315361 2.332004 -0.337523 +v -0.322773 2.338852 -0.354054 +v -0.315361 2.345700 -0.370586 +v -0.297467 2.348536 -0.377434 +v -0.279574 2.345700 -0.370586 +v -0.272162 2.338852 -0.354054 +v -0.279574 2.332004 -0.337523 +v -0.297467 2.178519 -0.481324 +v -0.315361 2.185367 -0.484160 +v -0.322773 2.201899 -0.491008 +v -0.315361 2.218430 -0.497856 +v -0.297467 2.225278 -0.500692 +v -0.279574 2.218430 -0.497856 +v -0.272162 2.201899 -0.491008 +v -0.279574 2.185367 -0.484160 +v -0.297467 2.178519 -0.694373 +v -0.315361 2.185367 -0.691537 +v -0.322773 2.201899 -0.684689 +v -0.315361 2.218430 -0.677842 +v -0.297467 2.225278 -0.675005 +v -0.279574 2.218430 -0.677842 +v -0.272162 2.201899 -0.684689 +v -0.279574 2.185367 -0.691537 +v -0.297467 2.329168 -0.845022 +v -0.315361 2.332004 -0.838175 +v -0.322773 2.338852 -0.821643 +v -0.315361 2.345700 -0.805111 +v -0.297467 2.348536 -0.798263 +v -0.279574 2.345700 -0.805111 +v -0.272162 2.338852 -0.821643 +v -0.279574 2.332004 -0.838175 +v -0.297467 2.542218 -0.845022 +v -0.315361 2.539381 -0.838174 +v -0.322773 2.532534 -0.821643 +v -0.315361 2.525686 -0.805111 +v -0.297467 2.522850 -0.798263 +v -0.279574 2.525686 -0.805111 +v -0.272162 2.532534 -0.821643 +v -0.279574 2.539381 -0.838174 +v -0.297467 2.692866 -0.694373 +v -0.315361 2.686019 -0.691537 +v -0.322773 2.669487 -0.684689 +v -0.315361 2.652955 -0.677842 +v -0.297467 2.646107 -0.675005 +v -0.279574 2.652955 -0.677842 +v -0.272162 2.669487 -0.684689 +v -0.279574 2.686019 -0.691537 +vt 0.667698 0.362762 +vt 0.640199 0.358261 +vt 0.667737 0.359326 +vt 0.640924 0.375165 +vt 0.667891 0.369730 +vt 0.668100 0.373751 +vt 0.640202 0.370763 +vt 0.667750 0.366229 +vt 0.640072 0.366415 +vt 0.797021 0.387656 +vt 0.799345 0.386315 +vt 0.801670 0.390340 +vt 0.640507 0.354283 +vt 0.667871 0.355916 +vt 0.668100 0.352523 +vt 0.625761 0.363844 +vt 0.629027 0.361047 +vt 0.628740 0.364363 +vt 0.624989 0.366272 +vt 0.627746 0.367605 +vt 0.623515 0.368301 +vt 0.625501 0.370236 +vt 0.624459 0.355430 +vt 0.625663 0.350017 +vt 0.627780 0.353840 +vt 0.625518 0.358363 +vt 0.628748 0.357581 +vt 0.631848 0.353216 +vt 0.636858 0.357395 +vt 0.637511 0.352990 +vt 0.640110 0.362279 +vt 0.636532 0.361474 +vt 0.632177 0.357754 +vt 0.636165 0.365588 +vt 0.632064 0.361641 +vt 0.631496 0.365400 +vt 0.635666 0.370261 +vt 0.630110 0.369320 +vt 0.626558 0.373815 +vt 0.635872 0.378285 +vt 0.639755 0.347383 +vt 0.641864 0.350415 +vt 0.272875 0.980430 +vt 0.275844 0.934182 +vt 0.275844 0.980475 +vt 0.258029 0.980475 +vt 0.260998 0.934183 +vt 0.260998 0.980475 +vt 0.263967 0.980430 +vt 0.263967 0.934138 +vt 0.266937 0.980386 +vt 0.266937 0.934093 +vt 0.269906 0.980386 +vt 0.272875 0.934138 +vt 0.069661 0.912352 +vt 0.022650 0.909383 +vt 0.069673 0.909383 +vt 0.022650 0.927199 +vt 0.069660 0.924230 +vt 0.069673 0.927199 +vt 0.022636 0.924230 +vt 0.069634 0.921260 +vt 0.022611 0.921260 +vt 0.069622 0.918291 +vt 0.022613 0.915321 +vt 0.069636 0.915321 +vt 0.022638 0.912352 +vt 0.510857 0.889009 +vt 0.507887 0.936025 +vt 0.507887 0.888986 +vt 0.525704 0.888986 +vt 0.522734 0.936025 +vt 0.522734 0.888985 +vt 0.519765 0.889008 +vt 0.519765 0.936048 +vt 0.516795 0.889032 +vt 0.516795 0.936071 +vt 0.513826 0.889032 +vt 0.510856 0.936049 +vt 0.235523 0.934138 +vt 0.232554 0.980386 +vt 0.232554 0.934093 +vt 0.250369 0.934093 +vt 0.247400 0.980386 +vt 0.247400 0.934093 +vt 0.244431 0.934138 +vt 0.244431 0.980430 +vt 0.241462 0.934182 +vt 0.241462 0.980475 +vt 0.238492 0.934183 +vt 0.235523 0.980431 +vt 0.653181 0.902823 +vt 0.650212 0.855426 +vt 0.653181 0.855373 +vt 0.668027 0.902875 +vt 0.665058 0.855446 +vt 0.668027 0.855426 +vt 0.662089 0.902864 +vt 0.662089 0.855415 +vt 0.659120 0.902812 +vt 0.659120 0.855362 +vt 0.656150 0.902791 +vt 0.656150 0.855341 +vt 0.025683 0.826823 +vt 0.021884 0.789889 +vt 0.025544 0.789862 +vt 0.018782 0.826867 +vt 0.018400 0.789856 +vt 0.014878 0.789795 +vt 0.015279 0.826832 +vt 0.011142 0.789754 +vt 0.011415 0.826831 +vt 0.007404 0.789713 +vt 0.007506 0.826837 +vt 0.003876 0.789648 +vt 0.032732 0.826779 +vt 0.029201 0.789834 +vt 0.032679 0.789870 +vt 0.029242 0.826771 +vt 0.025720 0.865955 +vt 0.022157 0.826877 +vt 0.021801 0.865308 +vt 0.015085 0.862608 +vt 0.011727 0.862107 +vt 0.008295 0.862683 +vt 0.003872 0.826817 +vt 0.029722 0.865385 +vt 0.025994 0.565415 +vt 0.022202 0.604746 +vt 0.021967 0.566009 +vt 0.018260 0.567466 +vt 0.018693 0.604681 +vt 0.014786 0.568861 +vt 0.015069 0.604588 +vt 0.011355 0.569425 +vt 0.011185 0.604506 +vt 0.008031 0.568914 +vt 0.007334 0.604417 +vt 0.004839 0.567623 +vt 0.032684 0.604841 +vt 0.029929 0.566050 +vt 0.033402 0.567439 +vt 0.029299 0.604771 +vt 0.025502 0.641726 +vt 0.025772 0.604759 +vt 0.021844 0.641748 +vt 0.018359 0.641706 +vt 0.014837 0.641636 +vt 0.011099 0.641592 +vt 0.007360 0.641550 +vt 0.003830 0.604306 +vt 0.032636 0.641745 +vt 0.029158 0.641705 +vt 0.021831 0.678781 +vt 0.018346 0.678743 +vt 0.014827 0.678677 +vt 0.011097 0.678636 +vt 0.007366 0.678596 +vt 0.003834 0.641484 +vt 0.032643 0.678773 +vt 0.029159 0.678735 +vt 0.025505 0.715793 +vt 0.025495 0.678758 +vt 0.021841 0.715817 +vt 0.014836 0.715714 +vt 0.011107 0.715673 +vt 0.003857 0.715567 +vt 0.003846 0.678531 +vt 0.029169 0.715770 +vt 0.025517 0.752829 +vt 0.021853 0.752853 +vt 0.018355 0.715779 +vt 0.018367 0.752815 +vt 0.014848 0.752751 +vt 0.011118 0.752710 +vt 0.007376 0.715632 +vt 0.007387 0.752669 +vt 0.032664 0.752844 +vt 0.032653 0.715808 +vt 0.029180 0.752806 +vt 0.003867 0.752604 +vt 0.774087 0.364623 +vt 0.746460 0.361670 +vt 0.774047 0.361187 +vt 0.774240 0.354219 +vt 0.747273 0.348783 +vt 0.774450 0.350197 +vt 0.774100 0.357719 +vt 0.746551 0.353186 +vt 0.746422 0.357533 +vt 0.789362 0.387656 +vt 0.789362 0.390340 +vt 0.787038 0.391682 +vt 0.774220 0.368033 +vt 0.746549 0.365687 +vt 0.774450 0.371425 +vt 0.746857 0.369665 +vt 0.735376 0.362901 +vt 0.732111 0.360105 +vt 0.735089 0.359585 +vt 0.731339 0.357676 +vt 0.734095 0.356343 +vt 0.729864 0.355648 +vt 0.731851 0.353713 +vt 0.732013 0.373931 +vt 0.730809 0.368519 +vt 0.734129 0.370109 +vt 0.731867 0.365585 +vt 0.735098 0.366367 +vt 0.738198 0.370733 +vt 0.743861 0.370958 +vt 0.743208 0.366554 +vt 0.742881 0.362474 +vt 0.738526 0.366194 +vt 0.742016 0.353688 +vt 0.732274 0.362764 +vt 0.738414 0.362307 +vt 0.737846 0.358548 +vt 0.736460 0.354629 +vt 0.742222 0.345664 +vt 0.732908 0.350133 +vt 0.735961 0.378285 +vt 0.746104 0.376566 +vt 0.748214 0.373533 +vt 0.811899 0.970339 +vt 0.808930 0.924091 +vt 0.811899 0.924046 +vt 0.826746 0.970383 +vt 0.823776 0.924091 +vt 0.826746 0.924091 +vt 0.820807 0.970339 +vt 0.823776 0.970384 +vt 0.817838 0.970295 +vt 0.820807 0.924047 +vt 0.814869 0.970294 +vt 0.817838 0.924002 +vt 0.814869 0.924002 +vt 0.812160 0.913373 +vt 0.765149 0.916343 +vt 0.765137 0.913373 +vt 0.812159 0.901496 +vt 0.765149 0.898526 +vt 0.812172 0.898526 +vt 0.812134 0.904465 +vt 0.765136 0.901496 +vt 0.812122 0.907434 +vt 0.765111 0.904465 +vt 0.765112 0.910404 +vt 0.765099 0.907434 +vt 0.812135 0.910404 +vt 0.485381 0.936048 +vt 0.482411 0.889032 +vt 0.485381 0.889008 +vt 0.500228 0.936071 +vt 0.497258 0.889032 +vt 0.500228 0.889032 +vt 0.494289 0.936049 +vt 0.497258 0.936072 +vt 0.491320 0.936025 +vt 0.494289 0.889009 +vt 0.488350 0.936025 +vt 0.491320 0.888986 +vt 0.488350 0.888985 +vt 0.965791 0.003874 +vt 0.968760 0.050123 +vt 0.965791 0.050167 +vt 0.950945 0.003830 +vt 0.953915 0.050122 +vt 0.950945 0.050123 +vt 0.956884 0.003874 +vt 0.953914 0.003830 +vt 0.959853 0.003919 +vt 0.956884 0.050167 +vt 0.962822 0.003919 +vt 0.959853 0.050211 +vt 0.962822 0.050212 +vt 0.876485 0.910228 +vt 0.879454 0.862831 +vt 0.879454 0.910281 +vt 0.891331 0.910207 +vt 0.894301 0.862779 +vt 0.894301 0.910228 +vt 0.888362 0.862790 +vt 0.891331 0.862758 +vt 0.888362 0.910239 +vt 0.885393 0.862842 +vt 0.885393 0.910291 +vt 0.882424 0.862863 +vt 0.882424 0.910312 +vt 0.062775 0.641509 +vt 0.059389 0.604493 +vt 0.062914 0.604547 +vt 0.055631 0.641514 +vt 0.059115 0.641481 +vt 0.052110 0.641576 +vt 0.056014 0.604503 +vt 0.048373 0.641616 +vt 0.052511 0.604539 +vt 0.044635 0.641657 +vt 0.048647 0.604539 +vt 0.041107 0.641723 +vt 0.044738 0.604533 +vt 0.066432 0.641536 +vt 0.069963 0.604591 +vt 0.069910 0.641500 +vt 0.066474 0.604599 +vt 0.062951 0.565415 +vt 0.059033 0.566062 +vt 0.055567 0.567465 +vt 0.052316 0.568762 +vt 0.048959 0.569263 +vt 0.042074 0.567279 +vt 0.045526 0.568687 +vt 0.070633 0.567421 +vt 0.066954 0.565985 +vt 0.063226 0.865955 +vt 0.059433 0.826625 +vt 0.063004 0.826611 +vt 0.055492 0.863905 +vt 0.059198 0.865361 +vt 0.052300 0.826783 +vt 0.055924 0.826690 +vt 0.048586 0.861945 +vt 0.052017 0.862509 +vt 0.045263 0.862457 +vt 0.048416 0.826865 +vt 0.041061 0.827064 +vt 0.044565 0.826953 +vt 0.067160 0.865320 +vt 0.069915 0.826529 +vt 0.070633 0.863931 +vt 0.066530 0.826599 +vt 0.059076 0.789622 +vt 0.062734 0.789644 +vt 0.052068 0.789734 +vt 0.055591 0.789664 +vt 0.048331 0.789778 +vt 0.044592 0.789821 +vt 0.069867 0.789625 +vt 0.066389 0.789665 +vt 0.062727 0.752612 +vt 0.055577 0.752628 +vt 0.059063 0.752589 +vt 0.052058 0.752693 +vt 0.048328 0.752734 +vt 0.041077 0.752840 +vt 0.044597 0.752774 +vt 0.069875 0.752597 +vt 0.066390 0.752635 +vt 0.062736 0.715577 +vt 0.055587 0.715592 +vt 0.059072 0.715554 +vt 0.048338 0.715697 +vt 0.052068 0.715657 +vt 0.041088 0.715803 +vt 0.044608 0.715738 +vt 0.069885 0.715562 +vt 0.066400 0.715600 +vt 0.062748 0.678541 +vt 0.059084 0.678517 +vt 0.052079 0.678620 +vt 0.055599 0.678555 +vt 0.048349 0.678660 +vt 0.044619 0.678701 +vt 0.066411 0.678564 +vt 0.069896 0.678526 +vt 0.041098 0.678766 +vt 0.801670 0.387656 +vt 0.799345 0.391682 +vt 0.797021 0.390340 +vt 0.625924 0.361184 +vt 0.622584 0.352463 +vt 0.629612 0.345664 +vt 0.258029 0.934182 +vt 0.269906 0.934093 +vt 0.022599 0.918291 +vt 0.525704 0.936025 +vt 0.513826 0.936072 +vt 0.250369 0.980386 +vt 0.238492 0.980475 +vt 0.650212 0.902875 +vt 0.665058 0.902896 +vt 0.018335 0.863905 +vt 0.004842 0.864092 +vt 0.033402 0.863949 +vt 0.784714 0.390340 +vt 0.784714 0.387656 +vt 0.787038 0.386315 +vt 0.728934 0.371485 +vt 0.742515 0.358360 +vt 0.808930 0.970383 +vt 0.812172 0.916343 +vt 0.482411 0.936071 +vt 0.968760 0.003830 +vt 0.876485 0.862779 +vt 0.041103 0.604553 +vt 0.042071 0.863747 +vt 0.041066 0.789886 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.8660 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8660 0.5000 +vn 0.2152 -0.8457 -0.4883 +vn 0.2152 -0.8457 0.4883 +vn 0.2152 0.0000 -0.9766 +vn 0.2152 0.8457 -0.4883 +vn 0.2152 0.8457 0.4883 +vn 0.2152 -0.0000 0.9766 +vn 0.9831 0.1587 -0.0916 +vn 0.9831 0.1587 0.0916 +vn -0.9831 0.1587 0.0916 +vn -0.9831 0.0000 0.1832 +vn -0.9831 -0.1587 0.0916 +vn -0.9831 -0.1587 -0.0916 +vn 0.9831 -0.0000 0.1832 +vn -0.9831 -0.0000 -0.1832 +vn 0.9831 0.0000 -0.1832 +vn 0.9831 -0.1587 0.0916 +vn 0.9831 -0.1587 -0.0916 +vn -0.9831 0.1587 -0.0916 +vn -0.0013 0.0752 0.9972 +vn -0.7649 0.4355 0.4747 +vn -0.7674 0.4364 0.4698 +vn -0.7685 0.3625 -0.5273 +vn -0.7709 0.3641 -0.5227 +vn -0.0085 -0.0701 -0.9975 +vn 0.0013 -0.0752 -0.9972 +vn 0.7649 -0.4355 -0.4747 +vn 0.7674 -0.4364 -0.4698 +vn 0.7685 -0.3625 0.5273 +vn 0.0084 0.0701 0.9975 +vn 0.0036 0.9722 0.2341 +vn -0.7691 0.5824 -0.2631 +vn -0.7690 0.5826 -0.2630 +vn -0.7757 -0.3873 -0.4982 +vn -0.7736 -0.3916 -0.4981 +vn -0.0076 -0.9717 -0.2361 +vn -0.0036 -0.9722 -0.2341 +vn 0.7691 -0.5824 0.2631 +vn 0.7757 0.3873 0.4982 +vn 0.7736 0.3916 0.4981 +vn 0.0076 0.9717 0.2361 +vn 0.0010 0.5263 -0.8503 +vn -0.7687 -0.0687 -0.6359 +vn -0.7701 -0.0706 -0.6341 +vn -0.7723 -0.5975 0.2158 +vn -0.7736 -0.5967 0.2134 +vn -0.0061 -0.5286 0.8489 +vn -0.0010 -0.5264 0.8503 +vn 0.7687 0.0687 0.6359 +vn 0.7701 0.0706 0.6341 +vn 0.7723 0.5975 -0.2158 +vn 0.0061 0.5286 -0.8489 +vn -0.0013 -0.6470 -0.7625 +vn -0.7649 -0.6313 -0.1281 +vn -0.7674 -0.6292 -0.1236 +vn -0.7685 0.0167 0.6397 +vn -0.7709 0.0127 0.6369 +vn -0.0084 0.6431 0.7658 +vn 0.0013 0.6470 0.7625 +vn 0.7649 0.6313 0.1281 +vn 0.7674 0.6292 0.1236 +vn 0.7685 -0.0167 -0.6397 +vn 0.0084 -0.6431 -0.7658 +vn 0.0020 -0.9228 0.3853 +vn -0.7755 -0.3271 0.5400 +vn 0.0114 -0.9245 0.3811 +vn -0.7797 -0.3191 0.5387 +vn -0.7840 0.6009 0.1558 +vn -0.0114 0.9245 -0.3811 +vn -0.0020 0.9228 -0.3853 +vn 0.7755 0.3271 -0.5399 +vn 0.7797 0.3191 -0.5388 +vn 0.7840 -0.6009 -0.1558 +vn 0.7846 -0.6000 -0.1565 +vn -0.0000 0.3827 0.9239 +vn 0.6630 0.6916 0.2865 +vn -0.0000 0.9239 0.3827 +vn 0.9955 0.0363 0.0876 +vn 0.9955 0.0876 0.0363 +vn 0.7574 -0.6033 -0.2499 +vn 0.7574 -0.2499 -0.6033 +vn 0.0000 -0.9239 -0.3827 +vn -0.0000 -0.3827 -0.9239 +vn -0.7574 -0.6033 -0.2499 +vn -0.7574 -0.2499 -0.6033 +vn -0.9955 0.0876 0.0363 +vn -0.9955 0.0363 0.0876 +vn -0.6630 0.6916 0.2865 +vn -0.6630 0.2865 0.6916 +vn 0.0000 -0.3827 0.9239 +vn 0.6630 0.2865 0.6916 +vn 0.6630 -0.2865 0.6916 +vn 0.7574 0.2499 -0.6033 +vn 0.0000 0.3827 -0.9239 +vn -0.7574 0.2499 -0.6033 +vn -0.6630 -0.2865 0.6916 +vn 0.6630 -0.6916 0.2865 +vn 0.9955 -0.0363 0.0876 +vn 0.9955 -0.0876 0.0363 +vn 0.7574 0.6033 -0.2499 +vn 0.0000 0.9239 -0.3827 +vn -0.7574 0.6033 -0.2499 +vn -0.9955 -0.0363 0.0876 +vn -0.9955 -0.0876 0.0363 +vn -0.6630 -0.6916 0.2865 +vn 0.0000 -0.9239 0.3827 +vn 0.6630 -0.6916 -0.2865 +vn 0.9955 -0.0876 -0.0363 +vn 0.7574 0.6033 0.2499 +vn -0.7574 0.6033 0.2499 +vn -0.9955 -0.0876 -0.0363 +vn -0.6630 -0.6916 -0.2865 +vn 0.6630 -0.2865 -0.6916 +vn 0.9955 -0.0363 -0.0876 +vn 0.7574 0.2499 0.6033 +vn -0.7574 0.2499 0.6033 +vn -0.9955 -0.0363 -0.0876 +vn -0.6630 -0.2865 -0.6916 +vn 0.6630 0.2865 -0.6916 +vn 0.7574 -0.2499 0.6033 +vn -0.9955 0.0363 -0.0876 +vn -0.6630 0.2865 -0.6916 +vn 0.6630 0.6916 -0.2865 +vn 0.9955 0.0363 -0.0876 +vn 0.9955 0.0876 -0.0363 +vn 0.7574 -0.6033 0.2499 +vn -0.7574 -0.2499 0.6033 +vn -0.7574 -0.6033 0.2499 +vn -0.9955 0.0876 -0.0363 +vn -0.6630 0.6916 -0.2865 +vn -1.0000 -0.0000 0.0000 +vn -0.2152 -0.8457 0.4883 +vn -0.2152 -0.8457 -0.4883 +vn -0.2152 -0.0000 -0.9766 +vn -0.2152 0.8457 -0.4883 +vn -0.2152 0.8457 0.4883 +vn -0.2152 0.0000 0.9766 +vn 0.0013 0.0752 0.9972 +vn 0.7649 0.4355 0.4747 +vn -0.0085 0.0701 0.9975 +vn 0.7674 0.4364 0.4698 +vn 0.7685 0.3624 -0.5273 +vn 0.0084 -0.0701 -0.9975 +vn 0.7709 0.3641 -0.5227 +vn -0.7649 -0.4355 -0.4747 +vn -0.0013 -0.0752 -0.9972 +vn -0.7685 -0.3625 0.5273 +vn -0.7674 -0.4364 -0.4698 +vn -0.7709 -0.3641 0.5227 +vn -0.0036 0.9722 0.2341 +vn 0.7691 0.5824 -0.2631 +vn -0.0076 0.9717 0.2361 +vn 0.7757 -0.3873 -0.4982 +vn 0.7690 0.5826 -0.2630 +vn 0.0076 -0.9717 -0.2361 +vn 0.7736 -0.3916 -0.4981 +vn -0.7691 -0.5824 0.2631 +vn 0.0035 -0.9722 -0.2341 +vn -0.7758 0.3873 0.4982 +vn -0.7691 -0.5826 0.2630 +vn -0.7736 0.3916 0.4981 +vn -0.0010 0.5264 -0.8503 +vn 0.7687 -0.0687 -0.6359 +vn -0.0061 0.5286 -0.8489 +vn 0.7701 -0.0706 -0.6341 +vn 0.7723 -0.5975 0.2158 +vn 0.0061 -0.5286 0.8489 +vn 0.7736 -0.5967 0.2134 +vn -0.7687 0.0687 0.6359 +vn 0.0010 -0.5263 0.8503 +vn -0.7723 0.5975 -0.2158 +vn -0.7701 0.0706 0.6341 +vn -0.7736 0.5967 -0.2134 +vn 0.0013 -0.6470 -0.7625 +vn 0.7649 -0.6313 -0.1281 +vn -0.0085 -0.6431 -0.7658 +vn 0.7674 -0.6292 -0.1236 +vn 0.7685 0.0167 0.6397 +vn 0.0085 0.6431 0.7658 +vn 0.7709 0.0127 0.6369 +vn -0.7649 0.6313 0.1281 +vn -0.0013 0.6470 0.7625 +vn -0.7685 -0.0167 -0.6397 +vn -0.7674 0.6292 0.1236 +vn -0.7709 -0.0127 -0.6369 +vn 0.7755 -0.3271 0.5399 +vn -0.0020 -0.9228 0.3853 +vn -0.0114 -0.9245 0.3811 +vn 0.7840 0.6009 0.1558 +vn 0.7797 -0.3191 0.5388 +vn 0.0114 0.9245 -0.3811 +vn 0.7846 0.6000 0.1565 +vn 0.0020 0.9228 -0.3853 +vn -0.7755 0.3271 -0.5399 +vn -0.7797 0.3191 -0.5387 +vn -0.7840 -0.6009 -0.1558 +vn -0.7846 -0.6000 -0.1565 +vn 0.7709 -0.3641 0.5227 +vn 0.7690 -0.5826 0.2630 +vn 0.7736 0.5967 -0.2134 +vn 0.7709 -0.0127 -0.6369 +vn -0.7846 0.6000 0.1565 +s 1 +f 1219/2135/677 1222/2136/678 1209/2137/678 +f 1225/2138/679 1215/2139/680 1213/2140/679 +f 1227/2141/680 1217/2142/681 1215/2139/680 +f 1229/2143/681 1219/2135/677 1217/2142/681 +f 1216/2144/682 1214/2145/682 1210/2146/682 +f 1209/2137/678 1223/2147/683 1211/2148/683 +f 1223/2147/683 1213/2149/679 1211/2148/683 +f 1218/2150/684 1232/2151/685 1230/2152/684 +f 1216/2153/686 1230/2152/684 1228/2154/686 +f 1214/2155/687 1228/2154/686 1226/2156/687 +f 1212/2157/688 1226/2158/687 1224/2159/688 +f 1210/2160/689 1224/2159/688 1221/2161/689 +f 1226/2158/690 1244/2162/691 1224/2159/691 +f 1223/2147/692 1236/2163/693 1243/2164/692 +f 1231/2165/694 1236/2163/693 1222/2136/693 +f 1229/2143/695 1233/2166/694 1231/2165/694 +f 1224/2159/691 1235/2167/696 1221/2161/696 +f 1227/2141/697 1237/2168/695 1229/2143/695 +f 1232/2151/685 1210/2160/689 1221/2161/689 +f 1235/2167/678 1233/2166/677 1234/2169/677 +f 1234/2169/677 1237/2168/681 1238/2170/681 +f 1238/2170/681 1239/2171/680 1240/2172/680 +f 1242/2173/679 1239/2171/680 1241/2174/679 +f 1244/2162/683 1241/2175/679 1243/2164/683 +f 1244/2162/683 1236/2163/678 1235/2167/678 +f 1228/2154/698 1242/2173/690 1226/2156/690 +f 1221/2161/696 1234/2169/699 1232/2151/699 +f 1230/2152/700 1240/2172/698 1228/2154/698 +f 1223/2147/692 1241/2175/701 1225/2176/701 +f 1232/2151/699 1238/2170/700 1230/2152/700 +f 1225/2138/701 1239/2171/697 1227/2141/697 +f 1245/2177/702 1248/2178/703 1247/2179/704 +f 1247/2180/704 1250/2181/705 1249/2182/706 +f 1250/2181/705 1251/2183/707 1249/2182/706 +f 1252/2184/708 1253/2185/709 1251/2183/707 +f 1254/2186/710 1255/2187/711 1253/2185/709 +f 1255/2187/711 1246/2188/712 1245/2177/702 +f 1257/2189/713 1260/2190/714 1259/2191/715 +f 1260/2192/714 1261/2193/716 1259/2194/715 +f 1262/2195/717 1263/2196/718 1261/2193/716 +f 1264/2197/719 1265/2198/720 1263/2196/718 +f 1265/2198/720 1268/2199/721 1267/2200/722 +f 1267/2200/722 1258/2201/723 1257/2189/713 +f 1269/2202/724 1272/2203/725 1271/2204/726 +f 1271/2205/726 1274/2206/727 1273/2207/728 +f 1274/2206/727 1275/2208/729 1273/2207/728 +f 1276/2209/730 1277/2210/731 1275/2208/729 +f 1278/2211/732 1279/2212/733 1277/2210/731 +f 1279/2212/733 1270/2213/734 1269/2202/724 +f 1281/2214/735 1284/2215/736 1283/2216/737 +f 1283/2217/737 1286/2218/738 1285/2219/739 +f 1286/2218/738 1287/2220/740 1285/2219/739 +f 1288/2221/741 1289/2222/742 1287/2220/740 +f 1290/2223/743 1291/2224/744 1289/2222/742 +f 1291/2224/744 1282/2225/745 1281/2214/735 +f 1294/2226/746 1295/2227/747 1293/2228/748 +f 1296/2229/749 1297/2230/750 1295/2231/747 +f 1297/2230/750 1300/2232/751 1299/2233/752 +f 1299/2233/752 1302/2234/753 1301/2235/754 +f 1301/2235/754 1304/2236/755 1303/2237/756 +f 1304/2236/755 1293/2228/748 1303/2237/756 +f 1313/2238/757 1306/2239/758 1305/2240/759 +f 1306/2239/758 1315/2241/760 1307/2242/761 +f 1315/2241/760 1308/2243/762 1307/2242/761 +f 1316/2244/763 1309/2245/764 1308/2243/762 +f 1317/2246/765 1310/2247/766 1309/2245/764 +f 1318/2248/767 1311/2249/768 1310/2247/766 +f 1319/2250/769 1312/2251/770 1311/2252/768 +f 1320/2253/771 1305/2240/759 1312/2251/770 +f 1321/2254/772 1314/2255/773 1313/2238/757 +f 1322/2256/774 1315/2241/760 1314/2255/773 +f 1315/2241/760 1324/2257/775 1316/2244/763 +f 1316/2244/763 1325/2258/776 1317/2246/765 +f 1325/2258/776 1318/2248/767 1317/2246/765 +f 1326/2259/777 1319/2260/769 1318/2248/767 +f 1319/2250/769 1328/2261/778 1320/2253/771 +f 1328/2261/778 1313/2238/757 1320/2253/771 +f 1321/2262/772 1330/2263/779 1322/2264/774 +f 1330/2263/779 1323/2265/780 1322/2264/774 +f 1331/2266/781 1324/2267/775 1323/2265/780 +f 1332/2268/782 1325/2269/776 1324/2267/775 +f 1333/2270/783 1326/2271/777 1325/2269/776 +f 1334/2272/784 1327/2273/785 1326/2271/777 +f 1335/2274/786 1328/2275/778 1327/2276/785 +f 1336/2277/787 1321/2262/772 1328/2275/778 +f 1337/2278/764 1330/2263/779 1329/2279/788 +f 1338/2280/789 1331/2266/781 1330/2263/779 +f 1339/2281/790 1332/2268/782 1331/2266/781 +f 1340/2282/791 1333/2270/783 1332/2268/782 +f 1341/2283/759 1334/2272/784 1333/2270/783 +f 1342/2284/792 1335/2285/786 1334/2272/784 +f 1343/2286/793 1336/2277/787 1335/2274/786 +f 1344/2287/794 1329/2279/788 1336/2277/787 +f 1337/2278/764 1346/2288/795 1338/2280/789 +f 1338/2280/789 1347/2289/796 1339/2281/790 +f 1347/2289/796 1340/2282/791 1339/2281/790 +f 1348/2290/797 1341/2283/759 1340/2282/791 +f 1349/2291/757 1342/2284/792 1341/2283/759 +f 1350/2292/798 1343/2293/793 1342/2284/792 +f 1351/2294/799 1344/2287/794 1343/2286/793 +f 1352/2295/800 1337/2278/764 1344/2287/794 +f 1353/2296/776 1346/2288/795 1345/2297/765 +f 1354/2298/801 1347/2289/796 1346/2288/795 +f 1347/2289/796 1356/2299/802 1348/2290/797 +f 1356/2299/802 1349/2291/757 1348/2290/797 +f 1357/2300/772 1350/2292/798 1349/2291/757 +f 1350/2292/798 1359/2301/803 1351/2302/799 +f 1351/2294/799 1360/2303/804 1352/2295/800 +f 1360/2303/804 1345/2297/765 1352/2295/800 +f 1361/2304/783 1354/2298/801 1353/2296/776 +f 1362/2305/805 1355/2306/806 1354/2298/801 +f 1363/2307/807 1356/2299/802 1355/2306/806 +f 1364/2308/808 1357/2300/772 1356/2299/802 +f 1365/2309/788 1358/2310/809 1357/2300/772 +f 1366/2311/810 1359/2301/803 1358/2310/809 +f 1367/2312/811 1360/2303/804 1359/2313/803 +f 1368/2314/812 1353/2296/776 1360/2303/804 +f 1305/2240/759 1362/2305/805 1361/2304/783 +f 1306/2239/758 1363/2307/807 1362/2305/805 +f 1307/2242/761 1364/2308/808 1363/2307/807 +f 1308/2243/762 1365/2309/788 1364/2308/808 +f 1309/2245/764 1366/2311/810 1365/2309/788 +f 1310/2247/766 1367/2315/811 1366/2311/810 +f 1311/2252/768 1368/2314/812 1367/2312/811 +f 1312/2251/770 1361/2304/783 1368/2314/812 +f 1369/2316/678 1391/2317/677 1379/2318/677 +f 1375/2319/680 1385/2320/679 1373/2321/679 +f 1377/2322/681 1387/2323/680 1375/2319/680 +f 1379/2318/677 1389/2324/681 1377/2322/681 +f 1378/2325/813 1380/2326/813 1370/2327/813 +f 1371/2328/683 1382/2329/678 1369/2316/678 +f 1373/2330/679 1383/2331/683 1371/2328/683 +f 1392/2332/814 1378/2333/815 1390/2334/815 +f 1390/2334/815 1376/2335/816 1388/2336/816 +f 1388/2336/816 1374/2337/817 1386/2338/817 +f 1386/2339/817 1372/2340/818 1384/2341/818 +f 1384/2341/818 1370/2342/819 1381/2343/819 +f 1404/2344/692 1386/2339/701 1384/2341/692 +f 1403/2345/691 1382/2329/696 1383/2331/691 +f 1396/2346/696 1391/2317/699 1382/2329/696 +f 1393/2347/699 1389/2324/700 1391/2317/699 +f 1395/2348/693 1384/2341/692 1381/2343/693 +f 1389/2324/700 1399/2349/698 1387/2323/698 +f 1392/2332/814 1370/2342/819 1380/2350/814 +f 1393/2347/677 1395/2348/678 1394/2351/677 +f 1398/2352/681 1393/2347/677 1394/2351/677 +f 1399/2349/680 1398/2352/681 1400/2353/680 +f 1401/2354/679 1400/2353/680 1402/2355/679 +f 1403/2345/683 1402/2356/679 1404/2344/683 +f 1396/2346/678 1404/2344/683 1395/2348/678 +f 1402/2355/701 1388/2336/697 1386/2338/701 +f 1394/2351/694 1381/2343/693 1392/2332/694 +f 1400/2353/697 1390/2334/695 1388/2336/697 +f 1401/2357/690 1383/2331/691 1385/2358/690 +f 1398/2352/695 1392/2332/694 1390/2334/695 +f 1399/2349/698 1385/2320/690 1387/2323/698 +f 1405/2359/820 1408/2360/821 1406/2361/822 +f 1407/2362/823 1410/2363/824 1408/2364/821 +f 1411/2365/825 1410/2363/824 1409/2366/826 +f 1413/2367/827 1412/2368/828 1411/2365/825 +f 1415/2369/829 1414/2370/830 1413/2367/827 +f 1415/2369/829 1406/2361/822 1416/2371/831 +f 1417/2372/832 1420/2373/833 1418/2374/834 +f 1421/2375/835 1420/2376/833 1419/2377/836 +f 1423/2378/837 1422/2379/838 1421/2375/835 +f 1425/2380/839 1424/2381/840 1423/2378/837 +f 1425/2380/839 1428/2382/841 1426/2383/842 +f 1427/2384/843 1418/2374/834 1428/2382/841 +f 1429/2385/844 1432/2386/845 1430/2387/846 +f 1431/2388/847 1434/2389/848 1432/2390/845 +f 1435/2391/849 1434/2389/848 1433/2392/850 +f 1437/2393/851 1436/2394/852 1435/2391/849 +f 1439/2395/853 1438/2396/854 1437/2393/851 +f 1439/2395/853 1430/2387/846 1440/2397/855 +f 1441/2398/856 1444/2399/857 1442/2400/858 +f 1443/2401/859 1446/2402/860 1444/2403/857 +f 1447/2404/861 1446/2402/860 1445/2405/862 +f 1449/2406/863 1448/2407/864 1447/2404/861 +f 1451/2408/865 1450/2409/866 1449/2406/863 +f 1451/2408/865 1442/2400/858 1452/2410/867 +f 1455/2411/868 1454/2412/869 1453/2413/870 +f 1457/2414/871 1456/2415/872 1455/2416/868 +f 1457/2414/871 1460/2417/873 1458/2418/874 +f 1459/2419/875 1462/2420/876 1460/2417/873 +f 1461/2421/877 1464/2422/878 1462/2420/876 +f 1453/2413/870 1464/2422/878 1463/2423/879 +f 1465/2424/759 1474/2425/771 1473/2426/757 +f 1467/2427/768 1474/2425/771 1466/2428/770 +f 1468/2429/766 1475/2430/769 1467/2427/768 +f 1469/2431/764 1476/2432/767 1468/2429/766 +f 1470/2433/762 1477/2434/765 1469/2431/764 +f 1471/2435/761 1478/2436/763 1470/2433/762 +f 1472/2437/758 1479/2438/760 1471/2439/761 +f 1472/2437/758 1473/2426/757 1480/2440/773 +f 1474/2425/771 1481/2441/772 1473/2426/757 +f 1475/2430/769 1482/2442/778 1474/2425/771 +f 1476/2432/767 1483/2443/785 1475/2430/769 +f 1477/2434/765 1484/2444/777 1476/2432/767 +f 1478/2436/763 1485/2445/776 1477/2434/765 +f 1478/2436/763 1487/2446/780 1486/2447/775 +f 1480/2440/773 1487/2448/780 1479/2438/760 +f 1473/2426/757 1488/2449/774 1480/2440/773 +f 1481/2450/772 1490/2451/787 1489/2452/788 +f 1483/2453/785 1490/2451/787 1482/2454/778 +f 1483/2453/785 1492/2455/784 1491/2456/786 +f 1485/2457/776 1492/2455/784 1484/2458/777 +f 1486/2459/775 1493/2460/783 1485/2457/776 +f 1486/2459/775 1495/2461/781 1494/2462/782 +f 1488/2463/774 1495/2464/781 1487/2465/780 +f 1481/2450/772 1496/2466/779 1488/2463/774 +f 1489/2452/788 1498/2467/794 1497/2468/764 +f 1491/2456/786 1498/2467/794 1490/2451/787 +f 1491/2456/786 1500/2469/792 1499/2470/793 +f 1493/2460/783 1500/2469/792 1492/2455/784 +f 1494/2462/782 1501/2471/759 1493/2460/783 +f 1495/2461/781 1502/2472/791 1494/2462/782 +f 1496/2466/779 1503/2473/790 1495/2464/781 +f 1489/2452/788 1504/2474/789 1496/2466/779 +f 1498/2467/794 1505/2475/765 1497/2468/764 +f 1498/2467/794 1507/2476/799 1506/2477/800 +f 1500/2469/792 1507/2476/799 1499/2470/793 +f 1501/2471/759 1508/2478/798 1500/2469/792 +f 1502/2472/791 1509/2479/757 1501/2471/759 +f 1502/2472/791 1511/2480/796 1510/2481/797 +f 1504/2474/789 1511/2482/796 1503/2473/790 +f 1504/2474/789 1505/2475/765 1512/2483/795 +f 1506/2477/800 1513/2484/776 1505/2475/765 +f 1506/2477/800 1515/2485/803 1514/2486/804 +f 1508/2478/798 1515/2485/803 1507/2476/799 +f 1508/2478/798 1517/2487/772 1516/2488/809 +f 1510/2481/797 1517/2487/772 1509/2479/757 +f 1510/2481/797 1519/2489/806 1518/2490/802 +f 1512/2483/795 1519/2491/806 1511/2482/796 +f 1505/2475/765 1520/2492/801 1512/2483/795 +f 1514/2486/804 1521/2493/783 1513/2484/776 +f 1515/2485/803 1522/2494/812 1514/2486/804 +f 1515/2485/803 1524/2495/810 1523/2496/811 +f 1517/2487/772 1524/2495/810 1516/2488/809 +f 1518/2490/802 1525/2497/788 1517/2487/772 +f 1519/2489/806 1526/2498/808 1518/2490/802 +f 1519/2491/806 1528/2499/805 1527/2500/807 +f 1513/2484/776 1528/2499/805 1520/2492/801 +f 1522/2494/812 1465/2424/759 1521/2493/783 +f 1522/2494/812 1467/2427/768 1466/2428/770 +f 1524/2495/810 1467/2427/768 1523/2496/811 +f 1525/2497/788 1468/2429/766 1524/2495/810 +f 1526/2498/808 1469/2431/764 1525/2497/788 +f 1527/2501/807 1470/2433/762 1526/2498/808 +f 1528/2499/805 1471/2439/761 1527/2500/807 +f 1521/2493/783 1472/2437/758 1528/2499/805 +f 1219/2135/677 1231/2165/677 1222/2136/678 +f 1225/2138/679 1227/2141/680 1215/2139/680 +f 1227/2141/680 1229/2143/681 1217/2142/681 +f 1229/2143/681 1231/2165/677 1219/2135/677 +f 1214/2145/682 1212/2502/682 1210/2146/682 +f 1210/2146/682 1220/2503/682 1218/2504/682 +f 1218/2504/682 1216/2144/682 1210/2146/682 +f 1209/2137/678 1222/2136/678 1223/2147/683 +f 1223/2147/683 1225/2176/679 1213/2149/679 +f 1218/2150/684 1220/2505/685 1232/2151/685 +f 1216/2153/686 1218/2150/684 1230/2152/684 +f 1214/2155/687 1216/2153/686 1228/2154/686 +f 1212/2157/688 1214/2506/687 1226/2158/687 +f 1210/2160/689 1212/2157/688 1224/2159/688 +f 1226/2158/690 1242/2507/690 1244/2162/691 +f 1223/2147/692 1222/2136/693 1236/2163/693 +f 1231/2165/694 1233/2166/694 1236/2163/693 +f 1229/2143/695 1237/2168/695 1233/2166/694 +f 1224/2159/691 1244/2162/691 1235/2167/696 +f 1227/2141/697 1239/2171/697 1237/2168/695 +f 1232/2151/685 1220/2505/685 1210/2160/689 +f 1235/2167/678 1236/2163/678 1233/2166/677 +f 1234/2169/677 1233/2166/677 1237/2168/681 +f 1238/2170/681 1237/2168/681 1239/2171/680 +f 1242/2173/679 1240/2172/680 1239/2171/680 +f 1244/2162/683 1242/2507/679 1241/2175/679 +f 1244/2162/683 1243/2164/683 1236/2163/678 +f 1228/2154/698 1240/2172/698 1242/2173/690 +f 1221/2161/696 1235/2167/696 1234/2169/699 +f 1230/2152/700 1238/2170/700 1240/2172/698 +f 1223/2147/692 1243/2164/692 1241/2175/701 +f 1232/2151/699 1234/2169/699 1238/2170/700 +f 1225/2138/701 1241/2174/701 1239/2171/697 +f 1245/2177/702 1246/2188/712 1248/2178/703 +f 1247/2180/704 1248/2508/703 1250/2181/705 +f 1250/2181/705 1252/2184/708 1251/2183/707 +f 1252/2184/708 1254/2186/710 1253/2185/709 +f 1254/2186/710 1256/2509/880 1255/2187/711 +f 1255/2187/711 1256/2509/880 1246/2188/712 +f 1257/2189/713 1258/2201/723 1260/2190/714 +f 1260/2192/714 1262/2195/717 1261/2193/716 +f 1262/2195/717 1264/2197/719 1263/2196/718 +f 1264/2197/719 1266/2510/881 1265/2198/720 +f 1265/2198/720 1266/2510/881 1268/2199/721 +f 1267/2200/722 1268/2199/721 1258/2201/723 +f 1269/2202/724 1270/2213/734 1272/2203/725 +f 1271/2205/726 1272/2511/725 1274/2206/727 +f 1274/2206/727 1276/2209/730 1275/2208/729 +f 1276/2209/730 1278/2211/732 1277/2210/731 +f 1278/2211/732 1280/2512/882 1279/2212/733 +f 1279/2212/733 1280/2512/882 1270/2213/734 +f 1281/2214/735 1282/2225/745 1284/2215/736 +f 1283/2217/737 1284/2513/736 1286/2218/738 +f 1286/2218/738 1288/2221/741 1287/2220/740 +f 1288/2221/741 1290/2223/743 1289/2222/742 +f 1290/2223/743 1292/2514/883 1291/2224/744 +f 1291/2224/744 1292/2514/883 1282/2225/745 +f 1294/2226/746 1296/2515/749 1295/2227/747 +f 1296/2229/749 1298/2516/884 1297/2230/750 +f 1297/2230/750 1298/2516/884 1300/2232/751 +f 1299/2233/752 1300/2232/751 1302/2234/753 +f 1301/2235/754 1302/2234/753 1304/2236/755 +f 1304/2236/755 1294/2226/746 1293/2228/748 +f 1313/2238/757 1314/2255/773 1306/2239/758 +f 1306/2239/758 1314/2255/773 1315/2241/760 +f 1315/2241/760 1316/2244/763 1308/2243/762 +f 1316/2244/763 1317/2246/765 1309/2245/764 +f 1317/2246/765 1318/2248/767 1310/2247/766 +f 1318/2248/767 1319/2260/769 1311/2249/768 +f 1319/2250/769 1320/2253/771 1312/2251/770 +f 1320/2253/771 1313/2238/757 1305/2240/759 +f 1321/2254/772 1322/2256/774 1314/2255/773 +f 1322/2256/774 1323/2517/780 1315/2241/760 +f 1315/2241/760 1323/2517/780 1324/2257/775 +f 1316/2244/763 1324/2257/775 1325/2258/776 +f 1325/2258/776 1326/2259/777 1318/2248/767 +f 1326/2259/777 1327/2518/785 1319/2260/769 +f 1319/2250/769 1327/2519/785 1328/2261/778 +f 1328/2261/778 1321/2254/772 1313/2238/757 +f 1321/2262/772 1329/2279/788 1330/2263/779 +f 1330/2263/779 1331/2266/781 1323/2265/780 +f 1331/2266/781 1332/2268/782 1324/2267/775 +f 1332/2268/782 1333/2270/783 1325/2269/776 +f 1333/2270/783 1334/2272/784 1326/2271/777 +f 1334/2272/784 1335/2285/786 1327/2273/785 +f 1335/2274/786 1336/2277/787 1328/2275/778 +f 1336/2277/787 1329/2279/788 1321/2262/772 +f 1337/2278/764 1338/2280/789 1330/2263/779 +f 1338/2280/789 1339/2281/790 1331/2266/781 +f 1339/2281/790 1340/2282/791 1332/2268/782 +f 1340/2282/791 1341/2283/759 1333/2270/783 +f 1341/2283/759 1342/2284/792 1334/2272/784 +f 1342/2284/792 1343/2293/793 1335/2285/786 +f 1343/2286/793 1344/2287/794 1336/2277/787 +f 1344/2287/794 1337/2278/764 1329/2279/788 +f 1337/2278/764 1345/2297/765 1346/2288/795 +f 1338/2280/789 1346/2288/795 1347/2289/796 +f 1347/2289/796 1348/2290/797 1340/2282/791 +f 1348/2290/797 1349/2291/757 1341/2283/759 +f 1349/2291/757 1350/2292/798 1342/2284/792 +f 1350/2292/798 1351/2302/799 1343/2293/793 +f 1351/2294/799 1352/2295/800 1344/2287/794 +f 1352/2295/800 1345/2297/765 1337/2278/764 +f 1353/2296/776 1354/2298/801 1346/2288/795 +f 1354/2298/801 1355/2306/806 1347/2289/796 +f 1347/2289/796 1355/2306/806 1356/2299/802 +f 1356/2299/802 1357/2300/772 1349/2291/757 +f 1357/2300/772 1358/2310/809 1350/2292/798 +f 1350/2292/798 1358/2310/809 1359/2301/803 +f 1351/2294/799 1359/2313/803 1360/2303/804 +f 1360/2303/804 1353/2296/776 1345/2297/765 +f 1361/2304/783 1362/2305/805 1354/2298/801 +f 1362/2305/805 1363/2307/807 1355/2306/806 +f 1363/2307/807 1364/2308/808 1356/2299/802 +f 1364/2308/808 1365/2309/788 1357/2300/772 +f 1365/2309/788 1366/2311/810 1358/2310/809 +f 1366/2311/810 1367/2315/811 1359/2301/803 +f 1367/2312/811 1368/2314/812 1360/2303/804 +f 1368/2314/812 1361/2304/783 1353/2296/776 +f 1305/2240/759 1306/2239/758 1362/2305/805 +f 1306/2239/758 1307/2242/761 1363/2307/807 +f 1307/2242/761 1308/2243/762 1364/2308/808 +f 1308/2243/762 1309/2245/764 1365/2309/788 +f 1309/2245/764 1310/2247/766 1366/2311/810 +f 1310/2247/766 1311/2249/768 1367/2315/811 +f 1311/2252/768 1312/2251/770 1368/2314/812 +f 1312/2251/770 1305/2240/759 1361/2304/783 +f 1369/2316/678 1382/2329/678 1391/2317/677 +f 1375/2319/680 1387/2323/680 1385/2320/679 +f 1377/2322/681 1389/2324/681 1387/2323/680 +f 1379/2318/677 1391/2317/677 1389/2324/681 +f 1370/2327/813 1372/2520/813 1374/2521/813 +f 1374/2521/813 1376/2522/813 1370/2327/813 +f 1376/2522/813 1378/2325/813 1370/2327/813 +f 1371/2328/683 1383/2331/683 1382/2329/678 +f 1373/2330/679 1385/2358/679 1383/2331/683 +f 1392/2332/814 1380/2350/814 1378/2333/815 +f 1390/2334/815 1378/2333/815 1376/2335/816 +f 1388/2336/816 1376/2335/816 1374/2337/817 +f 1386/2339/817 1374/2523/817 1372/2340/818 +f 1384/2341/818 1372/2340/818 1370/2342/819 +f 1404/2344/692 1402/2356/701 1386/2339/701 +f 1403/2345/691 1396/2346/696 1382/2329/696 +f 1396/2346/696 1393/2347/699 1391/2317/699 +f 1393/2347/699 1397/2524/700 1389/2324/700 +f 1395/2348/693 1404/2344/692 1384/2341/692 +f 1389/2324/700 1397/2524/700 1399/2349/698 +f 1392/2332/814 1381/2343/819 1370/2342/819 +f 1393/2347/677 1396/2346/678 1395/2348/678 +f 1398/2352/681 1397/2524/681 1393/2347/677 +f 1399/2349/680 1397/2524/681 1398/2352/681 +f 1401/2354/679 1399/2349/680 1400/2353/680 +f 1403/2345/683 1401/2357/679 1402/2356/679 +f 1396/2346/678 1403/2345/683 1404/2344/683 +f 1402/2355/701 1400/2353/697 1388/2336/697 +f 1394/2351/694 1395/2348/693 1381/2343/693 +f 1400/2353/697 1398/2352/695 1390/2334/695 +f 1401/2357/690 1403/2345/691 1383/2331/691 +f 1398/2352/695 1394/2351/694 1392/2332/694 +f 1399/2349/698 1401/2354/690 1385/2320/690 +f 1405/2359/820 1407/2525/823 1408/2360/821 +f 1407/2362/823 1409/2366/826 1410/2363/824 +f 1411/2365/825 1412/2368/828 1410/2363/824 +f 1413/2367/827 1414/2370/830 1412/2368/828 +f 1415/2369/829 1416/2371/831 1414/2370/830 +f 1415/2369/829 1405/2359/820 1406/2361/822 +f 1417/2372/832 1419/2526/836 1420/2373/833 +f 1421/2375/835 1422/2379/838 1420/2376/833 +f 1423/2378/837 1424/2381/840 1422/2379/838 +f 1425/2380/839 1426/2383/842 1424/2381/840 +f 1425/2380/839 1427/2384/843 1428/2382/841 +f 1427/2384/843 1417/2372/832 1418/2374/834 +f 1429/2385/844 1431/2527/847 1432/2386/845 +f 1431/2388/847 1433/2392/850 1434/2389/848 +f 1435/2391/849 1436/2394/852 1434/2389/848 +f 1437/2393/851 1438/2396/854 1436/2394/852 +f 1439/2395/853 1440/2397/855 1438/2396/854 +f 1439/2395/853 1429/2385/844 1430/2387/846 +f 1441/2398/856 1443/2528/859 1444/2399/857 +f 1443/2401/859 1445/2405/862 1446/2402/860 +f 1447/2404/861 1448/2407/864 1446/2402/860 +f 1449/2406/863 1450/2409/866 1448/2407/864 +f 1451/2408/865 1452/2410/867 1450/2409/866 +f 1451/2408/865 1441/2398/856 1442/2400/858 +f 1455/2411/868 1456/2529/872 1454/2412/869 +f 1457/2414/871 1458/2418/874 1456/2415/872 +f 1457/2414/871 1459/2419/875 1460/2417/873 +f 1459/2419/875 1461/2421/877 1462/2420/876 +f 1461/2421/877 1463/2423/879 1464/2422/878 +f 1453/2413/870 1454/2412/869 1464/2422/878 +f 1465/2424/759 1466/2428/770 1474/2425/771 +f 1467/2427/768 1475/2430/769 1474/2425/771 +f 1468/2429/766 1476/2432/767 1475/2430/769 +f 1469/2431/764 1477/2434/765 1476/2432/767 +f 1470/2433/762 1478/2436/763 1477/2434/765 +f 1471/2435/761 1479/2530/760 1478/2436/763 +f 1472/2437/758 1480/2440/773 1479/2438/760 +f 1472/2437/758 1465/2424/759 1473/2426/757 +f 1474/2425/771 1482/2442/778 1481/2441/772 +f 1475/2430/769 1483/2443/785 1482/2442/778 +f 1476/2432/767 1484/2444/777 1483/2443/785 +f 1477/2434/765 1485/2445/776 1484/2444/777 +f 1478/2436/763 1486/2447/775 1485/2445/776 +f 1478/2436/763 1479/2530/760 1487/2446/780 +f 1480/2440/773 1488/2449/774 1487/2448/780 +f 1473/2426/757 1481/2441/772 1488/2449/774 +f 1481/2450/772 1482/2454/778 1490/2451/787 +f 1483/2453/785 1491/2456/786 1490/2451/787 +f 1483/2453/785 1484/2458/777 1492/2455/784 +f 1485/2457/776 1493/2460/783 1492/2455/784 +f 1486/2459/775 1494/2462/782 1493/2460/783 +f 1486/2459/775 1487/2531/780 1495/2461/781 +f 1488/2463/774 1496/2466/779 1495/2464/781 +f 1481/2450/772 1489/2452/788 1496/2466/779 +f 1489/2452/788 1490/2451/787 1498/2467/794 +f 1491/2456/786 1499/2470/793 1498/2467/794 +f 1491/2456/786 1492/2455/784 1500/2469/792 +f 1493/2460/783 1501/2471/759 1500/2469/792 +f 1494/2462/782 1502/2472/791 1501/2471/759 +f 1495/2461/781 1503/2532/790 1502/2472/791 +f 1496/2466/779 1504/2474/789 1503/2473/790 +f 1489/2452/788 1497/2468/764 1504/2474/789 +f 1498/2467/794 1506/2477/800 1505/2475/765 +f 1498/2467/794 1499/2470/793 1507/2476/799 +f 1500/2469/792 1508/2478/798 1507/2476/799 +f 1501/2471/759 1509/2479/757 1508/2478/798 +f 1502/2472/791 1510/2481/797 1509/2479/757 +f 1502/2472/791 1503/2532/790 1511/2480/796 +f 1504/2474/789 1512/2483/795 1511/2482/796 +f 1504/2474/789 1497/2468/764 1505/2475/765 +f 1506/2477/800 1514/2486/804 1513/2484/776 +f 1506/2477/800 1507/2476/799 1515/2485/803 +f 1508/2478/798 1516/2488/809 1515/2485/803 +f 1508/2478/798 1509/2479/757 1517/2487/772 +f 1510/2481/797 1518/2490/802 1517/2487/772 +f 1510/2481/797 1511/2480/796 1519/2489/806 +f 1512/2483/795 1520/2492/801 1519/2491/806 +f 1505/2475/765 1513/2484/776 1520/2492/801 +f 1514/2486/804 1522/2494/812 1521/2493/783 +f 1515/2485/803 1523/2496/811 1522/2494/812 +f 1515/2485/803 1516/2488/809 1524/2495/810 +f 1517/2487/772 1525/2497/788 1524/2495/810 +f 1518/2490/802 1526/2498/808 1525/2497/788 +f 1519/2489/806 1527/2501/807 1526/2498/808 +f 1519/2491/806 1520/2492/801 1528/2499/805 +f 1513/2484/776 1521/2493/783 1528/2499/805 +f 1522/2494/812 1466/2428/770 1465/2424/759 +f 1522/2494/812 1523/2496/811 1467/2427/768 +f 1524/2495/810 1468/2429/766 1467/2427/768 +f 1525/2497/788 1469/2431/764 1468/2429/766 +f 1526/2498/808 1470/2433/762 1469/2431/764 +f 1527/2501/807 1471/2435/761 1470/2433/762 +f 1528/2499/805 1472/2437/758 1471/2439/761 +f 1521/2493/783 1465/2424/759 1472/2437/758 diff --git a/src/main/resources/assets/hbm/models/drill_bolt.obj b/src/main/resources/assets/hbm/models/drill_bolt.obj deleted file mode 100644 index dcf0a5d40..000000000 --- a/src/main/resources/assets/hbm/models/drill_bolt.obj +++ /dev/null @@ -1,1595 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'drill_bolt.blend' -# www.blender.org -o Cylinder_Cylinder.001 -v 0.125000 3.000000 -0.216506 -v 0.000000 3.000000 -0.250000 -v 0.216506 3.000000 -0.125000 -v 0.250000 3.000000 0.000000 -v 0.216506 3.000000 0.125000 -v 0.125000 3.000000 0.216506 -v 0.000000 3.000000 0.250000 -v -0.125000 3.000000 0.216506 -v -0.216506 3.000000 0.125000 -v -0.250000 3.000000 0.000000 -v -0.216506 3.000000 -0.125000 -v -0.125000 3.000000 -0.216506 -v -0.125000 2.750000 -0.216506 -v -0.000000 2.750000 -0.250000 -v -0.051764 3.000000 -0.443185 -v -0.176764 3.000000 -0.409691 -v 0.125000 2.750000 -0.216506 -v 0.216506 2.750000 -0.125000 -v 0.250000 2.750000 -0.000000 -v 0.216506 2.750000 0.125000 -v 0.125000 2.750000 0.216506 -v 0.000000 2.750000 0.250000 -v -0.125000 2.750000 0.216506 -v -0.216506 2.750000 0.125000 -v -0.250000 2.750000 0.000000 -v -0.216506 2.750000 -0.125000 -v -0.266421 2.750000 -0.357928 -v -0.357928 2.750000 -0.266421 -v 0.443185 3.000000 0.051764 -v 0.409692 3.000000 0.176764 -v 0.443185 2.750000 -0.051764 -v 0.409692 2.750000 -0.176764 -v -0.266421 3.000000 0.357928 -v -0.357928 3.000000 0.266421 -v -0.176764 2.750000 0.409692 -v -0.051764 2.750000 0.443185 -v 0.125000 2.500000 -0.216506 -v -0.000000 2.500000 -0.250000 -v -0.125000 2.500000 -0.216506 -v -0.216506 2.500000 -0.125000 -v 0.216506 2.500000 -0.125000 -v 0.250000 2.500000 -0.000000 -v 0.216506 2.500000 0.125000 -v 0.125000 2.500000 0.216506 -v 0.000000 2.500000 0.250000 -v -0.125000 2.500000 0.216506 -v -0.216506 2.500000 0.125000 -v -0.250000 2.500000 0.000000 -v -0.409692 2.500000 -0.176764 -v -0.443185 2.500000 -0.051763 -v 0.266421 2.500000 -0.357928 -v 0.357928 2.500000 -0.266421 -v 0.176764 2.500000 0.409691 -v 0.051764 2.500000 0.443185 -v -0.000000 2.250000 -0.250000 -v -0.125000 2.250000 -0.216506 -v -0.216506 2.250000 -0.125000 -v -0.250000 2.250000 0.000000 -v 0.125000 2.250000 -0.216506 -v 0.216506 2.250000 -0.125000 -v 0.250000 2.250000 -0.000000 -v 0.216506 2.250000 0.125000 -v 0.125000 2.250000 0.216506 -v 0.000000 2.250000 0.250000 -v -0.125000 2.250000 0.216506 -v -0.216506 2.250000 0.125000 -v -0.443185 2.250000 0.051764 -v -0.409691 2.250000 0.176764 -v 0.051764 2.250000 -0.443185 -v 0.176764 2.250000 -0.409692 -v 0.357928 2.250000 0.266421 -v 0.266422 2.250000 0.357928 -v -0.125000 2.000000 -0.216506 -v -0.216506 2.000000 -0.125000 -v -0.250000 2.000000 0.000000 -v -0.216506 2.000000 0.125000 -v -0.000000 2.000000 -0.250000 -v 0.125000 2.000000 -0.216506 -v 0.216506 2.000000 -0.125000 -v 0.250000 2.000000 -0.000000 -v 0.216506 2.000000 0.125000 -v 0.125000 2.000000 0.216506 -v 0.000000 2.000000 0.250000 -v -0.125000 2.000000 0.216507 -v -0.357928 2.000000 0.266422 -v -0.266421 2.000000 0.357928 -v -0.176764 2.000000 -0.409691 -v -0.051764 2.000000 -0.443185 -v 0.443185 2.000000 0.051763 -v 0.409692 2.000000 0.176763 -v -0.216506 1.750000 -0.125000 -v -0.250000 1.750000 0.000000 -v -0.216506 1.750000 0.125000 -v -0.125000 1.750000 0.216506 -v -0.125000 1.750000 -0.216506 -v -0.000000 1.750000 -0.250000 -v 0.125000 1.750000 -0.216506 -v 0.216506 1.750000 -0.125000 -v 0.250000 1.750000 -0.000000 -v 0.216506 1.750000 0.125000 -v 0.125000 1.750000 0.216506 -v 0.000000 1.750000 0.250000 -v -0.176764 1.750000 0.409692 -v -0.051763 1.750000 0.443185 -v -0.357928 1.750000 -0.266421 -v -0.266422 1.750000 -0.357927 -v 0.409691 1.750000 -0.176764 -v 0.443185 1.750000 -0.051764 -v -0.250000 1.500000 0.000000 -v -0.216506 1.500000 0.125000 -v -0.125000 1.500000 0.216506 -v 0.000000 1.500000 0.250000 -v -0.216506 1.500000 -0.125000 -v -0.125000 1.500000 -0.216506 -v -0.000000 1.500000 -0.250000 -v 0.125000 1.500000 -0.216506 -v 0.216506 1.500000 -0.125000 -v 0.250000 1.500000 -0.000000 -v 0.216506 1.500000 0.125000 -v 0.125000 1.500000 0.216506 -v 0.051764 1.500000 0.443185 -v 0.176764 1.500000 0.409691 -v -0.443185 1.500000 -0.051763 -v -0.409692 1.500000 -0.176763 -v 0.266421 1.500000 -0.357928 -v 0.357927 1.500000 -0.266422 -v -0.216506 1.250000 0.125000 -v -0.125000 1.250000 0.216506 -v 0.000000 1.250000 0.250000 -v 0.125000 1.250000 0.216506 -v -0.250000 1.250000 0.000000 -v -0.216506 1.250000 -0.125000 -v -0.125000 1.250000 -0.216506 -v -0.000000 1.250000 -0.250000 -v 0.125000 1.250000 -0.216506 -v 0.216506 1.250000 -0.125000 -v 0.250000 1.250000 -0.000000 -v 0.216507 1.250000 0.125000 -v 0.266422 1.250000 0.357928 -v 0.357928 1.250000 0.266421 -v -0.409691 1.250000 0.176764 -v -0.443185 1.250000 0.051764 -v 0.051763 1.250000 -0.443185 -v 0.176763 1.250000 -0.409692 -v -0.125000 1.000000 0.216506 -v 0.000000 1.000000 0.250000 -v 0.125000 1.000000 0.216506 -v 0.216506 1.000000 0.125000 -v -0.216506 1.000000 0.125000 -v -0.250000 1.000000 0.000000 -v -0.216506 1.000000 -0.125000 -v -0.125000 1.000000 -0.216506 -v -0.000000 1.000000 -0.250000 -v 0.125000 1.000000 -0.216506 -v 0.216506 1.000000 -0.125000 -v 0.250000 1.000000 -0.000000 -v 0.409692 1.000000 0.176763 -v 0.443185 1.000000 0.051763 -v -0.266421 1.000000 0.357928 -v -0.357927 1.000000 0.266422 -v -0.176764 1.000000 -0.409691 -v -0.051764 1.000000 -0.443185 -v 0.000000 0.750000 0.250000 -v 0.125000 0.750000 0.216506 -v 0.216506 0.750000 0.125000 -v 0.250000 0.750000 -0.000000 -v -0.125000 0.750000 0.216506 -v -0.216506 0.750000 0.125000 -v -0.250000 0.750000 0.000000 -v -0.216506 0.750000 -0.125000 -v -0.125000 0.750000 -0.216506 -v -0.000000 0.750000 -0.250000 -v 0.125000 0.750000 -0.216506 -v 0.216506 0.750000 -0.125000 -v 0.443185 0.750000 -0.051764 -v 0.409691 0.750000 -0.176764 -v -0.051763 0.750000 0.443185 -v -0.176763 0.750000 0.409692 -v -0.357928 0.750000 -0.266421 -v -0.266422 0.750000 -0.357927 -v 0.125000 0.500000 0.216506 -v 0.216506 0.500000 0.125000 -v 0.250000 0.500000 -0.000000 -v 0.216506 0.500000 -0.125000 -v 0.000000 0.500000 0.250000 -v -0.125000 0.500000 0.216506 -v -0.216506 0.500000 0.125000 -v -0.250000 0.500000 0.000000 -v -0.216507 0.500000 -0.125000 -v -0.125000 0.500000 -0.216506 -v -0.000000 0.500000 -0.250000 -v 0.125000 0.500000 -0.216507 -v 0.357927 0.500000 -0.266422 -v 0.266421 0.500000 -0.357928 -v 0.176764 0.500000 0.409691 -v 0.051764 0.500000 0.443185 -v -0.443185 0.500000 -0.051763 -v -0.409692 0.500000 -0.176763 -v 0.216506 0.250000 0.125000 -v 0.250000 0.250000 -0.000000 -v 0.216506 0.250000 -0.125000 -v 0.125000 0.250000 -0.216506 -v 0.125000 0.250000 0.216506 -v 0.000000 0.250000 0.250000 -v -0.125000 0.250000 0.216507 -v -0.216506 0.250000 0.125000 -v -0.250000 0.250000 0.000000 -v -0.216507 0.250000 -0.125000 -v -0.125000 0.250000 -0.216506 -v -0.000001 0.250000 -0.250000 -v 0.176763 0.250000 -0.409692 -v 0.051763 0.250000 -0.443185 -v 0.357928 0.250000 0.266421 -v 0.266422 0.250000 0.357927 -v -0.409691 0.250000 0.176765 -v -0.443185 0.250000 0.051765 -v 0.250000 0.000000 -0.000000 -v 0.216506 0.000000 -0.125000 -v 0.125000 0.000000 -0.216506 -v -0.000000 0.000000 -0.250000 -v 0.216506 0.000000 0.125000 -v 0.125000 0.000000 0.216506 -v 0.000000 0.000000 0.250000 -v -0.125000 0.000000 0.216507 -v -0.216506 0.000000 0.125000 -v -0.250000 0.000000 0.000001 -v -0.216507 0.000000 -0.125000 -v -0.125000 0.000000 -0.216506 -v -0.051765 0.000000 -0.443185 -v -0.176765 0.000000 -0.409691 -v 0.443185 0.000000 0.051763 -v 0.409692 0.000000 0.176763 -v -0.266421 0.000000 0.357928 -v -0.357927 0.000000 0.266422 -vt 0.734654 0.961016 -vt 0.705579 0.975604 -vt 0.705579 0.902663 -vt 0.255629 0.062086 -vt 0.364401 0.091333 -vt 0.284775 0.171236 -vt 0.186790 0.125104 -vt 0.186790 0.091333 -vt 0.238802 0.091333 -vt 0.647427 0.624623 -vt 0.671421 0.602614 -vt 0.671421 0.691005 -vt 0.885455 0.327893 -vt 0.856379 0.342481 -vt 0.856379 0.269539 -vt 0.734654 0.902663 -vt 0.763730 0.888074 -vt 0.763730 0.961016 -vt 0.840715 0.160472 -vt 0.811640 0.175060 -vt 0.811640 0.102118 -vt 0.796471 0.727603 -vt 0.825547 0.713014 -vt 0.825547 0.785956 -vt 0.758571 0.132409 -vt 0.782564 0.110400 -vt 0.782564 0.198791 -vt 0.146287 0.925935 -vt 0.117211 0.940524 -vt 0.117211 0.867582 -vt 0.439954 0.627453 -vt 0.463948 0.605444 -vt 0.463948 0.693835 -vt 0.087681 0.836936 -vt 0.058606 0.851525 -vt 0.058606 0.778583 -vt 0.640691 0.962303 -vt 0.611615 0.976891 -vt 0.611615 0.903950 -vt 0.490791 0.410204 -vt 0.443651 0.429303 -vt 0.432186 0.341922 -vt 0.811640 0.072942 -vt 0.782564 0.087530 -vt 0.782564 0.014588 -vt 0.796471 0.785956 -vt 0.767395 0.800544 -vt 0.767395 0.727603 -vt 0.617057 0.254951 -vt 0.667297 0.262750 -vt 0.658587 0.334853 -vt 0.029076 0.865793 -vt 0.058151 0.851205 -vt 0.058151 0.924147 -vt 0.782564 0.088391 -vt 0.758571 0.110400 -vt 0.758571 0.022009 -vt 0.373580 0.199551 -vt 0.344435 0.216436 -vt 0.318429 0.171236 -vt 0.599637 0.334853 -vt 0.549397 0.342652 -vt 0.558107 0.254951 -vt 0.811640 0.014588 -vt 0.840715 0.000000 -vt 0.840715 0.072942 -vt 0.304001 0.371690 -vt 0.256861 0.390788 -vt 0.245396 0.303408 -vt 0.647427 0.779823 -vt 0.623434 0.801832 -vt 0.623434 0.713440 -vt 0.318429 0.045200 -vt 0.344435 0.000000 -vt 0.373580 0.016886 -vt 0.725867 0.079902 -vt 0.675627 0.087700 -vt 0.684337 0.000000 -vt 0.854622 0.785956 -vt 0.825547 0.800544 -vt 0.825547 0.727603 -vt 0.175817 0.371690 -vt 0.128677 0.390788 -vt 0.117211 0.303408 -vt 0.029076 0.836617 -vt 0.000000 0.851205 -vt 0.000000 0.778263 -vt 0.058606 0.546041 -vt 0.011466 0.565140 -vt 0.000000 0.477760 -vt 0.608347 0.406956 -vt 0.798572 0.443891 -vt 0.827648 0.429303 -vt 0.827648 0.502245 -vt 0.482873 0.338010 -vt 0.450138 0.254951 -vt 0.734577 0.152004 -vt 0.245396 0.751999 -vt 0.274471 0.737410 -vt 0.274471 0.810352 -vt 0.296083 0.299495 -vt 0.263348 0.216436 -vt 0.146287 0.838405 -vt 0.117211 0.852994 -vt 0.117211 0.780052 -vt 0.608347 0.342651 -vt 0.667297 0.406956 -vt 0.167899 0.299495 -vt 0.135164 0.216436 -vt 0.647427 0.727603 -vt 0.676503 0.713014 -vt 0.676503 0.785956 -vt 0.587621 0.713440 -vt 0.611615 0.691432 -vt 0.611615 0.779823 -vt 0.233968 0.836617 -vt 0.204893 0.851205 -vt 0.204893 0.778263 -vt 0.199811 0.675284 -vt 0.223804 0.653275 -vt 0.223804 0.741666 -vt 0.854622 0.961016 -vt 0.825547 0.975604 -vt 0.825547 0.902663 -vt 0.695415 0.691005 -vt 0.671421 0.713014 -vt 0.671421 0.624623 -vt 0.667297 0.342652 -vt 0.717537 0.334853 -vt 0.726247 0.406956 -vt 0.914530 0.269539 -vt 0.943606 0.254951 -vt 0.943606 0.327893 -vt 0.023994 0.741666 -vt 0.000000 0.763675 -vt 0.000000 0.675284 -vt 0.676007 0.254951 -vt 0.726247 0.262750 -vt 0.487941 0.693835 -vt 0.463948 0.715844 -vt 0.463948 0.627453 -vt 0.058151 0.836617 -vt 0.029076 0.851205 -vt 0.029076 0.778263 -vt 0.234423 0.546041 -vt 0.187283 0.565140 -vt 0.175817 0.477759 -vt 0.557727 0.155253 -vt 0.510587 0.174352 -vt 0.499121 0.086971 -vt 0.469030 0.963845 -vt 0.439954 0.978434 -vt 0.439954 0.905492 -vt 0.254106 0.564099 -vt 0.304346 0.571898 -vt 0.295635 0.644001 -vt 0.714326 0.727603 -vt 0.743402 0.713014 -vt 0.743402 0.785956 -vt 0.750585 0.517694 -vt 0.726592 0.539703 -vt 0.726592 0.451312 -vt 0.303547 0.810352 -vt 0.274471 0.824940 -vt 0.274471 0.751999 -vt 0.676503 0.727603 -vt 0.705579 0.713014 -vt 0.705579 0.785956 -vt 0.313056 0.390788 -vt 0.363296 0.398587 -vt 0.354585 0.470690 -vt 0.791389 0.617203 -vt 0.820465 0.602614 -vt 0.820464 0.675556 -vt 0.469030 0.788786 -vt 0.439954 0.803374 -vt 0.439954 0.730432 -vt 0.305887 0.576859 -vt 0.355109 0.564099 -vt 0.355109 0.652234 -vt 1.000000 0.961016 -vt 0.970924 0.975604 -vt 0.970924 0.902663 -vt 0.328339 0.674243 -vt 0.352333 0.652234 -vt 0.352333 0.740625 -vt 0.423998 0.690749 -vt 0.373236 0.687988 -vt 0.374777 0.615374 -vt 0.957018 0.014588 -vt 0.986093 0.000000 -vt 0.986093 0.072942 -vt 0.226504 0.473847 -vt 0.193769 0.390788 -vt 0.549809 0.083058 -vt 0.517074 0.000000 -vt 0.519867 0.874773 -vt 0.490791 0.889362 -vt 0.490791 0.816420 -vt 0.245396 0.651800 -vt 0.304346 0.716104 -vt 0.676503 0.873486 -vt 0.647427 0.888074 -vt 0.647427 0.815133 -vt 0.743402 0.624623 -vt 0.767395 0.602614 -vt 0.767395 0.691005 -vt 0.869791 0.072942 -vt 0.840715 0.087530 -vt 0.840715 0.014588 -vt 0.883698 0.873486 -vt 0.854622 0.888074 -vt 0.854622 0.815133 -vt 0.304346 0.478489 -vt 0.363296 0.542793 -vt 0.058606 0.866113 -vt 0.087681 0.851525 -vt 0.087681 0.924466 -vt 0.640691 0.874773 -vt 0.611615 0.889362 -vt 0.611615 0.816420 -vt 0.050687 0.473847 -vt 0.017952 0.390788 -vt 0.548943 0.816420 -vt 0.578018 0.801832 -vt 0.578018 0.874773 -vt 0.401586 0.000000 -vt 0.440516 0.017026 -vt 0.424375 0.086341 -vt 0.245396 0.927058 -vt 0.274471 0.912470 -vt 0.274471 0.985412 -vt 0.109293 0.299495 -vt 0.058606 0.303408 -vt 0.076558 0.216436 -vt 0.616677 0.152004 -vt 0.579899 0.173311 -vt 0.557727 0.087700 -vt 0.117211 0.371690 -vt 0.070071 0.390788 -vt 0.994918 0.675556 -vt 0.965842 0.690144 -vt 0.965842 0.617202 -vt 0.167974 0.655064 -vt 0.117211 0.652303 -vt 0.118753 0.579689 -vt 0.912773 0.961016 -vt 0.883698 0.975604 -vt 0.883698 0.902663 -vt 0.047987 0.741666 -vt 0.023994 0.763675 -vt 0.023994 0.675284 -vt 1.000000 0.873486 -vt 0.970924 0.888074 -vt 0.970924 0.815133 -vt 0.856723 0.502245 -vt 0.827648 0.516833 -vt 0.827648 0.443891 -vt 0.381946 0.429303 -vt 0.432186 0.437102 -vt 0.423475 0.509205 -vt 0.578018 0.962303 -vt 0.548943 0.976892 -vt 0.548943 0.903950 -vt 0.782564 0.102118 -vt 0.811640 0.087530 -vt 0.811640 0.160472 -vt 0.362607 0.371690 -vt 0.315467 0.390788 -vt 0.304001 0.303408 -vt 0.116757 0.836936 -vt 0.087681 0.778583 -vt 0.421223 0.779140 -vt 0.397229 0.801149 -vt 0.397229 0.712758 -vt 0.303547 0.897882 -vt 0.274471 0.839528 -vt 0.402311 0.961621 -vt 0.373236 0.976209 -vt 0.373236 0.903267 -vt 0.106593 0.741986 -vt 0.082599 0.763995 -vt 0.082599 0.675604 -vt 0.849540 0.617202 -vt 0.878616 0.602614 -vt 0.878616 0.675556 -vt 0.373580 0.084254 -vt 0.423790 0.158969 -vt 0.714326 0.815133 -vt 0.743402 0.800544 -vt 0.743402 0.873486 -vt 0.117211 0.677073 -vt 0.141205 0.655064 -vt 0.141205 0.743455 -vt 0.175362 0.838405 -vt 0.146287 0.852994 -vt 0.146287 0.780052 -vt 0.869791 0.102118 -vt 0.898867 0.087530 -vt 0.898867 0.160472 -vt 0.373236 0.517003 -vt 0.432186 0.581307 -vt 0.898867 0.072942 -vt 0.869791 0.087530 -vt 0.869791 0.014588 -vt 0.912773 0.815133 -vt 0.941849 0.800544 -vt 0.941849 0.873486 -vt 0.354689 0.299495 -vt 0.321954 0.216436 -vt 0.943950 0.502245 -vt 0.914875 0.516833 -vt 0.914875 0.443891 -vt 0.397229 0.779140 -vt 0.373236 0.801149 -vt 0.373236 0.712758 -vt 0.820465 0.617203 -vt 0.849540 0.602614 -vt 0.849540 0.675556 -vt 0.458468 0.000000 -vt 0.499121 0.012321 -vt 0.491203 0.083058 -vt 0.719408 0.691005 -vt 0.695415 0.713014 -vt 0.695415 0.624623 -vt 0.798228 0.269539 -vt 0.827303 0.254951 -vt 0.827303 0.327893 -vt 0.970924 0.785956 -vt 0.941849 0.727603 -vt 0.970924 0.727603 -vt 1.000000 0.713014 -vt 1.000000 0.785956 -vt 0.587621 0.779823 -vt 0.563628 0.801832 -vt 0.563628 0.713441 -vt 0.323257 0.777223 -vt 0.352333 0.762634 -vt 0.352333 0.835576 -vt 0.827303 0.269539 -vt 0.856379 0.254951 -vt 0.856379 0.327893 -vt 0.167974 0.566929 -vt 0.117211 0.564168 -vt 0.118753 0.491554 -vt 0.146287 0.867582 -vt 0.175362 0.852994 -vt 0.175362 0.925935 -vt 0.274471 0.897882 -vt 0.245396 0.912470 -vt 0.245396 0.839528 -vt 0.001541 0.577900 -vt 0.050763 0.565140 -vt 0.050763 0.653275 -vt 0.854622 0.873486 -vt 0.825547 0.888074 -vt 0.825547 0.815133 -vt 0.774579 0.451312 -vt 0.798572 0.429303 -vt 0.798572 0.517694 -vt 0.927942 0.014588 -vt 0.957018 0.000000 -vt 0.957018 0.072942 -vt 0.440516 0.086971 -vt 0.499121 0.155253 -vt 0.743402 0.691005 -vt 0.719408 0.713014 -vt 0.719408 0.624623 -vt 0.883698 0.727603 -vt 0.912773 0.713014 -vt 0.912773 0.785956 -vt 0.607967 0.079902 -vt 0.566437 0.000000 -vt 0.177358 0.577900 -vt 0.226580 0.565140 -vt 0.226580 0.653275 -vt 0.402311 0.815737 -vt 0.431387 0.801149 -vt 0.431387 0.874091 -vt 0.796471 0.961016 -vt 0.767395 0.975604 -vt 0.767395 0.902663 -vt 0.854622 0.902663 -vt 0.883698 0.888074 -vt 0.883698 0.961016 -vt 0.373580 0.341922 -vt 0.424268 0.338010 -vt 0.432186 0.410204 -vt 0.204893 0.836617 -vt 0.175817 0.851205 -vt 0.175817 0.778263 -vt 0.391533 0.254951 -vt 0.432186 0.267273 -vt 0.986093 0.160472 -vt 0.957018 0.175060 -vt 0.957018 0.102118 -vt 0.578018 0.903950 -vt 0.607094 0.889362 -vt 0.607094 0.962303 -vt 0.304346 0.542793 -vt 0.267568 0.564099 -vt 0.245396 0.478489 -vt 0.705579 0.873486 -vt 0.676503 0.888074 -vt 0.676503 0.815133 -vt 0.750585 0.451312 -vt 0.774579 0.429303 -vt 0.774579 0.517694 -vt 0.274471 0.927058 -vt 0.303547 0.912470 -vt 0.303547 0.985412 -vt 0.508744 0.254951 -vt 0.549397 0.267273 -vt 0.541479 0.338010 -vt 0.304346 0.674243 -vt 0.328339 0.652234 -vt 0.328339 0.740625 -vt 0.825547 0.873486 -vt 0.796471 0.888074 -vt 0.796471 0.815133 -vt 0.667641 0.581308 -vt 0.630863 0.602614 -vt 0.608691 0.517003 -vt 0.675627 0.152004 -vt 0.638849 0.173311 -vt 0.616677 0.087700 -vt 0.973026 0.502245 -vt 0.943950 0.516833 -vt 0.943950 0.443891 -vt 0.374741 0.172381 -vt 0.440516 0.229634 -vt 0.767395 0.624623 -vt 0.791389 0.602614 -vt 0.791389 0.691005 -vt 0.519867 0.962303 -vt 0.490791 0.976892 -vt 0.490791 0.903950 -vt 0.726592 0.581308 -vt 0.689813 0.602614 -vt 0.667641 0.517003 -vt 0.941849 0.785956 -vt 0.912773 0.800544 -vt 0.912773 0.727603 -vt 0.295635 0.470690 -vt 0.254106 0.390788 -vt 0.431387 0.961621 -vt 0.402311 0.976209 -vt 0.402311 0.903267 -vt 0.750241 0.276960 -vt 0.774234 0.254951 -vt 0.774234 0.343342 -vt 0.883698 0.785956 -vt 0.854622 0.800544 -vt 0.854622 0.727603 -vt 0.490791 0.341922 -vt 0.549397 0.410204 -vt 0.750241 0.343342 -vt 0.726247 0.365351 -vt 0.726247 0.276960 -vt 0.883698 0.815133 -vt 0.912773 0.873486 -vt 0.658931 0.509205 -vt 0.617402 0.429303 -vt 0.666917 0.079902 -vt 0.625387 0.000000 -vt 0.941849 0.902663 -vt 0.970924 0.961016 -vt 0.490717 0.605444 -vt 0.439954 0.602683 -vt 0.441496 0.530069 -vt 0.907691 0.675556 -vt 0.878616 0.690144 -vt 0.878616 0.617202 -vt 0.514785 0.713441 -vt 0.538778 0.691432 -vt 0.538778 0.779823 -vt 0.373236 0.815737 -vt 0.402311 0.801149 -vt 0.402311 0.874091 -vt 0.175817 0.675284 -vt 0.199811 0.653275 -vt 0.199811 0.741666 -vt 0.058606 0.477759 -vt 0.109293 0.473847 -vt 0.117211 0.546041 -vt 0.936767 0.675556 -vt 0.907691 0.690144 -vt 0.907691 0.617202 -vt 0.539634 0.713441 -vt 0.563628 0.691432 -vt 0.563628 0.779823 -vt 0.352333 0.923106 -vt 0.323257 0.937694 -vt 0.323257 0.864753 -vt 0.076558 0.390788 -vt 0.117211 0.403110 -vt 0.734577 0.022009 -vt 0.758571 0.000000 -vt 0.758571 0.088391 -vt 0.204893 0.924147 -vt 0.175817 0.938735 -vt 0.175817 0.865793 -vt 0.608691 0.581308 -vt 0.571913 0.602614 -vt 0.549741 0.517003 -vt 0.549741 0.581308 -vt 0.512963 0.602614 -vt 0.490791 0.517003 -vt 0.000000 0.865793 -vt 0.029076 0.924147 -vt 0.017952 0.216436 -vt 0.058606 0.228758 -vt 0.050688 0.299495 -vt 0.914530 0.327893 -vt 0.885455 0.342481 -vt 0.885455 0.269540 -vt 0.082599 0.741986 -vt 0.058606 0.763995 -vt 0.058606 0.675604 -vt 0.970924 0.873486 -vt 0.941849 0.888074 -vt 0.941849 0.815133 -vt 0.957018 0.160472 -vt 0.927942 0.175060 -vt 0.927942 0.102118 -vt 0.204742 0.216436 -vt 0.245396 0.228758 -vt 0.237478 0.299495 -vt 0.914875 0.502245 -vt 0.885799 0.516833 -vt 0.885799 0.443891 -vt 0.116757 0.924466 -vt 0.087681 0.939055 -vt 0.087681 0.866113 -vt 0.758571 0.198791 -vt 0.734577 0.220801 -vt 0.734577 0.132409 -vt 0.647427 0.691432 -vt 0.605129 0.687641 -vt 0.598584 0.616762 -vt 0.607094 0.874773 -vt 0.578018 0.889362 -vt 0.578018 0.816420 -vt 0.840716 0.102118 -vt 0.869791 0.160472 -vt 0.599981 0.509205 -vt 0.558452 0.429303 -vt 0.541031 0.509205 -vt 0.499502 0.429303 -vt 0.204893 0.865793 -vt 0.233968 0.851205 -vt 0.233968 0.924147 -vt 0.000000 0.303408 -vt 0.058606 0.371690 -vt 0.972681 0.327893 -vt 0.943606 0.342481 -vt 0.943606 0.269539 -vt 0.165198 0.743455 -vt 0.141205 0.765464 -vt 0.141205 0.677073 -vt 0.705579 0.961016 -vt 0.676503 0.975604 -vt 0.676503 0.902663 -vt 0.856723 0.443891 -vt 0.885799 0.429303 -vt 0.885799 0.502245 -vt 0.186790 0.303408 -vt 0.245396 0.371689 -vt 0.796471 0.873486 -vt 0.767395 0.888074 -vt 0.767395 0.815133 -vt 0.825547 0.961016 -vt 0.796471 0.975604 -vt 0.796471 0.902662 -vt 0.717881 0.509205 -vt 0.676352 0.429303 -vt 0.676503 0.961016 -vt 0.647427 0.975604 -vt 0.647427 0.902663 -vt 0.052012 0.091333 -vt 0.052012 0.125104 -vt 0.000000 0.125104 -vt 0.160784 0.062086 -vt 0.131639 0.171236 -vt 0.157645 0.000000 -vt 0.186790 0.016886 -vt 0.160784 0.154351 -vt 0.186790 0.199551 -vt 0.157645 0.216436 -vt 0.119588 0.406202 -vt 0.159179 0.390788 -vt 0.168049 0.478794 -vt 0.068249 0.576479 -vt 0.109185 0.565140 -vt 0.109185 0.653595 -vt 0.519867 0.816420 -vt 0.548943 0.801832 -vt 0.548943 0.874773 -vt 0.598584 0.691432 -vt 0.556286 0.687641 -vt 0.549741 0.616762 -vt 0.927942 0.160472 -vt 0.898867 0.175060 -vt 0.898867 0.102118 -vt 0.774234 0.276960 -vt 0.798228 0.254951 -vt 0.798228 0.343342 -vt 0.912773 0.902663 -vt 0.941849 0.961016 -vt 0.965842 0.675556 -vt 0.936767 0.690144 -vt 0.936767 0.617202 -vt 0.539634 0.691432 -vt 0.497336 0.687641 -vt 0.490791 0.616762 -vt 0.469030 0.876316 -vt 0.439954 0.890904 -vt 0.439954 0.817962 -vt 0.519867 0.903950 -vt 0.548943 0.889362 -vt 0.548942 0.962303 -vt 0.442331 0.444717 -vt 0.481922 0.429303 -vt 0.490791 0.517309 -vt 0.898867 0.014588 -vt 0.927942 0.000000 -vt 0.927942 0.072942 -vt 0.514785 0.779823 -vt 0.490791 0.801832 -vt 0.490791 0.713441 -vt 0.734654 0.888074 -vt 0.255629 0.154351 -vt 0.238802 0.125104 -vt 0.284775 0.045200 -vt 0.347574 0.062086 -vt 0.364401 0.125104 -vt 0.347574 0.154350 -vt 0.647427 0.713014 -vt 0.885455 0.254951 -vt 0.734654 0.975604 -vt 0.796471 0.800544 -vt 0.758571 0.220800 -vt 0.439954 0.715844 -vt 0.087681 0.763995 -vt 0.640691 0.889362 -vt 0.811640 0.000000 -vt 0.796471 0.713014 -vt 0.029076 0.938735 -vt 0.782564 0.000000 -vt 0.608347 0.262750 -vt 0.734577 0.007799 -vt 0.854622 0.713014 -vt 0.029076 0.763675 -vt 0.571569 0.428262 -vt 0.798572 0.516833 -vt 0.490791 0.267273 -vt 0.697799 0.173311 -vt 0.245396 0.824940 -vt 0.304001 0.228758 -vt 0.146287 0.765464 -vt 0.630519 0.428262 -vt 0.175817 0.228758 -vt 0.647427 0.800544 -vt 0.587621 0.801832 -vt 0.233968 0.763675 -vt 0.199811 0.763675 -vt 0.695415 0.602614 -vt 0.689469 0.428262 -vt 0.914530 0.342481 -vt 0.023994 0.653275 -vt 0.487941 0.605444 -vt 0.058151 0.763675 -vt 0.469030 0.890904 -vt 0.714326 0.800544 -vt 0.750585 0.429303 -vt 0.303547 0.737410 -vt 0.676503 0.800544 -vt 0.791389 0.690144 -vt 0.469030 0.715844 -vt 0.304346 0.649474 -vt 1.000000 0.888074 -vt 0.328339 0.762634 -vt 0.423998 0.602614 -vt 0.957018 0.087530 -vt 0.234423 0.403110 -vt 0.557727 0.012321 -vt 0.519867 0.801832 -vt 0.267568 0.737410 -vt 0.869791 0.000000 -vt 0.883698 0.800544 -vt 0.326518 0.564099 -vt 0.058606 0.939055 -vt 0.640691 0.801832 -vt 0.058606 0.403110 -vt 0.245396 1.000000 -vt 0.117211 0.228758 -vt 0.994918 0.602614 -vt 0.912773 0.888074 -vt 0.047987 0.653275 -vt 1.000000 0.800544 -vt 0.856723 0.429303 -vt 0.782564 0.175060 -vt 0.116757 0.763995 -vt 0.421223 0.690749 -vt 0.303547 0.824940 -vt 0.402311 0.888679 -vt 0.106593 0.653595 -vt 0.849540 0.690144 -vt 0.714326 0.888074 -vt 0.117211 0.765464 -vt 0.175362 0.765464 -vt 0.869791 0.175060 -vt 0.395408 0.602614 -vt 0.898867 0.000000 -vt 0.362607 0.228758 -vt 0.943950 0.429303 -vt 0.397229 0.690749 -vt 0.820465 0.690144 -vt 0.719408 0.602614 -vt 0.798228 0.342481 -vt 0.970924 0.713014 -vt 0.970924 0.800544 -vt 0.587621 0.691432 -vt 0.323257 0.850164 -vt 0.827303 0.342481 -vt 0.146287 0.940524 -vt 0.000000 0.650514 -vt 0.774579 0.539703 -vt 0.927942 0.087530 -vt 0.451981 0.174352 -vt 0.743402 0.602614 -vt 0.616677 0.007799 -vt 0.175817 0.650514 -vt 0.854622 0.975604 -vt 0.385046 0.429303 -vt 0.204893 0.763675 -vt 0.986093 0.087530 -vt 0.578018 0.976892 -vt 0.705579 0.800544 -vt 0.750585 0.539703 -vt 0.274471 1.000000 -vt 0.304346 0.762634 -vt 0.973026 0.429303 -vt 0.406355 0.254951 -vt 0.767395 0.713014 -vt 0.519867 0.889362 -vt 0.941849 0.713014 -vt 0.304346 0.398587 -vt 0.431387 0.888679 -vt 0.750241 0.365351 -vt 0.883698 0.713014 -vt 0.502257 0.429303 -vt 0.750241 0.254951 -vt 0.667641 0.437102 -vt 0.675627 0.007799 -vt 0.941849 0.975604 -vt 0.490717 0.517309 -vt 0.907691 0.602614 -vt 0.514785 0.801832 -vt 0.373236 0.888679 -vt 0.175817 0.763675 -vt 0.070071 0.565140 -vt 0.936767 0.602614 -vt 0.539634 0.801832 -vt 0.352333 0.850164 -vt 0.734577 0.110400 -vt 0.000000 0.938735 -vt 0.914530 0.254951 -vt 0.082599 0.653595 -vt 0.914875 0.429303 -vt 0.116757 0.851525 -vt 0.647427 0.602614 -vt 0.607094 0.801832 -vt 0.840715 0.175060 -vt 0.608691 0.437102 -vt 0.549741 0.437102 -vt 0.204893 0.938735 -vt 0.011466 0.390788 -vt 0.972681 0.254951 -vt 0.165198 0.655064 -vt 0.705579 0.888074 -vt 0.856723 0.516833 -vt 0.198256 0.390788 -vt 0.726592 0.437102 -vt 0.000000 0.091333 -vt 0.068839 0.062086 -vt 0.097984 0.045200 -vt 0.131639 0.045200 -vt 0.177611 0.091333 -vt 0.177611 0.125104 -vt 0.097985 0.171236 -vt 0.068839 0.154351 -vt 0.117211 0.478794 -vt 0.058606 0.648462 -vt 0.598584 0.602614 -vt 0.774234 0.365351 -vt 0.912773 0.975604 -vt 0.965842 0.602614 -vt 0.539634 0.602614 -vt 0.469030 0.803374 -vt 0.519867 0.976892 -vt 0.439954 0.517309 -vt 0.514785 0.691432 -vn 0.707100 0.000000 0.707100 -vn 0.000000 1.000000 0.000000 -vn -0.703100 -0.106600 -0.703100 -vn 0.965900 -0.000000 -0.258800 -vn 0.258800 -0.000000 0.965900 -vn -0.258800 -0.000000 0.965900 -vn 0.257300 -0.106600 0.960400 -vn 0.258800 0.000000 -0.965900 -vn -0.257300 -0.106600 -0.960400 -vn -0.965900 0.000000 0.258800 -vn 0.707100 0.000000 -0.707100 -vn -0.736600 0.646900 0.197400 -vn -0.965900 0.000000 -0.258800 -vn 0.857800 -0.459700 -0.229900 -vn -0.707100 0.000000 -0.707100 -vn 0.960400 -0.106600 0.257300 -vn 0.197400 -0.646900 0.736600 -vn 0.197400 0.646900 -0.736600 -vn -0.703100 -0.106600 0.703100 -vn -0.736600 -0.646900 -0.197400 -vn 0.965900 -0.000000 0.258800 -vn 0.539200 0.646900 0.539200 -vn -0.539200 0.646900 -0.539200 -vn 0.229900 -0.459700 0.857800 -vn -0.539200 0.646900 0.539200 -vn -0.857800 -0.459700 -0.229900 -vn -0.197400 0.646900 -0.736600 -vn -0.258800 -0.000000 -0.965900 -vn 0.628000 -0.459700 -0.628000 -vn 0.736600 0.646900 0.197400 -vn -0.707100 0.000000 0.707100 -vn 0.960400 -0.106600 -0.257300 -vn -0.257300 -0.106600 0.960400 -vn -0.960400 -0.106600 0.257300 -vn -0.628000 -0.459700 0.628000 -vn 0.703100 -0.106600 0.703100 -vn -0.857800 -0.459700 0.229900 -vn -0.960400 -0.106600 -0.257300 -vn 0.736600 0.646900 -0.197400 -vn -0.197400 0.646900 0.736600 -vn 0.229800 -0.459700 -0.857800 -vn 0.703100 -0.106600 -0.703100 -vn 0.628000 -0.459700 0.628000 -vn -0.229800 -0.459700 0.857800 -vn 0.539200 0.646900 -0.539200 -vn 0.197400 0.646900 0.736600 -vn -0.229900 -0.459700 -0.857800 -vn 0.257300 -0.106600 -0.960400 -vn 0.857800 -0.459700 0.229900 -vn -0.736600 0.646900 -0.197400 -vn -0.857800 -0.459700 -0.229800 -vn -0.628000 -0.459700 -0.628000 -vn 0.857800 -0.459700 0.229800 -vn 0.000000 -1.000000 0.000000 -vn -0.960400 0.106600 -0.257300 -vn 0.703100 0.106600 0.703100 -vn -0.703100 0.106600 -0.703100 -vn -0.628000 0.459700 0.628000 -vn 0.539200 -0.646900 -0.539200 -vn 0.960400 0.106600 -0.257300 -vn -0.229900 -0.459700 0.857800 -vn -0.229900 0.459700 -0.857800 -vn -0.257300 0.106600 0.960400 -vn 0.857800 0.459700 0.229800 -vn -0.857800 0.459700 -0.229800 -vn 0.539200 -0.646900 0.539200 -vn -0.229900 0.459700 0.857800 -vn -0.736600 -0.646900 0.197400 -vn -0.628000 0.459700 -0.628000 -vn 0.197400 -0.646900 -0.736600 -vn 0.857800 0.459700 -0.229900 -vn 0.703100 0.106600 -0.703100 -vn 0.257300 0.106600 0.960400 -vn -0.703100 0.106600 0.703100 -vn -0.197400 -0.646900 0.736600 -vn 0.960400 0.106600 0.257300 -vn -0.539200 -0.646900 0.539200 -vn -0.960400 0.106600 0.257300 -vn 0.628000 0.459700 -0.628000 -vn 0.229900 0.459700 0.857800 -vn -0.197400 -0.646900 -0.736600 -vn 0.257300 0.106600 -0.960400 -vn 0.736600 -0.646900 0.197400 -vn 0.229800 0.459700 -0.857800 -vn 0.628000 0.459700 0.628000 -vn -0.539200 -0.646900 -0.539200 -vn -0.257300 0.106600 -0.960400 -vn 0.736600 -0.646900 -0.197400 -vn -0.857800 0.459700 0.229900 -vn -0.229800 0.459700 0.857800 -s off -f 20/1/1 21/2/1 43/3/1 -f 11/4/2 7/5/2 3/6/2 -f 15/7/2 16/8/2 12/9/2 -f 28/10/3 27/11/3 49/12/3 -f 41/13/4 42/14/4 60/15/4 -f 5/16/1 6/17/1 20/18/1 -f 6/19/5 7/20/5 21/21/5 -f 7/22/6 8/23/6 22/24/6 -f 53/25/7 54/26/7 72/27/7 -f 2/28/8 1/29/8 14/30/8 -f 16/31/9 15/32/9 27/33/9 -f 9/34/10 10/35/10 24/36/10 -f 1/37/11 3/38/11 17/39/11 -f 12/40/12 16/41/12 28/42/12 -f 10/43/13 11/44/13 25/45/13 -f 3/46/4 4/47/4 18/48/4 -f 15/49/14 2/50/14 13/51/14 -f 11/52/15 12/53/15 26/54/15 -f 29/55/16 30/56/16 31/57/16 -f 30/58/2 29/59/2 4/60/2 -f 19/61/17 31/62/17 30/63/17 -f 17/64/11 18/65/11 37/66/11 -f 4/67/18 29/68/18 32/69/18 -f 33/70/19 34/71/19 35/72/19 -f 9/73/2 34/74/2 33/75/2 -f 23/76/20 35/77/20 34/78/20 -f 19/79/21 20/80/21 42/81/21 -f 8/82/22 33/83/22 36/84/22 -f 47/85/10 48/86/10 66/87/10 -f 37/88/23 51/89/23 69/90/23 -f 31/62/24 19/61/24 41/91/24 -f 14/92/8 17/93/8 38/94/8 -f 26/95/25 28/42/25 50/96/25 -f 35/77/26 23/76/26 45/97/26 -f 21/98/5 22/99/5 44/100/5 -f 18/101/27 32/69/27 51/102/27 -f 13/103/28 14/104/28 39/105/28 -f 27/106/29 13/51/29 40/107/29 -f 22/108/30 36/84/30 53/109/30 -f 23/110/31 24/111/31 46/112/31 -f 32/113/32 31/114/32 52/115/32 -f 24/116/10 25/117/10 47/118/10 -f 36/119/33 35/120/33 54/121/33 -f 25/122/13 26/123/13 48/124/13 -f 68/125/34 67/126/34 85/127/34 -f 72/128/35 63/129/35 81/130/35 -f 59/131/11 60/132/11 78/133/11 -f 71/134/36 72/135/36 90/136/36 -f 54/137/37 45/138/37 63/129/37 -f 50/139/38 49/140/38 67/141/38 -f 42/142/21 43/143/21 61/144/21 -f 44/145/39 53/146/39 71/147/39 -f 48/148/40 50/149/40 68/150/40 -f 43/151/1 44/152/1 62/153/1 -f 49/154/41 40/155/41 58/156/41 -f 38/157/8 37/158/8 55/159/8 -f 51/160/42 52/161/42 70/162/42 -f 45/163/6 46/164/6 64/165/6 -f 39/166/28 38/167/28 56/168/28 -f 52/169/43 41/170/43 59/171/43 -f 46/172/31 47/173/31 65/174/31 -f 40/175/15 39/176/15 57/177/15 -f 80/178/18 89/179/18 107/180/18 -f 78/181/11 79/182/11 97/183/11 -f 86/184/19 85/185/19 103/186/19 -f 90/187/44 81/188/44 99/189/44 -f 60/190/4 61/191/4 79/192/4 -f 62/193/45 71/147/45 89/194/45 -f 66/195/46 68/150/46 86/196/46 -f 61/197/21 62/198/21 80/199/21 -f 67/200/47 58/156/47 76/201/47 -f 56/202/28 55/203/28 73/204/28 -f 69/205/48 70/206/48 88/207/48 -f 63/208/5 64/209/5 82/210/5 -f 57/211/15 56/212/15 74/213/15 -f 70/214/49 59/171/49 77/215/49 -f 64/216/6 65/217/6 83/218/6 -f 58/219/13 57/220/13 75/221/13 -f 55/222/50 69/90/50 87/223/50 -f 65/224/31 66/225/31 84/226/31 -f 103/227/51 94/228/51 112/229/51 -f 97/230/11 98/231/11 116/232/11 -f 102/233/30 104/234/30 122/235/30 -f 98/236/27 107/237/27 125/238/27 -f 84/239/22 86/240/22 104/234/22 -f 79/241/4 80/242/4 98/243/4 -f 85/244/52 76/245/52 94/246/52 -f 74/247/15 73/248/15 91/249/15 -f 87/250/9 88/251/9 106/252/9 -f 81/253/1 82/254/1 100/255/1 -f 75/256/13 74/257/13 92/258/13 -f 88/259/14 77/260/14 95/261/14 -f 82/262/5 83/263/5 101/264/5 -f 76/265/10 75/266/10 93/267/10 -f 73/268/12 87/269/12 105/270/12 -f 83/271/6 84/217/6 102/272/6 -f 89/273/16 90/274/16 108/275/16 -f 77/276/8 78/231/8 96/277/8 -f 117/278/4 118/279/4 136/280/4 -f 123/281/38 124/282/38 142/283/38 -f 110/284/10 109/285/10 127/286/10 -f 121/287/37 112/229/37 130/288/37 -f 92/289/13 91/290/13 109/291/13 -f 105/292/3 106/293/3 124/294/3 -f 99/295/21 100/296/21 118/297/21 -f 93/298/10 92/299/10 110/300/10 -f 106/301/29 95/261/29 113/302/29 -f 100/303/1 101/304/1 119/305/1 -f 94/306/31 93/307/31 111/308/31 -f 91/309/25 105/270/25 123/310/25 -f 101/311/5 102/312/5 120/313/5 -f 107/314/32 108/315/32 126/316/32 -f 95/317/28 96/318/28 114/319/28 -f 108/320/24 99/321/24 117/322/24 -f 104/323/33 103/324/33 121/325/33 -f 96/326/8 97/327/8 115/328/8 -f 129/329/6 128/307/6 146/330/6 -f 135/331/11 136/332/11 154/333/11 -f 141/334/34 142/335/34 160/336/34 -f 128/337/31 127/338/31 145/339/31 -f 111/340/31 110/341/31 128/342/31 -f 124/343/41 113/344/41 131/345/41 -f 118/346/21 119/347/21 137/348/21 -f 112/349/6 111/350/6 129/351/6 -f 109/352/40 123/353/40 141/354/40 -f 119/355/1 120/356/1 138/357/1 -f 125/358/42 126/359/42 144/360/42 -f 113/361/15 114/362/15 132/363/15 -f 126/364/43 117/322/43 135/365/43 -f 122/366/7 121/367/7 139/368/7 -f 114/369/28 115/370/28 133/371/28 -f 116/372/23 125/238/23 143/373/23 -f 120/374/39 122/375/39 140/376/39 -f 115/377/8 116/378/8 134/379/8 -f 148/380/1 147/381/1 165/382/1 -f 154/383/11 155/384/11 173/385/11 -f 160/386/52 149/387/52 167/388/52 -f 147/389/5 146/390/5 164/391/5 -f 142/392/47 131/393/47 149/387/47 -f 136/394/4 137/395/4 155/396/4 -f 130/397/5 129/398/5 147/399/5 -f 127/400/46 141/401/46 159/402/46 -f 137/403/21 138/404/21 156/405/21 -f 143/406/48 144/407/48 162/408/48 -f 131/409/13 132/410/13 150/411/13 -f 144/412/53 135/413/53 153/414/53 -f 140/415/36 139/416/36 157/417/36 -f 132/418/15 133/419/15 151/420/15 -f 134/421/50 143/422/50 161/423/50 -f 138/424/45 140/425/45 158/426/45 -f 133/427/28 134/428/28 152/429/28 -f 139/430/35 130/288/35 148/431/35 -f 179/432/3 180/433/3 198/434/3 -f 173/435/11 174/436/11 192/437/11 -f 163/438/30 177/439/30 195/440/30 -f 166/441/21 165/442/21 183/443/21 -f 145/444/22 159/402/22 177/445/22 -f 155/446/4 156/447/4 174/448/4 -f 161/449/9 162/450/9 180/451/9 -f 149/452/10 150/453/10 168/454/10 -f 162/455/14 153/414/14 171/456/14 -f 158/457/16 157/458/16 175/459/16 -f 150/460/13 151/442/13 169/461/13 -f 152/462/12 161/423/12 179/463/12 -f 156/464/18 158/426/18 176/465/18 -f 151/466/15 152/254/15 170/467/15 -f 157/468/44 148/469/44 166/470/44 -f 146/471/6 145/472/6 163/473/6 -f 159/474/19 160/475/19 178/476/19 -f 153/477/8 154/478/8 172/479/8 -f 194/480/42 193/481/42 211/482/42 -f 198/483/41 189/484/41 207/485/41 -f 185/486/6 186/487/6 204/488/6 -f 197/489/38 198/490/38 216/491/38 -f 167/492/31 168/493/31 186/494/31 -f 180/495/29 171/496/29 189/484/29 -f 176/497/32 175/498/32 193/499/32 -f 168/500/10 169/501/10 187/502/10 -f 170/503/25 179/504/25 197/505/25 -f 174/506/27 176/507/27 194/508/27 -f 169/509/13 170/143/13 188/510/13 -f 175/511/24 166/512/24 184/513/24 -f 164/514/5 163/515/5 181/516/5 -f 177/517/33 178/518/33 196/519/33 -f 171/520/28 172/521/28 190/522/28 -f 165/523/1 164/524/1 182/525/1 -f 178/526/51 167/527/51 185/528/51 -f 172/529/8 173/530/8 191/531/8 -f 204/532/6 205/533/6 223/534/6 -f 212/535/48 211/536/48 229/537/48 -f 216/538/47 207/539/47 225/540/47 -f 203/541/5 204/542/5 222/543/5 -f 186/544/31 187/304/31 205/545/31 -f 188/546/40 197/505/40 215/547/40 -f 192/548/23 194/508/23 212/549/23 -f 187/550/10 188/551/10 206/552/10 -f 193/553/43 184/513/43 202/554/43 -f 182/555/1 181/556/1 199/557/1 -f 195/558/7 196/559/7 214/560/7 -f 189/561/15 190/562/15 208/563/15 -f 183/564/21 182/565/21 200/566/21 -f 196/567/37 185/528/37 203/568/37 -f 190/569/28 191/570/28 209/571/28 -f 184/572/4 183/573/4 201/574/4 -f 181/575/39 195/440/39 213/576/39 -f 191/577/8 192/578/8 210/579/8 -f 220/580/54 228/581/54 230/582/54 -f 221/583/54 225/584/54 220/580/54 -f 231/585/54 232/586/54 221/583/54 -f 224/587/54 233/588/54 234/589/54 -f 206/590/46 215/591/46 233/592/46 -f 210/593/50 212/594/50 230/595/50 -f 205/596/31 206/597/31 224/598/31 -f 211/599/53 202/600/53 220/601/53 -f 200/602/21 199/603/21 217/604/21 -f 213/605/36 214/606/36 232/607/36 -f 207/608/13 208/521/13 226/609/13 -f 201/610/4 200/611/4 218/612/4 -f 214/613/35 203/614/35 221/615/35 -f 208/616/15 209/617/15 227/618/15 -f 202/619/11 201/620/11 219/621/11 -f 199/622/45 213/623/45 231/624/45 -f 209/625/28 210/626/28 228/627/28 -f 215/628/34 216/629/34 234/630/34 -f 42/631/21 20/1/21 43/3/21 -f 3/6/2 1/632/2 2/633/2 -f 2/633/2 12/9/2 3/6/2 -f 11/4/2 10/634/2 9/73/2 -f 9/73/2 8/635/2 7/5/2 -f 7/5/2 6/636/2 5/637/2 -f 5/637/2 4/60/2 7/5/2 -f 3/6/2 12/9/2 11/4/2 -f 11/4/2 9/73/2 7/5/2 -f 7/5/2 4/60/2 3/6/2 -f 2/633/2 15/7/2 12/9/2 -f 50/638/55 28/10/55 49/12/55 -f 59/639/11 41/13/11 60/15/11 -f 19/640/21 5/16/21 20/18/21 -f 20/209/1 6/19/1 21/21/1 -f 21/641/5 7/22/5 22/24/5 -f 71/642/56 53/25/56 72/27/56 -f 13/296/28 2/28/28 14/30/28 -f 28/643/57 16/31/57 27/33/57 -f 23/644/31 9/34/31 24/36/31 -f 14/645/8 1/37/8 17/39/8 -f 26/95/58 12/40/58 28/42/58 -f 24/646/10 10/43/10 25/45/10 -f 17/647/11 3/46/11 18/48/11 -f 27/106/59 15/49/59 13/51/59 -f 25/648/13 11/52/13 26/54/13 -f 32/649/60 29/55/60 31/57/60 -f 5/637/2 30/58/2 4/60/2 -f 5/650/61 19/61/61 30/63/61 -f 38/266/8 17/64/8 37/66/8 -f 18/101/62 4/67/62 32/69/62 -f 36/538/63 33/70/63 35/72/63 -f 8/635/2 9/73/2 33/75/2 -f 9/651/52 23/76/52 34/78/52 -f 41/652/4 19/79/4 42/81/4 -f 22/108/64 8/82/64 36/84/64 -f 65/653/31 47/85/31 66/87/31 -f 55/222/65 37/88/65 69/90/65 -f 52/654/66 31/62/66 41/91/66 -f 39/655/28 14/92/28 38/94/28 -f 48/656/67 26/95/67 50/96/67 -f 54/657/68 35/77/68 45/97/68 -f 43/658/1 21/98/1 44/100/1 -f 37/659/69 18/101/69 51/102/69 -f 40/660/15 13/103/15 39/105/15 -f 49/661/70 27/106/70 40/107/70 -f 44/662/71 22/108/71 53/109/71 -f 45/663/6 23/110/6 46/112/6 -f 51/664/72 32/113/72 52/115/72 -f 46/665/31 24/116/31 47/118/31 -f 53/666/73 36/119/73 54/121/73 -f 47/212/10 25/122/10 48/124/10 -f 86/667/74 68/125/74 85/127/74 -f 90/668/75 72/128/75 81/130/75 -f 77/669/8 59/131/8 78/133/8 -f 89/670/76 71/134/76 90/136/76 -f 72/128/77 54/137/77 63/129/77 -f 68/671/78 50/139/78 67/141/78 -f 60/672/4 42/142/4 61/144/4 -f 62/193/79 44/145/79 71/147/79 -f 66/195/80 48/148/80 68/150/80 -f 61/673/21 43/151/21 62/153/21 -f 67/200/81 49/154/81 58/156/81 -f 56/674/28 38/157/28 55/159/28 -f 69/675/82 51/160/82 70/162/82 -f 63/676/5 45/163/5 64/165/5 -f 57/677/15 39/166/15 56/168/15 -f 70/214/83 52/169/83 59/171/83 -f 64/678/6 46/172/6 65/174/6 -f 58/679/13 40/175/13 57/177/13 -f 98/680/62 80/178/62 107/180/62 -f 96/681/8 78/181/8 97/183/8 -f 104/682/63 86/184/63 103/186/63 -f 108/683/17 90/187/17 99/189/17 -f 78/684/11 60/190/11 79/192/11 -f 80/685/84 62/193/84 89/194/84 -f 84/686/85 66/195/85 86/196/85 -f 79/687/4 61/197/4 80/199/4 -f 85/688/86 67/200/86 76/201/86 -f 74/677/15 56/202/15 73/204/15 -f 87/158/87 69/205/87 88/207/87 -f 81/689/1 63/208/1 82/210/1 -f 75/690/13 57/211/13 74/213/13 -f 88/691/88 70/214/88 77/215/88 -f 82/692/5 64/216/5 83/218/5 -f 76/693/10 58/219/10 75/221/10 -f 73/694/89 55/222/89 87/223/89 -f 83/620/6 65/224/6 84/226/6 -f 121/287/68 103/227/68 112/229/68 -f 115/695/8 97/230/8 116/232/8 -f 120/696/71 102/233/71 122/235/71 -f 116/372/69 98/236/69 125/238/69 -f 102/233/64 84/239/64 104/234/64 -f 97/697/11 79/241/11 98/243/11 -f 103/343/20 85/244/20 94/246/20 -f 92/698/13 74/247/13 91/249/13 -f 105/699/57 87/250/57 106/252/57 -f 99/700/21 81/253/21 100/255/21 -f 93/701/10 75/256/10 92/258/10 -f 106/301/59 88/259/59 95/261/59 -f 100/542/1 82/262/1 101/264/1 -f 94/702/31 76/265/31 93/267/31 -f 91/309/58 73/268/58 105/270/58 -f 101/703/5 83/271/5 102/272/5 -f 107/704/60 89/273/60 108/275/60 -f 95/705/28 77/276/28 96/277/28 -f 135/706/11 117/278/11 136/280/11 -f 141/707/78 123/281/78 142/283/78 -f 128/708/31 110/284/31 127/286/31 -f 139/430/77 121/287/77 130/288/77 -f 110/709/10 92/289/10 109/291/10 -f 123/710/55 105/292/55 124/294/55 -f 117/711/4 99/295/4 118/297/4 -f 111/712/31 93/298/31 110/300/31 -f 124/713/70 106/301/70 113/302/70 -f 118/714/21 100/303/21 119/305/21 -f 112/698/6 94/306/6 111/308/6 -f 109/715/90 91/309/90 123/310/90 -f 119/716/1 101/311/1 120/313/1 -f 125/717/72 107/314/72 126/316/72 -f 113/718/15 95/317/15 114/319/15 -f 126/364/66 108/320/66 117/322/66 -f 122/719/73 104/323/73 121/325/73 -f 114/720/28 96/326/28 115/328/28 -f 147/721/5 129/329/5 146/330/5 -f 153/722/8 135/331/8 154/333/8 -f 159/723/74 141/334/74 160/336/74 -f 146/724/6 128/337/6 145/339/6 -f 129/725/6 111/340/6 128/342/6 -f 142/592/81 124/343/81 131/345/81 -f 136/726/4 118/346/4 137/348/4 -f 130/164/5 112/349/5 129/351/5 -f 127/727/80 109/352/80 141/354/80 -f 137/453/21 119/355/21 138/357/21 -f 143/728/82 125/358/82 144/360/82 -f 131/729/13 113/361/13 132/363/13 -f 144/730/83 126/364/83 135/365/83 -f 140/731/56 122/366/56 139/368/56 -f 132/690/15 114/369/15 133/371/15 -f 134/732/65 116/372/65 143/373/65 -f 138/733/79 120/374/79 140/376/79 -f 133/706/28 115/377/28 134/379/28 -f 166/419/21 148/380/21 165/382/21 -f 172/734/8 154/383/8 173/385/8 -f 178/735/20 160/386/20 167/388/20 -f 165/736/1 147/389/1 164/391/1 -f 160/386/86 142/392/86 149/387/86 -f 154/737/11 136/394/11 155/396/11 -f 148/738/1 130/397/1 147/399/1 -f 145/444/85 127/400/85 159/402/85 -f 155/739/4 137/403/4 156/405/4 -f 161/740/87 143/406/87 162/408/87 -f 149/741/10 131/409/10 150/411/10 -f 162/455/88 144/412/88 153/414/88 -f 158/742/76 140/415/76 157/417/76 -f 150/80/13 132/418/13 151/420/13 -f 152/462/89 134/421/89 161/423/89 -f 156/464/84 138/424/84 158/426/84 -f 151/743/15 133/427/15 152/429/15 -f 157/744/75 139/430/75 148/431/75 -f 197/745/55 179/432/55 198/434/55 -f 191/746/8 173/435/8 192/437/8 -f 181/575/71 163/438/71 195/440/71 -f 184/747/4 166/441/4 183/443/4 -f 163/748/64 145/444/64 177/445/64 -f 173/749/11 155/446/11 174/448/11 -f 179/750/57 161/449/57 180/451/57 -f 167/751/31 149/452/31 168/454/31 -f 180/752/59 162/455/59 171/456/59 -f 176/753/60 158/457/60 175/459/60 -f 168/384/10 150/460/10 169/461/10 -f 170/754/58 152/462/58 179/463/58 -f 174/755/62 156/464/62 176/465/62 -f 169/756/13 151/466/13 170/467/13 -f 175/757/17 157/468/17 166/470/17 -f 164/758/5 146/471/5 163/473/5 -f 177/759/63 159/474/63 178/476/63 -f 171/760/28 153/477/28 172/479/28 -f 212/761/82 194/480/82 211/482/82 -f 216/762/81 198/483/81 207/485/81 -f 203/763/5 185/486/5 204/488/5 -f 215/764/78 197/489/78 216/491/78 -f 185/765/6 167/492/6 186/494/6 -f 198/483/70 180/495/70 189/484/70 -f 194/766/72 176/497/72 193/499/72 -f 186/117/31 168/500/31 187/502/31 -f 188/546/90 170/503/90 197/505/90 -f 192/548/69 174/506/69 194/508/69 -f 187/767/10 169/509/10 188/510/10 -f 193/553/66 175/511/66 184/513/66 -f 182/768/1 164/514/1 181/516/1 -f 195/769/73 177/517/73 196/519/73 -f 189/722/15 171/520/15 190/522/15 -f 183/684/21 165/523/21 182/525/21 -f 196/567/68 178/526/68 185/528/68 -f 190/770/28 172/529/28 191/531/28 -f 222/771/5 204/532/5 223/534/5 -f 230/56/87 212/535/87 229/537/87 -f 234/772/86 216/538/86 225/540/86 -f 221/773/1 203/541/1 222/543/1 -f 204/774/6 186/544/6 205/545/6 -f 206/775/80 188/546/80 215/547/80 -f 210/776/65 192/548/65 212/549/65 -f 205/777/31 187/550/31 206/552/31 -f 211/778/83 193/553/83 202/554/83 -f 200/779/21 182/555/21 199/557/21 -f 213/780/56 195/558/56 214/560/56 -f 207/781/13 189/561/13 208/563/13 -f 201/782/4 183/564/4 200/566/4 -f 214/783/77 196/567/77 203/568/77 -f 208/641/15 190/569/15 209/571/15 -f 202/356/11 184/572/11 201/574/11 -f 199/784/79 181/575/79 213/576/79 -f 209/404/28 191/577/28 210/579/28 -f 229/785/54 220/580/54 230/582/54 -f 220/580/54 219/786/54 218/787/54 -f 218/787/54 217/788/54 221/583/54 -f 221/583/54 222/789/54 223/790/54 -f 223/790/54 224/587/54 221/583/54 -f 225/584/54 226/791/54 227/792/54 -f 227/792/54 228/581/54 220/580/54 -f 220/580/54 218/787/54 221/583/54 -f 221/583/54 224/587/54 225/584/54 -f 225/584/54 227/792/54 220/580/54 -f 217/788/54 231/585/54 221/583/54 -f 225/584/54 224/587/54 234/589/54 -f 224/793/85 206/590/85 233/592/85 -f 228/794/89 210/593/89 230/595/89 -f 223/746/6 205/596/6 224/598/6 -f 229/795/88 211/599/88 220/601/88 -f 218/729/4 200/602/4 217/604/4 -f 231/796/76 213/605/76 232/607/76 -f 225/797/10 207/608/10 226/609/10 -f 219/798/11 201/610/11 218/612/11 -f 232/799/75 214/613/75 221/615/75 -f 226/800/13 208/616/13 227/618/13 -f 220/801/8 202/619/8 219/621/8 -f 217/802/84 199/622/84 231/624/84 -f 227/299/15 209/625/15 228/627/15 -f 233/803/74 215/628/74 234/630/74 diff --git a/src/main/resources/assets/hbm/models/drill_main.obj b/src/main/resources/assets/hbm/models/drill_main.obj deleted file mode 100644 index 5d0baf4e8..000000000 --- a/src/main/resources/assets/hbm/models/drill_main.obj +++ /dev/null @@ -1,1810 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'drill_main.blend' -# www.blender.org -o Plane.001 -v -0.500000 0.250000 0.250000 -v -0.500000 0.750000 0.250000 -v -0.500000 0.250000 -0.250000 -v -0.500000 0.750000 -0.250000 -v -1.500000 0.000000 0.500000 -v -1.500000 1.000000 0.500000 -v -1.500000 0.000000 -0.500000 -v -1.500000 1.000000 -0.500000 -v -1.000000 1.000000 -0.500000 -v -1.000000 0.000000 -0.500000 -v -1.000000 1.000000 0.500000 -v -1.000000 0.000000 0.500000 -v -1.500000 0.875000 -0.375000 -v -1.500000 0.125000 -0.375000 -v -1.500000 0.875000 0.375000 -v -1.500000 0.125000 0.375000 -v -1.000000 0.687500 -0.187500 -v -1.000000 0.312500 -0.187500 -v -1.000000 0.687500 0.187500 -v -1.000000 0.312500 0.187500 -v -1.083333 0.250000 -0.600000 -v -1.083333 0.750000 -0.600000 -v -1.333333 0.500000 -0.600000 -v -1.083333 0.250000 0.600000 -v -1.083333 0.750000 0.600000 -v -1.333333 0.500000 0.600000 -v -1.500000 0.000000 1.500000 -v 1.500000 0.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v -1.500000 0.000000 1.250000 -v 1.250000 0.000000 1.500000 -v 1.500000 0.000000 -1.250000 -v -1.250000 0.000000 -1.500000 -v -1.500000 0.000000 -1.250000 -v -1.250000 0.000000 1.500000 -v 1.500000 0.000000 1.250000 -v 1.250000 0.000000 -1.500000 -v 1.250000 0.000000 1.250000 -v -1.250000 0.000000 1.250000 -v -1.250000 0.000000 -1.250000 -v 1.250000 0.000000 -1.250000 -v -0.000000 3.500000 -0.250000 -v 0.125000 3.500000 -0.216506 -v 0.000000 3.000000 -0.500000 -v 0.000000 3.250000 -0.500000 -v 0.250000 3.000000 -0.433013 -v 0.250000 3.250000 -0.433013 -v 0.433013 3.000000 -0.250000 -v 0.433013 3.250000 -0.250000 -v 0.500000 3.000000 0.000000 -v 0.500000 3.250000 0.000000 -v 0.433013 3.000000 0.250000 -v 0.433013 3.250000 0.250000 -v 0.250000 3.000000 0.433013 -v 0.250000 3.250000 0.433013 -v 0.000000 3.000000 0.500000 -v 0.000000 3.250000 0.500000 -v -0.250000 3.000000 0.433013 -v -0.250000 3.250000 0.433013 -v -0.433013 3.000000 0.250000 -v -0.433013 3.250000 0.250000 -v -0.500000 3.000000 0.000000 -v -0.500000 3.250000 0.000000 -v -0.433013 3.000000 -0.250000 -v -0.433013 3.250000 -0.250000 -v -0.250000 3.000000 -0.433013 -v -0.250000 3.250000 -0.433013 -v 0.216506 3.500000 -0.125000 -v 0.250000 3.500000 0.000000 -v 0.216506 3.500000 0.125000 -v 0.125000 3.500000 0.216506 -v 0.000000 3.500000 0.250000 -v -0.125000 3.500000 0.216506 -v -0.216506 3.500000 0.125000 -v -0.250000 3.500000 0.000000 -v -0.216506 3.500000 -0.125000 -v -0.125000 3.500000 -0.216506 -v -0.000000 3.500000 -0.087500 -v -0.043750 3.500000 -0.075777 -v -0.075777 3.500000 -0.043750 -v -0.087500 3.500000 0.000000 -v -0.075777 3.500000 0.043750 -v -0.043750 3.500000 0.075777 -v 0.000000 3.500000 0.087500 -v 0.043750 3.500000 0.075777 -v 0.075777 3.500000 0.043750 -v 0.087500 3.500000 0.000000 -v 0.075777 3.500000 -0.043750 -v 0.043750 3.500000 -0.075777 -v 0.000001 4.000000 -0.087500 -v -0.043749 4.000000 -0.075777 -v -0.075777 4.000000 -0.043750 -v -0.087499 4.000000 0.000000 -v -0.075777 4.000000 0.043750 -v -0.043749 4.000000 0.075777 -v 0.000001 4.000000 0.087500 -v 0.043751 4.000000 0.075777 -v 0.075778 4.000000 0.043750 -v 0.087501 4.000000 0.000000 -v 0.075778 4.000000 -0.043750 -v 0.043751 4.000000 -0.075777 -v -0.750000 3.000000 -0.750000 -v -0.500000 3.000000 -0.750000 -v -0.750000 3.000000 -0.500000 -v -0.500000 3.000000 -0.500000 -v 0.750000 3.000000 -0.750000 -v 0.750000 3.000000 -0.500000 -v 0.500000 3.000000 -0.750000 -v 0.500000 3.000000 -0.500000 -v 0.750000 3.000000 0.750000 -v 0.500000 3.000000 0.750000 -v 0.750000 3.000000 0.500000 -v 0.500000 3.000000 0.500000 -v -0.750000 3.000000 0.750000 -v -0.750000 3.000000 0.500000 -v -0.500000 3.000000 0.750000 -v -0.500000 3.000000 0.500000 -v 0.156236 0.656250 1.502073 -v -0.156236 0.656250 1.497927 -v 0.156236 0.343750 1.502073 -v -0.156236 0.343750 1.497927 -v 0.159552 0.656250 1.252095 -v -0.152920 0.656250 1.247949 -v 0.159552 0.343750 1.252095 -v -0.152920 0.343750 1.247949 -v -0.500000 0.000000 1.250000 -v -0.500000 1.000000 1.250000 -v -0.500000 0.000000 1.000000 -v -0.500000 1.000000 1.000000 -v 0.500000 0.000000 1.250000 -v 0.500000 1.000000 1.250000 -v 0.500000 0.000000 1.000000 -v 0.500000 1.000000 1.000000 -v -0.496481 0.739070 0.748450 -v -0.500000 0.000000 0.750000 -v 0.503519 0.739070 0.748450 -v 0.500000 0.000000 0.750000 -v 0.156236 0.656250 -1.497927 -v -0.156236 0.656250 -1.502073 -v 0.156236 0.343750 -1.497927 -v -0.156236 0.343750 -1.502073 -v 0.152920 0.656250 -1.247949 -v -0.159552 0.656250 -1.252095 -v 0.152920 0.343750 -1.247949 -v -0.159552 0.343750 -1.252095 -v -0.500000 0.000000 -1.000000 -v -0.500000 1.000000 -1.000000 -v -0.500000 0.000000 -1.250000 -v -0.500000 1.000000 -1.250000 -v 0.500000 0.000000 -1.000000 -v 0.500000 1.000000 -1.000000 -v 0.500000 0.000000 -1.250000 -v 0.500000 1.000000 -1.250000 -v -0.500000 0.000000 -0.750000 -v -0.500000 0.750000 -0.750000 -v 0.500000 0.750000 -0.750000 -v 0.500000 0.000000 -0.750000 -v -0.749622 0.250000 0.750000 -v 0.750378 1.000000 0.750000 -v -0.749622 0.250000 -0.750000 -v 0.750378 1.000000 -0.750000 -v -0.249622 0.500000 -0.433013 -v 0.000378 0.625000 -0.500000 -v 0.250378 0.750000 -0.433012 -v 0.433391 0.841506 -0.250000 -v 0.500378 0.875000 0.000000 -v 0.433390 0.841505 0.250000 -v 0.250378 0.750000 0.433013 -v 0.000378 0.625000 0.500000 -v -0.249622 0.500000 0.433013 -v -0.432635 0.408494 0.250000 -v -0.499622 0.375000 -0.000000 -v -0.432635 0.408494 -0.250000 -v -0.749622 0.750000 0.750000 -v 0.750378 1.500000 0.750000 -v -0.749622 0.750000 -0.750000 -v 0.750378 1.500000 -0.750000 -v -0.249622 1.000000 -0.433013 -v 0.000378 1.125000 -0.500000 -v 0.250378 1.250000 -0.433012 -v 0.433391 1.341506 -0.250000 -v 0.500378 1.375000 0.000000 -v 0.433390 1.341505 0.250000 -v 0.250378 1.250000 0.433013 -v 0.000378 1.125000 0.500000 -v -0.249622 1.000000 0.433013 -v -0.432635 0.908494 0.250000 -v -0.499622 0.875000 -0.000000 -v -0.432635 0.908494 -0.250000 -v -0.999622 0.250000 -0.375000 -v -0.999622 0.250000 0.375000 -v -0.999622 0.750000 -0.375000 -v -0.999622 0.750000 0.375000 -v 0.500000 0.000000 0.500000 -v 0.500000 0.250000 0.500000 -v 0.500000 0.000000 -0.500000 -v 0.500000 0.250000 -0.500000 -v 1.500000 0.000000 0.500000 -v 1.500000 0.250000 0.500000 -v 1.500000 0.000000 -0.500000 -v 1.500000 0.250000 -0.500000 -v 0.750000 0.375000 0.250000 -v 0.750000 0.375000 -0.250000 -v 1.250000 0.375000 -0.250000 -v 1.250000 0.375000 0.250000 -v 0.750000 1.000000 0.250000 -v 0.750000 1.000000 -0.250000 -v 1.250000 1.000000 -0.250000 -v 1.250000 1.000000 0.250000 -v 0.750000 1.500000 0.250000 -v 0.750000 1.500000 -0.250000 -v 1.250000 1.500000 -0.250000 -v 1.250000 1.500000 0.250000 -v 0.750000 2.125000 0.250000 -v 0.750000 2.125000 -0.250000 -v 1.250000 2.125000 -0.250000 -v 1.250000 2.125000 0.250000 -v 0.500000 2.500000 0.500000 -v 0.500000 2.500000 -0.500000 -v 1.500000 2.500000 0.500000 -v 1.500000 2.500000 -0.500000 -v 0.500000 2.250000 -0.500000 -v 0.500000 2.250000 0.500000 -v 1.500000 2.250000 -0.500000 -v 1.500000 2.250000 0.500000 -v 0.750000 3.125000 -0.250000 -v 0.750000 3.125000 0.250000 -v 0.750000 3.125000 -0.178571 -v 0.750000 3.125000 -0.107143 -v 0.750000 3.125000 -0.035714 -v 0.750000 3.125000 0.035714 -v 0.750000 3.125000 0.107143 -v 0.750000 3.125000 0.178571 -v 0.400000 3.125000 -0.250000 -v 0.400000 3.125000 0.250000 -v 0.400000 3.125000 -0.178571 -v 0.400000 3.125000 -0.107143 -v 0.400000 3.125000 -0.035714 -v 0.400000 3.125000 0.035714 -v 0.400000 3.125000 0.107143 -v 0.400000 3.125000 0.178571 -v 1.000000 2.875000 -0.250000 -v 1.000000 2.875000 0.250000 -v 1.000000 2.875000 -0.178571 -v 1.000000 2.875000 -0.107143 -v 1.000000 2.875000 -0.035714 -v 1.000000 2.875000 0.035714 -v 1.000000 2.875000 0.107143 -v 1.000000 2.875000 0.178571 -v 1.000000 2.500000 -0.250000 -v 1.000000 2.500000 0.250000 -v 1.000000 2.500000 -0.178571 -v 1.000000 2.500000 -0.107143 -v 1.000000 2.500000 -0.035714 -v 1.000000 2.500000 0.035714 -v 1.000000 2.500000 0.107143 -v 1.000000 2.500000 0.178571 -v 1.250000 1.000000 -1.250000 -v 1.000000 2.000000 -1.000000 -v 1.000000 1.000000 -1.250000 -v 0.750000 2.000000 -1.000000 -v 1.250000 1.000000 -1.000000 -v 1.000000 2.000000 -0.750000 -v 1.000000 1.000000 -1.000000 -v 0.750000 2.000000 -0.750000 -v -1.000000 1.000000 -1.250000 -v -0.750000 2.000000 -1.000000 -v -1.250000 1.000000 -1.250000 -v -1.000000 2.000000 -1.000000 -v -1.250000 1.000000 -1.000000 -v -1.000000 2.000000 -0.750000 -v -1.000000 1.000000 -1.000000 -v -0.750000 2.000000 -0.750000 -v -1.000000 1.000000 1.000000 -v -0.750000 2.000000 0.750000 -v -1.250000 1.000000 1.000000 -v -1.000000 2.000000 0.750000 -v -1.000000 1.000000 1.250000 -v -0.750000 2.000000 1.000000 -v -1.250000 1.000000 1.250000 -v -1.000000 2.000000 1.000000 -v 1.250000 1.000000 1.250000 -v 1.000000 2.000000 1.000000 -v 1.250000 1.000000 1.000000 -v 1.000000 2.000000 0.750000 -v 1.000000 1.000000 1.250000 -v 0.750000 2.000000 1.000000 -v 1.000000 1.000000 1.000000 -v 0.750000 2.000000 0.750000 -v -1.250000 1.000000 -0.500000 -v -1.000000 1.000000 -0.500000 -v -1.000000 1.000000 0.500000 -v -1.250000 1.000000 0.500000 -v 1.000000 1.000000 0.500000 -v 1.000000 1.000000 -0.500000 -vt 0.742850 0.869892 -vt 0.794307 0.869891 -vt 0.794307 0.921513 -vt 0.788877 0.109438 -vt 0.737417 0.109438 -vt 0.737417 0.006195 -vt 0.429689 0.019100 -vt 0.352503 0.019100 -vt 0.339639 0.006195 -vt 0.736573 0.433689 -vt 0.679039 0.407878 -vt 0.679039 0.356257 -vt 0.748924 0.549321 -vt 0.748924 0.446078 -vt 0.800384 0.446078 -vt 0.736573 0.471889 -vt 0.736573 0.523511 -vt 0.679039 0.549321 -vt 0.454904 0.803419 -vt 0.454904 0.700176 -vt 0.506364 0.700176 -vt 0.736573 0.214814 -vt 0.736573 0.318057 -vt 0.679039 0.292246 -vt 0.679039 0.677343 -vt 0.730499 0.677343 -vt 0.730499 0.780586 -vt 0.679039 0.587521 -vt 0.736573 0.561711 -vt 0.736573 0.664954 -vt 0.348647 0.805319 -vt 0.348647 0.766602 -vt 0.403607 0.747244 -vt 0.352504 0.096532 -vt 0.429689 0.096532 -vt 0.442553 0.109438 -vt 0.339640 0.109438 -vt 0.442553 0.006195 -vt 0.089013 0.920298 -vt 0.127606 0.920298 -vt 0.127606 0.959015 -vt 0.263570 0.790128 -vt 0.263570 0.751411 -vt 0.318529 0.732053 -vt 0.089013 0.803185 -vt 0.089013 0.764469 -vt 0.143973 0.745111 -vt 0.748924 0.619785 -vt 0.748924 0.581069 -vt 0.803884 0.561711 -vt 0.955744 0.406846 -vt 0.955744 0.458468 -vt 0.930014 0.432657 -vt 0.955744 0.330446 -vt 0.930014 0.304635 -vt 0.955744 0.278824 -vt 0.968095 0.214814 -vt 0.993825 0.214814 -vt 0.993825 0.240624 -vt 0.965057 0.750801 -vt 0.990788 0.750801 -vt 0.990788 0.776612 -vt 0.923940 0.638627 -vt 0.949670 0.638627 -vt 0.949670 0.664437 -vt 0.816234 0.638627 -vt 0.841964 0.638627 -vt 0.841964 0.664438 -vt 0.728746 0.896592 -vt 0.728746 0.909952 -vt 0.712591 0.905610 -vt 0.833299 0.970304 -vt 0.806661 0.970304 -vt 0.813320 0.934418 -vt 0.926128 0.106374 -vt 0.926128 0.079653 -vt 0.951858 0.079653 -vt 0.679039 0.909952 -vt 0.679039 0.896592 -vt 0.695194 0.900934 -vt 0.238533 0.982264 -vt 0.211895 0.982264 -vt 0.218555 0.946378 -vt 0.566971 0.992904 -vt 0.566971 0.966183 -vt 0.592702 0.966183 -vt 0.685698 0.921523 -vt 0.697524 0.909660 -vt 0.701561 0.911998 -vt 0.973435 0.157712 -vt 0.946797 0.157712 -vt 0.953457 0.121827 -vt 0.045164 0.992712 -vt 0.045164 0.965990 -vt 0.070894 0.965990 -vt 0.710552 0.878341 -vt 0.706223 0.894546 -vt 0.701561 0.894546 -vt 0.679039 0.976478 -vt 0.685698 0.940593 -vt 0.699017 0.940593 -vt 0.930014 0.545853 -vt 0.930014 0.519131 -vt 0.955744 0.519131 -vt 0.712591 0.900934 -vt 0.710260 0.896884 -vt 0.923940 0.982693 -vt 0.930599 0.946807 -vt 0.943918 0.946807 -vt 0.454904 0.992904 -vt 0.454904 0.966182 -vt 0.480634 0.966182 -vt 0.722086 0.921523 -vt 0.710260 0.909660 -vt 0.956652 0.506742 -vt 0.930014 0.506742 -vt 0.936673 0.470857 -vt 0.826958 0.173449 -vt 0.826958 0.200170 -vt 0.801228 0.200170 -vt 0.710552 0.928203 -vt 0.697233 0.928203 -vt 0.879430 0.989146 -vt 0.886089 0.953260 -vt 0.899408 0.953260 -vt 0.031905 0.965990 -vt 0.031905 0.992712 -vt 0.006175 0.992712 -vt 0.685698 0.885021 -vt 0.697524 0.896884 -vt 0.630782 0.967319 -vt 0.637442 0.931434 -vt 0.650761 0.931434 -vt 0.069983 0.732694 -vt 0.069983 0.705972 -vt 0.095713 0.705972 -vt 0.154777 0.886554 -vt 0.154777 0.834933 -vt 0.159439 0.834933 -vt 0.769488 0.969788 -vt 0.742850 0.969788 -vt 0.749509 0.933903 -vt 0.302558 0.992981 -vt 0.302558 0.966260 -vt 0.328288 0.966260 -vt 0.415916 0.967749 -vt 0.422575 0.931863 -vt 0.435894 0.931863 -vt 0.695194 0.905610 -vt 0.348647 0.993805 -vt 0.348647 0.967084 -vt 0.374377 0.967084 -vt 0.962928 0.597596 -vt 0.969588 0.561711 -vt 0.982907 0.561711 -vt 0.952707 0.750801 -vt 0.952707 0.777522 -vt 0.926977 0.777522 -vt 0.263570 0.992981 -vt 0.263570 0.966260 -vt 0.289300 0.966260 -vt 0.706223 0.911998 -vt 0.172907 0.982264 -vt 0.179567 0.946378 -vt 0.192885 0.946378 -vt 0.272321 0.459494 -vt 0.172907 0.486216 -vt 0.186226 0.436353 -vt 0.722086 0.885021 -vt 0.697233 0.878341 -vt 0.763990 0.345986 -vt 0.748924 0.341936 -vt 0.766321 0.337260 -vt 0.074644 0.809094 -vt 0.074644 0.860715 -vt 0.069983 0.860715 -vt 0.074644 0.745083 -vt 0.074644 0.796704 -vt 0.069983 0.796704 -vt 0.241540 0.650739 -vt 0.241540 0.702361 -vt 0.236878 0.702361 -vt 0.142427 0.834933 -vt 0.142427 0.886554 -vt 0.137765 0.886554 -vt 0.248290 0.882004 -vt 0.248290 0.933626 -vt 0.243629 0.933626 -vt 0.397399 0.888687 -vt 0.397399 0.837066 -vt 0.402061 0.837066 -vt 0.267110 0.535107 -vt 0.267110 0.586729 -vt 0.262448 0.586729 -vt 0.610621 0.892724 -vt 0.610621 0.944346 -vt 0.605960 0.944346 -vt 0.330880 0.847686 -vt 0.330880 0.796064 -vt 0.335541 0.796064 -vt 0.335541 0.732053 -vt 0.335541 0.783675 -vt 0.330880 0.783675 -vt 0.498554 0.892724 -vt 0.498554 0.944346 -vt 0.493892 0.944346 -vt 0.134826 0.217539 -vt 0.134826 0.191728 -vt 0.160556 0.191728 -vt 0.006175 0.217539 -vt 0.006175 0.191728 -vt 0.031905 0.191728 -vt 0.006175 0.346593 -vt 0.006175 0.320782 -vt 0.031905 0.320782 -vt 0.134826 0.346593 -vt 0.134826 0.320782 -vt 0.160556 0.320782 -vt 0.083366 0.320782 -vt 0.031905 0.217539 -vt 0.031905 0.269160 -vt 0.083366 0.217539 -vt 0.134826 0.269160 -vt 0.492260 0.115700 -vt 0.492260 0.006195 -vt 0.517265 0.012278 -vt 0.080887 0.365065 -vt 0.105892 0.358982 -vt 0.105892 0.468488 -vt 0.666688 0.231290 -vt 0.666688 0.340796 -vt 0.641683 0.334712 -vt 0.604327 0.012278 -vt 0.629333 0.006195 -vt 0.629333 0.115701 -vt 0.492260 0.359269 -vt 0.517265 0.353185 -vt 0.517265 0.462691 -vt 0.591977 0.578281 -vt 0.591977 0.687787 -vt 0.566971 0.681703 -vt 0.554621 0.231290 -vt 0.554621 0.340796 -vt 0.529616 0.334712 -vt 0.068536 0.687499 -vt 0.043531 0.693583 -vt 0.043531 0.584077 -vt 0.554621 0.578281 -vt 0.554621 0.687786 -vt 0.529616 0.681703 -vt 0.641683 0.359269 -vt 0.666688 0.353185 -vt 0.666688 0.462691 -vt 0.629333 0.578281 -vt 0.629333 0.687787 -vt 0.604327 0.681703 -vt 0.442553 0.450345 -vt 0.417548 0.456428 -vt 0.417548 0.346922 -vt 0.454904 0.359269 -vt 0.479909 0.353185 -vt 0.479909 0.462691 -vt 0.454904 0.115700 -vt 0.454904 0.006195 -vt 0.479909 0.012278 -vt 0.591977 0.231290 -vt 0.591977 0.340796 -vt 0.566971 0.334712 -vt 0.006175 0.365065 -vt 0.031181 0.358982 -vt 0.031181 0.468488 -vt 0.109096 0.224455 -vt 0.127932 0.243349 -vt 0.057636 0.224455 -vt 0.038800 0.243349 -vt 0.038800 0.294971 -vt 0.057636 0.313866 -vt 0.109096 0.313866 -vt 0.127932 0.294971 -vt 0.911589 0.908608 -vt 0.911589 0.940871 -vt 0.879430 0.940871 -vt 0.991695 0.709606 -vt 0.965965 0.709606 -vt 0.965965 0.677343 -vt 0.962928 0.882281 -vt 0.988658 0.882281 -vt 0.988658 0.914544 -vt 0.962928 0.642249 -vt 0.962928 0.609985 -vt 0.988658 0.609985 -vt 0.988658 0.869891 -vt 0.962928 0.869891 -vt 0.962928 0.837628 -vt 0.198799 0.753983 -vt 0.198799 0.650739 -vt 0.224528 0.650740 -vt 0.172907 0.766735 -vt 0.210210 0.766372 -vt 0.210210 0.869615 -vt 0.403607 0.631612 -vt 0.403607 0.734855 -vt 0.377878 0.734855 -vt 0.339635 0.616421 -vt 0.339635 0.719664 -vt 0.263570 0.719301 -vt 0.768580 0.677343 -vt 0.768580 0.780586 -vt 0.742850 0.780586 -vt 0.442553 0.520439 -vt 0.442553 0.623682 -vt 0.416823 0.623682 -vt 0.172907 0.727043 -vt 0.352150 0.734855 -vt 0.351986 0.658551 -vt 0.794310 0.677343 -vt 0.794310 0.780586 -vt 0.275828 0.191728 -vt 0.275828 0.294971 -vt 0.240789 0.259481 -vt 0.208629 0.259481 -vt 0.172907 0.294971 -vt 0.172907 0.191728 -vt 0.208629 0.227218 -vt 0.348647 0.922431 -vt 0.380807 0.922432 -vt 0.380807 0.954695 -vt 0.522461 0.963697 -vt 0.522461 0.931434 -vt 0.554621 0.931434 -vt 0.972527 0.170102 -vt 0.972527 0.202365 -vt 0.946797 0.202365 -vt 0.962928 0.792975 -vt 0.988658 0.792975 -vt 0.988658 0.825239 -vt 0.965116 0.006195 -vt 0.990846 0.006195 -vt 0.990846 0.038458 -vt 0.965116 0.050847 -vt 0.990846 0.050847 -vt 0.990846 0.083111 -vt 0.006175 0.809215 -vt 0.006175 0.705972 -vt 0.031904 0.705973 -vt 0.391099 0.191728 -vt 0.391099 0.294971 -vt 0.288178 0.294971 -vt 0.592700 0.700176 -vt 0.592700 0.803419 -vt 0.566971 0.803419 -vt 0.875697 0.109438 -vt 0.839309 0.109438 -vt 0.839309 0.006195 -vt 0.748924 0.318057 -vt 0.748924 0.214814 -vt 0.774654 0.214814 -vt 0.143973 0.410603 -vt 0.143973 0.513847 -vt 0.118243 0.513847 -vt 0.172907 0.535107 -vt 0.250098 0.535107 -vt 0.250098 0.638350 -vt 0.618428 0.725986 -vt 0.057632 0.705973 -vt 0.057632 0.783405 -vt 0.800384 0.214814 -vt 0.800384 0.318057 -vt 0.109096 0.006230 -vt 0.083366 0.035052 -vt 0.057636 0.006230 -vt 0.006175 0.179339 -vt 0.031905 0.092767 -vt 0.038800 0.121624 -vt 0.160557 0.179339 -vt 0.127932 0.121624 -vt 0.134826 0.092767 -vt 0.083366 0.150481 -vt 0.250098 0.150481 -vt 0.275828 0.179304 -vt 0.224367 0.179304 -vt 0.198637 0.092767 -vt 0.172907 0.179339 -vt 0.172907 0.006195 -vt 0.294664 0.063909 -vt 0.327288 0.006195 -vt 0.301558 0.092767 -vt 0.250098 0.035052 -vt 0.725066 0.029280 -vt 0.725066 0.202424 -vt 0.679039 0.179339 -vt 0.442553 0.842558 -vt 0.416823 0.803842 -vt 0.416823 0.726409 -vt 0.398013 0.596137 -vt 0.351986 0.619222 -vt 0.351986 0.446078 -vt 0.057632 0.821605 -vt 0.057632 0.886132 -vt 0.006175 0.886132 -vt 0.926977 0.686790 -vt 0.953615 0.677343 -vt 0.953615 0.728964 -vt 0.950578 0.921513 -vt 0.923940 0.934418 -vt 0.923940 0.882797 -vt 0.442553 0.906568 -vt 0.415916 0.919474 -vt 0.415916 0.867852 -vt 0.926128 0.015642 -vt 0.952766 0.006195 -vt 0.952766 0.057816 -vt 0.045164 0.901979 -vt 0.071801 0.898521 -vt 0.071802 0.950143 -vt 0.290207 0.902249 -vt 0.290207 0.953871 -vt 0.263570 0.950413 -vt 0.593609 0.902172 -vt 0.593609 0.953793 -vt 0.566971 0.944346 -vt 0.923940 0.613332 -vt 0.923940 0.561711 -vt 0.950578 0.574616 -vt 0.923940 0.844597 -vt 0.923940 0.792975 -vt 0.950578 0.805881 -vt 0.481542 0.902172 -vt 0.481542 0.953793 -vt 0.454904 0.944346 -vt 0.329196 0.902249 -vt 0.329196 0.953871 -vt 0.302558 0.950413 -vt 0.006175 0.901980 -vt 0.032813 0.898521 -vt 0.032813 0.950143 -vt 0.737417 0.199255 -vt 0.737417 0.121827 -vt 0.788877 0.121827 -vt 0.888061 0.121827 -vt 0.934447 0.121827 -vt 0.934447 0.173449 -vt 0.838465 0.536932 -vt 0.812735 0.498216 -vt 0.812735 0.420784 -vt 0.172907 0.882368 -vt 0.219293 0.882368 -vt 0.219293 0.933989 -vt 0.630782 0.815809 -vt 0.656513 0.815808 -vt 0.656513 0.919045 -vt 0.913777 0.109438 -vt 0.888047 0.109438 -vt 0.888047 0.006195 -vt 0.891933 0.214814 -vt 0.917663 0.214814 -vt 0.917663 0.318050 -vt 0.885859 0.792975 -vt 0.911589 0.792975 -vt 0.911589 0.896218 -vt 0.391099 0.410603 -vt 0.288178 0.410603 -vt 0.288178 0.307360 -vt 0.879583 0.549321 -vt 0.850815 0.523511 -vt 0.850815 0.471889 -vt 0.742850 0.857502 -vt 0.742850 0.792975 -vt 0.794310 0.792975 -vt 0.885859 0.677343 -vt 0.914626 0.703154 -vt 0.914626 0.754775 -vt 0.554621 0.803419 -vt 0.525854 0.777608 -vt 0.525854 0.725987 -vt 0.873509 0.780586 -vt 0.844741 0.754775 -vt 0.844741 0.703154 -vt 0.339635 0.487519 -vt 0.339635 0.539141 -vt 0.288178 0.539141 -vt 0.454904 0.880335 -vt 0.454904 0.815808 -vt 0.506364 0.815808 -vt 0.339635 0.422992 -vt 0.288178 0.487520 -vt 0.263570 0.886402 -vt 0.263570 0.821875 -vt 0.315027 0.821875 -vt 0.385049 0.910042 -vt 0.348647 0.873554 -vt 0.385049 0.837066 -vt 0.875697 0.158329 -vt 0.875710 0.194803 -vt 0.839309 0.158315 -vt 0.891933 0.523511 -vt 0.891933 0.446078 -vt 0.917663 0.471889 -vt 0.850815 0.318057 -vt 0.850815 0.214814 -vt 0.879583 0.240624 -vt 0.566971 0.880335 -vt 0.566971 0.815808 -vt 0.618432 0.815808 -vt 0.816234 0.626238 -vt 0.816234 0.561711 -vt 0.867694 0.561711 -vt 0.339635 0.603668 -vt 0.288178 0.603668 -vt 0.391099 0.173448 -vt 0.339639 0.173409 -vt 0.365369 0.147638 -vt 0.806661 0.870408 -vt 0.832391 0.844597 -vt 0.832391 0.922029 -vt 0.089013 0.871421 -vt 0.125415 0.834933 -vt 0.125415 0.907909 -vt 0.172907 0.410603 -vt 0.172907 0.307360 -vt 0.275828 0.307360 -vt 0.850815 0.433689 -vt 0.850815 0.330446 -vt 0.879583 0.356257 -vt 0.554621 0.919045 -vt 0.528891 0.919045 -vt 0.528891 0.815808 -vt 0.891933 0.330446 -vt 0.917663 0.330446 -vt 0.917663 0.433682 -vt 0.248290 0.869615 -vt 0.222560 0.869615 -vt 0.222560 0.766372 -vt 0.885859 0.561711 -vt 0.911589 0.561711 -vt 0.911589 0.664954 -vt 0.873509 0.792975 -vt 0.873509 0.896218 -vt 0.844741 0.870408 -vt 0.659546 0.700176 -vt 0.659546 0.803419 -vt 0.630779 0.777608 -vt 0.975446 0.350796 -vt 0.975446 0.386931 -vt 0.968095 0.386931 -vt 0.159440 0.950049 -vt 0.159440 0.986184 -vt 0.152088 0.986184 -vt 0.976354 0.470857 -vt 0.976354 0.506992 -vt 0.969002 0.506992 -vt 0.975446 0.399320 -vt 0.975446 0.435455 -vt 0.968095 0.435455 -vt 0.718027 0.940593 -vt 0.725379 0.940593 -vt 0.725379 0.977094 -vt 0.968095 0.301905 -vt 0.975446 0.301905 -vt 0.975446 0.338407 -vt 0.968095 0.253014 -vt 0.975446 0.253014 -vt 0.975446 0.289516 -vt 0.781838 0.933903 -vt 0.789190 0.933903 -vt 0.789190 0.970405 -vt 0.393157 0.922431 -vt 0.400508 0.922431 -vt 0.400508 0.961148 -vt 0.159439 0.937660 -vt 0.152088 0.937660 -vt 0.152088 0.898943 -vt 0.867079 0.947324 -vt 0.859728 0.947324 -vt 0.859728 0.908608 -vt 0.236878 0.714750 -vt 0.244229 0.714750 -vt 0.244229 0.753466 -vt 0.604327 0.231290 -vt 0.629333 0.225206 -vt 0.629333 0.334712 -vt 0.604327 0.121784 -vt 0.666688 0.012278 -vt 0.666688 0.121784 -vt 0.641683 0.115701 -vt 0.641683 0.225206 -vt 0.080887 0.584077 -vt 0.105892 0.577994 -vt 0.105892 0.687499 -vt 0.080887 0.474571 -vt 0.492260 0.334712 -vt 0.492260 0.225206 -vt 0.517265 0.231290 -vt 0.517265 0.121784 -vt 0.068536 0.468488 -vt 0.043531 0.474571 -vt 0.043531 0.365065 -vt 0.068536 0.577994 -vt 0.554621 0.012278 -vt 0.554621 0.121784 -vt 0.529616 0.115701 -vt 0.529616 0.225206 -vt 0.591977 0.359269 -vt 0.591977 0.468775 -vt 0.566971 0.462691 -vt 0.566971 0.572197 -vt 0.492260 0.578281 -vt 0.517265 0.572197 -vt 0.517265 0.681703 -vt 0.492260 0.468775 -vt 0.006175 0.584077 -vt 0.031181 0.577994 -vt 0.031181 0.687499 -vt 0.006175 0.474571 -vt 0.591977 0.012278 -vt 0.591977 0.121784 -vt 0.566971 0.115701 -vt 0.566971 0.225206 -vt 0.454904 0.334712 -vt 0.454904 0.225206 -vt 0.479909 0.231290 -vt 0.479909 0.121784 -vt 0.454904 0.578281 -vt 0.479909 0.572197 -vt 0.479909 0.681703 -vt 0.454904 0.468775 -vt 0.442553 0.231333 -vt 0.417548 0.237417 -vt 0.417548 0.127911 -vt 0.442553 0.340839 -vt 0.629333 0.359269 -vt 0.629333 0.468775 -vt 0.604327 0.462691 -vt 0.604327 0.572197 -vt 0.641683 0.578281 -vt 0.666688 0.572197 -vt 0.666688 0.681703 -vt 0.641683 0.468775 -vt 0.554621 0.359269 -vt 0.554621 0.468775 -vt 0.529616 0.462691 -vt 0.529616 0.572197 -vt 0.442553 0.675304 -vt 0.416823 0.675304 -vt 0.416823 0.520439 -vt 0.416823 0.468818 -vt 0.118243 0.410603 -vt 0.118243 0.358982 -vt 0.143973 0.565468 -vt 0.118243 0.565468 -vt 0.826958 0.006195 -vt 0.826958 0.161059 -vt 0.801228 0.161059 -vt 0.838465 0.214814 -vt 0.838465 0.369678 -vt 0.812735 0.369678 -vt 0.143973 0.577857 -vt 0.143973 0.732722 -vt 0.118243 0.732722 -vt 0.806661 0.832208 -vt 0.806661 0.677343 -vt 0.832391 0.677343 -vt 0.930014 0.342835 -vt 0.955744 0.342835 -vt 0.955744 0.394457 -vt 0.955744 0.266435 -vt 0.930014 0.266435 -vt 0.930014 0.214814 -vt 0.679039 0.865952 -vt 0.679039 0.792975 -vt 0.730499 0.829477 -vt 0.800384 0.397187 -vt 0.748924 0.433689 -vt 0.748924 0.360713 -vt 0.742850 0.921513 -vt 0.788877 0.006195 -vt 0.736573 0.330446 -vt 0.800384 0.549321 -vt 0.679039 0.446078 -vt 0.506364 0.803419 -vt 0.679039 0.240624 -vt 0.679039 0.780586 -vt 0.679039 0.639143 -vt 0.403607 0.824677 -vt 0.089013 0.959014 -vt 0.318529 0.809486 -vt 0.143973 0.822544 -vt 0.803884 0.639143 -vt 0.968095 0.240624 -vt 0.965057 0.776612 -vt 0.923940 0.664437 -vt 0.816234 0.664438 -vt 0.826639 0.934418 -vt 0.951858 0.106374 -vt 0.231874 0.946378 -vt 0.592702 0.992904 -vt 0.966776 0.121827 -vt 0.070894 0.992712 -vt 0.705677 0.976478 -vt 0.955744 0.545853 -vt 0.950578 0.982693 -vt 0.480634 0.992904 -vt 0.949992 0.470857 -vt 0.801228 0.173449 -vt 0.906067 0.989146 -vt 0.006175 0.965990 -vt 0.657420 0.967319 -vt 0.095713 0.732694 -vt 0.159439 0.886554 -vt 0.762828 0.933903 -vt 0.328288 0.992981 -vt 0.442553 0.967749 -vt 0.374377 0.993805 -vt 0.989566 0.597596 -vt 0.926977 0.750801 -vt 0.289300 0.992981 -vt 0.199545 0.982264 -vt 0.209295 0.422992 -vt 0.235933 0.422992 -vt 0.259002 0.436353 -vt 0.272321 0.486216 -vt 0.259002 0.509357 -vt 0.235933 0.522718 -vt 0.209295 0.522718 -vt 0.186226 0.509357 -vt 0.172907 0.459495 -vt 0.759953 0.330872 -vt 0.763990 0.333210 -vt 0.766321 0.341936 -vt 0.759953 0.348324 -vt 0.755292 0.348324 -vt 0.751255 0.345986 -vt 0.748924 0.337260 -vt 0.751255 0.333210 -vt 0.755292 0.330872 -vt 0.069983 0.809094 -vt 0.069983 0.745083 -vt 0.236878 0.650739 -vt 0.137765 0.834933 -vt 0.243629 0.882004 -vt 0.402061 0.888687 -vt 0.262448 0.535107 -vt 0.605960 0.892724 -vt 0.335541 0.847686 -vt 0.330880 0.732053 -vt 0.493892 0.892724 -vt 0.160556 0.217539 -vt 0.031905 0.346593 -vt 0.160556 0.346593 -vt 0.879430 0.908608 -vt 0.991695 0.677343 -vt 0.962928 0.914544 -vt 0.988658 0.642249 -vt 0.988658 0.837628 -vt 0.224528 0.753983 -vt 0.172907 0.869978 -vt 0.377878 0.631612 -vt 0.263570 0.616058 -vt 0.742850 0.677343 -vt 0.173071 0.650739 -vt 0.240789 0.227218 -vt 0.348647 0.954695 -vt 0.554621 0.963697 -vt 0.946797 0.170102 -vt 0.962928 0.825239 -vt 0.965116 0.038458 -vt 0.965116 0.083111 -vt 0.031904 0.809216 -vt 0.288178 0.191728 -vt 0.566971 0.700176 -vt 0.875697 0.006195 -vt 0.774654 0.318057 -vt 0.172907 0.638350 -vt 0.618428 0.803419 -vt 0.038800 0.063909 -vt 0.006175 0.006195 -vt 0.057636 0.042784 -vt 0.160556 0.006195 -vt 0.109096 0.042784 -vt 0.127932 0.063909 -vt 0.057636 0.142749 -vt 0.109096 0.142749 -vt 0.205532 0.121624 -vt 0.224367 0.142749 -vt 0.275828 0.142749 -vt 0.294664 0.121624 -vt 0.327288 0.179339 -vt 0.224367 0.042784 -vt 0.205532 0.063909 -vt 0.275828 0.042784 -vt 0.679039 0.006195 -vt 0.442553 0.687693 -vt 0.398013 0.422992 -vt 0.006175 0.821605 -vt 0.926977 0.738412 -vt 0.950578 0.869891 -vt 0.442553 0.854947 -vt 0.926128 0.067264 -vt 0.045164 0.953601 -vt 0.263570 0.898791 -vt 0.566971 0.892724 -vt 0.950578 0.626238 -vt 0.950578 0.857502 -vt 0.454904 0.892724 -vt 0.302558 0.898791 -vt 0.006175 0.953601 -vt 0.788877 0.199254 -vt 0.888061 0.173449 -vt 0.838465 0.382068 -vt 0.172907 0.933989 -vt 0.630782 0.919045 -vt 0.913777 0.006195 -vt 0.891933 0.318050 -vt 0.885859 0.896218 -vt 0.391099 0.307360 -vt 0.879583 0.446078 -vt 0.794310 0.857502 -vt 0.885859 0.780586 -vt 0.554621 0.700176 -vt 0.873509 0.677343 -vt 0.506364 0.880335 -vt 0.288178 0.422993 -vt 0.315027 0.886402 -vt 0.875710 0.121827 -vt 0.917663 0.523511 -vt 0.879583 0.292246 -vt 0.618432 0.880335 -vt 0.867694 0.626238 -vt 0.391099 0.121827 -vt 0.806661 0.922029 -vt 0.275828 0.410603 -vt 0.879583 0.407878 -vt 0.554621 0.815809 -vt 0.891933 0.433682 -vt 0.248290 0.766372 -vt 0.885859 0.664954 -vt 0.844741 0.818786 -vt 0.630779 0.725987 -vt 0.968095 0.350796 -vt 0.152088 0.950049 -vt 0.969002 0.470857 -vt 0.968095 0.399320 -vt 0.718027 0.977094 -vt 0.968095 0.338407 -vt 0.968095 0.289516 -vt 0.781838 0.970405 -vt 0.393157 0.961148 -vt 0.159439 0.898943 -vt 0.867079 0.908608 -vt 0.236878 0.753466 -vt 0.604327 0.340796 -vt 0.641683 0.006195 -vt 0.080887 0.693583 -vt 0.517265 0.340796 -vt 0.068536 0.358982 -vt 0.529616 0.006195 -vt 0.566971 0.353185 -vt 0.492260 0.687786 -vt 0.006175 0.693583 -vt 0.566971 0.006195 -vt 0.479909 0.340796 -vt 0.454904 0.687787 -vt 0.442553 0.121827 -vt 0.604327 0.353185 -vt 0.641683 0.687787 -vt 0.529616 0.353185 -vt 0.442553 0.468818 -vt 0.143973 0.358982 -vt 0.801228 0.006195 -vt 0.812735 0.214814 -vt 0.118243 0.577857 -vt 0.832391 0.832208 -vt 0.930014 0.394457 -vt 0.955744 0.214814 -vt 0.730499 0.792975 -vt 0.730499 0.865952 -vt 0.800384 0.360713 -vt 0.800384 0.433689 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.447200 0.000000 0.894400 -vn 0.000000 -1.000000 0.000000 -vn 0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.447200 -0.894400 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.447200 0.000000 -0.894400 -vn -0.351100 0.000000 -0.936300 -vn -0.351100 0.000000 0.936300 -vn -0.351100 0.936300 0.000000 -vn -0.351100 -0.936300 0.000000 -vn 0.508600 0.694700 0.508600 -vn 0.258800 0.000000 -0.965900 -vn -0.186200 0.694700 0.694700 -vn 0.707100 0.000000 -0.707100 -vn -0.694700 0.694700 0.186200 -vn 0.965900 0.000000 -0.258800 -vn 0.186200 0.694700 -0.694700 -vn 0.965900 0.000000 0.258800 -vn -0.508600 0.694700 -0.508600 -vn 0.707100 0.000000 0.707100 -vn -0.186200 0.694700 -0.694700 -vn 0.258800 0.000000 0.965900 -vn 0.508600 0.694700 -0.508600 -vn -0.258800 0.000000 0.965900 -vn 0.694700 0.694700 0.186200 -vn -0.707100 0.000000 0.707100 -vn 0.186200 0.694700 0.694700 -vn -0.965900 0.000000 0.258800 -vn -0.694700 0.694700 -0.186200 -vn -0.965900 0.000000 -0.258800 -vn -0.508600 0.694700 0.508600 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.694700 0.694700 -0.186200 -vn 0.000000 0.242500 -0.970100 -vn 0.970100 0.242500 0.000000 -vn -0.970100 -0.242500 0.000000 -vn 0.000000 -0.242500 0.970100 -vn -0.970100 0.242500 0.000000 -vn 0.970100 -0.242500 0.000000 -vn 0.000000 0.242500 0.970100 -vn 0.000000 -0.242500 -0.970100 -vn -0.013300 0.000000 0.999900 -vn -0.999900 0.000000 -0.013300 -vn 0.999900 0.000000 0.013300 -vn 0.000000 0.694000 -0.719900 -vn 0.000000 -0.002100 -1.000000 -vn -0.999900 0.000000 -0.014000 -vn 1.000000 -0.004800 0.000000 -vn 0.006200 0.000000 1.000000 -vn -0.013300 0.019200 0.999700 -vn 0.005900 0.000000 1.000000 -vn 0.000000 0.006000 1.000000 -vn 0.013300 0.000000 -0.999900 -vn 0.000000 0.707100 0.707100 -vn 0.447800 -0.894200 0.000000 -vn -0.447800 0.894200 0.000000 -vn -0.447200 0.894400 0.000000 -vn -0.832100 0.000000 0.554700 -vn -0.832100 0.000000 -0.554700 -vn 0.000000 0.894400 -0.447200 -vn 0.000000 0.894400 0.447200 -vn 0.000000 -0.894400 0.447200 -vn 0.000000 -0.894400 -0.447200 -vn -0.447200 -0.894400 0.000000 -vn 0.707100 0.707100 0.000000 -vn 0.707400 -0.000300 -0.706800 -vn 0.707400 -0.000300 0.706800 -vn -1.000000 0.004800 0.000000 -vn 0.999900 0.000000 0.014000 -vn 0.000000 -0.006000 1.000000 -vn -0.013300 -0.019200 0.999700 -vn 0.447600 -0.894200 -0.000300 -vn 0.447600 -0.894200 0.000300 -vn 0.447600 -0.894200 -0.000100 -vn 0.447600 -0.894200 0.000100 -vn -0.447600 0.894200 -0.000300 -vn -0.447600 0.894200 -0.000100 -vn -0.447600 0.894200 0.000100 -vn -0.447600 0.894200 0.000300 -vn 0.707600 0.000000 -0.706600 -vn 0.707600 0.000000 0.706600 -s off -f 1/1/1 3/2/1 4/3/1 -f 10/4/2 7/5/2 8/6/2 -f 16/7/3 14/8/3 7/9/3 -f 12/10/4 1/11/4 2/12/4 -f 5/13/5 7/14/5 10/15/5 -f 2/16/6 4/17/6 9/18/6 -f 11/19/7 9/20/7 8/21/7 -f 12/22/8 10/23/8 3/24/8 -f 5/25/9 12/26/9 11/27/9 -f 3/28/10 10/29/10 9/30/10 -f 19/31/11 20/32/11 16/33/11 -f 13/34/3 15/35/3 6/36/3 -f 14/8/3 13/34/3 8/37/3 -f 15/35/3 16/7/3 5/38/3 -f 18/39/3 20/40/3 19/41/3 -f 18/42/12 17/43/12 13/44/12 -f 20/45/13 18/46/13 14/47/13 -f 17/48/14 19/49/14 15/50/14 -f 22/51/2 21/52/2 23/53/2 -f 25/54/9 26/55/9 24/56/9 -f 38/57/5 30/58/5 33/59/5 -f 39/60/5 37/61/5 28/62/5 -f 31/63/5 40/64/5 36/65/5 -f 29/66/5 34/67/5 41/68/5 -f 73/69/7 72/70/7 86/71/7 -f 56/72/15 54/73/15 71/74/15 -f 46/75/16 48/76/16 47/77/16 -f 43/78/7 78/79/7 80/80/7 -f 60/81/17 58/82/17 73/83/17 -f 48/84/18 50/85/18 49/86/18 -f 44/87/7 90/88/7 89/89/7 -f 64/90/19 62/91/19 75/92/19 -f 50/93/20 52/94/20 51/95/20 -f 75/96/7 83/97/7 82/98/7 -f 46/99/21 43/100/21 44/101/21 -f 52/102/22 54/103/22 53/104/22 -f 73/69/7 85/105/7 84/106/7 -f 66/107/23 77/108/23 78/109/23 -f 54/110/24 56/111/24 55/112/24 -f 71/113/7 87/114/7 86/71/7 -f 46/115/25 68/116/25 78/117/25 -f 56/118/26 58/119/26 57/120/26 -f 70/121/7 69/122/7 89/89/7 -f 48/123/27 44/124/27 69/125/27 -f 58/126/28 60/127/28 59/128/28 -f 77/129/7 81/130/7 80/80/7 -f 52/131/29 70/132/29 71/133/29 -f 60/134/30 62/135/30 61/136/30 -f 85/137/28 97/138/28 96/139/28 -f 58/140/31 56/141/31 72/142/31 -f 62/143/32 64/144/32 63/145/32 -f 64/146/33 76/147/33 77/148/33 -f 43/78/7 79/149/7 90/88/7 -f 64/150/34 66/151/34 65/152/34 -f 60/153/35 74/154/35 75/155/35 -f 68/156/36 46/157/36 45/158/36 -f 66/159/37 68/160/37 67/161/37 -f 71/113/7 70/121/7 88/162/7 -f 50/163/38 69/164/38 70/165/38 -f 51/166/5 63/167/5 67/168/5 -f 74/169/7 84/106/7 83/97/7 -f 76/170/7 82/98/7 81/130/7 -f 93/171/7 97/172/7 91/173/7 -f 82/174/34 94/175/34 93/176/34 -f 89/177/20 101/178/20 100/179/20 -f 86/180/26 98/181/26 97/182/26 -f 83/183/32 95/184/32 94/185/32 -f 90/186/18 102/187/18 101/188/18 -f 80/189/36 92/190/36 91/191/36 -f 87/192/24 99/193/24 98/194/24 -f 84/195/30 96/196/30 95/197/30 -f 79/198/16 91/199/16 102/200/16 -f 81/201/37 93/202/37 92/203/37 -f 88/204/22 100/205/22 99/206/22 -f 106/207/7 104/208/7 103/209/7 -f 108/210/7 107/211/7 109/212/7 -f 111/213/7 113/214/7 114/215/7 -f 117/216/7 118/217/7 116/218/7 -f 57/219/7 118/217/7 117/216/7 -f 110/220/7 51/221/7 108/210/7 -f 109/212/7 104/208/7 45/222/7 -f 116/218/7 118/217/7 63/223/7 -f 262/224/39 109/225/39 107/226/39 -f 107/227/40 108/228/40 264/229/40 -f 266/230/41 110/231/41 109/232/41 -f 108/233/42 110/234/42 266/235/42 -f 103/236/39 104/237/39 268/238/39 -f 272/239/43 105/240/43 103/241/43 -f 274/242/42 106/243/42 105/244/42 -f 41/245/44 34/246/44 267/247/44 -f 286/248/40 113/249/40 111/250/40 -f 111/251/45 112/252/45 288/253/45 -f 285/254/46 37/255/46 39/256/46 -f 112/257/41 114/258/41 290/259/41 -f 40/260/46 31/261/46 277/262/46 -f 279/263/44 36/264/44 40/265/44 -f 280/266/45 117/267/45 115/268/45 -f 115/269/43 116/270/43 278/271/43 -f 106/207/7 67/272/7 45/222/7 -f 63/223/7 65/273/7 106/207/7 -f 106/207/7 65/273/7 67/272/7 -f 110/220/7 45/222/7 47/274/7 -f 110/220/7 47/274/7 49/275/7 -f 49/275/7 51/221/7 110/220/7 -f 114/215/7 51/221/7 53/276/7 -f 114/215/7 53/276/7 55/277/7 -f 55/277/7 57/219/7 114/215/7 -f 57/219/7 59/278/7 118/217/7 -f 118/217/7 59/278/7 61/279/7 -f 61/279/7 63/223/7 118/217/7 -f 121/280/47 119/281/47 120/282/47 -f 120/283/48 124/284/48 126/285/48 -f 121/286/49 125/287/49 123/288/49 -f 121/289/5 122/290/5 126/291/5 -f 119/292/7 123/293/7 124/294/7 -f 130/295/3 129/296/3 127/297/3 -f 134/298/50 137/299/50 135/300/50 -f 132/301/1 131/302/1 133/303/1 -f 135/304/51 137/305/51 138/306/51 -f 129/307/5 133/308/5 131/309/5 -f 134/310/7 130/311/7 128/312/7 -f 129/296/52 130/295/52 135/313/52 -f 133/303/53 138/314/53 137/315/53 -f 129/307/5 136/316/5 138/317/5 -f 131/318/54 132/319/54 123/320/54 -f 124/321/55 123/320/55 132/319/55 -f 128/322/56 127/323/56 126/324/56 -f 126/324/57 127/323/57 131/318/57 -f 140/325/58 139/326/58 141/327/58 -f 145/328/47 143/329/47 144/330/47 -f 142/331/5 141/332/5 145/333/5 -f 140/334/7 144/335/7 143/336/7 -f 142/337/48 146/338/48 144/339/48 -f 139/340/49 143/341/49 145/342/49 -f 150/343/3 149/344/3 147/345/3 -f 154/346/2 153/347/2 149/348/2 -f 152/349/1 151/350/1 153/351/1 -f 148/352/59 156/353/59 157/354/59 -f 149/355/5 153/356/5 151/357/5 -f 154/358/7 150/359/7 148/360/7 -f 156/361/9 155/362/9 158/363/9 -f 151/350/1 152/349/1 157/364/1 -f 147/345/3 155/365/3 156/366/3 -f 151/357/5 158/367/5 155/368/5 -f 207/369/60 167/370/60 208/371/60 -f 161/372/8 164/373/8 163/374/8 -f 159/375/8 171/376/8 170/377/8 -f 173/378/8 159/375/8 161/372/8 -f 183/379/61 211/380/61 212/381/61 -f 180/382/62 178/383/62 177/384/62 -f 187/385/62 175/386/62 186/387/62 -f 189/388/62 177/384/62 175/386/62 -f 177/389/2 178/390/2 162/391/2 -f 177/392/7 193/393/7 194/394/7 -f 160/395/9 176/396/9 175/397/9 -f 211/398/3 215/399/3 216/400/3 -f 168/401/37 169/402/37 185/403/37 -f 186/404/36 185/405/36 169/406/36 -f 170/407/16 171/408/16 187/409/16 -f 171/410/18 172/411/18 188/412/18 -f 172/413/20 173/414/20 189/415/20 -f 174/416/22 190/417/22 189/418/22 -f 163/419/24 179/420/24 190/421/24 -f 164/422/26 180/423/26 179/424/26 -f 165/425/28 181/426/28 180/427/28 -f 166/428/30 182/429/30 181/430/30 -f 167/431/32 183/432/32 182/433/32 -f 167/434/34 168/435/34 184/436/34 -f 194/437/3 193/438/3 191/439/3 -f 175/440/63 194/441/63 192/442/63 -f 159/443/5 192/444/5 191/445/5 -f 161/446/64 191/447/64 193/448/64 -f 198/449/3 197/450/3 195/451/3 -f 202/452/2 201/453/2 197/454/2 -f 200/455/1 199/456/1 201/457/1 -f 196/458/9 195/459/9 199/460/9 -f 197/461/5 201/462/5 199/463/5 -f 198/464/65 204/465/65 205/466/65 -f 206/467/9 210/468/9 207/469/9 -f 202/470/6 205/471/6 206/472/6 -f 196/473/62 203/474/62 204/475/62 -f 200/476/66 206/477/66 203/478/66 -f 209/479/1 213/480/1 214/481/1 -f 204/482/2 208/483/2 209/484/2 -f 205/485/1 209/479/1 210/486/1 -f 203/487/3 207/488/3 208/489/3 -f 214/490/7 211/491/7 176/492/7 -f 295/493/5 160/494/5 207/495/5 -f 285/496/7 210/497/7 295/498/7 -f 226/499/67 224/500/67 215/501/67 -f 214/502/9 218/503/9 215/504/9 -f 212/505/2 216/506/2 217/507/2 -f 213/480/1 217/508/1 218/509/1 -f 208/510/5 162/511/5 296/512/5 -f 296/513/7 209/514/7 263/515/7 -f 212/516/7 213/517/7 178/518/7 -f 221/519/7 222/520/7 220/521/7 -f 225/522/8 226/523/8 218/524/8 -f 221/525/1 226/526/1 225/527/1 -f 220/528/3 223/529/3 224/530/3 -f 219/531/9 224/532/9 226/533/9 -f 222/534/2 225/535/2 223/536/2 -f 223/537/68 225/538/68 217/539/68 -f 224/540/69 223/541/69 216/542/69 -f 234/543/7 242/544/7 236/545/7 -f 232/546/7 240/547/7 241/548/7 -f 230/549/7 238/550/7 239/551/7 -f 227/552/7 235/553/7 237/554/7 -f 245/555/70 243/556/70 227/557/70 -f 247/558/70 246/559/70 230/560/70 -f 249/561/70 248/562/70 232/563/70 -f 244/564/70 250/565/70 234/566/70 -f 253/567/1 251/568/1 243/569/1 -f 255/570/1 254/571/1 246/572/1 -f 257/573/1 256/574/1 248/575/1 -f 252/576/1 258/577/1 250/578/1 -f 263/579/42 265/580/42 42/581/42 -f 264/582/42 266/235/42 265/580/42 -f 42/583/41 265/584/41 261/585/41 -f 265/584/41 266/230/41 262/586/41 -f 259/587/40 263/588/40 33/589/40 -f 260/590/40 264/229/40 263/588/40 -f 38/591/39 261/592/39 259/593/39 -f 261/592/39 262/224/39 260/594/39 -f 274/595/44 268/596/44 104/597/44 -f 273/598/44 267/247/44 268/596/44 -f 41/599/42 273/600/42 271/601/42 -f 273/600/42 274/242/42 272/602/42 -f 35/603/43 271/604/43 269/605/43 -f 271/604/43 272/239/43 270/606/43 -f 269/607/39 267/608/39 34/609/39 -f 270/610/39 268/238/39 267/608/39 -f 281/611/43 277/612/43 31/613/43 -f 282/614/43 278/271/43 277/612/43 -f 36/615/45 279/616/45 281/617/45 -f 279/616/45 280/266/45 282/618/45 -f 117/619/44 280/620/44 276/621/44 -f 280/620/44 279/263/44 275/622/44 -f 276/623/46 278/624/46 116/625/46 -f 275/626/46 277/262/46 278/624/46 -f 287/627/41 289/628/41 39/629/41 -f 288/630/41 290/259/41 289/628/41 -f 113/631/46 286/632/46 290/633/46 -f 286/632/46 285/254/46 289/634/46 -f 283/635/45 287/636/45 32/637/45 -f 284/638/45 288/253/45 287/636/45 -f 37/639/40 285/640/40 283/641/40 -f 285/640/40 286/248/40 284/642/40 -f 275/643/7 279/644/7 128/312/7 -f 134/310/7 132/645/7 287/646/7 -f 154/358/7 152/647/7 265/648/7 -f 267/649/7 273/650/7 148/360/7 -f 262/651/7 268/652/7 274/653/7 -f 272/654/7 278/655/7 276/656/7 -f 290/657/7 276/658/7 280/659/7 -f 286/660/7 264/661/7 266/662/7 -f 273/663/7 271/664/7 291/665/7 -f 277/666/7 275/667/7 293/668/7 -f 178/669/71 213/670/71 296/671/71 -f 295/672/72 214/673/72 176/674/72 -f 2/675/1 1/1/1 4/3/1 -f 9/676/2 10/4/2 8/6/2 -f 5/38/3 16/7/3 7/9/3 -f 11/677/4 12/10/4 2/12/4 -f 12/678/5 5/13/5 10/15/5 -f 11/679/6 2/16/6 9/18/6 -f 6/680/7 11/19/7 8/21/7 -f 1/681/8 12/22/8 3/24/8 -f 6/682/9 5/25/9 11/27/9 -f 4/683/10 3/28/10 9/30/10 -f 15/684/11 19/31/11 16/33/11 -f 8/37/3 13/34/3 6/36/3 -f 7/9/3 14/8/3 8/37/3 -f 6/36/3 15/35/3 5/38/3 -f 17/685/3 18/39/3 19/41/3 -f 14/686/12 18/42/12 13/44/12 -f 16/687/13 20/45/13 14/47/13 -f 13/688/14 17/48/14 15/50/14 -f 42/689/5 38/57/5 33/59/5 -f 32/690/5 39/60/5 28/62/5 -f 27/691/5 31/63/5 36/65/5 -f 35/692/5 29/66/5 41/68/5 -f 85/105/7 73/69/7 86/71/7 -f 72/693/15 56/72/15 71/74/15 -f 45/694/16 46/75/16 47/77/16 -f 79/149/7 43/78/7 80/80/7 -f 74/695/17 60/81/17 73/83/17 -f 47/696/18 48/84/18 49/86/18 -f 69/122/7 44/87/7 89/89/7 -f 76/697/19 64/90/19 75/92/19 -f 49/698/20 50/93/20 51/95/20 -f 76/170/7 75/96/7 82/98/7 -f 48/699/21 46/99/21 44/101/21 -f 51/700/22 52/102/22 53/104/22 -f 74/169/7 73/69/7 84/106/7 -f 68/701/23 66/107/23 78/109/23 -f 53/702/24 54/110/24 55/112/24 -f 72/70/7 71/113/7 86/71/7 -f 43/703/25 46/115/25 78/117/25 -f 55/704/26 56/118/26 57/120/26 -f 88/162/7 70/121/7 89/89/7 -f 50/705/27 48/123/27 69/125/27 -f 57/706/28 58/126/28 59/128/28 -f 78/79/7 77/129/7 80/80/7 -f 54/707/29 52/131/29 71/133/29 -f 59/708/30 60/134/30 61/136/30 -f 84/709/28 85/137/28 96/139/28 -f 73/710/31 58/140/31 72/142/31 -f 61/711/32 62/143/32 63/145/32 -f 66/712/33 64/146/33 77/148/33 -f 44/87/7 43/78/7 90/88/7 -f 63/713/34 64/150/34 65/152/34 -f 62/714/35 60/153/35 75/155/35 -f 67/715/36 68/156/36 45/158/36 -f 65/716/37 66/159/37 67/161/37 -f 87/114/7 71/113/7 88/162/7 -f 52/717/38 50/163/38 70/165/38 -f 67/168/5 45/718/5 47/719/5 -f 47/719/5 49/720/5 67/168/5 -f 51/166/5 53/721/5 55/722/5 -f 55/722/5 57/723/5 59/724/5 -f 59/724/5 61/725/5 63/167/5 -f 63/167/5 65/726/5 67/168/5 -f 67/168/5 49/720/5 51/166/5 -f 51/166/5 55/722/5 59/724/5 -f 59/724/5 63/167/5 51/166/5 -f 75/96/7 74/169/7 83/97/7 -f 77/129/7 76/170/7 81/130/7 -f 101/727/7 102/728/7 91/173/7 -f 91/173/7 92/729/7 93/171/7 -f 93/171/7 94/730/7 97/172/7 -f 95/731/7 96/732/7 97/172/7 -f 97/172/7 98/733/7 99/734/7 -f 99/734/7 100/735/7 97/172/7 -f 101/727/7 91/173/7 97/172/7 -f 94/730/7 95/731/7 97/172/7 -f 97/172/7 100/735/7 101/727/7 -f 81/736/34 82/174/34 93/176/34 -f 88/737/20 89/177/20 100/179/20 -f 85/738/26 86/180/26 97/182/26 -f 82/739/32 83/183/32 94/185/32 -f 89/740/18 90/186/18 101/188/18 -f 79/741/36 80/189/36 91/191/36 -f 86/742/24 87/192/24 98/194/24 -f 83/743/30 84/195/30 95/197/30 -f 90/744/16 79/198/16 102/200/16 -f 80/745/37 81/201/37 92/203/37 -f 87/746/22 88/204/22 99/206/22 -f 105/747/7 106/207/7 103/209/7 -f 110/220/7 108/210/7 109/212/7 -f 112/748/7 111/213/7 114/215/7 -f 115/749/7 117/216/7 116/218/7 -f 117/216/7 112/748/7 57/219/7 -f 114/215/7 57/219/7 112/748/7 -f 113/214/7 108/210/7 51/221/7 -f 51/221/7 114/215/7 113/214/7 -f 106/207/7 45/222/7 104/208/7 -f 110/220/7 109/212/7 45/222/7 -f 63/223/7 106/207/7 105/747/7 -f 105/747/7 116/218/7 63/223/7 -f 260/594/39 262/224/39 107/226/39 -f 260/590/40 107/227/40 264/229/40 -f 262/586/41 266/230/41 109/232/41 -f 264/582/42 108/233/42 266/235/42 -f 270/610/39 103/236/39 268/238/39 -f 270/606/43 272/239/43 103/241/43 -f 272/602/42 274/242/42 105/244/42 -f 273/598/44 41/245/44 267/247/44 -f 284/642/40 286/248/40 111/250/40 -f 284/638/45 111/251/45 288/253/45 -f 289/634/46 285/254/46 39/256/46 -f 288/630/41 112/257/41 290/259/41 -f 275/626/46 40/260/46 277/262/46 -f 275/622/44 279/263/44 40/265/44 -f 282/618/45 280/266/45 115/268/45 -f 282/614/43 115/269/43 278/271/43 -f 122/750/47 121/280/47 120/282/47 -f 122/751/48 120/283/48 126/285/48 -f 119/752/49 121/286/49 123/288/49 -f 125/753/5 121/289/5 126/291/5 -f 120/754/7 119/292/7 124/294/7 -f 128/755/3 130/295/3 127/297/3 -f 130/756/50 134/298/50 135/300/50 -f 134/757/1 132/301/1 133/303/1 -f 136/758/51 135/304/51 138/306/51 -f 127/759/5 129/307/5 131/309/5 -f 132/645/7 134/310/7 128/312/7 -f 136/760/73 129/296/73 135/313/73 -f 134/757/74 133/303/74 137/315/74 -f 133/308/5 129/307/5 138/317/5 -f 125/761/54 131/318/54 123/320/54 -f 128/322/75 124/321/75 132/319/75 -f 124/321/56 128/322/56 126/324/56 -f 125/761/76 126/324/76 131/318/76 -f 142/762/58 140/325/58 141/327/58 -f 146/763/47 145/328/47 144/330/47 -f 146/764/5 142/331/5 145/333/5 -f 139/765/7 140/334/7 143/336/7 -f 140/766/48 142/337/48 144/339/48 -f 141/767/49 139/340/49 145/342/49 -f 148/768/3 150/343/3 147/345/3 -f 150/769/2 154/346/2 149/348/2 -f 154/770/1 152/349/1 153/351/1 -f 152/771/59 148/352/59 157/354/59 -f 147/772/5 149/355/5 151/357/5 -f 152/647/7 154/358/7 148/360/7 -f 157/773/9 156/361/9 158/363/9 -f 158/774/1 151/350/1 157/364/1 -f 148/768/3 147/345/3 156/366/3 -f 147/772/5 151/357/5 155/368/5 -f 165/775/8 162/776/8 166/777/8 -f 207/369/77 160/778/77 168/779/77 -f 166/777/78 162/776/78 208/371/78 -f 160/778/8 169/780/8 168/779/8 -f 166/777/79 208/371/79 167/370/79 -f 207/369/80 168/779/80 167/370/80 -f 174/781/8 173/378/8 161/372/8 -f 161/372/8 162/776/8 164/373/8 -f 163/374/8 174/781/8 161/372/8 -f 162/776/8 165/775/8 164/373/8 -f 170/377/8 169/780/8 160/778/8 -f 159/375/8 173/378/8 172/782/8 -f 170/377/8 160/778/8 159/375/8 -f 159/375/8 172/782/8 171/376/8 -f 178/383/62 181/783/62 182/784/62 -f 184/785/62 185/786/62 176/787/62 -f 178/383/81 182/784/81 212/381/81 -f 183/379/82 184/785/82 211/380/82 -f 212/381/83 182/784/83 183/379/83 -f 184/785/84 176/787/84 211/380/84 -f 177/384/62 189/388/62 190/788/62 -f 180/382/62 181/783/62 178/383/62 -f 177/384/62 190/788/62 179/789/62 -f 179/789/62 180/382/62 177/384/62 -f 176/787/62 185/786/62 186/387/62 -f 188/790/62 189/388/62 175/386/62 -f 176/787/62 186/387/62 175/386/62 -f 187/385/62 188/790/62 175/386/62 -f 161/791/2 177/389/2 162/391/2 -f 175/792/7 177/392/7 194/394/7 -f 159/793/9 160/395/9 175/397/9 -f 212/794/3 211/398/3 216/400/3 -f 184/795/37 168/401/37 185/403/37 -f 170/796/36 186/404/36 169/406/36 -f 186/797/16 170/407/16 187/409/16 -f 187/798/18 171/410/18 188/412/18 -f 188/799/20 172/413/20 189/415/20 -f 173/800/22 174/416/22 189/418/22 -f 174/801/24 163/419/24 190/421/24 -f 163/802/26 164/422/26 179/424/26 -f 164/803/28 165/425/28 180/427/28 -f 165/804/30 166/428/30 181/430/30 -f 166/805/32 167/431/32 182/433/32 -f 183/806/34 167/434/34 184/436/34 -f 192/807/3 194/437/3 191/439/3 -f 159/808/63 175/440/63 192/442/63 -f 161/809/5 159/443/5 191/445/5 -f 177/810/64 161/446/64 193/448/64 -f 196/811/3 198/449/3 195/451/3 -f 198/812/2 202/452/2 197/454/2 -f 202/813/1 200/455/1 201/457/1 -f 200/814/9 196/458/9 199/460/9 -f 195/815/5 197/461/5 199/463/5 -f 202/816/65 198/464/65 205/466/65 -f 203/817/9 206/467/9 207/469/9 -f 200/818/6 202/470/6 206/472/6 -f 198/819/62 196/473/62 204/475/62 -f 196/820/66 200/476/66 203/478/66 -f 210/486/1 209/479/1 214/481/1 -f 205/821/2 204/482/2 209/484/2 -f 206/822/1 205/485/1 210/486/1 -f 204/823/3 203/487/3 208/489/3 -f 210/824/5 295/493/5 207/495/5 -f 289/825/7 285/496/7 295/498/7 -f 218/826/67 226/499/67 215/501/67 -f 211/827/9 214/502/9 215/504/9 -f 213/828/2 212/505/2 217/507/2 -f 214/481/1 213/480/1 218/509/1 -f 209/829/5 208/510/5 296/512/5 -f 265/830/7 296/513/7 263/515/7 -f 219/831/7 221/519/7 220/521/7 -f 217/832/8 225/522/8 218/524/8 -f 222/833/1 221/525/1 225/527/1 -f 219/834/3 220/528/3 224/530/3 -f 221/835/9 219/531/9 226/533/9 -f 220/836/2 222/534/2 223/536/2 -f 216/837/68 223/537/68 217/539/68 -f 215/838/69 224/540/69 216/542/69 -f 228/839/7 234/543/7 236/545/7 -f 233/840/7 232/546/7 241/548/7 -f 231/841/7 230/549/7 239/551/7 -f 229/842/7 227/552/7 237/554/7 -f 229/843/70 245/555/70 227/557/70 -f 231/844/70 247/558/70 230/560/70 -f 233/845/70 249/561/70 232/563/70 -f 228/846/70 244/564/70 234/566/70 -f 245/847/1 253/567/1 243/569/1 -f 247/848/1 255/570/1 246/572/1 -f 249/849/1 257/573/1 248/575/1 -f 244/850/1 252/576/1 250/578/1 -f 33/851/42 263/579/42 42/581/42 -f 263/579/42 264/582/42 265/580/42 -f 38/852/41 42/583/41 261/585/41 -f 261/585/41 265/584/41 262/586/41 -f 30/853/40 259/587/40 33/589/40 -f 259/587/40 260/590/40 263/588/40 -f 30/854/39 38/591/39 259/593/39 -f 259/593/39 261/592/39 260/594/39 -f 106/855/44 274/595/44 104/597/44 -f 274/595/44 273/598/44 268/596/44 -f 35/856/42 41/599/42 271/601/42 -f 271/601/42 273/600/42 272/602/42 -f 29/857/43 35/603/43 269/605/43 -f 269/605/43 271/604/43 270/606/43 -f 29/858/39 269/607/39 34/609/39 -f 269/607/39 270/610/39 267/608/39 -f 27/859/43 281/611/43 31/613/43 -f 281/611/43 282/614/43 277/612/43 -f 27/860/45 36/615/45 281/617/45 -f 281/617/45 279/616/45 282/618/45 -f 118/861/44 117/619/44 276/621/44 -f 276/621/44 280/620/44 275/622/44 -f 118/862/46 276/623/46 116/625/46 -f 276/623/46 275/626/46 278/624/46 -f 32/863/41 287/627/41 39/629/41 -f 287/627/41 288/630/41 289/628/41 -f 114/864/46 113/631/46 290/633/46 -f 290/633/46 286/632/46 289/634/46 -f 28/865/45 283/635/45 32/637/45 -f 283/635/45 284/638/45 287/636/45 -f 28/866/40 37/639/40 283/641/40 -f 283/641/40 285/640/40 284/642/40 -f 130/311/7 275/643/7 128/312/7 -f 289/867/7 134/310/7 287/646/7 -f 261/868/7 154/358/7 265/648/7 -f 150/359/7 267/649/7 148/360/7 -f 266/869/7 262/651/7 274/653/7 -f 274/870/7 272/654/7 276/656/7 -f 288/871/7 290/657/7 280/659/7 -f 290/872/7 286/660/7 266/662/7 -f 292/873/7 273/663/7 291/665/7 -f 294/874/7 277/666/7 293/668/7 -f 209/875/18 296/671/18 213/670/18 -f 162/876/85 178/669/85 296/671/85 -f 176/674/86 160/877/86 295/672/86 -f 295/672/24 210/878/24 214/673/24 diff --git a/src/main/resources/assets/hbm/models/effect/skeleton.obj b/src/main/resources/assets/hbm/models/effect/skeleton.obj new file mode 100644 index 000000000..6e5c28f3c --- /dev/null +++ b/src/main/resources/assets/hbm/models/effect/skeleton.obj @@ -0,0 +1,294 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o SkullVillager +v -0.250000 0.312500 0.250000 +v -0.250000 -0.312500 -0.250000 +v -0.250000 -0.312500 0.250000 +v -0.250000 0.312500 -0.250000 +v 0.250000 -0.312500 -0.250000 +v 0.250000 0.312500 -0.250000 +v 0.250000 -0.312500 0.250000 +v 0.250000 0.312500 0.250000 +v -0.250000 -0.312500 -0.250000 +v -0.250000 0.312500 0.250000 +v -0.250000 -0.312500 0.250000 +v 0.250000 -0.312500 -0.250000 +v -0.250000 0.312500 -0.250000 +v 0.250000 -0.312500 0.250000 +v 0.250000 0.312500 -0.250000 +v 0.250000 0.312500 0.250000 +vt 0.500000 0.875000 +vt 0.375000 0.718750 +vt 0.500000 0.718750 +vt 0.375000 0.875000 +vt 0.250000 0.718750 +vt 0.250000 0.875000 +vt 0.125000 0.718750 +vt 0.125000 0.875000 +vt 0.000000 0.718750 +vt 0.250000 0.875000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.375000 0.718750 +vt 0.500000 0.875000 +vt 0.500000 0.718750 +vt 0.250000 0.718750 +vt 0.375000 0.875000 +vt 0.125000 0.718750 +vt 0.250000 0.875000 +vt 0.000000 0.718750 +vt 0.125000 0.875000 +vt 0.375000 1.000000 +vt 0.250000 0.875000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.000000 0.875000 +vt 0.375000 0.875000 +vt 0.125000 1.000000 +vt 0.000000 0.875000 +vt 0.375000 0.875000 +vt 0.125000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 2/2/2 +f 6/6/3 7/7/3 5/5/3 +f 8/8/4 3/9/4 7/7/4 +f 5/10/5 3/11/5 2/12/5 +f 4/13/6 8/8/6 6/6/6 +f 9/14/3 10/15/3 11/16/3 +f 12/17/4 13/18/4 9/14/4 +f 14/19/1 15/20/1 12/17/1 +f 11/21/2 16/22/2 14/19/2 +f 11/23/6 12/24/6 9/25/6 +f 16/22/5 13/26/5 15/20/5 +f 1/1/1 4/4/1 2/2/1 +f 4/4/2 6/6/2 5/5/2 +f 6/6/3 8/8/3 7/7/3 +f 8/8/4 1/27/4 3/9/4 +f 5/10/5 7/28/5 3/11/5 +f 4/13/6 1/29/6 8/8/6 +f 9/14/3 13/18/3 10/15/3 +f 12/17/4 15/20/4 13/18/4 +f 14/19/1 16/22/1 15/20/1 +f 11/21/2 10/30/2 16/22/2 +f 11/23/6 14/31/6 12/24/6 +f 16/22/5 10/32/5 13/26/5 +o Limb +v -0.062500 0.375000 0.062500 +v -0.062500 -0.375000 -0.062500 +v -0.062500 -0.375000 0.062500 +v -0.062500 0.375000 -0.062500 +v 0.062500 -0.375000 -0.062500 +v 0.062500 0.375000 -0.062500 +v 0.062500 -0.375000 0.062500 +v 0.062500 0.375000 0.062500 +vt 0.125000 0.437500 +vt 0.093750 0.062500 +vt 0.125000 0.062500 +vt 0.093750 0.437500 +vt 0.062500 0.062500 +vt 0.062500 0.437500 +vt 0.031250 0.062500 +vt 0.031250 0.437500 +vt 0.000000 0.062500 +vt 0.062500 0.437500 +vt 0.093750 0.500000 +vt 0.062500 0.500000 +vt 0.062500 0.500000 +vt -0.000000 0.437500 +vt 0.093750 0.437500 +vt 0.031250 0.500000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 17/33/7 18/34/7 19/35/7 +f 20/36/8 21/37/8 18/34/8 +f 22/38/9 23/39/9 21/37/9 +f 24/40/10 19/41/10 23/39/10 +f 21/42/11 19/43/11 18/44/11 +f 20/45/12 24/40/12 22/38/12 +f 17/33/7 20/36/7 18/34/7 +f 20/36/8 22/38/8 21/37/8 +f 22/38/9 24/40/9 23/39/9 +f 24/40/10 17/46/10 19/41/10 +f 21/42/11 23/47/11 19/43/11 +f 20/45/12 17/48/12 24/40/12 +o Skull +v -0.250000 0.250000 0.250000 +v -0.250000 -0.250000 -0.250000 +v -0.250000 -0.250000 0.250000 +v -0.250000 0.250000 -0.250000 +v 0.250000 -0.250000 -0.250000 +v 0.250000 0.250000 -0.250000 +v 0.250000 -0.250000 0.250000 +v 0.250000 0.250000 0.250000 +v -0.250000 -0.250000 -0.250000 +v -0.250000 0.250000 0.250000 +v -0.250000 -0.250000 0.250000 +v 0.250000 -0.250000 -0.250000 +v -0.250000 0.250000 -0.250000 +v 0.250000 -0.250000 0.250000 +v 0.250000 0.250000 -0.250000 +v 0.250000 0.250000 0.250000 +vt 0.500000 0.750000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.375000 0.750000 +vt 0.250000 0.500000 +vt 0.250000 0.750000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt -0.000000 0.500000 +vt 0.250000 0.750000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.375000 0.500000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vt 0.250000 0.500000 +vt 0.375000 0.750000 +vt 0.125000 0.500000 +vt 0.250000 0.750000 +vt -0.000000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt -0.000000 0.750000 +vt 0.375000 0.750000 +vt 0.125000 1.000000 +vt -0.000000 0.750000 +vt 0.375000 0.750000 +vt 0.125000 1.000000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 25/49/13 26/50/13 27/51/13 +f 28/52/14 29/53/14 26/50/14 +f 30/54/15 31/55/15 29/53/15 +f 32/56/16 27/57/16 31/55/16 +f 29/58/17 27/59/17 26/60/17 +f 28/61/18 32/56/18 30/54/18 +f 33/62/15 34/63/15 35/64/15 +f 36/65/16 37/66/16 33/62/16 +f 38/67/13 39/68/13 36/65/13 +f 35/69/14 40/70/14 38/67/14 +f 35/71/18 36/72/18 33/73/18 +f 40/70/17 37/74/17 39/68/17 +f 25/49/13 28/52/13 26/50/13 +f 28/52/14 30/54/14 29/53/14 +f 30/54/15 32/56/15 31/55/15 +f 32/56/16 25/75/16 27/57/16 +f 29/58/17 31/76/17 27/59/17 +f 28/61/18 25/77/18 32/56/18 +f 33/62/15 37/66/15 34/63/15 +f 36/65/16 39/68/16 37/66/16 +f 38/67/13 40/70/13 39/68/13 +f 35/69/14 34/78/14 40/70/14 +f 35/71/18 38/79/18 36/72/18 +f 40/70/17 34/80/17 37/74/17 +o Torso +v 0.125000 -0.375000 -0.250000 +v 0.125000 0.375000 0.250000 +v 0.125000 -0.375000 0.250000 +v -0.125000 -0.375000 -0.250000 +v 0.125000 0.375000 -0.250000 +v -0.125000 -0.375000 0.250000 +v -0.125000 0.375000 -0.250000 +v -0.125000 0.375000 0.250000 +v 0.125000 0.375000 0.250000 +v 0.125000 -0.375000 -0.250000 +v 0.125000 -0.375000 0.250000 +v 0.125000 0.375000 -0.250000 +v -0.125000 -0.375000 -0.250000 +v -0.125000 0.375000 -0.250000 +v -0.125000 -0.375000 0.250000 +v -0.125000 0.375000 0.250000 +vt 0.312500 0.000000 +vt 0.437500 0.375000 +vt 0.437500 0.000000 +vt 0.500000 0.000000 +vt 0.437500 0.375000 +vt 0.437500 0.000000 +vt 0.625000 0.000000 +vt 0.500000 0.375000 +vt 0.312500 0.000000 +vt 0.250000 0.375000 +vt 0.250000 0.000000 +vt 0.437500 0.500000 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.312500 0.500000 +vt 0.437500 0.500000 +vt 0.437500 0.375000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.437500 0.375000 +vt 0.500000 0.000000 +vt 0.437500 0.000000 +vt 0.500000 0.375000 +vt 0.625000 0.000000 +vt 0.250000 0.375000 +vt 0.312500 0.000000 +vt 0.250000 0.000000 +vt 0.562500 0.375000 +vt 0.437500 0.500000 +vt 0.562500 0.500000 +vt 0.312500 0.500000 +vt 0.437500 0.500000 +vt 0.312500 0.375000 +vt 0.625000 0.375000 +vt 0.312500 0.375000 +vt 0.437500 0.375000 +vt 0.312500 0.375000 +vt 0.625000 0.375000 +vt 0.312500 0.375000 +vt 0.437500 0.375000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 41/81/19 42/82/19 43/83/19 +f 44/84/20 45/85/20 41/86/20 +f 46/87/21 47/88/21 44/84/21 +f 43/89/22 48/90/22 46/91/22 +f 43/92/23 44/93/23 41/94/23 +f 48/95/24 45/85/24 47/96/24 +f 49/97/21 50/98/21 51/99/21 +f 52/100/22 53/101/22 50/102/22 +f 54/103/19 55/104/19 53/101/19 +f 56/105/20 51/106/20 55/107/20 +f 53/108/24 51/109/24 50/110/24 +f 52/100/23 56/111/23 54/112/23 +f 41/81/19 45/113/19 42/82/19 +f 44/84/20 47/88/20 45/85/20 +f 46/87/21 48/114/21 47/88/21 +f 43/89/22 42/115/22 48/90/22 +f 43/92/23 46/116/23 44/93/23 +f 48/95/24 42/115/24 45/85/24 +f 49/97/21 52/117/21 50/98/21 +f 52/100/22 54/103/22 53/101/22 +f 54/103/19 56/118/19 55/104/19 +f 56/105/20 49/119/20 51/106/20 +f 53/108/24 55/120/24 51/109/24 +f 52/100/23 49/119/23 56/111/23 diff --git a/src/main/resources/assets/hbm/models/error.obj b/src/main/resources/assets/hbm/models/error.obj deleted file mode 100644 index e948f3e60..000000000 --- a/src/main/resources/assets/hbm/models/error.obj +++ /dev/null @@ -1,2909 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'error.blend' -# www.blender.org -o Text_Mesh -v -0.125000 -0.000000 -0.643408 -v -0.125000 -0.000000 -0.745792 -v -0.125000 0.234222 -0.745792 -v -0.125000 0.247672 -0.751697 -v -0.125000 0.259659 -0.758142 -v -0.125000 0.270238 -0.765055 -v -0.125000 0.279466 -0.772362 -v -0.125000 0.287399 -0.779991 -v -0.125000 0.294092 -0.787868 -v -0.125000 0.299602 -0.795920 -v -0.125000 0.303984 -0.804075 -v -0.125000 0.307295 -0.812259 -v -0.125000 0.309591 -0.820399 -v -0.125000 0.310927 -0.828422 -v -0.125000 0.311360 -0.836255 -v -0.125000 0.311317 -0.840189 -v -0.125000 0.311185 -0.843943 -v -0.125000 0.310966 -0.847541 -v -0.125000 0.310659 -0.851008 -v -0.125000 0.310265 -0.854367 -v -0.125000 0.309783 -0.857644 -v -0.125000 0.309213 -0.860862 -v -0.125000 0.308555 -0.864046 -v -0.125000 0.307810 -0.867220 -v -0.125000 0.306978 -0.870409 -v -0.125000 0.306057 -0.873637 -v -0.125000 0.305049 -0.876928 -v -0.125000 0.394109 -0.895161 -v -0.125000 0.395306 -0.892161 -v -0.125000 0.396437 -0.889103 -v -0.125000 0.397495 -0.885957 -v -0.125000 0.398473 -0.882694 -v -0.125000 0.399363 -0.879286 -v -0.125000 0.400158 -0.875701 -v -0.125000 0.400850 -0.871913 -v -0.125000 0.401434 -0.867890 -v -0.125000 0.401900 -0.863605 -v -0.125000 0.402242 -0.859027 -v -0.125000 0.402453 -0.854128 -v -0.125000 0.402524 -0.848878 -v -0.125000 0.401943 -0.838689 -v -0.125000 0.400210 -0.828493 -v -0.125000 0.397342 -0.818340 -v -0.125000 0.393356 -0.808283 -v -0.125000 0.388270 -0.798371 -v -0.125000 0.382100 -0.788657 -v -0.125000 0.374864 -0.779191 -v -0.125000 0.366578 -0.770025 -v -0.125000 0.357260 -0.761209 -v -0.125000 0.346927 -0.752795 -v -0.125000 0.335595 -0.744834 -v -0.125000 0.323282 -0.737377 -v -0.125000 0.323282 -0.734572 -v -0.125000 0.392707 -0.727560 -v -0.125000 0.392707 -0.643408 -v -0.125000 -0.009818 -0.368513 -v -0.125000 -0.008252 -0.392849 -v -0.125000 -0.003607 -0.416576 -v -0.125000 0.004043 -0.439407 -v -0.125000 0.014623 -0.461054 -v -0.125000 0.028056 -0.481231 -v -0.125000 0.044267 -0.499649 -v -0.125000 0.063181 -0.516023 -v -0.125000 0.084723 -0.530063 -v -0.125000 0.108816 -0.541484 -v -0.125000 0.135386 -0.549997 -v -0.125000 0.164356 -0.555316 -v -0.125000 0.195652 -0.557153 -v -0.125000 0.227270 -0.555316 -v -0.125000 0.256509 -0.549997 -v -0.125000 0.283299 -0.541484 -v -0.125000 0.307568 -0.530063 -v -0.125000 0.329247 -0.516023 -v -0.125000 0.348264 -0.499649 -v -0.125000 0.364550 -0.481231 -v -0.125000 0.378032 -0.461054 -v -0.125000 0.388642 -0.439407 -v -0.125000 0.396307 -0.416576 -v -0.125000 0.400958 -0.392849 -v -0.125000 0.402525 -0.368513 -v -0.125000 0.400958 -0.344178 -v -0.125000 0.396307 -0.320451 -v -0.125000 0.388642 -0.297620 -v -0.125000 0.378032 -0.275973 -v -0.125000 0.364550 -0.255796 -v -0.125000 0.348264 -0.237377 -v -0.125000 0.329247 -0.221004 -v -0.125000 0.307568 -0.206963 -v -0.125000 0.283299 -0.195543 -v -0.125000 0.256509 -0.187029 -v -0.125000 0.227270 -0.181710 -v -0.125000 0.195652 -0.179874 -v -0.125000 0.164356 -0.181710 -v -0.125000 0.135386 -0.187029 -v -0.125000 0.108816 -0.195543 -v -0.125000 0.084723 -0.206963 -v -0.125000 0.063181 -0.221004 -v -0.125000 0.044267 -0.237377 -v -0.125000 0.028056 -0.255796 -v -0.125000 0.014623 -0.275973 -v -0.125000 0.004043 -0.297620 -v -0.125000 -0.003607 -0.320451 -v -0.125000 -0.008252 -0.344178 -v -0.125000 0.074334 -0.368513 -v -0.125000 0.075315 -0.355675 -v -0.125000 0.078207 -0.343826 -v -0.125000 0.082935 -0.332990 -v -0.125000 0.089424 -0.323191 -v -0.125000 0.097598 -0.314454 -v -0.125000 0.107381 -0.306802 -v -0.125000 0.118698 -0.300261 -v -0.125000 0.131474 -0.294855 -v -0.125000 0.145632 -0.290607 -v -0.125000 0.161099 -0.287543 -v -0.125000 0.177797 -0.285687 -v -0.125000 0.195652 -0.285063 -v -0.125000 0.213682 -0.285687 -v -0.125000 0.230553 -0.287543 -v -0.125000 0.246187 -0.290607 -v -0.125000 0.260506 -0.294855 -v -0.125000 0.273432 -0.300261 -v -0.125000 0.284888 -0.306802 -v -0.125000 0.294795 -0.314454 -v -0.125000 0.303075 -0.323191 -v -0.125000 0.309651 -0.332990 -v -0.125000 0.314445 -0.343826 -v -0.125000 0.317378 -0.355675 -v -0.125000 0.318373 -0.368513 -v -0.125000 0.317378 -0.381351 -v -0.125000 0.314445 -0.393200 -v -0.125000 0.309651 -0.404037 -v -0.125000 0.303075 -0.413836 -v -0.125000 0.294795 -0.422573 -v -0.125000 0.284888 -0.430224 -v -0.125000 0.273432 -0.436765 -v -0.125000 0.260506 -0.442172 -v -0.125000 0.246187 -0.446419 -v -0.125000 0.230553 -0.449483 -v -0.125000 0.213682 -0.451339 -v -0.125000 0.195652 -0.451963 -v -0.125000 0.177797 -0.451339 -v -0.125000 0.161099 -0.449483 -v -0.125000 0.145632 -0.446419 -v -0.125000 0.131474 -0.442172 -v -0.125000 0.118698 -0.436765 -v -0.125000 0.107381 -0.430224 -v -0.125000 0.097598 -0.422573 -v -0.125000 0.089424 -0.413836 -v -0.125000 0.082935 -0.404037 -v -0.125000 0.078207 -0.393200 -v -0.125000 0.075315 -0.381351 -v -0.125000 0.000000 0.101332 -v -0.125000 -0.000000 -0.001052 -v -0.125000 0.234222 -0.001052 -v -0.125000 0.247672 -0.006957 -v -0.125000 0.259659 -0.013402 -v -0.125000 0.270238 -0.020315 -v -0.125000 0.279466 -0.027622 -v -0.125000 0.287399 -0.035251 -v -0.125000 0.294092 -0.043128 -v -0.125000 0.299602 -0.051180 -v -0.125000 0.303984 -0.059335 -v -0.125000 0.307295 -0.067518 -v -0.125000 0.309591 -0.075658 -v -0.125000 0.310927 -0.083682 -v -0.125000 0.311360 -0.091515 -v -0.125000 0.311317 -0.095449 -v -0.125000 0.311185 -0.099203 -v -0.125000 0.310966 -0.102801 -v -0.125000 0.310659 -0.106267 -v -0.125000 0.310265 -0.109627 -v -0.125000 0.309783 -0.112903 -v -0.125000 0.309213 -0.116121 -v -0.125000 0.308555 -0.119305 -v -0.125000 0.307810 -0.122480 -v -0.125000 0.306978 -0.125669 -v -0.125000 0.306057 -0.128897 -v -0.125000 0.305049 -0.132188 -v -0.125000 0.394109 -0.150421 -v -0.125000 0.395306 -0.147421 -v -0.125000 0.396437 -0.144363 -v -0.125000 0.397495 -0.141217 -v -0.125000 0.398473 -0.137954 -v -0.125000 0.399363 -0.134545 -v -0.125000 0.400158 -0.130961 -v -0.125000 0.400851 -0.127172 -v -0.125000 0.401434 -0.123149 -v -0.125000 0.401900 -0.118864 -v -0.125000 0.402242 -0.114286 -v -0.125000 0.402453 -0.109387 -v -0.125000 0.402525 -0.104137 -v -0.125000 0.401943 -0.093948 -v -0.125000 0.400210 -0.083752 -v -0.125000 0.397342 -0.073600 -v -0.125000 0.393356 -0.063542 -v -0.125000 0.388270 -0.053631 -v -0.125000 0.382100 -0.043917 -v -0.125000 0.374864 -0.034451 -v -0.125000 0.366578 -0.025284 -v -0.125000 0.357260 -0.016469 -v -0.125000 0.346927 -0.008055 -v -0.125000 0.335595 -0.000094 -v -0.125000 0.323282 0.007363 -v -0.125000 0.323282 0.010168 -v -0.125000 0.392707 0.017181 -v -0.125000 0.392707 0.101332 -v -0.125000 0.000000 0.407083 -v -0.125000 0.000000 0.304698 -v -0.125000 0.234222 0.304698 -v -0.125000 0.247672 0.298794 -v -0.125000 0.259659 0.292348 -v -0.125000 0.270238 0.285436 -v -0.125000 0.279466 0.278128 -v -0.125000 0.287399 0.270500 -v -0.125000 0.294092 0.262623 -v -0.125000 0.299602 0.254570 -v -0.125000 0.303984 0.246416 -v -0.125000 0.307295 0.238232 -v -0.125000 0.309591 0.230092 -v -0.125000 0.310927 0.222069 -v -0.125000 0.311360 0.214236 -v -0.125000 0.311317 0.210302 -v -0.125000 0.311185 0.206548 -v -0.125000 0.310966 0.202950 -v -0.125000 0.310659 0.199483 -v -0.125000 0.310265 0.196124 -v -0.125000 0.309783 0.192847 -v -0.125000 0.309213 0.189629 -v -0.125000 0.308555 0.186445 -v -0.125000 0.307810 0.183270 -v -0.125000 0.306978 0.180082 -v -0.125000 0.306057 0.176854 -v -0.125000 0.305049 0.173562 -v -0.125000 0.394109 0.155330 -v -0.125000 0.395306 0.158329 -v -0.125000 0.396437 0.161388 -v -0.125000 0.397495 0.164534 -v -0.125000 0.398473 0.167796 -v -0.125000 0.399363 0.171205 -v -0.125000 0.400158 0.174790 -v -0.125000 0.400851 0.178578 -v -0.125000 0.401434 0.182601 -v -0.125000 0.401900 0.186886 -v -0.125000 0.402242 0.191464 -v -0.125000 0.402453 0.196363 -v -0.125000 0.402525 0.201613 -v -0.125000 0.401943 0.211802 -v -0.125000 0.400210 0.221998 -v -0.125000 0.397342 0.232151 -v -0.125000 0.393356 0.242208 -v -0.125000 0.388270 0.252120 -v -0.125000 0.382100 0.261834 -v -0.125000 0.374864 0.271300 -v -0.125000 0.366578 0.280466 -v -0.125000 0.357260 0.289282 -v -0.125000 0.346927 0.297696 -v -0.125000 0.335595 0.305657 -v -0.125000 0.323282 0.313114 -v -0.125000 0.323282 0.315919 -v -0.125000 0.392707 0.322931 -v -0.125000 0.392707 0.407083 -v -0.125000 0.000000 0.829944 -v -0.125000 0.000000 0.503857 -v -0.125000 0.086957 0.503857 -v -0.125000 0.086957 0.726157 -v -0.125000 0.225807 0.726157 -v -0.125000 0.225806 0.543829 -v -0.125000 0.312763 0.543829 -v -0.125000 0.312763 0.726157 -v -0.125000 0.432679 0.726157 -v -0.125000 0.432679 0.511571 -v -0.125000 0.518934 0.511571 -v -0.125000 0.518934 0.829944 -v 0.125000 0.364550 -0.255796 -v 0.125000 0.348264 -0.237377 -v 0.125000 0.311185 -0.099203 -v 0.125000 0.310966 -0.102801 -v 0.125000 0.014623 -0.461054 -v 0.125000 0.014623 -0.275973 -v 0.125000 0.000000 0.503857 -v 0.125000 0.086957 0.503857 -v 0.125000 0.398473 0.167797 -v 0.125000 0.397342 0.232151 -v 0.125000 0.401900 -0.118864 -v 0.125000 0.400210 -0.083752 -v 0.125000 0.164356 -0.181710 -v 0.125000 0.135386 -0.187029 -v 0.125000 0.294092 -0.043128 -v 0.125000 0.299602 -0.051180 -v 0.125000 0.074334 -0.368513 -v 0.125000 0.075315 -0.381351 -v 0.125000 0.063181 -0.221004 -v 0.125000 0.388642 -0.439407 -v 0.125000 0.396307 -0.416576 -v 0.125000 0.305049 -0.876928 -v 0.125000 0.374864 -0.779191 -v 0.125000 0.305049 0.173562 -v 0.125000 0.357260 0.289282 -v 0.125000 0.306978 -0.125669 -v 0.125000 0.306057 -0.128897 -v 0.125000 0.227270 -0.555316 -v 0.125000 0.256509 -0.549997 -v 0.125000 0.000000 0.407083 -v 0.125000 0.392707 0.407083 -v 0.125000 0.399363 -0.134545 -v 0.125000 0.400158 -0.130961 -v 0.125000 0.401434 -0.867890 -v 0.125000 0.400210 -0.828493 -v 0.125000 0.309783 -0.112903 -v 0.125000 0.335595 -0.000094 -v 0.125000 0.082935 -0.332990 -v 0.125000 0.089424 -0.323191 -v 0.125000 0.131474 -0.442172 -v 0.125000 0.118698 -0.436765 -v 0.125000 0.329247 -0.516023 -v 0.125000 0.329247 -0.221004 -v 0.125000 -0.000000 0.101332 -v 0.125000 -0.000000 -0.001052 -v 0.125000 0.028056 -0.255796 -v 0.125000 0.318373 -0.368513 -v 0.125000 0.260506 -0.442172 -v 0.125000 0.246187 -0.446419 -v 0.125000 0.177797 -0.285687 -v 0.125000 0.195652 -0.285063 -v 0.125000 0.378032 -0.461054 -v 0.125000 0.294795 -0.314454 -v 0.125000 0.303075 -0.323191 -v 0.125000 0.108816 -0.541484 -v 0.125000 0.366578 -0.770025 -v 0.125000 0.310927 0.222069 -v 0.125000 0.311360 0.214236 -v 0.125000 0.305049 -0.132188 -v 0.125000 0.382100 -0.043917 -v 0.125000 0.394109 -0.150421 -v 0.125000 0.393356 -0.063542 -v 0.125000 0.402453 -0.854128 -v 0.125000 0.402524 -0.848878 -v 0.125000 0.270238 0.285436 -v 0.125000 0.279466 0.278128 -v 0.125000 0.323282 0.010168 -v 0.125000 0.392707 0.017181 -v 0.125000 0.084723 -0.530063 -v 0.125000 0.089424 -0.413836 -v 0.125000 0.063181 -0.516023 -v 0.125000 0.084723 -0.206963 -v 0.125000 0.107381 -0.306802 -v 0.125000 0.309783 -0.857644 -v 0.125000 0.335595 -0.744834 -v 0.125000 0.396437 0.161388 -v 0.125000 0.397495 0.164534 -v 0.125000 0.401943 -0.093948 -v 0.125000 0.161099 -0.287543 -v 0.125000 0.388270 -0.053631 -v 0.125000 0.311185 -0.843943 -v 0.125000 0.310966 -0.847541 -v 0.125000 0.311185 0.206548 -v 0.125000 0.323282 0.313114 -v 0.125000 0.306978 -0.870409 -v 0.125000 0.306057 -0.873637 -v 0.125000 0.307568 -0.206963 -v 0.125000 0.314445 -0.343826 -v 0.125000 0.225807 0.726157 -v 0.125000 0.225806 0.543829 -v 0.125000 0.283299 -0.541484 -v 0.125000 0.294795 -0.422573 -v 0.125000 0.309591 -0.820399 -v 0.125000 0.323282 -0.737377 -v 0.125000 0.294092 -0.787868 -v 0.125000 0.299602 -0.795920 -v 0.125000 0.309591 0.230092 -v 0.125000 0.309213 0.189629 -v 0.125000 0.308555 0.186445 -v 0.125000 0.382100 0.261834 -v 0.125000 0.374864 0.271300 -v 0.125000 0.402453 0.196363 -v 0.125000 0.401943 0.211802 -v 0.125000 0.311317 -0.095449 -v 0.125000 0.323282 0.007363 -v 0.125000 0.402242 0.191464 -v 0.125000 -0.000000 -0.643408 -v 0.125000 -0.000000 -0.745792 -v 0.125000 0.294092 0.262623 -v 0.125000 0.309213 -0.116121 -v 0.125000 0.308555 -0.119305 -v 0.125000 0.378032 -0.275973 -v 0.125000 0.323282 0.315919 -v 0.125000 -0.003607 -0.416576 -v 0.125000 -0.008252 -0.344178 -v 0.125000 0.306057 0.176854 -v 0.125000 0.346927 0.297696 -v 0.125000 0.259659 -0.758142 -v 0.125000 0.259659 0.292348 -v 0.125000 0.307295 -0.067518 -v 0.125000 0.346927 -0.008055 -v 0.125000 0.195652 -0.179874 -v 0.125000 0.400958 -0.344178 -v 0.125000 0.287399 -0.035251 -v 0.125000 0.400158 0.174790 -v 0.125000 0.400210 0.221998 -v 0.125000 0.310927 -0.083682 -v 0.125000 0.311360 -0.091515 -v 0.125000 0.402242 -0.114286 -v 0.125000 0.402453 -0.109387 -v 0.125000 0.195652 -0.557153 -v 0.125000 0.366578 0.280466 -v 0.125000 0.396437 -0.144363 -v 0.125000 0.397495 -0.141217 -v 0.125000 0.395306 -0.892161 -v 0.125000 0.393356 -0.808283 -v 0.125000 0.395306 0.158329 -v 0.125000 0.393356 0.242208 -v 0.125000 0.396307 -0.320451 -v 0.125000 0.097598 -0.314454 -v 0.125000 0.399363 -0.879286 -v 0.125000 0.397342 -0.818340 -v 0.125000 0.004043 -0.297620 -v 0.125000 0.145632 -0.446419 -v 0.125000 0.213682 -0.285687 -v 0.125000 0.247672 -0.006957 -v 0.125000 0.273432 -0.436765 -v 0.125000 0.309651 -0.332990 -v 0.125000 0.398473 -0.137954 -v 0.125000 0.397342 -0.073600 -v 0.125000 0.357260 -0.761209 -v 0.125000 0.000000 0.304698 -v 0.125000 0.401943 -0.838689 -v 0.125000 0.299602 0.254570 -v 0.125000 0.097598 -0.422573 -v 0.125000 -0.009818 -0.368513 -v 0.125000 -0.008252 -0.392849 -v 0.125000 0.082935 -0.404037 -v 0.125000 0.366578 -0.025284 -v 0.125000 0.357260 -0.016469 -v 0.125000 0.164356 -0.555316 -v 0.125000 0.177797 -0.451339 -v 0.125000 0.432679 0.726157 -v 0.125000 0.518934 0.511571 -v 0.125000 0.307810 -0.867220 -v 0.125000 0.346927 -0.752795 -v 0.125000 0.312763 0.726157 -v 0.125000 0.398473 -0.882694 -v 0.125000 0.310966 0.202950 -v 0.125000 0.309783 0.192847 -v 0.125000 0.335595 0.305657 -v 0.125000 0.317378 -0.355675 -v 0.125000 0.307810 0.183271 -v 0.125000 0.311317 -0.840189 -v 0.125000 0.287399 -0.779991 -v 0.125000 0.234222 -0.745792 -v 0.125000 0.000000 0.829944 -v 0.125000 0.402525 0.201613 -v 0.125000 -0.003607 -0.320451 -v 0.125000 0.310659 -0.106267 -v 0.125000 0.310265 -0.109627 -v 0.125000 0.401434 -0.123149 -v 0.125000 0.108816 -0.195543 -v 0.125000 0.399363 0.171205 -v 0.125000 0.303984 -0.059335 -v 0.125000 0.400958 -0.392849 -v 0.125000 0.402525 -0.368513 -v 0.125000 0.392707 0.101332 -v 0.125000 0.307568 -0.530063 -v 0.125000 0.323282 -0.734572 -v 0.125000 0.400851 -0.127172 -v 0.125000 0.396437 -0.889103 -v 0.125000 0.400850 -0.871913 -v 0.125000 0.107381 -0.430224 -v 0.125000 0.234222 -0.001052 -v 0.125000 0.230553 -0.287543 -v 0.125000 0.230553 -0.449483 -v 0.125000 0.213682 -0.451339 -v 0.125000 0.314445 -0.393200 -v 0.125000 0.309651 -0.404037 -v 0.125000 0.234222 0.304698 -v 0.125000 0.388270 -0.798371 -v 0.125000 0.382100 -0.788657 -v 0.125000 0.307295 0.238232 -v 0.125000 0.401900 -0.863605 -v 0.125000 0.402242 -0.859027 -v 0.125000 0.518934 0.829944 -v 0.125000 0.247672 0.298794 -v 0.125000 0.392707 -0.727560 -v 0.125000 0.028056 -0.481231 -v 0.125000 0.044267 -0.499649 -v 0.125000 0.394109 0.155330 -v 0.125000 0.309213 -0.860862 -v 0.125000 0.308555 -0.864046 -v 0.125000 0.310927 -0.828422 -v 0.125000 0.397495 -0.885957 -v 0.125000 0.312763 0.543829 -v 0.125000 0.310265 0.196124 -v 0.125000 0.311360 -0.836255 -v 0.125000 0.388270 0.252120 -v 0.125000 0.279466 -0.772362 -v 0.125000 0.401434 0.182601 -v 0.125000 0.401900 0.186886 -v 0.125000 0.086957 0.726157 -v 0.125000 0.392707 0.322931 -v 0.125000 0.270238 -0.765055 -v 0.125000 0.388642 -0.297620 -v 0.125000 0.306978 0.180082 -v 0.125000 0.256509 -0.187029 -v 0.125000 0.227270 -0.181710 -v 0.125000 0.309591 -0.075658 -v 0.125000 0.348264 -0.499649 -v 0.125000 0.364550 -0.481231 -v 0.125000 0.395306 -0.147421 -v 0.125000 0.078207 -0.393200 -v 0.125000 0.135386 -0.549997 -v 0.125000 0.078207 -0.343826 -v 0.125000 0.317378 -0.381351 -v 0.125000 0.400158 -0.875701 -v 0.125000 0.270238 -0.020315 -v 0.125000 0.279466 -0.027622 -v 0.125000 0.044267 -0.237377 -v 0.125000 0.161099 -0.449483 -v 0.125000 0.284888 -0.430224 -v 0.125000 0.284888 -0.306802 -v 0.125000 0.118698 -0.300261 -v 0.125000 0.303984 0.246416 -v 0.125000 0.004043 -0.439407 -v 0.125000 0.246187 -0.290607 -v 0.125000 0.310659 -0.851008 -v 0.125000 0.303984 -0.804075 -v 0.125000 0.283299 -0.195543 -v 0.125000 0.392707 -0.643408 -v 0.125000 0.131474 -0.294855 -v 0.125000 0.259659 -0.013402 -v 0.125000 0.195652 -0.451963 -v 0.125000 0.260506 -0.294855 -v 0.125000 0.303075 -0.413836 -v 0.125000 0.432679 0.511571 -v 0.125000 0.310659 0.199483 -v 0.125000 0.400851 0.178578 -v 0.125000 0.075315 -0.355675 -v 0.125000 0.145632 -0.290607 -v 0.125000 0.273432 -0.300261 -v 0.125000 0.310265 -0.854367 -v 0.125000 0.394109 -0.895161 -v 0.125000 0.307295 -0.812259 -v 0.125000 0.247672 -0.751697 -v 0.125000 0.307810 -0.122480 -v 0.125000 0.402525 -0.104137 -v 0.125000 0.287399 0.270500 -v 0.125000 0.374864 -0.034451 -v 0.125000 0.311317 0.210302 -vt 0.426575 0.688748 -vt 0.421208 0.689051 -vt 0.418443 0.689014 -vt 0.415862 0.688904 -vt 0.413450 0.688726 -vt 0.431947 0.687846 -vt 0.411193 0.688483 -vt 0.409074 0.688180 -vt 0.407078 0.687819 -vt 0.437295 0.686354 -vt 0.405190 0.687406 -vt 0.403394 0.686942 -vt 0.401675 0.686434 -vt 0.400018 0.685883 -vt 0.442593 0.684280 -vt 0.398407 0.685294 -vt 0.396827 0.684672 -vt 0.406431 0.638321 -vt 0.447814 0.681632 -vt 0.529446 0.479562 -vt 0.529446 0.683942 -vt 0.485117 0.683942 -vt 0.481422 0.647810 -vt 0.452931 0.678421 -vt 0.457918 0.674655 -vt 0.462747 0.670343 -vt 0.467391 0.665494 -vt 0.471823 0.660116 -vt 0.476017 0.654218 -vt 0.413218 0.640146 -vt 0.411546 0.639758 -vt 0.409866 0.639325 -vt 0.408165 0.638846 -vt 0.479945 0.647810 -vt 0.420086 0.641241 -vt 0.418316 0.641036 -vt 0.416590 0.640785 -vt 0.414895 0.640488 -vt 0.475512 0.601460 -vt 0.472401 0.608460 -vt 0.469006 0.614698 -vt 0.465365 0.620204 -vt 0.461515 0.625007 -vt 0.457497 0.629135 -vt 0.453347 0.632619 -vt 0.449105 0.635486 -vt 0.444809 0.637767 -vt 0.440498 0.639490 -vt 0.436210 0.640685 -vt 0.431984 0.641380 -vt 0.427857 0.641606 -vt 0.425785 0.641583 -vt 0.423808 0.641515 -vt 0.421912 0.641401 -vt 0.475512 0.479562 -vt 0.105673 0.484231 -vt 0.092827 0.484303 -vt 0.080077 0.482747 -vt 0.067743 0.479607 -vt 0.118294 0.482538 -vt 0.055974 0.474928 -vt 0.130536 0.479252 -vt 0.044917 0.468756 -vt 0.142248 0.474400 -vt 0.153274 0.468010 -vt 0.034723 0.461136 -vt 0.163463 0.460111 -vt 0.025540 0.452114 -vt 0.172660 0.450730 -vt 0.017516 0.441734 -vt 0.180713 0.439895 -vt 0.095424 0.440582 -vt 0.010802 0.430043 -vt 0.102206 0.440457 -vt 0.088703 0.439674 -vt 0.108528 0.439294 -vt 0.082563 0.437789 -vt 0.114374 0.437134 -vt 0.077012 0.434968 -vt 0.119730 0.434017 -vt 0.072062 0.431253 -vt 0.187468 0.427634 -vt 0.005545 0.417086 -vt 0.124581 0.429981 -vt 0.067723 0.426684 -vt 0.128910 0.425067 -vt 0.064005 0.421304 -vt 0.132703 0.419315 -vt 0.060919 0.415153 -vt 0.192772 0.413976 -vt 0.001895 0.402908 -vt 0.135945 0.412764 -vt 0.058474 0.408272 -vt 0.138621 0.405454 -vt 0.056683 0.400703 -vt 0.196472 0.398947 -vt 0.000000 0.387554 -vt 0.140715 0.397425 -vt 0.055554 0.392487 -vt 0.142212 0.388717 -vt 0.055099 0.383665 -vt 0.198413 0.382576 -vt 0.000010 0.371071 -vt 0.143096 0.379368 -vt 0.055327 0.374279 -vt 0.198413 0.366260 -vt 0.143319 0.370073 -vt 0.056206 0.365022 -vt 0.001942 0.354868 -vt 0.142859 0.361341 -vt 0.057698 0.356403 -vt 0.196511 0.351047 -vt 0.005633 0.339979 -vt 0.141725 0.353212 -vt 0.059786 0.348461 -vt 0.139928 0.345726 -vt 0.062457 0.341234 -vt 0.192854 0.336983 -vt 0.010930 0.326434 -vt 0.137479 0.338924 -vt 0.065694 0.334761 -vt 0.134389 0.332844 -vt 0.069484 0.329081 -vt 0.187591 0.324117 -vt 0.017680 0.314265 -vt 0.130667 0.327528 -vt 0.073809 0.324232 -vt 0.126324 0.323015 -vt 0.078656 0.320251 -vt 0.121372 0.319345 -vt 0.084010 0.317179 -vt 0.180872 0.312497 -vt 0.025728 0.303501 -vt 0.115819 0.316558 -vt 0.089854 0.315053 -vt 0.109677 0.314694 -vt 0.096175 0.313912 -vt 0.102956 0.313793 -vt 0.172846 0.302171 -vt 0.034922 0.294174 -vt 0.163660 0.293187 -vt 0.045109 0.286313 -vt 0.153464 0.285593 -vt 0.056134 0.279949 -vt 0.142407 0.279436 -vt 0.067844 0.275113 -vt 0.130637 0.274765 -vt 0.080087 0.271834 -vt 0.118303 0.271628 -vt 0.092707 0.270144 -vt 0.105553 0.270073 -vt 0.578122 0.000303 -vt 0.583490 0.000000 -vt 0.586255 0.000037 -vt 0.588836 0.000147 -vt 0.591247 0.000325 -vt 0.572751 0.001205 -vt 0.593505 0.000568 -vt 0.595624 0.000871 -vt 0.597620 0.001232 -vt 0.567403 0.002697 -vt 0.599508 0.001645 -vt 0.601304 0.002109 -vt 0.603022 0.002617 -vt 0.604680 0.003168 -vt 0.562105 0.004772 -vt 0.606291 0.003757 -vt 0.607871 0.004380 -vt 0.598266 0.050730 -vt 0.556884 0.007419 -vt 0.475251 0.209489 -vt 0.475251 0.005109 -vt 0.519581 0.005109 -vt 0.523275 0.041241 -vt 0.551766 0.010630 -vt 0.546780 0.014396 -vt 0.541951 0.018708 -vt 0.537307 0.023557 -vt 0.532875 0.028935 -vt 0.528681 0.034833 -vt 0.591480 0.048905 -vt 0.593152 0.049293 -vt 0.594832 0.049726 -vt 0.596532 0.050205 -vt 0.524753 0.041241 -vt 0.584612 0.047810 -vt 0.586381 0.048016 -vt 0.588107 0.048266 -vt 0.589803 0.048563 -vt 0.529186 0.087591 -vt 0.532296 0.080591 -vt 0.535692 0.074353 -vt 0.539333 0.068847 -vt 0.543182 0.064044 -vt 0.547201 0.059916 -vt 0.551351 0.056432 -vt 0.555592 0.053565 -vt 0.559888 0.051284 -vt 0.564199 0.049561 -vt 0.568487 0.048366 -vt 0.572714 0.047671 -vt 0.576840 0.047445 -vt 0.578913 0.047468 -vt 0.580890 0.047536 -vt 0.582785 0.047651 -vt 0.529186 0.209489 -vt 0.426575 0.479259 -vt 0.421208 0.479562 -vt 0.418443 0.479525 -vt 0.415862 0.479415 -vt 0.413450 0.479237 -vt 0.431947 0.478357 -vt 0.411193 0.478994 -vt 0.409074 0.478691 -vt 0.407078 0.478330 -vt 0.437295 0.476865 -vt 0.405190 0.477917 -vt 0.403394 0.477453 -vt 0.401675 0.476945 -vt 0.400018 0.476394 -vt 0.442593 0.474790 -vt 0.398407 0.475805 -vt 0.396827 0.475182 -vt 0.406431 0.428832 -vt 0.447814 0.472143 -vt 0.529446 0.270073 -vt 0.529446 0.474453 -vt 0.485117 0.474453 -vt 0.481422 0.438321 -vt 0.452931 0.468932 -vt 0.457918 0.465166 -vt 0.462747 0.460854 -vt 0.467391 0.456005 -vt 0.471823 0.450627 -vt 0.476017 0.444729 -vt 0.413218 0.430657 -vt 0.411546 0.430269 -vt 0.409866 0.429836 -vt 0.408165 0.429357 -vt 0.479945 0.438321 -vt 0.420086 0.431752 -vt 0.418316 0.431547 -vt 0.416590 0.431296 -vt 0.414895 0.430999 -vt 0.475512 0.391971 -vt 0.472401 0.398971 -vt 0.469006 0.405209 -vt 0.465365 0.410715 -vt 0.461515 0.415518 -vt 0.457496 0.419646 -vt 0.453347 0.423130 -vt 0.449105 0.425997 -vt 0.444809 0.428278 -vt 0.440498 0.430001 -vt 0.436210 0.431196 -vt 0.431984 0.431891 -vt 0.427857 0.432117 -vt 0.425785 0.432094 -vt 0.423808 0.432026 -vt 0.421912 0.431911 -vt 0.475512 0.270073 -vt 0.000000 0.270073 -vt 0.000000 0.000000 -vt 0.054673 0.044891 -vt 0.167714 0.000000 -vt 0.167714 0.044891 -vt 0.054673 0.107299 -vt 0.054673 0.152555 -vt 0.150721 0.107299 -vt 0.150721 0.152555 -vt 0.054673 0.224818 -vt 0.171778 0.224817 -vt 0.171778 0.270073 -vt 0.559195 0.479865 -vt 0.551062 0.479599 -vt 0.553828 0.479562 -vt 0.548481 0.479709 -vt 0.546070 0.479887 -vt 0.564566 0.480767 -vt 0.543812 0.480130 -vt 0.541693 0.480433 -vt 0.539698 0.480794 -vt 0.569915 0.482259 -vt 0.537809 0.481208 -vt 0.536014 0.481671 -vt 0.534295 0.482179 -vt 0.532638 0.482730 -vt 0.575213 0.484334 -vt 0.531027 0.483319 -vt 0.529446 0.483942 -vt 0.539051 0.530292 -vt 0.580434 0.486981 -vt 0.662066 0.689051 -vt 0.617736 0.484672 -vt 0.662066 0.484672 -vt 0.614042 0.520803 -vt 0.585551 0.490192 -vt 0.590538 0.493958 -vt 0.595366 0.498270 -vt 0.600010 0.503119 -vt 0.604443 0.508497 -vt 0.608636 0.514395 -vt 0.545837 0.528467 -vt 0.544165 0.528855 -vt 0.542485 0.529288 -vt 0.540785 0.529767 -vt 0.612565 0.520803 -vt 0.552706 0.527372 -vt 0.550936 0.527578 -vt 0.549210 0.527828 -vt 0.547515 0.528125 -vt 0.608132 0.567153 -vt 0.605021 0.560153 -vt 0.601626 0.553915 -vt 0.597984 0.548409 -vt 0.594135 0.543606 -vt 0.590116 0.539478 -vt 0.585967 0.535995 -vt 0.581725 0.533127 -vt 0.577429 0.530846 -vt 0.573118 0.529123 -vt 0.568830 0.527928 -vt 0.564604 0.527233 -vt 0.560477 0.527007 -vt 0.558405 0.527030 -vt 0.556427 0.527099 -vt 0.554532 0.527213 -vt 0.608132 0.689051 -vt 0.304086 0.270145 -vt 0.278491 0.271629 -vt 0.291240 0.270073 -vt 0.266157 0.274769 -vt 0.316707 0.271838 -vt 0.254387 0.279447 -vt 0.328950 0.275124 -vt 0.243331 0.285620 -vt 0.340661 0.279976 -vt 0.351688 0.286366 -vt 0.233136 0.293240 -vt 0.361877 0.294265 -vt 0.223953 0.302262 -vt 0.371074 0.303646 -vt 0.215930 0.312642 -vt 0.379127 0.314481 -vt 0.293837 0.313793 -vt 0.209215 0.324333 -vt 0.300619 0.313919 -vt 0.287117 0.314702 -vt 0.306941 0.315082 -vt 0.280976 0.316587 -vt 0.312788 0.317242 -vt 0.275426 0.319408 -vt 0.318144 0.320359 -vt 0.270475 0.323123 -vt 0.385882 0.326742 -vt 0.203958 0.337290 -vt 0.322994 0.324395 -vt 0.266136 0.327692 -vt 0.327323 0.329309 -vt 0.262418 0.333072 -vt 0.331117 0.335061 -vt 0.259332 0.339223 -vt 0.391185 0.340400 -vt 0.200308 0.351468 -vt 0.334359 0.341612 -vt 0.256888 0.346104 -vt 0.337034 0.348922 -vt 0.255096 0.353673 -vt 0.394885 0.355429 -vt 0.198413 0.366821 -vt 0.339128 0.356951 -vt 0.253967 0.361889 -vt 0.340625 0.365659 -vt 0.253512 0.370710 -vt 0.396827 0.371800 -vt 0.198423 0.383304 -vt 0.341510 0.375008 -vt 0.253740 0.380097 -vt 0.396827 0.388116 -vt 0.341733 0.384303 -vt 0.254620 0.389354 -vt 0.200355 0.399508 -vt 0.341272 0.393035 -vt 0.256111 0.397973 -vt 0.394924 0.403330 -vt 0.204046 0.414397 -vt 0.340138 0.401164 -vt 0.258200 0.405915 -vt 0.338341 0.408650 -vt 0.260870 0.413142 -vt 0.391267 0.417393 -vt 0.209343 0.427942 -vt 0.335892 0.415452 -vt 0.264108 0.419614 -vt 0.332802 0.421531 -vt 0.267897 0.425295 -vt 0.386005 0.430259 -vt 0.216093 0.440111 -vt 0.329080 0.426848 -vt 0.272222 0.430144 -vt 0.324738 0.431361 -vt 0.277069 0.434124 -vt 0.319785 0.435031 -vt 0.282423 0.437197 -vt 0.379286 0.441879 -vt 0.224141 0.450874 -vt 0.314232 0.437817 -vt 0.288267 0.439323 -vt 0.308090 0.439681 -vt 0.294588 0.440464 -vt 0.301369 0.440582 -vt 0.371259 0.452205 -vt 0.233335 0.460202 -vt 0.362073 0.461189 -vt 0.243522 0.468063 -vt 0.351877 0.468783 -vt 0.254547 0.474427 -vt 0.340820 0.474940 -vt 0.266257 0.479263 -vt 0.329050 0.479611 -vt 0.278500 0.482542 -vt 0.316716 0.482748 -vt 0.291121 0.484232 -vt 0.303967 0.484303 -vt 0.559195 0.270376 -vt 0.551062 0.270110 -vt 0.553828 0.270073 -vt 0.548481 0.270220 -vt 0.546070 0.270398 -vt 0.564566 0.271278 -vt 0.543813 0.270641 -vt 0.541694 0.270944 -vt 0.539698 0.271305 -vt 0.569915 0.272770 -vt 0.537810 0.271719 -vt 0.536014 0.272182 -vt 0.534295 0.272690 -vt 0.532638 0.273241 -vt 0.575213 0.274845 -vt 0.531027 0.273830 -vt 0.529446 0.274453 -vt 0.539051 0.320803 -vt 0.580434 0.277492 -vt 0.662066 0.479562 -vt 0.617736 0.275182 -vt 0.662066 0.275182 -vt 0.614042 0.311314 -vt 0.585551 0.280703 -vt 0.590538 0.284469 -vt 0.595366 0.288781 -vt 0.600010 0.293630 -vt 0.604443 0.299008 -vt 0.608636 0.304906 -vt 0.545837 0.318978 -vt 0.544165 0.319366 -vt 0.542485 0.319799 -vt 0.540785 0.320278 -vt 0.612565 0.311314 -vt 0.552706 0.317883 -vt 0.550936 0.318089 -vt 0.549210 0.318339 -vt 0.547515 0.318636 -vt 0.608132 0.357664 -vt 0.605021 0.350664 -vt 0.601626 0.344426 -vt 0.597984 0.338920 -vt 0.594135 0.334117 -vt 0.590116 0.329989 -vt 0.585967 0.326505 -vt 0.581725 0.323638 -vt 0.577429 0.321357 -vt 0.573118 0.319634 -vt 0.568830 0.318439 -vt 0.564604 0.317744 -vt 0.560477 0.317518 -vt 0.558405 0.317541 -vt 0.556427 0.317609 -vt 0.554532 0.317724 -vt 0.608132 0.479562 -vt 0.029749 0.484606 -vt 0.021616 0.484340 -vt 0.024381 0.484303 -vt 0.019035 0.484450 -vt 0.016624 0.484628 -vt 0.035120 0.485508 -vt 0.014366 0.484871 -vt 0.012247 0.485174 -vt 0.010251 0.485535 -vt 0.040468 0.487000 -vt 0.008363 0.485948 -vt 0.006567 0.486412 -vt 0.004849 0.486920 -vt 0.003191 0.487471 -vt 0.045766 0.489074 -vt 0.001580 0.488060 -vt 0.000000 0.488682 -vt 0.009605 0.535033 -vt 0.050987 0.491721 -vt 0.132620 0.693792 -vt 0.088290 0.489412 -vt 0.132620 0.489412 -vt 0.084596 0.525544 -vt 0.056105 0.494932 -vt 0.061091 0.498698 -vt 0.065920 0.503011 -vt 0.070564 0.507860 -vt 0.074996 0.513238 -vt 0.079190 0.519136 -vt 0.016391 0.533208 -vt 0.014719 0.533596 -vt 0.013039 0.534029 -vt 0.011339 0.534508 -vt 0.083118 0.525544 -vt 0.023259 0.532113 -vt 0.021490 0.532318 -vt 0.019764 0.532569 -vt 0.018068 0.532866 -vt 0.078685 0.571894 -vt 0.075575 0.564894 -vt 0.072179 0.558656 -vt 0.068538 0.553150 -vt 0.064688 0.548347 -vt 0.060670 0.544219 -vt 0.056520 0.540735 -vt 0.052278 0.537868 -vt 0.047983 0.535587 -vt 0.043672 0.533864 -vt 0.039384 0.532669 -vt 0.035157 0.531973 -vt 0.031031 0.531748 -vt 0.028958 0.531771 -vt 0.026981 0.531839 -vt 0.025086 0.531953 -vt 0.078685 0.693792 -vt 0.343555 0.270073 -vt 0.288882 0.044891 -vt 0.343555 0.000000 -vt 0.175841 0.000000 -vt 0.175841 0.044891 -vt 0.288882 0.107299 -vt 0.288882 0.152555 -vt 0.192834 0.107299 -vt 0.192834 0.152555 -vt 0.288882 0.224818 -vt 0.000000 0.703709 -vt 0.131696 0.703709 -vt 0.131696 0.714506 -vt 0.916252 0.609672 -vt 0.916252 0.739781 -vt 0.914116 0.739781 -vt 0.739066 0.811666 -vt 0.739066 0.941775 -vt 0.736796 0.941775 -vt 0.717198 0.941775 -vt 0.717198 0.811666 -vt 0.718894 0.811666 -vt 0.280391 0.972763 -vt 0.280391 0.842654 -vt 0.286716 0.842654 -vt 0.393453 0.842654 -vt 0.393453 0.972764 -vt 0.386676 0.972763 -vt 0.961733 0.609672 -vt 0.961733 0.739781 -vt 0.957061 0.739781 -vt 0.558392 0.973773 -vt 0.558392 0.843663 -vt 0.560462 0.843663 -vt 0.644885 0.973773 -vt 0.644885 0.843663 -vt 0.650663 0.843663 -vt 0.386676 0.842654 -vt 0.380393 0.972763 -vt 0.923522 0.609672 -vt 0.923522 0.739781 -vt 0.920940 0.739781 -vt 0.793762 0.570314 -vt 0.662066 0.570314 -vt 0.662066 0.553834 -vt 0.549165 0.973773 -vt 0.549165 0.843663 -vt 0.550904 0.843663 -vt 0.610237 0.843663 -vt 0.612307 0.843663 -vt 0.612307 0.973773 -vt 0.822592 0.869891 -vt 0.822592 1.000000 -vt 0.815816 1.000000 -vt 0.396827 0.693059 -vt 0.528523 0.693059 -vt 0.528523 0.697688 -vt 0.715444 0.941775 -vt 0.715444 0.811666 -vt 0.749745 0.130110 -vt 0.749745 0.000000 -vt 0.760787 0.000000 -vt 0.952060 0.260219 -vt 0.952060 0.130110 -vt 0.996252 0.130110 -vt 0.053834 0.960358 -vt 0.053834 0.830249 -vt 0.058761 0.830249 -vt 0.000000 0.799734 -vt 0.131696 0.799734 -vt 0.131696 0.810754 -vt 0.955807 0.609672 -vt 0.955807 0.479562 -vt 1.000000 0.479562 -vt 0.835339 0.130109 -vt 0.835339 0.000000 -vt 0.847061 0.000000 -vt 0.952216 0.869891 -vt 0.952216 0.739781 -vt 0.996409 0.739781 -vt 0.697517 0.941775 -vt 0.697517 0.811666 -vt 0.700277 0.811666 -vt 0.817025 0.609672 -vt 0.817025 0.479562 -vt 0.824637 0.479562 -vt 0.264316 0.779822 -vt 0.132620 0.779822 -vt 0.132620 0.763555 -vt 0.500979 0.973773 -vt 0.500979 0.843663 -vt 0.502689 0.843663 -vt 0.000000 0.714506 -vt 0.131696 0.726038 -vt 0.852290 0.609672 -vt 0.852290 0.739781 -vt 0.842836 0.739781 -vt 0.631826 0.843663 -vt 0.631826 0.973773 -vt 0.630063 0.973773 -vt 0.264316 0.708611 -vt 0.132620 0.708611 -vt 0.132620 0.697702 -vt 0.793762 0.553834 -vt 0.662066 0.538446 -vt 0.884784 0.609672 -vt 0.884784 0.479562 -vt 0.891347 0.479562 -vt 0.089888 0.960358 -vt 0.089888 0.830249 -vt 0.095991 0.830249 -vt 0.906593 0.270073 -vt 0.906593 0.400182 -vt 0.793762 0.400182 -vt 0.499283 0.973773 -vt 0.499283 0.843663 -vt 0.070062 0.960358 -vt 0.070062 0.830249 -vt 0.076405 0.830249 -vt 0.568743 0.973773 -vt 0.568743 0.843663 -vt 0.572949 0.843663 -vt 0.311896 0.972763 -vt 0.311896 0.842654 -vt 0.316837 0.842654 -vt 0.725449 0.811666 -vt 0.725449 0.941775 -vt 0.723796 0.941775 -vt 0.661142 0.839656 -vt 0.529446 0.839656 -vt 0.529446 0.835027 -vt 0.904905 0.609672 -vt 0.904905 0.739781 -vt 0.903252 0.739781 -vt 0.618017 0.843663 -vt 0.618017 0.973773 -vt 0.616184 0.973773 -vt 0.000000 0.810754 -vt 0.131696 0.820976 -vt 0.692190 0.941775 -vt 0.692190 0.811666 -vt 0.803756 0.869891 -vt 0.803756 1.000000 -vt 0.798495 1.000000 -vt 0.705277 0.941775 -vt 0.705277 0.811666 -vt 0.707547 0.811666 -vt 0.901973 0.609672 -vt 0.901973 0.479562 -vt 0.662066 0.941775 -vt 0.662066 0.811666 -vt 0.666737 0.811666 -vt 0.793762 0.646485 -vt 0.662066 0.646485 -vt 0.662066 0.637347 -vt 0.518091 0.973773 -vt 0.518091 0.843663 -vt 0.522266 0.843663 -vt 0.931608 0.609672 -vt 0.931608 0.739781 -vt 0.926282 0.739781 -vt 0.824637 0.609672 -vt 0.832887 0.479562 -vt 0.589407 0.843663 -vt 0.589407 0.973773 -vt 0.585350 0.973773 -vt 0.734660 0.811666 -vt 0.734660 0.941775 -vt 0.732641 0.941775 -vt 0.793762 0.488769 -vt 0.662066 0.488769 -vt 0.824980 0.609672 -vt 0.824980 0.739781 -vt 0.817127 0.739781 -vt 0.720547 0.941775 -vt 0.720547 0.811666 -vt 0.722171 0.811666 -vt 0.784873 0.130109 -vt 0.784873 0.000000 -vt 0.797618 0.000000 -vt 0.906601 0.609672 -vt 0.906601 0.739781 -vt 0.554515 0.973773 -vt 0.554515 0.843663 -vt 0.556414 0.843663 -vt 0.891347 0.609672 -vt 0.897090 0.479562 -vt 0.396012 0.828743 -vt 0.264316 0.828743 -vt 0.264316 0.822799 -vt 0.095991 0.960358 -vt 0.101486 0.830249 -vt 0.223020 0.845800 -vt 0.223020 0.975910 -vt 0.178003 0.975910 -vt 0.762648 0.811666 -vt 0.762648 0.941775 -vt 0.757435 0.941775 -vt 0.264316 0.763555 -vt 0.132620 0.748242 -vt 0.650663 0.973773 -vt 0.655923 0.843663 -vt 0.178003 0.845800 -vt 0.132620 0.975909 -vt 0.890963 0.609672 -vt 0.890963 0.739781 -vt 0.884517 0.739781 -vt 0.064176 0.960358 -vt 0.064176 0.830249 -vt 0.264316 0.733940 -vt 0.132620 0.733940 -vt 0.132620 0.720710 -vt 0.513986 0.973773 -vt 0.513986 0.843663 -vt 0.623245 0.843663 -vt 0.623245 0.973773 -vt 0.621534 0.973773 -vt 0.793762 0.601285 -vt 0.662066 0.601285 -vt 0.662066 0.586474 -vt 0.396827 0.689051 -vt 0.528523 0.689051 -vt 0.374616 0.842654 -vt 0.374616 0.972763 -vt 0.369356 0.972763 -vt 0.728899 0.811666 -vt 0.728899 0.941775 -vt 0.727145 0.941775 -vt 0.581293 0.973773 -vt 0.581293 0.843663 -vt 0.585350 0.843663 -vt 0.552683 0.973773 -vt 0.552683 0.843663 -vt 0.083187 0.960358 -vt 0.083187 0.830249 -vt 0.495887 0.973773 -vt 0.495887 0.843663 -vt 0.497590 0.843663 -vt 0.396012 0.834017 -vt 0.264316 0.834017 -vt 0.936891 0.609672 -vt 0.936891 0.739781 -vt 0.662066 0.270073 -vt 0.793762 0.270073 -vt 0.793762 0.439465 -vt 0.661142 0.835027 -vt 0.529446 0.829752 -vt 0.777606 0.811666 -vt 0.777606 0.941775 -vt 0.772759 0.941775 -vt 0.000000 0.775910 -vt 0.131696 0.775910 -vt 0.131696 0.788069 -vt 0.889631 0.869890 -vt 0.889631 0.739781 -vt 0.858102 0.130109 -vt 0.858102 0.000000 -vt 0.868307 0.000000 -vt 0.741484 0.811666 -vt 0.741484 0.941775 -vt 0.000000 0.738158 -vt 0.131696 0.738158 -vt 0.131696 0.750719 -vt 0.540636 0.973773 -vt 0.540636 0.843663 -vt 0.542363 0.843663 -vt 0.793762 0.524197 -vt 0.662066 0.524197 -vt 0.662066 0.511135 -vt 0.832887 0.609672 -vt 0.841733 0.479562 -vt 0.910182 0.609672 -vt 0.910182 0.739781 -vt 0.908355 0.739781 -vt 0.264316 0.810695 -vt 0.132620 0.810695 -vt 0.132620 0.795995 -vt 0.912097 0.609672 -vt 0.912097 0.739781 -vt 0.833562 0.609672 -vt 0.833562 0.739781 -vt 0.616184 0.843663 -vt 0.614285 0.973773 -vt 0.396012 0.688042 -vt 0.264316 0.688042 -vt 0.264316 0.484303 -vt 0.897090 0.609672 -vt 0.711702 0.941775 -vt 0.711702 0.811666 -vt 0.713617 0.811666 -vt 0.577146 0.973773 -vt 0.577146 0.843663 -vt 0.896681 0.609672 -vt 0.896681 0.739781 -vt 0.809533 0.869891 -vt 0.809533 1.000000 -vt 0.626633 0.843663 -vt 0.626633 0.973773 -vt 0.624940 0.973773 -vt 0.772546 0.130110 -vt 0.772546 0.000000 -vt 0.942104 0.609672 -vt 0.942104 0.739781 -vt 0.509938 0.973773 -vt 0.509938 0.843663 -vt 0.511916 0.843663 -vt 0.058761 0.960358 -vt 0.369356 0.842654 -vt 0.364622 0.972763 -vt 0.810091 0.609672 -vt 0.810091 0.479562 -vt 0.396012 0.842654 -vt 0.264316 0.842654 -vt 0.264316 0.838646 -vt 0.396827 0.715542 -vt 0.528523 0.715542 -vt 0.528523 0.722894 -vt 0.960427 0.270073 -vt 0.264316 0.845800 -vt 0.132620 0.845800 -vt 0.132620 0.835614 -vt 0.847061 0.130109 -vt 0.504427 0.973773 -vt 0.504427 0.843663 -vt 0.506206 0.843663 -vt 0.746826 0.811666 -vt 0.746826 0.941775 -vt 0.744066 0.941775 -vt 0.655923 0.973773 -vt 0.660657 0.843663 -vt 0.538873 0.973773 -vt 0.538873 0.843663 -vt 0.597750 0.843663 -vt 0.597750 0.973773 -vt 0.593554 0.973773 -vt 0.877442 0.609672 -vt 0.877442 0.479562 -vt 0.709683 0.941775 -vt 0.709683 0.811666 -vt 0.914116 0.609672 -vt 0.793762 0.511135 -vt 0.662066 0.499310 -vt 0.842836 0.609672 -vt 0.444612 0.973773 -vt 0.444612 0.843663 -vt 0.492397 0.843663 -vt 0.076405 0.960358 -vt 0.380393 0.842654 -vt 0.638603 0.973773 -vt 0.638603 0.843663 -vt 0.550904 0.973773 -vt 0.901627 0.609672 -vt 0.901627 0.739781 -vt 0.815816 0.869891 -vt 0.661142 0.823809 -vt 0.529446 0.823809 -vt 0.529446 0.817173 -vt 0.760787 0.130110 -vt 0.793762 0.626749 -vt 0.662066 0.626749 -vt 0.662066 0.614719 -vt 0.798495 0.869891 -vt 0.793762 1.000000 -vt 0.793762 0.811666 -vt 0.610237 0.973773 -vt 0.606133 0.973773 -vt 0.681695 0.941775 -vt 0.681695 0.811666 -vt 0.686908 0.811666 -vt 0.572949 0.973773 -vt 0.752153 0.811666 -vt 0.752153 0.941775 -vt 0.793762 0.609672 -vt 0.793762 0.479562 -vt 0.798419 0.479562 -vt 0.000000 0.750719 -vt 0.131696 0.763410 -vt 0.926282 0.609672 -vt 0.506206 0.973773 -vt 0.508039 0.843663 -vt 0.132620 0.688042 -vt 0.396827 0.697688 -vt 0.528523 0.702962 -vt 0.526473 0.973773 -vt 0.526473 0.843663 -vt 0.530669 0.843663 -vt 0.797618 0.130109 -vt 0.810464 0.000000 -vt 0.396827 0.973773 -vt 0.396827 0.843663 -vt 0.997465 0.609672 -vt 0.614285 0.843663 -vt 0.793762 0.637347 -vt 0.264316 0.835614 -vt 0.132620 0.823907 -vt 0.851135 0.609672 -vt 0.851135 0.479562 -vt 0.860577 0.479562 -vt 0.492397 0.973773 -vt 0.494160 0.843663 -vt 0.264316 0.720710 -vt 0.628336 0.843663 -vt 0.628336 0.973773 -vt 0.707547 0.941775 -vt 0.817127 0.609672 -vt 0.810041 0.739781 -vt 0.986157 0.000000 -vt 0.986157 0.130109 -vt 0.940774 0.130109 -vt 0.727145 0.811666 -vt 0.884517 0.609672 -vt 0.877384 0.739781 -vt 0.757435 0.811666 -vt 0.798321 0.609672 -vt 0.798321 0.739781 -vt 0.793762 0.739781 -vt 0.686908 0.941775 -vt 0.730726 0.811666 -vt 0.730726 0.941775 -vt 0.952215 0.609672 -vt 0.947221 0.739781 -vt 0.530669 0.973773 -vt 0.534816 0.843663 -vt 0.396012 0.816163 -vt 0.264316 0.816163 -vt 0.264316 0.808811 -vt 0.666737 0.941776 -vt 0.671583 0.811666 -vt 0.630063 0.843663 -vt 0.508039 0.973773 -vt 0.793762 0.499310 -vt 0.269176 0.972764 -vt 0.269176 0.842654 -vt 0.274539 0.842654 -vt 0.606133 0.843663 -vt 0.601957 0.973773 -vt 0.732641 0.811666 -vt 0.823089 0.130109 -vt 0.823089 0.000000 -vt 0.556414 0.973773 -vt 0.798419 0.609672 -vt 0.803875 0.479562 -vt 0.494160 0.973773 -vt 0.396827 0.702962 -vt 0.528523 0.708906 -vt 0.396012 0.808811 -vt 0.661142 0.817173 -vt 0.529446 0.809820 -vt 0.856309 0.260219 -vt 0.739567 0.260219 -vt 0.739567 0.130110 -vt 0.547455 0.973773 -vt 0.547455 0.843663 -vt 0.861228 0.609672 -vt 0.861228 0.739781 -vt 0.793762 0.869891 -vt 0.918522 0.609672 -vt 0.918522 0.739781 -vt 0.860577 0.609672 -vt 0.869359 0.479562 -vt 0.793762 0.614719 -vt 0.783750 0.941775 -vt 0.783750 0.811666 -vt 0.785223 0.811666 -vt 0.996159 0.270073 -vt 0.996159 0.400182 -vt 0.960427 0.400182 -vt 0.306352 0.972763 -vt 0.306352 0.842654 -vt 0.000000 0.726038 -vt 0.274539 0.972763 -vt 0.534816 0.973773 -vt 0.793762 0.538446 -vt 0.957061 0.609672 -vt 0.624940 0.843663 -vt 0.792289 0.941775 -vt 0.792289 0.811666 -vt 0.739567 0.203739 -vt 0.607871 0.203739 -vt 0.607871 0.000000 -vt 0.601957 0.843663 -vt 0.782277 0.811666 -vt 0.782277 0.941775 -vt 0.739567 0.000000 -vt 0.564567 0.973773 -vt 0.564567 0.843663 -vt 0.920940 0.609672 -vt 0.000000 0.763410 -vt 0.000000 0.820976 -vt 0.131696 0.830249 -vt 0.475251 0.269226 -vt 0.343555 0.269226 -vt 0.744066 0.811666 -vt 0.702859 0.941775 -vt 0.702859 0.811666 -vt 0.396827 0.708906 -vt 0.000000 0.960358 -vt 0.000000 0.830249 -vt 0.264316 0.823907 -vt 0.364622 0.842654 -vt 0.316837 0.972763 -vt 0.671583 0.941775 -vt 0.676578 0.811666 -vt 0.545760 0.973773 -vt 0.545760 0.843663 -vt 0.542363 0.973773 -vt 0.544067 0.843663 -vt 0.502689 0.973773 -vt 0.000000 0.693792 -vt 0.131696 0.693792 -vt 0.718894 0.941775 -vt 0.258752 0.845800 -vt 0.258752 0.975909 -vt 0.783750 0.811666 -vt 0.713617 0.941775 -vt 0.903252 0.609672 -vt 0.264316 0.748242 -vt 0.264316 0.697702 -vt 0.723796 0.811666 -vt 0.722172 0.941775 -vt 0.619796 0.843663 -vt 0.619796 0.973773 -vt 0.810041 0.609672 -vt 0.803760 0.739781 -vt 0.803760 0.609672 -vt 0.522266 0.973773 -vt 0.497590 0.973773 -vt 0.940774 0.000000 -vt 0.868307 0.130109 -vt 0.661142 0.829752 -vt 0.810464 0.130110 -vt 0.803875 0.609672 -vt 0.101486 0.960358 -vt 0.106364 0.830249 -vt 0.676578 0.941776 -vt 0.661142 0.809820 -vt 0.529446 0.689051 -vt 0.841733 0.609672 -vt 0.793762 0.586474 -vt 0.869607 0.609672 -vt 0.869607 0.739781 -vt 0.736796 0.811666 -vt 0.908355 0.609672 -vt 0.869359 0.609672 -vt 0.293498 0.972763 -vt 0.293498 0.842654 -vt 0.300216 0.842654 -vt 0.661142 0.843663 -vt 0.529446 0.843663 -vt 0.286716 0.972763 -vt 0.621534 0.843663 -vt 0.560462 0.973773 -vt 0.300216 0.972763 -vt 0.767765 0.811666 -vt 0.767765 0.941775 -vt 0.947221 0.609672 -vt 0.000000 0.788069 -vt 0.511916 0.973773 -vt 0.264316 0.972764 -vt 0.772759 0.811666 -vt 0.700277 0.941775 -vt 0.396012 0.822799 -vt 0.396827 0.722894 -vt 0.528523 0.843663 -vt 0.396012 0.838646 -vt 0.264316 0.795995 -vt 0.544067 0.973773 -vt 0.593554 0.843663 -vt 0.996252 0.260219 -vt 1.000000 0.609672 -vt 0.996409 0.869891 -vt 0.662066 0.439465 -vt 0.396012 0.484303 -vt 0.660657 0.973773 -vt 0.132620 0.484303 -vt 0.997465 0.739781 -vt 0.856309 0.130110 -vt 0.785223 0.941775 -vt 0.793762 0.941775 -vt 0.475251 0.000000 -vt 0.106364 0.960358 -vt 0.661142 0.689051 -vn -1.000000 -0.000000 0.000000 -vn -1.000000 0.000100 0.000000 -vn -1.000000 0.000200 0.000000 -vn -1.000000 -0.000100 -0.000000 -vn 1.000000 0.000100 0.000000 -vn 1.000000 0.000000 0.000000 -vn 1.000000 -0.000100 0.000000 -vn 1.000000 -0.000200 0.000000 -vn 1.000000 -0.000500 0.000100 -vn 0.000000 0.898000 0.440100 -vn 0.000000 0.989700 -0.143500 -vn 0.000000 0.994100 -0.108200 -vn 0.000000 0.947800 -0.318800 -vn 0.000000 -0.970700 0.240300 -vn 0.000000 0.518000 0.855400 -vn 0.000000 0.794500 0.607300 -vn -0.000000 -0.999900 0.011200 -vn -0.000000 0.631400 0.775500 -vn 0.000000 0.574900 0.818300 -vn 0.000000 0.999100 -0.042900 -vn -0.000000 0.058000 0.998300 -vn -0.000000 -0.989300 0.145600 -vn 0.000000 -0.999900 0.011100 -vn 0.000000 -0.693200 -0.720800 -vn 0.000000 0.957900 -0.287000 -vn 0.000000 -0.898400 -0.439100 -vn 0.000000 1.000000 -0.000000 -vn 0.000000 0.730300 -0.683200 -vn 0.000000 0.831400 -0.555600 -vn 0.000000 -0.898400 0.439100 -vn 0.000000 0.999900 -0.013700 -vn 0.000000 0.287300 0.957800 -vn 0.000000 -0.058600 -0.998300 -vn 0.000000 -0.984700 0.174300 -vn 0.000000 0.948000 0.318300 -vn 0.000000 -0.034600 -0.999400 -vn -0.000000 -0.956200 0.292900 -vn 0.000000 -0.654500 -0.756100 -vn -0.000000 0.179000 0.983900 -vn 0.000000 -0.385900 0.922600 -vn 0.000000 0.971500 0.237100 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 -0.979300 0.202200 -vn 0.000000 0.971500 -0.237100 -vn 0.000000 -0.962500 -0.271400 -vn 0.000000 -0.830400 -0.557200 -vn 0.000000 0.937900 -0.346900 -vn 0.000000 -0.996100 0.088200 -vn 0.000000 0.749200 -0.662400 -vn -0.000000 0.998400 0.057000 -vn 0.000000 0.687300 0.726400 -vn -0.000000 -0.654500 0.756100 -vn 0.000000 -0.986400 -0.164300 -vn 0.000000 0.194300 0.980900 -vn 0.000000 -0.825300 -0.564700 -vn 0.000000 0.983700 -0.179900 -vn -0.000000 0.749200 0.662400 -vn 0.000000 0.194300 -0.980900 -vn 0.000000 0.928800 -0.370500 -vn -0.000000 -0.997900 -0.064200 -vn -0.000000 -0.998100 0.060800 -vn 0.000000 -0.495900 0.868400 -vn 0.000000 -0.547000 -0.837100 -vn 0.000000 0.916500 0.399900 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.962300 0.271800 -vn 0.000000 -0.180600 -0.983600 -vn 0.000000 -0.495900 -0.868400 -vn 0.000000 0.916500 -0.399900 -vn -0.000000 -0.428300 -0.903600 -vn 0.000000 -0.998500 -0.055200 -vn -0.000000 -0.180600 0.983600 -vn 0.000000 -0.762000 -0.647500 -vn 0.000000 0.997100 0.076200 -vn 0.000000 -0.967600 0.252700 -vn 0.000000 -0.620800 -0.784000 -vn 0.000000 0.985900 0.167600 -vn 0.000000 0.844100 0.536100 -vn 0.000000 0.948000 -0.318300 -vn 0.000000 -0.750700 0.660700 -vn 0.000000 0.997200 -0.074500 -vn 0.000000 0.997900 0.064200 -vn -0.000000 -0.961700 0.274200 -vn 0.000000 0.425800 0.904800 -vn 0.000000 0.110500 0.993900 -vn 0.000000 0.967600 -0.252600 -vn 0.000000 0.179000 -0.983900 -vn 0.000000 0.976300 -0.216500 -vn 0.000000 0.110500 -0.993900 -vn 0.000000 -0.998200 0.060800 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -0.611200 0.791400 -vn 0.000000 -0.880900 -0.473400 -vn 0.000000 -0.611200 -0.791400 -vn 0.000000 -0.973500 0.228500 -vn -0.000000 -0.981400 -0.192100 -vn 0.000000 -0.999400 0.035000 -vn 0.000000 0.833800 -0.552100 -vn 0.000000 0.741800 0.670600 -vn 0.000000 0.389700 0.920900 -vn 0.000000 -0.402000 -0.915600 -vn 0.000000 0.543600 -0.839300 -vn 0.000000 -0.832400 0.554200 -vn 0.000000 -0.993200 0.116600 -vn 0.000000 -0.927000 -0.375100 -vn 0.000000 -0.284400 0.958700 -vn -0.000000 0.543600 0.839300 -vn 0.000000 0.034900 -0.999400 -vn 0.000000 -0.200600 -0.979700 -vn 0.000000 0.997100 -0.076200 -vn 0.000000 -0.725800 -0.687900 -vn 0.000000 -0.473600 -0.880800 -vn 0.000000 -0.948200 -0.317700 -vn -0.000000 -0.428300 0.903600 -vn 0.000000 0.730300 0.683200 -vn 0.000000 0.997900 -0.064200 -vn -0.000000 -0.997900 0.064200 -vn 0.000000 0.100500 -0.994900 -vn -0.000000 -0.546000 0.837800 -vn 0.000000 0.425800 -0.904800 -vn 0.000000 -0.034600 0.999400 -vn 0.000000 -0.546000 -0.837800 -vn 0.000000 0.287300 -0.957800 -vn 0.000000 -0.385900 -0.922600 -vn 0.000000 0.616100 -0.787700 -vn 0.000000 0.889700 0.456600 -vn -0.000000 0.652500 0.757800 -vn 0.000000 -0.830400 0.557200 -vn 0.000000 -0.948200 0.317700 -vn 0.000000 0.616100 0.787700 -vn 0.000000 -0.402000 -0.915700 -vn 0.000000 -0.109400 -0.994000 -vn 0.000000 -0.109400 0.994000 -vn 0.000000 -0.305100 0.952300 -vn 0.000000 -0.914500 -0.404500 -vn 0.000000 0.981300 0.192400 -vn 0.000000 -0.914500 0.404500 -vn -0.000000 0.302900 0.953000 -vn 0.000000 -0.832400 -0.554200 -vn 0.000000 0.981300 -0.192400 -vn 0.000000 0.652500 -0.757800 -vn 0.000000 0.302900 -0.953000 -vn 0.000000 0.831500 0.555600 -vn 0.000000 -0.305100 -0.952300 -vn 0.000000 -0.750700 -0.660700 -vn 0.000000 0.389700 -0.920900 -vn 0.000000 0.500400 -0.865800 -vn -0.000000 -0.981400 0.192100 -vn 0.000000 0.500400 0.865800 -vn 0.000000 0.833800 0.552100 -vn -0.000000 0.929700 0.368400 -vn 0.000000 0.034900 0.999400 -vn -0.000000 -0.058600 0.998300 -vn 0.000000 -0.192300 -0.981300 -vn 0.000000 -0.284400 -0.958700 -vn 0.000000 -0.192300 0.981300 -vn 0.000000 -0.997000 -0.077300 -vn 0.000000 -0.997000 0.077300 -vn 0.000000 -0.970700 -0.240300 -vn 0.000000 0.898000 -0.440100 -vn 0.000000 -0.725800 0.687900 -vn 0.000000 0.058000 -0.998300 -vn 0.000000 0.999100 -0.043000 -vn 0.000000 0.831500 -0.555600 -vn 0.000000 0.928800 -0.370600 -vn 0.000000 -0.956200 0.292800 -vn 0.000000 0.831400 0.555600 -s off -f 41/1/1 40/2/1 39/3/1 -f 41/1/1 39/3/1 38/4/1 -f 41/1/1 38/4/1 37/5/1 -f 42/6/1 41/1/1 37/5/1 -f 42/6/1 37/5/1 36/7/1 -f 42/6/1 36/7/1 35/8/1 -f 42/6/1 35/8/1 34/9/1 -f 43/10/1 42/6/1 34/9/1 -f 43/10/1 34/9/1 33/11/1 -f 43/10/1 33/11/1 32/12/1 -f 43/10/1 32/12/1 31/13/1 -f 43/10/1 31/13/1 30/14/1 -f 44/15/1 43/10/1 30/14/1 -f 44/15/1 30/14/1 29/16/1 -f 44/15/1 29/16/1 28/17/1 -f 44/15/1 28/17/1 27/18/1 -f 45/19/1 44/15/1 27/18/1 -f 1/20/1 55/21/1 54/22/1 -f 1/20/1 54/22/1 53/23/1 -f 46/24/1 45/19/1 27/18/1 -f 47/25/1 46/24/1 27/18/1 -f 48/26/1 47/25/1 27/18/1 -f 49/27/1 48/26/1 27/18/1 -f 50/28/1 49/27/1 27/18/1 -f 51/29/1 50/28/1 23/30/1 -f 23/30/1 50/28/1 24/31/1 -f 24/31/1 50/28/1 25/32/1 -f 25/32/2 50/28/2 26/33/2 -f 26/33/1 50/28/1 27/18/1 -f 52/34/1 51/29/1 19/35/1 -f 19/35/1 51/29/1 20/36/1 -f 20/36/1 51/29/1 21/37/1 -f 21/37/1 51/29/1 22/38/1 -f 22/38/3 51/29/3 23/30/3 -f 1/20/1 53/23/1 52/34/1 -f 1/20/1 52/34/1 3/39/1 -f 3/39/1 52/34/1 4/40/1 -f 4/40/1 52/34/1 5/41/1 -f 5/41/1 52/34/1 6/42/1 -f 6/42/1 52/34/1 7/43/1 -f 7/43/1 52/34/1 8/44/1 -f 8/44/1 52/34/1 9/45/1 -f 9/45/1 52/34/1 10/46/1 -f 10/46/1 52/34/1 11/47/1 -f 11/47/1 52/34/1 12/48/1 -f 12/48/1 52/34/1 13/49/1 -f 13/49/1 52/34/1 14/50/1 -f 14/50/1 52/34/1 15/51/1 -f 15/51/1 52/34/1 16/52/1 -f 16/52/2 52/34/2 17/53/2 -f 17/53/1 52/34/1 18/54/1 -f 18/54/1 52/34/1 19/35/1 -f 1/20/1 3/39/1 2/55/1 -f 81/56/1 80/57/1 79/58/1 -f 81/56/1 79/58/1 78/59/1 -f 82/60/1 81/56/1 78/59/1 -f 82/60/1 78/59/1 77/61/1 -f 83/62/1 82/60/1 77/61/1 -f 83/62/1 77/61/1 76/63/1 -f 84/64/1 83/62/1 76/63/1 -f 85/65/1 84/64/1 76/63/1 -f 85/65/1 76/63/1 75/66/1 -f 86/67/1 85/65/1 75/66/1 -f 86/67/1 75/66/1 74/68/1 -f 87/69/1 86/67/1 74/68/1 -f 87/69/1 74/68/1 73/70/1 -f 88/71/1 87/69/1 73/70/1 -f 88/71/1 73/70/1 128/72/1 -f 128/72/1 73/70/1 72/73/1 -f 88/71/2 128/72/2 127/74/2 -f 129/75/1 128/72/1 72/73/1 -f 88/71/1 127/74/1 126/76/1 -f 130/77/1 129/75/1 72/73/1 -f 88/71/1 126/76/1 125/78/1 -f 131/79/1 130/77/1 72/73/1 -f 88/71/1 125/78/1 124/80/1 -f 132/81/1 131/79/1 72/73/1 -f 89/82/1 88/71/1 124/80/1 -f 132/81/1 72/73/1 71/83/1 -f 89/82/1 124/80/1 123/84/1 -f 133/85/1 132/81/1 71/83/1 -f 89/82/1 123/84/1 122/86/1 -f 134/87/1 133/85/1 71/83/1 -f 89/82/1 122/86/1 121/88/1 -f 135/89/1 134/87/1 71/83/1 -f 90/90/1 89/82/1 121/88/1 -f 135/89/1 71/83/1 70/91/1 -f 90/90/1 121/88/1 120/92/1 -f 136/93/1 135/89/1 70/91/1 -f 90/90/1 120/92/1 119/94/1 -f 137/95/1 136/93/1 70/91/1 -f 91/96/1 90/90/1 119/94/1 -f 137/95/1 70/91/1 69/97/1 -f 91/96/1 119/94/1 118/98/1 -f 138/99/1 137/95/1 69/97/1 -f 91/96/1 118/98/1 117/100/1 -f 139/101/1 138/99/1 69/97/1 -f 92/102/1 91/96/1 117/100/1 -f 139/101/1 69/97/1 68/103/1 -f 92/102/1 117/100/1 116/104/1 -f 140/105/1 139/101/1 68/103/1 -f 93/106/1 92/102/1 116/104/1 -f 93/106/1 116/104/1 115/107/1 -f 141/108/1 140/105/1 68/103/1 -f 141/108/1 68/103/1 67/109/1 -f 93/106/1 115/107/1 114/110/1 -f 142/111/1 141/108/1 67/109/1 -f 94/112/1 93/106/1 114/110/1 -f 142/111/1 67/109/1 66/113/1 -f 94/112/1 114/110/1 113/114/1 -f 143/115/1 142/111/1 66/113/1 -f 94/112/1 113/114/1 112/116/1 -f 144/117/1 143/115/1 66/113/1 -f 95/118/1 94/112/1 112/116/1 -f 144/117/1 66/113/1 65/119/1 -f 95/118/1 112/116/1 111/120/1 -f 145/121/1 144/117/1 65/119/1 -f 95/118/1 111/120/1 110/122/1 -f 146/123/1 145/121/1 65/119/1 -f 96/124/1 95/118/1 110/122/1 -f 146/123/1 65/119/1 64/125/1 -f 96/124/1 110/122/1 109/126/1 -f 147/127/1 146/123/1 64/125/1 -f 96/124/1 109/126/1 108/128/1 -f 148/129/1 147/127/1 64/125/1 -f 96/124/1 108/128/1 107/130/1 -f 149/131/1 148/129/1 64/125/1 -f 97/132/1 96/124/1 107/130/1 -f 149/131/1 64/125/1 63/133/1 -f 97/132/1 107/130/1 106/134/1 -f 150/135/1 149/131/1 63/133/1 -f 97/132/1 106/134/1 105/136/1 -f 151/137/1 150/135/1 63/133/1 -f 97/132/1 105/136/1 104/138/1 -f 104/138/1 151/137/1 63/133/1 -f 97/132/1 104/138/1 63/133/1 -f 98/139/1 97/132/1 63/133/1 -f 98/139/1 63/133/1 62/140/1 -f 99/141/1 98/139/1 62/140/1 -f 99/141/1 62/140/1 61/142/1 -f 100/143/1 99/141/1 61/142/1 -f 100/143/1 61/142/1 60/144/1 -f 101/145/1 100/143/1 60/144/1 -f 101/145/1 60/144/1 59/146/1 -f 102/147/1 101/145/1 59/146/1 -f 102/147/1 59/146/1 58/148/1 -f 103/149/1 102/147/1 58/148/1 -f 103/149/1 58/148/1 57/150/1 -f 56/151/1 103/149/1 57/150/1 -f 192/152/1 191/153/1 190/154/1 -f 192/152/4 190/154/4 189/155/4 -f 192/152/1 189/155/1 188/156/1 -f 193/157/1 192/152/1 188/156/1 -f 193/157/1 188/156/1 187/158/1 -f 193/157/1 187/158/1 186/159/1 -f 193/157/1 186/159/1 185/160/1 -f 194/161/1 193/157/1 185/160/1 -f 194/161/1 185/160/1 184/162/1 -f 194/161/1 184/162/1 183/163/1 -f 194/161/1 183/163/1 182/164/1 -f 194/161/1 182/164/1 181/165/1 -f 195/166/1 194/161/1 181/165/1 -f 195/166/1 181/165/1 180/167/1 -f 195/166/1 180/167/1 179/168/1 -f 195/166/1 179/168/1 178/169/1 -f 196/170/1 195/166/1 178/169/1 -f 152/171/1 206/172/1 205/173/1 -f 152/171/1 205/173/1 204/174/1 -f 197/175/1 196/170/1 178/169/1 -f 198/176/1 197/175/1 178/169/1 -f 199/177/1 198/176/1 178/169/1 -f 200/178/1 199/177/1 178/169/1 -f 201/179/1 200/178/1 178/169/1 -f 202/180/1 201/179/1 174/181/1 -f 174/181/1 201/179/1 175/182/1 -f 175/182/1 201/179/1 176/183/1 -f 176/183/1 201/179/1 177/184/1 -f 177/184/1 201/179/1 178/169/1 -f 203/185/1 202/180/1 170/186/1 -f 170/186/1 202/180/1 171/187/1 -f 171/187/1 202/180/1 172/188/1 -f 172/188/1 202/180/1 173/189/1 -f 173/189/1 202/180/1 174/181/1 -f 152/171/1 204/174/1 203/185/1 -f 152/171/1 203/185/1 154/190/1 -f 154/190/1 203/185/1 155/191/1 -f 155/191/1 203/185/1 156/192/1 -f 156/192/1 203/185/1 157/193/1 -f 157/193/1 203/185/1 158/194/1 -f 158/194/1 203/185/1 159/195/1 -f 159/195/1 203/185/1 160/196/1 -f 160/196/1 203/185/1 161/197/1 -f 161/197/1 203/185/1 162/198/1 -f 162/198/1 203/185/1 163/199/1 -f 163/199/1 203/185/1 164/200/1 -f 164/200/1 203/185/1 165/201/1 -f 165/201/1 203/185/1 166/202/1 -f 166/202/1 203/185/1 167/203/1 -f 167/203/1 203/185/1 168/204/1 -f 168/204/1 203/185/1 169/205/1 -f 169/205/1 203/185/1 170/186/1 -f 152/171/1 154/190/1 153/206/1 -f 247/207/1 246/208/1 245/209/1 -f 247/207/1 245/209/1 244/210/1 -f 247/207/1 244/210/1 243/211/1 -f 248/212/1 247/207/1 243/211/1 -f 248/212/1 243/211/1 242/213/1 -f 248/212/1 242/213/1 241/214/1 -f 248/212/1 241/214/1 240/215/1 -f 249/216/1 248/212/1 240/215/1 -f 249/216/1 240/215/1 239/217/1 -f 249/216/1 239/217/1 238/218/1 -f 249/216/1 238/218/1 237/219/1 -f 249/216/1 237/219/1 236/220/1 -f 250/221/1 249/216/1 236/220/1 -f 250/221/1 236/220/1 235/222/1 -f 250/221/1 235/222/1 234/223/1 -f 250/221/1 234/223/1 233/224/1 -f 251/225/1 250/221/1 233/224/1 -f 207/226/1 261/227/1 260/228/1 -f 207/226/1 260/228/1 259/229/1 -f 252/230/1 251/225/1 233/224/1 -f 253/231/1 252/230/1 233/224/1 -f 254/232/1 253/231/1 233/224/1 -f 255/233/1 254/232/1 233/224/1 -f 256/234/1 255/233/1 233/224/1 -f 257/235/1 256/234/1 229/236/1 -f 229/236/1 256/234/1 230/237/1 -f 230/237/1 256/234/1 231/238/1 -f 231/238/1 256/234/1 232/239/1 -f 232/239/1 256/234/1 233/224/1 -f 258/240/1 257/235/1 225/241/1 -f 225/241/1 257/235/1 226/242/1 -f 226/242/1 257/235/1 227/243/1 -f 227/243/1 257/235/1 228/244/1 -f 228/244/1 257/235/1 229/236/1 -f 207/226/1 259/229/1 258/240/1 -f 207/226/1 258/240/1 209/245/1 -f 209/245/1 258/240/1 210/246/1 -f 210/246/1 258/240/1 211/247/1 -f 211/247/1 258/240/1 212/248/1 -f 212/248/1 258/240/1 213/249/1 -f 213/249/1 258/240/1 214/250/1 -f 214/250/1 258/240/1 215/251/1 -f 215/251/1 258/240/1 216/252/1 -f 216/252/1 258/240/1 217/253/1 -f 217/253/1 258/240/1 218/254/1 -f 218/254/1 258/240/1 219/255/1 -f 219/255/1 258/240/1 220/256/1 -f 220/256/1 258/240/1 221/257/1 -f 221/257/1 258/240/1 222/258/1 -f 222/258/1 258/240/1 223/259/1 -f 223/259/1 258/240/1 224/260/1 -f 224/260/1 258/240/1 225/241/1 -f 207/226/1 209/245/1 208/261/1 -f 262/262/1 273/263/1 270/264/1 -f 270/264/1 273/263/1 272/265/1 -f 270/264/1 272/265/1 271/266/1 -f 262/262/1 270/264/1 269/267/1 -f 262/262/1 269/267/1 266/268/1 -f 266/268/1 269/267/1 268/269/1 -f 266/268/1 268/269/1 267/270/1 -f 262/262/1 266/268/1 265/271/1 -f 262/262/1 265/271/1 264/272/1 -f 262/262/1 264/272/1 263/273/1 -f 426/274/5 336/275/5 337/276/5 -f 426/274/6 479/277/6 336/275/6 -f 426/274/6 478/278/6 479/277/6 -f 308/279/6 478/278/6 426/274/6 -f 308/279/6 307/280/6 478/278/6 -f 308/279/6 466/281/6 307/280/6 -f 308/279/6 512/282/6 466/281/6 -f 415/283/6 512/282/6 308/279/6 -f 415/283/6 414/284/6 512/282/6 -f 415/283/6 441/285/6 414/284/6 -f 415/283/6 489/286/6 441/285/6 -f 415/283/6 465/287/6 489/286/6 -f 409/288/6 465/287/6 415/283/6 -f 409/288/6 408/289/6 465/287/6 -f 409/288/6 539/290/6 408/289/6 -f 409/288/6 295/291/6 539/290/6 -f 475/292/6 295/291/6 409/288/6 -f 380/293/6 482/294/6 526/295/6 -f 380/293/6 463/296/6 482/294/6 -f 476/297/6 295/291/6 475/292/6 -f 296/298/6 295/291/6 476/297/6 -f 329/299/6 295/291/6 296/298/6 -f 424/300/6 295/291/6 329/299/6 -f 439/301/6 295/291/6 424/300/6 -f 348/302/6 487/303/6 439/301/6 -f 487/303/6 438/304/6 439/301/6 -f 438/304/6 358/305/6 439/301/6 -f 358/305/7 359/306/7 439/301/7 -f 359/306/6 295/291/6 439/301/6 -f 367/307/6 523/308/6 348/302/6 -f 523/308/6 538/309/6 348/302/6 -f 538/309/6 347/310/6 348/302/6 -f 347/310/6 486/311/6 348/302/6 -f 486/311/8 487/303/8 348/302/8 -f 380/293/6 367/307/6 463/296/6 -f 380/293/6 449/312/6 367/307/6 -f 449/312/6 541/313/6 367/307/6 -f 541/313/6 391/314/6 367/307/6 -f 391/314/6 499/315/6 367/307/6 -f 499/315/6 494/316/6 367/307/6 -f 494/316/6 448/317/6 367/307/6 -f 448/317/6 368/318/6 367/307/6 -f 368/318/6 369/319/6 367/307/6 -f 369/319/6 524/320/6 367/307/6 -f 524/320/6 540/321/6 367/307/6 -f 540/321/6 366/322/6 367/307/6 -f 366/322/6 488/323/6 367/307/6 -f 488/323/6 492/324/6 367/307/6 -f 492/324/6 447/325/6 367/307/6 -f 447/325/7 354/326/7 367/307/7 -f 354/326/6 355/327/6 367/307/6 -f 355/327/6 523/308/6 367/307/6 -f 380/293/6 381/328/6 449/312/6 -f 396/329/6 459/330/6 460/331/6 -f 396/329/6 294/332/6 459/330/6 -f 412/333/6 294/332/6 396/329/6 -f 412/333/6 293/334/6 294/332/6 -f 500/335/6 293/334/6 412/333/6 -f 500/335/6 325/336/6 293/334/6 -f 385/337/6 325/336/6 500/335/6 -f 274/338/6 325/336/6 385/337/6 -f 274/338/6 506/339/6 325/336/6 -f 275/340/6 506/339/6 274/338/6 -f 275/340/6 505/341/6 506/339/6 -f 316/342/6 505/341/6 275/340/6 -f 316/342/6 315/343/6 505/341/6 -f 360/344/6 315/343/6 316/342/6 -f 360/344/6 320/345/6 315/343/6 -f 320/345/6 462/346/6 315/343/6 -f 360/344/7 445/347/7 320/345/7 -f 511/348/6 462/346/6 320/345/6 -f 360/344/6 361/349/6 445/347/6 -f 472/350/6 462/346/6 511/348/6 -f 360/344/6 421/351/6 361/349/6 -f 473/352/6 462/346/6 472/350/6 -f 360/344/6 327/353/6 421/351/6 -f 531/354/6 462/346/6 473/352/6 -f 525/355/6 327/353/6 360/344/6 -f 531/354/6 364/356/6 462/346/6 -f 525/355/6 326/357/6 327/353/6 -f 365/358/6 364/356/6 531/354/6 -f 525/355/6 518/359/6 326/357/6 -f 517/360/6 364/356/6 365/358/6 -f 525/355/6 537/361/6 518/359/6 -f 420/362/6 364/356/6 517/360/6 -f 502/363/6 537/361/6 525/355/6 -f 420/362/6 302/364/6 364/356/6 -f 502/363/6 530/365/6 537/361/6 -f 321/366/6 302/364/6 420/362/6 -f 502/363/6 522/367/6 530/365/6 -f 322/368/6 302/364/6 321/366/6 -f 503/369/6 522/367/6 502/363/6 -f 322/368/6 301/370/6 302/364/6 -f 503/369/6 469/371/6 522/367/6 -f 470/372/6 301/370/6 322/368/6 -f 503/369/6 418/373/6 469/371/6 -f 471/374/6 301/370/6 470/372/6 -f 395/375/6 418/373/6 503/369/6 -f 471/374/6 404/376/6 301/370/6 -f 395/375/6 324/377/6 418/373/6 -f 529/378/6 404/376/6 471/374/6 -f 286/379/6 324/377/6 395/375/6 -f 286/379/6 323/380/6 324/377/6 -f 435/381/6 404/376/6 529/378/6 -f 435/381/6 434/382/6 404/376/6 -f 286/379/6 352/383/6 323/380/6 -f 516/384/6 434/382/6 435/381/6 -f 287/385/6 352/383/6 286/379/6 -f 516/384/6 509/386/6 434/382/6 -f 287/385/6 536/387/6 352/383/6 -f 417/388/6 509/386/6 516/384/6 -f 287/385/6 527/389/6 536/387/6 -f 313/390/6 509/386/6 417/388/6 -f 456/391/6 527/389/6 287/385/6 -f 313/390/6 328/392/6 509/386/6 -f 456/391/6 519/393/6 527/389/6 -f 314/394/6 328/392/6 313/390/6 -f 456/391/6 346/395/6 519/393/6 -f 467/396/6 328/392/6 314/394/6 -f 345/397/6 346/395/6 456/391/6 -f 467/396/6 342/398/6 328/392/6 -f 345/397/6 413/399/6 346/395/6 -f 428/400/6 342/398/6 467/396/6 -f 345/397/6 312/401/6 413/399/6 -f 343/402/6 342/398/6 428/400/6 -f 345/397/6 311/403/6 312/401/6 -f 431/404/6 342/398/6 343/402/6 -f 292/405/6 311/403/6 345/397/6 -f 431/404/6 344/406/6 342/398/6 -f 292/405/6 510/407/6 311/403/6 -f 508/408/6 344/406/6 431/404/6 -f 292/405/6 535/409/6 510/407/6 -f 291/410/6 344/406/6 508/408/6 -f 292/405/6 290/411/6 535/409/6 -f 290/411/6 344/406/6 291/410/6 -f 292/405/6 344/406/6 290/411/6 -f 515/412/6 344/406/6 292/405/6 -f 515/412/6 484/413/6 344/406/6 -f 319/414/6 484/413/6 515/412/6 -f 319/414/6 483/415/6 484/413/6 -f 279/416/6 483/415/6 319/414/6 -f 279/416/6 278/417/6 483/415/6 -f 416/418/6 278/417/6 279/416/6 -f 416/418/6 521/419/6 278/417/6 -f 452/420/6 521/419/6 416/418/6 -f 452/420/6 387/421/6 521/419/6 -f 388/422/6 387/421/6 452/420/6 -f 388/422/6 430/423/6 387/421/6 -f 429/424/6 430/423/6 388/422/6 -f 351/425/6 403/426/6 543/427/6 -f 351/425/6 402/428/6 403/426/6 -f 351/425/6 284/429/6 402/428/6 -f 285/430/6 284/429/6 351/425/6 -f 285/430/6 455/431/6 284/429/6 -f 285/430/6 464/432/6 455/431/6 -f 285/430/6 306/433/6 464/432/6 -f 423/434/6 306/433/6 285/430/6 -f 423/434/6 305/435/6 306/433/6 -f 423/434/6 422/436/6 305/435/6 -f 423/434/6 407/437/6 422/436/6 -f 423/434/6 406/438/6 407/437/6 -f 335/439/6 406/438/6 423/434/6 -f 335/439/6 507/440/6 406/438/6 -f 335/439/6 334/441/6 507/440/6 -f 335/439/6 332/442/6 334/441/6 -f 353/443/6 332/442/6 335/439/6 -f 317/444/6 341/445/6 461/446/6 -f 317/444/6 340/447/6 341/445/6 -f 333/448/6 332/442/6 353/443/6 -f 545/449/6 332/442/6 333/448/6 -f 432/450/6 332/442/6 545/449/6 -f 433/451/6 332/442/6 432/450/6 -f 394/452/6 332/442/6 433/451/6 -f 310/453/6 384/454/6 394/452/6 -f 384/454/6 542/455/6 394/452/6 -f 542/455/6 299/456/6 394/452/6 -f 299/456/6 300/457/6 394/452/6 -f 300/457/6 332/442/6 394/452/6 -f 378/458/6 453/459/6 310/453/6 -f 453/459/6 454/460/6 310/453/6 -f 454/460/6 309/461/6 310/453/6 -f 309/461/6 383/462/6 310/453/6 -f 383/462/9 384/454/9 310/453/9 -f 317/444/6 378/458/6 340/447/6 -f 317/444/6 468/463/6 378/458/6 -f 468/463/6 419/464/6 378/458/6 -f 419/464/6 528/465/6 378/458/6 -f 528/465/6 513/466/6 378/458/6 -f 513/466/6 514/467/6 378/458/6 -f 514/467/6 397/468/6 378/458/6 -f 397/468/6 288/469/6 378/458/6 -f 288/469/6 289/470/6 378/458/6 -f 289/470/6 458/471/6 378/458/6 -f 458/471/6 393/472/6 378/458/6 -f 393/472/6 504/473/6 378/458/6 -f 504/473/6 400/474/6 378/458/6 -f 400/474/6 401/475/6 378/458/6 -f 401/475/6 377/476/6 378/458/6 -f 377/476/6 276/477/6 378/458/6 -f 276/477/6 277/478/6 378/458/6 -f 277/478/6 453/459/6 378/458/6 -f 317/444/6 318/479/6 468/463/6 -f 376/480/6 375/481/6 451/482/6 -f 376/480/6 379/483/6 375/481/6 -f 376/480/6 496/484/6 379/483/6 -f 399/485/6 496/484/6 376/480/6 -f 399/485/6 495/486/6 496/484/6 -f 399/485/6 534/487/6 495/486/6 -f 399/485/6 398/488/6 534/487/6 -f 283/489/6 398/488/6 399/485/6 -f 283/489/6 457/490/6 398/488/6 -f 283/489/6 282/491/6 457/490/6 -f 283/489/6 350/492/6 282/491/6 -f 283/489/6 349/493/6 350/492/6 -f 411/494/6 349/493/6 283/489/6 -f 411/494/6 410/495/6 349/493/6 -f 411/494/6 485/496/6 410/495/6 -f 411/494/6 297/497/6 485/496/6 -f 493/498/6 297/497/6 411/494/6 -f 303/499/6 498/500/6 304/501/6 -f 303/499/6 386/502/6 498/500/6 -f 373/503/6 297/497/6 493/498/6 -f 374/504/6 297/497/6 373/503/6 -f 405/505/6 297/497/6 374/504/6 -f 298/506/6 297/497/6 405/505/6 -f 390/507/6 297/497/6 298/506/6 -f 444/508/6 372/509/6 390/507/6 -f 372/509/6 446/510/6 390/507/6 -f 446/510/6 501/511/6 390/507/6 -f 501/511/6 389/512/6 390/507/6 -f 389/512/6 297/497/6 390/507/6 -f 357/513/6 533/514/6 444/508/6 -f 533/514/6 491/515/6 444/508/6 -f 491/515/6 443/516/6 444/508/6 -f 443/516/6 371/517/6 444/508/6 -f 371/517/6 372/509/6 444/508/6 -f 303/499/6 357/513/6 386/502/6 -f 303/499/6 474/518/6 357/513/6 -f 474/518/6 481/519/6 357/513/6 -f 481/519/6 392/520/6 357/513/6 -f 392/520/6 338/521/6 357/513/6 -f 338/521/6 339/522/6 357/513/6 -f 339/522/6 544/523/6 357/513/6 -f 544/523/6 382/524/6 357/513/6 -f 382/524/6 427/525/6 357/513/6 -f 427/525/6 520/526/6 357/513/6 -f 520/526/6 477/527/6 357/513/6 -f 477/527/6 370/528/6 357/513/6 -f 370/528/6 330/529/6 357/513/6 -f 330/529/6 331/530/6 357/513/6 -f 331/530/6 546/531/6 357/513/6 -f 546/531/6 356/532/6 357/513/6 -f 356/532/6 442/533/6 357/513/6 -f 442/533/6 533/514/6 357/513/6 -f 303/499/6 425/534/6 474/518/6 -f 450/535/6 436/536/6 480/537/6 -f 436/536/6 437/538/6 480/537/6 -f 436/536/6 532/539/6 437/538/6 -f 450/535/6 440/540/6 436/536/6 -f 450/535/6 362/541/6 440/540/6 -f 362/541/6 490/542/6 440/540/6 -f 362/541/6 363/543/6 490/542/6 -f 450/535/6 497/544/6 362/541/6 -f 450/535/6 281/272/6 497/544/6 -f 450/535/6 280/273/6 281/272/6 -f 84/545/10 385/546/10 500/547/10 -f 36/548/11 307/549/11 466/550/11 -f 243/551/12 496/552/12 495/553/12 -f 182/554/13 407/555/13 406/556/13 -f 130/557/14 472/558/14 511/559/14 -f 258/560/15 357/561/15 444/562/15 -f 47/563/16 296/564/16 476/565/16 -f 167/566/17 377/567/17 401/568/17 -f 201/569/18 394/570/18 433/571/18 -f 257/572/19 444/562/19 390/573/19 -f 39/574/20 336/575/20 479/576/20 -f 92/577/21 395/578/21 503/579/21 -f 172/580/22 309/581/22 454/582/22 -f 221/583/23 222/584/23 546/585/23 -f 52/586/15 367/587/15 348/588/15 -f 214/589/24 544/590/24 339/591/24 -f 183/592/25 422/593/25 407/555/25 -f 60/594/26 278/595/26 521/596/26 -f 261/597/27 304/598/27 498/599/27 -f 109/600/28 413/601/28 312/602/28 -f 76/603/29 325/604/29 506/605/29 -f 55/606/27 526/607/27 482/608/27 -f 101/609/30 416/610/30 279/611/30 -f 206/612/27 461/613/27 341/614/27 -f 191/615/31 543/616/31 403/617/31 -f 144/618/32 313/619/32 417/620/32 -f 68/621/33 404/622/33 434/623/33 -f 22/624/34 486/625/34 347/626/34 -f 83/627/35 500/547/35 412/628/35 -f 117/629/36 418/630/36 324/631/36 -f 233/632/37 297/633/37 389/634/37 -f 63/635/38 344/636/38 484/637/38 -f 91/638/39 503/579/39 502/639/39 -f 136/640/40 321/641/40 420/642/40 -f 151/643/41 291/644/41 508/645/41 -f 271/646/42 532/647/42 436/648/42 -f 23/649/43 487/650/43 486/625/43 -f 106/651/44 510/652/44 535/653/44 -f 164/654/45 504/655/45 393/656/45 -f 125/657/46 421/658/46 327/659/46 -f 236/660/47 349/661/47 410/662/47 -f 159/663/24 397/664/24 514/665/24 -f 30/666/47 465/667/47 408/668/47 -f 225/669/48 533/670/48 442/671/48 -f 75/672/49 506/605/49 505/673/49 -f 192/674/50 351/675/50 543/616/50 -f 49/676/51 424/677/51 329/678/51 -f 188/679/12 284/680/12 455/681/12 -f 208/682/42 425/683/42 303/607/42 -f 198/684/16 545/685/16 333/686/16 -f 98/687/52 515/688/52 292/689/52 -f 14/690/53 488/691/53 366/692/53 -f 41/693/50 426/694/50 337/695/50 -f 143/696/54 417/620/54 516/697/54 -f 216/698/55 427/699/55 382/700/55 -f 241/701/56 534/702/56 398/703/56 -f 86/704/57 275/705/57 274/444/57 -f 114/706/58 352/707/58 536/708/58 -f 180/709/59 507/710/59 334/711/59 -f 57/712/60 430/713/60 429/714/60 -f 31/715/13 489/716/13 465/667/13 -f 169/717/61 277/718/61 276/719/61 -f 135/720/62 420/642/62 517/721/62 -f 6/722/63 499/723/63 391/724/63 -f 150/725/64 508/645/64 431/726/64 -f 272/727/65 437/728/65 532/729/65 -f 249/730/66 283/731/66 399/732/66 -f 67/733/67 434/623/67 509/734/67 -f 200/735/51 433/571/51 432/736/51 -f 264/737/65 281/729/65 280/738/65 -f 122/739/68 518/740/68 537/741/68 -f 107/742/69 311/743/69 510/652/69 -f 65/744/70 328/745/70 342/746/70 -f 15/747/71 492/748/71 488/691/71 -f 228/749/34 371/750/34 443/751/34 -f 94/752/72 287/753/72 286/754/72 -f 215/755/73 382/756/73 544/590/73 -f 255/757/51 298/758/51 405/759/51 -f 238/760/25 282/761/25 350/762/25 -f 161/763/55 289/764/55 288/765/55 -f 170/766/48 453/767/48 277/718/48 -f 104/768/74 290/769/74 291/644/74 -f 25/770/75 358/771/75 438/772/75 -f 7/773/76 494/774/76 499/723/76 -f 42/775/77 308/776/77 426/694/77 -f 263/777/42 280/778/42 450/779/42 -f 158/780/76 514/665/76 513/781/76 -f 252/782/78 373/783/78 493/784/78 -f 78/785/79 294/786/79 293/787/79 -f 270/788/65 436/789/65 440/613/65 -f 99/790/80 319/791/80 515/792/80 -f 244/793/81 379/794/81 496/552/81 -f 81/795/82 396/796/82 460/797/82 -f 177/798/83 300/799/83 299/800/83 -f 89/801/84 525/802/84 360/803/84 -f 142/804/85 516/697/85 435/805/85 -f 33/806/86 414/807/86 441/808/86 -f 70/809/87 302/810/87 301/811/87 -f 34/812/88 512/813/88 414/807/88 -f 115/814/89 323/815/89 352/707/89 -f 224/816/90 442/671/90 356/817/90 -f 207/818/91 303/819/91 304/820/91 -f 134/821/92 517/721/92 365/683/92 -f 185/822/88 306/823/88 305/824/88 -f 162/825/93 458/826/93 289/764/93 -f 123/827/94 326/828/94 518/740/94 -f 50/829/18 439/830/18 424/677/18 -f 230/831/95 446/832/95 372/833/95 -f 58/834/96 387/835/96 430/713/96 -f 43/836/66 415/837/66 308/776/66 -f 17/838/97 354/839/97 447/840/97 -f 108/841/98 312/602/98 311/743/98 -f 254/842/99 405/759/99 374/843/99 -f 145/844/100 314/845/100 313/619/100 -f 9/846/73 368/847/73 448/848/73 -f 210/849/101 481/850/101 474/851/101 -f 153/647/42 318/646/42 317/852/42 -f 73/853/102 315/854/102 462/855/102 -f 100/856/103 279/611/103 319/791/103 -f 20/857/104 538/858/104 523/859/104 -f 246/860/31 451/861/31 375/862/31 -f 199/863/99 432/736/99 545/864/99 -f 178/865/37 332/866/37 300/799/37 -f 218/867/105 477/868/105 520/869/105 -f 137/870/106 322/871/106 321/641/106 -f 186/872/56 464/873/56 306/823/56 -f 35/874/56 466/550/56 512/813/56 -f 88/875/107 360/803/107 316/876/107 -f 116/877/108 324/631/108 323/815/108 -f 28/878/109 539/879/109 295/880/109 -f 105/881/110 535/653/110 290/769/110 -f 256/882/18 390/573/18 298/758/18 -f 202/883/19 310/884/19 394/570/19 -f 171/885/104 454/582/104 453/767/104 -f 124/886/111 327/887/111 326/828/111 -f 51/888/19 348/588/19 439/830/19 -f 156/889/112 528/890/112 419/891/112 -f 59/892/113 521/596/113 387/835/113 -f 96/893/114 345/894/114 456/895/114 -f 48/896/99 329/678/99 296/897/99 -f 273/688/27 480/687/27 437/898/27 -f 221/583/71 331/899/71 330/900/71 -f 194/901/66 423/902/66 285/903/66 -f 163/904/105 393/656/105 458/826/105 -f 247/905/50 376/906/50 451/861/50 -f 148/907/115 343/908/115 428/909/115 -f 80/910/116 460/797/116 459/911/116 -f 40/912/31 337/695/31 336/575/31 -f 19/913/48 523/859/48 355/914/48 -f 206/820/91 152/819/91 317/915/91 -f 213/916/76 339/591/76 338/917/76 -f 12/918/105 540/919/105 524/920/105 -f 56/921/117 429/714/117 388/922/117 -f 179/923/109 334/924/109 332/879/109 -f 205/564/118 341/563/118 340/925/118 -f 223/926/97 356/817/97 546/585/97 -f 97/927/119 292/689/119 345/894/119 -f 72/928/120 462/855/120 364/929/120 -f 140/930/121 529/931/121 471/932/121 -f 27/933/37 295/880/37 359/934/37 -f 64/935/122 342/746/122 344/636/122 -f 231/936/75 501/937/75 446/832/75 -f 187/938/11 455/681/11 464/873/11 -f 113/939/123 536/708/123 527/940/123 -f 268/941/65 490/942/65 363/943/65 -f 237/944/13 350/762/13 349/661/13 -f 121/945/124 537/741/124 530/946/124 -f 248/947/77 399/732/77 376/906/77 -f 110/948/125 346/949/125 413/950/125 -f 193/951/77 285/903/77 351/675/77 -f 239/952/86 457/953/86 282/761/86 -f 45/954/126 475/613/126 409/955/126 -f 11/956/93 524/920/93 369/957/93 -f 4/958/101 541/959/101 449/960/101 -f 197/961/78 333/686/78 353/962/78 -f 232/963/83 389/634/83 501/937/83 -f 18/964/61 355/914/61 354/839/61 -f 87/965/127 316/876/127 275/705/127 -f 132/966/128 531/967/128 473/968/128 -f 220/969/53 330/900/53 370/970/53 -f 240/971/88 398/703/88 457/953/88 -f 102/972/129 452/973/129 416/610/129 -f 168/974/97 276/719/97 377/567/97 -f 147/975/130 428/909/130 467/976/130 -f 26/977/83 359/934/83 358/771/83 -f 212/978/63 338/917/63 392/979/63 -f 3/980/65 449/960/65 381/819/65 -f 155/981/131 419/891/131 468/982/131 -f 264/983/27 265/984/27 497/985/27 -f 173/986/34 383/987/34 309/581/34 -f 118/988/132 469/989/132 418/630/132 -f 267/990/42 363/950/42 362/789/42 -f 37/991/12 478/992/12 307/549/12 -f 139/993/133 471/932/133 470/994/133 -f 95/995/134 456/895/134 287/753/134 -f 204/996/27 340/997/27 378/998/27 -f 260/999/118 498/1000/118 386/1001/118 -f 126/1002/135 361/1003/135 421/658/135 -f 82/1004/136 412/628/136 396/796/136 -f 131/1005/137 473/968/137 472/558/137 -f 10/1006/55 369/957/55 368/866/55 -f 90/1007/138 502/639/138 525/802/138 -f 46/1008/78 476/565/78 475/613/78 -f 229/1009/43 372/833/43 371/750/43 -f 53/1010/27 463/1011/27 367/898/27 -f 1/1012/91 380/1013/91 526/1014/91 -f 219/1015/45 370/970/45 477/868/45 -f 253/1016/16 374/1017/16 373/783/16 -f 61/985/139 483/1018/139 278/595/139 -f 165/1019/53 400/1020/53 504/655/53 -f 38/1021/81 479/576/81 478/992/81 -f 79/1022/140 459/911/140 294/786/140 -f 74/1023/141 505/673/141 315/1024/141 -f 262/1025/91 450/1026/91 480/537/91 -f 245/1027/20 375/862/20 379/794/20 -f 189/1028/81 402/1029/81 284/680/81 -f 211/1030/112 392/979/112 481/850/112 -f 2/1031/42 381/1032/42 380/601/42 -f 71/1033/142 364/929/142 302/810/142 -f 234/1034/109 485/843/109 297/1035/109 -f 203/633/15 378/632/15 310/884/15 -f 196/1036/126 353/962/126 335/1037/126 -f 174/1038/43 384/1039/43 383/987/43 -f 176/1040/75 299/800/75 542/1041/75 -f 21/1042/22 347/626/22 538/858/22 -f 85/1043/143 274/1044/143 385/546/143 -f 181/1045/47 406/556/47 507/710/47 -f 54/1046/118 482/1047/118 463/728/118 -f 259/1017/27 386/1016/27 357/1048/27 -f 184/1049/86 305/824/86 422/593/86 -f 29/1050/59 408/668/59 539/887/59 -f 66/1051/144 509/734/144 328/745/144 -f 62/1052/145 484/637/145 483/915/145 -f 235/1053/59 410/662/59 485/1054/59 -f 226/1055/104 491/1056/104 533/670/104 -f 112/1057/146 527/940/146 519/1058/146 -f 111/1059/147 519/1058/147 346/949/147 -f 13/1060/45 366/692/45 540/919/45 -f 24/1061/95 438/772/95 487/650/95 -f 266/1062/65 362/943/65 497/1063/65 -f 157/1064/63 513/781/63 528/890/63 -f 103/1065/148 388/922/148 452/973/148 -f 146/1066/149 467/976/149 314/845/149 -f 149/1067/150 431/726/150 343/1068/150 -f 195/1069/151 335/1037/151 423/902/151 -f 154/1070/65 468/982/65 318/1071/65 -f 141/1072/152 435/805/152 529/931/152 -f 93/1073/153 286/754/153 395/578/153 -f 119/1074/154 522/1075/154 469/989/154 -f 242/1076/11 495/553/11 534/702/11 -f 120/870/155 530/946/155 522/1075/155 -f 32/1077/25 441/808/25 489/716/25 -f 138/1078/156 470/994/156 322/871/156 -f 128/1079/157 320/1080/157 445/1081/157 -f 269/598/27 440/597/27 490/983/27 -f 160/1082/73 288/1083/73 397/664/73 -f 129/1084/158 511/559/158 320/1080/158 -f 227/1085/22 443/751/22 491/1056/22 -f 166/1086/71 401/568/71 400/1020/71 -f 127/1087/159 445/1081/159 361/1003/159 -f 250/1088/151 411/1089/151 283/731/151 -f 44/1090/151 409/955/151 415/837/151 -f 77/1091/160 293/787/160 325/604/160 -f 16/1092/17 447/840/17 492/748/17 -f 133/1093/161 365/847/161 531/967/161 -f 251/1094/126 493/784/126 411/1089/126 -f 190/1095/20 403/617/20 402/1029/20 -f 5/1096/112 391/724/112 541/959/112 -f 209/1097/65 474/851/65 425/1098/65 -f 8/1099/24 448/848/24 494/774/24 -f 69/1100/162 301/811/162 404/622/162 -f 175/1101/95 542/1041/95 384/1039/95 -f 217/1102/93 520/869/93 427/699/93 -f 83/627/10 84/545/10 500/547/10 -f 35/874/11 36/548/11 466/550/11 -f 242/1076/12 243/551/12 495/553/12 -f 181/1045/13 182/554/13 406/556/13 -f 129/1084/14 130/557/14 511/559/14 -f 257/572/15 258/560/15 444/562/15 -f 46/1008/16 47/563/16 476/565/16 -f 166/1086/23 167/566/23 401/568/23 -f 200/735/18 201/569/18 433/571/18 -f 256/882/19 257/572/19 390/573/19 -f 38/1021/163 39/574/163 479/576/163 -f 91/638/21 92/577/21 503/579/21 -f 171/885/22 172/580/22 454/582/22 -f 331/899/17 221/583/17 546/585/17 -f 51/888/15 52/586/15 348/588/15 -f 213/916/24 214/589/24 339/591/24 -f 182/554/25 183/592/25 407/555/25 -f 59/892/26 60/594/26 521/596/26 -f 260/1103/27 261/597/27 498/599/27 -f 108/841/28 109/600/28 312/602/28 -f 75/672/164 76/603/164 506/605/164 -f 54/1104/27 55/606/27 482/608/27 -f 100/856/30 101/609/30 279/611/30 -f 205/1105/27 206/612/27 341/614/27 -f 190/1095/31 191/615/31 403/617/31 -f 143/696/32 144/618/32 417/620/32 -f 67/733/33 68/621/33 434/623/33 -f 21/1042/34 22/624/34 347/626/34 -f 82/1004/35 83/627/35 412/628/35 -f 116/877/36 117/629/36 324/631/36 -f 232/963/37 233/632/37 389/634/37 -f 62/1052/38 63/635/38 484/637/38 -f 90/1007/39 91/638/39 502/639/39 -f 135/720/40 136/640/40 420/642/40 -f 150/725/41 151/643/41 508/645/41 -f 270/778/42 271/646/42 436/648/42 -f 22/624/43 23/649/43 486/625/43 -f 105/881/44 106/651/44 535/653/44 -f 163/904/45 164/654/45 393/656/45 -f 124/1035/46 125/657/46 327/659/46 -f 235/1053/47 236/660/47 410/662/47 -f 158/780/24 159/663/24 514/665/24 -f 29/1050/47 30/666/47 408/668/47 -f 224/816/48 225/669/48 442/671/48 -f 74/1023/49 75/672/49 505/673/49 -f 191/615/50 192/674/50 543/616/50 -f 48/896/51 49/676/51 329/678/51 -f 187/938/12 188/679/12 455/681/12 -f 207/606/42 208/682/42 303/607/42 -f 197/961/16 198/684/16 333/686/16 -f 97/927/52 98/687/52 292/689/52 -f 13/1060/53 14/690/53 366/692/53 -f 40/912/50 41/693/50 337/695/50 -f 142/804/54 143/696/54 516/697/54 -f 215/765/55 216/698/55 382/700/55 -f 240/971/56 241/701/56 398/703/56 -f 85/908/57 86/704/57 274/444/57 -f 113/939/58 114/706/58 536/708/58 -f 179/1054/165 180/709/165 334/711/165 -f 56/921/60 57/712/60 429/714/60 -f 30/666/13 31/715/13 465/667/13 -f 168/974/90 169/717/90 276/719/90 -f 134/821/62 135/720/62 517/721/62 -f 5/1096/63 6/722/63 391/724/63 -f 149/1067/64 150/725/64 431/726/64 -f 271/737/65 272/727/65 532/729/65 -f 248/947/66 249/730/66 399/732/66 -f 66/1051/67 67/733/67 509/734/67 -f 199/863/51 200/735/51 432/736/51 -f 263/854/65 264/737/65 280/738/65 -f 121/945/68 122/739/68 537/741/68 -f 106/651/69 107/742/69 510/652/69 -f 64/935/70 65/744/70 342/746/70 -f 14/690/71 15/747/71 488/691/71 -f 227/1085/34 228/749/34 443/751/34 -f 93/1073/72 94/752/72 286/754/72 -f 214/589/73 215/755/73 544/590/73 -f 254/842/51 255/757/51 405/759/51 -f 237/944/25 238/760/25 350/762/25 -f 160/700/55 161/763/55 288/765/55 -f 169/717/48 170/766/48 277/718/48 -f 151/643/74 104/768/74 291/644/74 -f 24/1061/75 25/770/75 438/772/75 -f 6/722/76 7/773/76 499/723/76 -f 41/693/77 42/775/77 426/694/77 -f 262/1106/42 263/777/42 450/779/42 -f 157/1064/76 158/780/76 513/781/76 -f 251/1094/78 252/782/78 493/784/78 -f 77/1091/79 78/785/79 293/787/79 -f 269/612/65 270/788/65 440/613/65 -f 98/1063/80 99/790/80 515/792/80 -f 243/551/81 244/793/81 496/552/81 -f 80/910/82 81/795/82 460/797/82 -f 176/1040/83 177/798/83 299/800/83 -f 88/875/84 89/801/84 360/803/84 -f 141/1072/85 142/804/85 435/805/85 -f 32/1077/86 33/806/86 441/808/86 -f 69/1100/87 70/809/87 301/811/87 -f 33/806/88 34/812/88 414/807/88 -f 114/706/89 115/814/89 352/707/89 -f 223/926/61 224/816/61 356/817/61 -f 261/1107/91 207/818/91 304/820/91 -f 133/682/92 134/821/92 365/683/92 -f 184/1049/88 185/822/88 305/824/88 -f 161/763/93 162/825/93 289/764/93 -f 122/739/94 123/827/94 518/740/94 -f 49/676/18 50/829/18 424/677/18 -f 229/1009/95 230/831/95 372/833/95 -f 57/712/96 58/834/96 430/713/96 -f 42/775/66 43/836/66 308/776/66 -f 16/1092/97 17/838/97 447/840/97 -f 107/742/98 108/841/98 311/743/98 -f 253/1034/99 254/842/99 374/843/99 -f 144/618/100 145/844/100 313/619/100 -f 8/1099/73 9/846/73 448/848/73 -f 209/1097/101 210/849/101 474/851/101 -f 152/1001/42 153/647/42 317/852/42 -f 72/928/102 73/853/102 462/855/102 -f 99/790/103 100/856/103 319/791/103 -f 19/913/104 20/857/104 523/859/104 -f 245/1027/31 246/860/31 375/862/31 -f 198/1108/99 199/863/99 545/864/99 -f 177/798/37 178/865/37 300/799/37 -f 217/1102/105 218/867/105 520/869/105 -f 136/640/106 137/870/106 321/641/106 -f 185/822/56 186/872/56 306/823/56 -f 34/812/56 35/874/56 512/813/56 -f 87/965/107 88/875/107 316/876/107 -f 115/814/108 116/877/108 323/815/108 -f 27/933/109 28/878/109 295/880/109 -f 104/768/110 105/881/110 290/769/110 -f 255/757/18 256/882/18 298/758/18 -f 201/569/19 202/883/19 394/570/19 -f 170/766/104 171/885/104 453/767/104 -f 123/827/111 124/886/111 326/828/111 -f 50/829/19 51/888/19 439/830/19 -f 155/981/112 156/889/112 419/891/112 -f 58/834/113 59/892/113 387/835/113 -f 95/995/114 96/893/114 456/895/114 -f 47/990/99 48/896/99 296/897/99 -f 272/685/27 273/688/27 437/898/27 -f 220/969/71 221/583/71 330/900/71 -f 193/951/66 194/901/66 285/903/66 -f 162/825/105 163/904/105 458/826/105 -f 246/860/50 247/905/50 451/861/50 -f 147/975/115 148/907/115 428/909/115 -f 79/1022/116 80/910/116 459/911/116 -f 39/574/31 40/912/31 336/575/31 -f 18/964/48 19/913/48 355/914/48 -f 461/1109/91 206/820/91 317/915/91 -f 212/978/76 213/916/76 338/917/76 -f 11/956/105 12/918/105 524/920/105 -f 103/1065/117 56/921/117 388/922/117 -f 178/878/109 179/923/109 332/879/109 -f 204/1110/118 205/564/118 340/925/118 -f 222/584/97 223/926/97 546/585/97 -f 96/893/119 97/927/119 345/894/119 -f 71/1033/120 72/928/120 364/929/120 -f 139/993/121 140/930/121 471/932/121 -f 26/977/166 27/933/166 359/934/166 -f 63/635/122 64/935/122 344/636/122 -f 230/831/75 231/936/75 446/832/75 -f 186/872/11 187/938/11 464/873/11 -f 112/1057/123 113/939/123 527/940/123 -f 267/1062/65 268/941/65 363/943/65 -f 236/660/13 237/944/13 349/661/13 -f 120/870/124 121/945/124 530/946/124 -f 247/905/77 248/947/77 376/906/77 -f 109/907/125 110/948/125 413/950/125 -f 192/674/77 193/951/77 351/675/77 -f 238/760/86 239/952/86 282/761/86 -f 44/1090/126 45/954/126 409/955/126 -f 10/1006/93 11/956/93 369/957/93 -f 3/980/101 4/958/101 449/960/101 -f 196/1036/78 197/961/78 353/962/78 -f 231/936/83 232/963/83 501/937/83 -f 17/838/90 18/964/90 354/839/90 -f 86/704/127 87/965/127 275/705/127 -f 131/1005/128 132/966/128 473/968/128 -f 219/1015/53 220/969/53 370/970/53 -f 239/952/88 240/971/88 457/953/88 -f 101/609/129 102/972/129 416/610/129 -f 167/566/97 168/974/97 377/567/97 -f 146/1066/130 147/975/130 467/976/130 -f 25/770/83 26/977/83 358/771/83 -f 211/1030/63 212/978/63 392/979/63 -f 2/818/65 3/980/65 381/819/65 -f 154/1070/101 155/981/101 468/982/101 -f 281/1111/27 264/983/27 497/985/27 -f 172/580/34 173/986/34 309/581/34 -f 117/629/132 118/988/132 418/630/132 -f 266/788/42 267/990/42 362/789/42 -f 36/548/12 37/991/12 307/549/12 -f 138/1078/133 139/993/133 470/994/133 -f 94/752/134 95/995/134 287/753/134 -f 203/1112/27 204/996/27 378/998/27 -f 259/852/118 260/999/118 386/1001/118 -f 125/657/135 126/1002/135 421/658/135 -f 81/795/136 82/1004/136 396/796/136 -f 130/557/137 131/1005/137 472/558/137 -f 9/865/55 10/1006/55 368/866/55 -f 89/801/138 90/1007/138 525/802/138 -f 45/954/78 46/1008/78 475/613/78 -f 228/749/43 229/1009/43 371/750/43 -f 52/1113/27 53/1010/27 367/898/27 -f 55/1018/91 1/1012/91 526/1014/91 -f 218/867/45 219/1015/45 477/868/45 -f 252/782/16 253/1016/16 373/783/16 -f 60/594/139 61/985/139 278/595/139 -f 164/654/53 165/1019/53 504/655/53 -f 37/991/81 38/1021/81 478/992/81 -f 78/785/140 79/1022/140 294/786/140 -f 73/1032/141 74/1023/141 315/1024/141 -f 273/1114/91 262/1025/91 480/537/91 -f 244/793/163 245/1027/163 379/794/163 -f 188/679/81 189/1028/81 284/680/81 -f 210/849/112 211/1030/112 481/850/112 -f 1/600/42 2/1031/42 380/601/42 -f 70/809/142 71/1033/142 302/810/142 -f 233/659/109 234/1034/109 297/1035/109 -f 202/883/15 203/633/15 310/884/15 -f 195/1069/126 196/1036/126 335/1037/126 -f 173/986/43 174/1038/43 383/987/43 -f 175/1101/75 176/1040/75 542/1041/75 -f 20/857/22 21/1042/22 538/858/22 -f 84/545/167 85/1043/167 385/546/167 -f 180/709/47 181/1045/47 507/710/47 -f 53/727/118 54/1046/118 463/728/118 -f 258/996/27 259/1017/27 357/1048/27 -f 183/592/86 184/1049/86 422/593/86 -f 28/886/165 29/1050/165 539/887/165 -f 65/744/144 66/1051/144 328/745/144 -f 61/819/145 62/1052/145 483/915/145 -f 234/711/165 235/1053/165 485/1054/165 -f 225/669/104 226/1055/104 533/670/104 -f 111/1059/146 112/1057/146 519/1058/146 -f 110/948/147 111/1059/147 346/949/147 -f 12/918/45 13/1060/45 540/919/45 -f 23/649/95 24/1061/95 487/650/95 -f 265/792/65 266/1062/65 497/1063/65 -f 156/889/63 157/1064/63 528/890/63 -f 102/972/148 103/1065/148 452/973/148 -f 145/844/149 146/1066/149 314/845/149 -f 148/1115/150 149/1067/150 343/1068/150 -f 194/901/151 195/1069/151 423/902/151 -f 153/1116/65 154/1070/65 318/1071/65 -f 140/930/152 141/1072/152 529/931/152 -f 92/577/153 93/1073/153 395/578/153 -f 118/988/154 119/1074/154 469/989/154 -f 241/701/11 242/1076/11 534/702/11 -f 119/1074/155 120/870/155 522/1075/155 -f 31/715/25 32/1077/25 489/716/25 -f 137/870/156 138/1078/156 322/871/156 -f 127/1087/157 128/1079/157 445/1081/157 -f 268/1111/27 269/598/27 490/983/27 -f 159/663/73 160/1082/73 397/664/73 -f 128/1079/158 129/1084/158 320/1080/158 -f 226/1055/22 227/1085/22 491/1056/22 -f 165/1019/71 166/1086/71 400/1020/71 -f 126/1002/159 127/1087/159 361/1003/159 -f 249/730/151 250/1088/151 283/731/151 -f 43/836/151 44/1090/151 415/837/151 -f 76/603/160 77/1091/160 325/604/160 -f 15/747/23 16/1092/23 492/748/23 -f 132/966/161 133/1093/161 531/967/161 -f 250/1088/126 251/1094/126 411/1089/126 -f 189/1028/163 190/1095/163 402/1029/163 -f 4/958/112 5/1096/112 541/959/112 -f 208/924/65 209/1097/65 425/1098/65 -f 7/773/24 8/1099/24 494/774/24 -f 68/621/162 69/1100/162 404/622/162 -f 174/1038/95 175/1101/95 384/1039/95 -f 216/698/93 217/1102/93 427/699/93 diff --git a/src/main/resources/assets/hbm/models/generator.obj b/src/main/resources/assets/hbm/models/generator.obj deleted file mode 100644 index ca085d7e7..000000000 --- a/src/main/resources/assets/hbm/models/generator.obj +++ /dev/null @@ -1,1625 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'generator.blend' -# www.blender.org -o Circle -v -2.900000 1.500000 -0.300000 -v -2.900000 1.614805 -0.277164 -v -2.700000 1.846454 -0.143506 -v -2.900000 1.777164 -0.114805 -v -2.900000 1.800000 0.000000 -v -2.900000 1.777164 0.114805 -v -2.700000 1.875000 0.000000 -v -2.900000 1.614805 0.277164 -v -2.900000 1.500000 0.300000 -v -2.900000 1.385195 0.277164 -v -2.700000 1.500000 -0.375000 -v -2.900000 1.222836 0.114805 -v -2.900000 1.200000 -0.000000 -v -2.900000 1.222836 -0.114805 -v -2.700000 1.643506 -0.346455 -v -2.900000 1.385195 -0.277164 -v -2.900000 1.500000 -0.105000 -v -2.900000 1.540182 -0.097007 -v -2.900000 1.574246 -0.074246 -v -2.900000 1.597007 -0.040182 -v -2.900000 1.605000 0.000000 -v -2.900000 1.597007 0.040182 -v -2.900000 1.574246 0.074246 -v -2.900000 1.540182 0.097007 -v -2.900000 1.500000 0.105000 -v -2.900000 1.459818 0.097007 -v -2.900000 1.425754 0.074246 -v -2.900000 1.402992 0.040182 -v -2.900000 1.395000 -0.000000 -v -2.900000 1.402992 -0.040182 -v -2.900000 1.425754 -0.074246 -v -2.900000 1.459818 -0.097007 -v -2.700000 1.846454 0.143506 -v -2.700000 1.500000 0.375000 -v -2.700000 1.643506 0.346455 -v -2.700000 1.356493 0.346455 -v -2.700000 1.125000 -0.000000 -v -2.700000 1.153545 0.143506 -v -2.700000 1.153545 -0.143506 -v -2.700000 1.356494 -0.346455 -v -2.700000 1.540182 -0.097007 -v -1.000000 2.423879 -0.382683 -v -2.700000 1.574246 -0.074246 -v -2.700000 1.597007 -0.040182 -v -2.700000 1.597007 0.040182 -v -2.700000 1.574246 0.074246 -v -2.700000 1.540182 0.097007 -v -2.700000 1.459818 0.097007 -v -2.700000 1.425754 0.074246 -v -2.700000 1.402992 0.040182 -v -1.000000 1.500000 -1.000000 -v -2.700000 1.402992 -0.040182 -v -2.700000 1.425754 -0.074246 -v -2.700000 1.459818 -0.097007 -v -2.600000 1.153545 -0.143506 -v -2.600000 1.125000 -0.000000 -v -2.600000 1.500000 -0.375000 -v -2.600000 1.356494 -0.346455 -v -2.600000 1.153545 0.143506 -v -2.600000 1.356494 0.346455 -v -2.600000 1.500000 0.375000 -v -2.600000 1.643506 0.346455 -v -2.600000 1.846454 0.143506 -v -2.600000 1.875000 0.000000 -v -2.600000 1.846454 -0.143506 -v -2.600000 1.643506 -0.346455 -v -2.600000 1.540182 -0.097007 -v -2.600000 1.500000 -0.105000 -v -2.600000 1.574246 -0.074246 -v -2.600000 1.597007 -0.040182 -v -2.600000 1.605000 0.000000 -v -2.600000 1.597007 0.040182 -v -2.600000 1.574246 0.074246 -v -2.600000 1.540182 0.097007 -v -2.600000 1.500000 0.105000 -v -2.600000 1.459818 0.097007 -v -2.600000 1.425754 0.074246 -v -2.600000 1.402992 0.040182 -v -2.600000 1.395000 -0.000000 -v -2.600000 1.402992 -0.040182 -v -2.600000 1.425754 -0.074246 -v -2.600000 1.459818 -0.097007 -v -1.000000 2.500000 0.000000 -v -1.000000 1.882683 0.923879 -v -1.000000 1.500000 1.000000 -v 0.500000 2.000000 0.000000 -v 0.500000 1.961939 0.191342 -v -1.000000 0.576121 0.382684 -v -1.000000 0.500000 -0.000000 -v -1.000000 1.117317 -0.923880 -v -0.500000 2.423879 -0.382683 -v -0.500000 1.500000 -1.000000 -v -0.500000 2.500000 0.000000 -v -0.500000 1.882683 0.923879 -v -0.500000 1.500000 1.000000 -v 0.500000 1.500000 -0.500000 -v 0.500000 1.691342 -0.461940 -v -0.500000 0.576121 0.382684 -v -0.500000 0.500000 -0.000000 -v -0.500000 1.117317 -0.923880 -v -0.000000 1.882683 -0.923879 -v -0.000000 1.500000 -1.000000 -v -0.000000 2.500000 0.000000 -v -0.000000 2.423879 0.382683 -v -0.000000 1.500000 1.000000 -v -0.000000 1.117316 0.923880 -v 0.500000 0.500000 -0.000000 -v 0.500000 0.576121 -0.382684 -v -0.000000 0.500000 -0.000000 -v -0.000000 0.576121 -0.382684 -v -1.000000 1.961939 -0.191342 -v -1.000000 1.500000 -0.500000 -v -1.000000 1.999999 0.000000 -v -1.000000 1.691341 0.461940 -v -1.000000 1.500000 0.500000 -v 0.500000 1.500000 1.000000 -v 0.500000 1.117316 0.923880 -v -1.000000 1.038060 0.191342 -v -1.000000 1.000000 -0.000000 -v -1.000000 1.308658 -0.461940 -v -0.500000 1.961939 -0.191342 -v -0.500000 1.500000 -0.500000 -v -0.500000 1.999999 0.000000 -v -0.500000 1.691341 0.461940 -v -0.500000 1.500000 0.500000 -v 0.500000 2.500000 0.000000 -v 0.500000 2.423879 0.382683 -v -0.500000 1.038060 0.191342 -v -0.500000 1.000000 -0.000000 -v 0.500000 1.000000 -0.000000 -v 0.500000 1.038060 -0.191342 -v -0.500000 1.308658 -0.461940 -v -0.000000 1.691341 -0.461940 -v -0.000000 1.500000 -0.500000 -v -0.000000 2.000000 0.000000 -v -0.000000 1.961939 0.191342 -v -0.000000 1.500000 0.500000 -v -0.000000 1.308658 0.461940 -v 0.500000 1.500000 -1.000000 -v 0.500000 1.882683 -0.923879 -v -0.000000 1.000000 -0.000000 -v -0.000000 1.038060 -0.191342 -v 0.500000 1.500000 0.500000 -v 0.500000 1.308658 0.461940 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 0.923900 0.382700 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.980800 0.195100 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 0.831500 -0.555600 -vn -0.000000 0.195100 0.980800 -vn 0.000000 0.555600 -0.831500 -vn -0.000000 -0.382700 0.923900 -vn 0.000000 -0.555600 0.831500 -vn -0.000000 0.382700 0.923900 -vn -0.345200 0.920500 -0.183100 -vn -0.345200 -0.920500 0.183100 -vn -0.345200 0.920500 0.183100 -vn -0.345200 -0.920500 -0.183100 -vn 0.000000 0.831500 0.555600 -vn 0.000000 -0.831500 -0.555600 -vn -0.345200 0.183100 0.920500 -vn 0.000000 0.555600 0.831500 -vn 0.000000 -0.923900 0.382700 -vn -0.345200 0.183100 -0.920500 -vn -0.345200 -0.183100 -0.920500 -vn 0.000000 -0.555600 -0.831500 -vn -0.345200 -0.183100 0.920500 -vn -0.000000 0.382700 -0.923900 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 0.980800 -0.195100 -vn -0.000000 -0.195100 0.980800 -vn 0.000000 0.195100 -0.980800 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn -0.000000 0.000000 -1.000000 -vn -0.000000 1.000000 0.000000 -vn -0.357400 -0.000000 0.933900 -vn -0.357400 -0.933900 0.000000 -vn -0.357400 0.000000 -0.933900 -vn -0.357400 0.933900 0.000000 -vn -0.607800 -0.303900 0.733700 -vn -0.607800 -0.733700 -0.303900 -vn -0.607800 0.303900 -0.733700 -vn -0.607800 0.733700 0.303900 -vn 0.607800 -0.000000 -0.794100 -vn 0.357400 -0.357400 -0.862900 -vn 0.607800 0.794100 -0.000000 -vn 0.357400 0.862900 -0.357400 -vn 0.607800 0.000000 0.794100 -vn 0.357400 0.357400 0.862900 -vn 0.607800 -0.794100 0.000000 -vn 0.357400 -0.862900 0.357400 -s off -f 5//1 21//1 22//1 -f 20//1 21//1 5//1 -f 17//1 18//1 2//1 -f 32//1 17//1 1//1 -f 29//1 30//1 14//1 -f 28//1 29//1 13//1 -f 25//1 26//1 10//1 -f 24//1 25//1 9//1 -f 27//1 21//1 19//1 -f 35//2 62//2 74//2 -f 41//3 67//3 66//3 -f 65//4 70//4 44//4 -f 63//5 64//5 7//5 -f 48//6 76//6 60//6 -f 50//7 78//7 77//7 -f 11//8 57//8 58//8 -f 44//9 70//9 69//9 -f 35//10 34//10 61//10 -f 19//11 43//11 41//11 -f 45//12 33//12 6//12 -f 27//13 49//13 48//13 -f 12//14 38//14 50//14 -f 5//15 7//15 3//15 -f 20//9 44//9 43//9 -f 37//16 38//16 12//16 -f 28//7 50//7 49//7 -f 10//6 26//6 48//6 -f 33//17 7//17 5//17 -f 4//4 3//4 44//4 -f 14//18 39//18 37//18 -f 2//3 18//3 41//3 -f 8//2 35//2 47//2 -f 23//19 46//19 45//19 -f 31//20 53//20 52//20 -f 8//21 9//21 34//21 -f 24//22 47//22 46//22 -f 16//23 40//23 54//23 -f 2//24 15//24 11//24 -f 1//25 11//25 40//25 -f 32//26 54//26 53//26 -f 10//27 36//27 34//27 -f 52//28 39//28 14//28 -f 64//29 63//29 72//29 -f 64//29 71//29 70//29 -f 57//29 66//29 67//29 -f 57//29 68//29 82//29 -f 55//29 80//29 79//29 -f 59//29 56//29 79//29 -f 60//29 76//29 75//29 -f 61//29 75//29 74//29 -f 75//29 79//29 71//29 -f 46//19 73//19 72//19 -f 56//30 59//30 38//30 -f 53//20 81//20 80//20 -f 64//31 65//31 3//31 -f 47//22 74//22 73//22 -f 54//23 40//23 58//23 -f 34//32 36//32 60//32 -f 54//26 82//26 81//26 -f 15//33 66//33 57//33 -f 80//28 55//28 39//28 -f 43//11 69//11 67//11 -f 72//12 63//12 33//12 -f 55//34 56//34 37//34 -f 49//13 77//13 76//13 -f 59//14 78//14 50//14 -f 83//31 93//31 91//31 -f 93//31 103//31 91//31 -f 103//5 93//5 104//5 -f 85//10 95//10 94//10 -f 94//10 95//10 105//10 -f 105//32 95//32 106//32 -f 89//30 99//30 98//30 -f 99//30 109//30 98//30 -f 109//34 99//34 110//34 -f 51//8 92//8 100//8 -f 92//8 102//8 100//8 -f 102//33 92//33 101//33 -f 114//1 115//1 85//1 -f 111//1 113//1 83//1 -f 120//1 112//1 51//1 -f 88//1 118//1 119//1 -f 118//31 128//31 129//31 -f 132//10 122//10 112//10 -f 121//30 123//30 113//30 -f 124//8 125//8 115//8 -f 110//34 108//34 107//34 -f 104//5 127//5 126//5 -f 133//3 97//3 140//3 -f 109//35 107//35 130//35 -f 125//8 124//8 137//8 -f 137//33 138//33 125//33 -f 128//31 141//31 129//31 -f 141//5 142//5 129//5 -f 132//10 134//10 122//10 -f 134//32 133//32 122//32 -f 121//30 135//30 123//30 -f 135//34 136//34 123//34 -f 98//14 128//14 118//14 -f 93//35 83//35 113//35 -f 95//36 85//36 115//36 -f 100//23 132//23 120//23 -f 99//37 89//37 119//37 -f 94//2 124//2 114//2 -f 91//4 121//4 111//4 -f 92//38 51//38 112//38 -f 136//39 93//39 123//39 -f 138//40 95//40 125//40 -f 142//41 99//41 129//41 -f 133//42 92//42 122//42 -f 93//43 136//43 104//43 -f 95//44 138//44 106//44 -f 99//45 142//45 110//45 -f 92//46 133//46 101//46 -f 91//47 103//47 135//47 -f 135//48 121//48 91//48 -f 94//49 105//49 137//49 -f 137//50 124//50 94//50 -f 98//51 109//51 141//51 -f 141//52 128//52 98//52 -f 100//53 102//53 134//53 -f 134//54 132//54 100//54 -f 140//29 97//29 96//29 -f 126//29 127//29 87//29 -f 117//29 144//29 143//29 -f 108//29 131//29 130//29 -f 102//36 139//36 96//36 -f 135//34 86//34 87//34 -f 136//12 87//12 127//12 -f 141//5 130//5 131//5 -f 103//37 126//37 86//37 -f 101//33 140//33 139//33 -f 138//6 144//6 117//6 -f 105//32 106//32 117//32 -f 105//38 116//38 143//38 -f 134//32 96//32 97//32 -f 137//33 143//33 144//33 -f 142//28 131//28 108//28 -f 6//1 5//1 22//1 -f 4//1 20//1 5//1 -f 1//1 17//1 2//1 -f 16//1 32//1 1//1 -f 13//1 29//1 14//1 -f 12//1 28//1 13//1 -f 9//1 25//1 10//1 -f 8//1 24//1 9//1 -f 19//1 18//1 17//1 -f 17//1 32//1 31//1 -f 31//1 30//1 29//1 -f 29//1 28//1 27//1 -f 27//1 26//1 25//1 -f 25//1 24//1 23//1 -f 23//1 22//1 21//1 -f 21//1 20//1 19//1 -f 19//1 17//1 31//1 -f 31//1 29//1 27//1 -f 27//1 25//1 23//1 -f 23//1 21//1 27//1 -f 19//1 31//1 27//1 -f 47//2 35//2 74//2 -f 15//3 41//3 66//3 -f 3//4 65//4 44//4 -f 33//5 63//5 7//5 -f 36//6 48//6 60//6 -f 49//7 50//7 77//7 -f 40//8 11//8 58//8 -f 43//9 44//9 69//9 -f 62//10 35//10 61//10 -f 18//11 19//11 41//11 -f 22//12 45//12 6//12 -f 26//13 27//13 48//13 -f 28//14 12//14 50//14 -f 4//15 5//15 3//15 -f 19//9 20//9 43//9 -f 13//16 37//16 12//16 -f 27//7 28//7 49//7 -f 36//6 10//6 48//6 -f 6//17 33//17 5//17 -f 20//4 4//4 44//4 -f 13//18 14//18 37//18 -f 15//3 2//3 41//3 -f 24//2 8//2 47//2 -f 22//19 23//19 45//19 -f 30//20 31//20 52//20 -f 35//21 8//21 34//21 -f 23//22 24//22 46//22 -f 32//23 16//23 54//23 -f 1//24 2//24 11//24 -f 16//25 1//25 40//25 -f 31//26 32//26 53//26 -f 9//27 10//27 34//27 -f 30//28 52//28 14//28 -f 71//29 64//29 72//29 -f 65//29 64//29 70//29 -f 68//29 57//29 67//29 -f 58//29 57//29 82//29 -f 56//29 55//29 79//29 -f 78//29 59//29 79//29 -f 61//29 60//29 75//29 -f 62//29 61//29 74//29 -f 68//29 67//29 69//29 -f 69//29 70//29 68//29 -f 71//29 72//29 75//29 -f 73//29 74//29 75//29 -f 75//29 76//29 77//29 -f 77//29 78//29 75//29 -f 79//29 80//29 68//29 -f 81//29 82//29 68//29 -f 68//29 70//29 71//29 -f 72//29 73//29 75//29 -f 75//29 78//29 79//29 -f 80//29 81//29 68//29 -f 68//29 71//29 79//29 -f 45//19 46//19 72//19 -f 37//30 56//30 38//30 -f 52//20 53//20 80//20 -f 7//31 64//31 3//31 -f 46//22 47//22 73//22 -f 82//23 54//23 58//23 -f 61//32 34//32 60//32 -f 53//26 54//26 81//26 -f 11//33 15//33 57//33 -f 52//28 80//28 39//28 -f 41//11 43//11 67//11 -f 45//12 72//12 33//12 -f 39//34 55//34 37//34 -f 48//13 49//13 76//13 -f 38//14 59//14 50//14 -f 42//31 83//31 91//31 -f 84//10 85//10 94//10 -f 88//30 89//30 98//30 -f 90//8 51//8 100//8 -f 84//1 114//1 85//1 -f 42//1 111//1 83//1 -f 90//1 120//1 51//1 -f 89//1 88//1 119//1 -f 119//31 118//31 129//31 -f 120//10 132//10 112//10 -f 111//30 121//30 113//30 -f 114//8 124//8 115//8 -f 109//34 110//34 107//34 -f 103//5 104//5 126//5 -f 101//3 133//3 140//3 -f 141//35 109//35 130//35 -f 88//14 98//14 118//14 -f 123//35 93//35 113//35 -f 125//36 95//36 115//36 -f 90//23 100//23 120//23 -f 129//37 99//37 119//37 -f 84//2 94//2 114//2 -f 42//4 91//4 111//4 -f 122//38 92//38 112//38 -f 139//29 140//29 96//29 -f 86//29 126//29 87//29 -f 116//29 117//29 143//29 -f 107//29 108//29 130//29 -f 134//36 102//36 96//36 -f 136//34 135//34 87//34 -f 104//12 136//12 127//12 -f 142//5 141//5 131//5 -f 135//37 103//37 86//37 -f 102//33 101//33 139//33 -f 106//6 138//6 117//6 -f 116//32 105//32 117//32 -f 137//38 105//38 143//38 -f 133//32 134//32 97//32 -f 138//33 137//33 144//33 -f 110//28 142//28 108//28 -o Plane -v -1.500000 0.000000 0.750000 -v 2.250000 0.000000 0.750000 -v -1.500000 0.000000 -0.750000 -v 2.250000 0.000000 -0.750000 -v -2.250000 1.500000 -1.275000 -v -2.250000 1.987921 -1.177946 -v -2.250000 2.401561 -0.901561 -v -2.250000 2.677946 -0.487921 -v -2.250000 2.775000 0.000000 -v -2.250000 2.677946 0.487922 -v -2.250000 2.401561 0.901561 -v -2.250000 1.987921 1.177946 -v -2.250000 1.500000 1.275000 -v -2.000000 1.500000 -1.500000 -v -2.000000 2.074025 -1.385819 -v -2.000000 2.560660 -1.060660 -v -2.000000 2.885819 -0.574025 -v -2.000000 3.000000 0.000000 -v -2.000000 2.885819 0.574025 -v -2.000000 2.560660 1.060660 -v -2.000000 2.074025 1.385819 -v -2.000000 1.500000 1.500000 -v -1.750000 1.500000 -1.500000 -v -1.750000 2.074025 -1.385819 -v -1.750000 2.560660 -1.060660 -v -1.750000 2.885819 -0.574025 -v -1.750000 3.000000 0.000000 -v -1.750000 2.885819 0.574025 -v -1.750000 2.560660 1.060660 -v -1.750000 2.074025 1.385819 -v -1.750000 1.500000 1.500000 -v -1.500000 1.500000 -1.275000 -v -1.500000 1.987921 -1.177946 -v -1.500000 2.401561 -0.901561 -v -1.500000 2.677946 -0.487921 -v -1.500000 2.775000 0.000000 -v -1.500000 2.677946 0.487922 -v -1.500000 2.401561 0.901561 -v -1.500000 1.987921 1.177946 -v -1.500000 1.500000 1.275000 -v -2.000000 0.000000 -1.500000 -v -2.000000 0.000000 1.500000 -v -1.750000 0.000000 -1.500000 -v -1.750000 0.000000 1.500000 -v -1.500000 0.000000 -1.275000 -v -1.500000 0.000000 1.275000 -v -2.250000 1.500000 -0.750000 -v -2.250000 1.787013 -0.692910 -v -2.250000 2.030330 -0.530330 -v -2.250000 2.192910 -0.287013 -v -2.250000 2.250000 0.000000 -v -2.250000 2.192910 0.287013 -v -2.250000 2.030330 0.530330 -v -2.250000 1.787013 0.692910 -v -2.250000 1.500000 0.750000 -v -2.250000 0.000000 0.750000 -v -2.250000 -0.000000 -0.750000 -v -2.250000 0.000000 1.275000 -v -2.250000 0.000000 -1.275000 -v -2.500000 1.500000 -0.750000 -v -2.500000 1.787013 -0.692910 -v -2.500000 2.030330 -0.530330 -v -2.500000 2.192910 -0.287013 -v -2.500000 2.250000 0.000000 -v -2.500000 2.192910 0.287013 -v -2.500000 2.030330 0.530330 -v -2.500000 1.787013 0.692910 -v -2.500000 1.500000 0.750000 -v -2.750000 1.500000 -0.525000 -v -2.750000 1.700909 -0.485037 -v -2.750000 1.871231 -0.371231 -v -2.750000 1.985037 -0.200909 -v -2.750000 2.025000 0.000000 -v -2.750000 1.985037 0.200909 -v -2.750000 1.871231 0.371231 -v -2.750000 1.700909 0.485037 -v -2.750000 1.500000 0.525000 -v -2.500000 -0.000000 -0.750000 -v -2.500000 0.000000 0.750000 -v -2.750000 -0.000000 -0.525000 -v -2.750000 0.000000 0.525000 -v -2.750000 1.500000 -0.472500 -v -2.750000 1.680818 -0.436533 -v -2.750000 1.834108 -0.334108 -v -2.750000 1.936533 -0.180818 -v -2.750000 1.972500 0.000000 -v -2.750000 1.936533 0.180818 -v -2.750000 1.834108 0.334108 -v -2.750000 1.680818 0.436533 -v -2.750000 1.500000 0.472500 -v -2.750000 1.319182 0.436533 -v -2.750000 1.165892 0.334108 -v -2.750000 1.063467 0.180818 -v -2.750000 1.027500 -0.000000 -v -2.750000 1.063467 -0.180818 -v -2.750000 1.165892 -0.334108 -v -2.750000 1.319182 -0.436533 -v -2.875001 1.500000 -0.472500 -v -2.875001 1.680818 -0.436533 -v -2.875001 1.834108 -0.334108 -v -2.875001 1.936533 -0.180818 -v -2.875001 1.972500 0.000000 -v -2.875001 1.936533 0.180818 -v -2.875001 1.834108 0.334108 -v -2.875001 1.680818 0.436533 -v -2.875001 1.500000 0.472500 -v -2.875000 1.319182 0.436533 -v -2.875000 1.165892 0.334108 -v -2.875000 1.063467 0.180818 -v -2.875000 1.027500 -0.000000 -v -2.875000 1.063467 -0.180818 -v -2.875000 1.165892 -0.334108 -v -2.875000 1.319182 -0.436533 -v -3.000001 1.500000 -0.354375 -v -3.000001 1.635613 -0.327400 -v -3.000001 1.750581 -0.250581 -v -3.000001 1.827400 -0.135613 -v -3.000001 1.854375 0.000000 -v -3.000001 1.827400 0.135613 -v -3.000001 1.750581 0.250581 -v -3.000001 1.635613 0.327400 -v -3.000001 1.500000 0.354375 -v -3.000000 1.364387 0.327400 -v -3.000000 1.249419 0.250581 -v -3.000000 1.172600 0.135613 -v -3.000000 1.145625 -0.000000 -v -3.000000 1.172600 -0.135614 -v -3.000000 1.249419 -0.250581 -v -3.000000 1.364387 -0.327400 -v -3.000001 1.500000 -0.301219 -v -3.000001 1.615271 -0.278290 -v -3.000001 1.712994 -0.212994 -v -3.000001 1.778290 -0.115271 -v -3.000001 1.801219 0.000000 -v -3.000001 1.778290 0.115271 -v -3.000001 1.712994 0.212994 -v -3.000001 1.615271 0.278290 -v -3.000001 1.500000 0.301219 -v -3.000000 1.384729 0.278290 -v -3.000000 1.287006 0.212994 -v -3.000000 1.221710 0.115271 -v -3.000000 1.198781 -0.000000 -v -3.000000 1.221710 -0.115271 -v -3.000000 1.287006 -0.212994 -v -3.000000 1.384729 -0.278290 -v -3.000000 1.500000 -0.090366 -v -3.000000 1.534581 -0.083487 -v -3.000000 1.563898 -0.063898 -v -3.000000 1.583487 -0.034581 -v -3.000000 1.590366 0.000000 -v -3.000000 1.583487 0.034581 -v -3.000000 1.563898 0.063898 -v -3.000000 1.534581 0.083487 -v -3.000000 1.500000 0.090366 -v -3.000000 1.465419 0.083487 -v -3.000000 1.436102 0.063898 -v -3.000000 1.416513 0.034581 -v -3.000000 1.409634 -0.000000 -v -3.000000 1.416513 -0.034581 -v -3.000000 1.436102 -0.063898 -v -3.000000 1.465419 -0.083487 -v -2.750000 -0.000000 0.000000 -v -1.500000 0.500000 0.750000 -v 2.250000 0.500000 0.750000 -v -1.500000 0.500000 -0.750000 -v 2.250000 0.500000 -0.750000 -v -1.500000 2.192910 -0.287013 -v -1.500000 2.030330 -0.530330 -v -1.500000 1.787013 -0.692910 -v -1.500000 1.500000 -0.750000 -v -1.500000 2.250000 0.000000 -v -1.500000 2.192910 0.287013 -v -1.500000 2.030330 0.530330 -v -1.500000 1.787013 0.692910 -v -1.500000 1.500000 0.750000 -v -1.500000 1.212988 0.692910 -v -1.500000 0.969670 0.530330 -v -1.500000 0.807090 0.287013 -v -1.500000 0.750000 -0.000000 -v -1.500000 0.807090 -0.287013 -v -1.500000 0.969670 -0.530330 -v -1.500000 1.212988 -0.692910 -v -1.500000 0.500000 0.000000 -v -2.950001 1.500000 -0.354375 -v -2.950001 1.635613 -0.327400 -v -2.950001 1.750581 -0.250581 -v -2.950001 1.827400 -0.135613 -v -2.950001 1.854375 0.000000 -v -2.950001 1.827400 0.135613 -v -2.950001 1.750581 0.250581 -v -2.950001 1.635613 0.327400 -v -2.950001 1.500000 0.354375 -v -2.950000 1.364387 0.327400 -v -2.950000 1.249419 0.250581 -v -2.950000 1.172600 0.135613 -v -2.950000 1.145625 -0.000000 -v -2.950000 1.172600 -0.135614 -v -2.950000 1.249419 -0.250581 -v -2.950000 1.364387 -0.327400 -v -2.950001 1.500000 -0.301219 -v -2.950001 1.615271 -0.278290 -v -2.950001 1.712994 -0.212994 -v -2.950001 1.778290 -0.115271 -v -2.950001 1.801219 0.000000 -v -2.950001 1.778290 0.115271 -v -2.950001 1.712994 0.212994 -v -2.950001 1.615271 0.278290 -v -2.950001 1.500000 0.301219 -v -2.950000 1.384729 0.278290 -v -2.950000 1.287006 0.212994 -v -2.950000 1.221710 0.115271 -v -2.950000 1.198781 -0.000000 -v -2.950000 1.221710 -0.115271 -v -2.950000 1.287006 -0.212994 -v -2.950000 1.384729 -0.278290 -v -2.950000 1.500000 -0.090366 -v -2.950000 1.534581 -0.083487 -v -2.950000 1.563898 -0.063898 -v -2.950000 1.583487 -0.034581 -v -2.950000 1.590366 0.000000 -v -2.950000 1.583487 0.034581 -v -2.950000 1.563898 0.063898 -v -2.950000 1.534581 0.083487 -v -2.950000 1.500000 0.090366 -v -2.950000 1.465419 0.083487 -v -2.950000 1.436102 0.063898 -v -2.950000 1.416513 0.034581 -v -2.950000 1.409634 -0.000000 -v -2.950000 1.416513 -0.034581 -v -2.950000 1.436102 -0.063898 -v -2.950000 1.465419 -0.083487 -v -2.550001 1.500000 -0.472500 -v -2.550001 1.680818 -0.436533 -v -2.550001 1.834108 -0.334108 -v -2.550001 1.936533 -0.180818 -v -2.550001 1.972500 0.000000 -v -2.550001 1.936533 0.180818 -v -2.550001 1.834108 0.334108 -v -2.550001 1.680818 0.436533 -v -2.550001 1.500000 0.472500 -v -2.550000 1.319182 0.436533 -v -2.550000 1.165892 0.334108 -v -2.550000 1.063467 0.180818 -v -2.550000 1.027500 -0.000000 -v -2.550000 1.063467 -0.180818 -v -2.550000 1.165892 -0.334108 -v -2.550000 1.319182 -0.436533 -v -2.675001 1.500000 -0.472500 -v -2.675001 1.680818 -0.436533 -v -2.675001 1.834108 -0.334108 -v -2.675001 1.936533 -0.180818 -v -2.675001 1.972500 0.000000 -v -2.675001 1.936533 0.180818 -v -2.675001 1.834108 0.334108 -v -2.675001 1.680818 0.436533 -v -2.675001 1.500000 0.472500 -v -2.675000 1.319182 0.436533 -v -2.675000 1.165892 0.334108 -v -2.675000 1.063467 0.180818 -v -2.675000 1.027500 -0.000000 -v -2.675000 1.063467 -0.180818 -v -2.675000 1.165892 -0.334108 -v -2.675000 1.319182 -0.436533 -v 2.250000 2.192910 -0.287013 -v 2.250000 2.030330 -0.530330 -v 2.250000 1.787013 -0.692910 -v 2.250000 1.500000 -0.750000 -v 2.250000 2.250000 0.000000 -v 2.250000 2.192910 0.287013 -v 2.250000 2.030330 0.530330 -v 2.250000 1.787013 0.692910 -v 2.250000 1.500000 0.750000 -v 2.250000 1.212988 0.692910 -v 2.250000 0.969670 0.530330 -v 2.250000 0.807090 0.287013 -v 2.250000 0.750000 -0.000000 -v 2.250000 0.807090 -0.287013 -v 2.250000 0.969670 -0.530330 -v 2.250000 1.212988 -0.692910 -v 2.250000 1.500000 -1.000000 -v 2.250000 1.882683 -0.923880 -v 2.250000 2.207107 -0.707107 -v 2.250000 2.423880 -0.382683 -v 2.250000 2.500000 0.000000 -v 2.250000 2.423880 0.382684 -v 2.250000 2.207107 0.707107 -v 2.250000 1.882683 0.923880 -v 2.250000 1.500000 1.000000 -v 2.750000 0.000000 0.800000 -v 2.750000 -0.000000 -0.800000 -v 2.500000 0.000000 1.000000 -v 2.250000 0.500000 -0.000000 -v 2.500000 -0.000000 -1.000000 -v 2.250000 0.000000 1.000000 -v 2.250000 -0.000000 -1.000000 -v 2.500000 1.882683 0.923880 -v 2.500000 2.207107 0.707107 -v 2.500000 2.423880 0.382684 -v 2.500000 2.500000 0.000000 -v 2.500000 2.423880 -0.382683 -v 2.500000 2.207107 -0.707107 -v 2.500000 1.882683 -0.923880 -v 2.500000 1.500000 -1.000000 -v 2.500000 1.500000 1.000000 -v 2.750000 1.806147 0.739104 -v 2.750000 2.065685 0.565686 -v 2.750000 2.239104 0.306147 -v 2.750000 2.300000 0.000000 -v 2.750000 2.239104 -0.306147 -v 2.750000 2.065685 -0.565686 -v 2.750000 1.806147 -0.739104 -v 2.750000 1.500000 -0.800000 -v 2.750000 1.500000 0.800000 -v 2.750000 0.656250 0.156250 -v 2.750000 0.343750 0.156250 -v 2.750000 0.656250 -0.156250 -v 2.750000 0.343750 -0.156250 -v 3.000000 0.656250 -0.156250 -v 3.000000 0.656250 0.156250 -v 3.000000 0.343750 0.156250 -v 3.000000 0.343750 -0.156250 -v -2.750000 0.656250 -0.156250 -v -2.750000 0.656250 0.156250 -v -2.750000 0.343750 0.156250 -v -2.750000 0.343750 -0.156250 -v -3.000000 0.656250 -0.156250 -v -3.000000 0.656250 0.156250 -v -3.000000 0.343750 0.156250 -v -3.000000 0.343750 -0.156250 -v -2.750000 0.343750 0.000000 -v -2.750000 0.656250 0.000000 -v -1.750000 2.900000 0.150000 -v -1.750000 2.800000 0.150000 -v -1.750000 2.900000 -0.150000 -v -1.750000 2.800000 -0.150000 -v 0.250000 2.900002 -0.150000 -v 0.250000 2.900002 0.150000 -v 0.250000 2.800002 0.150000 -v 0.250000 2.800002 -0.150000 -v 0.362941 2.898298 -0.150000 -v 0.362941 2.898298 0.150000 -v 0.337059 2.801706 0.150000 -v 0.337059 2.801706 -0.150000 -v 2.294793 2.380663 -0.150000 -v 2.294793 2.380663 0.150000 -v 2.268912 2.284071 0.150000 -v 2.268912 2.284071 -0.150000 -vn 0.000000 -1.000000 0.000000 -vn -0.661800 0.735300 0.146300 -vn 0.000000 0.980800 0.195100 -vn 0.661800 0.735300 0.146300 -vn -0.661800 0.623400 0.416500 -vn 0.661800 0.623400 0.416500 -vn 0.000000 0.831500 0.555600 -vn 0.661800 0.416500 0.623400 -vn 0.000000 0.555600 0.831500 -vn -0.661800 0.416500 0.623400 -vn -0.661800 0.146300 0.735300 -vn 0.661800 0.146300 0.735300 -vn -0.661800 0.735300 -0.146300 -vn 0.000000 0.980800 -0.195100 -vn 0.661800 0.735300 -0.146300 -vn 0.661800 0.623400 -0.416500 -vn 0.000000 0.831500 -0.555600 -vn -0.661800 0.623400 -0.416500 -vn -0.661800 0.416500 -0.623400 -vn 0.000000 0.555600 -0.831500 -vn 0.661800 0.416500 -0.623400 -vn 0.661800 0.146300 -0.735300 -vn 0.000000 0.195100 -0.980800 -vn -0.661800 0.146300 -0.735300 -vn 0.000000 0.195100 0.980800 -vn 0.000000 0.000000 1.000000 -vn 0.669000 0.000000 0.743300 -vn 0.000000 0.000000 -1.000000 -vn 0.669000 0.000000 -0.743300 -vn -1.000000 0.000000 -0.000000 -vn -0.669000 0.000000 -0.743300 -vn -0.669000 0.000000 0.743300 -vn 0.000000 -0.195100 0.980800 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 -0.555600 -0.831500 -vn -0.679800 0.143100 -0.719300 -vn -0.679800 0.407500 -0.609800 -vn -0.679800 0.609800 -0.407500 -vn -0.679800 0.719300 -0.143100 -vn -0.679800 0.719300 0.143100 -vn -0.679800 0.609800 0.407500 -vn -0.679800 0.407500 0.609800 -vn -0.679800 0.143100 0.719300 -vn -0.679800 -0.143100 0.719300 -vn -0.679800 -0.407500 0.609800 -vn -0.679800 -0.143100 -0.719300 -vn -0.679800 -0.407500 -0.609800 -vn -0.679800 -0.609800 -0.407500 -vn -0.679800 -0.719300 -0.143100 -vn -0.679800 -0.609800 0.407500 -vn -0.679800 -0.719300 0.143100 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.382700 0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 -0.923900 0.382700 -vn 0.388200 0.512000 -0.766200 -vn 0.388200 0.766200 -0.512000 -vn 0.388200 0.903800 -0.179800 -vn 0.388200 0.903800 0.179800 -vn 0.388200 0.766200 0.512000 -vn 0.388200 0.512000 0.766200 -vn 0.388200 0.179800 0.903800 -vn 0.388200 -0.179800 0.903800 -vn 0.388200 -0.512000 0.766200 -vn 0.388200 -0.766200 0.512000 -vn 0.388200 -0.903800 0.179800 -vn 0.388200 -0.903800 -0.179800 -vn 0.388200 -0.766200 -0.512000 -vn 0.388200 -0.512000 -0.766200 -vn 0.388200 -0.179800 -0.903800 -vn 0.388200 0.179800 -0.903800 -vn 0.617300 0.437100 0.654100 -vn 0.624700 0.000000 -0.780900 -vn 0.624700 0.000000 0.780900 -vn 0.000000 1.000000 0.000000 -vn 0.617300 0.153500 0.771600 -vn 0.617300 0.153500 -0.771600 -vn 0.617300 0.437100 -0.654100 -vn 0.617300 0.654100 -0.437100 -vn 0.617300 0.771600 -0.153500 -vn 0.617300 0.771600 0.153500 -vn 0.617300 0.654100 0.437100 -vn 0.019600 -0.999800 0.000000 -vn -0.258800 -0.965900 0.000000 -vn 0.015100 0.999900 0.000000 -vn 0.965900 -0.258800 0.000000 -vn 0.258800 0.965900 0.000000 -vn -1.000000 -0.000100 0.000000 -vn 1.000000 0.000100 0.000000 -s off -f 147//55 148//55 146//55 -f 154//56 163//56 162//56 -f 163//57 172//57 171//57 -f 172//58 181//58 180//58 -f 155//59 164//59 163//59 -f 173//60 182//60 181//60 -f 164//61 173//61 172//61 -f 174//62 183//62 182//62 -f 165//63 174//63 173//63 -f 155//64 156//64 165//64 -f 157//65 166//65 165//65 -f 174//66 175//66 184//66 -f 153//67 162//67 161//67 -f 162//68 171//68 170//68 -f 170//69 171//69 180//69 -f 170//70 179//70 178//70 -f 161//71 170//71 169//71 -f 151//72 152//72 161//72 -f 151//73 160//73 159//73 -f 160//74 169//74 168//74 -f 168//75 169//75 178//75 -f 168//76 177//76 176//76 -f 159//77 168//77 167//77 -f 149//78 150//78 159//78 -f 166//79 175//79 174//79 -f 188//55 186//55 185//55 -f 188//55 187//55 147//55 -f 166//80 186//80 188//80 -f 175//81 188//81 190//81 -f 187//82 185//82 158//82 -f 189//83 187//83 167//83 -f 191//84 192//84 150//84 -f 192//84 193//84 151//84 -f 151//84 193//84 194//84 -f 152//84 194//84 195//84 -f 195//84 196//84 154//84 -f 196//84 197//84 155//84 -f 197//84 198//84 156//84 -f 198//84 199//84 157//84 -f 191//84 149//84 203//84 -f 202//84 157//84 199//84 -f 158//85 185//85 203//85 -f 202//86 186//86 166//86 -f 223//55 225//55 306//55 -f 212//79 199//79 198//79 -f 210//63 211//63 198//63 -f 209//61 210//61 197//61 -f 208//57 209//57 196//57 -f 207//68 208//68 195//68 -f 206//71 207//71 194//71 -f 205//74 206//74 193//74 -f 204//77 205//77 192//77 -f 204//78 213//78 214//78 -f 214//73 215//73 206//73 -f 206//72 215//72 216//72 -f 216//67 217//67 208//67 -f 208//56 217//56 218//56 -f 218//59 219//59 210//59 -f 210//64 219//64 220//64 -f 220//65 221//65 212//65 -f 186//55 200//55 185//55 -f 201//55 200//55 223//55 -f 222//82 204//82 191//82 -f 213//85 204//85 222//85 -f 199//80 212//80 223//80 -f 225//86 223//86 212//86 -f 233//84 234//84 221//84 -f 232//84 233//84 220//84 -f 231//84 232//84 219//84 -f 217//84 230//84 231//84 -f 229//84 230//84 217//84 -f 215//84 228//84 229//84 -f 227//84 228//84 215//84 -f 213//84 226//84 227//84 -f 242//77 243//77 227//77 -f 243//74 244//74 228//74 -f 244//71 245//71 229//71 -f 245//68 246//68 230//68 -f 246//57 247//57 231//57 -f 247//61 248//61 232//61 -f 248//63 249//63 233//63 -f 249//79 250//79 234//79 -f 234//87 250//87 251//87 -f 251//88 252//88 236//88 -f 252//89 253//89 237//89 -f 253//90 254//90 238//90 -f 254//91 255//91 239//91 -f 255//92 256//92 240//92 -f 257//93 242//93 226//93 -f 256//94 257//94 241//94 -f 258//95 259//95 243//95 -f 259//96 260//96 244//96 -f 244//97 260//97 261//97 -f 261//98 262//98 246//98 -f 246//99 262//99 263//99 -f 263//100 264//100 248//100 -f 264//101 265//101 249//101 -f 249//102 265//102 266//102 -f 250//103 266//103 267//103 -f 267//104 268//104 252//104 -f 267//84 283//84 284//84 -f 282//84 283//84 267//84 -f 265//84 281//84 282//84 -f 280//84 281//84 265//84 -f 279//84 280//84 264//84 -f 278//84 279//84 263//84 -f 261//84 277//84 278//84 -f 260//84 276//84 277//84 -f 259//84 275//84 276//84 -f 274//84 275//84 259//84 -f 300//84 294//84 292//84 -f 293//84 294//84 278//84 -f 278//84 294//84 295//84 -f 281//84 297//84 298//84 -f 282//84 298//84 299//84 -f 301//84 302//84 286//84 -f 302//84 303//84 287//84 -f 290//84 291//84 275//84 -f 305//84 290//84 274//84 -f 289//84 274//84 258//84 -f 273//105 258//105 242//105 -f 272//106 273//106 257//106 -f 255//107 271//107 272//107 -f 270//108 271//108 255//108 -f 272//84 288//84 289//84 -f 271//84 287//84 288//84 -f 286//84 287//84 271//84 -f 285//84 286//84 270//84 -f 268//84 284//84 285//84 -f 252//109 268//109 269//109 -f 269//110 270//110 254//110 -f 470//84 473//84 472//84 -f 474//111 469//111 475//111 -f 237//84 225//84 236//84 -f 235//84 236//84 225//84 -f 221//84 234//84 235//84 -f 239//84 240//84 224//84 -f 240//84 241//84 224//84 -f 241//84 226//84 213//84 -f 326//94 423//94 422//94 -f 324//91 421//91 420//91 -f 325//92 422//92 421//92 -f 184//111 319//111 318//111 -f 183//111 318//111 317//111 -f 182//111 317//111 316//111 -f 181//111 316//111 315//111 -f 179//111 180//111 315//111 -f 179//111 311//111 312//111 -f 178//111 312//111 313//111 -f 177//111 313//111 314//111 -f 307//111 184//111 190//111 -f 176//111 314//111 309//111 -f 327//111 323//111 322//111 -f 322//111 321//111 307//111 -f 320//111 307//111 321//111 -f 319//111 307//111 320//111 -f 327//111 309//111 324//111 -f 324//111 309//111 325//111 -f 325//111 309//111 326//111 -f 314//111 326//111 309//111 -f 337//111 338//111 354//111 -f 337//111 353//111 352//111 -f 335//111 336//111 352//111 -f 335//111 351//111 350//111 -f 334//111 350//111 349//111 -f 333//111 349//111 348//111 -f 331//111 332//111 348//111 -f 330//111 331//111 347//111 -f 330//111 346//111 345//111 -f 329//111 345//111 344//111 -f 368//111 372//111 364//111 -f 348//111 364//111 363//111 -f 348//111 349//111 365//111 -f 351//111 352//111 368//111 -f 352//111 353//111 369//111 -f 356//111 372//111 371//111 -f 357//111 373//111 372//111 -f 345//111 361//111 360//111 -f 344//111 360//111 375//111 -f 328//111 344//111 359//111 -f 342//111 343//111 359//111 -f 341//111 342//111 358//111 -f 341//111 357//111 356//111 -f 340//111 356//111 355//111 -f 338//111 339//111 355//111 -f 349//92 350//92 280//92 -f 350//94 351//94 281//94 -f 297//112 281//112 351//112 -f 297//63 367//63 366//63 -f 296//61 366//61 365//61 -f 295//113 365//113 349//113 -f 293//114 277//114 347//114 -f 293//71 363//71 362//71 -f 292//74 362//74 361//74 -f 291//115 361//115 345//115 -f 345//88 346//88 276//88 -f 346//89 347//89 277//89 -f 285//116 355//116 371//116 -f 301//89 371//89 370//89 -f 300//88 370//88 369//88 -f 369//117 353//117 283//117 -f 353//74 354//74 284//74 -f 354//71 355//71 285//71 -f 304//92 374//92 373//92 -f 373//118 357//118 287//118 -f 357//61 358//61 288//61 -f 358//63 359//63 289//63 -f 289//119 359//119 375//119 -f 305//94 375//94 374//94 -f 377//87 393//87 392//87 -f 378//88 394//88 393//88 -f 379//89 395//89 394//89 -f 380//90 396//90 395//90 -f 381//91 397//91 396//91 -f 382//92 398//92 397//92 -f 383//94 399//94 398//94 -f 384//93 400//93 399//93 -f 384//77 385//77 401//77 -f 386//74 402//74 401//74 -f 387//71 403//71 402//71 -f 388//68 404//68 403//68 -f 389//57 405//57 404//57 -f 390//61 406//61 405//61 -f 376//79 392//79 407//79 -f 391//63 407//63 406//63 -f 401//120 402//120 338//120 -f 338//121 402//121 403//121 -f 339//122 403//122 404//122 -f 340//123 404//123 405//123 -f 341//124 405//124 406//124 -f 406//125 407//125 343//125 -f 343//126 407//126 392//126 -f 392//127 393//127 329//127 -f 393//128 394//128 330//128 -f 394//129 395//129 331//129 -f 331//130 395//130 396//130 -f 396//131 397//131 333//131 -f 397//132 398//132 334//132 -f 398//133 399//133 335//133 -f 399//134 400//134 336//134 -f 400//135 401//135 337//135 -f 386//84 382//84 378//84 -f 314//93 411//93 423//93 -f 313//77 410//77 411//77 -f 312//74 409//74 410//74 -f 312//71 311//71 408//71 -f 311//68 315//68 412//68 -f 316//57 413//57 412//57 -f 317//61 414//61 413//61 -f 318//63 415//63 414//63 -f 319//79 416//79 415//79 -f 320//87 417//87 416//87 -f 321//88 418//88 417//88 -f 322//89 419//89 418//89 -f 323//90 420//90 419//90 -f 408//84 412//84 428//84 -f 413//84 429//84 428//84 -f 414//84 430//84 429//84 -f 440//136 449//136 450//136 -f 431//63 440//63 441//63 -f 415//84 431//84 430//84 -f 409//84 408//84 427//84 -f 410//84 409//84 426//84 -f 411//84 410//84 425//84 -f 434//137 437//137 447//137 -f 447//82 437//82 439//82 -f 448//138 435//138 433//138 -f 438//80 435//80 448//80 -f 416//84 432//84 431//84 -f 436//139 310//139 327//139 -f 308//80 307//80 145//80 -f 147//82 309//82 310//82 -f 430//61 441//61 442//61 -f 429//57 442//57 443//57 -f 428//68 443//68 444//68 -f 427//71 444//71 445//71 -f 426//74 445//74 446//74 -f 425//77 446//77 447//77 -f 432//79 448//79 440//79 -f 448//140 457//140 449//140 -f 446//141 455//141 456//141 -f 445//142 454//142 455//142 -f 445//143 444//143 453//143 -f 443//144 452//144 453//144 -f 443//145 442//145 451//145 -f 441//146 450//146 451//146 -f 433//55 435//55 437//55 -f 146//55 437//55 435//55 -f 432//84 308//84 438//84 -f 310//84 411//84 424//84 -f 421//84 310//84 436//84 -f 421//84 422//84 310//84 -f 422//84 423//84 310//84 -f 423//84 411//84 310//84 -f 436//84 308//84 419//84 -f 418//84 419//84 308//84 -f 417//84 418//84 308//84 -f 416//84 417//84 308//84 -f 458//139 463//139 462//139 -f 461//111 459//111 433//111 -f 433//111 459//111 458//111 -f 460//111 461//111 434//111 -f 456//111 457//111 458//111 -f 464//111 465//111 462//111 -f 460//82 462//82 465//82 -f 459//80 464//80 463//80 -f 461//55 465//55 464//55 -f 456//111 455//111 449//111 -f 455//111 454//111 450//111 -f 454//111 453//111 451//111 -f 452//111 451//111 453//111 -f 469//82 473//82 470//82 -f 475//139 470//139 471//139 -f 467//80 471//80 472//80 -f 474//55 472//55 473//55 -f 306//84 474//84 469//84 -f 306//84 225//84 468//84 -f 238//84 239//84 466//84 -f 238//84 475//84 467//84 -f 237//84 467//84 225//84 -f 225//84 467//84 468//84 -f 224//84 466//84 239//84 -f 224//84 469//84 466//84 -f 478//84 479//84 477//84 -f 483//147 487//147 486//147 -f 479//82 478//82 480//82 -f 477//80 482//80 481//80 -f 479//55 483//55 482//55 -f 476//139 481//139 480//139 -f 487//148 491//148 490//148 -f 481//149 485//149 484//149 -f 480//82 484//82 487//82 -f 481//80 482//80 486//80 -f 490//150 491//150 488//150 -f 485//151 489//151 488//151 -f 487//82 484//82 488//82 -f 486//80 490//80 489//80 -f 145//55 147//55 146//55 -f 153//56 154//56 162//56 -f 162//57 163//57 171//57 -f 171//58 172//58 180//58 -f 154//59 155//59 163//59 -f 172//60 173//60 181//60 -f 163//61 164//61 172//61 -f 173//62 174//62 182//62 -f 164//63 165//63 173//63 -f 164//64 155//64 165//64 -f 156//65 157//65 165//65 -f 183//66 174//66 184//66 -f 152//67 153//67 161//67 -f 161//68 162//68 170//68 -f 179//69 170//69 180//69 -f 169//70 170//70 178//70 -f 160//71 161//71 169//71 -f 160//72 151//72 161//72 -f 150//73 151//73 159//73 -f 159//74 160//74 168//74 -f 177//75 168//75 178//75 -f 167//76 168//76 176//76 -f 158//77 159//77 167//77 -f 158//78 149//78 159//78 -f 165//79 166//79 174//79 -f 187//55 188//55 185//55 -f 147//55 145//55 188//55 -f 190//55 188//55 145//55 -f 187//55 189//55 147//55 -f 175//80 166//80 188//80 -f 184//81 175//81 190//81 -f 167//82 187//82 158//82 -f 176//83 189//83 167//83 -f 149//84 191//84 150//84 -f 150//84 192//84 151//84 -f 152//84 151//84 194//84 -f 153//84 152//84 195//84 -f 153//84 195//84 154//84 -f 154//84 196//84 155//84 -f 155//84 197//84 156//84 -f 156//84 198//84 157//84 -f 201//84 191//84 203//84 -f 200//84 202//84 199//84 -f 149//85 158//85 203//85 -f 157//86 202//86 166//86 -f 306//55 224//55 222//55 -f 222//55 223//55 306//55 -f 211//79 212//79 198//79 -f 197//63 210//63 198//63 -f 196//61 209//61 197//61 -f 195//57 208//57 196//57 -f 194//68 207//68 195//68 -f 193//71 206//71 194//71 -f 192//74 205//74 193//74 -f 191//77 204//77 192//77 -f 205//78 204//78 214//78 -f 205//73 214//73 206//73 -f 207//72 206//72 216//72 -f 207//67 216//67 208//67 -f 209//56 208//56 218//56 -f 209//59 218//59 210//59 -f 211//64 210//64 220//64 -f 211//65 220//65 212//65 -f 203//55 185//55 201//55 -f 186//55 202//55 200//55 -f 200//55 201//55 185//55 -f 222//55 201//55 223//55 -f 201//82 222//82 191//82 -f 224//85 213//85 222//85 -f 200//80 199//80 223//80 -f 221//86 225//86 212//86 -f 220//84 233//84 221//84 -f 219//84 232//84 220//84 -f 218//84 231//84 219//84 -f 218//84 217//84 231//84 -f 216//84 229//84 217//84 -f 216//84 215//84 229//84 -f 214//84 227//84 215//84 -f 214//84 213//84 227//84 -f 226//77 242//77 227//77 -f 227//74 243//74 228//74 -f 228//71 244//71 229//71 -f 229//68 245//68 230//68 -f 230//57 246//57 231//57 -f 231//61 247//61 232//61 -f 232//63 248//63 233//63 -f 233//79 249//79 234//79 -f 235//87 234//87 251//87 -f 235//88 251//88 236//88 -f 236//89 252//89 237//89 -f 237//90 253//90 238//90 -f 238//91 254//91 239//91 -f 239//92 255//92 240//92 -f 241//93 257//93 226//93 -f 240//94 256//94 241//94 -f 242//95 258//95 243//95 -f 243//96 259//96 244//96 -f 245//97 244//97 261//97 -f 245//98 261//98 246//98 -f 247//99 246//99 263//99 -f 247//100 263//100 248//100 -f 248//101 264//101 249//101 -f 250//102 249//102 266//102 -f 251//103 250//103 267//103 -f 251//104 267//104 252//104 -f 268//84 267//84 284//84 -f 266//84 282//84 267//84 -f 266//84 265//84 282//84 -f 264//84 280//84 265//84 -f 263//84 279//84 264//84 -f 262//84 278//84 263//84 -f 262//84 261//84 278//84 -f 261//84 260//84 277//84 -f 260//84 259//84 276//84 -f 258//84 274//84 259//84 -f 292//84 291//84 304//84 -f 290//84 305//84 304//84 -f 304//84 303//84 302//84 -f 302//152 301//152 300//152 -f 300//84 299//84 296//84 -f 298//84 297//84 296//84 -f 296//84 295//84 294//84 -f 294//84 293//84 292//84 -f 291//84 290//84 304//84 -f 304//84 302//84 292//84 -f 299//84 298//84 296//84 -f 296//84 294//84 300//84 -f 292//84 302//84 300//84 -f 277//84 293//84 278//84 -f 279//84 278//84 295//84 -f 282//84 281//84 298//84 -f 283//84 282//84 299//84 -f 285//84 301//84 286//84 -f 286//84 302//84 287//84 -f 274//84 290//84 275//84 -f 289//84 305//84 274//84 -f 273//84 289//84 258//84 -f 257//105 273//105 242//105 -f 256//106 272//106 257//106 -f 256//107 255//107 272//107 -f 254//108 270//108 255//108 -f 273//84 272//84 289//84 -f 272//84 271//84 288//84 -f 270//84 286//84 271//84 -f 269//84 285//84 270//84 -f 269//84 268//84 285//84 -f 253//109 252//109 269//109 -f 253//110 269//110 254//110 -f 471//84 470//84 472//84 -f 475//111 467//111 468//111 -f 468//111 474//111 475//111 -f 469//111 466//111 475//111 -f 225//84 221//84 235//84 -f 224//84 241//84 213//84 -f 325//94 326//94 422//94 -f 323//91 324//91 420//91 -f 324//92 325//92 421//92 -f 183//111 184//111 318//111 -f 182//111 183//111 317//111 -f 181//111 182//111 316//111 -f 180//111 181//111 315//111 -f 311//111 179//111 315//111 -f 178//111 179//111 312//111 -f 177//111 178//111 313//111 -f 176//111 177//111 314//111 -f 190//111 145//111 307//111 -f 307//111 319//111 184//111 -f 309//111 147//111 189//111 -f 189//111 176//111 309//111 -f 307//111 327//111 322//111 -f 323//111 327//111 324//111 -f 353//111 337//111 354//111 -f 336//111 337//111 352//111 -f 351//111 335//111 352//111 -f 334//111 335//111 350//111 -f 333//111 334//111 349//111 -f 332//111 333//111 348//111 -f 347//111 331//111 348//111 -f 346//111 330//111 347//111 -f 329//111 330//111 345//111 -f 328//111 329//111 344//111 -f 360//111 361//111 364//111 -f 362//111 363//111 364//111 -f 364//111 365//111 366//111 -f 366//111 367//111 364//111 -f 368//111 369//111 372//111 -f 370//153 371//153 372//153 -f 372//111 373//111 360//111 -f 374//111 375//111 360//111 -f 361//111 362//111 364//111 -f 364//111 367//111 368//111 -f 369//111 370//111 372//111 -f 373//111 374//111 360//111 -f 360//111 364//111 372//111 -f 347//111 348//111 363//111 -f 364//111 348//111 365//111 -f 367//111 351//111 368//111 -f 368//111 352//111 369//111 -f 355//111 356//111 371//111 -f 356//111 357//111 372//111 -f 344//111 345//111 360//111 -f 359//111 344//111 375//111 -f 343//111 328//111 359//111 -f 358//111 342//111 359//111 -f 357//111 341//111 358//111 -f 340//111 341//111 356//111 -f 339//111 340//111 355//111 -f 354//111 338//111 355//111 -f 279//92 349//92 280//92 -f 280//94 350//94 281//94 -f 367//112 297//112 351//112 -f 296//63 297//63 366//63 -f 295//61 296//61 365//61 -f 279//113 295//113 349//113 -f 363//114 293//114 347//114 -f 292//71 293//71 362//71 -f 291//74 292//74 361//74 -f 275//115 291//115 345//115 -f 275//88 345//88 276//88 -f 276//89 346//89 277//89 -f 301//116 285//116 371//116 -f 300//89 301//89 370//89 -f 299//88 300//88 369//88 -f 299//117 369//117 283//117 -f 283//74 353//74 284//74 -f 284//71 354//71 285//71 -f 303//92 304//92 373//92 -f 303//118 373//118 287//118 -f 287//61 357//61 288//61 -f 288//63 358//63 289//63 -f 305//119 289//119 375//119 -f 304//94 305//94 374//94 -f 376//87 377//87 392//87 -f 377//88 378//88 393//88 -f 378//89 379//89 394//89 -f 379//90 380//90 395//90 -f 380//91 381//91 396//91 -f 381//92 382//92 397//92 -f 382//94 383//94 398//94 -f 383//93 384//93 399//93 -f 400//77 384//77 401//77 -f 385//74 386//74 401//74 -f 386//71 387//71 402//71 -f 387//68 388//68 403//68 -f 388//57 389//57 404//57 -f 389//61 390//61 405//61 -f 391//79 376//79 407//79 -f 390//63 391//63 406//63 -f 337//120 401//120 338//120 -f 339//121 338//121 403//121 -f 340//122 339//122 404//122 -f 341//123 340//123 405//123 -f 342//124 341//124 406//124 -f 342//125 406//125 343//125 -f 328//126 343//126 392//126 -f 328//127 392//127 329//127 -f 329//128 393//128 330//128 -f 330//129 394//129 331//129 -f 332//130 331//130 396//130 -f 332//131 396//131 333//131 -f 333//132 397//132 334//132 -f 334//133 398//133 335//133 -f 335//134 399//134 336//134 -f 336//135 400//135 337//135 -f 378//84 377//84 376//84 -f 376//84 391//84 390//84 -f 390//84 389//84 386//84 -f 388//84 387//84 386//84 -f 386//84 385//84 382//84 -f 384//84 383//84 382//84 -f 382//84 381//84 380//84 -f 380//84 379//84 378//84 -f 378//84 376//84 390//84 -f 389//84 388//84 386//84 -f 385//84 384//84 382//84 -f 382//84 380//84 378//84 -f 378//84 390//84 386//84 -f 326//93 314//93 423//93 -f 314//77 313//77 411//77 -f 313//74 312//74 410//74 -f 409//71 312//71 408//71 -f 408//68 311//68 412//68 -f 315//57 316//57 412//57 -f 316//61 317//61 413//61 -f 317//63 318//63 414//63 -f 318//79 319//79 415//79 -f 319//87 320//87 416//87 -f 320//88 321//88 417//88 -f 321//89 322//89 418//89 -f 322//90 323//90 419//90 -f 427//84 408//84 428//84 -f 412//84 413//84 428//84 -f 413//84 414//84 429//84 -f 441//136 440//136 450//136 -f 430//63 431//63 441//63 -f 414//84 415//84 430//84 -f 426//84 409//84 427//84 -f 425//84 410//84 426//84 -f 424//84 411//84 425//84 -f 456//137 434//137 447//137 -f 424//82 447//82 439//82 -f 457//138 448//138 433//138 -f 432//80 438//80 448//80 -f 415//84 416//84 431//84 -f 327//139 307//139 308//139 -f 308//139 436//139 327//139 -f 310//139 309//139 327//139 -f 146//80 308//80 145//80 -f 148//82 147//82 310//82 -f 429//61 430//61 442//61 -f 428//57 429//57 443//57 -f 427//68 428//68 444//68 -f 426//71 427//71 445//71 -f 425//74 426//74 446//74 -f 424//77 425//77 447//77 -f 431//79 432//79 440//79 -f 440//140 448//140 449//140 -f 447//141 446//141 456//141 -f 446//142 445//142 455//142 -f 454//143 445//143 453//143 -f 444//144 443//144 453//144 -f 452//145 443//145 451//145 -f 442//146 441//146 451//146 -f 434//55 433//55 437//55 -f 148//55 439//55 437//55 -f 435//55 438//55 146//55 -f 146//55 148//55 437//55 -f 146//84 438//84 308//84 -f 432//84 416//84 308//84 -f 424//84 439//84 310//84 -f 148//84 310//84 439//84 -f 420//84 421//84 436//84 -f 420//84 436//84 419//84 -f 460//139 458//139 462//139 -f 434//111 461//111 433//111 -f 457//111 433//111 458//111 -f 456//111 460//111 434//111 -f 460//111 456//111 458//111 -f 463//111 464//111 462//111 -f 461//82 460//82 465//82 -f 458//80 459//80 463//80 -f 459//55 461//55 464//55 -f 457//111 456//111 449//111 -f 449//111 455//111 450//111 -f 450//111 454//111 451//111 -f 466//82 469//82 470//82 -f 471//139 467//139 475//139 -f 475//139 466//139 470//139 -f 468//80 467//80 472//80 -f 473//55 469//55 474//55 -f 474//55 468//55 472//55 -f 224//84 306//84 469//84 -f 474//84 306//84 468//84 -f 475//84 238//84 466//84 -f 237//84 238//84 467//84 -f 476//84 478//84 477//84 -f 482//147 483//147 486//147 -f 483//82 479//82 480//82 -f 476//80 477//80 481//80 -f 477//55 479//55 482//55 -f 478//139 476//139 480//139 -f 486//148 487//148 490//148 -f 480//149 481//149 484//149 -f 483//82 480//82 487//82 -f 485//80 481//80 486//80 -f 489//150 490//150 488//150 -f 484//151 485//151 488//151 -f 491//82 487//82 488//82 -f 485//80 486//80 489//80 -l 412 429 diff --git a/src/main/resources/assets/hbm/models/generator_body.obj b/src/main/resources/assets/hbm/models/generator_body.obj deleted file mode 100644 index 3f47ebc74..000000000 --- a/src/main/resources/assets/hbm/models/generator_body.obj +++ /dev/null @@ -1,1844 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'generator_body.blend' -# www.blender.org -o Plane -v -1.500000 0.000000 0.750000 -v 2.250000 0.000000 0.750000 -v -1.500000 0.000000 -0.750000 -v 2.250000 0.000000 -0.750000 -v -2.250000 1.500000 -1.275000 -v -2.250000 1.987921 -1.177946 -v -2.250000 2.401561 -0.901561 -v -2.250000 2.677946 -0.487921 -v -2.250000 2.775000 0.000000 -v -2.250000 2.677946 0.487922 -v -2.250000 2.401561 0.901561 -v -2.250000 1.987921 1.177946 -v -2.250000 1.500000 1.275000 -v -2.000000 1.500000 -1.500000 -v -2.000000 2.074025 -1.385819 -v -2.000000 2.560660 -1.060660 -v -2.000000 2.885819 -0.574025 -v -2.000000 3.000000 0.000000 -v -2.000000 2.885819 0.574025 -v -2.000000 2.560660 1.060660 -v -2.000000 2.074025 1.385819 -v -2.000000 1.500000 1.500000 -v -1.750000 1.500000 -1.500000 -v -1.750000 2.074025 -1.385819 -v -1.750000 2.560660 -1.060660 -v -1.750000 2.885819 -0.574025 -v -1.750000 3.000000 0.000000 -v -1.750000 2.885819 0.574025 -v -1.750000 2.560660 1.060660 -v -1.750000 2.074025 1.385819 -v -1.750000 1.500000 1.500000 -v -1.500000 1.500000 -1.275000 -v -1.500000 1.987921 -1.177946 -v -1.500000 2.401561 -0.901561 -v -1.500000 2.677946 -0.487921 -v -1.500000 2.775000 0.000000 -v -1.500000 2.677946 0.487922 -v -1.500000 2.401561 0.901561 -v -1.500000 1.987921 1.177946 -v -1.500000 1.500000 1.275000 -v -2.000000 0.000000 -1.500000 -v -2.000000 0.000000 1.500000 -v -1.750000 0.000000 -1.500000 -v -1.750000 0.000000 1.500000 -v -1.500000 0.000000 -1.275000 -v -1.500000 0.000000 1.275000 -v -2.250000 1.500000 -0.750000 -v -2.250000 1.787013 -0.692910 -v -2.250000 2.030330 -0.530330 -v -2.250000 2.192910 -0.287013 -v -2.250000 2.250000 0.000000 -v -2.250000 2.192910 0.287013 -v -2.250000 2.030330 0.530330 -v -2.250000 1.787013 0.692910 -v -2.250000 1.500000 0.750000 -v -2.250000 0.000000 0.750000 -v -2.250000 -0.000000 -0.750000 -v -2.250000 0.000000 1.275000 -v -2.250000 0.000000 -1.275000 -v -2.500000 1.500000 -0.750000 -v -2.500000 1.787013 -0.692910 -v -2.500000 2.030330 -0.530330 -v -2.500000 2.192910 -0.287013 -v -2.500000 2.250000 0.000000 -v -2.500000 2.192910 0.287013 -v -2.500000 2.030330 0.530330 -v -2.500000 1.787013 0.692910 -v -2.500000 1.500000 0.750000 -v -2.750000 1.500000 -0.525000 -v -2.750000 1.700909 -0.485037 -v -2.750000 1.871231 -0.371231 -v -2.750000 1.985037 -0.200909 -v -2.750000 2.025000 0.000000 -v -2.750000 1.985037 0.200909 -v -2.750000 1.871231 0.371231 -v -2.750000 1.700909 0.485037 -v -2.750000 1.500000 0.525000 -v -2.500000 -0.000000 -0.750000 -v -2.500000 0.000000 0.750000 -v -2.750000 -0.000000 -0.525000 -v -2.750000 0.000000 0.525000 -v -2.750000 1.500000 -0.472500 -v -2.750000 1.680818 -0.436533 -v -2.750000 1.834108 -0.334108 -v -2.750000 1.936533 -0.180818 -v -2.750000 1.972500 0.000000 -v -2.750000 1.936533 0.180818 -v -2.750000 1.834108 0.334108 -v -2.750000 1.680818 0.436533 -v -2.750000 1.500000 0.472500 -v -2.750000 1.319182 0.436533 -v -2.750000 1.165892 0.334108 -v -2.750000 1.063467 0.180818 -v -2.750000 1.027500 -0.000000 -v -2.750000 1.063467 -0.180818 -v -2.750000 1.165892 -0.334108 -v -2.750000 1.319182 -0.436533 -v -2.875001 1.500000 -0.472500 -v -2.875001 1.680818 -0.436533 -v -2.875001 1.834108 -0.334108 -v -2.875001 1.936533 -0.180818 -v -2.875001 1.972500 0.000000 -v -2.875001 1.936533 0.180818 -v -2.875001 1.834108 0.334108 -v -2.875001 1.680818 0.436533 -v -2.875001 1.500000 0.472500 -v -2.875000 1.319182 0.436533 -v -2.875000 1.165892 0.334108 -v -2.875000 1.063467 0.180818 -v -2.875000 1.027500 -0.000000 -v -2.875000 1.063467 -0.180818 -v -2.875000 1.165892 -0.334108 -v -2.875000 1.319182 -0.436533 -v -3.000001 1.500000 -0.354375 -v -3.000001 1.635613 -0.327400 -v -3.000001 1.750581 -0.250581 -v -3.000001 1.827400 -0.135613 -v -3.000001 1.854375 0.000000 -v -3.000001 1.827400 0.135613 -v -3.000001 1.750581 0.250581 -v -3.000001 1.635613 0.327400 -v -3.000001 1.500000 0.354375 -v -3.000000 1.364387 0.327400 -v -3.000000 1.249419 0.250581 -v -3.000000 1.172600 0.135613 -v -3.000000 1.145625 -0.000000 -v -3.000000 1.172600 -0.135614 -v -3.000000 1.249419 -0.250581 -v -3.000000 1.364387 -0.327400 -v -3.000001 1.500000 -0.301219 -v -3.000001 1.615271 -0.278290 -v -3.000001 1.712994 -0.212994 -v -3.000001 1.778290 -0.115271 -v -3.000001 1.801219 0.000000 -v -3.000001 1.778290 0.115271 -v -3.000001 1.712994 0.212994 -v -3.000001 1.615271 0.278290 -v -3.000001 1.500000 0.301219 -v -3.000000 1.384729 0.278290 -v -3.000000 1.287006 0.212994 -v -3.000000 1.221710 0.115271 -v -3.000000 1.198781 -0.000000 -v -3.000000 1.221710 -0.115271 -v -3.000000 1.287006 -0.212994 -v -3.000000 1.384729 -0.278290 -v -3.000000 1.500000 -0.090366 -v -3.000000 1.534581 -0.083487 -v -3.000000 1.563898 -0.063898 -v -3.000000 1.583487 -0.034581 -v -3.000000 1.590366 0.000000 -v -3.000000 1.583487 0.034581 -v -3.000000 1.563898 0.063898 -v -3.000000 1.534581 0.083487 -v -3.000000 1.500000 0.090366 -v -3.000000 1.465419 0.083487 -v -3.000000 1.436102 0.063898 -v -3.000000 1.416513 0.034581 -v -3.000000 1.409634 -0.000000 -v -3.000000 1.416513 -0.034581 -v -3.000000 1.436102 -0.063898 -v -3.000000 1.465419 -0.083487 -v -2.750000 -0.000000 0.000000 -v -1.500000 0.500000 0.750000 -v 2.250000 0.500000 0.750000 -v -1.500000 0.500000 -0.750000 -v 2.250000 0.500000 -0.750000 -v -1.500000 2.192910 -0.287013 -v -1.500000 2.030330 -0.530330 -v -1.500000 1.787013 -0.692910 -v -1.500000 1.500000 -0.750000 -v -1.500000 2.250000 0.000000 -v -1.500000 2.192910 0.287013 -v -1.500000 2.030330 0.530330 -v -1.500000 1.787013 0.692910 -v -1.500000 1.500000 0.750000 -v -1.500000 1.212988 0.692910 -v -1.500000 0.969670 0.530330 -v -1.500000 0.807090 0.287013 -v -1.500000 0.750000 -0.000000 -v -1.500000 0.807090 -0.287013 -v -1.500000 0.969670 -0.530330 -v -1.500000 1.212988 -0.692910 -v -1.500000 0.500000 0.000000 -v -2.950001 1.500000 -0.354375 -v -2.950001 1.635613 -0.327400 -v -2.950001 1.750581 -0.250581 -v -2.950001 1.827400 -0.135613 -v -2.950001 1.854375 0.000000 -v -2.950001 1.827400 0.135613 -v -2.950001 1.750581 0.250581 -v -2.950001 1.635613 0.327400 -v -2.950001 1.500000 0.354375 -v -2.950000 1.364387 0.327400 -v -2.950000 1.249419 0.250581 -v -2.950000 1.172600 0.135613 -v -2.950000 1.145625 -0.000000 -v -2.950000 1.172600 -0.135614 -v -2.950000 1.249419 -0.250581 -v -2.950000 1.364387 -0.327400 -v -2.950001 1.500000 -0.301219 -v -2.950001 1.615271 -0.278290 -v -2.950001 1.712994 -0.212994 -v -2.950001 1.778290 -0.115271 -v -2.950001 1.801219 0.000000 -v -2.950001 1.778290 0.115271 -v -2.950001 1.712994 0.212994 -v -2.950001 1.615271 0.278290 -v -2.950001 1.500000 0.301219 -v -2.950000 1.384729 0.278290 -v -2.950000 1.287006 0.212994 -v -2.950000 1.221710 0.115271 -v -2.950000 1.198781 -0.000000 -v -2.950000 1.221710 -0.115271 -v -2.950000 1.287006 -0.212994 -v -2.950000 1.384729 -0.278290 -v -2.950000 1.500000 -0.090366 -v -2.950000 1.534581 -0.083487 -v -2.950000 1.563898 -0.063898 -v -2.950000 1.583487 -0.034581 -v -2.950000 1.590366 0.000000 -v -2.950000 1.583487 0.034581 -v -2.950000 1.563898 0.063898 -v -2.950000 1.534581 0.083487 -v -2.950000 1.500000 0.090366 -v -2.950000 1.465419 0.083487 -v -2.950000 1.436102 0.063898 -v -2.950000 1.416513 0.034581 -v -2.950000 1.409634 -0.000000 -v -2.950000 1.416513 -0.034581 -v -2.950000 1.436102 -0.063898 -v -2.950000 1.465419 -0.083487 -v -2.550001 1.500000 -0.472500 -v -2.550001 1.680818 -0.436533 -v -2.550001 1.834108 -0.334108 -v -2.550001 1.936533 -0.180818 -v -2.550001 1.972500 0.000000 -v -2.550001 1.936533 0.180818 -v -2.550001 1.834108 0.334108 -v -2.550001 1.680818 0.436533 -v -2.550001 1.500000 0.472500 -v -2.550000 1.319182 0.436533 -v -2.550000 1.165892 0.334108 -v -2.550000 1.063467 0.180818 -v -2.550000 1.027500 -0.000000 -v -2.550000 1.063467 -0.180818 -v -2.550000 1.165892 -0.334108 -v -2.550000 1.319182 -0.436533 -v -2.675001 1.500000 -0.472500 -v -2.675001 1.680818 -0.436533 -v -2.675001 1.834108 -0.334108 -v -2.675001 1.936533 -0.180818 -v -2.675001 1.972500 0.000000 -v -2.675001 1.936533 0.180818 -v -2.675001 1.834108 0.334108 -v -2.675001 1.680818 0.436533 -v -2.675001 1.500000 0.472500 -v -2.675000 1.319182 0.436533 -v -2.675000 1.165892 0.334108 -v -2.675000 1.063467 0.180818 -v -2.675000 1.027500 -0.000000 -v -2.675000 1.063467 -0.180818 -v -2.675000 1.165892 -0.334108 -v -2.675000 1.319182 -0.436533 -v 2.250000 2.192910 -0.287013 -v 2.250000 2.030330 -0.530330 -v 2.250000 1.787013 -0.692910 -v 2.250000 1.500000 -0.750000 -v 2.250000 2.250000 0.000000 -v 2.250000 2.192910 0.287013 -v 2.250000 2.030330 0.530330 -v 2.250000 1.787013 0.692910 -v 2.250000 1.500000 0.750000 -v 2.250000 1.212988 0.692910 -v 2.250000 0.969670 0.530330 -v 2.250000 0.807090 0.287013 -v 2.250000 0.750000 -0.000000 -v 2.250000 0.807090 -0.287013 -v 2.250000 0.969670 -0.530330 -v 2.250000 1.212988 -0.692910 -v 2.250000 1.500000 -1.000000 -v 2.250000 1.882683 -0.923880 -v 2.250000 2.207107 -0.707107 -v 2.250000 2.423880 -0.382683 -v 2.250000 2.500000 0.000000 -v 2.250000 2.423880 0.382684 -v 2.250000 2.207107 0.707107 -v 2.250000 1.882683 0.923880 -v 2.250000 1.500000 1.000000 -v 2.750000 0.000000 0.800000 -v 2.750000 -0.000000 -0.800000 -v 2.500000 0.000000 1.000000 -v 2.250000 0.500000 -0.000000 -v 2.500000 -0.000000 -1.000000 -v 2.250000 0.000000 1.000000 -v 2.250000 -0.000000 -1.000000 -v 2.500000 1.882683 0.923880 -v 2.500000 2.207107 0.707107 -v 2.500000 2.423880 0.382684 -v 2.500000 2.500000 0.000000 -v 2.500000 2.423880 -0.382683 -v 2.500000 2.207107 -0.707107 -v 2.500000 1.882683 -0.923880 -v 2.500000 1.500000 -1.000000 -v 2.500000 1.500000 1.000000 -v 2.750000 1.806147 0.739104 -v 2.750000 2.065685 0.565686 -v 2.750000 2.239104 0.306147 -v 2.750000 2.300000 0.000000 -v 2.750000 2.239104 -0.306147 -v 2.750000 2.065685 -0.565686 -v 2.750000 1.806147 -0.739104 -v 2.750000 1.500000 -0.800000 -v 2.750000 1.500000 0.800000 -v 2.750000 0.656250 0.156250 -v 2.750000 0.343750 0.156250 -v 2.750000 0.656250 -0.156250 -v 2.750000 0.343750 -0.156250 -v 3.000000 0.656250 -0.156250 -v 3.000000 0.656250 0.156250 -v 3.000000 0.343750 0.156250 -v 3.000000 0.343750 -0.156250 -v -2.750000 0.656250 -0.156250 -v -2.750000 0.656250 0.156250 -v -2.750000 0.343750 0.156250 -v -2.750000 0.343750 -0.156250 -v -3.000000 0.656250 -0.156250 -v -3.000000 0.656250 0.156250 -v -3.000000 0.343750 0.156250 -v -3.000000 0.343750 -0.156250 -v -2.750000 0.343750 0.000000 -v -2.750000 0.656250 0.000000 -v -1.750000 2.900000 0.150000 -v -1.750000 2.800000 0.150000 -v -1.750000 2.900000 -0.150000 -v -1.750000 2.800000 -0.150000 -v 0.250000 2.900002 -0.150000 -v 0.250000 2.900002 0.150000 -v 0.250000 2.800002 0.150000 -v 0.250000 2.800002 -0.150000 -v 0.362941 2.898298 -0.150000 -v 0.362941 2.898298 0.150000 -v 0.337059 2.801706 0.150000 -v 0.337059 2.801706 -0.150000 -v 2.294793 2.380663 -0.150000 -v 2.294793 2.380663 0.150000 -v 2.268912 2.284071 0.150000 -v 2.268912 2.284071 -0.150000 -vt 0.107106 0.786032 -vt 0.240683 0.786032 -vt 0.240683 0.999756 -vt 0.265014 0.120502 -vt 0.252794 0.097238 -vt 0.332713 0.085314 -vt 0.251510 0.088631 -vt 0.331429 0.076708 -vt 0.256407 0.062813 -vt 0.324339 0.052678 -vt 0.204379 0.150422 -vt 0.181563 0.132483 -vt 0.249315 0.098529 -vt 0.177664 0.124704 -vt 0.176949 0.095689 -vt 0.234538 0.066828 -vt 0.245416 0.090750 -vt 0.126525 0.180371 -vt 0.113265 0.151765 -vt 0.151745 0.108572 -vt 0.133023 0.186160 -vt 0.171796 0.129556 -vt 0.201444 0.152849 -vt 0.162964 0.196041 -vt 0.147355 0.251125 -vt 0.114844 0.250811 -vt 0.130741 0.190871 -vt 0.122330 0.188641 -vt 0.106433 0.248581 -vt 0.078040 0.232742 -vt 0.335979 0.110367 -vt 0.336211 0.085314 -vt 0.416131 0.097236 -vt 0.337495 0.076708 -vt 0.417415 0.088629 -vt 0.344585 0.052677 -vt 0.423509 0.090748 -vt 0.434386 0.066826 -vt 0.491976 0.095685 -vt 0.419610 0.098527 -vt 0.491262 0.124700 -vt 0.464548 0.150419 -vt 0.406958 0.121560 -vt 0.467482 0.152846 -vt 0.490633 0.135341 -vt 0.535905 0.186155 -vt 0.497130 0.129553 -vt 0.542402 0.180367 -vt 0.517181 0.108568 -vt 0.546598 0.188636 -vt 0.577376 0.181788 -vt 0.590889 0.232737 -vt 0.538187 0.190867 -vt 0.562496 0.248575 -vt 0.521574 0.251121 -vt 0.508061 0.200172 -vt 0.125475 0.448925 -vt 0.125628 0.436403 -vt 0.726680 0.443735 -vt 0.726528 0.456256 -vt 0.622108 0.464958 -vt 0.114551 0.253670 -vt 0.114553 0.410300 -vt 0.105851 0.410300 -vt 0.105849 0.253670 -vt 0.073339 0.410300 -vt 0.563082 0.410296 -vt 0.554380 0.410296 -vt 0.554379 0.253665 -vt 0.595594 0.410296 -vt 0.563081 0.253665 -vt 0.448480 0.251122 -vt 0.440531 0.221152 -vt 0.438433 0.217017 -vt 0.415797 0.191610 -vt 0.412863 0.189184 -vt 0.378987 0.172208 -vt 0.403911 0.120501 -vt 0.375940 0.171149 -vt 0.335980 0.165188 -vt 0.332947 0.165188 -vt 0.292987 0.171150 -vt 0.289940 0.172209 -vt 0.256064 0.189186 -vt 0.253130 0.191612 -vt 0.230495 0.217020 -vt 0.228397 0.221154 -vt 0.220449 0.251124 -vt 0.448772 0.253667 -vt 0.521867 0.253666 -vt 0.521868 0.410296 -vt 0.147065 0.410299 -vt 0.147063 0.253670 -vt 0.220157 0.253669 -vt 0.230047 0.419000 -vt 0.261372 0.410298 -vt 0.334465 0.410298 -vt 0.228860 0.253355 -vt 0.259627 0.197400 -vt 0.236992 0.222808 -vt 0.293839 0.179988 -vt 0.259963 0.196965 -vt 0.334231 0.173794 -vt 0.294271 0.179756 -vt 0.374656 0.179755 -vt 0.334696 0.173794 -vt 0.408965 0.196963 -vt 0.375088 0.179987 -vt 0.431936 0.222806 -vt 0.409300 0.197399 -vt 0.440069 0.253352 -vt 0.432120 0.223383 -vt 0.407558 0.253667 -vt 0.401994 0.232688 -vt 0.386149 0.214903 -vt 0.362436 0.203020 -vt 0.334464 0.198847 -vt 0.306492 0.203021 -vt 0.282779 0.214904 -vt 0.266934 0.232690 -vt 0.261370 0.253669 -vt 0.230047 0.427701 -vt 0.438886 0.427701 -vt 0.440072 0.410297 -vt 0.440071 0.253667 -vt 0.228858 0.253669 -vt 0.228860 0.410298 -vt 0.273687 0.234787 -vt 0.268680 0.253669 -vt 0.287947 0.218781 -vt 0.309289 0.208085 -vt 0.334464 0.204329 -vt 0.359639 0.208085 -vt 0.380981 0.218780 -vt 0.395241 0.234786 -vt 0.400249 0.253667 -vt 0.965603 0.625779 -vt 0.960103 0.606448 -vt 0.964409 0.605223 -vt 0.959867 0.606256 -vt 0.945081 0.590174 -vt 0.948345 0.587174 -vt 0.944980 0.589994 -vt 0.923060 0.579326 -vt 0.925004 0.575331 -vt 0.922804 0.579111 -vt 0.896898 0.575715 -vt 0.897478 0.571287 -vt 0.896488 0.575832 -vt 0.870984 0.580465 -vt 0.870192 0.576106 -vt 0.871090 0.580765 -vt 0.850045 0.591809 -vt 0.848032 0.587973 -vt 0.849978 0.591726 -vt 0.835679 0.607766 -vt 0.832423 0.604864 -vt 0.835229 0.607808 -vt 0.829943 0.627172 -vt 0.825630 0.625994 -vt 0.825429 0.628600 -vt 0.829795 0.627476 -vt 0.834839 0.647077 -vt 0.834938 0.647388 -vt 0.849615 0.664055 -vt 0.846232 0.667034 -vt 0.849734 0.664419 -vt 0.872020 0.675593 -vt 0.869983 0.679655 -vt 0.872510 0.675844 -vt 0.898867 0.679208 -vt 0.898292 0.683713 -vt 0.899298 0.679063 -vt 0.925166 0.674243 -vt 0.925990 0.678665 -vt 0.925214 0.673872 -vt 0.946421 0.662289 -vt 0.948532 0.666154 -vt 0.960796 0.645551 -vt 0.965571 0.626072 -vt 0.969910 0.627135 -vt 0.946463 0.662208 -vt 0.960493 0.645679 -vt 0.963848 0.648526 -vt 0.948105 0.626247 -vt 0.943981 0.611749 -vt 0.932892 0.599688 -vt 0.916452 0.591687 -vt 0.897022 0.589141 -vt 0.877895 0.592616 -vt 0.862111 0.600899 -vt 0.851386 0.612929 -vt 0.847422 0.627452 -vt 0.851204 0.642151 -vt 0.862212 0.654652 -vt 0.858299 0.639996 -vt 0.867650 0.650574 -vt 0.855059 0.627491 -vt 0.858342 0.615056 -vt 0.867387 0.604764 -vt 0.880854 0.597722 -vt 0.897158 0.594813 -vt 0.913639 0.596980 -vt 0.927613 0.603769 -vt 0.937009 0.614023 -vt 0.940498 0.626390 -vt 0.889360 0.632986 -vt 0.897657 0.617177 -vt 0.905903 0.621353 -vt 0.902579 0.617848 -vt 0.892663 0.618010 -vt 0.886759 0.623772 -vt 0.885496 0.627482 -vt 0.886126 0.631282 -vt 0.893142 0.636769 -vt 0.898030 0.637438 -vt 0.898536 0.659790 -vt 0.902977 0.636637 -vt 0.915036 0.656788 -vt 0.910146 0.626912 -vt 0.909305 0.623177 -vt 0.909104 0.630632 -vt 0.937495 0.638875 -vt 0.944524 0.640856 -vt 0.934001 0.653253 -vt 0.918096 0.661940 -vt 0.898694 0.665555 -vt 0.928589 0.649439 -vt 0.881820 0.657654 -vt 0.878927 0.663032 -vt 0.778702 0.706144 -vt 0.778685 0.739538 -vt 0.734159 0.739516 -vt 0.749430 0.369489 -vt 0.771693 0.369489 -vt 0.749430 0.402883 -vt 0.309290 0.299251 -vt 0.287948 0.288556 -vt 0.273687 0.272549 -vt 0.359639 0.299250 -vt 0.380981 0.288555 -vt 0.407560 0.410298 -vt 0.395242 0.272548 -vt 0.673123 0.920616 -vt 0.673123 0.787039 -vt 0.707946 0.787039 -vt 0.746724 0.920616 -vt 0.746724 0.787039 -vt 0.788071 0.787039 -vt 0.707946 0.920616 -vt 0.014553 0.196520 -vt 0.022501 0.166550 -vt 0.084658 0.087096 -vt 0.107293 0.061688 -vt 0.176831 0.031082 -vt 0.210707 0.014105 -vt 0.268378 0.006206 -vt 0.308338 0.000244 -vt 0.412517 0.062811 -vt 0.360585 0.000244 -vt 0.458216 0.014102 -vt 0.492093 0.031079 -vt 0.561631 0.061683 -vt 0.584267 0.087090 -vt 0.646426 0.166542 -vt 0.654375 0.196512 -vt 0.000245 0.358091 -vt 0.073337 0.253671 -vt 0.595593 0.253665 -vt 0.668687 0.253664 -vt 0.668688 0.358085 -vt 0.107106 0.625740 -vt 0.080390 0.625740 -vt 0.074289 0.584845 -vt 0.056916 0.550177 -vt 0.107106 0.518878 -vt 0.030914 0.527012 -vt 0.000244 0.518878 -vt 0.107106 0.732601 -vt 0.074289 0.666634 -vt 0.056916 0.701302 -vt 0.030914 0.724467 -vt 0.000244 0.732601 -vt 0.853352 0.497651 -vt 0.864275 0.484795 -vt 0.869830 0.488836 -vt 0.860592 0.499657 -vt 0.857705 0.512298 -vt 0.855021 0.526663 -vt 0.849973 0.512727 -vt 0.861567 0.524383 -vt 0.870383 0.534246 -vt 0.865300 0.537877 -vt 0.883417 0.541474 -vt 0.880358 0.546532 -vt 0.899743 0.544474 -vt 0.919170 0.547631 -vt 0.899586 0.550185 -vt 0.935720 0.539536 -vt 0.916333 0.542300 -vt 0.930392 0.535438 -vt 0.939825 0.525083 -vt 0.946855 0.527350 -vt 0.943294 0.512618 -vt 0.888052 0.511776 -vt 0.900543 0.501703 -vt 0.900262 0.522013 -vt 0.905196 0.521335 -vt 0.895258 0.521183 -vt 0.888653 0.507966 -vt 0.900871 0.479229 -vt 0.895640 0.502411 -vt 0.917515 0.482138 -vt 0.905516 0.502473 -vt 0.911931 0.515964 -vt 0.912760 0.512207 -vt 0.911697 0.508473 -vt 0.950956 0.512733 -vt 0.940219 0.500059 -vt 0.936634 0.485595 -vt 0.947289 0.498034 -vt 0.920566 0.476928 -vt 0.931202 0.489463 -vt 0.900985 0.473414 -vt 0.884037 0.481528 -vt 0.881061 0.476130 -vt 0.800954 0.759909 -vt 0.816528 0.759909 -vt 0.816528 0.761690 -vt 0.725254 0.759909 -vt 0.739240 0.759909 -vt 0.739240 0.761690 -vt 0.768305 0.761690 -vt 0.768305 0.759909 -vt 0.772501 0.759909 -vt 0.772501 0.761690 -vt 0.777173 0.759909 -vt 0.777173 0.761690 -vt 0.764609 0.763959 -vt 0.740828 0.763959 -vt 0.740828 0.762177 -vt 0.764609 0.762177 -vt 0.769281 0.762177 -vt 0.769281 0.763959 -vt 0.773477 0.762177 -vt 0.773477 0.763959 -vt 0.802542 0.762177 -vt 0.816528 0.762177 -vt 0.816528 0.763959 -vt 0.725254 0.762178 -vt 0.800954 0.755373 -vt 0.800954 0.757154 -vt 0.777173 0.757154 -vt 0.777173 0.755373 -vt 0.772501 0.757154 -vt 0.772501 0.755373 -vt 0.768305 0.757154 -vt 0.739241 0.757154 -vt 0.739241 0.755373 -vt 0.725254 0.757154 -vt 0.725254 0.755373 -vt 0.816528 0.757154 -vt 0.769283 0.757641 -vt 0.769283 0.759422 -vt 0.764610 0.759422 -vt 0.740829 0.759422 -vt 0.740829 0.757641 -vt 0.725254 0.759422 -vt 0.725254 0.757641 -vt 0.816528 0.759422 -vt 0.802542 0.759422 -vt 0.802542 0.757641 -vt 0.773479 0.759422 -vt 0.773479 0.757641 -vt 0.969525 0.534430 -vt 0.965184 0.533211 -vt 0.970652 0.513720 -vt 0.953023 0.553646 -vt 0.949726 0.550633 -vt 0.964573 0.534386 -vt 0.928920 0.566345 -vt 0.926953 0.562323 -vt 0.949020 0.551531 -vt 0.900377 0.570800 -vt 0.899795 0.566337 -vt 0.925906 0.562930 -vt 0.871981 0.565663 -vt 0.872814 0.561281 -vt 0.898451 0.566153 -vt 0.849917 0.550610 -vt 0.852548 0.547470 -vt 0.871309 0.560143 -vt 0.835928 0.535895 -vt 0.839331 0.533378 -vt 0.826429 0.518945 -vt 0.830420 0.516763 -vt 0.825429 0.511783 -vt 0.829933 0.491682 -vt 0.834411 0.492685 -vt 0.846082 0.471022 -vt 0.849561 0.473978 -vt 0.834997 0.491120 -vt 0.870651 0.457162 -vt 0.872756 0.461241 -vt 0.850375 0.472794 -vt 0.900059 0.452430 -vt 0.900678 0.456971 -vt 0.874112 0.460593 -vt 0.928881 0.457397 -vt 0.928080 0.461860 -vt 0.901973 0.457174 -vt 0.952382 0.470337 -vt 0.950276 0.474242 -vt 0.928851 0.462686 -vt 0.974994 0.511230 -vt 0.970629 0.512319 -vt 0.965740 0.492720 -vt 0.968449 0.488737 -vt 0.965083 0.491621 -vt 0.950877 0.475036 -vt 0.829906 0.512786 -vt 0.732876 0.064083 -vt 0.764868 0.000244 -vt 0.849987 0.042900 -vt 0.641392 0.920616 -vt 0.641392 0.787039 -vt 0.609660 0.920616 -vt 0.609660 0.787039 -vt 0.574837 0.920616 -vt 0.574837 0.787039 -vt 0.536059 0.920616 -vt 0.536059 0.787039 -vt 0.494712 0.920616 -vt 0.494712 0.787039 -vt 0.453365 0.920616 -vt 0.453365 0.787039 -vt 0.414587 0.920616 -vt 0.414587 0.787039 -vt 0.379763 0.920616 -vt 0.379763 0.787039 -vt 0.348032 0.920616 -vt 0.348032 0.787039 -vt 0.903020 0.920616 -vt 0.903020 0.787039 -vt 0.934751 0.787039 -vt 0.868196 0.920616 -vt 0.868196 0.787039 -vt 0.829418 0.920616 -vt 0.829418 0.787039 -vt 0.788071 0.920616 -vt 0.586671 0.780451 -vt 0.545777 0.786551 -vt 0.537979 0.760999 -vt 0.486129 0.780451 -vt 0.480295 0.752865 -vt 0.534820 0.760999 -vt 0.430843 0.760074 -vt 0.430900 0.728590 -vt 0.477125 0.751755 -vt 0.403618 0.685464 -vt 0.431090 0.676266 -vt 0.455799 0.704000 -vt 0.396969 0.691388 -vt 0.434505 0.720133 -vt 0.383029 0.722903 -vt 0.427856 0.726056 -vt 0.641957 0.760074 -vt 0.607288 0.777448 -vt 0.595675 0.751755 -vt 0.689771 0.722903 -vt 0.666606 0.748904 -vt 0.644944 0.726056 -vt 0.719786 0.663845 -vt 0.711651 0.694516 -vt 0.678001 0.687087 -vt 0.650386 0.483257 -vt 0.680241 0.483257 -vt 0.680241 0.643550 -vt 0.689146 0.483257 -vt 0.392558 0.643550 -vt 0.392558 0.483257 -vt 0.422413 0.483257 -vt 0.383653 0.483257 -vt 0.353014 0.663846 -vt 0.383953 0.646193 -vt 0.394798 0.687087 -vt 0.240683 0.625740 -vt 0.240683 0.732601 -vt 0.240683 0.518878 -vt 0.107106 0.465447 -vt 0.434890 0.720629 -vt 0.481114 0.743793 -vt 0.481609 0.744057 -vt 0.536134 0.752191 -vt 0.536665 0.752191 -vt 0.591191 0.744057 -vt 0.591685 0.743793 -vt 0.637910 0.720628 -vt 0.638295 0.720132 -vt 0.669181 0.685464 -vt 0.669393 0.684804 -vt 0.680239 0.643910 -vt 0.392560 0.643910 -vt 0.403406 0.684804 -vt 0.422414 0.643550 -vt 0.641709 0.676265 -vt 0.650386 0.643550 -vt 0.617000 0.704000 -vt 0.580020 0.722532 -vt 0.536400 0.729040 -vt 0.492779 0.722532 -vt 0.393917 0.474352 -vt 0.678881 0.474352 -vt 0.429538 0.465447 -vt 0.383653 0.643550 -vt 0.348032 0.536688 -vt 0.724767 0.536688 -vt 0.724767 0.643550 -vt 0.689147 0.643550 -vt 0.273499 0.666634 -vt 0.290873 0.701302 -vt 0.316874 0.724467 -vt 0.347545 0.732602 -vt 0.273499 0.584845 -vt 0.290873 0.550177 -vt 0.316874 0.527012 -vt 0.347545 0.518878 -vt 0.736073 0.369002 -vt 0.736073 0.360097 -vt 0.780598 0.360097 -vt 0.558663 0.519991 -vt 0.514137 0.519991 -vt 0.514137 0.553385 -vt 0.558663 0.553385 -vt 0.736073 0.326702 -vt 0.780598 0.326702 -vt 0.789504 0.360097 -vt 0.727167 0.326702 -vt 0.780598 0.317797 -vt 0.787590 0.739542 -vt 0.756443 0.697228 -vt 0.734176 0.706122 -vt 0.725271 0.706118 -vt 0.756418 0.748432 -vt 0.334465 0.374403 -vt 0.356220 0.374403 -vt 0.312711 0.374404 -vt 0.334465 0.303006 -vt 0.356219 0.341772 -vt 0.334465 0.341772 -vt 0.312711 0.341772 -vt 0.778642 0.754886 -vt 0.778460 0.751785 -vt 0.821131 0.749279 -vt 0.727167 0.274565 -vt 0.727167 0.263879 -vt 0.798409 0.263879 -vt 0.727167 0.210448 -vt 0.798409 0.210448 -vt 0.798409 0.221134 -vt 0.798409 0.274565 -vt 0.798409 0.317310 -vt 0.727167 0.221134 -vt 0.732916 0.167216 -vt 0.821206 0.167216 -vt 0.821206 0.209961 -vt 0.725254 0.752953 -vt 0.725436 0.748930 -vt 0.768137 0.750863 -vt 0.767955 0.754886 -vt 0.727167 0.414046 -vt 0.727650 0.403371 -vt 0.730740 0.403693 -vt 0.727167 0.115849 -vt 0.815458 0.115849 -vt 0.815458 0.158593 -vt 0.727167 0.158593 -vt 0.732916 0.107226 -vt 0.821206 0.107226 -vt 0.107106 0.999756 -vt 0.332946 0.110367 -vt 0.261968 0.121562 -vt 0.178293 0.135345 -vt 0.160867 0.200176 -vt 0.091552 0.181794 -vt 0.487363 0.132480 -vt 0.505963 0.196037 -vt 0.555661 0.151760 -vt 0.554085 0.250806 -vt 0.413270 0.464959 -vt 0.170402 0.461997 -vt 0.695202 0.464958 -vt 0.448774 0.410297 -vt 0.220159 0.410299 -vt 0.438886 0.418999 -vt 0.236808 0.223385 -vt 0.681753 0.430663 -vt 0.156954 0.427702 -vt 0.969910 0.624554 -vt 0.963131 0.603255 -vt 0.946924 0.585999 -vt 0.923384 0.574682 -vt 0.895696 0.571472 -vt 0.869077 0.576930 -vt 0.846723 0.588824 -vt 0.830916 0.606630 -vt 0.830473 0.648201 -vt 0.831556 0.650366 -vt 0.847697 0.668481 -vt 0.871935 0.680349 -vt 0.900121 0.683485 -vt 0.927325 0.677737 -vt 0.965134 0.646614 -vt 0.949818 0.665055 -vt 0.906481 0.632421 -vt 0.889651 0.621829 -vt 0.727167 0.402883 -vt 0.727167 0.369489 -vt 0.771693 0.402883 -vt 0.400545 0.006204 -vt 0.000245 0.410301 -vt 0.000244 0.253672 -vt 0.668689 0.410295 -vt 0.908519 0.517808 -vt 0.892229 0.517372 -vt 0.889334 0.515445 -vt 0.891872 0.506240 -vt 0.909053 0.506688 -vt 0.800954 0.761690 -vt 0.725254 0.761690 -vt 0.802542 0.763959 -vt 0.725254 0.763959 -vt 0.768305 0.755373 -vt 0.816528 0.755373 -vt 0.764610 0.757641 -vt 0.816528 0.757641 -vt 0.974994 0.514938 -vt 0.967870 0.537399 -vt 0.950987 0.555552 -vt 0.926489 0.567393 -vt 0.897619 0.570535 -vt 0.868940 0.563610 -vt 0.831518 0.488164 -vt 0.848269 0.468715 -vt 0.873493 0.456052 -vt 0.902774 0.452711 -vt 0.930957 0.458781 -vt 0.970105 0.491631 -vt 0.954243 0.472153 -vt 0.855695 0.064083 -vt 0.851619 0.083654 -vt 0.838381 0.098632 -vt 0.817995 0.106739 -vt 0.793564 0.106739 -vt 0.768809 0.098632 -vt 0.747498 0.083654 -vt 0.727167 0.042900 -vt 0.731243 0.023329 -vt 0.744481 0.008350 -vt 0.789298 0.000244 -vt 0.814053 0.008350 -vt 0.835364 0.023329 -vt 0.934751 0.920616 -vt 0.592505 0.752865 -vt 0.527023 0.786552 -vt 0.465511 0.777448 -vt 0.406194 0.748904 -vt 0.641900 0.728590 -vt 0.675830 0.691388 -vt 0.688847 0.646193 -vt 0.361148 0.694516 -vt 0.240683 0.465447 -vt 0.643261 0.465447 -vt 0.678881 0.465447 -vt 0.393917 0.465447 -vt 0.348032 0.483257 -vt 0.348032 0.643550 -vt 0.724767 0.483257 -vt 0.267398 0.625740 -vt 0.780598 0.369002 -vt 0.789504 0.326702 -vt 0.727167 0.360097 -vt 0.736073 0.317797 -vt 0.787607 0.706148 -vt 0.734180 0.697217 -vt 0.778706 0.697239 -vt 0.725254 0.739512 -vt 0.778681 0.748443 -vt 0.734155 0.748421 -vt 0.821313 0.752380 -vt 0.727167 0.317310 -vt 0.732916 0.209961 -vt 0.731195 0.414046 -vn 0.000000 -1.000000 0.000000 -vn -0.661800 0.735300 0.146300 -vn 0.000000 0.980800 0.195100 -vn 0.661800 0.735300 0.146300 -vn -0.661800 0.623400 0.416500 -vn 0.661800 0.623400 0.416500 -vn 0.000000 0.831500 0.555600 -vn 0.661800 0.416500 0.623400 -vn 0.000000 0.555600 0.831500 -vn -0.661800 0.416500 0.623400 -vn -0.661800 0.146300 0.735300 -vn 0.661800 0.146300 0.735300 -vn -0.661800 0.735300 -0.146300 -vn 0.000000 0.980800 -0.195100 -vn 0.661800 0.735300 -0.146300 -vn 0.661800 0.623400 -0.416500 -vn 0.000000 0.831500 -0.555600 -vn -0.661800 0.623400 -0.416500 -vn -0.661800 0.416500 -0.623400 -vn 0.000000 0.555600 -0.831500 -vn 0.661800 0.416500 -0.623400 -vn 0.661800 0.146300 -0.735300 -vn 0.000000 0.195100 -0.980800 -vn -0.661800 0.146300 -0.735300 -vn 0.000000 0.195100 0.980800 -vn 0.000000 0.000000 1.000000 -vn 0.669000 0.000000 0.743300 -vn 0.000000 0.000000 -1.000000 -vn 0.669000 0.000000 -0.743300 -vn -1.000000 0.000000 -0.000000 -vn -0.669000 0.000000 -0.743300 -vn -0.669000 0.000000 0.743300 -vn 0.000000 -0.195100 0.980800 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 -0.555600 -0.831500 -vn -0.679800 0.143100 -0.719300 -vn -0.679800 0.407500 -0.609800 -vn -0.679800 0.609800 -0.407500 -vn -0.679800 0.719300 -0.143100 -vn -0.679800 0.719300 0.143100 -vn -0.679800 0.609800 0.407500 -vn -0.679800 0.407500 0.609800 -vn -0.679800 0.143100 0.719300 -vn -0.679800 -0.143100 0.719300 -vn -0.679800 -0.407500 0.609800 -vn -0.679800 -0.143100 -0.719300 -vn -0.679800 -0.407500 -0.609800 -vn -0.679800 -0.609800 -0.407500 -vn -0.679800 -0.719300 -0.143100 -vn -0.679800 -0.609800 0.407500 -vn -0.679800 -0.719300 0.143100 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.382700 0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 -0.923900 0.382700 -vn 0.388200 0.512000 -0.766200 -vn 0.388200 0.766200 -0.512000 -vn 0.388200 0.903800 -0.179800 -vn 0.388200 0.903800 0.179800 -vn 0.388200 0.766200 0.512000 -vn 0.388200 0.512000 0.766200 -vn 0.388200 0.179800 0.903800 -vn 0.388200 -0.179800 0.903800 -vn 0.388200 -0.512000 0.766200 -vn 0.388200 -0.766200 0.512000 -vn 0.388200 -0.903800 0.179800 -vn 0.388200 -0.903800 -0.179800 -vn 0.388200 -0.766200 -0.512000 -vn 0.388200 -0.512000 -0.766200 -vn 0.388200 -0.179800 -0.903800 -vn 0.388200 0.179800 -0.903800 -vn 0.617300 0.437100 0.654100 -vn 0.624700 0.000000 -0.780900 -vn 0.624700 0.000000 0.780900 -vn 0.000000 1.000000 0.000000 -vn 0.617300 0.153500 0.771600 -vn 0.617300 0.153500 -0.771600 -vn 0.617300 0.437100 -0.654100 -vn 0.617300 0.654100 -0.437100 -vn 0.617300 0.771600 -0.153500 -vn 0.617300 0.771600 0.153500 -vn 0.617300 0.654100 0.437100 -vn 0.019600 -0.999800 0.000000 -vn -0.258800 -0.965900 0.000000 -vn 0.015100 0.999900 0.000000 -vn 0.258800 0.965900 0.000000 -vn -1.000000 -0.000100 0.000000 -vn 1.000000 0.000100 0.000000 -s off -f 3/1/1 4/2/1 2/3/1 -f 10/4/2 19/5/2 18/6/2 -f 19/5/3 28/7/3 27/8/3 -f 28/7/4 37/9/4 36/10/4 -f 11/11/5 20/12/5 19/13/5 -f 29/14/6 38/15/6 37/16/6 -f 20/12/7 29/14/7 28/17/7 -f 30/18/8 39/19/8 38/20/8 -f 21/21/9 30/18/9 29/22/9 -f 11/23/10 12/24/10 21/21/10 -f 13/25/11 22/26/11 21/27/11 -f 30/28/12 31/29/12 40/30/12 -f 9/31/13 18/32/13 17/33/13 -f 18/32/14 27/34/14 26/35/14 -f 26/35/15 27/34/15 36/36/15 -f 26/37/16 35/38/16 34/39/16 -f 17/40/17 26/37/17 25/41/17 -f 7/42/18 8/43/18 17/40/18 -f 7/44/19 16/45/19 15/46/19 -f 16/45/20 25/47/20 24/48/20 -f 24/48/21 25/47/21 34/49/21 -f 24/50/22 33/51/22 32/52/22 -f 15/53/23 24/50/23 23/54/23 -f 5/55/24 6/56/24 15/53/24 -f 22/26/25 31/29/25 30/28/25 -f 44/57/1 42/58/1 41/59/1 -f 44/57/1 43/60/1 3/61/1 -f 22/62/26 42/63/26 44/64/26 -f 31/65/27 44/64/27 46/66/27 -f 43/67/28 41/68/28 14/69/28 -f 45/70/29 43/67/29 23/71/29 -f 47/72/30 48/73/30 6/56/30 -f 48/74/30 49/75/30 7/44/30 -f 7/42/30 49/76/30 50/77/30 -f 8/78/30 50/79/30 51/80/30 -f 51/81/30 52/82/30 10/4/30 -f 52/83/30 53/84/30 11/11/30 -f 53/85/30 54/86/30 12/24/30 -f 54/87/30 55/88/30 13/25/30 -f 47/89/30 5/90/30 59/91/30 -f 58/92/30 13/93/30 55/94/30 -f 14/69/31 41/68/31 59/91/31 -f 58/92/32 42/63/32 22/62/32 -f 79/95/1 81/96/1 162/97/1 -f 68/98/25 55/88/25 54/87/25 -f 66/99/9 67/100/9 54/86/9 -f 65/101/7 66/102/7 53/84/7 -f 64/103/3 65/104/3 52/82/3 -f 63/105/14 64/106/14 51/80/14 -f 62/107/17 63/108/17 50/77/17 -f 61/109/20 62/110/20 49/75/20 -f 60/111/23 61/112/23 48/73/23 -f 60/111/24 69/113/24 70/114/24 -f 70/114/19 71/115/19 62/110/19 -f 62/107/18 71/115/18 72/116/18 -f 72/116/13 73/117/13 64/106/13 -f 64/103/2 73/117/2 74/118/2 -f 74/118/5 75/119/5 66/102/5 -f 66/99/10 75/119/10 76/120/10 -f 76/120/11 77/121/11 68/98/11 -f 42/58/1 56/122/1 41/59/1 -f 57/123/1 56/122/1 79/95/1 -f 78/124/28 60/125/28 47/89/28 -f 69/113/31 60/125/31 78/124/31 -f 55/94/26 68/126/26 79/127/26 -f 81/96/32 79/127/32 68/126/32 -f 89/128/30 90/129/30 77/121/30 -f 88/130/30 89/128/30 76/120/30 -f 87/131/30 88/130/30 75/119/30 -f 73/117/30 86/132/30 87/131/30 -f 85/133/30 86/132/30 73/117/30 -f 71/115/30 84/134/30 85/133/30 -f 83/135/30 84/134/30 71/115/30 -f 69/113/30 82/136/30 83/135/30 -f 98/137/23 99/138/23 83/139/23 -f 99/140/20 100/141/20 84/142/20 -f 100/143/17 101/144/17 85/145/17 -f 101/146/14 102/147/14 86/148/14 -f 102/149/3 103/150/3 87/151/3 -f 103/152/7 104/153/7 88/154/7 -f 104/155/9 105/156/9 89/157/9 -f 105/158/25 106/159/25 90/160/25 -f 90/161/33 106/162/33 107/163/33 -f 107/164/34 108/165/34 92/166/34 -f 108/167/35 109/168/35 93/169/35 -f 109/170/36 110/171/36 94/172/36 -f 110/173/37 111/174/37 95/175/37 -f 111/176/38 112/177/38 96/178/38 -f 113/179/39 98/180/39 82/181/39 -f 112/182/40 113/183/40 97/184/40 -f 114/185/41 115/186/41 99/138/41 -f 115/186/42 116/187/42 100/141/42 -f 100/143/43 116/187/43 117/188/43 -f 117/188/44 118/189/44 102/147/44 -f 102/149/45 118/189/45 119/190/45 -f 119/190/46 120/191/46 104/153/46 -f 120/191/47 121/192/47 105/156/47 -f 105/158/48 121/192/48 122/193/48 -f 106/162/49 122/193/49 123/194/49 -f 123/194/50 124/195/50 108/165/50 -f 123/194/30 139/196/30 140/197/30 -f 138/198/30 139/196/30 123/194/30 -f 121/192/30 137/199/30 138/198/30 -f 136/200/30 137/199/30 121/192/30 -f 135/201/30 136/200/30 120/191/30 -f 134/202/30 135/201/30 119/190/30 -f 117/188/30 133/203/30 134/202/30 -f 116/187/30 132/204/30 133/203/30 -f 115/186/30 131/205/30 132/204/30 -f 130/206/30 131/205/30 115/186/30 -f 156/207/30 150/208/30 148/209/30 -f 149/210/30 150/208/30 134/202/30 -f 134/202/30 150/208/30 151/211/30 -f 137/199/30 153/212/30 154/213/30 -f 138/198/30 154/213/30 155/214/30 -f 157/215/30 158/216/30 142/217/30 -f 158/216/30 159/218/30 143/219/30 -f 146/220/30 147/221/30 131/205/30 -f 161/222/30 146/220/30 130/206/30 -f 145/223/30 130/206/30 114/185/30 -f 129/224/51 114/185/51 98/180/51 -f 128/225/52 129/224/52 113/183/52 -f 111/176/53 127/226/53 128/225/53 -f 126/227/54 127/226/54 111/174/54 -f 128/225/30 144/228/30 145/223/30 -f 127/226/30 143/219/30 144/228/30 -f 142/217/30 143/219/30 127/226/30 -f 141/229/30 142/217/30 126/227/30 -f 124/195/30 140/197/30 141/229/30 -f 108/167/55 124/195/55 125/230/55 -f 125/230/56 126/227/56 110/171/56 -f 326/231/30 329/232/30 328/233/30 -f 330/234/57 325/235/57 331/236/57 -f 93/237/30 81/96/30 92/238/30 -f 91/239/30 92/238/30 81/96/30 -f 77/121/30 90/129/30 91/239/30 -f 95/240/30 96/241/30 80/242/30 -f 96/241/30 97/243/30 80/242/30 -f 97/243/30 82/136/30 69/113/30 -f 182/244/40 279/245/40 278/246/40 -f 180/247/37 277/248/37 276/249/37 -f 181/250/38 278/246/38 277/248/38 -f 40/30/57 175/251/57 174/252/57 -f 39/19/57 174/253/57 173/254/57 -f 38/15/57 173/255/57 172/256/57 -f 37/9/57 172/257/57 171/258/57 -f 35/259/57 36/36/57 171/260/57 -f 35/38/57 167/261/57 168/262/57 -f 34/49/57 168/263/57 169/264/57 -f 33/51/57 169/265/57 170/266/57 -f 163/267/57 40/268/57 46/66/57 -f 32/269/57 170/270/57 165/271/57 -f 183/272/57 179/273/57 178/274/57 -f 178/274/57 177/275/57 163/276/57 -f 176/277/57 163/276/57 177/275/57 -f 175/278/57 163/276/57 176/277/57 -f 183/272/57 165/279/57 180/280/57 -f 180/280/57 165/279/57 181/281/57 -f 181/281/57 165/279/57 182/282/57 -f 170/283/57 182/282/57 165/279/57 -f 193/284/57 194/285/57 210/286/57 -f 193/284/57 209/287/57 208/288/57 -f 191/289/57 192/290/57 208/288/57 -f 191/289/57 207/291/57 206/292/57 -f 190/293/57 206/292/57 205/294/57 -f 189/295/57 205/294/57 204/296/57 -f 187/297/57 188/298/57 204/296/57 -f 186/299/57 187/297/57 203/300/57 -f 186/299/57 202/301/57 201/302/57 -f 185/303/57 201/302/57 200/304/57 -f 224/305/57 228/306/57 220/307/57 -f 204/296/57 220/307/57 219/308/57 -f 204/296/57 205/294/57 221/309/57 -f 207/291/57 208/288/57 224/305/57 -f 208/288/57 209/287/57 225/310/57 -f 212/311/57 228/306/57 227/312/57 -f 213/313/57 229/314/57 228/306/57 -f 201/302/57 217/315/57 216/316/57 -f 200/304/57 216/316/57 231/317/57 -f 184/318/57 200/304/57 215/319/57 -f 198/320/57 199/321/57 215/319/57 -f 197/322/57 198/320/57 214/323/57 -f 197/322/57 213/313/57 212/311/57 -f 196/324/57 212/311/57 211/325/57 -f 194/285/57 195/326/57 211/325/57 -f 205/327/38 206/328/38 136/329/38 -f 206/330/40 207/331/40 137/332/40 -f 153/333/58 137/332/58 207/331/58 -f 153/333/9 223/334/9 222/335/9 -f 152/336/7 222/335/7 221/337/7 -f 151/338/59 221/337/59 205/327/59 -f 149/339/60 133/340/60 203/341/60 -f 149/339/17 219/342/17 218/343/17 -f 148/344/20 218/343/20 217/345/20 -f 147/346/61 217/345/61 201/347/61 -f 201/347/34 202/348/34 132/349/34 -f 202/350/35 203/341/35 133/340/35 -f 141/351/62 211/352/62 227/353/62 -f 157/354/35 227/353/35 226/355/35 -f 156/356/34 226/355/34 225/357/34 -f 225/357/63 209/358/63 139/359/63 -f 209/358/20 210/360/20 140/361/20 -f 210/362/17 211/352/17 141/351/17 -f 160/363/38 230/364/38 229/365/38 -f 229/365/64 213/366/64 143/367/64 -f 213/366/7 214/368/7 144/369/7 -f 214/370/9 215/371/9 145/372/9 -f 145/372/65 215/371/65 231/373/65 -f 161/374/40 231/373/40 230/364/40 -f 233/375/33 249/376/33 248/377/33 -f 234/378/34 250/379/34 249/380/34 -f 235/381/35 251/382/35 250/383/35 -f 236/384/36 252/385/36 251/386/36 -f 237/387/37 253/388/37 252/389/37 -f 238/390/38 254/391/38 253/392/38 -f 239/393/40 255/394/40 254/391/40 -f 240/395/39 256/396/39 255/394/39 -f 240/397/23 241/398/23 257/399/23 -f 242/400/20 258/401/20 257/402/20 -f 243/403/17 259/404/17 258/405/17 -f 244/406/14 260/407/14 259/408/14 -f 245/409/3 261/410/3 260/411/3 -f 246/412/7 262/413/7 261/414/7 -f 232/415/25 248/416/25 263/417/25 -f 247/418/9 263/419/9 262/420/9 -f 257/402/66 258/401/66 194/285/66 -f 194/285/67 258/405/67 259/404/67 -f 195/326/68 259/408/68 260/407/68 -f 196/324/69 260/411/69 261/410/69 -f 197/322/70 261/414/70 262/413/70 -f 262/420/71 263/419/71 199/321/71 -f 199/321/72 263/417/72 248/416/72 -f 248/377/73 249/376/73 185/303/73 -f 249/380/74 250/379/74 186/299/74 -f 250/383/75 251/382/75 187/297/75 -f 187/297/76 251/386/76 252/385/76 -f 252/389/77 253/388/77 189/295/77 -f 253/392/78 254/391/78 190/293/78 -f 254/391/79 255/394/79 191/289/79 -f 255/394/80 256/396/80 192/290/80 -f 256/421/81 257/399/81 193/284/81 -f 242/422/30 238/423/30 234/424/30 -f 170/425/39 267/426/39 279/245/39 -f 169/427/23 266/428/23 267/426/23 -f 168/429/20 265/430/20 266/428/20 -f 168/429/17 167/431/17 264/432/17 -f 167/431/14 171/433/14 268/434/14 -f 172/435/3 269/436/3 268/434/3 -f 173/437/7 270/438/7 269/436/7 -f 174/439/9 271/440/9 270/438/9 -f 175/441/25 272/442/25 271/440/25 -f 176/443/33 273/444/33 272/445/33 -f 177/446/34 274/447/34 273/444/34 -f 178/448/35 275/449/35 274/447/35 -f 179/450/36 276/249/36 275/449/36 -f 264/451/30 268/452/30 284/453/30 -f 269/454/30 285/455/30 284/456/30 -f 270/457/30 286/458/30 285/459/30 -f 296/460/82 305/461/82 306/462/82 -f 287/463/9 296/460/9 297/464/9 -f 271/465/30 287/463/30 286/466/30 -f 265/467/30 264/468/30 283/469/30 -f 266/470/30 265/471/30 282/472/30 -f 267/473/30 266/474/30 281/475/30 -f 290/476/83 293/477/83 303/478/83 -f 303/478/28 293/477/28 295/479/28 -f 304/480/84 291/481/84 289/482/84 -f 294/483/26 291/481/26 304/480/26 -f 272/484/30 288/485/30 287/486/30 -f 292/487/85 166/488/85 183/272/85 -f 164/489/26 163/276/26 1/490/26 -f 3/1/28 165/279/28 166/488/28 -f 286/458/7 297/491/7 298/492/7 -f 285/455/3 298/493/3 299/494/3 -f 284/453/14 299/495/14 300/496/14 -f 283/469/17 300/497/17 301/498/17 -f 282/472/20 301/499/20 302/500/20 -f 281/475/23 302/501/23 303/502/23 -f 288/485/25 304/503/25 296/504/25 -f 304/503/86 313/505/86 305/461/86 -f 302/501/87 311/506/87 312/507/87 -f 301/499/88 310/508/88 311/506/88 -f 301/498/89 300/497/89 309/509/89 -f 299/495/90 308/510/90 309/509/90 -f 299/494/91 298/493/91 307/511/91 -f 297/491/92 306/462/92 307/511/92 -f 289/482/1 291/512/1 293/513/1 -f 2/514/1 293/513/1 291/512/1 -f 288/515/30 164/516/30 294/483/30 -f 166/517/30 267/518/30 280/519/30 -f 277/520/30 166/488/30 292/487/30 -f 277/520/30 278/521/30 166/488/30 -f 278/521/30 279/522/30 166/488/30 -f 279/522/30 267/523/30 166/488/30 -f 292/487/30 164/489/30 275/524/30 -f 274/525/30 275/524/30 164/489/30 -f 273/526/30 274/525/30 164/489/30 -f 272/527/30 273/526/30 164/489/30 -f 314/528/85 319/529/85 318/530/85 -f 317/531/57 315/532/57 289/482/57 -f 289/482/57 315/532/57 314/533/57 -f 316/534/57 317/531/57 290/476/57 -f 312/507/57 313/505/57 314/533/57 -f 320/535/57 321/536/57 318/530/57 -f 316/537/28 318/530/28 321/536/28 -f 315/538/26 320/535/26 319/529/26 -f 317/539/1 321/536/1 320/535/1 -f 312/507/57 311/506/57 305/461/57 -f 311/506/57 310/508/57 306/462/57 -f 310/508/57 309/509/57 307/511/57 -f 308/510/57 307/511/57 309/509/57 -f 325/540/28 329/232/28 326/231/28 -f 331/541/85 326/231/85 327/542/85 -f 323/543/26 327/542/26 328/233/26 -f 330/544/1 328/233/1 329/232/1 -f 162/97/30 330/545/30 325/546/30 -f 162/97/30 81/96/30 324/547/30 -f 94/548/30 95/240/30 322/549/30 -f 94/548/30 331/550/30 323/551/30 -f 93/237/30 323/551/30 81/96/30 -f 81/96/30 323/551/30 324/547/30 -f 80/242/30 322/549/30 95/240/30 -f 80/242/30 325/546/30 322/549/30 -f 339/552/93 343/553/93 342/554/93 -f 335/555/28 334/556/28 336/557/28 -f 333/558/26 338/559/26 337/560/26 -f 335/555/1 339/561/1 338/562/1 -f 332/563/85 337/560/85 336/557/85 -f 343/564/94 347/565/94 346/566/94 -f 337/567/95 341/568/95 340/569/95 -f 336/570/28 340/569/28 343/553/28 -f 337/571/26 338/572/26 342/573/26 -f 341/574/96 345/575/96 344/576/96 -f 343/564/28 340/577/28 344/576/28 -f 342/578/26 346/579/26 345/575/26 -f 1/580/1 3/1/1 2/3/1 -f 9/581/2 10/4/2 18/6/2 -f 18/6/3 19/5/3 27/8/3 -f 27/8/4 28/7/4 36/10/4 -f 10/582/5 11/11/5 19/13/5 -f 28/17/6 29/14/6 37/16/6 -f 19/13/7 20/12/7 28/17/7 -f 29/22/8 30/18/8 38/20/8 -f 20/583/9 21/21/9 29/22/9 -f 20/583/10 11/23/10 21/21/10 -f 12/584/11 13/25/11 21/27/11 -f 39/585/12 30/28/12 40/30/12 -f 8/78/13 9/31/13 17/33/13 -f 17/33/14 18/32/14 26/35/14 -f 35/259/15 26/35/15 36/36/15 -f 25/41/16 26/37/16 34/39/16 -f 16/586/17 17/40/17 25/41/17 -f 16/586/18 7/42/18 17/40/18 -f 6/587/19 7/44/19 15/46/19 -f 15/46/20 16/45/20 24/48/20 -f 33/588/21 24/48/21 34/49/21 -f 23/54/22 24/50/22 32/52/22 -f 14/589/23 15/53/23 23/54/23 -f 14/589/24 5/55/24 15/53/24 -f 21/27/25 22/26/25 30/28/25 -f 43/60/1 44/57/1 41/59/1 -f 3/61/1 1/590/1 44/57/1 -f 46/591/1 44/57/1 1/590/1 -f 43/60/1 45/592/1 3/61/1 -f 31/65/26 22/62/26 44/64/26 -f 40/268/27 31/65/27 46/66/27 -f 23/71/28 43/67/28 14/69/28 -f 32/269/29 45/70/29 23/71/29 -f 5/55/30 47/72/30 6/56/30 -f 6/587/30 48/74/30 7/44/30 -f 8/43/30 7/42/30 50/77/30 -f 9/31/30 8/78/30 51/80/30 -f 9/581/30 51/81/30 10/4/30 -f 10/582/30 52/83/30 11/11/30 -f 11/23/30 53/85/30 12/24/30 -f 12/584/30 54/87/30 13/25/30 -f 57/593/30 47/89/30 59/91/30 -f 56/594/30 58/92/30 55/94/30 -f 5/90/31 14/69/31 59/91/31 -f 13/93/32 58/92/32 22/62/32 -f 162/97/1 80/242/1 78/595/1 -f 78/595/1 79/95/1 162/97/1 -f 67/596/25 68/98/25 54/87/25 -f 53/85/9 66/99/9 54/86/9 -f 52/83/7 65/101/7 53/84/7 -f 51/81/3 64/103/3 52/82/3 -f 50/79/14 63/105/14 51/80/14 -f 49/76/17 62/107/17 50/77/17 -f 48/74/20 61/109/20 49/75/20 -f 47/72/23 60/111/23 48/73/23 -f 61/112/24 60/111/24 70/114/24 -f 61/109/19 70/114/19 62/110/19 -f 63/108/18 62/107/18 72/116/18 -f 63/105/13 72/116/13 64/106/13 -f 65/104/2 64/103/2 74/118/2 -f 65/101/5 74/118/5 66/102/5 -f 67/100/10 66/99/10 76/120/10 -f 67/596/11 76/120/11 68/98/11 -f 59/597/1 41/59/1 57/123/1 -f 42/58/1 58/598/1 56/122/1 -f 56/122/1 57/123/1 41/59/1 -f 78/595/1 57/123/1 79/95/1 -f 57/593/28 78/124/28 47/89/28 -f 80/242/31 69/113/31 78/124/31 -f 56/594/26 55/94/26 79/127/26 -f 77/121/32 81/96/32 68/126/32 -f 76/120/30 89/128/30 77/121/30 -f 75/119/30 88/130/30 76/120/30 -f 74/118/30 87/131/30 75/119/30 -f 74/118/30 73/117/30 87/131/30 -f 72/116/30 85/133/30 73/117/30 -f 72/116/30 71/115/30 85/133/30 -f 70/114/30 83/135/30 71/115/30 -f 70/114/30 69/113/30 83/135/30 -f 82/599/23 98/137/23 83/139/23 -f 83/600/20 99/140/20 84/142/20 -f 84/601/17 100/143/17 85/145/17 -f 85/602/14 101/146/14 86/148/14 -f 86/603/3 102/149/3 87/151/3 -f 87/604/7 103/152/7 88/154/7 -f 88/605/9 104/155/9 89/157/9 -f 89/606/25 105/158/25 90/160/25 -f 91/607/33 90/161/33 107/163/33 -f 91/608/34 107/164/34 92/166/34 -f 92/609/35 108/167/35 93/169/35 -f 93/610/36 109/170/36 94/172/36 -f 94/611/37 110/173/37 95/175/37 -f 95/612/38 111/176/38 96/178/38 -f 97/613/39 113/179/39 82/181/39 -f 96/614/40 112/182/40 97/184/40 -f 98/137/41 114/185/41 99/138/41 -f 99/140/42 115/186/42 100/141/42 -f 101/144/43 100/143/43 117/188/43 -f 101/146/44 117/188/44 102/147/44 -f 103/150/45 102/149/45 119/190/45 -f 103/152/46 119/190/46 104/153/46 -f 104/155/47 120/191/47 105/156/47 -f 106/159/48 105/158/48 122/193/48 -f 107/163/49 106/162/49 123/194/49 -f 107/164/50 123/194/50 108/165/50 -f 124/195/30 123/194/30 140/197/30 -f 122/193/30 138/198/30 123/194/30 -f 122/193/30 121/192/30 138/198/30 -f 120/191/30 136/200/30 121/192/30 -f 119/190/30 135/201/30 120/191/30 -f 118/189/30 134/202/30 119/190/30 -f 118/189/30 117/188/30 134/202/30 -f 117/188/30 116/187/30 133/203/30 -f 116/187/30 115/186/30 132/204/30 -f 114/185/30 130/206/30 115/186/30 -f 148/209/30 147/221/30 160/615/30 -f 146/220/30 161/222/30 160/615/30 -f 160/615/30 159/218/30 158/216/30 -f 158/216/97 157/215/97 156/207/97 -f 156/207/30 155/214/30 152/616/30 -f 154/213/30 153/212/30 152/616/30 -f 152/616/30 151/211/30 150/208/30 -f 150/208/30 149/210/30 148/209/30 -f 147/221/30 146/220/30 160/615/30 -f 160/615/30 158/216/30 148/209/30 -f 155/214/30 154/213/30 152/616/30 -f 152/616/30 150/208/30 156/207/30 -f 148/209/30 158/216/30 156/207/30 -f 133/203/30 149/210/30 134/202/30 -f 135/201/30 134/202/30 151/211/30 -f 138/198/30 137/199/30 154/213/30 -f 139/196/30 138/198/30 155/214/30 -f 141/229/30 157/215/30 142/217/30 -f 142/217/30 158/216/30 143/219/30 -f 130/206/30 146/220/30 131/205/30 -f 145/223/30 161/222/30 130/206/30 -f 129/224/30 145/223/30 114/185/30 -f 113/179/51 129/224/51 98/180/51 -f 112/182/52 128/225/52 113/183/52 -f 112/177/53 111/176/53 128/225/53 -f 110/173/54 126/227/54 111/174/54 -f 129/224/30 128/225/30 145/223/30 -f 128/225/30 127/226/30 144/228/30 -f 126/227/30 142/217/30 127/226/30 -f 125/230/30 141/229/30 126/227/30 -f 125/230/30 124/195/30 141/229/30 -f 109/168/55 108/167/55 125/230/55 -f 109/170/56 125/230/56 110/171/56 -f 327/542/30 326/231/30 328/233/30 -f 331/236/57 323/617/57 324/618/57 -f 324/618/57 330/234/57 331/236/57 -f 325/235/57 322/619/57 331/236/57 -f 81/96/30 77/121/30 91/239/30 -f 80/242/30 97/243/30 69/113/30 -f 181/250/40 182/244/40 278/246/40 -f 179/450/37 180/247/37 276/249/37 -f 180/247/38 181/250/38 277/248/38 -f 39/585/57 40/30/57 174/252/57 -f 38/20/57 39/19/57 173/254/57 -f 37/16/57 38/15/57 172/256/57 -f 36/10/57 37/9/57 171/258/57 -f 167/620/57 35/259/57 171/260/57 -f 34/39/57 35/38/57 168/262/57 -f 33/588/57 34/49/57 169/264/57 -f 32/52/57 33/51/57 170/266/57 -f 46/66/57 1/621/57 163/267/57 -f 163/267/57 175/622/57 40/268/57 -f 165/271/57 3/623/57 45/70/57 -f 45/70/57 32/269/57 165/271/57 -f 163/276/57 183/272/57 178/274/57 -f 179/273/57 183/272/57 180/280/57 -f 209/287/57 193/284/57 210/286/57 -f 192/290/57 193/284/57 208/288/57 -f 207/291/57 191/289/57 208/288/57 -f 190/293/57 191/289/57 206/292/57 -f 189/295/57 190/293/57 205/294/57 -f 188/298/57 189/295/57 204/296/57 -f 203/300/57 187/297/57 204/296/57 -f 202/301/57 186/299/57 203/300/57 -f 185/303/57 186/299/57 201/302/57 -f 184/318/57 185/303/57 200/304/57 -f 216/316/57 217/315/57 220/307/57 -f 218/624/57 219/308/57 220/307/57 -f 220/307/57 221/309/57 222/625/57 -f 222/625/57 223/626/57 220/307/57 -f 224/305/57 225/310/57 228/306/57 -f 226/627/98 227/312/98 228/306/98 -f 228/306/57 229/314/57 216/316/57 -f 230/628/57 231/317/57 216/316/57 -f 217/315/57 218/624/57 220/307/57 -f 220/307/57 223/626/57 224/305/57 -f 225/310/57 226/627/57 228/306/57 -f 229/314/57 230/628/57 216/316/57 -f 216/316/57 220/307/57 228/306/57 -f 203/300/57 204/296/57 219/308/57 -f 220/307/57 204/296/57 221/309/57 -f 223/626/57 207/291/57 224/305/57 -f 224/305/57 208/288/57 225/310/57 -f 211/325/57 212/311/57 227/312/57 -f 212/311/57 213/313/57 228/306/57 -f 200/304/57 201/302/57 216/316/57 -f 215/319/57 200/304/57 231/317/57 -f 199/321/57 184/318/57 215/319/57 -f 214/323/57 198/320/57 215/319/57 -f 213/313/57 197/322/57 214/323/57 -f 196/324/57 197/322/57 212/311/57 -f 195/326/57 196/324/57 211/325/57 -f 210/286/57 194/285/57 211/325/57 -f 135/629/38 205/327/38 136/329/38 -f 136/630/40 206/330/40 137/332/40 -f 223/334/58 153/333/58 207/331/58 -f 152/336/9 153/333/9 222/335/9 -f 151/338/7 152/336/7 221/337/7 -f 135/629/59 151/338/59 205/327/59 -f 219/342/60 149/339/60 203/341/60 -f 148/344/17 149/339/17 218/343/17 -f 147/346/20 148/344/20 217/345/20 -f 131/631/61 147/346/61 201/347/61 -f 131/631/34 201/347/34 132/349/34 -f 132/632/35 202/350/35 133/340/35 -f 157/354/62 141/351/62 227/353/62 -f 156/356/35 157/354/35 226/355/35 -f 155/633/34 156/356/34 225/357/34 -f 155/633/63 225/357/63 139/359/63 -f 139/359/20 209/358/20 140/361/20 -f 140/634/17 210/362/17 141/351/17 -f 159/635/38 160/363/38 229/365/38 -f 159/635/64 229/365/64 143/367/64 -f 143/367/7 213/366/7 144/369/7 -f 144/636/9 214/370/9 145/372/9 -f 161/374/65 145/372/65 231/373/65 -f 160/363/40 161/374/40 230/364/40 -f 232/637/33 233/375/33 248/377/33 -f 233/638/34 234/378/34 249/380/34 -f 234/639/35 235/381/35 250/383/35 -f 235/640/36 236/384/36 251/386/36 -f 236/641/37 237/387/37 252/389/37 -f 237/642/38 238/390/38 253/392/38 -f 238/390/40 239/393/40 254/391/40 -f 239/393/39 240/395/39 255/394/39 -f 256/421/23 240/397/23 257/399/23 -f 241/643/20 242/400/20 257/402/20 -f 242/644/17 243/403/17 258/405/17 -f 243/645/14 244/406/14 259/408/14 -f 244/646/3 245/409/3 260/411/3 -f 245/647/7 246/412/7 261/414/7 -f 247/648/25 232/415/25 263/417/25 -f 246/649/9 247/418/9 262/420/9 -f 193/284/66 257/402/66 194/285/66 -f 195/326/67 194/285/67 259/404/67 -f 196/324/68 195/326/68 260/407/68 -f 197/322/69 196/324/69 261/410/69 -f 198/320/70 197/322/70 262/413/70 -f 198/320/71 262/420/71 199/321/71 -f 184/318/72 199/321/72 248/416/72 -f 184/318/73 248/377/73 185/303/73 -f 185/303/74 249/380/74 186/299/74 -f 186/299/75 250/383/75 187/297/75 -f 188/298/76 187/297/76 252/385/76 -f 188/298/77 252/389/77 189/295/77 -f 189/295/78 253/392/78 190/293/78 -f 190/293/79 254/391/79 191/289/79 -f 191/289/80 255/394/80 192/290/80 -f 192/290/81 256/421/81 193/284/81 -f 234/424/30 233/650/30 232/651/30 -f 232/651/30 247/652/30 246/653/30 -f 246/653/30 245/654/30 242/422/30 -f 244/655/30 243/656/30 242/422/30 -f 242/422/30 241/657/30 238/423/30 -f 240/658/30 239/659/30 238/423/30 -f 238/423/30 237/660/30 236/661/30 -f 236/661/30 235/662/30 234/424/30 -f 234/424/30 232/651/30 246/653/30 -f 245/654/30 244/655/30 242/422/30 -f 241/657/30 240/658/30 238/423/30 -f 238/423/30 236/661/30 234/424/30 -f 234/424/30 246/653/30 242/422/30 -f 182/244/39 170/425/39 279/245/39 -f 170/425/23 169/427/23 267/426/23 -f 169/427/20 168/429/20 266/428/20 -f 265/430/17 168/429/17 264/432/17 -f 264/432/14 167/431/14 268/434/14 -f 171/433/3 172/435/3 268/434/3 -f 172/435/7 173/437/7 269/436/7 -f 173/437/9 174/439/9 270/438/9 -f 174/439/25 175/441/25 271/440/25 -f 175/663/33 176/443/33 272/445/33 -f 176/443/34 177/446/34 273/444/34 -f 177/446/35 178/448/35 274/447/35 -f 178/448/36 179/450/36 275/449/36 -f 283/664/30 264/451/30 284/453/30 -f 268/665/30 269/454/30 284/456/30 -f 269/666/30 270/457/30 285/459/30 -f 297/464/82 296/460/82 306/462/82 -f 286/466/9 287/463/9 297/464/9 -f 270/667/30 271/465/30 286/466/30 -f 282/668/30 265/467/30 283/469/30 -f 281/669/30 266/470/30 282/472/30 -f 280/670/30 267/473/30 281/475/30 -f 312/507/83 290/476/83 303/478/83 -f 280/519/28 303/478/28 295/479/28 -f 313/505/84 304/480/84 289/482/84 -f 288/515/26 294/483/26 304/480/26 -f 271/671/30 272/484/30 287/486/30 -f 183/272/85 163/276/85 164/489/85 -f 164/489/85 292/487/85 183/272/85 -f 166/488/85 165/279/85 183/272/85 -f 2/672/26 164/489/26 1/490/26 -f 4/2/28 3/1/28 166/488/28 -f 285/459/7 286/458/7 298/492/7 -f 284/456/3 285/455/3 299/494/3 -f 283/664/14 284/453/14 300/496/14 -f 282/668/17 283/469/17 301/498/17 -f 281/669/20 282/472/20 302/500/20 -f 280/670/23 281/475/23 303/502/23 -f 287/486/25 288/485/25 296/504/25 -f 296/504/86 304/503/86 305/461/86 -f 303/502/87 302/501/87 312/507/87 -f 302/500/88 301/499/88 311/506/88 -f 310/508/89 301/498/89 309/509/89 -f 300/496/90 299/495/90 309/509/90 -f 308/510/91 299/494/91 307/511/91 -f 298/492/92 297/491/92 307/511/92 -f 290/476/1 289/482/1 293/513/1 -f 4/673/1 295/674/1 293/513/1 -f 291/512/1 294/675/1 2/514/1 -f 2/514/1 4/673/1 293/513/1 -f 2/676/30 294/483/30 164/516/30 -f 288/515/30 272/677/30 164/516/30 -f 280/519/30 295/479/30 166/517/30 -f 4/678/30 166/517/30 295/479/30 -f 276/679/30 277/520/30 292/487/30 -f 276/679/30 292/487/30 275/524/30 -f 316/680/85 314/528/85 318/530/85 -f 290/476/57 317/531/57 289/482/57 -f 313/505/57 289/482/57 314/533/57 -f 312/507/57 316/534/57 290/476/57 -f 316/534/57 312/507/57 314/533/57 -f 319/529/57 320/535/57 318/530/57 -f 317/681/28 316/537/28 321/536/28 -f 314/682/26 315/538/26 319/529/26 -f 315/683/1 317/539/1 320/535/1 -f 313/505/57 312/507/57 305/461/57 -f 305/461/57 311/506/57 306/462/57 -f 306/462/57 310/508/57 307/511/57 -f 322/684/28 325/540/28 326/231/28 -f 327/542/85 323/685/85 331/541/85 -f 331/541/85 322/686/85 326/231/85 -f 324/687/26 323/543/26 328/233/26 -f 329/232/1 325/688/1 330/544/1 -f 330/544/1 324/689/1 328/233/1 -f 80/242/30 162/97/30 325/546/30 -f 330/545/30 162/97/30 324/547/30 -f 331/550/30 94/548/30 322/549/30 -f 93/237/30 94/548/30 323/551/30 -f 338/690/93 339/552/93 342/554/93 -f 339/561/28 335/555/28 336/557/28 -f 332/563/26 333/558/26 337/560/26 -f 333/691/1 335/555/1 338/562/1 -f 334/556/85 332/563/85 336/557/85 -f 342/692/94 343/564/94 346/566/94 -f 336/570/95 337/567/95 340/569/95 -f 339/552/28 336/570/28 343/553/28 -f 341/693/26 337/571/26 342/573/26 -f 340/577/96 341/574/96 344/576/96 -f 347/565/28 343/564/28 344/576/28 -f 341/574/26 342/578/26 345/575/26 diff --git a/src/main/resources/assets/hbm/models/generator_rotor.obj b/src/main/resources/assets/hbm/models/generator_rotor.obj deleted file mode 100644 index fee691bda..000000000 --- a/src/main/resources/assets/hbm/models/generator_rotor.obj +++ /dev/null @@ -1,818 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: '' -# www.blender.org -o Circle -v -2.900000 0.300000 0.000000 -v -2.900000 0.105000 0.000000 -v -2.900000 0.097007 0.040182 -v -2.900000 0.097007 -0.040182 -v -2.900000 0.000000 -0.105000 -v -2.900000 0.040182 -0.097007 -v -2.900000 0.114805 -0.277164 -v -2.900000 -0.040182 -0.097007 -v -2.900000 0.000000 -0.300000 -v -2.900000 -0.105000 0.000000 -v -2.900000 -0.097008 -0.040182 -v -2.900000 -0.277164 -0.114805 -v -2.900000 -0.097008 0.040182 -v -2.900000 -0.300000 0.000000 -v -2.900000 0.000000 0.105000 -v -2.900000 -0.040182 0.097007 -v -2.900000 -0.114805 0.277164 -v -2.900000 0.040182 0.097007 -v -2.900000 0.000000 0.300000 -v -2.900000 -0.074246 0.074246 -v -2.900000 0.074246 -0.074246 -v -2.700000 0.143506 0.346455 -v -2.600000 0.143506 0.346455 -v -2.600000 0.040182 0.097007 -v -2.700000 0.040182 -0.097007 -v -2.600000 0.040182 -0.097007 -v -2.600000 0.143506 -0.346455 -v -2.600000 0.346454 -0.143506 -v -2.600000 0.097007 -0.040182 -v -2.700000 0.097007 -0.040182 -v -2.600000 0.346454 0.143506 -v -2.600000 0.375000 0.000000 -v -2.700000 0.375000 0.000000 -v -2.700000 -0.040182 0.097007 -v -2.600000 -0.040182 0.097007 -v -2.600000 -0.143506 0.346455 -v -2.700000 -0.097008 0.040182 -v -2.600000 -0.097008 0.040182 -v -2.600000 -0.074246 0.074246 -v -2.700000 0.000000 -0.375000 -v -2.600000 0.000000 -0.375000 -v -2.600000 -0.143506 -0.346455 -v -2.600000 0.074246 -0.074246 -v -2.700000 0.000000 0.375000 -v -2.600000 0.000000 0.375000 -v -2.700000 0.074246 -0.074246 -v -2.700000 0.097007 0.040182 -v -2.700000 0.346454 0.143506 -v -2.900000 0.277164 0.114805 -v -2.700000 -0.074246 0.074246 -v -2.900000 -0.277164 0.114805 -v -2.700000 -0.346455 0.143506 -v -2.700000 0.346454 -0.143506 -v -2.700000 -0.375000 0.000000 -v -2.900000 0.277164 -0.114805 -v -2.700000 -0.346455 -0.143506 -v -2.900000 0.114805 0.277164 -v -2.700000 0.040182 0.097007 -v -2.900000 0.074246 0.074246 -v -2.700000 0.074246 0.074246 -v -2.900000 -0.074246 -0.074246 -v -2.700000 -0.074246 -0.074246 -v -2.700000 -0.097008 -0.040182 -v -2.900000 -0.114805 -0.277164 -v -2.700000 -0.143506 -0.346455 -v -2.700000 -0.040182 -0.097007 -v -2.700000 0.143506 -0.346455 -v -2.700000 -0.143507 0.346455 -v -2.600000 0.097007 0.040182 -v -2.600000 0.105000 0.000000 -v -2.600000 0.000000 -0.105000 -v -2.600000 -0.040182 -0.097007 -v -2.600000 -0.346455 -0.143506 -v -2.600000 -0.097008 -0.040182 -v -2.600000 -0.105000 0.000000 -v -2.600000 -0.346455 0.143506 -v -2.600000 -0.375000 0.000000 -v -2.600000 0.000000 0.105000 -v -2.600000 0.074246 0.074246 -v -2.600000 -0.074246 -0.074246 -v -1.000000 1.000000 0.000000 -v -0.500000 1.000000 0.000000 -v -0.500000 0.923879 -0.382683 -v 0.000000 1.000000 0.000000 -v 0.000000 0.923879 0.382683 -v -1.000000 0.000000 1.000000 -v -0.500000 0.000000 1.000000 -v -0.500000 0.382683 0.923879 -v 0.000000 0.000000 1.000000 -v 0.000000 -0.382684 0.923880 -v -1.000000 -1.000000 0.000000 -v -0.500000 -1.000000 0.000000 -v -0.500000 -0.923879 0.382684 -v 0.000000 -1.000000 0.000000 -v 0.000000 -0.923879 -0.382684 -v -1.000000 0.000000 -1.000000 -v -0.500000 0.000000 -1.000000 -v -0.500000 -0.382683 -0.923880 -v 0.000000 0.000000 -1.000000 -v 0.000000 0.382683 -0.923879 -v -1.000000 0.191341 0.461940 -v -1.000000 0.000000 0.500000 -v -1.000000 0.461939 -0.191342 -v -1.000000 0.499999 0.000000 -v -1.000000 -0.191342 -0.461940 -v -1.000000 0.000000 -0.500000 -v -1.000000 -0.923879 0.382684 -v -1.000000 -0.461940 0.191342 -v -1.000000 -0.500000 0.000000 -v -0.500000 -0.461940 0.191342 -v -0.500000 -0.500000 0.000000 -v -0.500000 -0.191342 -0.461940 -v -0.500000 0.000000 -0.500000 -v -0.500000 0.461939 -0.191342 -v -0.500000 0.499999 0.000000 -v -0.500000 0.191341 0.461940 -v -0.500000 0.000000 0.500000 -v 0.500000 -0.923879 -0.382684 -v 0.500000 -1.000000 0.000000 -v 0.500000 0.923879 0.382683 -v 0.500000 1.000000 0.000000 -v 0.000000 0.191341 -0.461940 -v 0.500000 0.191342 -0.461940 -v 0.500000 0.382683 -0.923879 -v 0.500000 -0.500000 0.000000 -v 0.000000 0.000000 0.500000 -v 0.000000 -0.191342 0.461940 -v 0.000000 -0.500000 0.000000 -v 0.000000 -0.461940 -0.191342 -v 0.000000 0.000000 -0.500000 -v 0.000000 0.500000 0.000000 -v 0.000000 0.461939 0.191342 -v 0.500000 0.000000 -0.500000 -v 0.500000 0.461939 0.191342 -v 0.500000 -0.382684 0.923880 -v 0.500000 -0.191342 0.461940 -v 0.500000 0.000000 0.500000 -v 0.500000 -0.461940 -0.191342 -v 0.500000 0.000000 -1.000000 -v 0.500000 0.500000 0.000000 -v 0.500000 0.000000 1.000000 -v -1.000000 0.923879 -0.382683 -v -1.000000 0.382683 0.923879 -v -1.000000 -0.382683 -0.923880 -vt 0.386236 0.903449 -vt 0.415713 0.870412 -vt 0.422995 0.875866 -vt 0.410847 0.862251 -vt 0.415713 0.834834 -vt 0.410847 0.842996 -vt 0.372334 0.825117 -vt 0.422995 0.829381 -vt 0.386236 0.801798 -vt 0.447457 0.834834 -vt 0.440174 0.829381 -vt 0.456127 0.786216 -vt 0.452322 0.842996 -vt 0.476933 0.801798 -vt 0.447457 0.870412 -vt 0.452322 0.862251 -vt 0.490835 0.880130 -vt 0.440174 0.875866 -vt 0.476933 0.903449 -vt 0.454031 0.852623 -vt 0.409138 0.852623 -vt 0.246623 0.961651 -vt 0.246623 0.985596 -vt 0.194961 0.984565 -vt 0.363621 0.834500 -vt 0.363621 0.858444 -vt 0.308890 0.859178 -vt 0.003848 0.912819 -vt 0.055510 0.913850 -vt 0.055510 0.937794 -vt 0.729199 0.256799 -vt 0.760227 0.256554 -vt 0.760280 0.280498 -vt 0.363621 0.915692 -vt 0.363621 0.939636 -vt 0.308890 0.940370 -vt 0.868474 0.880847 -vt 0.868474 0.904791 -vt 0.861548 0.904576 -vt 0.829237 0.280498 -vt 0.829184 0.256554 -vt 0.859364 0.256799 -vt 0.599395 0.926382 -vt 0.599395 0.950326 -vt 0.592469 0.950112 -vt 0.126677 0.961231 -vt 0.156009 0.961723 -vt 0.156009 0.985662 -vt 0.515460 0.832769 -vt 0.515460 0.880657 -vt 0.507858 0.880831 -vt 0.876447 0.052192 -vt 0.820306 0.052799 -vt 0.835901 0.004751 -vt 0.515816 0.752158 -vt 0.515816 0.800038 -vt 0.507858 0.800204 -vt 0.076866 0.985019 -vt 0.063206 0.936759 -vt 0.112383 0.938128 -vt 0.759274 0.329030 -vt 0.790461 0.280743 -vt 0.599395 0.878494 -vt 0.592469 0.926167 -vt 0.554592 0.902223 -vt 0.584773 0.902468 -vt 0.577731 0.950951 -vt 0.868474 0.832958 -vt 0.861548 0.880632 -vt 0.324093 0.868334 -vt 0.363621 0.867803 -vt 0.729253 0.280743 -vt 0.018199 0.984938 -vt 0.003848 0.936764 -vt 0.528764 0.950951 -vt 0.523565 0.902468 -vt 0.324093 0.787142 -vt 0.363621 0.786612 -vt 0.232273 0.913477 -vt 0.194961 0.960621 -vt 0.117856 0.786699 -vt 0.117856 0.834587 -vt 0.110253 0.834761 -vt 0.102557 0.786699 -vt 0.102557 0.834587 -vt 0.094955 0.834761 -vt 0.135071 0.912732 -vt 0.158537 0.913126 -vt 0.867113 0.328374 -vt 0.867113 0.280494 -vt 0.873537 0.280764 -vt 0.834657 0.238675 -vt 0.820306 0.190501 -vt 0.871968 0.191531 -vt 0.803409 0.329226 -vt 0.798210 0.280743 -vt 0.828231 0.329030 -vt 0.859418 0.280743 -vt 0.868474 0.752286 -vt 0.868474 0.800174 -vt 0.861548 0.799959 -vt 0.183542 0.913083 -vt 0.187266 0.961669 -vt 0.875038 0.133253 -vt 0.820306 0.133987 -vt 0.835509 0.085895 -vt 0.631996 0.771548 -vt 0.658004 0.752071 -vt 0.680092 0.811837 -vt 0.672810 0.817291 -vt 0.667944 0.825452 -vt 0.631996 0.898612 -vt 0.614619 0.869463 -vt 0.667944 0.844707 -vt 0.672810 0.852869 -vt 0.680092 0.858322 -vt 0.719360 0.918088 -vt 0.697272 0.858322 -vt 0.704554 0.852869 -vt 0.762745 0.869463 -vt 0.745367 0.898612 -vt 0.762745 0.800696 -vt 0.709420 0.825452 -vt 0.704554 0.817291 -vt 0.745367 0.771548 -vt 0.697272 0.811837 -vt 0.117856 0.858531 -vt 0.110253 0.858705 -vt 0.554539 0.878279 -vt 0.584720 0.878524 -vt 0.102557 0.858531 -vt 0.094955 0.858705 -vt 0.790407 0.256799 -vt 0.867113 0.256554 -vt 0.873537 0.256824 -vt 0.820306 0.166557 -vt 0.187266 0.985609 -vt 0.868474 0.824118 -vt 0.861548 0.823904 -vt 0.798156 0.256799 -vt 0.875038 0.157197 -vt 0.820306 0.157931 -vt 0.515460 0.904601 -vt 0.507858 0.904776 -vt 0.876447 0.076132 -vt 0.820306 0.076739 -vt 0.523512 0.878524 -vt 0.515816 0.823978 -vt 0.507858 0.824144 -vt 0.063206 0.912819 -vt 0.112383 0.914188 -vt 0.129201 0.372761 -vt 0.166737 0.260675 -vt 0.241809 0.293193 -vt 0.204273 0.148590 -vt 0.126677 0.116398 -vt 0.377599 0.373563 -vt 0.414147 0.261091 -vt 0.487244 0.292324 -vt 0.450696 0.148619 -vt 0.372334 0.116785 -vt 0.006373 0.372761 -vt 0.043909 0.260675 -vt 0.118981 0.293193 -vt 0.081445 0.148590 -vt 0.003848 0.116398 -vt 0.252030 0.372761 -vt 0.289566 0.260675 -vt 0.364638 0.293193 -vt 0.327102 0.148590 -vt 0.249505 0.116398 -vt 0.791294 0.752071 -vt 0.832999 0.752071 -vt 0.853852 0.869567 -vt 0.280341 0.904107 -vt 0.238636 0.904107 -vt 0.217783 0.786612 -vt 0.832999 0.995687 -vt 0.791294 0.995687 -vt 0.770441 0.878192 -vt 0.003848 0.904194 -vt 0.024701 0.786699 -vt 0.066406 0.786699 -vt 0.772142 0.373775 -vt 0.791949 0.491420 -vt 0.752334 0.499351 -vt 0.996152 0.491507 -vt 0.957579 0.498777 -vt 0.938293 0.381046 -vt 0.860070 0.491420 -vt 0.820455 0.499351 -vt 0.800648 0.381707 -vt 0.928191 0.491420 -vt 0.888577 0.499351 -vt 0.868769 0.381707 -vt 0.041384 0.004313 -vt 0.118981 0.036504 -vt 0.164213 0.004313 -vt 0.241809 0.036504 -vt 0.352790 0.658302 -vt 0.350172 0.777986 -vt 0.248818 0.776560 -vt 0.494940 0.123734 -vt 0.502218 0.004313 -vt 0.607478 0.013136 -vt 0.908384 0.616996 -vt 0.867766 0.625801 -vt 0.772142 0.616996 -vt 0.731523 0.625801 -vt 0.976866 0.616509 -vt 0.935887 0.625014 -vt 0.840263 0.616996 -vt 0.799645 0.625801 -vt 0.516775 0.241834 -vt 0.607478 0.251317 -vt 0.600199 0.370739 -vt 0.615173 0.124009 -vt 0.615960 0.004313 -vt 0.721504 0.005947 -vt 0.126677 0.533589 -vt 0.129295 0.413904 -vt 0.235886 0.417131 -vt 0.020375 0.651076 -vt 0.115831 0.658512 -vt 0.110321 0.778073 -vt 0.614619 0.499049 -vt 0.617237 0.379364 -vt 0.723827 0.382591 -vt 0.511467 0.616536 -vt 0.606923 0.623972 -vt 0.601414 0.743533 -vt 0.388861 0.650593 -vt 0.484317 0.658029 -vt 0.478808 0.777591 -vt 0.243581 0.533589 -vt 0.246200 0.413904 -vt 0.352790 0.417131 -vt 0.721504 0.247240 -vt 0.720717 0.125644 -vt 0.235886 0.658301 -vt 0.233267 0.536816 -vt 0.723827 0.623761 -vt 0.721209 0.502275 -vt 0.350172 0.536816 -vt 0.617535 0.247505 -vt 0.134532 0.656876 -vt 0.622474 0.622335 -vt 0.251437 0.656876 -vt 0.372334 0.532983 -vt 0.478807 0.539444 -vt 0.494940 0.498925 -vt 0.601414 0.505386 -vt 0.600199 0.132557 -vt 0.003848 0.533466 -vt 0.110321 0.539926 -vt 0.210087 0.786612 -vt 0.189235 0.904107 -vt 0.147529 0.904107 -vt 0.729199 0.130433 -vt 0.812610 0.130433 -vt 0.791758 0.247929 -vt 0.523512 0.869654 -vt 0.544365 0.752158 -vt 0.586070 0.752158 -vt 0.729199 0.121808 -vt 0.750052 0.004313 -vt 0.791758 0.004313 -vt 0.009357 0.413904 -vt 0.115831 0.420365 -vt 0.860070 0.734640 -vt 0.819452 0.743446 -vt 0.720717 0.366936 -vt 0.616747 0.367202 -vt 0.791949 0.734640 -vt 0.751331 0.743446 -vt 0.377843 0.413422 -vt 0.484317 0.419882 -vt 0.287041 0.004313 -vt 0.364638 0.036504 -vt 0.233267 0.777986 -vt 0.131913 0.776560 -vt 0.408882 0.004313 -vt 0.500449 0.379364 -vt 0.606923 0.385824 -vt 0.996152 0.734240 -vt 0.955174 0.742746 -vt 0.928191 0.734640 -vt 0.887573 0.743446 -vt 0.721209 0.743446 -vt 0.619855 0.742020 -vt 0.407042 0.919030 -vt 0.372334 0.880130 -vt 0.407042 0.786216 -vt 0.490835 0.825117 -vt 0.456127 0.919030 -vt 0.431585 0.827466 -vt 0.431585 0.877781 -vt 0.308890 0.835234 -vt 0.308890 0.916426 -vt 0.126677 0.985171 -vt 0.507858 0.832943 -vt 0.876447 0.004313 -vt 0.507858 0.752324 -vt 0.112383 0.986007 -vt 0.783418 0.329226 -vt 0.592469 0.878279 -vt 0.553586 0.950755 -vt 0.861548 0.832744 -vt 0.734452 0.329226 -vt 0.055510 0.985682 -vt 0.194961 0.912732 -vt 0.110253 0.786873 -vt 0.094955 0.786873 -vt 0.873537 0.328643 -vt 0.871968 0.239420 -vt 0.852375 0.329226 -vt 0.861548 0.752071 -vt 0.875038 0.085365 -vt 0.614619 0.800696 -vt 0.658004 0.918088 -vt 0.709420 0.844707 -vt 0.719360 0.752071 -vt 0.666236 0.835080 -vt 0.688682 0.809922 -vt 0.711128 0.835080 -vt 0.688682 0.860237 -vt 0.871968 0.167587 -vt 0.204273 0.405279 -vt 0.450696 0.404796 -vt 0.081445 0.405279 -vt 0.327102 0.405279 -vt 0.770441 0.869567 -vt 0.301194 0.786612 -vt 0.853852 0.878192 -vt 0.087259 0.904194 -vt 0.732527 0.381707 -vt 0.976866 0.373775 -vt 0.840263 0.373775 -vt 0.908384 0.373775 -vt 0.509497 0.361255 -vt 0.014866 0.770637 -vt 0.505958 0.736097 -vt 0.383352 0.770155 -vt 0.126677 0.786612 -vt 0.750052 0.247929 -vt 0.606923 0.869654 -vt 0.812610 0.121808 -vt 0.487244 0.036146 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 0.923900 0.382700 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 0.980800 0.195100 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 0.831500 -0.555600 -vn 0.000000 0.195100 0.980800 -vn 0.000000 0.555600 -0.831500 -vn -0.000000 -0.382700 0.923900 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 0.382700 0.923900 -vn -0.345200 0.920500 -0.183100 -vn -0.345200 -0.920500 0.183100 -vn -0.345200 0.920500 0.183100 -vn -0.345200 -0.920500 -0.183100 -vn 0.000000 0.831500 0.555600 -vn 0.000000 -0.831500 -0.555600 -vn -0.345200 0.183100 0.920500 -vn 0.000000 0.555600 0.831500 -vn 0.000000 -0.923900 0.382700 -vn -0.345200 0.183100 -0.920500 -vn -0.345200 -0.183100 -0.920500 -vn 0.000000 -0.555600 -0.831500 -vn -0.345200 -0.183100 0.920500 -vn 0.000000 0.382700 -0.923900 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 0.980800 -0.195100 -vn 0.000000 -0.195100 0.980800 -vn 0.000000 0.195100 -0.980800 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 1.000000 0.000000 -vn -0.357400 -0.000000 0.933900 -vn -0.357400 -0.933900 0.000000 -vn -0.357400 0.000000 -0.933900 -vn -0.357400 0.933900 0.000000 -vn -0.607800 -0.303900 0.733700 -vn -0.607800 -0.733700 -0.303900 -vn -0.607800 0.303900 -0.733700 -vn -0.607800 0.733700 0.303900 -vn 0.607800 0.000000 -0.794100 -vn 0.357400 -0.357400 -0.862900 -vn 0.607800 0.794100 0.000000 -vn 0.357400 0.862900 -0.357400 -vn 0.607800 0.000000 0.794100 -vn 0.357400 0.357400 0.862900 -vn 0.607800 -0.794100 0.000000 -vn 0.357400 -0.862900 0.357400 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 4/4/1 2/2/1 1/1/1 -f 5/5/1 6/6/1 7/7/1 -f 8/8/1 5/5/1 9/9/1 -f 10/10/1 11/11/1 12/12/1 -f 13/13/1 10/10/1 14/14/1 -f 15/15/1 16/16/1 17/17/1 -f 18/18/1 15/15/1 19/19/1 -f 20/20/1 2/2/1 21/21/1 -f 22/22/2 23/23/2 24/24/2 -f 25/25/3 26/26/3 27/27/3 -f 28/28/4 29/29/4 30/30/4 -f 31/31/5 32/32/5 33/33/5 -f 34/34/6 35/35/6 36/36/6 -f 37/37/7 38/38/7 39/39/7 -f 40/40/8 41/41/8 42/42/8 -f 30/43/9 29/44/9 43/45/9 -f 22/46/10 44/47/10 45/48/10 -f 21/49/11 46/50/11 25/51/11 -f 47/52/12 48/53/12 49/54/12 -f 20/55/13 50/56/13 34/57/13 -f 51/58/14 52/59/14 37/60/14 -f 1/61/15 33/33/15 53/62/15 -f 4/63/9 30/43/9 46/64/9 -f 54/65/16 52/66/16 51/67/16 -f 13/68/7 37/37/7 50/69/7 -f 17/70/6 16/71/6 34/34/6 -f 48/72/17 33/33/17 1/61/17 -f 55/73/4 53/74/4 30/30/4 -f 12/75/18 56/76/18 54/65/18 -f 7/77/3 6/78/3 25/25/3 -f 57/79/2 22/22/2 58/80/2 -f 59/81/19 60/82/19 47/83/19 -f 61/84/20 62/85/20 63/86/20 -f 57/87/21 19/88/21 44/47/21 -f 18/89/22 58/90/22 60/91/22 -f 64/92/23 65/93/23 66/94/23 -f 7/95/24 67/96/24 40/40/24 -f 9/97/25 40/40/25 65/98/25 -f 8/99/26 66/100/26 62/101/26 -f 17/102/27 68/103/27 44/47/27 -f 63/104/28 56/105/28 12/106/28 -f 32/107/29 31/108/29 69/109/29 -f 32/107/29 70/110/29 29/111/29 -f 41/112/29 27/113/29 26/114/29 -f 41/112/29 71/115/29 72/116/29 -f 73/117/29 74/118/29 75/119/29 -f 76/120/29 77/121/29 75/119/29 -f 36/122/29 35/123/29 78/124/29 -f 45/125/29 78/124/29 24/126/29 -f 78/124/29 75/119/29 70/110/29 -f 60/82/19 79/127/19 69/128/19 -f 77/129/30 76/130/30 52/66/30 -f 62/85/20 80/131/20 74/132/20 -f 32/32/31 28/133/31 53/62/31 -f 58/90/22 24/134/22 79/135/22 -f 66/94/23 65/93/23 42/136/23 -f 44/47/32 68/103/32 36/137/32 -f 66/100/26 72/138/26 80/139/26 -f 67/96/33 27/140/33 41/41/33 -f 74/141/28 73/142/28 56/105/28 -f 46/50/11 43/143/11 26/144/11 -f 69/145/12 31/146/12 48/53/12 -f 73/147/34 77/129/34 54/65/34 -f 50/56/13 39/148/13 35/149/13 -f 76/150/14 38/151/14 37/60/14 -f 81/152/31 82/153/31 83/154/31 -f 82/153/31 84/155/31 83/154/31 -f 84/155/5 82/153/5 85/156/5 -f 86/157/10 87/158/10 88/159/10 -f 88/159/10 87/158/10 89/160/10 -f 89/160/32 87/158/32 90/161/32 -f 91/162/30 92/163/30 93/164/30 -f 92/163/30 94/165/30 93/164/30 -f 94/165/34 92/163/34 95/166/34 -f 96/167/8 97/168/8 98/169/8 -f 97/168/8 99/170/8 98/169/8 -f 99/170/33 97/168/33 100/171/33 -f 101/172/1 102/173/1 86/174/1 -f 103/175/1 104/176/1 81/177/1 -f 105/178/1 106/179/1 96/180/1 -f 107/181/1 108/182/1 109/183/1 -f 108/184/31 110/185/31 111/186/31 -f 112/187/10 113/188/10 106/189/10 -f 114/190/30 115/191/30 104/192/30 -f 116/193/8 117/194/8 102/195/8 -f 95/166/34 118/196/34 119/197/34 -f 85/156/5 120/198/5 121/199/5 -f 122/200/3 123/201/3 124/202/3 -f 94/203/35 119/204/35 125/205/35 -f 117/194/8 116/193/8 126/206/8 -f 126/206/33 127/207/33 117/194/33 -f 110/185/31 128/208/31 111/186/31 -f 128/208/5 129/209/5 111/186/5 -f 112/187/10 130/210/10 113/188/10 -f 130/210/32 122/211/32 113/188/32 -f 114/190/30 131/212/30 115/191/30 -f 131/212/34 132/213/34 115/191/34 -f 93/214/14 110/215/14 108/216/14 -f 82/217/35 81/218/35 104/219/35 -f 87/220/36 86/221/36 102/222/36 -f 98/223/23 112/224/23 105/225/23 -f 92/226/37 91/227/37 109/228/37 -f 88/229/2 116/230/2 101/231/2 -f 83/232/4 114/233/4 103/234/4 -f 97/235/38 96/236/38 106/237/38 -f 132/238/39 82/217/39 115/239/39 -f 127/240/40 87/220/40 117/241/40 -f 129/242/41 92/226/41 111/243/41 -f 122/200/42 97/235/42 113/244/42 -f 82/217/43 132/238/43 85/245/43 -f 87/220/44 127/240/44 90/246/44 -f 92/226/45 129/242/45 95/247/45 -f 97/235/46 122/200/46 100/248/46 -f 83/232/47 84/249/47 131/250/47 -f 131/250/48 114/233/48 83/232/48 -f 88/229/49 89/251/49 126/252/49 -f 126/252/50 116/230/50 88/229/50 -f 93/214/51 94/203/51 128/253/51 -f 128/253/52 110/215/52 93/214/52 -f 98/223/53 99/254/53 130/255/53 -f 130/255/54 112/224/54 98/223/54 -f 124/256/29 123/257/29 133/258/29 -f 121/259/29 120/260/29 134/261/29 -f 135/262/29 136/263/29 137/264/29 -f 118/265/29 138/266/29 125/267/29 -f 99/254/36 139/268/36 133/269/36 -f 131/212/34 140/270/34 134/271/34 -f 132/238/12 134/272/12 120/273/12 -f 128/208/5 125/274/5 138/275/5 -f 84/249/37 121/276/37 140/277/37 -f 100/171/33 124/278/33 139/279/33 -f 127/240/6 136/280/6 135/281/6 -f 89/160/32 90/161/32 135/282/32 -f 89/251/38 141/283/38 137/284/38 -f 130/210/32 133/285/32 123/286/32 -f 126/206/33 137/287/33 136/288/33 -f 129/242/28 138/289/28 118/290/28 -f 49/291/1 1/1/1 3/3/1 -f 55/292/1 4/4/1 1/1/1 -f 9/9/1 5/5/1 7/7/1 -f 64/293/1 8/8/1 9/9/1 -f 14/14/1 10/10/1 12/12/1 -f 51/294/1 13/13/1 14/14/1 -f 19/19/1 15/15/1 17/17/1 -f 57/295/1 18/18/1 19/19/1 -f 21/21/1 6/6/1 5/5/1 -f 5/5/1 8/8/1 61/296/1 -f 61/296/1 11/11/1 10/10/1 -f 10/10/1 13/13/1 20/20/1 -f 20/20/1 16/16/1 15/15/1 -f 15/15/1 18/18/1 59/297/1 -f 59/297/1 3/3/1 2/2/1 -f 2/2/1 4/4/1 21/21/1 -f 21/21/1 5/5/1 61/296/1 -f 61/296/1 10/10/1 20/20/1 -f 20/20/1 15/15/1 59/297/1 -f 59/297/1 2/2/1 20/20/1 -f 21/21/1 61/296/1 20/20/1 -f 58/80/2 22/22/2 24/24/2 -f 67/298/3 25/25/3 27/27/3 -f 53/74/4 28/28/4 30/30/4 -f 48/72/5 31/31/5 33/33/5 -f 68/299/6 34/34/6 36/36/6 -f 50/69/7 37/37/7 39/39/7 -f 65/98/8 40/40/8 42/42/8 -f 46/64/9 30/43/9 43/45/9 -f 23/300/10 22/46/10 45/48/10 -f 6/301/11 21/49/11 25/51/11 -f 3/302/12 47/52/12 49/54/12 -f 16/303/13 20/55/13 34/57/13 -f 13/304/14 51/58/14 37/60/14 -f 55/305/15 1/61/15 53/62/15 -f 21/306/9 4/63/9 46/64/9 -f 14/307/16 54/65/16 51/67/16 -f 20/308/7 13/68/7 50/69/7 -f 68/299/6 17/70/6 34/34/6 -f 49/309/17 48/72/17 1/61/17 -f 4/310/4 55/73/4 30/30/4 -f 14/307/18 12/75/18 54/65/18 -f 67/298/3 7/77/3 25/25/3 -f 18/311/2 57/79/2 58/80/2 -f 3/312/19 59/81/19 47/83/19 -f 11/313/20 61/84/20 63/86/20 -f 22/46/21 57/87/21 44/47/21 -f 59/314/22 18/89/22 60/91/22 -f 8/315/23 64/92/23 66/94/23 -f 9/97/24 7/95/24 40/40/24 -f 64/316/25 9/97/25 65/98/25 -f 61/317/26 8/99/26 62/101/26 -f 19/88/27 17/102/27 44/47/27 -f 11/318/28 63/104/28 12/106/28 -f 70/110/29 32/107/29 69/109/29 -f 28/319/29 32/107/29 29/111/29 -f 71/115/29 41/112/29 26/114/29 -f 42/320/29 41/112/29 72/116/29 -f 77/121/29 73/117/29 75/119/29 -f 38/321/29 76/120/29 75/119/29 -f 45/125/29 36/122/29 78/124/29 -f 23/322/29 45/125/29 24/126/29 -f 71/115/29 26/114/29 43/323/29 -f 43/323/29 29/111/29 71/115/29 -f 70/110/29 69/109/29 78/124/29 -f 79/324/29 24/126/29 78/124/29 -f 78/124/29 35/123/29 39/325/29 -f 39/325/29 38/321/29 78/124/29 -f 75/119/29 74/118/29 71/115/29 -f 80/326/29 72/116/29 71/115/29 -f 71/115/29 29/111/29 70/110/29 -f 69/109/29 79/324/29 78/124/29 -f 78/124/29 38/321/29 75/119/29 -f 74/118/29 80/326/29 71/115/29 -f 71/115/29 70/110/29 75/119/29 -f 47/83/19 60/82/19 69/128/19 -f 54/65/30 77/129/30 52/66/30 -f 63/86/20 62/85/20 74/132/20 -f 33/33/31 32/32/31 53/62/31 -f 60/91/22 58/90/22 79/135/22 -f 72/327/23 66/94/23 42/136/23 -f 45/48/32 44/47/32 36/137/32 -f 62/101/26 66/100/26 80/139/26 -f 40/40/33 67/96/33 41/41/33 -f 63/104/28 74/141/28 56/105/28 -f 25/51/11 46/50/11 26/144/11 -f 47/52/12 69/145/12 48/53/12 -f 56/76/34 73/147/34 54/65/34 -f 34/57/13 50/56/13 35/149/13 -f 52/59/14 76/150/14 37/60/14 -f 142/328/31 81/152/31 83/154/31 -f 143/329/10 86/157/10 88/159/10 -f 107/330/30 91/162/30 93/164/30 -f 144/331/8 96/167/8 98/169/8 -f 143/332/1 101/172/1 86/174/1 -f 142/333/1 103/175/1 81/177/1 -f 144/334/1 105/178/1 96/180/1 -f 91/335/1 107/181/1 109/183/1 -f 109/336/31 108/184/31 111/186/31 -f 105/337/10 112/187/10 106/189/10 -f 103/338/30 114/190/30 104/192/30 -f 101/339/8 116/193/8 102/195/8 -f 94/165/34 95/166/34 119/197/34 -f 84/155/5 85/156/5 121/199/5 -f 100/248/3 122/200/3 124/202/3 -f 128/253/35 94/203/35 125/205/35 -f 107/340/14 93/214/14 108/216/14 -f 115/239/35 82/217/35 104/219/35 -f 117/241/36 87/220/36 102/222/36 -f 144/341/23 98/223/23 105/225/23 -f 111/243/37 92/226/37 109/228/37 -f 143/342/2 88/229/2 101/231/2 -f 142/343/4 83/232/4 103/234/4 -f 113/244/38 97/235/38 106/237/38 -f 139/344/29 124/256/29 133/258/29 -f 140/345/29 121/259/29 134/261/29 -f 141/346/29 135/262/29 137/264/29 -f 119/347/29 118/265/29 125/267/29 -f 130/255/36 99/254/36 133/269/36 -f 132/213/34 131/212/34 134/271/34 -f 85/245/12 132/238/12 120/273/12 -f 129/209/5 128/208/5 138/275/5 -f 131/250/37 84/249/37 140/277/37 -f 99/170/33 100/171/33 139/279/33 -f 90/246/6 127/240/6 135/281/6 -f 141/348/32 89/160/32 135/282/32 -f 126/252/38 89/251/38 137/284/38 -f 122/211/32 130/210/32 123/286/32 -f 127/207/33 126/206/33 136/288/33 -f 95/247/28 129/242/28 118/290/28 diff --git a/src/main/resources/assets/hbm/models/lights/cage_lamp.obj b/src/main/resources/assets/hbm/models/lights/cage_lamp.obj new file mode 100644 index 000000000..74169d283 --- /dev/null +++ b/src/main/resources/assets/hbm/models/lights/cage_lamp.obj @@ -0,0 +1,571 @@ +# Blender 4.0.1 +# www.blender.org +o CageLamp +v 0.174699 0.050284 -0.170405 +v 0.174699 0.037785 -0.170405 +v 0.187198 0.050284 -0.175448 +v 0.187198 0.037785 -0.175448 +v -0.002109 0.145255 -0.201498 +v -0.002109 0.101109 -0.243600 +v -0.002109 -0.103152 -0.243600 +v -0.002109 -0.145255 -0.201498 +v 0.056171 0.061436 -0.200955 +v 0.056171 0.094421 -0.170760 +v 0.056171 -0.093758 -0.171142 +v 0.056171 -0.063790 -0.201110 +v -0.002109 0.103152 0.243600 +v -0.002109 0.145255 0.201498 +v -0.002109 -0.145255 0.201498 +v -0.002109 -0.103152 0.243600 +v 0.056171 0.094258 0.170780 +v 0.056171 0.064290 0.200748 +v 0.056171 -0.063790 0.200748 +v 0.056171 -0.093758 0.170780 +v 0.009739 0.097808 -0.169350 +v 0.009739 0.063030 -0.204128 +v 0.174699 0.050284 0.170405 +v 0.009739 -0.063030 -0.204128 +v 0.009739 -0.097808 -0.169350 +v 0.174699 0.037785 0.170405 +v 0.125944 0.063030 -0.204128 +v 0.124890 0.095332 -0.169350 +v 0.169823 0.063030 -0.169350 +v 0.125944 -0.097808 -0.169350 +v 0.125944 -0.063030 -0.204128 +v 0.169823 -0.063030 -0.169350 +v 0.009739 0.063030 0.204128 +v 0.009739 0.097808 0.169350 +v 0.187198 0.050284 0.175448 +v 0.009739 -0.097808 0.169350 +v 0.009739 -0.063030 0.204128 +v 0.187198 0.037785 0.175448 +v 0.125944 0.063030 0.204128 +v 0.169823 0.063030 0.169350 +v 0.125944 0.097808 0.169350 +v 0.169823 -0.063030 0.169350 +v 0.125944 -0.063030 0.204128 +v 0.125944 -0.097808 0.169350 +v 0.137281 0.037785 -0.222204 +v 0.131756 0.037785 -0.209752 +v 0.131756 0.050284 -0.209752 +v 0.131756 0.050284 0.209752 +v 0.131756 0.037785 0.209752 +v 0.137281 0.037785 0.222204 +v 0.137281 0.050284 0.222204 +v 0.137281 0.050284 -0.222204 +v 0.053429 0.037785 -0.229540 +v 0.052340 0.037785 -0.217088 +v 0.052340 0.050284 -0.217088 +v 0.052340 0.050284 0.217088 +v 0.052340 0.037785 0.217088 +v 0.053429 0.037785 0.229540 +v 0.053429 0.050284 0.229540 +v 0.053429 0.050284 -0.229540 +v 0.174699 -0.037801 -0.170405 +v 0.174699 -0.050300 -0.170405 +v 0.187198 -0.037801 -0.175448 +v 0.187198 -0.050300 -0.175448 +v 0.174699 -0.037801 0.170405 +v 0.174699 -0.050300 0.170405 +v 0.187198 -0.037801 0.175448 +v 0.187198 -0.050300 0.175448 +v 0.137281 -0.050300 -0.222204 +v 0.131756 -0.050300 -0.209752 +v 0.131756 -0.037801 -0.209752 +v 0.131756 -0.037801 0.209752 +v 0.131756 -0.050300 0.209752 +v 0.137281 -0.050300 0.222204 +v 0.137281 -0.037801 0.222204 +v 0.137281 -0.037801 -0.222204 +v 0.053429 -0.050300 -0.229540 +v 0.052340 -0.050300 -0.217088 +v 0.052340 -0.037801 -0.217088 +v 0.052340 -0.037801 0.217088 +v 0.052340 -0.050300 0.217088 +v 0.053429 -0.050300 0.229540 +v 0.053429 -0.037801 0.229540 +v 0.053429 -0.037801 -0.229540 +v 0.056203 -0.116057 -0.126340 +v 0.056203 0.116108 -0.126340 +v 0.056203 0.116108 -0.113840 +v 0.055114 0.106003 -0.113840 +v 0.055114 0.106003 -0.126340 +v 0.055114 -0.105546 -0.126340 +v 0.055114 -0.105546 -0.113840 +v 0.056203 -0.116057 -0.113840 +v 0.140055 -0.109785 -0.126340 +v 0.140055 0.111267 -0.126340 +v 0.140055 0.111267 -0.113840 +v 0.136242 0.100805 -0.113840 +v 0.136242 0.100805 -0.126340 +v 0.137912 -0.099557 -0.126340 +v 0.137912 -0.099557 -0.113840 +v 0.140055 -0.109785 -0.113840 +v 0.189972 0.072795 -0.113840 +v 0.189972 0.072795 -0.126340 +v 0.177473 0.064705 -0.113840 +v 0.177473 0.064705 -0.126340 +v 0.189972 -0.069577 -0.113840 +v 0.189972 -0.069577 -0.126340 +v 0.177473 -0.063223 -0.113840 +v 0.177473 -0.063223 -0.126340 +v 0.177473 -0.063223 0.113750 +v 0.177473 -0.063223 0.126250 +v 0.189972 -0.069577 0.113750 +v 0.189972 -0.069577 0.126250 +v 0.177473 0.064705 0.113750 +v 0.177473 0.064705 0.126250 +v 0.189972 0.072795 0.113750 +v 0.189972 0.072795 0.126250 +v 0.140055 -0.109785 0.126250 +v 0.137912 -0.099557 0.126250 +v 0.137912 -0.099557 0.113750 +v 0.136242 0.100805 0.113750 +v 0.136242 0.100805 0.126250 +v 0.140055 0.111267 0.126250 +v 0.140055 0.111267 0.113750 +v 0.140055 -0.109785 0.113750 +v 0.056203 -0.116057 0.126250 +v 0.055114 -0.105546 0.126250 +v 0.055114 -0.105546 0.113750 +v 0.055114 0.106003 0.113750 +v 0.055114 0.106003 0.126250 +v 0.056203 0.116108 0.126250 +v 0.056203 0.116108 0.113750 +v 0.056203 -0.116057 0.113750 +v 0.177473 -0.063223 -0.006231 +v 0.177473 -0.063223 0.006268 +v 0.189972 -0.069577 -0.006231 +v 0.189972 -0.069577 0.006268 +v 0.177473 0.064705 -0.006231 +v 0.177473 0.064705 0.006268 +v 0.189972 0.072795 -0.006231 +v 0.189972 0.072795 0.006268 +v 0.140055 -0.109785 0.006268 +v 0.137912 -0.099557 0.006268 +v 0.137912 -0.099557 -0.006231 +v 0.136242 0.100805 -0.006231 +v 0.136242 0.100805 0.006268 +v 0.140055 0.111267 0.006268 +v 0.140055 0.111267 -0.006231 +v 0.140055 -0.109785 -0.006231 +v 0.056203 -0.116057 0.006268 +v 0.055114 -0.105546 0.006268 +v 0.055114 -0.105546 -0.006231 +v 0.055114 0.106003 -0.006231 +v 0.055114 0.106003 0.006268 +v 0.056203 0.116108 0.006268 +v 0.056203 0.116108 -0.006231 +v 0.056203 -0.116057 -0.006231 +v 0.056171 -0.145255 0.201498 +v 0.056171 -0.103152 0.243600 +v 0.056171 0.145255 -0.201498 +v 0.056171 0.099913 -0.243600 +v 0.056171 0.103152 0.243600 +v 0.056171 0.145255 0.201498 +v 0.056171 -0.103152 -0.243600 +v 0.056171 -0.145255 -0.201498 +v -0.002109 0.145255 0.000000 +v 0.056171 0.145255 0.000000 +v 0.056171 0.094339 0.000010 +v -0.002109 -0.145255 0.000000 +v 0.056171 -0.145255 0.000000 +v 0.056171 -0.093758 -0.000181 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 0.6902 -0.7237 +vn -0.0000 0.7071 0.7071 +vn -0.0000 -0.7071 -0.7071 +vn 1.0000 -0.0000 -0.0000 +vn 0.4700 0.6538 -0.5930 +vn 0.4889 -0.6168 -0.6168 +vn -1.0000 -0.0000 -0.0000 +vn 0.4889 0.6168 0.6168 +vn 0.4889 -0.6168 0.6168 +vn 0.6212 -0.0000 0.7837 +vn 0.0152 0.7070 -0.7070 +vn 0.5837 0.8120 -0.0000 +vn 0.6212 -0.7837 -0.0000 +vn 0.6212 -0.0000 -0.7837 +vn 0.0215 0.9998 -0.0000 +vn 0.0872 -0.0000 -0.9962 +vn 0.6836 -0.0000 0.7298 +vn 0.6836 -0.0000 -0.7298 +vn -0.6756 -0.0000 0.7373 +vn -0.6756 -0.0000 -0.7373 +vn 0.0872 -0.0000 0.9962 +vn -0.0920 -0.0000 0.9958 +vn -0.0920 -0.0000 -0.9958 +vn -0.0639 -0.9980 -0.0000 +vn -0.0721 0.9974 -0.0000 +vn 0.0576 0.9983 -0.0000 +vn -0.6587 -0.7524 -0.0000 +vn -0.6764 0.7365 -0.0000 +vn 0.6273 -0.7788 -0.0000 +vn 0.6105 0.7921 -0.0000 +vn 0.0746 -0.9972 -0.0000 +vn 0.0140 0.6804 -0.7327 +vn -0.0000 0.7327 -0.6805 +vn 0.6211 0.7837 -0.0077 +vn -0.0000 1.0000 -0.0073 +vt 0.250000 0.625000 +vt 0.375000 0.562500 +vt 0.375000 0.625000 +vt 0.187500 0.562500 +vt 0.062500 0.625000 +vt 0.062500 0.562500 +vt 0.187500 0.625000 +vt 0.000286 0.562500 +vt 0.000000 0.625000 +vt 0.000000 0.562500 +vt 0.250000 0.562500 +vt 1.000000 0.250000 +vt 0.812500 0.750000 +vt 1.000000 0.750000 +vt 0.000000 0.687500 +vt 0.500000 0.750000 +vt 0.000000 0.750000 +vt 0.750000 0.812500 +vt 0.562500 1.000000 +vt 0.562500 0.812500 +vt 0.750000 0.250000 +vt 0.562500 0.750000 +vt 0.562500 0.250000 +vt 0.750000 0.000000 +vt 0.562500 0.187500 +vt 0.562500 0.000000 +vt 0.500000 0.687500 +vt 0.750000 0.937500 +vt 0.812500 0.937500 +vt 0.812500 1.000000 +vt 0.875000 0.937500 +vt 0.500000 0.625000 +vt 0.000000 0.750000 +vt 0.250000 0.687500 +vt 0.250000 0.750000 +vt 0.875000 0.812500 +vt 0.875000 0.750000 +vt 0.937500 0.812500 +vt 0.937500 1.000000 +vt 0.937500 0.937500 +vt 1.000000 0.937500 +vt 0.750000 0.750000 +vt 0.812500 0.250000 +vt 0.937500 0.750000 +vt 0.500000 0.250000 +vt 0.500000 0.812500 +vt 0.000000 0.812500 +vt 0.750000 0.187500 +vt 0.250000 0.812500 +vt 0.000000 0.687500 +vt 0.250000 0.937500 +vt 0.500000 1.000000 +vt 0.250000 1.000000 +vt 0.500000 0.875000 +vt 0.250000 0.875000 +vt 0.000000 1.000000 +vt 0.000000 0.937500 +vt 0.500000 0.937500 +vt 0.000000 0.875000 +vt 0.291985 0.089153 +vt 0.415266 0.073249 +vt 0.343988 0.001971 +vt 0.293149 0.410977 +vt 0.416463 0.420276 +vt 0.345186 0.497037 +vt 0.291985 0.407455 +vt 0.415266 0.422512 +vt 0.342719 0.356721 +vt 0.293796 0.092400 +vt 0.416463 0.076496 +vt 0.344530 0.143134 +vt 0.344267 0.355136 +vt 0.004061 0.497037 +vt 0.004044 0.410840 +vt 0.002863 0.001971 +vt 0.002557 0.089153 +vt 0.342719 0.139887 +vt 0.002863 0.493790 +vt 0.343988 0.493790 +vt 0.500000 0.562500 +vt 0.004061 0.005218 +vt 0.345186 0.005218 +vt 0.750000 1.000000 +vt 0.875000 1.000000 +vt -0.000000 0.687500 +vt 0.002880 0.407592 +vt 0.004367 0.092400 +s 0 +f 8/1/1 169/2/1 168/3/1 +f 161/4/2 16/5/2 158/6/2 +f 14/1/3 166/2/3 165/3/3 +f 7/7/4 160/6/4 163/4/4 +f 157/8/5 16/5/5 15/9/5 +f 159/10/6 6/5/6 5/9/6 +f 14/1/7 161/4/7 162/11/7 +f 8/1/8 163/4/8 164/11/8 +f 25/12/1 44/13/1 36/14/1 +f 1/15/3 35/16/3 3/17/3 +f 39/18/2 37/19/2 43/20/2 +f 29/21/9 42/22/9 32/23/9 +f 22/24/4 31/25/4 24/26/4 +f 2/17/1 38/27/1 26/16/1 +f 27/28/10 28/29/10 29/30/10 +f 30/29/11 31/31/11 32/30/11 +f 23/27/12 2/9/12 26/32/12 +f 1/33/3 52/34/3 47/35/3 +f 39/36/13 40/37/13 41/38/13 +f 42/39/14 43/40/14 44/41/14 +f 40/42/15 43/20/15 42/22/15 +f 28/29/16 22/42/16 21/13/16 +f 28/43/17 40/42/17 29/21/17 +f 44/41/5 37/44/5 36/14/5 +f 26/17/1 50/34/1 49/35/1 +f 30/45/18 42/22/18 44/16/18 +f 3/17/9 38/46/9 4/47/9 +f 34/39/7 39/36/7 41/38/7 +f 32/23/19 27/48/19 29/21/19 +f 25/13/8 31/31/8 30/29/8 +f 34/14/20 28/43/20 21/12/20 +f 45/49/21 60/17/21 52/35/21 +f 47/35/3 60/27/3 55/16/3 +f 35/17/22 50/49/22 38/47/22 +f 4/46/23 52/35/23 3/16/23 +f 1/27/24 46/1/24 2/32/24 +f 2/16/1 45/34/1 4/27/1 +f 26/9/25 48/34/25 23/15/25 +f 23/16/3 51/34/3 35/27/3 +f 51/35/26 58/46/26 50/49/26 +f 47/34/27 54/9/27 46/1/27 +f 48/35/3 59/50/3 51/34/3 +f 49/35/1 58/27/1 57/16/1 +f 49/1/28 56/27/28 48/34/28 +f 46/35/1 53/15/1 45/34/1 +f 61/15/3 67/16/3 63/17/3 +f 62/17/1 68/27/1 66/16/1 +f 65/27/12 62/9/12 66/32/12 +f 61/33/3 76/34/3 71/35/3 +f 66/27/1 74/35/1 73/34/1 +f 63/17/9 68/46/9 64/47/9 +f 69/49/21 84/17/21 76/35/21 +f 71/35/3 84/27/3 79/16/3 +f 67/17/22 74/49/22 68/47/22 +f 64/46/23 76/35/23 63/16/23 +f 61/27/24 70/1/24 62/32/24 +f 62/50/1 69/35/1 64/17/1 +f 66/9/25 72/34/25 65/15/25 +f 65/16/3 75/34/3 67/27/3 +f 75/35/26 82/46/26 74/49/26 +f 71/34/27 78/9/27 70/1/27 +f 72/35/3 83/50/3 75/34/3 +f 73/34/1 82/33/1 81/50/1 +f 73/1/28 80/27/28 72/34/28 +f 70/34/1 77/16/1 69/35/1 +f 99/51/2 92/52/2 100/53/2 +f 96/49/29 89/54/29 97/55/29 +f 96/51/2 87/56/2 88/57/2 +f 97/53/4 86/57/4 94/51/4 +f 98/49/30 91/54/30 99/55/30 +f 94/55/31 87/58/31 95/51/31 +f 102/58/4 97/53/4 94/51/4 +f 103/47/32 97/55/32 104/59/32 +f 105/56/2 99/51/2 100/53/2 +f 108/47/33 99/55/33 107/59/33 +f 105/59/34 93/51/34 106/57/34 +f 101/57/35 94/55/35 95/51/35 +f 98/53/4 85/58/4 90/52/4 +f 100/55/36 85/58/36 93/51/36 +f 106/58/9 101/59/9 105/54/9 +f 101/52/2 96/51/2 103/58/2 +f 106/57/4 98/53/4 108/56/4 +f 104/47/12 107/54/12 103/59/12 +f 103/57/2 105/52/2 101/56/2 +f 104/56/4 106/58/4 108/52/4 +f 113/56/4 111/58/4 109/52/4 +f 114/57/2 112/52/2 116/56/2 +f 113/47/12 110/54/12 114/59/12 +f 111/57/4 119/53/4 109/56/4 +f 116/52/2 121/51/2 114/58/2 +f 112/54/9 115/57/9 116/59/9 +f 117/55/36 132/58/36 124/51/36 +f 119/53/4 132/58/4 127/52/4 +f 116/57/35 123/55/35 122/51/35 +f 112/59/34 124/51/34 111/57/34 +f 109/47/33 118/55/33 110/59/33 +f 112/56/2 118/51/2 117/53/2 +f 114/47/32 120/55/32 113/59/32 +f 115/58/4 120/53/4 123/51/4 +f 123/55/31 130/58/31 122/51/31 +f 119/49/30 126/54/30 118/55/30 +f 120/53/4 131/57/4 123/51/4 +f 121/51/2 130/56/2 129/57/2 +f 120/55/29 129/46/29 128/54/29 +f 118/51/2 125/52/2 117/53/2 +f 137/56/4 135/58/4 133/52/4 +f 138/57/2 136/52/2 140/56/2 +f 137/47/12 134/54/12 138/59/12 +f 135/57/4 143/53/4 133/56/4 +f 140/52/2 145/51/2 138/58/2 +f 136/54/9 139/57/9 140/59/9 +f 141/55/36 156/58/36 148/51/36 +f 143/53/4 156/58/4 151/52/4 +f 140/57/35 147/55/35 146/51/35 +f 136/59/34 148/51/34 135/57/34 +f 133/47/33 142/55/33 134/59/33 +f 136/56/2 142/51/2 141/53/2 +f 138/47/32 144/55/32 137/59/32 +f 139/58/4 144/53/4 147/51/4 +f 147/55/31 154/58/31 146/51/31 +f 143/49/30 150/54/30 142/55/30 +f 144/53/4 155/57/4 147/51/4 +f 145/51/2 154/56/2 153/57/2 +f 144/55/29 153/46/29 152/54/29 +f 142/51/2 149/52/2 141/53/2 +f 20/60/9 158/61/9 157/62/9 +f 10/63/9 160/64/9 159/65/9 +f 17/66/9 161/67/9 18/68/9 +f 11/69/9 163/70/9 12/71/9 +f 12/71/9 160/64/9 9/72/9 +f 10/63/9 166/73/9 167/74/9 +f 20/60/9 169/75/9 170/76/9 +f 19/77/9 161/67/9 158/61/9 +f 17/66/9 166/78/9 162/79/9 +f 165/3/3 159/80/3 5/32/3 +f 11/69/9 169/81/9 164/82/9 +f 168/3/1 157/80/1 15/32/1 +f 8/1/1 164/11/1 169/2/1 +f 161/4/2 13/7/2 16/5/2 +f 14/1/3 162/11/3 166/2/3 +f 7/7/4 6/5/4 160/6/4 +f 157/8/5 158/6/5 16/5/5 +f 159/10/37 160/6/37 6/5/37 +f 14/1/7 13/7/7 161/4/7 +f 8/1/8 7/7/8 163/4/8 +f 25/12/1 30/43/1 44/13/1 +f 1/15/3 23/27/3 35/16/3 +f 39/18/2 33/83/2 37/19/2 +f 29/21/9 40/42/9 42/22/9 +f 22/24/4 27/48/4 31/25/4 +f 2/17/1 4/15/1 38/27/1 +f 23/27/12 1/15/12 2/9/12 +f 1/33/3 3/50/3 52/34/3 +f 40/42/15 39/18/15 43/20/15 +f 28/29/38 27/28/38 22/42/38 +f 28/43/39 41/13/39 40/42/39 +f 44/41/5 43/40/5 37/44/5 +f 26/17/1 38/15/1 50/34/1 +f 30/45/18 32/23/18 42/22/18 +f 3/17/9 35/16/9 38/46/9 +f 34/39/7 33/84/7 39/36/7 +f 32/23/19 31/25/19 27/48/19 +f 25/13/8 24/37/8 31/31/8 +f 34/14/40 41/13/40 28/43/40 +f 45/49/21 53/47/21 60/17/21 +f 47/35/3 52/34/3 60/27/3 +f 35/17/22 51/35/22 50/49/22 +f 4/46/23 45/49/23 52/35/23 +f 1/27/24 47/34/24 46/1/24 +f 2/16/1 46/35/1 45/34/1 +f 26/9/25 49/1/25 48/34/25 +f 23/16/3 48/35/3 51/34/3 +f 51/35/26 59/16/26 58/46/26 +f 47/34/27 55/15/27 54/9/27 +f 48/35/3 56/33/3 59/50/3 +f 49/35/1 50/34/1 58/27/1 +f 49/1/28 57/32/28 56/27/28 +f 46/35/1 54/17/1 53/15/1 +f 61/15/3 65/27/3 67/16/3 +f 62/17/1 64/15/1 68/27/1 +f 65/27/12 61/15/12 62/9/12 +f 61/33/3 63/85/3 76/34/3 +f 66/27/1 68/16/1 74/35/1 +f 63/17/9 67/16/9 68/46/9 +f 69/49/21 77/47/21 84/17/21 +f 71/35/3 76/34/3 84/27/3 +f 67/17/22 75/35/22 74/49/22 +f 64/46/23 69/49/23 76/35/23 +f 61/27/24 71/34/24 70/1/24 +f 62/50/1 70/34/1 69/35/1 +f 66/9/25 73/1/25 72/34/25 +f 65/16/3 72/35/3 75/34/3 +f 75/35/26 83/16/26 82/46/26 +f 71/34/27 79/15/27 78/9/27 +f 72/35/3 80/33/3 83/50/3 +f 73/34/1 74/35/1 82/33/1 +f 73/1/28 81/32/28 80/27/28 +f 70/34/1 78/27/1 77/16/1 +f 99/51/2 91/58/2 92/52/2 +f 96/49/29 88/46/29 89/54/29 +f 96/51/2 95/53/2 87/56/2 +f 97/53/4 89/56/4 86/57/4 +f 98/49/30 90/46/30 91/54/30 +f 94/55/31 86/54/31 87/58/31 +f 102/58/4 104/52/4 97/53/4 +f 103/47/32 96/49/32 97/55/32 +f 105/56/2 107/57/2 99/51/2 +f 108/47/33 98/49/33 99/55/33 +f 105/59/34 100/55/34 93/51/34 +f 101/57/35 102/59/35 94/55/35 +f 98/53/4 93/51/4 85/58/4 +f 100/55/36 92/54/36 85/58/36 +f 106/58/9 102/57/9 101/59/9 +f 101/52/2 95/53/2 96/51/2 +f 106/57/4 93/51/4 98/53/4 +f 104/47/12 108/46/12 107/54/12 +f 103/57/2 107/58/2 105/52/2 +f 104/56/4 102/57/4 106/58/4 +f 113/56/4 115/57/4 111/58/4 +f 114/57/2 110/58/2 112/52/2 +f 113/47/12 109/46/12 110/54/12 +f 111/57/4 124/51/4 119/53/4 +f 116/52/2 122/53/2 121/51/2 +f 112/54/9 111/58/9 115/57/9 +f 117/55/36 125/54/36 132/58/36 +f 119/53/4 124/51/4 132/58/4 +f 116/57/35 115/59/35 123/55/35 +f 112/59/34 117/55/34 124/51/34 +f 109/47/33 119/49/33 118/55/33 +f 112/56/2 110/57/2 118/51/2 +f 114/47/32 121/49/32 120/55/32 +f 115/58/4 113/52/4 120/53/4 +f 123/55/31 131/54/31 130/58/31 +f 119/49/30 127/46/30 126/54/30 +f 120/53/4 128/56/4 131/57/4 +f 121/51/2 122/53/2 130/56/2 +f 120/55/29 121/49/29 129/46/29 +f 118/51/2 126/58/2 125/52/2 +f 137/56/4 139/57/4 135/58/4 +f 138/57/2 134/58/2 136/52/2 +f 137/47/12 133/46/12 134/54/12 +f 135/57/4 148/51/4 143/53/4 +f 140/52/2 146/53/2 145/51/2 +f 136/54/9 135/58/9 139/57/9 +f 141/55/36 149/54/36 156/58/36 +f 143/53/4 148/51/4 156/58/4 +f 140/57/35 139/59/35 147/55/35 +f 136/59/34 141/55/34 148/51/34 +f 133/47/33 143/49/33 142/55/33 +f 136/56/2 134/57/2 142/51/2 +f 138/47/32 145/49/32 144/55/32 +f 139/58/4 137/52/4 144/53/4 +f 147/55/31 155/54/31 154/58/31 +f 143/49/30 151/46/30 150/54/30 +f 144/53/4 152/56/4 155/57/4 +f 145/51/2 146/53/2 154/56/2 +f 144/55/29 145/49/29 153/46/29 +f 142/51/2 150/58/2 149/52/2 +f 20/60/9 19/77/9 158/61/9 +f 10/63/9 9/72/9 160/64/9 +f 17/66/9 162/79/9 161/67/9 +f 11/69/9 164/82/9 163/70/9 +f 12/71/9 163/70/9 160/64/9 +f 10/63/9 159/65/9 166/73/9 +f 20/60/9 157/62/9 169/75/9 +f 19/77/9 18/68/9 161/67/9 +f 17/66/9 167/86/9 166/78/9 +f 165/3/3 166/2/3 159/80/3 +f 11/69/9 170/87/9 169/81/9 +f 168/3/1 169/2/1 157/80/1 diff --git a/src/main/resources/assets/hbm/models/lights/flood_lamp.obj b/src/main/resources/assets/hbm/models/lights/flood_lamp.obj new file mode 100644 index 000000000..09cddd769 --- /dev/null +++ b/src/main/resources/assets/hbm/models/lights/flood_lamp.obj @@ -0,0 +1,228 @@ +# Blender 4.0.1 +# www.blender.org +o FloodLamp +v 0.015049 -0.086498 0.155863 +v 0.015049 0.086498 0.155863 +v 0.015049 -0.086498 -0.155863 +v 0.015049 0.086498 -0.155863 +v 0.306240 -0.185247 0.273848 +v 0.306240 0.185247 0.273848 +v 0.306240 -0.185247 -0.273848 +v 0.306240 0.185247 -0.273848 +v 0.306240 0.228156 -0.325088 +v 0.306240 -0.228156 -0.325088 +v 0.306240 -0.228156 0.325088 +v 0.306240 0.228156 0.325088 +v 0.183352 0.115790 -0.171171 +v 0.183352 -0.115790 -0.171171 +v 0.183352 -0.115790 0.171171 +v 0.183352 0.115790 0.171171 +v 0.183138 0.057253 -0.202014 +v 0.183138 0.057253 0.202014 +v 0.183138 -0.057253 -0.202014 +v 0.183138 -0.057253 0.202014 +v 0.214999 -0.040484 -0.202014 +v 0.214999 -0.040484 0.202014 +v 0.228196 0.000000 -0.202014 +v 0.228196 0.000000 0.202014 +v 0.214999 0.040484 -0.202014 +v 0.214999 0.040484 0.202014 +v -0.001481 -0.036719 0.241790 +v -0.001481 0.036719 0.241790 +v -0.001481 -0.036719 -0.241790 +v -0.001481 0.036719 -0.241790 +v 0.005048 -0.036719 0.237296 +v 0.005048 0.036719 0.237296 +v 0.005048 -0.036719 -0.237296 +v 0.005048 0.036719 -0.237296 +v 0.150804 -0.036719 0.259541 +v 0.150804 0.036719 0.259541 +v 0.150804 0.036719 -0.259541 +v 0.150804 -0.036719 -0.259541 +v 0.150804 -0.036719 -0.253185 +v 0.150804 0.036719 -0.253185 +v 0.150804 0.036719 0.253185 +v 0.150804 -0.036719 0.253185 +v 0.071925 -0.135739 -0.228998 +v 0.071925 0.135739 -0.228998 +v 0.071925 -0.135739 0.228998 +v 0.071925 0.135739 0.228998 +v 0.256780 0.219497 -0.320654 +v 0.256780 -0.219497 0.320654 +v 0.256780 -0.219497 -0.320654 +v 0.256780 0.219497 0.320654 +vn -1.0000 -0.0000 -0.0000 +vn -0.0893 -0.0000 -0.9960 +vn 0.4920 -0.8706 -0.0000 +vn -0.7894 -0.0000 0.6139 +vn -0.1724 -0.9850 -0.0000 +vn -0.6545 0.7560 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.6412 -0.0000 0.7674 +vn 0.6412 -0.0000 -0.7674 +vn 0.4920 0.8706 -0.0000 +vn 0.4658 -0.8849 -0.0000 +vn 0.9508 -0.3099 -0.0000 +vn 0.9508 0.3099 -0.0000 +vn 0.4658 0.8849 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.1084 -0.0000 0.9941 +vn -0.0000 1.0000 -0.0000 +vn 0.1084 -0.0000 -0.9941 +vn -0.1158 -0.0000 -0.9933 +vn -0.1158 -0.0000 0.9933 +vn -0.4127 0.9109 -0.0000 +vn -0.6545 -0.7560 -0.0000 +vn -0.4442 -0.0000 0.8959 +vn -0.7894 -0.0000 -0.6139 +vn -0.0893 -0.0000 0.9960 +vn -0.1724 0.9850 -0.0000 +vn -0.4127 -0.9109 -0.0000 +vn -0.4442 -0.0000 -0.8959 +vt 0.750000 0.312500 +vt 0.937500 0.000000 +vt 0.937500 0.312500 +vt 0.433577 0.606066 +vt 0.390675 0.995211 +vt 0.433577 0.987684 +vt 0.319041 0.068172 +vt 0.433066 0.416342 +vt 0.319041 0.496674 +vt 0.592516 0.678877 +vt 0.640575 0.872068 +vt 0.592516 0.914873 +vt 0.954474 0.992052 +vt 0.393131 0.950474 +vt 0.950619 0.950474 +vt 0.536383 0.742486 +vt 0.870944 0.796340 +vt 0.472806 0.796340 +vt 0.520556 0.519306 +vt 0.125992 0.563849 +vt 0.166945 0.519306 +vt 0.520555 0.043194 +vt 0.561508 0.563849 +vt 0.125992 -0.001349 +vt 0.166945 0.043194 +vt 0.166945 0.045709 +vt 0.561508 0.001166 +vt 0.520555 0.045709 +vt 0.062500 1.000000 +vt 0.312500 0.687500 +vt 0.312500 1.000000 +vt 0.999676 0.773340 +vt 0.890949 0.511648 +vt 0.999676 0.451269 +vt 1.000000 0.773310 +vt 0.891273 0.511618 +vt 1.000000 0.451239 +vt 0.320607 0.064998 +vt 0.433145 0.419320 +vt 0.320607 0.493499 +vt 0.000000 0.437500 +vt 0.062500 0.437500 +vt 0.000000 1.000000 +vt 0.937500 0.437500 +vt 1.000000 0.000000 +vt 1.000000 0.437500 +vt 1.000000 0.125000 +vt 0.937500 0.125000 +vt 0.950619 0.956002 +vt 0.393131 0.956002 +vt 0.807367 0.757948 +vt 0.472806 0.801131 +vt 0.536383 0.757948 +vt 0.640575 0.721682 +vt 0.390675 0.598539 +vt 0.390675 0.995211 +vt 0.954474 0.995950 +vt 0.389276 0.995950 +vt 0.870944 0.801131 +vt 0.750000 0.000000 +vt 0.390675 0.598539 +vt 0.433066 0.148504 +vt 0.389276 0.992052 +vt 0.807367 0.742486 +vt 0.561508 -0.001349 +vt 0.125992 0.001166 +vt 0.062500 0.687500 +vt 0.890949 0.712961 +vt 0.891273 0.712931 +vt 0.433145 0.151481 +s 0 +f 2/1/1 3/2/1 1/3/1 +f 47/4/2 10/5/2 49/6/2 +f 6/7/3 13/8/3 8/9/3 +f 46/10/4 1/11/4 45/12/4 +f 10/13/5 48/14/5 49/15/5 +f 4/16/6 46/17/6 44/18/6 +f 7/19/7 9/20/7 8/21/7 +f 5/22/7 10/23/7 7/19/7 +f 8/21/7 12/24/7 6/25/7 +f 6/26/7 11/27/7 5/28/7 +f 13/29/7 15/30/7 14/31/7 +f 8/32/8 14/33/8 7/34/8 +f 5/35/9 16/36/9 6/37/9 +f 7/38/10 15/39/10 5/40/10 +f 21/41/11 20/29/11 19/42/11 +f 23/41/12 22/29/12 21/42/12 +f 25/29/13 24/41/13 23/43/13 +f 17/29/14 26/41/14 25/43/14 +f 28/44/1 29/45/1 27/46/1 +f 33/2/15 38/47/15 39/48/15 +f 34/44/7 31/45/7 33/46/7 +f 33/45/16 40/48/16 34/2/16 +f 33/44/15 27/45/15 29/46/15 +f 30/45/17 32/44/17 34/2/17 +f 32/2/17 36/47/17 41/48/17 +f 32/48/18 42/45/18 31/47/18 +f 34/45/17 37/48/17 30/2/17 +f 30/48/19 38/45/19 29/47/19 +f 27/45/20 36/48/20 28/2/20 +f 31/45/15 35/48/15 27/2/15 +f 44/18/21 50/49/21 47/50/21 +f 3/51/22 45/52/22 1/53/22 +f 50/4/23 45/12/23 48/6/23 +f 4/54/24 43/12/24 3/11/24 +f 12/55/25 48/6/25 11/56/25 +f 47/50/26 12/57/26 9/58/26 +f 49/15/27 45/52/27 43/59/27 +f 44/10/28 49/6/28 43/12/28 +f 2/1/1 4/60/1 3/2/1 +f 47/4/2 9/61/2 10/5/2 +f 6/7/3 16/62/3 13/8/3 +f 46/10/4 2/54/4 1/11/4 +f 10/13/5 11/63/5 48/14/5 +f 4/16/6 2/64/6 46/17/6 +f 7/19/7 10/23/7 9/20/7 +f 5/22/7 11/65/7 10/23/7 +f 8/21/7 9/20/7 12/24/7 +f 6/26/7 12/66/7 11/27/7 +f 13/29/7 16/67/7 15/30/7 +f 8/32/8 13/68/8 14/33/8 +f 5/35/9 15/69/9 16/36/9 +f 7/38/10 14/70/10 15/39/10 +f 21/41/11 22/43/11 20/29/11 +f 23/41/12 24/43/12 22/29/12 +f 25/29/13 26/42/13 24/41/13 +f 17/29/14 18/42/14 26/41/14 +f 28/44/1 30/2/1 29/45/1 +f 33/2/15 29/45/15 38/47/15 +f 34/44/7 32/2/7 31/45/7 +f 33/45/16 39/47/16 40/48/16 +f 33/44/15 31/2/15 27/45/15 +f 30/45/17 28/46/17 32/44/17 +f 32/2/17 28/45/17 36/47/17 +f 32/48/18 41/2/18 42/45/18 +f 34/45/17 40/47/17 37/48/17 +f 30/48/19 37/2/19 38/45/19 +f 27/45/20 35/47/20 36/48/20 +f 31/45/15 42/47/15 35/48/15 +f 44/18/21 46/17/21 50/49/21 +f 3/51/22 43/59/22 45/52/22 +f 50/4/23 46/10/23 45/12/23 +f 4/54/24 44/10/24 43/12/24 +f 12/55/25 50/4/25 48/6/25 +f 47/50/26 50/49/26 12/57/26 +f 49/15/27 48/14/27 45/52/27 +f 44/10/28 47/4/28 49/6/28 diff --git a/src/main/resources/assets/hbm/models/lights/fluorescent_lamp.obj b/src/main/resources/assets/hbm/models/lights/fluorescent_lamp.obj new file mode 100644 index 000000000..9343ef1bc --- /dev/null +++ b/src/main/resources/assets/hbm/models/lights/fluorescent_lamp.obj @@ -0,0 +1,306 @@ +# Blender 4.0.1 +# www.blender.org +o FluoroCap +v -0.002210 -0.289110 0.300000 +v -0.002210 0.289110 0.300000 +v -0.002210 -0.289110 -0.500000 +v -0.002210 0.289110 -0.500000 +v 0.147790 -0.315000 0.300000 +v 0.147790 0.315000 0.300000 +v 0.147790 -0.315000 -0.500000 +v 0.147790 0.315000 -0.500000 +v 0.072790 -0.315000 -0.500000 +v 0.072790 0.315000 -0.500000 +v 0.072790 -0.315000 0.300000 +v 0.072790 0.315000 0.300000 +v -0.002210 0.289110 0.350000 +v -0.002210 -0.289110 0.350000 +v 0.147790 -0.315000 0.350000 +v 0.147790 0.315000 0.350000 +v 0.072790 0.315000 0.350000 +v 0.072790 -0.315000 0.350000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.3263 0.9453 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.3263 -0.9453 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.125000 0.937500 +vt 0.625000 0.875000 +vt 0.625000 0.937500 +vt 0.125000 0.687500 +vt 0.625000 0.125000 +vt 0.625000 0.687500 +vt 0.687500 0.125000 +vt 0.687500 0.687500 +vt 0.000000 0.687500 +vt 0.062500 0.125000 +vt 0.062500 0.687500 +vt 0.125000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.687500 +vt 0.125000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.062500 +vt 0.625000 0.000000 +vt 0.625000 0.062500 +vt 1.000000 0.375000 +vt 0.937500 0.437500 +vt 0.937500 0.375000 +vt 1.000000 0.437500 +vt 0.937500 1.000000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.937500 0.500000 +vt 0.125000 0.875000 +vt 0.000000 0.125000 +vt 0.125000 0.000000 +s 0 +f 10/1/1 7/2/1 9/3/1 +f 8/4/2 5/5/2 7/6/2 +f 7/6/3 11/7/3 9/8/3 +f 4/9/4 12/10/4 10/11/4 +f 10/11/5 6/12/5 8/4/5 +f 9/8/6 1/13/6 3/14/6 +f 4/15/1 9/3/1 3/16/1 +f 17/17/7 14/18/7 18/19/7 +f 13/20/4 12/21/4 2/22/4 +f 18/21/6 1/20/6 11/23/6 +f 16/12/7 18/19/7 15/5/7 +f 16/24/2 5/25/2 6/26/2 +f 17/21/5 6/25/5 12/23/5 +f 15/27/3 11/23/3 5/25/3 +f 10/1/1 8/28/1 7/2/1 +f 8/4/2 6/12/2 5/5/2 +f 7/6/3 5/5/3 11/7/3 +f 4/9/4 2/29/4 12/10/4 +f 10/11/5 12/10/5 6/12/5 +f 9/8/6 11/7/6 1/13/6 +f 4/15/1 10/1/1 9/3/1 +f 17/17/7 13/30/7 14/18/7 +f 13/20/4 17/23/4 12/21/4 +f 18/21/6 14/22/6 1/20/6 +f 16/12/7 17/17/7 18/19/7 +f 16/24/2 15/27/2 5/25/2 +f 17/21/5 16/27/5 6/25/5 +f 15/27/3 18/21/3 11/23/3 +o FluoroMid +v -0.002210 -0.289110 0.500000 +v -0.002210 0.289110 0.500000 +v -0.002210 -0.289110 -0.500000 +v -0.002210 0.289110 -0.500000 +v 0.147790 -0.315000 0.500000 +v 0.147790 0.315000 0.500000 +v 0.147790 -0.315000 -0.500000 +v 0.147790 0.315000 -0.500000 +v 0.072790 -0.315000 -0.500000 +v 0.072790 0.315000 -0.500000 +v 0.072790 -0.315000 0.500000 +v 0.072790 0.315000 0.500000 +v -0.002210 -0.289110 0.000000 +v -0.002210 0.289110 0.000000 +v 0.147790 -0.315000 0.000000 +v 0.147790 0.315000 0.000000 +v 0.072790 0.315000 0.000000 +v 0.072790 -0.315000 0.000000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.3263 0.9453 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.3263 -0.9453 -0.0000 +vt 0.125000 0.937500 +vt 0.625000 0.875000 +vt 0.625000 0.937500 +vt 0.125000 0.687500 +vt 0.625000 0.312500 +vt 0.625000 0.687500 +vt 0.125000 0.062500 +vt 0.625000 0.000000 +vt 0.625000 0.062500 +vt 0.625000 0.500000 +vt 0.687500 0.125000 +vt 0.687500 0.500000 +vt 0.000000 0.500000 +vt 0.062500 0.125000 +vt 0.062500 0.500000 +vt 0.125000 0.125000 +vt 0.125000 0.500000 +vt 0.750000 0.125000 +vt 0.750000 0.500000 +vt 0.625000 0.125000 +vt 0.125000 1.000000 +vt 0.625000 1.000000 +vt 0.687500 0.875000 +vt 0.750000 0.875000 +vt 0.062500 0.875000 +vt 0.125000 0.875000 +vt -0.000000 0.875000 +vt 0.125000 0.312500 +vt 0.125000 0.000000 +vt 0.000000 0.125000 +s 0 +f 28/31/8 25/32/8 27/33/8 +f 34/34/9 23/35/9 33/36/9 +f 30/37/10 19/38/10 29/39/10 +f 33/40/11 29/41/11 36/42/11 +f 32/43/12 30/44/12 35/45/12 +f 35/45/13 24/46/13 34/47/13 +f 36/42/14 19/48/14 31/49/14 +f 24/46/10 29/39/10 23/50/10 +f 22/51/8 27/33/8 21/52/8 +f 27/53/14 31/49/14 21/54/14 +f 28/55/13 34/47/13 26/56/13 +f 22/57/12 35/45/12 28/55/12 +f 25/32/11 36/42/11 27/53/11 +f 26/34/9 33/35/9 25/36/9 +f 28/31/8 26/56/8 25/32/8 +f 34/34/9 24/58/9 23/35/9 +f 30/37/10 20/59/10 19/38/10 +f 33/40/11 23/50/11 29/41/11 +f 32/43/12 20/60/12 30/44/12 +f 35/45/13 30/44/13 24/46/13 +f 36/42/14 29/41/14 19/48/14 +f 24/46/10 30/37/10 29/39/10 +f 22/51/8 28/31/8 27/33/8 +f 27/53/14 36/42/14 31/49/14 +f 28/55/13 35/45/13 34/47/13 +f 22/57/12 32/43/12 35/45/12 +f 25/32/11 33/40/11 36/42/11 +f 26/34/9 34/58/9 33/35/9 +o FluoroSingle +v -0.002210 -0.289110 0.300000 +v -0.002210 0.289110 0.300000 +v -0.002210 -0.289110 -0.300000 +v -0.002210 0.289110 -0.300000 +v 0.147790 -0.315000 0.300000 +v 0.147790 0.315000 0.300000 +v 0.147790 -0.315000 -0.300000 +v 0.147790 0.315000 -0.300000 +v 0.072790 -0.315000 -0.300000 +v 0.072790 0.315000 -0.300000 +v 0.072790 -0.315000 0.300000 +v 0.072790 0.315000 0.300000 +v 0.072790 -0.315000 -0.350000 +v 0.072790 0.315000 -0.350000 +v 0.147790 0.315000 -0.350000 +v 0.147790 -0.315000 -0.350000 +v 0.072790 -0.315000 0.350000 +v 0.072790 0.315000 0.350000 +v -0.002210 0.289110 0.350000 +v -0.002210 -0.289110 0.350000 +v 0.147790 -0.315000 0.350000 +v 0.147790 0.315000 0.350000 +v -0.002210 -0.289110 -0.350000 +v -0.002210 0.289110 -0.350000 +v -0.002210 -0.289110 0.000000 +v -0.002210 0.289110 0.000000 +v 0.147790 -0.315000 0.000000 +v 0.147790 0.315000 0.000000 +v 0.072790 0.315000 0.000000 +v 0.072790 -0.315000 0.000000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.3263 0.9453 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.3263 -0.9453 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.125000 0.375000 +vt 0.625000 0.125000 +vt 0.625000 0.375000 +vt 0.625000 0.625000 +vt 0.687500 0.375000 +vt 0.687500 0.625000 +vt 0.000000 0.625000 +vt 0.062500 0.375000 +vt 0.062500 0.625000 +vt 0.125000 0.375000 +vt 0.125000 0.625000 +vt 0.750000 0.375000 +vt 0.750000 0.625000 +vt 0.125000 0.937500 +vt 0.625000 0.875000 +vt 0.625000 0.937500 +vt 0.937500 0.437500 +vt 1.000000 0.500000 +vt 1.000000 0.437500 +vt 0.937500 0.562500 +vt 1.000000 1.000000 +vt 1.000000 0.562500 +vt 1.000000 0.500000 +vt 0.937500 0.500000 +vt 0.125000 0.062500 +vt 0.625000 -0.000000 +vt 0.625000 0.062500 +vt 1.000000 0.500000 +vt 0.125000 0.125000 +vt 0.625000 0.125000 +vt 0.937500 1.000000 +vt 0.937500 0.562500 +vt 0.125000 1.000000 +vt 0.625000 1.000000 +vt 1.000000 0.562500 +vt 1.000000 0.562500 +vt 0.687500 0.875000 +vt 0.750000 0.875000 +vt 0.062500 0.875000 +vt 0.125000 0.875000 +vt 0.000000 0.875000 +vt 0.125000 0.875000 +vt 0.625000 0.875000 +vt 0.125000 0.125000 +vt 0.625000 0.375000 +vt 0.000000 0.375000 +vt 0.125000 -0.000000 +s 0 +f 64/61/15 41/62/15 63/63/15 +f 63/64/16 47/65/16 66/66/16 +f 62/67/17 48/68/17 65/69/17 +f 65/69/18 42/70/18 64/71/18 +f 66/66/19 37/72/19 61/73/19 +f 50/74/20 52/75/20 49/76/20 +f 51/77/18 46/78/18 44/79/18 +f 52/80/15 44/81/15 43/82/15 +f 49/83/16 43/77/16 45/84/16 +f 54/85/21 56/86/21 53/87/21 +f 55/79/17 48/84/17 38/77/17 +f 53/88/19 37/77/19 47/84/19 +f 58/89/21 53/87/21 57/90/21 +f 58/91/15 41/82/15 42/81/15 +f 54/78/18 42/92/18 48/84/18 +f 57/82/16 47/84/16 41/92/16 +f 60/93/20 49/76/20 59/94/20 +f 50/84/17 40/95/17 46/78/17 +f 59/96/19 45/84/19 39/92/19 +f 45/97/19 61/73/19 39/98/19 +f 46/99/18 64/71/18 44/100/18 +f 40/101/17 65/69/17 46/99/17 +f 43/75/16 66/66/16 45/97/16 +f 44/102/15 63/64/15 43/103/15 +f 64/61/15 42/104/15 41/62/15 +f 63/64/16 41/105/16 47/65/16 +f 62/67/17 38/106/17 48/68/17 +f 65/69/18 48/68/18 42/70/18 +f 66/66/19 47/65/19 37/72/19 +f 50/74/20 51/100/20 52/75/20 +f 51/77/18 50/84/18 46/78/18 +f 52/80/15 51/91/15 44/81/15 +f 49/83/16 52/79/16 43/77/16 +f 54/85/21 55/107/21 56/86/21 +f 55/79/17 54/78/17 48/84/17 +f 53/88/19 56/79/19 37/77/19 +f 58/89/21 54/85/21 53/87/21 +f 58/91/15 57/80/15 41/82/15 +f 54/78/18 58/95/18 42/92/18 +f 57/82/16 53/88/16 47/84/16 +f 60/93/20 50/74/20 49/76/20 +f 50/84/17 60/92/17 40/95/17 +f 59/96/19 49/83/19 45/84/19 +f 45/97/19 66/66/19 61/73/19 +f 46/99/18 65/69/18 64/71/18 +f 40/101/17 62/67/17 65/69/17 +f 43/75/16 63/64/16 66/66/16 +f 44/102/15 64/71/15 63/64/15 diff --git a/src/main/resources/assets/hbm/models/machines/acidizer.obj b/src/main/resources/assets/hbm/models/machines/acidizer.obj new file mode 100644 index 000000000..52f1e55f4 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/acidizer.obj @@ -0,0 +1,3806 @@ +# Blender v2.79 (sub 0) OBJ File: 'acidizer.blend' +# www.blender.org +o Fluid +v 1.062500 2.375000 0.375000 +v 1.062500 2.375000 -0.375000 +v 1.062500 4.625000 0.375000 +v 1.062500 4.625000 -0.375000 +v -1.062500 2.375000 -0.374999 +v -1.062500 2.375000 0.375001 +v -1.062500 4.625000 -0.374999 +v -1.062500 4.625000 0.375001 +v 0.374999 2.375000 -1.062500 +v -0.375000 2.375000 -1.062500 +v 0.374999 4.624999 -1.062500 +v -0.375000 4.624999 -1.062500 +v -0.374999 2.375000 1.062500 +v 0.375001 2.375000 1.062500 +v -0.374999 4.624999 1.062500 +v 0.375001 4.624999 1.062500 +vt 0.875000 2.000000 +vt 0.125000 -1.000000 +vt 0.875000 -1.000000 +vt 0.875000 2.000000 +vt 0.125000 -1.000000 +vt 0.875000 -1.000000 +vt 0.875000 2.000000 +vt 0.125000 -1.000000 +vt 0.875000 -1.000000 +vt 0.875000 2.000000 +vt 0.125000 -1.000000 +vt 0.875000 -1.000000 +vt 0.125000 2.000000 +vt 0.125000 2.000000 +vt 0.125000 2.000000 +vt 0.125000 2.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 4/1/1 1/2/1 2/3/1 +f 8/4/2 5/5/2 6/6/2 +f 12/7/3 9/8/3 10/9/3 +f 16/10/4 13/11/4 14/12/4 +f 4/1/1 3/13/1 1/2/1 +f 8/4/2 7/14/2 5/5/2 +f 12/7/3 11/15/3 9/8/3 +f 16/10/4 15/16/4 13/11/4 +o Spinner +v 0.000000 6.250000 -0.250000 +v -0.176777 6.250000 -0.176777 +v -0.250000 6.250000 0.000000 +v -0.176777 6.250000 0.176777 +v 0.000000 6.250000 0.250000 +v 0.176777 6.250000 0.176777 +v 0.250000 6.250000 0.000000 +v 0.176777 6.250000 -0.176777 +v 0.000000 6.625000 -0.250000 +v -0.176777 6.625000 -0.176777 +v -0.250000 6.625000 0.000000 +v -0.176777 6.625000 0.176777 +v 0.000000 6.625000 0.250000 +v 0.176777 6.625000 0.176777 +v 0.250000 6.625000 0.000000 +v 0.176777 6.625000 -0.176777 +v -0.062500 6.250000 0.562500 +v 0.062500 6.250000 0.562500 +v -0.062500 6.250000 -0.562500 +v 0.062500 6.250000 -0.562500 +v -0.062500 6.500000 -0.562500 +v -0.062500 6.500000 0.562500 +v 0.062500 6.500000 0.562500 +v 0.062500 6.500000 -0.562500 +v 0.000000 1.875000 -0.500000 +v -0.353553 1.875000 -0.353553 +v -0.500000 1.875000 0.000000 +v -0.353553 1.875000 0.353553 +v 0.000000 1.875000 0.500000 +v 0.353553 1.875000 0.353553 +v 0.500000 1.875000 0.000000 +v 0.353553 1.875000 -0.353553 +v 0.000000 5.125000 -0.500000 +v -0.353553 5.125000 -0.353553 +v -0.500000 5.125000 0.000000 +v -0.353553 5.125000 0.353553 +v 0.000000 5.125000 0.500000 +v 0.353553 5.125000 0.353553 +v 0.500000 5.125000 0.000000 +v 0.353553 5.125000 -0.353553 +v -0.062500 1.875000 0.750000 +v 0.062500 1.875000 0.750000 +v -0.062500 1.875000 -0.750000 +v 0.062500 1.875000 -0.750000 +v -0.062500 5.125000 0.750000 +v 0.062500 5.125000 0.750000 +v -0.062500 5.125000 -0.750000 +v 0.062500 5.125000 -0.750000 +vt 0.485065 0.898876 +vt 0.505000 0.876477 +vt 0.524935 0.898876 +vt 0.480000 0.831461 +vt 0.570000 0.842697 +vt 0.480000 0.842697 +vt 0.570000 0.808989 +vt 0.480000 0.808989 +vt 0.570000 0.808989 +vt 0.480000 0.831461 +vt 0.480000 0.808989 +vt 0.580000 0.808989 +vt 0.570000 0.831461 +vt 0.580000 0.808989 +vt 0.570000 0.831461 +vt 0.610000 0.808989 +vt 0.600000 0.516854 +vt 0.610000 0.516854 +vt 0.610000 0.808989 +vt 0.600000 0.516854 +vt 0.610000 0.516854 +vt 0.600000 0.808989 +vt 0.480000 0.516854 +vt 0.600000 0.808989 +vt 0.480000 0.516854 +vt 0.519096 0.914715 +vt 0.505000 0.921275 +vt 0.490904 0.914715 +vt 0.490904 0.883038 +vt 0.519096 0.883038 +vt 0.580000 0.831461 +vt 0.580000 0.831461 +vt 0.480000 0.808989 +vt 0.480000 0.808989 +vt 0.730000 0.887640 +vt 0.715000 0.921348 +vt 0.715000 0.887640 +vt 0.700000 0.887640 +vt 0.685000 0.921348 +vt 0.685000 0.887640 +vt 0.670000 0.887640 +vt 0.655000 0.921348 +vt 0.655000 0.887640 +vt 0.760000 0.887640 +vt 0.745000 0.921348 +vt 0.745000 0.887640 +vt 0.730000 0.921348 +vt 0.700000 0.921348 +vt 0.670000 0.921348 +vt 0.775000 0.887640 +vt 0.760000 0.921348 +vt 0.640000 0.516854 +vt 0.610000 0.808989 +vt 0.610000 0.516854 +vt 0.850000 0.516854 +vt 0.820000 0.808989 +vt 0.820000 0.516854 +vt 0.790000 0.516854 +vt 0.760000 0.808989 +vt 0.760000 0.516854 +vt 0.730000 0.516854 +vt 0.700000 0.808989 +vt 0.700000 0.516854 +vt 0.670000 0.516854 +vt 0.640000 0.808989 +vt 0.790000 0.808989 +vt 0.730000 0.808989 +vt 0.670000 0.808989 +vt 0.775000 0.921348 +vt 0.850000 0.808989 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +s off +f 29/17/5 31/18/5 25/19/5 +f 39/20/5 37/21/5 38/22/5 +f 36/23/6 39/20/6 34/24/6 +f 33/25/7 37/26/7 35/27/7 +f 35/28/8 40/29/8 36/23/8 +f 34/30/9 38/31/9 33/25/9 +f 63/32/8 60/33/8 59/34/8 +f 62/35/9 57/36/9 58/37/9 +f 64/38/6 58/39/6 60/33/6 +f 61/40/7 59/41/7 57/36/7 +f 25/19/5 26/42/5 27/43/5 +f 27/43/5 28/44/5 29/17/5 +f 29/17/5 30/45/5 31/18/5 +f 31/18/5 32/46/5 25/19/5 +f 25/19/5 27/43/5 29/17/5 +f 39/20/5 40/29/5 37/21/5 +f 36/23/6 40/29/6 39/20/6 +f 33/25/7 38/31/7 37/26/7 +f 35/28/8 37/47/8 40/29/8 +f 34/30/9 39/48/9 38/31/9 +f 63/32/8 64/38/8 60/33/8 +f 62/35/9 61/40/9 57/36/9 +f 64/38/6 62/49/6 58/39/6 +f 61/40/7 63/50/7 59/41/7 +s 1 +f 24/51/10 31/52/6 23/53/6 +f 22/54/11 29/55/9 21/56/9 +f 20/57/12 27/58/7 19/59/7 +f 18/60/13 25/61/8 17/62/8 +f 17/62/8 32/63/10 24/51/10 +f 23/53/6 30/64/11 22/54/11 +f 21/56/9 28/65/12 20/57/12 +f 19/66/7 26/67/13 18/60/13 +f 42/68/13 49/69/8 41/70/8 +f 41/71/8 56/72/10 48/73/10 +f 47/74/6 54/75/11 46/76/11 +f 45/77/9 52/78/12 44/79/12 +f 43/80/7 50/81/13 42/68/13 +f 48/73/10 55/82/6 47/74/6 +f 46/76/11 53/83/9 45/77/9 +f 44/79/12 51/84/7 43/80/7 +f 24/51/10 32/63/10 31/52/6 +f 22/54/11 30/64/11 29/55/9 +f 20/57/12 28/65/12 27/58/7 +f 18/60/13 26/67/13 25/61/8 +f 17/62/8 25/61/8 32/63/10 +f 23/53/6 31/52/6 30/64/11 +f 21/56/9 29/55/9 28/65/12 +f 19/66/7 27/85/7 26/67/13 +f 42/68/13 50/81/13 49/69/8 +f 41/71/8 49/86/8 56/72/10 +f 47/74/6 55/82/6 54/75/11 +f 45/77/9 53/83/9 52/78/12 +f 43/80/7 51/84/7 50/81/13 +f 48/73/10 56/72/10 55/82/6 +f 46/76/11 54/75/11 53/83/9 +f 44/79/12 52/78/12 51/84/7 +o Body +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.250000 1.000000 0.500000 +v 1.250000 1.000000 0.500000 +v -1.250000 1.000000 -0.500000 +v 1.250000 1.000000 -0.500000 +v 0.500000 1.000000 1.250000 +v 0.500000 1.000000 -1.250000 +v -0.500000 1.000000 1.250000 +v -0.500000 1.000000 -1.250000 +v -1.250000 1.875000 0.500000 +v 1.250000 1.875000 0.500000 +v -1.250000 1.875000 -0.500000 +v 1.250000 1.875000 -0.500000 +v 0.500000 1.875000 1.250000 +v 0.500000 1.875000 -1.250000 +v -0.500000 1.875000 1.250000 +v -0.500000 1.875000 -1.250000 +v -1.312500 1.875000 0.500000 +v 1.312500 1.875000 0.500000 +v -1.312500 1.875000 -0.500000 +v 1.312500 1.875000 -0.500000 +v 0.500000 1.875000 1.312500 +v 0.500000 1.875000 -1.312500 +v -0.500000 1.875000 1.312500 +v -0.500000 1.875000 -1.312500 +v -1.312500 2.125000 0.500000 +v 1.312500 2.125000 0.500000 +v -1.312500 2.125000 -0.500000 +v 1.312500 2.125000 -0.500000 +v 0.500000 2.125000 1.312500 +v 0.500000 2.125000 -1.312500 +v -0.500000 2.125000 1.312500 +v -0.500000 2.125000 -1.312500 +v -1.250000 2.125000 0.500000 +v 1.250000 2.125000 0.500000 +v -1.250000 2.125000 -0.500000 +v 1.250000 2.125000 -0.500000 +v 0.500000 2.125000 1.250000 +v 0.500000 2.125000 -1.250000 +v -0.500000 2.125000 1.250000 +v -0.500000 2.125000 -1.250000 +v -1.250000 6.000000 0.500000 +v 1.250000 6.000000 0.500000 +v -1.250000 6.000000 -0.500000 +v 1.250000 6.000000 -0.500000 +v 0.500000 6.000000 1.250000 +v 0.500000 6.000000 -1.250000 +v -0.500000 6.000000 1.250000 +v -0.500000 6.000000 -1.250000 +v -1.250000 4.875000 0.500000 +v 1.250000 4.875000 0.500000 +v -1.250000 4.875000 -0.500000 +v 1.250000 4.875000 -0.500000 +v 0.500000 4.875000 1.250000 +v 0.500000 4.875000 -1.250000 +v -0.500000 4.875000 1.250000 +v -0.500000 4.875000 -1.250000 +v -1.312500 4.875000 0.500000 +v 1.312500 4.875000 0.500000 +v -1.312500 4.875000 -0.500000 +v 1.312500 4.875000 -0.500000 +v 0.500000 4.875000 1.312500 +v 0.500000 4.875000 -1.312500 +v -0.500000 4.875000 1.312500 +v -0.500000 4.875000 -1.312500 +v -1.312500 5.125000 0.500000 +v 1.312500 5.125000 0.500000 +v -1.312500 5.125000 -0.500000 +v 1.312500 5.125000 -0.500000 +v 0.500000 5.125000 1.312500 +v 0.500000 5.125000 -1.312500 +v -0.500000 5.125000 1.312500 +v -0.500000 5.125000 -1.312500 +v -1.250000 5.125000 0.500000 +v 1.250000 5.125000 0.500000 +v -1.250000 5.125000 -0.500000 +v 1.250000 5.125000 -0.500000 +v 0.500000 5.125000 1.250000 +v 0.500000 5.125000 -1.250000 +v -0.500000 5.125000 1.250000 +v -0.500000 5.125000 -1.250000 +v -0.312500 6.000000 0.750000 +v 0.312500 6.000000 0.750000 +v -0.312500 6.000000 -0.750000 +v 0.312500 6.000000 -0.750000 +v 0.750000 6.000000 0.312500 +v 0.750000 6.000000 -0.312500 +v -0.750000 6.000000 0.312500 +v -0.750000 6.000000 -0.312500 +v -0.312500 6.500000 0.750000 +v 0.312500 6.500000 0.750000 +v 0.312500 6.500000 -0.750000 +v -0.312500 6.500000 -0.750000 +v 0.750000 6.500000 0.312500 +v 0.750000 6.500000 -0.312500 +v -0.750000 6.500000 -0.312500 +v -0.750000 6.500000 0.312500 +v -0.250000 6.500000 0.625000 +v 0.250000 6.500000 0.625000 +v -0.250000 6.500000 -0.625000 +v 0.250000 6.500000 -0.625000 +v 0.625000 6.500000 0.250000 +v 0.625000 6.500000 -0.250000 +v -0.625000 6.500000 0.250000 +v -0.625000 6.500000 -0.250000 +v -0.250000 6.250000 0.625000 +v 0.250000 6.250000 0.625000 +v 0.250000 6.250000 -0.625000 +v -0.250000 6.250000 -0.625000 +v 0.625000 6.250000 0.250000 +v 0.625000 6.250000 -0.250000 +v -0.625000 6.250000 -0.250000 +v -0.625000 6.250000 0.250000 +v -0.375000 2.375000 1.250000 +v 0.375000 2.375000 1.250000 +v -0.375000 4.625000 1.250000 +v 0.375000 4.625000 1.250000 +v 0.375000 2.375000 -1.250000 +v -0.375000 2.375000 -1.250000 +v 0.375000 4.625000 -1.250000 +v -0.375000 4.625000 -1.250000 +v 1.250000 2.375000 0.375000 +v 1.250000 2.375000 -0.375000 +v 1.250000 4.625000 0.375000 +v 1.250000 4.625000 -0.375000 +v -1.250000 2.375000 -0.375000 +v -1.250000 2.375000 0.375000 +v -1.250000 4.625000 -0.375000 +v -1.250000 4.625000 0.375000 +v -0.375000 2.375000 0.937500 +v 0.375000 2.375000 0.937500 +v -0.375000 2.375000 -0.937500 +v 0.375000 2.375000 -0.937500 +v -0.375000 4.625000 0.937500 +v 0.375000 4.625000 0.937500 +v -0.375000 4.625000 -0.937500 +v 0.375000 4.625000 -0.937500 +v -0.937500 2.375000 -0.375000 +v -0.937500 2.375000 0.375000 +v -0.937500 4.625000 -0.375000 +v -0.937500 4.625000 0.375000 +v 0.937500 2.375000 0.375000 +v 0.937500 2.375000 -0.375000 +v 0.937500 4.625000 0.375000 +v 0.937500 4.625000 -0.375000 +v -0.375000 1.875000 0.937500 +v 0.375000 1.875000 0.937500 +v -0.375000 1.875000 -0.937500 +v 0.375000 1.875000 -0.937500 +v -0.937500 1.875000 -0.375000 +v -0.937500 1.875000 0.375000 +v 0.937500 1.875000 0.375000 +v 0.937500 1.875000 -0.375000 +v -0.375000 5.125000 0.937500 +v 0.375000 5.125000 0.937500 +v -0.375000 5.125000 -0.937500 +v 0.375000 5.125000 -0.937500 +v -0.937500 5.125000 -0.375000 +v -0.937500 5.125000 0.375000 +v 0.937500 5.125000 0.375000 +v 0.937500 5.125000 -0.375000 +v 1.281631 1.000000 0.839689 +v 1.193243 1.000000 0.803078 +v 1.104854 1.000000 0.839689 +v 1.068243 1.000000 0.928078 +v 1.104854 1.000000 1.016466 +v 1.193243 1.000000 1.053077 +v 1.281631 1.000000 1.016466 +v 1.318243 1.000000 0.928078 +v 1.281631 6.000000 0.839689 +v 1.193243 6.000000 0.803078 +v 1.104854 6.000000 0.839689 +v 1.068243 6.000000 0.928078 +v 1.104854 6.000000 1.016466 +v 1.193243 6.000000 1.053077 +v 1.281631 6.000000 1.016466 +v 1.318243 6.000000 0.928078 +v 1.255743 6.088388 0.813801 +v 1.185660 6.025888 0.795495 +v 1.060660 6.025888 0.920495 +v 1.078966 6.088388 0.990578 +v 1.149049 6.150888 1.008883 +v 1.229854 6.176776 0.964689 +v 1.274049 6.150888 0.883883 +v 1.193243 6.125000 0.751301 +v 1.167354 6.036611 0.777189 +v 1.042355 6.036611 0.902189 +v 1.016466 6.125000 0.928078 +v 1.042355 6.213388 0.902189 +v 1.104854 6.250000 0.839689 +v 1.167354 6.213388 0.777189 +v 0.662913 6.000000 0.397748 +v 0.751301 6.125000 0.309359 +v 0.725412 6.036611 0.335248 +v 0.600413 6.036611 0.460248 +v 0.574524 6.125000 0.486136 +v 0.600413 6.213388 0.460248 +v 0.662912 6.250000 0.397748 +v 0.725412 6.213388 0.335248 +v 1.016466 1.000000 1.104855 +v 0.928078 1.000000 1.068243 +v 0.839689 1.000000 1.104855 +v 0.803078 1.000000 1.193243 +v 0.839689 1.000000 1.281631 +v 0.928078 1.000000 1.318243 +v 1.016466 1.000000 1.281631 +v 1.053078 1.000000 1.193243 +v 1.016466 6.000000 1.104855 +v 0.928078 6.000000 1.068243 +v 0.839689 6.000000 1.104855 +v 0.803078 6.000000 1.193243 +v 0.839689 6.000000 1.281631 +v 0.928078 6.000000 1.318243 +v 1.016466 6.000000 1.281631 +v 1.053078 6.000000 1.193243 +v 0.990578 6.088388 1.078966 +v 0.920495 6.025888 1.060660 +v 0.795495 6.025888 1.185660 +v 0.813801 6.088388 1.255743 +v 0.883884 6.150888 1.274049 +v 0.964689 6.176776 1.229855 +v 1.008883 6.150888 1.149049 +v 0.928078 6.125000 1.016466 +v 0.902189 6.036611 1.042354 +v 0.777189 6.036611 1.167354 +v 0.751301 6.125000 1.193243 +v 0.777189 6.213388 1.167354 +v 0.839689 6.250000 1.104854 +v 0.902189 6.213388 1.042354 +v 0.397748 6.000000 0.662912 +v 0.486136 6.125000 0.574524 +v 0.460248 6.036611 0.600412 +v 0.335248 6.036611 0.725412 +v 0.309359 6.125000 0.751301 +v 0.335248 6.213388 0.725412 +v 0.397748 6.250000 0.662912 +v 0.460248 6.213388 0.600412 +v 1.125000 1.000000 0.750000 +v 0.937500 1.000000 0.800241 +v 0.800241 1.000000 0.937500 +v 0.750000 1.000000 1.125000 +v 0.800241 1.000000 1.312500 +v 0.937500 1.000000 1.449759 +v 1.125000 1.000000 1.500000 +v 1.312500 1.000000 1.449759 +v 1.449759 1.000000 1.312500 +v 1.500000 1.000000 1.125000 +v 1.449760 1.000000 0.937500 +v 1.312500 1.000000 0.800241 +v 1.125000 2.375000 0.750000 +v 0.937500 2.375000 0.800241 +v 0.800241 2.375000 0.937500 +v 0.750000 2.375000 1.125000 +v 0.800241 2.375000 1.312500 +v 0.937500 2.375000 1.449759 +v 1.125000 2.375000 1.500000 +v 1.312500 2.375000 1.449759 +v 1.449759 2.375000 1.312500 +v 1.500000 2.375000 1.125000 +v 1.449760 2.375000 0.937500 +v 1.312500 2.375000 0.800241 +v 1.125000 2.699759 0.937500 +v 1.125000 2.562500 0.800241 +v 1.218750 2.699759 0.962620 +v 1.287380 2.562500 0.843750 +v 1.125000 2.750000 1.125000 +v 1.287380 2.699759 1.031250 +v 1.406250 2.562500 0.962620 +v 1.312500 2.699759 1.125000 +v 1.449759 2.562500 1.125000 +v 1.287380 2.699759 1.218750 +v 1.406250 2.562500 1.287380 +v 1.218750 2.699759 1.287380 +v 1.287380 2.562500 1.406250 +v 1.125000 2.699759 1.312500 +v 1.125000 2.562500 1.449759 +v 1.031250 2.699759 1.287380 +v 0.962620 2.562500 1.406250 +v 0.962620 2.699759 1.218750 +v 0.843750 2.562500 1.287380 +v 0.937500 2.699759 1.125000 +v 0.800241 2.562500 1.125000 +v 0.962620 2.699759 1.031250 +v 0.843750 2.562500 0.962620 +v 1.031250 2.699759 0.962620 +v 0.962620 2.562500 0.843750 +v 1.458408 4.375000 0.928078 +v 0.928078 4.375000 1.458407 +v 1.458408 3.625000 0.928078 +v 0.928078 3.625000 1.458407 +v 1.104854 4.375000 0.574524 +v 0.574524 4.375000 1.104854 +v 1.104854 3.625000 0.574524 +v 0.574524 3.625000 1.104854 +v -1.125000 2.375000 -0.375000 +v -1.125000 2.375000 0.375000 +v -1.125000 4.625000 -0.375000 +v -1.125000 4.625000 0.375000 +v 1.125000 2.375000 0.375000 +v 1.125000 2.375000 -0.375000 +v 1.125000 4.625000 0.375000 +v 1.125000 4.625000 -0.375000 +v -0.375000 2.375000 1.125000 +v 0.375000 2.375000 1.125000 +v -0.375000 4.624999 1.125000 +v 0.375000 4.624999 1.125000 +v 0.375000 2.375000 -1.125000 +v -0.375000 2.375000 -1.125000 +v 0.375000 4.624999 -1.125000 +v -0.375000 4.624999 -1.125000 +v 0.312500 1.000000 1.500000 +v 0.437500 1.000000 1.500000 +v 0.312500 1.000000 1.375000 +v 0.437500 1.000000 1.375000 +v 0.312500 6.125000 1.375000 +v 0.312500 6.125000 1.500000 +v 0.437500 6.125000 1.500000 +v 0.437500 6.125000 1.375000 +v 0.312500 6.250000 1.375000 +v 0.437500 6.250000 1.375000 +v 0.437500 6.125000 1.000000 +v 0.312500 6.125000 1.000000 +v 0.437500 6.250000 1.000000 +v 0.312500 6.250000 1.000000 +v 0.437500 6.125000 0.875000 +v 0.312500 6.125000 0.875000 +v 0.437500 6.000000 1.000000 +v 0.312500 6.000000 1.000000 +v 0.437500 6.000000 0.875000 +v 0.312500 6.000000 0.875000 +v -0.312500 1.312500 1.468750 +v 0.312500 1.312500 1.468750 +v -0.312500 1.312500 1.406250 +v 0.312500 1.312500 1.406250 +v -0.312500 1.437500 1.406250 +v -0.312500 1.437500 1.468750 +v 0.312500 1.437500 1.468750 +v 0.312500 1.437500 1.406250 +v -0.437500 1.000000 1.500000 +v -0.312500 1.000000 1.500000 +v -0.437500 1.000000 1.375000 +v -0.312500 1.000000 1.375000 +v -0.437500 6.125000 1.375000 +v -0.437500 6.125000 1.500000 +v -0.312500 6.125000 1.500000 +v -0.312500 6.125000 1.375000 +v -0.437500 6.250000 1.375000 +v -0.312500 6.250000 1.375000 +v -0.312500 6.125000 1.000000 +v -0.437500 6.125000 1.000000 +v -0.312500 6.250000 1.000000 +v -0.437500 6.250000 1.000000 +v -0.312500 6.125000 0.875000 +v -0.437500 6.125000 0.875000 +v -0.312500 6.000000 1.000000 +v -0.437500 6.000000 1.000000 +v -0.312500 6.000000 0.875000 +v -0.437500 6.000000 0.875000 +v -0.312500 1.812500 1.468750 +v 0.312500 1.812500 1.468750 +v -0.312500 1.812500 1.406250 +v 0.312500 1.812500 1.406250 +v -0.312500 1.937500 1.406250 +v -0.312500 1.937500 1.468750 +v 0.312500 1.937500 1.468750 +v 0.312500 1.937500 1.406250 +v -0.312500 2.312500 1.468750 +v 0.312500 2.312500 1.468750 +v -0.312500 2.312500 1.406250 +v 0.312500 2.312500 1.406250 +v -0.312500 2.437500 1.406250 +v -0.312500 2.437500 1.468750 +v 0.312500 2.437500 1.468750 +v 0.312500 2.437500 1.406250 +v -0.312500 2.812500 1.468750 +v 0.312500 2.812500 1.468750 +v -0.312500 2.812500 1.406250 +v 0.312500 2.812500 1.406250 +v -0.312500 2.937500 1.406250 +v -0.312500 2.937500 1.468750 +v 0.312500 2.937500 1.468750 +v 0.312500 2.937500 1.406250 +v -0.312500 3.312500 1.468750 +v 0.312500 3.312500 1.468750 +v -0.312500 3.312500 1.406250 +v 0.312500 3.312500 1.406250 +v -0.312500 3.437500 1.406250 +v -0.312500 3.437500 1.468750 +v 0.312500 3.437500 1.468750 +v 0.312500 3.437500 1.406250 +v -0.312500 3.812500 1.468750 +v 0.312500 3.812500 1.468750 +v -0.312500 3.812500 1.406250 +v 0.312500 3.812500 1.406250 +v -0.312500 3.937500 1.406250 +v -0.312500 3.937500 1.468750 +v 0.312500 3.937500 1.468750 +v 0.312500 3.937500 1.406250 +v -0.312500 4.312500 1.468750 +v 0.312500 4.312500 1.468750 +v -0.312500 4.312500 1.406250 +v 0.312500 4.312500 1.406250 +v -0.312500 4.437500 1.406250 +v -0.312500 4.437500 1.468750 +v 0.312500 4.437500 1.468750 +v 0.312500 4.437500 1.406250 +v -0.312500 4.812500 1.468750 +v 0.312500 4.812500 1.468750 +v -0.312500 4.812500 1.406250 +v 0.312500 4.812500 1.406250 +v -0.312500 4.937500 1.406250 +v -0.312500 4.937500 1.468750 +v 0.312500 4.937500 1.468750 +v 0.312500 4.937500 1.406250 +v -0.312500 5.312500 1.468750 +v 0.312500 5.312500 1.468750 +v -0.312500 5.312500 1.406250 +v 0.312500 5.312500 1.406250 +v -0.312500 5.437500 1.406250 +v -0.312500 5.437500 1.468750 +v 0.312500 5.437500 1.468750 +v 0.312500 5.437500 1.406250 +v -0.312500 5.812500 1.468750 +v 0.312500 5.812500 1.468750 +v -0.312500 5.812500 1.406250 +v 0.312500 5.812500 1.406250 +v -0.312500 5.937500 1.406250 +v -0.312500 5.937500 1.468750 +v 0.312500 5.937500 1.468750 +v 0.312500 5.937500 1.406250 +v 1.125000 1.000000 -1.500000 +v 0.937500 1.000000 -1.449759 +v 0.800241 1.000000 -1.312500 +v 0.750000 1.000000 -1.125000 +v 0.800241 1.000000 -0.937500 +v 0.937500 1.000000 -0.800241 +v 1.125000 1.000000 -0.750000 +v 1.312500 1.000000 -0.800241 +v 1.449759 1.000000 -0.937500 +v 1.500000 1.000000 -1.125000 +v 1.449760 1.000000 -1.312500 +v 1.312500 1.000000 -1.449759 +v 1.125000 2.375000 -1.500000 +v 0.937500 2.375000 -1.449759 +v 0.800241 2.375000 -1.312500 +v 0.750000 2.375000 -1.125000 +v 0.800241 2.375000 -0.937500 +v 0.937500 2.375000 -0.800241 +v 1.125000 2.375000 -0.750000 +v 1.312500 2.375000 -0.800241 +v 1.449759 2.375000 -0.937500 +v 1.500000 2.375000 -1.125000 +v 1.449760 2.375000 -1.312500 +v 1.312500 2.375000 -1.449759 +v 1.125000 2.699759 -1.312500 +v 1.125000 2.562500 -1.449759 +v 1.218750 2.699759 -1.287380 +v 1.287380 2.562500 -1.406250 +v 1.125000 2.750000 -1.125000 +v 1.287380 2.699759 -1.218750 +v 1.406250 2.562500 -1.287380 +v 1.312500 2.699759 -1.125000 +v 1.449759 2.562500 -1.125000 +v 1.287380 2.699759 -1.031250 +v 1.406250 2.562500 -0.962620 +v 1.218750 2.699759 -0.962620 +v 1.287380 2.562500 -0.843750 +v 1.125000 2.699759 -0.937500 +v 1.125000 2.562500 -0.800241 +v 1.031250 2.699759 -0.962620 +v 0.962620 2.562500 -0.843750 +v 0.962620 2.699759 -1.031250 +v 0.843750 2.562500 -0.962620 +v 0.937500 2.699759 -1.125000 +v 0.800241 2.562500 -1.125000 +v 0.962620 2.699759 -1.218750 +v 0.843750 2.562500 -1.287380 +v 1.031250 2.699759 -1.287380 +v 0.962620 2.562500 -1.406250 +v -1.125000 1.000000 0.750000 +v -1.312500 1.000000 0.800241 +v -1.449759 1.000000 0.937500 +v -1.500000 1.000000 1.125000 +v -1.449759 1.000000 1.312500 +v -1.312500 1.000000 1.449759 +v -1.125000 1.000000 1.500000 +v -0.937500 1.000000 1.449759 +v -0.800241 1.000000 1.312500 +v -0.750000 1.000000 1.125000 +v -0.800240 1.000000 0.937500 +v -0.937500 1.000000 0.800241 +v -1.125000 2.375000 0.750000 +v -1.312500 2.375000 0.800241 +v -1.449759 2.375000 0.937500 +v -1.500000 2.375000 1.125000 +v -1.449759 2.375000 1.312500 +v -1.312500 2.375000 1.449759 +v -1.125000 2.375000 1.500000 +v -0.937500 2.375000 1.449759 +v -0.800241 2.375000 1.312500 +v -0.750000 2.375000 1.125000 +v -0.800240 2.375000 0.937500 +v -0.937500 2.375000 0.800241 +v -1.125000 2.699759 0.937500 +v -1.125000 2.562500 0.800241 +v -1.031250 2.699759 0.962620 +v -0.962620 2.562500 0.843750 +v -1.125000 2.750000 1.125000 +v -0.962620 2.699759 1.031250 +v -0.843750 2.562500 0.962620 +v -0.937500 2.699759 1.125000 +v -0.800241 2.562500 1.125000 +v -0.962620 2.699759 1.218750 +v -0.843750 2.562500 1.287380 +v -1.031250 2.699759 1.287380 +v -0.962620 2.562500 1.406250 +v -1.125000 2.699759 1.312500 +v -1.125000 2.562500 1.449759 +v -1.218750 2.699759 1.287380 +v -1.287380 2.562500 1.406250 +v -1.287380 2.699759 1.218750 +v -1.406250 2.562500 1.287380 +v -1.312500 2.699759 1.125000 +v -1.449759 2.562500 1.125000 +v -1.287380 2.699759 1.031250 +v -1.406250 2.562500 0.962620 +v -1.218750 2.699759 0.962620 +v -1.287380 2.562500 0.843750 +v -1.125000 1.000000 -1.500000 +v -1.312500 1.000000 -1.449759 +v -1.449759 1.000000 -1.312500 +v -1.500000 1.000000 -1.125000 +v -1.449759 1.000000 -0.937500 +v -1.312500 1.000000 -0.800241 +v -1.125000 1.000000 -0.750000 +v -0.937500 1.000000 -0.800241 +v -0.800241 1.000000 -0.937500 +v -0.750000 1.000000 -1.125000 +v -0.800240 1.000000 -1.312500 +v -0.937500 1.000000 -1.449759 +v -1.125000 2.375000 -1.500000 +v -1.312500 2.375000 -1.449759 +v -1.449759 2.375000 -1.312500 +v -1.500000 2.375000 -1.125000 +v -1.449759 2.375000 -0.937500 +v -1.312500 2.375000 -0.800241 +v -1.125000 2.375000 -0.750000 +v -0.937500 2.375000 -0.800241 +v -0.800241 2.375000 -0.937500 +v -0.750000 2.375000 -1.125000 +v -0.800240 2.375000 -1.312500 +v -0.937500 2.375000 -1.449759 +v -1.125000 2.699759 -1.312500 +v -1.125000 2.562500 -1.449759 +v -1.031250 2.699759 -1.287380 +v -0.962620 2.562500 -1.406250 +v -1.125000 2.750000 -1.125000 +v -0.962620 2.699759 -1.218750 +v -0.843750 2.562500 -1.287380 +v -0.937500 2.699759 -1.125000 +v -0.800241 2.562500 -1.125000 +v -0.962620 2.699759 -1.031250 +v -0.843750 2.562500 -0.962620 +v -1.031250 2.699759 -0.962620 +v -0.962620 2.562500 -0.843750 +v -1.125000 2.699759 -0.937500 +v -1.125000 2.562500 -0.800241 +v -1.218750 2.699759 -0.962620 +v -1.287380 2.562500 -0.843750 +v -1.287380 2.699759 -1.031250 +v -1.406250 2.562500 -0.962620 +v -1.312500 2.699759 -1.125000 +v -1.449759 2.562500 -1.125000 +v -1.287380 2.699759 -1.218750 +v -1.406250 2.562500 -1.287380 +v -1.218750 2.699759 -1.287380 +v -1.287380 2.562500 -1.406250 +v -1.281631 1.000000 -0.839689 +v -1.193243 1.000000 -0.803078 +v -1.104854 1.000000 -0.839689 +v -1.068243 1.000000 -0.928078 +v -1.104854 1.000000 -1.016466 +v -1.193243 1.000000 -1.053077 +v -1.281631 1.000000 -1.016466 +v -1.318243 1.000000 -0.928078 +v -1.281631 6.000000 -0.839689 +v -1.193243 6.000000 -0.803078 +v -1.104854 6.000000 -0.839689 +v -1.068243 6.000000 -0.928078 +v -1.104854 6.000000 -1.016466 +v -1.193243 6.000000 -1.053077 +v -1.281631 6.000000 -1.016466 +v -1.318243 6.000000 -0.928078 +v -1.255743 6.088388 -0.813801 +v -1.185660 6.025888 -0.795495 +v -1.060660 6.025888 -0.920495 +v -1.078966 6.088388 -0.990578 +v -1.149049 6.150888 -1.008883 +v -1.229854 6.176776 -0.964689 +v -1.274049 6.150888 -0.883883 +v -1.193243 6.125000 -0.751301 +v -1.167355 6.036611 -0.777189 +v -1.042355 6.036611 -0.902189 +v -1.016466 6.125000 -0.928078 +v -1.042355 6.213388 -0.902189 +v -1.104855 6.250000 -0.839689 +v -1.167355 6.213388 -0.777189 +v -0.662913 6.000000 -0.397747 +v -0.751301 6.125000 -0.309359 +v -0.725412 6.036611 -0.335247 +v -0.600413 6.036611 -0.460247 +v -0.574524 6.125000 -0.486136 +v -0.600413 6.213388 -0.460247 +v -0.662912 6.250000 -0.397747 +v -0.725412 6.213388 -0.335247 +v -1.016466 1.000000 -1.104855 +v -0.928078 1.000000 -1.068243 +v -0.839690 1.000000 -1.104855 +v -0.803078 1.000000 -1.193243 +v -0.839690 1.000000 -1.281631 +v -0.928078 1.000000 -1.318243 +v -1.016466 1.000000 -1.281631 +v -1.053078 1.000000 -1.193243 +v -1.016466 6.000000 -1.104855 +v -0.928078 6.000000 -1.068243 +v -0.839690 6.000000 -1.104855 +v -0.803078 6.000000 -1.193243 +v -0.839690 6.000000 -1.281631 +v -0.928078 6.000000 -1.318243 +v -1.016466 6.000000 -1.281631 +v -1.053078 6.000000 -1.193243 +v -0.990578 6.088388 -1.078966 +v -0.920495 6.025888 -1.060660 +v -0.795495 6.025888 -1.185660 +v -0.813801 6.088388 -1.255743 +v -0.883884 6.150888 -1.274049 +v -0.964690 6.176776 -1.229855 +v -1.008883 6.150888 -1.149049 +v -0.928078 6.125000 -1.016466 +v -0.902189 6.036611 -1.042354 +v -0.777189 6.036611 -1.167354 +v -0.751301 6.125000 -1.193243 +v -0.777189 6.213388 -1.167354 +v -0.839689 6.250000 -1.104854 +v -0.902189 6.213388 -1.042354 +v -0.397748 6.000000 -0.662912 +v -0.486136 6.125000 -0.574524 +v -0.460248 6.036611 -0.600412 +v -0.335248 6.036611 -0.725412 +v -0.309359 6.125000 -0.751301 +v -0.335248 6.213388 -0.725412 +v -0.397748 6.250000 -0.662912 +v -0.460248 6.213388 -0.600412 +v -1.458408 4.375000 -0.928078 +v -0.928078 4.375000 -1.458407 +v -1.458408 3.625000 -0.928078 +v -0.928078 3.625000 -1.458407 +v -1.104854 4.375000 -0.574524 +v -0.574524 4.375000 -1.104854 +v -1.104854 3.625000 -0.574524 +v -0.574524 3.625000 -1.104854 +v 0.839689 1.000000 -1.281631 +v 0.803078 1.000000 -1.193243 +v 0.839689 1.000000 -1.104854 +v 0.928078 1.000000 -1.068243 +v 1.016466 1.000000 -1.104854 +v 1.053077 1.000000 -1.193243 +v 1.016466 1.000000 -1.281631 +v 0.928078 1.000000 -1.318243 +v 0.839689 5.999999 -1.281631 +v 0.803078 5.999999 -1.193243 +v 0.839689 5.999999 -1.104854 +v 0.928078 5.999999 -1.068243 +v 1.016466 5.999999 -1.104854 +v 1.053077 5.999999 -1.193243 +v 1.016466 5.999999 -1.281631 +v 0.928078 5.999999 -1.318243 +v 0.813801 6.088387 -1.255743 +v 0.795495 6.025887 -1.185660 +v 0.920495 6.025887 -1.060660 +v 0.990578 6.088387 -1.078966 +v 1.008883 6.150887 -1.149049 +v 0.964689 6.176776 -1.229854 +v 0.883883 6.150887 -1.274049 +v 0.751301 6.124999 -1.193243 +v 0.777189 6.036611 -1.167354 +v 0.902189 6.036611 -1.042355 +v 0.928078 6.124999 -1.016466 +v 0.902189 6.213387 -1.042355 +v 0.839689 6.249999 -1.104854 +v 0.777189 6.213387 -1.167354 +v 0.397747 5.999999 -0.662913 +v 0.309359 6.124999 -0.751301 +v 0.335247 6.036611 -0.725412 +v 0.460247 6.036611 -0.600413 +v 0.486136 6.124999 -0.574524 +v 0.460247 6.213387 -0.600413 +v 0.397747 6.249999 -0.662912 +v 0.335247 6.213387 -0.725412 +v 1.104855 1.000000 -1.016466 +v 1.068243 1.000000 -0.928078 +v 1.104855 1.000000 -0.839689 +v 1.193243 1.000000 -0.803078 +v 1.281631 1.000000 -0.839689 +v 1.318243 1.000000 -0.928078 +v 1.281631 1.000000 -1.016466 +v 1.193243 1.000000 -1.053078 +v 1.104855 5.999999 -1.016466 +v 1.068243 5.999999 -0.928078 +v 1.104855 5.999999 -0.839689 +v 1.193243 5.999999 -0.803078 +v 1.281631 5.999999 -0.839689 +v 1.318243 5.999999 -0.928078 +v 1.281631 5.999999 -1.016466 +v 1.193243 5.999999 -1.053078 +v 1.078966 6.088387 -0.990578 +v 1.060660 6.025887 -0.920495 +v 1.185660 6.025887 -0.795495 +v 1.255743 6.088387 -0.813801 +v 1.274049 6.150887 -0.883884 +v 1.229855 6.176776 -0.964689 +v 1.149049 6.150887 -1.008883 +v 1.016466 6.124999 -0.928078 +v 1.042354 6.036611 -0.902189 +v 1.167354 6.036611 -0.777189 +v 1.193243 6.124999 -0.751301 +v 1.167354 6.213387 -0.777189 +v 1.104854 6.249999 -0.839689 +v 1.042354 6.213387 -0.902189 +v 0.662912 5.999999 -0.397748 +v 0.574524 6.124999 -0.486136 +v 0.600412 6.036611 -0.460248 +v 0.725412 6.036611 -0.335248 +v 0.751301 6.124999 -0.309359 +v 0.725412 6.213387 -0.335248 +v 0.662912 6.249999 -0.397748 +v 0.600412 6.213387 -0.460248 +v 0.928078 4.375000 -1.458408 +v 1.458407 4.375000 -0.928078 +v 0.928078 3.625000 -1.458408 +v 1.458407 3.625000 -0.928078 +v 0.574524 4.375000 -1.104854 +v 1.104854 4.375000 -0.574524 +v 0.574524 3.625000 -1.104854 +v 1.104854 3.625000 -0.574524 +v -0.839689 1.000000 1.281631 +v -0.803078 1.000000 1.193243 +v -0.839689 1.000000 1.104854 +v -0.928078 1.000000 1.068243 +v -1.016466 1.000000 1.104854 +v -1.053077 1.000000 1.193243 +v -1.016466 1.000000 1.281631 +v -0.928078 1.000000 1.318243 +v -0.839689 5.999999 1.281631 +v -0.803078 5.999999 1.193243 +v -0.839689 5.999999 1.104854 +v -0.928078 5.999999 1.068243 +v -1.016466 5.999999 1.104854 +v -1.053077 5.999999 1.193243 +v -1.016466 5.999999 1.281631 +v -0.928078 5.999999 1.318243 +v -0.813801 6.088387 1.255743 +v -0.795495 6.025887 1.185660 +v -0.920495 6.025887 1.060660 +v -0.990578 6.088387 1.078966 +v -1.008883 6.150887 1.149049 +v -0.964689 6.176776 1.229854 +v -0.883883 6.150887 1.274048 +v -0.751301 6.124999 1.193243 +v -0.777189 6.036611 1.167355 +v -0.902189 6.036611 1.042355 +v -0.928078 6.124999 1.016466 +v -0.902189 6.213387 1.042355 +v -0.839689 6.249999 1.104855 +v -0.777189 6.213387 1.167355 +v -0.397747 5.999999 0.662913 +v -0.309359 6.124999 0.751301 +v -0.335247 6.036611 0.725412 +v -0.460247 6.036611 0.600413 +v -0.486136 6.124999 0.574524 +v -0.460247 6.213387 0.600413 +v -0.397747 6.249999 0.662912 +v -0.335247 6.213387 0.725412 +v -1.104855 1.000000 1.016466 +v -1.068243 1.000000 0.928078 +v -1.104855 1.000000 0.839690 +v -1.193243 1.000000 0.803078 +v -1.281631 1.000000 0.839690 +v -1.318243 1.000000 0.928078 +v -1.281631 1.000000 1.016466 +v -1.193243 1.000000 1.053078 +v -1.104855 5.999999 1.016466 +v -1.068243 5.999999 0.928078 +v -1.104855 5.999999 0.839690 +v -1.193243 5.999999 0.803078 +v -1.281631 5.999999 0.839690 +v -1.318243 5.999999 0.928078 +v -1.281631 5.999999 1.016466 +v -1.193243 5.999999 1.053078 +v -1.078966 6.088387 0.990578 +v -1.060660 6.025887 0.920496 +v -1.185660 6.025887 0.795496 +v -1.255743 6.088387 0.813801 +v -1.274049 6.150887 0.883884 +v -1.229855 6.176776 0.964690 +v -1.149049 6.150887 1.008883 +v -1.016466 6.124999 0.928078 +v -1.042354 6.036611 0.902189 +v -1.167354 6.036611 0.777189 +v -1.193243 6.124999 0.751301 +v -1.167354 6.213387 0.777189 +v -1.104854 6.249999 0.839689 +v -1.042354 6.213387 0.902189 +v -0.662912 5.999999 0.397748 +v -0.574524 6.124999 0.486136 +v -0.600412 6.036611 0.460248 +v -0.725412 6.036611 0.335248 +v -0.751301 6.124999 0.309359 +v -0.725412 6.213387 0.335248 +v -0.662912 6.249999 0.397748 +v -0.600412 6.213387 0.460248 +v -0.928078 4.375000 1.458408 +v -1.458407 4.375000 0.928078 +v -0.928078 3.625000 1.458408 +v -1.458407 3.625000 0.928078 +v -0.574524 4.375000 1.104854 +v -1.104854 4.375000 0.574524 +v -0.574524 3.625000 1.104854 +v -1.104854 3.625000 0.574524 +vt 0.240000 0.089888 +vt 0.000000 0.359551 +vt 0.000000 0.089888 +vt -0.000000 0.089888 +vt 0.240000 0.359551 +vt -0.000000 0.359551 +vt 0.240000 -0.000000 +vt 0.000000 0.089888 +vt 0.000000 -0.000000 +vt 0.240000 0.000000 +vt -0.000000 0.000000 +vt 0.240000 -0.000000 +vt 0.000000 0.089888 +vt 0.000000 -0.000000 +vt 0.240000 -0.000000 +vt 0.000000 0.089888 +vt 0.000000 -0.000000 +vt 0.720000 0.078652 +vt 0.640000 0.000000 +vt 0.720000 -0.000000 +vt 0.320000 0.078652 +vt 0.240000 -0.000000 +vt 0.320000 -0.000000 +vt 0.560000 -0.000000 +vt 0.480000 0.078652 +vt 0.480000 0.000000 +vt 0.400000 0.078652 +vt 0.400000 0.000000 +vt 0.880000 -0.000000 +vt 0.800000 0.078652 +vt 0.800000 0.000000 +vt 0.640000 0.078652 +vt 0.320000 0.084270 +vt 0.880000 0.078652 +vt 0.800000 0.084270 +vt 0.720000 0.084270 +vt 0.400000 0.084270 +vt 0.560000 0.084270 +vt 0.560000 0.078652 +vt 0.240000 0.084270 +vt 0.240000 0.078652 +vt 0.640000 0.084270 +vt 0.480000 0.084270 +vt 0.640000 0.106742 +vt 0.480000 0.106742 +vt 0.320000 0.106742 +vt 0.880000 0.084270 +vt 0.800000 0.106742 +vt 0.720000 0.106742 +vt 0.400000 0.106742 +vt 0.560000 0.106742 +vt 0.240000 0.106742 +vt 0.320000 0.112360 +vt 0.480000 0.112360 +vt 0.640000 0.112360 +vt 0.800000 0.112360 +vt 0.880000 0.106742 +vt 0.400000 0.359551 +vt 0.320000 0.365169 +vt 0.320000 0.359551 +vt 0.880000 0.359551 +vt 0.800000 0.365169 +vt 0.800000 0.359551 +vt 0.720000 0.365169 +vt 0.720000 0.359551 +vt 0.480000 0.359551 +vt 0.400000 0.365169 +vt 0.640000 0.359551 +vt 0.560000 0.365169 +vt 0.560000 0.359551 +vt 0.240000 0.365169 +vt 0.240000 0.359551 +vt 0.640000 0.365169 +vt 0.480000 0.365169 +vt 0.640000 0.387640 +vt 0.480000 0.387640 +vt 0.320000 0.387640 +vt 0.880000 0.365169 +vt 0.800000 0.387640 +vt 0.720000 0.387640 +vt 0.400000 0.387640 +vt 0.560000 0.387640 +vt 0.240000 0.387640 +vt 0.320000 0.393258 +vt 0.480000 0.393258 +vt 0.640000 0.393258 +vt 0.800000 0.393258 +vt 0.880000 0.387640 +vt 0.880000 0.471910 +vt 0.800000 0.471910 +vt 0.240000 0.471910 +vt 0.320000 0.471910 +vt 0.400000 0.393258 +vt 0.400000 0.471910 +vt 0.480000 0.471910 +vt 0.560000 0.471910 +vt 0.640000 0.471910 +vt 0.720000 0.393258 +vt 0.720000 0.471910 +vt 0.410000 0.134831 +vt 0.400000 0.112360 +vt 0.470000 0.337079 +vt 0.560000 0.112360 +vt 0.720000 0.112360 +vt 0.470000 0.134831 +vt 0.880000 0.112360 +vt 0.780000 0.808989 +vt 0.730000 0.853933 +vt 0.730000 0.808989 +vt 0.305000 0.516854 +vt 0.385000 0.516854 +vt 0.335000 0.516854 +vt 0.465000 0.516854 +vt 0.545000 0.516854 +vt 0.625000 0.516854 +vt 0.705000 0.516854 +vt 0.655000 0.516854 +vt 0.785000 0.516854 +vt 0.865000 0.516854 +vt 0.625000 0.865169 +vt 0.580000 0.853933 +vt 0.630000 0.853933 +vt 0.980000 0.808989 +vt 0.930000 0.853933 +vt 0.930000 0.808989 +vt 0.830000 0.808989 +vt 0.780000 0.853933 +vt 0.680000 0.853933 +vt 0.680000 0.808989 +vt 0.880000 0.808989 +vt 0.830000 0.853933 +vt 0.630000 0.808989 +vt 0.580000 0.808989 +vt 0.880000 0.853933 +vt 0.825000 0.865169 +vt 0.925000 0.865169 +vt 0.725000 0.865169 +vt 0.735000 0.865169 +vt 0.835000 0.865169 +vt 0.975000 0.865169 +vt 0.980000 0.853933 +vt 0.675000 0.865169 +vt 0.585000 0.887640 +vt 0.585000 0.865169 +vt 0.625000 1.000000 +vt 0.585000 1.000000 +vt 0.625000 0.887640 +vt 0.785000 0.887640 +vt 0.785000 0.865169 +vt 0.935000 0.887640 +vt 0.935000 0.865169 +vt 0.885000 0.887640 +vt 0.885000 0.865169 +vt 0.775000 0.865169 +vt 0.735000 0.887640 +vt 0.685000 0.887640 +vt 0.685000 0.865169 +vt 0.635000 0.887640 +vt 0.635000 0.865169 +vt 0.875000 0.865169 +vt 0.835000 0.887640 +vt 0.410000 0.337079 +vt 0.120000 0.747191 +vt 0.060000 0.775281 +vt 0.060000 0.747191 +vt 0.570000 0.337079 +vt 0.630000 0.337079 +vt 0.630000 0.134831 +vt 0.730000 0.337079 +vt 0.790000 0.337079 +vt 0.730000 0.134831 +vt 0.240000 0.112360 +vt 0.250000 0.337079 +vt 0.310000 0.337079 +vt 0.310000 0.134831 +vt 0.300000 0.573034 +vt 0.360000 0.601124 +vt 0.300000 0.601124 +vt 0.120000 0.601124 +vt 0.060000 0.573034 +vt 0.120000 0.573034 +vt 0.360000 0.747191 +vt 0.300000 0.775281 +vt 0.300000 0.747191 +vt 0.445000 0.337079 +vt 0.435000 0.337079 +vt 0.765000 0.337079 +vt 0.790000 0.134831 +vt 0.755000 0.337079 +vt 0.420000 0.601124 +vt 0.480000 0.573034 +vt 0.480000 0.601124 +vt 0.285000 0.134831 +vt 0.480000 0.747191 +vt 0.420000 0.775281 +vt 0.420000 0.747191 +vt 0.250000 0.134831 +vt 0.275000 0.337079 +vt 0.570000 0.134831 +vt 0.595000 0.337079 +vt 0.180000 0.601124 +vt 0.240000 0.573034 +vt 0.240000 0.601124 +vt 0.605000 0.134831 +vt 0.240000 0.747191 +vt 0.180000 0.775281 +vt 0.180000 0.747191 +vt 0.240000 0.775281 +vt 0.360000 0.573034 +vt 0.360000 0.775281 +vt 0.000000 0.775281 +vt 0.120000 0.775281 +vt 0.180000 0.573034 +vt 0.240000 0.528090 +vt 0.120000 0.528090 +vt 0.180000 0.528090 +vt 0.420000 0.573034 +vt 0.480000 0.528090 +vt -0.000000 0.573034 +vt 0.060000 0.528090 +vt 0.360000 0.528090 +vt 0.420000 0.528090 +vt 0.300000 0.528090 +vt 0.165000 0.477528 +vt 0.015000 0.410112 +vt 0.180000 0.820225 +vt 0.120000 0.820225 +vt 0.300000 0.820225 +vt 0.480000 0.775281 +vt 0.420000 0.820225 +vt 0.000000 0.820225 +vt 0.360000 0.820225 +vt 0.240000 0.820225 +vt 0.060000 0.820225 +vt 0.165000 0.870786 +vt 0.120000 0.988764 +vt 0.345000 0.932584 +vt 0.385000 0.865169 +vt 0.385000 0.932584 +vt 0.445000 0.977528 +vt 0.445000 0.932584 +vt 0.445000 0.865169 +vt 0.485000 0.865169 +vt 0.445000 0.820225 +vt 0.910000 0.741573 +vt 0.850000 0.539326 +vt 0.910000 0.539326 +vt 0.910000 0.741573 +vt 0.850000 0.539326 +vt 0.910000 0.539326 +vt 0.910000 0.741573 +vt 0.850000 0.539326 +vt 0.910000 0.539326 +vt 0.910000 0.741573 +vt 0.850000 0.539326 +vt 0.910000 0.539326 +vt 1.000000 0.471910 +vt 0.990000 0.505618 +vt 0.990000 0.471910 +vt 1.000000 0.000000 +vt 0.990000 0.460674 +vt 0.990000 0.000000 +vt 0.980000 0.000000 +vt 0.970000 0.460674 +vt 0.970000 0.000000 +vt 0.980000 0.460674 +vt 0.960000 0.460674 +vt 0.960000 0.000000 +vt 0.960000 0.471910 +vt 0.970000 0.471910 +vt 0.990000 0.471910 +vt 0.970000 0.516854 +vt 0.960000 0.528090 +vt 0.960000 0.516854 +vt 0.960000 0.505618 +vt 0.960000 0.471910 +vt 0.980000 0.471910 +vt 0.970000 0.505618 +vt 0.980000 0.505618 +vt 0.990000 0.516854 +vt 0.980000 0.516854 +vt 0.970000 0.528090 +vt 1.000000 0.516854 +vt 0.990000 0.528090 +vt 0.990000 0.516854 +vt 0.980000 0.528090 +vt 0.960000 0.516854 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 1.000000 0.471910 +vt 0.990000 0.505618 +vt 0.990000 0.471910 +vt 1.000000 0.000000 +vt 0.990000 0.460674 +vt 0.990000 0.000000 +vt 0.980000 0.000000 +vt 0.970000 0.460674 +vt 0.970000 0.000000 +vt 0.980000 0.460674 +vt 0.960000 0.460674 +vt 0.960000 0.000000 +vt 0.960000 0.471910 +vt 0.970000 0.471910 +vt 0.990000 0.471910 +vt 0.970000 0.516854 +vt 0.960000 0.528090 +vt 0.960000 0.516854 +vt 0.960000 0.505618 +vt 0.960000 0.471910 +vt 0.980000 0.471910 +vt 0.970000 0.505618 +vt 0.980000 0.505618 +vt 0.990000 0.516854 +vt 0.980000 0.516854 +vt 0.970000 0.528090 +vt 1.000000 0.516854 +vt 0.990000 0.528090 +vt 0.990000 0.516854 +vt 0.980000 0.528090 +vt 0.960000 0.516854 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 0.910000 0.539326 +vt 0.960000 0.544944 +vt 0.910000 0.544944 +vt 0.960000 0.556180 +vt 0.910000 0.561798 +vt 0.910000 0.556180 +vt 0.910000 0.573034 +vt 0.960000 0.561798 +vt 0.960000 0.573034 +vt 0.345000 0.932584 +vt 0.385000 0.865169 +vt 0.385000 0.932584 +vt 0.445000 0.977528 +vt 0.445000 0.932584 +vt 0.445000 0.865169 +vt 0.485000 0.865169 +vt 0.445000 0.820225 +vt 0.345000 0.932584 +vt 0.385000 0.865169 +vt 0.385000 0.932584 +vt 0.445000 0.977528 +vt 0.445000 0.932584 +vt 0.445000 0.865169 +vt 0.485000 0.865169 +vt 0.385000 0.820225 +vt 0.345000 0.932584 +vt 0.385000 0.865169 +vt 0.385000 0.932584 +vt 0.445000 0.977528 +vt 0.445000 0.932584 +vt 0.445000 0.865169 +vt 0.485000 0.865169 +vt 0.385000 0.820225 +vt 0.240000 0.359551 +vt 0.240000 0.089888 +vt 0.240000 0.089888 +vt 0.240000 0.089888 +vt 0.240000 0.089888 +vt 0.240000 0.393258 +vt 0.560000 0.393258 +vt 0.880000 0.393258 +vt 0.255000 0.516854 +vt 0.415000 0.516854 +vt 0.495000 0.516854 +vt 0.575000 0.516854 +vt 0.735000 0.516854 +vt 0.815000 0.516854 +vt 0.625000 0.887640 +vt 0.555000 0.966292 +vt 0.555000 0.921348 +vt 0.585000 0.887640 +vt 0.655000 0.921348 +vt 0.655000 0.966292 +vt 0.825000 0.887640 +vt 0.975000 0.887640 +vt 0.925000 0.887640 +vt 0.775000 0.887640 +vt 0.725000 0.887640 +vt 0.675000 0.887640 +vt 0.875000 0.887640 +vt 0.060000 0.601124 +vt 0.445000 0.134831 +vt 0.435000 0.134831 +vt 0.765000 0.134831 +vt 0.755000 0.134831 +vt 0.285000 0.337079 +vt 0.275000 0.134831 +vt 0.595000 0.134831 +vt 0.605000 0.337079 +vt 0.000000 0.528090 +vt 0.060000 0.359551 +vt 0.120000 0.359551 +vt 0.165000 0.410112 +vt 0.015000 0.477528 +vt 0.480000 0.820225 +vt 0.060000 0.988764 +vt 0.015000 0.938202 +vt 0.015000 0.870786 +vt 0.165000 0.938202 +vt 0.345000 0.865169 +vt 0.385000 0.977528 +vt 0.485000 0.932584 +vt 0.385000 0.820225 +vt 0.850000 0.741573 +vt 0.850000 0.741573 +vt 0.850000 0.741573 +vt 0.850000 0.741573 +vt 1.000000 0.505618 +vt 1.000000 0.460674 +vt 1.000000 0.528090 +vt 0.960000 0.539326 +vt 1.000000 0.505618 +vt 1.000000 0.460674 +vt 1.000000 0.528090 +vt 0.960000 0.539326 +vt 0.960000 0.539326 +vt 0.960000 0.539326 +vt 0.960000 0.539326 +vt 0.960000 0.539326 +vt 0.960000 0.539326 +vt 0.960000 0.539326 +vt 0.960000 0.539326 +vt 0.960000 0.539326 +vt 0.345000 0.865169 +vt 0.385000 0.977528 +vt 0.485000 0.932584 +vt 0.385000 0.820225 +vt 0.345000 0.865169 +vt 0.385000 0.977528 +vt 0.485000 0.932584 +vt 0.445000 0.820225 +vt 0.345000 0.865169 +vt 0.385000 0.977528 +vt 0.485000 0.932584 +vt 0.445000 0.820225 +vt 0.930000 -0.000000 +vt 0.920000 0.449438 +vt 0.920000 -0.000000 +vt 0.910000 -0.000000 +vt 0.900000 0.449438 +vt 0.900000 -0.000000 +vt 0.890000 0.000000 +vt 0.880000 0.449438 +vt 0.880000 0.000000 +vt 0.950000 -0.000000 +vt 0.940000 0.449438 +vt 0.940000 0.000000 +vt 0.930000 0.449438 +vt 0.910000 0.449438 +vt 0.890000 0.449438 +vt 0.960000 -0.000000 +vt 0.950000 0.449438 +vt 0.950000 0.460674 +vt 0.940000 0.466292 +vt 0.940000 0.455056 +vt 0.930000 0.466292 +vt 0.910000 0.466292 +vt 0.890000 0.460674 +vt 0.900000 0.466292 +vt 0.890000 0.466292 +vt 0.920000 0.466292 +vt 0.900000 0.455056 +vt 0.920000 0.483146 +vt 0.910000 0.483146 +vt 0.900000 0.477528 +vt 0.950000 0.466292 +vt 0.940000 0.477528 +vt 0.930000 0.483146 +vt 0.890000 0.471910 +vt 0.960000 0.466292 +vt 0.950000 0.471910 +vt 0.880000 0.466292 +vt 0.880000 0.483146 +vt 0.890000 0.539326 +vt 0.880000 0.539326 +vt 0.940000 0.483146 +vt 0.930000 0.539326 +vt 0.960000 0.483146 +vt 0.950000 0.539326 +vt 0.950000 0.483146 +vt 0.910000 0.539326 +vt 0.900000 0.483146 +vt 0.890000 0.483146 +vt 0.920000 0.539326 +vt 0.900000 0.539326 +vt 0.940000 0.539326 +vt 0.930000 -0.000000 +vt 0.920000 0.449438 +vt 0.920000 -0.000000 +vt 0.910000 0.000000 +vt 0.900000 0.449438 +vt 0.900000 0.000000 +vt 0.890000 0.000000 +vt 0.880000 0.449438 +vt 0.880000 -0.000000 +vt 0.950000 -0.000000 +vt 0.940000 0.449438 +vt 0.940000 -0.000000 +vt 0.930000 0.449438 +vt 0.910000 0.449438 +vt 0.890000 0.449438 +vt 0.960000 0.000000 +vt 0.950000 0.449438 +vt 0.940000 0.455056 +vt 0.950000 0.466292 +vt 0.940000 0.466292 +vt 0.930000 0.466292 +vt 0.910000 0.466292 +vt 0.900000 0.455056 +vt 0.890000 0.466292 +vt 0.890000 0.460674 +vt 0.920000 0.466292 +vt 0.900000 0.466292 +vt 0.920000 0.483146 +vt 0.900000 0.477528 +vt 0.940000 0.477528 +vt 0.930000 0.483146 +vt 0.910000 0.483146 +vt 0.890000 0.471910 +vt 0.950000 0.460674 +vt 0.960000 0.466292 +vt 0.950000 0.471910 +vt 0.880000 0.466292 +vt 0.890000 0.483146 +vt 0.880000 0.539326 +vt 0.880000 0.483146 +vt 0.940000 0.539326 +vt 0.930000 0.539326 +vt 0.950000 0.483146 +vt 0.960000 0.539326 +vt 0.950000 0.539326 +vt 0.920000 0.539326 +vt 0.910000 0.539326 +vt 0.900000 0.539326 +vt 0.890000 0.539326 +vt 0.900000 0.483146 +vt 0.940000 0.483146 +vt 0.195000 0.949438 +vt 0.180000 0.820225 +vt 0.195000 0.820225 +vt 0.300000 0.949438 +vt 0.285000 0.820225 +vt 0.300000 0.820225 +vt 0.330000 0.949438 +vt 0.315000 0.820225 +vt 0.330000 0.820225 +vt 0.255000 0.949438 +vt 0.240000 0.820225 +vt 0.255000 0.820225 +vt 0.210000 0.949438 +vt 0.210000 0.820225 +vt 0.345000 0.949438 +vt 0.345000 0.820225 +vt 0.270000 0.949438 +vt 0.270000 0.820225 +vt 0.225000 0.949438 +vt 0.225000 0.820225 +vt 0.180000 0.949438 +vt 0.165000 0.820225 +vt 0.285000 0.949438 +vt 0.315000 0.949438 +vt 0.240000 0.949438 +vt 0.295000 0.983146 +vt 0.290000 1.000000 +vt 0.285000 0.983146 +vt 0.285000 0.966292 +vt 0.300000 0.966292 +vt 0.280000 0.983146 +vt 0.275000 1.000000 +vt 0.270000 0.983146 +vt 0.270000 0.966292 +vt 0.265000 0.983146 +vt 0.260000 1.000000 +vt 0.255000 0.983146 +vt 0.255000 0.966292 +vt 0.250000 0.983146 +vt 0.240000 0.966292 +vt 0.245000 1.000000 +vt 0.240000 0.983146 +vt 0.235000 0.983146 +vt 0.225000 0.966292 +vt 0.230000 1.000000 +vt 0.225000 0.983146 +vt 0.220000 0.983146 +vt 0.210000 0.966292 +vt 0.215000 1.000000 +vt 0.210000 0.983146 +vt 0.205000 0.983146 +vt 0.195000 0.966292 +vt 0.200000 1.000000 +vt 0.195000 0.983146 +vt 0.190000 0.983146 +vt 0.180000 0.966292 +vt 0.185000 1.000000 +vt 0.180000 0.983146 +vt 0.175000 0.983146 +vt 0.170000 1.000000 +vt 0.165000 0.983146 +vt 0.165000 0.966292 +vt 0.340000 0.983146 +vt 0.335000 1.000000 +vt 0.330000 0.983146 +vt 0.330000 0.966292 +vt 0.345000 0.966292 +vt 0.165000 0.949438 +vt 0.325000 0.983146 +vt 0.320000 1.000000 +vt 0.315000 0.983146 +vt 0.315000 0.966292 +vt 0.310000 0.983146 +vt 0.305000 1.000000 +vt 0.300000 0.983146 +vt 0.195000 0.949438 +vt 0.180000 0.820225 +vt 0.195000 0.820225 +vt 0.300000 0.949438 +vt 0.285000 0.820225 +vt 0.300000 0.820225 +vt 0.330000 0.949438 +vt 0.315000 0.820225 +vt 0.330000 0.820225 +vt 0.255000 0.949438 +vt 0.240000 0.820225 +vt 0.255000 0.820225 +vt 0.210000 0.949438 +vt 0.210000 0.820225 +vt 0.345000 0.949438 +vt 0.345000 0.820225 +vt 0.270000 0.949438 +vt 0.270000 0.820225 +vt 0.225000 0.949438 +vt 0.225000 0.820225 +vt 0.180000 0.949438 +vt 0.165000 0.820225 +vt 0.285000 0.949438 +vt 0.315000 0.949438 +vt 0.240000 0.949438 +vt 0.295000 0.983146 +vt 0.290000 1.000000 +vt 0.285000 0.983146 +vt 0.285000 0.966292 +vt 0.300000 0.966292 +vt 0.280000 0.983146 +vt 0.275000 1.000000 +vt 0.270000 0.983146 +vt 0.270000 0.966292 +vt 0.265000 0.983146 +vt 0.260000 1.000000 +vt 0.255000 0.983146 +vt 0.255000 0.966292 +vt 0.250000 0.983146 +vt 0.240000 0.966292 +vt 0.245000 1.000000 +vt 0.240000 0.983146 +vt 0.235000 0.983146 +vt 0.225000 0.966292 +vt 0.230000 1.000000 +vt 0.225000 0.983146 +vt 0.220000 0.983146 +vt 0.210000 0.966292 +vt 0.215000 1.000000 +vt 0.210000 0.983146 +vt 0.195000 0.983146 +vt 0.195000 0.966292 +vt 0.205000 0.983146 +vt 0.200000 1.000000 +vt 0.190000 0.983146 +vt 0.180000 0.966292 +vt 0.185000 1.000000 +vt 0.180000 0.983146 +vt 0.175000 0.983146 +vt 0.170000 1.000000 +vt 0.165000 0.983146 +vt 0.165000 0.966292 +vt 0.340000 0.983146 +vt 0.335000 1.000000 +vt 0.330000 0.983146 +vt 0.330000 0.966292 +vt 0.345000 0.966292 +vt 0.165000 0.949438 +vt 0.325000 0.983146 +vt 0.320000 1.000000 +vt 0.315000 0.983146 +vt 0.315000 0.966292 +vt 0.310000 0.983146 +vt 0.305000 1.000000 +vt 0.300000 0.983146 +vt 0.195000 0.949438 +vt 0.180000 0.820225 +vt 0.195000 0.820225 +vt 0.300000 0.949438 +vt 0.285000 0.820225 +vt 0.300000 0.820225 +vt 0.330000 0.949438 +vt 0.315000 0.820225 +vt 0.330000 0.820225 +vt 0.255000 0.949438 +vt 0.240000 0.820225 +vt 0.255000 0.820225 +vt 0.210000 0.949438 +vt 0.210000 0.820225 +vt 0.345000 0.949438 +vt 0.345000 0.820225 +vt 0.270000 0.949438 +vt 0.270000 0.820225 +vt 0.225000 0.949438 +vt 0.225000 0.820225 +vt 0.180000 0.949438 +vt 0.165000 0.820225 +vt 0.285000 0.949438 +vt 0.315000 0.949438 +vt 0.240000 0.949438 +vt 0.295000 0.983146 +vt 0.290000 1.000000 +vt 0.285000 0.983146 +vt 0.300000 0.966292 +vt 0.285000 0.966292 +vt 0.280000 0.983146 +vt 0.275000 1.000000 +vt 0.270000 0.983146 +vt 0.270000 0.966292 +vt 0.265000 0.983146 +vt 0.260000 1.000000 +vt 0.255000 0.983146 +vt 0.255000 0.966292 +vt 0.250000 0.983146 +vt 0.240000 0.966292 +vt 0.245000 1.000000 +vt 0.240000 0.983146 +vt 0.225000 0.983146 +vt 0.225000 0.966292 +vt 0.235000 0.983146 +vt 0.230000 1.000000 +vt 0.210000 0.983146 +vt 0.210000 0.966292 +vt 0.220000 0.983146 +vt 0.215000 1.000000 +vt 0.205000 0.983146 +vt 0.195000 0.966292 +vt 0.200000 1.000000 +vt 0.195000 0.983146 +vt 0.190000 0.983146 +vt 0.180000 0.966292 +vt 0.185000 1.000000 +vt 0.180000 0.983146 +vt 0.175000 0.983146 +vt 0.170000 1.000000 +vt 0.165000 0.983146 +vt 0.165000 0.966292 +vt 0.340000 0.983146 +vt 0.335000 1.000000 +vt 0.330000 0.983146 +vt 0.330000 0.966292 +vt 0.345000 0.966292 +vt 0.165000 0.949438 +vt 0.325000 0.983146 +vt 0.320000 1.000000 +vt 0.315000 0.983146 +vt 0.315000 0.966292 +vt 0.310000 0.983146 +vt 0.305000 1.000000 +vt 0.300000 0.983146 +vt 0.195000 0.949438 +vt 0.180000 0.820225 +vt 0.195000 0.820225 +vt 0.300000 0.949438 +vt 0.285000 0.820225 +vt 0.300000 0.820225 +vt 0.330000 0.949438 +vt 0.315000 0.820225 +vt 0.330000 0.820225 +vt 0.255000 0.949438 +vt 0.240000 0.820225 +vt 0.255000 0.820225 +vt 0.210000 0.949438 +vt 0.210000 0.820225 +vt 0.345000 0.949438 +vt 0.345000 0.820225 +vt 0.270000 0.949438 +vt 0.270000 0.820225 +vt 0.225000 0.949438 +vt 0.225000 0.820225 +vt 0.180000 0.949438 +vt 0.165000 0.820225 +vt 0.285000 0.949438 +vt 0.315000 0.949438 +vt 0.240000 0.949438 +vt 0.295000 0.983146 +vt 0.290000 1.000000 +vt 0.285000 0.983146 +vt 0.285000 0.966292 +vt 0.300000 0.966292 +vt 0.280000 0.983146 +vt 0.275000 1.000000 +vt 0.270000 0.983146 +vt 0.270000 0.966292 +vt 0.265000 0.983146 +vt 0.260000 1.000000 +vt 0.255000 0.983146 +vt 0.255000 0.966292 +vt 0.240000 0.983146 +vt 0.240000 0.966292 +vt 0.250000 0.983146 +vt 0.245000 1.000000 +vt 0.235000 0.983146 +vt 0.225000 0.966292 +vt 0.230000 1.000000 +vt 0.225000 0.983146 +vt 0.210000 0.983146 +vt 0.210000 0.966292 +vt 0.220000 0.983146 +vt 0.215000 1.000000 +vt 0.205000 0.983146 +vt 0.195000 0.966292 +vt 0.200000 1.000000 +vt 0.195000 0.983146 +vt 0.180000 0.983146 +vt 0.180000 0.966292 +vt 0.190000 0.983146 +vt 0.185000 1.000000 +vt 0.175000 0.983146 +vt 0.170000 1.000000 +vt 0.165000 0.983146 +vt 0.165000 0.966292 +vt 0.340000 0.983146 +vt 0.335000 1.000000 +vt 0.330000 0.983146 +vt 0.330000 0.966292 +vt 0.345000 0.966292 +vt 0.165000 0.949438 +vt 0.325000 0.983146 +vt 0.320000 1.000000 +vt 0.315000 0.983146 +vt 0.315000 0.966292 +vt 0.310000 0.983146 +vt 0.305000 1.000000 +vt 0.300000 0.983146 +vt 0.930000 -0.000000 +vt 0.920000 0.449438 +vt 0.920000 -0.000000 +vt 0.910000 -0.000000 +vt 0.900000 0.449438 +vt 0.900000 -0.000000 +vt 0.890000 0.000000 +vt 0.880000 0.449438 +vt 0.880000 0.000000 +vt 0.950000 -0.000000 +vt 0.940000 0.449438 +vt 0.940000 0.000000 +vt 0.930000 0.449438 +vt 0.910000 0.449438 +vt 0.890000 0.449438 +vt 0.960000 -0.000000 +vt 0.950000 0.449438 +vt 0.950000 0.460674 +vt 0.940000 0.466292 +vt 0.940000 0.455056 +vt 0.930000 0.466292 +vt 0.920000 0.466292 +vt 0.910000 0.466292 +vt 0.900000 0.455056 +vt 0.890000 0.466292 +vt 0.890000 0.460674 +vt 0.900000 0.466292 +vt 0.920000 0.483146 +vt 0.910000 0.483146 +vt 0.900000 0.477528 +vt 0.950000 0.471910 +vt 0.940000 0.477528 +vt 0.930000 0.483146 +vt 0.890000 0.471910 +vt 0.960000 0.466292 +vt 0.950000 0.466292 +vt 0.880000 0.466292 +vt 0.880000 0.483146 +vt 0.890000 0.539326 +vt 0.880000 0.539326 +vt 0.940000 0.483146 +vt 0.930000 0.539326 +vt 0.960000 0.483146 +vt 0.950000 0.539326 +vt 0.950000 0.483146 +vt 0.910000 0.539326 +vt 0.900000 0.483146 +vt 0.890000 0.483146 +vt 0.920000 0.539326 +vt 0.900000 0.539326 +vt 0.940000 0.539326 +vt 0.930000 -0.000000 +vt 0.920000 0.449438 +vt 0.920000 -0.000000 +vt 0.910000 0.000000 +vt 0.900000 0.449438 +vt 0.900000 0.000000 +vt 0.890000 0.000000 +vt 0.880000 0.449438 +vt 0.880000 -0.000000 +vt 0.950000 -0.000000 +vt 0.940000 0.449438 +vt 0.940000 -0.000000 +vt 0.930000 0.449438 +vt 0.910000 0.449438 +vt 0.890000 0.449438 +vt 0.960000 0.000000 +vt 0.950000 0.449438 +vt 0.940000 0.455056 +vt 0.950000 0.466292 +vt 0.940000 0.466292 +vt 0.930000 0.466292 +vt 0.910000 0.466292 +vt 0.900000 0.455056 +vt 0.890000 0.466292 +vt 0.890000 0.460674 +vt 0.920000 0.466292 +vt 0.900000 0.466292 +vt 0.920000 0.483146 +vt 0.900000 0.477528 +vt 0.940000 0.477528 +vt 0.930000 0.483146 +vt 0.910000 0.483146 +vt 0.890000 0.471910 +vt 0.950000 0.460674 +vt 0.960000 0.466292 +vt 0.950000 0.471910 +vt 0.880000 0.466292 +vt 0.890000 0.483146 +vt 0.880000 0.539326 +vt 0.880000 0.483146 +vt 0.940000 0.539326 +vt 0.930000 0.539326 +vt 0.950000 0.483146 +vt 0.960000 0.539326 +vt 0.950000 0.539326 +vt 0.910000 0.539326 +vt 0.900000 0.483146 +vt 0.890000 0.539326 +vt 0.920000 0.539326 +vt 0.900000 0.539326 +vt 0.940000 0.483146 +vt 0.930000 -0.000000 +vt 0.920000 0.449438 +vt 0.920000 -0.000000 +vt 0.910000 -0.000000 +vt 0.900000 0.449438 +vt 0.900000 -0.000000 +vt 0.890000 0.000000 +vt 0.880000 0.449438 +vt 0.880000 0.000000 +vt 0.950000 -0.000000 +vt 0.940000 0.449438 +vt 0.940000 0.000000 +vt 0.930000 0.449438 +vt 0.910000 0.449438 +vt 0.890000 0.449438 +vt 0.960000 -0.000000 +vt 0.950000 0.449438 +vt 0.950000 0.460674 +vt 0.940000 0.466292 +vt 0.940000 0.455056 +vt 0.930000 0.466292 +vt 0.920000 0.466292 +vt 0.910000 0.466292 +vt 0.890000 0.460674 +vt 0.900000 0.466292 +vt 0.890000 0.466292 +vt 0.900000 0.455056 +vt 0.930000 0.483146 +vt 0.920000 0.483146 +vt 0.910000 0.483146 +vt 0.900000 0.477528 +vt 0.950000 0.466292 +vt 0.940000 0.477528 +vt 0.890000 0.471910 +vt 0.960000 0.466292 +vt 0.950000 0.471910 +vt 0.880000 0.466292 +vt 0.880000 0.483146 +vt 0.890000 0.539326 +vt 0.880000 0.539326 +vt 0.940000 0.483146 +vt 0.930000 0.539326 +vt 0.960000 0.483146 +vt 0.950000 0.539326 +vt 0.950000 0.483146 +vt 0.910000 0.539326 +vt 0.900000 0.483146 +vt 0.890000 0.483146 +vt 0.920000 0.539326 +vt 0.900000 0.539326 +vt 0.940000 0.539326 +vt 0.930000 -0.000000 +vt 0.920000 0.449438 +vt 0.920000 -0.000000 +vt 0.910000 0.000000 +vt 0.900000 0.449438 +vt 0.900000 0.000000 +vt 0.890000 0.000000 +vt 0.880000 0.449438 +vt 0.880000 -0.000000 +vt 0.950000 -0.000000 +vt 0.940000 0.449438 +vt 0.940000 -0.000000 +vt 0.930000 0.449438 +vt 0.910000 0.449438 +vt 0.890000 0.449438 +vt 0.960000 0.000000 +vt 0.950000 0.449438 +vt 0.940000 0.455056 +vt 0.950000 0.466292 +vt 0.940000 0.466292 +vt 0.930000 0.466292 +vt 0.920000 0.466292 +vt 0.910000 0.466292 +vt 0.900000 0.455056 +vt 0.890000 0.466292 +vt 0.890000 0.460674 +vt 0.900000 0.466292 +vt 0.920000 0.483146 +vt 0.900000 0.477528 +vt 0.940000 0.477528 +vt 0.930000 0.483146 +vt 0.910000 0.483146 +vt 0.890000 0.471910 +vt 0.950000 0.460674 +vt 0.960000 0.466292 +vt 0.950000 0.471910 +vt 0.880000 0.466292 +vt 0.890000 0.483146 +vt 0.880000 0.539326 +vt 0.880000 0.483146 +vt 0.940000 0.539326 +vt 0.930000 0.539326 +vt 0.950000 0.483146 +vt 0.960000 0.539326 +vt 0.950000 0.539326 +vt 0.920000 0.539326 +vt 0.910000 0.539326 +vt 0.900000 0.539326 +vt 0.890000 0.539326 +vt 0.900000 0.483146 +vt 0.940000 0.483146 +vt 0.930000 -0.000000 +vt 0.920000 0.449438 +vt 0.920000 -0.000000 +vt 0.910000 -0.000000 +vt 0.900000 0.449438 +vt 0.900000 -0.000000 +vt 0.890000 0.000000 +vt 0.880000 0.449438 +vt 0.880000 0.000000 +vt 0.950000 -0.000000 +vt 0.940000 0.449438 +vt 0.940000 0.000000 +vt 0.930000 0.449438 +vt 0.910000 0.449438 +vt 0.890000 0.449438 +vt 0.960000 -0.000000 +vt 0.950000 0.449438 +vt 0.950000 0.460674 +vt 0.940000 0.466292 +vt 0.940000 0.455056 +vt 0.930000 0.466292 +vt 0.920000 0.466292 +vt 0.910000 0.466292 +vt 0.890000 0.460674 +vt 0.900000 0.466292 +vt 0.890000 0.466292 +vt 0.900000 0.455056 +vt 0.920000 0.483146 +vt 0.910000 0.483146 +vt 0.900000 0.477528 +vt 0.950000 0.471910 +vt 0.940000 0.477528 +vt 0.930000 0.483146 +vt 0.890000 0.471910 +vt 0.960000 0.466292 +vt 0.950000 0.466292 +vt 0.880000 0.466292 +vt 0.880000 0.483146 +vt 0.890000 0.539326 +vt 0.880000 0.539326 +vt 0.940000 0.483146 +vt 0.930000 0.539326 +vt 0.960000 0.483146 +vt 0.950000 0.539326 +vt 0.950000 0.483146 +vt 0.920000 0.539326 +vt 0.910000 0.539326 +vt 0.900000 0.483146 +vt 0.890000 0.483146 +vt 0.900000 0.539326 +vt 0.940000 0.539326 +vt 0.930000 -0.000000 +vt 0.920000 0.449438 +vt 0.920000 -0.000000 +vt 0.910000 0.000000 +vt 0.900000 0.449438 +vt 0.900000 0.000000 +vt 0.890000 0.000000 +vt 0.880000 0.449438 +vt 0.880000 -0.000000 +vt 0.950000 -0.000000 +vt 0.940000 0.449438 +vt 0.940000 -0.000000 +vt 0.930000 0.449438 +vt 0.910000 0.449438 +vt 0.890000 0.449438 +vt 0.960000 0.000000 +vt 0.950000 0.449438 +vt 0.940000 0.455056 +vt 0.950000 0.466292 +vt 0.940000 0.466292 +vt 0.930000 0.466292 +vt 0.910000 0.466292 +vt 0.900000 0.455056 +vt 0.890000 0.466292 +vt 0.890000 0.460674 +vt 0.920000 0.466292 +vt 0.900000 0.466292 +vt 0.920000 0.483146 +vt 0.900000 0.477528 +vt 0.940000 0.477528 +vt 0.930000 0.483146 +vt 0.910000 0.483146 +vt 0.890000 0.471910 +vt 0.950000 0.460674 +vt 0.960000 0.466292 +vt 0.950000 0.471910 +vt 0.880000 0.466292 +vt 0.890000 0.483146 +vt 0.880000 0.539326 +vt 0.880000 0.483146 +vt 0.940000 0.539326 +vt 0.930000 0.539326 +vt 0.950000 0.483146 +vt 0.960000 0.539326 +vt 0.950000 0.539326 +vt 0.910000 0.539326 +vt 0.900000 0.539326 +vt 0.890000 0.539326 +vt 0.920000 0.539326 +vt 0.900000 0.483146 +vt 0.940000 0.483146 +vt 0.960000 0.449438 +vt 0.960000 0.539326 +vt 0.960000 0.449438 +vt 0.960000 0.483146 +vt 0.960000 0.449438 +vt 0.960000 0.539326 +vt 0.960000 0.449438 +vt 0.960000 0.483146 +vt 0.960000 0.449438 +vt 0.960000 0.539326 +vt 0.960000 0.449438 +vt 0.960000 0.483146 +vt 0.960000 0.449438 +vt 0.960000 0.539326 +vt 0.960000 0.449438 +vt 0.960000 0.483146 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.6947 0.1866 0.6947 +vn -0.6727 0.0196 0.7396 +vn -0.5000 -0.7071 -0.5000 +vn 0.7396 0.0196 -0.6727 +vn 0.9891 0.1448 0.0283 +vn 0.0283 0.1448 0.9891 +vn -0.9900 -0.1363 0.0372 +vn 0.0372 -0.1363 -0.9900 +vn 0.7513 0.0671 -0.6565 +vn 0.8431 0.5294 -0.0945 +vn -0.0945 0.5293 0.8431 +vn -0.6565 0.0671 0.7514 +vn -0.8620 -0.4617 0.2090 +vn 0.5000 0.7071 0.5000 +vn 0.1319 0.9824 0.1319 +vn -0.3780 0.7194 0.5828 +vn -0.6923 0.0473 0.7200 +vn 0.2090 -0.4617 -0.8620 +vn 0.7200 0.0473 -0.6923 +vn 0.5828 0.7194 -0.3780 +vn -0.6099 -0.6737 0.4172 +vn 0.4172 -0.6737 -0.6099 +vn -0.5000 -0.7071 0.5000 +vn 0.5000 0.7071 -0.5000 +vn 0.5000 -0.7071 -0.5000 +vn -0.5000 0.7071 0.5000 +vn -0.6565 0.0671 0.7513 +vn -0.4959 0.1278 0.8589 +vn -0.8660 0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn -0.0000 0.1278 -0.9918 +vn 0.5000 0.0000 -0.8660 +vn -0.8589 0.1278 -0.4959 +vn -0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.9918 0.1278 0.0000 +vn 0.8660 0.0000 0.5000 +vn 0.0000 0.1278 0.9918 +vn -0.9918 0.1278 0.0000 +vn 0.8589 0.1278 -0.4959 +vn 0.8660 0.0000 -0.5000 +vn 0.4959 0.1278 0.8589 +vn 0.5000 0.0000 0.8660 +vn -0.8589 0.1278 0.4959 +vn 0.4959 0.1278 -0.8589 +vn -0.4959 0.1278 -0.8589 +vn 0.8589 0.1278 0.4959 +vn -0.0000 0.8474 -0.5309 +vn 0.2654 0.8474 -0.4598 +vn 0.4380 0.4823 -0.7586 +vn -0.0000 0.4823 -0.8760 +vn 0.4598 0.8474 -0.2654 +vn 0.7586 0.4823 -0.4380 +vn 0.5309 0.8474 0.0000 +vn 0.8760 0.4823 -0.0000 +vn 0.7586 0.4823 0.4380 +vn 0.4598 0.8474 0.2654 +vn 0.4380 0.4823 0.7586 +vn 0.2655 0.8474 0.4598 +vn 0.0000 0.4823 0.8760 +vn 0.0000 0.8474 0.5309 +vn -0.4380 0.4823 0.7586 +vn -0.2654 0.8474 0.4598 +vn -0.7586 0.4823 0.4380 +vn -0.4598 0.8474 0.2654 +vn -0.5309 0.8474 -0.0000 +vn -0.8760 0.4823 0.0000 +vn -0.4598 0.8474 -0.2654 +vn -0.7586 0.4823 -0.4380 +vn -0.2654 0.8474 -0.4598 +vn -0.4380 0.4823 -0.7586 +vn -0.4598 0.8474 0.2655 +vn 0.4598 0.8474 -0.2655 +vn 0.2654 0.8474 0.4598 +vn -0.4598 0.8474 -0.2655 +vn -0.6947 0.1866 -0.6947 +vn 0.6727 0.0196 -0.7396 +vn 0.5000 -0.7071 0.5000 +vn -0.7396 0.0196 0.6727 +vn -0.9891 0.1448 -0.0283 +vn -0.0283 0.1448 -0.9891 +vn 0.9900 -0.1363 -0.0372 +vn -0.0372 -0.1363 0.9900 +vn -0.7513 0.0671 0.6565 +vn -0.8431 0.5294 0.0945 +vn -0.5000 0.7071 -0.5000 +vn 0.0945 0.5293 -0.8431 +vn 0.8620 -0.4617 -0.2090 +vn 0.6565 0.0671 -0.7514 +vn -0.1319 0.9824 -0.1319 +vn 0.3780 0.7194 -0.5828 +vn 0.6923 0.0473 -0.7200 +vn -0.4172 -0.6737 0.6099 +vn -0.7200 0.0473 0.6923 +vn -0.5828 0.7194 0.3780 +vn 0.6099 -0.6737 -0.4172 +vn -0.2090 -0.4617 0.8620 +vn 0.6947 0.1866 -0.6947 +vn 0.7396 0.0196 0.6727 +vn -0.6727 0.0196 -0.7396 +vn 0.0283 0.1448 -0.9891 +vn 0.9891 0.1448 -0.0283 +vn 0.0372 -0.1363 0.9900 +vn -0.9900 -0.1363 -0.0372 +vn -0.6565 0.0671 -0.7513 +vn -0.0945 0.5294 -0.8431 +vn 0.8431 0.5294 0.0945 +vn 0.7513 0.0671 0.6565 +vn 0.2090 -0.4617 0.8620 +vn -0.3780 0.7194 -0.5828 +vn 0.1319 0.9824 -0.1319 +vn 0.5828 0.7194 0.3780 +vn 0.7200 0.0473 0.6923 +vn -0.8620 -0.4617 -0.2090 +vn -0.6923 0.0473 -0.7200 +vn 0.4172 -0.6737 0.6099 +vn -0.6099 -0.6737 -0.4172 +vn -0.8620 -0.4617 -0.2091 +vn 0.8431 0.5293 0.0945 +vn -0.6947 0.1866 0.6947 +vn -0.7396 0.0196 -0.6727 +vn 0.6727 0.0196 0.7396 +vn -0.0283 0.1448 0.9891 +vn -0.9891 0.1448 0.0283 +vn -0.0372 -0.1363 -0.9900 +vn 0.9900 -0.1363 0.0372 +vn 0.6565 0.0671 0.7513 +vn 0.0945 0.5294 0.8431 +vn -0.8431 0.5294 -0.0945 +vn -0.7513 0.0671 -0.6565 +vn -0.2090 -0.4617 -0.8620 +vn -0.1319 0.9824 0.1319 +vn -0.5828 0.7194 -0.3780 +vn -0.7200 0.0473 -0.6923 +vn 0.6099 -0.6737 0.4172 +vn 0.6923 0.0473 0.7200 +vn 0.3780 0.7194 0.5828 +vn -0.4172 -0.6737 -0.6099 +vn 0.8620 -0.4617 0.2090 +vn 0.8620 -0.4617 0.2091 +vn 0.6565 0.0671 0.7514 +s off +f 67/87/14 66/88/14 65/89/14 +f 70/90/15 71/91/15 69/92/15 +f 66/93/16 69/94/16 65/95/16 +f 68/96/17 70/90/17 66/97/17 +f 65/98/18 71/99/18 67/100/18 +f 67/101/19 72/102/19 68/103/19 +f 86/104/20 76/105/20 78/106/20 +f 81/107/18 75/108/18 73/109/18 +f 74/110/21 85/111/21 77/112/21 +f 87/113/22 73/109/22 79/114/22 +f 75/115/23 88/116/23 80/117/23 +f 88/116/19 78/106/19 80/117/19 +f 85/111/16 79/114/16 77/112/16 +f 84/118/17 74/110/17 76/105/17 +f 87/113/14 89/119/14 81/107/14 +f 83/120/14 96/121/14 88/116/14 +f 88/116/14 94/122/14 86/104/14 +f 85/111/14 95/123/14 87/113/14 +f 84/118/14 90/124/14 82/125/14 +f 81/107/14 91/126/14 83/127/14 +f 86/104/14 92/128/14 84/118/14 +f 82/125/14 93/129/14 85/111/14 +f 94/122/20 100/130/20 92/128/20 +f 90/124/21 101/131/21 93/129/21 +f 95/123/22 97/132/22 89/119/22 +f 91/133/23 104/134/23 96/121/23 +f 96/121/19 102/135/19 94/122/19 +f 93/129/16 103/136/16 95/123/16 +f 92/128/17 98/137/17 90/124/17 +f 89/119/18 99/138/18 91/126/18 +f 105/139/15 99/138/15 97/132/15 +f 103/136/15 105/139/15 97/132/15 +f 109/140/15 103/136/15 101/131/15 +f 98/137/15 109/140/15 101/131/15 +f 108/141/15 98/137/15 100/130/15 +f 102/135/15 108/141/15 100/130/15 +f 112/142/15 102/135/15 104/134/15 +f 99/143/15 112/142/15 104/134/15 +f 127/144/14 129/145/14 121/146/14 +f 123/147/14 136/148/14 128/149/14 +f 128/149/14 134/150/14 126/151/14 +f 125/152/14 135/153/14 127/144/14 +f 124/154/14 130/155/14 122/156/14 +f 121/146/14 131/157/14 123/158/14 +f 126/151/14 132/159/14 124/154/14 +f 122/156/14 133/160/14 125/152/14 +f 134/150/20 140/161/20 132/159/20 +f 130/155/21 141/162/21 133/160/21 +f 135/153/22 137/163/22 129/145/22 +f 131/164/23 144/165/23 136/148/23 +f 136/148/19 142/166/19 134/150/19 +f 133/160/16 143/167/16 135/153/16 +f 132/159/17 138/168/17 130/155/17 +f 129/145/18 139/169/18 131/157/18 +f 145/170/15 139/169/15 137/163/15 +f 143/167/15 145/170/15 137/163/15 +f 149/171/15 143/167/15 141/162/15 +f 138/168/15 149/171/15 141/162/15 +f 148/172/15 138/168/15 140/161/15 +f 142/166/15 148/172/15 140/161/15 +f 152/173/15 142/166/15 144/165/15 +f 139/174/15 152/173/15 144/165/15 +f 152/173/23 115/175/23 120/176/23 +f 115/177/18 145/170/18 113/178/18 +f 113/178/22 151/179/22 119/180/22 +f 119/180/16 149/171/16 117/181/16 +f 149/171/21 114/182/21 117/181/21 +f 114/182/17 148/172/17 116/183/17 +f 116/183/20 150/184/20 118/185/20 +f 118/185/19 152/173/19 120/176/19 +f 109/140/16 185/186/16 111/187/16 +f 127/144/22 105/139/22 111/187/22 +f 127/144/16 188/188/16 125/152/16 +f 106/189/21 125/152/21 109/140/21 +f 126/151/20 108/141/20 110/190/20 +f 125/152/16 186/191/16 109/140/16 +f 107/192/23 128/149/23 112/142/23 +f 157/193/21 162/194/21 154/195/21 +f 159/196/15 115/177/15 113/178/15 +f 113/178/15 153/197/15 159/198/15 +f 154/199/15 119/180/15 117/181/15 +f 157/200/15 117/181/15 114/182/15 +f 158/201/15 114/182/15 116/183/15 +f 116/183/15 156/202/15 158/203/15 +f 155/204/15 118/185/15 120/176/15 +f 160/205/15 120/176/15 115/175/15 +f 175/206/15 167/207/15 168/208/15 +f 160/209/23 164/210/23 155/211/23 +f 158/212/17 165/213/17 157/193/17 +f 154/195/16 161/214/16 153/215/16 +f 156/216/20 166/217/20 158/212/20 +f 153/215/22 168/208/22 159/218/22 +f 159/218/18 167/207/18 160/219/18 +f 155/211/19 163/220/19 156/216/19 +f 174/221/15 165/213/15 166/217/15 +f 171/222/15 163/220/15 164/210/15 +f 170/223/15 161/214/15 162/194/15 +f 165/213/15 170/224/15 162/194/15 +f 163/220/15 174/225/15 166/217/15 +f 176/226/15 164/210/15 167/227/15 +f 169/228/15 168/208/15 161/214/15 +f 175/206/17 183/229/17 176/230/17 +f 183/231/15 184/232/15 182/233/15 +f 174/221/18 181/234/18 173/235/18 +f 176/226/21 180/236/21 171/237/21 +f 171/222/16 179/238/16 172/239/16 +f 173/240/23 178/241/23 170/224/23 +f 170/223/19 177/242/19 169/243/19 +f 169/228/20 184/244/20 175/245/20 +f 172/246/22 182/247/22 174/225/22 +f 111/187/16 187/248/16 127/144/16 +f 191/249/14 207/250/14 192/251/14 +f 106/189/17 195/252/17 122/156/17 +f 122/156/17 196/253/17 124/154/17 +f 196/253/17 108/141/17 124/154/17 +f 194/254/17 106/189/17 108/141/17 +f 110/190/19 191/255/19 126/151/19 +f 128/149/19 191/255/19 192/256/19 +f 192/256/19 112/142/19 128/149/19 +f 112/142/19 189/257/19 110/190/19 +f 107/258/18 199/259/18 123/158/18 +f 123/158/18 200/260/18 121/146/18 +f 200/260/18 105/139/18 121/146/18 +f 198/261/18 107/258/18 105/139/18 +f 202/262/15 185/263/15 186/264/15 +f 189/265/15 203/266/15 204/267/15 +f 187/268/14 206/269/14 188/270/14 +f 206/271/18 186/191/18 188/188/18 +f 185/186/17 205/272/17 187/248/17 +f 207/273/17 190/274/17 192/256/17 +f 189/257/18 208/275/18 191/255/18 +f 198/276/15 209/277/15 197/278/15 +f 200/260/19 210/279/19 198/261/19 +f 199/280/14 212/281/14 200/282/14 +f 197/283/16 211/284/16 199/259/16 +f 193/285/19 215/286/19 195/252/19 +f 194/287/15 213/288/15 193/289/15 +f 196/253/16 214/290/16 194/254/16 +f 195/291/14 216/292/14 196/293/14 +f 215/294/23 202/262/23 206/269/23 +f 201/295/20 212/281/20 205/296/20 +f 211/297/21 203/266/21 207/250/21 +f 204/267/22 216/292/22 208/298/22 +f 214/299/18 223/300/18 213/288/18 +f 214/299/22 220/301/22 224/302/22 +f 210/303/17 221/304/17 209/277/17 +f 209/305/21 219/306/21 203/266/21 +f 203/266/16 220/301/16 204/267/16 +f 210/303/20 217/307/20 222/308/20 +f 202/262/19 217/307/19 201/295/19 +f 213/288/23 218/309/23 202/262/23 +f 224/310/15 219/306/15 222/311/15 +f 208/298/22 232/312/22 228/313/22 +f 205/296/19 226/314/19 206/269/19 +f 211/315/17 230/316/17 212/281/17 +f 207/250/21 229/317/21 211/297/21 +f 205/296/20 230/316/20 225/318/20 +f 206/269/23 231/319/23 215/294/23 +f 208/298/16 227/320/16 207/250/16 +f 215/294/18 232/312/18 216/292/18 +f 227/320/14 232/321/14 226/322/14 +f 363/323/22 361/324/22 359/325/22 +f 362/326/15 359/325/15 358/327/15 +f 360/328/21 359/325/21 361/324/21 +f 364/329/20 358/327/20 360/328/20 +f 361/324/14 364/330/14 360/328/14 +f 369/331/18 366/332/18 367/333/18 +f 373/334/17 370/335/17 371/336/17 +f 377/337/16 374/338/16 375/339/16 +f 381/340/19 378/341/19 379/342/19 +f 386/343/14 392/344/14 389/345/14 +f 384/346/19 389/347/19 385/348/19 +f 383/349/16 387/350/16 382/351/16 +f 385/348/17 388/352/17 383/349/17 +f 382/351/18 386/353/18 384/354/18 +f 387/350/18 390/355/18 386/353/18 +f 388/352/24 390/356/24 387/350/24 +f 389/347/17 391/357/17 388/352/17 +f 397/358/18 399/359/18 393/360/18 +f 390/356/18 393/361/18 386/362/18 +f 391/363/15 395/364/15 390/356/15 +f 389/345/17 394/365/17 391/363/17 +f 392/344/17 396/366/17 394/365/17 +f 396/367/19 401/368/19 397/358/19 +f 393/369/16 398/370/16 392/371/16 +f 392/371/17 400/372/17 396/367/17 +f 394/365/25 397/358/25 395/364/25 +f 395/364/18 397/373/18 393/361/18 +f 404/374/14 403/375/14 402/376/14 +f 408/377/15 406/378/15 407/379/15 +f 404/380/19 409/381/19 405/382/19 +f 403/375/16 407/379/16 402/376/16 +f 414/383/14 420/384/14 417/385/14 +f 412/386/19 417/387/19 413/388/19 +f 411/389/16 415/390/16 410/391/16 +f 413/388/17 416/392/17 411/389/17 +f 410/391/18 414/393/18 412/394/18 +f 415/390/18 418/395/18 414/393/18 +f 416/392/24 418/396/24 415/390/24 +f 417/387/17 419/397/17 416/392/17 +f 425/398/18 427/399/18 421/400/18 +f 418/396/18 421/401/18 414/402/18 +f 419/403/15 423/404/15 418/396/15 +f 417/385/17 422/405/17 419/403/17 +f 420/384/17 424/406/17 422/405/17 +f 424/407/19 429/408/19 425/398/19 +f 421/409/16 426/410/16 420/411/16 +f 420/411/17 428/412/17 424/407/17 +f 422/405/25 425/398/25 423/404/25 +f 423/404/18 425/413/18 421/401/18 +f 432/414/14 431/415/14 430/416/14 +f 436/417/15 434/418/15 435/419/15 +f 432/420/19 437/421/19 433/422/19 +f 431/415/16 435/419/16 430/416/16 +f 440/423/14 439/424/14 438/425/14 +f 444/426/15 442/427/15 443/428/15 +f 440/429/19 445/430/19 441/431/19 +f 439/424/16 443/428/16 438/425/16 +f 448/432/14 447/433/14 446/434/14 +f 452/435/15 450/436/15 451/437/15 +f 448/438/19 453/439/19 449/440/19 +f 447/433/16 451/437/16 446/434/16 +f 456/441/14 455/442/14 454/443/14 +f 460/444/15 458/445/15 459/446/15 +f 456/447/19 461/448/19 457/449/19 +f 455/442/16 459/446/16 454/443/16 +f 464/450/14 463/451/14 462/452/14 +f 468/453/15 466/454/15 467/455/15 +f 464/456/19 469/457/19 465/458/19 +f 463/451/16 467/455/16 462/452/16 +f 472/459/14 471/460/14 470/461/14 +f 476/462/15 474/463/15 475/464/15 +f 472/465/19 477/466/19 473/467/19 +f 471/460/16 475/464/16 470/461/16 +f 480/468/14 479/469/14 478/470/14 +f 484/471/15 482/472/15 483/473/15 +f 480/474/19 485/475/19 481/476/19 +f 479/469/16 483/473/16 478/470/16 +f 488/477/14 487/478/14 486/479/14 +f 492/480/15 490/481/15 491/482/15 +f 488/483/19 493/484/19 489/485/19 +f 487/478/16 491/482/16 486/479/16 +f 496/486/14 495/487/14 494/488/14 +f 500/489/15 498/490/15 499/491/15 +f 496/492/19 501/493/19 497/494/19 +f 495/487/16 499/491/16 494/488/16 +f 730/495/20 728/496/20 726/497/20 +f 729/498/15 726/497/15 725/499/15 +f 727/500/23 726/497/23 728/496/23 +f 731/501/22 725/499/22 727/500/22 +f 728/496/14 731/502/14 727/500/14 +f 814/503/21 812/504/21 810/505/21 +f 813/506/15 810/505/15 809/507/15 +f 811/508/20 810/505/20 812/504/20 +f 815/509/23 809/507/23 811/508/23 +f 816/510/14 811/508/14 812/504/14 +f 898/511/23 896/512/23 894/513/23 +f 897/514/15 894/513/15 893/515/15 +f 895/516/22 894/513/22 896/512/22 +f 899/517/21 893/515/21 895/516/21 +f 900/518/14 895/516/14 896/512/14 +f 67/87/14 68/519/14 66/88/14 +f 70/90/15 72/520/15 71/91/15 +f 66/93/16 70/521/16 69/94/16 +f 68/96/17 72/520/17 70/90/17 +f 65/98/18 69/522/18 71/99/18 +f 67/101/19 71/523/19 72/102/19 +f 86/104/20 84/118/20 76/105/20 +f 81/107/18 83/127/18 75/108/18 +f 74/110/21 82/125/21 85/111/21 +f 87/113/22 81/107/22 73/109/22 +f 75/115/23 83/120/23 88/116/23 +f 88/116/19 86/104/19 78/106/19 +f 85/111/16 87/113/16 79/114/16 +f 84/118/17 82/125/17 74/110/17 +f 87/113/14 95/123/14 89/119/14 +f 83/120/14 91/133/14 96/121/14 +f 88/116/14 96/121/14 94/122/14 +f 85/111/14 93/129/14 95/123/14 +f 84/118/14 92/128/14 90/124/14 +f 81/107/14 89/119/14 91/126/14 +f 86/104/14 94/122/14 92/128/14 +f 82/125/14 90/124/14 93/129/14 +f 94/122/20 102/135/20 100/130/20 +f 90/124/21 98/137/21 101/131/21 +f 95/123/22 103/136/22 97/132/22 +f 91/133/23 99/143/23 104/134/23 +f 96/121/19 104/134/19 102/135/19 +f 93/129/16 101/131/16 103/136/16 +f 92/128/17 100/130/17 98/137/17 +f 89/119/18 97/132/18 99/138/18 +f 105/139/15 107/258/15 99/138/15 +f 103/136/15 111/187/15 105/139/15 +f 109/140/15 111/187/15 103/136/15 +f 98/137/15 106/189/15 109/140/15 +f 108/141/15 106/189/15 98/137/15 +f 102/135/15 110/190/15 108/141/15 +f 112/142/15 110/190/15 102/135/15 +f 99/143/15 107/192/15 112/142/15 +f 127/144/14 135/153/14 129/145/14 +f 123/147/14 131/164/14 136/148/14 +f 128/149/14 136/148/14 134/150/14 +f 125/152/14 133/160/14 135/153/14 +f 124/154/14 132/159/14 130/155/14 +f 121/146/14 129/145/14 131/157/14 +f 126/151/14 134/150/14 132/159/14 +f 122/156/14 130/155/14 133/160/14 +f 134/150/20 142/166/20 140/161/20 +f 130/155/21 138/168/21 141/162/21 +f 135/153/22 143/167/22 137/163/22 +f 131/164/23 139/174/23 144/165/23 +f 136/148/19 144/165/19 142/166/19 +f 133/160/16 141/162/16 143/167/16 +f 132/159/17 140/161/17 138/168/17 +f 129/145/18 137/163/18 139/169/18 +f 145/170/15 147/524/15 139/169/15 +f 143/167/15 151/179/15 145/170/15 +f 149/171/15 151/179/15 143/167/15 +f 138/168/15 146/525/15 149/171/15 +f 148/172/15 146/525/15 138/168/15 +f 142/166/15 150/184/15 148/172/15 +f 152/173/15 150/184/15 142/166/15 +f 139/174/15 147/526/15 152/173/15 +f 152/173/23 147/526/23 115/175/23 +f 115/177/18 147/524/18 145/170/18 +f 113/178/22 145/170/22 151/179/22 +f 119/180/16 151/179/16 149/171/16 +f 149/171/21 146/525/21 114/182/21 +f 114/182/17 146/525/17 148/172/17 +f 116/183/20 148/172/20 150/184/20 +f 118/185/19 150/184/19 152/173/19 +f 109/140/16 186/191/16 185/186/16 +f 127/144/22 121/146/22 105/139/22 +f 127/144/16 187/248/16 188/188/16 +f 106/189/21 122/156/21 125/152/21 +f 126/151/20 124/154/20 108/141/20 +f 125/152/16 188/188/16 186/191/16 +f 107/192/23 123/147/23 128/149/23 +f 157/193/21 165/213/21 162/194/21 +f 159/196/15 160/527/15 115/177/15 +f 113/178/15 119/180/15 153/197/15 +f 154/199/15 153/528/15 119/180/15 +f 157/200/15 154/529/15 117/181/15 +f 158/201/15 157/530/15 114/182/15 +f 116/183/15 118/185/15 156/202/15 +f 155/204/15 156/531/15 118/185/15 +f 160/205/15 155/532/15 120/176/15 +f 175/206/15 176/230/15 167/207/15 +f 160/209/23 167/227/23 164/210/23 +f 158/212/17 166/217/17 165/213/17 +f 154/195/16 162/194/16 161/214/16 +f 156/216/20 163/220/20 166/217/20 +f 153/215/22 161/214/22 168/208/22 +f 159/218/18 168/208/18 167/207/18 +f 155/211/19 164/210/19 163/220/19 +f 174/221/15 173/235/15 165/213/15 +f 171/222/15 172/239/15 163/220/15 +f 170/223/15 169/243/15 161/214/15 +f 165/213/15 173/240/15 170/224/15 +f 163/220/15 172/246/15 174/225/15 +f 176/226/15 171/237/15 164/210/15 +f 169/228/15 175/245/15 168/208/15 +f 175/206/17 184/533/17 183/229/17 +f 184/232/15 177/534/15 178/535/15 +f 178/535/15 181/536/15 184/232/15 +f 181/536/15 182/233/15 184/232/15 +f 182/233/15 179/537/15 180/538/15 +f 180/538/15 183/231/15 182/233/15 +f 174/221/18 182/539/18 181/234/18 +f 176/226/21 183/540/21 180/236/21 +f 171/222/16 180/541/16 179/238/16 +f 173/240/23 181/542/23 178/241/23 +f 170/223/19 178/543/19 177/242/19 +f 169/228/20 177/544/20 184/244/20 +f 172/246/22 179/545/22 182/247/22 +f 111/187/16 185/186/16 187/248/16 +f 191/249/14 208/298/14 207/250/14 +f 106/189/17 193/285/17 195/252/17 +f 122/156/17 195/252/17 196/253/17 +f 196/253/17 194/254/17 108/141/17 +f 194/254/17 193/285/17 106/189/17 +f 110/190/19 189/257/19 191/255/19 +f 128/149/19 126/151/19 191/255/19 +f 192/256/19 190/274/19 112/142/19 +f 112/142/19 190/274/19 189/257/19 +f 107/258/18 197/283/18 199/259/18 +f 123/158/18 199/259/18 200/260/18 +f 200/260/18 198/261/18 105/139/18 +f 198/261/18 197/283/18 107/258/18 +f 202/262/15 201/295/15 185/263/15 +f 189/265/15 190/546/15 203/266/15 +f 187/268/14 205/296/14 206/269/14 +f 206/271/18 202/547/18 186/191/18 +f 185/186/17 201/548/17 205/272/17 +f 207/273/17 203/549/17 190/274/17 +f 189/257/18 204/550/18 208/275/18 +f 198/276/15 210/303/15 209/277/15 +f 200/260/19 212/551/19 210/279/19 +f 199/280/14 211/315/14 212/281/14 +f 197/283/16 209/552/16 211/284/16 +f 193/285/19 213/553/19 215/286/19 +f 194/287/15 214/299/15 213/288/15 +f 196/253/16 216/554/16 214/290/16 +f 195/291/14 215/294/14 216/292/14 +f 215/294/23 213/288/23 202/262/23 +f 201/295/20 210/303/20 212/281/20 +f 211/297/21 209/305/21 203/266/21 +f 204/267/22 214/299/22 216/292/22 +f 214/299/18 224/302/18 223/300/18 +f 214/299/22 204/267/22 220/301/22 +f 210/303/17 222/308/17 221/304/17 +f 209/305/21 221/555/21 219/306/21 +f 203/266/16 219/306/16 220/301/16 +f 210/303/20 201/295/20 217/307/20 +f 202/262/19 218/309/19 217/307/19 +f 213/288/23 223/300/23 218/309/23 +f 222/311/15 217/556/15 218/557/15 +f 218/557/15 223/558/15 224/310/15 +f 224/310/15 220/301/15 219/306/15 +f 219/306/15 221/559/15 222/311/15 +f 222/311/15 218/557/15 224/310/15 +f 208/298/22 216/292/22 232/312/22 +f 205/296/19 225/318/19 226/314/19 +f 211/315/17 229/560/17 230/316/17 +f 207/250/21 227/320/21 229/317/21 +f 205/296/20 212/281/20 230/316/20 +f 206/269/23 226/314/23 231/319/23 +f 208/298/16 228/313/16 227/320/16 +f 215/294/18 231/319/18 232/312/18 +f 226/322/14 225/561/14 230/562/14 +f 230/562/14 229/563/14 227/320/14 +f 227/320/14 228/313/14 232/321/14 +f 232/321/14 231/564/14 226/322/14 +f 226/322/14 230/562/14 227/320/14 +f 363/323/22 365/565/22 361/324/22 +f 362/326/15 363/566/15 359/325/15 +f 360/328/21 358/327/21 359/325/21 +f 364/329/20 362/567/20 358/327/20 +f 361/324/14 365/568/14 364/330/14 +f 369/331/18 368/569/18 366/332/18 +f 373/334/17 372/570/17 370/335/17 +f 377/337/16 376/571/16 374/338/16 +f 381/340/19 380/572/19 378/341/19 +f 386/343/14 393/573/14 392/344/14 +f 384/346/19 386/574/19 389/347/19 +f 383/349/16 388/352/16 387/350/16 +f 385/348/17 389/347/17 388/352/17 +f 382/351/18 387/350/18 386/353/18 +f 388/352/24 391/363/24 390/356/24 +f 397/358/18 401/368/18 399/359/18 +f 390/356/18 395/364/18 393/361/18 +f 391/363/15 394/365/15 395/364/15 +f 389/345/17 392/344/17 394/365/17 +f 396/367/19 400/372/19 401/368/19 +f 393/369/16 399/575/16 398/370/16 +f 392/371/17 398/370/17 400/372/17 +f 394/365/25 396/367/25 397/358/25 +f 404/374/14 405/576/14 403/375/14 +f 408/377/15 409/381/15 406/378/15 +f 404/380/19 406/378/19 409/381/19 +f 403/375/16 408/377/16 407/379/16 +f 414/383/14 421/577/14 420/384/14 +f 412/386/19 414/578/19 417/387/19 +f 411/389/16 416/392/16 415/390/16 +f 413/388/17 417/387/17 416/392/17 +f 410/391/18 415/390/18 414/393/18 +f 416/392/24 419/403/24 418/396/24 +f 425/398/18 429/408/18 427/399/18 +f 418/396/18 423/404/18 421/401/18 +f 419/403/15 422/405/15 423/404/15 +f 417/385/17 420/384/17 422/405/17 +f 424/407/19 428/412/19 429/408/19 +f 421/409/16 427/579/16 426/410/16 +f 420/411/17 426/410/17 428/412/17 +f 422/405/25 424/407/25 425/398/25 +f 432/414/14 433/580/14 431/415/14 +f 436/417/15 437/421/15 434/418/15 +f 432/420/19 434/418/19 437/421/19 +f 431/415/16 436/417/16 435/419/16 +f 440/423/14 441/581/14 439/424/14 +f 444/426/15 445/430/15 442/427/15 +f 440/429/19 442/427/19 445/430/19 +f 439/424/16 444/426/16 443/428/16 +f 448/432/14 449/582/14 447/433/14 +f 452/435/15 453/439/15 450/436/15 +f 448/438/19 450/436/19 453/439/19 +f 447/433/16 452/435/16 451/437/16 +f 456/441/14 457/583/14 455/442/14 +f 460/444/15 461/448/15 458/445/15 +f 456/447/19 458/445/19 461/448/19 +f 455/442/16 460/444/16 459/446/16 +f 464/450/14 465/584/14 463/451/14 +f 468/453/15 469/457/15 466/454/15 +f 464/456/19 466/454/19 469/457/19 +f 463/451/16 468/453/16 467/455/16 +f 472/459/14 473/585/14 471/460/14 +f 476/462/15 477/466/15 474/463/15 +f 472/465/19 474/463/19 477/466/19 +f 471/460/16 476/462/16 475/464/16 +f 480/468/14 481/586/14 479/469/14 +f 484/471/15 485/475/15 482/472/15 +f 480/474/19 482/472/19 485/475/19 +f 479/469/16 484/471/16 483/473/16 +f 488/477/14 489/587/14 487/478/14 +f 492/480/15 493/484/15 490/481/15 +f 488/483/19 490/481/19 493/484/19 +f 487/478/16 492/480/16 491/482/16 +f 496/486/14 497/588/14 495/487/14 +f 500/489/15 501/493/15 498/490/15 +f 496/492/19 498/490/19 501/493/19 +f 495/487/16 500/489/16 499/491/16 +f 730/495/20 732/589/20 728/496/20 +f 729/498/15 730/590/15 726/497/15 +f 727/500/23 725/499/23 726/497/23 +f 731/501/22 729/591/22 725/499/22 +f 728/496/14 732/592/14 731/502/14 +f 814/503/21 816/593/21 812/504/21 +f 813/506/15 814/594/15 810/505/15 +f 811/508/20 809/507/20 810/505/20 +f 815/509/23 813/595/23 809/507/23 +f 816/510/14 815/596/14 811/508/14 +f 898/511/23 900/597/23 896/512/23 +f 897/514/15 898/598/15 894/513/15 +f 895/516/22 893/515/22 894/513/22 +f 899/517/21 897/599/21 893/515/21 +f 900/518/14 899/600/14 895/516/14 +s 1 +f 240/601/17 247/602/26 239/603/21 +f 238/604/16 245/605/27 237/606/22 +f 236/607/18 243/608/28 235/609/23 +f 234/610/19 241/611/29 233/612/20 +f 233/612/20 248/613/30 240/601/17 +f 239/603/21 246/614/31 238/604/16 +f 237/606/22 244/615/32 236/607/18 +f 235/616/23 242/617/33 234/610/19 +f 242/618/33 249/619/34 241/620/29 +f 241/620/29 255/621/35 248/613/30 +f 247/602/26 253/622/36 246/614/31 +f 244/623/32 252/624/37 251/625/38 +f 247/602/26 255/621/35 254/626/39 +f 246/614/31 252/624/37 245/627/27 +f 255/621/35 261/628/40 254/626/39 +f 252/624/37 260/629/41 259/630/42 +f 250/631/43 256/632/44 249/619/34 +f 249/619/34 262/633/45 255/621/35 +f 254/626/39 260/629/41 253/622/36 +f 252/624/37 258/634/46 251/625/38 +f 242/618/33 243/635/28 250/631/43 +f 250/631/43 243/635/28 257/636/47 +f 244/623/32 251/625/38 243/637/28 +f 251/625/38 258/634/46 243/637/28 +f 243/638/28 266/639/48 263/640/14 +f 256/641/44 270/642/49 262/633/45 +f 243/643/28 265/644/50 257/645/47 +f 261/628/40 268/646/51 260/629/41 +f 259/647/42 266/639/48 258/648/46 +f 262/633/45 269/649/15 261/628/40 +f 259/647/42 268/646/51 267/650/22 +f 256/641/44 265/644/50 264/651/20 +f 278/652/17 285/653/26 277/654/21 +f 276/655/16 283/656/27 275/657/22 +f 274/658/18 281/659/28 273/660/23 +f 272/661/19 279/662/29 271/663/20 +f 271/663/20 286/664/30 278/652/17 +f 277/654/21 284/665/31 276/655/16 +f 275/657/22 282/666/32 274/658/18 +f 273/667/23 280/668/33 272/661/19 +f 279/669/29 288/670/43 287/671/34 +f 279/669/29 293/672/35 286/664/30 +f 285/653/26 291/673/36 284/665/31 +f 283/674/27 289/675/38 282/676/32 +f 285/653/26 293/672/35 292/677/39 +f 283/674/27 291/673/36 290/678/52 +f 293/672/35 299/679/40 292/677/39 +f 291/673/36 297/680/42 290/678/52 +f 288/670/43 294/681/44 287/671/34 +f 293/672/35 294/681/44 300/682/45 +f 292/677/39 298/683/41 291/673/36 +f 289/675/38 297/680/42 296/684/46 +f 280/685/33 281/686/28 288/670/43 +f 288/670/43 281/686/28 295/687/47 +f 282/676/32 289/675/38 281/688/28 +f 289/675/38 296/684/46 281/688/28 +f 296/689/46 301/690/14 281/691/28 +f 300/682/45 302/692/20 308/693/49 +f 295/694/47 301/695/14 303/696/50 +f 298/683/41 307/697/15 306/698/51 +f 296/689/46 305/699/22 304/700/48 +f 300/682/45 307/697/15 299/679/40 +f 298/683/41 305/699/22 297/701/42 +f 295/694/47 302/692/20 294/702/44 +f 326/703/53 313/704/54 314/705/55 +f 321/706/56 320/707/57 309/708/19 +f 323/709/58 310/710/59 311/711/60 +f 330/712/61 317/713/62 318/714/17 +f 327/715/63 314/705/55 315/716/16 +f 324/717/64 311/711/60 312/718/18 +f 331/719/65 318/714/17 319/720/66 +f 328/721/67 315/716/16 316/722/68 +f 325/723/69 312/724/18 313/704/54 +f 332/725/70 319/720/66 320/707/57 +f 322/726/71 309/708/19 310/710/59 +f 329/727/72 316/722/68 317/713/62 +f 333/728/73 337/729/15 335/730/74 +f 333/728/73 336/731/75 334/732/76 +f 335/733/74 337/734/15 338/735/77 +f 336/731/75 338/735/77 339/736/78 +f 338/737/77 337/738/15 340/739/79 +f 339/736/78 340/739/79 341/740/80 +f 340/741/79 343/742/81 341/740/80 +f 340/741/79 337/743/15 342/744/82 +f 342/745/82 345/746/83 343/742/81 +f 342/745/82 337/747/15 344/748/84 +f 344/749/84 347/750/85 345/746/83 +f 344/749/84 337/751/15 346/752/86 +f 346/753/86 349/754/87 347/750/85 +f 346/753/86 337/755/15 348/756/88 +f 348/757/88 351/758/89 349/754/87 +f 348/757/88 337/759/15 350/760/90 +f 350/761/90 337/762/15 352/763/91 +f 350/761/90 353/764/92 351/758/89 +f 343/742/81 328/721/67 329/727/72 +f 328/721/67 347/750/85 327/715/63 +f 352/765/91 337/766/15 354/767/93 +f 327/715/63 349/754/87 326/703/53 +f 349/754/87 325/723/69 326/703/53 +f 352/765/91 355/768/94 353/769/92 +f 324/770/64 351/758/89 353/764/92 +f 324/717/64 355/768/94 323/709/58 +f 354/771/93 337/772/15 356/773/95 +f 323/709/58 357/774/96 322/726/71 +f 321/706/56 357/774/96 334/732/76 +f 354/771/93 357/774/96 355/768/94 +f 321/706/56 336/731/75 332/725/70 +f 332/725/70 339/736/78 331/719/65 +f 356/775/95 337/776/15 333/777/73 +f 339/736/78 330/712/61 331/719/65 +f 341/740/80 329/727/72 330/712/61 +f 357/774/96 333/777/73 334/732/76 +f 519/778/53 506/779/54 507/780/55 +f 514/781/56 513/782/57 502/783/19 +f 516/784/58 503/785/59 504/786/60 +f 523/787/61 510/788/62 511/789/17 +f 520/790/63 507/780/55 508/791/16 +f 517/792/64 504/786/60 505/793/18 +f 524/794/65 511/789/17 512/795/66 +f 521/796/67 508/791/16 509/797/68 +f 518/798/69 505/799/18 506/779/54 +f 525/800/70 512/795/66 513/782/57 +f 515/801/71 502/783/19 503/785/59 +f 522/802/72 509/797/68 510/788/62 +f 526/803/73 530/804/15 528/805/74 +f 526/803/73 529/806/75 527/807/76 +f 528/808/74 530/809/15 531/810/77 +f 528/808/74 532/811/78 529/806/75 +f 531/812/77 530/813/15 533/814/79 +f 531/812/77 534/815/80 532/811/78 +f 533/816/79 536/817/81 534/815/80 +f 533/816/79 530/818/15 535/819/82 +f 535/820/82 538/821/83 536/817/81 +f 535/820/82 530/822/15 537/823/84 +f 537/824/84 540/825/85 538/821/83 +f 537/824/84 530/826/15 539/827/86 +f 540/825/85 541/828/88 542/829/87 +f 539/830/86 530/831/15 541/828/88 +f 541/832/88 544/833/89 542/829/87 +f 541/832/88 530/834/15 543/835/97 +f 543/836/97 530/837/15 545/838/91 +f 544/833/89 545/838/91 546/839/92 +f 522/802/72 538/821/83 521/796/67 +f 521/796/67 540/825/85 520/790/63 +f 545/840/91 530/841/15 547/842/93 +f 520/790/63 542/829/87 519/778/53 +f 542/829/87 518/798/69 519/778/53 +f 545/840/91 548/843/94 546/844/92 +f 517/845/64 544/833/89 546/839/92 +f 517/792/64 548/843/94 516/784/58 +f 547/846/93 530/847/15 549/848/95 +f 516/784/58 550/849/96 515/801/71 +f 514/781/56 550/849/96 527/807/76 +f 547/846/93 550/849/96 548/843/94 +f 514/781/56 529/806/75 525/800/70 +f 525/800/70 532/811/78 524/794/65 +f 549/850/95 530/851/15 526/852/73 +f 532/811/78 523/787/61 524/794/65 +f 523/787/61 536/817/81 522/802/72 +f 549/850/95 527/807/76 550/849/96 +f 568/853/53 555/854/54 556/855/55 +f 563/856/56 562/857/57 551/858/19 +f 565/859/58 552/860/59 553/861/60 +f 572/862/61 559/863/62 560/864/17 +f 569/865/63 556/855/55 557/866/16 +f 566/867/64 553/861/60 554/868/18 +f 573/869/65 560/864/17 561/870/66 +f 570/871/67 557/866/16 558/872/68 +f 567/873/69 554/874/18 555/854/54 +f 574/875/70 561/870/66 562/857/57 +f 564/876/71 551/858/19 552/860/59 +f 571/877/72 558/872/68 559/863/62 +f 575/878/73 579/879/15 577/880/74 +f 576/881/76 577/880/74 578/882/75 +f 577/883/74 579/884/15 580/885/98 +f 577/883/74 581/886/78 578/882/75 +f 580/887/98 579/888/15 582/889/79 +f 581/886/78 582/889/79 583/890/80 +f 582/891/79 585/892/81 583/890/80 +f 582/891/79 579/893/15 584/894/82 +f 585/892/81 586/895/99 587/896/83 +f 584/897/82 579/898/15 586/895/99 +f 587/896/83 588/899/86 589/900/85 +f 586/901/99 579/902/15 588/899/86 +f 588/903/86 591/904/87 589/900/85 +f 588/903/86 579/905/15 590/906/88 +f 590/907/88 593/908/89 591/904/87 +f 590/907/88 579/909/15 592/910/97 +f 592/911/97 579/912/15 594/913/91 +f 592/911/97 595/914/92 593/908/89 +f 585/892/81 570/871/67 571/877/72 +f 587/896/83 569/865/63 570/871/67 +f 594/915/91 579/916/15 596/917/100 +f 589/900/85 568/853/53 569/865/63 +f 591/904/87 567/873/69 568/853/53 +f 594/915/91 597/918/94 595/919/92 +f 567/873/69 595/914/92 566/920/64 +f 566/867/64 597/918/94 565/859/58 +f 596/921/100 579/922/15 598/923/95 +f 565/859/58 599/924/96 564/876/71 +f 563/856/56 599/924/96 576/881/76 +f 596/921/100 599/924/96 597/918/94 +f 563/856/56 578/882/75 574/875/70 +f 574/875/70 581/886/78 573/869/65 +f 598/925/95 579/926/15 575/927/73 +f 581/886/78 572/862/61 573/869/65 +f 572/862/61 585/892/81 571/877/72 +f 598/925/95 576/881/76 599/924/96 +f 617/928/53 604/929/54 605/930/55 +f 612/931/56 611/932/57 600/933/19 +f 614/934/58 601/935/59 602/936/60 +f 621/937/61 608/938/62 609/939/17 +f 618/940/63 605/930/55 606/941/16 +f 615/942/64 602/936/60 603/943/18 +f 622/944/65 609/939/17 610/945/66 +f 619/946/67 606/941/16 607/947/68 +f 616/948/69 603/949/18 604/929/54 +f 623/950/70 610/945/66 611/932/57 +f 613/951/71 600/933/19 601/935/59 +f 620/952/72 607/947/68 608/938/62 +f 624/953/73 628/954/15 626/955/74 +f 624/953/73 627/956/75 625/957/76 +f 626/958/74 628/959/15 629/960/98 +f 626/958/74 630/961/78 627/956/75 +f 629/962/98 628/963/15 631/964/79 +f 629/962/98 632/965/80 630/961/78 +f 632/965/80 633/966/82 634/967/81 +f 631/968/79 628/969/15 633/966/82 +f 633/970/82 636/971/83 634/967/81 +f 633/970/82 628/972/15 635/973/84 +f 636/971/83 637/974/86 638/975/85 +f 635/976/84 628/977/15 637/974/86 +f 637/978/86 640/979/87 638/975/85 +f 637/978/86 628/980/15 639/981/88 +f 640/979/87 641/982/97 642/983/89 +f 639/984/88 628/985/15 641/982/97 +f 641/986/97 628/987/15 643/988/91 +f 641/986/97 644/989/92 642/983/89 +f 634/967/81 619/946/67 620/952/72 +f 619/946/67 638/975/85 618/940/63 +f 643/990/91 628/991/15 645/992/100 +f 618/940/63 640/979/87 617/928/53 +f 640/979/87 616/948/69 617/928/53 +f 643/990/91 646/993/94 644/994/92 +f 615/995/64 642/983/89 644/989/92 +f 615/942/64 646/993/94 614/934/58 +f 645/996/100 628/997/15 647/998/95 +f 614/934/58 648/999/96 613/951/71 +f 613/951/71 625/957/76 612/931/56 +f 645/996/100 648/999/96 646/993/94 +f 612/931/56 627/956/75 623/950/70 +f 623/950/70 630/961/78 622/944/65 +f 647/1000/95 628/1001/15 624/1002/73 +f 630/961/78 621/937/61 622/944/65 +f 621/937/61 634/967/81 620/952/72 +f 647/1000/95 625/957/76 648/999/96 +f 656/1003/18 663/1004/101 655/1005/23 +f 654/1006/19 661/1007/102 653/1008/20 +f 652/1009/17 659/1010/103 651/1011/21 +f 650/1012/16 657/1013/104 649/1014/22 +f 649/1014/22 664/1015/105 656/1003/18 +f 655/1005/23 662/1016/106 654/1006/19 +f 653/1008/20 660/1017/107 652/1009/17 +f 651/1018/21 658/1019/108 650/1012/16 +f 658/1020/108 665/1021/109 657/1022/104 +f 664/1015/105 665/1021/109 671/1023/110 +f 662/1016/106 670/1024/111 669/1025/112 +f 661/1026/102 667/1027/113 660/1028/107 +f 664/1015/105 670/1024/111 663/1004/101 +f 662/1016/106 668/1029/114 661/1026/102 +f 671/1023/110 677/1030/115 670/1024/111 +f 668/1029/114 676/1031/116 675/1032/117 +f 665/1021/109 673/1033/118 672/1034/119 +f 665/1021/109 678/1035/120 671/1023/110 +f 670/1024/111 676/1031/116 669/1025/112 +f 668/1029/114 674/1036/121 667/1027/113 +f 658/1020/108 659/1037/103 666/1038/122 +f 666/1038/122 659/1037/103 673/1033/118 +f 660/1028/107 667/1027/113 659/1039/103 +f 667/1027/113 674/1036/121 659/1039/103 +f 659/1040/103 682/1041/50 679/1042/14 +f 672/1043/119 686/1044/51 678/1035/120 +f 659/1045/103 681/1046/48 673/1047/118 +f 677/1030/115 684/1048/49 676/1031/116 +f 675/1049/117 682/1041/50 674/1050/121 +f 677/1030/115 686/1044/51 685/1051/15 +f 675/1049/117 684/1048/49 683/1052/20 +f 672/1043/119 681/1046/48 680/1053/22 +f 694/1054/18 701/1055/101 693/1056/23 +f 692/1057/19 699/1058/102 691/1059/20 +f 690/1060/17 697/1061/103 689/1062/21 +f 688/1063/16 695/1064/104 687/1065/22 +f 687/1065/22 702/1066/105 694/1054/18 +f 693/1056/23 700/1067/106 692/1057/19 +f 691/1059/20 698/1068/107 690/1060/17 +f 689/1069/21 696/1070/108 688/1063/16 +f 695/1071/104 704/1072/122 703/1073/109 +f 695/1071/104 709/1074/110 702/1066/105 +f 701/1055/101 707/1075/112 700/1067/106 +f 699/1076/102 705/1077/113 698/1078/107 +f 701/1055/101 709/1074/110 708/1079/111 +f 700/1067/106 706/1080/114 699/1076/102 +f 709/1074/110 715/1081/115 708/1079/111 +f 707/1075/112 713/1082/117 706/1080/114 +f 704/1072/122 710/1083/119 703/1073/109 +f 709/1074/110 710/1083/119 716/1084/120 +f 708/1079/111 714/1085/116 707/1075/112 +f 705/1077/113 713/1082/117 712/1086/121 +f 696/1087/108 697/1088/103 704/1072/122 +f 704/1072/122 697/1088/103 711/1089/118 +f 698/1078/107 705/1077/113 697/1090/103 +f 705/1077/113 712/1086/121 697/1090/103 +f 712/1091/121 717/1092/14 697/1093/103 +f 716/1084/120 718/1094/22 724/1095/51 +f 711/1096/118 717/1097/14 719/1098/48 +f 715/1081/115 722/1099/49 714/1085/116 +f 713/1100/117 720/1101/50 712/1091/121 +f 716/1084/120 723/1102/15 715/1081/115 +f 714/1085/116 721/1103/20 713/1100/117 +f 711/1096/118 718/1094/22 710/1104/119 +f 740/1105/19 747/1106/123 739/1107/20 +f 738/1108/17 745/1109/124 737/1110/21 +f 736/1111/16 743/1112/48 735/1113/22 +f 734/1114/18 741/1115/125 733/1116/23 +f 733/1116/23 748/1117/126 740/1105/19 +f 739/1107/20 746/1118/127 738/1108/17 +f 737/1110/21 744/1119/128 736/1111/16 +f 735/1120/22 742/1121/129 734/1114/18 +f 742/1122/129 749/1123/130 741/1124/125 +f 748/1117/126 749/1123/130 755/1125/131 +f 746/1118/127 754/1126/49 753/1127/132 +f 744/1128/128 752/1129/133 751/1130/134 +f 747/1106/123 755/1125/131 754/1126/49 +f 746/1118/127 752/1129/133 745/1131/124 +f 754/1126/49 762/1132/135 761/1133/136 +f 752/1129/133 760/1134/137 759/1135/138 +f 750/1136/139 756/1137/140 749/1123/130 +f 749/1123/130 762/1132/135 755/1125/131 +f 754/1126/49 760/1134/137 753/1127/132 +f 752/1129/133 758/1138/141 751/1130/134 +f 742/1122/129 743/1139/48 750/1136/139 +f 750/1136/139 743/1139/48 757/1140/142 +f 744/1128/128 751/1130/134 743/1141/48 +f 751/1130/134 758/1138/141 743/1141/48 +f 743/1142/48 766/1143/103 763/1144/14 +f 756/1145/140 770/1146/111 762/1132/135 +f 743/1147/48 765/1148/28 757/1149/142 +f 761/1133/136 768/1150/39 760/1134/137 +f 759/1151/138 766/1143/103 758/1152/141 +f 762/1132/135 769/1153/15 761/1133/136 +f 759/1151/138 768/1150/39 767/1154/21 +f 756/1145/140 765/1148/28 764/1155/23 +f 778/1156/19 785/1157/123 777/1158/20 +f 776/1159/17 783/1160/124 775/1161/21 +f 774/1162/16 781/1163/48 773/1164/22 +f 772/1165/18 779/1166/125 771/1167/23 +f 771/1167/23 786/1168/126 778/1156/19 +f 777/1158/20 784/1169/127 776/1159/17 +f 775/1161/21 782/1170/128 774/1162/16 +f 773/1171/22 780/1172/129 772/1165/18 +f 779/1173/125 788/1174/143 787/1175/130 +f 779/1173/125 793/1176/131 786/1168/126 +f 784/1169/127 792/1177/49 791/1178/144 +f 783/1179/124 789/1180/134 782/1181/128 +f 785/1157/123 793/1176/131 792/1177/49 +f 784/1169/127 790/1182/133 783/1179/124 +f 793/1176/131 799/1183/136 792/1177/49 +f 791/1178/144 797/1184/138 790/1182/133 +f 788/1174/143 794/1185/140 787/1175/130 +f 787/1175/130 800/1186/135 793/1176/131 +f 792/1177/49 798/1187/137 791/1178/144 +f 789/1180/134 797/1184/138 796/1188/141 +f 780/1189/129 781/1190/48 788/1174/143 +f 788/1174/143 781/1190/48 795/1191/142 +f 782/1181/128 789/1180/134 781/1192/48 +f 789/1180/134 796/1188/141 781/1192/48 +f 796/1193/141 801/1194/14 781/1195/48 +f 800/1186/135 802/1196/23 808/1197/111 +f 795/1198/142 801/1199/14 803/1200/28 +f 798/1187/137 807/1201/15 806/1202/39 +f 796/1193/141 805/1203/21 804/1204/103 +f 799/1183/136 808/1197/111 807/1201/15 +f 798/1187/137 805/1203/21 797/1205/138 +f 795/1198/142 802/1196/23 794/1206/140 +f 824/1207/16 831/1208/145 823/1209/22 +f 822/1210/18 829/1211/146 821/1212/23 +f 820/1213/19 827/1214/50 819/1215/20 +f 818/1216/17 825/1217/147 817/1218/21 +f 817/1218/21 832/1219/148 824/1207/16 +f 823/1209/22 830/1220/149 822/1210/18 +f 821/1212/23 828/1221/150 820/1213/19 +f 819/1222/20 826/1223/151 818/1216/17 +f 826/1224/151 833/1225/152 825/1226/147 +f 832/1219/148 833/1225/152 839/1227/153 +f 830/1220/149 838/1228/51 837/1229/154 +f 828/1230/150 836/1231/155 835/1232/156 +f 831/1208/145 839/1227/153 838/1228/51 +f 830/1220/149 836/1231/155 829/1233/146 +f 839/1227/153 845/1234/157 838/1228/51 +f 836/1231/155 844/1235/158 843/1236/159 +f 833/1225/152 841/1237/160 840/1238/161 +f 833/1225/152 846/1239/162 839/1227/153 +f 838/1228/51 844/1235/158 837/1229/154 +f 836/1231/155 842/1240/163 835/1232/156 +f 826/1224/151 827/1241/50 834/1242/164 +f 834/1242/164 827/1241/50 841/1237/160 +f 828/1230/150 835/1232/156 827/1243/50 +f 835/1232/156 842/1240/163 827/1243/50 +f 827/1244/50 850/1245/28 847/1246/14 +f 840/1247/161 854/1248/39 846/1239/162 +f 827/1249/50 849/1250/103 841/1251/160 +f 844/1235/158 853/1252/15 852/1253/111 +f 843/1254/159 850/1245/28 842/1255/163 +f 845/1234/157 854/1248/39 853/1252/15 +f 844/1235/158 851/1256/23 843/1254/159 +f 840/1247/161 849/1250/103 848/1257/21 +f 862/1258/16 869/1259/145 861/1260/22 +f 860/1261/18 867/1262/146 859/1263/23 +f 858/1264/19 865/1265/50 857/1266/20 +f 856/1267/17 863/1268/147 855/1269/21 +f 855/1269/21 870/1270/148 862/1258/16 +f 861/1260/22 868/1271/149 860/1261/18 +f 859/1263/23 866/1272/150 858/1264/19 +f 857/1273/20 864/1274/151 856/1267/17 +f 863/1275/147 872/1276/165 871/1277/166 +f 863/1275/147 877/1278/153 870/1270/148 +f 869/1259/145 875/1279/154 868/1271/149 +f 867/1280/146 873/1281/156 866/1282/150 +f 869/1259/145 877/1278/153 876/1283/51 +f 868/1271/149 874/1284/155 867/1280/146 +f 877/1278/153 883/1285/157 876/1283/51 +f 875/1279/154 881/1286/159 874/1284/155 +f 872/1276/165 878/1287/161 871/1277/166 +f 871/1277/166 884/1288/162 877/1278/153 +f 876/1283/51 882/1289/158 875/1279/154 +f 873/1281/156 881/1286/159 880/1290/163 +f 864/1291/151 865/1292/50 872/1276/165 +f 872/1276/165 865/1292/50 879/1293/160 +f 866/1282/150 873/1281/156 865/1294/50 +f 873/1281/156 880/1290/163 865/1294/50 +f 880/1295/163 885/1296/14 865/1297/50 +f 884/1288/162 886/1298/21 892/1299/39 +f 879/1300/160 885/1301/14 887/1302/103 +f 883/1285/157 890/1303/111 882/1289/158 +f 880/1295/163 889/1304/23 888/1305/28 +f 884/1288/162 891/1306/15 883/1285/157 +f 882/1289/158 889/1304/23 881/1307/159 +f 879/1300/160 886/1298/21 878/1308/161 +f 240/601/17 248/613/30 247/602/26 +f 238/604/16 246/614/31 245/605/27 +f 236/607/18 244/615/32 243/608/28 +f 234/610/19 242/617/33 241/611/29 +f 233/612/20 241/611/29 248/613/30 +f 239/603/21 247/602/26 246/614/31 +f 237/606/22 245/605/27 244/615/32 +f 235/616/23 243/1309/28 242/617/33 +f 242/618/33 250/631/43 249/619/34 +f 241/620/29 249/619/34 255/621/35 +f 247/602/26 254/626/39 253/622/36 +f 244/623/32 245/627/27 252/624/37 +f 247/602/26 248/613/30 255/621/35 +f 246/614/31 253/622/36 252/624/37 +f 255/621/35 262/633/45 261/628/40 +f 252/624/37 253/622/36 260/629/41 +f 250/631/43 257/636/47 256/632/44 +f 249/619/34 256/632/44 262/633/45 +f 254/626/39 261/628/40 260/629/41 +f 252/624/37 259/630/42 258/634/46 +f 243/638/28 258/648/46 266/639/48 +f 256/641/44 264/651/20 270/642/49 +f 243/643/28 263/1310/14 265/644/50 +f 261/628/40 269/649/15 268/646/51 +f 259/647/42 267/650/22 266/639/48 +f 262/633/45 270/642/49 269/649/15 +f 259/647/42 260/629/41 268/646/51 +f 256/641/44 257/645/47 265/644/50 +f 278/652/17 286/664/30 285/653/26 +f 276/655/16 284/665/31 283/656/27 +f 274/658/18 282/666/32 281/659/28 +f 272/661/19 280/668/33 279/662/29 +f 271/663/20 279/662/29 286/664/30 +f 277/654/21 285/653/26 284/665/31 +f 275/657/22 283/656/27 282/666/32 +f 273/667/23 281/1311/28 280/668/33 +f 279/669/29 280/685/33 288/670/43 +f 279/669/29 287/671/34 293/672/35 +f 285/653/26 292/677/39 291/673/36 +f 283/674/27 290/678/52 289/675/38 +f 285/653/26 286/664/30 293/672/35 +f 283/674/27 284/665/31 291/673/36 +f 293/672/35 300/682/45 299/679/40 +f 291/673/36 298/683/41 297/680/42 +f 288/670/43 295/687/47 294/681/44 +f 293/672/35 287/671/34 294/681/44 +f 292/677/39 299/679/40 298/683/41 +f 289/675/38 290/678/52 297/680/42 +f 296/689/46 304/700/48 301/690/14 +f 300/682/45 294/702/44 302/692/20 +f 295/694/47 281/1312/28 301/695/14 +f 298/683/41 299/679/40 307/697/15 +f 296/689/46 297/701/42 305/699/22 +f 300/682/45 308/693/49 307/697/15 +f 298/683/41 306/698/51 305/699/22 +f 295/694/47 303/696/50 302/692/20 +f 326/703/53 325/723/69 313/704/54 +f 321/706/56 332/725/70 320/707/57 +f 323/709/58 322/726/71 310/710/59 +f 330/712/61 329/727/72 317/713/62 +f 327/715/63 326/703/53 314/705/55 +f 324/717/64 323/709/58 311/711/60 +f 331/719/65 330/712/61 318/714/17 +f 328/721/67 327/715/63 315/716/16 +f 325/723/69 324/770/64 312/724/18 +f 332/725/70 331/719/65 319/720/66 +f 322/726/71 321/706/56 309/708/19 +f 329/727/72 328/721/67 316/722/68 +f 333/728/73 335/730/74 336/731/75 +f 336/731/75 335/733/74 338/735/77 +f 339/736/78 338/737/77 340/739/79 +f 340/741/79 342/744/82 343/742/81 +f 342/745/82 344/748/84 345/746/83 +f 344/749/84 346/752/86 347/750/85 +f 346/753/86 348/756/88 349/754/87 +f 348/757/88 350/760/90 351/758/89 +f 350/761/90 352/763/91 353/764/92 +f 343/742/81 345/746/83 328/721/67 +f 328/721/67 345/746/83 347/750/85 +f 327/715/63 347/750/85 349/754/87 +f 349/754/87 351/758/89 325/723/69 +f 352/765/91 354/767/93 355/768/94 +f 324/770/64 325/723/69 351/758/89 +f 324/717/64 353/769/92 355/768/94 +f 323/709/58 355/768/94 357/774/96 +f 321/706/56 322/726/71 357/774/96 +f 354/771/93 356/773/95 357/774/96 +f 321/706/56 334/732/76 336/731/75 +f 332/725/70 336/731/75 339/736/78 +f 339/736/78 341/740/80 330/712/61 +f 341/740/80 343/742/81 329/727/72 +f 357/774/96 356/775/95 333/777/73 +f 519/778/53 518/798/69 506/779/54 +f 514/781/56 525/800/70 513/782/57 +f 516/784/58 515/801/71 503/785/59 +f 523/787/61 522/802/72 510/788/62 +f 520/790/63 519/778/53 507/780/55 +f 517/792/64 516/784/58 504/786/60 +f 524/794/65 523/787/61 511/789/17 +f 521/796/67 520/790/63 508/791/16 +f 518/798/69 517/845/64 505/799/18 +f 525/800/70 524/794/65 512/795/66 +f 515/801/71 514/781/56 502/783/19 +f 522/802/72 521/796/67 509/797/68 +f 526/803/73 528/805/74 529/806/75 +f 528/808/74 531/810/77 532/811/78 +f 531/812/77 533/814/79 534/815/80 +f 533/816/79 535/819/82 536/817/81 +f 535/820/82 537/823/84 538/821/83 +f 537/824/84 539/827/86 540/825/85 +f 540/825/85 539/830/86 541/828/88 +f 541/832/88 543/835/97 544/833/89 +f 544/833/89 543/836/97 545/838/91 +f 522/802/72 536/817/81 538/821/83 +f 521/796/67 538/821/83 540/825/85 +f 520/790/63 540/825/85 542/829/87 +f 542/829/87 544/833/89 518/798/69 +f 545/840/91 547/842/93 548/843/94 +f 517/845/64 518/798/69 544/833/89 +f 517/792/64 546/844/92 548/843/94 +f 516/784/58 548/843/94 550/849/96 +f 514/781/56 515/801/71 550/849/96 +f 547/846/93 549/848/95 550/849/96 +f 514/781/56 527/807/76 529/806/75 +f 525/800/70 529/806/75 532/811/78 +f 532/811/78 534/815/80 523/787/61 +f 523/787/61 534/815/80 536/817/81 +f 549/850/95 526/852/73 527/807/76 +f 568/853/53 567/873/69 555/854/54 +f 563/856/56 574/875/70 562/857/57 +f 565/859/58 564/876/71 552/860/59 +f 572/862/61 571/877/72 559/863/62 +f 569/865/63 568/853/53 556/855/55 +f 566/867/64 565/859/58 553/861/60 +f 573/869/65 572/862/61 560/864/17 +f 570/871/67 569/865/63 557/866/16 +f 567/873/69 566/920/64 554/874/18 +f 574/875/70 573/869/65 561/870/66 +f 564/876/71 563/856/56 551/858/19 +f 571/877/72 570/871/67 558/872/68 +f 576/881/76 575/878/73 577/880/74 +f 577/883/74 580/885/98 581/886/78 +f 581/886/78 580/887/98 582/889/79 +f 582/891/79 584/894/82 585/892/81 +f 585/892/81 584/897/82 586/895/99 +f 587/896/83 586/901/99 588/899/86 +f 588/903/86 590/906/88 591/904/87 +f 590/907/88 592/910/97 593/908/89 +f 592/911/97 594/913/91 595/914/92 +f 585/892/81 587/896/83 570/871/67 +f 587/896/83 589/900/85 569/865/63 +f 589/900/85 591/904/87 568/853/53 +f 591/904/87 593/908/89 567/873/69 +f 594/915/91 596/917/100 597/918/94 +f 567/873/69 593/908/89 595/914/92 +f 566/867/64 595/919/92 597/918/94 +f 565/859/58 597/918/94 599/924/96 +f 563/856/56 564/876/71 599/924/96 +f 596/921/100 598/923/95 599/924/96 +f 563/856/56 576/881/76 578/882/75 +f 574/875/70 578/882/75 581/886/78 +f 581/886/78 583/890/80 572/862/61 +f 572/862/61 583/890/80 585/892/81 +f 598/925/95 575/927/73 576/881/76 +f 617/928/53 616/948/69 604/929/54 +f 612/931/56 623/950/70 611/932/57 +f 614/934/58 613/951/71 601/935/59 +f 621/937/61 620/952/72 608/938/62 +f 618/940/63 617/928/53 605/930/55 +f 615/942/64 614/934/58 602/936/60 +f 622/944/65 621/937/61 609/939/17 +f 619/946/67 618/940/63 606/941/16 +f 616/948/69 615/995/64 603/949/18 +f 623/950/70 622/944/65 610/945/66 +f 613/951/71 612/931/56 600/933/19 +f 620/952/72 619/946/67 607/947/68 +f 624/953/73 626/955/74 627/956/75 +f 626/958/74 629/960/98 630/961/78 +f 629/962/98 631/964/79 632/965/80 +f 632/965/80 631/968/79 633/966/82 +f 633/970/82 635/973/84 636/971/83 +f 636/971/83 635/976/84 637/974/86 +f 637/978/86 639/981/88 640/979/87 +f 640/979/87 639/984/88 641/982/97 +f 641/986/97 643/988/91 644/989/92 +f 634/967/81 636/971/83 619/946/67 +f 619/946/67 636/971/83 638/975/85 +f 618/940/63 638/975/85 640/979/87 +f 640/979/87 642/983/89 616/948/69 +f 643/990/91 645/992/100 646/993/94 +f 615/995/64 616/948/69 642/983/89 +f 615/942/64 644/994/92 646/993/94 +f 614/934/58 646/993/94 648/999/96 +f 613/951/71 648/999/96 625/957/76 +f 645/996/100 647/998/95 648/999/96 +f 612/931/56 625/957/76 627/956/75 +f 623/950/70 627/956/75 630/961/78 +f 630/961/78 632/965/80 621/937/61 +f 621/937/61 632/965/80 634/967/81 +f 647/1000/95 624/1002/73 625/957/76 +f 656/1003/18 664/1015/105 663/1004/101 +f 654/1006/19 662/1016/106 661/1007/102 +f 652/1009/17 660/1017/107 659/1010/103 +f 650/1012/16 658/1019/108 657/1013/104 +f 649/1014/22 657/1013/104 664/1015/105 +f 655/1005/23 663/1004/101 662/1016/106 +f 653/1008/20 661/1007/102 660/1017/107 +f 651/1018/21 659/1313/103 658/1019/108 +f 658/1020/108 666/1038/122 665/1021/109 +f 664/1015/105 657/1022/104 665/1021/109 +f 662/1016/106 663/1004/101 670/1024/111 +f 661/1026/102 668/1029/114 667/1027/113 +f 664/1015/105 671/1023/110 670/1024/111 +f 662/1016/106 669/1025/112 668/1029/114 +f 671/1023/110 678/1035/120 677/1030/115 +f 668/1029/114 669/1025/112 676/1031/116 +f 665/1021/109 666/1038/122 673/1033/118 +f 665/1021/109 672/1034/119 678/1035/120 +f 670/1024/111 677/1030/115 676/1031/116 +f 668/1029/114 675/1032/117 674/1036/121 +f 659/1040/103 674/1050/121 682/1041/50 +f 672/1043/119 680/1053/22 686/1044/51 +f 659/1045/103 679/1314/14 681/1046/48 +f 677/1030/115 685/1051/15 684/1048/49 +f 675/1049/117 683/1052/20 682/1041/50 +f 677/1030/115 678/1035/120 686/1044/51 +f 675/1049/117 676/1031/116 684/1048/49 +f 672/1043/119 673/1047/118 681/1046/48 +f 694/1054/18 702/1066/105 701/1055/101 +f 692/1057/19 700/1067/106 699/1058/102 +f 690/1060/17 698/1068/107 697/1061/103 +f 688/1063/16 696/1070/108 695/1064/104 +f 687/1065/22 695/1064/104 702/1066/105 +f 693/1056/23 701/1055/101 700/1067/106 +f 691/1059/20 699/1058/102 698/1068/107 +f 689/1069/21 697/1315/103 696/1070/108 +f 695/1071/104 696/1087/108 704/1072/122 +f 695/1071/104 703/1073/109 709/1074/110 +f 701/1055/101 708/1079/111 707/1075/112 +f 699/1076/102 706/1080/114 705/1077/113 +f 701/1055/101 702/1066/105 709/1074/110 +f 700/1067/106 707/1075/112 706/1080/114 +f 709/1074/110 716/1084/120 715/1081/115 +f 707/1075/112 714/1085/116 713/1082/117 +f 704/1072/122 711/1089/118 710/1083/119 +f 709/1074/110 703/1073/109 710/1083/119 +f 708/1079/111 715/1081/115 714/1085/116 +f 705/1077/113 706/1080/114 713/1082/117 +f 712/1091/121 720/1101/50 717/1092/14 +f 716/1084/120 710/1104/119 718/1094/22 +f 711/1096/118 697/1316/103 717/1097/14 +f 715/1081/115 723/1102/15 722/1099/49 +f 713/1100/117 721/1103/20 720/1101/50 +f 716/1084/120 724/1095/51 723/1102/15 +f 714/1085/116 722/1099/49 721/1103/20 +f 711/1096/118 719/1098/48 718/1094/22 +f 740/1105/19 748/1117/126 747/1106/123 +f 738/1108/17 746/1118/127 745/1109/124 +f 736/1111/16 744/1119/128 743/1112/48 +f 734/1114/18 742/1121/129 741/1115/125 +f 733/1116/23 741/1115/125 748/1117/126 +f 739/1107/20 747/1106/123 746/1118/127 +f 737/1110/21 745/1109/124 744/1119/128 +f 735/1120/22 743/1317/48 742/1121/129 +f 742/1122/129 750/1136/139 749/1123/130 +f 748/1117/126 741/1124/125 749/1123/130 +f 746/1118/127 747/1106/123 754/1126/49 +f 744/1128/128 745/1131/124 752/1129/133 +f 747/1106/123 748/1117/126 755/1125/131 +f 746/1118/127 753/1127/132 752/1129/133 +f 754/1126/49 755/1125/131 762/1132/135 +f 752/1129/133 753/1127/132 760/1134/137 +f 750/1136/139 757/1140/142 756/1137/140 +f 749/1123/130 756/1137/140 762/1132/135 +f 754/1126/49 761/1133/136 760/1134/137 +f 752/1129/133 759/1135/138 758/1138/141 +f 743/1142/48 758/1152/141 766/1143/103 +f 756/1145/140 764/1155/23 770/1146/111 +f 743/1147/48 763/1318/14 765/1148/28 +f 761/1133/136 769/1153/15 768/1150/39 +f 759/1151/138 767/1154/21 766/1143/103 +f 762/1132/135 770/1146/111 769/1153/15 +f 759/1151/138 760/1134/137 768/1150/39 +f 756/1145/140 757/1149/142 765/1148/28 +f 778/1156/19 786/1168/126 785/1157/123 +f 776/1159/17 784/1169/127 783/1160/124 +f 774/1162/16 782/1170/128 781/1163/48 +f 772/1165/18 780/1172/129 779/1166/125 +f 771/1167/23 779/1166/125 786/1168/126 +f 777/1158/20 785/1157/123 784/1169/127 +f 775/1161/21 783/1160/124 782/1170/128 +f 773/1171/22 781/1319/48 780/1172/129 +f 779/1173/125 780/1189/129 788/1174/143 +f 779/1173/125 787/1175/130 793/1176/131 +f 784/1169/127 785/1157/123 792/1177/49 +f 783/1179/124 790/1182/133 789/1180/134 +f 785/1157/123 786/1168/126 793/1176/131 +f 784/1169/127 791/1178/144 790/1182/133 +f 793/1176/131 800/1186/135 799/1183/136 +f 791/1178/144 798/1187/137 797/1184/138 +f 788/1174/143 795/1191/142 794/1185/140 +f 787/1175/130 794/1185/140 800/1186/135 +f 792/1177/49 799/1183/136 798/1187/137 +f 789/1180/134 790/1182/133 797/1184/138 +f 796/1193/141 804/1204/103 801/1194/14 +f 800/1186/135 794/1206/140 802/1196/23 +f 795/1198/142 781/1320/48 801/1199/14 +f 798/1187/137 799/1183/136 807/1201/15 +f 796/1193/141 797/1205/138 805/1203/21 +f 799/1183/136 800/1186/135 808/1197/111 +f 798/1187/137 806/1202/39 805/1203/21 +f 795/1198/142 803/1200/28 802/1196/23 +f 824/1207/16 832/1219/148 831/1208/145 +f 822/1210/18 830/1220/149 829/1211/146 +f 820/1213/19 828/1221/150 827/1214/50 +f 818/1216/17 826/1223/151 825/1217/147 +f 817/1218/21 825/1217/147 832/1219/148 +f 823/1209/22 831/1208/145 830/1220/149 +f 821/1212/23 829/1211/146 828/1221/150 +f 819/1222/20 827/1321/50 826/1223/151 +f 826/1224/151 834/1242/164 833/1225/152 +f 832/1219/148 825/1226/147 833/1225/152 +f 830/1220/149 831/1208/145 838/1228/51 +f 828/1230/150 829/1233/146 836/1231/155 +f 831/1208/145 832/1219/148 839/1227/153 +f 830/1220/149 837/1229/154 836/1231/155 +f 839/1227/153 846/1239/162 845/1234/157 +f 836/1231/155 837/1229/154 844/1235/158 +f 833/1225/152 834/1242/164 841/1237/160 +f 833/1225/152 840/1238/161 846/1239/162 +f 838/1228/51 845/1234/157 844/1235/158 +f 836/1231/155 843/1236/159 842/1240/163 +f 827/1244/50 842/1255/163 850/1245/28 +f 840/1247/161 848/1257/21 854/1248/39 +f 827/1249/50 847/1322/14 849/1250/103 +f 844/1235/158 845/1234/157 853/1252/15 +f 843/1254/159 851/1256/23 850/1245/28 +f 845/1234/157 846/1239/162 854/1248/39 +f 844/1235/158 852/1253/111 851/1256/23 +f 840/1247/161 841/1251/160 849/1250/103 +f 862/1258/16 870/1270/148 869/1259/145 +f 860/1261/18 868/1271/149 867/1262/146 +f 858/1264/19 866/1272/150 865/1265/50 +f 856/1267/17 864/1274/151 863/1268/147 +f 855/1269/21 863/1268/147 870/1270/148 +f 861/1260/22 869/1259/145 868/1271/149 +f 859/1263/23 867/1262/146 866/1272/150 +f 857/1273/20 865/1323/50 864/1274/151 +f 863/1275/147 864/1291/151 872/1276/165 +f 863/1275/147 871/1277/166 877/1278/153 +f 869/1259/145 876/1283/51 875/1279/154 +f 867/1280/146 874/1284/155 873/1281/156 +f 869/1259/145 870/1270/148 877/1278/153 +f 868/1271/149 875/1279/154 874/1284/155 +f 877/1278/153 884/1288/162 883/1285/157 +f 875/1279/154 882/1289/158 881/1286/159 +f 872/1276/165 879/1293/160 878/1287/161 +f 871/1277/166 878/1287/161 884/1288/162 +f 876/1283/51 883/1285/157 882/1289/158 +f 873/1281/156 874/1284/155 881/1286/159 +f 880/1295/163 888/1305/28 885/1296/14 +f 884/1288/162 878/1308/161 886/1298/21 +f 879/1300/160 865/1324/50 885/1301/14 +f 883/1285/157 891/1306/15 890/1303/111 +f 880/1295/163 881/1307/159 889/1304/23 +f 884/1288/162 892/1299/39 891/1306/15 +f 882/1289/158 890/1303/111 889/1304/23 +f 879/1300/160 887/1302/103 886/1298/21 diff --git a/src/main/resources/assets/hbm/models/machines/ammo_press.obj b/src/main/resources/assets/hbm/models/machines/ammo_press.obj new file mode 100644 index 000000000..b3a868e84 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/ammo_press.obj @@ -0,0 +1,2582 @@ +# Blender v2.79 (sub 0) OBJ File: 'ammo_press.blend' +# www.blender.org +o Press +v -0.250000 1.875000 -0.750000 +v -0.250000 1.875000 0.750000 +v 0.250000 1.875000 0.750000 +v 0.250000 1.875000 -0.750000 +v -0.250000 1.375000 -0.750000 +v -0.250000 1.375000 0.750000 +v 0.250000 1.375000 0.750000 +v 0.250000 1.375000 -0.750000 +vt 0.508772 0.857143 +vt 0.719298 0.761905 +vt 0.719298 0.857143 +vt 0.719298 0.666667 +vt 0.508772 0.761905 +vt 0.508772 0.666667 +vt 0.719298 0.571429 +vt 0.508772 0.571429 +vt 0.789474 0.761905 +vt 0.789474 0.666667 +vt 0.438596 0.666667 +vt 0.438596 0.761905 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 3/1/1 8/2/1 4/3/1 +f 5/4/2 7/5/2 6/6/2 +f 1/7/3 6/6/3 2/8/3 +f 4/9/4 5/4/4 1/10/4 +f 2/11/5 7/5/5 3/12/5 +f 3/1/1 7/5/1 8/2/1 +f 5/4/2 8/2/2 7/5/2 +f 1/7/3 5/4/3 6/6/3 +f 4/9/4 8/2/4 5/4/4 +f 2/11/5 6/6/5 7/5/5 +o Shells +v 0.250000 1.000000 -0.750000 +v 0.250000 1.000000 0.750000 +v -0.250000 1.000000 0.750000 +v -0.250000 1.000000 -0.750000 +v 0.125000 1.000000 0.406250 +v 0.102903 1.000000 0.415403 +v 0.093750 1.000000 0.437500 +v 0.102903 1.000000 0.459597 +v 0.125000 1.000000 0.468750 +v 0.147097 1.000000 0.459597 +v 0.156250 1.000000 0.437500 +v 0.147097 1.000000 0.415403 +v 0.125000 1.125000 0.406250 +v 0.102903 1.125000 0.415403 +v 0.093750 1.125000 0.437500 +v 0.102903 1.125000 0.459597 +v 0.125000 1.125000 0.468750 +v 0.147097 1.125000 0.459597 +v 0.156250 1.125000 0.437500 +v 0.147097 1.125000 0.415403 +v 0.156250 1.000000 -0.468750 +v 0.156250 1.000000 0.468750 +v 0.156250 1.062500 -0.468750 +v 0.156250 1.062500 0.468750 +v 0.187500 1.000000 -0.468750 +v 0.187500 1.000000 0.468750 +v 0.187500 1.062500 -0.468750 +v 0.187500 1.062500 0.468750 +v 0.062500 1.000000 -0.468750 +v 0.062500 1.000000 0.468750 +v 0.062500 1.062500 -0.468750 +v 0.062500 1.062500 0.468750 +v 0.093750 1.000000 -0.468750 +v 0.093750 1.000000 0.468750 +v 0.093750 1.062500 -0.468750 +v 0.093750 1.062500 0.468750 +v -0.093750 1.000000 -0.468750 +v -0.093750 1.000000 0.468750 +v -0.093750 1.062500 -0.468750 +v -0.093750 1.062500 0.468750 +v -0.062500 1.000000 -0.468750 +v -0.062500 1.000000 0.468750 +v -0.062500 1.062500 -0.468750 +v -0.062500 1.062500 0.468750 +v -0.187500 1.000000 -0.468750 +v -0.187500 1.000000 0.468750 +v -0.187500 1.062500 -0.468750 +v -0.187500 1.062500 0.468750 +v -0.156250 1.000000 -0.468750 +v -0.156250 1.000000 0.468750 +v -0.156250 1.062500 -0.468750 +v -0.156250 1.062500 0.468750 +v -0.125000 1.000000 0.406250 +v -0.147097 1.000000 0.415403 +v -0.156250 1.000000 0.437500 +v -0.147097 1.000000 0.459597 +v -0.125000 1.000000 0.468750 +v -0.102903 1.000000 0.459597 +v -0.093750 1.000000 0.437500 +v -0.102903 1.000000 0.415403 +v -0.125000 1.125000 0.406250 +v -0.147097 1.125000 0.415403 +v -0.156250 1.125000 0.437500 +v -0.147097 1.125000 0.459597 +v -0.125000 1.125000 0.468750 +v -0.102903 1.125000 0.459597 +v -0.093750 1.125000 0.437500 +v -0.102903 1.125000 0.415403 +v 0.125000 1.000000 0.281250 +v 0.102903 1.000000 0.290403 +v 0.093750 1.000000 0.312500 +v 0.102903 1.000000 0.334597 +v 0.125000 1.000000 0.343750 +v 0.147097 1.000000 0.334597 +v 0.156250 1.000000 0.312500 +v 0.147097 1.000000 0.290403 +v 0.125000 1.125000 0.281250 +v 0.102903 1.125000 0.290403 +v 0.093750 1.125000 0.312500 +v 0.102903 1.125000 0.334597 +v 0.125000 1.125000 0.343750 +v 0.147097 1.125000 0.334597 +v 0.156250 1.125000 0.312500 +v 0.147097 1.125000 0.290403 +v -0.125000 1.000000 0.281250 +v -0.147097 1.000000 0.290403 +v -0.156250 1.000000 0.312500 +v -0.147097 1.000000 0.334597 +v -0.125000 1.000000 0.343750 +v -0.102903 1.000000 0.334597 +v -0.093750 1.000000 0.312500 +v -0.102903 1.000000 0.290403 +v -0.125000 1.125000 0.281250 +v -0.147097 1.125000 0.290403 +v -0.156250 1.125000 0.312500 +v -0.147097 1.125000 0.334597 +v -0.125000 1.125000 0.343750 +v -0.102903 1.125000 0.334597 +v -0.093750 1.125000 0.312500 +v -0.102903 1.125000 0.290403 +v 0.125000 1.000000 0.156250 +v 0.102903 1.000000 0.165403 +v 0.093750 1.000000 0.187500 +v 0.102903 1.000000 0.209597 +v 0.125000 1.000000 0.218750 +v 0.147097 1.000000 0.209597 +v 0.156250 1.000000 0.187500 +v 0.147097 1.000000 0.165403 +v 0.125000 1.125000 0.156250 +v 0.102903 1.125000 0.165403 +v 0.093750 1.125000 0.187500 +v 0.102903 1.125000 0.209597 +v 0.125000 1.125000 0.218750 +v 0.147097 1.125000 0.209597 +v 0.156250 1.125000 0.187500 +v 0.147097 1.125000 0.165403 +v -0.125000 1.000000 0.156250 +v -0.147097 1.000000 0.165403 +v -0.156250 1.000000 0.187500 +v -0.147097 1.000000 0.209597 +v -0.125000 1.000000 0.218750 +v -0.102903 1.000000 0.209597 +v -0.093750 1.000000 0.187500 +v -0.102903 1.000000 0.165403 +v -0.125000 1.125000 0.156250 +v -0.147097 1.125000 0.165403 +v -0.156250 1.125000 0.187500 +v -0.147097 1.125000 0.209597 +v -0.125000 1.125000 0.218750 +v -0.102903 1.125000 0.209597 +v -0.093750 1.125000 0.187500 +v -0.102903 1.125000 0.165403 +v 0.125000 1.000000 0.031250 +v 0.102903 1.000000 0.040403 +v 0.093750 1.000000 0.062500 +v 0.102903 1.000000 0.084597 +v 0.125000 1.000000 0.093750 +v 0.147097 1.000000 0.084597 +v 0.156250 1.000000 0.062500 +v 0.147097 1.000000 0.040403 +v 0.125000 1.125000 0.031250 +v 0.102903 1.125000 0.040403 +v 0.093750 1.125000 0.062500 +v 0.102903 1.125000 0.084597 +v 0.125000 1.125000 0.093750 +v 0.147097 1.125000 0.084597 +v 0.156250 1.125000 0.062500 +v 0.147097 1.125000 0.040403 +v -0.125000 1.000000 0.031250 +v -0.147097 1.000000 0.040403 +v -0.156250 1.000000 0.062500 +v -0.147097 1.000000 0.084597 +v -0.125000 1.000000 0.093750 +v -0.102903 1.000000 0.084597 +v -0.093750 1.000000 0.062500 +v -0.102903 1.000000 0.040403 +v -0.125000 1.125000 0.031250 +v -0.147097 1.125000 0.040403 +v -0.156250 1.125000 0.062500 +v -0.147097 1.125000 0.084597 +v -0.125000 1.125000 0.093750 +v -0.102903 1.125000 0.084597 +v -0.093750 1.125000 0.062500 +v -0.102903 1.125000 0.040403 +v 0.125000 1.000000 -0.093750 +v 0.102903 1.000000 -0.084597 +v 0.093750 1.000000 -0.062500 +v 0.102903 1.000000 -0.040403 +v 0.125000 1.000000 -0.031250 +v 0.147097 1.000000 -0.040403 +v 0.156250 1.000000 -0.062500 +v 0.147097 1.000000 -0.084597 +v 0.125000 1.125000 -0.093750 +v 0.102903 1.125000 -0.084597 +v 0.093750 1.125000 -0.062500 +v 0.102903 1.125000 -0.040403 +v 0.125000 1.125000 -0.031250 +v 0.147097 1.125000 -0.040403 +v 0.156250 1.125000 -0.062500 +v 0.147097 1.125000 -0.084597 +v -0.125000 1.000000 -0.093750 +v -0.147097 1.000000 -0.084597 +v -0.156250 1.000000 -0.062500 +v -0.147097 1.000000 -0.040403 +v -0.125000 1.000000 -0.031250 +v -0.102903 1.000000 -0.040403 +v -0.093750 1.000000 -0.062500 +v -0.102903 1.000000 -0.084597 +v -0.125000 1.125000 -0.093750 +v -0.147097 1.125000 -0.084597 +v -0.156250 1.125000 -0.062500 +v -0.147097 1.125000 -0.040403 +v -0.125000 1.125000 -0.031250 +v -0.102903 1.125000 -0.040403 +v -0.093750 1.125000 -0.062500 +v -0.102903 1.125000 -0.084597 +v 0.125000 1.000000 -0.218750 +v 0.102903 1.000000 -0.209597 +v 0.093750 1.000000 -0.187500 +v 0.102903 1.000000 -0.165403 +v 0.125000 1.000000 -0.156250 +v 0.147097 1.000000 -0.165403 +v 0.156250 1.000000 -0.187500 +v 0.147097 1.000000 -0.209597 +v 0.125000 1.125000 -0.218750 +v 0.102903 1.125000 -0.209597 +v 0.093750 1.125000 -0.187500 +v 0.102903 1.125000 -0.165403 +v 0.125000 1.125000 -0.156250 +v 0.147097 1.125000 -0.165403 +v 0.156250 1.125000 -0.187500 +v 0.147097 1.125000 -0.209597 +v -0.125000 1.000000 -0.218750 +v -0.147097 1.000000 -0.209597 +v -0.156250 1.000000 -0.187500 +v -0.147097 1.000000 -0.165403 +v -0.125000 1.000000 -0.156250 +v -0.102903 1.000000 -0.165403 +v -0.093750 1.000000 -0.187500 +v -0.102903 1.000000 -0.209597 +v -0.125000 1.125000 -0.218750 +v -0.147097 1.125000 -0.209597 +v -0.156250 1.125000 -0.187500 +v -0.147097 1.125000 -0.165403 +v -0.125000 1.125000 -0.156250 +v -0.102903 1.125000 -0.165403 +v -0.093750 1.125000 -0.187500 +v -0.102903 1.125000 -0.209597 +v 0.125000 1.000000 -0.343750 +v 0.102903 1.000000 -0.334597 +v 0.093750 1.000000 -0.312500 +v 0.102903 1.000000 -0.290403 +v 0.125000 1.000000 -0.281250 +v 0.147097 1.000000 -0.290403 +v 0.156250 1.000000 -0.312500 +v 0.147097 1.000000 -0.334597 +v 0.125000 1.125000 -0.343750 +v 0.102903 1.125000 -0.334597 +v 0.093750 1.125000 -0.312500 +v 0.102903 1.125000 -0.290403 +v 0.125000 1.125000 -0.281250 +v 0.147097 1.125000 -0.290403 +v 0.156250 1.125000 -0.312500 +v 0.147097 1.125000 -0.334597 +v -0.125000 1.000000 -0.343750 +v -0.147097 1.000000 -0.334597 +v -0.156250 1.000000 -0.312500 +v -0.147097 1.000000 -0.290403 +v -0.125000 1.000000 -0.281250 +v -0.102903 1.000000 -0.290403 +v -0.093750 1.000000 -0.312500 +v -0.102903 1.000000 -0.334597 +v -0.125000 1.125000 -0.343750 +v -0.147097 1.125000 -0.334597 +v -0.156250 1.125000 -0.312500 +v -0.147097 1.125000 -0.290403 +v -0.125000 1.125000 -0.281250 +v -0.102903 1.125000 -0.290403 +v -0.093750 1.125000 -0.312500 +v -0.102903 1.125000 -0.334597 +v 0.125000 1.000000 -0.468750 +v 0.102903 1.000000 -0.459597 +v 0.093750 1.000000 -0.437500 +v 0.102903 1.000000 -0.415403 +v 0.125000 1.000000 -0.406250 +v 0.147097 1.000000 -0.415403 +v 0.156250 1.000000 -0.437500 +v 0.147097 1.000000 -0.459597 +v 0.125000 1.125000 -0.468750 +v 0.102903 1.125000 -0.459597 +v 0.093750 1.125000 -0.437500 +v 0.102903 1.125000 -0.415403 +v 0.125000 1.125000 -0.406250 +v 0.147097 1.125000 -0.415403 +v 0.156250 1.125000 -0.437500 +v 0.147097 1.125000 -0.459597 +v -0.125000 1.000000 -0.468750 +v -0.147097 1.000000 -0.459597 +v -0.156250 1.000000 -0.437500 +v -0.147097 1.000000 -0.415403 +v -0.125000 1.000000 -0.406250 +v -0.102903 1.000000 -0.415403 +v -0.093750 1.000000 -0.437500 +v -0.102903 1.000000 -0.459597 +v -0.125000 1.125000 -0.468750 +v -0.147097 1.125000 -0.459597 +v -0.156250 1.125000 -0.437500 +v -0.147097 1.125000 -0.415403 +v -0.125000 1.125000 -0.406250 +v -0.102903 1.125000 -0.415403 +v -0.093750 1.125000 -0.437500 +v -0.102903 1.125000 -0.459597 +vt 0.333333 0.833333 +vt 0.122807 0.928571 +vt 0.122807 0.833333 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.728070 0.607143 +vt 0.859649 0.595238 +vt 0.859649 0.607143 +vt 0.868421 0.583333 +vt 0.868421 0.595238 +vt 0.719298 0.595238 +vt 0.728070 0.583333 +vt 0.728070 0.595238 +vt 0.859649 0.583333 +vt 0.859649 0.571429 +vt 0.728070 0.607143 +vt 0.859649 0.595238 +vt 0.859649 0.607143 +vt 0.868421 0.583333 +vt 0.868421 0.595238 +vt 0.719298 0.595238 +vt 0.728070 0.583333 +vt 0.728070 0.595238 +vt 0.859649 0.583333 +vt 0.859649 0.571429 +vt 0.728070 0.607143 +vt 0.859649 0.595238 +vt 0.859649 0.607143 +vt 0.868421 0.583333 +vt 0.868421 0.595238 +vt 0.719298 0.595238 +vt 0.728070 0.583333 +vt 0.728070 0.595238 +vt 0.859649 0.583333 +vt 0.859649 0.571429 +vt 0.728070 0.607143 +vt 0.859649 0.595238 +vt 0.859649 0.607143 +vt 0.868421 0.583333 +vt 0.868421 0.595238 +vt 0.719298 0.595238 +vt 0.728070 0.583333 +vt 0.728070 0.595238 +vt 0.859649 0.583333 +vt 0.859649 0.571429 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.333333 0.928571 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.719298 0.583333 +vt 0.728070 0.571429 +vt 0.719298 0.583333 +vt 0.728070 0.571429 +vt 0.719298 0.583333 +vt 0.728070 0.571429 +vt 0.719298 0.583333 +vt 0.728070 0.571429 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +s off +f 9/13/6 11/14/6 10/15/6 +f 25/16/6 27/17/6 21/18/6 +f 30/19/7 31/20/7 29/21/7 +f 31/20/8 33/22/8 29/23/8 +f 30/24/9 36/25/9 32/26/9 +f 32/26/6 35/27/6 31/20/6 +f 36/25/10 33/28/10 35/27/10 +f 38/29/7 39/30/7 37/31/7 +f 39/30/8 41/32/8 37/33/8 +f 38/34/9 44/35/9 40/36/9 +f 40/36/6 43/37/6 39/30/6 +f 44/35/10 41/38/10 43/37/10 +f 46/39/7 47/40/7 45/41/7 +f 47/40/8 49/42/8 45/43/8 +f 46/44/9 52/45/9 48/46/9 +f 48/46/6 51/47/6 47/40/6 +f 52/45/10 49/48/10 51/47/10 +f 54/49/7 55/50/7 53/51/7 +f 55/50/8 57/52/8 53/53/8 +f 54/54/9 60/55/9 56/56/9 +f 56/56/6 59/57/6 55/50/6 +f 60/55/10 57/58/10 59/57/10 +f 73/59/6 75/60/6 69/61/6 +f 89/62/6 91/63/6 85/64/6 +f 105/65/6 107/66/6 101/67/6 +f 121/68/6 123/69/6 117/70/6 +f 137/71/6 139/72/6 133/73/6 +f 153/74/6 155/75/6 149/76/6 +f 169/77/6 171/78/6 165/79/6 +f 185/80/6 187/81/6 181/82/6 +f 201/83/6 203/84/6 197/85/6 +f 217/86/6 219/87/6 213/88/6 +f 233/89/6 235/90/6 229/91/6 +f 249/92/6 251/93/6 245/94/6 +f 265/95/6 267/96/6 261/97/6 +f 281/98/6 283/99/6 277/100/6 +f 297/101/6 299/102/6 293/103/6 +f 9/13/6 12/104/6 11/14/6 +f 21/18/6 22/105/6 23/106/6 +f 23/106/6 24/107/6 25/16/6 +f 25/16/6 26/108/6 27/17/6 +f 27/17/6 28/109/6 21/18/6 +f 21/18/6 23/106/6 25/16/6 +f 30/19/7 32/26/7 31/20/7 +f 31/20/8 35/27/8 33/22/8 +f 30/24/9 34/110/9 36/25/9 +f 32/26/6 36/25/6 35/27/6 +f 36/25/10 34/111/10 33/28/10 +f 38/29/7 40/36/7 39/30/7 +f 39/30/8 43/37/8 41/32/8 +f 38/34/9 42/112/9 44/35/9 +f 40/36/6 44/35/6 43/37/6 +f 44/35/10 42/113/10 41/38/10 +f 46/39/7 48/46/7 47/40/7 +f 47/40/8 51/47/8 49/42/8 +f 46/44/9 50/114/9 52/45/9 +f 48/46/6 52/45/6 51/47/6 +f 52/45/10 50/115/10 49/48/10 +f 54/49/7 56/56/7 55/50/7 +f 55/50/8 59/57/8 57/52/8 +f 54/54/9 58/116/9 60/55/9 +f 56/56/6 60/55/6 59/57/6 +f 60/55/10 58/117/10 57/58/10 +f 69/61/6 70/118/6 71/119/6 +f 71/119/6 72/120/6 73/59/6 +f 73/59/6 74/121/6 75/60/6 +f 75/60/6 76/122/6 69/61/6 +f 69/61/6 71/119/6 73/59/6 +f 85/64/6 86/123/6 87/124/6 +f 87/124/6 88/125/6 89/62/6 +f 89/62/6 90/126/6 91/63/6 +f 91/63/6 92/127/6 85/64/6 +f 85/64/6 87/124/6 89/62/6 +f 101/67/6 102/128/6 103/129/6 +f 103/129/6 104/130/6 105/65/6 +f 105/65/6 106/131/6 107/66/6 +f 107/66/6 108/132/6 101/67/6 +f 101/67/6 103/129/6 105/65/6 +f 117/70/6 118/133/6 119/134/6 +f 119/134/6 120/135/6 121/68/6 +f 121/68/6 122/136/6 123/69/6 +f 123/69/6 124/137/6 117/70/6 +f 117/70/6 119/134/6 121/68/6 +f 133/73/6 134/138/6 135/139/6 +f 135/139/6 136/140/6 137/71/6 +f 137/71/6 138/141/6 139/72/6 +f 139/72/6 140/142/6 133/73/6 +f 133/73/6 135/139/6 137/71/6 +f 149/76/6 150/143/6 151/144/6 +f 151/144/6 152/145/6 153/74/6 +f 153/74/6 154/146/6 155/75/6 +f 155/75/6 156/147/6 149/76/6 +f 149/76/6 151/144/6 153/74/6 +f 165/79/6 166/148/6 167/149/6 +f 167/149/6 168/150/6 169/77/6 +f 169/77/6 170/151/6 171/78/6 +f 171/78/6 172/152/6 165/79/6 +f 165/79/6 167/149/6 169/77/6 +f 181/82/6 182/153/6 183/154/6 +f 183/154/6 184/155/6 185/80/6 +f 185/80/6 186/156/6 187/81/6 +f 187/81/6 188/157/6 181/82/6 +f 181/82/6 183/154/6 185/80/6 +f 197/85/6 198/158/6 199/159/6 +f 199/159/6 200/160/6 201/83/6 +f 201/83/6 202/161/6 203/84/6 +f 203/84/6 204/162/6 197/85/6 +f 197/85/6 199/159/6 201/83/6 +f 213/88/6 214/163/6 215/164/6 +f 215/164/6 216/165/6 217/86/6 +f 217/86/6 218/166/6 219/87/6 +f 219/87/6 220/167/6 213/88/6 +f 213/88/6 215/164/6 217/86/6 +f 229/91/6 230/168/6 231/169/6 +f 231/169/6 232/170/6 233/89/6 +f 233/89/6 234/171/6 235/90/6 +f 235/90/6 236/172/6 229/91/6 +f 229/91/6 231/169/6 233/89/6 +f 245/94/6 246/173/6 247/174/6 +f 247/174/6 248/175/6 249/92/6 +f 249/92/6 250/176/6 251/93/6 +f 251/93/6 252/177/6 245/94/6 +f 245/94/6 247/174/6 249/92/6 +f 261/97/6 262/178/6 263/179/6 +f 263/179/6 264/180/6 265/95/6 +f 265/95/6 266/181/6 267/96/6 +f 267/96/6 268/182/6 261/97/6 +f 261/97/6 263/179/6 265/95/6 +f 277/100/6 278/183/6 279/184/6 +f 279/184/6 280/185/6 281/98/6 +f 281/98/6 282/186/6 283/99/6 +f 283/99/6 284/187/6 277/100/6 +f 277/100/6 279/184/6 281/98/6 +f 293/103/6 294/188/6 295/189/6 +f 295/189/6 296/190/6 297/101/6 +f 297/101/6 298/191/6 299/102/6 +f 299/102/6 300/192/6 293/103/6 +f 293/103/6 295/189/6 297/101/6 +s 1 +f 20/193/11 27/194/10 19/195/10 +f 18/196/12 25/197/9 17/198/9 +f 16/199/13 23/200/7 15/201/7 +f 14/202/14 21/203/8 13/204/8 +f 13/204/8 28/205/11 20/193/11 +f 19/195/10 26/206/12 18/196/12 +f 17/207/9 24/208/13 16/199/13 +f 15/201/7 22/209/14 14/202/14 +f 68/210/11 75/211/10 67/212/10 +f 66/213/12 73/214/9 65/215/9 +f 64/216/13 71/217/7 63/218/7 +f 62/219/14 69/220/8 61/221/8 +f 61/221/8 76/222/11 68/210/11 +f 67/212/10 74/223/12 66/213/12 +f 65/224/9 72/225/13 64/216/13 +f 63/218/7 70/226/14 62/219/14 +f 84/227/11 91/228/10 83/229/10 +f 82/230/12 89/231/9 81/232/9 +f 80/233/13 87/234/7 79/235/7 +f 78/236/14 85/237/8 77/238/8 +f 77/238/8 92/239/11 84/227/11 +f 83/229/10 90/240/12 82/230/12 +f 81/241/9 88/242/13 80/233/13 +f 79/235/7 86/243/14 78/236/14 +f 100/244/11 107/245/10 99/246/10 +f 98/247/12 105/248/9 97/249/9 +f 96/250/13 103/251/7 95/252/7 +f 94/253/14 101/254/8 93/255/8 +f 93/255/8 108/256/11 100/244/11 +f 99/246/10 106/257/12 98/247/12 +f 97/258/9 104/259/13 96/250/13 +f 95/252/7 102/260/14 94/253/14 +f 116/261/11 123/262/10 115/263/10 +f 114/264/12 121/265/9 113/266/9 +f 112/267/13 119/268/7 111/269/7 +f 110/270/14 117/271/8 109/272/8 +f 109/272/8 124/273/11 116/261/11 +f 115/263/10 122/274/12 114/264/12 +f 113/275/9 120/276/13 112/267/13 +f 111/269/7 118/277/14 110/270/14 +f 132/278/11 139/279/10 131/280/10 +f 130/281/12 137/282/9 129/283/9 +f 128/284/13 135/285/7 127/286/7 +f 126/287/14 133/288/8 125/289/8 +f 125/289/8 140/290/11 132/278/11 +f 131/280/10 138/291/12 130/281/12 +f 129/292/9 136/293/13 128/284/13 +f 127/286/7 134/294/14 126/287/14 +f 148/295/11 155/296/10 147/297/10 +f 146/298/12 153/299/9 145/300/9 +f 144/301/13 151/302/7 143/303/7 +f 142/304/14 149/305/8 141/306/8 +f 141/306/8 156/307/11 148/295/11 +f 147/297/10 154/308/12 146/298/12 +f 145/309/9 152/310/13 144/301/13 +f 143/303/7 150/311/14 142/304/14 +f 164/312/11 171/313/10 163/314/10 +f 162/315/12 169/316/9 161/317/9 +f 160/318/13 167/319/7 159/320/7 +f 158/321/14 165/322/8 157/323/8 +f 157/323/8 172/324/11 164/312/11 +f 163/314/10 170/325/12 162/315/12 +f 161/326/9 168/327/13 160/318/13 +f 159/320/7 166/328/14 158/321/14 +f 180/329/11 187/330/10 179/331/10 +f 178/332/12 185/333/9 177/334/9 +f 176/335/13 183/336/7 175/337/7 +f 174/338/14 181/339/8 173/340/8 +f 173/340/8 188/341/11 180/329/11 +f 179/331/10 186/342/12 178/332/12 +f 177/343/9 184/344/13 176/335/13 +f 175/337/7 182/345/14 174/338/14 +f 196/346/11 203/347/10 195/348/10 +f 194/349/12 201/350/9 193/351/9 +f 192/352/13 199/353/7 191/354/7 +f 190/355/14 197/356/8 189/357/8 +f 189/357/8 204/358/11 196/346/11 +f 195/348/10 202/359/12 194/349/12 +f 193/360/9 200/361/13 192/352/13 +f 191/354/7 198/362/14 190/355/14 +f 212/363/11 219/364/10 211/365/10 +f 210/366/12 217/367/9 209/368/9 +f 208/369/13 215/370/7 207/371/7 +f 206/372/14 213/373/8 205/374/8 +f 205/374/8 220/375/11 212/363/11 +f 211/365/10 218/376/12 210/366/12 +f 209/377/9 216/378/13 208/369/13 +f 207/371/7 214/379/14 206/372/14 +f 228/380/11 235/381/10 227/382/10 +f 226/383/12 233/384/9 225/385/9 +f 224/386/13 231/387/7 223/388/7 +f 222/389/14 229/390/8 221/391/8 +f 221/391/8 236/392/11 228/380/11 +f 227/382/10 234/393/12 226/383/12 +f 225/394/9 232/395/13 224/386/13 +f 223/388/7 230/396/14 222/389/14 +f 244/397/11 251/398/10 243/399/10 +f 242/400/12 249/401/9 241/402/9 +f 240/403/13 247/404/7 239/405/7 +f 238/406/14 245/407/8 237/408/8 +f 237/408/8 252/409/11 244/397/11 +f 243/399/10 250/410/12 242/400/12 +f 241/411/9 248/412/13 240/403/13 +f 239/405/7 246/413/14 238/406/14 +f 260/414/11 267/415/10 259/416/10 +f 258/417/12 265/418/9 257/419/9 +f 256/420/13 263/421/7 255/422/7 +f 254/423/14 261/424/8 253/425/8 +f 253/425/8 268/426/11 260/414/11 +f 259/416/10 266/427/12 258/417/12 +f 257/428/9 264/429/13 256/420/13 +f 255/422/7 262/430/14 254/423/14 +f 276/431/11 283/432/10 275/433/10 +f 274/434/12 281/435/9 273/436/9 +f 272/437/13 279/438/7 271/439/7 +f 270/440/14 277/441/8 269/442/8 +f 269/442/8 284/443/11 276/431/11 +f 275/433/10 282/444/12 274/434/12 +f 273/445/9 280/446/13 272/437/13 +f 271/439/7 278/447/14 270/440/14 +f 292/448/11 299/449/10 291/450/10 +f 290/451/12 297/452/9 289/453/9 +f 288/454/13 295/455/7 287/456/7 +f 286/457/14 293/458/8 285/459/8 +f 285/459/8 300/460/11 292/448/11 +f 291/450/10 298/461/12 290/451/12 +f 289/462/9 296/463/13 288/454/13 +f 287/456/7 294/464/14 286/457/14 +f 20/193/11 28/205/11 27/194/10 +f 18/196/12 26/206/12 25/197/9 +f 16/199/13 24/208/13 23/200/7 +f 14/202/14 22/209/14 21/203/8 +f 13/204/8 21/203/8 28/205/11 +f 19/195/10 27/194/10 26/206/12 +f 17/207/9 25/465/9 24/208/13 +f 15/201/7 23/200/7 22/209/14 +f 68/210/11 76/222/11 75/211/10 +f 66/213/12 74/223/12 73/214/9 +f 64/216/13 72/225/13 71/217/7 +f 62/219/14 70/226/14 69/220/8 +f 61/221/8 69/220/8 76/222/11 +f 67/212/10 75/211/10 74/223/12 +f 65/224/9 73/466/9 72/225/13 +f 63/218/7 71/217/7 70/226/14 +f 84/227/11 92/239/11 91/228/10 +f 82/230/12 90/240/12 89/231/9 +f 80/233/13 88/242/13 87/234/7 +f 78/236/14 86/243/14 85/237/8 +f 77/238/8 85/237/8 92/239/11 +f 83/229/10 91/228/10 90/240/12 +f 81/241/9 89/467/9 88/242/13 +f 79/235/7 87/234/7 86/243/14 +f 100/244/11 108/256/11 107/245/10 +f 98/247/12 106/257/12 105/248/9 +f 96/250/13 104/259/13 103/251/7 +f 94/253/14 102/260/14 101/254/8 +f 93/255/8 101/254/8 108/256/11 +f 99/246/10 107/245/10 106/257/12 +f 97/258/9 105/468/9 104/259/13 +f 95/252/7 103/251/7 102/260/14 +f 116/261/11 124/273/11 123/262/10 +f 114/264/12 122/274/12 121/265/9 +f 112/267/13 120/276/13 119/268/7 +f 110/270/14 118/277/14 117/271/8 +f 109/272/8 117/271/8 124/273/11 +f 115/263/10 123/262/10 122/274/12 +f 113/275/9 121/469/9 120/276/13 +f 111/269/7 119/268/7 118/277/14 +f 132/278/11 140/290/11 139/279/10 +f 130/281/12 138/291/12 137/282/9 +f 128/284/13 136/293/13 135/285/7 +f 126/287/14 134/294/14 133/288/8 +f 125/289/8 133/288/8 140/290/11 +f 131/280/10 139/279/10 138/291/12 +f 129/292/9 137/470/9 136/293/13 +f 127/286/7 135/285/7 134/294/14 +f 148/295/11 156/307/11 155/296/10 +f 146/298/12 154/308/12 153/299/9 +f 144/301/13 152/310/13 151/302/7 +f 142/304/14 150/311/14 149/305/8 +f 141/306/8 149/305/8 156/307/11 +f 147/297/10 155/296/10 154/308/12 +f 145/309/9 153/471/9 152/310/13 +f 143/303/7 151/302/7 150/311/14 +f 164/312/11 172/324/11 171/313/10 +f 162/315/12 170/325/12 169/316/9 +f 160/318/13 168/327/13 167/319/7 +f 158/321/14 166/328/14 165/322/8 +f 157/323/8 165/322/8 172/324/11 +f 163/314/10 171/313/10 170/325/12 +f 161/326/9 169/472/9 168/327/13 +f 159/320/7 167/319/7 166/328/14 +f 180/329/11 188/341/11 187/330/10 +f 178/332/12 186/342/12 185/333/9 +f 176/335/13 184/344/13 183/336/7 +f 174/338/14 182/345/14 181/339/8 +f 173/340/8 181/339/8 188/341/11 +f 179/331/10 187/330/10 186/342/12 +f 177/343/9 185/473/9 184/344/13 +f 175/337/7 183/336/7 182/345/14 +f 196/346/11 204/358/11 203/347/10 +f 194/349/12 202/359/12 201/350/9 +f 192/352/13 200/361/13 199/353/7 +f 190/355/14 198/362/14 197/356/8 +f 189/357/8 197/356/8 204/358/11 +f 195/348/10 203/347/10 202/359/12 +f 193/360/9 201/474/9 200/361/13 +f 191/354/7 199/353/7 198/362/14 +f 212/363/11 220/375/11 219/364/10 +f 210/366/12 218/376/12 217/367/9 +f 208/369/13 216/378/13 215/370/7 +f 206/372/14 214/379/14 213/373/8 +f 205/374/8 213/373/8 220/375/11 +f 211/365/10 219/364/10 218/376/12 +f 209/377/9 217/475/9 216/378/13 +f 207/371/7 215/370/7 214/379/14 +f 228/380/11 236/392/11 235/381/10 +f 226/383/12 234/393/12 233/384/9 +f 224/386/13 232/395/13 231/387/7 +f 222/389/14 230/396/14 229/390/8 +f 221/391/8 229/390/8 236/392/11 +f 227/382/10 235/381/10 234/393/12 +f 225/394/9 233/476/9 232/395/13 +f 223/388/7 231/387/7 230/396/14 +f 244/397/11 252/409/11 251/398/10 +f 242/400/12 250/410/12 249/401/9 +f 240/403/13 248/412/13 247/404/7 +f 238/406/14 246/413/14 245/407/8 +f 237/408/8 245/407/8 252/409/11 +f 243/399/10 251/398/10 250/410/12 +f 241/411/9 249/477/9 248/412/13 +f 239/405/7 247/404/7 246/413/14 +f 260/414/11 268/426/11 267/415/10 +f 258/417/12 266/427/12 265/418/9 +f 256/420/13 264/429/13 263/421/7 +f 254/423/14 262/430/14 261/424/8 +f 253/425/8 261/424/8 268/426/11 +f 259/416/10 267/415/10 266/427/12 +f 257/428/9 265/478/9 264/429/13 +f 255/422/7 263/421/7 262/430/14 +f 276/431/11 284/443/11 283/432/10 +f 274/434/12 282/444/12 281/435/9 +f 272/437/13 280/446/13 279/438/7 +f 270/440/14 278/447/14 277/441/8 +f 269/442/8 277/441/8 284/443/11 +f 275/433/10 283/432/10 282/444/12 +f 273/445/9 281/479/9 280/446/13 +f 271/439/7 279/438/7 278/447/14 +f 292/448/11 300/460/11 299/449/10 +f 290/451/12 298/461/12 297/452/9 +f 288/454/13 296/463/13 295/455/7 +f 286/457/14 294/464/14 293/458/8 +f 285/459/8 293/458/8 300/460/11 +f 291/450/10 299/449/10 298/461/12 +f 289/462/9 297/480/9 296/463/13 +f 287/456/7 295/455/7 294/464/14 +o Bullets +v 0.125000 1.125000 0.414062 +v 0.108427 1.125000 0.420927 +v 0.101562 1.125000 0.437500 +v 0.108427 1.125000 0.454073 +v 0.125000 1.125000 0.460938 +v 0.141573 1.125000 0.454073 +v 0.148438 1.125000 0.437500 +v 0.141573 1.125000 0.420927 +v 0.125000 1.187500 0.437500 +v 0.141573 1.156250 0.454073 +v 0.125000 1.156250 0.460938 +v 0.108427 1.156250 0.454073 +v 0.101562 1.156250 0.437500 +v 0.108427 1.156250 0.420927 +v 0.125000 1.156250 0.414062 +v 0.141573 1.156250 0.420927 +v 0.148438 1.156250 0.437500 +v -0.125000 1.125000 0.414062 +v -0.141573 1.125000 0.420927 +v -0.148438 1.125000 0.437500 +v -0.141573 1.125000 0.454073 +v -0.125000 1.125000 0.460938 +v -0.108427 1.125000 0.454073 +v -0.101562 1.125000 0.437500 +v -0.108427 1.125000 0.420927 +v -0.125000 1.187500 0.437500 +v -0.108427 1.156250 0.454073 +v -0.125000 1.156250 0.460938 +v -0.141573 1.156250 0.454073 +v -0.148438 1.156250 0.437500 +v -0.141573 1.156250 0.420927 +v -0.125000 1.156250 0.414062 +v -0.108427 1.156250 0.420927 +v -0.101562 1.156250 0.437500 +v 0.125000 1.125000 0.289062 +v 0.108427 1.125000 0.295927 +v 0.101562 1.125000 0.312500 +v 0.108427 1.125000 0.329073 +v 0.125000 1.125000 0.335938 +v 0.141573 1.125000 0.329073 +v 0.148438 1.125000 0.312500 +v 0.141573 1.125000 0.295927 +v 0.125000 1.187500 0.312500 +v 0.141573 1.156250 0.329073 +v 0.125000 1.156250 0.335938 +v 0.108427 1.156250 0.329073 +v 0.101562 1.156250 0.312500 +v 0.108427 1.156250 0.295927 +v 0.125000 1.156250 0.289062 +v 0.141573 1.156250 0.295927 +v 0.148438 1.156250 0.312500 +v -0.125000 1.125000 0.289062 +v -0.141573 1.125000 0.295927 +v -0.148438 1.125000 0.312500 +v -0.141573 1.125000 0.329073 +v -0.125000 1.125000 0.335938 +v -0.108427 1.125000 0.329073 +v -0.101562 1.125000 0.312500 +v -0.108427 1.125000 0.295927 +v -0.125000 1.187500 0.312500 +v -0.108427 1.156250 0.329073 +v -0.125000 1.156250 0.335938 +v -0.141573 1.156250 0.329073 +v -0.148438 1.156250 0.312500 +v -0.141573 1.156250 0.295927 +v -0.125000 1.156250 0.289062 +v -0.108427 1.156250 0.295927 +v -0.101562 1.156250 0.312500 +v 0.125000 1.125000 0.164062 +v 0.108427 1.125000 0.170927 +v 0.101562 1.125000 0.187500 +v 0.108427 1.125000 0.204073 +v 0.125000 1.125000 0.210938 +v 0.141573 1.125000 0.204073 +v 0.148438 1.125000 0.187500 +v 0.141573 1.125000 0.170927 +v 0.125000 1.187500 0.187500 +v 0.141573 1.156250 0.204073 +v 0.125000 1.156250 0.210938 +v 0.108427 1.156250 0.204073 +v 0.101562 1.156250 0.187500 +v 0.108427 1.156250 0.170927 +v 0.125000 1.156250 0.164062 +v 0.141573 1.156250 0.170927 +v 0.148438 1.156250 0.187500 +v -0.125000 1.125000 0.164062 +v -0.141573 1.125000 0.170927 +v -0.148438 1.125000 0.187500 +v -0.141573 1.125000 0.204073 +v -0.125000 1.125000 0.210938 +v -0.108427 1.125000 0.204073 +v -0.101562 1.125000 0.187500 +v -0.108427 1.125000 0.170927 +v -0.125000 1.187500 0.187500 +v -0.108427 1.156250 0.204073 +v -0.125000 1.156250 0.210938 +v -0.141573 1.156250 0.204073 +v -0.148438 1.156250 0.187500 +v -0.141573 1.156250 0.170927 +v -0.125000 1.156250 0.164062 +v -0.108427 1.156250 0.170927 +v -0.101562 1.156250 0.187500 +v 0.125000 1.125000 0.039062 +v 0.108427 1.125000 0.045927 +v 0.101562 1.125000 0.062500 +v 0.108427 1.125000 0.079073 +v 0.125000 1.125000 0.085938 +v 0.141573 1.125000 0.079073 +v 0.148438 1.125000 0.062500 +v 0.141573 1.125000 0.045927 +v 0.125000 1.187500 0.062500 +v 0.141573 1.156250 0.079073 +v 0.125000 1.156250 0.085938 +v 0.108427 1.156250 0.079073 +v 0.101562 1.156250 0.062500 +v 0.108427 1.156250 0.045927 +v 0.125000 1.156250 0.039062 +v 0.141573 1.156250 0.045927 +v 0.148438 1.156250 0.062500 +v -0.125000 1.125000 0.039062 +v -0.141573 1.125000 0.045927 +v -0.148438 1.125000 0.062500 +v -0.141573 1.125000 0.079073 +v -0.125000 1.125000 0.085938 +v -0.108427 1.125000 0.079073 +v -0.101562 1.125000 0.062500 +v -0.108427 1.125000 0.045927 +v -0.125000 1.187500 0.062500 +v -0.108427 1.156250 0.079073 +v -0.125000 1.156250 0.085938 +v -0.141573 1.156250 0.079073 +v -0.148438 1.156250 0.062500 +v -0.141573 1.156250 0.045927 +v -0.125000 1.156250 0.039062 +v -0.108427 1.156250 0.045927 +v -0.101562 1.156250 0.062500 +v 0.125000 1.125000 -0.085938 +v 0.108427 1.125000 -0.079073 +v 0.101562 1.125000 -0.062500 +v 0.108427 1.125000 -0.045927 +v 0.125000 1.125000 -0.039062 +v 0.141573 1.125000 -0.045927 +v 0.148438 1.125000 -0.062500 +v 0.141573 1.125000 -0.079073 +v 0.125000 1.187500 -0.062500 +v 0.141573 1.156250 -0.045927 +v 0.125000 1.156250 -0.039062 +v 0.108427 1.156250 -0.045927 +v 0.101562 1.156250 -0.062500 +v 0.108427 1.156250 -0.079073 +v 0.125000 1.156250 -0.085938 +v 0.141573 1.156250 -0.079073 +v 0.148438 1.156250 -0.062500 +v -0.125000 1.125000 -0.085938 +v -0.141573 1.125000 -0.079073 +v -0.148438 1.125000 -0.062500 +v -0.141573 1.125000 -0.045927 +v -0.125000 1.125000 -0.039062 +v -0.108427 1.125000 -0.045927 +v -0.101562 1.125000 -0.062500 +v -0.108427 1.125000 -0.079073 +v -0.125000 1.187500 -0.062500 +v -0.108427 1.156250 -0.045927 +v -0.125000 1.156250 -0.039062 +v -0.141573 1.156250 -0.045927 +v -0.148438 1.156250 -0.062500 +v -0.141573 1.156250 -0.079073 +v -0.125000 1.156250 -0.085938 +v -0.108427 1.156250 -0.079073 +v -0.101562 1.156250 -0.062500 +v 0.125000 1.125000 -0.210938 +v 0.108427 1.125000 -0.204073 +v 0.101562 1.125000 -0.187500 +v 0.108427 1.125000 -0.170927 +v 0.125000 1.125000 -0.164062 +v 0.141573 1.125000 -0.170927 +v 0.148438 1.125000 -0.187500 +v 0.141573 1.125000 -0.204073 +v 0.125000 1.187500 -0.187500 +v 0.141573 1.156250 -0.170927 +v 0.125000 1.156250 -0.164062 +v 0.108427 1.156250 -0.170927 +v 0.101562 1.156250 -0.187500 +v 0.108427 1.156250 -0.204073 +v 0.125000 1.156250 -0.210938 +v 0.141573 1.156250 -0.204073 +v 0.148438 1.156250 -0.187500 +v -0.125000 1.125000 -0.210938 +v -0.141573 1.125000 -0.204073 +v -0.148438 1.125000 -0.187500 +v -0.141573 1.125000 -0.170927 +v -0.125000 1.125000 -0.164062 +v -0.108427 1.125000 -0.170927 +v -0.101562 1.125000 -0.187500 +v -0.108427 1.125000 -0.204073 +v -0.125000 1.187500 -0.187500 +v -0.108427 1.156250 -0.170927 +v -0.125000 1.156250 -0.164062 +v -0.141573 1.156250 -0.170927 +v -0.148438 1.156250 -0.187500 +v -0.141573 1.156250 -0.204073 +v -0.125000 1.156250 -0.210938 +v -0.108427 1.156250 -0.204073 +v -0.101562 1.156250 -0.187500 +v 0.125000 1.125000 -0.335938 +v 0.108427 1.125000 -0.329073 +v 0.101562 1.125000 -0.312500 +v 0.108427 1.125000 -0.295927 +v 0.125000 1.125000 -0.289062 +v 0.141573 1.125000 -0.295927 +v 0.148438 1.125000 -0.312500 +v 0.141573 1.125000 -0.329073 +v 0.125000 1.187500 -0.312500 +v 0.141573 1.156250 -0.295927 +v 0.125000 1.156250 -0.289062 +v 0.108427 1.156250 -0.295927 +v 0.101562 1.156250 -0.312500 +v 0.108427 1.156250 -0.329073 +v 0.125000 1.156250 -0.335938 +v 0.141573 1.156250 -0.329073 +v 0.148438 1.156250 -0.312500 +v -0.125000 1.125000 -0.335938 +v -0.141573 1.125000 -0.329073 +v -0.148438 1.125000 -0.312500 +v -0.141573 1.125000 -0.295927 +v -0.125000 1.125000 -0.289062 +v -0.108427 1.125000 -0.295927 +v -0.101562 1.125000 -0.312500 +v -0.108427 1.125000 -0.329073 +v -0.125000 1.187500 -0.312500 +v -0.108427 1.156250 -0.295927 +v -0.125000 1.156250 -0.289062 +v -0.141573 1.156250 -0.295927 +v -0.148438 1.156250 -0.312500 +v -0.141573 1.156250 -0.329073 +v -0.125000 1.156250 -0.335938 +v -0.108427 1.156250 -0.329073 +v -0.101562 1.156250 -0.312500 +v 0.125000 1.125000 -0.460938 +v 0.108427 1.125000 -0.454073 +v 0.101562 1.125000 -0.437500 +v 0.108427 1.125000 -0.420927 +v 0.125000 1.125000 -0.414062 +v 0.141573 1.125000 -0.420927 +v 0.148438 1.125000 -0.437500 +v 0.141573 1.125000 -0.454073 +v 0.125000 1.187500 -0.437500 +v 0.141573 1.156250 -0.420927 +v 0.125000 1.156250 -0.414062 +v 0.108427 1.156250 -0.420927 +v 0.101562 1.156250 -0.437500 +v 0.108427 1.156250 -0.454073 +v 0.125000 1.156250 -0.460938 +v 0.141573 1.156250 -0.454073 +v 0.148438 1.156250 -0.437500 +v -0.125000 1.125000 -0.460938 +v -0.141573 1.125000 -0.454073 +v -0.148438 1.125000 -0.437500 +v -0.141573 1.125000 -0.420927 +v -0.125000 1.125000 -0.414062 +v -0.108427 1.125000 -0.420927 +v -0.101562 1.125000 -0.437500 +v -0.108427 1.125000 -0.454073 +v -0.125000 1.187500 -0.437500 +v -0.108427 1.156250 -0.420927 +v -0.125000 1.156250 -0.414062 +v -0.141573 1.156250 -0.420927 +v -0.148438 1.156250 -0.437500 +v -0.141573 1.156250 -0.454073 +v -0.125000 1.156250 -0.460938 +v -0.108427 1.156250 -0.454073 +v -0.101562 1.156250 -0.437500 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vn 0.7071 0.0000 -0.7071 +vn 0.9554 0.2952 -0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.6756 0.2952 0.6756 +vn -0.6756 0.2952 0.6756 +vn 0.0000 0.2952 0.9554 +vn -0.6756 0.2952 -0.6756 +vn -0.9554 0.2952 -0.0000 +vn 0.6756 0.2952 -0.6756 +vn -0.0000 0.2952 -0.9554 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 0.0000 1.0000 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 -1.0000 +s 1 +f 308/481/15 317/482/16 307/483/17 +f 317/482/16 309/484/18 310/485/19 +f 309/486/18 312/487/20 311/488/21 +f 309/489/18 314/490/22 313/491/23 +f 309/492/18 317/482/16 316/493/24 +f 310/485/19 309/494/18 311/495/21 +f 312/487/20 309/496/18 313/491/23 +f 309/497/18 316/493/24 315/498/25 +f 303/499/26 314/490/22 302/500/27 +f 305/501/28 312/487/20 304/502/29 +f 307/483/17 310/485/19 306/503/30 +f 301/504/31 316/493/24 308/481/15 +f 302/500/27 315/498/25 301/504/31 +f 304/502/29 313/491/23 303/499/26 +f 306/503/30 311/495/21 305/505/28 +f 314/490/22 309/506/18 315/498/25 +f 325/507/15 334/508/16 324/509/17 +f 334/508/16 326/510/18 327/511/19 +f 326/512/18 329/513/20 328/514/21 +f 326/515/18 331/516/22 330/517/23 +f 326/518/18 334/508/16 333/519/24 +f 327/511/19 326/520/18 328/521/21 +f 329/513/20 326/522/18 330/517/23 +f 326/523/18 333/519/24 332/524/25 +f 320/525/26 331/516/22 319/526/27 +f 322/527/28 329/513/20 321/528/29 +f 324/509/17 327/511/19 323/529/30 +f 318/530/31 333/519/24 325/507/15 +f 319/526/27 332/524/25 318/530/31 +f 321/528/29 330/517/23 320/525/26 +f 323/529/30 328/521/21 322/531/28 +f 331/516/22 326/532/18 332/524/25 +f 342/533/15 351/534/16 341/535/17 +f 351/534/16 343/536/18 344/537/19 +f 343/538/18 346/539/20 345/540/21 +f 343/541/18 348/542/22 347/543/23 +f 343/544/18 351/534/16 350/545/24 +f 344/537/19 343/546/18 345/547/21 +f 346/539/20 343/548/18 347/543/23 +f 343/549/18 350/545/24 349/550/25 +f 337/551/26 348/542/22 336/552/27 +f 339/553/28 346/539/20 338/554/29 +f 341/535/17 344/537/19 340/555/30 +f 335/556/31 350/545/24 342/533/15 +f 336/552/27 349/550/25 335/556/31 +f 338/554/29 347/543/23 337/551/26 +f 340/555/30 345/547/21 339/557/28 +f 348/542/22 343/558/18 349/550/25 +f 359/559/15 368/560/16 358/561/17 +f 368/560/16 360/562/18 361/563/19 +f 360/564/18 363/565/20 362/566/21 +f 360/567/18 365/568/22 364/569/23 +f 360/570/18 368/560/16 367/571/24 +f 361/563/19 360/572/18 362/573/21 +f 363/565/20 360/574/18 364/569/23 +f 360/575/18 367/571/24 366/576/25 +f 354/577/26 365/568/22 353/578/27 +f 356/579/28 363/565/20 355/580/29 +f 358/561/17 361/563/19 357/581/30 +f 352/582/31 367/571/24 359/559/15 +f 353/578/27 366/576/25 352/582/31 +f 355/580/29 364/569/23 354/577/26 +f 357/581/30 362/573/21 356/583/28 +f 365/568/22 360/584/18 366/576/25 +f 376/585/15 385/586/16 375/587/17 +f 385/586/16 377/588/18 378/589/19 +f 377/590/18 380/591/20 379/592/21 +f 377/593/18 382/594/22 381/595/23 +f 377/596/18 385/586/16 384/597/24 +f 378/589/19 377/598/18 379/599/21 +f 380/591/20 377/600/18 381/595/23 +f 377/601/18 384/597/24 383/602/25 +f 371/603/26 382/594/22 370/604/27 +f 373/605/28 380/591/20 372/606/29 +f 375/587/17 378/589/19 374/607/30 +f 369/608/31 384/597/24 376/585/15 +f 370/604/27 383/602/25 369/608/31 +f 372/606/29 381/595/23 371/603/26 +f 374/607/30 379/599/21 373/609/28 +f 382/594/22 377/610/18 383/602/25 +f 393/611/15 402/612/16 392/613/17 +f 402/612/16 394/614/18 395/615/19 +f 394/616/18 397/617/20 396/618/21 +f 394/619/18 399/620/22 398/621/23 +f 394/622/18 402/612/16 401/623/24 +f 395/615/19 394/624/18 396/625/21 +f 397/617/20 394/626/18 398/621/23 +f 394/627/18 401/623/24 400/628/25 +f 388/629/26 399/620/22 387/630/27 +f 390/631/28 397/617/20 389/632/29 +f 392/613/17 395/615/19 391/633/30 +f 386/634/31 401/623/24 393/611/15 +f 387/630/27 400/628/25 386/634/31 +f 389/632/29 398/621/23 388/629/26 +f 391/633/30 396/625/21 390/635/28 +f 399/620/22 394/636/18 400/628/25 +f 410/637/15 419/638/16 409/639/17 +f 419/638/16 411/640/18 412/641/19 +f 411/642/18 414/643/20 413/644/21 +f 411/645/18 416/646/22 415/647/23 +f 411/648/18 419/638/16 418/649/24 +f 412/641/19 411/650/18 413/651/21 +f 414/643/20 411/652/18 415/647/23 +f 411/653/18 418/649/24 417/654/25 +f 405/655/26 416/646/22 404/656/27 +f 407/657/28 414/643/20 406/658/29 +f 409/639/17 412/641/19 408/659/30 +f 403/660/31 418/649/24 410/637/15 +f 404/656/27 417/654/25 403/660/31 +f 406/658/29 415/647/23 405/655/26 +f 408/659/30 413/651/21 407/661/28 +f 416/646/22 411/662/18 417/654/25 +f 427/663/15 436/664/16 426/665/17 +f 436/664/16 428/666/18 429/667/19 +f 428/668/18 431/669/20 430/670/21 +f 428/671/18 433/672/22 432/673/23 +f 428/674/18 436/664/16 435/675/24 +f 429/667/19 428/676/18 430/677/21 +f 431/669/20 428/678/18 432/673/23 +f 428/679/18 435/675/24 434/680/25 +f 422/681/26 433/672/22 421/682/27 +f 424/683/28 431/669/20 423/684/29 +f 426/665/17 429/667/19 425/685/30 +f 420/686/31 435/675/24 427/663/15 +f 421/682/27 434/680/25 420/686/31 +f 423/684/29 432/673/23 422/681/26 +f 425/685/30 430/677/21 424/687/28 +f 433/672/22 428/688/18 434/680/25 +f 444/689/15 453/690/16 443/691/17 +f 453/690/16 445/692/18 446/693/19 +f 445/694/18 448/695/20 447/696/21 +f 445/697/18 450/698/22 449/699/23 +f 445/700/18 453/690/16 452/701/24 +f 446/693/19 445/702/18 447/703/21 +f 448/695/20 445/704/18 449/699/23 +f 445/705/18 452/701/24 451/706/25 +f 439/707/26 450/698/22 438/708/27 +f 441/709/28 448/695/20 440/710/29 +f 443/691/17 446/693/19 442/711/30 +f 437/712/31 452/701/24 444/689/15 +f 438/708/27 451/706/25 437/712/31 +f 440/710/29 449/699/23 439/707/26 +f 442/711/30 447/703/21 441/713/28 +f 450/698/22 445/714/18 451/706/25 +f 461/715/15 470/716/16 460/717/17 +f 470/716/16 462/718/18 463/719/19 +f 462/720/18 465/721/20 464/722/21 +f 462/723/18 467/724/22 466/725/23 +f 462/726/18 470/716/16 469/727/24 +f 463/719/19 462/728/18 464/729/21 +f 465/721/20 462/730/18 466/725/23 +f 462/731/18 469/727/24 468/732/25 +f 456/733/26 467/724/22 455/734/27 +f 458/735/28 465/721/20 457/736/29 +f 460/717/17 463/719/19 459/737/30 +f 454/738/31 469/727/24 461/715/15 +f 455/734/27 468/732/25 454/738/31 +f 457/736/29 466/725/23 456/733/26 +f 459/737/30 464/729/21 458/739/28 +f 467/724/22 462/740/18 468/732/25 +f 478/741/15 487/742/16 477/743/17 +f 487/742/16 479/744/18 480/745/19 +f 479/746/18 482/747/20 481/748/21 +f 479/749/18 484/750/22 483/751/23 +f 479/752/18 487/742/16 486/753/24 +f 480/745/19 479/754/18 481/755/21 +f 482/747/20 479/756/18 483/751/23 +f 479/757/18 486/753/24 485/758/25 +f 473/759/26 484/750/22 472/760/27 +f 475/761/28 482/747/20 474/762/29 +f 477/743/17 480/745/19 476/763/30 +f 471/764/31 486/753/24 478/741/15 +f 472/760/27 485/758/25 471/764/31 +f 474/762/29 483/751/23 473/759/26 +f 476/763/30 481/755/21 475/765/28 +f 484/750/22 479/766/18 485/758/25 +f 495/767/15 504/768/16 494/769/17 +f 504/768/16 496/770/18 497/771/19 +f 496/772/18 499/773/20 498/774/21 +f 496/775/18 501/776/22 500/777/23 +f 496/778/18 504/768/16 503/779/24 +f 497/771/19 496/780/18 498/781/21 +f 499/773/20 496/782/18 500/777/23 +f 496/783/18 503/779/24 502/784/25 +f 490/785/26 501/776/22 489/786/27 +f 492/787/28 499/773/20 491/788/29 +f 494/769/17 497/771/19 493/789/30 +f 488/790/31 503/779/24 495/767/15 +f 489/786/27 502/784/25 488/790/31 +f 491/788/29 500/777/23 490/785/26 +f 493/789/30 498/781/21 492/791/28 +f 501/776/22 496/792/18 502/784/25 +f 512/793/15 521/794/16 511/795/17 +f 521/794/16 513/796/18 514/797/19 +f 513/798/18 516/799/20 515/800/21 +f 513/801/18 518/802/22 517/803/23 +f 513/804/18 521/794/16 520/805/24 +f 514/797/19 513/806/18 515/807/21 +f 516/799/20 513/808/18 517/803/23 +f 513/809/18 520/805/24 519/810/25 +f 507/811/26 518/802/22 506/812/27 +f 509/813/28 516/799/20 508/814/29 +f 511/795/17 514/797/19 510/815/30 +f 505/816/31 520/805/24 512/793/15 +f 506/812/27 519/810/25 505/816/31 +f 508/814/29 517/803/23 507/811/26 +f 510/815/30 515/807/21 509/817/28 +f 518/802/22 513/818/18 519/810/25 +f 529/819/15 538/820/16 528/821/17 +f 538/820/16 530/822/18 531/823/19 +f 530/824/18 533/825/20 532/826/21 +f 530/827/18 535/828/22 534/829/23 +f 530/830/18 538/820/16 537/831/24 +f 531/823/19 530/832/18 532/833/21 +f 533/825/20 530/834/18 534/829/23 +f 530/835/18 537/831/24 536/836/25 +f 524/837/26 535/828/22 523/838/27 +f 526/839/28 533/825/20 525/840/29 +f 528/821/17 531/823/19 527/841/30 +f 522/842/31 537/831/24 529/819/15 +f 523/838/27 536/836/25 522/842/31 +f 525/840/29 534/829/23 524/837/26 +f 527/841/30 532/833/21 526/843/28 +f 535/828/22 530/844/18 536/836/25 +f 546/845/15 555/846/16 545/847/17 +f 555/846/16 547/848/18 548/849/19 +f 547/850/18 550/851/20 549/852/21 +f 547/853/18 552/854/22 551/855/23 +f 547/856/18 555/846/16 554/857/24 +f 548/849/19 547/858/18 549/859/21 +f 550/851/20 547/860/18 551/855/23 +f 547/861/18 554/857/24 553/862/25 +f 541/863/26 552/854/22 540/864/27 +f 543/865/28 550/851/20 542/866/29 +f 545/847/17 548/849/19 544/867/30 +f 539/868/31 554/857/24 546/845/15 +f 540/864/27 553/862/25 539/868/31 +f 542/866/29 551/855/23 541/863/26 +f 544/867/30 549/859/21 543/869/28 +f 552/854/22 547/870/18 553/862/25 +f 563/871/15 572/872/16 562/873/17 +f 572/872/16 564/874/18 565/875/19 +f 564/876/18 567/877/20 566/878/21 +f 564/879/18 569/880/22 568/881/23 +f 564/882/18 572/872/16 571/883/24 +f 565/875/19 564/884/18 566/885/21 +f 567/877/20 564/886/18 568/881/23 +f 564/887/18 571/883/24 570/888/25 +f 558/889/26 569/880/22 557/890/27 +f 560/891/28 567/877/20 559/892/29 +f 562/873/17 565/875/19 561/893/30 +f 556/894/31 571/883/24 563/871/15 +f 557/890/27 570/888/25 556/894/31 +f 559/892/29 568/881/23 558/889/26 +f 561/893/30 566/885/21 560/895/28 +f 569/880/22 564/896/18 570/888/25 +f 308/481/15 316/493/24 317/482/16 +f 303/499/26 313/491/23 314/490/22 +f 305/501/28 311/488/21 312/487/20 +f 307/483/17 317/482/16 310/485/19 +f 301/504/31 315/498/25 316/493/24 +f 302/500/27 314/490/22 315/498/25 +f 304/502/29 312/487/20 313/491/23 +f 306/503/30 310/485/19 311/495/21 +f 325/507/15 333/519/24 334/508/16 +f 320/525/26 330/517/23 331/516/22 +f 322/527/28 328/514/21 329/513/20 +f 324/509/17 334/508/16 327/511/19 +f 318/530/31 332/524/25 333/519/24 +f 319/526/27 331/516/22 332/524/25 +f 321/528/29 329/513/20 330/517/23 +f 323/529/30 327/511/19 328/521/21 +f 342/533/15 350/545/24 351/534/16 +f 337/551/26 347/543/23 348/542/22 +f 339/553/28 345/540/21 346/539/20 +f 341/535/17 351/534/16 344/537/19 +f 335/556/31 349/550/25 350/545/24 +f 336/552/27 348/542/22 349/550/25 +f 338/554/29 346/539/20 347/543/23 +f 340/555/30 344/537/19 345/547/21 +f 359/559/15 367/571/24 368/560/16 +f 354/577/26 364/569/23 365/568/22 +f 356/579/28 362/566/21 363/565/20 +f 358/561/17 368/560/16 361/563/19 +f 352/582/31 366/576/25 367/571/24 +f 353/578/27 365/568/22 366/576/25 +f 355/580/29 363/565/20 364/569/23 +f 357/581/30 361/563/19 362/573/21 +f 376/585/15 384/597/24 385/586/16 +f 371/603/26 381/595/23 382/594/22 +f 373/605/28 379/592/21 380/591/20 +f 375/587/17 385/586/16 378/589/19 +f 369/608/31 383/602/25 384/597/24 +f 370/604/27 382/594/22 383/602/25 +f 372/606/29 380/591/20 381/595/23 +f 374/607/30 378/589/19 379/599/21 +f 393/611/15 401/623/24 402/612/16 +f 388/629/26 398/621/23 399/620/22 +f 390/631/28 396/618/21 397/617/20 +f 392/613/17 402/612/16 395/615/19 +f 386/634/31 400/628/25 401/623/24 +f 387/630/27 399/620/22 400/628/25 +f 389/632/29 397/617/20 398/621/23 +f 391/633/30 395/615/19 396/625/21 +f 410/637/15 418/649/24 419/638/16 +f 405/655/26 415/647/23 416/646/22 +f 407/657/28 413/644/21 414/643/20 +f 409/639/17 419/638/16 412/641/19 +f 403/660/31 417/654/25 418/649/24 +f 404/656/27 416/646/22 417/654/25 +f 406/658/29 414/643/20 415/647/23 +f 408/659/30 412/641/19 413/651/21 +f 427/663/15 435/675/24 436/664/16 +f 422/681/26 432/673/23 433/672/22 +f 424/683/28 430/670/21 431/669/20 +f 426/665/17 436/664/16 429/667/19 +f 420/686/31 434/680/25 435/675/24 +f 421/682/27 433/672/22 434/680/25 +f 423/684/29 431/669/20 432/673/23 +f 425/685/30 429/667/19 430/677/21 +f 444/689/15 452/701/24 453/690/16 +f 439/707/26 449/699/23 450/698/22 +f 441/709/28 447/696/21 448/695/20 +f 443/691/17 453/690/16 446/693/19 +f 437/712/31 451/706/25 452/701/24 +f 438/708/27 450/698/22 451/706/25 +f 440/710/29 448/695/20 449/699/23 +f 442/711/30 446/693/19 447/703/21 +f 461/715/15 469/727/24 470/716/16 +f 456/733/26 466/725/23 467/724/22 +f 458/735/28 464/722/21 465/721/20 +f 460/717/17 470/716/16 463/719/19 +f 454/738/31 468/732/25 469/727/24 +f 455/734/27 467/724/22 468/732/25 +f 457/736/29 465/721/20 466/725/23 +f 459/737/30 463/719/19 464/729/21 +f 478/741/15 486/753/24 487/742/16 +f 473/759/26 483/751/23 484/750/22 +f 475/761/28 481/748/21 482/747/20 +f 477/743/17 487/742/16 480/745/19 +f 471/764/31 485/758/25 486/753/24 +f 472/760/27 484/750/22 485/758/25 +f 474/762/29 482/747/20 483/751/23 +f 476/763/30 480/745/19 481/755/21 +f 495/767/15 503/779/24 504/768/16 +f 490/785/26 500/777/23 501/776/22 +f 492/787/28 498/774/21 499/773/20 +f 494/769/17 504/768/16 497/771/19 +f 488/790/31 502/784/25 503/779/24 +f 489/786/27 501/776/22 502/784/25 +f 491/788/29 499/773/20 500/777/23 +f 493/789/30 497/771/19 498/781/21 +f 512/793/15 520/805/24 521/794/16 +f 507/811/26 517/803/23 518/802/22 +f 509/813/28 515/800/21 516/799/20 +f 511/795/17 521/794/16 514/797/19 +f 505/816/31 519/810/25 520/805/24 +f 506/812/27 518/802/22 519/810/25 +f 508/814/29 516/799/20 517/803/23 +f 510/815/30 514/797/19 515/807/21 +f 529/819/15 537/831/24 538/820/16 +f 524/837/26 534/829/23 535/828/22 +f 526/839/28 532/826/21 533/825/20 +f 528/821/17 538/820/16 531/823/19 +f 522/842/31 536/836/25 537/831/24 +f 523/838/27 535/828/22 536/836/25 +f 525/840/29 533/825/20 534/829/23 +f 527/841/30 531/823/19 532/833/21 +f 546/845/15 554/857/24 555/846/16 +f 541/863/26 551/855/23 552/854/22 +f 543/865/28 549/852/21 550/851/20 +f 545/847/17 555/846/16 548/849/19 +f 539/868/31 553/862/25 554/857/24 +f 540/864/27 552/854/22 553/862/25 +f 542/866/29 550/851/20 551/855/23 +f 544/867/30 548/849/19 549/859/21 +f 563/871/15 571/883/24 572/872/16 +f 558/889/26 568/881/23 569/880/22 +f 560/891/28 566/878/21 567/877/20 +f 562/873/17 572/872/16 565/875/19 +f 556/894/31 570/888/25 571/883/24 +f 557/890/27 569/880/22 570/888/25 +f 559/892/29 567/877/20 568/881/23 +f 561/893/30 565/875/19 566/885/21 +o Frame +v -0.500000 0.000000 1.500000 +v 0.500000 0.000000 1.500000 +v -0.500000 0.000000 -1.500000 +v 0.500000 0.000000 -1.500000 +v -0.437500 0.125000 1.437500 +v 0.437500 0.125000 1.437500 +v -0.437500 0.125000 -1.437500 +v 0.437500 0.125000 -1.437500 +v -0.437500 0.875000 1.437500 +v 0.437500 0.875000 1.437500 +v -0.437500 0.875000 -1.437500 +v 0.437500 0.875000 -1.437500 +v -0.500000 1.000000 1.500000 +v 0.500000 1.000000 1.500000 +v -0.500000 1.000000 -1.500000 +v 0.500000 1.000000 -1.500000 +v -0.500000 0.125000 -1.500000 +v -0.500000 0.125000 1.500000 +v 0.500000 0.125000 1.500000 +v 0.500000 0.125000 -1.500000 +v -0.500000 0.875000 -1.500000 +v -0.500000 0.875000 1.500000 +v 0.500000 0.875000 1.500000 +v 0.500000 0.875000 -1.500000 +v 0.250000 1.000000 -0.750000 +v 0.250000 1.000000 0.750000 +v -0.250000 1.000000 0.750000 +v -0.250000 1.000000 -0.750000 +v -0.500000 1.500000 -1.500000 +v -0.500000 1.500000 1.500000 +v 0.500000 1.500000 1.500000 +v 0.500000 1.500000 -1.500000 +v -0.250000 1.500000 -0.750000 +v -0.250000 1.500000 0.750000 +v 0.250000 1.500000 0.750000 +v 0.250000 1.500000 -0.750000 +v 0.437500 1.500000 -1.437500 +v 0.437500 1.500000 -1.062500 +v -0.437500 1.500000 -1.062500 +v -0.437500 1.500000 -1.437500 +v 0.437500 1.000000 -1.437500 +v 0.437500 1.000000 -1.062500 +v -0.437500 1.000000 -1.062500 +v -0.437500 1.000000 -1.437500 +v -0.437500 1.000000 1.062500 +v -0.437500 1.000000 1.437500 +v 0.437500 1.000000 1.437500 +v 0.437500 1.000000 1.062500 +v -0.437500 1.500000 1.062500 +v -0.437500 1.500000 1.437500 +v 0.437500 1.500000 1.437500 +v 0.437500 1.500000 1.062500 +v -0.500000 1.750000 1.500000 +v -0.500000 2.000000 1.250000 +v 0.500000 2.000000 1.250000 +v 0.500000 1.750000 1.500000 +v -0.500000 2.000000 -1.250000 +v -0.500000 1.750000 -1.500000 +v 0.500000 1.750000 -1.500000 +v 0.500000 2.000000 -1.250000 +v 0.250000 0.875000 0.750000 +v 0.250000 0.875000 -0.750000 +v -0.250000 0.875000 0.750000 +v -0.250000 0.875000 -0.750000 +vt 0.438596 0.166667 +vt 0.017544 0.357143 +vt 0.017544 0.166667 +vt 0.421053 0.142857 +vt 0.017544 0.000000 +vt 0.421053 -0.000000 +vt 0.438596 0.142857 +vt 0.456140 0.357143 +vt 0.438596 0.357143 +vt 0.000000 0.166667 +vt 0.017544 0.380952 +vt 0.543860 0.142857 +vt 0.421053 -0.000000 +vt 0.543860 -0.000000 +vt 0.333333 0.833333 +vt 0.017544 0.785714 +vt 0.438596 0.785714 +vt 0.017544 1.000000 +vt 0.438596 0.976190 +vt 0.438596 1.000000 +vt 0.456140 0.976190 +vt 0.456140 0.785714 +vt -0.000000 0.785714 +vt 0.017544 0.976190 +vt -0.000000 0.976190 +vt 0.438596 0.761905 +vt 0.017544 0.761905 +vt 0.429825 0.559524 +vt 0.017544 0.571429 +vt 0.026316 0.559524 +vt 0.026316 0.392857 +vt 0.438596 0.380952 +vt 0.429825 0.392857 +vt 0.438596 0.571429 +vt 0.026316 0.583333 +vt 0.438596 0.571429 +vt 0.429825 0.583333 +vt 0.026316 0.750000 +vt 0.017544 0.571429 +vt 0.429825 0.750000 +vt 0.543860 0.142857 +vt 0.543860 -0.000000 +vt 0.421053 0.142857 +vt 0.017544 0.000000 +vt 0.543860 0.476190 +vt 0.508772 0.285714 +vt 0.543860 0.285714 +vt 0.964912 0.190476 +vt 0.859649 0.047619 +vt 0.964912 0.000000 +vt 0.578947 0.285714 +vt 0.929825 0.476190 +vt 0.578947 0.476190 +vt 0.096491 0.619048 +vt 0.114035 0.714286 +vt 0.096491 0.714286 +vt 0.543860 0.190476 +vt 0.929825 0.285714 +vt 0.964912 0.285714 +vt 1.000000 0.476190 +vt 0.964912 0.476190 +vt 0.543860 -0.000000 +vt 0.649123 0.142857 +vt 0.859649 0.142857 +vt 0.649123 0.047619 +vt 0.201754 0.392857 +vt 0.149123 0.488095 +vt 0.149123 0.392857 +vt 0.026316 0.488095 +vt 0.026316 0.392857 +vt 0.324561 0.392857 +vt 0.201754 0.488095 +vt 0.377193 0.392857 +vt 0.324561 0.488095 +vt 0.377193 0.392857 +vt 0.324561 0.488095 +vt 0.324561 0.392857 +vt 0.201754 0.488095 +vt 0.201754 0.392857 +vt 0.149123 0.392857 +vt 0.026316 0.488095 +vt 0.026316 0.392857 +vt 0.149123 0.488095 +vt 0.964912 0.571429 +vt 0.543860 0.571429 +vt 0.122807 0.833333 +vt 0.122807 0.928571 +vt 0.333333 0.928571 +vt 0.324561 0.714286 +vt 0.114035 0.619048 +vt 0.324561 0.619048 +vt 0.114035 0.738095 +vt 0.324561 0.738095 +vt 0.324561 0.595238 +vt 0.114035 0.595238 +vt 0.342105 0.714286 +vt 0.342105 0.619048 +vt 0.017544 0.142857 +vt 0.017544 0.142857 +vt 0.456140 0.166667 +vt 0.000000 0.357143 +vt 0.017544 0.142857 +vt 0.508772 0.476190 +vt 0.964912 0.238095 +vt 0.543860 0.238095 +vt 1.000000 0.285714 +vt 0.377193 0.488095 +vt 0.377193 0.488095 +vt 0.543860 0.523810 +vt 0.964912 0.523810 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +s off +f 575/897/32 574/898/32 573/899/32 +f 584/900/33 578/901/33 580/902/33 +f 573/899/34 589/903/34 575/897/34 +f 575/897/35 592/904/35 576/905/35 +f 574/898/36 590/906/36 573/899/36 +f 576/905/33 591/907/33 574/898/33 +f 582/908/36 577/909/36 578/910/36 +f 597/911/37 586/912/37 588/913/37 +f 594/914/34 587/915/34 593/916/34 +f 593/917/35 588/913/35 596/918/35 +f 595/919/36 585/920/36 594/921/36 +f 596/922/33 586/912/33 595/923/33 +f 579/924/37 590/925/37 577/926/37 +f 577/926/37 591/907/37 578/927/37 +f 578/927/37 592/928/37 580/929/37 +f 580/929/37 589/930/37 579/924/37 +f 581/931/32 593/932/32 583/933/32 +f 582/934/32 594/935/32 581/931/32 +f 584/936/32 595/923/32 582/934/32 +f 583/933/32 596/922/32 584/936/32 +f 583/937/35 580/902/35 579/938/35 +f 581/939/34 579/940/34 577/909/34 +f 625/941/36 603/942/36 628/943/36 +f 604/944/32 605/945/32 601/946/32 +f 627/947/37 629/948/37 626/949/37 +f 600/950/36 634/951/36 597/952/36 +f 603/953/33 604/944/33 632/954/33 +f 631/955/35 601/956/35 630/957/35 +f 602/958/32 607/959/32 603/953/32 +f 603/953/32 608/960/32 604/944/32 +f 601/946/32 606/961/32 602/958/32 +f 613/962/33 610/963/33 614/964/33 +f 614/964/36 611/965/36 615/966/36 +f 616/967/35 609/968/35 613/962/35 +f 615/969/34 612/970/34 616/967/34 +f 618/971/34 621/972/34 617/973/34 +f 617/973/35 624/974/35 620/975/35 +f 619/976/36 622/977/36 618/978/36 +f 620/975/33 623/979/33 619/976/33 +f 628/943/38 626/949/38 625/941/38 +f 630/957/39 632/954/39 631/955/39 +f 601/980/34 602/981/34 626/949/34 +f 598/982/37 585/920/37 586/912/37 +f 599/983/37 587/915/37 585/920/37 +f 600/984/37 588/913/37 587/915/37 +f 633/985/37 636/986/37 635/987/37 +f 597/988/34 633/985/34 598/989/34 +f 599/990/33 636/986/33 600/991/33 +f 598/992/35 635/987/35 599/993/35 +f 575/897/32 576/905/32 574/898/32 +f 584/900/33 582/994/33 578/901/33 +f 573/899/34 590/995/34 589/903/34 +f 575/897/35 589/996/35 592/904/35 +f 574/898/36 591/997/36 590/906/36 +f 576/905/33 592/928/33 591/907/33 +f 582/908/36 581/939/36 577/909/36 +f 597/911/37 598/982/37 586/912/37 +f 594/914/34 585/920/34 587/915/34 +f 593/917/35 587/915/35 588/913/35 +f 595/919/36 586/912/36 585/920/36 +f 596/922/33 588/913/33 586/912/33 +f 579/924/37 589/930/37 590/925/37 +f 577/926/37 590/925/37 591/907/37 +f 578/927/37 591/907/37 592/928/37 +f 580/929/37 592/928/37 589/930/37 +f 581/931/32 594/935/32 593/932/32 +f 582/934/32 595/923/32 594/935/32 +f 584/936/32 596/922/32 595/923/32 +f 583/933/32 593/932/32 596/922/32 +f 583/937/35 584/900/35 580/902/35 +f 581/939/34 583/998/34 579/940/34 +f 625/941/36 602/999/36 603/942/36 +f 604/944/32 608/960/32 605/945/32 +f 627/947/37 632/954/37 629/948/37 +f 600/950/36 636/986/36 634/951/36 +f 604/944/33 631/1000/33 632/954/33 +f 632/954/33 627/947/33 603/953/33 +f 627/947/33 628/1001/33 603/953/33 +f 631/955/35 604/1002/35 601/956/35 +f 602/958/32 606/961/32 607/959/32 +f 603/953/32 607/959/32 608/960/32 +f 601/946/32 605/945/32 606/961/32 +f 613/962/33 609/968/33 610/963/33 +f 614/964/36 610/963/36 611/965/36 +f 616/967/35 612/970/35 609/968/35 +f 615/969/34 611/1003/34 612/970/34 +f 618/971/34 622/1004/34 621/972/34 +f 617/973/35 621/972/35 624/974/35 +f 619/976/36 623/979/36 622/977/36 +f 620/975/33 624/974/33 623/979/33 +f 628/943/38 627/947/38 626/949/38 +f 630/957/39 629/948/39 632/954/39 +f 602/981/34 625/1005/34 626/949/34 +f 626/949/34 629/948/34 601/980/34 +f 629/948/34 630/1006/34 601/980/34 +f 598/982/37 599/983/37 585/920/37 +f 599/983/37 600/984/37 587/915/37 +f 600/984/37 597/911/37 588/913/37 +f 633/985/37 634/951/37 636/986/37 +f 597/988/34 634/951/34 633/985/34 +f 599/990/33 635/987/33 636/986/33 +f 598/992/35 633/985/35 635/987/35 diff --git a/src/main/resources/assets/hbm/models/machines/arc_furnace.obj b/src/main/resources/assets/hbm/models/machines/arc_furnace.obj new file mode 100644 index 000000000..4ef43de72 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/arc_furnace.obj @@ -0,0 +1,6124 @@ +# Blender v2.79 (sub 0) OBJ File: 'arc_furnace.blend' +# www.blender.org +o Electrode1Short +v -0.029029 6.000000 0.279029 +v 0.062500 6.000000 0.500000 +v -0.029029 6.000000 0.720971 +v -0.250000 6.000000 0.812500 +v -0.470971 6.000000 0.720971 +v -0.562500 6.000000 0.500000 +v -0.470971 6.000000 0.279029 +v -0.250000 6.000000 0.187500 +v -0.029029 3.750000 0.279029 +v 0.062500 3.750000 0.500000 +v -0.029029 3.750000 0.720971 +v -0.250000 3.750000 0.812500 +v -0.470971 3.750000 0.720971 +v -0.562500 3.750000 0.500000 +v -0.250000 3.750000 0.187500 +v -0.470971 3.750000 0.279029 +vt 0.659220 0.634752 +vt 0.673295 0.617182 +vt 0.687371 0.634752 +vt 0.687535 0.634752 +vt 0.691685 0.622246 +vt 0.701705 0.617066 +vt 0.683248 0.647175 +vt 0.673295 0.652321 +vt 0.663343 0.647175 +vt 0.663343 0.622328 +vt 0.683248 0.622328 +vt 0.711724 0.622246 +vt 0.715873 0.634752 +vt 0.711723 0.647258 +vt 0.701705 0.652438 +vt 0.691685 0.647258 +vt 0.659091 0.489362 +vt 0.670455 0.617021 +vt 0.659091 0.617021 +vt 0.670455 0.489362 +vt 0.681818 0.617021 +vt 0.681818 0.489362 +vt 0.693182 0.617021 +vt 0.693182 0.489362 +vt 0.704545 0.617021 +vt 0.704545 0.489362 +vt 0.715909 0.617021 +vt 0.727273 0.489362 +vt 0.727273 0.617021 +vt 0.738636 0.617021 +vt 0.738636 0.489362 +vt 0.750000 0.617021 +vt 0.715909 0.489362 +vt 0.750000 0.489362 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 4/1/1 2/2/1 8/3/1 +f 12/4/2 13/5/2 14/6/2 +f 8/3/1 7/7/1 6/8/1 +f 6/8/1 5/9/1 4/1/1 +f 4/1/1 3/10/1 2/2/1 +f 2/2/1 1/11/1 8/3/1 +f 8/3/1 6/8/1 4/1/1 +f 14/6/2 16/12/2 15/13/2 +f 15/13/2 9/14/2 14/6/2 +f 9/14/2 10/15/2 14/6/2 +f 10/15/2 11/16/2 14/6/2 +f 11/16/2 12/4/2 14/6/2 +s 1 +f 14/17/3 5/18/4 6/19/3 +f 13/20/4 4/21/5 5/18/4 +f 12/22/5 3/23/6 4/21/5 +f 11/24/6 2/25/7 3/23/6 +f 10/26/7 1/27/8 2/25/7 +f 1/27/8 15/28/9 8/29/9 +f 15/28/9 7/30/10 8/29/9 +f 16/31/10 6/32/3 7/30/10 +f 14/17/3 13/20/4 5/18/4 +f 13/20/4 12/22/5 4/21/5 +f 12/22/5 11/24/6 3/23/6 +f 11/24/6 10/26/7 2/25/7 +f 10/26/7 9/33/8 1/27/8 +f 1/27/8 9/33/8 15/28/9 +f 15/28/9 16/31/10 7/30/10 +f 16/31/10 14/34/3 6/32/3 +o Electrode2Short +v 0.720971 6.000000 -0.220971 +v 0.812500 6.000000 0.000000 +v 0.720971 6.000000 0.220971 +v 0.500000 6.000000 0.312500 +v 0.279029 6.000000 0.220971 +v 0.187500 6.000000 0.000000 +v 0.279029 6.000000 -0.220971 +v 0.500000 6.000000 -0.312500 +v 0.720971 3.750000 -0.220971 +v 0.812500 3.750000 0.000000 +v 0.720971 3.750000 0.220971 +v 0.500000 3.750000 0.312500 +v 0.279029 3.750000 0.220971 +v 0.187500 3.750000 0.000000 +v 0.500000 3.750000 -0.312500 +v 0.279029 3.750000 -0.220971 +vt 0.659220 0.634752 +vt 0.673295 0.617182 +vt 0.687371 0.634752 +vt 0.687536 0.634752 +vt 0.691685 0.622246 +vt 0.701705 0.617066 +vt 0.683248 0.647175 +vt 0.673295 0.652321 +vt 0.663343 0.647175 +vt 0.663343 0.622328 +vt 0.683248 0.622328 +vt 0.711724 0.622246 +vt 0.715873 0.634752 +vt 0.711723 0.647258 +vt 0.701705 0.652438 +vt 0.691685 0.647258 +vt 0.659091 0.489362 +vt 0.670455 0.617021 +vt 0.659091 0.617021 +vt 0.670455 0.489362 +vt 0.681818 0.617021 +vt 0.681818 0.489362 +vt 0.693182 0.617021 +vt 0.693182 0.489362 +vt 0.704545 0.617021 +vt 0.704545 0.489362 +vt 0.715909 0.617021 +vt 0.715909 0.489362 +vt 0.727273 0.617021 +vt 0.727273 0.489362 +vt 0.738636 0.617021 +vt 0.738636 0.489362 +vt 0.750000 0.617021 +vt 0.750000 0.489362 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 20/35/11 18/36/11 24/37/11 +f 28/38/12 29/39/12 30/40/12 +f 24/37/11 23/41/11 22/42/11 +f 22/42/11 21/43/11 20/35/11 +f 20/35/11 19/44/11 18/36/11 +f 18/36/11 17/45/11 24/37/11 +f 24/37/11 22/42/11 20/35/11 +f 30/40/12 32/46/12 31/47/12 +f 31/47/12 25/48/12 30/40/12 +f 25/48/12 26/49/12 30/40/12 +f 26/49/12 27/50/12 30/40/12 +f 27/50/12 28/38/12 30/40/12 +s 1 +f 30/51/13 21/52/14 22/53/13 +f 29/54/14 20/55/15 21/52/14 +f 28/56/15 19/57/16 20/55/15 +f 27/58/16 18/59/17 19/57/16 +f 26/60/17 17/61/18 18/59/17 +f 25/62/18 24/63/19 17/61/18 +f 31/64/19 23/65/20 24/63/19 +f 32/66/20 22/67/13 23/65/20 +f 30/51/13 29/54/14 21/52/14 +f 29/54/14 28/56/15 20/55/15 +f 28/56/15 27/58/16 19/57/16 +f 27/58/16 26/60/17 18/59/17 +f 26/60/17 25/62/18 17/61/18 +f 25/62/18 31/64/19 24/63/19 +f 31/64/19 32/66/20 23/65/20 +f 32/66/20 30/68/13 22/67/13 +o Electrode3Short +v -0.029029 6.000000 -0.720971 +v 0.062500 6.000000 -0.500000 +v -0.029029 6.000000 -0.279029 +v -0.250000 6.000000 -0.187500 +v -0.470971 6.000000 -0.279029 +v -0.562500 6.000000 -0.500000 +v -0.470971 6.000000 -0.720971 +v -0.250000 6.000000 -0.812500 +v -0.029029 3.750000 -0.720971 +v 0.062500 3.750000 -0.500000 +v -0.029029 3.750000 -0.279029 +v -0.250000 3.750000 -0.187500 +v -0.470971 3.750000 -0.279029 +v -0.562500 3.750000 -0.500000 +v -0.250000 3.750000 -0.812500 +v -0.470971 3.750000 -0.720971 +vt 0.659220 0.634752 +vt 0.673295 0.617182 +vt 0.687371 0.634752 +vt 0.687536 0.634752 +vt 0.691685 0.622246 +vt 0.701705 0.617066 +vt 0.683248 0.647175 +vt 0.673295 0.652321 +vt 0.663343 0.647175 +vt 0.663343 0.622328 +vt 0.683248 0.622328 +vt 0.711724 0.622246 +vt 0.715873 0.634752 +vt 0.711723 0.647258 +vt 0.701705 0.652438 +vt 0.691685 0.647258 +vt 0.659091 0.489362 +vt 0.670455 0.617021 +vt 0.659091 0.617021 +vt 0.670455 0.489362 +vt 0.681818 0.617021 +vt 0.681818 0.489362 +vt 0.693182 0.617021 +vt 0.693182 0.489362 +vt 0.704545 0.617021 +vt 0.704545 0.489362 +vt 0.715909 0.617021 +vt 0.715909 0.489362 +vt 0.727273 0.617021 +vt 0.727273 0.489362 +vt 0.738636 0.617021 +vt 0.738636 0.489362 +vt 0.750000 0.617021 +vt 0.750000 0.489362 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 36/69/21 34/70/21 40/71/21 +f 44/72/22 45/73/22 46/74/22 +f 40/71/21 39/75/21 38/76/21 +f 38/76/21 37/77/21 36/69/21 +f 36/69/21 35/78/21 34/70/21 +f 34/70/21 33/79/21 40/71/21 +f 40/71/21 38/76/21 36/69/21 +f 46/74/22 48/80/22 47/81/22 +f 47/81/22 41/82/22 46/74/22 +f 41/82/22 42/83/22 46/74/22 +f 42/83/22 43/84/22 46/74/22 +f 43/84/22 44/72/22 46/74/22 +s 1 +f 46/85/23 37/86/24 38/87/23 +f 45/88/24 36/89/25 37/86/24 +f 44/90/25 35/91/26 36/89/25 +f 43/92/26 34/93/27 35/91/26 +f 42/94/27 33/95/28 34/93/27 +f 41/96/28 40/97/29 33/95/28 +f 47/98/29 39/99/30 40/97/29 +f 48/100/30 38/101/23 39/99/30 +f 46/85/23 45/88/24 37/86/24 +f 45/88/24 44/90/25 36/89/25 +f 44/90/25 43/92/26 35/91/26 +f 43/92/26 42/94/27 34/93/27 +f 42/94/27 41/96/28 33/95/28 +f 41/96/28 47/98/29 40/97/29 +f 47/98/29 48/100/30 39/99/30 +f 48/100/30 46/102/23 38/101/23 +o Electrode3Hot +v -0.029029 6.000000 -0.720971 +v 0.062500 6.000000 -0.500000 +v -0.029029 6.000000 -0.279029 +v -0.250000 6.000000 -0.187500 +v -0.470971 6.000000 -0.279029 +v -0.562500 6.000000 -0.500000 +v -0.470971 6.000000 -0.720971 +v -0.250000 6.000000 -0.812500 +v -0.029029 2.250000 -0.720971 +v 0.062500 2.250000 -0.500000 +v -0.029029 2.250000 -0.279029 +v -0.250000 2.250000 -0.187500 +v -0.470971 2.250000 -0.279029 +v -0.562500 2.250000 -0.500000 +v -0.250000 2.250000 -0.812500 +v -0.470971 2.250000 -0.720971 +vt 0.659220 0.634752 +vt 0.673295 0.617182 +vt 0.687371 0.634752 +vt 0.687536 0.634752 +vt 0.691685 0.622246 +vt 0.701705 0.617066 +vt 0.683248 0.647175 +vt 0.673295 0.652321 +vt 0.663343 0.647175 +vt 0.663343 0.622328 +vt 0.683248 0.622328 +vt 0.711724 0.622246 +vt 0.715873 0.634752 +vt 0.711723 0.647258 +vt 0.701705 0.652438 +vt 0.691685 0.647258 +vt 0.659091 0.404255 +vt 0.670455 0.617021 +vt 0.659091 0.617021 +vt 0.670455 0.404255 +vt 0.681818 0.617021 +vt 0.681818 0.404255 +vt 0.693182 0.617021 +vt 0.693182 0.404255 +vt 0.704545 0.617021 +vt 0.704545 0.404255 +vt 0.715909 0.617021 +vt 0.715909 0.404255 +vt 0.727273 0.617021 +vt 0.727273 0.404255 +vt 0.738636 0.617021 +vt 0.738636 0.404255 +vt 0.750000 0.617021 +vt 0.750000 0.404255 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 52/103/31 50/104/31 56/105/31 +f 60/106/32 61/107/32 62/108/32 +f 56/105/31 55/109/31 54/110/31 +f 54/110/31 53/111/31 52/103/31 +f 52/103/31 51/112/31 50/104/31 +f 50/104/31 49/113/31 56/105/31 +f 56/105/31 54/110/31 52/103/31 +f 62/108/32 64/114/32 63/115/32 +f 63/115/32 57/116/32 62/108/32 +f 57/116/32 58/117/32 62/108/32 +f 58/117/32 59/118/32 62/108/32 +f 59/118/32 60/106/32 62/108/32 +s 1 +f 62/119/33 53/120/34 54/121/33 +f 61/122/34 52/123/35 53/120/34 +f 60/124/35 51/125/36 52/123/35 +f 59/126/36 50/127/37 51/125/36 +f 58/128/37 49/129/38 50/127/37 +f 57/130/38 56/131/39 49/129/38 +f 63/132/39 55/133/40 56/131/39 +f 64/134/40 54/135/33 55/133/40 +f 62/119/33 61/122/34 53/120/34 +f 61/122/34 60/124/35 52/123/35 +f 60/124/35 59/126/36 51/125/36 +f 59/126/36 58/128/37 50/127/37 +f 58/128/37 57/130/38 49/129/38 +f 57/130/38 63/132/39 56/131/39 +f 63/132/39 64/134/40 55/133/40 +f 64/134/40 62/136/33 54/135/33 +o Electrode2Hot +v 0.720971 6.000000 -0.220971 +v 0.812500 6.000000 0.000000 +v 0.720971 6.000000 0.220971 +v 0.500000 6.000000 0.312500 +v 0.279029 6.000000 0.220971 +v 0.187500 6.000000 0.000000 +v 0.279029 6.000000 -0.220971 +v 0.500000 6.000000 -0.312500 +v 0.720971 2.250000 -0.220971 +v 0.812500 2.250000 0.000000 +v 0.720971 2.250000 0.220971 +v 0.500000 2.250000 0.312500 +v 0.279029 2.250000 0.220971 +v 0.187500 2.250000 0.000000 +v 0.500000 2.250000 -0.312500 +v 0.279029 2.250000 -0.220971 +vt 0.659220 0.634752 +vt 0.673295 0.617182 +vt 0.687371 0.634752 +vt 0.687536 0.634752 +vt 0.691685 0.622246 +vt 0.701705 0.617066 +vt 0.683248 0.647175 +vt 0.673295 0.652321 +vt 0.663343 0.647175 +vt 0.663343 0.622328 +vt 0.683248 0.622328 +vt 0.711724 0.622246 +vt 0.715873 0.634752 +vt 0.711723 0.647258 +vt 0.701705 0.652438 +vt 0.691685 0.647258 +vt 0.659091 0.404255 +vt 0.670455 0.617021 +vt 0.659091 0.617021 +vt 0.670455 0.404255 +vt 0.681818 0.617021 +vt 0.681818 0.404255 +vt 0.693182 0.617021 +vt 0.693182 0.404255 +vt 0.704545 0.617021 +vt 0.704545 0.404255 +vt 0.715909 0.617021 +vt 0.715909 0.404255 +vt 0.727273 0.617021 +vt 0.727273 0.404255 +vt 0.738636 0.617021 +vt 0.738636 0.404255 +vt 0.750000 0.617021 +vt 0.750000 0.404255 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 68/137/41 66/138/41 72/139/41 +f 76/140/42 77/141/42 78/142/42 +f 72/139/41 71/143/41 70/144/41 +f 70/144/41 69/145/41 68/137/41 +f 68/137/41 67/146/41 66/138/41 +f 66/138/41 65/147/41 72/139/41 +f 72/139/41 70/144/41 68/137/41 +f 78/142/42 80/148/42 79/149/42 +f 79/149/42 73/150/42 78/142/42 +f 73/150/42 74/151/42 78/142/42 +f 74/151/42 75/152/42 78/142/42 +f 75/152/42 76/140/42 78/142/42 +s 1 +f 78/153/43 69/154/44 70/155/43 +f 77/156/44 68/157/45 69/154/44 +f 76/158/45 67/159/46 68/157/45 +f 75/160/46 66/161/47 67/159/46 +f 74/162/47 65/163/48 66/161/47 +f 73/164/48 72/165/49 65/163/48 +f 79/166/49 71/167/50 72/165/49 +f 80/168/50 70/169/43 71/167/50 +f 78/153/43 77/156/44 69/154/44 +f 77/156/44 76/158/45 68/157/45 +f 76/158/45 75/160/46 67/159/46 +f 75/160/46 74/162/47 66/161/47 +f 74/162/47 73/164/48 65/163/48 +f 73/164/48 79/166/49 72/165/49 +f 79/166/49 80/168/50 71/167/50 +f 80/168/50 78/170/43 70/169/43 +o Electrode1Hot +v -0.029029 6.000000 0.279029 +v 0.062500 6.000000 0.500000 +v -0.029029 6.000000 0.720971 +v -0.250000 6.000000 0.812500 +v -0.470971 6.000000 0.720971 +v -0.562500 6.000000 0.500000 +v -0.470971 6.000000 0.279029 +v -0.250000 6.000000 0.187500 +v -0.029029 2.250000 0.279029 +v 0.062500 2.250000 0.500000 +v -0.029029 2.250000 0.720971 +v -0.250000 2.250000 0.812500 +v -0.470971 2.250000 0.720971 +v -0.562500 2.250000 0.500000 +v -0.250000 2.250000 0.187500 +v -0.470971 2.250000 0.279029 +vt 0.659220 0.634752 +vt 0.673295 0.617182 +vt 0.687371 0.634752 +vt 0.687535 0.634752 +vt 0.691685 0.622246 +vt 0.701705 0.617066 +vt 0.683248 0.647175 +vt 0.673295 0.652321 +vt 0.663343 0.647175 +vt 0.663343 0.622328 +vt 0.683248 0.622328 +vt 0.711724 0.622246 +vt 0.715873 0.634752 +vt 0.711723 0.647258 +vt 0.701705 0.652438 +vt 0.691685 0.647258 +vt 0.659091 0.404255 +vt 0.670455 0.617021 +vt 0.659091 0.617021 +vt 0.670455 0.404255 +vt 0.681818 0.617021 +vt 0.681818 0.404255 +vt 0.693182 0.617021 +vt 0.704545 0.404255 +vt 0.704545 0.617021 +vt 0.715909 0.617021 +vt 0.715909 0.404255 +vt 0.727273 0.617021 +vt 0.738636 0.404255 +vt 0.738636 0.617021 +vt 0.750000 0.617021 +vt 0.693182 0.404255 +vt 0.727273 0.404255 +vt 0.750000 0.404255 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 -0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 84/171/51 82/172/51 88/173/51 +f 92/174/52 93/175/52 94/176/52 +f 88/173/51 87/177/51 86/178/51 +f 86/178/51 85/179/51 84/171/51 +f 84/171/51 83/180/51 82/172/51 +f 82/172/51 81/181/51 88/173/51 +f 88/173/51 86/178/51 84/171/51 +f 94/176/52 96/182/52 95/183/52 +f 95/183/52 89/184/52 94/176/52 +f 89/184/52 90/185/52 94/176/52 +f 90/185/52 91/186/52 94/176/52 +f 91/186/52 92/174/52 94/176/52 +s 1 +f 94/187/53 85/188/54 86/189/53 +f 93/190/54 84/191/55 85/188/54 +f 92/192/55 83/193/56 84/191/55 +f 83/193/56 90/194/57 82/195/57 +f 90/194/57 81/196/58 82/195/57 +f 89/197/58 88/198/59 81/196/58 +f 88/198/59 96/199/60 87/200/60 +f 96/199/60 86/201/53 87/200/60 +f 94/187/53 93/190/54 85/188/54 +f 93/190/54 92/192/55 84/191/55 +f 92/192/55 91/202/56 83/193/56 +f 83/193/56 91/202/56 90/194/57 +f 90/194/57 89/197/58 81/196/58 +f 89/197/58 95/203/59 88/198/59 +f 88/198/59 95/203/59 96/199/60 +f 96/199/60 94/204/53 86/201/53 +o Electrode1 +v -0.029029 6.000000 0.279029 +v 0.062500 6.000000 0.500000 +v -0.029029 6.000000 0.720971 +v -0.250000 6.000000 0.812500 +v -0.470971 6.000000 0.720971 +v -0.562500 6.000000 0.500000 +v -0.470971 6.000000 0.279029 +v -0.250000 6.000000 0.187500 +v -0.029029 2.250000 0.279029 +v 0.062500 2.250000 0.500000 +v -0.029029 2.250000 0.720971 +v -0.250000 2.250000 0.812500 +v -0.470971 2.250000 0.720971 +v -0.562500 2.250000 0.500000 +v -0.250000 2.250000 0.187500 +v -0.470971 2.250000 0.279029 +vt 0.568311 0.634752 +vt 0.582386 0.617182 +vt 0.596462 0.634752 +vt 0.596626 0.634752 +vt 0.600776 0.622246 +vt 0.610795 0.617066 +vt 0.592339 0.647175 +vt 0.582386 0.652321 +vt 0.572434 0.647175 +vt 0.572434 0.622328 +vt 0.592339 0.622328 +vt 0.620814 0.622246 +vt 0.624964 0.634752 +vt 0.620814 0.647258 +vt 0.610795 0.652438 +vt 0.600776 0.647258 +vt 0.568182 0.404255 +vt 0.579545 0.617021 +vt 0.568182 0.617021 +vt 0.579545 0.404255 +vt 0.590909 0.617021 +vt 0.590909 0.404255 +vt 0.602273 0.617021 +vt 0.613636 0.404255 +vt 0.613636 0.617021 +vt 0.625000 0.617021 +vt 0.625000 0.404255 +vt 0.636364 0.617021 +vt 0.647727 0.404255 +vt 0.647727 0.617021 +vt 0.659091 0.617021 +vt 0.602273 0.404255 +vt 0.636364 0.404255 +vt 0.659091 0.404255 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 -0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 100/205/61 98/206/61 104/207/61 +f 108/208/62 109/209/62 110/210/62 +f 104/207/61 103/211/61 102/212/61 +f 102/212/61 101/213/61 100/205/61 +f 100/205/61 99/214/61 98/206/61 +f 98/206/61 97/215/61 104/207/61 +f 104/207/61 102/212/61 100/205/61 +f 110/210/62 112/216/62 111/217/62 +f 111/217/62 105/218/62 110/210/62 +f 105/218/62 106/219/62 110/210/62 +f 106/219/62 107/220/62 110/210/62 +f 107/220/62 108/208/62 110/210/62 +s 1 +f 110/221/63 101/222/64 102/223/63 +f 109/224/64 100/225/65 101/222/64 +f 108/226/65 99/227/66 100/225/65 +f 99/227/66 106/228/67 98/229/67 +f 106/228/67 97/230/68 98/229/67 +f 105/231/68 104/232/69 97/230/68 +f 104/232/69 112/233/70 103/234/70 +f 112/233/70 102/235/63 103/234/70 +f 110/221/63 109/224/64 101/222/64 +f 109/224/64 108/226/65 100/225/65 +f 108/226/65 107/236/66 99/227/66 +f 99/227/66 107/236/66 106/228/67 +f 106/228/67 105/231/68 97/230/68 +f 105/231/68 111/237/69 104/232/69 +f 104/232/69 111/237/69 112/233/70 +f 112/233/70 110/238/63 102/235/63 +o Electrode2 +v 0.720971 6.000000 -0.220971 +v 0.812500 6.000000 0.000000 +v 0.720971 6.000000 0.220971 +v 0.500000 6.000000 0.312500 +v 0.279029 6.000000 0.220971 +v 0.187500 6.000000 0.000000 +v 0.279029 6.000000 -0.220971 +v 0.500000 6.000000 -0.312500 +v 0.720971 2.250000 -0.220971 +v 0.812500 2.250000 0.000000 +v 0.720971 2.250000 0.220971 +v 0.500000 2.250000 0.312500 +v 0.279029 2.250000 0.220971 +v 0.187500 2.250000 0.000000 +v 0.500000 2.250000 -0.312500 +v 0.279029 2.250000 -0.220971 +vt 0.568311 0.634752 +vt 0.582386 0.617182 +vt 0.596462 0.634752 +vt 0.596626 0.634752 +vt 0.600776 0.622246 +vt 0.610795 0.617066 +vt 0.592339 0.647175 +vt 0.582386 0.652321 +vt 0.572434 0.647175 +vt 0.572434 0.622328 +vt 0.592339 0.622328 +vt 0.620814 0.622246 +vt 0.624964 0.634752 +vt 0.620814 0.647258 +vt 0.610795 0.652438 +vt 0.600776 0.647258 +vt 0.568182 0.404255 +vt 0.579545 0.617021 +vt 0.568182 0.617021 +vt 0.579545 0.404255 +vt 0.590909 0.617021 +vt 0.590909 0.404255 +vt 0.602273 0.617021 +vt 0.602273 0.404255 +vt 0.613636 0.617021 +vt 0.613636 0.404255 +vt 0.625000 0.617021 +vt 0.625000 0.404255 +vt 0.636364 0.617021 +vt 0.636364 0.404255 +vt 0.647727 0.617021 +vt 0.647727 0.404255 +vt 0.659091 0.617021 +vt 0.659091 0.404255 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 116/239/71 114/240/71 120/241/71 +f 124/242/72 125/243/72 126/244/72 +f 120/241/71 119/245/71 118/246/71 +f 118/246/71 117/247/71 116/239/71 +f 116/239/71 115/248/71 114/240/71 +f 114/240/71 113/249/71 120/241/71 +f 120/241/71 118/246/71 116/239/71 +f 126/244/72 128/250/72 127/251/72 +f 127/251/72 121/252/72 126/244/72 +f 121/252/72 122/253/72 126/244/72 +f 122/253/72 123/254/72 126/244/72 +f 123/254/72 124/242/72 126/244/72 +s 1 +f 126/255/73 117/256/74 118/257/73 +f 125/258/74 116/259/75 117/256/74 +f 124/260/75 115/261/76 116/259/75 +f 123/262/76 114/263/77 115/261/76 +f 122/264/77 113/265/78 114/263/77 +f 121/266/78 120/267/79 113/265/78 +f 127/268/79 119/269/80 120/267/79 +f 128/270/80 118/271/73 119/269/80 +f 126/255/73 125/258/74 117/256/74 +f 125/258/74 124/260/75 116/259/75 +f 124/260/75 123/262/76 115/261/76 +f 123/262/76 122/264/77 114/263/77 +f 122/264/77 121/266/78 113/265/78 +f 121/266/78 127/268/79 120/267/79 +f 127/268/79 128/270/80 119/269/80 +f 128/270/80 126/272/73 118/271/73 +o Ring1 +v -0.250000 5.250000 0.187500 +v -0.470971 5.250000 0.279029 +v -0.562500 5.250000 0.500000 +v -0.470971 5.250000 0.720971 +v -0.250000 5.250000 0.812500 +v -0.029029 5.250000 0.720971 +v 0.062500 5.250000 0.500000 +v -0.029029 5.250000 0.279029 +v -0.029029 5.750000 0.279029 +v 0.062500 5.750000 0.500000 +v -0.029029 5.750000 0.720971 +v -0.250000 5.750000 0.812500 +v -0.470971 5.750000 0.720971 +v -0.562500 5.750000 0.500000 +v -0.470971 5.750000 0.279029 +v -0.250000 5.750000 0.187500 +v -0.250000 5.750000 0.125000 +v -0.515165 5.750000 0.234835 +v -0.625000 5.750000 0.500000 +v -0.515165 5.750000 0.765165 +v -0.250000 5.750000 0.875000 +v 0.015165 5.750000 0.765165 +v 0.125000 5.750000 0.500000 +v 0.015165 5.750000 0.234835 +v 0.015165 5.250000 0.234835 +v 0.125000 5.250000 0.500000 +v 0.015165 5.250000 0.765165 +v -0.250000 5.250000 0.875000 +v -0.515165 5.250000 0.765165 +v -0.625000 5.250000 0.500000 +v -0.515165 5.250000 0.234835 +v -0.250000 5.250000 0.125000 +vt 0.500000 0.663121 +vt 0.488636 0.666667 +vt 0.488636 0.663121 +vt 0.511364 0.663121 +vt 0.500000 0.666667 +vt 0.522727 0.663121 +vt 0.511364 0.666667 +vt 0.534091 0.666667 +vt 0.522727 0.666667 +vt 0.534091 0.663121 +vt 0.545455 0.666667 +vt 0.545455 0.663121 +vt 0.556818 0.666667 +vt 0.568182 0.663121 +vt 0.556818 0.663121 +vt 0.477273 0.663121 +vt 0.477273 0.666667 +vt 0.545455 0.631206 +vt 0.534091 0.634752 +vt 0.534091 0.631206 +vt 0.556818 0.631206 +vt 0.545455 0.634752 +vt 0.568182 0.634752 +vt 0.556818 0.634752 +vt 0.488636 0.631206 +vt 0.477273 0.634752 +vt 0.477273 0.631206 +vt 0.500000 0.634752 +vt 0.488636 0.634752 +vt 0.500000 0.631206 +vt 0.511364 0.634752 +vt 0.511364 0.631206 +vt 0.522727 0.634752 +vt 0.522727 0.631206 +vt 0.568182 0.666667 +vt 0.568182 0.631206 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 1.0000 0.0000 -0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +s off +f 149/273/81 141/274/81 148/275/81 +f 150/276/81 140/277/81 149/273/81 +f 151/278/81 139/279/81 150/276/81 +f 151/278/81 137/280/81 138/281/81 +f 152/282/81 144/283/81 137/280/81 +f 145/284/81 143/285/81 144/283/81 +f 147/286/81 143/285/81 146/287/81 +f 147/288/81 141/274/81 142/289/81 +f 129/290/82 153/291/82 136/292/82 +f 130/293/82 160/294/82 129/290/82 +f 130/293/82 158/295/82 159/296/82 +f 132/297/82 158/298/82 131/299/82 +f 132/297/82 156/300/82 157/301/82 +f 133/302/82 155/303/82 156/300/82 +f 134/304/82 154/305/82 155/303/82 +f 136/292/82 154/305/82 135/306/82 +f 149/273/81 140/277/81 141/274/81 +f 150/276/81 139/279/81 140/277/81 +f 151/278/81 138/281/81 139/279/81 +f 151/278/81 152/282/81 137/280/81 +f 152/282/81 145/284/81 144/283/81 +f 145/284/81 146/287/81 143/285/81 +f 147/286/81 142/307/81 143/285/81 +f 147/288/81 148/275/81 141/274/81 +f 129/290/82 160/294/82 153/291/82 +f 130/293/82 159/296/82 160/294/82 +f 130/293/82 131/308/82 158/295/82 +f 132/297/82 157/301/82 158/298/82 +f 132/297/82 133/302/82 156/300/82 +f 133/302/82 134/304/82 155/303/82 +f 134/304/82 135/306/82 154/305/82 +f 136/292/82 153/291/82 154/305/82 +s 1 +f 153/291/83 151/278/84 154/305/84 +f 155/303/85 149/273/86 156/300/86 +f 157/301/87 147/288/88 158/298/88 +f 159/296/89 145/284/90 160/294/90 +f 160/294/90 152/282/83 153/291/83 +f 158/295/88 146/287/89 159/296/89 +f 156/300/86 148/275/87 157/301/87 +f 154/305/84 150/276/85 155/303/85 +f 153/291/83 152/282/83 151/278/84 +f 155/303/85 150/276/85 149/273/86 +f 157/301/87 148/275/87 147/288/88 +f 159/296/89 146/287/89 145/284/90 +f 160/294/90 145/284/90 152/282/83 +f 158/295/88 147/286/88 146/287/89 +f 156/300/86 149/273/86 148/275/87 +f 154/305/84 151/278/84 150/276/85 +o Ring2 +v 0.500000 5.250000 -0.312500 +v 0.279029 5.250000 -0.220971 +v 0.187500 5.250000 0.000000 +v 0.279029 5.250000 0.220971 +v 0.500000 5.250000 0.312500 +v 0.720971 5.250000 0.220971 +v 0.812500 5.250000 0.000000 +v 0.720971 5.250000 -0.220971 +v 0.720971 5.750000 -0.220971 +v 0.812500 5.750000 0.000000 +v 0.720971 5.750000 0.220971 +v 0.500000 5.750000 0.312500 +v 0.279029 5.750000 0.220971 +v 0.187500 5.750000 0.000000 +v 0.279029 5.750000 -0.220971 +v 0.500000 5.750000 -0.312500 +v 0.500000 5.750000 -0.375000 +v 0.234835 5.750000 -0.265165 +v 0.125000 5.750000 0.000000 +v 0.234835 5.750000 0.265165 +v 0.500000 5.750000 0.375000 +v 0.765165 5.750000 0.265165 +v 0.875000 5.750000 0.000000 +v 0.765165 5.750000 -0.265165 +v 0.765165 5.250000 -0.265165 +v 0.875000 5.250000 0.000000 +v 0.765165 5.250000 0.265165 +v 0.500000 5.250000 0.375000 +v 0.234835 5.250000 0.265165 +v 0.125000 5.250000 0.000000 +v 0.234835 5.250000 -0.265165 +v 0.500000 5.250000 -0.375000 +vt 0.500000 0.663121 +vt 0.488636 0.666667 +vt 0.488636 0.663121 +vt 0.511364 0.663121 +vt 0.500000 0.666667 +vt 0.522727 0.663121 +vt 0.511364 0.666667 +vt 0.534091 0.666667 +vt 0.522727 0.666667 +vt 0.534091 0.663121 +vt 0.545455 0.666667 +vt 0.545455 0.663121 +vt 0.556818 0.666667 +vt 0.568182 0.663121 +vt 0.556818 0.663121 +vt 0.477273 0.663121 +vt 0.477273 0.666667 +vt 0.545455 0.631206 +vt 0.534091 0.634752 +vt 0.534091 0.631206 +vt 0.556818 0.631206 +vt 0.545455 0.634752 +vt 0.568182 0.634752 +vt 0.556818 0.634752 +vt 0.488636 0.631206 +vt 0.477273 0.634752 +vt 0.477273 0.631206 +vt 0.500000 0.634752 +vt 0.488636 0.634752 +vt 0.500000 0.631206 +vt 0.511364 0.634752 +vt 0.511364 0.631206 +vt 0.522727 0.634752 +vt 0.522727 0.631206 +vt 0.568182 0.666667 +vt 0.568182 0.631206 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +s off +f 181/309/91 173/310/91 180/311/91 +f 182/312/91 172/313/91 181/309/91 +f 183/314/91 171/315/91 182/312/91 +f 183/314/91 169/316/91 170/317/91 +f 184/318/91 176/319/91 169/316/91 +f 177/320/91 175/321/91 176/319/91 +f 179/322/91 175/321/91 178/323/91 +f 179/324/91 173/310/91 174/325/91 +f 161/326/92 185/327/92 168/328/92 +f 162/329/92 192/330/92 161/326/92 +f 162/329/92 190/331/92 191/332/92 +f 164/333/92 190/334/92 163/335/92 +f 164/333/92 188/336/92 189/337/92 +f 165/338/92 187/339/92 188/336/92 +f 166/340/92 186/341/92 187/339/92 +f 168/328/92 186/341/92 167/342/92 +f 181/309/91 172/313/91 173/310/91 +f 182/312/91 171/315/91 172/313/91 +f 183/314/91 170/317/91 171/315/91 +f 183/314/91 184/318/91 169/316/91 +f 184/318/91 177/320/91 176/319/91 +f 177/320/91 178/323/91 175/321/91 +f 179/322/91 174/343/91 175/321/91 +f 179/324/91 180/311/91 173/310/91 +f 161/326/92 192/330/92 185/327/92 +f 162/329/92 191/332/92 192/330/92 +f 162/329/92 163/344/92 190/331/92 +f 164/333/92 189/337/92 190/334/92 +f 164/333/92 165/338/92 188/336/92 +f 165/338/92 166/340/92 187/339/92 +f 166/340/92 167/342/92 186/341/92 +f 168/328/92 185/327/92 186/341/92 +s 1 +f 186/341/93 182/312/94 187/339/94 +f 188/336/95 180/311/96 189/337/96 +f 190/331/97 178/323/98 191/332/98 +f 192/330/99 184/318/100 185/327/100 +f 191/332/98 177/320/99 192/330/99 +f 189/337/96 179/324/97 190/334/97 +f 187/339/94 181/309/95 188/336/95 +f 185/327/100 183/314/93 186/341/93 +f 186/341/93 183/314/93 182/312/94 +f 188/336/95 181/309/95 180/311/96 +f 190/331/97 179/322/97 178/323/98 +f 192/330/99 177/320/99 184/318/100 +f 191/332/98 178/323/98 177/320/99 +f 189/337/96 180/311/96 179/324/97 +f 187/339/94 182/312/94 181/309/95 +f 185/327/100 184/318/100 183/314/93 +o Cable2 +v -2.000000 5.375000 -0.125000 +v -2.000000 5.463388 -0.088388 +v -2.000000 5.500000 0.000000 +v -2.000000 5.463388 0.088388 +v -2.000000 5.375000 0.125000 +v -2.000000 5.286612 0.088388 +v -2.000000 5.250000 0.000000 +v -2.000000 5.286612 -0.088388 +v -0.250000 5.375000 -0.125000 +v -0.250000 5.463388 -0.088388 +v -0.250000 5.500000 0.000000 +v -0.250000 5.463388 0.088388 +v -0.250000 5.375000 0.125000 +v -0.250000 5.286612 0.088388 +v -0.250000 5.250000 0.000000 +v -0.250000 5.286612 -0.088388 +v 0.250000 5.500000 -0.125000 +v 0.250000 5.588388 -0.088388 +v 0.250000 5.625000 0.000000 +v 0.250000 5.588388 0.088388 +v 0.250000 5.500000 0.125000 +v 0.250000 5.411612 0.088388 +v 0.250000 5.375000 0.000000 +v 0.250000 5.411612 -0.088388 +v -2.500000 5.500000 -0.125000 +v -2.500000 5.588388 -0.088388 +v -2.500000 5.625000 0.000000 +v -2.500000 5.588388 0.088388 +v -2.500000 5.500000 0.125000 +v -2.500000 5.411612 0.088388 +v -2.500000 5.375000 0.000000 +v -2.500000 5.411612 -0.088388 +vt 0.988636 0.578014 +vt 0.994318 0.478723 +vt 0.994318 0.578014 +vt 0.954545 0.578014 +vt 0.960227 0.478723 +vt 0.960227 0.578014 +vt 0.965909 0.578014 +vt 0.971591 0.478723 +vt 0.971591 0.578014 +vt 0.977273 0.578014 +vt 0.982955 0.478723 +vt 0.982955 0.578014 +vt 1.000000 0.478723 +vt 1.000000 0.578014 +vt 0.965909 0.478723 +vt 0.977273 0.478723 +vt 0.988636 0.478723 +vt 0.994318 0.450355 +vt 0.988636 0.450355 +vt 0.982955 0.450355 +vt 0.971591 0.450355 +vt 0.977273 0.450355 +vt 0.965909 0.450355 +vt 0.960227 0.450355 +vt 0.954545 0.450355 +vt 1.000000 0.450355 +vt 0.988636 0.606383 +vt 0.982955 0.606383 +vt 0.977273 0.606383 +vt 0.971591 0.606383 +vt 0.965909 0.606383 +vt 0.960227 0.606383 +vt 0.954545 0.606383 +vt 1.000000 0.606383 +vt 0.994318 0.606383 +vt 0.954545 0.478723 +vn -0.0074 -0.0297 -0.9995 +vn 0.0888 -0.7177 -0.6907 +vn -0.0888 -0.7177 -0.6907 +vn -0.1187 -0.9929 0.0000 +vn 0.0888 -0.7177 0.6907 +vn -0.0888 -0.7177 0.6907 +vn -0.0074 -0.0297 0.9995 +vn -0.0853 0.6884 0.7203 +vn 0.0853 0.6884 0.7203 +vn 0.1260 0.9920 -0.0000 +vn -0.0853 0.6884 -0.7203 +vn 0.0853 0.6884 -0.7203 +vn 0.1187 -0.9929 -0.0000 +vn 0.0074 -0.0297 0.9995 +vn -0.1260 0.9920 0.0000 +vn 0.0074 -0.0297 -0.9995 +vn 0.1663 -0.6654 -0.7277 +vn -0.0149 0.0595 -0.9981 +vn -0.1806 0.7224 -0.6675 +vn -0.1806 0.7224 0.6675 +vn -0.2425 0.9701 0.0000 +vn -0.0149 0.0595 0.9981 +vn 0.1663 -0.6654 0.7277 +vn 0.2425 -0.9701 0.0000 +vn 0.0149 0.0595 -0.9981 +vn 0.1806 0.7224 -0.6675 +vn 0.2425 0.9701 0.0000 +vn 0.1806 0.7224 0.6675 +vn 0.0149 0.0595 0.9981 +vn -0.1663 -0.6654 0.7277 +vn -0.2425 -0.9701 0.0000 +vn -0.1663 -0.6654 -0.7277 +s 1 +f 193/345/101 208/346/102 200/347/103 +f 199/348/104 206/349/105 198/350/106 +f 197/351/107 204/352/108 196/353/109 +f 195/354/110 202/355/111 194/356/112 +f 200/347/103 207/357/113 199/358/104 +f 198/350/106 205/359/114 197/351/107 +f 196/353/109 203/360/115 195/354/110 +f 194/356/112 201/361/116 193/345/101 +f 201/361/116 216/362/117 208/346/102 +f 202/355/111 209/363/118 201/361/116 +f 203/360/115 210/364/119 202/355/111 +f 203/360/115 212/365/120 211/366/121 +f 204/352/108 213/367/122 212/365/120 +f 205/359/114 214/368/123 213/367/122 +f 206/349/105 215/369/124 214/368/123 +f 208/346/102 215/370/124 207/357/113 +f 194/356/112 217/371/125 218/372/126 +f 195/354/110 218/372/126 219/373/127 +f 195/354/110 220/374/128 196/353/109 +f 196/353/109 221/375/129 197/351/107 +f 197/351/107 222/376/130 198/350/106 +f 198/350/106 223/377/131 199/348/104 +f 200/347/103 223/378/131 224/379/132 +f 193/345/101 224/379/132 217/371/125 +f 193/345/101 201/361/116 208/346/102 +f 199/348/104 207/380/113 206/349/105 +f 197/351/107 205/359/114 204/352/108 +f 195/354/110 203/360/115 202/355/111 +f 200/347/103 208/346/102 207/357/113 +f 198/350/106 206/349/105 205/359/114 +f 196/353/109 204/352/108 203/360/115 +f 194/356/112 202/355/111 201/361/116 +f 201/361/116 209/363/118 216/362/117 +f 202/355/111 210/364/119 209/363/118 +f 203/360/115 211/366/121 210/364/119 +f 203/360/115 204/352/108 212/365/120 +f 204/352/108 205/359/114 213/367/122 +f 205/359/114 206/349/105 214/368/123 +f 206/349/105 207/380/113 215/369/124 +f 208/346/102 216/362/117 215/370/124 +f 194/356/112 193/345/101 217/371/125 +f 195/354/110 194/356/112 218/372/126 +f 195/354/110 219/373/127 220/374/128 +f 196/353/109 220/374/128 221/375/129 +f 197/351/107 221/375/129 222/376/130 +f 198/350/106 222/376/130 223/377/131 +f 200/347/103 199/358/104 223/378/131 +f 193/345/101 200/347/103 224/379/132 +o Cable1 +v -2.000000 5.375000 0.375000 +v -2.000000 5.463388 0.411612 +v -2.000000 5.500000 0.500000 +v -2.000000 5.463388 0.588388 +v -2.000000 5.375000 0.625000 +v -2.000000 5.286612 0.588388 +v -2.000000 5.250000 0.500000 +v -2.000000 5.286612 0.411612 +v -1.000000 5.375000 0.375000 +v -1.000000 5.463388 0.411612 +v -1.000000 5.500000 0.500000 +v -1.000000 5.463388 0.588388 +v -1.000000 5.375000 0.625000 +v -1.000000 5.286612 0.588388 +v -1.000000 5.250000 0.500000 +v -1.000000 5.286612 0.411612 +v -0.500000 5.500000 0.375000 +v -0.500000 5.588388 0.411612 +v -0.500000 5.625000 0.500000 +v -0.500000 5.588388 0.588388 +v -0.500000 5.500000 0.625000 +v -0.500000 5.411612 0.588388 +v -0.500000 5.375000 0.500000 +v -0.500000 5.411612 0.411612 +v -2.500000 5.500000 0.375000 +v -2.500000 5.588388 0.411612 +v -2.500000 5.625000 0.500000 +v -2.500000 5.588388 0.588388 +v -2.500000 5.500000 0.625000 +v -2.500000 5.411612 0.588388 +v -2.500000 5.375000 0.500000 +v -2.500000 5.411612 0.411612 +vt 0.988636 0.421986 +vt 0.994318 0.365248 +vt 0.994318 0.421986 +vt 0.954545 0.421986 +vt 0.960227 0.365248 +vt 0.960227 0.421986 +vt 0.965909 0.421986 +vt 0.971591 0.365248 +vt 0.971591 0.421986 +vt 0.977273 0.421986 +vt 0.982955 0.365248 +vt 0.982955 0.421986 +vt 1.000000 0.365248 +vt 1.000000 0.421986 +vt 0.965909 0.365248 +vt 0.977273 0.365248 +vt 0.988636 0.365248 +vt 0.965909 0.336879 +vt 0.971591 0.336879 +vt 0.960227 0.336879 +vt 0.954545 0.336879 +vt 1.000000 0.336879 +vt 0.994318 0.336879 +vt 0.988636 0.336879 +vt 0.982955 0.336879 +vt 0.977273 0.336879 +vt 0.960227 0.450355 +vt 0.954545 0.450355 +vt 1.000000 0.450355 +vt 0.994318 0.450355 +vt 0.988636 0.450355 +vt 0.982955 0.450355 +vt 0.977273 0.450355 +vt 0.971591 0.450355 +vt 0.965909 0.450355 +vt 0.954545 0.365248 +vn -0.0074 -0.0297 -0.9995 +vn 0.0888 -0.7177 -0.6907 +vn -0.0888 -0.7177 -0.6907 +vn -0.1187 -0.9929 0.0000 +vn 0.0888 -0.7177 0.6907 +vn -0.0888 -0.7177 0.6907 +vn -0.0074 -0.0297 0.9995 +vn -0.0853 0.6884 0.7203 +vn 0.0853 0.6884 0.7203 +vn 0.1260 0.9920 -0.0000 +vn -0.0853 0.6884 -0.7203 +vn 0.0853 0.6884 -0.7203 +vn 0.1187 -0.9929 -0.0000 +vn 0.0074 -0.0297 0.9995 +vn -0.1260 0.9920 0.0000 +vn 0.0074 -0.0297 -0.9995 +vn -0.0149 0.0595 0.9981 +vn -0.1806 0.7224 0.6675 +vn 0.1663 -0.6654 0.7277 +vn 0.2425 -0.9701 0.0000 +vn 0.1663 -0.6654 -0.7277 +vn -0.0149 0.0595 -0.9981 +vn -0.1806 0.7224 -0.6675 +vn -0.2425 0.9701 0.0000 +vn -0.1663 -0.6654 0.7277 +vn -0.2425 -0.9701 0.0000 +vn -0.1663 -0.6654 -0.7277 +vn 0.0149 0.0595 -0.9981 +vn 0.1806 0.7224 -0.6675 +vn 0.2425 0.9701 0.0000 +vn 0.1806 0.7224 0.6675 +vn 0.0149 0.0595 0.9981 +s 1 +f 225/381/133 240/382/134 232/383/135 +f 231/384/136 238/385/137 230/386/138 +f 229/387/139 236/388/140 228/389/141 +f 227/390/142 234/391/143 226/392/144 +f 232/383/135 239/393/145 231/394/136 +f 230/386/138 237/395/146 229/387/139 +f 228/389/141 235/396/147 227/390/142 +f 226/392/144 233/397/148 225/381/133 +f 236/388/140 245/398/149 244/399/150 +f 237/395/146 246/400/151 245/398/149 +f 238/385/137 247/401/152 246/400/151 +f 240/382/134 247/402/152 239/393/145 +f 233/397/148 248/403/153 240/382/134 +f 234/391/143 241/404/154 233/397/148 +f 235/396/147 242/405/155 234/391/143 +f 235/396/147 244/399/150 243/406/156 +f 229/387/139 254/407/157 230/386/138 +f 230/386/138 255/408/158 231/384/136 +f 232/383/135 255/409/158 256/410/159 +f 225/381/133 256/410/159 249/411/160 +f 226/392/144 249/411/160 250/412/161 +f 227/390/142 250/412/161 251/413/162 +f 227/390/142 252/414/163 228/389/141 +f 228/389/141 253/415/164 229/387/139 +f 225/381/133 233/397/148 240/382/134 +f 231/384/136 239/416/145 238/385/137 +f 229/387/139 237/395/146 236/388/140 +f 227/390/142 235/396/147 234/391/143 +f 232/383/135 240/382/134 239/393/145 +f 230/386/138 238/385/137 237/395/146 +f 228/389/141 236/388/140 235/396/147 +f 226/392/144 234/391/143 233/397/148 +f 236/388/140 237/395/146 245/398/149 +f 237/395/146 238/385/137 246/400/151 +f 238/385/137 239/416/145 247/401/152 +f 240/382/134 248/403/153 247/402/152 +f 233/397/148 241/404/154 248/403/153 +f 234/391/143 242/405/155 241/404/154 +f 235/396/147 243/406/156 242/405/155 +f 235/396/147 236/388/140 244/399/150 +f 229/387/139 253/415/164 254/407/157 +f 230/386/138 254/407/157 255/408/158 +f 232/383/135 231/394/136 255/409/158 +f 225/381/133 232/383/135 256/410/159 +f 226/392/144 225/381/133 249/411/160 +f 227/390/142 226/392/144 250/412/161 +f 227/390/142 251/413/162 252/414/163 +f 228/389/141 252/414/163 253/415/164 +o Cable3 +v -2.000000 5.375000 -0.625000 +v -2.000000 5.463388 -0.588388 +v -2.000000 5.500000 -0.500000 +v -2.000000 5.463388 -0.411612 +v -2.000000 5.375000 -0.375000 +v -2.000000 5.286612 -0.411612 +v -2.000000 5.250000 -0.500000 +v -2.000000 5.286612 -0.588388 +v -1.000000 5.375000 -0.625000 +v -1.000000 5.463388 -0.588388 +v -1.000000 5.500000 -0.500000 +v -1.000000 5.463388 -0.411612 +v -1.000000 5.375000 -0.375000 +v -1.000000 5.286612 -0.411612 +v -1.000000 5.250000 -0.500000 +v -1.000000 5.286612 -0.588388 +v -0.500000 5.500000 -0.625000 +v -0.500000 5.588388 -0.588388 +v -0.500000 5.625000 -0.500000 +v -0.500000 5.588388 -0.411612 +v -0.500000 5.500000 -0.375000 +v -0.500000 5.411612 -0.411612 +v -0.500000 5.375000 -0.500000 +v -0.500000 5.411612 -0.588388 +v -2.500000 5.500000 -0.625000 +v -2.500000 5.588388 -0.588388 +v -2.500000 5.625000 -0.500000 +v -2.500000 5.588388 -0.411612 +v -2.500000 5.500000 -0.375000 +v -2.500000 5.411612 -0.411612 +v -2.500000 5.375000 -0.500000 +v -2.500000 5.411612 -0.588388 +vt 0.988636 0.421986 +vt 0.994318 0.365248 +vt 0.994318 0.421986 +vt 0.954545 0.421986 +vt 0.960227 0.365248 +vt 0.960227 0.421986 +vt 0.965909 0.421986 +vt 0.971591 0.365248 +vt 0.971591 0.421986 +vt 0.977273 0.421986 +vt 0.982955 0.365248 +vt 0.982955 0.421986 +vt 1.000000 0.365248 +vt 1.000000 0.421986 +vt 0.965909 0.365248 +vt 0.977273 0.365248 +vt 0.988636 0.365248 +vt 0.965909 0.336879 +vt 0.971591 0.336879 +vt 0.960227 0.336879 +vt 0.954545 0.336879 +vt 1.000000 0.336879 +vt 0.994318 0.336879 +vt 0.988636 0.336879 +vt 0.982955 0.336879 +vt 0.977273 0.336879 +vt 0.960227 0.450355 +vt 0.954545 0.450355 +vt 1.000000 0.450355 +vt 0.994318 0.450355 +vt 0.988636 0.450355 +vt 0.982955 0.450355 +vt 0.977273 0.450355 +vt 0.971591 0.450355 +vt 0.965909 0.450355 +vt 0.954545 0.365248 +vn -0.0074 -0.0297 -0.9995 +vn 0.0888 -0.7177 -0.6907 +vn -0.0888 -0.7177 -0.6907 +vn -0.1187 -0.9929 0.0000 +vn 0.0888 -0.7177 0.6907 +vn -0.0888 -0.7177 0.6907 +vn -0.0074 -0.0297 0.9995 +vn -0.0853 0.6884 0.7203 +vn 0.0853 0.6884 0.7203 +vn 0.1260 0.9920 -0.0000 +vn -0.0853 0.6884 -0.7203 +vn 0.0853 0.6884 -0.7203 +vn 0.1187 -0.9929 -0.0000 +vn 0.0074 -0.0297 0.9995 +vn -0.1260 0.9920 0.0000 +vn 0.0074 -0.0297 -0.9995 +vn -0.0149 0.0595 0.9981 +vn -0.1806 0.7224 0.6675 +vn 0.1663 -0.6654 0.7277 +vn 0.2425 -0.9701 0.0000 +vn 0.1663 -0.6654 -0.7277 +vn -0.0149 0.0595 -0.9981 +vn -0.1806 0.7224 -0.6675 +vn -0.2425 0.9701 0.0000 +vn -0.1663 -0.6654 0.7277 +vn -0.2425 -0.9701 0.0000 +vn -0.1663 -0.6654 -0.7277 +vn 0.0149 0.0595 -0.9981 +vn 0.1806 0.7224 -0.6675 +vn 0.2425 0.9701 0.0000 +vn 0.1806 0.7224 0.6675 +vn 0.0149 0.0595 0.9981 +s 1 +f 257/417/165 272/418/166 264/419/167 +f 263/420/168 270/421/169 262/422/170 +f 261/423/171 268/424/172 260/425/173 +f 259/426/174 266/427/175 258/428/176 +f 264/419/167 271/429/177 263/430/168 +f 262/422/170 269/431/178 261/423/171 +f 260/425/173 267/432/179 259/426/174 +f 258/428/176 265/433/180 257/417/165 +f 268/424/172 277/434/181 276/435/182 +f 269/431/178 278/436/183 277/434/181 +f 270/421/169 279/437/184 278/436/183 +f 272/418/166 279/438/184 271/429/177 +f 265/433/180 280/439/185 272/418/166 +f 266/427/175 273/440/186 265/433/180 +f 267/432/179 274/441/187 266/427/175 +f 267/432/179 276/435/182 275/442/188 +f 261/423/171 286/443/189 262/422/170 +f 262/422/170 287/444/190 263/420/168 +f 264/419/167 287/445/190 288/446/191 +f 257/417/165 288/446/191 281/447/192 +f 258/428/176 281/447/192 282/448/193 +f 259/426/174 282/448/193 283/449/194 +f 259/426/174 284/450/195 260/425/173 +f 260/425/173 285/451/196 261/423/171 +f 257/417/165 265/433/180 272/418/166 +f 263/420/168 271/452/177 270/421/169 +f 261/423/171 269/431/178 268/424/172 +f 259/426/174 267/432/179 266/427/175 +f 264/419/167 272/418/166 271/429/177 +f 262/422/170 270/421/169 269/431/178 +f 260/425/173 268/424/172 267/432/179 +f 258/428/176 266/427/175 265/433/180 +f 268/424/172 269/431/178 277/434/181 +f 269/431/178 270/421/169 278/436/183 +f 270/421/169 271/452/177 279/437/184 +f 272/418/166 280/439/185 279/438/184 +f 265/433/180 273/440/186 280/439/185 +f 266/427/175 274/441/187 273/440/186 +f 267/432/179 275/442/188 274/441/187 +f 267/432/179 268/424/172 276/435/182 +f 261/423/171 285/451/196 286/443/189 +f 262/422/170 286/443/189 287/444/190 +f 264/419/167 263/430/168 287/445/190 +f 257/417/165 264/419/167 288/446/191 +f 258/428/176 257/417/165 281/447/192 +f 259/426/174 258/428/176 282/448/193 +f 259/426/174 283/449/194 284/450/195 +f 260/425/173 284/450/195 285/451/196 +o Lid +v 0.669695 4.000000 -1.616790 +v 1.237437 4.000000 -1.237437 +v 1.616789 4.000000 -0.669696 +v 1.750000 4.000000 0.000000 +v 1.616789 4.000000 0.669696 +v 1.237437 4.000000 1.237437 +v 0.669696 4.000000 1.616789 +v -0.000000 4.000000 1.750000 +v -0.669696 4.000000 1.616789 +v -1.237437 4.000000 1.237437 +v -1.616789 4.000000 0.669696 +v -1.750000 4.000000 0.000000 +v -1.616789 4.000000 -0.669696 +v -1.237437 4.000000 -1.237437 +v -0.669696 4.000000 -1.616789 +v 0.000000 4.000000 -1.750000 +v 0.000000 4.000000 -2.500000 +v -0.956709 4.000000 -2.309699 +v -1.767767 4.000000 -1.767767 +v -2.309699 4.000000 -0.956708 +v -2.500000 4.000000 0.000000 +v -2.309699 4.000000 0.956709 +v -1.767767 4.000000 1.767767 +v -0.956709 4.000000 2.309699 +v -0.000000 4.000000 2.500000 +v 0.956708 4.000000 2.309699 +v 1.767767 4.000000 1.767768 +v 2.309699 4.000000 0.956709 +v 2.500000 4.000000 0.000000 +v 2.309699 4.000000 -0.956709 +v 1.767766 4.000000 -1.767768 +v 0.956707 4.000000 -2.309699 +v 0.000000 4.250000 -2.500000 +v -0.956709 4.250000 -2.309699 +v -1.767767 4.250000 -1.767767 +v -2.309699 4.250000 -0.956708 +v -2.500000 4.250000 0.000000 +v -2.309699 4.250000 0.956709 +v -1.767767 4.250000 1.767767 +v -0.956709 4.250000 2.309699 +v -0.000000 4.250000 2.500000 +v 0.956708 4.250000 2.309699 +v 1.767767 4.250000 1.767768 +v 2.309699 4.250000 0.956709 +v 2.500000 4.250000 0.000000 +v 2.309699 4.250000 -0.956709 +v 1.767766 4.250000 -1.767768 +v 0.956707 4.250000 -2.309699 +v 0.000000 4.250000 -2.000000 +v -0.765367 4.250000 -1.847759 +v -1.414214 4.250000 -1.414214 +v -1.847759 4.250000 -0.765367 +v -2.000000 4.250000 0.000000 +v -1.847759 4.250000 0.765367 +v -1.414214 4.250000 1.414214 +v -0.765367 4.250000 1.847759 +v -0.000000 4.250000 2.000000 +v 0.765366 4.250000 1.847759 +v 1.414213 4.250000 1.414214 +v 1.847759 4.250000 0.765367 +v 2.000000 4.250000 0.000000 +v 1.847759 4.250000 -0.765367 +v 1.414213 4.250000 -1.414214 +v 0.765366 4.250000 -1.847759 +v -0.000000 4.750000 -1.000000 +v -0.382683 4.750000 -0.923880 +v -0.707107 4.750000 -0.707107 +v -0.923880 4.750000 -0.382683 +v -1.000000 4.750000 0.000000 +v -0.923880 4.750000 0.382684 +v -0.707107 4.750000 0.707107 +v -0.382684 4.750000 0.923880 +v -0.000000 4.750000 1.000000 +v 0.382683 4.750000 0.923880 +v 0.707107 4.750000 0.707107 +v 0.923880 4.750000 0.382684 +v 1.000000 4.750000 0.000000 +v 0.923879 4.750000 -0.382684 +v 0.707106 4.750000 -0.707107 +v 0.382683 4.750000 -0.923880 +v -0.000000 4.500000 -1.000000 +v -0.382684 4.500000 -0.923880 +v -0.707107 4.500000 -0.707107 +v -0.923880 4.500000 -0.382683 +v -1.000000 4.500000 0.000000 +v -0.923880 4.500000 0.382683 +v -0.707107 4.500000 0.707107 +v -0.382684 4.500000 0.923880 +v -0.000000 4.500000 1.000000 +v 0.382683 4.500000 0.923880 +v 0.707107 4.500000 0.707107 +v 0.923879 4.500000 0.382684 +v 1.000000 4.500000 0.000000 +v 0.923879 4.500000 -0.382684 +v 0.707106 4.500000 -0.707107 +v 0.382683 4.500000 -0.923880 +v 2.125000 4.250000 0.000000 +v 2.161612 4.250000 0.088388 +v 2.250000 4.250000 0.125000 +v 2.338388 4.250000 0.088388 +v 2.375000 4.250000 0.000000 +v 2.338388 4.250000 -0.088388 +v 2.250000 4.250000 -0.125000 +v 2.161612 4.250000 -0.088388 +v 2.161612 4.375000 0.088388 +v 2.125000 4.375000 0.000000 +v 2.250000 4.375000 0.125000 +v 2.338388 4.375000 0.088388 +v 2.375000 4.375000 0.000000 +v 2.338388 4.375000 -0.088388 +v 2.250000 4.375000 -0.125000 +v 2.161612 4.375000 -0.088388 +v 2.150888 4.400888 0.088388 +v 2.213388 4.463388 0.125000 +v 2.275888 4.525888 0.088388 +v 2.301777 4.551776 0.000000 +v 2.275888 4.525888 -0.088388 +v 2.213388 4.463388 -0.125000 +v 2.150888 4.400888 -0.088388 +v 2.125000 4.411611 0.088388 +v 2.125000 4.500000 0.125000 +v 2.125000 4.588388 0.088388 +v 2.125000 4.625000 0.000000 +v 2.125000 4.588388 -0.088388 +v 2.125000 4.500000 -0.125000 +v 2.125000 4.411611 -0.088388 +v 1.250000 4.500000 0.125000 +v 1.250000 4.411611 0.088388 +v 1.250000 4.588388 0.088388 +v 1.250000 4.625000 0.000000 +v 1.250000 4.588388 -0.088388 +v 1.250000 4.500000 -0.125000 +v 1.250000 4.411611 -0.088388 +v 1.250000 4.375000 0.000000 +v 0.000000 4.250000 -2.250000 +v -0.861037 4.250000 -2.078729 +v -1.590990 4.250000 -1.590990 +v -2.078729 4.250000 -0.861038 +v -2.250000 4.250000 0.000000 +v -2.078729 4.250000 0.861038 +v -1.590990 4.250000 1.590990 +v -0.861038 4.250000 2.078729 +v -0.000000 4.250000 2.250000 +v 0.861037 4.250000 2.078729 +v 1.590990 4.250000 1.590991 +v 2.078729 4.250000 0.861038 +v 2.250000 4.250000 0.000000 +v 2.078729 4.250000 -0.861038 +v 1.590990 4.250000 -1.590991 +v 0.861037 4.250000 -2.078729 +v 0.000000 5.000000 -2.250000 +v -0.861037 5.000000 -2.078729 +v -1.590990 5.000000 -1.590990 +v -2.078729 5.000000 -0.861038 +v -2.250000 5.000000 0.000000 +v -2.078729 5.000000 0.861038 +v -1.590990 5.000000 1.590990 +v -0.861038 5.000000 2.078729 +v -0.000000 5.000000 2.250000 +v 0.861037 5.000000 2.078729 +v 1.590990 5.000000 1.590991 +v 2.078729 5.000000 0.861038 +v 2.250000 5.000000 0.000000 +v 2.078729 5.000000 -0.861038 +v 1.590990 5.000000 -1.590991 +v 0.861037 5.000000 -2.078729 +v -2.750000 5.000000 -1.000000 +v -2.750000 5.000000 -0.500000 +v -3.250000 5.000000 -0.500000 +v -3.250000 5.000000 -1.000000 +v -2.750000 2.000000 -1.000000 +v -3.250000 2.000000 -1.000000 +v -2.750000 2.000000 -0.500000 +v -3.250000 2.000000 -0.500000 +v -3.250000 2.000000 1.000000 +v -2.750000 2.000000 1.000000 +v -3.250000 2.000000 0.500000 +v -2.750000 2.000000 0.500000 +v -3.250000 5.000000 0.500000 +v -3.250000 5.000000 1.000000 +v -2.750000 5.000000 1.000000 +v -2.750000 5.000000 0.500000 +v -3.375000 5.000000 1.125000 +v -2.625000 5.000000 1.125000 +v -3.375000 5.000000 -1.125000 +v -2.625000 5.000000 -1.125000 +v -2.625000 6.000000 0.187500 +v 0.687500 6.000000 0.187500 +v -2.625000 6.000000 -0.187500 +v 0.687500 6.000000 -0.187500 +v -2.625000 6.250000 -0.187500 +v -2.625000 6.250000 0.187500 +v 0.437500 6.250000 0.187500 +v 0.437500 6.250000 -0.187500 +v -2.625000 6.000000 0.687500 +v -0.062500 6.000000 0.687500 +v -2.625000 6.000000 0.312500 +v -0.062500 6.000000 0.312500 +v -2.625000 6.250000 0.312500 +v -2.625000 6.250000 0.687500 +v -0.312500 6.250000 0.687500 +v -0.312500 6.250000 0.312500 +v -3.375000 6.500000 -0.625000 +v -3.375000 6.000000 -1.125000 +v -3.375000 6.000000 1.125000 +v -3.375000 6.500000 0.625000 +v -2.625000 6.500000 0.625000 +v -2.625000 6.000000 1.125000 +v -2.625000 6.000000 -1.125000 +v -2.625000 6.500000 -0.625000 +v -3.088388 5.000000 -0.088388 +v -3.000000 5.000000 -0.125000 +v -3.125000 5.000000 0.000000 +v -3.088388 5.000000 0.088388 +v -3.000000 5.000000 0.125000 +v -2.911612 5.000000 0.088388 +v -2.875000 5.000000 0.000000 +v -2.911612 5.000000 -0.088388 +v -2.911612 2.000000 -0.088388 +v -2.875000 2.000000 0.000000 +v -2.911612 2.000000 0.088388 +v -3.000000 2.000000 0.125000 +v -3.088388 2.000000 0.088388 +v -3.125000 2.000000 0.000000 +v -3.000000 2.000000 -0.125000 +v -3.088388 2.000000 -0.088388 +v -2.625000 5.687500 0.687500 +v -2.625000 5.312500 0.687500 +v -2.625000 5.687500 0.312500 +v -2.625000 5.312500 0.312500 +v -2.500000 5.687500 0.312500 +v -2.500000 5.687500 0.687500 +v -2.500000 5.312500 0.687500 +v -2.500000 5.312500 0.312500 +v -2.125000 4.250000 0.000000 +v -2.161612 4.250000 -0.088388 +v -2.250000 4.250000 -0.125000 +v -2.338388 4.250000 -0.088388 +v -2.375000 4.250000 0.000000 +v -2.338388 4.250000 0.088389 +v -2.250000 4.250000 0.125000 +v -2.161612 4.250000 0.088389 +v -2.161612 4.375000 -0.088388 +v -2.125000 4.375000 0.000000 +v -2.250000 4.375000 -0.125000 +v -2.338388 4.375000 -0.088388 +v -2.375000 4.375000 0.000000 +v -2.338388 4.375000 0.088389 +v -2.250000 4.375000 0.125000 +v -2.161612 4.375000 0.088389 +v -2.150888 4.400888 -0.088388 +v -2.213388 4.463388 -0.125000 +v -2.275888 4.525888 -0.088388 +v -2.301777 4.551776 0.000000 +v -2.275888 4.525888 0.088389 +v -2.213388 4.463388 0.125000 +v -2.150888 4.400888 0.088389 +v -2.125000 4.411611 -0.088388 +v -2.125000 4.500000 -0.125000 +v -2.125000 4.588388 -0.088388 +v -2.125000 4.625000 0.000000 +v -2.125000 4.588388 0.088389 +v -2.125000 4.500000 0.125000 +v -2.125000 4.411611 0.088389 +v -1.250000 4.500000 -0.125000 +v -1.250000 4.411611 -0.088388 +v -1.250000 4.588388 -0.088388 +v -1.250000 4.625000 0.000000 +v -1.250000 4.588388 0.088389 +v -1.250000 4.500000 0.125000 +v -1.250000 4.411611 0.088389 +v -1.250000 4.375000 0.000000 +v 0.000000 4.249999 -2.125000 +v 0.088388 4.249999 -2.161612 +v 0.125000 4.249999 -2.250000 +v 0.088388 4.249999 -2.338388 +v 0.000000 4.249999 -2.375000 +v -0.088388 4.249999 -2.338388 +v -0.125000 4.249999 -2.250000 +v -0.088388 4.249999 -2.161612 +v 0.088388 4.374999 -2.161612 +v 0.000000 4.374999 -2.125000 +v 0.125000 4.374999 -2.250000 +v 0.088388 4.374999 -2.338388 +v 0.000000 4.374999 -2.375000 +v -0.088388 4.374999 -2.338388 +v -0.125000 4.374999 -2.250000 +v -0.088388 4.374999 -2.161612 +v 0.088388 4.400887 -2.150888 +v 0.125000 4.463387 -2.213388 +v 0.088388 4.525887 -2.275888 +v 0.000000 4.551776 -2.301777 +v -0.088388 4.525887 -2.275888 +v -0.125000 4.463387 -2.213388 +v -0.088388 4.400887 -2.150888 +v 0.088388 4.411611 -2.125000 +v 0.125000 4.499999 -2.125000 +v 0.088388 4.588387 -2.125000 +v 0.000000 4.624999 -2.125000 +v -0.088388 4.588387 -2.125000 +v -0.125000 4.499999 -2.125000 +v -0.088388 4.411611 -2.125000 +v 0.125000 4.499999 -1.250000 +v 0.088388 4.411611 -1.250000 +v 0.088388 4.588387 -1.250000 +v 0.000000 4.624999 -1.250000 +v -0.088388 4.588387 -1.250000 +v -0.125000 4.499999 -1.250000 +v -0.088388 4.411611 -1.250000 +v 0.000000 4.374999 -1.250000 +v 0.000000 4.249999 2.125000 +v -0.088388 4.249999 2.161612 +v -0.125000 4.249999 2.250000 +v -0.088388 4.249999 2.338388 +v 0.000000 4.249999 2.375000 +v 0.088389 4.249999 2.338388 +v 0.125000 4.249999 2.250000 +v 0.088389 4.249999 2.161612 +v -0.088388 4.374999 2.161612 +v 0.000000 4.374999 2.125000 +v -0.125000 4.374999 2.250000 +v -0.088388 4.374999 2.338388 +v 0.000000 4.374999 2.375000 +v 0.088389 4.374999 2.338388 +v 0.125000 4.374999 2.250000 +v 0.088389 4.374999 2.161612 +v -0.088388 4.400887 2.150888 +v -0.125000 4.463387 2.213388 +v -0.088388 4.525887 2.275888 +v 0.000000 4.551776 2.301777 +v 0.088389 4.525887 2.275888 +v 0.125000 4.463387 2.213388 +v 0.088389 4.400887 2.150888 +v -0.088388 4.411611 2.125000 +v -0.125000 4.499999 2.125000 +v -0.088388 4.588387 2.125000 +v 0.000000 4.624999 2.125000 +v 0.088389 4.588387 2.125000 +v 0.125000 4.499999 2.125000 +v 0.088389 4.411611 2.125000 +v -0.125000 4.499999 1.250000 +v -0.088388 4.411611 1.250000 +v -0.088388 4.588387 1.250000 +v 0.000000 4.624999 1.250000 +v 0.088389 4.588387 1.250000 +v 0.125000 4.499999 1.250000 +v 0.088389 4.411611 1.250000 +v 0.000000 4.374999 1.250000 +v 1.502602 4.250000 -1.502602 +v 1.590990 4.250000 -1.465990 +v 1.679379 4.250000 -1.502602 +v 1.715990 4.250000 -1.590990 +v 1.679379 4.250000 -1.679379 +v 1.590990 4.250000 -1.715990 +v 1.502602 4.250000 -1.679379 +v 1.465990 4.250000 -1.590990 +v 1.590990 4.375000 -1.465990 +v 1.502602 4.375000 -1.502602 +v 1.679379 4.375000 -1.502602 +v 1.715990 4.375000 -1.590990 +v 1.679379 4.375000 -1.679379 +v 1.590990 4.375000 -1.715990 +v 1.502602 4.375000 -1.679379 +v 1.465990 4.375000 -1.590990 +v 1.583408 4.400888 -1.458408 +v 1.653490 4.463388 -1.476714 +v 1.671796 4.525888 -1.546796 +v 1.627602 4.551776 -1.627602 +v 1.546796 4.525888 -1.671796 +v 1.476714 4.463388 -1.653490 +v 1.458408 4.400888 -1.583408 +v 1.565102 4.411611 -1.440102 +v 1.590990 4.500000 -1.414214 +v 1.565102 4.588388 -1.440102 +v 1.502602 4.625000 -1.502602 +v 1.440102 4.588388 -1.565102 +v 1.414214 4.500000 -1.590990 +v 1.440102 4.411611 -1.565102 +v 0.972272 4.500000 -0.795495 +v 0.946383 4.411611 -0.821383 +v 0.946384 4.588388 -0.821383 +v 0.883883 4.625000 -0.883883 +v 0.821383 4.588388 -0.946384 +v 0.795495 4.500000 -0.972272 +v 0.821383 4.411611 -0.946383 +v 0.883883 4.375000 -0.883883 +v -1.502602 4.250000 1.502602 +v -1.590990 4.250000 1.465990 +v -1.679378 4.250000 1.502602 +v -1.715990 4.250000 1.590990 +v -1.679379 4.250000 1.679379 +v -1.590990 4.250000 1.715991 +v -1.502602 4.250000 1.679379 +v -1.465990 4.250000 1.590991 +v -1.590990 4.375000 1.465990 +v -1.502602 4.375000 1.502602 +v -1.679378 4.375000 1.502602 +v -1.715990 4.375000 1.590990 +v -1.679379 4.375000 1.679379 +v -1.590990 4.375000 1.715991 +v -1.502602 4.375000 1.679379 +v -1.465990 4.375000 1.590991 +v -1.583408 4.400888 1.458408 +v -1.653490 4.463388 1.476714 +v -1.671796 4.525888 1.546796 +v -1.627602 4.551776 1.627602 +v -1.546796 4.525888 1.671796 +v -1.476714 4.463388 1.653491 +v -1.458407 4.400888 1.583408 +v -1.565102 4.411611 1.440102 +v -1.590990 4.500000 1.414214 +v -1.565102 4.588388 1.440102 +v -1.502602 4.625000 1.502602 +v -1.440102 4.588388 1.565102 +v -1.414213 4.500000 1.590990 +v -1.440102 4.411611 1.565102 +v -0.972272 4.500000 0.795495 +v -0.946383 4.411611 0.821383 +v -0.946383 4.588388 0.821383 +v -0.883883 4.625000 0.883883 +v -0.821383 4.588388 0.946384 +v -0.795495 4.500000 0.972272 +v -0.821383 4.411611 0.946383 +v -0.883883 4.375000 0.883884 +v -1.502602 4.249999 -1.502602 +v -1.465990 4.249999 -1.590990 +v -1.502602 4.249999 -1.679379 +v -1.590990 4.249999 -1.715990 +v -1.679379 4.249999 -1.679379 +v -1.715990 4.249999 -1.590990 +v -1.679379 4.249999 -1.502602 +v -1.590990 4.249999 -1.465990 +v -1.465990 4.374999 -1.590990 +v -1.502602 4.374999 -1.502602 +v -1.502602 4.374999 -1.679379 +v -1.590990 4.374999 -1.715990 +v -1.679379 4.374999 -1.679379 +v -1.715990 4.374999 -1.590990 +v -1.679379 4.374999 -1.502602 +v -1.590990 4.374999 -1.465990 +v -1.458408 4.400887 -1.583408 +v -1.476714 4.463387 -1.653490 +v -1.546796 4.525887 -1.671796 +v -1.627602 4.551776 -1.627602 +v -1.671796 4.525887 -1.546796 +v -1.653490 4.463387 -1.476714 +v -1.583408 4.400887 -1.458408 +v -1.440102 4.411611 -1.565102 +v -1.414214 4.499999 -1.590990 +v -1.440102 4.588387 -1.565102 +v -1.502602 4.624999 -1.502602 +v -1.565102 4.588387 -1.440102 +v -1.590990 4.499999 -1.414214 +v -1.565102 4.411611 -1.440102 +v -0.795495 4.499999 -0.972272 +v -0.821383 4.411611 -0.946383 +v -0.821383 4.588387 -0.946384 +v -0.883883 4.624999 -0.883883 +v -0.946384 4.588387 -0.821383 +v -0.972272 4.499999 -0.795495 +v -0.946383 4.411611 -0.821383 +v -0.883883 4.374999 -0.883883 +v 1.502602 4.249999 1.502602 +v 1.465990 4.249999 1.590990 +v 1.502602 4.249999 1.679378 +v 1.590990 4.249999 1.715990 +v 1.679379 4.249999 1.679379 +v 1.715991 4.249999 1.590990 +v 1.679379 4.249999 1.502602 +v 1.590990 4.249999 1.465990 +v 1.465990 4.374999 1.590990 +v 1.502602 4.374999 1.502602 +v 1.502602 4.374999 1.679378 +v 1.590990 4.374999 1.715990 +v 1.679379 4.374999 1.679379 +v 1.715991 4.374999 1.590990 +v 1.679379 4.374999 1.502602 +v 1.590990 4.374999 1.465990 +v 1.458408 4.400887 1.583408 +v 1.476714 4.463387 1.653490 +v 1.546796 4.525887 1.671796 +v 1.627602 4.551776 1.627602 +v 1.671796 4.525887 1.546796 +v 1.653491 4.463387 1.476713 +v 1.583408 4.400887 1.458407 +v 1.440102 4.411611 1.565102 +v 1.414214 4.499999 1.590990 +v 1.440102 4.588387 1.565102 +v 1.502602 4.624999 1.502602 +v 1.565102 4.588387 1.440102 +v 1.590990 4.499999 1.414213 +v 1.565102 4.411611 1.440102 +v 0.795495 4.499999 0.972272 +v 0.821383 4.411611 0.946383 +v 0.821383 4.588387 0.946383 +v 0.883883 4.624999 0.883883 +v 0.946384 4.588387 0.821383 +v 0.972272 4.499999 0.795495 +v 0.946383 4.411611 0.821383 +v 0.883884 4.374999 0.883883 +v -3.088388 5.000000 -0.338388 +v -3.000000 5.000000 -0.375000 +v -3.125000 5.000000 -0.250000 +v -3.088388 5.000000 -0.161612 +v -3.000000 5.000000 -0.125000 +v -2.911612 5.000000 -0.161612 +v -2.875000 5.000000 -0.250000 +v -2.911612 5.000000 -0.338388 +v -2.911612 2.000000 -0.338388 +v -2.875000 2.000000 -0.250000 +v -2.911612 2.000000 -0.161612 +v -3.000000 2.000000 -0.125000 +v -3.088388 2.000000 -0.161612 +v -3.125000 2.000000 -0.250000 +v -3.000000 2.000000 -0.375000 +v -3.088388 2.000000 -0.338388 +v -3.088388 5.000000 0.161612 +v -3.000000 5.000000 0.125000 +v -3.125000 5.000000 0.250000 +v -3.088388 5.000000 0.338388 +v -3.000000 5.000000 0.375000 +v -2.911612 5.000000 0.338388 +v -2.875000 5.000000 0.250000 +v -2.911612 5.000000 0.161612 +v -2.911612 2.000000 0.161612 +v -2.875000 2.000000 0.250000 +v -2.911612 2.000000 0.338388 +v -3.000000 2.000000 0.375000 +v -3.088388 2.000000 0.338388 +v -3.125000 2.000000 0.250000 +v -3.000000 2.000000 0.125000 +v -3.088388 2.000000 0.161612 +v -2.625000 5.687500 0.187500 +v -2.625000 5.312500 0.187500 +v -2.625000 5.687500 -0.187500 +v -2.625000 5.312500 -0.187500 +v -2.500000 5.687500 -0.187500 +v -2.500000 5.687500 0.187500 +v -2.500000 5.312500 0.187500 +v -2.500000 5.312500 -0.187500 +v -2.625000 5.687500 -0.312500 +v -2.625000 5.312500 -0.312500 +v -2.625000 5.687500 -0.687500 +v -2.625000 5.312500 -0.687500 +v -2.500000 5.687500 -0.687500 +v -2.500000 5.687500 -0.312500 +v -2.500000 5.312500 -0.312500 +v -2.500000 5.312500 -0.687500 +v -2.625000 6.000000 -0.312500 +v -0.062500 6.000000 -0.312500 +v -2.625000 6.000000 -0.687500 +v -0.062500 6.000000 -0.687500 +v -2.625000 6.250000 -0.687500 +v -2.625000 6.250000 -0.312500 +v -0.312500 6.250000 -0.312500 +v -0.312500 6.250000 -0.687500 +v 0.000000 4.250000 -2.250000 +v -0.861037 4.250000 -2.078729 +v -1.590990 4.250000 -1.590990 +v -2.078729 4.250000 -0.861038 +v -2.250000 4.250000 0.000000 +v -2.078729 4.250000 0.861038 +v -1.590990 4.250000 1.590990 +v -0.861038 4.250000 2.078729 +v -0.000000 4.250000 2.250000 +v 0.861037 4.250000 2.078729 +v 1.590990 4.250000 1.590991 +v 2.078729 4.250000 0.861038 +v 2.250000 4.250000 0.000000 +v 2.078729 4.250000 -0.861038 +v 1.590990 4.250000 -1.590991 +v 0.861037 4.250000 -2.078729 +v 0.000000 5.000000 -2.250000 +v -0.861037 5.000000 -2.078729 +v -1.590990 5.000000 -1.590990 +v -2.078729 5.000000 -0.861038 +v -2.250000 5.000000 0.000000 +v -2.078729 5.000000 0.861038 +v -1.590990 5.000000 1.590990 +v -0.861038 5.000000 2.078729 +v -0.000000 5.000000 2.250000 +v 0.861037 5.000000 2.078729 +v 1.590990 5.000000 1.590991 +v 2.078729 5.000000 0.861038 +v 2.250000 5.000000 0.000000 +v 2.078729 5.000000 -0.861038 +v 1.590990 5.000000 -1.590991 +v 0.861037 5.000000 -2.078729 +vt 0.355114 0.851064 +vt 0.318182 0.893617 +vt 0.326705 0.851064 +vt 0.281250 0.851064 +vt 0.272727 0.893617 +vt 0.372159 0.851064 +vt 0.409091 0.893617 +vt 0.363636 0.893617 +vt 0.264205 0.851064 +vt 0.227273 0.893617 +vt 0.235795 0.851064 +vt 0.446023 0.851064 +vt 0.417614 0.851064 +vt 0.218750 0.851064 +vt 0.181818 0.893617 +vt 0.190341 0.851064 +vt 0.508523 0.851064 +vt 0.545455 0.893617 +vt 0.500000 0.893617 +vt 0.553977 0.851064 +vt 0.590909 0.893617 +vt 0.599432 0.851064 +vt 0.636364 0.893617 +vt 0.644886 0.851064 +vt 0.681818 0.893617 +vt 0.718750 0.851064 +vt 0.690341 0.851064 +vt 0.036932 0.851064 +vt 0.000000 0.893617 +vt 0.008523 0.851064 +vt 0.082386 0.851064 +vt 0.045455 0.893617 +vt 0.053977 0.851064 +vt 0.127841 0.851064 +vt 0.090909 0.893617 +vt 0.099432 0.851064 +vt 0.173295 0.851064 +vt 0.136364 0.893617 +vt 0.144886 0.851064 +vt 0.463068 0.851064 +vt 0.454545 0.893617 +vt 0.318182 0.907801 +vt 0.278409 0.936170 +vt 0.272727 0.907801 +vt 0.363636 0.907801 +vt 0.323864 0.936170 +vt 0.409091 0.907801 +vt 0.369318 0.936170 +vt 0.448864 0.936170 +vt 0.414773 0.936170 +vt 0.500000 0.907801 +vt 0.460227 0.936170 +vt 0.454545 0.907801 +vt 0.539773 0.936170 +vt 0.505682 0.936170 +vt 0.545455 0.907801 +vt 0.585227 0.936170 +vt 0.551136 0.936170 +vt 0.636364 0.907801 +vt 0.596591 0.936170 +vt 0.590909 0.907801 +vt 0.681818 0.907801 +vt 0.642045 0.936170 +vt 0.721591 0.936170 +vt 0.687500 0.936170 +vt 0.045455 0.907801 +vt 0.005682 0.936170 +vt -0.000000 0.907801 +vt 0.085227 0.936170 +vt 0.051136 0.936170 +vt 0.136364 0.907801 +vt 0.096591 0.936170 +vt 0.090909 0.907801 +vt 0.181818 0.907801 +vt 0.142045 0.936170 +vt 0.227273 0.907801 +vt 0.187500 0.936170 +vt 0.267045 0.936170 +vt 0.232955 0.936170 +vt 0.490616 0.534386 +vt 0.522727 0.517783 +vt 0.568139 0.574468 +vt 0.490616 0.501075 +vt 0.490616 0.420911 +vt 0.554839 0.420911 +vt 0.909091 0.404255 +vt 0.886364 0.574468 +vt 0.886364 0.404255 +vt 0.863636 0.404255 +vt 0.840909 0.574468 +vt 0.840909 0.404255 +vt 0.863636 0.574468 +vt 0.931818 0.404255 +vt 0.909091 0.574468 +vt 0.909091 0.375887 +vt 0.931818 0.375887 +vt 0.573864 0.687943 +vt 0.590909 0.680851 +vt 0.590909 0.687943 +vt 0.931818 0.404255 +vt 0.909091 0.375887 +vt 0.931818 0.375887 +vt 0.590909 0.652482 +vt 0.573864 0.659574 +vt 0.573864 0.652482 +vt 0.909091 0.574468 +vt 0.909091 0.404255 +vt 0.886364 0.404255 +vt 0.863636 0.574468 +vt 0.863636 0.404255 +vt 0.840909 0.574468 +vt 0.840909 0.404255 +vt 0.886364 0.574468 +vt 0.727273 0.677305 +vt 0.829545 0.634752 +vt 0.829545 0.677305 +vt 0.693182 0.734043 +vt 0.693182 0.677305 +vt 0.806818 0.804965 +vt 0.750000 0.762411 +vt 0.806818 0.762411 +vt 0.863636 0.677305 +vt 0.829545 0.734043 +vt 0.750000 0.804965 +vt 0.829545 0.890071 +vt 0.920455 0.719858 +vt 0.903409 0.907801 +vt 0.903409 0.719858 +vt 0.892045 0.893617 +vt 0.875000 0.719858 +vt 0.892045 0.719858 +vt 0.875000 0.907801 +vt 0.892045 0.907801 +vt 0.920455 0.574468 +vt 0.903409 0.719858 +vt 0.903409 0.574468 +vt 0.863636 0.719858 +vt 0.875000 0.893617 +vt 0.863636 0.907801 +vt 0.892045 0.705674 +vt 0.875000 0.574468 +vt 0.892045 0.574468 +vt 0.875000 0.719858 +vt 0.892045 0.719858 +vt 0.863636 0.574468 +vt 0.875000 0.705674 +vt 0.863636 0.719858 +vt 0.829545 0.804965 +vt 0.829545 0.762411 +vt 0.727273 0.762411 +vt 0.727273 0.804965 +vt 0.573864 0.680851 +vt 0.596591 0.680851 +vt 0.590909 0.659574 +vt 0.596591 0.659574 +vt 0.568182 0.659574 +vt 0.568182 0.680851 +vt 0.926136 0.205557 +vt 0.922185 0.203514 +vt 0.930088 0.193649 +vt 0.926136 0.205557 +vt 0.922185 0.203514 +vt 0.930088 0.193649 +vt 0.926136 0.205557 +vt 0.922185 0.203514 +vt 0.930088 0.193649 +vt 0.573864 0.687943 +vt 0.590909 0.680851 +vt 0.590909 0.687943 +vt 0.590909 0.652482 +vt 0.573864 0.659574 +vt 0.573864 0.652482 +vt 0.573864 0.680851 +vt 0.596591 0.680851 +vt 0.590909 0.659574 +vt 0.596591 0.659574 +vt 0.568182 0.659574 +vt 0.568182 0.680851 +vt 0.573864 0.687943 +vt 0.590909 0.680851 +vt 0.590909 0.687943 +vt 0.590909 0.652482 +vt 0.573864 0.659574 +vt 0.573864 0.652482 +vt 0.573864 0.680851 +vt 0.596591 0.680851 +vt 0.590909 0.659574 +vt 0.596591 0.659574 +vt 0.568182 0.659574 +vt 0.568182 0.680851 +vt 0.920455 0.574468 +vt 0.903409 0.719858 +vt 0.903409 0.574468 +vt 0.892045 0.705674 +vt 0.875000 0.574468 +vt 0.892045 0.574468 +vt 0.875000 0.719858 +vt 0.892045 0.719858 +vt 0.863636 0.574468 +vt 0.875000 0.705674 +vt 0.863636 0.719858 +vt 0.309659 0.851064 +vt 0.400568 0.851064 +vt 0.536932 0.851064 +vt 0.582386 0.851064 +vt 0.627841 0.851064 +vt 0.673295 0.851064 +vt 0.727273 0.893617 +vt 0.491477 0.851064 +vt 0.312500 0.936170 +vt 0.357955 0.936170 +vt 0.403409 0.936170 +vt 0.494318 0.936170 +vt 0.630682 0.936170 +vt 0.676136 0.936170 +vt 0.727273 0.907801 +vt 0.039773 0.936170 +vt 0.130682 0.936170 +vt 0.176136 0.936170 +vt 0.221591 0.936170 +vt 0.564683 0.596160 +vt 0.554839 0.614550 +vt 0.540106 0.626838 +vt 0.522727 0.631153 +vt 0.505349 0.626838 +vt 0.490616 0.614550 +vt 0.480772 0.596160 +vt 0.477315 0.574468 +vt 0.480772 0.552776 +vt 0.505349 0.522098 +vt 0.540106 0.522098 +vt 0.554839 0.534386 +vt 0.564683 0.552776 +vt 0.564683 0.439301 +vt 0.568139 0.460993 +vt 0.564683 0.482685 +vt 0.554839 0.501075 +vt 0.540106 0.513363 +vt 0.522727 0.517678 +vt 0.505349 0.513363 +vt 0.480772 0.482685 +vt 0.477315 0.460993 +vt 0.480772 0.439301 +vt 0.505349 0.408623 +vt 0.522727 0.404308 +vt 0.540106 0.408623 +vt 0.931818 0.574468 +vt 0.931818 0.574468 +vt 0.727273 0.634752 +vt 0.727273 0.734043 +vt 0.863636 0.734043 +vt 0.829545 0.833333 +vt 0.727273 0.890071 +vt 0.727273 0.833333 +vt 0.920455 0.907801 +vt 0.920455 0.719858 +vt 0.920548 0.198582 +vt 0.922185 0.193649 +vt 0.926136 0.191606 +vt 0.931725 0.198582 +vt 0.930088 0.203514 +vt 0.920548 0.198582 +vt 0.922185 0.193649 +vt 0.926136 0.191606 +vt 0.931725 0.198582 +vt 0.930088 0.203514 +vt 0.920548 0.198582 +vt 0.922185 0.193649 +vt 0.926136 0.191606 +vt 0.931725 0.198582 +vt 0.930088 0.203514 +vt 0.920455 0.719858 +vt 0.286932 1.000000 +vt 0.332386 1.000000 +vt 0.377841 1.000000 +vt 0.423295 1.000000 +vt 0.468750 1.000000 +vt 0.514205 1.000000 +vt 0.576705 1.000000 +vt 0.559659 1.000000 +vt 0.605114 1.000000 +vt 0.650568 1.000000 +vt 0.696023 1.000000 +vt 0.014205 1.000000 +vt 0.059659 1.000000 +vt 0.122159 1.000000 +vt 0.105114 1.000000 +vt 0.167614 1.000000 +vt 0.150568 1.000000 +vt 0.213068 1.000000 +vt 0.196023 1.000000 +vt 0.258523 1.000000 +vt 0.241477 1.000000 +vt 0.559659 0.801418 +vt 0.531250 0.801418 +vt 0.468750 0.801418 +vt 0.423295 0.801418 +vt 0.377841 0.801418 +vt 0.349432 0.801418 +vt 0.303977 0.801418 +vt 0.241477 0.801418 +vt 0.196023 0.801418 +vt 0.167614 0.801418 +vt 0.122159 0.801418 +vt 0.076705 0.801418 +vt 0.031250 0.801418 +vt 0.713068 0.801418 +vt 0.650568 0.801418 +vt 0.605114 0.801418 +vt 0.982955 0.078014 +vt 0.988636 0.088652 +vt 0.982955 0.088652 +vt 0.994318 0.070922 +vt 0.988636 0.078014 +vt 0.988636 0.070922 +vt 0.982955 0.070922 +vt 0.977273 0.078014 +vt 0.977273 0.070922 +vt 0.971591 0.070922 +vt 0.965909 0.078014 +vt 0.965909 0.070922 +vt 0.960227 0.070922 +vt 0.954545 0.078014 +vt 0.954545 0.070922 +vt 1.000000 0.070922 +vt 0.994318 0.078014 +vt 0.971591 0.078014 +vt 0.960227 0.078014 +vt 0.971591 0.088652 +vt 0.965909 0.081560 +vt 0.960227 0.088652 +vt 0.960227 0.085106 +vt 0.988636 0.081560 +vt 0.994318 0.088652 +vt 0.977273 0.088652 +vt 0.965909 0.088652 +vt 0.982955 0.099291 +vt 0.971591 0.099291 +vt 0.965909 0.095745 +vt 0.960227 0.092199 +vt 0.988636 0.095745 +vt 0.977273 0.099291 +vt 0.994318 0.085106 +vt 1.000000 0.088652 +vt 0.994318 0.092199 +vt 0.954545 0.088652 +vt 0.971591 0.148936 +vt 0.960227 0.099291 +vt 0.965909 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.954545 0.099291 +vt 0.994318 0.099291 +vt 0.988636 0.148936 +vt 0.988636 0.099291 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.982955 0.148936 +vt 0.977273 0.148936 +vt 0.965909 0.099291 +vt 0.551136 0.361702 +vt 0.511364 0.404255 +vt 0.511364 0.361702 +vt 0.909091 0.361702 +vt 0.869318 0.404255 +vt 0.869318 0.361702 +vt 0.590909 0.361702 +vt 0.551136 0.404255 +vt 0.312500 0.361702 +vt 0.272727 0.404255 +vt 0.272727 0.361702 +vt 0.630682 0.361702 +vt 0.590909 0.404255 +vt 0.352273 0.361702 +vt 0.312500 0.404255 +vt 0.670455 0.361702 +vt 0.630682 0.404255 +vt 0.392045 0.361702 +vt 0.352273 0.404255 +vt 0.710227 0.361702 +vt 0.670455 0.404255 +vt 0.431818 0.361702 +vt 0.392045 0.404255 +vt 0.789773 0.361702 +vt 0.750000 0.404255 +vt 0.750000 0.361702 +vt 0.710227 0.404255 +vt 0.471591 0.361702 +vt 0.431818 0.404255 +vt 0.829545 0.361702 +vt 0.789773 0.404255 +vt 0.471591 0.404255 +vt 0.829545 0.404255 +vt 0.926136 0.205674 +vt 0.920455 0.375887 +vt 0.920455 0.205674 +vt 0.948864 0.205674 +vt 0.943182 0.375887 +vt 0.943182 0.205674 +vt 0.937500 0.375887 +vt 0.937500 0.205674 +vt 0.914773 0.375887 +vt 0.914773 0.205674 +vt 0.931818 0.375887 +vt 0.931818 0.205674 +vt 0.954545 0.205674 +vt 0.948864 0.375887 +vt 0.926136 0.375887 +vt 0.909091 0.375887 +vt 0.909091 0.205674 +vt 0.988636 0.081560 +vt 0.982955 0.088652 +vt 0.982955 0.078014 +vt 0.994318 0.070922 +vt 0.988636 0.078014 +vt 0.988636 0.070922 +vt 0.982955 0.070922 +vt 0.977273 0.078014 +vt 0.977273 0.070922 +vt 0.971591 0.070922 +vt 0.965909 0.078014 +vt 0.965909 0.070922 +vt 0.960227 0.070922 +vt 0.954545 0.078014 +vt 0.954545 0.070922 +vt 1.000000 0.070922 +vt 0.994318 0.078014 +vt 0.971591 0.078014 +vt 0.960227 0.078014 +vt 0.971591 0.088652 +vt 0.965909 0.081560 +vt 0.960227 0.088652 +vt 0.960227 0.085106 +vt 0.994318 0.088652 +vt 0.988636 0.088652 +vt 0.977273 0.088652 +vt 0.965909 0.088652 +vt 0.982955 0.099291 +vt 0.971591 0.099291 +vt 0.965909 0.095745 +vt 0.960227 0.092199 +vt 0.988636 0.095745 +vt 0.977273 0.099291 +vt 0.994318 0.085106 +vt 1.000000 0.088652 +vt 0.994318 0.092199 +vt 0.954545 0.088652 +vt 0.971591 0.148936 +vt 0.960227 0.099291 +vt 0.965909 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.954545 0.099291 +vt 0.994318 0.099291 +vt 0.988636 0.148936 +vt 0.988636 0.099291 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.982955 0.148936 +vt 0.977273 0.148936 +vt 0.965909 0.099291 +vt 0.982955 0.078014 +vt 0.988636 0.088652 +vt 0.982955 0.088652 +vt 0.994318 0.070922 +vt 0.988636 0.078014 +vt 0.988636 0.070922 +vt 0.982955 0.070922 +vt 0.977273 0.078014 +vt 0.977273 0.070922 +vt 0.971591 0.070922 +vt 0.965909 0.078014 +vt 0.965909 0.070922 +vt 0.960227 0.070922 +vt 0.954545 0.078014 +vt 0.954545 0.070922 +vt 1.000000 0.070922 +vt 0.994318 0.078014 +vt 0.971591 0.078014 +vt 0.960227 0.078014 +vt 0.971591 0.088652 +vt 0.965909 0.081560 +vt 0.960227 0.088652 +vt 0.960227 0.085106 +vt 0.988636 0.081560 +vt 0.994318 0.088652 +vt 0.977273 0.088652 +vt 0.965909 0.088652 +vt 0.982955 0.099291 +vt 0.971591 0.099291 +vt 0.965909 0.095745 +vt 0.960227 0.092199 +vt 0.988636 0.095745 +vt 0.977273 0.099291 +vt 0.994318 0.085106 +vt 1.000000 0.088652 +vt 0.994318 0.092199 +vt 0.954545 0.088652 +vt 0.971591 0.148936 +vt 0.960227 0.099291 +vt 0.965909 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.954545 0.099291 +vt 0.994318 0.099291 +vt 0.988636 0.148936 +vt 0.988636 0.099291 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.982955 0.148936 +vt 0.977273 0.148936 +vt 0.965909 0.099291 +vt 0.982955 0.078014 +vt 0.988636 0.088652 +vt 0.982955 0.088652 +vt 0.994318 0.070922 +vt 0.988636 0.078014 +vt 0.988636 0.070922 +vt 0.982955 0.070922 +vt 0.977273 0.078014 +vt 0.977273 0.070922 +vt 0.971591 0.070922 +vt 0.965909 0.078014 +vt 0.965909 0.070922 +vt 0.960227 0.070922 +vt 0.954545 0.078014 +vt 0.954545 0.070922 +vt 1.000000 0.070922 +vt 0.994318 0.078014 +vt 0.971591 0.078014 +vt 0.960227 0.078014 +vt 0.971591 0.088652 +vt 0.965909 0.081560 +vt 0.960227 0.088652 +vt 0.960227 0.085106 +vt 0.988636 0.081560 +vt 0.994318 0.088652 +vt 0.977273 0.088652 +vt 0.965909 0.088652 +vt 0.988636 0.095745 +vt 0.982955 0.099291 +vt 0.971591 0.099291 +vt 0.965909 0.095745 +vt 0.960227 0.092199 +vt 0.977273 0.099291 +vt 0.994318 0.085106 +vt 1.000000 0.088652 +vt 0.994318 0.092199 +vt 0.954545 0.088652 +vt 0.971591 0.148936 +vt 0.960227 0.099291 +vt 0.965909 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.954545 0.099291 +vt 0.994318 0.099291 +vt 0.988636 0.148936 +vt 0.988636 0.099291 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.982955 0.148936 +vt 0.977273 0.148936 +vt 0.965909 0.099291 +vt 0.982955 0.078014 +vt 0.988636 0.088652 +vt 0.982955 0.088652 +vt 0.994318 0.070922 +vt 0.988636 0.078014 +vt 0.988636 0.070922 +vt 0.982955 0.070922 +vt 0.977273 0.078014 +vt 0.977273 0.070922 +vt 0.971591 0.070922 +vt 0.965909 0.078014 +vt 0.965909 0.070922 +vt 0.960227 0.070922 +vt 0.954545 0.078014 +vt 0.954545 0.070922 +vt 1.000000 0.070922 +vt 0.994318 0.078014 +vt 0.971591 0.078014 +vt 0.960227 0.078014 +vt 0.971591 0.088652 +vt 0.960227 0.085106 +vt 0.965909 0.088652 +vt 0.960227 0.088652 +vt 0.994318 0.085106 +vt 0.988636 0.081560 +vt 0.977273 0.088652 +vt 0.965909 0.081560 +vt 0.988636 0.095745 +vt 0.982955 0.099291 +vt 0.971591 0.099291 +vt 0.965909 0.095745 +vt 0.960227 0.092199 +vt 0.994318 0.088652 +vt 0.977273 0.099291 +vt 1.000000 0.088652 +vt 0.994318 0.092199 +vt 0.954545 0.088652 +vt 0.971591 0.148936 +vt 0.960227 0.099291 +vt 0.965909 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.954545 0.099291 +vt 0.994318 0.099291 +vt 0.988636 0.148936 +vt 0.988636 0.099291 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.982955 0.148936 +vt 0.977273 0.148936 +vt 0.965909 0.099291 +vt 0.982955 0.078014 +vt 0.988636 0.088652 +vt 0.982955 0.088652 +vt 0.994318 0.070922 +vt 0.988636 0.078014 +vt 0.988636 0.070922 +vt 0.982955 0.070922 +vt 0.977273 0.078014 +vt 0.977273 0.070922 +vt 0.971591 0.070922 +vt 0.965909 0.078014 +vt 0.965909 0.070922 +vt 0.960227 0.070922 +vt 0.954545 0.078014 +vt 0.954545 0.070922 +vt 1.000000 0.070922 +vt 0.994318 0.078014 +vt 0.971591 0.078014 +vt 0.960227 0.078014 +vt 0.971591 0.088652 +vt 0.965909 0.081560 +vt 0.960227 0.088652 +vt 0.960227 0.085106 +vt 0.994318 0.085106 +vt 0.988636 0.081560 +vt 0.977273 0.088652 +vt 0.965909 0.088652 +vt 0.982955 0.099291 +vt 0.971591 0.099291 +vt 0.965909 0.095745 +vt 0.960227 0.092199 +vt 0.994318 0.088652 +vt 0.988636 0.095745 +vt 0.977273 0.099291 +vt 1.000000 0.088652 +vt 0.994318 0.092199 +vt 0.954545 0.088652 +vt 0.971591 0.148936 +vt 0.960227 0.099291 +vt 0.965909 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.954545 0.099291 +vt 0.994318 0.099291 +vt 0.988636 0.148936 +vt 0.988636 0.099291 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.982955 0.148936 +vt 0.977273 0.148936 +vt 0.965909 0.099291 +vt 0.982955 0.078014 +vt 0.988636 0.088652 +vt 0.982955 0.088652 +vt 0.994318 0.070922 +vt 0.988636 0.078014 +vt 0.988636 0.070922 +vt 0.982955 0.070922 +vt 0.977273 0.078014 +vt 0.977273 0.070922 +vt 0.971591 0.070922 +vt 0.965909 0.078014 +vt 0.965909 0.070922 +vt 0.960227 0.070922 +vt 0.954545 0.078014 +vt 0.954545 0.070922 +vt 1.000000 0.070922 +vt 0.994318 0.078014 +vt 0.971591 0.078014 +vt 0.960227 0.078014 +vt 0.971591 0.088652 +vt 0.960227 0.085106 +vt 0.965909 0.088652 +vt 0.960227 0.088652 +vt 0.994318 0.085106 +vt 0.988636 0.081560 +vt 0.977273 0.088652 +vt 0.965909 0.081560 +vt 0.988636 0.095745 +vt 0.982955 0.099291 +vt 0.971591 0.099291 +vt 0.965909 0.095745 +vt 0.960227 0.092199 +vt 0.994318 0.088652 +vt 0.977273 0.099291 +vt 1.000000 0.088652 +vt 0.994318 0.092199 +vt 0.954545 0.088652 +vt 0.971591 0.148936 +vt 0.960227 0.099291 +vt 0.965909 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.954545 0.099291 +vt 0.994318 0.099291 +vt 0.988636 0.148936 +vt 0.988636 0.099291 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.982955 0.148936 +vt 0.977273 0.148936 +vt 0.965909 0.099291 +vt 0.982955 0.078014 +vt 0.988636 0.088652 +vt 0.982955 0.088652 +vt 0.994318 0.070922 +vt 0.988636 0.078014 +vt 0.988636 0.070922 +vt 0.982955 0.070922 +vt 0.977273 0.078014 +vt 0.977273 0.070922 +vt 0.971591 0.070922 +vt 0.965909 0.078014 +vt 0.965909 0.070922 +vt 0.960227 0.070922 +vt 0.954545 0.078014 +vt 0.954545 0.070922 +vt 1.000000 0.070922 +vt 0.994318 0.078014 +vt 0.971591 0.078014 +vt 0.960227 0.078014 +vt 0.971591 0.088652 +vt 0.965909 0.081560 +vt 0.960227 0.088652 +vt 0.960227 0.085106 +vt 0.994318 0.085106 +vt 0.988636 0.081560 +vt 0.977273 0.088652 +vt 0.965909 0.088652 +vt 0.982955 0.099291 +vt 0.971591 0.099291 +vt 0.965909 0.095745 +vt 0.960227 0.092199 +vt 0.994318 0.088652 +vt 0.988636 0.095745 +vt 0.977273 0.099291 +vt 1.000000 0.088652 +vt 0.994318 0.092199 +vt 0.954545 0.088652 +vt 0.971591 0.148936 +vt 0.960227 0.099291 +vt 0.965909 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.954545 0.099291 +vt 0.994318 0.099291 +vt 0.988636 0.148936 +vt 0.988636 0.099291 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.982955 0.148936 +vt 0.977273 0.148936 +vt 0.965909 0.099291 +vt 0.926136 0.205674 +vt 0.920455 0.375887 +vt 0.920455 0.205674 +vt 0.948864 0.205674 +vt 0.943182 0.375887 +vt 0.943182 0.205674 +vt 0.937500 0.375887 +vt 0.937500 0.205674 +vt 0.914773 0.375887 +vt 0.914773 0.205674 +vt 0.931818 0.375887 +vt 0.931818 0.205674 +vt 0.954545 0.205674 +vt 0.948864 0.375887 +vt 0.926136 0.375887 +vt 0.909091 0.375887 +vt 0.909091 0.205674 +vt 0.926136 0.205674 +vt 0.920455 0.375887 +vt 0.920455 0.205674 +vt 0.948864 0.205674 +vt 0.943182 0.375887 +vt 0.943182 0.205674 +vt 0.937500 0.375887 +vt 0.937500 0.205674 +vt 0.914773 0.375887 +vt 0.914773 0.205674 +vt 0.931818 0.375887 +vt 0.931818 0.205674 +vt 0.954545 0.205674 +vt 0.948864 0.375887 +vt 0.926136 0.375887 +vt 0.909091 0.375887 +vt 0.909091 0.205674 +vt 0.511364 0.404255 +vt 0.551136 0.361702 +vt 0.511364 0.361702 +vt 0.869318 0.404255 +vt 0.909091 0.361702 +vt 0.869318 0.361702 +vt 0.551136 0.404255 +vt 0.590909 0.361702 +vt 0.272727 0.404255 +vt 0.312500 0.361702 +vt 0.272727 0.361702 +vt 0.590909 0.404255 +vt 0.630682 0.361702 +vt 0.312500 0.404255 +vt 0.352273 0.361702 +vt 0.630682 0.404255 +vt 0.670455 0.361702 +vt 0.352273 0.404255 +vt 0.392045 0.361702 +vt 0.670455 0.404255 +vt 0.710227 0.361702 +vt 0.392045 0.404255 +vt 0.431818 0.361702 +vt 0.750000 0.404255 +vt 0.789773 0.361702 +vt 0.750000 0.361702 +vt 0.710227 0.404255 +vt 0.431818 0.404255 +vt 0.471591 0.361702 +vt 0.789773 0.404255 +vt 0.829545 0.361702 +vt 0.471591 0.404255 +vt 0.829545 0.404255 +vt 0.303977 1.000000 +vt 0.349432 1.000000 +vt 0.394886 1.000000 +vt 0.440341 1.000000 +vt 0.485795 1.000000 +vt 0.531250 1.000000 +vt 0.622159 1.000000 +vt 0.667614 1.000000 +vt 0.713068 1.000000 +vt 0.031250 1.000000 +vt 0.076705 1.000000 +vt 0.576705 0.801418 +vt 0.514205 0.801418 +vt 0.485795 0.801418 +vt 0.440341 0.801418 +vt 0.394886 0.801418 +vt 0.332386 0.801418 +vt 0.286932 0.801418 +vt 0.258523 0.801418 +vt 0.213068 0.801418 +vt 0.150568 0.801418 +vt 0.105114 0.801418 +vt 0.059659 0.801418 +vt 0.014205 0.801418 +vt 0.696023 0.801418 +vt 0.667614 0.801418 +vt 0.622159 0.801418 +vt 1.000000 0.078014 +vt 1.000000 0.099291 +vt 0.909091 0.404255 +vt 0.954545 0.375887 +vt 1.000000 0.078014 +vt 1.000000 0.099291 +vt 1.000000 0.078014 +vt 1.000000 0.099291 +vt 1.000000 0.078014 +vt 1.000000 0.099291 +vt 1.000000 0.078014 +vt 1.000000 0.099291 +vt 1.000000 0.078014 +vt 1.000000 0.099291 +vt 1.000000 0.078014 +vt 1.000000 0.099291 +vt 1.000000 0.078014 +vt 1.000000 0.099291 +vt 0.954545 0.375887 +vt 0.954545 0.375887 +vt 0.909091 0.404255 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.9239 0.0000 0.3827 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.4132 0.8944 0.1711 +vn 0.3162 0.8944 0.3162 +vn 0.4472 0.8944 0.0000 +vn 0.4132 0.8944 -0.1711 +vn 0.3162 0.8944 -0.3162 +vn 0.1711 0.8944 -0.4132 +vn 0.0000 0.8944 -0.4472 +vn -0.1711 0.8944 -0.4132 +vn -0.3162 0.8944 -0.3162 +vn -0.4132 0.8944 -0.1711 +vn -0.4472 0.8944 -0.0000 +vn -0.4132 0.8944 0.1711 +vn -0.3162 0.8944 0.3162 +vn -0.1711 0.8944 0.4132 +vn 0.0000 0.8944 0.4472 +vn 0.1711 0.8944 0.4132 +vn 0.0000 -0.8321 0.5547 +vn 0.2123 -0.8321 0.5125 +vn -0.2123 -0.8321 0.5125 +vn -0.3922 -0.8321 0.3922 +vn -0.5125 -0.8321 0.2123 +vn -0.5547 -0.8321 -0.0000 +vn -0.5125 -0.8321 -0.2123 +vn -0.3922 -0.8321 -0.3922 +vn -0.2123 -0.8321 -0.5125 +vn 0.0000 -0.8321 -0.5547 +vn 0.2123 -0.8320 -0.5125 +vn 0.3922 -0.8321 -0.3922 +vn 0.2123 -0.8321 -0.5125 +vn 0.5125 -0.8321 -0.2123 +vn 0.5547 -0.8321 0.0000 +vn 0.5125 -0.8321 0.2123 +vn 0.3922 -0.8321 0.3922 +vn 0.7194 0.1448 -0.6794 +vn 0.0671 0.0671 -0.9955 +vn 0.5294 0.5294 -0.6630 +vn 0.0473 0.0196 -0.9987 +vn 0.9824 0.1866 0.0000 +vn 0.0473 0.0196 0.9987 +vn -0.7071 -0.7071 -0.0000 +vn -0.6737 -0.1363 -0.7263 +vn 0.7194 0.1448 0.6794 +vn -0.6737 -0.1363 0.7263 +vn 0.5294 0.5294 0.6630 +vn -0.4617 -0.4617 0.7574 +vn -0.4617 -0.4617 -0.7574 +vn 0.0671 0.0671 0.9955 +vn 0.1448 0.7194 -0.6794 +vn 0.1448 0.7194 0.6794 +vn 0.0196 0.0473 0.9987 +vn -0.1363 -0.6737 0.7263 +vn 0.0196 0.0473 -0.9987 +vn 0.1866 0.9824 0.0000 +vn -0.1363 -0.6737 -0.7263 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn -0.0473 0.0196 0.9987 +vn -0.5294 0.5294 0.6630 +vn -0.7194 0.1448 0.6794 +vn -0.9824 0.1866 -0.0000 +vn -0.0473 0.0196 -0.9987 +vn 0.7071 -0.7071 0.0000 +vn 0.6737 -0.1363 0.7263 +vn -0.7194 0.1448 -0.6794 +vn 0.6737 -0.1363 -0.7263 +vn -0.5294 0.5294 -0.6630 +vn 0.4617 -0.4617 -0.7574 +vn 0.4617 -0.4617 0.7574 +vn -0.0671 0.0671 0.9955 +vn -0.7071 0.7071 0.0000 +vn -0.0671 0.0671 -0.9955 +vn -0.1448 0.7194 0.6794 +vn -0.1448 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.1866 0.9824 0.0000 +vn 0.1363 -0.6737 0.7263 +vn -0.6794 0.1448 -0.7194 +vn -0.9955 0.0671 -0.0671 +vn -0.6630 0.5294 -0.5294 +vn -0.9987 0.0196 -0.0473 +vn 0.0000 0.1866 -0.9824 +vn 0.9987 0.0196 -0.0473 +vn -0.7263 -0.1363 0.6737 +vn 0.6794 0.1448 -0.7194 +vn 0.7263 -0.1363 0.6737 +vn 0.6630 0.5294 -0.5294 +vn 0.7574 -0.4617 0.4617 +vn -0.7574 -0.4617 0.4617 +vn 0.9955 0.0671 -0.0671 +vn -0.6794 0.7194 -0.1448 +vn 0.6794 0.7194 -0.1448 +vn 0.9987 0.0473 -0.0196 +vn 0.7263 -0.6737 0.1363 +vn -0.9987 0.0473 -0.0196 +vn -0.0000 0.9824 -0.1866 +vn -0.7263 -0.6737 0.1363 +vn 0.6794 0.1448 0.7194 +vn 0.9955 0.0671 0.0671 +vn 0.6630 0.5294 0.5294 +vn 0.9987 0.0196 0.0473 +vn -0.0000 0.1866 0.9824 +vn -0.9987 0.0196 0.0473 +vn 0.7263 -0.1363 -0.6737 +vn -0.6794 0.1448 0.7194 +vn -0.7263 -0.1363 -0.6737 +vn -0.6630 0.5294 0.5294 +vn -0.7574 -0.4617 -0.4617 +vn 0.7574 -0.4617 -0.4617 +vn -0.9955 0.0671 0.0671 +vn 0.9987 0.0473 0.0196 +vn 0.6794 0.7194 0.1448 +vn -0.6794 0.7194 0.1448 +vn -0.9987 0.0473 0.0196 +vn -0.7263 -0.6737 -0.1363 +vn 0.0000 0.9824 0.1866 +vn 0.7263 -0.6737 -0.1363 +vn 0.0283 0.1448 -0.9891 +vn -0.6565 0.0671 -0.7513 +vn -0.0945 0.5294 -0.8431 +vn -0.6727 0.0196 -0.7396 +vn 0.6947 0.1866 -0.6947 +vn 0.7396 0.0196 0.6727 +vn -0.5000 -0.7071 0.5000 +vn -0.9900 -0.1363 -0.0372 +vn 0.9891 0.1448 -0.0283 +vn 0.0372 -0.1363 0.9900 +vn 0.8431 0.5294 0.0945 +vn 0.7513 0.0671 0.6565 +vn 0.2090 -0.4617 0.8620 +vn 0.5000 0.7071 -0.5000 +vn -0.6923 0.0473 -0.7200 +vn -0.3780 0.7194 -0.5828 +vn 0.5828 0.7194 0.3780 +vn 0.7200 0.0473 0.6923 +vn 0.4172 -0.6737 0.6099 +vn -0.8620 -0.4617 -0.2090 +vn 0.1319 0.9824 -0.1319 +vn -0.6099 -0.6737 -0.4172 +vn 0.5000 0.7071 0.5000 +vn 0.5000 -0.7071 0.5000 +vn -0.5000 -0.7071 -0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.0283 0.1448 0.9891 +vn 0.6565 0.0671 0.7513 +vn 0.0945 0.5294 0.8431 +vn 0.6727 0.0196 0.7396 +vn -0.6947 0.1866 0.6947 +vn -0.7396 0.0196 -0.6727 +vn 0.5000 -0.7071 -0.5000 +vn 0.9900 -0.1363 0.0372 +vn -0.9891 0.1448 0.0283 +vn -0.0372 -0.1363 -0.9900 +vn -0.8431 0.5294 -0.0945 +vn -0.2090 -0.4617 -0.8620 +vn -0.5000 0.7071 0.5000 +vn -0.7514 0.0671 -0.6565 +vn 0.3780 0.7194 0.5828 +vn -0.5828 0.7194 -0.3780 +vn -0.7200 0.0473 -0.6923 +vn -0.4172 -0.6737 -0.6099 +vn 0.8620 -0.4617 0.2090 +vn 0.6923 0.0473 0.7200 +vn -0.1319 0.9824 0.1319 +vn 0.6099 -0.6737 0.4172 +vn -0.9891 0.1448 -0.0283 +vn -0.7513 0.0671 0.6565 +vn -0.8431 0.5294 0.0945 +vn -0.7396 0.0196 0.6727 +vn -0.6947 0.1866 -0.6947 +vn 0.6727 0.0196 -0.7396 +vn -0.0372 -0.1363 0.9900 +vn -0.0283 0.1448 -0.9891 +vn 0.9900 -0.1363 -0.0372 +vn 0.0945 0.5294 -0.8431 +vn 0.6565 0.0671 -0.7513 +vn 0.8620 -0.4617 -0.2091 +vn -0.7200 0.0473 0.6923 +vn -0.5828 0.7194 0.3780 +vn 0.3780 0.7194 -0.5828 +vn 0.6923 0.0473 -0.7200 +vn 0.6099 -0.6737 -0.4172 +vn -0.2090 -0.4617 0.8620 +vn -0.1319 0.9824 -0.1319 +vn -0.4172 -0.6737 0.6099 +vn 0.9891 0.1448 0.0283 +vn 0.7513 0.0671 -0.6565 +vn 0.8431 0.5294 -0.0945 +vn 0.7396 0.0196 -0.6727 +vn 0.6947 0.1866 0.6947 +vn -0.6727 0.0196 0.7396 +vn 0.0372 -0.1363 -0.9900 +vn 0.0283 0.1448 0.9891 +vn -0.9900 -0.1363 0.0372 +vn -0.0945 0.5294 0.8431 +vn -0.8620 -0.4617 0.2090 +vn -0.6565 0.0671 0.7513 +vn 0.5828 0.7194 -0.3780 +vn -0.3780 0.7194 0.5828 +vn -0.6923 0.0473 0.7200 +vn -0.6099 -0.6737 0.4172 +vn 0.2090 -0.4617 -0.8620 +vn 0.7200 0.0473 -0.6923 +vn 0.1319 0.9824 0.1319 +vn 0.4172 -0.6737 -0.6099 +s off +f 292/453/197 316/454/197 293/455/197 +f 294/456/197 316/454/197 315/457/197 +f 292/458/197 318/459/197 317/460/197 +f 294/461/197 314/462/197 295/463/197 +f 290/464/197 318/459/197 291/465/197 +f 295/466/197 313/467/197 296/468/197 +f 289/469/197 305/470/197 320/471/197 +f 304/472/197 306/473/197 305/470/197 +f 303/474/197 307/475/197 306/473/197 +f 302/476/197 308/477/197 307/475/197 +f 300/478/197 308/477/197 301/479/197 +f 299/480/197 309/481/197 300/482/197 +f 298/483/197 310/484/197 299/485/197 +f 297/486/197 311/487/197 298/488/197 +f 296/489/197 312/490/197 297/491/197 +f 290/492/197 320/471/197 319/493/197 +f 332/494/198 347/495/198 331/496/198 +f 333/497/198 348/498/198 332/494/198 +f 334/499/198 349/500/198 333/497/198 +f 334/499/198 351/501/198 350/502/198 +f 336/503/198 351/504/198 335/505/198 +f 336/503/198 337/506/198 352/507/198 +f 321/508/198 338/509/198 337/510/198 +f 323/511/198 338/512/198 322/513/198 +f 324/514/198 339/515/198 323/511/198 +f 324/514/198 341/516/198 340/517/198 +f 326/518/198 341/519/198 325/520/198 +f 326/518/198 343/521/198 342/522/198 +f 328/523/198 343/524/198 327/525/198 +f 329/526/198 344/527/198 328/523/198 +f 330/528/198 345/529/198 329/526/198 +f 330/528/198 347/530/198 346/531/198 +f 363/532/198 365/533/198 353/534/198 +f 379/535/197 375/536/197 371/537/197 +f 461/538/199 457/539/199 462/540/199 +f 460/541/200 455/542/200 459/543/200 +f 462/540/201 458/544/201 460/541/201 +f 459/545/202 456/546/202 461/538/202 +f 459/545/197 462/547/197 460/548/197 +f 515/549/198 519/550/198 517/551/198 +f 466/552/197 463/553/197 465/554/197 +f 518/555/197 521/556/197 516/557/197 +f 466/552/202 469/558/202 464/559/202 +f 463/560/201 467/561/201 465/562/201 +f 465/562/200 470/563/200 466/564/200 +f 464/559/199 468/565/199 463/560/199 +f 473/566/197 472/567/197 471/568/197 +f 473/566/200 497/569/200 474/570/200 +f 495/571/198 491/572/198 494/573/198 +f 472/574/199 493/575/199 471/568/199 +f 498/576/202 495/571/202 472/577/202 +f 477/578/197 476/579/197 475/580/197 +f 481/581/198 479/582/198 480/583/198 +f 478/584/203 481/581/203 476/585/203 +f 485/586/197 484/587/197 483/588/197 +f 477/589/200 482/590/200 478/591/200 +f 475/580/199 481/581/199 480/583/199 +f 489/592/198 487/593/198 488/594/198 +f 486/595/203 489/592/203 484/596/203 +f 485/597/200 490/598/200 486/599/200 +f 483/588/199 489/592/199 488/594/199 +f 496/600/204 494/573/204 493/601/204 +f 492/602/205 498/576/205 497/603/205 +f 494/573/201 491/572/201 473/566/201 +f 521/556/202 519/550/202 520/604/202 +f 517/605/200 522/606/200 518/607/200 +f 516/608/199 520/604/199 515/609/199 +f 512/610/197 514/611/197 509/612/197 +f 802/613/197 804/614/197 799/615/197 +f 818/616/197 820/617/197 815/618/197 +f 821/619/198 825/620/198 823/621/198 +f 824/622/197 827/623/197 822/624/197 +f 827/623/202 825/620/202 826/625/202 +f 823/626/200 828/627/200 824/628/200 +f 822/629/199 826/625/199 821/630/199 +f 829/631/198 833/632/198 831/633/198 +f 832/634/197 835/635/197 830/636/197 +f 835/635/202 833/632/202 834/637/202 +f 831/638/200 836/639/200 832/640/200 +f 830/641/199 834/637/199 829/642/199 +f 839/643/197 838/644/197 837/645/197 +f 843/646/198 841/647/198 842/648/198 +f 840/649/203 843/646/203 838/650/203 +f 839/651/200 844/652/200 840/653/200 +f 837/645/199 843/646/199 842/648/199 +f 292/453/197 317/460/197 316/454/197 +f 294/456/197 293/654/197 316/454/197 +f 292/458/197 291/655/197 318/459/197 +f 294/461/197 315/457/197 314/462/197 +f 290/464/197 319/493/197 318/459/197 +f 295/466/197 314/462/197 313/467/197 +f 289/469/197 304/656/197 305/470/197 +f 304/472/197 303/657/197 306/473/197 +f 303/474/197 302/658/197 307/475/197 +f 302/476/197 301/659/197 308/477/197 +f 300/478/197 309/660/197 308/477/197 +f 299/480/197 310/484/197 309/481/197 +f 298/483/197 311/487/197 310/484/197 +f 297/486/197 312/490/197 311/487/197 +f 296/489/197 313/467/197 312/490/197 +f 290/492/197 289/661/197 320/471/197 +f 332/494/198 348/662/198 347/495/198 +f 333/497/198 349/663/198 348/498/198 +f 334/499/198 350/664/198 349/500/198 +f 334/499/198 335/505/198 351/501/198 +f 336/503/198 352/665/198 351/504/198 +f 336/503/198 321/508/198 337/506/198 +f 321/508/198 322/513/198 338/509/198 +f 323/511/198 339/666/198 338/512/198 +f 324/514/198 340/667/198 339/515/198 +f 324/514/198 325/668/198 341/516/198 +f 326/518/198 342/669/198 341/519/198 +f 326/518/198 327/525/198 343/521/198 +f 328/523/198 344/670/198 343/524/198 +f 329/526/198 345/671/198 344/527/198 +f 330/528/198 346/672/198 345/529/198 +f 330/528/198 331/496/198 347/530/198 +f 353/534/198 354/673/198 355/674/198 +f 355/674/198 356/675/198 357/676/198 +f 357/676/198 358/677/198 359/678/198 +f 359/678/198 360/679/198 361/680/198 +f 361/680/198 362/681/198 363/532/198 +f 363/532/198 364/682/198 365/533/198 +f 365/533/198 366/683/198 367/684/198 +f 367/684/198 368/685/198 365/533/198 +f 368/685/198 353/534/198 365/533/198 +f 353/534/198 355/674/198 361/680/198 +f 355/674/198 357/676/198 361/680/198 +f 357/676/198 359/678/198 361/680/198 +f 361/680/198 363/532/198 353/534/198 +f 371/537/197 370/686/197 369/687/197 +f 369/687/197 384/688/197 371/537/197 +f 384/688/197 383/689/197 371/537/197 +f 383/689/197 382/690/197 381/691/197 +f 381/691/197 380/692/197 379/535/197 +f 379/535/197 378/693/197 375/536/197 +f 378/693/197 377/694/197 375/536/197 +f 377/694/197 376/695/197 375/536/197 +f 375/536/197 374/696/197 373/697/197 +f 373/697/197 372/698/197 371/537/197 +f 383/689/197 381/691/197 379/535/197 +f 375/536/197 373/697/197 371/537/197 +f 371/537/197 383/689/197 379/535/197 +f 461/538/199 456/546/199 457/539/199 +f 460/541/200 458/544/200 455/542/200 +f 462/540/201 457/539/201 458/544/201 +f 459/545/202 455/699/202 456/546/202 +f 459/545/197 461/538/197 462/547/197 +f 515/549/198 520/604/198 519/550/198 +f 466/552/197 464/559/197 463/553/197 +f 518/555/197 522/606/197 521/556/197 +f 466/552/202 470/700/202 469/558/202 +f 463/560/201 468/565/201 467/561/201 +f 465/562/200 467/561/200 470/563/200 +f 464/559/199 469/558/199 468/565/199 +f 473/566/197 474/701/197 472/567/197 +f 473/566/200 492/702/200 497/569/200 +f 495/571/198 498/576/198 491/572/198 +f 472/574/199 496/703/199 493/575/199 +f 496/704/202 472/577/202 495/571/202 +f 472/577/202 474/705/202 498/576/202 +f 474/705/202 497/706/202 498/576/202 +f 477/578/197 478/707/197 476/579/197 +f 481/581/198 482/590/198 479/582/198 +f 478/584/203 482/590/203 481/581/203 +f 485/586/197 486/708/197 484/587/197 +f 477/589/200 479/582/200 482/590/200 +f 475/580/199 476/579/199 481/581/199 +f 489/592/198 490/598/198 487/593/198 +f 486/595/203 490/598/203 489/592/203 +f 485/597/200 487/593/200 490/598/200 +f 483/588/199 484/587/199 489/592/199 +f 496/600/204 495/571/204 494/573/204 +f 492/602/205 491/572/205 498/576/205 +f 492/702/201 473/566/201 491/572/201 +f 473/566/201 471/568/201 494/573/201 +f 471/568/201 493/575/201 494/573/201 +f 521/556/202 522/606/202 519/550/202 +f 517/605/200 519/550/200 522/606/200 +f 516/608/199 521/556/199 520/604/199 +f 514/611/197 513/709/197 507/710/197 +f 507/710/197 508/711/197 514/611/197 +f 508/711/197 509/612/197 514/611/197 +f 509/612/197 510/712/197 511/713/197 +f 511/713/197 512/610/197 509/612/197 +f 804/614/197 803/714/197 797/715/197 +f 797/715/197 798/716/197 804/614/197 +f 798/716/197 799/615/197 804/614/197 +f 799/615/197 800/717/197 801/718/197 +f 801/718/197 802/613/197 799/615/197 +f 820/617/197 819/719/197 813/720/197 +f 813/720/197 814/721/197 820/617/197 +f 814/721/197 815/618/197 820/617/197 +f 815/618/197 816/722/197 817/723/197 +f 817/723/197 818/616/197 815/618/197 +f 821/619/198 826/625/198 825/620/198 +f 824/622/197 828/627/197 827/623/197 +f 827/623/202 828/627/202 825/620/202 +f 823/626/200 825/620/200 828/627/200 +f 822/629/199 827/623/199 826/625/199 +f 829/631/198 834/637/198 833/632/198 +f 832/634/197 836/639/197 835/635/197 +f 835/635/202 836/639/202 833/632/202 +f 831/638/200 833/632/200 836/639/200 +f 830/641/199 835/635/199 834/637/199 +f 839/643/197 840/724/197 838/644/197 +f 843/646/198 844/652/198 841/647/198 +f 840/649/203 844/652/203 843/646/203 +f 839/651/200 841/647/200 844/652/200 +f 837/645/199 838/644/199 843/646/199 +s 1 +f 316/454/206 331/496/207 315/457/207 +f 309/660/201 324/514/208 308/477/208 +f 317/460/202 332/494/206 316/454/206 +f 310/484/209 325/520/201 309/481/201 +f 318/459/210 333/497/202 317/460/202 +f 311/487/211 326/518/209 310/484/209 +f 319/493/212 334/499/210 318/459/210 +f 312/490/213 327/525/211 311/487/211 +f 320/471/214 335/505/212 319/493/212 +f 313/467/199 328/523/213 312/490/213 +f 306/473/215 321/508/200 305/470/200 +f 305/470/200 336/503/214 320/471/214 +f 314/462/216 329/526/199 313/467/199 +f 307/475/217 322/513/215 306/473/215 +f 315/457/207 330/528/216 314/462/216 +f 308/477/208 323/511/217 307/475/217 +f 348/662/218 363/725/219 347/495/219 +f 349/663/220 364/726/218 348/498/218 +f 350/664/221 365/727/220 349/500/220 +f 351/501/222 366/728/221 350/502/221 +f 352/665/223 367/729/222 351/504/222 +f 337/506/224 368/730/223 352/507/223 +f 337/510/224 354/731/225 353/732/224 +f 339/666/226 354/733/225 338/512/225 +f 340/667/227 355/734/226 339/515/226 +f 341/516/228 356/735/227 340/517/227 +f 342/669/229 357/736/228 341/519/228 +f 343/521/230 358/737/229 342/522/229 +f 343/524/230 360/738/231 359/739/230 +f 344/527/231 361/740/232 360/741/231 +f 345/529/232 362/742/233 361/743/232 +f 346/531/233 363/744/219 362/745/233 +f 369/746/234 303/657/235 304/472/234 +f 289/469/236 369/747/234 304/656/234 +f 383/748/237 289/661/236 290/492/237 +f 382/749/238 290/464/237 291/465/238 +f 381/750/239 291/655/238 292/458/239 +f 293/455/240 381/751/239 292/453/239 +f 294/456/241 380/752/240 293/654/240 +f 378/753/242 294/461/241 295/463/242 +f 377/754/243 295/466/242 296/468/243 +f 297/491/244 377/755/243 296/489/243 +f 298/488/245 376/756/246 297/486/244 +f 299/485/247 375/757/245 298/483/245 +f 300/482/248 374/758/247 299/480/247 +f 301/479/249 373/759/248 300/478/248 +f 371/760/250 301/659/249 302/476/250 +f 370/761/235 302/658/250 303/474/235 +f 398/762/251 406/763/252 405/764/253 +f 392/765/217 399/766/254 391/767/200 +f 390/768/212 397/769/255 389/770/202 +f 388/771/207 395/772/256 387/773/199 +f 386/774/211 394/775/257 385/776/201 +f 385/777/201 400/778/258 392/765/217 +f 391/767/200 398/762/251 390/768/212 +f 389/770/202 396/779/259 388/771/207 +f 387/773/199 393/780/260 386/774/211 +f 397/769/255 403/781/261 396/779/259 +f 395/782/256 401/783/262 393/784/260 +f 399/785/254 407/786/263 406/763/252 +f 397/769/255 405/764/253 404/787/203 +f 396/779/259 402/788/264 395/782/256 +f 406/763/252 412/789/265 405/764/253 +f 404/787/203 410/790/266 403/781/261 +f 401/783/262 409/791/267 408/792/268 +f 407/786/263 413/793/269 406/763/252 +f 405/764/253 411/794/270 404/787/203 +f 402/788/264 410/790/266 409/791/267 +f 400/795/258 394/796/257 407/786/263 +f 407/786/263 394/796/257 414/797/271 +f 393/784/260 401/783/262 394/798/257 +f 401/783/262 408/792/268 394/798/257 +f 411/794/270 417/799/204 410/790/266 +f 408/800/268 415/801/199 416/802/272 +f 408/800/268 422/803/197 394/804/257 +f 414/805/271 420/806/200 413/807/269 +f 414/805/271 422/808/197 421/809/273 +f 411/794/270 419/810/205 418/811/198 +f 410/790/266 415/801/199 409/812/267 +f 413/807/269 419/810/205 412/789/265 +f 434/813/206 449/814/207 433/815/207 +f 427/816/201 442/817/208 426/818/208 +f 435/819/202 450/820/206 434/813/206 +f 428/821/209 443/822/201 427/823/201 +f 436/824/210 451/825/202 435/819/202 +f 429/826/211 444/827/209 428/821/209 +f 437/828/212 452/829/210 436/824/210 +f 430/830/213 445/831/211 429/826/211 +f 438/832/214 453/833/212 437/828/212 +f 431/834/199 446/835/213 430/830/213 +f 424/836/215 439/837/200 423/838/200 +f 423/838/200 454/839/214 438/832/214 +f 432/840/216 447/841/199 431/834/199 +f 425/842/217 440/843/215 424/836/215 +f 433/815/207 448/844/216 432/840/216 +f 426/818/208 441/845/217 425/842/217 +f 514/846/217 500/847/200 513/848/200 +f 509/849/207 503/850/199 510/851/199 +f 510/851/199 502/852/211 511/853/211 +f 513/848/200 506/854/212 507/855/212 +f 511/853/211 501/856/201 512/857/201 +f 508/858/202 504/859/207 509/849/207 +f 512/857/201 499/860/217 514/846/217 +f 507/855/212 505/861/202 508/862/202 +f 537/863/274 543/864/275 536/865/276 +f 530/866/207 537/867/274 529/868/199 +f 528/869/211 535/870/277 527/871/201 +f 526/872/217 533/873/278 525/874/200 +f 524/875/212 532/876/279 523/877/202 +f 523/878/202 538/879/280 530/866/207 +f 529/868/199 536/865/276 528/869/211 +f 527/871/201 534/880/281 526/872/217 +f 525/874/200 531/881/282 524/875/212 +f 535/870/277 541/882/283 534/880/281 +f 533/883/278 539/884/284 531/885/282 +f 537/863/274 545/886/285 544/887/286 +f 535/870/277 543/864/275 542/888/287 +f 534/880/281 540/889/288 533/883/278 +f 544/887/286 550/890/289 543/864/275 +f 542/888/287 548/891/290 541/882/283 +f 539/884/284 547/892/291 546/893/292 +f 545/886/285 551/894/293 544/887/286 +f 542/888/287 550/890/289 549/895/294 +f 540/889/288 548/891/290 547/892/291 +f 538/896/280 532/897/279 545/886/285 +f 545/886/285 532/897/279 552/898/295 +f 531/885/282 539/884/284 532/899/279 +f 539/884/284 546/893/292 532/899/279 +f 549/895/294 555/900/205 548/891/290 +f 546/901/292 553/902/200 554/903/273 +f 546/901/292 560/904/197 532/905/279 +f 552/906/295 558/907/199 551/908/293 +f 552/906/295 560/909/197 559/910/272 +f 549/895/294 557/911/204 556/912/198 +f 548/891/290 553/902/200 547/913/291 +f 551/908/293 557/911/204 550/890/289 +f 574/914/296 582/915/297 581/916/298 +f 568/917/211 575/918/299 567/919/201 +f 566/920/217 573/921/300 565/922/200 +f 564/923/212 571/924/301 563/925/202 +f 562/926/207 570/927/272 561/928/199 +f 561/929/199 576/930/302 568/917/211 +f 567/919/201 574/914/296 566/920/217 +f 565/922/200 572/931/303 564/923/212 +f 563/925/202 569/932/304 562/926/207 +f 573/921/300 579/933/305 572/931/303 +f 571/934/301 577/935/306 569/936/304 +f 575/937/299 583/938/307 582/915/297 +f 573/921/300 581/916/298 580/939/205 +f 572/931/303 578/940/308 571/934/301 +f 582/915/297 588/941/309 581/916/298 +f 580/939/205 586/942/310 579/933/305 +f 577/935/306 585/943/311 584/944/312 +f 583/938/307 589/945/313 582/915/297 +f 581/916/298 587/946/314 580/939/205 +f 578/940/308 586/942/310 585/943/311 +f 576/947/302 570/948/272 583/938/307 +f 583/938/307 570/948/272 590/949/315 +f 569/936/304 577/935/306 570/950/272 +f 577/935/306 584/944/312 570/950/272 +f 587/946/314 593/951/203 586/942/310 +f 584/952/312 591/953/202 592/954/279 +f 584/952/312 598/955/197 570/956/272 +f 590/957/315 596/958/201 589/959/313 +f 590/957/315 598/960/197 597/961/257 +f 587/946/314 595/962/287 594/963/198 +f 586/942/310 591/953/202 585/964/311 +f 589/959/313 595/962/287 588/941/309 +f 612/965/316 620/966/317 619/967/318 +f 606/968/212 613/969/319 605/970/202 +f 604/971/207 611/972/320 603/973/199 +f 602/974/211 609/975/321 601/976/201 +f 600/977/217 608/978/273 599/979/200 +f 599/980/200 614/981/322 606/968/212 +f 605/970/202 612/965/316 604/971/207 +f 603/973/199 610/982/323 602/974/211 +f 601/976/201 607/983/324 600/977/217 +f 611/972/320 617/984/325 610/982/323 +f 609/985/321 615/986/326 607/987/324 +f 613/988/319 621/989/327 620/966/317 +f 611/972/320 619/967/318 618/990/204 +f 610/982/323 616/991/328 609/985/321 +f 619/967/318 627/992/329 626/993/330 +f 618/990/204 624/994/331 617/984/325 +f 615/986/326 623/995/332 622/996/333 +f 621/989/327 627/992/329 620/966/317 +f 619/967/318 625/997/334 618/990/204 +f 616/991/328 624/994/331 623/995/332 +f 614/998/322 608/999/273 621/989/327 +f 621/989/327 608/999/273 628/1000/335 +f 607/987/324 615/986/326 608/1001/273 +f 615/986/326 622/996/333 608/1001/273 +f 625/997/334 631/1002/287 624/994/331 +f 622/1003/333 629/1004/201 630/1005/257 +f 622/1003/333 636/1006/197 608/1007/273 +f 628/1008/335 634/1009/202 627/1010/329 +f 628/1008/335 636/1011/197 635/1012/279 +f 625/997/334 633/1013/203 632/1014/198 +f 624/994/331 629/1004/201 623/1015/332 +f 627/1010/329 633/1013/203 626/993/330 +f 650/1016/336 658/1017/337 657/1018/338 +f 644/1019/201 651/1020/339 643/1021/217 +f 642/1022/200 649/1023/340 641/1024/212 +f 640/1025/202 647/1026/341 639/1027/207 +f 638/1028/199 646/1029/342 637/1030/211 +f 637/1031/211 652/1032/343 644/1019/201 +f 643/1021/217 650/1016/336 642/1022/200 +f 641/1024/212 648/1033/344 640/1025/202 +f 639/1027/207 645/1034/345 638/1028/199 +f 649/1023/340 655/1035/346 648/1033/344 +f 645/1036/345 654/1037/347 653/1038/348 +f 652/1039/343 658/1017/337 651/1040/339 +f 650/1016/336 656/1041/349 649/1023/340 +f 648/1033/344 654/1037/347 647/1042/341 +f 657/1018/338 665/1043/350 664/1044/351 +f 656/1041/349 662/1045/352 655/1035/346 +f 653/1038/348 661/1046/353 660/1047/354 +f 659/1048/355 665/1043/350 658/1017/337 +f 657/1018/338 663/1049/356 656/1041/349 +f 655/1035/346 661/1046/353 654/1037/347 +f 652/1039/343 646/1050/342 659/1048/355 +f 659/1048/355 646/1050/342 666/1051/357 +f 645/1036/345 653/1038/348 646/1052/342 +f 653/1038/348 660/1047/354 646/1052/342 +f 663/1049/356 669/1053/358 662/1045/352 +f 660/1054/354 667/1055/207 668/1056/359 +f 660/1054/354 674/1057/197 646/1058/342 +f 666/1059/357 672/1060/217 665/1061/350 +f 666/1059/357 674/1062/197 673/1063/360 +f 663/1049/356 671/1064/361 670/1065/198 +f 662/1045/352 667/1055/207 661/1066/353 +f 665/1061/350 671/1064/361 664/1044/351 +f 688/1067/362 696/1068/363 695/1069/364 +f 682/1070/202 689/1071/365 681/1072/207 +f 680/1073/199 687/1074/366 679/1075/211 +f 678/1076/201 685/1077/367 677/1078/217 +f 676/1079/200 684/1080/368 675/1081/212 +f 675/1082/212 690/1083/369 682/1070/202 +f 681/1072/207 688/1067/362 680/1073/199 +f 679/1075/211 686/1084/370 678/1076/201 +f 677/1078/217 683/1085/371 676/1079/200 +f 687/1074/366 693/1086/372 686/1084/370 +f 685/1087/367 691/1088/373 683/1089/371 +f 690/1090/369 696/1068/363 689/1091/365 +f 688/1067/362 694/1092/374 687/1074/366 +f 685/1087/367 693/1086/372 692/1093/375 +f 696/1068/363 702/1094/376 695/1069/364 +f 694/1092/374 700/1095/377 693/1086/372 +f 691/1088/373 699/1096/378 698/1097/379 +f 697/1098/380 703/1099/381 696/1068/363 +f 695/1069/364 701/1100/382 694/1092/374 +f 692/1093/375 700/1095/377 699/1096/378 +f 690/1090/369 684/1101/368 697/1098/380 +f 697/1098/380 684/1101/368 704/1102/383 +f 683/1089/371 691/1088/373 684/1103/368 +f 691/1088/373 698/1097/379 684/1103/368 +f 701/1100/382 707/1104/361 700/1095/377 +f 698/1105/379 705/1106/217 706/1107/360 +f 698/1105/379 712/1108/197 684/1109/368 +f 704/1110/383 710/1111/207 703/1112/381 +f 704/1110/383 712/1113/197 711/1114/359 +f 701/1100/382 709/1115/358 708/1116/198 +f 700/1095/377 705/1106/217 699/1117/378 +f 703/1112/381 709/1115/358 702/1094/376 +f 726/1118/384 734/1119/385 733/1120/386 +f 720/1121/199 727/1122/387 719/1123/211 +f 718/1124/201 725/1125/388 717/1126/217 +f 716/1127/200 723/1128/389 715/1129/212 +f 714/1130/202 722/1131/359 713/1132/207 +f 713/1133/207 728/1134/390 720/1121/199 +f 719/1123/211 726/1118/384 718/1124/201 +f 717/1126/217 724/1135/391 716/1127/200 +f 715/1129/212 721/1136/392 714/1130/202 +f 725/1125/388 731/1137/393 724/1135/391 +f 721/1138/392 730/1139/394 729/1140/395 +f 728/1141/390 734/1119/385 727/1142/387 +f 726/1118/384 732/1143/361 725/1125/388 +f 724/1135/391 730/1139/394 723/1144/389 +f 733/1120/386 741/1145/396 740/1146/397 +f 732/1143/361 738/1147/398 731/1137/393 +f 729/1140/395 737/1148/399 736/1149/400 +f 735/1150/401 741/1145/396 734/1119/385 +f 733/1120/386 739/1151/402 732/1143/361 +f 731/1137/393 737/1148/399 730/1139/394 +f 728/1141/390 722/1152/359 735/1150/401 +f 735/1150/401 722/1152/359 742/1153/403 +f 721/1138/392 729/1140/395 722/1154/359 +f 729/1140/395 736/1149/400 722/1154/359 +f 739/1151/402 745/1155/349 738/1147/398 +f 736/1156/400 743/1157/212 744/1158/368 +f 736/1156/400 750/1159/197 722/1160/359 +f 742/1161/403 748/1162/211 741/1163/396 +f 742/1161/403 750/1164/197 749/1165/342 +f 739/1151/402 747/1166/374 746/1167/198 +f 738/1147/398 743/1157/212 737/1168/399 +f 741/1163/396 747/1166/374 740/1146/397 +f 764/1169/404 772/1170/405 771/1171/406 +f 758/1172/200 765/1173/407 757/1174/212 +f 756/1175/202 763/1176/408 755/1177/207 +f 754/1178/199 761/1179/409 753/1180/211 +f 752/1181/201 760/1182/360 751/1183/217 +f 751/1184/217 766/1185/410 758/1172/200 +f 757/1174/212 764/1169/404 756/1175/202 +f 755/1177/207 762/1186/411 754/1178/199 +f 753/1180/211 759/1187/412 752/1181/201 +f 763/1176/408 769/1188/413 762/1186/411 +f 761/1189/409 767/1190/414 759/1191/412 +f 766/1192/410 772/1170/405 765/1193/407 +f 764/1169/404 770/1194/358 763/1176/408 +f 761/1189/409 769/1188/413 768/1195/415 +f 772/1170/405 778/1196/416 771/1171/406 +f 770/1194/358 776/1197/417 769/1188/413 +f 767/1190/414 775/1198/418 774/1199/419 +f 773/1200/420 779/1201/421 772/1170/405 +f 771/1171/406 777/1202/422 770/1194/358 +f 768/1195/415 776/1197/417 775/1198/418 +f 766/1192/410 760/1203/360 773/1200/420 +f 773/1200/420 760/1203/360 780/1204/423 +f 759/1191/412 767/1190/414 760/1205/360 +f 767/1190/414 774/1199/419 760/1205/360 +f 777/1202/422 783/1206/374 776/1197/417 +f 774/1207/419 781/1208/211 782/1209/342 +f 774/1207/419 788/1210/197 760/1211/360 +f 780/1212/423 786/1213/212 779/1214/421 +f 780/1212/423 788/1215/197 787/1216/368 +f 777/1202/422 785/1217/349 784/1218/198 +f 776/1197/417 781/1208/211 775/1219/418 +f 778/1196/416 786/1213/212 785/1217/349 +f 804/1220/217 790/1221/200 803/1222/200 +f 799/1223/207 793/1224/199 800/1225/199 +f 800/1225/199 792/1226/211 801/1227/211 +f 803/1222/200 796/1228/212 797/1229/212 +f 801/1227/211 791/1230/201 802/1231/201 +f 798/1232/202 794/1233/207 799/1223/207 +f 802/1231/201 789/1234/217 804/1220/217 +f 797/1229/212 795/1235/202 798/1236/202 +f 820/1237/217 806/1238/200 819/1239/200 +f 815/1240/207 809/1241/199 816/1242/199 +f 816/1242/199 808/1243/211 817/1244/211 +f 819/1239/200 812/1245/212 813/1246/212 +f 817/1244/211 807/1247/201 818/1248/201 +f 814/1249/202 810/1250/207 815/1240/207 +f 818/1248/201 805/1251/217 820/1237/217 +f 813/1246/212 811/1252/202 814/1253/202 +f 871/1254/217 856/1255/208 855/1256/217 +f 864/1257/206 849/1258/202 848/1259/206 +f 872/1260/208 857/1261/201 856/1255/208 +f 865/1262/202 850/1263/210 849/1264/202 +f 873/1265/201 858/1266/209 857/1261/201 +f 866/1267/210 851/1268/212 850/1263/210 +f 874/1269/209 859/1270/211 858/1266/209 +f 867/1271/212 852/1272/214 851/1268/212 +f 875/1273/211 860/1274/213 859/1270/211 +f 868/1275/214 853/1276/200 852/1272/214 +f 861/1277/199 846/1278/216 845/1279/199 +f 876/1280/213 845/1279/199 860/1274/213 +f 869/1281/200 854/1282/215 853/1276/200 +f 862/1283/216 847/1284/207 846/1278/216 +f 870/1285/215 855/1256/217 854/1282/215 +f 863/1286/207 848/1259/206 847/1284/207 +f 316/454/206 332/494/206 331/496/207 +f 309/660/201 325/668/201 324/514/208 +f 317/460/202 333/497/202 332/494/206 +f 310/484/209 326/518/209 325/520/201 +f 318/459/210 334/499/210 333/497/202 +f 311/487/211 327/525/211 326/518/209 +f 319/493/212 335/505/212 334/499/210 +f 312/490/213 328/523/213 327/525/211 +f 320/471/214 336/503/214 335/505/212 +f 313/467/199 329/526/199 328/523/213 +f 306/473/215 322/513/215 321/508/200 +f 305/470/200 321/508/200 336/503/214 +f 314/462/216 330/528/216 329/526/199 +f 307/475/217 323/511/217 322/513/215 +f 315/457/207 331/496/207 330/528/216 +f 308/477/208 324/514/208 323/511/217 +f 348/662/218 364/1287/218 363/725/219 +f 349/663/220 365/1288/220 364/726/218 +f 350/664/221 366/1289/221 365/727/220 +f 351/501/222 367/1290/222 366/728/221 +f 352/665/223 368/1291/223 367/729/222 +f 337/506/224 353/1292/224 368/730/223 +f 337/510/224 338/509/225 354/731/225 +f 339/666/226 355/1293/226 354/733/225 +f 340/667/227 356/1294/227 355/734/226 +f 341/516/228 357/1295/228 356/735/227 +f 342/669/229 358/1296/229 357/736/228 +f 343/521/230 359/1297/230 358/737/229 +f 343/524/230 344/670/231 360/738/231 +f 344/527/231 345/671/232 361/740/232 +f 345/529/232 346/672/233 362/742/233 +f 346/531/233 347/530/219 363/744/219 +f 369/746/234 370/1298/235 303/657/235 +f 289/469/236 384/1299/236 369/747/234 +f 383/748/237 384/1300/236 289/661/236 +f 382/749/238 383/1301/237 290/464/237 +f 381/750/239 382/1302/238 291/655/238 +f 293/455/240 380/1303/240 381/751/239 +f 294/456/241 379/1304/241 380/752/240 +f 378/753/242 379/1305/241 294/461/241 +f 377/754/243 378/1306/242 295/466/242 +f 297/491/244 376/1307/246 377/755/243 +f 298/488/245 375/1308/245 376/756/246 +f 299/485/247 374/1309/247 375/757/245 +f 300/482/248 373/1310/248 374/758/247 +f 301/479/249 372/1311/249 373/759/248 +f 371/760/250 372/1312/249 301/659/249 +f 370/761/235 371/1313/250 302/658/250 +f 398/762/251 399/785/254 406/763/252 +f 392/765/217 400/778/258 399/766/254 +f 390/768/212 398/762/251 397/769/255 +f 388/771/207 396/779/259 395/772/256 +f 386/774/211 393/780/260 394/775/257 +f 385/777/201 394/1314/257 400/778/258 +f 391/767/200 399/766/254 398/762/251 +f 389/770/202 397/769/255 396/779/259 +f 387/773/199 395/772/256 393/780/260 +f 397/769/255 404/787/203 403/781/261 +f 395/782/256 402/788/264 401/783/262 +f 399/785/254 400/795/258 407/786/263 +f 397/769/255 398/762/251 405/764/253 +f 396/779/259 403/781/261 402/788/264 +f 406/763/252 413/793/269 412/789/265 +f 404/787/203 411/794/270 410/790/266 +f 401/783/262 402/788/264 409/791/267 +f 407/786/263 414/797/271 413/793/269 +f 405/764/253 412/789/265 411/794/270 +f 402/788/264 403/781/261 410/790/266 +f 411/794/270 418/811/198 417/799/204 +f 408/800/268 409/812/267 415/801/199 +f 408/800/268 416/802/272 422/803/197 +f 414/805/271 421/809/273 420/806/200 +f 414/805/271 394/1315/257 422/808/197 +f 411/794/270 412/789/265 419/810/205 +f 410/790/266 417/799/204 415/801/199 +f 413/807/269 420/806/200 419/810/205 +f 434/813/206 450/820/206 449/814/207 +f 427/816/201 443/1316/201 442/817/208 +f 435/819/202 451/825/202 450/820/206 +f 428/821/209 444/827/209 443/822/201 +f 436/824/210 452/829/210 451/825/202 +f 429/826/211 445/831/211 444/827/209 +f 437/828/212 453/833/212 452/829/210 +f 430/830/213 446/835/213 445/831/211 +f 438/832/214 454/839/214 453/833/212 +f 431/834/199 447/841/199 446/835/213 +f 424/836/215 440/843/215 439/837/200 +f 423/838/200 439/837/200 454/839/214 +f 432/840/216 448/844/216 447/841/199 +f 425/842/217 441/845/217 440/843/215 +f 433/815/207 449/814/207 448/844/216 +f 426/818/208 442/817/208 441/845/217 +f 514/846/217 499/860/217 500/847/200 +f 509/849/207 504/859/207 503/850/199 +f 510/851/199 503/850/199 502/852/211 +f 513/848/200 500/847/200 506/854/212 +f 511/853/211 502/852/211 501/856/201 +f 508/858/202 505/1317/202 504/859/207 +f 512/857/201 501/856/201 499/860/217 +f 507/855/212 506/854/212 505/861/202 +f 537/863/274 544/887/286 543/864/275 +f 530/866/207 538/879/280 537/867/274 +f 528/869/211 536/865/276 535/870/277 +f 526/872/217 534/880/281 533/873/278 +f 524/875/212 531/881/282 532/876/279 +f 523/878/202 532/1318/279 538/879/280 +f 529/868/199 537/867/274 536/865/276 +f 527/871/201 535/870/277 534/880/281 +f 525/874/200 533/873/278 531/881/282 +f 535/870/277 542/888/287 541/882/283 +f 533/883/278 540/889/288 539/884/284 +f 537/863/274 538/896/280 545/886/285 +f 535/870/277 536/865/276 543/864/275 +f 534/880/281 541/882/283 540/889/288 +f 544/887/286 551/894/293 550/890/289 +f 542/888/287 549/895/294 548/891/290 +f 539/884/284 540/889/288 547/892/291 +f 545/886/285 552/898/295 551/894/293 +f 542/888/287 543/864/275 550/890/289 +f 540/889/288 541/882/283 548/891/290 +f 549/895/294 556/912/198 555/900/205 +f 546/901/292 547/913/291 553/902/200 +f 546/901/292 554/903/273 560/904/197 +f 552/906/295 559/910/272 558/907/199 +f 552/906/295 532/1319/279 560/909/197 +f 549/895/294 550/890/289 557/911/204 +f 548/891/290 555/900/205 553/902/200 +f 551/908/293 558/907/199 557/911/204 +f 574/914/296 575/937/299 582/915/297 +f 568/917/211 576/930/302 575/918/299 +f 566/920/217 574/914/296 573/921/300 +f 564/923/212 572/931/303 571/924/301 +f 562/926/207 569/932/304 570/927/272 +f 561/929/199 570/1320/272 576/930/302 +f 567/919/201 575/918/299 574/914/296 +f 565/922/200 573/921/300 572/931/303 +f 563/925/202 571/924/301 569/932/304 +f 573/921/300 580/939/205 579/933/305 +f 571/934/301 578/940/308 577/935/306 +f 575/937/299 576/947/302 583/938/307 +f 573/921/300 574/914/296 581/916/298 +f 572/931/303 579/933/305 578/940/308 +f 582/915/297 589/945/313 588/941/309 +f 580/939/205 587/946/314 586/942/310 +f 577/935/306 578/940/308 585/943/311 +f 583/938/307 590/949/315 589/945/313 +f 581/916/298 588/941/309 587/946/314 +f 578/940/308 579/933/305 586/942/310 +f 587/946/314 594/963/198 593/951/203 +f 584/952/312 585/964/311 591/953/202 +f 584/952/312 592/954/279 598/955/197 +f 590/957/315 597/961/257 596/958/201 +f 590/957/315 570/1321/272 598/960/197 +f 587/946/314 588/941/309 595/962/287 +f 586/942/310 593/951/203 591/953/202 +f 589/959/313 596/958/201 595/962/287 +f 612/965/316 613/988/319 620/966/317 +f 606/968/212 614/981/322 613/969/319 +f 604/971/207 612/965/316 611/972/320 +f 602/974/211 610/982/323 609/975/321 +f 600/977/217 607/983/324 608/978/273 +f 599/980/200 608/1322/273 614/981/322 +f 605/970/202 613/969/319 612/965/316 +f 603/973/199 611/972/320 610/982/323 +f 601/976/201 609/975/321 607/983/324 +f 611/972/320 618/990/204 617/984/325 +f 609/985/321 616/991/328 615/986/326 +f 613/988/319 614/998/322 621/989/327 +f 611/972/320 612/965/316 619/967/318 +f 610/982/323 617/984/325 616/991/328 +f 619/967/318 620/966/317 627/992/329 +f 618/990/204 625/997/334 624/994/331 +f 615/986/326 616/991/328 623/995/332 +f 621/989/327 628/1000/335 627/992/329 +f 619/967/318 626/993/330 625/997/334 +f 616/991/328 617/984/325 624/994/331 +f 625/997/334 632/1014/198 631/1002/287 +f 622/1003/333 623/1015/332 629/1004/201 +f 622/1003/333 630/1005/257 636/1006/197 +f 628/1008/335 635/1012/279 634/1009/202 +f 628/1008/335 608/1323/273 636/1011/197 +f 625/997/334 626/993/330 633/1013/203 +f 624/994/331 631/1002/287 629/1004/201 +f 627/1010/329 634/1009/202 633/1013/203 +f 650/1016/336 651/1040/339 658/1017/337 +f 644/1019/201 652/1032/343 651/1020/339 +f 642/1022/200 650/1016/336 649/1023/340 +f 640/1025/202 648/1033/344 647/1026/341 +f 638/1028/199 645/1034/345 646/1029/342 +f 637/1031/211 646/1324/342 652/1032/343 +f 643/1021/217 651/1020/339 650/1016/336 +f 641/1024/212 649/1023/340 648/1033/344 +f 639/1027/207 647/1026/341 645/1034/345 +f 649/1023/340 656/1041/349 655/1035/346 +f 645/1036/345 647/1042/341 654/1037/347 +f 652/1039/343 659/1048/355 658/1017/337 +f 650/1016/336 657/1018/338 656/1041/349 +f 648/1033/344 655/1035/346 654/1037/347 +f 657/1018/338 658/1017/337 665/1043/350 +f 656/1041/349 663/1049/356 662/1045/352 +f 653/1038/348 654/1037/347 661/1046/353 +f 659/1048/355 666/1051/357 665/1043/350 +f 657/1018/338 664/1044/351 663/1049/356 +f 655/1035/346 662/1045/352 661/1046/353 +f 663/1049/356 670/1065/198 669/1053/358 +f 660/1054/354 661/1066/353 667/1055/207 +f 660/1054/354 668/1056/359 674/1057/197 +f 666/1059/357 673/1063/360 672/1060/217 +f 666/1059/357 646/1325/342 674/1062/197 +f 663/1049/356 664/1044/351 671/1064/361 +f 662/1045/352 669/1053/358 667/1055/207 +f 665/1061/350 672/1060/217 671/1064/361 +f 688/1067/362 689/1091/365 696/1068/363 +f 682/1070/202 690/1083/369 689/1071/365 +f 680/1073/199 688/1067/362 687/1074/366 +f 678/1076/201 686/1084/370 685/1077/367 +f 676/1079/200 683/1085/371 684/1080/368 +f 675/1082/212 684/1326/368 690/1083/369 +f 681/1072/207 689/1071/365 688/1067/362 +f 679/1075/211 687/1074/366 686/1084/370 +f 677/1078/217 685/1077/367 683/1085/371 +f 687/1074/366 694/1092/374 693/1086/372 +f 685/1087/367 692/1093/375 691/1088/373 +f 690/1090/369 697/1098/380 696/1068/363 +f 688/1067/362 695/1069/364 694/1092/374 +f 685/1087/367 686/1084/370 693/1086/372 +f 696/1068/363 703/1099/381 702/1094/376 +f 694/1092/374 701/1100/382 700/1095/377 +f 691/1088/373 692/1093/375 699/1096/378 +f 697/1098/380 704/1102/383 703/1099/381 +f 695/1069/364 702/1094/376 701/1100/382 +f 692/1093/375 693/1086/372 700/1095/377 +f 701/1100/382 708/1116/198 707/1104/361 +f 698/1105/379 699/1117/378 705/1106/217 +f 698/1105/379 706/1107/360 712/1108/197 +f 704/1110/383 711/1114/359 710/1111/207 +f 704/1110/383 684/1327/368 712/1113/197 +f 701/1100/382 702/1094/376 709/1115/358 +f 700/1095/377 707/1104/361 705/1106/217 +f 703/1112/381 710/1111/207 709/1115/358 +f 726/1118/384 727/1142/387 734/1119/385 +f 720/1121/199 728/1134/390 727/1122/387 +f 718/1124/201 726/1118/384 725/1125/388 +f 716/1127/200 724/1135/391 723/1128/389 +f 714/1130/202 721/1136/392 722/1131/359 +f 713/1133/207 722/1328/359 728/1134/390 +f 719/1123/211 727/1122/387 726/1118/384 +f 717/1126/217 725/1125/388 724/1135/391 +f 715/1129/212 723/1128/389 721/1136/392 +f 725/1125/388 732/1143/361 731/1137/393 +f 721/1138/392 723/1144/389 730/1139/394 +f 728/1141/390 735/1150/401 734/1119/385 +f 726/1118/384 733/1120/386 732/1143/361 +f 724/1135/391 731/1137/393 730/1139/394 +f 733/1120/386 734/1119/385 741/1145/396 +f 732/1143/361 739/1151/402 738/1147/398 +f 729/1140/395 730/1139/394 737/1148/399 +f 735/1150/401 742/1153/403 741/1145/396 +f 733/1120/386 740/1146/397 739/1151/402 +f 731/1137/393 738/1147/398 737/1148/399 +f 739/1151/402 746/1167/198 745/1155/349 +f 736/1156/400 737/1168/399 743/1157/212 +f 736/1156/400 744/1158/368 750/1159/197 +f 742/1161/403 749/1165/342 748/1162/211 +f 742/1161/403 722/1329/359 750/1164/197 +f 739/1151/402 740/1146/397 747/1166/374 +f 738/1147/398 745/1155/349 743/1157/212 +f 741/1163/396 748/1162/211 747/1166/374 +f 764/1169/404 765/1193/407 772/1170/405 +f 758/1172/200 766/1185/410 765/1173/407 +f 756/1175/202 764/1169/404 763/1176/408 +f 754/1178/199 762/1186/411 761/1179/409 +f 752/1181/201 759/1187/412 760/1182/360 +f 751/1184/217 760/1330/360 766/1185/410 +f 757/1174/212 765/1173/407 764/1169/404 +f 755/1177/207 763/1176/408 762/1186/411 +f 753/1180/211 761/1179/409 759/1187/412 +f 763/1176/408 770/1194/358 769/1188/413 +f 761/1189/409 768/1195/415 767/1190/414 +f 766/1192/410 773/1200/420 772/1170/405 +f 764/1169/404 771/1171/406 770/1194/358 +f 761/1189/409 762/1186/411 769/1188/413 +f 772/1170/405 779/1201/421 778/1196/416 +f 770/1194/358 777/1202/422 776/1197/417 +f 767/1190/414 768/1195/415 775/1198/418 +f 773/1200/420 780/1204/423 779/1201/421 +f 771/1171/406 778/1196/416 777/1202/422 +f 768/1195/415 769/1188/413 776/1197/417 +f 777/1202/422 784/1218/198 783/1206/374 +f 774/1207/419 775/1219/418 781/1208/211 +f 774/1207/419 782/1209/342 788/1210/197 +f 780/1212/423 787/1216/368 786/1213/212 +f 780/1212/423 760/1331/360 788/1215/197 +f 777/1202/422 778/1196/416 785/1217/349 +f 776/1197/417 783/1206/374 781/1208/211 +f 778/1196/416 779/1214/421 786/1213/212 +f 804/1220/217 789/1234/217 790/1221/200 +f 799/1223/207 794/1233/207 793/1224/199 +f 800/1225/199 793/1224/199 792/1226/211 +f 803/1222/200 790/1221/200 796/1228/212 +f 801/1227/211 792/1226/211 791/1230/201 +f 798/1232/202 795/1332/202 794/1233/207 +f 802/1231/201 791/1230/201 789/1234/217 +f 797/1229/212 796/1228/212 795/1235/202 +f 820/1237/217 805/1251/217 806/1238/200 +f 815/1240/207 810/1250/207 809/1241/199 +f 816/1242/199 809/1241/199 808/1243/211 +f 819/1239/200 806/1238/200 812/1245/212 +f 817/1244/211 808/1243/211 807/1247/201 +f 814/1249/202 811/1333/202 810/1250/207 +f 818/1248/201 807/1247/201 805/1251/217 +f 813/1246/212 812/1245/212 811/1252/202 +f 871/1254/217 872/1260/208 856/1255/208 +f 864/1257/206 865/1334/202 849/1258/202 +f 872/1260/208 873/1265/201 857/1261/201 +f 865/1262/202 866/1267/210 850/1263/210 +f 873/1265/201 874/1269/209 858/1266/209 +f 866/1267/210 867/1271/212 851/1268/212 +f 874/1269/209 875/1273/211 859/1270/211 +f 867/1271/212 868/1275/214 852/1272/214 +f 875/1273/211 876/1280/213 860/1274/213 +f 868/1275/214 869/1281/200 853/1276/200 +f 861/1277/199 862/1283/216 846/1278/216 +f 876/1280/213 861/1277/199 845/1279/199 +f 869/1281/200 870/1285/215 854/1282/215 +f 862/1283/216 863/1286/207 847/1284/207 +f 870/1285/215 871/1254/217 855/1256/217 +f 863/1286/207 864/1257/206 848/1259/206 +o Electrode3 +v -0.029029 6.000000 -0.720971 +v 0.062500 6.000000 -0.500000 +v -0.029029 6.000000 -0.279029 +v -0.250000 6.000000 -0.187500 +v -0.470971 6.000000 -0.279029 +v -0.562500 6.000000 -0.500000 +v -0.470971 6.000000 -0.720971 +v -0.250000 6.000000 -0.812500 +v -0.029029 2.250000 -0.720971 +v 0.062500 2.250000 -0.500000 +v -0.029029 2.250000 -0.279029 +v -0.250000 2.250000 -0.187500 +v -0.470971 2.250000 -0.279029 +v -0.562500 2.250000 -0.500000 +v -0.250000 2.250000 -0.812500 +v -0.470971 2.250000 -0.720971 +vt 0.568311 0.634752 +vt 0.582386 0.617182 +vt 0.596462 0.634752 +vt 0.596626 0.634752 +vt 0.600776 0.622246 +vt 0.610795 0.617066 +vt 0.592339 0.647175 +vt 0.582386 0.652321 +vt 0.572434 0.647175 +vt 0.572434 0.622328 +vt 0.592339 0.622328 +vt 0.620814 0.622246 +vt 0.624964 0.634752 +vt 0.620814 0.647258 +vt 0.610795 0.652438 +vt 0.600776 0.647258 +vt 0.568182 0.404255 +vt 0.579545 0.617021 +vt 0.568182 0.617021 +vt 0.579545 0.404255 +vt 0.590909 0.617021 +vt 0.590909 0.404255 +vt 0.602273 0.617021 +vt 0.602273 0.404255 +vt 0.613636 0.617021 +vt 0.613636 0.404255 +vt 0.625000 0.617021 +vt 0.625000 0.404255 +vt 0.636364 0.617021 +vt 0.636364 0.404255 +vt 0.647727 0.617021 +vt 0.647727 0.404255 +vt 0.659091 0.617021 +vt 0.659091 0.404255 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 880/1335/424 878/1336/424 884/1337/424 +f 888/1338/425 889/1339/425 890/1340/425 +f 884/1337/424 883/1341/424 882/1342/424 +f 882/1342/424 881/1343/424 880/1335/424 +f 880/1335/424 879/1344/424 878/1336/424 +f 878/1336/424 877/1345/424 884/1337/424 +f 884/1337/424 882/1342/424 880/1335/424 +f 890/1340/425 892/1346/425 891/1347/425 +f 891/1347/425 885/1348/425 890/1340/425 +f 885/1348/425 886/1349/425 890/1340/425 +f 886/1349/425 887/1350/425 890/1340/425 +f 887/1350/425 888/1338/425 890/1340/425 +s 1 +f 890/1351/426 881/1352/427 882/1353/426 +f 889/1354/427 880/1355/428 881/1352/427 +f 888/1356/428 879/1357/429 880/1355/428 +f 887/1358/429 878/1359/430 879/1357/429 +f 886/1360/430 877/1361/431 878/1359/430 +f 885/1362/431 884/1363/432 877/1361/431 +f 891/1364/432 883/1365/433 884/1363/432 +f 892/1366/433 882/1367/426 883/1365/433 +f 890/1351/426 889/1354/427 881/1352/427 +f 889/1354/427 888/1356/428 880/1355/428 +f 888/1356/428 887/1358/429 879/1357/429 +f 887/1358/429 886/1360/430 878/1359/430 +f 886/1360/430 885/1362/431 877/1361/431 +f 885/1362/431 891/1364/432 884/1363/432 +f 891/1364/432 892/1366/433 883/1365/433 +f 892/1366/433 890/1368/426 882/1367/426 +o Ring3 +v -0.250000 5.250000 -0.812500 +v -0.470971 5.250000 -0.720971 +v -0.562500 5.250000 -0.500000 +v -0.470971 5.250000 -0.279029 +v -0.250000 5.250000 -0.187500 +v -0.029029 5.250000 -0.279029 +v 0.062500 5.250000 -0.500000 +v -0.029029 5.250000 -0.720971 +v -0.029029 5.750000 -0.720971 +v 0.062500 5.750000 -0.500000 +v -0.029029 5.750000 -0.279029 +v -0.250000 5.750000 -0.187500 +v -0.470971 5.750000 -0.279029 +v -0.562500 5.750000 -0.500000 +v -0.470971 5.750000 -0.720971 +v -0.250000 5.750000 -0.812500 +v -0.250000 5.750000 -0.875000 +v -0.515165 5.750000 -0.765165 +v -0.625000 5.750000 -0.500000 +v -0.515165 5.750000 -0.234835 +v -0.250000 5.750000 -0.125000 +v 0.015165 5.750000 -0.234835 +v 0.125000 5.750000 -0.500000 +v 0.015165 5.750000 -0.765165 +v 0.015165 5.250000 -0.765165 +v 0.125000 5.250000 -0.500000 +v 0.015165 5.250000 -0.234835 +v -0.250000 5.250000 -0.125000 +v -0.515165 5.250000 -0.234835 +v -0.625000 5.250000 -0.500000 +v -0.515165 5.250000 -0.765165 +v -0.250000 5.250000 -0.875000 +vt 0.500000 0.663121 +vt 0.488636 0.666667 +vt 0.488636 0.663121 +vt 0.511364 0.663121 +vt 0.500000 0.666667 +vt 0.522727 0.663121 +vt 0.511364 0.666667 +vt 0.534091 0.666667 +vt 0.522727 0.666667 +vt 0.534091 0.663121 +vt 0.545455 0.666667 +vt 0.545455 0.663121 +vt 0.556818 0.666667 +vt 0.568182 0.663121 +vt 0.556818 0.663121 +vt 0.477273 0.663121 +vt 0.477273 0.666667 +vt 0.545455 0.631206 +vt 0.534091 0.634752 +vt 0.534091 0.631206 +vt 0.556818 0.631206 +vt 0.545455 0.634752 +vt 0.568182 0.634752 +vt 0.556818 0.634752 +vt 0.488636 0.631206 +vt 0.477273 0.634752 +vt 0.477273 0.631206 +vt 0.500000 0.634752 +vt 0.488636 0.634752 +vt 0.500000 0.631206 +vt 0.511364 0.634752 +vt 0.511364 0.631206 +vt 0.522727 0.634752 +vt 0.522727 0.631206 +vt 0.568182 0.666667 +vt 0.568182 0.631206 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 1.0000 0.0000 -0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +s off +f 913/1369/434 905/1370/434 912/1371/434 +f 914/1372/434 904/1373/434 913/1369/434 +f 915/1374/434 903/1375/434 914/1372/434 +f 915/1374/434 901/1376/434 902/1377/434 +f 916/1378/434 908/1379/434 901/1376/434 +f 909/1380/434 907/1381/434 908/1379/434 +f 911/1382/434 907/1381/434 910/1383/434 +f 911/1384/434 905/1370/434 906/1385/434 +f 893/1386/435 917/1387/435 900/1388/435 +f 894/1389/435 924/1390/435 893/1386/435 +f 894/1389/435 922/1391/435 923/1392/435 +f 896/1393/435 922/1394/435 895/1395/435 +f 896/1393/435 920/1396/435 921/1397/435 +f 897/1398/435 919/1399/435 920/1396/435 +f 898/1400/435 918/1401/435 919/1399/435 +f 900/1388/435 918/1401/435 899/1402/435 +f 913/1369/434 904/1373/434 905/1370/434 +f 914/1372/434 903/1375/434 904/1373/434 +f 915/1374/434 902/1377/434 903/1375/434 +f 915/1374/434 916/1378/434 901/1376/434 +f 916/1378/434 909/1380/434 908/1379/434 +f 909/1380/434 910/1383/434 907/1381/434 +f 911/1382/434 906/1403/434 907/1381/434 +f 911/1384/434 912/1371/434 905/1370/434 +f 893/1386/435 924/1390/435 917/1387/435 +f 894/1389/435 923/1392/435 924/1390/435 +f 894/1389/435 895/1404/435 922/1391/435 +f 896/1393/435 921/1397/435 922/1394/435 +f 896/1393/435 897/1398/435 920/1396/435 +f 897/1398/435 898/1400/435 919/1399/435 +f 898/1400/435 899/1402/435 918/1401/435 +f 900/1388/435 917/1387/435 918/1401/435 +s 1 +f 917/1387/436 915/1374/437 918/1401/437 +f 919/1399/438 913/1369/439 920/1396/439 +f 921/1397/440 911/1384/441 922/1394/441 +f 923/1392/442 909/1380/443 924/1390/443 +f 924/1390/443 916/1378/436 917/1387/436 +f 922/1391/441 910/1383/442 923/1392/442 +f 920/1396/439 912/1371/440 921/1397/440 +f 918/1401/437 914/1372/438 919/1399/438 +f 917/1387/436 916/1378/436 915/1374/437 +f 919/1399/438 914/1372/438 913/1369/439 +f 921/1397/440 912/1371/440 911/1384/441 +f 923/1392/442 910/1383/442 909/1380/443 +f 924/1390/443 909/1380/443 916/1378/436 +f 922/1391/441 911/1382/441 910/1383/442 +f 920/1396/439 913/1369/439 912/1371/440 +f 918/1401/437 915/1374/437 914/1372/438 +o ContentsCold +v 0.669695 3.250000 -1.616790 +v 1.237436 3.250000 -1.237437 +v 1.616789 3.250000 -0.669696 +v 1.750000 3.250000 0.000000 +v 1.616789 3.250000 0.669696 +v 1.237437 3.250000 1.237437 +v 0.669696 3.250000 1.616789 +v -0.000000 3.250000 1.750000 +v -0.669696 3.250000 1.616789 +v -1.237437 3.250000 1.237437 +v -1.616789 3.250000 0.669696 +v -1.750000 3.250000 0.000000 +v -1.616789 3.250000 -0.669696 +v -1.237437 3.250000 -1.237437 +v -0.669696 3.250000 -1.616789 +v -0.000000 3.250000 -1.750000 +vt 0.428147 0.411878 +vt 0.471166 0.541517 +vt 0.367308 0.595214 +vt 0.341520 0.573706 +vt 0.324288 0.541516 +vt 0.318238 0.503546 +vt 0.324288 0.465576 +vt 0.341520 0.433386 +vt 0.367308 0.411878 +vt 0.397727 0.404325 +vt 0.453935 0.433386 +vt 0.471166 0.465576 +vt 0.477217 0.503546 +vt 0.453935 0.573706 +vt 0.428147 0.595214 +vt 0.397727 0.602767 +vn 0.0000 1.0000 -0.0000 +s off +f 927/1405/444 939/1406/444 935/1407/444 +f 935/1407/444 934/1408/444 933/1409/444 +f 933/1409/444 932/1410/444 931/1411/444 +f 931/1411/444 930/1412/444 929/1413/444 +f 929/1413/444 928/1414/444 927/1405/444 +f 927/1405/444 926/1415/444 939/1406/444 +f 926/1415/444 925/1416/444 939/1406/444 +f 925/1416/444 940/1417/444 939/1406/444 +f 939/1406/444 938/1418/444 937/1419/444 +f 937/1419/444 936/1420/444 935/1407/444 +f 935/1407/444 933/1409/444 927/1405/444 +f 933/1409/444 931/1411/444 927/1405/444 +f 931/1411/444 929/1413/444 927/1405/444 +f 939/1406/444 937/1419/444 935/1407/444 +o ContentsHot +v 0.669695 3.250000 -1.616790 +v 1.237436 3.250000 -1.237437 +v 1.616789 3.250000 -0.669696 +v 1.750000 3.250000 0.000000 +v 1.616789 3.250000 0.669696 +v 1.237437 3.250000 1.237437 +v 0.669696 3.250000 1.616789 +v -0.000000 3.250000 1.750000 +v -0.669696 3.250000 1.616789 +v -1.237437 3.250000 1.237437 +v -1.616789 3.250000 0.669696 +v -1.750000 3.250000 0.000000 +v -1.616789 3.250000 -0.669696 +v -1.237437 3.250000 -1.237437 +v -0.669696 3.250000 -1.616789 +v -0.000000 3.250000 -1.750000 +vt 0.428147 0.610459 +vt 0.471166 0.740098 +vt 0.367308 0.793796 +vt 0.341520 0.772288 +vt 0.324288 0.740098 +vt 0.318238 0.702128 +vt 0.324288 0.664157 +vt 0.341520 0.631968 +vt 0.367308 0.610459 +vt 0.397727 0.602907 +vt 0.453935 0.631968 +vt 0.471166 0.664158 +vt 0.477217 0.702128 +vt 0.453935 0.772288 +vt 0.428147 0.793796 +vt 0.397727 0.801349 +vn 0.0000 1.0000 -0.0000 +s off +f 943/1421/445 955/1422/445 951/1423/445 +f 951/1423/445 950/1424/445 949/1425/445 +f 949/1425/445 948/1426/445 947/1427/445 +f 947/1427/445 946/1428/445 945/1429/445 +f 945/1429/445 944/1430/445 943/1421/445 +f 943/1421/445 942/1431/445 955/1422/445 +f 942/1431/445 941/1432/445 955/1422/445 +f 941/1432/445 956/1433/445 955/1422/445 +f 955/1422/445 954/1434/445 953/1435/445 +f 953/1435/445 952/1436/445 951/1423/445 +f 951/1423/445 949/1425/445 943/1421/445 +f 949/1425/445 947/1427/445 943/1421/445 +f 947/1427/445 945/1429/445 943/1421/445 +f 955/1422/445 953/1435/445 951/1423/445 +o Furnace +v -2.500000 0.000000 2.500000 +v 2.500000 0.000000 2.500000 +v -2.500000 0.000000 -2.500000 +v 2.500000 0.000000 -2.500000 +v -2.500000 1.000000 2.500000 +v 2.500000 1.000000 2.500000 +v -2.500000 1.000000 -2.500000 +v 2.500000 1.000000 -2.500000 +v 0.000000 1.000000 -2.500000 +v -0.956709 1.000000 -2.309699 +v -1.767767 1.000000 -1.767767 +v -2.309699 1.000000 -0.956709 +v -2.500000 1.000000 0.000000 +v -2.309699 1.000000 0.956709 +v -1.767767 1.000000 1.767767 +v -0.956709 1.000000 2.309699 +v -0.000000 1.000000 2.500000 +v 0.956708 1.000000 2.309699 +v 1.767767 1.000000 1.767768 +v 2.309699 1.000000 0.956709 +v 2.500000 1.000000 0.000000 +v 2.309699 1.000000 -0.956709 +v 1.767766 1.000000 -1.767768 +v 0.956707 1.000000 -2.309699 +v 0.000000 2.000000 -2.500000 +v -0.956709 2.000000 -2.309699 +v -1.767767 2.000000 -1.767767 +v -2.309699 2.000000 -0.956709 +v -2.500000 2.000000 0.000000 +v -2.309699 2.000000 0.956709 +v -1.767767 2.000000 1.767767 +v -0.956709 2.000000 2.309699 +v -0.000000 2.000000 2.500000 +v 0.956708 2.000000 2.309699 +v 1.767767 2.000000 1.767768 +v 2.309699 2.000000 0.956709 +v 2.500000 2.000000 0.000000 +v 2.309699 2.000000 -0.956709 +v 1.767766 2.000000 -1.767768 +v 0.956707 2.000000 -2.309699 +v 0.000000 2.000000 -2.250000 +v -0.861038 2.000000 -2.078729 +v -1.590990 2.000000 -1.590990 +v -2.078729 2.000000 -0.861038 +v -2.250000 2.000000 0.000000 +v -2.078729 2.000000 0.861038 +v -1.590990 2.000000 1.590990 +v -0.861038 2.000000 2.078729 +v -0.000000 2.000000 2.250000 +v 0.861037 2.000000 2.078730 +v 1.590990 2.000000 1.590991 +v 2.078729 2.000000 0.861038 +v 2.250000 2.000000 0.000000 +v 2.078729 2.000000 -0.861038 +v 1.590990 2.000000 -1.590991 +v 0.861037 2.000000 -2.078730 +v 0.000000 4.000000 -2.250000 +v -0.861038 4.000000 -2.078729 +v -1.590990 4.000000 -1.590990 +v -2.078729 4.000000 -0.861038 +v -2.250000 4.000000 0.000000 +v -2.078729 4.000000 0.861038 +v -1.590990 4.000000 1.590990 +v -0.861038 4.000000 2.078729 +v -0.000000 4.000000 2.250000 +v 0.861037 4.000000 2.078730 +v 1.590990 4.000000 1.590991 +v 2.078729 4.000000 0.861038 +v 2.250000 4.000000 0.000000 +v 2.078729 4.000000 -0.861038 +v 1.590990 4.000000 -1.590991 +v 0.861037 4.000000 -2.078730 +v -2.500000 0.000000 2.000000 +v -2.500000 1.000000 2.000000 +v -2.500000 0.000000 -2.000000 +v -3.500000 0.000000 -1.000000 +v -3.500000 0.000000 1.000000 +v -2.500000 1.000000 -2.000000 +v -3.500000 1.000000 -1.000000 +v -3.500000 1.000000 1.000000 +v -0.000000 4.000000 -1.750000 +v -0.669696 4.000000 -1.616789 +v -1.237437 4.000000 -1.237436 +v -1.616789 4.000000 -0.669696 +v -1.750000 4.000000 0.000000 +v -1.616789 4.000000 0.669697 +v -1.237437 4.000000 1.237436 +v -0.669696 4.000000 1.616789 +v -0.000000 4.000000 1.750000 +v 0.669696 4.000000 1.616789 +v 1.237437 4.000000 1.237437 +v 1.616789 4.000000 0.669697 +v 1.750000 4.000000 0.000000 +v 1.616789 4.000000 -0.669697 +v 1.237436 4.000000 -1.237437 +v 0.669695 4.000000 -1.616790 +v -0.000000 2.000000 -1.750000 +v -0.669696 2.000000 -1.616789 +v -1.237437 2.000000 -1.237436 +v -1.616789 2.000000 -0.669696 +v -1.750000 2.000000 0.000000 +v -1.616789 2.000000 0.669697 +v -1.237437 2.000000 1.237436 +v -0.669696 2.000000 1.616789 +v -0.000000 2.000000 1.750000 +v 0.669696 2.000000 1.616789 +v 1.237437 2.000000 1.237437 +v 1.616789 2.000000 0.669697 +v 1.750000 2.000000 0.000000 +v 1.616789 2.000000 -0.669697 +v 1.237436 2.000000 -1.237437 +v 0.669695 2.000000 -1.616790 +v -0.000000 1.500000 -1.250000 +v -0.478354 1.500000 -1.154850 +v -0.883884 1.500000 -0.883883 +v -1.154850 1.500000 -0.478354 +v -1.250000 1.500000 0.000000 +v -1.154850 1.500000 0.478354 +v -0.883884 1.500000 0.883883 +v -0.478354 1.500000 1.154850 +v -0.000000 1.500000 1.250000 +v 0.478354 1.500000 1.154850 +v 0.883883 1.500000 0.883884 +v 1.154849 1.500000 0.478354 +v 1.250000 1.500000 0.000000 +v 1.154849 1.500000 -0.478354 +v 0.883883 1.500000 -0.883884 +v 0.478354 1.500000 -1.154850 +v 2.125000 2.000000 0.000000 +v 2.161612 2.000000 0.088388 +v 2.250000 2.000000 0.125000 +v 2.338388 2.000000 0.088388 +v 2.375000 2.000000 0.000000 +v 2.338388 2.000000 -0.088388 +v 2.250000 2.000000 -0.125000 +v 2.161612 2.000000 -0.088388 +v 2.125000 4.125000 0.000000 +v 2.161612 4.125000 0.088388 +v 2.250000 4.125000 0.125000 +v 2.338388 4.125000 0.088388 +v 2.375000 4.125000 0.000000 +v 2.338388 4.125000 -0.088388 +v 2.250000 4.125000 -0.125000 +v 2.161612 4.125000 -0.088388 +v -3.187500 5.000000 -0.562500 +v -2.812500 5.000000 -0.562500 +v -3.187500 5.000000 -0.937500 +v -2.812500 5.000000 -0.937500 +v -3.250000 1.000000 -0.500000 +v -2.750000 1.000000 -0.500000 +v -3.250000 1.000000 -1.000000 +v -2.750000 1.000000 -1.000000 +v -2.750000 2.000000 -1.000000 +v -3.250000 2.000000 -1.000000 +v -2.750000 2.000000 -0.500000 +v -3.250000 2.000000 -0.500000 +v -3.187500 2.000000 -0.937500 +v -3.187500 2.000000 -0.562500 +v -2.812500 2.000000 -0.562500 +v -2.812500 2.000000 -0.937500 +v -2.812500 2.000000 0.562500 +v -2.812500 2.000000 0.937500 +v -3.187500 2.000000 0.937500 +v -3.187500 2.000000 0.562500 +v -3.250000 2.000000 1.000000 +v -2.750000 2.000000 1.000000 +v -3.250000 2.000000 0.500000 +v -2.750000 2.000000 0.500000 +v -2.750000 1.000000 0.500000 +v -3.250000 1.000000 0.500000 +v -2.750000 1.000000 1.000000 +v -3.250000 1.000000 1.000000 +v -2.812500 5.000000 0.562500 +v -3.187500 5.000000 0.562500 +v -2.812500 5.000000 0.937500 +v -3.187500 5.000000 0.937500 +v -2.375000 1.000000 -0.375000 +v -3.375000 1.000000 -0.375000 +v -2.375000 1.000000 0.375000 +v -3.375000 1.000000 0.375000 +v -2.375000 1.750000 0.375000 +v -2.375000 1.750000 -0.375000 +v -3.375000 1.500000 -0.375000 +v -3.125000 1.750000 -0.375000 +v -3.125000 1.750000 0.375000 +v -3.375000 1.500000 0.375000 +v -3.088388 1.750000 -0.088388 +v -3.000000 1.750000 -0.125000 +v -3.125000 1.750000 0.000000 +v -3.088388 1.750000 0.088388 +v -3.000000 1.750000 0.125000 +v -2.911612 1.750000 0.088388 +v -2.875000 1.750000 0.000000 +v -2.911612 1.750000 -0.088388 +v -3.066291 5.000000 -0.066291 +v -3.000000 5.000000 -0.093750 +v -3.093750 5.000000 0.000000 +v -3.066291 5.000000 0.066291 +v -3.000000 5.000000 0.093750 +v -2.933709 5.000000 0.066291 +v -2.906250 5.000000 0.000000 +v -2.933709 5.000000 -0.066291 +v -3.088388 2.000000 -0.088388 +v -3.000000 2.000000 -0.125000 +v -3.125000 2.000000 0.000000 +v -3.088388 2.000000 0.088388 +v -3.000000 2.000000 0.125000 +v -2.911612 2.000000 0.088388 +v -2.875000 2.000000 0.000000 +v -2.911612 2.000000 -0.088388 +v -2.933709 2.000000 -0.066291 +v -2.906250 2.000000 0.000000 +v -2.933709 2.000000 0.066291 +v -3.000000 2.000000 0.093750 +v -3.066291 2.000000 0.066291 +v -3.093750 2.000000 0.000000 +v -3.000000 2.000000 -0.093750 +v -3.066291 2.000000 -0.066291 +v -2.125000 2.000000 0.000000 +v -2.161612 2.000000 -0.088388 +v -2.250000 2.000000 -0.125000 +v -2.338388 2.000000 -0.088388 +v -2.375000 2.000000 0.000000 +v -2.338388 2.000000 0.088389 +v -2.250000 2.000000 0.125000 +v -2.161612 2.000000 0.088389 +v -2.125000 4.125000 0.000000 +v -2.161612 4.125000 -0.088388 +v -2.250000 4.125000 -0.125000 +v -2.338388 4.125000 -0.088388 +v -2.375000 4.125000 0.000000 +v -2.338388 4.125000 0.088389 +v -2.250000 4.125000 0.125000 +v -2.161612 4.125000 0.088389 +v 0.000000 2.000000 -2.125000 +v 0.088388 2.000000 -2.161612 +v 0.125000 2.000000 -2.250000 +v 0.088388 2.000000 -2.338388 +v 0.000000 2.000000 -2.375000 +v -0.088388 2.000000 -2.338388 +v -0.125000 2.000000 -2.250000 +v -0.088388 2.000000 -2.161612 +v 0.000000 4.124999 -2.125000 +v 0.088388 4.124999 -2.161612 +v 0.125000 4.124999 -2.250000 +v 0.088388 4.124999 -2.338388 +v 0.000000 4.124999 -2.375000 +v -0.088388 4.124999 -2.338388 +v -0.125000 4.124999 -2.250000 +v -0.088388 4.124999 -2.161612 +v 0.000000 2.000000 2.125000 +v -0.088388 2.000000 2.161612 +v -0.125000 2.000000 2.250000 +v -0.088388 2.000000 2.338388 +v 0.000000 2.000000 2.375000 +v 0.088389 2.000000 2.338388 +v 0.125000 2.000000 2.250000 +v 0.088389 2.000000 2.161612 +v 0.000000 4.124999 2.125000 +v -0.088388 4.124999 2.161612 +v -0.125000 4.124999 2.250000 +v -0.088388 4.124999 2.338388 +v 0.000000 4.124999 2.375000 +v 0.088389 4.124999 2.338388 +v 0.125000 4.124999 2.250000 +v 0.088389 4.124999 2.161612 +v 1.502602 2.000000 -1.502602 +v 1.590990 2.000000 -1.465990 +v 1.679379 2.000000 -1.502602 +v 1.715990 2.000000 -1.590990 +v 1.679379 2.000000 -1.679379 +v 1.590990 2.000000 -1.715990 +v 1.502602 2.000000 -1.679379 +v 1.465990 2.000000 -1.590990 +v 1.502602 4.125000 -1.502602 +v 1.590990 4.125000 -1.465990 +v 1.679379 4.125000 -1.502602 +v 1.715990 4.125000 -1.590990 +v 1.679379 4.125000 -1.679379 +v 1.590990 4.125000 -1.715990 +v 1.502602 4.125000 -1.679379 +v 1.465990 4.125000 -1.590990 +v -1.502602 2.000000 1.502602 +v -1.590990 2.000000 1.465990 +v -1.679378 2.000000 1.502602 +v -1.715990 2.000000 1.590990 +v -1.679379 2.000000 1.679379 +v -1.590990 2.000000 1.715991 +v -1.502602 2.000000 1.679379 +v -1.465990 2.000000 1.590991 +v -1.502602 4.125000 1.502602 +v -1.590990 4.125000 1.465990 +v -1.679378 4.125000 1.502602 +v -1.715990 4.125000 1.590990 +v -1.679379 4.125000 1.679379 +v -1.590990 4.125000 1.715991 +v -1.502602 4.125000 1.679379 +v -1.465990 4.125000 1.590991 +v -1.502602 2.000000 -1.502602 +v -1.465990 2.000000 -1.590990 +v -1.502602 2.000000 -1.679379 +v -1.590990 2.000000 -1.715990 +v -1.679379 2.000000 -1.679379 +v -1.715990 2.000000 -1.590990 +v -1.679379 2.000000 -1.502602 +v -1.590990 2.000000 -1.465990 +v -1.502602 4.124999 -1.502602 +v -1.465990 4.124999 -1.590990 +v -1.502602 4.124999 -1.679379 +v -1.590990 4.124999 -1.715990 +v -1.679379 4.124999 -1.679379 +v -1.715990 4.124999 -1.590990 +v -1.679379 4.124999 -1.502602 +v -1.590990 4.124999 -1.465990 +v 1.502602 2.000000 1.502602 +v 1.465990 2.000000 1.590990 +v 1.502602 2.000000 1.679378 +v 1.590990 2.000000 1.715990 +v 1.679379 2.000000 1.679379 +v 1.715991 2.000000 1.590990 +v 1.679379 2.000000 1.502602 +v 1.590990 2.000000 1.465990 +v 1.502602 4.124999 1.502602 +v 1.465990 4.124999 1.590990 +v 1.502602 4.124999 1.679378 +v 1.590990 4.124999 1.715990 +v 1.679379 4.124999 1.679379 +v 1.715991 4.124999 1.590990 +v 1.679379 4.124999 1.502602 +v 1.590990 4.124999 1.465990 +v -3.088388 1.750000 -0.338388 +v -3.000000 1.750000 -0.375000 +v -3.125000 1.750000 -0.250000 +v -3.088388 1.750000 -0.161612 +v -3.000000 1.750000 -0.125000 +v -2.911612 1.750000 -0.161612 +v -2.875000 1.750000 -0.250000 +v -2.911612 1.750000 -0.338388 +v -3.066291 5.000000 -0.316291 +v -3.000000 5.000000 -0.343750 +v -3.093750 5.000000 -0.250000 +v -3.066291 5.000000 -0.183709 +v -3.000000 5.000000 -0.156250 +v -2.933709 5.000000 -0.183709 +v -2.906250 5.000000 -0.250000 +v -2.933709 5.000000 -0.316291 +v -3.088388 2.000000 -0.338388 +v -3.000000 2.000000 -0.375000 +v -3.125000 2.000000 -0.250000 +v -3.088388 2.000000 -0.161612 +v -3.000000 2.000000 -0.125000 +v -2.911612 2.000000 -0.161612 +v -2.875000 2.000000 -0.250000 +v -2.911612 2.000000 -0.338388 +v -2.933709 2.000000 -0.316291 +v -2.906250 2.000000 -0.250000 +v -2.933709 2.000000 -0.183709 +v -3.000000 2.000000 -0.156250 +v -3.066291 2.000000 -0.183709 +v -3.093750 2.000000 -0.250000 +v -3.000000 2.000000 -0.343750 +v -3.066291 2.000000 -0.316291 +v -3.088388 1.750000 0.161612 +v -3.000000 1.750000 0.125000 +v -3.125000 1.750000 0.250000 +v -3.088388 1.750000 0.338388 +v -3.000000 1.750000 0.375000 +v -2.911612 1.750000 0.338388 +v -2.875000 1.750000 0.250000 +v -2.911612 1.750000 0.161612 +v -3.066291 5.000000 0.183709 +v -3.000000 5.000000 0.156250 +v -3.093750 5.000000 0.250000 +v -3.066291 5.000000 0.316291 +v -3.000000 5.000000 0.343750 +v -2.933709 5.000000 0.316291 +v -2.906250 5.000000 0.250000 +v -2.933709 5.000000 0.183709 +v -3.088388 2.000000 0.161612 +v -3.000000 2.000000 0.125000 +v -3.125000 2.000000 0.250000 +v -3.088388 2.000000 0.338388 +v -3.000000 2.000000 0.375000 +v -2.911612 2.000000 0.338388 +v -2.875000 2.000000 0.250000 +v -2.911612 2.000000 0.161612 +v -2.933709 2.000000 0.183709 +v -2.906250 2.000000 0.250000 +v -2.933709 2.000000 0.316291 +v -3.000000 2.000000 0.343750 +v -3.066291 2.000000 0.316291 +v -3.093750 2.000000 0.250000 +v -3.000000 2.000000 0.156250 +v -3.066291 2.000000 0.183709 +v 2.750000 1.125000 0.125000 +v 2.750000 1.125000 -0.125000 +v 2.750000 1.375000 0.125000 +v 2.750000 1.375000 -0.125000 +v 2.750000 1.125000 0.187500 +v 2.750000 1.375000 0.187500 +v 2.750000 1.125000 -0.187500 +v 2.750000 1.375000 -0.187500 +v 2.750000 1.062500 0.125000 +v 2.750000 1.062500 -0.125000 +v 2.437500 1.500000 0.125000 +v 2.437500 1.250000 0.125000 +v 2.437500 1.250000 -0.125000 +v 2.437500 1.500000 -0.125000 +v 2.437500 1.500000 0.187500 +v 2.437500 1.250000 0.187500 +v 2.437500 1.250000 -0.187500 +v 2.437500 1.500000 -0.187500 +v 2.437500 1.187500 0.125000 +v 2.437500 1.187500 -0.125000 +vt 0.250000 0.283688 +vt 0.068182 0.283688 +vt 0.045455 -0.000000 +vt 0.250000 0.453901 +vt 0.272727 0.737589 +vt 0.068182 0.453901 +vt -0.000000 0.453901 +vt 0.045455 0.737589 +vt -0.000000 0.737589 +vt 0.318182 0.737589 +vt 0.272727 0.453901 +vt 0.318182 0.453901 +vt 0.045455 0.794326 +vt 0.272727 0.794326 +vt 0.272727 0.340426 +vt 0.250000 0.397163 +vt 0.250000 0.340426 +vt 0.545455 0.056738 +vt 0.502841 0.070922 +vt 0.500000 0.056738 +vt 0.590909 0.056738 +vt 0.548295 0.070922 +vt 0.636364 0.056738 +vt 0.593750 0.070922 +vt 0.681818 0.056738 +vt 0.639205 0.070922 +vt 0.727273 0.056738 +vt 0.684659 0.070922 +vt 0.772727 0.056738 +vt 0.730114 0.070922 +vt 0.818182 0.056738 +vt 0.775568 0.070922 +vt 0.863636 0.056738 +vt 0.821023 0.070922 +vt 0.909091 0.056738 +vt 0.866477 0.070922 +vt 0.954545 0.056738 +vt 0.911932 0.070922 +vt 1.000000 0.056738 +vt 0.957386 0.070922 +vt 0.272727 0.056738 +vt 0.315341 0.070922 +vt 0.275568 0.070922 +vt 0.363636 0.056738 +vt 0.321023 0.070922 +vt 0.318182 0.056738 +vt 0.406250 0.070922 +vt 0.366477 0.070922 +vt 0.409091 0.056738 +vt 0.451705 0.070922 +vt 0.411932 0.070922 +vt 0.454545 0.056738 +vt 0.497159 0.070922 +vt 0.457386 0.070922 +vt 0.204545 0.340426 +vt 0.113636 0.397163 +vt 0.113636 0.340426 +vt 0.204545 0.397163 +vt 0.068182 0.340426 +vt 0.045455 0.397163 +vt 0.045455 0.340426 +vt 0.068182 0.397163 +vt 0.511364 0.184397 +vt 0.545455 0.212766 +vt 0.517045 0.212766 +vt 0.551136 0.184397 +vt 0.585227 0.212766 +vt 0.556818 0.212766 +vt 0.630682 0.184397 +vt 0.596591 0.212766 +vt 0.590909 0.184397 +vt 0.670455 0.184397 +vt 0.636364 0.212766 +vt 0.704545 0.212766 +vt 0.676136 0.212766 +vt 0.750000 0.184397 +vt 0.715909 0.212766 +vt 0.710227 0.184397 +vt 0.789773 0.184397 +vt 0.755682 0.212766 +vt 0.829545 0.184397 +vt 0.795455 0.212766 +vt 0.869318 0.184397 +vt 0.835227 0.212766 +vt 0.909091 0.184397 +vt 0.875000 0.212766 +vt 0.312500 0.184397 +vt 0.278409 0.212766 +vt 0.272727 0.184397 +vt 0.352273 0.184397 +vt 0.318182 0.212766 +vt 0.386364 0.212766 +vt 0.357955 0.212766 +vt 0.392045 0.184397 +vt 0.426136 0.212766 +vt 0.397727 0.212766 +vt 0.471591 0.184397 +vt 0.437500 0.212766 +vt 0.431818 0.184397 +vt 0.477273 0.212766 +vt 0.914773 0.191535 +vt 0.920418 0.198582 +vt 0.914773 0.205628 +vt 0.838068 0.464539 +vt 0.821023 0.634752 +vt 0.821023 0.464539 +vt 0.792614 0.464539 +vt 0.775568 0.634752 +vt 0.775568 0.464539 +vt 0.769886 0.464539 +vt 0.752841 0.634752 +vt 0.752841 0.464539 +vt 0.815341 0.464539 +vt 0.798295 0.634752 +vt 0.798295 0.464539 +vt 0.818182 0.460993 +vt 0.772727 0.404255 +vt 0.750000 0.460993 +vt 0.750000 0.404255 +vt 0.795455 0.404255 +vt 0.772727 0.460993 +vt 0.840909 0.404255 +vt 0.818182 0.404255 +vt 0.795455 0.460993 +vt 0.818182 0.460993 +vt 0.798295 0.464539 +vt 0.795455 0.460993 +vt 0.772727 0.460993 +vt 0.752841 0.464539 +vt 0.750000 0.460993 +vt 0.775568 0.464539 +vt 0.818182 0.404255 +vt 0.795455 0.404255 +vt 0.840909 0.404255 +vt 0.772727 0.404255 +vt 0.750000 0.404255 +vt 0.840909 0.460993 +vt 0.821023 0.464539 +vt 0.815341 0.464539 +vt 0.798295 0.634752 +vt 0.769886 0.464539 +vt 0.752841 0.634752 +vt 0.792614 0.464539 +vt 0.775568 0.634752 +vt 0.838068 0.464539 +vt 0.821023 0.634752 +vt 0.477273 0.723404 +vt 0.500000 0.723404 +vt 0.511364 0.737589 +vt 0.545455 0.780142 +vt 0.545455 0.737589 +vt 0.579545 0.780142 +vt 0.556818 0.723404 +vt 0.545455 0.723404 +vt 0.511364 0.723404 +vt 0.545455 0.695035 +vt 0.511364 0.695035 +vt 0.977273 0.163121 +vt 0.982955 0.166667 +vt 0.977273 0.166667 +vt 1.000000 0.163121 +vt 0.994318 0.166667 +vt 0.994318 0.163121 +vt 0.971591 0.166667 +vt 0.971591 0.163121 +vt 0.954545 0.163121 +vt 0.960227 0.166667 +vt 0.954545 0.166667 +vt 0.965909 0.163121 +vt 0.965909 0.166667 +vt 0.988636 0.163121 +vt 0.988636 0.166667 +vt 0.982955 0.163121 +vt 0.960227 0.163121 +vt 0.909127 0.198582 +vt 0.914773 0.191535 +vt 0.920418 0.198582 +vt 0.914773 0.191535 +vt 0.920418 0.198582 +vt 0.914773 0.205628 +vt 0.914773 0.191535 +vt 0.920418 0.198582 +vt 0.914773 0.205628 +vt 0.909127 0.198582 +vt 0.914773 0.191535 +vt 0.920418 0.198582 +vt 0.909127 0.198582 +vt 0.914773 0.191535 +vt 0.920418 0.198582 +vt 0.909127 0.198582 +vt 0.914773 0.191535 +vt 0.920418 0.198582 +vt 0.914773 0.191535 +vt 0.920418 0.198582 +vt 0.914773 0.205628 +vt 0.977273 0.163121 +vt 0.982955 0.166667 +vt 0.977273 0.166667 +vt 1.000000 0.163121 +vt 0.994318 0.166667 +vt 0.994318 0.163121 +vt 0.971591 0.166667 +vt 0.971591 0.163121 +vt 0.954545 0.163121 +vt 0.960227 0.166667 +vt 0.954545 0.166667 +vt 0.965909 0.163121 +vt 0.965909 0.166667 +vt 0.988636 0.163121 +vt 0.988636 0.166667 +vt 0.982955 0.163121 +vt 0.960227 0.163121 +vt 0.977273 0.163121 +vt 0.982955 0.166667 +vt 0.977273 0.166667 +vt 1.000000 0.163121 +vt 0.994318 0.166667 +vt 0.994318 0.163121 +vt 0.971591 0.166667 +vt 0.971591 0.163121 +vt 0.954545 0.163121 +vt 0.960227 0.166667 +vt 0.954545 0.166667 +vt 0.965909 0.163121 +vt 0.965909 0.166667 +vt 0.988636 0.163121 +vt 0.988636 0.166667 +vt 0.982955 0.163121 +vt 0.960227 0.163121 +vt 0.948864 0.659574 +vt 0.946023 0.645390 +vt 0.948864 0.645390 +vt 0.960227 0.645390 +vt 0.963068 0.659574 +vt 0.960227 0.659574 +vt 0.960227 0.641844 +vt 0.948864 0.641844 +vt 0.963068 0.645390 +vt 0.931818 0.641844 +vt 0.920455 0.624114 +vt 0.931818 0.624114 +vt 0.974432 0.641844 +vt 0.977273 0.624114 +vt 0.977273 0.641844 +vt 0.948864 0.680851 +vt 0.934659 0.641844 +vt 0.934659 0.624114 +vt 0.946023 0.641844 +vt 0.948864 0.624114 +vt 0.988636 0.624114 +vt 0.988636 0.641844 +vt 0.960227 0.624114 +vt 0.963068 0.624114 +vt 0.974432 0.624114 +vt 0.963068 0.641844 +vt 0.946023 0.624114 +vt 0.272727 0.000000 +vt 0.272727 0.283688 +vt 0.045455 0.283688 +vt 0.045455 0.453901 +vt 0.272727 0.397163 +vt 0.542614 0.070922 +vt 0.588068 0.070922 +vt 0.633523 0.070922 +vt 0.678977 0.070922 +vt 0.724432 0.070922 +vt 0.769886 0.070922 +vt 0.815341 0.070922 +vt 0.860795 0.070922 +vt 0.906250 0.070922 +vt 0.951705 0.070922 +vt 0.997159 0.070922 +vt 0.360795 0.070922 +vt 0.625000 0.212766 +vt 0.664773 0.212766 +vt 0.744318 0.212766 +vt 0.784091 0.212766 +vt 0.823864 0.212766 +vt 0.863636 0.212766 +vt 0.903409 0.212766 +vt 0.306818 0.212766 +vt 0.346591 0.212766 +vt 0.465909 0.212766 +vt 0.505682 0.212766 +vt 0.910781 0.203564 +vt 0.909127 0.198582 +vt 0.910781 0.193599 +vt 0.918765 0.193599 +vt 0.918765 0.203564 +vt 0.838068 0.634752 +vt 0.792614 0.634752 +vt 0.769886 0.634752 +vt 0.815341 0.634752 +vt 0.840909 0.460993 +vt 0.815341 0.634752 +vt 0.769886 0.634752 +vt 0.792614 0.634752 +vt 0.838068 0.634752 +vt 0.511364 0.780142 +vt 0.477273 0.780142 +vt 0.579545 0.723404 +vt 1.000000 0.166667 +vt 0.914773 0.205628 +vt 0.910781 0.203564 +vt 0.910781 0.193599 +vt 0.918765 0.193599 +vt 0.918765 0.203564 +vt 0.910781 0.203564 +vt 0.909127 0.198582 +vt 0.910781 0.193599 +vt 0.918765 0.193599 +vt 0.918765 0.203564 +vt 0.910781 0.203564 +vt 0.909127 0.198582 +vt 0.910781 0.193599 +vt 0.918765 0.193599 +vt 0.918765 0.203564 +vt 0.914773 0.205628 +vt 0.910781 0.203564 +vt 0.910781 0.193599 +vt 0.918765 0.193599 +vt 0.918765 0.203564 +vt 0.914773 0.205628 +vt 0.910781 0.203564 +vt 0.910781 0.193599 +vt 0.918765 0.193599 +vt 0.918765 0.203564 +vt 0.914773 0.205628 +vt 0.910781 0.203564 +vt 0.910781 0.193599 +vt 0.918765 0.193599 +vt 0.918765 0.203564 +vt 0.910781 0.203564 +vt 0.909127 0.198582 +vt 0.910781 0.193599 +vt 0.918765 0.193599 +vt 0.918765 0.203564 +vt 1.000000 0.166667 +vt 1.000000 0.166667 +vt 0.946023 0.659574 +vt 0.920455 0.641844 +vt 0.960227 0.680851 +vt 0.363636 -0.000000 +vt 0.409091 -0.000000 +vt 0.727273 -0.000000 +vt 0.772727 0.000000 +vt 0.454545 -0.000000 +vt 0.818182 -0.000000 +vt 0.863636 -0.000000 +vt 0.500000 -0.000000 +vt 0.909091 -0.000000 +vt 0.545455 -0.000000 +vt 0.954545 0.000000 +vt 0.590909 -0.000000 +vt 1.000000 0.000000 +vt 0.636364 0.000000 +vt 0.272727 -0.000000 +vt 0.318182 -0.000000 +vt 0.681818 -0.000000 +vt 0.789773 0.070922 +vt 0.750000 0.070922 +vt 0.710227 0.070922 +vt 0.471591 0.070922 +vt 0.431818 0.070922 +vt 0.829545 0.070922 +vt 0.511364 0.070922 +vt 0.869318 0.070922 +vt 0.551136 0.070922 +vt 0.909091 0.070922 +vt 0.590909 0.070922 +vt 0.312500 0.070922 +vt 0.272727 0.070922 +vt 0.630682 0.070922 +vt 0.352273 0.070922 +vt 0.670455 0.070922 +vt 0.392045 0.070922 +vt 0.386364 0.361702 +vt 0.414773 0.248227 +vt 0.414773 0.361702 +vt 0.585227 0.361702 +vt 0.613636 0.248227 +vt 0.613636 0.361702 +vt 0.329545 0.361702 +vt 0.357955 0.248227 +vt 0.357955 0.361702 +vt 0.556818 0.361702 +vt 0.585227 0.248227 +vt 0.301136 0.361702 +vt 0.329545 0.248227 +vt 0.528409 0.361702 +vt 0.556818 0.248227 +vt 0.272727 0.361702 +vt 0.301136 0.248227 +vt 0.500000 0.361702 +vt 0.528409 0.248227 +vt 0.698864 0.361702 +vt 0.727273 0.248227 +vt 0.727273 0.361702 +vt 0.471591 0.361702 +vt 0.500000 0.248227 +vt 0.670455 0.361702 +vt 0.698864 0.248227 +vt 0.443182 0.361702 +vt 0.471591 0.248227 +vt 0.642045 0.361702 +vt 0.670455 0.248227 +vt 0.443182 0.248227 +vt 0.642045 0.248227 +vt 0.386364 0.248227 +vt 0.701705 0.212766 +vt 0.724432 0.212766 +vt 0.275568 0.212766 +vt 0.298295 0.212766 +vt 0.303977 0.212766 +vt 0.326705 0.212766 +vt 0.355114 0.212766 +vt 0.360795 0.212766 +vt 0.383523 0.212766 +vt 0.411932 0.212766 +vt 0.440341 0.212766 +vt 0.468750 0.212766 +vt 0.474432 0.212766 +vt 0.497159 0.212766 +vt 0.525568 0.212766 +vt 0.553977 0.212766 +vt 0.559659 0.212766 +vt 0.582386 0.212766 +vt 0.588068 0.212766 +vt 0.610795 0.212766 +vt 0.639205 0.212766 +vt 0.667614 0.212766 +vt 0.696023 0.212766 +vt 0.727269 0.283688 +vt 0.784091 0.212761 +vt 0.840913 0.283688 +vt 0.948864 0.070922 +vt 0.943182 0.191489 +vt 0.943182 0.070922 +vt 0.937500 0.070922 +vt 0.931818 0.191489 +vt 0.931818 0.070922 +vt 0.926136 0.070922 +vt 0.920455 0.191489 +vt 0.920455 0.070922 +vt 0.914773 0.070922 +vt 0.909091 0.191489 +vt 0.909091 0.070922 +vt 0.954545 0.070922 +vt 0.948864 0.191489 +vt 0.937500 0.191489 +vt 0.926136 0.191489 +vt 0.914773 0.191489 +vt 0.988636 0.336879 +vt 0.965909 0.336879 +vt 0.971591 0.148936 +vt 0.965909 0.148936 +vt 0.977273 0.336879 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.954545 0.336879 +vt 0.982955 0.336879 +vt 0.988636 0.148936 +vt 0.971591 0.336879 +vt 0.994318 0.336879 +vt 0.977273 0.148936 +vt 0.960227 0.336879 +vt 0.982955 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.948864 0.070922 +vt 0.943182 0.191489 +vt 0.943182 0.070922 +vt 0.937500 0.070922 +vt 0.931818 0.191489 +vt 0.931818 0.070922 +vt 0.926136 0.070922 +vt 0.920455 0.191489 +vt 0.920455 0.070922 +vt 0.914773 0.070922 +vt 0.909091 0.191489 +vt 0.909091 0.070922 +vt 0.954545 0.070922 +vt 0.948864 0.191489 +vt 0.937500 0.191489 +vt 0.926136 0.191489 +vt 0.914773 0.191489 +vt 0.948864 0.070922 +vt 0.943182 0.191489 +vt 0.943182 0.070922 +vt 0.937500 0.070922 +vt 0.931818 0.191489 +vt 0.931818 0.070922 +vt 0.926136 0.070922 +vt 0.920455 0.191489 +vt 0.920455 0.070922 +vt 0.914773 0.070922 +vt 0.909091 0.191489 +vt 0.909091 0.070922 +vt 0.954545 0.070922 +vt 0.948864 0.191489 +vt 0.937500 0.191489 +vt 0.926136 0.191489 +vt 0.914773 0.191489 +vt 0.948864 0.070922 +vt 0.943182 0.191489 +vt 0.943182 0.070922 +vt 0.937500 0.070922 +vt 0.931818 0.191489 +vt 0.931818 0.070922 +vt 0.926136 0.070922 +vt 0.920455 0.191489 +vt 0.920455 0.070922 +vt 0.914773 0.070922 +vt 0.909091 0.191489 +vt 0.909091 0.070922 +vt 0.954545 0.070922 +vt 0.948864 0.191489 +vt 0.937500 0.191489 +vt 0.926136 0.191489 +vt 0.914773 0.191489 +vt 0.948864 0.070922 +vt 0.943182 0.191489 +vt 0.943182 0.070922 +vt 0.937500 0.070922 +vt 0.931818 0.191489 +vt 0.931818 0.070922 +vt 0.926136 0.070922 +vt 0.920455 0.191489 +vt 0.920455 0.070922 +vt 0.914773 0.070922 +vt 0.909091 0.191489 +vt 0.909091 0.070922 +vt 0.954545 0.070922 +vt 0.948864 0.191489 +vt 0.937500 0.191489 +vt 0.926136 0.191489 +vt 0.914773 0.191489 +vt 0.948864 0.070922 +vt 0.943182 0.191489 +vt 0.943182 0.070922 +vt 0.937500 0.070922 +vt 0.931818 0.191489 +vt 0.931818 0.070922 +vt 0.926136 0.070922 +vt 0.920455 0.191489 +vt 0.920455 0.070922 +vt 0.914773 0.070922 +vt 0.909091 0.191489 +vt 0.909091 0.070922 +vt 0.954545 0.070922 +vt 0.948864 0.191489 +vt 0.937500 0.191489 +vt 0.926136 0.191489 +vt 0.914773 0.191489 +vt 0.948864 0.070922 +vt 0.943182 0.191489 +vt 0.943182 0.070922 +vt 0.937500 0.070922 +vt 0.931818 0.191489 +vt 0.931818 0.070922 +vt 0.926136 0.070922 +vt 0.920455 0.191489 +vt 0.920455 0.070922 +vt 0.914773 0.070922 +vt 0.909091 0.191489 +vt 0.909091 0.070922 +vt 0.954545 0.070922 +vt 0.948864 0.191489 +vt 0.937500 0.191489 +vt 0.926136 0.191489 +vt 0.914773 0.191489 +vt 0.948864 0.070922 +vt 0.943182 0.191489 +vt 0.943182 0.070922 +vt 0.937500 0.070922 +vt 0.931818 0.191489 +vt 0.931818 0.070922 +vt 0.926136 0.070922 +vt 0.920455 0.191489 +vt 0.920455 0.070922 +vt 0.914773 0.070922 +vt 0.909091 0.191489 +vt 0.909091 0.070922 +vt 0.954545 0.070922 +vt 0.948864 0.191489 +vt 0.937500 0.191489 +vt 0.926136 0.191489 +vt 0.914773 0.191489 +vt 0.988636 0.336879 +vt 0.965909 0.336879 +vt 0.971591 0.148936 +vt 0.965909 0.148936 +vt 0.977273 0.336879 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.954545 0.336879 +vt 0.982955 0.336879 +vt 0.988636 0.148936 +vt 0.971591 0.336879 +vt 0.994318 0.336879 +vt 0.977273 0.148936 +vt 0.960227 0.336879 +vt 0.982955 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.988636 0.336879 +vt 0.965909 0.336879 +vt 0.971591 0.148936 +vt 0.965909 0.148936 +vt 0.977273 0.336879 +vt 1.000000 0.148936 +vt 0.994318 0.148936 +vt 0.954545 0.336879 +vt 0.982955 0.336879 +vt 0.988636 0.148936 +vt 0.971591 0.336879 +vt 0.994318 0.336879 +vt 0.977273 0.148936 +vt 0.960227 0.336879 +vt 0.982955 0.148936 +vt 0.960227 0.148936 +vt 0.954545 0.148936 +vt 0.272727 0.248227 +vt 0.332386 0.212766 +vt 0.389205 0.212766 +vt 0.417614 0.212766 +vt 0.446023 0.212766 +vt 0.502841 0.212766 +vt 0.531250 0.212766 +vt 0.616477 0.212766 +vt 0.644886 0.212766 +vt 0.673295 0.212766 +vt 0.836588 0.310831 +vt 0.824270 0.333841 +vt 0.805836 0.349216 +vt 0.784091 0.354615 +vt 0.762346 0.349216 +vt 0.743911 0.333841 +vt 0.731594 0.310831 +vt 0.731594 0.256545 +vt 0.743911 0.233535 +vt 0.762346 0.218160 +vt 0.805836 0.218160 +vt 0.824271 0.233535 +vt 0.836588 0.256545 +vt 0.954545 0.191489 +vt 1.000000 0.336879 +vt 0.954545 0.191489 +vt 0.954545 0.191489 +vt 0.954545 0.191489 +vt 0.954545 0.191489 +vt 0.954545 0.191489 +vt 0.954545 0.191489 +vt 0.954545 0.191489 +vt 1.000000 0.336879 +vt 1.000000 0.336879 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.3714 0.9285 0.0000 +vn -0.2722 -0.6804 0.6804 +vn -0.3714 -0.9285 0.0000 +vn -0.2722 -0.6804 -0.6804 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +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.3560 0.3668 0.8595 +vn 0.0000 0.3668 -0.9303 +vn 0.3560 0.3668 0.8595 +vn -0.3560 0.3668 -0.8595 +vn 0.6578 0.3668 0.6578 +vn -0.6578 0.3668 -0.6578 +vn 0.8595 0.3668 0.3560 +vn -0.8595 0.3668 -0.3560 +vn 0.9303 0.3668 0.0000 +vn -0.9303 0.3668 0.0000 +vn 0.8595 0.3668 -0.3560 +vn -0.8595 0.3668 0.3560 +vn 0.6578 0.3668 -0.6578 +vn -0.6578 0.3668 0.6578 +vn 0.3560 0.3668 -0.8595 +vn 0.0000 0.3668 0.9303 +vn 0.3899 0.9066 -0.1615 +vn 0.4220 0.9066 -0.0000 +vn 0.3899 0.9066 0.1615 +vn 0.2984 0.9066 0.2984 +vn 0.1615 0.9066 0.3899 +vn -0.0000 0.9066 0.4220 +vn -0.1615 0.9066 0.3899 +vn -0.2984 0.9066 0.2984 +vn -0.3899 0.9066 0.1615 +vn -0.4220 0.9066 0.0000 +vn -0.3899 0.9066 -0.1615 +vn -0.2984 0.9066 -0.2984 +vn -0.1615 0.9066 -0.3899 +vn 0.0000 0.9066 -0.4220 +vn 0.1615 0.9066 -0.3899 +vn 0.2984 0.9066 -0.2984 +s off +f 1029/1437/446 1031/1438/446 960/1439/446 +f 1030/1440/447 962/1441/447 1034/1442/447 +f 959/1443/448 964/1444/448 960/1445/448 +f 958/1446/449 961/1447/449 957/1448/449 +f 960/1449/450 962/1441/450 958/1450/450 +f 957/1451/451 1030/1452/451 1029/1453/451 +f 991/1454/447 1006/1455/447 990/1456/447 +f 992/1457/447 1007/1458/447 991/1454/447 +f 993/1459/447 1008/1460/447 992/1457/447 +f 994/1461/447 1009/1462/447 993/1459/447 +f 995/1463/447 1010/1464/447 994/1461/447 +f 996/1465/447 1011/1466/447 995/1463/447 +f 981/1467/447 1012/1468/447 996/1465/447 +f 982/1469/447 997/1470/447 981/1467/447 +f 983/1471/447 998/1472/447 982/1469/447 +f 984/1473/447 999/1474/447 983/1471/447 +f 985/1475/447 1000/1476/447 984/1473/447 +f 985/1477/447 1002/1478/447 1001/1479/447 +f 987/1480/447 1002/1481/447 986/1482/447 +f 987/1480/447 1004/1483/447 1003/1484/447 +f 988/1485/447 1005/1486/447 1004/1487/447 +f 989/1488/447 1006/1489/447 1005/1490/447 +f 1033/1491/451 1035/1492/451 1032/1493/451 +f 1029/1453/452 1036/1494/452 1033/1491/452 +f 1031/1495/451 963/1496/451 959/1497/451 +f 1032/1493/453 1034/1498/453 1031/1495/453 +f 1023/1499/447 1048/1500/447 1047/1501/447 +f 1024/1502/447 1049/1503/447 1048/1504/447 +f 1026/1505/447 1049/1506/447 1025/1507/447 +f 1027/1508/447 1050/1509/447 1026/1505/447 +f 1027/1508/447 1052/1510/447 1051/1511/447 +f 1013/1512/447 1052/1513/447 1028/1514/447 +f 1014/1515/447 1037/1516/447 1013/1512/447 +f 1015/1517/447 1038/1518/447 1014/1515/447 +f 1016/1519/447 1039/1520/447 1015/1517/447 +f 1017/1521/447 1040/1522/447 1016/1519/447 +f 1018/1523/447 1041/1524/447 1017/1525/447 +f 1019/1526/447 1042/1527/447 1018/1523/447 +f 1019/1526/447 1044/1528/447 1043/1529/447 +f 1020/1530/447 1045/1531/447 1044/1532/447 +f 1022/1533/447 1045/1534/447 1021/1535/447 +f 1023/1499/447 1046/1536/447 1022/1533/447 +f 1097/1537/447 1099/1538/447 1093/1539/447 +f 1116/1540/450 1102/1541/450 1115/1542/450 +f 1114/1543/451 1103/1544/451 1113/1545/451 +f 1113/1546/448 1104/1547/448 1116/1548/448 +f 1115/1549/449 1101/1550/449 1114/1551/449 +f 1111/1552/447 1116/1540/447 1115/1542/447 +f 1107/1553/448 1109/1554/448 1108/1555/448 +f 1105/1556/451 1110/1557/451 1107/1553/451 +f 1108/1558/450 1111/1552/450 1106/1559/450 +f 1106/1559/449 1112/1560/449 1105/1556/449 +f 1112/1560/447 1113/1545/447 1110/1557/447 +f 1110/1557/447 1116/1548/447 1109/1554/447 +f 1111/1552/447 1114/1551/447 1112/1560/447 +f 1122/1561/447 1119/1562/447 1121/1563/447 +f 1123/1564/447 1117/1565/447 1124/1566/447 +f 1121/1563/447 1120/1567/447 1123/1564/447 +f 1127/1568/449 1121/1563/449 1128/1569/449 +f 1125/1570/450 1122/1561/450 1127/1568/450 +f 1128/1569/451 1123/1564/451 1126/1571/451 +f 1126/1571/448 1124/1566/448 1125/1572/448 +f 1124/1573/447 1118/1574/447 1122/1561/447 +f 1118/1575/449 1132/1576/449 1119/1562/449 +f 1120/1577/448 1129/1578/448 1117/1565/448 +f 1119/1579/451 1130/1580/451 1120/1567/451 +f 1117/1581/450 1131/1582/450 1118/1574/450 +f 1134/1583/448 1139/1584/448 1140/1585/448 +f 1137/1586/447 1140/1585/447 1141/1587/447 +f 1135/1588/449 1141/1587/449 1142/1589/449 +f 1142/1590/454 1140/1585/454 1139/1591/454 +f 1136/1592/451 1139/1591/451 1134/1593/451 +f 1161/1594/447 1171/1595/447 1172/1596/447 +f 1165/1597/447 1169/1598/447 1164/1599/447 +f 1161/1594/447 1174/1600/447 1159/1601/447 +f 1165/1602/447 1167/1603/447 1168/1604/447 +f 1160/1605/447 1174/1600/447 1173/1606/447 +f 1163/1607/447 1169/1598/447 1170/1608/447 +f 1163/1607/447 1171/1595/447 1162/1609/447 +f 1160/1605/447 1167/1603/447 1166/1610/447 +f 1185/1611/447 1187/1612/447 1189/1613/447 +f 1203/1614/447 1205/1615/447 1199/1616/447 +f 1219/1617/447 1221/1618/447 1215/1619/447 +f 1233/1620/447 1235/1621/447 1237/1622/447 +f 1249/1623/447 1251/1624/447 1253/1625/447 +f 1265/1626/447 1267/1627/447 1269/1628/447 +f 1283/1629/447 1285/1630/447 1279/1631/447 +f 1305/1632/447 1315/1633/447 1316/1634/447 +f 1309/1635/447 1313/1636/447 1308/1637/447 +f 1305/1632/447 1318/1638/447 1303/1639/447 +f 1309/1640/447 1311/1641/447 1312/1642/447 +f 1304/1643/447 1318/1638/447 1317/1644/447 +f 1307/1645/447 1313/1636/447 1314/1646/447 +f 1307/1645/447 1315/1633/447 1306/1647/447 +f 1304/1643/447 1311/1641/447 1310/1648/447 +f 1337/1649/447 1347/1650/447 1348/1651/447 +f 1341/1652/447 1345/1653/447 1340/1654/447 +f 1337/1649/447 1350/1655/447 1335/1656/447 +f 1341/1657/447 1343/1658/447 1344/1659/447 +f 1336/1660/447 1350/1655/447 1349/1661/447 +f 1339/1662/447 1345/1653/447 1346/1663/447 +f 1339/1662/447 1347/1650/447 1338/1664/447 +f 1336/1660/447 1343/1658/447 1342/1665/447 +f 1353/1666/450 1355/1667/450 1351/1668/450 +f 1352/1669/450 1358/1670/450 1354/1671/450 +f 1351/1668/450 1360/1672/450 1352/1669/450 +f 1351/1668/450 1355/1667/450 1359/1673/450 +f 1352/1669/450 1360/1672/450 1357/1674/450 +f 1353/1675/448 1362/1676/448 1361/1677/448 +f 1358/1678/455 1364/1679/455 1354/1680/455 +f 1352/1669/455 1362/1681/455 1351/1668/455 +f 1356/1682/455 1361/1677/455 1365/1683/455 +f 1355/1684/456 1369/1685/456 1359/1673/456 +f 1354/1680/449 1363/1686/449 1352/1687/449 +f 1359/1673/457 1370/1688/457 1360/1672/457 +f 1358/1678/448 1367/1689/448 1368/1690/448 +f 1357/1691/458 1370/1688/458 1367/1689/458 +f 1356/1682/449 1366/1692/449 1355/1684/449 +f 958/1693/446 957/1694/446 1029/1437/446 +f 1029/1437/446 1033/1491/446 1032/1493/446 +f 1031/1438/446 959/1695/446 960/1439/446 +f 1029/1437/446 1032/1493/446 1031/1438/446 +f 960/1439/446 958/1693/446 1029/1437/446 +f 1030/1440/447 961/1447/447 962/1441/447 +f 962/1441/447 964/1444/447 1034/1442/447 +f 964/1444/447 963/1696/447 1034/1442/447 +f 1034/1442/447 1035/1492/447 1036/1494/447 +f 1036/1494/447 1030/1440/447 1034/1442/447 +f 959/1443/448 963/1696/448 964/1444/448 +f 958/1446/449 962/1441/449 961/1447/449 +f 960/1449/450 964/1444/450 962/1441/450 +f 957/1451/451 961/1697/451 1030/1452/451 +f 991/1454/447 1007/1698/447 1006/1455/447 +f 992/1457/447 1008/1699/447 1007/1458/447 +f 993/1459/447 1009/1700/447 1008/1460/447 +f 994/1461/447 1010/1701/447 1009/1462/447 +f 995/1463/447 1011/1702/447 1010/1464/447 +f 996/1465/447 1012/1703/447 1011/1466/447 +f 981/1467/447 997/1704/447 1012/1468/447 +f 982/1469/447 998/1705/447 997/1470/447 +f 983/1471/447 999/1706/447 998/1472/447 +f 984/1473/447 1000/1707/447 999/1474/447 +f 985/1475/447 1001/1708/447 1000/1476/447 +f 985/1477/447 986/1482/447 1002/1478/447 +f 987/1480/447 1003/1709/447 1002/1481/447 +f 987/1480/447 988/1485/447 1004/1483/447 +f 988/1485/447 989/1488/447 1005/1486/447 +f 989/1488/447 990/1456/447 1006/1489/447 +f 1033/1491/451 1036/1494/451 1035/1492/451 +f 1029/1453/452 1030/1452/452 1036/1494/452 +f 1031/1495/451 1034/1498/451 963/1496/451 +f 1032/1493/453 1035/1492/453 1034/1498/453 +f 1023/1499/447 1024/1502/447 1048/1500/447 +f 1024/1502/447 1025/1507/447 1049/1503/447 +f 1026/1505/447 1050/1710/447 1049/1506/447 +f 1027/1508/447 1051/1711/447 1050/1509/447 +f 1027/1508/447 1028/1514/447 1052/1510/447 +f 1013/1512/447 1037/1712/447 1052/1513/447 +f 1014/1515/447 1038/1713/447 1037/1516/447 +f 1015/1517/447 1039/1714/447 1038/1518/447 +f 1016/1519/447 1040/1715/447 1039/1520/447 +f 1017/1521/447 1041/1716/447 1040/1522/447 +f 1018/1523/447 1042/1717/447 1041/1524/447 +f 1019/1526/447 1043/1718/447 1042/1527/447 +f 1019/1526/447 1020/1530/447 1044/1528/447 +f 1020/1530/447 1021/1535/447 1045/1531/447 +f 1022/1533/447 1046/1719/447 1045/1534/447 +f 1023/1499/447 1047/1720/447 1046/1536/447 +f 1093/1539/447 1094/1721/447 1095/1722/447 +f 1095/1722/447 1096/1723/447 1097/1537/447 +f 1097/1537/447 1098/1724/447 1099/1538/447 +f 1099/1538/447 1100/1725/447 1093/1539/447 +f 1093/1539/447 1095/1722/447 1097/1537/447 +f 1116/1540/450 1104/1726/450 1102/1541/450 +f 1114/1543/451 1101/1727/451 1103/1544/451 +f 1113/1546/448 1103/1728/448 1104/1547/448 +f 1115/1549/449 1102/1729/449 1101/1550/449 +f 1111/1552/447 1109/1730/447 1116/1540/447 +f 1107/1553/448 1110/1557/448 1109/1554/448 +f 1105/1556/451 1112/1560/451 1110/1557/451 +f 1108/1558/450 1109/1730/450 1111/1552/450 +f 1106/1559/449 1111/1552/449 1112/1560/449 +f 1112/1560/447 1114/1543/447 1113/1545/447 +f 1110/1557/447 1113/1546/447 1116/1548/447 +f 1111/1552/447 1115/1549/447 1114/1551/447 +f 1122/1561/447 1118/1575/447 1119/1562/447 +f 1123/1564/447 1120/1577/447 1117/1565/447 +f 1121/1563/447 1119/1579/447 1120/1567/447 +f 1127/1568/449 1122/1561/449 1121/1563/449 +f 1125/1570/450 1124/1573/450 1122/1561/450 +f 1128/1569/451 1121/1563/451 1123/1564/451 +f 1126/1571/448 1123/1564/448 1124/1566/448 +f 1124/1573/447 1117/1581/447 1118/1574/447 +f 1118/1575/449 1131/1731/449 1132/1576/449 +f 1120/1577/448 1130/1732/448 1129/1578/448 +f 1119/1579/451 1132/1733/451 1130/1580/451 +f 1117/1581/450 1129/1734/450 1131/1582/450 +f 1138/1735/448 1133/1736/448 1140/1585/448 +f 1133/1736/448 1134/1583/448 1140/1585/448 +f 1137/1586/447 1138/1735/447 1140/1585/447 +f 1142/1589/449 1136/1737/449 1135/1588/449 +f 1135/1588/449 1137/1586/449 1141/1587/449 +f 1142/1590/454 1141/1587/454 1140/1585/454 +f 1136/1592/451 1142/1590/451 1139/1591/451 +f 1161/1594/447 1162/1609/447 1171/1595/447 +f 1165/1597/447 1168/1738/447 1169/1598/447 +f 1161/1594/447 1172/1596/447 1174/1600/447 +f 1165/1602/447 1166/1610/447 1167/1603/447 +f 1160/1605/447 1159/1601/447 1174/1600/447 +f 1163/1607/447 1164/1599/447 1169/1598/447 +f 1163/1607/447 1170/1608/447 1171/1595/447 +f 1160/1605/447 1173/1606/447 1167/1603/447 +f 1183/1739/447 1184/1740/447 1185/1611/447 +f 1185/1611/447 1186/1741/447 1187/1612/447 +f 1187/1612/447 1188/1742/447 1189/1613/447 +f 1189/1613/447 1190/1743/447 1183/1739/447 +f 1183/1739/447 1185/1611/447 1189/1613/447 +f 1199/1616/447 1200/1744/447 1201/1745/447 +f 1201/1745/447 1202/1746/447 1203/1614/447 +f 1203/1614/447 1204/1747/447 1205/1615/447 +f 1205/1615/447 1206/1748/447 1199/1616/447 +f 1199/1616/447 1201/1745/447 1203/1614/447 +f 1215/1619/447 1216/1749/447 1217/1750/447 +f 1217/1750/447 1218/1751/447 1219/1617/447 +f 1219/1617/447 1220/1752/447 1221/1618/447 +f 1221/1618/447 1222/1753/447 1215/1619/447 +f 1215/1619/447 1217/1750/447 1219/1617/447 +f 1231/1754/447 1232/1755/447 1233/1620/447 +f 1233/1620/447 1234/1756/447 1235/1621/447 +f 1235/1621/447 1236/1757/447 1237/1622/447 +f 1237/1622/447 1238/1758/447 1231/1754/447 +f 1231/1754/447 1233/1620/447 1237/1622/447 +f 1247/1759/447 1248/1760/447 1249/1623/447 +f 1249/1623/447 1250/1761/447 1251/1624/447 +f 1251/1624/447 1252/1762/447 1253/1625/447 +f 1253/1625/447 1254/1763/447 1247/1759/447 +f 1247/1759/447 1249/1623/447 1253/1625/447 +f 1263/1764/447 1264/1765/447 1265/1626/447 +f 1265/1626/447 1266/1766/447 1267/1627/447 +f 1267/1627/447 1268/1767/447 1269/1628/447 +f 1269/1628/447 1270/1768/447 1263/1764/447 +f 1263/1764/447 1265/1626/447 1269/1628/447 +f 1279/1631/447 1280/1769/447 1281/1770/447 +f 1281/1770/447 1282/1771/447 1283/1629/447 +f 1283/1629/447 1284/1772/447 1285/1630/447 +f 1285/1630/447 1286/1773/447 1279/1631/447 +f 1279/1631/447 1281/1770/447 1283/1629/447 +f 1305/1632/447 1306/1647/447 1315/1633/447 +f 1309/1635/447 1312/1774/447 1313/1636/447 +f 1305/1632/447 1316/1634/447 1318/1638/447 +f 1309/1640/447 1310/1648/447 1311/1641/447 +f 1304/1643/447 1303/1639/447 1318/1638/447 +f 1307/1645/447 1308/1637/447 1313/1636/447 +f 1307/1645/447 1314/1646/447 1315/1633/447 +f 1304/1643/447 1317/1644/447 1311/1641/447 +f 1337/1649/447 1338/1664/447 1347/1650/447 +f 1341/1652/447 1344/1775/447 1345/1653/447 +f 1337/1649/447 1348/1651/447 1350/1655/447 +f 1341/1657/447 1342/1665/447 1343/1658/447 +f 1336/1660/447 1335/1656/447 1350/1655/447 +f 1339/1662/447 1340/1654/447 1345/1653/447 +f 1339/1662/447 1346/1663/447 1347/1650/447 +f 1336/1660/447 1349/1661/447 1343/1658/447 +f 1353/1666/450 1356/1776/450 1355/1667/450 +f 1352/1669/450 1357/1674/450 1358/1670/450 +f 1351/1668/450 1359/1673/450 1360/1672/450 +f 1353/1675/448 1351/1777/448 1362/1676/448 +f 1358/1678/455 1368/1690/455 1364/1679/455 +f 1352/1669/455 1363/1778/455 1362/1681/455 +f 1356/1682/455 1353/1675/455 1361/1677/455 +f 1355/1684/456 1366/1692/456 1369/1685/456 +f 1354/1680/449 1364/1679/449 1363/1686/449 +f 1359/1673/457 1369/1685/457 1370/1688/457 +f 1358/1678/448 1357/1691/448 1367/1689/448 +f 1357/1691/458 1360/1672/458 1370/1688/458 +f 1356/1682/449 1365/1683/449 1366/1692/449 +s 1 +f 988/1485/459 971/1779/452 972/1780/459 +f 996/1465/460 979/1781/461 980/1782/460 +f 989/1488/449 972/1780/459 973/1783/449 +f 982/1469/462 965/1784/448 966/1785/462 +f 981/1467/448 980/1782/460 965/1784/448 +f 990/1456/463 973/1783/449 974/1786/463 +f 983/1471/453 966/1785/462 967/1787/453 +f 991/1454/464 974/1786/463 975/1788/464 +f 984/1473/465 967/1787/453 968/1789/465 +f 992/1457/466 975/1788/464 976/1790/466 +f 985/1475/451 968/1789/465 969/1791/451 +f 993/1459/450 976/1790/466 977/1792/450 +f 986/1482/467 969/1793/451 970/1794/467 +f 994/1461/468 977/1792/450 978/1795/468 +f 987/1480/452 970/1794/467 971/1779/452 +f 995/1463/461 978/1795/468 979/1781/461 +f 998/1796/462 1013/1512/448 997/1797/448 +f 997/1797/448 1028/1514/460 1012/1798/460 +f 1006/1799/463 1021/1535/449 1005/1800/449 +f 999/1801/453 1014/1515/462 998/1796/462 +f 1007/1802/464 1022/1533/463 1006/1799/463 +f 1000/1803/465 1015/1517/453 999/1801/453 +f 1008/1804/466 1023/1499/464 1007/1802/464 +f 1001/1805/451 1016/1519/465 1000/1803/465 +f 1009/1806/450 1024/1502/466 1008/1804/466 +f 1002/1807/467 1017/1525/451 1001/1808/451 +f 1010/1809/468 1025/1507/450 1009/1806/450 +f 1003/1810/452 1018/1523/467 1002/1807/467 +f 1011/1811/461 1026/1505/468 1010/1809/468 +f 1004/1812/459 1019/1526/452 1003/1810/452 +f 1012/1798/460 1027/1508/461 1011/1811/461 +f 1005/1800/449 1020/1530/459 1004/1812/459 +f 1037/1813/449 1068/1814/469 1052/1815/459 +f 1046/1816/462 1061/1817/470 1045/1818/448 +f 1039/1819/464 1054/1820/471 1038/1821/463 +f 1047/1822/453 1062/1823/472 1046/1816/462 +f 1040/1824/466 1055/1825/473 1039/1819/464 +f 1048/1826/465 1063/1827/474 1047/1822/453 +f 1041/1828/450 1056/1829/475 1040/1824/466 +f 1049/1830/451 1064/1831/476 1048/1826/465 +f 1042/1832/468 1057/1833/477 1041/1834/450 +f 1050/1835/467 1065/1836/478 1049/1830/451 +f 1043/1837/461 1058/1838/479 1042/1832/468 +f 1051/1839/452 1066/1840/480 1050/1835/467 +f 1044/1841/460 1059/1842/481 1043/1837/461 +f 1052/1815/459 1067/1843/482 1051/1839/452 +f 1045/1818/448 1060/1844/483 1044/1841/460 +f 1038/1821/463 1053/1845/484 1037/1813/449 +f 1057/1833/477 1074/1846/485 1073/1847/486 +f 1056/1829/475 1073/1848/486 1072/1849/487 +f 1055/1825/473 1072/1850/487 1071/1851/488 +f 1055/1825/473 1070/1852/489 1054/1820/471 +f 1053/1845/484 1070/1853/489 1069/1854/490 +f 1053/1845/484 1084/1855/491 1068/1814/469 +f 1068/1814/469 1083/1856/492 1067/1843/482 +f 1067/1843/482 1082/1857/493 1066/1840/480 +f 1065/1836/478 1082/1858/493 1081/1859/494 +f 1065/1836/478 1080/1860/495 1064/1831/476 +f 1064/1831/476 1079/1861/496 1063/1827/474 +f 1062/1823/472 1079/1862/496 1078/1863/497 +f 1061/1817/470 1078/1864/497 1077/1865/498 +f 1061/1817/470 1076/1866/499 1060/1844/483 +f 1060/1844/483 1075/1867/500 1059/1842/481 +f 1059/1842/481 1074/1868/485 1058/1838/479 +f 1077/1869/498 1081/1870/494 1069/1871/490 +f 1092/1872/453 1099/1873/448 1091/1874/448 +f 1090/1875/461 1097/1876/450 1089/1877/450 +f 1088/1878/464 1095/1879/449 1087/1880/449 +f 1086/1881/452 1093/1882/451 1085/1883/451 +f 1085/1884/451 1100/1885/453 1092/1872/453 +f 1091/1874/448 1098/1886/461 1090/1875/461 +f 1089/1877/450 1096/1887/464 1088/1878/464 +f 1087/1880/449 1094/1888/452 1086/1881/452 +f 1169/1598/464 1155/1889/449 1170/1608/449 +f 1174/1600/453 1152/1890/448 1173/1606/448 +f 1143/1891/453 1160/1605/448 1144/1892/448 +f 1171/1595/452 1153/1893/451 1172/1596/451 +f 1149/1894/450 1164/1599/464 1148/1895/464 +f 1167/1603/461 1157/1896/450 1168/1604/450 +f 1170/1608/449 1154/1897/452 1171/1595/452 +f 1148/1895/464 1163/1607/449 1147/1898/449 +f 1172/1596/451 1151/1899/453 1174/1600/453 +f 1168/1738/450 1156/1900/464 1169/1598/464 +f 1145/1901/451 1159/1601/453 1143/1891/453 +f 1173/1606/448 1158/1902/461 1167/1603/461 +f 1147/1898/449 1162/1609/452 1146/1903/452 +f 1150/1904/461 1165/1602/450 1149/1905/450 +f 1144/1892/448 1166/1610/461 1150/1904/461 +f 1146/1903/452 1161/1594/451 1145/1901/451 +f 1182/1906/464 1189/1907/449 1181/1908/449 +f 1180/1909/452 1187/1910/451 1179/1911/451 +f 1178/1912/453 1185/1913/448 1177/1914/448 +f 1176/1915/461 1183/1916/450 1175/1917/450 +f 1175/1918/450 1190/1919/464 1182/1906/464 +f 1181/1908/449 1188/1920/452 1180/1909/452 +f 1179/1911/451 1186/1921/453 1178/1912/453 +f 1177/1914/448 1184/1922/461 1176/1915/461 +f 1198/1923/452 1205/1924/451 1197/1925/451 +f 1196/1926/453 1203/1927/448 1195/1928/448 +f 1194/1929/461 1201/1930/450 1193/1931/450 +f 1192/1932/464 1199/1933/449 1191/1934/449 +f 1191/1935/449 1206/1936/452 1198/1923/452 +f 1197/1925/451 1204/1937/453 1196/1926/453 +f 1195/1928/448 1202/1938/461 1194/1929/461 +f 1193/1931/450 1200/1939/464 1192/1932/464 +f 1214/1940/461 1221/1941/450 1213/1942/450 +f 1212/1943/464 1219/1944/449 1211/1945/449 +f 1210/1946/452 1217/1947/451 1209/1948/451 +f 1208/1949/453 1215/1950/448 1207/1951/448 +f 1207/1952/448 1222/1953/461 1214/1940/461 +f 1213/1942/450 1220/1954/464 1212/1943/464 +f 1211/1945/449 1218/1955/452 1210/1946/452 +f 1209/1948/451 1216/1956/453 1208/1949/453 +f 1230/1957/451 1237/1958/453 1229/1959/453 +f 1228/1960/448 1235/1961/461 1227/1962/461 +f 1226/1963/450 1233/1964/464 1225/1965/464 +f 1224/1966/449 1231/1967/452 1223/1968/452 +f 1223/1969/452 1238/1970/451 1230/1957/451 +f 1229/1959/453 1236/1971/448 1228/1960/448 +f 1227/1962/461 1234/1972/450 1226/1963/450 +f 1225/1965/464 1232/1973/449 1224/1966/449 +f 1246/1974/450 1253/1975/464 1245/1976/464 +f 1244/1977/449 1251/1978/452 1243/1979/452 +f 1242/1980/451 1249/1981/453 1241/1982/453 +f 1240/1983/448 1247/1984/461 1239/1985/461 +f 1239/1986/461 1254/1987/450 1246/1974/450 +f 1245/1976/464 1252/1988/449 1244/1977/449 +f 1243/1979/452 1250/1989/451 1242/1980/451 +f 1241/1982/453 1248/1990/448 1240/1983/448 +f 1262/1991/449 1269/1992/452 1261/1993/452 +f 1260/1994/451 1267/1995/453 1259/1996/453 +f 1258/1997/448 1265/1998/461 1257/1999/461 +f 1256/2000/450 1263/2001/464 1255/2002/464 +f 1255/2003/464 1270/2004/449 1262/1991/449 +f 1261/1993/452 1268/2005/451 1260/1994/451 +f 1259/1996/453 1266/2006/448 1258/1997/448 +f 1257/1999/461 1264/2007/450 1256/2000/450 +f 1278/2008/448 1285/2009/461 1277/2010/461 +f 1276/2011/450 1283/2012/464 1275/2013/464 +f 1274/2014/449 1281/2015/452 1273/2016/452 +f 1272/2017/451 1279/2018/453 1271/2019/453 +f 1271/2020/453 1286/2021/448 1278/2008/448 +f 1277/2010/461 1284/2022/450 1276/2011/450 +f 1275/2013/464 1282/2023/449 1274/2014/449 +f 1273/2016/452 1280/2024/451 1272/2017/451 +f 1313/1636/464 1299/2025/449 1314/1646/449 +f 1318/1638/453 1296/2026/448 1317/1644/448 +f 1287/2027/453 1304/1643/448 1288/2028/448 +f 1315/1633/452 1297/2029/451 1316/1634/451 +f 1293/2030/450 1308/1637/464 1292/2031/464 +f 1311/1641/461 1301/2032/450 1312/1642/450 +f 1314/1646/449 1298/2033/452 1315/1633/452 +f 1292/2031/464 1307/1645/449 1291/2034/449 +f 1316/1634/451 1295/2035/453 1318/1638/453 +f 1312/1774/450 1300/2036/464 1313/1636/464 +f 1289/2037/451 1303/1639/453 1287/2027/453 +f 1317/1644/448 1302/2038/461 1311/1641/461 +f 1291/2034/449 1306/1647/452 1290/2039/452 +f 1294/2040/461 1309/1640/450 1293/2041/450 +f 1288/2028/448 1310/1648/461 1294/2040/461 +f 1290/2039/452 1305/1632/451 1289/2037/451 +f 1345/1653/464 1331/2042/449 1346/1663/449 +f 1350/1655/453 1328/2043/448 1349/1661/448 +f 1319/2044/453 1336/1660/448 1320/2045/448 +f 1347/1650/452 1329/2046/451 1348/1651/451 +f 1325/2047/450 1340/1654/464 1324/2048/464 +f 1343/1658/461 1333/2049/450 1344/1659/450 +f 1346/1663/449 1330/2050/452 1347/1650/452 +f 1324/2048/464 1339/1662/449 1323/2051/449 +f 1348/1651/451 1327/2052/453 1350/1655/453 +f 1344/1775/450 1332/2053/464 1345/1653/464 +f 1321/2054/451 1335/1656/453 1319/2044/453 +f 1349/1661/448 1334/2055/461 1343/1658/461 +f 1323/2051/449 1338/1664/452 1322/2056/452 +f 1326/2057/461 1341/1657/450 1325/2058/450 +f 1320/2045/448 1342/1665/461 1326/2057/461 +f 1322/2056/452 1337/1649/451 1321/2054/451 +f 988/1485/459 987/1480/452 971/1779/452 +f 996/1465/460 995/1463/461 979/1781/461 +f 989/1488/449 988/1485/459 972/1780/459 +f 982/1469/462 981/1467/448 965/1784/448 +f 981/1467/448 996/1465/460 980/1782/460 +f 990/1456/463 989/1488/449 973/1783/449 +f 983/1471/453 982/1469/462 966/1785/462 +f 991/1454/464 990/1456/463 974/1786/463 +f 984/1473/465 983/1471/453 967/1787/453 +f 992/1457/466 991/1454/464 975/1788/464 +f 985/1475/451 984/1473/465 968/1789/465 +f 993/1459/450 992/1457/466 976/1790/466 +f 986/1482/467 985/1477/451 969/1793/451 +f 994/1461/468 993/1459/450 977/1792/450 +f 987/1480/452 986/1482/467 970/1794/467 +f 995/1463/461 994/1461/468 978/1795/468 +f 998/1796/462 1014/1515/462 1013/1512/448 +f 997/1797/448 1013/1512/448 1028/1514/460 +f 1006/1799/463 1022/1533/463 1021/1535/449 +f 999/1801/453 1015/1517/453 1014/1515/462 +f 1007/1802/464 1023/1499/464 1022/1533/463 +f 1000/1803/465 1016/1519/465 1015/1517/453 +f 1008/1804/466 1024/1502/466 1023/1499/464 +f 1001/1805/451 1017/1521/451 1016/1519/465 +f 1009/1806/450 1025/1507/450 1024/1502/466 +f 1002/1807/467 1018/1523/467 1017/1525/451 +f 1010/1809/468 1026/1505/468 1025/1507/450 +f 1003/1810/452 1019/1526/452 1018/1523/467 +f 1011/1811/461 1027/1508/461 1026/1505/468 +f 1004/1812/459 1020/1530/459 1019/1526/452 +f 1012/1798/460 1028/1514/460 1027/1508/461 +f 1005/1800/449 1021/1535/449 1020/1530/459 +f 1037/1813/449 1053/1845/484 1068/1814/469 +f 1046/1816/462 1062/1823/472 1061/1817/470 +f 1039/1819/464 1055/1825/473 1054/1820/471 +f 1047/1822/453 1063/1827/474 1062/1823/472 +f 1040/1824/466 1056/1829/475 1055/1825/473 +f 1048/1826/465 1064/1831/476 1063/1827/474 +f 1041/1828/450 1057/2059/477 1056/1829/475 +f 1049/1830/451 1065/1836/478 1064/1831/476 +f 1042/1832/468 1058/1838/479 1057/1833/477 +f 1050/1835/467 1066/1840/480 1065/1836/478 +f 1043/1837/461 1059/1842/481 1058/1838/479 +f 1051/1839/452 1067/1843/482 1066/1840/480 +f 1044/1841/460 1060/1844/483 1059/1842/481 +f 1052/1815/459 1068/1814/469 1067/1843/482 +f 1045/1818/448 1061/1817/470 1060/1844/483 +f 1038/1821/463 1054/1820/471 1053/1845/484 +f 1057/1833/477 1058/1838/479 1074/1846/485 +f 1056/1829/475 1057/2059/477 1073/1848/486 +f 1055/1825/473 1056/1829/475 1072/1850/487 +f 1055/1825/473 1071/2060/488 1070/1852/489 +f 1053/1845/484 1054/1820/471 1070/1853/489 +f 1053/1845/484 1069/2061/490 1084/1855/491 +f 1068/1814/469 1084/2062/491 1083/1856/492 +f 1067/1843/482 1083/2063/492 1082/1857/493 +f 1065/1836/478 1066/1840/480 1082/1858/493 +f 1065/1836/478 1081/2064/494 1080/1860/495 +f 1064/1831/476 1080/2065/495 1079/1861/496 +f 1062/1823/472 1063/1827/474 1079/1862/496 +f 1061/1817/470 1062/1823/472 1078/1864/497 +f 1061/1817/470 1077/2066/498 1076/1866/499 +f 1060/1844/483 1076/2067/499 1075/1867/500 +f 1059/1842/481 1075/2068/500 1074/1868/485 +f 1069/1871/490 1070/2069/489 1071/2070/488 +f 1071/2070/488 1072/2071/487 1073/2072/486 +f 1073/2072/486 1074/2073/485 1075/2074/500 +f 1075/2074/500 1076/2075/499 1077/1869/498 +f 1077/1869/498 1078/2076/497 1079/2077/496 +f 1079/2077/496 1080/2078/495 1077/1869/498 +f 1080/2078/495 1081/1870/494 1077/1869/498 +f 1081/1870/494 1082/2079/493 1069/1871/490 +f 1082/2079/493 1083/2080/492 1069/1871/490 +f 1083/2080/492 1084/2081/491 1069/1871/490 +f 1069/1871/490 1071/2070/488 1073/2072/486 +f 1073/2072/486 1075/2074/500 1069/1871/490 +f 1075/2074/500 1077/1869/498 1069/1871/490 +f 1092/1872/453 1100/1885/453 1099/1873/448 +f 1090/1875/461 1098/1886/461 1097/1876/450 +f 1088/1878/464 1096/1887/464 1095/1879/449 +f 1086/1881/452 1094/1888/452 1093/1882/451 +f 1085/1884/451 1093/2082/451 1100/1885/453 +f 1091/1874/448 1099/1873/448 1098/1886/461 +f 1089/1877/450 1097/1876/450 1096/1887/464 +f 1087/1880/449 1095/1879/449 1094/1888/452 +f 1169/1598/464 1156/1900/464 1155/1889/449 +f 1174/1600/453 1151/1899/453 1152/1890/448 +f 1143/1891/453 1159/1601/453 1160/1605/448 +f 1171/1595/452 1154/1897/452 1153/1893/451 +f 1149/1894/450 1165/1597/450 1164/1599/464 +f 1167/1603/461 1158/1902/461 1157/1896/450 +f 1170/1608/449 1155/1889/449 1154/1897/452 +f 1148/1895/464 1164/1599/464 1163/1607/449 +f 1172/1596/451 1153/1893/451 1151/1899/453 +f 1168/1738/450 1157/2083/450 1156/1900/464 +f 1145/1901/451 1161/1594/451 1159/1601/453 +f 1173/1606/448 1152/1890/448 1158/1902/461 +f 1147/1898/449 1163/1607/449 1162/1609/452 +f 1150/1904/461 1166/1610/461 1165/1602/450 +f 1144/1892/448 1160/1605/448 1166/1610/461 +f 1146/1903/452 1162/1609/452 1161/1594/451 +f 1182/1906/464 1190/1919/464 1189/1907/449 +f 1180/1909/452 1188/1920/452 1187/1910/451 +f 1178/1912/453 1186/1921/453 1185/1913/448 +f 1176/1915/461 1184/1922/461 1183/1916/450 +f 1175/1918/450 1183/2084/450 1190/1919/464 +f 1181/1908/449 1189/1907/449 1188/1920/452 +f 1179/1911/451 1187/1910/451 1186/1921/453 +f 1177/1914/448 1185/1913/448 1184/1922/461 +f 1198/1923/452 1206/1936/452 1205/1924/451 +f 1196/1926/453 1204/1937/453 1203/1927/448 +f 1194/1929/461 1202/1938/461 1201/1930/450 +f 1192/1932/464 1200/1939/464 1199/1933/449 +f 1191/1935/449 1199/2085/449 1206/1936/452 +f 1197/1925/451 1205/1924/451 1204/1937/453 +f 1195/1928/448 1203/1927/448 1202/1938/461 +f 1193/1931/450 1201/1930/450 1200/1939/464 +f 1214/1940/461 1222/1953/461 1221/1941/450 +f 1212/1943/464 1220/1954/464 1219/1944/449 +f 1210/1946/452 1218/1955/452 1217/1947/451 +f 1208/1949/453 1216/1956/453 1215/1950/448 +f 1207/1952/448 1215/2086/448 1222/1953/461 +f 1213/1942/450 1221/1941/450 1220/1954/464 +f 1211/1945/449 1219/1944/449 1218/1955/452 +f 1209/1948/451 1217/1947/451 1216/1956/453 +f 1230/1957/451 1238/1970/451 1237/1958/453 +f 1228/1960/448 1236/1971/448 1235/1961/461 +f 1226/1963/450 1234/1972/450 1233/1964/464 +f 1224/1966/449 1232/1973/449 1231/1967/452 +f 1223/1969/452 1231/2087/452 1238/1970/451 +f 1229/1959/453 1237/1958/453 1236/1971/448 +f 1227/1962/461 1235/1961/461 1234/1972/450 +f 1225/1965/464 1233/1964/464 1232/1973/449 +f 1246/1974/450 1254/1987/450 1253/1975/464 +f 1244/1977/449 1252/1988/449 1251/1978/452 +f 1242/1980/451 1250/1989/451 1249/1981/453 +f 1240/1983/448 1248/1990/448 1247/1984/461 +f 1239/1986/461 1247/2088/461 1254/1987/450 +f 1245/1976/464 1253/1975/464 1252/1988/449 +f 1243/1979/452 1251/1978/452 1250/1989/451 +f 1241/1982/453 1249/1981/453 1248/1990/448 +f 1262/1991/449 1270/2004/449 1269/1992/452 +f 1260/1994/451 1268/2005/451 1267/1995/453 +f 1258/1997/448 1266/2006/448 1265/1998/461 +f 1256/2000/450 1264/2007/450 1263/2001/464 +f 1255/2003/464 1263/2089/464 1270/2004/449 +f 1261/1993/452 1269/1992/452 1268/2005/451 +f 1259/1996/453 1267/1995/453 1266/2006/448 +f 1257/1999/461 1265/1998/461 1264/2007/450 +f 1278/2008/448 1286/2021/448 1285/2009/461 +f 1276/2011/450 1284/2022/450 1283/2012/464 +f 1274/2014/449 1282/2023/449 1281/2015/452 +f 1272/2017/451 1280/2024/451 1279/2018/453 +f 1271/2020/453 1279/2090/453 1286/2021/448 +f 1277/2010/461 1285/2009/461 1284/2022/450 +f 1275/2013/464 1283/2012/464 1282/2023/449 +f 1273/2016/452 1281/2015/452 1280/2024/451 +f 1313/1636/464 1300/2036/464 1299/2025/449 +f 1318/1638/453 1295/2035/453 1296/2026/448 +f 1287/2027/453 1303/1639/453 1304/1643/448 +f 1315/1633/452 1298/2033/452 1297/2029/451 +f 1293/2030/450 1309/1635/450 1308/1637/464 +f 1311/1641/461 1302/2038/461 1301/2032/450 +f 1314/1646/449 1299/2025/449 1298/2033/452 +f 1292/2031/464 1308/1637/464 1307/1645/449 +f 1316/1634/451 1297/2029/451 1295/2035/453 +f 1312/1774/450 1301/2091/450 1300/2036/464 +f 1289/2037/451 1305/1632/451 1303/1639/453 +f 1317/1644/448 1296/2026/448 1302/2038/461 +f 1291/2034/449 1307/1645/449 1306/1647/452 +f 1294/2040/461 1310/1648/461 1309/1640/450 +f 1288/2028/448 1304/1643/448 1310/1648/461 +f 1290/2039/452 1306/1647/452 1305/1632/451 +f 1345/1653/464 1332/2053/464 1331/2042/449 +f 1350/1655/453 1327/2052/453 1328/2043/448 +f 1319/2044/453 1335/1656/453 1336/1660/448 +f 1347/1650/452 1330/2050/452 1329/2046/451 +f 1325/2047/450 1341/1652/450 1340/1654/464 +f 1343/1658/461 1334/2055/461 1333/2049/450 +f 1346/1663/449 1331/2042/449 1330/2050/452 +f 1324/2048/464 1340/1654/464 1339/1662/449 +f 1348/1651/451 1329/2046/451 1327/2052/453 +f 1344/1775/450 1333/2092/450 1332/2053/464 +f 1321/2054/451 1337/1649/451 1335/1656/453 +f 1349/1661/448 1328/2043/448 1334/2055/461 +f 1323/2051/449 1339/1662/449 1338/1664/452 +f 1326/2057/461 1342/1665/461 1341/1657/450 +f 1320/2045/448 1336/1660/448 1342/1665/461 +f 1322/2056/452 1338/1664/452 1337/1649/451 diff --git a/src/main/resources/assets/hbm/models/machines/arc_welder.obj b/src/main/resources/assets/hbm/models/machines/arc_welder.obj new file mode 100644 index 000000000..cf99681bf --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/arc_welder.obj @@ -0,0 +1,1225 @@ +# Blender v2.79 (sub 0) OBJ File: 'arc_welder.blend' +# www.blender.org +o Plane +v -1.000000 0.000000 1.500000 +v 1.000000 0.000000 1.500000 +v -1.000000 0.000000 -1.500000 +v 1.000000 0.000000 -1.500000 +v -1.000000 0.125000 1.500000 +v 1.000000 0.125000 1.500000 +v -1.000000 0.125000 -1.500000 +v 1.000000 0.125000 -1.500000 +v -1.000000 0.875000 1.500000 +v 1.000000 0.875000 1.500000 +v -1.000000 0.875000 -1.500000 +v 1.000000 0.875000 -1.500000 +v -1.000000 1.000000 1.500000 +v 1.000000 1.000000 1.500000 +v -1.000000 1.000000 -1.500000 +v 1.000000 1.000000 -1.500000 +v -0.875000 0.125000 -1.375000 +v -0.875000 0.125000 1.375000 +v 0.875000 0.125000 1.375000 +v 0.875000 0.125000 -1.375000 +v -0.875000 0.875000 -1.375000 +v -0.875000 0.875000 1.375000 +v 0.875000 0.875000 1.375000 +v 0.875000 0.875000 -1.375000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.125000 -0.500000 +v -0.500000 1.125000 0.500000 +v 0.500000 1.125000 0.500000 +v 0.500000 1.125000 -0.500000 +v -0.750000 2.000000 1.125000 +v 0.750000 2.000000 1.125000 +v -0.750000 2.000000 0.875000 +v 0.750000 2.000000 0.875000 +v -0.750000 1.000000 1.125000 +v 0.750000 1.000000 1.125000 +v -0.750000 1.000000 0.875000 +v 0.750000 1.000000 0.875000 +v -0.500000 1.750000 1.125000 +v 0.500000 1.750000 1.125000 +v -0.500000 1.750000 0.875000 +v 0.500000 1.750000 0.875000 +v 0.500000 1.000000 1.125000 +v 0.500000 1.000000 0.875000 +v -0.500000 1.000000 1.125000 +v -0.500000 1.000000 0.875000 +v -0.750000 2.000000 -0.875000 +v 0.750000 2.000000 -0.875000 +v -0.750000 2.000000 -1.125000 +v 0.750000 2.000000 -1.125000 +v -0.750000 1.000000 -0.875000 +v 0.750000 1.000000 -0.875000 +v -0.750000 1.000000 -1.125000 +v 0.750000 1.000000 -1.125000 +v -0.500000 1.750000 -0.875000 +v 0.500000 1.750000 -0.875000 +v -0.500000 1.750000 -1.125000 +v 0.500000 1.750000 -1.125000 +v 0.500000 1.000000 -0.875000 +v 0.500000 1.000000 -1.125000 +v -0.500000 1.000000 -0.875000 +v -0.500000 1.000000 -1.125000 +v -0.250000 1.849455 1.399379 +v -0.250000 2.259031 1.112591 +v -0.250000 1.419272 0.785015 +v -0.250000 1.828848 0.498227 +v 0.250000 1.849455 1.399379 +v 0.250000 2.259031 1.112591 +v 0.250000 1.419272 0.785015 +v 0.250000 1.828848 0.498227 +v -0.187500 1.900652 1.363531 +v -0.187500 2.207834 1.148439 +v 0.187500 2.207834 1.148439 +v 0.187500 1.900652 1.363531 +v -0.187500 1.972349 1.465925 +v -0.187500 2.279531 1.250834 +v 0.187500 2.279531 1.250834 +v 0.187500 1.972349 1.465925 +v -0.125000 1.726454 0.569924 +v -0.125000 1.521666 0.713318 +v 0.125000 1.521666 0.713318 +v 0.125000 1.726454 0.569924 +v -0.125000 1.583060 0.365136 +v -0.125000 1.378272 0.508530 +v 0.125000 1.378272 0.508530 +v 0.125000 1.583060 0.365136 +v -0.062500 1.531863 0.400984 +v -0.062500 1.429469 0.472682 +v 0.062500 1.429469 0.472682 +v 0.062500 1.531863 0.400984 +v 0.000000 1.193878 0.027257 +v 0.250000 1.849455 -1.399379 +v 0.250000 2.259031 -1.112591 +v 0.250000 1.419272 -0.785015 +v 0.250000 1.828848 -0.498227 +v -0.250000 1.849455 -1.399379 +v -0.250000 2.259031 -1.112591 +v -0.250000 1.419272 -0.785015 +v -0.250000 1.828848 -0.498227 +v 0.187500 1.900652 -1.363531 +v 0.187500 2.207834 -1.148439 +v -0.187500 2.207834 -1.148439 +v -0.187500 1.900652 -1.363531 +v 0.187500 1.972349 -1.465925 +v 0.187500 2.279531 -1.250834 +v -0.187500 2.279531 -1.250834 +v -0.187500 1.972349 -1.465925 +v 0.125000 1.726454 -0.569924 +v 0.125000 1.521666 -0.713318 +v -0.125000 1.521666 -0.713318 +v -0.125000 1.726454 -0.569924 +v 0.125000 1.583060 -0.365136 +v 0.125000 1.378272 -0.508530 +v -0.125000 1.378272 -0.508530 +v -0.125000 1.583060 -0.365136 +v 0.062500 1.531863 -0.400984 +v 0.062500 1.429469 -0.472682 +v -0.062500 1.429469 -0.472682 +v -0.062500 1.531863 -0.400984 +v 0.000000 1.193878 -0.027257 +v -0.375000 1.000000 1.062500 +v 0.375000 1.000000 1.062500 +v -0.375000 1.000000 1.437500 +v 0.375000 1.000000 1.437500 +v -0.375000 1.187500 1.437500 +v -0.375000 1.187500 1.062500 +v 0.375000 1.187500 1.062500 +v 0.375000 1.187500 1.437500 +v -0.375000 1.250000 1.375000 +v -0.375000 1.250000 1.125000 +v 0.375000 1.250000 1.125000 +v 0.375000 1.250000 1.375000 +v -0.250000 1.000000 1.343750 +v -0.250000 1.000000 1.281250 +v -0.312500 1.000000 1.343750 +v -0.312500 1.000000 1.281250 +v -0.312500 2.062500 1.343750 +v -0.312500 2.062500 1.281250 +v -0.250000 2.062500 1.343750 +v -0.250000 2.062500 1.281250 +v -0.187500 2.062500 1.343750 +v -0.187500 2.062500 1.281250 +v -0.250000 2.125000 1.343750 +v -0.250000 2.125000 1.281250 +v -0.187500 2.125000 1.343750 +v -0.187500 2.125000 1.281250 +v -0.375000 1.000000 -1.437500 +v 0.375000 1.000000 -1.437500 +v -0.375000 1.000000 -1.062500 +v 0.375000 1.000000 -1.062500 +v -0.375000 1.187500 -1.062500 +v -0.375000 1.187500 -1.437500 +v 0.375000 1.187500 -1.437500 +v 0.375000 1.187500 -1.062500 +v -0.375000 1.250000 -1.125000 +v -0.375000 1.250000 -1.375000 +v 0.375000 1.250000 -1.375000 +v 0.375000 1.250000 -1.125000 +v -0.250000 1.000000 -1.281250 +v -0.250000 1.000000 -1.343750 +v -0.312500 1.000000 -1.281250 +v -0.312500 1.000000 -1.343750 +v -0.312500 2.062500 -1.281250 +v -0.312500 2.062500 -1.343750 +v -0.250000 2.062500 -1.281250 +v -0.250000 2.062500 -1.343750 +v -0.187500 2.062500 -1.281250 +v -0.187500 2.062500 -1.343750 +v -0.250000 2.125000 -1.281250 +v -0.250000 2.125000 -1.343750 +v -0.187500 2.125000 -1.281250 +v -0.187500 2.125000 -1.343750 +v 0.750000 1.250000 0.750000 +v 0.875000 1.250000 0.750000 +v 0.750000 1.250000 -0.750000 +v 0.875000 1.250000 -0.750000 +v 0.750000 1.000000 0.750000 +v 0.875000 1.000000 0.750000 +v 0.750000 1.000000 -0.750000 +v 0.875000 1.000000 -0.750000 +v 0.750000 1.124000 0.625000 +v 0.875000 1.124000 0.625000 +v 0.750000 1.124000 -0.625000 +v 0.875000 1.124000 -0.625000 +v 0.750000 0.999000 0.625000 +v 0.875000 0.999000 0.625000 +v 0.750000 0.999000 -0.625000 +v 0.875000 0.999000 -0.625000 +v -0.875000 1.250000 0.750000 +v -0.750000 1.250000 0.750000 +v -0.875000 1.250000 -0.750000 +v -0.750000 1.250000 -0.750000 +v -0.875000 1.000000 0.750000 +v -0.750000 1.000000 0.750000 +v -0.875000 1.000000 -0.750000 +v -0.750000 1.000000 -0.750000 +v -0.875000 1.124000 0.625000 +v -0.750000 1.124000 0.625000 +v -0.875000 1.124000 -0.625000 +v -0.750000 1.124000 -0.625000 +v -0.875000 0.999000 0.625000 +v -0.750000 0.999000 0.625000 +v -0.875000 0.999000 -0.625000 +v -0.750000 0.999000 -0.625000 +v -0.687500 0.687500 1.500000 +v -0.312500 0.687500 1.500000 +v -0.687500 0.312500 1.500000 +v -0.312500 0.312500 1.500000 +v -0.687500 0.312500 1.375000 +v -0.687500 0.687500 1.375000 +v -0.312500 0.687500 1.375000 +v -0.312500 0.312500 1.375000 +v 0.312500 0.687500 1.500000 +v 0.687500 0.687500 1.500000 +v 0.312500 0.312500 1.500000 +v 0.687500 0.312500 1.500000 +v 0.312500 0.312500 1.375000 +v 0.312500 0.687500 1.375000 +v 0.687500 0.687500 1.375000 +v 0.687500 0.312500 1.375000 +v 0.687500 0.687500 -1.500000 +v 0.312500 0.687500 -1.500000 +v 0.687500 0.312500 -1.500000 +v 0.312500 0.312500 -1.500000 +v 0.687500 0.312500 -1.375000 +v 0.687500 0.687500 -1.375000 +v 0.312500 0.687500 -1.375000 +v 0.312500 0.312500 -1.375000 +v -0.312500 0.687500 -1.500000 +v -0.687500 0.687500 -1.500000 +v -0.312500 0.312500 -1.500000 +v -0.687500 0.312500 -1.500000 +v -0.312500 0.312500 -1.375000 +v -0.312500 0.687500 -1.375000 +v -0.687500 0.687500 -1.375000 +v -0.687500 0.312500 -1.375000 +v 1.000000 0.687500 1.187500 +v 1.000000 0.687500 0.812500 +v 1.000000 0.312500 1.187500 +v 1.000000 0.312500 0.812500 +v 0.875000 0.312500 1.187500 +v 0.875000 0.687500 1.187500 +v 0.875000 0.687500 0.812500 +v 0.875000 0.312500 0.812500 +v 1.000000 0.687500 0.187500 +v 1.000000 0.687500 -0.187500 +v 1.000000 0.312500 0.187500 +v 1.000000 0.312500 -0.187500 +v 0.875000 0.312500 0.187500 +v 0.875000 0.687500 0.187500 +v 0.875000 0.687500 -0.187500 +v 0.875000 0.312500 -0.187500 +v -1.000000 0.687500 -0.187500 +v -1.000000 0.687500 0.187500 +v -1.000000 0.312500 -0.187500 +v -1.000000 0.312500 0.187500 +v -0.875000 0.312500 -0.187500 +v -0.875000 0.687500 -0.187500 +v -0.875000 0.687500 0.187500 +v -0.875000 0.312500 0.187500 +v -1.000000 0.687500 0.812500 +v -1.000000 0.687500 1.187500 +v -1.000000 0.312500 0.812500 +v -1.000000 0.312500 1.187500 +v -0.875000 0.312500 0.812500 +v -0.875000 0.687500 0.812500 +v -0.875000 0.687500 1.187500 +v -0.875000 0.312500 1.187500 +v 1.000000 0.687500 -0.812500 +v 1.000000 0.687500 -1.187500 +v 1.000000 0.312500 -0.812500 +v 1.000000 0.312500 -1.187500 +v 0.875000 0.312500 -0.812500 +v 0.875000 0.687500 -0.812500 +v 0.875000 0.687500 -1.187500 +v 0.875000 0.312500 -1.187500 +v -1.000000 0.687500 -1.187500 +v -1.000000 0.687500 -0.812500 +v -1.000000 0.312500 -1.187500 +v -1.000000 0.312500 -0.812500 +v -0.875000 0.312500 -1.187500 +v -0.875000 0.687500 -1.187500 +v -0.875000 0.687500 -0.812500 +v -0.875000 0.312500 -0.812500 +vt 0.571429 0.000000 +vt -0.000000 0.320000 +vt -0.000000 -0.000000 +vt 0.571429 0.340000 +vt 0.023810 0.360000 +vt 0.000000 0.340000 +vt 0.571429 0.320000 +vt 0.571429 0.320000 +vt 0.000000 0.340000 +vt 0.000000 0.320000 +vt 0.952381 0.320000 +vt 0.952381 0.320000 +vt 0.571429 0.340000 +vt 0.000000 0.500000 +vt 0.547619 0.480000 +vt 0.571429 0.500000 +vt -0.000000 0.520000 +vt 0.571429 0.840000 +vt -0.000000 0.840000 +vt 0.571429 0.500000 +vt -0.000000 0.520000 +vt 0.000000 0.500000 +vt 0.952381 0.500000 +vt 0.571429 0.520000 +vt 0.952381 0.500000 +vt 0.571429 0.520000 +vt 0.547619 0.360000 +vt 0.023810 0.480000 +vt 0.023810 0.360000 +vt 0.952381 0.340000 +vt 0.595238 0.360000 +vt 0.952381 0.340000 +vt 0.595238 0.360000 +vt 0.547619 0.360000 +vt 0.023810 0.480000 +vt 0.928571 0.360000 +vt 0.595238 0.480000 +vt 0.928571 0.360000 +vt 0.595238 0.480000 +vt 0.928571 0.480000 +vt 0.547619 0.480000 +vt 0.928571 0.480000 +vt 0.476190 0.880000 +vt 0.190476 0.920000 +vt 0.190476 0.880000 +vt 0.595238 0.540000 +vt 0.785714 0.700000 +vt 0.595238 0.700000 +vt 0.785714 0.520000 +vt 0.595238 0.520000 +vt 0.595238 0.720000 +vt 0.785714 0.720000 +vt 0.809524 0.700000 +vt 0.785714 0.540000 +vt 0.809524 0.540000 +vt 0.571429 0.540000 +vt 0.571429 0.700000 +vt 0.666667 0.920000 +vt 0.476190 0.920000 +vt -0.000000 0.880000 +vt 0.238095 0.960000 +vt 0.428571 0.840000 +vt 0.428571 1.000000 +vt 0.238095 1.000000 +vt 0.523810 0.960000 +vt 0.666667 1.000000 +vt 0.523810 1.000000 +vt 0.142857 1.000000 +vt -0.000000 0.960000 +vt 0.142857 0.960000 +vt -0.000000 0.920000 +vt 0.142857 0.840000 +vt 0.523810 0.840000 +vt 0.666667 0.880000 +vt 0.476190 0.880000 +vt 0.190476 0.920000 +vt 0.190476 0.880000 +vt 0.666667 0.920000 +vt 0.476190 0.920000 +vt -0.000000 0.880000 +vt 0.238095 0.960000 +vt 0.428571 0.840000 +vt 0.428571 1.000000 +vt 0.238095 1.000000 +vt 0.523810 0.960000 +vt 0.666667 1.000000 +vt 0.523810 1.000000 +vt 0.142857 1.000000 +vt -0.000000 0.960000 +vt 0.142857 0.960000 +vt -0.000000 0.920000 +vt 0.142857 0.840000 +vt 0.523810 0.840000 +vt 0.666667 0.880000 +vt 0.678571 0.240000 +vt 0.821429 0.160000 +vt 0.821429 0.240000 +vt 0.821429 -0.000000 +vt 0.845238 0.060000 +vt 0.821429 0.080000 +vt 0.678571 -0.000000 +vt 0.678571 0.160000 +vt 0.666667 0.090000 +vt 0.678571 0.080000 +vt 0.821429 0.320000 +vt 0.666667 0.150000 +vt 0.642857 0.090000 +vt 0.666667 0.010000 +vt 0.666667 0.230000 +vt 0.666667 0.170000 +vt 0.678571 0.320000 +vt 0.666667 0.250000 +vt 0.571429 0.150000 +vt 0.571429 0.090000 +vt 0.642857 0.070000 +vt 0.642857 0.010000 +vt 0.666667 0.310000 +vt 0.642857 0.250000 +vt 0.642857 0.170000 +vt 0.845238 0.180000 +vt 0.892857 0.220000 +vt 0.845238 0.220000 +vt 0.845238 0.300000 +vt 0.845238 0.140000 +vt 0.892857 0.020000 +vt 0.904762 0.050000 +vt 0.892857 0.060000 +vt 0.845238 0.260000 +vt 0.892857 0.300000 +vt 0.845238 0.100000 +vt 0.892857 0.140000 +vt 0.904762 0.030000 +vt 1.000000 0.040000 +vt 0.904762 0.270000 +vt 1.000000 0.280000 +vt 0.904762 0.290000 +vt 0.904762 0.110000 +vt 1.000000 0.120000 +vt 0.904762 0.130000 +vt 0.904762 0.210000 +vt 0.904762 0.190000 +vt 1.000000 0.200000 +vt 0.892857 0.100000 +vt 0.892857 0.260000 +vt 0.678571 0.240000 +vt 0.821429 0.160000 +vt 0.821429 0.240000 +vt 0.821429 -0.000000 +vt 0.845238 0.060000 +vt 0.821429 0.080000 +vt 0.678571 -0.000000 +vt 0.678571 0.160000 +vt 0.666667 0.090000 +vt 0.678571 0.080000 +vt 0.821429 0.320000 +vt 0.666667 0.150000 +vt 0.642857 0.090000 +vt 0.666667 0.010000 +vt 0.666667 0.230000 +vt 0.666667 0.170000 +vt 0.678571 0.320000 +vt 0.666667 0.250000 +vt 0.571429 0.150000 +vt 0.571429 0.090000 +vt 0.642857 0.070000 +vt 0.642857 0.010000 +vt 0.666667 0.310000 +vt 0.642857 0.250000 +vt 0.642857 0.170000 +vt 0.845238 0.180000 +vt 0.892857 0.220000 +vt 0.845238 0.220000 +vt 0.845238 0.300000 +vt 0.845238 0.140000 +vt 0.892857 0.020000 +vt 0.904762 0.050000 +vt 0.892857 0.060000 +vt 0.845238 0.260000 +vt 0.892857 0.300000 +vt 0.845238 0.100000 +vt 0.892857 0.140000 +vt 0.904762 0.030000 +vt 1.000000 0.040000 +vt 0.904762 0.270000 +vt 1.000000 0.280000 +vt 0.904762 0.290000 +vt 0.904762 0.110000 +vt 1.000000 0.120000 +vt 0.904762 0.130000 +vt 0.904762 0.210000 +vt 0.904762 0.190000 +vt 1.000000 0.200000 +vt 0.892857 0.100000 +vt 0.892857 0.260000 +vt 1.000000 0.500000 +vt 0.988095 0.510000 +vt 0.988095 0.500000 +vt 0.726190 0.720000 +vt 0.797619 0.720000 +vt 0.785714 0.760000 +vt 0.952381 0.500000 +vt 0.964286 0.510000 +vt 0.952381 0.510000 +vt 0.964286 0.320000 +vt 0.952381 0.490000 +vt 0.952381 0.320000 +vt 0.690476 0.760000 +vt 0.726190 0.880000 +vt 0.690476 0.880000 +vt 0.833333 0.880000 +vt 0.797619 0.760000 +vt 0.833333 0.760000 +vt 0.738095 0.880000 +vt 0.785714 0.880000 +vt 0.726190 0.760000 +vt 0.797619 0.880000 +vt 0.976190 0.320000 +vt 0.964286 0.490000 +vt 0.797619 0.920000 +vt 0.988095 0.320000 +vt 0.976190 0.490000 +vt 1.000000 0.320000 +vt 0.988095 0.490000 +vt 0.976190 0.500000 +vt 0.976190 0.510000 +vt 0.952381 0.500000 +vt 0.964286 0.500000 +vt 0.988095 0.500000 +vt 0.726190 0.720000 +vt 0.797619 0.720000 +vt 0.785714 0.760000 +vt 0.690476 0.760000 +vt 0.726190 0.880000 +vt 0.690476 0.880000 +vt 0.833333 0.880000 +vt 0.797619 0.760000 +vt 0.833333 0.760000 +vt 0.738095 0.880000 +vt 0.785714 0.880000 +vt 0.726190 0.760000 +vt 0.797619 0.880000 +vt 0.797619 0.920000 +vt 1.000000 0.500000 +vt 0.988095 0.510000 +vt 0.988095 0.500000 +vt 0.952381 0.500000 +vt 0.964286 0.510000 +vt 0.952381 0.510000 +vt 0.964286 0.320000 +vt 0.952381 0.490000 +vt 0.952381 0.320000 +vt 0.976190 0.320000 +vt 0.964286 0.490000 +vt 0.988095 0.320000 +vt 0.976190 0.490000 +vt 1.000000 0.320000 +vt 0.988095 0.490000 +vt 0.976190 0.500000 +vt 0.976190 0.510000 +vt 0.952381 0.500000 +vt 0.964286 0.500000 +vt 0.988095 0.500000 +vt 0.880952 0.560000 +vt 0.857143 0.800000 +vt 0.857143 0.560000 +vt 0.880952 0.800000 +vt 0.857143 0.840000 +vt 0.880952 0.520000 +vt 0.904762 0.780000 +vt 0.833333 0.580000 +vt 0.928571 0.580000 +vt 0.928571 0.780000 +vt 0.904762 0.540000 +vt 0.928571 0.520000 +vt 0.928571 0.540000 +vt 0.928571 0.820000 +vt 0.904762 0.840000 +vt 0.904762 0.820000 +vt 0.833333 0.820000 +vt 0.880952 0.840000 +vt 0.833333 0.540000 +vt 0.857143 0.520000 +vt 0.880952 0.560000 +vt 0.857143 0.800000 +vt 0.857143 0.560000 +vt 0.880952 0.800000 +vt 0.857143 0.840000 +vt 0.880952 0.520000 +vt 0.904762 0.780000 +vt 0.833333 0.580000 +vt 0.928571 0.580000 +vt 0.928571 0.780000 +vt 0.904762 0.540000 +vt 0.928571 0.520000 +vt 0.928571 0.540000 +vt 0.928571 0.820000 +vt 0.904762 0.840000 +vt 0.904762 0.820000 +vt 0.833333 0.820000 +vt 0.880952 0.840000 +vt 0.833333 0.540000 +vt 0.857143 0.520000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.952381 0.520000 +vt 0.952381 0.520000 +vt 0.428571 0.960000 +vt 0.238095 0.840000 +vt 0.666667 0.960000 +vt -0.000000 1.000000 +vt -0.000000 0.840000 +vt 0.666667 0.840000 +vt 0.428571 0.960000 +vt 0.238095 0.840000 +vt 0.666667 0.960000 +vt -0.000000 1.000000 +vt -0.000000 0.840000 +vt 0.666667 0.840000 +vt 0.845238 0.020000 +vt 0.642857 0.150000 +vt 0.666667 0.070000 +vt 0.642857 0.310000 +vt 0.642857 0.230000 +vt 0.892857 0.180000 +vt 0.845238 0.020000 +vt 0.642857 0.150000 +vt 0.666667 0.070000 +vt 0.642857 0.310000 +vt 0.642857 0.230000 +vt 0.892857 0.180000 +vt 1.000000 0.510000 +vt 0.797619 0.750000 +vt 0.738095 0.760000 +vt 0.726190 0.750000 +vt 0.797619 0.890000 +vt 0.726190 0.920000 +vt 0.726190 0.890000 +vt 1.000000 0.490000 +vt 0.797619 0.750000 +vt 0.738095 0.760000 +vt 0.726190 0.750000 +vt 0.797619 0.890000 +vt 0.726190 0.920000 +vt 0.726190 0.890000 +vt 1.000000 0.510000 +vt 1.000000 0.490000 +vt 0.904762 0.580000 +vt 0.833333 0.780000 +vt 0.904762 0.520000 +vt 0.928571 0.840000 +vt 0.833333 0.840000 +vt 0.833333 0.520000 +vt 0.904762 0.580000 +vt 0.833333 0.780000 +vt 0.904762 0.520000 +vt 0.928571 0.840000 +vt 0.833333 0.840000 +vt 0.833333 0.520000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.5736 -0.8192 +vn 0.0000 0.5736 0.8192 +vn 0.0000 -0.8192 0.5736 +vn 0.0000 0.8192 -0.5736 +vn 0.9923 -0.0711 -0.1016 +vn 0.0000 -0.8840 0.4675 +vn 0.0000 0.7417 -0.6708 +vn -0.9923 -0.0711 -0.1016 +vn -0.0000 -0.5736 0.8192 +vn 0.0000 0.5736 -0.8192 +vn 0.0000 -0.8192 -0.5736 +vn 0.0000 0.8192 0.5736 +vn -0.9923 -0.0711 0.1016 +vn 0.0000 -0.8840 -0.4675 +vn 0.0000 0.7417 0.6708 +vn 0.9923 -0.0711 0.1016 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/2 19/5/2 6/6/2 +f 4/7/3 6/6/3 2/2/3 +f 1/8/4 7/9/4 3/10/4 +f 3/11/5 8/4/5 4/7/5 +f 2/12/6 5/13/6 1/8/6 +f 10/14/1 24/15/1 12/16/1 +f 14/17/2 15/18/2 13/19/2 +f 12/16/3 14/17/3 10/14/3 +f 9/20/4 15/21/4 11/22/4 +f 11/23/5 16/24/5 12/16/5 +f 10/25/6 13/26/6 9/20/6 +f 20/27/3 23/28/3 19/5/3 +f 5/13/2 17/29/2 7/9/2 +f 7/30/2 20/31/2 8/4/2 +f 6/32/2 18/33/2 5/13/2 +f 18/34/4 21/35/4 17/29/4 +f 17/36/5 24/37/5 20/31/5 +f 19/38/6 22/39/6 18/33/6 +f 12/16/1 21/40/1 11/23/1 +f 11/22/1 22/41/1 9/20/1 +f 9/20/1 23/42/1 10/25/1 +f 34/43/2 35/44/2 33/45/2 +f 31/46/2 29/47/2 30/48/2 +f 28/49/3 31/46/3 26/50/3 +f 25/51/4 29/47/4 27/52/4 +f 27/53/5 32/54/5 28/55/5 +f 26/56/6 30/48/6 25/57/6 +f 34/43/3 40/58/3 36/59/3 +f 35/44/4 37/60/4 33/45/4 +f 36/59/5 43/61/5 35/44/5 +f 33/45/6 42/62/6 34/43/6 +f 43/61/1 42/63/1 41/64/1 +f 44/65/4 45/66/4 42/67/4 +f 41/68/3 48/69/3 43/70/3 +f 43/70/5 39/71/5 35/44/5 +f 37/60/6 41/72/6 33/45/6 +f 40/58/5 44/65/5 36/59/5 +f 42/73/6 38/74/6 34/43/6 +f 50/75/2 51/76/2 49/77/2 +f 50/75/3 56/78/3 52/79/3 +f 51/76/4 53/80/4 49/77/4 +f 52/79/5 59/81/5 51/76/5 +f 49/77/6 58/82/6 50/75/6 +f 59/81/1 58/83/1 57/84/1 +f 60/85/4 61/86/4 58/87/4 +f 57/88/3 64/89/3 59/90/3 +f 59/90/5 55/91/5 51/76/5 +f 53/80/6 57/92/6 49/77/6 +f 56/78/5 60/85/5 52/79/5 +f 58/93/6 54/94/6 50/75/6 +f 65/95/4 68/96/4 67/97/4 +f 71/98/7 84/99/7 72/100/7 +f 72/100/3 69/101/3 71/98/3 +f 66/102/8 75/103/8 70/104/8 +f 71/105/9 65/95/9 67/97/9 +f 68/96/10 70/104/10 72/100/10 +f 74/106/10 79/107/10 75/103/10 +f 70/104/8 76/108/8 69/101/8 +f 66/102/8 73/109/8 74/110/8 +f 69/111/8 73/112/8 65/95/8 +f 79/107/8 77/113/8 80/114/8 +f 76/108/3 79/115/3 80/116/3 +f 76/117/9 77/118/9 73/112/9 +f 73/109/4 78/119/4 74/110/4 +f 81/120/4 86/121/4 82/122/4 +f 67/97/7 83/123/7 71/105/7 +f 72/100/7 81/124/7 68/96/7 +f 67/97/7 81/120/7 82/122/7 +f 87/125/7 92/126/7 88/127/7 +f 84/99/3 87/125/3 88/127/3 +f 82/128/9 87/129/9 83/123/9 +f 84/130/10 85/131/10 81/124/10 +f 91/132/11 93/133/11 92/126/11 +f 90/134/12 93/135/12 91/136/12 +f 92/137/13 93/138/13 89/139/13 +f 90/140/14 89/141/14 93/142/14 +f 92/137/7 85/131/7 88/143/7 +f 86/121/7 89/141/7 90/140/7 +f 90/134/7 87/129/7 86/144/7 +f 94/145/3 97/146/3 96/147/3 +f 100/148/15 113/149/15 101/150/15 +f 101/150/4 98/151/4 100/148/4 +f 95/152/16 104/153/16 99/154/16 +f 100/155/17 94/145/17 96/147/17 +f 97/146/18 99/154/18 101/150/18 +f 103/156/18 108/157/18 104/153/18 +f 99/154/16 105/158/16 98/151/16 +f 95/152/16 102/159/16 103/160/16 +f 98/161/16 102/162/16 94/145/16 +f 108/157/16 106/163/16 109/164/16 +f 105/158/4 108/165/4 109/166/4 +f 105/167/17 106/168/17 102/162/17 +f 102/159/3 107/169/3 103/160/3 +f 110/170/3 115/171/3 111/172/3 +f 96/147/15 112/173/15 100/155/15 +f 101/150/15 110/174/15 97/146/15 +f 96/147/15 110/170/15 111/172/15 +f 116/175/15 121/176/15 117/177/15 +f 113/149/4 116/175/4 117/177/4 +f 111/178/17 116/179/17 112/173/17 +f 113/180/18 114/181/18 110/174/18 +f 120/182/19 122/183/19 121/176/19 +f 119/184/20 122/185/20 120/186/20 +f 121/187/21 122/188/21 118/189/21 +f 119/190/22 118/191/22 122/192/22 +f 121/187/15 114/181/15 117/193/15 +f 115/171/15 118/191/15 119/190/15 +f 119/184/15 116/179/15 115/194/15 +f 142/195/1 143/196/1 141/197/1 +f 126/198/3 124/199/3 133/200/3 +f 142/201/5 148/202/5 144/203/5 +f 138/204/5 142/205/5 136/206/5 +f 126/207/6 127/208/6 125/209/6 +f 123/210/5 129/211/5 124/212/5 +f 131/213/2 133/200/2 132/214/2 +f 130/215/23 131/213/23 127/208/23 +f 128/216/24 133/200/24 129/211/24 +f 137/217/4 140/218/4 138/204/4 +f 131/213/4 132/214/4 123/219/4 +f 135/220/6 139/221/6 137/217/6 +f 136/222/3 141/223/3 135/220/3 +f 143/196/6 145/224/6 141/197/6 +f 148/202/2 145/224/2 147/225/2 +f 140/218/5 146/226/5 142/205/5 +f 139/221/25 146/227/25 140/218/25 +f 141/223/6 145/228/6 139/221/6 +f 152/229/3 150/230/3 159/231/3 +f 152/232/6 153/233/6 151/234/6 +f 149/235/5 155/236/5 150/237/5 +f 157/238/2 159/231/2 158/239/2 +f 156/240/23 157/238/23 153/233/23 +f 154/241/24 159/231/24 155/236/24 +f 157/238/4 158/239/4 149/242/4 +f 168/243/1 169/244/1 167/245/1 +f 168/246/5 174/247/5 170/248/5 +f 164/249/5 168/250/5 162/251/5 +f 163/252/4 166/253/4 164/249/4 +f 161/254/6 165/255/6 163/252/6 +f 162/256/3 167/257/3 161/254/3 +f 169/244/6 171/258/6 167/245/6 +f 174/247/2 171/258/2 173/259/2 +f 166/253/5 172/260/5 168/250/5 +f 165/255/25 172/261/25 166/253/25 +f 167/257/6 171/262/6 165/255/6 +f 176/263/2 177/264/2 175/265/2 +f 178/266/5 181/267/5 177/264/5 +f 175/265/6 180/268/6 176/263/6 +f 176/263/3 186/269/3 178/266/3 +f 177/264/4 183/270/4 175/265/4 +f 186/269/1 183/271/1 185/272/1 +f 184/273/5 187/274/5 183/275/5 +f 185/276/6 190/277/6 186/278/6 +f 181/267/4 185/279/4 177/264/4 +f 186/278/3 182/280/3 178/266/3 +f 183/281/4 179/282/4 175/265/4 +f 180/268/3 184/273/3 176/263/3 +f 192/283/2 193/284/2 191/285/2 +f 194/286/5 197/287/5 193/284/5 +f 191/285/6 196/288/6 192/283/6 +f 192/283/3 202/289/3 194/286/3 +f 193/284/4 199/290/4 191/285/4 +f 202/289/1 199/291/1 201/292/1 +f 200/293/5 203/294/5 199/295/5 +f 201/296/6 206/297/6 202/298/6 +f 197/287/4 201/299/4 193/284/4 +f 202/298/3 198/300/3 194/286/3 +f 199/301/4 195/302/4 191/285/4 +f 196/288/3 200/293/3 192/283/3 +f 209/303/6 208/304/6 207/305/6 +f 217/306/6 216/307/6 215/308/6 +f 210/309/3 213/310/3 208/304/3 +f 207/305/4 211/311/4 209/303/4 +f 209/303/1 214/312/1 210/309/1 +f 208/304/2 212/313/2 207/305/2 +f 218/314/3 221/315/3 216/307/3 +f 215/308/4 219/316/4 217/306/4 +f 217/306/1 222/317/1 218/314/1 +f 216/307/2 220/318/2 215/308/2 +f 225/319/5 224/320/5 223/321/5 +f 233/322/5 232/323/5 231/324/5 +f 226/325/4 229/326/4 224/320/4 +f 223/321/3 227/327/3 225/319/3 +f 225/319/1 230/328/1 226/325/1 +f 224/320/2 228/329/2 223/321/2 +f 234/330/4 237/331/4 232/323/4 +f 231/324/3 235/332/3 233/322/3 +f 233/322/1 238/333/1 234/330/1 +f 232/323/2 236/334/2 231/324/2 +f 241/335/3 240/336/3 239/337/3 +f 249/338/3 248/339/3 247/340/3 +f 242/341/5 245/342/5 240/336/5 +f 239/337/6 243/343/6 241/335/6 +f 241/335/1 246/344/1 242/341/1 +f 240/336/2 244/345/2 239/337/2 +f 250/346/5 253/347/5 248/339/5 +f 247/340/6 251/348/6 249/338/6 +f 249/338/1 254/349/1 250/346/1 +f 248/339/2 252/350/2 247/340/2 +f 257/351/4 256/352/4 255/353/4 +f 265/354/4 264/355/4 263/356/4 +f 258/357/6 261/358/6 256/352/6 +f 255/353/5 259/359/5 257/351/5 +f 257/351/1 262/360/1 258/357/1 +f 256/352/2 260/361/2 255/353/2 +f 266/362/6 269/363/6 264/355/6 +f 263/356/5 267/364/5 265/354/5 +f 265/354/1 270/365/1 266/362/1 +f 264/355/2 268/366/2 263/356/2 +f 273/367/3 272/368/3 271/369/3 +f 274/370/5 277/371/5 272/368/5 +f 271/369/6 275/372/6 273/367/6 +f 273/367/1 278/373/1 274/370/1 +f 272/368/2 276/374/2 271/369/2 +f 281/375/4 280/376/4 279/377/4 +f 282/378/6 285/379/6 280/376/6 +f 279/377/5 283/380/5 281/375/5 +f 281/375/1 286/381/1 282/378/1 +f 280/376/2 284/382/2 279/377/2 +f 3/1/1 4/7/1 2/2/1 +f 8/4/2 20/27/2 19/5/2 +f 4/7/3 8/4/3 6/6/3 +f 1/8/4 5/13/4 7/9/4 +f 3/11/5 7/30/5 8/4/5 +f 2/12/6 6/32/6 5/13/6 +f 10/14/1 23/28/1 24/15/1 +f 14/17/2 16/24/2 15/18/2 +f 12/16/3 16/24/3 14/17/3 +f 9/20/4 13/26/4 15/21/4 +f 11/23/5 15/383/5 16/24/5 +f 10/25/6 14/384/6 13/26/6 +f 20/27/3 24/15/3 23/28/3 +f 5/13/2 18/34/2 17/29/2 +f 7/30/2 17/36/2 20/31/2 +f 6/32/2 19/38/2 18/33/2 +f 18/34/4 22/41/4 21/35/4 +f 17/36/5 21/40/5 24/37/5 +f 19/38/6 23/42/6 22/39/6 +f 12/16/1 24/37/1 21/40/1 +f 11/22/1 21/35/1 22/41/1 +f 9/20/1 22/39/1 23/42/1 +f 34/43/2 36/59/2 35/44/2 +f 31/46/2 32/54/2 29/47/2 +f 28/49/3 32/54/3 31/46/3 +f 25/51/4 30/48/4 29/47/4 +f 27/53/5 29/47/5 32/54/5 +f 26/56/6 31/46/6 30/48/6 +f 34/43/3 38/74/3 40/58/3 +f 35/44/4 39/71/4 37/60/4 +f 36/59/5 44/385/5 43/61/5 +f 33/45/6 41/386/6 42/62/6 +f 43/61/1 44/385/1 42/63/1 +f 44/65/4 46/387/4 45/66/4 +f 41/68/3 47/388/3 48/69/3 +f 43/70/5 48/69/5 39/71/5 +f 37/60/6 47/389/6 41/72/6 +f 40/58/5 46/387/5 44/65/5 +f 42/73/6 45/390/6 38/74/6 +f 50/75/2 52/79/2 51/76/2 +f 50/75/3 54/94/3 56/78/3 +f 51/76/4 55/91/4 53/80/4 +f 52/79/5 60/391/5 59/81/5 +f 49/77/6 57/392/6 58/82/6 +f 59/81/1 60/391/1 58/83/1 +f 60/85/4 62/393/4 61/86/4 +f 57/88/3 63/394/3 64/89/3 +f 59/90/5 64/89/5 55/91/5 +f 53/80/6 63/395/6 57/92/6 +f 56/78/5 62/393/5 60/85/5 +f 58/93/6 61/396/6 54/94/6 +f 65/95/4 66/102/4 68/96/4 +f 71/98/7 83/397/7 84/99/7 +f 72/100/3 70/104/3 69/101/3 +f 66/102/8 74/106/8 75/103/8 +f 71/105/9 69/111/9 65/95/9 +f 68/96/10 66/102/10 70/104/10 +f 74/106/10 78/398/10 79/107/10 +f 70/104/8 75/399/8 76/108/8 +f 66/102/8 65/95/8 73/109/8 +f 69/111/8 76/117/8 73/112/8 +f 79/107/8 78/398/8 77/113/8 +f 76/108/3 75/399/3 79/115/3 +f 76/117/9 80/400/9 77/118/9 +f 73/109/4 77/401/4 78/119/4 +f 81/120/4 85/402/4 86/121/4 +f 67/97/7 82/128/7 83/123/7 +f 72/100/7 84/130/7 81/124/7 +f 67/97/7 68/96/7 81/120/7 +f 87/125/7 91/132/7 92/126/7 +f 84/99/3 83/397/3 87/125/3 +f 82/128/9 86/144/9 87/129/9 +f 84/130/10 88/143/10 85/131/10 +f 92/137/7 89/139/7 85/131/7 +f 86/121/7 85/402/7 89/141/7 +f 90/134/7 91/136/7 87/129/7 +f 94/145/3 95/152/3 97/146/3 +f 100/148/15 112/403/15 113/149/15 +f 101/150/4 99/154/4 98/151/4 +f 95/152/16 103/156/16 104/153/16 +f 100/155/17 98/161/17 94/145/17 +f 97/146/18 95/152/18 99/154/18 +f 103/156/18 107/404/18 108/157/18 +f 99/154/16 104/405/16 105/158/16 +f 95/152/16 94/145/16 102/159/16 +f 98/161/16 105/167/16 102/162/16 +f 108/157/16 107/404/16 106/163/16 +f 105/158/4 104/405/4 108/165/4 +f 105/167/17 109/406/17 106/168/17 +f 102/159/3 106/407/3 107/169/3 +f 110/170/3 114/408/3 115/171/3 +f 96/147/15 111/178/15 112/173/15 +f 101/150/15 113/180/15 110/174/15 +f 96/147/15 97/146/15 110/170/15 +f 116/175/15 120/182/15 121/176/15 +f 113/149/4 112/403/4 116/175/4 +f 111/178/17 115/194/17 116/179/17 +f 113/180/18 117/193/18 114/181/18 +f 121/187/15 118/189/15 114/181/15 +f 115/171/15 114/408/15 118/191/15 +f 119/184/15 120/186/15 116/179/15 +f 142/195/1 144/409/1 143/196/1 +f 124/199/3 129/410/3 133/200/3 +f 133/200/3 134/411/3 126/198/3 +f 134/411/3 130/412/3 126/198/3 +f 142/201/5 146/227/5 148/202/5 +f 138/204/5 140/218/5 142/205/5 +f 126/207/6 130/215/6 127/208/6 +f 123/210/5 128/216/5 129/211/5 +f 131/213/2 134/411/2 133/200/2 +f 130/215/23 134/411/23 131/213/23 +f 128/216/24 132/214/24 133/200/24 +f 137/217/4 139/221/4 140/218/4 +f 128/413/4 123/219/4 132/214/4 +f 123/219/4 125/414/4 131/213/4 +f 125/414/4 127/415/4 131/213/4 +f 135/220/6 141/223/6 139/221/6 +f 136/222/3 142/416/3 141/223/3 +f 143/196/6 147/225/6 145/224/6 +f 148/202/2 146/227/2 145/224/2 +f 139/221/25 145/224/25 146/227/25 +f 150/230/3 155/417/3 159/231/3 +f 159/231/3 160/418/3 152/229/3 +f 160/418/3 156/419/3 152/229/3 +f 152/232/6 156/240/6 153/233/6 +f 149/235/5 154/241/5 155/236/5 +f 157/238/2 160/418/2 159/231/2 +f 156/240/23 160/418/23 157/238/23 +f 154/241/24 158/239/24 159/231/24 +f 154/420/4 149/242/4 158/239/4 +f 149/242/4 151/421/4 157/238/4 +f 151/421/4 153/422/4 157/238/4 +f 168/243/1 170/423/1 169/244/1 +f 168/246/5 172/261/5 174/247/5 +f 164/249/5 166/253/5 168/250/5 +f 163/252/4 165/255/4 166/253/4 +f 161/254/6 167/257/6 165/255/6 +f 162/256/3 168/424/3 167/257/3 +f 169/244/6 173/259/6 171/258/6 +f 174/247/2 172/261/2 171/258/2 +f 165/255/25 171/258/25 172/261/25 +f 176/263/2 178/266/2 177/264/2 +f 178/266/5 182/280/5 181/267/5 +f 175/265/6 179/282/6 180/268/6 +f 176/263/3 184/425/3 186/269/3 +f 177/264/4 185/426/4 183/270/4 +f 186/269/1 184/425/1 183/271/1 +f 184/273/5 188/427/5 187/274/5 +f 185/276/6 189/428/6 190/277/6 +f 181/267/4 189/429/4 185/279/4 +f 186/278/3 190/277/3 182/280/3 +f 183/281/4 187/430/4 179/282/4 +f 180/268/3 188/427/3 184/273/3 +f 192/283/2 194/286/2 193/284/2 +f 194/286/5 198/300/5 197/287/5 +f 191/285/6 195/302/6 196/288/6 +f 192/283/3 200/431/3 202/289/3 +f 193/284/4 201/432/4 199/290/4 +f 202/289/1 200/431/1 199/291/1 +f 200/293/5 204/433/5 203/294/5 +f 201/296/6 205/434/6 206/297/6 +f 197/287/4 205/435/4 201/299/4 +f 202/298/3 206/297/3 198/300/3 +f 199/301/4 203/436/4 195/302/4 +f 196/288/3 204/433/3 200/293/3 +f 209/303/6 210/309/6 208/304/6 +f 217/306/6 218/314/6 216/307/6 +f 210/309/3 214/437/3 213/310/3 +f 207/305/4 212/438/4 211/311/4 +f 209/303/1 211/439/1 214/312/1 +f 208/304/2 213/440/2 212/313/2 +f 218/314/3 222/441/3 221/315/3 +f 215/308/4 220/442/4 219/316/4 +f 217/306/1 219/443/1 222/317/1 +f 216/307/2 221/444/2 220/318/2 +f 225/319/5 226/325/5 224/320/5 +f 233/322/5 234/330/5 232/323/5 +f 226/325/4 230/445/4 229/326/4 +f 223/321/3 228/446/3 227/327/3 +f 225/319/1 227/447/1 230/328/1 +f 224/320/2 229/448/2 228/329/2 +f 234/330/4 238/449/4 237/331/4 +f 231/324/3 236/450/3 235/332/3 +f 233/322/1 235/451/1 238/333/1 +f 232/323/2 237/452/2 236/334/2 +f 241/335/3 242/341/3 240/336/3 +f 249/338/3 250/346/3 248/339/3 +f 242/341/5 246/453/5 245/342/5 +f 239/337/6 244/454/6 243/343/6 +f 241/335/1 243/455/1 246/344/1 +f 240/336/2 245/456/2 244/345/2 +f 250/346/5 254/457/5 253/347/5 +f 247/340/6 252/458/6 251/348/6 +f 249/338/1 251/459/1 254/349/1 +f 248/339/2 253/460/2 252/350/2 +f 257/351/4 258/357/4 256/352/4 +f 265/354/4 266/362/4 264/355/4 +f 258/357/6 262/461/6 261/358/6 +f 255/353/5 260/462/5 259/359/5 +f 257/351/1 259/463/1 262/360/1 +f 256/352/2 261/464/2 260/361/2 +f 266/362/6 270/465/6 269/363/6 +f 263/356/5 268/466/5 267/364/5 +f 265/354/1 267/467/1 270/365/1 +f 264/355/2 269/468/2 268/366/2 +f 273/367/3 274/370/3 272/368/3 +f 274/370/5 278/469/5 277/371/5 +f 271/369/6 276/470/6 275/372/6 +f 273/367/1 275/471/1 278/373/1 +f 272/368/2 277/472/2 276/374/2 +f 281/375/4 282/378/4 280/376/4 +f 282/378/6 286/473/6 285/379/6 +f 279/377/5 284/474/5 283/380/5 +f 281/375/1 283/475/1 286/381/1 +f 280/376/2 285/476/2 284/382/2 diff --git a/src/main/resources/assets/hbm/models/machines/chimney_brick.obj b/src/main/resources/assets/hbm/models/machines/chimney_brick.obj new file mode 100644 index 000000000..81e719e26 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/chimney_brick.obj @@ -0,0 +1,704 @@ +# Blender v2.79 (sub 0) OBJ File: 'chimney_brick.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.500000 0.875000 0.375000 +v 1.500000 0.125000 0.375000 +v 1.500000 0.875000 -0.375000 +v 1.500000 0.125000 -0.375000 +v 1.375000 0.312500 0.187500 +v 1.375000 0.125000 0.375000 +v 1.375000 0.312500 -0.187500 +v 1.375000 0.125000 -0.375000 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.875000 -0.375000 +v 1.375000 0.687500 0.187500 +v 1.375000 0.875000 0.375000 +v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v -0.187500 0.687500 -1.500000 +v -0.187500 0.312500 -1.500000 +v 0.375000 0.875000 -1.500000 +v 0.375000 0.125000 -1.500000 +v -0.375000 0.875000 -1.500000 +v -0.375000 0.125000 -1.500000 +v 0.187500 0.312500 -1.375000 +v 0.375000 0.125000 -1.375000 +v -0.187500 0.312500 -1.375000 +v -0.375000 0.125000 -1.375000 +v -0.187500 0.687500 -1.375000 +v -0.375000 0.875000 -1.375000 +v 0.187500 0.687500 -1.375000 +v 0.375000 0.875000 -1.375000 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.500000 0.875000 -0.375000 +v -1.500000 0.125000 -0.375000 +v -1.500000 0.875000 0.375000 +v -1.500000 0.125000 0.375000 +v -1.375000 0.312500 -0.187500 +v -1.375000 0.125000 -0.375000 +v -1.375000 0.312500 0.187500 +v -1.375000 0.125000 0.375000 +v -1.375000 0.687500 0.187500 +v -1.375000 0.875000 0.375000 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.875000 -0.375000 +v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v 0.187500 0.687500 1.500000 +v 0.187500 0.312500 1.500000 +v -0.375000 0.875000 1.500000 +v -0.375000 0.125000 1.500000 +v 0.375000 0.875000 1.500000 +v 0.375000 0.125000 1.500000 +v -0.187500 0.312500 1.375000 +v -0.375000 0.125000 1.375000 +v 0.187500 0.312500 1.375000 +v 0.375000 0.125000 1.375000 +v 0.187500 0.687500 1.375000 +v 0.375000 0.875000 1.375000 +v -0.187500 0.687500 1.375000 +v -0.375000 0.875000 1.375000 +v 0.000000 2.000000 -1.250000 +v -0.478354 2.000000 -1.154849 +v -0.883883 2.000000 -0.883883 +v -1.154849 2.000000 -0.478354 +v -1.250000 2.000000 0.000000 +v -1.154849 2.000000 0.478354 +v -0.883883 2.000000 0.883883 +v -0.478354 2.000000 1.154849 +v -0.000000 2.000000 1.250000 +v 0.478354 2.000000 1.154850 +v 0.883883 2.000000 0.883884 +v 1.154849 2.000000 0.478354 +v 1.250000 2.000000 -0.000000 +v 1.154849 2.000000 -0.478355 +v 0.883883 2.000000 -0.883884 +v 0.478354 2.000000 -1.154850 +v 0.000000 13.000000 -0.750000 +v -0.287013 13.000000 -0.692910 +v -0.530330 13.000000 -0.530330 +v -0.692910 13.000000 -0.287013 +v -0.750000 13.000000 0.000000 +v -0.692910 13.000000 0.287013 +v -0.530330 13.000000 0.530330 +v -0.287013 13.000000 0.692910 +v -0.000000 13.000000 0.750000 +v 0.287012 13.000000 0.692910 +v 0.530330 13.000000 0.530330 +v 0.692910 13.000000 0.287013 +v 0.750000 13.000000 -0.000000 +v 0.692910 13.000000 -0.287013 +v 0.530330 13.000000 -0.530330 +v 0.287012 13.000000 -0.692910 +v -0.000000 13.000000 -0.500000 +v -0.191342 13.000000 -0.461940 +v -0.353553 13.000000 -0.353553 +v -0.461940 13.000000 -0.191342 +v -0.500000 13.000000 0.000000 +v -0.461940 13.000000 0.191342 +v -0.353553 13.000000 0.353553 +v -0.191342 13.000000 0.461940 +v -0.000000 13.000000 0.500000 +v 0.191342 13.000000 0.461940 +v 0.353553 13.000000 0.353554 +v 0.461940 13.000000 0.191342 +v 0.500000 13.000000 -0.000000 +v 0.461940 13.000000 -0.191342 +v 0.353553 13.000000 -0.353554 +v 0.191341 13.000000 -0.461940 +v -0.000000 11.000000 -0.500000 +v -0.191342 11.000000 -0.461940 +v -0.353553 11.000000 -0.353553 +v -0.461940 11.000000 -0.191342 +v -0.500000 11.000000 0.000000 +v -0.461940 11.000000 0.191342 +v -0.353553 11.000000 0.353553 +v -0.191342 11.000000 0.461940 +v -0.000000 11.000000 0.500000 +v 0.191342 11.000000 0.461940 +v 0.353553 11.000000 0.353554 +v 0.461940 11.000000 0.191342 +v 0.500000 11.000000 -0.000000 +v 0.461940 11.000000 -0.191342 +v 0.353553 11.000000 -0.353554 +v 0.191341 11.000000 -0.461940 +vt 0.272727 0.000000 +vt 0.000000 0.265193 +vt 0.000000 0.000000 +vt 0.000000 0.441989 +vt 0.272727 0.707182 +vt 0.000000 0.707182 +vt 0.181818 0.895028 +vt 0.130682 0.911602 +vt 0.113636 0.895028 +vt 0.130682 0.955801 +vt 0.119318 0.922652 +vt 0.130682 0.922652 +vt 0.164773 0.922652 +vt 0.176136 0.955801 +vt 0.164773 0.955801 +vt 0.090909 0.906077 +vt 0.102273 0.972376 +vt 0.090909 0.972376 +vt 0.204545 0.972376 +vt 0.193182 0.906077 +vt 0.204545 0.906077 +vt 0.113636 0.983425 +vt 0.164773 0.966851 +vt 0.181818 0.983425 +vt 0.193182 0.972376 +vt 0.176136 0.922652 +vt 0.102273 0.906077 +vt 0.181818 0.883978 +vt 0.113636 0.883978 +vt 0.113636 0.994475 +vt 0.181818 0.994475 +vt 0.164773 0.911602 +vt 0.130682 0.966851 +vt 0.181818 0.895028 +vt 0.130682 0.911602 +vt 0.113636 0.895028 +vt 0.130682 0.955801 +vt 0.119318 0.922652 +vt 0.130682 0.922652 +vt 0.164773 0.922652 +vt 0.176136 0.955801 +vt 0.164773 0.955801 +vt 0.090909 0.906077 +vt 0.102273 0.972376 +vt 0.090909 0.972376 +vt 0.204545 0.972376 +vt 0.193182 0.906077 +vt 0.204545 0.906077 +vt 0.113636 0.983425 +vt 0.164773 0.966851 +vt 0.181818 0.983425 +vt 0.193182 0.972376 +vt 0.176136 0.922652 +vt 0.102273 0.906077 +vt 0.181818 0.883978 +vt 0.113636 0.883978 +vt 0.113636 0.994475 +vt 0.181818 0.994475 +vt 0.164773 0.911602 +vt 0.130682 0.966851 +vt 0.181818 0.895028 +vt 0.130682 0.911602 +vt 0.113636 0.895028 +vt 0.130682 0.955801 +vt 0.119318 0.922652 +vt 0.130682 0.922652 +vt 0.164773 0.922652 +vt 0.176136 0.955801 +vt 0.164773 0.955801 +vt 0.090909 0.906077 +vt 0.102273 0.972376 +vt 0.090909 0.972376 +vt 0.204545 0.972376 +vt 0.193182 0.906077 +vt 0.204545 0.906077 +vt 0.113636 0.983425 +vt 0.164773 0.966851 +vt 0.181818 0.983425 +vt 0.193182 0.972376 +vt 0.176136 0.922652 +vt 0.102273 0.906077 +vt 0.181818 0.883978 +vt 0.113636 0.883978 +vt 0.113636 0.994475 +vt 0.181818 0.994475 +vt 0.164773 0.911602 +vt 0.130682 0.966851 +vt 0.181818 0.895028 +vt 0.130682 0.911602 +vt 0.113636 0.895028 +vt 0.130682 0.955801 +vt 0.119318 0.922652 +vt 0.130682 0.922652 +vt 0.164773 0.922652 +vt 0.176136 0.955801 +vt 0.164773 0.955801 +vt 0.090909 0.906077 +vt 0.102273 0.972376 +vt 0.090909 0.972376 +vt 0.204545 0.972376 +vt 0.193182 0.906077 +vt 0.204545 0.906077 +vt 0.113636 0.983425 +vt 0.164773 0.966851 +vt 0.181818 0.983425 +vt 0.193182 0.972376 +vt 0.176136 0.922652 +vt 0.102273 0.906077 +vt 0.181818 0.883978 +vt 0.113636 0.883978 +vt 0.113636 0.994475 +vt 0.181818 0.994475 +vt 0.164773 0.911602 +vt 0.130682 0.966851 +vt 0.272727 0.265193 +vt 0.102273 0.276243 +vt 0.102273 0.342541 +vt 0.272727 0.441989 +vt 0.102273 0.342541 +vt 0.272727 0.441989 +vt -0.000000 0.441989 +vt 0.272727 0.265193 +vt 0.102273 0.276243 +vt -0.000000 0.265193 +vt 0.170455 0.342541 +vt 0.170455 0.276243 +vt 0.170455 0.342541 +vt 0.102273 0.342541 +vt 0.272727 0.441989 +vt -0.000000 0.441989 +vt 0.272727 0.265193 +vt 0.170455 0.342541 +vt 0.170455 0.276243 +vt 0.102273 0.276243 +vt -0.000000 0.265193 +vt 0.272727 0.265193 +vt 0.102273 0.276243 +vt -0.000000 0.265193 +vt 0.170455 0.342541 +vt 0.272727 0.441989 +vt 0.102273 0.342541 +vt -0.000000 0.441989 +vt 0.630682 0.972376 +vt 0.607955 1.000000 +vt 0.602273 0.972376 +vt 0.647727 0.972376 +vt 0.670455 1.000000 +vt 0.653409 1.000000 +vt 0.721591 0.972376 +vt 0.698864 1.000000 +vt 0.693182 0.972376 +vt 0.767045 0.972376 +vt 0.744318 1.000000 +vt 0.738636 0.972376 +vt 0.812500 0.972376 +vt 0.789773 1.000000 +vt 0.784091 0.972376 +vt 0.857955 0.972376 +vt 0.835227 1.000000 +vt 0.829545 0.972376 +vt 0.903409 0.972376 +vt 0.880682 1.000000 +vt 0.875000 0.972376 +vt 0.948864 0.972376 +vt 0.926136 1.000000 +vt 0.920455 0.972376 +vt 0.994318 0.972376 +vt 0.971591 1.000000 +vt 0.965909 0.972376 +vt 0.312500 0.972376 +vt 0.289773 1.000000 +vt 0.284091 0.972376 +vt 0.329545 0.972376 +vt 0.352273 1.000000 +vt 0.335227 1.000000 +vt 0.375000 0.972376 +vt 0.397727 1.000000 +vt 0.380682 1.000000 +vt 0.420455 0.972376 +vt 0.443182 1.000000 +vt 0.426136 1.000000 +vt 0.465909 0.972376 +vt 0.488636 1.000000 +vt 0.471591 1.000000 +vt 0.511364 0.972376 +vt 0.534091 1.000000 +vt 0.517045 1.000000 +vt 0.585227 0.972376 +vt 0.562500 1.000000 +vt 0.556818 0.972376 +vt 0.090053 0.936803 +vt 0.070717 0.964941 +vt 0.036583 0.971543 +vt 0.119318 0.955801 +vt 0.119318 0.955801 +vt 0.119318 0.955801 +vt 0.119318 0.955801 +vt 0.170455 0.276243 +vt 0.170455 0.276243 +vt 0.625000 1.000000 +vt 0.676136 0.972376 +vt 0.715909 1.000000 +vt 0.761364 1.000000 +vt 0.806818 1.000000 +vt 0.852273 1.000000 +vt 0.897727 1.000000 +vt 0.943182 1.000000 +vt 0.988636 1.000000 +vt 0.306818 1.000000 +vt 0.357955 0.972376 +vt 0.403409 0.972376 +vt 0.448864 0.972376 +vt 0.494318 0.972376 +vt 0.539773 0.972376 +vt 0.579545 1.000000 +vt 0.020192 0.964941 +vt 0.007646 0.952742 +vt 0.000856 0.936803 +vt 0.000856 0.919551 +vt 0.007646 0.903612 +vt 0.020192 0.891413 +vt 0.036583 0.884810 +vt 0.054326 0.884810 +vt 0.070717 0.891413 +vt 0.083263 0.903612 +vt 0.090053 0.919551 +vt 0.083263 0.952742 +vt 0.054326 0.971543 +vt 0.681818 -0.000000 +vt 0.636364 -0.000000 +vt 0.727273 -0.000000 +vt 0.772727 -0.000000 +vt 0.818182 0.000000 +vt 0.863636 0.000000 +vt 0.909091 0.000000 +vt 0.954545 0.000000 +vt 1.000000 -0.000000 +vt 0.318182 0.000000 +vt 0.272727 0.000000 +vt 0.363636 0.000000 +vt 0.409091 -0.000000 +vt 0.454545 -0.000000 +vt 0.500000 0.000000 +vt 0.545455 0.000000 +vt 0.590909 0.000000 +vt 0.102273 0.707182 +vt 0.085227 0.883978 +vt 0.085227 0.707182 +vt 0.255682 0.707182 +vt 0.238636 0.883978 +vt 0.238636 0.707182 +vt 0.119318 0.707182 +vt 0.102273 0.883978 +vt 0.272727 0.707182 +vt 0.255682 0.883978 +vt 0.136364 0.707182 +vt 0.119318 0.883978 +vt 0.017045 0.707182 +vt 0.000000 0.883978 +vt -0.000000 0.707182 +vt 0.153409 0.707182 +vt 0.136364 0.883978 +vt 0.034091 0.707182 +vt 0.017045 0.883978 +vt 0.170455 0.707182 +vt 0.153409 0.883978 +vt 0.051136 0.707182 +vt 0.034091 0.883978 +vt 0.187500 0.707182 +vt 0.170455 0.883978 +vt 0.068182 0.707182 +vt 0.051136 0.883978 +vt 0.221591 0.707182 +vt 0.204545 0.883978 +vt 0.204545 0.707182 +vt 0.187500 0.883978 +vt 0.068182 0.883978 +vt 0.221591 0.883978 +vt 0.272727 0.883978 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.9229 0.0454 -0.3823 +vn 0.9990 0.0454 0.0000 +vn 0.7064 0.0454 -0.7064 +vn 0.3823 0.0454 -0.9229 +vn -0.0000 0.0454 -0.9990 +vn -0.3823 0.0454 -0.9229 +vn -0.7064 0.0454 -0.7064 +vn -0.9229 0.0454 -0.3823 +vn -0.9990 0.0454 0.0000 +vn -0.9229 0.0454 0.3823 +vn -0.7064 0.0454 0.7064 +vn -0.3823 0.0454 0.9229 +vn 0.0000 0.0454 0.9990 +vn 0.3823 0.0454 0.9229 +vn 0.7064 0.0454 0.7064 +vn 0.9229 0.0454 0.3823 +vn -0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 -0.9239 +vn 0.9239 0.0000 0.3827 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 0.9239 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 20/7/3 17/8/3 18/9/3 +f 9/10/4 17/11/4 10/12/4 +f 12/13/5 21/14/5 11/15/5 +f 14/16/5 24/17/5 13/18/5 +f 10/12/3 11/15/3 9/10/3 +f 15/19/4 20/20/4 16/21/4 +f 24/22/3 21/23/3 22/24/3 +f 22/25/3 19/26/3 20/20/3 +f 17/11/3 24/17/3 18/27/3 +f 16/28/2 18/9/2 14/29/2 +f 13/30/1 22/24/1 15/31/1 +f 10/12/1 19/32/1 12/13/1 +f 11/15/2 23/33/2 9/10/2 +f 36/34/5 33/35/5 34/36/5 +f 25/37/3 33/38/3 26/39/3 +f 28/40/6 37/41/6 27/42/6 +f 30/43/6 40/44/6 29/45/6 +f 26/39/5 27/42/5 25/37/5 +f 31/46/3 36/47/3 32/48/3 +f 40/49/5 37/50/5 38/51/5 +f 38/52/5 35/53/5 36/47/5 +f 33/38/5 40/44/5 34/54/5 +f 32/55/2 34/36/2 30/56/2 +f 29/57/1 38/51/1 31/58/1 +f 26/39/1 35/59/1 28/40/1 +f 27/42/2 39/60/2 25/37/2 +f 52/61/6 49/62/6 50/63/6 +f 41/64/5 49/65/5 42/66/5 +f 44/67/4 53/68/4 43/69/4 +f 46/70/4 56/71/4 45/72/4 +f 42/66/6 43/69/6 41/64/6 +f 47/73/5 52/74/5 48/75/5 +f 56/76/6 53/77/6 54/78/6 +f 54/79/6 51/80/6 52/74/6 +f 49/65/6 56/71/6 50/81/6 +f 48/82/2 50/63/2 46/83/2 +f 45/84/1 54/78/1 47/85/1 +f 42/66/1 51/86/1 44/67/1 +f 43/69/2 55/87/2 41/64/2 +f 68/88/4 65/89/4 66/90/4 +f 57/91/6 65/92/6 58/93/6 +f 60/94/3 69/95/3 59/96/3 +f 62/97/3 72/98/3 61/99/3 +f 58/93/4 59/96/4 57/91/4 +f 63/100/6 68/101/6 64/102/6 +f 72/103/4 69/104/4 70/105/4 +f 70/106/4 67/107/4 68/101/4 +f 65/92/4 72/98/4 66/108/4 +f 64/109/2 66/90/2 62/110/2 +f 61/111/1 70/105/1 63/112/1 +f 58/93/1 67/113/1 60/94/1 +f 59/96/2 71/114/2 57/91/2 +f 4/115/3 14/116/3 2/2/3 +f 13/117/3 8/118/3 6/4/3 +f 45/119/6 5/120/6 7/121/6 +f 1/122/6 46/123/6 3/124/6 +f 45/119/6 3/124/6 46/123/6 +f 1/122/6 47/125/6 48/126/6 +f 13/117/3 2/2/3 14/116/3 +f 15/127/3 4/115/3 8/118/3 +f 29/128/5 7/129/5 8/130/5 +f 3/131/5 31/132/5 32/133/5 +f 3/131/5 30/134/5 4/135/5 +f 29/128/5 4/135/5 30/134/5 +f 2/136/4 62/137/4 1/138/4 +f 63/139/4 2/136/4 6/140/4 +f 61/141/4 6/140/4 5/142/4 +f 61/141/4 1/138/4 62/137/4 +f 101/143/2 116/144/2 100/145/2 +f 101/146/2 118/147/2 117/148/2 +f 103/149/2 118/150/2 102/151/2 +f 104/152/2 119/153/2 103/154/2 +f 89/155/2 120/156/2 104/157/2 +f 90/158/2 105/159/2 89/160/2 +f 91/161/2 106/162/2 90/163/2 +f 92/164/2 107/165/2 91/166/2 +f 93/167/2 108/168/2 92/169/2 +f 94/170/2 109/171/2 93/172/2 +f 94/173/2 111/174/2 110/175/2 +f 95/176/2 112/177/2 111/178/2 +f 96/179/2 113/180/2 112/181/2 +f 97/182/2 114/183/2 113/184/2 +f 98/185/2 115/186/2 114/187/2 +f 100/188/2 115/189/2 99/190/2 +f 133/191/2 135/192/2 121/193/2 +f 3/1/1 4/115/1 2/2/1 +f 6/4/2 8/118/2 7/5/2 +f 20/7/3 19/32/3 17/8/3 +f 9/10/4 23/194/4 17/11/4 +f 12/13/5 19/26/5 21/14/5 +f 14/16/5 18/27/5 24/17/5 +f 10/12/3 12/13/3 11/15/3 +f 15/19/4 22/25/4 20/20/4 +f 24/22/3 23/33/3 21/23/3 +f 22/25/3 21/14/3 19/26/3 +f 17/11/3 23/194/3 24/17/3 +f 16/28/2 20/7/2 18/9/2 +f 13/30/1 24/22/1 22/24/1 +f 10/12/1 17/8/1 19/32/1 +f 11/15/2 21/23/2 23/33/2 +f 36/34/5 35/59/5 33/35/5 +f 25/37/3 39/195/3 33/38/3 +f 28/40/6 35/53/6 37/41/6 +f 30/43/6 34/54/6 40/44/6 +f 26/39/5 28/40/5 27/42/5 +f 31/46/3 38/52/3 36/47/3 +f 40/49/5 39/60/5 37/50/5 +f 38/52/5 37/41/5 35/53/5 +f 33/38/5 39/195/5 40/44/5 +f 32/55/2 36/34/2 34/36/2 +f 29/57/1 40/49/1 38/51/1 +f 26/39/1 33/35/1 35/59/1 +f 27/42/2 37/50/2 39/60/2 +f 52/61/6 51/86/6 49/62/6 +f 41/64/5 55/196/5 49/65/5 +f 44/67/4 51/80/4 53/68/4 +f 46/70/4 50/81/4 56/71/4 +f 42/66/6 44/67/6 43/69/6 +f 47/73/5 54/79/5 52/74/5 +f 56/76/6 55/87/6 53/77/6 +f 54/79/6 53/68/6 51/80/6 +f 49/65/6 55/196/6 56/71/6 +f 48/82/2 52/61/2 50/63/2 +f 45/84/1 56/76/1 54/78/1 +f 42/66/1 49/62/1 51/86/1 +f 43/69/2 53/77/2 55/87/2 +f 68/88/4 67/113/4 65/89/4 +f 57/91/6 71/197/6 65/92/6 +f 60/94/3 67/107/3 69/95/3 +f 62/97/3 66/108/3 72/98/3 +f 58/93/4 60/94/4 59/96/4 +f 63/100/6 70/106/6 68/101/6 +f 72/103/4 71/114/4 69/104/4 +f 70/106/4 69/95/4 67/107/4 +f 65/92/4 71/197/4 72/98/4 +f 64/109/2 68/88/2 66/90/2 +f 61/111/1 72/103/1 70/105/1 +f 58/93/1 65/89/1 67/113/1 +f 59/96/2 69/104/2 71/114/2 +f 4/115/3 16/198/3 14/116/3 +f 13/117/3 15/127/3 8/118/3 +f 45/119/6 47/125/6 5/120/6 +f 1/122/6 48/126/6 46/123/6 +f 45/119/6 7/121/6 3/124/6 +f 1/122/6 5/120/6 47/125/6 +f 13/117/3 6/4/3 2/2/3 +f 15/127/3 16/198/3 4/115/3 +f 29/128/5 31/132/5 7/129/5 +f 3/131/5 7/129/5 31/132/5 +f 3/131/5 32/133/5 30/134/5 +f 29/128/5 8/130/5 4/135/5 +f 2/136/4 64/199/4 62/137/4 +f 63/139/4 64/199/4 2/136/4 +f 61/141/4 63/139/4 6/140/4 +f 61/141/4 5/142/4 1/138/4 +f 101/143/2 117/200/2 116/144/2 +f 101/146/2 102/201/2 118/147/2 +f 103/149/2 119/202/2 118/150/2 +f 104/152/2 120/203/2 119/153/2 +f 89/155/2 105/204/2 120/156/2 +f 90/158/2 106/205/2 105/159/2 +f 91/161/2 107/206/2 106/162/2 +f 92/164/2 108/207/2 107/165/2 +f 93/167/2 109/208/2 108/168/2 +f 94/170/2 110/209/2 109/171/2 +f 94/173/2 95/210/2 111/174/2 +f 95/176/2 96/211/2 112/177/2 +f 96/179/2 97/212/2 113/180/2 +f 97/182/2 98/213/2 114/183/2 +f 98/185/2 99/214/2 115/186/2 +f 100/188/2 116/215/2 115/189/2 +f 121/193/2 122/216/2 123/217/2 +f 123/217/2 124/218/2 125/219/2 +f 125/219/2 126/220/2 127/221/2 +f 127/221/2 128/222/2 129/223/2 +f 129/223/2 130/224/2 131/225/2 +f 131/225/2 132/226/2 133/191/2 +f 133/191/2 134/227/2 135/192/2 +f 135/192/2 136/228/2 121/193/2 +f 121/193/2 123/217/2 125/219/2 +f 125/219/2 127/221/2 121/193/2 +f 127/221/2 129/223/2 121/193/2 +f 129/223/2 131/225/2 121/193/2 +f 131/225/2 133/191/2 121/193/2 +s 1 +f 86/229/7 101/146/8 85/230/8 +f 87/231/9 102/151/7 86/229/7 +f 88/232/10 103/154/9 87/231/9 +f 73/233/11 104/157/10 88/232/10 +f 74/234/12 89/160/11 73/233/11 +f 75/235/13 90/163/12 74/234/12 +f 76/236/14 91/166/13 75/235/13 +f 77/237/15 92/169/14 76/236/14 +f 78/238/16 93/172/15 77/239/15 +f 79/240/17 94/173/16 78/238/16 +f 80/241/18 95/176/17 79/240/17 +f 81/242/19 96/179/18 80/241/18 +f 82/243/20 97/182/19 81/242/19 +f 83/244/21 98/185/20 82/243/20 +f 84/245/22 99/190/21 83/244/21 +f 85/230/8 100/145/22 84/245/22 +f 115/246/23 130/247/24 114/248/24 +f 108/249/25 123/250/26 107/251/26 +f 116/252/27 131/253/23 115/246/23 +f 109/254/3 124/255/25 108/249/25 +f 117/256/6 132/257/27 116/252/27 +f 110/258/28 125/259/3 109/260/3 +f 118/261/29 133/262/6 117/256/6 +f 111/263/30 126/264/28 110/258/28 +f 119/265/31 134/266/29 118/261/29 +f 112/267/32 127/268/30 111/263/30 +f 120/269/33 135/270/31 119/265/31 +f 113/271/5 128/272/32 112/267/32 +f 106/273/34 121/274/4 105/275/4 +f 105/275/4 136/276/33 120/269/33 +f 114/248/24 129/277/5 113/271/5 +f 107/251/26 122/278/34 106/273/34 +f 86/229/7 102/201/7 101/146/8 +f 87/231/9 103/149/9 102/151/7 +f 88/232/10 104/152/10 103/154/9 +f 73/233/11 89/155/11 104/157/10 +f 74/234/12 90/158/12 89/160/11 +f 75/235/13 91/161/13 90/163/12 +f 76/236/14 92/164/14 91/166/13 +f 77/237/15 93/167/15 92/169/14 +f 78/238/16 94/170/16 93/172/15 +f 79/240/17 95/210/17 94/173/16 +f 80/241/18 96/211/18 95/176/17 +f 81/242/19 97/212/19 96/179/18 +f 82/243/20 98/213/20 97/182/19 +f 83/244/21 99/214/21 98/185/20 +f 84/245/22 100/188/22 99/190/21 +f 85/230/8 101/143/8 100/145/22 +f 115/246/23 131/253/23 130/247/24 +f 108/249/25 124/255/25 123/250/26 +f 116/252/27 132/257/27 131/253/23 +f 109/254/3 125/279/3 124/255/25 +f 117/256/6 133/262/6 132/257/27 +f 110/258/28 126/264/28 125/259/3 +f 118/261/29 134/266/29 133/262/6 +f 111/263/30 127/268/30 126/264/28 +f 119/265/31 135/270/31 134/266/29 +f 112/267/32 128/272/32 127/268/30 +f 120/269/33 136/276/33 135/270/31 +f 113/271/5 129/277/5 128/272/32 +f 106/273/34 122/278/34 121/274/4 +f 105/275/4 121/274/4 136/276/33 +f 114/248/24 130/247/24 129/277/5 +f 107/251/26 123/250/26 122/278/34 diff --git a/src/main/resources/assets/hbm/models/machines/chimney_industrial.obj b/src/main/resources/assets/hbm/models/machines/chimney_industrial.obj new file mode 100644 index 000000000..894620dcb --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/chimney_industrial.obj @@ -0,0 +1,1224 @@ +# Blender v2.79 (sub 0) OBJ File: 'chimney_industrial.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v 1.500000 0.875000 0.375000 +v 1.500000 0.125000 0.375000 +v 1.500000 0.875000 -0.375000 +v 1.500000 0.125000 -0.375000 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.375000 0.875000 -0.375000 +v 1.375000 0.875000 0.375000 +v 1.375000 0.125000 0.375000 +v 1.375000 0.125000 -0.375000 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.687500 0.187500 +v 1.375000 0.312500 0.187500 +v 1.375000 0.312500 -0.187500 +v -1.500000 0.875000 -0.375000 +v -1.500000 0.125000 -0.375000 +v -1.500000 0.875000 0.375000 +v -1.500000 0.125000 0.375000 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.375000 0.875000 0.375000 +v -1.375000 0.875000 -0.375000 +v -1.375000 0.125000 -0.375000 +v -1.375000 0.125000 0.375000 +v -1.375000 0.687500 0.187500 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.312500 -0.187500 +v -1.375000 0.312500 0.187500 +v 0.375000 0.875000 -1.500000 +v 0.375000 0.125000 -1.500000 +v -0.375000 0.875000 -1.500000 +v -0.375000 0.125000 -1.500000 +v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v -0.187500 0.687500 -1.500000 +v -0.187500 0.312500 -1.500000 +v -0.375000 0.875000 -1.375000 +v 0.375000 0.875000 -1.375000 +v 0.375000 0.125000 -1.375000 +v -0.375000 0.125000 -1.375000 +v -0.187500 0.687500 -1.375000 +v 0.187500 0.687500 -1.375000 +v 0.187500 0.312500 -1.375000 +v -0.187500 0.312500 -1.375000 +v -0.375000 0.875000 1.500000 +v -0.375000 0.125000 1.500000 +v 0.375000 0.875000 1.500000 +v 0.375000 0.125000 1.500000 +v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v 0.187500 0.687500 1.500000 +v 0.187500 0.312500 1.500000 +v 0.375000 0.875000 1.375000 +v -0.375000 0.875000 1.375000 +v -0.375000 0.125000 1.375000 +v 0.375000 0.125000 1.375000 +v 0.187500 0.687500 1.375000 +v -0.187500 0.687500 1.375000 +v -0.187500 0.312500 1.375000 +v 0.187500 0.312500 1.375000 +v 0.000000 10.000000 -1.250000 +v -0.478354 10.000000 -1.154849 +v -0.883883 10.000000 -0.883883 +v -1.154849 10.000000 -0.478354 +v -1.250000 10.000000 0.000000 +v -1.154849 10.000000 0.478354 +v -0.883883 10.000000 0.883883 +v -0.478354 10.000000 1.154849 +v -0.000000 10.000000 1.250000 +v 0.478354 10.000000 1.154850 +v 0.883883 10.000000 0.883884 +v 1.154849 10.000000 0.478354 +v 1.250000 10.000000 -0.000000 +v 1.154849 10.000000 -0.478355 +v 0.883883 10.000000 -0.883884 +v 0.478354 10.000000 -1.154850 +v 0.000000 23.000000 -1.250000 +v -0.478354 23.000000 -1.154849 +v -0.883883 23.000000 -0.883883 +v -1.154849 23.000000 -0.478354 +v -1.250000 23.000000 0.000000 +v -1.154849 23.000000 0.478354 +v -0.883883 23.000000 0.883883 +v -0.478354 23.000000 1.154849 +v -0.000000 23.000000 1.250000 +v 0.478354 23.000000 1.154850 +v 0.883883 23.000000 0.883884 +v 1.154849 23.000000 0.478354 +v 1.250000 23.000000 -0.000000 +v 1.154849 23.000000 -0.478355 +v 0.883883 23.000000 -0.883884 +v 0.478354 23.000000 -1.154850 +v -0.000000 23.000000 -1.000000 +v -0.382684 23.000000 -0.923880 +v -0.707107 23.000000 -0.707107 +v -0.923880 23.000000 -0.382683 +v -1.000000 23.000000 0.000000 +v -0.923880 23.000000 0.382684 +v -0.707107 23.000000 0.707107 +v -0.382684 23.000000 0.923880 +v -0.000000 23.000000 1.000000 +v 0.382683 23.000000 0.923880 +v 0.707107 23.000000 0.707107 +v 0.923879 23.000000 0.382684 +v 1.000000 23.000000 -0.000000 +v 0.923879 23.000000 -0.382684 +v 0.707106 23.000000 -0.707107 +v 0.382683 23.000000 -0.923880 +v -0.000000 21.000000 -1.000000 +v -0.382684 21.000000 -0.923880 +v -0.707107 21.000000 -0.707107 +v -0.923880 21.000000 -0.382683 +v -1.000000 21.000000 0.000000 +v -0.923880 21.000000 0.382684 +v -0.707107 21.000000 0.707107 +v -0.382684 21.000000 0.923880 +v -0.000000 21.000000 1.000000 +v 0.382683 21.000000 0.923880 +v 0.707107 21.000000 0.707107 +v 0.923879 21.000000 0.382684 +v 1.000000 21.000000 -0.000000 +v 0.923879 21.000000 -0.382684 +v 0.707106 21.000000 -0.707107 +v 0.382683 21.000000 -0.923880 +v 0.000000 2.000000 -1.500000 +v -0.574025 2.000000 -1.385819 +v -1.060660 2.000000 -1.060660 +v -1.385819 2.000000 -0.574025 +v -1.500000 2.000000 0.000000 +v -1.385819 2.000000 0.574025 +v -1.060660 2.000000 1.060660 +v -0.574025 2.000000 1.385819 +v -0.000000 2.000000 1.500000 +v 0.574025 2.000000 1.385819 +v 1.060660 2.000000 1.060660 +v 1.385819 2.000000 0.574025 +v 1.500000 2.000000 -0.000000 +v 1.385819 2.000000 -0.574025 +v 1.060660 2.000000 -1.060660 +v 0.574024 2.000000 -1.385820 +v -0.000000 22.500000 -1.500000 +v -0.574025 22.500000 -1.385819 +v -1.060660 22.500000 -1.060660 +v -1.385819 22.500000 -0.574025 +v -1.500000 22.500000 0.000000 +v -1.385819 22.500000 0.574025 +v -1.060660 22.500000 1.060660 +v -0.574025 22.500000 1.385819 +v -0.000000 22.500000 1.500000 +v 0.574025 22.500000 1.385819 +v 1.060660 22.500000 1.060660 +v 1.385819 22.500000 0.574025 +v 1.500000 22.500000 -0.000000 +v 1.385819 22.500000 -0.574025 +v 1.060660 22.500000 -1.060660 +v 0.574024 22.500000 -1.385820 +v 0.000000 22.500000 -1.250000 +v -0.478354 22.500000 -1.154849 +v -0.883883 22.500000 -0.883883 +v -1.154849 22.500000 -0.478354 +v -1.250000 22.500000 0.000000 +v -1.154849 22.500000 0.478354 +v -0.883883 22.500000 0.883883 +v -0.478354 22.500000 1.154849 +v -0.000000 22.500000 1.250000 +v 0.478354 22.500000 1.154850 +v 0.883883 22.500000 0.883884 +v 1.154849 22.500000 0.478354 +v 1.250000 22.500000 -0.000000 +v 1.154849 22.500000 -0.478355 +v 0.883883 22.500000 -0.883884 +v 0.478354 22.500000 -1.154850 +v 0.000000 22.000000 -1.250000 +v -0.478354 22.000000 -1.154849 +v -0.883883 22.000000 -0.883883 +v -1.154849 22.000000 -0.478354 +v -1.250000 22.000000 0.000000 +v -1.154849 22.000000 0.478354 +v -0.883883 22.000000 0.883883 +v -0.478354 22.000000 1.154849 +v -0.000000 22.000000 1.250000 +v 0.478354 22.000000 1.154850 +v 0.883883 22.000000 0.883884 +v 1.154849 22.000000 0.478354 +v 1.250000 22.000000 -0.000000 +v 1.154849 22.000000 -0.478355 +v 0.883883 22.000000 -0.883884 +v 0.478354 22.000000 -1.154850 +v -0.000000 22.250000 -1.500000 +v -0.574025 22.250000 -1.385819 +v -1.060660 22.250000 -1.060660 +v -1.385819 22.250000 -0.574025 +v -1.500000 22.250000 0.000000 +v -1.385819 22.250000 0.574025 +v -1.060660 22.250000 1.060660 +v -0.574025 22.250000 1.385819 +v -0.000000 22.250000 1.500000 +v 0.574025 22.250000 1.385819 +v 1.060660 22.250000 1.060660 +v 1.385819 22.250000 0.574025 +v 1.500000 22.250000 -0.000000 +v 1.385819 22.250000 -0.574025 +v 1.060660 22.250000 -1.060660 +v 0.574024 22.250000 -1.385820 +v -0.000000 14.250000 -1.500000 +v -0.574025 14.250000 -1.385819 +v -1.060660 14.250000 -1.060660 +v -1.385819 14.250000 -0.574025 +v -1.500000 14.250000 0.000000 +v -1.385819 14.250000 0.574025 +v -1.060660 14.250000 1.060660 +v -0.574025 14.250000 1.385819 +v -0.000000 14.250000 1.500000 +v 0.574025 14.250000 1.385819 +v 1.060660 14.250000 1.060660 +v 1.385819 14.250000 0.574025 +v 1.500000 14.250000 -0.000000 +v 1.385819 14.250000 -0.574025 +v 1.060660 14.250000 -1.060660 +v 0.574024 14.250000 -1.385820 +v 0.000000 14.250000 -1.250000 +v -0.478354 14.250000 -1.154849 +v -0.883883 14.250000 -0.883883 +v -1.154849 14.250000 -0.478354 +v -1.250000 14.250000 0.000000 +v -1.154849 14.250000 0.478354 +v -0.883883 14.250000 0.883883 +v -0.478354 14.250000 1.154849 +v -0.000000 14.250000 1.250000 +v 0.478354 14.250000 1.154850 +v 0.883883 14.250000 0.883884 +v 1.154849 14.250000 0.478354 +v 1.250000 14.250000 -0.000000 +v 1.154849 14.250000 -0.478355 +v 0.883883 14.250000 -0.883884 +v 0.478354 14.250000 -1.154850 +v 0.000000 13.750000 -1.250000 +v -0.478354 13.750000 -1.154849 +v -0.883883 13.750000 -0.883883 +v -1.154849 13.750000 -0.478354 +v -1.250000 13.750000 0.000000 +v -1.154849 13.750000 0.478354 +v -0.883883 13.750000 0.883883 +v -0.478354 13.750000 1.154849 +v -0.000000 13.750000 1.250000 +v 0.478354 13.750000 1.154850 +v 0.883883 13.750000 0.883884 +v 1.154849 13.750000 0.478354 +v 1.250000 13.750000 -0.000000 +v 1.154849 13.750000 -0.478355 +v 0.883883 13.750000 -0.883884 +v 0.478354 13.750000 -1.154850 +v -0.000000 14.000000 -1.500000 +v -0.574025 14.000000 -1.385819 +v -1.060660 14.000000 -1.060660 +v -1.385819 14.000000 -0.574025 +v -1.500000 14.000000 0.000000 +v -1.385819 14.000000 0.574025 +v -1.060660 14.000000 1.060660 +v -0.574025 14.000000 1.385819 +v -0.000000 14.000000 1.500000 +v 0.574025 14.000000 1.385819 +v 1.060660 14.000000 1.060660 +v 1.385819 14.000000 0.574025 +v 1.500000 14.000000 -0.000000 +v 1.385819 14.000000 -0.574025 +v 1.060660 14.000000 -1.060660 +v 0.574024 14.000000 -1.385820 +vt 0.272727 -0.000000 +vt -0.000000 0.129032 +vt -0.000000 -0.000000 +vt -0.000000 0.212366 +vt 0.272727 0.344086 +vt -0.000000 0.344086 +vt 0.170455 0.166667 +vt 0.272727 0.129032 +vt 0.272727 0.212366 +vt 0.102273 0.166667 +vt 0.102273 0.134409 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.102273 0.387097 +vt 0.085227 0.362903 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.011364 0.354839 +vt 0.028409 0.379032 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt 0.085227 0.379032 +vt 0.028409 0.362903 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.102273 0.387097 +vt 0.085227 0.362903 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.011364 0.354839 +vt 0.028409 0.379032 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt 0.085227 0.379032 +vt 0.028409 0.362903 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.085227 0.379032 +vt 0.102273 0.387097 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.028409 0.362903 +vt 0.011364 0.354839 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.073864 0.384409 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.085227 0.379032 +vt 0.102273 0.387097 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.028409 0.362903 +vt 0.011364 0.354839 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt -0.000000 0.129032 +vt 0.102273 0.166667 +vt -0.000000 0.215054 +vt 0.170455 0.134409 +vt 0.272727 0.129032 +vt 0.272727 0.215054 +vt 0.170455 0.166667 +vt 0.102273 0.166667 +vt 0.000000 0.129032 +vt 0.102273 0.134409 +vt 0.272727 0.215054 +vt 0.000000 0.215054 +vt 0.272727 0.129032 +vt 0.170455 0.166667 +vt 0.170455 0.134409 +vt 0.102273 0.166667 +vt -0.000000 0.129032 +vt 0.102273 0.134409 +vt 0.272727 0.129032 +vt 0.170455 0.166667 +vt 0.272727 0.215054 +vt -0.000000 0.215054 +vt 0.863636 0.903226 +vt 0.823864 0.913979 +vt 0.818182 0.903226 +vt 0.778409 0.913979 +vt 0.772727 0.903226 +vt 0.727273 0.903226 +vt 0.767045 0.913979 +vt 0.732955 0.913979 +vt 0.687500 0.913979 +vt 0.681818 0.903226 +vt 0.642045 0.913979 +vt 0.636364 0.903226 +vt 0.596591 0.913979 +vt 0.590909 0.903226 +vt 0.545455 0.903226 +vt 0.585227 0.913979 +vt 0.551136 0.913979 +vt 0.500000 0.903226 +vt 0.539773 0.913979 +vt 0.505682 0.913979 +vt 0.454545 0.903226 +vt 0.494318 0.913979 +vt 0.460227 0.913979 +vt 0.409091 0.903226 +vt 0.448864 0.913979 +vt 0.414773 0.913979 +vt 0.363636 0.903226 +vt 0.403409 0.913979 +vt 0.369318 0.913979 +vt 0.323864 0.913979 +vt 0.318182 0.903226 +vt 0.278409 0.913979 +vt 0.272727 0.903226 +vt 1.000000 0.903226 +vt 0.960227 0.913979 +vt 0.954545 0.903226 +vt 0.914773 0.913979 +vt 0.909091 0.903226 +vt 0.869318 0.913979 +vt 0.026682 0.410473 +vt 0.090909 0.397887 +vt 0.181740 0.440860 +vt 0.227273 0.666667 +vt 0.204545 0.688172 +vt 0.204545 0.666667 +vt 0.227273 0.365591 +vt 0.204545 0.344086 +vt 0.227273 0.344086 +vt 0.227273 0.387097 +vt 0.204545 0.365591 +vt 0.227273 0.408602 +vt 0.204545 0.387097 +vt 0.227273 0.430108 +vt 0.204545 0.408602 +vt 0.227273 0.451613 +vt 0.204545 0.430108 +vt 0.227273 0.473118 +vt 0.204545 0.451613 +vt 0.227273 0.494624 +vt 0.204545 0.473118 +vt 0.227273 0.516129 +vt 0.204545 0.494624 +vt 0.204545 0.537634 +vt 0.204545 0.516129 +vt 0.227273 0.537634 +vt 0.204545 0.559140 +vt 0.227273 0.559140 +vt 0.204545 0.580645 +vt 0.227273 0.580645 +vt 0.204545 0.602151 +vt 0.227273 0.602151 +vt 0.204545 0.623656 +vt 0.227273 0.623656 +vt 0.204545 0.645161 +vt 0.227273 0.645161 +vt 0.227273 0.666667 +vt 0.204545 0.688172 +vt 0.204545 0.666667 +vt 0.227273 0.365591 +vt 0.204545 0.344086 +vt 0.227273 0.344086 +vt 0.227273 0.387097 +vt 0.204545 0.365591 +vt 0.227273 0.408602 +vt 0.204545 0.387097 +vt 0.227273 0.430108 +vt 0.204545 0.408602 +vt 0.227273 0.451613 +vt 0.204545 0.430108 +vt 0.227273 0.473118 +vt 0.204545 0.451613 +vt 0.227273 0.494624 +vt 0.204545 0.473118 +vt 0.227273 0.516129 +vt 0.204545 0.494624 +vt 0.204545 0.537634 +vt 0.204545 0.516129 +vt 0.227273 0.537634 +vt 0.204545 0.559140 +vt 0.227273 0.559140 +vt 0.204545 0.580645 +vt 0.227273 0.580645 +vt 0.204545 0.602151 +vt 0.227273 0.602151 +vt 0.204545 0.623656 +vt 0.227273 0.623656 +vt 0.204545 0.645161 +vt 0.227273 0.645161 +vt 0.170455 0.134409 +vt 0.073864 0.384409 +vt 0.039773 0.357527 +vt 0.073864 0.384409 +vt 0.039773 0.357527 +vt 0.073864 0.384409 +vt 0.039773 0.357527 +vt 0.085227 0.362903 +vt 0.028409 0.379032 +vt 0.039773 0.357527 +vt 0.085227 0.362903 +vt 0.028409 0.379032 +vt 0.102273 0.134409 +vt 0.170455 0.134409 +vt 0.857955 0.913979 +vt 0.812500 0.913979 +vt 0.721591 0.913979 +vt 0.676136 0.913979 +vt 0.630682 0.913979 +vt 0.357955 0.913979 +vt 0.312500 0.913979 +vt 0.994318 0.913979 +vt 0.948864 0.913979 +vt 0.903409 0.913979 +vt 0.174826 0.457305 +vt 0.155136 0.471247 +vt 0.125668 0.480563 +vt 0.090909 0.483834 +vt 0.056150 0.480563 +vt 0.026682 0.471247 +vt 0.006992 0.457305 +vt 0.000078 0.440860 +vt 0.006993 0.424415 +vt 0.056150 0.401158 +vt 0.125668 0.401158 +vt 0.155136 0.410473 +vt 0.174826 0.424415 +vt 0.227273 0.688172 +vt 0.227273 0.688172 +vt 0.363636 0.344086 +vt 0.318182 0.344086 +vt 0.727273 0.344086 +vt 0.681818 0.344086 +vt 0.409091 0.344086 +vt 0.772727 0.344086 +vt 0.454545 0.344086 +vt 0.863636 0.344086 +vt 0.818182 0.344086 +vt 0.500000 0.344086 +vt 0.909091 0.344086 +vt 0.545455 0.344086 +vt 0.954545 0.344086 +vt 0.590909 0.344086 +vt 1.000000 0.344086 +vt 0.636364 0.344086 +vt 0.272727 0.344086 +vt 0.505682 1.000000 +vt 0.914773 1.000000 +vt 0.551136 1.000000 +vt 0.960227 1.000000 +vt 0.596591 1.000000 +vt 0.278409 1.000000 +vt 0.642045 1.000000 +vt 0.323864 1.000000 +vt 0.687500 1.000000 +vt 0.369318 1.000000 +vt 0.732955 1.000000 +vt 0.414773 1.000000 +vt 0.823864 1.000000 +vt 0.778409 1.000000 +vt 0.460227 1.000000 +vt 0.869318 1.000000 +vt 0.909091 0.000000 +vt 0.954545 0.000000 +vt 0.272727 -0.000000 +vt 0.318182 -0.000000 +vt 0.363636 -0.000000 +vt 0.409091 -0.000000 +vt 0.454545 0.000000 +vt 0.545455 -0.000000 +vt 0.590909 0.000000 +vt 0.681818 0.000000 +vt 0.772727 -0.000000 +vt 0.818182 -0.000000 +vt 0.250000 0.451613 +vt 0.250000 0.645161 +vt 0.250000 0.473118 +vt 0.250000 0.666667 +vt 0.250000 0.494624 +vt 0.250000 0.344086 +vt 0.250000 0.516129 +vt 0.250000 0.365591 +vt 0.250000 0.537634 +vt 0.250000 0.387097 +vt 0.250000 0.559140 +vt 0.250000 0.408602 +vt 0.250000 0.602151 +vt 0.250000 0.580645 +vt 0.250000 0.430108 +vt 0.250000 0.623656 +vt 0.272727 0.688172 +vt 0.272727 0.666667 +vt 0.272727 0.365591 +vt 0.272727 0.344086 +vt 0.272727 0.387097 +vt 0.272727 0.408602 +vt 0.272727 0.430108 +vt 0.272727 0.451613 +vt 0.272727 0.473118 +vt 0.272727 0.516129 +vt 0.272727 0.494624 +vt 0.272727 0.537634 +vt 0.272727 0.559140 +vt 0.272727 0.580645 +vt 0.272727 0.602151 +vt 0.272727 0.623656 +vt 0.272727 0.645161 +vt 0.250000 0.451613 +vt 0.250000 0.645161 +vt 0.250000 0.473118 +vt 0.250000 0.666667 +vt 0.250000 0.494624 +vt 0.250000 0.344086 +vt 0.250000 0.516129 +vt 0.250000 0.365591 +vt 0.250000 0.537634 +vt 0.250000 0.387097 +vt 0.250000 0.559140 +vt 0.250000 0.408602 +vt 0.250000 0.602151 +vt 0.250000 0.580645 +vt 0.250000 0.430108 +vt 0.250000 0.623656 +vt 0.272727 0.688172 +vt 0.272727 0.666667 +vt 0.272727 0.365591 +vt 0.272727 0.344086 +vt 0.272727 0.387097 +vt 0.272727 0.408602 +vt 0.272727 0.430108 +vt 0.272727 0.451613 +vt 0.272727 0.473118 +vt 0.272727 0.516129 +vt 0.272727 0.494624 +vt 0.272727 0.537634 +vt 0.272727 0.559140 +vt 0.272727 0.580645 +vt 0.272727 0.602151 +vt 0.272727 0.623656 +vt 0.272727 0.645161 +vt 0.539773 1.000000 +vt 0.948864 1.000000 +vt 0.585227 1.000000 +vt 0.994318 1.000000 +vt 0.630682 1.000000 +vt 0.312500 1.000000 +vt 0.676136 1.000000 +vt 0.357955 1.000000 +vt 0.721591 1.000000 +vt 0.403409 1.000000 +vt 0.767045 1.000000 +vt 0.448864 1.000000 +vt 0.857955 1.000000 +vt 0.812500 1.000000 +vt 0.494318 1.000000 +vt 0.903409 1.000000 +vt 1.000000 0.000000 +vt 0.500000 0.000000 +vt 0.636364 0.000000 +vt 0.727273 -0.000000 +vt 0.863636 -0.000000 +vt 0.250000 0.688172 +vt 0.250000 0.688172 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.9239 0.0000 0.3827 +vn 0.7071 0.0000 -0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.7068 0.0312 -0.7068 +vn -0.9234 0.0312 -0.3825 +vn -0.9995 0.0312 -0.0000 +vn -0.9234 0.0312 0.3825 +vn -0.7068 0.0312 0.7068 +vn -0.3825 0.0312 0.9234 +vn -0.0000 0.0312 0.9995 +vn 0.3825 0.0312 0.9234 +vn 0.7068 0.0312 0.7068 +vn 0.9234 0.0312 0.3825 +vn 0.9995 0.0312 -0.0000 +vn 0.9234 0.0312 -0.3825 +vn 0.7068 0.0312 -0.7068 +vn 0.3825 0.0312 -0.9234 +vn -0.0000 0.0312 -0.9995 +vn -0.3825 0.0312 -0.9234 +vn -0.7071 -0.7071 -0.0000 +vn -0.6533 -0.7071 -0.2706 +vn -0.6533 -0.7071 0.2706 +vn -0.5000 -0.7071 0.5000 +vn -0.2706 -0.7071 0.6533 +vn -0.0000 -0.7071 0.7071 +vn 0.2706 -0.7071 0.6533 +vn 0.5000 -0.7071 0.5000 +vn 0.6533 -0.7071 0.2706 +vn 0.7071 -0.7071 -0.0000 +vn 0.6533 -0.7071 -0.2706 +vn 0.5000 -0.7071 -0.5000 +vn 0.2706 -0.7071 -0.6533 +vn -0.0000 -0.7071 -0.7071 +vn -0.2706 -0.7071 -0.6533 +vn -0.5000 -0.7071 -0.5000 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 11/7/3 4/8/3 8/9/3 +f 9/10/3 2/2/3 10/11/3 +f 9/10/3 8/9/3 6/4/3 +f 4/8/3 10/11/3 2/2/3 +f 14/12/3 15/13/3 13/14/3 +f 15/13/2 22/15/2 13/14/2 +f 14/12/1 24/16/1 16/17/1 +f 10/18/4 18/19/4 9/20/4 +f 11/21/5 20/22/5 12/23/5 +f 24/16/3 19/24/3 20/25/3 +f 17/26/3 24/27/3 20/22/3 +f 22/15/3 17/28/3 18/29/3 +f 19/30/3 22/31/3 18/19/3 +f 12/32/2 19/24/2 10/33/2 +f 9/34/1 17/28/1 11/35/1 +f 16/17/4 21/36/4 15/13/4 +f 13/14/5 23/37/5 14/12/5 +f 30/38/6 31/39/6 29/40/6 +f 31/39/2 38/41/2 29/40/2 +f 30/38/1 40/42/1 32/43/1 +f 26/44/5 34/45/5 25/46/5 +f 27/47/4 36/48/4 28/49/4 +f 40/42/6 35/50/6 36/51/6 +f 33/52/6 40/53/6 36/48/6 +f 38/41/6 33/54/6 34/55/6 +f 35/56/6 38/57/6 34/45/6 +f 28/58/2 35/50/2 26/59/2 +f 25/60/1 33/54/1 27/61/1 +f 32/43/5 37/62/5 31/39/5 +f 29/40/4 39/63/4 30/38/4 +f 46/64/4 47/65/4 45/66/4 +f 47/65/2 54/67/2 45/66/2 +f 46/64/1 56/68/1 48/69/1 +f 42/70/6 50/71/6 41/72/6 +f 43/73/3 52/74/3 44/75/3 +f 56/68/4 51/76/4 52/77/4 +f 53/78/4 52/74/4 49/79/4 +f 54/67/4 49/80/4 50/81/4 +f 55/82/4 50/71/4 51/83/4 +f 44/84/2 51/76/2 42/85/2 +f 41/86/1 49/80/1 43/87/1 +f 48/69/6 53/78/6 47/65/6 +f 45/66/3 55/82/3 46/64/3 +f 62/88/5 63/89/5 61/90/5 +f 61/90/2 69/91/2 70/92/2 +f 62/88/1 72/93/1 64/94/1 +f 58/95/3 66/96/3 57/97/3 +f 59/98/6 68/99/6 60/100/6 +f 72/93/5 67/101/5 68/102/5 +f 69/103/5 68/99/5 65/104/5 +f 70/92/5 65/105/5 66/106/5 +f 71/107/5 66/96/5 67/108/5 +f 60/109/2 67/101/2 58/110/2 +f 57/111/1 65/105/1 59/112/1 +f 64/94/3 69/103/3 63/89/3 +f 61/90/6 71/107/6 62/88/6 +f 4/113/4 41/114/4 8/115/4 +f 44/116/4 4/113/4 3/117/4 +f 41/114/4 7/118/4 8/115/4 +f 43/119/4 3/117/4 7/118/4 +f 25/120/6 3/121/6 26/122/6 +f 25/120/6 5/123/6 7/124/6 +f 1/125/6 26/122/6 3/121/6 +f 1/125/6 27/126/6 28/127/6 +f 57/128/5 1/129/5 58/130/5 +f 2/131/5 58/130/5 1/129/5 +f 59/132/5 2/131/5 6/133/5 +f 57/128/5 6/133/5 5/134/5 +f 90/135/2 105/136/2 89/137/2 +f 89/137/2 120/138/2 104/139/2 +f 103/140/2 120/141/2 119/142/2 +f 103/140/2 118/143/2 102/144/2 +f 102/144/2 117/145/2 101/146/2 +f 101/146/2 116/147/2 100/148/2 +f 99/149/2 116/150/2 115/151/2 +f 98/152/2 115/153/2 114/154/2 +f 97/155/2 114/156/2 113/157/2 +f 96/158/2 113/159/2 112/160/2 +f 95/161/2 112/162/2 111/163/2 +f 95/161/2 110/164/2 94/165/2 +f 94/165/2 109/166/2 93/167/2 +f 93/168/2 108/169/2 92/170/2 +f 92/170/2 107/171/2 91/172/2 +f 91/172/2 106/173/2 90/135/2 +f 131/174/2 133/175/2 121/176/2 +f 156/177/2 173/178/2 172/179/2 +f 158/180/2 173/181/2 157/182/2 +f 159/183/2 174/184/2 158/180/2 +f 160/185/2 175/186/2 159/183/2 +f 161/187/2 176/188/2 160/185/2 +f 162/189/2 177/190/2 161/187/2 +f 163/191/2 178/192/2 162/189/2 +f 164/193/2 179/194/2 163/191/2 +f 165/195/2 180/196/2 164/193/2 +f 165/195/2 182/197/2 181/198/2 +f 166/199/2 183/200/2 182/197/2 +f 167/201/2 184/202/2 183/200/2 +f 168/203/2 169/204/2 184/202/2 +f 153/205/2 170/206/2 169/204/2 +f 154/207/2 171/208/2 170/206/2 +f 155/209/2 172/179/2 171/208/2 +f 220/210/2 237/211/2 236/212/2 +f 222/213/2 237/214/2 221/215/2 +f 223/216/2 238/217/2 222/213/2 +f 224/218/2 239/219/2 223/216/2 +f 225/220/2 240/221/2 224/218/2 +f 226/222/2 241/223/2 225/220/2 +f 227/224/2 242/225/2 226/222/2 +f 228/226/2 243/227/2 227/224/2 +f 229/228/2 244/229/2 228/226/2 +f 229/228/2 246/230/2 245/231/2 +f 230/232/2 247/233/2 246/230/2 +f 231/234/2 248/235/2 247/233/2 +f 232/236/2 233/237/2 248/235/2 +f 217/238/2 234/239/2 233/237/2 +f 218/240/2 235/241/2 234/239/2 +f 219/242/2 236/212/2 235/241/2 +f 3/1/1 4/8/1 2/2/1 +f 6/4/2 8/9/2 7/5/2 +f 11/7/3 12/243/3 4/8/3 +f 9/10/3 6/4/3 2/2/3 +f 9/10/3 11/7/3 8/9/3 +f 4/8/3 12/243/3 10/11/3 +f 14/12/3 16/17/3 15/13/3 +f 15/13/2 21/244/2 22/15/2 +f 14/12/1 23/245/1 24/16/1 +f 10/18/4 19/30/4 18/19/4 +f 11/21/5 17/26/5 20/22/5 +f 24/16/3 23/245/3 19/24/3 +f 17/26/3 21/36/3 24/27/3 +f 22/15/3 21/244/3 17/28/3 +f 19/30/3 23/37/3 22/31/3 +f 12/32/2 20/25/2 19/24/2 +f 9/34/1 18/29/1 17/28/1 +f 16/17/4 24/27/4 21/36/4 +f 13/14/5 22/31/5 23/37/5 +f 30/38/6 32/43/6 31/39/6 +f 31/39/2 37/246/2 38/41/2 +f 30/38/1 39/247/1 40/42/1 +f 26/44/5 35/56/5 34/45/5 +f 27/47/4 33/52/4 36/48/4 +f 40/42/6 39/247/6 35/50/6 +f 33/52/6 37/62/6 40/53/6 +f 38/41/6 37/246/6 33/54/6 +f 35/56/6 39/63/6 38/57/6 +f 28/58/2 36/51/2 35/50/2 +f 25/60/1 34/55/1 33/54/1 +f 32/43/5 40/53/5 37/62/5 +f 29/40/4 38/57/4 39/63/4 +f 46/64/4 48/69/4 47/65/4 +f 47/65/2 53/248/2 54/67/2 +f 46/64/1 55/249/1 56/68/1 +f 42/70/6 51/83/6 50/71/6 +f 43/73/3 49/79/3 52/74/3 +f 56/68/4 55/249/4 51/76/4 +f 53/78/4 56/250/4 52/74/4 +f 54/67/4 53/248/4 49/80/4 +f 55/82/4 54/251/4 50/71/4 +f 44/84/2 52/77/2 51/76/2 +f 41/86/1 50/81/1 49/80/1 +f 48/69/6 56/250/6 53/78/6 +f 45/66/3 54/251/3 55/82/3 +f 62/88/5 64/94/5 63/89/5 +f 61/90/2 63/89/2 69/91/2 +f 62/88/1 71/252/1 72/93/1 +f 58/95/3 67/108/3 66/96/3 +f 59/98/6 65/104/6 68/99/6 +f 72/93/5 71/252/5 67/101/5 +f 69/103/5 72/253/5 68/99/5 +f 70/92/5 69/91/5 65/105/5 +f 71/107/5 70/254/5 66/96/5 +f 60/109/2 68/102/2 67/101/2 +f 57/111/1 66/106/1 65/105/1 +f 64/94/3 72/253/3 69/103/3 +f 61/90/6 70/254/6 71/107/6 +f 4/113/4 42/255/4 41/114/4 +f 44/116/4 42/255/4 4/113/4 +f 41/114/4 43/119/4 7/118/4 +f 43/119/4 44/116/4 3/117/4 +f 25/120/6 7/124/6 3/121/6 +f 25/120/6 27/126/6 5/123/6 +f 1/125/6 28/127/6 26/122/6 +f 1/125/6 5/123/6 27/126/6 +f 57/128/5 5/134/5 1/129/5 +f 2/131/5 60/256/5 58/130/5 +f 59/132/5 60/256/5 2/131/5 +f 57/128/5 59/132/5 6/133/5 +f 90/135/2 106/257/2 105/136/2 +f 89/137/2 105/258/2 120/138/2 +f 103/140/2 104/139/2 120/141/2 +f 103/140/2 119/259/2 118/143/2 +f 102/144/2 118/260/2 117/145/2 +f 101/146/2 117/261/2 116/147/2 +f 99/149/2 100/148/2 116/150/2 +f 98/152/2 99/149/2 115/153/2 +f 97/155/2 98/152/2 114/156/2 +f 96/158/2 97/155/2 113/159/2 +f 95/161/2 96/158/2 112/162/2 +f 95/161/2 111/262/2 110/164/2 +f 94/165/2 110/263/2 109/166/2 +f 93/168/2 109/264/2 108/169/2 +f 92/170/2 108/265/2 107/171/2 +f 91/172/2 107/266/2 106/173/2 +f 121/176/2 122/267/2 123/268/2 +f 123/268/2 124/269/2 125/270/2 +f 125/270/2 126/271/2 127/272/2 +f 127/272/2 128/273/2 129/274/2 +f 129/274/2 130/275/2 131/174/2 +f 131/174/2 132/276/2 133/175/2 +f 133/175/2 134/277/2 121/176/2 +f 134/277/2 135/278/2 121/176/2 +f 135/278/2 136/279/2 121/176/2 +f 121/176/2 123/268/2 125/270/2 +f 125/270/2 127/272/2 121/176/2 +f 127/272/2 129/274/2 121/176/2 +f 129/274/2 131/174/2 121/176/2 +f 156/177/2 157/280/2 173/178/2 +f 158/180/2 174/184/2 173/181/2 +f 159/183/2 175/186/2 174/184/2 +f 160/185/2 176/188/2 175/186/2 +f 161/187/2 177/190/2 176/188/2 +f 162/189/2 178/192/2 177/190/2 +f 163/191/2 179/194/2 178/192/2 +f 164/193/2 180/196/2 179/194/2 +f 165/195/2 181/198/2 180/196/2 +f 165/195/2 166/199/2 182/197/2 +f 166/199/2 167/201/2 183/200/2 +f 167/201/2 168/203/2 184/202/2 +f 168/203/2 153/205/2 169/204/2 +f 153/205/2 154/207/2 170/206/2 +f 154/207/2 155/209/2 171/208/2 +f 155/209/2 156/177/2 172/179/2 +f 220/210/2 221/281/2 237/211/2 +f 222/213/2 238/217/2 237/214/2 +f 223/216/2 239/219/2 238/217/2 +f 224/218/2 240/221/2 239/219/2 +f 225/220/2 241/223/2 240/221/2 +f 226/222/2 242/225/2 241/223/2 +f 227/224/2 243/227/2 242/225/2 +f 228/226/2 244/229/2 243/227/2 +f 229/228/2 245/231/2 244/229/2 +f 229/228/2 230/232/2 246/230/2 +f 230/232/2 231/234/2 247/233/2 +f 231/234/2 232/236/2 248/235/2 +f 232/236/2 217/238/2 233/237/2 +f 217/238/2 218/240/2 234/239/2 +f 218/240/2 219/242/2 235/241/2 +f 219/242/2 220/210/2 236/212/2 +s 1 +f 79/282/7 94/165/8 78/283/8 +f 87/284/9 102/144/10 86/285/10 +f 80/286/11 95/161/7 79/282/7 +f 88/287/12 103/140/9 87/284/9 +f 81/288/5 96/158/11 80/286/11 +f 74/289/13 89/137/4 73/290/4 +f 73/290/4 104/139/12 88/287/12 +f 82/291/14 97/155/5 81/288/5 +f 75/292/15 90/135/13 74/289/13 +f 83/293/16 98/152/14 82/291/14 +f 76/294/17 91/172/15 75/292/15 +f 84/295/18 99/149/16 83/293/16 +f 77/296/6 92/170/17 76/294/17 +f 85/297/3 100/148/18 84/295/18 +f 78/283/8 93/167/6 77/298/6 +f 86/285/10 101/146/3 85/297/3 +f 115/153/15 130/299/13 114/154/13 +f 108/265/18 123/300/16 107/171/16 +f 116/150/17 131/301/15 115/151/15 +f 109/264/3 124/302/18 108/169/18 +f 117/261/6 132/303/17 116/147/17 +f 110/263/10 125/304/3 109/166/3 +f 118/260/8 133/305/6 117/145/6 +f 111/262/9 126/306/10 110/164/10 +f 119/259/7 134/307/8 118/143/8 +f 112/162/12 127/308/9 111/163/9 +f 120/141/11 135/309/7 119/142/7 +f 113/159/4 128/310/12 112/160/12 +f 106/257/14 121/311/5 105/136/5 +f 105/258/5 136/312/11 120/138/11 +f 114/156/13 129/313/4 113/157/4 +f 107/266/16 122/314/14 106/173/14 +f 139/315/19 76/294/20 75/292/19 +f 140/316/20 77/296/21 76/294/20 +f 141/317/21 78/283/22 77/298/21 +f 142/318/22 79/282/23 78/283/22 +f 143/319/23 80/286/24 79/282/23 +f 144/320/24 81/288/25 80/286/24 +f 145/321/25 82/291/26 81/288/25 +f 82/291/26 147/322/27 83/293/27 +f 147/322/27 84/295/28 83/293/27 +f 148/323/28 85/297/29 84/295/28 +f 85/297/29 150/324/30 86/285/30 +f 150/324/30 87/284/31 86/285/30 +f 87/284/31 152/325/32 88/287/32 +f 152/325/32 73/290/33 88/287/32 +f 137/326/33 74/289/34 73/290/33 +f 74/289/34 139/315/19 75/292/19 +f 210/327/14 163/191/16 162/189/14 +f 203/328/15 156/177/17 155/209/15 +f 211/329/16 164/193/18 163/191/16 +f 204/330/17 157/280/6 156/177/17 +f 212/331/18 165/195/3 164/193/18 +f 205/332/6 158/180/8 157/182/6 +f 213/333/3 166/199/10 165/195/3 +f 206/334/8 159/183/7 158/180/8 +f 214/335/10 167/201/9 166/199/10 +f 207/336/7 160/185/11 159/183/7 +f 215/337/9 168/203/12 167/201/9 +f 208/338/11 161/187/5 160/185/11 +f 201/339/4 154/207/13 153/205/4 +f 216/340/12 153/205/4 168/203/12 +f 209/341/5 162/189/14 161/187/5 +f 202/342/13 155/209/15 154/207/13 +f 189/343/35 204/330/36 188/344/36 +f 190/345/37 205/332/35 189/346/35 +f 191/347/38 206/334/37 190/345/37 +f 191/347/38 208/338/39 207/336/38 +f 192/348/39 209/341/40 208/338/39 +f 193/349/40 210/327/41 209/341/40 +f 194/350/41 211/329/42 210/327/41 +f 195/351/42 212/331/43 211/329/42 +f 197/352/44 212/331/43 196/353/43 +f 198/354/45 213/333/44 197/352/44 +f 199/355/46 214/335/45 198/354/45 +f 200/356/47 215/337/46 199/355/46 +f 185/357/48 216/340/47 200/356/47 +f 186/358/49 201/339/48 185/357/48 +f 187/359/50 202/342/49 186/358/49 +f 188/344/36 203/328/50 187/359/50 +f 274/360/14 227/224/16 226/222/14 +f 267/361/15 220/210/17 219/242/15 +f 275/362/16 228/226/18 227/224/16 +f 268/363/17 221/281/6 220/210/17 +f 276/364/18 229/228/3 228/226/18 +f 269/365/6 222/213/8 221/215/6 +f 277/366/3 230/232/10 229/228/3 +f 270/367/8 223/216/7 222/213/8 +f 278/368/10 231/234/9 230/232/10 +f 271/369/7 224/218/11 223/216/7 +f 279/370/9 232/236/12 231/234/9 +f 272/371/11 225/220/5 224/218/11 +f 265/372/4 218/240/13 217/238/4 +f 280/373/12 217/238/4 232/236/12 +f 273/374/5 226/222/14 225/220/5 +f 266/375/13 219/242/15 218/240/13 +f 253/376/35 268/363/36 252/377/36 +f 254/378/37 269/365/35 253/379/35 +f 254/378/37 271/369/38 270/367/37 +f 255/380/38 272/371/39 271/369/38 +f 256/381/39 273/374/40 272/371/39 +f 257/382/40 274/360/41 273/374/40 +f 258/383/41 275/362/42 274/360/41 +f 259/384/42 276/364/43 275/362/42 +f 261/385/44 276/364/43 260/386/43 +f 262/387/45 277/366/44 261/385/44 +f 263/388/46 278/368/45 262/387/45 +f 264/389/47 279/370/46 263/388/46 +f 249/390/48 280/373/47 264/389/47 +f 250/391/49 265/372/48 249/390/48 +f 251/392/50 266/375/49 250/391/49 +f 252/377/36 267/361/50 251/392/50 +f 79/282/7 95/161/7 94/165/8 +f 87/284/9 103/140/9 102/144/10 +f 80/286/11 96/158/11 95/161/7 +f 88/287/12 104/139/12 103/140/9 +f 81/288/5 97/155/5 96/158/11 +f 74/289/13 90/135/13 89/137/4 +f 73/290/4 89/137/4 104/139/12 +f 82/291/14 98/152/14 97/155/5 +f 75/292/15 91/172/15 90/135/13 +f 83/293/16 99/149/16 98/152/14 +f 76/294/17 92/170/17 91/172/15 +f 84/295/18 100/148/18 99/149/16 +f 77/296/6 93/168/6 92/170/17 +f 85/297/3 101/146/3 100/148/18 +f 78/283/8 94/165/8 93/167/6 +f 86/285/10 102/144/10 101/146/3 +f 115/153/15 131/393/15 130/299/13 +f 108/265/18 124/394/18 123/300/16 +f 116/150/17 132/395/17 131/301/15 +f 109/264/3 125/396/3 124/302/18 +f 117/261/6 133/397/6 132/303/17 +f 110/263/10 126/398/10 125/304/3 +f 118/260/8 134/399/8 133/305/6 +f 111/262/9 127/400/9 126/306/10 +f 119/259/7 135/401/7 134/307/8 +f 112/162/12 128/402/12 127/308/9 +f 120/141/11 136/403/11 135/309/7 +f 113/159/4 129/404/4 128/310/12 +f 106/257/14 122/405/14 121/311/5 +f 105/258/5 121/406/5 136/312/11 +f 114/156/13 130/407/13 129/313/4 +f 107/266/16 123/408/16 122/314/14 +f 139/315/19 140/316/20 76/294/20 +f 140/316/20 141/409/21 77/296/21 +f 141/317/21 142/318/22 78/283/22 +f 142/318/22 143/319/23 79/282/23 +f 143/319/23 144/320/24 80/286/24 +f 144/320/24 145/321/25 81/288/25 +f 145/321/25 146/410/26 82/291/26 +f 82/291/26 146/410/26 147/322/27 +f 147/322/27 148/323/28 84/295/28 +f 148/323/28 149/411/29 85/297/29 +f 85/297/29 149/411/29 150/324/30 +f 150/324/30 151/412/31 87/284/31 +f 87/284/31 151/412/31 152/325/32 +f 152/325/32 137/326/33 73/290/33 +f 137/326/33 138/413/34 74/289/34 +f 74/289/34 138/413/34 139/315/19 +f 210/327/14 211/329/16 163/191/16 +f 203/328/15 204/330/17 156/177/17 +f 211/329/16 212/331/18 164/193/18 +f 204/330/17 205/414/6 157/280/6 +f 212/331/18 213/333/3 165/195/3 +f 205/332/6 206/334/8 158/180/8 +f 213/333/3 214/335/10 166/199/10 +f 206/334/8 207/336/7 159/183/7 +f 214/335/10 215/337/9 167/201/9 +f 207/336/7 208/338/11 160/185/11 +f 215/337/9 216/340/12 168/203/12 +f 208/338/11 209/341/5 161/187/5 +f 201/339/4 202/342/13 154/207/13 +f 216/340/12 201/339/4 153/205/4 +f 209/341/5 210/327/14 162/189/14 +f 202/342/13 203/328/15 155/209/15 +f 189/343/35 205/414/35 204/330/36 +f 190/345/37 206/334/37 205/332/35 +f 191/347/38 207/336/38 206/334/37 +f 191/347/38 192/348/39 208/338/39 +f 192/348/39 193/349/40 209/341/40 +f 193/349/40 194/350/41 210/327/41 +f 194/350/41 195/351/42 211/329/42 +f 195/351/42 196/353/43 212/331/43 +f 197/352/44 213/333/44 212/331/43 +f 198/354/45 214/335/45 213/333/44 +f 199/355/46 215/337/46 214/335/45 +f 200/356/47 216/340/47 215/337/46 +f 185/357/48 201/339/48 216/340/47 +f 186/358/49 202/342/49 201/339/48 +f 187/359/50 203/328/50 202/342/49 +f 188/344/36 204/330/36 203/328/50 +f 274/360/14 275/362/16 227/224/16 +f 267/361/15 268/363/17 220/210/17 +f 275/362/16 276/364/18 228/226/18 +f 268/363/17 269/415/6 221/281/6 +f 276/364/18 277/366/3 229/228/3 +f 269/365/6 270/367/8 222/213/8 +f 277/366/3 278/368/10 230/232/10 +f 270/367/8 271/369/7 223/216/7 +f 278/368/10 279/370/9 231/234/9 +f 271/369/7 272/371/11 224/218/11 +f 279/370/9 280/373/12 232/236/12 +f 272/371/11 273/374/5 225/220/5 +f 265/372/4 266/375/13 218/240/13 +f 280/373/12 265/372/4 217/238/4 +f 273/374/5 274/360/14 226/222/14 +f 266/375/13 267/361/15 219/242/15 +f 253/376/35 269/415/35 268/363/36 +f 254/378/37 270/367/37 269/365/35 +f 254/378/37 255/380/38 271/369/38 +f 255/380/38 256/381/39 272/371/39 +f 256/381/39 257/382/40 273/374/40 +f 257/382/40 258/383/41 274/360/41 +f 258/383/41 259/384/42 275/362/42 +f 259/384/42 260/386/43 276/364/43 +f 261/385/44 277/366/44 276/364/43 +f 262/387/45 278/368/45 277/366/44 +f 263/388/46 279/370/46 278/368/45 +f 264/389/47 280/373/47 279/370/46 +f 249/390/48 265/372/48 280/373/47 +f 250/391/49 266/375/49 265/372/48 +f 251/392/50 267/361/50 266/375/49 +f 252/377/36 268/363/36 267/361/50 diff --git a/src/main/resources/assets/hbm/models/machines/condenser.obj b/src/main/resources/assets/hbm/models/machines/condenser.obj new file mode 100644 index 000000000..f2b846454 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/condenser.obj @@ -0,0 +1,5515 @@ +# Blender v2.79 (sub 0) OBJ File: 'condenser.blend' +# www.blender.org +o Fan1 +v -1.375000 1.500000 0.125000 +v -1.375000 1.608253 0.062500 +v -1.375000 1.608253 -0.062500 +v -1.375000 1.500000 -0.125000 +v -1.375000 1.391747 -0.062500 +v -1.375000 1.391747 0.062500 +v -1.500000 1.608253 0.062500 +v -1.500000 1.500000 0.125000 +v -1.500000 1.608253 -0.062500 +v -1.500000 1.500000 -0.125000 +v -1.500000 1.391747 -0.062500 +v -1.500000 1.391747 0.062500 +v -1.501628 1.937500 -0.176192 +v -1.458876 1.500000 -0.058731 +v -1.373371 1.937500 0.176192 +v -1.416123 1.500000 0.058731 +v -1.501628 1.128663 -0.290790 +v -1.458876 1.449138 0.029366 +v -1.373371 1.433837 -0.466982 +v -1.416123 1.550862 -0.029365 +v -1.501628 1.433837 0.466982 +v -1.458876 1.550862 0.029365 +v -1.373371 1.128663 0.290790 +v -1.416123 1.449138 -0.029365 +vt 0.908031 0.056886 +vt 0.915969 0.056886 +vt 0.919938 0.070312 +vt 0.912000 0.039062 +vt 0.904000 0.054688 +vt 0.904000 0.039062 +vt 0.944000 0.039062 +vt 0.936000 0.054688 +vt 0.936000 0.039062 +vt 0.928000 0.039062 +vt 0.920000 0.054688 +vt 0.920000 0.039062 +vt 0.912000 0.054688 +vt 0.952000 0.039062 +vt 0.944000 0.054688 +vt 0.928000 0.054688 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.920000 0.109375 +vt 0.936000 0.054688 +vt 0.944000 0.109375 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.915969 0.083739 +vt 0.908031 0.083739 +vt 0.904062 0.070313 +vt 0.952000 0.054688 +vt 0.936000 0.054688 +vt 0.928000 0.054688 +vt 0.936000 0.054688 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.0000 0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 1.0000 0.0000 +vn -0.9397 0.0000 0.3420 +vn -0.9397 0.2962 -0.1710 +vn -0.9397 -0.2962 -0.1710 +s off +f 11/1/1 12/2/1 8/3/1 +f 6/4/2 11/5/2 5/6/2 +f 4/7/3 9/8/3 3/9/3 +f 2/10/4 8/11/4 1/12/4 +f 1/12/5 12/13/5 6/4/5 +f 5/14/6 10/15/6 4/7/6 +f 2/10/7 9/8/7 7/16/7 +f 14/17/8 15/18/8 13/19/8 +f 17/20/9 20/21/9 19/22/9 +f 22/23/10 23/24/10 21/25/10 +f 8/3/1 7/26/1 11/1/1 +f 7/26/1 9/27/1 11/1/1 +f 9/27/1 10/28/1 11/1/1 +f 6/4/2 12/13/2 11/5/2 +f 4/7/3 10/15/3 9/8/3 +f 2/10/4 7/16/4 8/11/4 +f 1/12/5 8/11/5 12/13/5 +f 5/14/6 11/29/6 10/15/6 +f 2/10/7 3/9/7 9/8/7 +f 14/17/8 16/30/8 15/18/8 +f 17/20/9 18/31/9 20/21/9 +f 22/23/10 24/32/10 23/24/10 +o Fan2 +v 1.375000 1.500000 -0.125000 +v 1.375000 1.608253 -0.062500 +v 1.375000 1.608253 0.062500 +v 1.375000 1.500000 0.125000 +v 1.375000 1.391747 0.062500 +v 1.375000 1.391747 -0.062500 +v 1.500000 1.608253 -0.062500 +v 1.500000 1.500000 -0.125000 +v 1.500000 1.608253 0.062500 +v 1.500000 1.500000 0.125000 +v 1.500000 1.391747 0.062500 +v 1.500000 1.391747 -0.062500 +v 1.501628 1.937500 0.176192 +v 1.458876 1.500000 0.058731 +v 1.373371 1.937500 -0.176192 +v 1.416123 1.500000 -0.058731 +v 1.501628 1.128663 0.290790 +v 1.458876 1.449138 -0.029366 +v 1.373371 1.433837 0.466982 +v 1.416123 1.550862 0.029365 +v 1.501628 1.433837 -0.466982 +v 1.458876 1.550862 -0.029365 +v 1.373371 1.128663 -0.290790 +v 1.416123 1.449138 0.029366 +vt 0.915969 0.056886 +vt 0.919938 0.070312 +vt 0.908031 0.083739 +vt 0.912000 0.039063 +vt 0.904000 0.054688 +vt 0.904000 0.039063 +vt 0.944000 0.039062 +vt 0.936000 0.054688 +vt 0.936000 0.039062 +vt 0.928000 0.039062 +vt 0.920000 0.054688 +vt 0.920000 0.039062 +vt 0.912000 0.054688 +vt 0.952000 0.039062 +vt 0.944000 0.054687 +vt 0.928000 0.054688 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.920000 0.109375 +vt 0.936000 0.054688 +vt 0.944000 0.109375 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.915969 0.083739 +vt 0.904062 0.070312 +vt 0.908031 0.056886 +vt 0.952000 0.054687 +vt 0.936000 0.054688 +vt 0.928000 0.054688 +vt 0.936000 0.054688 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 1.0000 0.0000 +vn 0.9397 0.0000 -0.3420 +vn 0.9397 0.2962 0.1710 +vn 0.9397 -0.2962 0.1710 +s off +f 36/33/11 32/34/11 33/35/11 +f 30/36/12 35/37/12 29/38/12 +f 28/39/13 33/40/13 27/41/13 +f 26/42/14 32/43/14 25/44/14 +f 25/44/15 36/45/15 30/36/15 +f 29/46/16 34/47/16 28/39/16 +f 27/41/17 31/48/17 26/42/17 +f 38/49/18 39/50/18 37/51/18 +f 41/52/19 44/53/19 43/54/19 +f 46/55/20 47/56/20 45/57/20 +f 32/34/11 31/58/11 33/35/11 +f 33/35/11 34/59/11 35/60/11 +f 35/60/11 36/33/11 33/35/11 +f 30/36/12 36/45/12 35/37/12 +f 28/39/13 34/47/13 33/40/13 +f 26/42/14 31/48/14 32/43/14 +f 25/44/15 32/43/15 36/45/15 +f 29/46/16 35/61/16 34/47/16 +f 27/41/17 33/40/17 31/48/17 +f 38/49/18 40/62/18 39/50/18 +f 41/52/19 42/63/19 44/53/19 +f 46/55/20 48/64/20 47/56/20 +o Condenser +v 1.500000 0.250000 -3.125000 +v 1.500000 0.250000 3.125000 +v 1.250000 0.250000 3.125000 +v 1.250000 0.250000 -3.125000 +v 1.250000 0.000000 -3.125000 +v 1.250000 0.000000 3.125000 +v 1.500000 0.000000 3.125000 +v 1.500000 0.000000 -3.125000 +v 1.500000 0.000000 -3.500000 +v 1.500000 0.000000 -3.125000 +v 1.125000 0.000000 -3.500000 +v 1.125000 0.000000 -3.125000 +v 1.500000 0.375000 -3.500000 +v 1.500000 0.375000 -3.125000 +v 1.125000 0.375000 -3.500000 +v 1.125000 0.375000 -3.125000 +v -1.125000 0.000000 -3.500000 +v -1.125000 0.000000 -3.125000 +v -1.500000 0.000000 -3.500000 +v -1.500000 0.000000 -3.125000 +v -1.125000 0.375000 -3.500000 +v -1.125000 0.375000 -3.125000 +v -1.500000 0.375000 -3.500000 +v -1.500000 0.375000 -3.125000 +v 1.500000 0.000000 3.125000 +v 1.500000 0.000000 3.500000 +v 1.125000 0.000000 3.125000 +v 1.125000 0.000000 3.500000 +v 1.500000 0.375000 3.125000 +v 1.500000 0.375000 3.500000 +v 1.125000 0.375000 3.125000 +v 1.125000 0.375000 3.500000 +v -1.125000 0.000000 3.125000 +v -1.125000 0.000000 3.500000 +v -1.500000 0.000000 3.125000 +v -1.500000 0.000000 3.500000 +v -1.125000 0.375000 3.125000 +v -1.125000 0.375000 3.500000 +v -1.500000 0.375000 3.125000 +v -1.500000 0.375000 3.500000 +v 1.500000 2.625000 -3.500000 +v 1.500000 2.625000 -3.125000 +v 1.125000 2.625000 -3.500000 +v 1.125000 2.625000 -3.125000 +v 1.500000 3.000000 -3.500000 +v 1.500000 3.000000 -3.125000 +v 1.125000 3.000000 -3.500000 +v 1.125000 3.000000 -3.125000 +v -1.125000 2.625000 -3.500000 +v -1.125000 2.625000 -3.125000 +v -1.500000 2.625000 -3.500000 +v -1.500000 2.625000 -3.125000 +v -1.125000 3.000000 -3.500000 +v -1.125000 3.000000 -3.125000 +v -1.500000 3.000000 -3.500000 +v -1.500000 3.000000 -3.125000 +v 1.500000 2.625000 3.125000 +v 1.500000 2.625000 3.500000 +v 1.125000 2.625000 3.125000 +v 1.125000 2.625000 3.500000 +v 1.500000 3.000000 3.125000 +v 1.500000 3.000000 3.500000 +v 1.125000 3.000000 3.125000 +v 1.125000 3.000000 3.500000 +v -1.125000 2.625000 3.125000 +v -1.125000 2.625000 3.500000 +v -1.500000 2.625000 3.125000 +v -1.500000 2.625000 3.500000 +v -1.125000 3.000000 3.125000 +v -1.125000 3.000000 3.500000 +v -1.500000 3.000000 3.125000 +v -1.500000 3.000000 3.500000 +v 1.500000 3.000000 -3.125000 +v 1.500000 3.000000 3.125000 +v 1.250000 3.000000 3.125000 +v 1.250000 3.000000 -3.125000 +v 1.250000 2.750000 -3.125000 +v 1.250000 2.750000 3.125000 +v 1.500000 2.750000 3.125000 +v 1.500000 2.750000 -3.125000 +v -1.250000 0.250000 -3.125000 +v -1.250000 0.250000 3.125000 +v -1.500000 0.250000 3.125000 +v -1.500000 0.250000 -3.125000 +v -1.500000 0.000000 -3.125000 +v -1.500000 0.000000 3.125000 +v -1.250000 0.000000 3.125000 +v -1.250000 0.000000 -3.125000 +v -1.250000 3.000000 -3.125000 +v -1.250000 3.000000 3.125000 +v -1.500000 3.000000 3.125000 +v -1.500000 3.000000 -3.125000 +v -1.500000 2.750000 -3.125000 +v -1.500000 2.750000 3.125000 +v -1.250000 2.750000 3.125000 +v -1.250000 2.750000 -3.125000 +v 1.125000 0.000000 3.500000 +v -1.125000 0.000000 3.500000 +v 1.125000 0.000000 3.250000 +v -1.125000 0.000000 3.250000 +v 1.125000 0.250000 3.500000 +v -1.125000 0.250000 3.500000 +v 1.125000 0.250000 3.250000 +v -1.125000 0.250000 3.250000 +v 1.125000 0.000000 -3.250000 +v -1.125000 0.000000 -3.250000 +v 1.125000 0.000000 -3.500000 +v -1.125000 0.000000 -3.500000 +v 1.125000 0.250000 -3.250000 +v -1.125000 0.250000 -3.250000 +v 1.125000 0.250000 -3.500000 +v -1.125000 0.250000 -3.500000 +v 1.125000 2.750000 3.500000 +v -1.125000 2.750000 3.500000 +v 1.125000 2.750000 3.250000 +v -1.125000 2.750000 3.250000 +v 1.125000 3.000000 3.500000 +v -1.125000 3.000000 3.500000 +v 1.125000 3.000000 3.250000 +v -1.125000 3.000000 3.250000 +v 1.125000 2.750000 -3.250000 +v -1.125000 2.750000 -3.250000 +v 1.125000 2.750000 -3.500000 +v -1.125000 2.750000 -3.500000 +v 1.125000 3.000000 -3.250000 +v -1.125000 3.000000 -3.250000 +v 1.125000 3.000000 -3.500000 +v -1.125000 3.000000 -3.500000 +v -1.500000 0.375000 3.500000 +v -1.500000 2.625000 3.500000 +v -1.500000 0.375000 3.250000 +v -1.500000 2.625000 3.250000 +v -1.250000 0.375000 3.500000 +v -1.250000 2.625000 3.500000 +v -1.250000 0.375000 3.250000 +v -1.250000 2.625000 3.250000 +v 1.250000 0.375000 3.500000 +v 1.250000 2.625000 3.500000 +v 1.250000 0.375000 3.250000 +v 1.250000 2.625000 3.250000 +v 1.500000 0.375000 3.500000 +v 1.500000 2.625000 3.500000 +v 1.500000 0.375000 3.250000 +v 1.500000 2.625000 3.250000 +v -1.500000 0.375000 -3.250000 +v -1.500000 2.625000 -3.250000 +v -1.500000 0.375000 -3.500000 +v -1.500000 2.625000 -3.500000 +v -1.250000 0.375000 -3.250000 +v -1.250000 2.625000 -3.250000 +v -1.250000 0.375000 -3.500000 +v -1.250000 2.625000 -3.500000 +v 1.250000 0.375000 -3.250000 +v 1.250000 2.625000 -3.250000 +v 1.250000 0.375000 -3.500000 +v 1.250000 2.625000 -3.500000 +v 1.500000 0.375000 -3.250000 +v 1.500000 2.625000 -3.250000 +v 1.500000 0.375000 -3.500000 +v 1.500000 2.625000 -3.500000 +v 0.000000 3.000000 2.500000 +v 0.000000 3.000000 2.750000 +v 0.574025 2.885819 2.500000 +v 0.574025 2.885819 2.750000 +v 1.060660 2.560660 2.500000 +v 1.060660 2.560660 2.750000 +v 1.385819 2.074025 2.500000 +v 1.385819 2.074025 2.750000 +v 1.500000 1.500000 2.500000 +v 1.500000 1.500000 2.750000 +v 1.385819 0.925975 2.500000 +v 1.385819 0.925975 2.750000 +v 1.060660 0.439340 2.500000 +v 1.060660 0.439340 2.750000 +v 0.574025 0.114181 2.500000 +v 0.574025 0.114181 2.750000 +v 0.000000 0.000000 2.500000 +v 0.000000 0.000000 2.750000 +v -0.574025 0.114181 2.500000 +v -0.574025 0.114181 2.750000 +v -1.060660 0.439340 2.500000 +v -1.060660 0.439340 2.750000 +v -1.385819 0.925975 2.500000 +v -1.385819 0.925975 2.750000 +v -1.500000 1.500000 2.500000 +v -1.500000 1.500000 2.750000 +v -1.385819 2.074025 2.500000 +v -1.385819 2.074025 2.750000 +v -1.060660 2.560660 2.500000 +v -1.060660 2.560660 2.750000 +v -0.574024 2.885820 2.500000 +v -0.574024 2.885820 2.750000 +v 1.374999 1.500001 -2.750000 +v 1.190784 1.500001 -3.093750 +v 0.000000 2.690785 3.093750 +v 0.000000 2.875000 2.750000 +v 0.687499 1.500000 -3.345392 +v -0.000000 2.690785 -3.093750 +v 1.270334 0.973811 -2.750000 +v 1.100142 1.044307 -3.093750 +v 0.263095 2.135167 3.345392 +v 0.455694 2.600142 3.093750 +v 0.526190 2.770334 2.750000 +v 0.574024 2.885820 -2.750000 +v 0.574024 2.885820 -2.500000 +v 0.635167 1.236906 -3.345392 +v 0.972271 0.527729 -2.750000 +v 0.486136 1.986136 3.345392 +v 0.842012 2.342012 3.093750 +v 0.972272 2.472272 2.750000 +v 1.060659 2.560660 -2.750000 +v 1.060659 2.560660 -2.500000 +v 0.842011 0.657989 -3.093750 +v 0.486135 1.013865 -3.345392 +v 0.635167 1.763095 3.345392 +v 1.100142 1.955694 3.093750 +v 1.270334 2.026190 2.750000 +v 1.385819 2.074025 -2.750000 +v 1.385819 2.074025 -2.500000 +v 0.526190 0.229666 -2.750000 +v 0.455694 0.399859 -3.093750 +v 0.687500 1.500000 3.345392 +v 1.190784 1.500000 3.093750 +v 1.375000 1.500000 2.750000 +v 1.500000 1.500000 -2.750000 +v 1.500000 1.500000 -2.500000 +v 0.263094 0.864833 -3.345392 +v 0.000000 0.125001 -2.750000 +v 0.635167 1.236905 3.345392 +v 1.100142 1.044307 3.093750 +v 1.270334 0.973810 2.750000 +v 1.385819 0.925975 -2.750000 +v 1.385819 0.925975 -2.500000 +v 0.000000 0.309216 -3.093750 +v -0.000000 0.812500 -3.345392 +v 0.486136 1.013864 3.345392 +v 0.842011 0.657988 3.093750 +v 0.972271 0.527729 2.750000 +v 1.060659 0.439340 -2.750000 +v 1.060659 0.439340 -2.500000 +v -0.526189 0.229666 -2.750000 +v -0.455693 0.399859 -3.093750 +v 0.263095 0.864833 3.345392 +v 0.455693 0.399859 3.093750 +v 0.526189 0.229666 2.750000 +v 0.574025 0.114181 -2.750000 +v 0.574025 0.114181 -2.500000 +v -0.263095 0.864833 -3.345392 +v -0.972271 0.527729 -2.750000 +v 0.000000 0.812500 3.345392 +v -0.000000 0.309216 3.093750 +v -0.000000 0.125001 2.750000 +v -0.000000 0.000000 -2.750000 +v -0.000000 0.000000 -2.500000 +v -0.842012 0.657988 -3.093750 +v -0.486136 1.013864 -3.345392 +v -0.263095 0.864833 3.345392 +v -0.455694 0.399859 3.093750 +v -0.526190 0.229666 2.750000 +v -0.574026 0.114181 -2.750000 +v -0.574026 0.114181 -2.500000 +v -1.270334 0.973810 -2.750000 +v -1.100142 1.044307 -3.093750 +v -0.486136 1.013865 3.345392 +v -0.842012 0.657989 3.093750 +v -0.972272 0.527729 2.750000 +v -1.060660 0.439340 -2.750000 +v -1.060660 0.439340 -2.500000 +v -0.635167 1.236905 -3.345392 +v -1.375000 1.500000 -2.750000 +v -0.635167 1.236906 3.345392 +v -1.100142 1.044307 3.093750 +v -1.270334 0.973811 2.750000 +v -1.385819 0.925975 -2.750000 +v -1.385819 0.925975 -2.500000 +v -1.190785 1.500000 -3.093750 +v -0.687500 1.500000 -3.345392 +v -0.687500 1.500000 3.345392 +v -1.190784 1.500001 3.093750 +v -1.375000 1.500001 2.750000 +v -1.500000 1.500000 -2.750000 +v -1.500000 1.500000 -2.500000 +v -1.270334 2.026190 -2.750000 +v -1.100142 1.955694 -3.093750 +v -0.635167 1.763095 3.345392 +v -1.100141 1.955694 3.093750 +v -1.270334 2.026190 2.750000 +v -1.385819 2.074025 -2.750000 +v -1.385819 2.074025 -2.500000 +v -0.635167 1.763095 -3.345392 +v -0.972272 2.472272 -2.750000 +v -0.486135 1.986136 3.345392 +v -0.842011 2.342012 3.093750 +v -0.972271 2.472272 2.750000 +v -1.060660 2.560660 -2.750000 +v -1.060660 2.560660 -2.500000 +v -0.842012 2.342012 -3.093750 +v -0.486136 1.986136 -3.345392 +v -0.263094 2.135167 3.345392 +v -0.455693 2.600142 3.093750 +v -0.526189 2.770334 2.750000 +v -0.574025 2.885819 -2.750000 +v -0.574025 2.885819 -2.500000 +v -0.526190 2.770334 -2.750000 +v 0.000000 1.500000 3.437500 +v 0.000000 2.187500 3.345392 +v -0.455694 2.600142 -3.093750 +v -0.263095 2.135167 -3.345392 +v -0.000000 3.000000 -2.750000 +v -0.000000 2.875000 -2.750000 +v 0.000000 3.000000 -2.500000 +v 0.635166 1.763095 -3.345392 +v 1.100141 1.955694 -3.093750 +v 1.270333 2.026190 -2.750000 +v 0.486135 1.986136 -3.345392 +v 0.842011 2.342012 -3.093750 +v 0.972271 2.472272 -2.750000 +v 0.263094 2.135167 -3.345392 +v 0.455692 2.600142 -3.093750 +v 0.526189 2.770334 -2.750000 +v -0.000000 1.500000 -3.437500 +v -0.000000 2.187500 -3.345392 +v 0.000000 2.875000 2.500000 +v 0.526190 2.770334 2.500000 +v 0.972272 2.472272 2.500000 +v 1.270334 2.026190 2.500000 +v 1.375000 1.500000 2.500000 +v 1.270334 0.973810 2.500000 +v 0.972271 0.527729 2.500000 +v 0.526189 0.229666 2.500000 +v -0.000000 0.125001 2.500000 +v -0.526190 0.229666 2.500000 +v -0.972272 0.527729 2.500000 +v -1.270334 0.973811 2.500000 +v -1.375000 1.500001 2.500000 +v -1.270334 2.026190 2.500000 +v -0.972271 2.472272 2.500000 +v -0.526189 2.770334 2.500000 +v 0.000000 2.875000 -2.500000 +v 0.526190 2.770334 -2.500000 +v 0.972272 2.472272 -2.500000 +v 1.270334 2.026190 -2.500000 +v 1.375000 1.500000 -2.500000 +v 1.270334 0.973810 -2.500000 +v 0.972271 0.527729 -2.500000 +v 0.526189 0.229666 -2.500000 +v -0.000000 0.125001 -2.500000 +v -0.526190 0.229666 -2.500000 +v -0.972272 0.527729 -2.500000 +v -1.270334 0.973811 -2.500000 +v -1.375000 1.500001 -2.500000 +v -1.270334 2.026190 -2.500000 +v -0.972271 2.472272 -2.500000 +v -0.526189 2.770334 -2.500000 +v 1.375000 2.250000 1.500000 +v 1.375000 0.750000 1.500000 +v 1.375000 2.250000 -1.500000 +v 1.375000 0.750000 -1.500000 +v 1.000000 2.250000 -1.500000 +v 1.000000 2.250000 1.500000 +v 1.000000 0.750000 1.500000 +v 1.000000 0.750000 -1.500000 +v 1.375000 1.500000 -0.625000 +v 1.375000 1.812500 -0.541266 +v 1.375000 2.041266 -0.312500 +v 1.375000 2.125000 0.000000 +v 1.375000 2.041266 0.312500 +v 1.375000 1.812500 0.541266 +v 1.375000 1.500000 0.625000 +v 1.375000 1.187500 0.541266 +v 1.375000 0.958734 0.312500 +v 1.375000 0.875000 0.000000 +v 1.375000 0.958734 -0.312500 +v 1.375000 1.187500 -0.541266 +v 1.375000 1.500000 -0.500000 +v 1.375000 1.750000 -0.433013 +v 1.375000 1.933013 -0.250000 +v 1.375000 2.000000 0.000000 +v 1.375000 1.933013 0.250000 +v 1.375000 1.750000 0.433013 +v 1.375000 1.500000 0.500000 +v 1.375000 1.250000 0.433013 +v 1.375000 1.066987 0.250000 +v 1.375000 1.000000 0.000000 +v 1.375000 1.066987 -0.250000 +v 1.375000 1.250000 -0.433013 +v 1.625000 1.812500 -0.541266 +v 1.625000 1.500000 -0.625000 +v 1.625000 2.041266 -0.312500 +v 1.625000 2.125000 0.000000 +v 1.625000 2.041266 0.312500 +v 1.625000 1.812500 0.541266 +v 1.625000 1.500000 0.625000 +v 1.625000 1.187500 0.541266 +v 1.625000 0.958734 0.312500 +v 1.625000 0.875000 0.000000 +v 1.625000 0.958734 -0.312500 +v 1.625000 1.187500 -0.541266 +v 1.625000 1.750000 -0.433013 +v 1.625000 1.500000 -0.500000 +v 1.625000 1.933013 -0.250000 +v 1.625000 2.000000 0.000000 +v 1.625000 1.933013 0.250000 +v 1.625000 1.750000 0.433013 +v 1.625000 1.500000 0.500000 +v 1.625000 1.250000 0.433013 +v 1.625000 1.066987 0.250000 +v 1.625000 1.000000 0.000000 +v 1.625000 1.066987 -0.250000 +v 1.625000 1.250000 -0.433013 +v 1.562500 1.406250 0.500000 +v 1.562500 1.343750 0.500000 +v 1.562500 1.406250 -0.500000 +v 1.562500 1.343750 -0.500000 +v 1.562500 1.656250 0.500000 +v 1.562500 1.593750 0.500000 +v 1.562500 1.656250 -0.500000 +v 1.562500 1.593750 -0.500000 +v 1.562500 1.906250 0.375000 +v 1.562500 1.843750 0.375000 +v 1.562500 1.906250 -0.375000 +v 1.562500 1.843750 -0.375000 +v 1.562500 1.166250 0.375000 +v 1.562500 1.103750 0.375000 +v 1.562500 1.166250 -0.375000 +v 1.562500 1.103750 -0.375000 +v 1.375000 2.000000 -0.750000 +v 1.375000 1.000000 -0.750000 +v 1.375000 2.000000 -1.250000 +v 1.375000 1.000000 -1.250000 +v 1.500000 2.000000 -1.250000 +v 1.500000 2.000000 -0.750000 +v 1.500000 1.000000 -0.750000 +v 1.500000 1.000000 -1.250000 +v 1.375000 2.000000 1.250000 +v 1.375000 1.000000 1.250000 +v 1.375000 2.000000 0.750000 +v 1.375000 1.000000 0.750000 +v 1.500000 2.000000 0.750000 +v 1.500000 2.000000 1.250000 +v 1.500000 1.000000 1.250000 +v 1.500000 1.000000 0.750000 +v 1.250000 0.000000 -2.375000 +v -1.250000 0.000000 -2.375000 +v 1.250000 0.125000 -2.375000 +v -1.250000 0.125000 -2.375000 +v 1.250000 0.000000 -2.125000 +v -1.250000 0.000000 -2.125000 +v 1.250000 0.125000 -2.125000 +v -1.250000 0.125000 -2.125000 +v 1.250000 0.000000 2.125000 +v -1.250000 0.000000 2.125000 +v 1.250000 0.125000 2.125000 +v -1.250000 0.125000 2.125000 +v 1.250000 0.000000 2.375000 +v -1.250000 0.000000 2.375000 +v 1.250000 0.125000 2.375000 +v -1.250000 0.125000 2.375000 +v 1.250000 2.875000 -2.375000 +v -1.250000 2.875000 -2.375000 +v 1.250000 3.000000 -2.375000 +v -1.250000 3.000000 -2.375000 +v 1.250000 2.875000 -2.125000 +v -1.250000 2.875000 -2.125000 +v 1.250000 3.000000 -2.125000 +v -1.250000 3.000000 -2.125000 +v 1.250000 2.875000 2.125000 +v -1.250000 2.875000 2.125000 +v 1.250000 3.000000 2.125000 +v -1.250000 3.000000 2.125000 +v 1.250000 2.875000 2.375000 +v -1.250000 2.875000 2.375000 +v 1.250000 3.000000 2.375000 +v -1.250000 3.000000 2.375000 +v -1.500000 0.250000 -2.375000 +v -1.500000 2.750000 -2.375000 +v -1.375000 0.250000 -2.375000 +v -1.375000 2.750000 -2.375000 +v -1.500000 0.250000 -2.125000 +v -1.500000 2.750000 -2.125000 +v -1.375000 0.250000 -2.125000 +v -1.375000 2.750000 -2.125000 +v -1.500000 0.250000 2.125000 +v -1.500000 2.750000 2.125000 +v -1.375000 0.250000 2.125000 +v -1.375000 2.750000 2.125000 +v -1.500000 0.250000 2.375000 +v -1.500000 2.750000 2.375000 +v -1.375000 0.250000 2.375000 +v -1.375000 2.750000 2.375000 +v 1.375000 0.250000 -2.375000 +v 1.375000 2.750000 -2.375000 +v 1.500000 0.250000 -2.375000 +v 1.500000 2.750000 -2.375000 +v 1.375000 0.250000 -2.125000 +v 1.375000 2.750000 -2.125000 +v 1.500000 0.250000 -2.125000 +v 1.500000 2.750000 -2.125000 +v 1.375000 0.250000 2.125000 +v 1.375000 2.750000 2.125000 +v 1.500000 0.250000 2.125000 +v 1.500000 2.750000 2.125000 +v 1.375000 0.250000 2.375000 +v 1.375000 2.750000 2.375000 +v 1.500000 0.250000 2.375000 +v 1.500000 2.750000 2.375000 +v -1.375000 2.250000 -1.500000 +v -1.375000 0.750000 -1.500000 +v -1.375000 2.250000 1.500000 +v -1.375000 0.750000 1.500000 +v -1.000000 2.250000 1.500000 +v -1.000000 2.250000 -1.500000 +v -1.000000 0.750000 -1.500000 +v -1.000000 0.750000 1.500000 +v -1.375000 1.500000 0.625000 +v -1.375000 1.812500 0.541266 +v -1.375000 2.041266 0.312500 +v -1.375000 2.125000 0.000000 +v -1.375000 2.041266 -0.312500 +v -1.375000 1.812500 -0.541266 +v -1.375000 1.500000 -0.625000 +v -1.375000 1.187500 -0.541266 +v -1.375000 0.958734 -0.312500 +v -1.375000 0.875000 -0.000000 +v -1.375000 0.958734 0.312500 +v -1.375000 1.187500 0.541266 +v -1.375000 1.500000 0.500000 +v -1.375000 1.750000 0.433013 +v -1.375000 1.933013 0.250000 +v -1.375000 2.000000 0.000000 +v -1.375000 1.933013 -0.250000 +v -1.375000 1.750000 -0.433013 +v -1.375000 1.500000 -0.500000 +v -1.375000 1.250000 -0.433013 +v -1.375000 1.066987 -0.250000 +v -1.375000 1.000000 -0.000000 +v -1.375000 1.066987 0.250000 +v -1.375000 1.250000 0.433013 +v -1.625000 1.812500 0.541266 +v -1.625000 1.500000 0.625000 +v -1.625000 2.041266 0.312500 +v -1.625000 2.125000 0.000000 +v -1.625000 2.041266 -0.312500 +v -1.625000 1.812500 -0.541266 +v -1.625000 1.500000 -0.625000 +v -1.625000 1.187500 -0.541266 +v -1.625000 0.958734 -0.312500 +v -1.625000 0.875000 -0.000000 +v -1.625000 0.958734 0.312500 +v -1.625000 1.187500 0.541266 +v -1.625000 1.750000 0.433013 +v -1.625000 1.500000 0.500000 +v -1.625000 1.933013 0.250000 +v -1.625000 2.000000 0.000000 +v -1.625000 1.933013 -0.250000 +v -1.625000 1.750000 -0.433013 +v -1.625000 1.500000 -0.500000 +v -1.625000 1.250000 -0.433013 +v -1.625000 1.066987 -0.250000 +v -1.625000 1.000000 -0.000000 +v -1.625000 1.066987 0.250000 +v -1.625000 1.250000 0.433013 +v -1.562500 1.406250 -0.500000 +v -1.562500 1.343750 -0.500000 +v -1.562500 1.406250 0.500000 +v -1.562500 1.343750 0.500000 +v -1.562500 1.656250 -0.500000 +v -1.562500 1.593750 -0.500000 +v -1.562500 1.656250 0.500000 +v -1.562500 1.593750 0.500000 +v -1.562500 1.906250 -0.375000 +v -1.562500 1.843750 -0.375000 +v -1.562500 1.906250 0.375000 +v -1.562500 1.843750 0.375000 +v -1.562500 1.166250 -0.375000 +v -1.562500 1.103750 -0.375000 +v -1.562500 1.166250 0.375000 +v -1.562500 1.103750 0.375000 +v -1.375000 2.000000 0.750000 +v -1.375000 1.000000 0.750000 +v -1.375000 2.000000 1.250000 +v -1.375000 1.000000 1.250000 +v -1.500000 2.000000 1.250000 +v -1.500000 2.000000 0.750000 +v -1.500000 1.000000 0.750000 +v -1.500000 1.000000 1.250000 +v -1.375000 2.000000 -1.250000 +v -1.375000 1.000000 -1.250000 +v -1.375000 2.000000 -0.750000 +v -1.375000 1.000000 -0.750000 +v -1.500000 2.000000 -0.750000 +v -1.500000 2.000000 -1.250000 +v -1.500000 1.000000 -1.250000 +v -1.500000 1.000000 -0.750000 +v 1.125000 2.250000 -0.125000 +v 1.036612 2.250000 -0.088388 +v 1.000000 2.250000 0.000000 +v 1.036612 2.250000 0.088388 +v 1.125000 2.250000 0.125000 +v 1.213388 2.250000 0.088388 +v 1.250000 2.250000 -0.000000 +v 1.213388 2.250000 -0.088388 +v 1.125000 2.750000 -0.125000 +v 1.036612 2.750000 -0.088388 +v 1.000000 2.750000 0.000000 +v 1.036612 2.750000 0.088388 +v 1.125000 2.750000 0.125000 +v 1.213388 2.750000 0.088388 +v 1.250000 2.750000 -0.000000 +v 1.213388 2.750000 -0.088388 +v 1.088388 2.838388 -0.125000 +v 1.025888 2.775888 -0.088388 +v 1.025888 2.775888 0.088388 +v 1.088388 2.838388 0.125000 +v 1.150888 2.900888 0.088388 +v 1.176777 2.926777 -0.000000 +v 1.150888 2.900888 -0.088388 +v 1.000000 2.875000 -0.125000 +v 1.000000 2.786612 -0.088388 +v 1.000000 2.786612 0.088388 +v 1.000000 2.875000 0.125000 +v 1.000000 2.963388 0.088388 +v 1.000000 3.000000 -0.000000 +v 1.000000 2.963388 -0.088388 +v -1.125000 2.250000 0.125000 +v -1.036612 2.250000 0.088388 +v -1.000000 2.250000 0.000000 +v -1.036612 2.250000 -0.088388 +v -1.125000 2.250000 -0.125000 +v -1.213388 2.250000 -0.088388 +v -1.250000 2.250000 0.000000 +v -1.213388 2.250000 0.088388 +v -1.125000 2.750000 0.125000 +v -1.036612 2.750000 0.088388 +v -1.000000 2.750000 0.000000 +v -1.036612 2.750000 -0.088388 +v -1.125000 2.750000 -0.125000 +v -1.213388 2.750000 -0.088388 +v -1.250000 2.750000 0.000000 +v -1.213388 2.750000 0.088388 +v -1.088388 2.838388 0.125000 +v -1.025888 2.775888 0.088388 +v -1.025888 2.775888 -0.088388 +v -1.088388 2.838388 -0.125000 +v -1.150888 2.900888 -0.088388 +v -1.176777 2.926777 0.000000 +v -1.150888 2.900888 0.088388 +v -1.000000 2.875000 0.125000 +v -1.000000 2.786612 0.088388 +v -1.000000 2.786612 -0.088388 +v -1.000000 2.875000 -0.125000 +v -1.000000 2.963388 -0.088388 +v -1.000000 3.000000 0.000000 +v -1.000000 2.963388 0.088388 +v -0.500000 3.125000 1.000000 +v 0.500000 3.125000 1.000000 +v -0.500000 3.125000 -1.000000 +v 0.500000 3.125000 -1.000000 +v -0.500000 2.750000 -1.000000 +v -0.500000 2.750000 1.000000 +v 0.500000 2.750000 1.000000 +v 0.500000 2.750000 -1.000000 +v 0.000000 1.750000 -3.500000 +v -0.176777 1.676777 -3.500000 +v -0.250000 1.500000 -3.500000 +v -0.176777 1.323223 -3.500000 +v 0.000000 1.250000 -3.500000 +v 0.176777 1.323223 -3.500000 +v 0.250000 1.500000 -3.500000 +v 0.176777 1.676777 -3.500000 +v -0.176777 1.676777 -3.375000 +v 0.000000 1.750000 -3.375000 +v -0.250000 1.500000 -3.375000 +v -0.176777 1.323223 -3.375000 +v 0.000000 1.250000 -3.375000 +v 0.176777 1.323223 -3.375000 +v 0.250000 1.500000 -3.375000 +v 0.176777 1.676777 -3.375000 +v 0.000000 1.750000 3.500000 +v 0.176777 1.676777 3.500000 +v 0.250000 1.500000 3.500000 +v 0.176777 1.323223 3.500000 +v 0.000000 1.250000 3.500000 +v -0.176776 1.323223 3.500000 +v -0.250000 1.500000 3.500000 +v -0.176776 1.676777 3.500000 +v 0.176777 1.676777 3.375000 +v 0.000000 1.750000 3.375000 +v 0.250000 1.500000 3.375000 +v 0.176777 1.323223 3.375000 +v 0.000000 1.250000 3.375000 +v -0.176776 1.323223 3.375000 +v -0.250000 1.500000 3.375000 +v -0.176776 1.676777 3.375000 +v -0.500000 -0.125000 -1.000000 +v 0.500000 -0.125000 -1.000000 +v -0.500000 -0.125000 1.000000 +v 0.500000 -0.125000 1.000000 +v -0.500000 0.250000 1.000000 +v -0.500000 0.250000 -1.000000 +v 0.500000 0.250000 -1.000000 +v 0.500000 0.250000 1.000000 +v 1.125000 2.250000 -0.375000 +v 1.036612 2.250000 -0.338388 +v 1.000000 2.250000 -0.250000 +v 1.036612 2.250000 -0.161612 +v 1.125000 2.250000 -0.125000 +v 1.213388 2.250000 -0.161612 +v 1.250000 2.250000 -0.250000 +v 1.213388 2.250000 -0.338388 +v 1.125000 2.750000 -0.375000 +v 1.036612 2.750000 -0.338388 +v 1.000000 2.750000 -0.250000 +v 1.036612 2.750000 -0.161612 +v 1.125000 2.750000 -0.125000 +v 1.213388 2.750000 -0.161612 +v 1.250000 2.750000 -0.250000 +v 1.213388 2.750000 -0.338388 +v 1.088388 2.838388 -0.375000 +v 1.025888 2.775888 -0.338388 +v 1.025888 2.775888 -0.161612 +v 1.088388 2.838388 -0.125000 +v 1.150888 2.900888 -0.161612 +v 1.176777 2.926777 -0.250000 +v 1.150888 2.900888 -0.338388 +v 1.000000 2.875000 -0.375000 +v 1.000000 2.786612 -0.338388 +v 1.000000 2.786612 -0.161612 +v 1.000000 2.875000 -0.125000 +v 1.000000 2.963388 -0.161612 +v 1.000000 3.000000 -0.250000 +v 1.000000 2.963388 -0.338388 +v -1.125000 2.250000 -0.125000 +v -1.036612 2.250000 -0.161612 +v -1.000000 2.250000 -0.250000 +v -1.036612 2.250000 -0.338388 +v -1.125000 2.250000 -0.375000 +v -1.213388 2.250000 -0.338388 +v -1.250000 2.250000 -0.250000 +v -1.213388 2.250000 -0.161612 +v -1.125000 2.750000 -0.125000 +v -1.036612 2.750000 -0.161612 +v -1.000000 2.750000 -0.250000 +v -1.036612 2.750000 -0.338388 +v -1.125000 2.750000 -0.375000 +v -1.213388 2.750000 -0.338388 +v -1.250000 2.750000 -0.250000 +v -1.213388 2.750000 -0.161612 +v -1.088388 2.838388 -0.125000 +v -1.025888 2.775888 -0.161612 +v -1.025888 2.775888 -0.338388 +v -1.088388 2.838388 -0.375000 +v -1.150888 2.900888 -0.338388 +v -1.176777 2.926777 -0.250000 +v -1.150888 2.900888 -0.161612 +v -1.000000 2.875000 -0.125000 +v -1.000000 2.786612 -0.161612 +v -1.000000 2.786612 -0.338388 +v -1.000000 2.875000 -0.375000 +v -1.000000 2.963388 -0.338388 +v -1.000000 3.000000 -0.250000 +v -1.000000 2.963388 -0.161612 +v 1.125000 2.250000 -0.625000 +v 1.036612 2.250000 -0.588388 +v 1.000000 2.250000 -0.500000 +v 1.036612 2.250000 -0.411612 +v 1.125000 2.250000 -0.375000 +v 1.213388 2.250000 -0.411612 +v 1.250000 2.250000 -0.500000 +v 1.213388 2.250000 -0.588388 +v 1.125000 2.750000 -0.625000 +v 1.036612 2.750000 -0.588388 +v 1.000000 2.750000 -0.500000 +v 1.036612 2.750000 -0.411612 +v 1.125000 2.750000 -0.375000 +v 1.213388 2.750000 -0.411612 +v 1.250000 2.750000 -0.500000 +v 1.213388 2.750000 -0.588388 +v 1.088388 2.838388 -0.625000 +v 1.025888 2.775888 -0.588388 +v 1.025888 2.775888 -0.411612 +v 1.088388 2.838388 -0.375000 +v 1.150888 2.900888 -0.411612 +v 1.176777 2.926777 -0.500000 +v 1.150888 2.900888 -0.588388 +v 1.000000 2.875000 -0.625000 +v 1.000000 2.786612 -0.588388 +v 1.000000 2.786612 -0.411612 +v 1.000000 2.875000 -0.375000 +v 1.000000 2.963388 -0.411612 +v 1.000000 3.000000 -0.500000 +v 1.000000 2.963388 -0.588388 +v -1.125000 2.250000 -0.375000 +v -1.036612 2.250000 -0.411612 +v -1.000000 2.250000 -0.500000 +v -1.036612 2.250000 -0.588388 +v -1.125000 2.250000 -0.625000 +v -1.213388 2.250000 -0.588388 +v -1.250000 2.250000 -0.500000 +v -1.213388 2.250000 -0.411612 +v -1.125000 2.750000 -0.375000 +v -1.036612 2.750000 -0.411612 +v -1.000000 2.750000 -0.500000 +v -1.036612 2.750000 -0.588388 +v -1.125000 2.750000 -0.625000 +v -1.213388 2.750000 -0.588388 +v -1.250000 2.750000 -0.500000 +v -1.213388 2.750000 -0.411612 +v -1.088388 2.838388 -0.375000 +v -1.025888 2.775888 -0.411612 +v -1.025888 2.775888 -0.588388 +v -1.088388 2.838388 -0.625000 +v -1.150888 2.900888 -0.588388 +v -1.176777 2.926777 -0.500000 +v -1.150888 2.900888 -0.411612 +v -1.000000 2.875000 -0.375000 +v -1.000000 2.786612 -0.411612 +v -1.000000 2.786612 -0.588388 +v -1.000000 2.875000 -0.625000 +v -1.000000 2.963388 -0.588388 +v -1.000000 3.000000 -0.500000 +v -1.000000 2.963388 -0.411612 +v 1.125000 2.250000 0.375000 +v 1.036612 2.250000 0.411612 +v 1.000000 2.250000 0.500000 +v 1.036612 2.250000 0.588388 +v 1.125000 2.250000 0.625000 +v 1.213388 2.250000 0.588388 +v 1.250000 2.250000 0.500000 +v 1.213388 2.250000 0.411612 +v 1.125000 2.750000 0.375000 +v 1.036612 2.750000 0.411612 +v 1.000000 2.750000 0.500000 +v 1.036612 2.750000 0.588388 +v 1.125000 2.750000 0.625000 +v 1.213388 2.750000 0.588388 +v 1.250000 2.750000 0.500000 +v 1.213388 2.750000 0.411612 +v 1.088388 2.838388 0.375000 +v 1.025888 2.775888 0.411612 +v 1.025888 2.775888 0.588388 +v 1.088388 2.838388 0.625000 +v 1.150888 2.900888 0.588388 +v 1.176777 2.926777 0.500000 +v 1.150888 2.900888 0.411612 +v 1.000000 2.875000 0.375000 +v 1.000000 2.786612 0.411612 +v 1.000000 2.786612 0.588388 +v 1.000000 2.875000 0.625000 +v 1.000000 2.963388 0.588388 +v 1.000000 3.000000 0.500000 +v 1.000000 2.963388 0.411612 +v -1.125000 2.250000 0.625000 +v -1.036612 2.250000 0.588388 +v -1.000000 2.250000 0.500000 +v -1.036612 2.250000 0.411612 +v -1.125000 2.250000 0.375000 +v -1.213388 2.250000 0.411612 +v -1.250000 2.250000 0.500000 +v -1.213388 2.250000 0.588388 +v -1.125000 2.750000 0.625000 +v -1.036612 2.750000 0.588388 +v -1.000000 2.750000 0.500000 +v -1.036612 2.750000 0.411612 +v -1.125000 2.750000 0.375000 +v -1.213388 2.750000 0.411612 +v -1.250000 2.750000 0.500000 +v -1.213388 2.750000 0.588388 +v -1.088388 2.838388 0.625000 +v -1.025888 2.775888 0.588388 +v -1.025888 2.775888 0.411612 +v -1.088388 2.838388 0.375000 +v -1.150888 2.900888 0.411612 +v -1.176777 2.926777 0.500000 +v -1.150888 2.900888 0.588388 +v -1.000000 2.875000 0.625000 +v -1.000000 2.786612 0.588388 +v -1.000000 2.786612 0.411612 +v -1.000000 2.875000 0.375000 +v -1.000000 2.963388 0.411612 +v -1.000000 3.000000 0.500000 +v -1.000000 2.963388 0.588388 +v 1.125000 2.250000 0.125000 +v 1.036612 2.250000 0.161612 +v 1.000000 2.250000 0.250000 +v 1.036612 2.250000 0.338388 +v 1.125000 2.250000 0.375000 +v 1.213388 2.250000 0.338388 +v 1.250000 2.250000 0.250000 +v 1.213388 2.250000 0.161612 +v 1.125000 2.750000 0.125000 +v 1.036612 2.750000 0.161612 +v 1.000000 2.750000 0.250000 +v 1.036612 2.750000 0.338388 +v 1.125000 2.750000 0.375000 +v 1.213388 2.750000 0.338388 +v 1.250000 2.750000 0.250000 +v 1.213388 2.750000 0.161612 +v 1.088388 2.838388 0.125000 +v 1.025888 2.775888 0.161612 +v 1.025888 2.775888 0.338388 +v 1.088388 2.838388 0.375000 +v 1.150888 2.900888 0.338388 +v 1.176777 2.926777 0.250000 +v 1.150888 2.900888 0.161612 +v 1.000000 2.875000 0.125000 +v 1.000000 2.786612 0.161612 +v 1.000000 2.786612 0.338388 +v 1.000000 2.875000 0.375000 +v 1.000000 2.963388 0.338388 +v 1.000000 3.000000 0.250000 +v 1.000000 2.963388 0.161612 +v -1.125000 2.250000 0.375000 +v -1.036612 2.250000 0.338388 +v -1.000000 2.250000 0.250000 +v -1.036612 2.250000 0.161612 +v -1.125000 2.250000 0.125000 +v -1.213388 2.250000 0.161612 +v -1.250000 2.250000 0.250000 +v -1.213388 2.250000 0.338388 +v -1.125000 2.750000 0.375000 +v -1.036612 2.750000 0.338388 +v -1.000000 2.750000 0.250000 +v -1.036612 2.750000 0.161612 +v -1.125000 2.750000 0.125000 +v -1.213388 2.750000 0.161612 +v -1.250000 2.750000 0.250000 +v -1.213388 2.750000 0.338388 +v -1.088388 2.838388 0.375000 +v -1.025888 2.775888 0.338388 +v -1.025888 2.775888 0.161612 +v -1.088388 2.838388 0.125000 +v -1.150888 2.900888 0.161612 +v -1.176777 2.926777 0.250000 +v -1.150888 2.900888 0.338388 +v -1.000000 2.875000 0.375000 +v -1.000000 2.786612 0.338388 +v -1.000000 2.786612 0.161612 +v -1.000000 2.875000 0.125000 +v -1.000000 2.963388 0.161612 +v -1.000000 3.000000 0.250000 +v -1.000000 2.963388 0.338388 +v 1.125000 0.750000 0.125000 +v 1.036612 0.750000 0.088388 +v 1.000000 0.750000 -0.000000 +v 1.036612 0.750000 -0.088388 +v 1.125000 0.750000 -0.125000 +v 1.213388 0.750000 -0.088388 +v 1.250000 0.750000 -0.000000 +v 1.213388 0.750000 0.088388 +v 1.125000 0.250000 0.125000 +v 1.036612 0.250000 0.088388 +v 1.000000 0.250000 -0.000000 +v 1.036612 0.250000 -0.088389 +v 1.125000 0.250000 -0.125000 +v 1.213388 0.250000 -0.088389 +v 1.250000 0.250000 -0.000000 +v 1.213388 0.250000 0.088388 +v 1.088388 0.161612 0.125000 +v 1.025888 0.224112 0.088388 +v 1.025888 0.224112 -0.088389 +v 1.088388 0.161612 -0.125000 +v 1.150888 0.099112 -0.088389 +v 1.176777 0.073223 -0.000000 +v 1.150888 0.099112 0.088388 +v 1.000000 0.125000 0.125000 +v 1.000000 0.213388 0.088388 +v 1.000000 0.213388 -0.088389 +v 1.000000 0.125000 -0.125000 +v 1.000000 0.036612 -0.088389 +v 1.000000 0.000000 -0.000000 +v 1.000000 0.036612 0.088388 +v -1.125000 0.750000 -0.125000 +v -1.036612 0.750000 -0.088388 +v -1.000000 0.750000 -0.000000 +v -1.036612 0.750000 0.088388 +v -1.125000 0.750000 0.125000 +v -1.213388 0.750000 0.088388 +v -1.250000 0.750000 -0.000000 +v -1.213388 0.750000 -0.088388 +v -1.125000 0.250000 -0.125000 +v -1.036612 0.250000 -0.088389 +v -1.000000 0.250000 -0.000000 +v -1.036612 0.250000 0.088388 +v -1.125000 0.250000 0.125000 +v -1.213388 0.250000 0.088388 +v -1.250000 0.250000 -0.000000 +v -1.213388 0.250000 -0.088389 +v -1.088388 0.161612 -0.125000 +v -1.025888 0.224112 -0.088389 +v -1.025888 0.224112 0.088388 +v -1.088388 0.161612 0.125000 +v -1.150888 0.099112 0.088388 +v -1.176777 0.073223 -0.000000 +v -1.150888 0.099112 -0.088389 +v -1.000000 0.125000 -0.125000 +v -1.000000 0.213388 -0.088389 +v -1.000000 0.213388 0.088388 +v -1.000000 0.125000 0.125000 +v -1.000000 0.036612 0.088388 +v -1.000000 0.000000 -0.000000 +v -1.000000 0.036612 -0.088389 +v 1.125000 0.750000 0.375000 +v 1.036612 0.750000 0.338388 +v 1.000000 0.750000 0.250000 +v 1.036612 0.750000 0.161611 +v 1.125000 0.750000 0.125000 +v 1.213388 0.750000 0.161612 +v 1.250000 0.750000 0.250000 +v 1.213388 0.750000 0.338388 +v 1.125000 0.250000 0.375000 +v 1.036612 0.250000 0.338388 +v 1.000000 0.250000 0.250000 +v 1.036612 0.250000 0.161611 +v 1.125000 0.250000 0.125000 +v 1.213388 0.250000 0.161611 +v 1.250000 0.250000 0.250000 +v 1.213388 0.250000 0.338388 +v 1.088388 0.161612 0.375000 +v 1.025888 0.224112 0.338388 +v 1.025888 0.224112 0.161611 +v 1.088388 0.161612 0.125000 +v 1.150888 0.099112 0.161611 +v 1.176777 0.073223 0.250000 +v 1.150888 0.099112 0.338388 +v 1.000000 0.125000 0.375000 +v 1.000000 0.213388 0.338388 +v 1.000000 0.213388 0.161611 +v 1.000000 0.125000 0.125000 +v 1.000000 0.036612 0.161611 +v 1.000000 0.000000 0.250000 +v 1.000000 0.036612 0.338388 +v -1.125000 0.750000 0.125000 +v -1.036612 0.750000 0.161611 +v -1.000000 0.750000 0.250000 +v -1.036612 0.750000 0.338388 +v -1.125000 0.750000 0.375000 +v -1.213388 0.750000 0.338388 +v -1.250000 0.750000 0.250000 +v -1.213388 0.750000 0.161611 +v -1.125000 0.250000 0.125000 +v -1.036612 0.250000 0.161611 +v -1.000000 0.250000 0.250000 +v -1.036612 0.250000 0.338388 +v -1.125000 0.250000 0.375000 +v -1.213388 0.250000 0.338388 +v -1.250000 0.250000 0.250000 +v -1.213388 0.250000 0.161611 +v -1.088388 0.161612 0.125000 +v -1.025888 0.224112 0.161611 +v -1.025888 0.224112 0.338388 +v -1.088388 0.161612 0.375000 +v -1.150888 0.099112 0.338388 +v -1.176777 0.073223 0.250000 +v -1.150888 0.099112 0.161611 +v -1.000000 0.125000 0.125000 +v -1.000000 0.213388 0.161611 +v -1.000000 0.213388 0.338388 +v -1.000000 0.125000 0.375000 +v -1.000000 0.036612 0.338388 +v -1.000000 0.000000 0.250000 +v -1.000000 0.036612 0.161611 +v 1.125000 0.750000 0.625000 +v 1.036612 0.750000 0.588388 +v 1.000000 0.750000 0.500000 +v 1.036612 0.750000 0.411612 +v 1.125000 0.750000 0.375000 +v 1.213388 0.750000 0.411612 +v 1.250000 0.750000 0.500000 +v 1.213388 0.750000 0.588388 +v 1.125000 0.250000 0.625000 +v 1.036612 0.250000 0.588388 +v 1.000000 0.250000 0.500000 +v 1.036612 0.250000 0.411611 +v 1.125000 0.250000 0.375000 +v 1.213388 0.250000 0.411611 +v 1.250000 0.250000 0.500000 +v 1.213388 0.250000 0.588388 +v 1.088388 0.161612 0.625000 +v 1.025888 0.224112 0.588388 +v 1.025888 0.224112 0.411611 +v 1.088388 0.161612 0.375000 +v 1.150888 0.099112 0.411611 +v 1.176777 0.073223 0.500000 +v 1.150888 0.099112 0.588388 +v 1.000000 0.125000 0.625000 +v 1.000000 0.213388 0.588388 +v 1.000000 0.213388 0.411611 +v 1.000000 0.125000 0.375000 +v 1.000000 0.036612 0.411611 +v 1.000000 0.000000 0.500000 +v 1.000000 0.036612 0.588388 +v -1.125000 0.750000 0.375000 +v -1.036612 0.750000 0.411612 +v -1.000000 0.750000 0.500000 +v -1.036612 0.750000 0.588388 +v -1.125000 0.750000 0.625000 +v -1.213388 0.750000 0.588388 +v -1.250000 0.750000 0.500000 +v -1.213388 0.750000 0.411612 +v -1.125000 0.250000 0.375000 +v -1.036612 0.250000 0.411611 +v -1.000000 0.250000 0.500000 +v -1.036612 0.250000 0.588388 +v -1.125000 0.250000 0.625000 +v -1.213388 0.250000 0.588388 +v -1.250000 0.250000 0.500000 +v -1.213388 0.250000 0.411611 +v -1.088388 0.161612 0.375000 +v -1.025888 0.224112 0.411611 +v -1.025888 0.224112 0.588388 +v -1.088388 0.161612 0.625000 +v -1.150888 0.099112 0.588388 +v -1.176777 0.073223 0.500000 +v -1.150888 0.099112 0.411611 +v -1.000000 0.125000 0.375000 +v -1.000000 0.213388 0.411611 +v -1.000000 0.213388 0.588388 +v -1.000000 0.125000 0.625000 +v -1.000000 0.036612 0.588388 +v -1.000000 0.000000 0.500000 +v -1.000000 0.036612 0.411611 +v 1.125000 0.750000 -0.375000 +v 1.036612 0.750000 -0.411612 +v 1.000000 0.750000 -0.500000 +v 1.036612 0.750000 -0.588389 +v 1.125000 0.750000 -0.625000 +v 1.213388 0.750000 -0.588389 +v 1.250000 0.750000 -0.500000 +v 1.213388 0.750000 -0.411612 +v 1.125000 0.250000 -0.375000 +v 1.036612 0.250000 -0.411612 +v 1.000000 0.250000 -0.500000 +v 1.036612 0.250000 -0.588389 +v 1.125000 0.250000 -0.625000 +v 1.213388 0.250000 -0.588389 +v 1.250000 0.250000 -0.500000 +v 1.213388 0.250000 -0.411612 +v 1.088388 0.161612 -0.375000 +v 1.025888 0.224112 -0.411612 +v 1.025888 0.224112 -0.588389 +v 1.088388 0.161612 -0.625000 +v 1.150888 0.099112 -0.588389 +v 1.176777 0.073223 -0.500000 +v 1.150888 0.099112 -0.411612 +v 1.000000 0.125000 -0.375000 +v 1.000000 0.213388 -0.411612 +v 1.000000 0.213388 -0.588389 +v 1.000000 0.125000 -0.625000 +v 1.000000 0.036612 -0.588389 +v 1.000000 0.000000 -0.500000 +v 1.000000 0.036612 -0.411612 +v -1.125000 0.750000 -0.625000 +v -1.036612 0.750000 -0.588389 +v -1.000000 0.750000 -0.500000 +v -1.036612 0.750000 -0.411612 +v -1.125000 0.750000 -0.375000 +v -1.213388 0.750000 -0.411612 +v -1.250000 0.750000 -0.500000 +v -1.213388 0.750000 -0.588389 +v -1.125000 0.250000 -0.625000 +v -1.036612 0.250000 -0.588389 +v -1.000000 0.250000 -0.500000 +v -1.036612 0.250000 -0.411612 +v -1.125000 0.250000 -0.375000 +v -1.213388 0.250000 -0.411612 +v -1.250000 0.250000 -0.500000 +v -1.213388 0.250000 -0.588389 +v -1.088388 0.161612 -0.625000 +v -1.025888 0.224112 -0.588389 +v -1.025888 0.224112 -0.411612 +v -1.088388 0.161612 -0.375000 +v -1.150888 0.099112 -0.411612 +v -1.176777 0.073223 -0.500000 +v -1.150888 0.099112 -0.588389 +v -1.000000 0.125000 -0.625000 +v -1.000000 0.213388 -0.588389 +v -1.000000 0.213388 -0.411612 +v -1.000000 0.125000 -0.375000 +v -1.000000 0.036612 -0.411612 +v -1.000000 0.000000 -0.500000 +v -1.000000 0.036612 -0.588389 +v 1.125000 0.750000 -0.125000 +v 1.036612 0.750000 -0.161612 +v 1.000000 0.750000 -0.250000 +v 1.036612 0.750000 -0.338388 +v 1.125000 0.750000 -0.375000 +v 1.213388 0.750000 -0.338388 +v 1.250000 0.750000 -0.250000 +v 1.213388 0.750000 -0.161612 +v 1.125000 0.250000 -0.125000 +v 1.036612 0.250000 -0.161612 +v 1.000000 0.250000 -0.250000 +v 1.036612 0.250000 -0.338389 +v 1.125000 0.250000 -0.375000 +v 1.213388 0.250000 -0.338389 +v 1.250000 0.250000 -0.250000 +v 1.213388 0.250000 -0.161612 +v 1.088388 0.161612 -0.125000 +v 1.025888 0.224112 -0.161612 +v 1.025888 0.224112 -0.338389 +v 1.088388 0.161612 -0.375000 +v 1.150888 0.099112 -0.338389 +v 1.176777 0.073223 -0.250000 +v 1.150888 0.099112 -0.161612 +v 1.000000 0.125000 -0.125000 +v 1.000000 0.213388 -0.161612 +v 1.000000 0.213388 -0.338389 +v 1.000000 0.125000 -0.375000 +v 1.000000 0.036612 -0.338389 +v 1.000000 0.000000 -0.250000 +v 1.000000 0.036612 -0.161612 +v -1.125000 0.750000 -0.375000 +v -1.036612 0.750000 -0.338388 +v -1.000000 0.750000 -0.250000 +v -1.036612 0.750000 -0.161612 +v -1.125000 0.750000 -0.125000 +v -1.213388 0.750000 -0.161612 +v -1.250000 0.750000 -0.250000 +v -1.213388 0.750000 -0.338388 +v -1.125000 0.250000 -0.375000 +v -1.036612 0.250000 -0.338389 +v -1.000000 0.250000 -0.250000 +v -1.036612 0.250000 -0.161612 +v -1.125000 0.250000 -0.125000 +v -1.213388 0.250000 -0.161612 +v -1.250000 0.250000 -0.250000 +v -1.213388 0.250000 -0.338389 +v -1.088388 0.161612 -0.375000 +v -1.025888 0.224112 -0.338389 +v -1.025888 0.224112 -0.161612 +v -1.088388 0.161612 -0.125000 +v -1.150888 0.099112 -0.161612 +v -1.176777 0.073223 -0.250000 +v -1.150888 0.099112 -0.338389 +v -1.000000 0.125000 -0.375000 +v -1.000000 0.213388 -0.338389 +v -1.000000 0.213388 -0.161612 +v -1.000000 0.125000 -0.125000 +v -1.000000 0.036612 -0.161612 +v -1.000000 0.000000 -0.250000 +v -1.000000 0.036612 -0.338389 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.096000 0.500000 +vt 0.104000 0.437500 +vt 0.104000 0.500000 +vt 0.104000 0.562500 +vt 0.096000 0.625000 +vt 0.096000 0.562500 +vt 0.104000 0.625000 +vt 0.096000 0.687500 +vt 0.104000 0.687500 +vt 0.096000 0.750000 +vt 0.104000 0.750000 +vt 0.096000 0.812500 +vt 0.104000 0.812500 +vt 0.096000 0.875000 +vt 0.096000 0.937500 +vt 0.104000 0.875000 +vt 0.104000 0.937500 +vt 0.096000 1.000000 +vt 0.104000 1.000000 +vt 0.096000 0.062500 +vt 0.104000 0.000000 +vt 0.104000 0.062500 +vt 0.096000 0.125000 +vt 0.104000 0.125000 +vt 0.096000 0.187500 +vt 0.104000 0.187500 +vt 0.104000 0.250000 +vt 0.104000 0.312500 +vt 0.096000 0.250000 +vt 0.104000 0.375000 +vt 0.096000 0.312500 +vt 0.096000 0.375000 +vt 0.472000 0.500000 +vt 0.480000 0.562500 +vt 0.472000 0.562500 +vt 0.480000 0.437500 +vt 0.472000 0.437500 +vt 0.480000 0.375000 +vt 0.472000 0.375000 +vt 0.480000 0.312500 +vt 0.472000 0.312500 +vt 0.480000 0.250000 +vt 0.472000 0.250000 +vt 0.480000 0.187500 +vt 0.472000 0.187500 +vt 0.480000 0.125000 +vt 0.480000 0.062500 +vt 0.472000 0.125000 +vt 0.472000 0.062500 +vt 0.480000 0.000000 +vt 0.472000 0.000000 +vt 0.480000 0.937500 +vt 0.472000 1.000000 +vt 0.472000 0.937500 +vt 0.480000 0.875000 +vt 0.472000 0.875000 +vt 0.480000 0.812500 +vt 0.472000 0.812500 +vt 0.472000 0.750000 +vt 0.472000 0.687500 +vt 0.480000 0.750000 +vt 0.472000 0.625000 +vt 0.480000 0.687500 +vt 0.480000 0.625000 +vt 0.120000 0.750000 +vt 0.128000 0.812500 +vt 0.120000 0.812500 +vt 0.128000 0.875000 +vt 0.120000 0.875000 +vt 0.128000 0.937500 +vt 0.120000 0.937500 +vt 0.128000 1.000000 +vt 0.120000 1.000000 +vt 0.120000 -0.000000 +vt 0.128000 0.062500 +vt 0.120000 0.062500 +vt 0.128000 0.125000 +vt 0.120000 0.125000 +vt 0.128000 0.187500 +vt 0.120000 0.187500 +vt 0.120000 0.250000 +vt 0.128000 0.250000 +vt 0.120000 0.312500 +vt 0.128000 0.312500 +vt 0.120000 0.375000 +vt 0.128000 0.375000 +vt 0.120000 0.437500 +vt 0.128000 0.500000 +vt 0.120000 0.500000 +vt 0.120000 0.562500 +vt 0.128000 0.562500 +vt 0.128000 0.625000 +vt 0.120000 0.625000 +vt 0.128000 0.687500 +vt 0.120000 0.687500 +vt 0.128000 0.750000 +vt 0.456000 0.250000 +vt 0.448000 0.312500 +vt 0.448000 0.250000 +vt 0.456000 0.312500 +vt 0.448000 0.375000 +vt 0.456000 0.375000 +vt 0.448000 0.437500 +vt 0.448000 0.500000 +vt 0.456000 0.437500 +vt 0.456000 0.500000 +vt 0.448000 0.562500 +vt 0.456000 0.562500 +vt 0.448000 0.625000 +vt 0.456000 0.625000 +vt 0.448000 0.687500 +vt 0.456000 0.687500 +vt 0.448000 0.750000 +vt 0.456000 0.750000 +vt 0.448000 0.812500 +vt 0.456000 0.812500 +vt 0.448000 0.875000 +vt 0.448000 0.937500 +vt 0.456000 0.875000 +vt 0.456000 0.937500 +vt 0.456000 1.000000 +vt 0.456000 0.062500 +vt 0.448000 0.000000 +vt 0.456000 -0.000000 +vt 0.456000 0.125000 +vt 0.448000 0.062500 +vt 0.456000 0.187500 +vt 0.448000 0.125000 +vt 0.448000 0.187500 +vt 0.600000 0.156250 +vt 0.792000 0.343750 +vt 0.600000 0.343750 +vt 0.792000 0.109375 +vt 0.792000 0.156250 +vt 0.600000 0.390625 +vt 0.816000 0.343750 +vt 0.576000 0.156250 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039062 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039062 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039062 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039062 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.600000 0.156250 +vt 0.792000 0.343750 +vt 0.600000 0.343750 +vt 0.792000 0.109375 +vt 0.792000 0.156250 +vt 0.600000 0.390625 +vt 0.816000 0.343750 +vt 0.576000 0.156250 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.864000 0.062500 +vt 0.868000 0.078125 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.864000 0.062500 +vt 0.868000 0.078125 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.864000 0.062500 +vt 0.868000 0.078125 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039063 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039063 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039063 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039063 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.600000 0.437500 +vt 0.728000 0.562500 +vt 0.600000 0.562500 +vt 0.576000 0.562500 +vt 0.600000 0.390625 +vt 0.728000 0.437500 +vt 0.728000 0.609375 +vt 0.752000 0.437500 +vt 0.744002 0.078125 +vt 0.760000 0.046879 +vt 0.775998 0.078125 +vt 0.760000 0.046879 +vt 0.771312 0.056031 +vt 0.775998 0.078125 +vt 0.728000 0.562500 +vt 0.600000 0.437500 +vt 0.728000 0.437500 +vt 0.752000 0.437500 +vt 0.728000 0.609375 +vt 0.600000 0.562500 +vt 0.600000 0.390625 +vt 0.576000 0.562500 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.096000 0.437500 +vt 0.096000 -0.000000 +vt 0.480000 0.500000 +vt 0.480000 1.000000 +vt 0.128000 0.000000 +vt 0.128000 0.437500 +vt 0.448000 1.000000 +vt 0.600000 0.109375 +vt 0.792000 0.390625 +vt 0.816000 0.156250 +vt 0.576000 0.343750 +vt 0.900000 0.078125 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.900000 0.078125 +vt 0.968000 0.031250 +vt 0.968000 0.031250 +vt 0.960000 0.031250 +vt 0.960000 0.031250 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.600000 0.109375 +vt 0.792000 0.390625 +vt 0.816000 0.156250 +vt 0.576000 0.343750 +vt 0.900000 0.078125 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.900000 0.078125 +vt 0.904000 0.062500 +vt 0.968000 0.031250 +vt 0.968000 0.031250 +vt 0.960000 0.031250 +vt 0.960000 0.031250 +vt 0.576000 0.437500 +vt 0.728000 0.390625 +vt 0.600000 0.609375 +vt 0.752000 0.562500 +vt 0.771312 0.100219 +vt 0.760000 0.109371 +vt 0.748688 0.100219 +vt 0.748688 0.056031 +vt 0.771312 0.056031 +vt 0.771312 0.100219 +vt 0.760000 0.109371 +vt 0.748688 0.100219 +vt 0.744002 0.078125 +vt 0.748688 0.056031 +vt 0.752000 0.562500 +vt 0.600000 0.609375 +vt 0.728000 0.390625 +vt 0.576000 0.437500 +vt 0.072000 0.437500 +vt 0.040000 0.484375 +vt 0.000000 0.468750 +vt 0.040000 0.453125 +vt 0.504000 0.875000 +vt 0.536000 0.765625 +vt 0.576000 0.781250 +vt 0.536000 0.796875 +vt 0.072000 0.500000 +vt 0.504000 0.750000 +vt 0.504000 0.812500 +vt 0.536000 0.703125 +vt 0.576000 0.718750 +vt 0.536000 0.734375 +vt 0.040000 0.421875 +vt 0.072000 0.375000 +vt 0.504000 0.687500 +vt -0.000000 0.406250 +vt 0.040000 0.390625 +vt 0.536000 0.640625 +vt 0.576000 0.656250 +vt 0.536000 0.671875 +vt 0.040000 0.359375 +vt 0.072000 0.312500 +vt 0.504000 0.625000 +vt 0.000000 0.343750 +vt 0.040000 0.328125 +vt 0.040000 0.296875 +vt 0.072000 0.250000 +vt 0.536000 0.578125 +vt 0.576000 0.593750 +vt 0.536000 0.609375 +vt 0.000000 0.281250 +vt 0.040000 0.265625 +vt 0.504000 0.562500 +vt 0.040000 0.203125 +vt 0.072000 0.187500 +vt 0.040000 0.234375 +vt -0.000000 0.218750 +vt 0.536000 0.515625 +vt 0.504000 0.500000 +vt 0.576000 0.531250 +vt 0.536000 0.546875 +vt 0.072000 0.125000 +vt 0.040000 0.171875 +vt -0.000000 0.156250 +vt 0.040000 0.140625 +vt 0.040000 0.109375 +vt -0.000000 0.093750 +vt 0.040000 0.078125 +vt 0.072000 0.062500 +vt 0.072000 -0.000000 +vt 0.040000 0.046875 +vt 0.000000 0.031250 +vt 0.040000 0.015625 +vt 0.072000 1.000000 +vt 0.040000 0.984375 +vt 0.000000 0.968750 +vt 0.040000 0.953125 +vt 0.072000 0.937500 +vt 0.040000 0.921875 +vt -0.000000 0.906250 +vt 0.040000 0.890625 +vt 0.072000 0.875000 +vt 0.040000 0.859375 +vt 0.000000 0.843750 +vt 0.040000 0.828125 +vt 0.072000 0.812500 +vt 0.040000 0.796875 +vt 0.072000 0.750000 +vt -0.000000 0.781250 +vt 0.040000 0.765625 +vt 0.040000 0.703125 +vt 0.072000 0.687500 +vt 0.040000 0.734375 +vt 0.000000 0.718750 +vt 0.040000 0.671875 +vt 0.072000 0.625000 +vt -0.000000 0.656250 +vt 0.040000 0.640625 +vt 0.040000 0.578125 +vt 0.072000 0.562500 +vt 0.040000 0.609375 +vt -0.000000 0.593750 +vt 0.040000 0.546875 +vt 0.000000 0.531250 +vt 0.040000 0.515625 +vt 0.536000 0.828125 +vt 0.576000 0.843750 +vt 0.536000 0.859375 +vt 0.504000 0.937500 +vt 0.536000 0.890625 +vt 0.576000 0.906250 +vt 0.536000 0.921875 +vt 0.504000 1.000000 +vt 0.536000 0.953125 +vt 0.576000 0.968750 +vt 0.536000 0.984375 +vt 0.504000 -0.000000 +vt 0.536000 0.015625 +vt 0.576000 0.031250 +vt 0.536000 0.046875 +vt 0.504000 0.062500 +vt 0.536000 0.078125 +vt 0.576000 0.093750 +vt 0.536000 0.109375 +vt 0.504000 0.125000 +vt 0.536000 0.140625 +vt 0.576000 0.156250 +vt 0.536000 0.171875 +vt 0.504000 0.187500 +vt 0.536000 0.203125 +vt 0.504000 0.250000 +vt 0.576000 0.218750 +vt 0.536000 0.234375 +vt 0.536000 0.265625 +vt 0.504000 0.312500 +vt 0.576000 0.281250 +vt 0.536000 0.296875 +vt 0.536000 0.359375 +vt 0.504000 0.375000 +vt 0.536000 0.328125 +vt 0.576000 0.343750 +vt 0.536000 0.390625 +vt 0.504000 0.437500 +vt 0.576000 0.406250 +vt 0.536000 0.421875 +vt 0.536000 0.484375 +vt 0.536000 0.453125 +vt 0.576000 0.468750 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.920000 0.203125 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.780000 0.046875 +vt 0.792000 0.031250 +vt 0.792000 0.046875 +vt 0.804000 0.046875 +vt 0.804000 0.031250 +vt 0.828000 0.046875 +vt 0.816000 0.031250 +vt 0.828000 0.031250 +vt 0.744000 0.046875 +vt 0.756000 0.031250 +vt 0.756000 0.046875 +vt 0.768000 0.046875 +vt 0.780000 0.031250 +vt 0.816000 0.046875 +vt 0.840000 0.031250 +vt 0.840000 0.046875 +vt 0.768000 0.031250 +vt 0.780000 0.046875 +vt 0.792000 0.031250 +vt 0.792000 0.046875 +vt 0.804000 0.031250 +vt 0.804000 0.046875 +vt 0.828000 0.046875 +vt 0.816000 0.031250 +vt 0.828000 0.031250 +vt 0.744000 0.046875 +vt 0.756000 0.031250 +vt 0.756000 0.046875 +vt 0.768000 0.046875 +vt 0.780000 0.031250 +vt 0.816000 0.046875 +vt 0.840000 0.031250 +vt 0.840000 0.046875 +vt 0.768000 0.031250 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.920000 0.203125 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.468750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.896000 0.195312 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.872000 0.218750 +vt 0.864000 0.468750 +vt 0.864000 0.218750 +vt 0.880000 0.468750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.920000 0.203125 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.468750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.928000 0.578125 +vt 0.920000 0.515625 +vt 0.928000 0.515625 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.578125 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.872000 0.218750 +vt 0.864000 0.468750 +vt 0.864000 0.218750 +vt 0.880000 0.468750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.888000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.888000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.468750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.928000 0.578125 +vt 0.920000 0.515625 +vt 0.928000 0.515625 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.578125 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.872000 0.218750 +vt 0.864000 0.468750 +vt 0.864000 0.218750 +vt 0.880000 0.468750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.744000 0.031250 +vt 0.744000 0.031250 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.872000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.872000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.872000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.0000 0.8814 0.4723 +vn 0.2738 0.6610 0.6987 +vn 0.3373 0.8143 0.4723 +vn -0.0000 0.3125 0.9499 +vn 0.1196 0.2888 0.9499 +vn -0.8143 -0.3373 -0.4723 +vn -0.5059 -0.5059 -0.6987 +vn -0.6233 -0.6233 -0.4723 +vn -0.3125 -0.0000 -0.9499 +vn -0.2888 -0.1196 -0.9499 +vn -0.0000 0.7155 0.6987 +vn -0.7155 -0.0000 -0.6987 +vn -0.8814 -0.0000 -0.4723 +vn -0.6610 -0.2738 -0.6987 +vn -0.2888 0.1196 -0.9499 +vn 0.5059 0.5059 0.6987 +vn -0.6610 0.2738 -0.6987 +vn -0.8143 0.3373 -0.4723 +vn 0.6233 0.6233 0.4723 +vn 0.2210 0.2210 0.9499 +vn -0.2210 0.2210 -0.9499 +vn 0.6610 0.2738 0.6987 +vn -0.5059 0.5059 -0.6987 +vn -0.6233 0.6233 -0.4723 +vn 0.8143 0.3373 0.4723 +vn 0.2888 0.1196 0.9499 +vn 0.7155 -0.0000 0.6987 +vn -0.1196 0.2888 -0.9499 +vn 0.8814 -0.0000 0.4723 +vn 0.3126 0.0000 0.9499 +vn -0.2738 0.6610 -0.6987 +vn -0.3373 0.8143 -0.4723 +vn 0.2888 -0.1196 0.9499 +vn 0.6610 -0.2738 0.6987 +vn 0.8143 -0.3373 0.4723 +vn 0.0000 0.3125 -0.9499 +vn 0.0000 0.7155 -0.6987 +vn -0.0000 0.8814 -0.4723 +vn 0.5059 -0.5059 0.6987 +vn 0.6233 -0.6233 0.4723 +vn 0.2210 -0.2210 0.9499 +vn 0.3373 -0.8143 0.4723 +vn 0.1196 -0.2888 0.9499 +vn 0.2738 -0.6610 0.6987 +vn -0.0000 -0.7155 0.6987 +vn -0.0000 -0.8814 0.4723 +vn -0.0000 -0.3125 0.9499 +vn -0.3373 -0.8143 0.4723 +vn -0.1196 -0.2888 0.9499 +vn -0.2738 -0.6610 0.6987 +vn -0.6233 -0.6233 0.4723 +vn -0.2210 -0.2210 0.9499 +vn -0.5059 -0.5059 0.6987 +vn -0.2888 -0.1196 0.9499 +vn -0.6610 -0.2738 0.6987 +vn -0.8143 -0.3373 0.4723 +vn -0.7155 0.0000 0.6987 +vn -0.8814 0.0000 0.4723 +vn -0.3125 0.0000 0.9499 +vn -0.2888 0.1196 0.9499 +vn -0.6610 0.2738 0.6987 +vn -0.8143 0.3373 0.4723 +vn -0.5059 0.5059 0.6987 +vn -0.6233 0.6233 0.4723 +vn -0.2210 0.2210 0.9499 +vn -0.1196 0.2888 0.9499 +vn -0.2738 0.6610 0.6987 +vn -0.3373 0.8143 0.4723 +vn -0.2210 -0.2210 -0.9499 +vn -0.2738 -0.6610 -0.6987 +vn -0.3373 -0.8143 -0.4723 +vn -0.1196 -0.2888 -0.9499 +vn -0.0000 -0.7155 -0.6987 +vn 0.0000 -0.8814 -0.4723 +vn -0.0000 -0.3125 -0.9499 +vn 0.3373 -0.8143 -0.4723 +vn 0.1196 -0.2888 -0.9499 +vn 0.2738 -0.6610 -0.6987 +vn 0.6233 -0.6233 -0.4723 +vn 0.2210 -0.2210 -0.9499 +vn 0.5059 -0.5059 -0.6987 +vn 0.2888 -0.1196 -0.9499 +vn 0.6610 -0.2738 -0.6987 +vn 0.8143 -0.3373 -0.4723 +vn 0.7155 0.0000 -0.6987 +vn 0.8814 0.0000 -0.4723 +vn 0.3125 0.0000 -0.9499 +vn 0.6610 0.2738 -0.6987 +vn 0.8143 0.3373 -0.4723 +vn 0.2888 0.1196 -0.9499 +vn 0.2210 0.2210 -0.9499 +vn 0.5059 0.5059 -0.6987 +vn 0.6233 0.6233 -0.4723 +vn 0.2738 0.6610 -0.6987 +vn 0.3373 0.8143 -0.4723 +vn 0.1196 0.2888 -0.9499 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.7071 0.0000 -0.7071 +vn 0.9824 0.1866 -0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0473 0.0196 0.9987 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1448 -0.6794 +vn 0.7194 0.1448 0.6794 +vn -0.6737 -0.1363 0.7263 +vn -0.6737 -0.1363 -0.7263 +vn -0.4617 -0.4617 -0.7574 +vn 0.0671 0.0671 -0.9955 +vn 0.5294 0.5294 -0.6630 +vn 0.5294 0.5294 0.6630 +vn -0.4617 -0.4617 0.7574 +vn 0.0671 0.0671 0.9955 +vn 0.1866 0.9824 0.0000 +vn 0.1448 0.7194 0.6794 +vn 0.0196 0.0473 0.9987 +vn -0.1363 -0.6737 -0.7263 +vn 0.0196 0.0473 -0.9987 +vn 0.1448 0.7194 -0.6794 +vn -0.1363 -0.6737 0.7263 +vn -0.9824 0.1866 0.0000 +vn -0.0473 0.0196 -0.9987 +vn -0.0473 0.0196 0.9987 +vn -0.7194 0.1448 0.6794 +vn -0.7194 0.1448 -0.6794 +vn 0.6737 -0.1363 -0.7263 +vn 0.6737 -0.1363 0.7263 +vn -0.0671 0.0671 0.9955 +vn -0.5294 0.5294 0.6630 +vn -0.5294 0.5294 -0.6630 +vn -0.0671 0.0671 -0.9955 +vn 0.4617 -0.4617 -0.7574 +vn -0.1866 0.9824 -0.0000 +vn -0.1448 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.1448 0.7194 0.6794 +vn 0.1363 -0.6737 -0.7263 +vn 0.4617 -0.4617 0.7574 +vn 0.9824 -0.1866 0.0000 +vn 0.0473 -0.0196 -0.9987 +vn 0.0473 -0.0196 0.9987 +vn 0.7194 -0.1448 0.6794 +vn 0.7194 -0.1448 -0.6794 +vn -0.6737 0.1363 -0.7263 +vn -0.6737 0.1363 0.7263 +vn -0.4617 0.4617 0.7574 +vn 0.0671 -0.0671 0.9955 +vn 0.5294 -0.5294 0.6630 +vn 0.5294 -0.5294 -0.6630 +vn -0.4617 0.4617 -0.7574 +vn 0.0671 -0.0671 -0.9955 +vn 0.1866 -0.9824 -0.0000 +vn 0.1448 -0.7194 -0.6794 +vn 0.0196 -0.0473 -0.9987 +vn 0.0196 -0.0473 0.9987 +vn 0.1448 -0.7194 0.6794 +vn -0.1363 0.6737 -0.7263 +vn -0.1363 0.6737 0.7263 +vn -0.9824 -0.1866 0.0000 +vn -0.0473 -0.0196 0.9987 +vn 0.6737 0.1363 0.7263 +vn -0.0473 -0.0196 -0.9987 +vn -0.7194 -0.1448 -0.6794 +vn -0.7194 -0.1448 0.6794 +vn 0.6737 0.1363 -0.7263 +vn -0.0671 -0.0671 -0.9955 +vn -0.5294 -0.5294 -0.6630 +vn -0.5294 -0.5294 0.6630 +vn -0.0671 -0.0671 0.9955 +vn 0.4617 0.4617 0.7574 +vn -0.1866 -0.9824 0.0000 +vn -0.1448 -0.7194 0.6794 +vn -0.0196 -0.0473 0.9987 +vn 0.4617 0.4617 -0.7574 +vn -0.0196 -0.0473 -0.9987 +vn -0.1448 -0.7194 -0.6794 +vn 0.1363 0.6737 0.7263 +vn 0.1363 0.6737 -0.7263 +s off +f 61/65/21 58/66/21 57/67/21 +f 62/68/22 60/69/22 58/70/22 +f 64/71/23 59/72/23 60/73/23 +f 63/74/24 57/75/24 59/76/24 +f 63/74/25 62/77/25 61/78/25 +f 58/79/26 59/76/26 57/80/26 +f 69/81/21 66/82/21 65/83/21 +f 70/84/22 68/85/22 66/86/22 +f 72/87/23 67/88/23 68/89/23 +f 71/90/24 65/91/24 67/92/24 +f 71/90/25 70/93/25 69/94/25 +f 66/95/26 67/92/26 65/96/26 +f 77/97/21 74/98/21 73/99/21 +f 78/100/22 76/101/22 74/102/22 +f 80/103/23 75/104/23 76/105/23 +f 79/106/24 73/107/24 75/108/24 +f 79/106/25 78/109/25 77/110/25 +f 74/111/26 75/108/26 73/112/26 +f 85/113/21 82/114/21 81/115/21 +f 86/116/22 84/117/22 82/118/22 +f 88/119/23 83/120/23 84/121/23 +f 87/122/24 81/123/24 83/124/24 +f 87/122/25 86/125/25 85/126/25 +f 82/127/26 83/124/26 81/128/26 +f 93/129/21 90/130/21 89/131/21 +f 94/132/22 92/133/22 90/134/22 +f 96/135/23 91/136/23 92/137/23 +f 95/138/24 89/139/24 91/140/24 +f 95/138/25 94/141/25 93/142/25 +f 90/143/26 91/140/26 89/144/26 +f 101/145/21 98/146/21 97/147/21 +f 102/148/22 100/149/22 98/150/22 +f 104/151/23 99/152/23 100/153/23 +f 103/154/24 97/155/24 99/156/24 +f 103/154/25 102/157/25 101/158/25 +f 98/159/26 99/156/26 97/160/26 +f 109/161/21 106/162/21 105/163/21 +f 110/164/22 108/165/22 106/166/22 +f 112/167/23 107/168/23 108/169/23 +f 111/170/24 105/171/24 107/172/24 +f 111/170/25 110/173/25 109/174/25 +f 106/175/26 107/172/26 105/176/26 +f 117/177/21 114/178/21 113/179/21 +f 118/180/22 116/181/22 114/182/22 +f 120/183/23 115/184/23 116/185/23 +f 119/186/24 113/187/24 115/188/24 +f 119/186/25 118/189/25 117/190/25 +f 114/191/26 115/188/26 113/192/26 +f 54/193/26 56/194/26 55/195/26 +f 49/196/21 55/197/21 56/198/21 +f 51/199/23 53/200/23 54/201/23 +f 51/202/25 49/203/25 52/204/25 +f 126/205/26 128/206/26 127/207/26 +f 121/208/21 127/209/21 128/210/21 +f 123/211/23 125/212/23 126/213/23 +f 123/214/25 121/215/25 124/216/25 +f 134/217/26 136/218/26 135/219/26 +f 129/220/21 135/221/21 136/222/21 +f 131/223/23 133/224/23 134/225/23 +f 131/226/25 129/227/25 132/228/25 +f 142/229/26 144/230/26 143/231/26 +f 137/232/21 143/233/21 144/234/21 +f 139/235/23 141/236/23 142/237/23 +f 139/238/25 137/239/25 140/240/25 +f 146/241/26 147/242/26 145/243/26 +f 148/244/24 151/245/24 147/246/24 +f 145/247/22 150/248/22 146/249/22 +f 149/250/25 152/251/25 150/252/25 +f 154/253/26 155/254/26 153/255/26 +f 156/256/24 159/257/24 155/258/24 +f 153/259/22 158/260/22 154/261/22 +f 157/262/25 160/263/25 158/264/25 +f 162/265/26 163/266/26 161/267/26 +f 164/268/24 167/269/24 163/270/24 +f 161/271/22 166/272/22 162/273/22 +f 165/274/25 168/275/25 166/276/25 +f 170/277/26 171/278/26 169/279/26 +f 172/280/24 175/281/24 171/282/24 +f 169/283/22 174/284/22 170/285/22 +f 173/286/25 176/287/25 174/288/25 +f 178/289/23 179/290/23 177/291/23 +f 180/292/24 183/293/24 179/294/24 +f 177/295/22 182/296/22 178/297/22 +f 181/298/21 184/299/21 182/300/21 +f 186/301/23 187/302/23 185/303/23 +f 188/304/24 191/305/24 187/306/24 +f 185/307/22 190/308/22 186/309/22 +f 189/310/21 192/311/21 190/312/21 +f 194/313/23 195/314/23 193/315/23 +f 196/316/24 199/317/24 195/318/24 +f 193/319/22 198/320/22 194/321/22 +f 197/322/21 200/323/21 198/324/21 +f 202/325/23 203/326/23 201/327/23 +f 204/328/24 207/329/24 203/330/24 +f 201/331/22 206/332/22 202/333/22 +f 205/334/21 208/335/21 206/336/21 +f 244/337/22 212/338/22 210/339/22 +f 240/340/22 244/337/22 210/339/22 +f 240/340/22 342/341/22 349/342/22 +f 238/343/22 335/344/22 342/341/22 +f 236/345/22 328/346/22 335/344/22 +f 234/347/22 321/348/22 328/346/22 +f 232/349/22 314/350/22 321/348/22 +f 307/351/22 230/352/22 228/353/22 +f 300/354/22 228/353/22 226/355/22 +f 293/356/22 226/357/22 224/358/22 +f 286/359/22 224/358/22 222/360/22 +f 279/361/22 222/360/22 220/362/22 +f 218/363/22 279/361/22 220/362/22 +f 216/364/22 272/365/22 218/363/22 +f 214/366/22 265/367/22 216/364/22 +f 212/338/22 258/368/22 214/366/22 +f 357/369/24 352/370/24 350/371/24 +f 368/372/24 357/369/24 252/373/24 +f 252/373/24 365/374/24 368/372/24 +f 259/375/24 362/376/24 365/374/24 +f 266/377/24 241/378/24 362/376/24 +f 273/379/24 247/380/24 241/378/24 +f 280/381/24 255/382/24 247/380/24 +f 268/383/24 287/384/24 294/385/24 +f 276/386/24 294/385/24 301/387/24 +f 289/388/24 301/389/24 308/390/24 +f 297/391/24 308/390/24 315/392/24 +f 310/393/24 315/392/24 322/394/24 +f 329/395/24 310/393/24 322/394/24 +f 336/396/24 318/397/24 329/395/24 +f 343/398/24 331/399/24 336/396/24 +f 350/371/24 339/400/24 343/398/24 +f 233/401/24 382/402/24 231/403/24 +f 231/403/24 381/404/24 229/405/24 +f 229/405/24 380/406/24 227/407/24 +f 227/407/24 379/408/24 225/409/24 +f 225/410/24 378/411/24 223/412/24 +f 223/412/24 377/413/24 221/414/24 +f 221/414/24 376/415/24 219/416/24 +f 217/417/24 376/415/24 375/418/24 +f 375/418/24 215/419/24 217/417/24 +f 374/420/24 213/421/24 215/419/24 +f 373/422/24 211/423/24 213/421/24 +f 211/423/24 371/424/24 209/425/24 +f 239/426/24 371/424/24 386/427/24 +f 239/426/24 385/428/24 237/429/24 +f 237/429/24 384/430/24 235/431/24 +f 235/431/24 383/432/24 233/401/24 +f 274/433/22 390/434/22 391/435/22 +f 267/436/22 389/437/22 390/434/22 +f 260/438/22 388/439/22 389/437/22 +f 387/440/22 253/441/22 359/442/22 +f 402/443/22 359/442/22 351/444/22 +f 351/444/22 401/445/22 402/443/22 +f 344/446/22 400/447/22 401/445/22 +f 337/448/22 399/449/22 400/447/22 +f 330/450/22 398/451/22 399/449/22 +f 323/452/22 397/453/22 398/451/22 +f 396/454/22 316/455/22 309/456/22 +f 302/457/22 396/454/22 309/456/22 +f 295/458/22 395/459/22 302/460/22 +f 288/461/22 394/462/22 295/458/22 +f 281/463/22 393/464/22 288/461/22 +f 274/433/22 392/465/22 281/463/22 +f 404/466/21 405/467/21 403/468/21 +f 404/466/26 410/469/26 406/470/26 +f 405/467/25 408/471/25 403/468/25 +f 406/470/24 407/472/24 405/467/24 +f 403/468/22 409/473/22 404/466/22 +f 439/474/21 450/475/21 438/476/21 +f 438/476/21 449/477/21 437/478/21 +f 435/479/21 449/480/21 447/481/21 +f 435/479/21 448/482/21 436/483/21 +f 446/484/21 448/485/21 458/486/21 +f 446/484/21 457/487/21 445/488/21 +f 444/489/21 457/490/21 456/491/21 +f 444/489/21 455/492/21 443/493/21 +f 442/494/21 455/495/21 454/496/21 +f 442/494/21 453/497/21 441/498/21 +f 441/499/21 452/500/21 440/501/21 +f 440/501/21 451/502/21 439/503/21 +f 460/504/21 461/505/21 459/506/21 +f 464/507/21 465/508/21 463/509/21 +f 468/510/21 469/511/21 467/512/21 +f 472/513/21 473/514/21 471/515/21 +f 489/516/21 487/517/21 488/518/21 +f 481/519/21 479/520/21 480/521/21 +f 477/522/24 482/523/24 478/524/24 +f 476/525/22 480/521/22 475/526/22 +f 478/527/26 481/519/26 476/528/26 +f 475/529/25 479/520/25 477/530/25 +f 485/531/24 490/532/24 486/533/24 +f 484/534/22 488/518/22 483/535/22 +f 486/536/26 489/516/26 484/537/26 +f 483/538/25 487/517/25 485/539/25 +f 492/540/24 493/541/24 491/542/24 +f 494/543/25 497/544/25 493/541/25 +f 491/545/26 496/546/26 492/547/26 +f 495/548/22 498/549/22 496/546/22 +f 500/550/24 501/551/24 499/552/24 +f 502/553/25 505/554/25 501/551/25 +f 499/555/26 504/556/26 500/557/26 +f 503/558/22 506/559/22 504/556/22 +f 508/560/24 509/561/24 507/562/24 +f 510/563/25 513/564/25 509/561/25 +f 507/565/26 512/566/26 508/567/26 +f 511/568/22 514/569/22 512/566/22 +f 516/570/24 517/571/24 515/572/24 +f 518/573/25 521/574/25 517/571/25 +f 515/575/26 520/576/26 516/577/26 +f 519/578/22 522/579/22 520/576/22 +f 524/580/24 525/581/24 523/582/24 +f 526/583/21 529/584/21 525/581/21 +f 523/585/23 528/586/23 524/587/23 +f 527/588/22 530/589/22 528/586/22 +f 532/590/24 533/591/24 531/592/24 +f 534/593/21 537/594/21 533/591/21 +f 531/595/23 536/596/23 532/597/23 +f 535/598/22 538/599/22 536/596/22 +f 540/600/24 541/601/24 539/602/24 +f 542/603/21 545/604/21 541/601/21 +f 539/605/23 544/606/23 540/607/23 +f 543/608/22 546/609/22 544/606/22 +f 548/610/24 549/611/24 547/612/24 +f 550/613/21 553/614/21 549/611/21 +f 547/615/23 552/616/23 548/617/23 +f 551/618/22 554/619/22 552/616/22 +f 556/620/23 557/621/23 555/622/23 +f 556/620/26 562/623/26 558/624/26 +f 557/621/25 560/625/25 555/622/25 +f 558/624/22 559/626/22 557/621/22 +f 555/622/24 561/627/24 556/620/24 +f 591/628/23 602/629/23 590/630/23 +f 590/630/23 601/631/23 589/632/23 +f 587/633/23 601/634/23 599/635/23 +f 588/636/23 599/635/23 600/637/23 +f 598/638/23 600/639/23 610/640/23 +f 597/641/23 610/640/23 609/642/23 +f 596/643/23 609/644/23 608/645/23 +f 595/646/23 608/645/23 607/647/23 +f 595/648/23 606/649/23 594/650/23 +f 594/650/23 605/651/23 593/652/23 +f 592/653/23 605/654/23 604/655/23 +f 592/653/23 603/656/23 591/657/23 +f 612/658/23 613/659/23 611/660/23 +f 616/661/23 617/662/23 615/663/23 +f 620/664/23 621/665/23 619/666/23 +f 624/667/23 625/668/23 623/669/23 +f 641/670/23 639/671/23 640/672/23 +f 633/673/23 631/674/23 632/675/23 +f 629/676/22 634/677/22 630/678/22 +f 628/679/24 632/675/24 627/680/24 +f 630/681/26 633/673/26 628/682/26 +f 627/683/25 631/674/25 629/684/25 +f 637/685/22 642/686/22 638/687/22 +f 636/688/24 640/672/24 635/689/24 +f 638/690/26 641/670/26 636/691/26 +f 635/692/25 639/671/25 637/693/25 +f 704/694/25 705/695/25 703/696/25 +f 708/697/22 704/694/22 703/696/22 +f 709/698/21 706/699/21 704/694/21 +f 707/700/23 703/696/23 705/695/23 +f 710/701/24 705/695/24 706/699/24 +f 717/702/24 715/703/24 713/704/24 +f 731/705/22 730/706/22 729/707/22 +f 744/708/26 745/709/26 743/710/26 +f 748/711/24 744/708/24 743/710/24 +f 749/712/21 746/713/21 744/708/21 +f 747/714/23 743/710/23 745/709/23 +f 750/715/22 745/709/22 746/713/22 +f 61/65/21 62/716/21 58/66/21 +f 62/68/22 64/717/22 60/69/22 +f 64/71/23 63/718/23 59/72/23 +f 63/74/24 61/719/24 57/75/24 +f 63/74/25 64/717/25 62/77/25 +f 58/79/26 60/69/26 59/76/26 +f 69/81/21 70/720/21 66/82/21 +f 70/84/22 72/721/22 68/85/22 +f 72/87/23 71/722/23 67/88/23 +f 71/90/24 69/723/24 65/91/24 +f 71/90/25 72/721/25 70/93/25 +f 66/95/26 68/85/26 67/92/26 +f 77/97/21 78/724/21 74/98/21 +f 78/100/22 80/725/22 76/101/22 +f 80/103/23 79/726/23 75/104/23 +f 79/106/24 77/727/24 73/107/24 +f 79/106/25 80/725/25 78/109/25 +f 74/111/26 76/101/26 75/108/26 +f 85/113/21 86/728/21 82/114/21 +f 86/116/22 88/729/22 84/117/22 +f 88/119/23 87/730/23 83/120/23 +f 87/122/24 85/731/24 81/123/24 +f 87/122/25 88/729/25 86/125/25 +f 82/127/26 84/117/26 83/124/26 +f 93/129/21 94/732/21 90/130/21 +f 94/132/22 96/733/22 92/133/22 +f 96/135/23 95/734/23 91/136/23 +f 95/138/24 93/735/24 89/139/24 +f 95/138/25 96/733/25 94/141/25 +f 90/143/26 92/133/26 91/140/26 +f 101/145/21 102/736/21 98/146/21 +f 102/148/22 104/737/22 100/149/22 +f 104/151/23 103/738/23 99/152/23 +f 103/154/24 101/739/24 97/155/24 +f 103/154/25 104/737/25 102/157/25 +f 98/159/26 100/149/26 99/156/26 +f 109/161/21 110/740/21 106/162/21 +f 110/164/22 112/741/22 108/165/22 +f 112/167/23 111/742/23 107/168/23 +f 111/170/24 109/743/24 105/171/24 +f 111/170/25 112/741/25 110/173/25 +f 106/175/26 108/165/26 107/172/26 +f 117/177/21 118/744/21 114/178/21 +f 118/180/22 120/745/22 116/181/22 +f 120/183/23 119/746/23 115/184/23 +f 119/186/24 117/747/24 113/187/24 +f 119/186/25 120/745/25 118/189/25 +f 114/191/26 116/181/26 115/188/26 +f 54/193/26 53/748/26 56/194/26 +f 49/196/21 50/749/21 55/197/21 +f 51/199/23 52/750/23 53/200/23 +f 51/202/25 50/751/25 49/203/25 +f 126/205/26 125/752/26 128/206/26 +f 121/208/21 122/753/21 127/209/21 +f 123/211/23 124/754/23 125/212/23 +f 123/214/25 122/755/25 121/215/25 +f 134/217/26 133/756/26 136/218/26 +f 129/220/21 130/757/21 135/221/21 +f 131/223/23 132/758/23 133/224/23 +f 131/226/25 130/759/25 129/227/25 +f 142/229/26 141/760/26 144/230/26 +f 137/232/21 138/761/21 143/233/21 +f 139/235/23 140/762/23 141/236/23 +f 139/238/25 138/763/25 137/239/25 +f 146/241/26 148/764/26 147/242/26 +f 148/244/24 152/765/24 151/245/24 +f 145/247/22 149/766/22 150/248/22 +f 149/250/25 151/767/25 152/251/25 +f 154/253/26 156/768/26 155/254/26 +f 156/256/24 160/769/24 159/257/24 +f 153/259/22 157/770/22 158/260/22 +f 157/262/25 159/771/25 160/263/25 +f 162/265/26 164/772/26 163/266/26 +f 164/268/24 168/773/24 167/269/24 +f 161/271/22 165/774/22 166/272/22 +f 165/274/25 167/775/25 168/275/25 +f 170/277/26 172/776/26 171/278/26 +f 172/280/24 176/777/24 175/281/24 +f 169/283/22 173/778/22 174/284/22 +f 173/286/25 175/779/25 176/287/25 +f 178/289/23 180/780/23 179/290/23 +f 180/292/24 184/781/24 183/293/24 +f 177/295/22 181/782/22 182/296/22 +f 181/298/21 183/783/21 184/299/21 +f 186/301/23 188/784/23 187/302/23 +f 188/304/24 192/785/24 191/305/24 +f 185/307/22 189/786/22 190/308/22 +f 189/310/21 191/787/21 192/311/21 +f 194/313/23 196/788/23 195/314/23 +f 196/316/24 200/789/24 199/317/24 +f 193/319/22 197/790/22 198/320/22 +f 197/322/21 199/791/21 200/323/21 +f 202/325/23 204/792/23 203/326/23 +f 204/328/24 208/793/24 207/329/24 +f 201/331/22 205/794/22 206/332/22 +f 205/334/21 207/795/21 208/335/21 +f 244/337/22 251/796/22 212/338/22 +f 240/340/22 349/342/22 244/337/22 +f 240/340/22 238/343/22 342/341/22 +f 238/343/22 236/345/22 335/344/22 +f 236/345/22 234/347/22 328/346/22 +f 234/347/22 232/349/22 321/348/22 +f 232/349/22 230/352/22 314/350/22 +f 307/351/22 314/350/22 230/352/22 +f 300/354/22 307/351/22 228/353/22 +f 293/356/22 300/797/22 226/357/22 +f 286/359/22 293/356/22 224/358/22 +f 279/361/22 286/359/22 222/360/22 +f 218/363/22 272/365/22 279/361/22 +f 216/364/22 265/367/22 272/365/22 +f 214/366/22 258/368/22 265/367/22 +f 212/338/22 251/796/22 258/368/22 +f 357/369/24 358/798/24 352/370/24 +f 368/372/24 358/798/24 357/369/24 +f 252/373/24 259/375/24 365/374/24 +f 259/375/24 266/377/24 362/376/24 +f 266/377/24 273/379/24 241/378/24 +f 273/379/24 280/381/24 247/380/24 +f 280/381/24 287/384/24 255/382/24 +f 268/383/24 255/382/24 287/384/24 +f 276/386/24 268/383/24 294/385/24 +f 289/388/24 276/799/24 301/389/24 +f 297/391/24 289/388/24 308/390/24 +f 310/393/24 297/391/24 315/392/24 +f 329/395/24 318/397/24 310/393/24 +f 336/396/24 331/399/24 318/397/24 +f 343/398/24 339/400/24 331/399/24 +f 350/371/24 352/370/24 339/400/24 +f 233/401/24 383/432/24 382/402/24 +f 231/403/24 382/402/24 381/404/24 +f 229/405/24 381/404/24 380/406/24 +f 227/407/24 380/406/24 379/408/24 +f 225/410/24 379/800/24 378/411/24 +f 223/412/24 378/411/24 377/413/24 +f 221/414/24 377/413/24 376/415/24 +f 217/417/24 219/416/24 376/415/24 +f 375/418/24 374/420/24 215/419/24 +f 374/420/24 373/422/24 213/421/24 +f 373/422/24 372/801/24 211/423/24 +f 211/423/24 372/801/24 371/424/24 +f 239/426/24 209/425/24 371/424/24 +f 239/426/24 386/427/24 385/428/24 +f 237/429/24 385/428/24 384/430/24 +f 235/431/24 384/430/24 383/432/24 +f 274/433/22 267/436/22 390/434/22 +f 267/436/22 260/438/22 389/437/22 +f 260/438/22 253/441/22 388/439/22 +f 387/440/22 388/439/22 253/441/22 +f 402/443/22 387/440/22 359/442/22 +f 351/444/22 344/446/22 401/445/22 +f 344/446/22 337/448/22 400/447/22 +f 337/448/22 330/450/22 399/449/22 +f 330/450/22 323/452/22 398/451/22 +f 323/452/22 316/455/22 397/453/22 +f 396/454/22 397/453/22 316/455/22 +f 302/457/22 395/802/22 396/454/22 +f 295/458/22 394/462/22 395/459/22 +f 288/461/22 393/464/22 394/462/22 +f 281/463/22 392/465/22 393/464/22 +f 274/433/22 391/435/22 392/465/22 +f 404/466/21 406/470/21 405/467/21 +f 404/466/26 409/803/26 410/469/26 +f 405/467/25 407/804/25 408/471/25 +f 406/470/24 410/805/24 407/472/24 +f 403/468/22 408/806/22 409/473/22 +f 439/474/21 451/807/21 450/475/21 +f 438/476/21 450/475/21 449/477/21 +f 435/479/21 437/808/21 449/480/21 +f 435/479/21 447/481/21 448/482/21 +f 446/484/21 436/809/21 448/485/21 +f 446/484/21 458/486/21 457/487/21 +f 444/489/21 445/810/21 457/490/21 +f 444/489/21 456/491/21 455/492/21 +f 442/494/21 443/811/21 455/495/21 +f 442/494/21 454/496/21 453/497/21 +f 441/499/21 453/812/21 452/500/21 +f 440/501/21 452/500/21 451/502/21 +f 460/504/21 462/813/21 461/505/21 +f 464/507/21 466/814/21 465/508/21 +f 468/510/21 470/815/21 469/511/21 +f 472/513/21 474/816/21 473/514/21 +f 489/516/21 490/532/21 487/517/21 +f 481/519/21 482/523/21 479/520/21 +f 477/522/24 479/520/24 482/523/24 +f 476/525/22 481/519/22 480/521/22 +f 478/527/26 482/523/26 481/519/26 +f 475/529/25 480/521/25 479/520/25 +f 485/531/24 487/517/24 490/532/24 +f 484/534/22 489/516/22 488/518/22 +f 486/536/26 490/532/26 489/516/26 +f 483/538/25 488/518/25 487/517/25 +f 492/540/24 494/543/24 493/541/24 +f 494/543/25 498/817/25 497/544/25 +f 491/545/26 495/548/26 496/546/26 +f 495/548/22 497/818/22 498/549/22 +f 500/550/24 502/553/24 501/551/24 +f 502/553/25 506/819/25 505/554/25 +f 499/555/26 503/558/26 504/556/26 +f 503/558/22 505/820/22 506/559/22 +f 508/560/24 510/563/24 509/561/24 +f 510/563/25 514/821/25 513/564/25 +f 507/565/26 511/568/26 512/566/26 +f 511/568/22 513/822/22 514/569/22 +f 516/570/24 518/573/24 517/571/24 +f 518/573/25 522/823/25 521/574/25 +f 515/575/26 519/578/26 520/576/26 +f 519/578/22 521/824/22 522/579/22 +f 524/580/24 526/583/24 525/581/24 +f 526/583/21 530/825/21 529/584/21 +f 523/585/23 527/588/23 528/586/23 +f 527/588/22 529/826/22 530/589/22 +f 532/590/24 534/593/24 533/591/24 +f 534/593/21 538/827/21 537/594/21 +f 531/595/23 535/598/23 536/596/23 +f 535/598/22 537/828/22 538/599/22 +f 540/600/24 542/603/24 541/601/24 +f 542/603/21 546/829/21 545/604/21 +f 539/605/23 543/608/23 544/606/23 +f 543/608/22 545/830/22 546/609/22 +f 548/610/24 550/613/24 549/611/24 +f 550/613/21 554/831/21 553/614/21 +f 547/615/23 551/618/23 552/616/23 +f 551/618/22 553/832/22 554/619/22 +f 556/620/23 558/624/23 557/621/23 +f 556/620/26 561/833/26 562/623/26 +f 557/621/25 559/834/25 560/625/25 +f 558/624/22 562/835/22 559/626/22 +f 555/622/24 560/836/24 561/627/24 +f 591/628/23 603/837/23 602/629/23 +f 590/630/23 602/629/23 601/631/23 +f 587/633/23 589/838/23 601/634/23 +f 588/636/23 587/633/23 599/635/23 +f 598/638/23 588/839/23 600/639/23 +f 597/641/23 598/638/23 610/640/23 +f 596/643/23 597/840/23 609/644/23 +f 595/646/23 596/643/23 608/645/23 +f 595/648/23 607/841/23 606/649/23 +f 594/650/23 606/649/23 605/651/23 +f 592/653/23 593/842/23 605/654/23 +f 592/653/23 604/655/23 603/656/23 +f 612/658/23 614/843/23 613/659/23 +f 616/661/23 618/844/23 617/662/23 +f 620/664/23 622/845/23 621/665/23 +f 624/667/23 626/846/23 625/668/23 +f 641/670/23 642/686/23 639/671/23 +f 633/673/23 634/677/23 631/674/23 +f 629/676/22 631/674/22 634/677/22 +f 628/679/24 633/673/24 632/675/24 +f 630/681/26 634/677/26 633/673/26 +f 627/683/25 632/675/25 631/674/25 +f 637/685/22 639/671/22 642/686/22 +f 636/688/24 641/670/24 640/672/24 +f 638/690/26 642/686/26 641/670/26 +f 635/692/25 640/672/25 639/671/25 +f 704/694/25 706/699/25 705/695/25 +f 708/697/22 709/847/22 704/694/22 +f 709/698/21 710/848/21 706/699/21 +f 707/700/23 708/849/23 703/696/23 +f 710/701/24 707/850/24 705/695/24 +f 713/704/24 712/851/24 711/852/24 +f 711/852/24 718/853/24 717/702/24 +f 717/702/24 716/854/24 715/703/24 +f 715/703/24 714/855/24 713/704/24 +f 713/704/24 711/852/24 717/702/24 +f 729/707/22 728/856/22 727/857/22 +f 727/857/22 734/858/22 729/707/22 +f 734/858/22 733/859/22 729/707/22 +f 733/859/22 732/860/22 729/707/22 +f 732/860/22 731/705/22 729/707/22 +f 744/708/26 746/713/26 745/709/26 +f 748/711/24 749/861/24 744/708/24 +f 749/712/21 750/862/21 746/713/21 +f 747/714/23 748/863/23 743/710/23 +f 750/715/22 747/864/22 745/709/22 +s 1 +f 210/339/25 211/423/27 209/425/25 +f 212/338/27 213/421/28 211/423/27 +f 214/366/28 215/419/29 213/421/28 +f 216/364/29 217/417/21 215/419/29 +f 218/363/21 219/416/30 217/417/21 +f 220/362/30 221/414/31 219/416/30 +f 222/360/31 223/412/32 221/414/31 +f 224/358/32 225/410/26 223/412/32 +f 226/355/26 227/407/33 225/409/26 +f 228/353/33 229/405/34 227/407/33 +f 230/352/34 231/403/35 229/405/34 +f 232/349/35 233/401/23 231/403/35 +f 234/347/23 235/431/36 233/401/23 +f 236/345/36 237/429/37 235/431/36 +f 238/343/37 239/426/38 237/429/37 +f 240/340/38 209/425/25 239/426/38 +f 244/337/39 250/865/40 251/796/41 +f 354/866/42 353/867/22 249/868/43 +f 310/393/44 303/869/45 297/391/46 +f 325/870/47 369/871/24 317/872/48 +f 354/866/42 250/865/40 243/873/49 +f 324/874/50 310/393/44 318/397/51 +f 325/870/47 311/875/52 324/874/50 +f 338/876/53 369/877/24 325/878/47 +f 249/879/43 257/880/54 250/865/40 +f 332/881/55 318/397/51 331/399/56 +f 251/796/41 257/880/54 258/368/57 +f 249/879/43 353/882/22 256/883/58 +f 332/881/55 325/878/47 324/874/50 +f 346/884/59 369/885/24 338/886/53 +f 256/887/58 264/888/60 257/880/54 +f 345/889/61 331/399/56 339/400/62 +f 258/368/57 264/888/60 265/367/63 +f 256/887/58 353/890/22 263/891/64 +f 345/889/61 338/886/53 332/881/55 +f 263/892/64 271/893/65 264/888/60 +f 356/894/66 369/895/24 346/896/59 +f 265/367/63 271/893/65 272/365/67 +f 263/892/64 353/897/22 270/898/68 +f 355/899/69 339/400/62 352/370/70 +f 271/893/65 277/900/71 278/901/72 +f 356/894/66 345/889/61 355/899/69 +f 272/365/67 278/901/72 279/361/73 +f 270/902/68 353/903/22 277/900/71 +f 370/904/74 355/899/69 246/905/75 +f 370/904/74 369/906/24 356/907/66 +f 246/905/75 352/370/70 358/798/76 +f 279/361/73 285/908/77 286/359/78 +f 277/909/71 353/910/22 284/911/79 +f 252/373/27 359/442/25 253/441/27 +f 259/375/28 253/441/27 260/438/28 +f 278/901/72 284/911/79 285/908/77 +f 266/377/29 260/438/28 267/436/29 +f 285/908/77 293/356/80 286/359/78 +f 284/912/79 353/913/22 291/914/81 +f 273/379/21 267/436/29 274/433/21 +f 280/381/30 274/433/21 281/463/30 +f 284/912/79 292/915/82 285/908/77 +f 287/384/31 281/463/30 288/461/31 +f 293/356/80 299/916/83 300/797/84 +f 291/917/81 353/918/22 298/919/85 +f 294/385/32 288/461/31 295/458/32 +f 301/387/26 295/458/32 302/460/26 +f 291/917/81 299/916/83 292/915/82 +f 308/390/33 302/457/26 309/456/33 +f 299/920/83 307/351/86 300/354/84 +f 298/921/85 353/922/22 305/923/87 +f 315/392/34 309/456/33 316/455/34 +f 322/394/35 316/455/34 323/452/35 +f 298/921/85 306/924/88 299/920/83 +f 306/924/88 314/350/89 307/351/86 +f 305/925/87 353/926/22 312/927/90 +f 329/395/23 323/452/35 330/450/23 +f 336/396/36 330/450/23 337/448/36 +f 305/925/87 313/928/91 306/924/88 +f 343/398/37 337/448/36 344/446/37 +f 312/929/90 353/930/22 319/931/92 +f 350/371/38 344/446/37 351/444/38 +f 357/369/25 351/444/38 359/442/25 +f 312/929/90 320/932/93 313/928/91 +f 314/350/89 320/932/93 321/348/94 +f 319/933/92 327/934/95 320/932/93 +f 320/932/93 328/346/96 321/348/94 +f 319/933/92 353/935/22 326/936/97 +f 327/934/95 333/937/98 334/938/99 +f 327/934/95 335/344/100 328/346/96 +f 326/939/97 353/940/22 333/937/98 +f 333/941/98 341/942/101 334/938/99 +f 334/938/99 342/341/102 335/344/100 +f 333/941/98 353/943/22 340/944/103 +f 341/942/101 347/945/104 348/946/105 +f 341/942/101 349/342/106 342/341/102 +f 340/947/103 353/948/22 347/945/104 +f 347/949/104 243/873/49 348/946/105 +f 348/946/105 244/337/39 349/342/106 +f 347/949/104 353/950/22 354/951/42 +f 317/952/48 369/953/24 304/954/107 +f 317/952/48 303/869/45 311/875/52 +f 297/391/46 290/955/108 289/388/109 +f 304/956/107 369/957/24 296/958/110 +f 304/956/107 290/955/108 303/869/45 +f 289/388/109 282/959/111 276/799/112 +f 296/960/110 369/961/24 283/962/113 +f 290/955/108 283/962/113 282/959/111 +f 282/963/111 268/383/114 276/386/112 +f 283/964/113 369/965/24 275/966/115 +f 282/963/111 275/966/115 269/967/116 +f 269/967/116 255/382/117 268/383/114 +f 275/968/115 369/969/24 262/970/118 +f 269/967/116 262/970/118 261/971/119 +f 262/972/118 369/973/24 254/974/120 +f 261/971/119 254/974/120 248/975/121 +f 261/971/119 247/380/122 255/382/117 +f 254/976/120 242/977/123 248/975/121 +f 248/975/121 241/378/124 247/380/122 +f 254/976/120 369/978/24 245/979/125 +f 245/980/125 361/981/126 242/977/123 +f 242/977/123 362/376/127 241/378/124 +f 245/980/125 369/982/24 360/983/128 +f 361/981/126 363/984/129 364/985/130 +f 361/981/126 365/374/131 362/376/127 +f 360/986/128 369/987/24 363/984/129 +f 363/988/129 367/989/132 364/985/130 +f 364/985/130 368/372/133 365/374/131 +f 363/988/129 369/990/24 366/991/134 +f 367/989/132 370/992/74 246/905/75 +f 367/989/132 358/798/76 368/372/133 +f 366/993/134 369/994/24 370/992/74 +f 384/430/36 399/449/23 383/432/23 +f 377/413/31 392/465/30 376/415/30 +f 385/428/37 400/447/36 384/430/36 +f 378/411/32 393/464/31 377/413/31 +f 386/427/38 401/445/37 385/428/37 +f 379/800/26 394/462/32 378/411/32 +f 372/801/27 387/440/25 371/424/25 +f 371/424/25 402/443/38 386/427/38 +f 380/406/33 395/802/26 379/408/26 +f 373/422/28 388/439/27 372/801/27 +f 381/404/34 396/454/33 380/406/33 +f 374/420/29 389/437/28 373/422/28 +f 382/402/35 397/453/34 381/404/34 +f 375/418/21 390/434/29 374/420/29 +f 383/432/23 398/451/35 382/402/35 +f 376/415/30 391/435/21 375/418/21 +f 420/995/26 443/493/135 419/996/135 +f 434/997/136 448/485/22 423/998/22 +f 413/999/137 435/479/138 412/1000/138 +f 427/1001/139 452/500/140 428/1002/140 +f 421/1003/139 444/489/26 420/995/26 +f 414/1004/25 437/478/137 413/1005/137 +f 428/1002/140 453/812/24 429/1006/24 +f 422/1007/140 445/488/139 421/1008/139 +f 415/1009/141 438/476/25 414/1004/25 +f 429/1010/24 454/496/138 430/1011/138 +f 411/1012/24 446/484/140 422/1007/140 +f 416/1013/136 439/503/141 415/1014/141 +f 430/1011/138 455/495/137 431/1015/137 +f 423/1016/22 447/481/142 424/1017/142 +f 417/1018/22 440/501/136 416/1013/136 +f 431/1019/137 456/491/25 432/1020/25 +f 424/1017/142 449/480/135 425/1021/135 +f 418/1022/142 441/498/22 417/1023/22 +f 432/1020/25 457/490/141 433/1024/141 +f 425/1025/135 450/475/26 426/1026/26 +f 419/1027/135 442/494/142 418/1022/142 +f 433/1028/141 458/486/136 434/997/136 +f 412/1000/138 436/483/24 411/1029/24 +f 426/1026/26 451/807/139 427/1030/139 +f 572/1031/26 595/646/139 571/1032/139 +f 586/1033/138 600/639/24 575/1034/24 +f 565/1035/141 587/633/136 564/1036/136 +f 579/1037/135 604/655/142 580/1038/142 +f 573/1039/135 596/643/26 572/1031/26 +f 566/1040/25 589/632/141 565/1041/141 +f 580/1038/142 605/654/22 581/1042/22 +f 574/1043/142 597/641/135 573/1044/135 +f 567/1045/137 590/630/25 566/1040/25 +f 581/1046/22 606/649/136 582/1047/136 +f 563/1048/22 598/638/142 574/1043/142 +f 568/1049/138 591/657/137 567/1050/137 +f 582/1047/136 607/841/141 583/1051/141 +f 575/1052/24 599/635/140 576/1053/140 +f 569/1054/24 592/653/138 568/1049/138 +f 583/1055/141 608/645/25 584/1056/25 +f 576/1053/140 601/634/139 577/1057/139 +f 570/1058/140 593/652/24 569/1059/24 +f 584/1056/25 609/644/137 585/1060/137 +f 577/1061/139 602/629/26 578/1062/26 +f 571/1063/139 594/650/140 570/1058/140 +f 585/1064/137 610/640/138 586/1033/138 +f 564/1036/136 588/636/22 563/1065/22 +f 578/1062/26 603/837/135 579/1066/135 +f 650/1067/143 657/1068/144 649/1069/21 +f 648/1070/145 655/1071/146 647/1072/22 +f 646/1073/147 653/1074/34 645/1075/23 +f 644/1076/148 651/1077/149 643/1078/24 +f 643/1078/24 658/1079/150 650/1067/143 +f 649/1069/21 656/1080/151 648/1070/145 +f 647/1072/22 654/1081/152 646/1073/147 +f 645/1082/23 652/1083/153 644/1076/148 +f 651/1084/149 660/1085/154 659/1086/155 +f 658/1079/150 659/1086/155 665/1087/156 +f 656/1080/151 664/1088/28 663/1089/157 +f 655/1090/146 661/1091/158 654/1092/152 +f 658/1079/150 664/1088/28 657/1068/144 +f 656/1080/151 662/1093/159 655/1090/146 +f 665/1087/156 671/1094/160 664/1088/28 +f 662/1093/159 670/1095/161 669/1096/162 +f 659/1086/155 667/1097/163 666/1098/164 +f 659/1086/155 672/1099/165 665/1087/156 +f 664/1088/28 670/1095/161 663/1089/157 +f 662/1093/159 668/1100/166 661/1091/158 +f 654/1092/152 661/1091/158 653/1101/34 +f 661/1091/158 668/1100/166 653/1101/34 +f 652/1102/153 653/1103/34 660/1085/154 +f 660/1085/154 653/1103/34 667/1097/163 +f 680/1104/147 687/1105/167 679/1106/23 +f 678/1107/148 685/1108/168 677/1109/24 +f 676/1110/143 683/1111/31 675/1112/21 +f 674/1113/145 681/1114/169 673/1115/22 +f 673/1115/22 688/1116/170 680/1104/147 +f 679/1106/23 686/1117/171 678/1107/148 +f 677/1109/24 684/1118/172 676/1110/143 +f 675/1119/21 682/1120/173 674/1113/145 +f 682/1121/173 689/1122/174 681/1123/169 +f 688/1116/170 689/1122/174 695/1124/175 +f 686/1117/171 694/1125/37 693/1126/176 +f 684/1127/172 692/1128/177 691/1129/178 +f 688/1116/170 694/1125/37 687/1105/167 +f 685/1130/168 693/1126/176 692/1128/177 +f 695/1124/175 701/1131/179 694/1125/37 +f 692/1128/177 700/1132/180 699/1133/181 +f 689/1122/174 697/1134/182 696/1135/183 +f 689/1122/174 702/1136/184 695/1124/175 +f 693/1126/176 701/1131/179 700/1132/180 +f 691/1129/178 699/1133/181 698/1137/185 +f 684/1127/172 691/1129/178 683/1138/31 +f 691/1129/178 698/1137/185 683/1138/31 +f 682/1121/173 683/1139/31 690/1140/186 +f 690/1140/186 683/1139/31 697/1134/182 +f 702/1136/184 669/1141/162 670/1095/161 +f 671/1094/160 702/1136/184 670/1095/161 +f 700/1132/180 671/1094/160 672/1099/165 +f 699/1142/181 672/1099/165 666/1143/164 +f 698/1144/185 666/1143/164 667/1145/163 +f 653/1146/34 698/1144/185 667/1145/163 +f 653/1147/34 697/1148/182 683/1149/31 +f 696/1150/183 668/1151/166 669/1141/162 +f 712/1152/37 720/1153/25 711/1154/25 +f 718/1155/28 720/1153/25 726/1156/28 +f 716/1157/31 725/1158/21 724/1159/31 +f 715/1160/26 722/1161/34 714/1162/34 +f 713/1163/23 719/1164/37 712/1152/37 +f 717/1165/21 726/1156/28 725/1158/21 +f 716/1157/31 723/1166/26 715/1167/26 +f 714/1162/34 721/1168/23 713/1163/23 +f 728/1169/28 736/1170/25 727/1171/25 +f 727/1171/25 742/1172/37 734/1173/37 +f 732/1174/34 741/1175/23 740/1176/34 +f 731/1177/26 738/1178/31 730/1179/31 +f 729/1180/21 735/1181/28 728/1169/28 +f 733/1182/23 742/1172/37 741/1175/23 +f 732/1174/34 739/1183/26 731/1184/26 +f 730/1179/31 737/1185/21 729/1180/21 +f 758/1186/143 765/1187/144 757/1188/21 +f 756/1189/145 763/1190/146 755/1191/22 +f 754/1192/147 761/1193/34 753/1194/23 +f 752/1195/148 759/1196/149 751/1197/24 +f 751/1197/24 766/1198/150 758/1186/143 +f 757/1188/21 764/1199/151 756/1189/145 +f 755/1191/22 762/1200/152 754/1192/147 +f 753/1201/23 760/1202/153 752/1195/148 +f 759/1203/149 768/1204/154 767/1205/155 +f 766/1198/150 767/1205/155 773/1206/156 +f 764/1199/151 772/1207/28 771/1208/157 +f 763/1209/146 769/1210/158 762/1211/152 +f 766/1198/150 772/1207/28 765/1187/144 +f 764/1199/151 770/1212/159 763/1209/146 +f 773/1206/156 779/1213/160 772/1207/28 +f 770/1212/159 778/1214/161 777/1215/162 +f 767/1205/155 775/1216/163 774/1217/164 +f 767/1205/155 780/1218/165 773/1206/156 +f 771/1208/157 779/1213/160 778/1214/161 +f 770/1212/159 776/1219/166 769/1210/158 +f 762/1211/152 769/1210/158 761/1220/34 +f 769/1210/158 776/1219/166 761/1220/34 +f 760/1221/153 761/1222/34 768/1204/154 +f 768/1204/154 761/1222/34 775/1216/163 +f 788/1223/147 795/1224/167 787/1225/23 +f 786/1226/148 793/1227/168 785/1228/24 +f 784/1229/143 791/1230/31 783/1231/21 +f 782/1232/145 789/1233/169 781/1234/22 +f 781/1234/22 796/1235/170 788/1223/147 +f 787/1225/23 794/1236/171 786/1226/148 +f 785/1228/24 792/1237/172 784/1229/143 +f 783/1238/21 790/1239/173 782/1232/145 +f 790/1240/173 797/1241/174 789/1242/169 +f 789/1242/169 803/1243/175 796/1235/170 +f 794/1236/171 802/1244/37 801/1245/176 +f 792/1246/172 800/1247/177 799/1248/178 +f 796/1235/170 802/1244/37 795/1224/167 +f 793/1249/168 801/1245/176 800/1247/177 +f 803/1243/175 809/1250/179 802/1244/37 +f 800/1247/177 808/1251/180 807/1252/181 +f 797/1241/174 805/1253/182 804/1254/183 +f 797/1241/174 810/1255/184 803/1243/175 +f 801/1245/176 809/1250/179 808/1251/180 +f 800/1247/177 806/1256/185 799/1248/178 +f 792/1246/172 799/1248/178 791/1257/31 +f 799/1248/178 806/1256/185 791/1257/31 +f 790/1240/173 791/1258/31 798/1259/186 +f 798/1259/186 791/1258/31 805/1253/182 +f 810/1255/184 777/1260/162 778/1214/161 +f 779/1213/160 810/1255/184 778/1214/161 +f 808/1251/180 779/1213/160 780/1218/165 +f 807/1261/181 780/1218/165 774/1262/164 +f 806/1263/185 774/1262/164 775/1264/163 +f 761/1265/34 806/1263/185 775/1264/163 +f 761/1266/34 805/1267/182 791/1268/31 +f 804/1269/183 776/1270/166 777/1260/162 +f 818/1271/143 825/1272/144 817/1273/21 +f 816/1274/145 823/1275/146 815/1276/22 +f 814/1277/147 821/1278/34 813/1279/23 +f 812/1280/148 819/1281/149 811/1282/24 +f 811/1282/24 826/1283/150 818/1271/143 +f 817/1273/21 824/1284/151 816/1274/145 +f 815/1276/22 822/1285/152 814/1277/147 +f 813/1286/23 820/1287/153 812/1280/148 +f 819/1288/149 828/1289/154 827/1290/155 +f 826/1283/150 827/1290/155 833/1291/156 +f 824/1284/151 832/1292/28 831/1293/157 +f 823/1294/146 829/1295/158 822/1296/152 +f 825/1272/144 833/1291/156 832/1292/28 +f 824/1284/151 830/1297/159 823/1294/146 +f 833/1291/156 839/1298/160 832/1292/28 +f 830/1297/159 838/1299/161 837/1300/162 +f 828/1289/154 834/1301/164 827/1290/155 +f 827/1290/155 840/1302/165 833/1291/156 +f 831/1293/157 839/1298/160 838/1299/161 +f 829/1295/158 837/1300/162 836/1303/166 +f 822/1296/152 829/1295/158 821/1304/34 +f 829/1295/158 836/1303/166 821/1304/34 +f 820/1305/153 821/1306/34 828/1289/154 +f 828/1289/154 821/1306/34 835/1307/163 +f 848/1308/147 855/1309/167 847/1310/23 +f 846/1311/148 853/1312/168 845/1313/24 +f 844/1314/143 851/1315/31 843/1316/21 +f 842/1317/145 849/1318/169 841/1319/22 +f 841/1319/22 856/1320/170 848/1308/147 +f 847/1310/23 854/1321/171 846/1311/148 +f 845/1313/24 852/1322/172 844/1314/143 +f 843/1323/21 850/1324/173 842/1317/145 +f 850/1325/173 857/1326/174 849/1327/169 +f 849/1327/169 863/1328/175 856/1320/170 +f 854/1321/171 862/1329/37 861/1330/176 +f 852/1331/172 860/1332/177 859/1333/178 +f 856/1320/170 862/1329/37 855/1309/167 +f 853/1334/168 861/1330/176 860/1332/177 +f 863/1328/175 869/1335/179 862/1329/37 +f 860/1332/177 868/1336/180 867/1337/181 +f 858/1338/186 864/1339/183 857/1326/174 +f 857/1326/174 870/1340/184 863/1328/175 +f 861/1330/176 869/1335/179 868/1336/180 +f 859/1333/178 867/1337/181 866/1341/185 +f 852/1331/172 859/1333/178 851/1342/31 +f 859/1333/178 866/1341/185 851/1342/31 +f 850/1325/173 851/1343/31 858/1338/186 +f 858/1338/186 851/1343/31 865/1344/182 +f 870/1340/184 837/1345/162 838/1299/161 +f 839/1298/160 870/1340/184 838/1299/161 +f 868/1336/180 839/1298/160 840/1302/165 +f 867/1346/181 840/1302/165 834/1347/164 +f 866/1348/185 834/1347/164 835/1349/163 +f 851/1350/31 835/1349/163 821/1351/34 +f 821/1352/34 865/1353/182 851/1354/31 +f 864/1355/183 836/1356/166 837/1345/162 +f 878/1357/143 885/1358/144 877/1359/21 +f 876/1360/145 883/1361/146 875/1362/22 +f 874/1363/147 881/1364/34 873/1365/23 +f 872/1366/148 879/1367/149 871/1368/24 +f 871/1368/24 886/1369/150 878/1357/143 +f 877/1359/21 884/1370/151 876/1360/145 +f 875/1362/22 882/1371/152 874/1363/147 +f 873/1372/23 880/1373/153 872/1366/148 +f 879/1374/149 888/1375/154 887/1376/155 +f 886/1369/150 887/1376/155 893/1377/156 +f 885/1358/144 891/1378/157 884/1370/151 +f 883/1379/146 889/1380/158 882/1381/152 +f 886/1369/150 892/1382/28 885/1358/144 +f 884/1370/151 890/1383/159 883/1379/146 +f 893/1377/156 899/1384/160 892/1382/28 +f 890/1383/159 898/1385/161 897/1386/162 +f 888/1375/154 894/1387/164 887/1376/155 +f 887/1376/155 900/1388/165 893/1377/156 +f 891/1378/157 899/1384/160 898/1385/161 +f 889/1380/158 897/1386/162 896/1389/166 +f 882/1381/152 889/1380/158 881/1390/34 +f 889/1380/158 896/1389/166 881/1390/34 +f 880/1391/153 881/1392/34 888/1375/154 +f 888/1375/154 881/1392/34 895/1393/163 +f 908/1394/147 915/1395/167 907/1396/23 +f 906/1397/148 913/1398/168 905/1399/24 +f 904/1400/143 911/1401/31 903/1402/21 +f 902/1403/145 909/1404/169 901/1405/22 +f 901/1405/22 916/1406/170 908/1394/147 +f 907/1396/23 914/1407/171 906/1397/148 +f 905/1399/24 912/1408/172 904/1400/143 +f 903/1409/21 910/1410/173 902/1403/145 +f 910/1411/173 917/1412/174 909/1413/169 +f 909/1413/169 923/1414/175 916/1406/170 +f 914/1407/171 922/1415/37 921/1416/176 +f 912/1417/172 920/1418/177 919/1419/178 +f 916/1406/170 922/1415/37 915/1395/167 +f 913/1420/168 921/1416/176 920/1418/177 +f 923/1414/175 929/1421/179 922/1415/37 +f 920/1418/177 928/1422/180 927/1423/181 +f 918/1424/186 924/1425/183 917/1412/174 +f 917/1412/174 930/1426/184 923/1414/175 +f 921/1416/176 929/1421/179 928/1422/180 +f 920/1418/177 926/1427/185 919/1419/178 +f 912/1417/172 919/1419/178 911/1428/31 +f 919/1419/178 926/1427/185 911/1428/31 +f 910/1411/173 911/1429/31 918/1424/186 +f 918/1424/186 911/1429/31 925/1430/182 +f 930/1426/184 897/1431/162 898/1385/161 +f 899/1384/160 930/1426/184 898/1385/161 +f 928/1422/180 899/1384/160 900/1388/165 +f 927/1432/181 900/1388/165 894/1433/164 +f 926/1434/185 894/1433/164 895/1435/163 +f 881/1436/34 926/1434/185 895/1435/163 +f 896/1437/166 911/1438/31 881/1439/34 +f 924/1440/183 896/1437/166 897/1431/162 +f 938/1441/143 945/1442/144 937/1443/21 +f 936/1444/145 943/1445/146 935/1446/22 +f 934/1447/147 941/1448/34 933/1449/23 +f 932/1450/148 939/1451/149 931/1452/24 +f 931/1452/24 946/1453/150 938/1441/143 +f 937/1443/21 944/1454/151 936/1444/145 +f 935/1446/22 942/1455/152 934/1447/147 +f 933/1456/23 940/1457/153 932/1450/148 +f 939/1458/149 948/1459/154 947/1460/155 +f 946/1453/150 947/1460/155 953/1461/156 +f 944/1454/151 952/1462/28 951/1463/157 +f 943/1464/146 949/1465/158 942/1466/152 +f 946/1453/150 952/1462/28 945/1442/144 +f 944/1454/151 950/1467/159 943/1464/146 +f 953/1461/156 959/1468/160 952/1462/28 +f 950/1467/159 958/1469/161 957/1470/162 +f 947/1460/155 955/1471/163 954/1472/164 +f 947/1460/155 960/1473/165 953/1461/156 +f 951/1463/157 959/1468/160 958/1469/161 +f 950/1467/159 956/1474/166 949/1465/158 +f 942/1466/152 949/1465/158 941/1475/34 +f 949/1465/158 956/1474/166 941/1475/34 +f 940/1476/153 941/1477/34 948/1459/154 +f 948/1459/154 941/1477/34 955/1471/163 +f 968/1478/147 975/1479/167 967/1480/23 +f 966/1481/148 973/1482/168 965/1483/24 +f 964/1484/143 971/1485/31 963/1486/21 +f 962/1487/145 969/1488/169 961/1489/22 +f 961/1489/22 976/1490/170 968/1478/147 +f 967/1480/23 974/1491/171 966/1481/148 +f 965/1483/24 972/1492/172 964/1484/143 +f 963/1493/21 970/1494/173 962/1487/145 +f 970/1495/173 977/1496/174 969/1497/169 +f 969/1497/169 983/1498/175 976/1490/170 +f 974/1491/171 982/1499/37 981/1500/176 +f 972/1501/172 980/1502/177 979/1503/178 +f 976/1490/170 982/1499/37 975/1479/167 +f 973/1504/168 981/1500/176 980/1502/177 +f 983/1498/175 989/1505/179 982/1499/37 +f 980/1502/177 988/1506/180 987/1507/181 +f 977/1496/174 985/1508/182 984/1509/183 +f 977/1496/174 990/1510/184 983/1498/175 +f 981/1500/176 989/1505/179 988/1506/180 +f 980/1502/177 986/1511/185 979/1503/178 +f 972/1501/172 979/1503/178 971/1512/31 +f 979/1503/178 986/1511/185 971/1512/31 +f 970/1495/173 971/1513/31 978/1514/186 +f 978/1514/186 971/1513/31 985/1508/182 +f 990/1510/184 957/1515/162 958/1469/161 +f 959/1468/160 990/1510/184 958/1469/161 +f 988/1506/180 959/1468/160 960/1473/165 +f 987/1516/181 960/1473/165 954/1517/164 +f 986/1518/185 954/1517/164 955/1519/163 +f 971/1520/31 955/1519/163 941/1521/34 +f 941/1522/34 985/1523/182 971/1524/31 +f 984/1525/183 956/1526/166 957/1515/162 +f 998/1527/145 1005/1528/187 997/1529/21 +f 996/1530/143 1003/1531/188 995/1532/24 +f 994/1533/148 1001/1534/37 993/1535/23 +f 992/1536/147 999/1537/189 991/1538/22 +f 991/1538/22 1006/1539/190 998/1527/145 +f 997/1529/21 1004/1540/191 996/1530/143 +f 995/1532/24 1002/1541/192 994/1533/148 +f 993/1542/23 1000/1543/193 992/1536/147 +f 999/1544/189 1008/1545/194 1007/1546/195 +f 1006/1539/190 1007/1546/195 1013/1547/196 +f 1004/1540/191 1012/1548/31 1011/1549/197 +f 1003/1550/188 1009/1551/198 1002/1552/192 +f 1006/1539/190 1012/1548/31 1005/1528/187 +f 1004/1540/191 1010/1553/199 1003/1550/188 +f 1013/1547/196 1019/1554/200 1012/1548/31 +f 1010/1553/199 1018/1555/201 1017/1556/202 +f 1008/1545/194 1014/1557/203 1007/1546/195 +f 1007/1546/195 1020/1558/204 1013/1547/196 +f 1011/1549/197 1019/1554/200 1018/1555/201 +f 1009/1551/198 1017/1556/202 1016/1559/205 +f 1002/1552/192 1009/1551/198 1001/1560/37 +f 1009/1551/198 1016/1559/205 1001/1560/37 +f 1000/1561/193 1001/1562/37 1008/1545/194 +f 1008/1545/194 1001/1562/37 1015/1563/206 +f 1028/1564/148 1035/1565/207 1027/1566/23 +f 1026/1567/147 1033/1568/208 1025/1569/22 +f 1023/1570/21 1032/1571/209 1031/1572/28 +f 1022/1573/143 1029/1574/210 1021/1575/24 +f 1021/1575/24 1036/1576/211 1028/1564/148 +f 1027/1566/23 1034/1577/212 1026/1567/147 +f 1025/1569/22 1032/1571/209 1024/1578/145 +f 1023/1579/21 1030/1580/213 1022/1573/143 +f 1030/1581/213 1037/1582/214 1029/1583/210 +f 1029/1583/210 1043/1584/215 1036/1576/211 +f 1034/1577/212 1042/1585/34 1041/1586/216 +f 1032/1587/209 1040/1588/217 1039/1589/218 +f 1036/1576/211 1042/1585/34 1035/1565/207 +f 1033/1590/208 1041/1586/216 1040/1588/217 +f 1043/1584/215 1049/1591/219 1042/1585/34 +f 1040/1588/217 1048/1592/220 1047/1593/221 +f 1038/1594/222 1044/1595/223 1037/1582/214 +f 1037/1582/214 1050/1596/224 1043/1584/215 +f 1041/1586/216 1049/1591/219 1048/1592/220 +f 1039/1589/218 1047/1593/221 1046/1597/225 +f 1032/1587/209 1039/1589/218 1031/1598/28 +f 1039/1589/218 1046/1597/225 1031/1598/28 +f 1030/1581/213 1031/1599/28 1038/1594/222 +f 1038/1594/222 1031/1599/28 1045/1600/226 +f 1050/1596/224 1017/1601/202 1018/1555/201 +f 1049/1591/219 1018/1555/201 1019/1554/200 +f 1048/1592/220 1019/1554/200 1020/1558/204 +f 1047/1602/221 1020/1558/204 1014/1603/203 +f 1046/1604/225 1014/1603/203 1015/1605/206 +f 1001/1606/37 1046/1604/225 1015/1605/206 +f 1016/1607/205 1031/1608/28 1001/1609/37 +f 1044/1610/223 1016/1607/205 1017/1601/202 +f 1058/1611/145 1065/1612/187 1057/1613/21 +f 1056/1614/143 1063/1615/188 1055/1616/24 +f 1054/1617/148 1061/1618/37 1053/1619/23 +f 1052/1620/147 1059/1621/189 1051/1622/22 +f 1051/1622/22 1066/1623/190 1058/1611/145 +f 1057/1613/21 1064/1624/191 1056/1614/143 +f 1055/1616/24 1062/1625/192 1054/1617/148 +f 1053/1626/23 1060/1627/193 1052/1620/147 +f 1059/1628/189 1068/1629/194 1067/1630/195 +f 1066/1623/190 1067/1630/195 1073/1631/196 +f 1064/1624/191 1072/1632/31 1071/1633/197 +f 1063/1634/188 1069/1635/198 1062/1636/192 +f 1066/1623/190 1072/1632/31 1065/1612/187 +f 1064/1624/191 1070/1637/199 1063/1634/188 +f 1073/1631/196 1079/1638/200 1072/1632/31 +f 1071/1633/197 1077/1639/202 1070/1637/199 +f 1068/1629/194 1074/1640/203 1067/1630/195 +f 1067/1630/195 1080/1641/204 1073/1631/196 +f 1071/1633/197 1079/1638/200 1078/1642/201 +f 1069/1635/198 1077/1639/202 1076/1643/205 +f 1062/1636/192 1069/1635/198 1061/1644/37 +f 1069/1635/198 1076/1643/205 1061/1644/37 +f 1060/1645/193 1061/1646/37 1068/1629/194 +f 1068/1629/194 1061/1646/37 1075/1647/206 +f 1088/1648/148 1095/1649/207 1087/1650/23 +f 1086/1651/147 1093/1652/208 1085/1653/22 +f 1084/1654/145 1091/1655/28 1083/1656/21 +f 1082/1657/143 1089/1658/210 1081/1659/24 +f 1081/1659/24 1096/1660/211 1088/1648/148 +f 1087/1650/23 1094/1661/212 1086/1651/147 +f 1085/1653/22 1092/1662/209 1084/1654/145 +f 1083/1663/21 1090/1664/213 1082/1657/143 +f 1090/1665/213 1097/1666/214 1089/1667/210 +f 1089/1667/210 1103/1668/215 1096/1660/211 +f 1094/1661/212 1102/1669/34 1101/1670/216 +f 1092/1671/209 1100/1672/217 1099/1673/218 +f 1096/1660/211 1102/1669/34 1095/1649/207 +f 1093/1674/208 1101/1670/216 1100/1672/217 +f 1103/1668/215 1109/1675/219 1102/1669/34 +f 1100/1672/217 1108/1676/220 1107/1677/221 +f 1098/1678/222 1104/1679/223 1097/1666/214 +f 1103/1668/215 1104/1679/223 1110/1680/224 +f 1101/1670/216 1109/1675/219 1108/1676/220 +f 1100/1672/217 1106/1681/225 1099/1673/218 +f 1092/1671/209 1099/1673/218 1091/1682/28 +f 1099/1673/218 1106/1681/225 1091/1682/28 +f 1090/1665/213 1091/1683/28 1098/1678/222 +f 1098/1678/222 1091/1683/28 1105/1684/226 +f 1110/1680/224 1077/1685/202 1078/1642/201 +f 1079/1638/200 1110/1680/224 1078/1642/201 +f 1108/1676/220 1079/1638/200 1080/1641/204 +f 1107/1686/221 1080/1641/204 1074/1687/203 +f 1106/1688/225 1074/1687/203 1075/1689/206 +f 1061/1690/37 1106/1688/225 1075/1689/206 +f 1061/1691/37 1105/1692/226 1091/1693/28 +f 1104/1694/223 1076/1695/205 1077/1685/202 +f 1118/1696/145 1125/1697/187 1117/1698/21 +f 1116/1699/143 1123/1700/188 1115/1701/24 +f 1114/1702/148 1121/1703/37 1113/1704/23 +f 1112/1705/147 1119/1706/189 1111/1707/22 +f 1111/1707/22 1126/1708/190 1118/1696/145 +f 1117/1698/21 1124/1709/191 1116/1699/143 +f 1115/1701/24 1122/1710/192 1114/1702/148 +f 1113/1711/23 1120/1712/193 1112/1705/147 +f 1119/1713/189 1128/1714/194 1127/1715/195 +f 1126/1708/190 1127/1715/195 1133/1716/196 +f 1124/1709/191 1132/1717/31 1131/1718/197 +f 1123/1719/188 1129/1720/198 1122/1721/192 +f 1126/1708/190 1132/1717/31 1125/1697/187 +f 1124/1709/191 1130/1722/199 1123/1719/188 +f 1133/1716/196 1139/1723/200 1132/1717/31 +f 1131/1718/197 1137/1724/202 1130/1722/199 +f 1128/1714/194 1134/1725/203 1127/1715/195 +f 1127/1715/195 1140/1726/204 1133/1716/196 +f 1131/1718/197 1139/1723/200 1138/1727/201 +f 1129/1720/198 1137/1724/202 1136/1728/205 +f 1122/1721/192 1129/1720/198 1121/1729/37 +f 1129/1720/198 1136/1728/205 1121/1729/37 +f 1120/1730/193 1121/1731/37 1128/1714/194 +f 1128/1714/194 1121/1731/37 1135/1732/206 +f 1148/1733/148 1155/1734/207 1147/1735/23 +f 1146/1736/147 1153/1737/208 1145/1738/22 +f 1144/1739/145 1151/1740/28 1143/1741/21 +f 1142/1742/143 1149/1743/210 1141/1744/24 +f 1141/1744/24 1156/1745/211 1148/1733/148 +f 1147/1735/23 1154/1746/212 1146/1736/147 +f 1145/1738/22 1152/1747/209 1144/1739/145 +f 1143/1748/21 1150/1749/213 1142/1742/143 +f 1150/1750/213 1157/1751/214 1149/1752/210 +f 1149/1752/210 1163/1753/215 1156/1745/211 +f 1154/1746/212 1162/1754/34 1161/1755/216 +f 1152/1756/209 1160/1757/217 1159/1758/218 +f 1156/1745/211 1162/1754/34 1155/1734/207 +f 1153/1759/208 1161/1755/216 1160/1757/217 +f 1163/1753/215 1169/1760/219 1162/1754/34 +f 1160/1757/217 1168/1761/220 1167/1762/221 +f 1158/1763/222 1164/1764/223 1157/1751/214 +f 1157/1751/214 1170/1765/224 1163/1753/215 +f 1161/1755/216 1169/1760/219 1168/1761/220 +f 1159/1758/218 1167/1762/221 1166/1766/225 +f 1152/1756/209 1159/1758/218 1151/1767/28 +f 1159/1758/218 1166/1766/225 1151/1767/28 +f 1150/1750/213 1151/1768/28 1158/1763/222 +f 1158/1763/222 1151/1768/28 1165/1769/226 +f 1170/1765/224 1137/1770/202 1138/1727/201 +f 1169/1760/219 1138/1727/201 1139/1723/200 +f 1168/1761/220 1139/1723/200 1140/1726/204 +f 1167/1771/221 1140/1726/204 1134/1772/203 +f 1166/1773/225 1134/1772/203 1135/1774/206 +f 1151/1775/28 1135/1774/206 1121/1776/37 +f 1121/1777/37 1165/1778/226 1151/1779/28 +f 1164/1780/223 1136/1781/205 1137/1770/202 +f 1178/1782/145 1185/1783/187 1177/1784/21 +f 1176/1785/143 1183/1786/188 1175/1787/24 +f 1174/1788/148 1181/1789/37 1173/1790/23 +f 1172/1791/147 1179/1792/189 1171/1793/22 +f 1171/1793/22 1186/1794/190 1178/1782/145 +f 1177/1784/21 1184/1795/191 1176/1785/143 +f 1175/1787/24 1182/1796/192 1174/1788/148 +f 1173/1797/23 1180/1798/193 1172/1791/147 +f 1179/1799/189 1188/1800/194 1187/1801/195 +f 1186/1794/190 1187/1801/195 1193/1802/196 +f 1184/1795/191 1192/1803/31 1191/1804/197 +f 1183/1805/188 1189/1806/198 1182/1807/192 +f 1186/1794/190 1192/1803/31 1185/1783/187 +f 1184/1795/191 1190/1808/199 1183/1805/188 +f 1193/1802/196 1199/1809/200 1192/1803/31 +f 1190/1808/199 1198/1810/201 1197/1811/202 +f 1188/1800/194 1194/1812/203 1187/1801/195 +f 1187/1801/195 1200/1813/204 1193/1802/196 +f 1191/1804/197 1199/1809/200 1198/1810/201 +f 1189/1806/198 1197/1811/202 1196/1814/205 +f 1182/1807/192 1189/1806/198 1181/1815/37 +f 1189/1806/198 1196/1814/205 1181/1815/37 +f 1180/1816/193 1181/1817/37 1188/1800/194 +f 1188/1800/194 1181/1817/37 1195/1818/206 +f 1208/1819/148 1215/1820/207 1207/1821/23 +f 1206/1822/147 1213/1823/208 1205/1824/22 +f 1203/1825/21 1212/1826/209 1211/1827/28 +f 1202/1828/143 1209/1829/210 1201/1830/24 +f 1201/1830/24 1216/1831/211 1208/1819/148 +f 1207/1821/23 1214/1832/212 1206/1822/147 +f 1204/1833/145 1213/1823/208 1212/1826/209 +f 1203/1834/21 1210/1835/213 1202/1828/143 +f 1210/1836/213 1217/1837/214 1209/1838/210 +f 1209/1838/210 1223/1839/215 1216/1831/211 +f 1214/1832/212 1222/1840/34 1221/1841/216 +f 1212/1842/209 1220/1843/217 1219/1844/218 +f 1216/1831/211 1222/1840/34 1215/1820/207 +f 1213/1845/208 1221/1841/216 1220/1843/217 +f 1223/1839/215 1229/1846/219 1222/1840/34 +f 1220/1843/217 1228/1847/220 1227/1848/221 +f 1217/1837/214 1225/1849/226 1224/1850/223 +f 1217/1837/214 1230/1851/224 1223/1839/215 +f 1221/1841/216 1229/1846/219 1228/1847/220 +f 1220/1843/217 1226/1852/225 1219/1844/218 +f 1212/1842/209 1219/1844/218 1211/1853/28 +f 1219/1844/218 1226/1852/225 1211/1853/28 +f 1210/1836/213 1211/1854/28 1218/1855/222 +f 1218/1855/222 1211/1854/28 1225/1849/226 +f 1230/1851/224 1197/1856/202 1198/1810/201 +f 1199/1809/200 1230/1851/224 1198/1810/201 +f 1228/1847/220 1199/1809/200 1200/1813/204 +f 1227/1857/221 1200/1813/204 1194/1858/203 +f 1226/1859/225 1194/1858/203 1195/1860/206 +f 1181/1861/37 1226/1859/225 1195/1860/206 +f 1196/1862/205 1211/1863/28 1181/1864/37 +f 1224/1865/223 1196/1862/205 1197/1856/202 +f 1238/1866/145 1245/1867/187 1237/1868/21 +f 1236/1869/143 1243/1870/188 1235/1871/24 +f 1234/1872/148 1241/1873/37 1233/1874/23 +f 1232/1875/147 1239/1876/189 1231/1877/22 +f 1231/1877/22 1246/1878/190 1238/1866/145 +f 1237/1868/21 1244/1879/191 1236/1869/143 +f 1235/1871/24 1242/1880/192 1234/1872/148 +f 1233/1881/23 1240/1882/193 1232/1875/147 +f 1239/1883/189 1248/1884/194 1247/1885/195 +f 1246/1878/190 1247/1885/195 1253/1886/196 +f 1244/1879/191 1252/1887/31 1251/1888/197 +f 1243/1889/188 1249/1890/198 1242/1891/192 +f 1246/1878/190 1252/1887/31 1245/1867/187 +f 1244/1879/191 1250/1892/199 1243/1889/188 +f 1253/1886/196 1259/1893/200 1252/1887/31 +f 1250/1892/199 1258/1894/201 1257/1895/202 +f 1248/1884/194 1254/1896/203 1247/1885/195 +f 1247/1885/195 1260/1897/204 1253/1886/196 +f 1251/1888/197 1259/1893/200 1258/1894/201 +f 1249/1890/198 1257/1895/202 1256/1898/205 +f 1242/1891/192 1249/1890/198 1241/1899/37 +f 1249/1890/198 1256/1898/205 1241/1899/37 +f 1240/1900/193 1241/1901/37 1248/1884/194 +f 1248/1884/194 1241/1901/37 1255/1902/206 +f 1268/1903/148 1275/1904/207 1267/1905/23 +f 1266/1906/147 1273/1907/208 1265/1908/22 +f 1264/1909/145 1271/1910/28 1263/1911/21 +f 1262/1912/143 1269/1913/210 1261/1914/24 +f 1261/1914/24 1276/1915/211 1268/1903/148 +f 1267/1905/23 1274/1916/212 1266/1906/147 +f 1265/1908/22 1272/1917/209 1264/1909/145 +f 1263/1918/21 1270/1919/213 1262/1912/143 +f 1270/1920/213 1277/1921/214 1269/1922/210 +f 1269/1922/210 1283/1923/215 1276/1915/211 +f 1274/1916/212 1282/1924/34 1281/1925/216 +f 1272/1926/209 1280/1927/217 1279/1928/218 +f 1276/1915/211 1282/1924/34 1275/1904/207 +f 1273/1929/208 1281/1925/216 1280/1927/217 +f 1283/1923/215 1289/1930/219 1282/1924/34 +f 1280/1927/217 1288/1931/220 1287/1932/221 +f 1278/1933/222 1284/1934/223 1277/1921/214 +f 1277/1921/214 1290/1935/224 1283/1923/215 +f 1281/1925/216 1289/1930/219 1288/1931/220 +f 1280/1927/217 1286/1936/225 1279/1928/218 +f 1272/1926/209 1279/1928/218 1271/1937/28 +f 1279/1928/218 1286/1936/225 1271/1937/28 +f 1270/1920/213 1271/1938/28 1278/1933/222 +f 1278/1933/222 1271/1938/28 1285/1939/226 +f 1290/1935/224 1257/1940/202 1258/1894/201 +f 1289/1930/219 1258/1894/201 1259/1893/200 +f 1288/1931/220 1259/1893/200 1260/1897/204 +f 1287/1941/221 1260/1897/204 1254/1942/203 +f 1286/1943/225 1254/1942/203 1255/1944/206 +f 1241/1945/37 1286/1943/225 1255/1944/206 +f 1241/1946/37 1285/1947/226 1271/1948/28 +f 1284/1949/223 1256/1950/205 1257/1940/202 +f 210/339/25 212/338/27 211/423/27 +f 212/338/27 214/366/28 213/421/28 +f 214/366/28 216/364/29 215/419/29 +f 216/364/29 218/363/21 217/417/21 +f 218/363/21 220/362/30 219/416/30 +f 220/362/30 222/360/31 221/414/31 +f 222/360/31 224/358/32 223/412/32 +f 224/358/32 226/357/26 225/410/26 +f 226/355/26 228/353/33 227/407/33 +f 228/353/33 230/352/34 229/405/34 +f 230/352/34 232/349/35 231/403/35 +f 232/349/35 234/347/23 233/401/23 +f 234/347/23 236/345/36 235/431/36 +f 236/345/36 238/343/37 237/429/37 +f 238/343/37 240/340/38 239/426/38 +f 240/340/38 210/339/25 209/425/25 +f 244/337/39 243/873/49 250/865/40 +f 310/393/44 311/875/52 303/869/45 +f 354/866/42 249/868/43 250/865/40 +f 324/874/50 311/875/52 310/393/44 +f 325/870/47 317/872/48 311/875/52 +f 249/879/43 256/883/58 257/880/54 +f 332/881/55 324/874/50 318/397/51 +f 251/796/41 250/865/40 257/880/54 +f 332/881/55 338/876/53 325/878/47 +f 256/887/58 263/891/64 264/888/60 +f 345/889/61 332/881/55 331/399/56 +f 258/368/57 257/880/54 264/888/60 +f 345/889/61 346/884/59 338/886/53 +f 263/892/64 270/898/68 271/893/65 +f 265/367/63 264/888/60 271/893/65 +f 355/899/69 345/889/61 339/400/62 +f 271/893/65 270/902/68 277/900/71 +f 356/894/66 346/896/59 345/889/61 +f 272/365/67 271/893/65 278/901/72 +f 370/904/74 356/907/66 355/899/69 +f 246/905/75 355/899/69 352/370/70 +f 279/361/73 278/901/72 285/908/77 +f 252/373/27 357/369/25 359/442/25 +f 259/375/28 252/373/27 253/441/27 +f 278/901/72 277/909/71 284/911/79 +f 266/377/29 259/375/28 260/438/28 +f 285/908/77 292/915/82 293/356/80 +f 273/379/21 266/377/29 267/436/29 +f 280/381/30 273/379/21 274/433/21 +f 284/912/79 291/914/81 292/915/82 +f 287/384/31 280/381/30 281/463/30 +f 293/356/80 292/915/82 299/916/83 +f 294/385/32 287/384/31 288/461/31 +f 301/387/26 294/385/32 295/458/32 +f 291/917/81 298/919/85 299/916/83 +f 308/390/33 301/389/26 302/457/26 +f 299/920/83 306/924/88 307/351/86 +f 315/392/34 308/390/33 309/456/33 +f 322/394/35 315/392/34 316/455/34 +f 298/921/85 305/923/87 306/924/88 +f 306/924/88 313/928/91 314/350/89 +f 329/395/23 322/394/35 323/452/35 +f 336/396/36 329/395/23 330/450/23 +f 305/925/87 312/927/90 313/928/91 +f 343/398/37 336/396/36 337/448/36 +f 350/371/38 343/398/37 344/446/37 +f 357/369/25 350/371/38 351/444/38 +f 312/929/90 319/931/92 320/932/93 +f 314/350/89 313/928/91 320/932/93 +f 319/933/92 326/936/97 327/934/95 +f 320/932/93 327/934/95 328/346/96 +f 327/934/95 326/939/97 333/937/98 +f 327/934/95 334/938/99 335/344/100 +f 333/941/98 340/944/103 341/942/101 +f 334/938/99 341/942/101 342/341/102 +f 341/942/101 340/947/103 347/945/104 +f 341/942/101 348/946/105 349/342/106 +f 347/949/104 354/951/42 243/873/49 +f 348/946/105 243/873/49 244/337/39 +f 317/952/48 304/954/107 303/869/45 +f 297/391/46 303/869/45 290/955/108 +f 304/956/107 296/958/110 290/955/108 +f 289/388/109 290/955/108 282/959/111 +f 290/955/108 296/960/110 283/962/113 +f 282/963/111 269/967/116 268/383/114 +f 282/963/111 283/964/113 275/966/115 +f 269/967/116 261/971/119 255/382/117 +f 269/967/116 275/968/115 262/970/118 +f 261/971/119 262/972/118 254/974/120 +f 261/971/119 248/975/121 247/380/122 +f 254/976/120 245/979/125 242/977/123 +f 248/975/121 242/977/123 241/378/124 +f 245/980/125 360/983/128 361/981/126 +f 242/977/123 361/981/126 362/376/127 +f 361/981/126 360/986/128 363/984/129 +f 361/981/126 364/985/130 365/374/131 +f 363/988/129 366/991/134 367/989/132 +f 364/985/130 367/989/132 368/372/133 +f 367/989/132 366/993/134 370/992/74 +f 367/989/132 246/905/75 358/798/76 +f 384/430/36 400/447/36 399/449/23 +f 377/413/31 393/464/31 392/465/30 +f 385/428/37 401/445/37 400/447/36 +f 378/411/32 394/462/32 393/464/31 +f 386/427/38 402/443/38 401/445/37 +f 379/800/26 395/459/26 394/462/32 +f 372/801/27 388/439/27 387/440/25 +f 371/424/25 387/440/25 402/443/38 +f 380/406/33 396/454/33 395/802/26 +f 373/422/28 389/437/28 388/439/27 +f 381/404/34 397/453/34 396/454/33 +f 374/420/29 390/434/29 389/437/28 +f 382/402/35 398/451/35 397/453/34 +f 375/418/21 391/435/21 390/434/29 +f 383/432/23 399/449/23 398/451/35 +f 376/415/30 392/465/30 391/435/21 +f 420/995/26 444/489/26 443/493/135 +f 434/997/136 458/486/136 448/485/22 +f 413/999/137 437/808/137 435/479/138 +f 427/1001/139 451/502/139 452/500/140 +f 421/1003/139 445/810/139 444/489/26 +f 414/1004/25 438/476/25 437/478/137 +f 428/1002/140 452/500/140 453/812/24 +f 422/1007/140 446/484/140 445/488/139 +f 415/1009/141 439/474/141 438/476/25 +f 429/1010/24 453/497/24 454/496/138 +f 411/1012/24 436/809/24 446/484/140 +f 416/1013/136 440/501/136 439/503/141 +f 430/1011/138 454/496/138 455/495/137 +f 423/1016/22 448/482/22 447/481/142 +f 417/1018/22 441/499/22 440/501/136 +f 431/1019/137 455/492/137 456/491/25 +f 424/1017/142 447/481/142 449/480/135 +f 418/1022/142 442/494/142 441/498/22 +f 432/1020/25 456/491/25 457/490/141 +f 425/1025/135 449/477/135 450/475/26 +f 419/1027/135 443/811/135 442/494/142 +f 433/1028/141 457/487/141 458/486/136 +f 412/1000/138 435/479/138 436/483/24 +f 426/1026/26 450/475/26 451/807/139 +f 572/1031/26 596/643/26 595/646/139 +f 586/1033/138 610/640/138 600/639/24 +f 565/1035/141 589/838/141 587/633/136 +f 579/1037/135 603/656/135 604/655/142 +f 573/1039/135 597/840/135 596/643/26 +f 566/1040/25 590/630/25 589/632/141 +f 580/1038/142 604/655/142 605/654/22 +f 574/1043/142 598/638/142 597/641/135 +f 567/1045/137 591/628/137 590/630/25 +f 581/1046/22 605/651/22 606/649/136 +f 563/1048/22 588/839/22 598/638/142 +f 568/1049/138 592/653/138 591/657/137 +f 582/1047/136 606/649/136 607/841/141 +f 575/1052/24 600/637/24 599/635/140 +f 569/1054/24 593/842/24 592/653/138 +f 583/1055/141 607/647/141 608/645/25 +f 576/1053/140 599/635/140 601/634/139 +f 570/1058/140 594/650/140 593/652/24 +f 584/1056/25 608/645/25 609/644/137 +f 577/1061/139 601/631/139 602/629/26 +f 571/1063/139 595/648/139 594/650/140 +f 585/1064/137 609/642/137 610/640/138 +f 564/1036/136 587/633/136 588/636/22 +f 578/1062/26 602/629/26 603/837/135 +f 650/1067/143 658/1079/150 657/1068/144 +f 648/1070/145 656/1080/151 655/1071/146 +f 646/1073/147 654/1081/152 653/1074/34 +f 644/1076/148 652/1083/153 651/1077/149 +f 643/1078/24 651/1077/149 658/1079/150 +f 649/1069/21 657/1068/144 656/1080/151 +f 647/1072/22 655/1071/146 654/1081/152 +f 645/1082/23 653/1951/34 652/1083/153 +f 651/1084/149 652/1102/153 660/1085/154 +f 658/1079/150 651/1084/149 659/1086/155 +f 656/1080/151 657/1068/144 664/1088/28 +f 655/1090/146 662/1093/159 661/1091/158 +f 658/1079/150 665/1087/156 664/1088/28 +f 656/1080/151 663/1089/157 662/1093/159 +f 665/1087/156 672/1099/165 671/1094/160 +f 662/1093/159 663/1089/157 670/1095/161 +f 659/1086/155 660/1085/154 667/1097/163 +f 659/1086/155 666/1098/164 672/1099/165 +f 664/1088/28 671/1094/160 670/1095/161 +f 662/1093/159 669/1096/162 668/1100/166 +f 680/1104/147 688/1116/170 687/1105/167 +f 678/1107/148 686/1117/171 685/1108/168 +f 676/1110/143 684/1118/172 683/1111/31 +f 674/1113/145 682/1120/173 681/1114/169 +f 673/1115/22 681/1114/169 688/1116/170 +f 679/1106/23 687/1105/167 686/1117/171 +f 677/1109/24 685/1108/168 684/1118/172 +f 675/1119/21 683/1952/31 682/1120/173 +f 682/1121/173 690/1140/186 689/1122/174 +f 688/1116/170 681/1123/169 689/1122/174 +f 686/1117/171 687/1105/167 694/1125/37 +f 684/1127/172 685/1130/168 692/1128/177 +f 688/1116/170 695/1124/175 694/1125/37 +f 685/1130/168 686/1117/171 693/1126/176 +f 695/1124/175 702/1136/184 701/1131/179 +f 692/1128/177 693/1126/176 700/1132/180 +f 689/1122/174 690/1140/186 697/1134/182 +f 689/1122/174 696/1135/183 702/1136/184 +f 693/1126/176 694/1125/37 701/1131/179 +f 691/1129/178 692/1128/177 699/1133/181 +f 702/1136/184 696/1150/183 669/1141/162 +f 671/1094/160 701/1131/179 702/1136/184 +f 700/1132/180 701/1131/179 671/1094/160 +f 699/1142/181 700/1132/180 672/1099/165 +f 698/1144/185 699/1142/181 666/1143/164 +f 653/1146/34 683/1953/31 698/1144/185 +f 653/1147/34 668/1151/166 697/1148/182 +f 696/1150/183 697/1148/182 668/1151/166 +f 712/1152/37 719/1164/37 720/1153/25 +f 718/1155/28 711/1154/25 720/1153/25 +f 716/1157/31 717/1165/21 725/1158/21 +f 715/1160/26 723/1954/26 722/1161/34 +f 713/1163/23 721/1168/23 719/1164/37 +f 717/1165/21 718/1155/28 726/1156/28 +f 716/1157/31 724/1159/31 723/1166/26 +f 714/1162/34 722/1161/34 721/1168/23 +f 728/1169/28 735/1181/28 736/1170/25 +f 727/1171/25 736/1170/25 742/1172/37 +f 732/1174/34 733/1182/23 741/1175/23 +f 731/1177/26 739/1955/26 738/1178/31 +f 729/1180/21 737/1185/21 735/1181/28 +f 733/1182/23 734/1173/37 742/1172/37 +f 732/1174/34 740/1176/34 739/1183/26 +f 730/1179/31 738/1178/31 737/1185/21 +f 758/1186/143 766/1198/150 765/1187/144 +f 756/1189/145 764/1199/151 763/1190/146 +f 754/1192/147 762/1200/152 761/1193/34 +f 752/1195/148 760/1202/153 759/1196/149 +f 751/1197/24 759/1196/149 766/1198/150 +f 757/1188/21 765/1187/144 764/1199/151 +f 755/1191/22 763/1190/146 762/1200/152 +f 753/1201/23 761/1956/34 760/1202/153 +f 759/1203/149 760/1221/153 768/1204/154 +f 766/1198/150 759/1203/149 767/1205/155 +f 764/1199/151 765/1187/144 772/1207/28 +f 763/1209/146 770/1212/159 769/1210/158 +f 766/1198/150 773/1206/156 772/1207/28 +f 764/1199/151 771/1208/157 770/1212/159 +f 773/1206/156 780/1218/165 779/1213/160 +f 770/1212/159 771/1208/157 778/1214/161 +f 767/1205/155 768/1204/154 775/1216/163 +f 767/1205/155 774/1217/164 780/1218/165 +f 771/1208/157 772/1207/28 779/1213/160 +f 770/1212/159 777/1215/162 776/1219/166 +f 788/1223/147 796/1235/170 795/1224/167 +f 786/1226/148 794/1236/171 793/1227/168 +f 784/1229/143 792/1237/172 791/1230/31 +f 782/1232/145 790/1239/173 789/1233/169 +f 781/1234/22 789/1233/169 796/1235/170 +f 787/1225/23 795/1224/167 794/1236/171 +f 785/1228/24 793/1227/168 792/1237/172 +f 783/1238/21 791/1957/31 790/1239/173 +f 790/1240/173 798/1259/186 797/1241/174 +f 789/1242/169 797/1241/174 803/1243/175 +f 794/1236/171 795/1224/167 802/1244/37 +f 792/1246/172 793/1249/168 800/1247/177 +f 796/1235/170 803/1243/175 802/1244/37 +f 793/1249/168 794/1236/171 801/1245/176 +f 803/1243/175 810/1255/184 809/1250/179 +f 800/1247/177 801/1245/176 808/1251/180 +f 797/1241/174 798/1259/186 805/1253/182 +f 797/1241/174 804/1254/183 810/1255/184 +f 801/1245/176 802/1244/37 809/1250/179 +f 800/1247/177 807/1252/181 806/1256/185 +f 810/1255/184 804/1269/183 777/1260/162 +f 779/1213/160 809/1250/179 810/1255/184 +f 808/1251/180 809/1250/179 779/1213/160 +f 807/1261/181 808/1251/180 780/1218/165 +f 806/1263/185 807/1261/181 774/1262/164 +f 761/1265/34 791/1958/31 806/1263/185 +f 761/1266/34 776/1270/166 805/1267/182 +f 804/1269/183 805/1267/182 776/1270/166 +f 818/1271/143 826/1283/150 825/1272/144 +f 816/1274/145 824/1284/151 823/1275/146 +f 814/1277/147 822/1285/152 821/1278/34 +f 812/1280/148 820/1287/153 819/1281/149 +f 811/1282/24 819/1281/149 826/1283/150 +f 817/1273/21 825/1272/144 824/1284/151 +f 815/1276/22 823/1275/146 822/1285/152 +f 813/1286/23 821/1959/34 820/1287/153 +f 819/1288/149 820/1305/153 828/1289/154 +f 826/1283/150 819/1288/149 827/1290/155 +f 824/1284/151 825/1272/144 832/1292/28 +f 823/1294/146 830/1297/159 829/1295/158 +f 825/1272/144 826/1283/150 833/1291/156 +f 824/1284/151 831/1293/157 830/1297/159 +f 833/1291/156 840/1302/165 839/1298/160 +f 830/1297/159 831/1293/157 838/1299/161 +f 828/1289/154 835/1307/163 834/1301/164 +f 827/1290/155 834/1301/164 840/1302/165 +f 831/1293/157 832/1292/28 839/1298/160 +f 829/1295/158 830/1297/159 837/1300/162 +f 848/1308/147 856/1320/170 855/1309/167 +f 846/1311/148 854/1321/171 853/1312/168 +f 844/1314/143 852/1322/172 851/1315/31 +f 842/1317/145 850/1324/173 849/1318/169 +f 841/1319/22 849/1318/169 856/1320/170 +f 847/1310/23 855/1309/167 854/1321/171 +f 845/1313/24 853/1312/168 852/1322/172 +f 843/1323/21 851/1960/31 850/1324/173 +f 850/1325/173 858/1338/186 857/1326/174 +f 849/1327/169 857/1326/174 863/1328/175 +f 854/1321/171 855/1309/167 862/1329/37 +f 852/1331/172 853/1334/168 860/1332/177 +f 856/1320/170 863/1328/175 862/1329/37 +f 853/1334/168 854/1321/171 861/1330/176 +f 863/1328/175 870/1340/184 869/1335/179 +f 860/1332/177 861/1330/176 868/1336/180 +f 858/1338/186 865/1344/182 864/1339/183 +f 857/1326/174 864/1339/183 870/1340/184 +f 861/1330/176 862/1329/37 869/1335/179 +f 859/1333/178 860/1332/177 867/1337/181 +f 870/1340/184 864/1355/183 837/1345/162 +f 839/1298/160 869/1335/179 870/1340/184 +f 868/1336/180 869/1335/179 839/1298/160 +f 867/1346/181 868/1336/180 840/1302/165 +f 866/1348/185 867/1346/181 834/1347/164 +f 851/1350/31 866/1348/185 835/1349/163 +f 821/1352/34 836/1356/166 865/1353/182 +f 864/1355/183 865/1353/182 836/1356/166 +f 878/1357/143 886/1369/150 885/1358/144 +f 876/1360/145 884/1370/151 883/1361/146 +f 874/1363/147 882/1371/152 881/1364/34 +f 872/1366/148 880/1373/153 879/1367/149 +f 871/1368/24 879/1367/149 886/1369/150 +f 877/1359/21 885/1358/144 884/1370/151 +f 875/1362/22 883/1361/146 882/1371/152 +f 873/1372/23 881/1961/34 880/1373/153 +f 879/1374/149 880/1391/153 888/1375/154 +f 886/1369/150 879/1374/149 887/1376/155 +f 885/1358/144 892/1382/28 891/1378/157 +f 883/1379/146 890/1383/159 889/1380/158 +f 886/1369/150 893/1377/156 892/1382/28 +f 884/1370/151 891/1378/157 890/1383/159 +f 893/1377/156 900/1388/165 899/1384/160 +f 890/1383/159 891/1378/157 898/1385/161 +f 888/1375/154 895/1393/163 894/1387/164 +f 887/1376/155 894/1387/164 900/1388/165 +f 891/1378/157 892/1382/28 899/1384/160 +f 889/1380/158 890/1383/159 897/1386/162 +f 908/1394/147 916/1406/170 915/1395/167 +f 906/1397/148 914/1407/171 913/1398/168 +f 904/1400/143 912/1408/172 911/1401/31 +f 902/1403/145 910/1410/173 909/1404/169 +f 901/1405/22 909/1404/169 916/1406/170 +f 907/1396/23 915/1395/167 914/1407/171 +f 905/1399/24 913/1398/168 912/1408/172 +f 903/1409/21 911/1962/31 910/1410/173 +f 910/1411/173 918/1424/186 917/1412/174 +f 909/1413/169 917/1412/174 923/1414/175 +f 914/1407/171 915/1395/167 922/1415/37 +f 912/1417/172 913/1420/168 920/1418/177 +f 916/1406/170 923/1414/175 922/1415/37 +f 913/1420/168 914/1407/171 921/1416/176 +f 923/1414/175 930/1426/184 929/1421/179 +f 920/1418/177 921/1416/176 928/1422/180 +f 918/1424/186 925/1430/182 924/1425/183 +f 917/1412/174 924/1425/183 930/1426/184 +f 921/1416/176 922/1415/37 929/1421/179 +f 920/1418/177 927/1423/181 926/1427/185 +f 930/1426/184 924/1440/183 897/1431/162 +f 899/1384/160 929/1421/179 930/1426/184 +f 928/1422/180 929/1421/179 899/1384/160 +f 927/1432/181 928/1422/180 900/1388/165 +f 926/1434/185 927/1432/181 894/1433/164 +f 881/1436/34 911/1963/31 926/1434/185 +f 896/1437/166 925/1964/182 911/1438/31 +f 924/1440/183 925/1964/182 896/1437/166 +f 938/1441/143 946/1453/150 945/1442/144 +f 936/1444/145 944/1454/151 943/1445/146 +f 934/1447/147 942/1455/152 941/1448/34 +f 932/1450/148 940/1457/153 939/1451/149 +f 931/1452/24 939/1451/149 946/1453/150 +f 937/1443/21 945/1442/144 944/1454/151 +f 935/1446/22 943/1445/146 942/1455/152 +f 933/1456/23 941/1965/34 940/1457/153 +f 939/1458/149 940/1476/153 948/1459/154 +f 946/1453/150 939/1458/149 947/1460/155 +f 944/1454/151 945/1442/144 952/1462/28 +f 943/1464/146 950/1467/159 949/1465/158 +f 946/1453/150 953/1461/156 952/1462/28 +f 944/1454/151 951/1463/157 950/1467/159 +f 953/1461/156 960/1473/165 959/1468/160 +f 950/1467/159 951/1463/157 958/1469/161 +f 947/1460/155 948/1459/154 955/1471/163 +f 947/1460/155 954/1472/164 960/1473/165 +f 951/1463/157 952/1462/28 959/1468/160 +f 950/1467/159 957/1470/162 956/1474/166 +f 968/1478/147 976/1490/170 975/1479/167 +f 966/1481/148 974/1491/171 973/1482/168 +f 964/1484/143 972/1492/172 971/1485/31 +f 962/1487/145 970/1494/173 969/1488/169 +f 961/1489/22 969/1488/169 976/1490/170 +f 967/1480/23 975/1479/167 974/1491/171 +f 965/1483/24 973/1482/168 972/1492/172 +f 963/1493/21 971/1966/31 970/1494/173 +f 970/1495/173 978/1514/186 977/1496/174 +f 969/1497/169 977/1496/174 983/1498/175 +f 974/1491/171 975/1479/167 982/1499/37 +f 972/1501/172 973/1504/168 980/1502/177 +f 976/1490/170 983/1498/175 982/1499/37 +f 973/1504/168 974/1491/171 981/1500/176 +f 983/1498/175 990/1510/184 989/1505/179 +f 980/1502/177 981/1500/176 988/1506/180 +f 977/1496/174 978/1514/186 985/1508/182 +f 977/1496/174 984/1509/183 990/1510/184 +f 981/1500/176 982/1499/37 989/1505/179 +f 980/1502/177 987/1507/181 986/1511/185 +f 990/1510/184 984/1525/183 957/1515/162 +f 959/1468/160 989/1505/179 990/1510/184 +f 988/1506/180 989/1505/179 959/1468/160 +f 987/1516/181 988/1506/180 960/1473/165 +f 986/1518/185 987/1516/181 954/1517/164 +f 971/1520/31 986/1518/185 955/1519/163 +f 941/1522/34 956/1526/166 985/1523/182 +f 984/1525/183 985/1523/182 956/1526/166 +f 998/1527/145 1006/1539/190 1005/1528/187 +f 996/1530/143 1004/1540/191 1003/1531/188 +f 994/1533/148 1002/1541/192 1001/1534/37 +f 992/1536/147 1000/1543/193 999/1537/189 +f 991/1538/22 999/1537/189 1006/1539/190 +f 997/1529/21 1005/1528/187 1004/1540/191 +f 995/1532/24 1003/1531/188 1002/1541/192 +f 993/1542/23 1001/1967/37 1000/1543/193 +f 999/1544/189 1000/1561/193 1008/1545/194 +f 1006/1539/190 999/1544/189 1007/1546/195 +f 1004/1540/191 1005/1528/187 1012/1548/31 +f 1003/1550/188 1010/1553/199 1009/1551/198 +f 1006/1539/190 1013/1547/196 1012/1548/31 +f 1004/1540/191 1011/1549/197 1010/1553/199 +f 1013/1547/196 1020/1558/204 1019/1554/200 +f 1010/1553/199 1011/1549/197 1018/1555/201 +f 1008/1545/194 1015/1563/206 1014/1557/203 +f 1007/1546/195 1014/1557/203 1020/1558/204 +f 1011/1549/197 1012/1548/31 1019/1554/200 +f 1009/1551/198 1010/1553/199 1017/1556/202 +f 1028/1564/148 1036/1576/211 1035/1565/207 +f 1026/1567/147 1034/1577/212 1033/1568/208 +f 1023/1570/21 1024/1578/145 1032/1571/209 +f 1022/1573/143 1030/1580/213 1029/1574/210 +f 1021/1575/24 1029/1574/210 1036/1576/211 +f 1027/1566/23 1035/1565/207 1034/1577/212 +f 1025/1569/22 1033/1568/208 1032/1571/209 +f 1023/1579/21 1031/1968/28 1030/1580/213 +f 1030/1581/213 1038/1594/222 1037/1582/214 +f 1029/1583/210 1037/1582/214 1043/1584/215 +f 1034/1577/212 1035/1565/207 1042/1585/34 +f 1032/1587/209 1033/1590/208 1040/1588/217 +f 1036/1576/211 1043/1584/215 1042/1585/34 +f 1033/1590/208 1034/1577/212 1041/1586/216 +f 1043/1584/215 1050/1596/224 1049/1591/219 +f 1040/1588/217 1041/1586/216 1048/1592/220 +f 1038/1594/222 1045/1600/226 1044/1595/223 +f 1037/1582/214 1044/1595/223 1050/1596/224 +f 1041/1586/216 1042/1585/34 1049/1591/219 +f 1039/1589/218 1040/1588/217 1047/1593/221 +f 1050/1596/224 1044/1610/223 1017/1601/202 +f 1049/1591/219 1050/1596/224 1018/1555/201 +f 1048/1592/220 1049/1591/219 1019/1554/200 +f 1047/1602/221 1048/1592/220 1020/1558/204 +f 1046/1604/225 1047/1602/221 1014/1603/203 +f 1001/1606/37 1031/1969/28 1046/1604/225 +f 1016/1607/205 1045/1970/226 1031/1608/28 +f 1044/1610/223 1045/1970/226 1016/1607/205 +f 1058/1611/145 1066/1623/190 1065/1612/187 +f 1056/1614/143 1064/1624/191 1063/1615/188 +f 1054/1617/148 1062/1625/192 1061/1618/37 +f 1052/1620/147 1060/1627/193 1059/1621/189 +f 1051/1622/22 1059/1621/189 1066/1623/190 +f 1057/1613/21 1065/1612/187 1064/1624/191 +f 1055/1616/24 1063/1615/188 1062/1625/192 +f 1053/1626/23 1061/1971/37 1060/1627/193 +f 1059/1628/189 1060/1645/193 1068/1629/194 +f 1066/1623/190 1059/1628/189 1067/1630/195 +f 1064/1624/191 1065/1612/187 1072/1632/31 +f 1063/1634/188 1070/1637/199 1069/1635/198 +f 1066/1623/190 1073/1631/196 1072/1632/31 +f 1064/1624/191 1071/1633/197 1070/1637/199 +f 1073/1631/196 1080/1641/204 1079/1638/200 +f 1071/1633/197 1078/1642/201 1077/1639/202 +f 1068/1629/194 1075/1647/206 1074/1640/203 +f 1067/1630/195 1074/1640/203 1080/1641/204 +f 1071/1633/197 1072/1632/31 1079/1638/200 +f 1069/1635/198 1070/1637/199 1077/1639/202 +f 1088/1648/148 1096/1660/211 1095/1649/207 +f 1086/1651/147 1094/1661/212 1093/1652/208 +f 1084/1654/145 1092/1662/209 1091/1655/28 +f 1082/1657/143 1090/1664/213 1089/1658/210 +f 1081/1659/24 1089/1658/210 1096/1660/211 +f 1087/1650/23 1095/1649/207 1094/1661/212 +f 1085/1653/22 1093/1652/208 1092/1662/209 +f 1083/1663/21 1091/1972/28 1090/1664/213 +f 1090/1665/213 1098/1678/222 1097/1666/214 +f 1089/1667/210 1097/1666/214 1103/1668/215 +f 1094/1661/212 1095/1649/207 1102/1669/34 +f 1092/1671/209 1093/1674/208 1100/1672/217 +f 1096/1660/211 1103/1668/215 1102/1669/34 +f 1093/1674/208 1094/1661/212 1101/1670/216 +f 1103/1668/215 1110/1680/224 1109/1675/219 +f 1100/1672/217 1101/1670/216 1108/1676/220 +f 1098/1678/222 1105/1684/226 1104/1679/223 +f 1103/1668/215 1097/1666/214 1104/1679/223 +f 1101/1670/216 1102/1669/34 1109/1675/219 +f 1100/1672/217 1107/1677/221 1106/1681/225 +f 1110/1680/224 1104/1694/223 1077/1685/202 +f 1079/1638/200 1109/1675/219 1110/1680/224 +f 1108/1676/220 1109/1675/219 1079/1638/200 +f 1107/1686/221 1108/1676/220 1080/1641/204 +f 1106/1688/225 1107/1686/221 1074/1687/203 +f 1061/1690/37 1091/1973/28 1106/1688/225 +f 1061/1691/37 1076/1695/205 1105/1692/226 +f 1104/1694/223 1105/1692/226 1076/1695/205 +f 1118/1696/145 1126/1708/190 1125/1697/187 +f 1116/1699/143 1124/1709/191 1123/1700/188 +f 1114/1702/148 1122/1710/192 1121/1703/37 +f 1112/1705/147 1120/1712/193 1119/1706/189 +f 1111/1707/22 1119/1706/189 1126/1708/190 +f 1117/1698/21 1125/1697/187 1124/1709/191 +f 1115/1701/24 1123/1700/188 1122/1710/192 +f 1113/1711/23 1121/1974/37 1120/1712/193 +f 1119/1713/189 1120/1730/193 1128/1714/194 +f 1126/1708/190 1119/1713/189 1127/1715/195 +f 1124/1709/191 1125/1697/187 1132/1717/31 +f 1123/1719/188 1130/1722/199 1129/1720/198 +f 1126/1708/190 1133/1716/196 1132/1717/31 +f 1124/1709/191 1131/1718/197 1130/1722/199 +f 1133/1716/196 1140/1726/204 1139/1723/200 +f 1131/1718/197 1138/1727/201 1137/1724/202 +f 1128/1714/194 1135/1732/206 1134/1725/203 +f 1127/1715/195 1134/1725/203 1140/1726/204 +f 1131/1718/197 1132/1717/31 1139/1723/200 +f 1129/1720/198 1130/1722/199 1137/1724/202 +f 1148/1733/148 1156/1745/211 1155/1734/207 +f 1146/1736/147 1154/1746/212 1153/1737/208 +f 1144/1739/145 1152/1747/209 1151/1740/28 +f 1142/1742/143 1150/1749/213 1149/1743/210 +f 1141/1744/24 1149/1743/210 1156/1745/211 +f 1147/1735/23 1155/1734/207 1154/1746/212 +f 1145/1738/22 1153/1737/208 1152/1747/209 +f 1143/1748/21 1151/1975/28 1150/1749/213 +f 1150/1750/213 1158/1763/222 1157/1751/214 +f 1149/1752/210 1157/1751/214 1163/1753/215 +f 1154/1746/212 1155/1734/207 1162/1754/34 +f 1152/1756/209 1153/1759/208 1160/1757/217 +f 1156/1745/211 1163/1753/215 1162/1754/34 +f 1153/1759/208 1154/1746/212 1161/1755/216 +f 1163/1753/215 1170/1765/224 1169/1760/219 +f 1160/1757/217 1161/1755/216 1168/1761/220 +f 1158/1763/222 1165/1769/226 1164/1764/223 +f 1157/1751/214 1164/1764/223 1170/1765/224 +f 1161/1755/216 1162/1754/34 1169/1760/219 +f 1159/1758/218 1160/1757/217 1167/1762/221 +f 1170/1765/224 1164/1780/223 1137/1770/202 +f 1169/1760/219 1170/1765/224 1138/1727/201 +f 1168/1761/220 1169/1760/219 1139/1723/200 +f 1167/1771/221 1168/1761/220 1140/1726/204 +f 1166/1773/225 1167/1771/221 1134/1772/203 +f 1151/1775/28 1166/1773/225 1135/1774/206 +f 1121/1777/37 1136/1781/205 1165/1778/226 +f 1164/1780/223 1165/1778/226 1136/1781/205 +f 1178/1782/145 1186/1794/190 1185/1783/187 +f 1176/1785/143 1184/1795/191 1183/1786/188 +f 1174/1788/148 1182/1796/192 1181/1789/37 +f 1172/1791/147 1180/1798/193 1179/1792/189 +f 1171/1793/22 1179/1792/189 1186/1794/190 +f 1177/1784/21 1185/1783/187 1184/1795/191 +f 1175/1787/24 1183/1786/188 1182/1796/192 +f 1173/1797/23 1181/1976/37 1180/1798/193 +f 1179/1799/189 1180/1816/193 1188/1800/194 +f 1186/1794/190 1179/1799/189 1187/1801/195 +f 1184/1795/191 1185/1783/187 1192/1803/31 +f 1183/1805/188 1190/1808/199 1189/1806/198 +f 1186/1794/190 1193/1802/196 1192/1803/31 +f 1184/1795/191 1191/1804/197 1190/1808/199 +f 1193/1802/196 1200/1813/204 1199/1809/200 +f 1190/1808/199 1191/1804/197 1198/1810/201 +f 1188/1800/194 1195/1818/206 1194/1812/203 +f 1187/1801/195 1194/1812/203 1200/1813/204 +f 1191/1804/197 1192/1803/31 1199/1809/200 +f 1189/1806/198 1190/1808/199 1197/1811/202 +f 1208/1819/148 1216/1831/211 1215/1820/207 +f 1206/1822/147 1214/1832/212 1213/1823/208 +f 1203/1825/21 1204/1833/145 1212/1826/209 +f 1202/1828/143 1210/1835/213 1209/1829/210 +f 1201/1830/24 1209/1829/210 1216/1831/211 +f 1207/1821/23 1215/1820/207 1214/1832/212 +f 1204/1833/145 1205/1824/22 1213/1823/208 +f 1203/1834/21 1211/1977/28 1210/1835/213 +f 1210/1836/213 1218/1855/222 1217/1837/214 +f 1209/1838/210 1217/1837/214 1223/1839/215 +f 1214/1832/212 1215/1820/207 1222/1840/34 +f 1212/1842/209 1213/1845/208 1220/1843/217 +f 1216/1831/211 1223/1839/215 1222/1840/34 +f 1213/1845/208 1214/1832/212 1221/1841/216 +f 1223/1839/215 1230/1851/224 1229/1846/219 +f 1220/1843/217 1221/1841/216 1228/1847/220 +f 1217/1837/214 1218/1855/222 1225/1849/226 +f 1217/1837/214 1224/1850/223 1230/1851/224 +f 1221/1841/216 1222/1840/34 1229/1846/219 +f 1220/1843/217 1227/1848/221 1226/1852/225 +f 1230/1851/224 1224/1865/223 1197/1856/202 +f 1199/1809/200 1229/1846/219 1230/1851/224 +f 1228/1847/220 1229/1846/219 1199/1809/200 +f 1227/1857/221 1228/1847/220 1200/1813/204 +f 1226/1859/225 1227/1857/221 1194/1858/203 +f 1181/1861/37 1211/1978/28 1226/1859/225 +f 1196/1862/205 1225/1979/226 1211/1863/28 +f 1224/1865/223 1225/1979/226 1196/1862/205 +f 1238/1866/145 1246/1878/190 1245/1867/187 +f 1236/1869/143 1244/1879/191 1243/1870/188 +f 1234/1872/148 1242/1880/192 1241/1873/37 +f 1232/1875/147 1240/1882/193 1239/1876/189 +f 1231/1877/22 1239/1876/189 1246/1878/190 +f 1237/1868/21 1245/1867/187 1244/1879/191 +f 1235/1871/24 1243/1870/188 1242/1880/192 +f 1233/1881/23 1241/1980/37 1240/1882/193 +f 1239/1883/189 1240/1900/193 1248/1884/194 +f 1246/1878/190 1239/1883/189 1247/1885/195 +f 1244/1879/191 1245/1867/187 1252/1887/31 +f 1243/1889/188 1250/1892/199 1249/1890/198 +f 1246/1878/190 1253/1886/196 1252/1887/31 +f 1244/1879/191 1251/1888/197 1250/1892/199 +f 1253/1886/196 1260/1897/204 1259/1893/200 +f 1250/1892/199 1251/1888/197 1258/1894/201 +f 1248/1884/194 1255/1902/206 1254/1896/203 +f 1247/1885/195 1254/1896/203 1260/1897/204 +f 1251/1888/197 1252/1887/31 1259/1893/200 +f 1249/1890/198 1250/1892/199 1257/1895/202 +f 1268/1903/148 1276/1915/211 1275/1904/207 +f 1266/1906/147 1274/1916/212 1273/1907/208 +f 1264/1909/145 1272/1917/209 1271/1910/28 +f 1262/1912/143 1270/1919/213 1269/1913/210 +f 1261/1914/24 1269/1913/210 1276/1915/211 +f 1267/1905/23 1275/1904/207 1274/1916/212 +f 1265/1908/22 1273/1907/208 1272/1917/209 +f 1263/1918/21 1271/1981/28 1270/1919/213 +f 1270/1920/213 1278/1933/222 1277/1921/214 +f 1269/1922/210 1277/1921/214 1283/1923/215 +f 1274/1916/212 1275/1904/207 1282/1924/34 +f 1272/1926/209 1273/1929/208 1280/1927/217 +f 1276/1915/211 1283/1923/215 1282/1924/34 +f 1273/1929/208 1274/1916/212 1281/1925/216 +f 1283/1923/215 1290/1935/224 1289/1930/219 +f 1280/1927/217 1281/1925/216 1288/1931/220 +f 1278/1933/222 1285/1939/226 1284/1934/223 +f 1277/1921/214 1284/1934/223 1290/1935/224 +f 1281/1925/216 1282/1924/34 1289/1930/219 +f 1280/1927/217 1287/1932/221 1286/1936/225 +f 1290/1935/224 1284/1949/223 1257/1940/202 +f 1289/1930/219 1290/1935/224 1258/1894/201 +f 1288/1931/220 1289/1930/219 1259/1893/200 +f 1287/1941/221 1288/1931/220 1260/1897/204 +f 1286/1943/225 1287/1941/221 1254/1942/203 +f 1241/1945/37 1271/1982/28 1286/1943/225 +f 1241/1946/37 1256/1950/205 1285/1947/226 +f 1284/1949/223 1285/1947/226 1256/1950/205 diff --git a/src/main/resources/assets/hbm/models/machines/conveyor_press.obj b/src/main/resources/assets/hbm/models/machines/conveyor_press.obj new file mode 100644 index 000000000..0fca31982 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/conveyor_press.obj @@ -0,0 +1,1042 @@ +# Blender v2.79 (sub 0) OBJ File: 'conveyor_press.blend' +# www.blender.org +o Belt +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v 0.500000 1.250000 -0.500000 +v -0.500000 1.250000 -0.500000 +vt -0.000000 0.953125 +vt 1.000000 0.937500 +vt 1.000000 0.953125 +vt 1.000000 0.937500 +vt 0.000000 0.953125 +vt 0.000000 0.937500 +vt 0.000000 1.000000 +vt 1.000000 0.937500 +vt 1.000000 1.000000 +vt -0.000000 0.937500 +vt 1.000000 0.953125 +vt 0.000000 0.937500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +s off +f 2/1/1 7/2/1 4/3/1 +f 3/4/2 6/5/2 1/6/2 +f 8/7/3 5/8/3 7/9/3 +f 2/1/1 8/10/1 7/2/1 +f 3/4/2 5/11/2 6/5/2 +f 8/7/3 6/12/3 5/8/3 +o Piston +v -0.250000 2.125000 -0.250000 +v -0.250000 2.125000 0.250000 +v 0.250000 2.125000 0.250000 +v 0.250000 2.125000 -0.250000 +v -0.250000 2.000000 -0.250000 +v -0.250000 2.000000 0.250000 +v 0.250000 2.000000 0.250000 +v 0.250000 2.000000 -0.250000 +v -0.187500 2.125000 0.187500 +v 0.187500 2.125000 0.187500 +v -0.187500 2.125000 -0.187500 +v 0.187500 2.125000 -0.187500 +v -0.187500 2.875000 0.187500 +v 0.187500 2.875000 0.187500 +v -0.187500 2.875000 -0.187500 +v 0.187500 2.875000 -0.187500 +vt 0.553571 0.528846 +vt 0.428571 0.519231 +vt 0.571429 0.519231 +vt 0.571429 0.423077 +vt 0.428571 0.500000 +vt 0.428571 0.423077 +vt 0.571429 0.500000 +vt 0.428571 0.519231 +vt 0.571429 0.500000 +vt 0.571429 0.519231 +vt 0.428571 0.519231 +vt 0.571429 0.500000 +vt 0.571429 0.519231 +vt 0.428571 0.519231 +vt 0.571429 0.500000 +vt 0.571429 0.519231 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.528846 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.528846 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.528846 +vt 0.428571 0.500000 +vt 0.428571 0.500000 +vt 0.428571 0.500000 +vt 0.446429 0.644231 +vt 0.446429 0.644231 +vt 0.446429 0.644231 +vt 0.446429 0.644231 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 20/13/4 11/14/4 12/15/4 +f 13/16/5 15/17/5 14/18/5 +f 11/14/6 16/19/6 12/15/6 +f 9/20/7 14/21/7 10/22/7 +f 12/23/8 13/24/8 9/25/8 +f 10/26/9 15/27/9 11/28/9 +f 23/29/8 20/30/8 19/31/8 +f 22/32/9 17/33/9 18/34/9 +f 24/35/6 18/36/6 20/13/6 +f 21/37/7 19/38/7 17/39/7 +f 19/31/4 12/23/4 9/25/4 +f 17/39/4 9/20/4 10/22/4 +f 18/34/4 10/26/4 11/28/4 +f 20/13/4 18/36/4 11/14/4 +f 13/16/5 16/19/5 15/17/5 +f 11/14/6 15/17/6 16/19/6 +f 9/20/7 13/40/7 14/21/7 +f 12/23/8 16/41/8 13/24/8 +f 10/26/9 14/42/9 15/27/9 +f 23/29/8 24/43/8 20/30/8 +f 22/32/9 21/44/9 17/33/9 +f 24/35/6 22/45/6 18/36/6 +f 21/37/7 23/46/7 19/38/7 +f 19/31/4 20/30/4 12/23/4 +f 17/39/4 19/38/4 9/20/4 +f 18/34/4 17/33/4 10/26/4 +o Press +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.000000 0.375000 +v -0.500000 0.875000 0.375000 +v 0.500000 0.000000 0.375000 +v 0.500000 0.875000 0.375000 +v -0.500000 0.000000 -0.375000 +v -0.500000 0.875000 -0.375000 +v 0.500000 0.000000 -0.375000 +v 0.500000 0.875000 -0.375000 +v 0.375000 0.000000 0.500000 +v 0.375000 0.875000 0.500000 +v 0.375000 0.000000 -0.500000 +v 0.375000 0.875000 -0.500000 +v -0.375000 0.000000 0.500000 +v -0.375000 0.875000 0.500000 +v -0.375000 0.000000 -0.500000 +v -0.375000 0.875000 -0.500000 +v -0.437500 0.000000 0.375000 +v -0.437500 0.875000 0.375000 +v -0.437500 0.875000 -0.375000 +v -0.437500 0.000000 -0.375000 +v 0.375000 0.000000 0.437500 +v -0.375000 0.000000 0.437500 +v -0.375000 0.875000 0.437500 +v 0.375000 0.875000 0.437500 +v 0.437500 0.000000 0.375000 +v 0.437500 0.875000 0.375000 +v 0.437500 0.875000 -0.375000 +v 0.437500 0.000000 -0.375000 +v 0.375000 0.000000 -0.437500 +v -0.375000 0.000000 -0.437500 +v -0.375000 0.875000 -0.437500 +v 0.375000 0.875000 -0.437500 +v 0.500000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v 0.500000 1.250000 -0.500000 +v -0.500000 1.250000 -0.500000 +v -0.375000 2.000000 0.375000 +v 0.375000 2.000000 0.375000 +v -0.375000 2.000000 -0.375000 +v 0.375000 2.000000 -0.375000 +v -0.375000 3.000000 -0.375000 +v -0.375000 3.000000 0.375000 +v 0.375000 3.000000 0.375000 +v 0.375000 3.000000 -0.375000 +v -0.250000 2.000000 0.250000 +v 0.250000 2.000000 0.250000 +v -0.250000 2.000000 -0.250000 +v 0.250000 2.000000 -0.250000 +v -0.250000 2.125000 -0.250000 +v -0.250000 2.125000 0.250000 +v 0.250000 2.125000 0.250000 +v 0.250000 2.125000 -0.250000 +v 0.625000 0.000000 0.500000 +v 0.625000 0.000000 0.375000 +v 0.750000 0.000000 0.500000 +v 0.750000 0.000000 0.375000 +v 0.625000 2.250000 0.500000 +v 0.625000 2.250000 0.375000 +v 0.750000 2.250000 0.500000 +v 0.750000 2.250000 0.375000 +v -0.750000 0.000000 0.500000 +v -0.750000 0.000000 0.375000 +v -0.625000 0.000000 0.500000 +v -0.625000 0.000000 0.375000 +v -0.750000 2.250000 0.500000 +v -0.750000 2.250000 0.375000 +v -0.625000 2.250000 0.500000 +v -0.625000 2.250000 0.375000 +v -0.500000 2.500000 0.375000 +v 0.500000 2.500000 0.375000 +v -0.500000 2.375000 0.375000 +v 0.500000 2.375000 0.375000 +v -0.500000 2.500000 0.500000 +v 0.500000 2.500000 0.500000 +v -0.500000 2.375000 0.500000 +v 0.500000 2.375000 0.500000 +v 0.625000 0.000000 -0.375000 +v 0.625000 0.000000 -0.500000 +v 0.750000 0.000000 -0.375000 +v 0.750000 0.000000 -0.500000 +v 0.625000 2.250000 -0.375000 +v 0.625000 2.250000 -0.500000 +v 0.750000 2.250000 -0.375000 +v 0.750000 2.250000 -0.500000 +v -0.750000 0.000000 -0.375000 +v -0.750000 0.000000 -0.500000 +v -0.625000 0.000000 -0.375000 +v -0.625000 0.000000 -0.500000 +v -0.750000 2.250000 -0.375000 +v -0.750000 2.250000 -0.500000 +v -0.625000 2.250000 -0.375000 +v -0.625000 2.250000 -0.500000 +v -0.500000 2.500000 -0.500000 +v 0.500000 2.500000 -0.500000 +v -0.500000 2.375000 -0.500000 +v 0.500000 2.375000 -0.500000 +v -0.500000 2.500000 -0.375000 +v 0.500000 2.500000 -0.375000 +v -0.500000 2.375000 -0.375000 +v 0.500000 2.375000 -0.375000 +v -0.250000 2.500000 0.375000 +v 0.250000 2.500000 0.375000 +v -0.250000 2.750000 0.375000 +v 0.250000 2.750000 0.375000 +v -0.250000 2.750000 0.437500 +v -0.250000 2.500000 0.437500 +v 0.250000 2.500000 0.437500 +v 0.250000 2.750000 0.437500 +v -0.250000 2.500000 -0.437500 +v 0.250000 2.500000 -0.437500 +v -0.250000 2.750000 -0.437500 +v 0.250000 2.750000 -0.437500 +v -0.250000 2.750000 -0.375000 +v -0.250000 2.500000 -0.375000 +v 0.250000 2.500000 -0.375000 +v 0.250000 2.750000 -0.375000 +v 0.500000 0.687500 0.187500 +v 0.500000 0.312500 0.187500 +v 0.500000 0.687500 -0.187500 +v 0.500000 0.312500 -0.187500 +v 0.437500 0.687500 -0.187500 +v 0.437500 0.687500 0.187500 +v 0.437500 0.312500 0.187500 +v 0.437500 0.312500 -0.187500 +v -0.500000 0.687500 -0.187500 +v -0.500000 0.312500 -0.187500 +v -0.500000 0.687500 0.187500 +v -0.500000 0.312500 0.187500 +v -0.437500 0.687500 0.187500 +v -0.437500 0.687500 -0.187500 +v -0.437500 0.312500 -0.187500 +v -0.437500 0.312500 0.187500 +v 0.187500 0.687500 -0.500000 +v 0.187500 0.312500 -0.500000 +v -0.187500 0.687500 -0.500000 +v -0.187500 0.312500 -0.500000 +v -0.187500 0.687500 -0.437500 +v 0.187500 0.687500 -0.437500 +v 0.187500 0.312500 -0.437500 +v -0.187500 0.312500 -0.437500 +v -0.187500 0.687500 0.500000 +v -0.187500 0.312500 0.500000 +v 0.187500 0.687500 0.500000 +v 0.187500 0.312500 0.500000 +v 0.187500 0.687500 0.437500 +v -0.187500 0.687500 0.437500 +v -0.187500 0.312500 0.437500 +v 0.187500 0.312500 0.437500 +v 0.500000 0.093750 0.468750 +v 0.500000 0.031250 0.468750 +v 0.500000 0.093750 0.406250 +v 0.500000 0.031250 0.406250 +v 0.625000 0.093750 0.468750 +v 0.625000 0.031250 0.468750 +v 0.625000 0.093750 0.406250 +v 0.625000 0.031250 0.406250 +v 0.500000 0.968750 0.468750 +v 0.500000 0.906250 0.468750 +v 0.500000 0.968750 0.406250 +v 0.500000 0.906250 0.406250 +v 0.625000 0.968750 0.468750 +v 0.625000 0.906250 0.468750 +v 0.625000 0.968750 0.406250 +v 0.625000 0.906250 0.406250 +v 0.500000 0.093750 -0.406250 +v 0.500000 0.031250 -0.406250 +v 0.500000 0.093750 -0.468750 +v 0.500000 0.031250 -0.468750 +v 0.625000 0.093750 -0.406250 +v 0.625000 0.031250 -0.406250 +v 0.625000 0.093750 -0.468750 +v 0.625000 0.031250 -0.468750 +v 0.500000 0.968750 -0.406250 +v 0.500000 0.906250 -0.406250 +v 0.500000 0.968750 -0.468750 +v 0.500000 0.906250 -0.468750 +v 0.625000 0.968750 -0.406250 +v 0.625000 0.906250 -0.406250 +v 0.625000 0.968750 -0.468750 +v 0.625000 0.906250 -0.468750 +v -0.625000 0.093750 0.468750 +v -0.625000 0.031250 0.468750 +v -0.625000 0.093750 0.406250 +v -0.625000 0.031250 0.406250 +v -0.500000 0.093750 0.468750 +v -0.500000 0.031250 0.468750 +v -0.500000 0.093750 0.406250 +v -0.500000 0.031250 0.406250 +v -0.625000 0.968750 0.468750 +v -0.625000 0.906250 0.468750 +v -0.625000 0.968750 0.406250 +v -0.625000 0.906250 0.406250 +v -0.500000 0.968750 0.468750 +v -0.500000 0.906250 0.468750 +v -0.500000 0.968750 0.406250 +v -0.500000 0.906250 0.406250 +v -0.625000 0.093750 -0.406250 +v -0.625000 0.031250 -0.406250 +v -0.625000 0.093750 -0.468750 +v -0.625000 0.031250 -0.468750 +v -0.500000 0.093750 -0.406250 +v -0.500000 0.031250 -0.406250 +v -0.500000 0.093750 -0.468750 +v -0.500000 0.031250 -0.468750 +v -0.625000 0.968750 -0.406250 +v -0.625000 0.906250 -0.406250 +v -0.625000 0.968750 -0.468750 +v -0.625000 0.906250 -0.468750 +v -0.500000 0.968750 -0.406250 +v -0.500000 0.906250 -0.406250 +v -0.500000 0.968750 -0.468750 +v -0.500000 0.906250 -0.468750 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.571429 -0.000000 +vt 0.535714 0.134615 +vt 0.535714 -0.000000 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.535714 0.134615 +vt 0.571429 -0.000000 +vt 0.571429 0.153846 +vt 0.571429 -0.000000 +vt 0.535714 0.134615 +vt 0.535714 -0.000000 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.571429 -0.000000 +vt 0.535714 0.134615 +vt 0.535714 -0.000000 +vt 0.571429 0.153846 +vt 0.571429 0.153846 +vt 0.571429 0.153846 +vt 0.714286 0.230769 +vt 0.428571 0.269231 +vt 0.428571 0.230769 +vt 0.803571 0.134615 +vt 0.589286 0.000000 +vt 0.803571 0.000000 +vt 0.821429 0.000000 +vt 0.821429 0.134615 +vt 0.589286 0.134615 +vt 0.803571 0.144231 +vt 0.589286 0.144231 +vt 0.571429 0.134615 +vt 0.571429 0.000000 +vt 0.714286 0.230769 +vt 0.428571 0.269231 +vt 0.428571 0.230769 +vt 0.803571 0.134615 +vt 0.589286 0.000000 +vt 0.803571 0.000000 +vt 0.571429 0.000000 +vt 0.589286 0.134615 +vt 0.571429 0.134615 +vt 0.589286 0.144231 +vt 0.803571 0.144231 +vt 0.821429 0.134615 +vt 0.821429 0.000000 +vt 0.803571 0.000000 +vt 0.589286 0.134615 +vt 0.589286 0.000000 +vt 0.571429 0.000000 +vt 0.571429 0.134615 +vt 0.589286 0.144231 +vt 0.803571 0.134615 +vt 0.803571 0.144231 +vt 0.821429 0.134615 +vt 0.821429 0.000000 +vt 0.803571 0.000000 +vt 0.589286 0.134615 +vt 0.589286 0.000000 +vt 0.017857 0.019231 +vt 0.250000 0.009615 +vt 0.267857 0.019231 +vt 0.803571 0.134615 +vt 0.821429 0.000000 +vt 0.821429 0.134615 +vt 0.803571 0.144231 +vt 0.589286 0.144231 +vt 0.571429 0.134615 +vt 0.571429 0.000000 +vt 0.214286 0.153846 +vt 0.250000 0.250000 +vt 0.214286 0.269231 +vt 0.214286 0.423077 +vt 0.428571 0.538462 +vt 0.214286 0.538462 +vt 0.428571 0.269231 +vt 0.857143 0.269231 +vt 0.642857 0.423077 +vt 0.642857 0.269231 +vt 0.428571 0.423077 +vt 0.000000 0.423077 +vt 0.000000 0.269231 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.392857 0.250000 +vt 0.392857 0.173077 +vt 0.428571 0.153846 +vt 0.250000 0.173077 +vt 0.392857 0.173077 +vt 0.250000 0.250000 +vt 0.250000 0.173077 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.928571 0.019231 +vt 0.892857 0.000000 +vt 0.928571 0.000000 +vt 0.928571 0.634615 +vt 0.964286 0.586538 +vt 0.964286 0.625000 +vt 0.892857 0.019231 +vt 0.857143 0.365385 +vt 0.857143 0.019231 +vt 0.892857 0.365385 +vt 0.964286 0.019231 +vt 0.928571 0.365385 +vt 1.000000 0.019231 +vt 0.964286 0.365385 +vt 1.000000 0.586538 +vt 1.000000 0.625000 +vt 0.928571 1.000000 +vt 0.892857 0.980769 +vt 0.928571 0.980769 +vt 0.892857 0.423077 +vt 0.857143 0.375000 +vt 0.857143 0.980769 +vt 0.892857 0.634615 +vt 0.964286 0.980769 +vt 1.000000 0.634615 +vt 1.000000 0.980769 +vt 0.964286 0.634615 +vt 0.964286 0.423077 +vt 0.928571 0.576923 +vt 0.928571 0.423077 +vt 0.892857 0.576923 +vt 0.857143 0.423077 +vt 0.964286 0.375000 +vt 1.000000 0.576923 +vt 0.964286 0.576923 +vt 1.000000 0.625000 +vt 0.964286 0.586538 +vt 1.000000 0.586538 +vt 0.857143 0.586538 +vt 0.857143 0.625000 +vt 0.928571 0.019231 +vt 0.892857 0.000000 +vt 0.928571 0.000000 +vt 0.928571 0.634615 +vt 0.964286 0.586538 +vt 0.964286 0.625000 +vt 0.892857 0.019231 +vt 0.857143 0.365385 +vt 0.857143 0.019231 +vt 0.892857 0.365385 +vt 0.964286 0.019231 +vt 0.928571 0.365385 +vt 1.000000 0.019231 +vt 0.964286 0.365385 +vt 1.000000 0.586538 +vt 1.000000 0.625000 +vt 0.928571 1.000000 +vt 0.892857 0.980769 +vt 0.928571 0.980769 +vt 0.892857 0.423077 +vt 0.857143 0.375000 +vt 0.857143 0.980769 +vt 0.892857 0.634615 +vt 0.964286 0.980769 +vt 1.000000 0.634615 +vt 1.000000 0.980769 +vt 0.964286 0.634615 +vt 0.964286 0.423077 +vt 0.928571 0.576923 +vt 0.928571 0.423077 +vt 0.892857 0.576923 +vt 0.857143 0.423077 +vt 0.964286 0.375000 +vt 1.000000 0.576923 +vt 0.964286 0.576923 +vt 1.000000 0.413462 +vt 1.000000 0.375000 +vt 0.857143 0.586538 +vt 0.857143 0.625000 +vt 0.446429 0.192308 +vt 0.428571 0.153846 +vt 0.446429 0.153846 +vt 0.589286 0.153846 +vt 0.446429 0.192308 +vt 0.446429 0.153846 +vt 0.446429 0.201923 +vt 0.589286 0.192308 +vt 0.589286 0.201923 +vt 0.589286 0.192308 +vt 0.446429 0.201923 +vt 0.607143 0.192308 +vt 0.607143 0.153846 +vt 0.428571 0.153846 +vt 0.428571 0.192308 +vt 0.589286 0.153846 +vt 0.607143 0.192308 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.321429 -0.000000 +vt 0.321429 -0.000000 +vt 0.321429 -0.000000 +vt 0.535714 -0.000000 +vt 0.321429 -0.000000 +vt 0.714286 0.269231 +vt 0.714286 0.269231 +vt 0.035714 0.153846 +vt 0.000000 0.153846 +vt 0.035714 0.144231 +vt 0.000000 0.134615 +vt 0.017857 0.134615 +vt 0.000000 0.019231 +vt 0.000000 0.000000 +vt 0.250000 0.144231 +vt 0.285714 0.153846 +vt 0.250000 0.153846 +vt 0.035714 0.009615 +vt 0.035714 0.000000 +vt 0.267857 0.134615 +vt 0.285714 0.134615 +vt 0.285714 0.019231 +vt 0.250000 0.000000 +vt 0.857143 0.423077 +vt 0.142857 0.269231 +vt 0.392857 0.250000 +vt 0.142857 0.269231 +vt 0.142857 0.269231 +vt 0.142857 0.269231 +vt 1.000000 0.365385 +vt 0.892857 1.000000 +vt 0.857143 0.413462 +vt 0.857143 0.634615 +vt 0.857143 0.576923 +vt 0.964286 0.413462 +vt 1.000000 0.423077 +vt 0.964286 0.625000 +vt 1.000000 0.365385 +vt 0.892857 1.000000 +vt 0.857143 0.413462 +vt 0.857143 0.634615 +vt 0.857143 0.576923 +vt 0.964286 0.413462 +vt 1.000000 0.423077 +vt 0.428571 0.192308 +vt 0.589286 0.201923 +vt 0.607143 0.153846 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 25/47/10 46/48/10 26/49/10 +f 27/50/11 38/51/11 28/52/11 +f 27/53/12 48/54/12 47/55/12 +f 31/56/12 44/57/12 32/58/12 +f 34/59/11 25/60/11 26/61/11 +f 29/62/10 42/63/10 41/64/10 +f 29/65/13 36/66/13 30/67/13 +f 31/68/13 40/69/13 39/70/13 +f 30/67/13 40/69/13 32/71/13 +f 26/49/10 42/63/10 30/72/10 +f 28/73/12 44/57/12 48/54/12 +f 28/52/11 34/59/11 26/61/11 +f 26/74/11 68/75/11 28/76/11 +f 50/77/11 52/78/11 49/79/11 +f 50/77/12 33/80/12 34/81/12 +f 51/82/14 34/83/14 38/84/14 +f 52/78/10 38/85/10 37/86/10 +f 32/87/13 65/88/13 30/89/13 +f 56/90/10 54/91/10 53/92/10 +f 45/93/13 55/94/13 46/95/13 +f 46/96/14 56/90/14 42/97/14 +f 42/98/11 53/92/11 41/99/11 +f 60/100/13 58/101/13 57/102/13 +f 35/103/12 58/101/12 36/104/12 +f 36/105/14 59/106/14 40/107/14 +f 40/108/10 60/100/10 39/109/10 +f 62/110/12 64/111/12 61/112/12 +f 61/113/14 57/114/14 53/115/14 +f 63/116/13 47/117/13 48/118/13 +f 64/111/14 48/119/14 44/120/14 +f 61/112/11 44/121/11 43/122/11 +f 69/123/14 78/124/14 70/125/14 +f 75/126/15 73/127/15 74/128/15 +f 72/129/13 75/126/13 70/125/13 +f 69/130/11 73/131/11 71/132/11 +f 71/132/12 76/133/12 72/129/12 +f 70/125/10 74/134/10 69/135/10 +f 80/136/10 81/137/10 79/138/10 +f 70/125/14 80/139/14 72/129/14 +f 72/129/14 79/140/14 71/141/14 +f 71/141/14 77/142/14 69/123/14 +f 81/143/14 83/144/14 82/145/14 +f 77/146/12 83/147/12 78/148/12 +f 78/149/11 84/150/11 80/151/11 +f 79/152/13 82/153/13 77/154/13 +f 88/155/14 85/156/14 86/157/14 +f 98/158/12 103/159/12 100/160/12 +f 87/161/10 89/162/10 85/163/10 +f 88/155/13 91/164/13 87/161/13 +f 86/165/12 92/166/12 88/155/12 +f 85/167/11 90/168/11 86/165/11 +f 100/160/16 107/169/16 99/170/16 +f 96/171/14 93/172/14 94/173/14 +f 106/174/10 89/175/10 91/164/10 +f 95/176/10 97/177/10 93/172/10 +f 96/178/13 99/179/13 95/180/13 +f 94/173/12 100/181/12 96/178/12 +f 93/172/11 98/158/11 94/173/11 +f 92/166/17 106/174/17 91/164/17 +f 104/182/12 101/183/12 102/184/12 +f 105/185/10 108/186/10 106/174/10 +f 90/187/12 102/184/12 92/166/12 +f 104/182/14 107/188/14 103/189/14 +f 108/190/18 90/191/18 89/192/18 +f 101/183/15 106/174/15 102/184/15 +f 97/177/19 101/183/19 98/158/19 +f 107/193/10 97/177/10 99/194/10 +f 112/195/14 109/196/14 110/197/14 +f 122/198/12 127/199/12 124/200/12 +f 111/201/10 113/202/10 109/203/10 +f 112/195/13 115/204/13 111/201/13 +f 110/205/12 116/206/12 112/195/12 +f 109/207/11 114/208/11 110/205/11 +f 124/200/16 131/209/16 123/210/16 +f 120/211/14 117/212/14 118/213/14 +f 130/214/10 113/215/10 115/204/10 +f 119/216/10 121/217/10 117/212/10 +f 120/218/13 123/219/13 119/220/13 +f 118/213/12 124/221/12 120/218/12 +f 117/212/11 122/198/11 118/213/11 +f 116/206/17 130/214/17 115/204/17 +f 128/222/12 125/223/12 126/224/12 +f 129/225/10 132/226/10 130/214/10 +f 114/227/12 126/224/12 116/206/12 +f 128/222/14 131/228/14 127/229/14 +f 132/230/18 114/227/18 113/231/18 +f 125/223/15 130/214/15 126/224/15 +f 121/217/19 125/223/19 122/198/19 +f 131/232/10 121/217/10 123/233/10 +f 144/234/13 147/235/13 142/236/13 +f 139/237/10 137/238/10 138/239/10 +f 135/240/15 140/241/15 136/242/15 +f 143/243/15 148/244/15 144/234/15 +f 136/245/13 139/237/13 134/246/13 +f 133/247/11 137/238/11 135/248/11 +f 141/249/11 145/250/11 143/243/11 +f 144/234/12 141/249/12 143/243/12 +f 150/251/13 151/252/13 149/253/13 +f 158/254/11 159/255/11 157/256/11 +f 152/257/12 153/258/12 151/252/12 +f 149/253/10 155/259/10 150/251/10 +f 150/251/14 156/260/14 152/257/14 +f 151/252/15 154/261/15 149/253/15 +f 160/262/10 161/263/10 159/255/10 +f 157/256/12 163/264/12 158/254/12 +f 158/254/14 164/265/14 160/262/14 +f 159/255/15 162/266/15 157/256/15 +f 166/267/12 167/268/12 165/269/12 +f 174/270/10 175/271/10 173/272/10 +f 168/273/11 169/274/11 167/268/11 +f 165/269/13 171/275/13 166/267/13 +f 166/267/14 172/276/14 168/273/14 +f 167/268/15 170/277/15 165/269/15 +f 176/278/13 177/279/13 175/271/13 +f 173/272/11 179/280/11 174/270/11 +f 174/270/14 180/281/14 176/278/14 +f 175/271/15 178/282/15 173/272/15 +f 187/283/12 184/284/12 183/285/12 +f 186/286/10 181/287/10 182/288/10 +f 188/289/14 182/288/14 184/290/14 +f 185/291/15 183/285/15 181/287/15 +f 195/292/12 192/293/12 191/294/12 +f 194/295/10 189/296/10 190/297/10 +f 196/298/14 190/297/14 192/299/14 +f 193/300/15 191/294/15 189/296/15 +f 203/301/12 200/302/12 199/303/12 +f 202/304/10 197/305/10 198/306/10 +f 204/307/14 198/306/14 200/308/14 +f 201/309/15 199/303/15 197/305/15 +f 211/310/12 208/311/12 207/312/12 +f 210/313/10 205/314/10 206/315/10 +f 212/316/14 206/315/14 208/317/14 +f 209/318/15 207/312/15 205/314/15 +f 219/319/12 216/320/12 215/321/12 +f 218/322/10 213/323/10 214/324/10 +f 220/325/14 214/324/14 216/326/14 +f 217/327/15 215/321/15 213/323/15 +f 227/328/12 224/329/12 223/330/12 +f 226/331/10 221/332/10 222/333/10 +f 228/334/14 222/333/14 224/335/14 +f 225/336/15 223/330/15 221/332/15 +f 235/337/12 232/338/12 231/339/12 +f 234/340/10 229/341/10 230/342/10 +f 236/343/14 230/342/14 232/344/14 +f 233/345/15 231/339/15 229/341/15 +f 243/346/12 240/347/12 239/348/12 +f 242/349/10 237/350/10 238/351/10 +f 244/352/14 238/351/14 240/353/14 +f 241/354/15 239/348/15 237/350/15 +f 25/47/10 45/355/10 46/48/10 +f 27/50/11 37/356/11 38/51/11 +f 27/53/12 28/73/12 48/54/12 +f 31/56/12 43/357/12 44/57/12 +f 34/59/11 33/358/11 25/60/11 +f 29/62/10 30/72/10 42/63/10 +f 29/65/13 35/359/13 36/66/13 +f 31/68/13 32/71/13 40/69/13 +f 30/67/13 36/66/13 40/69/13 +f 26/49/10 46/48/10 42/63/10 +f 28/73/12 32/58/12 44/57/12 +f 28/52/11 38/51/11 34/59/11 +f 26/74/11 66/360/11 68/75/11 +f 50/77/11 51/82/11 52/78/11 +f 50/77/12 49/79/12 33/80/12 +f 51/82/14 50/77/14 34/83/14 +f 52/78/10 51/82/10 38/85/10 +f 32/87/13 67/361/13 65/88/13 +f 56/90/10 55/94/10 54/91/10 +f 45/93/13 54/91/13 55/94/13 +f 46/96/14 55/94/14 56/90/14 +f 42/98/11 56/90/11 53/92/11 +f 60/100/13 59/106/13 58/101/13 +f 35/103/12 57/102/12 58/101/12 +f 36/105/14 58/101/14 59/106/14 +f 40/108/10 59/106/10 60/100/10 +f 62/110/12 63/116/12 64/111/12 +f 37/362/14 27/363/14 52/364/14 +f 27/363/14 47/365/14 62/366/14 +f 27/363/14 62/366/14 52/364/14 +f 61/113/14 43/367/14 31/368/14 +f 52/364/14 62/366/14 49/369/14 +f 62/366/14 61/113/14 49/369/14 +f 25/370/14 33/371/14 49/369/14 +f 61/113/14 31/368/14 60/372/14 +f 31/368/14 39/373/14 60/372/14 +f 25/370/14 49/369/14 54/374/14 +f 49/369/14 61/113/14 54/374/14 +f 54/374/14 45/375/14 25/370/14 +f 29/65/14 41/376/14 53/115/14 +f 35/377/14 29/65/14 57/114/14 +f 29/65/14 53/115/14 57/114/14 +f 53/115/14 54/374/14 61/113/14 +f 61/113/14 60/372/14 57/114/14 +f 63/116/13 62/110/13 47/117/13 +f 64/111/14 63/116/14 48/119/14 +f 61/112/11 64/111/11 44/121/11 +f 69/123/14 77/142/14 78/124/14 +f 75/126/15 76/133/15 73/127/15 +f 72/129/13 76/133/13 75/126/13 +f 69/130/11 74/378/11 73/131/11 +f 71/132/12 73/131/12 76/133/12 +f 70/125/10 75/126/10 74/134/10 +f 80/136/10 84/379/10 81/137/10 +f 70/125/14 78/124/14 80/139/14 +f 72/129/14 80/139/14 79/140/14 +f 71/141/14 79/140/14 77/142/14 +f 81/143/14 84/380/14 83/144/14 +f 77/146/12 82/381/12 83/147/12 +f 78/149/11 83/382/11 84/150/11 +f 79/152/13 81/383/13 82/153/13 +f 88/155/14 87/161/14 85/156/14 +f 98/158/12 101/183/12 103/159/12 +f 87/161/10 91/164/10 89/162/10 +f 88/155/13 92/166/13 91/164/13 +f 86/165/12 90/168/12 92/166/12 +f 85/167/11 89/384/11 90/168/11 +f 100/160/16 103/159/16 107/169/16 +f 96/171/14 95/385/14 93/172/14 +f 106/174/10 108/386/10 89/175/10 +f 95/176/10 99/387/10 97/177/10 +f 96/178/13 100/181/13 99/179/13 +f 94/173/12 98/158/12 100/181/12 +f 93/172/11 97/177/11 98/158/11 +f 92/166/17 102/184/17 106/174/17 +f 104/182/12 103/189/12 101/183/12 +f 105/185/10 107/388/10 108/186/10 +f 90/187/12 104/389/12 102/184/12 +f 104/182/14 108/390/14 107/188/14 +f 108/190/18 104/391/18 90/191/18 +f 101/183/15 105/185/15 106/174/15 +f 97/177/19 105/185/19 101/183/19 +f 107/193/10 105/185/10 97/177/10 +f 112/195/14 111/201/14 109/196/14 +f 122/198/12 125/223/12 127/199/12 +f 111/201/10 115/204/10 113/202/10 +f 112/195/13 116/206/13 115/204/13 +f 110/205/12 114/208/12 116/206/12 +f 109/207/11 113/392/11 114/208/11 +f 124/200/16 127/199/16 131/209/16 +f 120/211/14 119/393/14 117/212/14 +f 130/214/10 132/394/10 113/215/10 +f 119/216/10 123/395/10 121/217/10 +f 120/218/13 124/221/13 123/219/13 +f 118/213/12 122/198/12 124/221/12 +f 117/212/11 121/217/11 122/198/11 +f 116/206/17 126/224/17 130/214/17 +f 128/222/12 127/229/12 125/223/12 +f 129/225/10 131/396/10 132/226/10 +f 114/227/12 128/397/12 126/224/12 +f 128/222/14 132/398/14 131/228/14 +f 132/230/18 128/397/18 114/227/18 +f 125/223/15 129/225/15 130/214/15 +f 121/217/19 129/225/19 125/223/19 +f 131/232/10 129/225/10 121/217/10 +f 144/234/13 148/399/13 147/235/13 +f 139/237/10 140/241/10 137/238/10 +f 135/240/15 137/238/15 140/241/15 +f 143/243/15 145/400/15 148/244/15 +f 136/245/13 140/241/13 139/237/13 +f 133/247/11 138/239/11 137/238/11 +f 141/249/11 146/401/11 145/250/11 +f 144/234/12 142/236/12 141/249/12 +f 150/251/13 152/257/13 151/252/13 +f 158/254/11 160/262/11 159/255/11 +f 152/257/12 156/402/12 153/258/12 +f 149/253/10 154/403/10 155/259/10 +f 150/251/14 155/404/14 156/260/14 +f 151/252/15 153/405/15 154/261/15 +f 160/262/10 164/406/10 161/263/10 +f 157/256/12 162/407/12 163/264/12 +f 158/254/14 163/408/14 164/265/14 +f 159/255/15 161/409/15 162/266/15 +f 166/267/12 168/273/12 167/268/12 +f 174/270/10 176/278/10 175/271/10 +f 168/273/11 172/410/11 169/274/11 +f 165/269/13 170/411/13 171/275/13 +f 166/267/14 171/412/14 172/276/14 +f 167/268/15 169/413/15 170/277/15 +f 176/278/13 180/414/13 177/279/13 +f 173/272/11 178/415/11 179/280/11 +f 174/270/14 179/416/14 180/281/14 +f 175/271/15 177/417/15 178/282/15 +f 187/283/12 188/418/12 184/284/12 +f 186/286/10 185/291/10 181/287/10 +f 188/289/14 186/286/14 182/288/14 +f 185/291/15 187/283/15 183/285/15 +f 195/292/12 196/419/12 192/293/12 +f 194/295/10 193/300/10 189/296/10 +f 196/298/14 194/295/14 190/297/14 +f 193/300/15 195/292/15 191/294/15 +f 203/301/12 204/420/12 200/302/12 +f 202/304/10 201/309/10 197/305/10 +f 204/307/14 202/304/14 198/306/14 +f 201/309/15 203/301/15 199/303/15 +f 211/310/12 212/421/12 208/311/12 +f 210/313/10 209/318/10 205/314/10 +f 212/316/14 210/313/14 206/315/14 +f 209/318/15 211/310/15 207/312/15 +f 219/319/12 220/422/12 216/320/12 +f 218/322/10 217/327/10 213/323/10 +f 220/325/14 218/322/14 214/324/14 +f 217/327/15 219/319/15 215/321/15 +f 227/328/12 228/423/12 224/329/12 +f 226/331/10 225/336/10 221/332/10 +f 228/334/14 226/331/14 222/333/14 +f 225/336/15 227/328/15 223/330/15 +f 235/337/12 236/424/12 232/338/12 +f 234/340/10 233/345/10 229/341/10 +f 236/343/14 234/340/14 230/342/14 +f 233/345/15 235/337/15 231/339/15 +f 243/346/12 244/425/12 240/347/12 +f 242/349/10 241/354/10 237/350/10 +f 244/352/14 242/349/14 238/351/14 +f 241/354/15 243/346/15 239/348/15 diff --git a/src/main/resources/assets/hbm/models/machines/derrick.obj b/src/main/resources/assets/hbm/models/machines/derrick.obj index 56d2464ca..8b2b01979 100644 --- a/src/main/resources/assets/hbm/models/machines/derrick.obj +++ b/src/main/resources/assets/hbm/models/machines/derrick.obj @@ -1,1315 +1,2881 @@ -# Blender v2.79 (sub 0) OBJ File: 'derrick_new.blend' +# Blender v2.79 (sub 0) OBJ File: 'derrick.blend' # www.blender.org o Plane -v -1.500000 0.000000 1.500000 -v 1.500000 0.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v -1.500000 0.000000 1.250000 -v 1.500000 0.000000 1.250000 -v -1.500000 0.000000 -1.250000 -v 1.500000 0.000000 -1.250000 -v 1.250000 0.000000 1.500000 -v 1.250000 0.000000 -1.500000 -v 1.250000 0.000000 1.250000 -v 1.250000 0.000000 -1.250000 -v -1.250000 0.000000 1.500000 -v -1.250000 0.000000 -1.500000 -v -1.250000 0.000000 1.250000 -v -1.250000 0.000000 -1.250000 -v 0.250000 6.000000 0.500000 -v 0.250000 6.000000 0.250000 -v 0.500000 6.000000 0.500000 -v 0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.500000 -v -0.250000 6.000000 0.250000 -v -0.250000 6.000000 0.500000 -v -0.250000 6.000000 -0.250000 -v -0.500000 6.000000 -0.250000 -v -0.500000 6.000000 -0.500000 -v -0.250000 6.000000 -0.500000 -v 0.250000 6.000000 -0.250000 -v 0.500000 6.000000 -0.250000 -v 0.500000 6.000000 -0.500000 -v 0.250000 6.000000 -0.500000 v -0.500000 0.000000 0.500000 v 0.500000 0.000000 0.500000 v -0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000 -v -0.250000 0.250000 -0.250000 -v -0.250000 0.250000 0.250000 -v 0.250000 0.250000 0.250000 -v 0.250000 0.250000 -0.250000 -v 0.000000 6.250000 -0.250000 -v 0.176777 6.250000 -0.176777 -v 0.250000 6.250000 0.000000 -v 0.176777 6.250000 0.176777 -v -0.000000 6.250000 0.250000 -v -0.176777 6.250000 0.176777 -v -0.250000 6.250000 -0.000000 -v -0.176777 6.250000 -0.176777 -v 0.850000 2.400000 1.100000 -v 0.650000 3.600000 0.900000 -v 0.450000 4.800000 0.700000 -v 0.450000 4.800000 0.450000 -v 0.650000 3.600000 0.650000 -v 0.850000 2.400000 0.850000 -v 1.100000 2.400000 0.850000 -v 0.900000 3.600000 0.650000 -v 0.700000 4.800000 0.450000 -v 0.850000 2.400000 -1.100000 -v 0.650000 3.600000 -0.900000 -v 0.450000 4.800000 -0.700000 -v 0.850000 2.400000 -0.850000 -v 0.650000 3.600000 -0.650000 -v 0.450000 4.800000 -0.450000 -v 1.100000 2.400000 -0.850000 -v 0.900000 3.600000 -0.650000 -v 0.700000 4.800000 -0.450000 -v -0.850000 2.400000 -0.850000 -v -0.650000 3.600000 -0.650000 -v -0.450000 4.800000 -0.450000 -v -0.700000 4.800000 -0.450000 -v -0.900000 3.600000 -0.650000 -v -1.100000 2.400000 -0.850000 -v -0.450000 4.800000 -0.700000 -v -0.650000 3.600000 -0.900000 -v -0.850000 2.400000 -1.100000 -v -0.850000 2.400000 0.850000 -v -0.650000 3.600000 0.650000 -v -0.450000 4.800000 0.450000 -v -0.450000 4.800000 0.700000 -v -0.650000 3.600000 0.900000 -v -0.850000 2.400000 1.100000 -v -0.700000 4.800000 0.450000 -v -0.900000 3.600000 0.650000 -v -1.100000 2.400000 0.850000 -v 0.283333 2.400000 -0.850000 -v -0.283333 2.400000 -0.850000 -v 0.283333 2.400000 -1.100000 -v -0.283333 2.400000 -1.100000 -v 0.850000 2.400000 0.283333 -v 0.850000 2.400000 -0.283333 -v 1.100000 2.400000 0.283333 -v 1.100000 2.400000 -0.283333 -v 0.283333 2.400000 1.100000 -v -0.283333 2.400000 1.100000 -v 0.283333 2.400000 0.850000 -v -0.283333 2.400000 0.850000 -v -0.850000 2.400000 -0.283333 -v -0.850000 2.400000 0.283333 -v -1.100000 2.400000 -0.283333 -v -1.100000 2.400000 0.283333 -v -0.156250 0.343750 1.500000 -v -0.156250 0.656250 1.500000 -v -0.156250 0.343750 -1.500000 -v -0.156250 0.656250 -1.500000 -v 0.156250 0.343750 1.500000 -v 0.156250 0.656250 1.500000 -v 0.156250 0.343750 -1.500000 -v 0.156250 0.656250 -1.500000 -v 0.156250 0.656250 -0.156250 -v 0.156250 0.343750 -0.156250 -v 0.156250 0.656250 0.156250 -v 0.156250 0.343750 0.156250 -v -0.156250 0.656250 -0.156250 -v -0.156250 0.343750 -0.156250 -v -0.156250 0.656250 0.156250 -v -0.156250 0.343750 0.156250 -v 1.500000 0.343750 0.156250 -v 1.500000 0.656250 0.156250 -v -1.500000 0.343750 0.156250 -v -1.500000 0.656250 0.156250 -v 1.500000 0.343750 -0.156250 -v 1.500000 0.656250 -0.156250 -v -1.500000 0.343750 -0.156250 -v -1.500000 0.656250 -0.156250 -v 0.176777 6.250000 0.176777 -v 0.176777 0.250000 0.176777 -v 0.250000 6.250000 0.000000 -v 0.250000 0.250000 0.000000 -v 0.176777 6.250000 -0.176777 -v 0.176777 0.250000 -0.176777 -v 0.000000 6.250000 -0.250000 -v 0.000000 0.250000 -0.250000 -v 0.088388 7.000000 -0.088388 -v -0.000000 7.000000 -0.125000 -v 0.125000 7.000000 0.000000 -v 0.088388 7.000000 0.088388 -v -0.000000 7.000000 0.125000 -v -0.088388 7.000000 0.088388 -v -0.125000 7.000000 -0.000000 -v -0.088388 7.000000 -0.088388 -v -1.500000 0.000000 1.250000 +v -0.500000 1.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v -1.250000 4.000000 1.250000 +v 1.250000 4.000000 1.250000 +v -1.250000 4.000000 -1.250000 +v 1.250000 4.000000 -1.250000 +v -0.875000 4.000000 -0.875000 +v -0.875000 4.000000 0.875000 +v 0.875000 4.000000 0.875000 +v 0.875000 4.000000 -0.875000 +v -1.250000 3.750000 1.250000 +v 1.250000 3.750000 1.250000 +v -1.250000 3.750000 -1.250000 +v 1.250000 3.750000 -1.250000 +v -0.875000 3.750000 -0.875000 +v -0.875000 3.750000 0.875000 +v 0.875000 3.750000 0.875000 +v 0.875000 3.750000 -0.875000 +v 1.500000 0.000000 1.500000 v 1.500000 0.000000 1.250000 -v -1.500000 0.000000 -1.250000 -v 1.500000 0.000000 -1.250000 v 1.250000 0.000000 1.500000 -v 1.250000 0.000000 -1.500000 v 1.250000 0.000000 1.250000 -v 1.250000 0.000000 -1.250000 v -1.250000 0.000000 1.500000 -v -1.250000 0.000000 -1.500000 v -1.250000 0.000000 1.250000 +v -1.500000 0.000000 1.500000 +v -1.500000 0.000000 1.250000 +v 1.500000 0.000000 -1.250000 +v 1.500000 0.000000 -1.500000 +v 1.250000 0.000000 -1.250000 +v 1.250000 0.000000 -1.500000 v -1.250000 0.000000 -1.250000 -v 0.250000 6.000000 0.500000 -v 0.250000 6.000000 0.250000 -v 0.500000 6.000000 0.500000 -v 0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.500000 -v -0.250000 6.000000 0.250000 -v -0.250000 6.000000 0.500000 -v -0.250000 6.000000 -0.250000 -v -0.500000 6.000000 -0.250000 -v -0.500000 6.000000 -0.500000 -v -0.250000 6.000000 -0.500000 -v 0.250000 6.000000 -0.250000 -v 0.500000 6.000000 -0.250000 -v 0.500000 6.000000 -0.500000 -v 0.250000 6.000000 -0.500000 -v 0.850000 2.400000 1.100000 -v 0.650000 3.600000 0.900000 -v 0.450000 4.800000 0.700000 -v 0.450000 4.800000 0.450000 -v 0.650000 3.600000 0.650000 -v 0.850000 2.400000 0.850000 -v 1.100000 2.400000 0.850000 -v 0.900000 3.600000 0.650000 -v 0.700000 4.800000 0.450000 -v 0.850000 2.400000 -1.100000 -v 0.650000 3.600000 -0.900000 -v 0.450000 4.800000 -0.700000 -v 0.850000 2.400000 -0.850000 -v 0.650000 3.600000 -0.650000 -v 0.450000 4.800000 -0.450000 -v 1.100000 2.400000 -0.850000 -v 0.900000 3.600000 -0.650000 -v 0.700000 4.800000 -0.450000 -v -0.850000 2.400000 -0.850000 -v -0.650000 3.600000 -0.650000 -v -0.450000 4.800000 -0.450000 -v -0.700000 4.800000 -0.450000 -v -0.900000 3.600000 -0.650000 -v -1.100000 2.400000 -0.850000 -v -0.450000 4.800000 -0.700000 -v -0.650000 3.600000 -0.900000 -v -0.850000 2.400000 -1.100000 -v -0.850000 2.400000 0.850000 -v -0.650000 3.600000 0.650000 -v -0.450000 4.800000 0.450000 -v -0.450000 4.800000 0.700000 -v -0.650000 3.600000 0.900000 -v -0.850000 2.400000 1.100000 -v -0.700000 4.800000 0.450000 -v -0.900000 3.600000 0.650000 -v -1.100000 2.400000 0.850000 -v 0.283333 2.400000 -0.850000 -v -0.283333 2.400000 -0.850000 -v 0.283333 2.400000 -1.100000 -v -0.283333 2.400000 -1.100000 -v 0.850000 2.400000 0.283333 -v 0.850000 2.400000 -0.283333 -v 1.100000 2.400000 0.283333 -v 1.100000 2.400000 -0.283333 -v 0.283333 2.400000 1.100000 -v -0.283333 2.400000 1.100000 -v 0.283333 2.400000 0.850000 -v -0.283333 2.400000 0.850000 -v -0.850000 2.400000 -0.283333 -v -0.850000 2.400000 0.283333 -v -1.100000 2.400000 -0.283333 -v -1.100000 2.400000 0.283333 -v -0.000000 6.250000 -0.125000 -v 0.088388 6.250000 -0.088388 -v 0.125000 6.250000 0.000000 -v 0.088388 6.250000 0.088388 -v -0.000000 6.250000 0.125000 -v -0.088388 6.250000 0.088388 -v -0.125000 6.250000 -0.000000 -v -0.088388 6.250000 -0.088388 -v 0.088388 7.000000 -0.088388 -v -0.000000 7.000000 -0.125000 -v 0.125000 7.000000 0.000000 -v 0.088388 7.000000 0.088388 -v -0.000000 7.000000 0.125000 -v -0.088388 7.000000 0.088388 -v -0.125000 7.000000 -0.000000 -v -0.088388 7.000000 -0.088388 -v -0.000000 0.250000 0.250000 -v -0.000000 6.250000 0.250000 -v -0.176777 0.250000 0.176777 -v -0.176777 6.250000 0.176777 -v -0.250000 0.250000 -0.000000 -v -0.250000 6.250000 -0.000000 -v -0.176777 0.250000 -0.176777 -v -0.176777 6.250000 -0.176777 -vt 0.458333 0.958333 -vt 0.416667 1.000000 -vt 0.416667 0.958333 -vt 0.458333 1.000000 -vt 0.416667 0.958333 -vt 0.458333 0.958333 -vt 0.416667 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.416667 0.958333 -vt 0.458333 1.000000 -vt 0.416667 1.000000 -vt 0.583333 0.041667 -vt 0.625000 0.000000 -vt 0.625000 0.041667 -vt 0.625000 0.166667 -vt 0.583333 0.125000 -vt 0.625000 0.125000 -vt 0.750000 0.125000 -vt 0.708333 0.166667 -vt 0.708333 0.125000 -vt 0.708333 -0.000000 -vt 0.750000 0.041667 -vt 0.708333 0.041667 -vt 0.041667 0.802083 -vt -0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.041667 0.802083 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.041667 0.802083 -vt -0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.041667 0.802083 -vt 0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.125000 1.000000 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.416667 0.166667 -vt 0.583333 0.000000 -vt 0.583333 0.166667 -vt 0.541667 0.208333 -vt 0.458333 0.291667 -vt 0.458333 0.208333 -vt 0.583333 0.166667 -vt 0.458333 0.208333 -vt 0.416667 0.166667 -vt 0.583333 0.166667 -vt 0.416667 0.166667 -vt 0.583333 0.166667 -vt 0.458333 0.208333 -vt 0.416667 0.166667 -vt 0.458333 0.208333 -vt 0.666667 0.294035 -vt 0.627368 0.333333 -vt 0.666667 0.372632 -vt 0.041667 0.406250 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.041667 0.604167 -vt 0.083333 0.604167 -vt 0.083333 0.802083 -vt 0.041667 0.406250 -vt 0.083333 0.604167 -vt 0.041667 0.604167 -vt 0.083333 0.802083 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.041667 0.406250 -vt 0.083333 0.604167 -vt 0.041667 0.604167 -vt 0.083333 0.802083 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.041667 0.406250 -vt 0.083333 0.604167 -vt 0.041667 0.604167 -vt 0.083333 0.802083 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.625000 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.625000 1.000000 -vt 0.625000 0.958333 -vt 0.708333 0.958333 -vt 0.625000 1.000000 -vt 0.625000 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.041667 0.000000 -vt 0.000000 0.000000 -vt 0.083333 0.406250 -vt 0.083333 0.000000 -vt 0.125000 1.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.041667 0.000000 -vt 0.083333 0.406250 -vt 0.083333 0.406250 -vt 0.041667 0.000000 -vt 0.083333 0.000000 -vt 0.125000 1.000000 -vt 0.000000 -0.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.041667 -0.000000 -vt 0.083333 0.406250 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.125000 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.541667 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.510417 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.510417 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.666667 0.415667 -vt 0.646833 0.395833 -vt 0.666667 0.376000 -vt 0.625000 0.000000 -vt 0.583333 0.041667 -vt 0.625000 0.041667 -vt 0.583333 0.125000 -vt 0.625000 0.166667 -vt 0.625000 0.125000 -vt 0.708333 0.166667 -vt 0.750000 0.125000 -vt 0.708333 0.125000 -vt 0.750000 0.041667 -vt 0.708333 -0.000000 -vt 0.708333 0.041667 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.625000 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.541667 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.541667 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.416667 1.000000 -vt 0.416667 0.958333 -vt 0.458333 0.958333 -vt 0.583333 0.000000 -vt 0.583333 0.166667 -vt 0.750000 0.166667 -vt 0.750000 -0.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.166667 0.000000 -vt 0.166667 1.000000 -vt 0.416667 -0.000000 -vt 0.541667 0.291667 -vt 0.541667 0.208333 -vt 0.541667 0.208333 -vt 0.541667 0.208333 -vt 0.638878 0.305545 -vt 0.638878 0.361122 -vt 0.694455 0.361122 -vt 0.705965 0.333333 -vt 0.694455 0.305545 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.625000 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.166667 0.000000 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.166667 1.000000 -vt -0.000000 0.000000 -vt 0.083333 0.000000 -vt 0.166667 0.000000 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.166667 1.000000 -vt 0.083333 -0.000000 +v -1.250000 0.000000 -1.500000 +v -1.500000 0.000000 -1.250000 +v -1.500000 0.000000 -1.500000 +v 0.750000 8.750000 0.750000 +v 0.750000 8.750000 0.500000 +v 0.500000 8.750000 0.750000 +v 0.500000 8.750000 0.500000 +v -0.500000 8.750000 0.750000 +v -0.500000 8.750000 0.500000 +v -0.750000 8.750000 0.750000 +v -0.750000 8.750000 0.500000 +v 0.750000 8.750000 -0.500000 +v 0.750000 8.750000 -0.750000 +v 0.500000 8.750000 -0.500000 +v 0.500000 8.750000 -0.750000 +v -0.500000 8.750000 -0.500000 +v -0.500000 8.750000 -0.750000 +v -0.750000 8.750000 -0.500000 +v -0.750000 8.750000 -0.750000 +v 1.125000 3.750000 1.125000 +v 1.125000 3.750000 0.875000 +v 0.875000 3.750000 1.125000 +v 0.875000 3.750000 0.875000 +v -0.875000 3.750000 1.125000 +v -0.875000 3.750000 0.875000 +v -1.125000 3.750000 1.125000 +v -1.125000 3.750000 0.875000 +v 1.125000 3.750000 -0.875000 +v 1.125000 3.750000 -1.125000 +v 0.875000 3.750000 -0.875000 +v 0.875000 3.750000 -1.125000 +v -0.875000 3.750000 -0.875000 +v -0.875000 3.750000 -1.125000 +v -1.125000 3.750000 -0.875000 +v -1.125000 3.750000 -1.125000 +v -1.125000 4.000000 -1.125000 +v -1.125000 4.000000 -0.875000 +v -0.875000 4.000000 -1.125000 +v -0.875000 4.000000 -0.875000 +v 0.875000 4.000000 -1.125000 +v 0.875000 4.000000 -0.875000 +v 1.125000 4.000000 -1.125000 +v 1.125000 4.000000 -0.875000 +v -1.125000 4.000000 0.875000 +v -1.125000 4.000000 1.125000 +v -0.875000 4.000000 0.875000 +v -0.875000 4.000000 1.125000 +v 0.875000 4.000000 0.875000 +v 0.875000 4.000000 1.125000 +v 1.125000 4.000000 0.875000 +v 1.125000 4.000000 1.125000 +v -0.875000 8.750000 0.875000 +v 0.875000 8.750000 0.875000 +v -0.875000 8.750000 -0.875000 +v 0.875000 8.750000 -0.875000 +v -0.500000 9.000000 -0.500000 +v -0.500000 9.000000 0.500000 +v 0.500000 9.000000 0.500000 +v 0.500000 9.000000 -0.500000 +v -0.875000 9.000000 -0.875000 +v -0.875000 9.000000 0.875000 +v 0.875000 9.000000 0.875000 +v 0.875000 9.000000 -0.875000 +v -0.500000 8.750000 -0.500000 +v -0.500000 8.750000 0.500000 +v 0.500000 8.750000 0.500000 +v 0.500000 8.750000 -0.500000 +v -0.500000 9.000000 -0.500000 +v 0.500000 9.000000 -0.500000 +v -0.500000 9.250000 -0.500000 +v 0.500000 9.250000 -0.500000 +v -0.250000 9.500000 -0.500000 +v 0.250000 9.500000 -0.500000 +v -0.500000 9.000000 -0.750000 +v 0.500000 9.000000 -0.750000 +v -0.500000 9.250000 -0.750000 +v 0.500000 9.250000 -0.750000 +v -0.250000 9.500000 -0.750000 +v 0.250000 9.500000 -0.750000 +v -0.500000 9.000000 0.750000 +v 0.500000 9.000000 0.750000 +v -0.500000 9.250000 0.750000 +v 0.500000 9.250000 0.750000 +v -0.250000 9.500000 0.750000 +v 0.250000 9.500000 0.750000 +v -0.500000 9.000000 0.500000 +v 0.500000 9.000000 0.500000 +v -0.500000 9.250000 0.500000 +v 0.500000 9.250000 0.500000 +v -0.250000 9.500000 0.500000 +v 0.250000 9.500000 0.500000 +v 0.000000 9.750000 0.500000 +v -0.187500 9.699759 0.500000 +v -0.324759 9.562500 0.500000 +v -0.375000 9.375000 0.500000 +v -0.324759 9.187500 0.500000 +v -0.187500 9.050241 0.500000 +v 0.000000 9.000000 0.500000 +v 0.187500 9.050241 0.500000 +v 0.324759 9.187500 0.500000 +v 0.375000 9.375000 0.500000 +v 0.324759 9.562500 0.500000 +v 0.187500 9.699759 0.500000 +v -0.187500 9.699759 0.375000 +v 0.000000 9.750000 0.375000 +v -0.324759 9.562500 0.375000 +v -0.375000 9.375000 0.375000 +v -0.324759 9.187500 0.375000 +v -0.187500 9.050241 0.375000 +v 0.000000 9.000000 0.375000 +v 0.187500 9.050241 0.375000 +v 0.324759 9.187500 0.375000 +v 0.375000 9.375000 0.375000 +v 0.324759 9.562500 0.375000 +v 0.187500 9.699759 0.375000 +v 0.000000 9.625000 0.375000 +v -0.125000 9.591506 0.375000 +v -0.216506 9.500000 0.375000 +v -0.250000 9.375000 0.375000 +v -0.216506 9.250000 0.375000 +v -0.125000 9.158494 0.375000 +v 0.000000 9.125000 0.375000 +v 0.125000 9.158494 0.375000 +v 0.216506 9.250000 0.375000 +v 0.250000 9.375000 0.375000 +v 0.216506 9.500000 0.375000 +v 0.125000 9.591506 0.375000 +v 0.000000 9.625000 -0.375000 +v -0.125000 9.591506 -0.375000 +v -0.216506 9.500000 -0.375000 +v -0.250000 9.375000 -0.375000 +v -0.216506 9.250000 -0.375000 +v -0.125000 9.158494 -0.375000 +v 0.000000 9.125000 -0.375000 +v 0.125000 9.158494 -0.375000 +v 0.216506 9.250000 -0.375000 +v 0.250000 9.375000 -0.375000 +v 0.216506 9.500000 -0.375000 +v 0.125000 9.591506 -0.375000 +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.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.312500 4.000000 -0.312500 +v -0.312500 4.000000 0.312500 +v 0.312500 4.000000 0.312500 +v 0.312500 4.000000 -0.312500 +v -0.312500 4.125000 -0.312500 +v -0.312500 4.125000 0.312500 +v 0.312500 4.125000 0.312500 +v 0.312500 4.125000 -0.312500 +v -0.250000 4.187500 -0.250000 +v -0.250000 4.187500 0.250000 +v 0.250000 4.187500 0.250000 +v 0.250000 4.187500 -0.250000 +v -0.250000 4.375000 -0.250000 +v -0.250000 4.375000 0.250000 +v 0.250000 4.375000 0.250000 +v 0.250000 4.375000 -0.250000 +v -0.062500 4.375000 0.250000 +v 0.062500 4.375000 0.250000 +v -0.062500 4.375000 -0.250000 +v 0.062500 4.375000 -0.250000 +v -0.062500 4.750000 -0.250000 +v -0.062500 4.750000 0.250000 +v 0.062500 4.750000 0.250000 +v 0.062500 4.750000 -0.250000 +v -0.062500 4.375000 0.125000 +v -0.062500 4.625000 0.125000 +v -0.062500 4.375000 -0.125000 +v -0.062500 4.625000 -0.125000 +v 0.062500 4.375000 0.125000 +v 0.062500 4.625000 0.125000 +v 0.062500 4.375000 -0.125000 +v 0.062500 4.625000 -0.125000 +v -0.125000 5.250000 -0.125000 +v -0.125000 5.250000 0.125000 +v 0.125000 5.250000 0.125000 +v 0.125000 5.250000 -0.125000 +v -0.312500 6.000000 -0.125000 +v -0.312500 6.000000 0.125000 +v 0.312500 6.000000 0.125000 +v 0.312500 6.000000 -0.125000 +v -0.125000 4.625000 0.062500 +v 0.125000 4.625000 0.062500 +v -0.125000 4.625000 -0.062500 +v 0.125000 4.625000 -0.062500 +v -0.187500 4.687500 0.062500 +v 0.187500 4.687500 0.062500 +v -0.187500 4.687500 -0.062500 +v 0.187500 4.687500 -0.062500 +v -0.187500 4.937500 0.062500 +v -0.187500 4.937500 -0.062500 +v 0.062500 5.000000 0.062500 +v 0.062500 5.000000 -0.062500 +v 0.062500 5.500000 0.062500 +v 0.062500 5.500000 -0.062500 +v -0.062500 5.500000 0.062500 +v -0.062500 5.500000 -0.062500 +v -0.062500 5.125000 0.062500 +v -0.062500 5.125000 -0.062500 +v -0.312500 4.937500 0.062500 +v -0.312500 4.937500 -0.062500 +v -0.312500 4.687500 0.062500 +v -0.312500 4.687500 -0.062500 +v -0.125000 4.500000 0.062500 +v -0.125000 4.500000 -0.062500 +v 0.125000 4.500000 0.062500 +v 0.125000 4.500000 -0.062500 +v 0.312500 4.687500 0.062500 +v 0.312500 4.687500 -0.062500 +v 0.187500 6.000000 0.031250 +v 0.250000 6.000000 0.031250 +v 0.187500 6.000000 -0.031250 +v 0.250000 6.000000 -0.031250 +v 0.187500 9.375000 0.031250 +v 0.250000 9.375000 0.031250 +v 0.187500 9.375000 -0.031250 +v 0.250000 9.375000 -0.031250 +v -0.250000 6.000000 0.031250 +v -0.187500 6.000000 0.031250 +v -0.250000 6.000000 -0.031250 +v -0.187500 6.000000 -0.031250 +v -0.250000 9.375000 0.031250 +v -0.187500 9.375000 0.031250 +v -0.250000 9.375000 -0.031250 +v -0.187500 9.375000 -0.031250 +v -1.062500 2.687500 1.031250 +v 1.187500 1.875000 1.125000 +v -1.062500 2.812500 1.031250 +v 1.187500 2.000000 1.125000 +v -0.937500 3.625000 0.937500 +v 1.062500 2.812500 1.000000 +v -0.937500 3.750000 0.937500 +v 1.062500 2.937500 1.000000 +v -1.062500 2.812500 1.156250 +v -1.062500 2.687500 1.156250 +v 1.187500 1.875000 1.250000 +v 1.187500 2.000000 1.250000 +v -0.937500 3.750000 1.062500 +v -0.937500 3.625000 1.062500 +v 1.062500 2.812500 1.125000 +v 1.062500 2.937500 1.125000 +v -1.187500 1.750000 1.125000 +v 1.312500 0.937500 1.218750 +v -1.187500 1.875000 1.125000 +v 1.312500 1.062500 1.218750 +v -1.187500 1.875000 1.250000 +v -1.187500 1.750000 1.250000 +v 1.312500 0.937500 1.343750 +v 1.312500 1.062500 1.343750 +v 1.187500 1.750000 1.125000 +v -1.312500 0.937500 1.218750 +v 1.187500 1.875000 1.125000 +v -1.312500 1.062500 1.218750 +v 1.062500 2.687500 1.031250 +v -1.187500 1.875000 1.125000 +v 1.062500 2.812500 1.031250 +v -1.187500 2.000000 1.125000 +v 0.937500 3.625000 0.937500 +v -1.062500 2.812500 1.000000 +v 0.937500 3.750000 0.937500 +v -1.062500 2.937500 1.000000 +v 1.187500 1.875000 1.250000 +v 1.187500 1.750000 1.250000 +v -1.312500 0.937500 1.343750 +v -1.312500 1.062500 1.343750 +v 1.062500 2.812500 1.156250 +v 1.062500 2.687500 1.156250 +v -1.187500 1.875000 1.250000 +v -1.187500 2.000000 1.250000 +v 0.937500 3.750000 1.062500 +v 0.937500 3.625000 1.062500 +v -1.062500 2.812500 1.125000 +v -1.062500 2.937500 1.125000 +v -0.125000 5.000000 0.062500 +v -0.125000 5.000000 -0.062500 +v -0.125000 5.125000 0.062500 +v -0.125000 5.125000 -0.062500 +v 1.000000 4.000000 1.062500 +v 1.000000 4.000000 0.937500 +v -0.937500 5.062500 0.937500 +v -0.937500 5.062500 0.812500 +v -0.937500 5.187500 0.937500 +v 1.000000 4.125000 1.062500 +v 1.000000 4.125000 0.937500 +v -0.937500 5.187500 0.812500 +v 0.937500 5.187500 0.937500 +v 0.937500 5.187500 0.812500 +v -0.812500 6.250000 0.875000 +v -0.812500 6.250000 0.750000 +v -0.812500 6.375000 0.875000 +v 0.937500 5.312500 0.937500 +v 0.937500 5.312500 0.812500 +v -0.812500 6.375000 0.750000 +v 0.812500 6.375000 0.875000 +v 0.812500 6.375000 0.750000 +v -0.750000 7.437500 0.750000 +v -0.750000 7.437500 0.625000 +v -0.750000 7.562500 0.750000 +v 0.812500 6.500000 0.875000 +v 0.812500 6.500000 0.750000 +v -0.750000 7.562500 0.625000 +v 0.750000 7.562500 0.750000 +v 0.750000 7.562500 0.625000 +v -0.687500 8.624999 0.687500 +v -0.687500 8.624999 0.562500 +v -0.687500 8.749999 0.687500 +v 0.750000 7.687500 0.750000 +v 0.750000 7.687500 0.625000 +v -0.687500 8.749999 0.562500 +v -1.000000 4.000000 1.062500 +v -1.000000 4.000000 0.937500 +v 0.937500 5.062500 0.937500 +v 0.937500 5.062500 0.812500 +v 0.937500 5.187500 0.937500 +v -1.000000 4.125000 1.062500 +v -1.000000 4.125000 0.937500 +v 0.937500 5.187500 0.812500 +v -0.937500 5.187500 0.937500 +v -0.937500 5.187500 0.812500 +v 0.812500 6.250000 0.875000 +v 0.812500 6.250000 0.750000 +v 0.812500 6.375000 0.875000 +v -0.937500 5.312500 0.937500 +v -0.937500 5.312500 0.812500 +v 0.812500 6.375000 0.750000 +v -0.812500 6.375000 0.875000 +v -0.812500 6.375000 0.750000 +v 0.750000 7.437500 0.750000 +v 0.750000 7.437500 0.625000 +v 0.750000 7.562500 0.750000 +v -0.812500 6.500000 0.875000 +v -0.812500 6.500000 0.750000 +v 0.750000 7.562500 0.625000 +v -0.750000 7.562500 0.750000 +v -0.750000 7.562500 0.625000 +v 0.687500 8.624999 0.687500 +v 0.687500 8.624999 0.562500 +v 0.687500 8.749999 0.687500 +v -0.750000 7.687500 0.750000 +v -0.750000 7.687500 0.625000 +v 0.687500 8.749999 0.562500 +v 0.000000 9.750000 -0.500000 +v 0.187500 9.699759 -0.500000 +v 0.324759 9.562500 -0.500000 +v 0.375000 9.375000 -0.500000 +v 0.324759 9.187500 -0.500000 +v 0.187500 9.050241 -0.500000 +v 0.000000 9.000000 -0.500000 +v -0.187500 9.050241 -0.500000 +v -0.324759 9.187500 -0.500000 +v -0.375000 9.375000 -0.500000 +v -0.324759 9.562500 -0.500000 +v -0.187500 9.699759 -0.500000 +v 0.187500 9.699759 -0.375000 +v 0.000000 9.750000 -0.375000 +v 0.324759 9.562500 -0.375000 +v 0.375000 9.375000 -0.375000 +v 0.324759 9.187500 -0.375000 +v 0.187500 9.050241 -0.375000 +v 0.000000 9.000000 -0.375000 +v -0.187500 9.050241 -0.375000 +v -0.324759 9.187500 -0.375000 +v -0.375000 9.375000 -0.375000 +v -0.324759 9.562500 -0.375000 +v -0.187500 9.699759 -0.375000 +v 1.062500 2.687500 -1.031250 +v -1.187500 1.875000 -1.125000 +v 1.062500 2.812500 -1.031250 +v -1.187500 2.000000 -1.125000 +v 0.937500 3.625000 -0.937500 +v -1.062500 2.812500 -1.000000 +v 0.937500 3.750000 -0.937500 +v -1.062500 2.937500 -1.000000 +v 1.062500 2.812500 -1.156250 +v 1.062500 2.687500 -1.156250 +v -1.187500 1.875000 -1.250000 +v -1.187500 2.000000 -1.250000 +v 0.937500 3.750000 -1.062500 +v 0.937500 3.625000 -1.062500 +v -1.062500 2.812500 -1.125000 +v -1.062500 2.937500 -1.125000 +v 1.187500 1.750000 -1.125000 +v -1.312500 0.937500 -1.218750 +v 1.187500 1.875000 -1.125000 +v -1.312500 1.062500 -1.218750 +v 1.187500 1.875000 -1.250000 +v 1.187500 1.750000 -1.250000 +v -1.312500 0.937500 -1.343750 +v -1.312500 1.062500 -1.343750 +v -1.187500 1.750000 -1.125000 +v 1.312500 0.937500 -1.218750 +v -1.187500 1.875000 -1.125000 +v 1.312500 1.062500 -1.218750 +v -1.062500 2.687500 -1.031250 +v 1.187500 1.875000 -1.125000 +v -1.062500 2.812500 -1.031250 +v 1.187500 2.000000 -1.125000 +v -0.937500 3.625000 -0.937500 +v 1.062500 2.812500 -1.000000 +v -0.937500 3.750000 -0.937500 +v 1.062500 2.937500 -1.000000 +v -1.187500 1.875000 -1.250000 +v -1.187500 1.750000 -1.250000 +v 1.312500 0.937500 -1.343750 +v 1.312500 1.062500 -1.343750 +v -1.062500 2.812500 -1.156250 +v -1.062500 2.687500 -1.156250 +v 1.187500 1.875000 -1.250000 +v 1.187500 2.000000 -1.250000 +v -0.937500 3.750000 -1.062500 +v -0.937500 3.625000 -1.062500 +v 1.062500 2.812500 -1.125000 +v 1.062500 2.937500 -1.125000 +v -1.000000 4.000000 -1.062500 +v -1.000000 4.000000 -0.937500 +v 0.937500 5.062500 -0.937500 +v 0.937500 5.062500 -0.812500 +v 0.937500 5.187500 -0.937500 +v -1.000000 4.125000 -1.062500 +v -1.000000 4.125000 -0.937500 +v 0.937500 5.187500 -0.812500 +v -0.937500 5.187500 -0.937500 +v -0.937500 5.187500 -0.812500 +v 0.812500 6.250000 -0.875000 +v 0.812500 6.250000 -0.750000 +v 0.812500 6.375000 -0.875000 +v -0.937500 5.312500 -0.937500 +v -0.937500 5.312500 -0.812500 +v 0.812500 6.375000 -0.750000 +v -0.812500 6.375000 -0.875000 +v -0.812500 6.375000 -0.750000 +v 0.750000 7.437500 -0.750000 +v 0.750000 7.437500 -0.625000 +v 0.750000 7.562500 -0.750000 +v -0.812500 6.500000 -0.875000 +v -0.812500 6.500000 -0.750000 +v 0.750000 7.562500 -0.625000 +v -0.750000 7.562500 -0.750000 +v -0.750000 7.562500 -0.625000 +v 0.687500 8.624999 -0.687500 +v 0.687500 8.624999 -0.562500 +v 0.687500 8.749999 -0.687500 +v -0.750000 7.687500 -0.750000 +v -0.750000 7.687500 -0.625000 +v 0.687500 8.749999 -0.562500 +v 1.000000 4.000000 -1.062500 +v 1.000000 4.000000 -0.937500 +v -0.937500 5.062500 -0.937500 +v -0.937500 5.062500 -0.812500 +v -0.937500 5.187500 -0.937500 +v 1.000000 4.125000 -1.062500 +v 1.000000 4.125000 -0.937500 +v -0.937500 5.187500 -0.812500 +v 0.937500 5.187500 -0.937500 +v 0.937500 5.187500 -0.812500 +v -0.812500 6.250000 -0.875000 +v -0.812500 6.250000 -0.750000 +v -0.812500 6.375000 -0.875000 +v 0.937500 5.312500 -0.937500 +v 0.937500 5.312500 -0.812500 +v -0.812500 6.375000 -0.750000 +v 0.812500 6.375000 -0.875000 +v 0.812500 6.375000 -0.750000 +v -0.750000 7.437500 -0.750000 +v -0.750000 7.437500 -0.625000 +v -0.750000 7.562500 -0.750000 +v 0.812500 6.500000 -0.875000 +v 0.812500 6.500000 -0.750000 +v -0.750000 7.562500 -0.625000 +v 0.750000 7.562500 -0.750000 +v 0.750000 7.562500 -0.625000 +v -0.687500 8.624999 -0.687500 +v -0.687500 8.624999 -0.562500 +v -0.687500 8.749999 -0.687500 +v 0.750000 7.687500 -0.750000 +v 0.750000 7.687500 -0.625000 +v -0.687500 8.749999 -0.562500 +v 1.031250 2.687500 1.062500 +v 1.125000 1.875000 -1.187500 +v 1.031250 2.812500 1.062500 +v 1.125000 2.000000 -1.187500 +v 0.937500 3.625000 0.937500 +v 1.000000 2.812500 -1.062500 +v 0.937500 3.750000 0.937500 +v 1.000000 2.937500 -1.062500 +v 1.156250 2.812500 1.062500 +v 1.156250 2.687500 1.062500 +v 1.250000 1.875000 -1.187500 +v 1.250000 2.000000 -1.187500 +v 1.062500 3.750000 0.937500 +v 1.062500 3.625000 0.937500 +v 1.125000 2.812500 -1.062500 +v 1.125000 2.937500 -1.062500 +v 1.125000 1.750000 1.187500 +v 1.218750 0.937500 -1.312500 +v 1.125000 1.875000 1.187500 +v 1.218750 1.062500 -1.312500 +v 1.250000 1.875000 1.187500 +v 1.250000 1.750000 1.187500 +v 1.343750 0.937500 -1.312500 +v 1.343750 1.062500 -1.312500 +v 1.125000 1.750000 -1.187500 +v 1.218750 0.937500 1.312500 +v 1.125000 1.875000 -1.187500 +v 1.218750 1.062500 1.312500 +v 1.031250 2.687500 -1.062500 +v 1.125000 1.875000 1.187500 +v 1.031250 2.812500 -1.062500 +v 1.125000 2.000000 1.187500 +v 0.937500 3.625000 -0.937500 +v 1.000000 2.812500 1.062500 +v 0.937500 3.750000 -0.937500 +v 1.000000 2.937500 1.062500 +v 1.250000 1.875000 -1.187500 +v 1.250000 1.750000 -1.187500 +v 1.343750 0.937500 1.312500 +v 1.343750 1.062500 1.312500 +v 1.156250 2.812500 -1.062500 +v 1.156250 2.687500 -1.062500 +v 1.250000 1.875000 1.187500 +v 1.250000 2.000000 1.187500 +v 1.062500 3.750000 -0.937500 +v 1.062500 3.625000 -0.937500 +v 1.125000 2.812500 1.062500 +v 1.125000 2.937500 1.062500 +v 1.062500 4.000000 -1.000000 +v 0.937500 4.000000 -1.000000 +v 0.937500 5.062499 0.937500 +v 0.812500 5.062499 0.937500 +v 0.937500 5.187499 0.937500 +v 1.062500 4.124999 -1.000000 +v 0.937500 4.124999 -1.000000 +v 0.812500 5.187499 0.937500 +v 0.937500 5.187499 -0.937500 +v 0.812500 5.187499 -0.937500 +v 0.875000 6.249999 0.812500 +v 0.750000 6.249999 0.812500 +v 0.875000 6.374999 0.812500 +v 0.937500 5.312499 -0.937500 +v 0.812500 5.312499 -0.937500 +v 0.750000 6.374999 0.812500 +v 0.875000 6.374999 -0.812500 +v 0.750000 6.374999 -0.812500 +v 0.750000 7.437499 0.750000 +v 0.625000 7.437499 0.750000 +v 0.750000 7.562499 0.750000 +v 0.875000 6.499999 -0.812500 +v 0.750000 6.499999 -0.812500 +v 0.625000 7.562499 0.750000 +v 0.750000 7.562499 -0.750000 +v 0.625000 7.562499 -0.750000 +v 0.687500 8.624998 0.687500 +v 0.562500 8.624998 0.687500 +v 0.687500 8.749998 0.687500 +v 0.750000 7.687499 -0.750000 +v 0.625000 7.687499 -0.750000 +v 0.562500 8.749998 0.687500 +v 1.062500 4.000000 1.000000 +v 0.937500 4.000000 1.000000 +v 0.937500 5.062499 -0.937500 +v 0.812500 5.062499 -0.937500 +v 0.937500 5.187499 -0.937500 +v 1.062500 4.124999 1.000000 +v 0.937500 4.124999 1.000000 +v 0.812500 5.187499 -0.937500 +v 0.937500 5.187499 0.937500 +v 0.812500 5.187499 0.937500 +v 0.875000 6.249999 -0.812500 +v 0.750000 6.249999 -0.812500 +v 0.875000 6.374999 -0.812500 +v 0.937500 5.312499 0.937500 +v 0.812500 5.312499 0.937500 +v 0.750000 6.374999 -0.812500 +v 0.875000 6.374999 0.812500 +v 0.750000 6.374999 0.812500 +v 0.750000 7.437499 -0.750000 +v 0.625000 7.437499 -0.750000 +v 0.750000 7.562499 -0.750000 +v 0.875000 6.499999 0.812500 +v 0.750000 6.499999 0.812500 +v 0.625000 7.562499 -0.750000 +v 0.750000 7.562499 0.750000 +v 0.625000 7.562499 0.750000 +v 0.687500 8.624998 -0.687500 +v 0.562500 8.624998 -0.687500 +v 0.687500 8.749998 -0.687500 +v 0.750000 7.687499 0.750000 +v 0.625000 7.687499 0.750000 +v 0.562500 8.749998 -0.687500 +v -1.031250 2.687500 -1.062500 +v -1.125000 1.875000 1.187500 +v -1.031250 2.812500 -1.062500 +v -1.125000 2.000000 1.187500 +v -0.937500 3.625000 -0.937500 +v -1.000000 2.812500 1.062500 +v -0.937500 3.750000 -0.937500 +v -1.000000 2.937500 1.062500 +v -1.156250 2.812500 -1.062500 +v -1.156250 2.687500 -1.062500 +v -1.250000 1.875000 1.187500 +v -1.250000 2.000000 1.187500 +v -1.062500 3.750000 -0.937500 +v -1.062500 3.625000 -0.937500 +v -1.125000 2.812500 1.062500 +v -1.125000 2.937500 1.062500 +v -1.125000 1.750000 -1.187500 +v -1.218750 0.937500 1.312500 +v -1.125000 1.875000 -1.187500 +v -1.218750 1.062500 1.312500 +v -1.250000 1.875000 -1.187500 +v -1.250000 1.750000 -1.187500 +v -1.343750 0.937500 1.312500 +v -1.343750 1.062500 1.312500 +v -1.125000 1.750000 1.187500 +v -1.218750 0.937500 -1.312500 +v -1.125000 1.875000 1.187500 +v -1.218750 1.062500 -1.312500 +v -1.031250 2.687500 1.062500 +v -1.125000 1.875000 -1.187500 +v -1.031250 2.812500 1.062500 +v -1.125000 2.000000 -1.187500 +v -0.937500 3.625000 0.937500 +v -1.000000 2.812500 -1.062500 +v -0.937500 3.750000 0.937500 +v -1.000000 2.937500 -1.062500 +v -1.250000 1.875000 1.187500 +v -1.250000 1.750000 1.187500 +v -1.343750 0.937500 -1.312500 +v -1.343750 1.062500 -1.312500 +v -1.156250 2.812500 1.062500 +v -1.156250 2.687500 1.062500 +v -1.250000 1.875000 -1.187500 +v -1.250000 2.000000 -1.187500 +v -1.062500 3.750000 0.937500 +v -1.062500 3.625000 0.937500 +v -1.125000 2.812500 -1.062500 +v -1.125000 2.937500 -1.062500 +v -1.062500 4.000000 1.000000 +v -0.937500 4.000000 1.000000 +v -0.937500 5.062499 -0.937500 +v -0.812500 5.062499 -0.937500 +v -0.937500 5.187499 -0.937500 +v -1.062500 4.124999 1.000000 +v -0.937500 4.124999 1.000000 +v -0.812500 5.187499 -0.937500 +v -0.937500 5.187499 0.937500 +v -0.812500 5.187499 0.937500 +v -0.875000 6.249999 -0.812500 +v -0.750000 6.249999 -0.812500 +v -0.875000 6.374999 -0.812500 +v -0.937500 5.312499 0.937500 +v -0.812500 5.312499 0.937500 +v -0.750000 6.374999 -0.812500 +v -0.875000 6.374999 0.812500 +v -0.750000 6.374999 0.812500 +v -0.750000 7.437499 -0.750000 +v -0.625000 7.437499 -0.750000 +v -0.750000 7.562499 -0.750000 +v -0.875000 6.499999 0.812500 +v -0.750000 6.499999 0.812500 +v -0.625000 7.562499 -0.750000 +v -0.750000 7.562499 0.750000 +v -0.625000 7.562499 0.750000 +v -0.687500 8.624998 -0.687500 +v -0.562500 8.624998 -0.687500 +v -0.687500 8.749998 -0.687500 +v -0.750000 7.687499 0.750000 +v -0.625000 7.687499 0.750000 +v -0.562500 8.749998 -0.687500 +v -1.062500 4.000000 -1.000000 +v -0.937500 4.000000 -1.000000 +v -0.937500 5.062499 0.937500 +v -0.812500 5.062499 0.937500 +v -0.937500 5.187499 0.937500 +v -1.062500 4.124999 -1.000000 +v -0.937500 4.124999 -1.000000 +v -0.812500 5.187499 0.937500 +v -0.937500 5.187499 -0.937500 +v -0.812500 5.187499 -0.937500 +v -0.875000 6.249999 0.812500 +v -0.750000 6.249999 0.812500 +v -0.875000 6.374999 0.812500 +v -0.937500 5.312499 -0.937500 +v -0.812500 5.312499 -0.937500 +v -0.750000 6.374999 0.812500 +v -0.875000 6.374999 -0.812500 +v -0.750000 6.374999 -0.812500 +v -0.750000 7.437499 0.750000 +v -0.625000 7.437499 0.750000 +v -0.750000 7.562499 0.750000 +v -0.875000 6.499999 -0.812500 +v -0.750000 6.499999 -0.812500 +v -0.625000 7.562499 0.750000 +v -0.750000 7.562499 -0.750000 +v -0.625000 7.562499 -0.750000 +v -0.687500 8.624998 0.687500 +v -0.562500 8.624998 0.687500 +v -0.687500 8.749998 0.687500 +v -0.750000 7.687499 -0.750000 +v -0.625000 7.687499 -0.750000 +v -0.562500 8.749998 0.687500 +vt 0.580645 0.090909 +vt 0.709677 0.272727 +vt 0.580645 0.272727 +vt 0.709677 0.454545 +vt 0.580645 0.636364 +vt 0.580645 0.454545 +vt 0.709677 0.272727 +vt 0.580645 0.454545 +vt 0.580645 0.272727 +vt 0.709677 0.272727 +vt 0.580645 0.454545 +vt 0.580645 0.272727 +vt 0.709677 0.272727 +vt 0.580645 0.454545 +vt 0.580645 0.272727 +vt 0.258065 0.045455 +vt 0.580645 0.000000 +vt 0.580645 0.045455 +vt 0.306452 0.431818 +vt 0.258065 0.045455 +vt 0.306452 0.113636 +vt 0.580645 0.045455 +vt 0.532258 0.113636 +vt 0.580645 0.500000 +vt 0.532258 0.431818 +vt 0.258065 0.500000 +vt 0.258065 0.045455 +vt 0.580645 0.000000 +vt 0.580645 0.045455 +vt 0.306452 0.431818 +vt 0.532258 0.386364 +vt 0.532258 0.431818 +vt 0.306452 0.431818 +vt 0.532258 0.386364 +vt 0.532258 0.431818 +vt 0.258065 0.045455 +vt 0.580645 0.000000 +vt 0.580645 0.045455 +vt 0.580645 0.000000 +vt 0.532258 0.386364 +vt 0.306452 0.431818 +vt 0.532258 0.386364 +vt 0.532258 0.431818 +vt 0.258065 0.045455 +vt 0.532258 0.113636 +vt 0.306452 0.113636 +vt 0.580645 0.045455 +vt 0.532258 0.431818 +vt 0.580645 0.500000 +vt 0.306452 0.431818 +vt 0.258065 0.500000 +vt 0.032258 0.045455 vt -0.000000 -0.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.166667 0.000000 -vt 0.166667 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.510417 -vt 0.468750 0.510417 -vt 0.680691 0.381809 -vt 0.686501 0.395833 -vt 0.680691 0.409858 -vt 0.652642 0.409858 -vt 0.652642 0.381809 -vt 0.583333 0.000000 -vt 0.583333 0.166667 -vt 0.750000 0.166667 -vt 0.750000 -0.000000 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.416667 1.000000 -vt 0.385417 0.000000 -vt 0.416667 0.000000 -vt 0.385417 1.000000 -vt 0.354167 0.000000 -vt 0.197917 1.000000 -vt 0.166667 0.000000 -vt 0.197917 0.000000 -vt 0.229167 1.000000 -vt 0.229167 0.000000 -vt 0.260417 1.000000 -vt 0.260417 0.000000 -vt 0.291667 1.000000 -vt 0.291667 0.000000 -vt 0.322917 1.000000 -vt 0.322917 0.000000 -vt 0.354167 1.000000 -vt 0.666667 0.166667 -vt 0.645833 0.291667 -vt 0.645833 0.166667 -vt 0.708333 0.166667 -vt 0.687500 0.291667 -vt 0.687500 0.166667 -vt 0.729167 0.166667 -vt 0.708333 0.291667 -vt 0.604167 0.166667 -vt 0.583333 0.291667 -vt 0.583333 0.166667 -vt 0.625000 0.291667 -vt 0.625000 0.166667 -vt 0.666667 0.291667 -vt 0.750000 0.166667 -vt 0.729167 0.291667 -vt 0.604167 0.291667 -vt 0.166667 1.000000 -vt 0.750000 0.291667 +vt 0.032258 0.000000 +vt 0.032258 0.000000 +vt -0.000000 0.045455 +vt -0.000000 -0.000000 +vt -0.000000 0.045455 +vt 0.032258 0.000000 +vt 0.032258 0.045455 +vt -0.000000 -0.000000 +vt 0.032258 0.045455 +vt -0.000000 0.045455 +vt -0.000000 0.045455 +vt 0.032258 0.727273 +vt -0.000000 0.727273 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.096774 0.045455 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.096774 0.045455 +vt 0.064516 0.727273 +vt 0.064516 0.045455 +vt 0.064516 0.727273 +vt 0.032258 0.727273 +vt -0.000000 0.727273 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.096774 0.045455 +vt 0.032258 0.727273 +vt -0.000000 0.727273 +vt 0.032258 0.045455 +vt 0.064516 0.727273 +vt 0.032258 0.727273 +vt 0.096774 0.045455 +vt 0.064516 0.727273 +vt 0.064516 0.045455 +vt -0.000000 0.727273 +vt 0.064516 0.045455 +vt 0.064516 0.045455 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.193548 0.863636 +vt 0.161290 -0.000000 +vt 0.193548 -0.000000 +vt 0.129032 0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.863636 +vt 0.225806 0.863636 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.225806 -0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.000000 +vt 0.161290 -0.000000 +vt 0.225806 0.863636 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.193548 0.863636 +vt 0.225806 -0.000000 +vt 0.193548 -0.000000 +vt 0.193548 0.863636 +vt 0.225806 -0.000000 +vt 0.225806 0.863636 +vt 0.161290 -0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.000000 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.225806 0.863636 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.193548 0.863636 +vt 0.225806 -0.000000 +vt 0.161290 -0.000000 +vt 0.193548 -0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.000000 +vt 0.306452 0.795455 +vt 0.435484 0.750000 +vt 0.435484 0.795455 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.306452 0.795455 +vt 0.306452 0.613636 +vt 0.483871 0.545455 +vt 0.435484 0.613636 +vt 0.483871 0.863636 +vt 0.435484 0.795455 +vt 0.258065 0.863636 +vt 0.483871 0.863636 +vt 0.435484 0.613636 +vt 0.483871 0.545455 +vt 0.306452 0.795455 +vt 0.435484 0.750000 +vt 0.435484 0.795455 +vt 0.435484 0.750000 +vt 0.306452 0.795455 +vt 0.435484 0.750000 +vt 0.435484 0.795455 +vt 0.258065 0.545455 +vt 0.306452 0.613636 +vt 0.258065 0.863636 +vt 0.435484 0.795455 +vt 0.306452 0.795455 +vt 0.338710 0.113636 +vt 0.467742 0.113636 +vt 0.435484 0.204545 +vt 0.338710 0.250000 +vt 0.370968 0.204545 +vt 0.370968 0.250000 +vt 0.435484 0.204545 +vt 0.435484 0.250000 +vt 0.467742 0.250000 +vt 0.500000 0.204545 +vt 0.500000 0.250000 +vt 0.467742 0.204545 +vt 0.306452 0.250000 +vt 0.338710 0.204545 +vt 0.338710 0.113636 +vt 0.467742 0.113636 +vt 0.467742 0.204545 +vt 0.435484 0.250000 +vt 0.370968 0.250000 +vt 0.370968 0.204545 +vt 0.338710 0.204545 +vt 0.306452 0.250000 +vt 0.306452 0.204545 +vt 0.338710 0.250000 +vt 0.500000 0.204545 +vt 0.467742 0.250000 +vt 0.467742 0.340909 +vt 0.338710 0.340909 +vt 0.467742 0.340909 +vt 0.338710 0.340909 +vt 0.135602 0.897798 +vt 0.219237 0.897798 +vt 0.177419 0.999858 +vt 0.135602 0.965838 +vt 0.177419 0.863778 +vt 0.219237 0.965838 +vt 0.483871 0.500000 +vt 0.564516 0.613636 +vt 0.483871 0.613636 +vt 0.806452 0.818182 +vt 0.725806 0.863636 +vt 0.725806 0.818182 +vt 0.967742 0.090909 +vt 0.903226 0.636364 +vt 0.903226 0.090909 +vt 0.838710 0.090909 +vt 0.774194 0.636364 +vt 0.774194 0.090909 +vt 0.838710 0.636364 +vt 0.709677 0.636364 +vt 0.709677 0.090909 +vt 0.556452 0.647727 +vt 0.483871 0.636364 +vt 0.564516 0.636364 +vt 0.564516 0.613636 +vt 0.483871 0.636364 +vt 0.483871 0.613636 +vt 0.564516 0.613636 +vt 0.483871 0.636364 +vt 0.483871 0.613636 +vt 0.564516 0.613636 +vt 0.483871 0.636364 +vt 0.483871 0.613636 +vt 0.556452 0.647727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.556452 0.647727 +vt 0.564516 0.636364 +vt 0.564516 0.636364 +vt 0.556452 0.647727 +vt 0.564516 0.636364 +vt 0.556452 0.681818 +vt 0.491935 0.772727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.596774 0.704545 +vt 0.580645 0.795455 +vt 0.580645 0.704545 +vt 0.580645 0.863636 +vt 0.596774 0.795455 +vt 0.596774 0.863636 +vt 0.596774 0.636364 +vt 0.580645 0.636364 +vt 0.564516 0.681818 +vt 0.564516 0.636364 +vt 0.564516 0.818182 +vt 0.564516 0.772727 +vt 0.629032 0.863636 +vt 0.612903 0.818182 +vt 0.629032 0.818182 +vt 0.629032 0.681818 +vt 0.612903 0.636364 +vt 0.629032 0.636364 +vt 0.612903 0.681818 +vt 0.612903 0.772727 +vt 0.629032 0.727273 +vt 0.629032 0.772727 +vt 0.750000 0.636364 +vt 0.782258 0.681818 +vt 0.750000 0.681818 +vt 0.750000 1.000000 +vt 0.806452 0.863636 +vt 0.782258 1.000000 +vt 0.903226 0.863636 +vt 0.903226 0.818182 +vt 0.629032 0.818182 +vt 0.629032 0.863636 +vt 0.112903 0.738636 +vt 0.129032 0.784091 +vt 0.112903 0.784091 +vt 0.129032 0.727273 +vt 0.129032 0.738636 +vt 0.112903 0.795455 +vt 0.129032 0.795455 +vt 0.112903 0.840909 +vt 0.056452 0.863636 +vt 0.048387 0.829545 +vt 0.056452 0.840909 +vt 0.096774 0.840909 +vt 0.080645 0.931818 +vt 0.080645 0.840909 +vt 0.048387 0.931818 +vt 0.064516 0.863636 +vt 0.064516 0.931818 +vt 0.032258 0.829545 +vt 0.056452 0.840909 +vt 0.048387 0.829545 +vt 0.016129 0.829545 +vt 0.032258 0.784091 +vt 0.032258 0.829545 +vt 0.016129 0.784091 +vt 0.032258 0.750000 +vt 0.056452 0.727273 +vt 0.088710 0.750000 +vt 0.056452 0.750000 +vt 0.088710 0.727273 +vt 0.112903 0.750000 +vt 0.112903 0.784091 +vt 0.096774 0.806818 +vt 0.096774 0.784091 +vt 0.112903 0.784091 +vt 0.088710 0.772727 +vt 0.096774 0.784091 +vt 0.088710 0.750000 +vt 0.056452 0.772727 +vt 0.056452 0.750000 +vt 0.048387 0.784091 +vt 0.032258 0.784091 +vt 0.016129 0.863636 +vt 0.064516 0.863636 +vt 0.080645 0.931818 +vt 0.080645 0.840909 +vt 0.088710 0.772727 +vt 0.056452 0.772727 +vt 0.048387 0.784091 +vt 0.129032 0.840909 +vt 0.112903 0.852273 +vt 1.000000 0.613636 +vt 0.991935 0.000000 +vt 1.000000 0.000000 +vt 0.983871 0.613636 +vt 0.975806 0.000000 +vt 0.983871 0.000000 +vt 0.991935 0.613636 +vt 0.975806 0.613636 +vt 0.967742 0.000000 +vt 1.000000 0.613636 +vt 0.991935 0.000000 +vt 1.000000 0.000000 +vt 0.983871 0.613636 +vt 0.975806 0.000000 +vt 0.983871 0.000000 +vt 0.991935 0.613636 +vt 0.975806 0.613636 +vt 0.967742 0.000000 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.032258 0.875000 +vt 0.032258 0.863636 +vt 0.056452 0.863636 +vt 0.129032 0.886364 +vt 0.112903 0.886364 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.135602 0.897798 +vt 0.219237 0.897798 +vt 0.177419 0.999858 +vt 0.135602 0.965838 +vt 0.177419 0.863778 +vt 0.219237 0.965838 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.709677 0.090909 +vt 0.709677 0.636364 +vt 0.709677 0.454545 +vt 0.709677 0.454545 +vt 0.709677 0.454545 +vt 0.258065 0.000000 +vt 0.258065 0.000000 +vt 0.306452 0.386364 +vt 0.306452 0.386364 +vt 0.258065 0.000000 +vt 0.258065 -0.000000 +vt 0.306452 0.386364 +vt 0.306452 0.386364 +vt -0.000000 -0.000000 +vt 0.032258 0.000000 +vt 0.129032 0.727273 +vt 0.129032 0.727273 +vt 0.129032 0.727273 +vt 0.129032 0.727273 +vt 0.129032 0.863636 +vt 0.193548 -0.000000 +vt 0.129032 0.863636 +vt 0.129032 0.863636 +vt 0.306452 0.750000 +vt 0.483871 0.545455 +vt 0.483871 0.545455 +vt 0.483871 0.545455 +vt 0.306452 0.750000 +vt 0.306452 0.750000 +vt 0.306452 0.750000 +vt 0.467742 0.159091 +vt 0.338710 0.159091 +vt 0.306452 0.204545 +vt 0.467742 0.159091 +vt 0.338710 0.159091 +vt 0.500000 0.250000 +vt 0.338710 0.295455 +vt 0.467742 0.295455 +vt 0.338710 0.295455 +vt 0.467742 0.295455 +vt 0.153276 0.990742 +vt 0.135602 0.965838 +vt 0.129133 0.931818 +vt 0.153276 0.872894 +vt 0.177419 0.863778 +vt 0.201562 0.872894 +vt 0.225706 0.931818 +vt 0.219237 0.965838 +vt 0.201562 0.990742 +vt 0.201562 0.990743 +vt 0.177419 0.999858 +vt 0.153276 0.990742 +vt 0.129133 0.931818 +vt 0.135602 0.897798 +vt 0.153276 0.872894 +vt 0.201562 0.872894 +vt 0.219237 0.897798 +vt 0.225706 0.931818 +vt 0.564516 0.500000 +vt 0.967742 0.636364 +vt 0.556452 0.681818 +vt 0.556452 0.772727 +vt 0.556452 0.681818 +vt 0.556452 0.681818 +vt 0.564516 0.863636 +vt 0.564516 0.727273 +vt 0.612903 0.863636 +vt 0.612903 0.727273 +vt 0.782258 0.636364 +vt 0.112903 0.727273 +vt 0.096774 0.931818 +vt 0.048387 0.863636 +vt 0.016129 0.750000 +vt 0.112903 0.727273 +vt 0.112903 0.806818 +vt 0.064516 0.931818 +vt 0.129032 0.852273 +vt 0.967742 0.613636 +vt 0.967742 0.613636 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.016129 0.875000 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.153276 0.990742 +vt 0.135602 0.965838 +vt 0.129133 0.931818 +vt 0.153276 0.872894 +vt 0.177419 0.863778 +vt 0.201562 0.872894 +vt 0.225706 0.931818 +vt 0.219237 0.965838 +vt 0.201562 0.990742 +vt 0.201562 0.990743 +vt 0.177419 0.999858 +vt 0.153276 0.990742 +vt 0.129133 0.931818 +vt 0.135602 0.897798 +vt 0.153276 0.872894 +vt 0.201562 0.872894 +vt 0.219237 0.897798 +vt 0.225706 0.931818 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.419355 0.863636 +vt 0.443548 0.886364 +vt 0.419355 0.886364 +vt 0.516129 0.863636 +vt 0.491935 0.886364 +vt 0.491935 0.863636 +vt 0.637097 0.863636 +vt 0.612903 0.886364 +vt 0.612903 0.863636 +vt 0.709677 0.863636 +vt 0.685484 0.886364 +vt 0.685484 0.863636 +vt 0.467742 0.886364 +vt 0.467742 0.863636 +vt 0.588710 0.886364 +vt 0.588710 0.863636 +vt 0.564516 0.863636 +vt 0.540323 0.886364 +vt 0.540323 0.863636 +vt 0.661290 0.886364 +vt 0.661290 0.863636 +vt 0.443548 0.863636 +vt 0.564516 0.886364 +vt 0.516129 0.886364 +vt 0.637097 0.886364 +vt 0.338710 1.000000 +vt 0.322581 0.863636 +vt 0.338710 0.863636 +vt 0.306452 1.000000 +vt 0.290323 0.863636 +vt 0.306452 0.863636 +vt 0.387097 1.000000 +vt 0.370968 0.863636 +vt 0.387097 0.863636 +vt 0.241935 1.000000 +vt 0.225806 0.863636 +vt 0.241935 0.863636 +vt 0.290323 1.000000 +vt 0.274194 0.863636 +vt 0.370968 1.000000 +vt 0.354839 0.863636 +vt 0.419355 1.000000 +vt 0.403226 0.863636 +vt 0.419355 0.863636 +vt 0.274194 1.000000 +vt 0.258065 0.863636 +vt 0.354839 1.000000 +vt 0.322581 1.000000 +vt 0.403226 1.000000 +vt 0.258065 1.000000 +vt 0.419355 0.863636 +vt 0.443548 0.886364 +vt 0.419355 0.886364 +vt 0.516129 0.863636 +vt 0.491935 0.886364 +vt 0.491935 0.863636 +vt 0.637097 0.863636 +vt 0.612903 0.886364 +vt 0.612903 0.863636 +vt 0.709677 0.863636 +vt 0.685484 0.886364 +vt 0.685484 0.863636 +vt 0.467742 0.886364 +vt 0.467742 0.863636 +vt 0.588710 0.886364 +vt 0.588710 0.863636 +vt 0.564516 0.863636 +vt 0.540323 0.886364 +vt 0.540323 0.863636 +vt 0.661290 0.886364 +vt 0.661290 0.863636 +vt 0.443548 0.863636 +vt 0.564516 0.886364 +vt 0.516129 0.886364 +vt 0.637097 0.886364 +vt 0.709677 0.886364 +vt 0.225806 1.000000 +vt 0.709677 0.886364 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.9864 -0.1644 0.0000 -vn -0.9864 -0.1644 0.0000 -vn 0.0000 -0.1644 0.9864 -vn 0.0000 -0.1644 -0.9864 -vn 0.9864 0.1644 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.0000 -0.7809 -0.6247 -vn 0.0000 0.6757 -0.7372 -vn 0.0000 -0.6757 -0.7372 -vn 0.0000 0.7809 -0.6247 -vn -0.6247 0.7809 0.0000 -vn -0.7372 -0.6757 0.0000 -vn -0.7372 0.6757 0.0000 -vn -0.6247 -0.7809 0.0000 -vn 0.0000 0.7809 0.6247 -vn 0.0000 -0.6757 0.7372 -vn 0.0000 0.6757 0.7372 -vn 0.0000 -0.7809 0.6247 -vn 0.7372 0.6757 0.0000 -vn 0.6247 -0.7809 0.0000 -vn 0.6247 0.7809 0.0000 -vn 0.7372 -0.6757 0.0000 -vn 0.0000 0.1644 0.9864 -vn -0.9864 0.1644 0.0000 -vn 0.0000 0.1644 -0.9864 -vn 0.0000 -0.5039 0.8638 -vn 0.0000 0.5039 0.8638 -vn -0.8638 0.5039 0.0000 -vn -0.8638 -0.5039 0.0000 -vn 0.0000 -0.5039 -0.8638 -vn 0.0000 0.5039 -0.8638 -vn 0.8638 -0.5039 0.0000 -vn 0.8638 0.5039 0.0000 -vn 0.0000 0.3736 0.9276 -vn 0.0000 0.3736 -0.9276 -vn 0.9276 0.3736 -0.0000 -vn 0.9276 -0.3736 -0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 vn 1.0000 0.0000 0.0000 -vn 0.0000 -0.3736 -0.9276 -vn 0.0000 -0.3736 0.9276 -vn -0.9276 -0.3736 0.0000 -vn -0.9276 0.3736 0.0000 -vn -0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.7071 0.0000 0.7071 -vn 0.7071 0.0000 -0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.9950 -0.0995 0.0000 +vn 0.0000 -0.0995 -0.9950 +vn 0.0000 0.0995 -0.9950 +vn 0.0000 0.0995 0.9950 +vn 0.0000 -0.0995 0.9950 +vn 0.9950 -0.0995 0.0000 +vn -0.9950 0.0995 0.0000 +vn 0.9950 0.0995 0.0000 +vn 0.0000 0.0787 0.9969 +vn -0.9969 -0.0787 0.0000 +vn 0.0000 -0.0787 -0.9969 +vn 0.9969 0.0787 0.0000 +vn 0.0000 -0.0787 0.9969 +vn 0.0000 0.0787 -0.9969 +vn -0.9969 0.0787 0.0000 +vn 0.9969 -0.0787 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.9701 -0.2425 0.0000 +vn -0.9701 -0.2425 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0416 0.0000 -0.9991 +vn 0.0312 0.0000 -0.9995 +vn -0.0416 0.0000 0.9991 +vn -0.0312 0.0000 0.9995 +vn 0.3396 0.9406 0.0000 +vn 0.3764 0.9265 0.0000 +vn -0.3396 -0.9406 0.0000 +vn -0.3764 -0.9265 0.0000 +vn 0.0375 0.0000 -0.9993 +vn -0.0375 0.0000 0.9993 +vn 0.3091 0.9510 0.0000 +vn -0.3091 -0.9510 0.0000 +vn -0.0375 0.0000 -0.9993 +vn -0.0416 0.0000 -0.9991 +vn -0.0312 0.0000 -0.9995 +vn 0.0375 0.0000 0.9993 +vn 0.0416 0.0000 0.9991 +vn 0.0312 0.0000 0.9995 +vn -0.3091 0.9510 0.0000 +vn -0.3396 0.9406 0.0000 +vn -0.3764 0.9265 0.0000 +vn 0.3091 -0.9510 0.0000 +vn 0.3396 -0.9406 0.0000 +vn 0.3764 -0.9265 0.0000 +vn -0.4808 -0.8768 0.0000 +vn 0.4808 0.8768 0.0000 +vn -0.0644 0.0000 0.9979 +vn 0.5190 0.8548 0.0000 +vn -0.5190 -0.8548 0.0000 +vn 0.0644 0.0000 -0.9979 +vn -0.0357 0.0000 0.9994 +vn 0.0357 0.0000 -0.9994 +vn 0.5623 0.8269 0.0000 +vn -0.5623 -0.8269 0.0000 +vn -0.0797 0.0000 0.9968 +vn 0.0797 0.0000 -0.9968 +vn 0.5944 0.8042 0.0000 +vn -0.5944 -0.8042 0.0000 +vn -0.0434 0.0000 0.9991 +vn 0.0434 0.0000 -0.9991 +vn 0.4808 -0.8768 0.0000 +vn -0.4808 0.8768 0.0000 +vn 0.0644 0.0000 0.9979 +vn -0.5190 0.8548 0.0000 +vn 0.5190 -0.8548 0.0000 +vn -0.0644 0.0000 -0.9979 +vn 0.0357 0.0000 0.9994 +vn -0.0357 0.0000 -0.9994 +vn -0.5623 0.8269 0.0000 +vn 0.5623 -0.8269 0.0000 +vn 0.0797 0.0000 0.9968 +vn -0.0797 0.0000 -0.9968 +vn -0.5944 0.8042 0.0000 +vn 0.5944 -0.8042 0.0000 +vn 0.0434 0.0000 0.9991 +vn -0.0434 0.0000 -0.9991 +vn -0.9991 0.0000 -0.0416 +vn -0.9995 0.0000 -0.0312 +vn 0.9991 0.0000 0.0416 +vn 0.9995 0.0000 0.0312 +vn 0.0000 0.9406 -0.3396 +vn 0.0000 0.9265 -0.3764 +vn 0.0000 -0.9406 0.3396 +vn 0.0000 -0.9265 0.3764 +vn -0.9993 0.0000 -0.0375 +vn 0.9993 0.0000 0.0375 +vn 0.0000 0.9510 -0.3091 +vn 0.0000 -0.9510 0.3091 +vn -0.9993 0.0000 0.0375 +vn -0.9991 0.0000 0.0416 +vn -0.9995 0.0000 0.0312 +vn 0.9993 0.0000 -0.0375 +vn 0.9991 0.0000 -0.0416 +vn 0.9995 0.0000 -0.0312 +vn 0.0000 0.9510 0.3091 +vn 0.0000 0.9406 0.3396 +vn 0.0000 0.9265 0.3764 +vn 0.0000 -0.9510 -0.3091 +vn 0.0000 -0.9406 -0.3396 +vn 0.0000 -0.9265 -0.3764 +vn 0.0000 -0.8768 0.4808 +vn 0.0000 0.8768 -0.4808 +vn 0.9979 0.0000 0.0644 +vn 0.0000 0.8548 -0.5190 +vn 0.0000 -0.8548 0.5190 +vn -0.9979 0.0000 -0.0644 +vn 0.9994 0.0000 0.0357 +vn -0.9994 0.0000 -0.0357 +vn 0.0000 0.8269 -0.5623 +vn 0.0000 -0.8269 0.5623 +vn 0.9968 0.0000 0.0797 +vn -0.9968 0.0000 -0.0797 +vn 0.0000 0.8042 -0.5944 +vn 0.0000 -0.8042 0.5944 +vn 0.9991 0.0000 0.0434 +vn -0.9991 0.0000 -0.0434 +vn 0.0000 -0.8768 -0.4808 +vn 0.0000 0.8768 0.4808 +vn 0.9979 0.0000 -0.0644 +vn 0.0000 0.8548 0.5190 +vn 0.0000 -0.8548 -0.5190 +vn -0.9979 0.0000 0.0644 +vn 0.9994 0.0000 -0.0357 +vn -0.9994 0.0000 0.0357 +vn 0.0000 0.8269 0.5623 +vn 0.0000 -0.8269 -0.5623 +vn 0.9968 0.0000 -0.0797 +vn -0.9968 0.0000 0.0797 +vn 0.0000 0.8042 0.5944 +vn -0.0000 -0.8042 -0.5944 +vn 0.9991 0.0000 -0.0434 +vn -0.9991 0.0000 0.0434 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 s off -f 6/1/1 9/2/1 11/3/1 -f 13/4/1 5/5/1 15/6/1 -f 7/7/1 14/8/1 16/9/1 -f 10/10/1 8/11/1 12/12/1 -f 17/13/2 20/14/2 18/15/2 -f 21/16/2 24/17/2 23/18/2 -f 28/19/2 26/20/2 25/21/2 -f 30/22/2 32/23/2 29/24/2 -f 78/25/3 24/26/3 79/27/3 -f 52/28/4 17/29/4 18/30/4 -f 63/31/4 32/32/4 60/33/4 -f 69/34/5 26/35/5 70/36/5 -f 52/28/6 20/37/6 57/38/6 -f 69/34/3 28/39/3 25/40/3 -f 56/41/7 57/42/7 19/43/7 -f 63/31/5 30/44/5 29/45/5 -f 78/25/6 21/46/6 23/47/6 -f 24/17/2 18/15/2 23/18/2 -f 26/20/2 23/18/2 25/21/2 -f 25/21/2 32/23/2 28/19/2 -f 29/24/2 20/14/2 30/22/2 -f 29/24/2 23/18/2 18/15/2 -f 35/48/1 34/49/1 33/50/1 -f 39/51/2 37/52/2 38/53/2 -f 35/54/8 40/55/8 36/56/8 -f 34/57/9 38/53/9 33/58/9 -f 36/59/10 39/60/10 34/61/10 -f 33/50/11 37/62/11 35/48/11 -f 43/63/2 41/64/2 47/65/2 -f 54/66/6 56/67/6 55/68/6 -f 53/69/6 57/38/6 56/67/6 -f 54/66/4 50/70/4 53/69/4 -f 53/69/4 51/71/4 52/28/4 -f 61/72/5 65/73/5 62/74/5 -f 62/74/5 66/75/5 63/31/5 -f 61/72/4 59/76/4 58/77/4 -f 62/74/4 60/33/4 59/76/4 -f 67/78/3 74/79/3 68/80/3 -f 68/80/3 73/81/3 69/34/3 -f 67/78/5 71/82/5 72/83/5 -f 68/80/5 70/36/5 71/82/5 -f 76/84/6 83/85/6 77/86/6 -f 77/86/6 82/87/6 78/25/6 -f 76/84/3 80/88/3 81/89/3 -f 77/86/3 79/27/3 80/88/3 -f 85/90/2 58/91/2 87/92/2 -f 68/93/2 59/94/2 74/95/2 -f 60/96/1 69/97/1 73/98/1 -f 63/99/1 57/100/1 52/101/1 -f 62/102/2 56/103/2 65/104/2 -f 64/105/2 90/106/2 92/107/2 -f 49/108/2 95/109/2 93/110/2 -f 77/111/1 50/112/1 80/113/1 -f 79/114/1 52/115/1 51/116/1 -f 70/117/1 78/118/1 82/119/1 -f 71/120/1 77/121/1 83/122/1 -f 99/123/2 67/124/2 72/125/2 -f 65/126/12 54/127/12 62/128/12 -f 57/129/13 62/102/13 52/130/13 -f 53/131/14 66/132/14 56/133/14 -f 61/134/15 56/103/15 64/105/15 -f 67/135/16 59/136/16 75/137/16 -f 62/102/17 73/98/17 59/138/17 -f 68/139/18 60/140/18 74/141/18 -f 74/142/19 61/134/19 68/143/19 -f 76/144/20 71/145/20 84/146/20 -f 68/139/21 82/119/21 71/120/21 -f 77/147/22 70/148/22 83/149/22 -f 83/122/23 67/135/23 77/121/23 -f 53/131/24 79/150/24 50/151/24 -f 76/144/25 50/152/25 81/153/25 -f 80/154/26 54/127/26 77/121/26 -f 77/147/27 51/155/27 80/156/27 -f 11/157/6 55/68/6 6/158/6 -f 19/43/28 51/71/28 50/70/28 -f 49/159/4 11/157/4 9/160/4 -f 22/161/28 1/162/28 81/163/28 -f 81/89/3 15/164/3 76/84/3 -f 15/164/6 84/165/6 76/84/6 -f 83/85/29 84/165/29 22/161/29 -f 75/166/3 16/167/3 14/168/3 -f 74/79/30 75/166/30 27/169/30 -f 16/167/5 72/83/5 7/170/5 -f 27/169/29 3/171/29 72/172/29 -f 12/173/5 64/174/5 61/72/5 -f 58/77/4 12/173/4 61/72/4 -f 59/175/30 60/176/30 31/177/30 -f 65/73/7 64/174/7 31/177/7 -f 69/178/31 21/179/31 70/117/31 -f 78/180/32 26/181/32 82/182/32 -f 69/178/33 32/183/33 73/184/33 -f 63/185/34 28/186/34 60/96/34 -f 52/187/35 30/188/35 57/189/35 -f 63/185/36 20/190/36 66/191/36 -f 78/180/37 17/192/37 79/193/37 -f 52/187/38 24/194/38 51/195/38 -f 76/196/2 100/197/2 84/198/2 -f 98/199/2 99/123/2 100/197/2 -f 94/200/2 76/201/2 81/202/2 -f 93/110/2 96/203/2 94/200/2 -f 55/204/2 89/205/2 54/206/2 -f 92/107/2 89/205/2 91/207/2 -f 67/208/2 88/209/2 75/210/2 -f 85/90/2 88/209/2 86/211/2 -f 11/212/39 91/213/39 89/214/39 -f 12/215/40 92/216/40 8/217/40 -f 12/218/41 87/219/41 85/220/41 -f 16/221/42 88/222/42 86/223/42 -f 16/221/40 99/224/40 97/225/40 -f 15/226/39 100/227/39 5/228/39 -f 15/226/42 94/229/42 13/230/42 -f 11/231/41 93/232/41 9/233/41 -f 108/234/43 103/235/43 104/236/43 -f 102/237/44 105/238/44 106/239/44 -f 118/240/2 109/241/2 111/242/2 -f 124/243/2 115/244/2 113/245/2 -f 123/246/1 116/247/1 119/248/1 -f 121/249/1 112/250/1 110/251/1 -f 124/252/45 119/253/45 120/254/45 -f 118/255/46 121/256/46 122/257/46 -f 104/258/2 109/259/2 108/260/2 -f 107/261/1 114/262/1 103/263/1 -f 101/264/1 112/265/1 105/266/1 -f 106/267/2 115/268/2 102/269/2 -f 116/270/44 120/271/44 119/272/44 -f 115/244/45 101/273/45 102/274/45 -f 105/275/46 111/242/46 106/276/46 -f 118/277/44 112/265/44 117/278/44 -f 110/279/43 122/280/43 121/281/43 -f 109/241/46 107/282/46 108/283/46 -f 114/284/45 104/285/45 103/286/45 -f 124/287/43 114/262/43 123/288/43 -f 139/289/2 137/290/2 135/291/2 -f 156/292/1 153/293/1 154/294/1 -f 160/295/1 157/296/1 159/297/1 -f 162/298/1 164/299/1 161/300/1 -f 168/301/1 166/302/1 165/303/1 -f 154/294/1 160/295/1 159/297/1 -f 159/297/1 162/298/1 161/300/1 -f 168/301/1 161/300/1 164/299/1 -f 156/292/1 165/303/1 166/302/1 -f 159/297/1 165/303/1 154/294/1 -f 205/304/1 178/305/1 181/306/1 -f 179/307/1 188/308/1 194/309/1 -f 189/310/2 180/311/2 193/312/2 -f 177/313/2 183/314/2 172/315/2 -f 176/316/1 182/317/1 185/318/1 -f 210/319/1 184/320/1 212/321/1 -f 215/322/1 169/323/1 213/324/1 -f 170/325/2 197/326/2 200/327/2 -f 172/328/2 199/329/2 171/330/2 -f 198/331/2 190/332/2 202/333/2 -f 197/334/2 191/335/2 203/336/2 -f 219/337/1 187/338/1 217/339/1 -f 174/340/20 185/341/20 182/342/20 -f 182/317/21 177/343/21 172/344/21 -f 186/345/22 173/346/22 176/347/22 -f 176/316/23 181/348/23 184/320/23 -f 179/349/25 187/350/25 195/351/25 -f 193/312/24 182/317/24 179/352/24 -f 188/353/27 180/354/27 183/355/27 -f 181/348/26 194/356/26 188/357/26 -f 191/358/12 196/359/12 204/360/12 -f 202/333/13 188/353/13 191/335/13 -f 197/361/14 190/362/14 189/310/14 -f 187/350/15 203/336/15 197/334/15 -f 199/363/17 173/346/17 170/364/17 -f 170/365/16 196/359/16 201/366/16 -f 174/340/19 200/367/19 197/334/19 -f 197/361/18 171/368/18 172/344/18 -f 157/369/36 189/370/36 190/332/36 -f 162/371/35 198/372/35 202/373/35 -f 168/374/37 189/370/37 193/375/37 -f 164/376/38 183/377/38 180/311/38 -f 166/378/32 172/379/32 177/380/32 -f 156/381/31 183/377/31 186/382/31 -f 153/383/33 198/372/33 199/384/33 -f 160/385/34 172/379/34 171/386/34 -f 220/387/1 196/388/1 204/389/1 -f 219/337/1 218/390/1 220/387/1 -f 196/391/1 214/392/1 201/393/1 -f 216/394/1 213/324/1 214/392/1 -f 175/395/1 209/396/1 211/397/1 -f 209/396/1 212/321/1 211/397/1 -f 187/398/1 208/399/1 206/400/1 -f 208/399/1 205/304/1 206/400/1 -f 211/401/47 147/402/47 209/403/47 -f 148/404/48 212/405/48 210/406/48 -f 207/407/49 148/408/49 205/409/49 -f 208/410/50 152/411/50 206/412/50 -f 219/413/48 152/411/48 217/414/48 -f 151/415/47 220/416/47 218/417/47 -f 151/415/50 214/418/50 216/419/50 -f 147/420/49 213/421/49 215/422/49 -f 6/1/1 2/423/1 9/2/1 -f 13/4/1 1/424/1 5/5/1 -f 7/7/1 3/425/1 14/8/1 -f 10/10/1 4/426/1 8/11/1 -f 17/13/2 19/427/2 20/14/2 -f 21/16/2 22/428/2 24/17/2 -f 28/19/2 27/429/2 26/20/2 -f 30/22/2 31/430/2 32/23/2 -f 78/25/3 23/47/3 24/26/3 -f 52/28/4 51/71/4 17/29/4 -f 63/31/4 29/45/4 32/32/4 -f 69/34/5 25/40/5 26/35/5 -f 52/28/6 18/30/6 20/37/6 -f 69/34/3 73/81/3 28/39/3 -f 19/43/7 2/431/7 55/432/7 -f 2/431/7 6/433/7 55/432/7 -f 19/43/7 55/432/7 56/41/7 -f 57/42/7 20/434/7 19/43/7 -f 63/31/5 66/75/5 30/44/5 -f 78/25/6 82/87/6 21/46/6 -f 24/17/2 17/13/2 18/15/2 -f 26/20/2 21/16/2 23/18/2 -f 25/21/2 29/24/2 32/23/2 -f 29/24/2 18/15/2 20/14/2 -f 29/24/2 25/21/2 23/18/2 -f 35/48/1 36/435/1 34/49/1 -f 39/51/2 40/436/2 37/52/2 -f 35/54/8 37/437/8 40/55/8 -f 34/57/9 39/51/9 38/53/9 -f 36/59/10 40/438/10 39/60/10 -f 33/50/11 38/439/11 37/62/11 -f 43/63/2 42/440/2 41/64/2 -f 41/64/2 48/441/2 47/65/2 -f 47/65/2 46/442/2 45/443/2 -f 45/443/2 44/444/2 47/65/2 -f 44/444/2 43/63/2 47/65/2 -f 54/66/6 53/69/6 56/67/6 -f 53/69/6 52/28/6 57/38/6 -f 54/66/4 49/159/4 50/70/4 -f 53/69/4 50/70/4 51/71/4 -f 61/72/5 64/174/5 65/73/5 -f 62/74/5 65/73/5 66/75/5 -f 61/72/4 62/74/4 59/76/4 -f 62/74/4 63/31/4 60/33/4 -f 67/78/3 75/166/3 74/79/3 -f 68/80/3 74/79/3 73/81/3 -f 67/78/5 68/80/5 71/82/5 -f 68/80/5 69/34/5 70/36/5 -f 76/84/6 84/165/6 83/85/6 -f 77/86/6 83/85/6 82/87/6 -f 76/84/3 77/86/3 80/88/3 -f 77/86/3 78/25/3 79/27/3 -f 85/90/2 61/445/2 58/91/2 -f 68/93/2 62/446/2 59/94/2 -f 60/96/1 63/185/1 69/97/1 -f 63/99/1 66/447/1 57/100/1 -f 62/102/2 53/448/2 56/103/2 -f 64/105/2 61/134/2 90/106/2 -f 49/108/2 54/127/2 95/109/2 -f 77/111/1 53/449/1 50/112/1 -f 79/114/1 78/450/1 52/115/1 -f 70/117/1 69/178/1 78/118/1 -f 71/120/1 68/139/1 77/121/1 -f 99/123/2 97/451/2 67/124/2 -f 65/126/12 55/452/12 54/127/12 -f 57/129/13 65/104/13 62/102/13 -f 53/131/14 63/453/14 66/132/14 -f 61/134/15 53/448/15 56/103/15 -f 67/135/16 62/128/16 59/136/16 -f 62/102/17 69/97/17 73/98/17 -f 68/139/18 63/453/18 60/140/18 -f 74/142/19 58/454/19 61/134/19 -f 76/144/20 68/143/20 71/145/20 -f 68/139/21 78/118/21 82/119/21 -f 77/147/22 69/97/22 70/148/22 -f 83/122/23 72/455/23 67/135/23 -f 53/131/24 78/118/24 79/150/24 -f 76/144/25 53/448/25 50/152/25 -f 80/154/26 49/108/26 54/127/26 -f 77/147/27 52/130/27 51/155/27 -f 11/157/6 54/66/6 55/68/6 -f 9/160/28 2/431/28 49/159/28 -f 2/431/28 19/43/28 49/159/28 -f 19/43/28 17/29/28 51/71/28 -f 50/70/28 49/159/28 19/43/28 -f 49/159/4 54/66/4 11/157/4 -f 1/162/28 13/456/28 81/163/28 -f 81/163/28 80/457/28 22/161/28 -f 80/457/28 79/458/28 22/161/28 -f 79/458/28 24/459/28 22/161/28 -f 81/89/3 13/460/3 15/164/3 -f 15/164/6 5/461/6 84/165/6 -f 84/165/29 5/461/29 1/162/29 -f 1/162/29 22/161/29 84/165/29 -f 22/161/29 21/46/29 82/87/29 -f 82/87/29 83/85/29 22/161/29 -f 75/166/3 67/78/3 16/167/3 -f 75/166/30 14/168/30 3/171/30 -f 3/171/30 27/169/30 75/166/30 -f 27/169/30 28/39/30 73/81/30 -f 73/81/30 74/79/30 27/169/30 -f 16/167/5 67/78/5 72/83/5 -f 3/171/29 7/462/29 72/172/29 -f 72/172/29 71/463/29 27/169/29 -f 71/463/29 70/464/29 27/169/29 -f 70/464/29 26/465/29 27/169/29 -f 12/173/5 8/466/5 64/174/5 -f 58/77/4 10/467/4 12/173/4 -f 31/177/30 4/468/30 58/469/30 -f 4/468/30 10/470/30 58/469/30 -f 31/177/30 58/469/30 59/175/30 -f 60/176/30 32/471/30 31/177/30 -f 8/466/7 4/468/7 64/174/7 -f 4/468/7 31/177/7 64/174/7 -f 31/177/7 30/44/7 66/75/7 -f 66/75/7 65/73/7 31/177/7 -f 69/178/31 23/472/31 21/179/31 -f 78/180/32 25/473/32 26/181/32 -f 69/178/33 29/474/33 32/183/33 -f 63/185/34 25/473/34 28/186/34 -f 52/187/35 29/474/35 30/188/35 -f 63/185/36 18/475/36 20/190/36 -f 78/180/37 18/475/37 17/192/37 -f 52/187/38 23/472/38 24/194/38 -f 76/196/2 98/199/2 100/197/2 -f 98/199/2 97/451/2 99/123/2 -f 94/200/2 96/203/2 76/201/2 -f 93/110/2 95/109/2 96/203/2 -f 55/204/2 91/207/2 89/205/2 -f 92/107/2 90/106/2 89/205/2 -f 67/208/2 86/211/2 88/209/2 -f 85/90/2 87/92/2 88/209/2 -f 11/212/39 6/476/39 91/213/39 -f 12/215/40 90/477/40 92/216/40 -f 12/218/41 10/478/41 87/219/41 -f 16/221/42 14/479/42 88/222/42 -f 16/221/40 7/480/40 99/224/40 -f 15/226/39 98/481/39 100/227/39 -f 15/226/42 96/482/42 94/229/42 -f 11/231/41 95/483/41 93/232/41 -f 108/234/43 107/261/43 103/235/43 -f 102/237/44 101/264/44 105/238/44 -f 118/240/2 122/484/2 109/241/2 -f 124/243/2 120/485/2 115/244/2 -f 123/246/1 114/284/1 116/247/1 -f 121/249/1 117/486/1 112/250/1 -f 124/252/45 123/246/45 119/253/45 -f 118/255/46 117/486/46 121/256/46 -f 104/258/2 113/487/2 109/259/2 -f 107/261/1 110/279/1 114/262/1 -f 101/264/1 116/270/1 112/265/1 -f 106/267/2 111/488/2 115/268/2 -f 116/270/44 115/268/44 120/271/44 -f 115/244/45 116/247/45 101/273/45 -f 105/275/46 112/250/46 111/242/46 -f 118/277/44 111/488/44 112/265/44 -f 110/279/43 109/259/43 122/280/43 -f 109/241/46 110/251/46 107/282/46 -f 114/284/45 113/245/45 104/285/45 -f 124/287/43 113/487/43 114/262/43 -f 135/291/2 133/489/2 134/490/2 -f 134/490/2 140/491/2 139/289/2 -f 139/289/2 138/492/2 137/290/2 -f 137/290/2 136/493/2 135/291/2 -f 135/291/2 134/490/2 139/289/2 -f 156/292/1 155/494/1 153/293/1 -f 160/295/1 158/495/1 157/296/1 -f 162/298/1 163/496/1 164/299/1 -f 168/301/1 167/497/1 166/302/1 -f 154/294/1 153/293/1 160/295/1 -f 159/297/1 157/296/1 162/298/1 -f 168/301/1 165/303/1 161/300/1 -f 156/292/1 154/294/1 165/303/1 -f 159/297/1 161/300/1 165/303/1 -f 205/304/1 207/498/1 178/305/1 -f 179/307/1 182/499/1 188/308/1 -f 189/310/2 183/377/2 180/311/2 -f 177/313/2 186/500/2 183/314/2 -f 176/316/1 173/501/1 182/317/1 -f 210/319/1 181/348/1 184/320/1 -f 215/322/1 174/340/1 169/323/1 -f 170/325/2 173/502/2 197/326/2 -f 172/328/2 198/503/2 199/329/2 -f 198/331/2 189/370/2 190/332/2 -f 197/334/2 188/353/2 191/335/2 -f 219/337/1 192/504/1 187/338/1 -f 174/340/20 175/505/20 185/341/20 -f 182/317/21 185/318/21 177/343/21 -f 186/345/22 183/355/22 173/346/22 -f 176/316/23 173/501/23 181/348/23 -f 179/349/25 182/342/25 187/350/25 -f 193/312/24 189/310/24 182/317/24 -f 188/353/27 194/506/27 180/354/27 -f 181/348/26 178/507/26 194/356/26 -f 191/358/12 188/357/12 196/359/12 -f 202/333/13 198/331/13 188/353/13 -f 197/361/14 203/508/14 190/362/14 -f 187/350/15 192/509/15 203/336/15 -f 199/363/17 198/331/17 173/346/17 -f 170/365/16 173/501/16 196/359/16 -f 174/340/19 169/323/19 200/367/19 -f 197/361/18 200/510/18 171/368/18 -f 157/369/36 159/511/36 189/370/36 -f 162/371/35 161/512/35 198/372/35 -f 168/374/37 165/513/37 189/370/37 -f 164/376/38 161/512/38 183/377/38 -f 166/378/32 165/513/32 172/379/32 -f 156/381/31 154/514/31 183/377/31 -f 153/383/33 154/514/33 198/372/33 -f 160/385/34 159/511/34 172/379/34 -f 220/387/1 218/390/1 196/388/1 -f 219/337/1 217/339/1 218/390/1 -f 196/391/1 216/394/1 214/392/1 -f 216/394/1 215/322/1 213/324/1 -f 175/395/1 174/515/1 209/396/1 -f 209/396/1 210/319/1 212/321/1 -f 187/398/1 195/516/1 208/399/1 -f 208/399/1 207/498/1 205/304/1 -f 211/401/47 142/517/47 147/402/47 -f 148/404/48 144/518/48 212/405/48 -f 207/407/49 146/519/49 148/408/49 -f 208/410/50 150/520/50 152/411/50 -f 219/413/48 143/521/48 152/411/48 -f 151/415/47 141/522/47 220/416/47 -f 151/415/50 149/523/50 214/418/50 -f 147/420/49 145/524/49 213/421/49 +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/2/4 6/6/4 1/3/4 +f 4/10/5 7/11/5 2/12/5 +f 1/13/6 5/14/6 3/15/6 +f 10/16/5 20/17/5 12/18/5 +f 13/19/2 9/20/2 14/21/2 +f 14/21/2 10/22/2 15/23/2 +f 15/23/2 12/24/2 16/25/2 +f 16/25/2 11/26/2 13/19/2 +f 11/27/6 17/28/6 9/29/6 +f 16/30/6 23/31/6 15/32/6 +f 14/33/5 21/34/5 13/35/5 +f 12/36/3 19/37/3 11/38/3 +f 9/20/4 18/39/4 10/22/4 +f 13/19/4 24/40/4 16/25/4 +f 15/41/3 22/42/3 14/43/3 +f 19/44/1 24/45/1 21/46/1 +f 20/47/1 23/48/1 24/45/1 +f 18/49/1 22/50/1 23/48/1 +f 17/51/1 21/46/1 22/50/1 +f 27/52/1 26/53/1 25/54/1 +f 31/55/1 30/56/1 29/57/1 +f 35/58/1 34/59/1 33/60/1 +f 39/61/1 38/62/1 37/63/1 +f 28/64/7 59/65/7 60/66/7 +f 35/67/7 68/68/7 36/69/7 +f 28/70/8 58/71/8 26/72/8 +f 36/69/9 66/73/9 34/74/9 +f 27/52/10 57/75/10 59/65/10 +f 35/58/11 65/76/11 67/77/11 +f 30/78/12 61/79/12 29/80/12 +f 37/63/12 70/81/12 69/82/12 +f 32/83/13 63/84/13 64/85/13 +f 39/86/13 72/87/13 40/88/13 +f 30/56/8 64/85/8 62/89/8 +f 38/62/9 72/87/9 70/81/9 +f 29/80/10 63/84/10 31/90/10 +f 26/72/14 57/75/14 25/91/14 +f 37/92/11 71/93/11 39/86/11 +f 33/60/14 66/73/14 65/76/14 +f 41/94/15 86/95/15 88/96/15 +f 85/97/16 43/98/16 44/99/16 +f 42/100/17 85/101/17 44/102/17 +f 41/94/18 87/103/18 42/100/18 +f 49/104/19 78/105/19 80/106/19 +f 52/107/16 78/108/16 51/109/16 +f 50/110/20 77/111/20 52/107/20 +f 50/110/18 80/106/18 79/112/18 +f 47/113/15 84/114/15 45/115/15 +f 81/116/21 47/113/21 48/117/21 +f 48/117/17 83/118/17 81/116/17 +f 45/115/22 83/119/22 46/120/22 +f 55/121/19 76/122/19 53/123/19 +f 56/124/21 74/125/21 55/121/21 +f 56/124/20 75/126/20 73/127/20 +f 54/128/22 76/129/22 75/126/22 +f 96/130/6 103/131/6 95/132/6 +f 91/133/3 100/134/3 92/135/3 +f 90/136/4 98/137/4 89/138/4 +f 92/139/5 99/140/5 90/141/5 +f 89/142/6 97/143/6 91/144/6 +f 93/145/2 98/137/2 94/146/2 +f 94/146/2 99/147/2 95/148/2 +f 95/148/2 100/149/2 96/150/2 +f 96/150/2 97/151/2 93/145/2 +f 90/152/1 104/153/1 92/154/1 +f 94/155/5 101/156/5 93/157/5 +f 93/145/4 104/158/4 96/150/4 +f 95/159/3 102/160/3 94/161/3 +f 91/162/1 104/153/1 101/163/1 +f 89/164/1 103/165/1 90/152/1 +f 91/162/1 102/166/1 89/164/1 +f 117/167/4 118/168/4 122/169/4 +f 108/170/23 116/171/23 110/172/23 +f 110/172/2 115/173/2 109/174/2 +f 107/175/6 111/176/6 105/177/6 +f 109/174/24 113/178/24 107/175/24 +f 106/179/5 114/180/5 108/170/5 +f 112/181/3 111/182/3 115/173/3 +f 120/183/23 128/184/23 122/169/23 +f 122/169/2 127/185/2 121/186/2 +f 119/187/6 123/188/6 117/189/6 +f 121/186/24 125/190/24 119/187/24 +f 118/191/5 126/192/5 120/183/5 +f 124/193/3 123/194/3 127/185/3 +f 105/195/4 106/196/4 110/172/4 +f 133/197/4 137/198/4 129/199/4 +f 151/200/3 147/201/3 143/202/3 +f 185/203/1 187/204/1 186/205/1 +f 223/206/2 221/207/2 222/208/2 +f 177/209/3 184/210/3 180/211/3 +f 179/212/4 182/213/4 178/214/4 +f 180/211/5 183/215/5 179/212/5 +f 178/214/6 181/216/6 177/217/6 +f 195/218/25 190/219/25 191/220/25 +f 188/221/5 191/222/5 187/223/5 +f 186/224/6 189/225/6 185/226/6 +f 185/227/3 192/228/3 188/229/3 +f 187/204/4 190/219/4 186/205/4 +f 193/230/3 200/231/3 196/232/3 +f 194/233/24 189/225/24 190/234/24 +f 193/230/26 192/228/26 189/235/26 +f 196/236/23 191/222/23 192/237/23 +f 199/238/2 197/239/2 198/240/2 +f 195/218/4 198/240/4 194/241/4 +f 196/236/5 199/242/5 195/243/5 +f 194/233/6 197/244/6 193/245/6 +f 207/246/2 205/247/2 206/248/2 +f 203/249/3 208/250/3 204/251/3 +f 202/252/4 206/248/4 201/253/4 +f 201/253/6 210/254/6 209/255/6 +f 203/249/6 212/256/6 205/247/6 +f 212/257/6 206/248/6 205/247/6 +f 211/258/4 216/259/4 212/260/4 +f 210/261/3 213/262/3 209/263/3 +f 202/252/5 214/264/5 207/246/5 +f 216/259/5 204/251/5 208/250/5 +f 207/246/5 216/265/5 208/250/5 +f 216/265/1 210/266/1 212/267/1 +f 217/268/1 219/269/1 218/270/1 +f 217/271/3 224/272/3 220/273/3 +f 219/269/4 222/208/4 218/270/4 +f 220/274/27 223/206/27 219/275/27 +f 218/276/28 221/207/28 217/277/28 +f 226/278/2 227/279/2 225/280/2 +f 226/278/24 232/281/24 228/282/24 +f 227/279/23 229/283/23 225/280/23 +f 231/284/5 233/285/5 229/283/5 +f 319/286/4 233/287/4 317/288/4 +f 236/289/5 237/290/5 235/291/5 +f 240/292/6 241/293/6 239/294/6 +f 244/295/3 318/296/3 234/297/3 +f 244/298/6 245/299/6 243/300/6 +f 246/301/29 247/302/29 245/299/29 +f 248/303/1 249/304/1 247/305/1 +f 250/306/30 251/307/30 249/304/30 +f 251/308/2 232/309/2 230/310/2 +f 252/311/3 228/312/3 232/313/3 +f 250/314/3 227/315/3 228/312/3 +f 248/316/3 231/317/3 227/315/3 +f 246/318/3 234/297/3 231/317/3 +f 243/300/24 320/319/24 244/298/24 +f 242/320/3 238/321/3 236/322/3 +f 249/304/4 230/310/4 226/323/4 +f 247/305/4 226/323/4 225/324/4 +f 245/299/4 225/324/4 229/325/4 +f 243/300/4 229/325/4 233/287/4 +f 234/326/30 317/327/30 233/285/30 +f 237/290/4 241/293/4 235/291/4 +f 259/328/3 256/329/3 255/330/3 +f 258/331/4 253/332/4 254/333/4 +f 260/334/5 254/333/5 256/329/5 +f 257/335/6 255/336/6 253/332/6 +f 267/337/3 264/338/3 263/339/3 +f 266/340/4 261/341/4 262/342/4 +f 268/343/5 262/342/5 264/338/5 +f 265/344/6 263/345/6 261/341/6 +f 269/346/31 272/347/31 270/348/31 +f 273/349/32 276/350/32 274/351/32 +f 278/352/33 280/353/33 277/354/33 +f 282/355/34 284/356/34 281/357/34 +f 272/347/35 277/354/35 280/353/35 +f 276/350/36 281/357/36 284/356/36 +f 270/358/37 278/352/37 269/359/37 +f 274/360/38 282/355/38 273/361/38 +f 285/362/39 288/363/39 286/364/39 +f 290/365/40 292/366/40 289/367/40 +f 288/363/41 289/367/41 292/366/41 +f 286/368/42 290/365/42 285/369/42 +f 293/370/43 296/371/43 295/372/43 +f 297/373/44 300/374/44 299/375/44 +f 301/376/45 304/377/45 303/378/45 +f 306/379/46 308/380/46 307/381/46 +f 310/382/47 312/383/47 311/384/47 +f 314/385/48 316/386/48 315/387/48 +f 296/371/49 305/388/49 295/372/49 +f 300/374/50 309/389/50 299/375/50 +f 304/377/51 313/390/51 303/378/51 +f 306/379/52 294/391/52 293/392/52 +f 310/382/53 298/393/53 297/394/53 +f 314/385/54 302/395/54 301/396/54 +f 241/397/2 320/319/2 319/398/2 +f 242/320/3 318/296/3 320/399/3 +f 241/293/4 317/288/4 235/291/4 +f 317/327/1 236/400/1 235/401/1 +f 323/402/55 322/403/55 321/404/55 +f 327/405/56 325/406/56 326/407/56 +f 323/402/57 326/407/57 325/406/57 +f 335/408/58 333/409/58 334/410/58 +f 331/411/59 330/412/59 329/413/59 +f 324/414/60 327/405/60 322/415/60 +f 331/411/61 334/410/61 333/409/61 +f 332/416/62 335/408/62 330/417/62 +f 343/418/63 341/419/63 342/420/63 +f 339/421/64 338/422/64 337/423/64 +f 339/421/65 342/420/65 341/419/65 +f 340/424/66 343/418/66 338/425/66 +f 351/426/67 349/427/67 350/428/67 +f 347/429/68 346/430/68 345/431/68 +f 347/429/69 350/428/69 349/427/69 +f 348/432/70 351/426/70 346/433/70 +f 354/434/71 355/435/71 353/436/71 +f 357/437/72 359/438/72 358/439/72 +f 355/435/73 358/439/73 353/436/73 +f 365/440/74 367/441/74 366/442/74 +f 362/443/75 363/444/75 361/445/75 +f 359/438/76 356/446/76 354/447/76 +f 363/444/77 366/442/77 361/445/77 +f 367/441/78 364/448/78 362/449/78 +f 373/450/79 375/451/79 374/452/79 +f 370/453/80 371/454/80 369/455/80 +f 371/454/81 374/452/81 369/455/81 +f 375/451/82 372/456/82 370/457/82 +f 381/458/83 383/459/83 382/460/83 +f 378/461/84 379/462/84 377/463/84 +f 379/462/85 382/460/85 377/463/85 +f 383/459/86 380/464/86 378/465/86 +f 389/466/3 393/467/3 385/468/3 +f 407/469/4 403/470/4 399/471/4 +f 409/472/33 412/473/33 410/474/33 +f 413/475/34 416/476/34 414/477/34 +f 418/478/31 420/479/31 417/480/31 +f 422/481/32 424/482/32 421/483/32 +f 412/473/50 417/480/50 420/479/50 +f 416/476/51 421/483/51 424/482/51 +f 410/484/53 418/478/53 409/485/53 +f 414/486/54 422/481/54 413/487/54 +f 425/488/40 428/489/40 426/490/40 +f 430/491/39 432/492/39 429/493/39 +f 428/489/49 429/493/49 432/492/49 +f 426/494/52 430/491/52 425/495/52 +f 433/496/46 436/497/46 435/498/46 +f 437/499/47 440/500/47 439/501/47 +f 441/502/48 444/503/48 443/504/48 +f 446/505/43 448/506/43 447/507/43 +f 450/508/44 452/509/44 451/510/44 +f 454/511/45 456/512/45 455/513/45 +f 436/497/41 445/514/41 435/498/41 +f 440/500/35 449/515/35 439/501/35 +f 444/503/36 453/516/36 443/504/36 +f 446/505/42 434/517/42 433/518/42 +f 450/508/37 438/519/37 437/520/37 +f 454/511/38 442/521/38 441/522/38 +f 459/523/71 458/524/71 457/525/71 +f 463/526/72 461/527/72 462/528/72 +f 459/523/60 462/528/60 461/527/60 +f 471/529/74 469/530/74 470/531/74 +f 467/532/75 466/533/75 465/534/75 +f 460/535/57 463/526/57 458/536/57 +f 467/532/62 470/531/62 469/530/62 +f 468/537/61 471/529/61 466/538/61 +f 479/539/79 477/540/79 478/541/79 +f 475/542/80 474/543/80 473/544/80 +f 475/542/66 478/541/66 477/540/66 +f 476/545/65 479/539/65 474/546/65 +f 487/547/83 485/548/83 486/549/83 +f 483/550/84 482/551/84 481/552/84 +f 483/550/70 486/549/70 485/548/70 +f 484/553/69 487/547/69 482/554/69 +f 490/555/55 491/556/55 489/557/55 +f 493/558/56 495/559/56 494/560/56 +f 491/556/76 494/560/76 489/557/76 +f 501/561/58 503/562/58 502/563/58 +f 498/564/59 499/565/59 497/566/59 +f 495/559/73 492/567/73 490/568/73 +f 499/565/78 502/563/78 497/566/78 +f 503/562/77 500/569/77 498/570/77 +f 509/571/63 511/572/63 510/573/63 +f 506/574/64 507/575/64 505/576/64 +f 507/575/82 510/573/82 505/576/82 +f 511/572/81 508/577/81 506/578/81 +f 517/579/67 519/580/67 518/581/67 +f 514/582/68 515/583/68 513/584/68 +f 515/583/86 518/581/86 513/584/86 +f 519/580/85 516/585/85 514/586/85 +f 521/587/87 524/588/87 522/589/87 +f 525/590/88 528/591/88 526/592/88 +f 530/593/89 532/594/89 529/595/89 +f 534/596/90 536/597/90 533/598/90 +f 524/588/91 529/595/91 532/594/91 +f 528/591/92 533/598/92 536/597/92 +f 522/599/93 530/593/93 521/600/93 +f 526/601/94 534/596/94 525/602/94 +f 537/603/95 540/604/95 538/605/95 +f 542/606/96 544/607/96 541/608/96 +f 540/604/97 541/608/97 544/607/97 +f 538/609/98 542/606/98 537/610/98 +f 545/611/99 548/612/99 547/613/99 +f 549/614/100 552/615/100 551/616/100 +f 553/617/101 556/618/101 555/619/101 +f 558/620/102 560/621/102 559/622/102 +f 562/623/103 564/624/103 563/625/103 +f 566/626/104 568/627/104 567/628/104 +f 548/612/105 557/629/105 547/613/105 +f 552/615/106 561/630/106 551/616/106 +f 556/618/107 565/631/107 555/619/107 +f 558/620/108 546/632/108 545/633/108 +f 562/623/109 550/634/109 549/635/109 +f 566/626/110 554/636/110 553/637/110 +f 571/638/111 570/639/111 569/640/111 +f 575/641/112 573/642/112 574/643/112 +f 571/638/113 574/643/113 573/642/113 +f 583/644/114 581/645/114 582/646/114 +f 579/647/115 578/648/115 577/649/115 +f 572/650/116 575/641/116 570/651/116 +f 579/647/117 582/646/117 581/645/117 +f 580/652/118 583/644/118 578/653/118 +f 591/654/119 589/655/119 590/656/119 +f 587/657/120 586/658/120 585/659/120 +f 587/657/121 590/656/121 589/655/121 +f 588/660/122 591/654/122 586/661/122 +f 599/662/123 597/663/123 598/664/123 +f 595/665/124 594/666/124 593/667/124 +f 595/665/125 598/664/125 597/663/125 +f 596/668/126 599/662/126 594/669/126 +f 602/670/127 603/671/127 601/672/127 +f 605/673/128 607/674/128 606/675/128 +f 603/671/129 606/675/129 601/672/129 +f 613/676/130 615/677/130 614/678/130 +f 610/679/131 611/680/131 609/681/131 +f 607/674/132 604/682/132 602/683/132 +f 611/680/133 614/678/133 609/681/133 +f 615/677/134 612/684/134 610/685/134 +f 621/686/135 623/687/135 622/688/135 +f 618/689/136 619/690/136 617/691/136 +f 619/690/137 622/688/137 617/691/137 +f 623/687/138 620/692/138 618/693/138 +f 629/694/139 631/695/139 630/696/139 +f 626/697/140 627/698/140 625/699/140 +f 627/698/141 630/696/141 625/699/141 +f 631/695/142 628/700/142 626/701/142 +f 633/702/89 636/703/89 634/704/89 +f 637/705/90 640/706/90 638/707/90 +f 642/708/87 644/709/87 641/710/87 +f 646/711/88 648/712/88 645/713/88 +f 636/703/106 641/710/106 644/709/106 +f 640/706/107 645/713/107 648/712/107 +f 634/714/109 642/708/109 633/715/109 +f 638/716/110 646/711/110 637/717/110 +f 649/718/96 652/719/96 650/720/96 +f 654/721/95 656/722/95 653/723/95 +f 652/719/105 653/723/105 656/722/105 +f 650/724/108 654/721/108 649/725/108 +f 657/726/102 660/727/102 659/728/102 +f 661/729/103 664/730/103 663/731/103 +f 665/732/104 668/733/104 667/734/104 +f 670/735/99 672/736/99 671/737/99 +f 674/738/100 676/739/100 675/740/100 +f 678/741/101 680/742/101 679/743/101 +f 660/727/97 669/744/97 659/728/97 +f 664/730/91 673/745/91 663/731/91 +f 668/733/92 677/746/92 667/734/92 +f 670/735/98 658/747/98 657/748/98 +f 674/738/93 662/749/93 661/750/93 +f 678/741/94 666/751/94 665/752/94 +f 683/753/127 682/754/127 681/755/127 +f 687/756/128 685/757/128 686/758/128 +f 683/753/116 686/758/116 685/757/116 +f 695/759/130 693/760/130 694/761/130 +f 691/762/131 690/763/131 689/764/131 +f 684/765/113 687/756/113 682/766/113 +f 691/762/118 694/761/118 693/760/118 +f 692/767/117 695/759/117 690/768/117 +f 703/769/135 701/770/135 702/771/135 +f 699/772/136 698/773/136 697/774/136 +f 699/772/122 702/771/122 701/770/122 +f 700/775/121 703/769/121 698/776/121 +f 711/777/139 709/778/139 710/779/139 +f 707/780/140 706/781/140 705/782/140 +f 707/780/126 710/779/126 709/778/126 +f 708/783/125 711/777/125 706/784/125 +f 714/785/111 715/786/111 713/787/111 +f 717/788/112 719/789/112 718/790/112 +f 715/786/132 718/790/132 713/787/132 +f 725/791/114 727/792/114 726/793/114 +f 722/794/115 723/795/115 721/796/115 +f 719/789/129 716/797/129 714/798/129 +f 723/795/134 726/793/134 721/796/134 +f 727/792/133 724/799/133 722/800/133 +f 733/801/119 735/802/119 734/803/119 +f 730/804/120 731/805/120 729/806/120 +f 731/805/138 734/803/138 729/806/138 +f 735/802/137 732/807/137 730/808/137 +f 741/809/123 743/810/123 742/811/123 +f 738/812/124 739/813/124 737/814/124 +f 739/813/142 742/811/142 737/814/142 +f 743/810/141 740/815/141 738/816/141 +f 3/1/1 4/817/1 2/2/1 +f 7/4/2 8/818/2 5/5/2 +f 3/7/3 5/819/3 8/8/3 +f 2/2/4 7/4/4 6/6/4 +f 4/10/5 8/820/5 7/11/5 +f 1/13/6 6/821/6 5/14/6 +f 10/16/5 18/822/5 20/17/5 +f 13/19/2 11/26/2 9/20/2 +f 14/21/2 9/20/2 10/22/2 +f 15/23/2 10/22/2 12/24/2 +f 16/25/2 12/24/2 11/26/2 +f 11/27/6 19/823/6 17/28/6 +f 16/30/6 24/824/6 23/31/6 +f 14/33/5 22/825/5 21/34/5 +f 12/36/3 20/826/3 19/37/3 +f 9/20/4 17/827/4 18/39/4 +f 13/19/4 21/828/4 24/40/4 +f 15/41/3 23/829/3 22/42/3 +f 19/44/1 20/47/1 24/45/1 +f 20/47/1 18/49/1 23/48/1 +f 18/49/1 17/51/1 22/50/1 +f 17/51/1 19/44/1 21/46/1 +f 27/52/1 28/64/1 26/53/1 +f 31/55/1 32/83/1 30/56/1 +f 35/58/1 36/830/1 34/59/1 +f 39/61/1 40/831/1 38/62/1 +f 28/64/7 27/52/7 59/65/7 +f 35/67/7 67/832/7 68/68/7 +f 28/70/8 60/833/8 58/71/8 +f 36/69/9 68/68/9 66/73/9 +f 27/52/10 25/91/10 57/75/10 +f 35/58/11 33/60/11 65/76/11 +f 30/78/12 62/834/12 61/79/12 +f 37/63/12 38/62/12 70/81/12 +f 32/83/13 31/90/13 63/84/13 +f 39/86/13 71/93/13 72/87/13 +f 30/56/8 32/83/8 64/85/8 +f 38/62/9 40/88/9 72/87/9 +f 29/80/10 61/79/10 63/84/10 +f 26/72/14 58/71/14 57/75/14 +f 37/92/11 69/835/11 71/93/11 +f 33/60/14 34/74/14 66/73/14 +f 41/94/15 43/98/15 86/95/15 +f 85/97/16 86/95/16 43/98/16 +f 42/100/17 87/103/17 85/101/17 +f 41/94/18 88/96/18 87/103/18 +f 49/104/19 51/836/19 78/105/19 +f 52/107/16 77/111/16 78/108/16 +f 50/110/20 79/112/20 77/111/20 +f 50/110/18 49/104/18 80/106/18 +f 47/113/15 82/837/15 84/114/15 +f 81/116/21 82/837/21 47/113/21 +f 48/117/17 46/838/17 83/118/17 +f 45/115/22 84/114/22 83/119/22 +f 55/121/19 74/125/19 76/122/19 +f 56/124/21 73/127/21 74/125/21 +f 56/124/20 54/128/20 75/126/20 +f 54/128/22 53/839/22 76/129/22 +f 96/130/6 104/840/6 103/131/6 +f 91/133/3 97/841/3 100/134/3 +f 90/136/4 99/147/4 98/137/4 +f 92/139/5 100/842/5 99/140/5 +f 89/142/6 98/843/6 97/143/6 +f 93/145/2 97/151/2 98/137/2 +f 94/146/2 98/137/2 99/147/2 +f 95/148/2 99/147/2 100/149/2 +f 96/150/2 100/149/2 97/151/2 +f 90/152/1 103/165/1 104/153/1 +f 94/155/5 102/844/5 101/156/5 +f 93/145/4 101/845/4 104/158/4 +f 95/159/3 103/846/3 102/160/3 +f 91/162/1 92/154/1 104/153/1 +f 89/164/1 102/166/1 103/165/1 +f 91/162/1 101/163/1 102/166/1 +f 118/168/4 120/847/4 122/169/4 +f 122/169/4 121/186/4 117/167/4 +f 121/186/4 119/848/4 117/167/4 +f 108/170/23 114/180/23 116/171/23 +f 110/172/2 116/171/2 115/173/2 +f 107/175/6 113/178/6 111/176/6 +f 109/174/24 115/173/24 113/178/24 +f 106/179/5 112/849/5 114/180/5 +f 111/182/3 113/850/3 115/173/3 +f 115/173/3 116/171/3 112/181/3 +f 116/171/3 114/851/3 112/181/3 +f 120/183/23 126/192/23 128/184/23 +f 122/169/2 128/184/2 127/185/2 +f 119/187/6 125/190/6 123/188/6 +f 121/186/24 127/185/24 125/190/24 +f 118/191/5 124/852/5 126/192/5 +f 123/194/3 125/853/3 127/185/3 +f 127/185/3 128/184/3 124/193/3 +f 128/184/3 126/854/3 124/193/3 +f 106/196/4 108/855/4 110/172/4 +f 110/172/4 109/174/4 105/195/4 +f 109/174/4 107/856/4 105/195/4 +f 129/199/4 130/857/4 131/858/4 +f 131/858/4 132/859/4 133/197/4 +f 133/197/4 134/860/4 135/861/4 +f 135/861/4 136/862/4 133/197/4 +f 136/862/4 137/198/4 133/197/4 +f 137/198/4 138/863/4 139/864/4 +f 139/864/4 140/865/4 129/199/4 +f 129/199/4 131/858/4 133/197/4 +f 137/198/4 139/864/4 129/199/4 +f 143/202/3 141/866/3 142/867/3 +f 142/867/3 152/868/3 143/202/3 +f 152/868/3 151/200/3 143/202/3 +f 151/200/3 150/869/3 149/870/3 +f 149/870/3 148/871/3 147/201/3 +f 147/201/3 146/872/3 145/873/3 +f 145/873/3 144/874/3 143/202/3 +f 151/200/3 149/870/3 147/201/3 +f 147/201/3 145/873/3 143/202/3 +f 185/203/1 188/875/1 187/204/1 +f 223/206/2 224/272/2 221/207/2 +f 177/209/3 181/876/3 184/210/3 +f 179/212/4 183/215/4 182/213/4 +f 180/211/5 184/210/5 183/215/5 +f 178/214/6 182/213/6 181/216/6 +f 195/218/25 194/241/25 190/219/25 +f 188/221/5 192/237/5 191/222/5 +f 186/224/6 190/234/6 189/225/6 +f 185/227/3 189/235/3 192/228/3 +f 187/204/4 191/220/4 190/219/4 +f 193/230/3 197/877/3 200/231/3 +f 194/233/24 193/245/24 189/225/24 +f 193/230/26 196/232/26 192/228/26 +f 196/236/23 195/243/23 191/222/23 +f 199/238/2 200/878/2 197/239/2 +f 195/218/4 199/238/4 198/240/4 +f 196/236/5 200/879/5 199/242/5 +f 194/233/6 198/880/6 197/244/6 +f 207/246/2 208/250/2 205/247/2 +f 203/249/3 205/247/3 208/250/3 +f 202/252/4 207/246/4 206/248/4 +f 201/253/6 206/248/6 210/254/6 +f 203/249/6 211/881/6 212/256/6 +f 212/257/6 210/882/6 206/248/6 +f 211/258/4 215/883/4 216/259/4 +f 210/261/3 214/264/3 213/262/3 +f 202/252/5 213/262/5 214/264/5 +f 216/259/5 215/883/5 204/251/5 +f 207/246/5 214/884/5 216/265/5 +f 216/265/1 214/884/1 210/266/1 +f 217/268/1 220/885/1 219/269/1 +f 217/271/3 221/207/3 224/272/3 +f 219/269/4 223/206/4 222/208/4 +f 220/274/27 224/272/27 223/206/27 +f 218/276/28 222/208/28 221/207/28 +f 226/278/2 228/282/2 227/279/2 +f 226/278/24 230/886/24 232/281/24 +f 227/279/23 231/284/23 229/283/23 +f 231/284/5 234/326/5 233/285/5 +f 319/286/4 243/300/4 233/287/4 +f 236/289/5 238/887/5 237/290/5 +f 240/292/6 242/888/6 241/293/6 +f 244/295/3 320/399/3 318/296/3 +f 244/298/6 246/301/6 245/299/6 +f 246/301/29 248/889/29 247/302/29 +f 248/303/1 250/306/1 249/304/1 +f 250/306/30 252/890/30 251/307/30 +f 251/308/2 252/891/2 232/309/2 +f 252/311/3 250/314/3 228/312/3 +f 250/314/3 248/316/3 227/315/3 +f 248/316/3 246/318/3 231/317/3 +f 246/318/3 244/295/3 234/297/3 +f 243/300/24 319/398/24 320/319/24 +f 242/320/3 240/892/3 238/321/3 +f 249/304/4 251/308/4 230/310/4 +f 247/305/4 249/304/4 226/323/4 +f 245/299/4 247/305/4 225/324/4 +f 243/300/4 245/299/4 229/325/4 +f 234/326/30 318/893/30 317/327/30 +f 237/290/4 239/294/4 241/293/4 +f 259/328/3 260/334/3 256/329/3 +f 258/331/4 257/335/4 253/332/4 +f 260/334/5 258/331/5 254/333/5 +f 257/335/6 259/894/6 255/336/6 +f 267/337/3 268/343/3 264/338/3 +f 266/340/4 265/344/4 261/341/4 +f 268/343/5 266/340/5 262/342/5 +f 265/344/6 267/895/6 263/345/6 +f 269/346/31 271/896/31 272/347/31 +f 273/349/32 275/897/32 276/350/32 +f 278/352/33 279/898/33 280/353/33 +f 282/355/34 283/899/34 284/356/34 +f 272/347/35 271/896/35 277/354/35 +f 276/350/36 275/897/36 281/357/36 +f 270/358/37 279/898/37 278/352/37 +f 274/360/38 283/899/38 282/355/38 +f 285/362/39 287/900/39 288/363/39 +f 290/365/40 291/901/40 292/366/40 +f 288/363/41 287/900/41 289/367/41 +f 286/368/42 291/901/42 290/365/42 +f 293/370/43 294/902/43 296/371/43 +f 297/373/44 298/903/44 300/374/44 +f 301/376/45 302/904/45 304/377/45 +f 306/379/46 305/388/46 308/380/46 +f 310/382/47 309/389/47 312/383/47 +f 314/385/48 313/390/48 316/386/48 +f 296/371/49 308/380/49 305/388/49 +f 300/374/50 312/383/50 309/389/50 +f 304/377/51 316/386/51 313/390/51 +f 306/379/52 307/381/52 294/391/52 +f 310/382/53 311/384/53 298/393/53 +f 314/385/54 315/387/54 302/395/54 +f 241/397/2 242/905/2 320/319/2 +f 242/320/3 236/322/3 318/296/3 +f 241/293/4 319/286/4 317/288/4 +f 317/327/1 318/893/1 236/400/1 +f 323/402/55 324/906/55 322/403/55 +f 327/405/56 328/907/56 325/406/56 +f 323/402/57 321/404/57 326/407/57 +f 335/408/58 336/908/58 333/409/58 +f 331/411/59 332/909/59 330/412/59 +f 324/414/60 328/907/60 327/405/60 +f 331/411/61 329/413/61 334/410/61 +f 332/416/62 336/908/62 335/408/62 +f 343/418/63 344/910/63 341/419/63 +f 339/421/64 340/911/64 338/422/64 +f 339/421/65 337/423/65 342/420/65 +f 340/424/66 344/910/66 343/418/66 +f 351/426/67 352/912/67 349/427/67 +f 347/429/68 348/913/68 346/430/68 +f 347/429/69 345/431/69 350/428/69 +f 348/432/70 352/912/70 351/426/70 +f 354/434/71 356/914/71 355/435/71 +f 357/437/72 360/915/72 359/438/72 +f 355/435/73 357/437/73 358/439/73 +f 365/440/74 368/916/74 367/441/74 +f 362/443/75 364/917/75 363/444/75 +f 359/438/76 360/915/76 356/446/76 +f 363/444/77 365/440/77 366/442/77 +f 367/441/78 368/916/78 364/448/78 +f 373/450/79 376/918/79 375/451/79 +f 370/453/80 372/919/80 371/454/80 +f 371/454/81 373/450/81 374/452/81 +f 375/451/82 376/918/82 372/456/82 +f 381/458/83 384/920/83 383/459/83 +f 378/461/84 380/921/84 379/462/84 +f 379/462/85 381/458/85 382/460/85 +f 383/459/86 384/920/86 380/464/86 +f 385/468/3 386/922/3 387/923/3 +f 387/923/3 388/924/3 389/466/3 +f 389/466/3 390/925/3 391/926/3 +f 391/926/3 392/927/3 389/466/3 +f 392/927/3 393/467/3 389/466/3 +f 393/467/3 394/928/3 395/929/3 +f 395/929/3 396/930/3 385/468/3 +f 385/468/3 387/923/3 389/466/3 +f 393/467/3 395/929/3 385/468/3 +f 399/471/4 397/931/4 398/932/4 +f 398/932/4 408/933/4 399/471/4 +f 408/933/4 407/469/4 399/471/4 +f 407/469/4 406/934/4 405/935/4 +f 405/935/4 404/936/4 403/470/4 +f 403/470/4 402/937/4 401/938/4 +f 401/938/4 400/939/4 399/471/4 +f 407/469/4 405/935/4 403/470/4 +f 403/470/4 401/938/4 399/471/4 +f 409/472/33 411/940/33 412/473/33 +f 413/475/34 415/941/34 416/476/34 +f 418/478/31 419/942/31 420/479/31 +f 422/481/32 423/943/32 424/482/32 +f 412/473/50 411/940/50 417/480/50 +f 416/476/51 415/941/51 421/483/51 +f 410/484/53 419/942/53 418/478/53 +f 414/486/54 423/943/54 422/481/54 +f 425/488/40 427/944/40 428/489/40 +f 430/491/39 431/945/39 432/492/39 +f 428/489/49 427/944/49 429/493/49 +f 426/494/52 431/945/52 430/491/52 +f 433/496/46 434/946/46 436/497/46 +f 437/499/47 438/947/47 440/500/47 +f 441/502/48 442/948/48 444/503/48 +f 446/505/43 445/514/43 448/506/43 +f 450/508/44 449/515/44 452/509/44 +f 454/511/45 453/516/45 456/512/45 +f 436/497/41 448/506/41 445/514/41 +f 440/500/35 452/509/35 449/515/35 +f 444/503/36 456/512/36 453/516/36 +f 446/505/42 447/507/42 434/517/42 +f 450/508/37 451/510/37 438/519/37 +f 454/511/38 455/513/38 442/521/38 +f 459/523/71 460/949/71 458/524/71 +f 463/526/72 464/950/72 461/527/72 +f 459/523/60 457/525/60 462/528/60 +f 471/529/74 472/951/74 469/530/74 +f 467/532/75 468/952/75 466/533/75 +f 460/535/57 464/950/57 463/526/57 +f 467/532/62 465/534/62 470/531/62 +f 468/537/61 472/951/61 471/529/61 +f 479/539/79 480/953/79 477/540/79 +f 475/542/80 476/954/80 474/543/80 +f 475/542/66 473/544/66 478/541/66 +f 476/545/65 480/953/65 479/539/65 +f 487/547/83 488/955/83 485/548/83 +f 483/550/84 484/956/84 482/551/84 +f 483/550/70 481/552/70 486/549/70 +f 484/553/69 488/955/69 487/547/69 +f 490/555/55 492/957/55 491/556/55 +f 493/558/56 496/958/56 495/559/56 +f 491/556/76 493/558/76 494/560/76 +f 501/561/58 504/959/58 503/562/58 +f 498/564/59 500/960/59 499/565/59 +f 495/559/73 496/958/73 492/567/73 +f 499/565/78 501/561/78 502/563/78 +f 503/562/77 504/959/77 500/569/77 +f 509/571/63 512/961/63 511/572/63 +f 506/574/64 508/962/64 507/575/64 +f 507/575/82 509/571/82 510/573/82 +f 511/572/81 512/961/81 508/577/81 +f 517/579/67 520/963/67 519/580/67 +f 514/582/68 516/964/68 515/583/68 +f 515/583/86 517/579/86 518/581/86 +f 519/580/85 520/963/85 516/585/85 +f 521/587/87 523/965/87 524/588/87 +f 525/590/88 527/966/88 528/591/88 +f 530/593/89 531/967/89 532/594/89 +f 534/596/90 535/968/90 536/597/90 +f 524/588/91 523/965/91 529/595/91 +f 528/591/92 527/966/92 533/598/92 +f 522/599/93 531/967/93 530/593/93 +f 526/601/94 535/968/94 534/596/94 +f 537/603/95 539/969/95 540/604/95 +f 542/606/96 543/970/96 544/607/96 +f 540/604/97 539/969/97 541/608/97 +f 538/609/98 543/970/98 542/606/98 +f 545/611/99 546/971/99 548/612/99 +f 549/614/100 550/972/100 552/615/100 +f 553/617/101 554/973/101 556/618/101 +f 558/620/102 557/629/102 560/621/102 +f 562/623/103 561/630/103 564/624/103 +f 566/626/104 565/631/104 568/627/104 +f 548/612/105 560/621/105 557/629/105 +f 552/615/106 564/624/106 561/630/106 +f 556/618/107 568/627/107 565/631/107 +f 558/620/108 559/622/108 546/632/108 +f 562/623/109 563/625/109 550/634/109 +f 566/626/110 567/628/110 554/636/110 +f 571/638/111 572/974/111 570/639/111 +f 575/641/112 576/975/112 573/642/112 +f 571/638/113 569/640/113 574/643/113 +f 583/644/114 584/976/114 581/645/114 +f 579/647/115 580/977/115 578/648/115 +f 572/650/116 576/975/116 575/641/116 +f 579/647/117 577/649/117 582/646/117 +f 580/652/118 584/976/118 583/644/118 +f 591/654/119 592/978/119 589/655/119 +f 587/657/120 588/979/120 586/658/120 +f 587/657/121 585/659/121 590/656/121 +f 588/660/122 592/978/122 591/654/122 +f 599/662/123 600/980/123 597/663/123 +f 595/665/124 596/981/124 594/666/124 +f 595/665/125 593/667/125 598/664/125 +f 596/668/126 600/980/126 599/662/126 +f 602/670/127 604/982/127 603/671/127 +f 605/673/128 608/983/128 607/674/128 +f 603/671/129 605/673/129 606/675/129 +f 613/676/130 616/984/130 615/677/130 +f 610/679/131 612/985/131 611/680/131 +f 607/674/132 608/983/132 604/682/132 +f 611/680/133 613/676/133 614/678/133 +f 615/677/134 616/984/134 612/684/134 +f 621/686/135 624/986/135 623/687/135 +f 618/689/136 620/987/136 619/690/136 +f 619/690/137 621/686/137 622/688/137 +f 623/687/138 624/986/138 620/692/138 +f 629/694/139 632/988/139 631/695/139 +f 626/697/140 628/989/140 627/698/140 +f 627/698/141 629/694/141 630/696/141 +f 631/695/142 632/988/142 628/700/142 +f 633/702/89 635/990/89 636/703/89 +f 637/705/90 639/991/90 640/706/90 +f 642/708/87 643/992/87 644/709/87 +f 646/711/88 647/993/88 648/712/88 +f 636/703/106 635/990/106 641/710/106 +f 640/706/107 639/991/107 645/713/107 +f 634/714/109 643/992/109 642/708/109 +f 638/716/110 647/993/110 646/711/110 +f 649/718/96 651/994/96 652/719/96 +f 654/721/95 655/995/95 656/722/95 +f 652/719/105 651/994/105 653/723/105 +f 650/724/108 655/995/108 654/721/108 +f 657/726/102 658/996/102 660/727/102 +f 661/729/103 662/997/103 664/730/103 +f 665/732/104 666/998/104 668/733/104 +f 670/735/99 669/744/99 672/736/99 +f 674/738/100 673/745/100 676/739/100 +f 678/741/101 677/746/101 680/742/101 +f 660/727/97 672/736/97 669/744/97 +f 664/730/91 676/739/91 673/745/91 +f 668/733/92 680/742/92 677/746/92 +f 670/735/98 671/737/98 658/747/98 +f 674/738/93 675/740/93 662/749/93 +f 678/741/94 679/743/94 666/751/94 +f 683/753/127 684/999/127 682/754/127 +f 687/756/128 688/1000/128 685/757/128 +f 683/753/116 681/755/116 686/758/116 +f 695/759/130 696/1001/130 693/760/130 +f 691/762/131 692/1002/131 690/763/131 +f 684/765/113 688/1000/113 687/756/113 +f 691/762/118 689/764/118 694/761/118 +f 692/767/117 696/1001/117 695/759/117 +f 703/769/135 704/1003/135 701/770/135 +f 699/772/136 700/1004/136 698/773/136 +f 699/772/122 697/774/122 702/771/122 +f 700/775/121 704/1003/121 703/769/121 +f 711/777/139 712/1005/139 709/778/139 +f 707/780/140 708/1006/140 706/781/140 +f 707/780/126 705/782/126 710/779/126 +f 708/783/125 712/1005/125 711/777/125 +f 714/785/111 716/1007/111 715/786/111 +f 717/788/112 720/1008/112 719/789/112 +f 715/786/132 717/788/132 718/790/132 +f 725/791/114 728/1009/114 727/792/114 +f 722/794/115 724/1010/115 723/795/115 +f 719/789/129 720/1008/129 716/797/129 +f 723/795/134 725/791/134 726/793/134 +f 727/792/133 728/1009/133 724/799/133 +f 733/801/119 736/1011/119 735/802/119 +f 730/804/120 732/1012/120 731/805/120 +f 731/805/138 733/801/138 734/803/138 +f 735/802/137 736/1011/137 732/807/137 +f 741/809/123 744/1013/123 743/810/123 +f 738/812/124 740/1014/124 739/813/124 +f 739/813/142 741/809/142 742/811/142 +f 743/810/141 744/1013/141 740/815/141 s 1 -f 242/525/45 243/526/51 241/527/45 -f 244/528/51 132/529/43 243/526/51 -f 240/530/52 241/531/45 239/532/52 -f 238/533/44 239/532/52 237/534/44 -f 125/535/53 237/534/44 126/536/53 -f 127/537/46 126/536/53 128/538/46 -f 129/539/54 128/538/46 130/540/54 -f 131/541/43 130/540/54 132/529/43 -f 223/542/46 232/543/53 224/544/53 -f 221/545/43 229/546/54 222/547/54 -f 228/548/51 230/549/43 221/545/43 -f 226/550/52 235/551/45 227/552/45 -f 224/544/53 233/553/44 225/554/44 -f 222/547/54 231/555/46 223/542/46 -f 227/556/45 236/557/51 228/548/51 -f 225/554/44 234/558/52 226/550/52 -f 242/525/45 244/528/51 243/526/51 -f 244/528/51 131/541/43 132/529/43 -f 240/530/52 242/559/45 241/531/45 -f 238/533/44 240/530/52 239/532/52 -f 125/535/53 238/533/44 237/534/44 -f 127/537/46 125/535/53 126/536/53 -f 129/539/54 127/537/46 128/538/46 -f 131/541/43 129/539/54 130/540/54 -f 223/542/46 231/555/46 232/543/53 -f 221/545/43 230/549/43 229/546/54 -f 228/548/51 236/557/51 230/549/43 -f 226/550/52 234/558/52 235/551/45 -f 224/544/53 232/543/53 233/553/44 -f 222/547/54 229/546/54 231/555/46 -f 227/556/45 235/560/45 236/557/51 -f 225/554/44 233/553/44 234/558/52 +f 135/1015/1 146/1016/143 147/1017/1 +f 131/1018/144 144/1019/6 132/1020/6 +f 138/1021/5 151/1022/145 139/1023/145 +f 135/1024/1 148/1025/146 136/1026/146 +f 132/1020/6 145/1027/147 133/1028/147 +f 139/1023/145 152/1029/148 140/1030/148 +f 129/1031/2 141/1032/149 130/1033/149 +f 136/1026/146 149/1034/150 137/1035/150 +f 133/1028/147 146/1016/143 134/1036/143 +f 140/1030/148 142/1037/2 129/1031/2 +f 130/1033/149 143/1038/144 131/1018/144 +f 137/1035/150 150/1039/5 138/1021/5 +f 176/1040/148 153/1041/2 164/1042/148 +f 166/1043/149 155/1044/144 154/1045/149 +f 173/1046/150 162/1047/5 161/1048/150 +f 170/1049/143 159/1050/1 158/1051/143 +f 167/1052/144 156/1053/6 155/1044/144 +f 174/1054/5 163/1055/145 162/1047/5 +f 171/1056/1 160/1057/146 159/1058/1 +f 168/1059/6 157/1060/147 156/1053/6 +f 175/1061/145 164/1042/148 163/1055/145 +f 165/1062/2 154/1045/149 153/1041/2 +f 172/1063/146 161/1048/150 160/1057/146 +f 169/1064/147 158/1051/143 157/1060/147 +f 391/1065/1 402/1066/146 403/1067/1 +f 387/1068/145 400/1069/5 388/1070/5 +f 394/1071/6 407/1072/144 395/1073/144 +f 391/1074/1 404/1075/143 392/1076/143 +f 388/1070/5 401/1077/150 389/1078/150 +f 395/1073/144 408/1079/149 396/1080/149 +f 385/1081/2 397/1082/148 386/1083/148 +f 392/1076/143 405/1084/147 393/1085/147 +f 389/1078/150 402/1066/146 390/1086/146 +f 396/1080/149 398/1087/2 385/1081/2 +f 386/1083/148 399/1088/145 387/1068/145 +f 393/1085/147 406/1089/6 394/1071/6 +f 135/1015/1 134/1036/143 146/1016/143 +f 131/1018/144 143/1038/144 144/1019/6 +f 138/1021/5 150/1039/5 151/1022/145 +f 135/1024/1 147/1090/1 148/1025/146 +f 132/1020/6 144/1019/6 145/1027/147 +f 139/1023/145 151/1022/145 152/1029/148 +f 129/1031/2 142/1037/2 141/1032/149 +f 136/1026/146 148/1025/146 149/1034/150 +f 133/1028/147 145/1027/147 146/1016/143 +f 140/1030/148 152/1029/148 142/1037/2 +f 130/1033/149 141/1032/149 143/1038/144 +f 137/1035/150 149/1034/150 150/1039/5 +f 176/1040/148 165/1062/2 153/1041/2 +f 166/1043/149 167/1052/144 155/1044/144 +f 173/1046/150 174/1054/5 162/1047/5 +f 170/1049/143 171/1091/1 159/1050/1 +f 167/1052/144 168/1059/6 156/1053/6 +f 174/1054/5 175/1061/145 163/1055/145 +f 171/1056/1 172/1063/146 160/1057/146 +f 168/1059/6 169/1064/147 157/1060/147 +f 175/1061/145 176/1040/148 164/1042/148 +f 165/1062/2 166/1043/149 154/1045/149 +f 172/1063/146 173/1046/150 161/1048/150 +f 169/1064/147 170/1049/143 158/1051/143 +f 391/1065/1 390/1086/146 402/1066/146 +f 387/1068/145 399/1088/145 400/1069/5 +f 394/1071/6 406/1089/6 407/1072/144 +f 391/1074/1 403/1092/1 404/1075/143 +f 388/1070/5 400/1069/5 401/1077/150 +f 395/1073/144 407/1072/144 408/1079/149 +f 385/1081/2 398/1087/2 397/1082/148 +f 392/1076/143 404/1075/143 405/1084/147 +f 389/1078/150 401/1077/150 402/1066/146 +f 396/1080/149 408/1079/149 398/1087/2 +f 386/1083/148 397/1082/148 399/1088/145 +f 393/1085/147 405/1084/147 406/1089/6 diff --git a/src/main/resources/assets/hbm/models/machines/drain.obj b/src/main/resources/assets/hbm/models/machines/drain.obj new file mode 100644 index 000000000..0ad9f9eb5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/drain.obj @@ -0,0 +1,190 @@ +# Blender v2.79 (sub 0) OBJ File: 'drain.blend' +# www.blender.org +o Cube_Cube.001 +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.500000 -0.500000 +v -0.500000 0.853553 -0.353553 +v -0.500000 1.000000 0.000000 +v -0.500000 0.853553 0.353553 +v -0.500000 0.500000 0.500000 +v -0.500000 0.146447 0.353553 +v -0.500000 0.000000 -0.000000 +v -0.500000 0.146447 -0.353553 +v -2.500000 0.500000 -0.500000 +v -2.500000 0.853553 -0.353553 +v -2.500000 1.000000 0.000000 +v -2.500000 0.853553 0.353553 +v -2.500000 0.500000 0.500000 +v -2.500000 0.146447 0.353553 +v -2.500000 0.000000 -0.000000 +v -2.500000 0.146447 -0.353553 +v -2.500000 0.500000 -0.437500 +v -2.500000 0.809359 -0.309359 +v -2.500000 0.937500 0.000000 +v -2.500000 0.809359 0.309359 +v -2.500000 0.500000 0.437500 +v -2.500000 0.190641 0.309359 +v -2.500000 0.062500 -0.000000 +v -2.500000 0.190641 -0.309359 +v -1.500000 0.500000 -0.437500 +v -1.500000 0.809359 -0.309359 +v -1.500000 0.937500 0.000000 +v -1.500000 0.809359 0.309359 +v -1.500000 0.500000 0.437500 +v -1.500000 0.190641 0.309359 +v -1.500000 0.062500 -0.000000 +v -1.500000 0.190641 -0.309359 +vt 0.250000 0.326531 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.326531 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.326531 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.326531 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.653061 +vt 0.000000 0.326531 +vt 0.250000 0.326531 +vt 0.250000 0.653061 +vt 0.000000 0.326531 +vt 0.437500 0.653061 +vt 0.343750 0.000000 +vt 0.437500 0.000000 +vt 0.625000 0.653061 +vt 0.531250 -0.000000 +vt 0.625000 0.000000 +vt 0.812500 0.653061 +vt 0.718750 0.000000 +vt 0.812500 0.000000 +vt 0.906250 0.653061 +vt 0.906250 -0.000000 +vt 0.343750 0.653061 +vt 0.250000 0.000000 +vt 0.531250 0.653061 +vt 0.718750 0.653061 +vt 1.000000 0.653061 +vt 1.000000 -0.000000 +vt 0.812500 0.673469 +vt 0.250000 0.653061 +vt 0.343750 0.673469 +vt 0.250000 0.673469 +vt 0.437500 0.673469 +vt 0.625000 0.673469 +vt 0.906250 0.673469 +vt 0.531250 0.673469 +vt 0.718750 0.673469 +vt 0.531250 1.000000 +vt 0.718750 1.000000 +vt 0.812500 1.000000 +vt 0.250000 1.000000 +vt 0.437500 1.000000 +vt 0.625000 1.000000 +vt 1.000000 0.673469 +vt 0.906250 1.000000 +vt 0.343750 1.000000 +vt 0.249819 0.795918 +vt 0.217837 0.896766 +vt 0.140625 0.938539 +vt 0.000000 0.326531 +vt 0.000000 0.326531 +vt 0.000000 0.326531 +vt 0.000000 0.653061 +vt 0.000000 0.653061 +vt 1.000000 1.000000 +vt 0.063413 0.896766 +vt 0.031431 0.795918 +vt 0.063413 0.695070 +vt 0.140625 0.653298 +vt 0.217837 0.695070 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 -0.3827 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/6/2 +f 8/7/3 5/8/3 7/9/3 +f 6/10/4 1/11/4 5/12/4 +f 7/13/5 1/14/5 3/15/5 +f 4/16/6 6/17/6 8/7/6 +f 21/18/7 14/19/7 13/20/7 +f 19/21/8 12/22/8 11/23/8 +f 17/24/9 10/25/9 9/26/9 +f 24/27/10 9/26/10 16/28/10 +f 22/29/11 15/30/11 14/19/11 +f 20/31/12 13/20/12 12/22/12 +f 18/32/13 11/23/13 10/25/13 +f 23/33/14 16/28/14 15/34/14 +f 24/27/1 25/35/1 17/24/1 +f 23/36/1 30/37/1 31/38/1 +f 20/31/1 29/39/1 21/18/1 +f 18/32/1 27/40/1 19/21/1 +f 23/33/1 32/41/1 24/27/1 +f 21/18/1 30/37/1 22/29/1 +f 19/21/1 28/42/1 20/31/1 +f 17/24/1 26/43/1 18/32/1 +f 27/40/14 36/44/14 28/42/14 +f 25/35/7 34/45/7 26/43/7 +f 32/41/12 33/46/12 25/35/12 +f 30/37/13 39/47/13 31/38/13 +f 28/42/10 37/48/10 29/39/10 +f 26/43/11 35/49/11 27/40/11 +f 31/50/8 40/51/8 32/41/8 +f 29/39/9 38/52/9 30/37/9 +f 37/53/1 36/54/1 35/55/1 +f 2/1/1 4/56/1 3/2/1 +f 4/4/2 8/57/2 7/5/2 +f 8/7/3 6/17/3 5/8/3 +f 6/10/4 2/58/4 1/11/4 +f 7/13/5 5/59/5 1/14/5 +f 4/16/6 2/60/6 6/17/6 +f 21/18/7 22/29/7 14/19/7 +f 19/21/8 20/31/8 12/22/8 +f 17/24/9 18/32/9 10/25/9 +f 24/27/10 17/24/10 9/26/10 +f 22/29/11 23/36/11 15/30/11 +f 20/31/12 21/18/12 13/20/12 +f 18/32/13 19/21/13 11/23/13 +f 23/33/14 24/27/14 16/28/14 +f 24/27/1 32/41/1 25/35/1 +f 23/36/1 22/29/1 30/37/1 +f 20/31/1 28/42/1 29/39/1 +f 18/32/1 26/43/1 27/40/1 +f 23/33/1 31/50/1 32/41/1 +f 21/18/1 29/39/1 30/37/1 +f 19/21/1 27/40/1 28/42/1 +f 17/24/1 25/35/1 26/43/1 +f 27/40/14 35/49/14 36/44/14 +f 25/35/7 33/46/7 34/45/7 +f 32/41/12 40/51/12 33/46/12 +f 30/37/13 38/52/13 39/47/13 +f 28/42/10 36/44/10 37/48/10 +f 26/43/11 34/45/11 35/49/11 +f 31/50/8 39/61/8 40/51/8 +f 29/39/9 37/48/9 38/52/9 +f 35/55/1 34/62/1 33/63/1 +f 33/63/1 40/64/1 35/55/1 +f 40/64/1 39/65/1 35/55/1 +f 39/65/1 38/66/1 35/55/1 +f 38/66/1 37/53/1 35/55/1 diff --git a/src/main/resources/assets/hbm/models/machines/drone.obj b/src/main/resources/assets/hbm/models/machines/drone.obj new file mode 100644 index 000000000..93a950fbf --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/drone.obj @@ -0,0 +1,1707 @@ +# Blender v2.79 (sub 0) OBJ File: 'drone.blend' +# www.blender.org +o Crate +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +vt 0.242424 0.210526 +vt 0.000000 0.421053 +vt 0.000000 0.210526 +vt -0.000000 0.210526 +vt 0.242424 0.421053 +vt -0.000000 0.421053 +vt 0.242424 0.000000 +vt -0.000000 0.000000 +vt 0.242424 0.000000 +vt 0.000000 0.210526 +vt 0.000000 0.000000 +vt 0.242424 0.000000 +vt -0.000000 0.210526 +vt -0.000000 0.000000 +vt 0.242424 0.000000 +vt 0.000000 0.210526 +vt 0.000000 0.000000 +vt 0.242424 0.421053 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 4/7/3 6/4/3 2/8/3 +f 1/9/4 7/10/4 3/11/4 +f 3/12/5 8/13/5 4/14/5 +f 2/15/6 5/16/6 1/17/6 +f 3/1/1 4/18/1 2/2/1 +f 6/4/2 8/19/2 7/5/2 +f 4/7/3 8/19/3 6/4/3 +f 1/9/4 5/20/4 7/10/4 +f 3/12/5 7/21/5 8/13/5 +f 2/15/6 6/22/6 5/16/6 +o Barrel +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +vt 0.484848 0.210526 +vt 0.242424 0.421053 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vt 0.484848 0.421053 +vt 0.242424 0.421053 +vt 0.484848 -0.000000 +vt 0.242424 -0.000000 +vt 0.484848 -0.000000 +vt 0.242424 0.210526 +vt 0.242424 -0.000000 +vt 0.484848 -0.000000 +vt 0.242424 0.210526 +vt 0.242424 -0.000000 +vt 0.484848 -0.000000 +vt 0.242424 0.210526 +vt 0.242424 -0.000000 +vt 0.484848 0.421053 +vt 0.484848 0.210526 +vt 0.484848 0.210526 +vt 0.484848 0.210526 +vt 0.484848 0.210526 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 11/23/7 10/24/7 9/25/7 +f 14/26/8 15/27/8 13/28/8 +f 12/29/9 14/26/9 10/30/9 +f 9/31/10 15/32/10 11/33/10 +f 11/34/11 16/35/11 12/36/11 +f 10/37/12 13/38/12 9/39/12 +f 11/23/7 12/40/7 10/24/7 +f 14/26/8 16/41/8 15/27/8 +f 12/29/9 16/41/9 14/26/9 +f 9/31/10 13/42/10 15/32/10 +f 11/34/11 15/43/11 16/35/11 +f 10/37/12 14/44/12 13/38/12 +o Drone +v -0.088388 0.875000 1.036612 +v 0.000000 0.875000 1.000000 +v 0.088388 0.875000 1.036612 +v 0.125000 0.875000 1.125000 +v 0.088388 0.875000 1.213388 +v 0.000000 0.875000 1.250000 +v -0.125000 0.875000 1.125000 +v -0.088388 0.875000 1.213388 +v -0.031250 2.375000 0.031250 +v 0.031250 2.375000 0.031250 +v -0.031250 2.375000 -0.031250 +v 0.031250 2.375000 -0.031250 +v 0.031250 1.875000 -0.031250 +v -0.031250 1.875000 -0.031250 +v 0.031250 1.875000 0.031250 +v -0.031250 1.875000 0.031250 +v 0.375000 1.875000 -0.375000 +v 0.375000 1.875000 0.375000 +v -0.375000 1.875000 0.375000 +v -0.375000 1.875000 -0.375000 +v -0.500000 1.750000 0.500000 +v 0.500000 1.750000 0.500000 +v -0.500000 1.750000 -0.500000 +v 0.500000 1.750000 -0.500000 +v 0.500000 1.625000 -0.500000 +v -0.500000 1.625000 -0.500000 +v 0.500000 1.625000 0.500000 +v -0.500000 1.625000 0.500000 +v -0.500000 0.625000 0.500000 +v -0.500000 0.375000 0.500000 +v -0.250000 0.625000 0.500000 +v -0.250000 0.375000 0.500000 +v -0.500000 0.625000 0.250000 +v -0.500000 0.375000 0.250000 +v -0.250000 0.625000 0.625000 +v -0.250000 0.375000 0.625000 +v -0.625000 0.625000 0.250000 +v -0.625000 0.375000 0.250000 +v -0.625000 0.625000 0.625000 +v -0.625000 0.375000 0.625000 +v -0.625000 0.625000 0.500000 +v -0.625000 0.625000 0.625000 +v -0.500000 0.625000 0.500000 +v -0.500000 0.625000 0.625000 +v -0.625000 1.375000 0.500000 +v -0.625000 1.375000 0.625000 +v -0.500000 1.375000 0.500000 +v -0.500000 1.375000 0.625000 +v -0.625000 1.375000 0.625000 +v 0.625000 1.375000 0.625000 +v -0.625000 1.375000 -0.625000 +v 0.625000 1.375000 -0.625000 +v -0.625000 1.625000 -0.625000 +v -0.625000 1.625000 0.625000 +v 0.625000 1.625000 0.625000 +v 0.625000 1.625000 -0.625000 +v 0.500000 1.125000 -1.125000 +v -0.500000 1.125000 -1.125000 +v -0.500000 1.375000 -1.125000 +v 0.500000 1.375000 -1.125000 +v -0.500000 1.125000 1.125000 +v 0.500000 1.125000 1.125000 +v 0.500000 1.375000 1.125000 +v -0.500000 1.375000 1.125000 +v 1.125000 1.125000 0.500000 +v 1.125000 1.125000 -0.500000 +v 1.125000 1.375000 -0.500000 +v 1.125000 1.375000 0.500000 +v -1.125000 1.125000 -0.500000 +v -1.125000 1.125000 0.500000 +v -1.125000 1.375000 0.500000 +v -1.125000 1.375000 -0.500000 +v -0.088388 0.750000 1.036612 +v -0.125000 0.750000 1.125000 +v -0.250000 1.250000 1.125000 +v -0.250000 1.625000 1.125000 +v -0.176777 1.250000 0.948223 +v -0.176777 1.625000 0.948223 +v 0.000000 1.250000 0.875000 +v 0.000000 1.625000 0.875000 +v 0.176777 1.250000 0.948223 +v 0.176777 1.625000 0.948223 +v 0.250000 1.250000 1.125000 +v 0.250000 1.625000 1.125000 +v 0.176777 1.250000 1.301776 +v 0.176777 1.625000 1.301776 +v 0.000000 1.250000 1.375000 +v 0.000000 1.625000 1.375000 +v -0.176777 1.250000 1.301776 +v -0.176777 1.625000 1.301776 +v 0.000000 0.750000 1.000000 +v 0.088388 0.750000 1.036612 +v 0.125000 0.750000 1.125000 +v 0.088388 0.750000 1.213388 +v 0.000000 0.750000 1.250000 +v -0.088388 0.750000 1.213388 +v -0.132583 1.750000 0.992417 +v -0.187500 1.750000 1.125000 +v 0.000000 1.750000 0.937500 +v 0.132582 1.750000 0.992418 +v 0.187500 1.750000 1.125000 +v 0.132583 1.750000 1.257582 +v 0.000000 1.750000 1.312500 +v -0.132583 1.750000 1.257582 +v -0.132583 1.625000 0.992417 +v -0.187500 1.625000 1.125000 +v 0.000000 1.625000 0.937500 +v 0.132582 1.625000 0.992418 +v 0.187500 1.625000 1.125000 +v 0.132583 1.625000 1.257582 +v 0.000000 1.625000 1.312500 +v -0.132583 1.625000 1.257582 +v -0.250000 1.125000 1.375000 +v 0.250000 1.125000 1.375000 +v 0.250000 1.375000 1.375000 +v -0.250000 1.375000 1.375000 +v -0.500000 1.125000 1.125000 +v 0.500000 1.125000 1.125000 +v 0.500000 1.375000 1.125000 +v -0.500000 1.375000 1.125000 +v 0.088388 0.875000 -1.036612 +v -0.000000 0.875000 -1.000000 +v -0.088388 0.875000 -1.036612 +v -0.125000 0.875000 -1.125000 +v -0.088388 0.875000 -1.213388 +v -0.000000 0.875000 -1.250000 +v 0.125000 0.875000 -1.125000 +v 0.088388 0.875000 -1.213388 +v 0.088388 0.750000 -1.036612 +v 0.125000 0.750000 -1.125000 +v 0.250000 1.250000 -1.125000 +v 0.250000 1.625000 -1.125000 +v 0.176777 1.250000 -0.948223 +v 0.176777 1.625000 -0.948223 +v -0.000000 1.250000 -0.875000 +v -0.000000 1.625000 -0.875000 +v -0.176777 1.250000 -0.948223 +v -0.176777 1.625000 -0.948223 +v -0.250000 1.250000 -1.125000 +v -0.250000 1.625000 -1.125000 +v -0.176777 1.250000 -1.301776 +v -0.176777 1.625000 -1.301776 +v -0.000000 1.250000 -1.375000 +v -0.000000 1.625000 -1.375000 +v 0.176777 1.250000 -1.301776 +v 0.176777 1.625000 -1.301776 +v -0.000000 0.750000 -1.000000 +v -0.088388 0.750000 -1.036612 +v -0.125000 0.750000 -1.125000 +v -0.088388 0.750000 -1.213388 +v -0.000000 0.750000 -1.250000 +v 0.088388 0.750000 -1.213388 +v 0.132583 1.750000 -0.992417 +v 0.187500 1.750000 -1.125000 +v -0.000000 1.750000 -0.937500 +v -0.132583 1.750000 -0.992418 +v -0.187500 1.750000 -1.125000 +v -0.132583 1.750000 -1.257582 +v -0.000000 1.750000 -1.312500 +v 0.132583 1.750000 -1.257582 +v 0.132583 1.625000 -0.992417 +v 0.187500 1.625000 -1.125000 +v -0.000000 1.625000 -0.937500 +v -0.132583 1.625000 -0.992418 +v -0.187500 1.625000 -1.125000 +v -0.132583 1.625000 -1.257582 +v -0.000000 1.625000 -1.312500 +v 0.132583 1.625000 -1.257582 +v 0.250000 1.125000 -1.375000 +v -0.250000 1.125000 -1.375000 +v -0.250000 1.375000 -1.375000 +v 0.250000 1.375000 -1.375000 +v 0.500000 1.125000 -1.125000 +v -0.500000 1.125000 -1.125000 +v -0.500000 1.375000 -1.125000 +v 0.500000 1.375000 -1.125000 +v 1.036612 0.875000 0.088388 +v 1.000000 0.875000 0.000000 +v 1.036612 0.875000 -0.088388 +v 1.125000 0.875000 -0.125000 +v 1.213388 0.875000 -0.088388 +v 1.250000 0.875000 0.000000 +v 1.125000 0.875000 0.125000 +v 1.213388 0.875000 0.088388 +v 1.036612 0.750000 0.088388 +v 1.125000 0.750000 0.125000 +v 1.125000 1.250000 0.250000 +v 1.125000 1.625000 0.250000 +v 0.948223 1.250000 0.176777 +v 0.948223 1.625000 0.176777 +v 0.875000 1.250000 -0.000000 +v 0.875000 1.625000 -0.000000 +v 0.948223 1.250000 -0.176777 +v 0.948223 1.625000 -0.176777 +v 1.125000 1.250000 -0.250000 +v 1.125000 1.625000 -0.250000 +v 1.301776 1.250000 -0.176777 +v 1.301776 1.625000 -0.176777 +v 1.375000 1.250000 -0.000000 +v 1.375000 1.625000 -0.000000 +v 1.301776 1.250000 0.176777 +v 1.301776 1.625000 0.176777 +v 1.000000 0.750000 0.000000 +v 1.036612 0.750000 -0.088388 +v 1.125000 0.750000 -0.125000 +v 1.213388 0.750000 -0.088388 +v 1.250000 0.750000 0.000000 +v 1.213388 0.750000 0.088388 +v 0.992417 1.750000 0.132583 +v 1.125000 1.750000 0.187500 +v 0.937500 1.750000 -0.000000 +v 0.992418 1.750000 -0.132582 +v 1.125000 1.750000 -0.187500 +v 1.257582 1.750000 -0.132583 +v 1.312500 1.750000 0.000000 +v 1.257582 1.750000 0.132583 +v 0.992417 1.625000 0.132583 +v 1.125000 1.625000 0.187500 +v 0.937500 1.625000 -0.000000 +v 0.992418 1.625000 -0.132582 +v 1.125000 1.625000 -0.187500 +v 1.257582 1.625000 -0.132583 +v 1.312500 1.625000 0.000000 +v 1.257582 1.625000 0.132583 +v 1.375000 1.125000 0.250000 +v 1.375000 1.125000 -0.250000 +v 1.375000 1.375000 -0.250000 +v 1.375000 1.375000 0.250000 +v 1.125000 1.125000 0.500000 +v 1.125000 1.125000 -0.500000 +v 1.125000 1.375000 -0.500000 +v 1.125000 1.375000 0.500000 +v -1.036612 0.875000 -0.088388 +v -1.000000 0.875000 0.000000 +v -1.036612 0.875000 0.088388 +v -1.125000 0.875000 0.125000 +v -1.213388 0.875000 0.088388 +v -1.250000 0.875000 0.000000 +v -1.125000 0.875000 -0.125000 +v -1.213388 0.875000 -0.088388 +v -1.036612 0.750000 -0.088388 +v -1.125000 0.750000 -0.125000 +v -1.125000 1.250000 -0.250000 +v -1.125000 1.625000 -0.250000 +v -0.948223 1.250000 -0.176777 +v -0.948223 1.625000 -0.176777 +v -0.875000 1.250000 0.000000 +v -0.875000 1.625000 0.000000 +v -0.948223 1.250000 0.176777 +v -0.948223 1.625000 0.176777 +v -1.125000 1.250000 0.250000 +v -1.125000 1.625000 0.250000 +v -1.301776 1.250000 0.176777 +v -1.301776 1.625000 0.176777 +v -1.375000 1.250000 0.000000 +v -1.375000 1.625000 0.000000 +v -1.301776 1.250000 -0.176776 +v -1.301776 1.625000 -0.176776 +v -1.000000 0.750000 0.000000 +v -1.036612 0.750000 0.088388 +v -1.125000 0.750000 0.125000 +v -1.213388 0.750000 0.088388 +v -1.250000 0.750000 0.000000 +v -1.213388 0.750000 -0.088388 +v -0.992417 1.750000 -0.132583 +v -1.125000 1.750000 -0.187500 +v -0.937500 1.750000 0.000000 +v -0.992418 1.750000 0.132583 +v -1.125000 1.750000 0.187500 +v -1.257582 1.750000 0.132583 +v -1.312500 1.750000 0.000000 +v -1.257582 1.750000 -0.132582 +v -0.992417 1.625000 -0.132583 +v -1.125000 1.625000 -0.187500 +v -0.937500 1.625000 0.000000 +v -0.992418 1.625000 0.132583 +v -1.125000 1.625000 0.187500 +v -1.257582 1.625000 0.132583 +v -1.312500 1.625000 0.000000 +v -1.257582 1.625000 -0.132582 +v -1.375000 1.125000 -0.250000 +v -1.375000 1.125000 0.250000 +v -1.375000 1.375000 0.250000 +v -1.375000 1.375000 -0.250000 +v -1.125000 1.125000 -0.500000 +v -1.125000 1.125000 0.500000 +v -1.125000 1.375000 0.500000 +v -1.125000 1.375000 -0.500000 +v 0.500000 0.625000 -0.500000 +v 0.500000 0.375000 -0.500000 +v 0.250000 0.625000 -0.500000 +v 0.250000 0.375000 -0.500000 +v 0.500000 0.625000 -0.250000 +v 0.500000 0.375000 -0.250000 +v 0.250000 0.625000 -0.625000 +v 0.250000 0.375000 -0.625000 +v 0.625000 0.625000 -0.250000 +v 0.625000 0.375000 -0.250000 +v 0.625000 0.625000 -0.625000 +v 0.625000 0.375000 -0.625000 +v 0.625000 0.625000 -0.500000 +v 0.625000 0.625000 -0.625000 +v 0.500000 0.625000 -0.500000 +v 0.500000 0.625000 -0.625000 +v 0.625000 1.375000 -0.500000 +v 0.625000 1.375000 -0.625000 +v 0.500000 1.375000 -0.500000 +v 0.500000 1.375000 -0.625000 +v 0.500000 0.625000 0.500000 +v 0.500000 0.375000 0.500000 +v 0.500000 0.625000 0.250000 +v 0.500000 0.375000 0.250000 +v 0.250000 0.625000 0.500000 +v 0.250000 0.375000 0.500000 +v 0.625000 0.625000 0.250000 +v 0.625000 0.375000 0.250000 +v 0.250000 0.625000 0.625000 +v 0.250000 0.375000 0.625000 +v 0.625000 0.625000 0.625000 +v 0.625000 0.375000 0.625000 +v 0.500000 0.625000 0.625000 +v 0.625000 0.625000 0.625000 +v 0.500000 0.625000 0.500000 +v 0.625000 0.625000 0.500000 +v 0.500000 1.375000 0.625000 +v 0.625000 1.375000 0.625000 +v 0.500000 1.375000 0.500000 +v 0.625000 1.375000 0.500000 +v -0.500000 0.625000 -0.500000 +v -0.500000 0.375000 -0.500000 +v -0.500000 0.625000 -0.250000 +v -0.500000 0.375000 -0.250000 +v -0.250000 0.625000 -0.500000 +v -0.250000 0.375000 -0.500000 +v -0.625000 0.625000 -0.250000 +v -0.625000 0.375000 -0.250000 +v -0.250000 0.625000 -0.625000 +v -0.250000 0.375000 -0.625000 +v -0.625000 0.625000 -0.625000 +v -0.625000 0.375000 -0.625000 +v -0.500000 0.625000 -0.625000 +v -0.625000 0.625000 -0.625000 +v -0.500000 0.625000 -0.500000 +v -0.625000 0.625000 -0.500000 +v -0.500000 1.375000 -0.625000 +v -0.625000 1.375000 -0.625000 +v -0.500000 1.375000 -0.500000 +v -0.625000 1.375000 -0.500000 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.727273 0.934211 +vt 0.742424 0.921053 +vt 0.742424 0.934211 +vt 0.757576 0.921053 +vt 0.742424 0.815789 +vt 0.757576 0.815789 +vt 0.727273 0.921053 +vt 0.712121 0.815789 +vt 0.727273 0.815789 +vt 0.772727 0.921053 +vt 0.772727 0.815789 +vt 0.954545 0.552632 +vt 0.742424 0.592105 +vt 0.712121 0.552632 +vt 0.696970 0.565789 +vt 0.742424 0.750000 +vt 0.696970 0.776316 +vt 0.969697 0.776316 +vt 0.924242 0.592105 +vt 0.969697 0.565789 +vt 0.924242 0.750000 +vt 1.000000 0.776316 +vt 1.000000 0.565789 +vt 0.666667 0.565789 +vt 0.666667 0.776316 +vt 0.954545 0.526316 +vt 0.712121 0.526316 +vt 0.712121 0.815789 +vt 0.954545 0.789474 +vt 0.954545 0.815789 +vt 0.712121 0.789474 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.484848 0.578947 +vt 0.181818 0.842105 +vt 0.181818 0.578947 +vt 0.181818 0.578947 +vt 0.484848 0.842105 +vt 0.181818 0.842105 +vt 0.666667 0.815789 +vt 0.606061 0.605263 +vt 0.666667 0.605263 +vt 0.606061 0.815789 +vt 0.484848 0.842105 +vt 0.606061 0.815789 +vt 0.666667 0.921053 +vt 0.606061 0.921053 +vt 0.484848 0.578947 +vt 0.666667 0.500000 +vt 0.606061 0.500000 +vt 0.000000 0.605263 +vt 0.060606 0.815789 +vt 0.000000 0.815789 +vt 0.060606 0.605263 +vt 0.060606 0.605263 +vt 0.000000 0.500000 +vt 0.060606 0.500000 +vt 0.000000 0.921053 +vt 0.060606 0.921053 +vt 0.454545 0.421053 +vt 0.212121 0.473684 +vt 0.212121 0.421053 +vt 0.212121 0.947368 +vt 0.454545 0.473684 +vt 0.575758 0.421053 +vt 0.575758 0.473684 +vt 0.090909 0.421053 +vt 0.090909 0.473684 +vt 0.212121 1.000000 +vt 0.454545 0.947368 +vt 0.454545 1.000000 +vt 0.454545 0.473684 +vt 0.212121 0.947368 +vt 0.090909 1.000000 +vt 0.090909 0.947368 +vt 0.575758 1.000000 +vt 0.575758 0.947368 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.712121 0.921053 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.606061 0.605263 +vt 0.060606 0.815789 +vt 0.454545 0.947368 +vt 0.212121 0.473684 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.787879 0.421053 +vt 0.833333 0.447368 +vt 0.803030 0.447368 +vt 0.787879 0.342105 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.833333 0.421053 +vt 0.878788 0.447368 +vt 0.848485 0.447368 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.878788 0.421053 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.742424 0.342105 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.939394 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.848485 0.473684 +vt 0.969697 0.447368 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.833333 0.421053 +vt 0.803030 0.447368 +vt 0.787879 0.421053 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.878788 0.447368 +vt 0.848485 0.447368 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.878788 0.421053 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.787879 0.342105 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.742424 0.342105 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.969697 0.447368 +vt 0.939394 0.447368 +vt 0.833333 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.848485 0.473684 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.787879 0.421053 +vt 0.833333 0.447368 +vt 0.803030 0.447368 +vt 0.787879 0.342105 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.878788 0.421053 +vt 0.848485 0.447368 +vt 0.833333 0.421053 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.742424 0.342105 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.969697 0.447368 +vt 0.939394 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.878788 0.447368 +vt 0.848485 0.473684 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.787879 0.421053 +vt 0.833333 0.447368 +vt 0.803030 0.447368 +vt 0.787879 0.342105 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.833333 0.421053 +vt 0.878788 0.447368 +vt 0.848485 0.447368 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.878788 0.421053 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.742424 0.342105 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.969697 0.447368 +vt 0.939394 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.848485 0.473684 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.7071 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.0000 -0.8944 0.4472 +vn -0.9701 0.0000 -0.2425 +vn 0.0000 0.8944 -0.4472 +vn 0.9701 0.0000 -0.2425 +vn 0.0000 -0.8944 -0.4472 +vn 0.9701 0.0000 0.2425 +vn 0.0000 0.8944 0.4472 +vn -0.9701 0.0000 0.2425 +vn -0.4472 -0.8944 0.0000 +vn 0.2425 0.0000 -0.9701 +vn 0.4472 0.8944 0.0000 +vn 0.2425 0.0000 0.9701 +vn 0.4472 -0.8944 0.0000 +vn -0.2425 0.0000 0.9701 +vn -0.4472 0.8944 0.0000 +vn -0.2425 0.0000 -0.9701 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 0.4472 0.8944 +vn 0.6325 0.4472 0.6325 +vn -0.0000 -0.2425 0.9701 +vn 0.6860 -0.2425 0.6860 +vn -0.6325 0.4472 -0.6325 +vn -0.8944 0.4472 0.0000 +vn 0.0000 -0.2425 -0.9701 +vn -0.6860 -0.2425 -0.6860 +vn 0.8944 0.4472 0.0000 +vn -0.9701 -0.2425 0.0000 +vn -0.6325 0.4472 0.6325 +vn 0.9701 -0.2425 0.0000 +vn 0.6325 0.4472 -0.6325 +vn 0.6860 -0.2425 -0.6860 +vn -0.6860 -0.2425 0.6860 +vn 0.0000 0.4472 -0.8944 +s off +f 22/45/13 24/46/13 19/47/13 +f 25/48/14 28/49/14 27/50/14 +f 27/51/15 29/52/15 30/53/15 +f 26/54/16 32/55/16 31/56/16 +f 28/49/17 31/56/17 29/52/17 +f 25/57/18 30/53/18 32/58/18 +f 40/59/19 34/60/19 38/61/19 +f 38/62/20 35/63/20 37/64/20 +f 39/65/21 33/66/21 40/67/21 +f 34/60/14 36/68/14 35/63/14 +f 42/69/15 40/67/15 41/70/15 +f 43/71/16 37/64/16 44/72/16 +f 41/73/17 38/61/17 43/74/17 +f 44/75/18 39/76/18 42/77/18 +f 37/78/22 36/68/22 39/76/22 +f 47/79/15 46/80/15 45/81/15 +f 50/82/17 45/83/17 46/84/17 +f 51/85/17 48/86/17 47/79/17 +f 54/87/15 49/88/15 50/82/15 +f 56/89/18 53/90/18 54/87/18 +f 51/85/16 56/89/16 52/91/16 +f 45/92/14 53/90/14 55/93/14 +f 45/92/14 51/94/14 47/95/14 +f 46/96/13 54/87/13 50/97/13 +f 46/96/13 52/98/13 56/89/13 +f 63/99/17 60/100/17 59/101/17 +f 62/102/18 57/103/18 58/104/18 +f 64/105/16 58/104/16 60/100/16 +f 61/106/15 59/107/15 57/103/15 +f 67/108/13 66/109/13 65/110/13 +f 71/111/14 69/112/14 70/113/14 +f 74/114/15 76/115/15 73/116/15 +f 67/108/23 73/117/23 68/118/23 +f 75/119/24 67/120/24 69/121/24 +f 76/115/25 69/112/25 72/122/25 +f 68/123/26 76/115/26 72/124/26 +f 78/125/16 80/126/16 77/127/16 +f 66/109/27 77/128/27 65/110/27 +f 79/129/28 66/130/28 71/131/28 +f 80/126/29 71/111/29 70/113/29 +f 65/132/30 80/126/30 70/133/30 +f 82/134/17 84/135/17 81/136/17 +f 68/118/31 81/137/31 66/109/31 +f 83/138/32 68/139/32 72/140/32 +f 84/135/33 72/122/33 71/111/33 +f 66/141/34 84/135/34 71/142/34 +f 86/143/18 88/144/18 85/145/18 +f 65/110/35 85/146/35 67/108/35 +f 87/147/36 65/148/36 70/149/36 +f 88/144/37 70/113/37 69/112/37 +f 67/150/38 88/144/38 69/151/38 +f 123/152/14 122/153/14 127/154/14 +f 130/155/16 132/156/16 129/157/16 +f 132/156/39 133/158/39 129/157/39 +f 130/155/40 135/159/40 131/160/40 +f 142/161/13 144/162/13 139/163/13 +f 179/164/14 178/165/14 183/166/14 +f 186/167/15 188/168/15 185/169/15 +f 188/168/41 189/170/41 185/169/41 +f 186/167/42 191/171/42 187/172/42 +f 198/173/13 200/174/13 195/175/13 +f 235/176/14 234/177/14 239/178/14 +f 242/179/17 244/180/17 241/181/17 +f 244/180/40 245/182/40 241/181/40 +f 242/179/41 247/183/41 243/184/41 +f 254/185/13 256/186/13 251/187/13 +f 291/188/14 290/189/14 295/190/14 +f 298/191/18 300/192/18 297/193/18 +f 300/192/42 301/194/42 297/193/42 +f 298/191/39 303/195/39 299/196/39 +f 307/197/16 306/198/16 305/199/16 +f 310/200/18 305/201/18 306/202/18 +f 311/203/18 308/204/18 307/197/18 +f 314/205/16 309/206/16 310/200/16 +f 316/207/17 313/208/17 314/205/17 +f 311/203/15 316/207/15 312/209/15 +f 305/210/14 313/208/14 315/211/14 +f 305/210/14 311/212/14 307/213/14 +f 306/214/13 314/205/13 310/215/13 +f 306/214/13 312/216/13 316/207/13 +f 323/217/18 320/218/18 319/219/18 +f 322/220/17 317/221/17 318/222/17 +f 324/223/15 318/222/15 320/218/15 +f 321/224/16 319/225/16 317/221/16 +f 327/226/18 326/227/18 325/228/18 +f 330/229/15 325/230/15 326/231/15 +f 331/232/15 328/233/15 327/226/15 +f 334/234/18 329/235/18 330/229/18 +f 336/236/16 333/237/16 334/234/16 +f 331/232/17 336/236/17 332/238/17 +f 325/239/14 333/237/14 335/240/14 +f 325/239/14 331/241/14 327/242/14 +f 326/243/13 334/234/13 330/244/13 +f 326/243/13 332/245/13 336/236/13 +f 343/246/15 340/247/15 339/248/15 +f 342/249/16 337/250/16 338/251/16 +f 344/252/17 338/251/17 340/247/17 +f 341/253/18 339/254/18 337/250/18 +f 347/255/17 346/256/17 345/257/17 +f 350/258/16 345/259/16 346/260/16 +f 351/261/16 348/262/16 347/255/16 +f 354/263/17 349/264/17 350/258/17 +f 356/265/15 353/266/15 354/263/15 +f 351/261/18 356/265/18 352/267/18 +f 345/268/14 353/266/14 355/269/14 +f 345/268/14 351/270/14 347/271/14 +f 346/272/13 354/263/13 350/273/13 +f 346/272/13 352/274/13 356/265/13 +f 363/275/16 360/276/16 359/277/16 +f 362/278/15 357/279/15 358/280/15 +f 364/281/18 358/280/18 360/276/18 +f 361/282/17 359/283/17 357/279/17 +f 24/46/13 23/284/13 19/47/13 +f 23/284/13 17/285/13 19/47/13 +f 17/285/13 18/286/13 19/47/13 +f 19/47/13 20/287/13 21/288/13 +f 21/288/13 22/45/13 19/47/13 +f 25/48/14 26/54/14 28/49/14 +f 27/51/15 28/49/15 29/52/15 +f 26/54/16 25/289/16 32/55/16 +f 28/49/17 26/54/17 31/56/17 +f 25/57/18 27/51/18 30/53/18 +f 40/59/19 33/66/19 34/60/19 +f 38/62/20 34/60/20 35/63/20 +f 39/65/21 36/68/21 33/66/21 +f 34/60/14 33/66/14 36/68/14 +f 42/69/15 39/65/15 40/67/15 +f 43/71/16 38/62/16 37/64/16 +f 41/73/17 40/59/17 38/61/17 +f 44/75/18 37/78/18 39/76/18 +f 37/78/22 35/63/22 36/68/22 +f 47/79/15 48/86/15 46/80/15 +f 50/82/17 49/88/17 45/83/17 +f 51/85/17 52/91/17 48/86/17 +f 54/87/15 53/90/15 49/88/15 +f 56/89/18 55/93/18 53/90/18 +f 51/85/16 55/93/16 56/89/16 +f 45/92/14 49/290/14 53/90/14 +f 45/92/14 55/93/14 51/94/14 +f 46/96/13 56/89/13 54/87/13 +f 46/96/13 48/291/13 52/98/13 +f 63/99/17 64/105/17 60/100/17 +f 62/102/18 61/106/18 57/103/18 +f 64/105/16 62/102/16 58/104/16 +f 61/106/15 63/292/15 59/107/15 +f 67/108/13 68/118/13 66/109/13 +f 71/111/14 72/122/14 69/112/14 +f 74/114/15 75/119/15 76/115/15 +f 67/108/23 74/293/23 73/117/23 +f 75/119/24 74/114/24 67/120/24 +f 76/115/25 75/119/25 69/112/25 +f 68/123/26 73/116/26 76/115/26 +f 78/125/16 79/129/16 80/126/16 +f 66/109/27 78/294/27 77/128/27 +f 79/129/28 78/125/28 66/130/28 +f 80/126/29 79/129/29 71/111/29 +f 65/132/30 77/127/30 80/126/30 +f 82/134/17 83/138/17 84/135/17 +f 68/118/31 82/295/31 81/137/31 +f 83/138/32 82/134/32 68/139/32 +f 84/135/33 83/138/33 72/122/33 +f 66/141/34 81/136/34 84/135/34 +f 86/143/18 87/147/18 88/144/18 +f 65/110/35 86/296/35 85/146/35 +f 87/147/36 86/143/36 65/148/36 +f 88/144/37 87/147/37 70/113/37 +f 67/150/38 85/145/38 88/144/38 +f 123/152/14 121/297/14 122/153/14 +f 122/153/14 128/298/14 127/154/14 +f 127/154/14 126/299/14 125/300/14 +f 125/300/14 124/301/14 127/154/14 +f 124/301/14 123/152/14 127/154/14 +f 130/155/16 131/160/16 132/156/16 +f 132/156/39 136/302/39 133/158/39 +f 130/155/40 134/303/40 135/159/40 +f 144/162/13 143/304/13 139/163/13 +f 143/304/13 137/305/13 139/163/13 +f 137/305/13 138/306/13 139/163/13 +f 139/163/13 140/307/13 141/308/13 +f 141/308/13 142/161/13 139/163/13 +f 179/164/14 177/309/14 178/165/14 +f 178/165/14 184/310/14 183/166/14 +f 183/166/14 182/311/14 181/312/14 +f 181/312/14 180/313/14 183/166/14 +f 180/313/14 179/164/14 183/166/14 +f 186/167/15 187/172/15 188/168/15 +f 188/168/41 192/314/41 189/170/41 +f 186/167/42 190/315/42 191/171/42 +f 200/174/13 199/316/13 195/175/13 +f 199/316/13 193/317/13 195/175/13 +f 193/317/13 194/318/13 195/175/13 +f 195/175/13 196/319/13 197/320/13 +f 197/320/13 198/173/13 195/175/13 +f 235/176/14 233/321/14 234/177/14 +f 234/177/14 240/322/14 239/178/14 +f 239/178/14 238/323/14 237/324/14 +f 237/324/14 236/325/14 239/178/14 +f 236/325/14 235/176/14 239/178/14 +f 242/179/17 243/184/17 244/180/17 +f 244/180/40 248/326/40 245/182/40 +f 242/179/41 246/327/41 247/183/41 +f 256/186/13 255/328/13 251/187/13 +f 255/328/13 249/329/13 251/187/13 +f 249/329/13 250/330/13 251/187/13 +f 251/187/13 252/331/13 253/332/13 +f 253/332/13 254/185/13 251/187/13 +f 291/188/14 289/333/14 290/189/14 +f 290/189/14 296/334/14 295/190/14 +f 295/190/14 294/335/14 293/336/14 +f 293/336/14 292/337/14 295/190/14 +f 292/337/14 291/188/14 295/190/14 +f 298/191/18 299/196/18 300/192/18 +f 300/192/42 304/338/42 301/194/42 +f 298/191/39 302/339/39 303/195/39 +f 307/197/16 308/204/16 306/198/16 +f 310/200/18 309/206/18 305/201/18 +f 311/203/18 312/209/18 308/204/18 +f 314/205/16 313/208/16 309/206/16 +f 316/207/17 315/211/17 313/208/17 +f 311/203/15 315/211/15 316/207/15 +f 305/210/14 309/340/14 313/208/14 +f 305/210/14 315/211/14 311/212/14 +f 306/214/13 316/207/13 314/205/13 +f 306/214/13 308/341/13 312/216/13 +f 323/217/18 324/223/18 320/218/18 +f 322/220/17 321/224/17 317/221/17 +f 324/223/15 322/220/15 318/222/15 +f 321/224/16 323/342/16 319/225/16 +f 327/226/18 328/233/18 326/227/18 +f 330/229/15 329/235/15 325/230/15 +f 331/232/15 332/238/15 328/233/15 +f 334/234/18 333/237/18 329/235/18 +f 336/236/16 335/240/16 333/237/16 +f 331/232/17 335/240/17 336/236/17 +f 325/239/14 329/343/14 333/237/14 +f 325/239/14 335/240/14 331/241/14 +f 326/243/13 336/236/13 334/234/13 +f 326/243/13 328/344/13 332/245/13 +f 343/246/15 344/252/15 340/247/15 +f 342/249/16 341/253/16 337/250/16 +f 344/252/17 342/249/17 338/251/17 +f 341/253/18 343/345/18 339/254/18 +f 347/255/17 348/262/17 346/256/17 +f 350/258/16 349/264/16 345/259/16 +f 351/261/16 352/267/16 348/262/16 +f 354/263/17 353/266/17 349/264/17 +f 356/265/15 355/269/15 353/266/15 +f 351/261/18 355/269/18 356/265/18 +f 345/268/14 349/346/14 353/266/14 +f 345/268/14 355/269/14 351/270/14 +f 346/272/13 356/265/13 354/263/13 +f 346/272/13 348/347/13 352/274/13 +f 363/275/16 364/281/16 360/276/16 +f 362/278/15 361/282/15 357/279/15 +f 364/281/18 362/278/18 358/280/18 +f 361/282/17 363/348/17 359/283/17 +s 1 +f 108/349/39 18/350/16 107/351/16 +f 111/352/15 21/353/42 110/354/42 +f 89/355/40 23/356/17 90/357/17 +f 109/358/18 19/359/39 108/360/39 +f 112/361/41 22/362/15 111/363/15 +f 107/364/16 17/365/40 89/366/40 +f 90/367/17 24/368/41 112/369/41 +f 110/370/42 20/371/18 109/372/18 +f 104/373/43 118/374/44 119/375/43 +f 103/376/45 110/354/46 101/377/46 +f 92/378/18 93/379/42 91/380/18 +f 94/381/47 114/382/48 113/383/47 +f 95/384/49 89/366/50 93/379/50 +f 94/381/42 95/384/15 93/379/42 +f 102/385/44 117/386/51 118/387/44 +f 91/380/52 89/355/50 90/357/52 +f 96/388/15 97/389/41 95/390/15 +f 106/391/53 114/392/48 92/378/48 +f 101/377/46 109/372/54 99/393/54 +f 98/394/41 99/393/17 97/389/41 +f 98/394/55 117/395/51 100/396/51 +f 99/393/54 108/360/56 97/389/56 +f 100/396/17 101/377/40 99/393/17 +f 120/397/41 122/398/17 114/392/17 +f 105/399/57 111/363/45 103/376/45 +f 102/385/40 103/376/16 101/377/40 +f 106/391/53 119/400/43 120/401/53 +f 104/373/16 105/399/39 103/376/16 +f 96/402/58 113/403/47 115/404/58 +f 91/380/52 112/369/57 105/399/57 +f 106/391/39 91/380/18 105/399/39 +f 95/390/49 108/349/56 107/351/49 +f 96/388/58 116/405/55 98/394/55 +f 118/374/42 127/406/15 119/375/15 +f 116/407/39 125/408/18 117/395/18 +f 113/403/40 123/409/16 115/404/16 +f 119/400/15 128/410/41 120/401/41 +f 117/386/18 126/411/42 118/387/42 +f 115/412/16 124/413/39 116/405/39 +f 114/382/17 121/414/40 113/383/40 +f 164/415/41 138/416/15 163/417/15 +f 167/418/16 141/419/40 166/420/40 +f 145/421/42 143/422/18 146/423/18 +f 165/424/17 139/425/41 164/426/41 +f 168/427/39 142/428/16 167/429/16 +f 163/430/15 137/431/42 145/432/42 +f 146/433/18 144/434/39 168/435/39 +f 166/436/40 140/437/17 165/438/17 +f 158/439/47 175/440/58 160/441/58 +f 157/442/50 167/418/49 166/420/50 +f 148/443/17 149/444/40 147/445/17 +f 150/446/44 170/447/51 169/448/44 +f 151/449/45 145/432/46 149/444/46 +f 150/446/40 151/449/16 149/444/40 +f 158/439/47 173/450/48 174/451/47 +f 147/445/54 145/421/46 146/423/54 +f 152/452/16 153/453/39 151/454/16 +f 162/455/55 170/456/51 148/443/51 +f 157/442/50 165/438/52 155/457/52 +f 154/458/39 155/457/18 153/453/39 +f 154/458/53 173/459/48 156/460/48 +f 155/457/52 164/426/57 153/453/57 +f 156/460/18 157/442/42 155/457/18 +f 176/461/39 178/462/18 170/456/18 +f 159/463/49 168/427/56 167/429/49 +f 158/439/42 159/463/15 157/442/42 +f 162/455/55 175/464/58 176/465/55 +f 160/441/15 161/466/41 159/463/15 +f 152/467/43 169/468/44 171/469/43 +f 147/445/54 168/435/56 161/466/56 +f 162/455/41 147/445/17 161/466/41 +f 153/453/57 163/417/45 151/454/45 +f 154/458/53 171/470/43 172/471/53 +f 174/472/40 183/473/16 175/440/16 +f 172/474/41 181/475/17 173/459/17 +f 169/468/42 179/476/15 171/469/15 +f 175/464/16 184/477/39 176/465/39 +f 173/450/17 182/478/40 174/451/40 +f 171/470/15 180/479/41 172/471/41 +f 170/447/18 177/480/42 169/448/42 +f 220/481/40 194/482/17 219/483/17 +f 223/484/18 197/485/39 222/486/39 +f 201/487/41 199/488/15 202/489/15 +f 221/490/16 195/491/40 220/492/40 +f 224/493/42 198/494/18 223/495/18 +f 219/496/17 193/497/41 201/498/41 +f 202/499/15 200/500/42 224/501/42 +f 222/502/39 196/503/16 221/504/16 +f 216/505/51 230/506/55 231/507/51 +f 215/508/54 222/486/56 213/509/56 +f 204/510/16 205/511/39 203/512/16 +f 206/513/53 226/514/43 225/515/53 +f 205/511/57 219/496/52 201/498/57 +f 206/513/39 207/516/18 205/511/39 +f 212/517/58 230/518/55 214/519/55 +f 205/511/57 202/489/45 203/512/45 +f 208/520/18 209/521/42 207/522/18 +f 218/523/44 226/524/43 204/510/43 +f 213/509/56 221/504/49 211/525/49 +f 210/526/42 211/525/15 209/521/42 +f 210/526/47 229/527/58 212/517/58 +f 209/521/50 221/490/49 220/492/50 +f 212/517/15 213/509/41 211/525/15 +f 232/528/42 234/529/15 226/524/15 +f 215/508/54 224/493/46 223/495/54 +f 214/519/41 215/508/17 213/509/41 +f 218/523/44 231/530/51 232/531/44 +f 216/505/17 217/532/40 215/508/17 +f 208/533/48 225/534/53 227/535/48 +f 203/512/45 224/501/46 217/532/46 +f 218/523/40 203/512/16 217/532/40 +f 209/521/50 219/483/52 207/522/52 +f 210/526/47 227/536/48 228/537/47 +f 230/506/39 239/538/18 231/507/18 +f 228/539/40 237/540/16 229/527/16 +f 225/534/41 235/541/17 227/535/17 +f 231/530/18 240/542/42 232/531/42 +f 229/543/16 238/544/39 230/518/39 +f 227/536/17 236/545/40 228/537/40 +f 226/514/15 233/546/41 225/515/41 +f 276/547/42 250/548/18 275/549/18 +f 279/550/17 253/551/41 278/552/41 +f 257/553/39 255/554/16 258/555/16 +f 277/556/15 251/557/42 276/558/42 +f 280/559/40 254/560/17 279/561/17 +f 275/562/18 249/563/39 257/564/39 +f 258/565/16 256/566/40 280/567/40 +f 278/568/41 252/569/15 277/570/15 +f 272/571/48 286/572/53 287/573/48 +f 271/574/52 278/552/57 269/575/57 +f 260/576/15 261/577/41 259/578/15 +f 262/579/55 282/580/58 281/581/55 +f 263/582/54 257/564/56 261/577/56 +f 262/579/41 263/582/17 261/577/41 +f 270/583/53 285/584/43 286/585/53 +f 261/577/56 258/555/49 259/578/49 +f 264/586/17 265/587/40 263/588/17 +f 274/589/47 282/590/58 260/576/58 +f 269/575/57 277/570/45 267/591/45 +f 266/592/40 267/591/16 265/587/40 +f 266/592/44 285/593/43 268/594/43 +f 267/591/45 276/558/46 265/587/46 +f 268/594/16 269/575/39 267/591/16 +f 288/595/40 290/596/16 282/590/16 +f 273/597/50 279/561/52 271/574/52 +f 270/583/39 271/574/18 269/575/39 +f 274/589/47 287/598/48 288/599/47 +f 272/571/18 273/597/42 271/574/18 +f 264/600/51 281/601/55 283/602/51 +f 259/578/49 280/567/50 273/597/50 +f 274/589/42 259/578/15 273/597/42 +f 265/587/46 275/549/54 263/588/54 +f 266/592/44 283/603/51 284/604/44 +f 286/572/41 295/605/17 287/573/17 +f 284/606/42 293/607/15 285/593/15 +f 281/601/39 291/608/18 283/602/18 +f 287/598/17 296/609/40 288/599/40 +f 285/584/15 294/610/41 286/585/41 +f 283/603/18 292/611/42 284/604/42 +f 282/580/16 289/612/39 281/581/39 +f 108/349/39 19/613/39 18/350/16 +f 111/352/15 22/614/15 21/353/42 +f 89/355/40 17/615/40 23/356/17 +f 109/358/18 20/616/18 19/359/39 +f 112/361/41 24/617/41 22/362/15 +f 107/364/16 18/618/16 17/365/40 +f 90/367/17 23/619/17 24/368/41 +f 110/370/42 21/620/42 20/371/18 +f 104/373/43 102/385/44 118/374/44 +f 103/376/45 111/352/45 110/354/46 +f 92/378/18 94/381/42 93/379/42 +f 94/381/47 92/378/48 114/382/48 +f 95/384/49 107/364/49 89/366/50 +f 94/381/42 96/402/15 95/384/15 +f 102/385/44 100/396/51 117/386/51 +f 91/380/52 93/379/50 89/355/50 +f 96/388/15 98/394/41 97/389/41 +f 106/391/53 120/397/53 114/392/48 +f 101/377/46 110/370/46 109/372/54 +f 98/394/41 100/396/17 99/393/17 +f 98/394/55 116/407/55 117/395/51 +f 99/393/54 109/358/54 108/360/56 +f 100/396/17 102/385/40 101/377/40 +f 120/397/41 128/621/41 122/398/17 +f 105/399/57 112/361/57 111/363/45 +f 102/385/40 104/373/16 103/376/16 +f 106/391/53 104/373/43 119/400/43 +f 104/373/16 106/391/39 105/399/39 +f 96/402/58 94/381/47 113/403/47 +f 91/380/52 90/367/52 112/369/57 +f 106/391/39 92/378/18 91/380/18 +f 95/390/49 97/389/56 108/349/56 +f 96/388/58 115/412/58 116/405/55 +f 118/374/42 126/622/42 127/406/15 +f 116/407/39 124/623/39 125/408/18 +f 113/403/40 121/624/40 123/409/16 +f 119/400/15 127/625/15 128/410/41 +f 117/386/18 125/626/18 126/411/42 +f 115/412/16 123/627/16 124/413/39 +f 114/382/17 122/628/17 121/414/40 +f 164/415/41 139/629/41 138/416/15 +f 167/418/16 142/630/16 141/419/40 +f 145/421/42 137/631/42 143/422/18 +f 165/424/17 140/632/17 139/425/41 +f 168/427/39 144/633/39 142/428/16 +f 163/430/15 138/634/15 137/431/42 +f 146/433/18 143/635/18 144/434/39 +f 166/436/40 141/636/40 140/437/17 +f 158/439/47 174/472/47 175/440/58 +f 157/442/50 159/463/49 167/418/49 +f 148/443/17 150/446/40 149/444/40 +f 150/446/44 148/443/51 170/447/51 +f 151/449/45 163/430/45 145/432/46 +f 150/446/40 152/467/16 151/449/16 +f 158/439/47 156/460/48 173/450/48 +f 147/445/54 149/444/46 145/421/46 +f 152/452/16 154/458/39 153/453/39 +f 162/455/55 176/461/55 170/456/51 +f 157/442/50 166/436/50 165/438/52 +f 154/458/39 156/460/18 155/457/18 +f 154/458/53 172/474/53 173/459/48 +f 155/457/52 165/424/52 164/426/57 +f 156/460/18 158/439/42 157/442/42 +f 176/461/39 184/637/39 178/462/18 +f 159/463/49 161/466/56 168/427/56 +f 158/439/42 160/441/15 159/463/15 +f 162/455/55 160/441/58 175/464/58 +f 160/441/15 162/455/41 161/466/41 +f 152/467/43 150/446/44 169/468/44 +f 147/445/54 146/433/54 168/435/56 +f 162/455/41 148/443/17 147/445/17 +f 153/453/57 164/415/57 163/417/45 +f 154/458/53 152/452/43 171/470/43 +f 174/472/40 182/638/40 183/473/16 +f 172/474/41 180/639/41 181/475/17 +f 169/468/42 177/640/42 179/476/15 +f 175/464/16 183/641/16 184/477/39 +f 173/450/17 181/642/17 182/478/40 +f 171/470/15 179/643/15 180/479/41 +f 170/447/18 178/644/18 177/480/42 +f 220/481/40 195/645/40 194/482/17 +f 223/484/18 198/646/18 197/485/39 +f 201/487/41 193/647/41 199/488/15 +f 221/490/16 196/648/16 195/491/40 +f 224/493/42 200/649/42 198/494/18 +f 219/496/17 194/650/17 193/497/41 +f 202/499/15 199/651/15 200/500/42 +f 222/502/39 197/652/39 196/503/16 +f 216/505/51 214/519/55 230/506/55 +f 215/508/54 223/484/54 222/486/56 +f 204/510/16 206/513/39 205/511/39 +f 206/513/53 204/510/43 226/514/43 +f 205/511/57 207/516/52 219/496/52 +f 206/513/39 208/533/18 207/516/18 +f 212/517/58 229/543/58 230/518/55 +f 205/511/57 201/487/57 202/489/45 +f 208/520/18 210/526/42 209/521/42 +f 218/523/44 232/528/44 226/524/43 +f 213/509/56 222/502/56 221/504/49 +f 210/526/42 212/517/15 211/525/15 +f 210/526/47 228/539/47 229/527/58 +f 209/521/50 211/525/49 221/490/49 +f 212/517/15 214/519/41 213/509/41 +f 232/528/42 240/653/42 234/529/15 +f 215/508/54 217/532/46 224/493/46 +f 214/519/41 216/505/17 215/508/17 +f 218/523/44 216/505/51 231/530/51 +f 216/505/17 218/523/40 217/532/40 +f 208/533/48 206/513/53 225/534/53 +f 203/512/45 202/499/45 224/501/46 +f 218/523/40 204/510/16 203/512/16 +f 209/521/50 220/481/50 219/483/52 +f 210/526/47 208/520/48 227/536/48 +f 230/506/39 238/654/39 239/538/18 +f 228/539/40 236/655/40 237/540/16 +f 225/534/41 233/656/41 235/541/17 +f 231/530/18 239/657/18 240/542/42 +f 229/543/16 237/658/16 238/544/39 +f 227/536/17 235/659/17 236/545/40 +f 226/514/15 234/660/15 233/546/41 +f 276/547/42 251/661/42 250/548/18 +f 279/550/17 254/662/17 253/551/41 +f 257/553/39 249/663/39 255/554/16 +f 277/556/15 252/664/15 251/557/42 +f 280/559/40 256/665/40 254/560/17 +f 275/562/18 250/666/18 249/563/39 +f 258/565/16 255/667/16 256/566/40 +f 278/568/41 253/668/41 252/569/15 +f 272/571/48 270/583/53 286/572/53 +f 271/574/52 279/550/52 278/552/57 +f 260/576/15 262/579/41 261/577/41 +f 262/579/55 260/576/58 282/580/58 +f 263/582/54 275/562/54 257/564/56 +f 262/579/41 264/600/17 263/582/17 +f 270/583/53 268/594/43 285/584/43 +f 261/577/56 257/553/56 258/555/49 +f 264/586/17 266/592/40 265/587/40 +f 274/589/47 288/595/47 282/590/58 +f 269/575/57 278/568/57 277/570/45 +f 266/592/40 268/594/16 267/591/16 +f 266/592/44 284/606/44 285/593/43 +f 267/591/45 277/556/45 276/558/46 +f 268/594/16 270/583/39 269/575/39 +f 288/595/40 296/669/40 290/596/16 +f 273/597/50 280/559/50 279/561/52 +f 270/583/39 272/571/18 271/574/18 +f 274/589/47 272/571/48 287/598/48 +f 272/571/18 274/589/42 273/597/42 +f 264/600/51 262/579/55 281/601/55 +f 259/578/49 258/565/49 280/567/50 +f 274/589/42 260/576/15 259/578/15 +f 265/587/46 276/547/46 275/549/54 +f 266/592/44 264/586/51 283/603/51 +f 286/572/41 294/670/41 295/605/17 +f 284/606/42 292/671/42 293/607/15 +f 281/601/39 289/672/39 291/608/18 +f 287/598/17 295/673/17 296/609/40 +f 285/584/15 293/674/15 294/610/41 +f 283/603/18 291/675/18 292/611/42 +f 282/580/16 290/676/16 289/612/39 diff --git a/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj b/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj new file mode 100644 index 000000000..ac6d44aa7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj @@ -0,0 +1,4253 @@ +# Blender v2.79 (sub 0) OBJ File: 'exposure_chamber.blend' +# www.blender.org +o Magnets +v 1.961571 0.500000 0.292636 +v 1.961571 0.500000 -0.292635 +v 1.225981 0.500000 0.243863 +v 1.225982 0.500000 -0.243863 +v 1.961571 1.250000 0.292636 +v 1.225981 1.250000 0.243863 +v 1.961571 1.250000 -0.292635 +v 1.225982 1.250000 -0.243863 +v 1.225982 4.500000 -0.243863 +v 1.961571 4.500000 -0.292635 +v 1.225981 4.500000 0.243863 +v 1.961571 4.500000 0.292636 +v 1.225982 3.750000 -0.243863 +v 1.225981 3.750000 0.243863 +v 1.961571 3.750000 -0.292635 +v 1.961571 3.750000 0.292636 +v -1.961571 0.500000 -0.292636 +v -1.961571 0.500000 0.292636 +v -1.225981 0.500000 -0.243863 +v -1.225983 0.500000 0.243863 +v -1.961571 1.250000 -0.292636 +v -1.225981 1.250000 -0.243863 +v -1.961571 1.250000 0.292636 +v -1.225983 1.250000 0.243863 +v -1.225983 4.500000 0.243863 +v -1.961571 4.500000 0.292636 +v -1.225981 4.500000 -0.243863 +v -1.961571 4.500000 -0.292636 +v -1.225983 3.750000 0.243863 +v -1.225981 3.750000 -0.243863 +v -1.961571 3.750000 0.292636 +v -1.961571 3.750000 -0.292636 +v 0.292635 0.500000 -1.961571 +v -0.292636 0.500000 -1.961571 +v 0.243863 0.500000 -1.225981 +v -0.243863 0.500000 -1.225982 +v 0.292635 1.250000 -1.961571 +v 0.243863 1.250000 -1.225981 +v -0.292636 1.250000 -1.961571 +v -0.243863 1.250000 -1.225982 +v -0.243863 4.500000 -1.225982 +v -0.292636 4.500000 -1.961571 +v 0.243863 4.500000 -1.225981 +v 0.292635 4.500000 -1.961571 +v -0.243863 3.750000 -1.225982 +v 0.243863 3.750000 -1.225981 +v -0.292636 3.750000 -1.961571 +v 0.292635 3.750000 -1.961571 +v -0.292636 0.500000 1.961571 +v 0.292635 0.500000 1.961571 +v -0.243863 0.500000 1.225981 +v 0.243863 0.500000 1.225982 +v -0.292636 1.250000 1.961571 +v -0.243863 1.250000 1.225981 +v 0.292635 1.250000 1.961571 +v 0.243863 1.250000 1.225982 +v 0.243863 4.500000 1.225982 +v 0.292635 4.500000 1.961571 +v -0.243863 4.500000 1.225981 +v -0.292636 4.500000 1.961571 +v 0.243863 3.750000 1.225982 +v -0.243863 3.750000 1.225981 +v 0.292635 3.750000 1.961571 +v -0.292636 3.750000 1.961571 +v 1.593965 0.500000 -1.180115 +v 1.180116 0.500000 -1.593965 +v 1.039336 0.500000 -0.694462 +v 0.694463 0.500000 -1.039337 +v 1.593965 1.250000 -1.180115 +v 1.039336 1.250000 -0.694462 +v 1.180116 1.250000 -1.593965 +v 0.694463 1.250000 -1.039337 +v 0.694463 4.500000 -1.039337 +v 1.180116 4.500000 -1.593965 +v 1.039336 4.500000 -0.694462 +v 1.593965 4.500000 -1.180115 +v 0.694463 3.750000 -1.039337 +v 1.039336 3.750000 -0.694462 +v 1.180116 3.750000 -1.593965 +v 1.593965 3.750000 -1.180115 +v -1.593966 0.500000 1.180115 +v -1.180116 0.500000 1.593965 +v -1.039337 0.500000 0.694462 +v -0.694464 0.500000 1.039337 +v -1.593966 1.250000 1.180115 +v -1.039337 1.250000 0.694462 +v -1.180116 1.250000 1.593965 +v -0.694464 1.250000 1.039337 +v -0.694464 4.500000 1.039337 +v -1.180116 4.500000 1.593965 +v -1.039337 4.500000 0.694462 +v -1.593966 4.500000 1.180115 +v -0.694464 3.750000 1.039337 +v -1.039337 3.750000 0.694462 +v -1.180116 3.750000 1.593965 +v -1.593966 3.750000 1.180115 +v -1.180116 0.500000 -1.593965 +v -1.593966 0.500000 -1.180115 +v -0.694463 0.500000 -1.039337 +v -1.039337 0.500000 -0.694463 +v -1.180116 1.250000 -1.593965 +v -0.694463 1.250000 -1.039337 +v -1.593966 1.250000 -1.180115 +v -1.039337 1.250000 -0.694463 +v -1.039337 4.500000 -0.694463 +v -1.593966 4.500000 -1.180115 +v -0.694463 4.500000 -1.039337 +v -1.180116 4.500000 -1.593965 +v -1.039337 3.750000 -0.694463 +v -0.694463 3.750000 -1.039337 +v -1.593966 3.750000 -1.180115 +v -1.180116 3.750000 -1.593965 +v 1.180115 0.500000 1.593965 +v 1.593965 0.500000 1.180115 +v 0.694462 0.500000 1.039337 +v 1.039337 0.500000 0.694463 +v 1.180115 1.250000 1.593965 +v 0.694462 1.250000 1.039337 +v 1.593965 1.250000 1.180115 +v 1.039337 1.250000 0.694463 +v 1.039337 4.500000 0.694463 +v 1.593965 4.500000 1.180115 +v 0.694462 4.500000 1.039337 +v 1.180115 4.500000 1.593965 +v 1.039337 3.750000 0.694463 +v 0.694462 3.750000 1.039337 +v 1.593965 3.750000 1.180115 +v 1.180115 3.750000 1.593965 +v 1.021021 0.500000 -1.700268 +v 0.480301 0.500000 -1.924242 +v 0.694463 0.500000 -1.039336 +v 0.243863 0.500000 -1.225982 +v 1.021021 1.250000 -1.700268 +v 0.694463 1.250000 -1.039336 +v 0.480301 1.250000 -1.924242 +v 0.243863 1.250000 -1.225982 +v 0.243863 4.500000 -1.225982 +v 0.480301 4.500000 -1.924242 +v 0.694463 4.500000 -1.039336 +v 1.021021 4.500000 -1.700268 +v 0.243863 3.750000 -1.225982 +v 0.694463 3.750000 -1.039336 +v 0.480301 3.750000 -1.924242 +v 1.021021 3.750000 -1.700268 +v -1.021021 0.500000 1.700269 +v -0.480301 0.500000 1.924242 +v -0.694463 0.500000 1.039336 +v -0.243863 0.500000 1.225982 +v -1.021021 1.250000 1.700269 +v -0.694463 1.250000 1.039336 +v -0.480301 1.250000 1.924242 +v -0.243863 1.250000 1.225982 +v -0.243863 4.500000 1.225982 +v -0.480301 4.500000 1.924242 +v -0.694463 4.500000 1.039336 +v -1.021021 4.500000 1.700269 +v -0.243863 3.750000 1.225982 +v -0.694463 3.750000 1.039336 +v -0.480301 3.750000 1.924242 +v -1.021021 3.750000 1.700269 +v -1.700269 0.500000 -1.021021 +v -1.924242 0.500000 -0.480300 +v -1.039337 0.500000 -0.694463 +v -1.225983 0.500000 -0.243863 +v -1.700269 1.250000 -1.021021 +v -1.039337 1.250000 -0.694463 +v -1.924242 1.250000 -0.480300 +v -1.225983 1.250000 -0.243863 +v -1.225983 4.500000 -0.243863 +v -1.924242 4.500000 -0.480300 +v -1.039337 4.500000 -0.694463 +v -1.700269 4.500000 -1.021021 +v -1.225983 3.750000 -0.243863 +v -1.039337 3.750000 -0.694463 +v -1.924242 3.750000 -0.480300 +v -1.700269 3.750000 -1.021021 +v 1.700268 0.500000 1.021021 +v 1.924242 0.500000 0.480300 +v 1.039336 0.500000 0.694463 +v 1.225982 0.500000 0.243863 +v 1.700268 1.250000 1.021021 +v 1.039336 1.250000 0.694463 +v 1.924242 1.250000 0.480300 +v 1.225982 1.250000 0.243863 +v 1.225982 4.500000 0.243863 +v 1.924242 4.500000 0.480300 +v 1.039336 4.500000 0.694463 +v 1.700268 4.500000 1.021021 +v 1.225982 3.750000 0.243863 +v 1.039336 3.750000 0.694463 +v 1.924242 3.750000 0.480300 +v 1.700268 3.750000 1.021021 +v -0.480301 0.500000 -1.924242 +v -1.021021 0.500000 -1.700269 +v -0.243863 0.500000 -1.225981 +v -0.694464 0.500000 -1.039337 +v -0.480301 1.250000 -1.924242 +v -0.243863 1.250000 -1.225981 +v -1.021021 1.250000 -1.700269 +v -0.694464 1.250000 -1.039337 +v -0.694464 4.500000 -1.039337 +v -1.021021 4.500000 -1.700269 +v -0.243863 4.500000 -1.225981 +v -0.480301 4.500000 -1.924242 +v -0.694464 3.750000 -1.039337 +v -0.243863 3.750000 -1.225981 +v -1.021021 3.750000 -1.700269 +v -0.480301 3.750000 -1.924242 +v 0.480300 0.500000 1.924242 +v 1.021021 0.500000 1.700268 +v 0.243862 0.500000 1.225981 +v 0.694463 0.500000 1.039337 +v 0.480300 1.250000 1.924242 +v 0.243862 1.250000 1.225981 +v 1.021021 1.250000 1.700268 +v 0.694463 1.250000 1.039337 +v 0.694463 4.500000 1.039337 +v 1.021021 4.500000 1.700268 +v 0.243862 4.500000 1.225981 +v 0.480300 4.500000 1.924242 +v 0.694463 3.750000 1.039337 +v 0.243862 3.750000 1.225981 +v 1.021021 3.750000 1.700268 +v 0.480300 3.750000 1.924242 +v -1.924242 0.500000 0.480301 +v -1.700269 0.500000 1.021021 +v -1.225981 0.500000 0.243863 +v -1.039337 0.500000 0.694463 +v -1.924242 1.250000 0.480301 +v -1.225981 1.250000 0.243863 +v -1.700269 1.250000 1.021021 +v -1.039337 1.250000 0.694463 +v -1.039337 4.500000 0.694463 +v -1.700269 4.500000 1.021021 +v -1.225981 4.500000 0.243863 +v -1.924242 4.500000 0.480301 +v -1.039337 3.750000 0.694463 +v -1.225981 3.750000 0.243863 +v -1.700269 3.750000 1.021021 +v -1.924242 3.750000 0.480301 +v 1.924242 0.500000 -0.480301 +v 1.700268 0.500000 -1.021021 +v 1.225981 0.500000 -0.243863 +v 1.039337 0.500000 -0.694463 +v 1.924242 1.250000 -0.480301 +v 1.225981 1.250000 -0.243863 +v 1.700268 1.250000 -1.021021 +v 1.039337 1.250000 -0.694463 +v 1.039337 4.500000 -0.694463 +v 1.700268 4.500000 -1.021021 +v 1.225981 4.500000 -0.243863 +v 1.924242 4.500000 -0.480301 +v 1.039337 3.750000 -0.694463 +v 1.225981 3.750000 -0.243863 +v 1.700268 3.750000 -1.021021 +v 1.924242 3.750000 -0.480301 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vn 0.0000 1.0000 0.0000 +vn -0.0662 0.0000 0.9978 +vn -0.0662 0.0000 -0.9978 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0662 0.0000 -0.9978 +vn 0.0662 0.0000 0.9978 +vn -1.0000 0.0000 0.0000 +vn 0.9978 0.0000 0.0662 +vn -0.9978 0.0000 0.0662 +vn 0.0000 0.0000 -1.0000 +vn -0.9978 0.0000 -0.0662 +vn 0.9978 0.0000 -0.0662 +vn 0.0000 0.0000 1.0000 +vn 0.6588 0.0000 0.7523 +vn -0.7523 0.0000 -0.6588 +vn 0.7071 0.0000 -0.7071 +vn -0.6588 0.0000 -0.7523 +vn 0.7523 0.0000 0.6588 +vn -0.7071 0.0000 0.7071 +vn 0.7523 0.0000 -0.6588 +vn -0.6588 0.0000 0.7523 +vn -0.7071 0.0000 -0.7071 +vn -0.7523 0.0000 0.6588 +vn 0.6588 0.0000 -0.7523 +vn 0.7071 0.0000 0.7071 +vn 0.8965 0.0000 0.4430 +vn -0.9472 0.0000 -0.3207 +vn 0.3827 0.0000 -0.9239 +vn -0.8965 0.0000 -0.4430 +vn 0.9472 0.0000 0.3207 +vn -0.3827 0.0000 0.9239 +vn 0.4430 0.0000 -0.8965 +vn -0.3207 0.0000 0.9472 +vn -0.9239 0.0000 -0.3827 +vn -0.4430 0.0000 0.8965 +vn 0.3207 0.0000 -0.9472 +vn 0.9239 0.0000 0.3827 +vn 0.9472 0.0000 -0.3207 +vn -0.8965 0.0000 0.4430 +vn -0.3827 0.0000 -0.9239 +vn -0.9472 0.0000 0.3207 +vn 0.8965 0.0000 -0.4430 +vn 0.3827 0.0000 0.9239 +vn -0.3207 0.0000 -0.9472 +vn 0.4430 0.0000 0.8965 +vn -0.9239 0.0000 0.3827 +vn 0.3207 0.0000 0.9472 +vn -0.4430 0.0000 -0.8965 +vn 0.9239 0.0000 -0.3827 +s off +f 5/1/1 8/2/1 6/3/1 +f 1/4/2 6/5/2 3/6/2 +f 4/7/3 7/8/3 2/9/3 +f 2/9/4 5/1/4 1/4/4 +f 15/10/4 12/11/4 16/12/4 +f 13/13/3 10/14/3 15/10/3 +f 16/12/2 11/15/2 14/16/2 +f 16/12/5 13/17/5 15/10/5 +f 21/18/1 24/19/1 22/20/1 +f 17/21/6 22/22/6 19/23/6 +f 20/24/7 23/25/7 18/26/7 +f 18/26/8 21/18/8 17/21/8 +f 31/27/8 28/28/8 32/29/8 +f 29/30/7 26/31/7 31/27/7 +f 32/29/6 27/32/6 30/33/6 +f 32/29/5 29/34/5 31/27/5 +f 37/35/1 40/36/1 38/37/1 +f 33/38/9 38/39/9 35/40/9 +f 36/41/10 39/42/10 34/43/10 +f 34/43/11 37/35/11 33/38/11 +f 47/44/11 44/45/11 48/46/11 +f 45/47/10 42/48/10 47/44/10 +f 48/46/9 43/49/9 46/50/9 +f 48/46/5 45/51/5 47/44/5 +f 53/52/1 56/53/1 54/54/1 +f 49/55/12 54/56/12 51/57/12 +f 52/58/13 55/59/13 50/60/13 +f 50/60/14 53/52/14 49/55/14 +f 63/61/14 60/62/14 64/63/14 +f 61/64/13 58/65/13 63/61/13 +f 64/63/12 59/66/12 62/67/12 +f 64/63/5 61/68/5 63/61/5 +f 69/69/1 72/70/1 70/71/1 +f 65/72/15 70/73/15 67/74/15 +f 68/75/16 71/76/16 66/77/16 +f 66/77/17 69/69/17 65/72/17 +f 79/78/17 76/79/17 80/80/17 +f 77/81/16 74/82/16 79/78/16 +f 80/80/15 75/83/15 78/84/15 +f 80/80/5 77/85/5 79/78/5 +f 85/86/1 88/87/1 86/88/1 +f 81/89/18 86/90/18 83/91/18 +f 84/92/19 87/93/19 82/94/19 +f 82/94/20 85/86/20 81/89/20 +f 95/95/20 92/96/20 96/97/20 +f 93/98/19 90/99/19 95/95/19 +f 96/97/18 91/100/18 94/101/18 +f 96/97/5 93/102/5 95/95/5 +f 101/103/1 104/104/1 102/105/1 +f 97/106/21 102/107/21 99/108/21 +f 100/109/22 103/110/22 98/111/22 +f 98/111/23 101/103/23 97/106/23 +f 111/112/23 108/113/23 112/114/23 +f 109/115/22 106/116/22 111/112/22 +f 112/114/21 107/117/21 110/118/21 +f 112/114/5 109/119/5 111/112/5 +f 117/120/1 120/121/1 118/122/1 +f 113/123/24 118/124/24 115/125/24 +f 116/126/25 119/127/25 114/128/25 +f 114/128/26 117/120/26 113/123/26 +f 127/129/26 124/130/26 128/131/26 +f 125/132/25 122/133/25 127/129/25 +f 128/131/24 123/134/24 126/135/24 +f 128/131/5 125/136/5 127/129/5 +f 133/137/1 136/138/1 134/139/1 +f 129/140/27 134/141/27 131/142/27 +f 132/143/28 135/144/28 130/145/28 +f 130/145/29 133/137/29 129/140/29 +f 143/146/29 140/147/29 144/148/29 +f 141/149/28 138/150/28 143/146/28 +f 144/148/27 139/151/27 142/152/27 +f 144/148/5 141/153/5 143/146/5 +f 149/154/1 152/155/1 150/156/1 +f 145/157/30 150/158/30 147/159/30 +f 148/160/31 151/161/31 146/162/31 +f 146/162/32 149/154/32 145/157/32 +f 159/163/32 156/164/32 160/165/32 +f 157/166/31 154/167/31 159/163/31 +f 160/165/30 155/168/30 158/169/30 +f 160/165/5 157/170/5 159/163/5 +f 165/171/1 168/172/1 166/173/1 +f 161/174/33 166/175/33 163/176/33 +f 164/177/34 167/178/34 162/179/34 +f 162/179/35 165/171/35 161/174/35 +f 175/180/35 172/181/35 176/182/35 +f 173/183/34 170/184/34 175/180/34 +f 176/182/33 171/185/33 174/186/33 +f 176/182/5 173/187/5 175/180/5 +f 181/188/1 184/189/1 182/190/1 +f 177/191/36 182/192/36 179/193/36 +f 180/194/37 183/195/37 178/196/37 +f 178/196/38 181/188/38 177/191/38 +f 191/197/38 188/198/38 192/199/38 +f 189/200/37 186/201/37 191/197/37 +f 192/199/36 187/202/36 190/203/36 +f 192/199/5 189/204/5 191/197/5 +f 197/205/1 200/206/1 198/207/1 +f 193/208/39 198/209/39 195/210/39 +f 196/211/40 199/212/40 194/213/40 +f 194/213/41 197/205/41 193/208/41 +f 207/214/41 204/215/41 208/216/41 +f 205/217/40 202/218/40 207/214/40 +f 208/216/39 203/219/39 206/220/39 +f 208/216/5 205/221/5 207/214/5 +f 213/222/1 216/223/1 214/224/1 +f 209/225/42 214/226/42 211/227/42 +f 212/228/43 215/229/43 210/230/43 +f 210/230/44 213/222/44 209/225/44 +f 223/231/44 220/232/44 224/233/44 +f 221/234/43 218/235/43 223/231/43 +f 224/233/42 219/236/42 222/237/42 +f 224/233/5 221/238/5 223/231/5 +f 229/239/1 232/240/1 230/241/1 +f 225/242/45 230/243/45 227/244/45 +f 228/245/46 231/246/46 226/247/46 +f 226/247/47 229/239/47 225/242/47 +f 239/248/47 236/249/47 240/250/47 +f 237/251/46 234/252/46 239/248/46 +f 240/250/45 235/253/45 238/254/45 +f 240/250/5 237/255/5 239/248/5 +f 245/256/1 248/257/1 246/258/1 +f 241/259/48 246/260/48 243/261/48 +f 244/262/49 247/263/49 242/264/49 +f 242/264/50 245/256/50 241/259/50 +f 255/265/50 252/266/50 256/267/50 +f 253/268/49 250/269/49 255/265/49 +f 256/267/48 251/270/48 254/271/48 +f 256/267/5 253/272/5 255/265/5 +f 5/1/1 7/8/1 8/2/1 +f 1/4/2 5/1/2 6/5/2 +f 4/7/3 8/273/3 7/8/3 +f 2/9/4 7/8/4 5/1/4 +f 15/10/4 10/14/4 12/11/4 +f 13/13/3 9/274/3 10/14/3 +f 16/12/2 12/11/2 11/15/2 +f 16/12/5 14/275/5 13/17/5 +f 21/18/1 23/25/1 24/19/1 +f 17/21/6 21/18/6 22/22/6 +f 20/24/7 24/276/7 23/25/7 +f 18/26/8 23/25/8 21/18/8 +f 31/27/8 26/31/8 28/28/8 +f 29/30/7 25/277/7 26/31/7 +f 32/29/6 28/28/6 27/32/6 +f 32/29/5 30/278/5 29/34/5 +f 37/35/1 39/42/1 40/36/1 +f 33/38/9 37/35/9 38/39/9 +f 36/41/10 40/279/10 39/42/10 +f 34/43/11 39/42/11 37/35/11 +f 47/44/11 42/48/11 44/45/11 +f 45/47/10 41/280/10 42/48/10 +f 48/46/9 44/45/9 43/49/9 +f 48/46/5 46/281/5 45/51/5 +f 53/52/1 55/59/1 56/53/1 +f 49/55/12 53/52/12 54/56/12 +f 52/58/13 56/282/13 55/59/13 +f 50/60/14 55/59/14 53/52/14 +f 63/61/14 58/65/14 60/62/14 +f 61/64/13 57/283/13 58/65/13 +f 64/63/12 60/62/12 59/66/12 +f 64/63/5 62/284/5 61/68/5 +f 69/69/1 71/76/1 72/70/1 +f 65/72/15 69/69/15 70/73/15 +f 68/75/16 72/285/16 71/76/16 +f 66/77/17 71/76/17 69/69/17 +f 79/78/17 74/82/17 76/79/17 +f 77/81/16 73/286/16 74/82/16 +f 80/80/15 76/79/15 75/83/15 +f 80/80/5 78/287/5 77/85/5 +f 85/86/1 87/93/1 88/87/1 +f 81/89/18 85/86/18 86/90/18 +f 84/92/19 88/288/19 87/93/19 +f 82/94/20 87/93/20 85/86/20 +f 95/95/20 90/99/20 92/96/20 +f 93/98/19 89/289/19 90/99/19 +f 96/97/18 92/96/18 91/100/18 +f 96/97/5 94/290/5 93/102/5 +f 101/103/1 103/110/1 104/104/1 +f 97/106/21 101/103/21 102/107/21 +f 100/109/22 104/291/22 103/110/22 +f 98/111/23 103/110/23 101/103/23 +f 111/112/23 106/116/23 108/113/23 +f 109/115/22 105/292/22 106/116/22 +f 112/114/21 108/113/21 107/117/21 +f 112/114/5 110/293/5 109/119/5 +f 117/120/1 119/127/1 120/121/1 +f 113/123/24 117/120/24 118/124/24 +f 116/126/25 120/294/25 119/127/25 +f 114/128/26 119/127/26 117/120/26 +f 127/129/26 122/133/26 124/130/26 +f 125/132/25 121/295/25 122/133/25 +f 128/131/24 124/130/24 123/134/24 +f 128/131/5 126/296/5 125/136/5 +f 133/137/1 135/144/1 136/138/1 +f 129/140/27 133/137/27 134/141/27 +f 132/143/28 136/297/28 135/144/28 +f 130/145/29 135/144/29 133/137/29 +f 143/146/29 138/150/29 140/147/29 +f 141/149/28 137/298/28 138/150/28 +f 144/148/27 140/147/27 139/151/27 +f 144/148/5 142/299/5 141/153/5 +f 149/154/1 151/161/1 152/155/1 +f 145/157/30 149/154/30 150/158/30 +f 148/160/31 152/300/31 151/161/31 +f 146/162/32 151/161/32 149/154/32 +f 159/163/32 154/167/32 156/164/32 +f 157/166/31 153/301/31 154/167/31 +f 160/165/30 156/164/30 155/168/30 +f 160/165/5 158/302/5 157/170/5 +f 165/171/1 167/178/1 168/172/1 +f 161/174/33 165/171/33 166/175/33 +f 164/177/34 168/303/34 167/178/34 +f 162/179/35 167/178/35 165/171/35 +f 175/180/35 170/184/35 172/181/35 +f 173/183/34 169/304/34 170/184/34 +f 176/182/33 172/181/33 171/185/33 +f 176/182/5 174/305/5 173/187/5 +f 181/188/1 183/195/1 184/189/1 +f 177/191/36 181/188/36 182/192/36 +f 180/194/37 184/306/37 183/195/37 +f 178/196/38 183/195/38 181/188/38 +f 191/197/38 186/201/38 188/198/38 +f 189/200/37 185/307/37 186/201/37 +f 192/199/36 188/198/36 187/202/36 +f 192/199/5 190/308/5 189/204/5 +f 197/205/1 199/212/1 200/206/1 +f 193/208/39 197/205/39 198/209/39 +f 196/211/40 200/309/40 199/212/40 +f 194/213/41 199/212/41 197/205/41 +f 207/214/41 202/218/41 204/215/41 +f 205/217/40 201/310/40 202/218/40 +f 208/216/39 204/215/39 203/219/39 +f 208/216/5 206/311/5 205/221/5 +f 213/222/1 215/229/1 216/223/1 +f 209/225/42 213/222/42 214/226/42 +f 212/228/43 216/312/43 215/229/43 +f 210/230/44 215/229/44 213/222/44 +f 223/231/44 218/235/44 220/232/44 +f 221/234/43 217/313/43 218/235/43 +f 224/233/42 220/232/42 219/236/42 +f 224/233/5 222/314/5 221/238/5 +f 229/239/1 231/246/1 232/240/1 +f 225/242/45 229/239/45 230/243/45 +f 228/245/46 232/315/46 231/246/46 +f 226/247/47 231/246/47 229/239/47 +f 239/248/47 234/252/47 236/249/47 +f 237/251/46 233/316/46 234/252/46 +f 240/250/45 236/249/45 235/253/45 +f 240/250/5 238/317/5 237/255/5 +f 245/256/1 247/263/1 248/257/1 +f 241/259/48 245/256/48 246/260/48 +f 244/262/49 248/318/49 247/263/49 +f 242/264/50 247/263/50 245/256/50 +f 255/265/50 250/269/50 252/266/50 +f 253/268/49 249/319/49 250/269/49 +f 256/267/48 252/266/48 251/270/48 +f 256/267/5 254/320/5 253/272/5 +o Core +v 0.000000 2.250000 -0.000000 +v 0.180900 2.388196 0.131430 +v -0.069097 2.388196 0.212660 +v -0.223606 2.388196 -0.000000 +v -0.069097 2.388196 -0.212660 +v 0.180900 2.388196 -0.131430 +v 0.069096 2.611804 0.212660 +v -0.180901 2.611804 0.131430 +v -0.180901 2.611804 -0.131430 +v 0.069096 2.611804 -0.212660 +v 0.223606 2.611804 -0.000000 +v 0.000000 2.750000 -0.000000 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.525641 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.525641 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vn 0.1876 -0.7947 0.5774 +vn 0.6071 -0.7947 0.0000 +vn -0.4911 -0.7947 0.3568 +vn -0.4911 -0.7947 -0.3568 +vn 0.1876 -0.7947 -0.5774 +vn 0.9822 -0.1876 0.0000 +vn 0.3035 -0.1876 0.9342 +vn -0.7946 -0.1876 0.5774 +vn -0.7946 -0.1876 -0.5774 +vn 0.3035 -0.1876 -0.9342 +vn 0.7946 0.1876 0.5774 +vn -0.3035 0.1876 0.9342 +vn -0.9822 0.1876 0.0000 +vn -0.3035 0.1876 -0.9342 +vn 0.7946 0.1876 -0.5774 +vn 0.4911 0.7947 0.3568 +vn -0.1876 0.7947 0.5774 +vn -0.6071 0.7947 0.0000 +vn -0.1876 0.7947 -0.5774 +vn 0.4911 0.7947 -0.3568 +s off +f 257/321/51 258/322/51 259/323/51 +f 258/322/52 257/324/52 262/325/52 +f 257/321/53 259/326/53 260/327/53 +f 257/324/54 260/328/54 261/329/54 +f 257/324/55 261/330/55 262/331/55 +f 258/322/56 262/332/56 267/333/56 +f 259/326/57 258/334/57 263/335/57 +f 260/328/58 259/326/58 264/336/58 +f 261/329/59 260/327/59 265/337/59 +f 262/325/60 261/329/60 266/338/60 +f 258/334/61 267/333/61 263/339/61 +f 259/323/62 263/335/62 264/340/62 +f 260/328/63 264/340/63 265/341/63 +f 261/330/64 265/342/64 266/338/64 +f 262/325/65 266/343/65 267/344/65 +f 263/339/66 267/344/66 268/345/66 +f 264/346/67 263/339/67 268/347/67 +f 265/337/68 264/340/68 268/347/68 +f 266/343/69 265/341/69 268/345/69 +f 267/333/70 266/343/70 268/347/70 +o Chamber +v 0.000000 0.000000 -2.500000 +v -0.956709 0.000000 -2.309699 +v -1.767767 0.000000 -1.767767 +v -2.309699 0.000000 -0.956709 +v -2.500000 0.000000 0.000000 +v -2.309699 0.000000 0.956709 +v -1.767767 0.000000 1.767767 +v -0.956709 0.000000 2.309699 +v 0.000000 0.000000 2.500000 +v 0.956708 0.000000 2.309699 +v 1.767767 0.000000 1.767768 +v 2.309699 0.000000 0.956709 +v 2.500000 0.000000 -0.000000 +v 2.309698 0.000000 -0.956709 +v 1.767766 0.000000 -1.767768 +v 0.956707 0.000000 -2.309699 +v 0.000000 0.500000 -2.500000 +v -0.956709 0.500000 -2.309699 +v -1.767767 0.500000 -1.767767 +v -2.309699 0.500000 -0.956709 +v -2.500000 0.500000 0.000000 +v -2.309699 0.500000 0.956709 +v -1.767767 0.500000 1.767767 +v -0.956709 0.500000 2.309699 +v 0.000000 0.500000 2.500000 +v 0.956708 0.500000 2.309699 +v 1.767767 0.500000 1.767768 +v 2.309699 0.500000 0.956709 +v 2.500000 0.500000 -0.000000 +v 2.309698 0.500000 -0.956709 +v 1.767766 0.500000 -1.767768 +v 0.956707 0.500000 -2.309699 +v 0.000000 0.500000 -2.250000 +v -0.861038 0.500000 -2.078729 +v -1.590990 0.500000 -1.590990 +v -2.078729 0.500000 -0.861038 +v -2.250000 0.500000 0.000000 +v -2.078729 0.500000 0.861038 +v -1.590990 0.500000 1.590990 +v -0.861038 0.500000 2.078729 +v -0.000001 0.500000 2.250000 +v 0.861037 0.500000 2.078729 +v 1.590990 0.500000 1.590991 +v 2.078729 0.500000 0.861038 +v 2.250000 0.500000 0.000000 +v 2.078729 0.500000 -0.861038 +v 1.590990 0.500000 -1.590991 +v 0.861036 0.500000 -2.078730 +v 0.000000 4.500000 -2.250000 +v -0.861038 4.500000 -2.078729 +v -1.590990 4.500000 -1.590990 +v -2.078729 4.500000 -0.861038 +v -2.250000 4.500000 0.000000 +v -2.078729 4.500000 0.861038 +v -1.590990 4.500000 1.590990 +v -0.861038 4.500000 2.078729 +v -0.000001 4.500000 2.250000 +v 0.861037 4.500000 2.078729 +v 1.590990 4.500000 1.590991 +v 2.078729 4.500000 0.861038 +v 2.250000 4.500000 0.000000 +v 2.078729 4.500000 -0.861038 +v 1.590990 4.500000 -1.590991 +v 0.861036 4.500000 -2.078730 +v 1.767767 0.375000 1.944544 +v 1.944544 0.375000 1.767767 +v 1.767767 4.625000 1.944544 +v 1.944544 4.625000 1.767767 +v 1.944544 4.625000 2.121320 +v 1.944544 0.375000 2.121320 +v 2.121320 0.375000 1.944544 +v 2.121320 4.625000 1.944544 +v 1.944544 4.875000 1.767767 +v 1.767767 4.875000 1.944544 +v 1.767767 0.125000 1.944544 +v 1.944544 0.125000 1.767767 +v 1.590990 0.375000 1.767767 +v 1.767767 0.375000 1.590990 +v 1.767767 4.625000 1.590990 +v 1.590990 4.625000 1.767767 +v 1.767767 4.875000 1.590990 +v 1.590990 4.875000 1.767767 +v 1.590990 0.125000 1.767767 +v 1.767767 0.125000 1.590990 +v 1.944544 0.375000 -1.767767 +v 1.767767 0.375000 -1.944544 +v 1.944544 4.625000 -1.767767 +v 1.767767 4.625000 -1.944544 +v 2.121321 4.625000 -1.944544 +v 2.121321 0.375000 -1.944544 +v 1.944544 0.375000 -2.121320 +v 1.944544 4.625000 -2.121320 +v 1.767767 4.875000 -1.944544 +v 1.944544 4.875000 -1.767767 +v 1.944544 0.125000 -1.767767 +v 1.767767 0.125000 -1.944544 +v 1.767767 0.375000 -1.590990 +v 1.590990 0.375000 -1.767767 +v 1.590990 4.625000 -1.767767 +v 1.767767 4.625000 -1.590990 +v 1.590990 4.875000 -1.767767 +v 1.767767 4.875000 -1.590990 +v 1.767767 0.125000 -1.590990 +v 1.590990 0.125000 -1.767767 +v -1.767767 0.375000 -1.944544 +v -1.944544 0.375000 -1.767767 +v -1.767767 4.625000 -1.944544 +v -1.944544 4.625000 -1.767767 +v -1.944544 4.625000 -2.121320 +v -1.944544 0.375000 -2.121320 +v -2.121321 0.375000 -1.944544 +v -2.121321 4.625000 -1.944544 +v -1.944544 4.875000 -1.767767 +v -1.767767 4.875000 -1.944544 +v -1.767767 0.125000 -1.944544 +v -1.944544 0.125000 -1.767767 +v -1.590990 0.375000 -1.767767 +v -1.767767 0.375000 -1.590990 +v -1.767767 4.625000 -1.590990 +v -1.590990 4.625000 -1.767767 +v -1.767767 4.875000 -1.590990 +v -1.590990 4.875000 -1.767767 +v -1.590990 0.125000 -1.767767 +v -1.767767 0.125000 -1.590990 +v -1.944544 0.375000 1.767767 +v -1.767767 0.375000 1.944544 +v -1.944544 4.625000 1.767767 +v -1.767767 4.625000 1.944544 +v -2.121320 4.625000 1.944544 +v -2.121320 0.375000 1.944544 +v -1.944544 0.375000 2.121320 +v -1.944544 4.625000 2.121320 +v -1.767767 4.875000 1.944544 +v -1.944544 4.875000 1.767767 +v -1.944544 0.125000 1.767767 +v -1.767767 0.125000 1.944544 +v -1.767767 0.375000 1.590990 +v -1.590990 0.375000 1.767767 +v -1.590990 4.625000 1.767767 +v -1.767767 4.625000 1.590990 +v -1.590990 4.875000 1.767767 +v -1.767767 4.875000 1.590990 +v -1.767767 0.125000 1.590990 +v -1.590990 0.125000 1.767767 +v 0.000000 0.500000 -1.500000 +v -0.574025 0.500000 -1.385819 +v -1.060660 0.500000 -1.060660 +v -1.385819 0.500000 -0.574025 +v -1.500000 0.500000 0.000000 +v -1.385819 0.500000 0.574025 +v -1.060660 0.500000 1.060660 +v -0.574025 0.500000 1.385819 +v 0.000000 0.500000 1.500000 +v 0.574024 0.500000 1.385819 +v 1.060659 0.500000 1.060660 +v 1.385819 0.500000 0.574025 +v 1.500000 0.500000 -0.000000 +v 1.385819 0.500000 -0.574025 +v 1.060659 0.500000 -1.060660 +v 0.574024 0.500000 -1.385820 +v 0.000000 1.500000 -1.500000 +v -0.574025 1.500000 -1.385819 +v -1.060660 1.500000 -1.060660 +v -1.385819 1.500000 -0.574025 +v -1.500000 1.500000 0.000000 +v -1.385819 1.500000 0.574025 +v -1.060660 1.500000 1.060660 +v -0.574025 1.500000 1.385819 +v 0.000000 1.500000 1.500000 +v 0.574024 1.500000 1.385819 +v 1.060659 1.500000 1.060660 +v 1.385819 1.500000 0.574025 +v 1.500000 1.500000 -0.000000 +v 1.385819 1.500000 -0.574025 +v 1.060659 1.500000 -1.060660 +v 0.574024 1.500000 -1.385820 +v 0.000000 3.500000 -1.500000 +v -0.574025 3.500000 -1.385819 +v -1.060660 3.500000 -1.060660 +v -1.385819 3.500000 -0.574025 +v -1.500000 3.500000 0.000000 +v -1.385819 3.500000 0.574025 +v -1.060660 3.500000 1.060660 +v -0.574025 3.500000 1.385819 +v 0.000000 3.500000 1.500000 +v 0.574024 3.500000 1.385819 +v 1.060659 3.500000 1.060660 +v 1.385819 3.500000 0.574025 +v 1.500000 3.500000 -0.000000 +v 1.385819 3.500000 -0.574025 +v 1.060659 3.500000 -1.060660 +v 0.574024 3.500000 -1.385820 +v 0.000000 4.500000 -1.500000 +v -0.574025 4.500000 -1.385819 +v -1.060660 4.500000 -1.060660 +v -1.385819 4.500000 -0.574025 +v -1.500000 4.500000 0.000000 +v -1.385819 4.500000 0.574025 +v -1.060660 4.500000 1.060660 +v -0.574025 4.500000 1.385819 +v 0.000000 4.500000 1.500000 +v 0.574024 4.500000 1.385819 +v 1.060659 4.500000 1.060660 +v 1.385819 4.500000 0.574025 +v 1.500000 4.500000 -0.000000 +v 1.385819 4.500000 -0.574025 +v 1.060659 4.500000 -1.060660 +v 0.574024 4.500000 -1.385820 +v 0.000000 1.500000 -1.000000 +v -0.382684 1.500000 -0.923880 +v -0.707107 1.500000 -0.707107 +v -0.923880 1.500000 -0.382683 +v -1.000000 1.500000 0.000000 +v -0.923880 1.500000 0.382683 +v -0.707107 1.500000 0.707107 +v -0.382684 1.500000 0.923880 +v 0.000000 1.500000 1.000000 +v 0.382683 1.500000 0.923880 +v 0.707107 1.500000 0.707107 +v 0.923880 1.500000 0.382684 +v 1.000000 1.500000 -0.000000 +v 0.923880 1.500000 -0.382684 +v 0.707107 1.500000 -0.707107 +v 0.382683 1.500000 -0.923880 +v 0.000000 1.750000 -1.000000 +v -0.382684 1.750000 -0.923880 +v -0.707107 1.750000 -0.707107 +v -0.923880 1.750000 -0.382683 +v -1.000000 1.750000 0.000000 +v -0.923880 1.750000 0.382683 +v -0.707107 1.750000 0.707107 +v -0.382684 1.750000 0.923880 +v 0.000000 1.750000 1.000000 +v 0.382683 1.750000 0.923880 +v 0.707107 1.750000 0.707107 +v 0.923880 1.750000 0.382684 +v 1.000000 1.750000 -0.000000 +v 0.923880 1.750000 -0.382684 +v 0.707107 1.750000 -0.707107 +v 0.382683 1.750000 -0.923880 +v 0.000000 3.250000 -1.000000 +v -0.382684 3.250000 -0.923880 +v -0.707107 3.250000 -0.707107 +v -0.923880 3.250000 -0.382683 +v -1.000000 3.250000 0.000000 +v -0.923880 3.250000 0.382683 +v -0.707107 3.250000 0.707107 +v -0.382684 3.250000 0.923880 +v 0.000000 3.250000 1.000000 +v 0.382683 3.250000 0.923880 +v 0.707107 3.250000 0.707107 +v 0.923880 3.250000 0.382684 +v 1.000000 3.250000 -0.000000 +v 0.923880 3.250000 -0.382684 +v 0.707107 3.250000 -0.707107 +v 0.382683 3.250000 -0.923880 +v 0.000000 3.500000 -1.000000 +v -0.382684 3.500000 -0.923880 +v -0.707107 3.500000 -0.707107 +v -0.923880 3.500000 -0.382683 +v -1.000000 3.500000 0.000000 +v -0.923880 3.500000 0.382683 +v -0.707107 3.500000 0.707107 +v -0.382684 3.500000 0.923880 +v 0.000000 3.500000 1.000000 +v 0.382683 3.500000 0.923880 +v 0.707107 3.500000 0.707107 +v 0.923880 3.500000 0.382684 +v 1.000000 3.500000 -0.000000 +v 0.923880 3.500000 -0.382684 +v 0.707107 3.500000 -0.707107 +v 0.382683 3.500000 -0.923880 +v 0.972271 1.500000 0.972272 +v 0.795495 1.500000 0.795495 +v 0.795495 1.500000 -0.795495 +v 0.795495 2.000000 0.795495 +v 0.972271 1.500000 -0.972272 +v 0.795495 3.000000 0.795495 +v 0.972271 3.500000 0.972272 +v 0.795495 3.500000 0.795495 +v 0.265164 2.000000 0.265165 +v 0.265164 3.000000 0.265165 +v 0.795495 2.000000 -0.795495 +v 0.795495 3.000000 -0.795495 +v 0.972271 3.500000 -0.972272 +v 0.795495 3.500000 -0.795495 +v 0.265164 2.000000 -0.265165 +v 0.265164 3.000000 -0.265165 +v -0.972272 1.500000 -0.972272 +v -0.795495 1.500000 -0.795495 +v -0.795495 1.500000 0.795495 +v -0.795495 2.000000 -0.795495 +v -0.972272 1.500000 0.972272 +v -0.795495 3.000000 -0.795495 +v -0.972272 3.500000 -0.972272 +v -0.795495 3.500000 -0.795495 +v -0.265165 2.000000 -0.265165 +v -0.265165 3.000000 -0.265165 +v -0.795495 2.000000 0.795495 +v -0.795495 3.000000 0.795495 +v -0.972272 3.500000 0.972272 +v -0.795495 3.500000 0.795495 +v -0.265165 2.000000 0.265165 +v -0.265165 3.000000 0.265165 +v 0.000000 3.000000 -1.000000 +v -0.353554 2.853553 -1.000000 +v -0.500000 2.500000 -1.000000 +v -0.353554 2.146447 -1.000000 +v 0.000000 2.000000 -1.000000 +v 0.353553 2.146447 -1.000000 +v 0.500000 2.500000 -1.000000 +v 0.353553 2.853553 -1.000000 +v 0.000000 3.000000 -6.500000 +v -0.353554 2.853553 -6.500000 +v -0.500000 2.500000 -6.500000 +v -0.353554 2.146447 -6.500000 +v 0.000000 2.000000 -6.500000 +v 0.353553 2.146447 -6.500000 +v 0.500000 2.500000 -6.500000 +v 0.353553 2.853553 -6.500000 +v 0.000000 2.875000 -1.000000 +v -0.265165 2.765165 -1.000000 +v -0.375000 2.500000 -1.000000 +v -0.265165 2.234835 -1.000000 +v 0.000000 2.125000 -1.000000 +v 0.265164 2.234835 -1.000000 +v 0.375000 2.500000 -1.000000 +v 0.265164 2.765165 -1.000000 +v -0.265165 2.765165 -0.500000 +v 0.000000 2.875000 -0.500000 +v -0.375000 2.500000 -0.500000 +v -0.265165 2.234835 -0.500000 +v 0.000000 2.125000 -0.500000 +v 0.265164 2.234835 -0.500000 +v 0.375000 2.500000 -0.500000 +v 0.265164 2.765165 -0.500000 +v -1.000000 0.000000 -6.500000 +v 1.000000 0.000000 -6.500000 +v -1.000000 0.000000 -8.500000 +v 1.000000 0.000000 -8.500000 +v -1.000000 2.500000 -8.500000 +v -1.000000 3.500000 -6.500000 +v 1.000000 3.500000 -6.500000 +v 1.000000 2.500000 -8.500000 +v -0.250000 0.000000 -3.250000 +v 0.250000 0.000000 -3.250000 +v -0.250000 0.000000 -3.750000 +v 0.250000 0.000000 -3.750000 +v -0.250000 0.125000 -3.750000 +v -0.250000 0.125000 -3.250000 +v 0.250000 0.125000 -3.250000 +v 0.250000 0.125000 -3.750000 +v -0.125000 0.125000 -3.625000 +v -0.125000 0.125000 -3.375000 +v 0.125000 0.125000 -3.375000 +v 0.125000 0.125000 -3.625000 +v -0.125000 1.750000 -3.625000 +v -0.125000 1.750000 -3.375000 +v 0.125000 1.750000 -3.375000 +v 0.125000 1.750000 -3.625000 +v -0.750000 2.500000 -6.750000 +v 0.750000 2.500000 -6.750000 +v -0.750000 2.500000 -8.250000 +v 0.750000 2.500000 -8.250000 +v -0.750000 3.500000 -8.250000 +v -0.750000 3.500000 -6.750000 +v 0.750000 3.500000 -6.750000 +v 0.750000 3.500000 -8.250000 +v 1.000000 0.000000 -6.500000 +v 1.500000 0.000000 -6.500000 +v 1.000000 0.000000 -8.500000 +v 1.500000 0.000000 -8.500000 +v 1.000000 1.500000 -8.500000 +v 1.000000 1.500000 -6.500000 +v 1.500000 1.000000 -6.500000 +v 1.500000 1.000000 -8.500000 +v -1.500000 0.000000 -6.500000 +v -1.000000 0.000000 -6.500000 +v -1.500000 0.000000 -8.500000 +v -1.000000 0.000000 -8.500000 +v -1.500000 1.000000 -8.500000 +v -1.500000 1.000000 -6.500000 +v -1.000000 1.500000 -6.500000 +v -1.000000 1.500000 -8.500000 +v 0.353553 2.853553 -2.375000 +v 0.500000 2.500000 -2.375000 +v 0.353553 2.146447 -2.375000 +v 0.000000 2.000000 -2.375000 +v -0.353554 2.146447 -2.375000 +v -0.500000 2.500000 -2.375000 +v -0.353554 2.853553 -2.375000 +v 0.000000 3.000000 -2.375000 +v 0.530330 3.030330 -2.125000 +v 0.750000 2.500000 -2.125000 +v 0.530330 1.969670 -2.125000 +v 0.000000 1.750000 -2.125000 +v -0.530331 1.969670 -2.125000 +v -0.750000 2.500000 -2.125000 +v -0.530331 3.030330 -2.125000 +v 0.000000 3.250000 -2.125000 +v 0.707107 3.207107 -2.375000 +v 1.000000 2.500000 -2.375000 +v 0.707107 1.792893 -2.375000 +v 0.000000 1.500000 -2.375000 +v -0.707107 1.792893 -2.375000 +v -1.000000 2.500000 -2.375000 +v -0.707107 3.207107 -2.375000 +v 0.000000 3.500000 -2.375000 +v 0.000000 3.500000 -2.625000 +v -0.707107 3.207107 -2.625000 +v -1.000000 2.500000 -2.625000 +v -0.707107 1.792893 -2.625000 +v 0.000000 1.500000 -2.625000 +v 0.707107 1.792893 -2.625000 +v 1.000000 2.500000 -2.625000 +v 0.707107 3.207107 -2.625000 +v 0.353553 2.853553 -2.625000 +v 0.500000 2.500000 -2.625000 +v 0.353553 2.146447 -2.625000 +v 0.000000 2.000000 -2.625000 +v -0.353554 2.146447 -2.625000 +v -0.500000 2.500000 -2.625000 +v -0.353554 2.853553 -2.625000 +v 0.000000 3.000000 -2.625000 +v 0.530330 3.030330 -2.875000 +v 0.750000 2.500000 -2.875000 +v 0.530330 1.969670 -2.875000 +v 0.000000 1.750000 -2.875000 +v -0.530331 1.969670 -2.875000 +v -0.750000 2.500000 -2.875000 +v -0.530331 3.030330 -2.875000 +v 0.000000 3.250000 -2.875000 +v -0.062500 3.750000 -2.562500 +v 0.062500 3.750000 -2.562500 +v -0.062500 3.750000 -7.437500 +v 0.062500 3.750000 -7.437500 +v -0.062500 3.625000 -7.437500 +v -0.062500 3.625000 -2.562500 +v 0.062500 3.625000 -2.562500 +v 0.062500 3.625000 -7.437500 +v 0.062500 3.625000 -3.437500 +v -0.062500 3.625000 -3.437500 +v -0.062500 3.625000 -2.437500 +v 0.062500 3.625000 -2.437500 +v 0.062500 3.625000 -3.562500 +v -0.062500 3.625000 -3.562500 +v 0.062500 3.625000 -7.562500 +v -0.062500 3.625000 -7.562500 +v -0.062500 3.437500 -2.562500 +v 0.062500 3.437500 -2.562500 +v 0.062500 3.500000 -7.437500 +v -0.062500 3.500000 -7.437500 +v -0.062500 3.437500 -2.437500 +v 0.062500 3.437500 -2.437500 +v 0.062500 3.500000 -7.562500 +v -0.062500 3.500000 -7.562500 +v -0.062500 3.437500 -3.562500 +v 0.062500 3.437500 -3.562500 +v -0.062500 3.437500 -3.437500 +v 0.062500 3.437500 -3.437500 +v 0.062500 3.625000 -4.437500 +v -0.062500 3.625000 -4.437500 +v 0.062500 3.625000 -4.562500 +v -0.062500 3.625000 -4.562500 +v -0.062500 3.437500 -4.562500 +v 0.062500 3.437500 -4.562500 +v -0.062500 3.437500 -4.437500 +v 0.062500 3.437500 -4.437500 +v 0.062500 3.625000 -5.437500 +v -0.062500 3.625000 -5.437500 +v 0.062500 3.625000 -5.562500 +v -0.062500 3.625000 -5.562500 +v -0.062500 3.437500 -5.562500 +v 0.062500 3.437500 -5.562500 +v -0.062500 3.437500 -5.437500 +v 0.062500 3.437500 -5.437500 +v 0.353553 2.853553 -3.375000 +v 0.500000 2.500000 -3.375000 +v 0.353553 2.146447 -3.375000 +v 0.000000 2.000000 -3.375000 +v -0.353554 2.146447 -3.375000 +v -0.500000 2.500000 -3.375000 +v -0.353554 2.853553 -3.375000 +v 0.000000 3.000000 -3.375000 +v 0.530330 3.030330 -3.125000 +v 0.750000 2.500000 -3.125000 +v 0.530330 1.969670 -3.125000 +v 0.000000 1.750000 -3.125000 +v -0.530331 1.969670 -3.125000 +v -0.750000 2.500000 -3.125000 +v -0.530331 3.030330 -3.125000 +v 0.000000 3.250000 -3.125000 +v 0.707107 3.207107 -3.375000 +v 1.000000 2.500000 -3.375000 +v 0.707107 1.792893 -3.375000 +v 0.000000 1.500000 -3.375000 +v -0.707107 1.792893 -3.375000 +v -1.000000 2.500000 -3.375000 +v -0.707107 3.207107 -3.375000 +v 0.000000 3.500000 -3.375000 +v 0.000000 3.500000 -3.625000 +v -0.707107 3.207107 -3.625000 +v -1.000000 2.500000 -3.625000 +v -0.707107 1.792893 -3.625000 +v 0.000000 1.500000 -3.625000 +v 0.707107 1.792893 -3.625000 +v 1.000000 2.500000 -3.625000 +v 0.707107 3.207107 -3.625000 +v 0.353553 2.853553 -3.625000 +v 0.500000 2.500000 -3.625000 +v 0.353553 2.146447 -3.625000 +v 0.000000 2.000000 -3.625000 +v -0.353554 2.146447 -3.625000 +v -0.500000 2.500000 -3.625000 +v -0.353554 2.853553 -3.625000 +v 0.000000 3.000000 -3.625000 +v 0.530330 3.030330 -3.875000 +v 0.750000 2.500000 -3.875000 +v 0.530330 1.969670 -3.875000 +v 0.000000 1.750000 -3.875000 +v -0.530331 1.969670 -3.875000 +v -0.750000 2.500000 -3.875000 +v -0.530331 3.030330 -3.875000 +v 0.000000 3.250000 -3.875000 +v 0.353553 2.853553 -4.375000 +v 0.500000 2.500000 -4.375000 +v 0.353553 2.146447 -4.375000 +v 0.000000 2.000000 -4.375000 +v -0.353554 2.146447 -4.375000 +v -0.500000 2.500000 -4.375000 +v -0.353554 2.853553 -4.375000 +v 0.000000 3.000000 -4.375000 +v 0.530330 3.030330 -4.125000 +v 0.750000 2.500000 -4.125000 +v 0.530330 1.969670 -4.125000 +v 0.000000 1.750000 -4.125000 +v -0.530331 1.969670 -4.125000 +v -0.750000 2.500000 -4.125000 +v -0.530331 3.030330 -4.125000 +v 0.000000 3.250000 -4.125000 +v 0.707107 3.207107 -4.375000 +v 1.000000 2.500000 -4.375000 +v 0.707107 1.792893 -4.375000 +v 0.000000 1.500000 -4.375000 +v -0.707107 1.792893 -4.375000 +v -1.000000 2.500000 -4.375000 +v -0.707107 3.207107 -4.375000 +v 0.000000 3.500000 -4.375000 +v 0.000000 3.500000 -4.625000 +v -0.707107 3.207107 -4.625000 +v -1.000000 2.500000 -4.625000 +v -0.707107 1.792893 -4.625000 +v 0.000000 1.500000 -4.625000 +v 0.707107 1.792893 -4.625000 +v 1.000000 2.500000 -4.625000 +v 0.707107 3.207107 -4.625000 +v 0.353553 2.853553 -4.625000 +v 0.500000 2.500000 -4.625000 +v 0.353553 2.146447 -4.625000 +v 0.000000 2.000000 -4.625000 +v -0.353554 2.146447 -4.625000 +v -0.500000 2.500000 -4.625000 +v -0.353554 2.853553 -4.625000 +v 0.000000 3.000000 -4.625000 +v 0.530330 3.030330 -4.875000 +v 0.750000 2.500000 -4.875000 +v 0.530330 1.969670 -4.875000 +v 0.000000 1.750000 -4.875000 +v -0.530331 1.969670 -4.875000 +v -0.750000 2.500000 -4.875000 +v -0.530331 3.030330 -4.875000 +v 0.000000 3.250000 -4.875000 +v 0.353553 2.853553 -5.375000 +v 0.500000 2.500000 -5.375000 +v 0.353553 2.146447 -5.375000 +v 0.000000 2.000000 -5.375000 +v -0.353554 2.146447 -5.375000 +v -0.500000 2.500000 -5.375000 +v -0.353554 2.853553 -5.375000 +v 0.000000 3.000000 -5.375000 +v 0.530330 3.030330 -5.125000 +v 0.750000 2.500000 -5.125000 +v 0.530330 1.969670 -5.125000 +v 0.000000 1.750000 -5.125000 +v -0.530331 1.969670 -5.125000 +v -0.750000 2.500000 -5.125000 +v -0.530331 3.030330 -5.125000 +v 0.000000 3.250000 -5.125000 +v 0.707107 3.207107 -5.375000 +v 1.000000 2.500000 -5.375000 +v 0.707107 1.792893 -5.375000 +v 0.000000 1.500000 -5.375000 +v -0.707107 1.792893 -5.375000 +v -1.000000 2.500000 -5.375000 +v -0.707107 3.207107 -5.375000 +v 0.000000 3.500000 -5.375000 +v 0.000000 3.500000 -5.625000 +v -0.707107 3.207107 -5.625000 +v -1.000000 2.500000 -5.625000 +v -0.707107 1.792893 -5.625000 +v 0.000000 1.500000 -5.625000 +v 0.707107 1.792893 -5.625000 +v 1.000000 2.500000 -5.625000 +v 0.707107 3.207107 -5.625000 +v 0.353553 2.853553 -5.625000 +v 0.500000 2.500000 -5.625000 +v 0.353553 2.146447 -5.625000 +v 0.000000 2.000000 -5.625000 +v -0.353554 2.146447 -5.625000 +v -0.500000 2.500000 -5.625000 +v -0.353554 2.853553 -5.625000 +v 0.000000 3.000000 -5.625000 +v 0.530330 3.030330 -5.875000 +v 0.750000 2.500000 -5.875000 +v 0.530330 1.969670 -5.875000 +v 0.000000 1.750000 -5.875000 +v -0.530331 1.969670 -5.875000 +v -0.750000 2.500000 -5.875000 +v -0.530331 3.030330 -5.875000 +v 0.000000 3.250000 -5.875000 +v 0.353553 2.853553 -6.375000 +v 0.500000 2.500000 -6.375000 +v 0.353553 2.146447 -6.375000 +v 0.000000 2.000000 -6.375000 +v -0.353554 2.146447 -6.375000 +v -0.500000 2.500000 -6.375000 +v -0.353554 2.853553 -6.375000 +v 0.000000 3.000000 -6.375000 +v 0.530330 3.030330 -6.125000 +v 0.750000 2.500000 -6.125000 +v 0.530330 1.969670 -6.125000 +v 0.000000 1.750000 -6.125000 +v -0.530331 1.969670 -6.125000 +v -0.750000 2.500000 -6.125000 +v -0.530331 3.030330 -6.125000 +v 0.000000 3.250000 -6.125000 +v 0.707107 3.207107 -6.375000 +v 1.000000 2.500000 -6.375000 +v 0.707107 1.792893 -6.375000 +v 0.000000 1.500000 -6.375000 +v -0.707107 1.792893 -6.375000 +v -1.000000 2.500000 -6.375000 +v -0.707107 3.207107 -6.375000 +v 0.000000 3.500000 -6.375000 +v 0.000000 3.500000 -6.500000 +v -0.707107 3.207107 -6.500000 +v -1.000000 2.500000 -6.500000 +v -0.707107 1.792893 -6.500000 +v 0.000000 1.500000 -6.500000 +v 0.707107 1.792893 -6.500000 +v 1.000000 2.500000 -6.500000 +v 0.707107 3.207107 -6.500000 +v -0.250000 0.000000 -5.250000 +v 0.250000 0.000000 -5.250000 +v -0.250000 0.000000 -5.750000 +v 0.250000 0.000000 -5.750000 +v -0.250000 0.125000 -5.750000 +v -0.250000 0.125000 -5.250000 +v 0.250000 0.125000 -5.250000 +v 0.250000 0.125000 -5.750000 +v -0.125000 0.125000 -5.625000 +v -0.125000 0.125000 -5.375000 +v 0.125000 0.125000 -5.375000 +v 0.125000 0.125000 -5.625000 +v -0.125000 1.750000 -5.625000 +v -0.125000 1.750000 -5.375000 +v 0.125000 1.750000 -5.375000 +v 0.125000 1.750000 -5.625000 +v 0.000000 4.500000 -2.500000 +v -0.956709 4.500000 -2.309699 +v -1.767767 4.500000 -1.767767 +v -2.309699 4.500000 -0.956709 +v -2.500000 4.500000 0.000000 +v -2.309699 4.500000 0.956709 +v -1.767767 4.500000 1.767767 +v -0.956709 4.500000 2.309699 +v 0.000000 4.500000 2.500000 +v 0.956708 4.500000 2.309699 +v 1.767767 4.500000 1.767768 +v 2.309699 4.500000 0.956709 +v 2.500000 4.500000 -0.000000 +v 2.309698 4.500000 -0.956709 +v 1.767766 4.500000 -1.767768 +v 0.956707 4.500000 -2.309699 +v 0.000000 5.000000 -2.500000 +v -0.956709 5.000000 -2.309699 +v -1.767767 5.000000 -1.767767 +v -2.309699 5.000000 -0.956709 +v -2.500000 5.000000 0.000000 +v -2.309699 5.000000 0.956709 +v -1.767767 5.000000 1.767767 +v -0.956709 5.000000 2.309699 +v 0.000000 5.000000 2.500000 +v 0.956708 5.000000 2.309699 +v 1.767767 5.000000 1.767768 +v 2.309699 5.000000 0.956709 +v 2.500000 5.000000 -0.000000 +v 2.309698 5.000000 -0.956709 +v 1.767766 5.000000 -1.767768 +v 0.956707 5.000000 -2.309699 +v 1.250000 2.562500 -2.562500 +v 1.250000 2.437500 -2.562500 +v 1.250000 2.562500 -7.437500 +v 1.250000 2.437500 -7.437500 +v 1.125000 2.562500 -7.437500 +v 1.125000 2.562500 -2.562500 +v 1.125000 2.437500 -2.562500 +v 1.125000 2.437500 -7.437500 +v 1.125000 2.437500 -3.437500 +v 1.125000 2.562500 -3.437500 +v 1.125000 2.562500 -2.437500 +v 1.125000 2.437500 -2.437500 +v 1.125000 2.437500 -3.562500 +v 1.125000 2.562500 -3.562500 +v 1.125000 2.437500 -7.562500 +v 1.125000 2.562500 -7.562500 +v 0.937500 2.562500 -2.562500 +v 0.937500 2.437500 -2.562500 +v 1.000000 2.437500 -7.437500 +v 1.000000 2.562500 -7.437500 +v 0.937500 2.562500 -2.437500 +v 0.937500 2.437500 -2.437500 +v 1.000000 2.437500 -7.562500 +v 1.000000 2.562500 -7.562500 +v 0.937500 2.562500 -3.562500 +v 0.937500 2.437500 -3.562500 +v 0.937500 2.562500 -3.437500 +v 0.937500 2.437500 -3.437500 +v 1.125000 2.437500 -4.437500 +v 1.125000 2.562500 -4.437500 +v 1.125000 2.437500 -4.562500 +v 1.125000 2.562500 -4.562500 +v 0.937500 2.562500 -4.562500 +v 0.937500 2.437500 -4.562500 +v 0.937500 2.562500 -4.437500 +v 0.937500 2.437500 -4.437500 +v 1.125000 2.437500 -5.437500 +v 1.125000 2.562500 -5.437500 +v 1.125000 2.437500 -5.562500 +v 1.125000 2.562500 -5.562500 +v 0.937500 2.562500 -5.562500 +v 0.937500 2.437500 -5.562500 +v 0.937500 2.562500 -5.437500 +v 0.937500 2.437500 -5.437500 +v -1.250000 2.437500 -2.562500 +v -1.250000 2.562500 -2.562500 +v -1.250000 2.437500 -7.437500 +v -1.250000 2.562500 -7.437500 +v -1.125000 2.437500 -7.437500 +v -1.125000 2.437500 -2.562500 +v -1.125000 2.562500 -2.562500 +v -1.125000 2.562500 -7.437500 +v -1.125000 2.562500 -3.437500 +v -1.125000 2.437500 -3.437500 +v -1.125000 2.437500 -2.437500 +v -1.125000 2.562500 -2.437500 +v -1.125000 2.562500 -3.562500 +v -1.125000 2.437500 -3.562500 +v -1.125000 2.562500 -7.562500 +v -1.125000 2.437500 -7.562500 +v -0.937500 2.437500 -2.562500 +v -0.937500 2.562500 -2.562500 +v -1.000000 2.562500 -7.437500 +v -1.000000 2.437500 -7.437500 +v -0.937500 2.437500 -2.437500 +v -0.937500 2.562500 -2.437500 +v -1.000000 2.562500 -7.562500 +v -1.000000 2.437500 -7.562500 +v -0.937500 2.437500 -3.562500 +v -0.937500 2.562500 -3.562500 +v -0.937500 2.437500 -3.437500 +v -0.937500 2.562500 -3.437500 +v -1.125000 2.562500 -4.437500 +v -1.125000 2.437500 -4.437500 +v -1.125000 2.562500 -4.562500 +v -1.125000 2.437500 -4.562500 +v -0.937500 2.437500 -4.562500 +v -0.937500 2.562500 -4.562500 +v -0.937500 2.437500 -4.437500 +v -0.937500 2.562500 -4.437500 +v -1.125000 2.562500 -5.437500 +v -1.125000 2.437500 -5.437500 +v -1.125000 2.562500 -5.562500 +v -1.125000 2.437500 -5.562500 +v -0.937500 2.437500 -5.562500 +v -0.937500 2.562500 -5.562500 +v -0.937500 2.437500 -5.437500 +v -0.937500 2.562500 -5.437500 +vt 0.218809 0.299422 +vt 0.037601 0.299422 +vt 0.037602 0.051455 +vt 0.000072 0.561403 +vt 0.128205 0.386064 +vt 0.256338 0.561404 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.298246 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.512821 0.280702 +vt 0.525641 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.269231 0.350877 +vt 0.256410 0.333333 +vt 0.512821 0.350877 +vt 0.525641 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.298246 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.280702 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.256410 0.350877 +vt 0.256410 0.333333 +vt 0.525641 0.350877 +vt 0.512821 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.512821 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.512821 0.280702 +vt 0.525641 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.269231 0.350877 +vt 0.256410 0.333333 +vt 0.512821 0.350877 +vt 0.525641 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.256410 0.350877 +vt 0.256410 0.333333 +vt 0.525641 0.350877 +vt 0.512821 0.350877 +vt 0.256410 0.298246 +vt 0.387590 0.487157 +vt 0.387590 0.635650 +vt 0.279077 0.635650 +vt 0.410064 0.561404 +vt 0.333333 0.666404 +vt 0.256603 0.561404 +vt 0.410509 0.543860 +vt 0.461538 0.474030 +vt 0.512568 0.543860 +vt 0.425455 0.593237 +vt 0.425455 0.494482 +vt 0.497622 0.494482 +vt 0.512821 0.614035 +vt 0.525641 0.578947 +vt 0.525641 0.614035 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.525641 0.578947 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.614035 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.578947 +vt 0.525641 0.614035 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.525641 0.578947 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.614035 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.032051 0.868421 +vt 0.025641 0.846491 +vt 0.032051 0.842105 +vt 0.032051 0.815789 +vt 0.025641 0.837719 +vt 0.025641 0.820175 +vt 0.032051 0.763158 +vt 0.025641 0.785088 +vt 0.025641 0.767544 +vt 0.032051 0.947368 +vt 0.025641 0.925439 +vt 0.032051 0.921053 +vt 0.032051 0.894737 +vt 0.025641 0.872807 +vt 0.025641 0.793860 +vt 0.032051 0.789474 +vt 0.025641 0.741228 +vt 0.032051 0.736842 +vt 0.025641 0.916667 +vt 0.025641 0.899123 +vt 0.333333 0.789452 +vt 0.314118 0.763158 +vt 0.333333 0.736863 +vt 0.717949 0.614035 +vt 0.615385 0.473684 +vt 0.717949 0.473684 +vt 0.615385 0.929825 +vt 0.717949 0.789474 +vt 0.717949 0.929825 +vt 0.512821 0.614035 +vt 0.615385 0.789474 +vt 0.512821 0.859649 +vt 0.820513 0.614035 +vt 0.615385 0.614035 +vt 0.410256 0.859649 +vt 0.410256 0.614035 +vt 0.903846 0.280702 +vt 0.878205 0.315789 +vt 0.878205 0.280702 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.878205 0.324561 +vt 0.903846 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.871795 0.877193 +vt 0.948718 0.771930 +vt 0.948718 0.877193 +vt 0.948718 0.701754 +vt 0.871795 0.771930 +vt 0.871795 0.701754 +vt 0.871795 0.947368 +vt 0.948718 0.947368 +vt 0.820513 0.771930 +vt 0.820513 0.877193 +vt 1.000000 0.877193 +vt 1.000000 0.771930 +vt 0.442308 0.859649 +vt 0.339744 0.894737 +vt 0.339744 0.859649 +vt 0.339744 0.964912 +vt 0.442308 1.000000 +vt 0.339744 1.000000 +vt 0.442308 0.894737 +vt 0.467949 0.894737 +vt 0.442308 0.964912 +vt 0.314103 0.894737 +vt 0.314103 1.000000 +vt 0.339744 0.894737 +vt 0.442308 0.859649 +vt 0.442308 0.894737 +vt 0.442308 1.000000 +vt 0.339744 0.964912 +vt 0.442308 0.964912 +vt 0.314103 0.894737 +vt 0.314103 1.000000 +vt 0.467949 0.894737 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.903846 0.280702 +vt 0.878205 0.315789 +vt 0.878205 0.280702 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.878205 0.324561 +vt 0.903846 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.218809 0.299422 +vt 0.037601 0.299422 +vt 0.037602 0.051455 +vt 0.000072 0.561403 +vt 0.128205 0.386064 +vt 0.256338 0.561404 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.218809 0.051455 +vt 0.246584 0.108339 +vt 0.256338 0.175439 +vt 0.246584 0.242538 +vt 0.177239 0.337431 +vt 0.128205 0.350778 +vt 0.079171 0.337431 +vt 0.009826 0.242538 +vt 0.000072 0.175438 +vt 0.009826 0.108339 +vt 0.079171 0.013446 +vt 0.128205 0.000099 +vt 0.177239 0.013446 +vt 0.246584 0.628503 +vt 0.218809 0.685387 +vt 0.177240 0.723396 +vt 0.128205 0.736743 +vt 0.079171 0.723396 +vt 0.037602 0.685387 +vt 0.009826 0.628503 +vt 0.009826 0.494304 +vt 0.037602 0.437420 +vt 0.079171 0.399411 +vt 0.177239 0.399411 +vt 0.218809 0.437420 +vt 0.246585 0.494304 +vt 0.525641 0.280702 +vt 0.256410 0.350877 +vt 0.525641 0.280702 +vt 0.269231 0.350877 +vt 0.525641 0.280702 +vt 0.256410 0.350877 +vt 0.525641 0.280702 +vt 0.269231 0.350877 +vt 0.404223 0.521222 +vt 0.410064 0.561404 +vt 0.404223 0.601585 +vt 0.362697 0.658411 +vt 0.333333 0.666404 +vt 0.303970 0.658411 +vt 0.262443 0.601585 +vt 0.256603 0.561404 +vt 0.262443 0.521222 +vt 0.279077 0.487157 +vt 0.303970 0.464396 +vt 0.333333 0.456403 +vt 0.362697 0.464396 +vt 0.404223 0.601585 +vt 0.387590 0.635650 +vt 0.362697 0.658411 +vt 0.303970 0.658411 +vt 0.279077 0.635650 +vt 0.262443 0.601585 +vt 0.262443 0.521222 +vt 0.279077 0.487157 +vt 0.303970 0.464396 +vt 0.333333 0.456404 +vt 0.362697 0.464396 +vt 0.387590 0.487158 +vt 0.404223 0.521222 +vt 0.508684 0.570583 +vt 0.497622 0.593237 +vt 0.481067 0.608374 +vt 0.461538 0.613690 +vt 0.442010 0.608374 +vt 0.425455 0.593237 +vt 0.414393 0.570582 +vt 0.414393 0.517137 +vt 0.425455 0.494482 +vt 0.442010 0.479345 +vt 0.481067 0.479345 +vt 0.497622 0.494482 +vt 0.508684 0.517137 +vt 0.508684 0.517137 +vt 0.512568 0.543860 +vt 0.508684 0.570583 +vt 0.497622 0.593237 +vt 0.481067 0.608374 +vt 0.461538 0.613690 +vt 0.442010 0.608374 +vt 0.414393 0.570583 +vt 0.410509 0.543860 +vt 0.414393 0.517137 +vt 0.442010 0.479345 +vt 0.461538 0.474030 +vt 0.481067 0.479345 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.025641 0.864035 +vt 0.025641 0.942982 +vt 0.025641 0.890351 +vt 0.025641 0.811404 +vt 0.025641 0.758772 +vt 0.319746 0.781751 +vt 0.319746 0.744565 +vt 0.346920 0.744565 +vt 0.352549 0.763158 +vt 0.346921 0.781751 +vt 0.820513 0.859649 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.467949 1.000000 +vt 0.339744 0.859649 +vt 0.339744 1.000000 +vt 0.467949 1.000000 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.218809 0.051455 +vt 0.246584 0.108339 +vt 0.256338 0.175439 +vt 0.246584 0.242538 +vt 0.177239 0.337431 +vt 0.128205 0.350778 +vt 0.079171 0.337431 +vt 0.009826 0.242538 +vt 0.000072 0.175438 +vt 0.009826 0.108339 +vt 0.079171 0.013446 +vt 0.128205 0.000099 +vt 0.177239 0.013446 +vt 0.246584 0.628503 +vt 0.218809 0.685387 +vt 0.177240 0.723396 +vt 0.128205 0.736743 +vt 0.079171 0.723396 +vt 0.037602 0.685387 +vt 0.009826 0.628503 +vt 0.009826 0.494304 +vt 0.037602 0.437420 +vt 0.079171 0.399411 +vt 0.177239 0.399411 +vt 0.218809 0.437420 +vt 0.246585 0.494304 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.512821 0.350877 +vt 0.461538 0.385965 +vt 0.461538 0.350877 +vt 0.153846 0.350877 +vt 0.102564 0.385965 +vt 0.102564 0.350877 +vt 0.564103 0.350877 +vt 0.512821 0.385965 +vt 0.205128 0.350877 +vt 0.153846 0.385965 +vt 0.666667 0.350877 +vt 0.615385 0.385965 +vt 0.615385 0.350877 +vt 0.564103 0.385965 +vt 0.256410 0.350877 +vt 0.205128 0.385965 +vt 0.717949 0.350877 +vt 0.666667 0.385965 +vt 0.307692 0.350877 +vt 0.256410 0.385965 +vt 0.769231 0.350877 +vt 0.717949 0.385965 +vt 0.358974 0.350877 +vt 0.307692 0.385965 +vt 0.820513 0.350877 +vt 0.769231 0.385965 +vt 0.410256 0.350877 +vt 0.358974 0.385965 +vt 0.051282 0.350877 +vt 0.000000 0.385965 +vt 0.000000 0.350877 +vt 0.410256 0.385965 +vt 0.051282 0.385965 +vt 0.705128 0.000000 +vt 0.660256 0.280702 +vt 0.660256 0.000000 +vt 0.391026 0.000000 +vt 0.346154 0.280702 +vt 0.346154 0.000000 +vt 0.750000 0.000000 +vt 0.705128 0.280702 +vt 0.435897 0.000000 +vt 0.391026 0.280702 +vt 0.839744 -0.000000 +vt 0.794872 0.280702 +vt 0.794872 0.000000 +vt 0.750000 0.280702 +vt 0.480769 0.000000 +vt 0.435897 0.280702 +vt 0.884615 -0.000000 +vt 0.839744 0.280702 +vt 0.525641 0.000000 +vt 0.480769 0.280702 +vt 0.929487 -0.000000 +vt 0.884615 0.280702 +vt 0.570513 0.000000 +vt 0.525641 0.280702 +vt 0.974359 -0.000000 +vt 0.929487 0.280702 +vt 0.615385 0.000000 +vt 0.570513 0.280702 +vt 0.301282 0.000000 +vt 0.256410 0.280702 +vt 0.256410 0.000000 +vt 0.615385 0.280702 +vt 0.301282 0.280702 +vt 0.544872 0.385965 +vt 0.516026 0.456140 +vt 0.516026 0.385965 +vt 0.342949 0.385965 +vt 0.314103 0.456140 +vt 0.314103 0.385965 +vt 0.573718 0.385965 +vt 0.544872 0.456140 +vt 0.371795 0.385965 +vt 0.342949 0.456140 +vt 0.631410 0.385965 +vt 0.602564 0.456140 +vt 0.602564 0.385965 +vt 0.573718 0.456140 +vt 0.400641 0.385965 +vt 0.371795 0.456140 +vt 0.660256 0.385965 +vt 0.631410 0.456140 +vt 0.429487 0.385965 +vt 0.400641 0.456140 +vt 0.689103 0.385965 +vt 0.660256 0.456140 +vt 0.458333 0.385965 +vt 0.429487 0.456140 +vt 0.717949 0.385965 +vt 0.689103 0.456140 +vt 0.487179 0.385965 +vt 0.458333 0.456140 +vt 0.285256 0.385965 +vt 0.256410 0.456140 +vt 0.256410 0.385965 +vt 0.487179 0.456140 +vt 0.285256 0.456140 +vt 0.429487 0.456140 +vt 0.458333 0.385965 +vt 0.458333 0.456140 +vt 0.631410 0.456140 +vt 0.660256 0.385965 +vt 0.660256 0.456140 +vt 0.400641 0.456140 +vt 0.429487 0.385965 +vt 0.602564 0.456140 +vt 0.631410 0.385965 +vt 0.342949 0.456140 +vt 0.371795 0.385965 +vt 0.371795 0.456140 +vt 0.400641 0.385965 +vt 0.573718 0.456140 +vt 0.602564 0.385965 +vt 0.314103 0.456140 +vt 0.342949 0.385965 +vt 0.544872 0.456140 +vt 0.573718 0.385965 +vt 0.285256 0.456140 +vt 0.314103 0.385965 +vt 0.516026 0.456140 +vt 0.544872 0.385965 +vt 0.256410 0.456140 +vt 0.285256 0.385965 +vt 0.487179 0.456140 +vt 0.516026 0.385965 +vt 0.689103 0.456140 +vt 0.717949 0.385965 +vt 0.717949 0.456140 +vt 0.487179 0.385965 +vt 0.689103 0.385965 +vt 0.544872 0.456140 +vt 0.525641 0.473684 +vt 0.525641 0.456140 +vt 0.717949 0.456140 +vt 0.698718 0.473684 +vt 0.698718 0.456140 +vt 0.564103 0.456140 +vt 0.544872 0.473684 +vt 0.429487 0.456140 +vt 0.410256 0.473684 +vt 0.410256 0.456140 +vt 0.583333 0.456140 +vt 0.564103 0.473684 +vt 0.448718 0.456140 +vt 0.429487 0.473684 +vt 0.602564 0.456140 +vt 0.583333 0.473684 +vt 0.467949 0.456140 +vt 0.448718 0.473684 +vt 0.621795 0.456140 +vt 0.602564 0.473684 +vt 0.487179 0.456140 +vt 0.467949 0.473684 +vt 0.660256 0.456140 +vt 0.641026 0.473684 +vt 0.641026 0.456140 +vt 0.621795 0.473684 +vt 0.506410 0.456140 +vt 0.487179 0.473684 +vt 0.679487 0.456140 +vt 0.660256 0.473684 +vt 0.506410 0.473684 +vt 0.679487 0.473684 +vt 0.583333 0.473684 +vt 0.602564 0.456140 +vt 0.602564 0.473684 +vt 0.410256 0.473684 +vt 0.429487 0.456140 +vt 0.429487 0.473684 +vt 0.564103 0.473684 +vt 0.583333 0.456140 +vt 0.698718 0.473684 +vt 0.717949 0.456140 +vt 0.717949 0.473684 +vt 0.544872 0.473684 +vt 0.564103 0.456140 +vt 0.679487 0.473684 +vt 0.698718 0.456140 +vt 0.525641 0.473684 +vt 0.544872 0.456140 +vt 0.660256 0.473684 +vt 0.679487 0.456140 +vt 0.506410 0.473684 +vt 0.525641 0.456140 +vt 0.641026 0.473684 +vt 0.660256 0.456140 +vt 0.467949 0.473684 +vt 0.487179 0.456140 +vt 0.487179 0.473684 +vt 0.506410 0.456140 +vt 0.621795 0.473684 +vt 0.641026 0.456140 +vt 0.448718 0.473684 +vt 0.467949 0.456140 +vt 0.621795 0.456140 +vt 0.448718 0.456140 +vt 0.314103 0.842105 +vt 0.314103 0.815789 +vt 0.314103 0.763158 +vt 0.314103 0.921053 +vt 0.314103 0.868421 +vt 0.314103 0.789474 +vt 0.314103 0.736842 +vt 0.314103 0.894737 +vt 0.000000 0.820175 +vt 0.000000 0.767544 +vt 0.000000 0.925439 +vt 0.000000 0.872807 +vt 0.000000 0.793860 +vt -0.000000 0.741228 +vt 0.000000 0.899123 +vt 0.000000 0.846491 +vt 0.993590 0.451754 +vt 0.974359 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.993590 0.293860 +vt 0.974359 0.324561 +vt 0.974359 0.289474 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.324561 +vt 0.942308 0.701754 +vt 0.923077 0.640351 +vt 0.974359 0.447368 +vt 0.993590 0.478070 +vt 0.974359 0.482456 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.974359 0.289474 +vt 0.993590 0.320175 +vt 0.974359 0.324561 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.482456 +vt 0.903846 0.451754 +vt 0.923077 0.447368 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.324561 +vt 0.993590 0.451754 +vt 0.974359 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.993590 0.293860 +vt 0.974359 0.324561 +vt 0.974359 0.289474 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.324561 +vt 0.903846 0.293860 +vt 0.923077 0.289474 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.478070 +vt 0.974359 0.482456 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.974359 0.289474 +vt 0.993590 0.320175 +vt 0.974359 0.324561 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.993590 0.504386 +vt 0.974359 0.535088 +vt 0.974359 0.500000 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.640351 +vt 0.903846 0.609649 +vt 0.923077 0.605263 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.324561 +vt 0.923077 0.482456 +vt 0.948718 0.543860 +vt 0.942308 0.491228 +vt 0.948718 0.491228 +vt 0.948718 0.596491 +vt 0.942308 0.543860 +vt 0.948718 0.649123 +vt 0.942308 0.596491 +vt 0.948718 0.701754 +vt 0.942308 0.649123 +vt 0.948718 0.333333 +vt 0.942308 0.280702 +vt 0.948718 0.280702 +vt 0.948718 0.385965 +vt 0.942308 0.333333 +vt 0.948718 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.640351 +vt 0.923077 0.482456 +vt 0.512821 0.350877 +vt 0.461538 0.385965 +vt 0.461538 0.350877 +vt 0.153846 0.350877 +vt 0.102564 0.385965 +vt 0.102564 0.350877 +vt 0.564103 0.350877 +vt 0.512821 0.385965 +vt 0.205128 0.350877 +vt 0.153846 0.385965 +vt 0.666667 0.350877 +vt 0.615385 0.385965 +vt 0.615385 0.350877 +vt 0.564103 0.385965 +vt 0.256410 0.350877 +vt 0.205128 0.385965 +vt 0.717949 0.350877 +vt 0.666667 0.385965 +vt 0.307692 0.350877 +vt 0.256410 0.385965 +vt 0.769231 0.350877 +vt 0.717949 0.385965 +vt 0.358974 0.350877 +vt 0.307692 0.385965 +vt 0.820513 0.350877 +vt 0.769231 0.385965 +vt 0.410256 0.350877 +vt 0.358974 0.385965 +vt 0.051282 0.350877 +vt 0.000000 0.385965 +vt 0.000000 0.350877 +vt 0.410256 0.385965 +vt 0.051282 0.385965 +vt 0.820513 0.385965 +vt 0.974359 0.280702 +vt 0.717949 0.456140 +vt 0.256410 0.385965 +vt 0.717949 0.473684 +vt 0.410256 0.456140 +vt 0.314103 0.947368 +vt 0.000000 0.837719 +vt 0.000000 0.785088 +vt 0.000000 0.942982 +vt 0.000000 0.890351 +vt 0.000000 0.811404 +vt 0.000000 0.758772 +vt 0.000000 0.916667 +vt 0.000000 0.864035 +vt 0.993590 0.478070 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.320175 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.903846 0.583333 +vt 0.903846 0.688596 +vt 0.903846 0.425439 +vt 0.923077 0.482456 +vt 0.923077 0.535088 +vt 0.993590 0.451754 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.293860 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.923077 0.640351 +vt 0.903846 0.688596 +vt 0.923077 0.377193 +vt 0.903846 0.425439 +vt 0.903846 0.478070 +vt 0.923077 0.535088 +vt 0.993590 0.478070 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.320175 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.923077 0.640351 +vt 0.903846 0.688596 +vt 0.903846 0.320175 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.993590 0.451754 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.293860 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.530702 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.903846 0.635965 +vt 0.903846 0.688596 +vt 0.923077 0.377193 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.903846 0.688596 +vt 0.923077 0.324561 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.820513 0.385965 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.5000 -0.7071 0.5000 +vn 0.5000 0.7071 0.5000 +vn 0.5000 -0.7071 -0.5000 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 -0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.8944 -0.4472 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.5000 -0.5000 -0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.5000 0.5000 -0.7071 +vn 0.5000 0.5000 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.5000 0.5000 0.7071 +vn -0.5000 0.5000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn -0.0000 -0.7071 0.7071 +s off +f 283/348/71 279/349/71 275/350/71 +f 293/351/72 297/352/72 285/353/72 +f 335/354/73 334/355/73 333/356/73 +f 339/357/74 337/358/74 338/359/74 +f 336/360/75 339/357/75 334/355/75 +f 333/361/76 337/358/76 335/362/76 +f 340/363/75 336/360/75 341/364/75 +f 334/355/75 339/357/75 344/365/75 +f 339/357/77 343/366/77 344/367/77 +f 335/362/76 337/358/76 342/368/76 +f 343/366/71 352/369/71 344/367/71 +f 342/370/76 348/371/76 335/372/76 +f 338/359/76 333/361/76 343/373/76 +f 359/374/75 357/375/75 358/376/75 +f 355/377/76 354/378/76 353/379/76 +f 333/380/76 351/381/76 343/366/76 +f 336/382/75 349/383/75 341/384/75 +f 344/367/75 346/385/75 334/386/75 +f 335/387/71 347/388/71 336/382/71 +f 333/389/72 346/385/72 345/390/72 +f 342/370/72 349/383/72 350/391/72 +f 340/363/78 342/370/78 337/358/78 +f 356/392/73 359/374/73 354/378/73 +f 353/393/74 357/375/74 355/394/74 +f 360/395/73 356/392/73 361/396/73 +f 354/378/73 359/374/73 364/397/73 +f 359/374/79 363/398/79 364/399/79 +f 355/394/74 357/375/74 362/400/74 +f 364/399/71 371/401/71 372/402/71 +f 362/403/74 368/404/74 355/405/74 +f 358/376/74 353/393/74 363/406/74 +f 353/407/74 371/401/74 363/398/74 +f 356/408/73 369/409/73 361/410/73 +f 364/399/73 366/411/73 354/412/73 +f 356/408/71 368/413/71 367/414/71 +f 354/412/72 365/415/72 353/416/72 +f 361/410/72 370/417/72 362/403/72 +f 360/395/80 362/403/80 357/375/80 +f 375/418/74 374/419/74 373/420/74 +f 379/421/73 377/422/73 378/423/73 +f 376/424/76 379/421/76 374/419/76 +f 373/425/75 377/422/75 375/426/75 +f 380/427/76 376/424/76 381/428/76 +f 374/419/76 379/421/76 384/429/76 +f 378/423/81 384/430/81 379/421/81 +f 375/426/75 377/422/75 382/431/75 +f 383/432/71 392/433/71 384/430/71 +f 382/434/75 388/435/75 375/436/75 +f 378/423/75 373/425/75 383/437/75 +f 399/438/76 397/439/76 398/440/76 +f 395/441/75 394/442/75 393/443/75 +f 373/444/75 391/445/75 383/432/75 +f 376/446/76 389/447/76 381/448/76 +f 384/430/76 386/449/76 374/450/76 +f 375/451/71 387/452/71 376/446/71 +f 373/453/72 386/449/72 385/454/72 +f 382/434/72 389/447/72 390/455/72 +f 377/422/82 381/448/82 382/434/82 +f 396/456/74 399/438/74 394/442/74 +f 393/457/73 397/439/73 395/458/73 +f 400/459/74 396/456/74 401/460/74 +f 394/442/74 399/438/74 404/461/74 +f 398/440/83 404/462/83 399/438/83 +f 395/458/73 397/439/73 402/463/73 +f 404/462/71 411/464/71 412/465/71 +f 402/466/73 408/467/73 395/468/73 +f 398/440/73 393/457/73 403/469/73 +f 393/470/73 411/464/73 403/471/73 +f 396/472/74 409/473/74 401/474/74 +f 404/462/74 406/475/74 394/476/74 +f 396/472/71 408/477/71 407/478/71 +f 394/476/72 405/479/72 393/480/72 +f 401/474/72 410/481/72 402/466/72 +f 400/459/84 402/466/84 397/439/84 +f 447/482/71 459/483/71 455/484/71 +f 429/485/72 433/486/72 437/487/72 +f 501/488/72 505/489/72 493/490/72 +f 519/491/71 515/492/71 511/493/71 +f 553/494/73 552/495/73 554/496/73 +f 544/497/75 550/498/75 546/499/75 +f 551/500/73 556/501/73 552/495/73 +f 551/500/73 545/502/73 543/503/73 +f 547/504/75 546/499/75 548/505/75 +f 544/497/75 541/506/75 542/507/75 +f 569/508/74 568/509/74 570/510/74 +f 560/511/76 566/512/76 562/513/76 +f 567/514/74 572/515/74 568/509/74 +f 567/514/74 561/516/74 559/517/74 +f 563/518/76 562/513/76 564/519/76 +f 560/511/76 557/520/76 558/521/76 +f 574/522/85 589/523/85 573/524/85 +f 580/525/85 589/526/85 596/527/85 +f 578/528/85 595/529/85 594/530/85 +f 577/531/85 592/532/85 576/533/85 +f 575/534/85 590/535/85 574/522/85 +f 580/525/85 595/536/85 579/537/85 +f 578/528/85 593/538/85 577/539/85 +f 575/534/85 592/540/85 591/541/85 +f 598/542/85 599/543/85 601/544/85 +f 607/545/71 606/546/71 605/547/71 +f 611/548/86 609/549/86 610/550/86 +f 606/551/87 612/552/87 611/553/87 +f 605/554/88 609/549/88 607/545/88 +f 607/545/89 612/552/89 608/555/89 +f 606/551/85 610/556/85 605/557/85 +f 615/558/71 614/559/71 613/560/71 +f 620/561/72 623/562/72 619/563/72 +f 616/564/87 619/563/87 614/559/87 +f 613/565/88 617/566/88 615/567/88 +f 615/568/89 620/569/89 616/570/89 +f 614/571/85 618/572/85 613/573/85 +f 621/574/89 628/575/89 624/576/89 +f 618/577/72 621/578/72 617/566/72 +f 617/579/72 624/576/72 620/569/72 +f 619/580/72 622/581/72 618/572/72 +f 623/582/85 626/583/85 622/581/85 +f 624/584/87 627/585/87 623/562/87 +f 622/586/88 625/587/88 621/578/88 +f 635/588/72 633/589/72 634/590/72 +f 631/591/89 636/592/89 632/593/89 +f 630/594/85 634/590/85 629/595/85 +f 632/596/87 635/588/87 630/597/87 +f 629/598/88 633/589/88 631/599/88 +f 639/600/71 638/601/71 637/602/71 +f 643/603/90 641/604/90 642/605/90 +f 640/606/87 643/603/87 638/601/87 +f 639/607/89 644/608/89 640/606/89 +f 637/609/85 643/603/85 642/610/85 +f 647/611/71 646/612/71 645/613/71 +f 651/614/91 649/615/91 650/616/91 +f 648/617/89 649/615/89 652/618/89 +f 646/619/85 650/616/85 645/613/85 +f 645/613/88 649/615/88 647/611/88 +f 702/620/72 703/621/72 701/622/72 +f 705/623/71 707/624/71 706/625/71 +f 705/626/88 703/621/88 716/627/88 +f 707/628/89 717/629/89 706/630/89 +f 702/620/87 708/631/87 704/632/87 +f 703/621/88 706/633/88 701/622/88 +f 704/632/92 716/634/92 703/621/92 +f 714/635/88 727/636/88 710/637/88 +f 701/622/88 706/633/88 711/638/88 +f 707/624/87 702/620/87 712/639/87 +f 713/640/89 725/641/89 714/642/89 +f 705/643/85 719/644/85 708/645/85 +f 709/646/87 726/647/87 713/640/87 +f 704/632/87 708/631/87 715/648/87 +f 701/622/93 712/649/93 702/620/93 +f 712/649/87 718/650/87 707/628/87 +f 716/634/88 720/651/88 705/652/88 +f 715/653/89 724/654/89 716/634/89 +f 706/655/88 721/656/88 711/657/88 +f 708/645/87 723/658/87 715/653/87 +f 711/657/85 722/659/85 712/649/85 +f 710/637/85 728/660/85 709/646/85 +f 732/661/88 735/662/88 730/663/88 +f 731/664/89 733/665/89 732/666/89 +f 729/667/87 734/668/87 731/664/87 +f 730/663/85 736/669/85 729/667/85 +f 740/670/88 743/671/88 738/672/88 +f 739/673/89 741/674/89 740/675/89 +f 737/676/87 742/677/87 739/673/87 +f 738/672/85 744/678/85 737/676/85 +f 923/679/71 922/680/71 921/681/71 +f 928/682/72 931/683/72 927/684/72 +f 924/685/87 927/684/87 922/680/87 +f 921/686/88 925/687/88 923/688/88 +f 923/689/89 928/690/89 924/691/89 +f 922/692/85 926/693/85 921/694/85 +f 929/695/89 936/696/89 932/697/89 +f 926/698/72 929/699/72 925/687/72 +f 925/700/72 932/697/72 928/690/72 +f 927/701/72 930/702/72 926/693/72 +f 931/703/85 934/704/85 930/702/85 +f 932/705/87 935/706/87 931/683/87 +f 930/707/88 933/708/88 929/699/88 +f 951/709/71 947/710/71 943/711/71 +f 961/712/72 965/713/72 953/714/72 +f 970/715/87 971/716/87 969/717/87 +f 973/718/88 975/719/88 974/720/88 +f 973/721/72 971/716/72 984/722/72 +f 975/723/89 985/724/89 974/725/89 +f 970/715/71 976/726/71 972/727/71 +f 971/716/72 974/728/72 969/717/72 +f 972/727/75 984/729/75 971/716/75 +f 982/730/72 995/731/72 978/732/72 +f 969/717/72 974/728/72 979/733/72 +f 975/719/71 970/715/71 980/734/71 +f 981/735/89 993/736/89 982/737/89 +f 973/738/85 987/739/85 976/740/85 +f 977/741/71 994/742/71 981/735/71 +f 972/727/71 976/726/71 983/743/71 +f 969/717/74 980/744/74 970/715/74 +f 980/744/71 986/745/71 975/723/71 +f 984/729/72 988/746/72 973/747/72 +f 983/748/89 992/749/89 984/729/89 +f 974/750/72 989/751/72 979/752/72 +f 976/740/71 991/753/71 983/748/71 +f 979/752/85 990/754/85 980/744/85 +f 978/732/85 996/755/85 977/741/85 +f 1000/756/72 1003/757/72 998/758/72 +f 999/759/89 1001/760/89 1000/761/89 +f 997/762/71 1002/763/71 999/759/71 +f 998/758/85 1004/764/85 997/762/85 +f 1008/765/72 1011/766/72 1006/767/72 +f 1007/768/89 1009/769/89 1008/770/89 +f 1005/771/71 1010/772/71 1007/768/71 +f 1006/767/85 1012/773/85 1005/771/85 +f 1014/774/88 1015/775/88 1013/776/88 +f 1017/777/87 1019/778/87 1018/779/87 +f 1017/780/71 1015/775/71 1028/781/71 +f 1019/782/89 1029/783/89 1018/784/89 +f 1014/774/72 1020/785/72 1016/786/72 +f 1015/775/71 1018/787/71 1013/776/71 +f 1016/786/73 1028/788/73 1015/775/73 +f 1026/789/71 1039/790/71 1022/791/71 +f 1013/776/71 1018/787/71 1023/792/71 +f 1019/778/72 1014/774/72 1024/793/72 +f 1025/794/89 1037/795/89 1026/796/89 +f 1017/797/85 1031/798/85 1020/799/85 +f 1021/800/72 1038/801/72 1025/794/72 +f 1016/786/72 1020/785/72 1027/802/72 +f 1013/776/76 1024/803/76 1014/774/76 +f 1024/803/72 1030/804/72 1019/782/72 +f 1028/788/71 1032/805/71 1017/806/71 +f 1027/807/89 1036/808/89 1028/788/89 +f 1018/809/71 1033/810/71 1023/811/71 +f 1020/799/72 1035/812/72 1027/807/72 +f 1023/811/85 1034/813/85 1024/803/85 +f 1022/791/85 1040/814/85 1021/800/85 +f 1044/815/71 1047/816/71 1042/817/71 +f 1043/818/89 1045/819/89 1044/820/89 +f 1041/821/72 1046/822/72 1043/818/72 +f 1042/817/85 1048/823/85 1041/821/85 +f 1052/824/71 1055/825/71 1050/826/71 +f 1051/827/89 1053/828/89 1052/829/89 +f 1049/830/72 1054/831/72 1051/827/72 +f 1050/826/85 1056/832/85 1049/830/85 +f 271/833/71 270/834/71 269/835/71 +f 269/835/71 284/836/71 271/833/71 +f 284/836/71 283/348/71 271/833/71 +f 283/348/71 282/837/71 279/349/71 +f 282/837/71 281/838/71 279/349/71 +f 281/838/71 280/839/71 279/349/71 +f 279/349/71 278/840/71 275/350/71 +f 278/840/71 277/841/71 275/350/71 +f 277/841/71 276/842/71 275/350/71 +f 275/350/71 274/843/71 273/844/71 +f 273/844/71 272/845/71 271/833/71 +f 275/350/71 273/844/71 271/833/71 +f 271/833/71 283/348/71 275/350/71 +f 285/353/72 286/846/72 287/847/72 +f 287/847/72 288/848/72 289/849/72 +f 289/849/72 290/850/72 291/851/72 +f 291/851/72 292/852/72 293/351/72 +f 293/351/72 294/853/72 297/352/72 +f 294/853/72 295/854/72 297/352/72 +f 295/854/72 296/855/72 297/352/72 +f 297/352/72 298/856/72 285/353/72 +f 298/856/72 299/857/72 285/353/72 +f 299/857/72 300/858/72 285/353/72 +f 285/353/72 287/847/72 289/849/72 +f 289/849/72 291/851/72 293/351/72 +f 285/353/72 289/849/72 293/351/72 +f 335/354/73 336/360/73 334/355/73 +f 339/357/74 340/363/74 337/358/74 +f 336/360/75 340/363/75 339/357/75 +f 333/361/76 338/359/76 337/358/76 +f 339/357/77 338/359/77 343/366/77 +f 343/366/71 351/381/71 352/369/71 +f 342/370/76 350/391/76 348/371/76 +f 359/374/75 360/395/75 357/375/75 +f 355/377/76 356/392/76 354/378/76 +f 333/380/76 345/859/76 351/381/76 +f 336/382/75 347/388/75 349/383/75 +f 344/367/75 352/369/75 346/385/75 +f 335/387/71 348/860/71 347/388/71 +f 333/389/72 334/386/72 346/385/72 +f 342/370/72 341/384/72 349/383/72 +f 340/363/78 341/384/78 342/370/78 +f 356/392/73 360/395/73 359/374/73 +f 353/393/74 358/376/74 357/375/74 +f 359/374/79 358/376/79 363/398/79 +f 364/399/71 363/398/71 371/401/71 +f 362/403/74 370/417/74 368/404/74 +f 353/407/74 365/861/74 371/401/74 +f 356/408/73 367/414/73 369/409/73 +f 364/399/73 372/402/73 366/411/73 +f 356/408/71 355/862/71 368/413/71 +f 354/412/72 366/411/72 365/415/72 +f 361/410/72 369/409/72 370/417/72 +f 360/395/80 361/410/80 362/403/80 +f 375/418/74 376/424/74 374/419/74 +f 379/421/73 380/427/73 377/422/73 +f 376/424/76 380/427/76 379/421/76 +f 373/425/75 378/423/75 377/422/75 +f 378/423/81 383/432/81 384/430/81 +f 383/432/71 391/445/71 392/433/71 +f 382/434/75 390/455/75 388/435/75 +f 399/438/76 400/459/76 397/439/76 +f 395/441/75 396/456/75 394/442/75 +f 373/444/75 385/863/75 391/445/75 +f 376/446/76 387/452/76 389/447/76 +f 384/430/76 392/433/76 386/449/76 +f 375/451/71 388/864/71 387/452/71 +f 373/453/72 374/450/72 386/449/72 +f 382/434/72 381/448/72 389/447/72 +f 377/422/82 380/427/82 381/448/82 +f 396/456/74 400/459/74 399/438/74 +f 393/457/73 398/440/73 397/439/73 +f 398/440/83 403/471/83 404/462/83 +f 404/462/71 403/471/71 411/464/71 +f 402/466/73 410/481/73 408/467/73 +f 393/470/73 405/865/73 411/464/73 +f 396/472/74 407/478/74 409/473/74 +f 404/462/74 412/465/74 406/475/74 +f 396/472/71 395/866/71 408/477/71 +f 394/476/72 406/475/72 405/479/72 +f 401/474/72 409/473/72 410/481/72 +f 400/459/84 401/474/84 402/466/84 +f 447/482/71 446/867/71 459/483/71 +f 446/867/71 445/868/71 459/483/71 +f 445/868/71 460/869/71 459/483/71 +f 459/483/71 458/870/71 457/871/71 +f 457/871/71 456/872/71 455/484/71 +f 455/484/71 454/873/71 453/874/71 +f 453/874/71 452/875/71 455/484/71 +f 452/875/71 451/876/71 455/484/71 +f 451/876/71 450/877/71 449/878/71 +f 449/878/71 448/879/71 447/482/71 +f 459/483/71 457/871/71 455/484/71 +f 451/876/71 449/878/71 455/484/71 +f 449/878/71 447/482/71 455/484/71 +f 429/485/72 430/880/72 433/486/72 +f 430/880/72 431/881/72 433/486/72 +f 431/881/72 432/882/72 433/486/72 +f 433/486/72 434/883/72 435/884/72 +f 435/884/72 436/885/72 433/486/72 +f 436/885/72 437/487/72 433/486/72 +f 437/487/72 438/886/72 439/887/72 +f 439/887/72 440/888/72 441/889/72 +f 441/889/72 442/890/72 443/891/72 +f 443/891/72 444/892/72 429/485/72 +f 437/487/72 439/887/72 429/485/72 +f 439/887/72 441/889/72 429/485/72 +f 441/889/72 443/891/72 429/485/72 +f 493/490/72 494/893/72 495/894/72 +f 495/894/72 496/895/72 497/896/72 +f 497/896/72 498/897/72 499/898/72 +f 499/898/72 500/899/72 501/488/72 +f 501/488/72 502/900/72 505/489/72 +f 502/900/72 503/901/72 505/489/72 +f 503/901/72 504/902/72 505/489/72 +f 505/489/72 506/903/72 507/904/72 +f 507/904/72 508/905/72 505/489/72 +f 508/905/72 493/490/72 505/489/72 +f 493/490/72 495/894/72 497/896/72 +f 497/896/72 499/898/72 493/490/72 +f 499/898/72 501/488/72 493/490/72 +f 511/493/71 510/906/71 509/907/71 +f 509/907/71 524/908/71 511/493/71 +f 524/908/71 523/909/71 511/493/71 +f 523/909/71 522/910/71 521/911/71 +f 521/911/71 520/912/71 519/491/71 +f 519/491/71 518/913/71 515/492/71 +f 518/913/71 517/914/71 515/492/71 +f 517/914/71 516/915/71 515/492/71 +f 515/492/71 514/916/71 513/917/71 +f 513/917/71 512/918/71 511/493/71 +f 523/909/71 521/911/71 511/493/71 +f 521/911/71 519/491/71 511/493/71 +f 515/492/71 513/917/71 511/493/71 +f 547/504/75 541/506/75 544/497/75 +f 544/497/75 549/919/75 550/498/75 +f 546/499/75 547/504/75 544/497/75 +f 553/494/73 545/502/73 551/500/73 +f 551/500/73 555/920/73 556/501/73 +f 552/495/73 553/494/73 551/500/73 +f 563/518/76 557/520/76 560/511/76 +f 560/511/76 565/921/76 566/512/76 +f 562/513/76 563/518/76 560/511/76 +f 569/508/74 561/516/74 567/514/74 +f 567/514/74 571/922/74 572/515/74 +f 568/509/74 569/508/74 567/514/74 +f 574/522/85 590/923/85 589/523/85 +f 580/525/85 573/524/85 589/526/85 +f 578/528/85 579/537/85 595/529/85 +f 577/531/85 593/924/85 592/532/85 +f 575/534/85 591/925/85 590/535/85 +f 580/525/85 596/926/85 595/536/85 +f 578/528/85 594/927/85 593/538/85 +f 575/534/85 576/533/85 592/540/85 +f 598/542/85 597/928/85 599/543/85 +f 599/543/85 600/929/85 601/544/85 +f 601/544/85 602/930/85 603/931/85 +f 603/931/85 604/932/85 601/544/85 +f 604/932/85 598/542/85 601/544/85 +f 607/545/71 608/555/71 606/546/71 +f 611/548/86 612/552/86 609/549/86 +f 606/551/87 608/555/87 612/552/87 +f 605/554/88 610/933/88 609/549/88 +f 607/545/89 609/549/89 612/552/89 +f 606/551/85 611/553/85 610/556/85 +f 615/558/71 616/564/71 614/559/71 +f 620/561/72 624/584/72 623/562/72 +f 616/564/87 620/561/87 619/563/87 +f 613/565/88 618/577/88 617/566/88 +f 615/568/89 617/579/89 620/569/89 +f 614/571/85 619/580/85 618/572/85 +f 621/574/89 625/934/89 628/575/89 +f 618/577/72 622/586/72 621/578/72 +f 617/579/72 621/574/72 624/576/72 +f 619/580/72 623/582/72 622/581/72 +f 623/582/85 627/935/85 626/583/85 +f 624/584/87 628/936/87 627/585/87 +f 622/586/88 626/937/88 625/587/88 +f 635/588/72 636/592/72 633/589/72 +f 631/591/89 633/589/89 636/592/89 +f 630/594/85 635/588/85 634/590/85 +f 632/596/87 636/592/87 635/588/87 +f 629/598/88 634/590/88 633/589/88 +f 639/600/71 640/606/71 638/601/71 +f 643/603/90 644/608/90 641/604/90 +f 640/606/87 644/608/87 643/603/87 +f 639/607/89 641/938/89 644/608/89 +f 637/609/85 638/601/85 643/603/85 +f 647/611/71 648/939/71 646/612/71 +f 651/614/91 652/940/91 649/615/91 +f 648/617/89 647/611/89 649/615/89 +f 646/619/85 651/941/85 650/616/85 +f 645/613/88 650/616/88 649/615/88 +f 702/620/72 704/632/72 703/621/72 +f 705/623/71 708/631/71 707/624/71 +f 707/628/89 718/650/89 717/629/89 +f 702/620/87 707/624/87 708/631/87 +f 703/621/88 705/626/88 706/633/88 +f 704/632/92 715/653/92 716/634/92 +f 714/635/88 725/942/88 727/636/88 +f 713/640/89 726/647/89 725/641/89 +f 705/643/85 720/943/85 719/644/85 +f 709/646/87 728/660/87 726/647/87 +f 701/622/93 711/657/93 712/649/93 +f 712/649/87 722/659/87 718/650/87 +f 716/634/88 724/654/88 720/651/88 +f 715/653/89 723/658/89 724/654/89 +f 706/655/88 717/944/88 721/656/88 +f 708/645/87 719/644/87 723/658/87 +f 711/657/85 721/656/85 722/659/85 +f 710/637/85 727/636/85 728/660/85 +f 732/661/88 733/945/88 735/662/88 +f 731/664/89 734/668/89 733/665/89 +f 729/667/87 736/669/87 734/668/87 +f 730/663/85 735/662/85 736/669/85 +f 740/670/88 741/946/88 743/671/88 +f 739/673/89 742/677/89 741/674/89 +f 737/676/87 744/678/87 742/677/87 +f 738/672/85 743/671/85 744/678/85 +f 923/679/71 924/685/71 922/680/71 +f 928/682/72 932/705/72 931/683/72 +f 924/685/87 928/682/87 927/684/87 +f 921/686/88 926/698/88 925/687/88 +f 923/689/89 925/700/89 928/690/89 +f 922/692/85 927/701/85 926/693/85 +f 929/695/89 933/947/89 936/696/89 +f 926/698/72 930/707/72 929/699/72 +f 925/700/72 929/695/72 932/697/72 +f 927/701/72 931/703/72 930/702/72 +f 931/703/85 935/948/85 934/704/85 +f 932/705/87 936/949/87 935/706/87 +f 930/707/88 934/950/88 933/708/88 +f 939/951/71 938/952/71 937/953/71 +f 937/953/71 952/954/71 939/951/71 +f 952/954/71 951/709/71 939/951/71 +f 951/709/71 950/955/71 947/710/71 +f 950/955/71 949/956/71 947/710/71 +f 949/956/71 948/957/71 947/710/71 +f 947/710/71 946/958/71 943/711/71 +f 946/958/71 945/959/71 943/711/71 +f 945/959/71 944/960/71 943/711/71 +f 943/711/71 942/961/71 941/962/71 +f 941/962/71 940/963/71 939/951/71 +f 943/711/71 941/962/71 939/951/71 +f 939/951/71 951/709/71 943/711/71 +f 953/714/72 954/964/72 955/965/72 +f 955/965/72 956/966/72 957/967/72 +f 957/967/72 958/968/72 959/969/72 +f 959/969/72 960/970/72 961/712/72 +f 961/712/72 962/971/72 965/713/72 +f 962/971/72 963/972/72 965/713/72 +f 963/972/72 964/973/72 965/713/72 +f 965/713/72 966/974/72 953/714/72 +f 966/974/72 967/975/72 953/714/72 +f 967/975/72 968/976/72 953/714/72 +f 953/714/72 955/965/72 957/967/72 +f 957/967/72 959/969/72 961/712/72 +f 953/714/72 957/967/72 961/712/72 +f 970/715/87 972/727/87 971/716/87 +f 973/718/88 976/726/88 975/719/88 +f 975/723/89 986/745/89 985/724/89 +f 970/715/71 975/719/71 976/726/71 +f 971/716/72 973/721/72 974/728/72 +f 972/727/75 983/748/75 984/729/75 +f 982/730/72 993/977/72 995/731/72 +f 981/735/89 994/742/89 993/736/89 +f 973/738/85 988/978/85 987/739/85 +f 977/741/71 996/755/71 994/742/71 +f 969/717/74 979/752/74 980/744/74 +f 980/744/71 990/754/71 986/745/71 +f 984/729/72 992/749/72 988/746/72 +f 983/748/89 991/753/89 992/749/89 +f 974/750/72 985/979/72 989/751/72 +f 976/740/71 987/739/71 991/753/71 +f 979/752/85 989/751/85 990/754/85 +f 978/732/85 995/731/85 996/755/85 +f 1000/756/72 1001/980/72 1003/757/72 +f 999/759/89 1002/763/89 1001/760/89 +f 997/762/71 1004/764/71 1002/763/71 +f 998/758/85 1003/757/85 1004/764/85 +f 1008/765/72 1009/981/72 1011/766/72 +f 1007/768/89 1010/772/89 1009/769/89 +f 1005/771/71 1012/773/71 1010/772/71 +f 1006/767/85 1011/766/85 1012/773/85 +f 1014/774/88 1016/786/88 1015/775/88 +f 1017/777/87 1020/785/87 1019/778/87 +f 1019/782/89 1030/804/89 1029/783/89 +f 1014/774/72 1019/778/72 1020/785/72 +f 1015/775/71 1017/780/71 1018/787/71 +f 1016/786/73 1027/807/73 1028/788/73 +f 1026/789/71 1037/982/71 1039/790/71 +f 1025/794/89 1038/801/89 1037/795/89 +f 1017/797/85 1032/983/85 1031/798/85 +f 1021/800/72 1040/814/72 1038/801/72 +f 1013/776/76 1023/811/76 1024/803/76 +f 1024/803/72 1034/813/72 1030/804/72 +f 1028/788/71 1036/808/71 1032/805/71 +f 1027/807/89 1035/812/89 1036/808/89 +f 1018/809/71 1029/984/71 1033/810/71 +f 1020/799/72 1031/798/72 1035/812/72 +f 1023/811/85 1033/810/85 1034/813/85 +f 1022/791/85 1039/790/85 1040/814/85 +f 1044/815/71 1045/985/71 1047/816/71 +f 1043/818/89 1046/822/89 1045/819/89 +f 1041/821/72 1048/823/72 1046/822/72 +f 1042/817/85 1047/816/85 1048/823/85 +f 1052/824/71 1053/986/71 1055/825/71 +f 1051/827/89 1054/831/89 1053/828/89 +f 1049/830/72 1056/832/72 1054/831/72 +f 1050/826/85 1055/825/85 1056/832/85 +s 1 +f 283/987/75 298/988/94 282/989/94 +f 276/990/95 291/991/76 275/992/76 +f 284/993/96 299/994/75 283/987/75 +f 277/995/85 292/996/95 276/990/95 +f 270/997/97 285/998/89 269/999/89 +f 269/999/89 300/1000/96 284/993/96 +f 278/1001/98 293/1002/85 277/995/85 +f 271/1003/73 286/1004/97 270/997/97 +f 279/1005/74 294/1006/98 278/1001/98 +f 272/1007/99 287/1008/73 271/1003/73 +f 280/1009/100 295/1010/74 279/1005/74 +f 273/1011/88 288/1012/99 272/1007/99 +f 281/1013/87 296/1014/100 280/1009/100 +f 274/1015/101 289/1016/88 273/1017/88 +f 282/989/94 297/1018/87 281/1013/87 +f 275/992/76 290/1019/101 274/1015/101 +f 315/1020/75 330/1021/94 314/1022/94 +f 308/1023/95 323/1024/76 307/1025/76 +f 316/1026/96 331/1027/75 315/1020/75 +f 309/1028/85 324/1029/95 308/1023/95 +f 302/1030/97 317/1031/89 301/1032/89 +f 301/1032/89 332/1033/96 316/1026/96 +f 310/1034/98 325/1035/85 309/1028/85 +f 303/1036/73 318/1037/97 302/1030/97 +f 311/1038/74 326/1039/98 310/1034/98 +f 304/1040/99 319/1041/73 303/1036/73 +f 312/1042/100 327/1043/74 311/1038/74 +f 305/1044/88 320/1045/99 304/1040/99 +f 313/1046/87 328/1047/100 312/1042/100 +f 306/1048/101 321/1049/88 305/1050/88 +f 314/1022/94 329/1051/87 313/1046/87 +f 307/1025/76 322/1052/101 306/1048/101 +f 427/1053/75 442/1054/94 426/1055/94 +f 420/1056/95 435/1057/76 419/1058/76 +f 428/1059/96 443/1060/75 427/1053/75 +f 421/1061/85 436/1062/95 420/1056/95 +f 414/1063/97 429/1064/89 413/1065/89 +f 413/1065/89 444/1066/96 428/1059/96 +f 422/1067/98 437/1068/85 421/1061/85 +f 415/1069/73 430/1070/97 414/1063/97 +f 423/1071/74 438/1072/98 422/1067/98 +f 416/1073/99 431/1074/73 415/1069/73 +f 424/1075/100 439/1076/74 423/1071/74 +f 417/1077/88 432/1078/99 416/1073/99 +f 425/1079/87 440/1080/100 424/1075/100 +f 418/1081/101 433/1082/88 417/1083/88 +f 426/1055/94 441/1084/87 425/1079/87 +f 419/1058/76 434/1085/101 418/1081/101 +f 459/1086/75 474/1087/94 458/1088/94 +f 452/1089/95 467/1090/76 451/1091/76 +f 460/1092/96 475/1093/75 459/1086/75 +f 453/1094/85 468/1095/95 452/1089/95 +f 446/1096/97 461/1097/89 445/1098/89 +f 445/1098/89 476/1099/96 460/1092/96 +f 454/1100/98 469/1101/85 453/1094/85 +f 447/1102/73 462/1103/97 446/1096/97 +f 455/1104/74 470/1105/98 454/1100/98 +f 448/1106/99 463/1107/73 447/1102/73 +f 456/1108/100 471/1109/74 455/1104/74 +f 449/1110/88 464/1111/99 448/1106/99 +f 457/1112/87 472/1113/100 456/1108/100 +f 450/1114/101 465/1115/88 449/1116/88 +f 458/1088/94 473/1117/87 457/1112/87 +f 451/1091/76 466/1118/101 450/1114/101 +f 488/1119/100 503/1120/74 487/1121/74 +f 481/1122/88 496/1123/99 480/1124/99 +f 489/1125/87 504/1126/100 488/1119/100 +f 482/1127/101 497/1128/88 481/1129/88 +f 490/1130/94 505/1131/87 489/1125/87 +f 483/1132/76 498/1133/101 482/1127/101 +f 491/1134/75 506/1135/94 490/1130/94 +f 484/1136/95 499/1137/76 483/1132/76 +f 492/1138/96 507/1139/75 491/1134/75 +f 485/1140/85 500/1141/95 484/1136/95 +f 478/1142/97 493/1143/89 477/1144/89 +f 477/1144/89 508/1145/96 492/1138/96 +f 486/1146/98 501/1147/85 485/1140/85 +f 479/1148/73 494/1149/97 478/1142/97 +f 487/1121/74 502/1150/98 486/1146/98 +f 480/1124/99 495/1151/73 479/1148/73 +f 520/1152/100 535/1153/74 519/1154/74 +f 513/1155/88 528/1156/99 512/1157/99 +f 521/1158/87 536/1159/100 520/1152/100 +f 514/1160/101 529/1161/88 513/1162/88 +f 522/1163/94 537/1164/87 521/1158/87 +f 515/1165/76 530/1166/101 514/1160/101 +f 523/1167/75 538/1168/94 522/1163/94 +f 516/1169/95 531/1170/76 515/1165/76 +f 524/1171/96 539/1172/75 523/1167/75 +f 517/1173/85 532/1174/95 516/1169/95 +f 510/1175/97 525/1176/89 509/1177/89 +f 509/1177/89 540/1178/96 524/1171/96 +f 518/1179/98 533/1180/85 517/1173/85 +f 511/1181/73 526/1182/97 510/1175/97 +f 519/1154/74 534/1183/98 518/1179/98 +f 512/1157/99 527/1184/73 511/1181/73 +f 581/1185/72 574/522/91 573/524/72 +f 588/1186/90 573/524/72 580/525/90 +f 586/1187/102 579/537/87 578/528/102 +f 584/1188/103 577/531/71 576/533/103 +f 582/1189/91 575/534/88 574/522/91 +f 587/1190/87 580/525/90 579/537/87 +f 585/1191/71 578/528/102 577/539/71 +f 583/1192/88 576/533/103 575/534/88 +f 589/526/72 604/1193/90 596/527/90 +f 595/529/87 602/1194/102 594/530/102 +f 593/924/71 600/1195/103 592/532/103 +f 591/925/88 597/1196/91 590/535/91 +f 596/926/90 603/1197/87 595/536/87 +f 594/927/102 601/1198/71 593/538/71 +f 592/540/103 599/1199/88 591/541/88 +f 590/923/91 598/1200/72 589/523/72 +f 685/1201/104 700/1202/105 693/1203/104 +f 686/1204/73 693/1205/104 694/1206/73 +f 695/1207/106 686/1208/73 694/1209/73 +f 688/1210/92 695/1211/106 696/1212/92 +f 689/1213/107 696/1214/92 697/1215/107 +f 698/1216/75 689/1217/107 697/1218/107 +f 691/1219/108 698/1220/75 699/1221/108 +f 700/1222/105 691/1223/108 699/1224/108 +f 678/1225/91 676/1226/72 677/1227/72 +f 679/1228/88 675/1229/91 678/1225/91 +f 680/1230/103 674/1231/88 679/1228/88 +f 681/1232/71 673/1233/103 680/1230/103 +f 682/1234/102 672/1235/71 681/1236/71 +f 683/1237/87 671/1238/102 682/1234/102 +f 684/1239/90 670/1240/87 683/1237/87 +f 677/1227/72 669/1241/90 684/1239/90 +f 666/1242/74 659/1243/109 667/1244/109 +f 666/1245/74 657/1246/110 658/1247/74 +f 664/1248/93 657/1249/110 665/1250/110 +f 664/1251/93 655/1252/111 656/1253/93 +f 663/1254/111 654/1255/76 655/1256/111 +f 661/1257/112 654/1258/76 662/1259/76 +f 661/1260/112 660/1261/113 653/1262/112 +f 668/1263/113 659/1264/109 660/1265/113 +f 671/1238/109 662/1266/74 663/1254/109 +f 672/1235/113 663/1267/109 664/1251/113 +f 672/1268/113 665/1250/112 673/1233/112 +f 674/1231/76 665/1269/112 666/1245/76 +f 674/1231/76 667/1244/111 675/1229/111 +f 675/1229/111 668/1263/93 676/1226/93 +f 676/1226/93 661/1260/110 669/1241/110 +f 669/1241/110 662/1259/74 670/1240/74 +f 694/1206/75 684/1239/107 683/1237/75 +f 693/1203/107 677/1227/92 684/1239/107 +f 700/1222/92 678/1225/106 677/1227/92 +f 699/1221/106 679/1228/73 678/1225/106 +f 679/1228/73 697/1218/104 680/1230/104 +f 680/1230/104 696/1214/105 681/1232/105 +f 696/1212/105 682/1234/108 681/1236/105 +f 682/1234/108 694/1209/75 683/1237/75 +f 785/1270/104 784/1271/105 792/1272/105 +f 778/1273/73 785/1274/104 786/1275/73 +f 787/1276/106 778/1277/73 786/1278/73 +f 788/1279/92 779/1280/106 787/1281/106 +f 781/1282/107 788/1283/92 789/1284/107 +f 790/1285/75 781/1286/107 789/1287/107 +f 783/1288/108 790/1289/75 791/1290/108 +f 792/1291/105 783/1292/108 791/1293/108 +f 770/1294/91 768/1295/72 769/1296/72 +f 771/1297/88 767/1298/91 770/1294/91 +f 772/1299/103 766/1300/88 771/1297/88 +f 773/1301/71 765/1302/103 772/1299/103 +f 774/1303/102 764/1304/71 773/1305/71 +f 775/1306/87 763/1307/102 774/1303/102 +f 776/1308/90 762/1309/87 775/1306/87 +f 769/1296/72 761/1310/90 776/1308/90 +f 758/1311/74 751/1312/109 759/1313/109 +f 758/1314/74 749/1315/110 750/1316/74 +f 756/1317/93 749/1318/110 757/1319/110 +f 756/1320/93 747/1321/111 748/1322/93 +f 755/1323/111 746/1324/76 747/1325/111 +f 753/1326/112 746/1327/76 754/1328/76 +f 760/1329/113 745/1330/112 753/1331/112 +f 760/1332/113 751/1333/109 752/1334/113 +f 762/1309/74 755/1323/109 763/1307/109 +f 764/1304/113 755/1335/109 756/1320/113 +f 765/1302/112 756/1317/113 757/1319/112 +f 765/1302/112 758/1314/76 766/1300/76 +f 766/1300/76 759/1313/111 767/1298/111 +f 767/1298/111 760/1332/93 768/1295/93 +f 768/1295/93 753/1331/110 761/1310/110 +f 761/1310/110 754/1328/74 762/1309/74 +f 786/1275/75 776/1308/107 775/1306/75 +f 785/1270/107 769/1296/92 776/1308/107 +f 792/1291/92 770/1294/106 769/1296/92 +f 791/1290/106 771/1297/73 770/1294/106 +f 771/1297/73 789/1287/104 772/1299/104 +f 772/1299/104 788/1283/105 773/1301/105 +f 773/1305/105 787/1281/108 774/1303/108 +f 774/1303/108 786/1278/75 775/1306/75 +f 825/1336/104 840/1337/105 833/1338/104 +f 826/1339/73 833/1340/104 834/1341/73 +f 835/1342/106 826/1343/73 834/1344/73 +f 828/1345/92 835/1346/106 836/1347/92 +f 829/1348/107 836/1349/92 837/1350/107 +f 838/1351/75 829/1352/107 837/1353/107 +f 831/1354/108 838/1355/75 839/1356/108 +f 840/1357/105 831/1358/108 839/1359/108 +f 818/1360/91 816/1361/72 817/1362/72 +f 819/1363/88 815/1364/91 818/1360/91 +f 820/1365/103 814/1366/88 819/1363/88 +f 821/1367/71 813/1368/103 820/1365/103 +f 822/1369/102 812/1370/71 821/1371/71 +f 823/1372/87 811/1373/102 822/1369/102 +f 824/1374/90 810/1375/87 823/1372/87 +f 817/1362/72 809/1376/90 824/1374/90 +f 806/1377/74 799/1378/109 807/1379/109 +f 806/1380/74 797/1381/110 798/1382/74 +f 804/1383/93 797/1384/110 805/1385/110 +f 803/1386/111 796/1387/93 804/1388/93 +f 803/1389/111 794/1390/76 795/1391/111 +f 801/1392/112 794/1393/76 802/1394/76 +f 801/1395/112 800/1396/113 793/1397/112 +f 808/1398/113 799/1399/109 800/1400/113 +f 811/1373/109 802/1401/74 803/1389/109 +f 811/1373/109 804/1388/113 812/1370/113 +f 813/1368/112 804/1383/113 805/1385/112 +f 813/1368/112 806/1380/76 814/1366/76 +f 814/1366/76 807/1379/111 815/1364/111 +f 815/1364/111 808/1398/93 816/1361/93 +f 809/1376/110 808/1402/93 801/1395/110 +f 809/1376/110 802/1394/74 810/1375/74 +f 834/1341/75 824/1374/107 823/1372/75 +f 833/1338/107 817/1362/92 824/1374/107 +f 840/1357/92 818/1360/106 817/1362/92 +f 839/1356/106 819/1363/73 818/1360/106 +f 819/1363/73 837/1353/104 820/1365/104 +f 820/1365/104 836/1349/105 821/1367/105 +f 836/1347/105 822/1369/108 821/1371/105 +f 822/1369/108 834/1344/75 823/1372/75 +f 881/1403/104 880/1404/105 888/1405/105 +f 874/1406/73 881/1407/104 882/1408/73 +f 883/1409/106 874/1410/73 882/1411/73 +f 884/1412/92 875/1413/106 883/1414/106 +f 877/1415/107 884/1416/92 885/1417/107 +f 886/1418/75 877/1419/107 885/1420/107 +f 879/1421/108 886/1422/75 887/1423/108 +f 880/1424/105 887/1425/108 888/1426/105 +f 866/1427/91 864/1428/72 865/1429/72 +f 867/1430/88 863/1431/91 866/1427/91 +f 868/1432/103 862/1433/88 867/1430/88 +f 869/1434/71 861/1435/103 868/1432/103 +f 870/1436/102 860/1437/71 869/1438/71 +f 871/1439/87 859/1440/102 870/1436/102 +f 872/1441/90 858/1442/87 871/1439/87 +f 865/1429/72 857/1443/90 872/1441/90 +f 854/1444/74 847/1445/109 855/1446/109 +f 853/1447/110 846/1448/74 854/1449/74 +f 852/1450/93 845/1451/110 853/1452/110 +f 852/1453/93 843/1454/111 844/1455/93 +f 851/1456/111 842/1457/76 843/1458/111 +f 849/1459/112 842/1460/76 850/1461/76 +f 849/1462/112 848/1463/113 841/1464/112 +f 856/1465/113 847/1466/109 848/1467/113 +f 858/1442/74 851/1456/109 859/1440/109 +f 860/1437/113 851/1468/109 852/1453/113 +f 861/1435/112 852/1450/113 853/1452/112 +f 861/1435/112 854/1449/76 862/1433/76 +f 862/1433/76 855/1446/111 863/1431/111 +f 863/1431/111 856/1465/93 864/1428/93 +f 857/1443/110 856/1469/93 849/1462/110 +f 857/1443/110 850/1461/74 858/1442/74 +f 882/1408/75 872/1441/107 871/1439/75 +f 881/1403/107 865/1429/92 872/1441/107 +f 888/1426/92 866/1427/106 865/1429/92 +f 887/1423/106 867/1430/73 866/1427/106 +f 867/1430/73 885/1420/104 868/1432/104 +f 868/1432/104 884/1416/105 869/1434/105 +f 884/1412/105 870/1436/108 869/1438/105 +f 870/1436/108 882/1411/75 871/1439/75 +f 914/1470/91 912/1471/72 913/1472/72 +f 915/1473/88 911/1474/91 914/1470/91 +f 916/1475/103 910/1476/88 915/1473/88 +f 917/1477/71 909/1478/103 916/1475/103 +f 918/1479/102 908/1480/71 917/1481/71 +f 919/1482/87 907/1483/102 918/1479/102 +f 920/1484/90 906/1485/87 919/1482/87 +f 913/1472/72 905/1486/90 920/1484/90 +f 902/1487/74 895/1488/109 903/1489/109 +f 902/1490/74 893/1491/110 894/1492/74 +f 900/1493/93 893/1494/110 901/1495/110 +f 900/1496/93 891/1497/111 892/1498/93 +f 899/1499/111 890/1500/76 891/1501/111 +f 897/1502/112 890/1503/76 898/1504/76 +f 897/1505/112 896/1506/113 889/1507/112 +f 904/1508/113 895/1509/109 896/1510/113 +f 907/1483/109 898/1511/74 899/1499/109 +f 907/1483/109 900/1496/113 908/1480/113 +f 909/1478/112 900/1493/113 901/1495/112 +f 910/1476/76 901/1512/112 902/1490/76 +f 911/1474/111 902/1487/76 903/1489/111 +f 911/1474/111 904/1508/93 912/1471/93 +f 905/1486/110 904/1513/93 897/1505/110 +f 905/1486/110 898/1504/74 906/1485/74 +f 951/1514/75 966/1515/94 950/1516/94 +f 944/1517/95 959/1518/76 943/1519/76 +f 952/1520/96 967/1521/75 951/1514/75 +f 945/1522/85 960/1523/95 944/1517/95 +f 938/1524/97 953/1525/89 937/1526/89 +f 937/1526/89 968/1527/96 952/1520/96 +f 946/1528/98 961/1529/85 945/1522/85 +f 939/1530/73 954/1531/97 938/1524/97 +f 947/1532/74 962/1533/98 946/1528/98 +f 940/1534/99 955/1535/73 939/1530/73 +f 948/1536/100 963/1537/74 947/1532/74 +f 941/1538/88 956/1539/99 940/1534/99 +f 949/1540/87 964/1541/100 948/1536/100 +f 942/1542/101 957/1543/88 941/1544/88 +f 950/1516/94 965/1545/87 949/1540/87 +f 943/1519/76 958/1546/101 942/1542/101 +f 283/987/75 299/994/75 298/988/94 +f 276/990/95 292/996/95 291/991/76 +f 284/993/96 300/1000/96 299/994/75 +f 277/995/85 293/1002/85 292/996/95 +f 270/997/97 286/1004/97 285/998/89 +f 269/999/89 285/998/89 300/1000/96 +f 278/1001/98 294/1006/98 293/1002/85 +f 271/1003/73 287/1008/73 286/1004/97 +f 279/1005/74 295/1010/74 294/1006/98 +f 272/1007/99 288/1012/99 287/1008/73 +f 280/1009/100 296/1014/100 295/1010/74 +f 273/1011/88 289/1547/88 288/1012/99 +f 281/1013/87 297/1018/87 296/1014/100 +f 274/1015/101 290/1019/101 289/1016/88 +f 282/989/94 298/988/94 297/1018/87 +f 275/992/76 291/991/76 290/1019/101 +f 315/1020/75 331/1027/75 330/1021/94 +f 308/1023/95 324/1029/95 323/1024/76 +f 316/1026/96 332/1033/96 331/1027/75 +f 309/1028/85 325/1035/85 324/1029/95 +f 302/1030/97 318/1037/97 317/1031/89 +f 301/1032/89 317/1031/89 332/1033/96 +f 310/1034/98 326/1039/98 325/1035/85 +f 303/1036/73 319/1041/73 318/1037/97 +f 311/1038/74 327/1043/74 326/1039/98 +f 304/1040/99 320/1045/99 319/1041/73 +f 312/1042/100 328/1047/100 327/1043/74 +f 305/1044/88 321/1548/88 320/1045/99 +f 313/1046/87 329/1051/87 328/1047/100 +f 306/1048/101 322/1052/101 321/1049/88 +f 314/1022/94 330/1021/94 329/1051/87 +f 307/1025/76 323/1024/76 322/1052/101 +f 427/1053/75 443/1060/75 442/1054/94 +f 420/1056/95 436/1062/95 435/1057/76 +f 428/1059/96 444/1066/96 443/1060/75 +f 421/1061/85 437/1068/85 436/1062/95 +f 414/1063/97 430/1070/97 429/1064/89 +f 413/1065/89 429/1064/89 444/1066/96 +f 422/1067/98 438/1072/98 437/1068/85 +f 415/1069/73 431/1074/73 430/1070/97 +f 423/1071/74 439/1076/74 438/1072/98 +f 416/1073/99 432/1078/99 431/1074/73 +f 424/1075/100 440/1080/100 439/1076/74 +f 417/1077/88 433/1549/88 432/1078/99 +f 425/1079/87 441/1084/87 440/1080/100 +f 418/1081/101 434/1085/101 433/1082/88 +f 426/1055/94 442/1054/94 441/1084/87 +f 419/1058/76 435/1057/76 434/1085/101 +f 459/1086/75 475/1093/75 474/1087/94 +f 452/1089/95 468/1095/95 467/1090/76 +f 460/1092/96 476/1099/96 475/1093/75 +f 453/1094/85 469/1101/85 468/1095/95 +f 446/1096/97 462/1103/97 461/1097/89 +f 445/1098/89 461/1097/89 476/1099/96 +f 454/1100/98 470/1105/98 469/1101/85 +f 447/1102/73 463/1107/73 462/1103/97 +f 455/1104/74 471/1109/74 470/1105/98 +f 448/1106/99 464/1111/99 463/1107/73 +f 456/1108/100 472/1113/100 471/1109/74 +f 449/1110/88 465/1550/88 464/1111/99 +f 457/1112/87 473/1117/87 472/1113/100 +f 450/1114/101 466/1118/101 465/1115/88 +f 458/1088/94 474/1087/94 473/1117/87 +f 451/1091/76 467/1090/76 466/1118/101 +f 488/1119/100 504/1126/100 503/1120/74 +f 481/1122/88 497/1551/88 496/1123/99 +f 489/1125/87 505/1131/87 504/1126/100 +f 482/1127/101 498/1133/101 497/1128/88 +f 490/1130/94 506/1135/94 505/1131/87 +f 483/1132/76 499/1137/76 498/1133/101 +f 491/1134/75 507/1139/75 506/1135/94 +f 484/1136/95 500/1141/95 499/1137/76 +f 492/1138/96 508/1145/96 507/1139/75 +f 485/1140/85 501/1147/85 500/1141/95 +f 478/1142/97 494/1149/97 493/1143/89 +f 477/1144/89 493/1143/89 508/1145/96 +f 486/1146/98 502/1150/98 501/1147/85 +f 479/1148/73 495/1151/73 494/1149/97 +f 487/1121/74 503/1120/74 502/1150/98 +f 480/1124/99 496/1123/99 495/1151/73 +f 520/1152/100 536/1159/100 535/1153/74 +f 513/1155/88 529/1552/88 528/1156/99 +f 521/1158/87 537/1164/87 536/1159/100 +f 514/1160/101 530/1166/101 529/1161/88 +f 522/1163/94 538/1168/94 537/1164/87 +f 515/1165/76 531/1170/76 530/1166/101 +f 523/1167/75 539/1172/75 538/1168/94 +f 516/1169/95 532/1174/95 531/1170/76 +f 524/1171/96 540/1178/96 539/1172/75 +f 517/1173/85 533/1180/85 532/1174/95 +f 510/1175/97 526/1182/97 525/1176/89 +f 509/1177/89 525/1176/89 540/1178/96 +f 518/1179/98 534/1183/98 533/1180/85 +f 511/1181/73 527/1184/73 526/1182/97 +f 519/1154/74 535/1153/74 534/1183/98 +f 512/1157/99 528/1156/99 527/1184/73 +f 581/1185/72 582/1189/91 574/522/91 +f 588/1186/90 581/1185/72 573/524/72 +f 586/1187/102 587/1190/87 579/537/87 +f 584/1188/103 585/1553/71 577/531/71 +f 582/1189/91 583/1192/88 575/534/88 +f 587/1190/87 588/1186/90 580/525/90 +f 585/1191/71 586/1187/102 578/528/102 +f 583/1192/88 584/1188/103 576/533/103 +f 589/526/72 598/1554/72 604/1193/90 +f 595/529/87 603/1555/87 602/1194/102 +f 593/924/71 601/1556/71 600/1195/103 +f 591/925/88 599/1557/88 597/1196/91 +f 596/926/90 604/1558/90 603/1197/87 +f 594/927/102 602/1559/102 601/1198/71 +f 592/540/103 600/1560/103 599/1199/88 +f 590/923/91 597/1561/91 598/1200/72 +f 685/1201/104 692/1562/105 700/1202/105 +f 686/1204/73 685/1563/104 693/1205/104 +f 695/1207/106 687/1564/106 686/1208/73 +f 688/1210/92 687/1565/106 695/1211/106 +f 689/1213/107 688/1566/92 696/1214/92 +f 698/1216/75 690/1567/75 689/1217/107 +f 691/1219/108 690/1568/75 698/1220/75 +f 700/1222/105 692/1569/105 691/1223/108 +f 678/1225/91 675/1229/91 676/1226/72 +f 679/1228/88 674/1231/88 675/1229/91 +f 680/1230/103 673/1233/103 674/1231/88 +f 681/1232/71 672/1268/71 673/1233/103 +f 682/1234/102 671/1238/102 672/1235/71 +f 683/1237/87 670/1240/87 671/1238/102 +f 684/1239/90 669/1241/90 670/1240/87 +f 677/1227/72 676/1226/72 669/1241/90 +f 666/1242/74 658/1570/74 659/1243/109 +f 666/1245/74 665/1269/110 657/1246/110 +f 664/1248/93 656/1571/93 657/1249/110 +f 664/1251/93 663/1267/111 655/1252/111 +f 663/1254/111 662/1266/76 654/1255/76 +f 661/1257/112 653/1572/112 654/1258/76 +f 661/1260/112 668/1573/113 660/1261/113 +f 668/1263/113 667/1574/109 659/1264/109 +f 671/1238/109 670/1240/74 662/1266/74 +f 672/1235/113 671/1238/109 663/1267/109 +f 672/1268/113 664/1248/113 665/1250/112 +f 674/1231/76 673/1233/112 665/1269/112 +f 674/1231/76 666/1242/76 667/1244/111 +f 675/1229/111 667/1574/111 668/1263/93 +f 676/1226/93 668/1573/93 661/1260/110 +f 669/1241/110 661/1257/110 662/1259/74 +f 694/1206/75 693/1205/107 684/1239/107 +f 693/1203/107 700/1202/92 677/1227/92 +f 700/1222/92 699/1224/106 678/1225/106 +f 699/1221/106 698/1220/73 679/1228/73 +f 679/1228/73 698/1216/73 697/1218/104 +f 680/1230/104 697/1215/104 696/1214/105 +f 696/1212/105 695/1211/108 682/1234/108 +f 682/1234/108 695/1207/108 694/1209/75 +f 785/1270/104 777/1575/104 784/1271/105 +f 778/1273/73 777/1576/104 785/1274/104 +f 787/1276/106 779/1577/106 778/1277/73 +f 788/1279/92 780/1578/92 779/1280/106 +f 781/1282/107 780/1579/92 788/1283/92 +f 790/1285/75 782/1580/75 781/1286/107 +f 783/1288/108 782/1581/75 790/1289/75 +f 792/1291/105 784/1582/105 783/1292/108 +f 770/1294/91 767/1298/91 768/1295/72 +f 771/1297/88 766/1300/88 767/1298/91 +f 772/1299/103 765/1302/103 766/1300/88 +f 773/1301/71 764/1583/71 765/1302/103 +f 774/1303/102 763/1307/102 764/1304/71 +f 775/1306/87 762/1309/87 763/1307/102 +f 776/1308/90 761/1310/90 762/1309/87 +f 769/1296/72 768/1295/72 761/1310/90 +f 758/1311/74 750/1584/74 751/1312/109 +f 758/1314/74 757/1585/110 749/1315/110 +f 756/1317/93 748/1586/93 749/1318/110 +f 756/1320/93 755/1335/111 747/1321/111 +f 755/1323/111 754/1587/76 746/1324/76 +f 753/1326/112 745/1588/112 746/1327/76 +f 760/1329/113 752/1589/113 745/1330/112 +f 760/1332/113 759/1590/109 751/1333/109 +f 762/1309/74 754/1587/74 755/1323/109 +f 764/1304/113 763/1307/109 755/1335/109 +f 765/1302/112 764/1583/113 756/1317/113 +f 765/1302/112 757/1585/112 758/1314/76 +f 766/1300/76 758/1311/76 759/1313/111 +f 767/1298/111 759/1590/111 760/1332/93 +f 768/1295/93 760/1329/93 753/1331/110 +f 761/1310/110 753/1326/110 754/1328/74 +f 786/1275/75 785/1274/107 776/1308/107 +f 785/1270/107 792/1272/92 769/1296/92 +f 792/1291/92 791/1293/106 770/1294/106 +f 791/1290/106 790/1289/73 771/1297/73 +f 771/1297/73 790/1285/73 789/1287/104 +f 772/1299/104 789/1284/104 788/1283/105 +f 773/1305/105 788/1279/105 787/1281/108 +f 774/1303/108 787/1276/108 786/1278/75 +f 825/1336/104 832/1591/105 840/1337/105 +f 826/1339/73 825/1592/104 833/1340/104 +f 835/1342/106 827/1593/106 826/1343/73 +f 828/1345/92 827/1594/106 835/1346/106 +f 829/1348/107 828/1595/92 836/1349/92 +f 838/1351/75 830/1596/75 829/1352/107 +f 831/1354/108 830/1597/75 838/1355/75 +f 840/1357/105 832/1598/105 831/1358/108 +f 818/1360/91 815/1364/91 816/1361/72 +f 819/1363/88 814/1366/88 815/1364/91 +f 820/1365/103 813/1368/103 814/1366/88 +f 821/1367/71 812/1599/71 813/1368/103 +f 822/1369/102 811/1373/102 812/1370/71 +f 823/1372/87 810/1375/87 811/1373/102 +f 824/1374/90 809/1376/90 810/1375/87 +f 817/1362/72 816/1361/72 809/1376/90 +f 806/1377/74 798/1600/74 799/1378/109 +f 806/1380/74 805/1601/110 797/1381/110 +f 804/1383/93 796/1602/93 797/1384/110 +f 803/1386/111 795/1603/111 796/1387/93 +f 803/1389/111 802/1401/76 794/1390/76 +f 801/1392/112 793/1604/112 794/1393/76 +f 801/1395/112 808/1402/113 800/1396/113 +f 808/1398/113 807/1605/109 799/1399/109 +f 811/1373/109 810/1375/74 802/1401/74 +f 811/1373/109 803/1386/109 804/1388/113 +f 813/1368/112 812/1599/113 804/1383/113 +f 813/1368/112 805/1601/112 806/1380/76 +f 814/1366/76 806/1377/76 807/1379/111 +f 815/1364/111 807/1605/111 808/1398/93 +f 809/1376/110 816/1361/93 808/1402/93 +f 809/1376/110 801/1392/110 802/1394/74 +f 834/1341/75 833/1340/107 824/1374/107 +f 833/1338/107 840/1337/92 817/1362/92 +f 840/1357/92 839/1359/106 818/1360/106 +f 839/1356/106 838/1355/73 819/1363/73 +f 819/1363/73 838/1351/73 837/1353/104 +f 820/1365/104 837/1350/104 836/1349/105 +f 836/1347/105 835/1346/108 822/1369/108 +f 822/1369/108 835/1342/108 834/1344/75 +f 881/1403/104 873/1606/104 880/1404/105 +f 874/1406/73 873/1607/104 881/1407/104 +f 883/1409/106 875/1608/106 874/1410/73 +f 884/1412/92 876/1609/92 875/1413/106 +f 877/1415/107 876/1610/92 884/1416/92 +f 886/1418/75 878/1611/75 877/1419/107 +f 879/1421/108 878/1612/75 886/1422/75 +f 880/1424/105 879/1613/108 887/1425/108 +f 866/1427/91 863/1431/91 864/1428/72 +f 867/1430/88 862/1433/88 863/1431/91 +f 868/1432/103 861/1435/103 862/1433/88 +f 869/1434/71 860/1614/71 861/1435/103 +f 870/1436/102 859/1440/102 860/1437/71 +f 871/1439/87 858/1442/87 859/1440/102 +f 872/1441/90 857/1443/90 858/1442/87 +f 865/1429/72 864/1428/72 857/1443/90 +f 854/1444/74 846/1615/74 847/1445/109 +f 853/1447/110 845/1616/110 846/1448/74 +f 852/1450/93 844/1617/93 845/1451/110 +f 852/1453/93 851/1468/111 843/1454/111 +f 851/1456/111 850/1618/76 842/1457/76 +f 849/1459/112 841/1619/112 842/1460/76 +f 849/1462/112 856/1469/113 848/1463/113 +f 856/1465/113 855/1620/109 847/1466/109 +f 858/1442/74 850/1618/74 851/1456/109 +f 860/1437/113 859/1440/109 851/1468/109 +f 861/1435/112 860/1614/113 852/1450/113 +f 861/1435/112 853/1447/112 854/1449/76 +f 862/1433/76 854/1444/76 855/1446/111 +f 863/1431/111 855/1620/111 856/1465/93 +f 857/1443/110 864/1428/93 856/1469/93 +f 857/1443/110 849/1459/110 850/1461/74 +f 882/1408/75 881/1407/107 872/1441/107 +f 881/1403/107 888/1405/92 865/1429/92 +f 888/1426/92 887/1425/106 866/1427/106 +f 887/1423/106 886/1422/73 867/1430/73 +f 867/1430/73 886/1418/73 885/1420/104 +f 868/1432/104 885/1417/104 884/1416/105 +f 884/1412/105 883/1414/108 870/1436/108 +f 870/1436/108 883/1409/108 882/1411/75 +f 914/1470/91 911/1474/91 912/1471/72 +f 915/1473/88 910/1476/88 911/1474/91 +f 916/1475/103 909/1478/103 910/1476/88 +f 917/1477/71 908/1621/71 909/1478/103 +f 918/1479/102 907/1483/102 908/1480/71 +f 919/1482/87 906/1485/87 907/1483/102 +f 920/1484/90 905/1486/90 906/1485/87 +f 913/1472/72 912/1471/72 905/1486/90 +f 902/1487/74 894/1622/74 895/1488/109 +f 902/1490/74 901/1512/110 893/1491/110 +f 900/1493/93 892/1623/93 893/1494/110 +f 900/1496/93 899/1624/111 891/1497/111 +f 899/1499/111 898/1511/76 890/1500/76 +f 897/1502/112 889/1625/112 890/1503/76 +f 897/1505/112 904/1513/113 896/1506/113 +f 904/1508/113 903/1626/109 895/1509/109 +f 907/1483/109 906/1485/74 898/1511/74 +f 907/1483/109 899/1624/109 900/1496/113 +f 909/1478/112 908/1621/113 900/1493/113 +f 910/1476/76 909/1478/112 901/1512/112 +f 911/1474/111 910/1476/76 902/1487/76 +f 911/1474/111 903/1626/111 904/1508/93 +f 905/1486/110 912/1471/93 904/1513/93 +f 905/1486/110 897/1502/110 898/1504/74 +f 951/1514/75 967/1521/75 966/1515/94 +f 944/1517/95 960/1523/95 959/1518/76 +f 952/1520/96 968/1527/96 967/1521/75 +f 945/1522/85 961/1529/85 960/1523/95 +f 938/1524/97 954/1531/97 953/1525/89 +f 937/1526/89 953/1525/89 968/1527/96 +f 946/1528/98 962/1533/98 961/1529/85 +f 939/1530/73 955/1535/73 954/1531/97 +f 947/1532/74 963/1537/74 962/1533/98 +f 940/1534/99 956/1539/99 955/1535/73 +f 948/1536/100 964/1541/100 963/1537/74 +f 941/1538/88 957/1627/88 956/1539/99 +f 949/1540/87 965/1545/87 964/1541/100 +f 942/1542/101 958/1546/101 957/1543/88 +f 950/1516/94 966/1515/94 965/1545/87 +f 943/1519/76 959/1518/76 958/1546/101 diff --git a/src/main/resources/assets/hbm/models/machines/hydrotreater.obj b/src/main/resources/assets/hbm/models/machines/hydrotreater.obj new file mode 100644 index 000000000..ff351449e --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/hydrotreater.obj @@ -0,0 +1,2311 @@ +# Blender v2.79 (sub 0) OBJ File: 'hydrotreater.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v 1.500000 0.125000 1.375000 +v 1.500000 0.125000 -1.375000 +v 1.500000 0.875000 1.375000 +v 1.500000 0.875000 -1.375000 +v 1.375000 0.125000 1.375000 +v 1.375000 0.125000 -1.375000 +v 1.375000 0.875000 1.375000 +v 1.375000 0.875000 -1.375000 +v -1.500000 0.125000 -1.375000 +v -1.500000 0.125000 1.375000 +v -1.500000 0.875000 -1.375000 +v -1.500000 0.875000 1.375000 +v -1.375000 0.125000 -1.375000 +v -1.375000 0.125000 1.375000 +v -1.375000 0.875000 -1.375000 +v -1.375000 0.875000 1.375000 +v 1.375000 0.125000 -1.500000 +v -1.375000 0.125000 -1.500000 +v 1.375000 0.875000 -1.500000 +v -1.375000 0.875000 -1.500000 +v 1.375000 0.125000 -1.375000 +v -1.375000 0.125000 -1.375000 +v 1.375000 0.875000 -1.375000 +v -1.375000 0.875000 -1.375000 +v -1.375000 0.125000 1.500000 +v 1.375000 0.125000 1.500000 +v -1.375000 0.875000 1.500000 +v 1.375000 0.875000 1.500000 +v -1.375000 0.125000 1.375000 +v 1.375000 0.125000 1.375000 +v -1.375000 0.875000 1.375000 +v 1.375000 0.875000 1.375000 +v 0.000000 6.000000 -1.500000 +v -0.574025 6.000000 -1.385819 +v -1.060660 6.000000 -1.060660 +v -1.385819 6.000000 -0.574025 +v -1.500000 6.000000 0.000000 +v -1.385819 6.000000 0.574025 +v -1.060660 6.000000 1.060660 +v -0.574025 6.000000 1.385819 +v -0.000000 6.000000 1.500000 +v 0.574025 6.000000 1.385819 +v 1.060660 6.000000 1.060660 +v 1.385819 6.000000 0.574025 +v 1.500000 6.000000 0.000000 +v 1.385819 6.000000 -0.574025 +v 1.060660 6.000000 -1.060660 +v 0.574024 6.000000 -1.385820 +v 0.000000 5.500000 -1.500000 +v -0.574025 5.500000 -1.385819 +v -1.060660 5.500000 -1.060660 +v -1.385819 5.500000 -0.574025 +v -1.500000 5.500000 0.000000 +v -1.385819 5.500000 0.574025 +v -1.060660 5.500000 1.060660 +v -0.574025 5.500000 1.385819 +v -0.000000 5.500000 1.500000 +v 0.574025 5.500000 1.385819 +v 1.060660 5.500000 1.060660 +v 1.385819 5.500000 0.574025 +v 1.500000 5.500000 0.000000 +v 1.385819 5.500000 -0.574025 +v 1.060660 5.500000 -1.060660 +v 0.574024 5.500000 -1.385820 +v -0.000000 6.000000 -1.125000 +v -0.430519 6.000000 -1.039364 +v -0.795495 6.000000 -0.795495 +v -1.039364 6.000000 -0.430519 +v -1.125000 6.000000 0.000000 +v -1.039364 6.000000 0.430519 +v -0.795495 6.000000 0.795495 +v -0.430519 6.000000 1.039364 +v -0.000000 6.000000 1.125000 +v 0.430519 6.000000 1.039365 +v 0.795495 6.000000 0.795496 +v 1.039364 6.000000 0.430519 +v 1.125000 6.000000 0.000000 +v 1.039364 6.000000 -0.430519 +v 0.795495 6.000000 -0.795496 +v 0.430518 6.000000 -1.039365 +v -0.000000 7.000000 -0.750000 +v -0.287013 7.000000 -0.692910 +v -0.530330 7.000000 -0.530330 +v -0.692910 7.000000 -0.287013 +v -0.750000 7.000000 0.000000 +v -0.692910 7.000000 0.287013 +v -0.530330 7.000000 0.530330 +v -0.287013 7.000000 0.692910 +v -0.000000 7.000000 0.750000 +v 0.287012 7.000000 0.692910 +v 0.530330 7.000000 0.530330 +v 0.692909 7.000000 0.287013 +v 0.750000 7.000000 0.000000 +v 0.692909 7.000000 -0.287013 +v 0.530330 7.000000 -0.530330 +v 0.287012 7.000000 -0.692910 +v 0.000000 2.000000 -1.500000 +v -0.574025 2.000000 -1.385819 +v -1.060660 2.000000 -1.060660 +v -1.385819 2.000000 -0.574025 +v -1.500000 2.000000 0.000000 +v -1.385819 2.000000 0.574025 +v -1.060660 2.000000 1.060660 +v -0.574025 2.000000 1.385819 +v -0.000000 2.000000 1.500000 +v 0.574025 2.000000 1.385819 +v 1.060660 2.000000 1.060660 +v 1.385819 2.000000 0.574025 +v 1.500000 2.000000 0.000000 +v 1.385819 2.000000 -0.574025 +v 1.060660 2.000000 -1.060660 +v 0.574024 2.000000 -1.385820 +v 0.000000 2.500000 -1.500000 +v -0.574025 2.500000 -1.385819 +v -1.060660 2.500000 -1.060660 +v -1.385819 2.500000 -0.574025 +v -1.500000 2.500000 0.000000 +v -1.385819 2.500000 0.574025 +v -1.060660 2.500000 1.060660 +v -0.574025 2.500000 1.385819 +v -0.000000 2.500000 1.500000 +v 0.574025 2.500000 1.385819 +v 1.060660 2.500000 1.060660 +v 1.385819 2.500000 0.574025 +v 1.500000 2.500000 0.000000 +v 1.385819 2.500000 -0.574025 +v 1.060660 2.500000 -1.060660 +v 0.574024 2.500000 -1.385820 +v -0.000000 2.500000 -1.375000 +v -0.526190 2.500000 -1.270334 +v -0.972272 2.500000 -0.972272 +v -1.270334 2.500000 -0.526190 +v -1.375000 2.500000 0.000000 +v -1.270334 2.500000 0.526190 +v -0.972272 2.500000 0.972272 +v -0.526190 2.500000 1.270334 +v -0.000000 2.500000 1.375000 +v 0.526189 2.500000 1.270334 +v 0.972272 2.500000 0.972272 +v 1.270334 2.500000 0.526190 +v 1.375000 2.500000 0.000000 +v 1.270334 2.500000 -0.526190 +v 0.972271 2.500000 -0.972272 +v 0.526189 2.500000 -1.270335 +v -0.000000 5.500000 -1.375000 +v -0.526190 5.500000 -1.270334 +v -0.972272 5.500000 -0.972272 +v -1.270334 5.500000 -0.526190 +v -1.375000 5.500000 0.000000 +v -1.270334 5.500000 0.526190 +v -0.972272 5.500000 0.972272 +v -0.526190 5.500000 1.270334 +v -0.000000 5.500000 1.375000 +v 0.526189 5.500000 1.270334 +v 0.972272 5.500000 0.972272 +v 1.270334 5.500000 0.526190 +v 1.375000 5.500000 0.000000 +v 1.270334 5.500000 -0.526190 +v 0.972271 5.500000 -0.972272 +v 0.526189 5.500000 -1.270335 +v -0.000000 2.000000 -1.125000 +v -0.430519 2.000000 -1.039364 +v -0.795495 2.000000 -0.795495 +v -1.039364 2.000000 -0.430519 +v -1.125000 2.000000 0.000000 +v -1.039364 2.000000 0.430519 +v -0.795495 2.000000 0.795495 +v -0.430519 2.000000 1.039364 +v -0.000000 2.000000 1.125000 +v 0.430519 2.000000 1.039365 +v 0.795495 2.000000 0.795496 +v 1.039364 2.000000 0.430519 +v 1.125000 2.000000 0.000000 +v 1.039364 2.000000 -0.430519 +v 0.795495 2.000000 -0.795496 +v 0.430518 2.000000 -1.039365 +v -0.000000 1.000000 -1.125000 +v -0.430519 1.000000 -1.039364 +v -0.795495 1.000000 -0.795495 +v -1.039364 1.000000 -0.430519 +v -1.125000 1.000000 0.000000 +v -1.039364 1.000000 0.430519 +v -0.795495 1.000000 0.795495 +v -0.430519 1.000000 1.039364 +v -0.000000 1.000000 1.125000 +v 0.430519 1.000000 1.039365 +v 0.795495 1.000000 0.795496 +v 1.039364 1.000000 0.430519 +v 1.125000 1.000000 0.000000 +v 1.039364 1.000000 -0.430519 +v 0.795495 1.000000 -0.795496 +v 0.430518 1.000000 -1.039365 +v 1.250368 1.000000 0.121265 +v 1.156535 1.000000 0.139929 +v 1.103383 1.000000 0.219477 +v 1.122048 1.000000 0.313309 +v 1.201595 1.000000 0.366461 +v 1.295428 1.000000 0.347796 +v 1.348580 1.000000 0.268249 +v 1.329915 1.000000 0.174417 +v 1.250368 2.000000 0.121265 +v 1.156535 2.000000 0.139929 +v 1.103383 2.000000 0.219477 +v 1.122048 2.000000 0.313309 +v 1.201595 2.000000 0.366461 +v 1.295428 2.000000 0.347796 +v 1.348580 2.000000 0.268249 +v 1.329915 2.000000 0.174417 +v 1.201595 1.000000 -0.366461 +v 1.122048 1.000000 -0.313309 +v 1.103383 1.000000 -0.219477 +v 1.156535 1.000000 -0.139929 +v 1.250368 1.000000 -0.121265 +v 1.329915 1.000000 -0.174417 +v 1.348580 1.000000 -0.268250 +v 1.295428 1.000000 -0.347796 +v 1.201595 2.000000 -0.366461 +v 1.122048 2.000000 -0.313309 +v 1.103383 2.000000 -0.219477 +v 1.156535 2.000000 -0.139929 +v 1.250368 2.000000 -0.121265 +v 1.329915 2.000000 -0.174417 +v 1.348580 2.000000 -0.268250 +v 1.295428 2.000000 -0.347796 +v -1.250368 1.000000 -0.121264 +v -1.156535 1.000000 -0.139929 +v -1.103383 1.000000 -0.219477 +v -1.122048 1.000000 -0.313309 +v -1.201595 1.000000 -0.366461 +v -1.295428 1.000000 -0.347796 +v -1.348580 1.000000 -0.268249 +v -1.329915 1.000000 -0.174417 +v -1.250368 2.000000 -0.121264 +v -1.156535 2.000000 -0.139929 +v -1.103383 2.000000 -0.219477 +v -1.122048 2.000000 -0.313309 +v -1.201595 2.000000 -0.366461 +v -1.295428 2.000000 -0.347796 +v -1.348580 2.000000 -0.268249 +v -1.329915 2.000000 -0.174417 +v -1.201595 1.000000 0.366461 +v -1.122048 1.000000 0.313309 +v -1.103383 1.000000 0.219477 +v -1.156535 1.000000 0.139929 +v -1.250368 1.000000 0.121265 +v -1.329915 1.000000 0.174417 +v -1.348580 1.000000 0.268250 +v -1.295428 1.000000 0.347797 +v -1.201595 2.000000 0.366461 +v -1.122048 2.000000 0.313309 +v -1.103383 2.000000 0.219477 +v -1.156535 2.000000 0.139929 +v -1.250368 2.000000 0.121265 +v -1.329915 2.000000 0.174417 +v -1.348580 2.000000 0.268250 +v -1.295428 2.000000 0.347797 +v 0.121265 1.000000 -1.250368 +v 0.139929 1.000000 -1.156535 +v 0.219477 1.000000 -1.103384 +v 0.313309 1.000000 -1.122048 +v 0.366461 1.000000 -1.201595 +v 0.347796 1.000000 -1.295428 +v 0.268249 1.000000 -1.348580 +v 0.174417 1.000000 -1.329915 +v 0.121265 2.000000 -1.250368 +v 0.139929 2.000000 -1.156535 +v 0.219477 2.000000 -1.103384 +v 0.313309 2.000000 -1.122048 +v 0.366461 2.000000 -1.201595 +v 0.347796 2.000000 -1.295428 +v 0.268249 2.000000 -1.348580 +v 0.174417 2.000000 -1.329915 +v -0.366461 1.000000 -1.201595 +v -0.313309 1.000000 -1.122048 +v -0.219477 1.000000 -1.103384 +v -0.139929 1.000000 -1.156535 +v -0.121265 1.000000 -1.250368 +v -0.174417 1.000000 -1.329915 +v -0.268249 1.000000 -1.348580 +v -0.347797 1.000000 -1.295428 +v -0.366461 2.000000 -1.201595 +v -0.313309 2.000000 -1.122048 +v -0.219477 2.000000 -1.103384 +v -0.139929 2.000000 -1.156535 +v -0.121265 2.000000 -1.250368 +v -0.174417 2.000000 -1.329915 +v -0.268249 2.000000 -1.348580 +v -0.347797 2.000000 -1.295428 +v -0.121265 1.000000 1.250368 +v -0.139929 1.000000 1.156535 +v -0.219476 1.000000 1.103384 +v -0.313309 1.000000 1.122048 +v -0.366461 1.000000 1.201595 +v -0.347796 1.000000 1.295428 +v -0.268249 1.000000 1.348580 +v -0.174416 1.000000 1.329915 +v -0.121265 2.000000 1.250368 +v -0.139929 2.000000 1.156535 +v -0.219476 2.000000 1.103384 +v -0.313309 2.000000 1.122048 +v -0.366461 2.000000 1.201595 +v -0.347796 2.000000 1.295428 +v -0.268249 2.000000 1.348580 +v -0.174416 2.000000 1.329915 +v 0.366461 1.000000 1.201595 +v 0.313309 1.000000 1.122048 +v 0.219477 1.000000 1.103384 +v 0.139929 1.000000 1.156535 +v 0.121265 1.000000 1.250368 +v 0.174417 1.000000 1.329915 +v 0.268250 1.000000 1.348579 +v 0.347797 1.000000 1.295428 +v 0.366461 2.000000 1.201595 +v 0.313309 2.000000 1.122048 +v 0.219477 2.000000 1.103384 +v 0.139929 2.000000 1.156535 +v 0.121265 2.000000 1.250368 +v 0.174417 2.000000 1.329915 +v 0.268250 2.000000 1.348579 +v 0.347797 2.000000 1.295428 +v 1.325825 1.000000 0.972272 +v 1.149049 1.000000 0.899048 +v 0.972272 1.000000 0.972272 +v 0.899049 1.000000 1.149049 +v 0.972272 1.000000 1.325825 +v 1.149049 1.000000 1.399049 +v 1.325825 1.000000 1.325825 +v 1.399049 1.000000 1.149049 +v 1.325825 3.000000 0.972272 +v 1.149049 3.000000 0.899048 +v 0.972272 3.000000 0.972272 +v 0.899049 3.000000 1.149049 +v 0.972272 3.000000 1.325825 +v 1.149049 3.000000 1.399049 +v 1.325825 3.000000 1.325825 +v 1.399049 3.000000 1.149049 +v 1.274048 3.176777 0.920495 +v 1.133883 3.051777 0.883883 +v 0.883883 3.051777 1.133883 +v 0.920495 3.176777 1.274048 +v 1.060660 3.301777 1.310660 +v 1.222272 3.353553 1.222272 +v 1.310660 3.301777 1.060660 +v 1.149048 3.250000 0.795495 +v 1.097272 3.073223 0.847272 +v 0.847272 3.073223 1.097272 +v 0.795495 3.250000 1.149048 +v 0.847272 3.426777 1.097272 +v 0.972272 3.500000 0.972272 +v 1.097272 3.426777 0.847272 +v 1.008884 3.073223 0.758883 +v 1.060660 3.250000 0.707107 +v 0.707107 3.250000 1.060660 +v 0.758884 3.073223 1.008883 +v 0.758884 3.426777 1.008883 +v 0.883884 3.500000 0.883883 +v 1.008884 3.426777 0.758883 +v 0.883883 3.000000 0.883883 +v -1.325825 1.000000 -0.972271 +v -1.149049 1.000000 -0.899048 +v -0.972272 1.000000 -0.972272 +v -0.899049 1.000000 -1.149049 +v -0.972272 1.000000 -1.325825 +v -1.149049 1.000000 -1.399049 +v -1.325825 1.000000 -1.325825 +v -1.399049 1.000000 -1.149049 +v -1.325825 3.000000 -0.972271 +v -1.149049 3.000000 -0.899048 +v -0.972272 3.000000 -0.972272 +v -0.899049 3.000000 -1.149049 +v -0.972272 3.000000 -1.325825 +v -1.149049 3.000000 -1.399049 +v -1.325825 3.000000 -1.325825 +v -1.399049 3.000000 -1.149049 +v -1.274049 3.176777 -0.920495 +v -1.133883 3.051777 -0.883883 +v -0.883884 3.051777 -1.133883 +v -0.920495 3.176777 -1.274048 +v -1.060660 3.301777 -1.310660 +v -1.222272 3.353553 -1.222271 +v -1.310660 3.301777 -1.060660 +v -1.149049 3.250000 -0.795495 +v -1.097272 3.073223 -0.847272 +v -0.847272 3.073223 -1.097272 +v -0.795495 3.250000 -1.149048 +v -0.847272 3.426777 -1.097272 +v -0.972272 3.500000 -0.972272 +v -1.097272 3.426777 -0.847272 +v -1.008884 3.073223 -0.758883 +v -1.060660 3.250000 -0.707107 +v -0.707107 3.250000 -1.060660 +v -0.758884 3.073223 -1.008883 +v -0.758884 3.426777 -1.008883 +v -0.883884 3.500000 -0.883883 +v -1.008884 3.426777 -0.758883 +v -0.883883 3.000000 -0.883883 +v 0.972272 1.000000 -1.325825 +v 0.899048 1.000000 -1.149049 +v 0.972272 1.000000 -0.972272 +v 1.149049 1.000000 -0.899049 +v 1.325825 1.000000 -0.972272 +v 1.399049 1.000000 -1.149049 +v 1.325825 1.000000 -1.325825 +v 1.149048 1.000000 -1.399049 +v 0.972272 3.000000 -1.325825 +v 0.899048 3.000000 -1.149049 +v 0.972272 3.000000 -0.972272 +v 1.149049 3.000000 -0.899049 +v 1.325825 3.000000 -0.972272 +v 1.399049 3.000000 -1.149049 +v 1.325825 3.000000 -1.325825 +v 1.149048 3.000000 -1.399049 +v 0.920495 3.176776 -1.274048 +v 0.883883 3.051776 -1.133883 +v 1.133883 3.051776 -0.883883 +v 1.274048 3.176776 -0.920495 +v 1.310660 3.301776 -1.060660 +v 1.222272 3.353553 -1.222272 +v 1.060660 3.301776 -1.310660 +v 0.795495 3.250000 -1.149048 +v 0.847272 3.073223 -1.097272 +v 1.097272 3.073223 -0.847272 +v 1.149048 3.250000 -0.795495 +v 1.097272 3.426776 -0.847272 +v 0.972272 3.500000 -0.972272 +v 0.847272 3.426776 -1.097272 +v 0.758883 3.073223 -1.008884 +v 0.707107 3.250000 -1.060660 +v 1.060660 3.250000 -0.707107 +v 1.008884 3.073223 -0.758883 +v 1.008884 3.426776 -0.758883 +v 0.883884 3.500000 -0.883883 +v 0.758884 3.426776 -1.008883 +v 0.883883 3.000000 -0.883883 +v -0.972272 1.000000 1.325825 +v -0.899048 1.000000 1.149049 +v -0.972272 1.000000 0.972272 +v -1.149049 1.000000 0.899049 +v -1.325825 1.000000 0.972272 +v -1.399049 1.000000 1.149049 +v -1.325825 1.000000 1.325825 +v -1.149048 1.000000 1.399049 +v -0.972272 3.000000 1.325825 +v -0.899048 3.000000 1.149049 +v -0.972272 3.000000 0.972272 +v -1.149049 3.000000 0.899049 +v -1.325825 3.000000 0.972272 +v -1.399049 3.000000 1.149049 +v -1.325825 3.000000 1.325825 +v -1.149048 3.000000 1.399049 +v -0.920495 3.176776 1.274049 +v -0.883883 3.051776 1.133883 +v -1.133883 3.051776 0.883883 +v -1.274048 3.176776 0.920495 +v -1.310660 3.301776 1.060660 +v -1.222272 3.353553 1.222272 +v -1.060660 3.301776 1.310660 +v -0.795495 3.250000 1.149049 +v -0.847272 3.073223 1.097272 +v -1.097272 3.073223 0.847272 +v -1.149048 3.250000 0.795495 +v -1.097272 3.426776 0.847272 +v -0.972272 3.500000 0.972272 +v -0.847272 3.426776 1.097272 +v -0.758883 3.073223 1.008883 +v -0.707107 3.250000 1.060660 +v -1.060660 3.250000 0.707107 +v -1.008883 3.073223 0.758883 +v -1.008883 3.426776 0.758883 +v -0.883884 3.500000 0.883883 +v -0.758884 3.426776 1.008884 +v -0.883883 3.000000 0.883883 +v 1.500000 0.312500 -0.812500 +v 1.500000 0.687500 -0.812500 +v 1.500000 0.312500 -1.187500 +v 1.500000 0.687500 -1.187500 +v 1.375000 0.312500 -1.187500 +v 1.375000 0.312500 -0.812500 +v 1.375000 0.687500 -0.812500 +v 1.375000 0.687500 -1.187500 +v 1.500000 0.312500 1.187500 +v 1.500000 0.687500 1.187500 +v 1.500000 0.312500 0.812500 +v 1.500000 0.687500 0.812500 +v 1.375000 0.312500 0.812500 +v 1.375000 0.312500 1.187500 +v 1.375000 0.687500 1.187500 +v 1.375000 0.687500 0.812500 +v -1.500000 0.312500 0.812500 +v -1.500000 0.687500 0.812500 +v -1.500000 0.312500 1.187500 +v -1.500000 0.687500 1.187500 +v -1.375000 0.312500 1.187500 +v -1.375000 0.312500 0.812500 +v -1.375000 0.687500 0.812500 +v -1.375000 0.687500 1.187500 +v -1.500000 0.312500 -1.187500 +v -1.500000 0.687500 -1.187500 +v -1.500000 0.312500 -0.812500 +v -1.500000 0.687500 -0.812500 +v -1.375000 0.312500 -0.812500 +v -1.375000 0.312500 -1.187500 +v -1.375000 0.687500 -1.187500 +v -1.375000 0.687500 -0.812500 +v -0.812500 0.312500 -1.500000 +v -0.812500 0.687500 -1.500000 +v -1.187500 0.312500 -1.500000 +v -1.187500 0.687500 -1.500000 +v -1.187500 0.312500 -1.375000 +v -0.812500 0.312500 -1.375000 +v -0.812500 0.687500 -1.375000 +v -1.187500 0.687500 -1.375000 +v 1.187500 0.312500 -1.500000 +v 1.187500 0.687500 -1.500000 +v 0.812500 0.312500 -1.500000 +v 0.812500 0.687500 -1.500000 +v 0.812500 0.312500 -1.375000 +v 1.187500 0.312500 -1.375000 +v 1.187500 0.687500 -1.375000 +v 0.812500 0.687500 -1.375000 +v 0.812500 0.312500 1.500000 +v 0.812500 0.687500 1.500000 +v 1.187500 0.312500 1.500000 +v 1.187500 0.687500 1.500000 +v 1.187500 0.312500 1.375000 +v 0.812500 0.312500 1.375000 +v 0.812500 0.687500 1.375000 +v 1.187500 0.687500 1.375000 +v -1.187500 0.312500 1.500000 +v -1.187500 0.687500 1.500000 +v -0.812500 0.312500 1.500000 +v -0.812500 0.687500 1.500000 +v -0.812500 0.312500 1.375000 +v -1.187500 0.312500 1.375000 +v -1.187500 0.687500 1.375000 +v -0.812500 0.687500 1.375000 +vt 0.240000 -0.000000 +vt -0.000000 0.375000 +vt -0.000000 -0.000000 +vt -0.000000 0.500000 +vt 0.240000 0.875000 +vt -0.000000 0.875000 +vt 0.000000 0.890625 +vt 0.010000 0.984375 +vt 0.000000 0.984375 +vt 0.230000 0.875000 +vt 0.010000 0.890625 +vt 0.010000 0.875000 +vt 0.240000 0.984375 +vt 0.230000 0.890625 +vt 0.240000 0.890625 +vt 0.000000 0.890625 +vt 0.010000 0.984375 +vt 0.000000 0.984375 +vt 0.010000 1.000000 +vt 0.230000 0.984375 +vt 0.230000 1.000000 +vt 0.230000 0.875000 +vt 0.010000 0.890625 +vt 0.010000 0.875000 +vt 0.240000 0.984375 +vt 0.230000 0.890625 +vt 0.240000 0.890625 +vt 0.010000 1.000000 +vt 0.230000 0.984375 +vt 0.230000 1.000000 +vt 0.000000 0.890625 +vt 0.010000 0.984375 +vt 0.000000 0.984375 +vt 0.230000 0.875000 +vt 0.010000 0.890625 +vt 0.010000 0.875000 +vt 0.240000 0.984375 +vt 0.230000 0.890625 +vt 0.240000 0.890625 +vt 0.000000 0.890625 +vt 0.010000 0.984375 +vt 0.000000 0.984375 +vt 0.010000 1.000000 +vt 0.230000 0.984375 +vt 0.230000 1.000000 +vt 0.230000 0.875000 +vt 0.010000 0.890625 +vt 0.010000 0.875000 +vt 0.240000 0.984375 +vt 0.230000 0.890625 +vt 0.240000 0.890625 +vt 0.010000 1.000000 +vt 0.230000 0.984375 +vt 0.230000 1.000000 +vt 0.230000 0.390625 +vt 0.240000 0.375000 +vt 0.230000 0.390625 +vt -0.000000 0.375000 +vt 0.240000 0.375000 +vt 0.230000 0.484375 +vt 0.240000 0.500000 +vt -0.000000 0.500000 +vt 0.230000 0.484375 +vt 0.240000 0.500000 +vt 0.010000 0.390625 +vt 0.010000 0.484375 +vt -0.000000 0.500000 +vt 0.230000 0.484375 +vt 0.240000 0.500000 +vt 0.230000 0.390625 +vt -0.000000 0.375000 +vt 0.240000 0.375000 +vt 0.230000 0.390625 +vt 0.000000 0.375000 +vt 0.240000 0.375000 +vt 0.000000 0.500000 +vt 0.230000 0.484375 +vt 0.240000 0.500000 +vt 0.010000 0.390625 +vt 0.010000 0.484375 +vt 0.010000 0.390625 +vt 0.010000 0.484375 +vt 0.010000 0.484375 +vt 0.010000 0.390625 +vt 0.600000 0.703125 +vt 0.560000 0.750000 +vt 0.560000 0.703125 +vt 0.280000 0.703125 +vt 0.315000 0.750000 +vt 0.280000 0.750000 +vt 0.640000 0.703125 +vt 0.600000 0.750000 +vt 0.320000 0.703125 +vt 0.355000 0.750000 +vt 0.320000 0.750000 +vt 0.680000 0.703125 +vt 0.640000 0.750000 +vt 0.360000 0.703125 +vt 0.395000 0.750000 +vt 0.360000 0.750000 +vt 0.760000 0.703125 +vt 0.720000 0.750000 +vt 0.720000 0.703125 +vt 0.680000 0.750000 +vt 0.400000 0.703125 +vt 0.435000 0.750000 +vt 0.400000 0.750000 +vt 0.800000 0.703125 +vt 0.760000 0.750000 +vt 0.440000 0.703125 +vt 0.475000 0.750000 +vt 0.445000 0.750000 +vt 0.835000 0.750000 +vt 0.800000 0.750000 +vt 0.480000 0.703125 +vt 0.515000 0.750000 +vt 0.480000 0.750000 +vt 0.840000 0.703125 +vt 0.875000 0.750000 +vt 0.840000 0.750000 +vt 0.520000 0.703125 +vt 0.555000 0.750000 +vt 0.520000 0.750000 +vt 0.240000 0.750000 +vt 0.240000 0.703125 +vt 0.999923 0.451491 +vt 0.941046 0.546755 +vt 0.880076 0.454759 +vt 0.640000 0.234375 +vt 0.680000 0.250000 +vt 0.640000 0.250000 +vt 0.600000 0.250000 +vt 0.600000 0.234375 +vt 0.560000 0.250000 +vt 0.560000 0.234375 +vt 0.520000 0.234375 +vt 0.520000 0.250000 +vt 0.480000 0.234375 +vt 0.480000 0.250000 +vt 0.440000 0.250000 +vt 0.440000 0.234375 +vt 0.400000 0.250000 +vt 0.400000 0.234375 +vt 0.360000 0.234375 +vt 0.360000 0.250000 +vt 0.320000 0.234375 +vt 0.320000 0.250000 +vt 0.280000 0.234375 +vt 0.280000 0.250000 +vt 0.240000 0.250000 +vt 0.240000 0.234375 +vt 0.880000 0.234375 +vt 0.840000 0.250000 +vt 0.840000 0.234375 +vt 0.800000 0.234375 +vt 0.800000 0.250000 +vt 0.760000 0.250000 +vt 0.760000 0.234375 +vt 0.720000 0.250000 +vt 0.720000 0.234375 +vt 0.680000 0.234375 +vt 0.560000 0.640625 +vt 0.600000 0.625000 +vt 0.600000 0.640625 +vt 0.640000 0.640625 +vt 0.680000 0.625000 +vt 0.680000 0.640625 +vt 0.720000 0.640625 +vt 0.720000 0.625000 +vt 0.760000 0.640625 +vt 0.760000 0.625000 +vt 0.800000 0.640625 +vt 0.840000 0.625000 +vt 0.840000 0.640625 +vt 0.880000 0.640625 +vt 0.240000 0.625000 +vt 0.280000 0.640625 +vt 0.240000 0.640625 +vt 0.320000 0.625000 +vt 0.320000 0.640625 +vt 0.360000 0.625000 +vt 0.360000 0.640625 +vt 0.400000 0.625000 +vt 0.400000 0.640625 +vt 0.440000 0.640625 +vt 0.440000 0.625000 +vt 0.480000 0.640625 +vt 0.480000 0.625000 +vt 0.520000 0.640625 +vt 0.520000 0.625000 +vt 0.280000 0.171875 +vt 0.240000 0.125000 +vt 0.275000 0.125000 +vt 0.600000 0.171875 +vt 0.560000 0.125000 +vt 0.595000 0.125000 +vt 0.315000 0.125000 +vt 0.320000 0.171875 +vt 0.640000 0.171875 +vt 0.600000 0.125000 +vt 0.635000 0.125000 +vt 0.355000 0.125000 +vt 0.360000 0.171875 +vt 0.675000 0.125000 +vt 0.680000 0.171875 +vt 0.395000 0.125000 +vt 0.400000 0.171875 +vt 0.760000 0.171875 +vt 0.715000 0.125000 +vt 0.755000 0.125000 +vt 0.720000 0.171875 +vt 0.680000 0.125000 +vt 0.435000 0.125000 +vt 0.440000 0.171875 +vt 0.800000 0.171875 +vt 0.760000 0.125000 +vt 0.795000 0.125000 +vt 0.475000 0.125000 +vt 0.480000 0.171875 +vt 0.835000 0.125000 +vt 0.840000 0.171875 +vt 0.515000 0.125000 +vt 0.520000 0.171875 +vt 0.875000 0.125000 +vt 0.880000 0.171875 +vt 0.555000 0.125000 +vt 0.560000 0.171875 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.360000 0.890625 +vt 0.330000 0.937500 +vt 0.330000 0.890625 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.370000 0.937500 +vt 0.360000 0.937500 +vt 0.320000 0.890625 +vt 0.330000 0.953125 +vt 0.360000 0.875000 +vt 0.595000 0.750000 +vt 0.635000 0.750000 +vt 0.675000 0.750000 +vt 0.755000 0.750000 +vt 0.715000 0.750000 +vt 0.795000 0.750000 +vt 0.880000 0.703125 +vt 0.275000 0.750000 +vt 0.995762 0.487446 +vt 0.983112 0.518176 +vt 0.963898 0.539003 +vt 0.918034 0.540254 +vt 0.898367 0.520487 +vt 0.885038 0.490466 +vt 0.884238 0.418804 +vt 0.896888 0.388074 +vt 0.916102 0.367247 +vt 0.938954 0.359495 +vt 0.961965 0.365996 +vt 0.981633 0.385763 +vt 0.994962 0.415784 +vt 0.880000 0.250000 +vt 0.560000 0.625000 +vt 0.640000 0.625000 +vt 0.800000 0.625000 +vt 0.880000 0.625000 +vt 0.280000 0.625000 +vt 0.240000 0.171875 +vt 0.280000 0.125000 +vt 0.320000 0.125000 +vt 0.640000 0.125000 +vt 0.360000 0.125000 +vt 0.400000 0.125000 +vt 0.440000 0.125000 +vt 0.800000 0.125000 +vt 0.480000 0.125000 +vt 0.840000 0.125000 +vt 0.520000 0.125000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.370000 0.890625 +vt 0.320000 0.937500 +vt 0.360000 0.953125 +vt 0.330000 0.875000 +vt 0.485000 0.875000 +vt 0.525000 0.875000 +vt 0.565000 0.875000 +vt 0.605000 0.875000 +vt 0.645000 0.875000 +vt 0.685000 0.875000 +vt 0.745000 0.875000 +vt 0.725000 0.875000 +vt 0.765000 0.875000 +vt 0.805000 0.875000 +vt 0.845000 0.875000 +vt 0.245000 0.875000 +vt 0.285000 0.875000 +vt 0.325000 0.875000 +vt 0.385000 0.875000 +vt 0.365000 0.875000 +vt 0.425000 0.875000 +vt 0.405000 0.875000 +vt 0.445000 0.875000 +vt 0.475000 0.000000 +vt 0.835000 0.000000 +vt 0.515000 0.000000 +vt 0.875000 0.000000 +vt 0.555000 0.000000 +vt 0.275000 0.000000 +vt 0.595000 0.000000 +vt 0.315000 -0.000000 +vt 0.635000 0.000000 +vt 0.355000 -0.000000 +vt 0.675000 -0.000000 +vt 0.395000 -0.000000 +vt 0.720000 0.125000 +vt 0.755000 -0.000000 +vt 0.715000 -0.000000 +vt 0.435000 0.000000 +vt 0.795000 -0.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 0.290000 0.875000 +vt 0.280000 1.000000 +vt 0.280000 0.875000 +vt 0.270000 0.875000 +vt 0.260000 1.000000 +vt 0.260000 0.875000 +vt 0.250000 0.875000 +vt 0.240000 1.000000 +vt 0.240000 0.875000 +vt 0.310000 0.875000 +vt 0.300000 1.000000 +vt 0.300000 0.875000 +vt 0.290000 1.000000 +vt 0.270000 1.000000 +vt 0.250000 1.000000 +vt 0.320000 0.875000 +vt 0.310000 1.000000 +vt 1.000000 -0.000000 +vt 0.985000 0.250000 +vt 0.985000 0.000000 +vt 0.955000 0.000000 +vt 0.940000 0.250000 +vt 0.940000 0.000000 +vt 0.925000 0.000000 +vt 0.910000 0.250000 +vt 0.910000 -0.000000 +vt 0.895000 0.000000 +vt 0.880000 0.250000 +vt 0.880000 -0.000000 +vt 0.970000 0.250000 +vt 0.970000 0.000000 +vt 0.955000 0.250000 +vt 0.925000 0.250000 +vt 0.895000 0.250000 +vt 0.910000 0.273438 +vt 0.925000 0.296875 +vt 0.910000 0.296875 +vt 0.985000 0.289062 +vt 0.970000 0.296875 +vt 0.970000 0.273438 +vt 0.955000 0.296875 +vt 0.955000 0.257812 +vt 0.925000 0.257812 +vt 0.895000 0.289062 +vt 0.895000 0.296875 +vt 0.940000 0.296875 +vt 0.940000 0.343750 +vt 0.925000 0.335938 +vt 0.910000 0.320312 +vt 0.985000 0.304688 +vt 0.970000 0.320312 +vt 0.955000 0.335938 +vt 0.895000 0.304688 +vt 0.880000 0.296875 +vt 1.000000 0.296875 +vt 0.985000 0.296875 +vt 0.955000 0.343750 +vt 0.940000 0.359375 +vt 1.000000 -0.000000 +vt 0.985000 0.250000 +vt 0.985000 0.000000 +vt 0.910000 0.343750 +vt 0.925000 0.359375 +vt 0.910000 0.359375 +vt 0.970000 0.343750 +vt 0.985000 0.359375 +vt 0.970000 0.359375 +vt 1.000000 0.343750 +vt 0.985000 0.343750 +vt 0.955000 0.359375 +vt 0.880000 0.343750 +vt 0.895000 0.359375 +vt 0.880000 0.359375 +vt 0.925000 0.343750 +vt 0.895000 0.343750 +vt 0.955000 0.000000 +vt 0.940000 0.250000 +vt 0.940000 0.000000 +vt 0.925000 0.000000 +vt 0.910000 0.250000 +vt 0.910000 -0.000000 +vt 0.895000 0.000000 +vt 0.880000 0.250000 +vt 0.880000 -0.000000 +vt 0.970000 0.250000 +vt 0.970000 0.000000 +vt 0.955000 0.250000 +vt 0.925000 0.250000 +vt 0.895000 0.250000 +vt 0.925000 0.257812 +vt 0.910000 0.296875 +vt 0.910000 0.273438 +vt 0.970000 0.273438 +vt 0.985000 0.296875 +vt 0.970000 0.296875 +vt 0.955000 0.257812 +vt 0.955000 0.296875 +vt 0.925000 0.296875 +vt 0.895000 0.296875 +vt 0.895000 0.289062 +vt 0.940000 0.296875 +vt 0.955000 0.335938 +vt 0.940000 0.343750 +vt 0.925000 0.335938 +vt 0.910000 0.320312 +vt 0.985000 0.304688 +vt 0.970000 0.320312 +vt 0.895000 0.304688 +vt 0.880000 0.296875 +vt 0.985000 0.289062 +vt 1.000000 0.296875 +vt 0.955000 0.343750 +vt 0.940000 0.359375 +vt 0.910000 0.343750 +vt 0.925000 0.359375 +vt 0.910000 0.359375 +vt 0.970000 0.343750 +vt 0.985000 0.359375 +vt 0.970000 0.359375 +vt 1.000000 0.343750 +vt 0.985000 0.343750 +vt 0.955000 0.359375 +vt 0.880000 0.343750 +vt 0.895000 0.359375 +vt 0.880000 0.359375 +vt 0.925000 0.343750 +vt 0.895000 0.343750 +vt 1.000000 -0.000000 +vt 0.985000 0.250000 +vt 0.985000 0.000000 +vt 0.955000 0.000000 +vt 0.940000 0.250000 +vt 0.940000 0.000000 +vt 0.925000 0.000000 +vt 0.910000 0.250000 +vt 0.910000 -0.000000 +vt 0.895000 0.000000 +vt 0.880000 0.250000 +vt 0.880000 -0.000000 +vt 0.970000 0.250000 +vt 0.970000 0.000000 +vt 0.955000 0.250000 +vt 0.925000 0.250000 +vt 0.895000 0.250000 +vt 0.910000 0.273438 +vt 0.925000 0.296875 +vt 0.910000 0.296875 +vt 0.985000 0.289062 +vt 0.970000 0.296875 +vt 0.970000 0.273438 +vt 0.955000 0.296875 +vt 0.955000 0.257812 +vt 0.925000 0.257812 +vt 0.895000 0.289062 +vt 0.895000 0.296875 +vt 0.940000 0.296875 +vt 0.955000 0.335938 +vt 0.940000 0.343750 +vt 0.925000 0.335938 +vt 0.910000 0.320312 +vt 0.985000 0.304688 +vt 0.970000 0.320312 +vt 0.895000 0.304688 +vt 0.880000 0.296875 +vt 1.000000 0.296875 +vt 0.985000 0.296875 +vt 0.955000 0.359375 +vt 0.940000 0.359375 +vt 1.000000 -0.000000 +vt 0.985000 0.250000 +vt 0.985000 0.000000 +vt 0.910000 0.343750 +vt 0.925000 0.359375 +vt 0.910000 0.359375 +vt 0.970000 0.343750 +vt 0.985000 0.359375 +vt 0.970000 0.359375 +vt 0.985000 0.343750 +vt 1.000000 0.359375 +vt 0.955000 0.343750 +vt 0.895000 0.343750 +vt 0.880000 0.359375 +vt 0.880000 0.343750 +vt 0.925000 0.343750 +vt 0.895000 0.359375 +vt 0.955000 0.000000 +vt 0.940000 0.250000 +vt 0.940000 0.000000 +vt 0.925000 0.000000 +vt 0.910000 0.250000 +vt 0.910000 -0.000000 +vt 0.895000 0.000000 +vt 0.880000 0.250000 +vt 0.880000 -0.000000 +vt 0.970000 0.250000 +vt 0.970000 0.000000 +vt 0.955000 0.250000 +vt 0.925000 0.250000 +vt 0.895000 0.250000 +vt 0.910000 0.273438 +vt 0.925000 0.296875 +vt 0.910000 0.296875 +vt 0.985000 0.289062 +vt 0.970000 0.296875 +vt 0.970000 0.273438 +vt 0.955000 0.296875 +vt 0.955000 0.257812 +vt 0.925000 0.257812 +vt 0.895000 0.289062 +vt 0.895000 0.296875 +vt 0.940000 0.296875 +vt 0.955000 0.335938 +vt 0.940000 0.343750 +vt 0.925000 0.335938 +vt 0.910000 0.320312 +vt 0.985000 0.304688 +vt 0.970000 0.320312 +vt 0.895000 0.304688 +vt 0.880000 0.296875 +vt 1.000000 0.296875 +vt 0.985000 0.296875 +vt 0.955000 0.359375 +vt 0.940000 0.359375 +vt 0.910000 0.343750 +vt 0.925000 0.359375 +vt 0.910000 0.359375 +vt 0.985000 0.343750 +vt 0.970000 0.359375 +vt 0.970000 0.343750 +vt 1.000000 0.343750 +vt 0.985000 0.359375 +vt 0.955000 0.343750 +vt 0.895000 0.343750 +vt 0.880000 0.359375 +vt 0.880000 0.343750 +vt 0.925000 0.343750 +vt 0.895000 0.359375 +vt 0.505000 0.875000 +vt 0.545000 0.875000 +vt 0.585000 0.875000 +vt 0.625000 0.875000 +vt 0.665000 0.875000 +vt 0.705000 0.875000 +vt 0.785000 0.875000 +vt 0.825000 0.875000 +vt 0.865000 0.875000 +vt 0.265000 0.875000 +vt 0.305000 0.875000 +vt 0.345000 0.875000 +vt 0.465000 0.875000 +vt 0.440000 -0.000000 +vt 0.800000 -0.000000 +vt 0.480000 -0.000000 +vt 0.840000 -0.000000 +vt 0.520000 -0.000000 +vt 0.240000 0.000000 +vt 0.560000 -0.000000 +vt 0.280000 -0.000000 +vt 0.600000 0.000000 +vt 0.320000 0.000000 +vt 0.640000 -0.000000 +vt 0.360000 0.000000 +vt 0.720000 -0.000000 +vt 0.680000 0.000000 +vt 0.400000 -0.000000 +vt 0.760000 -0.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 0.320000 1.000000 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.359375 +vt 1.000000 0.359375 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.343750 +vt 1.000000 0.359375 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn 0.8651 0.3511 0.3583 +vn 0.6621 0.3511 0.6621 +vn 0.9363 0.3511 0.0000 +vn 0.8651 0.3511 -0.3583 +vn 0.6621 0.3511 -0.6621 +vn 0.3583 0.3511 -0.8651 +vn -0.0000 0.3511 -0.9363 +vn -0.3583 0.3511 -0.8651 +vn -0.6621 0.3511 -0.6621 +vn -0.8651 0.3511 -0.3583 +vn -0.9363 0.3511 -0.0000 +vn -0.8651 0.3511 0.3583 +vn -0.6621 0.3511 0.6621 +vn -0.3583 0.3511 0.8651 +vn -0.0000 0.3511 0.9363 +vn 0.3583 0.3511 0.8651 +vn 0.8315 0.0000 -0.5556 +vn 0.9808 0.0000 0.1951 +vn 0.5556 0.0000 0.8315 +vn -0.1951 0.0000 0.9808 +vn -0.8315 0.0000 0.5556 +vn -0.9808 0.0000 -0.1951 +vn -0.5556 0.0000 -0.8315 +vn 0.1951 0.0000 -0.9808 +vn 0.5556 0.0000 -0.8315 +vn 0.9808 0.0000 -0.1951 +vn 0.8315 0.0000 0.5556 +vn 0.1951 0.0000 0.9808 +vn -0.5556 0.0000 0.8315 +vn -0.9808 0.0000 0.1951 +vn -0.8315 0.0000 -0.5556 +vn -0.1951 0.0000 -0.9808 +vn 0.0372 -0.1363 -0.9900 +vn 0.6947 0.1866 0.6947 +vn -0.6727 0.0196 0.7396 +vn -0.5000 -0.7071 -0.5000 +vn 0.7396 0.0196 -0.6727 +vn 0.9891 0.1448 0.0283 +vn 0.0283 0.1448 0.9891 +vn -0.9900 -0.1363 0.0372 +vn -0.0945 0.5294 0.8431 +vn -0.6565 0.0671 0.7513 +vn 0.7513 0.0671 -0.6565 +vn 0.8431 0.5294 -0.0945 +vn -0.8620 -0.4617 0.2090 +vn 0.5000 0.7071 0.5000 +vn 0.1319 0.9824 0.1319 +vn -0.3780 0.7194 0.5828 +vn -0.6923 0.0473 0.7200 +vn 0.4172 -0.6737 -0.6099 +vn 0.7200 0.0473 -0.6923 +vn 0.5828 0.7194 -0.3780 +vn -0.6099 -0.6737 0.4172 +vn 0.2090 -0.4617 -0.8620 +vn -0.0372 -0.1363 0.9900 +vn -0.5000 0.7071 0.5000 +vn 0.5000 -0.7071 -0.5000 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 0.5000 +vn -0.6947 0.1866 -0.6947 +vn 0.6727 0.0196 -0.7396 +vn 0.5000 -0.7071 0.5000 +vn -0.7396 0.0196 0.6727 +vn -0.9891 0.1448 -0.0283 +vn -0.0283 0.1448 -0.9891 +vn 0.9900 -0.1363 -0.0372 +vn 0.6565 0.0671 -0.7513 +vn -0.2090 -0.4617 0.8620 +vn -0.7513 0.0671 0.6565 +vn -0.8431 0.5294 0.0945 +vn 0.0945 0.5294 -0.8431 +vn 0.8620 -0.4617 -0.2090 +vn -0.5000 0.7071 -0.5000 +vn -0.5828 0.7194 0.3780 +vn -0.1319 0.9824 -0.1319 +vn 0.3780 0.7194 -0.5828 +vn 0.6923 0.0473 -0.7200 +vn -0.4172 -0.6737 0.6099 +vn -0.7200 0.0473 0.6923 +vn 0.6099 -0.6737 -0.4172 +vn -0.9900 -0.1363 -0.0372 +vn 0.6947 0.1866 -0.6947 +vn 0.7396 0.0196 0.6727 +vn -0.6727 0.0196 -0.7396 +vn 0.0283 0.1448 -0.9891 +vn 0.9891 0.1448 -0.0283 +vn 0.0372 -0.1363 0.9900 +vn 0.8431 0.5294 0.0945 +vn 0.7513 0.0671 0.6565 +vn -0.6565 0.0671 -0.7513 +vn -0.0945 0.5294 -0.8431 +vn 0.2090 -0.4617 0.8620 +vn -0.3780 0.7194 -0.5828 +vn 0.1319 0.9824 -0.1319 +vn 0.5828 0.7194 0.3780 +vn 0.7200 0.0473 0.6923 +vn -0.6099 -0.6737 -0.4172 +vn -0.6923 0.0473 -0.7200 +vn 0.4172 -0.6737 0.6099 +vn -0.8620 -0.4617 -0.2090 +vn 0.9900 -0.1363 0.0372 +vn -0.6947 0.1866 0.6947 +vn -0.7396 0.0196 -0.6727 +vn 0.6727 0.0196 0.7396 +vn -0.0283 0.1448 0.9891 +vn -0.9891 0.1448 0.0283 +vn -0.0372 -0.1363 -0.9900 +vn -0.8431 0.5294 -0.0945 +vn -0.7513 0.0671 -0.6565 +vn 0.6565 0.0671 0.7513 +vn 0.0945 0.5294 0.8431 +vn -0.2090 -0.4617 -0.8620 +vn 0.3780 0.7194 0.5828 +vn -0.1319 0.9824 0.1319 +vn -0.5828 0.7194 -0.3780 +vn -0.7200 0.0473 -0.6923 +vn 0.6099 -0.6737 0.4172 +vn 0.6923 0.0473 0.7200 +vn -0.4172 -0.6737 -0.6099 +vn 0.8620 -0.4617 0.2090 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 9/7/3 15/8/3 11/9/3 +f 10/10/2 13/11/2 9/12/2 +f 12/13/4 14/14/4 10/15/4 +f 14/14/5 15/8/5 13/11/5 +f 17/16/4 23/17/4 19/18/4 +f 11/19/1 16/20/1 12/21/1 +f 18/22/2 21/23/2 17/24/2 +f 20/25/3 22/26/3 18/27/3 +f 22/26/6 23/17/6 21/23/6 +f 19/28/1 24/29/1 20/30/1 +f 25/31/6 31/32/6 27/33/6 +f 26/34/2 29/35/2 25/36/2 +f 28/37/5 30/38/5 26/39/5 +f 30/38/3 31/32/3 29/35/3 +f 33/40/5 39/41/5 35/42/5 +f 27/43/1 32/44/1 28/45/1 +f 34/46/2 37/47/2 33/48/2 +f 36/49/6 38/50/6 34/51/6 +f 38/50/4 39/41/4 37/47/4 +f 35/52/1 40/53/1 36/54/1 +f 10/55/5 2/2/5 4/56/5 +f 26/57/3 4/58/3 3/59/3 +f 6/4/5 12/60/5 8/61/5 +f 8/62/3 28/63/3 7/64/3 +f 8/62/3 25/65/3 27/66/3 +f 10/55/5 8/61/5 12/60/5 +f 7/67/6 20/68/6 5/69/6 +f 18/70/6 3/71/6 1/72/6 +f 34/73/4 1/74/4 2/75/4 +f 5/76/4 36/77/4 6/78/4 +f 5/76/4 33/79/4 35/80/4 +f 18/70/6 5/69/6 20/68/6 +f 34/73/4 6/78/4 36/77/4 +f 6/4/5 9/81/5 11/82/5 +f 19/83/6 3/71/6 17/84/6 +f 3/59/3 28/63/3 26/57/3 +f 54/85/2 85/86/2 53/87/2 +f 46/88/2 79/89/2 78/90/2 +f 55/91/2 86/92/2 54/85/2 +f 47/93/2 80/94/2 79/95/2 +f 56/96/2 87/97/2 55/91/2 +f 48/98/2 81/99/2 80/100/2 +f 42/101/2 73/102/2 41/103/2 +f 41/103/2 88/104/2 56/96/2 +f 49/105/2 82/106/2 81/107/2 +f 43/108/2 74/109/2 42/101/2 +f 50/110/2 83/111/2 82/112/2 +f 43/108/2 76/113/2 75/114/2 +f 51/115/2 84/116/2 83/117/2 +f 44/118/2 77/119/2 76/120/2 +f 52/121/2 85/122/2 84/123/2 +f 46/88/2 77/124/2 45/125/2 +f 89/126/2 93/127/2 97/128/2 +f 135/129/2 152/130/2 151/131/2 +f 135/129/2 150/132/2 134/133/2 +f 134/133/2 149/134/2 133/135/2 +f 132/136/2 149/134/2 148/137/2 +f 131/138/2 148/137/2 147/139/2 +f 131/138/2 146/140/2 130/141/2 +f 130/141/2 145/142/2 129/143/2 +f 128/144/2 145/142/2 144/145/2 +f 127/146/2 144/145/2 143/147/2 +f 126/148/2 143/147/2 142/149/2 +f 126/148/2 141/150/2 125/151/2 +f 125/152/2 140/153/2 124/154/2 +f 123/155/2 140/153/2 139/156/2 +f 123/155/2 138/157/2 122/158/2 +f 122/158/2 137/159/2 121/160/2 +f 121/160/2 152/130/2 136/161/2 +f 69/162/1 166/163/1 70/164/1 +f 166/163/1 71/165/1 70/164/1 +f 71/165/1 168/166/1 72/167/1 +f 168/166/1 57/168/1 72/167/1 +f 153/169/1 58/170/1 57/168/1 +f 154/171/1 59/172/1 58/170/1 +f 59/172/1 156/173/1 60/174/1 +f 156/173/1 61/175/1 60/174/1 +f 157/176/1 62/177/1 61/178/1 +f 62/177/1 159/179/1 63/180/1 +f 63/180/1 160/181/1 64/182/1 +f 64/182/1 161/183/1 65/184/1 +f 161/183/1 66/185/1 65/184/1 +f 162/186/1 67/187/1 66/185/1 +f 163/188/1 68/189/1 67/187/1 +f 164/190/1 69/162/1 68/189/1 +f 110/191/1 173/192/1 174/193/1 +f 118/194/1 181/195/1 182/196/1 +f 110/191/1 175/197/1 111/198/1 +f 119/199/1 182/200/1 183/201/1 +f 111/198/1 176/202/1 112/203/1 +f 119/199/1 184/204/1 120/205/1 +f 112/203/1 177/206/1 113/207/1 +f 106/208/1 169/209/1 170/210/1 +f 105/211/1 184/212/1 169/209/1 +f 113/207/1 178/213/1 114/214/1 +f 107/215/1 170/216/1 171/217/1 +f 114/214/1 179/218/1 115/219/1 +f 107/215/1 172/220/1 108/221/1 +f 115/219/1 180/222/1 116/223/1 +f 108/221/1 173/224/1 109/225/1 +f 116/223/1 181/226/1 117/227/1 +f 483/228/5 482/229/5 481/230/5 +f 491/231/5 490/232/5 489/233/5 +f 483/228/3 488/234/3 484/235/3 +f 482/229/4 486/236/4 481/230/4 +f 484/235/2 487/237/2 482/229/2 +f 481/230/1 485/238/1 483/228/1 +f 491/231/3 496/239/3 492/240/3 +f 490/232/4 494/241/4 489/233/4 +f 492/240/2 495/242/2 490/232/2 +f 489/233/1 493/243/1 491/231/1 +f 499/244/6 498/245/6 497/246/6 +f 507/247/6 506/248/6 505/249/6 +f 499/244/4 504/250/4 500/251/4 +f 498/245/3 502/252/3 497/246/3 +f 500/251/2 503/253/2 498/245/2 +f 497/246/1 501/254/1 499/244/1 +f 507/247/4 512/255/4 508/256/4 +f 506/248/3 510/257/3 505/249/3 +f 508/256/2 511/258/2 506/248/2 +f 505/249/1 509/259/1 507/247/1 +f 515/260/3 514/261/3 513/262/3 +f 523/263/3 522/264/3 521/265/3 +f 515/260/6 520/266/6 516/267/6 +f 514/261/5 518/268/5 513/262/5 +f 516/267/2 519/269/2 514/261/2 +f 513/262/1 517/270/1 515/260/1 +f 523/263/6 528/271/6 524/272/6 +f 522/264/5 526/273/5 521/265/5 +f 524/272/2 527/274/2 522/264/2 +f 521/265/1 525/275/1 523/263/1 +f 531/276/4 530/277/4 529/278/4 +f 539/279/4 538/280/4 537/281/4 +f 531/276/5 536/282/5 532/283/5 +f 530/277/6 534/284/6 529/278/6 +f 532/283/2 535/285/2 530/277/2 +f 529/278/1 533/286/1 531/276/1 +f 539/279/5 544/287/5 540/288/5 +f 538/280/6 542/289/6 537/281/6 +f 540/288/2 543/290/2 538/280/2 +f 537/281/1 541/291/1 539/279/1 +f 3/1/1 4/56/1 2/2/1 +f 6/4/2 8/61/2 7/5/2 +f 9/7/3 13/11/3 15/8/3 +f 10/10/2 14/14/2 13/11/2 +f 12/13/4 16/20/4 14/14/4 +f 14/14/5 16/20/5 15/8/5 +f 17/16/4 21/23/4 23/17/4 +f 11/19/1 15/8/1 16/20/1 +f 18/22/2 22/26/2 21/23/2 +f 20/25/3 24/29/3 22/26/3 +f 22/26/6 24/29/6 23/17/6 +f 19/28/1 23/17/1 24/29/1 +f 25/31/6 29/35/6 31/32/6 +f 26/34/2 30/38/2 29/35/2 +f 28/37/5 32/44/5 30/38/5 +f 30/38/3 32/44/3 31/32/3 +f 33/40/5 37/47/5 39/41/5 +f 27/43/1 31/32/1 32/44/1 +f 34/46/2 38/50/2 37/47/2 +f 36/49/6 40/53/6 38/50/6 +f 38/50/4 40/53/4 39/41/4 +f 35/52/1 39/41/1 40/53/1 +f 10/55/5 9/81/5 2/2/5 +f 26/57/3 25/65/3 4/58/3 +f 6/4/5 11/82/5 12/60/5 +f 8/62/3 27/66/3 28/63/3 +f 8/62/3 4/58/3 25/65/3 +f 10/55/5 4/56/5 8/61/5 +f 7/67/6 19/83/6 20/68/6 +f 18/70/6 17/84/6 3/71/6 +f 34/73/4 33/79/4 1/74/4 +f 5/76/4 35/80/4 36/77/4 +f 5/76/4 1/74/4 33/79/4 +f 18/70/6 1/72/6 5/69/6 +f 34/73/4 2/75/4 6/78/4 +f 6/4/5 2/2/5 9/81/5 +f 19/83/6 7/67/6 3/71/6 +f 3/59/3 7/64/3 28/63/3 +f 54/85/2 86/292/2 85/86/2 +f 46/88/2 47/93/2 79/89/2 +f 55/91/2 87/293/2 86/92/2 +f 47/93/2 48/98/2 80/94/2 +f 56/96/2 88/294/2 87/97/2 +f 48/98/2 49/105/2 81/99/2 +f 42/101/2 74/295/2 73/102/2 +f 41/103/2 73/296/2 88/104/2 +f 49/105/2 50/110/2 82/106/2 +f 43/108/2 75/297/2 74/109/2 +f 50/110/2 51/115/2 83/111/2 +f 43/108/2 44/118/2 76/113/2 +f 51/115/2 52/121/2 84/116/2 +f 44/118/2 45/298/2 77/119/2 +f 52/121/2 53/87/2 85/122/2 +f 46/88/2 78/299/2 77/124/2 +f 89/126/2 90/300/2 91/301/2 +f 91/301/2 92/302/2 89/126/2 +f 92/302/2 93/127/2 89/126/2 +f 93/127/2 94/303/2 97/128/2 +f 94/303/2 95/304/2 97/128/2 +f 95/304/2 96/305/2 97/128/2 +f 97/128/2 98/306/2 99/307/2 +f 99/307/2 100/308/2 101/309/2 +f 101/309/2 102/310/2 103/311/2 +f 103/311/2 104/312/2 89/126/2 +f 97/128/2 99/307/2 89/126/2 +f 99/307/2 101/309/2 89/126/2 +f 101/309/2 103/311/2 89/126/2 +f 135/129/2 136/161/2 152/130/2 +f 135/129/2 151/131/2 150/132/2 +f 134/133/2 150/132/2 149/134/2 +f 132/136/2 133/135/2 149/134/2 +f 131/138/2 132/136/2 148/137/2 +f 131/138/2 147/139/2 146/140/2 +f 130/141/2 146/140/2 145/142/2 +f 128/144/2 129/143/2 145/142/2 +f 127/146/2 128/144/2 144/145/2 +f 126/148/2 127/146/2 143/147/2 +f 126/148/2 142/149/2 141/150/2 +f 125/152/2 141/313/2 140/153/2 +f 123/155/2 124/154/2 140/153/2 +f 123/155/2 139/156/2 138/157/2 +f 122/158/2 138/157/2 137/159/2 +f 121/160/2 137/159/2 152/130/2 +f 69/162/1 165/314/1 166/163/1 +f 166/163/1 167/315/1 71/165/1 +f 71/165/1 167/315/1 168/166/1 +f 168/166/1 153/169/1 57/168/1 +f 153/169/1 154/171/1 58/170/1 +f 154/171/1 155/316/1 59/172/1 +f 59/172/1 155/316/1 156/173/1 +f 156/173/1 157/317/1 61/175/1 +f 157/176/1 158/318/1 62/177/1 +f 62/177/1 158/318/1 159/179/1 +f 63/180/1 159/179/1 160/181/1 +f 64/182/1 160/181/1 161/183/1 +f 161/183/1 162/186/1 66/185/1 +f 162/186/1 163/188/1 67/187/1 +f 163/188/1 164/190/1 68/189/1 +f 164/190/1 165/314/1 69/162/1 +f 110/191/1 109/319/1 173/192/1 +f 118/194/1 117/227/1 181/195/1 +f 110/191/1 174/320/1 175/197/1 +f 119/199/1 118/194/1 182/200/1 +f 111/198/1 175/321/1 176/202/1 +f 119/199/1 183/322/1 184/204/1 +f 112/203/1 176/323/1 177/206/1 +f 106/208/1 105/211/1 169/209/1 +f 105/211/1 120/205/1 184/212/1 +f 113/207/1 177/324/1 178/213/1 +f 107/215/1 106/208/1 170/216/1 +f 114/214/1 178/325/1 179/218/1 +f 107/215/1 171/326/1 172/220/1 +f 115/219/1 179/327/1 180/222/1 +f 108/221/1 172/328/1 173/224/1 +f 116/223/1 180/329/1 181/226/1 +f 483/228/5 484/235/5 482/229/5 +f 491/231/5 492/240/5 490/232/5 +f 483/228/3 485/330/3 488/234/3 +f 482/229/4 487/331/4 486/236/4 +f 484/235/2 488/332/2 487/237/2 +f 481/230/1 486/333/1 485/238/1 +f 491/231/3 493/334/3 496/239/3 +f 490/232/4 495/335/4 494/241/4 +f 492/240/2 496/336/2 495/242/2 +f 489/233/1 494/337/1 493/243/1 +f 499/244/6 500/251/6 498/245/6 +f 507/247/6 508/256/6 506/248/6 +f 499/244/4 501/338/4 504/250/4 +f 498/245/3 503/339/3 502/252/3 +f 500/251/2 504/340/2 503/253/2 +f 497/246/1 502/341/1 501/254/1 +f 507/247/4 509/342/4 512/255/4 +f 506/248/3 511/343/3 510/257/3 +f 508/256/2 512/344/2 511/258/2 +f 505/249/1 510/345/1 509/259/1 +f 515/260/3 516/267/3 514/261/3 +f 523/263/3 524/272/3 522/264/3 +f 515/260/6 517/346/6 520/266/6 +f 514/261/5 519/347/5 518/268/5 +f 516/267/2 520/348/2 519/269/2 +f 513/262/1 518/349/1 517/270/1 +f 523/263/6 525/350/6 528/271/6 +f 522/264/5 527/351/5 526/273/5 +f 524/272/2 528/352/2 527/274/2 +f 521/265/1 526/353/1 525/275/1 +f 531/276/4 532/283/4 530/277/4 +f 539/279/4 540/288/4 538/280/4 +f 531/276/5 533/354/5 536/282/5 +f 530/277/6 535/355/6 534/284/6 +f 532/283/2 536/356/2 535/285/2 +f 529/278/1 534/357/1 533/286/1 +f 539/279/5 541/358/5 544/287/5 +f 538/280/6 543/359/6 542/289/6 +f 540/288/2 544/360/2 543/290/2 +f 537/281/1 542/361/1 541/291/1 +s 1 +f 69/162/5 54/85/7 53/87/5 +f 62/177/8 47/93/9 46/88/8 +f 70/164/7 55/91/10 54/85/7 +f 63/180/9 48/98/11 47/93/9 +f 71/165/10 56/96/12 55/91/10 +f 64/182/11 49/105/4 48/98/11 +f 57/168/3 42/101/13 41/103/3 +f 72/167/12 41/103/3 56/96/12 +f 65/184/4 50/110/14 49/105/4 +f 58/170/13 43/108/15 42/101/13 +f 66/185/14 51/115/16 50/110/14 +f 59/172/15 44/118/17 43/108/15 +f 67/187/16 52/121/18 51/115/16 +f 60/174/17 45/298/6 44/118/17 +f 68/189/18 53/87/5 52/121/18 +f 61/178/6 46/88/8 45/125/6 +f 84/116/19 99/362/20 83/117/20 +f 85/122/21 100/363/19 84/123/19 +f 86/292/22 101/364/21 85/86/21 +f 87/293/23 102/365/22 86/92/22 +f 88/294/24 103/366/23 87/97/23 +f 73/296/25 104/367/24 88/104/24 +f 73/102/25 90/368/26 89/369/25 +f 75/297/27 90/370/26 74/109/26 +f 76/113/28 91/371/27 75/114/27 +f 77/119/29 92/372/28 76/120/28 +f 78/299/30 93/373/29 77/124/29 +f 79/89/31 94/374/30 78/90/30 +f 80/94/32 95/375/31 79/95/31 +f 80/100/32 97/376/33 96/377/32 +f 81/107/33 98/378/34 97/379/33 +f 83/111/20 98/380/34 82/112/34 +f 117/227/5 132/136/18 116/223/18 +f 110/191/8 125/151/6 109/319/6 +f 118/194/7 133/135/5 117/227/5 +f 111/198/9 126/148/8 110/191/8 +f 119/199/10 134/133/7 118/194/7 +f 112/203/11 127/146/9 111/198/9 +f 120/205/12 135/129/10 119/199/10 +f 113/207/4 128/144/11 112/203/11 +f 106/208/13 121/160/3 105/211/3 +f 105/211/3 136/161/12 120/205/12 +f 114/214/14 129/143/4 113/207/4 +f 107/215/15 122/158/13 106/208/13 +f 115/219/16 130/141/14 114/214/14 +f 108/221/17 123/155/15 107/215/15 +f 116/223/18 131/138/16 115/219/16 +f 109/225/6 124/154/17 108/221/17 +f 137/159/3 168/166/12 152/130/12 +f 146/140/14 161/183/4 145/142/4 +f 139/156/15 154/171/13 138/157/13 +f 147/139/16 162/186/14 146/140/14 +f 140/153/17 155/316/15 139/156/15 +f 148/137/18 163/188/16 147/139/16 +f 141/313/6 156/173/17 140/153/17 +f 149/134/5 164/190/18 148/137/18 +f 142/149/8 157/176/6 141/150/6 +f 150/132/7 165/314/5 149/134/5 +f 143/147/9 158/318/8 142/149/8 +f 151/131/10 166/163/7 150/132/7 +f 144/145/11 159/179/9 143/147/9 +f 152/130/12 167/315/10 151/131/10 +f 145/142/4 160/181/11 144/145/11 +f 138/157/13 153/169/3 137/159/3 +f 178/325/14 195/381/16 179/218/16 +f 171/326/15 188/382/17 172/220/17 +f 179/327/16 196/383/18 180/222/18 +f 172/328/17 189/384/6 173/224/6 +f 180/329/18 197/385/5 181/226/5 +f 173/192/6 190/386/8 174/193/8 +f 181/195/5 198/387/7 182/196/7 +f 174/320/8 191/388/9 175/197/9 +f 182/200/7 199/389/10 183/201/10 +f 175/321/9 192/390/11 176/202/11 +f 183/322/10 200/391/12 184/204/12 +f 176/323/11 193/392/4 177/206/4 +f 169/393/3 186/394/13 170/210/13 +f 184/212/12 185/395/3 169/209/3 +f 177/324/4 194/396/14 178/213/14 +f 170/216/13 187/397/15 171/217/15 +f 208/398/35 215/399/36 207/400/36 +f 206/401/37 213/402/38 205/403/38 +f 204/404/39 211/405/40 203/406/40 +f 202/407/41 209/408/42 201/409/42 +f 201/409/42 216/410/35 208/398/35 +f 207/400/36 214/411/37 206/401/37 +f 205/403/38 212/412/39 204/404/39 +f 203/413/40 210/414/41 202/407/41 +f 224/415/43 231/416/44 223/417/44 +f 222/418/45 229/419/46 221/420/46 +f 220/421/47 227/422/48 219/423/48 +f 218/424/49 225/425/50 217/426/50 +f 217/426/50 232/427/43 224/415/43 +f 223/417/44 230/428/45 222/418/45 +f 221/420/46 228/429/47 220/421/47 +f 219/430/48 226/431/49 218/424/49 +f 240/432/39 247/433/40 239/434/40 +f 238/435/41 245/436/42 237/437/42 +f 236/438/35 243/439/36 235/440/36 +f 234/441/37 241/442/38 233/443/38 +f 233/443/38 248/444/39 240/432/39 +f 239/434/40 246/445/41 238/435/41 +f 237/437/42 244/446/35 236/438/35 +f 235/447/36 242/448/37 234/441/37 +f 256/449/47 263/450/48 255/451/48 +f 254/452/49 261/453/50 253/454/50 +f 252/455/43 259/456/44 251/457/44 +f 250/458/45 257/459/46 249/460/46 +f 249/460/46 264/461/47 256/449/47 +f 255/451/48 262/462/49 254/452/49 +f 253/454/50 260/463/43 252/455/43 +f 251/464/44 258/465/45 250/458/45 +f 272/466/41 279/467/42 271/468/42 +f 270/469/35 277/470/36 269/471/36 +f 268/472/37 275/473/38 267/474/38 +f 266/475/39 273/476/40 265/477/40 +f 265/477/40 280/478/41 272/466/41 +f 271/468/42 278/479/35 270/469/35 +f 269/471/36 276/480/37 268/472/37 +f 267/481/38 274/482/39 266/475/39 +f 288/483/49 295/484/50 287/485/50 +f 286/486/43 293/487/44 285/488/44 +f 284/489/45 291/490/46 283/491/46 +f 282/492/47 289/493/48 281/494/48 +f 281/494/48 296/495/49 288/483/49 +f 287/485/50 294/496/43 286/486/43 +f 285/488/44 292/497/45 284/489/45 +f 283/498/46 290/499/47 282/492/47 +f 304/500/37 311/501/38 303/502/38 +f 302/503/39 309/504/40 301/505/40 +f 300/506/41 307/507/42 299/508/42 +f 298/509/35 305/510/36 297/511/36 +f 297/511/36 312/512/37 304/500/37 +f 303/502/38 310/513/39 302/503/39 +f 301/505/40 308/514/41 300/506/41 +f 299/515/42 306/516/35 298/509/35 +f 320/517/45 327/518/46 319/519/46 +f 318/520/47 325/521/48 317/522/48 +f 316/523/49 323/524/50 315/525/50 +f 314/526/43 321/527/44 313/528/44 +f 313/528/44 328/529/45 320/517/45 +f 319/519/46 326/530/47 318/520/47 +f 317/522/48 324/531/49 316/523/49 +f 315/532/50 322/533/43 314/526/43 +f 331/534/15 338/535/51 330/536/3 +f 336/537/5 343/538/52 335/539/16 +f 334/540/4 341/541/53 333/542/9 +f 332/543/6 339/544/54 331/545/15 +f 330/536/3 337/546/55 329/547/10 +f 329/547/10 344/548/56 336/537/5 +f 335/539/16 342/549/57 334/540/4 +f 333/542/9 340/550/58 332/543/6 +f 341/551/53 349/552/59 348/553/60 +f 338/554/51 345/555/61 337/556/55 +f 337/556/55 351/557/62 344/558/56 +f 343/538/52 349/552/59 342/559/57 +f 340/560/58 348/553/60 347/561/63 +f 343/538/52 351/557/62 350/562/64 +f 351/557/62 357/563/65 350/562/64 +f 348/553/60 356/564/66 355/565/67 +f 345/555/61 353/566/68 352/567/69 +f 345/555/61 358/568/70 351/557/62 +f 350/562/64 356/564/66 349/552/59 +f 348/553/60 354/569/71 347/561/63 +f 340/560/58 347/561/63 339/570/54 +f 347/561/63 354/569/71 339/570/54 +f 338/554/51 339/571/54 346/572/72 +f 346/572/72 339/571/54 353/566/68 +f 358/573/70 364/574/2 357/563/65 +f 369/575/16 376/576/73 368/577/4 +f 355/578/67 363/579/74 361/580/9 +f 352/581/69 359/582/75 360/583/10 +f 339/584/54 359/582/75 353/585/68 +f 352/581/69 365/586/76 358/573/70 +f 339/587/54 362/588/77 366/589/1 +f 357/563/65 363/579/74 356/590/66 +f 355/578/67 362/588/77 354/591/71 +f 374/592/6 381/593/78 373/594/15 +f 372/595/3 379/596/79 371/597/10 +f 370/598/5 377/599/80 369/600/16 +f 368/577/4 375/601/81 367/602/9 +f 367/602/9 382/603/82 374/592/6 +f 373/594/15 380/604/83 372/595/3 +f 371/597/10 378/605/84 370/598/5 +f 380/606/83 386/607/85 379/608/79 +f 375/609/81 384/610/86 383/611/87 +f 382/612/82 383/611/87 389/613/88 +f 381/593/78 387/614/89 380/606/83 +f 379/608/79 385/615/90 378/616/84 +f 382/612/82 388/617/91 381/593/78 +f 388/617/91 396/618/92 395/619/93 +f 386/607/85 394/620/94 393/621/95 +f 383/611/87 391/622/96 390/623/97 +f 389/613/88 390/623/97 396/618/92 +f 388/617/91 394/620/94 387/614/89 +f 386/607/85 392/624/98 385/615/90 +f 378/616/84 385/615/90 377/625/80 +f 385/615/90 392/624/98 377/625/80 +f 376/626/73 377/627/80 384/610/86 +f 384/610/86 377/627/80 391/622/96 +f 396/628/92 402/629/2 395/619/93 +f 393/630/95 401/631/76 399/632/10 +f 390/633/97 397/634/77 398/635/9 +f 377/636/80 397/634/77 391/637/96 +f 390/633/97 403/638/74 396/628/92 +f 377/639/80 400/640/75 404/641/1 +f 395/619/93 401/631/76 394/642/94 +f 393/630/95 400/640/75 392/643/98 +f 407/644/9 414/645/99 406/646/6 +f 412/647/3 419/648/100 411/649/10 +f 410/650/5 417/651/101 409/652/16 +f 408/653/4 415/654/77 407/655/9 +f 406/646/6 413/656/102 405/657/15 +f 405/657/15 420/658/103 412/647/3 +f 411/649/10 418/659/104 410/650/5 +f 409/652/16 416/660/105 408/653/4 +f 417/661/101 425/662/106 424/663/107 +f 414/664/99 421/665/108 413/666/102 +f 413/666/102 427/667/109 420/668/103 +f 419/648/100 425/662/106 418/669/104 +f 416/670/105 424/663/107 423/671/110 +f 420/668/103 426/672/76 419/648/100 +f 426/672/76 434/673/111 433/674/112 +f 424/663/107 432/675/113 431/676/114 +f 421/665/108 429/677/115 428/678/116 +f 421/665/108 434/673/111 427/667/109 +f 426/672/76 432/675/113 425/662/106 +f 424/663/107 430/679/117 423/671/110 +f 416/670/105 423/671/110 415/680/77 +f 423/671/110 430/679/117 415/680/77 +f 414/664/99 415/681/77 422/682/118 +f 422/682/118 415/681/77 429/677/115 +f 433/674/112 441/683/91 440/684/2 +f 445/685/10 452/686/119 444/687/5 +f 431/688/114 439/689/64 437/690/16 +f 428/691/116 435/692/54 436/693/15 +f 429/694/115 442/695/1 435/692/54 +f 434/696/111 436/693/15 441/683/91 +f 430/697/117 442/698/1 415/699/77 +f 433/674/112 439/689/64 432/700/113 +f 431/688/114 438/701/80 430/697/117 +f 450/702/4 457/703/120 449/704/9 +f 448/705/6 455/706/121 447/707/15 +f 446/708/3 453/709/75 445/710/10 +f 444/687/5 451/711/122 443/712/16 +f 443/712/16 458/713/123 450/702/4 +f 449/704/9 456/714/124 448/705/6 +f 447/707/15 454/715/125 446/708/3 +f 455/716/121 463/717/126 462/718/127 +f 452/719/119 459/720/128 451/721/122 +f 451/721/122 465/722/129 458/723/123 +f 457/703/120 463/717/126 456/724/124 +f 454/725/125 462/718/127 461/726/130 +f 458/723/123 464/727/74 457/703/120 +f 464/727/74 472/728/131 471/729/132 +f 462/718/127 470/730/133 469/731/134 +f 459/720/128 467/732/135 466/733/136 +f 465/722/129 466/733/136 472/728/131 +f 464/727/74 470/730/133 463/717/126 +f 462/718/127 468/734/137 461/726/130 +f 454/725/125 461/726/130 453/735/75 +f 461/726/130 468/734/137 453/735/75 +f 452/719/119 453/736/75 460/737/138 +f 460/737/138 453/736/75 467/732/135 +f 471/729/132 479/738/64 478/739/2 +f 469/740/134 477/741/91 475/742/15 +f 467/743/135 474/744/16 466/745/136 +f 453/746/75 473/747/80 467/743/135 +f 466/745/136 479/738/64 472/748/131 +f 468/749/137 480/750/1 453/751/75 +f 471/729/132 477/741/91 470/752/133 +f 469/740/134 476/753/54 468/749/137 +f 69/162/5 70/164/7 54/85/7 +f 62/177/8 63/180/9 47/93/9 +f 70/164/7 71/165/10 55/91/10 +f 63/180/9 64/182/11 48/98/11 +f 71/165/10 72/167/12 56/96/12 +f 64/182/11 65/184/4 49/105/4 +f 57/168/3 58/170/13 42/101/13 +f 72/167/12 57/168/3 41/103/3 +f 65/184/4 66/185/14 50/110/14 +f 58/170/13 59/172/15 43/108/15 +f 66/185/14 67/187/16 51/115/16 +f 59/172/15 60/174/17 44/118/17 +f 67/187/16 68/189/18 52/121/18 +f 60/174/17 61/175/6 45/298/6 +f 68/189/18 69/162/5 53/87/5 +f 61/178/6 62/177/8 46/88/8 +f 84/116/19 100/754/19 99/362/20 +f 85/122/21 101/755/21 100/363/19 +f 86/292/22 102/756/22 101/364/21 +f 87/293/23 103/757/23 102/365/22 +f 88/294/24 104/758/24 103/366/23 +f 73/296/25 89/759/25 104/367/24 +f 73/102/25 74/295/26 90/368/26 +f 75/297/27 91/760/27 90/370/26 +f 76/113/28 92/761/28 91/371/27 +f 77/119/29 93/762/29 92/372/28 +f 78/299/30 94/763/30 93/373/29 +f 79/89/31 95/764/31 94/374/30 +f 80/94/32 96/765/32 95/375/31 +f 80/100/32 81/99/33 97/376/33 +f 81/107/33 82/106/34 98/378/34 +f 83/111/20 99/766/20 98/380/34 +f 117/227/5 133/135/5 132/136/18 +f 110/191/8 126/148/8 125/151/6 +f 118/194/7 134/133/7 133/135/5 +f 111/198/9 127/146/9 126/148/8 +f 119/199/10 135/129/10 134/133/7 +f 112/203/11 128/144/11 127/146/9 +f 120/205/12 136/161/12 135/129/10 +f 113/207/4 129/143/4 128/144/11 +f 106/208/13 122/158/13 121/160/3 +f 105/211/3 121/160/3 136/161/12 +f 114/214/14 130/141/14 129/143/4 +f 107/215/15 123/155/15 122/158/13 +f 115/219/16 131/138/16 130/141/14 +f 108/221/17 124/154/17 123/155/15 +f 116/223/18 132/136/18 131/138/16 +f 109/225/6 125/152/6 124/154/17 +f 137/159/3 153/169/3 168/166/12 +f 146/140/14 162/186/14 161/183/4 +f 139/156/15 155/316/15 154/171/13 +f 147/139/16 163/188/16 162/186/14 +f 140/153/17 156/173/17 155/316/15 +f 148/137/18 164/190/18 163/188/16 +f 141/313/6 157/317/6 156/173/17 +f 149/134/5 165/314/5 164/190/18 +f 142/149/8 158/318/8 157/176/6 +f 150/132/7 166/163/7 165/314/5 +f 143/147/9 159/179/9 158/318/8 +f 151/131/10 167/315/10 166/163/7 +f 144/145/11 160/181/11 159/179/9 +f 152/130/12 168/166/12 167/315/10 +f 145/142/4 161/183/4 160/181/11 +f 138/157/13 154/171/13 153/169/3 +f 178/325/14 194/767/14 195/381/16 +f 171/326/15 187/768/15 188/382/17 +f 179/327/16 195/769/16 196/383/18 +f 172/328/17 188/770/17 189/384/6 +f 180/329/18 196/771/18 197/385/5 +f 173/192/6 189/772/6 190/386/8 +f 181/195/5 197/773/5 198/387/7 +f 174/320/8 190/774/8 191/388/9 +f 182/200/7 198/775/7 199/389/10 +f 175/321/9 191/776/9 192/390/11 +f 183/322/10 199/777/10 200/391/12 +f 176/323/11 192/778/11 193/392/4 +f 169/393/3 185/779/3 186/394/13 +f 184/212/12 200/780/12 185/395/3 +f 177/324/4 193/781/4 194/396/14 +f 170/216/13 186/782/13 187/397/15 +f 208/398/35 216/410/35 215/399/36 +f 206/401/37 214/411/37 213/402/38 +f 204/404/39 212/412/39 211/405/40 +f 202/407/41 210/414/41 209/408/42 +f 201/409/42 209/408/42 216/410/35 +f 207/400/36 215/399/36 214/411/37 +f 205/403/38 213/402/38 212/412/39 +f 203/413/40 211/783/40 210/414/41 +f 224/415/43 232/427/43 231/416/44 +f 222/418/45 230/428/45 229/419/46 +f 220/421/47 228/429/47 227/422/48 +f 218/424/49 226/431/49 225/425/50 +f 217/426/50 225/425/50 232/427/43 +f 223/417/44 231/416/44 230/428/45 +f 221/420/46 229/419/46 228/429/47 +f 219/430/48 227/784/48 226/431/49 +f 240/432/39 248/444/39 247/433/40 +f 238/435/41 246/445/41 245/436/42 +f 236/438/35 244/446/35 243/439/36 +f 234/441/37 242/448/37 241/442/38 +f 233/443/38 241/442/38 248/444/39 +f 239/434/40 247/433/40 246/445/41 +f 237/437/42 245/436/42 244/446/35 +f 235/447/36 243/785/36 242/448/37 +f 256/449/47 264/461/47 263/450/48 +f 254/452/49 262/462/49 261/453/50 +f 252/455/43 260/463/43 259/456/44 +f 250/458/45 258/465/45 257/459/46 +f 249/460/46 257/459/46 264/461/47 +f 255/451/48 263/450/48 262/462/49 +f 253/454/50 261/453/50 260/463/43 +f 251/464/44 259/786/44 258/465/45 +f 272/466/41 280/478/41 279/467/42 +f 270/469/35 278/479/35 277/470/36 +f 268/472/37 276/480/37 275/473/38 +f 266/475/39 274/482/39 273/476/40 +f 265/477/40 273/476/40 280/478/41 +f 271/468/42 279/467/42 278/479/35 +f 269/471/36 277/470/36 276/480/37 +f 267/481/38 275/787/38 274/482/39 +f 288/483/49 296/495/49 295/484/50 +f 286/486/43 294/496/43 293/487/44 +f 284/489/45 292/497/45 291/490/46 +f 282/492/47 290/499/47 289/493/48 +f 281/494/48 289/493/48 296/495/49 +f 287/485/50 295/484/50 294/496/43 +f 285/488/44 293/487/44 292/497/45 +f 283/498/46 291/788/46 290/499/47 +f 304/500/37 312/512/37 311/501/38 +f 302/503/39 310/513/39 309/504/40 +f 300/506/41 308/514/41 307/507/42 +f 298/509/35 306/516/35 305/510/36 +f 297/511/36 305/510/36 312/512/37 +f 303/502/38 311/501/38 310/513/39 +f 301/505/40 309/504/40 308/514/41 +f 299/515/42 307/789/42 306/516/35 +f 320/517/45 328/529/45 327/518/46 +f 318/520/47 326/530/47 325/521/48 +f 316/523/49 324/531/49 323/524/50 +f 314/526/43 322/533/43 321/527/44 +f 313/528/44 321/527/44 328/529/45 +f 319/519/46 327/518/46 326/530/47 +f 317/522/48 325/521/48 324/531/49 +f 315/532/50 323/790/50 322/533/43 +f 331/534/15 339/791/54 338/535/51 +f 336/537/5 344/548/56 343/538/52 +f 334/540/4 342/549/57 341/541/53 +f 332/543/6 340/550/58 339/544/54 +f 330/536/3 338/535/51 337/546/55 +f 329/547/10 337/546/55 344/548/56 +f 335/539/16 343/538/52 342/549/57 +f 333/542/9 341/541/53 340/550/58 +f 341/551/53 342/559/57 349/552/59 +f 338/554/51 346/572/72 345/555/61 +f 337/556/55 345/555/61 351/557/62 +f 343/538/52 350/562/64 349/552/59 +f 340/560/58 341/551/53 348/553/60 +f 343/538/52 344/558/56 351/557/62 +f 351/557/62 358/568/70 357/563/65 +f 348/553/60 349/552/59 356/564/66 +f 345/555/61 346/572/72 353/566/68 +f 345/555/61 352/567/69 358/568/70 +f 350/562/64 357/563/65 356/564/66 +f 348/553/60 355/565/67 354/569/71 +f 358/573/70 365/586/76 364/574/2 +f 369/575/16 377/792/80 376/576/73 +f 355/578/67 356/590/66 363/579/74 +f 352/581/69 353/585/68 359/582/75 +f 339/584/54 366/793/1 359/582/75 +f 352/581/69 360/583/10 365/586/76 +f 339/587/54 354/591/71 362/588/77 +f 357/563/65 364/574/2 363/579/74 +f 355/578/67 361/580/9 362/588/77 +f 374/592/6 382/603/82 381/593/78 +f 372/595/3 380/604/83 379/596/79 +f 370/598/5 378/605/84 377/599/80 +f 368/577/4 376/576/73 375/601/81 +f 367/602/9 375/601/81 382/603/82 +f 373/594/15 381/593/78 380/604/83 +f 371/597/10 379/596/79 378/605/84 +f 380/606/83 387/614/89 386/607/85 +f 375/609/81 376/626/73 384/610/86 +f 382/612/82 375/609/81 383/611/87 +f 381/593/78 388/617/91 387/614/89 +f 379/608/79 386/607/85 385/615/90 +f 382/612/82 389/613/88 388/617/91 +f 388/617/91 389/613/88 396/618/92 +f 386/607/85 387/614/89 394/620/94 +f 383/611/87 384/610/86 391/622/96 +f 389/613/88 383/611/87 390/623/97 +f 388/617/91 395/619/93 394/620/94 +f 386/607/85 393/621/95 392/624/98 +f 396/628/92 403/638/74 402/629/2 +f 393/630/95 394/642/94 401/631/76 +f 390/633/97 391/637/96 397/634/77 +f 377/636/80 404/794/1 397/634/77 +f 390/633/97 398/635/9 403/638/74 +f 377/639/80 392/643/98 400/640/75 +f 395/619/93 402/629/2 401/631/76 +f 393/630/95 399/632/10 400/640/75 +f 407/644/9 415/795/77 414/645/99 +f 412/647/3 420/658/103 419/648/100 +f 410/650/5 418/659/104 417/651/101 +f 408/653/4 416/660/105 415/654/77 +f 406/646/6 414/645/99 413/656/102 +f 405/657/15 413/656/102 420/658/103 +f 411/649/10 419/648/100 418/659/104 +f 409/652/16 417/651/101 416/660/105 +f 417/661/101 418/669/104 425/662/106 +f 414/664/99 422/682/118 421/665/108 +f 413/666/102 421/665/108 427/667/109 +f 419/648/100 426/672/76 425/662/106 +f 416/670/105 417/661/101 424/663/107 +f 420/668/103 427/667/109 426/672/76 +f 426/672/76 427/667/109 434/673/111 +f 424/663/107 425/662/106 432/675/113 +f 421/665/108 422/682/118 429/677/115 +f 421/665/108 428/678/116 434/673/111 +f 426/672/76 433/674/112 432/675/113 +f 424/663/107 431/676/114 430/679/117 +f 433/674/112 434/696/111 441/683/91 +f 445/685/10 453/796/75 452/686/119 +f 431/688/114 432/700/113 439/689/64 +f 428/691/116 429/694/115 435/692/54 +f 429/694/115 415/797/77 442/695/1 +f 434/696/111 428/691/116 436/693/15 +f 430/697/117 438/701/80 442/698/1 +f 433/674/112 440/684/2 439/689/64 +f 431/688/114 437/690/16 438/701/80 +f 450/702/4 458/713/123 457/703/120 +f 448/705/6 456/714/124 455/706/121 +f 446/708/3 454/715/125 453/709/75 +f 444/687/5 452/686/119 451/711/122 +f 443/712/16 451/711/122 458/713/123 +f 449/704/9 457/703/120 456/714/124 +f 447/707/15 455/706/121 454/715/125 +f 455/716/121 456/724/124 463/717/126 +f 452/719/119 460/737/138 459/720/128 +f 451/721/122 459/720/128 465/722/129 +f 457/703/120 464/727/74 463/717/126 +f 454/725/125 455/716/121 462/718/127 +f 458/723/123 465/722/129 464/727/74 +f 464/727/74 465/722/129 472/728/131 +f 462/718/127 463/717/126 470/730/133 +f 459/720/128 460/737/138 467/732/135 +f 465/722/129 459/720/128 466/733/136 +f 464/727/74 471/729/132 470/730/133 +f 462/718/127 469/731/134 468/734/137 +f 471/729/132 472/748/131 479/738/64 +f 469/740/134 470/752/133 477/741/91 +f 467/743/135 473/747/80 474/744/16 +f 453/746/75 480/798/1 473/747/80 +f 466/745/136 474/744/16 479/738/64 +f 468/749/137 476/753/54 480/750/1 +f 471/729/132 478/739/2 477/741/91 +f 469/740/134 475/742/15 476/753/54 diff --git a/src/main/resources/assets/hbm/models/machines/industrial_boiler.obj b/src/main/resources/assets/hbm/models/machines/industrial_boiler.obj new file mode 100644 index 000000000..eb3fb03ef --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/industrial_boiler.obj @@ -0,0 +1,2900 @@ +# Blender v2.79 (sub 0) OBJ File: 'industrial_boiler.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 0.250000 1.500000 +v 1.500000 0.250000 1.500000 +v -1.500000 0.250000 -1.500000 +v 1.500000 0.250000 -1.500000 +v -1.000000 0.250000 1.000000 +v 1.000000 0.250000 1.000000 +v -1.000000 0.250000 -1.000000 +v 1.000000 0.250000 -1.000000 +v -1.000000 1.250000 -1.000000 +v -1.000000 1.250000 1.000000 +v 1.000000 1.250000 1.000000 +v 1.000000 1.250000 -1.000000 +v 1.000000 1.031250 0.750000 +v 1.500000 1.031250 0.750000 +v 1.000000 1.031250 -0.750000 +v 1.500000 1.031250 -0.750000 +v 1.000000 1.093750 -0.750000 +v 1.000000 1.093750 0.750000 +v 1.500000 1.093750 0.750000 +v 1.500000 1.093750 -0.750000 +v 1.000000 0.906250 0.750000 +v 1.500000 0.906250 0.750000 +v 1.000000 0.906250 -0.750000 +v 1.500000 0.906250 -0.750000 +v 1.000000 0.968750 -0.750000 +v 1.000000 0.968750 0.750000 +v 1.500000 0.968750 0.750000 +v 1.500000 0.968750 -0.750000 +v 1.000000 0.781250 0.750000 +v 1.500000 0.781250 0.750000 +v 1.000000 0.781250 -0.750000 +v 1.500000 0.781250 -0.750000 +v 1.000000 0.843750 -0.750000 +v 1.000000 0.843750 0.750000 +v 1.500000 0.843750 0.750000 +v 1.500000 0.843750 -0.750000 +v 1.000000 1.156250 0.750000 +v 1.500000 1.156250 0.750000 +v 1.000000 1.156250 -0.750000 +v 1.500000 1.156250 -0.750000 +v 1.000000 1.218750 -0.750000 +v 1.000000 1.218750 0.750000 +v 1.500000 1.218750 0.750000 +v 1.500000 1.218750 -0.750000 +v -1.000000 1.031250 -0.750000 +v -1.500000 1.031250 -0.750000 +v -1.000000 1.031250 0.750000 +v -1.500000 1.031250 0.750000 +v -1.000000 1.093750 0.750000 +v -1.000000 1.093750 -0.750000 +v -1.500000 1.093750 -0.750000 +v -1.500000 1.093750 0.750000 +v -1.000000 0.906250 -0.750000 +v -1.500000 0.906250 -0.750000 +v -1.000000 0.906250 0.750000 +v -1.500000 0.906250 0.750000 +v -1.000000 0.968750 0.750000 +v -1.000000 0.968750 -0.750000 +v -1.500000 0.968750 -0.750000 +v -1.500000 0.968750 0.750000 +v -1.000000 0.781250 -0.750000 +v -1.500000 0.781250 -0.750000 +v -1.000000 0.781250 0.750000 +v -1.500000 0.781250 0.750000 +v -1.000000 0.843750 0.750000 +v -1.000000 0.843750 -0.750000 +v -1.500000 0.843750 -0.750000 +v -1.500000 0.843750 0.750000 +v -1.000000 1.156250 -0.750000 +v -1.500000 1.156250 -0.750000 +v -1.000000 1.156250 0.750000 +v -1.500000 1.156250 0.750000 +v -1.000000 1.218750 0.750000 +v -1.000000 1.218750 -0.750000 +v -1.500000 1.218750 -0.750000 +v -1.500000 1.218750 0.750000 +v 0.750000 1.031250 -1.000000 +v 0.750000 1.031250 -1.500000 +v -0.750000 1.031250 -1.000000 +v -0.750000 1.031250 -1.500000 +v -0.750000 1.093750 -1.000000 +v 0.750000 1.093750 -1.000000 +v 0.750000 1.093750 -1.500000 +v -0.750000 1.093750 -1.500000 +v 0.750000 0.906250 -1.000000 +v 0.750000 0.906250 -1.500000 +v -0.750000 0.906250 -1.000000 +v -0.750000 0.906250 -1.500000 +v -0.750000 0.968750 -1.000000 +v 0.750000 0.968750 -1.000000 +v 0.750000 0.968750 -1.500000 +v -0.750000 0.968750 -1.500000 +v 0.750000 0.781250 -1.000000 +v 0.750000 0.781250 -1.500000 +v -0.750000 0.781250 -1.000000 +v -0.750000 0.781250 -1.500000 +v -0.750000 0.843750 -1.000000 +v 0.750000 0.843750 -1.000000 +v 0.750000 0.843750 -1.500000 +v -0.750000 0.843750 -1.500000 +v 0.750000 1.156250 -1.000000 +v 0.750000 1.156250 -1.500000 +v -0.750000 1.156250 -1.000000 +v -0.750000 1.156250 -1.500000 +v -0.750000 1.218750 -1.000000 +v 0.750000 1.218750 -1.000000 +v 0.750000 1.218750 -1.500000 +v -0.750000 1.218750 -1.500000 +v -0.750000 1.031250 1.000000 +v -0.750000 1.031250 1.500000 +v 0.750000 1.031250 1.000000 +v 0.750000 1.031250 1.500000 +v 0.750000 1.093750 1.000000 +v -0.750000 1.093750 1.000000 +v -0.750000 1.093750 1.500000 +v 0.750000 1.093750 1.500000 +v -0.750000 0.906250 1.000000 +v -0.750000 0.906250 1.500000 +v 0.750000 0.906250 1.000000 +v 0.750000 0.906250 1.500000 +v 0.750000 0.968750 1.000000 +v -0.750000 0.968750 1.000000 +v -0.750000 0.968750 1.500000 +v 0.750000 0.968750 1.500000 +v -0.750000 0.781250 1.000000 +v -0.750000 0.781250 1.500000 +v 0.750000 0.781250 1.000000 +v 0.750000 0.781250 1.500000 +v 0.750000 0.843750 1.000000 +v -0.750000 0.843750 1.000000 +v -0.750000 0.843750 1.500000 +v 0.750000 0.843750 1.500000 +v -0.750000 1.156250 1.000000 +v -0.750000 1.156250 1.500000 +v 0.750000 1.156250 1.000000 +v 0.750000 1.156250 1.500000 +v 0.750000 1.218750 1.000000 +v -0.750000 1.218750 1.000000 +v -0.750000 1.218750 1.500000 +v 0.750000 1.218750 1.500000 +v 0.000000 4.250000 -0.866025 +v 0.000000 3.750000 -1.000000 +v 0.191342 4.616025 -0.461940 +v 0.331414 4.250000 -0.800103 +v 0.382683 3.750000 -0.923880 +v 0.353553 4.616025 -0.353553 +v 0.612372 4.250000 -0.612372 +v 0.707107 3.750000 -0.707107 +v 0.461940 4.616025 -0.191342 +v 0.800103 4.250000 -0.331414 +v 0.923879 3.750000 -0.382683 +v 0.500000 4.616025 0.000000 +v 0.866025 4.250000 0.000000 +v 1.000000 3.750000 0.000000 +v 0.461940 4.616025 0.191341 +v 0.800103 4.250000 0.331413 +v 0.923879 3.750000 0.382683 +v 0.353553 4.616025 0.353553 +v 0.612372 4.250000 0.612372 +v 0.707106 3.750000 0.707107 +v 0.191342 4.616025 0.461939 +v 0.331413 4.250000 0.800103 +v 0.382683 3.750000 0.923879 +v -0.000000 4.616025 0.500000 +v -0.000000 4.250000 0.866025 +v -0.000000 3.750000 1.000000 +v -0.191342 4.616025 0.461939 +v -0.331414 4.250000 0.800103 +v -0.382684 3.750000 0.923879 +v -0.382683 1.250000 -0.923880 +v -0.707106 1.250000 -0.707107 +v -0.353553 4.616025 0.353553 +v -0.612372 4.250000 0.612372 +v -0.707107 3.750000 0.707106 +v -0.923879 1.250000 -0.382684 +v -1.000000 1.250000 -0.000000 +v -0.461940 4.616025 0.191341 +v -0.800103 4.250000 0.331413 +v -0.923879 3.750000 0.382683 +v -0.923879 1.250000 0.382683 +v -0.707107 1.250000 0.707106 +v -0.500000 4.616025 -0.000000 +v -0.866025 4.250000 -0.000000 +v -1.000000 3.750000 -0.000000 +v -0.382684 1.250000 0.923879 +v -0.000000 1.250000 1.000000 +v -0.461939 4.616025 -0.191342 +v -0.800103 4.250000 -0.331414 +v -0.923879 3.750000 -0.382684 +v 0.382683 1.250000 0.923879 +v 0.707106 1.250000 0.707107 +v -0.353553 4.616025 -0.353554 +v -0.612372 4.250000 -0.612372 +v -0.707106 3.750000 -0.707107 +v 0.923879 1.250000 0.382683 +v 1.000000 1.250000 0.000000 +v -0.191341 4.616025 -0.461940 +v -0.331413 4.250000 -0.800103 +v -0.382683 3.750000 -0.923880 +v 0.923879 1.250000 -0.382683 +v 0.707107 1.250000 -0.707107 +v -0.000000 4.750000 0.000000 +v 0.000000 4.616025 -0.500000 +v 0.382683 1.250000 -0.923880 +v 0.000000 1.250000 -1.000000 +v 1.000000 0.250000 1.250000 +v 1.250000 0.250000 1.250000 +v 1.000000 0.250000 1.000000 +v 1.250000 0.250000 1.000000 +v 1.000000 3.750000 1.250000 +v 1.250000 3.750000 1.250000 +v 1.000000 3.750000 1.000000 +v 1.250000 3.750000 1.000000 +v 1.000000 0.250000 -1.000000 +v 1.250000 0.250000 -1.000000 +v 1.000000 0.250000 -1.250000 +v 1.250000 0.250000 -1.250000 +v 1.000000 3.750000 -1.000000 +v 1.250000 3.750000 -1.000000 +v 1.000000 3.750000 -1.250000 +v 1.250000 3.750000 -1.250000 +v -1.250000 3.750000 1.250000 +v -1.000000 3.750000 1.250000 +v -1.250000 3.750000 1.000000 +v -1.000000 3.750000 1.000000 +v -1.250000 0.250000 1.250000 +v -1.000000 0.250000 1.250000 +v -1.250000 0.250000 1.000000 +v -1.000000 0.250000 1.000000 +v -1.250000 3.750000 -1.000000 +v -1.000000 3.750000 -1.000000 +v -1.250000 3.750000 -1.250000 +v -1.000000 3.750000 -1.250000 +v -1.250000 0.250000 -1.000000 +v -1.000000 0.250000 -1.000000 +v -1.250000 0.250000 -1.250000 +v -1.000000 0.250000 -1.250000 +v 1.000000 3.750000 1.000000 +v 1.250000 3.750000 1.000000 +v 1.000000 3.750000 -1.000000 +v 1.250000 3.750000 -1.000000 +v 1.250000 3.500000 1.000000 +v 1.000000 3.500000 1.000000 +v 1.000000 3.500000 -1.000000 +v 1.250000 3.500000 -1.000000 +v -1.000000 3.750000 -1.000000 +v -1.250000 3.750000 -1.000000 +v -1.000000 3.750000 1.000000 +v -1.250000 3.750000 1.000000 +v -1.250000 3.500000 -1.000000 +v -1.000000 3.500000 -1.000000 +v -1.000000 3.500000 1.000000 +v -1.250000 3.500000 1.000000 +v 1.000000 3.750000 -1.000000 +v 1.000000 3.750000 -1.250000 +v -1.000000 3.750000 -1.000000 +v -1.000000 3.750000 -1.250000 +v 1.000000 3.500000 -1.250000 +v 1.000000 3.500000 -1.000000 +v -1.000000 3.500000 -1.000000 +v -1.000000 3.500000 -1.250000 +v -1.000000 3.750000 1.000000 +v -1.000000 3.750000 1.250000 +v 1.000000 3.750000 1.000000 +v 1.000000 3.750000 1.250000 +v -1.000000 3.500000 1.250000 +v -1.000000 3.500000 1.000000 +v 1.000000 3.500000 1.000000 +v 1.000000 3.500000 1.250000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.437500 0.000000 0.437500 +v 0.437500 0.000000 0.437500 +v -0.437500 0.000000 -0.437500 +v 0.437500 0.000000 -0.437500 +v -0.500000 0.062500 -0.500000 +v -0.500000 0.062500 0.500000 +v 0.500000 0.062500 0.500000 +v 0.500000 0.062500 -0.500000 +v -0.437500 0.062500 -0.437500 +v -0.437500 0.062500 0.437500 +v 0.437500 0.062500 0.437500 +v 0.437500 0.062500 -0.437500 +v -0.250000 5.000000 0.250000 +v 0.250000 5.000000 0.250000 +v -0.250000 5.000000 -0.250000 +v 0.250000 5.000000 -0.250000 +v -0.250000 4.937500 -0.250000 +v -0.250000 4.937500 0.250000 +v 0.250000 4.937500 0.250000 +v 0.250000 4.937500 -0.250000 +v -0.375000 4.812500 -0.375000 +v -0.375000 4.812500 0.375000 +v 0.375000 4.812500 0.375000 +v 0.375000 4.812500 -0.375000 +v -0.375000 4.562500 -0.375000 +v -0.375000 4.562500 0.375000 +v 0.375000 4.562500 0.375000 +v 0.375000 4.562500 -0.375000 +v 0.375000 4.812500 0.187500 +v 0.375000 4.775888 0.099112 +v 0.375000 4.687500 0.062500 +v 0.375000 4.599112 0.099112 +v 0.375000 4.562500 0.187500 +v 0.375000 4.599112 0.275888 +v 0.375000 4.687500 0.312500 +v 0.375000 4.775888 0.275888 +v 1.125000 4.812500 0.187500 +v 1.125000 4.775888 0.099112 +v 1.125000 4.687500 0.062500 +v 1.125000 4.599112 0.099112 +v 1.125000 4.562500 0.187500 +v 1.125000 4.599112 0.275888 +v 1.125000 4.687500 0.312500 +v 1.125000 4.775888 0.275888 +v 1.301777 4.739277 0.187500 +v 1.275888 4.713388 0.099112 +v 1.213388 4.650888 0.062500 +v 1.150888 4.588388 0.099112 +v 1.150888 4.588388 0.275888 +v 1.213388 4.650888 0.312500 +v 1.275888 4.713388 0.275888 +v 1.375000 4.562500 0.187500 +v 1.338388 4.562500 0.099112 +v 1.250000 4.562500 0.062500 +v 1.161612 4.562500 0.099112 +v 1.161612 4.562500 0.275888 +v 1.250000 4.562500 0.312500 +v 1.338388 4.562500 0.275888 +v 1.125000 0.750000 0.187500 +v 1.375000 0.750000 0.187500 +v 1.338388 0.750000 0.099112 +v 1.250000 0.750000 0.062500 +v 1.161612 0.750000 0.099112 +v 1.161612 0.750000 0.275888 +v 1.250000 0.750000 0.312500 +v 1.338388 0.750000 0.275888 +v 0.375000 4.812500 -0.187500 +v 0.375000 4.775888 -0.275888 +v 0.375000 4.687500 -0.312500 +v 0.375000 4.599112 -0.275888 +v 0.375000 4.562500 -0.187500 +v 0.375000 4.599112 -0.099112 +v 0.375000 4.687500 -0.062500 +v 0.375000 4.775888 -0.099112 +v 1.125000 4.812500 -0.187500 +v 1.125000 4.775888 -0.275888 +v 1.125000 4.687500 -0.312500 +v 1.125000 4.599112 -0.275888 +v 1.125000 4.562500 -0.187500 +v 1.125000 4.599112 -0.099112 +v 1.125000 4.687500 -0.062500 +v 1.125000 4.775888 -0.099112 +v 1.301777 4.739277 -0.187500 +v 1.275888 4.713388 -0.275888 +v 1.213388 4.650888 -0.312500 +v 1.150888 4.588388 -0.275888 +v 1.150888 4.588388 -0.099112 +v 1.213388 4.650888 -0.062500 +v 1.275888 4.713388 -0.099112 +v 1.375000 4.562500 -0.187500 +v 1.338388 4.562500 -0.275888 +v 1.250000 4.562500 -0.312500 +v 1.161612 4.562500 -0.275888 +v 1.161612 4.562500 -0.099112 +v 1.250000 4.562500 -0.062500 +v 1.338388 4.562500 -0.099112 +v 1.125000 0.750000 -0.187500 +v 1.375000 0.750000 -0.187500 +v 1.338388 0.750000 -0.275888 +v 1.250000 0.750000 -0.312500 +v 1.161612 0.750000 -0.275888 +v 1.161612 0.750000 -0.099112 +v 1.250000 0.750000 -0.062500 +v 1.338388 0.750000 -0.099112 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.000000 0.750000 -0.750000 +v -1.375000 0.750000 -0.750000 +v -1.000000 0.750000 0.750000 +v -1.375000 0.750000 0.750000 +v -1.000000 0.250000 0.750000 +v -1.000000 0.250000 -0.750000 +v -1.375000 0.250000 -0.750000 +v -1.375000 0.250000 0.750000 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.687500 0.187500 +v -1.375000 0.312500 0.187500 +v -1.375000 0.312500 -0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.000000 0.750000 0.750000 +v 1.375000 0.750000 0.750000 +v 1.000000 0.750000 -0.750000 +v 1.375000 0.750000 -0.750000 +v 1.000000 0.250000 -0.750000 +v 1.000000 0.250000 0.750000 +v 1.375000 0.250000 0.750000 +v 1.375000 0.250000 -0.750000 +v 1.375000 0.687500 0.187500 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.312500 -0.187500 +v 1.375000 0.312500 0.187500 +v 0.187500 0.687500 1.500000 +v 0.187500 0.312500 1.500000 +v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v -0.750000 0.750000 1.000000 +v -0.750000 0.750000 1.375000 +v 0.750000 0.750000 1.000000 +v 0.750000 0.750000 1.375000 +v 0.750000 0.250000 1.000000 +v -0.750000 0.250000 1.000000 +v -0.750000 0.250000 1.375000 +v 0.750000 0.250000 1.375000 +v -0.187500 0.687500 1.375000 +v 0.187500 0.687500 1.375000 +v 0.187500 0.312500 1.375000 +v -0.187500 0.312500 1.375000 +v -0.187500 0.687500 -1.500000 +v -0.187500 0.312500 -1.500000 +v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v 0.750000 0.750000 -1.000000 +v 0.750000 0.750000 -1.375000 +v -0.750000 0.750000 -1.000000 +v -0.750000 0.750000 -1.375000 +v -0.750000 0.250000 -1.000000 +v 0.750000 0.250000 -1.000000 +v 0.750000 0.250000 -1.375000 +v -0.750000 0.250000 -1.375000 +v 0.187500 0.687500 -1.375000 +v -0.187500 0.687500 -1.375000 +v -0.187500 0.312500 -1.375000 +v 0.187500 0.312500 -1.375000 +v -1.250000 3.750000 -0.312500 +v -1.250000 3.750000 0.312500 +v -1.250000 3.500000 -0.312500 +v -1.250000 3.500000 0.312500 +v -1.375000 3.750000 -0.312500 +v -1.375000 3.750000 0.312500 +v -1.375000 3.500000 -0.312500 +v -1.375000 3.500000 0.312500 +v 1.250000 3.750000 0.312500 +v 1.250000 3.750000 -0.312500 +v 1.250000 3.500000 0.312500 +v 1.250000 3.500000 -0.312500 +v 1.375000 3.750000 0.312500 +v 1.375000 3.750000 -0.312500 +v 1.375000 3.500000 0.312500 +v 1.375000 3.500000 -0.312500 +v -0.312500 3.750000 1.250000 +v 0.312500 3.750000 1.250000 +v -0.312500 3.500000 1.250000 +v 0.312500 3.500000 1.250000 +v -0.312500 3.750000 1.375000 +v 0.312500 3.750000 1.375000 +v -0.312500 3.500000 1.375000 +v 0.312500 3.500000 1.375000 +v 0.312500 3.750000 -1.250000 +v -0.312500 3.750000 -1.250000 +v 0.312500 3.500000 -1.250000 +v -0.312500 3.500000 -1.250000 +v 0.312500 3.750000 -1.375000 +v -0.312500 3.750000 -1.375000 +v 0.312500 3.500000 -1.375000 +v -0.312500 3.500000 -1.375000 +v -0.375000 4.812500 -0.187500 +v -0.375000 4.775888 -0.099112 +v -0.375000 4.687500 -0.062500 +v -0.375000 4.599112 -0.099112 +v -0.375000 4.562500 -0.187500 +v -0.375000 4.599112 -0.275888 +v -0.375000 4.687500 -0.312500 +v -0.375000 4.775888 -0.275888 +v -1.125000 4.812500 -0.187500 +v -1.125000 4.775888 -0.099111 +v -1.125000 4.687500 -0.062500 +v -1.125000 4.599112 -0.099111 +v -1.125000 4.562500 -0.187500 +v -1.125000 4.599112 -0.275888 +v -1.125000 4.687500 -0.312500 +v -1.125000 4.775888 -0.275888 +v -1.301777 4.739277 -0.187500 +v -1.275888 4.713388 -0.099111 +v -1.213388 4.650888 -0.062500 +v -1.150888 4.588388 -0.099111 +v -1.150888 4.588388 -0.275888 +v -1.213388 4.650888 -0.312500 +v -1.275888 4.713388 -0.275888 +v -1.375000 4.562500 -0.187500 +v -1.338388 4.562500 -0.099111 +v -1.250000 4.562500 -0.062500 +v -1.161612 4.562500 -0.099111 +v -1.161612 4.562500 -0.275888 +v -1.250000 4.562500 -0.312500 +v -1.338388 4.562500 -0.275888 +v -1.125000 0.750000 -0.187500 +v -1.375000 0.750000 -0.187500 +v -1.338388 0.750000 -0.099111 +v -1.250000 0.750000 -0.062500 +v -1.161612 0.750000 -0.099111 +v -1.161612 0.750000 -0.275888 +v -1.250000 0.750000 -0.312500 +v -1.338388 0.750000 -0.275888 +v -0.375000 4.812500 0.187500 +v -0.375000 4.775888 0.275888 +v -0.375000 4.687500 0.312500 +v -0.375000 4.599112 0.275888 +v -0.375000 4.562500 0.187500 +v -0.375000 4.599112 0.099112 +v -0.375000 4.687500 0.062500 +v -0.375000 4.775888 0.099112 +v -1.125000 4.812500 0.187500 +v -1.125000 4.775888 0.275889 +v -1.125000 4.687500 0.312500 +v -1.125000 4.599112 0.275889 +v -1.125000 4.562500 0.187500 +v -1.125000 4.599112 0.099112 +v -1.125000 4.687500 0.062500 +v -1.125000 4.775888 0.099112 +v -1.301777 4.739277 0.187500 +v -1.275888 4.713388 0.275889 +v -1.213388 4.650888 0.312500 +v -1.150888 4.588388 0.275889 +v -1.150888 4.588388 0.099112 +v -1.213388 4.650888 0.062500 +v -1.275888 4.713388 0.099112 +v -1.375000 4.562500 0.187500 +v -1.338388 4.562500 0.275889 +v -1.250000 4.562500 0.312500 +v -1.161612 4.562500 0.275889 +v -1.161612 4.562500 0.099112 +v -1.250000 4.562500 0.062500 +v -1.338388 4.562500 0.099112 +v -1.125000 0.750000 0.187500 +v -1.375000 0.750000 0.187500 +v -1.338388 0.750000 0.275889 +v -1.250000 0.750000 0.312500 +v -1.161612 0.750000 0.275889 +v -1.161612 0.750000 0.099112 +v -1.250000 0.750000 0.062500 +v -1.338388 0.750000 0.099112 +v 0.187500 4.812500 -0.375000 +v 0.099112 4.775888 -0.375000 +v 0.062500 4.687500 -0.375000 +v 0.099112 4.599112 -0.375000 +v 0.187500 4.562500 -0.375000 +v 0.275888 4.599112 -0.375000 +v 0.312500 4.687500 -0.375000 +v 0.275888 4.775888 -0.375000 +v 0.187500 4.812500 -1.125000 +v 0.099112 4.775888 -1.125000 +v 0.062500 4.687500 -1.125000 +v 0.099112 4.599112 -1.125000 +v 0.187500 4.562500 -1.125000 +v 0.275888 4.599112 -1.125000 +v 0.312500 4.687500 -1.125000 +v 0.275888 4.775888 -1.125000 +v 0.187500 4.739277 -1.301777 +v 0.099112 4.713388 -1.275888 +v 0.062500 4.650888 -1.213388 +v 0.099112 4.588388 -1.150888 +v 0.275888 4.588388 -1.150888 +v 0.312500 4.650888 -1.213388 +v 0.275888 4.713388 -1.275888 +v 0.187500 4.562500 -1.375000 +v 0.099112 4.562500 -1.338388 +v 0.062500 4.562500 -1.250000 +v 0.099112 4.562500 -1.161612 +v 0.275888 4.562500 -1.161612 +v 0.312500 4.562500 -1.250000 +v 0.275888 4.562500 -1.338388 +v 0.187500 0.750001 -1.125000 +v 0.187500 0.750001 -1.375000 +v 0.099112 0.750001 -1.338388 +v 0.062500 0.750001 -1.250000 +v 0.099112 0.750001 -1.161612 +v 0.275888 0.750001 -1.161612 +v 0.312500 0.750001 -1.250000 +v 0.275888 0.750001 -1.338388 +v -0.187500 4.812500 -0.375000 +v -0.275888 4.775888 -0.375000 +v -0.312500 4.687500 -0.375000 +v -0.275888 4.599112 -0.375000 +v -0.187500 4.562500 -0.375000 +v -0.099112 4.599112 -0.375000 +v -0.062500 4.687500 -0.375000 +v -0.099112 4.775888 -0.375000 +v -0.187500 4.812500 -1.125000 +v -0.275888 4.775888 -1.125000 +v -0.312500 4.687500 -1.125000 +v -0.275888 4.599112 -1.125000 +v -0.187500 4.562500 -1.125000 +v -0.099112 4.599112 -1.125000 +v -0.062500 4.687500 -1.125000 +v -0.099112 4.775888 -1.125000 +v -0.187500 4.739277 -1.301777 +v -0.275888 4.713388 -1.275888 +v -0.312500 4.650888 -1.213388 +v -0.275888 4.588388 -1.150888 +v -0.099112 4.588388 -1.150888 +v -0.062500 4.650888 -1.213388 +v -0.099112 4.713388 -1.275888 +v -0.187500 4.562500 -1.375000 +v -0.275888 4.562500 -1.338388 +v -0.312500 4.562500 -1.250000 +v -0.275889 4.562500 -1.161612 +v -0.099112 4.562500 -1.161612 +v -0.062500 4.562500 -1.250000 +v -0.099112 4.562500 -1.338388 +v -0.187500 0.750001 -1.125000 +v -0.187500 0.750001 -1.375000 +v -0.275888 0.750001 -1.338388 +v -0.312500 0.750001 -1.250000 +v -0.275889 0.750001 -1.161612 +v -0.099112 0.750001 -1.161612 +v -0.062500 0.750001 -1.250000 +v -0.099112 0.750001 -1.338388 +v -0.187500 4.812500 0.375000 +v -0.099111 4.775888 0.375000 +v -0.062500 4.687500 0.375000 +v -0.099111 4.599112 0.375000 +v -0.187500 4.562500 0.375000 +v -0.275888 4.599112 0.375000 +v -0.312500 4.687500 0.375000 +v -0.275888 4.775888 0.375000 +v -0.187500 4.812500 1.125000 +v -0.099111 4.775888 1.125000 +v -0.062500 4.687500 1.125000 +v -0.099111 4.599112 1.125000 +v -0.187500 4.562500 1.125000 +v -0.275888 4.599112 1.125000 +v -0.312500 4.687500 1.125000 +v -0.275888 4.775888 1.125000 +v -0.187500 4.739277 1.301777 +v -0.099111 4.713388 1.275888 +v -0.062500 4.650888 1.213388 +v -0.099111 4.588388 1.150888 +v -0.275888 4.588388 1.150888 +v -0.312500 4.650888 1.213388 +v -0.275888 4.713388 1.275888 +v -0.187500 4.562500 1.375000 +v -0.099111 4.562500 1.338388 +v -0.062500 4.562500 1.250000 +v -0.099111 4.562500 1.161612 +v -0.275888 4.562500 1.161612 +v -0.312500 4.562500 1.250000 +v -0.275888 4.562500 1.338388 +v -0.187500 0.750001 1.125000 +v -0.187500 0.750001 1.375000 +v -0.099111 0.750001 1.338388 +v -0.062500 0.750001 1.250000 +v -0.099111 0.750001 1.161612 +v -0.275888 0.750001 1.161612 +v -0.312500 0.750001 1.250000 +v -0.275888 0.750001 1.338388 +v 0.187500 4.812500 0.375000 +v 0.275888 4.775888 0.375000 +v 0.312500 4.687500 0.375000 +v 0.275888 4.599112 0.375000 +v 0.187500 4.562500 0.375000 +v 0.099112 4.599112 0.375000 +v 0.062500 4.687500 0.375000 +v 0.099112 4.775888 0.375000 +v 0.187500 4.812500 1.125000 +v 0.275889 4.775888 1.125000 +v 0.312500 4.687500 1.125000 +v 0.275889 4.599112 1.125000 +v 0.187500 4.562500 1.125000 +v 0.099112 4.599112 1.125000 +v 0.062500 4.687500 1.125000 +v 0.099112 4.775888 1.125000 +v 0.187500 4.739277 1.301777 +v 0.275889 4.713388 1.275888 +v 0.312500 4.650888 1.213388 +v 0.275889 4.588388 1.150888 +v 0.099112 4.588388 1.150888 +v 0.062500 4.650888 1.213388 +v 0.099112 4.713388 1.275888 +v 0.187500 4.562500 1.375000 +v 0.275889 4.562500 1.338388 +v 0.312500 4.562500 1.250000 +v 0.275889 4.562500 1.161612 +v 0.099112 4.562500 1.161612 +v 0.062500 4.562500 1.250000 +v 0.099112 4.562500 1.338388 +v 0.187500 0.750001 1.125000 +v 0.187500 0.750001 1.375000 +v 0.275889 0.750001 1.338388 +v 0.312500 0.750001 1.250000 +v 0.275889 0.750001 1.161612 +v 0.099112 0.750001 1.161612 +v 0.062500 0.750001 1.250000 +v 0.099112 0.750001 1.338388 +vt 0.655660 0.930000 +vt 0.589623 0.940000 +vt 0.589623 0.930000 +vt -0.000000 0.520000 +vt 0.226415 1.000000 +vt -0.000000 1.000000 +vt 0.226415 0.480000 +vt -0.000000 0.520000 +vt -0.000000 0.480000 +vt 0.226415 0.480000 +vt -0.000000 0.520000 +vt -0.000000 0.480000 +vt 0.226415 0.480000 +vt -0.000000 0.480000 +vt 0.226415 0.480000 +vt -0.000000 0.520000 +vt -0.000000 0.480000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.226415 0.160000 +vt 0.377358 0.480000 +vt 0.226415 0.480000 +vt 0.377358 0.000000 +vt 0.226415 -0.000000 +vt 0.377358 -0.000000 +vt 0.226415 0.160000 +vt 0.226415 -0.000000 +vt 0.377358 -0.000000 +vt 0.226415 0.160000 +vt 0.226415 -0.000000 +vt 0.377358 -0.000000 +vt 0.226415 0.160000 +vt 0.226415 -0.000000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.867925 0.600000 +vt 0.886792 0.560000 +vt 0.886792 0.600000 +vt 0.867925 0.560000 +vt 0.886792 0.600000 +vt 0.867925 0.600000 +vt 0.886792 -0.000000 +vt 0.867925 -0.000000 +vt 0.924528 -0.000000 +vt 0.905660 0.560000 +vt 0.905660 -0.000000 +vt 0.886792 0.560000 +vt 0.849057 0.560000 +vt 0.849057 -0.000000 +vt 0.867925 -0.000000 +vt 0.849057 0.560000 +vt 0.849057 -0.000000 +vt 0.905660 -0.000000 +vt 0.886792 -0.000000 +vt 0.867925 0.560000 +vt 0.924528 -0.000000 +vt 0.905660 0.560000 +vt 0.924528 -0.000000 +vt 0.905660 0.560000 +vt 0.905660 -0.000000 +vt 0.886792 -0.000000 +vt 0.867925 0.560000 +vt 0.867925 -0.000000 +vt 0.886792 0.560000 +vt 0.849057 0.560000 +vt 0.849057 -0.000000 +vt 0.867925 -0.000000 +vt 0.849057 0.560000 +vt 0.849057 -0.000000 +vt 0.905660 -0.000000 +vt 0.886792 0.560000 +vt 0.886792 -0.000000 +vt 0.924528 -0.000000 +vt 0.905660 0.560000 +vt 0.867925 0.560000 +vt 0.886792 0.600000 +vt 0.867925 0.600000 +vt 0.886792 0.600000 +vt 0.424528 0.720000 +vt 0.575472 0.760000 +vt 0.424528 0.760000 +vt 0.575472 0.640000 +vt 0.424528 0.680000 +vt 0.424528 0.640000 +vt 0.424528 0.800000 +vt 0.575472 0.640000 +vt 0.424528 0.680000 +vt 0.424528 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.720000 +vt 0.424528 0.720000 +vt 0.575472 0.760000 +vt 0.424528 0.760000 +vt 0.424528 0.800000 +vt 0.575472 0.680000 +vt 0.575472 0.720000 +vt 0.424528 0.720000 +vt 0.575472 0.760000 +vt 0.424528 0.760000 +vt 0.575472 0.640000 +vt 0.424528 0.680000 +vt 0.424528 0.640000 +vt 0.424528 0.800000 +vt 0.575472 0.640000 +vt 0.424528 0.680000 +vt 0.424528 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.720000 +vt 0.424528 0.720000 +vt 0.575472 0.760000 +vt 0.424528 0.760000 +vt 0.424528 0.800000 +vt 0.575472 0.680000 +vt 0.575472 0.720000 +vt 0.655660 0.790000 +vt 0.589623 0.790000 +vt 0.575472 0.780000 +vt 0.580189 0.940000 +vt 0.575472 0.940000 +vt 0.669811 0.940000 +vt 0.665094 0.780000 +vt 0.669811 0.780000 +vt 0.584906 0.790000 +vt 0.226415 -0.000000 +vt 0.075472 0.160000 +vt -0.000000 0.000000 +vt 0.150943 0.160000 +vt 0.150943 0.320000 +vt 0.075472 0.320000 +vt 0.665094 0.940000 +vt 0.660377 0.790000 +vt 0.584906 0.950000 +vt 0.655660 0.940000 +vt 0.660377 0.950000 +vt 0.580189 0.780000 +vt 0.584906 0.930000 +vt 0.660377 0.770000 +vt 0.589623 0.780000 +vt 0.584906 0.770000 +vt 0.655660 0.780000 +vt 0.584906 0.960000 +vt 0.660377 0.960000 +vt 0.660377 0.760000 +vt 0.584906 0.760000 +vt 0.660377 0.930000 +vt 0.707547 0.720000 +vt 0.745283 0.800000 +vt 0.707547 0.800000 +vt 0.707547 0.710000 +vt 0.754717 0.680000 +vt 0.745283 0.710000 +vt 0.745283 0.720000 +vt 0.820755 0.720000 +vt 0.858491 0.710000 +vt 0.858491 0.720000 +vt 0.764151 0.720000 +vt 0.801887 0.710000 +vt 0.801887 0.720000 +vt 0.650943 0.720000 +vt 0.688679 0.710000 +vt 0.688679 0.720000 +vt 0.811321 0.640000 +vt 0.811321 0.680000 +vt 0.820755 0.710000 +vt 0.867925 0.680000 +vt 0.764151 0.710000 +vt 0.650943 0.710000 +vt 0.698113 0.680000 +vt 0.641509 0.680000 +vt 0.698113 0.640000 +vt 0.754717 0.640000 +vt 0.867925 0.640000 +vt 0.235849 0.700000 +vt 0.264151 0.640000 +vt 0.264151 0.700000 +vt 0.254717 0.560000 +vt 0.367925 0.620000 +vt 0.254717 0.620000 +vt 0.367925 0.480000 +vt 0.367925 0.560000 +vt 0.396226 0.480000 +vt 0.396226 0.560000 +vt 0.226415 0.560000 +vt 0.254717 0.480000 +vt 0.235849 0.700000 +vt 0.264151 0.640000 +vt 0.264151 0.700000 +vt 0.273585 0.700000 +vt 0.235849 0.640000 +vt 0.264151 0.620000 +vt 0.235849 0.720000 +vt 0.226415 0.640000 +vt 0.254717 0.560000 +vt 0.367925 0.620000 +vt 0.254717 0.620000 +vt 0.367925 0.480000 +vt 0.367925 0.560000 +vt 0.396226 0.480000 +vt 0.396226 0.560000 +vt 0.226415 0.560000 +vt 0.254717 0.480000 +vt 0.273585 0.700000 +vt 0.235849 0.640000 +vt 0.264151 0.620000 +vt 0.235849 0.720000 +vt 0.226415 0.640000 +vt 0.235849 0.700000 +vt 0.264151 0.640000 +vt 0.264151 0.700000 +vt 0.254717 0.560000 +vt 0.367925 0.620000 +vt 0.254717 0.620000 +vt 0.367925 0.480000 +vt 0.367925 0.560000 +vt 0.396226 0.480000 +vt 0.396226 0.560000 +vt 0.226415 0.560000 +vt 0.254717 0.480000 +vt 0.235849 0.700000 +vt 0.264151 0.640000 +vt 0.264151 0.700000 +vt 0.273585 0.700000 +vt 0.235849 0.640000 +vt 0.264151 0.620000 +vt 0.235849 0.720000 +vt 0.226415 0.640000 +vt 0.254717 0.560000 +vt 0.367925 0.620000 +vt 0.254717 0.620000 +vt 0.367925 0.480000 +vt 0.367925 0.560000 +vt 0.396226 0.480000 +vt 0.396226 0.560000 +vt 0.226415 0.560000 +vt 0.254717 0.480000 +vt 0.273585 0.700000 +vt 0.235849 0.640000 +vt 0.264151 0.620000 +vt 0.264151 0.720000 +vt 0.235849 0.720000 +vt 0.226415 0.640000 +vt 0.584906 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.640000 +vt 0.641509 0.680000 +vt 0.632075 0.640000 +vt 0.641509 0.640000 +vt 0.632075 0.680000 +vt 0.584906 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.640000 +vt 0.641509 0.680000 +vt 0.632075 0.640000 +vt 0.641509 0.640000 +vt 0.632075 0.680000 +vt 0.584906 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.640000 +vt 0.641509 0.680000 +vt 0.632075 0.640000 +vt 0.641509 0.640000 +vt 0.632075 0.680000 +vt 0.584906 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.640000 +vt 0.641509 0.680000 +vt 0.632075 0.640000 +vt 0.641509 0.640000 +vt 0.632075 0.680000 +vt 0.226415 0.520000 +vt 0.226415 0.520000 +vt 0.226415 0.520000 +vt 0.226415 0.520000 +vt 0.377358 0.160000 +vt 0.377358 0.160000 +vt 0.377358 0.160000 +vt 0.377358 0.160000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.924528 0.560000 +vt 0.924528 0.560000 +vt 0.924528 0.560000 +vt 0.924528 0.560000 +vt 0.867925 0.600000 +vt 0.575472 0.800000 +vt 0.575472 0.800000 +vt 0.575472 0.800000 +vt 0.575472 0.800000 +vt 0.641509 0.640000 +vt 0.226415 0.480000 +vt 0.273585 0.640000 +vt 0.235849 0.620000 +vt 0.264151 0.720000 +vt 0.226415 0.700000 +vt 0.226415 0.480000 +vt 0.273585 0.640000 +vt 0.235849 0.620000 +vt 0.264151 0.720000 +vt 0.226415 0.700000 +vt 0.226415 0.480000 +vt 0.273585 0.640000 +vt 0.235849 0.620000 +vt 0.264151 0.720000 +vt 0.226415 0.700000 +vt 0.226415 0.480000 +vt 0.273585 0.640000 +vt 0.235849 0.620000 +vt 0.226415 0.700000 +vt 0.584906 0.680000 +vt 0.584906 0.680000 +vt 0.584906 0.680000 +vt 0.584906 0.680000 +vt 0.731132 0.560000 +vt 0.712264 0.480000 +vt 0.735849 0.480000 +vt 0.707547 0.400000 +vt 0.735849 0.400000 +vt 0.721698 0.640000 +vt 0.716981 0.560000 +vt 0.702830 0.560000 +vt 0.683962 0.480000 +vt 0.707547 0.480000 +vt 0.679245 0.400000 +vt 0.693396 0.640000 +vt 0.688679 0.560000 +vt 0.679245 0.480000 +vt 0.660377 0.560000 +vt 0.655660 0.480000 +vt 0.650943 0.400000 +vt 0.674528 0.560000 +vt 0.665094 0.640000 +vt 0.627358 0.480000 +vt 0.622642 0.400000 +vt 0.646226 0.560000 +vt 0.636792 0.640000 +vt 0.632075 0.560000 +vt 0.650943 0.480000 +vt 0.599057 0.480000 +vt 0.594340 0.400000 +vt 0.617925 0.560000 +vt 0.608491 0.640000 +vt 0.603774 0.560000 +vt 0.622642 0.480000 +vt 0.570755 0.480000 +vt 0.566038 0.400000 +vt 0.589623 0.560000 +vt 0.580189 0.640000 +vt 0.575472 0.560000 +vt 0.594340 0.480000 +vt 0.566038 0.480000 +vt 0.537736 0.400000 +vt 0.561321 0.560000 +vt 0.551887 0.640000 +vt 0.547170 0.560000 +vt 0.542453 0.480000 +vt 0.537736 0.480000 +vt 0.509434 0.400000 +vt 0.533019 0.560000 +vt 0.523585 0.640000 +vt 0.518868 0.560000 +vt 0.514151 0.480000 +vt 0.504717 0.560000 +vt 0.495283 0.640000 +vt 0.490566 0.560000 +vt 0.485849 0.480000 +vt 0.509434 0.480000 +vt 0.481132 0.400000 +vt 0.476415 0.560000 +vt 0.457547 0.480000 +vt 0.481132 0.480000 +vt 0.452830 0.400000 +vt 0.466981 0.640000 +vt 0.462264 0.560000 +vt 0.448113 0.560000 +vt 0.429245 0.480000 +vt 0.452830 0.480000 +vt 0.396226 0.400000 +vt 0.424528 0.000000 +vt 0.424528 0.400000 +vt 0.438679 0.640000 +vt 0.433962 0.560000 +vt 0.566038 -0.000000 +vt 0.537736 0.000000 +vt 0.419811 0.560000 +vt 0.400943 0.480000 +vt 0.424528 0.480000 +vt 0.452830 0.000000 +vt 0.410377 0.640000 +vt 0.405660 0.560000 +vt 0.735849 0.000000 +vt 0.844340 0.560000 +vt 0.825472 0.480000 +vt 0.849057 0.480000 +vt 0.594340 0.000000 +vt 0.820755 0.400000 +vt 0.849057 0.400000 +vt 0.834906 0.640000 +vt 0.830189 0.560000 +vt 0.707547 0.000000 +vt 0.820755 0.480000 +vt 0.801887 0.560000 +vt 0.797170 0.480000 +vt 0.792453 0.400000 +vt 0.820755 -0.000000 +vt 0.816038 0.560000 +vt 0.806604 0.640000 +vt 0.764151 0.400000 +vt 0.792453 0.000000 +vt 0.481132 -0.000000 +vt 0.509434 0.000000 +vt 0.768868 0.480000 +vt 0.787736 0.560000 +vt 0.778302 0.640000 +vt 0.773585 0.560000 +vt 0.622642 0.000000 +vt 0.764151 0.000000 +vt 0.792453 0.480000 +vt 0.679245 0.000000 +vt 0.740566 0.480000 +vt 0.759434 0.560000 +vt 0.750000 0.640000 +vt 0.745283 0.560000 +vt 0.650943 -0.000000 +vt 0.849057 0.000000 +vt 0.764151 0.480000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.640000 +vt 0.943396 0.660000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.952830 0.640000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.971698 0.610000 +vt 0.981132 0.640000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.981132 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.943396 0.640000 +vt 0.971698 0.640000 +vt 0.981132 0.620000 +vt 0.952830 0.610000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.790000 +vt 0.971698 0.670000 +vt 0.971698 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.790000 +vt 0.943396 0.670000 +vt 0.943396 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.981132 0.790000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.640000 +vt 0.943396 0.660000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.962264 0.670000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.952830 0.640000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.981132 0.620000 +vt 0.981132 0.640000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.933962 0.630000 +vt 0.943396 0.640000 +vt 0.971698 0.610000 +vt 0.981132 0.640000 +vt 0.943396 0.620000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.640000 +vt 0.943396 0.660000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.952830 0.640000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.971698 0.610000 +vt 0.981132 0.640000 +vt 0.952830 0.610000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.981132 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.943396 0.640000 +vt 0.971698 0.640000 +vt 0.981132 0.620000 +vt 0.952830 0.610000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.790000 +vt 0.971698 0.670000 +vt 0.971698 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.790000 +vt 0.943396 0.670000 +vt 0.943396 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.981132 0.790000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.962264 0.670000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.943396 0.640000 +vt 0.981132 0.620000 +vt 0.981132 0.640000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.981132 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.943396 0.640000 +vt 0.971698 0.640000 +vt 0.981132 0.620000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.396226 0.000000 +vt 1.000000 0.670000 +vt 0.981132 0.620000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vt 0.933962 0.670000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.981132 0.620000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.981132 0.620000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vt 0.933962 0.670000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.8520 -0.5235 +vn 0.3343 0.4865 -0.8071 +vn 0.0000 0.4865 -0.8736 +vn 0.3795 0.1285 -0.9162 +vn 0.0000 0.1285 -0.9917 +vn 0.2003 0.8520 -0.4836 +vn 0.6178 0.4865 -0.6178 +vn 0.7012 0.1285 -0.7012 +vn 0.3701 0.8520 -0.3701 +vn 0.4836 0.8520 -0.2003 +vn 0.8071 0.4865 -0.3343 +vn 0.9162 0.1285 -0.3795 +vn 0.8736 0.4865 0.0000 +vn 0.9917 0.1285 0.0000 +vn 0.5235 0.8520 0.0000 +vn 0.8071 0.4865 0.3343 +vn 0.9162 0.1285 0.3795 +vn 0.4836 0.8520 0.2003 +vn 0.6178 0.4865 0.6178 +vn 0.7012 0.1285 0.7012 +vn 0.3701 0.8520 0.3701 +vn 0.3795 0.1285 0.9162 +vn 0.2003 0.8520 0.4836 +vn 0.3343 0.4865 0.8071 +vn 0.0000 0.1285 0.9917 +vn 0.0000 0.8520 0.5235 +vn 0.0000 0.4865 0.8736 +vn -0.2003 0.8520 0.4836 +vn -0.3343 0.4865 0.8071 +vn -0.3795 0.1285 0.9162 +vn -0.6178 0.4865 0.6178 +vn -0.7012 0.1285 0.7012 +vn -0.3701 0.8520 0.3701 +vn -0.8071 0.4865 0.3343 +vn -0.9917 0.1285 0.0000 +vn -0.9239 0.0000 0.3827 +vn -0.9162 0.1285 0.3795 +vn -0.4836 0.8520 0.2003 +vn 0.7071 0.0000 0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.8736 0.4865 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.5235 0.8520 0.0000 +vn -0.8071 0.4865 -0.3343 +vn 0.9239 0.0000 0.3827 +vn -0.9162 0.1285 -0.3795 +vn -0.4836 0.8520 -0.2003 +vn 0.3827 0.0000 -0.9239 +vn -0.3701 0.8520 -0.3701 +vn -0.6178 0.4865 -0.6178 +vn -0.7012 0.1285 -0.7012 +vn -0.9239 0.0000 -0.3827 +vn -0.3795 0.1285 -0.9162 +vn -0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn -0.3343 0.4865 -0.8071 +vn -0.2003 0.8520 -0.4836 +vn -0.3827 0.0000 -0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.9239 0.0000 -0.3827 +vn 0.1866 0.9824 0.0000 +vn 0.1447 0.7194 0.6794 +vn -0.1363 -0.6737 0.7263 +vn 0.0000 -0.7071 0.7071 +vn -0.1363 -0.6737 -0.7263 +vn 0.0000 -0.7071 -0.7071 +vn 0.1447 0.7194 -0.6794 +vn 0.0196 0.0473 0.9987 +vn -0.7071 -0.7071 0.0000 +vn 0.0196 0.0473 -0.9987 +vn 0.5293 0.5293 -0.6630 +vn 0.0670 0.0670 0.9955 +vn -0.4617 -0.4617 -0.7573 +vn -0.4617 -0.4617 0.7573 +vn 0.5293 0.5293 0.6630 +vn 0.9824 0.1866 0.0000 +vn 0.0473 0.0196 0.9987 +vn 0.7194 0.1447 -0.6794 +vn 0.0670 0.0670 -0.9955 +vn -0.6737 -0.1363 -0.7263 +vn -0.6737 -0.1363 0.7263 +vn 0.7194 0.1447 0.6794 +vn 0.0473 0.0196 -0.9987 +vn -0.1447 0.7194 0.6794 +vn -0.1447 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 0.7263 +vn 0.7071 -0.7071 0.0000 +vn -0.0196 0.0473 0.9987 +vn -0.5293 0.5293 0.6630 +vn -0.0670 0.0670 -0.9955 +vn 0.4617 -0.4617 0.7573 +vn -0.1866 0.9824 0.0000 +vn 0.4617 -0.4617 -0.7573 +vn 0.1363 -0.6737 -0.7263 +vn -0.5293 0.5293 -0.6630 +vn -0.9824 0.1866 0.0000 +vn -0.0473 0.0196 -0.9987 +vn -0.0473 0.0196 0.9987 +vn -0.0670 0.0670 0.9955 +vn 0.6737 -0.1363 0.7263 +vn 0.6737 -0.1363 -0.7263 +vn -0.7194 0.1447 -0.6794 +vn -0.7194 0.1447 0.6794 +vn 0.0000 0.9824 -0.1866 +vn 0.6794 0.7194 -0.1447 +vn 0.7263 -0.6737 0.1363 +vn -0.7263 -0.6737 0.1363 +vn -0.6794 0.7194 -0.1447 +vn 0.9987 0.0473 -0.0196 +vn -0.9987 0.0473 -0.0196 +vn -0.6630 0.5293 -0.5293 +vn 0.9955 0.0670 -0.0670 +vn -0.7573 -0.4617 0.4617 +vn 0.7573 -0.4617 0.4617 +vn 0.6630 0.5293 -0.5293 +vn 0.0000 0.1866 -0.9824 +vn 0.9987 0.0196 -0.0473 +vn -0.6794 0.1447 -0.7194 +vn -0.9955 0.0670 -0.0670 +vn 0.6794 0.1447 -0.7194 +vn -0.7263 -0.1363 0.6737 +vn 0.7263 -0.1363 0.6737 +vn -0.9987 0.0196 -0.0473 +vn 0.6794 0.7194 0.1447 +vn -0.6794 0.7194 0.1447 +vn -0.9987 0.0473 0.0196 +vn 0.7263 -0.6737 -0.1363 +vn 0.9987 0.0473 0.0196 +vn 0.6630 0.5293 0.5293 +vn -0.6630 0.5293 0.5293 +vn 0.7573 -0.4617 -0.4617 +vn 0.0000 0.9824 0.1866 +vn -0.7573 -0.4617 -0.4617 +vn -0.7263 -0.6737 -0.1363 +vn 0.0000 0.1866 0.9824 +vn -0.9987 0.0196 0.0473 +vn -0.9955 0.0670 0.0670 +vn 0.9987 0.0196 0.0473 +vn 0.9955 0.0670 0.0670 +vn 0.7263 -0.1363 -0.6737 +vn -0.7263 -0.1363 -0.6737 +vn -0.6794 0.1447 0.7194 +vn 0.6794 0.1447 0.7194 +s off +f 281/1/1 288/2/1 279/3/1 +f 6/4/2 7/5/2 5/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/10/4 5/11/4 1/12/4 +f 4/13/1 6/4/1 2/14/1 +f 1/15/5 7/16/5 3/17/5 +f 19/18/6 18/19/6 17/20/6 +f 15/21/2 13/22/2 14/23/2 +f 12/24/1 15/21/1 10/25/1 +f 9/26/5 13/27/5 11/28/5 +f 11/29/3 16/30/3 12/31/3 +f 10/32/4 14/33/4 9/34/4 +f 23/35/2 21/36/2 22/37/2 +f 19/38/3 24/39/3 20/40/3 +f 18/19/4 22/41/4 17/42/4 +f 20/40/1 23/35/1 18/19/1 +f 27/43/6 26/44/6 25/45/6 +f 31/46/2 29/47/2 30/48/2 +f 27/49/3 32/50/3 28/51/3 +f 26/44/4 30/52/4 25/53/4 +f 28/51/1 31/46/1 26/44/1 +f 35/54/6 34/55/6 33/56/6 +f 39/57/2 37/58/2 38/59/2 +f 35/60/3 40/61/3 36/62/3 +f 34/55/4 38/63/4 33/64/4 +f 36/62/1 39/57/1 34/55/1 +f 43/65/6 42/66/6 41/67/6 +f 47/68/2 45/69/2 46/70/2 +f 43/71/3 48/72/3 44/73/3 +f 42/66/4 46/74/4 41/75/4 +f 44/73/1 47/68/1 42/66/1 +f 51/76/6 50/77/6 49/78/6 +f 55/79/2 53/80/2 54/81/2 +f 51/82/4 56/83/4 52/84/4 +f 50/77/3 54/85/3 49/86/3 +f 52/84/5 55/79/5 50/77/5 +f 59/87/6 58/88/6 57/89/6 +f 63/90/2 61/91/2 62/92/2 +f 59/93/4 64/94/4 60/95/4 +f 58/88/3 62/96/3 57/97/3 +f 60/95/5 63/90/5 58/88/5 +f 67/98/6 66/99/6 65/100/6 +f 71/101/2 69/102/2 70/103/2 +f 67/104/4 72/105/4 68/106/4 +f 66/99/3 70/107/3 65/108/3 +f 68/106/5 71/101/5 66/99/5 +f 75/109/6 74/110/6 73/111/6 +f 79/112/2 77/113/2 78/114/2 +f 75/115/4 80/116/4 76/117/4 +f 74/110/3 78/118/3 73/119/3 +f 76/117/5 79/112/5 74/110/5 +f 83/120/6 82/121/6 81/122/6 +f 87/123/2 85/124/2 86/125/2 +f 83/126/5 88/127/5 84/128/5 +f 82/121/1 86/129/1 81/130/1 +f 84/128/3 87/123/3 82/121/3 +f 91/131/6 90/132/6 89/133/6 +f 95/134/2 93/135/2 94/136/2 +f 91/137/5 96/138/5 92/139/5 +f 90/132/1 94/140/1 89/141/1 +f 92/139/3 95/134/3 90/132/3 +f 99/142/6 98/143/6 97/144/6 +f 103/145/2 101/146/2 102/147/2 +f 99/148/5 104/149/5 100/150/5 +f 98/143/1 102/151/1 97/152/1 +f 100/150/3 103/145/3 98/143/3 +f 107/153/6 106/154/6 105/155/6 +f 111/156/2 109/157/2 110/158/2 +f 107/159/5 112/160/5 108/161/5 +f 106/154/1 110/162/1 105/163/1 +f 108/161/3 111/156/3 106/154/3 +f 115/164/6 114/165/6 113/166/6 +f 119/167/2 117/168/2 118/169/2 +f 115/170/1 120/171/1 116/172/1 +f 114/165/5 118/173/5 113/174/5 +f 116/172/4 119/167/4 114/165/4 +f 123/175/6 122/176/6 121/177/6 +f 127/178/2 125/179/2 126/180/2 +f 123/181/1 128/182/1 124/183/1 +f 122/176/5 126/184/5 121/185/5 +f 124/183/4 127/178/4 122/176/4 +f 131/186/6 130/187/6 129/188/6 +f 135/189/2 133/190/2 134/191/2 +f 131/192/1 136/193/1 132/194/1 +f 130/187/5 134/195/5 129/196/5 +f 132/194/4 135/189/4 130/187/4 +f 139/197/6 138/198/6 137/199/6 +f 143/200/2 141/201/2 142/202/2 +f 139/203/1 144/204/1 140/205/1 +f 138/198/5 142/206/5 137/207/5 +f 140/205/4 143/200/4 138/198/4 +f 223/208/2 224/209/2 222/210/2 +f 215/211/2 216/212/2 214/213/2 +f 213/214/1 215/211/1 211/215/1 +f 210/216/5 216/217/5 212/218/5 +f 212/218/3 217/219/3 213/214/3 +f 211/215/4 214/220/4 210/221/4 +f 221/222/1 223/223/1 219/224/1 +f 218/225/5 224/209/5 220/226/5 +f 220/226/3 225/227/3 221/222/3 +f 219/228/4 222/229/4 218/225/4 +f 232/230/3 229/231/3 233/232/3 +f 231/233/4 226/234/4 230/235/4 +f 233/232/1 227/236/1 231/233/1 +f 230/235/5 228/237/5 232/238/5 +f 240/239/3 237/240/3 241/241/3 +f 239/242/4 234/243/4 238/244/4 +f 241/245/1 235/246/1 239/242/1 +f 238/244/5 236/247/5 240/239/5 +f 236/247/2 235/248/2 237/249/2 +f 229/250/2 226/234/2 227/236/2 +f 243/251/2 244/252/2 242/253/2 +f 248/254/6 246/255/6 247/256/6 +f 244/252/5 247/257/5 242/253/5 +f 256/258/6 254/259/6 255/260/6 +f 243/251/1 249/261/1 245/262/1 +f 251/263/2 252/264/2 250/265/2 +f 252/264/1 255/266/1 250/265/1 +f 251/263/5 257/267/5 253/268/5 +f 259/269/2 260/270/2 258/271/2 +f 264/272/6 262/273/6 263/274/6 +f 260/270/4 263/275/4 258/271/4 +f 272/276/6 270/277/6 271/278/6 +f 259/269/3 265/279/3 261/280/3 +f 267/281/2 268/282/2 266/283/2 +f 268/282/3 271/284/3 266/283/3 +f 267/281/4 273/285/4 269/286/4 +f 280/287/6 279/3/6 278/288/6 +f 274/289/3 284/290/3 275/291/3 +f 277/292/4 282/293/4 276/294/4 +f 279/3/4 287/295/4 278/288/4 +f 3/296/6 274/297/6 1/298/6 +f 4/13/6 276/299/6 3/296/6 +f 2/14/6 277/300/6 4/13/6 +f 1/298/6 275/301/6 2/14/6 +f 285/302/6 286/303/6 282/293/6 +f 284/304/6 289/305/6 285/306/6 +f 283/307/6 288/308/6 284/290/6 +f 282/309/6 287/310/6 283/311/6 +f 278/288/5 286/312/5 280/287/5 +f 275/313/5 285/306/5 277/314/5 +f 276/315/1 283/311/1 274/316/1 +f 280/287/3 289/317/3 281/1/3 +f 291/318/2 292/319/2 290/320/2 +f 296/321/7 301/322/7 297/323/7 +f 291/318/1 297/323/1 293/324/1 +f 292/325/5 295/326/5 290/327/5 +f 293/328/3 294/329/3 292/330/3 +f 290/331/4 296/332/4 291/333/4 +f 301/322/3 302/334/3 298/335/3 +f 294/336/8 299/337/8 295/326/8 +f 297/338/9 298/335/9 294/329/9 +f 295/339/10 300/340/10 296/332/10 +f 299/341/4 304/342/4 300/340/4 +f 300/340/1 305/343/1 301/322/1 +f 298/335/5 303/344/5 299/337/5 +f 384/345/5 383/346/5 382/347/5 +f 387/348/2 388/349/2 386/350/2 +f 387/348/5 393/351/5 389/352/5 +f 389/352/4 390/353/4 388/354/4 +f 386/355/3 392/356/3 387/348/3 +f 400/357/1 399/358/1 398/359/1 +f 383/346/4 395/360/4 382/347/4 +f 385/361/6 396/362/6 383/346/6 +f 382/347/2 394/363/2 384/345/2 +f 384/345/3 397/364/3 385/361/3 +f 403/365/2 404/366/2 402/367/2 +f 403/365/1 409/368/1 405/369/1 +f 405/369/3 406/370/3 404/371/3 +f 402/372/4 408/373/4 403/365/4 +f 399/358/3 411/374/3 398/359/3 +f 401/375/6 412/376/6 399/358/6 +f 398/359/2 410/377/2 400/357/2 +f 400/357/4 413/378/4 401/375/4 +f 416/379/4 415/380/4 414/381/4 +f 419/382/2 420/383/2 418/384/2 +f 419/382/4 425/385/4 421/386/4 +f 421/386/1 422/387/1 420/388/1 +f 418/389/5 424/390/5 419/382/5 +f 432/391/3 431/392/3 430/393/3 +f 415/380/1 427/394/1 414/381/1 +f 417/395/6 428/396/6 415/380/6 +f 414/381/2 426/397/2 416/379/2 +f 416/379/5 429/398/5 417/395/5 +f 435/399/2 436/400/2 434/401/2 +f 435/399/3 441/402/3 437/403/3 +f 437/403/5 438/404/5 436/405/5 +f 434/406/1 440/407/1 435/399/1 +f 431/392/5 443/408/5 430/393/5 +f 433/409/6 444/410/6 431/392/6 +f 432/391/2 443/411/2 442/412/2 +f 432/391/1 445/413/1 433/409/1 +f 452/414/3 446/415/3 448/416/3 +f 447/417/4 453/418/4 449/419/4 +f 451/420/5 452/414/5 453/418/5 +f 460/421/4 454/422/4 456/423/4 +f 455/424/3 461/425/3 457/426/3 +f 459/427/1 460/421/1 461/425/1 +f 468/428/5 462/429/5 464/430/5 +f 463/431/1 469/432/1 465/433/1 +f 467/434/4 468/428/4 469/432/4 +f 476/435/1 470/436/1 472/437/1 +f 471/438/5 477/439/5 473/440/5 +f 475/441/3 476/435/3 477/439/3 +f 281/1/1 289/305/1 288/2/1 +f 6/4/2 8/442/2 7/5/2 +f 3/7/3 7/443/3 8/8/3 +f 2/10/4 6/444/4 5/11/4 +f 4/13/1 8/442/1 6/4/1 +f 1/15/5 5/445/5 7/16/5 +f 19/18/6 20/40/6 18/19/6 +f 15/21/2 16/446/2 13/22/2 +f 12/24/1 16/446/1 15/21/1 +f 9/26/5 14/447/5 13/27/5 +f 11/29/3 13/448/3 16/30/3 +f 10/32/4 15/449/4 14/33/4 +f 23/35/2 24/39/2 21/36/2 +f 19/38/3 21/450/3 24/39/3 +f 18/19/4 23/35/4 22/41/4 +f 20/40/1 24/39/1 23/35/1 +f 27/43/6 28/51/6 26/44/6 +f 31/46/2 32/50/2 29/47/2 +f 27/49/3 29/451/3 32/50/3 +f 26/44/4 31/46/4 30/52/4 +f 28/51/1 32/50/1 31/46/1 +f 35/54/6 36/62/6 34/55/6 +f 39/57/2 40/61/2 37/58/2 +f 35/60/3 37/452/3 40/61/3 +f 34/55/4 39/57/4 38/63/4 +f 36/62/1 40/61/1 39/57/1 +f 43/65/6 44/73/6 42/66/6 +f 47/68/2 48/72/2 45/69/2 +f 43/71/3 45/453/3 48/72/3 +f 42/66/4 47/68/4 46/74/4 +f 44/73/1 48/72/1 47/68/1 +f 51/76/6 52/84/6 50/77/6 +f 55/79/2 56/83/2 53/80/2 +f 51/82/4 53/454/4 56/83/4 +f 50/77/3 55/79/3 54/85/3 +f 52/84/5 56/83/5 55/79/5 +f 59/87/6 60/95/6 58/88/6 +f 63/90/2 64/94/2 61/91/2 +f 59/93/4 61/455/4 64/94/4 +f 58/88/3 63/90/3 62/96/3 +f 60/95/5 64/94/5 63/90/5 +f 67/98/6 68/106/6 66/99/6 +f 71/101/2 72/105/2 69/102/2 +f 67/104/4 69/456/4 72/105/4 +f 66/99/3 71/101/3 70/107/3 +f 68/106/5 72/105/5 71/101/5 +f 75/109/6 76/117/6 74/110/6 +f 79/112/2 80/116/2 77/113/2 +f 75/115/4 77/457/4 80/116/4 +f 74/110/3 79/112/3 78/118/3 +f 76/117/5 80/116/5 79/112/5 +f 83/120/6 84/128/6 82/121/6 +f 87/123/2 88/127/2 85/124/2 +f 83/126/5 85/458/5 88/127/5 +f 82/121/1 87/123/1 86/129/1 +f 84/128/3 88/127/3 87/123/3 +f 91/131/6 92/139/6 90/132/6 +f 95/134/2 96/138/2 93/135/2 +f 91/137/5 93/459/5 96/138/5 +f 90/132/1 95/134/1 94/140/1 +f 92/139/3 96/138/3 95/134/3 +f 99/142/6 100/150/6 98/143/6 +f 103/145/2 104/149/2 101/146/2 +f 99/148/5 101/460/5 104/149/5 +f 98/143/1 103/145/1 102/151/1 +f 100/150/3 104/149/3 103/145/3 +f 107/153/6 108/161/6 106/154/6 +f 111/156/2 112/160/2 109/157/2 +f 107/159/5 109/461/5 112/160/5 +f 106/154/1 111/156/1 110/162/1 +f 108/161/3 112/160/3 111/156/3 +f 115/164/6 116/172/6 114/165/6 +f 119/167/2 120/171/2 117/168/2 +f 115/170/1 117/462/1 120/171/1 +f 114/165/5 119/167/5 118/173/5 +f 116/172/4 120/171/4 119/167/4 +f 123/175/6 124/183/6 122/176/6 +f 127/178/2 128/182/2 125/179/2 +f 123/181/1 125/463/1 128/182/1 +f 122/176/5 127/178/5 126/184/5 +f 124/183/4 128/182/4 127/178/4 +f 131/186/6 132/194/6 130/187/6 +f 135/189/2 136/193/2 133/190/2 +f 131/192/1 133/464/1 136/193/1 +f 130/187/5 135/189/5 134/195/5 +f 132/194/4 136/193/4 135/189/4 +f 139/197/6 140/205/6 138/198/6 +f 143/200/2 144/204/2 141/201/2 +f 139/203/1 141/465/1 144/204/1 +f 138/198/5 143/200/5 142/206/5 +f 140/205/4 144/204/4 143/200/4 +f 223/208/2 225/227/2 224/209/2 +f 215/211/2 217/219/2 216/212/2 +f 213/214/1 217/219/1 215/211/1 +f 210/216/5 214/466/5 216/217/5 +f 212/218/3 216/217/3 217/219/3 +f 211/215/4 215/211/4 214/220/4 +f 221/222/1 225/227/1 223/223/1 +f 218/225/5 222/229/5 224/209/5 +f 220/226/3 224/209/3 225/227/3 +f 219/228/4 223/467/4 222/229/4 +f 232/230/3 228/468/3 229/231/3 +f 231/233/4 227/236/4 226/234/4 +f 233/232/1 229/231/1 227/236/1 +f 230/235/5 226/234/5 228/237/5 +f 240/239/3 236/247/3 237/240/3 +f 239/242/4 235/246/4 234/243/4 +f 241/245/1 237/469/1 235/246/1 +f 238/244/5 234/243/5 236/247/5 +f 236/247/2 234/243/2 235/248/2 +f 229/250/2 228/470/2 226/234/2 +f 243/251/2 245/262/2 244/252/2 +f 248/254/6 249/261/6 246/255/6 +f 244/252/5 248/471/5 247/257/5 +f 256/258/6 257/267/6 254/259/6 +f 243/251/1 246/255/1 249/261/1 +f 251/263/2 253/268/2 252/264/2 +f 252/264/1 256/472/1 255/266/1 +f 251/263/5 254/259/5 257/267/5 +f 259/269/2 261/280/2 260/270/2 +f 264/272/6 265/279/6 262/273/6 +f 260/270/4 264/473/4 263/275/4 +f 272/276/6 273/285/6 270/277/6 +f 259/269/3 262/273/3 265/279/3 +f 267/281/2 269/286/2 268/282/2 +f 268/282/3 272/474/3 271/284/3 +f 267/281/4 270/277/4 273/285/4 +f 280/287/6 281/1/6 279/3/6 +f 274/289/3 283/307/3 284/290/3 +f 277/292/4 285/302/4 282/293/4 +f 279/3/4 288/308/4 287/295/4 +f 3/296/6 276/299/6 274/297/6 +f 4/13/6 277/300/6 276/299/6 +f 2/14/6 275/301/6 277/300/6 +f 1/298/6 274/297/6 275/301/6 +f 285/302/6 289/317/6 286/303/6 +f 284/304/6 288/2/6 289/305/6 +f 283/307/6 287/295/6 288/308/6 +f 282/309/6 286/312/6 287/310/6 +f 278/288/5 287/310/5 286/312/5 +f 275/313/5 284/304/5 285/306/5 +f 276/315/1 282/309/1 283/311/1 +f 280/287/3 286/303/3 289/317/3 +f 291/318/2 293/324/2 292/319/2 +f 296/321/7 300/340/7 301/322/7 +f 291/318/1 296/321/1 297/323/1 +f 292/325/5 294/336/5 295/326/5 +f 293/328/3 297/338/3 294/329/3 +f 290/331/4 295/339/4 296/332/4 +f 301/322/3 305/343/3 302/334/3 +f 294/336/8 298/335/8 299/337/8 +f 297/338/9 301/322/9 298/335/9 +f 295/339/10 299/341/10 300/340/10 +f 299/341/4 303/475/4 304/342/4 +f 300/340/1 304/342/1 305/343/1 +f 298/335/5 302/334/5 303/344/5 +f 384/345/5 385/361/5 383/346/5 +f 387/348/2 389/352/2 388/349/2 +f 387/348/5 392/356/5 393/351/5 +f 389/352/4 393/351/4 390/353/4 +f 386/355/3 391/476/3 392/356/3 +f 400/357/1 401/375/1 399/358/1 +f 383/346/4 396/477/4 395/360/4 +f 385/361/6 397/478/6 396/362/6 +f 382/347/2 395/479/2 394/363/2 +f 384/345/3 394/480/3 397/364/3 +f 403/365/2 405/369/2 404/366/2 +f 403/365/1 408/373/1 409/368/1 +f 405/369/3 409/368/3 406/370/3 +f 402/372/4 407/481/4 408/373/4 +f 399/358/3 412/482/3 411/374/3 +f 401/375/6 413/483/6 412/376/6 +f 398/359/2 411/484/2 410/377/2 +f 400/357/4 410/485/4 413/378/4 +f 416/379/4 417/395/4 415/380/4 +f 419/382/2 421/386/2 420/383/2 +f 419/382/4 424/390/4 425/385/4 +f 421/386/1 425/385/1 422/387/1 +f 418/389/5 423/486/5 424/390/5 +f 432/391/3 433/409/3 431/392/3 +f 415/380/1 428/487/1 427/394/1 +f 417/395/6 429/488/6 428/396/6 +f 414/381/2 427/489/2 426/397/2 +f 416/379/5 426/490/5 429/398/5 +f 435/399/2 437/403/2 436/400/2 +f 435/399/3 440/407/3 441/402/3 +f 437/403/5 441/402/5 438/404/5 +f 434/406/1 439/491/1 440/407/1 +f 431/392/5 444/492/5 443/408/5 +f 433/409/6 445/493/6 444/410/6 +f 432/391/2 430/393/2 443/411/2 +f 432/391/1 442/494/1 445/413/1 +f 452/414/3 450/495/3 446/415/3 +f 447/417/4 451/420/4 453/418/4 +f 451/420/5 450/495/5 452/414/5 +f 460/421/4 458/496/4 454/422/4 +f 455/424/3 459/427/3 461/425/3 +f 459/427/1 458/496/1 460/421/1 +f 468/428/5 466/497/5 462/429/5 +f 463/431/1 467/434/1 469/432/1 +f 467/434/4 466/497/4 468/428/4 +f 476/435/1 474/498/1 470/436/1 +f 471/438/5 475/441/5 477/439/5 +f 475/441/3 474/498/3 476/435/3 +s 1 +f 207/499/11 148/500/12 145/501/13 +f 145/501/13 149/502/14 146/503/15 +f 207/499/11 206/504/2 147/505/16 +f 147/506/16 151/507/17 148/508/12 +f 148/508/12 152/509/18 149/502/14 +f 147/506/16 206/510/2 150/511/19 +f 151/512/17 153/513/20 154/514/21 +f 152/509/18 154/514/21 155/515/22 +f 150/516/19 206/517/2 153/513/20 +f 155/515/22 157/518/23 158/519/24 +f 153/520/20 206/521/2 156/522/25 +f 153/520/20 157/518/23 154/523/21 +f 158/519/24 160/524/26 161/525/27 +f 156/526/25 206/527/2 159/528/28 +f 156/526/25 160/524/26 157/529/23 +f 161/525/27 163/530/29 164/531/30 +f 159/532/28 206/533/2 162/534/31 +f 160/535/26 162/534/31 163/530/29 +f 163/536/29 167/537/32 164/531/30 +f 162/538/31 206/539/2 165/540/33 +f 162/538/31 166/541/34 163/536/29 +f 166/542/34 170/543/35 167/537/32 +f 165/544/33 206/545/2 168/546/36 +f 165/544/33 169/547/37 166/542/34 +f 168/548/36 206/549/2 171/550/38 +f 168/548/36 172/551/39 169/552/37 +f 170/543/35 172/551/39 173/553/40 +f 171/554/38 177/555/41 172/556/39 +f 172/556/39 178/557/42 173/553/40 +f 171/554/38 206/558/2 176/559/43 +f 176/560/43 182/561/44 177/562/41 +f 188/563/45 184/564/46 183/565/47 +f 178/557/42 182/561/44 183/565/47 +f 176/560/43 206/566/2 181/567/48 +f 167/537/32 195/568/49 164/531/30 +f 170/543/35 194/569/50 167/537/32 +f 181/570/48 187/571/51 182/572/44 +f 183/565/47 185/573/52 178/557/42 +f 183/565/47 187/571/51 188/563/45 +f 181/570/48 206/574/2 186/575/53 +f 149/502/14 209/576/3 146/503/15 +f 186/577/53 192/578/54 187/579/51 +f 164/531/30 199/580/55 161/525/27 +f 187/579/51 193/581/56 188/582/45 +f 186/577/53 206/583/2 191/584/57 +f 152/509/18 208/585/58 149/502/14 +f 192/586/54 196/587/59 197/588/60 +f 198/589/61 179/590/62 193/581/56 +f 193/581/56 197/588/60 198/589/61 +f 191/591/57 206/592/2 196/587/59 +f 203/593/63 175/594/64 198/589/61 +f 178/557/42 189/595/65 173/553/40 +f 173/553/40 190/596/4 170/543/35 +f 198/589/61 202/597/66 203/593/63 +f 196/598/59 206/599/2 201/600/67 +f 161/525/27 200/601/1 158/519/24 +f 146/503/15 174/602/68 203/593/63 +f 196/598/59 202/597/66 197/603/60 +f 155/515/22 205/604/69 152/509/18 +f 203/593/63 145/605/13 146/503/15 +f 201/606/67 206/607/2 207/608/11 +f 158/519/24 204/609/70 155/515/22 +f 193/581/56 180/610/5 188/582/45 +f 202/611/66 207/608/11 145/605/13 +f 314/612/71 307/613/9 306/614/2 +f 321/615/72 306/614/2 313/616/10 +f 319/617/73 312/618/4 311/619/74 +f 317/620/75 310/621/6 309/622/76 +f 315/623/77 308/624/3 307/613/9 +f 320/625/78 313/616/10 312/618/4 +f 318/626/79 311/619/74 310/627/6 +f 316/628/80 309/622/76 308/624/3 +f 323/629/81 316/630/80 315/623/77 +f 327/631/82 321/615/72 320/632/78 +f 316/630/80 325/633/83 317/634/75 +f 322/635/7 315/623/77 314/612/71 +f 321/615/72 322/635/7 314/612/71 +f 326/636/84 320/632/78 319/637/73 +f 328/638/85 329/639/86 322/635/7 +f 326/636/84 334/640/87 327/631/82 +f 330/641/88 324/642/89 323/629/81 +f 334/640/87 328/638/85 327/631/82 +f 324/642/89 332/643/90 325/633/83 +f 329/639/86 323/629/81 322/635/7 +f 319/637/73 318/644/79 326/636/84 +f 326/636/84 318/644/79 333/645/91 +f 317/634/75 325/633/83 318/646/79 +f 325/633/83 332/643/90 318/646/79 +f 332/647/90 336/648/5 318/649/79 +f 335/650/92 337/651/1 329/639/86 +f 318/652/79 341/653/52 333/654/91 +f 333/654/91 342/655/4 334/656/87 +f 330/641/88 339/657/3 331/658/93 +f 334/656/87 343/659/49 335/650/92 +f 331/658/93 340/660/64 332/647/90 +f 329/639/86 338/661/69 330/641/88 +f 352/662/71 345/663/9 344/664/2 +f 359/665/72 344/664/2 351/666/10 +f 357/667/73 350/668/4 349/669/74 +f 355/670/75 348/671/6 347/672/76 +f 353/673/77 346/674/3 345/663/9 +f 358/675/78 351/666/10 350/668/4 +f 356/676/79 349/669/74 348/677/6 +f 354/678/80 347/672/76 346/674/3 +f 353/673/77 362/679/89 354/680/80 +f 358/681/78 366/682/85 359/665/72 +f 354/680/80 363/683/83 355/684/75 +f 360/685/7 353/673/77 352/662/71 +f 359/665/72 360/685/7 352/662/71 +f 364/686/84 358/681/78 357/687/73 +f 366/682/85 367/688/86 360/685/7 +f 364/686/84 372/689/87 365/690/82 +f 361/691/81 369/692/93 362/679/89 +f 365/690/82 373/693/92 366/682/85 +f 362/679/89 370/694/90 363/683/83 +f 367/688/86 361/691/81 360/685/7 +f 357/687/73 356/695/79 364/686/84 +f 364/686/84 356/695/79 371/696/91 +f 355/684/75 363/683/83 356/697/79 +f 363/683/83 370/694/90 356/697/79 +f 370/698/90 374/699/5 356/700/79 +f 373/693/92 375/701/1 367/688/86 +f 356/702/79 379/703/52 371/704/91 +f 371/704/91 380/705/4 372/706/87 +f 368/707/88 377/708/3 369/709/93 +f 372/706/87 381/710/49 373/693/92 +f 369/709/93 378/711/64 370/698/90 +f 367/688/86 376/712/69 368/707/88 +f 478/713/2 487/714/94 479/715/10 +f 493/716/95 478/713/2 485/717/9 +f 483/718/76 492/719/96 484/720/3 +f 489/721/97 482/722/6 481/723/74 +f 487/714/94 480/724/4 479/715/10 +f 492/719/96 485/717/9 484/720/3 +f 490/725/98 483/718/76 482/726/6 +f 488/727/99 481/723/74 480/724/4 +f 495/728/100 488/729/99 487/714/94 +f 499/730/101 493/716/95 492/731/96 +f 488/729/99 497/732/102 489/733/97 +f 494/734/8 487/714/94 486/735/103 +f 493/716/95 494/734/8 486/735/103 +f 498/736/104 492/731/96 491/737/105 +f 500/738/106 501/739/107 494/734/8 +f 498/736/104 506/740/108 499/730/101 +f 495/728/100 503/741/109 496/742/110 +f 506/740/108 500/738/106 499/730/101 +f 496/742/110 504/743/111 497/732/102 +f 501/739/107 495/728/100 494/734/8 +f 491/737/105 490/744/98 498/736/104 +f 498/736/104 490/744/98 505/745/112 +f 489/733/97 497/732/102 490/746/98 +f 497/732/102 504/743/111 490/746/98 +f 504/747/111 508/748/1 490/749/98 +f 507/750/113 509/751/5 501/739/107 +f 490/752/98 513/753/69 505/754/112 +f 505/754/112 514/755/3 506/756/108 +f 502/757/114 511/758/4 503/759/109 +f 506/756/108 515/760/64 507/750/113 +f 503/759/109 512/761/49 504/747/111 +f 501/739/107 510/762/52 502/757/114 +f 524/763/103 517/764/10 516/765/2 +f 531/766/95 516/765/2 523/767/9 +f 529/768/105 522/769/3 521/770/76 +f 527/771/97 520/772/6 519/773/74 +f 525/774/94 518/775/4 517/764/10 +f 530/776/96 523/767/9 522/769/3 +f 528/777/98 521/770/76 520/778/6 +f 526/779/99 519/773/74 518/775/4 +f 533/780/100 526/781/99 525/774/94 +f 530/782/96 538/783/106 531/766/95 +f 526/781/99 535/784/102 527/785/97 +f 532/786/8 525/774/94 524/763/103 +f 538/783/106 524/763/103 531/766/95 +f 536/787/104 530/782/96 529/788/105 +f 538/783/106 539/789/107 532/786/8 +f 543/790/112 537/791/101 536/787/104 +f 540/792/114 534/793/110 533/780/100 +f 544/794/108 538/783/106 537/791/101 +f 534/793/110 542/795/111 535/784/102 +f 539/789/107 533/780/100 532/786/8 +f 529/788/105 528/796/98 536/787/104 +f 536/787/104 528/796/98 543/790/112 +f 527/785/97 535/784/102 528/797/98 +f 535/784/102 542/795/111 528/797/98 +f 542/798/111 546/799/1 528/800/98 +f 545/801/113 547/802/5 539/789/107 +f 528/803/98 551/804/69 543/805/112 +f 543/805/112 552/806/3 544/807/108 +f 540/792/114 549/808/4 541/809/109 +f 544/807/108 553/810/64 545/801/113 +f 541/809/109 550/811/49 542/798/111 +f 539/789/107 548/812/52 540/792/114 +f 562/813/115 555/814/8 554/815/2 +f 569/816/116 554/815/2 561/817/7 +f 567/818/117 560/819/1 559/820/98 +f 565/821/118 558/822/6 557/823/79 +f 563/824/119 556/825/5 555/814/8 +f 568/826/120 561/817/7 560/819/1 +f 566/827/74 559/820/98 558/828/6 +f 564/829/121 557/823/79 556/825/5 +f 571/830/122 564/831/121 563/824/119 +f 575/832/123 569/816/116 568/833/120 +f 564/831/121 573/834/124 565/835/118 +f 570/836/9 563/824/119 562/813/115 +f 569/816/116 570/836/9 562/813/115 +f 574/837/125 568/833/120 567/838/117 +f 576/839/126 577/840/127 570/836/9 +f 574/837/125 582/841/128 575/832/123 +f 578/842/129 572/843/130 571/830/122 +f 575/832/123 583/844/131 576/839/126 +f 572/843/130 580/845/132 573/834/124 +f 577/840/127 571/830/122 570/836/9 +f 567/838/117 566/846/74 574/837/125 +f 574/837/125 566/846/74 581/847/133 +f 565/835/118 573/834/124 566/848/74 +f 573/834/124 580/845/132 566/848/74 +f 580/849/132 584/850/4 566/851/74 +f 583/844/131 585/852/3 577/840/127 +f 566/853/74 589/854/49 581/855/133 +f 581/855/133 590/856/1 582/857/128 +f 578/842/129 587/858/5 579/859/134 +f 582/857/128 591/860/69 583/844/131 +f 579/859/134 588/861/52 580/849/132 +f 577/840/127 586/862/64 578/842/129 +f 600/863/115 593/864/8 592/865/2 +f 607/866/116 592/865/2 599/867/7 +f 605/868/117 598/869/1 597/870/98 +f 603/871/118 596/872/6 595/873/79 +f 601/874/119 594/875/5 593/864/8 +f 606/876/120 599/867/7 598/869/1 +f 604/877/74 597/870/98 596/878/6 +f 602/879/121 595/873/79 594/875/5 +f 601/874/119 610/880/130 602/881/121 +f 606/882/120 614/883/126 607/866/116 +f 602/881/121 611/884/124 603/885/118 +f 608/886/9 601/874/119 600/863/115 +f 607/866/116 608/886/9 600/863/115 +f 612/887/125 606/882/120 605/888/117 +f 614/883/126 615/889/127 608/886/9 +f 612/887/125 620/890/128 613/891/123 +f 609/892/122 617/893/134 610/880/130 +f 613/891/123 621/894/131 614/883/126 +f 610/880/130 618/895/132 611/884/124 +f 615/889/127 609/892/122 608/886/9 +f 605/888/117 604/896/74 612/887/125 +f 612/887/125 604/896/74 619/897/133 +f 603/885/118 611/884/124 604/898/74 +f 611/884/124 618/895/132 604/898/74 +f 618/899/132 622/900/4 604/901/74 +f 621/894/131 623/902/3 615/889/127 +f 604/903/74 627/904/49 619/905/133 +f 619/905/133 628/906/1 620/907/128 +f 616/908/129 625/909/5 617/910/134 +f 620/907/128 629/911/69 621/894/131 +f 617/910/134 626/912/52 618/899/132 +f 615/889/127 624/913/64 616/908/129 +f 630/914/2 639/915/135 631/916/7 +f 645/917/136 630/914/2 637/918/8 +f 635/919/79 644/920/137 636/921/5 +f 641/922/138 634/923/6 633/924/98 +f 639/915/135 632/925/1 631/916/7 +f 644/920/137 637/918/8 636/921/5 +f 642/926/76 635/919/79 634/927/6 +f 640/928/139 633/924/98 632/925/1 +f 647/929/140 640/930/139 639/915/135 +f 644/931/137 652/932/141 645/917/136 +f 640/930/139 649/933/142 641/934/138 +f 646/935/10 639/915/135 638/936/143 +f 645/917/136 646/935/10 638/936/143 +f 650/937/144 644/931/137 643/938/145 +f 652/932/141 653/939/146 646/935/10 +f 650/937/144 658/940/147 651/941/148 +f 647/929/140 655/942/149 648/943/150 +f 658/940/147 652/932/141 651/941/148 +f 648/943/150 656/944/151 649/933/142 +f 653/939/146 647/929/140 646/935/10 +f 643/938/145 642/945/76 650/937/144 +f 650/937/144 642/945/76 657/946/152 +f 641/934/138 649/933/142 642/947/76 +f 649/933/142 656/944/151 642/947/76 +f 656/948/151 660/949/3 642/950/76 +f 659/951/153 661/952/4 653/939/146 +f 642/953/76 665/954/64 657/955/152 +f 657/955/152 666/956/5 658/957/147 +f 654/958/154 663/959/1 655/960/149 +f 658/957/147 667/961/52 659/951/153 +f 655/960/149 664/962/69 656/948/151 +f 653/939/146 662/963/49 654/958/154 +f 676/964/143 669/965/7 668/966/2 +f 683/967/136 668/966/2 675/968/8 +f 681/969/145 674/970/5 673/971/79 +f 679/972/138 672/973/6 671/974/98 +f 677/975/135 670/976/1 669/965/7 +f 682/977/137 675/968/8 674/970/5 +f 680/978/76 673/971/79 672/979/6 +f 678/980/139 671/974/98 670/976/1 +f 677/975/135 686/981/150 678/982/139 +f 682/983/137 690/984/141 683/967/136 +f 678/982/139 687/985/142 679/986/138 +f 684/987/10 677/975/135 676/964/143 +f 690/984/141 676/964/143 683/967/136 +f 688/988/144 682/983/137 681/989/145 +f 690/984/141 691/990/146 684/987/10 +f 688/988/144 696/991/147 689/992/148 +f 685/993/140 693/994/149 686/981/150 +f 696/991/147 690/984/141 689/992/148 +f 686/981/150 694/995/151 687/985/142 +f 691/990/146 685/993/140 684/987/10 +f 681/989/145 680/996/76 688/988/144 +f 688/988/144 680/996/76 695/997/152 +f 679/986/138 687/985/142 680/998/76 +f 687/985/142 694/995/151 680/998/76 +f 694/999/151 698/1000/3 680/1001/76 +f 697/1002/153 699/1003/4 691/990/146 +f 680/1004/76 703/1005/64 695/1006/152 +f 695/1006/152 704/1007/5 696/1008/147 +f 692/1009/154 701/1010/1 693/1011/149 +f 696/1008/147 705/1012/52 697/1002/153 +f 693/1011/149 702/1013/69 694/999/151 +f 691/990/146 700/1014/49 692/1009/154 +f 207/499/11 147/505/16 148/500/12 +f 145/501/13 148/500/12 149/502/14 +f 147/506/16 150/511/19 151/507/17 +f 148/508/12 151/507/17 152/509/18 +f 151/512/17 150/516/19 153/513/20 +f 152/509/18 151/512/17 154/514/21 +f 155/515/22 154/523/21 157/518/23 +f 153/520/20 156/522/25 157/518/23 +f 158/519/24 157/529/23 160/524/26 +f 156/526/25 159/528/28 160/524/26 +f 161/525/27 160/535/26 163/530/29 +f 160/535/26 159/532/28 162/534/31 +f 163/536/29 166/541/34 167/537/32 +f 162/538/31 165/540/33 166/541/34 +f 166/542/34 169/547/37 170/543/35 +f 165/544/33 168/546/36 169/547/37 +f 168/548/36 171/550/38 172/551/39 +f 170/543/35 169/552/37 172/551/39 +f 171/554/38 176/559/43 177/555/41 +f 172/556/39 177/555/41 178/557/42 +f 176/560/43 181/567/48 182/561/44 +f 188/563/45 180/1015/5 184/564/46 +f 178/557/42 177/562/41 182/561/44 +f 167/537/32 194/569/50 195/568/49 +f 170/543/35 190/596/4 194/569/50 +f 181/570/48 186/575/53 187/571/51 +f 183/565/47 184/564/46 185/573/52 +f 183/565/47 182/572/44 187/571/51 +f 149/502/14 208/585/58 209/576/3 +f 186/577/53 191/584/57 192/578/54 +f 164/531/30 195/568/49 199/580/55 +f 187/579/51 192/578/54 193/581/56 +f 152/509/18 205/604/69 208/585/58 +f 192/586/54 191/591/57 196/587/59 +f 198/589/61 175/594/64 179/590/62 +f 193/581/56 192/586/54 197/588/60 +f 203/593/63 174/602/68 175/594/64 +f 178/557/42 185/573/52 189/595/65 +f 173/553/40 189/595/65 190/596/4 +f 198/589/61 197/603/60 202/597/66 +f 161/525/27 199/580/55 200/601/1 +f 146/503/15 209/576/3 174/602/68 +f 196/598/59 201/600/67 202/597/66 +f 155/515/22 204/609/70 205/604/69 +f 203/593/63 202/611/66 145/605/13 +f 158/519/24 200/601/1 204/609/70 +f 193/581/56 179/590/62 180/610/5 +f 202/611/66 201/606/67 207/608/11 +f 314/612/71 315/623/77 307/613/9 +f 321/615/72 314/612/71 306/614/2 +f 319/617/73 320/625/78 312/618/4 +f 317/620/75 318/1016/79 310/621/6 +f 315/623/77 316/628/80 308/624/3 +f 320/625/78 321/615/72 313/616/10 +f 318/626/79 319/617/73 311/619/74 +f 316/628/80 317/620/75 309/622/76 +f 323/629/81 324/642/89 316/630/80 +f 327/631/82 328/638/85 321/615/72 +f 316/630/80 324/642/89 325/633/83 +f 322/635/7 323/629/81 315/623/77 +f 321/615/72 328/638/85 322/635/7 +f 326/636/84 327/631/82 320/632/78 +f 328/638/85 335/650/92 329/639/86 +f 326/636/84 333/645/91 334/640/87 +f 330/641/88 331/1017/93 324/642/89 +f 334/640/87 335/650/92 328/638/85 +f 324/642/89 331/1017/93 332/643/90 +f 329/639/86 330/641/88 323/629/81 +f 332/647/90 340/660/64 336/648/5 +f 335/650/92 343/659/49 337/651/1 +f 318/652/79 336/1018/5 341/653/52 +f 333/654/91 341/653/52 342/655/4 +f 330/641/88 338/661/69 339/657/3 +f 334/656/87 342/655/4 343/659/49 +f 331/658/93 339/657/3 340/660/64 +f 329/639/86 337/651/1 338/661/69 +f 352/662/71 353/673/77 345/663/9 +f 359/665/72 352/662/71 344/664/2 +f 357/667/73 358/675/78 350/668/4 +f 355/670/75 356/1019/79 348/671/6 +f 353/673/77 354/678/80 346/674/3 +f 358/675/78 359/665/72 351/666/10 +f 356/676/79 357/667/73 349/669/74 +f 354/678/80 355/670/75 347/672/76 +f 353/673/77 361/691/81 362/679/89 +f 358/681/78 365/690/82 366/682/85 +f 354/680/80 362/679/89 363/683/83 +f 360/685/7 361/691/81 353/673/77 +f 359/665/72 366/682/85 360/685/7 +f 364/686/84 365/690/82 358/681/78 +f 366/682/85 373/693/92 367/688/86 +f 364/686/84 371/696/91 372/689/87 +f 361/691/81 368/707/88 369/692/93 +f 365/690/82 372/689/87 373/693/92 +f 362/679/89 369/692/93 370/694/90 +f 367/688/86 368/707/88 361/691/81 +f 370/698/90 378/711/64 374/699/5 +f 373/693/92 381/710/49 375/701/1 +f 356/702/79 374/1020/5 379/703/52 +f 371/704/91 379/703/52 380/705/4 +f 368/707/88 376/712/69 377/708/3 +f 372/706/87 380/705/4 381/710/49 +f 369/709/93 377/708/3 378/711/64 +f 367/688/86 375/701/1 376/712/69 +f 478/713/2 486/735/103 487/714/94 +f 493/716/95 486/735/103 478/713/2 +f 483/718/76 491/1021/105 492/719/96 +f 489/721/97 490/1022/98 482/722/6 +f 487/714/94 488/727/99 480/724/4 +f 492/719/96 493/716/95 485/717/9 +f 490/725/98 491/1021/105 483/718/76 +f 488/727/99 489/721/97 481/723/74 +f 495/728/100 496/742/110 488/729/99 +f 499/730/101 500/738/106 493/716/95 +f 488/729/99 496/742/110 497/732/102 +f 494/734/8 495/728/100 487/714/94 +f 493/716/95 500/738/106 494/734/8 +f 498/736/104 499/730/101 492/731/96 +f 500/738/106 507/750/113 501/739/107 +f 498/736/104 505/745/112 506/740/108 +f 495/728/100 502/757/114 503/741/109 +f 506/740/108 507/750/113 500/738/106 +f 496/742/110 503/741/109 504/743/111 +f 501/739/107 502/757/114 495/728/100 +f 504/747/111 512/761/49 508/748/1 +f 507/750/113 515/760/64 509/751/5 +f 490/752/98 508/1023/1 513/753/69 +f 505/754/112 513/753/69 514/755/3 +f 502/757/114 510/762/52 511/758/4 +f 506/756/108 514/755/3 515/760/64 +f 503/759/109 511/758/4 512/761/49 +f 501/739/107 509/751/5 510/762/52 +f 524/763/103 525/774/94 517/764/10 +f 531/766/95 524/763/103 516/765/2 +f 529/768/105 530/776/96 522/769/3 +f 527/771/97 528/1024/98 520/772/6 +f 525/774/94 526/779/99 518/775/4 +f 530/776/96 531/766/95 523/767/9 +f 528/777/98 529/768/105 521/770/76 +f 526/779/99 527/771/97 519/773/74 +f 533/780/100 534/793/110 526/781/99 +f 530/782/96 537/791/101 538/783/106 +f 526/781/99 534/793/110 535/784/102 +f 532/786/8 533/780/100 525/774/94 +f 538/783/106 532/786/8 524/763/103 +f 536/787/104 537/791/101 530/782/96 +f 538/783/106 545/801/113 539/789/107 +f 543/790/112 544/794/108 537/791/101 +f 540/792/114 541/1025/109 534/793/110 +f 544/794/108 545/801/113 538/783/106 +f 534/793/110 541/1025/109 542/795/111 +f 539/789/107 540/792/114 533/780/100 +f 542/798/111 550/811/49 546/799/1 +f 545/801/113 553/810/64 547/802/5 +f 528/803/98 546/1026/1 551/804/69 +f 543/805/112 551/804/69 552/806/3 +f 540/792/114 548/812/52 549/808/4 +f 544/807/108 552/806/3 553/810/64 +f 541/809/109 549/808/4 550/811/49 +f 539/789/107 547/802/5 548/812/52 +f 562/813/115 563/824/119 555/814/8 +f 569/816/116 562/813/115 554/815/2 +f 567/818/117 568/826/120 560/819/1 +f 565/821/118 566/1027/74 558/822/6 +f 563/824/119 564/829/121 556/825/5 +f 568/826/120 569/816/116 561/817/7 +f 566/827/74 567/818/117 559/820/98 +f 564/829/121 565/821/118 557/823/79 +f 571/830/122 572/843/130 564/831/121 +f 575/832/123 576/839/126 569/816/116 +f 564/831/121 572/843/130 573/834/124 +f 570/836/9 571/830/122 563/824/119 +f 569/816/116 576/839/126 570/836/9 +f 574/837/125 575/832/123 568/833/120 +f 576/839/126 583/844/131 577/840/127 +f 574/837/125 581/847/133 582/841/128 +f 578/842/129 579/1028/134 572/843/130 +f 575/832/123 582/841/128 583/844/131 +f 572/843/130 579/1028/134 580/845/132 +f 577/840/127 578/842/129 571/830/122 +f 580/849/132 588/861/52 584/850/4 +f 583/844/131 591/860/69 585/852/3 +f 566/853/74 584/1029/4 589/854/49 +f 581/855/133 589/854/49 590/856/1 +f 578/842/129 586/862/64 587/858/5 +f 582/857/128 590/856/1 591/860/69 +f 579/859/134 587/858/5 588/861/52 +f 577/840/127 585/852/3 586/862/64 +f 600/863/115 601/874/119 593/864/8 +f 607/866/116 600/863/115 592/865/2 +f 605/868/117 606/876/120 598/869/1 +f 603/871/118 604/1030/74 596/872/6 +f 601/874/119 602/879/121 594/875/5 +f 606/876/120 607/866/116 599/867/7 +f 604/877/74 605/868/117 597/870/98 +f 602/879/121 603/871/118 595/873/79 +f 601/874/119 609/892/122 610/880/130 +f 606/882/120 613/891/123 614/883/126 +f 602/881/121 610/880/130 611/884/124 +f 608/886/9 609/892/122 601/874/119 +f 607/866/116 614/883/126 608/886/9 +f 612/887/125 613/891/123 606/882/120 +f 614/883/126 621/894/131 615/889/127 +f 612/887/125 619/897/133 620/890/128 +f 609/892/122 616/908/129 617/893/134 +f 613/891/123 620/890/128 621/894/131 +f 610/880/130 617/893/134 618/895/132 +f 615/889/127 616/908/129 609/892/122 +f 618/899/132 626/912/52 622/900/4 +f 621/894/131 629/911/69 623/902/3 +f 604/903/74 622/1031/4 627/904/49 +f 619/905/133 627/904/49 628/906/1 +f 616/908/129 624/913/64 625/909/5 +f 620/907/128 628/906/1 629/911/69 +f 617/910/134 625/909/5 626/912/52 +f 615/889/127 623/902/3 624/913/64 +f 630/914/2 638/936/143 639/915/135 +f 645/917/136 638/936/143 630/914/2 +f 635/919/79 643/1032/145 644/920/137 +f 641/922/138 642/1033/76 634/923/6 +f 639/915/135 640/928/139 632/925/1 +f 644/920/137 645/917/136 637/918/8 +f 642/926/76 643/1032/145 635/919/79 +f 640/928/139 641/922/138 633/924/98 +f 647/929/140 648/943/150 640/930/139 +f 644/931/137 651/941/148 652/932/141 +f 640/930/139 648/943/150 649/933/142 +f 646/935/10 647/929/140 639/915/135 +f 645/917/136 652/932/141 646/935/10 +f 650/937/144 651/941/148 644/931/137 +f 652/932/141 659/951/153 653/939/146 +f 650/937/144 657/946/152 658/940/147 +f 647/929/140 654/958/154 655/942/149 +f 658/940/147 659/951/153 652/932/141 +f 648/943/150 655/942/149 656/944/151 +f 653/939/146 654/958/154 647/929/140 +f 656/948/151 664/962/69 660/949/3 +f 659/951/153 667/961/52 661/952/4 +f 642/953/76 660/1034/3 665/954/64 +f 657/955/152 665/954/64 666/956/5 +f 654/958/154 662/963/49 663/959/1 +f 658/957/147 666/956/5 667/961/52 +f 655/960/149 663/959/1 664/962/69 +f 653/939/146 661/952/4 662/963/49 +f 676/964/143 677/975/135 669/965/7 +f 683/967/136 676/964/143 668/966/2 +f 681/969/145 682/977/137 674/970/5 +f 679/972/138 680/1035/76 672/973/6 +f 677/975/135 678/980/139 670/976/1 +f 682/977/137 683/967/136 675/968/8 +f 680/978/76 681/969/145 673/971/79 +f 678/980/139 679/972/138 671/974/98 +f 677/975/135 685/993/140 686/981/150 +f 682/983/137 689/992/148 690/984/141 +f 678/982/139 686/981/150 687/985/142 +f 684/987/10 685/993/140 677/975/135 +f 690/984/141 684/987/10 676/964/143 +f 688/988/144 689/992/148 682/983/137 +f 690/984/141 697/1002/153 691/990/146 +f 688/988/144 695/997/152 696/991/147 +f 685/993/140 692/1009/154 693/994/149 +f 696/991/147 697/1002/153 690/984/141 +f 686/981/150 693/994/149 694/995/151 +f 691/990/146 692/1009/154 685/993/140 +f 694/999/151 702/1013/69 698/1000/3 +f 697/1002/153 705/1012/52 699/1003/4 +f 680/1004/76 698/1036/3 703/1005/64 +f 695/1006/152 703/1005/64 704/1007/5 +f 692/1009/154 700/1014/49 701/1010/1 +f 696/1008/147 704/1007/5 705/1012/52 +f 693/1011/149 701/1010/1 702/1013/69 +f 691/990/146 699/1003/4 700/1014/49 diff --git a/src/main/resources/assets/hbm/models/machines/lpw2.obj b/src/main/resources/assets/hbm/models/machines/lpw2.obj new file mode 100644 index 000000000..aa4a22e47 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/lpw2.obj @@ -0,0 +1,17841 @@ +# Blender v2.79 (sub 0) OBJ File: 'lpw2.blend' +# www.blender.org +o WireLeft +v -2.875000 3.812500 2.406250 +v -2.875000 3.937500 2.406250 +v -2.875000 3.812500 2.343750 +v -2.875000 3.937500 2.343750 +v -2.125000 3.812500 2.406250 +v -2.125000 3.937500 2.406250 +v -2.125000 3.812500 2.343750 +v -2.125000 3.937500 2.343750 +vt 0.659208 0.932558 +vt 0.648881 0.927907 +vt 0.659208 0.927907 +vt 0.648881 0.925581 +vt 0.659208 0.925581 +vt 0.659208 0.934884 +vt 0.648881 0.932558 +vt 0.648881 0.920930 +vt 0.659208 0.920930 +vt 0.648881 0.934884 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 1/1/1 6/2/1 2/3/1 +f 2/3/2 8/4/2 4/5/2 +f 3/6/3 5/7/3 1/1/3 +f 4/5/4 7/8/4 3/9/4 +f 1/1/1 5/7/1 6/2/1 +f 2/3/2 6/2/2 8/4/2 +f 3/6/3 7/10/3 5/7/3 +f 4/5/4 8/4/4 7/8/4 +o WireRight +v 2.875000 3.812500 2.406250 +v 2.875000 3.937500 2.406250 +v 2.875000 3.812500 2.343750 +v 2.875000 3.937500 2.343750 +v 2.125000 3.812500 2.406250 +v 2.125000 3.937500 2.406250 +v 2.125000 3.812500 2.343750 +v 2.125000 3.937500 2.343750 +vt 0.648881 0.927907 +vt 0.638554 0.932558 +vt 0.638554 0.927907 +vt 0.648881 0.925581 +vt 0.638554 0.925581 +vt 0.648881 0.932558 +vt 0.638554 0.934884 +vt 0.648881 0.920930 +vt 0.638554 0.920930 +vt 0.648881 0.934884 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 14/11/5 9/12/5 10/13/5 +f 16/14/6 10/13/6 12/15/6 +f 13/16/7 11/17/7 9/12/7 +f 15/18/8 12/15/8 11/19/8 +f 14/11/5 13/16/5 9/12/5 +f 16/14/6 14/11/6 10/13/6 +f 13/16/7 15/20/7 11/17/7 +f 15/18/8 16/14/8 12/15/8 +o Center +v 0.000000 4.999998 2.749994 +v -0.574025 4.885818 2.749994 +v -1.060660 4.560658 2.749994 +v -1.385819 4.074023 2.749994 +v -1.500000 3.499998 2.749994 +v -1.385819 2.925972 2.749994 +v -1.060660 2.439339 2.749994 +v -0.574025 2.114179 2.749994 +v 0.000000 1.999998 2.749994 +v 0.574024 2.114179 2.749994 +v 1.060659 2.439338 2.749994 +v 1.385818 2.925972 2.749994 +v 1.500000 3.499998 2.749994 +v 1.385818 4.074024 2.749994 +v 1.060659 4.560658 2.749994 +v 0.574024 4.885818 2.749994 +v 0.000000 4.999998 -0.250006 +v -0.574025 4.885818 -0.250006 +v -1.060660 4.560658 -0.250006 +v -1.385819 4.074023 -0.250006 +v -1.500000 3.499998 -0.250006 +v -1.385819 2.925972 -0.250006 +v -1.060660 2.439339 -0.250006 +v -0.574025 2.114179 -0.250006 +v 0.000000 1.999998 -0.250006 +v 0.574024 2.114179 -0.250006 +v 1.060659 2.439338 -0.250006 +v 1.385818 2.925972 -0.250006 +v 1.500000 3.499998 -0.250006 +v 1.385818 4.074024 -0.250006 +v 1.060659 4.560658 -0.250006 +v 0.574024 4.885818 -0.250006 +v 0.000000 4.499998 -1.250006 +v -0.382684 4.423878 -1.250006 +v -0.707107 4.207105 -1.250006 +v -0.923880 3.882682 -1.250006 +v -1.000000 3.499998 -1.250006 +v -0.923880 3.117314 -1.250006 +v -0.707107 2.792892 -1.250006 +v -0.382684 2.576118 -1.250006 +v 0.000000 2.499998 -1.250006 +v 0.382683 2.576118 -1.250006 +v 0.707107 2.792892 -1.250006 +v 0.923880 3.117314 -1.250006 +v 1.000000 3.499998 -1.250006 +v 0.923880 3.882682 -1.250006 +v 0.707107 4.207106 -1.250006 +v 0.382683 4.423878 -1.250006 +v 0.000000 4.499998 3.749994 +v -0.382684 4.423878 3.749994 +v -0.707107 4.207105 3.749994 +v -0.923880 3.882682 3.749994 +v -1.000000 3.499998 3.749994 +v -0.923880 3.117314 3.749994 +v -0.707107 2.792892 3.749994 +v -0.382684 2.576118 3.749994 +v 0.000000 2.499998 3.749994 +v 0.382683 2.576118 3.749994 +v 0.707107 2.792892 3.749994 +v 0.923880 3.117314 3.749994 +v 1.000000 3.499998 3.749994 +v 0.923880 3.882682 3.749994 +v 0.707107 4.207106 3.749994 +v 0.382683 4.423878 3.749994 +v 0.000000 4.999998 2.499994 +v -0.574025 4.885818 2.499994 +v -1.060660 4.560658 2.499994 +v -1.385819 4.074022 2.499994 +v -1.500000 3.499998 2.499994 +v -1.385819 2.925972 2.499994 +v -1.060660 2.439338 2.499994 +v -0.574025 2.114179 2.499994 +v -0.000001 1.999998 2.499994 +v 0.574024 2.114179 2.499994 +v 1.060659 2.439337 2.499994 +v 1.385818 2.925972 2.499994 +v 1.500000 3.499998 2.499994 +v 1.385818 4.074023 2.499994 +v 1.060659 4.560658 2.499994 +v 0.574024 4.885818 2.499994 +v 0.000000 4.999998 2.124994 +v -0.574025 4.885818 2.124994 +v -1.060660 4.560658 2.124994 +v -1.385819 4.074022 2.124994 +v -1.500000 3.499998 2.124994 +v -1.385819 2.925972 2.124994 +v -1.060660 2.439338 2.124994 +v -0.574025 2.114179 2.124994 +v -0.000001 1.999998 2.124994 +v 0.574024 2.114179 2.124994 +v 1.060659 2.439337 2.124994 +v 1.385818 2.925972 2.124994 +v 1.500000 3.499998 2.124994 +v 1.385818 4.074023 2.124994 +v 1.060659 4.560658 2.124994 +v 0.574024 4.885818 2.124994 +v 0.000000 5.749998 2.124996 +v -0.861038 5.578728 2.124996 +v -1.590990 5.090989 2.124996 +v -2.078729 4.361035 2.124996 +v -2.250000 3.499998 2.124996 +v -2.078729 2.638961 2.124996 +v -1.590990 1.909008 2.124996 +v -0.861038 1.421268 2.124996 +v -0.000001 1.249998 2.124996 +v 0.861037 1.421268 2.124996 +v 1.590989 1.909007 2.124996 +v 2.078729 2.638960 2.124996 +v 2.250000 3.499998 2.124996 +v 2.078728 4.361035 2.124996 +v 1.590989 5.090989 2.124996 +v 0.861036 5.578728 2.124996 +v 0.000000 5.749998 2.499996 +v -0.861038 5.578728 2.499996 +v -1.590990 5.090989 2.499996 +v -2.078729 4.361035 2.499996 +v -2.250000 3.499998 2.499996 +v -2.078729 2.638961 2.499996 +v -1.590990 1.909008 2.499996 +v -0.861038 1.421268 2.499996 +v -0.000001 1.249998 2.499996 +v 0.861037 1.421268 2.499996 +v 1.590989 1.909007 2.499996 +v 2.078729 2.638960 2.499996 +v 2.250000 3.499998 2.499996 +v 2.078728 4.361035 2.499996 +v 1.590989 5.090989 2.499996 +v 0.861036 5.578728 2.499996 +v 0.000000 4.999998 0.374994 +v -0.574025 4.885818 0.374994 +v -1.060660 4.560658 0.374994 +v -1.385819 4.074022 0.374994 +v -1.500000 3.499998 0.374994 +v -1.385819 2.925972 0.374994 +v -1.060660 2.439338 0.374994 +v -0.574025 2.114179 0.374994 +v -0.000001 1.999998 0.374994 +v 0.574024 2.114179 0.374994 +v 1.060659 2.439337 0.374994 +v 1.385818 2.925972 0.374994 +v 1.500000 3.499998 0.374994 +v 1.385818 4.074023 0.374994 +v 1.060659 4.560658 0.374994 +v 0.574024 4.885818 0.374994 +v 0.000000 4.999998 -0.000006 +v -0.574025 4.885818 -0.000006 +v -1.060660 4.560658 -0.000006 +v -1.385819 4.074022 -0.000006 +v -1.500000 3.499998 -0.000006 +v -1.385819 2.925972 -0.000006 +v -1.060660 2.439338 -0.000006 +v -0.574025 2.114179 -0.000006 +v -0.000001 1.999998 -0.000006 +v 0.574024 2.114179 -0.000006 +v 1.060659 2.439337 -0.000006 +v 1.385818 2.925972 -0.000006 +v 1.500000 3.499998 -0.000006 +v 1.385818 4.074023 -0.000006 +v 1.060659 4.560658 -0.000006 +v 0.574024 4.885818 -0.000006 +v 0.000000 5.749998 -0.000004 +v -0.861038 5.578728 -0.000004 +v -1.590990 5.090989 -0.000004 +v -2.078729 4.361035 -0.000004 +v -2.250000 3.499998 -0.000004 +v -2.078729 2.638961 -0.000004 +v -1.590990 1.909008 -0.000004 +v -0.861038 1.421268 -0.000004 +v -0.000001 1.249998 -0.000004 +v 0.861037 1.421268 -0.000004 +v 1.590989 1.909007 -0.000004 +v 2.078729 2.638960 -0.000004 +v 2.250000 3.499998 -0.000004 +v 2.078728 4.361035 -0.000004 +v 1.590989 5.090989 -0.000004 +v 0.861036 5.578728 -0.000004 +v 0.000000 5.749998 0.374996 +v -0.861038 5.578728 0.374996 +v -1.590990 5.090989 0.374996 +v -2.078729 4.361035 0.374996 +v -2.250000 3.499998 0.374996 +v -2.078729 2.638961 0.374996 +v -1.590990 1.909008 0.374996 +v -0.861038 1.421268 0.374996 +v -0.000001 1.249998 0.374996 +v 0.861037 1.421268 0.374996 +v 1.590989 1.909007 0.374996 +v 2.078729 2.638960 0.374996 +v 2.250000 3.499998 0.374996 +v 2.078728 4.361035 0.374996 +v 1.590989 5.090989 0.374996 +v 0.861036 5.578728 0.374996 +v 0.000000 5.624998 2.124995 +v -0.176777 5.551775 2.124995 +v -0.250000 5.374998 2.124995 +v -0.176777 5.198221 2.124995 +v 0.000000 5.124998 2.124995 +v 0.176777 5.198221 2.124995 +v 0.250000 5.374998 2.124995 +v 0.176777 5.551775 2.124995 +v 0.000000 5.624998 0.374995 +v -0.176777 5.551775 0.374995 +v -0.250000 5.374998 0.374995 +v -0.176777 5.198221 0.374995 +v 0.000000 5.124998 0.374995 +v 0.176777 5.198221 0.374995 +v 0.250000 5.374998 0.374995 +v 0.176777 5.551775 0.374995 +v -0.000001 1.374999 2.124995 +v 0.176776 1.448223 2.124995 +v 0.249999 1.624999 2.124995 +v 0.176776 1.801776 2.124995 +v -0.000001 1.874999 2.124995 +v -0.176777 1.801776 2.124995 +v -0.250001 1.624999 2.124995 +v -0.176777 1.448223 2.124995 +v -0.000001 1.374999 0.374995 +v 0.176776 1.448223 0.374995 +v 0.249999 1.624999 0.374995 +v 0.176776 1.801776 0.374995 +v -0.000001 1.874999 0.374995 +v -0.176777 1.801776 0.374995 +v -0.250001 1.624999 0.374995 +v -0.176777 1.448223 0.374995 +v 2.124999 3.499998 2.124995 +v 2.051775 3.676775 2.124995 +v 1.874999 3.749998 2.124995 +v 1.698222 3.676775 2.124995 +v 1.624999 3.499998 2.124995 +v 1.698222 3.323221 2.124995 +v 1.874999 3.249998 2.124995 +v 2.051775 3.323221 2.124995 +v 2.124999 3.499998 0.374995 +v 2.051775 3.676775 0.374995 +v 1.874999 3.749998 0.374995 +v 1.698222 3.676775 0.374995 +v 1.624999 3.499998 0.374995 +v 1.698222 3.323221 0.374995 +v 1.874999 3.249998 0.374995 +v 2.051775 3.323221 0.374995 +v -2.125000 3.499999 2.124995 +v -2.051776 3.323222 2.124995 +v -1.875000 3.249999 2.124995 +v -1.698223 3.323222 2.124995 +v -1.625000 3.499999 2.124995 +v -1.698223 3.676776 2.124995 +v -1.875000 3.749999 2.124995 +v -2.051776 3.676776 2.124995 +v -2.125000 3.499999 0.374995 +v -2.051776 3.323222 0.374995 +v -1.875000 3.249999 0.374995 +v -1.698223 3.323222 0.374995 +v -1.625000 3.499999 0.374995 +v -1.698223 3.676776 0.374995 +v -1.875000 3.749999 0.374995 +v -2.051776 3.676776 0.374995 +v 1.502602 5.002600 2.124995 +v 1.325825 5.075823 2.124995 +v 1.149048 5.002600 2.124995 +v 1.075825 4.825823 2.124995 +v 1.149048 4.649047 2.124995 +v 1.325825 4.575823 2.124995 +v 1.502602 4.649047 2.124995 +v 1.575825 4.825823 2.124995 +v 1.502602 5.002600 0.374995 +v 1.325825 5.075823 0.374995 +v 1.149048 5.002600 0.374995 +v 1.075825 4.825823 0.374995 +v 1.149048 4.649047 0.374995 +v 1.325825 4.575823 0.374995 +v 1.502602 4.649047 0.374995 +v 1.575825 4.825823 0.374995 +v -1.502602 1.997397 2.124995 +v -1.325825 1.924174 2.124995 +v -1.149049 1.997397 2.124995 +v -1.075826 2.174174 2.124995 +v -1.149049 2.350950 2.124995 +v -1.325826 2.424174 2.124995 +v -1.502602 2.350950 2.124995 +v -1.575825 2.174174 2.124995 +v -1.502602 1.997397 0.374995 +v -1.325825 1.924174 0.374995 +v -1.149049 1.997397 0.374995 +v -1.075826 2.174174 0.374995 +v -1.149049 2.350950 0.374995 +v -1.325826 2.424174 0.374995 +v -1.502602 2.350950 0.374995 +v -1.575825 2.174174 0.374995 +v 1.502601 1.997396 2.124995 +v 1.575824 2.174173 2.124995 +v 1.502602 2.350950 2.124995 +v 1.325824 2.424173 2.124995 +v 1.149048 2.350950 2.124995 +v 1.075825 2.174173 2.124995 +v 1.149048 1.997396 2.124995 +v 1.325824 1.924173 2.124995 +v 1.502601 1.997396 0.374995 +v 1.575824 2.174173 0.374995 +v 1.502602 2.350950 0.374995 +v 1.325824 2.424173 0.374995 +v 1.149048 2.350950 0.374995 +v 1.075825 2.174173 0.374995 +v 1.149048 1.997396 0.374995 +v 1.325824 1.924173 0.374995 +v -1.502602 5.002601 2.124995 +v -1.575825 4.825823 2.124995 +v -1.502602 4.649047 2.124995 +v -1.325825 4.575824 2.124995 +v -1.149049 4.649047 2.124995 +v -1.075825 4.825824 2.124995 +v -1.149048 5.002601 2.124995 +v -1.325825 5.075824 2.124995 +v -1.502602 5.002601 0.374995 +v -1.575825 4.825823 0.374995 +v -1.502602 4.649047 0.374995 +v -1.325825 4.575824 0.374995 +v -1.149049 4.649047 0.374995 +v -1.075825 4.825824 0.374995 +v -1.149048 5.002601 0.374995 +v -1.325825 5.075824 0.374995 +v 0.000000 4.249998 -1.250006 +v -0.287013 4.192907 -1.250006 +v -0.530331 4.030328 -1.250006 +v -0.692910 3.787011 -1.250006 +v -0.750000 3.499998 -1.250006 +v -0.692910 3.212985 -1.250006 +v -0.530331 2.969668 -1.250006 +v -0.287013 2.807089 -1.250006 +v 0.000000 2.749998 -1.250006 +v 0.287012 2.807089 -1.250006 +v 0.530330 2.969668 -1.250006 +v 0.692909 3.212985 -1.250006 +v 0.750000 3.499998 -1.250006 +v 0.692909 3.787011 -1.250006 +v 0.530330 4.030329 -1.250006 +v 0.287012 4.192907 -1.250006 +v 0.000000 4.249998 -3.250006 +v -0.287013 4.192907 -3.250006 +v -0.530331 4.030328 -3.250006 +v -0.692910 3.787011 -3.250006 +v -0.750000 3.499998 -3.250006 +v -0.692910 3.212985 -3.250006 +v -0.530331 2.969668 -3.250006 +v -0.287013 2.807089 -3.250006 +v 0.000000 2.749998 -3.250006 +v 0.287012 2.807089 -3.250006 +v 0.530330 2.969668 -3.250006 +v 0.692909 3.212985 -3.250006 +v 0.750000 3.499998 -3.250006 +v 0.692909 3.787011 -3.250006 +v 0.530330 4.030329 -3.250006 +v 0.287012 4.192907 -3.250006 +v 0.000000 4.749998 -3.250006 +v -0.478354 4.654848 -3.250006 +v -0.883883 4.383882 -3.250006 +v -1.154850 3.978352 -3.250006 +v -1.250000 3.499998 -3.250006 +v -1.154850 3.021645 -3.250006 +v -0.883883 2.616115 -3.250006 +v -0.478354 2.345148 -3.250006 +v 0.000000 2.249998 -3.250006 +v 0.478354 2.345148 -3.250006 +v 0.883883 2.616114 -3.250006 +v 1.154849 3.021644 -3.250006 +v 1.250000 3.499998 -3.250006 +v 1.154849 3.978353 -3.250006 +v 0.883883 4.383883 -3.250006 +v 0.478354 4.654848 -3.250006 +v 0.000000 4.749998 -4.250007 +v -0.478354 4.654848 -4.250007 +v -0.883883 4.383882 -4.250007 +v -1.154850 3.978352 -4.250007 +v -1.250000 3.499998 -4.250007 +v -1.154850 3.021645 -4.250007 +v -0.883883 2.616115 -4.250007 +v -0.478354 2.345148 -4.250007 +v 0.000000 2.249998 -4.250007 +v 0.478354 2.345148 -4.250007 +v 0.883883 2.616114 -4.250007 +v 1.154849 3.021644 -4.250007 +v 1.250000 3.499998 -4.250007 +v 1.154849 3.978353 -4.250007 +v 0.883883 4.383883 -4.250007 +v 0.478354 4.654848 -4.250007 +v 0.000000 4.249998 -4.250007 +v -0.287013 4.192907 -4.250007 +v -0.530331 4.030328 -4.250007 +v -0.692910 3.787011 -4.250007 +v -0.750000 3.499998 -4.250007 +v -0.692910 3.212985 -4.250007 +v -0.530331 2.969668 -4.250007 +v -0.287013 2.807089 -4.250007 +v 0.000000 2.749998 -4.250007 +v 0.287012 2.807089 -4.250007 +v 0.530330 2.969668 -4.250007 +v 0.692909 3.212985 -4.250007 +v 0.750000 3.499998 -4.250007 +v 0.692909 3.787011 -4.250007 +v 0.530330 4.030329 -4.250007 +v 0.287012 4.192907 -4.250007 +v 0.000000 4.249998 -6.250007 +v -0.287013 4.192907 -6.250007 +v -0.530331 4.030328 -6.250007 +v -0.692910 3.787011 -6.250007 +v -0.750000 3.499998 -6.250007 +v -0.692910 3.212985 -6.250007 +v -0.530331 2.969668 -6.250007 +v -0.287013 2.807089 -6.250007 +v 0.000000 2.749998 -6.250007 +v 0.287012 2.807089 -6.250007 +v 0.530330 2.969668 -6.250007 +v 0.692909 3.212985 -6.250007 +v 0.750000 3.499998 -6.250007 +v 0.692909 3.787011 -6.250007 +v 0.530330 4.030329 -6.250007 +v 0.287012 4.192907 -6.250007 +v 0.000000 4.749998 -6.250007 +v -0.478354 4.654848 -6.250007 +v -0.883883 4.383882 -6.250007 +v -1.154850 3.978352 -6.250007 +v -1.250000 3.499998 -6.250007 +v -1.154850 3.021645 -6.250007 +v -0.883883 2.616115 -6.250007 +v -0.478354 2.345148 -6.250007 +v 0.000000 2.249998 -6.250007 +v 0.478354 2.345148 -6.250007 +v 0.883883 2.616114 -6.250007 +v 1.154849 3.021644 -6.250007 +v 1.250000 3.499998 -6.250007 +v 1.154849 3.978353 -6.250007 +v 0.883883 4.383883 -6.250007 +v 0.478354 4.654848 -6.250007 +v 0.000000 4.749998 -7.250007 +v -0.478354 4.654848 -7.250007 +v -0.883883 4.383882 -7.250007 +v -1.154850 3.978352 -7.250007 +v -1.250000 3.499998 -7.250007 +v -1.154850 3.021645 -7.250007 +v -0.883883 2.616115 -7.250007 +v -0.478354 2.345148 -7.250007 +v 0.000000 2.249998 -7.250007 +v 0.478354 2.345148 -7.250007 +v 0.883883 2.616114 -7.250007 +v 1.154849 3.021644 -7.250007 +v 1.250000 3.499998 -7.250007 +v 1.154849 3.978353 -7.250007 +v 0.883883 4.383883 -7.250007 +v 0.478354 4.654848 -7.250007 +v 2.000000 3.999998 2.999994 +v 2.000000 4.176775 3.073217 +v 2.000000 4.249998 3.249994 +v 2.000000 4.176775 3.426770 +v 2.000000 3.999998 3.499994 +v 2.000000 3.823221 3.426770 +v 2.000000 3.749998 3.249994 +v 2.000000 3.823221 3.073217 +v 0.875000 3.999998 2.999994 +v 0.875000 4.176775 3.073217 +v 0.875000 4.249998 3.249994 +v 0.875000 4.176775 3.426770 +v 0.875000 3.999998 3.499994 +v 0.875000 3.823221 3.426770 +v 0.875000 3.749998 3.249994 +v 0.875000 3.823221 3.073217 +v 2.176777 3.926775 2.999994 +v 2.301777 4.051775 3.073217 +v 2.353554 4.103552 3.249994 +v 2.301777 4.051775 3.426770 +v 2.176777 3.926775 3.499994 +v 2.051777 3.801775 3.426770 +v 2.051777 3.801775 3.073217 +v 2.250000 3.749998 2.999994 +v 2.426777 3.749998 3.073217 +v 2.500000 3.749998 3.249994 +v 2.426777 3.749998 3.426770 +v 2.250000 3.749998 3.499994 +v 2.073223 3.749998 3.426770 +v 2.073223 3.749998 3.073217 +v 2.000000 1.749998 3.249994 +v 2.250000 1.749998 2.999994 +v 2.426777 1.749998 3.073217 +v 2.500000 1.749998 3.249994 +v 2.426777 1.749998 3.426770 +v 2.250000 1.749998 3.499994 +v 2.073223 1.749998 3.426770 +v 2.073223 1.749998 3.073217 +v 0.875000 2.823221 3.073217 +v 0.875000 2.749998 3.249994 +v 0.875000 2.823221 3.426770 +v 0.875000 2.999998 3.499994 +v 0.875000 3.176775 3.426770 +v 0.875000 3.249998 3.249994 +v 0.875000 3.176775 3.073217 +v 0.875000 2.999998 2.999994 +v 1.500000 2.823221 3.073217 +v 1.500000 2.749998 3.249994 +v 1.500000 2.823221 3.426770 +v 1.500000 2.999998 3.499994 +v 1.500000 3.176775 3.426770 +v 1.500000 3.249998 3.249994 +v 1.500000 3.176775 3.073217 +v 1.500000 2.999998 2.999994 +v 2.073223 1.676775 -3.500006 +v 2.073223 1.323221 -3.500006 +v 2.250000 1.249998 -3.500006 +v 2.426777 1.323221 -3.500006 +v 2.500000 1.499998 -3.500006 +v 2.426777 1.676775 -3.500006 +v 2.000000 1.499998 -3.500006 +v 2.250000 1.749998 -3.500006 +v 2.000000 1.499998 2.999994 +v 2.426777 1.676775 2.999994 +v 2.500000 1.499998 2.999994 +v 2.426777 1.323221 2.999994 +v 2.250000 1.249998 2.999994 +v 2.073223 1.323221 2.999994 +v 2.073223 1.676775 2.999994 +v 2.073223 1.698221 3.051770 +v 2.073223 1.448221 3.301770 +v 2.250000 1.396444 3.353547 +v 2.426777 1.448221 3.301770 +v 2.500000 1.573221 3.176770 +v 2.426777 1.698221 3.051770 +v 2.000000 1.573221 3.176770 +v 1.676777 2.926775 2.999994 +v 1.801777 3.051775 3.073217 +v 1.853554 3.103552 3.249994 +v 1.801777 3.051775 3.426770 +v 1.676777 2.926775 3.499994 +v 1.551777 2.801775 3.426770 +v 1.551777 2.801775 3.073217 +v 1.750000 2.749998 2.999994 +v 1.926777 2.749998 3.073217 +v 2.000000 2.749998 3.249994 +v 1.926777 2.749998 3.426770 +v 1.750000 2.749998 3.499994 +v 1.573223 2.749998 3.426770 +v 1.573223 2.749998 3.073217 +v 1.500000 1.749998 3.249994 +v 1.750000 1.749998 2.999994 +v 1.926777 1.749998 3.073217 +v 2.000000 1.749998 3.249994 +v 1.926777 1.749998 3.426770 +v 1.750000 1.749998 3.499994 +v 1.573223 1.749998 3.426770 +v 1.573223 1.749998 3.073217 +v 1.573223 1.676775 -3.500006 +v 1.573223 1.323221 -3.500006 +v 1.750000 1.249998 -3.500006 +v 1.926777 1.323221 -3.500006 +v 2.000000 1.499998 -3.500006 +v 1.926777 1.676775 -3.500006 +v 1.500000 1.499998 -3.500006 +v 1.750000 1.749998 -3.500006 +v 1.500000 1.499998 2.999994 +v 1.926777 1.676775 2.999994 +v 2.000000 1.499998 2.999994 +v 1.926777 1.323221 2.999994 +v 1.750000 1.249998 2.999994 +v 1.573223 1.323221 2.999994 +v 1.573223 1.676775 2.999994 +v 1.573223 1.698221 3.051770 +v 1.573223 1.448221 3.301770 +v 1.750000 1.396444 3.353547 +v 1.926777 1.448221 3.301770 +v 2.000000 1.573221 3.176770 +v 1.926777 1.698221 3.051770 +v 1.500000 1.573221 3.176770 +v 2.000000 3.999998 -1.000006 +v 2.000000 4.176775 -0.926783 +v 2.000000 4.249998 -0.750006 +v 2.000000 4.176775 -0.573230 +v 2.000000 3.999998 -0.500006 +v 2.000000 3.823221 -0.573230 +v 2.000000 3.749998 -0.750006 +v 2.000000 3.823221 -0.926783 +v 0.875000 3.999998 -1.000006 +v 0.875000 4.176775 -0.926783 +v 0.875000 4.249998 -0.750006 +v 0.875000 4.176775 -0.573230 +v 0.875000 3.999998 -0.500006 +v 0.875000 3.823221 -0.573230 +v 0.875000 3.749998 -0.750006 +v 0.875000 3.823221 -0.926783 +v 2.176777 3.926775 -1.000006 +v 2.301777 4.051775 -0.926783 +v 2.353554 4.103552 -0.750006 +v 2.301777 4.051775 -0.573230 +v 2.176777 3.926775 -0.500006 +v 2.051777 3.801775 -0.573230 +v 2.051777 3.801775 -0.926783 +v 2.250000 3.749998 -1.000006 +v 2.426777 3.749998 -0.926783 +v 2.500000 3.749998 -0.750006 +v 2.426777 3.749998 -0.573230 +v 2.250000 3.749998 -0.500006 +v 2.073223 3.749998 -0.573230 +v 2.073223 3.749998 -0.926783 +v 2.000000 2.249998 -0.750006 +v 2.250000 2.249998 -1.000006 +v 2.426777 2.249998 -0.926783 +v 2.500000 2.249998 -0.750006 +v 2.426777 2.249998 -0.573230 +v 2.250000 2.249998 -0.500006 +v 2.073223 2.249998 -0.573230 +v 2.073223 2.249998 -0.926783 +v 0.875000 2.823221 -0.926783 +v 0.875000 2.749998 -0.750006 +v 0.875000 2.823221 -0.573230 +v 0.875000 2.999998 -0.500006 +v 0.875000 3.176775 -0.573230 +v 0.875000 3.249998 -0.750006 +v 0.875000 3.176775 -0.926783 +v 0.875000 2.999998 -1.000006 +v 1.500000 2.823221 -0.926783 +v 1.500000 2.749998 -0.750006 +v 1.500000 2.823221 -0.573230 +v 1.500000 2.999998 -0.500006 +v 1.500000 3.176775 -0.573230 +v 1.500000 3.249998 -0.750006 +v 1.500000 3.176775 -0.926783 +v 1.500000 2.999998 -1.000006 +v 2.073223 2.176775 -3.500006 +v 2.073223 1.823221 -3.500006 +v 2.250000 1.749998 -3.500006 +v 2.426777 1.823221 -3.500006 +v 2.500000 1.999998 -3.500006 +v 2.426777 2.176775 -3.500006 +v 2.000000 1.999998 -3.500006 +v 2.250000 2.249998 -3.500006 +v 2.000000 1.999998 -1.000006 +v 2.426777 2.176775 -1.000006 +v 2.500000 1.999998 -1.000006 +v 2.426777 1.823221 -1.000006 +v 2.250000 1.749998 -1.000006 +v 2.073223 1.823221 -1.000006 +v 2.073223 2.176775 -1.000006 +v 2.073223 2.198221 -0.948230 +v 2.073223 1.948221 -0.698230 +v 2.250000 1.896444 -0.646453 +v 2.426777 1.948221 -0.698230 +v 2.500000 2.073221 -0.823230 +v 2.426777 2.198221 -0.948230 +v 2.000000 2.073221 -0.823230 +v 1.676777 2.926775 -1.000006 +v 1.801777 3.051775 -0.926783 +v 1.853554 3.103552 -0.750006 +v 1.801777 3.051775 -0.573230 +v 1.676777 2.926775 -0.500006 +v 1.551777 2.801775 -0.573230 +v 1.551777 2.801775 -0.926783 +v 1.750000 2.749998 -1.000006 +v 1.926777 2.749998 -0.926783 +v 2.000000 2.749998 -0.750006 +v 1.926777 2.749998 -0.573230 +v 1.750000 2.749998 -0.500006 +v 1.573223 2.749998 -0.573230 +v 1.573223 2.749998 -0.926783 +v 1.500000 2.249998 -0.750006 +v 1.750000 2.249998 -1.000006 +v 1.926777 2.249998 -0.926783 +v 2.000000 2.249998 -0.750006 +v 1.926777 2.249998 -0.573230 +v 1.750000 2.249998 -0.500006 +v 1.573223 2.249998 -0.573230 +v 1.573223 2.249998 -0.926783 +v 1.573223 2.176775 -3.500006 +v 1.573223 1.823221 -3.500006 +v 1.750000 1.749998 -3.500006 +v 1.926777 1.823221 -3.500006 +v 2.000000 1.999998 -3.500006 +v 1.926777 2.176775 -3.500006 +v 1.500000 1.999998 -3.500006 +v 1.750000 2.249998 -3.500006 +v 1.500000 1.999998 -1.000006 +v 1.926777 2.176775 -1.000006 +v 2.000000 1.999998 -1.000006 +v 1.926777 1.823221 -1.000006 +v 1.750000 1.749998 -1.000006 +v 1.573223 1.823221 -1.000006 +v 1.573223 2.176775 -1.000006 +v 1.573223 2.198221 -0.948230 +v 1.573223 1.948221 -0.698230 +v 1.750000 1.896444 -0.646453 +v 1.926777 1.948221 -0.698230 +v 2.000000 2.073221 -0.823230 +v 1.926777 2.198221 -0.948230 +v 1.500000 2.073221 -0.823230 +v 1.750000 5.749998 -7.250007 +v 1.396446 5.603552 -7.250007 +v 1.250000 5.249998 -7.250007 +v 1.396446 4.896445 -7.250007 +v 1.750000 4.749998 -7.250007 +v 2.103553 4.896445 -7.250007 +v 2.250000 5.249998 -7.250007 +v 2.103553 5.603552 -7.250007 +v 1.396446 5.603552 -7.750007 +v 1.750000 5.749998 -7.750007 +v 1.250000 5.249998 -7.750007 +v 1.396446 4.896445 -7.750007 +v 1.750000 4.749998 -7.750007 +v 2.103553 4.896445 -7.750007 +v 2.250000 5.249998 -7.750007 +v 2.103553 5.603552 -7.750007 +v 0.000000 4.000000 -7.750007 +v -0.191342 3.961939 -7.750007 +v -0.353554 3.853553 -7.750007 +v -0.461940 3.691341 -7.750007 +v -0.500000 3.500000 -7.750008 +v -0.461940 3.308658 -7.750008 +v -0.353554 3.146446 -7.750008 +v -0.191342 3.038059 -7.750008 +v 0.000000 3.000000 -7.750008 +v 0.191341 3.038059 -7.750008 +v 0.353553 3.146446 -7.750008 +v 0.461940 3.308658 -7.750008 +v 0.500000 3.500000 -7.750008 +v 0.461940 3.691341 -7.750007 +v 0.353553 3.853553 -7.750007 +v 0.191341 3.961939 -7.750007 +v 0.353552 2.792892 -7.000007 +v 0.707106 3.146445 -7.000007 +v 0.353552 2.792892 -7.500007 +v 0.707106 3.146445 -7.500007 +v 1.414212 1.732232 -7.000007 +v 1.767765 2.085785 -7.000007 +v 1.767765 1.378678 -7.500007 +v 2.121319 1.732231 -7.500007 +v 0.707108 3.853552 -7.000007 +v 0.353554 4.207106 -7.000007 +v 0.707108 3.853552 -7.500007 +v 0.353554 4.207106 -7.500007 +v 1.767768 4.914212 -7.000007 +v 1.414214 5.267765 -7.000007 +v 2.121321 5.267765 -7.500007 +v 1.767768 5.621319 -7.500007 +v -0.353553 4.207108 -7.000007 +v -0.707106 3.853554 -7.000007 +v -0.353553 4.207108 -7.500007 +v -0.707106 3.853554 -7.500007 +v -1.414212 5.267768 -7.000007 +v -1.767766 4.914215 -7.000007 +v -1.767766 5.621322 -7.500007 +v -2.121319 5.267768 -7.500007 +v -0.707108 3.146447 -7.000007 +v -0.353555 2.792894 -7.000007 +v -0.707108 3.146447 -7.500007 +v -0.353555 2.792894 -7.500007 +v -1.767768 2.085787 -7.000007 +v -1.414215 1.732234 -7.000007 +v -2.121323 1.732234 -7.500007 +v -1.767769 1.378681 -7.500007 +v -1.750000 5.749998 -7.250007 +v -2.103554 5.603552 -7.250007 +v -2.250000 5.249998 -7.250007 +v -2.103554 4.896445 -7.250007 +v -1.750000 4.749998 -7.250007 +v -1.396447 4.896445 -7.250007 +v -1.250000 5.249998 -7.250007 +v -1.396447 5.603552 -7.250007 +v -2.103554 5.603552 -7.750007 +v -1.750000 5.749998 -7.750007 +v -2.250000 5.249998 -7.750007 +v -2.103554 4.896445 -7.750007 +v -1.750000 4.749998 -7.750007 +v -1.396447 4.896445 -7.750007 +v -1.250000 5.249998 -7.750007 +v -1.396447 5.603552 -7.750007 +v -1.750000 2.249998 -7.250007 +v -2.103554 2.103552 -7.250007 +v -2.250000 1.749998 -7.250007 +v -2.103554 1.396445 -7.250007 +v -1.750000 1.249998 -7.250007 +v -1.396447 1.396445 -7.250007 +v -1.250000 1.749998 -7.250007 +v -1.396447 2.103552 -7.250007 +v -2.103554 2.103552 -7.750007 +v -1.750000 2.249998 -7.750007 +v -2.250000 1.749998 -7.750007 +v -2.103554 1.396445 -7.750007 +v -1.750000 1.249998 -7.750007 +v -1.396447 1.396445 -7.750007 +v -1.250000 1.749998 -7.750007 +v -1.396447 2.103552 -7.750007 +v 1.750000 2.249998 -7.250007 +v 1.396446 2.103552 -7.250007 +v 1.250000 1.749998 -7.250007 +v 1.396446 1.396445 -7.250007 +v 1.750000 1.249998 -7.250007 +v 2.103553 1.396445 -7.250007 +v 2.250000 1.749998 -7.250007 +v 2.103553 2.103552 -7.250007 +v 1.396446 2.103552 -7.750007 +v 1.750000 2.249998 -7.750007 +v 1.250000 1.749998 -7.750007 +v 1.396446 1.396445 -7.750007 +v 1.750000 1.249998 -7.750007 +v 2.103553 1.396445 -7.750007 +v 2.250000 1.749998 -7.750007 +v 2.103553 2.103552 -7.750007 +v -2.000000 3.999998 2.999994 +v -2.000000 4.176775 3.073217 +v -2.000000 4.249998 3.249994 +v -2.000000 4.176775 3.426770 +v -2.000000 3.999998 3.499994 +v -2.000000 3.823221 3.426770 +v -2.000000 3.749998 3.249994 +v -2.000000 3.823221 3.073217 +v -0.875000 3.999998 2.999994 +v -0.875000 4.176775 3.073217 +v -0.875000 4.249998 3.249994 +v -0.875000 4.176775 3.426770 +v -0.875000 3.999998 3.499994 +v -0.875000 3.823221 3.426770 +v -0.875000 3.749998 3.249994 +v -0.875000 3.823221 3.073217 +v -2.176777 3.926775 2.999994 +v -2.301777 4.051775 3.073217 +v -2.353554 4.103552 3.249994 +v -2.301777 4.051775 3.426770 +v -2.176777 3.926775 3.499994 +v -2.051777 3.801775 3.426770 +v -2.051777 3.801775 3.073217 +v -2.250000 3.749998 2.999994 +v -2.426777 3.749998 3.073217 +v -2.500000 3.749998 3.249994 +v -2.426777 3.749998 3.426770 +v -2.250000 3.749998 3.499994 +v -2.073223 3.749998 3.426770 +v -2.073223 3.749998 3.073217 +v -2.000000 1.749998 3.249994 +v -2.250000 1.749998 2.999994 +v -2.426777 1.749998 3.073217 +v -2.500000 1.749998 3.249994 +v -2.426777 1.749998 3.426770 +v -2.250000 1.749998 3.499994 +v -2.073223 1.749998 3.426770 +v -2.073223 1.749998 3.073217 +v -0.875000 2.823221 3.073217 +v -0.875000 2.749998 3.249994 +v -0.875000 2.823221 3.426770 +v -0.875000 2.999998 3.499994 +v -0.875000 3.176775 3.426770 +v -0.875000 3.249998 3.249994 +v -0.875000 3.176775 3.073217 +v -0.875000 2.999998 2.999994 +v -1.500000 2.823221 3.073217 +v -1.500000 2.749998 3.249994 +v -1.500000 2.823221 3.426770 +v -1.500000 2.999998 3.499994 +v -1.500000 3.176775 3.426770 +v -1.500000 3.249998 3.249994 +v -1.500000 3.176775 3.073217 +v -1.500000 2.999998 2.999994 +v -2.073223 1.676775 -3.500006 +v -2.073223 1.323221 -3.500006 +v -2.250000 1.249998 -3.500006 +v -2.426777 1.323221 -3.500006 +v -2.500000 1.499998 -3.500006 +v -2.426777 1.676775 -3.500006 +v -2.000000 1.499998 -3.500006 +v -2.250000 1.749998 -3.500006 +v -2.000000 1.499998 2.999994 +v -2.426777 1.676775 2.999994 +v -2.500000 1.499998 2.999994 +v -2.426777 1.323221 2.999994 +v -2.250000 1.249998 2.999994 +v -2.073223 1.323221 2.999994 +v -2.073223 1.676775 2.999994 +v -2.073223 1.698221 3.051770 +v -2.073223 1.448221 3.301770 +v -2.250000 1.396444 3.353547 +v -2.426777 1.448221 3.301770 +v -2.500000 1.573221 3.176770 +v -2.426777 1.698221 3.051770 +v -2.000000 1.573221 3.176770 +v -1.676777 2.926775 2.999994 +v -1.801777 3.051775 3.073217 +v -1.853554 3.103552 3.249994 +v -1.801777 3.051775 3.426770 +v -1.676777 2.926775 3.499994 +v -1.551777 2.801775 3.426770 +v -1.551777 2.801775 3.073217 +v -1.750000 2.749998 2.999994 +v -1.926777 2.749998 3.073217 +v -2.000000 2.749998 3.249994 +v -1.926777 2.749998 3.426770 +v -1.750000 2.749998 3.499994 +v -1.573223 2.749998 3.426770 +v -1.573223 2.749998 3.073217 +v -1.500000 1.749998 3.249994 +v -1.750000 1.749998 2.999994 +v -1.926777 1.749998 3.073217 +v -2.000000 1.749998 3.249994 +v -1.926777 1.749998 3.426770 +v -1.750000 1.749998 3.499994 +v -1.573223 1.749998 3.426770 +v -1.573223 1.749998 3.073217 +v -1.573223 1.676775 -3.500006 +v -1.573223 1.323221 -3.500006 +v -1.750000 1.249998 -3.500006 +v -1.926777 1.323221 -3.500006 +v -2.000000 1.499998 -3.500006 +v -1.926777 1.676775 -3.500006 +v -1.500000 1.499998 -3.500006 +v -1.750000 1.749998 -3.500006 +v -1.500000 1.499998 2.999994 +v -1.926777 1.676775 2.999994 +v -2.000000 1.499998 2.999994 +v -1.926777 1.323221 2.999994 +v -1.750000 1.249998 2.999994 +v -1.573223 1.323221 2.999994 +v -1.573223 1.676775 2.999994 +v -1.573223 1.698221 3.051770 +v -1.573223 1.448221 3.301770 +v -1.750000 1.396444 3.353547 +v -1.926777 1.448221 3.301770 +v -2.000000 1.573221 3.176770 +v -1.926777 1.698221 3.051770 +v -1.500000 1.573221 3.176770 +v -2.000000 3.999998 -1.000006 +v -2.000000 4.176775 -0.926783 +v -2.000000 4.249998 -0.750006 +v -2.000000 4.176775 -0.573230 +v -2.000000 3.999998 -0.500006 +v -2.000000 3.823221 -0.573230 +v -2.000000 3.749998 -0.750006 +v -2.000000 3.823221 -0.926783 +v -0.875000 3.999998 -1.000006 +v -0.875000 4.176775 -0.926783 +v -0.875000 4.249998 -0.750006 +v -0.875000 4.176775 -0.573230 +v -0.875000 3.999998 -0.500006 +v -0.875000 3.823221 -0.573230 +v -0.875000 3.749998 -0.750006 +v -0.875000 3.823221 -0.926783 +v -2.176777 3.926775 -1.000006 +v -2.301777 4.051775 -0.926783 +v -2.353554 4.103552 -0.750006 +v -2.301777 4.051775 -0.573230 +v -2.176777 3.926775 -0.500006 +v -2.051777 3.801775 -0.573230 +v -2.051777 3.801775 -0.926783 +v -2.250000 3.749998 -1.000006 +v -2.426777 3.749998 -0.926783 +v -2.500000 3.749998 -0.750006 +v -2.426777 3.749998 -0.573230 +v -2.250000 3.749998 -0.500006 +v -2.073223 3.749998 -0.573230 +v -2.073223 3.749998 -0.926783 +v -2.000000 2.249998 -0.750006 +v -2.250000 2.249998 -1.000006 +v -2.426777 2.249998 -0.926783 +v -2.500000 2.249998 -0.750006 +v -2.426777 2.249998 -0.573230 +v -2.250000 2.249998 -0.500006 +v -2.073223 2.249998 -0.573230 +v -2.073223 2.249998 -0.926783 +v -0.875000 2.823221 -0.926783 +v -0.875000 2.749998 -0.750006 +v -0.875000 2.823221 -0.573230 +v -0.875000 2.999998 -0.500006 +v -0.875000 3.176775 -0.573230 +v -0.875000 3.249998 -0.750006 +v -0.875000 3.176775 -0.926783 +v -0.875000 2.999998 -1.000006 +v -1.500000 2.823221 -0.926783 +v -1.500000 2.749998 -0.750006 +v -1.500000 2.823221 -0.573230 +v -1.500000 2.999998 -0.500006 +v -1.500000 3.176775 -0.573230 +v -1.500000 3.249998 -0.750006 +v -1.500000 3.176775 -0.926783 +v -1.500000 2.999998 -1.000006 +v -2.073223 2.176775 -3.500006 +v -2.073223 1.823221 -3.500006 +v -2.250000 1.749998 -3.500006 +v -2.426777 1.823221 -3.500006 +v -2.500000 1.999998 -3.500006 +v -2.426777 2.176775 -3.500006 +v -2.000000 1.999998 -3.500006 +v -2.250000 2.249998 -3.500006 +v -2.000000 1.999998 -1.000006 +v -2.426777 2.176775 -1.000006 +v -2.500000 1.999998 -1.000006 +v -2.426777 1.823221 -1.000006 +v -2.250000 1.749998 -1.000006 +v -2.073223 1.823221 -1.000006 +v -2.073223 2.176775 -1.000006 +v -2.073223 2.198221 -0.948230 +v -2.073223 1.948221 -0.698230 +v -2.250000 1.896444 -0.646453 +v -2.426777 1.948221 -0.698230 +v -2.500000 2.073221 -0.823230 +v -2.426777 2.198221 -0.948230 +v -2.000000 2.073221 -0.823230 +v -1.676777 2.926775 -1.000006 +v -1.801777 3.051775 -0.926783 +v -1.853554 3.103552 -0.750006 +v -1.801777 3.051775 -0.573230 +v -1.676777 2.926775 -0.500006 +v -1.551777 2.801775 -0.573230 +v -1.551777 2.801775 -0.926783 +v -1.750000 2.749998 -1.000006 +v -1.926777 2.749998 -0.926783 +v -2.000000 2.749998 -0.750006 +v -1.926777 2.749998 -0.573230 +v -1.750000 2.749998 -0.500006 +v -1.573223 2.749998 -0.573230 +v -1.573223 2.749998 -0.926783 +v -1.500000 2.249998 -0.750006 +v -1.750000 2.249998 -1.000006 +v -1.926777 2.249998 -0.926783 +v -2.000000 2.249998 -0.750006 +v -1.926777 2.249998 -0.573230 +v -1.750000 2.249998 -0.500006 +v -1.573223 2.249998 -0.573230 +v -1.573223 2.249998 -0.926783 +v -1.573223 2.176775 -3.500006 +v -1.573223 1.823221 -3.500006 +v -1.750000 1.749998 -3.500006 +v -1.926777 1.823221 -3.500006 +v -2.000000 1.999998 -3.500006 +v -1.926777 2.176775 -3.500006 +v -1.500000 1.999998 -3.500006 +v -1.750000 2.249998 -3.500006 +v -1.500000 1.999998 -1.000006 +v -1.926777 2.176775 -1.000006 +v -2.000000 1.999998 -1.000006 +v -1.926777 1.823221 -1.000006 +v -1.750000 1.749998 -1.000006 +v -1.573223 1.823221 -1.000006 +v -1.573223 2.176775 -1.000006 +v -1.573223 2.198221 -0.948230 +v -1.573223 1.948221 -0.698230 +v -1.750000 1.896444 -0.646453 +v -1.926777 1.948221 -0.698230 +v -2.000000 2.073221 -0.823230 +v -1.926777 2.198221 -0.948230 +v -1.500000 2.073221 -0.823230 +vt 0.189329 0.513954 +vt 0.179002 0.488372 +vt 0.189329 0.493023 +vt 0.189329 0.546512 +vt 0.179002 0.520930 +vt 0.189329 0.525581 +vt 0.189329 0.579070 +vt 0.179002 0.553488 +vt 0.189329 0.558140 +vt 0.189329 0.590698 +vt 0.179002 0.618605 +vt 0.179002 0.586047 +vt 0.189329 0.623256 +vt 0.179002 0.651163 +vt 0.189329 0.655814 +vt 0.179002 0.683721 +vt 0.189329 0.688372 +vt 0.179002 0.716279 +vt 0.189329 0.720930 +vt 0.179002 0.748837 +vt 0.189329 0.774419 +vt 0.189329 0.753488 +vt 0.189329 0.786047 +vt 0.179002 0.813953 +vt 0.179002 0.781395 +vt 0.189329 0.318605 +vt 0.179002 0.293023 +vt 0.189329 0.297674 +vt 0.189329 0.351163 +vt 0.179002 0.325581 +vt 0.189329 0.330233 +vt 0.189329 0.383721 +vt 0.179002 0.358140 +vt 0.189329 0.362791 +vt 0.189329 0.416279 +vt 0.179002 0.390698 +vt 0.189329 0.395349 +vt 0.189329 0.427907 +vt 0.179002 0.455814 +vt 0.179002 0.423256 +vt 0.189329 0.481395 +vt 0.189329 0.460465 +vt 0.173838 0.455814 +vt 0.163511 0.481395 +vt 0.163511 0.460465 +vt 0.173838 0.488372 +vt 0.163511 0.513954 +vt 0.163511 0.493023 +vt 0.173838 0.520930 +vt 0.163511 0.546512 +vt 0.163511 0.525581 +vt 0.173838 0.553488 +vt 0.163511 0.579070 +vt 0.163511 0.558140 +vt 0.163511 0.590698 +vt 0.173838 0.618605 +vt 0.163511 0.611628 +vt 0.163511 0.623256 +vt 0.173838 0.651163 +vt 0.163511 0.644186 +vt 0.163511 0.655814 +vt 0.173838 0.683721 +vt 0.163511 0.676744 +vt 0.163511 0.688372 +vt 0.173838 0.716279 +vt 0.163511 0.709302 +vt 0.163511 0.720930 +vt 0.173838 0.748837 +vt 0.163511 0.741860 +vt 0.163511 0.774419 +vt 0.163511 0.753488 +vt 0.163511 0.786047 +vt 0.173838 0.813953 +vt 0.163511 0.806977 +vt 0.173838 0.293023 +vt 0.163511 0.318605 +vt 0.163511 0.297674 +vt 0.173838 0.325581 +vt 0.163511 0.351163 +vt 0.163511 0.330233 +vt 0.173838 0.358140 +vt 0.163511 0.383721 +vt 0.163511 0.362791 +vt 0.173838 0.390698 +vt 0.163511 0.416279 +vt 0.163511 0.395349 +vt 0.163511 0.427907 +vt 0.163511 0.448837 +vt 0.215146 0.513954 +vt 0.204819 0.488372 +vt 0.215146 0.493023 +vt 0.215146 0.546512 +vt 0.204819 0.520930 +vt 0.215146 0.525581 +vt 0.215146 0.579070 +vt 0.204819 0.553488 +vt 0.215146 0.558140 +vt 0.215146 0.590698 +vt 0.204819 0.618605 +vt 0.204819 0.586047 +vt 0.215146 0.623256 +vt 0.204819 0.651163 +vt 0.215146 0.655814 +vt 0.204819 0.683721 +vt 0.215146 0.688372 +vt 0.204819 0.716279 +vt 0.215146 0.720930 +vt 0.204819 0.748837 +vt 0.215146 0.774419 +vt 0.215146 0.753488 +vt 0.215146 0.786047 +vt 0.204819 0.813953 +vt 0.204819 0.781395 +vt 0.215146 0.318605 +vt 0.204819 0.293023 +vt 0.215146 0.297674 +vt 0.215146 0.351163 +vt 0.204819 0.325581 +vt 0.215146 0.330233 +vt 0.215146 0.383721 +vt 0.204819 0.358140 +vt 0.215146 0.362791 +vt 0.215146 0.416279 +vt 0.204819 0.390698 +vt 0.215146 0.395349 +vt 0.215146 0.427907 +vt 0.204819 0.455814 +vt 0.204819 0.423256 +vt 0.215146 0.481395 +vt 0.215146 0.460465 +vt 0.199656 0.455814 +vt 0.189329 0.481395 +vt 0.189329 0.460465 +vt 0.199656 0.488372 +vt 0.189329 0.513954 +vt 0.189329 0.493023 +vt 0.199656 0.520930 +vt 0.189329 0.546512 +vt 0.189329 0.525581 +vt 0.199656 0.553488 +vt 0.189329 0.579070 +vt 0.189329 0.558140 +vt 0.189329 0.590698 +vt 0.199656 0.618605 +vt 0.189329 0.611628 +vt 0.189329 0.623256 +vt 0.199656 0.651163 +vt 0.189329 0.644186 +vt 0.189329 0.655814 +vt 0.199656 0.683721 +vt 0.189329 0.676744 +vt 0.189329 0.688372 +vt 0.199656 0.716279 +vt 0.189329 0.709302 +vt 0.189329 0.720930 +vt 0.199656 0.748837 +vt 0.189329 0.741860 +vt 0.189329 0.774419 +vt 0.189329 0.753488 +vt 0.189329 0.786047 +vt 0.199656 0.813953 +vt 0.189329 0.806977 +vt 0.199656 0.293023 +vt 0.189329 0.318605 +vt 0.189329 0.297674 +vt 0.199656 0.325581 +vt 0.189329 0.351163 +vt 0.189329 0.330233 +vt 0.199656 0.358140 +vt 0.189329 0.383721 +vt 0.189329 0.362791 +vt 0.199656 0.390698 +vt 0.189329 0.416279 +vt 0.189329 0.395349 +vt 0.189329 0.427907 +vt 0.189329 0.448837 +vt 0.072289 0.476744 +vt 0.075732 0.465116 +vt 0.075732 0.476744 +vt 0.072289 0.441860 +vt 0.075732 0.455814 +vt 0.072289 0.455814 +vt 0.072289 0.309302 +vt 0.075732 0.297674 +vt 0.075732 0.309302 +vt 0.072289 0.497674 +vt 0.075732 0.486047 +vt 0.075732 0.497674 +vt 0.072289 0.330233 +vt 0.075732 0.318605 +vt 0.075732 0.330233 +vt 0.072289 0.518605 +vt 0.075732 0.506977 +vt 0.075732 0.518605 +vt 0.072289 0.337209 +vt 0.075732 0.351163 +vt 0.072289 0.351163 +vt 0.072289 0.539535 +vt 0.075732 0.527907 +vt 0.075732 0.539535 +vt 0.072289 0.358140 +vt 0.075732 0.372093 +vt 0.072289 0.372093 +vt 0.072289 0.546512 +vt 0.075732 0.560465 +vt 0.072289 0.560465 +vt 0.072289 0.393023 +vt 0.075732 0.381395 +vt 0.075732 0.393023 +vt 0.072289 0.581395 +vt 0.075732 0.569767 +vt 0.075732 0.581395 +vt 0.072289 0.413953 +vt 0.075732 0.402326 +vt 0.075732 0.413953 +vt 0.072289 0.588372 +vt 0.075732 0.602326 +vt 0.072289 0.602326 +vt 0.072289 0.434884 +vt 0.075732 0.423256 +vt 0.075732 0.434884 +vt 0.072289 0.609302 +vt 0.075732 0.623256 +vt 0.072289 0.623256 +vt 0.110155 0.386046 +vt 0.103270 0.400000 +vt 0.103270 0.388372 +vt 0.103270 0.406977 +vt 0.110155 0.423256 +vt 0.103270 0.418605 +vt 0.103270 0.437209 +vt 0.103270 0.425581 +vt 0.103270 0.444186 +vt 0.110155 0.460465 +vt 0.103270 0.455814 +vt 0.103270 0.462791 +vt 0.110155 0.479070 +vt 0.103270 0.474419 +vt 0.103270 0.493023 +vt 0.103270 0.481395 +vt 0.103270 0.500000 +vt 0.110155 0.516279 +vt 0.103270 0.511628 +vt 0.103270 0.530233 +vt 0.103270 0.518605 +vt 0.103270 0.537209 +vt 0.110155 0.553488 +vt 0.103270 0.548837 +vt 0.103270 0.567442 +vt 0.103270 0.555814 +vt 0.110155 0.572093 +vt 0.103270 0.586047 +vt 0.103270 0.574419 +vt 0.103270 0.295349 +vt 0.110155 0.311628 +vt 0.103270 0.306977 +vt 0.103270 0.313953 +vt 0.110155 0.330233 +vt 0.103270 0.325581 +vt 0.103270 0.332558 +vt 0.110155 0.348837 +vt 0.103270 0.344186 +vt 0.103270 0.362791 +vt 0.103270 0.351163 +vt 0.103270 0.369767 +vt 0.103270 0.381395 +vt 0.130809 0.388372 +vt 0.123924 0.404651 +vt 0.123924 0.386046 +vt 0.130809 0.406977 +vt 0.123924 0.423256 +vt 0.130809 0.437209 +vt 0.123924 0.441860 +vt 0.130809 0.444186 +vt 0.123924 0.460465 +vt 0.130809 0.462791 +vt 0.123924 0.479070 +vt 0.130809 0.493023 +vt 0.123924 0.497674 +vt 0.130809 0.500000 +vt 0.123924 0.516279 +vt 0.130809 0.530233 +vt 0.123924 0.534884 +vt 0.130809 0.537209 +vt 0.123924 0.553488 +vt 0.130809 0.567442 +vt 0.123924 0.572093 +vt 0.130809 0.586047 +vt 0.123924 0.590698 +vt 0.130809 0.295349 +vt 0.123924 0.311628 +vt 0.123924 0.293023 +vt 0.130809 0.313953 +vt 0.123924 0.330233 +vt 0.130809 0.332558 +vt 0.123924 0.348837 +vt 0.130809 0.362791 +vt 0.123924 0.367442 +vt 0.130809 0.369767 +vt 0.130809 0.406977 +vt 0.137694 0.423256 +vt 0.130809 0.418605 +vt 0.130809 0.437209 +vt 0.130809 0.425581 +vt 0.130809 0.444186 +vt 0.137694 0.460465 +vt 0.130809 0.455814 +vt 0.130809 0.462791 +vt 0.137694 0.479070 +vt 0.130809 0.474419 +vt 0.130809 0.493023 +vt 0.130809 0.481395 +vt 0.130809 0.500000 +vt 0.137694 0.516279 +vt 0.130809 0.511628 +vt 0.130809 0.530233 +vt 0.130809 0.518605 +vt 0.130809 0.537209 +vt 0.137694 0.553488 +vt 0.130809 0.548837 +vt 0.130809 0.567442 +vt 0.130809 0.555814 +vt 0.137694 0.572093 +vt 0.130809 0.586047 +vt 0.130809 0.574419 +vt 0.130809 0.295349 +vt 0.137694 0.311628 +vt 0.130809 0.306977 +vt 0.130809 0.313953 +vt 0.137694 0.330233 +vt 0.130809 0.325581 +vt 0.130809 0.332558 +vt 0.137694 0.348837 +vt 0.130809 0.344186 +vt 0.130809 0.362791 +vt 0.130809 0.351163 +vt 0.130809 0.369767 +vt 0.137694 0.386046 +vt 0.130809 0.381395 +vt 0.130809 0.400000 +vt 0.130809 0.388372 +vt 0.796866 0.623256 +vt 0.794860 0.636342 +vt 0.790017 0.641762 +vt 0.790017 0.641959 +vt 0.794860 0.647379 +vt 0.796866 0.660465 +vt 0.142548 0.622421 +vt 0.132839 0.622421 +vt 0.132839 0.596184 +vt 0.879518 0.409302 +vt 0.907057 0.427907 +vt 0.879518 0.427907 +vt 0.907057 0.390698 +vt 0.900172 0.372093 +vt 0.907057 0.372093 +vt 0.900172 0.390698 +vt 0.879518 0.372093 +vt 0.879518 0.353488 +vt 0.907057 0.409302 +vt 0.879518 0.483721 +vt 0.907057 0.502326 +vt 0.879518 0.502326 +vt 0.907057 0.446512 +vt 0.900172 0.465116 +vt 0.900172 0.446512 +vt 0.879518 0.446512 +vt 0.879518 0.427907 +vt 0.907057 0.483721 +vt 0.851979 0.502326 +vt 0.879518 0.483721 +vt 0.879518 0.502326 +vt 0.879518 0.465116 +vt 0.872633 0.446512 +vt 0.879518 0.446512 +vt 0.872633 0.465116 +vt 0.851979 0.446512 +vt 0.851979 0.427907 +vt 0.851979 0.483721 +vt 0.851979 0.427907 +vt 0.879518 0.409302 +vt 0.879518 0.427907 +vt 0.879518 0.390698 +vt 0.872633 0.372093 +vt 0.879518 0.372093 +vt 0.872633 0.390698 +vt 0.851979 0.372093 +vt 0.851979 0.353488 +vt 0.851979 0.409302 +vt 0.796866 0.623256 +vt 0.794860 0.636342 +vt 0.790017 0.641762 +vt 0.790017 0.641959 +vt 0.794860 0.647379 +vt 0.796866 0.660465 +vt 0.796866 0.623256 +vt 0.794860 0.636342 +vt 0.790017 0.641762 +vt 0.790017 0.641959 +vt 0.794860 0.647379 +vt 0.796866 0.660465 +vt 0.796866 0.623256 +vt 0.794860 0.636342 +vt 0.790017 0.641762 +vt 0.790017 0.641959 +vt 0.794860 0.647379 +vt 0.796866 0.660465 +vt 0.189329 0.611628 +vt 0.189329 0.644186 +vt 0.189329 0.676744 +vt 0.189329 0.709302 +vt 0.189329 0.741860 +vt 0.189329 0.806977 +vt 0.189329 0.448837 +vt 0.173838 0.586047 +vt 0.173838 0.781395 +vt 0.173838 0.423256 +vt 0.215146 0.611628 +vt 0.215146 0.644186 +vt 0.215146 0.676744 +vt 0.215146 0.709302 +vt 0.215146 0.741860 +vt 0.215146 0.806977 +vt 0.215146 0.448837 +vt 0.199656 0.586047 +vt 0.199656 0.781395 +vt 0.199656 0.423256 +vt 0.072289 0.462791 +vt 0.075732 0.444186 +vt 0.072289 0.295349 +vt 0.072289 0.483721 +vt 0.072289 0.316279 +vt 0.072289 0.504651 +vt 0.075732 0.339535 +vt 0.072289 0.525581 +vt 0.075732 0.360465 +vt 0.075732 0.548837 +vt 0.072289 0.379070 +vt 0.072289 0.567442 +vt 0.072289 0.400000 +vt 0.075732 0.590698 +vt 0.072289 0.420930 +vt 0.075732 0.611628 +vt 0.110155 0.404651 +vt 0.110155 0.441860 +vt 0.110155 0.497674 +vt 0.110155 0.534884 +vt 0.110155 0.590698 +vt 0.110155 0.293023 +vt 0.110155 0.367442 +vt 0.130809 0.400000 +vt 0.130809 0.418605 +vt 0.130809 0.425581 +vt 0.130809 0.455814 +vt 0.130809 0.474419 +vt 0.130809 0.481395 +vt 0.130809 0.511628 +vt 0.130809 0.518605 +vt 0.130809 0.548837 +vt 0.130809 0.555814 +vt 0.130809 0.574419 +vt 0.130809 0.306977 +vt 0.130809 0.325581 +vt 0.130809 0.344186 +vt 0.130809 0.351163 +vt 0.130809 0.381395 +vt 0.137694 0.404651 +vt 0.137694 0.441860 +vt 0.137694 0.497674 +vt 0.137694 0.534884 +vt 0.137694 0.590698 +vt 0.137694 0.293023 +vt 0.137694 0.367442 +vt 0.785175 0.636342 +vt 0.783169 0.623256 +vt 0.785175 0.610170 +vt 0.790017 0.604749 +vt 0.794860 0.610170 +vt 0.794860 0.673551 +vt 0.790017 0.678972 +vt 0.785175 0.673551 +vt 0.783169 0.660465 +vt 0.785175 0.647379 +vt 0.140321 0.626443 +vt 0.137693 0.627855 +vt 0.135066 0.626443 +vt 0.131351 0.616402 +vt 0.130828 0.609302 +vt 0.131351 0.602203 +vt 0.135066 0.592162 +vt 0.137693 0.590750 +vt 0.140321 0.592162 +vt 0.142548 0.596184 +vt 0.144036 0.602203 +vt 0.144559 0.609302 +vt 0.144036 0.616402 +vt 0.879518 0.390698 +vt 0.907057 0.353488 +vt 0.907057 0.465116 +vt 0.879518 0.465116 +vt 0.907057 0.427907 +vt 0.851979 0.465116 +vt 0.879518 0.427907 +vt 0.851979 0.390698 +vt 0.879518 0.353488 +vt 0.785175 0.636342 +vt 0.783169 0.623256 +vt 0.785175 0.610170 +vt 0.790017 0.604749 +vt 0.794860 0.610170 +vt 0.794860 0.673551 +vt 0.790017 0.678972 +vt 0.785175 0.673551 +vt 0.783169 0.660465 +vt 0.785175 0.647379 +vt 0.785175 0.636342 +vt 0.783169 0.623256 +vt 0.785175 0.610170 +vt 0.790017 0.604749 +vt 0.794860 0.610170 +vt 0.794860 0.673551 +vt 0.790017 0.678972 +vt 0.785175 0.673551 +vt 0.783169 0.660465 +vt 0.785175 0.647379 +vt 0.785175 0.636342 +vt 0.783169 0.623256 +vt 0.785175 0.610170 +vt 0.790017 0.604749 +vt 0.794860 0.610170 +vt 0.794860 0.673551 +vt 0.790017 0.678972 +vt 0.785175 0.673551 +vt 0.783169 0.660465 +vt 0.785175 0.647379 +vt 0.015491 0.355814 +vt 0.056799 0.376744 +vt 0.015491 0.376744 +vt 0.015491 0.544186 +vt 0.056799 0.565116 +vt 0.015491 0.565116 +vt 0.056799 0.397674 +vt 0.015491 0.397674 +vt 0.056799 0.586047 +vt 0.015491 0.586047 +vt 0.056799 0.418605 +vt 0.015491 0.418605 +vt 0.056799 0.606977 +vt 0.015491 0.606977 +vt 0.056799 0.439535 +vt 0.015491 0.439535 +vt 0.056799 0.627907 +vt 0.015491 0.627907 +vt 0.015491 0.460465 +vt 0.056799 0.481395 +vt 0.015491 0.481395 +vt 0.056799 0.460465 +vt 0.015491 0.293023 +vt 0.056799 0.313953 +vt 0.015491 0.313953 +vt 0.056799 0.502326 +vt 0.015491 0.502326 +vt 0.056799 0.334884 +vt 0.015491 0.334884 +vt 0.056799 0.523256 +vt 0.015491 0.523256 +vt 0.056799 0.355814 +vt 0.056799 0.544186 +vt 0.056799 0.293023 +vt 0.000000 0.420930 +vt 0.000000 0.413953 +vt 0.000000 0.400000 +vt -0.000000 0.393023 +vt -0.000000 0.379070 +vt 0.000000 0.358140 +vt -0.000000 0.337209 +vt 0.000000 0.316279 +vt 0.000000 0.295349 +vt -0.000000 0.623256 +vt -0.000000 0.609302 +vt -0.000000 0.588372 +vt 0.000000 0.567442 +vt -0.000000 0.546512 +vt -0.000000 0.539535 +vt -0.000000 0.525581 +vt -0.000000 0.518605 +vt -0.000000 0.504651 +vt 0.000000 0.483721 +vt 0.000000 0.462791 +vt 0.000000 0.441860 +vt 0.127367 0.611628 +vt 0.103270 0.618605 +vt 0.103270 0.611628 +vt 0.127367 0.597674 +vt 0.103270 0.604651 +vt 0.103270 0.597674 +vt 0.127367 0.639535 +vt 0.103270 0.646512 +vt 0.103270 0.639535 +vt 0.127367 0.625581 +vt 0.103270 0.632558 +vt 0.103270 0.625581 +vt 0.127367 0.604651 +vt 0.127367 0.590698 +vt 0.103270 0.590698 +vt 0.127367 0.632558 +vt 0.127367 0.618605 +vt 0.127367 0.611628 +vt 0.103270 0.618605 +vt 0.103270 0.611628 +vt 0.127367 0.597674 +vt 0.103270 0.604651 +vt 0.103270 0.597674 +vt 0.127367 0.639535 +vt 0.103270 0.646512 +vt 0.103270 0.639535 +vt 0.127367 0.625581 +vt 0.103270 0.632558 +vt 0.103270 0.625581 +vt 0.127367 0.604651 +vt 0.127367 0.590698 +vt 0.103270 0.590698 +vt 0.127367 0.632558 +vt 0.127367 0.618605 +vt 0.127367 0.611628 +vt 0.103270 0.618605 +vt 0.103270 0.611628 +vt 0.127367 0.597674 +vt 0.103270 0.604651 +vt 0.103270 0.597674 +vt 0.127367 0.639535 +vt 0.103270 0.646512 +vt 0.103270 0.639535 +vt 0.127367 0.625581 +vt 0.103270 0.632558 +vt 0.103270 0.625581 +vt 0.127367 0.604651 +vt 0.127367 0.590698 +vt 0.103270 0.590698 +vt 0.127367 0.632558 +vt 0.127367 0.618605 +vt 0.127367 0.611628 +vt 0.103270 0.618605 +vt 0.103270 0.611628 +vt 0.127367 0.597674 +vt 0.103270 0.604651 +vt 0.103270 0.597674 +vt 0.127367 0.639535 +vt 0.103270 0.646512 +vt 0.103270 0.639535 +vt 0.127367 0.625581 +vt 0.103270 0.632558 +vt 0.103270 0.625581 +vt 0.127367 0.604651 +vt 0.127367 0.590698 +vt 0.103270 0.590698 +vt 0.127367 0.632558 +vt 0.127367 0.618605 +vt 0.127367 0.611628 +vt 0.103270 0.618605 +vt 0.103270 0.611628 +vt 0.127367 0.597674 +vt 0.103270 0.604651 +vt 0.103270 0.597674 +vt 0.127367 0.639535 +vt 0.103270 0.646512 +vt 0.103270 0.639535 +vt 0.127367 0.625581 +vt 0.103270 0.632558 +vt 0.103270 0.625581 +vt 0.127367 0.604651 +vt 0.127367 0.590698 +vt 0.103270 0.590698 +vt 0.127367 0.632558 +vt 0.127367 0.618605 +vt 0.127367 0.611628 +vt 0.103270 0.618605 +vt 0.103270 0.611628 +vt 0.127367 0.597674 +vt 0.103270 0.604651 +vt 0.103270 0.597674 +vt 0.127367 0.639535 +vt 0.103270 0.646512 +vt 0.103270 0.639535 +vt 0.127367 0.625581 +vt 0.103270 0.632558 +vt 0.103270 0.625581 +vt 0.127367 0.604651 +vt 0.127367 0.590698 +vt 0.103270 0.590698 +vt 0.127367 0.632558 +vt 0.127367 0.618605 +vt 0.127367 0.611628 +vt 0.103270 0.618605 +vt 0.103270 0.611628 +vt 0.127367 0.597674 +vt 0.103270 0.604651 +vt 0.103270 0.597674 +vt 0.127367 0.639535 +vt 0.103270 0.646512 +vt 0.103270 0.639535 +vt 0.127367 0.625581 +vt 0.103270 0.632558 +vt 0.103270 0.625581 +vt 0.127367 0.604651 +vt 0.127367 0.590698 +vt 0.103270 0.590698 +vt 0.127367 0.632558 +vt 0.127367 0.618605 +vt 0.127367 0.611628 +vt 0.103270 0.618605 +vt 0.103270 0.611628 +vt 0.127367 0.597674 +vt 0.103270 0.604651 +vt 0.103270 0.597674 +vt 0.127367 0.639535 +vt 0.103270 0.646512 +vt 0.103270 0.639535 +vt 0.127367 0.625581 +vt 0.103270 0.632558 +vt 0.103270 0.625581 +vt 0.127367 0.604651 +vt 0.127367 0.590698 +vt 0.103270 0.590698 +vt 0.127367 0.632558 +vt 0.127367 0.618605 +vt 0.075732 0.386046 +vt 0.103270 0.397674 +vt 0.075732 0.397674 +vt 0.075732 0.374419 +vt 0.103270 0.386046 +vt 0.075732 0.293023 +vt 0.103270 0.304651 +vt 0.075732 0.304651 +vt 0.103270 0.409302 +vt 0.075732 0.409302 +vt 0.103270 0.316279 +vt 0.075732 0.316279 +vt 0.103270 0.420930 +vt 0.075732 0.420930 +vt 0.103270 0.327907 +vt 0.075732 0.327907 +vt 0.103270 0.432558 +vt 0.075732 0.432558 +vt 0.103270 0.339535 +vt 0.075732 0.339535 +vt 0.103270 0.444186 +vt 0.075732 0.444186 +vt 0.103270 0.351163 +vt 0.075732 0.351163 +vt 0.103270 0.455814 +vt 0.075732 0.455814 +vt 0.103270 0.362791 +vt 0.075732 0.362791 +vt 0.103270 0.467442 +vt 0.075732 0.467442 +vt 0.103270 0.374419 +vt 0.103270 0.479070 +vt 0.075732 0.479070 +vt 0.075732 0.572093 +vt 0.103270 0.583721 +vt 0.075732 0.583721 +vt 0.075732 0.560465 +vt 0.103270 0.572093 +vt 0.075732 0.479070 +vt 0.103270 0.490698 +vt 0.075732 0.490698 +vt 0.103270 0.595349 +vt 0.075732 0.595349 +vt 0.103270 0.502326 +vt 0.075732 0.502326 +vt 0.103270 0.606977 +vt 0.075732 0.606977 +vt 0.103270 0.513954 +vt 0.075732 0.513954 +vt 0.103270 0.618605 +vt 0.075732 0.618605 +vt 0.103270 0.525581 +vt 0.075732 0.525581 +vt 0.103270 0.630233 +vt 0.075732 0.630233 +vt 0.103270 0.537209 +vt 0.075732 0.537209 +vt 0.103270 0.641860 +vt 0.075732 0.641860 +vt 0.103270 0.548837 +vt 0.075732 0.548837 +vt 0.103270 0.653488 +vt 0.075732 0.653488 +vt 0.103270 0.560465 +vt 0.103270 0.665116 +vt 0.075732 0.665116 +vt 0.151463 0.330233 +vt 0.151463 0.497674 +vt 0.151463 0.348837 +vt 0.151463 0.516279 +vt 0.151463 0.367442 +vt 0.151463 0.534884 +vt 0.151463 0.386046 +vt 0.151463 0.553488 +vt 0.151463 0.404651 +vt 0.151463 0.572093 +vt 0.151463 0.441860 +vt 0.151463 0.423256 +vt 0.151463 0.293023 +vt 0.151463 0.460465 +vt 0.151463 0.311628 +vt 0.151463 0.479070 +vt 0.330465 0.909302 +vt 0.345955 0.902326 +vt 0.345955 0.909302 +vt 0.330465 0.923256 +vt 0.345955 0.916279 +vt 0.345955 0.923256 +vt 0.330465 0.874419 +vt 0.345955 0.867442 +vt 0.345955 0.874419 +vt 0.330465 0.888372 +vt 0.345955 0.881395 +vt 0.345955 0.888372 +vt 0.330465 0.902326 +vt 0.345955 0.895349 +vt 0.330465 0.916279 +vt 0.330465 0.881395 +vt 0.330465 0.895349 +vt 0.351119 0.902326 +vt 0.351119 0.909302 +vt 0.346816 0.916279 +vt 0.351119 0.923256 +vt 0.347676 0.923256 +vt 0.348537 0.867442 +vt 0.351119 0.874419 +vt 0.350258 0.874419 +vt 0.346816 0.902326 +vt 0.351119 0.895349 +vt 0.351119 0.916279 +vt 0.348537 0.895349 +vt 0.351119 0.888372 +vt 0.355422 0.916279 +vt 0.354561 0.923256 +vt 0.353701 0.867442 +vt 0.351979 0.874419 +vt 0.355422 0.902326 +vt 0.353701 0.895349 +vt 0.356282 0.909302 +vt 0.350258 0.888372 +vt 0.351119 0.881395 +vt 0.351979 0.888372 +vt 0.356282 0.874419 +vt 0.383821 0.881395 +vt 0.356282 0.881395 +vt 0.356282 0.867442 +vt 0.383821 0.874419 +vt 0.383821 0.888372 +vt 0.356282 0.888372 +vt 0.356282 0.895349 +vt 0.383821 0.902326 +vt 0.356282 0.902326 +vt 0.383821 0.916279 +vt 0.356282 0.916279 +vt 0.383821 0.895349 +vt 0.383821 0.909302 +vt 0.383821 0.923256 +vt 0.356282 0.923256 +vt 0.330465 0.951163 +vt 0.339071 0.944186 +vt 0.339071 0.951163 +vt 0.330465 0.937209 +vt 0.339071 0.930233 +vt 0.339071 0.937209 +vt 0.330465 0.972093 +vt 0.339071 0.965116 +vt 0.339071 0.972093 +vt 0.330465 0.958140 +vt 0.339071 0.958140 +vt 0.330465 0.944186 +vt 0.330465 0.930233 +vt 0.339071 0.923256 +vt 0.330465 0.979070 +vt 0.339071 0.979070 +vt 0.330465 0.965116 +vt 0.394148 0.881395 +vt 0.483649 0.888372 +vt 0.394148 0.888372 +vt 0.394148 0.902326 +vt 0.483649 0.909302 +vt 0.394148 0.909302 +vt 0.483649 0.895349 +vt 0.394148 0.895349 +vt 0.394148 0.874419 +vt 0.483649 0.881395 +vt 0.483649 0.916279 +vt 0.394148 0.916279 +vt 0.483649 0.923256 +vt 0.394148 0.923256 +vt 0.394148 0.867442 +vt 0.483649 0.874419 +vt 0.483649 0.902326 +vt 0.389845 0.916279 +vt 0.388985 0.923256 +vt 0.388985 0.916279 +vt 0.388124 0.916279 +vt 0.389845 0.874419 +vt 0.388985 0.874419 +vt 0.388985 0.867442 +vt 0.388124 0.874419 +vt 0.388985 0.888372 +vt 0.388985 0.895349 +vt 0.388985 0.902326 +vt 0.391566 0.909302 +vt 0.388985 0.909302 +vt 0.391566 0.881395 +vt 0.393287 0.888372 +vt 0.393287 0.902326 +vt 0.388985 0.881395 +vt 0.386403 0.881395 +vt 0.384682 0.902326 +vt 0.386403 0.909302 +vt 0.384682 0.888372 +vt 0.339931 0.958140 +vt 0.344234 0.965116 +vt 0.339931 0.972093 +vt 0.344234 0.979070 +vt 0.340792 0.979070 +vt 0.341652 0.923256 +vt 0.344234 0.930233 +vt 0.343374 0.930233 +vt 0.344234 0.951163 +vt 0.344234 0.958140 +vt 0.344234 0.972093 +vt 0.341652 0.951163 +vt 0.344234 0.944186 +vt 0.348537 0.972093 +vt 0.347676 0.979070 +vt 0.346816 0.923256 +vt 0.345095 0.930233 +vt 0.348537 0.958140 +vt 0.349398 0.965116 +vt 0.346816 0.951163 +vt 0.343374 0.944186 +vt 0.344234 0.937209 +vt 0.345095 0.944186 +vt 0.349398 0.930233 +vt 0.363167 0.937209 +vt 0.349398 0.937209 +vt 0.349398 0.923256 +vt 0.363167 0.930233 +vt 0.363167 0.944186 +vt 0.349398 0.944186 +vt 0.349398 0.951163 +vt 0.363167 0.958140 +vt 0.349398 0.958140 +vt 0.363167 0.972093 +vt 0.349398 0.972093 +vt 0.363167 0.951163 +vt 0.363167 0.965116 +vt 0.363167 0.979070 +vt 0.349398 0.979070 +vt 0.373494 0.937209 +vt 0.462995 0.944186 +vt 0.373494 0.944186 +vt 0.373494 0.958140 +vt 0.462995 0.965116 +vt 0.373494 0.965116 +vt 0.462995 0.951163 +vt 0.373494 0.951163 +vt 0.373494 0.930233 +vt 0.462995 0.937209 +vt 0.462995 0.972093 +vt 0.373494 0.972093 +vt 0.462995 0.979070 +vt 0.373494 0.979070 +vt 0.373494 0.923256 +vt 0.462995 0.930233 +vt 0.462995 0.958140 +vt 0.369191 0.972093 +vt 0.368330 0.979070 +vt 0.368330 0.972093 +vt 0.367470 0.972093 +vt 0.369191 0.930233 +vt 0.368330 0.930233 +vt 0.368330 0.923256 +vt 0.367470 0.930233 +vt 0.368330 0.944186 +vt 0.368330 0.951163 +vt 0.368330 0.958140 +vt 0.370912 0.965116 +vt 0.368330 0.965116 +vt 0.370912 0.937209 +vt 0.372633 0.944186 +vt 0.372633 0.958140 +vt 0.368330 0.937209 +vt 0.365749 0.937209 +vt 0.364028 0.958140 +vt 0.365749 0.965116 +vt 0.364028 0.944186 +vt 0.462995 0.965116 +vt 0.478485 0.958140 +vt 0.478485 0.965116 +vt 0.462995 0.979070 +vt 0.478485 0.972093 +vt 0.478485 0.979070 +vt 0.462995 0.930233 +vt 0.478485 0.923256 +vt 0.478485 0.930233 +vt 0.462995 0.944186 +vt 0.478485 0.937209 +vt 0.478485 0.944186 +vt 0.462995 0.958140 +vt 0.478485 0.951163 +vt 0.462995 0.972093 +vt 0.462995 0.937209 +vt 0.462995 0.951163 +vt 0.483649 0.958140 +vt 0.483649 0.965116 +vt 0.479346 0.972093 +vt 0.483649 0.979070 +vt 0.480207 0.979070 +vt 0.481067 0.923256 +vt 0.483649 0.930233 +vt 0.482788 0.930233 +vt 0.479346 0.958140 +vt 0.483649 0.951163 +vt 0.483649 0.972093 +vt 0.481067 0.951163 +vt 0.483649 0.944186 +vt 0.487952 0.972093 +vt 0.487091 0.979070 +vt 0.486231 0.923256 +vt 0.484509 0.930233 +vt 0.487952 0.958140 +vt 0.488812 0.965116 +vt 0.486231 0.951163 +vt 0.482788 0.944186 +vt 0.483649 0.937209 +vt 0.484509 0.944186 +vt 0.488812 0.930233 +vt 0.509466 0.937209 +vt 0.488812 0.937209 +vt 0.488812 0.923256 +vt 0.509466 0.930233 +vt 0.509466 0.944186 +vt 0.488812 0.944186 +vt 0.488812 0.951163 +vt 0.509466 0.958140 +vt 0.488812 0.958140 +vt 0.509466 0.972093 +vt 0.488812 0.972093 +vt 0.509466 0.951163 +vt 0.509466 0.965116 +vt 0.509466 0.979070 +vt 0.488812 0.979070 +vt 0.483649 0.895349 +vt 0.492255 0.888372 +vt 0.492255 0.895349 +vt 0.483649 0.881395 +vt 0.492255 0.874419 +vt 0.492255 0.881395 +vt 0.483649 0.916279 +vt 0.492255 0.909302 +vt 0.492255 0.916279 +vt 0.483649 0.902326 +vt 0.492255 0.902326 +vt 0.483649 0.888372 +vt 0.483649 0.874419 +vt 0.492255 0.867442 +vt 0.483649 0.923256 +vt 0.492255 0.923256 +vt 0.483649 0.909302 +vt 0.519793 0.937209 +vt 0.554217 0.944186 +vt 0.519793 0.944186 +vt 0.519793 0.958140 +vt 0.554217 0.965116 +vt 0.519793 0.965116 +vt 0.554217 0.951163 +vt 0.519793 0.951163 +vt 0.519793 0.930233 +vt 0.554217 0.937209 +vt 0.554217 0.972093 +vt 0.519793 0.972093 +vt 0.554217 0.979070 +vt 0.519793 0.979070 +vt 0.519793 0.923256 +vt 0.554217 0.930233 +vt 0.554217 0.958140 +vt 0.515491 0.972093 +vt 0.514630 0.979070 +vt 0.514630 0.972093 +vt 0.513769 0.972093 +vt 0.515491 0.930233 +vt 0.514630 0.930233 +vt 0.514630 0.923256 +vt 0.513769 0.930233 +vt 0.514630 0.944186 +vt 0.514630 0.951163 +vt 0.514630 0.965116 +vt 0.518933 0.958140 +vt 0.517212 0.965116 +vt 0.514630 0.937209 +vt 0.518933 0.944186 +vt 0.514630 0.958140 +vt 0.517212 0.937209 +vt 0.512048 0.937209 +vt 0.510327 0.958140 +vt 0.512048 0.965116 +vt 0.510327 0.944186 +vt 0.497418 0.902326 +vt 0.497418 0.909302 +vt 0.493115 0.916279 +vt 0.497418 0.923256 +vt 0.493976 0.923256 +vt 0.494836 0.867442 +vt 0.497418 0.874419 +vt 0.496558 0.874419 +vt 0.493115 0.902326 +vt 0.497418 0.895349 +vt 0.497418 0.916279 +vt 0.494836 0.895349 +vt 0.497418 0.888372 +vt 0.501721 0.916279 +vt 0.500861 0.923256 +vt 0.500000 0.867442 +vt 0.498279 0.874419 +vt 0.501721 0.902326 +vt 0.502582 0.909302 +vt 0.500000 0.895349 +vt 0.496558 0.888372 +vt 0.497418 0.881395 +vt 0.498279 0.888372 +vt 0.502582 0.874419 +vt 0.509466 0.881395 +vt 0.502582 0.881395 +vt 0.502582 0.867442 +vt 0.509466 0.874419 +vt 0.509466 0.888372 +vt 0.502582 0.888372 +vt 0.502582 0.895349 +vt 0.509466 0.902326 +vt 0.502582 0.902326 +vt 0.509466 0.916279 +vt 0.502582 0.916279 +vt 0.509466 0.895349 +vt 0.509466 0.909302 +vt 0.509466 0.923256 +vt 0.502582 0.923256 +vt 0.519793 0.881395 +vt 0.554217 0.888372 +vt 0.519793 0.888372 +vt 0.519793 0.902326 +vt 0.554217 0.909302 +vt 0.519793 0.909302 +vt 0.554217 0.895349 +vt 0.519793 0.895349 +vt 0.519793 0.874419 +vt 0.554217 0.881395 +vt 0.554217 0.916279 +vt 0.519793 0.916279 +vt 0.554217 0.923256 +vt 0.519793 0.923256 +vt 0.519793 0.867442 +vt 0.554217 0.874419 +vt 0.554217 0.902326 +vt 0.515491 0.916279 +vt 0.514630 0.923256 +vt 0.514630 0.916279 +vt 0.513769 0.916279 +vt 0.515491 0.874419 +vt 0.514630 0.874419 +vt 0.514630 0.867442 +vt 0.513769 0.874419 +vt 0.514630 0.888372 +vt 0.514630 0.895349 +vt 0.514630 0.902326 +vt 0.517212 0.909302 +vt 0.514630 0.909302 +vt 0.514630 0.881395 +vt 0.518933 0.888372 +vt 0.518933 0.902326 +vt 0.517212 0.881395 +vt 0.512048 0.881395 +vt 0.510327 0.902326 +vt 0.512048 0.909302 +vt 0.510327 0.888372 +vt 0.783133 0.646512 +vt 0.776248 0.660465 +vt 0.776248 0.646512 +vt 0.783133 0.618605 +vt 0.776248 0.632558 +vt 0.776248 0.618605 +vt 0.783133 0.702326 +vt 0.776248 0.716279 +vt 0.776248 0.702326 +vt 0.783133 0.674419 +vt 0.776248 0.688372 +vt 0.776248 0.674419 +vt 0.783133 0.632558 +vt 0.783133 0.604651 +vt 0.776248 0.604651 +vt 0.783133 0.688372 +vt 0.783133 0.660465 +vt 0.163511 0.372093 +vt 0.163511 0.390698 +vt 0.163511 0.409302 +vt 0.163511 0.434884 +vt 0.163511 0.446512 +vt 0.163511 0.465116 +vt 0.163511 0.490698 +vt 0.163511 0.509302 +vt 0.163511 0.527907 +vt 0.163511 0.546512 +vt 0.163511 0.565116 +vt 0.163511 0.576744 +vt 0.151463 0.590698 +vt 0.163511 0.304651 +vt 0.163511 0.316279 +vt 0.163511 0.334884 +vt 0.163511 0.353488 +vt 0.783133 0.646512 +vt 0.776248 0.660465 +vt 0.776248 0.646512 +vt 0.783133 0.618605 +vt 0.776248 0.632558 +vt 0.776248 0.618605 +vt 0.783133 0.702326 +vt 0.776248 0.716279 +vt 0.776248 0.702326 +vt 0.783133 0.674419 +vt 0.776248 0.688372 +vt 0.776248 0.674419 +vt 0.783133 0.632558 +vt 0.783133 0.604651 +vt 0.776248 0.604651 +vt 0.783133 0.688372 +vt 0.783133 0.660465 +vt 0.783133 0.646512 +vt 0.776248 0.660465 +vt 0.776248 0.646512 +vt 0.783133 0.618605 +vt 0.776248 0.632558 +vt 0.776248 0.618605 +vt 0.783133 0.702326 +vt 0.776248 0.716279 +vt 0.776248 0.702326 +vt 0.783133 0.674419 +vt 0.776248 0.688372 +vt 0.776248 0.674419 +vt 0.783133 0.632558 +vt 0.783133 0.604651 +vt 0.776248 0.604651 +vt 0.783133 0.688372 +vt 0.783133 0.660465 +vt 0.783133 0.646512 +vt 0.776248 0.660465 +vt 0.776248 0.646512 +vt 0.783133 0.618605 +vt 0.776248 0.632558 +vt 0.776248 0.618605 +vt 0.783133 0.702326 +vt 0.776248 0.716279 +vt 0.776248 0.702326 +vt 0.783133 0.674419 +vt 0.776248 0.688372 +vt 0.776248 0.674419 +vt 0.783133 0.632558 +vt 0.783133 0.604651 +vt 0.776248 0.604651 +vt 0.783133 0.688372 +vt 0.783133 0.660465 +vt 0.345955 0.902326 +vt 0.330465 0.909302 +vt 0.345955 0.909302 +vt 0.345955 0.916279 +vt 0.330465 0.923256 +vt 0.345955 0.923256 +vt 0.345955 0.867442 +vt 0.330465 0.874419 +vt 0.345955 0.874419 +vt 0.345955 0.881395 +vt 0.330465 0.888372 +vt 0.345955 0.888372 +vt 0.345955 0.895349 +vt 0.330465 0.902326 +vt 0.330465 0.916279 +vt 0.330465 0.881395 +vt 0.330465 0.895349 +vt 0.351119 0.902326 +vt 0.346816 0.902326 +vt 0.351119 0.923256 +vt 0.346816 0.916279 +vt 0.347676 0.923256 +vt 0.351119 0.874419 +vt 0.348537 0.867442 +vt 0.350258 0.874419 +vt 0.351119 0.895349 +vt 0.348537 0.895349 +vt 0.351119 0.916279 +vt 0.351119 0.888372 +vt 0.350258 0.888372 +vt 0.355422 0.916279 +vt 0.353701 0.867442 +vt 0.351119 0.867442 +vt 0.355422 0.902326 +vt 0.351119 0.909302 +vt 0.353701 0.895349 +vt 0.356282 0.909302 +vt 0.351119 0.881395 +vt 0.351979 0.888372 +vt 0.351979 0.874419 +vt 0.383821 0.881395 +vt 0.356282 0.874419 +vt 0.356282 0.881395 +vt 0.383821 0.874419 +vt 0.356282 0.867442 +vt 0.383821 0.888372 +vt 0.356282 0.888372 +vt 0.383821 0.902326 +vt 0.356282 0.895349 +vt 0.356282 0.902326 +vt 0.383821 0.916279 +vt 0.356282 0.916279 +vt 0.383821 0.895349 +vt 0.383821 0.909302 +vt 0.383821 0.923256 +vt 0.356282 0.923256 +vt 0.339071 0.944186 +vt 0.330465 0.951163 +vt 0.339071 0.951163 +vt 0.339071 0.930233 +vt 0.330465 0.937209 +vt 0.339071 0.937209 +vt 0.339071 0.965116 +vt 0.330465 0.972093 +vt 0.339071 0.972093 +vt 0.330465 0.958140 +vt 0.339071 0.958140 +vt 0.330465 0.944186 +vt 0.339071 0.923256 +vt 0.330465 0.930233 +vt 0.330465 0.979070 +vt 0.339071 0.979070 +vt 0.330465 0.965116 +vt 0.483649 0.888372 +vt 0.394148 0.881395 +vt 0.394148 0.888372 +vt 0.483649 0.909302 +vt 0.394148 0.902326 +vt 0.394148 0.909302 +vt 0.483649 0.895349 +vt 0.394148 0.895349 +vt 0.483649 0.881395 +vt 0.394148 0.874419 +vt 0.483649 0.916279 +vt 0.394148 0.916279 +vt 0.483649 0.923256 +vt 0.394148 0.923256 +vt 0.483649 0.874419 +vt 0.394148 0.867442 +vt 0.483649 0.902326 +vt 0.389845 0.916279 +vt 0.388985 0.916279 +vt 0.388985 0.923256 +vt 0.388124 0.916279 +vt 0.389845 0.874419 +vt 0.388985 0.867442 +vt 0.388985 0.874419 +vt 0.388124 0.874419 +vt 0.388985 0.888372 +vt 0.388985 0.895349 +vt 0.388985 0.909302 +vt 0.393287 0.902326 +vt 0.388985 0.902326 +vt 0.393287 0.888372 +vt 0.388985 0.881395 +vt 0.391566 0.909302 +vt 0.391566 0.881395 +vt 0.386403 0.881395 +vt 0.386403 0.909302 +vt 0.384682 0.902326 +vt 0.384682 0.888372 +vt 0.344234 0.965116 +vt 0.339931 0.958140 +vt 0.340792 0.979070 +vt 0.344234 0.972093 +vt 0.339931 0.972093 +vt 0.344234 0.930233 +vt 0.341652 0.923256 +vt 0.343374 0.930233 +vt 0.344234 0.951163 +vt 0.341652 0.951163 +vt 0.344234 0.944186 +vt 0.343374 0.944186 +vt 0.344234 0.979070 +vt 0.348537 0.972093 +vt 0.346816 0.923256 +vt 0.344234 0.923256 +vt 0.348537 0.958140 +vt 0.344234 0.958140 +vt 0.349398 0.965116 +vt 0.346816 0.951163 +vt 0.344234 0.937209 +vt 0.345095 0.944186 +vt 0.345095 0.930233 +vt 0.363167 0.937209 +vt 0.349398 0.930233 +vt 0.349398 0.937209 +vt 0.363167 0.930233 +vt 0.349398 0.923256 +vt 0.363167 0.944186 +vt 0.349398 0.944186 +vt 0.363167 0.958140 +vt 0.349398 0.951163 +vt 0.349398 0.958140 +vt 0.363167 0.972093 +vt 0.349398 0.972093 +vt 0.363167 0.951163 +vt 0.363167 0.965116 +vt 0.363167 0.979070 +vt 0.349398 0.979070 +vt 0.462995 0.944186 +vt 0.373494 0.937209 +vt 0.373494 0.944186 +vt 0.462995 0.965116 +vt 0.373494 0.958140 +vt 0.373494 0.965116 +vt 0.462995 0.951163 +vt 0.373494 0.951163 +vt 0.462995 0.937209 +vt 0.373494 0.930233 +vt 0.462995 0.972093 +vt 0.373494 0.972093 +vt 0.462995 0.979070 +vt 0.373494 0.979070 +vt 0.462995 0.930233 +vt 0.373494 0.923256 +vt 0.462995 0.958140 +vt 0.369191 0.972093 +vt 0.368330 0.972093 +vt 0.368330 0.979070 +vt 0.367470 0.972093 +vt 0.369191 0.930233 +vt 0.368330 0.923256 +vt 0.368330 0.930233 +vt 0.367470 0.930233 +vt 0.368330 0.944186 +vt 0.368330 0.951163 +vt 0.370912 0.965116 +vt 0.368330 0.958140 +vt 0.368330 0.965116 +vt 0.370912 0.937209 +vt 0.368330 0.937209 +vt 0.365749 0.937209 +vt 0.365749 0.965116 +vt 0.364028 0.958140 +vt 0.364028 0.944186 +vt 0.478485 0.958140 +vt 0.462995 0.965116 +vt 0.478485 0.965116 +vt 0.478485 0.972093 +vt 0.462995 0.979070 +vt 0.478485 0.979070 +vt 0.478485 0.923256 +vt 0.462995 0.930233 +vt 0.478485 0.930233 +vt 0.478485 0.937209 +vt 0.462995 0.944186 +vt 0.478485 0.944186 +vt 0.478485 0.951163 +vt 0.462995 0.958140 +vt 0.462995 0.972093 +vt 0.462995 0.937209 +vt 0.462995 0.951163 +vt 0.483649 0.958140 +vt 0.479346 0.958140 +vt 0.483649 0.979070 +vt 0.479346 0.972093 +vt 0.480207 0.979070 +vt 0.483649 0.930233 +vt 0.481067 0.923256 +vt 0.482788 0.930233 +vt 0.483649 0.951163 +vt 0.481067 0.951163 +vt 0.483649 0.965116 +vt 0.483649 0.944186 +vt 0.482788 0.944186 +vt 0.487952 0.972093 +vt 0.483649 0.972093 +vt 0.486231 0.923256 +vt 0.483649 0.923256 +vt 0.487952 0.958140 +vt 0.488812 0.965116 +vt 0.486231 0.951163 +vt 0.483649 0.937209 +vt 0.484509 0.944186 +vt 0.484509 0.930233 +vt 0.509466 0.937209 +vt 0.488812 0.930233 +vt 0.488812 0.937209 +vt 0.509466 0.930233 +vt 0.488812 0.923256 +vt 0.509466 0.944186 +vt 0.488812 0.944186 +vt 0.509466 0.958140 +vt 0.488812 0.951163 +vt 0.488812 0.958140 +vt 0.509466 0.972093 +vt 0.488812 0.972093 +vt 0.509466 0.951163 +vt 0.509466 0.965116 +vt 0.509466 0.979070 +vt 0.488812 0.979070 +vt 0.492255 0.888372 +vt 0.483649 0.895349 +vt 0.492255 0.895349 +vt 0.492255 0.874419 +vt 0.483649 0.881395 +vt 0.492255 0.881395 +vt 0.492255 0.909302 +vt 0.483649 0.916279 +vt 0.492255 0.916279 +vt 0.483649 0.902326 +vt 0.492255 0.902326 +vt 0.483649 0.888372 +vt 0.492255 0.867442 +vt 0.483649 0.874419 +vt 0.483649 0.923256 +vt 0.492255 0.923256 +vt 0.483649 0.909302 +vt 0.554217 0.944186 +vt 0.519793 0.937209 +vt 0.519793 0.944186 +vt 0.554217 0.965116 +vt 0.519793 0.958140 +vt 0.519793 0.965116 +vt 0.554217 0.951163 +vt 0.519793 0.951163 +vt 0.554217 0.937209 +vt 0.519793 0.930233 +vt 0.554217 0.972093 +vt 0.519793 0.972093 +vt 0.554217 0.979070 +vt 0.519793 0.979070 +vt 0.554217 0.930233 +vt 0.519793 0.923256 +vt 0.554217 0.958140 +vt 0.515491 0.972093 +vt 0.514630 0.972093 +vt 0.514630 0.979070 +vt 0.513769 0.972093 +vt 0.515491 0.930233 +vt 0.514630 0.923256 +vt 0.514630 0.930233 +vt 0.513769 0.930233 +vt 0.514630 0.944186 +vt 0.514630 0.951163 +vt 0.514630 0.965116 +vt 0.518933 0.958140 +vt 0.514630 0.958140 +vt 0.518933 0.944186 +vt 0.514630 0.937209 +vt 0.517212 0.965116 +vt 0.517212 0.937209 +vt 0.512048 0.937209 +vt 0.510327 0.958140 +vt 0.512048 0.965116 +vt 0.510327 0.944186 +vt 0.497418 0.902326 +vt 0.493115 0.902326 +vt 0.497418 0.923256 +vt 0.493115 0.916279 +vt 0.493976 0.923256 +vt 0.497418 0.874419 +vt 0.494836 0.867442 +vt 0.496558 0.874419 +vt 0.497418 0.895349 +vt 0.494836 0.895349 +vt 0.497418 0.916279 +vt 0.497418 0.888372 +vt 0.496558 0.888372 +vt 0.501721 0.916279 +vt 0.500000 0.867442 +vt 0.497418 0.867442 +vt 0.501721 0.902326 +vt 0.502582 0.909302 +vt 0.497418 0.909302 +vt 0.500000 0.895349 +vt 0.497418 0.881395 +vt 0.498279 0.888372 +vt 0.498279 0.874419 +vt 0.509466 0.881395 +vt 0.502582 0.874419 +vt 0.502582 0.881395 +vt 0.509466 0.874419 +vt 0.502582 0.867442 +vt 0.509466 0.888372 +vt 0.502582 0.888372 +vt 0.509466 0.902326 +vt 0.502582 0.895349 +vt 0.502582 0.902326 +vt 0.509466 0.916279 +vt 0.502582 0.916279 +vt 0.509466 0.895349 +vt 0.509466 0.909302 +vt 0.509466 0.923256 +vt 0.502582 0.923256 +vt 0.554217 0.888372 +vt 0.519793 0.881395 +vt 0.519793 0.888372 +vt 0.554217 0.909302 +vt 0.519793 0.902326 +vt 0.519793 0.909302 +vt 0.554217 0.895349 +vt 0.519793 0.895349 +vt 0.554217 0.881395 +vt 0.519793 0.874419 +vt 0.554217 0.916279 +vt 0.519793 0.916279 +vt 0.554217 0.923256 +vt 0.519793 0.923256 +vt 0.554217 0.874419 +vt 0.519793 0.867442 +vt 0.554217 0.902326 +vt 0.515491 0.916279 +vt 0.514630 0.916279 +vt 0.514630 0.923256 +vt 0.513769 0.916279 +vt 0.515491 0.874419 +vt 0.514630 0.867442 +vt 0.514630 0.874419 +vt 0.513769 0.874419 +vt 0.514630 0.888372 +vt 0.514630 0.895349 +vt 0.517212 0.909302 +vt 0.514630 0.902326 +vt 0.514630 0.909302 +vt 0.518933 0.888372 +vt 0.514630 0.881395 +vt 0.518933 0.902326 +vt 0.517212 0.881395 +vt 0.512048 0.881395 +vt 0.510327 0.902326 +vt 0.512048 0.909302 +vt 0.510327 0.888372 +vt 0.000000 0.434884 +vt 0.000000 0.372093 +vt -0.000000 0.351163 +vt 0.000000 0.330233 +vt 0.000000 0.309302 +vt -0.000000 0.602326 +vt 0.000000 0.581395 +vt -0.000000 0.560465 +vt 0.000000 0.497674 +vt 0.000000 0.476744 +vt 0.000000 0.455814 +vt 0.127367 0.646512 +vt 0.127367 0.646512 +vt 0.127367 0.646512 +vt 0.127367 0.646512 +vt 0.127367 0.646512 +vt 0.127367 0.646512 +vt 0.127367 0.646512 +vt 0.127367 0.646512 +vt 0.103270 0.293023 +vt 0.103270 0.479070 +vt 0.330465 0.867442 +vt 0.351119 0.867442 +vt 0.383821 0.867442 +vt 0.330465 0.923256 +vt 0.483649 0.867442 +vt 0.344234 0.923256 +vt 0.363167 0.923256 +vt 0.462995 0.923256 +vt 0.462995 0.923256 +vt 0.483649 0.923256 +vt 0.509466 0.923256 +vt 0.483649 0.867442 +vt 0.554217 0.923256 +vt 0.497418 0.867442 +vt 0.509466 0.867442 +vt 0.554217 0.867442 +vt 0.783133 0.716279 +vt 0.163511 0.379070 +vt 0.163511 0.397674 +vt 0.163511 0.416279 +vt 0.163511 0.427907 +vt 0.163511 0.453488 +vt 0.163511 0.472093 +vt 0.163511 0.483721 +vt 0.163511 0.502326 +vt 0.163511 0.520930 +vt 0.163511 0.539535 +vt 0.163511 0.558140 +vt 0.163511 0.583721 +vt 0.163511 0.297674 +vt 0.163511 0.323256 +vt 0.163511 0.341860 +vt 0.163511 0.360465 +vt 0.783133 0.716279 +vt 0.783133 0.716279 +vt 0.783133 0.716279 +vt 0.330465 0.867442 +vt 0.354561 0.923256 +vt 0.383821 0.867442 +vt 0.330465 0.923256 +vt 0.483649 0.867442 +vt 0.347676 0.979070 +vt 0.363167 0.923256 +vt 0.462995 0.923256 +vt 0.372633 0.944186 +vt 0.372633 0.958140 +vt 0.462995 0.923256 +vt 0.487091 0.979070 +vt 0.509466 0.923256 +vt 0.483649 0.867442 +vt 0.554217 0.923256 +vt 0.500861 0.923256 +vt 0.509466 0.867442 +vt 0.554217 0.867442 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.5000 -0.5000 0.7071 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.5000 0.5000 0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.5000 0.5000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn 0.9239 -0.3827 0.0000 +vn 1.0000 -0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.8263 0.3423 -0.4472 +vn 0.6325 0.6325 -0.4472 +vn 0.3423 0.8263 -0.4472 +vn 0.0000 0.8944 -0.4472 +vn -0.3423 0.8263 -0.4472 +vn -0.6325 0.6325 -0.4472 +vn -0.8263 0.3423 -0.4472 +vn -0.8944 0.0000 -0.4472 +vn -0.8263 -0.3423 -0.4472 +vn -0.6325 -0.6325 -0.4472 +vn -0.3423 -0.8263 -0.4472 +vn 0.0000 -0.8944 -0.4472 +vn 0.3423 -0.8263 -0.4472 +vn 0.6325 -0.6325 -0.4472 +vn 0.8263 -0.3423 -0.4472 +vn 0.8944 0.0000 -0.4472 +vn 0.3423 0.8263 0.4472 +vn 0.6325 0.6325 0.4472 +vn 0.8263 0.3423 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.8263 -0.3423 0.4472 +vn 0.6325 -0.6325 0.4472 +vn 0.3423 -0.8263 0.4472 +vn 0.0000 -0.8944 0.4472 +vn -0.3423 -0.8263 0.4472 +vn -0.6325 -0.6325 0.4472 +vn -0.8263 -0.3423 0.4472 +vn -0.8944 0.0000 0.4472 +vn -0.8263 0.3423 0.4472 +vn -0.6325 0.6325 0.4472 +vn -0.3423 0.8263 0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.1448 0.7194 0.6794 +vn 0.1866 0.9824 0.0000 +vn 0.1448 0.7194 -0.6794 +vn 0.0196 0.0473 -0.9987 +vn 0.0000 -0.7071 -0.7071 +vn -0.1363 -0.6737 -0.7263 +vn 0.0000 -0.7071 0.7071 +vn -0.1363 -0.6737 0.7263 +vn 0.0000 0.7071 0.7071 +vn 0.0196 0.0473 0.9987 +vn 0.0000 0.7071 -0.7071 +vn 0.5294 0.5294 0.6630 +vn 0.0671 0.0671 -0.9955 +vn -0.4617 -0.4617 -0.7574 +vn 0.0671 0.0671 0.9955 +vn 0.5294 0.5294 -0.6630 +vn -0.4617 -0.4617 0.7574 +vn 0.7194 0.1448 -0.6794 +vn 0.0473 0.0196 -0.9987 +vn -0.6737 -0.1363 -0.7263 +vn 0.7194 0.1448 0.6794 +vn 0.0473 0.0196 0.9987 +vn 0.9824 0.1866 0.0000 +vn -0.6737 -0.1363 0.7263 +vn -0.9987 -0.0196 0.0473 +vn -0.7263 0.1363 -0.6737 +vn -0.6794 -0.1448 0.7194 +vn 0.6794 -0.1448 0.7194 +vn 0.7263 0.1363 -0.6737 +vn -0.0000 -0.1866 0.9824 +vn 0.9987 -0.0196 0.0473 +vn -0.9987 -0.0473 0.0196 +vn -0.6794 -0.7194 0.1448 +vn 0.6794 -0.7194 0.1448 +vn 0.9987 -0.0473 0.0196 +vn -0.0000 -0.9824 0.1866 +vn -0.7263 0.6737 -0.1363 +vn 0.7263 0.6737 -0.1363 +vn 0.7574 0.4617 -0.4617 +vn -0.7574 0.4617 -0.4617 +vn -0.6630 -0.5294 0.5294 +vn 0.6630 -0.5294 0.5294 +vn 0.9955 -0.0671 0.0671 +vn -0.9955 -0.0671 0.0671 +vn 0.5547 0.0000 -0.8320 +vn 0.5125 0.2123 -0.8320 +vn 0.3922 0.3922 -0.8320 +vn 0.2123 0.5125 -0.8320 +vn -0.0000 0.5547 -0.8321 +vn 0.0000 0.5547 -0.8320 +vn -0.2123 0.5125 -0.8320 +vn -0.2123 0.5125 -0.8321 +vn -0.3922 0.3922 -0.8320 +vn -0.5125 0.2123 -0.8320 +vn -0.5547 0.0000 -0.8320 +vn -0.5125 -0.2123 -0.8321 +vn -0.5125 -0.2123 -0.8320 +vn -0.3922 -0.3922 -0.8321 +vn -0.2123 -0.5125 -0.8321 +vn 0.0000 -0.5547 -0.8321 +vn 0.2123 -0.5125 -0.8321 +vn 0.3922 -0.3922 -0.8321 +vn 0.5125 -0.2123 -0.8320 +vn 0.5125 -0.2123 -0.8321 +vn -0.1448 0.7194 0.6794 +vn -0.1866 0.9824 0.0000 +vn -0.1448 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.5294 0.5294 0.6630 +vn -0.0671 0.0671 -0.9955 +vn 0.4617 -0.4617 -0.7574 +vn -0.0671 0.0671 0.9955 +vn -0.5294 0.5294 -0.6630 +vn 0.4617 -0.4617 0.7574 +vn -0.7194 0.1448 -0.6794 +vn -0.0473 0.0196 -0.9987 +vn -0.7194 0.1448 0.6794 +vn -0.0473 0.0196 0.9987 +vn -0.9824 0.1866 0.0000 +vn 0.6737 -0.1363 0.7263 +vn 0.6737 -0.1363 -0.7263 +vn 0.2123 0.5125 -0.8321 +s off +f 112/21/9 127/22/9 111/23/9 +f 97/24/9 128/25/9 112/26/9 +f 98/27/9 113/28/9 97/29/9 +f 98/30/9 115/31/9 114/32/9 +f 99/33/9 116/34/9 115/31/9 +f 100/35/9 117/36/9 116/34/9 +f 101/37/9 118/38/9 117/36/9 +f 102/39/9 119/40/9 118/38/9 +f 104/41/9 119/40/9 103/42/9 +f 104/43/9 121/44/9 120/45/9 +f 106/46/9 121/47/9 105/48/9 +f 107/49/9 122/50/9 106/51/9 +f 108/52/9 123/53/9 107/54/9 +f 109/55/9 124/56/9 108/57/9 +f 109/58/9 126/59/9 125/60/9 +f 111/61/9 126/59/9 110/62/9 +f 142/63/10 95/64/10 94/65/10 +f 143/66/10 96/67/10 95/68/10 +f 144/69/10 81/70/10 96/71/10 +f 129/72/10 82/73/10 81/74/10 +f 82/75/10 131/76/10 83/77/10 +f 83/78/10 132/79/10 84/80/10 +f 84/81/10 133/82/10 85/83/10 +f 85/84/10 134/85/10 86/86/10 +f 86/87/10 135/88/10 87/89/10 +f 135/88/10 88/90/10 87/91/10 +f 88/92/10 137/93/10 89/94/10 +f 137/95/10 90/96/10 89/97/10 +f 138/98/10 91/99/10 90/100/10 +f 139/101/10 92/102/10 91/103/10 +f 140/104/10 93/105/10 92/106/10 +f 93/107/10 142/63/10 94/108/10 +f 176/109/9 191/110/9 175/111/9 +f 161/112/9 192/113/9 176/114/9 +f 162/115/9 177/116/9 161/117/9 +f 162/118/9 179/119/9 178/120/9 +f 163/121/9 180/122/9 179/119/9 +f 164/123/9 181/124/9 180/122/9 +f 165/125/9 182/126/9 181/124/9 +f 166/127/9 183/128/9 182/126/9 +f 168/129/9 183/128/9 167/130/9 +f 168/131/9 185/132/9 184/133/9 +f 170/134/9 185/135/9 169/136/9 +f 171/137/9 186/138/9 170/139/9 +f 172/140/9 187/141/9 171/142/9 +f 173/143/9 188/144/9 172/145/9 +f 173/146/9 190/147/9 189/148/9 +f 175/149/9 190/147/9 174/150/9 +f 206/151/10 159/152/10 158/153/10 +f 207/154/10 160/155/10 159/156/10 +f 208/157/10 145/158/10 160/159/10 +f 193/160/10 146/161/10 145/162/10 +f 146/163/10 195/164/10 147/165/10 +f 147/166/10 196/167/10 148/168/10 +f 148/169/10 197/170/10 149/171/10 +f 149/172/10 198/173/10 150/174/10 +f 150/175/10 199/176/10 151/177/10 +f 199/176/10 152/178/10 151/179/10 +f 152/180/10 201/181/10 153/182/10 +f 201/183/10 154/184/10 153/185/10 +f 202/186/10 155/187/10 154/188/10 +f 203/189/10 156/190/10 155/191/10 +f 204/192/10 157/193/10 156/194/10 +f 157/195/10 206/151/10 158/196/10 +f 50/197/9 337/198/9 338/199/9 +f 64/200/9 337/201/9 49/202/9 +f 58/203/9 345/204/9 346/205/9 +f 51/206/9 338/207/9 339/208/9 +f 59/209/9 346/210/9 347/211/9 +f 52/212/9 339/213/9 340/214/9 +f 59/215/9 348/216/9 60/217/9 +f 53/218/9 340/219/9 341/220/9 +f 60/221/9 349/222/9 61/223/9 +f 53/224/9 342/225/9 54/226/9 +f 62/227/9 349/228/9 350/229/9 +f 55/230/9 342/231/9 343/232/9 +f 63/233/9 350/234/9 351/235/9 +f 55/236/9 344/237/9 56/238/9 +f 64/239/9 351/240/9 352/241/9 +f 56/242/9 345/243/9 57/244/9 +f 382/245/10 367/246/10 366/247/10 +f 367/248/10 384/249/10 368/250/10 +f 384/249/10 353/251/10 368/252/10 +f 353/253/10 370/254/10 354/255/10 +f 354/256/10 371/257/10 355/258/10 +f 371/257/10 356/259/10 355/260/10 +f 356/261/10 373/262/10 357/263/10 +f 373/262/10 358/264/10 357/265/10 +f 358/266/10 375/267/10 359/268/10 +f 375/267/10 360/269/10 359/270/10 +f 376/271/10 361/272/10 360/273/10 +f 361/274/10 378/275/10 362/276/10 +f 362/277/10 379/278/10 363/279/10 +f 363/280/10 380/281/10 364/282/10 +f 380/281/10 365/283/10 364/284/10 +f 365/285/10 382/245/10 366/286/10 +f 414/287/9 399/288/9 398/289/9 +f 415/290/9 400/291/9 399/288/9 +f 400/291/9 401/292/9 385/293/9 +f 401/294/9 386/295/9 385/293/9 +f 402/296/9 387/297/9 386/295/9 +f 387/297/9 404/298/9 388/299/9 +f 404/300/9 389/301/9 388/299/9 +f 389/301/9 406/302/9 390/303/9 +f 406/304/9 391/305/9 390/303/9 +f 391/305/9 408/306/9 392/307/9 +f 392/307/9 409/308/9 393/309/9 +f 409/310/9 394/311/9 393/312/9 +f 410/313/9 395/314/9 394/311/9 +f 411/315/9 396/316/9 395/314/9 +f 396/316/9 413/317/9 397/318/9 +f 413/319/9 398/289/9 397/318/9 +f 431/320/10 448/321/10 432/322/10 +f 448/321/10 417/323/10 432/324/10 +f 417/325/10 434/326/10 418/327/10 +f 418/328/10 435/329/10 419/330/10 +f 435/329/10 420/331/10 419/332/10 +f 420/333/10 437/334/10 421/335/10 +f 437/334/10 422/336/10 421/337/10 +f 422/338/10 439/339/10 423/340/10 +f 439/339/10 424/341/10 423/342/10 +f 440/343/10 425/344/10 424/345/10 +f 425/346/10 442/347/10 426/348/10 +f 426/349/10 443/350/10 427/351/10 +f 427/352/10 444/353/10 428/354/10 +f 444/353/10 429/355/10 428/356/10 +f 429/357/10 446/358/10 430/359/10 +f 446/358/10 431/360/10 430/361/10 +f 711/362/10 712/363/10 705/364/10 +f 717/365/9 716/366/9 715/367/9 +f 723/368/9 735/369/9 731/370/9 +f 740/371/9 743/372/9 739/373/9 +f 744/374/11 741/375/11 743/376/11 +f 742/377/10 737/378/10 741/375/10 +f 739/379/12 741/375/12 737/378/12 +f 740/371/13 742/377/13 744/380/13 +f 748/381/9 751/382/9 747/383/9 +f 751/384/14 750/385/14 749/386/14 +f 750/385/10 745/387/10 749/386/10 +f 747/388/15 749/386/15 745/387/15 +f 748/381/16 750/385/16 752/389/16 +f 755/390/9 760/391/9 759/392/9 +f 760/393/17 757/394/17 759/395/17 +f 758/396/10 753/397/10 757/394/10 +f 755/398/13 757/394/13 753/397/13 +f 756/399/12 758/396/12 760/391/12 +f 763/400/9 768/401/9 767/402/9 +f 768/403/18 765/404/18 767/405/18 +f 766/406/10 761/407/10 765/404/10 +f 763/408/16 765/404/16 761/407/16 +f 764/409/15 766/406/15 768/401/15 +f 775/410/10 776/411/10 769/412/10 +f 781/413/9 780/414/9 779/415/9 +f 791/416/10 792/417/10 785/418/10 +f 797/419/9 796/420/9 795/421/9 +f 807/422/10 808/423/10 801/424/10 +f 813/425/9 812/426/9 811/427/9 +f 112/21/9 128/25/9 127/22/9 +f 97/24/9 113/28/9 128/25/9 +f 98/27/9 114/32/9 113/28/9 +f 98/30/9 99/428/9 115/31/9 +f 99/33/9 100/429/9 116/34/9 +f 100/35/9 101/430/9 117/36/9 +f 101/37/9 102/431/9 118/38/9 +f 102/39/9 103/432/9 119/40/9 +f 104/41/9 120/45/9 119/40/9 +f 104/43/9 105/433/9 121/44/9 +f 106/46/9 122/50/9 121/47/9 +f 107/49/9 123/53/9 122/50/9 +f 108/52/9 124/56/9 123/53/9 +f 109/55/9 125/60/9 124/56/9 +f 109/58/9 110/434/9 126/59/9 +f 111/61/9 127/22/9 126/59/9 +f 142/63/10 143/66/10 95/64/10 +f 143/66/10 144/69/10 96/67/10 +f 144/69/10 129/72/10 81/70/10 +f 129/72/10 130/435/10 82/73/10 +f 82/75/10 130/435/10 131/76/10 +f 83/78/10 131/76/10 132/79/10 +f 84/81/10 132/79/10 133/82/10 +f 85/84/10 133/82/10 134/85/10 +f 86/87/10 134/85/10 135/88/10 +f 135/88/10 136/436/10 88/90/10 +f 88/92/10 136/436/10 137/93/10 +f 137/95/10 138/98/10 90/96/10 +f 138/98/10 139/101/10 91/99/10 +f 139/101/10 140/104/10 92/102/10 +f 140/104/10 141/437/10 93/105/10 +f 93/107/10 141/437/10 142/63/10 +f 176/109/9 192/113/9 191/110/9 +f 161/112/9 177/116/9 192/113/9 +f 162/115/9 178/120/9 177/116/9 +f 162/118/9 163/438/9 179/119/9 +f 163/121/9 164/439/9 180/122/9 +f 164/123/9 165/440/9 181/124/9 +f 165/125/9 166/441/9 182/126/9 +f 166/127/9 167/442/9 183/128/9 +f 168/129/9 184/133/9 183/128/9 +f 168/131/9 169/443/9 185/132/9 +f 170/134/9 186/138/9 185/135/9 +f 171/137/9 187/141/9 186/138/9 +f 172/140/9 188/144/9 187/141/9 +f 173/143/9 189/148/9 188/144/9 +f 173/146/9 174/444/9 190/147/9 +f 175/149/9 191/110/9 190/147/9 +f 206/151/10 207/154/10 159/152/10 +f 207/154/10 208/157/10 160/155/10 +f 208/157/10 193/160/10 145/158/10 +f 193/160/10 194/445/10 146/161/10 +f 146/163/10 194/445/10 195/164/10 +f 147/166/10 195/164/10 196/167/10 +f 148/169/10 196/167/10 197/170/10 +f 149/172/10 197/170/10 198/173/10 +f 150/175/10 198/173/10 199/176/10 +f 199/176/10 200/446/10 152/178/10 +f 152/180/10 200/446/10 201/181/10 +f 201/183/10 202/186/10 154/184/10 +f 202/186/10 203/189/10 155/187/10 +f 203/189/10 204/192/10 156/190/10 +f 204/192/10 205/447/10 157/193/10 +f 157/195/10 205/447/10 206/151/10 +f 50/197/9 49/448/9 337/198/9 +f 64/200/9 352/449/9 337/201/9 +f 58/203/9 57/450/9 345/204/9 +f 51/206/9 50/451/9 338/207/9 +f 59/209/9 58/452/9 346/210/9 +f 52/212/9 51/453/9 339/213/9 +f 59/215/9 347/454/9 348/216/9 +f 53/218/9 52/455/9 340/219/9 +f 60/221/9 348/456/9 349/222/9 +f 53/224/9 341/457/9 342/225/9 +f 62/227/9 61/458/9 349/228/9 +f 55/230/9 54/459/9 342/231/9 +f 63/233/9 62/460/9 350/234/9 +f 55/236/9 343/461/9 344/237/9 +f 64/239/9 63/462/9 351/240/9 +f 56/242/9 344/463/9 345/243/9 +f 382/245/10 383/464/10 367/246/10 +f 367/248/10 383/464/10 384/249/10 +f 384/249/10 369/465/10 353/251/10 +f 353/253/10 369/465/10 370/254/10 +f 354/256/10 370/254/10 371/257/10 +f 371/257/10 372/466/10 356/259/10 +f 356/261/10 372/466/10 373/262/10 +f 373/262/10 374/467/10 358/264/10 +f 358/266/10 374/467/10 375/267/10 +f 375/267/10 376/271/10 360/269/10 +f 376/271/10 377/468/10 361/272/10 +f 361/274/10 377/469/10 378/275/10 +f 362/277/10 378/275/10 379/278/10 +f 363/280/10 379/278/10 380/281/10 +f 380/281/10 381/470/10 365/283/10 +f 365/285/10 381/470/10 382/245/10 +f 414/287/9 415/471/9 399/288/9 +f 415/290/9 416/472/9 400/291/9 +f 400/291/9 416/473/9 401/292/9 +f 401/294/9 402/474/9 386/295/9 +f 402/296/9 403/475/9 387/297/9 +f 387/297/9 403/476/9 404/298/9 +f 404/300/9 405/477/9 389/301/9 +f 389/301/9 405/478/9 406/302/9 +f 406/304/9 407/479/9 391/305/9 +f 391/305/9 407/480/9 408/306/9 +f 392/307/9 408/481/9 409/308/9 +f 409/310/9 410/482/9 394/311/9 +f 410/313/9 411/483/9 395/314/9 +f 411/315/9 412/484/9 396/316/9 +f 396/316/9 412/485/9 413/317/9 +f 413/319/9 414/486/9 398/289/9 +f 431/320/10 447/487/10 448/321/10 +f 448/321/10 433/488/10 417/323/10 +f 417/325/10 433/488/10 434/326/10 +f 418/328/10 434/326/10 435/329/10 +f 435/329/10 436/489/10 420/331/10 +f 420/333/10 436/489/10 437/334/10 +f 437/334/10 438/490/10 422/336/10 +f 422/338/10 438/490/10 439/339/10 +f 439/339/10 440/343/10 424/341/10 +f 440/343/10 441/491/10 425/344/10 +f 425/346/10 441/492/10 442/347/10 +f 426/349/10 442/347/10 443/350/10 +f 427/352/10 443/350/10 444/353/10 +f 444/353/10 445/493/10 429/355/10 +f 429/357/10 445/493/10 446/358/10 +f 446/358/10 447/487/10 431/360/10 +f 705/364/10 706/494/10 707/495/10 +f 707/495/10 708/496/10 705/364/10 +f 708/496/10 709/497/10 705/364/10 +f 709/497/10 710/498/10 705/364/10 +f 710/498/10 711/362/10 705/364/10 +f 715/367/9 713/499/9 714/500/9 +f 714/500/9 720/501/9 715/367/9 +f 720/501/9 719/502/9 715/367/9 +f 719/502/9 718/503/9 715/367/9 +f 718/503/9 717/365/9 715/367/9 +f 723/368/9 722/504/9 721/505/9 +f 721/505/9 736/506/9 723/368/9 +f 736/506/9 735/369/9 723/368/9 +f 735/369/9 734/507/9 733/508/9 +f 733/508/9 732/509/9 731/370/9 +f 731/370/9 730/510/9 729/511/9 +f 729/511/9 728/512/9 727/513/9 +f 727/513/9 726/514/9 725/515/9 +f 725/515/9 724/516/9 723/368/9 +f 735/369/9 733/508/9 731/370/9 +f 731/370/9 729/511/9 723/368/9 +f 729/511/9 727/513/9 723/368/9 +f 727/513/9 725/515/9 723/368/9 +f 740/371/9 744/380/9 743/372/9 +f 744/374/11 742/377/11 741/375/11 +f 742/377/10 738/517/10 737/378/10 +f 739/379/12 743/518/12 741/375/12 +f 740/371/13 738/517/13 742/377/13 +f 748/381/9 752/389/9 751/382/9 +f 751/384/14 752/519/14 750/385/14 +f 750/385/10 746/520/10 745/387/10 +f 747/388/15 751/521/15 749/386/15 +f 748/381/16 746/520/16 750/385/16 +f 755/390/9 756/399/9 760/391/9 +f 760/393/17 758/396/17 757/394/17 +f 758/396/10 754/522/10 753/397/10 +f 755/398/13 759/523/13 757/394/13 +f 756/399/12 754/522/12 758/396/12 +f 763/400/9 764/409/9 768/401/9 +f 768/403/18 766/406/18 765/404/18 +f 766/406/10 762/524/10 761/407/10 +f 763/408/16 767/525/16 765/404/16 +f 764/409/15 762/524/15 766/406/15 +f 769/412/10 770/526/10 771/527/10 +f 771/527/10 772/528/10 769/412/10 +f 772/528/10 773/529/10 769/412/10 +f 773/529/10 774/530/10 769/412/10 +f 774/530/10 775/410/10 769/412/10 +f 779/415/9 777/531/9 778/532/9 +f 778/532/9 784/533/9 779/415/9 +f 784/533/9 783/534/9 779/415/9 +f 783/534/9 782/535/9 779/415/9 +f 782/535/9 781/413/9 779/415/9 +f 785/418/10 786/536/10 787/537/10 +f 787/537/10 788/538/10 785/418/10 +f 788/538/10 789/539/10 785/418/10 +f 789/539/10 790/540/10 785/418/10 +f 790/540/10 791/416/10 785/418/10 +f 795/421/9 793/541/9 794/542/9 +f 794/542/9 800/543/9 795/421/9 +f 800/543/9 799/544/9 795/421/9 +f 799/544/9 798/545/9 795/421/9 +f 798/545/9 797/419/9 795/421/9 +f 801/424/10 802/546/10 803/547/10 +f 803/547/10 804/548/10 801/424/10 +f 804/548/10 805/549/10 801/424/10 +f 805/549/10 806/550/10 801/424/10 +f 806/550/10 807/422/10 801/424/10 +f 811/427/9 809/551/9 810/552/9 +f 810/552/9 816/553/9 811/427/9 +f 816/553/9 815/554/9 811/427/9 +f 815/554/9 814/555/9 811/427/9 +f 814/555/9 813/425/9 811/427/9 +s 1 +f 28/556/19 45/557/20 29/558/20 +f 21/559/21 38/560/22 22/561/22 +f 29/558/20 46/562/23 30/563/23 +f 22/561/22 39/564/12 23/565/12 +f 30/563/23 47/566/13 31/567/13 +f 23/565/12 40/568/24 24/569/24 +f 31/567/13 48/570/25 32/571/25 +f 24/569/24 41/572/26 25/573/26 +f 17/574/27 34/575/28 18/576/28 +f 32/571/25 33/577/27 17/574/27 +f 25/578/26 42/579/29 26/580/29 +f 18/576/28 35/581/16 19/582/16 +f 26/580/29 43/583/15 27/584/15 +f 19/582/16 36/585/30 20/586/30 +f 27/584/15 44/587/19 28/556/19 +f 20/586/30 37/588/21 21/559/21 +f 46/562/31 63/233/32 47/566/32 +f 63/462/32 48/570/33 47/566/32 +f 48/570/33 49/202/34 33/577/34 +f 49/448/34 34/575/35 33/577/34 +f 50/451/35 35/581/36 34/575/35 +f 35/581/36 52/212/37 36/585/37 +f 52/455/37 37/588/38 36/585/37 +f 37/588/38 54/226/39 38/560/39 +f 54/459/39 39/564/40 38/560/39 +f 55/236/40 40/568/41 39/564/40 +f 40/568/41 57/244/42 41/572/42 +f 57/450/42 42/579/43 41/589/42 +f 58/452/43 43/583/44 42/579/43 +f 59/215/44 44/587/45 43/583/44 +f 60/221/45 45/557/46 44/587/45 +f 45/557/46 62/227/31 46/562/31 +f 32/571/47 79/590/48 31/567/48 +f 30/563/49 79/591/48 78/592/49 +f 29/558/50 78/593/49 77/594/50 +f 29/558/50 76/595/51 28/556/51 +f 28/556/51 75/596/52 27/584/52 +f 27/584/52 74/597/53 26/580/53 +f 26/580/53 73/598/54 25/578/54 +f 24/569/55 73/599/54 72/600/55 +f 24/569/55 71/601/56 23/565/56 +f 23/565/56 70/602/57 22/561/57 +f 22/561/57 69/603/58 21/559/58 +f 20/586/59 69/604/58 68/605/59 +f 19/582/60 68/606/59 67/607/60 +f 19/582/60 66/608/61 18/576/61 +f 18/576/61 65/609/62 17/574/62 +f 17/574/62 80/610/47 32/571/47 +f 113/28/27 144/69/25 128/25/25 +f 114/32/28 129/72/27 113/28/27 +f 115/31/16 130/435/28 114/32/28 +f 116/34/30 131/76/16 115/31/16 +f 117/36/21 132/79/30 116/34/30 +f 118/38/22 133/82/21 117/36/21 +f 119/40/12 134/85/22 118/38/22 +f 120/45/24 135/88/12 119/40/12 +f 121/44/26 136/436/24 120/45/24 +f 122/50/29 137/95/26 121/47/26 +f 123/53/15 138/98/29 122/50/29 +f 124/56/19 139/101/15 123/53/15 +f 125/60/20 140/104/19 124/56/19 +f 126/59/23 141/437/20 125/60/20 +f 127/22/13 142/63/23 126/59/23 +f 128/25/25 143/66/13 127/22/13 +f 177/116/27 208/157/25 192/113/25 +f 178/120/28 193/160/27 177/116/27 +f 179/119/16 194/445/28 178/120/28 +f 180/122/30 195/164/16 179/119/16 +f 181/124/21 196/167/30 180/122/30 +f 182/126/22 197/170/21 181/124/21 +f 183/128/12 198/173/22 182/126/22 +f 184/133/24 199/176/12 183/128/12 +f 185/132/26 200/446/24 184/133/24 +f 186/138/29 201/183/26 185/135/26 +f 187/141/15 202/186/29 186/138/29 +f 188/144/19 203/189/15 187/141/15 +f 189/148/20 204/192/19 188/144/19 +f 190/147/23 205/447/20 189/148/20 +f 191/110/13 206/151/23 190/147/23 +f 192/113/25 207/154/13 191/110/13 +f 224/611/13 209/612/27 216/613/13 +f 222/614/15 215/615/20 214/616/15 +f 220/617/12 213/618/26 212/619/12 +f 218/620/16 211/621/21 210/622/16 +f 223/623/20 216/613/13 215/615/20 +f 221/624/26 214/616/15 213/625/26 +f 219/626/21 212/619/12 211/621/21 +f 217/627/27 210/622/16 209/612/27 +f 240/628/12 225/629/26 232/630/12 +f 238/631/16 231/632/21 230/633/16 +f 236/634/13 229/635/27 228/636/13 +f 234/637/15 227/638/20 226/639/15 +f 239/640/21 232/630/12 231/632/21 +f 237/641/27 230/633/16 229/642/27 +f 235/643/20 228/636/13 227/638/20 +f 233/644/26 226/639/15 225/629/26 +f 256/645/15 241/646/20 248/647/15 +f 254/648/12 247/649/26 246/650/12 +f 252/651/16 245/652/21 244/653/16 +f 250/654/13 243/655/27 242/656/13 +f 255/657/26 248/647/15 247/649/26 +f 253/658/21 246/650/12 245/659/21 +f 251/660/27 244/653/16 243/655/27 +f 249/661/20 242/656/13 241/646/20 +f 272/662/16 257/663/21 264/664/16 +f 270/665/13 263/666/27 262/667/13 +f 268/668/15 261/669/20 260/670/15 +f 266/671/12 259/672/26 258/673/12 +f 271/674/27 264/664/16 263/666/27 +f 269/675/20 262/667/13 261/676/20 +f 267/677/26 260/670/15 259/672/26 +f 265/678/21 258/673/12 257/663/21 +f 288/679/20 273/680/13 280/681/20 +f 286/682/26 279/683/15 278/684/26 +f 284/685/21 277/686/12 276/687/21 +f 282/688/27 275/689/16 274/690/27 +f 287/691/15 280/681/20 279/683/15 +f 285/692/12 278/684/26 277/693/12 +f 283/694/16 276/687/21 275/689/16 +f 281/695/13 274/690/27 273/680/13 +f 304/696/21 289/697/12 296/698/21 +f 302/699/27 295/700/16 294/701/27 +f 300/702/20 293/703/13 292/704/20 +f 298/705/26 291/706/15 290/707/26 +f 303/708/16 296/698/21 295/700/16 +f 301/709/13 294/701/27 293/710/13 +f 299/711/15 292/704/20 291/706/15 +f 297/712/12 290/707/26 289/697/12 +f 320/713/26 305/714/15 312/715/26 +f 318/716/21 311/717/12 310/718/21 +f 316/719/27 309/720/16 308/721/27 +f 314/722/20 307/723/13 306/724/20 +f 319/725/12 312/715/26 311/717/12 +f 317/726/16 310/718/21 309/727/16 +f 315/728/13 308/721/27 307/723/13 +f 313/729/15 306/724/20 305/714/15 +f 336/730/27 321/731/16 328/732/27 +f 334/733/20 327/734/13 326/735/20 +f 332/736/26 325/737/15 324/738/26 +f 330/739/21 323/740/12 322/741/21 +f 335/742/13 328/732/27 327/734/13 +f 333/743/15 326/735/20 325/744/15 +f 331/745/12 324/738/26 323/740/12 +f 329/746/16 322/741/21 321/731/16 +f 337/747/27 354/748/28 338/749/28 +f 352/750/25 353/751/27 337/747/27 +f 345/752/26 362/753/29 346/754/29 +f 338/749/28 355/755/16 339/756/16 +f 346/754/29 363/757/15 347/758/15 +f 339/756/16 356/759/30 340/760/30 +f 347/758/15 364/761/19 348/762/19 +f 340/760/30 357/763/21 341/764/21 +f 348/762/19 365/765/20 349/766/20 +f 341/764/21 358/767/22 342/768/22 +f 349/766/20 366/769/23 350/770/23 +f 342/768/22 359/771/12 343/772/12 +f 350/770/23 367/773/13 351/774/13 +f 343/772/12 360/775/24 344/776/24 +f 351/774/13 368/777/25 352/750/25 +f 344/776/24 361/778/26 345/779/26 +f 395/314/15 380/281/19 379/278/15 +f 388/299/30 373/262/21 372/466/30 +f 396/316/19 381/470/20 380/281/19 +f 389/301/21 374/467/22 373/262/21 +f 397/318/20 382/245/23 381/470/20 +f 390/303/22 375/267/12 374/467/22 +f 398/289/23 383/464/13 382/245/23 +f 391/305/12 376/271/24 375/267/12 +f 399/288/13 384/249/25 383/464/13 +f 392/307/24 377/468/26 376/271/24 +f 385/293/27 370/254/28 369/465/27 +f 400/291/25 369/465/27 384/249/25 +f 393/312/26 378/275/29 377/469/26 +f 386/295/28 371/257/16 370/254/28 +f 394/311/29 379/278/15 378/275/29 +f 387/297/16 372/466/30 371/257/16 +f 401/780/27 418/781/28 402/782/28 +f 416/783/25 417/784/27 401/780/27 +f 409/785/26 426/786/29 410/787/29 +f 402/782/28 419/788/16 403/789/16 +f 410/787/29 427/790/15 411/791/15 +f 403/789/16 420/792/30 404/793/30 +f 411/791/15 428/794/19 412/795/19 +f 404/793/30 421/796/21 405/797/21 +f 412/795/19 429/798/20 413/799/20 +f 405/797/21 422/800/22 406/801/22 +f 413/799/20 430/802/23 414/803/23 +f 406/801/22 423/804/12 407/805/12 +f 414/803/23 431/806/13 415/807/13 +f 407/805/12 424/808/24 408/809/24 +f 415/807/13 432/810/25 416/783/25 +f 408/809/24 425/811/26 409/812/26 +f 459/813/15 444/353/19 443/350/15 +f 452/814/30 437/334/21 436/489/30 +f 460/815/19 445/493/20 444/353/19 +f 453/816/21 438/490/22 437/334/21 +f 461/817/20 446/358/23 445/493/20 +f 454/818/22 439/339/12 438/490/22 +f 462/819/23 447/487/13 446/358/23 +f 455/820/12 440/343/24 439/339/12 +f 463/821/13 448/321/25 447/487/13 +f 456/822/24 441/491/26 440/343/24 +f 449/823/27 434/326/28 433/488/27 +f 464/824/25 433/488/27 448/321/25 +f 457/825/26 442/347/29 441/492/26 +f 450/826/28 435/329/16 434/326/28 +f 458/827/29 443/350/15 442/347/29 +f 451/828/16 436/489/30 435/329/16 +f 475/829/27 468/830/63 467/831/64 +f 473/832/9 466/833/65 465/834/66 +f 480/835/67 465/836/66 472/837/68 +f 478/838/69 471/839/12 470/840/70 +f 476/841/71 469/842/72 468/830/63 +f 474/843/73 467/831/64 466/833/65 +f 479/844/26 472/837/68 471/839/12 +f 477/845/10 470/840/70 469/842/72 +f 467/831/64 484/846/74 483/847/13 +f 466/848/65 481/849/75 465/850/66 +f 465/851/66 487/852/76 472/853/68 +f 468/854/63 485/855/77 484/846/74 +f 466/848/65 483/847/13 482/856/78 +f 469/857/72 486/858/79 485/855/77 +f 481/849/75 489/859/80 488/860/81 +f 487/852/76 488/861/81 494/862/82 +f 485/855/77 491/863/83 484/846/74 +f 483/847/13 489/859/80 482/856/78 +f 486/858/79 492/864/84 485/855/77 +f 484/846/74 490/865/85 483/847/13 +f 470/866/70 471/867/12 486/858/79 +f 486/858/79 471/867/12 493/868/86 +f 472/853/68 487/852/76 471/867/12 +f 487/852/76 494/862/82 471/867/12 +f 494/869/82 495/870/87 471/871/12 +f 488/872/81 502/873/88 494/869/82 +f 471/871/12 501/874/89 493/875/86 +f 492/876/84 499/877/90 491/878/83 +f 490/865/85 497/879/91 489/880/80 +f 493/875/86 500/881/92 492/876/84 +f 491/878/83 498/882/93 490/865/85 +f 489/880/80 496/883/73 488/884/81 +f 506/885/10 513/886/70 514/887/72 +f 504/888/26 511/889/68 512/890/12 +f 509/891/73 516/892/64 517/893/65 +f 507/894/71 514/887/72 515/895/63 +f 505/896/69 512/890/12 513/886/70 +f 503/897/67 518/898/66 511/889/68 +f 510/899/9 517/893/65 518/900/66 +f 508/901/27 515/895/63 516/892/64 +f 527/902/94 520/903/12 532/904/95 +f 530/905/96 523/906/20 529/907/97 +f 532/904/95 521/908/26 531/909/98 +f 533/910/99 525/911/21 527/902/94 +f 529/907/97 524/912/13 528/913/100 +f 528/913/100 526/914/27 496/915/73 +f 496/916/73 519/917/16 533/910/99 +f 531/909/98 522/918/15 530/905/96 +f 528/919/100 496/920/73 539/921/101 +f 497/922/91 539/921/101 496/920/73 +f 533/923/99 534/924/102 496/925/73 +f 502/926/88 496/925/73 534/924/102 +f 535/927/103 531/909/98 536/928/69 +f 537/929/104 529/930/97 538/931/105 +f 535/927/103 527/932/94 532/933/95 +f 536/928/69 530/934/96 537/929/104 +f 539/921/101 529/930/97 528/919/100 +f 534/924/102 527/932/94 540/935/106 +f 502/926/88 540/935/106 495/936/87 +f 499/937/90 538/931/105 498/938/93 +f 500/881/92 535/927/103 536/928/69 +f 501/939/89 540/935/106 535/927/103 +f 497/922/91 538/931/105 539/921/101 +f 500/881/92 537/929/104 499/937/90 +f 515/940/63 543/941/13 516/892/64 +f 517/942/65 541/943/75 518/944/66 +f 518/945/66 547/946/76 511/947/68 +f 515/940/63 545/948/77 544/949/74 +f 516/892/64 542/950/78 517/942/65 +f 514/951/72 546/952/79 545/948/77 +f 541/943/75 549/953/80 548/954/81 +f 547/946/76 548/955/81 554/956/82 +f 545/948/77 551/957/83 544/949/74 +f 542/950/78 550/958/85 549/953/80 +f 546/952/79 552/959/84 545/948/77 +f 544/949/74 550/958/85 543/941/13 +f 513/960/70 512/961/12 546/952/79 +f 546/952/79 512/961/12 553/962/86 +f 511/947/68 547/946/76 512/961/12 +f 547/946/76 554/956/82 512/961/12 +f 554/963/82 555/964/87 512/965/12 +f 548/966/81 562/967/88 554/963/82 +f 512/965/12 561/968/89 553/969/86 +f 552/970/84 559/971/90 551/972/83 +f 550/958/85 557/973/91 549/974/80 +f 553/969/86 560/975/92 552/970/84 +f 551/972/83 558/976/93 550/958/85 +f 549/974/80 556/977/73 548/978/81 +f 571/979/94 564/980/12 576/981/95 +f 574/982/96 567/983/20 573/984/97 +f 576/981/95 565/985/26 575/986/98 +f 577/987/99 569/988/21 571/979/94 +f 573/984/97 568/989/13 572/990/100 +f 572/990/100 570/991/27 556/992/73 +f 556/993/73 563/994/16 577/987/99 +f 575/986/98 566/995/15 574/982/96 +f 572/996/100 556/997/73 583/998/101 +f 557/999/91 583/998/101 556/997/73 +f 577/1000/99 578/1001/102 556/1002/73 +f 562/1003/88 556/1002/73 578/1001/102 +f 579/1004/103 575/986/98 580/1005/69 +f 581/1006/104 573/1007/97 582/1008/105 +f 579/1004/103 571/1009/94 576/1010/95 +f 581/1006/104 575/986/98 574/1011/96 +f 583/998/101 573/1007/97 572/996/100 +f 578/1001/102 571/1009/94 584/1012/106 +f 562/1003/88 584/1012/106 555/1013/87 +f 559/1014/90 582/1008/105 558/1015/93 +f 560/975/92 579/1004/103 580/1005/69 +f 561/1016/89 584/1012/106 579/1004/103 +f 557/999/91 582/1008/105 583/998/101 +f 560/975/92 581/1006/104 559/1014/90 +f 595/1017/27 588/1018/63 587/1019/64 +f 593/1020/9 586/1021/65 585/1022/66 +f 600/1023/67 585/1024/66 592/1025/68 +f 598/1026/69 591/1027/12 590/1028/70 +f 596/1029/71 589/1030/72 588/1018/63 +f 594/1031/73 587/1019/64 586/1021/65 +f 599/1032/26 592/1025/68 591/1027/12 +f 597/1033/10 590/1028/70 589/1030/72 +f 587/1019/64 604/1034/74 603/1035/13 +f 586/1036/65 601/1037/75 585/1038/66 +f 585/1039/66 607/1040/76 592/1041/68 +f 588/1042/63 605/1043/77 604/1034/74 +f 586/1036/65 603/1035/13 602/1044/78 +f 589/1045/72 606/1046/79 605/1043/77 +f 601/1037/75 609/1047/80 608/1048/81 +f 607/1040/76 608/1049/81 614/1050/82 +f 605/1043/77 611/1051/83 604/1034/74 +f 602/1044/78 610/1052/85 609/1047/80 +f 606/1046/79 612/1053/84 605/1043/77 +f 604/1034/74 610/1052/85 603/1035/13 +f 590/1054/70 591/1055/12 606/1046/79 +f 606/1046/79 591/1055/12 613/1056/86 +f 592/1041/68 607/1040/76 591/1055/12 +f 607/1040/76 614/1050/82 591/1055/12 +f 614/1057/82 615/1058/87 591/1059/12 +f 608/1060/81 622/1061/88 614/1057/82 +f 591/1059/12 621/1062/89 613/1063/86 +f 612/1064/84 619/1065/90 611/1066/83 +f 610/1052/85 617/1067/91 609/1068/80 +f 613/1063/86 620/1069/92 612/1064/84 +f 611/1066/83 618/1070/93 610/1052/85 +f 609/1068/80 616/1071/73 608/1072/81 +f 626/1073/10 633/1074/70 634/1075/72 +f 624/1076/26 631/1077/68 632/1078/12 +f 629/1079/73 636/1080/64 637/1081/65 +f 627/1082/71 634/1075/72 635/1083/63 +f 625/1084/69 632/1078/12 633/1074/70 +f 623/1085/67 638/1086/66 631/1077/68 +f 630/1087/9 637/1081/65 638/1088/66 +f 628/1089/27 635/1083/63 636/1080/64 +f 647/1090/94 640/1091/12 652/1092/95 +f 650/1093/96 643/1094/20 649/1095/97 +f 652/1092/95 641/1096/26 651/1097/98 +f 653/1098/99 645/1099/21 647/1090/94 +f 649/1095/97 644/1100/13 648/1101/100 +f 648/1101/100 646/1102/27 616/1103/73 +f 616/1104/73 639/1105/16 653/1098/99 +f 651/1097/98 642/1106/15 650/1093/96 +f 648/1107/100 616/1108/73 659/1109/101 +f 617/1110/91 659/1109/101 616/1108/73 +f 653/1111/99 654/1112/102 616/1113/73 +f 622/1114/88 616/1113/73 654/1112/102 +f 655/1115/103 651/1097/98 656/1116/69 +f 658/1117/105 650/1118/96 649/1119/97 +f 660/1120/106 652/1121/95 655/1115/103 +f 657/1122/104 651/1097/98 650/1118/96 +f 659/1109/101 649/1119/97 648/1107/100 +f 654/1112/102 647/1123/94 660/1120/106 +f 622/1114/88 660/1120/106 615/1124/87 +f 619/1125/90 658/1117/105 618/1126/93 +f 620/1069/92 655/1115/103 656/1116/69 +f 615/1124/87 655/1115/103 621/1127/89 +f 618/1126/93 659/1109/101 617/1110/91 +f 619/1125/90 656/1116/69 657/1122/104 +f 636/1080/64 664/1128/74 663/1129/13 +f 637/1130/65 661/1131/75 638/1132/66 +f 638/1133/66 667/1134/76 631/1135/68 +f 635/1136/63 665/1137/77 664/1128/74 +f 636/1080/64 662/1138/78 637/1130/65 +f 634/1139/72 666/1140/79 665/1137/77 +f 661/1131/75 669/1141/80 668/1142/81 +f 667/1134/76 668/1143/81 674/1144/82 +f 665/1137/77 671/1145/83 664/1128/74 +f 662/1138/78 670/1146/85 669/1141/80 +f 666/1140/79 672/1147/84 665/1137/77 +f 664/1128/74 670/1146/85 663/1129/13 +f 633/1148/70 632/1149/12 666/1140/79 +f 666/1140/79 632/1149/12 673/1150/86 +f 631/1135/68 667/1134/76 632/1149/12 +f 667/1134/76 674/1144/82 632/1149/12 +f 674/1151/82 675/1152/87 632/1153/12 +f 668/1154/81 682/1155/88 674/1151/82 +f 632/1153/12 681/1156/89 673/1157/86 +f 672/1158/84 679/1159/90 671/1160/83 +f 670/1146/85 677/1161/91 669/1162/80 +f 673/1157/86 680/1163/92 672/1158/84 +f 671/1160/83 678/1164/93 670/1146/85 +f 669/1162/80 676/1165/73 668/1166/81 +f 691/1167/94 684/1168/12 696/1169/95 +f 694/1170/96 687/1171/20 693/1172/97 +f 696/1169/95 685/1173/26 695/1174/98 +f 697/1175/99 689/1176/21 691/1167/94 +f 693/1172/97 688/1177/13 692/1178/100 +f 692/1178/100 690/1179/27 676/1180/73 +f 676/1181/73 683/1182/16 697/1175/99 +f 695/1174/98 686/1183/15 694/1170/96 +f 692/1184/100 676/1185/73 703/1186/101 +f 677/1187/91 703/1186/101 676/1185/73 +f 697/1188/99 698/1189/102 676/1190/73 +f 682/1191/88 676/1190/73 698/1189/102 +f 699/1192/103 695/1174/98 700/1193/69 +f 701/1194/104 693/1195/97 702/1196/105 +f 704/1197/106 696/1198/95 699/1192/103 +f 700/1193/69 694/1199/96 701/1194/104 +f 703/1186/101 693/1195/97 692/1184/100 +f 698/1189/102 691/1200/94 704/1197/106 +f 675/1201/87 698/1189/102 704/1197/106 +f 679/1202/90 702/1196/105 678/1203/93 +f 680/1163/92 699/1192/103 700/1193/69 +f 675/1201/87 699/1192/103 681/1204/89 +f 678/1203/93 703/1186/101 677/1187/91 +f 680/1163/92 701/1194/104 679/1202/90 +f 720/1205/13 705/1206/27 712/1207/13 +f 718/1208/15 711/1209/20 710/1210/15 +f 716/1211/12 709/1212/26 708/1213/12 +f 713/1214/16 707/1215/21 706/1216/16 +f 719/1217/20 712/1207/13 711/1209/20 +f 717/1218/26 710/1210/15 709/1219/26 +f 715/1220/21 708/1213/12 707/1215/21 +f 714/1221/27 706/1216/16 705/1206/27 +f 733/1222/107 462/819/108 461/817/107 +f 734/1223/108 463/821/109 462/819/108 +f 735/1224/109 464/824/110 463/821/109 +f 464/824/110 721/1225/111 449/823/112 +f 721/1226/111 450/826/113 449/823/112 +f 722/1227/114 451/828/115 450/826/113 +f 451/828/115 724/1228/116 452/814/116 +f 452/814/116 725/1229/117 453/816/117 +f 453/816/117 726/1230/118 454/818/119 +f 454/818/119 727/1231/120 455/820/120 +f 455/820/120 728/1232/121 456/822/121 +f 728/1233/121 457/1234/122 456/822/121 +f 457/825/122 730/1235/123 458/827/123 +f 730/1236/123 459/813/124 458/827/123 +f 731/1237/124 460/815/125 459/813/124 +f 732/1238/126 461/817/107 460/815/125 +f 784/1239/13 769/1240/27 776/1241/13 +f 782/1242/15 775/1243/20 774/1244/15 +f 780/1245/12 773/1246/26 772/1247/12 +f 777/1248/16 771/1249/21 770/1250/16 +f 783/1251/20 776/1241/13 775/1243/20 +f 781/1252/26 774/1244/15 773/1253/26 +f 779/1254/21 772/1247/12 771/1249/21 +f 778/1255/27 770/1250/16 769/1240/27 +f 800/1256/13 785/1257/27 792/1258/13 +f 798/1259/15 791/1260/20 790/1261/15 +f 796/1262/12 789/1263/26 788/1264/12 +f 793/1265/16 787/1266/21 786/1267/16 +f 799/1268/20 792/1258/13 791/1260/20 +f 797/1269/26 790/1261/15 789/1270/26 +f 795/1271/21 788/1264/12 787/1266/21 +f 794/1272/27 786/1267/16 785/1257/27 +f 816/1273/13 801/1274/27 808/1275/13 +f 814/1276/15 807/1277/20 806/1278/15 +f 812/1279/12 805/1280/26 804/1281/12 +f 809/1282/16 803/1283/21 802/1284/16 +f 815/1285/20 808/1275/13 807/1277/20 +f 813/1286/26 806/1278/15 805/1287/26 +f 811/1288/21 804/1281/12 803/1283/21 +f 810/1289/27 802/1284/16 801/1274/27 +f 820/1290/127 827/1291/27 819/1292/128 +f 818/1293/129 825/1294/9 817/1295/130 +f 817/1296/130 832/1297/67 824/1298/131 +f 823/1299/15 830/1300/69 822/1301/132 +f 821/1302/133 828/1303/71 820/1290/127 +f 819/1292/128 826/1304/73 818/1293/129 +f 824/1298/131 831/1305/26 823/1299/15 +f 822/1301/132 829/1306/10 821/1302/133 +f 819/1292/128 836/1307/134 820/1308/127 +f 833/1309/135 818/1310/129 817/1311/130 +f 839/1312/136 817/1313/130 824/1314/131 +f 820/1308/127 837/1315/137 821/1316/133 +f 834/1317/138 819/1292/128 818/1310/129 +f 821/1316/133 838/1318/139 822/1319/132 +f 833/1309/135 841/1320/140 834/1317/138 +f 839/1312/136 840/1321/141 833/1322/135 +f 843/1323/142 837/1315/137 836/1307/134 +f 841/1320/140 835/1324/16 834/1317/138 +f 844/1325/143 838/1318/139 837/1315/137 +f 842/1326/144 836/1307/134 835/1324/16 +f 822/1319/132 838/1318/139 823/1327/15 +f 838/1318/139 845/1328/145 823/1327/15 +f 824/1314/131 823/1327/15 839/1312/136 +f 839/1312/136 823/1327/15 846/1329/146 +f 847/1330/93 846/1331/146 823/1332/15 +f 854/1333/91 840/1334/141 846/1331/146 +f 853/1335/90 823/1332/15 845/1336/145 +f 851/1337/89 844/1338/143 843/1339/142 +f 849/1340/88 842/1326/144 841/1341/140 +f 852/1342/92 845/1336/145 844/1338/143 +f 850/1343/87 843/1339/142 842/1326/144 +f 848/1344/73 841/1341/140 840/1345/141 +f 865/1346/132 858/1347/10 866/1348/133 +f 863/1349/131 856/1350/26 864/1351/15 +f 868/1352/128 861/1353/73 869/1354/129 +f 866/1348/133 859/1355/71 867/1356/127 +f 864/1351/15 857/1357/69 865/1346/132 +f 870/1358/130 855/1359/67 863/1349/131 +f 869/1354/129 862/1360/9 870/1361/130 +f 867/1356/127 860/1362/27 868/1352/128 +f 872/1363/15 879/1364/97 884/1365/96 +f 875/1366/21 882/1367/95 881/1368/94 +f 873/1369/26 884/1365/96 883/1370/98 +f 877/1371/20 885/1372/100 879/1364/97 +f 876/1373/16 881/1368/94 880/1374/99 +f 878/1375/27 880/1374/99 848/1376/73 +f 871/1377/13 848/1378/73 885/1372/100 +f 874/1379/12 883/1370/98 882/1367/95 +f 880/1380/99 891/1381/102 848/1382/73 +f 849/1383/88 848/1382/73 891/1381/102 +f 885/1384/100 848/1385/73 886/1386/101 +f 854/1387/91 886/1386/101 848/1385/73 +f 883/1370/98 887/1388/104 888/1389/69 +f 890/1390/106 882/1391/95 889/1392/103 +f 884/1393/96 892/1394/105 887/1388/104 +f 889/1392/103 883/1370/98 888/1389/69 +f 891/1381/102 881/1395/94 890/1390/106 +f 879/1396/97 886/1386/101 892/1394/105 +f 892/1394/105 854/1387/91 847/1397/93 +f 850/1398/87 889/1392/103 851/1399/89 +f 888/1389/69 853/1400/90 852/1342/92 +f 887/1388/104 847/1397/93 853/1400/90 +f 849/1383/88 890/1390/106 850/1398/87 +f 889/1392/103 852/1342/92 851/1399/89 +f 895/1401/16 867/1402/127 868/1352/128 +f 870/1403/130 894/1404/138 869/1405/129 +f 899/1406/136 870/1407/130 863/1408/131 +f 867/1402/127 897/1409/137 866/1410/133 +f 894/1404/138 868/1352/128 869/1405/129 +f 866/1410/133 898/1411/139 865/1412/132 +f 893/1413/135 901/1414/140 894/1404/138 +f 899/1406/136 900/1415/141 893/1416/135 +f 903/1417/142 897/1409/137 896/1418/134 +f 894/1404/138 902/1419/144 895/1401/16 +f 904/1420/143 898/1411/139 897/1409/137 +f 902/1419/144 896/1418/134 895/1401/16 +f 865/1412/132 898/1411/139 864/1421/15 +f 898/1411/139 905/1422/145 864/1421/15 +f 863/1408/131 864/1421/15 899/1406/136 +f 899/1406/136 864/1421/15 906/1423/146 +f 907/1424/93 906/1425/146 864/1426/15 +f 914/1427/91 900/1428/141 906/1425/146 +f 913/1429/90 864/1426/15 905/1430/145 +f 911/1431/89 904/1432/143 903/1433/142 +f 909/1434/88 902/1419/144 901/1435/140 +f 912/1436/92 905/1430/145 904/1432/143 +f 910/1437/87 903/1433/142 902/1419/144 +f 908/1438/73 901/1435/140 900/1439/141 +f 916/1440/15 923/1441/97 928/1442/96 +f 919/1443/21 926/1444/95 925/1445/94 +f 917/1446/26 928/1442/96 927/1447/98 +f 921/1448/20 929/1449/100 923/1441/97 +f 920/1450/16 925/1445/94 924/1451/99 +f 922/1452/27 924/1451/99 908/1453/73 +f 915/1454/13 908/1455/73 929/1449/100 +f 918/1456/12 927/1447/98 926/1444/95 +f 924/1457/99 935/1458/102 908/1459/73 +f 909/1460/88 908/1459/73 935/1458/102 +f 929/1461/100 908/1462/73 930/1463/101 +f 914/1464/91 930/1463/101 908/1462/73 +f 927/1447/98 931/1465/104 932/1466/69 +f 925/1467/94 933/1468/103 934/1469/106 +f 931/1465/104 923/1470/97 936/1471/105 +f 933/1468/103 927/1447/98 932/1466/69 +f 935/1458/102 925/1467/94 934/1469/106 +f 923/1470/97 930/1463/101 936/1471/105 +f 936/1471/105 914/1464/91 907/1472/93 +f 910/1473/87 933/1468/103 911/1474/89 +f 912/1436/92 931/1465/104 913/1475/90 +f 931/1465/104 907/1472/93 913/1475/90 +f 909/1460/88 934/1469/106 910/1473/87 +f 933/1468/103 912/1436/92 911/1474/89 +f 940/1476/127 947/1477/27 939/1478/128 +f 938/1479/129 945/1480/9 937/1481/130 +f 937/1482/130 952/1483/67 944/1484/131 +f 943/1485/15 950/1486/69 942/1487/132 +f 941/1488/133 948/1489/71 940/1476/127 +f 939/1478/128 946/1490/73 938/1479/129 +f 944/1484/131 951/1491/26 943/1485/15 +f 942/1487/132 949/1492/10 941/1488/133 +f 939/1478/128 956/1493/134 940/1494/127 +f 953/1495/135 938/1496/129 937/1497/130 +f 959/1498/136 937/1499/130 944/1500/131 +f 940/1494/127 957/1501/137 941/1502/133 +f 938/1496/129 955/1503/16 939/1478/128 +f 941/1502/133 958/1504/139 942/1505/132 +f 953/1495/135 961/1506/140 954/1507/138 +f 959/1498/136 960/1508/141 953/1509/135 +f 963/1510/142 957/1501/137 956/1493/134 +f 954/1507/138 962/1511/144 955/1503/16 +f 964/1512/143 958/1504/139 957/1501/137 +f 962/1511/144 956/1493/134 955/1503/16 +f 942/1505/132 958/1504/139 943/1513/15 +f 958/1504/139 965/1514/145 943/1513/15 +f 944/1500/131 943/1513/15 959/1498/136 +f 959/1498/136 943/1513/15 966/1515/146 +f 967/1516/93 966/1517/146 943/1518/15 +f 974/1519/91 960/1520/141 966/1517/146 +f 973/1521/90 943/1518/15 965/1522/145 +f 971/1523/89 964/1524/143 963/1525/142 +f 969/1526/88 962/1511/144 961/1527/140 +f 972/1528/92 965/1522/145 964/1524/143 +f 970/1529/87 963/1525/142 962/1511/144 +f 968/1530/73 961/1527/140 960/1531/141 +f 985/1532/132 978/1533/10 986/1534/133 +f 983/1535/131 976/1536/26 984/1537/15 +f 988/1538/128 981/1539/73 989/1540/129 +f 986/1534/133 979/1541/71 987/1542/127 +f 984/1537/15 977/1543/69 985/1532/132 +f 990/1544/130 975/1545/67 983/1535/131 +f 989/1540/129 982/1546/9 990/1547/130 +f 987/1542/127 980/1548/27 988/1538/128 +f 992/1549/15 999/1550/97 1004/1551/96 +f 995/1552/21 1002/1553/95 1001/1554/94 +f 993/1555/26 1004/1551/96 1003/1556/98 +f 997/1557/20 1005/1558/100 999/1550/97 +f 996/1559/16 1001/1554/94 1000/1560/99 +f 998/1561/27 1000/1560/99 968/1562/73 +f 991/1563/13 968/1564/73 1005/1558/100 +f 994/1565/12 1003/1556/98 1002/1553/95 +f 1000/1566/99 1011/1567/102 968/1568/73 +f 969/1569/88 968/1568/73 1011/1567/102 +f 1005/1570/100 968/1571/73 1006/1572/101 +f 974/1573/91 1006/1572/101 968/1571/73 +f 1003/1556/98 1007/1574/104 1008/1575/69 +f 1010/1576/106 1002/1577/95 1009/1578/103 +f 1004/1579/96 1012/1580/105 1007/1574/104 +f 1009/1578/103 1003/1556/98 1008/1575/69 +f 1011/1567/102 1001/1581/94 1010/1576/106 +f 999/1582/97 1006/1572/101 1012/1580/105 +f 1012/1580/105 974/1573/91 967/1583/93 +f 1010/1576/106 971/1584/89 970/1585/87 +f 972/1528/92 1007/1574/104 973/1586/90 +f 1007/1574/104 967/1583/93 973/1586/90 +f 969/1569/88 1010/1576/106 970/1585/87 +f 971/1584/89 1008/1575/69 972/1528/92 +f 988/1538/128 1016/1587/134 987/1588/127 +f 1013/1589/135 989/1590/129 990/1591/130 +f 1019/1592/136 990/1593/130 983/1594/131 +f 987/1588/127 1017/1595/137 986/1596/133 +f 1014/1597/138 988/1538/128 989/1590/129 +f 986/1596/133 1018/1598/139 985/1599/132 +f 1013/1589/135 1021/1600/140 1014/1597/138 +f 1019/1592/136 1020/1601/141 1013/1602/135 +f 1023/1603/142 1017/1595/137 1016/1587/134 +f 1014/1597/138 1022/1604/144 1015/1605/16 +f 1024/1606/143 1018/1598/139 1017/1595/137 +f 1022/1604/144 1016/1587/134 1015/1605/16 +f 985/1599/132 1018/1598/139 984/1607/15 +f 1018/1598/139 1025/1608/145 984/1607/15 +f 983/1594/131 984/1607/15 1019/1592/136 +f 1019/1592/136 984/1607/15 1026/1609/146 +f 1027/1610/93 1026/1611/146 984/1612/15 +f 1034/1613/91 1020/1614/141 1026/1611/146 +f 1033/1615/90 984/1612/15 1025/1616/145 +f 1031/1617/89 1024/1618/143 1023/1619/142 +f 1029/1620/88 1022/1604/144 1021/1621/140 +f 1032/1622/92 1025/1616/145 1024/1618/143 +f 1030/1623/87 1023/1619/142 1022/1604/144 +f 1028/1624/73 1021/1621/140 1020/1625/141 +f 1036/1626/15 1043/1627/97 1048/1628/96 +f 1039/1629/21 1046/1630/95 1045/1631/94 +f 1037/1632/26 1048/1628/96 1047/1633/98 +f 1041/1634/20 1049/1635/100 1043/1627/97 +f 1040/1636/16 1045/1631/94 1044/1637/99 +f 1042/1638/27 1044/1637/99 1028/1639/73 +f 1035/1640/13 1028/1641/73 1049/1635/100 +f 1038/1642/12 1047/1633/98 1046/1630/95 +f 1044/1643/99 1055/1644/102 1028/1645/73 +f 1029/1646/88 1028/1645/73 1055/1644/102 +f 1049/1647/100 1028/1648/73 1050/1649/101 +f 1034/1650/91 1050/1649/101 1028/1648/73 +f 1047/1633/98 1051/1651/104 1052/1652/69 +f 1045/1653/94 1053/1654/103 1054/1655/106 +f 1048/1656/96 1056/1657/105 1051/1651/104 +f 1046/1658/95 1052/1652/69 1053/1654/103 +f 1055/1644/102 1045/1653/94 1054/1655/106 +f 1043/1659/97 1050/1649/101 1056/1657/105 +f 1027/1660/93 1050/1649/101 1034/1650/91 +f 1054/1655/106 1031/1661/89 1030/1662/87 +f 1032/1622/92 1051/1651/104 1033/1663/90 +f 1051/1651/104 1027/1660/93 1033/1663/90 +f 1029/1646/88 1054/1655/106 1030/1662/87 +f 1053/1654/103 1032/1622/92 1031/1661/89 +f 28/556/19 44/587/19 45/557/20 +f 21/559/21 37/588/21 38/560/22 +f 29/558/20 45/557/20 46/562/23 +f 22/561/22 38/560/22 39/564/12 +f 30/563/23 46/562/23 47/566/13 +f 23/565/12 39/564/12 40/568/24 +f 31/567/13 47/566/13 48/570/25 +f 24/569/24 40/568/24 41/572/26 +f 17/574/27 33/577/27 34/575/28 +f 32/571/25 48/570/25 33/577/27 +f 25/578/26 41/589/26 42/579/29 +f 18/576/28 34/575/28 35/581/16 +f 26/580/29 42/579/29 43/583/15 +f 19/582/16 35/581/16 36/585/30 +f 27/584/15 43/583/15 44/587/19 +f 20/586/30 36/585/30 37/588/21 +f 46/562/31 62/460/31 63/233/32 +f 63/462/32 64/239/33 48/570/33 +f 48/570/33 64/200/33 49/202/34 +f 49/448/34 50/197/35 34/575/35 +f 50/451/35 51/206/36 35/581/36 +f 35/581/36 51/453/36 52/212/37 +f 52/455/37 53/218/38 37/588/38 +f 37/588/38 53/224/38 54/226/39 +f 54/459/39 55/230/40 39/564/40 +f 55/236/40 56/238/41 40/568/41 +f 40/568/41 56/242/41 57/244/42 +f 57/450/42 58/203/43 42/579/43 +f 58/452/43 59/209/44 43/583/44 +f 59/215/44 60/217/45 44/587/45 +f 60/221/45 61/223/46 45/557/46 +f 45/557/46 61/458/46 62/227/31 +f 32/571/47 80/1664/47 79/590/48 +f 30/563/49 31/567/48 79/591/48 +f 29/558/50 30/563/49 78/593/49 +f 29/558/50 77/1665/50 76/595/51 +f 28/556/51 76/1666/51 75/596/52 +f 27/584/52 75/1667/52 74/597/53 +f 26/580/53 74/1668/53 73/598/54 +f 24/569/55 25/573/54 73/599/54 +f 24/569/55 72/1669/55 71/601/56 +f 23/565/56 71/1670/56 70/602/57 +f 22/561/57 70/1671/57 69/603/58 +f 20/586/59 21/559/58 69/604/58 +f 19/582/60 20/586/59 68/606/59 +f 19/582/60 67/1672/60 66/608/61 +f 18/576/61 66/1673/61 65/609/62 +f 17/574/62 65/1674/62 80/610/47 +f 113/28/27 129/72/27 144/69/25 +f 114/32/28 130/435/28 129/72/27 +f 115/31/16 131/76/16 130/435/28 +f 116/34/30 132/79/30 131/76/16 +f 117/36/21 133/82/21 132/79/30 +f 118/38/22 134/85/22 133/82/21 +f 119/40/12 135/88/12 134/85/22 +f 120/45/24 136/436/24 135/88/12 +f 121/44/26 137/93/26 136/436/24 +f 122/50/29 138/98/29 137/95/26 +f 123/53/15 139/101/15 138/98/29 +f 124/56/19 140/104/19 139/101/15 +f 125/60/20 141/437/20 140/104/19 +f 126/59/23 142/63/23 141/437/20 +f 127/22/13 143/66/13 142/63/23 +f 128/25/25 144/69/25 143/66/13 +f 177/116/27 193/160/27 208/157/25 +f 178/120/28 194/445/28 193/160/27 +f 179/119/16 195/164/16 194/445/28 +f 180/122/30 196/167/30 195/164/16 +f 181/124/21 197/170/21 196/167/30 +f 182/126/22 198/173/22 197/170/21 +f 183/128/12 199/176/12 198/173/22 +f 184/133/24 200/446/24 199/176/12 +f 185/132/26 201/181/26 200/446/24 +f 186/138/29 202/186/29 201/183/26 +f 187/141/15 203/189/15 202/186/29 +f 188/144/19 204/192/19 203/189/15 +f 189/148/20 205/447/20 204/192/19 +f 190/147/23 206/151/23 205/447/20 +f 191/110/13 207/154/13 206/151/23 +f 192/113/25 208/157/25 207/154/13 +f 224/611/13 217/627/27 209/612/27 +f 222/614/15 223/623/20 215/615/20 +f 220/617/12 221/1675/26 213/618/26 +f 218/620/16 219/626/21 211/621/21 +f 223/623/20 224/611/13 216/613/13 +f 221/624/26 222/614/15 214/616/15 +f 219/626/21 220/617/12 212/619/12 +f 217/627/27 218/620/16 210/622/16 +f 240/628/12 233/644/26 225/629/26 +f 238/631/16 239/640/21 231/632/21 +f 236/634/13 237/1676/27 229/635/27 +f 234/637/15 235/643/20 227/638/20 +f 239/640/21 240/628/12 232/630/12 +f 237/641/27 238/631/16 230/633/16 +f 235/643/20 236/634/13 228/636/13 +f 233/644/26 234/637/15 226/639/15 +f 256/645/15 249/661/20 241/646/20 +f 254/648/12 255/657/26 247/649/26 +f 252/651/16 253/1677/21 245/652/21 +f 250/654/13 251/660/27 243/655/27 +f 255/657/26 256/645/15 248/647/15 +f 253/658/21 254/648/12 246/650/12 +f 251/660/27 252/651/16 244/653/16 +f 249/661/20 250/654/13 242/656/13 +f 272/662/16 265/678/21 257/663/21 +f 270/665/13 271/674/27 263/666/27 +f 268/668/15 269/1678/20 261/669/20 +f 266/671/12 267/677/26 259/672/26 +f 271/674/27 272/662/16 264/664/16 +f 269/675/20 270/665/13 262/667/13 +f 267/677/26 268/668/15 260/670/15 +f 265/678/21 266/671/12 258/673/12 +f 288/679/20 281/695/13 273/680/13 +f 286/682/26 287/691/15 279/683/15 +f 284/685/21 285/1679/12 277/686/12 +f 282/688/27 283/694/16 275/689/16 +f 287/691/15 288/679/20 280/681/20 +f 285/692/12 286/682/26 278/684/26 +f 283/694/16 284/685/21 276/687/21 +f 281/695/13 282/688/27 274/690/27 +f 304/696/21 297/712/12 289/697/12 +f 302/699/27 303/708/16 295/700/16 +f 300/702/20 301/1680/13 293/703/13 +f 298/705/26 299/711/15 291/706/15 +f 303/708/16 304/696/21 296/698/21 +f 301/709/13 302/699/27 294/701/27 +f 299/711/15 300/702/20 292/704/20 +f 297/712/12 298/705/26 290/707/26 +f 320/713/26 313/729/15 305/714/15 +f 318/716/21 319/725/12 311/717/12 +f 316/719/27 317/1681/16 309/720/16 +f 314/722/20 315/728/13 307/723/13 +f 319/725/12 320/713/26 312/715/26 +f 317/726/16 318/716/21 310/718/21 +f 315/728/13 316/719/27 308/721/27 +f 313/729/15 314/722/20 306/724/20 +f 336/730/27 329/746/16 321/731/16 +f 334/733/20 335/742/13 327/734/13 +f 332/736/26 333/1682/15 325/737/15 +f 330/739/21 331/745/12 323/740/12 +f 335/742/13 336/730/27 328/732/27 +f 333/743/15 334/733/20 326/735/20 +f 331/745/12 332/736/26 324/738/26 +f 329/746/16 330/739/21 322/741/21 +f 337/747/27 353/751/27 354/748/28 +f 352/750/25 368/777/25 353/751/27 +f 345/752/26 361/1683/26 362/753/29 +f 338/749/28 354/748/28 355/755/16 +f 346/754/29 362/753/29 363/757/15 +f 339/756/16 355/755/16 356/759/30 +f 347/758/15 363/757/15 364/761/19 +f 340/760/30 356/759/30 357/763/21 +f 348/762/19 364/761/19 365/765/20 +f 341/764/21 357/763/21 358/767/22 +f 349/766/20 365/765/20 366/769/23 +f 342/768/22 358/767/22 359/771/12 +f 350/770/23 366/769/23 367/773/13 +f 343/772/12 359/771/12 360/775/24 +f 351/774/13 367/773/13 368/777/25 +f 344/776/24 360/775/24 361/778/26 +f 395/314/15 396/316/19 380/281/19 +f 388/299/30 389/301/21 373/262/21 +f 396/316/19 397/318/20 381/470/20 +f 389/301/21 390/303/22 374/467/22 +f 397/318/20 398/289/23 382/245/23 +f 390/303/22 391/305/12 375/267/12 +f 398/289/23 399/288/13 383/464/13 +f 391/305/12 392/307/24 376/271/24 +f 399/288/13 400/291/25 384/249/25 +f 392/307/24 393/309/26 377/468/26 +f 385/293/27 386/295/28 370/254/28 +f 400/291/25 385/293/27 369/465/27 +f 393/312/26 394/311/29 378/275/29 +f 386/295/28 387/297/16 371/257/16 +f 394/311/29 395/314/15 379/278/15 +f 387/297/16 388/299/30 372/466/30 +f 401/780/27 417/784/27 418/781/28 +f 416/783/25 432/810/25 417/784/27 +f 409/785/26 425/1684/26 426/786/29 +f 402/782/28 418/781/28 419/788/16 +f 410/787/29 426/786/29 427/790/15 +f 403/789/16 419/788/16 420/792/30 +f 411/791/15 427/790/15 428/794/19 +f 404/793/30 420/792/30 421/796/21 +f 412/795/19 428/794/19 429/798/20 +f 405/797/21 421/796/21 422/800/22 +f 413/799/20 429/798/20 430/802/23 +f 406/801/22 422/800/22 423/804/12 +f 414/803/23 430/802/23 431/806/13 +f 407/805/12 423/804/12 424/808/24 +f 415/807/13 431/806/13 432/810/25 +f 408/809/24 424/808/24 425/811/26 +f 459/813/15 460/815/19 444/353/19 +f 452/814/30 453/816/21 437/334/21 +f 460/815/19 461/817/20 445/493/20 +f 453/816/21 454/818/22 438/490/22 +f 461/817/20 462/819/23 446/358/23 +f 454/818/22 455/820/12 439/339/12 +f 462/819/23 463/821/13 447/487/13 +f 455/820/12 456/822/24 440/343/24 +f 463/821/13 464/824/25 448/321/25 +f 456/822/24 457/1234/26 441/491/26 +f 449/823/27 450/826/28 434/326/28 +f 464/824/25 449/823/27 433/488/27 +f 457/825/26 458/827/29 442/347/29 +f 450/826/28 451/828/16 435/329/16 +f 458/827/29 459/813/15 443/350/15 +f 451/828/16 452/814/30 436/489/30 +f 475/829/27 476/841/71 468/830/63 +f 473/832/9 474/843/73 466/833/65 +f 480/835/67 473/1685/9 465/836/66 +f 478/838/69 479/844/26 471/839/12 +f 476/841/71 477/845/10 469/842/72 +f 474/843/73 475/829/27 467/831/64 +f 479/844/26 480/835/67 472/837/68 +f 477/845/10 478/838/69 470/840/70 +f 467/831/64 468/854/63 484/846/74 +f 466/848/65 482/856/78 481/849/75 +f 465/851/66 481/1686/75 487/852/76 +f 468/854/63 469/857/72 485/855/77 +f 466/848/65 467/831/64 483/847/13 +f 469/857/72 470/866/70 486/858/79 +f 481/849/75 482/856/78 489/859/80 +f 487/852/76 481/1686/75 488/861/81 +f 485/855/77 492/864/84 491/863/83 +f 483/847/13 490/865/85 489/859/80 +f 486/858/79 493/868/86 492/864/84 +f 484/846/74 491/863/83 490/865/85 +f 494/869/82 502/873/88 495/870/87 +f 488/872/81 496/1687/73 502/873/88 +f 471/871/12 495/870/87 501/874/89 +f 492/876/84 500/881/92 499/877/90 +f 490/865/85 498/882/93 497/879/91 +f 493/875/86 501/874/89 500/881/92 +f 491/878/83 499/877/90 498/882/93 +f 489/880/80 497/879/91 496/883/73 +f 506/885/10 505/896/69 513/886/70 +f 504/888/26 503/897/67 511/889/68 +f 509/891/73 508/901/27 516/892/64 +f 507/894/71 506/885/10 514/887/72 +f 505/896/69 504/888/26 512/890/12 +f 503/897/67 510/1688/9 518/898/66 +f 510/899/9 509/891/73 517/893/65 +f 508/901/27 507/894/71 515/895/63 +f 527/902/94 525/911/21 520/903/12 +f 530/905/96 522/918/15 523/906/20 +f 532/904/95 520/903/12 521/908/26 +f 533/910/99 519/917/16 525/911/21 +f 529/907/97 523/906/20 524/912/13 +f 528/913/100 524/912/13 526/914/27 +f 496/916/73 526/1689/27 519/917/16 +f 531/909/98 521/908/26 522/918/15 +f 535/927/103 532/933/95 531/909/98 +f 537/929/104 530/934/96 529/930/97 +f 535/927/103 540/935/106 527/932/94 +f 536/928/69 531/909/98 530/934/96 +f 539/921/101 538/931/105 529/930/97 +f 534/924/102 533/923/99 527/932/94 +f 502/926/88 534/924/102 540/935/106 +f 499/937/90 537/929/104 538/931/105 +f 500/881/92 501/939/89 535/927/103 +f 501/939/89 495/936/87 540/935/106 +f 497/922/91 498/938/93 538/931/105 +f 500/881/92 536/928/69 537/929/104 +f 515/940/63 544/949/74 543/941/13 +f 517/942/65 542/950/78 541/943/75 +f 518/945/66 541/1690/75 547/946/76 +f 515/940/63 514/951/72 545/948/77 +f 516/892/64 543/941/13 542/950/78 +f 514/951/72 513/960/70 546/952/79 +f 541/943/75 542/950/78 549/953/80 +f 547/946/76 541/1690/75 548/955/81 +f 545/948/77 552/959/84 551/957/83 +f 542/950/78 543/941/13 550/958/85 +f 546/952/79 553/962/86 552/959/84 +f 544/949/74 551/957/83 550/958/85 +f 554/963/82 562/967/88 555/964/87 +f 548/966/81 556/1691/73 562/967/88 +f 512/965/12 555/964/87 561/968/89 +f 552/970/84 560/975/92 559/971/90 +f 550/958/85 558/976/93 557/973/91 +f 553/969/86 561/968/89 560/975/92 +f 551/972/83 559/971/90 558/976/93 +f 549/974/80 557/973/91 556/977/73 +f 571/979/94 569/988/21 564/980/12 +f 574/982/96 566/995/15 567/983/20 +f 576/981/95 564/980/12 565/985/26 +f 577/987/99 563/994/16 569/988/21 +f 573/984/97 567/983/20 568/989/13 +f 572/990/100 568/989/13 570/991/27 +f 556/993/73 570/1692/27 563/994/16 +f 575/986/98 565/985/26 566/995/15 +f 579/1004/103 576/1010/95 575/986/98 +f 581/1006/104 574/1011/96 573/1007/97 +f 579/1004/103 584/1012/106 571/1009/94 +f 581/1006/104 580/1005/69 575/986/98 +f 583/998/101 582/1008/105 573/1007/97 +f 578/1001/102 577/1000/99 571/1009/94 +f 562/1003/88 578/1001/102 584/1012/106 +f 559/1014/90 581/1006/104 582/1008/105 +f 560/975/92 561/1016/89 579/1004/103 +f 561/1016/89 555/1013/87 584/1012/106 +f 557/999/91 558/1015/93 582/1008/105 +f 560/975/92 580/1005/69 581/1006/104 +f 595/1017/27 596/1029/71 588/1018/63 +f 593/1020/9 594/1031/73 586/1021/65 +f 600/1023/67 593/1693/9 585/1024/66 +f 598/1026/69 599/1032/26 591/1027/12 +f 596/1029/71 597/1033/10 589/1030/72 +f 594/1031/73 595/1017/27 587/1019/64 +f 599/1032/26 600/1023/67 592/1025/68 +f 597/1033/10 598/1026/69 590/1028/70 +f 587/1019/64 588/1042/63 604/1034/74 +f 586/1036/65 602/1044/78 601/1037/75 +f 585/1039/66 601/1694/75 607/1040/76 +f 588/1042/63 589/1045/72 605/1043/77 +f 586/1036/65 587/1019/64 603/1035/13 +f 589/1045/72 590/1054/70 606/1046/79 +f 601/1037/75 602/1044/78 609/1047/80 +f 607/1040/76 601/1694/75 608/1049/81 +f 605/1043/77 612/1053/84 611/1051/83 +f 602/1044/78 603/1035/13 610/1052/85 +f 606/1046/79 613/1056/86 612/1053/84 +f 604/1034/74 611/1051/83 610/1052/85 +f 614/1057/82 622/1061/88 615/1058/87 +f 608/1060/81 616/1695/73 622/1061/88 +f 591/1059/12 615/1058/87 621/1062/89 +f 612/1064/84 620/1069/92 619/1065/90 +f 610/1052/85 618/1070/93 617/1067/91 +f 613/1063/86 621/1062/89 620/1069/92 +f 611/1066/83 619/1065/90 618/1070/93 +f 609/1068/80 617/1067/91 616/1071/73 +f 626/1073/10 625/1084/69 633/1074/70 +f 624/1076/26 623/1085/67 631/1077/68 +f 629/1079/73 628/1089/27 636/1080/64 +f 627/1082/71 626/1073/10 634/1075/72 +f 625/1084/69 624/1076/26 632/1078/12 +f 623/1085/67 630/1696/9 638/1086/66 +f 630/1087/9 629/1079/73 637/1081/65 +f 628/1089/27 627/1082/71 635/1083/63 +f 647/1090/94 645/1099/21 640/1091/12 +f 650/1093/96 642/1106/15 643/1094/20 +f 652/1092/95 640/1091/12 641/1096/26 +f 653/1098/99 639/1105/16 645/1099/21 +f 649/1095/97 643/1094/20 644/1100/13 +f 648/1101/100 644/1100/13 646/1102/27 +f 616/1104/73 646/1697/27 639/1105/16 +f 651/1097/98 641/1096/26 642/1106/15 +f 655/1115/103 652/1121/95 651/1097/98 +f 658/1117/105 657/1122/104 650/1118/96 +f 660/1120/106 647/1123/94 652/1121/95 +f 657/1122/104 656/1116/69 651/1097/98 +f 659/1109/101 658/1117/105 649/1119/97 +f 654/1112/102 653/1111/99 647/1123/94 +f 622/1114/88 654/1112/102 660/1120/106 +f 619/1125/90 657/1122/104 658/1117/105 +f 620/1069/92 621/1127/89 655/1115/103 +f 615/1124/87 660/1120/106 655/1115/103 +f 618/1126/93 658/1117/105 659/1109/101 +f 619/1125/90 620/1069/92 656/1116/69 +f 636/1080/64 635/1136/63 664/1128/74 +f 637/1130/65 662/1138/78 661/1131/75 +f 638/1133/66 661/1698/75 667/1134/76 +f 635/1136/63 634/1139/72 665/1137/77 +f 636/1080/64 663/1129/13 662/1138/78 +f 634/1139/72 633/1148/70 666/1140/79 +f 661/1131/75 662/1138/78 669/1141/80 +f 667/1134/76 661/1698/75 668/1143/81 +f 665/1137/77 672/1147/84 671/1145/83 +f 662/1138/78 663/1129/13 670/1146/85 +f 666/1140/79 673/1150/86 672/1147/84 +f 664/1128/74 671/1145/83 670/1146/85 +f 674/1151/82 682/1155/88 675/1152/87 +f 668/1154/81 676/1699/73 682/1155/88 +f 632/1153/12 675/1152/87 681/1156/89 +f 672/1158/84 680/1163/92 679/1159/90 +f 670/1146/85 678/1164/93 677/1161/91 +f 673/1157/86 681/1156/89 680/1163/92 +f 671/1160/83 679/1159/90 678/1164/93 +f 669/1162/80 677/1161/91 676/1165/73 +f 691/1167/94 689/1176/21 684/1168/12 +f 694/1170/96 686/1183/15 687/1171/20 +f 696/1169/95 684/1168/12 685/1173/26 +f 697/1175/99 683/1182/16 689/1176/21 +f 693/1172/97 687/1171/20 688/1177/13 +f 692/1178/100 688/1177/13 690/1179/27 +f 676/1181/73 690/1700/27 683/1182/16 +f 695/1174/98 685/1173/26 686/1183/15 +f 699/1192/103 696/1198/95 695/1174/98 +f 701/1194/104 694/1199/96 693/1195/97 +f 704/1197/106 691/1200/94 696/1198/95 +f 700/1193/69 695/1174/98 694/1199/96 +f 703/1186/101 702/1196/105 693/1195/97 +f 698/1189/102 697/1188/99 691/1200/94 +f 675/1201/87 682/1191/88 698/1189/102 +f 679/1202/90 701/1194/104 702/1196/105 +f 680/1163/92 681/1204/89 699/1192/103 +f 675/1201/87 704/1197/106 699/1192/103 +f 678/1203/93 702/1196/105 703/1186/101 +f 680/1163/92 700/1193/69 701/1194/104 +f 720/1205/13 714/1221/27 705/1206/27 +f 718/1208/15 719/1217/20 711/1209/20 +f 716/1211/12 717/1701/26 709/1212/26 +f 713/1214/16 715/1220/21 707/1215/21 +f 719/1217/20 720/1205/13 712/1207/13 +f 717/1218/26 718/1208/15 710/1210/15 +f 715/1220/21 716/1211/12 708/1213/12 +f 714/1221/27 713/1214/16 706/1216/16 +f 733/1222/107 734/1702/108 462/819/108 +f 734/1223/108 735/1703/109 463/821/109 +f 735/1224/109 736/1704/147 464/824/110 +f 464/824/110 736/1705/147 721/1225/111 +f 721/1226/111 722/1706/114 450/826/113 +f 722/1227/114 723/1707/115 451/828/115 +f 451/828/115 723/1708/115 724/1228/116 +f 452/814/116 724/1709/116 725/1229/117 +f 453/816/117 725/1710/117 726/1230/118 +f 454/818/119 726/1711/118 727/1231/120 +f 455/820/120 727/1712/120 728/1232/121 +f 728/1233/121 729/1713/122 457/1234/122 +f 457/825/122 729/1714/122 730/1235/123 +f 730/1236/123 731/1715/124 459/813/124 +f 731/1237/124 732/1716/126 460/815/125 +f 732/1238/126 733/1717/107 461/817/107 +f 784/1239/13 778/1255/27 769/1240/27 +f 782/1242/15 783/1251/20 775/1243/20 +f 780/1245/12 781/1718/26 773/1246/26 +f 777/1248/16 779/1254/21 771/1249/21 +f 783/1251/20 784/1239/13 776/1241/13 +f 781/1252/26 782/1242/15 774/1244/15 +f 779/1254/21 780/1245/12 772/1247/12 +f 778/1255/27 777/1248/16 770/1250/16 +f 800/1256/13 794/1272/27 785/1257/27 +f 798/1259/15 799/1268/20 791/1260/20 +f 796/1262/12 797/1719/26 789/1263/26 +f 793/1265/16 795/1271/21 787/1266/21 +f 799/1268/20 800/1256/13 792/1258/13 +f 797/1269/26 798/1259/15 790/1261/15 +f 795/1271/21 796/1262/12 788/1264/12 +f 794/1272/27 793/1265/16 786/1267/16 +f 816/1273/13 810/1289/27 801/1274/27 +f 814/1276/15 815/1285/20 807/1277/20 +f 812/1279/12 813/1720/26 805/1280/26 +f 809/1282/16 811/1288/21 803/1283/21 +f 815/1285/20 816/1273/13 808/1275/13 +f 813/1286/26 814/1276/15 806/1278/15 +f 811/1288/21 812/1279/12 804/1281/12 +f 810/1289/27 809/1282/16 802/1284/16 +f 820/1290/127 828/1303/71 827/1291/27 +f 818/1293/129 826/1304/73 825/1294/9 +f 817/1296/130 825/1721/9 832/1297/67 +f 823/1299/15 831/1305/26 830/1300/69 +f 821/1302/133 829/1306/10 828/1303/71 +f 819/1292/128 827/1291/27 826/1304/73 +f 824/1298/131 832/1297/67 831/1305/26 +f 822/1301/132 830/1300/69 829/1306/10 +f 819/1292/128 835/1324/16 836/1307/134 +f 833/1309/135 834/1317/138 818/1310/129 +f 839/1312/136 833/1322/135 817/1313/130 +f 820/1308/127 836/1307/134 837/1315/137 +f 834/1317/138 835/1324/16 819/1292/128 +f 821/1316/133 837/1315/137 838/1318/139 +f 833/1309/135 840/1722/141 841/1320/140 +f 839/1312/136 846/1329/146 840/1321/141 +f 843/1323/142 844/1325/143 837/1315/137 +f 841/1320/140 842/1326/144 835/1324/16 +f 844/1325/143 845/1328/145 838/1318/139 +f 842/1326/144 843/1323/142 836/1307/134 +f 847/1330/93 854/1333/91 846/1331/146 +f 854/1333/91 848/1723/73 840/1334/141 +f 853/1335/90 847/1330/93 823/1332/15 +f 851/1337/89 852/1342/92 844/1338/143 +f 849/1340/88 850/1343/87 842/1326/144 +f 852/1342/92 853/1335/90 845/1336/145 +f 850/1343/87 851/1337/89 843/1339/142 +f 848/1344/73 849/1340/88 841/1341/140 +f 865/1346/132 857/1357/69 858/1347/10 +f 863/1349/131 855/1359/67 856/1350/26 +f 868/1352/128 860/1362/27 861/1353/73 +f 866/1348/133 858/1347/10 859/1355/71 +f 864/1351/15 856/1350/26 857/1357/69 +f 870/1358/130 862/1724/9 855/1359/67 +f 869/1354/129 861/1353/73 862/1360/9 +f 867/1356/127 859/1355/71 860/1362/27 +f 872/1363/15 877/1371/20 879/1364/97 +f 875/1366/21 874/1379/12 882/1367/95 +f 873/1369/26 872/1363/15 884/1365/96 +f 877/1371/20 871/1377/13 885/1372/100 +f 876/1373/16 875/1366/21 881/1368/94 +f 878/1375/27 876/1373/16 880/1374/99 +f 871/1377/13 878/1725/27 848/1378/73 +f 874/1379/12 873/1369/26 883/1370/98 +f 883/1370/98 884/1393/96 887/1388/104 +f 890/1390/106 881/1395/94 882/1391/95 +f 884/1393/96 879/1396/97 892/1394/105 +f 889/1392/103 882/1391/95 883/1370/98 +f 891/1381/102 880/1380/99 881/1395/94 +f 879/1396/97 885/1384/100 886/1386/101 +f 892/1394/105 886/1386/101 854/1387/91 +f 850/1398/87 890/1390/106 889/1392/103 +f 888/1389/69 887/1388/104 853/1400/90 +f 887/1388/104 892/1394/105 847/1397/93 +f 849/1383/88 891/1381/102 890/1390/106 +f 889/1392/103 888/1389/69 852/1342/92 +f 895/1401/16 896/1418/134 867/1402/127 +f 870/1403/130 893/1413/135 894/1404/138 +f 899/1406/136 893/1416/135 870/1407/130 +f 867/1402/127 896/1418/134 897/1409/137 +f 894/1404/138 895/1401/16 868/1352/128 +f 866/1410/133 897/1409/137 898/1411/139 +f 893/1413/135 900/1726/141 901/1414/140 +f 899/1406/136 906/1423/146 900/1415/141 +f 903/1417/142 904/1420/143 897/1409/137 +f 894/1404/138 901/1414/140 902/1419/144 +f 904/1420/143 905/1422/145 898/1411/139 +f 902/1419/144 903/1417/142 896/1418/134 +f 907/1424/93 914/1427/91 906/1425/146 +f 914/1427/91 908/1727/73 900/1428/141 +f 913/1429/90 907/1424/93 864/1426/15 +f 911/1431/89 912/1436/92 904/1432/143 +f 909/1434/88 910/1437/87 902/1419/144 +f 912/1436/92 913/1429/90 905/1430/145 +f 910/1437/87 911/1431/89 903/1433/142 +f 908/1438/73 909/1434/88 901/1435/140 +f 916/1440/15 921/1448/20 923/1441/97 +f 919/1443/21 918/1456/12 926/1444/95 +f 917/1446/26 916/1440/15 928/1442/96 +f 921/1448/20 915/1454/13 929/1449/100 +f 920/1450/16 919/1443/21 925/1445/94 +f 922/1452/27 920/1450/16 924/1451/99 +f 915/1454/13 922/1728/27 908/1455/73 +f 918/1456/12 917/1446/26 927/1447/98 +f 927/1447/98 928/1729/96 931/1465/104 +f 925/1467/94 926/1730/95 933/1468/103 +f 931/1465/104 928/1729/96 923/1470/97 +f 933/1468/103 926/1730/95 927/1447/98 +f 935/1458/102 924/1457/99 925/1467/94 +f 923/1470/97 929/1461/100 930/1463/101 +f 936/1471/105 930/1463/101 914/1464/91 +f 910/1473/87 934/1469/106 933/1468/103 +f 912/1436/92 932/1466/69 931/1465/104 +f 931/1465/104 936/1471/105 907/1472/93 +f 909/1460/88 935/1458/102 934/1469/106 +f 933/1468/103 932/1466/69 912/1436/92 +f 940/1476/127 948/1489/71 947/1477/27 +f 938/1479/129 946/1490/73 945/1480/9 +f 937/1482/130 945/1731/9 952/1483/67 +f 943/1485/15 951/1491/26 950/1486/69 +f 941/1488/133 949/1492/10 948/1489/71 +f 939/1478/128 947/1477/27 946/1490/73 +f 944/1484/131 952/1483/67 951/1491/26 +f 942/1487/132 950/1486/69 949/1492/10 +f 939/1478/128 955/1503/16 956/1493/134 +f 953/1495/135 954/1507/138 938/1496/129 +f 959/1498/136 953/1509/135 937/1499/130 +f 940/1494/127 956/1493/134 957/1501/137 +f 938/1496/129 954/1507/138 955/1503/16 +f 941/1502/133 957/1501/137 958/1504/139 +f 953/1495/135 960/1732/141 961/1506/140 +f 959/1498/136 966/1515/146 960/1508/141 +f 963/1510/142 964/1512/143 957/1501/137 +f 954/1507/138 961/1506/140 962/1511/144 +f 964/1512/143 965/1514/145 958/1504/139 +f 962/1511/144 963/1510/142 956/1493/134 +f 967/1516/93 974/1519/91 966/1517/146 +f 974/1519/91 968/1733/73 960/1520/141 +f 973/1521/90 967/1516/93 943/1518/15 +f 971/1523/89 972/1528/92 964/1524/143 +f 969/1526/88 970/1529/87 962/1511/144 +f 972/1528/92 973/1521/90 965/1522/145 +f 970/1529/87 971/1523/89 963/1525/142 +f 968/1530/73 969/1526/88 961/1527/140 +f 985/1532/132 977/1543/69 978/1533/10 +f 983/1535/131 975/1545/67 976/1536/26 +f 988/1538/128 980/1548/27 981/1539/73 +f 986/1534/133 978/1533/10 979/1541/71 +f 984/1537/15 976/1536/26 977/1543/69 +f 990/1544/130 982/1734/9 975/1545/67 +f 989/1540/129 981/1539/73 982/1546/9 +f 987/1542/127 979/1541/71 980/1548/27 +f 992/1549/15 997/1557/20 999/1550/97 +f 995/1552/21 994/1565/12 1002/1553/95 +f 993/1555/26 992/1549/15 1004/1551/96 +f 997/1557/20 991/1563/13 1005/1558/100 +f 996/1559/16 995/1552/21 1001/1554/94 +f 998/1561/27 996/1559/16 1000/1560/99 +f 991/1563/13 998/1735/27 968/1564/73 +f 994/1565/12 993/1555/26 1003/1556/98 +f 1003/1556/98 1004/1579/96 1007/1574/104 +f 1010/1576/106 1001/1581/94 1002/1577/95 +f 1004/1579/96 999/1582/97 1012/1580/105 +f 1009/1578/103 1002/1577/95 1003/1556/98 +f 1011/1567/102 1000/1566/99 1001/1581/94 +f 999/1582/97 1005/1570/100 1006/1572/101 +f 1012/1580/105 1006/1572/101 974/1573/91 +f 1010/1576/106 1009/1578/103 971/1584/89 +f 972/1528/92 1008/1575/69 1007/1574/104 +f 1007/1574/104 1012/1580/105 967/1583/93 +f 969/1569/88 1011/1567/102 1010/1576/106 +f 971/1584/89 1009/1578/103 1008/1575/69 +f 988/1538/128 1015/1605/16 1016/1587/134 +f 1013/1589/135 1014/1597/138 989/1590/129 +f 1019/1592/136 1013/1602/135 990/1593/130 +f 987/1588/127 1016/1587/134 1017/1595/137 +f 1014/1597/138 1015/1605/16 988/1538/128 +f 986/1596/133 1017/1595/137 1018/1598/139 +f 1013/1589/135 1020/1736/141 1021/1600/140 +f 1019/1592/136 1026/1609/146 1020/1601/141 +f 1023/1603/142 1024/1606/143 1017/1595/137 +f 1014/1597/138 1021/1600/140 1022/1604/144 +f 1024/1606/143 1025/1608/145 1018/1598/139 +f 1022/1604/144 1023/1603/142 1016/1587/134 +f 1027/1610/93 1034/1613/91 1026/1611/146 +f 1034/1613/91 1028/1737/73 1020/1614/141 +f 1033/1615/90 1027/1610/93 984/1612/15 +f 1031/1617/89 1032/1622/92 1024/1618/143 +f 1029/1620/88 1030/1623/87 1022/1604/144 +f 1032/1622/92 1033/1615/90 1025/1616/145 +f 1030/1623/87 1031/1617/89 1023/1619/142 +f 1028/1624/73 1029/1620/88 1021/1621/140 +f 1036/1626/15 1041/1634/20 1043/1627/97 +f 1039/1629/21 1038/1642/12 1046/1630/95 +f 1037/1632/26 1036/1626/15 1048/1628/96 +f 1041/1634/20 1035/1640/13 1049/1635/100 +f 1040/1636/16 1039/1629/21 1045/1631/94 +f 1042/1638/27 1040/1636/16 1044/1637/99 +f 1035/1640/13 1042/1738/27 1028/1641/73 +f 1038/1642/12 1037/1632/26 1047/1633/98 +f 1047/1633/98 1048/1656/96 1051/1651/104 +f 1045/1653/94 1046/1658/95 1053/1654/103 +f 1048/1656/96 1043/1659/97 1056/1657/105 +f 1046/1658/95 1047/1633/98 1052/1652/69 +f 1055/1644/102 1044/1643/99 1045/1653/94 +f 1043/1659/97 1049/1647/100 1050/1649/101 +f 1027/1660/93 1056/1657/105 1050/1649/101 +f 1054/1655/106 1053/1654/103 1031/1661/89 +f 1032/1622/92 1052/1652/69 1051/1651/104 +f 1051/1651/104 1056/1657/105 1027/1660/93 +f 1029/1646/88 1055/1644/102 1054/1655/106 +f 1053/1654/103 1052/1652/69 1032/1622/92 +o SuspensionBackCenter +v 0.000000 4.000000 -7.750007 +v -0.191342 3.961939 -7.750007 +v -0.353554 3.853553 -7.750007 +v -0.461940 3.691341 -7.750007 +v -0.500000 3.500000 -7.750008 +v -0.461940 3.308658 -7.750008 +v -0.353554 3.146446 -7.750008 +v -0.191342 3.038060 -7.750008 +v 0.000000 3.000000 -7.750008 +v 0.191341 3.038060 -7.750008 +v 0.353553 3.146446 -7.750008 +v 0.461940 3.308658 -7.750008 +v 0.500000 3.500000 -7.750008 +v 0.461940 3.691341 -7.750007 +v 0.353553 3.853553 -7.750007 +v 0.191341 3.961939 -7.750007 +v 0.000000 4.000000 -9.500008 +v -0.191342 3.961939 -9.500008 +v -0.353554 3.853553 -9.500008 +v -0.461940 3.691341 -9.500008 +v -0.500000 3.500000 -9.500008 +v -0.461940 3.308658 -9.500008 +v -0.353554 3.146446 -9.500008 +v -0.191342 3.038060 -9.500008 +v 0.000000 3.000000 -9.500008 +v 0.191341 3.038060 -9.500008 +v 0.353553 3.146446 -9.500008 +v 0.461940 3.308658 -9.500008 +v 0.500000 3.500000 -9.500008 +v 0.461940 3.691341 -9.500008 +v 0.353553 3.853553 -9.500008 +v 0.191341 3.961939 -9.500008 +v 0.000000 3.875000 -7.750008 +v -0.265165 3.765165 -7.750008 +v -0.375000 3.500000 -7.750008 +v -0.265165 3.234835 -7.750008 +v 0.000000 3.125000 -7.750008 +v 0.265164 3.234835 -7.750008 +v 0.375000 3.500000 -7.750008 +v 0.265164 3.765165 -7.750008 +v 0.000000 3.875000 -9.500008 +v -0.265165 3.765165 -9.500008 +v -0.375000 3.500000 -9.500008 +v -0.265165 3.234835 -9.500008 +v 0.000000 3.125000 -9.500008 +v 0.265164 3.234835 -9.500008 +v 0.375000 3.500000 -9.500008 +v 0.265164 3.765165 -9.500008 +v 0.000000 4.000000 -7.750007 +v -0.191342 3.961939 -7.750007 +v -0.353554 3.853553 -7.750007 +v -0.461940 3.691341 -7.750007 +v -0.500000 3.500000 -7.750008 +v -0.461940 3.308658 -7.750008 +v -0.353554 3.146446 -7.750008 +v -0.191342 3.038060 -7.750008 +v 0.000000 3.000000 -7.750008 +v 0.191341 3.038060 -7.750008 +v 0.353553 3.146446 -7.750008 +v 0.461940 3.308658 -7.750008 +v 0.500000 3.500000 -7.750008 +v 0.461940 3.691341 -7.750007 +v 0.353553 3.853553 -7.750007 +v 0.191341 3.961939 -7.750007 +v 0.000000 4.000000 -9.500008 +v -0.191342 3.961939 -9.500008 +v -0.353554 3.853553 -9.500008 +v -0.461940 3.691341 -9.500008 +v -0.500000 3.500000 -9.500008 +v -0.461940 3.308658 -9.500008 +v -0.353554 3.146446 -9.500008 +v -0.191342 3.038060 -9.500008 +v 0.000000 3.000000 -9.500008 +v 0.191341 3.038060 -9.500008 +v 0.353553 3.146446 -9.500008 +v 0.461940 3.308658 -9.500008 +v 0.500000 3.500000 -9.500008 +v 0.461940 3.691341 -9.500008 +v 0.353553 3.853553 -9.500008 +v 0.191341 3.961939 -9.500008 +vt 0.851119 0.458140 +vt 0.827883 0.465116 +vt 0.827022 0.458140 +vt 0.845095 0.409302 +vt 0.821859 0.416279 +vt 0.820998 0.409302 +vt 0.844234 0.402326 +vt 0.820138 0.402326 +vt 0.838210 0.353488 +vt 0.814974 0.360465 +vt 0.814114 0.353488 +vt 0.845955 0.416279 +vt 0.822719 0.423256 +vt 0.839071 0.360465 +vt 0.815835 0.367442 +vt 0.846816 0.423256 +vt 0.823580 0.430233 +vt 0.839931 0.367442 +vt 0.816695 0.374419 +vt 0.847676 0.430233 +vt 0.824441 0.437209 +vt 0.840792 0.374419 +vt 0.817556 0.381395 +vt 0.848537 0.437209 +vt 0.825301 0.444186 +vt 0.842513 0.388372 +vt 0.818417 0.388372 +vt 0.849398 0.444186 +vt 0.826162 0.451163 +vt 0.819277 0.395349 +vt 0.850258 0.451163 +vt 0.843373 0.395349 +vt 0.838210 0.530233 +vt 0.814114 0.539535 +vt 0.814114 0.530233 +vt 0.838210 0.511628 +vt 0.814114 0.520930 +vt 0.814114 0.511628 +vt 0.838210 0.483721 +vt 0.814114 0.493023 +vt 0.814114 0.483721 +vt 0.838210 0.465116 +vt 0.814114 0.474419 +vt 0.814114 0.465116 +vt 0.838210 0.520930 +vt 0.838210 0.502326 +vt 0.814114 0.502326 +vt 0.838210 0.493023 +vt 0.838210 0.474419 +vt 0.827883 0.465116 +vt 0.851119 0.458140 +vt 0.827022 0.458140 +vt 0.821859 0.416279 +vt 0.845095 0.409302 +vt 0.820998 0.409302 +vt 0.844234 0.402326 +vt 0.820138 0.402326 +vt 0.814974 0.360465 +vt 0.838210 0.353488 +vt 0.814114 0.353488 +vt 0.822719 0.423256 +vt 0.845955 0.416279 +vt 0.815835 0.367442 +vt 0.839071 0.360465 +vt 0.823580 0.430233 +vt 0.846816 0.423256 +vt 0.816695 0.374419 +vt 0.839931 0.367442 +vt 0.824441 0.437209 +vt 0.847676 0.430233 +vt 0.817556 0.381395 +vt 0.840792 0.374419 +vt 0.825301 0.444186 +vt 0.848537 0.437209 +vt 0.842513 0.388372 +vt 0.841652 0.381395 +vt 0.826162 0.451163 +vt 0.849398 0.444186 +vt 0.819277 0.395349 +vt 0.818417 0.388372 +vt 0.850258 0.451163 +vt 0.843373 0.395349 +vt 0.851979 0.465116 +vt 0.841652 0.381395 +vt 0.838210 0.539535 +vt 0.851979 0.465116 +vn -0.3827 -0.9239 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +s 1 +f 1080/1739/148 1065/1740/149 1064/1741/148 +f 1073/1742/150 1058/1743/151 1057/1744/150 +f 1088/1745/152 1057/1744/150 1072/1746/152 +f 1081/1747/149 1066/1748/153 1065/1749/149 +f 1074/1750/151 1059/1751/154 1058/1743/151 +f 1082/1752/153 1067/1753/155 1066/1748/153 +f 1075/1754/154 1060/1755/156 1059/1751/154 +f 1083/1756/155 1068/1757/157 1067/1753/155 +f 1076/1758/156 1061/1759/158 1060/1755/156 +f 1084/1760/157 1069/1761/159 1068/1757/157 +f 1077/1762/158 1062/1763/160 1061/1759/158 +f 1069/1761/159 1086/1764/161 1070/1765/161 +f 1078/1766/160 1063/1767/162 1062/1763/160 +f 1086/1764/161 1071/1768/163 1070/1765/161 +f 1079/1769/162 1064/1741/148 1063/1767/162 +f 1087/1770/163 1072/1746/152 1071/1768/163 +f 1100/1771/162 1093/1772/149 1092/1773/162 +f 1098/1774/154 1091/1775/158 1090/1776/154 +f 1103/1777/159 1096/1778/163 1095/1779/159 +f 1101/1780/149 1094/1781/155 1093/1782/149 +f 1099/1783/158 1092/1773/162 1091/1775/158 +f 1097/1784/150 1090/1776/154 1089/1785/150 +f 1104/1786/163 1089/1785/150 1096/1778/163 +f 1102/1787/155 1095/1779/159 1094/1781/155 +f 1113/1788/150 1128/1789/152 1112/1790/152 +f 1106/1791/153 1121/1792/149 1105/1793/149 +f 1105/1793/149 1136/1794/148 1120/1795/148 +f 1114/1796/151 1129/1797/150 1113/1798/150 +f 1107/1799/155 1122/1800/153 1106/1791/153 +f 1115/1801/154 1130/1802/151 1114/1796/151 +f 1108/1803/157 1123/1804/155 1107/1799/155 +f 1116/1805/156 1131/1806/154 1115/1801/154 +f 1109/1807/159 1124/1808/157 1108/1803/157 +f 1117/1809/158 1132/1810/156 1116/1805/156 +f 1110/1811/161 1125/1812/159 1109/1807/159 +f 1117/1809/158 1134/1813/160 1133/1814/158 +f 1111/1815/163 1126/1816/161 1110/1811/161 +f 1119/1817/162 1134/1813/160 1118/1818/160 +f 1112/1790/152 1127/1819/163 1111/1815/163 +f 1120/1795/148 1135/1820/162 1119/1817/162 +f 1080/1739/148 1081/1821/149 1065/1740/149 +f 1073/1742/150 1074/1750/151 1058/1743/151 +f 1088/1745/152 1073/1742/150 1057/1744/150 +f 1081/1747/149 1082/1752/153 1066/1748/153 +f 1074/1750/151 1075/1754/154 1059/1751/154 +f 1082/1752/153 1083/1756/155 1067/1753/155 +f 1075/1754/154 1076/1758/156 1060/1755/156 +f 1083/1756/155 1084/1760/157 1068/1757/157 +f 1076/1758/156 1077/1762/158 1061/1759/158 +f 1084/1760/157 1085/1822/159 1069/1761/159 +f 1077/1762/158 1078/1766/160 1062/1763/160 +f 1069/1761/159 1085/1822/159 1086/1764/161 +f 1078/1766/160 1079/1769/162 1063/1767/162 +f 1086/1764/161 1087/1770/163 1071/1768/163 +f 1079/1769/162 1080/1739/148 1064/1741/148 +f 1087/1770/163 1088/1745/152 1072/1746/152 +f 1100/1771/162 1101/1823/149 1093/1772/149 +f 1098/1774/154 1099/1783/158 1091/1775/158 +f 1103/1777/159 1104/1786/163 1096/1778/163 +f 1101/1780/149 1102/1787/155 1094/1781/155 +f 1099/1783/158 1100/1771/162 1092/1773/162 +f 1097/1784/150 1098/1774/154 1090/1776/154 +f 1104/1786/163 1097/1784/150 1089/1785/150 +f 1102/1787/155 1103/1777/159 1095/1779/159 +f 1113/1788/150 1129/1824/150 1128/1789/152 +f 1106/1791/153 1122/1800/153 1121/1792/149 +f 1105/1793/149 1121/1792/149 1136/1794/148 +f 1114/1796/151 1130/1802/151 1129/1797/150 +f 1107/1799/155 1123/1804/155 1122/1800/153 +f 1115/1801/154 1131/1806/154 1130/1802/151 +f 1108/1803/157 1124/1808/157 1123/1804/155 +f 1116/1805/156 1132/1810/156 1131/1806/154 +f 1109/1807/159 1125/1812/159 1124/1808/157 +f 1117/1809/158 1133/1814/158 1132/1810/156 +f 1110/1811/161 1126/1816/161 1125/1812/159 +f 1117/1809/158 1118/1818/160 1134/1813/160 +f 1111/1815/163 1127/1819/163 1126/1816/161 +f 1119/1817/162 1135/1820/162 1134/1813/160 +f 1112/1790/152 1128/1789/152 1127/1819/163 +f 1120/1795/148 1136/1794/148 1135/1820/162 +o SuspensionBackOuter +v 1.750000 5.499998 -7.750008 +v 1.573223 5.426775 -7.750008 +v 1.500000 5.249998 -7.750008 +v 1.573223 5.073221 -7.750008 +v 1.750000 4.999998 -7.750008 +v 1.926777 5.073221 -7.750008 +v 2.000000 5.249998 -7.750008 +v 1.926777 5.426775 -7.750008 +v 1.750000 5.499998 -9.000008 +v 1.573223 5.426775 -9.000008 +v 1.500000 5.249998 -9.000008 +v 1.573223 5.073221 -9.000008 +v 1.750000 4.999998 -9.000008 +v 1.926777 5.073221 -9.000008 +v 2.000000 5.249998 -9.000008 +v 1.926777 5.426775 -9.000008 +v 1.750000 5.624999 -7.750007 +v 1.484835 5.515163 -7.750007 +v 1.375000 5.249998 -7.750007 +v 1.484835 4.984833 -7.750007 +v 1.750000 4.874998 -7.750007 +v 2.015165 4.984833 -7.750007 +v 2.125000 5.249998 -7.750007 +v 2.015165 5.515163 -7.750007 +v 1.750000 5.624999 -9.000008 +v 1.484835 5.515163 -9.000008 +v 1.375000 5.249998 -9.000008 +v 1.484835 4.984833 -9.000008 +v 1.750000 4.874998 -9.000008 +v 2.015165 4.984833 -9.000008 +v 2.125000 5.249998 -9.000008 +v 2.015165 5.515163 -9.000008 +v -1.750000 5.499998 -7.750008 +v -1.926777 5.426775 -7.750008 +v -2.000000 5.249998 -7.750008 +v -1.926777 5.073221 -7.750008 +v -1.750000 4.999998 -7.750008 +v -1.573223 5.073221 -7.750008 +v -1.500000 5.249998 -7.750008 +v -1.573223 5.426775 -7.750008 +v -1.750000 5.499998 -9.000008 +v -1.926777 5.426775 -9.000008 +v -2.000000 5.249998 -9.000008 +v -1.926777 5.073221 -9.000008 +v -1.750000 4.999998 -9.000008 +v -1.573223 5.073221 -9.000008 +v -1.500000 5.249998 -9.000008 +v -1.573223 5.426775 -9.000008 +v -1.750000 5.624999 -7.750007 +v -2.015165 5.515163 -7.750007 +v -2.125000 5.249998 -7.750007 +v -2.015165 4.984833 -7.750007 +v -1.750000 4.874998 -7.750007 +v -1.484835 4.984833 -7.750007 +v -1.375000 5.249998 -7.750007 +v -1.484835 5.515163 -7.750007 +v -1.750000 5.624999 -9.000008 +v -2.015165 5.515163 -9.000008 +v -2.125000 5.249998 -9.000008 +v -2.015165 4.984833 -9.000008 +v -1.750000 4.874998 -9.000008 +v -1.484835 4.984833 -9.000008 +v -1.375000 5.249998 -9.000008 +v -1.484835 5.515163 -9.000008 +v -1.750000 1.999998 -7.750008 +v -1.926777 1.926775 -7.750008 +v -2.000000 1.749998 -7.750008 +v -1.926777 1.573221 -7.750008 +v -1.750000 1.499998 -7.750008 +v -1.573223 1.573221 -7.750008 +v -1.500000 1.749998 -7.750008 +v -1.573223 1.926775 -7.750008 +v -1.750000 1.999998 -9.000008 +v -1.926777 1.926775 -9.000008 +v -2.000000 1.749998 -9.000008 +v -1.926777 1.573221 -9.000008 +v -1.750000 1.499998 -9.000008 +v -1.573223 1.573221 -9.000008 +v -1.500000 1.749998 -9.000008 +v -1.573223 1.926775 -9.000008 +v -1.750000 2.124999 -7.750007 +v -2.015165 2.015163 -7.750007 +v -2.125000 1.749998 -7.750007 +v -2.015165 1.484833 -7.750007 +v -1.750000 1.374998 -7.750007 +v -1.484835 1.484833 -7.750007 +v -1.375000 1.749998 -7.750007 +v -1.484835 2.015163 -7.750007 +v -1.750000 2.124999 -9.000008 +v -2.015165 2.015163 -9.000008 +v -2.125000 1.749998 -9.000008 +v -2.015165 1.484833 -9.000008 +v -1.750000 1.374998 -9.000008 +v -1.484835 1.484833 -9.000008 +v -1.375000 1.749998 -9.000008 +v -1.484835 2.015163 -9.000008 +v 1.750000 1.999998 -7.750008 +v 1.573223 1.926775 -7.750008 +v 1.500000 1.749998 -7.750008 +v 1.573223 1.573221 -7.750008 +v 1.750000 1.499998 -7.750008 +v 1.926777 1.573221 -7.750008 +v 2.000000 1.749998 -7.750008 +v 1.926777 1.926775 -7.750008 +v 1.750000 1.999998 -9.000008 +v 1.573223 1.926775 -9.000008 +v 1.500000 1.749998 -9.000008 +v 1.573223 1.573221 -9.000008 +v 1.750000 1.499998 -9.000008 +v 1.926777 1.573221 -9.000008 +v 2.000000 1.749998 -9.000008 +v 1.926777 1.926775 -9.000008 +v 1.750000 2.124999 -7.750007 +v 1.484835 2.015163 -7.750007 +v 1.375000 1.749998 -7.750007 +v 1.484835 1.484833 -7.750007 +v 1.750000 1.374998 -7.750007 +v 2.015165 1.484833 -7.750007 +v 2.125000 1.749998 -7.750007 +v 2.015165 2.015163 -7.750007 +v 1.750000 2.124999 -9.000008 +v 1.484835 2.015163 -9.000008 +v 1.375000 1.749998 -9.000008 +v 1.484835 1.484833 -9.000008 +v 1.750000 1.374998 -9.000008 +v 2.015165 1.484833 -9.000008 +v 2.125000 1.749998 -9.000008 +v 2.015165 2.015163 -9.000008 +v 1.750000 5.624999 -7.750007 +v 1.484835 5.515163 -7.750007 +v 1.375000 5.249998 -7.750007 +v 1.484835 4.984833 -7.750007 +v 1.750000 4.874998 -7.750007 +v 2.015165 4.984833 -7.750007 +v 2.125000 5.249998 -7.750007 +v 2.015165 5.515163 -7.750007 +v 1.750000 5.624999 -9.000008 +v 1.484835 5.515163 -9.000008 +v 1.375000 5.249998 -9.000008 +v 1.484835 4.984833 -9.000008 +v 1.750000 4.874998 -9.000008 +v 2.015165 4.984833 -9.000008 +v 2.125000 5.249998 -9.000008 +v 2.015165 5.515163 -9.000008 +v -1.750000 5.624999 -7.750007 +v -2.015165 5.515163 -7.750007 +v -2.125000 5.249998 -7.750007 +v -2.015165 4.984833 -7.750007 +v -1.750000 4.874998 -7.750007 +v -1.484835 4.984833 -7.750007 +v -1.375000 5.249998 -7.750007 +v -1.484835 5.515163 -7.750007 +v -1.750000 5.624999 -9.000008 +v -2.015165 5.515163 -9.000008 +v -2.125000 5.249998 -9.000008 +v -2.015165 4.984833 -9.000008 +v -1.750000 4.874998 -9.000008 +v -1.484835 4.984833 -9.000008 +v -1.375000 5.249998 -9.000008 +v -1.484835 5.515163 -9.000008 +v -1.750000 2.124999 -7.750007 +v -2.015165 2.015163 -7.750007 +v -2.125000 1.749998 -7.750007 +v -2.015165 1.484833 -7.750007 +v -1.750000 1.374998 -7.750007 +v -1.484835 1.484833 -7.750007 +v -1.375000 1.749998 -7.750007 +v -1.484835 2.015163 -7.750007 +v -1.750000 2.124999 -9.000008 +v -2.015165 2.015163 -9.000008 +v -2.125000 1.749998 -9.000008 +v -2.015165 1.484833 -9.000008 +v -1.750000 1.374998 -9.000008 +v -1.484835 1.484833 -9.000008 +v -1.375000 1.749998 -9.000008 +v -1.484835 2.015163 -9.000008 +v 1.750000 2.124999 -7.750007 +v 1.484835 2.015163 -7.750007 +v 1.375000 1.749998 -7.750007 +v 1.484835 1.484833 -7.750007 +v 1.750000 1.374998 -7.750007 +v 2.015165 1.484833 -7.750007 +v 2.125000 1.749998 -7.750007 +v 2.015165 2.015163 -7.750007 +v 1.750000 2.124999 -9.000008 +v 1.484835 2.015163 -9.000008 +v 1.375000 1.749998 -9.000008 +v 1.484835 1.484833 -9.000008 +v 1.750000 1.374998 -9.000008 +v 2.015165 1.484833 -9.000008 +v 2.125000 1.749998 -9.000008 +v 2.015165 2.015163 -9.000008 +vt 0.793460 0.825581 +vt 0.776248 0.832558 +vt 0.776248 0.825581 +vt 0.793460 0.804651 +vt 0.776248 0.811628 +vt 0.776248 0.804651 +vt 0.793460 0.790698 +vt 0.776248 0.797674 +vt 0.776248 0.790698 +vt 0.793460 0.832558 +vt 0.776248 0.839535 +vt 0.793460 0.818605 +vt 0.776248 0.818605 +vt 0.793460 0.811628 +vt 0.793460 0.797674 +vt 0.793460 0.839535 +vt 0.776248 0.846512 +vt 0.793460 0.716279 +vt 0.777108 0.725581 +vt 0.776248 0.716279 +vt 0.798623 0.772093 +vt 0.782272 0.781395 +vt 0.781411 0.772093 +vt 0.796902 0.753488 +vt 0.780551 0.762791 +vt 0.779690 0.753488 +vt 0.796041 0.744186 +vt 0.778830 0.744186 +vt 0.794320 0.725581 +vt 0.777969 0.734884 +vt 0.799484 0.781395 +vt 0.783133 0.790698 +vt 0.797762 0.762791 +vt 0.795181 0.734884 +vt 0.793460 0.825581 +vt 0.776248 0.832558 +vt 0.776248 0.825581 +vt 0.793460 0.804651 +vt 0.776248 0.811628 +vt 0.776248 0.804651 +vt 0.793460 0.790698 +vt 0.776248 0.797674 +vt 0.776248 0.790698 +vt 0.793460 0.832558 +vt 0.776248 0.839535 +vt 0.793460 0.818605 +vt 0.776248 0.818605 +vt 0.793460 0.811628 +vt 0.793460 0.797674 +vt 0.793460 0.839535 +vt 0.776248 0.846512 +vt 0.793460 0.716279 +vt 0.777108 0.725581 +vt 0.776248 0.716279 +vt 0.798623 0.772093 +vt 0.782272 0.781395 +vt 0.781411 0.772093 +vt 0.796902 0.753488 +vt 0.780551 0.762791 +vt 0.779690 0.753488 +vt 0.796041 0.744186 +vt 0.778830 0.744186 +vt 0.794320 0.725581 +vt 0.777969 0.734884 +vt 0.799484 0.781395 +vt 0.783133 0.790698 +vt 0.797762 0.762791 +vt 0.795181 0.734884 +vt 0.793460 0.825581 +vt 0.776248 0.832558 +vt 0.776248 0.825581 +vt 0.793460 0.804651 +vt 0.776248 0.811628 +vt 0.776248 0.804651 +vt 0.793460 0.790698 +vt 0.776248 0.797674 +vt 0.776248 0.790698 +vt 0.793460 0.832558 +vt 0.776248 0.839535 +vt 0.793460 0.818605 +vt 0.776248 0.818605 +vt 0.793460 0.811628 +vt 0.793460 0.797674 +vt 0.793460 0.839535 +vt 0.776248 0.846512 +vt 0.793460 0.716279 +vt 0.777108 0.725581 +vt 0.776248 0.716279 +vt 0.798623 0.772093 +vt 0.782272 0.781395 +vt 0.781411 0.772093 +vt 0.796902 0.753488 +vt 0.780551 0.762791 +vt 0.779690 0.753488 +vt 0.796041 0.744186 +vt 0.778830 0.744186 +vt 0.794320 0.725581 +vt 0.777969 0.734884 +vt 0.799484 0.781395 +vt 0.783133 0.790698 +vt 0.797762 0.762791 +vt 0.795181 0.734884 +vt 0.793460 0.825581 +vt 0.776248 0.832558 +vt 0.776248 0.825581 +vt 0.793460 0.804651 +vt 0.776248 0.811628 +vt 0.776248 0.804651 +vt 0.793460 0.790698 +vt 0.776248 0.797674 +vt 0.776248 0.790698 +vt 0.793460 0.832558 +vt 0.776248 0.839535 +vt 0.793460 0.818605 +vt 0.776248 0.818605 +vt 0.793460 0.811628 +vt 0.793460 0.797674 +vt 0.793460 0.839535 +vt 0.776248 0.846512 +vt 0.793460 0.716279 +vt 0.777108 0.725581 +vt 0.776248 0.716279 +vt 0.798623 0.772093 +vt 0.782272 0.781395 +vt 0.781411 0.772093 +vt 0.796902 0.753488 +vt 0.780551 0.762791 +vt 0.779690 0.753488 +vt 0.796041 0.744186 +vt 0.778830 0.744186 +vt 0.794320 0.725581 +vt 0.777969 0.734884 +vt 0.799484 0.781395 +vt 0.783133 0.790698 +vt 0.797762 0.762791 +vt 0.795181 0.734884 +vt 0.777108 0.725581 +vt 0.793460 0.716279 +vt 0.776248 0.716279 +vt 0.782272 0.781395 +vt 0.798623 0.772093 +vt 0.781411 0.772093 +vt 0.780551 0.762791 +vt 0.796902 0.753488 +vt 0.779690 0.753488 +vt 0.796041 0.744186 +vt 0.778830 0.744186 +vt 0.777969 0.734884 +vt 0.794320 0.725581 +vt 0.783133 0.790698 +vt 0.799484 0.781395 +vt 0.797762 0.762791 +vt 0.795181 0.734884 +vt 0.777108 0.725581 +vt 0.793460 0.716279 +vt 0.776248 0.716279 +vt 0.782272 0.781395 +vt 0.798623 0.772093 +vt 0.781411 0.772093 +vt 0.780551 0.762791 +vt 0.796902 0.753488 +vt 0.779690 0.753488 +vt 0.796041 0.744186 +vt 0.778830 0.744186 +vt 0.777969 0.734884 +vt 0.794320 0.725581 +vt 0.783133 0.790698 +vt 0.799484 0.781395 +vt 0.797762 0.762791 +vt 0.795181 0.734884 +vt 0.777108 0.725581 +vt 0.793460 0.716279 +vt 0.776248 0.716279 +vt 0.782272 0.781395 +vt 0.798623 0.772093 +vt 0.781411 0.772093 +vt 0.780551 0.762791 +vt 0.796902 0.753488 +vt 0.779690 0.753488 +vt 0.796041 0.744186 +vt 0.778830 0.744186 +vt 0.777969 0.734884 +vt 0.794320 0.725581 +vt 0.783133 0.790698 +vt 0.799484 0.781395 +vt 0.797762 0.762791 +vt 0.795181 0.734884 +vt 0.777108 0.725581 +vt 0.793460 0.716279 +vt 0.776248 0.716279 +vt 0.782272 0.781395 +vt 0.798623 0.772093 +vt 0.781411 0.772093 +vt 0.780551 0.762791 +vt 0.796902 0.753488 +vt 0.779690 0.753488 +vt 0.796041 0.744186 +vt 0.778830 0.744186 +vt 0.777969 0.734884 +vt 0.794320 0.725581 +vt 0.783133 0.790698 +vt 0.799484 0.781395 +vt 0.797762 0.762791 +vt 0.795181 0.734884 +vt 0.793460 0.846512 +vt 0.800344 0.790698 +vt 0.793460 0.846512 +vt 0.800344 0.790698 +vt 0.793460 0.846512 +vt 0.800344 0.790698 +vt 0.793460 0.846512 +vt 0.800344 0.790698 +vt 0.800344 0.790698 +vt 0.800344 0.790698 +vt 0.800344 0.790698 +vt 0.800344 0.790698 +vn -0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 1146/1825/164 1139/1826/165 1138/1827/164 +f 1151/1828/166 1144/1829/167 1143/1830/166 +f 1149/1831/168 1142/1832/169 1141/1833/168 +f 1147/1834/165 1140/1835/170 1139/1826/165 +f 1145/1836/171 1138/1827/164 1137/1837/171 +f 1152/1838/167 1137/1837/171 1144/1829/167 +f 1150/1839/169 1143/1830/166 1142/1832/169 +f 1148/1840/170 1141/1841/168 1140/1835/170 +f 1165/1842/168 1158/1843/169 1157/1844/168 +f 1163/1845/165 1156/1846/170 1155/1847/165 +f 1161/1848/171 1154/1849/164 1153/1850/171 +f 1168/1851/167 1153/1850/171 1160/1852/167 +f 1166/1853/169 1159/1854/166 1158/1843/169 +f 1164/1855/170 1157/1856/168 1156/1846/170 +f 1162/1857/164 1155/1847/165 1154/1849/164 +f 1167/1858/166 1160/1852/167 1159/1854/166 +f 1178/1859/164 1171/1860/165 1170/1861/164 +f 1183/1862/166 1176/1863/167 1175/1864/166 +f 1181/1865/168 1174/1866/169 1173/1867/168 +f 1179/1868/165 1172/1869/170 1171/1860/165 +f 1177/1870/171 1170/1861/164 1169/1871/171 +f 1184/1872/167 1169/1871/171 1176/1863/167 +f 1182/1873/169 1175/1864/166 1174/1866/169 +f 1180/1874/170 1173/1875/168 1172/1869/170 +f 1197/1876/168 1190/1877/169 1189/1878/168 +f 1195/1879/165 1188/1880/170 1187/1881/165 +f 1193/1882/171 1186/1883/164 1185/1884/171 +f 1200/1885/167 1185/1884/171 1192/1886/167 +f 1198/1887/169 1191/1888/166 1190/1877/169 +f 1196/1889/170 1189/1890/168 1188/1880/170 +f 1194/1891/164 1187/1881/165 1186/1883/164 +f 1199/1892/166 1192/1886/167 1191/1888/166 +f 1210/1893/164 1203/1894/165 1202/1895/164 +f 1215/1896/166 1208/1897/167 1207/1898/166 +f 1213/1899/168 1206/1900/169 1205/1901/168 +f 1211/1902/165 1204/1903/170 1203/1894/165 +f 1209/1904/171 1202/1895/164 1201/1905/171 +f 1216/1906/167 1201/1905/171 1208/1897/167 +f 1214/1907/169 1207/1898/166 1206/1900/169 +f 1212/1908/170 1205/1909/168 1204/1903/170 +f 1229/1910/168 1222/1911/169 1221/1912/168 +f 1227/1913/165 1220/1914/170 1219/1915/165 +f 1225/1916/171 1218/1917/164 1217/1918/171 +f 1232/1919/167 1217/1918/171 1224/1920/167 +f 1230/1921/169 1223/1922/166 1222/1911/169 +f 1228/1923/170 1221/1924/168 1220/1914/170 +f 1226/1925/164 1219/1915/165 1218/1917/164 +f 1231/1926/166 1224/1920/167 1223/1922/166 +f 1242/1927/164 1235/1928/165 1234/1929/164 +f 1247/1930/166 1240/1931/167 1239/1932/166 +f 1245/1933/168 1238/1934/169 1237/1935/168 +f 1243/1936/165 1236/1937/170 1235/1928/165 +f 1241/1938/171 1234/1929/164 1233/1939/171 +f 1248/1940/167 1233/1939/171 1240/1931/167 +f 1246/1941/169 1239/1932/166 1238/1934/169 +f 1244/1942/170 1237/1943/168 1236/1937/170 +f 1261/1944/168 1254/1945/169 1253/1946/168 +f 1259/1947/165 1252/1948/170 1251/1949/165 +f 1257/1950/171 1250/1951/164 1249/1952/171 +f 1264/1953/167 1249/1952/171 1256/1954/167 +f 1262/1955/169 1255/1956/166 1254/1945/169 +f 1260/1957/170 1253/1958/168 1252/1948/170 +f 1258/1959/164 1251/1949/165 1250/1951/164 +f 1263/1960/166 1256/1954/167 1255/1956/166 +f 1270/1961/164 1277/1962/171 1269/1963/171 +f 1268/1964/167 1275/1965/166 1267/1966/166 +f 1266/1967/169 1273/1968/168 1265/1969/168 +f 1265/1969/168 1280/1970/170 1272/1971/170 +f 1271/1972/165 1278/1973/164 1270/1961/164 +f 1269/1974/171 1276/1975/167 1268/1964/167 +f 1267/1966/166 1274/1976/169 1266/1967/169 +f 1272/1971/170 1279/1977/165 1271/1972/165 +f 1286/1978/164 1293/1979/171 1285/1980/171 +f 1284/1981/167 1291/1982/166 1283/1983/166 +f 1282/1984/169 1289/1985/168 1281/1986/168 +f 1281/1986/168 1296/1987/170 1288/1988/170 +f 1287/1989/165 1294/1990/164 1286/1978/164 +f 1285/1991/171 1292/1992/167 1284/1981/167 +f 1283/1983/166 1290/1993/169 1282/1984/169 +f 1288/1988/170 1295/1994/165 1287/1989/165 +f 1302/1995/164 1309/1996/171 1301/1997/171 +f 1300/1998/167 1307/1999/166 1299/2000/166 +f 1298/2001/169 1305/2002/168 1297/2003/168 +f 1297/2003/168 1312/2004/170 1304/2005/170 +f 1303/2006/165 1310/2007/164 1302/1995/164 +f 1301/2008/171 1308/2009/167 1300/1998/167 +f 1299/2000/166 1306/2010/169 1298/2001/169 +f 1304/2005/170 1311/2011/165 1303/2006/165 +f 1318/2012/164 1325/2013/171 1317/2014/171 +f 1316/2015/167 1323/2016/166 1315/2017/166 +f 1314/2018/169 1321/2019/168 1313/2020/168 +f 1313/2020/168 1328/2021/170 1320/2022/170 +f 1319/2023/165 1326/2024/164 1318/2012/164 +f 1317/2025/171 1324/2026/167 1316/2015/167 +f 1315/2017/166 1322/2027/169 1314/2018/169 +f 1320/2022/170 1327/2028/165 1319/2023/165 +f 1146/1825/164 1147/1834/165 1139/1826/165 +f 1151/1828/166 1152/1838/167 1144/1829/167 +f 1149/1831/168 1150/1839/169 1142/1832/169 +f 1147/1834/165 1148/1840/170 1140/1835/170 +f 1145/1836/171 1146/1825/164 1138/1827/164 +f 1152/1838/167 1145/1836/171 1137/1837/171 +f 1150/1839/169 1151/1828/166 1143/1830/166 +f 1148/1840/170 1149/2029/168 1141/1841/168 +f 1165/1842/168 1166/1853/169 1158/1843/169 +f 1163/1845/165 1164/1855/170 1156/1846/170 +f 1161/1848/171 1162/1857/164 1154/1849/164 +f 1168/1851/167 1161/1848/171 1153/1850/171 +f 1166/1853/169 1167/1858/166 1159/1854/166 +f 1164/1855/170 1165/2030/168 1157/1856/168 +f 1162/1857/164 1163/1845/165 1155/1847/165 +f 1167/1858/166 1168/1851/167 1160/1852/167 +f 1178/1859/164 1179/1868/165 1171/1860/165 +f 1183/1862/166 1184/1872/167 1176/1863/167 +f 1181/1865/168 1182/1873/169 1174/1866/169 +f 1179/1868/165 1180/1874/170 1172/1869/170 +f 1177/1870/171 1178/1859/164 1170/1861/164 +f 1184/1872/167 1177/1870/171 1169/1871/171 +f 1182/1873/169 1183/1862/166 1175/1864/166 +f 1180/1874/170 1181/2031/168 1173/1875/168 +f 1197/1876/168 1198/1887/169 1190/1877/169 +f 1195/1879/165 1196/1889/170 1188/1880/170 +f 1193/1882/171 1194/1891/164 1186/1883/164 +f 1200/1885/167 1193/1882/171 1185/1884/171 +f 1198/1887/169 1199/1892/166 1191/1888/166 +f 1196/1889/170 1197/2032/168 1189/1890/168 +f 1194/1891/164 1195/1879/165 1187/1881/165 +f 1199/1892/166 1200/1885/167 1192/1886/167 +f 1210/1893/164 1211/1902/165 1203/1894/165 +f 1215/1896/166 1216/1906/167 1208/1897/167 +f 1213/1899/168 1214/1907/169 1206/1900/169 +f 1211/1902/165 1212/1908/170 1204/1903/170 +f 1209/1904/171 1210/1893/164 1202/1895/164 +f 1216/1906/167 1209/1904/171 1201/1905/171 +f 1214/1907/169 1215/1896/166 1207/1898/166 +f 1212/1908/170 1213/2033/168 1205/1909/168 +f 1229/1910/168 1230/1921/169 1222/1911/169 +f 1227/1913/165 1228/1923/170 1220/1914/170 +f 1225/1916/171 1226/1925/164 1218/1917/164 +f 1232/1919/167 1225/1916/171 1217/1918/171 +f 1230/1921/169 1231/1926/166 1223/1922/166 +f 1228/1923/170 1229/2034/168 1221/1924/168 +f 1226/1925/164 1227/1913/165 1219/1915/165 +f 1231/1926/166 1232/1919/167 1224/1920/167 +f 1242/1927/164 1243/1936/165 1235/1928/165 +f 1247/1930/166 1248/1940/167 1240/1931/167 +f 1245/1933/168 1246/1941/169 1238/1934/169 +f 1243/1936/165 1244/1942/170 1236/1937/170 +f 1241/1938/171 1242/1927/164 1234/1929/164 +f 1248/1940/167 1241/1938/171 1233/1939/171 +f 1246/1941/169 1247/1930/166 1239/1932/166 +f 1244/1942/170 1245/2035/168 1237/1943/168 +f 1261/1944/168 1262/1955/169 1254/1945/169 +f 1259/1947/165 1260/1957/170 1252/1948/170 +f 1257/1950/171 1258/1959/164 1250/1951/164 +f 1264/1953/167 1257/1950/171 1249/1952/171 +f 1262/1955/169 1263/1960/166 1255/1956/166 +f 1260/1957/170 1261/2036/168 1253/1958/168 +f 1258/1959/164 1259/1947/165 1251/1949/165 +f 1263/1960/166 1264/1953/167 1256/1954/167 +f 1270/1961/164 1278/1973/164 1277/1962/171 +f 1268/1964/167 1276/1975/167 1275/1965/166 +f 1266/1967/169 1274/1976/169 1273/1968/168 +f 1265/1969/168 1273/1968/168 1280/1970/170 +f 1271/1972/165 1279/1977/165 1278/1973/164 +f 1269/1974/171 1277/2037/171 1276/1975/167 +f 1267/1966/166 1275/1965/166 1274/1976/169 +f 1272/1971/170 1280/1970/170 1279/1977/165 +f 1286/1978/164 1294/1990/164 1293/1979/171 +f 1284/1981/167 1292/1992/167 1291/1982/166 +f 1282/1984/169 1290/1993/169 1289/1985/168 +f 1281/1986/168 1289/1985/168 1296/1987/170 +f 1287/1989/165 1295/1994/165 1294/1990/164 +f 1285/1991/171 1293/2038/171 1292/1992/167 +f 1283/1983/166 1291/1982/166 1290/1993/169 +f 1288/1988/170 1296/1987/170 1295/1994/165 +f 1302/1995/164 1310/2007/164 1309/1996/171 +f 1300/1998/167 1308/2009/167 1307/1999/166 +f 1298/2001/169 1306/2010/169 1305/2002/168 +f 1297/2003/168 1305/2002/168 1312/2004/170 +f 1303/2006/165 1311/2011/165 1310/2007/164 +f 1301/2008/171 1309/2039/171 1308/2009/167 +f 1299/2000/166 1307/1999/166 1306/2010/169 +f 1304/2005/170 1312/2004/170 1311/2011/165 +f 1318/2012/164 1326/2024/164 1325/2013/171 +f 1316/2015/167 1324/2026/167 1323/2016/166 +f 1314/2018/169 1322/2027/169 1321/2019/168 +f 1313/2020/168 1321/2019/168 1328/2021/170 +f 1319/2023/165 1327/2028/165 1326/2024/164 +f 1317/2025/171 1325/2040/171 1324/2026/167 +f 1315/2017/166 1323/2016/166 1322/2027/169 +f 1320/2022/170 1328/2021/170 1327/2028/165 +o SuspensionLeft +v -1.937497 6.687504 6.437500 +v -1.937497 6.820086 6.382583 +v -1.937497 6.875004 6.250000 +v -1.937497 6.820086 6.117417 +v -1.937497 6.687504 6.062500 +v -1.937497 6.554921 6.117417 +v -1.937497 6.500004 6.250000 +v -1.937497 6.554921 6.382583 +v -1.937497 6.687504 6.375000 +v -1.937497 6.775892 6.338388 +v -1.937497 6.812504 6.250000 +v -1.937497 6.775892 6.161612 +v -1.937497 6.687504 6.125000 +v -1.937497 6.599115 6.161612 +v -1.937497 6.562504 6.250000 +v -1.937497 6.599115 6.338388 +v -2.624997 6.687504 6.437500 +v -2.624997 6.820086 6.382583 +v -2.624997 6.875004 6.250000 +v -2.624997 6.820086 6.117417 +v -2.624997 6.687504 6.062500 +v -2.624997 6.554921 6.117417 +v -2.624997 6.500004 6.250000 +v -2.624997 6.554921 6.382583 +v -2.624997 6.687504 6.375000 +v -2.624997 6.775892 6.338388 +v -2.624997 6.812504 6.250000 +v -2.624997 6.775892 6.161612 +v -2.624997 6.687504 6.125000 +v -2.624997 6.599115 6.161612 +v -2.624997 6.562504 6.250000 +v -2.624997 6.599115 6.338388 +v -1.937497 6.687504 7.875000 +v -1.937497 6.775892 7.838388 +v -1.937497 6.812504 7.750000 +v -1.937497 6.775892 7.661612 +v -1.937497 6.687504 7.625000 +v -1.937497 6.599115 7.661612 +v -1.937497 6.562504 7.750000 +v -1.937497 6.599115 7.838388 +v -2.624997 6.687504 7.875000 +v -2.624997 6.775892 7.838388 +v -2.624997 6.812504 7.750000 +v -2.624997 6.775892 7.661612 +v -2.624997 6.687504 7.625000 +v -2.624997 6.599115 7.661612 +v -2.624997 6.562504 7.750000 +v -2.624997 6.599115 7.838388 +v -1.937497 6.687504 7.937500 +v -1.937497 6.820086 7.882583 +v -1.937497 6.875004 7.750000 +v -1.937497 6.820086 7.617417 +v -1.937497 6.687504 7.562500 +v -1.937497 6.554921 7.617417 +v -1.937497 6.500004 7.750000 +v -1.937497 6.554921 7.882583 +v -2.624997 6.687504 7.937500 +v -2.624997 6.820086 7.882583 +v -2.624997 6.875004 7.750000 +v -2.624997 6.820086 7.617417 +v -2.624997 6.687504 7.562500 +v -2.624997 6.554921 7.617417 +v -2.624997 6.500004 7.750000 +v -2.624997 6.554921 7.882583 +v -1.937497 0.312492 7.562500 +v -1.937497 0.179910 7.617417 +v -1.937497 0.124992 7.750000 +v -1.937497 0.179910 7.882583 +v -1.937497 0.312492 7.937500 +v -1.937497 0.445075 7.882583 +v -1.937497 0.499992 7.750000 +v -1.937497 0.445075 7.617417 +v -1.937497 0.312492 7.625000 +v -1.937497 0.224104 7.661612 +v -1.937497 0.187492 7.750000 +v -1.937497 0.224104 7.838388 +v -1.937497 0.312492 7.875000 +v -1.937497 0.400881 7.838388 +v -1.937497 0.437492 7.750000 +v -1.937497 0.400881 7.661612 +v -2.624997 0.312492 7.562500 +v -2.624997 0.179910 7.617417 +v -2.624997 0.124992 7.750000 +v -2.624997 0.179910 7.882583 +v -2.624997 0.312492 7.937500 +v -2.624997 0.445075 7.882583 +v -2.624997 0.499992 7.750000 +v -2.624997 0.445075 7.617417 +v -2.624997 0.312492 7.625000 +v -2.624997 0.224104 7.661612 +v -2.624997 0.187492 7.750000 +v -2.624997 0.224104 7.838388 +v -2.624997 0.312492 7.875000 +v -2.624997 0.400881 7.838388 +v -2.624997 0.437492 7.750000 +v -2.624997 0.400881 7.661612 +v -1.937497 0.312492 6.125000 +v -1.937497 0.224104 6.161612 +v -1.937497 0.187492 6.250000 +v -1.937497 0.224104 6.338388 +v -1.937497 0.312492 6.375000 +v -1.937497 0.400881 6.338388 +v -1.937497 0.437492 6.250000 +v -1.937497 0.400881 6.161612 +v -2.624997 0.312492 6.125000 +v -2.624997 0.224104 6.161612 +v -2.624997 0.187492 6.250000 +v -2.624997 0.224104 6.338388 +v -2.624997 0.312492 6.375000 +v -2.624997 0.400881 6.338388 +v -2.624997 0.437492 6.250000 +v -2.624997 0.400881 6.161612 +v -1.937497 0.312492 6.062500 +v -1.937497 0.179910 6.117417 +v -1.937497 0.124992 6.250000 +v -1.937497 0.179910 6.382583 +v -1.937497 0.312492 6.437500 +v -1.937497 0.445075 6.382583 +v -1.937497 0.499992 6.250000 +v -1.937497 0.445075 6.117417 +v -2.624997 0.312492 6.062500 +v -2.624997 0.179910 6.117417 +v -2.624997 0.124992 6.250000 +v -2.624997 0.179910 6.382583 +v -2.624997 0.312492 6.437500 +v -2.624997 0.445075 6.382583 +v -2.624997 0.499992 6.250000 +v -2.624997 0.445075 6.117417 +v -1.937497 6.687504 6.437500 +v -1.937497 6.820086 6.382583 +v -1.937497 6.875004 6.250000 +v -1.937497 6.820086 6.117417 +v -1.937497 6.687504 6.062500 +v -1.937497 6.554921 6.117417 +v -1.937497 6.500004 6.250000 +v -1.937497 6.554921 6.382583 +v -2.624997 6.687504 6.437500 +v -2.624997 6.820086 6.382583 +v -2.624997 6.875004 6.250000 +v -2.624997 6.820086 6.117417 +v -2.624997 6.687504 6.062500 +v -2.624997 6.554921 6.117417 +v -2.624997 6.500004 6.250000 +v -2.624997 6.554921 6.382583 +v -1.937497 6.687504 7.937500 +v -1.937497 6.820086 7.882583 +v -1.937497 6.875004 7.750000 +v -1.937497 6.820086 7.617417 +v -1.937497 6.687504 7.562500 +v -1.937497 6.554921 7.617417 +v -1.937497 6.500004 7.750000 +v -1.937497 6.554921 7.882583 +v -2.624997 6.687504 7.937500 +v -2.624997 6.820086 7.882583 +v -2.624997 6.875004 7.750000 +v -2.624997 6.820086 7.617417 +v -2.624997 6.687504 7.562500 +v -2.624997 6.554921 7.617417 +v -2.624997 6.500004 7.750000 +v -2.624997 6.554921 7.882583 +v -1.937497 0.312492 7.562500 +v -1.937497 0.179910 7.617417 +v -1.937497 0.124992 7.750000 +v -1.937497 0.179910 7.882583 +v -1.937497 0.312492 7.937500 +v -1.937497 0.445075 7.882583 +v -1.937497 0.499992 7.750000 +v -1.937497 0.445075 7.617417 +v -2.624997 0.312492 7.562500 +v -2.624997 0.179910 7.617417 +v -2.624997 0.124992 7.750000 +v -2.624997 0.179910 7.882583 +v -2.624997 0.312492 7.937500 +v -2.624997 0.445075 7.882583 +v -2.624997 0.499992 7.750000 +v -2.624997 0.445075 7.617417 +v -1.937497 0.312492 6.062500 +v -1.937497 0.179910 6.117417 +v -1.937497 0.124992 6.250000 +v -1.937497 0.179910 6.382583 +v -1.937497 0.312492 6.437500 +v -1.937497 0.445075 6.382583 +v -1.937497 0.499992 6.250000 +v -1.937497 0.445075 6.117417 +v -2.624997 0.312492 6.062500 +v -2.624997 0.179910 6.117417 +v -2.624997 0.124992 6.250000 +v -2.624997 0.179910 6.382583 +v -2.624997 0.312492 6.437500 +v -2.624997 0.445075 6.382583 +v -2.624997 0.499992 6.250000 +v -2.624997 0.445075 6.117417 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.846816 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.846816 0.646512 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.846816 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.846816 0.646512 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.830465 0.632558 +vt 0.846816 0.632558 +vt 0.846816 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.846816 0.632558 +vt 0.846816 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.7071 -0.7071 +s 1 +f 1342/2041/172 1357/2042/173 1341/2043/173 +f 1335/2044/174 1350/2045/172 1334/2046/172 +f 1343/2047/174 1358/2048/172 1342/2041/172 +f 1336/2049/175 1351/2050/174 1335/2051/174 +f 1344/2052/175 1359/2053/174 1343/2054/174 +f 1329/2055/176 1352/2056/175 1336/2049/175 +f 1330/2057/177 1345/2058/176 1329/2055/176 +f 1337/2059/176 1360/2060/175 1344/2052/175 +f 1338/2061/177 1353/2062/176 1337/2059/176 +f 1331/2063/178 1346/2064/177 1330/2057/177 +f 1339/2065/178 1354/2066/177 1338/2061/177 +f 1332/2067/179 1347/2068/178 1331/2063/178 +f 1340/2069/179 1355/2070/178 1339/2065/178 +f 1333/2071/173 1348/2072/179 1332/2067/179 +f 1341/2043/173 1356/2073/179 1340/2069/179 +f 1334/2046/172 1349/2074/173 1333/2071/173 +f 1366/2075/172 1373/2076/173 1365/2077/173 +f 1367/2078/174 1374/2079/172 1366/2075/172 +f 1368/2080/175 1375/2081/174 1367/2082/174 +f 1361/2083/176 1376/2084/175 1368/2080/175 +f 1362/2085/177 1369/2086/176 1361/2083/176 +f 1363/2087/178 1370/2088/177 1362/2085/177 +f 1364/2089/179 1371/2090/178 1363/2087/178 +f 1365/2077/173 1372/2091/179 1364/2089/179 +f 1383/2092/174 1390/2093/172 1382/2094/172 +f 1384/2095/175 1391/2096/174 1383/2097/174 +f 1377/2098/176 1392/2099/175 1384/2095/175 +f 1378/2100/177 1385/2101/176 1377/2098/176 +f 1379/2102/178 1386/2103/177 1378/2100/177 +f 1380/2104/179 1387/2105/178 1379/2102/178 +f 1381/2106/173 1388/2107/179 1380/2104/179 +f 1382/2094/172 1389/2108/173 1381/2106/173 +f 1406/2109/177 1421/2110/176 1405/2111/176 +f 1399/2112/178 1414/2113/177 1398/2114/177 +f 1407/2115/178 1422/2116/177 1406/2109/177 +f 1400/2117/179 1415/2118/178 1399/2119/178 +f 1408/2120/179 1423/2121/178 1407/2122/178 +f 1393/2123/173 1416/2124/179 1400/2117/179 +f 1394/2125/172 1409/2126/173 1393/2123/173 +f 1401/2127/173 1424/2128/179 1408/2120/179 +f 1402/2129/172 1417/2130/173 1401/2127/173 +f 1395/2131/174 1410/2132/172 1394/2125/172 +f 1403/2133/174 1418/2134/172 1402/2129/172 +f 1396/2135/175 1411/2136/174 1395/2131/174 +f 1404/2137/175 1419/2138/174 1403/2133/174 +f 1397/2139/176 1412/2140/175 1396/2135/175 +f 1405/2111/176 1420/2141/175 1404/2137/175 +f 1398/2114/177 1413/2142/176 1397/2139/176 +f 1430/2143/177 1437/2144/176 1429/2145/176 +f 1431/2146/178 1438/2147/177 1430/2143/177 +f 1432/2148/179 1439/2149/178 1431/2150/178 +f 1425/2151/173 1440/2152/179 1432/2148/179 +f 1426/2153/172 1433/2154/173 1425/2151/173 +f 1427/2155/174 1434/2156/172 1426/2153/172 +f 1428/2157/175 1435/2158/174 1427/2155/174 +f 1429/2145/176 1436/2159/175 1428/2157/175 +f 1447/2160/178 1454/2161/177 1446/2162/177 +f 1448/2163/179 1455/2164/178 1447/2165/178 +f 1441/2166/173 1456/2167/179 1448/2163/179 +f 1442/2168/172 1449/2169/173 1441/2166/173 +f 1443/2170/174 1450/2171/172 1442/2168/172 +f 1444/2172/175 1451/2173/174 1443/2170/174 +f 1445/2174/176 1452/2175/175 1444/2172/175 +f 1446/2162/177 1453/2176/176 1445/2174/176 +f 1470/2177/177 1463/2178/178 1462/2179/177 +f 1471/2180/178 1464/2181/179 1463/2182/178 +f 1472/2183/179 1457/2184/173 1464/2181/179 +f 1465/2185/173 1458/2186/172 1457/2184/173 +f 1466/2187/172 1459/2188/174 1458/2186/172 +f 1467/2189/174 1460/2190/175 1459/2188/174 +f 1468/2191/175 1461/2192/176 1460/2190/175 +f 1469/2193/176 1462/2179/177 1461/2192/176 +f 1486/2194/177 1479/2195/178 1478/2196/177 +f 1487/2197/178 1480/2198/179 1479/2199/178 +f 1488/2200/179 1473/2201/173 1480/2198/179 +f 1481/2202/173 1474/2203/172 1473/2201/173 +f 1482/2204/172 1475/2205/174 1474/2203/172 +f 1483/2206/174 1476/2207/175 1475/2205/174 +f 1484/2208/175 1477/2209/176 1476/2207/175 +f 1485/2210/176 1478/2196/177 1477/2209/176 +f 1502/2211/172 1495/2212/174 1494/2213/172 +f 1503/2214/174 1496/2215/175 1495/2216/174 +f 1504/2217/175 1489/2218/176 1496/2215/175 +f 1497/2219/176 1490/2220/177 1489/2218/176 +f 1498/2221/177 1491/2222/178 1490/2220/177 +f 1499/2223/178 1492/2224/179 1491/2222/178 +f 1500/2225/179 1493/2226/173 1492/2224/179 +f 1501/2227/173 1494/2213/172 1493/2226/173 +f 1518/2228/172 1511/2229/174 1510/2230/172 +f 1519/2231/174 1512/2232/175 1511/2233/174 +f 1520/2234/175 1505/2235/176 1512/2232/175 +f 1513/2236/176 1506/2237/177 1505/2235/176 +f 1514/2238/177 1507/2239/178 1506/2237/177 +f 1515/2240/178 1508/2241/179 1507/2239/178 +f 1516/2242/179 1509/2243/173 1508/2241/179 +f 1517/2244/173 1510/2230/172 1509/2243/173 +f 1342/2041/172 1358/2048/172 1357/2042/173 +f 1335/2044/174 1351/2245/174 1350/2045/172 +f 1343/2047/174 1359/2246/174 1358/2048/172 +f 1336/2049/175 1352/2056/175 1351/2050/174 +f 1344/2052/175 1360/2060/175 1359/2053/174 +f 1329/2055/176 1345/2058/176 1352/2056/175 +f 1330/2057/177 1346/2064/177 1345/2058/176 +f 1337/2059/176 1353/2062/176 1360/2060/175 +f 1338/2061/177 1354/2066/177 1353/2062/176 +f 1331/2063/178 1347/2068/178 1346/2064/177 +f 1339/2065/178 1355/2070/178 1354/2066/177 +f 1332/2067/179 1348/2072/179 1347/2068/178 +f 1340/2069/179 1356/2073/179 1355/2070/178 +f 1333/2071/173 1349/2074/173 1348/2072/179 +f 1341/2043/173 1357/2042/173 1356/2073/179 +f 1334/2046/172 1350/2045/172 1349/2074/173 +f 1366/2075/172 1374/2079/172 1373/2076/173 +f 1367/2078/174 1375/2247/174 1374/2079/172 +f 1368/2080/175 1376/2084/175 1375/2081/174 +f 1361/2083/176 1369/2086/176 1376/2084/175 +f 1362/2085/177 1370/2088/177 1369/2086/176 +f 1363/2087/178 1371/2090/178 1370/2088/177 +f 1364/2089/179 1372/2091/179 1371/2090/178 +f 1365/2077/173 1373/2076/173 1372/2091/179 +f 1383/2092/174 1391/2248/174 1390/2093/172 +f 1384/2095/175 1392/2099/175 1391/2096/174 +f 1377/2098/176 1385/2101/176 1392/2099/175 +f 1378/2100/177 1386/2103/177 1385/2101/176 +f 1379/2102/178 1387/2105/178 1386/2103/177 +f 1380/2104/179 1388/2107/179 1387/2105/178 +f 1381/2106/173 1389/2108/173 1388/2107/179 +f 1382/2094/172 1390/2093/172 1389/2108/173 +f 1406/2109/177 1422/2116/177 1421/2110/176 +f 1399/2112/178 1415/2249/178 1414/2113/177 +f 1407/2115/178 1423/2250/178 1422/2116/177 +f 1400/2117/179 1416/2124/179 1415/2118/178 +f 1408/2120/179 1424/2128/179 1423/2121/178 +f 1393/2123/173 1409/2126/173 1416/2124/179 +f 1394/2125/172 1410/2132/172 1409/2126/173 +f 1401/2127/173 1417/2130/173 1424/2128/179 +f 1402/2129/172 1418/2134/172 1417/2130/173 +f 1395/2131/174 1411/2136/174 1410/2132/172 +f 1403/2133/174 1419/2138/174 1418/2134/172 +f 1396/2135/175 1412/2140/175 1411/2136/174 +f 1404/2137/175 1420/2141/175 1419/2138/174 +f 1397/2139/176 1413/2142/176 1412/2140/175 +f 1405/2111/176 1421/2110/176 1420/2141/175 +f 1398/2114/177 1414/2113/177 1413/2142/176 +f 1430/2143/177 1438/2147/177 1437/2144/176 +f 1431/2146/178 1439/2251/178 1438/2147/177 +f 1432/2148/179 1440/2152/179 1439/2149/178 +f 1425/2151/173 1433/2154/173 1440/2152/179 +f 1426/2153/172 1434/2156/172 1433/2154/173 +f 1427/2155/174 1435/2158/174 1434/2156/172 +f 1428/2157/175 1436/2159/175 1435/2158/174 +f 1429/2145/176 1437/2144/176 1436/2159/175 +f 1447/2160/178 1455/2252/178 1454/2161/177 +f 1448/2163/179 1456/2167/179 1455/2164/178 +f 1441/2166/173 1449/2169/173 1456/2167/179 +f 1442/2168/172 1450/2171/172 1449/2169/173 +f 1443/2170/174 1451/2173/174 1450/2171/172 +f 1444/2172/175 1452/2175/175 1451/2173/174 +f 1445/2174/176 1453/2176/176 1452/2175/175 +f 1446/2162/177 1454/2161/177 1453/2176/176 +f 1470/2177/177 1471/2253/178 1463/2178/178 +f 1471/2180/178 1472/2183/179 1464/2181/179 +f 1472/2183/179 1465/2185/173 1457/2184/173 +f 1465/2185/173 1466/2187/172 1458/2186/172 +f 1466/2187/172 1467/2189/174 1459/2188/174 +f 1467/2189/174 1468/2191/175 1460/2190/175 +f 1468/2191/175 1469/2193/176 1461/2192/176 +f 1469/2193/176 1470/2177/177 1462/2179/177 +f 1486/2194/177 1487/2254/178 1479/2195/178 +f 1487/2197/178 1488/2200/179 1480/2198/179 +f 1488/2200/179 1481/2202/173 1473/2201/173 +f 1481/2202/173 1482/2204/172 1474/2203/172 +f 1482/2204/172 1483/2206/174 1475/2205/174 +f 1483/2206/174 1484/2208/175 1476/2207/175 +f 1484/2208/175 1485/2210/176 1477/2209/176 +f 1485/2210/176 1486/2194/177 1478/2196/177 +f 1502/2211/172 1503/2255/174 1495/2212/174 +f 1503/2214/174 1504/2217/175 1496/2215/175 +f 1504/2217/175 1497/2219/176 1489/2218/176 +f 1497/2219/176 1498/2221/177 1490/2220/177 +f 1498/2221/177 1499/2223/178 1491/2222/178 +f 1499/2223/178 1500/2225/179 1492/2224/179 +f 1500/2225/179 1501/2227/173 1493/2226/173 +f 1501/2227/173 1502/2211/172 1494/2213/172 +f 1518/2228/172 1519/2256/174 1511/2229/174 +f 1519/2231/174 1520/2234/175 1512/2232/175 +f 1520/2234/175 1513/2236/176 1505/2235/176 +f 1513/2236/176 1514/2238/177 1506/2237/177 +f 1514/2238/177 1515/2240/178 1507/2239/178 +f 1515/2240/178 1516/2242/179 1508/2241/179 +f 1516/2242/179 1517/2244/173 1509/2243/173 +f 1517/2244/173 1518/2228/172 1510/2230/172 +o SuspensionRight +v 1.937497 6.687504 7.562500 +v 1.937497 6.820086 7.617417 +v 1.937497 6.875004 7.750000 +v 1.937497 6.820086 7.882583 +v 1.937497 6.687504 7.937500 +v 1.937497 6.554921 7.882583 +v 1.937497 6.500004 7.750000 +v 1.937497 6.554921 7.617417 +v 1.937497 6.687504 7.625000 +v 1.937497 6.775892 7.661612 +v 1.937497 6.812504 7.750000 +v 1.937497 6.775892 7.838388 +v 1.937497 6.687504 7.875000 +v 1.937497 6.599115 7.838388 +v 1.937497 6.562504 7.750000 +v 1.937497 6.599115 7.661612 +v 2.624997 6.687504 7.562500 +v 2.624997 6.820086 7.617417 +v 2.624997 6.875004 7.750000 +v 2.624997 6.820086 7.882583 +v 2.624997 6.687504 7.937500 +v 2.624997 6.554921 7.882583 +v 2.624997 6.500004 7.750000 +v 2.624997 6.554921 7.617417 +v 2.624997 6.687504 7.625000 +v 2.624997 6.775892 7.661612 +v 2.624997 6.812504 7.750000 +v 2.624997 6.775892 7.838388 +v 2.624997 6.687504 7.875000 +v 2.624997 6.599115 7.838388 +v 2.624997 6.562504 7.750000 +v 2.624997 6.599115 7.661612 +v 1.937497 6.687504 6.125000 +v 1.937497 6.775892 6.161612 +v 1.937497 6.812504 6.250000 +v 1.937497 6.775892 6.338388 +v 1.937497 6.687504 6.375000 +v 1.937497 6.599115 6.338388 +v 1.937497 6.562504 6.250000 +v 1.937497 6.599115 6.161612 +v 2.624997 6.687504 6.125000 +v 2.624997 6.775892 6.161612 +v 2.624997 6.812504 6.250000 +v 2.624997 6.775892 6.338388 +v 2.624997 6.687504 6.375000 +v 2.624997 6.599115 6.338388 +v 2.624997 6.562504 6.250000 +v 2.624997 6.599115 6.161612 +v 1.937497 6.687504 6.062500 +v 1.937497 6.820086 6.117417 +v 1.937497 6.875004 6.250000 +v 1.937497 6.820086 6.382583 +v 1.937497 6.687504 6.437500 +v 1.937497 6.554921 6.382583 +v 1.937497 6.500004 6.250000 +v 1.937497 6.554921 6.117417 +v 2.624997 6.687504 6.062500 +v 2.624997 6.820086 6.117417 +v 2.624997 6.875004 6.250000 +v 2.624997 6.820086 6.382583 +v 2.624997 6.687504 6.437500 +v 2.624997 6.554921 6.382583 +v 2.624997 6.500004 6.250000 +v 2.624997 6.554921 6.117417 +v 1.937497 0.312492 6.437500 +v 1.937497 0.179910 6.382583 +v 1.937497 0.124992 6.250000 +v 1.937497 0.179910 6.117417 +v 1.937497 0.312492 6.062500 +v 1.937497 0.445075 6.117417 +v 1.937497 0.499992 6.250000 +v 1.937497 0.445075 6.382583 +v 1.937497 0.312492 6.375000 +v 1.937497 0.224104 6.338388 +v 1.937497 0.187492 6.250000 +v 1.937497 0.224104 6.161612 +v 1.937497 0.312492 6.125000 +v 1.937497 0.400881 6.161612 +v 1.937497 0.437492 6.250000 +v 1.937497 0.400881 6.338388 +v 2.624997 0.312492 6.437500 +v 2.624997 0.179910 6.382583 +v 2.624997 0.124992 6.250000 +v 2.624997 0.179910 6.117417 +v 2.624997 0.312492 6.062500 +v 2.624997 0.445075 6.117417 +v 2.624997 0.499992 6.250000 +v 2.624997 0.445075 6.382583 +v 2.624997 0.312492 6.375000 +v 2.624997 0.224104 6.338388 +v 2.624997 0.187492 6.250000 +v 2.624997 0.224104 6.161612 +v 2.624997 0.312492 6.125000 +v 2.624997 0.400881 6.161612 +v 2.624997 0.437492 6.250000 +v 2.624997 0.400881 6.338388 +v 1.937497 0.312492 7.875000 +v 1.937497 0.224104 7.838388 +v 1.937497 0.187492 7.750000 +v 1.937497 0.224104 7.661612 +v 1.937497 0.312492 7.625000 +v 1.937497 0.400881 7.661612 +v 1.937497 0.437492 7.750000 +v 1.937497 0.400881 7.838388 +v 2.624997 0.312492 7.875000 +v 2.624997 0.224104 7.838388 +v 2.624997 0.187492 7.750000 +v 2.624997 0.224104 7.661612 +v 2.624997 0.312492 7.625000 +v 2.624997 0.400881 7.661612 +v 2.624997 0.437492 7.750000 +v 2.624997 0.400881 7.838388 +v 1.937497 0.312492 7.937500 +v 1.937497 0.179910 7.882583 +v 1.937497 0.124992 7.750000 +v 1.937497 0.179910 7.617417 +v 1.937497 0.312492 7.562500 +v 1.937497 0.445075 7.617417 +v 1.937497 0.499992 7.750000 +v 1.937497 0.445075 7.882583 +v 2.624997 0.312492 7.937500 +v 2.624997 0.179910 7.882583 +v 2.624997 0.124992 7.750000 +v 2.624997 0.179910 7.617417 +v 2.624997 0.312492 7.562500 +v 2.624997 0.445075 7.617417 +v 2.624997 0.499992 7.750000 +v 2.624997 0.445075 7.882583 +v 1.937497 6.687504 7.562500 +v 1.937497 6.820086 7.617417 +v 1.937497 6.875004 7.750000 +v 1.937497 6.820086 7.882583 +v 1.937497 6.687504 7.937500 +v 1.937497 6.554921 7.882583 +v 1.937497 6.500004 7.750000 +v 1.937497 6.554921 7.617417 +v 2.624997 6.687504 7.562500 +v 2.624997 6.820086 7.617417 +v 2.624997 6.875004 7.750000 +v 2.624997 6.820086 7.882583 +v 2.624997 6.687504 7.937500 +v 2.624997 6.554921 7.882583 +v 2.624997 6.500004 7.750000 +v 2.624997 6.554921 7.617417 +v 1.937497 6.687504 6.062500 +v 1.937497 6.820086 6.117417 +v 1.937497 6.875004 6.250000 +v 1.937497 6.820086 6.382583 +v 1.937497 6.687504 6.437500 +v 1.937497 6.554921 6.382583 +v 1.937497 6.500004 6.250000 +v 1.937497 6.554921 6.117417 +v 2.624997 6.687504 6.062500 +v 2.624997 6.820086 6.117417 +v 2.624997 6.875004 6.250000 +v 2.624997 6.820086 6.382583 +v 2.624997 6.687504 6.437500 +v 2.624997 6.554921 6.382583 +v 2.624997 6.500004 6.250000 +v 2.624997 6.554921 6.117417 +v 1.937497 0.312492 6.437500 +v 1.937497 0.179910 6.382583 +v 1.937497 0.124992 6.250000 +v 1.937497 0.179910 6.117417 +v 1.937497 0.312492 6.062500 +v 1.937497 0.445075 6.117417 +v 1.937497 0.499992 6.250000 +v 1.937497 0.445075 6.382583 +v 2.624997 0.312492 6.437500 +v 2.624997 0.179910 6.382583 +v 2.624997 0.124992 6.250000 +v 2.624997 0.179910 6.117417 +v 2.624997 0.312492 6.062500 +v 2.624997 0.445075 6.117417 +v 2.624997 0.499992 6.250000 +v 2.624997 0.445075 6.382583 +v 1.937497 0.312492 7.937500 +v 1.937497 0.179910 7.882583 +v 1.937497 0.124992 7.750000 +v 1.937497 0.179910 7.617417 +v 1.937497 0.312492 7.562500 +v 1.937497 0.445075 7.617417 +v 1.937497 0.499992 7.750000 +v 1.937497 0.445075 7.882583 +v 2.624997 0.312492 7.937500 +v 2.624997 0.179910 7.882583 +v 2.624997 0.124992 7.750000 +v 2.624997 0.179910 7.617417 +v 2.624997 0.312492 7.562500 +v 2.624997 0.445075 7.617417 +v 2.624997 0.499992 7.750000 +v 2.624997 0.445075 7.882583 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.846816 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.846816 0.646512 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.846816 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.846816 0.646512 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.830465 0.632558 +vt 0.846816 0.632558 +vt 0.846816 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.846816 0.632558 +vt 0.846816 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +s 1 +f 1534/2257/180 1549/2258/181 1533/2259/181 +f 1527/2260/182 1542/2261/180 1526/2262/180 +f 1535/2263/182 1550/2264/180 1534/2257/180 +f 1528/2265/183 1543/2266/182 1527/2267/182 +f 1536/2268/183 1551/2269/182 1535/2270/182 +f 1521/2271/184 1544/2272/183 1528/2265/183 +f 1522/2273/185 1537/2274/184 1521/2271/184 +f 1529/2275/184 1552/2276/183 1536/2268/183 +f 1530/2277/185 1545/2278/184 1529/2275/184 +f 1523/2279/186 1538/2280/185 1522/2273/185 +f 1531/2281/186 1546/2282/185 1530/2277/185 +f 1524/2283/187 1539/2284/186 1523/2279/186 +f 1532/2285/187 1547/2286/186 1531/2281/186 +f 1525/2287/181 1540/2288/187 1524/2283/187 +f 1533/2259/181 1548/2289/187 1532/2285/187 +f 1526/2262/180 1541/2290/181 1525/2287/181 +f 1558/2291/180 1565/2292/181 1557/2293/181 +f 1559/2294/182 1566/2295/180 1558/2291/180 +f 1560/2296/183 1567/2297/182 1559/2298/182 +f 1553/2299/184 1568/2300/183 1560/2296/183 +f 1554/2301/185 1561/2302/184 1553/2299/184 +f 1555/2303/186 1562/2304/185 1554/2301/185 +f 1556/2305/187 1563/2306/186 1555/2303/186 +f 1557/2293/181 1564/2307/187 1556/2305/187 +f 1575/2308/182 1582/2309/180 1574/2310/180 +f 1576/2311/183 1583/2312/182 1575/2313/182 +f 1569/2314/184 1584/2315/183 1576/2311/183 +f 1570/2316/185 1577/2317/184 1569/2314/184 +f 1571/2318/186 1578/2319/185 1570/2316/185 +f 1572/2320/187 1579/2321/186 1571/2318/186 +f 1573/2322/181 1580/2323/187 1572/2320/187 +f 1574/2310/180 1581/2324/181 1573/2322/181 +f 1598/2325/185 1613/2326/184 1597/2327/184 +f 1591/2328/186 1606/2329/185 1590/2330/185 +f 1599/2331/186 1614/2332/185 1598/2325/185 +f 1592/2333/187 1607/2334/186 1591/2335/186 +f 1600/2336/187 1615/2337/186 1599/2338/186 +f 1585/2339/181 1608/2340/187 1592/2333/187 +f 1586/2341/180 1601/2342/181 1585/2339/181 +f 1593/2343/181 1616/2344/187 1600/2336/187 +f 1594/2345/180 1609/2346/181 1593/2343/181 +f 1587/2347/182 1602/2348/180 1586/2341/180 +f 1595/2349/182 1610/2350/180 1594/2345/180 +f 1588/2351/183 1603/2352/182 1587/2347/182 +f 1596/2353/183 1611/2354/182 1595/2349/182 +f 1589/2355/184 1604/2356/183 1588/2351/183 +f 1597/2327/184 1612/2357/183 1596/2353/183 +f 1590/2330/185 1605/2358/184 1589/2355/184 +f 1622/2359/185 1629/2360/184 1621/2361/184 +f 1623/2362/186 1630/2363/185 1622/2359/185 +f 1624/2364/187 1631/2365/186 1623/2366/186 +f 1617/2367/181 1632/2368/187 1624/2364/187 +f 1618/2369/180 1625/2370/181 1617/2367/181 +f 1619/2371/182 1626/2372/180 1618/2369/180 +f 1620/2373/183 1627/2374/182 1619/2371/182 +f 1621/2361/184 1628/2375/183 1620/2373/183 +f 1639/2376/186 1646/2377/185 1638/2378/185 +f 1640/2379/187 1647/2380/186 1639/2381/186 +f 1633/2382/181 1648/2383/187 1640/2379/187 +f 1634/2384/180 1641/2385/181 1633/2382/181 +f 1635/2386/182 1642/2387/180 1634/2384/180 +f 1636/2388/183 1643/2389/182 1635/2386/182 +f 1637/2390/184 1644/2391/183 1636/2388/183 +f 1638/2378/185 1645/2392/184 1637/2390/184 +f 1662/2393/185 1655/2394/186 1654/2395/185 +f 1663/2396/186 1656/2397/187 1655/2398/186 +f 1664/2399/187 1649/2400/181 1656/2397/187 +f 1657/2401/181 1650/2402/180 1649/2400/181 +f 1658/2403/180 1651/2404/182 1650/2402/180 +f 1659/2405/182 1652/2406/183 1651/2404/182 +f 1660/2407/183 1653/2408/184 1652/2406/183 +f 1661/2409/184 1654/2395/185 1653/2408/184 +f 1678/2410/185 1671/2411/186 1670/2412/185 +f 1679/2413/186 1672/2414/187 1671/2415/186 +f 1680/2416/187 1665/2417/181 1672/2414/187 +f 1673/2418/181 1666/2419/180 1665/2417/181 +f 1674/2420/180 1667/2421/182 1666/2419/180 +f 1675/2422/182 1668/2423/183 1667/2421/182 +f 1676/2424/183 1669/2425/184 1668/2423/183 +f 1677/2426/184 1670/2412/185 1669/2425/184 +f 1694/2427/180 1687/2428/182 1686/2429/180 +f 1695/2430/182 1688/2431/183 1687/2432/182 +f 1696/2433/183 1681/2434/184 1688/2431/183 +f 1689/2435/184 1682/2436/185 1681/2434/184 +f 1690/2437/185 1683/2438/186 1682/2436/185 +f 1691/2439/186 1684/2440/187 1683/2438/186 +f 1692/2441/187 1685/2442/181 1684/2440/187 +f 1693/2443/181 1686/2429/180 1685/2442/181 +f 1710/2444/180 1703/2445/182 1702/2446/180 +f 1711/2447/182 1704/2448/183 1703/2449/182 +f 1712/2450/183 1697/2451/184 1704/2448/183 +f 1705/2452/184 1698/2453/185 1697/2451/184 +f 1706/2454/185 1699/2455/186 1698/2453/185 +f 1707/2456/186 1700/2457/187 1699/2455/186 +f 1708/2458/187 1701/2459/181 1700/2457/187 +f 1709/2460/181 1702/2446/180 1701/2459/181 +f 1534/2257/180 1550/2264/180 1549/2258/181 +f 1527/2260/182 1543/2461/182 1542/2261/180 +f 1535/2263/182 1551/2462/182 1550/2264/180 +f 1528/2265/183 1544/2272/183 1543/2266/182 +f 1536/2268/183 1552/2276/183 1551/2269/182 +f 1521/2271/184 1537/2274/184 1544/2272/183 +f 1522/2273/185 1538/2280/185 1537/2274/184 +f 1529/2275/184 1545/2278/184 1552/2276/183 +f 1530/2277/185 1546/2282/185 1545/2278/184 +f 1523/2279/186 1539/2284/186 1538/2280/185 +f 1531/2281/186 1547/2286/186 1546/2282/185 +f 1524/2283/187 1540/2288/187 1539/2284/186 +f 1532/2285/187 1548/2289/187 1547/2286/186 +f 1525/2287/181 1541/2290/181 1540/2288/187 +f 1533/2259/181 1549/2258/181 1548/2289/187 +f 1526/2262/180 1542/2261/180 1541/2290/181 +f 1558/2291/180 1566/2295/180 1565/2292/181 +f 1559/2294/182 1567/2463/182 1566/2295/180 +f 1560/2296/183 1568/2300/183 1567/2297/182 +f 1553/2299/184 1561/2302/184 1568/2300/183 +f 1554/2301/185 1562/2304/185 1561/2302/184 +f 1555/2303/186 1563/2306/186 1562/2304/185 +f 1556/2305/187 1564/2307/187 1563/2306/186 +f 1557/2293/181 1565/2292/181 1564/2307/187 +f 1575/2308/182 1583/2464/182 1582/2309/180 +f 1576/2311/183 1584/2315/183 1583/2312/182 +f 1569/2314/184 1577/2317/184 1584/2315/183 +f 1570/2316/185 1578/2319/185 1577/2317/184 +f 1571/2318/186 1579/2321/186 1578/2319/185 +f 1572/2320/187 1580/2323/187 1579/2321/186 +f 1573/2322/181 1581/2324/181 1580/2323/187 +f 1574/2310/180 1582/2309/180 1581/2324/181 +f 1598/2325/185 1614/2332/185 1613/2326/184 +f 1591/2328/186 1607/2465/186 1606/2329/185 +f 1599/2331/186 1615/2466/186 1614/2332/185 +f 1592/2333/187 1608/2340/187 1607/2334/186 +f 1600/2336/187 1616/2344/187 1615/2337/186 +f 1585/2339/181 1601/2342/181 1608/2340/187 +f 1586/2341/180 1602/2348/180 1601/2342/181 +f 1593/2343/181 1609/2346/181 1616/2344/187 +f 1594/2345/180 1610/2350/180 1609/2346/181 +f 1587/2347/182 1603/2352/182 1602/2348/180 +f 1595/2349/182 1611/2354/182 1610/2350/180 +f 1588/2351/183 1604/2356/183 1603/2352/182 +f 1596/2353/183 1612/2357/183 1611/2354/182 +f 1589/2355/184 1605/2358/184 1604/2356/183 +f 1597/2327/184 1613/2326/184 1612/2357/183 +f 1590/2330/185 1606/2329/185 1605/2358/184 +f 1622/2359/185 1630/2363/185 1629/2360/184 +f 1623/2362/186 1631/2467/186 1630/2363/185 +f 1624/2364/187 1632/2368/187 1631/2365/186 +f 1617/2367/181 1625/2370/181 1632/2368/187 +f 1618/2369/180 1626/2372/180 1625/2370/181 +f 1619/2371/182 1627/2374/182 1626/2372/180 +f 1620/2373/183 1628/2375/183 1627/2374/182 +f 1621/2361/184 1629/2360/184 1628/2375/183 +f 1639/2376/186 1647/2468/186 1646/2377/185 +f 1640/2379/187 1648/2383/187 1647/2380/186 +f 1633/2382/181 1641/2385/181 1648/2383/187 +f 1634/2384/180 1642/2387/180 1641/2385/181 +f 1635/2386/182 1643/2389/182 1642/2387/180 +f 1636/2388/183 1644/2391/183 1643/2389/182 +f 1637/2390/184 1645/2392/184 1644/2391/183 +f 1638/2378/185 1646/2377/185 1645/2392/184 +f 1662/2393/185 1663/2469/186 1655/2394/186 +f 1663/2396/186 1664/2399/187 1656/2397/187 +f 1664/2399/187 1657/2401/181 1649/2400/181 +f 1657/2401/181 1658/2403/180 1650/2402/180 +f 1658/2403/180 1659/2405/182 1651/2404/182 +f 1659/2405/182 1660/2407/183 1652/2406/183 +f 1660/2407/183 1661/2409/184 1653/2408/184 +f 1661/2409/184 1662/2393/185 1654/2395/185 +f 1678/2410/185 1679/2470/186 1671/2411/186 +f 1679/2413/186 1680/2416/187 1672/2414/187 +f 1680/2416/187 1673/2418/181 1665/2417/181 +f 1673/2418/181 1674/2420/180 1666/2419/180 +f 1674/2420/180 1675/2422/182 1667/2421/182 +f 1675/2422/182 1676/2424/183 1668/2423/183 +f 1676/2424/183 1677/2426/184 1669/2425/184 +f 1677/2426/184 1678/2410/185 1670/2412/185 +f 1694/2427/180 1695/2471/182 1687/2428/182 +f 1695/2430/182 1696/2433/183 1688/2431/183 +f 1696/2433/183 1689/2435/184 1681/2434/184 +f 1689/2435/184 1690/2437/185 1682/2436/185 +f 1690/2437/185 1691/2439/186 1683/2438/186 +f 1691/2439/186 1692/2441/187 1684/2440/187 +f 1692/2441/187 1693/2443/181 1685/2442/181 +f 1693/2443/181 1694/2427/180 1686/2429/180 +f 1710/2444/180 1711/2472/182 1703/2445/182 +f 1711/2447/182 1712/2450/183 1704/2448/183 +f 1712/2450/183 1705/2452/184 1697/2451/184 +f 1705/2452/184 1706/2454/185 1698/2453/185 +f 1706/2454/185 1707/2456/186 1699/2455/186 +f 1707/2456/186 1708/2458/187 1700/2457/187 +f 1708/2458/187 1709/2460/181 1701/2459/181 +f 1709/2460/181 1710/2444/180 1702/2446/180 +o SuspensionBottom +v -3.187505 1.562501 6.437500 +v -3.320088 1.562501 6.382583 +v -3.375005 1.562501 6.250000 +v -3.320088 1.562501 6.117417 +v -3.187505 1.562501 6.062500 +v -3.054923 1.562501 6.117417 +v -3.000005 1.562501 6.250000 +v -3.054923 1.562501 6.382583 +v -3.187505 1.562501 6.375000 +v -3.275893 1.562501 6.338388 +v -3.312505 1.562501 6.250000 +v -3.275893 1.562501 6.161612 +v -3.187505 1.562501 6.125000 +v -3.099117 1.562501 6.161612 +v -3.062505 1.562501 6.250000 +v -3.099117 1.562501 6.338388 +v -3.187506 0.875001 6.437500 +v -3.320087 0.875001 6.382583 +v -3.375006 0.875001 6.250000 +v -3.320087 0.875001 6.117417 +v -3.187506 0.875001 6.062500 +v -3.054923 0.875001 6.117417 +v -3.000006 0.875001 6.250000 +v -3.054923 0.875001 6.382583 +v -3.187506 0.875001 6.375000 +v -3.275893 0.875001 6.338388 +v -3.312506 0.875001 6.250000 +v -3.275893 0.875001 6.161612 +v -3.187506 0.875001 6.125000 +v -3.099117 0.875001 6.161612 +v -3.062506 0.875001 6.250000 +v -3.099117 0.875001 6.338388 +v -3.187505 1.562501 7.875000 +v -3.275893 1.562501 7.838388 +v -3.312505 1.562501 7.750000 +v -3.275893 1.562501 7.661612 +v -3.187505 1.562501 7.625000 +v -3.099117 1.562501 7.661612 +v -3.062505 1.562501 7.750000 +v -3.099117 1.562501 7.838388 +v -3.187506 0.875001 7.875000 +v -3.275893 0.875001 7.838388 +v -3.312506 0.875001 7.750000 +v -3.275893 0.875001 7.661612 +v -3.187506 0.875001 7.625000 +v -3.099117 0.875001 7.661612 +v -3.062506 0.875001 7.750000 +v -3.099117 0.875001 7.838388 +v -3.187505 1.562501 7.937500 +v -3.320088 1.562501 7.882583 +v -3.375005 1.562501 7.750000 +v -3.320088 1.562501 7.617417 +v -3.187505 1.562501 7.562500 +v -3.054923 1.562501 7.617417 +v -3.000005 1.562501 7.750000 +v -3.054923 1.562501 7.882583 +v -3.187506 0.875001 7.937500 +v -3.320087 0.875001 7.882583 +v -3.375006 0.875001 7.750000 +v -3.320087 0.875001 7.617417 +v -3.187506 0.875001 7.562500 +v -3.054923 0.875001 7.617417 +v -3.000006 0.875001 7.750000 +v -3.054923 0.875001 7.882583 +v 3.187506 1.562501 7.562500 +v 3.320088 1.562501 7.617417 +v 3.375006 1.562501 7.750000 +v 3.320088 1.562501 7.882583 +v 3.187506 1.562501 7.937500 +v 3.054923 1.562501 7.882583 +v 3.000006 1.562501 7.750000 +v 3.054923 1.562501 7.617417 +v 3.187506 1.562501 7.625000 +v 3.275894 1.562501 7.661612 +v 3.312506 1.562501 7.750000 +v 3.275894 1.562501 7.838388 +v 3.187506 1.562501 7.875000 +v 3.099118 1.562501 7.838388 +v 3.062506 1.562501 7.750000 +v 3.099118 1.562501 7.661612 +v 3.187506 0.875000 7.562500 +v 3.320088 0.875000 7.617417 +v 3.375006 0.875000 7.750000 +v 3.320088 0.875000 7.882583 +v 3.187506 0.875000 7.937500 +v 3.054923 0.875000 7.882583 +v 3.000006 0.875000 7.750000 +v 3.054923 0.875000 7.617417 +v 3.187506 0.875000 7.625000 +v 3.275894 0.875000 7.661612 +v 3.312506 0.875000 7.750000 +v 3.275894 0.875000 7.838388 +v 3.187506 0.875000 7.875000 +v 3.099118 0.875000 7.838388 +v 3.062506 0.875000 7.750000 +v 3.099118 0.875000 7.661612 +v 3.187506 1.562501 6.125000 +v 3.275894 1.562501 6.161612 +v 3.312506 1.562501 6.250000 +v 3.275894 1.562501 6.338388 +v 3.187506 1.562501 6.375000 +v 3.099118 1.562501 6.338388 +v 3.062506 1.562501 6.250000 +v 3.099118 1.562501 6.161612 +v 3.187506 0.875000 6.125000 +v 3.275894 0.875000 6.161612 +v 3.312506 0.875000 6.250000 +v 3.275894 0.875000 6.338388 +v 3.187506 0.875000 6.375000 +v 3.099118 0.875000 6.338388 +v 3.062506 0.875000 6.250000 +v 3.099118 0.875000 6.161612 +v 3.187506 1.562501 6.062500 +v 3.320088 1.562501 6.117417 +v 3.375006 1.562501 6.250000 +v 3.320088 1.562501 6.382583 +v 3.187506 1.562501 6.437500 +v 3.054923 1.562501 6.382583 +v 3.000006 1.562501 6.250000 +v 3.054923 1.562501 6.117417 +v 3.187506 0.875000 6.062500 +v 3.320088 0.875000 6.117417 +v 3.375006 0.875000 6.250000 +v 3.320088 0.875000 6.382583 +v 3.187506 0.875000 6.437500 +v 3.054923 0.875000 6.382583 +v 3.000006 0.875000 6.250000 +v 3.054923 0.875000 6.117417 +v -3.187505 1.562501 6.437500 +v -3.320088 1.562501 6.382583 +v -3.375005 1.562501 6.250000 +v -3.320088 1.562501 6.117417 +v -3.187505 1.562501 6.062500 +v -3.054923 1.562501 6.117417 +v -3.000005 1.562501 6.250000 +v -3.054923 1.562501 6.382583 +v -3.187506 0.875001 6.437500 +v -3.320087 0.875001 6.382583 +v -3.375006 0.875001 6.250000 +v -3.320087 0.875001 6.117417 +v -3.187506 0.875001 6.062500 +v -3.054923 0.875001 6.117417 +v -3.000006 0.875001 6.250000 +v -3.054923 0.875001 6.382583 +v -3.187505 1.562501 7.937500 +v -3.320088 1.562501 7.882583 +v -3.375005 1.562501 7.750000 +v -3.320088 1.562501 7.617417 +v -3.187505 1.562501 7.562500 +v -3.054923 1.562501 7.617417 +v -3.000005 1.562501 7.750000 +v -3.054923 1.562501 7.882583 +v -3.187506 0.875001 7.937500 +v -3.320087 0.875001 7.882583 +v -3.375006 0.875001 7.750000 +v -3.320087 0.875001 7.617417 +v -3.187506 0.875001 7.562500 +v -3.054923 0.875001 7.617417 +v -3.000006 0.875001 7.750000 +v -3.054923 0.875001 7.882583 +v 3.187506 1.562501 7.562500 +v 3.320088 1.562501 7.617417 +v 3.375006 1.562501 7.750000 +v 3.320088 1.562501 7.882583 +v 3.187506 1.562501 7.937500 +v 3.054923 1.562501 7.882583 +v 3.000006 1.562501 7.750000 +v 3.054923 1.562501 7.617417 +v 3.187506 0.875000 7.562500 +v 3.320088 0.875000 7.617417 +v 3.375006 0.875000 7.750000 +v 3.320088 0.875000 7.882583 +v 3.187506 0.875000 7.937500 +v 3.054923 0.875000 7.882583 +v 3.000006 0.875000 7.750000 +v 3.054923 0.875000 7.617417 +v 3.187506 1.562501 6.062500 +v 3.320088 1.562501 6.117417 +v 3.375006 1.562501 6.250000 +v 3.320088 1.562501 6.382583 +v 3.187506 1.562501 6.437500 +v 3.054923 1.562501 6.382583 +v 3.000006 1.562501 6.250000 +v 3.054923 1.562501 6.117417 +v 3.187506 0.875000 6.062500 +v 3.320088 0.875000 6.117417 +v 3.375006 0.875000 6.250000 +v 3.320088 0.875000 6.382583 +v 3.187506 0.875000 6.437500 +v 3.054923 0.875000 6.382583 +v 3.000006 0.875000 6.250000 +v 3.054923 0.875000 6.117417 +vt 0.837349 0.641860 +vt 0.846816 0.637209 +vt 0.846816 0.641860 +vt 0.821859 0.637209 +vt 0.830465 0.632558 +vt 0.831325 0.637209 +vt 0.837349 0.632558 +vt 0.837349 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.833046 0.646512 +vt 0.833907 0.651163 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.822719 0.641860 +vt 0.823580 0.646512 +vt 0.846816 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.641860 +vt 0.846816 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.632558 +vt 0.837349 0.637209 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.846816 0.646512 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.846816 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.846816 0.646512 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.832186 0.641860 +vt 0.821859 0.637209 +vt 0.830465 0.632558 +vt 0.820998 0.632558 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833046 0.646512 +vt 0.823580 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.820998 0.632558 +vt 0.846816 0.632558 +vt 0.846816 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.846816 0.632558 +vt 0.846816 0.632558 +vt 0.830465 0.632558 +vt 0.831325 0.637209 +vt 0.833907 0.651163 +vt 0.830465 0.632558 +vt 0.832186 0.641860 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vn -0.0000 -0.0000 -1.0000 +vn 0.7071 -0.0000 -0.7071 +vn 1.0000 -0.0000 -0.0000 +vn 0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0000 -0.0000 +vn -0.7071 0.0000 -0.7071 +s 1 +f 1725/2473/188 1742/2474/189 1741/2475/188 +f 1718/2476/189 1735/2477/190 1734/2478/189 +f 1727/2479/190 1742/2474/189 1726/2480/189 +f 1720/2481/191 1735/2482/190 1719/2483/190 +f 1728/2484/191 1743/2485/190 1727/2486/190 +f 1713/2487/192 1736/2488/191 1720/2481/191 +f 1714/2489/193 1729/2490/192 1713/2487/192 +f 1721/2491/192 1744/2492/191 1728/2484/191 +f 1722/2493/193 1737/2494/192 1721/2491/192 +f 1715/2495/194 1730/2496/193 1714/2489/193 +f 1723/2497/194 1738/2498/193 1722/2493/193 +f 1715/2495/194 1732/2499/195 1731/2500/194 +f 1724/2501/195 1739/2502/194 1723/2497/194 +f 1717/2503/188 1732/2499/195 1716/2504/195 +f 1725/2473/188 1740/2505/195 1724/2501/195 +f 1718/2476/189 1733/2506/188 1717/2503/188 +f 1749/2507/188 1758/2508/189 1757/2509/188 +f 1751/2510/190 1758/2508/189 1750/2511/189 +f 1752/2512/191 1759/2513/190 1751/2514/190 +f 1745/2515/192 1760/2516/191 1752/2512/191 +f 1746/2517/193 1753/2518/192 1745/2515/192 +f 1747/2519/194 1754/2520/193 1746/2517/193 +f 1748/2521/195 1755/2522/194 1747/2519/194 +f 1749/2507/188 1756/2523/195 1748/2521/195 +f 1767/2524/190 1774/2525/189 1766/2526/189 +f 1768/2527/191 1775/2528/190 1767/2529/190 +f 1761/2530/192 1776/2531/191 1768/2527/191 +f 1762/2532/193 1769/2533/192 1761/2530/192 +f 1763/2534/194 1770/2535/193 1762/2532/193 +f 1764/2536/195 1771/2537/194 1763/2534/194 +f 1765/2538/188 1772/2539/195 1764/2536/195 +f 1766/2526/189 1773/2540/188 1765/2538/188 +f 1790/2541/193 1805/2542/192 1789/2543/192 +f 1783/2544/194 1798/2545/193 1782/2546/193 +f 1791/2547/194 1806/2548/193 1790/2541/193 +f 1784/2549/195 1799/2550/194 1783/2551/194 +f 1792/2552/195 1807/2553/194 1791/2554/194 +f 1777/2555/188 1800/2556/195 1784/2549/195 +f 1778/2557/189 1793/2558/188 1777/2555/188 +f 1785/2559/188 1808/2560/195 1792/2552/195 +f 1786/2561/189 1801/2562/188 1785/2559/188 +f 1779/2563/190 1794/2564/189 1778/2557/189 +f 1787/2565/190 1802/2566/189 1786/2561/189 +f 1780/2567/191 1795/2568/190 1779/2563/190 +f 1788/2569/191 1803/2570/190 1787/2565/190 +f 1781/2571/192 1796/2572/191 1780/2567/191 +f 1789/2543/192 1804/2573/191 1788/2569/191 +f 1782/2546/193 1797/2574/192 1781/2571/192 +f 1814/2575/193 1821/2576/192 1813/2577/192 +f 1815/2578/194 1822/2579/193 1814/2575/193 +f 1816/2580/195 1823/2581/194 1815/2582/194 +f 1809/2583/188 1824/2584/195 1816/2580/195 +f 1810/2585/189 1817/2586/188 1809/2583/188 +f 1811/2587/190 1818/2588/189 1810/2585/189 +f 1812/2589/191 1819/2590/190 1811/2587/190 +f 1813/2577/192 1820/2591/191 1812/2589/191 +f 1831/2592/194 1838/2593/193 1830/2594/193 +f 1832/2595/195 1839/2596/194 1831/2597/194 +f 1825/2598/188 1840/2599/195 1832/2595/195 +f 1826/2600/189 1833/2601/188 1825/2598/188 +f 1827/2602/190 1834/2603/189 1826/2600/189 +f 1828/2604/191 1835/2605/190 1827/2602/190 +f 1829/2606/192 1836/2607/191 1828/2604/191 +f 1830/2594/193 1837/2608/192 1829/2606/192 +f 1846/2609/193 1855/2610/194 1847/2611/194 +f 1855/2612/194 1848/2613/195 1847/2614/194 +f 1856/2615/195 1841/2616/188 1848/2613/195 +f 1849/2617/188 1842/2618/189 1841/2616/188 +f 1850/2619/189 1843/2620/190 1842/2618/189 +f 1843/2620/190 1852/2621/191 1844/2622/191 +f 1852/2621/191 1845/2623/192 1844/2622/191 +f 1853/2624/192 1846/2609/193 1845/2623/192 +f 1870/2625/193 1863/2626/194 1862/2627/193 +f 1871/2628/194 1864/2629/195 1863/2630/194 +f 1872/2631/195 1857/2632/188 1864/2629/195 +f 1865/2633/188 1858/2634/189 1857/2632/188 +f 1866/2635/189 1859/2636/190 1858/2634/189 +f 1867/2637/190 1860/2638/191 1859/2636/190 +f 1868/2639/191 1861/2640/192 1860/2638/191 +f 1861/2640/192 1870/2625/193 1862/2627/193 +f 1886/2641/189 1879/2642/190 1878/2643/189 +f 1887/2644/190 1880/2645/191 1879/2646/190 +f 1888/2647/191 1873/2648/192 1880/2645/191 +f 1881/2649/192 1874/2650/193 1873/2648/192 +f 1882/2651/193 1875/2652/194 1874/2650/193 +f 1883/2653/194 1876/2654/195 1875/2652/194 +f 1884/2655/195 1877/2656/188 1876/2654/195 +f 1885/2657/188 1878/2643/189 1877/2656/188 +f 1902/2658/189 1895/2659/190 1894/2660/189 +f 1903/2661/190 1896/2662/191 1895/2663/190 +f 1904/2664/191 1889/2665/192 1896/2662/191 +f 1897/2666/192 1890/2667/193 1889/2665/192 +f 1898/2668/193 1891/2669/194 1890/2667/193 +f 1899/2670/194 1892/2671/195 1891/2669/194 +f 1900/2672/195 1893/2673/188 1892/2671/195 +f 1901/2674/188 1894/2660/189 1893/2673/188 +f 1725/2473/188 1726/2480/189 1742/2474/189 +f 1718/2476/189 1719/2675/190 1735/2477/190 +f 1727/2479/190 1743/2676/190 1742/2474/189 +f 1720/2481/191 1736/2488/191 1735/2482/190 +f 1728/2484/191 1744/2492/191 1743/2485/190 +f 1713/2487/192 1729/2490/192 1736/2488/191 +f 1714/2489/193 1730/2496/193 1729/2490/192 +f 1721/2491/192 1737/2494/192 1744/2492/191 +f 1722/2493/193 1738/2498/193 1737/2494/192 +f 1715/2495/194 1731/2500/194 1730/2496/193 +f 1723/2497/194 1739/2502/194 1738/2498/193 +f 1715/2495/194 1716/2504/195 1732/2499/195 +f 1724/2501/195 1740/2505/195 1739/2502/194 +f 1717/2503/188 1733/2506/188 1732/2499/195 +f 1725/2473/188 1741/2475/188 1740/2505/195 +f 1718/2476/189 1734/2478/189 1733/2506/188 +f 1749/2507/188 1750/2511/189 1758/2508/189 +f 1751/2510/190 1759/2677/190 1758/2508/189 +f 1752/2512/191 1760/2516/191 1759/2513/190 +f 1745/2515/192 1753/2518/192 1760/2516/191 +f 1746/2517/193 1754/2520/193 1753/2518/192 +f 1747/2519/194 1755/2522/194 1754/2520/193 +f 1748/2521/195 1756/2523/195 1755/2522/194 +f 1749/2507/188 1757/2509/188 1756/2523/195 +f 1767/2524/190 1775/2678/190 1774/2525/189 +f 1768/2527/191 1776/2531/191 1775/2528/190 +f 1761/2530/192 1769/2533/192 1776/2531/191 +f 1762/2532/193 1770/2535/193 1769/2533/192 +f 1763/2534/194 1771/2537/194 1770/2535/193 +f 1764/2536/195 1772/2539/195 1771/2537/194 +f 1765/2538/188 1773/2540/188 1772/2539/195 +f 1766/2526/189 1774/2525/189 1773/2540/188 +f 1790/2541/193 1806/2548/193 1805/2542/192 +f 1783/2544/194 1799/2679/194 1798/2545/193 +f 1791/2547/194 1807/2680/194 1806/2548/193 +f 1784/2549/195 1800/2556/195 1799/2550/194 +f 1792/2552/195 1808/2560/195 1807/2553/194 +f 1777/2555/188 1793/2558/188 1800/2556/195 +f 1778/2557/189 1794/2564/189 1793/2558/188 +f 1785/2559/188 1801/2562/188 1808/2560/195 +f 1786/2561/189 1802/2566/189 1801/2562/188 +f 1779/2563/190 1795/2568/190 1794/2564/189 +f 1787/2565/190 1803/2570/190 1802/2566/189 +f 1780/2567/191 1796/2572/191 1795/2568/190 +f 1788/2569/191 1804/2573/191 1803/2570/190 +f 1781/2571/192 1797/2574/192 1796/2572/191 +f 1789/2543/192 1805/2542/192 1804/2573/191 +f 1782/2546/193 1798/2545/193 1797/2574/192 +f 1814/2575/193 1822/2579/193 1821/2576/192 +f 1815/2578/194 1823/2681/194 1822/2579/193 +f 1816/2580/195 1824/2584/195 1823/2581/194 +f 1809/2583/188 1817/2586/188 1824/2584/195 +f 1810/2585/189 1818/2588/189 1817/2586/188 +f 1811/2587/190 1819/2590/190 1818/2588/189 +f 1812/2589/191 1820/2591/191 1819/2590/190 +f 1813/2577/192 1821/2576/192 1820/2591/191 +f 1831/2592/194 1839/2682/194 1838/2593/193 +f 1832/2595/195 1840/2599/195 1839/2596/194 +f 1825/2598/188 1833/2601/188 1840/2599/195 +f 1826/2600/189 1834/2603/189 1833/2601/188 +f 1827/2602/190 1835/2605/190 1834/2603/189 +f 1828/2604/191 1836/2607/191 1835/2605/190 +f 1829/2606/192 1837/2608/192 1836/2607/191 +f 1830/2594/193 1838/2593/193 1837/2608/192 +f 1846/2609/193 1854/2683/193 1855/2610/194 +f 1855/2612/194 1856/2615/195 1848/2613/195 +f 1856/2615/195 1849/2617/188 1841/2616/188 +f 1849/2617/188 1850/2619/189 1842/2618/189 +f 1850/2619/189 1851/2684/190 1843/2620/190 +f 1843/2620/190 1851/2684/190 1852/2621/191 +f 1852/2621/191 1853/2624/192 1845/2623/192 +f 1853/2624/192 1854/2683/193 1846/2609/193 +f 1870/2625/193 1871/2685/194 1863/2626/194 +f 1871/2628/194 1872/2631/195 1864/2629/195 +f 1872/2631/195 1865/2633/188 1857/2632/188 +f 1865/2633/188 1866/2635/189 1858/2634/189 +f 1866/2635/189 1867/2637/190 1859/2636/190 +f 1867/2637/190 1868/2639/191 1860/2638/191 +f 1868/2639/191 1869/2686/192 1861/2640/192 +f 1861/2640/192 1869/2686/192 1870/2625/193 +f 1886/2641/189 1887/2687/190 1879/2642/190 +f 1887/2644/190 1888/2647/191 1880/2645/191 +f 1888/2647/191 1881/2649/192 1873/2648/192 +f 1881/2649/192 1882/2651/193 1874/2650/193 +f 1882/2651/193 1883/2653/194 1875/2652/194 +f 1883/2653/194 1884/2655/195 1876/2654/195 +f 1884/2655/195 1885/2657/188 1877/2656/188 +f 1885/2657/188 1886/2641/189 1878/2643/189 +f 1902/2658/189 1903/2688/190 1895/2659/190 +f 1903/2661/190 1904/2664/191 1896/2662/191 +f 1904/2664/191 1897/2666/192 1889/2665/192 +f 1897/2666/192 1898/2668/193 1890/2667/193 +f 1898/2668/193 1899/2670/194 1891/2669/194 +f 1899/2670/194 1900/2672/195 1892/2671/195 +f 1900/2672/195 1901/2674/188 1893/2673/188 +f 1901/2674/188 1902/2658/189 1894/2660/189 +o SuspensionTop +v -3.187505 5.437495 7.562500 +v -3.320088 5.437495 7.617417 +v -3.375005 5.437495 7.750000 +v -3.320088 5.437495 7.882583 +v -3.187505 5.437495 7.937500 +v -3.054923 5.437495 7.882583 +v -3.000005 5.437495 7.750000 +v -3.054923 5.437495 7.617417 +v -3.187505 5.437495 7.625000 +v -3.275893 5.437495 7.661612 +v -3.312505 5.437495 7.750000 +v -3.275893 5.437495 7.838388 +v -3.187505 5.437495 7.875000 +v -3.099117 5.437495 7.838388 +v -3.062505 5.437495 7.750000 +v -3.099117 5.437495 7.661612 +v -3.187505 6.124996 7.562500 +v -3.320088 6.124996 7.617417 +v -3.375005 6.124996 7.750000 +v -3.320088 6.124996 7.882583 +v -3.187505 6.124996 7.937500 +v -3.054923 6.124996 7.882583 +v -3.000005 6.124996 7.750000 +v -3.054923 6.124996 7.617417 +v -3.187505 6.124996 7.625000 +v -3.275893 6.124996 7.661612 +v -3.312505 6.124996 7.750000 +v -3.275893 6.124996 7.838388 +v -3.187505 6.124996 7.875000 +v -3.099117 6.124996 7.838388 +v -3.062505 6.124996 7.750000 +v -3.099117 6.124996 7.661612 +v -3.187505 5.437495 6.125000 +v -3.275893 5.437495 6.161612 +v -3.312505 5.437495 6.250000 +v -3.275893 5.437495 6.338388 +v -3.187505 5.437495 6.375000 +v -3.099117 5.437495 6.338388 +v -3.062505 5.437495 6.250000 +v -3.099117 5.437495 6.161612 +v -3.187505 6.124996 6.125000 +v -3.275893 6.124996 6.161612 +v -3.312505 6.124996 6.250000 +v -3.275893 6.124996 6.338388 +v -3.187505 6.124996 6.375000 +v -3.099117 6.124996 6.338388 +v -3.062505 6.124996 6.250000 +v -3.099117 6.124996 6.161612 +v -3.187505 5.437495 6.062500 +v -3.320088 5.437495 6.117417 +v -3.375005 5.437495 6.250000 +v -3.320088 5.437495 6.382583 +v -3.187505 5.437495 6.437500 +v -3.054923 5.437495 6.382583 +v -3.000005 5.437495 6.250000 +v -3.054923 5.437495 6.117417 +v -3.187505 6.124996 6.062500 +v -3.320088 6.124996 6.117417 +v -3.375005 6.124996 6.250000 +v -3.320088 6.124996 6.382583 +v -3.187505 6.124996 6.437500 +v -3.054923 6.124996 6.382583 +v -3.000005 6.124996 6.250000 +v -3.054923 6.124996 6.117417 +v 3.187506 5.437495 6.437500 +v 3.320088 5.437495 6.382583 +v 3.375006 5.437495 6.250000 +v 3.320088 5.437495 6.117417 +v 3.187506 5.437495 6.062500 +v 3.054923 5.437495 6.117417 +v 3.000006 5.437495 6.250000 +v 3.054923 5.437495 6.382583 +v 3.187506 5.437495 6.375000 +v 3.275894 5.437495 6.338388 +v 3.312506 5.437495 6.250000 +v 3.275894 5.437495 6.161612 +v 3.187506 5.437495 6.125000 +v 3.099118 5.437495 6.161612 +v 3.062506 5.437495 6.250000 +v 3.099118 5.437495 6.338388 +v 3.187507 6.124994 6.437500 +v 3.320088 6.124994 6.382583 +v 3.375007 6.124994 6.250000 +v 3.320088 6.124994 6.117417 +v 3.187507 6.124994 6.062500 +v 3.054924 6.124994 6.117417 +v 3.000007 6.124994 6.250000 +v 3.054924 6.124994 6.382583 +v 3.187507 6.124994 6.375000 +v 3.275894 6.124994 6.338388 +v 3.312507 6.124994 6.250000 +v 3.275894 6.124994 6.161612 +v 3.187507 6.124994 6.125000 +v 3.099118 6.124994 6.161612 +v 3.062507 6.124994 6.250000 +v 3.099118 6.124994 6.338388 +v 3.187506 5.437495 7.875000 +v 3.275894 5.437495 7.838388 +v 3.312506 5.437495 7.750000 +v 3.275894 5.437495 7.661612 +v 3.187506 5.437495 7.625000 +v 3.099118 5.437495 7.661612 +v 3.062506 5.437495 7.750000 +v 3.099118 5.437495 7.838388 +v 3.187507 6.124994 7.875000 +v 3.275894 6.124994 7.838388 +v 3.312507 6.124994 7.750000 +v 3.275894 6.124994 7.661612 +v 3.187507 6.124994 7.625000 +v 3.099118 6.124994 7.661612 +v 3.062507 6.124994 7.750000 +v 3.099118 6.124994 7.838388 +v 3.187506 5.437495 7.937500 +v 3.320088 5.437495 7.882583 +v 3.375006 5.437495 7.750000 +v 3.320088 5.437495 7.617417 +v 3.187506 5.437495 7.562500 +v 3.054923 5.437495 7.617417 +v 3.000006 5.437495 7.750000 +v 3.054923 5.437495 7.882583 +v 3.187507 6.124994 7.937500 +v 3.320088 6.124994 7.882583 +v 3.375007 6.124994 7.750000 +v 3.320088 6.124994 7.617417 +v 3.187507 6.124994 7.562500 +v 3.054924 6.124994 7.617417 +v 3.000007 6.124994 7.750000 +v 3.054924 6.124994 7.882583 +v -3.187505 5.437495 7.562500 +v -3.320088 5.437495 7.617417 +v -3.375005 5.437495 7.750000 +v -3.320088 5.437495 7.882583 +v -3.187505 5.437495 7.937500 +v -3.054923 5.437495 7.882583 +v -3.000005 5.437495 7.750000 +v -3.054923 5.437495 7.617417 +v -3.187505 6.124996 7.562500 +v -3.320088 6.124996 7.617417 +v -3.375005 6.124996 7.750000 +v -3.320088 6.124996 7.882583 +v -3.187505 6.124996 7.937500 +v -3.054923 6.124996 7.882583 +v -3.000005 6.124996 7.750000 +v -3.054923 6.124996 7.617417 +v -3.187505 5.437495 6.062500 +v -3.320088 5.437495 6.117417 +v -3.375005 5.437495 6.250000 +v -3.320088 5.437495 6.382583 +v -3.187505 5.437495 6.437500 +v -3.054923 5.437495 6.382583 +v -3.000005 5.437495 6.250000 +v -3.054923 5.437495 6.117417 +v -3.187505 6.124996 6.062500 +v -3.320088 6.124996 6.117417 +v -3.375005 6.124996 6.250000 +v -3.320088 6.124996 6.382583 +v -3.187505 6.124996 6.437500 +v -3.054923 6.124996 6.382583 +v -3.000005 6.124996 6.250000 +v -3.054923 6.124996 6.117417 +v 3.187506 5.437495 6.437500 +v 3.320088 5.437495 6.382583 +v 3.375006 5.437495 6.250000 +v 3.320088 5.437495 6.117417 +v 3.187506 5.437495 6.062500 +v 3.054923 5.437495 6.117417 +v 3.000006 5.437495 6.250000 +v 3.054923 5.437495 6.382583 +v 3.187507 6.124994 6.437500 +v 3.320088 6.124994 6.382583 +v 3.375007 6.124994 6.250000 +v 3.320088 6.124994 6.117417 +v 3.187507 6.124994 6.062500 +v 3.054924 6.124994 6.117417 +v 3.000007 6.124994 6.250000 +v 3.054924 6.124994 6.382583 +v 3.187506 5.437495 7.937500 +v 3.320088 5.437495 7.882583 +v 3.375006 5.437495 7.750000 +v 3.320088 5.437495 7.617417 +v 3.187506 5.437495 7.562500 +v 3.054923 5.437495 7.617417 +v 3.000006 5.437495 7.750000 +v 3.054923 5.437495 7.882583 +v 3.187507 6.124994 7.937500 +v 3.320088 6.124994 7.882583 +v 3.375007 6.124994 7.750000 +v 3.320088 6.124994 7.617417 +v 3.187507 6.124994 7.562500 +v 3.054924 6.124994 7.617417 +v 3.000007 6.124994 7.750000 +v 3.054924 6.124994 7.882583 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.846816 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.641860 +vt 0.837349 0.632558 +vt 0.846816 0.637209 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.846816 0.646512 +vt 0.820998 0.632558 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.823580 0.646512 +vt 0.833907 0.651163 +vt 0.822719 0.641860 +vt 0.833046 0.646512 +vt 0.832186 0.641860 +vt 0.837349 0.641860 +vt 0.846816 0.637209 +vt 0.846816 0.641860 +vt 0.821859 0.637209 +vt 0.830465 0.632558 +vt 0.831325 0.637209 +vt 0.837349 0.637209 +vt 0.846816 0.632558 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.833046 0.646512 +vt 0.833907 0.651163 +vt 0.837349 0.646512 +vt 0.846816 0.651163 +vt 0.823580 0.646512 +vt 0.832186 0.641860 +vt 0.846816 0.646512 +vt 0.822719 0.641860 +vt 0.837349 0.641860 +vt 0.846816 0.637209 +vt 0.846816 0.641860 +vt 0.837349 0.637209 +vt 0.846816 0.632558 +vt 0.837349 0.665116 +vt 0.846816 0.669767 +vt 0.837349 0.669767 +vt 0.837349 0.660465 +vt 0.846816 0.665116 +vt 0.837349 0.655814 +vt 0.846816 0.660465 +vt 0.837349 0.651163 +vt 0.846816 0.655814 +vt 0.846816 0.646512 +vt 0.846816 0.651163 +vt 0.837349 0.646512 +vt 0.821859 0.637209 +vt 0.830465 0.632558 +vt 0.831325 0.637209 +vt 0.827022 0.665116 +vt 0.837349 0.669767 +vt 0.827883 0.669767 +vt 0.826162 0.660465 +vt 0.836489 0.665116 +vt 0.825301 0.655814 +vt 0.835628 0.660465 +vt 0.824441 0.651163 +vt 0.834768 0.655814 +vt 0.833046 0.646512 +vt 0.833907 0.651163 +vt 0.822719 0.641860 +vt 0.823580 0.646512 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.831325 0.637209 +vt 0.820998 0.632558 +vt 0.821859 0.637209 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833907 0.651163 +vt 0.823580 0.646512 +vt 0.833046 0.646512 +vt 0.822719 0.641860 +vt 0.832186 0.641860 +vt 0.821859 0.637209 +vt 0.830465 0.632558 +vt 0.820998 0.632558 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833046 0.646512 +vt 0.823580 0.646512 +vt 0.832186 0.641860 +vt 0.822719 0.641860 +vt 0.831325 0.637209 +vt 0.821859 0.637209 +vt 0.830465 0.632558 +vt 0.820998 0.632558 +vt 0.837349 0.669767 +vt 0.827022 0.665116 +vt 0.827883 0.669767 +vt 0.836489 0.665116 +vt 0.826162 0.660465 +vt 0.835628 0.660465 +vt 0.825301 0.655814 +vt 0.834768 0.655814 +vt 0.824441 0.651163 +vt 0.833046 0.646512 +vt 0.823580 0.646512 +vt 0.822719 0.641860 +vt 0.831325 0.637209 +vt 0.830465 0.632558 +vt 0.846816 0.632558 +vt 0.846816 0.632558 +vt 0.830465 0.632558 +vt 0.820998 0.632558 +vt 0.837349 0.632558 +vt 0.837349 0.632558 +vt 0.820998 0.632558 +vt 0.830465 0.632558 +vt 0.830465 0.632558 +vt 0.833907 0.651163 +vt 0.833907 0.651163 +vt 0.832186 0.641860 +vn 0.7071 0.0000 0.7071 +vn -0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn -0.7071 0.0000 -0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +s 1 +f 1918/2689/196 1933/2690/197 1917/2691/197 +f 1911/2692/198 1926/2693/196 1910/2694/196 +f 1919/2695/198 1934/2696/196 1918/2689/196 +f 1912/2697/199 1927/2698/198 1911/2699/198 +f 1920/2700/199 1935/2701/198 1919/2702/198 +f 1905/2703/200 1928/2704/199 1912/2697/199 +f 1906/2705/201 1921/2706/200 1905/2703/200 +f 1913/2707/200 1936/2708/199 1920/2700/199 +f 1914/2709/201 1929/2710/200 1913/2707/200 +f 1907/2711/202 1922/2712/201 1906/2705/201 +f 1915/2713/202 1930/2714/201 1914/2709/201 +f 1908/2715/203 1923/2716/202 1907/2711/202 +f 1916/2717/203 1931/2718/202 1915/2713/202 +f 1909/2719/197 1924/2720/203 1908/2715/203 +f 1917/2691/197 1932/2721/203 1916/2717/203 +f 1910/2694/196 1925/2722/197 1909/2719/197 +f 1942/2723/196 1949/2724/197 1941/2725/197 +f 1943/2726/198 1950/2727/196 1942/2723/196 +f 1944/2728/199 1951/2729/198 1943/2730/198 +f 1937/2731/200 1952/2732/199 1944/2728/199 +f 1938/2733/201 1945/2734/200 1937/2731/200 +f 1939/2735/202 1946/2736/201 1938/2733/201 +f 1940/2737/203 1947/2738/202 1939/2735/202 +f 1941/2725/197 1948/2739/203 1940/2737/203 +f 1959/2740/198 1966/2741/196 1958/2742/196 +f 1960/2743/199 1967/2744/198 1959/2745/198 +f 1953/2746/200 1968/2747/199 1960/2743/199 +f 1954/2748/201 1961/2749/200 1953/2746/200 +f 1955/2750/202 1962/2751/201 1954/2748/201 +f 1956/2752/203 1963/2753/202 1955/2750/202 +f 1957/2754/197 1964/2755/203 1956/2752/203 +f 1958/2742/196 1965/2756/197 1957/2754/197 +f 1981/2757/200 1998/2758/201 1997/2759/200 +f 1974/2760/201 1991/2761/202 1990/2762/201 +f 1982/2763/201 1999/2764/202 1998/2758/201 +f 1976/2765/203 1991/2766/202 1975/2767/202 +f 1984/2768/203 1999/2769/202 1983/2770/202 +f 1969/2771/197 1992/2772/203 1976/2765/203 +f 1970/2773/196 1985/2774/197 1969/2771/197 +f 1977/2775/197 2000/2776/203 1984/2768/203 +f 1978/2777/196 1993/2778/197 1977/2775/197 +f 1971/2779/198 1986/2780/196 1970/2773/196 +f 1979/2781/198 1994/2782/196 1978/2777/196 +f 1971/2779/198 1988/2783/199 1987/2784/198 +f 1980/2785/199 1995/2786/198 1979/2781/198 +f 1972/2787/199 1989/2788/200 1988/2783/199 +f 1980/2785/199 1997/2759/200 1996/2789/199 +f 1973/2790/200 1990/2762/201 1989/2788/200 +f 2005/2791/200 2014/2792/201 2013/2793/200 +f 2006/2794/201 2015/2795/202 2014/2792/201 +f 2008/2796/203 2015/2797/202 2007/2798/202 +f 2001/2799/197 2016/2800/203 2008/2796/203 +f 2002/2801/196 2009/2802/197 2001/2799/197 +f 2003/2803/198 2010/2804/196 2002/2801/196 +f 2003/2803/198 2012/2805/199 2011/2806/198 +f 2004/2807/199 2013/2793/200 2012/2805/199 +f 2022/2808/201 2031/2809/202 2030/2810/201 +f 2024/2811/203 2031/2812/202 2023/2813/202 +f 2017/2814/197 2032/2815/203 2024/2811/203 +f 2018/2816/196 2025/2817/197 2017/2814/197 +f 2019/2818/198 2026/2819/196 2018/2816/196 +f 2019/2818/198 2028/2820/199 2027/2821/198 +f 2021/2822/200 2028/2820/199 2020/2823/199 +f 2021/2822/200 2030/2810/201 2029/2824/200 +f 2046/2825/201 2039/2826/202 2038/2827/201 +f 2047/2828/202 2040/2829/203 2039/2830/202 +f 2048/2831/203 2033/2832/197 2040/2829/203 +f 2041/2833/197 2034/2834/196 2033/2832/197 +f 2042/2835/196 2035/2836/198 2034/2834/196 +f 2043/2837/198 2036/2838/199 2035/2836/198 +f 2044/2839/199 2037/2840/200 2036/2838/199 +f 2045/2841/200 2038/2827/201 2037/2840/200 +f 2062/2842/201 2055/2843/202 2054/2844/201 +f 2063/2845/202 2056/2846/203 2055/2847/202 +f 2064/2848/203 2049/2849/197 2056/2846/203 +f 2057/2850/197 2050/2851/196 2049/2849/197 +f 2058/2852/196 2051/2853/198 2050/2851/196 +f 2059/2854/198 2052/2855/199 2051/2853/198 +f 2060/2856/199 2053/2857/200 2052/2855/199 +f 2061/2858/200 2054/2844/201 2053/2857/200 +f 2070/2859/196 2079/2860/198 2071/2861/198 +f 2079/2862/198 2072/2863/199 2071/2864/198 +f 2080/2865/199 2065/2866/200 2072/2863/199 +f 2073/2867/200 2066/2868/201 2065/2866/200 +f 2074/2869/201 2067/2870/202 2066/2868/201 +f 2067/2870/202 2076/2871/203 2068/2872/203 +f 2068/2872/203 2077/2873/197 2069/2874/197 +f 2069/2874/197 2078/2875/196 2070/2859/196 +f 2086/2876/196 2095/2877/198 2087/2878/198 +f 2095/2879/198 2088/2880/199 2087/2881/198 +f 2096/2882/199 2081/2883/200 2088/2880/199 +f 2089/2884/200 2082/2885/201 2081/2883/200 +f 2090/2886/201 2083/2887/202 2082/2885/201 +f 2083/2887/202 2092/2888/203 2084/2889/203 +f 2092/2888/203 2085/2890/197 2084/2889/203 +f 2085/2890/197 2094/2891/196 2086/2876/196 +f 1918/2689/196 1934/2696/196 1933/2690/197 +f 1911/2692/198 1927/2892/198 1926/2693/196 +f 1919/2695/198 1935/2893/198 1934/2696/196 +f 1912/2697/199 1928/2704/199 1927/2698/198 +f 1920/2700/199 1936/2708/199 1935/2701/198 +f 1905/2703/200 1921/2706/200 1928/2704/199 +f 1906/2705/201 1922/2712/201 1921/2706/200 +f 1913/2707/200 1929/2710/200 1936/2708/199 +f 1914/2709/201 1930/2714/201 1929/2710/200 +f 1907/2711/202 1923/2716/202 1922/2712/201 +f 1915/2713/202 1931/2718/202 1930/2714/201 +f 1908/2715/203 1924/2720/203 1923/2716/202 +f 1916/2717/203 1932/2721/203 1931/2718/202 +f 1909/2719/197 1925/2722/197 1924/2720/203 +f 1917/2691/197 1933/2690/197 1932/2721/203 +f 1910/2694/196 1926/2693/196 1925/2722/197 +f 1942/2723/196 1950/2727/196 1949/2724/197 +f 1943/2726/198 1951/2894/198 1950/2727/196 +f 1944/2728/199 1952/2732/199 1951/2729/198 +f 1937/2731/200 1945/2734/200 1952/2732/199 +f 1938/2733/201 1946/2736/201 1945/2734/200 +f 1939/2735/202 1947/2738/202 1946/2736/201 +f 1940/2737/203 1948/2739/203 1947/2738/202 +f 1941/2725/197 1949/2724/197 1948/2739/203 +f 1959/2740/198 1967/2895/198 1966/2741/196 +f 1960/2743/199 1968/2747/199 1967/2744/198 +f 1953/2746/200 1961/2749/200 1968/2747/199 +f 1954/2748/201 1962/2751/201 1961/2749/200 +f 1955/2750/202 1963/2753/202 1962/2751/201 +f 1956/2752/203 1964/2755/203 1963/2753/202 +f 1957/2754/197 1965/2756/197 1964/2755/203 +f 1958/2742/196 1966/2741/196 1965/2756/197 +f 1981/2757/200 1982/2763/201 1998/2758/201 +f 1974/2760/201 1975/2896/202 1991/2761/202 +f 1982/2763/201 1983/2897/202 1999/2764/202 +f 1976/2765/203 1992/2772/203 1991/2766/202 +f 1984/2768/203 2000/2776/203 1999/2769/202 +f 1969/2771/197 1985/2774/197 1992/2772/203 +f 1970/2773/196 1986/2780/196 1985/2774/197 +f 1977/2775/197 1993/2778/197 2000/2776/203 +f 1978/2777/196 1994/2782/196 1993/2778/197 +f 1971/2779/198 1987/2784/198 1986/2780/196 +f 1979/2781/198 1995/2786/198 1994/2782/196 +f 1971/2779/198 1972/2787/199 1988/2783/199 +f 1980/2785/199 1996/2789/199 1995/2786/198 +f 1972/2787/199 1973/2790/200 1989/2788/200 +f 1980/2785/199 1981/2757/200 1997/2759/200 +f 1973/2790/200 1974/2760/201 1990/2762/201 +f 2005/2791/200 2006/2794/201 2014/2792/201 +f 2006/2794/201 2007/2898/202 2015/2795/202 +f 2008/2796/203 2016/2800/203 2015/2797/202 +f 2001/2799/197 2009/2802/197 2016/2800/203 +f 2002/2801/196 2010/2804/196 2009/2802/197 +f 2003/2803/198 2011/2806/198 2010/2804/196 +f 2003/2803/198 2004/2807/199 2012/2805/199 +f 2004/2807/199 2005/2791/200 2013/2793/200 +f 2022/2808/201 2023/2899/202 2031/2809/202 +f 2024/2811/203 2032/2815/203 2031/2812/202 +f 2017/2814/197 2025/2817/197 2032/2815/203 +f 2018/2816/196 2026/2819/196 2025/2817/197 +f 2019/2818/198 2027/2821/198 2026/2819/196 +f 2019/2818/198 2020/2823/199 2028/2820/199 +f 2021/2822/200 2029/2824/200 2028/2820/199 +f 2021/2822/200 2022/2808/201 2030/2810/201 +f 2046/2825/201 2047/2900/202 2039/2826/202 +f 2047/2828/202 2048/2831/203 2040/2829/203 +f 2048/2831/203 2041/2833/197 2033/2832/197 +f 2041/2833/197 2042/2835/196 2034/2834/196 +f 2042/2835/196 2043/2837/198 2035/2836/198 +f 2043/2837/198 2044/2839/199 2036/2838/199 +f 2044/2839/199 2045/2841/200 2037/2840/200 +f 2045/2841/200 2046/2825/201 2038/2827/201 +f 2062/2842/201 2063/2901/202 2055/2843/202 +f 2063/2845/202 2064/2848/203 2056/2846/203 +f 2064/2848/203 2057/2850/197 2049/2849/197 +f 2057/2850/197 2058/2852/196 2050/2851/196 +f 2058/2852/196 2059/2854/198 2051/2853/198 +f 2059/2854/198 2060/2856/199 2052/2855/199 +f 2060/2856/199 2061/2858/200 2053/2857/200 +f 2061/2858/200 2062/2842/201 2054/2844/201 +f 2070/2859/196 2078/2875/196 2079/2860/198 +f 2079/2862/198 2080/2865/199 2072/2863/199 +f 2080/2865/199 2073/2867/200 2065/2866/200 +f 2073/2867/200 2074/2869/201 2066/2868/201 +f 2074/2869/201 2075/2902/202 2067/2870/202 +f 2067/2870/202 2075/2902/202 2076/2871/203 +f 2068/2872/203 2076/2871/203 2077/2873/197 +f 2069/2874/197 2077/2873/197 2078/2875/196 +f 2086/2876/196 2094/2891/196 2095/2877/198 +f 2095/2879/198 2096/2882/199 2088/2880/199 +f 2096/2882/199 2089/2884/200 2081/2883/200 +f 2089/2884/200 2090/2886/201 2082/2885/201 +f 2090/2886/201 2091/2903/202 2083/2887/202 +f 2083/2887/202 2091/2903/202 2092/2888/203 +f 2092/2888/203 2093/2904/197 2085/2890/197 +f 2085/2890/197 2093/2904/197 2094/2891/196 +o SuspensionCoverBack +v -0.500000 6.500000 -4.000000 +v -0.676777 6.426777 -4.000000 +v -0.750000 6.250000 -4.000000 +v -0.676777 6.073223 -4.000000 +v -0.500000 6.000000 -4.000000 +v -0.323223 6.073223 -4.000000 +v -0.250000 6.250000 -4.000000 +v -0.323223 6.426777 -4.000000 +v -0.500000 6.437500 -4.000000 +v -0.632583 6.382583 -4.000000 +v -0.687500 6.250000 -4.000000 +v -0.632583 6.117417 -4.000000 +v -0.500000 6.062500 -4.000000 +v -0.367417 6.117417 -4.000000 +v -0.312500 6.250000 -4.000000 +v -0.367417 6.382583 -4.000000 +v 0.500000 6.500000 -4.000000 +v 0.323223 6.426777 -4.000000 +v 0.250000 6.250000 -4.000000 +v 0.323223 6.073223 -4.000000 +v 0.500000 6.000000 -4.000000 +v 0.676777 6.073223 -4.000000 +v 0.750000 6.250000 -4.000000 +v 0.676777 6.426777 -4.000000 +v 0.500000 6.437500 -4.000000 +v 0.367417 6.382583 -4.000000 +v 0.312500 6.250000 -4.000000 +v 0.367417 6.117417 -4.000000 +v 0.500000 6.062500 -4.000000 +v 0.632583 6.117417 -4.000000 +v 0.687500 6.250000 -4.000000 +v 0.632583 6.382583 -4.000000 +v -0.750000 6.750000 -5.500000 +v -0.926777 6.676777 -5.500000 +v -1.000000 6.500000 -5.500000 +v -0.926777 6.323223 -5.500000 +v -0.750000 6.250000 -5.500000 +v -0.573223 6.323223 -5.500000 +v -0.500000 6.500000 -5.500000 +v -0.573223 6.676777 -5.500000 +v -0.750000 6.687500 -5.500000 +v -0.882583 6.632583 -5.500000 +v -0.937500 6.500000 -5.500000 +v -0.882583 6.367417 -5.500000 +v -0.750000 6.312500 -5.500000 +v -0.617417 6.367417 -5.500000 +v -0.562500 6.500000 -5.500000 +v -0.617417 6.632583 -5.500000 +v 0.750000 6.750000 -5.500000 +v 0.573223 6.676777 -5.500000 +v 0.500000 6.500000 -5.500000 +v 0.573223 6.323223 -5.500000 +v 0.750000 6.250000 -5.500000 +v 0.926777 6.323223 -5.500000 +v 1.000000 6.500000 -5.500000 +v 0.926777 6.676777 -5.500000 +v 0.750000 6.687500 -5.500000 +v 0.617417 6.632583 -5.500000 +v 0.562500 6.500000 -5.500000 +v 0.617417 6.367417 -5.500000 +v 0.750000 6.312500 -5.500000 +v 0.882583 6.367417 -5.500000 +v 0.937500 6.500000 -5.500000 +v 0.882583 6.632583 -5.500000 +v -0.500000 6.500000 -4.000000 +v -0.676777 6.426777 -4.000000 +v -0.750000 6.250000 -4.000000 +v -0.676777 6.073223 -4.000000 +v -0.500000 6.000000 -4.000000 +v -0.323223 6.073223 -4.000000 +v -0.250000 6.250000 -4.000000 +v -0.323223 6.426777 -4.000000 +v 0.500000 6.500000 -4.000000 +v 0.323223 6.426777 -4.000000 +v 0.250000 6.250000 -4.000000 +v 0.323223 6.073223 -4.000000 +v 0.500000 6.000000 -4.000000 +v 0.676777 6.073223 -4.000000 +v 0.750000 6.250000 -4.000000 +v 0.676777 6.426777 -4.000000 +v -0.750000 6.750000 -5.500000 +v -0.926777 6.676777 -5.500000 +v -1.000000 6.500000 -5.500000 +v -0.926777 6.323223 -5.500000 +v -0.750000 6.250000 -5.500000 +v -0.573223 6.323223 -5.500000 +v -0.500000 6.500000 -5.500000 +v -0.573223 6.676777 -5.500000 +v 0.750000 6.750000 -5.500000 +v 0.573223 6.676777 -5.500000 +v 0.500000 6.500000 -5.500000 +v 0.573223 6.323223 -5.500000 +v 0.750000 6.250000 -5.500000 +v 0.926777 6.323223 -5.500000 +v 1.000000 6.500000 -5.500000 +v 0.926777 6.676777 -5.500000 +vt 0.873494 0.509302 +vt 0.853701 0.516279 +vt 0.852840 0.509302 +vt 0.878657 0.551163 +vt 0.858864 0.558140 +vt 0.858003 0.551163 +vt 0.874355 0.516279 +vt 0.854561 0.523256 +vt 0.872633 0.502326 +vt 0.852840 0.509302 +vt 0.851979 0.502326 +vt 0.875215 0.523256 +vt 0.855422 0.530233 +vt 0.873494 0.509302 +vt 0.853701 0.516279 +vt 0.872633 0.576744 +vt 0.851979 0.581395 +vt 0.851979 0.576744 +vt 0.874355 0.516279 +vt 0.854561 0.523256 +vt 0.872633 0.586047 +vt 0.851979 0.586047 +vt 0.876076 0.530233 +vt 0.855422 0.530233 +vt 0.872633 0.590698 +vt 0.851979 0.590698 +vt 0.851979 0.576744 +vt 0.872633 0.581395 +vt 0.851979 0.581395 +vt 0.872633 0.595349 +vt 0.851979 0.595349 +vt 0.872633 0.586047 +vt 0.851979 0.586047 +vt 0.851979 0.558140 +vt 0.872633 0.562791 +vt 0.851979 0.562791 +vt 0.872633 0.590698 +vt 0.851979 0.590698 +vt 0.851979 0.567442 +vt 0.876076 0.530233 +vt 0.856282 0.537209 +vt 0.851979 0.595349 +vt 0.872633 0.567442 +vt 0.851979 0.572093 +vt 0.877797 0.544186 +vt 0.857143 0.544186 +vt 0.872633 0.558140 +vt 0.851979 0.562791 +vt 0.851979 0.558140 +vt 0.872633 0.572093 +vt 0.878657 0.551163 +vt 0.858003 0.551163 +vt 0.872633 0.562791 +vt 0.851979 0.567442 +vt 0.876936 0.537209 +vt 0.856282 0.537209 +vt 0.879518 0.558140 +vt 0.858864 0.558140 +vt 0.872633 0.567442 +vt 0.851979 0.572093 +vt 0.877797 0.544186 +vt 0.857143 0.544186 +vt 0.851979 0.502326 +vt 0.872633 0.576744 +vt 0.853701 0.516279 +vt 0.873494 0.509302 +vt 0.852840 0.509302 +vt 0.858864 0.558140 +vt 0.878657 0.551163 +vt 0.858003 0.551163 +vt 0.854561 0.523256 +vt 0.874355 0.516279 +vt 0.852840 0.509302 +vt 0.872633 0.502326 +vt 0.851979 0.502326 +vt 0.855422 0.530233 +vt 0.875215 0.523256 +vt 0.853701 0.516279 +vt 0.873494 0.509302 +vt 0.854561 0.523256 +vt 0.874355 0.516279 +vt 0.876076 0.530233 +vt 0.875215 0.523256 +vt 0.856282 0.537209 +vt 0.876076 0.530233 +vt 0.877797 0.544186 +vt 0.876936 0.537209 +vt 0.857143 0.544186 +vt 0.878657 0.551163 +vt 0.855422 0.530233 +vt 0.876936 0.537209 +vt 0.858003 0.551163 +vt 0.879518 0.558140 +vt 0.856282 0.537209 +vt 0.877797 0.544186 +vt 0.851979 0.502326 +vt 0.872633 0.502326 +vt 0.857143 0.544186 +vt 0.879518 0.558140 +vt 0.872633 0.581395 +vt 0.875215 0.523256 +vt 0.872633 0.558140 +vt 0.876936 0.537209 +vt 0.872633 0.595349 +vt 0.872633 0.572093 +vt 0.872633 0.502326 +vt 0.879518 0.558140 +vt 0.858864 0.558140 +vn 0.6882 -0.6882 -0.2294 +vn 0.9847 -0.0369 -0.1703 +vn -0.6882 -0.6882 -0.2294 +vn -0.0369 -0.9847 -0.1703 +vn 0.9866 0.0416 -0.1575 +vn 0.7457 0.6662 -0.0133 +vn 0.0416 -0.9866 -0.1575 +vn 0.6662 -0.7457 -0.0133 +vn 0.6662 0.7457 0.0133 +vn 0.0416 0.9866 0.1575 +vn 0.7457 -0.6662 0.0133 +vn 0.9866 -0.0416 0.1575 +vn -0.0369 0.9847 0.1703 +vn -0.6882 0.6882 0.2294 +vn 0.9847 0.0369 0.1703 +vn 0.6882 0.6882 0.2294 +vn -0.9847 0.0369 0.1703 +vn -0.9866 -0.0416 0.1575 +vn 0.0369 0.9847 0.1703 +vn -0.0416 0.9866 0.1575 +vn -0.7457 -0.6662 0.0133 +vn -0.6662 -0.7457 -0.0133 +vn -0.6662 0.7457 0.0133 +vn -0.7457 0.6662 -0.0133 +vn -0.0416 -0.9866 -0.1575 +vn 0.0369 -0.9847 -0.1703 +vn -0.9866 0.0416 -0.1575 +vn -0.9847 -0.0369 -0.1703 +s 1 +f 2134/2905/204 2103/2906/205 2102/2907/204 +f 2148/2908/206 2117/2909/207 2116/2910/206 +f 2135/2911/208 2104/2912/209 2103/2906/205 +f 2149/2913/210 2118/2914/211 2117/2915/207 +f 2136/2916/212 2097/2917/213 2104/2912/209 +f 2150/2918/214 2119/2919/215 2118/2914/211 +f 2137/2920/216 2106/2921/217 2105/2922/213 +f 2151/2923/218 2120/2924/219 2119/2919/215 +f 2106/2921/217 2139/2925/220 2107/2926/221 +f 2120/2924/219 2145/2927/222 2113/2928/223 +f 2107/2926/221 2140/2929/224 2108/2930/225 +f 2121/2931/223 2154/2932/226 2122/2933/227 +f 2108/2930/225 2141/2934/228 2109/2935/229 +f 2122/2933/227 2155/2936/230 2123/2937/231 +f 2109/2938/229 2142/2939/204 2110/2940/204 +f 2123/2937/231 2156/2941/206 2124/2942/206 +f 2142/2939/204 2111/2943/205 2110/2940/204 +f 2129/2944/216 2098/2945/217 2097/2917/213 +f 2156/2941/206 2125/2946/207 2124/2942/206 +f 2143/2947/208 2112/2948/209 2111/2943/205 +f 2098/2945/217 2131/2949/220 2099/2950/221 +f 2157/2951/210 2126/2952/211 2125/2953/207 +f 2144/2954/212 2105/2922/213 2112/2948/209 +f 2099/2950/221 2132/2955/224 2100/2956/225 +f 2158/2957/214 2127/2958/215 2126/2952/211 +f 2113/2928/223 2146/2959/226 2114/2960/227 +f 2100/2956/225 2133/2961/228 2101/2962/229 +f 2159/2963/218 2128/2964/219 2127/2958/215 +f 2114/2960/227 2147/2965/230 2115/2966/231 +f 2101/2967/229 2134/2905/204 2102/2907/204 +f 2128/2964/219 2153/2968/222 2121/2931/223 +f 2115/2966/231 2148/2908/206 2116/2910/206 +f 2167/2969/220 2182/2970/217 2166/2971/217 +f 2173/2972/222 2188/2973/219 2172/2974/219 +f 2168/2975/224 2183/2976/221 2167/2969/220 +f 2174/2977/226 2189/2978/223 2173/2979/222 +f 2161/2980/228 2184/2981/225 2168/2975/224 +f 2175/2982/230 2190/2983/227 2174/2977/226 +f 2176/2984/206 2191/2985/231 2175/2982/230 +f 2176/2984/206 2185/2986/207 2192/2987/206 +f 2162/2988/204 2177/2989/229 2161/2980/228 +f 2162/2988/204 2179/2990/205 2178/2991/204 +f 2163/2992/208 2180/2993/209 2179/2990/205 +f 2169/2994/210 2186/2995/211 2185/2986/207 +f 2164/2996/212 2181/2997/213 2180/2993/209 +f 2170/2998/214 2187/2999/215 2186/2995/211 +f 2165/3000/216 2182/2970/217 2181/3001/213 +f 2171/3002/218 2188/2973/219 2187/2999/215 +f 2134/2905/204 2135/2911/208 2103/2906/205 +f 2148/2908/206 2149/3003/210 2117/2909/207 +f 2135/2911/208 2136/2916/212 2104/2912/209 +f 2149/2913/210 2150/2918/214 2118/2914/211 +f 2136/2916/212 2129/2944/216 2097/2917/213 +f 2150/2918/214 2151/2923/218 2119/2919/215 +f 2137/2920/216 2138/3004/217 2106/2921/217 +f 2151/2923/218 2152/3005/219 2120/2924/219 +f 2106/2921/217 2138/3004/217 2139/2925/220 +f 2120/2924/219 2152/3005/219 2145/2927/222 +f 2107/2926/221 2139/2925/220 2140/2929/224 +f 2121/2931/223 2153/2968/222 2154/2932/226 +f 2108/2930/225 2140/2929/224 2141/2934/228 +f 2122/2933/227 2154/2932/226 2155/2936/230 +f 2109/2938/229 2141/3006/228 2142/2939/204 +f 2123/2937/231 2155/2936/230 2156/2941/206 +f 2142/2939/204 2143/2947/208 2111/2943/205 +f 2129/2944/216 2130/3007/217 2098/2945/217 +f 2156/2941/206 2157/3008/210 2125/2946/207 +f 2143/2947/208 2144/2954/212 2112/2948/209 +f 2098/2945/217 2130/3007/217 2131/2949/220 +f 2157/2951/210 2158/2957/214 2126/2952/211 +f 2144/2954/212 2137/2920/216 2105/2922/213 +f 2099/2950/221 2131/2949/220 2132/2955/224 +f 2158/2957/214 2159/2963/218 2127/2958/215 +f 2113/2928/223 2145/2927/222 2146/2959/226 +f 2100/2956/225 2132/2955/224 2133/2961/228 +f 2159/2963/218 2160/3009/219 2128/2964/219 +f 2114/2960/227 2146/2959/226 2147/2965/230 +f 2101/2967/229 2133/3010/228 2134/2905/204 +f 2128/2964/219 2160/3009/219 2153/2968/222 +f 2115/2966/231 2147/2965/230 2148/2908/206 +f 2167/2969/220 2183/2976/221 2182/2970/217 +f 2173/2972/222 2189/3011/223 2188/2973/219 +f 2168/2975/224 2184/2981/225 2183/2976/221 +f 2174/2977/226 2190/2983/227 2189/2978/223 +f 2161/2980/228 2177/2989/229 2184/2981/225 +f 2175/2982/230 2191/2985/231 2190/2983/227 +f 2176/2984/206 2192/2987/206 2191/2985/231 +f 2176/2984/206 2169/2994/210 2185/2986/207 +f 2162/2988/204 2178/2991/204 2177/2989/229 +f 2162/2988/204 2163/2992/208 2179/2990/205 +f 2163/2992/208 2164/2996/212 2180/2993/209 +f 2169/2994/210 2170/2998/214 2186/2995/211 +f 2164/2996/212 2165/3012/216 2181/2997/213 +f 2170/2998/214 2171/3002/218 2187/2999/215 +f 2165/3000/216 2166/2971/217 2182/2970/217 +f 2171/3002/218 2172/2974/219 2188/2973/219 +o Server4 +v 3.375000 1.000000 -8.875000 +v 2.625000 1.000000 -8.875000 +v 3.375000 1.000000 -8.125000 +v 2.625000 1.000000 -8.125000 +v 2.625000 1.250000 -8.875000 +v 2.625000 1.250000 -8.125000 +v 3.375000 1.250000 -8.125000 +v 3.375000 1.250000 -8.875000 +vt 0.746127 0.920930 +vt 0.756454 0.948837 +vt 0.746127 0.948837 +vt 0.759897 0.948837 +vt 0.756454 0.920930 +vt 0.759897 0.920930 +vt 0.742685 0.920930 +vt 0.742685 0.948837 +vt 0.756454 0.911628 +vt 0.746127 0.911628 +vt 0.746127 0.958140 +vt 0.756454 0.958140 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 2199/3013/232 2197/3014/232 2198/3015/232 +f 2194/3016/233 2200/3017/233 2193/3018/233 +f 2195/3019/234 2198/3015/234 2196/3020/234 +f 2193/3021/235 2199/3013/235 2195/3022/235 +f 2196/3023/236 2197/3014/236 2194/3024/236 +f 2199/3013/232 2200/3017/232 2197/3014/232 +f 2194/3016/233 2197/3014/233 2200/3017/233 +f 2195/3019/234 2199/3013/234 2198/3015/234 +f 2193/3021/235 2200/3017/235 2199/3013/235 +f 2196/3023/236 2198/3015/236 2197/3014/236 +o Server3 +v 3.375000 1.312500 -8.875000 +v 2.625000 1.312500 -8.875000 +v 3.375000 1.312500 -8.125000 +v 2.625000 1.312500 -8.125000 +v 2.625000 1.562500 -8.875000 +v 2.625000 1.562500 -8.125000 +v 3.375000 1.562500 -8.125000 +v 3.375000 1.562500 -8.875000 +vt 0.763339 0.948837 +vt 0.773666 0.976744 +vt 0.763339 0.976744 +vt 0.777108 0.976744 +vt 0.773666 0.948837 +vt 0.777108 0.948837 +vt 0.759897 0.948837 +vt 0.759897 0.976744 +vt 0.773666 0.939535 +vt 0.763339 0.939535 +vt 0.763339 0.986046 +vt 0.773666 0.986046 +vt 0.773666 0.911628 +vt 0.763339 0.911628 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 2207/3025/237 2205/3026/237 2206/3027/237 +f 2202/3028/238 2208/3029/238 2201/3030/238 +f 2203/3031/239 2206/3027/239 2204/3032/239 +f 2201/3033/240 2207/3025/240 2203/3034/240 +f 2204/3035/241 2205/3026/241 2202/3036/241 +f 2203/3034/242 2202/3037/242 2201/3033/242 +f 2207/3025/237 2208/3029/237 2205/3026/237 +f 2202/3028/238 2205/3026/238 2208/3029/238 +f 2203/3031/239 2207/3025/239 2206/3027/239 +f 2201/3033/240 2208/3029/240 2207/3025/240 +f 2204/3035/241 2206/3027/241 2205/3026/241 +f 2203/3034/242 2204/3038/242 2202/3037/242 +o Server2 +v 3.375000 1.625000 -8.875000 +v 2.625000 1.625000 -8.875000 +v 3.375000 1.625000 -8.125000 +v 2.625000 1.625000 -8.125000 +v 2.625000 1.875000 -8.875000 +v 2.625000 1.875000 -8.125000 +v 3.375000 1.875000 -8.125000 +v 3.375000 1.875000 -8.875000 +vt 0.780551 0.948837 +vt 0.790878 0.976744 +vt 0.780551 0.976744 +vt 0.794320 0.976744 +vt 0.790878 0.948837 +vt 0.794320 0.948837 +vt 0.777108 0.948837 +vt 0.777108 0.976744 +vt 0.790878 0.939535 +vt 0.780551 0.939535 +vt 0.780551 0.986046 +vt 0.790878 0.986046 +vt 0.790878 0.911628 +vt 0.780551 0.911628 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 2215/3039/243 2213/3040/243 2214/3041/243 +f 2210/3042/244 2216/3043/244 2209/3044/244 +f 2211/3045/245 2214/3041/245 2212/3046/245 +f 2209/3047/246 2215/3039/246 2211/3048/246 +f 2212/3049/247 2213/3040/247 2210/3050/247 +f 2211/3048/248 2210/3051/248 2209/3047/248 +f 2215/3039/243 2216/3043/243 2213/3040/243 +f 2210/3042/244 2213/3040/244 2216/3043/244 +f 2211/3045/245 2215/3039/245 2214/3041/245 +f 2209/3047/246 2216/3043/246 2215/3039/246 +f 2212/3049/247 2214/3041/247 2213/3040/247 +f 2211/3048/248 2212/3052/248 2210/3051/248 +o Server1 +v 3.375000 1.937500 -8.875000 +v 2.625000 1.937500 -8.875000 +v 3.375000 1.937500 -8.125000 +v 2.625000 1.937500 -8.125000 +v 2.625000 2.187500 -8.875000 +v 2.625000 2.187500 -8.125000 +v 3.375000 2.187500 -8.125000 +v 3.375000 2.187500 -8.875000 +vt 0.797762 0.948837 +vt 0.808089 0.976744 +vt 0.797762 0.976744 +vt 0.811532 0.976744 +vt 0.808089 0.948837 +vt 0.811532 0.948837 +vt 0.794320 0.948837 +vt 0.794320 0.976744 +vt 0.808089 0.939535 +vt 0.797762 0.939535 +vt 0.797762 0.986046 +vt 0.808089 0.986046 +vt 0.808089 0.911628 +vt 0.797762 0.911628 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 2223/3053/249 2221/3054/249 2222/3055/249 +f 2218/3056/250 2224/3057/250 2217/3058/250 +f 2219/3059/251 2222/3055/251 2220/3060/251 +f 2217/3061/252 2223/3053/252 2219/3062/252 +f 2220/3063/253 2221/3054/253 2218/3064/253 +f 2219/3062/254 2218/3065/254 2217/3061/254 +f 2223/3053/249 2224/3057/249 2221/3054/249 +f 2218/3056/250 2221/3054/250 2224/3057/250 +f 2219/3059/251 2223/3053/251 2222/3055/251 +f 2217/3061/252 2224/3057/252 2223/3053/252 +f 2220/3063/253 2222/3055/253 2221/3054/253 +f 2219/3062/254 2220/3066/254 2218/3065/254 +o Monitor +v 2.625000 1.250000 -7.875000 +v 2.625000 1.250000 -7.125000 +v 2.625000 2.000000 -7.875000 +v 2.625000 2.000000 -7.125000 +v 3.375000 1.250000 -7.125000 +v 3.375000 1.250000 -7.875000 +v 3.375000 2.000000 -7.125000 +v 3.375000 2.000000 -7.875000 +v 3.375000 1.312500 -7.187500 +v 3.375000 1.312500 -7.812500 +v 3.375000 1.937500 -7.187500 +v 3.375000 1.937500 -7.812500 +v 3.312500 1.312500 -7.187500 +v 3.312500 1.312500 -7.812500 +v 3.312500 1.937500 -7.187500 +v 3.312500 1.937500 -7.812500 +vt 0.678141 0.953488 +vt 0.688468 0.925581 +vt 0.688468 0.953488 +vt 0.698795 0.925581 +vt 0.709122 0.953488 +vt 0.698795 0.953488 +vt 0.698795 0.981395 +vt 0.709122 0.981395 +vt 0.719449 0.953488 +vt 0.709122 0.925581 +vt 0.719449 0.925581 +vt 0.687608 0.923256 +vt 0.678141 0.925581 +vt 0.679002 0.923256 +vt 0.708262 0.923256 +vt 0.699656 0.923256 +vt 0.718589 0.923256 +vt 0.709983 0.923256 +vt 0.697935 0.923256 +vt 0.689329 0.923256 +vt 0.687608 0.920930 +vt 0.718589 0.920930 +vt 0.708262 0.920930 +vt 0.697935 0.920930 +vt 0.679002 0.920930 +vt 0.709983 0.920930 +vt 0.699656 0.920930 +vt 0.689329 0.920930 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +s off +f 2225/3067/255 2229/3068/255 2226/3069/255 +f 2231/3070/256 2227/3071/256 2228/3072/256 +f 2226/3073/257 2227/3071/257 2225/3074/257 +f 2225/3075/258 2232/3076/258 2230/3077/258 +f 2229/3068/259 2228/3072/259 2226/3069/259 +f 2233/3078/260 2230/3079/260 2234/3080/260 +f 2236/3081/260 2231/3070/260 2235/3082/260 +f 2234/3083/260 2232/3076/260 2236/3084/260 +f 2235/3085/260 2229/3068/260 2233/3086/260 +f 2234/3080/256 2237/3087/256 2233/3078/256 +f 2236/3084/259 2238/3088/259 2234/3083/259 +f 2235/3082/255 2240/3089/255 2236/3081/255 +f 2233/3086/258 2239/3090/258 2235/3085/258 +f 2225/3067/255 2230/3079/255 2229/3068/255 +f 2231/3070/256 2232/3076/256 2227/3071/256 +f 2226/3073/257 2228/3072/257 2227/3071/257 +f 2225/3075/258 2227/3071/258 2232/3076/258 +f 2229/3068/259 2231/3070/259 2228/3072/259 +f 2233/3078/260 2229/3068/260 2230/3079/260 +f 2236/3081/260 2232/3076/260 2231/3070/260 +f 2234/3083/260 2230/3077/260 2232/3076/260 +f 2235/3085/260 2231/3070/260 2229/3068/260 +f 2234/3080/256 2238/3091/256 2237/3087/256 +f 2236/3084/259 2240/3092/259 2238/3088/259 +f 2235/3082/255 2239/3093/255 2240/3089/255 +f 2233/3086/258 2237/3094/258 2239/3090/258 +o Screen +v 3.312500 1.312500 -7.187500 +v 3.312500 1.312500 -7.812500 +v 3.312500 1.937500 -7.187500 +v 3.312500 1.937500 -7.812500 +v 3.375000 1.437500 -7.312500 +v 3.375000 1.437500 -7.687500 +v 3.375000 1.812500 -7.312500 +v 3.375000 1.812500 -7.687500 +vt 0.799999 0.200000 +vt 0.199999 0.800000 +vt 0.199999 0.200000 +vt 1.000000 0.000000 +vt 0.799999 0.800000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vn 0.9688 -0.1753 -0.1753 +vn 0.9688 0.1753 0.1753 +vn 0.9688 -0.1753 0.1753 +vn 0.9428 -0.2357 -0.2357 +vn 0.9688 0.1753 -0.1753 +vn 0.9428 0.2357 0.2357 +vn 0.9428 0.2357 -0.2357 +vn 0.9428 -0.2357 0.2357 +s 1 +f 2246/3095/261 2247/3096/262 2245/3097/263 +f 2245/3097/263 2242/3098/264 2246/3095/261 +f 2248/3099/265 2243/3100/266 2247/3096/262 +f 2246/3095/261 2244/3101/267 2248/3099/265 +f 2247/3096/262 2241/3102/268 2245/3097/263 +f 2246/3095/261 2248/3099/265 2247/3096/262 +f 2245/3097/263 2241/3102/268 2242/3098/264 +f 2248/3099/265 2244/3101/267 2243/3100/266 +f 2246/3095/261 2242/3098/264 2244/3101/267 +f 2247/3096/262 2243/3100/266 2241/3102/268 +o SuspensionCoverFront +v -0.500000 6.500000 0.500000 +v -0.676777 6.426777 0.500000 +v -0.750000 6.250000 0.500000 +v -0.676777 6.073223 0.500000 +v -0.500000 6.000000 0.500000 +v -0.323223 6.073223 0.500000 +v -0.250000 6.250000 0.500000 +v -0.323223 6.426777 0.500000 +v -0.500000 6.437500 0.500000 +v -0.632583 6.382583 0.500000 +v -0.687500 6.250000 0.500000 +v -0.632583 6.117417 0.500000 +v -0.500000 6.062500 0.500000 +v -0.367417 6.117417 0.500000 +v -0.312500 6.250000 0.500000 +v -0.367417 6.382583 0.500000 +v -1.000000 6.750000 3.500000 +v -1.176777 6.676777 3.500000 +v -1.250000 6.500000 3.500000 +v -1.176777 6.323223 3.500000 +v -1.000000 6.250000 3.500000 +v -0.823223 6.323223 3.500000 +v -0.750000 6.500000 3.500000 +v -0.823223 6.676777 3.500000 +v -1.000000 6.687500 3.500000 +v -1.132583 6.632583 3.500000 +v -1.187500 6.500000 3.500000 +v -1.132583 6.367417 3.500000 +v -1.000000 6.312500 3.500000 +v -0.867417 6.367417 3.500000 +v -0.812500 6.500000 3.500000 +v -0.867417 6.632583 3.500000 +v 0.500000 6.500000 0.500000 +v 0.323223 6.426777 0.500000 +v 0.250000 6.250000 0.500000 +v 0.323223 6.073223 0.500000 +v 0.500000 6.000000 0.500000 +v 0.676777 6.073223 0.500000 +v 0.750000 6.250000 0.500000 +v 0.676777 6.426777 0.500000 +v 1.000000 6.750000 3.500000 +v 0.823223 6.676777 3.500000 +v 0.750000 6.500000 3.500000 +v 0.823223 6.323223 3.500000 +v 1.000000 6.250000 3.500000 +v 1.176777 6.323223 3.500000 +v 1.250000 6.500000 3.500000 +v 1.176777 6.676777 3.500000 +v 0.500000 6.437500 0.500000 +v 0.367417 6.382583 0.500000 +v 0.312500 6.250000 0.500000 +v 0.367417 6.117417 0.500000 +v 0.500000 6.062500 0.500000 +v 0.632583 6.117417 0.500000 +v 0.687500 6.250000 0.500000 +v 0.632583 6.382583 0.500000 +v 1.000000 6.687500 3.500000 +v 0.867417 6.632583 3.500000 +v 0.812500 6.500000 3.500000 +v 0.867417 6.367417 3.500000 +v 1.000000 6.312500 3.500000 +v 1.132583 6.367417 3.500000 +v 1.187500 6.500000 3.500000 +v 1.132583 6.632583 3.500000 +v -0.500000 6.500000 0.500000 +v -0.676777 6.426777 0.500000 +v -0.750000 6.250000 0.500000 +v -0.676777 6.073223 0.500000 +v -0.500000 6.000000 0.500000 +v -0.323223 6.073223 0.500000 +v -0.250000 6.250000 0.500000 +v -0.323223 6.426777 0.500000 +v -1.000000 6.750000 3.500000 +v -1.176777 6.676777 3.500000 +v -1.250000 6.500000 3.500000 +v -1.176777 6.323223 3.500000 +v -1.000000 6.250000 3.500000 +v -0.823223 6.323223 3.500000 +v -0.750000 6.500000 3.500000 +v -0.823223 6.676777 3.500000 +v 0.500000 6.500000 0.500000 +v 0.323223 6.426777 0.500000 +v 0.250000 6.250000 0.500000 +v 0.323223 6.073223 0.500000 +v 0.500000 6.000000 0.500000 +v 0.676777 6.073223 0.500000 +v 0.750000 6.250000 0.500000 +v 0.676777 6.426777 0.500000 +v 1.000000 6.750000 3.500000 +v 0.823223 6.676777 3.500000 +v 0.750000 6.500000 3.500000 +v 0.823223 6.323223 3.500000 +v 1.000000 6.250000 3.500000 +v 1.176777 6.323223 3.500000 +v 1.250000 6.500000 3.500000 +v 1.176777 6.676777 3.500000 +vt 0.847676 0.560465 +vt 0.805508 0.553488 +vt 0.846816 0.553488 +vt 0.845095 0.609302 +vt 0.803787 0.604651 +vt 0.845095 0.604651 +vt 0.848537 0.567442 +vt 0.806368 0.560465 +vt 0.849398 0.574419 +vt 0.807229 0.567442 +vt 0.845095 0.613953 +vt 0.803787 0.609302 +vt 0.845095 0.618605 +vt 0.803787 0.613953 +vt 0.808950 0.581395 +vt 0.808089 0.574419 +vt 0.803787 0.623256 +vt 0.803787 0.618605 +vt 0.850258 0.581395 +vt 0.809811 0.588372 +vt 0.845095 0.623256 +vt 0.803787 0.627907 +vt 0.851119 0.588372 +vt 0.810671 0.595349 +vt 0.845095 0.627907 +vt 0.803787 0.632558 +vt 0.845095 0.539535 +vt 0.804647 0.546512 +vt 0.803787 0.539535 +vt 0.845095 0.595349 +vt 0.803787 0.600000 +vt 0.803787 0.595349 +vt 0.845955 0.546512 +vt 0.845095 0.600000 +vt 0.847676 0.560465 +vt 0.805508 0.553488 +vt 0.846816 0.553488 +vt 0.807229 0.567442 +vt 0.806368 0.560465 +vt 0.848537 0.567442 +vt 0.808089 0.574419 +vt 0.849398 0.574419 +vt 0.808950 0.581395 +vt 0.850258 0.581395 +vt 0.809811 0.588372 +vt 0.851979 0.595349 +vt 0.851119 0.588372 +vt 0.845955 0.546512 +vt 0.803787 0.539535 +vt 0.845095 0.539535 +vt 0.804647 0.546512 +vt 0.845095 0.609302 +vt 0.803787 0.604651 +vt 0.845095 0.604651 +vt 0.803787 0.613953 +vt 0.803787 0.609302 +vt 0.845095 0.613953 +vt 0.803787 0.618605 +vt 0.845095 0.618605 +vt 0.803787 0.623256 +vt 0.845095 0.623256 +vt 0.803787 0.627907 +vt 0.845095 0.632558 +vt 0.845095 0.627907 +vt 0.845095 0.600000 +vt 0.803787 0.595349 +vt 0.845095 0.595349 +vt 0.803787 0.600000 +vt 0.805508 0.553488 +vt 0.847676 0.560465 +vt 0.846816 0.553488 +vt 0.806368 0.560465 +vt 0.848537 0.567442 +vt 0.807229 0.567442 +vt 0.849398 0.574419 +vt 0.808950 0.581395 +vt 0.850258 0.581395 +vt 0.809811 0.588372 +vt 0.851119 0.588372 +vt 0.810671 0.595349 +vt 0.851979 0.595349 +vt 0.845095 0.539535 +vt 0.804647 0.546512 +vt 0.845955 0.546512 +vt 0.805508 0.553488 +vt 0.847676 0.560465 +vt 0.846816 0.553488 +vt 0.807229 0.567442 +vt 0.848537 0.567442 +vt 0.808089 0.574419 +vt 0.849398 0.574419 +vt 0.808950 0.581395 +vt 0.850258 0.581395 +vt 0.809811 0.588372 +vt 0.851119 0.588372 +vt 0.851979 0.595349 +vt 0.803787 0.539535 +vt 0.845955 0.546512 +vt 0.845095 0.539535 +vt 0.804647 0.546512 +vt 0.851979 0.595349 +vt 0.845095 0.632558 +vt 0.810671 0.595349 +vt 0.803787 0.632558 +vt 0.808089 0.574419 +vt 0.803787 0.539535 +vt 0.806368 0.560465 +vt 0.810671 0.595349 +vn 0.7343 0.6756 0.0661 +vn 0.9865 0.0209 0.1627 +vn 0.9860 -0.0186 0.1659 +vn 0.0411 0.9962 -0.0762 +vn 0.6749 0.7362 0.0511 +vn -0.6859 0.7068 -0.1732 +vn -0.0387 0.9952 -0.0894 +vn -0.9860 0.0186 -0.1659 +vn -0.7054 0.6869 -0.1748 +vn -0.9865 -0.0209 -0.1627 +vn -0.7343 -0.6756 -0.0661 +vn -0.6749 -0.7362 -0.0511 +vn -0.0411 -0.9962 0.0762 +vn 0.0387 -0.9952 0.0894 +vn 0.6859 -0.7068 0.1732 +vn 0.7054 -0.6869 0.1748 +vn 0.6859 0.7068 -0.1732 +vn 0.9860 0.0186 -0.1659 +vn 0.9865 -0.0209 -0.1627 +vn 0.0387 0.9952 -0.0894 +vn 0.7054 0.6869 -0.1748 +vn -0.0411 0.9962 -0.0762 +vn -0.6749 0.7362 0.0511 +vn -0.7343 0.6756 0.0661 +vn -0.9865 0.0209 0.1627 +vn -0.9860 -0.0186 0.1659 +vn -0.6859 -0.7068 0.1732 +vn -0.0387 -0.9952 0.0894 +vn -0.7054 -0.6869 0.1748 +vn 0.6749 -0.7362 -0.0511 +vn 0.0411 -0.9962 0.0762 +vn 0.7343 -0.6756 -0.0661 +s 1 +f 2256/3103/269 2271/3104/270 2255/3105/271 +f 2264/3106/269 2279/3107/270 2263/3108/271 +f 2249/3109/272 2272/3110/273 2256/3103/269 +f 2250/3111/274 2265/3112/275 2249/3109/272 +f 2257/3113/272 2280/3114/273 2264/3106/269 +f 2258/3115/274 2273/3116/275 2257/3113/272 +f 2250/3111/274 2267/3117/276 2266/3118/277 +f 2258/3115/274 2275/3119/276 2274/3120/277 +f 2251/3121/278 2268/3122/279 2267/3117/276 +f 2259/3123/278 2276/3124/279 2275/3119/276 +f 2252/3125/280 2269/3126/281 2268/3122/279 +f 2260/3127/280 2277/3128/281 2276/3124/279 +f 2253/3129/282 2270/3130/283 2269/3131/281 +f 2261/3132/282 2278/3133/283 2277/3134/281 +f 2255/3105/271 2270/3130/283 2254/3135/284 +f 2263/3108/271 2278/3133/283 2262/3136/284 +f 2288/3137/285 2295/3138/286 2287/3139/287 +f 2288/3137/285 2289/3140/288 2296/3141/289 +f 2281/3142/290 2290/3143/291 2289/3140/288 +f 2282/3144/292 2291/3145/293 2290/3143/291 +f 2283/3146/294 2292/3147/295 2291/3145/293 +f 2285/3148/296 2292/3147/295 2284/3149/297 +f 2286/3150/298 2293/3151/299 2285/3152/296 +f 2287/3139/287 2294/3153/300 2286/3150/298 +f 2304/3154/285 2311/3155/286 2303/3156/287 +f 2304/3154/285 2305/3157/288 2312/3158/289 +f 2297/3159/290 2306/3160/291 2305/3157/288 +f 2298/3161/292 2307/3162/293 2306/3160/291 +f 2299/3163/294 2308/3164/295 2307/3162/293 +f 2301/3165/296 2308/3164/295 2300/3166/297 +f 2302/3167/298 2309/3168/299 2301/3169/296 +f 2303/3156/287 2310/3170/300 2302/3167/298 +f 2327/3171/278 2320/3172/279 2319/3173/276 +f 2328/3174/280 2313/3175/281 2320/3172/279 +f 2321/3176/282 2314/3177/283 2313/3175/281 +f 2314/3177/283 2323/3178/271 2315/3179/270 +f 2315/3179/270 2324/3180/269 2316/3181/273 +f 2316/3181/273 2325/3182/272 2317/3183/275 +f 2317/3184/275 2326/3185/274 2318/3186/277 +f 2326/3185/274 2319/3173/276 2318/3186/277 +f 2343/3187/294 2336/3188/295 2335/3189/293 +f 2336/3188/295 2337/3190/296 2329/3191/299 +f 2329/3191/299 2338/3192/298 2330/3193/300 +f 2330/3193/300 2339/3194/287 2331/3195/286 +f 2331/3195/286 2340/3196/285 2332/3197/289 +f 2340/3196/285 2333/3198/288 2332/3197/289 +f 2341/3199/290 2334/3200/291 2333/3201/288 +f 2342/3202/292 2335/3189/293 2334/3200/291 +f 2256/3103/269 2272/3110/273 2271/3104/270 +f 2264/3106/269 2280/3114/273 2279/3107/270 +f 2249/3109/272 2265/3112/275 2272/3110/273 +f 2250/3111/274 2266/3118/277 2265/3112/275 +f 2257/3113/272 2273/3116/275 2280/3114/273 +f 2258/3115/274 2274/3120/277 2273/3116/275 +f 2250/3111/274 2251/3121/278 2267/3117/276 +f 2258/3115/274 2259/3123/278 2275/3119/276 +f 2251/3121/278 2252/3125/280 2268/3122/279 +f 2259/3123/278 2260/3127/280 2276/3124/279 +f 2252/3125/280 2253/3203/282 2269/3126/281 +f 2260/3127/280 2261/3204/282 2277/3128/281 +f 2253/3129/282 2254/3135/284 2270/3130/283 +f 2261/3132/282 2262/3136/284 2278/3133/283 +f 2255/3105/271 2271/3104/270 2270/3130/283 +f 2263/3108/271 2279/3107/270 2278/3133/283 +f 2288/3137/285 2296/3141/289 2295/3138/286 +f 2288/3137/285 2281/3142/290 2289/3140/288 +f 2281/3142/290 2282/3144/292 2290/3143/291 +f 2282/3144/292 2283/3146/294 2291/3145/293 +f 2283/3146/294 2284/3149/297 2292/3147/295 +f 2285/3148/296 2293/3205/299 2292/3147/295 +f 2286/3150/298 2294/3153/300 2293/3151/299 +f 2287/3139/287 2295/3138/286 2294/3153/300 +f 2304/3154/285 2312/3158/289 2311/3155/286 +f 2304/3154/285 2297/3159/290 2305/3157/288 +f 2297/3159/290 2298/3161/292 2306/3160/291 +f 2298/3161/292 2299/3163/294 2307/3162/293 +f 2299/3163/294 2300/3166/297 2308/3164/295 +f 2301/3165/296 2309/3206/299 2308/3164/295 +f 2302/3167/298 2310/3170/300 2309/3168/299 +f 2303/3156/287 2311/3155/286 2310/3170/300 +f 2327/3171/278 2328/3174/280 2320/3172/279 +f 2328/3174/280 2321/3176/282 2313/3175/281 +f 2321/3176/282 2322/3207/284 2314/3177/283 +f 2314/3177/283 2322/3207/284 2323/3178/271 +f 2315/3179/270 2323/3178/271 2324/3180/269 +f 2316/3181/273 2324/3180/269 2325/3182/272 +f 2317/3184/275 2325/3208/272 2326/3185/274 +f 2326/3185/274 2327/3171/278 2319/3173/276 +f 2343/3187/294 2344/3209/297 2336/3188/295 +f 2336/3188/295 2344/3209/297 2337/3190/296 +f 2329/3191/299 2337/3190/296 2338/3192/298 +f 2330/3193/300 2338/3192/298 2339/3194/287 +f 2331/3195/286 2339/3194/287 2340/3196/285 +f 2340/3196/285 2341/3210/290 2333/3198/288 +f 2341/3199/290 2342/3202/292 2334/3200/291 +f 2342/3202/292 2343/3187/294 2335/3189/293 +o Cover +v -1.000000 6.500000 0.500000 +v 1.000000 6.500000 0.500000 +v -1.000000 6.500000 -4.000000 +v 1.000000 6.500000 -4.000000 +v -1.000000 6.000000 -4.000000 +v -1.000000 6.000000 0.500000 +v 1.000000 6.000000 0.500000 +v 1.000000 6.000000 -4.000000 +v -2.000000 5.000000 -5.000000 +v -2.000000 5.000000 -0.500000 +v 2.000000 5.000000 -0.500000 +v 2.000000 5.000000 -5.000000 +v 2.250000 5.250000 -0.500000 +v 2.250000 5.250000 -5.000000 +v -2.250000 5.250000 -0.500000 +v -2.250000 5.250000 -5.000000 +vt 0.710949 0.470147 +vt 0.772806 0.544186 +vt 0.710949 0.543980 +vt 0.641997 0.544186 +vt 0.703959 0.469767 +vt 0.703959 0.544186 +vt 0.690189 0.581395 +vt 0.628227 0.581395 +vt 0.641997 0.469767 +vt 0.690189 0.432558 +vt 0.772806 0.469767 +vt 0.779690 0.544186 +vt 0.724613 0.423256 +vt 0.786575 0.423256 +vt 0.724613 0.590698 +vt 0.710843 0.423256 +vt 0.710843 0.409302 +vt 0.710843 0.590698 +vt 0.710843 0.604651 +vt 0.786575 0.604651 +vt 0.724613 0.604651 +vt 0.803787 0.590698 +vt 0.803787 0.604651 +vt 0.786575 0.590698 +vt 0.724613 0.409302 +vt 0.786575 0.409302 +vt 0.803787 0.423256 +vt 0.803787 0.409302 +vt 0.628227 0.432558 +vt 0.779690 0.469767 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.6247 0.0000 0.7809 +vn -0.6247 0.0000 0.7809 +vn 0.6247 0.0000 -0.7809 +vn -0.6247 0.0000 -0.7809 +vn -0.4082 -0.4082 0.8165 +vn 0.4082 -0.4082 0.8165 +vn -0.4082 0.4082 -0.8165 +vn 0.4082 0.4082 -0.8165 +s off +f 2346/3211/301 2347/3212/301 2345/3213/301 +f 2349/3214/302 2351/3215/302 2350/3216/302 +f 2349/3214/303 2354/3217/303 2353/3218/303 +f 2352/3219/304 2355/3220/304 2351/3215/304 +f 2348/3221/305 2349/3222/305 2347/3212/305 +f 2345/3213/306 2351/3215/306 2346/3211/306 +f 2348/3221/307 2357/3223/307 2358/3224/307 +f 2347/3212/308 2359/3225/308 2345/3213/308 +f 2346/3226/309 2351/3227/309 2357/3223/309 +f 2345/3228/310 2359/3225/310 2350/3229/310 +f 2359/3225/304 2353/3230/304 2354/3231/304 +f 2347/3232/311 2349/3233/311 2360/3234/311 +f 2358/3224/303 2355/3235/303 2356/3236/303 +f 2348/3237/312 2358/3224/312 2352/3238/312 +f 2350/3229/313 2359/3225/313 2354/3231/313 +f 2357/3223/314 2351/3227/314 2355/3235/314 +f 2352/3238/315 2358/3224/315 2356/3236/315 +f 2360/3234/316 2349/3233/316 2353/3230/316 +f 2346/3211/301 2348/3221/301 2347/3212/301 +f 2349/3214/302 2352/3219/302 2351/3215/302 +f 2349/3214/303 2350/3216/303 2354/3217/303 +f 2352/3219/304 2356/3239/304 2355/3220/304 +f 2348/3221/305 2352/3240/305 2349/3222/305 +f 2345/3213/306 2350/3216/306 2351/3215/306 +f 2348/3221/307 2346/3211/307 2357/3223/307 +f 2347/3212/308 2360/3234/308 2359/3225/308 +f 2359/3225/304 2360/3234/304 2353/3230/304 +f 2358/3224/303 2357/3223/303 2355/3235/303 +o Piston +v 0.000000 4.999998 0.499994 +v -0.574025 4.885818 0.499994 +v -1.060660 4.560658 0.499994 +v -1.385819 4.074023 0.499994 +v -1.500000 3.499998 0.499994 +v -1.385819 2.925972 0.499994 +v -1.060660 2.439338 0.499994 +v -0.574025 2.114178 0.499994 +v -0.000001 1.999998 0.499994 +v 0.574024 2.114178 0.499994 +v 1.060659 2.439337 0.499994 +v 1.385818 2.925972 0.499994 +v 1.500000 3.499998 0.499994 +v 1.385818 4.074023 0.499994 +v 1.060659 4.560658 0.499994 +v 0.574024 4.885818 0.499994 +v 0.000000 5.749998 0.499996 +v -0.861038 5.578727 0.499996 +v -1.590990 5.090989 0.499996 +v -2.078729 4.361035 0.499996 +v -2.250000 3.499998 0.499996 +v -2.078729 2.638961 0.499996 +v -1.590990 1.909008 0.499996 +v -0.861038 1.421269 0.499996 +v -0.000001 1.249998 0.499996 +v 0.861037 1.421269 0.499996 +v 1.590989 1.909007 0.499996 +v 2.078729 2.638960 0.499996 +v 2.250000 3.499998 0.499996 +v 2.078728 4.361035 0.499996 +v 1.590989 5.090989 0.499996 +v 0.861036 5.578727 0.499996 +v -0.574025 4.885818 1.249994 +v 0.000000 4.999998 1.249994 +v -1.060660 4.560658 1.249994 +v -1.385819 4.074023 1.249994 +v -1.500000 3.499998 1.249994 +v -1.385819 2.925972 1.249994 +v -1.060660 2.439338 1.249994 +v -0.574025 2.114178 1.249994 +v -0.000001 1.999998 1.249994 +v 0.574024 2.114178 1.249994 +v 1.060659 2.439337 1.249994 +v 1.385818 2.925972 1.249994 +v 1.500000 3.499998 1.249994 +v 1.385818 4.074023 1.249994 +v 1.060659 4.560658 1.249994 +v 0.574024 4.885818 1.249994 +v -0.861038 5.578727 1.249996 +v 0.000000 5.749998 1.249996 +v -1.590990 5.090989 1.249996 +v -2.078729 4.361035 1.249996 +v -2.250000 3.499998 1.249996 +v -2.078729 2.638961 1.249996 +v -1.590990 1.909008 1.249996 +v -0.861038 1.421269 1.249996 +v -0.000001 1.249998 1.249996 +v 0.861037 1.421269 1.249996 +v 1.590989 1.909007 1.249996 +v 2.078729 2.638960 1.249996 +v 2.250000 3.499998 1.249996 +v 2.078728 4.361035 1.249996 +v 1.590989 5.090989 1.249996 +v 0.861036 5.578727 1.249996 +vt 0.246127 0.481395 +vt 0.235800 0.455814 +vt 0.246127 0.460465 +vt 0.246127 0.513954 +vt 0.235800 0.488372 +vt 0.246127 0.493023 +vt 0.246127 0.546512 +vt 0.235800 0.520930 +vt 0.246127 0.525581 +vt 0.246127 0.579070 +vt 0.235800 0.553488 +vt 0.246127 0.558140 +vt 0.246127 0.590698 +vt 0.235800 0.618605 +vt 0.235800 0.586047 +vt 0.246127 0.623256 +vt 0.235800 0.651163 +vt 0.246127 0.655814 +vt 0.235800 0.683721 +vt 0.246127 0.688372 +vt 0.235800 0.716279 +vt 0.246127 0.720930 +vt 0.235800 0.748837 +vt 0.246127 0.774419 +vt 0.246127 0.753488 +vt 0.246127 0.786047 +vt 0.235800 0.813953 +vt 0.235800 0.781395 +vt 0.246127 0.318605 +vt 0.235800 0.293023 +vt 0.246127 0.297674 +vt 0.246127 0.351163 +vt 0.235800 0.325581 +vt 0.246127 0.330233 +vt 0.246127 0.383721 +vt 0.235800 0.358140 +vt 0.246127 0.362791 +vt 0.246127 0.416279 +vt 0.235800 0.390698 +vt 0.246127 0.395349 +vt 0.246127 0.427907 +vt 0.235800 0.423256 +vt 0.225473 0.455814 +vt 0.215146 0.481395 +vt 0.215146 0.460465 +vt 0.225473 0.488372 +vt 0.215146 0.513954 +vt 0.215146 0.493023 +vt 0.225473 0.520930 +vt 0.215146 0.546512 +vt 0.215146 0.525581 +vt 0.225473 0.553488 +vt 0.215146 0.579070 +vt 0.215146 0.558140 +vt 0.215146 0.590698 +vt 0.225473 0.618605 +vt 0.215146 0.611628 +vt 0.215146 0.623256 +vt 0.225473 0.651163 +vt 0.215146 0.644186 +vt 0.215146 0.676744 +vt 0.215146 0.655814 +vt 0.215146 0.688372 +vt 0.225473 0.716279 +vt 0.215146 0.709302 +vt 0.215146 0.720930 +vt 0.225473 0.748837 +vt 0.215146 0.741860 +vt 0.215146 0.774419 +vt 0.215146 0.753488 +vt 0.215146 0.786047 +vt 0.225473 0.813953 +vt 0.215146 0.806977 +vt 0.225473 0.293023 +vt 0.215146 0.318605 +vt 0.215146 0.297674 +vt 0.225473 0.325581 +vt 0.215146 0.351163 +vt 0.215146 0.330233 +vt 0.225473 0.358140 +vt 0.215146 0.383721 +vt 0.215146 0.362791 +vt 0.225473 0.390698 +vt 0.215146 0.416279 +vt 0.215146 0.395349 +vt 0.215146 0.427907 +vt 0.215146 0.448837 +vt 0.246127 0.611628 +vt 0.246127 0.644186 +vt 0.246127 0.676744 +vt 0.246127 0.709302 +vt 0.246127 0.741860 +vt 0.246127 0.806977 +vt 0.246127 0.448837 +vt 0.225473 0.586047 +vt 0.225473 0.683721 +vt 0.225473 0.781395 +vt 0.225473 0.423256 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.9239 0.3827 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.7071 -0.7071 0.0000 +s off +f 2375/3241/317 2390/3242/317 2374/3243/317 +f 2376/3244/317 2391/3245/317 2375/3246/317 +f 2361/3247/317 2392/3248/317 2376/3249/317 +f 2362/3250/317 2377/3251/317 2361/3252/317 +f 2362/3253/317 2379/3254/317 2378/3255/317 +f 2363/3256/317 2380/3257/317 2379/3254/317 +f 2364/3258/317 2381/3259/317 2380/3257/317 +f 2365/3260/317 2382/3261/317 2381/3259/317 +f 2366/3262/317 2383/3263/317 2382/3261/317 +f 2368/3264/317 2383/3263/317 2367/3265/317 +f 2368/3266/317 2385/3267/317 2384/3268/317 +f 2370/3269/317 2385/3270/317 2369/3271/317 +f 2371/3272/317 2386/3273/317 2370/3274/317 +f 2372/3275/317 2387/3276/317 2371/3277/317 +f 2373/3278/317 2388/3279/317 2372/3280/317 +f 2373/3281/317 2390/3242/317 2389/3282/317 +f 2422/3283/318 2407/3284/318 2406/3285/318 +f 2423/3286/318 2408/3287/318 2407/3288/318 +f 2424/3289/318 2394/3290/318 2408/3291/318 +f 2410/3292/318 2393/3293/318 2394/3294/318 +f 2393/3295/318 2411/3296/318 2395/3297/318 +f 2395/3298/318 2412/3299/318 2396/3300/318 +f 2412/3299/318 2397/3301/318 2396/3302/318 +f 2397/3303/318 2414/3304/318 2398/3305/318 +f 2398/3306/318 2415/3307/318 2399/3308/318 +f 2415/3307/318 2400/3309/318 2399/3310/318 +f 2400/3311/318 2417/3312/318 2401/3313/318 +f 2417/3314/318 2402/3315/318 2401/3316/318 +f 2418/3317/318 2403/3318/318 2402/3319/318 +f 2419/3320/318 2404/3321/318 2403/3322/318 +f 2420/3323/318 2405/3324/318 2404/3325/318 +f 2405/3326/318 2422/3283/318 2406/3327/318 +f 2375/3241/317 2391/3245/317 2390/3242/317 +f 2376/3244/317 2392/3248/317 2391/3245/317 +f 2361/3247/317 2377/3251/317 2392/3248/317 +f 2362/3250/317 2378/3255/317 2377/3251/317 +f 2362/3253/317 2363/3328/317 2379/3254/317 +f 2363/3256/317 2364/3329/317 2380/3257/317 +f 2364/3258/317 2365/3330/317 2381/3259/317 +f 2365/3260/317 2366/3331/317 2382/3261/317 +f 2366/3262/317 2367/3332/317 2383/3263/317 +f 2368/3264/317 2384/3268/317 2383/3263/317 +f 2368/3266/317 2369/3333/317 2385/3267/317 +f 2370/3269/317 2386/3273/317 2385/3270/317 +f 2371/3272/317 2387/3276/317 2386/3273/317 +f 2372/3275/317 2388/3279/317 2387/3276/317 +f 2373/3278/317 2389/3282/317 2388/3279/317 +f 2373/3281/317 2374/3334/317 2390/3242/317 +f 2422/3283/318 2423/3286/318 2407/3284/318 +f 2423/3286/318 2424/3289/318 2408/3287/318 +f 2424/3289/318 2410/3292/318 2394/3290/318 +f 2410/3292/318 2409/3335/318 2393/3293/318 +f 2393/3295/318 2409/3335/318 2411/3296/318 +f 2395/3298/318 2411/3296/318 2412/3299/318 +f 2412/3299/318 2413/3336/318 2397/3301/318 +f 2397/3303/318 2413/3336/318 2414/3304/318 +f 2398/3306/318 2414/3304/318 2415/3307/318 +f 2415/3307/318 2416/3337/318 2400/3309/318 +f 2400/3311/318 2416/3337/318 2417/3312/318 +f 2417/3314/318 2418/3317/318 2402/3315/318 +f 2418/3317/318 2419/3320/318 2403/3318/318 +f 2419/3320/318 2420/3323/318 2404/3321/318 +f 2420/3323/318 2421/3338/318 2405/3324/318 +f 2405/3326/318 2421/3338/318 2422/3283/318 +s 1 +f 2389/3282/319 2420/3323/320 2388/3279/320 +f 2390/3242/321 2421/3338/319 2389/3282/319 +f 2391/3245/322 2422/3283/321 2390/3242/321 +f 2378/3255/323 2410/3292/324 2377/3251/324 +f 2392/3248/325 2423/3286/322 2391/3245/322 +f 2379/3254/326 2409/3335/323 2378/3255/323 +f 2377/3251/324 2424/3289/325 2392/3248/325 +f 2380/3257/327 2411/3296/326 2379/3254/326 +f 2381/3259/328 2412/3299/327 2380/3257/327 +f 2382/3261/329 2413/3336/328 2381/3259/328 +f 2383/3263/330 2414/3304/329 2382/3261/329 +f 2384/3268/331 2415/3307/330 2383/3263/330 +f 2385/3267/332 2416/3337/331 2384/3268/331 +f 2386/3273/333 2417/3314/332 2385/3270/332 +f 2387/3276/334 2418/3317/333 2386/3273/333 +f 2388/3279/320 2419/3320/334 2387/3276/334 +f 2389/3282/319 2421/3338/319 2420/3323/320 +f 2390/3242/321 2422/3283/321 2421/3338/319 +f 2391/3245/322 2423/3286/322 2422/3283/321 +f 2378/3255/323 2409/3335/323 2410/3292/324 +f 2392/3248/325 2424/3289/325 2423/3286/322 +f 2379/3254/326 2411/3296/326 2409/3335/323 +f 2377/3251/324 2410/3292/324 2424/3289/325 +f 2380/3257/327 2412/3299/327 2411/3296/326 +f 2381/3259/328 2413/3336/328 2412/3299/327 +f 2382/3261/329 2414/3304/329 2413/3336/328 +f 2383/3263/330 2415/3307/330 2414/3304/329 +f 2384/3268/331 2416/3337/331 2415/3307/330 +f 2385/3267/332 2417/3312/332 2416/3337/331 +f 2386/3273/333 2418/3317/333 2417/3314/332 +f 2387/3276/334 2419/3320/334 2418/3317/333 +f 2388/3279/320 2420/3323/320 2419/3320/334 +o Flap +v -0.750000 6.812501 8.750000 +v 0.750000 6.812501 8.750000 +v -0.750000 7.062501 8.750000 +v 0.750000 7.062501 8.750000 +v -0.499999 6.937501 10.500000 +v 0.500000 6.937501 10.500000 +v 0.281250 6.843751 8.750000 +v 0.468750 6.843751 8.750000 +v 0.281250 7.031251 8.750000 +v 0.468750 7.031250 8.750000 +v -0.312500 7.000001 8.375000 +v -0.437500 7.000001 8.375000 +v -0.312500 6.875000 8.375000 +v -0.437500 6.875000 8.375000 +v -0.281249 7.031251 8.750000 +v -0.468749 7.031251 8.750000 +v -0.281250 6.843751 8.750000 +v -0.468750 6.843751 8.750000 +v 0.312500 6.875001 8.375000 +v 0.437500 6.875001 8.375000 +v 0.312500 7.000001 8.375000 +v 0.437501 7.000001 8.375000 +vt 0.557659 0.162791 +vt 0.537005 0.153488 +vt 0.557659 0.153488 +vt 0.540448 0.088372 +vt 0.540448 0.227907 +vt 0.537005 0.162791 +vt 0.512909 0.158140 +vt 0.581756 0.158140 +vt 0.507745 0.169767 +vt 0.512909 0.162791 +vt 0.512909 0.169767 +vt 0.512909 0.176744 +vt 0.507745 0.176744 +vt 0.507745 0.162791 +vt 0.512909 0.155814 +vt 0.507745 0.148837 +vt 0.512909 0.155814 +vt 0.507745 0.155814 +vt 0.512909 0.162791 +vt 0.507745 0.162791 +vt 0.507745 0.176744 +vt 0.512909 0.169767 +vt 0.512909 0.176744 +vt 0.507745 0.169767 +vt 0.507745 0.155814 +vt 0.512909 0.148837 +vt 0.554217 0.088372 +vt 0.554217 0.227907 +vt 0.512909 0.148837 +vt 0.507745 0.148837 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.9975 0.0712 +vn 0.0000 0.9975 0.0712 +vn 0.9899 0.0000 0.1414 +vn -0.9899 0.0000 0.1414 +vn 0.0000 0.9965 -0.0830 +vn -0.9965 0.0000 -0.0830 +vn 0.9965 -0.0000 -0.0830 +vn 0.0000 -0.9965 -0.0830 +s off +f 2427/3339/335 2426/3340/335 2425/3341/335 +f 2430/3342/336 2425/3341/336 2426/3340/336 +f 2427/3339/337 2430/3343/337 2428/3344/337 +f 2426/3340/338 2428/3344/338 2430/3345/338 +f 2425/3341/339 2429/3346/339 2427/3339/339 +f 2433/3347/340 2446/3348/340 2445/3349/340 +f 2433/3347/341 2443/3350/341 2431/3351/341 +f 2434/3352/342 2444/3353/342 2446/3348/342 +f 2442/3354/343 2437/3355/343 2441/3356/343 +f 2441/3356/342 2435/3357/342 2439/3358/342 +f 2442/3359/341 2436/3360/341 2438/3361/341 +f 2440/3362/340 2435/3357/340 2436/3360/340 +f 2432/3363/343 2443/3364/343 2444/3353/343 +f 2427/3339/335 2428/3344/335 2426/3340/335 +f 2430/3342/336 2429/3365/336 2425/3341/336 +f 2427/3339/337 2429/3366/337 2430/3343/337 +f 2433/3347/340 2434/3352/340 2446/3348/340 +f 2433/3347/341 2445/3349/341 2443/3350/341 +f 2434/3352/342 2432/3363/342 2444/3353/342 +f 2442/3354/343 2438/3367/343 2437/3355/343 +f 2441/3356/342 2437/3355/342 2435/3357/342 +f 2442/3359/341 2440/3362/341 2436/3360/341 +f 2440/3362/340 2439/3358/340 2435/3357/340 +f 2432/3363/343 2431/3368/343 2443/3364/343 +o TurbineBack +v -0.562500 3.249998 -5.250007 +v 0.562500 3.249998 -5.250007 +v -0.562500 3.749998 -5.250007 +v 0.562500 3.749998 -5.250007 +v -0.250000 4.062498 -5.250007 +v -0.250000 2.937498 -5.250007 +v 0.250000 4.062498 -5.250007 +v 0.250000 2.937498 -5.250007 +v -0.562500 3.249998 -6.250007 +v 0.562500 3.249998 -6.250007 +v -0.562500 3.749998 -6.250007 +v 0.562500 3.749998 -6.250007 +v -0.250000 4.062498 -6.250007 +v -0.250000 2.937498 -6.250007 +v 0.250000 4.062498 -6.250007 +v 0.250000 2.937498 -6.250007 +v 1.092830 4.280329 -5.250007 +v 1.092830 4.280329 -6.250007 +v 0.780330 4.592829 -6.250007 +v 0.780330 4.592829 -5.250007 +v 0.250000 4.812498 -5.250007 +v 0.250000 4.812498 -6.250007 +v -0.250000 4.812498 -6.250007 +v -0.250000 4.812498 -5.250007 +v -1.312500 3.749998 -5.250007 +v -1.312500 3.749998 -6.250007 +v -1.312500 3.249998 -6.250007 +v -1.312500 3.249998 -5.250007 +v 1.092830 2.719668 -5.250007 +v 0.780330 2.407168 -5.250007 +v 0.780330 2.407168 -6.250007 +v 1.092830 2.719668 -6.250007 +v -1.092831 4.280329 -5.250007 +v -0.780331 4.592829 -5.250007 +v -0.780331 4.592829 -6.250007 +v -1.092831 4.280329 -6.250007 +v -0.250000 2.187498 -5.250007 +v -0.250000 2.187498 -6.250007 +v 0.250000 2.187498 -6.250007 +v 0.250000 2.187498 -5.250007 +v 1.312500 3.249998 -5.250007 +v 1.312500 3.249998 -6.250007 +v 1.312500 3.749998 -6.250007 +v 1.312500 3.749998 -5.250007 +v -1.092831 2.719668 -5.250007 +v -1.092831 2.719668 -6.250007 +v -0.780331 2.407168 -6.250007 +v -0.780331 2.407168 -5.250007 +vt 0.065404 0.674419 +vt 0.075732 0.655814 +vt 0.075732 0.674419 +vt 0.051635 0.655814 +vt 0.041308 0.674419 +vt 0.041308 0.655814 +vt 0.075732 0.674419 +vt 0.065404 0.655814 +vt 0.075732 0.655814 +vt 0.051635 0.655814 +vt 0.041308 0.674419 +vt 0.041308 0.655814 +vt 0.065404 0.674419 +vt 0.075732 0.655814 +vt 0.075732 0.674419 +vt 0.051635 0.655814 +vt 0.041308 0.674419 +vt 0.041308 0.655814 +vt 0.041308 0.655814 +vt 0.051635 0.674419 +vt 0.041308 0.674419 +vt 0.065404 0.674419 +vt 0.075732 0.655814 +vt 0.075732 0.674419 +vt 0.051635 0.655814 +vt 0.041308 0.674419 +vt 0.041308 0.655814 +vt 0.065404 0.674419 +vt 0.075732 0.655814 +vt 0.075732 0.674419 +vt 0.065404 0.674419 +vt 0.075732 0.655814 +vt 0.075732 0.674419 +vt 0.051635 0.655814 +vt 0.041308 0.674419 +vt 0.041308 0.655814 +vt 0.051635 0.627907 +vt 0.065404 0.627907 +vt 0.065404 0.674419 +vt 0.075732 0.655814 +vt 0.075732 0.674419 +vt 0.051635 0.655814 +vt 0.065404 0.627907 +vt 0.065404 0.655814 +vt 0.051635 0.655814 +vt 0.041308 0.674419 +vt 0.041308 0.655814 +vt 0.065404 0.627907 +vt 0.051635 0.627907 +vt 0.065404 0.627907 +vt 0.065404 0.655814 +vt 0.065404 0.674419 +vt 0.075732 0.655814 +vt 0.075732 0.674419 +vt 0.065404 0.627907 +vt 0.065404 0.655814 +vt 0.041308 0.655814 +vt 0.051635 0.674419 +vt 0.041308 0.674419 +vt 0.065404 0.627907 +vt 0.051635 0.655814 +vt 0.051635 0.627907 +vt 0.065404 0.627907 +vt 0.065404 0.655814 +vt 0.065404 0.655814 +vt 0.065404 0.627907 +vt 0.051635 0.674419 +vt 0.065404 0.702326 +vt 0.051635 0.674419 +vt 0.065404 0.702326 +vt 0.065404 0.674419 +vt 0.065404 0.702326 +vt 0.051635 0.674419 +vt 0.065404 0.702326 +vt 0.065404 0.702326 +vt 0.051635 0.674419 +vt 0.051635 0.702326 +vt 0.065404 0.702326 +vt 0.051635 0.674419 +vt 0.065404 0.702326 +vt 0.065404 0.702326 +vt 0.051635 0.702326 +vt 0.051635 0.674419 +vt 0.051635 0.702326 +vt 0.051635 0.702326 +vt 0.051635 0.702326 +vt 0.051635 0.702326 +vt 0.051635 0.702326 +vt 0.051635 0.702326 +vt 0.051635 0.627907 +vt 0.051635 0.627907 +vt 0.051635 0.627907 +vt 0.051635 0.627907 +vt 0.051635 0.627907 +vt 0.065404 0.655814 +vt 0.065404 0.655814 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.8944 0.0000 -0.4472 +vn 0.0000 -0.7646 -0.6445 +vn 0.0000 -0.8944 -0.4472 +vn 0.7646 0.0000 -0.6445 +vn 0.5298 0.5298 -0.6623 +vn -0.6468 0.6468 -0.4042 +vn -0.5298 0.5298 -0.6623 +vn 0.0000 0.7646 -0.6445 +vn -0.5070 -0.5070 0.6971 +vn -0.6965 0.0000 0.7176 +vn -0.5070 0.5070 0.6971 +vn 0.0000 0.6965 0.7176 +vn 0.5070 0.5070 0.6971 +vn 0.6667 -0.6667 0.3333 +vn 0.5070 -0.5070 0.6971 +vn -0.6667 -0.6667 0.3333 +vn 0.6667 0.6667 0.3333 +vn 0.0000 0.9545 0.2983 +vn -0.6667 0.6667 0.3333 +vn -0.9545 0.0000 0.2983 +vn 0.0000 -0.6965 0.7176 +vn 0.0000 -0.9545 0.2983 +vn 0.6965 0.0000 0.7176 +vn 0.9545 0.0000 0.2983 +vn -0.6468 -0.6468 -0.4042 +vn 0.5298 -0.5298 -0.6623 +vn 0.6468 -0.6468 -0.4042 +vn 0.8944 0.0000 -0.4472 +vn 0.6468 0.6468 -0.4042 +vn 0.0000 0.8944 -0.4472 +vn -0.7646 0.0000 -0.6445 +vn -0.5298 -0.5298 -0.6623 +vn 0.0000 0.9767 -0.2146 +vn -0.6269 0.7614 0.1652 +vn -0.0870 0.9817 -0.1695 +vn 0.6906 0.6906 -0.2146 +vn 0.0870 0.9817 0.1695 +vn 0.6269 0.7614 -0.1652 +vn 0.6906 0.6906 0.2146 +vn 0.9817 0.0870 -0.1695 +vn 0.7614 0.6269 0.1652 +vn 0.6906 -0.6906 -0.2146 +vn 0.9817 -0.0870 0.1695 +vn 0.7614 -0.6269 -0.1652 +vn 0.0000 -0.9767 -0.2146 +vn 0.6269 -0.7614 0.1652 +vn 0.0870 -0.9817 -0.1695 +vn 0.0000 -0.9767 0.2146 +vn -0.6269 -0.7614 -0.1652 +vn -0.0870 -0.9817 0.1695 +vn -0.9767 0.0000 -0.2146 +vn -0.7614 -0.6269 0.1652 +vn -0.9817 -0.0870 -0.1695 +vn -0.9767 0.0000 0.2146 +vn -0.7614 0.6269 -0.1652 +vn -0.9817 0.0870 0.1695 +vn 0.0000 0.9767 0.2146 +vn 0.9767 0.0000 -0.2146 +vn 0.9767 0.0000 0.2146 +vn 0.6906 -0.6906 0.2146 +vn -0.6906 -0.6906 -0.2146 +vn -0.6906 -0.6906 0.2146 +vn -0.6906 0.6906 -0.2146 +vn -0.6906 0.6906 0.2146 +s off +f 2469/3369/344 2461/3370/344 2459/3371/344 +f 2463/3372/345 2453/3373/345 2450/3374/345 +f 2461/3375/344 2464/3376/344 2458/3377/344 +f 2467/3378/345 2451/3379/345 2453/3380/345 +f 2473/3381/344 2457/3382/344 2455/3383/344 +f 2471/3384/345 2447/3385/345 2449/3386/345 +f 2454/3387/345 2475/3388/345 2448/3389/345 +f 2478/3390/344 2462/3391/344 2456/3392/344 +f 2480/3393/345 2449/3394/345 2451/3395/345 +f 2482/3396/344 2459/3397/344 2457/3398/344 +f 2485/3399/344 2460/3400/344 2462/3401/344 +f 2483/3402/345 2454/3403/345 2452/3404/345 +f 2483/3402/346 2452/3405/346 2462/3406/346 +f 2489/3407/344 2456/3408/344 2458/3409/344 +f 2476/3410/347 2456/3411/347 2488/3412/347 +f 2487/3413/345 2450/3414/345 2448/3415/345 +f 2458/3416/348 2487/3413/348 2448/3417/348 +f 2463/3372/349 2461/3418/349 2468/3419/349 +f 2493/3420/344 2455/3421/344 2460/3422/344 +f 2467/3378/350 2459/3423/350 2481/3424/350 +f 2447/3425/345 2494/3426/345 2452/3427/345 +f 2460/3428/351 2491/3429/351 2447/3430/351 +f 2471/3384/352 2455/3431/352 2492/3432/352 +f 2472/3433/353 2480/3393/353 2457/3434/353 +f 2470/3435/354 2482/3396/354 2457/3436/354 +f 2466/3437/355 2469/3369/355 2459/3438/355 +f 2465/3439/356 2461/3440/356 2490/3441/356 +f 2475/3388/357 2489/3407/357 2458/3442/357 +f 2478/3390/358 2456/3443/358 2486/3444/358 +f 2452/3445/359 2494/3426/359 2462/3446/359 +f 2474/3447/360 2493/3420/360 2460/3448/360 +f 2455/3449/361 2449/3450/361 2479/3451/361 +f 2458/3442/362 2448/3452/362 2475/3388/362 +f 2490/3441/363 2461/3440/363 2450/3453/363 +f 2459/3438/364 2453/3454/364 2466/3437/364 +f 2457/3436/365 2451/3455/365 2470/3435/365 +f 2479/3451/366 2473/3381/366 2455/3449/366 +f 2460/3448/367 2447/3456/367 2474/3447/367 +f 2462/3446/368 2494/3426/368 2485/3399/368 +f 2486/3444/369 2456/3443/369 2454/3457/369 +f 2456/3411/370 2476/3410/370 2454/3458/370 +f 2487/3413/371 2458/3416/371 2464/3376/371 +f 2461/3418/372 2463/3372/372 2450/3459/372 +f 2459/3423/373 2467/3378/373 2453/3460/373 +f 2457/3434/374 2480/3393/374 2451/3461/374 +f 2455/3431/375 2471/3384/375 2449/3462/375 +f 2491/3429/376 2460/3428/376 2484/3463/376 +f 2462/3406/377 2477/3464/377 2483/3402/377 +f 2469/3369/344 2468/3419/344 2461/3370/344 +f 2463/3372/345 2466/3437/345 2453/3373/345 +f 2461/3375/344 2465/3439/344 2464/3376/344 +f 2467/3378/345 2470/3435/345 2451/3379/345 +f 2473/3381/344 2472/3433/344 2457/3382/344 +f 2471/3384/345 2474/3447/345 2447/3385/345 +f 2454/3387/345 2476/3410/345 2475/3388/345 +f 2478/3390/344 2477/3464/344 2462/3391/344 +f 2480/3393/345 2479/3451/345 2449/3394/345 +f 2482/3396/344 2481/3424/344 2459/3397/344 +f 2485/3399/344 2484/3463/344 2460/3400/344 +f 2483/3402/345 2486/3444/345 2454/3403/345 +f 2489/3407/344 2488/3412/344 2456/3408/344 +f 2487/3413/345 2490/3441/345 2450/3414/345 +f 2493/3420/344 2492/3432/344 2455/3421/344 +f 2447/3425/345 2491/3429/345 2494/3426/345 +s 1 +f 2467/3378/378 2481/3424/379 2470/3435/380 +f 2463/3372/381 2468/3419/382 2466/3437/383 +f 2465/3439/384 2490/3441/385 2464/3376/386 +f 2476/3410/387 2488/3412/388 2475/3388/389 +f 2483/3402/390 2477/3464/391 2486/3444/392 +f 2485/3399/393 2494/3426/394 2484/3463/395 +f 2471/3384/396 2492/3432/397 2474/3447/398 +f 2473/3381/399 2479/3451/400 2472/3433/401 +f 2466/3437/383 2468/3419/382 2469/3369/402 +f 2464/3376/386 2490/3441/385 2487/3413/403 +f 2475/3388/389 2488/3412/388 2489/3407/404 +f 2486/3444/392 2477/3464/391 2478/3390/405 +f 2484/3463/395 2494/3426/394 2491/3429/406 +f 2474/3447/398 2492/3432/397 2493/3420/407 +f 2472/3433/401 2479/3451/400 2480/3393/408 +f 2470/3435/380 2481/3424/379 2482/3396/409 +o TurbineFront +v -0.562500 3.249998 -4.250007 +v 0.562500 3.249998 -4.250007 +v -0.562500 3.749998 -4.250007 +v 0.562500 3.749998 -4.250007 +v -0.250000 4.062498 -4.250007 +v -0.250000 2.937498 -4.250007 +v 0.250000 4.062498 -4.250007 +v 0.250000 2.937498 -4.250007 +v -0.562500 3.249998 -5.250007 +v 0.562500 3.249998 -5.250007 +v -0.562500 3.749998 -5.250007 +v 0.562500 3.749998 -5.250007 +v -0.250000 4.062498 -5.250007 +v -0.250000 2.937498 -5.250007 +v 0.250000 4.062498 -5.250007 +v 0.250000 2.937498 -5.250007 +v 1.092830 4.280328 -4.250007 +v 1.092830 4.280328 -5.250007 +v 0.780330 4.592828 -5.250007 +v 0.780330 4.592828 -4.250007 +v 0.250000 4.812498 -4.250007 +v 0.250000 4.812498 -5.250007 +v -0.250000 4.812498 -5.250007 +v -0.250000 4.812498 -4.250007 +v -1.312500 3.749998 -4.250007 +v -1.312500 3.749998 -5.250007 +v -1.312500 3.249998 -5.250007 +v -1.312500 3.249998 -4.250007 +v 1.092830 2.719668 -4.250007 +v 0.780330 2.407168 -4.250007 +v 0.780330 2.407168 -5.250007 +v 1.092830 2.719668 -5.250007 +v -1.092831 4.280328 -4.250007 +v -0.780331 4.592828 -4.250007 +v -0.780331 4.592828 -5.250007 +v -1.092831 4.280328 -5.250007 +v -0.250000 2.187498 -4.250007 +v -0.250000 2.187498 -5.250007 +v 0.250000 2.187498 -5.250007 +v 0.250000 2.187498 -4.250007 +v 1.312500 3.249998 -4.250007 +v 1.312500 3.249998 -5.250007 +v 1.312500 3.749998 -5.250007 +v 1.312500 3.749998 -4.250007 +v -1.092831 2.719668 -4.250007 +v -1.092831 2.719668 -5.250007 +v -0.780331 2.407168 -5.250007 +v -0.780331 2.407168 -4.250007 +vt 0.030981 0.674419 +vt 0.041308 0.655814 +vt 0.041308 0.674419 +vt 0.017212 0.655814 +vt 0.006885 0.674419 +vt 0.006885 0.655814 +vt 0.041308 0.674419 +vt 0.030981 0.655814 +vt 0.041308 0.655814 +vt 0.017212 0.655814 +vt 0.006885 0.674419 +vt 0.006885 0.655814 +vt 0.030981 0.674419 +vt 0.041308 0.655814 +vt 0.041308 0.674419 +vt 0.017212 0.655814 +vt 0.006885 0.674419 +vt 0.006885 0.655814 +vt 0.006885 0.655814 +vt 0.017212 0.674419 +vt 0.006885 0.674419 +vt 0.030981 0.674419 +vt 0.041308 0.655814 +vt 0.041308 0.674419 +vt 0.017212 0.655814 +vt 0.006885 0.674419 +vt 0.006885 0.655814 +vt 0.041308 0.674419 +vt 0.030981 0.655814 +vt 0.041308 0.655814 +vt 0.030981 0.674419 +vt 0.041308 0.655814 +vt 0.041308 0.674419 +vt 0.017212 0.655814 +vt 0.006885 0.674419 +vt 0.006885 0.655814 +vt 0.017212 0.627907 +vt 0.030981 0.627907 +vt 0.030981 0.674419 +vt 0.041308 0.655814 +vt 0.041308 0.674419 +vt 0.017212 0.655814 +vt 0.030981 0.627907 +vt 0.030981 0.655814 +vt 0.017212 0.655814 +vt 0.006885 0.674419 +vt 0.006885 0.655814 +vt 0.030981 0.627907 +vt 0.017212 0.627907 +vt 0.030981 0.627907 +vt 0.030981 0.655814 +vt 0.030981 0.674419 +vt 0.041308 0.655814 +vt 0.041308 0.674419 +vt 0.030981 0.627907 +vt 0.006885 0.655814 +vt 0.017212 0.674419 +vt 0.006885 0.674419 +vt 0.030981 0.627907 +vt 0.017212 0.655814 +vt 0.017212 0.627907 +vt 0.030981 0.627907 +vt 0.030981 0.655814 +vt 0.030981 0.655814 +vt 0.030981 0.627907 +vt 0.017212 0.674419 +vt 0.030981 0.674419 +vt 0.030981 0.702326 +vt 0.017212 0.674419 +vt 0.030981 0.702326 +vt 0.030981 0.674419 +vt 0.030981 0.702326 +vt 0.017212 0.674419 +vt 0.030981 0.702326 +vt 0.030981 0.702326 +vt 0.017212 0.674419 +vt 0.017212 0.702326 +vt 0.030981 0.702326 +vt 0.017212 0.674419 +vt 0.030981 0.702326 +vt 0.030981 0.702326 +vt 0.017212 0.674419 +vt 0.017212 0.627907 +vt 0.017212 0.627907 +vt 0.017212 0.627907 +vt 0.030981 0.655814 +vt 0.030981 0.655814 +vt 0.017212 0.627907 +vt 0.017212 0.627907 +vt 0.017212 0.702326 +vt 0.017212 0.702326 +vt 0.017212 0.702326 +vt 0.017212 0.702326 +vt 0.017212 0.702326 +vt 0.017212 0.702326 +vt 0.017212 0.702326 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 0.0000 1.0000 +vn -0.8944 0.0000 -0.4472 +vn 0.0000 -0.7646 -0.6445 +vn 0.0000 -0.8944 -0.4472 +vn 0.7646 0.0000 -0.6445 +vn 0.5298 0.5298 -0.6623 +vn -0.6468 0.6468 -0.4042 +vn -0.5298 0.5298 -0.6623 +vn 0.0000 0.7646 -0.6445 +vn -0.5070 -0.5070 0.6971 +vn -0.6965 0.0000 0.7176 +vn -0.5070 0.5070 0.6971 +vn 0.0000 0.6965 0.7176 +vn 0.5070 0.5070 0.6971 +vn 0.6667 -0.6667 0.3333 +vn 0.5070 -0.5070 0.6971 +vn 0.0000 -0.6965 0.7176 +vn 0.8944 0.0000 -0.4472 +vn 0.6468 0.6468 -0.4042 +vn 0.0000 0.8944 -0.4472 +vn -0.7646 0.0000 -0.6445 +vn -0.5298 -0.5298 -0.6623 +vn -0.6468 -0.6468 -0.4042 +vn 0.5298 -0.5298 -0.6623 +vn 0.6468 -0.6468 -0.4042 +vn -0.6667 0.6667 0.3333 +vn 0.0000 0.9545 0.2983 +vn 0.6667 0.6667 0.3333 +vn 0.9545 0.0000 0.2983 +vn 0.6965 0.0000 0.7176 +vn 0.0000 -0.9545 0.2983 +vn -0.6667 -0.6667 0.3333 +vn -0.9545 0.0000 0.2983 +vn 0.0000 0.9767 -0.2146 +vn -0.6269 0.7614 0.1652 +vn -0.0870 0.9817 -0.1695 +vn 0.6906 0.6906 -0.2146 +vn 0.0870 0.9817 0.1695 +vn 0.6269 0.7614 -0.1652 +vn 0.6906 0.6906 0.2146 +vn 0.9817 0.0870 -0.1695 +vn 0.7614 0.6269 0.1652 +vn 0.6906 -0.6906 -0.2146 +vn 0.9817 -0.0870 0.1695 +vn 0.7614 -0.6269 -0.1652 +vn 0.0000 -0.9767 -0.2146 +vn 0.6269 -0.7614 0.1652 +vn 0.0870 -0.9817 -0.1695 +vn 0.0000 -0.9767 0.2146 +vn -0.6269 -0.7614 -0.1652 +vn -0.0870 -0.9817 0.1695 +vn -0.9767 0.0000 -0.2146 +vn -0.7614 -0.6269 0.1652 +vn -0.9817 -0.0870 -0.1695 +vn -0.9767 0.0000 0.2146 +vn -0.7614 0.6269 -0.1652 +vn -0.9817 0.0870 0.1695 +vn 0.0000 0.9767 0.2146 +vn 0.9767 0.0000 -0.2146 +vn 0.9767 0.0000 0.2146 +vn 0.6906 -0.6906 0.2146 +vn -0.6906 -0.6906 -0.2146 +vn -0.6906 -0.6906 0.2146 +vn -0.6906 0.6906 -0.2146 +vn -0.6906 0.6906 0.2146 +s off +f 2517/3465/410 2509/3466/410 2507/3467/410 +f 2511/3468/411 2501/3469/411 2498/3470/411 +f 2509/3471/410 2512/3472/410 2506/3473/410 +f 2515/3474/411 2499/3475/411 2501/3476/411 +f 2521/3477/410 2505/3478/410 2503/3479/410 +f 2519/3480/411 2495/3481/411 2497/3482/411 +f 2502/3483/411 2523/3484/411 2496/3485/411 +f 2526/3486/410 2510/3487/410 2504/3488/410 +f 2528/3489/411 2497/3490/411 2499/3491/411 +f 2505/3492/410 2529/3493/410 2507/3494/410 +f 2533/3495/410 2508/3496/410 2510/3497/410 +f 2531/3498/411 2502/3499/411 2500/3500/411 +f 2531/3498/412 2500/3501/412 2510/3502/412 +f 2537/3503/410 2504/3504/410 2506/3505/410 +f 2524/3506/413 2504/3507/413 2536/3508/413 +f 2535/3509/411 2498/3510/411 2496/3511/411 +f 2506/3512/414 2535/3509/414 2496/3513/414 +f 2511/3468/415 2509/3514/415 2516/3515/415 +f 2541/3516/410 2503/3517/410 2508/3518/410 +f 2515/3474/416 2507/3519/416 2529/3493/416 +f 2495/3520/411 2542/3521/411 2500/3522/411 +f 2508/3523/417 2539/3524/417 2495/3525/417 +f 2519/3480/418 2503/3526/418 2540/3527/418 +f 2520/3528/419 2528/3489/419 2505/3529/419 +f 2518/3530/420 2530/3531/420 2505/3532/420 +f 2514/3533/421 2517/3465/421 2507/3534/421 +f 2513/3535/422 2509/3536/422 2538/3537/422 +f 2523/3484/423 2537/3503/423 2506/3538/423 +f 2526/3486/424 2504/3539/424 2534/3540/424 +f 2500/3541/425 2542/3521/425 2510/3542/425 +f 2522/3543/426 2541/3516/426 2508/3544/426 +f 2503/3545/427 2527/3546/427 2521/3477/427 +f 2507/3519/428 2515/3474/428 2501/3547/428 +f 2505/3529/429 2528/3489/429 2499/3548/429 +f 2503/3526/430 2519/3480/430 2497/3549/430 +f 2539/3524/431 2508/3523/431 2532/3550/431 +f 2510/3502/432 2525/3551/432 2531/3498/432 +f 2504/3507/433 2524/3506/433 2502/3552/433 +f 2535/3509/434 2506/3512/434 2512/3472/434 +f 2509/3514/435 2511/3468/435 2498/3553/435 +f 2507/3534/436 2501/3554/436 2514/3533/436 +f 2538/3537/437 2509/3536/437 2498/3555/437 +f 2506/3538/438 2496/3556/438 2523/3484/438 +f 2534/3540/439 2504/3539/439 2502/3557/439 +f 2510/3542/440 2542/3521/440 2533/3495/440 +f 2508/3544/441 2495/3558/441 2522/3543/441 +f 2527/3546/442 2503/3545/442 2497/3559/442 +f 2505/3532/443 2499/3560/443 2518/3530/443 +f 2517/3465/410 2516/3515/410 2509/3466/410 +f 2511/3468/411 2514/3533/411 2501/3469/411 +f 2509/3471/410 2513/3535/410 2512/3472/410 +f 2515/3474/411 2518/3530/411 2499/3475/411 +f 2521/3477/410 2520/3528/410 2505/3478/410 +f 2519/3480/411 2522/3543/411 2495/3481/411 +f 2502/3483/411 2524/3506/411 2523/3484/411 +f 2526/3486/410 2525/3551/410 2510/3487/410 +f 2528/3489/411 2527/3546/411 2497/3490/411 +f 2505/3492/410 2530/3531/410 2529/3493/410 +f 2533/3495/410 2532/3550/410 2508/3496/410 +f 2531/3498/411 2534/3540/411 2502/3499/411 +f 2537/3503/410 2536/3508/410 2504/3504/410 +f 2535/3509/411 2538/3537/411 2498/3510/411 +f 2541/3516/410 2540/3527/410 2503/3517/410 +f 2495/3520/411 2539/3524/411 2542/3521/411 +s 1 +f 2515/3474/444 2529/3493/445 2518/3530/446 +f 2511/3468/447 2516/3515/448 2514/3533/449 +f 2513/3535/450 2538/3537/451 2512/3472/452 +f 2524/3506/453 2536/3508/454 2523/3484/455 +f 2531/3498/456 2525/3551/457 2534/3540/458 +f 2533/3495/459 2542/3521/460 2532/3550/461 +f 2519/3480/462 2540/3527/463 2522/3543/464 +f 2521/3477/465 2527/3546/466 2520/3528/467 +f 2514/3533/449 2516/3515/448 2517/3465/468 +f 2512/3472/452 2538/3537/451 2535/3509/469 +f 2523/3484/455 2536/3508/454 2537/3503/470 +f 2534/3540/458 2525/3551/457 2526/3486/471 +f 2532/3550/461 2542/3521/460 2539/3524/472 +f 2522/3543/464 2540/3527/463 2541/3516/473 +f 2520/3528/467 2527/3546/466 2528/3489/474 +f 2518/3530/446 2529/3493/445 2530/3531/475 +o Rotor +v -0.562500 3.249998 -1.250006 +v 0.562500 3.249998 -1.250006 +v -0.562500 3.749998 -1.250006 +v 0.562500 3.749998 -1.250006 +v -0.250000 4.062498 -1.250006 +v -0.250000 2.937498 -1.250006 +v 0.250000 4.062498 -1.250006 +v 0.250000 2.937498 -1.250006 +v -0.562500 3.249998 -3.250006 +v 0.562500 3.249998 -3.250006 +v -0.562500 3.749998 -3.250006 +v 0.562500 3.749998 -3.250006 +v -0.250000 4.062498 -3.250006 +v -0.250000 2.937498 -3.250006 +v 0.250000 4.062498 -3.250006 +v 0.250000 2.937498 -3.250006 +v 1.092830 4.280328 -1.250006 +v 1.092830 4.280328 -3.250006 +v 0.780330 4.592828 -3.250006 +v 0.780330 4.592828 -1.250006 +v 0.250000 4.812498 -1.250006 +v 0.250000 4.812498 -3.250006 +v -0.250000 4.812498 -3.250006 +v -0.250000 4.812498 -1.250006 +v -1.312500 3.749998 -1.250006 +v -1.312500 3.749998 -3.250006 +v -1.312500 3.249998 -3.250006 +v -1.312500 3.249998 -1.250006 +v 1.092830 2.719668 -1.250006 +v 0.780330 2.407168 -1.250006 +v 0.780330 2.407168 -3.250006 +v 1.092830 2.719668 -3.250006 +v -1.092831 4.280328 -1.250006 +v -0.780331 4.592828 -1.250006 +v -0.780331 4.592828 -3.250006 +v -1.092831 4.280328 -3.250006 +v -0.250000 2.187498 -1.250006 +v -0.250000 2.187498 -3.250006 +v 0.250000 2.187498 -3.250006 +v 0.250000 2.187498 -1.250006 +v 1.312500 3.249998 -1.250006 +v 1.312500 3.249998 -3.250006 +v 1.312500 3.749998 -3.250006 +v 1.312500 3.749998 -1.250006 +v -1.092831 2.719668 -1.250006 +v -1.092831 2.719668 -3.250006 +v -0.780331 2.407168 -3.250006 +v -0.780331 2.407168 -1.250006 +vt 0.130809 0.674419 +vt 0.103270 0.693023 +vt 0.103270 0.674419 +vt 0.103270 0.646512 +vt 0.130809 0.646512 +vt 0.141136 0.693023 +vt 0.141136 0.674419 +vt 0.130809 0.720930 +vt 0.103270 0.720930 +vt 0.092943 0.693023 +vt 0.092943 0.674419 +vt 0.130809 0.674419 +vt 0.103270 0.693023 +vt 0.103270 0.674419 +vt 0.103270 0.646512 +vt 0.130809 0.646512 +vt 0.130809 0.693023 +vt 0.141136 0.674419 +vt 0.141136 0.693023 +vt 0.130809 0.720930 +vt 0.103270 0.720930 +vt 0.092943 0.693023 +vt 0.092943 0.674419 +vt 0.130809 0.674419 +vt 0.103270 0.693023 +vt 0.103270 0.674419 +vt 0.103270 0.646512 +vt 0.130809 0.646512 +vt 0.130809 0.693023 +vt 0.141136 0.674419 +vt 0.141136 0.693023 +vt 0.130809 0.720930 +vt 0.103270 0.720930 +vt 0.092943 0.693023 +vt 0.092943 0.674419 +vt 0.103270 0.674419 +vt 0.130809 0.693023 +vt 0.103270 0.693023 +vt 0.092943 0.674419 +vt 0.092943 0.693023 +vt 0.130809 0.674419 +vt 0.103270 0.646512 +vt 0.130809 0.646512 +vt 0.141136 0.674419 +vt 0.141136 0.693023 +vt 0.130809 0.720930 +vt 0.103270 0.720930 +vt 0.103270 0.674419 +vt 0.130809 0.693023 +vt 0.103270 0.693023 +vt 0.092943 0.693023 +vt 0.092943 0.674419 +vt 0.130809 0.674419 +vt 0.103270 0.646512 +vt 0.130809 0.646512 +vt 0.141136 0.693023 +vt 0.141136 0.674419 +vt 0.130809 0.720930 +vt 0.103270 0.720930 +vt 0.130809 0.674419 +vt 0.103270 0.693023 +vt 0.103270 0.674419 +vt 0.103270 0.646512 +vt 0.130809 0.646512 +vt 0.130809 0.693023 +vt 0.141136 0.674419 +vt 0.141136 0.693023 +vt 0.130809 0.720930 +vt 0.103270 0.720930 +vt 0.092943 0.693023 +vt 0.092943 0.674419 +vt 0.130809 0.674419 +vt 0.103270 0.693023 +vt 0.103270 0.674419 +vt 0.103270 0.646512 +vt 0.130809 0.646512 +vt 0.130809 0.693023 +vt 0.141136 0.674419 +vt 0.141136 0.693023 +vt 0.130809 0.720930 +vt 0.103270 0.720930 +vt 0.092943 0.693023 +vt 0.092943 0.674419 +vt 0.130809 0.674419 +vt 0.103270 0.693023 +vt 0.103270 0.674419 +vt 0.103270 0.646512 +vt 0.130809 0.646512 +vt 0.130809 0.693023 +vt 0.141136 0.674419 +vt 0.141136 0.693023 +vt 0.130809 0.720930 +vt 0.103270 0.720930 +vt 0.092943 0.674419 +vt 0.092943 0.693023 +vt 0.130809 0.693023 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7071 0.7071 0.0000 +vn -0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +s off +f 2560/3561/476 2562/3562/476 2559/3563/476 +f 2560/3561/477 2546/3564/477 2554/3565/477 +f 2557/3566/478 2560/3561/478 2554/3567/478 +f 2562/3562/479 2557/3568/479 2549/3569/479 +f 2559/3563/480 2549/3570/480 2546/3571/480 +f 2564/3572/481 2566/3573/481 2563/3574/481 +f 2564/3572/482 2549/3575/482 2557/3576/482 +f 2565/3577/478 2557/3578/478 2555/3579/478 +f 2566/3573/483 2555/3580/483 2547/3581/483 +f 2563/3574/480 2547/3582/480 2549/3583/480 +f 2568/3584/483 2570/3585/483 2567/3586/483 +f 2568/3584/481 2545/3587/481 2553/3588/481 +f 2569/3589/478 2553/3590/478 2551/3591/478 +f 2570/3585/484 2551/3592/484 2543/3593/484 +f 2567/3586/480 2543/3594/480 2545/3595/480 +f 2572/3596/477 2574/3597/477 2571/3598/477 +f 2550/3599/480 2571/3598/480 2544/3600/480 +f 2573/3601/485 2550/3602/485 2558/3603/485 +f 2574/3597/478 2558/3604/478 2552/3605/478 +f 2571/3598/476 2552/3606/476 2544/3607/476 +f 2576/3608/479 2578/3609/479 2575/3610/479 +f 2576/3608/480 2545/3611/480 2547/3612/480 +f 2577/3613/476 2547/3614/476 2555/3615/476 +f 2553/3616/478 2577/3613/478 2555/3617/478 +f 2575/3610/485 2553/3618/485 2545/3619/485 +f 2580/3620/484 2582/3621/484 2579/3622/484 +f 2580/3620/483 2548/3623/483 2556/3624/483 +f 2581/3625/478 2556/3626/478 2558/3627/478 +f 2582/3621/482 2558/3628/482 2550/3629/482 +f 2579/3622/480 2550/3630/480 2548/3631/480 +f 2584/3632/482 2586/3633/482 2583/3634/482 +f 2584/3632/484 2544/3635/484 2552/3636/484 +f 2585/3637/478 2552/3638/478 2554/3639/478 +f 2586/3633/481 2554/3640/481 2546/3641/481 +f 2583/3634/480 2546/3642/480 2544/3643/480 +f 2588/3644/485 2590/3645/485 2587/3646/485 +f 2588/3644/479 2543/3647/479 2551/3648/479 +f 2589/3649/478 2551/3650/478 2556/3651/478 +f 2590/3645/477 2556/3652/477 2548/3653/477 +f 2543/3654/480 2590/3645/480 2548/3655/480 +f 2560/3561/476 2561/3656/476 2562/3562/476 +f 2560/3561/477 2559/3563/477 2546/3564/477 +f 2557/3566/478 2561/3656/478 2560/3561/478 +f 2562/3562/479 2561/3656/479 2557/3568/479 +f 2559/3563/480 2562/3562/480 2549/3570/480 +f 2564/3572/481 2565/3577/481 2566/3573/481 +f 2564/3572/482 2563/3574/482 2549/3575/482 +f 2565/3577/478 2564/3572/478 2557/3578/478 +f 2566/3573/483 2565/3577/483 2555/3580/483 +f 2563/3574/480 2566/3573/480 2547/3582/480 +f 2568/3584/483 2569/3589/483 2570/3585/483 +f 2568/3584/481 2567/3586/481 2545/3587/481 +f 2569/3589/478 2568/3584/478 2553/3590/478 +f 2570/3585/484 2569/3589/484 2551/3592/484 +f 2567/3586/480 2570/3585/480 2543/3594/480 +f 2572/3596/477 2573/3601/477 2574/3597/477 +f 2550/3599/480 2572/3596/480 2571/3598/480 +f 2573/3601/485 2572/3596/485 2550/3602/485 +f 2574/3597/478 2573/3601/478 2558/3604/478 +f 2571/3598/476 2574/3597/476 2552/3606/476 +f 2576/3608/479 2577/3613/479 2578/3609/479 +f 2576/3608/480 2575/3610/480 2545/3611/480 +f 2577/3613/476 2576/3608/476 2547/3614/476 +f 2553/3616/478 2578/3609/478 2577/3613/478 +f 2575/3610/485 2578/3609/485 2553/3618/485 +f 2580/3620/484 2581/3625/484 2582/3621/484 +f 2580/3620/483 2579/3622/483 2548/3623/483 +f 2581/3625/478 2580/3620/478 2556/3626/478 +f 2582/3621/482 2581/3625/482 2558/3628/482 +f 2579/3622/480 2582/3621/480 2550/3630/480 +f 2584/3632/482 2585/3637/482 2586/3633/482 +f 2584/3632/484 2583/3634/484 2544/3635/484 +f 2585/3637/478 2584/3632/478 2552/3638/478 +f 2586/3633/481 2585/3637/481 2554/3640/481 +f 2583/3634/480 2586/3633/480 2546/3642/480 +f 2588/3644/485 2589/3649/485 2590/3645/485 +f 2588/3644/479 2587/3646/479 2543/3647/479 +f 2589/3649/478 2588/3644/478 2551/3650/478 +f 2590/3645/477 2589/3649/477 2556/3652/477 +f 2543/3654/480 2587/3646/480 2590/3645/480 +o ShroudV +v -1.437500 0.374996 5.500000 +v 1.437500 0.374996 5.500000 +v -1.437500 0.374996 8.500000 +v 1.437500 0.374996 8.500000 +v 2.187500 0.749996 5.500000 +v 2.187500 0.749996 8.500000 +v 2.000000 6.062500 5.500000 +v 2.000000 6.062500 8.500000 +v -2.000000 6.062500 8.500000 +v -2.000000 6.062500 5.500000 +v 2.187500 6.250000 5.500000 +v 2.187500 6.250000 8.500000 +v 1.437500 7.000000 5.500000 +v -1.437500 7.000000 5.500000 +v 1.437500 7.000000 8.500000 +v -1.437500 7.000000 8.500000 +v 1.437500 -0.000004 8.500000 +v -1.437500 -0.000004 8.500000 +v 1.437500 -0.000004 5.500000 +v -1.437500 -0.000004 5.500000 +v -2.187500 6.250000 8.500000 +v -2.187500 6.250000 5.500000 +v -1.437500 6.625000 8.500000 +v 1.437500 6.625000 8.500000 +v -2.187500 0.749996 8.500000 +v -2.187500 0.749996 5.500000 +v -1.437500 6.625000 5.500000 +v 1.437500 6.625000 5.500000 +v 2.000000 0.937496 5.500000 +v 2.000000 0.937496 8.500000 +v -2.000000 0.937496 8.500000 +v -2.000000 0.937496 5.500000 +v 1.937497 6.500003 8.000000 +v 1.937497 6.875003 8.000000 +v 1.937497 6.500003 7.500000 +v 1.937497 6.875003 7.500000 +v 1.562497 6.500003 8.000000 +v 1.562497 6.875003 8.000000 +v 1.562497 6.500003 7.500000 +v 1.562497 6.875003 7.500000 +v 1.937497 6.500003 6.500000 +v 1.937497 6.875003 6.500000 +v 1.937497 6.500003 6.000000 +v 1.937497 6.875003 6.000000 +v 1.562497 6.500003 6.500000 +v 1.562497 6.875003 6.500000 +v 1.562497 6.500003 6.000000 +v 1.562497 6.875003 6.000000 +v -1.937497 6.500003 6.000000 +v -1.937497 6.875003 6.000000 +v -1.937497 6.500003 6.500000 +v -1.937497 6.875003 6.500000 +v -1.562497 6.500003 6.000000 +v -1.562497 6.875003 6.000000 +v -1.562497 6.500003 6.500000 +v -1.562497 6.875003 6.500000 +v -1.937497 6.500003 7.500000 +v -1.937497 6.875003 7.500000 +v -1.937497 6.500003 8.000000 +v -1.937497 6.875003 8.000000 +v -1.562497 6.500003 7.500000 +v -1.562497 6.875003 7.500000 +v -1.562497 6.500003 8.000000 +v -1.562497 6.875003 8.000000 +v -1.937497 0.499993 8.000000 +v -1.937497 0.124993 8.000000 +v -1.937497 0.499993 7.500000 +v -1.937497 0.124993 7.500000 +v -1.562497 0.499993 8.000000 +v -1.562497 0.124993 8.000000 +v -1.562497 0.499993 7.500000 +v -1.562497 0.124993 7.500000 +v -1.937497 0.499993 6.500000 +v -1.937497 0.124993 6.500000 +v -1.937497 0.499993 6.000000 +v -1.937497 0.124993 6.000000 +v -1.562497 0.499993 6.500000 +v -1.562497 0.124993 6.500000 +v -1.562497 0.499993 6.000000 +v -1.562497 0.124993 6.000000 +v 1.937497 0.499993 6.000000 +v 1.937497 0.124993 6.000000 +v 1.937497 0.499993 6.500000 +v 1.937497 0.124993 6.500000 +v 1.562497 0.499993 6.000000 +v 1.562497 0.124993 6.000000 +v 1.562497 0.499993 6.500000 +v 1.562497 0.124993 6.500000 +v 1.937497 0.499993 7.500000 +v 1.937497 0.124993 7.500000 +v 1.937497 0.499993 8.000000 +v 1.937497 0.124993 8.000000 +v 1.562497 0.499993 7.500000 +v 1.562497 0.124993 7.500000 +v 1.562497 0.499993 8.000000 +v 1.562497 0.124993 8.000000 +vt 0.767642 0.048837 +vt 0.772806 0.155814 +vt 0.767642 0.155814 +vt 0.726334 0.155814 +vt 0.721170 0.048837 +vt 0.726334 0.048837 +vt 0.629948 0.244186 +vt 0.633391 0.213953 +vt 0.633391 0.253488 +vt 0.678141 0.213953 +vt 0.719449 0.244186 +vt 0.678141 0.244186 +vt 0.674699 0.204651 +vt 0.674699 0.213953 +vt 0.679862 0.360465 +vt 0.721170 0.253488 +vt 0.721170 0.360465 +vt 0.674699 0.360465 +vt 0.633391 0.400000 +vt 0.633391 0.360465 +vt 0.767642 0.009302 +vt 0.674699 0.253488 +vt 0.628227 0.253488 +vt 0.726334 0.195349 +vt 0.814114 0.048837 +vt 0.814114 0.155814 +vt 0.726334 0.009302 +vt 0.767642 -0.000000 +vt 0.771084 0.009302 +vt 0.812392 0.039535 +vt 0.771084 0.039535 +vt 0.722892 0.039535 +vt 0.767642 0.195349 +vt 0.726334 0.204651 +vt 0.812392 0.195349 +vt 0.771084 0.165116 +vt 0.812392 0.165116 +vt 0.722892 0.165116 +vt 0.674699 0.400000 +vt 0.633391 0.409302 +vt 0.719449 0.400000 +vt 0.678141 0.369767 +vt 0.719449 0.369767 +vt 0.629948 0.369767 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.772806 0.048837 +vt 0.721170 0.155814 +vt 0.629948 0.213953 +vt 0.719449 0.213953 +vt 0.633391 0.204651 +vt 0.679862 0.253488 +vt 0.628227 0.360465 +vt 0.726334 -0.000000 +vt 0.812392 0.009302 +vt 0.722892 0.009302 +vt 0.767642 0.204651 +vt 0.771084 0.195349 +vt 0.722892 0.195349 +vt 0.674699 0.409302 +vt 0.678141 0.400000 +vt 0.629948 0.400000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 2607/3657/486 2593/3658/486 2608/3659/486 +f 2610/3660/487 2592/3661/487 2609/3662/487 +f 2617/3663/487 2612/3664/487 2604/3665/487 +f 2599/3666/488 2617/3667/488 2613/3668/488 +f 2612/3664/489 2599/3669/489 2611/3670/489 +f 2614/3671/490 2617/3672/490 2618/3673/490 +f 2605/3674/491 2601/3675/491 2603/3676/491 +f 2609/3662/488 2596/3677/488 2607/3657/488 +f 2605/3674/492 2604/3665/492 2606/3678/492 +f 2604/3665/493 2611/3670/493 2606/3678/493 +f 2608/3659/490 2609/3662/490 2607/3657/490 +f 2603/3676/487 2617/3679/487 2604/3665/487 +f 2608/3659/489 2616/3680/489 2610/3660/489 +f 2606/3678/486 2614/3671/486 2605/3674/486 +f 2593/3658/492 2592/3681/492 2591/3682/492 +f 2595/3683/491 2620/3684/491 2596/3677/491 +f 2620/3685/493 2592/3686/493 2594/3687/493 +f 2592/3688/487 2595/3683/487 2609/3662/487 +f 2596/3677/486 2594/3687/486 2607/3657/486 +f 2615/3689/493 2622/3690/493 2616/3680/493 +f 2622/3691/491 2593/3692/491 2591/3693/491 +f 2616/3680/487 2591/3694/487 2610/3660/487 +f 2593/3692/486 2615/3689/486 2608/3659/486 +f 2611/3670/486 2613/3668/486 2606/3678/486 +f 2602/3695/488 2597/3696/488 2601/3675/488 +f 2597/3697/489 2614/3698/489 2618/3699/489 +f 2601/3675/487 2618/3700/487 2603/3676/487 +f 2614/3698/486 2602/3695/486 2605/3674/486 +f 2625/3701/494 2624/3702/494 2623/3703/494 +f 2629/3704/487 2626/3705/487 2625/3706/487 +f 2623/3707/486 2628/3708/486 2627/3709/486 +f 2628/3708/492 2626/3705/492 2630/3710/492 +f 2633/3711/494 2632/3712/494 2631/3713/494 +f 2637/3714/487 2634/3715/487 2633/3716/487 +f 2631/3717/486 2636/3718/486 2635/3719/486 +f 2636/3718/492 2634/3715/492 2638/3720/492 +f 2641/3721/495 2640/3722/495 2639/3723/495 +f 2645/3724/486 2642/3725/486 2641/3726/486 +f 2639/3727/487 2644/3728/487 2643/3729/487 +f 2644/3728/492 2642/3725/492 2646/3730/492 +f 2649/3731/495 2648/3732/495 2647/3733/495 +f 2653/3734/486 2650/3735/486 2649/3736/486 +f 2647/3737/487 2652/3738/487 2651/3739/487 +f 2652/3738/492 2650/3735/492 2654/3740/492 +f 2657/3741/495 2656/3742/495 2655/3743/495 +f 2661/3744/487 2658/3745/487 2657/3746/487 +f 2655/3747/486 2660/3748/486 2659/3749/486 +f 2660/3748/490 2658/3745/490 2662/3750/490 +f 2665/3751/495 2664/3752/495 2663/3753/495 +f 2669/3754/487 2666/3755/487 2665/3756/487 +f 2663/3757/486 2668/3758/486 2667/3759/486 +f 2668/3758/490 2666/3755/490 2670/3760/490 +f 2673/3761/494 2672/3762/494 2671/3763/494 +f 2677/3764/486 2674/3765/486 2673/3766/486 +f 2671/3767/487 2676/3768/487 2675/3769/487 +f 2676/3768/490 2674/3765/490 2678/3770/490 +f 2681/3771/494 2680/3772/494 2679/3773/494 +f 2685/3774/486 2682/3775/486 2681/3776/486 +f 2679/3777/487 2684/3778/487 2683/3779/487 +f 2684/3778/490 2682/3775/490 2686/3780/490 +f 2607/3657/486 2594/3781/486 2593/3658/486 +f 2610/3660/487 2591/3782/487 2592/3661/487 +f 2617/3663/487 2600/3783/487 2612/3664/487 +f 2599/3666/488 2600/3784/488 2617/3667/488 +f 2612/3664/489 2600/3785/489 2599/3669/489 +f 2614/3671/490 2613/3786/490 2617/3672/490 +f 2605/3674/491 2602/3695/491 2601/3675/491 +f 2609/3662/488 2595/3683/488 2596/3677/488 +f 2605/3674/492 2603/3676/492 2604/3665/492 +f 2604/3665/493 2612/3664/493 2611/3670/493 +f 2608/3659/490 2610/3660/490 2609/3662/490 +f 2603/3676/487 2618/3787/487 2617/3679/487 +f 2608/3659/489 2615/3689/489 2616/3680/489 +f 2606/3678/486 2613/3786/486 2614/3671/486 +f 2593/3658/492 2594/3781/492 2592/3681/492 +f 2595/3683/491 2619/3788/491 2620/3684/491 +f 2620/3685/493 2619/3789/493 2592/3686/493 +f 2592/3688/487 2619/3790/487 2595/3683/487 +f 2596/3677/486 2620/3685/486 2594/3687/486 +f 2615/3689/493 2621/3791/493 2622/3690/493 +f 2622/3691/491 2621/3792/491 2593/3692/491 +f 2616/3680/487 2622/3793/487 2591/3694/487 +f 2593/3692/486 2621/3792/486 2615/3689/486 +f 2611/3670/486 2599/3666/486 2613/3668/486 +f 2602/3695/488 2598/3794/488 2597/3696/488 +f 2597/3697/489 2598/3795/489 2614/3698/489 +f 2601/3675/487 2597/3796/487 2618/3700/487 +f 2614/3698/486 2598/3795/486 2602/3695/486 +f 2625/3701/494 2626/3705/494 2624/3702/494 +f 2629/3704/487 2630/3710/487 2626/3705/487 +f 2623/3707/486 2624/3702/486 2628/3708/486 +f 2628/3708/492 2624/3702/492 2626/3705/492 +f 2633/3711/494 2634/3715/494 2632/3712/494 +f 2637/3714/487 2638/3720/487 2634/3715/487 +f 2631/3717/486 2632/3712/486 2636/3718/486 +f 2636/3718/492 2632/3712/492 2634/3715/492 +f 2641/3721/495 2642/3725/495 2640/3722/495 +f 2645/3724/486 2646/3730/486 2642/3725/486 +f 2639/3727/487 2640/3722/487 2644/3728/487 +f 2644/3728/492 2640/3722/492 2642/3725/492 +f 2649/3731/495 2650/3735/495 2648/3732/495 +f 2653/3734/486 2654/3740/486 2650/3735/486 +f 2647/3737/487 2648/3732/487 2652/3738/487 +f 2652/3738/492 2648/3732/492 2650/3735/492 +f 2657/3741/495 2658/3745/495 2656/3742/495 +f 2661/3744/487 2662/3750/487 2658/3745/487 +f 2655/3747/486 2656/3742/486 2660/3748/486 +f 2660/3748/490 2656/3742/490 2658/3745/490 +f 2665/3751/495 2666/3755/495 2664/3752/495 +f 2669/3754/487 2670/3760/487 2666/3755/487 +f 2663/3757/486 2664/3752/486 2668/3758/486 +f 2668/3758/490 2664/3752/490 2666/3755/490 +f 2673/3761/494 2674/3765/494 2672/3762/494 +f 2677/3764/486 2678/3770/486 2674/3765/486 +f 2671/3767/487 2672/3762/487 2676/3768/487 +f 2676/3768/490 2672/3762/490 2674/3765/490 +f 2681/3771/494 2682/3775/494 2680/3772/494 +f 2685/3774/486 2686/3780/486 2682/3775/486 +f 2679/3777/487 2680/3772/487 2684/3778/487 +f 2684/3778/490 2680/3772/490 2682/3775/490 +o ShroudH +v 2.562502 1.499998 8.500000 +v 2.562502 1.499998 5.500000 +v -2.750002 1.312499 8.500000 +v -2.750002 1.312499 5.500000 +v -3.125002 2.062499 8.500000 +v -3.125002 4.937499 8.500000 +v -3.125002 2.062499 5.500000 +v -3.125002 4.937499 5.500000 +v 2.562502 5.499998 8.500000 +v 2.562502 5.499998 5.500000 +v 2.750002 1.312498 5.500000 +v 2.750002 1.312498 8.500000 +v 3.500002 2.062498 5.500000 +v 3.500002 4.937498 5.500000 +v 3.500002 2.062498 8.500000 +v 3.500002 4.937498 8.500000 +v -3.500002 2.062499 8.500000 +v -3.500002 4.937499 8.500000 +v -3.500002 2.062499 5.500000 +v -3.500002 4.937499 5.500000 +v 2.750002 5.687498 8.500000 +v 2.750002 5.687498 5.500000 +v 3.125002 4.937498 8.500000 +v 3.125002 2.062498 8.500000 +v -2.750002 5.687499 8.500000 +v -2.750002 5.687499 5.500000 +v 3.125002 4.937498 5.500000 +v 3.125002 2.062498 5.500000 +v -2.562502 1.499999 5.500000 +v -2.562502 1.499999 8.500000 +v -2.562502 5.499999 8.500000 +v -2.562502 5.499999 5.500000 +v -3.000005 5.437495 8.000000 +v -3.375005 5.437495 8.000000 +v -3.000005 5.437495 7.500000 +v -3.375005 5.437495 7.500000 +v -3.000005 5.062495 8.000000 +v -3.375005 5.062495 8.000000 +v -3.000005 5.062495 7.500000 +v -3.375005 5.062495 7.500000 +v -3.000005 5.437495 6.500000 +v -3.375005 5.437495 6.500000 +v -3.000005 5.437495 6.000000 +v -3.375005 5.437495 6.000000 +v -3.000005 5.062495 6.500000 +v -3.375005 5.062495 6.500000 +v -3.000005 5.062495 6.000000 +v -3.375005 5.062495 6.000000 +v -3.000005 1.562501 6.000000 +v -3.375005 1.562501 6.000000 +v -3.000005 1.562501 6.500000 +v -3.375005 1.562501 6.500000 +v -3.000005 1.937501 6.000000 +v -3.375005 1.937501 6.000000 +v -3.000005 1.937501 6.500000 +v -3.375005 1.937501 6.500000 +v -3.000005 1.562501 7.500000 +v -3.375005 1.562501 7.500000 +v -3.000005 1.562501 8.000000 +v -3.375005 1.562501 8.000000 +v -3.000005 1.937501 7.500000 +v -3.375005 1.937501 7.500000 +v -3.000005 1.937501 8.000000 +v -3.375005 1.937501 8.000000 +v 3.000005 1.562501 8.000000 +v 3.375005 1.562501 8.000000 +v 3.000005 1.562501 7.500000 +v 3.375005 1.562501 7.500000 +v 3.000005 1.937501 8.000000 +v 3.375005 1.937501 8.000000 +v 3.000005 1.937501 7.500000 +v 3.375005 1.937501 7.500000 +v 3.000005 1.562501 6.500000 +v 3.375005 1.562501 6.500000 +v 3.000005 1.562501 6.000000 +v 3.375005 1.562501 6.000000 +v 3.000005 1.937501 6.500000 +v 3.375005 1.937501 6.500000 +v 3.000005 1.937501 6.000000 +v 3.375005 1.937501 6.000000 +v 3.000005 5.437495 6.000000 +v 3.375005 5.437495 6.000000 +v 3.000005 5.437495 6.500000 +v 3.375005 5.437495 6.500000 +v 3.000005 5.062495 6.000000 +v 3.375005 5.062495 6.000000 +v 3.000005 5.062495 6.500000 +v 3.375005 5.062495 6.500000 +v 3.000005 5.437495 7.500000 +v 3.375005 5.437495 7.500000 +v 3.000005 5.437495 8.000000 +v 3.375005 5.437495 8.000000 +v 3.000005 5.062495 7.500000 +v 3.375005 5.062495 7.500000 +v 3.000005 5.062495 8.000000 +v 3.375005 5.062495 8.000000 +vt 0.674699 0.048837 +vt 0.679862 0.155814 +vt 0.674699 0.155814 +vt 0.633391 0.155814 +vt 0.628227 0.048837 +vt 0.633391 0.048837 +vt 0.722892 0.244186 +vt 0.726334 0.213953 +vt 0.726334 0.253488 +vt 0.771084 0.213953 +vt 0.812392 0.244186 +vt 0.771084 0.244186 +vt 0.767642 0.204651 +vt 0.767642 0.213953 +vt 0.772806 0.360465 +vt 0.814114 0.253488 +vt 0.814114 0.360465 +vt 0.767642 0.360465 +vt 0.726334 0.400000 +vt 0.726334 0.360465 +vt 0.674699 0.009302 +vt 0.767642 0.253488 +vt 0.721170 0.253488 +vt 0.633391 0.195349 +vt 0.721170 0.048837 +vt 0.721170 0.155814 +vt 0.633391 0.009302 +vt 0.674699 -0.000000 +vt 0.678141 0.009302 +vt 0.719449 0.039535 +vt 0.678141 0.039535 +vt 0.629948 0.039535 +vt 0.674699 0.195349 +vt 0.633391 0.204651 +vt 0.719449 0.195349 +vt 0.678141 0.165116 +vt 0.719449 0.165116 +vt 0.629948 0.165116 +vt 0.767642 0.400000 +vt 0.726334 0.409302 +vt 0.812392 0.400000 +vt 0.771084 0.369767 +vt 0.812392 0.369767 +vt 0.722892 0.369767 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.815835 0.632558 +vt 0.808950 0.646512 +vt 0.808950 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.646512 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.803787 0.660465 +vt 0.815835 0.660465 +vt 0.679862 0.048837 +vt 0.628227 0.155814 +vt 0.722892 0.213953 +vt 0.812392 0.213953 +vt 0.726334 0.204651 +vt 0.772806 0.253488 +vt 0.721170 0.360465 +vt 0.633391 -0.000000 +vt 0.719449 0.009302 +vt 0.629948 0.009302 +vt 0.674699 0.204651 +vt 0.678141 0.195349 +vt 0.629948 0.195349 +vt 0.767642 0.409302 +vt 0.771084 0.400000 +vt 0.722892 0.400000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 2703/3797/496 2692/3798/496 2704/3799/496 +f 2706/3800/497 2693/3801/497 2705/3802/497 +f 2713/3803/497 2708/3804/497 2700/3805/497 +f 2695/3806/498 2713/3807/498 2709/3808/498 +f 2708/3804/499 2695/3809/499 2707/3810/499 +f 2710/3811/500 2713/3812/500 2714/3813/500 +f 2701/3814/501 2697/3815/501 2699/3816/501 +f 2705/3802/498 2689/3817/498 2703/3797/498 +f 2701/3814/502 2700/3805/502 2702/3818/502 +f 2700/3805/503 2707/3810/503 2702/3818/503 +f 2704/3799/500 2705/3802/500 2703/3797/500 +f 2699/3816/497 2713/3819/497 2700/3805/497 +f 2704/3799/499 2712/3820/499 2706/3800/499 +f 2702/3818/496 2710/3811/496 2701/3814/496 +f 2692/3798/502 2693/3821/502 2694/3822/502 +f 2690/3823/501 2716/3824/501 2689/3817/501 +f 2716/3825/503 2693/3826/503 2691/3827/503 +f 2693/3828/497 2690/3823/497 2705/3802/497 +f 2689/3817/496 2691/3827/496 2703/3797/496 +f 2711/3829/503 2718/3830/503 2712/3820/503 +f 2718/3831/501 2692/3832/501 2694/3833/501 +f 2712/3820/497 2694/3834/497 2706/3800/497 +f 2692/3832/496 2711/3829/496 2704/3799/496 +f 2707/3810/496 2709/3808/496 2702/3818/496 +f 2698/3835/498 2688/3836/498 2697/3815/498 +f 2688/3837/499 2710/3838/499 2714/3839/499 +f 2697/3815/497 2714/3840/497 2699/3816/497 +f 2710/3838/496 2698/3835/496 2701/3814/496 +f 2721/3841/504 2720/3842/504 2719/3843/504 +f 2725/3844/497 2722/3845/497 2721/3846/497 +f 2719/3847/496 2724/3848/496 2723/3849/496 +f 2724/3848/500 2722/3845/500 2726/3850/500 +f 2729/3851/504 2728/3852/504 2727/3853/504 +f 2733/3854/497 2730/3855/497 2729/3856/497 +f 2727/3857/496 2732/3858/496 2731/3859/496 +f 2732/3858/500 2730/3855/500 2734/3860/500 +f 2737/3861/505 2736/3862/505 2735/3863/505 +f 2741/3864/496 2738/3865/496 2737/3866/496 +f 2735/3867/497 2740/3868/497 2739/3869/497 +f 2740/3868/500 2738/3865/500 2742/3870/500 +f 2745/3871/505 2744/3872/505 2743/3873/505 +f 2749/3874/496 2746/3875/496 2745/3876/496 +f 2743/3877/497 2748/3878/497 2747/3879/497 +f 2748/3878/500 2746/3875/500 2750/3880/500 +f 2753/3881/505 2752/3882/505 2751/3883/505 +f 2757/3884/497 2754/3885/497 2753/3886/497 +f 2751/3887/496 2756/3888/496 2755/3889/496 +f 2756/3888/502 2754/3885/502 2758/3890/502 +f 2761/3891/505 2760/3892/505 2759/3893/505 +f 2765/3894/497 2762/3895/497 2761/3896/497 +f 2759/3897/496 2764/3898/496 2763/3899/496 +f 2764/3898/502 2762/3895/502 2766/3900/502 +f 2769/3901/504 2768/3902/504 2767/3903/504 +f 2773/3904/496 2770/3905/496 2769/3906/496 +f 2767/3907/497 2772/3908/497 2771/3909/497 +f 2772/3908/502 2770/3905/502 2774/3910/502 +f 2777/3911/504 2776/3912/504 2775/3913/504 +f 2781/3914/496 2778/3915/496 2777/3916/496 +f 2775/3917/497 2780/3918/497 2779/3919/497 +f 2780/3918/502 2778/3915/502 2782/3920/502 +f 2703/3797/496 2691/3921/496 2692/3798/496 +f 2706/3800/497 2694/3922/497 2693/3801/497 +f 2713/3803/497 2696/3923/497 2708/3804/497 +f 2695/3806/498 2696/3924/498 2713/3807/498 +f 2708/3804/499 2696/3925/499 2695/3809/499 +f 2710/3811/500 2709/3926/500 2713/3812/500 +f 2701/3814/501 2698/3835/501 2697/3815/501 +f 2705/3802/498 2690/3823/498 2689/3817/498 +f 2701/3814/502 2699/3816/502 2700/3805/502 +f 2700/3805/503 2708/3804/503 2707/3810/503 +f 2704/3799/500 2706/3800/500 2705/3802/500 +f 2699/3816/497 2714/3927/497 2713/3819/497 +f 2704/3799/499 2711/3829/499 2712/3820/499 +f 2702/3818/496 2709/3926/496 2710/3811/496 +f 2692/3798/502 2691/3921/502 2693/3821/502 +f 2690/3823/501 2715/3928/501 2716/3824/501 +f 2716/3825/503 2715/3929/503 2693/3826/503 +f 2693/3828/497 2715/3930/497 2690/3823/497 +f 2689/3817/496 2716/3825/496 2691/3827/496 +f 2711/3829/503 2717/3931/503 2718/3830/503 +f 2718/3831/501 2717/3932/501 2692/3832/501 +f 2712/3820/497 2718/3933/497 2694/3834/497 +f 2692/3832/496 2717/3932/496 2711/3829/496 +f 2707/3810/496 2695/3806/496 2709/3808/496 +f 2698/3835/498 2687/3934/498 2688/3836/498 +f 2688/3837/499 2687/3935/499 2710/3838/499 +f 2697/3815/497 2688/3936/497 2714/3840/497 +f 2710/3838/496 2687/3935/496 2698/3835/496 +f 2721/3841/504 2722/3845/504 2720/3842/504 +f 2725/3844/497 2726/3850/497 2722/3845/497 +f 2719/3847/496 2720/3842/496 2724/3848/496 +f 2724/3848/500 2720/3842/500 2722/3845/500 +f 2729/3851/504 2730/3855/504 2728/3852/504 +f 2733/3854/497 2734/3860/497 2730/3855/497 +f 2727/3857/496 2728/3852/496 2732/3858/496 +f 2732/3858/500 2728/3852/500 2730/3855/500 +f 2737/3861/505 2738/3865/505 2736/3862/505 +f 2741/3864/496 2742/3870/496 2738/3865/496 +f 2735/3867/497 2736/3862/497 2740/3868/497 +f 2740/3868/500 2736/3862/500 2738/3865/500 +f 2745/3871/505 2746/3875/505 2744/3872/505 +f 2749/3874/496 2750/3880/496 2746/3875/496 +f 2743/3877/497 2744/3872/497 2748/3878/497 +f 2748/3878/500 2744/3872/500 2746/3875/500 +f 2753/3881/505 2754/3885/505 2752/3882/505 +f 2757/3884/497 2758/3890/497 2754/3885/497 +f 2751/3887/496 2752/3882/496 2756/3888/496 +f 2756/3888/502 2752/3882/502 2754/3885/502 +f 2761/3891/505 2762/3895/505 2760/3892/505 +f 2765/3894/497 2766/3900/497 2762/3895/497 +f 2759/3897/496 2760/3892/496 2764/3898/496 +f 2764/3898/502 2760/3892/502 2762/3895/502 +f 2769/3901/504 2770/3905/504 2768/3902/504 +f 2773/3904/496 2774/3910/496 2770/3905/496 +f 2767/3907/497 2768/3902/497 2772/3908/497 +f 2772/3908/502 2768/3902/502 2770/3905/502 +f 2777/3911/504 2778/3915/504 2776/3912/504 +f 2781/3914/496 2782/3920/496 2778/3915/496 +f 2775/3917/497 2776/3912/497 2780/3918/497 +f 2780/3918/502 2776/3912/502 2778/3915/502 +o Engine +v 0.000000 6.499998 9.499993 +v -1.148050 6.271637 9.499993 +v -2.121320 5.621321 9.499993 +v -2.771638 4.648046 9.499993 +v -3.000000 3.499998 9.499993 +v -2.771638 2.351950 9.499993 +v -2.121320 1.378675 9.499993 +v -1.148050 0.728359 9.499993 +v 0.000000 0.499998 9.499993 +v 1.148049 0.728359 9.499993 +v 2.121320 1.378675 9.499993 +v 2.771639 2.351950 9.499993 +v 3.000000 3.499998 9.499993 +v 2.771639 4.648046 9.499993 +v 2.121320 5.621321 9.499993 +v 1.148049 6.271637 9.499993 +v 0.000000 6.249998 9.499994 +v -1.052380 6.040667 9.499994 +v -1.944543 5.444544 9.499994 +v -2.540668 4.552376 9.499994 +v -2.750000 3.499998 9.499994 +v -2.540668 2.447620 9.499994 +v -1.944543 1.555452 9.499994 +v -1.052380 0.959329 9.499994 +v 0.000000 0.749998 9.499994 +v 1.052379 0.959329 9.499994 +v 1.944543 1.555452 9.499994 +v 2.540668 2.447620 9.499994 +v 2.750000 3.499998 9.499994 +v 2.540668 4.552376 9.499994 +v 1.944543 5.444544 9.499994 +v 1.052379 6.040667 9.499994 +v 2.750000 3.499998 8.499994 +v 2.500000 3.499998 6.999994 +v 1.750000 3.499998 4.999994 +v 0.750000 3.499998 3.499994 +v 0.000000 3.499998 2.999994 +v -2.750000 3.500002 8.499994 +v -2.500000 3.500002 6.999994 +v -1.750000 3.500002 4.999994 +v -0.750000 3.500002 3.499994 +v -0.000002 0.750000 8.499994 +v -0.000002 1.000000 6.999994 +v -0.000002 1.750000 4.999995 +v -0.000002 2.750000 3.499995 +v 0.000002 6.250000 8.499994 +v 0.000002 6.000000 6.999994 +v 0.000002 5.250000 4.999995 +v 0.000002 4.250000 3.499995 +v 1.944542 1.555455 8.499994 +v 1.767765 1.732232 6.999994 +v 1.237435 2.262562 4.999994 +v 0.530329 2.969669 3.499994 +v -1.944542 5.444545 8.499994 +v -1.767765 5.267768 6.999994 +v -1.237435 4.737438 4.999994 +v -0.530329 4.030331 3.499994 +v -1.944545 1.555458 8.499994 +v -1.767768 1.732235 6.999994 +v -1.237438 2.262565 4.999995 +v -0.530332 2.969671 3.499995 +v 1.944546 5.444542 8.499994 +v 1.767769 5.267766 6.999994 +v 1.237438 4.737435 4.999995 +v 0.530332 4.030329 3.499995 +v 1.052378 0.959331 8.499994 +v 0.956707 1.190301 6.999994 +v 0.669694 1.883210 4.999994 +v 0.287011 2.807090 3.499994 +v -1.052378 6.040669 8.499994 +v -0.956706 5.809700 6.999994 +v -0.669694 5.116790 4.999994 +v -0.287011 4.192910 3.499994 +v -2.540669 2.447623 8.499994 +v -2.309699 2.543293 6.999994 +v -1.616790 2.830306 4.999995 +v -0.692910 3.212989 3.499995 +v 2.540669 4.552377 8.499994 +v 2.309700 4.456707 6.999994 +v 1.616790 4.169694 4.999995 +v 0.692910 3.787011 3.499995 +v -1.052382 0.959332 8.499994 +v -0.956710 1.190302 6.999994 +v -0.669698 1.883212 4.999994 +v -0.287014 2.807091 3.499994 +v 1.052382 6.040668 8.499994 +v 0.956711 5.809698 6.999994 +v 0.669698 5.116788 4.999994 +v 0.287014 4.192909 3.499994 +v -2.540668 4.552382 8.499994 +v -2.309698 4.456710 6.999994 +v -1.616788 4.169698 4.999995 +v -0.692908 3.787014 3.499995 +v 2.540668 2.447618 8.499994 +v 2.309698 2.543289 6.999994 +v 1.616789 2.830302 4.999995 +v 0.692909 3.212986 3.499995 +v 3.000000 3.499998 8.499994 +v 2.750000 3.499998 6.999994 +v 2.000000 3.499998 4.999994 +v 0.750000 3.499998 3.249994 +v 0.000000 3.499998 2.749994 +v -3.000000 3.500002 8.499994 +v -2.750000 3.500002 6.999994 +v -2.000000 3.500002 4.999994 +v -0.750000 3.500002 3.249994 +v -0.000002 0.500000 8.499994 +v -0.000002 0.750000 6.999994 +v -0.000002 1.500000 4.999995 +v -0.000002 2.750000 3.249995 +v 0.000002 6.500000 8.499994 +v 0.000002 6.250000 6.999994 +v 0.000002 5.500000 4.999995 +v 0.000002 4.250000 3.249995 +v 2.121319 1.378678 8.499994 +v 1.944542 1.555455 6.999994 +v 1.414212 2.085785 4.999994 +v 0.530329 2.969669 3.249994 +v -2.121319 5.621322 8.499994 +v -1.944542 5.444545 6.999994 +v -1.414212 4.914215 4.999994 +v -0.530329 4.030331 3.249994 +v -2.121322 1.378681 8.499994 +v -1.944545 1.555458 6.999994 +v -1.414215 2.085788 4.999995 +v -0.530332 2.969671 3.249995 +v 2.121322 5.621319 8.499994 +v 1.944546 5.444542 6.999994 +v 1.414215 4.914212 4.999995 +v 0.530332 4.030329 3.249995 +v 1.148048 0.728361 8.499994 +v 1.052378 0.959331 6.999994 +v 0.765365 1.652241 4.999994 +v 0.287011 2.807090 3.249994 +v -1.148048 6.271639 8.499994 +v -1.052378 6.040669 6.999994 +v -0.765365 5.347760 4.999994 +v -0.287011 4.192910 3.249994 +v -2.771639 2.351952 8.499994 +v -2.540669 2.447623 6.999994 +v -1.847759 2.734635 4.999995 +v -0.692910 3.212989 3.249995 +v 2.771639 4.648048 8.499994 +v 2.540669 4.552377 6.999994 +v 1.847760 4.265365 4.999995 +v 0.692910 3.787011 3.249995 +v -1.148052 0.728363 8.499994 +v -1.052382 0.959332 6.999994 +v -0.765368 1.652242 4.999994 +v -0.287014 2.807091 3.249994 +v 1.148052 6.271637 8.499994 +v 1.052382 6.040668 6.999994 +v 0.765369 5.347758 4.999994 +v 0.287014 4.192909 3.249994 +v -2.771637 4.648052 8.499994 +v -2.540668 4.552382 6.999994 +v -1.847758 4.265368 4.999995 +v -0.692908 3.787014 3.249995 +v 2.771638 2.351948 8.499994 +v 2.540668 2.447618 6.999994 +v 1.847758 2.734631 4.999995 +v 0.692909 3.212986 3.249995 +vt 0.046472 0.009302 +vt 0.031842 -0.000000 +vt 0.046472 0.000000 +vt 0.015491 0.009302 +vt 0.030981 -0.000000 +vt 0.030981 0.009302 +vt 0.000000 0.009302 +vt 0.015491 -0.000000 +vt 0.232358 0.009302 +vt 0.247849 0.000000 +vt 0.247849 0.009302 +vt 0.217728 -0.000000 +vt 0.232358 -0.000000 +vt 0.201377 0.009302 +vt 0.216867 -0.000000 +vt 0.216867 0.009302 +vt 0.186747 0.000000 +vt 0.201377 -0.000000 +vt 0.170396 0.009302 +vt 0.185886 0.000000 +vt 0.185886 0.009302 +vt 0.155766 -0.000000 +vt 0.170396 0.000000 +vt 0.139415 0.009302 +vt 0.154905 -0.000000 +vt 0.154905 0.009302 +vt 0.123924 0.009302 +vt 0.139415 0.000000 +vt 0.108434 0.009302 +vt 0.123924 -0.000000 +vt 0.093804 0.000000 +vt 0.108434 0.000000 +vt 0.077453 0.009302 +vt 0.092943 0.000000 +vt 0.092943 0.009302 +vt 0.062823 -0.000000 +vt 0.077453 0.000000 +vt 0.061962 -0.000000 +vt 0.061962 0.009302 +vt 0.016351 0.000000 +vt 0.000861 0.000000 +vt 0.233219 -0.000000 +vt 0.202238 -0.000000 +vt 0.171256 0.000000 +vt 0.140275 0.000000 +vt 0.124785 -0.000000 +vt 0.109294 0.000000 +vt 0.078313 0.000000 +vt 0.047332 0.000000 +vt 0.481067 0.093023 +vt 0.467298 0.037209 +vt 0.481928 0.037209 +vt 0.453528 0.093023 +vt 0.466437 0.093023 +vt 0.438038 0.037209 +vt 0.451807 0.093023 +vt 0.438898 0.093023 +vt 0.423408 0.037209 +vt 0.437177 0.093023 +vt 0.424269 0.093023 +vt 0.408778 0.037209 +vt 0.422547 0.093023 +vt 0.409639 0.093023 +vt 0.394148 0.037209 +vt 0.407917 0.093023 +vt 0.395009 0.093023 +vt 0.379518 0.037209 +vt 0.393287 0.093023 +vt 0.380379 0.093023 +vt 0.364888 0.037209 +vt 0.378657 0.093023 +vt 0.365749 0.093023 +vt 0.350258 0.037209 +vt 0.364028 0.093023 +vt 0.351119 0.093023 +vt 0.335628 0.037209 +vt 0.349398 0.093023 +vt 0.336489 0.093023 +vt 0.261618 0.093023 +vt 0.247849 0.037209 +vt 0.262478 0.037209 +vt 0.263339 0.093023 +vt 0.277108 0.037209 +vt 0.276248 0.093023 +vt 0.277969 0.093023 +vt 0.291738 0.037209 +vt 0.290878 0.093023 +vt 0.305508 0.093023 +vt 0.306368 0.037209 +vt 0.307229 0.093023 +vt 0.320998 0.037209 +vt 0.320138 0.093023 +vt 0.334768 0.093023 +vt 0.303787 0.172093 +vt 0.292599 0.093023 +vt 0.296902 0.239535 +vt 0.301205 0.239535 +vt 0.265060 0.172093 +vt 0.274527 0.172093 +vt 0.271945 0.239535 +vt 0.289157 0.172093 +vt 0.279690 0.172093 +vt 0.286575 0.239535 +vt 0.282272 0.239535 +vt 0.248709 0.093023 +vt 0.259897 0.172093 +vt 0.250430 0.172093 +vt 0.257315 0.239535 +vt 0.253012 0.239535 +vt 0.479346 0.172093 +vt 0.468158 0.093023 +vt 0.476764 0.239535 +vt 0.469880 0.172093 +vt 0.464716 0.172093 +vt 0.455250 0.172093 +vt 0.457831 0.239535 +vt 0.462134 0.239535 +vt 0.450086 0.172093 +vt 0.447504 0.239535 +vt 0.440620 0.172093 +vt 0.435456 0.172093 +vt 0.425990 0.172093 +vt 0.432874 0.239535 +vt 0.428571 0.239535 +vt 0.411360 0.172093 +vt 0.420826 0.172093 +vt 0.418244 0.239535 +vt 0.406196 0.172093 +vt 0.396730 0.172093 +vt 0.403614 0.239535 +vt 0.399312 0.239535 +vt 0.391566 0.172093 +vt 0.388985 0.239535 +vt 0.382100 0.172093 +vt 0.367470 0.172093 +vt 0.376936 0.172093 +vt 0.370052 0.239535 +vt 0.374355 0.239535 +vt 0.362306 0.172093 +vt 0.359725 0.239535 +vt 0.352840 0.172093 +vt 0.338210 0.172093 +vt 0.347676 0.172093 +vt 0.340792 0.239535 +vt 0.345095 0.239535 +vt 0.323580 0.172093 +vt 0.333046 0.172093 +vt 0.330465 0.239535 +vt 0.318417 0.172093 +vt 0.308950 0.172093 +vt 0.315835 0.239535 +vt 0.311532 0.239535 +vt 0.313683 0.272093 +vt 0.326162 0.239535 +vt 0.328313 0.272093 +vt 0.342943 0.272093 +vt 0.355422 0.239535 +vt 0.357573 0.272093 +vt 0.372203 0.272093 +vt 0.384682 0.239535 +vt 0.386833 0.272093 +vt 0.401463 0.272093 +vt 0.413941 0.239535 +vt 0.416093 0.272093 +vt 0.430723 0.272093 +vt 0.443201 0.239535 +vt 0.445353 0.272093 +vt 0.459983 0.272093 +vt 0.472461 0.239535 +vt 0.474613 0.272093 +vt 0.255164 0.272093 +vt 0.299053 0.272093 +vt 0.284423 0.272093 +vt 0.267642 0.239535 +vt 0.269793 0.272093 +vt 0.291738 0.000000 +vt 0.320998 -0.000000 +vt 0.306368 0.000000 +vt 0.335628 -0.000000 +vt 0.350258 0.000000 +vt 0.364888 0.000000 +vt 0.379518 0.000000 +vt 0.394148 0.000000 +vt 0.408778 -0.000000 +vt 0.423408 -0.000000 +vt 0.438038 -0.000000 +vt 0.452668 0.037209 +vt 0.452668 -0.000000 +vt 0.467298 0.000000 +vt 0.262478 -0.000000 +vt 0.277108 -0.000000 +vt 0.185886 0.046512 +vt 0.200516 0.102326 +vt 0.186747 0.102326 +vt 0.188468 0.181395 +vt 0.198795 0.181395 +vt 0.195353 0.260465 +vt 0.191911 0.260465 +vt 0.170396 0.046512 +vt 0.185026 0.102326 +vt 0.171256 0.102326 +vt 0.155766 0.102326 +vt 0.169535 0.102326 +vt 0.139415 0.046512 +vt 0.154045 0.102326 +vt 0.140275 0.102326 +vt 0.124785 0.102326 +vt 0.138554 0.102326 +vt 0.109294 0.102326 +vt 0.123924 0.046512 +vt 0.123064 0.102326 +vt 0.093804 0.102326 +vt 0.108434 0.046512 +vt 0.107573 0.102326 +vt 0.078313 0.102326 +vt 0.092943 0.046512 +vt 0.092083 0.102326 +vt 0.062823 0.102326 +vt 0.077453 0.046512 +vt 0.076592 0.102326 +vt 0.047332 0.102326 +vt 0.061962 0.046512 +vt 0.061102 0.102326 +vt 0.031842 0.102326 +vt 0.046472 0.046512 +vt 0.045611 0.102326 +vt 0.015491 0.046512 +vt 0.030120 0.102326 +vt 0.016351 0.102326 +vt 0.000861 0.102326 +vt 0.014630 0.102326 +vt 0.232358 0.046512 +vt 0.246988 0.102326 +vt 0.233219 0.102326 +vt 0.216867 0.046512 +vt 0.231497 0.102326 +vt 0.217728 0.102326 +vt 0.202238 0.102326 +vt 0.216007 0.102326 +vt 0.201377 0.046512 +vt 0.154905 0.046512 +vt 0.030981 0.046512 +vt -0.000000 0.046512 +vt 0.203959 0.181395 +vt 0.214286 0.181395 +vt 0.207401 0.260465 +vt 0.210843 0.260465 +vt 0.219449 0.181395 +vt 0.229776 0.181395 +vt 0.222892 0.260465 +vt 0.226334 0.260465 +vt 0.234940 0.181395 +vt 0.245267 0.181395 +vt 0.241824 0.260465 +vt 0.002582 0.181395 +vt 0.012909 0.181395 +vt 0.006024 0.260465 +vt 0.009466 0.260465 +vt 0.028399 0.181395 +vt 0.021515 0.260465 +vt 0.024957 0.260465 +vt 0.033563 0.181395 +vt 0.043890 0.181395 +vt 0.037005 0.260465 +vt 0.040448 0.260465 +vt 0.049053 0.181395 +vt 0.059380 0.181395 +vt 0.052496 0.260465 +vt 0.055938 0.260465 +vt 0.074871 0.181395 +vt 0.064544 0.181395 +vt 0.067986 0.260465 +vt 0.071429 0.260465 +vt 0.080034 0.181395 +vt 0.090361 0.181395 +vt 0.083477 0.260465 +vt 0.086919 0.260465 +vt 0.095525 0.181395 +vt 0.105852 0.181395 +vt 0.098967 0.260465 +vt 0.102410 0.260465 +vt 0.121343 0.181395 +vt 0.117900 0.260465 +vt 0.111015 0.181395 +vt 0.126506 0.181395 +vt 0.136833 0.181395 +vt 0.129948 0.260465 +vt 0.133391 0.260465 +vt 0.152324 0.181395 +vt 0.148881 0.260465 +vt 0.141997 0.181395 +vt 0.157487 0.181395 +vt 0.167814 0.181395 +vt 0.160929 0.260465 +vt 0.164372 0.260465 +vt 0.172978 0.181395 +vt 0.183305 0.181395 +vt 0.176420 0.260465 +vt 0.179862 0.260465 +vt 0.193632 0.293023 +vt 0.209122 0.293023 +vt 0.224613 0.293023 +vt 0.238382 0.260465 +vt 0.240103 0.293023 +vt 0.007745 0.293023 +vt 0.023236 0.293023 +vt 0.038726 0.293023 +vt 0.054217 0.293023 +vt 0.069707 0.293023 +vt 0.085198 0.293023 +vt 0.100688 0.293023 +vt 0.114458 0.260465 +vt 0.116179 0.293023 +vt 0.131670 0.293023 +vt 0.145439 0.260465 +vt 0.147160 0.293023 +vt 0.162651 0.293023 +vt 0.178141 0.293023 +vt 0.321859 0.093023 +vt 0.294320 0.172093 +vt 0.481928 0.000000 +vt 0.247849 0.046512 +vt 0.018072 0.181395 +vn -0.0000 -0.0000 1.0000 +vn 0.0000 0.9667 0.2560 +vn 0.3814 0.9208 0.0817 +vn 0.0000 0.9967 0.0817 +vn 0.6835 0.6835 0.2560 +vn 0.3699 0.8931 0.2560 +vn 0.9208 0.3814 0.0817 +vn 0.8931 0.3699 0.2560 +vn 0.9967 -0.0000 0.0817 +vn 0.9667 -0.0000 0.2560 +vn 0.9208 -0.3814 0.0817 +vn 0.8931 -0.3699 0.2560 +vn 0.7047 -0.7047 0.0817 +vn 0.6835 -0.6835 0.2560 +vn 0.3814 -0.9208 0.0817 +vn 0.3699 -0.8931 0.2560 +vn -0.0000 -0.9967 0.0816 +vn -0.0000 -0.9667 0.2560 +vn -0.3814 -0.9208 0.0816 +vn -0.3699 -0.8931 0.2560 +vn -0.7047 -0.7047 0.0817 +vn -0.6835 -0.6835 0.2560 +vn -0.3699 0.8931 0.2560 +vn -0.3814 0.9208 0.0817 +vn -0.7047 0.7047 0.0817 +vn -0.6835 0.6835 0.2560 +vn -0.9208 0.3814 0.0817 +vn -0.8931 0.3699 0.2560 +vn -0.9667 0.0000 0.2560 +vn -0.9967 0.0000 0.0817 +vn -0.9208 -0.3814 0.0817 +vn -0.8931 -0.3699 0.2560 +vn -0.8929 0.0000 0.4502 +vn -0.6642 0.2751 0.6951 +vn -0.7189 0.0000 0.6951 +vn -0.3417 0.8249 0.4502 +vn -0.6314 0.6314 0.4502 +vn -0.5084 0.5084 0.6951 +vn -0.8249 0.3417 0.4502 +vn 0.0000 0.8929 0.4502 +vn -0.2751 0.6642 0.6951 +vn 0.0000 0.7189 0.6951 +vn 0.3417 0.8249 0.4502 +vn 0.6314 0.6314 0.4502 +vn 0.5084 0.5084 0.6951 +vn 0.2751 0.6642 0.6951 +vn 0.8249 0.3417 0.4502 +vn 0.8929 -0.0000 0.4502 +vn 0.6642 0.2751 0.6951 +vn 0.7189 -0.0000 0.6951 +vn 0.8249 -0.3417 0.4502 +vn 0.6314 -0.6314 0.4502 +vn 0.6642 -0.2751 0.6951 +vn 0.5084 -0.5084 0.6951 +vn 0.3417 -0.8249 0.4502 +vn -0.0000 -0.8929 0.4502 +vn -0.0000 -0.7189 0.6951 +vn 0.2751 -0.6642 0.6951 +vn -0.3417 -0.8249 0.4502 +vn -0.6314 -0.6314 0.4502 +vn -0.5084 -0.5084 0.6951 +vn -0.2751 -0.6642 0.6951 +vn -0.8249 -0.3417 0.4502 +vn -0.6642 -0.2751 0.6951 +vn -0.9239 0.3827 0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.7047 0.7047 0.0817 +vn 0.7071 0.7071 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.9967 -0.0000 -0.0817 +vn 0.8931 -0.3699 -0.2560 +vn 0.9667 -0.0000 -0.2560 +vn 0.8860 -0.0000 -0.4636 +vn 0.8186 -0.3391 -0.4636 +vn 0.6531 -0.2705 -0.7074 +vn 0.7069 -0.0000 -0.7074 +vn 0.9208 0.3814 -0.0817 +vn 0.8931 0.3699 -0.2560 +vn 0.6835 0.6835 -0.2560 +vn 0.3814 0.9208 -0.0817 +vn 0.3699 0.8931 -0.2560 +vn 0.0000 0.9667 -0.2560 +vn -0.3699 0.8931 -0.2560 +vn 0.0000 0.9967 -0.0816 +vn -0.6835 0.6835 -0.2560 +vn -0.3814 0.9208 -0.0817 +vn -0.8931 0.3699 -0.2560 +vn -0.7047 0.7047 -0.0817 +vn -0.9667 0.0000 -0.2560 +vn -0.9208 0.3814 -0.0817 +vn -0.8931 -0.3699 -0.2560 +vn -0.9967 0.0000 -0.0817 +vn -0.6835 -0.6835 -0.2560 +vn -0.9208 -0.3814 -0.0817 +vn -0.3814 -0.9208 -0.0817 +vn -0.3699 -0.8931 -0.2560 +vn -0.0000 -0.9667 -0.2560 +vn 0.3814 -0.9208 -0.0817 +vn 0.3699 -0.8931 -0.2560 +vn 0.7047 -0.7047 -0.0817 +vn 0.6835 -0.6835 -0.2560 +vn 0.9208 -0.3814 -0.0817 +vn 0.7047 0.7047 -0.0817 +vn -0.7047 -0.7047 -0.0817 +vn -0.0000 -0.9967 -0.0817 +vn 0.6265 -0.6265 -0.4636 +vn 0.4998 -0.4998 -0.7074 +vn 0.3391 -0.8186 -0.4636 +vn 0.2705 -0.6531 -0.7074 +vn -0.0000 -0.8860 -0.4636 +vn -0.0000 -0.7069 -0.7074 +vn -0.3391 -0.8186 -0.4636 +vn -0.2705 -0.6531 -0.7074 +vn -0.6265 -0.6265 -0.4636 +vn -0.4998 -0.4998 -0.7074 +vn -0.8186 -0.3391 -0.4636 +vn -0.6531 -0.2705 -0.7074 +vn -0.8860 0.0000 -0.4636 +vn -0.7069 0.0000 -0.7074 +vn -0.8186 0.3391 -0.4636 +vn -0.6531 0.2705 -0.7074 +vn -0.6265 0.6265 -0.4636 +vn -0.4998 0.4998 -0.7074 +vn -0.3391 0.8186 -0.4636 +vn -0.2705 0.6531 -0.7074 +vn 0.0000 0.8860 -0.4636 +vn 0.0000 0.7069 -0.7074 +vn 0.3391 0.8186 -0.4636 +vn 0.2705 0.6531 -0.7074 +vn 0.6265 0.6265 -0.4636 +vn 0.4998 0.4998 -0.7074 +vn 0.8186 0.3391 -0.4636 +vn 0.6531 0.2705 -0.7074 +vn -0.0000 -0.0000 -1.0000 +s off +f 2788/3937/506 2805/3938/506 2804/3939/506 +f 2790/3940/506 2805/3941/506 2789/3942/506 +f 2791/3943/506 2806/3944/506 2790/3940/506 +f 2792/3945/506 2807/3946/506 2791/3947/506 +f 2792/3945/506 2809/3948/506 2808/3949/506 +f 2794/3950/506 2809/3951/506 2793/3952/506 +f 2794/3950/506 2811/3953/506 2810/3954/506 +f 2796/3955/506 2811/3956/506 2795/3957/506 +f 2796/3955/506 2813/3958/506 2812/3959/506 +f 2798/3960/506 2813/3961/506 2797/3962/506 +f 2783/3963/506 2814/3964/506 2798/3960/506 +f 2784/3965/506 2799/3966/506 2783/3963/506 +f 2784/3965/506 2801/3967/506 2800/3968/506 +f 2786/3969/506 2801/3970/506 2785/3971/506 +f 2786/3969/506 2803/3972/506 2802/3973/506 +f 2788/3937/506 2803/3974/506 2787/3975/506 +f 2788/3937/506 2789/3942/506 2805/3938/506 +f 2790/3940/506 2806/3976/506 2805/3941/506 +f 2791/3943/506 2807/3977/506 2806/3944/506 +f 2792/3945/506 2808/3978/506 2807/3946/506 +f 2792/3945/506 2793/3952/506 2809/3948/506 +f 2794/3950/506 2810/3979/506 2809/3951/506 +f 2794/3950/506 2795/3957/506 2811/3953/506 +f 2796/3955/506 2812/3980/506 2811/3956/506 +f 2796/3955/506 2797/3962/506 2813/3958/506 +f 2798/3960/506 2814/3981/506 2813/3961/506 +f 2783/3963/506 2799/3982/506 2814/3964/506 +f 2784/3965/506 2800/3983/506 2799/3966/506 +f 2784/3965/506 2785/3971/506 2801/3967/506 +f 2786/3969/506 2802/3984/506 2801/3970/506 +f 2786/3969/506 2787/3975/506 2803/3972/506 +f 2788/3937/506 2804/3985/506 2803/3974/506 +s 1 +f 2825/3986/507 2864/3987/508 2824/3988/509 +f 2841/3989/510 2864/3987/508 2865/3990/511 +f 2856/3991/512 2841/3992/510 2857/3993/513 +f 2820/3994/514 2857/3995/513 2821/3996/515 +f 2872/3997/516 2821/3998/515 2873/3999/517 +f 2836/4000/518 2873/4001/517 2837/4002/519 +f 2852/4003/520 2837/4004/519 2853/4005/521 +f 2828/4006/522 2853/4007/521 2829/4008/523 +f 2868/4009/524 2829/4010/523 2869/4011/525 +f 2844/4012/526 2869/4013/525 2845/4014/527 +f 2849/4015/528 2824/4016/509 2848/4017/529 +f 2849/4018/528 2832/4019/530 2833/4020/531 +f 2833/4021/531 2876/4022/532 2877/4023/533 +f 2816/4024/534 2876/4022/532 2815/4025/535 +f 2816/4026/534 2860/4027/536 2861/4028/537 +f 2845/4029/527 2860/4027/536 2844/4012/526 +f 2817/4030/538 2877/4031/533 2816/4024/534 +f 2879/4032/539 2817/4030/538 2818/4033/540 +f 2850/4034/541 2833/4020/531 2834/4035/542 +f 2835/4036/543 2850/4034/541 2834/4035/542 +f 2833/4021/531 2878/4037/544 2834/4038/542 +f 2834/4038/542 2879/4039/539 2835/4040/543 +f 2825/4041/507 2850/4042/541 2826/4043/545 +f 2826/4043/545 2851/4044/546 2827/4045/547 +f 2826/4046/545 2865/4047/511 2825/3986/507 +f 2827/4048/547 2866/4049/548 2826/4046/545 +f 2841/3989/510 2866/4050/548 2842/4051/549 +f 2843/4052/550 2866/4050/548 2867/4053/551 +f 2842/4054/549 2857/3993/513 2841/3992/510 +f 2843/4055/550 2858/4056/552 2842/4054/549 +f 2821/3996/515 2858/4057/552 2822/4058/553 +f 2822/4058/553 2859/4059/554 2823/4060/555 +f 2874/4061/556 2821/3998/515 2822/4062/553 +f 2823/4063/555 2874/4061/556 2822/4062/553 +f 2837/4002/519 2874/4064/556 2838/4065/557 +f 2838/4065/557 2875/4066/558 2839/4067/559 +f 2838/4068/557 2853/4005/521 2837/4004/519 +f 2839/4069/559 2854/4070/560 2838/4068/557 +f 2830/4071/561 2853/4007/521 2854/4072/560 +f 2831/4073/562 2854/4072/560 2855/4074/563 +f 2830/4075/561 2869/4011/525 2829/4010/523 +f 2831/4076/562 2870/4077/564 2830/4075/561 +f 2846/4078/565 2869/4013/525 2870/4079/564 +f 2847/4080/566 2870/4079/564 2871/4081/567 +f 2862/4082/568 2845/4029/527 2846/4083/565 +f 2847/4084/566 2862/4082/568 2846/4083/565 +f 2816/4026/534 2862/4085/568 2817/4086/538 +f 2817/4086/538 2863/4087/569 2818/4088/540 +f 2819/4089/506 2818/4088/540 2863/4087/569 +f 2863/4090/569 2847/4084/566 2819/4091/506 +f 2871/4081/567 2819/4092/506 2847/4080/566 +f 2871/4093/567 2831/4076/562 2819/4094/506 +f 2855/4074/563 2819/4095/506 2831/4073/562 +f 2855/4096/563 2839/4069/559 2819/4097/506 +f 2875/4066/558 2819/4098/506 2839/4067/559 +f 2875/4099/558 2823/4063/555 2819/4100/506 +f 2859/4059/554 2819/4101/506 2823/4060/555 +f 2859/4102/554 2843/4055/550 2819/4103/506 +f 2867/4053/551 2819/4104/506 2843/4052/550 +f 2867/4105/551 2827/4048/547 2819/4106/506 +f 2851/4044/546 2819/4107/506 2827/4045/547 +f 2819/4108/506 2879/4032/539 2818/4033/540 +f 2879/4039/539 2819/4109/506 2835/4040/543 +f 2851/4110/546 2835/4036/543 2819/4111/506 +f 2810/4112/570 2815/4025/535 2876/4022/532 +f 2812/4113/571 2815/4025/535 2811/4114/572 +f 2812/4113/571 2844/4012/526 2860/4027/536 +f 2868/4009/524 2813/4115/573 2814/4116/574 +f 2814/4116/574 2828/4006/522 2868/4009/524 +f 2852/4003/520 2799/4117/575 2800/4118/576 +f 2800/4118/576 2836/4000/518 2852/4003/520 +f 2872/3997/516 2801/4119/577 2802/4120/578 +f 2802/4120/578 2820/3994/514 2872/3997/516 +f 2856/3991/512 2803/4121/579 2804/4122/580 +f 2804/4122/580 2840/4123/581 2856/3991/512 +f 2864/3987/508 2805/4124/582 2806/4125/583 +f 2806/4125/583 2824/3988/509 2864/3987/508 +f 2848/4017/529 2807/3946/584 2808/4126/585 +f 2809/4127/586 2848/4017/529 2808/4126/585 +f 2810/4112/570 2832/4019/530 2809/4127/586 +f 2880/4128/587 2942/4129/588 2881/4130/589 +f 2882/4131/590 2942/4129/588 2943/4132/591 +f 2882/4131/590 2944/4133/592 2883/4134/593 +f 2925/4135/594 2881/4136/589 2926/4137/595 +f 2910/4138/596 2925/4135/594 2926/4139/595 +f 2933/4140/597 2910/4141/596 2934/4142/598 +f 2894/4143/599 2933/4140/597 2934/4144/598 +f 2918/4145/600 2893/4146/601 2894/4147/599 +f 2902/4148/602 2917/4149/603 2918/4150/600 +f 2938/4151/604 2901/4152/605 2902/4153/602 +f 2886/4154/606 2937/4155/607 2938/4156/604 +f 2922/4157/608 2885/4158/609 2886/4159/606 +f 2906/4160/610 2921/4161/611 2922/4162/608 +f 2929/4163/612 2906/4164/610 2930/4165/613 +f 2890/4166/614 2929/4163/612 2930/4167/613 +f 2913/4168/615 2890/4169/614 2914/4170/616 +f 2897/4171/617 2914/4172/616 2898/4173/618 +f 2942/4174/588 2897/4171/617 2898/4175/618 +f 2793/3952/577 2941/4176/619 2794/3950/578 +f 2794/3950/578 2880/4128/587 2795/3957/579 +f 2796/3955/580 2880/4128/587 2925/4135/594 +f 2796/3955/580 2909/4177/620 2797/3962/582 +f 2797/3962/582 2933/4140/597 2798/3960/583 +f 2798/3960/583 2893/4146/601 2783/3963/584 +f 2783/3963/584 2917/4149/603 2784/3965/585 +f 2784/3965/585 2901/4152/605 2785/3971/586 +f 2785/3971/586 2937/4155/607 2786/3969/570 +f 2786/3969/570 2885/4158/609 2787/3975/572 +f 2787/3975/572 2921/4161/611 2788/3937/571 +f 2788/3937/571 2905/4178/621 2789/3942/573 +f 2789/3942/573 2929/4163/612 2790/3940/574 +f 2790/3940/574 2889/4179/622 2791/3943/575 +f 2791/3947/575 2913/4168/615 2792/3945/576 +f 2913/4168/615 2793/3952/577 2792/3945/576 +f 2943/4180/591 2898/4175/618 2899/4181/623 +f 2944/4182/592 2899/4181/623 2900/4183/624 +f 2899/4184/623 2914/4172/616 2915/4185/625 +f 2900/4186/624 2915/4185/625 2916/4187/626 +f 2915/4188/625 2890/4169/614 2891/4189/627 +f 2892/4190/628 2915/4188/625 2891/4189/627 +f 2891/4191/627 2930/4167/613 2931/4192/629 +f 2892/4193/628 2931/4192/629 2932/4194/630 +f 2907/4195/631 2930/4165/613 2906/4164/610 +f 2932/4196/630 2907/4195/631 2908/4197/632 +f 2907/4198/631 2922/4162/608 2923/4199/633 +f 2908/4200/632 2923/4199/633 2924/4201/634 +f 2923/4202/633 2886/4159/606 2887/4203/635 +f 2924/4204/634 2887/4203/635 2888/4205/636 +f 2886/4154/606 2939/4206/637 2887/4207/635 +f 2888/4208/636 2939/4206/637 2940/4209/638 +f 2939/4210/637 2902/4153/602 2903/4211/639 +f 2940/4212/638 2903/4211/639 2904/4213/640 +f 2903/4214/639 2918/4150/600 2919/4215/641 +f 2904/4216/640 2919/4215/641 2920/4217/642 +f 2895/4218/643 2918/4145/600 2894/4147/599 +f 2896/4219/644 2919/4220/641 2895/4218/643 +f 2895/4221/643 2934/4144/598 2935/4222/645 +f 2896/4223/644 2935/4222/645 2936/4224/646 +f 2911/4225/647 2934/4142/598 2910/4141/596 +f 2912/4226/648 2935/4227/645 2911/4225/647 +f 2911/4228/647 2926/4139/595 2927/4229/649 +f 2912/4230/648 2927/4229/649 2928/4231/650 +f 2927/4232/649 2881/4136/589 2882/4233/590 +f 2928/4234/650 2882/4233/590 2883/4235/593 +f 2884/4236/651 2883/4134/593 2944/4133/592 +f 2944/4182/592 2900/4183/624 2884/4237/651 +f 2916/4187/626 2884/4238/651 2900/4186/624 +f 2916/4239/626 2892/4190/628 2884/4240/651 +f 2932/4194/630 2884/4241/651 2892/4193/628 +f 2932/4196/630 2908/4197/632 2884/4242/651 +f 2924/4201/634 2884/4243/651 2908/4200/632 +f 2924/4204/634 2888/4205/636 2884/4244/651 +f 2940/4209/638 2884/4245/651 2888/4208/636 +f 2940/4212/638 2904/4213/640 2884/4246/651 +f 2920/4217/642 2884/4247/651 2904/4216/640 +f 2920/4248/642 2896/4219/644 2884/4249/651 +f 2936/4224/646 2884/4250/651 2896/4223/644 +f 2936/4251/646 2912/4226/648 2884/4252/651 +f 2928/4231/650 2884/4253/651 2912/4230/648 +f 2884/4254/651 2928/4234/650 2883/4235/593 +f 2825/3986/507 2865/4047/511 2864/3987/508 +f 2841/3989/510 2840/4123/581 2864/3987/508 +f 2856/3991/512 2840/4123/581 2841/3992/510 +f 2820/3994/514 2856/3991/512 2857/3995/513 +f 2872/3997/516 2820/3994/514 2821/3998/515 +f 2836/4000/518 2872/3997/516 2873/4001/517 +f 2852/4003/520 2836/4000/518 2837/4004/519 +f 2828/4006/522 2852/4003/520 2853/4007/521 +f 2868/4009/524 2828/4006/522 2829/4010/523 +f 2844/4012/526 2868/4009/524 2869/4013/525 +f 2849/4015/528 2825/4041/507 2824/4016/509 +f 2849/4018/528 2848/4017/529 2832/4019/530 +f 2833/4021/531 2832/4019/530 2876/4022/532 +f 2816/4024/534 2877/4031/533 2876/4022/532 +f 2816/4026/534 2815/4025/535 2860/4027/536 +f 2845/4029/527 2861/4255/537 2860/4027/536 +f 2817/4030/538 2878/4256/544 2877/4031/533 +f 2879/4032/539 2878/4256/544 2817/4030/538 +f 2850/4034/541 2849/4018/528 2833/4020/531 +f 2835/4036/543 2851/4110/546 2850/4034/541 +f 2833/4021/531 2877/4023/533 2878/4037/544 +f 2834/4038/542 2878/4037/544 2879/4039/539 +f 2825/4041/507 2849/4015/528 2850/4042/541 +f 2826/4043/545 2850/4042/541 2851/4044/546 +f 2826/4046/545 2866/4049/548 2865/4047/511 +f 2827/4048/547 2867/4105/551 2866/4049/548 +f 2841/3989/510 2865/3990/511 2866/4050/548 +f 2843/4052/550 2842/4051/549 2866/4050/548 +f 2842/4054/549 2858/4056/552 2857/3993/513 +f 2843/4055/550 2859/4102/554 2858/4056/552 +f 2821/3996/515 2857/3995/513 2858/4057/552 +f 2822/4058/553 2858/4057/552 2859/4059/554 +f 2874/4061/556 2873/3999/517 2821/3998/515 +f 2823/4063/555 2875/4099/558 2874/4061/556 +f 2837/4002/519 2873/4001/517 2874/4064/556 +f 2838/4065/557 2874/4064/556 2875/4066/558 +f 2838/4068/557 2854/4070/560 2853/4005/521 +f 2839/4069/559 2855/4096/563 2854/4070/560 +f 2830/4071/561 2829/4008/523 2853/4007/521 +f 2831/4073/562 2830/4071/561 2854/4072/560 +f 2830/4075/561 2870/4077/564 2869/4011/525 +f 2831/4076/562 2871/4093/567 2870/4077/564 +f 2846/4078/565 2845/4014/527 2869/4013/525 +f 2847/4080/566 2846/4078/565 2870/4079/564 +f 2862/4082/568 2861/4255/537 2845/4029/527 +f 2847/4084/566 2863/4090/569 2862/4082/568 +f 2816/4026/534 2861/4028/537 2862/4085/568 +f 2817/4086/538 2862/4085/568 2863/4087/569 +f 2810/4112/570 2811/4114/572 2815/4025/535 +f 2812/4113/571 2860/4027/536 2815/4025/535 +f 2812/4113/571 2813/4115/573 2844/4012/526 +f 2868/4009/524 2844/4012/526 2813/4115/573 +f 2814/4116/574 2799/4117/575 2828/4006/522 +f 2852/4003/520 2828/4006/522 2799/4117/575 +f 2800/4118/576 2801/4119/577 2836/4000/518 +f 2872/3997/516 2836/4000/518 2801/4119/577 +f 2802/4120/578 2803/4121/579 2820/3994/514 +f 2856/3991/512 2820/3994/514 2803/4121/579 +f 2804/4122/580 2805/4124/582 2840/4123/581 +f 2864/3987/508 2840/4123/581 2805/4124/582 +f 2806/4125/583 2807/4257/584 2824/3988/509 +f 2848/4017/529 2824/4016/509 2807/3946/584 +f 2809/4127/586 2832/4019/530 2848/4017/529 +f 2810/4112/570 2876/4022/532 2832/4019/530 +f 2880/4128/587 2941/4176/619 2942/4129/588 +f 2882/4131/590 2881/4130/589 2942/4129/588 +f 2882/4131/590 2943/4132/591 2944/4133/592 +f 2925/4135/594 2880/4128/587 2881/4136/589 +f 2910/4138/596 2909/4177/620 2925/4135/594 +f 2933/4140/597 2909/4177/620 2910/4141/596 +f 2894/4143/599 2893/4146/601 2933/4140/597 +f 2918/4145/600 2917/4149/603 2893/4146/601 +f 2902/4148/602 2901/4152/605 2917/4149/603 +f 2938/4151/604 2937/4155/607 2901/4152/605 +f 2886/4154/606 2885/4158/609 2937/4155/607 +f 2922/4157/608 2921/4161/611 2885/4158/609 +f 2906/4160/610 2905/4178/621 2921/4161/611 +f 2929/4163/612 2905/4178/621 2906/4164/610 +f 2890/4166/614 2889/4179/622 2929/4163/612 +f 2913/4168/615 2889/4258/622 2890/4169/614 +f 2897/4171/617 2913/4168/615 2914/4172/616 +f 2942/4174/588 2941/4176/619 2897/4171/617 +f 2793/3952/577 2897/4171/617 2941/4176/619 +f 2794/3950/578 2941/4176/619 2880/4128/587 +f 2796/3955/580 2795/3957/579 2880/4128/587 +f 2796/3955/580 2925/4135/594 2909/4177/620 +f 2797/3962/582 2909/4177/620 2933/4140/597 +f 2798/3960/583 2933/4140/597 2893/4146/601 +f 2783/3963/584 2893/4146/601 2917/4149/603 +f 2784/3965/585 2917/4149/603 2901/4152/605 +f 2785/3971/586 2901/4152/605 2937/4155/607 +f 2786/3969/570 2937/4155/607 2885/4158/609 +f 2787/3975/572 2885/4158/609 2921/4161/611 +f 2788/3937/571 2921/4161/611 2905/4178/621 +f 2789/3942/573 2905/4178/621 2929/4163/612 +f 2790/3940/574 2929/4163/612 2889/4179/622 +f 2791/3947/575 2889/4258/622 2913/4168/615 +f 2913/4168/615 2897/4171/617 2793/3952/577 +f 2943/4180/591 2942/4174/588 2898/4175/618 +f 2944/4182/592 2943/4180/591 2899/4181/623 +f 2899/4184/623 2898/4173/618 2914/4172/616 +f 2900/4186/624 2899/4184/623 2915/4185/625 +f 2915/4188/625 2914/4170/616 2890/4169/614 +f 2892/4190/628 2916/4239/626 2915/4188/625 +f 2891/4191/627 2890/4166/614 2930/4167/613 +f 2892/4193/628 2891/4191/627 2931/4192/629 +f 2907/4195/631 2931/4259/629 2930/4165/613 +f 2932/4196/630 2931/4259/629 2907/4195/631 +f 2907/4198/631 2906/4160/610 2922/4162/608 +f 2908/4200/632 2907/4198/631 2923/4199/633 +f 2923/4202/633 2922/4157/608 2886/4159/606 +f 2924/4204/634 2923/4202/633 2887/4203/635 +f 2886/4154/606 2938/4156/604 2939/4206/637 +f 2888/4208/636 2887/4207/635 2939/4206/637 +f 2939/4210/637 2938/4151/604 2902/4153/602 +f 2940/4212/638 2939/4210/637 2903/4211/639 +f 2903/4214/639 2902/4148/602 2918/4150/600 +f 2904/4216/640 2903/4214/639 2919/4215/641 +f 2895/4218/643 2919/4220/641 2918/4145/600 +f 2896/4219/644 2920/4248/642 2919/4220/641 +f 2895/4221/643 2894/4143/599 2934/4144/598 +f 2896/4223/644 2895/4221/643 2935/4222/645 +f 2911/4225/647 2935/4227/645 2934/4142/598 +f 2912/4226/648 2936/4251/646 2935/4227/645 +f 2911/4228/647 2910/4138/596 2926/4139/595 +f 2912/4230/648 2911/4228/647 2927/4229/649 +f 2927/4232/649 2926/4137/595 2881/4136/589 +f 2928/4234/650 2927/4232/649 2882/4233/590 +o Frame +v -3.125000 4.499998 -5.500007 +v -2.375000 4.499998 -5.500007 +v -3.125000 4.249998 -5.500007 +v -2.375000 4.249998 -5.500007 +v -2.375000 4.499998 -1.750007 +v -3.125000 4.499998 -1.750007 +v -2.375000 4.249998 -1.500007 +v -2.375000 3.374998 -1.500007 +v -3.125000 3.374998 -1.500007 +v -3.125000 4.249998 -1.500007 +v -2.375000 4.249998 -1.750007 +v -3.125000 4.249998 -1.750007 +v -2.375000 3.124998 -1.750007 +v -3.125000 3.124998 -1.750007 +v 2.500000 0.000000 8.250000 +v 3.500000 0.000000 8.250000 +v 3.500000 1.000000 8.250000 +v 2.500000 0.000000 4.500000 +v 3.500000 0.000000 4.500000 +v 3.500000 1.000000 4.500000 +v -3.500000 0.000000 8.250000 +v -2.500000 0.000000 8.250000 +v -3.500000 0.000000 4.500000 +v -2.500000 0.000000 4.500000 +v -3.500000 1.000000 8.250000 +v -3.500000 1.000000 4.500000 +v 2.500000 0.000000 2.500000 +v -2.500000 0.000000 2.500000 +v 1.500000 0.000000 3.500000 +v -1.500000 0.000000 3.500000 +v 2.500000 0.000000 0.000000 +v -2.500000 0.000000 0.000000 +v 1.500000 0.000000 -1.000000 +v -1.500000 0.000000 -1.000000 +v 2.500000 1.000000 2.500000 +v -2.500000 1.000000 2.500000 +v 1.500000 1.000000 3.500000 +v -1.500000 1.000000 3.500000 +v 2.500000 1.000000 0.000000 +v -2.500000 1.000000 0.000000 +v 1.500000 1.000000 -1.000000 +v -1.500000 1.000000 -1.000000 +v 1.250000 0.999998 -3.500006 +v 3.250000 0.999998 -3.500006 +v 1.250000 4.749998 -3.500006 +v 2.000000 4.749998 -3.500006 +v 1.250000 5.499998 -3.500006 +v -1.250000 4.749998 -3.500006 +v -1.250000 5.499998 -3.500006 +v -3.250000 0.999998 -3.500006 +v -1.250000 0.999998 -3.500006 +v -2.000000 4.749998 -3.500006 +v 1.250000 4.749998 -4.000006 +v 1.250000 0.999998 -4.000006 +v 3.250000 0.999998 -4.000006 +v 2.000000 4.749998 -4.000006 +v 1.250000 5.499998 -4.000006 +v -1.250000 5.499998 -4.000006 +v -1.250000 4.749998 -4.000006 +v -2.000000 4.749998 -4.000006 +v -3.250000 0.999998 -4.000006 +v -1.250000 0.999998 -4.000006 +v 3.250000 2.749998 -3.500006 +v 3.250000 2.749998 -4.000006 +v -3.250000 2.749998 -3.500006 +v -3.250000 2.749998 -4.000006 +v 2.000000 2.749998 -3.500006 +v -2.000000 2.749998 -3.500006 +v 2.000000 2.749998 -4.000006 +v -2.000000 2.749998 -4.000006 +v 3.500000 0.000000 -9.500000 +v 3.500000 1.000000 -9.500000 +v 3.500000 1.000000 -10.500000 +v 2.500000 0.000000 -10.500000 +v -2.500000 0.000000 -10.500000 +v -3.500000 0.000000 -9.500000 +v -3.500000 1.000000 -10.500000 +v 3.500000 6.000000 -10.500000 +v -3.500000 6.000000 -10.500000 +v 2.500000 7.000000 -10.500000 +v -2.500000 7.000000 -10.500000 +v -3.500000 1.000000 -9.500000 +v 3.500000 7.000000 -9.500000 +v -3.500000 7.000000 -9.500000 +v 2.500000 0.000000 -5.000000 +v -2.500000 0.000000 -5.000000 +v 1.500000 0.000000 -4.000000 +v -1.500000 0.000000 -4.000000 +v 2.500000 0.000000 -7.500000 +v -2.500000 0.000000 -7.500000 +v 1.500000 0.000000 -8.500000 +v -1.500000 0.000000 -8.500000 +v 2.500000 1.000000 -5.000000 +v -2.500000 1.000000 -5.000000 +v 1.500000 1.000000 -4.000000 +v -1.500000 1.000000 -4.000000 +v 2.500000 1.000000 -7.500000 +v -2.500000 1.000000 -7.500000 +v 1.500000 1.000000 -8.500000 +v -1.500000 1.000000 -8.500000 +v 3.500000 1.000000 4.500000 +v 3.500000 1.000000 3.500000 +v 2.500000 1.000000 3.500000 +v 2.500000 1.000000 4.500000 +v 3.500000 5.000000 4.500000 +v 3.500000 5.000000 3.500000 +v 2.500000 5.000000 3.500000 +v 2.500000 5.000000 4.500000 +v -2.500000 1.000000 4.500000 +v -2.500000 1.000000 3.500000 +v -3.500000 1.000000 3.500000 +v -3.500000 1.000000 4.500000 +v -2.500000 5.000000 4.500000 +v -2.500000 5.000000 3.500000 +v -3.500000 5.000000 3.500000 +v -3.500000 5.000000 4.500000 +v 1.500000 6.000000 3.500000 +v 1.500000 6.000000 4.500000 +v -1.500000 6.000000 4.500000 +v -1.500000 6.000000 3.500000 +v 1.500000 7.000000 3.500000 +v 1.500000 7.000000 4.500000 +v -1.500000 7.000000 4.500000 +v -1.500000 7.000000 3.500000 +v 1.750000 5.749998 -9.000008 +v 1.396446 5.603552 -9.000008 +v 1.250000 5.249998 -9.000008 +v 1.396446 4.896445 -9.000008 +v 1.750000 4.749998 -9.000008 +v 2.103553 4.896445 -9.000008 +v 2.250000 5.249998 -9.000008 +v 2.103553 5.603552 -9.000008 +v 1.396446 5.603552 -9.500008 +v 1.750000 5.749998 -9.500008 +v 1.250000 5.249998 -9.500008 +v 1.396446 4.896445 -9.500008 +v 1.750000 4.749998 -9.500008 +v 2.103553 4.896445 -9.500008 +v 2.250000 5.249998 -9.500008 +v 2.103553 5.603552 -9.500008 +v 2.750000 4.249998 -5.500007 +v 2.462988 4.192908 -5.500007 +v 2.219669 4.030329 -5.500007 +v 2.057091 3.787011 -5.500007 +v 2.000000 3.499998 -5.500007 +v 2.057091 3.212986 -5.500007 +v 2.219669 2.969668 -5.500007 +v 2.462988 2.807089 -5.500007 +v 2.750000 2.749998 -5.500007 +v 3.037012 2.807089 -5.500007 +v 3.280330 2.969668 -5.500007 +v 3.442909 3.212986 -5.500007 +v 3.500000 3.499998 -5.500007 +v 3.442909 3.787011 -5.500007 +v 3.280330 4.030329 -5.500007 +v 3.037012 4.192908 -5.500007 +v 2.750000 4.249998 -1.750007 +v 2.462988 4.192908 -1.750007 +v 2.219669 4.030329 -1.750007 +v 2.057091 3.787011 -1.750007 +v 2.000000 3.499998 -1.750007 +v 2.057091 3.212986 -1.750007 +v 2.219669 2.969668 -1.750007 +v 2.462988 2.807089 -1.750007 +v 2.750000 2.749998 -1.750007 +v 3.037012 2.807089 -1.750007 +v 3.280330 2.969668 -1.750007 +v 3.442909 3.212986 -1.750007 +v 3.500000 3.499998 -1.750007 +v 3.442909 3.787011 -1.750007 +v 3.280330 4.030329 -1.750007 +v 3.037012 4.192908 -1.750007 +v -2.500000 6.999996 8.250000 +v -3.500000 6.999996 8.250000 +v -3.500000 5.999996 8.250000 +v -2.500000 6.999996 4.500000 +v -3.500000 6.999996 4.500000 +v -3.500000 5.999996 4.500000 +v 3.500000 6.999996 8.250000 +v 2.500000 6.999996 8.250000 +v 3.500000 6.999996 4.500000 +v 2.500000 6.999996 4.500000 +v 3.500000 5.999996 8.250000 +v 3.500000 5.999996 4.500000 +v 2.000000 6.499996 4.500000 +v 3.000000 5.499996 4.500000 +v -2.000000 6.499996 4.500000 +v -3.000000 5.499996 4.500000 +v -3.500000 5.999996 3.500000 +v -3.500000 6.999996 3.500000 +v -2.500000 6.999996 3.500000 +v 3.500000 5.999996 3.500000 +v 2.500000 6.999996 3.500000 +v 3.500000 6.999996 3.500000 +v 2.000000 6.499996 3.500000 +v 3.000000 5.499996 3.500000 +v -2.000000 6.499996 3.500000 +v -3.000000 5.499996 3.500000 +v -2.500000 6.999996 -6.500000 +v -3.500000 6.999996 -6.500000 +v -3.500000 5.999996 -6.500000 +v -2.500000 6.999996 -9.500000 +v -3.500000 6.999996 -9.500000 +v -3.500000 5.999996 -9.500000 +v 3.500000 6.999996 -6.500000 +v 2.500000 6.999996 -6.500000 +v 3.500000 6.999996 -9.500000 +v 2.500000 6.999996 -9.500000 +v 3.500000 5.999996 -6.500000 +v 3.500000 5.999996 -9.500000 +v -3.500000 5.999996 -5.500000 +v -3.500000 6.999996 -5.500000 +v -2.500000 6.999996 -5.500000 +v 3.500000 5.999996 -5.500000 +v 2.500000 6.999996 -5.500000 +v 3.500000 6.999996 -5.500000 +v 2.000000 6.499996 -5.500000 +v 3.000000 5.499996 -5.500000 +v -2.000000 6.499996 -5.500000 +v -3.000000 5.499996 -5.500000 +v 2.000000 6.499996 -6.500000 +v 3.000000 5.499996 -6.500000 +v -2.000000 6.499996 -6.500000 +v -3.000000 5.499996 -6.500000 +v 2.073223 1.676775 -4.000006 +v 2.073223 1.323221 -4.000006 +v 2.250000 1.249998 -4.000006 +v 2.426777 1.323221 -4.000006 +v 2.500000 1.499998 -4.000006 +v 2.426777 1.676775 -4.000006 +v 2.000000 1.499998 -4.000006 +v 2.250000 1.749998 -4.000006 +v 1.573223 1.676775 -4.000006 +v 1.573223 1.323221 -4.000006 +v 1.750000 1.249998 -4.000006 +v 1.926777 1.323221 -4.000006 +v 2.000000 1.499998 -4.000006 +v 1.926777 1.676775 -4.000006 +v 1.500000 1.499998 -4.000006 +v 1.750000 1.749998 -4.000006 +v 2.073223 2.176775 -4.000006 +v 2.073223 1.823221 -4.000006 +v 2.250000 1.749998 -4.000006 +v 2.426777 1.823221 -4.000006 +v 2.500000 1.999998 -4.000006 +v 2.426777 2.176775 -4.000006 +v 2.000000 1.999998 -4.000006 +v 2.250000 2.249998 -4.000006 +v 1.573223 2.176775 -4.000006 +v 1.573223 1.823221 -4.000006 +v 1.750000 1.749998 -4.000006 +v 1.926777 1.823221 -4.000006 +v 2.000000 1.999998 -4.000006 +v 1.926777 2.176775 -4.000006 +v 1.500000 1.999998 -4.000006 +v 1.750000 2.249998 -4.000006 +v 2.073223 1.676775 -4.750006 +v 2.073223 1.323221 -4.750006 +v 2.250000 1.249998 -4.750006 +v 2.426777 1.323221 -4.750006 +v 2.500000 1.499998 -4.750006 +v 2.426777 1.676775 -4.750006 +v 2.000000 1.499998 -4.750006 +v 2.250000 1.749998 -4.750006 +v 1.573223 1.676775 -4.750006 +v 1.573223 1.323221 -4.750006 +v 1.750000 1.249998 -4.750006 +v 1.926777 1.323221 -4.750006 +v 2.000000 1.499998 -4.750006 +v 1.926777 1.676775 -4.750006 +v 1.500000 1.499998 -4.750006 +v 1.750000 1.749998 -4.750006 +v 2.073223 2.176775 -4.250006 +v 2.073223 1.823221 -4.250006 +v 2.250000 1.749998 -4.250006 +v 2.426777 1.823221 -4.250006 +v 2.500000 1.999998 -4.250006 +v 2.426777 2.176775 -4.250006 +v 2.000000 1.999998 -4.250006 +v 2.250000 2.249998 -4.250006 +v 1.573223 2.176775 -4.250006 +v 1.573223 1.823221 -4.250006 +v 1.750000 1.749998 -4.250006 +v 1.926777 1.823221 -4.250006 +v 2.000000 1.999998 -4.250006 +v 1.926777 2.176775 -4.250006 +v 1.500000 1.999998 -4.250006 +v 1.750000 2.249998 -4.250006 +v 2.073223 1.698221 -4.801783 +v 2.073223 1.448221 -5.051783 +v 2.250000 1.396445 -5.103559 +v 2.426777 1.448221 -5.051783 +v 2.500000 1.573221 -4.926783 +v 2.426777 1.698221 -4.801783 +v 2.000000 1.573221 -4.926783 +v 1.573223 1.698221 -4.801783 +v 1.573223 1.448221 -5.051783 +v 1.750000 1.396445 -5.103559 +v 1.926777 1.448221 -5.051783 +v 2.000000 1.573221 -4.926783 +v 1.926777 1.698221 -4.801783 +v 1.500000 1.573221 -4.926783 +v 2.073223 1.749998 -4.823230 +v 2.073223 1.749998 -5.176783 +v 2.250000 1.749998 -5.250006 +v 2.426777 1.749998 -5.176783 +v 2.500000 1.749998 -5.000006 +v 2.426777 1.749998 -4.823230 +v 2.000000 1.749998 -5.000006 +v 1.573223 1.749998 -4.823230 +v 1.573223 1.749998 -5.176783 +v 1.750000 1.749998 -5.250006 +v 1.926777 1.749998 -5.176783 +v 2.000000 1.749998 -5.000006 +v 1.926777 1.749998 -4.823230 +v 1.500000 1.749998 -5.000006 +v 2.073223 2.198221 -4.301783 +v 2.073223 1.948221 -4.551783 +v 2.250000 1.896445 -4.603559 +v 2.426777 1.948221 -4.551783 +v 2.500000 2.073221 -4.426783 +v 2.426777 2.198221 -4.301783 +v 2.000000 2.073221 -4.426783 +v 1.573223 2.198221 -4.301783 +v 1.573223 1.948221 -4.551783 +v 1.750000 1.896445 -4.603559 +v 1.926777 1.948221 -4.551783 +v 2.000000 2.073221 -4.426783 +v 1.926777 2.198221 -4.301783 +v 1.500000 2.073221 -4.426783 +v 2.073223 2.249998 -4.323230 +v 2.073223 2.249998 -4.676783 +v 2.250000 2.249998 -4.750006 +v 2.426777 2.249998 -4.676783 +v 2.500000 2.249998 -4.500006 +v 2.426777 2.249998 -4.323230 +v 2.000000 2.249998 -4.500006 +v 1.573223 2.249998 -4.323230 +v 1.573223 2.249998 -4.676783 +v 1.750000 2.249998 -4.750006 +v 1.926777 2.249998 -4.676783 +v 2.000000 2.249998 -4.500006 +v 1.926777 2.249998 -4.323230 +v 1.500000 2.249998 -4.500006 +v 2.250000 3.499998 -4.750006 +v 1.750000 3.249998 -4.750006 +v 2.250000 3.499998 -4.250006 +v 1.750000 3.249998 -4.250006 +v 2.073223 3.499998 -4.823230 +v 2.073223 3.499998 -5.176783 +v 2.250000 3.499998 -5.250006 +v 2.426777 3.499998 -5.176783 +v 2.500000 3.499998 -5.000006 +v 2.426777 3.499998 -4.823230 +v 2.000000 3.499998 -5.000006 +v 1.573223 3.249998 -4.823230 +v 1.573223 3.249998 -5.176783 +v 1.750000 3.249998 -5.250006 +v 1.926777 3.249998 -5.176783 +v 2.000000 3.249998 -5.000006 +v 1.926777 3.249998 -4.823230 +v 1.500000 3.249998 -5.000006 +v 2.073223 3.499998 -4.323230 +v 2.073223 3.499998 -4.676783 +v 2.250000 3.499998 -4.750006 +v 2.426777 3.499998 -4.676783 +v 2.500000 3.499998 -4.500006 +v 2.426777 3.499998 -4.323230 +v 2.000000 3.499998 -4.500006 +v 1.573223 3.249998 -4.323230 +v 1.573223 3.249998 -4.676783 +v 1.750000 3.249998 -4.750006 +v 1.926777 3.249998 -4.676783 +v 2.000000 3.249998 -4.500006 +v 1.926777 3.249998 -4.323230 +v 1.500000 3.249998 -4.500006 +v 1.823223 3.426775 -4.750006 +v 1.823223 3.426775 -4.250006 +v 1.698223 3.551775 -4.823230 +v 1.698223 3.551775 -5.176783 +v 1.823223 3.426775 -5.250006 +v 1.948223 3.301775 -5.176783 +v 1.948223 3.301775 -4.823230 +v 1.646446 3.603551 -5.000006 +v 1.698223 3.551775 -4.323230 +v 1.698223 3.551775 -4.676783 +v 1.823223 3.426775 -4.750006 +v 1.948223 3.301775 -4.676783 +v 1.948223 3.301775 -4.323230 +v 1.646446 3.603551 -4.500006 +v 2.000000 3.499998 -4.750006 +v 2.000000 3.499998 -4.250006 +v 2.000000 3.676775 -4.823230 +v 2.000000 3.676775 -5.176783 +v 2.000000 3.499998 -5.250006 +v 2.000000 3.323221 -5.176783 +v 2.000000 3.323221 -4.823230 +v 2.000000 3.749998 -5.000006 +v 2.000000 3.676775 -4.323230 +v 1.999999 3.676775 -4.676783 +v 2.000000 3.499998 -4.750006 +v 2.000000 3.323221 -4.676783 +v 2.000000 3.323221 -4.323230 +v 2.000000 3.749998 -4.500006 +v 2.125000 3.249998 -5.000006 +v 2.125000 3.249998 -4.500006 +v 2.125000 3.499998 -4.750006 +v 2.125000 3.499998 -4.250006 +v 2.125000 3.676775 -4.823230 +v 2.125000 3.676775 -5.176783 +v 2.125000 3.499998 -5.250006 +v 2.125000 3.323221 -5.176783 +v 2.125000 3.323221 -4.823230 +v 2.125000 3.749998 -5.000006 +v 2.125000 3.676775 -4.323230 +v 2.125000 3.676775 -4.676783 +v 2.125000 3.499998 -4.750006 +v 2.125000 3.323221 -4.676783 +v 2.125000 3.323221 -4.323230 +v 2.125000 3.749998 -4.500006 +v 2.375000 3.124998 -1.750007 +v 3.125000 3.124998 -1.750007 +v 2.375000 4.249998 -1.750007 +v 3.125000 4.249998 -1.750007 +v 2.375000 4.249998 -1.500007 +v 2.375000 3.374998 -1.500007 +v 3.125000 3.374998 -1.500007 +v 3.125000 4.249998 -1.500007 +v 2.375000 4.499998 -1.750007 +v 3.125000 4.499998 -1.750007 +v 3.125000 4.249998 -5.500007 +v 2.375000 4.249998 -5.500007 +v 3.125000 4.499998 -5.500007 +v 2.375000 4.499998 -5.500007 +v 2.625000 6.124996 3.500000 +v 3.375000 6.124996 3.500000 +v 2.625000 6.874996 3.500000 +v 3.375000 6.874996 3.500000 +v 2.625000 6.124996 -5.500000 +v 3.375000 6.124996 -5.500000 +v 2.625000 6.874996 -5.500000 +v 3.375000 6.874996 -5.500000 +v -3.375000 6.124996 3.500000 +v -2.625000 6.124996 3.500000 +v -3.375000 6.874996 3.500000 +v -2.625000 6.874996 3.500000 +v -3.375000 6.124996 -5.500000 +v -2.625000 6.124996 -5.500000 +v -3.375000 6.874996 -5.500000 +v -2.625000 6.874996 -5.500000 +v -0.250000 0.250000 -1.000000 +v 0.250000 0.250000 -1.000000 +v -0.250000 0.750000 -1.000000 +v 0.250000 0.750000 -1.000000 +v -0.250000 0.250000 3.500000 +v 0.250000 0.250000 3.500000 +v -0.250000 0.750000 3.500000 +v 0.250000 0.750000 3.500000 +v 0.750000 0.250000 -1.000000 +v 1.250000 0.250000 -1.000000 +v 0.750000 0.750000 -1.000000 +v 1.250000 0.750000 -1.000000 +v 0.750000 0.250000 3.500000 +v 1.250000 0.250000 3.500000 +v 0.750000 0.750000 3.500000 +v 1.250000 0.750000 3.500000 +v -1.250000 0.250000 -1.000000 +v -0.750000 0.250000 -1.000000 +v -1.250000 0.750000 -1.000000 +v -0.750000 0.750000 -1.000000 +v -1.250000 0.250000 3.500000 +v -0.750000 0.250000 3.500000 +v -1.250000 0.750000 3.500000 +v -0.750000 0.750000 3.500000 +v -2.250000 0.250000 -0.750000 +v -1.750000 0.250000 -0.750000 +v -2.250000 0.750000 -0.750000 +v -1.750000 0.750000 -0.750000 +v -2.250000 0.250000 3.250000 +v -1.750000 0.250000 3.250000 +v -2.250000 0.750000 3.250000 +v -1.750000 0.750000 3.250000 +v 1.750000 0.250000 -0.750000 +v 2.250000 0.250000 -0.750000 +v 1.750000 0.750000 -0.750000 +v 2.250000 0.750000 -0.750000 +v 1.750000 0.250000 3.250000 +v 2.250000 0.250000 3.250000 +v 1.750000 0.750000 3.250000 +v 2.250000 0.750000 3.250000 +v -0.250000 0.250000 -8.500000 +v 0.250000 0.250000 -8.500000 +v -0.250000 0.750000 -8.500000 +v 0.250000 0.750000 -8.500000 +v -0.250000 0.250000 -4.000000 +v 0.250000 0.250000 -4.000000 +v -0.250000 0.750000 -4.000000 +v 0.250000 0.750000 -4.000000 +v 0.750000 0.250000 -8.500000 +v 1.250000 0.250000 -8.500000 +v 0.750000 0.750000 -8.500000 +v 1.250000 0.750000 -8.500000 +v 0.750000 0.250000 -4.000000 +v 1.250000 0.250000 -4.000000 +v 0.750000 0.750000 -4.000000 +v 1.250000 0.750000 -4.000000 +v -1.250000 0.250000 -8.500000 +v -0.750000 0.250000 -8.500000 +v -1.250000 0.750000 -8.500000 +v -0.750000 0.750000 -8.500000 +v -1.250000 0.250000 -4.000000 +v -0.750000 0.250000 -4.000000 +v -1.250000 0.750000 -4.000000 +v -0.750000 0.750000 -4.000000 +v -2.250000 0.250000 -8.250000 +v -1.750000 0.250000 -8.250000 +v -2.250000 0.750000 -8.250000 +v -1.750000 0.750000 -8.250000 +v -2.250000 0.250000 -4.250000 +v -1.750000 0.250000 -4.250000 +v -2.250000 0.750000 -4.250000 +v -1.750000 0.750000 -4.250000 +v 1.750000 0.250000 -8.250000 +v 2.250000 0.250000 -8.250000 +v 1.750000 0.750000 -8.250000 +v 2.250000 0.750000 -8.250000 +v 1.750000 0.250000 -4.250000 +v 2.250000 0.250000 -4.250000 +v 1.750000 0.750000 -4.250000 +v 2.250000 0.750000 -4.250000 +v 3.500000 3.687500 -0.812500 +v 3.500000 3.312500 -0.812500 +v 3.500000 3.687500 -1.187500 +v 3.500000 3.312500 -1.187500 +v 3.000000 3.687500 -1.187500 +v 3.000000 3.687500 -0.812500 +v 3.000000 3.312500 -0.812500 +v 3.000000 3.312500 -1.187500 +v 2.875000 3.687500 -1.312500 +v 2.875000 3.312500 -1.312500 +v 2.875000 3.687500 -1.562500 +v 2.875000 3.312500 -1.562500 +v 2.500000 3.687500 -1.312500 +v 2.500000 3.312500 -1.312500 +v 2.500000 3.687500 -1.562500 +v 2.500000 3.312500 -1.562500 +v 3.250000 3.000000 -0.937500 +v 3.250000 4.000000 -0.937500 +v 3.250000 3.000000 -1.062500 +v 3.250000 4.000000 -1.062500 +v 3.375000 3.000000 -0.937500 +v 3.375000 4.000000 -0.937500 +v 3.375000 3.000000 -1.062500 +v 3.375000 4.000000 -1.062500 +v 3.250000 2.875000 -1.062500 +v 3.375000 2.875000 -1.062500 +v 3.250000 4.125000 -1.062500 +v 3.375000 4.125000 -1.062500 +v 3.375000 3.000000 -5.500000 +v 3.250000 3.000000 -5.500000 +v 3.250000 4.000000 -5.500000 +v 3.375000 4.000000 -5.500000 +v 3.375000 2.875000 -5.500000 +v 3.250000 2.875000 -5.500000 +v 3.250000 4.125000 -5.500000 +v 3.375000 4.125000 -5.500000 +v 2.624997 6.500003 8.000000 +v 2.624997 6.875003 8.000000 +v 2.624997 6.500003 7.500000 +v 2.624997 6.875003 7.500000 +v 2.999997 6.500003 8.000000 +v 2.999997 6.875003 8.000000 +v 2.999997 6.500003 7.500000 +v 2.999997 6.875003 7.500000 +v 2.624997 6.500003 6.500000 +v 2.624997 6.875003 6.500000 +v 2.624997 6.500003 6.000000 +v 2.624997 6.875003 6.000000 +v 2.999997 6.500003 6.500000 +v 2.999997 6.875003 6.500000 +v 2.999997 6.500003 6.000000 +v 2.999997 6.875003 6.000000 +v -2.750000 5.000000 3.500000 +v -3.250000 5.000000 3.500000 +v -3.250000 1.000000 -0.500000 +v -2.750000 1.000000 -0.500000 +v -3.250000 4.000000 3.500000 +v -2.750000 4.000000 3.500000 +v -2.750000 1.000000 0.500000 +v -3.250000 1.000000 0.500000 +v 2.750000 1.000000 0.500000 +v 3.250000 1.000000 0.500000 +v 3.250000 4.000000 3.500000 +v 2.750000 4.000000 3.500000 +v 3.250000 1.000000 -0.500000 +v 2.750000 1.000000 -0.500000 +v 2.750000 5.000000 3.500000 +v 3.250000 5.000000 3.500000 +v 2.625000 1.000000 -7.125000 +v 3.375000 1.000000 -7.125000 +v 2.625000 1.000000 -7.875000 +v 3.375000 1.000000 -7.875000 +v 2.625000 1.250000 -7.875000 +v 2.625000 1.250000 -7.125000 +v 3.375000 1.250000 -7.125000 +v 3.375000 1.250000 -7.875000 +v 3.375000 1.000000 -8.125000 +v 3.437500 1.000000 -8.125000 +v 3.375000 1.000000 -8.062500 +v 3.437500 1.000000 -8.062500 +v 3.375000 2.250000 -8.125000 +v 3.437500 2.250000 -8.125000 +v 3.375000 2.250000 -8.062500 +v 3.437500 2.250000 -8.062500 +v 3.375000 1.000000 -8.937500 +v 3.437500 1.000000 -8.937500 +v 3.375000 1.000000 -8.875000 +v 3.437500 1.000000 -8.875000 +v 3.375000 2.250000 -8.937500 +v 3.437500 2.250000 -8.937500 +v 3.375000 2.250000 -8.875000 +v 3.437500 2.250000 -8.875000 +v 2.562500 1.000000 -8.125000 +v 2.625000 1.000000 -8.125000 +v 2.562500 1.000000 -8.062500 +v 2.625000 1.000000 -8.062500 +v 2.562500 2.250000 -8.125000 +v 2.625000 2.250000 -8.125000 +v 2.562500 2.250000 -8.062500 +v 2.625000 2.250000 -8.062500 +v 2.562500 1.000000 -8.937500 +v 2.625000 1.000000 -8.937500 +v 2.562500 1.000000 -8.875000 +v 2.625000 1.000000 -8.875000 +v 2.562500 2.250000 -8.937500 +v 2.625000 2.250000 -8.937500 +v 2.562500 2.250000 -8.875000 +v 2.625000 2.250000 -8.875000 +v 3.437500 2.375000 -8.062500 +v 3.437500 2.375000 -8.937500 +v 2.562500 2.375000 -8.062500 +v 2.562500 2.375000 -8.937500 +v 3.437500 2.250000 -8.062500 +v 3.437500 2.250000 -8.937500 +v 2.562500 2.250000 -8.062500 +v 2.562500 2.250000 -8.937500 +v 3.062500 1.000000 -0.500000 +v 2.937500 1.000000 -0.500000 +v 3.062500 1.000000 -7.125000 +v 2.937500 1.000000 -7.125000 +v 3.062500 1.062500 -0.562500 +v 2.937500 1.062500 -0.562500 +v 3.062500 1.062500 -7.125000 +v 2.937500 1.062500 -7.125000 +v 3.062500 3.875000 2.375000 +v 2.937500 3.875000 2.375000 +v 3.062500 3.937500 2.312500 +v 2.937500 3.937500 2.312500 +v 2.875000 3.750000 2.500000 +v 2.875000 4.000000 2.500000 +v 2.875000 3.750000 2.250000 +v 2.875000 4.000000 2.250000 +v 3.125000 3.750000 2.500000 +v 3.125000 4.000000 2.500000 +v 3.125000 3.750000 2.250000 +v 3.125000 4.000000 2.250000 +v 2.812500 1.000000 -7.875000 +v 2.687500 1.000000 -7.875000 +v 2.812500 1.062500 -7.875000 +v 2.687500 1.062500 -7.875000 +v 2.812500 1.000000 -8.125000 +v 2.687500 1.000000 -8.125000 +v 2.812500 1.062500 -8.062500 +v 2.687500 1.062500 -8.062500 +v 2.812500 2.062500 -8.062500 +v 2.687500 2.062500 -8.062500 +v 2.812500 2.062500 -8.125000 +v 2.687500 2.062500 -8.125000 +v -3.062500 1.000000 -0.500000 +v -2.937500 1.000000 -0.500000 +v -3.062500 1.062500 -0.562500 +v -2.937500 1.062500 -0.562500 +v -3.062500 3.875000 2.375000 +v -2.937500 3.875000 2.375000 +v -3.062500 3.937500 2.312500 +v -2.937500 3.937500 2.312500 +v -2.875000 3.750000 2.500000 +v -2.875000 4.000000 2.500000 +v -2.875000 3.750000 2.250000 +v -2.875000 4.000000 2.250000 +v -3.125000 3.750000 2.500000 +v -3.125000 4.000000 2.500000 +v -3.125000 3.750000 2.250000 +v -3.125000 4.000000 2.250000 +v -3.375000 1.000000 -2.125000 +v -2.625000 1.000000 -2.125000 +v -3.375000 1.000000 -2.875000 +v -2.625000 1.000000 -2.875000 +v -3.375000 1.750000 -2.875000 +v -3.375000 1.750000 -2.125000 +v -2.625000 1.750000 -2.125000 +v -2.625000 1.750000 -2.875000 +v -3.375000 1.125000 -2.875000 +v -3.375000 1.125000 -2.125000 +v -2.625000 1.125000 -2.125000 +v -2.625000 1.125000 -2.875000 +v -3.375000 1.625000 -2.875000 +v -3.375000 1.625000 -2.125000 +v -2.625000 1.625000 -2.125000 +v -2.625000 1.625000 -2.875000 +v -3.312500 1.125000 -2.875000 +v -3.356694 1.125000 -2.856694 +v -3.375000 1.125000 -2.812500 +v -3.356694 1.125000 -2.768306 +v -3.312500 1.125000 -2.750000 +v -3.250000 1.125000 -2.812500 +v -3.268306 1.125000 -2.856694 +v -3.312500 1.625000 -2.875000 +v -3.356694 1.625000 -2.856694 +v -3.375000 1.625000 -2.812500 +v -3.356694 1.625000 -2.768306 +v -3.312500 1.625000 -2.750000 +v -3.250000 1.625000 -2.812500 +v -3.268306 1.625000 -2.856694 +v -3.312500 1.125000 -2.750000 +v -3.356694 1.125000 -2.731694 +v -3.375000 1.125000 -2.687500 +v -3.356694 1.125000 -2.643306 +v -3.312500 1.125000 -2.625000 +v -3.312500 1.625000 -2.750000 +v -3.356694 1.625000 -2.731694 +v -3.375000 1.625000 -2.687500 +v -3.356694 1.625000 -2.643306 +v -3.312500 1.625000 -2.625000 +v -3.312500 1.125000 -2.625000 +v -3.356694 1.125000 -2.606694 +v -3.375000 1.125000 -2.562500 +v -3.356694 1.125000 -2.518306 +v -3.312500 1.125000 -2.500000 +v -3.312500 1.625000 -2.625000 +v -3.356694 1.625000 -2.606694 +v -3.375000 1.625000 -2.562500 +v -3.356694 1.625000 -2.518306 +v -3.312500 1.625000 -2.500000 +v -3.312500 1.125000 -2.500000 +v -3.356694 1.125000 -2.481694 +v -3.375000 1.125000 -2.437500 +v -3.356694 1.125000 -2.393306 +v -3.312500 1.125000 -2.375000 +v -3.312500 1.625000 -2.500000 +v -3.356694 1.625000 -2.481694 +v -3.375000 1.625000 -2.437500 +v -3.356694 1.625000 -2.393306 +v -3.312500 1.625000 -2.375000 +v -3.312500 1.125000 -2.375000 +v -3.356694 1.125000 -2.356694 +v -3.375000 1.125000 -2.312500 +v -3.356694 1.125000 -2.268306 +v -3.312500 1.125000 -2.250000 +v -3.312500 1.625000 -2.375000 +v -3.356694 1.625000 -2.356694 +v -3.375000 1.625000 -2.312500 +v -3.356694 1.625000 -2.268306 +v -3.312500 1.625000 -2.250000 +v -3.312500 1.125000 -2.250000 +v -3.356694 1.125000 -2.231694 +v -3.375000 1.125000 -2.187500 +v -3.356694 1.125000 -2.143306 +v -3.312500 1.125000 -2.125000 +v -3.268306 1.125000 -2.143306 +v -3.250000 1.125000 -2.187500 +v -3.312500 1.625000 -2.250000 +v -3.356694 1.625000 -2.231694 +v -3.375000 1.625000 -2.187500 +v -3.356694 1.625000 -2.143306 +v -3.312500 1.625000 -2.125000 +v -3.268306 1.625000 -2.143306 +v -3.250000 1.625000 -2.187500 +v -2.687500 1.125000 -2.875000 +v -2.731694 1.125000 -2.856694 +v -2.750000 1.125000 -2.812500 +v -2.687500 1.125000 -2.750000 +v -2.643306 1.125000 -2.768306 +v -2.625000 1.125000 -2.812500 +v -2.643306 1.125000 -2.856694 +v -2.687500 1.625000 -2.875000 +v -2.731694 1.625000 -2.856694 +v -2.750000 1.625000 -2.812500 +v -2.687500 1.625000 -2.750000 +v -2.643306 1.625000 -2.768306 +v -2.625000 1.625000 -2.812500 +v -2.643306 1.625000 -2.856694 +v -2.687500 1.125000 -2.750000 +v -2.687500 1.125000 -2.625000 +v -2.643306 1.125000 -2.643306 +v -2.625000 1.125000 -2.687500 +v -2.643306 1.125000 -2.731694 +v -2.687500 1.625000 -2.750000 +v -2.687500 1.625000 -2.625000 +v -2.643306 1.625000 -2.643306 +v -2.625000 1.625000 -2.687500 +v -2.643306 1.625000 -2.731694 +v -2.687500 1.125000 -2.625000 +v -2.687500 1.125000 -2.500000 +v -2.643306 1.125000 -2.518306 +v -2.625000 1.125000 -2.562500 +v -2.643306 1.125000 -2.606694 +v -2.687500 1.625000 -2.625000 +v -2.687500 1.625000 -2.500000 +v -2.643306 1.625000 -2.518306 +v -2.625000 1.625000 -2.562500 +v -2.643306 1.625000 -2.606694 +v -2.687500 1.125000 -2.500000 +v -2.687500 1.125000 -2.375000 +v -2.643306 1.125000 -2.393306 +v -2.625000 1.125000 -2.437500 +v -2.643306 1.125000 -2.481694 +v -2.687500 1.625000 -2.500000 +v -2.687500 1.625000 -2.375000 +v -2.643306 1.625000 -2.393306 +v -2.625000 1.625000 -2.437500 +v -2.643306 1.625000 -2.481694 +v -2.687500 1.125000 -2.375000 +v -2.687500 1.125000 -2.250000 +v -2.643306 1.125000 -2.268306 +v -2.625000 1.125000 -2.312500 +v -2.643306 1.125000 -2.356694 +v -2.687500 1.625000 -2.375000 +v -2.687500 1.625000 -2.250000 +v -2.643306 1.625000 -2.268306 +v -2.625000 1.625000 -2.312500 +v -2.643306 1.625000 -2.356694 +v -2.687500 1.125000 -2.250000 +v -2.750000 1.125000 -2.187500 +v -2.731694 1.125000 -2.143306 +v -2.687500 1.125000 -2.125000 +v -2.643306 1.125000 -2.143306 +v -2.625000 1.125000 -2.187500 +v -2.643306 1.125000 -2.231694 +v -2.687500 1.625000 -2.250000 +v -2.750000 1.625000 -2.187500 +v -2.731694 1.625000 -2.143306 +v -2.687500 1.625000 -2.125000 +v -2.643306 1.625000 -2.143306 +v -2.625000 1.625000 -2.187500 +v -2.643306 1.625000 -2.231694 +v -2.812500 1.125000 -2.875000 +v -2.856694 1.125000 -2.856694 +v -2.875000 1.125000 -2.812500 +v -2.750000 1.125000 -2.812500 +v -2.768306 1.125000 -2.856694 +v -2.812500 1.625000 -2.875000 +v -2.856694 1.625000 -2.856694 +v -2.875000 1.625000 -2.812500 +v -2.750000 1.625000 -2.812500 +v -2.768306 1.625000 -2.856694 +v -2.875000 1.125000 -2.187500 +v -2.856694 1.125000 -2.143306 +v -2.812500 1.125000 -2.125000 +v -2.768306 1.125000 -2.143306 +v -2.750000 1.125000 -2.187500 +v -2.875000 1.625000 -2.187500 +v -2.856694 1.625000 -2.143306 +v -2.812500 1.625000 -2.125000 +v -2.768306 1.625000 -2.143306 +v -2.750000 1.625000 -2.187500 +v -2.937500 1.125000 -2.875000 +v -2.981694 1.125000 -2.856694 +v -3.000000 1.125000 -2.812500 +v -2.875000 1.125000 -2.812500 +v -2.893306 1.125000 -2.856694 +v -2.937500 1.625000 -2.875000 +v -2.981694 1.625000 -2.856694 +v -3.000000 1.625000 -2.812500 +v -2.875000 1.625000 -2.812500 +v -2.893306 1.625000 -2.856694 +v -3.000000 1.125000 -2.187500 +v -2.981694 1.125000 -2.143306 +v -2.937500 1.125000 -2.125000 +v -2.893306 1.125000 -2.143306 +v -2.875000 1.125000 -2.187500 +v -3.000000 1.625000 -2.187500 +v -2.981694 1.625000 -2.143306 +v -2.937500 1.625000 -2.125000 +v -2.893306 1.625000 -2.143306 +v -2.875000 1.625000 -2.187500 +v -3.062500 1.125000 -2.875000 +v -3.106694 1.125000 -2.856694 +v -3.125000 1.125000 -2.812500 +v -3.000000 1.125000 -2.812500 +v -3.018306 1.125000 -2.856694 +v -3.062500 1.625000 -2.875000 +v -3.106694 1.625000 -2.856694 +v -3.125000 1.625000 -2.812500 +v -3.000000 1.625000 -2.812500 +v -3.018306 1.625000 -2.856694 +v -3.125000 1.125000 -2.187500 +v -3.106694 1.125000 -2.143306 +v -3.062500 1.125000 -2.125000 +v -3.018306 1.125000 -2.143306 +v -3.000000 1.125000 -2.187500 +v -3.125000 1.625000 -2.187500 +v -3.106694 1.625000 -2.143306 +v -3.062500 1.625000 -2.125000 +v -3.018306 1.625000 -2.143306 +v -3.000000 1.625000 -2.187500 +v -3.187500 1.125000 -2.875000 +v -3.231694 1.125000 -2.856694 +v -3.250000 1.125000 -2.812500 +v -3.125000 1.125000 -2.812500 +v -3.143306 1.125000 -2.856694 +v -3.187500 1.625000 -2.875000 +v -3.231694 1.625000 -2.856694 +v -3.250000 1.625000 -2.812500 +v -3.125000 1.625000 -2.812500 +v -3.143306 1.625000 -2.856694 +v -3.250000 1.125000 -2.187500 +v -3.231694 1.125000 -2.143306 +v -3.187500 1.125000 -2.125000 +v -3.143306 1.125000 -2.143306 +v -3.125000 1.125000 -2.187500 +v -3.250000 1.625000 -2.187500 +v -3.231694 1.625000 -2.143306 +v -3.187500 1.625000 -2.125000 +v -3.143306 1.625000 -2.143306 +v -3.125000 1.625000 -2.187500 +v -3.062500 1.000000 -2.125000 +v -2.937500 1.000000 -2.125000 +v -3.062500 1.062500 -2.062500 +v -2.937500 1.062500 -2.062500 +v -3.062500 1.750000 -2.125000 +v -2.937500 1.750000 -2.125000 +v -3.062500 1.812500 -2.062500 +v -2.937500 1.812500 -2.062500 +v -3.062500 1.750000 -2.875000 +v -2.937500 1.750000 -2.875000 +v -3.062500 1.812500 -2.875000 +v -2.937500 1.812500 -2.875000 +v -3.062500 1.750000 -2.843750 +v -3.062500 1.750000 -2.781250 +v -3.062500 1.812500 -2.843750 +v -3.062500 1.812500 -2.781250 +v -3.312500 1.750000 -2.843750 +v -3.312500 1.750000 -2.781250 +v -3.312500 1.812500 -2.843750 +v -3.312500 1.812500 -2.781250 +v -3.062500 1.750000 -2.718750 +v -3.062500 1.750000 -2.656250 +v -3.062500 1.812500 -2.718750 +v -3.062500 1.812500 -2.656250 +v -3.312500 1.750000 -2.718750 +v -3.312500 1.750000 -2.656250 +v -3.312500 1.812500 -2.718750 +v -3.312500 1.812500 -2.656250 +v -3.062500 1.750000 -2.593750 +v -3.062500 1.750000 -2.531250 +v -3.062500 1.812500 -2.593750 +v -3.062500 1.812500 -2.531250 +v -3.312500 1.750000 -2.593750 +v -3.312500 1.750000 -2.531250 +v -3.312500 1.812500 -2.593750 +v -3.312500 1.812500 -2.531250 +v -3.062500 1.750000 -2.468750 +v -3.062500 1.750000 -2.406250 +v -3.062500 1.812500 -2.468750 +v -3.062500 1.812500 -2.406250 +v -3.312500 1.750000 -2.468750 +v -3.312500 1.750000 -2.406250 +v -3.312500 1.812500 -2.468750 +v -3.312500 1.812500 -2.406250 +v -3.062500 1.750000 -2.343750 +v -3.062500 1.750000 -2.281250 +v -3.062500 1.812500 -2.343750 +v -3.062500 1.812500 -2.281250 +v -3.312500 1.750000 -2.343750 +v -3.312500 1.750000 -2.281250 +v -3.312500 1.812500 -2.343750 +v -3.312500 1.812500 -2.281250 +v -3.062500 1.750000 -2.218750 +v -3.062500 1.750000 -2.156250 +v -3.062500 1.812500 -2.218750 +v -3.062500 1.812500 -2.156250 +v -3.312500 1.750000 -2.218750 +v -3.312500 1.750000 -2.156250 +v -3.312500 1.812500 -2.218750 +v -3.312500 1.812500 -2.156250 +v -2.687500 1.750000 -2.843750 +v -2.687500 1.750000 -2.781250 +v -2.687500 1.812500 -2.843750 +v -2.687500 1.812500 -2.781250 +v -2.937500 1.750000 -2.843750 +v -2.937500 1.750000 -2.781250 +v -2.937500 1.812500 -2.843750 +v -2.937500 1.812500 -2.781250 +v -2.687500 1.750000 -2.718750 +v -2.687500 1.750000 -2.656250 +v -2.687500 1.812500 -2.718750 +v -2.687500 1.812500 -2.656250 +v -2.937500 1.750000 -2.718750 +v -2.937500 1.750000 -2.656250 +v -2.937500 1.812500 -2.718750 +v -2.937500 1.812500 -2.656250 +v -2.687500 1.750000 -2.593750 +v -2.687500 1.750000 -2.531250 +v -2.687500 1.812500 -2.593750 +v -2.687500 1.812500 -2.531250 +v -2.937500 1.750000 -2.593750 +v -2.937500 1.750000 -2.531250 +v -2.937500 1.812500 -2.593750 +v -2.937500 1.812500 -2.531250 +v -2.687500 1.750000 -2.468750 +v -2.687500 1.750000 -2.406250 +v -2.687500 1.812500 -2.468750 +v -2.687500 1.812500 -2.406250 +v -2.937500 1.750000 -2.468750 +v -2.937500 1.750000 -2.406250 +v -2.937500 1.812500 -2.468750 +v -2.937500 1.812500 -2.406250 +v -2.687500 1.750000 -2.343750 +v -2.687500 1.750000 -2.281250 +v -2.687500 1.812500 -2.343750 +v -2.687500 1.812500 -2.281250 +v -2.937500 1.750000 -2.343750 +v -2.937500 1.750000 -2.281250 +v -2.937500 1.812500 -2.343750 +v -2.937500 1.812500 -2.281250 +v -2.687500 1.750000 -2.218750 +v -2.687500 1.750000 -2.156250 +v -2.687500 1.812500 -2.218750 +v -2.687500 1.812500 -2.156250 +v -2.937500 1.750000 -2.218750 +v -2.937500 1.750000 -2.156250 +v -2.937500 1.812500 -2.218750 +v -2.937500 1.812500 -2.156250 +v -2.875000 1.000000 -2.125000 +v -2.875000 1.875000 -2.125000 +v -2.750000 1.000000 -2.125000 +v -2.750000 1.875000 -2.125000 +v -2.750000 1.000000 -2.000000 +v -2.875000 1.000000 -2.000000 +v -2.875000 1.875000 -2.000000 +v -2.750000 1.875000 -2.000000 +v -2.875000 2.000000 -2.125000 +v -2.750000 2.000000 -2.125000 +v -2.875000 1.875000 -3.500000 +v -2.750000 1.875000 -3.500000 +v -2.875000 2.000000 -3.500000 +v -2.750000 2.000000 -3.500000 +v -3.250000 1.000000 -2.125000 +v -3.250000 1.875000 -2.125000 +v -3.125000 1.000000 -2.125000 +v -3.125000 1.875000 -2.125000 +v -3.125000 1.000000 -2.000000 +v -3.250000 1.000000 -2.000000 +v -3.250000 1.875000 -2.000000 +v -3.125000 1.875000 -2.000000 +v -3.250000 2.000000 -2.125000 +v -3.125000 2.000000 -2.125000 +v -3.250000 1.875000 -3.500000 +v -3.125000 1.875000 -3.500000 +v -3.250000 2.000000 -3.500000 +v -3.125000 2.000000 -3.500000 +v -2.875000 1.000000 -3.000000 +v -2.875000 1.875000 -3.000000 +v -2.750000 1.000000 -3.000000 +v -2.750000 1.875000 -3.000000 +v -2.750000 1.000000 -2.875000 +v -2.875000 1.000000 -2.875000 +v -2.875000 1.875000 -2.875000 +v -2.750000 1.875000 -2.875000 +v -3.250000 1.000000 -3.000000 +v -3.250000 1.875000 -3.000000 +v -3.125000 1.000000 -3.000000 +v -3.125000 1.875000 -3.000000 +v -3.125000 1.000000 -2.875000 +v -3.250000 1.000000 -2.875000 +v -3.250000 1.875000 -2.875000 +v -3.125000 1.875000 -2.875000 +v 3.500000 1.000000 -5.500000 +v 3.500000 1.000000 -6.500000 +v 2.500000 1.000000 -6.500000 +v 2.500000 1.000000 -5.500000 +v 3.500000 5.000000 -5.500000 +v 3.500000 5.000000 -6.500000 +v 2.500000 5.000000 -6.500000 +v 2.500000 5.000000 -5.500000 +v -2.500000 1.000000 -5.500000 +v -2.500000 1.000000 -6.500000 +v -3.500000 1.000000 -6.500000 +v -3.500000 1.000000 -5.500000 +v -2.500000 5.000000 -5.500000 +v -2.500000 5.000000 -6.500000 +v -3.500000 5.000000 -6.500000 +v -3.500000 5.000000 -5.500000 +v 1.500000 6.000000 -6.500000 +v 1.500000 6.000000 -5.500000 +v -1.500000 6.000000 -5.500000 +v -1.500000 6.000000 -6.500000 +v 1.500000 7.000000 -6.500000 +v 1.500000 7.000000 -5.500000 +v -1.500000 7.000000 -5.500000 +v -1.500000 7.000000 -6.500000 +v -2.750000 4.249998 -5.500007 +v -3.037012 4.192908 -5.500007 +v -3.280331 4.030329 -5.500007 +v -3.442909 3.787011 -5.500007 +v -3.500000 3.499998 -5.500007 +v -3.442909 3.212986 -5.500007 +v -3.280331 2.969668 -5.500007 +v -3.037012 2.807089 -5.500007 +v -2.750000 2.749998 -5.500007 +v -2.462988 2.807089 -5.500007 +v -2.219670 2.969668 -5.500007 +v -2.057091 3.212986 -5.500007 +v -2.000000 3.499998 -5.500007 +v -2.057091 3.787011 -5.500007 +v -2.219670 4.030329 -5.500007 +v -2.462988 4.192908 -5.500007 +v -2.750000 4.249998 -1.750007 +v -3.037012 4.192908 -1.750007 +v -3.280331 4.030329 -1.750007 +v -3.442909 3.787011 -1.750007 +v -3.500000 3.499998 -1.750007 +v -3.442909 3.212986 -1.750007 +v -3.280331 2.969668 -1.750007 +v -3.037012 2.807089 -1.750007 +v -2.750000 2.749998 -1.750007 +v -2.462988 2.807089 -1.750007 +v -2.219670 2.969668 -1.750007 +v -2.057091 3.212986 -1.750007 +v -2.000000 3.499998 -1.750007 +v -2.057091 3.787011 -1.750007 +v -2.219670 4.030329 -1.750007 +v -2.462988 4.192908 -1.750007 +v -3.500000 3.687500 -0.812500 +v -3.500000 3.312500 -0.812500 +v -3.500000 3.687500 -1.187500 +v -3.500000 3.312500 -1.187500 +v -3.000000 3.687500 -1.187500 +v -3.000000 3.687500 -0.812500 +v -3.000000 3.312500 -0.812500 +v -3.000000 3.312500 -1.187500 +v -2.875000 3.687500 -1.312500 +v -2.875000 3.312500 -1.312500 +v -2.875000 3.687500 -1.562500 +v -2.875000 3.312500 -1.562500 +v -2.500000 3.687500 -1.312500 +v -2.500000 3.312500 -1.312500 +v -2.500000 3.687500 -1.562500 +v -2.500000 3.312500 -1.562500 +v -3.250000 3.000000 -0.937500 +v -3.250000 4.000000 -0.937500 +v -3.250000 3.000000 -1.062500 +v -3.250000 4.000000 -1.062500 +v -3.375000 3.000000 -0.937500 +v -3.375000 4.000000 -0.937500 +v -3.375000 3.000000 -1.062500 +v -3.375000 4.000000 -1.062500 +v -3.250000 2.875000 -1.062500 +v -3.375000 2.875000 -1.062500 +v -3.250000 4.125000 -1.062500 +v -3.375000 4.125000 -1.062500 +v -3.375000 3.000000 -5.500000 +v -3.250000 3.000000 -5.500000 +v -3.250000 4.000000 -5.500000 +v -3.375000 4.000000 -5.500000 +v -3.375000 2.875000 -5.500000 +v -3.250000 2.875000 -5.500000 +v -3.250000 4.125000 -5.500000 +v -3.375000 4.125000 -5.500000 +v -2.624997 6.500003 6.000000 +v -2.624997 6.875003 6.000000 +v -2.624997 6.500003 6.500000 +v -2.624997 6.875003 6.500000 +v -2.999997 6.500003 6.000000 +v -2.999997 6.875003 6.000000 +v -2.999997 6.500003 6.500000 +v -2.999997 6.875003 6.500000 +v -2.624997 6.500003 7.500000 +v -2.624997 6.875003 7.500000 +v -2.624997 6.500003 8.000000 +v -2.624997 6.875003 8.000000 +v -2.999997 6.500003 7.500000 +v -2.999997 6.875003 7.500000 +v -2.999997 6.500003 8.000000 +v -2.999997 6.875003 8.000000 +v -2.624997 0.499993 8.000000 +v -2.624997 0.124993 8.000000 +v -2.624997 0.499993 7.500000 +v -2.624997 0.124993 7.500000 +v -2.999997 0.499993 8.000000 +v -2.999997 0.124993 8.000000 +v -2.999997 0.499993 7.500000 +v -2.999997 0.124993 7.500000 +v -2.624997 0.499993 6.500000 +v -2.624997 0.124993 6.500000 +v -2.624997 0.499993 6.000000 +v -2.624997 0.124993 6.000000 +v -2.999997 0.499993 6.500000 +v -2.999997 0.124993 6.500000 +v -2.999997 0.499993 6.000000 +v -2.999997 0.124993 6.000000 +v 2.624997 0.499993 6.000000 +v 2.624997 0.124993 6.000000 +v 2.624997 0.499993 6.500000 +v 2.624997 0.124993 6.500000 +v 2.999997 0.499993 6.000000 +v 2.999997 0.124993 6.000000 +v 2.999997 0.499993 6.500000 +v 2.999997 0.124993 6.500000 +v 2.624997 0.499993 7.500000 +v 2.624997 0.124993 7.500000 +v 2.624997 0.499993 8.000000 +v 2.624997 0.124993 8.000000 +v 2.999997 0.499993 7.500000 +v 2.999997 0.124993 7.500000 +v 2.999997 0.499993 8.000000 +v 2.999997 0.124993 8.000000 +v -3.000005 6.124996 8.000000 +v -3.375005 6.124996 8.000000 +v -3.000005 6.124996 7.500000 +v -3.375005 6.124996 7.500000 +v -3.000004 6.499996 8.000000 +v -3.375004 6.499996 8.000000 +v -3.000004 6.499996 7.500000 +v -3.375004 6.499996 7.500000 +v -3.000005 6.124996 6.500000 +v -3.375005 6.124996 6.500000 +v -3.000005 6.124996 6.000000 +v -3.375005 6.124996 6.000000 +v -3.000004 6.499996 6.500000 +v -3.375004 6.499996 6.500000 +v -3.000004 6.499996 6.000000 +v -3.375004 6.499996 6.000000 +v -3.000005 0.875001 6.000000 +v -3.375005 0.875001 6.000000 +v -3.000005 0.875001 6.500000 +v -3.375005 0.875001 6.500000 +v -3.000005 0.500001 6.000000 +v -3.375005 0.500001 6.000000 +v -3.000005 0.500001 6.500001 +v -3.375005 0.500001 6.500001 +v -3.000005 0.875001 7.500000 +v -3.375005 0.875001 7.500000 +v -3.000005 0.875001 8.000000 +v -3.375005 0.875001 8.000000 +v -3.000005 0.500001 7.500000 +v -3.375005 0.500001 7.500000 +v -3.000005 0.500001 8.000000 +v -3.375005 0.500001 8.000000 +v 3.000005 0.875000 8.000000 +v 3.375005 0.875000 8.000000 +v 3.000005 0.875000 7.500000 +v 3.375005 0.875000 7.500000 +v 3.000004 0.500000 8.000000 +v 3.375004 0.500000 8.000000 +v 3.000004 0.500000 7.500000 +v 3.375004 0.500000 7.500000 +v 3.000005 0.875000 6.500000 +v 3.375005 0.875000 6.500000 +v 3.000005 0.875000 6.000000 +v 3.375005 0.875000 6.000000 +v 3.000004 0.500000 6.500000 +v 3.375004 0.500000 6.500000 +v 3.000004 0.500000 6.000000 +v 3.375004 0.500000 6.000000 +v 3.000006 6.124994 6.000000 +v 3.375006 6.124994 6.000000 +v 3.000006 6.124994 6.500000 +v 3.375006 6.124994 6.500000 +v 3.000006 6.499994 6.000000 +v 3.375006 6.499994 6.000000 +v 3.000006 6.499994 6.500001 +v 3.375006 6.499994 6.500001 +v 3.000006 6.124994 7.500000 +v 3.375006 6.124994 7.500000 +v 3.000006 6.124994 8.000000 +v 3.375006 6.124994 8.000000 +v 3.000006 6.499994 7.500000 +v 3.375006 6.499994 7.500000 +v 3.000006 6.499994 8.000000 +v 3.375006 6.499994 8.000000 +v -1.750000 5.749998 -9.000008 +v -2.103554 5.603552 -9.000008 +v -2.250000 5.249998 -9.000008 +v -2.103554 4.896445 -9.000008 +v -1.750000 4.749998 -9.000008 +v -1.396447 4.896445 -9.000008 +v -1.250000 5.249998 -9.000008 +v -1.396447 5.603552 -9.000008 +v -2.103554 5.603552 -9.500008 +v -1.750000 5.749998 -9.500008 +v -2.250000 5.249998 -9.500008 +v -2.103554 4.896445 -9.500008 +v -1.750000 4.749998 -9.500008 +v -1.396447 4.896445 -9.500008 +v -1.250000 5.249998 -9.500008 +v -1.396447 5.603552 -9.500008 +v -1.750000 2.249998 -9.000008 +v -2.103554 2.103552 -9.000008 +v -2.250000 1.749998 -9.000008 +v -2.103554 1.396445 -9.000008 +v -1.750000 1.249998 -9.000008 +v -1.396447 1.396445 -9.000008 +v -1.250000 1.749998 -9.000008 +v -1.396447 2.103552 -9.000008 +v -2.103554 2.103552 -9.500008 +v -1.750000 2.249998 -9.500008 +v -2.250000 1.749998 -9.500008 +v -2.103554 1.396445 -9.500008 +v -1.750000 1.249998 -9.500008 +v -1.396447 1.396445 -9.500008 +v -1.250000 1.749998 -9.500008 +v -1.396447 2.103552 -9.500008 +v 1.750000 2.249998 -9.000008 +v 1.396446 2.103552 -9.000008 +v 1.250000 1.749998 -9.000008 +v 1.396446 1.396445 -9.000008 +v 1.750000 1.249998 -9.000008 +v 2.103553 1.396445 -9.000008 +v 2.250000 1.749998 -9.000008 +v 2.103553 2.103552 -9.000008 +v 1.396446 2.103552 -9.500008 +v 1.750000 2.249998 -9.500008 +v 1.250000 1.749998 -9.500008 +v 1.396446 1.396445 -9.500008 +v 1.750000 1.249998 -9.500008 +v 2.103553 1.396445 -9.500008 +v 2.250000 1.749998 -9.500008 +v 2.103553 2.103552 -9.500008 +v -2.073223 1.676775 -4.000006 +v -2.073223 1.323221 -4.000006 +v -2.250000 1.249998 -4.000006 +v -2.426777 1.323221 -4.000006 +v -2.500000 1.499998 -4.000006 +v -2.426777 1.676775 -4.000006 +v -2.000000 1.499998 -4.000006 +v -2.250000 1.749998 -4.000006 +v -1.573223 1.676775 -4.000006 +v -1.573223 1.323221 -4.000006 +v -1.750000 1.249998 -4.000006 +v -1.926777 1.323221 -4.000006 +v -2.000000 1.499998 -4.000006 +v -1.926777 1.676775 -4.000006 +v -1.500000 1.499998 -4.000006 +v -1.750000 1.749998 -4.000006 +v -2.073223 2.176775 -4.000006 +v -2.073223 1.823221 -4.000006 +v -2.250000 1.749998 -4.000006 +v -2.426777 1.823221 -4.000006 +v -2.500000 1.999998 -4.000006 +v -2.426777 2.176775 -4.000006 +v -2.000000 1.999998 -4.000006 +v -2.250000 2.249998 -4.000006 +v -1.573223 2.176775 -4.000006 +v -1.573223 1.823221 -4.000006 +v -1.750000 1.749998 -4.000006 +v -1.926777 1.823221 -4.000006 +v -2.000000 1.999998 -4.000006 +v -1.926777 2.176775 -4.000006 +v -1.500000 1.999998 -4.000006 +v -1.750000 2.249998 -4.000006 +v -2.073223 1.676775 -4.750006 +v -2.073223 1.323221 -4.750006 +v -2.250000 1.249998 -4.750006 +v -2.426777 1.323221 -4.750006 +v -2.500000 1.499998 -4.750006 +v -2.426777 1.676775 -4.750006 +v -2.000000 1.499998 -4.750006 +v -2.250000 1.749998 -4.750006 +v -1.573223 1.676775 -4.750006 +v -1.573223 1.323221 -4.750006 +v -1.750000 1.249998 -4.750006 +v -1.926777 1.323221 -4.750006 +v -2.000000 1.499998 -4.750006 +v -1.926777 1.676775 -4.750006 +v -1.500000 1.499998 -4.750006 +v -1.750000 1.749998 -4.750006 +v -2.073223 2.176775 -4.250006 +v -2.073223 1.823221 -4.250006 +v -2.250000 1.749998 -4.250006 +v -2.426777 1.823221 -4.250006 +v -2.500000 1.999998 -4.250006 +v -2.426777 2.176775 -4.250006 +v -2.000000 1.999998 -4.250006 +v -2.250000 2.249998 -4.250006 +v -1.573223 2.176775 -4.250006 +v -1.573223 1.823221 -4.250006 +v -1.750000 1.749998 -4.250006 +v -1.926777 1.823221 -4.250006 +v -2.000000 1.999998 -4.250006 +v -1.926777 2.176775 -4.250006 +v -1.500000 1.999998 -4.250006 +v -1.750000 2.249998 -4.250006 +v -2.073223 1.698221 -4.801783 +v -2.073223 1.448221 -5.051783 +v -2.250000 1.396445 -5.103559 +v -2.426777 1.448221 -5.051783 +v -2.500000 1.573221 -4.926783 +v -2.426777 1.698221 -4.801783 +v -2.000000 1.573221 -4.926783 +v -1.573223 1.698221 -4.801783 +v -1.573223 1.448221 -5.051783 +v -1.750000 1.396445 -5.103559 +v -1.926777 1.448221 -5.051783 +v -2.000000 1.573221 -4.926783 +v -1.926777 1.698221 -4.801783 +v -1.500000 1.573221 -4.926783 +v -2.073223 1.749998 -4.823230 +v -2.073223 1.749998 -5.176783 +v -2.250000 1.749998 -5.250006 +v -2.426777 1.749998 -5.176783 +v -2.500000 1.749998 -5.000006 +v -2.426777 1.749998 -4.823230 +v -2.000000 1.749998 -5.000006 +v -1.573223 1.749998 -4.823230 +v -1.573223 1.749998 -5.176783 +v -1.750000 1.749998 -5.250006 +v -1.926777 1.749998 -5.176783 +v -2.000000 1.749998 -5.000006 +v -1.926777 1.749998 -4.823230 +v -1.500000 1.749998 -5.000006 +v -2.073223 2.198221 -4.301783 +v -2.073223 1.948221 -4.551783 +v -2.250000 1.896445 -4.603559 +v -2.426777 1.948221 -4.551783 +v -2.500000 2.073221 -4.426783 +v -2.426777 2.198221 -4.301783 +v -2.000000 2.073221 -4.426783 +v -1.573223 2.198221 -4.301783 +v -1.573223 1.948221 -4.551783 +v -1.750000 1.896445 -4.603559 +v -1.926777 1.948221 -4.551783 +v -2.000000 2.073221 -4.426783 +v -1.926777 2.198221 -4.301783 +v -1.500000 2.073221 -4.426783 +v -2.073223 2.249998 -4.323230 +v -2.073223 2.249998 -4.676783 +v -2.250000 2.249998 -4.750006 +v -2.426777 2.249998 -4.676783 +v -2.500000 2.249998 -4.500006 +v -2.426777 2.249998 -4.323230 +v -2.000000 2.249998 -4.500006 +v -1.573223 2.249998 -4.323230 +v -1.573223 2.249998 -4.676783 +v -1.750000 2.249998 -4.750006 +v -1.926777 2.249998 -4.676783 +v -2.000000 2.249998 -4.500006 +v -1.926777 2.249998 -4.323230 +v -1.500000 2.249998 -4.500006 +v -2.250000 3.499998 -4.750006 +v -1.750000 3.249998 -4.750006 +v -2.250000 3.499998 -4.250006 +v -1.750000 3.249998 -4.250006 +v -2.073223 3.499998 -4.823230 +v -2.073223 3.499998 -5.176783 +v -2.250000 3.499998 -5.250006 +v -2.426777 3.499998 -5.176783 +v -2.500000 3.499998 -5.000006 +v -2.426777 3.499998 -4.823230 +v -2.000000 3.499998 -5.000006 +v -1.573223 3.249998 -4.823230 +v -1.573223 3.249998 -5.176783 +v -1.750000 3.249998 -5.250006 +v -1.926777 3.249998 -5.176783 +v -2.000000 3.249998 -5.000006 +v -1.926777 3.249998 -4.823230 +v -1.500000 3.249998 -5.000006 +v -2.073223 3.499998 -4.323230 +v -2.073223 3.499998 -4.676783 +v -2.250000 3.499998 -4.750006 +v -2.426777 3.499998 -4.676783 +v -2.500000 3.499998 -4.500006 +v -2.426777 3.499998 -4.323230 +v -2.000000 3.499998 -4.500006 +v -1.573223 3.249998 -4.323230 +v -1.573223 3.249998 -4.676783 +v -1.750000 3.249998 -4.750006 +v -1.926777 3.249998 -4.676783 +v -2.000000 3.249998 -4.500006 +v -1.926777 3.249998 -4.323230 +v -1.500000 3.249998 -4.500006 +v -1.823223 3.426775 -4.750006 +v -1.823223 3.426775 -4.250006 +v -1.698223 3.551775 -4.823230 +v -1.698223 3.551775 -5.176783 +v -1.823223 3.426775 -5.250006 +v -1.948223 3.301775 -5.176783 +v -1.948223 3.301775 -4.823230 +v -1.646446 3.603551 -5.000006 +v -1.698223 3.551775 -4.323230 +v -1.698223 3.551775 -4.676783 +v -1.823223 3.426775 -4.750006 +v -1.948223 3.301775 -4.676783 +v -1.948223 3.301775 -4.323230 +v -1.646446 3.603551 -4.500006 +v -2.000000 3.499998 -4.750006 +v -2.000000 3.499998 -4.250006 +v -2.000000 3.676775 -4.823230 +v -2.000000 3.676775 -5.176783 +v -2.000000 3.499998 -5.250006 +v -2.000000 3.323221 -5.176783 +v -2.000000 3.323221 -4.823230 +v -2.000000 3.749998 -5.000006 +v -2.000000 3.676775 -4.323230 +v -1.999999 3.676775 -4.676783 +v -2.000000 3.499998 -4.750006 +v -2.000000 3.323221 -4.676783 +v -2.000000 3.323221 -4.323230 +v -2.000000 3.749998 -4.500006 +v -2.125000 3.249998 -5.000006 +v -2.125000 3.249998 -4.500006 +v -2.125000 3.499998 -4.750006 +v -2.125000 3.499998 -4.250006 +v -2.125000 3.676775 -4.823230 +v -2.125000 3.676775 -5.176783 +v -2.125000 3.499998 -5.250006 +v -2.125000 3.323221 -5.176783 +v -2.125000 3.323221 -4.823230 +v -2.125000 3.749998 -5.000006 +v -2.125000 3.676775 -4.323230 +v -2.125000 3.676775 -4.676783 +v -2.125000 3.499998 -4.750006 +v -2.125000 3.323221 -4.676783 +v -2.125000 3.323221 -4.323230 +v -2.125000 3.749998 -4.500006 +vt 0.018933 0.739535 +vt 0.080895 0.767442 +vt 0.018933 0.767442 +vt 0.080895 0.776744 +vt 0.018933 0.776744 +vt 0.018933 0.702326 +vt 0.080895 0.730233 +vt 0.018933 0.730233 +vt 0.015491 0.730233 +vt 0.018933 0.730233 +vt 0.015491 0.739535 +vt 0.015491 0.767442 +vt 0.015491 0.776744 +vt 0.018933 0.776744 +vt -0.000000 0.739535 +vt 0.003442 0.767442 +vt -0.000000 0.767442 +vt 0.080895 0.739535 +vt 0.003442 0.739535 +vt -0.000000 0.730233 +vt 0.015491 0.702326 +vt 0.000000 0.702326 +vt 0.259897 0.532558 +vt 0.259897 0.569767 +vt 0.246127 0.532558 +vt 0.259897 0.458140 +vt 0.311532 0.495349 +vt 0.259897 0.495349 +vt 0.311532 0.569767 +vt 0.311532 0.532558 +vt 0.259897 0.272093 +vt 0.311532 0.309302 +vt 0.259897 0.309302 +vt 0.259897 0.867442 +vt 0.311532 0.830233 +vt 0.311532 0.867442 +vt 0.259897 0.346512 +vt 0.246127 0.867442 +vt 0.259897 0.830233 +vt 0.297762 0.793023 +vt 0.297762 0.606977 +vt 0.387263 0.420930 +vt 0.373494 0.458140 +vt 0.373494 0.420930 +vt 0.387263 0.644186 +vt 0.373494 0.755814 +vt 0.373494 0.644186 +vt 0.325301 0.346512 +vt 0.339071 0.383721 +vt 0.325301 0.383721 +vt 0.339071 0.755814 +vt 0.325301 0.644186 +vt 0.339071 0.644186 +vt 0.373494 0.346512 +vt 0.387263 0.383721 +vt 0.373494 0.383721 +vt 0.339071 0.420930 +vt 0.339071 0.458140 +vt 0.325301 0.420930 +vt 0.339071 0.346512 +vt 0.325301 0.346512 +vt 0.339071 0.495349 +vt 0.339071 0.309302 +vt 0.325301 0.755814 +vt 0.339071 0.793023 +vt 0.339071 0.606977 +vt 0.910499 0.353488 +vt 0.893287 0.288372 +vt 0.910499 0.288372 +vt 0.882960 0.139535 +vt 0.893287 0.139535 +vt 0.882960 0.167442 +vt 0.848537 0.139535 +vt 0.900172 0.065116 +vt 0.900172 0.139535 +vt 0.848537 0.167442 +vt 0.838210 0.139535 +vt 0.820998 0.065116 +vt 0.814114 0.000000 +vt 0.820998 0.000000 +vt 0.882960 0.213953 +vt 0.882960 0.186047 +vt 0.893287 0.213953 +vt 0.848537 0.213953 +vt 0.893287 0.269767 +vt 0.838210 0.213953 +vt 0.848537 0.186047 +vt 0.838210 0.186047 +vt 0.838210 0.167442 +vt 0.490534 0.644186 +vt 0.476764 0.755814 +vt 0.476764 0.644186 +vt 0.876076 -0.000000 +vt 0.882960 -0.000000 +vt 0.893287 0.167442 +vt 0.848537 -0.000000 +vt 0.855422 0.139535 +vt 0.490534 0.420930 +vt 0.476764 0.458140 +vt 0.476764 0.420930 +vt 0.848537 0.232558 +vt 0.882960 0.232558 +vt 0.910499 -0.000000 +vt 0.917384 0.065116 +vt 0.910499 0.065116 +vt 0.831325 0.139535 +vt 0.838210 0.065116 +vt 0.893287 0.065116 +vt 0.882960 0.353488 +vt 0.838210 0.288372 +vt 0.848537 0.353488 +vt 0.820998 0.353488 +vt 0.820998 0.288372 +vt 0.838210 0.269767 +vt 0.504303 0.569767 +vt 0.531842 0.569767 +vt 0.518072 0.569767 +vt 0.531842 0.532558 +vt 0.518072 0.532558 +vt 0.518072 0.495349 +vt 0.518072 0.272093 +vt 0.531842 0.272093 +vt 0.518072 0.309302 +vt 0.518072 0.234884 +vt 0.531842 0.234884 +vt 0.614458 0.309302 +vt 0.504303 0.830233 +vt 0.600688 0.272093 +vt 0.614458 0.272093 +vt 0.614458 0.532558 +vt 0.600688 0.532558 +vt 0.614458 0.495349 +vt 0.614458 0.569767 +vt 0.628227 0.532558 +vt 0.428571 0.346512 +vt 0.442341 0.383721 +vt 0.428571 0.383721 +vt 0.442341 0.755814 +vt 0.428571 0.644186 +vt 0.442341 0.644186 +vt 0.476764 0.346512 +vt 0.490534 0.383721 +vt 0.476764 0.383721 +vt 0.442341 0.420930 +vt 0.442341 0.458140 +vt 0.428571 0.420930 +vt 0.442341 0.346512 +vt 0.428571 0.755814 +vt 0.387263 0.755814 +vt 0.428571 0.346512 +vt 0.387263 0.458140 +vt 0.387263 0.346512 +vt 0.442341 0.606977 +vt 0.373494 0.606977 +vt 0.442341 0.495349 +vt 0.373494 0.495349 +vt 0.373494 0.309302 +vt 0.373494 0.793023 +vt 0.586919 0.830233 +vt 0.586919 0.569767 +vt 0.490534 0.755814 +vt 0.476764 0.793023 +vt 0.476764 0.606977 +vt 0.490534 0.346512 +vt 0.504303 0.272093 +vt 0.504303 0.532558 +vt 0.490534 0.458140 +vt 0.476764 0.309302 +vt 0.442341 0.309302 +vt 0.442341 0.793023 +vt 0.151463 0.888372 +vt 0.206540 0.851163 +vt 0.206540 0.888372 +vt 0.206540 0.962791 +vt 0.151463 0.925581 +vt 0.206540 0.925581 +vt 0.151463 0.813953 +vt 0.206540 0.813953 +vt 0.055077 0.851163 +vt -0.000000 0.888372 +vt 0.000000 0.851163 +vt -0.000000 0.925581 +vt 0.055077 0.962791 +vt -0.000000 0.962791 +vt 0.055077 0.925581 +vt -0.000000 0.813953 +vt 0.041308 0.962791 +vt 0.055077 1.000000 +vt 0.041308 1.000000 +vt 0.165232 1.000000 +vt 0.151463 0.962791 +vt 0.165232 0.962791 +vt 0.123924 0.851163 +vt 0.082616 0.813953 +vt 0.123924 0.813953 +vt 0.082616 0.888372 +vt 0.082616 0.851163 +vt 0.082616 0.962791 +vt 0.123924 0.925581 +vt 0.123924 0.962791 +vt 0.082616 0.925581 +vt 0.055077 0.813953 +vt 0.068847 0.813953 +vt 0.055077 0.888372 +vt 0.068847 1.000000 +vt 0.055077 1.000000 +vt 0.123924 0.888372 +vt 0.137694 0.813953 +vt 0.151463 0.813953 +vt 0.151463 1.000000 +vt 0.137694 1.000000 +vt 0.796866 0.697675 +vt 0.794860 0.710761 +vt 0.790017 0.716181 +vt 0.989723 0.055796 +vt 0.979373 0.027763 +vt 0.989622 0.000018 +vt 0.982353 0.063902 +vt 0.997007 0.063940 +vt 0.996993 0.103540 +vt 0.614458 0.790698 +vt 0.600688 0.790698 +vt 0.614458 0.753488 +vt 0.614458 0.827907 +vt 0.666093 0.865116 +vt 0.614458 0.865116 +vt 0.666093 0.827907 +vt 0.666093 0.790698 +vt 0.614458 0.679070 +vt 0.666093 0.716279 +vt 0.614458 0.716279 +vt 0.666093 0.641860 +vt 0.666093 0.679070 +vt 0.666093 0.604651 +vt 0.614458 0.641860 +vt 0.614458 0.604651 +vt 0.600688 0.679070 +vt 0.652324 0.734884 +vt 0.652324 0.716279 +vt 0.652324 0.753488 +vt 0.666093 0.734884 +vt 0.666093 0.753488 +vt 0.679862 0.734884 +vt 0.666093 0.734884 +vt 0.679862 0.790698 +vt 0.679862 0.679070 +vt 0.679862 0.753488 +vt 0.679862 0.846512 +vt 0.666093 0.846512 +vt 0.679862 0.716279 +vt 0.666093 0.623256 +vt 0.679862 0.641860 +vt 0.679862 0.827907 +vt 0.693632 0.716279 +vt 0.693632 0.734884 +vt 0.693632 0.790698 +vt 0.734940 0.827907 +vt 0.776248 0.865116 +vt 0.734940 0.865116 +vt 0.734940 0.790698 +vt 0.776248 0.827907 +vt 0.734940 0.753488 +vt 0.776248 0.790698 +vt 0.734940 0.679070 +vt 0.776248 0.716279 +vt 0.734940 0.716279 +vt 0.776248 0.641860 +vt 0.776248 0.679070 +vt 0.776248 0.604651 +vt 0.734940 0.641860 +vt 0.734940 0.604651 +vt 0.707401 0.716279 +vt 0.721170 0.734884 +vt 0.707401 0.734884 +vt 0.721170 0.790698 +vt 0.707401 0.790698 +vt 0.721170 0.753488 +vt 0.721170 0.716279 +vt 0.721170 0.679070 +vt 0.721170 0.827907 +vt 0.734940 0.734884 +vt 0.748709 0.716279 +vt 0.734940 0.623256 +vt 0.721170 0.641860 +vt 0.721170 0.623256 +vt 0.734940 0.734884 +vt 0.721170 0.734884 +vt 0.748709 0.753488 +vt 0.734940 0.846512 +vt 0.721170 0.846512 +vt 0.015491 0.702326 +vt -0.000000 0.730233 +vt 0.000000 0.702326 +vt 0.003442 0.739535 +vt 0.015491 0.767442 +vt 0.003442 0.767442 +vt 0.015491 0.730233 +vt 0.015491 0.776744 +vt 0.018933 0.730233 +vt 0.080895 0.739535 +vt 0.018933 0.739535 +vt -0.000000 0.739535 +vt -0.000000 0.767442 +vt 0.018933 0.776744 +vt 0.015491 0.739535 +vt 0.018933 0.767442 +vt 0.018933 0.730233 +vt 0.018933 0.702326 +vt 0.080895 0.730233 +vt 0.080895 0.776744 +vt 0.018933 0.776744 +vt 0.080895 0.767442 +vt 0.206540 0.923256 +vt 0.330465 0.951163 +vt 0.206540 0.951163 +vt 0.206540 0.867442 +vt 0.330465 0.895349 +vt 0.206540 0.895349 +vt 0.330465 0.923256 +vt 0.330465 0.979070 +vt 0.206540 0.979070 +vt 0.206540 0.923256 +vt 0.330465 0.951163 +vt 0.206540 0.951163 +vt 0.206540 0.867442 +vt 0.330465 0.895349 +vt 0.206540 0.895349 +vt 0.330465 0.923256 +vt 0.330465 0.979070 +vt 0.206540 0.979070 +vt 0.481928 0.055814 +vt 0.543890 0.037209 +vt 0.543890 0.055814 +vt 0.481928 0.018605 +vt 0.543890 -0.000000 +vt 0.543890 0.018605 +vt 0.481928 0.037209 +vt 0.481928 0.074419 +vt 0.543890 0.074419 +vt 0.481928 0.055814 +vt 0.543890 0.037209 +vt 0.543890 0.055814 +vt 0.481928 0.018605 +vt 0.543890 -0.000000 +vt 0.543890 0.018605 +vt 0.481928 0.037209 +vt 0.481928 0.074419 +vt 0.543890 0.074419 +vt 0.481928 0.055814 +vt 0.543890 0.037209 +vt 0.543890 0.055814 +vt 0.481928 0.018605 +vt 0.543890 -0.000000 +vt 0.543890 0.018605 +vt 0.481928 0.037209 +vt 0.481928 0.074419 +vt 0.543890 0.074419 +vt 0.481928 0.130233 +vt 0.537005 0.111628 +vt 0.537005 0.130233 +vt 0.481928 0.093023 +vt 0.537005 0.074419 +vt 0.537005 0.093023 +vt 0.481928 0.111628 +vt 0.481928 0.148837 +vt 0.537005 0.148837 +vt 0.481928 0.130233 +vt 0.537005 0.111628 +vt 0.537005 0.130233 +vt 0.481928 0.093023 +vt 0.537005 0.074419 +vt 0.537005 0.093023 +vt 0.481928 0.111628 +vt 0.481928 0.148837 +vt 0.537005 0.148837 +vt 0.481928 0.055814 +vt 0.543890 0.037209 +vt 0.543890 0.055814 +vt 0.481928 0.018605 +vt 0.543890 -0.000000 +vt 0.543890 0.018605 +vt 0.481928 0.037209 +vt 0.481928 0.074419 +vt 0.543890 0.074419 +vt 0.481928 0.055814 +vt 0.543890 0.037209 +vt 0.543890 0.055814 +vt 0.481928 0.018605 +vt 0.543890 -0.000000 +vt 0.543890 0.018605 +vt 0.481928 0.037209 +vt 0.481928 0.074419 +vt 0.543890 0.074419 +vt 0.481928 0.055814 +vt 0.543890 0.037209 +vt 0.543890 0.055814 +vt 0.481928 0.018605 +vt 0.543890 -0.000000 +vt 0.543890 0.018605 +vt 0.481928 0.037209 +vt 0.481928 0.074419 +vt 0.543890 0.074419 +vt 0.481928 0.130233 +vt 0.537005 0.111628 +vt 0.537005 0.130233 +vt 0.481928 0.093023 +vt 0.537005 0.074419 +vt 0.537005 0.093023 +vt 0.481928 0.111628 +vt 0.481928 0.148837 +vt 0.537005 0.148837 +vt 0.481928 0.130233 +vt 0.537005 0.111628 +vt 0.537005 0.130233 +vt 0.481928 0.093023 +vt 0.537005 0.074419 +vt 0.537005 0.093023 +vt 0.481928 0.111628 +vt 0.481928 0.148837 +vt 0.537005 0.148837 +vt 0.808950 0.683721 +vt 0.814114 0.669767 +vt 0.814114 0.683721 +vt 0.822719 0.711628 +vt 0.817556 0.718605 +vt 0.817556 0.711628 +vt 0.803787 0.702326 +vt 0.803787 0.683721 +vt 0.819277 0.683721 +vt 0.814114 0.702326 +vt 0.824441 0.683721 +vt 0.819277 0.702326 +vt 0.808950 0.702326 +vt 0.824441 0.727907 +vt 0.819277 0.737209 +vt 0.819277 0.727907 +vt 0.803787 0.727907 +vt 0.808950 0.737209 +vt 0.803787 0.737209 +vt 0.814114 0.727907 +vt 0.814114 0.737209 +vt 0.808950 0.727907 +vt 0.805508 0.711628 +vt 0.715146 0.879070 +vt 0.701377 0.883721 +vt 0.701377 0.879070 +vt 0.715146 0.865116 +vt 0.701377 0.869767 +vt 0.701377 0.865116 +vt 0.715146 0.869767 +vt 0.701377 0.874419 +vt 0.715146 0.874419 +vt 0.716867 0.865116 +vt 0.777969 0.869767 +vt 0.716867 0.869767 +vt 0.777969 0.874419 +vt 0.716867 0.874419 +vt 0.716867 0.883721 +vt 0.715146 0.883721 +vt 0.716867 0.879070 +vt 0.715146 0.869767 +vt 0.699656 0.883721 +vt 0.699656 0.879070 +vt 0.701377 0.883721 +vt 0.699656 0.869767 +vt 0.701377 0.869767 +vt 0.699656 0.874419 +vt 0.638554 0.869767 +vt 0.638554 0.874419 +vt 0.777969 0.883721 +vt 0.777969 0.879070 +vt 0.638554 0.865116 +vt 0.699656 0.865116 +vt 0.638554 0.879070 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.621343 0.044186 +vt 0.543890 0.062791 +vt 0.543890 0.044186 +vt 0.553356 0.088372 +vt 0.621343 0.062791 +vt 0.611876 0.088372 +vt 0.611876 0.018605 +vt 0.543890 0.044186 +vt 0.553356 0.018605 +vt 0.553356 -0.000000 +vt 0.553356 0.088372 +vt 0.621343 0.062791 +vt 0.611876 0.088372 +vt 0.553356 -0.000000 +vt 0.611876 0.018605 +vt 0.553356 0.018605 +vt 0.621343 0.044186 +vt 0.543890 0.062791 +vt 0.722892 0.930233 +vt 0.733219 0.958140 +vt 0.722892 0.958140 +vt 0.736661 0.958140 +vt 0.733219 0.930233 +vt 0.736661 0.930233 +vt 0.719449 0.930233 +vt 0.719449 0.958140 +vt 0.733219 0.920930 +vt 0.722892 0.920930 +vt 0.722892 0.967442 +vt 0.733219 0.967442 +vt 0.740103 0.911628 +vt 0.739243 0.958140 +vt 0.739243 0.911628 +vt 0.740964 0.958140 +vt 0.740964 0.911628 +vt 0.741824 0.911628 +vt 0.742685 0.911628 +vt 0.741824 0.958140 +vt 0.742685 0.911628 +vt 0.741824 0.958140 +vt 0.741824 0.911628 +vt 0.740103 0.958140 +vt 0.739243 0.911628 +vt 0.740103 0.911628 +vt 0.740964 0.911628 +vt 0.740964 0.958140 +vt 0.740964 0.911628 +vt 0.740103 0.958140 +vt 0.740103 0.911628 +vt 0.741824 0.958140 +vt 0.741824 0.911628 +vt 0.742685 0.911628 +vt 0.739243 0.958140 +vt 0.739243 0.911628 +vt 0.741824 0.911628 +vt 0.740964 0.958140 +vt 0.740964 0.911628 +vt 0.742685 0.958140 +vt 0.742685 0.911628 +vt 0.740103 0.911628 +vt 0.739243 0.958140 +vt 0.739243 0.911628 +vt 0.740103 0.958140 +vt 0.808950 0.906977 +vt 0.796902 0.874419 +vt 0.808950 0.874419 +vt 0.796902 0.869767 +vt 0.808950 0.837209 +vt 0.808950 0.869767 +vt 0.796902 0.911628 +vt 0.796902 0.906977 +vt 0.810671 0.906977 +vt 0.795181 0.874419 +vt 0.693632 0.909302 +vt 0.638554 0.904651 +vt 0.693632 0.904651 +vt 0.694492 0.904651 +vt 0.784854 0.909302 +vt 0.694492 0.909302 +vt 0.784854 0.902326 +vt 0.693632 0.902326 +vt 0.784854 0.911628 +vt 0.638554 0.902326 +vt 0.693632 0.911628 +vt 0.638554 0.909302 +vt 0.645439 0.953488 +vt 0.648881 0.944186 +vt 0.648881 0.953488 +vt 0.645439 0.944186 +vt 0.641997 0.934884 +vt 0.645439 0.934884 +vt 0.641997 0.944186 +vt 0.638554 0.953488 +vt 0.638554 0.944186 +vt 0.641997 0.953488 +vt 0.661790 0.932558 +vt 0.659208 0.934884 +vt 0.659208 0.932558 +vt 0.659208 0.925581 +vt 0.661790 0.927907 +vt 0.659208 0.927907 +vt 0.663511 0.927907 +vt 0.677281 0.932558 +vt 0.663511 0.932558 +vt 0.677281 0.927907 +vt 0.678141 0.932558 +vt 0.677281 0.934884 +vt 0.662651 0.934884 +vt 0.677281 0.925581 +vt 0.662651 0.925581 +vt 0.638554 0.918605 +vt 0.693632 0.913953 +vt 0.693632 0.918605 +vt 0.638554 0.920930 +vt 0.693632 0.920930 +vt 0.638554 0.913953 +vt 0.693632 0.911628 +vt 0.648881 0.944186 +vt 0.652324 0.953488 +vt 0.648881 0.953488 +vt 0.655766 0.934884 +vt 0.652324 0.944186 +vt 0.652324 0.934884 +vt 0.659208 0.953488 +vt 0.655766 0.944186 +vt 0.659208 0.944186 +vt 0.655766 0.953488 +vt 0.919105 0.423256 +vt 0.908778 0.451163 +vt 0.908778 0.423256 +vt 0.908778 0.455814 +vt 0.919105 0.451163 +vt 0.919105 0.455814 +vt 0.907057 0.423256 +vt 0.908778 0.451163 +vt 0.907057 0.451163 +vt 0.920826 0.451163 +vt 0.919105 0.423256 +vt 0.920826 0.423256 +vt 0.908778 0.423256 +vt 0.919105 0.418605 +vt 0.908778 0.418605 +vt 0.908778 0.390698 +vt 0.919105 0.418605 +vt 0.908778 0.418605 +vt 0.920826 0.451163 +vt 0.919105 0.451163 +vt 0.907057 0.423256 +vt 0.908778 0.455814 +vt 0.715146 0.913953 +vt 0.694492 0.913953 +vt 0.694492 0.918605 +vt 0.716007 0.920930 +vt 0.715146 0.918605 +vt 0.716867 0.913953 +vt 0.726334 0.911628 +vt 0.727194 0.913953 +vt 0.716867 0.918605 +vt 0.726334 0.920930 +vt 0.727194 0.918605 +vt 0.728055 0.911628 +vt 0.738382 0.913953 +vt 0.728055 0.920930 +vt 0.738382 0.918605 +vt 0.738382 0.920930 +vt 0.739243 0.913953 +vt 0.941480 0.372093 +vt 0.940620 0.374419 +vt 0.940620 0.372093 +vt 0.944062 0.372093 +vt 0.943201 0.374419 +vt 0.943201 0.372093 +vt 0.944062 0.383721 +vt 0.944923 0.374419 +vt 0.944923 0.383721 +vt 0.925990 0.381395 +vt 0.907057 0.376744 +vt 0.925990 0.376744 +vt 0.942341 0.383721 +vt 0.943201 0.383721 +vt 0.944062 0.374419 +vt 0.941480 0.383721 +vt 0.942341 0.374419 +vt 0.942341 0.383721 +vt 0.925990 0.390698 +vt 0.907057 0.386046 +vt 0.925990 0.386046 +vt 0.939759 0.383721 +vt 0.940620 0.383721 +vt 0.941480 0.374419 +vt 0.941480 0.372093 +vt 0.940620 0.374419 +vt 0.940620 0.372093 +vt 0.944062 0.372093 +vt 0.943201 0.374419 +vt 0.943201 0.372093 +vt 0.944062 0.383721 +vt 0.944923 0.374419 +vt 0.944923 0.383721 +vt 0.925990 0.381395 +vt 0.907057 0.376744 +vt 0.925990 0.376744 +vt 0.942341 0.383721 +vt 0.943201 0.383721 +vt 0.944062 0.374419 +vt 0.941480 0.383721 +vt 0.942341 0.374419 +vt 0.942341 0.383721 +vt 0.927711 0.376744 +vt 0.927711 0.381395 +vt 0.925990 0.376744 +vt 0.939759 0.383721 +vt 0.940620 0.383721 +vt 0.941480 0.374419 +vt 0.941480 0.372093 +vt 0.940620 0.374419 +vt 0.940620 0.372093 +vt 0.944062 0.372093 +vt 0.943201 0.374419 +vt 0.943201 0.372093 +vt 0.944062 0.383721 +vt 0.944923 0.374419 +vt 0.944923 0.383721 +vt 0.927711 0.386046 +vt 0.942341 0.383721 +vt 0.943201 0.383721 +vt 0.944062 0.374419 +vt 0.941480 0.383721 +vt 0.942341 0.374419 +vt 0.942341 0.383721 +vt 0.927711 0.390698 +vt 0.925990 0.390698 +vt 0.939759 0.383721 +vt 0.940620 0.383721 +vt 0.941480 0.374419 +vt 0.940620 0.374419 +vt 0.939759 0.383721 +vt 0.939759 0.374419 +vt 0.939759 0.376744 +vt 0.927711 0.381395 +vt 0.927711 0.376744 +vt 0.942341 0.374419 +vt 0.941480 0.383721 +vt 0.941480 0.374419 +vt 0.940620 0.383721 +vt 0.943201 0.374419 +vt 0.942341 0.383721 +vt 0.942341 0.374419 +vt 0.939759 0.386046 +vt 0.939759 0.390698 +vt 0.944923 0.374419 +vt 0.944062 0.383721 +vt 0.944062 0.374419 +vt 0.943201 0.383721 +vt 0.940620 0.374419 +vt 0.939759 0.383721 +vt 0.939759 0.374419 +vt 0.907057 0.372093 +vt 0.925990 0.372093 +vt 0.942341 0.374419 +vt 0.941480 0.383721 +vt 0.941480 0.374419 +vt 0.940620 0.383721 +vt 0.943201 0.374419 +vt 0.942341 0.383721 +vt 0.942341 0.374419 +vt 0.939759 0.376744 +vt 0.944923 0.374419 +vt 0.944062 0.383721 +vt 0.944062 0.374419 +vt 0.943201 0.383721 +vt 0.940620 0.374419 +vt 0.939759 0.383721 +vt 0.939759 0.374419 +vt 0.939759 0.381395 +vt 0.942341 0.374419 +vt 0.941480 0.383721 +vt 0.941480 0.374419 +vt 0.940620 0.383721 +vt 0.943201 0.374419 +vt 0.942341 0.383721 +vt 0.942341 0.374419 +vt 0.939759 0.372093 +vt 0.944923 0.374419 +vt 0.944062 0.383721 +vt 0.944062 0.374419 +vt 0.943201 0.383721 +vt 0.944062 0.372093 +vt 0.943201 0.372093 +vt 0.941480 0.372093 +vt 0.940620 0.372093 +vt 0.944062 0.372093 +vt 0.943201 0.372093 +vt 0.941480 0.372093 +vt 0.940620 0.372093 +vt 0.944062 0.372093 +vt 0.943201 0.372093 +vt 0.941480 0.372093 +vt 0.940620 0.372093 +vt 0.907057 0.381395 +vt 0.925990 0.390698 +vt 0.907057 0.386046 +vt 0.925990 0.386046 +vt 0.927711 0.376744 +vt 0.927711 0.381395 +vt 0.925990 0.376744 +vt 0.927711 0.386046 +vt 0.927711 0.390698 +vt 0.925990 0.390698 +vt 0.927711 0.390698 +vt 0.939759 0.386046 +vt 0.939759 0.390698 +vt 0.939759 0.386046 +vt 0.939759 0.390698 +vt 0.907057 0.372093 +vt 0.925990 0.372093 +vt 0.939759 0.376744 +vt 0.939759 0.381395 +vt 0.939759 0.372093 +vt 0.907057 0.381395 +vt 0.939759 0.381395 +vt 0.939759 0.372093 +vt 0.927711 0.390698 +vt 0.939759 0.386046 +vt 0.939759 0.390698 +vt 0.939759 0.376744 +vt 0.927711 0.381395 +vt 0.927711 0.376744 +vt 0.939759 0.381395 +vt 0.939759 0.372093 +vt 0.707401 0.679070 +vt 0.707401 0.753488 +vt 0.693632 0.734884 +vt 0.693632 0.753488 +vt 0.693632 0.679070 +vt 0.151463 0.888372 +vt 0.206540 0.851163 +vt 0.206540 0.888372 +vt 0.206540 0.962791 +vt 0.151463 0.925581 +vt 0.206540 0.925581 +vt 0.151463 0.813953 +vt 0.206540 0.813953 +vt 0.055077 0.851163 +vt -0.000000 0.888372 +vt 0.000000 0.851163 +vt -0.000000 0.925581 +vt 0.055077 0.962791 +vt -0.000000 0.962791 +vt 0.055077 0.925581 +vt -0.000000 0.813953 +vt 0.041308 0.962791 +vt 0.055077 1.000000 +vt 0.041308 1.000000 +vt 0.165232 1.000000 +vt 0.151463 0.962791 +vt 0.165232 0.962791 +vt 0.123924 0.851163 +vt 0.082616 0.813953 +vt 0.123924 0.813953 +vt 0.082616 0.888372 +vt 0.082616 0.851163 +vt 0.082616 0.962791 +vt 0.123924 0.925581 +vt 0.123924 0.962791 +vt 0.082616 0.925581 +vt 0.055077 0.813953 +vt 0.068847 0.813953 +vt 0.055077 0.888372 +vt 0.068847 1.000000 +vt 0.055077 1.000000 +vt 0.123924 0.888372 +vt 0.137694 0.813953 +vt 0.151463 0.813953 +vt 0.151463 1.000000 +vt 0.137694 1.000000 +vt 0.989723 0.241843 +vt 0.979373 0.213809 +vt 0.989622 0.186064 +vt 0.982353 0.249948 +vt 0.997007 0.249986 +vt 0.996993 0.289586 +vt 0.834768 0.669767 +vt 0.829604 0.683721 +vt 0.834768 0.683721 +vt 0.838210 0.718605 +vt 0.843374 0.711628 +vt 0.838210 0.711628 +vt 0.824441 0.702326 +vt 0.824441 0.683721 +vt 0.834768 0.702326 +vt 0.839931 0.683721 +vt 0.839931 0.702326 +vt 0.845095 0.683721 +vt 0.829604 0.702326 +vt 0.839931 0.737209 +vt 0.845095 0.727907 +vt 0.839931 0.727907 +vt 0.829604 0.737209 +vt 0.824441 0.727907 +vt 0.824441 0.737209 +vt 0.834768 0.727907 +vt 0.834768 0.737209 +vt 0.829604 0.727907 +vt 0.826162 0.711628 +vt 0.701377 0.902326 +vt 0.715146 0.897674 +vt 0.701377 0.897674 +vt 0.701377 0.888372 +vt 0.715146 0.883721 +vt 0.701377 0.883721 +vt 0.701377 0.893023 +vt 0.715146 0.888372 +vt 0.715146 0.893023 +vt 0.777969 0.888372 +vt 0.716867 0.883721 +vt 0.716867 0.888372 +vt 0.777969 0.893023 +vt 0.716867 0.893023 +vt 0.716867 0.902326 +vt 0.716867 0.897674 +vt 0.715146 0.902326 +vt 0.715146 0.888372 +vt 0.699656 0.902326 +vt 0.701377 0.902326 +vt 0.699656 0.897674 +vt 0.699656 0.888372 +vt 0.699656 0.893023 +vt 0.701377 0.888372 +vt 0.638554 0.888372 +vt 0.638554 0.893023 +vt 0.777969 0.902326 +vt 0.777969 0.897674 +vt 0.638554 0.883721 +vt 0.699656 0.883721 +vt 0.638554 0.897674 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.820998 0.646512 +vt 0.815835 0.660465 +vt 0.815835 0.646512 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.820998 0.646512 +vt 0.815835 0.660465 +vt 0.815835 0.646512 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.815835 0.646512 +vt 0.820998 0.660465 +vt 0.815835 0.660465 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.820998 0.646512 +vt 0.815835 0.660465 +vt 0.815835 0.646512 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.820998 0.646512 +vt 0.815835 0.660465 +vt 0.815835 0.646512 +vt 0.808950 0.632558 +vt 0.808950 0.646512 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.808950 0.660465 +vt 0.796866 0.697675 +vt 0.794860 0.710761 +vt 0.790017 0.716181 +vt 0.796866 0.697675 +vt 0.794860 0.710761 +vt 0.790017 0.716181 +vt 0.796866 0.697675 +vt 0.794860 0.710761 +vt 0.790017 0.716181 +vt 0.677281 0.920930 +vt 0.080895 0.702326 +vt -0.000000 0.776744 +vt 0.311532 0.458140 +vt 0.311532 0.272093 +vt 0.311532 0.346512 +vt 0.387263 0.458140 +vt 0.387263 0.346512 +vt 0.325301 0.458140 +vt 0.325301 0.458140 +vt 0.814114 0.065116 +vt 0.910499 0.269767 +vt 0.876076 0.139535 +vt 0.893287 0.186047 +vt 0.855422 -0.000000 +vt 0.490534 0.458140 +vt 0.917384 -0.000000 +vt 0.831325 0.065116 +vt 0.820998 0.269767 +vt 0.504303 0.867442 +vt 0.614458 0.234884 +vt 0.628227 0.272093 +vt 0.490534 0.346512 +vt 0.428571 0.458140 +vt 0.428571 0.458140 +vt 0.476764 0.495349 +vt 0.151463 0.851163 +vt 0.151463 0.962791 +vt 0.055077 0.813953 +vt 0.055077 0.962791 +vt 0.151463 1.000000 +vt 0.785175 0.710761 +vt 0.783169 0.697674 +vt 0.785175 0.684588 +vt 0.790017 0.679168 +vt 0.794860 0.684588 +vt 0.985777 0.053673 +vt 0.982453 0.047508 +vt 0.980207 0.038423 +vt 0.980159 0.017099 +vt 0.982440 0.008115 +vt 0.985802 0.002047 +vt 0.993568 0.002141 +vt 0.997017 0.008081 +vt 0.999263 0.017166 +vt 0.999973 0.028051 +vt 0.999187 0.038715 +vt 0.997030 0.047474 +vt 0.993668 0.053542 +vt 0.993647 0.109581 +vt 0.989684 0.111576 +vt 0.985718 0.109444 +vt 0.982339 0.103502 +vt 0.980103 0.094461 +vt 0.979365 0.083750 +vt 0.980154 0.073034 +vt 0.985698 0.057861 +vt 0.989662 0.055866 +vt 0.993627 0.057998 +vt 0.999242 0.072980 +vt 0.999981 0.083692 +vt 0.999192 0.094407 +vt 0.652324 0.734884 +vt 0.679862 0.734884 +vt 0.679862 0.623256 +vt 0.776248 0.753488 +vt 0.748709 0.734884 +vt 0.748709 0.734884 +vt -0.000000 0.776744 +vt 0.080895 0.702326 +vt 0.330465 0.867442 +vt 0.330465 0.867442 +vt 0.481928 0.000000 +vt 0.481928 0.000000 +vt 0.481928 0.000000 +vt 0.481928 0.074419 +vt 0.481928 0.074419 +vt 0.481928 0.000000 +vt 0.481928 0.000000 +vt 0.481928 0.000000 +vt 0.481928 0.074419 +vt 0.481928 0.074419 +vt 0.808950 0.669767 +vt 0.822719 0.718605 +vt 0.824441 0.702326 +vt 0.824441 0.737209 +vt 0.805508 0.718605 +vt 0.715146 0.883721 +vt 0.777969 0.865116 +vt 0.638554 0.883721 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.611876 -0.000000 +vt 0.611876 -0.000000 +vt 0.740103 0.958140 +vt 0.742685 0.958140 +vt 0.742685 0.958140 +vt 0.739243 0.958140 +vt 0.740964 0.958140 +vt 0.742685 0.958140 +vt 0.741824 0.958140 +vt 0.796902 0.837209 +vt 0.808950 0.911628 +vt 0.810671 0.874419 +vt 0.795181 0.906977 +vt 0.784854 0.904651 +vt 0.638554 0.911628 +vt 0.678141 0.927907 +vt 0.638554 0.911628 +vt 0.919105 0.390698 +vt 0.920826 0.423256 +vt 0.907057 0.451163 +vt 0.919105 0.455814 +vt 0.716007 0.911628 +vt 0.738382 0.911628 +vt 0.739243 0.918605 +vt 0.942341 0.374419 +vt 0.907057 0.390698 +vt 0.939759 0.374419 +vt 0.942341 0.374419 +vt 0.939759 0.374419 +vt 0.942341 0.374419 +vt 0.939759 0.374419 +vt 0.942341 0.383721 +vt 0.944923 0.383721 +vt 0.942341 0.383721 +vt 0.944923 0.383721 +vt 0.942341 0.383721 +vt 0.927711 0.372093 +vt 0.944923 0.383721 +vt 0.907057 0.390698 +vt 0.927711 0.386046 +vt 0.927711 0.372093 +vt 0.927711 0.372093 +vt 0.927711 0.386046 +vt 0.927711 0.372093 +vt 0.707401 0.734884 +vt 0.151463 0.851163 +vt 0.151463 0.962791 +vt 0.055077 0.813953 +vt 0.055077 0.962791 +vt 0.151463 1.000000 +vt 0.985777 0.239719 +vt 0.982453 0.233555 +vt 0.980207 0.224469 +vt 0.980159 0.203146 +vt 0.982440 0.194162 +vt 0.985802 0.188094 +vt 0.993568 0.188188 +vt 0.997017 0.194128 +vt 0.999263 0.203213 +vt 0.999973 0.214098 +vt 0.999187 0.224761 +vt 0.997030 0.233520 +vt 0.993668 0.239589 +vt 0.993647 0.295627 +vt 0.989684 0.297622 +vt 0.985718 0.295491 +vt 0.982339 0.289549 +vt 0.980103 0.280508 +vt 0.979365 0.269797 +vt 0.980154 0.259081 +vt 0.985698 0.243908 +vt 0.989662 0.241913 +vt 0.993627 0.244044 +vt 0.999242 0.259027 +vt 0.999981 0.269738 +vt 0.999192 0.280454 +vt 0.829604 0.669767 +vt 0.843374 0.718605 +vt 0.845095 0.702326 +vt 0.845095 0.737209 +vt 0.826162 0.718605 +vt 0.715146 0.902326 +vt 0.777969 0.883721 +vt 0.638554 0.902326 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.646512 +vt 0.815835 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.632558 +vt 0.820998 0.660465 +vt 0.815835 0.632558 +vt 0.785175 0.710761 +vt 0.783169 0.697674 +vt 0.785175 0.684588 +vt 0.790017 0.679168 +vt 0.794860 0.684588 +vt 0.785175 0.710761 +vt 0.783169 0.697674 +vt 0.785175 0.684588 +vt 0.790017 0.679168 +vt 0.794860 0.684588 +vt 0.785175 0.710761 +vt 0.783169 0.697674 +vt 0.785175 0.684588 +vt 0.790017 0.679168 +vt 0.794860 0.684588 +vt 0.662651 0.920930 +vt 0.803787 0.646512 +vt 0.796902 0.660465 +vt 0.796902 0.646512 +vt 0.803787 0.618605 +vt 0.796902 0.632558 +vt 0.796902 0.618605 +vt 0.803787 0.702326 +vt 0.796902 0.716279 +vt 0.796902 0.702326 +vt 0.803787 0.674419 +vt 0.796902 0.688372 +vt 0.796902 0.674419 +vt 0.803787 0.632558 +vt 0.803787 0.604651 +vt 0.796902 0.604651 +vt 0.803787 0.688372 +vt 0.803787 0.660465 +vt 0.979346 0.069767 +vt 0.917384 0.058140 +vt 0.979346 0.058140 +vt 0.979346 0.174419 +vt 0.917384 0.162791 +vt 0.979346 0.162791 +vt 0.979346 0.081395 +vt 0.917384 0.069767 +vt 0.979346 0.186047 +vt 0.917384 0.174419 +vt 0.979346 0.104651 +vt 0.917384 0.093023 +vt 0.979346 0.093023 +vt 0.917384 0.081395 +vt 0.979346 0.011628 +vt 0.917384 -0.000000 +vt 0.979346 0.000000 +vt 0.979346 0.116279 +vt 0.917384 0.104651 +vt 0.979346 0.023256 +vt 0.917384 0.011628 +vt 0.979346 0.127907 +vt 0.917384 0.116279 +vt 0.979346 0.034884 +vt 0.917384 0.023256 +vt 0.979346 0.139535 +vt 0.917384 0.127907 +vt 0.979346 0.046512 +vt 0.917384 0.034884 +vt 0.979346 0.151163 +vt 0.917384 0.139535 +vt 0.917384 0.046512 +vt 0.917384 0.151163 +vt 0.585198 0.906977 +vt 0.595525 0.913953 +vt 0.585198 0.913953 +vt 0.554217 0.941860 +vt 0.557659 0.948837 +vt 0.554217 0.948837 +vt 0.593804 0.927907 +vt 0.604131 0.934884 +vt 0.593804 0.934884 +vt 0.557659 0.955814 +vt 0.554217 0.955814 +vt 0.585198 0.865116 +vt 0.595525 0.872093 +vt 0.585198 0.872093 +vt 0.593804 0.941860 +vt 0.557659 0.962791 +vt 0.554217 0.962791 +vt 0.585198 0.920930 +vt 0.604131 0.948837 +vt 0.593804 0.948837 +vt 0.557659 0.969767 +vt 0.554217 0.969767 +vt 0.554217 0.872093 +vt 0.557659 0.879070 +vt 0.554217 0.879070 +vt 0.604131 0.955814 +vt 0.593804 0.955814 +vt 0.554217 0.920930 +vt 0.557659 0.927907 +vt 0.554217 0.927907 +vt 0.554217 0.886047 +vt 0.604131 0.962791 +vt 0.593804 0.962791 +vt 0.554217 0.976744 +vt 0.557659 0.893023 +vt 0.554217 0.893023 +vt 0.604131 0.969767 +vt 0.593804 0.969767 +vt 0.557659 0.900000 +vt 0.554217 0.900000 +vt 0.593804 0.920930 +vt 0.604131 0.927907 +vt 0.557659 0.906977 +vt 0.554217 0.906977 +vt 0.593804 0.976744 +vt 0.557659 0.913953 +vt 0.554217 0.913953 +vt 0.595525 0.879070 +vt 0.585198 0.879070 +vt 0.554217 0.865116 +vt 0.557659 0.872093 +vt 0.585198 0.886047 +vt 0.554217 0.920930 +vt 0.595525 0.893023 +vt 0.585198 0.893023 +vt 0.557659 0.934884 +vt 0.554217 0.934884 +vt 0.595525 0.900000 +vt 0.585198 0.900000 +vt 0.595525 0.906977 +vt 0.596386 0.900000 +vt 0.600688 0.906977 +vt 0.598107 0.906977 +vt 0.604991 0.941860 +vt 0.609294 0.948837 +vt 0.598107 0.879070 +vt 0.600688 0.886047 +vt 0.596386 0.886047 +vt 0.599828 0.913953 +vt 0.600688 0.913953 +vt 0.604991 0.955814 +vt 0.609294 0.955814 +vt 0.600688 0.893023 +vt 0.608434 0.927907 +vt 0.609294 0.934884 +vt 0.606713 0.934884 +vt 0.609294 0.962791 +vt 0.606713 0.962791 +vt 0.600688 0.900000 +vt 0.609294 0.941860 +vt 0.599828 0.872093 +vt 0.600688 0.879070 +vt 0.609294 0.969767 +vt 0.608434 0.969767 +vt 0.600688 0.872093 +vt 0.603270 0.879070 +vt 0.613597 0.955814 +vt 0.604991 0.900000 +vt 0.603270 0.906977 +vt 0.609294 0.927907 +vt 0.611876 0.934884 +vt 0.604991 0.886047 +vt 0.611876 0.962791 +vt 0.601549 0.913953 +vt 0.613597 0.941860 +vt 0.605852 0.893023 +vt 0.610155 0.969767 +vt 0.614458 0.948837 +vt 0.561962 0.969767 +vt 0.562823 0.962791 +vt 0.562823 0.969767 +vt 0.558520 0.900000 +vt 0.562823 0.893023 +vt 0.562823 0.900000 +vt 0.558520 0.941860 +vt 0.562823 0.948837 +vt 0.560241 0.879070 +vt 0.562823 0.872093 +vt 0.562823 0.879070 +vt 0.560241 0.906977 +vt 0.562823 0.906977 +vt 0.562823 0.955814 +vt 0.558520 0.955814 +vt 0.562823 0.886047 +vt 0.558520 0.886047 +vt 0.560241 0.934884 +vt 0.562823 0.927907 +vt 0.562823 0.934884 +vt 0.562823 0.913953 +vt 0.561962 0.913953 +vt 0.560241 0.962791 +vt 0.562823 0.941860 +vt 0.565404 0.906977 +vt 0.563683 0.913953 +vt 0.567126 0.886047 +vt 0.567986 0.893023 +vt 0.567126 0.955814 +vt 0.565404 0.934884 +vt 0.567126 0.900000 +vt 0.565404 0.962791 +vt 0.565404 0.879070 +vt 0.567126 0.941860 +vt 0.563683 0.969767 +vt 0.567986 0.948837 +vt 0.561962 0.927907 +vt 0.562823 0.920930 +vt 0.563683 0.927907 +vt 0.562823 0.976744 +vt 0.561962 0.872093 +vt 0.562823 0.865116 +vt 0.563683 0.872093 +vt 0.562823 0.920930 +vt 0.600688 0.865116 +vt 0.601549 0.872093 +vt 0.600688 0.920930 +vt 0.609294 0.920930 +vt 0.610155 0.927907 +vt 0.609294 0.976744 +vt 0.606152 0.908009 +vt 0.626506 0.913953 +vt 0.606191 0.915169 +vt 0.567986 0.872093 +vt 0.585198 0.879070 +vt 0.567986 0.879070 +vt 0.567986 0.927907 +vt 0.581756 0.920930 +vt 0.581756 0.927907 +vt 0.614458 0.969767 +vt 0.638554 0.976744 +vt 0.614458 0.976744 +vt 0.585198 0.886047 +vt 0.567986 0.886047 +vt 0.614458 0.927907 +vt 0.638554 0.934884 +vt 0.614458 0.934884 +vt 0.585198 0.893023 +vt 0.567986 0.969767 +vt 0.581756 0.976744 +vt 0.567986 0.976744 +vt 0.638554 0.941860 +vt 0.614458 0.941860 +vt 0.585198 0.900000 +vt 0.567986 0.900000 +vt 0.638554 0.948837 +vt 0.585198 0.906977 +vt 0.567986 0.906977 +vt 0.585198 0.865116 +vt 0.585198 0.872093 +vt 0.638554 0.955814 +vt 0.614458 0.955814 +vt 0.567986 0.913953 +vt 0.585198 0.913953 +vt 0.638554 0.962791 +vt 0.614458 0.962791 +vt 0.581756 0.934884 +vt 0.567986 0.934884 +vt 0.585198 0.920930 +vt 0.567986 0.920930 +vt 0.638554 0.969767 +vt 0.581756 0.941860 +vt 0.567986 0.941860 +vt 0.605852 0.872093 +vt 0.626506 0.879070 +vt 0.605852 0.879070 +vt 0.581756 0.948837 +vt 0.605852 0.865116 +vt 0.626506 0.872093 +vt 0.626506 0.886047 +vt 0.605852 0.886047 +vt 0.581756 0.955814 +vt 0.567986 0.955814 +vt 0.626506 0.893023 +vt 0.581756 0.962791 +vt 0.567986 0.962791 +vt 0.626506 0.920930 +vt 0.606230 0.922330 +vt 0.626506 0.900000 +vt 0.605852 0.900000 +vt 0.581756 0.969767 +vt 0.626506 0.906977 +vt 0.614458 0.920930 +vt 0.638554 0.927907 +vt 0.629088 0.920930 +vt 0.631670 0.913953 +vt 0.631670 0.920930 +vt 0.586919 0.941860 +vt 0.582616 0.941860 +vt 0.629088 0.893023 +vt 0.631670 0.900000 +vt 0.630809 0.900000 +vt 0.631670 0.872093 +vt 0.631670 0.879070 +vt 0.584337 0.948837 +vt 0.586919 0.948837 +vt 0.631670 0.886047 +vt 0.627367 0.886047 +vt 0.582616 0.927907 +vt 0.586919 0.920930 +vt 0.586919 0.927907 +vt 0.586919 0.955814 +vt 0.586058 0.955814 +vt 0.628227 0.865116 +vt 0.627367 0.872093 +vt 0.586919 0.934884 +vt 0.584337 0.976744 +vt 0.586919 0.969767 +vt 0.586919 0.976744 +vt 0.631670 0.893023 +vt 0.635972 0.886047 +vt 0.634251 0.893023 +vt 0.589501 0.976744 +vt 0.591222 0.941860 +vt 0.589501 0.948837 +vt 0.632530 0.900000 +vt 0.635112 0.865116 +vt 0.635972 0.872093 +vt 0.636833 0.879070 +vt 0.587780 0.955814 +vt 0.592083 0.934884 +vt 0.634251 0.920930 +vt 0.591222 0.927907 +vt 0.630809 0.913953 +vt 0.631670 0.906977 +vt 0.632530 0.913953 +vt 0.586919 0.962791 +vt 0.586058 0.969767 +vt 0.587780 0.969767 +vt 0.592083 0.927907 +vt 0.593804 0.934884 +vt 0.636833 0.906977 +vt 0.638554 0.913953 +vt 0.636833 0.913953 +vt 0.593804 0.941860 +vt 0.592083 0.941860 +vt 0.592083 0.948837 +vt 0.593804 0.948837 +vt 0.636833 0.900000 +vt 0.638554 0.906977 +vt 0.593804 0.955814 +vt 0.592083 0.955814 +vt 0.636833 0.872093 +vt 0.638554 0.879070 +vt 0.592083 0.920930 +vt 0.593804 0.927907 +vt 0.638554 0.886047 +vt 0.636833 0.886047 +vt 0.593804 0.962791 +vt 0.592083 0.962791 +vt 0.592083 0.969767 +vt 0.593804 0.976744 +vt 0.592083 0.976744 +vt 0.638554 0.893023 +vt 0.636833 0.893023 +vt 0.636833 0.865116 +vt 0.638554 0.872093 +vt 0.638554 0.900000 +vt 0.593804 0.969767 +vt 0.638554 0.920930 +vt 0.636833 0.920930 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.924268 0.390698 +vt 0.920826 0.409302 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.920826 0.409302 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.920826 0.409302 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.920826 0.409302 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.920826 0.409302 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.922547 0.409302 +vt 0.920826 0.409302 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.922547 0.409302 +vt 0.922547 0.390698 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.922547 0.409302 +vt 0.922547 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.922547 0.409302 +vt 0.922547 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.922547 0.409302 +vt 0.922547 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.922547 0.409302 +vt 0.922547 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.922547 0.409302 +vt 0.920826 0.409302 +vt 0.920826 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.924268 0.390698 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.922547 0.409302 +vt 0.920826 0.409302 +vt 0.920826 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.924268 0.390698 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.922547 0.409302 +vt 0.920826 0.409302 +vt 0.920826 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.924268 0.390698 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.922547 0.409302 +vt 0.920826 0.409302 +vt 0.920826 0.390698 +vt 0.920826 0.390698 +vt 0.919966 0.409302 +vt 0.919966 0.390698 +vt 0.925129 0.390698 +vt 0.924268 0.409302 +vt 0.924268 0.390698 +vt 0.919105 0.409302 +vt 0.919105 0.390698 +vt 0.925990 0.390698 +vt 0.925129 0.409302 +vt 0.924268 0.390698 +vt 0.923408 0.409302 +vt 0.923408 0.390698 +vt 0.922547 0.390698 +vt 0.921687 0.409302 +vt 0.921687 0.390698 +vt 0.922547 0.409302 +vt 0.920826 0.409302 +vt 0.920826 0.390698 +vt 0.979346 0.255814 +vt 0.917384 0.244186 +vt 0.979346 0.244186 +vt 0.979346 0.360465 +vt 0.917384 0.348837 +vt 0.979346 0.348837 +vt 0.979346 0.267442 +vt 0.917384 0.255814 +vt 0.979346 0.372093 +vt 0.917384 0.360465 +vt 0.979346 0.290698 +vt 0.917384 0.279070 +vt 0.979346 0.279070 +vt 0.917384 0.267442 +vt 0.979346 0.197674 +vt 0.917384 0.186047 +vt 0.979346 0.186047 +vt 0.979346 0.302326 +vt 0.917384 0.290698 +vt 0.979346 0.209302 +vt 0.917384 0.197674 +vt 0.979346 0.313953 +vt 0.917384 0.302326 +vt 0.979346 0.220930 +vt 0.917384 0.209302 +vt 0.979346 0.325581 +vt 0.917384 0.313953 +vt 0.979346 0.232558 +vt 0.917384 0.220930 +vt 0.979346 0.337209 +vt 0.917384 0.325581 +vt 0.917384 0.232558 +vt 0.917384 0.337209 +vt 0.803787 0.646512 +vt 0.796902 0.660465 +vt 0.796902 0.646512 +vt 0.803787 0.618605 +vt 0.796902 0.632558 +vt 0.796902 0.618605 +vt 0.803787 0.702326 +vt 0.796902 0.716279 +vt 0.796902 0.702326 +vt 0.803787 0.674419 +vt 0.796902 0.688372 +vt 0.796902 0.674419 +vt 0.803787 0.632558 +vt 0.803787 0.604651 +vt 0.796902 0.604651 +vt 0.803787 0.688372 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.796902 0.660465 +vt 0.796902 0.646512 +vt 0.803787 0.618605 +vt 0.796902 0.632558 +vt 0.796902 0.618605 +vt 0.803787 0.702326 +vt 0.796902 0.716279 +vt 0.796902 0.702326 +vt 0.803787 0.674419 +vt 0.796902 0.688372 +vt 0.796902 0.674419 +vt 0.803787 0.632558 +vt 0.803787 0.604651 +vt 0.796902 0.604651 +vt 0.803787 0.688372 +vt 0.803787 0.660465 +vt 0.803787 0.646512 +vt 0.796902 0.660465 +vt 0.796902 0.646512 +vt 0.803787 0.618605 +vt 0.796902 0.632558 +vt 0.796902 0.618605 +vt 0.803787 0.702326 +vt 0.796902 0.716279 +vt 0.796902 0.702326 +vt 0.803787 0.674419 +vt 0.796902 0.688372 +vt 0.796902 0.674419 +vt 0.803787 0.632558 +vt 0.803787 0.604651 +vt 0.796902 0.604651 +vt 0.803787 0.688372 +vt 0.803787 0.660465 +vt 0.595525 0.913953 +vt 0.585198 0.906977 +vt 0.585198 0.913953 +vt 0.557659 0.948837 +vt 0.554217 0.941860 +vt 0.554217 0.948837 +vt 0.604131 0.934884 +vt 0.593804 0.927907 +vt 0.593804 0.934884 +vt 0.557659 0.955814 +vt 0.554217 0.955814 +vt 0.595525 0.872093 +vt 0.585198 0.865116 +vt 0.585198 0.872093 +vt 0.593804 0.941860 +vt 0.557659 0.962791 +vt 0.554217 0.962791 +vt 0.585198 0.920930 +vt 0.604131 0.948837 +vt 0.593804 0.948837 +vt 0.557659 0.969767 +vt 0.554217 0.969767 +vt 0.557659 0.879070 +vt 0.554217 0.872093 +vt 0.554217 0.879070 +vt 0.604131 0.955814 +vt 0.593804 0.955814 +vt 0.557659 0.927907 +vt 0.554217 0.920930 +vt 0.554217 0.927907 +vt 0.554217 0.886047 +vt 0.604131 0.962791 +vt 0.593804 0.962791 +vt 0.554217 0.976744 +vt 0.557659 0.893023 +vt 0.554217 0.893023 +vt 0.604131 0.969767 +vt 0.593804 0.969767 +vt 0.557659 0.900000 +vt 0.554217 0.900000 +vt 0.604131 0.927907 +vt 0.593804 0.920930 +vt 0.557659 0.906977 +vt 0.554217 0.906977 +vt 0.593804 0.976744 +vt 0.557659 0.913953 +vt 0.554217 0.913953 +vt 0.595525 0.879070 +vt 0.585198 0.879070 +vt 0.557659 0.872093 +vt 0.554217 0.865116 +vt 0.585198 0.886047 +vt 0.554217 0.920930 +vt 0.595525 0.893023 +vt 0.585198 0.893023 +vt 0.557659 0.934884 +vt 0.554217 0.934884 +vt 0.595525 0.900000 +vt 0.585198 0.900000 +vt 0.595525 0.906977 +vt 0.598107 0.906977 +vt 0.600688 0.900000 +vt 0.596386 0.900000 +vt 0.609294 0.948837 +vt 0.604991 0.941860 +vt 0.596386 0.886047 +vt 0.600688 0.879070 +vt 0.598107 0.879070 +vt 0.600688 0.913953 +vt 0.599828 0.913953 +vt 0.604991 0.955814 +vt 0.600688 0.893023 +vt 0.606713 0.934884 +vt 0.609294 0.927907 +vt 0.608434 0.927907 +vt 0.606713 0.962791 +vt 0.609294 0.955814 +vt 0.609294 0.941860 +vt 0.600688 0.872093 +vt 0.599828 0.872093 +vt 0.609294 0.969767 +vt 0.608434 0.969767 +vt 0.603270 0.879070 +vt 0.613597 0.955814 +vt 0.600688 0.906977 +vt 0.604991 0.900000 +vt 0.611876 0.934884 +vt 0.609294 0.934884 +vt 0.604991 0.886047 +vt 0.600688 0.886047 +vt 0.609294 0.962791 +vt 0.603270 0.906977 +vt 0.613597 0.941860 +vt 0.611876 0.962791 +vt 0.562823 0.969767 +vt 0.560241 0.962791 +vt 0.561962 0.969767 +vt 0.562823 0.900000 +vt 0.558520 0.900000 +vt 0.562823 0.948837 +vt 0.558520 0.941860 +vt 0.560241 0.879070 +vt 0.562823 0.872093 +vt 0.561962 0.872093 +vt 0.560241 0.906977 +vt 0.562823 0.955814 +vt 0.558520 0.955814 +vt 0.562823 0.886047 +vt 0.558520 0.886047 +vt 0.560241 0.934884 +vt 0.562823 0.927907 +vt 0.561962 0.927907 +vt 0.562823 0.913953 +vt 0.561962 0.913953 +vt 0.562823 0.893023 +vt 0.562823 0.934884 +vt 0.565404 0.906977 +vt 0.562823 0.906977 +vt 0.567126 0.886047 +vt 0.567126 0.955814 +vt 0.565404 0.934884 +vt 0.567126 0.900000 +vt 0.562823 0.962791 +vt 0.565404 0.879070 +vt 0.562823 0.879070 +vt 0.567126 0.941860 +vt 0.562823 0.941860 +vt 0.565404 0.962791 +vt 0.562823 0.920930 +vt 0.563683 0.927907 +vt 0.562823 0.976744 +vt 0.563683 0.969767 +vt 0.562823 0.865116 +vt 0.563683 0.872093 +vt 0.562823 0.920930 +vt 0.563683 0.913953 +vt 0.600688 0.865116 +vt 0.601549 0.872093 +vt 0.600688 0.920930 +vt 0.601549 0.913953 +vt 0.609294 0.920930 +vt 0.610155 0.927907 +vt 0.609294 0.976744 +vt 0.610155 0.969767 +vt 0.626506 0.913953 +vt 0.606152 0.908009 +vt 0.606191 0.915169 +vt 0.585198 0.879070 +vt 0.567986 0.872093 +vt 0.567986 0.879070 +vt 0.567986 0.927907 +vt 0.581756 0.920930 +vt 0.567986 0.920930 +vt 0.638554 0.976744 +vt 0.614458 0.969767 +vt 0.614458 0.976744 +vt 0.585198 0.886047 +vt 0.567986 0.886047 +vt 0.638554 0.934884 +vt 0.614458 0.927907 +vt 0.614458 0.934884 +vt 0.567986 0.893023 +vt 0.581756 0.976744 +vt 0.567986 0.969767 +vt 0.567986 0.976744 +vt 0.638554 0.941860 +vt 0.614458 0.941860 +vt 0.585198 0.900000 +vt 0.567986 0.900000 +vt 0.638554 0.948837 +vt 0.614458 0.948837 +vt 0.585198 0.906977 +vt 0.567986 0.906977 +vt 0.585198 0.865116 +vt 0.567986 0.865116 +vt 0.638554 0.955814 +vt 0.614458 0.955814 +vt 0.567986 0.913953 +vt 0.638554 0.962791 +vt 0.614458 0.962791 +vt 0.581756 0.934884 +vt 0.567986 0.934884 +vt 0.585198 0.920930 +vt 0.567986 0.920930 +vt 0.638554 0.969767 +vt 0.581756 0.941860 +vt 0.567986 0.941860 +vt 0.626506 0.879070 +vt 0.605852 0.872093 +vt 0.605852 0.879070 +vt 0.567986 0.948837 +vt 0.626506 0.872093 +vt 0.605852 0.865116 +vt 0.626506 0.886047 +vt 0.605852 0.886047 +vt 0.581756 0.955814 +vt 0.567986 0.955814 +vt 0.626506 0.893023 +vt 0.605852 0.893023 +vt 0.581756 0.962791 +vt 0.567986 0.962791 +vt 0.626506 0.920930 +vt 0.606230 0.922330 +vt 0.626506 0.900000 +vt 0.605852 0.900000 +vt 0.626506 0.906977 +vt 0.638554 0.927907 +vt 0.614458 0.920930 +vt 0.629088 0.920930 +vt 0.631670 0.913953 +vt 0.630809 0.913953 +vt 0.586919 0.941860 +vt 0.582616 0.941860 +vt 0.631670 0.900000 +vt 0.629088 0.893023 +vt 0.630809 0.900000 +vt 0.631670 0.872093 +vt 0.627367 0.872093 +vt 0.584337 0.948837 +vt 0.631670 0.886047 +vt 0.627367 0.886047 +vt 0.582616 0.927907 +vt 0.586919 0.920930 +vt 0.583477 0.920930 +vt 0.586919 0.955814 +vt 0.586058 0.955814 +vt 0.628227 0.865116 +vt 0.586919 0.934884 +vt 0.584337 0.976744 +vt 0.586919 0.969767 +vt 0.586058 0.969767 +vt 0.631670 0.893023 +vt 0.634251 0.893023 +vt 0.589501 0.976744 +vt 0.586919 0.976744 +vt 0.586919 0.948837 +vt 0.591222 0.941860 +vt 0.635112 0.865116 +vt 0.631670 0.865116 +vt 0.636833 0.879070 +vt 0.631670 0.879070 +vt 0.587780 0.955814 +vt 0.592083 0.934884 +vt 0.586919 0.927907 +vt 0.634251 0.920930 +vt 0.631670 0.920930 +vt 0.591222 0.927907 +vt 0.631670 0.906977 +vt 0.632530 0.913953 +vt 0.632530 0.900000 +vt 0.586919 0.962791 +vt 0.587780 0.969767 +vt 0.593804 0.934884 +vt 0.592083 0.927907 +vt 0.638554 0.913953 +vt 0.636833 0.906977 +vt 0.636833 0.913953 +vt 0.593804 0.941860 +vt 0.592083 0.941860 +vt 0.592083 0.948837 +vt 0.638554 0.906977 +vt 0.636833 0.900000 +vt 0.593804 0.955814 +vt 0.592083 0.955814 +vt 0.638554 0.879070 +vt 0.636833 0.872093 +vt 0.593804 0.927907 +vt 0.592083 0.920930 +vt 0.638554 0.886047 +vt 0.636833 0.886047 +vt 0.593804 0.962791 +vt 0.592083 0.962791 +vt 0.593804 0.976744 +vt 0.592083 0.969767 +vt 0.592083 0.976744 +vt 0.638554 0.893023 +vt 0.636833 0.893023 +vt 0.638554 0.872093 +vt 0.636833 0.865116 +vt 0.638554 0.900000 +vt 0.593804 0.969767 +vt 0.638554 0.920930 +vt 0.636833 0.920930 +vt 0.803787 0.716279 +vt 0.917384 0.186047 +vt 0.557659 0.941860 +vt 0.595525 0.865116 +vt 0.604131 0.941860 +vt 0.595525 0.920930 +vt 0.557659 0.920930 +vt 0.557659 0.886047 +vt 0.557659 0.976744 +vt 0.604131 0.920930 +vt 0.604131 0.976744 +vt 0.557659 0.865116 +vt 0.595525 0.886047 +vt 0.557659 0.920930 +vt 0.567986 0.920930 +vt 0.567986 0.865116 +vt 0.626506 0.865116 +vt 0.638554 0.920930 +vt 0.583477 0.920930 +vt 0.631670 0.865116 +vt 0.590361 0.920930 +vt 0.593804 0.920930 +vt 0.638554 0.865116 +vt 0.922547 0.409302 +vt 0.925990 0.409302 +vt 0.922547 0.409302 +vt 0.922547 0.409302 +vt 0.922547 0.409302 +vt 0.922547 0.409302 +vt 0.924268 0.409302 +vt 0.920826 0.409302 +vt 0.925990 0.409302 +vt 0.925990 0.409302 +vt 0.925990 0.409302 +vt 0.925990 0.409302 +vt 0.925990 0.409302 +vt 0.925990 0.409302 +vt 0.920826 0.409302 +vt 0.925990 0.409302 +vt 0.924268 0.409302 +vt 0.920826 0.409302 +vt 0.925990 0.409302 +vt 0.924268 0.409302 +vt 0.920826 0.409302 +vt 0.925990 0.409302 +vt 0.924268 0.409302 +vt 0.920826 0.409302 +vt 0.925990 0.409302 +vt 0.924268 0.409302 +vt 0.917384 0.372093 +vt 0.803787 0.716279 +vt 0.803787 0.716279 +vt 0.803787 0.716279 +vt 0.557659 0.941860 +vt 0.595525 0.865116 +vt 0.604131 0.941860 +vt 0.595525 0.920930 +vt 0.557659 0.920930 +vt 0.557659 0.886047 +vt 0.557659 0.976744 +vt 0.604131 0.920930 +vt 0.604131 0.976744 +vt 0.557659 0.865116 +vt 0.595525 0.886047 +vt 0.557659 0.920930 +vt 0.585198 0.872093 +vt 0.581756 0.927907 +vt 0.585198 0.893023 +vt 0.581756 0.969767 +vt 0.585198 0.913953 +vt 0.581756 0.948837 +vt 0.626506 0.865116 +vt 0.638554 0.920930 +vt 0.635972 0.886047 +vt 0.589501 0.948837 +vt 0.635972 0.872093 +vt 0.590361 0.920930 +vt 0.593804 0.948837 +vt 0.593804 0.920930 +vt 0.638554 0.865116 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.5774 -0.5774 -0.5774 +vn -0.5774 -0.5774 -0.5774 +vn -0.5774 0.5774 -0.5774 +vn 0.5774 0.5774 -0.5774 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.7263 0.6737 0.1363 +vn 0.0000 -0.9824 -0.1866 +vn -0.9987 -0.0473 -0.0196 +vn 0.6794 -0.7194 -0.1448 +vn -0.7263 0.6737 0.1363 +vn 0.9987 -0.0473 -0.0196 +vn 0.9955 -0.0671 -0.0671 +vn -0.6794 -0.7194 -0.1448 +vn -0.0000 -0.7071 -0.7071 +vn -0.6630 -0.5294 -0.5294 +vn 0.7574 0.4617 0.4617 +vn 0.6630 -0.5294 -0.5294 +vn -0.9955 -0.0671 -0.0671 +vn -0.7574 0.4617 0.4617 +vn -0.9987 -0.0196 -0.0473 +vn 0.6794 -0.1448 -0.7194 +vn 0.9987 -0.0196 -0.0473 +vn -0.6794 -0.1448 -0.7194 +vn 0.7263 0.1363 0.6737 +vn -0.0000 -0.1866 -0.9824 +vn -0.7263 0.1363 0.6737 +vn 0.6737 -0.1363 0.7263 +vn -0.0473 0.0196 0.9987 +vn -0.7194 0.1448 0.6794 +vn -0.9824 0.1866 0.0000 +vn -0.7194 0.1448 -0.6794 +vn -0.0473 0.0196 -0.9987 +vn 0.6737 -0.1363 -0.7263 +vn 0.4617 -0.4617 0.7574 +vn -0.0671 0.0671 0.9955 +vn -0.5294 0.5294 -0.6630 +vn 0.4617 -0.4617 -0.7574 +vn -0.5294 0.5294 0.6630 +vn -0.0671 0.0671 -0.9955 +vn -0.1448 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn -0.0196 0.0473 0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.1448 0.7194 0.6794 +vn -0.1866 0.9824 0.0000 +vn 0.1363 -0.6737 0.7263 +vn -0.3827 0.0000 0.9239 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 -0.9239 +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.9239 0.0000 0.3827 +vn -0.6737 -0.1363 0.7263 +vn 0.0473 0.0196 0.9987 +vn 0.9824 0.1866 0.0000 +vn 0.7194 0.1448 -0.6794 +vn 0.7194 0.1448 0.6794 +vn -0.6737 -0.1363 -0.7263 +vn 0.0473 0.0196 -0.9987 +vn -0.4617 -0.4617 0.7574 +vn 0.5294 0.5294 -0.6630 +vn -0.4617 -0.4617 -0.7574 +vn 0.5294 0.5294 0.6630 +vn 0.0671 0.0671 0.9955 +vn 0.0671 0.0671 -0.9955 +vn 0.0196 0.0473 -0.9987 +vn 0.0196 0.0473 0.9987 +vn 0.1448 0.7194 -0.6794 +vn 0.1866 0.9824 0.0000 +vn -0.1363 -0.6737 -0.7263 +vn 0.1448 0.7194 0.6794 +vn -0.1363 -0.6737 0.7263 +s off +f 2949/4260/652 2945/4261/652 2950/4262/652 +f 2950/4262/653 2947/4263/653 2956/4264/653 +f 2956/4265/654 2948/4266/654 2955/4267/654 +f 2955/4268/655 2949/4269/655 2951/4270/655 +f 2951/4270/656 2950/4262/656 2954/4271/656 +f 2956/4272/653 2954/4271/653 2950/4273/653 +f 2957/4274/657 2953/4275/657 2958/4276/657 +f 2955/4267/655 2946/4277/655 2949/4260/655 +f 2956/4272/653 2953/4275/653 2954/4271/653 +f 2955/4268/655 2952/4278/655 2957/4279/655 +f 2952/4278/658 2954/4271/658 2953/4275/658 +f 2956/4280/659 2957/4279/659 2958/4281/659 +f 2960/4282/658 2961/4283/658 2959/4284/658 +f 2961/4285/660 2962/4286/660 2959/4287/660 +f 2960/4282/655 2964/4288/655 2961/4283/655 +f 2959/4287/654 2963/4289/654 2960/4282/654 +f 2965/4290/654 2968/4291/654 2966/4292/654 +f 2965/4293/653 2970/4294/653 2967/4295/653 +f 2968/4291/661 2969/4296/661 2966/4292/661 +f 2966/4297/658 2969/4298/658 2965/4293/658 +f 2964/4288/658 2968/4299/658 2962/4300/658 +f 2978/4301/662 2984/4302/662 2976/4303/662 +f 2985/4304/658 2978/4305/658 2977/4306/658 +f 2981/4307/663 2971/4308/663 2973/4309/663 +f 2974/4310/659 2981/4311/659 2973/4312/659 +f 2983/4313/664 2977/4314/664 2975/4315/664 +f 2984/4302/655 2972/4316/655 2976/4303/655 +f 2980/4317/665 2974/4318/665 2972/4316/665 +f 2979/4319/653 2975/4315/653 2971/4308/653 +f 2974/4320/654 2962/4286/654 2968/4291/654 +f 2962/4286/654 2971/4321/654 2963/4289/654 +f 2968/4291/654 2972/4322/654 2974/4320/654 +f 2964/4288/652 2982/4323/652 2970/4294/652 +f 2982/4323/652 2980/4324/652 2970/4294/652 +f 2981/4311/652 2964/4288/652 2979/4325/652 +f 2999/4326/659 3013/4327/659 3008/4328/659 +f 2989/4329/658 2990/4330/658 2991/4331/658 +f 2991/4331/658 2992/4332/658 2989/4329/658 +f 2990/4330/655 3013/4333/655 3000/4334/655 +f 2992/4332/658 2993/4335/658 2996/4336/658 +f 3009/4337/653 3005/4338/653 2994/4339/653 +f 2997/4340/659 3001/4341/659 3000/4342/659 +f 3003/4343/659 3001/4341/659 2997/4340/659 +f 3011/4344/652 3008/4328/652 3013/4327/652 +f 3003/4343/659 3004/4345/659 3002/4346/659 +f 2993/4335/660 3004/4347/660 2996/4348/660 +f 3043/4349/658 3036/4350/658 3035/4351/658 +f 2989/4329/653 2998/4352/653 2987/4353/653 +f 2991/4331/652 3002/4346/652 2993/4335/652 +f 2990/4354/661 3001/4341/661 2991/4331/661 +f 2995/4355/655 3003/4356/655 2992/4332/655 +f 3036/4357/662 3042/4358/662 3034/4359/662 +f 2992/4360/654 2997/4340/654 2989/4361/654 +f 2988/4362/655 3008/4363/655 3007/4364/655 +f 3004/4365/653 3012/4366/653 2996/4336/653 +f 2988/4362/658 3011/4367/658 2987/4353/658 +f 3011/4367/658 2989/4329/658 2987/4353/658 +f 2997/4340/659 3013/4327/659 2998/4368/659 +f 3014/4369/659 3003/4343/659 3006/4370/659 +f 2992/4332/658 3012/4366/658 2995/4355/658 +f 3014/4369/659 3005/4371/659 3010/4372/659 +f 2994/4339/658 3012/4366/658 3009/4337/658 +f 3010/4372/652 3012/4373/652 3014/4369/652 +f 2963/4289/655 3016/4374/655 2964/4288/655 +f 3016/4375/655 3015/4376/655 3017/4377/655 +f 3017/4377/666 3015/4378/666 3018/4379/666 +f 3020/4380/667 3021/4381/667 3019/4382/667 +f 3021/4381/653 3020/4383/653 3026/4384/653 +f 3018/4379/659 3021/4381/659 3025/4385/659 +f 3026/4386/653 2967/4295/653 2970/4294/653 +f 3023/4387/668 3028/4388/668 3025/4385/668 +f 3027/4389/669 3022/4390/669 3024/4391/669 +f 3016/4375/655 3022/4390/655 3027/4392/655 +f 3026/4384/653 3023/4387/653 3021/4381/653 +f 3025/4385/652 3027/4393/652 3024/4391/652 +f 3039/4394/663 3029/4395/663 3031/4396/663 +f 3032/4397/659 3039/4398/659 3031/4399/659 +f 3041/4400/664 3035/4401/664 3033/4402/664 +f 3042/4358/655 3030/4403/655 3034/4359/655 +f 3038/4404/665 3032/4405/665 3030/4403/665 +f 3037/4406/653 3033/4402/653 3029/4395/653 +f 2985/4304/652 3040/4407/652 2986/4408/652 +f 3032/4409/654 2977/4410/654 2978/4411/654 +f 3037/4412/652 2985/4304/652 2983/4413/652 +f 2977/4410/654 3029/4414/654 2975/4415/654 +f 2976/4416/654 3032/4409/654 2978/4411/654 +f 3040/4407/652 2984/4417/652 2986/4408/652 +f 3028/4418/658 3016/4374/658 3027/4419/658 +f 3043/4349/652 3026/4386/652 3044/4420/652 +f 3044/4420/652 3026/4386/652 3042/4421/652 +f 3043/4349/652 3041/4422/652 3016/4374/652 +f 3018/4379/654 3036/4423/654 3019/4382/654 +f 3036/4423/654 3020/4424/654 3019/4382/654 +f 3015/4425/654 3035/4426/654 3018/4379/654 +f 3015/4425/654 2963/4289/654 2975/4415/654 +f 3037/4412/652 2983/4413/652 2964/4288/652 +f 3020/4424/654 3034/4427/654 3030/4428/654 +f 3038/4429/652 3026/4386/652 2970/4294/652 +f 3049/4430/658 3048/4431/658 3045/4432/658 +f 3047/4433/659 3050/4434/659 3046/4435/659 +f 3048/4431/653 3051/4436/653 3047/4437/653 +f 3046/4435/655 3049/4430/655 3045/4432/655 +f 3057/4438/658 3056/4439/658 3053/4440/658 +f 3055/4441/659 3058/4442/659 3054/4443/659 +f 3056/4439/653 3059/4444/653 3055/4441/653 +f 3054/4445/655 3057/4438/655 3053/4440/655 +f 3058/4446/670 3063/4447/670 3057/4448/670 +f 3052/4449/671 3061/4450/671 3051/4451/671 +f 3062/4452/654 3064/4453/654 3061/4454/654 +f 3062/4452/658 3067/4455/658 3063/4456/658 +f 3064/4457/659 3065/4458/659 3061/4459/659 +f 3067/4455/652 3065/4458/652 3068/4460/652 +f 3063/4456/658 3060/4461/658 3057/4462/658 +f 3067/4455/660 3059/4444/660 3060/4463/660 +f 3068/4460/659 3058/4464/659 3059/4465/659 +f 3066/4466/658 3052/4467/658 3049/4468/658 +f 3050/4434/661 3066/4466/661 3049/4430/661 +f 3061/4459/659 3050/4469/659 3051/4470/659 +f 3075/4471/658 3076/4472/658 3069/4473/658 +f 3101/4474/658 3105/4475/658 3109/4476/658 +f 3095/4477/659 3091/4478/659 3087/4479/659 +f 3118/4480/658 3119/4481/658 3117/4482/658 +f 3119/4483/670 3120/4484/670 3117/4485/670 +f 3118/4480/653 3122/4486/653 3119/4483/653 +f 3117/4482/652 3121/4487/652 3118/4480/652 +f 3123/4488/652 3126/4489/652 3124/4490/652 +f 3123/4488/655 3128/4491/655 3125/4492/655 +f 3126/4493/671 3127/4494/671 3124/4495/671 +f 3124/4490/658 3127/4496/658 3123/4488/658 +f 3126/4489/658 3130/4497/658 3128/4498/658 +f 3122/4499/658 3131/4500/658 3120/4501/658 +f 3126/4489/660 3139/4502/660 3129/4503/660 +f 3120/4501/652 3134/4504/652 3121/4487/652 +f 3128/4491/655 3138/4505/655 3125/4492/655 +f 3131/4500/661 3135/4506/661 3120/4501/661 +f 3122/4486/671 3142/4507/671 3132/4508/671 +f 3125/4492/652 3137/4509/652 3126/4489/652 +f 3130/4510/670 3136/4511/670 3128/4491/670 +f 3121/4487/653 3133/4512/653 3122/4486/653 +f 3139/4502/659 3136/4513/659 3140/4514/659 +f 3134/4504/659 3135/4506/659 3133/4515/659 +f 3145/4516/670 3146/4517/670 3143/4518/670 +f 3144/4519/653 3148/4520/653 3145/4516/653 +f 3143/4521/652 3147/4522/652 3144/4519/652 +f 3149/4523/652 3152/4524/652 3150/4525/652 +f 3149/4523/655 3154/4526/655 3151/4527/655 +f 3152/4528/671 3153/4529/671 3150/4530/671 +f 3158/4531/658 3161/4532/658 3162/4533/658 +f 3156/4534/658 3155/4535/658 3157/4536/658 +f 3159/4537/652 3149/4523/652 3150/4525/652 +f 3160/4538/655 3153/4529/655 3149/4523/655 +f 3156/4534/652 3143/4521/652 3144/4519/652 +f 3155/4539/653 3144/4519/653 3145/4516/653 +f 3159/4537/660 3165/4540/660 3161/4532/660 +f 3153/4541/659 3165/4540/659 3150/4525/659 +f 3166/4542/670 3158/4543/670 3162/4544/670 +f 3167/4545/661 3157/4536/661 3163/4546/661 +f 3167/4545/659 3145/4547/659 3143/4521/659 +f 3155/4539/671 3168/4548/671 3164/4549/671 +f 3367/4550/659 3366/4551/659 3365/4552/659 +f 3371/4553/658 3369/4554/658 3370/4555/658 +f 3368/4556/655 3371/4553/655 3366/4551/655 +f 3367/4557/653 3370/4555/653 3369/4554/653 +f 3368/4558/655 3377/4559/655 3374/4560/655 +f 3366/4561/657 3370/4555/657 3365/4562/657 +f 3367/4557/653 3369/4554/653 3373/4563/653 +f 3372/4564/656 3373/4565/656 3369/4554/656 +f 3368/4556/655 3374/4566/655 3372/4564/655 +f 3367/4567/654 3375/4568/654 3368/4558/654 +f 3373/4565/653 3376/4569/653 3367/4570/653 +f 3374/4560/652 3378/4571/652 3373/4565/652 +f 3382/4572/652 3385/4573/652 3381/4574/652 +f 3379/4575/654 3384/4576/654 3380/4577/654 +f 3380/4577/655 3386/4578/655 3382/4572/655 +f 3381/4574/653 3383/4579/653 3379/4580/653 +f 3390/4581/652 3393/4582/652 3389/4583/652 +f 3387/4584/654 3392/4585/654 3388/4586/654 +f 3388/4586/655 3394/4587/655 3390/4581/655 +f 3389/4583/653 3391/4588/653 3387/4589/653 +f 3401/4590/652 3398/4591/652 3397/4592/652 +f 3400/4593/654 3395/4594/654 3396/4595/654 +f 3402/4596/655 3396/4595/655 3398/4591/655 +f 3399/4597/653 3397/4592/653 3395/4598/653 +f 3409/4599/652 3406/4600/652 3405/4601/652 +f 3408/4602/654 3403/4603/654 3404/4604/654 +f 3410/4605/655 3404/4604/655 3406/4600/655 +f 3407/4606/653 3405/4601/653 3403/4607/653 +f 3417/4608/652 3414/4609/652 3413/4610/652 +f 3416/4611/654 3411/4612/654 3412/4613/654 +f 3418/4614/655 3412/4613/655 3414/4609/655 +f 3415/4615/653 3413/4610/653 3411/4616/653 +f 3425/4617/652 3422/4618/652 3421/4619/652 +f 3424/4620/654 3419/4621/654 3420/4622/654 +f 3426/4623/655 3420/4622/655 3422/4618/655 +f 3423/4624/653 3421/4619/653 3419/4625/653 +f 3433/4626/652 3430/4627/652 3429/4628/652 +f 3432/4629/654 3427/4630/654 3428/4631/654 +f 3434/4632/655 3428/4631/655 3430/4627/655 +f 3431/4633/653 3429/4628/653 3427/4634/653 +f 3441/4635/652 3438/4636/652 3437/4637/652 +f 3440/4638/654 3435/4639/654 3436/4640/654 +f 3442/4641/655 3436/4640/655 3438/4636/655 +f 3439/4642/653 3437/4637/653 3435/4643/653 +f 3449/4644/652 3446/4645/652 3445/4646/652 +f 3448/4647/654 3443/4648/654 3444/4649/654 +f 3450/4650/655 3444/4649/655 3446/4645/655 +f 3447/4651/653 3445/4646/653 3443/4652/653 +f 3457/4653/652 3454/4654/652 3453/4655/652 +f 3456/4656/654 3451/4657/654 3452/4658/654 +f 3458/4659/655 3452/4658/655 3454/4654/655 +f 3455/4660/653 3453/4655/653 3451/4661/653 +f 3465/4662/652 3462/4663/652 3461/4664/652 +f 3464/4665/654 3459/4666/654 3460/4667/654 +f 3466/4668/655 3460/4667/655 3462/4663/655 +f 3463/4669/653 3461/4664/653 3459/4670/653 +f 3473/4671/652 3470/4672/652 3469/4673/652 +f 3472/4674/654 3467/4675/654 3468/4676/654 +f 3474/4677/655 3468/4676/655 3470/4672/655 +f 3471/4678/653 3469/4673/653 3467/4679/653 +f 3476/4680/655 3477/4681/655 3475/4682/655 +f 3482/4683/665 3483/4684/665 3479/4685/665 +f 3476/4680/654 3482/4686/654 3478/4687/654 +f 3477/4688/652 3480/4689/652 3475/4682/652 +f 3478/4690/659 3479/4691/659 3477/4688/659 +f 3475/4682/658 3481/4692/658 3476/4680/658 +f 3484/4693/655 3485/4694/655 3483/4695/655 +f 3484/4696/654 3490/4697/654 3486/4698/654 +f 3485/4694/652 3487/4699/652 3483/4695/652 +f 3490/4697/653 3487/4699/653 3489/4700/653 +f 3480/4689/664 3488/4701/664 3481/4692/664 +f 3488/4701/654 3482/4702/654 3481/4692/654 +f 3483/4684/652 3480/4689/652 3479/4685/652 +f 3492/4703/653 3493/4704/653 3491/4705/653 +f 3494/4706/659 3497/4707/659 3493/4708/659 +f 3498/4709/655 3495/4710/655 3497/4707/655 +f 3496/4711/658 3491/4705/658 3495/4710/658 +f 3494/4712/654 3506/4713/654 3498/4714/654 +f 3498/4714/655 3510/4715/655 3502/4716/655 +f 3494/4717/653 3492/4718/653 3501/4719/653 +f 3502/4716/656 3492/4703/656 3496/4711/656 +f 3498/4714/655 3502/4716/655 3496/4720/655 +f 3493/4721/653 3499/4722/653 3491/4723/653 +f 3499/4722/657 3495/4710/657 3491/4705/657 +f 3497/4724/655 3495/4725/655 3500/4726/655 +f 3500/4726/655 3503/4727/655 3497/4724/655 +f 3499/4722/654 3507/4728/654 3500/4726/654 +f 3501/4719/653 3505/4729/653 3494/4717/653 +f 3502/4716/652 3509/4730/652 3501/4719/652 +f 3497/4724/652 3504/4731/652 3493/4732/652 +f 3493/4721/653 3508/4733/653 3499/4722/653 +f 3513/4734/659 3518/4735/659 3517/4736/659 +f 3512/4737/653 3513/4734/653 3511/4738/653 +f 3511/4738/658 3516/4739/658 3512/4740/658 +f 3513/4734/654 3515/4741/654 3511/4738/654 +f 3521/4742/659 3526/4743/659 3525/4744/659 +f 3520/4745/653 3521/4742/653 3519/4746/653 +f 3519/4746/658 3524/4747/658 3520/4748/658 +f 3521/4742/654 3523/4749/654 3519/4746/654 +f 3530/4750/672 3528/4751/672 3527/4752/672 +f 3531/4753/653 3529/4754/653 3534/4755/653 +f 3536/4756/655 3542/4757/655 3537/4758/655 +f 3538/4759/657 3536/4756/657 3537/4758/657 +f 3538/4760/653 3540/4761/653 3535/4762/653 +f 3531/4763/657 3533/4764/657 3532/4765/657 +f 3533/4764/655 3527/4752/655 3532/4765/655 +f 3539/4766/672 3541/4767/672 3542/4757/672 +f 3549/4768/652 3547/4769/652 3548/4770/652 +f 3545/4771/659 3550/4772/659 3546/4773/659 +f 3544/4774/658 3548/4770/658 3543/4775/658 +f 3546/4776/655 3549/4768/655 3544/4777/655 +f 3543/4778/653 3547/4769/653 3545/4779/653 +f 3553/4780/653 3555/4781/653 3551/4782/653 +f 3558/4783/658 3553/4780/658 3554/4784/658 +f 3552/4785/655 3558/4783/655 3554/4784/655 +f 3551/4786/659 3556/4787/659 3552/4785/659 +f 3561/4788/653 3563/4789/653 3559/4790/653 +f 3566/4791/658 3561/4792/658 3562/4793/658 +f 3560/4794/655 3566/4791/655 3562/4793/655 +f 3559/4790/659 3564/4795/659 3560/4794/659 +f 3569/4796/653 3571/4797/653 3567/4798/653 +f 3574/4799/658 3569/4796/658 3570/4800/658 +f 3568/4801/655 3574/4799/655 3570/4800/655 +f 3567/4798/659 3572/4802/659 3568/4803/659 +f 3577/4804/653 3579/4805/653 3575/4806/653 +f 3582/4807/658 3577/4804/658 3578/4808/658 +f 3576/4809/655 3582/4810/655 3578/4811/655 +f 3575/4806/659 3580/4812/659 3576/4809/659 +f 3586/4813/652 3583/4814/652 3584/4815/652 +f 3587/4816/654 3590/4817/654 3588/4818/654 +f 3586/4813/653 3589/4819/653 3585/4820/653 +f 3583/4814/655 3588/4818/655 3584/4815/655 +f 3584/4815/659 3590/4821/659 3586/4813/659 +f 3585/4820/658 3587/4822/658 3583/4814/658 +f 3596/4823/672 3601/4824/672 3595/4825/672 +f 3595/4826/652 3598/4827/652 3596/4828/652 +f 3593/4829/655 3595/4826/655 3591/4830/655 +f 3594/4831/653 3596/4828/653 3598/4827/653 +f 3595/4825/655 3599/4832/655 3591/4830/655 +f 3592/4833/653 3602/4834/653 3596/4823/653 +f 3604/4835/653 3605/4836/653 3603/4837/653 +f 3606/4838/659 3609/4839/659 3605/4840/659 +f 3610/4841/655 3607/4842/655 3609/4843/655 +f 3606/4838/652 3608/4844/652 3610/4841/652 +f 3618/4845/653 3612/4846/653 3614/4847/653 +f 3611/4848/655 3617/4849/655 3613/4850/655 +f 3613/4850/652 3618/4845/652 3614/4847/652 +f 3617/4851/658 3620/4852/658 3618/4853/658 +f 3619/4854/652 3622/4855/652 3620/4852/652 +f 3618/4853/653 3622/4856/653 3616/4857/653 +f 3621/4858/655 3617/4851/655 3615/4859/655 +f 3629/4860/672 3626/4861/672 3625/4862/672 +f 3627/4863/653 3625/4862/653 3623/4864/653 +f 3630/4865/655 3624/4866/655 3626/4861/655 +f 3633/4867/655 3632/4868/655 3631/4869/655 +f 3637/4870/659 3634/4871/659 3633/4872/659 +f 3635/4873/653 3638/4874/653 3637/4875/653 +f 3636/4876/652 3634/4871/652 3638/4874/652 +f 3645/4877/652 3643/4878/652 3644/4879/652 +f 3641/4880/659 3650/4881/659 3642/4882/659 +f 3639/4883/653 3647/4884/653 3641/4885/653 +f 3642/4886/655 3649/4887/655 3640/4888/655 +f 3649/4887/652 3647/4884/652 3648/4889/652 +f 3640/4890/658 3648/4889/658 3639/4891/658 +f 3651/4892/654 3653/4893/654 3652/4894/654 +f 3645/4877/655 3654/4895/655 3646/4896/655 +f 3643/4878/653 3652/4897/653 3644/4879/653 +f 3646/4896/659 3651/4898/659 3643/4878/659 +f 3644/4879/658 3653/4893/658 3645/4877/658 +f 3624/4866/655 3874/4899/655 3626/4900/655 +f 3625/4901/653 3871/4902/653 3623/4864/653 +f 3626/4900/652 3873/4903/652 3625/4901/652 +f 3874/4904/655 3876/4905/655 3878/4906/655 +f 3873/4907/653 3875/4908/653 3871/4902/653 +f 3874/4904/658 3877/4909/658 3873/4907/658 +f 3876/4910/655 3882/4911/655 3878/4906/655 +f 3875/4912/653 3881/4913/653 3879/4914/653 +f 3878/4906/652 3881/4913/652 3877/4909/652 +f 3880/4915/659 3881/4913/659 3882/4911/659 +f 3896/4916/653 3897/4917/653 3895/4918/653 +f 3888/4919/653 3889/4920/653 3887/4921/653 +f 3886/4922/658 3888/4923/658 3884/4924/658 +f 3987/4925/653 3989/4926/653 3980/4927/653 +f 3883/4928/659 3889/4920/659 3885/4929/659 +f 3885/4929/652 3890/4930/652 3886/4922/652 +f 3894/4931/658 3896/4932/658 3892/4933/658 +f 3982/4934/655 3992/4935/655 3988/4936/655 +f 3891/4937/659 3897/4917/659 3893/4938/659 +f 3893/4938/652 3898/4939/652 3894/4931/652 +f 3912/4940/653 3913/4941/653 3911/4942/653 +f 3904/4943/653 3905/4944/653 3903/4945/653 +f 3902/4946/658 3904/4947/658 3900/4948/658 +f 4001/4949/653 4003/4950/653 3994/4951/653 +f 3899/4952/659 3905/4944/659 3901/4953/659 +f 3901/4953/652 3906/4954/652 3902/4946/652 +f 3910/4955/658 3912/4956/658 3908/4957/658 +f 3980/4958/653 3985/4959/653 3987/4960/653 +f 3907/4961/659 3913/4941/659 3909/4962/659 +f 3909/4962/652 3914/4963/652 3910/4955/652 +f 3928/4964/653 3929/4965/653 3927/4966/653 +f 3920/4967/653 3921/4968/653 3919/4969/653 +f 3918/4970/658 3920/4971/658 3916/4972/658 +f 3988/4936/656 3985/4959/656 3986/4973/656 +f 3915/4974/659 3921/4968/659 3917/4975/659 +f 3917/4975/652 3922/4976/652 3918/4970/652 +f 3926/4977/658 3928/4978/658 3924/4979/658 +f 3982/4980/655 3988/4981/655 3986/4973/655 +f 3923/4982/659 3929/4965/659 3925/4983/659 +f 3925/4983/652 3930/4984/652 3926/4977/652 +f 3934/4985/658 3936/4986/658 3932/4987/658 +f 4007/4988/653 4013/4989/653 4008/4990/653 +f 3931/4991/659 3937/4992/659 3933/4993/659 +f 3933/4993/652 3938/4994/652 3934/4985/652 +f 3942/4995/658 3944/4996/658 3940/4997/658 +f 3982/4980/655 3983/4998/655 3981/4999/655 +f 3939/5000/659 3945/5001/659 3941/5002/659 +f 3941/5002/652 3946/5003/652 3942/4995/652 +f 3950/5004/658 3952/5005/658 3948/5006/658 +f 3980/4927/654 3990/5007/654 3982/5008/654 +f 3947/5009/659 3953/5010/659 3949/5011/659 +f 3949/5011/652 3954/5012/652 3950/5004/652 +f 3958/5013/658 3960/5014/658 3956/5015/658 +f 3979/5016/653 3985/4959/653 3980/4958/653 +f 3955/5017/659 3961/5018/659 3957/5019/659 +f 3957/5019/652 3962/5020/652 3958/5013/652 +f 3966/5021/658 3968/5022/658 3964/5023/658 +f 3983/4998/658 3985/4959/658 3984/5024/658 +f 3963/5025/659 3969/5026/659 3965/5027/659 +f 3965/5027/652 3970/5028/652 3966/5021/652 +f 3974/5029/658 3976/5030/658 3972/5031/658 +f 3980/4958/659 3981/5032/659 3979/5016/659 +f 3971/5033/659 3977/5034/659 3973/5035/659 +f 3973/5035/652 3978/5036/652 3974/5029/652 +f 3971/5037/655 3974/5029/655 3972/5038/655 +f 3963/5039/655 3966/5021/655 3964/5040/655 +f 3955/5041/655 3958/5013/655 3956/5042/655 +f 3947/5043/655 3950/5004/655 3948/5044/655 +f 3939/5045/655 3942/4995/655 3940/5046/655 +f 3931/5047/655 3934/4985/655 3932/5048/655 +f 3988/4936/652 3991/5049/652 3987/4925/652 +f 3996/5050/655 4006/5051/655 4002/5052/655 +f 3994/5053/653 3999/5054/653 4001/5055/653 +f 4002/5052/656 3999/5054/656 4000/5056/656 +f 3996/5057/655 4002/5058/655 4000/5056/655 +f 4010/5059/655 4011/5060/655 4009/5061/655 +f 3996/5057/655 3997/5062/655 3995/5063/655 +f 3994/4951/654 4004/5064/654 3996/5065/654 +f 3993/5066/653 3999/5054/653 3994/5053/653 +f 3997/5062/658 3999/5054/658 3998/5067/658 +f 3994/5053/659 3995/5068/659 3993/5066/659 +f 4002/5052/652 4005/5069/652 4001/4949/652 +f 4011/5060/658 4013/4989/658 4012/5070/658 +f 4008/4990/659 4009/5071/659 4007/4988/659 +f 4018/5072/655 4019/5073/655 4017/5074/655 +f 4015/5075/653 4021/5076/653 4016/5077/653 +f 4019/5073/658 4021/5076/658 4020/5078/658 +f 4016/5077/659 4017/5079/659 4015/5075/659 +f 3159/4537/658 3158/5080/658 3160/4538/658 +f 3155/5081/658 3163/4546/658 3157/4536/658 +f 3135/4506/659 3142/5082/659 3133/5083/659 +f 3136/5084/659 3137/4509/659 3138/4505/659 +f 4027/5085/658 4026/5086/658 4023/5087/658 +f 4025/5088/659 4028/5089/659 4024/5090/659 +f 4026/5086/653 4029/5091/653 4025/5092/653 +f 4024/5090/655 4027/5085/655 4023/5087/655 +f 4035/5093/658 4034/5094/658 4031/5095/658 +f 4033/5096/659 4036/5097/659 4032/5098/659 +f 4034/5094/653 4037/5099/653 4033/5096/653 +f 4032/5100/655 4035/5093/655 4031/5095/655 +f 4036/5101/670 4041/5102/670 4035/5103/670 +f 4030/5104/671 4039/5105/671 4029/5106/671 +f 4040/5107/654 4042/5108/654 4039/5109/654 +f 4040/5107/658 4045/5110/658 4041/5111/658 +f 4042/5112/659 4043/5113/659 4039/5114/659 +f 4045/5110/652 4043/5113/652 4046/5115/652 +f 4041/5111/658 4038/5116/658 4035/5117/658 +f 4045/5110/660 4037/5099/660 4038/5118/660 +f 4046/5115/659 4036/5119/659 4037/5120/659 +f 4044/5121/658 4030/5122/658 4027/5123/658 +f 4028/5089/661 4044/5121/661 4027/5085/661 +f 4039/5114/659 4028/5124/659 4029/5125/659 +f 4063/5126/658 4067/5127/658 4071/5128/658 +f 4057/5129/659 4053/5130/659 4049/5131/659 +f 4081/5132/653 4080/5133/653 4079/5134/653 +f 4087/5135/663 4086/5136/663 4083/5137/663 +f 4086/5138/654 4080/5133/654 4082/5139/654 +f 4084/5140/652 4081/5141/652 4079/5134/652 +f 4083/5142/659 4082/5143/659 4081/5141/659 +f 4085/5144/658 4079/5134/658 4080/5133/658 +f 4089/5145/653 4088/5146/653 4087/5147/653 +f 4094/5148/654 4088/5149/654 4090/5150/654 +f 4091/5151/652 4089/5145/652 4087/5147/652 +f 4091/5151/655 4094/5148/655 4093/5152/655 +f 4092/5153/662 4084/5140/662 4085/5144/662 +f 4086/5154/654 4092/5153/654 4085/5144/654 +f 4084/5140/652 4087/5135/652 4083/5137/652 +f 4097/5155/655 4096/5156/655 4095/5157/655 +f 4101/5158/659 4098/5159/659 4097/5160/659 +f 4099/5161/653 4102/5162/653 4101/5158/653 +f 4095/5157/658 4100/5163/658 4099/5161/658 +f 4110/5164/654 4098/5165/654 4102/5166/654 +f 4114/5167/653 4102/5166/653 4106/5168/653 +f 4098/5169/655 4105/5170/655 4096/5171/655 +f 4096/5156/656 4106/5168/656 4100/5163/656 +f 4102/5166/653 4100/5172/653 4106/5168/653 +f 4097/5173/655 4095/5174/655 4103/5175/655 +f 4099/5161/657 4103/5175/657 4095/5157/657 +f 4101/5176/653 4104/5177/653 4099/5178/653 +f 4107/5179/653 4104/5177/653 4101/5176/653 +f 4111/5180/654 4103/5175/654 4104/5177/654 +f 4109/5181/655 4105/5170/655 4098/5169/655 +f 4113/5182/652 4106/5168/652 4105/5170/652 +f 4108/5183/652 4101/5176/652 4097/5184/652 +f 4112/5185/655 4097/5173/655 4103/5175/655 +f 4117/5186/658 4122/5187/658 4121/5188/658 +f 4116/5189/655 4117/5186/655 4115/5190/655 +f 4115/5190/659 4120/5191/659 4116/5192/659 +f 4117/5186/654 4119/5193/654 4115/5190/654 +f 4125/5194/658 4130/5195/658 4129/5196/658 +f 4124/5197/655 4125/5194/655 4123/5198/655 +f 4123/5198/659 4128/5199/659 4124/5200/659 +f 4125/5194/654 4127/5201/654 4123/5198/654 +f 4133/5202/659 4138/5203/659 4137/5204/659 +f 4132/5205/655 4133/5202/655 4131/5206/655 +f 4131/5206/658 4136/5207/658 4132/5208/658 +f 4133/5202/652 4135/5209/652 4131/5206/652 +f 4141/5210/659 4146/5211/659 4145/5212/659 +f 4140/5213/655 4141/5210/655 4139/5214/655 +f 4139/5214/658 4144/5215/658 4140/5216/658 +f 4141/5210/652 4143/5217/652 4139/5214/652 +f 4149/5218/658 4154/5219/658 4153/5220/658 +f 4148/5221/653 4149/5218/653 4147/5222/653 +f 4147/5222/659 4152/5223/659 4148/5224/659 +f 4149/5218/652 4151/5225/652 4147/5222/652 +f 4157/5226/658 4162/5227/658 4161/5228/658 +f 4156/5229/653 4157/5226/653 4155/5230/653 +f 4155/5230/659 4160/5231/659 4156/5232/659 +f 4157/5226/652 4159/5233/652 4155/5230/652 +f 4165/5234/659 4170/5235/659 4169/5236/659 +f 4164/5237/654 4165/5234/654 4163/5238/654 +f 4163/5238/658 4168/5239/658 4164/5240/658 +f 4165/5234/655 4167/5241/655 4163/5238/655 +f 4173/5242/659 4178/5243/659 4177/5244/659 +f 4172/5245/654 4173/5242/654 4171/5246/654 +f 4171/5246/658 4176/5247/658 4172/5248/658 +f 4173/5242/655 4175/5249/655 4171/5246/655 +f 4182/5250/658 4185/5251/658 4181/5252/658 +f 4180/5253/652 4181/5252/652 4179/5254/652 +f 4179/5254/659 4184/5255/659 4180/5256/659 +f 4181/5252/655 4183/5257/655 4179/5254/655 +f 4190/5258/658 4193/5259/658 4189/5260/658 +f 4188/5261/652 4189/5260/652 4187/5262/652 +f 4187/5262/659 4192/5263/659 4188/5264/659 +f 4189/5260/655 4191/5265/655 4187/5262/655 +f 4197/5266/659 4202/5267/659 4201/5268/659 +f 4196/5269/652 4197/5266/652 4195/5270/652 +f 4195/5270/658 4200/5271/658 4196/5272/658 +f 4197/5266/653 4199/5273/653 4195/5270/653 +f 4205/5274/659 4210/5275/659 4209/5276/659 +f 4204/5277/652 4205/5274/652 4203/5278/652 +f 4203/5278/658 4208/5279/658 4204/5280/658 +f 4205/5274/653 4207/5281/653 4203/5278/653 +f 4214/5282/658 4217/5283/658 4213/5284/658 +f 4212/5285/654 4213/5284/654 4211/5286/654 +f 4211/5286/659 4216/5287/659 4212/5288/659 +f 4213/5284/653 4215/5289/653 4211/5286/653 +f 4222/5290/658 4225/5291/658 4221/5292/658 +f 4220/5293/654 4221/5292/654 4219/5294/654 +f 4219/5294/659 4224/5295/659 4220/5296/659 +f 4221/5292/653 4223/5297/653 4219/5294/653 +f 4233/5298/658 4234/5299/658 4227/5300/658 +f 4249/5301/658 4250/5302/658 4243/5303/658 +f 4265/5304/658 4266/5305/658 4259/5306/658 +f 3615/4859/659 3622/5307/659 3621/4858/659 +f 2949/4260/652 2946/4277/652 2945/4261/652 +f 2950/4262/653 2945/4261/653 2947/4263/653 +f 2956/4265/654 2947/5308/654 2948/4266/654 +f 2951/4270/656 2949/4260/656 2950/4262/656 +f 2957/4274/657 2952/4278/657 2953/4275/657 +f 2955/4267/655 2948/4266/655 2946/4277/655 +f 2956/4272/653 2958/5309/653 2953/4275/653 +f 2955/4268/655 2951/4270/655 2952/4278/655 +f 2952/4278/658 2951/4270/658 2954/4271/658 +f 2956/4280/659 2955/4268/659 2957/4279/659 +f 2961/4285/660 2964/5310/660 2962/4286/660 +f 2960/4282/655 2963/4289/655 2964/4288/655 +f 2959/4287/654 2962/4286/654 2963/4289/654 +f 2965/4290/654 2967/5311/654 2968/4291/654 +f 2965/4293/653 2969/4298/653 2970/4294/653 +f 2968/4291/661 2970/5312/661 2969/4296/661 +f 2964/4288/658 2970/4294/658 2968/4299/658 +f 2978/4301/662 2986/5313/662 2984/4302/662 +f 2985/4304/658 2986/4408/658 2978/4305/658 +f 2981/4307/663 2979/4319/663 2971/4308/663 +f 2974/4310/659 2982/4323/659 2981/4311/659 +f 2983/4313/664 2985/5314/664 2977/4314/664 +f 2984/4302/655 2980/4317/655 2972/4316/655 +f 2980/4317/665 2982/5315/665 2974/4318/665 +f 2979/4319/653 2983/4313/653 2975/4315/653 +f 2974/4320/654 2973/5316/654 2962/4286/654 +f 2962/4286/654 2973/5316/654 2971/4321/654 +f 2968/4291/654 2967/5311/654 2972/4322/654 +f 2964/4288/652 2981/4311/652 2982/4323/652 +f 2999/4326/659 2998/4368/659 3013/4327/659 +f 2991/4331/658 2993/4335/658 2992/4332/658 +f 2990/4330/655 3011/4367/655 3013/4333/655 +f 3009/4337/653 3010/5317/653 3005/4338/653 +f 3003/4343/659 3002/4346/659 3001/4341/659 +f 3011/4344/652 3007/5318/652 3008/4328/652 +f 2993/4335/660 3002/4346/660 3004/4347/660 +f 3043/4349/658 3044/4420/658 3036/4350/658 +f 2989/4329/653 2997/5319/653 2998/4352/653 +f 2991/4331/652 3001/4341/652 3002/4346/652 +f 2990/4354/661 3000/5320/661 3001/4341/661 +f 2995/4355/655 3006/5321/655 3003/4356/655 +f 3036/4357/662 3044/5322/662 3042/4358/662 +f 2992/4360/654 3003/4343/654 2997/4340/654 +f 2988/4362/655 2999/5323/655 3008/4363/655 +f 3004/4365/653 3014/5324/653 3012/4366/653 +f 2988/4362/658 3007/4364/658 3011/4367/658 +f 3011/4367/658 2990/4330/658 2989/4329/658 +f 2997/4340/659 3000/4342/659 3013/4327/659 +f 3014/4369/659 3004/4345/659 3003/4343/659 +f 2992/4332/658 2996/4336/658 3012/4366/658 +f 3014/4369/659 3006/4370/659 3005/4371/659 +f 2994/4339/658 2995/4355/658 3012/4366/658 +f 3010/4372/652 3009/5325/652 3012/4373/652 +f 2963/4289/655 3015/4425/655 3016/4374/655 +f 3022/4390/659 3017/4377/659 3018/4379/659 +f 3018/4379/659 3019/4382/659 3021/4381/659 +f 3021/4381/659 3023/4387/659 3025/4385/659 +f 3025/4385/659 3024/4391/659 3022/4390/659 +f 3022/4390/659 3018/4379/659 3025/4385/659 +f 3026/4386/653 3020/5326/653 2967/4295/653 +f 3016/4375/655 3017/4377/655 3022/4390/655 +f 3026/4384/653 3028/5327/653 3023/4387/653 +f 3025/4385/652 3028/5328/652 3027/4393/652 +f 3039/4394/663 3037/4406/663 3029/4395/663 +f 3032/4397/659 3040/4407/659 3039/4398/659 +f 3041/4400/664 3043/5329/664 3035/4401/664 +f 3042/4358/655 3038/4404/655 3030/4403/655 +f 3038/4404/665 3040/5330/665 3032/4405/665 +f 3037/4406/653 3041/4400/653 3033/4402/653 +f 2985/4304/652 3039/4398/652 3040/4407/652 +f 3032/4409/654 3031/5331/654 2977/4410/654 +f 3037/4412/652 3039/4398/652 2985/4304/652 +f 2977/4410/654 3031/5331/654 3029/4414/654 +f 2976/4416/654 3030/4428/654 3032/4409/654 +f 3040/4407/652 3038/4429/652 2984/4417/652 +f 3028/4418/658 3026/4386/658 3016/4374/658 +f 3043/4349/652 3016/4374/652 3026/4386/652 +f 3018/4379/654 3035/4426/654 3036/4423/654 +f 3036/4423/654 3034/4427/654 3020/4424/654 +f 3015/4425/654 3033/5332/654 3035/4426/654 +f 2971/4321/654 2975/4415/654 2963/4289/654 +f 2975/4415/654 3029/4414/654 3015/4425/654 +f 3029/4414/654 3033/5332/654 3015/4425/654 +f 2983/4413/652 2979/4325/652 2964/4288/652 +f 2964/4288/652 3016/4374/652 3037/4412/652 +f 3016/4374/652 3041/4422/652 3037/4412/652 +f 3030/4428/654 2976/4416/654 3020/4424/654 +f 2976/4416/654 2972/4322/654 2967/5311/654 +f 3020/4424/654 2976/4416/654 2967/5311/654 +f 2970/4294/652 2980/4324/652 2984/4417/652 +f 3038/4429/652 3042/4421/652 3026/4386/652 +f 2970/4294/652 2984/4417/652 3038/4429/652 +f 3049/4430/658 3052/5333/658 3048/4431/658 +f 3047/4433/659 3051/5334/659 3050/4434/659 +f 3048/4431/653 3052/5333/653 3051/4436/653 +f 3046/4435/655 3050/4434/655 3049/4430/655 +f 3057/4438/658 3060/4463/658 3056/4439/658 +f 3055/4441/659 3059/4444/659 3058/4442/659 +f 3056/4439/653 3060/4463/653 3059/4444/653 +f 3054/4445/655 3058/5335/655 3057/4438/655 +f 3058/4446/670 3064/5336/670 3063/4447/670 +f 3052/4449/671 3062/5337/671 3061/4450/671 +f 3062/4452/654 3063/4456/654 3064/4453/654 +f 3062/4452/658 3066/4466/658 3067/4455/658 +f 3064/4457/659 3068/4460/659 3065/4458/659 +f 3067/4455/652 3066/4466/652 3065/4458/652 +f 3063/4456/658 3067/4455/658 3060/4461/658 +f 3067/4455/660 3068/4460/660 3059/4444/660 +f 3068/4460/659 3064/4457/659 3058/4464/659 +f 3066/4466/658 3062/4452/658 3052/4467/658 +f 3050/4434/661 3065/4458/661 3066/4466/661 +f 3061/4459/659 3065/4458/659 3050/4469/659 +f 3069/4473/658 3070/5338/658 3071/5339/658 +f 3071/5339/658 3072/5340/658 3069/4473/658 +f 3072/5340/658 3073/5341/658 3069/4473/658 +f 3073/5341/658 3074/5342/658 3069/4473/658 +f 3074/5342/658 3075/4471/658 3069/4473/658 +f 3101/4474/658 3102/5343/658 3103/5344/658 +f 3103/5344/658 3104/5345/658 3101/4474/658 +f 3104/5345/658 3105/4475/658 3101/4474/658 +f 3105/4475/658 3106/5346/658 3107/5347/658 +f 3107/5347/658 3108/5348/658 3105/4475/658 +f 3108/5348/658 3109/4476/658 3105/4475/658 +f 3109/4476/658 3110/5349/658 3111/5350/658 +f 3111/5350/658 3112/5351/658 3113/5352/658 +f 3113/5352/658 3114/5353/658 3101/4474/658 +f 3114/5353/658 3115/5354/658 3101/4474/658 +f 3115/5354/658 3116/5355/658 3101/4474/658 +f 3109/4476/658 3111/5350/658 3101/4474/658 +f 3111/5350/658 3113/5352/658 3101/4474/658 +f 3087/4479/659 3086/5356/659 3085/5357/659 +f 3085/5357/659 3100/5358/659 3099/5359/659 +f 3099/5359/659 3098/5360/659 3095/4477/659 +f 3098/5360/659 3097/5361/659 3095/4477/659 +f 3097/5361/659 3096/5362/659 3095/4477/659 +f 3095/4477/659 3094/5363/659 3093/5364/659 +f 3093/5364/659 3092/5365/659 3095/4477/659 +f 3092/5365/659 3091/4478/659 3095/4477/659 +f 3091/4478/659 3090/5366/659 3089/5367/659 +f 3089/5367/659 3088/5368/659 3091/4478/659 +f 3088/5368/659 3087/4479/659 3091/4478/659 +f 3087/4479/659 3085/5357/659 3095/4477/659 +f 3085/5357/659 3099/5359/659 3095/4477/659 +f 3119/4483/670 3122/4486/670 3120/4484/670 +f 3118/4480/653 3121/4487/653 3122/4486/653 +f 3117/4482/652 3120/4501/652 3121/4487/652 +f 3123/4488/652 3125/4492/652 3126/4489/652 +f 3123/4488/655 3127/4494/655 3128/4491/655 +f 3126/4493/671 3128/4491/671 3127/4494/671 +f 3126/4489/658 3129/4503/658 3130/4497/658 +f 3122/4499/658 3132/5369/658 3131/4500/658 +f 3126/4489/660 3137/4509/660 3139/4502/660 +f 3120/4501/652 3135/4506/652 3134/4504/652 +f 3128/4491/655 3136/4511/655 3138/4505/655 +f 3131/4500/661 3141/5370/661 3135/4506/661 +f 3122/4486/671 3133/4512/671 3142/4507/671 +f 3125/4492/652 3138/4505/652 3137/4509/652 +f 3130/4510/670 3140/5371/670 3136/4511/670 +f 3121/4487/653 3134/4504/653 3133/4512/653 +f 3139/4502/659 3137/4509/659 3136/4513/659 +f 3145/4516/670 3148/4520/670 3146/4517/670 +f 3144/4519/653 3147/4522/653 3148/4520/653 +f 3143/4521/652 3146/5372/652 3147/4522/652 +f 3149/4523/652 3151/4527/652 3152/4524/652 +f 3149/4523/655 3153/4529/655 3154/4526/655 +f 3152/4528/671 3154/4526/671 3153/4529/671 +f 3158/4531/658 3159/4537/658 3161/4532/658 +f 3159/4537/652 3160/4538/652 3149/4523/652 +f 3160/4538/655 3158/4543/655 3153/4529/655 +f 3156/4534/652 3157/4536/652 3143/4521/652 +f 3155/4539/653 3156/4534/653 3144/4519/653 +f 3159/4537/660 3150/4525/660 3165/4540/660 +f 3153/4541/659 3166/5373/659 3165/4540/659 +f 3166/4542/670 3153/4529/670 3158/4543/670 +f 3167/4545/661 3143/4521/661 3157/4536/661 +f 3167/4545/659 3168/5374/659 3145/4547/659 +f 3155/4539/671 3145/4516/671 3168/4548/671 +f 3367/4550/659 3368/4556/659 3366/4551/659 +f 3371/4553/658 3372/4564/658 3369/4554/658 +f 3368/4556/655 3372/4564/655 3371/4553/655 +f 3367/4557/653 3365/5375/653 3370/4555/653 +f 3368/4558/655 3375/4568/655 3377/4559/655 +f 3366/4561/657 3371/4553/657 3370/4555/657 +f 3372/4564/656 3374/4560/656 3373/4565/656 +f 3367/4567/654 3376/5376/654 3375/4568/654 +f 3373/4565/653 3378/4571/653 3376/4569/653 +f 3374/4560/652 3377/4559/652 3378/4571/652 +f 3382/4572/652 3386/4578/652 3385/4573/652 +f 3379/4575/654 3383/5377/654 3384/4576/654 +f 3380/4577/655 3384/4576/655 3386/4578/655 +f 3381/4574/653 3385/4573/653 3383/4579/653 +f 3390/4581/652 3394/4587/652 3393/4582/652 +f 3387/4584/654 3391/5378/654 3392/4585/654 +f 3388/4586/655 3392/4585/655 3394/4587/655 +f 3389/4583/653 3393/4582/653 3391/4588/653 +f 3401/4590/652 3402/4596/652 3398/4591/652 +f 3400/4593/654 3399/5379/654 3395/4594/654 +f 3402/4596/655 3400/4593/655 3396/4595/655 +f 3399/4597/653 3401/4590/653 3397/4592/653 +f 3409/4599/652 3410/4605/652 3406/4600/652 +f 3408/4602/654 3407/5380/654 3403/4603/654 +f 3410/4605/655 3408/4602/655 3404/4604/655 +f 3407/4606/653 3409/4599/653 3405/4601/653 +f 3417/4608/652 3418/4614/652 3414/4609/652 +f 3416/4611/654 3415/5381/654 3411/4612/654 +f 3418/4614/655 3416/4611/655 3412/4613/655 +f 3415/4615/653 3417/4608/653 3413/4610/653 +f 3425/4617/652 3426/4623/652 3422/4618/652 +f 3424/4620/654 3423/5382/654 3419/4621/654 +f 3426/4623/655 3424/4620/655 3420/4622/655 +f 3423/4624/653 3425/4617/653 3421/4619/653 +f 3433/4626/652 3434/4632/652 3430/4627/652 +f 3432/4629/654 3431/5383/654 3427/4630/654 +f 3434/4632/655 3432/4629/655 3428/4631/655 +f 3431/4633/653 3433/4626/653 3429/4628/653 +f 3441/4635/652 3442/4641/652 3438/4636/652 +f 3440/4638/654 3439/5384/654 3435/4639/654 +f 3442/4641/655 3440/4638/655 3436/4640/655 +f 3439/4642/653 3441/4635/653 3437/4637/653 +f 3449/4644/652 3450/4650/652 3446/4645/652 +f 3448/4647/654 3447/5385/654 3443/4648/654 +f 3450/4650/655 3448/4647/655 3444/4649/655 +f 3447/4651/653 3449/4644/653 3445/4646/653 +f 3457/4653/652 3458/4659/652 3454/4654/652 +f 3456/4656/654 3455/5386/654 3451/4657/654 +f 3458/4659/655 3456/4656/655 3452/4658/655 +f 3455/4660/653 3457/4653/653 3453/4655/653 +f 3465/4662/652 3466/4668/652 3462/4663/652 +f 3464/4665/654 3463/5387/654 3459/4666/654 +f 3466/4668/655 3464/4665/655 3460/4667/655 +f 3463/4669/653 3465/4662/653 3461/4664/653 +f 3473/4671/652 3474/4677/652 3470/4672/652 +f 3472/4674/654 3471/5388/654 3467/4675/654 +f 3474/4677/655 3472/4674/655 3468/4676/655 +f 3471/4678/653 3473/4671/653 3469/4673/653 +f 3476/4680/655 3478/5389/655 3477/4681/655 +f 3482/4683/665 3484/5390/665 3483/4684/665 +f 3476/4680/654 3481/4692/654 3482/4686/654 +f 3477/4688/652 3479/4691/652 3480/4689/652 +f 3478/4690/659 3482/5391/659 3479/4691/659 +f 3475/4682/658 3480/4689/658 3481/4692/658 +f 3484/4693/655 3486/5392/655 3485/4694/655 +f 3484/4696/654 3488/4701/654 3490/4697/654 +f 3485/4694/652 3489/4700/652 3487/4699/652 +f 3490/4697/653 3488/4701/653 3487/4699/653 +f 3480/4689/664 3487/4699/664 3488/4701/664 +f 3488/4701/654 3484/5393/654 3482/4702/654 +f 3483/4684/652 3487/4699/652 3480/4689/652 +f 3492/4703/653 3494/5394/653 3493/4704/653 +f 3494/4706/659 3498/4709/659 3497/4707/659 +f 3498/4709/655 3496/4711/655 3495/4710/655 +f 3496/4711/658 3492/4703/658 3491/4705/658 +f 3494/4712/654 3505/5395/654 3506/4713/654 +f 3498/4714/655 3506/4713/655 3510/4715/655 +f 3502/4716/656 3501/4719/656 3492/4703/656 +f 3499/4722/657 3500/4726/657 3495/4710/657 +f 3500/4726/655 3507/4728/655 3503/4727/655 +f 3499/4722/654 3508/4733/654 3507/4728/654 +f 3501/4719/653 3509/4730/653 3505/4729/653 +f 3502/4716/652 3510/4715/652 3509/4730/652 +f 3497/4724/652 3503/4727/652 3504/4731/652 +f 3493/4721/653 3504/5396/653 3508/4733/653 +f 3513/4734/659 3514/5397/659 3518/4735/659 +f 3512/4737/653 3514/5398/653 3513/4734/653 +f 3511/4738/658 3515/4741/658 3516/4739/658 +f 3513/4734/654 3517/4736/654 3515/4741/654 +f 3521/4742/659 3522/5399/659 3526/4743/659 +f 3520/4745/653 3522/5400/653 3521/4742/653 +f 3519/4746/658 3523/4749/658 3524/4747/658 +f 3521/4742/654 3525/4744/654 3523/4749/654 +f 3530/4750/672 3529/4754/672 3528/4751/672 +f 3531/4753/653 3528/4751/653 3529/4754/653 +f 3536/4756/655 3539/4766/655 3542/4757/655 +f 3538/4759/657 3535/5401/657 3536/4756/657 +f 3538/4760/653 3541/4767/653 3540/4761/653 +f 3531/4763/657 3534/5402/657 3533/4764/657 +f 3533/4764/655 3530/4750/655 3527/4752/655 +f 3539/4766/672 3540/4761/672 3541/4767/672 +f 3549/4768/652 3550/4772/652 3547/4769/652 +f 3545/4771/659 3547/4769/659 3550/4772/659 +f 3544/4774/658 3549/4768/658 3548/4770/658 +f 3546/4776/655 3550/4772/655 3549/4768/655 +f 3543/4778/653 3548/4770/653 3547/4769/653 +f 3553/4780/653 3557/5403/653 3555/4781/653 +f 3558/4783/658 3557/5403/658 3553/4780/658 +f 3552/4785/655 3556/4787/655 3558/4783/655 +f 3551/4786/659 3555/5404/659 3556/4787/659 +f 3561/4788/653 3565/5405/653 3563/4789/653 +f 3566/4791/658 3565/5406/658 3561/4792/658 +f 3560/4794/655 3564/4795/655 3566/4791/655 +f 3559/4790/659 3563/4789/659 3564/4795/659 +f 3569/4796/653 3573/5407/653 3571/4797/653 +f 3574/4799/658 3573/5407/658 3569/4796/658 +f 3568/4801/655 3572/5408/655 3574/4799/655 +f 3567/4798/659 3571/4797/659 3572/4802/659 +f 3577/4804/653 3581/5409/653 3579/4805/653 +f 3582/4807/658 3581/5409/658 3577/4804/658 +f 3576/4809/655 3580/4812/655 3582/4810/655 +f 3575/4806/659 3579/4805/659 3580/4812/659 +f 3586/4813/652 3585/4820/652 3583/4814/652 +f 3587/4816/654 3589/5410/654 3590/4817/654 +f 3586/4813/653 3590/5411/653 3589/4819/653 +f 3583/4814/655 3587/4816/655 3588/4818/655 +f 3584/4815/659 3588/5412/659 3590/4821/659 +f 3585/4820/658 3589/5413/658 3587/4822/658 +f 3596/4823/672 3602/4834/672 3601/4824/672 +f 3595/4826/652 3597/5414/652 3598/4827/652 +f 3593/4829/655 3597/5414/655 3595/4826/655 +f 3594/4831/653 3592/4833/653 3596/4828/653 +f 3595/4825/655 3601/4824/655 3599/4832/655 +f 3592/4833/653 3600/5415/653 3602/4834/653 +f 3604/4835/653 3606/4838/653 3605/4836/653 +f 3606/4838/659 3610/4841/659 3609/4839/659 +f 3610/4841/655 3608/4844/655 3607/4842/655 +f 3606/4838/652 3604/4835/652 3608/4844/652 +f 3618/4845/653 3616/4857/653 3612/4846/653 +f 3611/4848/655 3615/4859/655 3617/4849/655 +f 3613/4850/652 3617/4849/652 3618/4845/652 +f 3617/4851/658 3619/4854/658 3620/4852/658 +f 3619/4854/652 3621/5416/652 3622/4855/652 +f 3618/4853/653 3620/4852/653 3622/4856/653 +f 3621/4858/655 3619/4854/655 3617/4851/655 +f 3629/4860/672 3630/4865/672 3626/4861/672 +f 3627/4863/653 3629/4860/653 3625/4862/653 +f 3630/4865/655 3628/5417/655 3624/4866/655 +f 3633/4867/655 3634/4871/655 3632/4868/655 +f 3637/4870/659 3638/4874/659 3634/4871/659 +f 3635/4873/653 3636/4876/653 3638/4874/653 +f 3636/4876/652 3632/4868/652 3634/4871/652 +f 3645/4877/652 3646/4896/652 3643/4878/652 +f 3641/4880/659 3647/4884/659 3650/4881/659 +f 3639/4883/653 3648/4889/653 3647/4884/653 +f 3642/4886/655 3650/4881/655 3649/4887/655 +f 3649/4887/652 3650/4881/652 3647/4884/652 +f 3640/4890/658 3649/4887/658 3648/4889/658 +f 3651/4892/654 3654/5418/654 3653/4893/654 +f 3645/4877/655 3653/5419/655 3654/4895/655 +f 3643/4878/653 3651/5420/653 3652/4897/653 +f 3646/4896/659 3654/5421/659 3651/4898/659 +f 3644/4879/658 3652/4894/658 3653/4893/658 +f 3624/4866/655 3872/5422/655 3874/4899/655 +f 3625/4901/653 3873/4903/653 3871/4902/653 +f 3626/4900/652 3874/4899/652 3873/4903/652 +f 3874/4904/655 3872/5422/655 3876/4905/655 +f 3873/4907/653 3877/4909/653 3875/4908/653 +f 3874/4904/658 3878/4906/658 3877/4909/658 +f 3876/4910/655 3880/5423/655 3882/4911/655 +f 3875/4912/653 3877/4909/653 3881/4913/653 +f 3878/4906/652 3882/4911/652 3881/4913/652 +f 3880/4915/659 3879/5424/659 3881/4913/659 +f 3896/4916/653 3898/4939/653 3897/4917/653 +f 3888/4919/653 3890/4930/653 3889/4920/653 +f 3886/4922/658 3890/4930/658 3888/4923/658 +f 3987/4925/653 3991/5049/653 3989/4926/653 +f 3883/4928/659 3887/5425/659 3889/4920/659 +f 3885/4929/652 3889/4920/652 3890/4930/652 +f 3894/4931/658 3898/4939/658 3896/4932/658 +f 3982/4934/655 3990/5426/655 3992/4935/655 +f 3891/4937/659 3895/5427/659 3897/4917/659 +f 3893/4938/652 3897/4917/652 3898/4939/652 +f 3912/4940/653 3914/4963/653 3913/4941/653 +f 3904/4943/653 3906/4954/653 3905/4944/653 +f 3902/4946/658 3906/4954/658 3904/4947/658 +f 4001/4949/653 4005/5069/653 4003/4950/653 +f 3899/4952/659 3903/5428/659 3905/4944/659 +f 3901/4953/652 3905/4944/652 3906/4954/652 +f 3910/4955/658 3914/4963/658 3912/4956/658 +f 3907/4961/659 3911/5429/659 3913/4941/659 +f 3909/4962/652 3913/4941/652 3914/4963/652 +f 3928/4964/653 3930/4984/653 3929/4965/653 +f 3920/4967/653 3922/4976/653 3921/4968/653 +f 3918/4970/658 3922/4976/658 3920/4971/658 +f 3988/4936/656 3987/4925/656 3985/4959/656 +f 3915/4974/659 3919/5430/659 3921/4968/659 +f 3917/4975/652 3921/4968/652 3922/4976/652 +f 3926/4977/658 3930/4984/658 3928/4978/658 +f 3923/4982/659 3927/5431/659 3929/4965/659 +f 3925/4983/652 3929/4965/652 3930/4984/652 +f 3934/4985/658 3938/4994/658 3936/4986/658 +f 4007/4988/653 4012/5070/653 4013/4989/653 +f 3931/4991/659 3935/5432/659 3937/4992/659 +f 3933/4993/652 3937/4992/652 3938/4994/652 +f 3942/4995/658 3946/5003/658 3944/4996/658 +f 3982/4980/655 3986/4973/655 3983/4998/655 +f 3939/5000/659 3943/5433/659 3945/5001/659 +f 3941/5002/652 3945/5001/652 3946/5003/652 +f 3950/5004/658 3954/5012/658 3952/5005/658 +f 3980/4927/654 3989/4926/654 3990/5007/654 +f 3947/5009/659 3951/5434/659 3953/5010/659 +f 3949/5011/652 3953/5010/652 3954/5012/652 +f 3958/5013/658 3962/5020/658 3960/5014/658 +f 3979/5016/653 3984/5024/653 3985/4959/653 +f 3955/5017/659 3959/5435/659 3961/5018/659 +f 3957/5019/652 3961/5018/652 3962/5020/652 +f 3966/5021/658 3970/5028/658 3968/5022/658 +f 3983/4998/658 3986/4973/658 3985/4959/658 +f 3963/5025/659 3967/5436/659 3969/5026/659 +f 3965/5027/652 3969/5026/652 3970/5028/652 +f 3974/5029/658 3978/5036/658 3976/5030/658 +f 3980/4958/659 3982/5437/659 3981/5032/659 +f 3971/5033/659 3975/5438/659 3977/5034/659 +f 3973/5035/652 3977/5034/652 3978/5036/652 +f 3971/5037/655 3973/5035/655 3974/5029/655 +f 3963/5039/655 3965/5027/655 3966/5021/655 +f 3955/5041/655 3957/5019/655 3958/5013/655 +f 3947/5043/655 3949/5011/655 3950/5004/655 +f 3939/5045/655 3941/5002/655 3942/4995/655 +f 3931/5047/655 3933/4993/655 3934/4985/655 +f 3988/4936/652 3992/4935/652 3991/5049/652 +f 3996/5050/655 4004/5439/655 4006/5051/655 +f 4002/5052/656 4001/4949/656 3999/5054/656 +f 4010/5059/655 4014/5440/655 4011/5060/655 +f 3996/5057/655 4000/5056/655 3997/5062/655 +f 3994/4951/654 4003/4950/654 4004/5064/654 +f 3993/5066/653 3998/5067/653 3999/5054/653 +f 3997/5062/658 4000/5056/658 3999/5054/658 +f 3994/5053/659 3996/5441/659 3995/5068/659 +f 4002/5052/652 4006/5051/652 4005/5069/652 +f 4011/5060/658 4014/5440/658 4013/4989/658 +f 4008/4990/659 4010/5442/659 4009/5071/659 +f 4018/5072/655 4022/5443/655 4019/5073/655 +f 4015/5075/653 4020/5078/653 4021/5076/653 +f 4019/5073/658 4022/5443/658 4021/5076/658 +f 4016/5077/659 4018/5444/659 4017/5079/659 +f 3155/5081/658 3164/5445/658 3163/4546/658 +f 3135/4506/659 3141/5370/659 3142/5082/659 +f 4027/5085/658 4030/5446/658 4026/5086/658 +f 4025/5088/659 4029/5447/659 4028/5089/659 +f 4026/5086/653 4030/5446/653 4029/5091/653 +f 4024/5090/655 4028/5089/655 4027/5085/655 +f 4035/5093/658 4038/5118/658 4034/5094/658 +f 4033/5096/659 4037/5099/659 4036/5097/659 +f 4034/5094/653 4038/5118/653 4037/5099/653 +f 4032/5100/655 4036/5448/655 4035/5093/655 +f 4036/5101/670 4042/5449/670 4041/5102/670 +f 4030/5104/671 4040/5450/671 4039/5105/671 +f 4040/5107/654 4041/5111/654 4042/5108/654 +f 4040/5107/658 4044/5121/658 4045/5110/658 +f 4042/5112/659 4046/5115/659 4043/5113/659 +f 4045/5110/652 4044/5121/652 4043/5113/652 +f 4041/5111/658 4045/5110/658 4038/5116/658 +f 4045/5110/660 4046/5115/660 4037/5099/660 +f 4046/5115/659 4042/5112/659 4036/5119/659 +f 4044/5121/658 4040/5107/658 4030/5122/658 +f 4028/5089/661 4043/5113/661 4044/5121/661 +f 4039/5114/659 4043/5113/659 4028/5124/659 +f 4063/5126/658 4064/5451/658 4065/5452/658 +f 4065/5452/658 4066/5453/658 4063/5126/658 +f 4066/5453/658 4067/5127/658 4063/5126/658 +f 4067/5127/658 4068/5454/658 4069/5455/658 +f 4069/5455/658 4070/5456/658 4067/5127/658 +f 4070/5456/658 4071/5128/658 4067/5127/658 +f 4071/5128/658 4072/5457/658 4073/5458/658 +f 4073/5458/658 4074/5459/658 4075/5460/658 +f 4075/5460/658 4076/5461/658 4063/5126/658 +f 4076/5461/658 4077/5462/658 4063/5126/658 +f 4077/5462/658 4078/5463/658 4063/5126/658 +f 4071/5128/658 4073/5458/658 4063/5126/658 +f 4073/5458/658 4075/5460/658 4063/5126/658 +f 4049/5131/659 4048/5464/659 4047/5465/659 +f 4047/5465/659 4062/5466/659 4061/5467/659 +f 4061/5467/659 4060/5468/659 4057/5129/659 +f 4060/5468/659 4059/5469/659 4057/5129/659 +f 4059/5469/659 4058/5470/659 4057/5129/659 +f 4057/5129/659 4056/5471/659 4055/5472/659 +f 4055/5472/659 4054/5473/659 4057/5129/659 +f 4054/5473/659 4053/5130/659 4057/5129/659 +f 4053/5130/659 4052/5474/659 4051/5475/659 +f 4051/5475/659 4050/5476/659 4053/5130/659 +f 4050/5476/659 4049/5131/659 4053/5130/659 +f 4049/5131/659 4047/5465/659 4057/5129/659 +f 4047/5465/659 4061/5467/659 4057/5129/659 +f 4081/5132/653 4082/5477/653 4080/5133/653 +f 4087/5135/663 4088/5478/663 4086/5136/663 +f 4086/5138/654 4085/5144/654 4080/5133/654 +f 4084/5140/652 4083/5142/652 4081/5141/652 +f 4083/5142/659 4086/5479/659 4082/5143/659 +f 4085/5144/658 4084/5140/658 4079/5134/658 +f 4089/5145/653 4090/5480/653 4088/5146/653 +f 4094/5148/654 4092/5153/654 4088/5149/654 +f 4091/5151/652 4093/5152/652 4089/5145/652 +f 4091/5151/655 4092/5153/655 4094/5148/655 +f 4092/5153/662 4091/5151/662 4084/5140/662 +f 4086/5154/654 4088/5481/654 4092/5153/654 +f 4084/5140/652 4091/5151/652 4087/5135/652 +f 4097/5155/655 4098/5482/655 4096/5156/655 +f 4101/5158/659 4102/5162/659 4098/5159/659 +f 4099/5161/653 4100/5163/653 4102/5162/653 +f 4095/5157/658 4096/5156/658 4100/5163/658 +f 4110/5164/654 4109/5483/654 4098/5165/654 +f 4114/5167/653 4110/5164/653 4102/5166/653 +f 4096/5156/656 4105/5170/656 4106/5168/656 +f 4099/5161/657 4104/5177/657 4103/5175/657 +f 4107/5179/653 4111/5180/653 4104/5177/653 +f 4111/5180/654 4112/5185/654 4103/5175/654 +f 4109/5181/655 4113/5182/655 4105/5170/655 +f 4113/5182/652 4114/5167/652 4106/5168/652 +f 4108/5183/652 4107/5179/652 4101/5176/652 +f 4112/5185/655 4108/5484/655 4097/5173/655 +f 4117/5186/658 4118/5485/658 4122/5187/658 +f 4116/5189/655 4118/5486/655 4117/5186/655 +f 4115/5190/659 4119/5193/659 4120/5191/659 +f 4117/5186/654 4121/5188/654 4119/5193/654 +f 4125/5194/658 4126/5487/658 4130/5195/658 +f 4124/5197/655 4126/5488/655 4125/5194/655 +f 4123/5198/659 4127/5201/659 4128/5199/659 +f 4125/5194/654 4129/5196/654 4127/5201/654 +f 4133/5202/659 4134/5489/659 4138/5203/659 +f 4132/5205/655 4134/5490/655 4133/5202/655 +f 4131/5206/658 4135/5209/658 4136/5207/658 +f 4133/5202/652 4137/5204/652 4135/5209/652 +f 4141/5210/659 4142/5491/659 4146/5211/659 +f 4140/5213/655 4142/5492/655 4141/5210/655 +f 4139/5214/658 4143/5217/658 4144/5215/658 +f 4141/5210/652 4145/5212/652 4143/5217/652 +f 4149/5218/658 4150/5493/658 4154/5219/658 +f 4148/5221/653 4150/5494/653 4149/5218/653 +f 4147/5222/659 4151/5225/659 4152/5223/659 +f 4149/5218/652 4153/5220/652 4151/5225/652 +f 4157/5226/658 4158/5495/658 4162/5227/658 +f 4156/5229/653 4158/5496/653 4157/5226/653 +f 4155/5230/659 4159/5233/659 4160/5231/659 +f 4157/5226/652 4161/5228/652 4159/5233/652 +f 4165/5234/659 4166/5497/659 4170/5235/659 +f 4164/5237/654 4166/5498/654 4165/5234/654 +f 4163/5238/658 4167/5241/658 4168/5239/658 +f 4165/5234/655 4169/5236/655 4167/5241/655 +f 4173/5242/659 4174/5499/659 4178/5243/659 +f 4172/5245/654 4174/5500/654 4173/5242/654 +f 4171/5246/658 4175/5249/658 4176/5247/658 +f 4173/5242/655 4177/5244/655 4175/5249/655 +f 4182/5250/658 4186/5501/658 4185/5251/658 +f 4180/5253/652 4182/5502/652 4181/5252/652 +f 4179/5254/659 4183/5257/659 4184/5255/659 +f 4181/5252/655 4185/5251/655 4183/5257/655 +f 4190/5258/658 4194/5503/658 4193/5259/658 +f 4188/5261/652 4190/5504/652 4189/5260/652 +f 4187/5262/659 4191/5265/659 4192/5263/659 +f 4189/5260/655 4193/5259/655 4191/5265/655 +f 4197/5266/659 4198/5505/659 4202/5267/659 +f 4196/5269/652 4198/5506/652 4197/5266/652 +f 4195/5270/658 4199/5273/658 4200/5271/658 +f 4197/5266/653 4201/5268/653 4199/5273/653 +f 4205/5274/659 4206/5507/659 4210/5275/659 +f 4204/5277/652 4206/5508/652 4205/5274/652 +f 4203/5278/658 4207/5281/658 4208/5279/658 +f 4205/5274/653 4209/5276/653 4207/5281/653 +f 4214/5282/658 4218/5509/658 4217/5283/658 +f 4212/5285/654 4214/5510/654 4213/5284/654 +f 4211/5286/659 4215/5289/659 4216/5287/659 +f 4213/5284/653 4217/5283/653 4215/5289/653 +f 4222/5290/658 4226/5511/658 4225/5291/658 +f 4220/5293/654 4222/5512/654 4221/5292/654 +f 4219/5294/659 4223/5297/659 4224/5295/659 +f 4221/5292/653 4225/5291/653 4223/5297/653 +f 4227/5300/658 4228/5513/658 4229/5514/658 +f 4229/5514/658 4230/5515/658 4227/5300/658 +f 4230/5515/658 4231/5516/658 4227/5300/658 +f 4231/5516/658 4232/5517/658 4227/5300/658 +f 4232/5517/658 4233/5298/658 4227/5300/658 +f 4243/5303/658 4244/5518/658 4245/5519/658 +f 4245/5519/658 4246/5520/658 4243/5303/658 +f 4246/5520/658 4247/5521/658 4243/5303/658 +f 4247/5521/658 4248/5522/658 4243/5303/658 +f 4248/5522/658 4249/5301/658 4243/5303/658 +f 4259/5306/658 4260/5523/658 4261/5524/658 +f 4261/5524/658 4262/5525/658 4259/5306/658 +f 4262/5525/658 4263/5526/658 4259/5306/658 +f 4263/5526/658 4264/5527/658 4259/5306/658 +f 4264/5527/658 4265/5304/658 4259/5306/658 +f 3615/4859/659 3616/5528/659 3622/5307/659 +s 1 +f 3084/5529/661 3069/5530/652 3076/5531/661 +f 3082/5532/670 3075/5533/655 3074/5534/670 +f 3080/5535/671 3073/5536/654 3072/5537/671 +f 3077/5538/660 3071/5539/653 3070/5540/660 +f 3083/5541/655 3076/5531/661 3075/5533/655 +f 3081/5542/654 3074/5534/670 3073/5543/654 +f 3079/5544/653 3072/5537/671 3071/5539/653 +f 3078/5545/652 3070/5540/660 3069/5530/652 +f 3099/5546/661 3114/5547/673 3098/5548/673 +f 3092/5549/674 3107/5550/671 3091/5551/671 +f 3100/5552/675 3115/5553/661 3099/5546/661 +f 3093/5554/654 3108/5555/674 3092/5549/674 +f 3086/5556/676 3101/5557/652 3085/5558/652 +f 3085/5558/652 3116/5559/675 3100/5552/675 +f 3094/5560/677 3109/5561/654 3093/5562/654 +f 3087/5563/660 3102/5564/676 3086/5556/676 +f 3095/5565/670 3110/5566/677 3094/5560/677 +f 3088/5567/678 3103/5568/660 3087/5563/660 +f 3096/5569/679 3111/5570/670 3095/5565/670 +f 3089/5571/653 3104/5572/678 3088/5567/678 +f 3097/5573/655 3112/5574/679 3096/5569/679 +f 3090/5575/680 3105/5576/653 3089/5571/653 +f 3098/5548/673 3113/5577/655 3097/5573/655 +f 3091/5551/671 3106/5578/680 3090/5575/680 +f 3181/5579/655 3214/5580/681 3182/5581/661 +f 3194/5582/671 3227/5583/682 3195/5584/654 +f 3169/5585/660 3207/5586/683 3175/5587/653 +f 3195/5584/654 3228/5588/684 3196/5589/670 +f 3184/5590/652 3209/5591/685 3177/5592/660 +f 3207/5586/683 3170/5593/671 3175/5587/653 +f 3196/5589/670 3229/5594/686 3197/5595/655 +f 3214/5580/681 3184/5596/652 3182/5581/661 +f 3170/5593/671 3203/5597/682 3171/5598/654 +f 3197/5595/655 3230/5599/681 3198/5600/661 +f 3185/5601/660 3223/5602/683 3191/5603/653 +f 3171/5598/654 3204/5604/684 3172/5605/670 +f 3200/5606/652 3225/5607/685 3193/5608/660 +f 3223/5602/683 3186/5609/671 3191/5603/653 +f 3172/5605/670 3205/5610/686 3173/5611/655 +f 3230/5599/681 3200/5612/652 3198/5600/661 +f 3186/5609/671 3219/5613/682 3187/5614/654 +f 3173/5611/655 3206/5615/681 3174/5616/661 +f 3187/5614/654 3220/5617/684 3188/5618/670 +f 3176/5619/652 3201/5620/685 3169/5585/660 +f 3188/5618/670 3221/5621/686 3189/5622/655 +f 3206/5615/681 3176/5623/652 3174/5616/661 +f 3189/5622/655 3222/5624/681 3190/5625/661 +f 3177/5592/660 3215/5626/683 3183/5627/653 +f 3192/5628/652 3217/5629/685 3185/5601/660 +f 3215/5626/683 3178/5630/671 3183/5627/653 +f 3222/5624/681 3192/5631/652 3190/5625/661 +f 3178/5630/671 3211/5632/682 3179/5633/654 +f 3193/5608/660 3231/5634/683 3199/5635/653 +f 3179/5633/654 3212/5636/684 3180/5637/670 +f 3231/5634/683 3194/5582/671 3199/5635/653 +f 3180/5637/670 3213/5638/686 3181/5579/655 +f 3212/5639/684 3244/5640/687 3213/5641/686 +f 3202/5642/688 3235/5643/689 3203/5597/682 +f 3215/5644/683 3241/5645/690 3210/5646/688 +f 3214/5647/681 3244/5640/687 3245/5648/691 +f 3204/5649/684 3235/5643/689 3236/5650/692 +f 3211/5632/682 3241/5645/690 3242/5651/689 +f 3201/5652/685 3239/5653/693 3207/5654/683 +f 3204/5649/684 3237/5655/687 3205/5656/686 +f 3212/5639/684 3242/5651/689 3243/5657/692 +f 3207/5654/683 3234/5658/690 3202/5642/688 +f 3209/5659/685 3246/5660/693 3215/5644/683 +f 3205/5656/686 3238/5661/691 3206/5662/681 +f 3240/5663/694 3260/5664/695 3246/5660/693 +f 3235/5643/689 3250/5665/696 3236/5650/692 +f 3244/5640/687 3257/5666/696 3258/5667/697 +f 3233/5668/694 3253/5669/695 3239/5653/693 +f 3246/5660/693 3255/5670/698 3241/5645/690 +f 3237/5655/687 3250/5665/696 3251/5671/697 +f 3245/5648/691 3258/5667/697 3259/5672/699 +f 3239/5653/693 3248/5673/698 3234/5658/690 +f 3241/5645/690 3256/5674/700 3242/5651/689 +f 3238/5661/691 3251/5671/697 3252/5675/699 +f 3235/5643/689 3248/5673/698 3249/5676/700 +f 3242/5651/689 3257/5666/696 3243/5657/692 +f 3230/5677/681 3272/5678/687 3273/5679/691 +f 3220/5680/684 3263/5681/689 3264/5682/692 +f 3226/5683/688 3270/5684/689 3227/5583/682 +f 3223/5685/683 3261/5686/694 3267/5687/693 +f 3221/5688/686 3264/5682/692 3265/5689/687 +f 3227/5583/682 3271/5690/692 3228/5691/684 +f 3223/5685/683 3262/5692/690 3218/5693/688 +f 3231/5694/683 3268/5695/694 3274/5696/693 +f 3221/5688/686 3266/5697/691 3222/5698/681 +f 3229/5699/686 3271/5690/692 3272/5678/687 +f 3218/5693/688 3263/5681/689 3219/5613/682 +f 3231/5694/683 3269/5700/690 3226/5683/688 +f 3266/5697/691 3279/5701/697 3280/5702/699 +f 3263/5681/689 3276/5703/698 3277/5704/700 +f 3270/5684/689 3285/5705/696 3271/5690/692 +f 3268/5695/694 3288/5706/695 3274/5696/693 +f 3263/5681/689 3278/5707/696 3264/5682/692 +f 3271/5690/692 3286/5708/697 3272/5678/687 +f 3261/5686/694 3281/5709/695 3267/5687/693 +f 3274/5696/693 3283/5710/698 3269/5700/690 +f 3264/5682/692 3279/5701/697 3265/5689/687 +f 3272/5678/687 3287/5711/699 3273/5679/691 +f 3262/5692/690 3281/5709/695 3276/5703/698 +f 3270/5684/689 3283/5710/698 3284/5712/700 +f 3225/5713/685 3232/5714/656 3268/5695/694 +f 3268/5695/694 3232/5714/656 3282/5715/701 +f 3230/5677/681 3273/5679/691 3232/5716/656 +f 3273/5679/691 3287/5711/699 3232/5716/656 +f 3217/5717/685 3224/5718/656 3261/5686/694 +f 3261/5686/694 3224/5718/656 3275/5719/701 +f 3222/5698/681 3266/5697/691 3224/5720/656 +f 3266/5697/691 3280/5702/699 3224/5720/656 +f 3209/5659/685 3216/5721/656 3240/5663/694 +f 3240/5663/694 3216/5721/656 3254/5722/701 +f 3214/5647/681 3245/5648/691 3216/5723/656 +f 3245/5648/691 3259/5672/699 3216/5723/656 +f 3201/5652/685 3208/5724/656 3233/5668/694 +f 3233/5668/694 3208/5724/656 3247/5725/701 +f 3206/5662/681 3238/5661/691 3208/5726/656 +f 3238/5661/691 3252/5675/699 3208/5726/656 +f 3258/5727/697 3305/5728/702 3259/5729/699 +f 3275/5730/701 3313/5731/653 3281/5732/695 +f 3282/5733/701 3292/5734/703 3314/5735/704 +f 3252/5736/699 3289/5737/658 3208/5738/656 +f 3281/5732/695 3308/5739/663 3276/5740/698 +f 3247/5741/701 3299/5742/653 3253/5743/695 +f 3277/5704/700 3308/5739/663 3309/5744/659 +f 3287/5745/699 3292/5746/703 3232/5747/656 +f 3253/5743/695 3294/5748/663 3248/5749/698 +f 3277/5704/700 3310/5750/665 3278/5751/696 +f 3248/5749/698 3295/5752/659 3249/5676/700 +f 3278/5751/696 3311/5753/655 3279/5754/697 +f 3275/5730/701 3291/5755/658 3307/5756/664 +f 3249/5676/700 3296/5757/665 3250/5758/696 +f 3280/5759/699 3311/5753/655 3312/5760/662 +f 3250/5758/696 3297/5761/655 3251/5762/697 +f 3282/5733/701 3320/5763/705 3288/5764/695 +f 3280/5759/699 3291/5765/658 3224/5766/656 +f 3252/5736/699 3297/5761/655 3298/5767/662 +f 3288/5764/695 3315/5768/706 3283/5769/698 +f 3254/5770/701 3306/5771/705 3260/5772/695 +f 3284/5712/700 3315/5768/706 3316/5773/707 +f 3216/5774/656 3300/5775/704 3254/5770/701 +f 3260/5772/695 3301/5776/706 3255/5777/698 +f 3284/5712/700 3317/5778/708 3285/5779/696 +f 3255/5777/698 3302/5780/707 3256/5674/700 +f 3285/5779/696 3318/5781/670 3286/5782/697 +f 3259/5729/699 3290/5783/703 3216/5784/656 +f 3256/5674/700 3303/5785/708 3257/5786/696 +f 3287/5745/699 3318/5781/670 3319/5787/702 +f 3257/5786/696 3304/5788/670 3258/5727/697 +f 3208/5789/656 3293/5790/664 3247/5741/701 +f 3290/5791/703 3327/5792/709 3321/5793/710 +f 3320/5763/705 3330/5794/711 3315/5795/706 +f 3302/5796/707 3326/5797/712 3303/5798/708 +f 3306/5771/705 3323/5799/713 3328/5800/660 +f 3316/5801/707 3330/5794/711 3331/5802/714 +f 3306/5771/705 3324/5803/711 3301/5804/706 +f 3314/5805/704 3322/5806/710 3329/5807/713 +f 3316/5801/707 3332/5808/712 3317/5809/708 +f 3290/5810/703 3323/5799/713 3300/5811/704 +f 3314/5805/704 3334/5812/660 3320/5763/705 +f 3292/5813/703 3333/5814/709 3322/5815/710 +f 3301/5804/706 3325/5816/714 3302/5796/707 +f 3325/5816/714 3338/5817/715 3339/5818/716 +f 3333/5814/709 3336/5819/717 3322/5815/710 +f 3331/5802/714 3344/5820/715 3345/5821/716 +f 3326/5797/712 3339/5818/716 3340/5822/718 +f 3323/5799/713 3335/5823/717 3337/5824/719 +f 3323/5799/713 3342/5825/720 3328/5800/660 +f 3332/5808/712 3345/5821/716 3346/5826/718 +f 3329/5807/713 3348/5827/720 3334/5812/660 +f 3327/5792/709 3335/5828/717 3321/5793/710 +f 3324/5803/711 3342/5825/720 3338/5817/715 +f 3322/5806/710 3343/5829/719 3329/5807/713 +f 3334/5812/660 3344/5820/715 3330/5794/711 +f 3305/5830/702 3304/5831/670 3327/5792/709 +f 3327/5792/709 3304/5831/670 3341/5832/721 +f 3303/5798/708 3326/5797/712 3304/5831/670 +f 3326/5797/712 3340/5822/718 3304/5831/670 +f 3317/5809/708 3332/5808/712 3318/5833/670 +f 3332/5808/712 3346/5826/718 3318/5833/670 +f 3319/5834/702 3318/5833/670 3333/5814/709 +f 3333/5814/709 3318/5833/670 3347/5835/721 +f 3343/5836/719 3364/5837/652 3348/5827/720 +f 3304/5838/670 3357/5839/657 3341/5840/721 +f 3348/5827/720 3360/5841/672 3344/5842/715 +f 3345/5843/716 3360/5841/672 3361/5844/659 +f 3340/5845/718 3349/5846/654 3304/5838/670 +f 3345/5843/716 3362/5847/689 3346/5848/718 +f 3337/5849/719 3358/5850/652 3342/5825/720 +f 3336/5851/717 3359/5852/656 3343/5836/719 +f 3342/5825/720 3354/5853/672 3338/5854/715 +f 3346/5848/718 3350/5855/654 3318/5856/670 +f 3347/5857/721 3352/5858/658 3336/5859/717 +f 3338/5854/715 3355/5860/659 3339/5861/716 +f 3335/5862/717 3353/5863/656 3337/5849/719 +f 3339/5861/716 3356/5864/689 3340/5845/718 +f 3318/5856/670 3363/5865/657 3347/5857/721 +f 3341/5840/721 3351/5866/658 3335/5867/717 +f 3659/5868/722 3665/5869/664 3658/5870/664 +f 3657/5871/653 3663/5872/663 3656/5873/663 +f 3661/5874/665 3667/5875/723 3660/5876/723 +f 3658/5870/664 3664/5877/653 3657/5871/653 +f 3656/5873/663 3662/5878/659 3655/5879/659 +f 3655/5880/659 3668/5881/665 3661/5874/665 +f 3673/5882/722 3677/5883/664 3672/5884/664 +f 3671/5885/653 3675/5886/663 3670/5887/663 +f 3672/5884/664 3676/5888/653 3671/5885/653 +f 3670/5887/663 3674/5889/724 3669/5890/724 +f 3683/5891/722 3687/5892/664 3682/5893/664 +f 3681/5894/653 3685/5895/663 3680/5896/663 +f 3682/5893/664 3686/5897/653 3681/5894/653 +f 3680/5896/663 3684/5898/724 3679/5899/724 +f 3693/5900/722 3697/5901/664 3692/5902/664 +f 3691/5903/653 3695/5904/663 3690/5905/663 +f 3692/5902/664 3696/5906/653 3691/5903/653 +f 3690/5905/663 3694/5907/724 3689/5908/724 +f 3703/5909/722 3707/5910/664 3702/5911/664 +f 3701/5912/653 3705/5913/663 3700/5914/663 +f 3702/5911/664 3706/5915/653 3701/5912/653 +f 3700/5914/663 3704/5916/724 3699/5917/724 +f 3715/5918/725 3721/5919/662 3714/5920/662 +f 3713/5921/658 3719/5922/664 3712/5923/664 +f 3711/5924/653 3717/5925/663 3710/5926/663 +f 3714/5920/662 3720/5927/658 3713/5921/658 +f 3712/5923/664 3718/5928/653 3711/5924/653 +f 3710/5926/663 3716/5929/724 3709/5930/724 +f 3728/5931/655 3734/5932/662 3727/5933/662 +f 3725/5934/726 3731/5935/663 3724/5936/663 +f 3729/5937/665 3735/5938/655 3728/5931/655 +f 3727/5933/662 3733/5939/727 3726/5940/727 +f 3724/5936/663 3730/5941/659 3723/5942/659 +f 3723/5943/659 3736/5944/665 3729/5937/665 +f 3740/5945/655 3744/5946/662 3739/5947/662 +f 3741/5948/665 3745/5949/655 3740/5945/655 +f 3739/5947/662 3743/5950/727 3738/5951/727 +f 3737/5952/728 3746/5953/665 3741/5948/665 +f 3750/5954/655 3754/5955/662 3749/5956/662 +f 3751/5957/665 3755/5958/655 3750/5954/655 +f 3749/5956/662 3753/5959/727 3748/5960/727 +f 3747/5961/728 3756/5962/665 3751/5957/665 +f 3760/5963/655 3764/5964/662 3759/5965/662 +f 3761/5966/665 3765/5967/655 3760/5963/655 +f 3759/5965/662 3763/5968/727 3758/5969/727 +f 3757/5970/728 3766/5971/665 3761/5966/665 +f 3770/5972/655 3774/5973/662 3769/5974/662 +f 3771/5975/665 3775/5976/655 3770/5972/655 +f 3769/5974/662 3773/5977/727 3768/5978/727 +f 3767/5979/728 3776/5980/665 3771/5975/665 +f 3782/5981/655 3788/5982/662 3781/5983/662 +f 3780/5984/658 3786/5985/664 3779/5986/664 +f 3783/5987/665 3789/5988/655 3782/5981/655 +f 3781/5983/662 3787/5989/658 3780/5984/658 +f 3779/5986/664 3785/5990/729 3778/5991/729 +f 3777/5992/728 3790/5993/665 3783/5987/665 +f 3793/5994/726 3797/5995/663 3792/5996/663 +f 3795/5997/665 3799/5998/723 3794/5999/723 +f 3792/5996/663 3796/6000/659 3791/6001/659 +f 3791/6002/659 3800/6003/665 3795/5997/665 +f 3805/6004/725 3809/6005/662 3804/6006/662 +f 3803/6007/658 3807/6008/664 3802/6009/664 +f 3804/6006/662 3808/6010/658 3803/6007/658 +f 3802/6009/664 3806/6011/729 3801/6012/729 +f 3813/6013/726 3817/6014/663 3812/6015/663 +f 3815/6016/665 3819/6017/723 3814/6018/723 +f 3812/6015/663 3816/6019/659 3811/6020/659 +f 3811/6021/659 3820/6022/665 3815/6016/665 +f 3825/6023/725 3829/6024/662 3824/6025/662 +f 3823/6026/658 3827/6027/664 3822/6028/664 +f 3824/6025/662 3828/6029/658 3823/6026/658 +f 3822/6028/664 3826/6030/729 3821/6031/729 +f 3833/6032/726 3837/6033/663 3832/6034/663 +f 3835/6035/665 3839/6036/723 3834/6037/723 +f 3832/6034/663 3836/6038/659 3831/6039/659 +f 3831/6040/659 3840/6041/665 3835/6035/665 +f 3845/6042/725 3849/6043/662 3844/6044/662 +f 3843/6045/658 3847/6046/664 3842/6047/664 +f 3844/6044/662 3848/6048/658 3843/6045/658 +f 3842/6047/664 3846/6049/729 3841/6050/729 +f 3853/6051/726 3857/6052/663 3852/6053/663 +f 3855/6054/665 3859/6055/723 3854/6056/723 +f 3852/6053/663 3856/6057/659 3851/6058/659 +f 3851/6059/659 3860/6060/665 3855/6054/665 +f 3865/6061/725 3869/6062/662 3864/6063/662 +f 3863/6064/658 3867/6065/664 3862/6066/664 +f 3864/6063/662 3868/6067/658 3863/6064/658 +f 3862/6066/664 3866/6068/729 3861/6069/729 +f 4061/6070/661 4076/6071/673 4060/6072/673 +f 4054/6073/674 4069/6074/671 4053/6075/671 +f 4062/6076/675 4077/6077/661 4061/6070/661 +f 4055/6078/654 4070/6079/674 4054/6073/674 +f 4048/6080/676 4063/6081/652 4047/6082/652 +f 4047/6082/652 4078/6083/675 4062/6076/675 +f 4056/6084/677 4071/6085/654 4055/6086/654 +f 4049/6087/660 4064/6088/676 4048/6080/676 +f 4057/6089/670 4072/6090/677 4056/6084/677 +f 4050/6091/678 4065/6092/660 4049/6087/660 +f 4058/6093/679 4073/6094/670 4057/6089/670 +f 4051/6095/653 4066/6096/678 4050/6091/678 +f 4059/6097/655 4074/6098/679 4058/6093/679 +f 4052/6099/680 4067/6100/653 4051/6095/653 +f 4060/6072/673 4075/6101/655 4059/6097/655 +f 4053/6075/671 4068/6102/680 4052/6099/680 +f 4242/6103/661 4227/6104/652 4234/6105/661 +f 4240/6106/670 4233/6107/655 4232/6108/670 +f 4238/6109/671 4231/6110/654 4230/6111/671 +f 4235/6112/660 4229/6113/653 4228/6114/660 +f 4241/6115/655 4234/6105/661 4233/6107/655 +f 4239/6116/654 4232/6108/670 4231/6117/654 +f 4237/6118/653 4230/6111/671 4229/6113/653 +f 4236/6119/652 4228/6114/660 4227/6104/652 +f 4258/6120/661 4243/6121/652 4250/6122/661 +f 4256/6123/670 4249/6124/655 4248/6125/670 +f 4254/6126/671 4247/6127/654 4246/6128/671 +f 4251/6129/660 4245/6130/653 4244/6131/660 +f 4257/6132/655 4250/6122/661 4249/6124/655 +f 4255/6133/654 4248/6125/670 4247/6134/654 +f 4253/6135/653 4246/6128/671 4245/6130/653 +f 4252/6136/652 4244/6131/660 4243/6121/652 +f 4274/6137/661 4259/6138/652 4266/6139/661 +f 4272/6140/670 4265/6141/655 4264/6142/670 +f 4270/6143/671 4263/6144/654 4262/6145/671 +f 4267/6146/660 4261/6147/653 4260/6148/660 +f 4273/6149/655 4266/6139/661 4265/6141/655 +f 4271/6150/654 4264/6142/670 4263/6151/654 +f 4269/6152/653 4262/6145/671 4261/6147/653 +f 4268/6153/652 4260/6148/660 4259/6138/652 +f 4320/6154/685 4287/6155/653 4288/6156/660 +f 4333/6157/682 4300/6158/670 4301/6159/654 +f 4313/6160/686 4275/6161/661 4281/6162/655 +f 4334/6163/688 4301/6159/654 4302/6164/671 +f 4315/6165/681 4290/6166/652 4283/6167/661 +f 4276/6168/670 4313/6160/686 4281/6162/655 +f 4335/6169/683 4302/6164/671 4303/6170/653 +f 4290/6171/652 4320/6154/685 4288/6156/660 +f 4309/6172/682 4276/6168/670 4277/6173/654 +f 4336/6174/685 4303/6170/653 4304/6175/660 +f 4329/6176/686 4291/6177/661 4297/6178/655 +f 4310/6179/688 4277/6173/654 4278/6180/671 +f 4331/6181/681 4306/6182/652 4299/6183/661 +f 4292/6184/670 4329/6176/686 4297/6178/655 +f 4311/6185/683 4278/6180/671 4279/6186/653 +f 4306/6187/652 4336/6174/685 4304/6175/660 +f 4325/6188/682 4292/6184/670 4293/6189/654 +f 4312/6190/685 4279/6186/653 4280/6191/660 +f 4326/6192/688 4293/6189/654 4294/6193/671 +f 4307/6194/681 4282/6195/652 4275/6161/661 +f 4327/6196/683 4294/6193/671 4295/6197/653 +f 4282/6198/652 4312/6190/685 4280/6191/660 +f 4328/6199/685 4295/6197/653 4296/6200/660 +f 4321/6201/686 4283/6167/661 4289/6202/655 +f 4323/6203/681 4298/6204/652 4291/6177/661 +f 4284/6205/670 4321/6201/686 4289/6202/655 +f 4298/6206/652 4328/6199/685 4296/6200/660 +f 4317/6207/682 4284/6205/670 4285/6208/654 +f 4337/6209/686 4299/6183/661 4305/6210/655 +f 4318/6211/688 4285/6208/654 4286/6212/671 +f 4300/6158/670 4337/6209/686 4305/6210/655 +f 4319/6213/683 4286/6212/671 4287/6155/653 +f 4319/6214/683 4349/6215/690 4318/6216/688 +f 4341/6217/689 4308/6218/684 4309/6172/682 +f 4316/6219/684 4352/6220/687 4321/6221/686 +f 4351/6222/694 4319/6214/683 4320/6223/685 +f 4310/6224/688 4341/6217/689 4309/6172/682 +f 4348/6225/689 4316/6219/684 4317/6207/682 +f 4313/6226/686 4339/6227/691 4307/6228/681 +f 4311/6229/683 4342/6230/690 4310/6224/688 +f 4318/6216/688 4348/6225/689 4317/6207/682 +f 4340/6231/692 4313/6226/686 4308/6218/684 +f 4321/6221/686 4346/6232/691 4315/6233/681 +f 4344/6234/694 4311/6229/683 4312/6235/685 +f 4366/6236/697 4346/6232/691 4352/6220/687 +f 4356/6237/698 4341/6217/689 4342/6230/690 +f 4350/6238/693 4363/6239/698 4349/6215/690 +f 4359/6240/697 4339/6227/691 4345/6241/687 +f 4361/6242/696 4352/6220/687 4347/6243/692 +f 4343/6244/693 4356/6237/698 4342/6230/690 +f 4351/6222/694 4364/6245/695 4350/6238/693 +f 4354/6246/696 4345/6241/687 4340/6231/692 +f 4348/6225/689 4361/6242/696 4347/6243/692 +f 4344/6234/694 4357/6247/695 4343/6244/693 +f 4341/6217/689 4354/6246/696 4340/6231/692 +f 4363/6239/698 4348/6225/689 4349/6215/690 +f 4379/6248/694 4335/6249/683 4336/6250/685 +f 4370/6251/690 4325/6188/682 4326/6252/688 +f 4376/6253/689 4332/6254/684 4333/6157/682 +f 4329/6255/686 4367/6256/691 4323/6257/681 +f 4327/6258/683 4370/6251/690 4326/6252/688 +f 4377/6259/690 4333/6157/682 4334/6260/688 +f 4368/6261/692 4329/6255/686 4324/6262/684 +f 4337/6263/686 4374/6264/691 4331/6265/681 +f 4372/6266/694 4327/6258/683 4328/6267/685 +f 4335/6249/683 4377/6259/690 4334/6260/688 +f 4369/6268/689 4324/6262/684 4325/6188/682 +f 4332/6254/684 4380/6269/687 4337/6263/686 +f 4372/6266/694 4385/6270/695 4371/6271/693 +f 4369/6268/689 4382/6272/696 4368/6261/692 +f 4391/6273/698 4376/6253/689 4377/6259/690 +f 4394/6274/697 4374/6264/691 4380/6269/687 +f 4384/6275/698 4369/6268/689 4370/6251/690 +f 4378/6276/693 4391/6273/698 4377/6259/690 +f 4387/6277/697 4367/6256/691 4373/6278/687 +f 4389/6279/696 4380/6269/687 4375/6280/692 +f 4371/6271/693 4384/6275/698 4370/6251/690 +f 4379/6248/694 4392/6281/695 4378/6276/693 +f 4382/6272/696 4373/6278/687 4368/6261/692 +f 4376/6253/689 4389/6279/696 4375/6280/692 +f 4331/6265/681 4374/6264/691 4338/6282/656 +f 4374/6264/691 4388/6283/699 4338/6282/656 +f 4336/6250/685 4338/6284/656 4379/6248/694 +f 4379/6248/694 4338/6284/656 4393/6285/701 +f 4323/6257/681 4367/6256/691 4330/6286/656 +f 4367/6256/691 4381/6287/699 4330/6286/656 +f 4328/6267/685 4330/6288/656 4372/6266/694 +f 4372/6266/694 4330/6288/656 4386/6289/701 +f 4315/6233/681 4346/6232/691 4322/6290/656 +f 4346/6232/691 4360/6291/699 4322/6290/656 +f 4320/6223/685 4322/6292/656 4351/6222/694 +f 4351/6222/694 4322/6292/656 4365/6293/701 +f 4307/6228/681 4339/6227/691 4314/6294/656 +f 4339/6227/691 4353/6295/699 4314/6294/656 +f 4312/6235/685 4314/6296/656 4344/6234/694 +f 4344/6234/694 4314/6296/656 4358/6297/701 +f 4411/6298/730 4364/6299/695 4365/6300/701 +f 4419/6301/655 4381/6302/699 4387/6303/697 +f 4388/6304/699 4398/6305/731 4338/6306/656 +f 4395/6307/658 4358/6308/701 4314/6309/656 +f 4414/6310/665 4387/6303/697 4382/6311/696 +f 4405/6312/655 4353/6313/699 4359/6314/697 +f 4383/6315/700 4414/6310/665 4382/6311/696 +f 4398/6316/731 4393/6317/701 4338/6318/656 +f 4400/6319/665 4359/6314/697 4354/6320/696 +f 4416/6321/663 4383/6315/700 4384/6322/698 +f 4401/6323/659 4354/6320/696 4355/6324/700 +f 4417/6325/653 4384/6322/698 4385/6326/695 +f 4381/6302/699 4397/6327/658 4330/6328/656 +f 4402/6329/663 4355/6324/700 4356/6330/698 +f 4386/6331/701 4417/6325/653 4385/6326/695 +f 4403/6332/653 4356/6330/698 4357/6333/695 +f 4426/6334/732 4388/6304/699 4394/6335/697 +f 4397/6336/658 4386/6331/701 4330/6337/656 +f 4404/6338/664 4357/6333/695 4358/6308/701 +f 4421/6339/733 4394/6335/697 4389/6340/696 +f 4412/6341/732 4360/6342/699 4366/6343/697 +f 4390/6344/700 4421/6339/733 4389/6340/696 +f 4406/6345/734 4322/6346/656 4360/6342/699 +f 4407/6347/733 4366/6343/697 4361/6348/696 +f 4423/6349/735 4390/6344/700 4391/6350/698 +f 4408/6351/736 4361/6348/696 4362/6352/700 +f 4424/6353/671 4391/6350/698 4392/6354/695 +f 4396/6355/731 4365/6300/701 4322/6356/656 +f 4409/6357/735 4362/6352/700 4363/6358/698 +f 4393/6317/701 4424/6353/671 4392/6354/695 +f 4410/6359/671 4363/6358/698 4364/6299/695 +f 4399/6360/662 4314/6361/656 4353/6313/699 +f 4396/6362/731 4433/6363/737 4411/6364/730 +f 4436/6365/738 4426/6334/732 4421/6366/733 +f 4432/6367/739 4408/6368/736 4409/6369/735 +f 4412/6341/732 4429/6370/740 4406/6371/734 +f 4422/6372/736 4436/6365/738 4421/6366/733 +f 4430/6373/738 4412/6341/732 4407/6374/733 +f 4420/6375/734 4428/6376/741 4398/6377/731 +f 4438/6378/739 4422/6372/736 4423/6379/735 +f 4429/6370/740 4396/6380/731 4406/6371/734 +f 4440/6381/661 4420/6375/734 4426/6334/732 +f 4398/6382/731 4439/6383/737 4425/6384/730 +f 4431/6385/742 4407/6374/733 4408/6368/736 +f 4445/6386/743 4430/6373/738 4431/6385/742 +f 4442/6387/744 4439/6383/737 4428/6388/741 +f 4437/6389/742 4450/6390/745 4436/6365/738 +f 4432/6367/739 4445/6386/743 4431/6385/742 +f 4429/6370/740 4441/6391/744 4427/6392/741 +f 4448/6393/746 4429/6370/740 4434/6394/661 +f 4452/6395/747 4437/6389/742 4438/6378/739 +f 4454/6396/746 4435/6397/740 4440/6381/661 +f 4441/6398/744 4433/6363/737 4427/6399/741 +f 4430/6373/738 4448/6393/746 4434/6394/661 +f 4449/6400/748 4428/6376/741 4435/6397/740 +f 4450/6390/745 4440/6381/661 4436/6365/738 +f 4411/6364/730 4433/6363/737 4410/6401/671 +f 4433/6363/737 4447/6402/749 4410/6401/671 +f 4409/6369/735 4410/6401/671 4432/6367/739 +f 4432/6367/739 4410/6401/671 4446/6403/747 +f 4423/6379/735 4424/6404/671 4438/6378/739 +f 4438/6378/739 4424/6404/671 4452/6395/747 +f 4425/6384/730 4439/6383/737 4424/6404/671 +f 4439/6383/737 4453/6405/749 4424/6404/671 +f 4470/6406/652 4449/6407/748 4454/6396/746 +f 4463/6408/657 4410/6409/671 4447/6410/749 +f 4466/6411/672 4454/6396/746 4450/6412/745 +f 4451/6413/743 4466/6411/672 4450/6412/745 +f 4455/6414/654 4446/6415/747 4410/6409/671 +f 4468/6416/689 4451/6413/743 4452/6417/747 +f 4464/6418/652 4443/6419/748 4448/6393/746 +f 4465/6420/656 4442/6421/744 4449/6407/748 +f 4460/6422/672 4448/6393/746 4444/6423/745 +f 4456/6424/654 4452/6417/747 4424/6425/671 +f 4458/6426/658 4453/6427/749 4442/6428/744 +f 4461/6429/659 4444/6423/745 4445/6430/743 +f 4459/6431/656 4441/6432/744 4443/6419/748 +f 4462/6433/689 4445/6430/743 4446/6415/747 +f 4469/6434/657 4424/6425/671 4453/6427/749 +f 4457/6435/658 4447/6410/749 4441/6436/744 +f 3084/5529/661 3078/5545/652 3069/5530/652 +f 3082/5532/670 3083/5541/655 3075/5533/655 +f 3080/5535/671 3081/6437/654 3073/5536/654 +f 3077/5538/660 3079/5544/653 3071/5539/653 +f 3083/5541/655 3084/5529/661 3076/5531/661 +f 3081/5542/654 3082/5532/670 3074/5534/670 +f 3079/5544/653 3080/5535/671 3072/5537/671 +f 3078/5545/652 3077/5538/660 3070/5540/660 +f 3099/5546/661 3115/5553/661 3114/5547/673 +f 3092/5549/674 3108/5555/674 3107/5550/671 +f 3100/5552/675 3116/5559/675 3115/5553/661 +f 3093/5554/654 3109/6438/654 3108/5555/674 +f 3086/5556/676 3102/5564/676 3101/5557/652 +f 3085/5558/652 3101/5557/652 3116/5559/675 +f 3094/5560/677 3110/5566/677 3109/5561/654 +f 3087/5563/660 3103/5568/660 3102/5564/676 +f 3095/5565/670 3111/5570/670 3110/5566/677 +f 3088/5567/678 3104/5572/678 3103/5568/660 +f 3096/5569/679 3112/5574/679 3111/5570/670 +f 3089/5571/653 3105/5576/653 3104/5572/678 +f 3097/5573/655 3113/5577/655 3112/5574/679 +f 3090/5575/680 3106/5578/680 3105/5576/653 +f 3098/5548/673 3114/5547/673 3113/5577/655 +f 3091/5551/671 3107/5550/671 3106/5578/680 +f 3181/5579/655 3213/5638/686 3214/5580/681 +f 3194/5582/671 3226/6439/688 3227/5583/682 +f 3169/5585/660 3201/5620/685 3207/5586/683 +f 3195/5584/654 3227/5583/682 3228/5588/684 +f 3184/5590/652 3216/6440/656 3209/5591/685 +f 3207/5586/683 3202/6441/688 3170/5593/671 +f 3196/5589/670 3228/5588/684 3229/5594/686 +f 3214/5580/681 3216/6442/656 3184/5596/652 +f 3170/5593/671 3202/6441/688 3203/5597/682 +f 3197/5595/655 3229/5594/686 3230/5599/681 +f 3185/5601/660 3217/5629/685 3223/5602/683 +f 3171/5598/654 3203/5597/682 3204/5604/684 +f 3200/5606/652 3232/6443/656 3225/5607/685 +f 3223/5602/683 3218/6444/688 3186/5609/671 +f 3172/5605/670 3204/5604/684 3205/5610/686 +f 3230/5599/681 3232/6445/656 3200/5612/652 +f 3186/5609/671 3218/6444/688 3219/5613/682 +f 3173/5611/655 3205/5610/686 3206/5615/681 +f 3187/5614/654 3219/5613/682 3220/5617/684 +f 3176/5619/652 3208/6446/656 3201/5620/685 +f 3188/5618/670 3220/5617/684 3221/5621/686 +f 3206/5615/681 3208/6447/656 3176/5623/652 +f 3189/5622/655 3221/5621/686 3222/5624/681 +f 3177/5592/660 3209/5591/685 3215/5626/683 +f 3192/5628/652 3224/6448/656 3217/5629/685 +f 3215/5626/683 3210/6449/688 3178/5630/671 +f 3222/5624/681 3224/6450/656 3192/5631/652 +f 3178/5630/671 3210/6449/688 3211/5632/682 +f 3193/5608/660 3225/5607/685 3231/5634/683 +f 3179/5633/654 3211/5632/682 3212/5636/684 +f 3231/5634/683 3226/6439/688 3194/5582/671 +f 3180/5637/670 3212/5636/684 3213/5638/686 +f 3212/5639/684 3243/5657/692 3244/5640/687 +f 3202/5642/688 3234/5658/690 3235/5643/689 +f 3215/5644/683 3246/5660/693 3241/5645/690 +f 3214/5647/681 3213/5641/686 3244/5640/687 +f 3204/5649/684 3203/5597/682 3235/5643/689 +f 3211/5632/682 3210/5646/688 3241/5645/690 +f 3201/5652/685 3233/5668/694 3239/5653/693 +f 3204/5649/684 3236/5650/692 3237/5655/687 +f 3212/5639/684 3211/5632/682 3242/5651/689 +f 3207/5654/683 3239/5653/693 3234/5658/690 +f 3209/5659/685 3240/5663/694 3246/5660/693 +f 3205/5656/686 3237/5655/687 3238/5661/691 +f 3240/5663/694 3254/5722/701 3260/5664/695 +f 3235/5643/689 3249/5676/700 3250/5665/696 +f 3244/5640/687 3243/5657/692 3257/5666/696 +f 3233/5668/694 3247/5725/701 3253/5669/695 +f 3246/5660/693 3260/5664/695 3255/5670/698 +f 3237/5655/687 3236/5650/692 3250/5665/696 +f 3245/5648/691 3244/5640/687 3258/5667/697 +f 3239/5653/693 3253/5669/695 3248/5673/698 +f 3241/5645/690 3255/5670/698 3256/5674/700 +f 3238/5661/691 3237/5655/687 3251/5671/697 +f 3235/5643/689 3234/5658/690 3248/5673/698 +f 3242/5651/689 3256/5674/700 3257/5666/696 +f 3230/5677/681 3229/5699/686 3272/5678/687 +f 3220/5680/684 3219/5613/682 3263/5681/689 +f 3226/5683/688 3269/5700/690 3270/5684/689 +f 3223/5685/683 3217/5717/685 3261/5686/694 +f 3221/5688/686 3220/5680/684 3264/5682/692 +f 3227/5583/682 3270/5684/689 3271/5690/692 +f 3223/5685/683 3267/5687/693 3262/5692/690 +f 3231/5694/683 3225/5713/685 3268/5695/694 +f 3221/5688/686 3265/5689/687 3266/5697/691 +f 3229/5699/686 3228/5691/684 3271/5690/692 +f 3218/5693/688 3262/5692/690 3263/5681/689 +f 3231/5694/683 3274/5696/693 3269/5700/690 +f 3266/5697/691 3265/5689/687 3279/5701/697 +f 3263/5681/689 3262/5692/690 3276/5703/698 +f 3270/5684/689 3284/5712/700 3285/5705/696 +f 3268/5695/694 3282/5715/701 3288/5706/695 +f 3263/5681/689 3277/5704/700 3278/5707/696 +f 3271/5690/692 3285/5705/696 3286/5708/697 +f 3261/5686/694 3275/5719/701 3281/5709/695 +f 3274/5696/693 3288/5706/695 3283/5710/698 +f 3264/5682/692 3278/5707/696 3279/5701/697 +f 3272/5678/687 3286/5708/697 3287/5711/699 +f 3262/5692/690 3267/5687/693 3281/5709/695 +f 3270/5684/689 3269/5700/690 3283/5710/698 +f 3258/5727/697 3304/5788/670 3305/5728/702 +f 3275/5730/701 3307/5756/664 3313/5731/653 +f 3282/5733/701 3232/6451/656 3292/5734/703 +f 3252/5736/699 3298/5767/662 3289/5737/658 +f 3281/5732/695 3313/5731/653 3308/5739/663 +f 3247/5741/701 3293/5790/664 3299/5742/653 +f 3277/5704/700 3276/5740/698 3308/5739/663 +f 3287/5745/699 3319/5787/702 3292/5746/703 +f 3253/5743/695 3299/5742/653 3294/5748/663 +f 3277/5704/700 3309/5744/659 3310/5750/665 +f 3248/5749/698 3294/5748/663 3295/5752/659 +f 3278/5751/696 3310/5750/665 3311/5753/655 +f 3275/5730/701 3224/6452/656 3291/5755/658 +f 3249/5676/700 3295/5752/659 3296/5757/665 +f 3280/5759/699 3279/5754/697 3311/5753/655 +f 3250/5758/696 3296/5757/665 3297/5761/655 +f 3282/5733/701 3314/5735/704 3320/5763/705 +f 3280/5759/699 3312/5760/662 3291/5765/658 +f 3252/5736/699 3251/5762/697 3297/5761/655 +f 3288/5764/695 3320/5763/705 3315/5768/706 +f 3254/5770/701 3300/5775/704 3306/5771/705 +f 3284/5712/700 3283/5769/698 3315/5768/706 +f 3216/5774/656 3290/6453/703 3300/5775/704 +f 3260/5772/695 3306/5771/705 3301/5776/706 +f 3284/5712/700 3316/5773/707 3317/5778/708 +f 3255/5777/698 3301/5776/706 3302/5780/707 +f 3285/5779/696 3317/5778/708 3318/5781/670 +f 3259/5729/699 3305/5728/702 3290/5783/703 +f 3256/5674/700 3302/5780/707 3303/5785/708 +f 3287/5745/699 3286/5782/697 3318/5781/670 +f 3257/5786/696 3303/5785/708 3304/5788/670 +f 3208/5789/656 3289/6454/658 3293/5790/664 +f 3290/5791/703 3305/5830/702 3327/5792/709 +f 3320/5763/705 3334/5812/660 3330/5794/711 +f 3302/5796/707 3325/5816/714 3326/5797/712 +f 3306/5771/705 3300/5811/704 3323/5799/713 +f 3316/5801/707 3315/5795/706 3330/5794/711 +f 3306/5771/705 3328/5800/660 3324/5803/711 +f 3314/5805/704 3292/6455/703 3322/5806/710 +f 3316/5801/707 3331/5802/714 3332/5808/712 +f 3290/5810/703 3321/6456/710 3323/5799/713 +f 3314/5805/704 3329/5807/713 3334/5812/660 +f 3292/5813/703 3319/5834/702 3333/5814/709 +f 3301/5804/706 3324/5803/711 3325/5816/714 +f 3325/5816/714 3324/5803/711 3338/5817/715 +f 3333/5814/709 3347/5835/721 3336/5819/717 +f 3331/5802/714 3330/5794/711 3344/5820/715 +f 3326/5797/712 3325/5816/714 3339/5818/716 +f 3323/5799/713 3321/6456/710 3335/5823/717 +f 3323/5799/713 3337/5824/719 3342/5825/720 +f 3332/5808/712 3331/5802/714 3345/5821/716 +f 3329/5807/713 3343/5829/719 3348/5827/720 +f 3327/5792/709 3341/5832/721 3335/5828/717 +f 3324/5803/711 3328/5800/660 3342/5825/720 +f 3322/5806/710 3336/6457/717 3343/5829/719 +f 3334/5812/660 3348/5827/720 3344/5820/715 +f 3343/5836/719 3359/5852/656 3364/5837/652 +f 3304/5838/670 3349/5846/654 3357/5839/657 +f 3348/5827/720 3364/5837/652 3360/5841/672 +f 3345/5843/716 3344/5842/715 3360/5841/672 +f 3340/5845/718 3356/5864/689 3349/5846/654 +f 3345/5843/716 3361/5844/659 3362/5847/689 +f 3337/5849/719 3353/5863/656 3358/5850/652 +f 3336/5851/717 3352/6458/658 3359/5852/656 +f 3342/5825/720 3358/5850/652 3354/5853/672 +f 3346/5848/718 3362/5847/689 3350/5855/654 +f 3347/5857/721 3363/5865/657 3352/5858/658 +f 3338/5854/715 3354/5853/672 3355/5860/659 +f 3335/5862/717 3351/6459/658 3353/5863/656 +f 3339/5861/716 3355/5860/659 3356/5864/689 +f 3318/5856/670 3350/5855/654 3363/5865/657 +f 3341/5840/721 3357/5839/657 3351/5866/658 +f 3659/5868/722 3666/6460/722 3665/5869/664 +f 3657/5871/653 3664/5877/653 3663/5872/663 +f 3661/5874/665 3668/5881/665 3667/5875/723 +f 3658/5870/664 3665/5869/664 3664/5877/653 +f 3656/5873/663 3663/5872/663 3662/5878/659 +f 3655/5880/659 3662/6461/659 3668/5881/665 +f 3673/5882/722 3678/6462/722 3677/5883/664 +f 3671/5885/653 3676/5888/653 3675/5886/663 +f 3672/5884/664 3677/5883/664 3676/5888/653 +f 3670/5887/663 3675/5886/663 3674/5889/724 +f 3683/5891/722 3688/6463/722 3687/5892/664 +f 3681/5894/653 3686/5897/653 3685/5895/663 +f 3682/5893/664 3687/5892/664 3686/5897/653 +f 3680/5896/663 3685/5895/663 3684/5898/724 +f 3693/5900/722 3698/6464/722 3697/5901/664 +f 3691/5903/653 3696/5906/653 3695/5904/663 +f 3692/5902/664 3697/5901/664 3696/5906/653 +f 3690/5905/663 3695/5904/663 3694/5907/724 +f 3703/5909/722 3708/6465/722 3707/5910/664 +f 3701/5912/653 3706/5915/653 3705/5913/663 +f 3702/5911/664 3707/5910/664 3706/5915/653 +f 3700/5914/663 3705/5913/663 3704/5916/724 +f 3715/5918/725 3722/6466/725 3721/5919/662 +f 3713/5921/658 3720/5927/658 3719/5922/664 +f 3711/5924/653 3718/5928/653 3717/5925/663 +f 3714/5920/662 3721/5919/662 3720/5927/658 +f 3712/5923/664 3719/5922/664 3718/5928/653 +f 3710/5926/663 3717/5925/663 3716/5929/724 +f 3728/5931/655 3735/5938/655 3734/5932/662 +f 3725/5934/726 3732/6467/726 3731/5935/663 +f 3729/5937/665 3736/5944/665 3735/5938/655 +f 3727/5933/662 3734/5932/662 3733/5939/727 +f 3724/5936/663 3731/5935/663 3730/5941/659 +f 3723/5943/659 3730/6468/659 3736/5944/665 +f 3740/5945/655 3745/5949/655 3744/5946/662 +f 3741/5948/665 3746/5953/665 3745/5949/655 +f 3739/5947/662 3744/5946/662 3743/5950/727 +f 3737/5952/728 3742/6469/728 3746/5953/665 +f 3750/5954/655 3755/5958/655 3754/5955/662 +f 3751/5957/665 3756/5962/665 3755/5958/655 +f 3749/5956/662 3754/5955/662 3753/5959/727 +f 3747/5961/728 3752/6470/728 3756/5962/665 +f 3760/5963/655 3765/5967/655 3764/5964/662 +f 3761/5966/665 3766/5971/665 3765/5967/655 +f 3759/5965/662 3764/5964/662 3763/5968/727 +f 3757/5970/728 3762/6471/728 3766/5971/665 +f 3770/5972/655 3775/5976/655 3774/5973/662 +f 3771/5975/665 3776/5980/665 3775/5976/655 +f 3769/5974/662 3774/5973/662 3773/5977/727 +f 3767/5979/728 3772/6472/728 3776/5980/665 +f 3782/5981/655 3789/5988/655 3788/5982/662 +f 3780/5984/658 3787/5989/658 3786/5985/664 +f 3783/5987/665 3790/5993/665 3789/5988/655 +f 3781/5983/662 3788/5982/662 3787/5989/658 +f 3779/5986/664 3786/5985/664 3785/5990/729 +f 3777/5992/728 3784/6473/728 3790/5993/665 +f 3793/5994/726 3798/6474/726 3797/5995/663 +f 3795/5997/665 3800/6003/665 3799/5998/723 +f 3792/5996/663 3797/5995/663 3796/6000/659 +f 3791/6002/659 3796/6475/659 3800/6003/665 +f 3805/6004/725 3810/6476/725 3809/6005/662 +f 3803/6007/658 3808/6010/658 3807/6008/664 +f 3804/6006/662 3809/6005/662 3808/6010/658 +f 3802/6009/664 3807/6008/664 3806/6011/729 +f 3813/6013/726 3818/6477/726 3817/6014/663 +f 3815/6016/665 3820/6022/665 3819/6017/723 +f 3812/6015/663 3817/6014/663 3816/6019/659 +f 3811/6021/659 3816/6478/659 3820/6022/665 +f 3825/6023/725 3830/6479/725 3829/6024/662 +f 3823/6026/658 3828/6029/658 3827/6027/664 +f 3824/6025/662 3829/6024/662 3828/6029/658 +f 3822/6028/664 3827/6027/664 3826/6030/729 +f 3833/6032/726 3838/6480/726 3837/6033/663 +f 3835/6035/665 3840/6041/665 3839/6036/723 +f 3832/6034/663 3837/6033/663 3836/6038/659 +f 3831/6040/659 3836/6481/659 3840/6041/665 +f 3845/6042/725 3850/6482/725 3849/6043/662 +f 3843/6045/658 3848/6048/658 3847/6046/664 +f 3844/6044/662 3849/6043/662 3848/6048/658 +f 3842/6047/664 3847/6046/664 3846/6049/729 +f 3853/6051/726 3858/6483/726 3857/6052/663 +f 3855/6054/665 3860/6060/665 3859/6055/723 +f 3852/6053/663 3857/6052/663 3856/6057/659 +f 3851/6059/659 3856/6484/659 3860/6060/665 +f 3865/6061/725 3870/6485/725 3869/6062/662 +f 3863/6064/658 3868/6067/658 3867/6065/664 +f 3864/6063/662 3869/6062/662 3868/6067/658 +f 3862/6066/664 3867/6065/664 3866/6068/729 +f 4061/6070/661 4077/6077/661 4076/6071/673 +f 4054/6073/674 4070/6079/674 4069/6074/671 +f 4062/6076/675 4078/6083/675 4077/6077/661 +f 4055/6078/654 4071/6486/654 4070/6079/674 +f 4048/6080/676 4064/6088/676 4063/6081/652 +f 4047/6082/652 4063/6081/652 4078/6083/675 +f 4056/6084/677 4072/6090/677 4071/6085/654 +f 4049/6087/660 4065/6092/660 4064/6088/676 +f 4057/6089/670 4073/6094/670 4072/6090/677 +f 4050/6091/678 4066/6096/678 4065/6092/660 +f 4058/6093/679 4074/6098/679 4073/6094/670 +f 4051/6095/653 4067/6100/653 4066/6096/678 +f 4059/6097/655 4075/6101/655 4074/6098/679 +f 4052/6099/680 4068/6102/680 4067/6100/653 +f 4060/6072/673 4076/6071/673 4075/6101/655 +f 4053/6075/671 4069/6074/671 4068/6102/680 +f 4242/6103/661 4236/6119/652 4227/6104/652 +f 4240/6106/670 4241/6115/655 4233/6107/655 +f 4238/6109/671 4239/6487/654 4231/6110/654 +f 4235/6112/660 4237/6118/653 4229/6113/653 +f 4241/6115/655 4242/6103/661 4234/6105/661 +f 4239/6116/654 4240/6106/670 4232/6108/670 +f 4237/6118/653 4238/6109/671 4230/6111/671 +f 4236/6119/652 4235/6112/660 4228/6114/660 +f 4258/6120/661 4252/6136/652 4243/6121/652 +f 4256/6123/670 4257/6132/655 4249/6124/655 +f 4254/6126/671 4255/6488/654 4247/6127/654 +f 4251/6129/660 4253/6135/653 4245/6130/653 +f 4257/6132/655 4258/6120/661 4250/6122/661 +f 4255/6133/654 4256/6123/670 4248/6125/670 +f 4253/6135/653 4254/6126/671 4246/6128/671 +f 4252/6136/652 4251/6129/660 4244/6131/660 +f 4274/6137/661 4268/6153/652 4259/6138/652 +f 4272/6140/670 4273/6149/655 4265/6141/655 +f 4270/6143/671 4271/6489/654 4263/6144/654 +f 4267/6146/660 4269/6152/653 4261/6147/653 +f 4273/6149/655 4274/6137/661 4266/6139/661 +f 4271/6150/654 4272/6140/670 4264/6142/670 +f 4269/6152/653 4270/6143/671 4262/6145/671 +f 4268/6153/652 4267/6146/660 4260/6148/660 +f 4320/6154/685 4319/6213/683 4287/6155/653 +f 4333/6157/682 4332/6490/684 4300/6158/670 +f 4313/6160/686 4307/6194/681 4275/6161/661 +f 4334/6163/688 4333/6157/682 4301/6159/654 +f 4315/6165/681 4322/6491/656 4290/6166/652 +f 4276/6168/670 4308/6492/684 4313/6160/686 +f 4335/6169/683 4334/6163/688 4302/6164/671 +f 4290/6171/652 4322/6493/656 4320/6154/685 +f 4309/6172/682 4308/6492/684 4276/6168/670 +f 4336/6174/685 4335/6169/683 4303/6170/653 +f 4329/6176/686 4323/6203/681 4291/6177/661 +f 4310/6179/688 4309/6172/682 4277/6173/654 +f 4331/6181/681 4338/6494/656 4306/6182/652 +f 4292/6184/670 4324/6495/684 4329/6176/686 +f 4311/6185/683 4310/6179/688 4278/6180/671 +f 4306/6187/652 4338/6496/656 4336/6174/685 +f 4325/6188/682 4324/6495/684 4292/6184/670 +f 4312/6190/685 4311/6185/683 4279/6186/653 +f 4326/6192/688 4325/6188/682 4293/6189/654 +f 4307/6194/681 4314/6497/656 4282/6195/652 +f 4327/6196/683 4326/6192/688 4294/6193/671 +f 4282/6198/652 4314/6498/656 4312/6190/685 +f 4328/6199/685 4327/6196/683 4295/6197/653 +f 4321/6201/686 4315/6165/681 4283/6167/661 +f 4323/6203/681 4330/6499/656 4298/6204/652 +f 4284/6205/670 4316/6500/684 4321/6201/686 +f 4298/6206/652 4330/6501/656 4328/6199/685 +f 4317/6207/682 4316/6500/684 4284/6205/670 +f 4337/6209/686 4331/6181/681 4299/6183/661 +f 4318/6211/688 4317/6207/682 4285/6208/654 +f 4300/6158/670 4332/6490/684 4337/6209/686 +f 4319/6213/683 4318/6211/688 4286/6212/671 +f 4319/6214/683 4350/6238/693 4349/6215/690 +f 4341/6217/689 4340/6231/692 4308/6218/684 +f 4316/6219/684 4347/6243/692 4352/6220/687 +f 4351/6222/694 4350/6238/693 4319/6214/683 +f 4310/6224/688 4342/6230/690 4341/6217/689 +f 4348/6225/689 4347/6243/692 4316/6219/684 +f 4313/6226/686 4345/6241/687 4339/6227/691 +f 4311/6229/683 4343/6244/693 4342/6230/690 +f 4318/6216/688 4349/6215/690 4348/6225/689 +f 4340/6231/692 4345/6241/687 4313/6226/686 +f 4321/6221/686 4352/6220/687 4346/6232/691 +f 4344/6234/694 4343/6244/693 4311/6229/683 +f 4366/6236/697 4360/6291/699 4346/6232/691 +f 4356/6237/698 4355/6324/700 4341/6217/689 +f 4350/6238/693 4364/6245/695 4363/6239/698 +f 4359/6240/697 4353/6295/699 4339/6227/691 +f 4361/6242/696 4366/6236/697 4352/6220/687 +f 4343/6244/693 4357/6247/695 4356/6237/698 +f 4351/6222/694 4365/6293/701 4364/6245/695 +f 4354/6246/696 4359/6240/697 4345/6241/687 +f 4348/6225/689 4362/6352/700 4361/6242/696 +f 4344/6234/694 4358/6297/701 4357/6247/695 +f 4341/6217/689 4355/6324/700 4354/6246/696 +f 4363/6239/698 4362/6352/700 4348/6225/689 +f 4379/6248/694 4378/6276/693 4335/6249/683 +f 4370/6251/690 4369/6268/689 4325/6188/682 +f 4376/6253/689 4375/6280/692 4332/6254/684 +f 4329/6255/686 4373/6278/687 4367/6256/691 +f 4327/6258/683 4371/6271/693 4370/6251/690 +f 4377/6259/690 4376/6253/689 4333/6157/682 +f 4368/6261/692 4373/6278/687 4329/6255/686 +f 4337/6263/686 4380/6269/687 4374/6264/691 +f 4372/6266/694 4371/6271/693 4327/6258/683 +f 4335/6249/683 4378/6276/693 4377/6259/690 +f 4369/6268/689 4368/6261/692 4324/6262/684 +f 4332/6254/684 4375/6280/692 4380/6269/687 +f 4372/6266/694 4386/6289/701 4385/6270/695 +f 4369/6268/689 4383/6315/700 4382/6272/696 +f 4391/6273/698 4390/6344/700 4376/6253/689 +f 4394/6274/697 4388/6283/699 4374/6264/691 +f 4384/6275/698 4383/6315/700 4369/6268/689 +f 4378/6276/693 4392/6281/695 4391/6273/698 +f 4387/6277/697 4381/6287/699 4367/6256/691 +f 4389/6279/696 4394/6274/697 4380/6269/687 +f 4371/6271/693 4385/6270/695 4384/6275/698 +f 4379/6248/694 4393/6285/701 4392/6281/695 +f 4382/6272/696 4387/6277/697 4373/6278/687 +f 4376/6253/689 4390/6344/700 4389/6279/696 +f 4411/6298/730 4410/6359/671 4364/6299/695 +f 4419/6301/655 4413/6502/662 4381/6302/699 +f 4388/6304/699 4420/6503/734 4398/6305/731 +f 4395/6307/658 4404/6338/664 4358/6308/701 +f 4414/6310/665 4419/6301/655 4387/6303/697 +f 4405/6312/655 4399/6360/662 4353/6313/699 +f 4383/6315/700 4415/6504/659 4414/6310/665 +f 4398/6316/731 4425/6505/730 4393/6317/701 +f 4400/6319/665 4405/6312/655 4359/6314/697 +f 4416/6321/663 4415/6504/659 4383/6315/700 +f 4401/6323/659 4400/6319/665 4354/6320/696 +f 4417/6325/653 4416/6321/663 4384/6322/698 +f 4381/6302/699 4413/6502/662 4397/6327/658 +f 4402/6329/663 4401/6323/659 4355/6324/700 +f 4386/6331/701 4418/6506/664 4417/6325/653 +f 4403/6332/653 4402/6329/663 4356/6330/698 +f 4426/6334/732 4420/6503/734 4388/6304/699 +f 4397/6336/658 4418/6506/664 4386/6331/701 +f 4404/6338/664 4403/6332/653 4357/6333/695 +f 4421/6339/733 4426/6334/732 4394/6335/697 +f 4412/6341/732 4406/6345/734 4360/6342/699 +f 4390/6344/700 4422/6507/736 4421/6339/733 +f 4406/6345/734 4396/6508/731 4322/6346/656 +f 4407/6347/733 4412/6341/732 4366/6343/697 +f 4423/6349/735 4422/6507/736 4390/6344/700 +f 4408/6351/736 4407/6347/733 4361/6348/696 +f 4424/6353/671 4423/6349/735 4391/6350/698 +f 4396/6355/731 4411/6298/730 4365/6300/701 +f 4409/6357/735 4408/6351/736 4362/6352/700 +f 4393/6317/701 4425/6505/730 4424/6353/671 +f 4410/6359/671 4409/6357/735 4363/6358/698 +f 4399/6360/662 4395/6509/658 4314/6361/656 +f 4396/6362/731 4427/6399/741 4433/6363/737 +f 4436/6365/738 4440/6381/661 4426/6334/732 +f 4432/6367/739 4431/6385/742 4408/6368/736 +f 4412/6341/732 4434/6394/661 4429/6370/740 +f 4422/6372/736 4437/6389/742 4436/6365/738 +f 4430/6373/738 4434/6394/661 4412/6341/732 +f 4420/6375/734 4435/6397/740 4428/6376/741 +f 4438/6378/739 4437/6389/742 4422/6372/736 +f 4429/6370/740 4427/6392/741 4396/6380/731 +f 4440/6381/661 4435/6397/740 4420/6375/734 +f 4398/6382/731 4428/6388/741 4439/6383/737 +f 4431/6385/742 4430/6373/738 4407/6374/733 +f 4445/6386/743 4444/6510/745 4430/6373/738 +f 4442/6387/744 4453/6405/749 4439/6383/737 +f 4437/6389/742 4451/6511/743 4450/6390/745 +f 4432/6367/739 4446/6403/747 4445/6386/743 +f 4429/6370/740 4443/6512/748 4441/6391/744 +f 4448/6393/746 4443/6512/748 4429/6370/740 +f 4452/6395/747 4451/6511/743 4437/6389/742 +f 4454/6396/746 4449/6400/748 4435/6397/740 +f 4441/6398/744 4447/6402/749 4433/6363/737 +f 4430/6373/738 4444/6510/745 4448/6393/746 +f 4449/6400/748 4442/6513/744 4428/6376/741 +f 4450/6390/745 4454/6396/746 4440/6381/661 +f 4470/6406/652 4465/6420/656 4449/6407/748 +f 4463/6408/657 4455/6414/654 4410/6409/671 +f 4466/6411/672 4470/6406/652 4454/6396/746 +f 4451/6413/743 4467/6514/659 4466/6411/672 +f 4455/6414/654 4462/6433/689 4446/6415/747 +f 4468/6416/689 4467/6514/659 4451/6413/743 +f 4464/6418/652 4459/6431/656 4443/6419/748 +f 4465/6420/656 4458/6515/658 4442/6421/744 +f 4460/6422/672 4464/6418/652 4448/6393/746 +f 4456/6424/654 4468/6416/689 4452/6417/747 +f 4458/6426/658 4469/6434/657 4453/6427/749 +f 4461/6429/659 4460/6422/672 4444/6423/745 +f 4459/6431/656 4457/6516/658 4441/6432/744 +f 4462/6433/689 4461/6429/659 4445/6430/743 +f 4469/6434/657 4456/6424/654 4424/6425/671 +f 4457/6435/658 4463/6408/657 4447/6410/749 diff --git a/src/main/resources/assets/hbm/models/machines/ore_slopper.obj b/src/main/resources/assets/hbm/models/machines/ore_slopper.obj new file mode 100644 index 000000000..6af1aea03 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/ore_slopper.obj @@ -0,0 +1,4346 @@ +# Blender v2.79 (sub 0) OBJ File: 'ore_slopper.blend' +# www.blender.org +o Slider +v 1.125000 3.562500 1.437500 +v 1.375000 3.562500 1.437500 +v 1.125000 3.562500 1.187500 +v 1.375000 3.562500 1.187500 +v 1.375000 5.562500 1.187500 +v 1.125000 5.562500 1.187500 +v 1.375000 5.562500 1.437500 +v 1.125000 5.562500 1.437500 +v 1.125000 5.562500 2.937500 +v 1.375000 5.562500 2.937500 +v 1.125000 5.562500 2.687500 +v 1.375000 5.562500 2.687500 +v 1.375000 3.562500 2.687500 +v 1.125000 3.562500 2.687500 +v 1.375000 3.562500 2.937500 +v 1.125000 3.562500 2.937500 +v -1.437500 3.312500 1.500000 +v -1.062500 3.312500 1.500000 +v -1.437500 3.312500 1.125000 +v -1.062500 3.312500 1.125000 +v -1.062500 3.562500 1.125000 +v -1.437500 3.562500 1.125000 +v -1.062500 3.562500 1.500000 +v -1.437500 3.562500 1.500000 +v -1.437500 3.562500 3.000000 +v -1.062500 3.562500 3.000000 +v -1.437500 3.562500 2.625000 +v -1.062500 3.562500 2.625000 +v -1.062500 3.312500 2.625000 +v -1.437500 3.312500 2.625000 +v -1.062500 3.312500 3.000000 +v -1.437500 3.312500 3.000000 +v 1.062500 3.312500 3.000000 +v 1.437500 3.312500 3.000000 +v 1.062500 3.312500 2.625000 +v 1.437500 3.312500 2.625000 +v 1.437500 3.562500 2.625000 +v 1.062500 3.562500 2.625000 +v 1.437500 3.562500 3.000000 +v 1.062500 3.562500 3.000000 +v 1.062500 3.562500 1.500000 +v 1.437500 3.562500 1.500000 +v 1.062500 3.562500 1.125000 +v 1.437500 3.562500 1.125000 +v 1.437500 3.312500 1.125000 +v 1.062500 3.312500 1.125000 +v 1.437500 3.312500 1.500000 +v 1.062500 3.312500 1.500000 +v -1.375000 3.562500 1.437500 +v -1.125000 3.562500 1.437500 +v -1.375000 3.562500 1.187500 +v -1.125000 3.562500 1.187500 +v -1.125000 5.562500 1.187500 +v -1.375000 5.562500 1.187500 +v -1.125000 5.562500 1.437500 +v -1.375000 5.562500 1.437500 +v -1.375000 5.562500 2.937500 +v -1.125000 5.562500 2.937500 +v -1.375000 5.562500 2.687500 +v -1.125000 5.562500 2.687500 +v -1.125000 3.562500 2.687500 +v -1.375000 3.562500 2.687500 +v -1.125000 3.562500 2.937500 +v -1.375000 3.562500 2.937500 +v 1.375000 5.562500 1.187500 +v 1.375000 5.562500 1.437500 +v -1.375000 5.562500 1.187500 +v -1.375000 5.562500 1.437500 +v 1.125000 5.812500 1.437500 +v 1.125000 5.812500 1.187500 +v -1.125000 5.812500 1.187500 +v -1.125000 5.812500 1.437500 +v 1.375000 5.562500 2.937500 +v 1.375000 5.562500 2.687500 +v -1.375000 5.562500 2.937500 +v -1.375000 5.562500 2.687500 +v 1.125000 5.812500 2.937500 +v 1.125000 5.812500 2.687500 +v -1.125000 5.812500 2.687500 +v -1.125000 5.812500 2.937500 +v -1.000000 5.562500 3.062500 +v 1.000000 5.562500 3.062500 +v -1.000000 5.562500 1.062500 +v 1.000000 5.562500 1.062500 +v -1.000000 4.562500 1.062500 +v -1.000000 4.562500 3.062500 +v 1.000000 4.562500 3.062500 +v 1.000000 4.562500 1.062500 +v 0.500000 4.312500 1.562500 +v -0.500000 4.312500 1.562500 +v -0.500000 4.312500 2.562500 +v 0.500000 4.312500 2.562500 +v -0.750000 4.312500 1.312500 +v -0.750000 4.312500 2.812500 +v 0.750000 4.312500 2.812500 +v 0.750000 4.312500 1.312500 +v -0.500000 4.812500 1.562500 +v -0.500000 4.812500 2.562500 +v 0.500000 4.812500 2.562500 +v 0.500000 4.812500 1.562500 +v 1.187500 4.000000 2.687500 +v 1.187500 4.125000 2.687500 +v 1.187500 4.000000 1.437500 +v 1.187500 4.125000 1.437500 +v 1.312500 4.000000 2.687500 +v 1.312500 4.125000 2.687500 +v 1.312500 4.000000 1.437500 +v 1.312500 4.125000 1.437500 +v -1.312500 4.000000 2.687500 +v -1.312500 4.125000 2.687500 +v -1.312500 4.000000 1.437500 +v -1.312500 4.125000 1.437500 +v -1.187500 4.000000 2.687500 +v -1.187500 4.125000 2.687500 +v -1.187500 4.000000 1.437500 +v -1.187500 4.125000 1.437500 +vt 0.512195 0.461538 +vt 0.500000 0.256410 +vt 0.512195 0.256410 +vt 0.536585 0.461538 +vt 0.524390 0.256410 +vt 0.536585 0.256410 +vt 0.524390 0.461538 +vt 0.500000 0.461538 +vt 0.487805 0.256410 +vt 0.658537 0.256410 +vt 0.676829 0.294872 +vt 0.658537 0.294872 +vt 0.676829 0.320513 +vt 0.658537 0.358974 +vt 0.658537 0.320513 +vt 0.713415 0.294872 +vt 0.695122 0.320513 +vt 0.695122 0.294872 +vt 0.731707 0.294872 +vt 0.713415 0.320513 +vt 0.695122 0.294872 +vt 0.676829 0.320513 +vt 0.676829 0.294872 +vt 0.731707 0.294872 +vt 0.713415 0.320513 +vt 0.713415 0.294872 +vt 0.695122 0.320513 +vt 0.658537 0.320513 +vt 0.658537 0.294872 +vt 0.658537 0.358974 +vt 0.658537 0.256410 +vt 0.658537 0.256410 +vt 0.676829 0.294872 +vt 0.658537 0.294872 +vt 0.676829 0.320513 +vt 0.658537 0.358974 +vt 0.658537 0.320513 +vt 0.713415 0.294872 +vt 0.695122 0.320513 +vt 0.695122 0.294872 +vt 0.731707 0.294872 +vt 0.713415 0.320513 +vt 0.695122 0.294872 +vt 0.676829 0.320513 +vt 0.676829 0.294872 +vt 0.731707 0.294872 +vt 0.713415 0.320513 +vt 0.713415 0.294872 +vt 0.695122 0.320513 +vt 0.658537 0.320513 +vt 0.658537 0.294872 +vt 0.658537 0.358974 +vt 0.658537 0.256410 +vt 0.512195 0.461538 +vt 0.500000 0.256410 +vt 0.512195 0.256410 +vt 0.536585 0.461538 +vt 0.524390 0.256410 +vt 0.536585 0.256410 +vt 0.524390 0.461538 +vt 0.500000 0.461538 +vt 0.487805 0.256410 +vt 0.512195 0.461538 +vt 0.500000 0.256410 +vt 0.512195 0.256410 +vt 0.536585 0.461538 +vt 0.524390 0.256410 +vt 0.536585 0.256410 +vt 0.524390 0.461538 +vt 0.500000 0.461538 +vt 0.487805 0.256410 +vt 0.512195 0.461538 +vt 0.500000 0.256410 +vt 0.512195 0.256410 +vt 0.536585 0.461538 +vt 0.524390 0.256410 +vt 0.536585 0.256410 +vt 0.524390 0.461538 +vt 0.500000 0.461538 +vt 0.487805 0.256410 +vt 0.274390 0.692308 +vt 0.408537 0.717949 +vt 0.274390 0.717949 +vt 0.396341 0.743590 +vt 0.286585 0.769231 +vt 0.286585 0.743590 +vt 0.408537 0.769231 +vt 0.408537 0.743590 +vt 0.274390 0.794872 +vt 0.396341 0.769231 +vt 0.408537 0.794872 +vt 0.274390 0.743590 +vt 0.274390 0.769231 +vt 0.274390 0.692308 +vt 0.408537 0.717949 +vt 0.274390 0.717949 +vt 0.396341 0.743590 +vt 0.286585 0.769231 +vt 0.286585 0.743590 +vt 0.274390 0.794872 +vt 0.396341 0.769231 +vt 0.408537 0.794872 +vt 0.274390 0.743590 +vt 0.274390 0.769231 +vt 0.408537 0.769231 +vt 0.408537 0.743590 +vt 0.512195 0.794872 +vt 0.414634 1.000000 +vt 0.414634 0.794872 +vt 0.609756 0.692308 +vt 0.707317 0.794872 +vt 0.609756 0.794872 +vt 0.414634 0.692308 +vt 0.512195 0.692308 +vt 0.707317 0.692308 +vt 0.804878 0.794872 +vt 0.439024 0.641026 +vt 0.487805 0.589744 +vt 0.487805 0.641026 +vt 0.792683 0.666667 +vt 0.804878 0.692308 +vt 0.597561 0.666667 +vt 0.500000 0.666667 +vt 0.695122 0.666667 +vt 0.780488 0.641026 +vt 0.719512 0.666667 +vt 0.731707 0.641026 +vt 0.585366 0.641026 +vt 0.524390 0.666667 +vt 0.536585 0.641026 +vt 0.426829 0.666667 +vt 0.682927 0.641026 +vt 0.621951 0.666667 +vt 0.634146 0.641026 +vt 0.487805 0.487179 +vt 0.439024 0.589744 +vt 0.439024 0.487179 +vt 0.780488 0.589744 +vt 0.682927 0.589744 +vt 0.585366 0.589744 +vt 0.725610 0.448718 +vt 0.731707 0.320513 +vt 0.731707 0.448718 +vt 0.719512 0.320513 +vt 0.713415 0.448718 +vt 0.713415 0.320513 +vt 0.719512 0.320513 +vt 0.713415 0.448718 +vt 0.713415 0.320513 +vt 0.725610 0.448718 +vt 0.731707 0.320513 +vt 0.731707 0.448718 +vt 0.707317 0.448718 +vt 0.707317 0.320513 +vt 0.725610 0.320513 +vt 0.719512 0.448718 +vt 0.707317 0.448718 +vt 0.707317 0.320513 +vt 0.725610 0.320513 +vt 0.719512 0.448718 +vt 0.487805 0.461538 +vt 0.676829 0.256410 +vt 0.676829 0.358974 +vt 0.731707 0.320513 +vt 0.731707 0.320513 +vt 0.676829 0.358974 +vt 0.676829 0.256410 +vt 0.676829 0.256410 +vt 0.676829 0.358974 +vt 0.731707 0.320513 +vt 0.731707 0.320513 +vt 0.676829 0.358974 +vt 0.676829 0.256410 +vt 0.487805 0.461538 +vt 0.487805 0.461538 +vt 0.487805 0.461538 +vt 0.408537 0.692308 +vt 0.408537 0.692308 +vt 0.512195 1.000000 +vt 0.731707 0.589744 +vt 0.634146 0.589744 +vt 0.536585 0.589744 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +s off +f 12/1/1 15/2/1 13/3/1 +f 9/4/2 14/5/2 16/6/2 +f 11/7/3 13/3/3 14/5/3 +f 10/8/4 16/9/4 15/2/4 +f 19/10/5 18/11/5 17/12/5 +f 23/13/6 22/14/6 24/15/6 +f 18/11/4 24/15/4 17/12/4 +f 19/16/3 21/17/3 20/18/3 +f 17/19/2 22/20/2 19/16/2 +f 20/18/1 23/13/1 18/11/1 +f 29/21/1 26/22/1 31/23/1 +f 32/24/2 27/25/2 30/26/2 +f 30/26/3 28/27/3 29/21/3 +f 31/23/4 25/28/4 32/29/4 +f 26/22/6 27/30/6 25/28/6 +f 30/31/5 31/23/5 32/29/5 +f 35/32/5 34/33/5 33/34/5 +f 39/35/6 38/36/6 40/37/6 +f 34/33/4 40/37/4 33/34/4 +f 35/38/3 37/39/3 36/40/3 +f 33/41/2 38/42/2 35/38/2 +f 36/40/1 39/35/1 34/33/1 +f 45/43/1 42/44/1 47/45/1 +f 48/46/2 43/47/2 46/48/2 +f 46/48/3 44/49/3 45/43/3 +f 47/45/4 41/50/4 48/51/4 +f 42/44/6 43/52/6 41/50/6 +f 46/53/5 47/45/5 48/51/5 +f 5/54/1 2/55/1 4/56/1 +f 8/57/2 3/58/2 1/59/2 +f 6/60/3 4/56/3 3/58/3 +f 7/61/4 1/62/4 2/55/4 +f 60/63/1 63/64/1 61/65/1 +f 57/66/2 62/67/2 64/68/2 +f 59/69/3 61/65/3 62/67/3 +f 58/70/4 64/71/4 63/64/4 +f 53/72/1 50/73/1 52/74/1 +f 56/75/2 51/76/2 49/77/2 +f 54/78/3 52/74/3 51/76/3 +f 55/79/4 49/80/4 50/73/4 +f 66/81/5 67/82/5 65/83/5 +f 71/84/6 69/85/6 70/86/6 +f 67/82/3 70/86/3 65/83/3 +f 68/87/7 71/84/7 67/88/7 +f 66/89/4 72/90/4 68/91/4 +f 65/92/8 69/85/8 66/93/8 +f 73/94/5 76/95/5 74/96/5 +f 79/97/6 77/98/6 78/99/6 +f 73/100/4 80/101/4 75/102/4 +f 74/103/8 77/98/8 73/104/8 +f 76/95/3 78/99/3 74/96/3 +f 75/105/7 79/97/7 76/106/7 +f 82/107/6 83/108/6 81/109/6 +f 88/110/3 83/111/3 84/112/3 +f 86/113/4 82/107/4 81/109/4 +f 87/114/1 84/112/1 82/107/1 +f 85/115/2 81/116/2 83/111/2 +f 91/117/3 99/118/3 92/119/3 +f 85/115/9 94/120/9 86/121/9 +f 87/114/10 96/122/10 88/110/10 +f 86/113/11 95/123/11 87/114/11 +f 88/110/12 93/124/12 85/115/12 +f 91/125/5 93/126/5 90/127/5 +f 89/128/5 95/129/5 92/130/5 +f 92/119/5 94/131/5 91/117/5 +f 90/132/5 96/133/5 89/134/5 +f 100/135/5 98/136/5 97/137/5 +f 90/127/1 98/138/1 91/125/1 +f 89/134/4 97/139/4 90/132/4 +f 92/130/2 100/140/2 89/128/2 +f 102/141/2 103/142/2 101/143/2 +f 116/144/1 113/145/1 115/146/1 +f 108/147/1 105/148/1 107/149/1 +f 110/150/2 111/151/2 109/152/2 +f 107/149/5 101/153/5 103/154/5 +f 104/155/6 106/156/6 108/147/6 +f 115/146/5 109/157/5 111/158/5 +f 112/159/6 114/160/6 116/144/6 +f 12/1/1 10/8/1 15/2/1 +f 9/4/2 11/7/2 14/5/2 +f 11/7/3 12/1/3 13/3/3 +f 10/8/4 9/161/4 16/9/4 +f 19/10/5 20/162/5 18/11/5 +f 23/13/6 21/163/6 22/14/6 +f 18/11/4 23/13/4 24/15/4 +f 19/16/3 22/20/3 21/17/3 +f 17/19/2 24/164/2 22/20/2 +f 20/18/1 21/17/1 23/13/1 +f 29/21/1 28/27/1 26/22/1 +f 32/24/2 25/165/2 27/25/2 +f 30/26/3 27/25/3 28/27/3 +f 31/23/4 26/22/4 25/28/4 +f 26/22/6 28/166/6 27/30/6 +f 30/31/5 29/167/5 31/23/5 +f 35/32/5 36/168/5 34/33/5 +f 39/35/6 37/169/6 38/36/6 +f 34/33/4 39/35/4 40/37/4 +f 35/38/3 38/42/3 37/39/3 +f 33/41/2 40/170/2 38/42/2 +f 36/40/1 37/39/1 39/35/1 +f 45/43/1 44/49/1 42/44/1 +f 48/46/2 41/171/2 43/47/2 +f 46/48/3 43/47/3 44/49/3 +f 47/45/4 42/44/4 41/50/4 +f 42/44/6 44/172/6 43/52/6 +f 46/53/5 45/173/5 47/45/5 +f 5/54/1 7/61/1 2/55/1 +f 8/57/2 6/60/2 3/58/2 +f 6/60/3 5/54/3 4/56/3 +f 7/61/4 8/174/4 1/62/4 +f 60/63/1 58/70/1 63/64/1 +f 57/66/2 59/69/2 62/67/2 +f 59/69/3 60/63/3 61/65/3 +f 58/70/4 57/175/4 64/71/4 +f 53/72/1 55/79/1 50/73/1 +f 56/75/2 54/78/2 51/76/2 +f 54/78/3 53/72/3 52/74/3 +f 55/79/4 56/176/4 49/80/4 +f 66/81/5 68/177/5 67/82/5 +f 71/84/6 72/90/6 69/85/6 +f 67/82/3 71/84/3 70/86/3 +f 68/87/7 72/90/7 71/84/7 +f 66/89/4 69/85/4 72/90/4 +f 65/92/8 70/86/8 69/85/8 +f 73/94/5 75/178/5 76/95/5 +f 79/97/6 80/101/6 77/98/6 +f 73/100/4 77/98/4 80/101/4 +f 74/103/8 78/99/8 77/98/8 +f 76/95/3 79/97/3 78/99/3 +f 75/105/7 80/101/7 79/97/7 +f 82/107/6 84/179/6 83/108/6 +f 88/110/3 85/115/3 83/111/3 +f 86/113/4 87/114/4 82/107/4 +f 87/114/1 88/110/1 84/112/1 +f 85/115/2 86/121/2 81/116/2 +f 91/117/3 98/136/3 99/118/3 +f 85/115/9 93/126/9 94/120/9 +f 87/114/10 95/129/10 96/122/10 +f 86/113/11 94/131/11 95/123/11 +f 88/110/12 96/133/12 93/124/12 +f 91/125/5 94/120/5 93/126/5 +f 89/128/5 96/122/5 95/129/5 +f 92/119/5 95/123/5 94/131/5 +f 90/132/5 93/124/5 96/133/5 +f 100/135/5 99/118/5 98/136/5 +f 90/127/1 97/180/1 98/138/1 +f 89/134/4 100/181/4 97/139/4 +f 92/130/2 99/182/2 100/140/2 +f 102/141/2 104/155/2 103/142/2 +f 116/144/1 114/160/1 113/145/1 +f 108/147/1 106/156/1 105/148/1 +f 110/150/2 112/159/2 111/151/2 +f 107/149/5 105/148/5 101/153/5 +f 104/155/6 102/141/6 106/156/6 +f 115/146/5 113/145/5 109/157/5 +f 112/159/6 110/150/6 114/160/6 +o Hydraulics +v -0.750000 4.312500 2.812500 +v -0.500000 4.312500 2.812500 +v -0.750000 4.312500 2.562500 +v -0.500000 4.312500 2.562500 +v -0.750000 5.562500 2.562500 +v -0.750000 5.562500 2.812500 +v -0.500000 5.562500 2.812500 +v -0.500000 5.562500 2.562500 +v -0.750000 4.312500 1.562500 +v -0.500000 4.312500 1.562500 +v -0.750000 4.312500 1.312500 +v -0.500000 4.312500 1.312500 +v -0.750000 5.562500 1.312500 +v -0.750000 5.562500 1.562500 +v -0.500000 5.562500 1.562500 +v -0.500000 5.562500 1.312500 +v 0.500000 4.312500 2.812500 +v 0.750000 4.312500 2.812500 +v 0.500000 4.312500 2.562500 +v 0.750000 4.312500 2.562500 +v 0.500000 5.562500 2.562500 +v 0.500000 5.562500 2.812500 +v 0.750000 5.562500 2.812500 +v 0.750000 5.562500 2.562500 +v 0.500000 4.312500 1.562500 +v 0.750000 4.312500 1.562500 +v 0.500000 4.312500 1.312500 +v 0.750000 4.312500 1.312500 +v 0.500000 5.562500 1.312500 +v 0.500000 5.562500 1.562500 +v 0.750000 5.562500 1.562500 +v 0.750000 5.562500 1.312500 +vt 0.768293 0.230769 +vt 0.780488 0.256410 +vt 0.768293 0.256410 +vt 0.768293 0.230769 +vt 0.780488 0.256410 +vt 0.768293 0.256410 +vt 0.817073 0.256410 +vt 0.804878 0.384615 +vt 0.804878 0.256410 +vt 0.792683 0.384615 +vt 0.792683 0.256410 +vt 0.768293 0.384615 +vt 0.780488 0.384615 +vt 0.817073 0.256410 +vt 0.804878 0.384615 +vt 0.804878 0.256410 +vt 0.792683 0.384615 +vt 0.792683 0.256410 +vt 0.768293 0.384615 +vt 0.780488 0.384615 +vt 0.768293 0.230769 +vt 0.780488 0.256410 +vt 0.768293 0.256410 +vt 0.768293 0.230769 +vt 0.780488 0.256410 +vt 0.768293 0.256410 +vt 0.817073 0.256410 +vt 0.804878 0.384615 +vt 0.804878 0.256410 +vt 0.792683 0.384615 +vt 0.792683 0.256410 +vt 0.768293 0.384615 +vt 0.780488 0.384615 +vt 0.817073 0.256410 +vt 0.804878 0.384615 +vt 0.804878 0.256410 +vt 0.792683 0.384615 +vt 0.792683 0.256410 +vt 0.768293 0.384615 +vt 0.780488 0.384615 +vt 0.780488 0.230769 +vt 0.780488 0.230769 +vt 0.817073 0.384615 +vt 0.817073 0.384615 +vt 0.780488 0.230769 +vt 0.780488 0.230769 +vt 0.817073 0.384615 +vt 0.817073 0.384615 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +s off +f 119/183/13 118/184/13 117/185/13 +f 127/186/13 126/187/13 125/188/13 +f 117/189/14 121/190/14 119/191/14 +f 119/191/15 124/192/15 120/193/15 +f 118/184/16 122/194/16 117/185/16 +f 120/193/17 123/195/17 118/184/17 +f 125/196/14 129/197/14 127/198/14 +f 127/198/15 132/199/15 128/200/15 +f 126/187/16 130/201/16 125/188/16 +f 128/200/17 131/202/17 126/187/17 +f 135/203/13 134/204/13 133/205/13 +f 143/206/13 142/207/13 141/208/13 +f 133/209/14 137/210/14 135/211/14 +f 135/211/15 140/212/15 136/213/15 +f 134/204/16 138/214/16 133/205/16 +f 136/213/17 139/215/17 134/204/17 +f 141/216/14 145/217/14 143/218/14 +f 143/218/15 148/219/15 144/220/15 +f 142/207/16 146/221/16 141/208/16 +f 144/220/17 147/222/17 142/207/17 +f 119/183/13 120/223/13 118/184/13 +f 127/186/13 128/224/13 126/187/13 +f 117/189/14 122/225/14 121/190/14 +f 119/191/15 121/190/15 124/192/15 +f 118/184/16 123/195/16 122/194/16 +f 120/193/17 124/192/17 123/195/17 +f 125/196/14 130/226/14 129/197/14 +f 127/198/15 129/197/15 132/199/15 +f 126/187/16 131/202/16 130/201/16 +f 128/200/17 132/199/17 131/202/17 +f 135/203/13 136/227/13 134/204/13 +f 143/206/13 144/228/13 142/207/13 +f 133/209/14 138/229/14 137/210/14 +f 135/211/15 137/210/15 140/212/15 +f 134/204/16 139/215/16 138/214/16 +f 136/213/17 140/212/17 139/215/17 +f 141/216/14 146/230/14 145/217/14 +f 143/218/15 145/217/15 148/219/15 +f 142/207/16 147/222/16 146/221/16 +f 144/220/17 148/219/17 147/222/17 +o Bucket +v -0.500000 4.062500 1.562500 +v -0.500000 4.062500 2.562500 +v 0.500000 4.062500 2.562500 +v 0.500000 4.062500 1.562500 +v 0.750000 4.312500 1.312500 +v -0.750000 4.312500 1.312500 +v -0.750000 4.312500 2.812500 +v 0.750000 4.312500 2.812500 +v 0.250000 4.187500 1.812500 +v -0.250000 4.187500 1.812500 +v -0.250000 4.187500 2.312500 +v 0.250000 4.187500 2.312500 +v -0.750000 4.562500 1.312500 +v -0.750000 4.562500 2.812500 +v 0.750000 4.562500 2.812500 +v 0.750000 4.562500 1.312500 +v -0.687500 4.312500 2.750000 +v -0.562500 4.312500 2.750000 +v -0.687500 4.312500 2.625000 +v -0.562500 4.312500 2.625000 +v -0.687500 5.562500 2.750000 +v -0.562500 5.562500 2.750000 +v -0.687500 5.562500 2.625000 +v -0.562500 5.562500 2.625000 +v 0.562500 4.312500 2.750000 +v 0.687500 4.312500 2.750000 +v 0.562500 4.312500 2.625000 +v 0.687500 4.312500 2.625000 +v 0.562500 5.562500 2.750000 +v 0.687500 5.562500 2.750000 +v 0.562500 5.562500 2.625000 +v 0.687500 5.562500 2.625000 +v -0.687500 4.312500 1.500000 +v -0.562500 4.312500 1.500000 +v -0.687500 4.312500 1.375000 +v -0.562500 4.312500 1.375000 +v -0.687500 5.562500 1.500000 +v -0.562500 5.562500 1.500000 +v -0.687500 5.562500 1.375000 +v -0.562500 5.562500 1.375000 +v 0.562500 4.312500 1.500000 +v 0.687500 4.312500 1.500000 +v 0.562500 4.312500 1.375000 +v 0.687500 4.312500 1.375000 +v 0.562500 5.562500 1.500000 +v 0.687500 5.562500 1.500000 +v 0.562500 5.562500 1.375000 +v 0.687500 5.562500 1.375000 +vt 0.829268 0.410256 +vt 0.890244 0.384615 +vt 0.902439 0.410256 +vt 0.841463 0.282051 +vt 0.890244 0.282051 +vt 0.902439 0.256410 +vt 0.829268 0.256410 +vt 0.841463 0.384615 +vt 0.902439 0.230769 +vt 0.914634 0.410256 +vt 0.829268 0.435897 +vt 0.817073 0.256410 +vt 0.878049 0.538462 +vt 0.853659 0.487179 +vt 0.878049 0.487179 +vt 0.902439 0.589744 +vt 0.853659 0.538462 +vt 0.829268 0.589744 +vt 0.902439 0.435897 +vt 0.762195 0.230769 +vt 0.756098 0.358974 +vt 0.756098 0.230769 +vt 0.750000 0.230769 +vt 0.743902 0.358974 +vt 0.743902 0.230769 +vt 0.762195 0.230769 +vt 0.756098 0.358974 +vt 0.756098 0.230769 +vt 0.750000 0.230769 +vt 0.743902 0.358974 +vt 0.743902 0.230769 +vt 0.750000 0.358974 +vt 0.768293 0.230769 +vt 0.762195 0.358974 +vt 0.750000 0.358974 +vt 0.768293 0.230769 +vt 0.762195 0.358974 +vt 0.762195 0.230769 +vt 0.756098 0.358974 +vt 0.756098 0.230769 +vt 0.750000 0.230769 +vt 0.743902 0.358974 +vt 0.743902 0.230769 +vt 0.762195 0.230769 +vt 0.756098 0.358974 +vt 0.756098 0.230769 +vt 0.750000 0.230769 +vt 0.743902 0.358974 +vt 0.743902 0.230769 +vt 0.750000 0.358974 +vt 0.768293 0.230769 +vt 0.762195 0.358974 +vt 0.750000 0.358974 +vt 0.768293 0.230769 +vt 0.762195 0.358974 +vt 0.829268 0.230769 +vt 0.914634 0.256410 +vt 0.817073 0.410256 +vt 0.768293 0.358974 +vt 0.768293 0.358974 +vt 0.768293 0.358974 +vt 0.768293 0.358974 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.6000 0.8000 0.0000 +vn -0.6000 0.8000 0.0000 +vn 0.0000 0.8000 -0.6000 +vn 0.0000 0.8000 0.6000 +s off +f 153/231/18 149/232/18 154/233/18 +f 149/232/19 151/234/19 150/235/19 +f 155/236/20 151/234/20 156/237/20 +f 156/237/21 152/238/21 153/231/21 +f 154/233/22 150/235/22 155/236/22 +f 156/237/23 162/239/23 155/236/23 +f 155/236/24 161/240/24 154/233/24 +f 154/233/25 164/241/25 153/231/25 +f 153/231/26 163/242/26 156/237/26 +f 159/243/27 157/244/27 158/245/27 +f 158/245/28 162/246/28 159/243/28 +f 160/247/29 164/241/29 157/244/29 +f 159/243/30 163/248/30 160/247/30 +f 157/244/31 161/249/31 158/245/31 +f 175/250/25 180/251/25 176/252/25 +f 174/253/23 177/254/23 173/255/23 +f 167/256/25 172/257/25 168/258/25 +f 166/259/23 169/260/23 165/261/23 +f 168/258/26 170/262/26 166/259/26 +f 165/263/24 171/264/24 167/256/24 +f 176/252/26 178/265/26 174/253/26 +f 173/266/24 179/267/24 175/250/24 +f 191/268/25 196/269/25 192/270/25 +f 190/271/23 193/272/23 189/273/23 +f 183/274/25 188/275/25 184/276/25 +f 182/277/23 185/278/23 181/279/23 +f 184/276/26 186/280/26 182/277/26 +f 181/281/24 187/282/24 183/274/24 +f 192/270/26 194/283/26 190/271/26 +f 189/284/24 195/285/24 191/268/24 +f 153/231/18 152/238/18 149/232/18 +f 149/232/19 152/238/19 151/234/19 +f 155/236/20 150/235/20 151/234/20 +f 156/237/21 151/234/21 152/238/21 +f 154/233/22 149/232/22 150/235/22 +f 156/237/23 163/286/23 162/239/23 +f 155/236/24 162/287/24 161/240/24 +f 154/233/25 161/249/25 164/241/25 +f 153/231/26 164/288/26 163/242/26 +f 159/243/27 160/247/27 157/244/27 +f 158/245/28 161/249/28 162/246/28 +f 160/247/29 163/248/29 164/241/29 +f 159/243/30 162/246/30 163/248/30 +f 157/244/31 164/241/31 161/249/31 +f 175/250/25 179/267/25 180/251/25 +f 174/253/23 178/265/23 177/254/23 +f 167/256/25 171/264/25 172/257/25 +f 166/259/23 170/262/23 169/260/23 +f 168/258/26 172/257/26 170/262/26 +f 165/263/24 169/289/24 171/264/24 +f 176/252/26 180/251/26 178/265/26 +f 173/266/24 177/290/24 179/267/24 +f 191/268/25 195/285/25 196/269/25 +f 190/271/23 194/283/23 193/272/23 +f 183/274/25 187/282/25 188/275/25 +f 182/277/23 186/280/23 185/278/23 +f 184/276/26 188/275/26 186/280/26 +f 181/281/24 185/291/24 187/282/24 +f 192/270/26 196/269/26 194/283/26 +f 189/284/24 193/292/24 195/285/24 +o BladesRight +v -0.375000 3.187500 0.000000 +v -0.156250 3.128886 0.000000 +v 0.003886 2.968750 0.000000 +v 0.062500 2.750000 0.000000 +v 0.003886 2.531250 0.000000 +v -0.156250 2.371114 0.000000 +v -0.375000 2.312500 0.000000 +v -0.593750 2.371114 0.000000 +v -0.753886 2.531250 0.000000 +v -0.812500 2.750000 0.000000 +v -0.753886 2.968750 0.000000 +v -0.593750 3.128886 0.000000 +v -0.375000 3.062500 -0.250000 +v -0.218750 3.020633 -0.250000 +v -0.104367 2.906250 -0.250000 +v -0.062500 2.750000 -0.250000 +v -0.104367 2.593750 -0.250000 +v -0.218750 2.479367 -0.250000 +v -0.375000 2.437500 -0.250000 +v -0.531250 2.479367 -0.250000 +v -0.645633 2.593750 -0.250000 +v -0.687500 2.750000 -0.250000 +v -0.645633 2.906250 -0.250000 +v -0.531250 3.020633 -0.250000 +v -0.375000 3.187500 -0.250000 +v -0.156250 3.128886 -0.250000 +v 0.003886 2.968750 -0.250000 +v 0.062500 2.750000 -0.250000 +v 0.003886 2.531250 -0.250000 +v -0.156250 2.371114 -0.250000 +v -0.375000 2.312500 -0.250000 +v -0.593750 2.371114 -0.250000 +v -0.753886 2.531250 -0.250000 +v -0.812500 2.750000 -0.250000 +v -0.753886 2.968750 -0.250000 +v -0.593750 3.128886 -0.250000 +v -0.375000 3.062500 -0.500000 +v -0.218750 3.020633 -0.500000 +v -0.104367 2.906250 -0.500000 +v -0.062500 2.750000 -0.500000 +v -0.104367 2.593750 -0.500000 +v -0.218750 2.479367 -0.500000 +v -0.375000 2.437500 -0.500000 +v -0.531250 2.479367 -0.500000 +v -0.645633 2.593750 -0.500000 +v -0.687500 2.750000 -0.500000 +v -0.645633 2.906250 -0.500000 +v -0.531250 3.020633 -0.500000 +v -0.375000 3.187500 -1.500000 +v -0.156250 3.128886 -1.500000 +v 0.003886 2.968750 -1.500000 +v 0.062500 2.750000 -1.500000 +v 0.003886 2.531250 -1.500000 +v -0.156250 2.371114 -1.500000 +v -0.375000 2.312500 -1.500000 +v -0.593750 2.371114 -1.500000 +v -0.753886 2.531250 -1.500000 +v -0.812500 2.750000 -1.500000 +v -0.753886 2.968750 -1.500000 +v -0.593750 3.128886 -1.500000 +v -0.375000 3.062500 -1.750000 +v -0.218750 3.020633 -1.750000 +v -0.104367 2.906250 -1.750000 +v -0.062500 2.750000 -1.750000 +v -0.104367 2.593750 -1.750000 +v -0.218750 2.479367 -1.750000 +v -0.375000 2.437500 -1.750000 +v -0.531250 2.479367 -1.750000 +v -0.645633 2.593750 -1.750000 +v -0.687500 2.750000 -1.750000 +v -0.645633 2.906250 -1.750000 +v -0.531250 3.020633 -1.750000 +v -0.375000 3.187500 -1.750000 +v -0.156250 3.128886 -1.750000 +v 0.003886 2.968750 -1.750000 +v 0.062500 2.750000 -1.750000 +v 0.003886 2.531250 -1.750000 +v -0.156250 2.371114 -1.750000 +v -0.375000 2.312500 -1.750000 +v -0.593750 2.371114 -1.750000 +v -0.753886 2.531250 -1.750000 +v -0.812500 2.750000 -1.750000 +v -0.753886 2.968750 -1.750000 +v -0.593750 3.128886 -1.750000 +v -0.375000 3.062500 -2.000000 +v -0.218750 3.020633 -2.000000 +v -0.104367 2.906250 -2.000000 +v -0.062500 2.750000 -2.000000 +v -0.104367 2.593750 -2.000000 +v -0.218750 2.479367 -2.000000 +v -0.375000 2.437500 -2.000000 +v -0.531250 2.479367 -2.000000 +v -0.645633 2.593750 -2.000000 +v -0.687500 2.750000 -2.000000 +v -0.645633 2.906250 -2.000000 +v -0.531250 3.020633 -2.000000 +v -0.531250 3.020633 -1.500000 +v -0.645633 2.906250 -1.500000 +v -0.687500 2.750000 -1.500000 +v -0.645633 2.593750 -1.500000 +v -0.531250 2.479367 -1.500000 +v -0.375000 2.437500 -1.500000 +v -0.218750 2.479367 -1.500000 +v -0.104367 2.593750 -1.500000 +v -0.062500 2.750000 -1.500000 +v -0.104367 2.906250 -1.500000 +v -0.218750 3.020633 -1.500000 +v -0.375000 3.062500 -1.500000 +v -0.593750 3.128886 -1.250000 +v -0.753886 2.968750 -1.250000 +v -0.812500 2.750000 -1.250000 +v -0.753886 2.531250 -1.250000 +v -0.593750 2.371114 -1.250000 +v -0.375000 2.312500 -1.250000 +v -0.156250 2.371114 -1.250000 +v 0.003886 2.531250 -1.250000 +v 0.062500 2.750000 -1.250000 +v 0.003886 2.968750 -1.250000 +v -0.156250 3.128886 -1.250000 +v -0.375000 3.187500 -1.250000 +v -0.531250 3.020633 -1.250000 +v -0.645633 2.906250 -1.250000 +v -0.687500 2.750000 -1.250000 +v -0.645633 2.593750 -1.250000 +v -0.531250 2.479367 -1.250000 +v -0.375000 2.437500 -1.250000 +v -0.218750 2.479367 -1.250000 +v -0.104367 2.593750 -1.250000 +v -0.062500 2.750000 -1.250000 +v -0.104367 2.906250 -1.250000 +v -0.218750 3.020633 -1.250000 +v -0.375000 3.062500 -1.250000 +v -0.593750 3.128886 -1.000000 +v -0.753886 2.968750 -1.000000 +v -0.812500 2.750000 -1.000000 +v -0.753886 2.531250 -1.000000 +v -0.593750 2.371114 -1.000000 +v -0.375000 2.312500 -1.000000 +v -0.156250 2.371114 -1.000000 +v 0.003886 2.531250 -1.000000 +v 0.062500 2.750000 -1.000000 +v 0.003886 2.968750 -1.000000 +v -0.156250 3.128886 -1.000000 +v -0.375000 3.187500 -1.000000 +v -0.531250 3.020633 -1.000000 +v -0.645633 2.906250 -1.000000 +v -0.687500 2.750000 -1.000000 +v -0.645633 2.593750 -1.000000 +v -0.531250 2.479367 -1.000000 +v -0.375000 2.437500 -1.000000 +v -0.218750 2.479367 -1.000000 +v -0.104367 2.593750 -1.000000 +v -0.062500 2.750000 -1.000000 +v -0.104367 2.906250 -1.000000 +v -0.218750 3.020633 -1.000000 +v -0.375000 3.062500 -1.000000 +v -0.593750 3.128886 -0.750000 +v -0.753886 2.968750 -0.750000 +v -0.812500 2.750000 -0.750000 +v -0.753886 2.531250 -0.750000 +v -0.593750 2.371114 -0.750000 +v -0.375000 2.312500 -0.750000 +v -0.156250 2.371114 -0.750000 +v 0.003886 2.531250 -0.750000 +v 0.062500 2.750000 -0.750000 +v 0.003886 2.968750 -0.750000 +v -0.156250 3.128886 -0.750000 +v -0.375000 3.187500 -0.750000 +v -0.531250 3.020633 -0.750000 +v -0.645633 2.906250 -0.750000 +v -0.687500 2.750000 -0.750000 +v -0.645633 2.593750 -0.750000 +v -0.531250 2.479367 -0.750000 +v -0.375000 2.437500 -0.750000 +v -0.218750 2.479367 -0.750000 +v -0.104367 2.593750 -0.750000 +v -0.062500 2.750000 -0.750000 +v -0.104367 2.906250 -0.750000 +v -0.218750 3.020633 -0.750000 +v -0.375000 3.062500 -0.750000 +v -0.593750 3.128886 -0.500000 +v -0.753886 2.968750 -0.500000 +v -0.812500 2.750000 -0.500000 +v -0.753886 2.531250 -0.500000 +v -0.593750 2.371114 -0.500000 +v -0.375000 2.312500 -0.500000 +v -0.156250 2.371114 -0.500000 +v 0.003886 2.531250 -0.500000 +v 0.062500 2.750000 -0.500000 +v 0.003886 2.968750 -0.500000 +v -0.156250 3.128886 -0.500000 +v -0.375000 3.187500 -0.500000 +vt 0.051829 0.846154 +vt 0.060976 0.833333 +vt 0.057927 0.846154 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.088415 0.846154 +vt 0.097561 0.833333 +vt 0.094512 0.846154 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.125000 0.846154 +vt 0.134146 0.833333 +vt 0.131098 0.846154 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.015244 0.846154 +vt 0.024390 0.833333 +vt 0.021341 0.846154 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.051829 0.846154 +vt 0.060976 0.833333 +vt 0.057927 0.846154 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.088415 0.846154 +vt 0.097561 0.833333 +vt 0.094512 0.846154 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.125000 0.846154 +vt 0.134146 0.833333 +vt 0.131098 0.846154 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.015244 0.846154 +vt 0.024390 0.833333 +vt 0.021341 0.846154 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.057927 0.794872 +vt 0.048780 0.807692 +vt 0.051829 0.794872 +vt 0.070122 0.794872 +vt 0.060976 0.807692 +vt 0.064024 0.794872 +vt 0.076220 0.794872 +vt 0.085366 0.807692 +vt 0.073171 0.807692 +vt 0.094512 0.794872 +vt 0.088415 0.794872 +vt 0.106707 0.794872 +vt 0.097561 0.807692 +vt 0.100610 0.794872 +vt 0.112805 0.794872 +vt 0.121951 0.807692 +vt 0.109756 0.807692 +vt 0.125000 0.794872 +vt 0.134146 0.807692 +vt 0.143293 0.794872 +vt 0.137195 0.794872 +vt 0.003049 0.794872 +vt 0.012195 0.807692 +vt 0.000000 0.807692 +vt 0.015244 0.794872 +vt 0.024390 0.807692 +vt 0.033537 0.794872 +vt 0.027439 0.794872 +vt 0.045732 0.794872 +vt 0.036585 0.807692 +vt 0.039634 0.794872 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.024390 0.833333 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.015244 0.846154 +vt 0.021341 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.134146 0.833333 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.125000 0.846154 +vt 0.131098 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.097561 0.833333 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.088415 0.846154 +vt 0.094512 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.060976 0.833333 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.051829 0.846154 +vt 0.057927 0.846154 +vt 0.045732 0.794872 +vt 0.036585 0.807692 +vt 0.039634 0.794872 +vt 0.033537 0.794872 +vt 0.024390 0.807692 +vt 0.027439 0.794872 +vt 0.021341 0.794872 +vt 0.012195 0.807692 +vt 0.015244 0.794872 +vt 0.003049 0.794872 +vt 0.000000 0.807692 +vt 0.143293 0.794872 +vt 0.134146 0.807692 +vt 0.137195 0.794872 +vt 0.131098 0.794872 +vt 0.121951 0.807692 +vt 0.125000 0.794872 +vt 0.112805 0.794872 +vt 0.109756 0.807692 +vt 0.106707 0.794872 +vt 0.097561 0.807692 +vt 0.100610 0.794872 +vt 0.088415 0.794872 +vt 0.085366 0.807692 +vt 0.076220 0.794872 +vt 0.073171 0.807692 +vt 0.070122 0.794872 +vt 0.060976 0.807692 +vt 0.064024 0.794872 +vt 0.051829 0.794872 +vt 0.048780 0.807692 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.024390 0.833333 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.015244 0.846154 +vt 0.021341 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.134146 0.833333 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.125000 0.846154 +vt 0.131098 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.097561 0.833333 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.088415 0.846154 +vt 0.094512 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.060976 0.833333 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.051829 0.846154 +vt 0.057927 0.846154 +vt 0.036585 0.807692 +vt 0.045732 0.794872 +vt 0.048780 0.807692 +vt 0.024390 0.807692 +vt 0.033537 0.794872 +vt 0.015244 0.794872 +vt 0.012195 0.807692 +vt 0.003049 0.794872 +vt 0.000000 0.807692 +vt 0.134146 0.807692 +vt 0.143293 0.794872 +vt 0.146341 0.807692 +vt 0.125000 0.794872 +vt 0.121951 0.807692 +vt 0.112805 0.794872 +vt 0.109756 0.807692 +vt 0.097561 0.807692 +vt 0.106707 0.794872 +vt 0.088415 0.794872 +vt 0.085366 0.807692 +vt 0.076220 0.794872 +vt 0.073171 0.807692 +vt 0.060976 0.807692 +vt 0.070122 0.794872 +vt 0.051829 0.794872 +vt 0.048780 0.833333 +vt 0.073171 0.833333 +vt 0.109756 0.833333 +vt 0.146341 0.833333 +vt -0.000000 0.833333 +vt 0.048780 0.833333 +vt 0.073171 0.833333 +vt 0.109756 0.833333 +vt 0.146341 0.833333 +vt 0.000000 0.833333 +vt 0.082317 0.794872 +vt 0.118902 0.794872 +vt 0.131098 0.794872 +vt 0.146341 0.807692 +vt 0.009146 0.794872 +vt 0.021341 0.794872 +vt 0.048780 0.833333 +vt 0.000000 0.833333 +vt 0.146341 0.833333 +vt 0.109756 0.833333 +vt 0.073171 0.833333 +vt 0.009146 0.794872 +vt 0.146341 0.807692 +vt 0.118902 0.794872 +vt 0.094512 0.794872 +vt 0.082317 0.794872 +vt 0.057927 0.794872 +vt 0.048780 0.833333 +vt 0.000000 0.833333 +vt 0.146341 0.833333 +vt 0.109756 0.833333 +vt 0.073171 0.833333 +vt 0.039634 0.794872 +vt 0.027439 0.794872 +vt 0.021341 0.794872 +vt 0.009146 0.794872 +vt 0.137195 0.794872 +vt 0.131098 0.794872 +vt 0.118902 0.794872 +vt 0.100610 0.794872 +vt 0.094512 0.794872 +vt 0.082317 0.794872 +vt 0.064024 0.794872 +vt 0.057927 0.794872 +vt 0.134146 0.807692 +vt 0.121951 0.807692 +vt 0.060976 0.807692 +vt 0.085366 0.807692 +vt 0.036585 0.807692 +vt 0.024390 0.807692 +vt 0.097561 0.807692 +vt 0.048780 0.807692 +vt 0.012195 0.807692 +vt -0.000000 0.807692 +vt 0.109756 0.807692 +vt 0.073171 0.807692 +vt 0.106707 0.871795 +vt 0.100610 0.871795 +vt 0.039634 0.871795 +vt 0.003049 0.871795 +vt 0.112805 0.871795 +vt 0.057927 0.871795 +vt 0.051829 0.871795 +vt 0.076220 0.871795 +vt 0.015244 0.871795 +vt 0.125000 0.871795 +vt 0.070122 0.871795 +vt 0.064024 0.871795 +vt 0.088415 0.871795 +vt 0.027439 0.871795 +vt 0.137195 0.871795 +vt 0.100610 0.871795 +vt 0.039634 0.871795 +vt 0.003049 0.871795 +vt 0.112805 0.871795 +vt 0.051829 0.871795 +vt 0.082317 0.871795 +vt 0.076220 0.871795 +vt 0.015244 0.871795 +vt 0.125000 0.871795 +vt 0.064024 0.871795 +vt 0.088415 0.871795 +vt 0.027439 0.871795 +vt 0.137195 0.871795 +vt 0.137195 0.871795 +vt 0.027439 0.871795 +vt 0.088415 0.871795 +vt 0.070122 0.871795 +vt 0.064024 0.871795 +vt 0.125000 0.871795 +vt 0.015244 0.871795 +vt 0.076220 0.871795 +vt 0.051829 0.871795 +vt 0.112805 0.871795 +vt 0.003049 0.871795 +vt 0.039634 0.871795 +vt 0.100610 0.871795 +vt 0.137195 0.871795 +vt 0.027439 0.871795 +vt 0.088415 0.871795 +vt 0.070122 0.871795 +vt 0.064024 0.871795 +vt 0.125000 0.871795 +vt 0.015244 0.871795 +vt 0.076220 0.871795 +vt 0.051829 0.871795 +vt 0.112805 0.871795 +vt 0.003049 0.871795 +vt 0.039634 0.871795 +vt 0.100610 0.871795 +vt 0.146341 0.807692 +vt 0.045732 0.871795 +vt 0.009146 0.871795 +vt 0.118902 0.871795 +vt 0.082317 0.871795 +vt 0.021341 0.871795 +vt 0.131098 0.871795 +vt 0.094512 0.871795 +vt 0.033537 0.871795 +vt 0.143293 0.871795 +vt 0.106707 0.871795 +vt 0.045732 0.871795 +vt 0.009146 0.871795 +vt 0.118902 0.871795 +vt 0.057927 0.871795 +vt 0.021341 0.871795 +vt 0.131098 0.871795 +vt 0.070122 0.871795 +vt 0.094512 0.871795 +vt 0.033537 0.871795 +vt 0.143293 0.871795 +vt 0.143293 0.871795 +vt 0.033537 0.871795 +vt 0.094512 0.871795 +vt 0.131098 0.871795 +vt 0.021341 0.871795 +vt 0.082317 0.871795 +vt 0.057927 0.871795 +vt 0.118902 0.871795 +vt 0.009146 0.871795 +vt 0.045732 0.871795 +vt 0.106707 0.871795 +vt 0.143293 0.871795 +vt 0.033537 0.871795 +vt 0.094512 0.871795 +vt 0.131098 0.871795 +vt 0.021341 0.871795 +vt 0.082317 0.871795 +vt 0.057927 0.871795 +vt 0.118902 0.871795 +vt 0.009146 0.871795 +vt 0.045732 0.871795 +vt 0.106707 0.871795 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +s off +f 219/293/32 232/294/32 220/295/32 +f 232/294/32 209/296/32 220/297/32 +f 209/298/32 222/299/32 210/300/32 +f 210/301/32 223/302/32 211/303/32 +f 223/302/32 212/304/32 211/305/32 +f 212/306/32 225/307/32 213/308/32 +f 213/309/32 226/310/32 214/311/32 +f 226/310/32 215/312/32 214/313/32 +f 215/314/32 228/315/32 216/316/32 +f 216/317/32 229/318/32 217/319/32 +f 229/318/32 218/320/32 217/321/32 +f 230/322/32 219/323/32 218/324/32 +f 267/325/32 280/326/32 268/327/32 +f 280/326/32 257/328/32 268/329/32 +f 257/330/32 270/331/32 258/332/32 +f 258/333/32 271/334/32 259/335/32 +f 271/334/32 260/336/32 259/337/32 +f 260/338/32 273/339/32 261/340/32 +f 261/341/32 274/342/32 262/343/32 +f 274/342/32 263/344/32 262/345/32 +f 263/346/32 276/347/32 264/348/32 +f 264/349/32 277/350/32 265/351/32 +f 277/350/32 266/352/32 265/353/32 +f 278/354/32 267/355/32 266/356/32 +f 293/357/33 255/358/33 294/359/33 +f 304/360/33 256/361/33 293/362/33 +f 304/363/33 246/364/33 245/365/33 +f 302/366/33 246/364/33 303/367/33 +f 301/368/33 247/369/33 302/370/33 +f 301/371/33 249/372/33 248/373/33 +f 300/374/33 250/375/33 249/372/33 +f 298/376/33 250/375/33 299/377/33 +f 298/378/33 252/379/33 251/380/33 +f 297/381/33 253/382/33 252/379/33 +f 295/383/33 253/382/33 296/384/33 +f 294/385/33 254/386/33 295/387/33 +f 307/388/32 318/389/32 319/390/32 +f 308/391/32 319/392/32 320/393/32 +f 321/394/32 308/391/32 320/395/32 +f 322/396/32 309/397/32 321/398/32 +f 311/399/32 322/400/32 323/401/32 +f 324/402/32 311/399/32 323/403/32 +f 325/404/32 312/405/32 324/406/32 +f 314/407/32 325/408/32 326/409/32 +f 327/410/32 314/407/32 326/411/32 +f 328/412/32 315/413/32 327/414/32 +f 305/415/32 328/416/32 317/417/32 +f 318/418/32 305/415/32 317/419/32 +f 243/420/33 379/421/33 242/422/33 +f 242/423/33 380/424/33 241/425/33 +f 241/426/33 381/427/33 240/428/33 +f 239/429/33 381/427/33 382/430/33 +f 239/431/33 383/432/33 238/433/33 +f 238/434/33 384/435/33 237/436/33 +f 236/437/33 384/435/33 385/438/33 +f 236/439/33 386/440/33 235/441/33 +f 234/442/33 386/440/33 387/443/33 +f 233/444/33 387/443/33 388/445/33 +f 233/446/33 377/447/33 244/448/33 +f 243/449/33 377/447/33 378/450/33 +f 355/451/32 366/452/32 367/453/32 +f 356/454/32 367/455/32 368/456/32 +f 369/457/32 356/454/32 368/458/32 +f 370/459/32 357/460/32 369/461/32 +f 359/462/32 370/463/32 371/464/32 +f 372/465/32 359/462/32 371/466/32 +f 373/467/32 360/468/32 372/469/32 +f 362/470/32 373/471/32 374/472/32 +f 375/473/32 362/470/32 374/474/32 +f 376/475/32 363/476/32 375/477/32 +f 353/478/32 376/479/32 365/480/32 +f 366/481/32 353/478/32 365/482/32 +f 331/483/33 342/484/33 330/485/33 +f 332/486/33 343/487/33 331/483/33 +f 345/488/33 332/486/33 333/489/33 +f 346/490/33 333/489/33 334/491/33 +f 335/492/33 346/493/33 334/494/33 +f 348/495/33 335/492/33 336/496/33 +f 349/497/33 336/496/33 337/498/33 +f 338/499/33 349/500/33 337/498/33 +f 351/501/33 338/499/33 339/502/33 +f 352/503/33 339/502/33 340/504/33 +f 329/505/33 352/506/33 340/504/33 +f 342/507/33 329/505/33 330/485/33 +f 219/293/32 231/508/32 232/294/32 +f 232/294/32 221/509/32 209/296/32 +f 209/298/32 221/509/32 222/299/32 +f 210/301/32 222/299/32 223/302/32 +f 223/302/32 224/510/32 212/304/32 +f 212/306/32 224/510/32 225/307/32 +f 213/309/32 225/307/32 226/310/32 +f 226/310/32 227/511/32 215/312/32 +f 215/314/32 227/512/32 228/315/32 +f 216/317/32 228/315/32 229/318/32 +f 229/318/32 230/322/32 218/320/32 +f 230/322/32 231/508/32 219/323/32 +f 267/325/32 279/513/32 280/326/32 +f 280/326/32 269/514/32 257/328/32 +f 257/330/32 269/514/32 270/331/32 +f 258/333/32 270/331/32 271/334/32 +f 271/334/32 272/515/32 260/336/32 +f 260/338/32 272/515/32 273/339/32 +f 261/341/32 273/339/32 274/342/32 +f 274/342/32 275/516/32 263/344/32 +f 263/346/32 275/517/32 276/347/32 +f 264/349/32 276/347/32 277/350/32 +f 277/350/32 278/354/32 266/352/32 +f 278/354/32 279/513/32 267/355/32 +f 293/357/33 256/361/33 255/358/33 +f 304/360/33 245/365/33 256/361/33 +f 304/363/33 303/518/33 246/364/33 +f 302/366/33 247/369/33 246/364/33 +f 301/368/33 248/373/33 247/369/33 +f 301/371/33 300/519/33 249/372/33 +f 300/374/33 299/520/33 250/375/33 +f 298/376/33 251/521/33 250/375/33 +f 298/378/33 297/522/33 252/379/33 +f 297/381/33 296/523/33 253/382/33 +f 295/383/33 254/386/33 253/382/33 +f 294/385/33 255/358/33 254/386/33 +f 307/388/32 306/524/32 318/389/32 +f 308/391/32 307/388/32 319/392/32 +f 321/394/32 309/397/32 308/391/32 +f 322/396/32 310/525/32 309/397/32 +f 311/399/32 310/526/32 322/400/32 +f 324/402/32 312/405/32 311/399/32 +f 325/404/32 313/527/32 312/405/32 +f 314/407/32 313/527/32 325/408/32 +f 327/410/32 315/413/32 314/407/32 +f 328/412/32 316/528/32 315/413/32 +f 305/415/32 316/528/32 328/416/32 +f 318/418/32 306/524/32 305/415/32 +f 243/420/33 378/450/33 379/421/33 +f 242/423/33 379/421/33 380/424/33 +f 241/426/33 380/424/33 381/427/33 +f 239/429/33 240/529/33 381/427/33 +f 239/431/33 382/530/33 383/432/33 +f 238/434/33 383/432/33 384/435/33 +f 236/437/33 237/531/33 384/435/33 +f 236/439/33 385/438/33 386/440/33 +f 234/442/33 235/532/33 386/440/33 +f 233/444/33 234/533/33 387/443/33 +f 233/446/33 388/445/33 377/447/33 +f 243/449/33 244/534/33 377/447/33 +f 355/451/32 354/535/32 366/452/32 +f 356/454/32 355/451/32 367/455/32 +f 369/457/32 357/460/32 356/454/32 +f 370/459/32 358/536/32 357/460/32 +f 359/462/32 358/537/32 370/463/32 +f 372/465/32 360/468/32 359/462/32 +f 373/467/32 361/538/32 360/468/32 +f 362/470/32 361/538/32 373/471/32 +f 375/473/32 363/476/32 362/470/32 +f 376/475/32 364/539/32 363/476/32 +f 353/478/32 364/539/32 376/479/32 +f 366/481/32 354/535/32 353/478/32 +f 331/483/33 343/540/33 342/484/33 +f 332/486/33 344/541/33 343/487/33 +f 345/488/33 344/542/33 332/486/33 +f 346/490/33 345/543/33 333/489/33 +f 335/492/33 347/544/33 346/493/33 +f 348/495/33 347/545/33 335/492/33 +f 349/497/33 348/546/33 336/496/33 +f 338/499/33 350/547/33 349/500/33 +f 351/501/33 350/548/33 338/499/33 +f 352/503/33 351/549/33 339/502/33 +f 329/505/33 341/550/33 352/506/33 +f 342/507/33 341/551/33 329/505/33 +s 1 +f 202/552/34 225/307/35 201/553/35 +f 208/554/36 221/509/37 232/294/36 +f 198/555/38 223/302/39 222/299/38 +f 206/556/40 229/318/41 205/557/41 +f 202/552/34 227/511/42 226/310/34 +f 199/558/39 224/510/43 223/302/39 +f 207/559/44 230/322/40 206/556/40 +f 204/560/45 227/512/42 203/561/42 +f 201/553/35 224/510/43 200/562/43 +f 208/554/36 231/508/44 207/559/44 +f 198/555/38 221/509/37 197/563/37 +f 205/557/41 228/315/45 204/560/45 +f 211/305/39 236/564/43 235/565/39 +f 219/323/44 242/566/40 218/324/40 +f 216/316/45 239/567/42 215/314/42 +f 213/308/35 236/568/43 212/306/43 +f 219/293/44 244/569/36 243/570/44 +f 210/300/38 233/571/37 209/298/37 +f 217/319/41 240/572/45 216/317/45 +f 214/311/34 237/573/35 213/309/35 +f 220/297/36 233/574/37 244/575/36 +f 211/303/39 234/576/38 210/301/38 +f 218/320/40 241/577/41 217/321/41 +f 215/312/42 238/578/34 214/313/34 +f 250/375/34 273/339/35 249/372/35 +f 245/365/37 280/326/36 256/361/36 +f 247/369/39 270/331/38 246/364/38 +f 254/386/40 277/350/41 253/382/41 +f 251/521/42 274/342/34 250/375/34 +f 248/373/43 271/334/39 247/369/39 +f 255/358/44 278/354/40 254/386/40 +f 252/379/45 275/517/42 251/380/42 +f 249/372/35 272/515/43 248/373/43 +f 255/358/44 280/326/36 279/513/44 +f 246/364/38 269/514/37 245/365/37 +f 253/382/41 276/347/45 252/379/45 +f 260/336/43 283/579/39 259/337/39 +f 267/355/44 290/580/40 266/356/40 +f 264/348/45 287/581/42 263/346/42 +f 261/340/35 284/582/43 260/338/43 +f 268/327/36 291/583/44 267/325/44 +f 257/330/37 282/584/38 281/585/37 +f 265/351/41 288/586/45 264/349/45 +f 262/343/34 285/587/35 261/341/35 +f 257/328/37 292/588/36 268/329/36 +f 259/335/39 282/589/38 258/333/38 +f 266/352/40 289/590/41 265/353/41 +f 263/344/42 286/591/34 262/345/34 +f 322/400/42 299/592/34 323/401/34 +f 319/392/40 296/593/41 320/393/41 +f 326/411/39 303/594/38 327/410/38 +f 317/417/36 304/595/37 293/596/36 +f 323/403/34 300/597/35 324/402/35 +f 320/395/41 297/598/45 321/394/45 +f 327/414/38 304/599/37 328/412/37 +f 317/419/36 294/600/44 318/418/44 +f 324/406/35 301/601/43 325/404/43 +f 321/398/45 298/602/42 322/396/42 +f 318/389/44 295/603/40 319/390/40 +f 325/408/43 302/604/39 326/409/39 +f 332/486/41 309/397/45 333/489/45 +f 339/502/38 316/528/37 340/504/37 +f 329/505/36 306/524/44 330/485/44 +f 336/496/35 313/527/43 337/498/43 +f 333/489/45 310/525/42 334/491/42 +f 330/485/44 307/388/40 331/483/40 +f 337/498/43 314/407/39 338/499/39 +f 334/494/42 311/399/34 335/492/34 +f 331/483/40 308/391/41 332/486/41 +f 338/499/39 315/413/38 339/502/38 +f 340/504/37 305/415/36 329/505/36 +f 335/492/34 312/405/35 336/496/35 +f 370/463/42 347/605/34 371/464/34 +f 367/455/40 344/606/41 368/456/41 +f 374/474/39 351/607/38 375/473/38 +f 365/480/36 352/608/37 341/609/36 +f 371/466/34 348/610/35 372/465/35 +f 368/458/41 345/611/45 369/457/45 +f 375/477/38 352/612/37 376/475/37 +f 365/482/36 342/613/44 366/481/44 +f 372/469/35 349/614/43 373/467/43 +f 369/461/45 346/615/42 370/459/42 +f 366/452/44 343/616/40 367/453/40 +f 373/471/43 350/617/39 374/472/39 +f 380/424/41 357/460/45 381/427/45 +f 388/445/37 363/476/38 364/539/37 +f 377/447/36 354/535/44 378/450/44 +f 385/438/43 360/468/35 361/538/43 +f 381/427/45 358/536/42 382/430/42 +f 378/450/44 355/451/40 379/421/40 +f 385/438/43 362/470/39 386/440/39 +f 382/530/42 359/462/34 383/432/34 +f 379/421/40 356/454/41 380/424/41 +f 386/440/39 363/476/38 387/443/38 +f 388/445/37 353/478/36 377/447/36 +f 383/432/34 360/468/35 384/435/35 +f 202/552/34 226/310/34 225/307/35 +f 208/554/36 197/563/37 221/509/37 +f 198/555/38 199/558/39 223/302/39 +f 206/556/40 230/322/40 229/318/41 +f 202/552/34 203/618/42 227/511/42 +f 199/558/39 200/562/43 224/510/43 +f 207/559/44 231/508/44 230/322/40 +f 204/560/45 228/315/45 227/512/42 +f 201/553/35 225/307/35 224/510/43 +f 208/554/36 232/294/36 231/508/44 +f 198/555/38 222/299/38 221/509/37 +f 205/557/41 229/318/41 228/315/45 +f 211/305/39 212/304/43 236/564/43 +f 219/323/44 243/619/44 242/566/40 +f 216/316/45 240/620/45 239/567/42 +f 213/308/35 237/621/35 236/568/43 +f 219/293/44 220/295/36 244/569/36 +f 210/300/38 234/622/38 233/571/37 +f 217/319/41 241/623/41 240/572/45 +f 214/311/34 238/624/34 237/573/35 +f 220/297/36 209/296/37 233/574/37 +f 211/303/39 235/625/39 234/576/38 +f 218/320/40 242/626/40 241/577/41 +f 215/312/42 239/627/42 238/578/34 +f 250/375/34 274/342/34 273/339/35 +f 245/365/37 269/514/37 280/326/36 +f 247/369/39 271/334/39 270/331/38 +f 254/386/40 278/354/40 277/350/41 +f 251/521/42 275/516/42 274/342/34 +f 248/373/43 272/515/43 271/334/39 +f 255/358/44 279/513/44 278/354/40 +f 252/379/45 276/347/45 275/517/42 +f 249/372/35 273/339/35 272/515/43 +f 255/358/44 256/361/36 280/326/36 +f 246/364/38 270/331/38 269/514/37 +f 253/382/41 277/350/41 276/347/45 +f 260/336/43 284/628/43 283/579/39 +f 267/355/44 291/629/44 290/580/40 +f 264/348/45 288/630/45 287/581/42 +f 261/340/35 285/631/35 284/582/43 +f 268/327/36 292/632/36 291/583/44 +f 257/330/37 258/332/38 282/584/38 +f 265/351/41 289/633/41 288/586/45 +f 262/343/34 286/634/34 285/587/35 +f 257/328/37 281/635/37 292/588/36 +f 259/335/39 283/636/39 282/589/38 +f 266/352/40 290/637/40 289/590/41 +f 263/344/42 287/638/42 286/591/34 +f 322/400/42 298/639/42 299/592/34 +f 319/392/40 295/640/40 296/593/41 +f 326/411/39 302/641/39 303/594/38 +f 317/417/36 328/416/37 304/595/37 +f 323/403/34 299/642/34 300/597/35 +f 320/395/41 296/643/41 297/598/45 +f 327/414/38 303/644/38 304/599/37 +f 317/419/36 293/645/36 294/600/44 +f 324/406/35 300/646/35 301/601/43 +f 321/398/45 297/647/45 298/602/42 +f 318/389/44 294/648/44 295/603/40 +f 325/408/43 301/649/43 302/604/39 +f 332/486/41 308/391/41 309/397/45 +f 339/502/38 315/413/38 316/528/37 +f 329/505/36 305/415/36 306/524/44 +f 336/496/35 312/405/35 313/527/43 +f 333/489/45 309/397/45 310/525/42 +f 330/485/44 306/524/44 307/388/40 +f 337/498/43 313/527/43 314/407/39 +f 334/494/42 310/526/42 311/399/34 +f 331/483/40 307/388/40 308/391/41 +f 338/499/39 314/407/39 315/413/38 +f 340/504/37 316/528/37 305/415/36 +f 335/492/34 311/399/34 312/405/35 +f 370/463/42 346/650/42 347/605/34 +f 367/455/40 343/651/40 344/606/41 +f 374/474/39 350/652/39 351/607/38 +f 365/480/36 376/479/37 352/608/37 +f 371/466/34 347/653/34 348/610/35 +f 368/458/41 344/654/41 345/611/45 +f 375/477/38 351/655/38 352/612/37 +f 365/482/36 341/656/36 342/613/44 +f 372/469/35 348/657/35 349/614/43 +f 369/461/45 345/658/45 346/615/42 +f 366/452/44 342/659/44 343/616/40 +f 373/471/43 349/660/43 350/617/39 +f 380/424/41 356/454/41 357/460/45 +f 388/445/37 387/443/38 363/476/38 +f 377/447/36 353/478/36 354/535/44 +f 385/438/43 384/435/35 360/468/35 +f 381/427/45 357/460/45 358/536/42 +f 378/450/44 354/535/44 355/451/40 +f 385/438/43 361/538/43 362/470/39 +f 382/530/42 358/537/42 359/462/34 +f 379/421/40 355/451/40 356/454/41 +f 386/440/39 362/470/39 363/476/38 +f 388/445/37 364/539/37 353/478/36 +f 383/432/34 359/462/34 360/468/35 +o BladesLeft +v 0.375000 3.187500 -2.000000 +v 0.156250 3.128886 -2.000000 +v -0.003886 2.968750 -2.000000 +v -0.062500 2.750000 -2.000000 +v -0.003886 2.531250 -2.000000 +v 0.156250 2.371114 -2.000000 +v 0.375000 2.312500 -2.000000 +v 0.593750 2.371114 -2.000000 +v 0.753886 2.531250 -2.000000 +v 0.812500 2.750000 -2.000000 +v 0.753886 2.968750 -2.000000 +v 0.593750 3.128886 -2.000000 +v 0.375000 3.062500 -1.750000 +v 0.218750 3.020633 -1.750000 +v 0.104367 2.906250 -1.750000 +v 0.062500 2.750000 -1.750000 +v 0.104367 2.593750 -1.750000 +v 0.218750 2.479367 -1.750000 +v 0.375000 2.437500 -1.750000 +v 0.531250 2.479367 -1.750000 +v 0.645633 2.593750 -1.750000 +v 0.687500 2.750000 -1.750000 +v 0.645633 2.906250 -1.750000 +v 0.531250 3.020633 -1.750000 +v 0.375000 3.187500 -1.750000 +v 0.156250 3.128886 -1.750000 +v -0.003886 2.968750 -1.750000 +v -0.062500 2.750000 -1.750000 +v -0.003886 2.531250 -1.750000 +v 0.156250 2.371114 -1.750000 +v 0.375000 2.312500 -1.750000 +v 0.593750 2.371114 -1.750000 +v 0.753886 2.531250 -1.750000 +v 0.812500 2.750000 -1.750000 +v 0.753886 2.968750 -1.750000 +v 0.593750 3.128886 -1.750000 +v 0.375000 3.062500 -1.500000 +v 0.218750 3.020633 -1.500000 +v 0.104367 2.906250 -1.500000 +v 0.062500 2.750000 -1.500000 +v 0.104367 2.593750 -1.500000 +v 0.218750 2.479367 -1.500000 +v 0.375000 2.437500 -1.500000 +v 0.531250 2.479367 -1.500000 +v 0.645633 2.593750 -1.500000 +v 0.687500 2.750000 -1.500000 +v 0.645633 2.906250 -1.500000 +v 0.531250 3.020633 -1.500000 +v 0.375000 3.187500 -0.500000 +v 0.156250 3.128886 -0.500000 +v -0.003886 2.968750 -0.500000 +v -0.062500 2.750000 -0.500000 +v -0.003886 2.531250 -0.500000 +v 0.156250 2.371114 -0.500000 +v 0.375000 2.312500 -0.500000 +v 0.593750 2.371114 -0.500000 +v 0.753886 2.531250 -0.500000 +v 0.812500 2.750000 -0.500000 +v 0.753886 2.968750 -0.500000 +v 0.593750 3.128886 -0.500000 +v 0.375000 3.062500 -0.250000 +v 0.218750 3.020633 -0.250000 +v 0.104367 2.906250 -0.250000 +v 0.062500 2.750000 -0.250000 +v 0.104367 2.593750 -0.250000 +v 0.218750 2.479367 -0.250000 +v 0.375000 2.437500 -0.250000 +v 0.531250 2.479367 -0.250000 +v 0.645633 2.593750 -0.250000 +v 0.687500 2.750000 -0.250000 +v 0.645633 2.906250 -0.250000 +v 0.531250 3.020633 -0.250000 +v 0.375000 3.187500 -0.250000 +v 0.156250 3.128886 -0.250000 +v -0.003886 2.968750 -0.250000 +v -0.062500 2.750000 -0.250000 +v -0.003886 2.531250 -0.250000 +v 0.156250 2.371114 -0.250000 +v 0.375000 2.312500 -0.250000 +v 0.593750 2.371114 -0.250000 +v 0.753886 2.531250 -0.250000 +v 0.812500 2.750000 -0.250000 +v 0.753886 2.968750 -0.250000 +v 0.593750 3.128886 -0.250000 +v 0.375000 3.062500 0.000000 +v 0.218750 3.020633 0.000000 +v 0.104367 2.906250 0.000000 +v 0.062500 2.750000 0.000000 +v 0.104367 2.593750 0.000000 +v 0.218750 2.479367 0.000000 +v 0.375000 2.437500 0.000000 +v 0.531250 2.479367 0.000000 +v 0.645633 2.593750 0.000000 +v 0.687500 2.750000 0.000000 +v 0.645633 2.906250 0.000000 +v 0.531250 3.020633 0.000000 +v 0.531250 3.020633 -0.500000 +v 0.645633 2.906250 -0.500000 +v 0.687500 2.750000 -0.500000 +v 0.645633 2.593750 -0.500000 +v 0.531250 2.479367 -0.500000 +v 0.375000 2.437500 -0.500000 +v 0.218750 2.479367 -0.500000 +v 0.104367 2.593750 -0.500000 +v 0.062500 2.750000 -0.500000 +v 0.104367 2.906250 -0.500000 +v 0.218750 3.020633 -0.500000 +v 0.375000 3.062500 -0.500000 +v 0.593750 3.128886 -0.750000 +v 0.753886 2.968750 -0.750000 +v 0.812500 2.750000 -0.750000 +v 0.753886 2.531250 -0.750000 +v 0.593750 2.371114 -0.750000 +v 0.375000 2.312500 -0.750000 +v 0.156250 2.371114 -0.750000 +v -0.003886 2.531250 -0.750000 +v -0.062500 2.750000 -0.750000 +v -0.003886 2.968750 -0.750000 +v 0.156250 3.128886 -0.750000 +v 0.375000 3.187500 -0.750000 +v 0.531250 3.020633 -0.750000 +v 0.645633 2.906250 -0.750000 +v 0.687500 2.750000 -0.750000 +v 0.645633 2.593750 -0.750000 +v 0.531250 2.479367 -0.750000 +v 0.375000 2.437500 -0.750000 +v 0.218750 2.479367 -0.750000 +v 0.104367 2.593750 -0.750000 +v 0.062500 2.750000 -0.750000 +v 0.104367 2.906250 -0.750000 +v 0.218750 3.020633 -0.750000 +v 0.375000 3.062500 -0.750000 +v 0.593750 3.128886 -1.000000 +v 0.753886 2.968750 -1.000000 +v 0.812500 2.750000 -1.000000 +v 0.753886 2.531250 -1.000000 +v 0.593750 2.371114 -1.000000 +v 0.375000 2.312500 -1.000000 +v 0.156250 2.371114 -1.000000 +v -0.003886 2.531250 -1.000000 +v -0.062500 2.750000 -1.000000 +v -0.003886 2.968750 -1.000000 +v 0.156250 3.128886 -1.000000 +v 0.375000 3.187500 -1.000000 +v 0.531250 3.020633 -1.000000 +v 0.645633 2.906250 -1.000000 +v 0.687500 2.750000 -1.000000 +v 0.645633 2.593750 -1.000000 +v 0.531250 2.479367 -1.000000 +v 0.375000 2.437500 -1.000000 +v 0.218750 2.479367 -1.000000 +v 0.104367 2.593750 -1.000000 +v 0.062500 2.750000 -1.000000 +v 0.104367 2.906250 -1.000000 +v 0.218750 3.020633 -1.000000 +v 0.375000 3.062500 -1.000000 +v 0.593750 3.128886 -1.250000 +v 0.753886 2.968750 -1.250000 +v 0.812500 2.750000 -1.250000 +v 0.753886 2.531250 -1.250000 +v 0.593750 2.371114 -1.250000 +v 0.375000 2.312500 -1.250000 +v 0.156250 2.371114 -1.250000 +v -0.003886 2.531250 -1.250000 +v -0.062500 2.750000 -1.250000 +v -0.003886 2.968750 -1.250000 +v 0.156250 3.128886 -1.250000 +v 0.375000 3.187500 -1.250000 +v 0.531250 3.020633 -1.250000 +v 0.645633 2.906250 -1.250000 +v 0.687500 2.750000 -1.250000 +v 0.645633 2.593750 -1.250000 +v 0.531250 2.479367 -1.250000 +v 0.375000 2.437500 -1.250000 +v 0.218750 2.479367 -1.250000 +v 0.104367 2.593750 -1.250000 +v 0.062500 2.750000 -1.250000 +v 0.104367 2.906250 -1.250000 +v 0.218750 3.020633 -1.250000 +v 0.375000 3.062500 -1.250000 +v 0.593750 3.128886 -1.500000 +v 0.753886 2.968750 -1.500000 +v 0.812500 2.750000 -1.500000 +v 0.753886 2.531250 -1.500000 +v 0.593750 2.371114 -1.500000 +v 0.375000 2.312500 -1.500000 +v 0.156250 2.371114 -1.500000 +v -0.003886 2.531250 -1.500000 +v -0.062500 2.750000 -1.500000 +v -0.003886 2.968750 -1.500000 +v 0.156250 3.128886 -1.500000 +v 0.375000 3.187500 -1.500000 +vt 0.051829 0.846154 +vt 0.060976 0.833333 +vt 0.057927 0.846154 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.088415 0.846154 +vt 0.097561 0.833333 +vt 0.094512 0.846154 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.125000 0.846154 +vt 0.134146 0.833333 +vt 0.131098 0.846154 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.015244 0.846154 +vt 0.024390 0.833333 +vt 0.021341 0.846154 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.051829 0.846154 +vt 0.060976 0.833333 +vt 0.057927 0.846154 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.088415 0.846154 +vt 0.097561 0.833333 +vt 0.094512 0.846154 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.125000 0.846154 +vt 0.134146 0.833333 +vt 0.131098 0.846154 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.015244 0.846154 +vt 0.024390 0.833333 +vt 0.021341 0.846154 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.057927 0.794872 +vt 0.048780 0.807692 +vt 0.051829 0.794872 +vt 0.070122 0.794872 +vt 0.060976 0.807692 +vt 0.064024 0.794872 +vt 0.076220 0.794872 +vt 0.085366 0.807692 +vt 0.073171 0.807692 +vt 0.094512 0.794872 +vt 0.088415 0.794872 +vt 0.106707 0.794872 +vt 0.097561 0.807692 +vt 0.100610 0.794872 +vt 0.112805 0.794872 +vt 0.121951 0.807692 +vt 0.109756 0.807692 +vt 0.131098 0.794872 +vt 0.125000 0.794872 +vt 0.143293 0.794872 +vt 0.134146 0.807692 +vt 0.137195 0.794872 +vt 0.003049 0.794872 +vt 0.012195 0.807692 +vt 0.000000 0.807692 +vt 0.021341 0.794872 +vt 0.015244 0.794872 +vt 0.033537 0.794872 +vt 0.024390 0.807692 +vt 0.027439 0.794872 +vt 0.045732 0.794872 +vt 0.036585 0.807692 +vt 0.039634 0.794872 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.024390 0.833333 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.015244 0.846154 +vt 0.021341 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.134146 0.833333 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.125000 0.846154 +vt 0.131098 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.097561 0.833333 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.088415 0.846154 +vt 0.094512 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.060976 0.833333 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.051829 0.846154 +vt 0.057927 0.846154 +vt 0.045732 0.794872 +vt 0.036585 0.807692 +vt 0.039634 0.794872 +vt 0.033537 0.794872 +vt 0.024390 0.807692 +vt 0.027439 0.794872 +vt 0.021341 0.794872 +vt 0.012195 0.807692 +vt 0.015244 0.794872 +vt 0.003049 0.794872 +vt 0.000000 0.807692 +vt 0.143293 0.794872 +vt 0.134146 0.807692 +vt 0.137195 0.794872 +vt 0.131098 0.794872 +vt 0.121951 0.807692 +vt 0.125000 0.794872 +vt 0.112805 0.794872 +vt 0.109756 0.807692 +vt 0.106707 0.794872 +vt 0.097561 0.807692 +vt 0.100610 0.794872 +vt 0.094512 0.794872 +vt 0.085366 0.807692 +vt 0.088415 0.794872 +vt 0.076220 0.794872 +vt 0.073171 0.807692 +vt 0.070122 0.794872 +vt 0.060976 0.807692 +vt 0.064024 0.794872 +vt 0.057927 0.794872 +vt 0.048780 0.807692 +vt 0.051829 0.794872 +vt 0.036585 0.833333 +vt 0.045732 0.846154 +vt 0.039634 0.846154 +vt 0.024390 0.833333 +vt 0.033537 0.846154 +vt 0.027439 0.846154 +vt 0.015244 0.846154 +vt 0.021341 0.846154 +vt 0.003049 0.846154 +vt 0.012195 0.833333 +vt 0.009146 0.846154 +vt 0.134146 0.833333 +vt 0.143293 0.846154 +vt 0.137195 0.846154 +vt 0.125000 0.846154 +vt 0.131098 0.846154 +vt 0.112805 0.846154 +vt 0.121951 0.833333 +vt 0.118902 0.846154 +vt 0.097561 0.833333 +vt 0.106707 0.846154 +vt 0.100610 0.846154 +vt 0.088415 0.846154 +vt 0.094512 0.846154 +vt 0.076220 0.846154 +vt 0.085366 0.833333 +vt 0.082317 0.846154 +vt 0.060976 0.833333 +vt 0.070122 0.846154 +vt 0.064024 0.846154 +vt 0.051829 0.846154 +vt 0.057927 0.846154 +vt 0.036585 0.807692 +vt 0.045732 0.794872 +vt 0.048780 0.807692 +vt 0.024390 0.807692 +vt 0.033537 0.794872 +vt 0.015244 0.794872 +vt 0.012195 0.807692 +vt 0.003049 0.794872 +vt 0.000000 0.807692 +vt 0.134146 0.807692 +vt 0.143293 0.794872 +vt 0.146341 0.807692 +vt 0.125000 0.794872 +vt 0.121951 0.807692 +vt 0.112805 0.794872 +vt 0.109756 0.807692 +vt 0.097561 0.807692 +vt 0.106707 0.794872 +vt 0.088415 0.794872 +vt 0.085366 0.807692 +vt 0.076220 0.794872 +vt 0.073171 0.807692 +vt 0.060976 0.807692 +vt 0.070122 0.794872 +vt 0.051829 0.794872 +vt 0.048780 0.833333 +vt 0.073171 0.833333 +vt 0.109756 0.833333 +vt 0.146341 0.833333 +vt -0.000000 0.833333 +vt 0.048780 0.833333 +vt 0.073171 0.833333 +vt 0.109756 0.833333 +vt 0.146341 0.833333 +vt 0.000000 0.833333 +vt 0.082317 0.794872 +vt 0.118902 0.794872 +vt 0.146341 0.807692 +vt 0.009146 0.794872 +vt 0.048780 0.833333 +vt 0.000000 0.833333 +vt 0.146341 0.833333 +vt 0.109756 0.833333 +vt 0.073171 0.833333 +vt 0.009146 0.794872 +vt 0.146341 0.807692 +vt 0.118902 0.794872 +vt 0.082317 0.794872 +vt 0.048780 0.833333 +vt 0.000000 0.833333 +vt 0.146341 0.833333 +vt 0.109756 0.833333 +vt 0.073171 0.833333 +vt 0.039634 0.794872 +vt 0.027439 0.794872 +vt 0.021341 0.794872 +vt 0.009146 0.794872 +vt 0.137195 0.794872 +vt 0.131098 0.794872 +vt 0.118902 0.794872 +vt 0.100610 0.794872 +vt 0.094512 0.794872 +vt 0.082317 0.794872 +vt 0.064024 0.794872 +vt 0.057927 0.794872 +vt 0.134146 0.807692 +vt 0.121951 0.807692 +vt 0.073171 0.807692 +vt 0.060976 0.807692 +vt 0.097561 0.807692 +vt 0.085366 0.807692 +vt 0.036585 0.807692 +vt 0.024390 0.807692 +vt 0.146341 0.807692 +vt 0.109756 0.807692 +vt 0.048780 0.807692 +vt 0.012195 0.807692 +vt -0.000000 0.807692 +vt 0.100610 0.871795 +vt 0.039634 0.871795 +vt 0.003049 0.871795 +vt 0.112805 0.871795 +vt 0.051829 0.871795 +vt 0.076220 0.871795 +vt 0.015244 0.871795 +vt 0.125000 0.871795 +vt 0.064024 0.871795 +vt 0.088415 0.871795 +vt 0.027439 0.871795 +vt 0.137195 0.871795 +vt 0.100610 0.871795 +vt 0.039634 0.871795 +vt 0.003049 0.871795 +vt 0.112805 0.871795 +vt 0.051829 0.871795 +vt 0.076220 0.871795 +vt 0.015244 0.871795 +vt 0.125000 0.871795 +vt 0.064024 0.871795 +vt 0.088415 0.871795 +vt 0.027439 0.871795 +vt 0.137195 0.871795 +vt 0.137195 0.871795 +vt 0.027439 0.871795 +vt 0.088415 0.871795 +vt 0.064024 0.871795 +vt 0.125000 0.871795 +vt 0.015244 0.871795 +vt 0.076220 0.871795 +vt 0.051829 0.871795 +vt 0.112805 0.871795 +vt 0.003049 0.871795 +vt 0.039634 0.871795 +vt 0.100610 0.871795 +vt 0.137195 0.871795 +vt 0.027439 0.871795 +vt 0.088415 0.871795 +vt 0.064024 0.871795 +vt 0.125000 0.871795 +vt 0.015244 0.871795 +vt 0.076220 0.871795 +vt 0.051829 0.871795 +vt 0.112805 0.871795 +vt 0.003049 0.871795 +vt 0.039634 0.871795 +vt 0.100610 0.871795 +vt 0.106707 0.871795 +vt 0.045732 0.871795 +vt 0.009146 0.871795 +vt 0.118902 0.871795 +vt 0.057927 0.871795 +vt 0.082317 0.871795 +vt 0.021341 0.871795 +vt 0.131098 0.871795 +vt 0.070122 0.871795 +vt 0.094512 0.871795 +vt 0.033537 0.871795 +vt 0.143293 0.871795 +vt 0.106707 0.871795 +vt 0.045732 0.871795 +vt 0.009146 0.871795 +vt 0.118902 0.871795 +vt 0.057927 0.871795 +vt 0.082317 0.871795 +vt 0.021341 0.871795 +vt 0.131098 0.871795 +vt 0.070122 0.871795 +vt 0.094512 0.871795 +vt 0.033537 0.871795 +vt 0.143293 0.871795 +vt 0.143293 0.871795 +vt 0.033537 0.871795 +vt 0.094512 0.871795 +vt 0.070122 0.871795 +vt 0.131098 0.871795 +vt 0.021341 0.871795 +vt 0.082317 0.871795 +vt 0.057927 0.871795 +vt 0.118902 0.871795 +vt 0.009146 0.871795 +vt 0.045732 0.871795 +vt 0.106707 0.871795 +vt 0.143293 0.871795 +vt 0.033537 0.871795 +vt 0.094512 0.871795 +vt 0.070122 0.871795 +vt 0.131098 0.871795 +vt 0.021341 0.871795 +vt 0.082317 0.871795 +vt 0.057927 0.871795 +vt 0.118902 0.871795 +vt 0.009146 0.871795 +vt 0.045732 0.871795 +vt 0.106707 0.871795 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +s off +f 411/661/46 424/662/46 412/663/46 +f 424/662/46 401/664/46 412/665/46 +f 401/666/46 414/667/46 402/668/46 +f 402/669/46 415/670/46 403/671/46 +f 415/670/46 404/672/46 403/673/46 +f 404/674/46 417/675/46 405/676/46 +f 405/677/46 418/678/46 406/679/46 +f 418/678/46 407/680/46 406/681/46 +f 407/682/46 420/683/46 408/684/46 +f 408/685/46 421/686/46 409/687/46 +f 421/686/46 410/688/46 409/689/46 +f 422/690/46 411/691/46 410/692/46 +f 459/693/46 472/694/46 460/695/46 +f 472/694/46 449/696/46 460/697/46 +f 449/698/46 462/699/46 450/700/46 +f 450/701/46 463/702/46 451/703/46 +f 463/702/46 452/704/46 451/705/46 +f 452/706/46 465/707/46 453/708/46 +f 453/709/46 466/710/46 454/711/46 +f 466/710/46 455/712/46 454/713/46 +f 455/714/46 468/715/46 456/716/46 +f 456/717/46 469/718/46 457/719/46 +f 469/718/46 458/720/46 457/721/46 +f 470/722/46 459/723/46 458/724/46 +f 485/725/47 447/726/47 486/727/47 +f 496/728/47 448/729/47 485/730/47 +f 496/731/47 438/732/47 437/733/47 +f 494/734/47 438/732/47 495/735/47 +f 493/736/47 439/737/47 494/738/47 +f 493/739/47 441/740/47 440/741/47 +f 491/742/47 441/740/47 492/743/47 +f 490/744/47 442/745/47 491/746/47 +f 490/747/47 444/748/47 443/749/47 +f 488/750/47 444/748/47 489/751/47 +f 487/752/47 445/753/47 488/754/47 +f 486/755/47 446/756/47 487/757/47 +f 499/758/46 510/759/46 511/760/46 +f 500/761/46 511/762/46 512/763/46 +f 513/764/46 500/761/46 512/765/46 +f 514/766/46 501/767/46 513/768/46 +f 503/769/46 514/770/46 515/771/46 +f 516/772/46 503/769/46 515/773/46 +f 517/774/46 504/775/46 516/776/46 +f 506/777/46 517/778/46 518/779/46 +f 519/780/46 506/777/46 518/781/46 +f 520/782/46 507/783/46 519/784/46 +f 497/785/46 520/786/46 509/787/46 +f 510/788/46 497/785/46 509/789/46 +f 435/790/47 571/791/47 434/792/47 +f 434/793/47 572/794/47 433/795/47 +f 433/796/47 573/797/47 432/798/47 +f 431/799/47 573/797/47 574/800/47 +f 431/801/47 575/802/47 430/803/47 +f 430/804/47 576/805/47 429/806/47 +f 428/807/47 576/805/47 577/808/47 +f 428/809/47 578/810/47 427/811/47 +f 427/812/47 579/813/47 426/814/47 +f 425/815/47 579/813/47 580/816/47 +f 425/817/47 569/818/47 436/819/47 +f 436/820/47 570/821/47 435/822/47 +f 547/823/46 558/824/46 559/825/46 +f 548/826/46 559/827/46 560/828/46 +f 561/829/46 548/826/46 560/830/46 +f 562/831/46 549/832/46 561/833/46 +f 551/834/46 562/835/46 563/836/46 +f 564/837/46 551/834/46 563/838/46 +f 565/839/46 552/840/46 564/841/46 +f 554/842/46 565/843/46 566/844/46 +f 567/845/46 554/842/46 566/846/46 +f 568/847/46 555/848/46 567/849/46 +f 545/850/46 568/851/46 557/852/46 +f 558/853/46 545/850/46 557/854/46 +f 523/855/47 534/856/47 522/857/47 +f 524/858/47 535/859/47 523/855/47 +f 537/860/47 524/858/47 525/861/47 +f 538/862/47 525/861/47 526/863/47 +f 527/864/47 538/865/47 526/866/47 +f 540/867/47 527/864/47 528/868/47 +f 541/869/47 528/868/47 529/870/47 +f 530/871/47 541/872/47 529/870/47 +f 543/873/47 530/871/47 531/874/47 +f 544/875/47 531/874/47 532/876/47 +f 521/877/47 544/878/47 532/876/47 +f 534/879/47 521/877/47 522/857/47 +f 411/661/46 423/880/46 424/662/46 +f 424/662/46 413/881/46 401/664/46 +f 401/666/46 413/881/46 414/667/46 +f 402/669/46 414/667/46 415/670/46 +f 415/670/46 416/882/46 404/672/46 +f 404/674/46 416/882/46 417/675/46 +f 405/677/46 417/675/46 418/678/46 +f 418/678/46 419/883/46 407/680/46 +f 407/682/46 419/884/46 420/683/46 +f 408/685/46 420/683/46 421/686/46 +f 421/686/46 422/690/46 410/688/46 +f 422/690/46 423/880/46 411/691/46 +f 459/693/46 471/885/46 472/694/46 +f 472/694/46 461/886/46 449/696/46 +f 449/698/46 461/886/46 462/699/46 +f 450/701/46 462/699/46 463/702/46 +f 463/702/46 464/887/46 452/704/46 +f 452/706/46 464/887/46 465/707/46 +f 453/709/46 465/707/46 466/710/46 +f 466/710/46 467/888/46 455/712/46 +f 455/714/46 467/889/46 468/715/46 +f 456/717/46 468/715/46 469/718/46 +f 469/718/46 470/722/46 458/720/46 +f 470/722/46 471/885/46 459/723/46 +f 485/725/47 448/729/47 447/726/47 +f 496/728/47 437/733/47 448/729/47 +f 496/731/47 495/890/47 438/732/47 +f 494/734/47 439/737/47 438/732/47 +f 493/736/47 440/741/47 439/737/47 +f 493/739/47 492/891/47 441/740/47 +f 491/742/47 442/745/47 441/740/47 +f 490/744/47 443/892/47 442/745/47 +f 490/747/47 489/893/47 444/748/47 +f 488/750/47 445/753/47 444/748/47 +f 487/752/47 446/756/47 445/753/47 +f 486/755/47 447/726/47 446/756/47 +f 499/758/46 498/894/46 510/759/46 +f 500/761/46 499/758/46 511/762/46 +f 513/764/46 501/767/46 500/761/46 +f 514/766/46 502/895/46 501/767/46 +f 503/769/46 502/896/46 514/770/46 +f 516/772/46 504/775/46 503/769/46 +f 517/774/46 505/897/46 504/775/46 +f 506/777/46 505/897/46 517/778/46 +f 519/780/46 507/783/46 506/777/46 +f 520/782/46 508/898/46 507/783/46 +f 497/785/46 508/898/46 520/786/46 +f 510/788/46 498/894/46 497/785/46 +f 435/790/47 570/821/47 571/791/47 +f 434/793/47 571/791/47 572/794/47 +f 433/796/47 572/794/47 573/797/47 +f 431/799/47 432/899/47 573/797/47 +f 431/801/47 574/900/47 575/802/47 +f 430/804/47 575/802/47 576/805/47 +f 428/807/47 429/901/47 576/805/47 +f 428/809/47 577/808/47 578/810/47 +f 427/812/47 578/810/47 579/813/47 +f 425/815/47 426/902/47 579/813/47 +f 425/817/47 580/816/47 569/818/47 +f 436/820/47 569/818/47 570/821/47 +f 547/823/46 546/903/46 558/824/46 +f 548/826/46 547/823/46 559/827/46 +f 561/829/46 549/832/46 548/826/46 +f 562/831/46 550/904/46 549/832/46 +f 551/834/46 550/905/46 562/835/46 +f 564/837/46 552/840/46 551/834/46 +f 565/839/46 553/906/46 552/840/46 +f 554/842/46 553/906/46 565/843/46 +f 567/845/46 555/848/46 554/842/46 +f 568/847/46 556/907/46 555/848/46 +f 545/850/46 556/907/46 568/851/46 +f 558/853/46 546/903/46 545/850/46 +f 523/855/47 535/908/47 534/856/47 +f 524/858/47 536/909/47 535/859/47 +f 537/860/47 536/910/47 524/858/47 +f 538/862/47 537/911/47 525/861/47 +f 527/864/47 539/912/47 538/865/47 +f 540/867/47 539/913/47 527/864/47 +f 541/869/47 540/914/47 528/868/47 +f 530/871/47 542/915/47 541/872/47 +f 543/873/47 542/916/47 530/871/47 +f 544/875/47 543/917/47 531/874/47 +f 521/877/47 533/918/47 544/878/47 +f 534/879/47 533/919/47 521/877/47 +s 1 +f 394/920/48 417/675/49 393/921/49 +f 389/922/50 424/662/51 400/923/51 +f 391/924/52 414/667/53 390/925/53 +f 398/926/54 421/686/55 397/927/55 +f 395/928/56 418/678/48 394/920/48 +f 392/929/57 415/670/52 391/924/52 +f 399/930/58 422/690/54 398/926/54 +f 396/931/59 419/884/56 395/932/56 +f 393/921/49 416/882/57 392/929/57 +f 400/923/51 423/880/58 399/930/58 +f 390/925/53 413/881/50 389/922/50 +f 397/927/55 420/683/59 396/931/59 +f 404/672/57 427/933/52 403/673/52 +f 411/691/58 434/934/54 410/692/54 +f 408/684/59 431/935/56 407/682/56 +f 405/676/49 428/936/57 404/674/57 +f 412/663/51 435/937/58 411/661/58 +f 402/668/53 425/938/50 401/666/50 +f 409/687/55 432/939/59 408/685/59 +f 406/679/48 429/940/49 405/677/49 +f 401/664/50 436/941/51 412/665/51 +f 403/671/52 426/942/53 402/669/53 +f 410/688/54 433/943/55 409/689/55 +f 407/680/56 430/944/48 406/681/48 +f 442/745/48 465/707/49 441/740/49 +f 437/733/50 472/694/51 448/729/51 +f 439/737/52 462/699/53 438/732/53 +f 446/756/54 469/718/55 445/753/55 +f 443/892/56 466/710/48 442/745/48 +f 440/741/57 463/702/52 439/737/52 +f 447/726/58 470/722/54 446/756/54 +f 444/748/59 467/889/56 443/749/56 +f 441/740/49 464/887/57 440/741/57 +f 448/729/51 471/885/58 447/726/58 +f 438/732/53 461/886/50 437/733/50 +f 445/753/55 468/715/59 444/748/59 +f 452/704/57 475/945/52 451/705/52 +f 459/723/58 482/946/54 458/724/54 +f 456/716/59 479/947/56 455/714/56 +f 453/708/49 476/948/57 452/706/57 +f 460/695/51 483/949/58 459/693/58 +f 450/700/53 473/950/50 449/698/50 +f 457/719/55 480/951/59 456/717/59 +f 454/711/48 477/952/49 453/709/49 +f 449/696/50 484/953/51 460/697/51 +f 451/703/52 474/954/53 450/701/53 +f 458/720/54 481/955/55 457/721/55 +f 455/712/56 478/956/48 454/713/48 +f 514/770/56 491/957/48 515/771/48 +f 511/762/54 488/958/55 512/763/55 +f 518/781/52 495/959/53 519/780/53 +f 520/786/50 485/960/51 509/787/51 +f 515/773/48 492/961/49 516/772/49 +f 512/765/55 489/962/59 513/764/59 +f 519/784/53 496/963/50 520/782/50 +f 509/789/51 486/964/58 510/788/58 +f 516/776/49 493/965/57 517/774/57 +f 513/768/59 490/966/56 514/766/56 +f 510/759/58 487/967/54 511/760/54 +f 517/778/57 494/968/52 518/779/52 +f 524/858/55 501/767/59 525/861/59 +f 531/874/53 508/898/50 532/876/50 +f 521/877/51 498/894/58 522/857/58 +f 528/868/49 505/897/57 529/870/57 +f 525/861/59 502/895/56 526/863/56 +f 522/857/58 499/758/54 523/855/54 +f 529/870/57 506/777/52 530/871/52 +f 526/866/56 503/769/48 527/864/48 +f 523/855/54 500/761/55 524/858/55 +f 530/871/52 507/783/53 531/874/53 +f 532/876/50 497/785/51 521/877/51 +f 527/864/48 504/775/49 528/868/49 +f 562/835/56 539/969/48 563/836/48 +f 559/827/54 536/970/55 560/828/55 +f 566/846/52 543/971/53 567/845/53 +f 568/851/50 533/972/51 557/852/51 +f 563/838/48 540/973/49 564/837/49 +f 560/830/55 537/974/59 561/829/59 +f 567/849/53 544/975/50 568/847/50 +f 557/854/51 534/976/58 558/853/58 +f 564/841/49 541/977/57 565/839/57 +f 561/833/59 538/978/56 562/831/56 +f 558/824/58 535/979/54 559/825/54 +f 565/843/57 542/980/52 566/844/52 +f 572/794/55 549/832/59 573/797/59 +f 579/813/53 556/907/50 580/816/50 +f 569/818/51 546/903/58 570/821/58 +f 576/805/49 553/906/57 577/808/57 +f 573/797/59 550/904/56 574/800/56 +f 570/821/58 547/823/54 571/791/54 +f 577/808/57 554/842/52 578/810/52 +f 574/900/56 551/834/48 575/802/48 +f 571/791/54 548/826/55 572/794/55 +f 578/810/52 555/848/53 579/813/53 +f 580/816/50 545/850/51 569/818/51 +f 575/802/48 552/840/49 576/805/49 +f 394/920/48 418/678/48 417/675/49 +f 389/922/50 413/881/50 424/662/51 +f 391/924/52 415/670/52 414/667/53 +f 398/926/54 422/690/54 421/686/55 +f 395/928/56 419/883/56 418/678/48 +f 392/929/57 416/882/57 415/670/52 +f 399/930/58 423/880/58 422/690/54 +f 396/931/59 420/683/59 419/884/56 +f 393/921/49 417/675/49 416/882/57 +f 400/923/51 424/662/51 423/880/58 +f 390/925/53 414/667/53 413/881/50 +f 397/927/55 421/686/55 420/683/59 +f 404/672/57 428/981/57 427/933/52 +f 411/691/58 435/982/58 434/934/54 +f 408/684/59 432/983/59 431/935/56 +f 405/676/49 429/984/49 428/936/57 +f 412/663/51 436/985/51 435/937/58 +f 402/668/53 426/986/53 425/938/50 +f 409/687/55 433/987/55 432/939/59 +f 406/679/48 430/988/48 429/940/49 +f 401/664/50 425/989/50 436/941/51 +f 403/671/52 427/990/52 426/942/53 +f 410/688/54 434/991/54 433/943/55 +f 407/680/56 431/992/56 430/944/48 +f 442/745/48 466/710/48 465/707/49 +f 437/733/50 461/886/50 472/694/51 +f 439/737/52 463/702/52 462/699/53 +f 446/756/54 470/722/54 469/718/55 +f 443/892/56 467/888/56 466/710/48 +f 440/741/57 464/887/57 463/702/52 +f 447/726/58 471/885/58 470/722/54 +f 444/748/59 468/715/59 467/889/56 +f 441/740/49 465/707/49 464/887/57 +f 448/729/51 472/694/51 471/885/58 +f 438/732/53 462/699/53 461/886/50 +f 445/753/55 469/718/55 468/715/59 +f 452/704/57 476/993/57 475/945/52 +f 459/723/58 483/994/58 482/946/54 +f 456/716/59 480/995/59 479/947/56 +f 453/708/49 477/996/49 476/948/57 +f 460/695/51 484/997/51 483/949/58 +f 450/700/53 474/998/53 473/950/50 +f 457/719/55 481/999/55 480/951/59 +f 454/711/48 478/1000/48 477/952/49 +f 449/696/50 473/1001/50 484/953/51 +f 451/703/52 475/1002/52 474/954/53 +f 458/720/54 482/1003/54 481/955/55 +f 455/712/56 479/1004/56 478/956/48 +f 514/770/56 490/1005/56 491/957/48 +f 511/762/54 487/1006/54 488/958/55 +f 518/781/52 494/1007/52 495/959/53 +f 520/786/50 496/1008/50 485/960/51 +f 515/773/48 491/1009/48 492/961/49 +f 512/765/55 488/1010/55 489/962/59 +f 519/784/53 495/1011/53 496/963/50 +f 509/789/51 485/1012/51 486/964/58 +f 516/776/49 492/1013/49 493/965/57 +f 513/768/59 489/1014/59 490/966/56 +f 510/759/58 486/1015/58 487/967/54 +f 517/778/57 493/1016/57 494/968/52 +f 524/858/55 500/761/55 501/767/59 +f 531/874/53 507/783/53 508/898/50 +f 521/877/51 497/785/51 498/894/58 +f 528/868/49 504/775/49 505/897/57 +f 525/861/59 501/767/59 502/895/56 +f 522/857/58 498/894/58 499/758/54 +f 529/870/57 505/897/57 506/777/52 +f 526/866/56 502/896/56 503/769/48 +f 523/855/54 499/758/54 500/761/55 +f 530/871/52 506/777/52 507/783/53 +f 532/876/50 508/898/50 497/785/51 +f 527/864/48 503/769/48 504/775/49 +f 562/835/56 538/1017/56 539/969/48 +f 559/827/54 535/1018/54 536/970/55 +f 566/846/52 542/1019/52 543/971/53 +f 568/851/50 544/1020/50 533/972/51 +f 563/838/48 539/1021/48 540/973/49 +f 560/830/55 536/1022/55 537/974/59 +f 567/849/53 543/1023/53 544/975/50 +f 557/854/51 533/1024/51 534/976/58 +f 564/841/49 540/1025/49 541/977/57 +f 561/833/59 537/1026/59 538/978/56 +f 558/824/58 534/1027/58 535/979/54 +f 565/843/57 541/1028/57 542/980/52 +f 572/794/55 548/826/55 549/832/59 +f 579/813/53 555/848/53 556/907/50 +f 569/818/51 545/850/51 546/903/58 +f 576/805/49 552/840/49 553/906/57 +f 573/797/59 549/832/59 550/904/56 +f 570/821/58 546/903/58 547/823/54 +f 577/808/57 553/906/57 554/842/52 +f 574/900/56 550/905/56 551/834/48 +f 571/791/54 547/823/54 548/826/55 +f 578/810/52 554/842/52 555/848/53 +f 580/816/50 556/907/50 545/850/51 +f 575/802/48 551/834/48 552/840/49 +o Fan +v 1.375000 1.875000 -1.062500 +v 1.468750 1.875000 -1.062500 +v 1.375000 1.820873 -1.031250 +v 1.468750 1.820873 -1.031250 +v 1.375000 1.820873 -0.968750 +v 1.468750 1.820873 -0.968750 +v 1.375000 1.875000 -0.937500 +v 1.468750 1.875000 -0.937500 +v 1.375000 1.929127 -0.968750 +v 1.468750 1.929127 -0.968750 +v 1.375000 1.929127 -1.031250 +v 1.468750 1.929127 -1.031250 +v 1.388971 2.199760 -1.181111 +v 1.437500 2.250000 -1.000000 +v 1.486029 2.199760 -0.818889 +v 1.431434 1.915595 -1.022639 +v 1.437500 1.921875 -1.000000 +v 1.443566 1.915595 -0.977361 +v 1.388971 1.555773 -1.190695 +v 1.437500 1.687500 -1.324759 +v 1.486029 1.869467 -1.371806 +v 1.431434 1.835097 -1.023837 +v 1.437500 1.851562 -1.040595 +v 1.443566 1.874308 -1.046476 +v 1.443566 1.835097 -0.976163 +v 1.437500 1.851562 -0.959405 +v 1.431434 1.874308 -0.953524 +v 1.486029 1.555773 -0.809305 +v 1.437500 1.687500 -0.675241 +v 1.388971 1.869467 -0.628194 +vt 0.225610 0.935897 +vt 0.228659 0.948718 +vt 0.225610 0.948718 +vt 0.228659 0.935897 +vt 0.231707 0.948718 +vt 0.213415 0.935897 +vt 0.216463 0.948718 +vt 0.213415 0.948718 +vt 0.216463 0.935897 +vt 0.219512 0.948718 +vt 0.213554 0.955128 +vt 0.215009 0.949830 +vt 0.219373 0.955128 +vt 0.219512 0.935897 +vt 0.222561 0.948718 +vt 0.222561 0.935897 +vt 0.155488 0.967949 +vt 0.158537 0.935897 +vt 0.164634 0.967949 +vt 0.152439 0.935897 +vt 0.155488 0.935897 +vt 0.155488 0.967949 +vt 0.158537 0.935897 +vt 0.164634 0.967949 +vt 0.146341 0.967949 +vt 0.155488 0.935897 +vt 0.155488 0.967949 +vt 0.152439 0.935897 +vt 0.155488 0.935897 +vt 0.158537 0.935897 +vt 0.164634 0.967949 +vt 0.231707 0.935897 +vt 0.217918 0.949830 +vt 0.217918 0.960426 +vt 0.215009 0.960426 +vt 0.146341 0.967949 +vt 0.152439 0.935897 +vt 0.146341 0.967949 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 0.8660 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.9659 -0.0000 -0.2588 +vn 0.9659 -0.2241 0.1294 +vn 0.9659 0.2242 0.1294 +vn 0.9659 0.2241 0.1294 +vn 0.9659 -0.2242 0.1294 +s off +f 582/1029/60 583/1030/60 581/1031/60 +f 584/1032/61 585/1033/61 583/1030/61 +f 586/1034/62 587/1035/62 585/1036/62 +f 588/1037/63 589/1038/63 587/1035/63 +f 588/1039/64 586/1040/64 582/1041/64 +f 590/1042/65 591/1043/65 589/1038/65 +f 592/1044/66 581/1031/66 591/1043/66 +f 594/1045/67 596/1046/67 593/1047/67 +f 594/1045/67 598/1048/67 597/1049/67 +f 600/1050/68 602/1051/68 599/1052/68 +f 601/1053/68 603/1054/68 600/1050/68 +f 609/1055/69 605/1056/69 606/1057/69 +f 609/1055/70 607/1058/70 610/1059/70 +f 582/1029/60 584/1032/60 583/1030/60 +f 584/1032/61 586/1060/61 585/1033/61 +f 586/1034/62 588/1037/62 587/1035/62 +f 588/1037/63 590/1042/63 589/1038/63 +f 586/1040/64 584/1061/64 582/1041/64 +f 582/1041/64 592/1062/64 590/1063/64 +f 590/1063/64 588/1039/64 582/1041/64 +f 590/1042/65 592/1044/65 591/1043/65 +f 592/1044/66 582/1029/66 581/1031/66 +f 594/1045/67 597/1049/67 596/1046/67 +f 594/1045/67 595/1064/67 598/1048/67 +f 600/1050/71 603/1054/71 602/1051/71 +f 601/1053/71 604/1065/71 603/1054/71 +f 609/1055/70 608/1066/70 605/1056/70 +f 609/1055/69 606/1057/69 607/1058/69 +o Base +v -1.500000 0.000000 3.500000 +v 1.500000 0.000000 3.500000 +v -1.500000 0.000000 -3.500000 +v 1.500000 0.000000 -3.500000 +v -1.500000 1.000000 3.500000 +v 1.500000 1.000000 3.500000 +v -1.500000 1.000000 -3.500000 +v 1.500000 1.000000 -3.500000 +v 0.000000 1.250000 0.625000 +v -0.526190 1.250000 0.729666 +v -0.972272 1.250000 1.027728 +v -1.270334 1.250000 1.473810 +v -1.375000 1.250000 2.000000 +v -1.270334 1.250000 2.526190 +v -0.972272 1.250000 2.972272 +v -0.526190 1.250000 3.270334 +v 0.000000 1.250000 3.375000 +v 0.526189 1.250000 3.270334 +v 0.972271 1.250000 2.972272 +v 1.270334 1.250000 2.526190 +v 1.375000 1.250000 2.000000 +v 1.270334 1.250000 1.473810 +v 0.972271 1.250000 1.027728 +v 0.526189 1.250000 0.729665 +v 0.000000 3.000000 0.625000 +v -0.526190 3.000000 0.729666 +v -0.972272 3.000000 1.027728 +v -1.270334 3.000000 1.473810 +v -1.375000 3.000000 2.000000 +v -1.270334 3.000000 2.526190 +v -0.972272 3.000000 2.972272 +v -0.526190 3.000000 3.270334 +v 0.000000 3.000000 3.375000 +v 0.526189 3.000000 3.270334 +v 0.972271 3.000000 2.972272 +v 1.270334 3.000000 2.526190 +v 1.375000 3.000000 2.000000 +v 1.270334 3.000000 1.473810 +v 0.972271 3.000000 1.027728 +v 0.526189 3.000000 0.729665 +v 0.000000 3.000000 0.500000 +v -0.574025 3.000000 0.614181 +v -1.060660 3.000000 0.939340 +v -1.385819 3.000000 1.425975 +v -1.500000 3.000000 2.000000 +v -1.385819 3.000000 2.574025 +v -1.060660 3.000000 3.060660 +v -0.574025 3.000000 3.385819 +v -0.000000 3.000000 3.500000 +v 0.574025 3.000000 3.385819 +v 1.060660 3.000000 3.060660 +v 1.385819 3.000000 2.574025 +v 1.500000 3.000000 2.000000 +v 1.385819 3.000000 1.425975 +v 1.060659 3.000000 0.939340 +v 0.574024 3.000000 0.614180 +v 0.000000 3.250000 0.500000 +v -0.574025 3.250000 0.614181 +v -1.060660 3.250000 0.939340 +v -1.385819 3.250000 1.425975 +v -1.500000 3.250000 2.000000 +v -1.385819 3.250000 2.574025 +v -1.060660 3.250000 3.060660 +v -0.574025 3.250000 3.385819 +v -0.000000 3.250000 3.500000 +v 0.574025 3.250000 3.385819 +v 1.060660 3.250000 3.060660 +v 1.385819 3.250000 2.574025 +v 1.500000 3.250000 2.000000 +v 1.385819 3.250000 1.425975 +v 1.060659 3.250000 0.939340 +v 0.574024 3.250000 0.614180 +v 0.000000 3.250000 0.750000 +v -0.478354 3.250000 0.845150 +v -0.883883 3.250000 1.116116 +v -1.154850 3.250000 1.521646 +v -1.250000 3.250000 2.000000 +v -1.154850 3.250000 2.478354 +v -0.883883 3.250000 2.883883 +v -0.478354 3.250000 3.154849 +v -0.000000 3.250000 3.250000 +v 0.478354 3.250000 3.154850 +v 0.883883 3.250000 2.883884 +v 1.154849 3.250000 2.478354 +v 1.250000 3.250000 2.000000 +v 1.154849 3.250000 1.521645 +v 0.883883 3.250000 1.116116 +v 0.478354 3.250000 0.845150 +v 0.000000 2.250000 0.750000 +v -0.478354 2.250000 0.845150 +v -0.883883 2.250000 1.116116 +v -1.154850 2.250000 1.521646 +v -1.250000 2.250000 2.000000 +v -1.154850 2.250000 2.478354 +v -0.883883 2.250000 2.883883 +v -0.478354 2.250000 3.154849 +v -0.000000 2.250000 3.250000 +v 0.478354 2.250000 3.154850 +v 0.883883 2.250000 2.883884 +v 1.154849 2.250000 2.478354 +v 1.250000 2.250000 2.000000 +v 1.154849 2.250000 1.521645 +v 0.883883 2.250000 1.116116 +v 0.478354 2.250000 0.845150 +v -1.250000 1.000000 0.250000 +v 1.250000 1.000000 0.250000 +v -1.250000 1.000000 -2.250000 +v 1.250000 1.000000 -2.250000 +v -1.250000 2.750000 -2.250000 +v -1.250000 2.750000 0.250000 +v 1.250000 2.750000 0.250000 +v 1.250000 2.750000 -2.250000 +v -1.000000 3.250000 -2.250000 +v -1.000000 3.250000 0.250000 +v 1.000000 3.250000 0.250000 +v 1.000000 3.250000 -2.250000 +v -1.000000 1.000000 -2.250000 +v 1.000000 1.000000 -2.250000 +v -1.000000 1.000000 -3.250000 +v 1.000000 1.000000 -3.250000 +v -1.000000 1.500000 -3.250000 +v -1.000000 1.500000 -2.250000 +v 1.000000 1.500000 -2.250000 +v 1.000000 1.500000 -3.250000 +v -0.875000 1.500000 -3.125000 +v -0.875000 1.500000 -2.250000 +v 0.875000 1.500000 -2.250000 +v 0.875000 1.500000 -3.125000 +v -0.875000 1.250000 -3.125000 +v -0.875000 1.250000 -2.250000 +v 0.875000 1.250000 -2.250000 +v 0.875000 1.250000 -3.125000 +v 0.437500 1.500000 -2.250000 +v -0.437500 1.500000 -2.250000 +v 0.437500 1.500000 -2.687500 +v -0.437500 1.500000 -2.687500 +v -0.500000 2.000000 -2.250000 +v 0.500000 2.000000 -2.250000 +v -0.500000 2.000000 -2.750000 +v 0.500000 2.000000 -2.750000 +v -0.500000 2.250000 -2.750000 +v -0.500000 2.750000 -2.250000 +v 0.500000 2.750000 -2.250000 +v 0.500000 2.250000 -2.750000 +v -0.437500 2.000000 -2.687500 +v -0.437500 2.000000 -2.312500 +v 0.437500 2.000000 -2.312500 +v 0.437500 2.000000 -2.687500 +v -0.437500 2.125000 -2.687500 +v -0.437500 2.125000 -2.312500 +v 0.437500 2.125000 -2.312500 +v 0.437500 2.125000 -2.687500 +v -0.750000 3.250000 0.000000 +v 0.750000 3.250000 0.000000 +v -0.750000 3.250000 -2.000000 +v 0.750000 3.250000 -2.000000 +v -0.500000 2.750000 -2.000000 +v -0.500000 2.750000 0.000000 +v 0.500000 2.750000 0.000000 +v 0.500000 2.750000 -2.000000 +v 1.125000 1.000000 -0.125000 +v 1.375000 1.000000 -0.125000 +v 1.125000 1.000000 -0.375000 +v 1.375000 1.000000 -0.375000 +v 1.125000 3.250000 -0.375000 +v 1.125000 3.250000 -0.125000 +v 1.375000 3.250000 -0.125000 +v 1.375000 3.250000 -0.375000 +v 1.125000 1.000000 -1.625000 +v 1.375000 1.000000 -1.625000 +v 1.125000 1.000000 -1.875000 +v 1.375000 1.000000 -1.875000 +v 1.125000 3.250000 -1.875000 +v 1.125000 3.250000 -1.625000 +v 1.375000 3.250000 -1.625000 +v 1.375000 3.250000 -1.875000 +v -1.375000 1.000000 -0.125000 +v -1.125000 1.000000 -0.125000 +v -1.375000 1.000000 -0.375000 +v -1.125000 1.000000 -0.375000 +v -1.375000 3.250000 -0.375000 +v -1.375000 3.250000 -0.125000 +v -1.125000 3.250000 -0.125000 +v -1.125000 3.250000 -0.375000 +v -1.375000 1.000000 -1.625000 +v -1.125000 1.000000 -1.625000 +v -1.375000 1.000000 -1.875000 +v -1.125000 1.000000 -1.875000 +v -1.375000 3.250000 -1.875000 +v -1.375000 3.250000 -1.625000 +v -1.125000 3.250000 -1.625000 +v -1.125000 3.250000 -1.875000 +v 0.000000 1.000000 0.500000 +v -0.574025 1.000000 0.614181 +v -1.060660 1.000000 0.939340 +v -1.385819 1.000000 1.425975 +v -1.500000 1.000000 2.000000 +v -1.385819 1.000000 2.574025 +v -1.060660 1.000000 3.060660 +v -0.574025 1.000000 3.385819 +v -0.000000 1.000000 3.500000 +v 0.574025 1.000000 3.385819 +v 1.060660 1.000000 3.060660 +v 1.385819 1.000000 2.574025 +v 1.500000 1.000000 2.000000 +v 1.385819 1.000000 1.425975 +v 1.060659 1.000000 0.939340 +v 0.574024 1.000000 0.614180 +v 0.000000 1.250000 0.500000 +v -0.574025 1.250000 0.614181 +v -1.060660 1.250000 0.939340 +v -1.385819 1.250000 1.425975 +v -1.500000 1.250000 2.000000 +v -1.385819 1.250000 2.574025 +v -1.060660 1.250000 3.060660 +v -0.574025 1.250000 3.385819 +v -0.000000 1.250000 3.500000 +v 0.574025 1.250000 3.385819 +v 1.060660 1.250000 3.060660 +v 1.385819 1.250000 2.574025 +v 1.500000 1.250000 2.000000 +v 1.385819 1.250000 1.425975 +v 1.060659 1.250000 0.939340 +v 0.574024 1.250000 0.614180 +v 1.125000 3.250000 3.125000 +v 1.375000 3.250000 3.125000 +v 1.125000 3.250000 -2.000000 +v 1.375000 3.250000 -2.000000 +v 1.125000 3.500000 -2.000000 +v 1.125000 3.500000 3.125000 +v 1.375000 3.500000 3.125000 +v 1.375000 3.500000 -2.000000 +v -1.375000 3.250000 3.125000 +v -1.125000 3.250000 3.125000 +v -1.375000 3.250000 -2.000000 +v -1.125000 3.250000 -2.000000 +v -1.375000 3.500000 -2.000000 +v -1.375000 3.500000 3.125000 +v -1.125000 3.500000 3.125000 +v -1.125000 3.500000 -2.000000 +v 1.125000 1.000000 3.000000 +v 1.375000 1.000000 3.000000 +v 1.125000 1.000000 2.750000 +v 1.375000 1.000000 2.750000 +v 1.125000 3.250000 2.750000 +v 1.125000 3.250000 3.000000 +v 1.375000 3.250000 3.000000 +v 1.375000 3.250000 2.750000 +v -1.375000 1.000000 3.000000 +v -1.125000 1.000000 3.000000 +v -1.375000 1.000000 2.750000 +v -1.125000 1.000000 2.750000 +v -1.375000 3.250000 2.750000 +v -1.375000 3.250000 3.000000 +v -1.125000 3.250000 3.000000 +v -1.125000 3.250000 2.750000 +v 0.250000 2.000000 0.250000 +v 0.073223 1.926777 0.250000 +v 0.000000 1.750000 0.250000 +v 0.073223 1.573223 0.250000 +v 0.250000 1.500000 0.250000 +v 0.426777 1.573223 0.250000 +v 0.500000 1.750000 0.250000 +v 0.426777 1.926777 0.250000 +v 0.250000 2.000000 0.750000 +v 0.073223 1.926777 0.750000 +v 0.000000 1.750000 0.750000 +v 0.073223 1.573223 0.750000 +v 0.250000 1.500000 0.750000 +v 0.426777 1.573223 0.750000 +v 0.500000 1.750000 0.750000 +v 0.426777 1.926777 0.750000 +v -0.250000 2.000000 0.250000 +v -0.426777 1.926777 0.250000 +v -0.500000 1.750000 0.250000 +v -0.426777 1.573223 0.250000 +v -0.250000 1.500000 0.250000 +v -0.073223 1.573223 0.250000 +v 0.000000 1.750000 0.250000 +v -0.073223 1.926777 0.250000 +v -0.250000 2.000000 0.750000 +v -0.426777 1.926777 0.750000 +v -0.500000 1.750000 0.750000 +v -0.426777 1.573223 0.750000 +v -0.250000 1.500000 0.750000 +v -0.073223 1.573223 0.750000 +v 0.000000 1.750000 0.750000 +v -0.073223 1.926777 0.750000 +v 1.125000 1.000000 1.250000 +v 1.375000 1.000000 1.250000 +v 1.125000 1.000000 1.000000 +v 1.375000 1.000000 1.000000 +v 1.125000 3.250000 1.000000 +v 1.125000 3.250000 1.250000 +v 1.375000 3.250000 1.250000 +v 1.375000 3.250000 1.000000 +v -1.375000 1.000000 1.250000 +v -1.125000 1.000000 1.250000 +v -1.375000 1.000000 1.000000 +v -1.125000 1.000000 1.000000 +v -1.375000 3.250000 1.000000 +v -1.375000 3.250000 1.250000 +v -1.125000 3.250000 1.250000 +v -1.125000 3.250000 1.000000 +v 1.250000 2.375000 -0.500000 +v 1.250000 1.375000 -0.500000 +v 1.250000 2.375000 -1.500000 +v 1.250000 1.375000 -1.500000 +v 1.500000 2.375000 -1.500000 +v 1.500000 2.375000 -0.500000 +v 1.500000 1.375000 -0.500000 +v 1.500000 1.375000 -1.500000 +v 1.500000 2.312500 -1.437500 +v 1.500000 2.312500 -0.562500 +v 1.500000 1.437500 -0.562500 +v 1.500000 1.437500 -1.437500 +v 1.375000 2.312500 -1.437500 +v 1.375000 2.312500 -0.562500 +v 1.375000 1.437500 -0.562500 +v 1.375000 1.437500 -1.437500 +v 1.500000 2.093750 -0.562500 +v 1.500000 2.031250 -0.562500 +v 1.500000 2.093750 -1.437500 +v 1.500000 2.031250 -1.437500 +v 1.500000 2.281250 -0.562500 +v 1.500000 2.218750 -0.562500 +v 1.500000 2.281250 -1.437500 +v 1.500000 2.218750 -1.437500 +v 1.500000 1.718750 -0.562500 +v 1.500000 1.656250 -0.562500 +v 1.500000 1.718750 -1.437500 +v 1.500000 1.656250 -1.437500 +v 1.500000 1.906250 -0.562500 +v 1.500000 1.843750 -0.562500 +v 1.500000 1.906250 -1.437500 +v 1.500000 1.843750 -1.437500 +v 1.500000 1.531250 -0.562500 +v 1.500000 1.468750 -0.562500 +v 1.500000 1.531250 -1.437500 +v 1.500000 1.468750 -1.437500 +v -1.250000 2.375000 -0.500000 +v -1.250000 1.375000 -0.500000 +v -1.250000 2.375000 -1.500000 +v -1.250000 1.375000 -1.500000 +v -1.500000 2.375000 -1.500000 +v -1.500000 2.375000 -0.500000 +v -1.500000 1.375000 -0.500000 +v -1.500000 1.375000 -1.500000 +v -1.500000 2.250000 -1.375000 +v -1.500000 2.250000 -0.625000 +v -1.500000 1.500000 -0.625000 +v -1.500000 1.500000 -1.375000 +v -1.375000 2.250000 -1.375000 +v -1.375000 2.250000 -0.625000 +v -1.375000 1.500000 -0.625000 +v -1.375000 1.500000 -1.375000 +v -1.500000 2.250000 -1.375000 +v -1.982091 2.250000 -0.800467 +v -1.982091 1.500000 -0.800467 +v -1.500000 1.500000 -1.375000 +v 0.875000 1.500000 -3.125000 +v 1.000000 1.500000 -3.125000 +v 0.875000 1.500000 -3.250000 +v 1.000000 1.500000 -3.250000 +v 0.875000 2.875000 -3.125000 +v 1.000000 2.875000 -3.125000 +v 0.875000 2.875000 -3.250000 +v 1.000000 2.875000 -3.250000 +v -1.000000 1.500000 -3.125000 +v -0.875000 1.500000 -3.125000 +v -1.000000 1.500000 -3.250000 +v -0.875000 1.500000 -3.250000 +v -1.000000 2.875000 -3.125000 +v -0.875000 2.875000 -3.125000 +v -1.000000 2.875000 -3.250000 +v -0.875000 2.875000 -3.250000 +v 1.000000 2.875000 -3.250000 +v -1.000000 2.875000 -3.250000 +v 1.000000 2.875000 -2.250000 +v -1.000000 2.875000 -2.250000 +v 1.000000 3.000000 -3.250000 +v -1.000000 3.000000 -3.250000 +v 1.000000 3.000000 -2.250000 +v -1.000000 3.000000 -2.250000 +vt 0.341463 0.102564 +vt -0.000000 0.410256 +vt -0.000000 0.102564 +vt -0.000000 0.102564 +vt 0.341463 0.410256 +vt -0.000000 0.410256 +vt 0.341463 -0.000000 +vt -0.000000 0.000000 +vt 0.341463 -0.000000 +vt 0.000000 0.102564 +vt 0.000000 0.000000 +vt 0.390244 0.410256 +vt 0.341463 0.102564 +vt 0.390244 0.102564 +vt 0.390244 0.410256 +vt 0.341463 0.102564 +vt 0.390244 0.102564 +vt 0.326219 0.448718 +vt 0.301829 0.461538 +vt 0.301829 0.448718 +vt 0.329268 0.448718 +vt 0.356707 0.461538 +vt 0.329268 0.461538 +vt 0.381098 0.448718 +vt 0.356707 0.448718 +vt 0.408537 0.448718 +vt 0.384146 0.461538 +vt 0.384146 0.448718 +vt 0.435976 0.448718 +vt 0.411585 0.461538 +vt 0.411585 0.448718 +vt 0.024390 0.448718 +vt 0.000000 0.461538 +vt 0.000000 0.448718 +vt 0.051829 0.448718 +vt 0.027439 0.461538 +vt 0.027439 0.448718 +vt 0.079268 0.448718 +vt 0.054878 0.461538 +vt 0.054878 0.448718 +vt 0.106707 0.448718 +vt 0.082317 0.461538 +vt 0.082317 0.448718 +vt 0.109756 0.448718 +vt 0.137195 0.461538 +vt 0.109756 0.461538 +vt 0.137195 0.448718 +vt 0.164634 0.461538 +vt 0.164634 0.448718 +vt 0.192073 0.461538 +vt 0.192073 0.448718 +vt 0.219512 0.461538 +vt 0.219512 0.448718 +vt 0.246951 0.461538 +vt 0.271341 0.448718 +vt 0.246951 0.448718 +vt 0.274390 0.448718 +vt 0.274390 0.461538 +vt 0.329268 0.487179 +vt 0.301829 0.512821 +vt 0.301829 0.487179 +vt 0.356707 0.487179 +vt 0.329268 0.512821 +vt 0.384146 0.487179 +vt 0.356707 0.512821 +vt 0.408537 0.512821 +vt 0.384146 0.512821 +vt 0.411585 0.487179 +vt 0.435976 0.512821 +vt 0.411585 0.512821 +vt 0.027439 0.487179 +vt 0.000000 0.512821 +vt 0.000000 0.487179 +vt 0.051829 0.512821 +vt 0.027439 0.512821 +vt 0.054878 0.487179 +vt 0.079268 0.512821 +vt 0.054878 0.512821 +vt 0.082317 0.487179 +vt 0.106707 0.512821 +vt 0.082317 0.512821 +vt 0.109756 0.487179 +vt 0.134146 0.512821 +vt 0.109756 0.512821 +vt 0.164634 0.487179 +vt 0.137195 0.512821 +vt 0.137195 0.487179 +vt 0.192073 0.487179 +vt 0.164634 0.512821 +vt 0.216463 0.512821 +vt 0.192073 0.512821 +vt 0.246951 0.487179 +vt 0.219512 0.512821 +vt 0.219512 0.487179 +vt 0.274390 0.487179 +vt 0.246951 0.512821 +vt 0.298781 0.512821 +vt 0.274390 0.512821 +vt 0.451219 0.000216 +vt 0.512092 0.128205 +vt 0.451219 0.256194 +vt 0.414634 0.961538 +vt 0.408537 0.929487 +vt 0.414634 0.929487 +vt 0.756098 0.179487 +vt 0.646341 0.230769 +vt 0.634146 0.179487 +vt 0.756098 -0.000000 +vt 0.634146 0.000000 +vt 1.000000 0.000000 +vt 0.878049 0.179487 +vt 0.878049 0.000000 +vt 0.512195 0.179487 +vt 0.512195 0.000000 +vt 0.658537 0.256410 +vt 0.646341 0.487179 +vt 1.000000 0.179487 +vt 0.890244 0.230769 +vt 0.512195 0.230769 +vt 0.756098 0.230769 +vt 0.512195 0.846154 +vt 0.554878 0.858974 +vt 0.512195 0.858974 +vt 0.707317 0.846154 +vt 0.664634 0.858974 +vt 0.658537 0.846154 +vt 0.707317 0.794872 +vt 0.658537 0.794872 +vt 0.560976 0.846154 +vt 0.560976 0.794872 +vt 0.567073 0.858974 +vt 0.512195 0.794872 +vt 0.652439 0.858974 +vt 0.567073 0.884615 +vt 0.707317 0.858974 +vt 0.664634 0.884615 +vt 0.512195 0.884615 +vt 0.533537 0.929487 +vt 0.512195 0.974359 +vt 0.512195 0.884615 +vt 0.576219 0.974359 +vt 0.533537 0.974359 +vt 0.576219 0.929487 +vt 0.597561 0.974359 +vt 0.597561 0.884615 +vt 0.390244 0.794872 +vt 0.344512 0.801282 +vt 0.341463 0.794872 +vt 0.341463 0.916667 +vt 0.390244 0.865385 +vt 0.390244 0.916667 +vt 0.344512 0.833333 +vt 0.341463 0.839744 +vt 0.317073 0.839744 +vt 0.341463 0.865385 +vt 0.317073 0.916667 +vt 0.414634 0.839744 +vt 0.390244 0.839744 +vt 0.387195 0.801282 +vt 0.387195 0.833333 +vt 0.408537 0.961538 +vt 0.365854 0.929487 +vt 0.365854 0.974359 +vt 0.408537 0.974359 +vt 0.408537 0.916667 +vt 0.365854 0.916667 +vt 0.359756 0.929487 +vt 0.365854 0.961538 +vt 0.359756 0.961538 +vt 0.548781 0.282051 +vt 0.573171 0.487179 +vt 0.548781 0.487179 +vt 0.731707 0.256410 +vt 0.743902 0.230769 +vt 0.731707 0.461538 +vt 0.743902 0.487179 +vt 0.658537 0.461538 +vt 0.621951 0.282051 +vt 0.621951 0.487179 +vt 0.646341 0.487179 +vt 0.646341 0.282051 +vt 0.634146 0.230769 +vt 0.573171 0.282051 +vt 0.560976 0.230769 +vt 0.560976 0.538462 +vt 0.634146 0.538462 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.301829 0.435897 +vt 0.326219 0.448718 +vt 0.301829 0.448718 +vt 0.329268 0.448718 +vt 0.356707 0.435897 +vt 0.353659 0.448718 +vt 0.381098 0.448718 +vt 0.356707 0.448718 +vt 0.384146 0.435897 +vt 0.408537 0.448718 +vt 0.384146 0.448718 +vt 0.411585 0.435897 +vt 0.435976 0.448718 +vt 0.411585 0.448718 +vt 0.000000 0.435897 +vt 0.024390 0.448718 +vt 0.000000 0.448718 +vt 0.027439 0.435897 +vt 0.051829 0.448718 +vt 0.027439 0.448718 +vt 0.054878 0.435897 +vt 0.079268 0.448718 +vt 0.054878 0.448718 +vt 0.082317 0.435897 +vt 0.106707 0.448718 +vt 0.082317 0.448718 +vt 0.109756 0.448718 +vt 0.137195 0.435897 +vt 0.134146 0.448718 +vt 0.137195 0.448718 +vt 0.164634 0.435897 +vt 0.161585 0.448718 +vt 0.164634 0.448718 +vt 0.192073 0.435897 +vt 0.189024 0.448718 +vt 0.192073 0.448718 +vt 0.219512 0.435897 +vt 0.216463 0.448718 +vt 0.219512 0.448718 +vt 0.246951 0.435897 +vt 0.243902 0.448718 +vt 0.271341 0.448718 +vt 0.246951 0.448718 +vt 0.274390 0.448718 +vt 0.298781 0.448718 +vt 0.262195 0.692308 +vt 0.012195 0.717949 +vt 0.012195 0.692308 +vt 0.012195 0.743590 +vt 0.262195 0.769231 +vt 0.012195 0.769231 +vt 0.262195 0.717949 +vt 0.012195 0.794872 +vt 0.262195 0.794872 +vt 0.274390 0.769231 +vt 0.262195 0.743590 +vt 0.274390 0.743590 +vt 0.000000 0.743590 +vt 0.000000 0.769231 +vt 0.262195 0.692308 +vt 0.012195 0.717949 +vt 0.012195 0.692308 +vt 0.012195 0.743590 +vt 0.262195 0.769231 +vt 0.012195 0.769231 +vt 0.262195 0.717949 +vt 0.012195 0.794872 +vt 0.262195 0.794872 +vt 0.274390 0.769231 +vt 0.262195 0.743590 +vt 0.274390 0.743590 +vt 0.000000 0.743590 +vt 0.000000 0.769231 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.451219 0.256410 +vt 0.439024 0.487179 +vt 0.439024 0.256410 +vt 0.463415 0.256410 +vt 0.451219 0.487179 +vt 0.487805 0.256410 +vt 0.475610 0.487179 +vt 0.475610 0.256410 +vt 0.463415 0.487179 +vt 0.161585 0.839744 +vt 0.167683 0.929487 +vt 0.161585 0.929487 +vt 0.219512 0.935897 +vt 0.216463 0.839744 +vt 0.219512 0.833333 +vt 0.213415 0.794872 +vt 0.164634 0.820513 +vt 0.164634 0.794872 +vt 0.164634 0.974359 +vt 0.213415 0.948718 +vt 0.213415 0.974359 +vt 0.231707 0.935897 +vt 0.231707 0.833333 +vt 0.146341 0.833333 +vt 0.158537 0.935897 +vt 0.146341 0.935897 +vt 0.158537 0.833333 +vt 0.213415 0.820513 +vt 0.167683 0.826923 +vt 0.164634 0.948718 +vt 0.210366 0.942308 +vt 0.167683 0.839744 +vt 0.210366 0.929487 +vt 0.210366 0.826923 +vt 0.167683 0.942308 +vt 0.216463 0.929487 +vt 0.210366 0.839744 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.167683 0.974359 +vt 0.210366 0.980769 +vt 0.167683 0.980769 +vt 0.243902 0.833333 +vt 0.250000 0.923077 +vt 0.243902 0.935897 +vt 0.298781 0.794872 +vt 0.250000 0.820513 +vt 0.250000 0.794872 +vt 0.250000 0.974359 +vt 0.298781 0.948718 +vt 0.298781 0.974359 +vt 0.231707 0.833333 +vt 0.231707 0.935897 +vt 0.317073 0.935897 +vt 0.304878 0.833333 +vt 0.317073 0.833333 +vt 0.298781 0.923077 +vt 0.292683 0.846154 +vt 0.298781 0.846154 +vt 0.304878 0.935897 +vt 0.298781 0.820513 +vt 0.256098 0.833333 +vt 0.250000 0.948718 +vt 0.292683 0.935897 +vt 0.256098 0.846154 +vt 0.292683 0.923077 +vt 0.256098 0.923077 +vt 0.292683 0.833333 +vt 0.256098 0.935897 +vt 0.250000 0.846154 +vt 0.323171 0.916667 +vt 0.359756 0.993590 +vt 0.323171 0.993590 +vt 0.725610 0.935897 +vt 0.719512 0.794872 +vt 0.725610 0.794872 +vt 0.713415 0.935897 +vt 0.707317 0.794872 +vt 0.713415 0.794872 +vt 0.719512 0.935897 +vt 0.731707 0.935897 +vt 0.731707 0.794872 +vt 0.725610 0.935897 +vt 0.719512 0.794872 +vt 0.725610 0.794872 +vt 0.713415 0.935897 +vt 0.707317 0.794872 +vt 0.713415 0.794872 +vt 0.719512 0.935897 +vt 0.731707 0.935897 +vt 0.731707 0.794872 +vt 0.810976 0.589744 +vt 0.908537 0.692308 +vt 0.810976 0.692308 +vt 0.908537 0.705128 +vt 0.810976 0.807692 +vt 0.810976 0.705128 +vt 0.914634 0.807692 +vt 0.914634 0.705128 +vt 0.804878 0.705128 +vt 0.804878 0.807692 +vt 0.341463 0.410256 +vt 0.341463 0.410256 +vt 0.353659 0.448718 +vt 0.439024 0.461538 +vt 0.134146 0.448718 +vt 0.161585 0.448718 +vt 0.189024 0.448718 +vt 0.216463 0.448718 +vt 0.243902 0.448718 +vt 0.298781 0.448718 +vt 0.326219 0.512821 +vt 0.353659 0.512821 +vt 0.381098 0.512821 +vt 0.439024 0.487179 +vt 0.024390 0.512821 +vt 0.161585 0.512821 +vt 0.189024 0.512821 +vt 0.243902 0.512821 +vt 0.271341 0.512821 +vt 0.474515 0.009959 +vt 0.494263 0.037704 +vt 0.507459 0.079226 +vt 0.507459 0.177184 +vt 0.494263 0.218707 +vt 0.474514 0.246451 +vt 0.427924 0.246452 +vt 0.408176 0.218707 +vt 0.394980 0.177185 +vt 0.390347 0.128205 +vt 0.394980 0.079226 +vt 0.408176 0.037703 +vt 0.427925 0.009959 +vt 0.987805 0.230769 +vt 0.634146 0.230769 +vt 0.878049 0.230769 +vt 0.652439 0.884615 +vt 0.707317 0.884615 +vt 0.554878 0.884615 +vt 0.414634 0.916667 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.329268 0.435897 +vt 0.439024 0.435897 +vt 0.109756 0.435897 +vt 0.274390 0.435897 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.487805 0.487179 +vt 0.210366 0.974359 +vt 0.210366 0.974359 +vt 0.210366 0.974359 +vt 0.210366 0.974359 +vt 0.210366 0.974359 +vt 0.359756 0.916667 +vt 0.707317 0.935897 +vt 0.707317 0.935897 +vt 0.908537 0.589744 +vt 0.908537 0.807692 +vt 0.341463 0.512821 +vt 0.317073 0.692308 +vt 0.317073 0.512821 +vt 0.170732 0.512821 +vt 0.146341 0.692308 +vt 0.146341 0.512821 +vt 0.365854 0.512821 +vt 0.341463 0.692308 +vt 0.195122 0.512821 +vt 0.170732 0.692308 +vt 0.024390 0.512821 +vt -0.000000 0.692308 +vt 0.000000 0.512821 +vt 0.390244 0.512821 +vt 0.365854 0.692308 +vt 0.219512 0.512821 +vt 0.195122 0.692308 +vt 0.048780 0.512821 +vt 0.024390 0.692308 +vt 0.243902 0.512821 +vt 0.219512 0.692308 +vt 0.073171 0.512821 +vt 0.048780 0.692308 +vt 0.268293 0.512821 +vt 0.243902 0.692308 +vt 0.097561 0.512821 +vt 0.073171 0.692308 +vt 0.292683 0.512821 +vt 0.268293 0.692308 +vt 0.121951 0.512821 +vt 0.097561 0.692308 +vt 0.292683 0.692308 +vt 0.121951 0.692308 +vt 0.878049 1.000000 +vt 0.902439 0.897436 +vt 0.902439 1.000000 +vt 0.853659 1.000000 +vt 0.878049 0.897436 +vt 0.878049 1.000000 +vt 0.853659 1.000000 +vt 0.878049 0.897436 +vt 0.829268 1.000000 +vt 0.853659 0.897436 +vt 0.829268 1.000000 +vt 0.853659 0.897436 +vt 0.804878 1.000000 +vt 0.829268 0.897436 +vt 0.975610 1.000000 +vt 1.000000 0.897436 +vt 1.000000 1.000000 +vt 0.804878 1.000000 +vt 0.829268 0.897436 +vt 0.975610 1.000000 +vt 1.000000 0.897436 +vt 1.000000 1.000000 +vt 0.951219 1.000000 +vt 0.975610 0.897436 +vt 0.951219 1.000000 +vt 0.975610 0.897436 +vt 0.926829 1.000000 +vt 0.951219 0.897436 +vt 0.926829 1.000000 +vt 0.951219 0.897436 +vt 0.902439 1.000000 +vt 0.926829 0.897436 +vt 0.926829 0.897436 +vt 0.902439 0.897436 +vt 0.274390 0.410256 +vt 0.246951 0.410256 +vt 0.082317 0.410256 +vt 0.054878 0.410256 +vt 0.301829 0.410256 +vt 0.109756 0.410256 +vt 0.329268 0.410256 +vt 0.137195 0.410256 +vt 0.356707 0.410256 +vt 0.164634 0.410256 +vt 0.384146 0.410256 +vt 0.192073 0.410256 +vt 0.411585 0.410256 +vt 0.219512 0.410256 +vt 0.027439 0.410256 +vt 0.000000 0.410256 +vt 0.439024 0.410256 +vt 0.692073 0.538462 +vt 0.701219 0.487179 +vt 0.701219 0.538462 +vt 0.710366 0.538462 +vt 0.719512 0.487179 +vt 0.719512 0.538462 +vt 0.655488 0.538462 +vt 0.664634 0.487179 +vt 0.664634 0.538462 +vt 0.673781 0.538462 +vt 0.682927 0.487179 +vt 0.682927 0.538462 +vt 0.692073 0.487179 +vt 0.710366 0.487179 +vt 0.646341 0.538462 +vt 0.655488 0.487179 +vt 0.673781 0.487179 +vt 0.692073 0.538462 +vt 0.701219 0.487179 +vt 0.701219 0.538462 +vt 0.710366 0.538462 +vt 0.719512 0.487179 +vt 0.719512 0.538462 +vt 0.655488 0.538462 +vt 0.664634 0.487179 +vt 0.664634 0.538462 +vt 0.673781 0.538462 +vt 0.682927 0.487179 +vt 0.682927 0.538462 +vt 0.692073 0.487179 +vt 0.710366 0.487179 +vt 0.646341 0.538462 +vt 0.655488 0.487179 +vt 0.673781 0.487179 +vt 0.390244 0.692308 +vt 0.804878 0.897436 +vt 0.804878 0.897436 +vt 0.646341 0.487179 +vt 0.646341 0.487179 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8944 0.4472 0.0000 +vn -0.8944 0.4472 0.0000 +vn 0.4961 0.8682 0.0000 +vn 0.0000 0.8682 -0.4961 +vn -0.4961 0.8682 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.7660 0.0000 -0.6428 +vn 0.7071 0.0000 -0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn -0.7071 0.0000 0.7071 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 613/1067/72 612/1068/72 611/1069/72 +f 616/1070/73 617/1071/73 615/1072/73 +f 614/1073/74 616/1070/74 612/1074/74 +f 611/1075/75 617/1076/75 613/1077/75 +f 613/1078/76 618/1079/76 614/1080/76 +f 612/1081/77 615/1082/77 611/1083/77 +f 647/1084/72 662/1085/72 646/1086/72 +f 647/1087/72 664/1088/72 663/1089/72 +f 649/1090/72 664/1088/72 648/1091/72 +f 650/1092/72 665/1093/72 649/1094/72 +f 635/1095/72 666/1096/72 650/1097/72 +f 636/1098/72 651/1099/72 635/1100/72 +f 637/1101/72 652/1102/72 636/1103/72 +f 638/1104/72 653/1105/72 637/1106/72 +f 639/1107/72 654/1108/72 638/1109/72 +f 639/1110/72 656/1111/72 655/1112/72 +f 640/1113/72 657/1114/72 656/1111/72 +f 641/1115/72 658/1116/72 657/1114/72 +f 642/1117/72 659/1118/72 658/1116/72 +f 643/1119/72 660/1120/72 659/1118/72 +f 645/1121/72 660/1120/72 644/1122/72 +f 645/1123/72 662/1085/72 661/1124/72 +f 679/1125/73 694/1126/73 678/1127/73 +f 680/1128/73 695/1129/73 679/1125/73 +f 681/1130/73 696/1131/73 680/1128/73 +f 681/1130/73 698/1132/73 697/1133/73 +f 682/1134/73 683/1135/73 698/1136/73 +f 668/1137/73 683/1138/73 667/1139/73 +f 668/1137/73 685/1140/73 684/1141/73 +f 669/1142/73 686/1143/73 685/1144/73 +f 670/1145/73 687/1146/73 686/1147/73 +f 671/1148/73 688/1149/73 687/1150/73 +f 673/1151/73 688/1152/73 672/1153/73 +f 674/1154/73 689/1155/73 673/1151/73 +f 674/1154/73 691/1156/73 690/1157/73 +f 676/1158/73 691/1159/73 675/1160/73 +f 677/1161/73 692/1162/73 676/1158/73 +f 677/1161/73 694/1163/73 693/1164/73 +f 699/1165/73 703/1166/73 707/1167/73 +f 755/1168/74 760/1169/74 756/1170/74 +f 719/1171/76 726/1172/76 722/1173/76 +f 717/1174/76 722/1173/76 718/1175/76 +f 716/1176/77 720/1177/77 715/1178/77 +f 718/1175/74 721/1179/74 716/1180/74 +f 715/1178/75 719/1171/75 717/1174/75 +f 766/1181/73 725/1182/73 726/1172/73 +f 721/1183/77 724/1184/77 720/1177/77 +f 722/1173/78 725/1185/78 721/1179/78 +f 720/1177/79 723/1186/79 719/1171/79 +f 733/1187/73 738/1188/73 737/1189/73 +f 732/1190/73 735/1191/73 731/1192/73 +f 727/1193/75 731/1192/75 729/1194/75 +f 729/1194/76 734/1195/76 730/1196/76 +f 731/1192/73 738/1197/73 734/1195/73 +f 730/1196/74 733/1187/74 728/1198/74 +f 735/1199/77 742/1200/77 738/1197/77 +f 736/1201/74 739/1202/74 735/1191/74 +f 738/1188/75 741/1203/75 737/1189/75 +f 745/1204/80 741/1205/80 742/1206/80 +f 745/1204/73 744/1207/73 743/1208/73 +f 742/1206/81 746/1209/81 745/1204/81 +f 740/1210/82 746/1209/82 739/1211/82 +f 747/1212/72 757/1213/72 748/1214/72 +f 753/1215/83 751/1216/83 752/1217/83 +f 748/1214/72 758/1218/72 750/1219/72 +f 748/1220/74 754/1221/74 753/1222/74 +f 747/1223/75 751/1216/75 749/1224/75 +f 749/1224/76 754/1221/76 750/1219/76 +f 749/1224/72 756/1225/72 747/1212/72 +f 750/1219/72 755/1226/72 749/1224/72 +f 759/1227/72 761/1228/72 760/1169/72 +f 758/1229/77 759/1227/77 755/1230/77 +f 756/1231/76 761/1228/76 757/1232/76 +f 757/1233/75 762/1234/75 758/1235/75 +f 766/1236/79 769/1237/79 764/1238/79 +f 765/1239/73 726/1172/73 723/1240/73 +f 763/1241/73 723/1240/73 724/1242/73 +f 764/1243/73 724/1242/73 725/1182/73 +f 769/1237/73 767/1244/73 768/1245/73 +f 763/1246/78 767/1244/78 765/1247/78 +f 765/1248/77 770/1249/77 766/1250/77 +f 764/1251/76 768/1245/76 763/1252/76 +f 772/1253/77 776/1254/77 771/1255/77 +f 774/1256/74 777/1257/74 772/1253/74 +f 771/1258/75 775/1259/75 773/1260/75 +f 773/1260/76 778/1261/76 774/1256/76 +f 780/1262/77 784/1263/77 779/1264/77 +f 782/1265/74 785/1266/74 780/1262/74 +f 779/1267/75 783/1268/75 781/1269/75 +f 781/1269/76 786/1270/76 782/1265/76 +f 788/1271/77 792/1272/77 787/1273/77 +f 790/1274/74 793/1275/74 788/1271/74 +f 787/1276/75 791/1277/75 789/1278/75 +f 789/1278/76 794/1279/76 790/1274/76 +f 796/1280/77 800/1281/77 795/1282/77 +f 798/1283/74 801/1284/74 796/1280/74 +f 795/1285/75 799/1286/75 797/1287/75 +f 797/1287/76 802/1288/76 798/1283/76 +f 830/1289/73 631/1290/73 630/1291/73 +f 631/1292/73 832/1293/73 632/1294/73 +f 832/1293/73 633/1295/73 632/1296/73 +f 833/1297/73 634/1298/73 633/1299/73 +f 834/1300/73 619/1301/73 634/1302/73 +f 819/1303/73 620/1304/73 619/1305/73 +f 820/1306/73 621/1307/73 620/1308/73 +f 821/1309/73 622/1310/73 621/1311/73 +f 822/1312/73 623/1313/73 622/1314/73 +f 623/1315/73 824/1316/73 624/1317/73 +f 624/1318/73 825/1319/73 625/1320/73 +f 625/1321/73 826/1322/73 626/1323/73 +f 626/1324/73 827/1325/73 627/1326/73 +f 627/1327/73 828/1328/73 628/1329/73 +f 828/1328/73 629/1330/73 628/1331/73 +f 629/1332/73 830/1289/73 630/1333/73 +f 837/1334/72 836/1335/72 835/1336/72 +f 841/1337/73 839/1338/73 840/1339/73 +f 838/1340/74 841/1337/74 836/1335/74 +f 835/1341/75 839/1338/75 837/1342/75 +f 837/1343/76 842/1344/76 838/1345/76 +f 836/1346/77 840/1339/77 835/1347/77 +f 845/1348/72 844/1349/72 843/1350/72 +f 849/1351/73 847/1352/73 848/1353/73 +f 846/1354/74 849/1351/74 844/1349/74 +f 843/1355/75 847/1352/75 845/1356/75 +f 845/1357/76 850/1358/76 846/1359/76 +f 844/1360/77 848/1353/77 843/1361/77 +f 852/1362/77 856/1363/77 851/1364/77 +f 854/1365/74 857/1366/74 852/1362/74 +f 851/1367/75 855/1368/75 853/1369/75 +f 853/1369/76 858/1370/76 854/1365/76 +f 860/1371/77 864/1372/77 859/1373/77 +f 862/1374/74 865/1375/74 860/1371/74 +f 859/1376/75 863/1377/75 861/1378/75 +f 861/1378/76 866/1379/76 862/1374/76 +f 900/1380/77 904/1381/77 899/1382/77 +f 902/1383/74 905/1384/74 900/1380/74 +f 899/1385/75 903/1386/75 901/1387/75 +f 901/1387/76 906/1388/76 902/1383/76 +f 908/1389/77 912/1390/77 907/1391/77 +f 910/1392/74 913/1393/74 908/1389/74 +f 907/1394/75 911/1395/75 909/1396/75 +f 909/1396/76 914/1397/76 910/1392/76 +f 925/1398/76 928/1399/76 924/1400/76 +f 919/1401/74 926/1402/74 922/1403/74 +f 918/1404/72 921/1405/72 916/1406/72 +f 915/1407/73 919/1408/73 917/1409/73 +f 917/1410/76 922/1403/76 918/1411/76 +f 916/1412/77 920/1413/77 915/1414/77 +f 921/1415/74 924/1400/74 920/1413/74 +f 922/1416/74 925/1417/74 921/1405/74 +f 920/1418/74 923/1419/74 919/1408/74 +f 929/1420/74 927/1421/74 928/1399/74 +f 926/1422/73 929/1420/73 925/1417/73 +f 924/1423/72 927/1421/72 923/1419/72 +f 923/1424/77 930/1425/77 926/1402/77 +f 932/1426/74 933/1427/74 931/1428/74 +f 936/1429/74 937/1430/74 935/1431/74 +f 940/1432/74 941/1433/74 939/1434/74 +f 944/1435/74 945/1436/74 943/1437/74 +f 948/1438/74 949/1439/74 947/1440/74 +f 958/1441/75 959/1442/75 955/1443/75 +f 952/1444/72 958/1445/72 954/1446/72 +f 953/1447/73 956/1448/73 951/1449/73 +f 954/1450/76 955/1443/76 953/1451/76 +f 951/1452/77 957/1453/77 952/1454/77 +f 960/1455/76 965/1456/76 961/1457/76 +f 956/1458/75 961/1457/75 957/1453/75 +f 957/1459/75 962/1460/75 958/1445/75 +f 955/1461/75 960/1462/75 956/1448/75 +f 966/1463/75 964/1464/75 963/1465/75 +f 961/1466/73 966/1463/73 962/1460/73 +f 959/1467/72 964/1464/72 960/1462/72 +f 962/1468/77 963/1465/77 959/1442/77 +f 970/1469/84 968/1470/84 967/1471/84 +f 977/1472/76 974/1473/76 973/1474/76 +f 976/1475/77 971/1476/77 972/1477/77 +f 978/1478/74 972/1477/74 974/1473/74 +f 975/1479/75 973/1474/75 971/1480/75 +f 985/1481/76 982/1482/76 981/1483/76 +f 984/1484/77 979/1485/77 980/1486/77 +f 986/1487/74 980/1486/74 982/1482/74 +f 983/1488/75 981/1483/75 979/1489/75 +f 989/1490/72 988/1491/72 987/1492/72 +f 992/1493/73 993/1494/73 991/1495/73 +f 990/1496/75 992/1493/75 988/1497/75 +f 988/1491/76 991/1495/76 987/1492/76 +f 987/1498/74 993/1494/74 989/1499/74 +f 613/1067/72 614/1500/72 612/1068/72 +f 616/1070/73 618/1079/73 617/1071/73 +f 614/1073/74 618/1079/74 616/1070/74 +f 611/1075/75 615/1082/75 617/1076/75 +f 613/1078/76 617/1071/76 618/1079/76 +f 612/1081/77 616/1501/77 615/1082/77 +f 647/1084/72 663/1089/72 662/1085/72 +f 647/1087/72 648/1502/72 664/1088/72 +f 649/1090/72 665/1093/72 664/1088/72 +f 650/1092/72 666/1096/72 665/1093/72 +f 635/1095/72 651/1503/72 666/1096/72 +f 636/1098/72 652/1102/72 651/1099/72 +f 637/1101/72 653/1105/72 652/1102/72 +f 638/1104/72 654/1108/72 653/1105/72 +f 639/1107/72 655/1112/72 654/1108/72 +f 639/1110/72 640/1504/72 656/1111/72 +f 640/1113/72 641/1505/72 657/1114/72 +f 641/1115/72 642/1506/72 658/1116/72 +f 642/1117/72 643/1507/72 659/1118/72 +f 643/1119/72 644/1508/72 660/1120/72 +f 645/1121/72 661/1124/72 660/1120/72 +f 645/1123/72 646/1509/72 662/1085/72 +f 679/1125/73 695/1510/73 694/1126/73 +f 680/1128/73 696/1511/73 695/1129/73 +f 681/1130/73 697/1512/73 696/1131/73 +f 681/1130/73 682/1134/73 698/1132/73 +f 682/1134/73 667/1513/73 683/1135/73 +f 668/1137/73 684/1514/73 683/1138/73 +f 668/1137/73 669/1142/73 685/1140/73 +f 669/1142/73 670/1145/73 686/1143/73 +f 670/1145/73 671/1148/73 687/1146/73 +f 671/1148/73 672/1153/73 688/1149/73 +f 673/1151/73 689/1515/73 688/1152/73 +f 674/1154/73 690/1516/73 689/1155/73 +f 674/1154/73 675/1160/73 691/1156/73 +f 676/1158/73 692/1517/73 691/1159/73 +f 677/1161/73 693/1518/73 692/1162/73 +f 677/1161/73 678/1127/73 694/1163/73 +f 699/1165/73 700/1519/73 701/1520/73 +f 701/1520/73 702/1521/73 703/1166/73 +f 703/1166/73 704/1522/73 707/1167/73 +f 704/1522/73 705/1523/73 707/1167/73 +f 705/1523/73 706/1524/73 707/1167/73 +f 707/1167/73 708/1525/73 709/1526/73 +f 709/1526/73 710/1527/73 707/1167/73 +f 710/1527/73 711/1528/73 707/1167/73 +f 711/1528/73 712/1529/73 713/1530/73 +f 713/1530/73 714/1531/73 699/1165/73 +f 699/1165/73 701/1520/73 703/1166/73 +f 711/1528/73 713/1530/73 707/1167/73 +f 713/1530/73 699/1165/73 707/1167/73 +f 755/1168/74 759/1227/74 760/1169/74 +f 719/1171/76 723/1240/76 726/1172/76 +f 717/1174/76 719/1171/76 722/1173/76 +f 716/1176/77 721/1183/77 720/1177/77 +f 718/1175/74 722/1173/74 721/1179/74 +f 715/1178/75 720/1177/75 719/1171/75 +f 766/1181/73 764/1243/73 725/1182/73 +f 721/1183/77 725/1532/77 724/1184/77 +f 722/1173/78 726/1533/78 725/1185/78 +f 720/1177/79 724/1534/79 723/1186/79 +f 733/1187/73 734/1195/73 738/1188/73 +f 732/1190/73 736/1201/73 735/1191/73 +f 727/1193/75 732/1190/75 731/1192/75 +f 729/1194/76 731/1192/76 734/1195/76 +f 731/1192/73 735/1199/73 738/1197/73 +f 730/1196/74 734/1195/74 733/1187/74 +f 735/1199/77 739/1535/77 742/1200/77 +f 736/1201/74 740/1536/74 739/1202/74 +f 738/1188/75 742/1537/75 741/1203/75 +f 745/1204/80 743/1208/80 741/1205/80 +f 745/1204/73 746/1209/73 744/1207/73 +f 742/1206/81 739/1211/81 746/1209/81 +f 740/1210/82 744/1207/82 746/1209/82 +f 747/1212/72 756/1225/72 757/1213/72 +f 753/1215/83 754/1221/83 751/1216/83 +f 748/1214/72 757/1213/72 758/1218/72 +f 748/1220/74 750/1219/74 754/1221/74 +f 747/1223/75 752/1538/75 751/1216/75 +f 749/1224/76 751/1216/76 754/1221/76 +f 749/1224/72 755/1226/72 756/1225/72 +f 750/1219/72 758/1218/72 755/1226/72 +f 759/1227/72 762/1234/72 761/1228/72 +f 758/1229/77 762/1234/77 759/1227/77 +f 756/1231/76 760/1169/76 761/1228/76 +f 757/1233/75 761/1228/75 762/1234/75 +f 766/1236/79 770/1249/79 769/1237/79 +f 765/1239/73 766/1181/73 726/1172/73 +f 763/1241/73 765/1239/73 723/1240/73 +f 764/1243/73 763/1241/73 724/1242/73 +f 769/1237/73 770/1249/73 767/1244/73 +f 763/1246/78 768/1245/78 767/1244/78 +f 765/1248/77 767/1244/77 770/1249/77 +f 764/1251/76 769/1237/76 768/1245/76 +f 772/1253/77 777/1257/77 776/1254/77 +f 774/1256/74 778/1261/74 777/1257/74 +f 771/1258/75 776/1539/75 775/1259/75 +f 773/1260/76 775/1259/76 778/1261/76 +f 780/1262/77 785/1266/77 784/1263/77 +f 782/1265/74 786/1270/74 785/1266/74 +f 779/1267/75 784/1540/75 783/1268/75 +f 781/1269/76 783/1268/76 786/1270/76 +f 788/1271/77 793/1275/77 792/1272/77 +f 790/1274/74 794/1279/74 793/1275/74 +f 787/1276/75 792/1541/75 791/1277/75 +f 789/1278/76 791/1277/76 794/1279/76 +f 796/1280/77 801/1284/77 800/1281/77 +f 798/1283/74 802/1288/74 801/1284/74 +f 795/1285/75 800/1542/75 799/1286/75 +f 797/1287/76 799/1286/76 802/1288/76 +f 830/1289/73 831/1543/73 631/1290/73 +f 631/1292/73 831/1543/73 832/1293/73 +f 832/1293/73 833/1297/73 633/1295/73 +f 833/1297/73 834/1300/73 634/1298/73 +f 834/1300/73 819/1544/73 619/1301/73 +f 819/1303/73 820/1306/73 620/1304/73 +f 820/1306/73 821/1309/73 621/1307/73 +f 821/1309/73 822/1312/73 622/1310/73 +f 822/1312/73 823/1545/73 623/1313/73 +f 623/1315/73 823/1545/73 824/1316/73 +f 624/1318/73 824/1316/73 825/1319/73 +f 625/1321/73 825/1319/73 826/1322/73 +f 626/1324/73 826/1322/73 827/1325/73 +f 627/1327/73 827/1325/73 828/1328/73 +f 828/1328/73 829/1546/73 629/1330/73 +f 629/1332/73 829/1546/73 830/1289/73 +f 837/1334/72 838/1340/72 836/1335/72 +f 841/1337/73 842/1344/73 839/1338/73 +f 838/1340/74 842/1344/74 841/1337/74 +f 835/1341/75 840/1339/75 839/1338/75 +f 837/1343/76 839/1338/76 842/1344/76 +f 836/1346/77 841/1337/77 840/1339/77 +f 845/1348/72 846/1354/72 844/1349/72 +f 849/1351/73 850/1358/73 847/1352/73 +f 846/1354/74 850/1358/74 849/1351/74 +f 843/1355/75 848/1353/75 847/1352/75 +f 845/1357/76 847/1352/76 850/1358/76 +f 844/1360/77 849/1351/77 848/1353/77 +f 852/1362/77 857/1366/77 856/1363/77 +f 854/1365/74 858/1370/74 857/1366/74 +f 851/1367/75 856/1547/75 855/1368/75 +f 853/1369/76 855/1368/76 858/1370/76 +f 860/1371/77 865/1375/77 864/1372/77 +f 862/1374/74 866/1379/74 865/1375/74 +f 859/1376/75 864/1548/75 863/1377/75 +f 861/1378/76 863/1377/76 866/1379/76 +f 900/1380/77 905/1384/77 904/1381/77 +f 902/1383/74 906/1388/74 905/1384/74 +f 899/1385/75 904/1549/75 903/1386/75 +f 901/1387/76 903/1386/76 906/1388/76 +f 908/1389/77 913/1393/77 912/1390/77 +f 910/1392/74 914/1397/74 913/1393/74 +f 907/1394/75 912/1550/75 911/1395/75 +f 909/1396/76 911/1395/76 914/1397/76 +f 925/1398/76 929/1420/76 928/1399/76 +f 919/1401/74 923/1424/74 926/1402/74 +f 918/1404/72 922/1416/72 921/1405/72 +f 915/1407/73 920/1418/73 919/1408/73 +f 917/1410/76 919/1401/76 922/1403/76 +f 916/1412/77 921/1415/77 920/1413/77 +f 921/1415/74 925/1398/74 924/1400/74 +f 922/1416/74 926/1422/74 925/1417/74 +f 920/1418/74 924/1423/74 923/1419/74 +f 929/1420/74 930/1425/74 927/1421/74 +f 926/1422/73 930/1425/73 929/1420/73 +f 924/1423/72 928/1399/72 927/1421/72 +f 923/1424/77 927/1421/77 930/1425/77 +f 932/1426/74 934/1551/74 933/1427/74 +f 936/1429/74 938/1552/74 937/1430/74 +f 940/1432/74 942/1553/74 941/1433/74 +f 944/1435/74 946/1554/74 945/1436/74 +f 948/1438/74 950/1555/74 949/1439/74 +f 958/1441/75 962/1468/75 959/1442/75 +f 952/1444/72 957/1459/72 958/1445/72 +f 953/1447/73 955/1461/73 956/1448/73 +f 954/1450/76 958/1441/76 955/1443/76 +f 951/1452/77 956/1458/77 957/1453/77 +f 960/1455/76 964/1464/76 965/1456/76 +f 956/1458/75 960/1455/75 961/1457/75 +f 957/1459/75 961/1466/75 962/1460/75 +f 955/1461/75 959/1467/75 960/1462/75 +f 966/1463/75 965/1456/75 964/1464/75 +f 961/1466/73 965/1456/73 966/1463/73 +f 959/1467/72 963/1465/72 964/1464/72 +f 962/1468/77 966/1463/77 963/1465/77 +f 970/1469/84 969/1556/84 968/1470/84 +f 977/1472/76 978/1478/76 974/1473/76 +f 976/1475/77 975/1557/77 971/1476/77 +f 978/1478/74 976/1475/74 972/1477/74 +f 975/1479/75 977/1472/75 973/1474/75 +f 985/1481/76 986/1487/76 982/1482/76 +f 984/1484/77 983/1558/77 979/1485/77 +f 986/1487/74 984/1484/74 980/1486/74 +f 983/1488/75 985/1481/75 981/1483/75 +f 989/1490/72 990/1559/72 988/1491/72 +f 992/1493/73 994/1560/73 993/1494/73 +f 990/1496/75 994/1560/75 992/1493/75 +f 988/1491/76 992/1493/76 991/1495/76 +f 987/1498/74 991/1495/74 993/1494/74 +s 1 +f 633/1561/85 648/1562/86 632/1563/86 +f 626/1564/87 641/1565/88 625/1566/88 +f 634/1567/89 649/1568/85 633/1561/85 +f 627/1569/77 642/1570/87 626/1564/87 +f 620/1571/90 635/1572/76 619/1573/76 +f 619/1574/76 650/1575/89 634/1567/89 +f 628/1576/91 643/1577/77 627/1569/77 +f 621/1578/92 636/1579/90 620/1571/90 +f 629/1580/93 644/1581/91 628/1576/91 +f 622/1582/94 637/1583/92 621/1578/92 +f 630/1584/95 645/1585/93 629/1580/93 +f 623/1586/75 638/1587/94 622/1582/94 +f 631/1588/74 646/1589/95 630/1584/95 +f 624/1590/96 639/1591/75 623/1586/75 +f 632/1563/86 647/1592/74 631/1588/74 +f 625/1566/88 640/1593/96 624/1590/96 +f 661/1124/93 676/1158/91 660/1120/91 +f 654/1108/94 669/1142/92 653/1105/92 +f 662/1085/95 677/1161/93 661/1124/93 +f 655/1112/75 670/1145/94 654/1108/94 +f 663/1089/74 678/1127/95 662/1085/95 +f 656/1111/96 671/1148/75 655/1112/75 +f 664/1088/86 679/1125/74 663/1089/74 +f 657/1114/88 672/1153/96 656/1111/96 +f 665/1093/85 680/1128/86 664/1088/86 +f 658/1116/87 673/1151/88 657/1114/88 +f 666/1096/89 681/1130/85 665/1093/85 +f 659/1118/77 674/1154/87 658/1116/87 +f 652/1102/90 667/1139/76 651/1099/76 +f 651/1503/76 682/1134/89 666/1096/89 +f 660/1120/91 675/1160/77 659/1118/77 +f 653/1105/92 668/1137/90 652/1102/90 +f 696/1594/96 711/1595/75 695/1596/75 +f 689/1597/85 704/1598/86 688/1599/86 +f 697/1600/88 712/1601/96 696/1594/96 +f 690/1602/89 705/1603/85 689/1597/85 +f 698/1604/87 713/1605/88 697/1600/88 +f 691/1606/76 706/1607/89 690/1602/89 +f 684/1608/91 699/1609/77 683/1610/77 +f 683/1611/77 714/1612/87 698/1604/87 +f 692/1613/90 707/1614/76 691/1615/76 +f 685/1616/93 700/1617/91 684/1608/91 +f 693/1618/92 708/1619/90 692/1613/90 +f 686/1620/95 701/1621/93 685/1616/93 +f 694/1622/94 709/1623/92 693/1618/92 +f 687/1624/74 702/1625/95 686/1620/95 +f 695/1596/75 710/1626/94 694/1622/94 +f 688/1599/86 703/1627/74 687/1624/74 +f 813/1628/93 828/1328/91 812/1629/91 +f 806/1630/94 821/1309/92 805/1631/92 +f 814/1632/95 829/1546/93 813/1628/93 +f 807/1633/75 822/1312/94 806/1630/94 +f 815/1634/74 830/1289/95 814/1632/95 +f 808/1635/96 823/1545/75 807/1633/75 +f 816/1636/86 831/1543/74 815/1634/74 +f 809/1637/88 824/1316/96 808/1635/96 +f 817/1638/85 832/1293/86 816/1636/86 +f 810/1639/87 825/1319/88 809/1637/88 +f 818/1640/89 833/1297/85 817/1638/85 +f 811/1641/77 826/1322/87 810/1639/87 +f 804/1642/90 819/1303/76 803/1643/76 +f 803/1644/76 834/1300/89 818/1640/89 +f 812/1629/91 827/1325/77 811/1641/77 +f 805/1631/92 820/1306/90 804/1642/90 +f 874/1645/97 881/1646/74 873/1647/74 +f 872/1648/98 879/1649/72 871/1650/72 +f 870/1651/99 877/1652/75 869/1653/75 +f 868/1654/100 875/1655/73 867/1656/73 +f 867/1656/73 882/1657/97 874/1645/97 +f 873/1647/74 880/1658/98 872/1648/98 +f 871/1659/72 878/1660/99 870/1651/99 +f 869/1653/75 876/1661/100 868/1654/100 +f 890/1662/97 897/1663/74 889/1664/74 +f 888/1665/98 895/1666/72 887/1667/72 +f 886/1668/99 893/1669/75 885/1670/75 +f 884/1671/100 891/1672/73 883/1673/73 +f 883/1673/73 898/1674/97 890/1662/97 +f 889/1664/74 896/1675/98 888/1665/98 +f 887/1676/72 894/1677/99 886/1668/99 +f 885/1670/75 892/1678/100 884/1671/100 +f 633/1561/85 649/1568/85 648/1562/86 +f 626/1564/87 642/1570/87 641/1565/88 +f 634/1567/89 650/1575/89 649/1568/85 +f 627/1569/77 643/1577/77 642/1570/87 +f 620/1571/90 636/1579/90 635/1572/76 +f 619/1574/76 635/1679/76 650/1575/89 +f 628/1576/91 644/1581/91 643/1577/77 +f 621/1578/92 637/1583/92 636/1579/90 +f 629/1580/93 645/1585/93 644/1581/91 +f 622/1582/94 638/1587/94 637/1583/92 +f 630/1584/95 646/1589/95 645/1585/93 +f 623/1586/75 639/1591/75 638/1587/94 +f 631/1588/74 647/1592/74 646/1589/95 +f 624/1590/96 640/1593/96 639/1591/75 +f 632/1563/86 648/1562/86 647/1592/74 +f 625/1566/88 641/1565/88 640/1593/96 +f 661/1124/93 677/1161/93 676/1158/91 +f 654/1108/94 670/1145/94 669/1142/92 +f 662/1085/95 678/1127/95 677/1161/93 +f 655/1112/75 671/1148/75 670/1145/94 +f 663/1089/74 679/1125/74 678/1127/95 +f 656/1111/96 672/1153/96 671/1148/75 +f 664/1088/86 680/1128/86 679/1125/74 +f 657/1114/88 673/1151/88 672/1153/96 +f 665/1093/85 681/1130/85 680/1128/86 +f 658/1116/87 674/1154/87 673/1151/88 +f 666/1096/89 682/1134/89 681/1130/85 +f 659/1118/77 675/1160/77 674/1154/87 +f 652/1102/90 668/1137/90 667/1139/76 +f 651/1503/76 667/1513/76 682/1134/89 +f 660/1120/91 676/1158/91 675/1160/77 +f 653/1105/92 669/1142/92 668/1137/90 +f 696/1594/96 712/1601/96 711/1595/75 +f 689/1597/85 705/1603/85 704/1598/86 +f 697/1600/88 713/1605/88 712/1601/96 +f 690/1602/89 706/1607/89 705/1603/85 +f 698/1604/87 714/1612/87 713/1605/88 +f 691/1606/76 707/1680/76 706/1607/89 +f 684/1608/91 700/1617/91 699/1609/77 +f 683/1611/77 699/1681/77 714/1612/87 +f 692/1613/90 708/1619/90 707/1614/76 +f 685/1616/93 701/1621/93 700/1617/91 +f 693/1618/92 709/1623/92 708/1619/90 +f 686/1620/95 702/1625/95 701/1621/93 +f 694/1622/94 710/1626/94 709/1623/92 +f 687/1624/74 703/1627/74 702/1625/95 +f 695/1596/75 711/1595/75 710/1626/94 +f 688/1599/86 704/1598/86 703/1627/74 +f 813/1628/93 829/1546/93 828/1328/91 +f 806/1630/94 822/1312/94 821/1309/92 +f 814/1632/95 830/1289/95 829/1546/93 +f 807/1633/75 823/1545/75 822/1312/94 +f 815/1634/74 831/1543/74 830/1289/95 +f 808/1635/96 824/1316/96 823/1545/75 +f 816/1636/86 832/1293/86 831/1543/74 +f 809/1637/88 825/1319/88 824/1316/96 +f 817/1638/85 833/1297/85 832/1293/86 +f 810/1639/87 826/1322/87 825/1319/88 +f 818/1640/89 834/1300/89 833/1297/85 +f 811/1641/77 827/1325/77 826/1322/87 +f 804/1642/90 820/1306/90 819/1303/76 +f 803/1644/76 819/1544/76 834/1300/89 +f 812/1629/91 828/1328/91 827/1325/77 +f 805/1631/92 821/1309/92 820/1306/90 +f 874/1645/97 882/1657/97 881/1646/74 +f 872/1648/98 880/1658/98 879/1649/72 +f 870/1651/99 878/1660/99 877/1652/75 +f 868/1654/100 876/1661/100 875/1655/73 +f 867/1656/73 875/1655/73 882/1657/97 +f 873/1647/74 881/1646/74 880/1658/98 +f 871/1659/72 879/1682/72 878/1660/99 +f 869/1653/75 877/1652/75 876/1661/100 +f 890/1662/97 898/1674/97 897/1663/74 +f 888/1665/98 896/1675/98 895/1666/72 +f 886/1668/99 894/1677/99 893/1669/75 +f 884/1671/100 892/1678/100 891/1672/73 +f 883/1673/73 891/1672/73 898/1674/97 +f 889/1664/74 897/1663/74 896/1675/98 +f 887/1676/72 895/1683/72 894/1677/99 +f 885/1670/75 893/1669/75 892/1678/100 diff --git a/src/main/resources/assets/hbm/models/machines/pump.obj b/src/main/resources/assets/hbm/models/machines/pump.obj new file mode 100644 index 000000000..4f859d6aa --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/pump.obj @@ -0,0 +1,1107 @@ +# Blender v2.79 (sub 0) OBJ File: 'pump.blend' +# www.blender.org +o Piston +v -0.500000 4.500000 -0.500000 +v -0.500000 4.500000 0.500000 +v 0.500000 4.500000 0.500000 +v 0.500000 4.500000 -0.500000 +v -0.500000 5.000000 -0.500000 +v -0.500000 5.000000 0.500000 +v 0.500000 5.000000 0.500000 +v 0.500000 5.000000 -0.500000 +v -0.125000 4.625000 1.000000 +v -0.125000 4.875000 1.000000 +v -0.125000 4.625000 -1.000000 +v -0.125000 4.875000 -1.000000 +v 0.125000 4.625000 1.000000 +v 0.125000 4.875000 1.000000 +v 0.125000 4.625000 -1.000000 +v 0.125000 4.875000 -1.000000 +v -0.250000 3.500000 0.250000 +v 0.250000 3.500000 0.250000 +v -0.250000 3.500000 -0.250000 +v 0.250000 3.500000 -0.250000 +v -0.250000 4.500000 0.250000 +v 0.250000 4.500000 0.250000 +v -0.250000 4.500000 -0.250000 +v 0.250000 4.500000 -0.250000 +vt 0.727273 0.250000 +vt 0.636364 0.375000 +vt 0.636364 0.250000 +vt 0.636364 0.437500 +vt 0.727273 0.562500 +vt 0.636364 0.562500 +vt 0.727273 0.375000 +vt 0.909091 0.375000 +vt 0.818182 0.437500 +vt 0.818182 0.375000 +vt 0.727273 0.437500 +vt 0.545455 0.437500 +vt 0.545455 0.375000 +vt 0.477273 0.656250 +vt 0.659091 0.687500 +vt 0.477273 0.687500 +vt 0.659091 0.656250 +vt 0.681818 0.625000 +vt 0.681818 0.656250 +vt 0.659091 0.625000 +vt 0.477273 0.593750 +vt 0.659091 0.593750 +vt 0.477273 0.625000 +vt 0.454545 0.656250 +vt 0.454545 0.625000 +vt 0.477273 0.562500 +vt 0.659091 0.562500 +vt 0.909091 0.250000 +vt 0.863636 0.375000 +vt 0.863636 0.250000 +vt 1.000000 0.250000 +vt 0.954545 0.375000 +vt 0.954545 0.250000 +vt 0.909091 0.375000 +vt 0.818182 0.375000 +vt 0.818182 0.250000 +vt 0.909091 0.437500 +vt 1.000000 0.375000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 1/1/1 3/2/1 2/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/4/3 3/2/3 +f 2/8/4 5/9/4 1/10/4 +f 1/10/5 8/11/5 4/7/5 +f 3/2/6 6/12/6 2/13/6 +f 10/14/4 11/15/4 9/16/4 +f 12/17/5 15/18/5 11/19/5 +f 16/20/3 13/21/3 15/22/3 +f 14/23/6 9/24/6 13/25/6 +f 15/22/1 9/26/1 11/27/1 +f 12/17/2 14/23/2 16/20/2 +f 20/28/3 22/29/3 18/30/3 +f 17/31/4 23/32/4 19/33/4 +f 19/33/5 24/34/5 20/28/5 +f 18/30/6 21/35/6 17/36/6 +f 1/1/1 4/7/1 3/2/1 +f 7/4/2 8/11/2 5/5/2 +f 4/7/3 8/11/3 7/4/3 +f 2/8/4 6/37/4 5/9/4 +f 1/10/5 5/9/5 8/11/5 +f 3/2/6 7/4/6 6/12/6 +f 10/14/4 12/17/4 11/15/4 +f 12/17/5 16/20/5 15/18/5 +f 16/20/3 14/23/3 13/21/3 +f 14/23/6 10/14/6 9/24/6 +f 15/22/1 13/21/1 9/26/1 +f 12/17/2 10/14/2 14/23/2 +f 20/28/3 24/34/3 22/29/3 +f 17/31/4 21/38/4 23/32/4 +f 19/33/5 23/32/5 24/34/5 +f 18/30/6 22/29/6 21/35/6 +o Arms +v -0.062500 2.687500 0.750000 +v 0.062500 2.687500 0.750000 +v -0.062500 4.812500 0.750000 +v 0.062500 4.812500 0.750000 +v -0.062500 4.812500 0.875000 +v -0.062500 2.687500 0.875000 +v 0.062500 2.687500 0.875000 +v 0.062500 4.812500 0.875000 +v -0.062500 2.687500 -0.875000 +v 0.062500 2.687500 -0.875000 +v -0.062500 4.812500 -0.875000 +v 0.062500 4.812500 -0.875000 +v -0.062500 4.812500 -0.750000 +v -0.062500 2.687500 -0.750000 +v 0.062500 2.687500 -0.750000 +v 0.062500 4.812500 -0.750000 +vt 0.579545 0.953125 +vt 0.568182 0.703125 +vt 0.579545 0.703125 +vt 0.556818 0.703125 +vt 0.545455 0.953125 +vt 0.545455 0.703125 +vt 0.568182 0.953125 +vt 0.590909 0.953125 +vt 0.590909 0.968750 +vt 0.579545 0.968750 +vt 0.579545 0.687500 +vt 0.590909 0.703125 +vt 0.579545 0.953125 +vt 0.568182 0.703125 +vt 0.579545 0.703125 +vt 0.556818 0.703125 +vt 0.545455 0.953125 +vt 0.545455 0.703125 +vt 0.568182 0.953125 +vt 0.590909 0.953125 +vt 0.590909 0.968750 +vt 0.579545 0.968750 +vt 0.579545 0.687500 +vt 0.590909 0.703125 +vt 0.556818 0.953125 +vt 0.590909 0.687500 +vt 0.556818 0.953125 +vt 0.590909 0.687500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 27/39/7 26/40/7 25/41/7 +f 31/42/8 29/43/8 30/44/8 +f 28/45/9 31/42/9 26/40/9 +f 25/41/10 29/46/10 27/39/10 +f 27/39/11 32/47/11 28/48/11 +f 26/49/12 30/50/12 25/41/12 +f 35/51/7 34/52/7 33/53/7 +f 39/54/8 37/55/8 38/56/8 +f 36/57/9 39/54/9 34/52/9 +f 33/53/10 37/58/10 35/51/10 +f 35/51/11 40/59/11 36/60/11 +f 34/61/12 38/62/12 33/53/12 +f 27/39/7 28/45/7 26/40/7 +f 31/42/8 32/63/8 29/43/8 +f 28/45/9 32/63/9 31/42/9 +f 25/41/10 30/50/10 29/46/10 +f 27/39/11 29/46/11 32/47/11 +f 26/49/12 31/64/12 30/50/12 +f 35/51/7 36/57/7 34/52/7 +f 39/54/8 40/65/8 37/55/8 +f 36/57/9 40/65/9 39/54/9 +f 33/53/10 38/62/10 37/58/10 +f 35/51/11 37/58/11 40/59/11 +f 34/61/12 39/66/12 38/62/12 +o Rotor +v -0.000000 2.875000 0.500000 +v -0.441942 2.691942 0.500000 +v -0.625000 2.250000 0.500000 +v -0.441942 1.808058 0.500000 +v 0.000000 1.625000 0.500000 +v 0.441942 1.808058 0.500000 +v 0.625000 2.250000 0.500000 +v 0.441942 2.691942 0.500000 +v -0.441942 2.691942 0.750000 +v -0.000000 2.875000 0.750000 +v -0.625000 2.250000 0.750000 +v -0.441942 1.808058 0.750000 +v 0.000000 1.625000 0.750000 +v 0.441942 1.808058 0.750000 +v 0.625000 2.250000 0.750000 +v 0.441942 2.691942 0.750000 +v -0.000000 2.875000 -0.750000 +v -0.441942 2.691942 -0.750000 +v -0.625000 2.250000 -0.750000 +v -0.441942 1.808058 -0.750000 +v 0.000000 1.625000 -0.750000 +v 0.441942 1.808058 -0.750000 +v 0.625000 2.250000 -0.750000 +v 0.441942 2.691942 -0.750000 +v -0.441942 2.691942 -0.500000 +v -0.000000 2.875000 -0.500000 +v -0.625000 2.250000 -0.500000 +v -0.441942 1.808058 -0.500000 +v 0.000000 1.625000 -0.500000 +v 0.441942 1.808058 -0.500000 +v 0.625000 2.250000 -0.500000 +v 0.441942 2.691942 -0.500000 +vt 0.920455 0.439870 +vt 0.959412 0.462058 +vt 0.975549 0.515625 +vt 0.784091 0.439870 +vt 0.839185 0.515625 +vt 0.784091 0.591380 +vt 0.863636 0.687500 +vt 0.840909 0.625000 +vt 0.863636 0.625000 +vt 0.863636 0.562500 +vt 0.840909 0.500000 +vt 0.863636 0.500000 +vt 0.863636 0.937500 +vt 0.840909 0.875000 +vt 0.863636 0.875000 +vt 0.863636 0.812500 +vt 0.840909 0.750000 +vt 0.863636 0.750000 +vt 0.840909 0.562500 +vt 0.840909 0.437500 +vt 0.863636 0.437500 +vt 0.840909 0.812500 +vt 0.840909 0.687500 +vt 0.920455 0.439870 +vt 0.959412 0.462058 +vt 0.975549 0.515625 +vt 0.784091 0.439870 +vt 0.839185 0.515625 +vt 0.784091 0.591380 +vt 0.863636 0.687500 +vt 0.840909 0.625000 +vt 0.863636 0.625000 +vt 0.863636 0.562500 +vt 0.840909 0.500000 +vt 0.863636 0.500000 +vt 0.863636 0.937500 +vt 0.840909 0.875000 +vt 0.863636 0.875000 +vt 0.863636 0.812500 +vt 0.840909 0.750000 +vt 0.863636 0.750000 +vt 0.840909 0.562500 +vt 0.840909 0.437500 +vt 0.863636 0.437500 +vt 0.840909 0.812500 +vt 0.840909 0.687500 +vt 0.959412 0.569192 +vt 0.865360 0.515625 +vt 0.920455 0.591380 +vt 0.881497 0.569192 +vt 0.881497 0.462058 +vt 0.745133 0.569192 +vt 0.728997 0.515625 +vt 0.745133 0.462058 +vt 0.823048 0.462058 +vt 0.823048 0.569192 +vt 0.840909 0.937500 +vt 0.959412 0.569192 +vt 0.865360 0.515625 +vt 0.920455 0.591380 +vt 0.881497 0.569192 +vt 0.881497 0.462058 +vt 0.745133 0.569192 +vt 0.728997 0.515625 +vt 0.745133 0.462058 +vt 0.823048 0.462058 +vt 0.823048 0.569192 +vt 0.840909 0.937500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +s off +f 45/67/13 44/68/13 43/69/13 +f 53/70/14 55/71/14 50/72/14 +f 41/73/15 56/74/15 48/75/15 +f 47/76/16 54/77/16 46/78/16 +f 45/79/17 52/80/17 44/81/17 +f 43/82/18 49/83/18 42/84/18 +f 48/75/19 55/85/19 47/76/19 +f 46/78/20 53/86/20 45/87/20 +f 44/81/21 51/88/21 43/82/21 +f 42/84/22 50/89/22 41/73/22 +f 61/90/13 60/91/13 59/92/13 +f 69/93/14 71/94/14 66/95/14 +f 57/96/15 72/97/15 64/98/15 +f 63/99/16 70/100/16 62/101/16 +f 61/102/17 68/103/17 60/104/17 +f 59/105/18 65/106/18 58/107/18 +f 64/98/19 71/108/19 63/99/19 +f 62/101/20 69/109/20 61/110/20 +f 60/104/21 67/111/21 59/105/21 +f 58/107/22 66/112/22 57/96/22 +f 43/69/13 42/113/13 47/114/13 +f 42/113/13 41/115/13 47/114/13 +f 41/115/13 48/116/13 47/114/13 +f 47/114/13 46/117/13 43/69/13 +f 46/117/13 45/67/13 43/69/13 +f 50/72/14 49/118/14 51/119/14 +f 51/119/14 52/120/14 53/70/14 +f 53/70/14 54/121/14 55/71/14 +f 55/71/14 56/122/14 50/72/14 +f 50/72/14 51/119/14 53/70/14 +f 41/73/15 50/89/15 56/74/15 +f 47/76/16 55/85/16 54/77/16 +f 45/79/17 53/123/17 52/80/17 +f 43/82/18 51/88/18 49/83/18 +f 48/75/19 56/74/19 55/85/19 +f 46/78/20 54/77/20 53/86/20 +f 44/81/21 52/80/21 51/88/21 +f 42/84/22 49/83/22 50/89/22 +f 59/92/13 58/124/13 63/125/13 +f 58/124/13 57/126/13 63/125/13 +f 57/126/13 64/127/13 63/125/13 +f 63/125/13 62/128/13 59/92/13 +f 62/128/13 61/90/13 59/92/13 +f 66/95/14 65/129/14 67/130/14 +f 67/130/14 68/131/14 69/93/14 +f 69/93/14 70/132/14 71/94/14 +f 71/94/14 72/133/14 66/95/14 +f 66/95/14 67/130/14 69/93/14 +f 57/96/15 66/112/15 72/97/15 +f 63/99/16 71/108/16 70/100/16 +f 61/102/17 69/134/17 68/103/17 +f 59/105/18 67/111/18 65/106/18 +f 64/98/19 72/97/19 71/108/19 +f 62/101/20 70/100/20 69/109/20 +f 60/104/21 68/103/21 67/111/21 +f 58/107/22 65/106/22 66/112/22 +o Base +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.000000 1.000000 1.000000 +v 1.000000 1.000000 1.000000 +v -1.000000 1.000000 -1.000000 +v 1.000000 1.000000 -1.000000 +v -1.000000 1.500000 -1.000000 +v -1.000000 1.500000 1.000000 +v 1.000000 1.500000 1.000000 +v 1.000000 1.500000 -1.000000 +v -0.500000 1.500000 0.500000 +v 0.500000 1.500000 0.500000 +v -0.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.500000 +v -0.500000 3.500000 -0.500000 +v -0.500000 3.500000 0.500000 +v 0.500000 3.500000 0.500000 +v 0.500000 3.500000 -0.500000 +v 0.625000 3.125000 -0.375000 +v 0.775888 3.150888 -0.338388 +v 0.801777 3.176777 -0.250000 +v 0.775888 3.150888 -0.161612 +v 0.713388 3.088388 -0.125000 +v 0.650888 3.025888 -0.161612 +v 0.650888 3.025888 -0.338388 +v 0.713388 3.088388 -0.375000 +v 0.838388 3.000000 -0.338388 +v 0.875000 3.000000 -0.250000 +v 0.838388 3.000000 -0.161612 +v 0.750000 3.000000 -0.125000 +v 0.661612 3.000000 -0.161612 +v 0.625000 3.000000 -0.250000 +v 0.661612 3.000000 -0.338388 +v 0.750000 3.000000 -0.375000 +v 0.750000 1.500000 0.125000 +v 0.661612 1.500000 0.161612 +v 0.625000 1.500000 0.250000 +v 0.661612 1.500000 0.338388 +v 0.750000 1.500000 0.375000 +v 0.838388 1.500000 0.338388 +v 0.875000 1.500000 0.250000 +v 0.838388 1.500000 0.161612 +v 0.750000 3.000000 0.125000 +v 0.661612 3.000000 0.161612 +v 0.625000 3.000000 0.250000 +v 0.661612 3.000000 0.338388 +v 0.750000 3.000000 0.375000 +v 0.838388 3.000000 0.338388 +v 0.875000 3.000000 0.250000 +v 0.838388 3.000000 0.161612 +v 0.713388 3.088388 0.125000 +v 0.650888 3.025888 0.161612 +v 0.650888 3.025888 0.338388 +v 0.713388 3.088388 0.375000 +v 0.775888 3.150888 0.338388 +v 0.801777 3.176777 0.250000 +v 0.775888 3.150888 0.161612 +v 0.625000 3.125000 0.125000 +v 0.625000 3.036612 0.161612 +v 0.625000 3.036612 0.338388 +v 0.625000 3.125000 0.375000 +v 0.625000 3.213388 0.338388 +v 0.625000 3.250000 0.250000 +v 0.625000 3.213388 0.161612 +v 0.500000 3.000000 0.250000 +v 0.500000 3.125000 0.125000 +v 0.500000 3.036612 0.161612 +v 0.500000 3.036612 0.338388 +v 0.500000 3.125000 0.375000 +v 0.500000 3.213388 0.338388 +v 0.500000 3.250000 0.250000 +v 0.500000 3.213388 0.161612 +v 0.838388 1.500000 -0.338388 +v 0.875000 1.500000 -0.250000 +v 0.838388 1.500000 -0.161612 +v 0.750000 1.500000 -0.125000 +v 0.661612 1.500000 -0.161612 +v 0.625000 1.500000 -0.250000 +v 0.661612 1.500000 -0.338388 +v 0.750000 1.500000 -0.375000 +v 0.625000 3.036612 -0.338388 +v 0.625000 3.036612 -0.161612 +v 0.625000 3.125000 -0.125000 +v 0.625000 3.213388 -0.161612 +v 0.625000 3.250000 -0.250000 +v 0.625000 3.213388 -0.338388 +v 0.500000 3.000000 -0.250000 +v 0.500000 3.125000 -0.375000 +v 0.500000 3.036612 -0.338388 +v 0.500000 3.036612 -0.161612 +v 0.500000 3.125000 -0.125000 +v 0.500000 3.213388 -0.161612 +v 0.500000 3.250000 -0.250000 +v 0.500000 3.213388 -0.338388 +v -0.625000 3.125000 0.375000 +v -0.775888 3.150888 0.338388 +v -0.801777 3.176777 0.250000 +v -0.775888 3.150888 0.161612 +v -0.713388 3.088388 0.125000 +v -0.650888 3.025888 0.161612 +v -0.650888 3.025888 0.338388 +v -0.713388 3.088388 0.375000 +v -0.838388 3.000000 0.338388 +v -0.875000 3.000000 0.250000 +v -0.838388 3.000000 0.161612 +v -0.750000 3.000000 0.125000 +v -0.661612 3.000000 0.161612 +v -0.625000 3.000000 0.250000 +v -0.661612 3.000000 0.338388 +v -0.750000 3.000000 0.375000 +v -0.750000 1.500000 -0.125000 +v -0.661612 1.500000 -0.161612 +v -0.625000 1.500000 -0.250000 +v -0.661612 1.500000 -0.338388 +v -0.750000 1.500000 -0.375000 +v -0.838388 1.500000 -0.338388 +v -0.875000 1.500000 -0.250000 +v -0.838388 1.500000 -0.161612 +v -0.750000 3.000000 -0.125000 +v -0.661612 3.000000 -0.161612 +v -0.625000 3.000000 -0.250000 +v -0.661612 3.000000 -0.338388 +v -0.750000 3.000000 -0.375000 +v -0.838388 3.000000 -0.338388 +v -0.875000 3.000000 -0.250000 +v -0.838388 3.000000 -0.161612 +v -0.713388 3.088388 -0.125000 +v -0.650888 3.025888 -0.161612 +v -0.650888 3.025888 -0.338388 +v -0.713388 3.088388 -0.375000 +v -0.775888 3.150888 -0.338388 +v -0.801777 3.176777 -0.250000 +v -0.775888 3.150888 -0.161612 +v -0.625000 3.125000 -0.125000 +v -0.625000 3.036612 -0.161612 +v -0.625000 3.036612 -0.338388 +v -0.625000 3.125000 -0.375000 +v -0.625000 3.213388 -0.338388 +v -0.625000 3.250000 -0.250000 +v -0.625000 3.213388 -0.161612 +v -0.500000 3.000000 -0.250000 +v -0.500000 3.125000 -0.125000 +v -0.500000 3.036612 -0.161612 +v -0.500000 3.036612 -0.338388 +v -0.500000 3.125000 -0.375000 +v -0.500000 3.213388 -0.338388 +v -0.500000 3.250000 -0.250000 +v -0.500000 3.213388 -0.161612 +v -0.838388 1.500000 0.338388 +v -0.875000 1.500000 0.250000 +v -0.838388 1.500000 0.161612 +v -0.750000 1.500000 0.125000 +v -0.661612 1.500000 0.161612 +v -0.625000 1.500000 0.250000 +v -0.661612 1.500000 0.338388 +v -0.750000 1.500000 0.375000 +v -0.625000 3.036612 0.338388 +v -0.625000 3.036612 0.161612 +v -0.625000 3.125000 0.125000 +v -0.625000 3.213388 0.161612 +v -0.625000 3.250000 0.250000 +v -0.625000 3.213388 0.338388 +v -0.500000 3.000000 0.250000 +v -0.500000 3.125000 0.375000 +v -0.500000 3.036612 0.338388 +v -0.500000 3.036612 0.161612 +v -0.500000 3.125000 0.125000 +v -0.500000 3.213388 0.161612 +v -0.500000 3.250000 0.250000 +v -0.500000 3.213388 0.338388 +vt 0.363636 0.007812 +vt 0.090909 0.382812 +vt 0.090909 0.007812 +vt 0.090909 0.500000 +vt 0.363636 0.875000 +vt 0.090909 0.875000 +vt 0.454545 0.875000 +vt 0.363636 0.500000 +vt 0.454545 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.875000 +vt 0.363636 0.382812 +vt 0.090909 1.000000 +vt 0.363636 1.000000 +vt 0.409091 0.062500 +vt 0.590909 0.312500 +vt 0.409091 0.312500 +vt 0.363636 0.062500 +vt 0.363636 0.312500 +vt 0.590909 0.000000 +vt 0.409091 0.000000 +vt 0.409091 0.375000 +vt 0.590909 0.375000 +vt 0.636364 0.312500 +vt 0.590909 0.062500 +vt 0.636364 0.062500 +vt 0.727273 0.250000 +vt 0.818182 0.375000 +vt 0.727273 0.375000 +vt 1.000000 -0.000000 +vt 0.909091 0.250000 +vt 0.909091 -0.000000 +vt 0.818182 0.250000 +vt 0.818182 -0.000000 +vt 0.727273 -0.000000 +vt 0.636364 0.250000 +vt 0.636364 -0.000000 +vt 1.000000 0.250000 +vt 0.465909 0.898438 +vt 0.477273 0.914062 +vt 0.465909 0.906250 +vt 0.488636 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.477273 0.882812 +vt 0.465909 0.890625 +vt 0.488636 0.875000 +vt 0.500000 0.898438 +vt 0.522727 0.882812 +vt 0.511364 0.898438 +vt 0.511364 0.875000 +vt 0.534091 0.890625 +vt 0.522727 0.898438 +vt 0.477273 0.898438 +vt 0.500000 0.875000 +vt 0.522727 0.687500 +vt 0.511364 0.687500 +vt 0.534091 0.687500 +vt 0.522727 0.875000 +vt 0.500000 0.687500 +vt 0.488636 0.875000 +vt 0.488636 0.687500 +vt 0.477273 0.687500 +vt 0.465909 0.875000 +vt 0.465909 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.534091 0.687500 +vt 0.511364 0.687500 +vt 0.500000 0.875000 +vt 0.477273 0.875000 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.522727 0.875000 +vt 0.522727 0.687500 +vt 0.511364 0.875000 +vt 0.500000 0.898438 +vt 0.477273 0.882812 +vt 0.488636 0.898438 +vt 0.477273 0.898438 +vt 0.522727 0.882812 +vt 0.534091 0.898438 +vt 0.522727 0.898438 +vt 0.511364 0.898438 +vt 0.465909 0.890625 +vt 0.465909 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.477273 0.914062 +vt 0.465909 0.906250 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.534091 0.890625 +vt 0.545455 0.898438 +vt 0.534091 0.906250 +vt 0.454545 0.898438 +vt 0.477273 0.921875 +vt 0.465909 0.937500 +vt 0.465909 0.921875 +vt 0.500000 0.937500 +vt 0.477273 0.937500 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.465909 0.687500 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.488636 0.687500 +vt 0.477273 0.875000 +vt 0.477273 0.687500 +vt 0.500000 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.465909 0.875000 +vt 0.534091 0.898438 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.545455 0.898438 +vt 0.534091 0.906250 +vt 0.454545 0.898438 +vt 0.477273 0.921875 +vt 0.465909 0.937500 +vt 0.465909 0.921875 +vt 0.500000 0.937500 +vt 0.477273 0.937500 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.465909 0.898438 +vt 0.477273 0.914062 +vt 0.465909 0.906250 +vt 0.488636 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.477273 0.882812 +vt 0.465909 0.890625 +vt 0.500000 0.875000 +vt 0.488636 0.875000 +vt 0.522727 0.882812 +vt 0.511364 0.898438 +vt 0.511364 0.875000 +vt 0.534091 0.890625 +vt 0.522727 0.898438 +vt 0.477273 0.898438 +vt 0.500000 0.898438 +vt 0.522727 0.687500 +vt 0.511364 0.687500 +vt 0.534091 0.687500 +vt 0.522727 0.875000 +vt 0.500000 0.687500 +vt 0.488636 0.875000 +vt 0.488636 0.687500 +vt 0.477273 0.687500 +vt 0.465909 0.875000 +vt 0.465909 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.534091 0.687500 +vt 0.511364 0.687500 +vt 0.500000 0.875000 +vt 0.477273 0.875000 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.522727 0.875000 +vt 0.522727 0.687500 +vt 0.511364 0.875000 +vt 0.500000 0.898438 +vt 0.477273 0.882812 +vt 0.488636 0.898438 +vt 0.477273 0.898438 +vt 0.522727 0.882812 +vt 0.534091 0.898438 +vt 0.522727 0.898438 +vt 0.511364 0.898438 +vt 0.465909 0.890625 +vt 0.465909 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.465909 0.906250 +vt 0.477273 0.914062 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.534091 0.890625 +vt 0.545455 0.898438 +vt 0.534091 0.906250 +vt 0.454545 0.898438 +vt 0.465909 0.921875 +vt 0.477273 0.937500 +vt 0.465909 0.937500 +vt 0.500000 0.937500 +vt 0.477273 0.921875 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.465909 0.687500 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.488636 0.687500 +vt 0.477273 0.875000 +vt 0.477273 0.687500 +vt 0.500000 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.465909 0.875000 +vt 0.534091 0.906250 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.545455 0.898438 +vt 0.534091 0.898438 +vt 0.454545 0.898438 +vt 0.477273 0.921875 +vt 0.465909 0.937500 +vt 0.465909 0.921875 +vt 0.500000 0.937500 +vt 0.477273 0.937500 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.4617 -0.4617 0.7573 +vn 0.0196 0.0473 0.9987 +vn -0.1363 -0.6737 0.7263 +vn 0.5293 0.5293 0.6630 +vn 0.1866 0.9824 0.0000 +vn 0.1447 0.7194 0.6794 +vn 0.0473 0.0196 0.9987 +vn -0.6737 -0.1363 0.7263 +vn 0.7194 0.1447 0.6794 +vn 0.7071 0.7071 0.0000 +vn 0.0473 0.0196 -0.9987 +vn 0.5293 0.5293 -0.6630 +vn 0.7194 0.1447 -0.6794 +vn -0.6737 -0.1363 -0.7263 +vn 0.0670 0.0670 -0.9955 +vn 0.0670 0.0670 0.9955 +vn 0.9824 0.1866 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.4617 -0.4617 -0.7573 +vn 0.0196 0.0473 -0.9987 +vn 0.1447 0.7194 -0.6794 +vn -0.1363 -0.6737 -0.7263 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.4617 -0.4617 -0.7573 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.5293 0.5293 -0.6630 +vn -0.1866 0.9824 0.0000 +vn -0.1447 0.7194 -0.6794 +vn -0.0473 0.0196 -0.9987 +vn 0.6737 -0.1363 -0.7263 +vn -0.9824 0.1866 0.0000 +vn -0.7194 0.1447 -0.6794 +vn -0.0473 0.0196 0.9987 +vn -0.5293 0.5293 0.6630 +vn -0.7194 0.1447 0.6794 +vn 0.6737 -0.1363 0.7263 +vn -0.0670 0.0670 0.9955 +vn -0.0670 0.0670 -0.9955 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.4617 -0.4617 0.7573 +vn -0.0196 0.0473 0.9987 +vn -0.1447 0.7194 0.6794 +vn 0.1363 -0.6737 0.7263 +s off +f 75/135/23 74/136/23 73/137/23 +f 78/138/24 79/139/24 77/140/24 +f 75/141/25 80/142/25 76/143/25 +f 74/144/26 77/140/26 73/145/26 +f 76/146/27 78/138/27 74/136/27 +f 73/147/28 79/139/28 75/148/28 +f 87/149/24 85/150/24 86/151/24 +f 82/152/26 86/151/26 81/153/26 +f 84/154/27 87/149/27 82/155/27 +f 81/156/28 85/150/28 83/157/28 +f 83/158/25 88/159/25 84/160/25 +f 95/161/24 93/162/24 94/163/24 +f 89/164/28 93/165/28 91/166/28 +f 91/166/25 96/167/25 92/168/25 +f 90/169/26 94/170/26 89/171/26 +f 92/168/27 95/161/27 90/169/27 +f 75/135/23 76/146/23 74/136/23 +f 78/138/24 80/142/24 79/139/24 +f 75/141/25 79/139/25 80/142/25 +f 74/144/26 78/138/26 77/140/26 +f 76/146/27 80/142/27 78/138/27 +f 73/147/28 77/140/28 79/139/28 +f 87/149/24 88/159/24 85/150/24 +f 82/152/26 87/149/26 86/151/26 +f 84/154/27 88/159/27 87/149/27 +f 81/156/28 86/151/28 85/150/28 +f 83/158/25 85/150/25 88/159/25 +f 95/161/24 96/167/24 93/162/24 +f 89/164/28 94/172/28 93/165/28 +f 91/166/25 93/165/25 96/167/25 +f 90/169/26 95/161/26 94/170/26 +f 92/168/27 96/167/27 95/161/27 +s 1 +f 102/173/29 161/174/30 160/175/31 +f 100/176/32 163/177/33 162/178/34 +f 108/179/35 102/173/29 109/180/36 +f 107/181/37 99/182/38 100/176/32 +f 112/183/39 98/184/40 105/185/41 +f 111/186/42 104/187/43 112/183/39 +f 107/181/37 101/188/44 108/179/35 +f 106/189/45 98/184/40 99/182/38 +f 158/190/25 105/185/41 151/191/46 +f 157/192/47 112/193/39 158/190/25 +f 119/194/27 126/195/37 118/196/48 +f 117/197/26 124/198/36 116/199/49 +f 115/200/28 122/201/42 114/202/47 +f 120/203/46 127/204/45 119/194/27 +f 118/196/48 125/205/35 117/197/26 +f 116/199/49 123/206/50 115/207/28 +f 114/202/47 121/208/39 113/209/25 +f 113/209/25 128/210/41 120/203/46 +f 128/210/41 134/211/38 127/204/45 +f 125/212/35 133/213/32 132/214/44 +f 121/215/39 130/216/51 129/217/43 +f 128/210/41 129/217/43 135/218/40 +f 126/195/37 134/211/38 133/213/32 +f 124/219/36 132/214/44 131/220/29 +f 133/213/32 141/221/33 140/222/34 +f 131/220/29 139/223/30 138/224/31 +f 135/218/40 141/221/33 134/211/38 +f 132/214/44 140/222/34 139/223/30 +f 130/216/51 136/225/52 129/217/43 +f 129/217/43 142/226/53 135/218/40 +f 122/227/42 123/228/50 130/216/51 +f 130/216/51 123/228/50 137/229/54 +f 124/219/36 131/220/29 123/230/50 +f 131/220/29 138/224/31 123/230/50 +f 139/231/30 146/232/55 138/233/31 +f 142/226/53 149/234/24 141/221/33 +f 140/222/34 147/235/26 139/231/30 +f 137/236/54 144/237/25 136/238/52 +f 138/233/31 143/239/23 123/240/50 +f 136/238/52 150/241/56 142/226/53 +f 137/236/54 143/242/23 145/243/57 +f 140/222/34 149/234/24 148/244/58 +f 155/245/49 110/246/50 156/247/28 +f 153/248/48 108/249/35 154/250/26 +f 151/191/46 106/189/45 152/251/27 +f 156/252/28 111/253/42 157/192/47 +f 154/250/26 109/254/36 155/245/49 +f 152/251/27 107/181/37 153/248/48 +f 98/184/40 163/177/33 99/182/38 +f 101/188/44 162/178/34 161/174/30 +f 103/255/51 97/256/52 104/187/43 +f 104/187/43 164/257/53 98/184/40 +f 111/186/42 110/258/50 103/255/51 +f 103/255/51 110/258/50 159/259/54 +f 109/180/36 102/173/29 110/260/50 +f 102/173/29 160/175/31 110/260/50 +f 161/261/30 168/262/55 160/263/31 +f 164/257/53 171/264/24 163/177/33 +f 162/178/34 169/265/26 161/261/30 +f 159/266/54 166/267/25 97/268/52 +f 160/263/31 165/269/23 110/270/50 +f 97/268/52 172/271/56 164/257/53 +f 159/266/54 165/272/23 167/273/57 +f 162/178/34 171/264/24 170/274/58 +f 178/275/59 237/276/60 236/277/61 +f 176/278/62 239/279/63 238/280/64 +f 184/281/65 178/275/59 185/282/66 +f 182/283/67 176/278/62 183/284/68 +f 188/285/69 174/286/70 181/287/71 +f 187/288/72 180/289/73 188/285/69 +f 183/284/68 177/290/74 184/281/65 +f 182/283/67 174/286/70 175/291/75 +f 234/292/26 181/287/71 227/293/49 +f 233/294/48 188/295/69 234/292/26 +f 195/296/28 202/297/68 194/298/47 +f 193/299/25 200/300/66 192/301/46 +f 191/302/27 198/303/72 190/304/48 +f 196/305/49 203/306/67 195/296/28 +f 194/298/47 201/307/65 193/299/25 +f 192/301/46 199/308/76 191/309/27 +f 190/304/48 197/310/69 189/311/26 +f 189/311/26 204/312/71 196/305/49 +f 204/312/71 210/313/75 203/306/67 +f 201/314/65 209/315/62 208/316/74 +f 197/317/69 206/318/77 205/319/73 +f 204/312/71 205/319/73 211/320/70 +f 202/297/68 210/313/75 209/315/62 +f 200/321/66 208/316/74 207/322/59 +f 209/315/62 217/323/63 216/324/64 +f 208/316/74 214/325/61 207/322/59 +f 211/320/70 217/323/63 210/313/75 +f 208/316/74 216/324/64 215/326/60 +f 206/318/77 212/327/78 205/319/73 +f 205/319/73 218/328/79 211/320/70 +f 198/329/72 199/330/76 206/318/77 +f 206/318/77 199/330/76 213/331/80 +f 200/321/66 207/322/59 199/332/76 +f 207/322/59 214/325/61 199/332/76 +f 214/333/61 223/334/25 222/335/57 +f 218/328/79 225/336/24 217/323/63 +f 216/324/64 223/334/25 215/337/60 +f 213/338/80 220/339/26 212/340/78 +f 214/333/61 219/341/23 199/342/76 +f 212/340/78 226/343/58 218/328/79 +f 213/338/80 219/344/23 221/345/55 +f 216/324/64 225/336/24 224/346/56 +f 231/347/46 186/348/76 232/349/27 +f 229/350/47 184/351/65 230/352/25 +f 227/293/49 182/283/67 228/353/28 +f 232/354/27 187/355/72 233/294/48 +f 230/352/25 185/356/66 231/347/46 +f 228/353/28 183/284/68 229/350/47 +f 174/286/70 239/279/63 175/291/75 +f 177/290/74 238/280/64 237/276/60 +f 180/289/73 235/357/80 173/358/78 +f 180/289/73 240/359/79 174/286/70 +f 187/288/72 186/360/76 179/361/77 +f 179/361/77 186/360/76 235/357/80 +f 185/282/66 178/275/59 186/362/76 +f 178/275/59 236/277/61 186/362/76 +f 237/363/60 244/364/57 236/365/61 +f 240/359/79 247/366/24 239/279/63 +f 238/280/64 245/367/25 237/363/60 +f 235/368/80 242/369/26 173/370/78 +f 236/365/61 241/371/23 186/372/76 +f 173/370/78 248/373/58 240/359/79 +f 235/368/80 241/374/23 243/375/55 +f 238/280/64 247/366/24 246/376/56 +f 102/173/29 101/188/44 161/174/30 +f 100/176/32 99/182/38 163/177/33 +f 108/179/35 101/188/44 102/173/29 +f 107/181/37 106/189/45 99/182/38 +f 112/183/39 104/187/43 98/184/40 +f 111/186/42 103/255/51 104/187/43 +f 107/181/37 100/176/32 101/188/44 +f 106/189/45 105/185/41 98/184/40 +f 158/190/25 112/193/39 105/185/41 +f 157/192/47 111/253/42 112/193/39 +f 119/194/27 127/204/45 126/195/37 +f 117/197/26 125/205/35 124/198/36 +f 115/200/28 123/377/50 122/201/42 +f 120/203/46 128/210/41 127/204/45 +f 118/196/48 126/195/37 125/205/35 +f 116/199/49 124/198/36 123/206/50 +f 114/202/47 122/201/42 121/208/39 +f 113/209/25 121/208/39 128/210/41 +f 128/210/41 135/218/40 134/211/38 +f 125/212/35 126/195/37 133/213/32 +f 121/215/39 122/227/42 130/216/51 +f 128/210/41 121/215/39 129/217/43 +f 126/195/37 127/204/45 134/211/38 +f 124/219/36 125/212/35 132/214/44 +f 133/213/32 134/211/38 141/221/33 +f 131/220/29 132/214/44 139/223/30 +f 135/218/40 142/226/53 141/221/33 +f 132/214/44 133/213/32 140/222/34 +f 130/216/51 137/229/54 136/225/52 +f 129/217/43 136/225/52 142/226/53 +f 139/231/30 147/235/26 146/232/55 +f 142/226/53 150/241/56 149/234/24 +f 140/222/34 148/244/58 147/235/26 +f 137/236/54 145/243/57 144/237/25 +f 138/233/31 146/232/55 143/239/23 +f 136/238/52 144/237/25 150/241/56 +f 137/236/54 123/378/50 143/242/23 +f 140/222/34 141/221/33 149/234/24 +f 155/245/49 109/254/36 110/246/50 +f 153/248/48 107/181/37 108/249/35 +f 151/191/46 105/185/41 106/189/45 +f 156/252/28 110/379/50 111/253/42 +f 154/250/26 108/249/35 109/254/36 +f 152/251/27 106/189/45 107/181/37 +f 98/184/40 164/257/53 163/177/33 +f 101/188/44 100/176/32 162/178/34 +f 103/255/51 159/259/54 97/256/52 +f 104/187/43 97/256/52 164/257/53 +f 161/261/30 169/265/26 168/262/55 +f 164/257/53 172/271/56 171/264/24 +f 162/178/34 170/274/58 169/265/26 +f 159/266/54 167/273/57 166/267/25 +f 160/263/31 168/262/55 165/269/23 +f 97/268/52 166/267/25 172/271/56 +f 159/266/54 110/380/50 165/272/23 +f 162/178/34 163/177/33 171/264/24 +f 178/275/59 177/290/74 237/276/60 +f 176/278/62 175/291/75 239/279/63 +f 184/281/65 177/290/74 178/275/59 +f 182/283/67 175/291/75 176/278/62 +f 188/285/69 180/289/73 174/286/70 +f 187/288/72 179/361/77 180/289/73 +f 183/284/68 176/278/62 177/290/74 +f 182/283/67 181/287/71 174/286/70 +f 234/292/26 188/295/69 181/287/71 +f 233/294/48 187/355/72 188/295/69 +f 195/296/28 203/306/67 202/297/68 +f 193/299/25 201/307/65 200/300/66 +f 191/302/27 199/381/76 198/303/72 +f 196/305/49 204/312/71 203/306/67 +f 194/298/47 202/297/68 201/307/65 +f 192/301/46 200/300/66 199/308/76 +f 190/304/48 198/303/72 197/310/69 +f 189/311/26 197/310/69 204/312/71 +f 204/312/71 211/320/70 210/313/75 +f 201/314/65 202/297/68 209/315/62 +f 197/317/69 198/329/72 206/318/77 +f 204/312/71 197/317/69 205/319/73 +f 202/297/68 203/306/67 210/313/75 +f 200/321/66 201/314/65 208/316/74 +f 209/315/62 210/313/75 217/323/63 +f 208/316/74 215/326/60 214/325/61 +f 211/320/70 218/328/79 217/323/63 +f 208/316/74 209/315/62 216/324/64 +f 206/318/77 213/331/80 212/327/78 +f 205/319/73 212/327/78 218/328/79 +f 214/333/61 215/337/60 223/334/25 +f 218/328/79 226/343/58 225/336/24 +f 216/324/64 224/346/56 223/334/25 +f 213/338/80 221/345/55 220/339/26 +f 214/333/61 222/335/57 219/341/23 +f 212/340/78 220/339/26 226/343/58 +f 213/338/80 199/382/76 219/344/23 +f 216/324/64 217/323/63 225/336/24 +f 231/347/46 185/356/66 186/348/76 +f 229/350/47 183/284/68 184/351/65 +f 227/293/49 181/287/71 182/283/67 +f 232/354/27 186/383/76 187/355/72 +f 230/352/25 184/351/65 185/356/66 +f 228/353/28 182/283/67 183/284/68 +f 174/286/70 240/359/79 239/279/63 +f 177/290/74 176/278/62 238/280/64 +f 180/289/73 179/361/77 235/357/80 +f 180/289/73 173/358/78 240/359/79 +f 237/363/60 245/367/25 244/364/57 +f 240/359/79 248/373/58 247/366/24 +f 238/280/64 246/376/56 245/367/25 +f 235/368/80 243/375/55 242/369/26 +f 236/365/61 244/364/57 241/371/23 +f 173/370/78 242/369/26 248/373/58 +f 235/368/80 186/384/76 241/374/23 +f 238/280/64 239/279/63 247/366/24 diff --git a/src/main/resources/assets/hbm/models/machines/pyrooven.obj b/src/main/resources/assets/hbm/models/machines/pyrooven.obj new file mode 100644 index 000000000..31300255a --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/pyrooven.obj @@ -0,0 +1,3366 @@ +# Blender v2.79 (sub 0) OBJ File: 'pyrooven.blend' +# www.blender.org +o Fan +v 1.500000 1.500000 1.375000 +v 1.391747 1.500000 1.437500 +v 1.391747 1.500000 1.562500 +v 1.500000 1.500000 1.625000 +v 1.608253 1.500000 1.562500 +v 1.608253 1.500000 1.437500 +v 1.500000 1.625000 1.375000 +v 1.391747 1.625000 1.437500 +v 1.391747 1.625000 1.562500 +v 1.500000 1.625000 1.625000 +v 1.608253 1.625000 1.562500 +v 1.608253 1.625000 1.437500 +v 1.608253 1.546324 1.560370 +v 1.608253 1.578676 1.439630 +v 2.041266 1.501839 1.726389 +v 2.041266 1.623161 1.273611 +v 1.498156 1.546324 1.376065 +v 1.393591 1.578676 1.436435 +v 1.425426 1.501839 0.918055 +v 1.033309 1.623161 1.144444 +v 1.393591 1.546324 1.563565 +v 1.498156 1.578676 1.623935 +v 1.033309 1.501839 1.855556 +v 1.425426 1.623161 2.081945 +vt 0.508475 0.829545 +vt 0.514124 0.818182 +vt 0.514124 0.829545 +vt 0.485876 0.829545 +vt 0.491525 0.818182 +vt 0.491525 0.829545 +vt 0.497175 0.829545 +vt 0.502825 0.818182 +vt 0.502825 0.829545 +vt 0.519774 0.818182 +vt 0.519774 0.829545 +vt 0.497175 0.818182 +vt 0.508475 0.818182 +vt 0.511326 0.831160 +vt 0.516923 0.831160 +vt 0.519721 0.840909 +vt 0.485876 0.829545 +vt 0.500000 0.869318 +vt 0.494350 0.869318 +vt 0.485876 0.829545 +vt 0.500000 0.869318 +vt 0.494350 0.869318 +vt 0.494350 0.869318 +vt 0.508475 0.829545 +vt 0.500000 0.869318 +vt 0.485876 0.818182 +vt 0.516923 0.850659 +vt 0.511326 0.850659 +vt 0.508527 0.840909 +vt 0.508475 0.829545 +vt 0.508475 0.829545 +vt 0.485876 0.829545 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 0.8660 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.5000 0.0000 0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.0000 1.0000 0.0000 +vn -0.0000 0.9659 0.2588 +vn 0.2241 0.9659 -0.1294 +vn -0.2241 0.9659 -0.1294 +s off +f 1/1/1 12/2/1 6/3/1 +f 5/4/2 10/5/2 4/6/2 +f 3/7/3 8/8/3 2/9/3 +f 6/3/4 11/10/4 5/11/4 +f 4/6/5 9/12/5 3/7/5 +f 2/9/6 7/13/6 1/1/6 +f 11/14/7 12/15/7 7/16/7 +f 15/17/8 14/18/8 13/19/8 +f 19/20/9 18/21/9 17/22/9 +f 21/23/10 24/24/10 22/25/10 +f 1/1/1 7/13/1 12/2/1 +f 5/4/2 11/26/2 10/5/2 +f 3/7/3 9/12/3 8/8/3 +f 6/3/4 12/2/4 11/10/4 +f 4/6/5 10/5/5 9/12/5 +f 2/9/6 8/8/6 7/13/6 +f 7/16/7 8/27/7 9/28/7 +f 9/28/7 10/29/7 7/16/7 +f 10/29/7 11/14/7 7/16/7 +f 15/17/8 16/30/8 14/18/8 +f 19/20/9 20/31/9 18/21/9 +f 21/23/10 23/32/10 24/24/10 +o Slider +v 2.250000 1.250000 0.250000 +v 2.250000 1.250000 -0.250000 +v 1.750000 1.250000 0.250000 +v 1.750000 1.250000 -0.250000 +v 2.250000 1.625000 0.250000 +v 2.250000 1.625000 -0.250000 +v 1.750000 1.625000 0.250000 +v 1.750000 1.625000 -0.250000 +vt 0.361582 0.806818 +vt 0.378531 0.852273 +vt 0.361582 0.852273 +vt 0.378531 0.886364 +vt 0.401130 0.852273 +vt 0.401130 0.886364 +vt 0.418079 0.852273 +vt 0.401130 0.806818 +vt 0.418079 0.806818 +vt 0.378531 0.772727 +vt 0.401130 0.772727 +vt 0.378531 0.806818 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 25/33/11 31/34/11 27/35/11 +f 27/36/12 32/37/12 28/38/12 +f 28/39/13 30/40/13 26/41/13 +f 30/40/14 25/42/14 26/43/14 +f 32/37/15 29/44/15 30/40/15 +f 25/33/11 29/44/11 31/34/11 +f 27/36/12 31/34/12 32/37/12 +f 28/39/13 32/37/13 30/40/13 +f 30/40/14 29/44/14 25/42/14 +f 32/37/15 31/34/15 29/44/15 +o Oven +v -2.500000 0.000000 3.500000 +v 2.500000 0.000000 3.500000 +v -2.500000 0.000000 -3.500000 +v 2.500000 0.000000 -3.500000 +v -2.500000 0.500000 3.500000 +v 2.500000 0.500000 3.500000 +v -2.500000 0.500000 -3.500000 +v 2.500000 0.500000 -3.500000 +v -2.375000 0.500000 3.375000 +v 0.375000 0.500000 3.375000 +v -2.375000 0.500000 2.875000 +v 0.375000 0.500000 2.875000 +v -2.375000 2.500000 2.875000 +v -2.375000 2.500000 3.375000 +v 0.375000 2.500000 3.375000 +v 0.375000 2.500000 2.875000 +v -1.625000 3.000000 2.875000 +v -1.625000 3.000000 3.375000 +v -0.375000 3.000000 3.375000 +v -0.375000 3.000000 2.875000 +v -2.375000 0.500000 -2.875000 +v 0.375000 0.500000 -2.875000 +v -2.375000 0.500000 -3.375000 +v 0.375000 0.500000 -3.375000 +v -2.375000 2.500000 -3.375000 +v -2.375000 2.500000 -2.875000 +v 0.375000 2.500000 -2.875000 +v 0.375000 2.500000 -3.375000 +v -1.625000 3.000000 -3.375000 +v -1.625000 3.000000 -2.875000 +v -0.375000 3.000000 -2.875000 +v -0.375000 3.000000 -3.375000 +v -2.375000 0.500000 -1.375000 +v 0.375000 0.500000 -1.375000 +v -2.375000 0.500000 -1.875000 +v 0.375000 0.500000 -1.875000 +v -2.375000 2.500000 -1.875000 +v -2.375000 2.500000 -1.375000 +v 0.375000 2.500000 -1.375000 +v 0.375000 2.500000 -1.875000 +v -1.625000 3.000000 -1.875000 +v -1.625000 3.000000 -1.375000 +v -0.375000 3.000000 -1.375000 +v -0.375000 3.000000 -1.875000 +v -2.375000 0.500000 1.875000 +v 0.375000 0.500000 1.875000 +v -2.375000 0.500000 1.375000 +v 0.375000 0.500000 1.375000 +v -2.375000 2.500000 1.375000 +v -2.375000 2.500000 1.875000 +v 0.375000 2.500000 1.875000 +v 0.375000 2.500000 1.375000 +v -1.625000 3.000000 1.375000 +v -1.625000 3.000000 1.875000 +v -0.375000 3.000000 1.875000 +v -0.375000 3.000000 1.375000 +v 0.250000 0.500000 -1.375000 +v 0.250000 0.500000 1.375000 +v 0.250000 2.375000 -1.375000 +v 0.250000 2.375000 1.375000 +v -0.500000 2.875000 -1.375000 +v -0.500000 2.875000 1.375000 +v -1.500000 2.875000 -1.375000 +v -1.500000 2.875000 1.375000 +v -2.250000 2.375000 -1.375000 +v -2.250000 2.375000 1.375000 +v -2.250000 0.500000 -1.375000 +v -2.250000 0.500000 1.375000 +v 0.250000 0.500000 1.875000 +v 0.250000 2.375000 1.875000 +v -0.500000 2.875000 1.875000 +v -1.500000 2.875000 1.875000 +v -2.250000 2.375000 1.875000 +v -2.250000 0.500000 1.875000 +v 0.250000 0.500000 2.875000 +v 0.250000 2.375000 2.875000 +v -0.500000 2.875000 2.875000 +v -1.500000 2.875000 2.875000 +v -2.250000 2.375000 2.875000 +v -2.250000 0.500000 2.875000 +v 0.250000 0.500000 -2.875000 +v 0.250000 2.375000 -2.875000 +v -0.500000 2.875000 -2.875000 +v -1.500000 2.875000 -2.875000 +v -2.250000 2.375000 -2.875000 +v -2.250000 0.500000 -2.875000 +v 0.250000 0.500000 -1.875000 +v 0.250000 2.375000 -1.875000 +v -0.500000 2.875000 -1.875000 +v -1.500000 2.875000 -1.875000 +v -2.250000 2.375000 -1.875000 +v -2.250000 0.500000 -1.875000 +v -1.000000 2.625000 3.375000 +v -1.500000 2.491026 3.375000 +v -1.866025 2.125000 3.375000 +v -2.000000 1.625000 3.375000 +v -1.866025 1.125000 3.375000 +v -1.500000 0.758975 3.375000 +v -1.000000 0.625000 3.375000 +v -0.500000 0.758975 3.375000 +v -0.133975 1.125000 3.375000 +v 0.000000 1.625000 3.375000 +v -0.133975 2.125000 3.375000 +v -0.500000 2.491025 3.375000 +v -1.000000 2.625000 3.500000 +v -1.500000 2.491026 3.500000 +v -1.866025 2.125000 3.500000 +v -2.000000 1.625000 3.500000 +v -1.866025 1.125000 3.500000 +v -1.500000 0.758975 3.500000 +v -1.000000 0.625000 3.500000 +v -0.500000 0.758975 3.500000 +v -0.133975 1.125000 3.500000 +v 0.000000 1.625000 3.500000 +v -0.133975 2.125000 3.500000 +v -0.500000 2.491025 3.500000 +v -1.500001 2.491025 -3.500000 +v -1.866026 2.125000 -3.500000 +v -2.000000 1.625000 -3.500000 +v -1.866025 1.125000 -3.500000 +v -1.500000 0.758975 -3.500000 +v -1.000000 0.625000 -3.500000 +v -0.500000 0.758975 -3.500000 +v -0.133975 1.125000 -3.500000 +v -0.000000 1.625000 -3.500000 +v -0.133975 2.125000 -3.500000 +v -0.500000 2.491026 -3.500000 +v -1.000000 2.625000 -3.500000 +v -1.500001 2.491025 -3.375000 +v -1.866026 2.125000 -3.375000 +v -2.000000 1.625000 -3.375000 +v -1.866025 1.125000 -3.375000 +v -1.500000 0.758975 -3.375000 +v -1.000000 0.625000 -3.375000 +v -0.500000 0.758975 -3.375000 +v -0.133975 1.125000 -3.375000 +v -0.000000 1.625000 -3.375000 +v -0.133975 2.125000 -3.375000 +v -0.500000 2.491026 -3.375000 +v -1.000000 2.625000 -3.375000 +v -0.625000 2.875000 2.000000 +v -1.375000 2.875000 2.000000 +v -0.625000 2.875000 2.750000 +v -1.375000 2.875000 2.750000 +v -1.312500 3.125000 2.062500 +v -0.687500 3.125000 2.062500 +v -1.312500 3.125000 2.687500 +v -0.687500 3.125000 2.687500 +v -1.375000 3.125000 2.000000 +v -0.625000 3.125000 2.000000 +v -1.375000 3.125000 2.750000 +v -0.625000 3.125000 2.750000 +v -1.312500 3.000000 2.062500 +v -0.687500 3.000000 2.062500 +v -1.312500 3.000000 2.687500 +v -0.687500 3.000000 2.687500 +v -1.312500 3.062500 2.062500 +v -0.687500 3.062500 2.062500 +v -1.312500 3.062500 2.687500 +v -0.687500 3.062500 2.687500 +v -0.625000 2.875000 -2.750000 +v -1.375000 2.875000 -2.750000 +v -0.625000 2.875000 -2.000000 +v -1.375000 2.875000 -2.000000 +v -1.312500 3.125000 -2.687500 +v -0.687500 3.125000 -2.687500 +v -1.312500 3.125000 -2.062500 +v -0.687500 3.125000 -2.062500 +v -1.375000 3.125000 -2.750000 +v -0.625000 3.125000 -2.750000 +v -1.375000 3.125000 -2.000000 +v -0.625000 3.125000 -2.000000 +v -1.312500 3.000000 -2.687500 +v -0.687500 3.000000 -2.687500 +v -1.312500 3.000000 -2.062500 +v -0.687500 3.000000 -2.062500 +v -1.312500 3.062500 -2.687500 +v -0.687500 3.062500 -2.687500 +v -1.312500 3.062500 -2.062500 +v -0.687500 3.062500 -2.062500 +v -0.625000 2.875000 -1.250000 +v -1.375000 2.875000 -1.250000 +v -0.625000 2.875000 -0.500000 +v -1.375000 2.875000 -0.500000 +v -1.312500 3.125000 -1.187500 +v -0.687500 3.125000 -1.187500 +v -1.312500 3.125000 -0.562500 +v -0.687500 3.125000 -0.562500 +v -1.375000 3.125000 -1.250000 +v -0.625000 3.125000 -1.250000 +v -1.375000 3.125000 -0.500000 +v -0.625000 3.125000 -0.500000 +v -1.312500 3.000000 -1.187500 +v -0.687500 3.000000 -1.187500 +v -1.312500 3.000000 -0.562500 +v -0.687500 3.000000 -0.562500 +v -1.312500 3.062500 -1.187500 +v -0.687500 3.062500 -1.187500 +v -1.312500 3.062500 -0.562500 +v -0.687500 3.062500 -0.562500 +v -0.625000 2.875000 0.500000 +v -1.375000 2.875000 0.500000 +v -0.625000 2.875000 1.250000 +v -1.375000 2.875000 1.250000 +v -1.312500 3.125000 0.562500 +v -0.687500 3.125000 0.562500 +v -1.312500 3.125000 1.187500 +v -0.687500 3.125000 1.187500 +v -1.375000 3.125000 0.500000 +v -0.625000 3.125000 0.500000 +v -1.375000 3.125000 1.250000 +v -0.625000 3.125000 1.250000 +v -1.312500 3.000000 0.562500 +v -0.687500 3.000000 0.562500 +v -1.312500 3.000000 1.187500 +v -0.687500 3.000000 1.187500 +v -1.312500 3.062500 0.562500 +v -0.687500 3.062500 0.562500 +v -1.312500 3.062500 1.187500 +v -0.687500 3.062500 1.187500 +v 0.875000 1.750000 2.125000 +v 2.125000 1.750000 2.125000 +v 0.875000 1.750000 0.875000 +v 2.125000 1.750000 0.875000 +v 2.250000 1.500000 0.750000 +v 0.750000 1.500000 0.750000 +v 2.250000 1.500000 2.250000 +v 0.750000 1.500000 2.250000 +v 0.500000 0.500000 -0.500000 +v 2.500000 0.500000 -0.500000 +v 0.500000 0.500000 -2.500000 +v 2.500000 0.500000 -2.500000 +v 2.500000 1.500000 -2.500000 +v 0.500000 1.500000 -2.500000 +v 2.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.500000 +v 0.500000 1.500000 2.500000 +v 2.500000 1.500000 2.500000 +v 0.500000 1.500000 0.500000 +v 2.500000 1.500000 0.500000 +v 2.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 2.500000 0.500000 2.500000 +v 0.500000 0.500000 2.500000 +v 0.750000 1.750000 0.750000 +v 0.750000 1.750000 2.250000 +v 2.250000 1.750000 2.250000 +v 2.250000 1.750000 0.750000 +v 0.875000 1.500000 0.875000 +v 0.875000 1.500000 2.125000 +v 2.125000 1.500000 2.125000 +v 2.125000 1.500000 0.875000 +v -1.375000 3.000000 0.125000 +v -1.125000 3.000000 0.375000 +v -0.875000 3.000000 0.375000 +v -0.625000 3.000000 0.125000 +v -1.125000 3.000000 -0.375000 +v -1.375000 3.000000 -0.125000 +v -0.625000 3.000000 -0.125000 +v -0.875000 3.000000 -0.375000 +v -1.375000 2.875000 -0.125000 +v -1.125000 2.875000 -0.375000 +v -1.125000 2.875000 0.375000 +v -1.375000 2.875000 0.125000 +v -0.625000 2.875000 0.125000 +v -0.875000 2.875000 0.375000 +v -0.875000 2.875000 -0.375000 +v -0.625000 2.875000 -0.125000 +v 0.875000 1.687500 2.125000 +v 2.125000 1.687500 2.125000 +v 0.875000 1.687500 0.875000 +v 2.125000 1.687500 0.875000 +v 1.176777 2.801777 -0.823223 +v 0.875000 2.801777 -0.698223 +v 0.875000 2.625000 -0.625000 +v 0.875000 2.448223 -0.698223 +v 0.875000 2.375000 -0.875000 +v 0.875000 2.448223 -1.051777 +v 0.875000 2.801777 -1.051777 +v 0.875000 2.875000 -0.875000 +v 0.875000 2.000000 -1.500000 +v 0.948223 2.000000 -1.323223 +v 1.125000 2.000000 -1.250000 +v 1.301777 2.000000 -1.323223 +v 1.375000 2.000000 -1.500000 +v 1.301777 2.000000 -1.676777 +v 1.125000 2.000000 -1.750000 +v 0.948223 2.000000 -1.676777 +v 0.948223 2.375000 -1.676777 +v 1.125000 2.375000 -1.750000 +v 1.301777 2.375000 -1.676777 +v 1.375000 2.375000 -1.500000 +v 1.301777 2.375000 -1.323223 +v 1.125000 2.375000 -1.250000 +v 0.948223 2.375000 -1.323223 +v 0.875000 2.375000 -1.500000 +v 0.875000 2.551777 -1.426777 +v 0.948223 2.426777 -1.301777 +v 1.301777 2.426777 -1.301777 +v 1.375000 2.551777 -1.426777 +v 1.301777 2.676777 -1.551777 +v 1.125000 2.728553 -1.603553 +v 2.250000 2.000000 -2.250000 +v 0.750000 2.000000 -2.250000 +v 2.250000 2.000000 -0.750000 +v 0.750000 2.000000 -0.750000 +v 0.750000 1.500000 -0.750000 +v 2.250000 1.500000 -0.750000 +v 0.750000 1.500000 -2.250000 +v 2.250000 1.500000 -2.250000 +v 0.500000 0.500000 0.250000 +v 2.500000 0.500000 0.250000 +v 0.500000 0.500000 -0.250000 +v 2.500000 0.500000 -0.250000 +v 0.500000 1.250000 -0.250000 +v 0.500000 1.250000 0.250000 +v 2.500000 1.250000 0.250000 +v 2.500000 1.250000 -0.250000 +v 0.625000 1.250000 -0.031250 +v 0.625000 1.250000 0.031250 +v 2.375000 1.250000 0.031250 +v 2.375000 1.250000 -0.031250 +v 0.625000 1.500000 -0.031250 +v 0.625000 1.500000 0.031250 +v 2.375000 1.500000 0.031250 +v 2.375000 1.500000 -0.031250 +v 0.625000 1.250000 -0.125000 +v 0.625000 1.250000 -0.062500 +v 2.375000 1.250000 -0.062500 +v 2.375000 1.250000 -0.125000 +v 0.625000 1.500000 -0.125000 +v 0.625000 1.500000 -0.062500 +v 2.375000 1.500000 -0.062500 +v 2.375000 1.500000 -0.125000 +v 0.625000 1.250000 0.062500 +v 0.625000 1.250000 0.125000 +v 2.375000 1.250000 0.125000 +v 2.375000 1.250000 0.062500 +v 0.625000 1.500000 0.062500 +v 0.625000 1.500000 0.125000 +v 2.375000 1.500000 0.125000 +v 2.375000 1.500000 0.062500 +v 0.625000 1.250000 -0.218750 +v 0.625000 1.250000 -0.156250 +v 2.375000 1.250000 -0.156250 +v 2.375000 1.250000 -0.218750 +v 0.625000 1.500000 -0.218750 +v 0.625000 1.500000 -0.156250 +v 2.375000 1.500000 -0.156250 +v 2.375000 1.500000 -0.218750 +v 0.625000 1.250000 0.156250 +v 0.625000 1.250000 0.218750 +v 2.375000 1.250000 0.218750 +v 2.375000 1.250000 0.156250 +v 0.625000 1.500000 0.156250 +v 0.625000 1.500000 0.218750 +v 2.375000 1.500000 0.218750 +v 2.375000 1.500000 0.156250 +v 1.500000 1.125000 0.500000 +v 1.323223 1.051777 0.500000 +v 1.250000 0.875000 0.500000 +v 1.323223 0.698223 0.500000 +v 1.500000 0.625000 0.500000 +v 1.676777 0.698223 0.500000 +v 1.750000 0.875000 0.500000 +v 1.676777 1.051777 0.500000 +v 1.500000 1.125000 -0.500000 +v 1.323223 1.051777 -0.500000 +v 1.250000 0.875000 -0.500000 +v 1.323223 0.698223 -0.500000 +v 1.500000 0.625000 -0.500000 +v 1.676777 0.698223 -0.500000 +v 1.750000 0.875000 -0.500000 +v 1.676777 1.051777 -0.500000 +v 2.125000 1.125000 0.500000 +v 1.948223 1.051777 0.500000 +v 1.875000 0.875000 0.500000 +v 1.948223 0.698223 0.500000 +v 2.125000 0.625000 0.500000 +v 2.301777 0.698223 0.500000 +v 2.375000 0.875000 0.500000 +v 2.301777 1.051777 0.500000 +v 2.125000 1.125000 -0.500000 +v 1.948223 1.051777 -0.500000 +v 1.875000 0.875000 -0.500000 +v 1.948223 0.698223 -0.500000 +v 2.125000 0.625000 -0.500000 +v 2.301777 0.698223 -0.500000 +v 2.375000 0.875000 -0.500000 +v 2.301777 1.051777 -0.500000 +v 0.875000 1.125000 0.500000 +v 0.698223 1.051777 0.500000 +v 0.625000 0.875000 0.500000 +v 0.698223 0.698223 0.500000 +v 0.875000 0.625000 0.500000 +v 1.051777 0.698223 0.500000 +v 1.125000 0.875000 0.500000 +v 1.051777 1.051777 0.500000 +v 0.875000 1.125000 -0.500000 +v 0.698223 1.051777 -0.500000 +v 0.625000 0.875000 -0.500000 +v 0.698223 0.698223 -0.500000 +v 0.875000 0.625000 -0.500000 +v 1.051777 0.698223 -0.500000 +v 1.125000 0.875000 -0.500000 +v 1.051777 1.051777 -0.500000 +v 1.429917 1.382583 2.500000 +v 1.562500 1.437500 2.500000 +v 1.695083 1.382583 2.500000 +v 1.750000 1.250000 2.500000 +v 1.695083 1.117417 2.500000 +v 1.562500 1.062500 2.500000 +v 1.429917 1.117417 2.500000 +v 1.413833 1.117417 2.538833 +v 1.507583 1.062500 2.632582 +v 1.601333 1.117417 2.726332 +v 1.640165 1.250000 2.765165 +v 1.601333 1.382583 2.726332 +v 1.507583 1.437500 2.632582 +v 1.413833 1.382583 2.538833 +v 1.375000 1.250000 2.500000 +v 1.375000 1.382583 2.554918 +v 1.375000 1.437500 2.687500 +v 1.375000 1.382583 2.820082 +v 1.375000 1.250000 2.875000 +v 1.375000 1.117417 2.820082 +v 1.375000 1.062500 2.687500 +v 1.375000 1.117417 2.554918 +v 0.250000 1.117417 2.554918 +v 0.250000 1.062500 2.687500 +v 0.250000 1.117417 2.820082 +v 0.250000 1.250000 2.875000 +v 0.250000 1.382583 2.820082 +v 0.250000 1.437500 2.687500 +v 0.250000 1.382583 2.554918 +v 0.250000 1.250000 2.500000 +v 0.375000 1.250000 2.937500 +v 0.375000 1.382583 2.992418 +v 0.375000 1.437500 3.125000 +v 0.375000 1.382583 3.257582 +v 0.375000 1.250000 3.312500 +v 0.375000 1.117417 3.257582 +v 0.375000 1.062500 3.125000 +v 0.375000 1.117417 2.992418 +v 1.875000 1.117417 2.992418 +v 1.875000 1.062500 3.125000 +v 1.875000 1.117417 3.257582 +v 1.875000 1.250000 3.312500 +v 1.875000 1.382583 3.257582 +v 1.875000 1.437500 3.125000 +v 1.875000 1.382583 2.992418 +v 1.875000 1.250000 2.937500 +v 1.913833 1.382583 2.976333 +v 2.007583 1.437500 3.070082 +v 2.101333 1.382583 3.163832 +v 2.140165 1.250000 3.202665 +v 2.101333 1.117417 3.163832 +v 2.007583 1.062500 3.070082 +v 1.913833 1.117417 2.976333 +v 1.929917 1.117417 2.937500 +v 2.062500 1.062500 2.937500 +v 2.195083 1.117417 2.937500 +v 2.250000 1.250000 2.937500 +v 2.195083 1.382583 2.937500 +v 2.062500 1.437500 2.937500 +v 1.929917 1.382583 2.937500 +v 1.929917 1.382583 2.500000 +v 2.062500 1.437500 2.500000 +v 2.195083 1.382583 2.500000 +v 2.250000 1.250000 2.500000 +v 2.195083 1.117417 2.500000 +v 2.062500 1.062500 2.500000 +v 1.929917 1.117417 2.500000 +v 1.875000 1.250000 2.500000 +v 0.948223 2.676777 -1.551777 +v 0.948223 2.801777 -1.250000 +v 1.125000 2.875000 -1.250000 +v 1.301777 2.801777 -1.250000 +v 1.375000 2.625000 -1.250000 +v 1.301777 2.448223 -1.250000 +v 0.948223 2.448223 -1.250000 +v 0.875000 2.625000 -1.250000 +v 1.625000 2.625000 -1.250000 +v 1.698223 2.448223 -1.250000 +v 2.051777 2.448223 -1.250000 +v 2.125000 2.625000 -1.250000 +v 2.051777 2.801777 -1.250000 +v 1.875000 2.875000 -1.250000 +v 1.698223 2.801777 -1.250000 +v 1.698223 2.676777 -1.551777 +v 1.875000 2.728553 -1.603553 +v 2.051777 2.676777 -1.551777 +v 2.125000 2.551777 -1.426777 +v 2.051777 2.426777 -1.301777 +v 1.698223 2.426777 -1.301777 +v 1.625000 2.551777 -1.426777 +v 1.625000 2.375000 -1.500000 +v 1.698223 2.375000 -1.323223 +v 1.875000 2.375000 -1.250000 +v 2.051777 2.375000 -1.323223 +v 2.125000 2.375000 -1.500000 +v 2.051777 2.375000 -1.676777 +v 1.875000 2.375000 -1.750000 +v 1.698223 2.375000 -1.676777 +v 1.698223 2.000000 -1.676777 +v 1.875000 2.000000 -1.750000 +v 2.051777 2.000000 -1.676777 +v 2.125000 2.000000 -1.500000 +v 2.051777 2.000000 -1.323223 +v 1.875000 2.000000 -1.250000 +v 1.698223 2.000000 -1.323223 +v 1.625000 2.000000 -1.500000 +v 1.625000 2.875000 0.875000 +v 1.625000 2.801777 0.698223 +v 1.625000 2.448223 0.698223 +v 1.625000 2.375000 0.875000 +v 1.625000 2.448223 1.051777 +v 1.625000 2.625000 1.125000 +v 1.625000 2.801777 1.051777 +v 1.926777 2.801777 0.926777 +v 1.978553 2.625000 0.978553 +v 1.926777 2.448223 0.926777 +v 1.801777 2.375000 0.801777 +v 1.676777 2.448223 0.676777 +v 1.676777 2.801777 0.676777 +v 1.801777 2.875000 0.801777 +v 1.875000 2.875000 0.625000 +v 1.698223 2.801777 0.625000 +v 1.625000 2.625000 0.625000 +v 1.698223 2.448223 0.625000 +v 1.875000 2.375000 0.625000 +v 2.051777 2.448223 0.625000 +v 2.125000 2.625000 0.625000 +v 2.051777 2.801777 0.625000 +v 0.948223 2.801777 -1.125000 +v 1.125000 2.875000 -1.125000 +v 1.051777 2.875000 -0.948223 +v 0.926777 2.801777 -1.073223 +v 0.926777 2.448223 -1.073223 +v 1.051777 2.375000 -0.948223 +v 1.176777 2.448223 -0.823223 +v 1.228553 2.625000 -0.771447 +v -0.500000 2.875000 0.875000 +v -0.500000 2.801777 0.698223 +v -0.500000 2.448223 0.698223 +v -0.500000 2.375000 0.875000 +v -0.500000 2.448223 1.051777 +v -0.500000 2.625000 1.125000 +v -0.500000 2.801777 1.051777 +v -0.500000 2.625000 0.625000 +v 0.875000 2.625000 -1.125000 +v 0.948223 2.448223 -1.125000 +v 1.125000 2.375000 -1.125000 +v 1.301777 2.448223 -1.125000 +v 1.375000 2.625000 -1.125000 +v 1.301777 2.801777 -1.125000 +v -0.500000 2.875000 -0.875000 +v -0.500000 2.801777 -1.051777 +v -0.500000 2.448223 -1.051777 +v -0.500000 2.375000 -0.875000 +v -0.500000 2.448223 -0.698223 +v -0.500000 2.625000 -0.625000 +v -0.500000 2.801777 -0.698223 +v -0.500000 2.625000 -1.125000 +v 2.000000 2.000000 -2.250000 +v 2.000000 2.000000 -0.750000 +v 2.000000 1.500000 -0.750000 +v 2.000000 1.500000 -2.250000 +v 2.000000 2.125000 -2.250000 +v 2.000000 2.125000 -0.750000 +v 2.000000 2.000000 -0.625000 +v 2.000000 1.500000 -0.625000 +v 2.000000 2.000000 -2.375000 +v 2.000000 1.500000 -2.375000 +v 1.750000 2.000000 -2.250000 +v 1.750000 1.500000 -2.250000 +v 1.750000 2.000000 -0.750000 +v 1.750000 1.500000 -0.750000 +v 1.750000 2.125000 -0.750000 +v 1.750000 2.125000 -2.250000 +v 1.750000 2.000000 -0.625000 +v 1.750000 1.500000 -0.625000 +v 1.750000 2.000000 -2.375000 +v 1.750000 1.500000 -2.375000 +v 1.250000 2.000000 -2.250000 +v 1.250000 2.000000 -0.750000 +v 1.250000 1.500000 -0.750000 +v 1.250000 1.500000 -2.250000 +v 1.250000 2.125000 -2.250000 +v 1.250000 2.125000 -0.750000 +v 1.250000 2.000000 -0.625000 +v 1.250000 1.500000 -0.625000 +v 1.250000 2.000000 -2.375000 +v 1.250000 1.500000 -2.375000 +v 1.000000 2.000000 -2.250000 +v 1.000000 1.500000 -2.250000 +v 1.000000 2.000000 -0.750000 +v 1.000000 1.500000 -0.750000 +v 1.000000 2.125000 -0.750000 +v 1.000000 2.125000 -2.250000 +v 1.000000 2.000000 -0.625000 +v 1.000000 1.500000 -0.625000 +v 1.000000 2.000000 -2.375000 +v 1.000000 1.500000 -2.375000 +v 1.429917 0.882583 2.500000 +v 1.562500 0.937500 2.500000 +v 1.695083 0.882583 2.500000 +v 1.750000 0.750000 2.500000 +v 1.695083 0.617417 2.500000 +v 1.562500 0.562500 2.500000 +v 1.429917 0.617417 2.500000 +v 1.413833 0.617417 2.538833 +v 1.507583 0.562500 2.632582 +v 1.601333 0.617417 2.726332 +v 1.640165 0.750000 2.765165 +v 1.601333 0.882583 2.726332 +v 1.507583 0.937500 2.632582 +v 1.413833 0.882583 2.538833 +v 1.375000 0.750000 2.500000 +v 1.375000 0.882583 2.554918 +v 1.375000 0.937500 2.687500 +v 1.375000 0.882583 2.820082 +v 1.375000 0.750000 2.875000 +v 1.375000 0.617417 2.820082 +v 1.375000 0.562500 2.687500 +v 1.375000 0.617417 2.554918 +v 0.250000 0.617417 2.554918 +v 0.250000 0.562500 2.687500 +v 0.250000 0.617417 2.820082 +v 0.250000 0.750000 2.875000 +v 0.250000 0.882583 2.820082 +v 0.250000 0.937500 2.687500 +v 0.250000 0.882583 2.554918 +v 0.250000 0.750000 2.500000 +v 0.375000 0.750000 2.937500 +v 0.375000 0.882583 2.992418 +v 0.375000 0.937500 3.125000 +v 0.375000 0.882583 3.257582 +v 0.375000 0.750000 3.312500 +v 0.375000 0.617417 3.257582 +v 0.375000 0.562500 3.125000 +v 0.375000 0.617417 2.992418 +v 1.875000 0.617417 2.992418 +v 1.875000 0.562500 3.125000 +v 1.875000 0.617417 3.257582 +v 1.875000 0.750000 3.312500 +v 1.875000 0.882583 3.257582 +v 1.875000 0.937500 3.125000 +v 1.875000 0.882583 2.992418 +v 1.875000 0.750000 2.937500 +v 1.913833 0.882583 2.976333 +v 2.007583 0.937500 3.070082 +v 2.101333 0.882583 3.163832 +v 2.140165 0.750000 3.202665 +v 2.101333 0.617417 3.163832 +v 2.007583 0.562500 3.070082 +v 1.913833 0.617417 2.976333 +v 1.929917 0.617417 2.937500 +v 2.062500 0.562500 2.937500 +v 2.195083 0.617417 2.937500 +v 2.250000 0.750000 2.937500 +v 2.195083 0.882583 2.937500 +v 2.062500 0.937500 2.937500 +v 1.929917 0.882583 2.937500 +v 1.929917 0.882583 2.500000 +v 2.062500 0.937500 2.500000 +v 2.195083 0.882583 2.500000 +v 2.250000 0.750000 2.500000 +v 2.195083 0.617417 2.500000 +v 2.062500 0.562500 2.500000 +v 1.929917 0.617417 2.500000 +v 1.875000 0.750000 2.500000 +v 1.429917 1.382583 -2.500000 +v 1.562500 1.437500 -2.500000 +v 1.695083 1.382583 -2.500000 +v 1.750000 1.250000 -2.500000 +v 1.695083 1.117417 -2.500000 +v 1.562500 1.062500 -2.500000 +v 1.429917 1.117417 -2.500000 +v 1.413833 1.117417 -2.538833 +v 1.507583 1.062500 -2.632582 +v 1.601333 1.117417 -2.726332 +v 1.640165 1.250000 -2.765165 +v 1.601333 1.382583 -2.726332 +v 1.507583 1.437500 -2.632582 +v 1.413833 1.382583 -2.538833 +v 1.375000 1.250000 -2.500000 +v 1.375000 1.382583 -2.554918 +v 1.375000 1.437500 -2.687500 +v 1.375000 1.382583 -2.820082 +v 1.375000 1.250000 -2.875000 +v 1.375000 1.117417 -2.820082 +v 1.375000 1.062500 -2.687500 +v 1.375000 1.117417 -2.554918 +v 0.250000 1.117417 -2.554918 +v 0.250000 1.062500 -2.687500 +v 0.250000 1.117417 -2.820082 +v 0.250000 1.250000 -2.875000 +v 0.250000 1.382583 -2.820082 +v 0.250000 1.437500 -2.687500 +v 0.250000 1.382583 -2.554918 +v 0.250000 1.250000 -2.500000 +v 0.375000 1.250000 -2.937500 +v 0.375000 1.382583 -2.992418 +v 0.375000 1.437500 -3.125000 +v 0.375000 1.382583 -3.257582 +v 0.375000 1.250000 -3.312500 +v 0.375000 1.117417 -3.257582 +v 0.375000 1.062500 -3.125000 +v 0.375000 1.117417 -2.992418 +v 1.875000 1.117417 -2.992418 +v 1.875000 1.062500 -3.125000 +v 1.875000 1.117417 -3.257582 +v 1.875000 1.250000 -3.312500 +v 1.875000 1.382583 -3.257582 +v 1.875000 1.437500 -3.125000 +v 1.875000 1.382583 -2.992418 +v 1.875000 1.250000 -2.937500 +v 1.913833 1.382583 -2.976333 +v 2.007583 1.437500 -3.070082 +v 2.101333 1.382583 -3.163832 +v 2.140165 1.250000 -3.202665 +v 2.101333 1.117417 -3.163832 +v 2.007583 1.062500 -3.070082 +v 1.913833 1.117417 -2.976333 +v 1.929917 1.117417 -2.937500 +v 2.062500 1.062500 -2.937500 +v 2.195083 1.117417 -2.937500 +v 2.250000 1.250000 -2.937500 +v 2.195083 1.382583 -2.937500 +v 2.062500 1.437500 -2.937500 +v 1.929917 1.382583 -2.937500 +v 1.929917 1.382583 -2.500000 +v 2.062500 1.437500 -2.500000 +v 2.195083 1.382583 -2.500000 +v 2.250000 1.250000 -2.500000 +v 2.195083 1.117417 -2.500000 +v 2.062500 1.062500 -2.500000 +v 1.929917 1.117417 -2.500000 +v 1.875000 1.250000 -2.500000 +v 1.429917 0.882583 -2.500000 +v 1.562500 0.937500 -2.500000 +v 1.695083 0.882583 -2.500000 +v 1.750000 0.750000 -2.500000 +v 1.695083 0.617417 -2.500000 +v 1.562500 0.562500 -2.500000 +v 1.429917 0.617417 -2.500000 +v 1.413833 0.617417 -2.538833 +v 1.507583 0.562500 -2.632582 +v 1.601333 0.617417 -2.726332 +v 1.640165 0.750000 -2.765165 +v 1.601333 0.882583 -2.726332 +v 1.507583 0.937500 -2.632582 +v 1.413833 0.882583 -2.538833 +v 1.375000 0.750000 -2.500000 +v 1.375000 0.882583 -2.554918 +v 1.375000 0.937500 -2.687500 +v 1.375000 0.882583 -2.820082 +v 1.375000 0.750000 -2.875000 +v 1.375000 0.617417 -2.820082 +v 1.375000 0.562500 -2.687500 +v 1.375000 0.617417 -2.554918 +v 0.250000 0.617417 -2.554918 +v 0.250000 0.562500 -2.687500 +v 0.250000 0.617417 -2.820082 +v 0.250000 0.750000 -2.875000 +v 0.250000 0.882583 -2.820082 +v 0.250000 0.937500 -2.687500 +v 0.250000 0.882583 -2.554918 +v 0.250000 0.750000 -2.500000 +v 0.375000 0.750000 -2.937500 +v 0.375000 0.882583 -2.992418 +v 0.375000 0.937500 -3.125000 +v 0.375000 0.882583 -3.257582 +v 0.375000 0.750000 -3.312500 +v 0.375000 0.617417 -3.257582 +v 0.375000 0.562500 -3.125000 +v 0.375000 0.617417 -2.992418 +v 1.875000 0.617417 -2.992418 +v 1.875000 0.562500 -3.125000 +v 1.875000 0.617417 -3.257582 +v 1.875000 0.750000 -3.312500 +v 1.875000 0.882583 -3.257582 +v 1.875000 0.937500 -3.125000 +v 1.875000 0.882583 -2.992418 +v 1.875000 0.750000 -2.937500 +v 1.913833 0.882583 -2.976333 +v 2.007583 0.937500 -3.070082 +v 2.101333 0.882583 -3.163832 +v 2.140165 0.750000 -3.202665 +v 2.101333 0.617417 -3.163832 +v 2.007583 0.562500 -3.070082 +v 1.913833 0.617417 -2.976333 +v 1.929917 0.617417 -2.937500 +v 2.062500 0.562500 -2.937500 +v 2.195083 0.617417 -2.937500 +v 2.250000 0.750000 -2.937500 +v 2.195083 0.882583 -2.937500 +v 2.062500 0.937500 -2.937500 +v 1.929917 0.882583 -2.937500 +v 1.929917 0.882583 -2.500000 +v 2.062500 0.937500 -2.500000 +v 2.195083 0.882583 -2.500000 +v 2.250000 0.750000 -2.500000 +v 2.195083 0.617417 -2.500000 +v 2.062500 0.562500 -2.500000 +v 1.929917 0.617417 -2.500000 +v 1.875000 0.750000 -2.500000 +vt 0.338983 0.000000 +vt 0.022599 0.454545 +vt 0.022599 0.000000 +vt 0.022599 0.500000 +vt 0.338983 0.954545 +vt 0.022599 0.954545 +vt 0.361582 0.954545 +vt 0.338983 0.500000 +vt 0.361582 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.954545 +vt 0.338983 0.454545 +vt 0.022599 1.000000 +vt 0.338983 1.000000 +vt 0.361582 0.227273 +vt 0.395480 0.272727 +vt 0.361582 0.272727 +vt 0.361582 0.227273 +vt 0.395480 0.272727 +vt 0.361582 0.272727 +vt 0.508475 -0.000000 +vt 0.485876 0.181818 +vt 0.485876 -0.000000 +vt 0.361582 -0.000000 +vt 0.338983 0.181818 +vt 0.338983 -0.000000 +vt 0.361582 0.500000 +vt 0.485876 0.318182 +vt 0.485876 0.500000 +vt 0.361582 0.181818 +vt 0.451977 0.227273 +vt 0.395480 0.227273 +vt 0.361582 0.318182 +vt 0.451977 0.272727 +vt 0.485876 0.272727 +vt 0.485876 0.227273 +vt 0.508475 -0.000000 +vt 0.485876 0.181818 +vt 0.485876 -0.000000 +vt 0.361582 -0.000000 +vt 0.338983 0.181818 +vt 0.338983 -0.000000 +vt 0.361582 0.500000 +vt 0.485876 0.318182 +vt 0.485876 0.500000 +vt 0.361582 0.181818 +vt 0.451977 0.227273 +vt 0.395480 0.227273 +vt 0.361582 0.318182 +vt 0.451977 0.272727 +vt 0.485876 0.272727 +vt 0.485876 0.227273 +vt 0.361582 0.227273 +vt 0.395480 0.272727 +vt 0.361582 0.272727 +vt 0.508475 -0.000000 +vt 0.485876 0.181818 +vt 0.485876 -0.000000 +vt 0.361582 -0.000000 +vt 0.338983 0.181818 +vt 0.338983 -0.000000 +vt 0.361582 0.500000 +vt 0.485876 0.318182 +vt 0.485876 0.500000 +vt 0.361582 0.181818 +vt 0.451977 0.227273 +vt 0.395480 0.227273 +vt 0.361582 0.318182 +vt 0.451977 0.272727 +vt 0.485876 0.272727 +vt 0.485876 0.227273 +vt 0.361582 0.227273 +vt 0.395480 0.272727 +vt 0.361582 0.272727 +vt 0.508475 -0.000000 +vt 0.485876 0.181818 +vt 0.485876 -0.000000 +vt 0.361582 -0.000000 +vt 0.338983 0.181818 +vt 0.338983 -0.000000 +vt 0.361582 0.500000 +vt 0.485876 0.318182 +vt 0.485876 0.500000 +vt 0.361582 0.181818 +vt 0.451977 0.227273 +vt 0.395480 0.227273 +vt 0.361582 0.318182 +vt 0.451977 0.272727 +vt 0.485876 0.272727 +vt 0.485876 0.227273 +vt 0.677966 0.170455 +vt 0.553672 -0.000000 +vt 0.677966 -0.000000 +vt 0.553672 0.238636 +vt 0.553672 0.170455 +vt 0.677966 0.238636 +vt 0.553672 0.329545 +vt 0.677966 0.329545 +vt 0.553672 0.397727 +vt 0.677966 0.397727 +vt 0.553672 0.568182 +vt 0.553672 0.397727 +vt 0.508475 0.329545 +vt 0.553672 0.329545 +vt 0.553672 0.238636 +vt 0.508475 0.170455 +vt 0.553672 0.170455 +vt 0.553672 0.568182 +vt 0.508475 0.397727 +vt 0.508475 0.238636 +vt 0.553672 -0.000000 +vt 0.723164 0.397727 +vt 0.677966 0.329545 +vt 0.723164 0.329545 +vt 0.723164 0.238636 +vt 0.677966 0.170455 +vt 0.723164 0.170455 +vt 0.723164 0.568182 +vt 0.677966 0.397727 +vt 0.677966 0.238636 +vt 0.723164 -0.000000 +vt 0.988274 0.136340 +vt 0.949153 0.181770 +vt 0.910031 0.045479 +vt 0.988274 0.045478 +vt 0.988274 0.136340 +vt 0.949153 0.181770 +vt 0.497175 0.886364 +vt 0.429379 0.909091 +vt 0.429379 0.886364 +vt 0.632768 0.886364 +vt 0.564972 0.909091 +vt 0.564972 0.886364 +vt 0.497175 0.909091 +vt 0.361582 0.909091 +vt 0.361582 0.886364 +vt 0.666667 0.676136 +vt 0.694915 0.664773 +vt 0.694915 0.676136 +vt 0.697740 0.568182 +vt 0.663842 0.590909 +vt 0.663842 0.568182 +vt 0.646893 0.602273 +vt 0.658192 0.670455 +vt 0.646893 0.670455 +vt 0.663842 0.704545 +vt 0.697740 0.681818 +vt 0.697740 0.704545 +vt 0.714689 0.670455 +vt 0.703390 0.602273 +vt 0.714689 0.602273 +vt 0.700565 0.607955 +vt 0.703390 0.670455 +vt 0.700565 0.664773 +vt 0.661017 0.664773 +vt 0.658192 0.602273 +vt 0.661017 0.607955 +vt 0.663842 0.681818 +vt 0.666667 0.596591 +vt 0.697740 0.590909 +vt 0.694915 0.596591 +vt 0.666667 0.607955 +vt 0.694915 0.607955 +vt 0.666667 0.664773 +vt 0.629943 0.761364 +vt 0.601695 0.704545 +vt 0.629943 0.704545 +vt 0.666667 0.676136 +vt 0.694915 0.664773 +vt 0.694915 0.676136 +vt 0.697740 0.568182 +vt 0.663842 0.590909 +vt 0.663842 0.568182 +vt 0.646893 0.602273 +vt 0.658192 0.670455 +vt 0.646893 0.670455 +vt 0.663842 0.704545 +vt 0.697740 0.681818 +vt 0.697740 0.704545 +vt 0.714689 0.670455 +vt 0.703390 0.602273 +vt 0.714689 0.602273 +vt 0.700565 0.607955 +vt 0.703390 0.670455 +vt 0.700565 0.664773 +vt 0.661017 0.664773 +vt 0.658192 0.602273 +vt 0.661017 0.607955 +vt 0.663842 0.681818 +vt 0.666667 0.596591 +vt 0.697740 0.590909 +vt 0.694915 0.596591 +vt 0.666667 0.607955 +vt 0.694915 0.607955 +vt 0.666667 0.664773 +vt 0.629943 0.761364 +vt 0.601695 0.704545 +vt 0.629943 0.704545 +vt 0.666667 0.676136 +vt 0.694915 0.664773 +vt 0.694915 0.676136 +vt 0.697740 0.568182 +vt 0.663842 0.590909 +vt 0.663842 0.568182 +vt 0.646893 0.602273 +vt 0.658192 0.670455 +vt 0.646893 0.670455 +vt 0.663842 0.704545 +vt 0.697740 0.681818 +vt 0.697740 0.704545 +vt 0.714689 0.670455 +vt 0.703390 0.602273 +vt 0.714689 0.602273 +vt 0.700565 0.607955 +vt 0.703390 0.670455 +vt 0.700565 0.664773 +vt 0.661017 0.664773 +vt 0.658192 0.602273 +vt 0.661017 0.607955 +vt 0.663842 0.681818 +vt 0.666667 0.596591 +vt 0.697740 0.590909 +vt 0.694915 0.596591 +vt 0.666667 0.607955 +vt 0.694915 0.607955 +vt 0.666667 0.664773 +vt 0.629943 0.761364 +vt 0.601695 0.704545 +vt 0.629943 0.704545 +vt 0.666667 0.676136 +vt 0.694915 0.664773 +vt 0.694915 0.676136 +vt 0.697740 0.568182 +vt 0.663842 0.590909 +vt 0.663842 0.568182 +vt 0.646893 0.602273 +vt 0.658192 0.670455 +vt 0.646893 0.670455 +vt 0.663842 0.704545 +vt 0.697740 0.681818 +vt 0.697740 0.704545 +vt 0.714689 0.670455 +vt 0.703390 0.602273 +vt 0.714689 0.602273 +vt 0.700565 0.607955 +vt 0.703390 0.670455 +vt 0.700565 0.664773 +vt 0.661017 0.664773 +vt 0.658192 0.602273 +vt 0.661017 0.607955 +vt 0.663842 0.681818 +vt 0.666667 0.596591 +vt 0.697740 0.590909 +vt 0.694915 0.596591 +vt 0.666667 0.607955 +vt 0.694915 0.607955 +vt 0.666667 0.664773 +vt 0.629943 0.761364 +vt 0.601695 0.704545 +vt 0.629943 0.704545 +vt 0.559322 0.920455 +vt 0.502825 0.943182 +vt 0.502825 0.920455 +vt 0.587571 0.590909 +vt 0.590395 0.750000 +vt 0.587571 0.750000 +vt 0.768362 0.454545 +vt 0.858757 0.636364 +vt 0.768362 0.636364 +vt 0.723164 0.454545 +vt 0.723164 0.636364 +vt 0.903955 0.636364 +vt 0.858757 0.454545 +vt 0.903955 0.454545 +vt 0.768362 0.727273 +vt 0.858757 0.727273 +vt 0.858757 0.363636 +vt 0.768362 0.363636 +vt 0.858757 -0.000000 +vt 0.768362 0.090909 +vt 0.768362 -0.000000 +vt 0.768362 0.363636 +vt 0.858757 0.272727 +vt 0.858757 0.363636 +vt 0.903955 0.272727 +vt 0.858757 0.090909 +vt 0.903955 0.090909 +vt 0.723164 0.090909 +vt 0.768362 0.272727 +vt 0.723164 0.272727 +vt 0.587571 0.590909 +vt 0.590395 0.750000 +vt 0.587571 0.750000 +vt 0.570621 0.920455 +vt 0.632768 0.909091 +vt 0.627119 0.920455 +vt 0.367232 0.920455 +vt 0.423729 0.920455 +vt 0.435028 0.920455 +vt 0.491525 0.920455 +vt 0.367232 0.943182 +vt 0.435028 0.943182 +vt 0.570621 0.943182 +vt 0.728814 0.693182 +vt 0.723164 0.670455 +vt 0.728814 0.670455 +vt 0.740113 0.647727 +vt 0.751412 0.636364 +vt 0.751412 0.647727 +vt 0.762712 0.670455 +vt 0.768362 0.693182 +vt 0.762712 0.693182 +vt 0.751412 0.715909 +vt 0.762712 0.647727 +vt 0.762712 0.727273 +vt 0.751412 0.727273 +vt 0.740113 0.727273 +vt 0.728814 0.715909 +vt 0.740113 0.715909 +vt 0.728814 0.636364 +vt 0.740113 0.636364 +vt 0.418079 0.886364 +vt 0.474576 0.772727 +vt 0.474576 0.886364 +vt 0.451977 0.681818 +vt 0.384181 0.545455 +vt 0.451977 0.545455 +vt 0.474576 0.545455 +vt 0.474576 0.681818 +vt 0.384181 0.681818 +vt 0.451977 0.727273 +vt 0.384181 0.727273 +vt 0.384181 0.500000 +vt 0.451977 0.500000 +vt 0.361582 0.681818 +vt 0.361582 0.545455 +vt 0.601695 0.750000 +vt 0.590395 0.590909 +vt 0.601695 0.590909 +vt 0.519774 0.636364 +vt 0.542373 0.818182 +vt 0.519774 0.818182 +vt 0.542373 0.568182 +vt 0.519774 0.568182 +vt 0.519774 0.886364 +vt 0.542373 0.886364 +vt 0.576271 0.818182 +vt 0.542373 0.636364 +vt 0.576271 0.636364 +vt 0.485876 0.636364 +vt 0.485876 0.818182 +vt 0.576271 0.590909 +vt 0.576271 0.750000 +vt 0.590395 0.568182 +vt 0.587571 0.568182 +vt 0.587571 0.772727 +vt 0.590395 0.772727 +vt 0.601695 0.750000 +vt 0.590395 0.590909 +vt 0.601695 0.590909 +vt 0.576271 0.590909 +vt 0.576271 0.750000 +vt 0.590395 0.568182 +vt 0.587571 0.568182 +vt 0.587571 0.772727 +vt 0.590395 0.772727 +vt 0.587571 0.590909 +vt 0.590395 0.750000 +vt 0.587571 0.750000 +vt 0.601695 0.750000 +vt 0.590395 0.590909 +vt 0.601695 0.590909 +vt 0.576271 0.590909 +vt 0.576271 0.750000 +vt 0.590395 0.568182 +vt 0.587571 0.568182 +vt 0.587571 0.772727 +vt 0.590395 0.772727 +vt 0.587571 0.590909 +vt 0.590395 0.750000 +vt 0.587571 0.750000 +vt 0.601695 0.750000 +vt 0.590395 0.590909 +vt 0.601695 0.590909 +vt 0.576271 0.590909 +vt 0.576271 0.750000 +vt 0.590395 0.568182 +vt 0.587571 0.568182 +vt 0.587571 0.772727 +vt 0.590395 0.772727 +vt 0.587571 0.590909 +vt 0.590395 0.750000 +vt 0.587571 0.750000 +vt 0.601695 0.750000 +vt 0.590395 0.590909 +vt 0.601695 0.590909 +vt 0.576271 0.590909 +vt 0.576271 0.750000 +vt 0.590395 0.568182 +vt 0.587571 0.568182 +vt 0.587571 0.772727 +vt 0.590395 0.772727 +vt 0.457627 0.738636 +vt 0.389830 0.727273 +vt 0.457627 0.727273 +vt 0.384181 0.727273 +vt 0.361582 0.738636 +vt 0.361582 0.727273 +vt 0.485876 0.738636 +vt 0.463277 0.727273 +vt 0.485876 0.727273 +vt 0.463277 0.738636 +vt 0.457627 0.727273 +vt 0.389830 0.727273 +vt 0.384181 0.738636 +vt 0.389830 0.772727 +vt 0.457627 0.761364 +vt 0.457627 0.772727 +vt 0.361582 0.761364 +vt 0.384181 0.772727 +vt 0.361582 0.772727 +vt 0.463277 0.772727 +vt 0.485876 0.761364 +vt 0.485876 0.772727 +vt 0.457627 0.772727 +vt 0.463277 0.761364 +vt 0.389830 0.772727 +vt 0.384181 0.761364 +vt 0.389830 0.727273 +vt 0.384181 0.738636 +vt 0.384181 0.727273 +vt 0.463277 0.727273 +vt 0.463277 0.738636 +vt 0.457627 0.727273 +vt 0.389830 0.761364 +vt 0.389830 0.738636 +vt 0.485876 0.738636 +vt 0.485876 0.727273 +vt 0.361582 0.738636 +vt 0.361582 0.727273 +vt 0.457627 0.738636 +vt 0.389830 0.727273 +vt 0.457627 0.727273 +vt 0.389830 0.772727 +vt 0.457627 0.761364 +vt 0.457627 0.772727 +vt 0.361582 0.761364 +vt 0.384181 0.772727 +vt 0.361582 0.772727 +vt 0.463277 0.772727 +vt 0.485876 0.761364 +vt 0.485876 0.772727 +vt 0.457627 0.772727 +vt 0.463277 0.761364 +vt 0.389830 0.772727 +vt 0.384181 0.761364 +vt 0.389830 0.761364 +vt 0.389830 0.738636 +vt 0.508475 0.181818 +vt 0.508475 0.181818 +vt 0.508475 0.181818 +vt 0.508475 0.181818 +vt 0.677966 0.568182 +vt 0.508475 0.568182 +vt 0.508475 -0.000000 +vt 0.677966 0.568182 +vt 0.677966 -0.000000 +vt 0.926566 0.169597 +vt 0.910031 0.136340 +vt 0.903979 0.090909 +vt 0.926566 0.012221 +vt 0.988274 0.045478 +vt 0.949153 0.000048 +vt 0.971740 0.012221 +vt 0.994327 0.090909 +vt 0.971740 0.169597 +vt 0.926566 0.169597 +vt 0.910031 0.136340 +vt 0.903979 0.090909 +vt 0.910031 0.045479 +vt 0.926566 0.012221 +vt 0.949153 0.000048 +vt 0.971740 0.012221 +vt 0.994327 0.090909 +vt 0.971740 0.169597 +vt 0.601695 0.761364 +vt 0.601695 0.761364 +vt 0.601695 0.761364 +vt 0.601695 0.761364 +vt 0.559322 0.943182 +vt 0.423729 0.943182 +vt 0.491525 0.943182 +vt 0.627119 0.943182 +vt 0.723164 0.693182 +vt 0.768362 0.670455 +vt 0.762712 0.636364 +vt 0.762712 0.715909 +vt 0.728814 0.727273 +vt 0.728814 0.647727 +vt 0.418079 0.772727 +vt 1.000000 0.454545 +vt 0.994350 0.409091 +vt 1.000000 0.409091 +vt 1.000000 0.227273 +vt 0.994350 0.181818 +vt 1.000000 0.181818 +vt 1.000000 0.318182 +vt 0.994350 0.272727 +vt 1.000000 0.272727 +vt 1.000000 0.090909 +vt 0.994350 0.045455 +vt 1.000000 0.045455 +vt 1.000000 0.500000 +vt 0.994350 0.454545 +vt 0.994350 0.227273 +vt 1.000000 0.363636 +vt 0.994350 0.318182 +vt 1.000000 0.136364 +vt 0.994350 0.090909 +vt 1.000000 0.545455 +vt 0.994350 0.500000 +vt 0.994350 0.363636 +vt 0.994350 0.136364 +vt 0.994350 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.045455 +vt 0.994350 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.136364 +vt 0.994350 0.181818 +vt 0.994350 0.136364 +vt 1.000000 0.409091 +vt 0.994350 0.363636 +vt 1.000000 0.363636 +vt 1.000000 0.545455 +vt 0.994350 0.500000 +vt 1.000000 0.500000 +vt 0.994350 0.090909 +vt 1.000000 0.090909 +vt 0.994350 0.318182 +vt 1.000000 0.318182 +vt 1.000000 0.272727 +vt 0.994350 0.227273 +vt 1.000000 0.227273 +vt 0.994350 0.454545 +vt 1.000000 0.454545 +vt 0.994350 0.045455 +vt 0.994350 0.272727 +vt 1.000000 0.181818 +vt 0.994350 0.409091 +vt 0.884181 0.823864 +vt 0.892655 0.795455 +vt 0.892655 0.829545 +vt 0.909605 0.812500 +vt 0.901130 0.795455 +vt 0.909605 0.795455 +vt 0.875706 0.812500 +vt 0.867232 0.795455 +vt 0.875706 0.795455 +vt 0.884181 0.795455 +vt 0.901130 0.823864 +vt 0.918079 0.795455 +vt 0.909605 0.778409 +vt 0.918079 0.789773 +vt 0.901130 0.767045 +vt 0.875706 0.778409 +vt 0.884181 0.767045 +vt 0.901130 0.875000 +vt 0.901130 0.869318 +vt 0.909605 0.875000 +vt 0.901130 0.880682 +vt 0.918079 0.869318 +vt 0.918079 0.875000 +vt 0.918079 0.880682 +vt 0.875706 0.875000 +vt 0.867232 0.846591 +vt 0.875706 0.840909 +vt 0.892655 0.875000 +vt 0.884181 0.846591 +vt 0.892655 0.857955 +vt 0.926554 0.857955 +vt 0.926554 0.875000 +vt 0.909605 0.943182 +vt 0.918079 0.909091 +vt 0.918079 0.943182 +vt 0.892655 0.943182 +vt 0.901130 0.909091 +vt 0.901130 0.943182 +vt 0.875706 0.943182 +vt 0.884181 0.909091 +vt 0.884181 0.943182 +vt 0.646893 0.568182 +vt 0.601695 0.585227 +vt 0.601695 0.568182 +vt 0.646893 0.670455 +vt 0.601695 0.687500 +vt 0.601695 0.670455 +vt 0.646893 0.636364 +vt 0.601695 0.653409 +vt 0.601695 0.636364 +vt 0.646893 0.619318 +vt 0.601695 0.619318 +vt 0.646893 0.585227 +vt 0.601695 0.602273 +vt 0.646893 0.687500 +vt 0.601695 0.704545 +vt 0.646893 0.653409 +vt 0.646893 0.602273 +vt 0.646893 0.568182 +vt 0.601695 0.585227 +vt 0.601695 0.568182 +vt 0.646893 0.670455 +vt 0.601695 0.687500 +vt 0.601695 0.670455 +vt 0.646893 0.636364 +vt 0.601695 0.653409 +vt 0.601695 0.636364 +vt 0.646893 0.619318 +vt 0.601695 0.619318 +vt 0.646893 0.585227 +vt 0.601695 0.602273 +vt 0.646893 0.687500 +vt 0.601695 0.704545 +vt 0.646893 0.653409 +vt 0.646893 0.602273 +vt 0.646893 0.568182 +vt 0.601695 0.585227 +vt 0.601695 0.568182 +vt 0.646893 0.670455 +vt 0.601695 0.687500 +vt 0.601695 0.670455 +vt 0.646893 0.636364 +vt 0.601695 0.653409 +vt 0.601695 0.636364 +vt 0.646893 0.619318 +vt 0.601695 0.619318 +vt 0.646893 0.585227 +vt 0.601695 0.602273 +vt 0.646893 0.687500 +vt 0.601695 0.704545 +vt 0.646893 0.653409 +vt 0.646893 0.602273 +vt 0.694915 0.909091 +vt 0.694915 0.897727 +vt 0.697740 0.897727 +vt 0.692090 0.897727 +vt 0.694915 0.818182 +vt 0.697740 0.829545 +vt 0.694915 0.829545 +vt 0.692090 0.829545 +vt 0.694915 0.840909 +vt 0.706215 0.852273 +vt 0.694915 0.852273 +vt 0.694915 0.875000 +vt 0.706215 0.863636 +vt 0.706215 0.875000 +vt 0.694915 0.886364 +vt 0.700565 0.840909 +vt 0.694915 0.863636 +vt 0.700565 0.886364 +vt 0.689266 0.840909 +vt 0.683616 0.852273 +vt 0.689266 0.886364 +vt 0.683616 0.863636 +vt 0.683616 0.875000 +vt 0.632768 0.829545 +vt 0.683616 0.840909 +vt 0.632768 0.840909 +vt 0.632768 0.852273 +vt 0.632768 0.863636 +vt 0.632768 0.875000 +vt 0.683616 0.886364 +vt 0.632768 0.886364 +vt 0.632768 0.897727 +vt 0.683616 0.909091 +vt 0.632768 0.909091 +vt 0.632768 0.818182 +vt 0.683616 0.829545 +vt 0.683616 0.897727 +vt 0.632768 0.795455 +vt 0.700565 0.806818 +vt 0.632768 0.806818 +vt 0.632768 0.772727 +vt 0.700565 0.784091 +vt 0.632768 0.784091 +vt 0.632768 0.750000 +vt 0.700565 0.761364 +vt 0.632768 0.761364 +vt 0.632768 0.727273 +vt 0.700565 0.738636 +vt 0.632768 0.738636 +vt 0.700565 0.818182 +vt 0.632768 0.818182 +vt 0.700565 0.795455 +vt 0.700565 0.772727 +vt 0.700565 0.750000 +vt 0.711864 0.784091 +vt 0.706215 0.795455 +vt 0.711864 0.806818 +vt 0.709040 0.806818 +vt 0.706215 0.750000 +vt 0.711864 0.738636 +vt 0.711864 0.750000 +vt 0.711864 0.772727 +vt 0.711864 0.795455 +vt 0.711864 0.761364 +vt 0.717514 0.795455 +vt 0.723164 0.772727 +vt 0.714689 0.738636 +vt 0.717514 0.750000 +vt 0.714689 0.806818 +vt 0.723164 0.784091 +vt 0.723164 0.761364 +vt 0.709040 0.738636 +vt 0.711864 0.727273 +vt 0.711864 0.818182 +vt 0.723164 0.750000 +vt 0.742938 0.761364 +vt 0.742938 0.784091 +vt 0.723164 0.727273 +vt 0.742938 0.738636 +vt 0.723164 0.738636 +vt 0.723164 0.806818 +vt 0.742938 0.818182 +vt 0.723164 0.818182 +vt 0.723164 0.795455 +vt 0.742938 0.806818 +vt 0.742938 0.750000 +vt 0.742938 0.772727 +vt 0.742938 0.795455 +vt 0.858757 0.943182 +vt 0.867232 0.909091 +vt 0.867232 0.943182 +vt 0.926554 0.909091 +vt 0.926554 0.943182 +vt 0.909605 0.909091 +vt 0.892655 0.909091 +vt 0.875706 0.909091 +vt 0.892655 0.892045 +vt 0.867232 0.903409 +vt 0.884181 0.875000 +vt 0.926554 0.892045 +vt 0.858757 0.892045 +vt 0.867232 0.875000 +vt 0.884181 0.903409 +vt 0.858757 0.875000 +vt 0.926554 0.647727 +vt 0.935028 0.619318 +vt 0.935028 0.647727 +vt 0.943503 0.647727 +vt 0.951977 0.619318 +vt 0.951977 0.647727 +vt 0.968927 0.647727 +vt 0.960452 0.630682 +vt 0.968927 0.642045 +vt 0.951977 0.676136 +vt 0.926554 0.664773 +vt 0.935028 0.676136 +vt 0.985876 0.653409 +vt 0.994350 0.647727 +vt 0.994350 0.664773 +vt 0.960452 0.664773 +vt 0.960452 0.647727 +vt 0.943503 0.681818 +vt 0.968927 0.653409 +vt 0.935028 0.715909 +vt 0.943503 0.715909 +vt 0.951977 0.715909 +vt 0.960452 0.681818 +vt 0.960452 0.715909 +vt 0.968927 0.715909 +vt 0.977401 0.681818 +vt 0.977401 0.715909 +vt 0.985876 0.715909 +vt 0.994350 0.681818 +vt 0.994350 0.715909 +vt 0.926554 0.715909 +vt 0.935028 0.681818 +vt 0.951977 0.681818 +vt 0.968927 0.681818 +vt 0.985876 0.681818 +vt 0.985876 0.647727 +vt 0.994350 0.630682 +vt 0.943503 0.613636 +vt 0.977401 0.647727 +vt 0.985876 0.642045 +vt 0.943503 0.409091 +vt 0.951977 0.380682 +vt 0.951977 0.409091 +vt 0.960452 0.409091 +vt 0.968927 0.380682 +vt 0.968927 0.409091 +vt 0.985876 0.409091 +vt 0.977401 0.392045 +vt 0.985876 0.403409 +vt 0.960452 0.443182 +vt 0.968927 0.437500 +vt 0.951977 0.437500 +vt 0.943503 0.426136 +vt 0.935028 0.409091 +vt 0.977401 0.409091 +vt 0.977401 0.426136 +vt 0.985876 0.414773 +vt 0.935028 0.613636 +vt 0.943503 0.443182 +vt 0.926554 0.613636 +vt 0.935028 0.443182 +vt 0.985876 0.613636 +vt 0.994350 0.443182 +vt 0.994350 0.613636 +vt 0.977401 0.613636 +vt 0.985876 0.443182 +vt 0.968927 0.613636 +vt 0.977401 0.443182 +vt 0.960452 0.613636 +vt 0.968927 0.443182 +vt 0.951977 0.613636 +vt 0.951977 0.443182 +vt 0.943503 0.392045 +vt 0.960452 0.375000 +vt 0.935028 0.414773 +vt 0.926554 0.409091 +vt 0.935028 0.403409 +vt 0.994350 0.409091 +vt 0.951977 0.375000 +vt 0.960452 0.181818 +vt 0.968927 0.375000 +vt 0.977401 0.181818 +vt 0.977401 0.375000 +vt 0.935028 0.375000 +vt 0.943503 0.181818 +vt 0.943503 0.375000 +vt 0.985876 0.375000 +vt 0.994350 0.181818 +vt 0.994350 0.375000 +vt 0.926554 0.375000 +vt 0.935028 0.181818 +vt 0.951977 0.181818 +vt 0.968927 0.181818 +vt 0.985876 0.181818 +vt 0.918079 0.801136 +vt 0.867232 0.840909 +vt 0.875706 0.829545 +vt 0.858757 0.840909 +vt 0.867232 0.829545 +vt 0.926554 0.840909 +vt 0.918079 0.829545 +vt 0.926554 0.829545 +vt 0.909605 0.840909 +vt 0.918079 0.840909 +vt 0.901130 0.840909 +vt 0.909605 0.829545 +vt 0.892655 0.840909 +vt 0.901130 0.829545 +vt 0.884181 0.840909 +vt 0.884181 0.829545 +vt 0.892655 0.761364 +vt 0.867232 0.801136 +vt 0.858757 0.795455 +vt 0.867232 0.789773 +vt 0.926554 0.795455 +vt 0.884181 0.761364 +vt 0.892655 0.636364 +vt 0.901130 0.761364 +vt 0.909605 0.636364 +vt 0.909605 0.761364 +vt 0.867232 0.761364 +vt 0.875706 0.636364 +vt 0.875706 0.761364 +vt 0.918079 0.761364 +vt 0.926554 0.636364 +vt 0.926554 0.761364 +vt 0.858757 0.761364 +vt 0.867232 0.636364 +vt 0.884181 0.636364 +vt 0.901130 0.636364 +vt 0.918079 0.636364 +vt 0.694915 0.909091 +vt 0.694915 0.897727 +vt 0.697740 0.897727 +vt 0.692090 0.897727 +vt 0.694915 0.818182 +vt 0.697740 0.829545 +vt 0.694915 0.829545 +vt 0.692090 0.829545 +vt 0.694915 0.840909 +vt 0.706215 0.852273 +vt 0.694915 0.852273 +vt 0.694915 0.875000 +vt 0.706215 0.863636 +vt 0.706215 0.875000 +vt 0.694915 0.886364 +vt 0.700565 0.840909 +vt 0.694915 0.863636 +vt 0.700565 0.886364 +vt 0.689266 0.840909 +vt 0.683616 0.852273 +vt 0.689266 0.886364 +vt 0.683616 0.863636 +vt 0.683616 0.875000 +vt 0.632768 0.829545 +vt 0.683616 0.840909 +vt 0.632768 0.840909 +vt 0.632768 0.852273 +vt 0.632768 0.863636 +vt 0.632768 0.875000 +vt 0.683616 0.886364 +vt 0.632768 0.886364 +vt 0.632768 0.897727 +vt 0.683616 0.909091 +vt 0.632768 0.909091 +vt 0.632768 0.818182 +vt 0.683616 0.829545 +vt 0.683616 0.897727 +vt 0.632768 0.795455 +vt 0.700565 0.806818 +vt 0.632768 0.806818 +vt 0.632768 0.772727 +vt 0.700565 0.784091 +vt 0.632768 0.784091 +vt 0.632768 0.750000 +vt 0.700565 0.761364 +vt 0.632768 0.761364 +vt 0.632768 0.727273 +vt 0.700565 0.738636 +vt 0.632768 0.738636 +vt 0.700565 0.818182 +vt 0.632768 0.818182 +vt 0.700565 0.795455 +vt 0.700565 0.772727 +vt 0.700565 0.750000 +vt 0.711864 0.784091 +vt 0.706215 0.795455 +vt 0.711864 0.806818 +vt 0.709040 0.806818 +vt 0.706215 0.750000 +vt 0.711864 0.738636 +vt 0.711864 0.750000 +vt 0.711864 0.772727 +vt 0.711864 0.795455 +vt 0.711864 0.761364 +vt 0.717514 0.795455 +vt 0.723164 0.761364 +vt 0.723164 0.772727 +vt 0.717514 0.750000 +vt 0.714689 0.806818 +vt 0.723164 0.784091 +vt 0.709040 0.738636 +vt 0.711864 0.727273 +vt 0.714689 0.738636 +vt 0.711864 0.818182 +vt 0.723164 0.750000 +vt 0.742938 0.761364 +vt 0.742938 0.784091 +vt 0.723164 0.727273 +vt 0.742938 0.738636 +vt 0.723164 0.738636 +vt 0.723164 0.806818 +vt 0.742938 0.818182 +vt 0.723164 0.818182 +vt 0.723164 0.795455 +vt 0.742938 0.806818 +vt 0.742938 0.750000 +vt 0.742938 0.772727 +vt 0.742938 0.795455 +vt 0.694915 0.909091 +vt 0.697740 0.897727 +vt 0.694915 0.897727 +vt 0.692090 0.897727 +vt 0.694915 0.818182 +vt 0.694915 0.829545 +vt 0.697740 0.829545 +vt 0.692090 0.829545 +vt 0.706215 0.852273 +vt 0.694915 0.840909 +vt 0.694915 0.852273 +vt 0.694915 0.875000 +vt 0.706215 0.863636 +vt 0.694915 0.863636 +vt 0.700565 0.886364 +vt 0.694915 0.886364 +vt 0.700565 0.840909 +vt 0.706215 0.875000 +vt 0.689266 0.840909 +vt 0.683616 0.852273 +vt 0.689266 0.886364 +vt 0.683616 0.875000 +vt 0.683616 0.863636 +vt 0.683616 0.840909 +vt 0.632768 0.829545 +vt 0.632768 0.840909 +vt 0.632768 0.852273 +vt 0.632768 0.863636 +vt 0.683616 0.886364 +vt 0.632768 0.875000 +vt 0.632768 0.886364 +vt 0.683616 0.909091 +vt 0.632768 0.897727 +vt 0.632768 0.909091 +vt 0.683616 0.829545 +vt 0.632768 0.818182 +vt 0.683616 0.897727 +vt 0.700565 0.806818 +vt 0.632768 0.795455 +vt 0.632768 0.806818 +vt 0.700565 0.784091 +vt 0.632768 0.772727 +vt 0.632768 0.784091 +vt 0.700565 0.761364 +vt 0.632768 0.750000 +vt 0.632768 0.761364 +vt 0.700565 0.738636 +vt 0.632768 0.727273 +vt 0.632768 0.738636 +vt 0.700565 0.818182 +vt 0.632768 0.818182 +vt 0.700565 0.795455 +vt 0.700565 0.772727 +vt 0.700565 0.750000 +vt 0.711864 0.784091 +vt 0.711864 0.806818 +vt 0.706215 0.795455 +vt 0.709040 0.806818 +vt 0.706215 0.750000 +vt 0.711864 0.738636 +vt 0.709040 0.738636 +vt 0.711864 0.772727 +vt 0.711864 0.795455 +vt 0.711864 0.750000 +vt 0.717514 0.795455 +vt 0.723164 0.772727 +vt 0.711864 0.761364 +vt 0.717514 0.750000 +vt 0.723164 0.761364 +vt 0.711864 0.727273 +vt 0.714689 0.738636 +vt 0.711864 0.818182 +vt 0.714689 0.806818 +vt 0.742938 0.761364 +vt 0.723164 0.750000 +vt 0.742938 0.784091 +vt 0.723164 0.784091 +vt 0.742938 0.738636 +vt 0.723164 0.727273 +vt 0.723164 0.738636 +vt 0.742938 0.818182 +vt 0.723164 0.806818 +vt 0.723164 0.818182 +vt 0.742938 0.806818 +vt 0.723164 0.795455 +vt 0.742938 0.750000 +vt 0.742938 0.772727 +vt 0.742938 0.795455 +vt 0.694915 0.909091 +vt 0.697740 0.897727 +vt 0.694915 0.897727 +vt 0.692090 0.897727 +vt 0.694915 0.818182 +vt 0.694915 0.829545 +vt 0.697740 0.829545 +vt 0.692090 0.829545 +vt 0.706215 0.852273 +vt 0.694915 0.840909 +vt 0.694915 0.852273 +vt 0.694915 0.875000 +vt 0.706215 0.863636 +vt 0.694915 0.863636 +vt 0.700565 0.886364 +vt 0.694915 0.886364 +vt 0.700565 0.840909 +vt 0.706215 0.875000 +vt 0.689266 0.840909 +vt 0.683616 0.852273 +vt 0.689266 0.886364 +vt 0.683616 0.875000 +vt 0.683616 0.863636 +vt 0.683616 0.840909 +vt 0.632768 0.829545 +vt 0.632768 0.840909 +vt 0.632768 0.852273 +vt 0.632768 0.863636 +vt 0.683616 0.886364 +vt 0.632768 0.875000 +vt 0.632768 0.886364 +vt 0.683616 0.909091 +vt 0.632768 0.897727 +vt 0.632768 0.909091 +vt 0.683616 0.829545 +vt 0.632768 0.818182 +vt 0.683616 0.897727 +vt 0.700565 0.806818 +vt 0.632768 0.795455 +vt 0.632768 0.806818 +vt 0.700565 0.784091 +vt 0.632768 0.772727 +vt 0.632768 0.784091 +vt 0.700565 0.761364 +vt 0.632768 0.750000 +vt 0.632768 0.761364 +vt 0.700565 0.738636 +vt 0.632768 0.727273 +vt 0.632768 0.738636 +vt 0.700565 0.818182 +vt 0.632768 0.818182 +vt 0.700565 0.795455 +vt 0.700565 0.772727 +vt 0.700565 0.750000 +vt 0.711864 0.784091 +vt 0.711864 0.806818 +vt 0.706215 0.795455 +vt 0.709040 0.806818 +vt 0.706215 0.750000 +vt 0.711864 0.738636 +vt 0.709040 0.738636 +vt 0.711864 0.772727 +vt 0.711864 0.795455 +vt 0.711864 0.750000 +vt 0.717514 0.795455 +vt 0.723164 0.772727 +vt 0.711864 0.761364 +vt 0.717514 0.750000 +vt 0.723164 0.761364 +vt 0.711864 0.727273 +vt 0.714689 0.738636 +vt 0.711864 0.818182 +vt 0.714689 0.806818 +vt 0.742938 0.761364 +vt 0.723164 0.750000 +vt 0.742938 0.784091 +vt 0.723164 0.784091 +vt 0.742938 0.738636 +vt 0.723164 0.727273 +vt 0.723164 0.738636 +vt 0.742938 0.818182 +vt 0.723164 0.806818 +vt 0.723164 0.818182 +vt 0.742938 0.806818 +vt 0.723164 0.795455 +vt 0.742938 0.750000 +vt 0.742938 0.772727 +vt 0.742938 0.795455 +vt 0.994350 0.545455 +vt 0.994350 0.545455 +vt 0.646893 0.704545 +vt 0.646893 0.704545 +vt 0.646893 0.704545 +vt 0.683616 0.818182 +vt 0.700565 0.727273 +vt 0.742938 0.727273 +vt 0.858757 0.909091 +vt 0.858757 0.857955 +vt 0.926554 0.630682 +vt 0.926554 0.681818 +vt 0.926554 0.443182 +vt 0.926554 0.181818 +vt 0.858757 0.829545 +vt 0.858757 0.636364 +vt 0.683616 0.818182 +vt 0.700565 0.727273 +vt 0.742938 0.727273 +vt 0.683616 0.818182 +vt 0.700565 0.727273 +vt 0.742938 0.727273 +vt 0.683616 0.818182 +vt 0.700565 0.727273 +vt 0.742938 0.727273 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.5547 0.8321 0.0000 +vn 0.5547 0.8321 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.7194 0.6794 0.1448 +vn 0.9824 -0.0000 0.1866 +vn 0.0473 -0.9987 0.0196 +vn 0.5294 -0.6630 0.5294 +vn 0.0671 -0.9955 0.0671 +vn 0.0473 0.9987 0.0196 +vn -0.4617 0.7574 -0.4617 +vn 0.0671 0.9955 0.0671 +vn 0.5294 0.6630 0.5294 +vn 0.7194 -0.6794 0.1448 +vn -0.4617 -0.7574 -0.4617 +vn 0.0196 -0.9987 0.0473 +vn -0.1363 -0.7263 -0.6737 +vn 0.1448 -0.6794 0.7194 +vn 0.0196 0.9987 0.0473 +vn 0.1448 0.6794 0.7194 +vn 0.7574 -0.4617 0.4617 +vn 0.7263 -0.6737 0.1363 +vn -0.0000 -0.7071 0.7071 +vn 0.7263 -0.1363 0.6737 +vn -0.7263 -0.6737 0.1363 +vn -0.7574 -0.4617 0.4617 +vn -0.7263 -0.1363 0.6737 +vn -0.6794 0.7194 -0.1448 +vn 0.0000 0.9824 -0.1866 +vn 0.9955 0.0671 -0.0671 +vn 0.6794 0.7194 -0.1448 +vn 0.9987 0.0473 -0.0196 +vn -0.9987 0.0473 -0.0196 +vn -0.9955 0.0671 -0.0671 +vn 0.6794 0.1448 -0.7194 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.1944 0.0000 -0.9809 +vn -0.6303 0.7311 -0.2611 +vn -0.1363 0.7263 -0.6737 +vn -0.6303 -0.7311 -0.2611 +vn 0.7150 -0.6333 0.2962 +vn 0.9239 0.0000 0.3827 +vn 0.7150 0.6333 0.2962 +vn 0.0948 -0.9947 0.0393 +vn 0.0948 0.9947 0.0393 +vn 0.1866 -0.0000 0.9824 +vn 0.0000 -0.7071 -0.7071 +vn -0.6737 -0.7263 -0.1363 +vn -0.6737 0.7263 -0.1363 +vn -0.6794 0.1448 -0.7194 +vn -0.9987 0.0196 -0.0473 +vn 0.9987 0.0196 -0.0473 +vn 0.0000 0.1866 -0.9824 +vn 0.6630 0.5294 -0.5294 +vn -0.6630 0.5294 -0.5294 +vn -0.1944 0.0000 0.9809 +vn -0.6303 0.7311 0.2611 +vn -0.4617 0.7574 0.4617 +vn -0.1363 0.7263 0.6737 +vn -0.4617 -0.7574 0.4617 +vn -0.6303 -0.7311 0.2611 +vn -0.1363 -0.7263 0.6737 +vn 0.7150 -0.6333 -0.2962 +vn 0.0671 -0.9955 -0.0671 +vn 0.5294 -0.6630 -0.5294 +vn 0.5294 0.6630 -0.5294 +vn 0.9239 0.0000 -0.3827 +vn 0.0948 0.9947 -0.0393 +vn 0.0671 0.9955 -0.0671 +vn 0.0948 -0.9947 -0.0393 +vn 0.7150 0.6333 -0.2962 +vn 0.0196 -0.9987 -0.0473 +vn 0.1448 -0.6794 -0.7194 +vn 0.0196 0.9987 -0.0473 +vn 0.1448 0.6794 -0.7194 +vn 0.1866 -0.0000 -0.9824 +vn 0.0473 0.9987 -0.0196 +vn 0.9824 -0.0000 -0.1866 +vn 0.0473 -0.9987 -0.0196 +vn 0.7194 -0.6794 -0.1448 +vn -0.6737 -0.7263 0.1363 +vn -0.6737 0.7263 0.1363 +vn 0.7194 0.6794 -0.1448 +s off +f 35/45/16 34/46/16 33/47/16 +f 38/48/17 39/49/17 37/50/17 +f 35/51/18 40/52/18 36/53/18 +f 34/54/19 37/50/19 33/55/19 +f 36/56/20 38/48/20 34/46/20 +f 33/57/21 39/49/21 35/58/21 +f 58/59/22 61/60/22 57/61/22 +f 46/62/22 49/63/22 45/64/22 +f 44/65/20 47/66/20 42/67/20 +f 41/68/21 45/69/21 43/70/21 +f 43/71/18 48/72/18 44/73/18 +f 42/67/19 46/74/19 41/68/19 +f 51/75/17 49/63/17 50/76/17 +f 45/77/18 52/78/18 48/72/18 +f 47/66/19 50/76/19 46/74/19 +f 48/79/23 51/75/23 47/80/23 +f 56/81/20 59/82/20 54/83/20 +f 53/84/21 57/85/21 55/86/21 +f 55/87/18 60/88/18 56/89/18 +f 54/83/19 58/90/19 53/84/19 +f 63/91/17 61/60/17 62/92/17 +f 57/93/18 64/94/18 60/88/18 +f 59/82/19 62/92/19 58/90/19 +f 60/95/23 63/91/23 59/96/23 +f 70/97/22 73/98/22 69/99/22 +f 68/100/20 71/101/20 66/102/20 +f 65/103/21 69/104/21 67/105/21 +f 67/106/18 72/107/18 68/108/18 +f 66/102/19 70/109/19 65/103/19 +f 75/110/17 73/98/17 74/111/17 +f 69/112/18 76/113/18 72/107/18 +f 71/101/19 74/111/19 70/109/19 +f 72/114/23 75/110/23 71/115/23 +f 82/116/22 85/117/22 81/118/22 +f 80/119/20 83/120/20 78/121/20 +f 77/122/21 81/123/21 79/124/21 +f 79/125/18 84/126/18 80/127/18 +f 78/121/19 82/128/19 77/122/19 +f 87/129/17 85/117/17 86/130/17 +f 81/131/18 88/132/18 84/126/18 +f 83/120/19 86/130/19 82/128/19 +f 84/133/23 87/129/23 83/134/23 +f 91/135/20 90/136/20 89/137/20 +f 91/135/23 94/138/23 92/139/23 +f 93/140/17 96/141/17 94/138/17 +f 95/142/22 98/143/22 96/141/22 +f 97/144/21 100/145/21 98/143/21 +f 105/146/22 110/147/22 104/148/22 +f 103/149/23 108/150/23 102/151/23 +f 106/152/21 111/153/21 105/146/21 +f 104/148/17 109/154/17 103/149/17 +f 108/150/20 101/155/20 102/151/20 +f 117/156/22 122/157/22 116/158/22 +f 115/159/23 120/160/23 114/161/23 +f 118/162/21 123/163/21 117/156/21 +f 116/158/17 121/164/17 115/159/17 +f 120/160/20 113/165/20 114/161/20 +f 147/166/19 137/167/19 141/168/19 +f 152/169/18 150/170/18 160/171/18 +f 257/172/20 279/173/20 259/174/20 +f 260/175/21 277/176/21 258/177/21 +f 258/177/18 280/178/18 257/172/18 +f 259/174/19 278/179/19 260/180/19 +f 179/181/20 185/182/20 177/183/20 +f 173/184/20 184/185/20 175/186/20 +f 175/187/19 183/188/19 176/189/19 +f 176/190/21 181/191/21 174/192/21 +f 174/193/18 182/194/18 173/195/18 +f 178/196/17 181/197/17 177/198/17 +f 179/199/17 184/200/17 180/201/17 +f 177/183/17 183/202/17 179/181/17 +f 180/203/17 182/204/17 178/205/17 +f 185/182/17 188/206/17 186/207/17 +f 177/198/19 186/207/19 178/196/19 +f 178/205/21 188/206/21 180/203/21 +f 180/201/18 187/208/18 179/199/18 +f 189/209/17 192/210/17 190/211/17 +f 199/212/20 205/213/20 197/214/20 +f 193/215/20 204/216/20 195/217/20 +f 195/218/19 203/219/19 196/220/19 +f 196/221/21 201/222/21 194/223/21 +f 194/224/18 202/225/18 193/226/18 +f 198/227/17 201/228/17 197/229/17 +f 199/230/17 204/231/17 200/232/17 +f 197/214/17 203/233/17 199/212/17 +f 200/234/17 202/235/17 198/236/17 +f 205/213/17 208/237/17 206/238/17 +f 197/229/19 206/238/19 198/227/19 +f 198/236/21 208/237/21 200/234/21 +f 200/232/18 207/239/18 199/230/18 +f 209/240/17 212/241/17 210/242/17 +f 219/243/20 225/244/20 217/245/20 +f 213/246/20 224/247/20 215/248/20 +f 215/249/19 223/250/19 216/251/19 +f 216/252/21 221/253/21 214/254/21 +f 214/255/18 222/256/18 213/257/18 +f 218/258/17 221/259/17 217/260/17 +f 219/261/17 224/262/17 220/263/17 +f 217/245/17 223/264/17 219/243/17 +f 220/265/17 222/266/17 218/267/17 +f 225/244/17 228/268/17 226/269/17 +f 217/260/19 226/269/19 218/258/19 +f 218/267/21 228/268/21 220/265/21 +f 220/263/18 227/270/18 219/261/18 +f 229/271/17 232/272/17 230/273/17 +f 239/274/20 245/275/20 237/276/20 +f 233/277/20 244/278/20 235/279/20 +f 235/280/19 243/281/19 236/282/19 +f 236/283/21 241/284/21 234/285/21 +f 234/286/18 242/287/18 233/288/18 +f 238/289/17 241/290/17 237/291/17 +f 239/292/17 244/293/17 240/294/17 +f 237/276/17 243/295/17 239/274/17 +f 240/296/17 242/297/17 238/298/17 +f 245/275/17 248/299/17 246/300/17 +f 237/291/19 246/300/19 238/289/19 +f 238/298/21 248/299/21 240/296/21 +f 240/294/18 247/301/18 239/292/18 +f 249/302/17 252/303/17 250/304/17 +f 255/305/19 284/306/19 256/307/19 +f 357/308/17 355/309/17 356/310/17 +f 267/311/17 266/312/17 268/313/17 +f 262/314/19 268/313/19 261/315/19 +f 263/316/18 265/317/18 264/318/18 +f 261/319/21 266/312/21 263/320/21 +f 264/321/20 267/311/20 262/322/20 +f 273/323/20 270/324/20 275/325/20 +f 276/326/21 271/327/21 274/328/21 +f 274/329/18 272/330/18 273/331/18 +f 275/332/19 269/333/19 276/334/19 +f 270/324/17 271/327/17 269/333/17 +f 365/335/17 363/336/17 364/337/17 +f 255/338/17 278/339/17 253/340/17 +f 253/341/17 279/173/17 254/342/17 +f 254/343/17 280/178/17 256/344/17 +f 256/307/17 277/176/17 255/305/17 +f 254/342/18 282/345/18 253/341/18 +f 256/344/21 283/346/21 254/343/21 +f 253/340/20 281/347/20 255/338/20 +f 286/348/19 298/349/19 287/350/19 +f 288/351/20 300/352/20 291/353/20 +f 292/354/18 294/355/18 289/356/18 +f 288/351/17 292/354/17 290/357/17 +f 300/352/24 292/358/24 291/353/24 +f 290/357/25 294/359/25 293/360/25 +f 296/361/26 286/362/26 285/363/26 +f 288/351/27 298/364/27 297/365/27 +f 290/357/21 296/361/21 285/363/21 +f 301/366/17 304/367/17 303/368/17 +f 336/369/17 337/370/17 335/371/17 +f 336/369/18 342/372/18 341/373/18 +f 338/374/21 341/375/21 339/376/21 +f 335/371/20 340/377/20 342/378/20 +f 337/370/19 339/379/19 340/380/19 +f 351/381/18 358/382/18 354/383/18 +f 349/384/17 347/385/17 348/386/17 +f 346/387/20 349/384/20 344/388/20 +f 343/389/21 347/385/21 345/390/21 +f 345/391/18 350/392/18 346/393/18 +f 344/394/19 348/386/19 343/395/19 +f 353/396/19 356/310/19 352/397/19 +f 354/398/20 357/308/20 353/399/20 +f 352/400/21 355/309/21 351/401/21 +f 359/402/18 366/403/18 362/404/18 +f 361/405/19 364/337/19 360/406/19 +f 362/407/20 365/335/20 361/408/20 +f 360/409/21 363/336/21 359/410/21 +f 373/411/17 371/412/17 372/413/17 +f 367/414/18 374/415/18 370/416/18 +f 369/417/19 372/413/19 368/418/19 +f 370/419/20 373/411/20 369/420/20 +f 368/421/21 371/412/21 367/422/21 +f 381/423/17 379/424/17 380/425/17 +f 375/426/18 382/427/18 378/428/18 +f 377/429/19 380/425/19 376/430/19 +f 378/431/20 381/423/20 377/432/20 +f 376/433/21 379/424/21 375/434/21 +f 389/435/17 387/436/17 388/437/17 +f 383/438/18 390/439/18 386/440/18 +f 385/441/19 388/437/19 384/442/19 +f 386/443/20 389/435/20 385/444/20 +f 384/445/21 387/436/21 383/446/21 +f 601/447/20 598/448/20 597/449/20 +f 598/450/20 604/451/20 599/452/20 +f 606/453/20 597/454/20 600/455/20 +f 597/454/20 605/456/20 601/457/20 +f 602/458/20 603/459/20 598/450/20 +f 609/460/21 612/461/21 607/462/21 +f 614/463/21 609/464/21 610/465/21 +f 607/466/21 616/467/21 608/468/21 +f 607/466/21 612/469/21 615/470/21 +f 611/471/21 609/464/21 613/472/21 +f 622/473/20 623/474/20 618/475/20 +f 615/470/28 601/447/28 605/456/28 +f 617/476/20 625/477/20 621/478/20 +f 616/467/18 605/456/18 606/453/18 +f 613/472/19 604/451/19 603/459/19 +f 611/479/29 603/459/29 602/480/29 +f 612/461/17 602/480/17 601/447/17 +f 626/481/20 617/476/20 620/482/20 +f 618/475/20 624/483/20 619/484/20 +f 621/485/20 618/486/20 617/487/20 +f 629/488/21 632/489/21 627/490/21 +f 634/491/21 629/492/21 630/493/21 +f 627/494/21 636/495/21 628/496/21 +f 627/494/21 632/497/21 635/498/21 +f 631/499/21 629/492/21 633/500/21 +f 635/498/28 621/485/28 625/477/28 +f 636/495/18 625/477/18 626/481/18 +f 633/500/19 624/483/19 623/474/19 +f 631/501/29 623/474/29 622/502/29 +f 632/489/17 622/502/17 621/485/17 +f 35/45/16 36/56/16 34/46/16 +f 38/48/17 40/52/17 39/49/17 +f 35/51/18 39/49/18 40/52/18 +f 34/54/19 38/48/19 37/50/19 +f 36/56/20 40/52/20 38/48/20 +f 33/57/21 37/50/21 39/49/21 +f 58/59/22 62/92/22 61/60/22 +f 46/62/22 50/76/22 49/63/22 +f 44/65/20 48/503/20 47/66/20 +f 41/68/21 46/74/21 45/69/21 +f 43/71/18 45/77/18 48/72/18 +f 42/67/19 47/66/19 46/74/19 +f 51/75/17 52/78/17 49/63/17 +f 45/77/18 49/63/18 52/78/18 +f 47/66/19 51/75/19 50/76/19 +f 48/79/23 52/78/23 51/75/23 +f 56/81/20 60/504/20 59/82/20 +f 53/84/21 58/90/21 57/85/21 +f 55/87/18 57/93/18 60/88/18 +f 54/83/19 59/82/19 58/90/19 +f 63/91/17 64/94/17 61/60/17 +f 57/93/18 61/60/18 64/94/18 +f 59/82/19 63/91/19 62/92/19 +f 60/95/23 64/94/23 63/91/23 +f 70/97/22 74/111/22 73/98/22 +f 68/100/20 72/505/20 71/101/20 +f 65/103/21 70/109/21 69/104/21 +f 67/106/18 69/112/18 72/107/18 +f 66/102/19 71/101/19 70/109/19 +f 75/110/17 76/113/17 73/98/17 +f 69/112/18 73/98/18 76/113/18 +f 71/101/19 75/110/19 74/111/19 +f 72/114/23 76/113/23 75/110/23 +f 82/116/22 86/130/22 85/117/22 +f 80/119/20 84/506/20 83/120/20 +f 77/122/21 82/128/21 81/123/21 +f 79/125/18 81/131/18 84/126/18 +f 78/121/19 83/120/19 82/128/19 +f 87/129/17 88/132/17 85/117/17 +f 81/131/18 85/117/18 88/132/18 +f 83/120/19 87/129/19 86/130/19 +f 84/133/23 88/132/23 87/129/23 +f 91/135/20 92/139/20 90/136/20 +f 91/135/23 93/140/23 94/138/23 +f 93/140/17 95/142/17 96/141/17 +f 95/142/22 97/144/22 98/143/22 +f 97/144/21 99/507/21 100/145/21 +f 105/146/22 111/153/22 110/147/22 +f 103/149/23 109/154/23 108/150/23 +f 106/152/21 112/508/21 111/153/21 +f 104/148/17 110/147/17 109/154/17 +f 108/150/20 107/509/20 101/155/20 +f 117/156/22 123/163/22 122/157/22 +f 115/159/23 121/164/23 120/160/23 +f 118/162/21 124/510/21 123/163/21 +f 116/158/17 122/157/17 121/164/17 +f 120/160/20 119/511/20 113/165/20 +f 137/167/19 138/512/19 139/513/19 +f 139/513/19 140/514/19 141/168/19 +f 141/168/19 142/515/19 145/516/19 +f 142/515/19 143/517/19 145/516/19 +f 143/517/19 144/518/19 145/516/19 +f 145/516/19 146/519/19 147/166/19 +f 147/166/19 148/520/19 137/167/19 +f 137/167/19 139/513/19 141/168/19 +f 145/516/19 147/166/19 141/168/19 +f 160/171/18 159/521/18 158/522/18 +f 158/522/18 157/523/18 156/524/18 +f 156/524/18 155/525/18 154/526/18 +f 154/526/18 153/527/18 152/169/18 +f 152/169/18 151/528/18 150/170/18 +f 150/170/18 149/529/18 160/171/18 +f 160/171/18 158/522/18 156/524/18 +f 156/524/18 154/526/18 160/171/18 +f 154/526/18 152/169/18 160/171/18 +f 257/172/20 280/178/20 279/173/20 +f 260/175/21 278/339/21 277/176/21 +f 258/177/18 277/176/18 280/178/18 +f 259/174/19 279/173/19 278/179/19 +f 179/181/20 187/208/20 185/182/20 +f 173/184/20 182/204/20 184/185/20 +f 175/187/19 184/200/19 183/188/19 +f 176/190/21 183/202/21 181/191/21 +f 174/193/18 181/197/18 182/194/18 +f 178/196/17 182/194/17 181/197/17 +f 179/199/17 183/188/17 184/200/17 +f 177/183/17 181/191/17 183/202/17 +f 180/203/17 184/185/17 182/204/17 +f 185/182/17 187/208/17 188/206/17 +f 177/198/19 185/182/19 186/207/19 +f 178/205/21 186/207/21 188/206/21 +f 180/201/18 188/206/18 187/208/18 +f 189/209/17 191/530/17 192/210/17 +f 199/212/20 207/239/20 205/213/20 +f 193/215/20 202/235/20 204/216/20 +f 195/218/19 204/231/19 203/219/19 +f 196/221/21 203/233/21 201/222/21 +f 194/224/18 201/228/18 202/225/18 +f 198/227/17 202/225/17 201/228/17 +f 199/230/17 203/219/17 204/231/17 +f 197/214/17 201/222/17 203/233/17 +f 200/234/17 204/216/17 202/235/17 +f 205/213/17 207/239/17 208/237/17 +f 197/229/19 205/213/19 206/238/19 +f 198/236/21 206/238/21 208/237/21 +f 200/232/18 208/237/18 207/239/18 +f 209/240/17 211/531/17 212/241/17 +f 219/243/20 227/270/20 225/244/20 +f 213/246/20 222/266/20 224/247/20 +f 215/249/19 224/262/19 223/250/19 +f 216/252/21 223/264/21 221/253/21 +f 214/255/18 221/259/18 222/256/18 +f 218/258/17 222/256/17 221/259/17 +f 219/261/17 223/250/17 224/262/17 +f 217/245/17 221/253/17 223/264/17 +f 220/265/17 224/247/17 222/266/17 +f 225/244/17 227/270/17 228/268/17 +f 217/260/19 225/244/19 226/269/19 +f 218/267/21 226/269/21 228/268/21 +f 220/263/18 228/268/18 227/270/18 +f 229/271/17 231/532/17 232/272/17 +f 239/274/20 247/301/20 245/275/20 +f 233/277/20 242/297/20 244/278/20 +f 235/280/19 244/293/19 243/281/19 +f 236/283/21 243/295/21 241/284/21 +f 234/286/18 241/290/18 242/287/18 +f 238/289/17 242/287/17 241/290/17 +f 239/292/17 243/281/17 244/293/17 +f 237/276/17 241/284/17 243/295/17 +f 240/296/17 244/278/17 242/297/17 +f 245/275/17 247/301/17 248/299/17 +f 237/291/19 245/275/19 246/300/19 +f 238/298/21 246/300/21 248/299/21 +f 240/294/18 248/299/18 247/301/18 +f 249/302/17 251/533/17 252/303/17 +f 255/305/19 281/534/19 284/306/19 +f 357/308/17 358/382/17 355/309/17 +f 267/311/17 265/317/17 266/312/17 +f 262/314/19 267/311/19 268/313/19 +f 263/316/18 266/312/18 265/317/18 +f 261/319/21 268/313/21 266/312/21 +f 264/321/20 265/317/20 267/311/20 +f 273/323/20 272/330/20 270/324/20 +f 276/326/21 269/333/21 271/327/21 +f 274/329/18 271/327/18 272/330/18 +f 275/332/19 270/324/19 269/333/19 +f 270/324/17 272/330/17 271/327/17 +f 365/335/17 366/403/17 363/336/17 +f 255/338/17 277/176/17 278/339/17 +f 253/341/17 278/179/17 279/173/17 +f 254/343/17 279/173/17 280/178/17 +f 256/307/17 280/178/17 277/176/17 +f 254/342/18 283/535/18 282/345/18 +f 256/344/21 284/536/21 283/346/21 +f 253/340/20 282/537/20 281/347/20 +f 286/348/19 295/538/19 298/349/19 +f 288/351/20 297/365/20 300/352/20 +f 292/354/18 299/539/18 294/355/18 +f 290/357/17 285/363/17 286/348/17 +f 286/348/17 287/350/17 288/351/17 +f 288/351/17 291/353/17 292/354/17 +f 292/354/17 289/356/17 290/357/17 +f 290/357/17 286/348/17 288/351/17 +f 300/352/24 299/540/24 292/358/24 +f 290/357/25 289/541/25 294/359/25 +f 296/361/26 295/542/26 286/362/26 +f 288/351/27 287/543/27 298/364/27 +f 290/357/21 293/360/21 296/361/21 +f 301/366/17 302/544/17 304/367/17 +f 336/369/17 338/374/17 337/370/17 +f 336/369/18 335/371/18 342/372/18 +f 338/374/21 336/369/21 341/375/21 +f 335/371/20 337/370/20 340/377/20 +f 337/370/19 338/374/19 339/379/19 +f 351/381/18 355/309/18 358/382/18 +f 349/384/17 350/392/17 347/385/17 +f 346/387/20 350/392/20 349/384/20 +f 343/389/21 348/386/21 347/385/21 +f 345/391/18 347/385/18 350/392/18 +f 344/394/19 349/384/19 348/386/19 +f 353/396/19 357/308/19 356/310/19 +f 354/398/20 358/382/20 357/308/20 +f 352/400/21 356/310/21 355/309/21 +f 359/402/18 363/336/18 366/403/18 +f 361/405/19 365/335/19 364/337/19 +f 362/407/20 366/403/20 365/335/20 +f 360/409/21 364/337/21 363/336/21 +f 373/411/17 374/415/17 371/412/17 +f 367/414/18 371/412/18 374/415/18 +f 369/417/19 373/411/19 372/413/19 +f 370/419/20 374/415/20 373/411/20 +f 368/421/21 372/413/21 371/412/21 +f 381/423/17 382/427/17 379/424/17 +f 375/426/18 379/424/18 382/427/18 +f 377/429/19 381/423/19 380/425/19 +f 378/431/20 382/427/20 381/423/20 +f 376/433/21 380/425/21 379/424/21 +f 389/435/17 390/439/17 387/436/17 +f 383/438/18 387/436/18 390/439/18 +f 385/441/19 389/435/19 388/437/19 +f 386/443/20 390/439/20 389/435/20 +f 384/445/21 388/437/21 387/436/21 +f 601/447/20 602/480/20 598/448/20 +f 598/450/20 603/459/20 604/451/20 +f 606/453/20 605/456/20 597/454/20 +f 609/460/21 611/479/21 612/461/21 +f 614/463/21 613/472/21 609/464/21 +f 607/466/21 615/470/21 616/467/21 +f 615/470/28 612/461/28 601/447/28 +f 616/467/18 615/470/18 605/456/18 +f 613/472/19 614/463/19 604/451/19 +f 611/479/29 613/472/29 603/459/29 +f 612/461/17 611/479/17 602/480/17 +f 626/481/20 625/477/20 617/476/20 +f 618/475/20 623/474/20 624/483/20 +f 621/485/20 622/502/20 618/486/20 +f 629/488/21 631/501/21 632/489/21 +f 634/491/21 633/500/21 629/492/21 +f 627/494/21 635/498/21 636/495/21 +f 635/498/28 632/489/28 621/485/28 +f 636/495/18 635/498/18 625/477/18 +f 633/500/19 634/491/19 624/483/19 +f 631/501/29 633/500/29 623/474/29 +f 632/489/17 631/501/17 622/502/17 +s 1 +f 129/545/30 140/546/21 128/547/21 +f 136/548/31 147/549/32 135/550/32 +f 126/551/33 137/552/17 125/553/17 +f 133/554/34 144/555/35 132/556/35 +f 130/557/36 141/558/30 129/545/30 +f 125/553/17 148/559/31 136/548/31 +f 127/560/37 138/561/33 126/551/33 +f 134/562/20 145/563/34 133/554/34 +f 131/564/16 142/565/36 130/557/36 +f 128/547/21 139/566/37 127/560/37 +f 135/550/32 146/567/20 134/562/20 +f 132/556/35 143/568/16 131/569/16 +f 165/570/36 154/571/16 166/572/16 +f 163/573/21 150/574/37 151/575/21 +f 169/576/20 158/577/32 170/578/32 +f 166/579/16 155/580/35 167/581/35 +f 163/573/21 152/582/30 164/583/30 +f 170/578/32 159/584/31 171/585/31 +f 172/586/17 149/587/33 161/588/33 +f 167/581/35 156/589/34 168/590/34 +f 164/583/30 153/591/36 165/570/36 +f 171/585/31 160/592/17 172/586/17 +f 161/588/33 150/574/37 162/593/37 +f 168/590/34 157/594/20 169/576/20 +f 588/595/38 574/596/27 587/597/39 +f 585/598/40 573/599/41 572/600/42 +f 568/601/43 570/602/44 569/603/45 +f 588/595/38 569/603/45 305/604/46 +f 587/597/39 573/599/41 586/605/47 +f 571/606/48 309/607/49 310/608/50 +f 574/596/27 308/609/51 573/599/41 +f 305/604/46 312/610/52 306/611/53 +f 331/612/54 512/613/55 326/614/56 +f 325/615/57 331/612/54 326/614/56 +f 513/616/58 330/617/59 326/614/56 +f 327/618/60 326/614/56 330/617/59 +f 334/619/28 508/620/61 509/621/62 +f 332/622/63 510/623/64 511/624/65 +f 330/617/59 514/625/66 329/626/67 +f 315/627/19 327/628/60 314/629/26 +f 317/630/20 325/631/57 316/632/27 +f 319/633/18 323/634/68 318/635/24 +f 403/636/16 396/637/69 395/638/16 +f 401/639/21 394/640/70 393/641/21 +f 399/642/17 392/643/71 391/644/17 +f 406/645/72 391/644/17 398/646/72 +f 404/647/69 397/648/20 396/637/69 +f 402/649/70 395/650/16 394/640/70 +f 400/651/71 393/641/21 392/643/71 +f 405/652/20 398/646/72 397/648/20 +f 419/653/16 412/654/69 411/655/16 +f 417/656/21 410/657/70 409/658/21 +f 415/659/17 408/660/71 407/661/17 +f 422/662/72 407/661/17 414/663/72 +f 420/664/69 413/665/20 412/654/69 +f 418/666/70 411/667/16 410/657/70 +f 416/668/71 409/658/21 408/660/71 +f 421/669/20 414/663/72 413/665/20 +f 435/670/16 428/671/69 427/672/16 +f 433/673/21 426/674/70 425/675/21 +f 431/676/17 424/677/71 423/678/17 +f 438/679/72 423/678/17 430/680/72 +f 436/681/69 429/682/20 428/671/69 +f 434/683/70 427/684/16 426/674/70 +f 432/685/71 425/675/21 424/677/71 +f 437/686/20 430/680/72 429/682/20 +f 453/687/73 452/688/44 439/689/74 +f 453/687/73 454/690/75 452/688/44 +f 453/691/73 445/692/76 446/693/48 +f 446/693/48 460/694/50 453/691/73 +f 447/695/42 443/696/77 448/697/41 +f 450/698/46 442/699/78 441/700/79 +f 451/701/45 439/689/74 452/688/44 +f 446/693/48 444/702/80 447/695/42 +f 448/697/41 442/699/78 449/703/27 +f 451/701/45 441/700/79 440/704/81 +f 459/705/49 448/697/41 458/706/51 +f 455/707/52 450/698/46 451/701/45 +f 458/706/51 449/703/27 457/708/82 +f 459/705/49 446/693/48 447/695/42 +f 455/707/52 452/688/44 454/690/75 +f 457/708/82 450/698/46 456/709/53 +f 461/710/83 459/711/49 462/712/16 +f 463/713/56 457/708/82 464/714/19 +f 465/715/29 455/716/52 466/717/17 +f 467/718/28 453/719/73 468/720/18 +f 468/721/18 460/722/50 461/710/83 +f 462/712/16 458/706/51 463/713/56 +f 464/714/19 456/709/53 465/715/29 +f 466/717/17 454/723/75 467/718/28 +f 471/724/17 483/725/75 470/726/28 +f 473/727/19 481/728/53 472/729/29 +f 475/730/16 479/731/51 474/732/56 +f 469/733/18 477/734/50 476/735/83 +f 470/726/28 484/736/25 469/737/18 +f 472/729/29 482/738/52 471/724/17 +f 474/732/56 480/739/82 473/727/19 +f 476/735/83 478/740/49 475/730/16 +f 480/739/82 487/741/46 481/728/53 +f 482/742/52 485/743/44 483/744/75 +f 478/745/49 491/746/48 490/747/42 +f 479/731/51 488/748/27 480/739/82 +f 481/728/53 486/749/45 482/742/52 +f 479/731/51 490/747/42 489/750/41 +f 487/741/46 497/751/43 486/749/45 +f 489/750/41 495/752/39 488/748/27 +f 490/747/42 492/753/84 493/754/40 +f 485/743/44 497/751/43 498/755/85 +f 487/741/46 495/752/39 496/756/38 +f 490/747/42 494/757/47 489/750/41 +f 491/746/48 477/758/50 484/759/25 +f 484/759/25 492/753/84 491/746/48 +f 484/760/25 483/744/75 485/743/44 +f 484/760/25 485/743/44 498/755/85 +f 493/761/40 503/762/69 494/757/47 +f 495/752/39 501/763/72 496/756/38 +f 484/764/25 505/765/70 492/766/84 +f 498/767/85 506/768/21 484/769/25 +f 497/770/43 499/771/71 498/767/85 +f 492/766/84 504/772/16 493/761/40 +f 494/757/47 502/773/20 495/752/39 +f 496/756/38 500/774/17 497/770/43 +f 313/775/21 321/776/86 320/777/25 +f 314/629/26 328/778/87 313/779/21 +f 316/632/27 326/780/56 315/627/19 +f 318/635/24 324/781/88 317/630/20 +f 320/777/25 322/782/89 319/633/18 +f 324/783/88 331/612/54 325/615/57 +f 321/784/86 334/619/28 322/782/89 +f 324/783/88 333/785/90 332/622/63 +f 328/786/87 330/617/59 329/626/67 +f 328/787/87 507/788/91 321/784/86 +f 322/782/89 333/785/90 323/789/68 +f 331/612/54 511/624/65 512/613/55 +f 334/619/28 510/623/64 333/785/90 +f 329/790/67 508/620/61 507/788/91 +f 528/791/67 521/792/61 522/793/91 +f 523/794/28 519/795/64 524/796/90 +f 526/797/54 518/798/65 517/799/55 +f 534/800/68 523/794/28 524/796/90 +f 529/801/87 522/793/91 536/802/86 +f 530/803/60 528/804/67 529/805/87 +f 533/806/88 524/796/90 525/807/63 +f 536/802/86 523/794/28 535/808/89 +f 533/806/88 526/797/54 532/809/57 +f 537/810/25 535/808/89 538/811/18 +f 539/812/24 533/813/88 540/814/20 +f 541/815/27 531/816/56 542/817/19 +f 543/818/26 529/819/87 544/820/21 +f 544/821/21 536/822/86 537/810/25 +f 538/811/18 534/823/68 539/812/24 +f 540/814/20 532/824/57 541/815/27 +f 542/817/19 530/825/60 543/818/26 +f 527/826/59 515/827/66 528/804/67 +f 525/807/63 519/795/64 518/798/65 +f 522/793/91 520/828/62 523/794/28 +f 530/803/60 531/829/56 527/826/59 +f 516/830/58 527/826/59 531/829/56 +f 532/809/57 526/797/54 531/829/56 +f 526/797/54 517/799/55 531/829/56 +f 558/831/45 551/832/53 552/833/46 +f 553/834/27 549/835/51 554/836/41 +f 556/837/48 548/838/49 547/839/50 +f 565/840/39 554/836/41 564/841/47 +f 566/842/38 558/831/45 552/833/46 +f 559/843/43 557/844/44 558/831/45 +f 564/841/47 555/845/42 563/846/40 +f 565/840/39 552/833/46 553/834/27 +f 563/846/40 556/837/48 562/847/84 +f 521/848/61 559/849/43 520/828/62 +f 515/850/66 560/851/85 521/848/61 +f 516/852/58 561/853/25 515/854/66 +f 531/855/56 562/856/84 516/852/58 +f 517/857/55 563/858/40 531/855/56 +f 518/859/65 564/860/47 517/857/55 +f 519/861/64 565/840/39 518/859/65 +f 520/828/62 566/862/38 519/861/64 +f 557/844/44 545/863/52 558/831/45 +f 555/845/42 549/835/51 548/838/49 +f 553/834/27 551/832/53 550/864/82 +f 560/865/85 561/866/25 557/844/44 +f 546/867/75 557/844/44 561/866/25 +f 562/847/84 556/837/48 561/868/25 +f 556/837/48 547/839/50 561/868/25 +f 551/869/53 580/870/19 550/864/82 +f 549/871/51 578/872/16 548/873/49 +f 546/874/75 575/875/17 545/876/52 +f 547/877/50 582/878/18 561/879/25 +f 561/880/25 576/881/28 546/874/75 +f 545/876/52 581/882/29 551/869/53 +f 550/864/82 579/883/56 549/871/51 +f 548/873/49 577/884/83 547/877/50 +f 585/598/40 571/606/48 584/885/84 +f 508/886/61 568/887/43 509/621/62 +f 514/888/66 567/889/85 508/886/61 +f 514/890/66 584/891/84 583/892/25 +f 326/893/56 584/891/84 513/894/58 +f 512/895/55 585/896/40 326/893/56 +f 511/897/65 586/898/47 512/895/55 +f 510/899/64 587/597/39 511/897/65 +f 509/621/62 588/900/38 510/899/64 +f 570/602/44 312/610/52 569/603/45 +f 573/599/41 309/607/49 572/600/42 +f 574/596/27 306/611/53 307/901/82 +f 567/902/85 583/903/25 570/602/44 +f 311/904/75 570/602/44 583/903/25 +f 584/885/84 571/606/48 583/905/25 +f 571/606/48 310/608/50 583/905/25 +f 306/906/53 594/907/19 307/901/82 +f 308/908/51 592/909/16 309/910/49 +f 311/911/75 589/912/17 312/913/52 +f 310/914/50 596/915/18 583/916/25 +f 583/917/25 590/918/28 311/911/75 +f 312/913/52 595/919/29 306/906/53 +f 307/901/82 593/920/56 308/908/51 +f 309/910/49 591/921/83 310/914/50 +f 651/922/73 650/923/44 637/924/74 +f 651/922/73 652/925/75 650/923/44 +f 651/926/73 643/927/76 644/928/48 +f 644/928/48 658/929/50 651/926/73 +f 645/930/42 641/931/77 646/932/41 +f 648/933/46 640/934/78 639/935/79 +f 649/936/45 637/924/74 650/923/44 +f 644/928/48 642/937/80 645/930/42 +f 646/932/41 640/934/78 647/938/27 +f 649/936/45 639/935/79 638/939/81 +f 657/940/49 646/932/41 656/941/51 +f 653/942/52 648/933/46 649/936/45 +f 656/941/51 647/938/27 655/943/82 +f 657/940/49 644/928/48 645/930/42 +f 653/942/52 650/923/44 652/925/75 +f 655/943/82 648/933/46 654/944/53 +f 659/945/83 657/946/49 660/947/16 +f 661/948/56 655/943/82 662/949/19 +f 663/950/29 653/951/52 664/952/17 +f 665/953/28 651/954/73 666/955/18 +f 666/956/18 658/957/50 659/945/83 +f 660/947/16 656/941/51 661/948/56 +f 662/949/19 654/944/53 663/950/29 +f 664/952/17 652/958/75 665/953/28 +f 669/959/17 681/960/75 668/961/28 +f 671/962/19 679/963/53 670/964/29 +f 673/965/16 677/966/51 672/967/56 +f 667/968/18 675/969/50 674/970/83 +f 668/961/28 682/971/25 667/972/18 +f 670/964/29 680/973/52 669/959/17 +f 672/967/56 678/974/82 671/962/19 +f 674/970/83 676/975/49 673/965/16 +f 678/974/82 685/976/46 679/963/53 +f 680/977/52 683/978/44 681/979/75 +f 676/980/49 689/981/48 688/982/42 +f 677/966/51 686/983/27 678/974/82 +f 679/963/53 684/984/45 680/977/52 +f 677/966/51 688/982/42 687/985/41 +f 685/976/46 695/986/43 684/984/45 +f 686/983/27 692/987/47 693/988/39 +f 689/981/48 691/989/40 688/982/42 +f 684/984/45 696/990/85 683/978/44 +f 685/976/46 693/988/39 694/991/38 +f 688/982/42 692/987/47 687/985/41 +f 689/981/48 675/992/50 682/993/25 +f 682/993/25 690/994/84 689/981/48 +f 682/995/25 681/979/75 683/978/44 +f 682/995/25 683/978/44 696/990/85 +f 691/996/40 701/997/69 692/987/47 +f 693/988/39 699/998/72 694/991/38 +f 682/999/25 703/1000/70 690/1001/84 +f 696/1002/85 704/1003/21 682/1004/25 +f 695/1005/43 697/1006/71 696/1002/85 +f 690/1001/84 702/1007/16 691/996/40 +f 692/987/47 700/1008/20 693/988/39 +f 694/991/38 698/1009/17 695/1005/43 +f 719/1010/92 705/1011/93 718/1012/94 +f 719/1010/92 718/1012/94 720/1013/95 +f 719/1014/92 712/1015/96 711/1016/97 +f 712/1015/96 719/1014/92 726/1017/98 +f 709/1018/99 713/1019/100 714/1020/101 +f 716/1021/102 708/1022/103 715/1023/24 +f 718/1012/94 706/1024/104 717/1025/105 +f 710/1026/106 712/1015/96 713/1019/100 +f 708/1022/103 714/1020/101 715/1023/24 +f 717/1025/105 707/1027/107 716/1021/102 +f 714/1020/101 725/1028/108 724/1029/109 +f 721/1030/110 716/1021/102 722/1031/111 +f 715/1023/24 724/1029/109 723/1032/112 +f 725/1028/108 712/1015/96 726/1017/98 +f 718/1012/94 721/1030/110 720/1013/95 +f 716/1021/102 723/1032/112 722/1031/111 +f 725/1033/108 727/1034/56 728/1035/16 +f 723/1032/112 729/1036/83 730/1037/18 +f 721/1038/110 731/1039/28 732/1040/17 +f 719/1041/92 733/1042/29 734/1043/19 +f 726/1044/98 734/1045/19 727/1034/56 +f 724/1029/109 728/1035/16 729/1036/83 +f 722/1031/111 730/1037/18 731/1039/28 +f 720/1046/95 732/1040/17 733/1042/29 +f 749/1047/95 737/1048/17 736/1049/29 +f 747/1050/111 739/1051/18 738/1052/28 +f 745/1053/109 741/1054/16 740/1055/83 +f 743/1056/98 735/1057/19 742/1058/56 +f 750/1059/26 736/1049/29 735/1060/19 +f 748/1061/110 738/1052/28 737/1048/17 +f 746/1062/112 740/1055/83 739/1051/18 +f 744/1063/108 742/1058/56 741/1054/16 +f 753/1064/102 746/1062/112 747/1050/111 +f 751/1065/94 748/1066/110 749/1067/95 +f 744/1068/108 757/1069/96 743/1070/98 +f 754/1071/24 745/1053/109 746/1062/112 +f 752/1072/105 747/1050/111 748/1066/110 +f 745/1053/109 756/1073/100 744/1068/108 +f 763/1074/113 753/1064/102 752/1072/105 +f 761/1075/114 755/1076/101 754/1071/24 +f 759/1077/115 757/1069/96 756/1073/100 +f 751/1065/94 763/1074/113 752/1072/105 +f 753/1064/102 761/1075/114 754/1071/24 +f 760/1078/116 756/1073/100 755/1076/101 +f 757/1069/96 750/1079/26 743/1070/98 +f 750/1079/26 757/1069/96 758/1080/117 +f 750/1081/26 751/1065/94 749/1067/95 +f 750/1081/26 764/1082/118 751/1065/94 +f 769/1083/69 759/1084/115 760/1078/116 +f 767/1085/72 761/1075/114 762/1086/119 +f 771/1087/70 750/1088/26 758/1089/117 +f 772/1090/21 764/1091/118 750/1092/26 +f 765/1093/71 763/1094/113 764/1091/118 +f 770/1095/16 758/1089/117 759/1084/115 +f 768/1096/20 760/1078/116 761/1075/114 +f 766/1097/17 762/1086/119 763/1094/113 +f 787/1098/92 773/1099/93 786/1100/94 +f 787/1098/92 786/1100/94 788/1101/95 +f 787/1102/92 780/1103/96 779/1104/97 +f 780/1103/96 787/1102/92 794/1105/98 +f 777/1106/99 781/1107/100 782/1108/101 +f 784/1109/102 776/1110/103 783/1111/24 +f 786/1100/94 774/1112/104 785/1113/105 +f 778/1114/106 780/1103/96 781/1107/100 +f 776/1110/103 782/1108/101 783/1111/24 +f 785/1113/105 775/1115/107 784/1109/102 +f 782/1108/101 793/1116/108 792/1117/109 +f 789/1118/110 784/1109/102 790/1119/111 +f 783/1111/24 792/1117/109 791/1120/112 +f 793/1116/108 780/1103/96 794/1105/98 +f 786/1100/94 789/1118/110 788/1101/95 +f 784/1109/102 791/1120/112 790/1119/111 +f 793/1121/108 795/1122/56 796/1123/16 +f 791/1120/112 797/1124/83 798/1125/18 +f 789/1126/110 799/1127/28 800/1128/17 +f 787/1129/92 801/1130/29 802/1131/19 +f 794/1132/98 802/1133/19 795/1122/56 +f 792/1117/109 796/1123/16 797/1124/83 +f 790/1119/111 798/1125/18 799/1127/28 +f 788/1134/95 800/1128/17 801/1130/29 +f 817/1135/95 805/1136/17 804/1137/29 +f 815/1138/111 807/1139/18 806/1140/28 +f 813/1141/109 809/1142/16 808/1143/83 +f 811/1144/98 803/1145/19 810/1146/56 +f 818/1147/26 804/1137/29 803/1148/19 +f 816/1149/110 806/1140/28 805/1136/17 +f 814/1150/112 808/1143/83 807/1139/18 +f 812/1151/108 810/1146/56 809/1142/16 +f 821/1152/102 814/1150/112 815/1138/111 +f 819/1153/94 816/1154/110 817/1155/95 +f 812/1156/108 825/1157/96 811/1158/98 +f 822/1159/24 813/1141/109 814/1150/112 +f 820/1160/105 815/1138/111 816/1154/110 +f 813/1141/109 824/1161/100 812/1156/108 +f 831/1162/113 821/1152/102 820/1160/105 +f 829/1163/114 823/1164/101 822/1159/24 +f 827/1165/115 825/1157/96 824/1161/100 +f 819/1153/94 831/1162/113 820/1160/105 +f 821/1152/102 829/1163/114 822/1159/24 +f 828/1166/116 824/1161/100 823/1164/101 +f 825/1157/96 818/1167/26 811/1158/98 +f 818/1167/26 825/1157/96 826/1168/117 +f 818/1169/26 819/1153/94 817/1155/95 +f 818/1169/26 832/1170/118 819/1153/94 +f 837/1171/69 827/1172/115 828/1166/116 +f 835/1173/72 829/1163/114 830/1174/119 +f 839/1175/70 818/1176/26 826/1177/117 +f 840/1178/21 832/1179/118 818/1180/26 +f 833/1181/71 831/1182/113 832/1179/118 +f 838/1183/16 826/1177/117 827/1172/115 +f 836/1184/20 828/1166/116 829/1163/114 +f 834/1185/17 830/1174/119 831/1182/113 +f 129/545/30 141/558/30 140/546/21 +f 136/548/31 148/559/31 147/549/32 +f 126/551/33 138/561/33 137/552/17 +f 133/554/34 145/563/34 144/555/35 +f 130/557/36 142/565/36 141/558/30 +f 125/553/17 137/552/17 148/559/31 +f 127/560/37 139/566/37 138/561/33 +f 134/562/20 146/567/20 145/563/34 +f 131/564/16 143/1186/16 142/565/36 +f 128/547/21 140/546/21 139/566/37 +f 135/550/32 147/549/32 146/567/20 +f 132/556/35 144/555/35 143/568/16 +f 165/570/36 153/591/36 154/571/16 +f 163/573/21 162/593/37 150/574/37 +f 169/576/20 157/594/20 158/577/32 +f 166/579/16 154/1187/16 155/580/35 +f 163/573/21 151/575/21 152/582/30 +f 170/578/32 158/577/32 159/584/31 +f 172/586/17 160/592/17 149/587/33 +f 167/581/35 155/580/35 156/589/34 +f 164/583/30 152/582/30 153/591/36 +f 171/585/31 159/584/31 160/592/17 +f 161/588/33 149/587/33 150/574/37 +f 168/590/34 156/589/34 157/594/20 +f 588/595/38 305/604/46 574/596/27 +f 585/598/40 586/605/47 573/599/41 +f 568/601/43 567/902/85 570/602/44 +f 588/595/38 568/601/43 569/603/45 +f 587/597/39 574/596/27 573/599/41 +f 571/606/48 572/600/42 309/607/49 +f 574/596/27 307/901/82 308/609/51 +f 305/604/46 569/603/45 312/610/52 +f 334/619/28 507/788/91 508/620/61 +f 332/622/63 333/785/90 510/623/64 +f 330/617/59 513/616/58 514/625/66 +f 315/627/19 326/780/56 327/628/60 +f 317/630/20 324/781/88 325/631/57 +f 319/633/18 322/782/89 323/634/68 +f 403/636/16 404/647/69 396/637/69 +f 401/639/21 402/649/70 394/640/70 +f 399/642/17 400/651/71 392/643/71 +f 406/645/72 399/642/17 391/644/17 +f 404/647/69 405/652/20 397/648/20 +f 402/649/70 403/1188/16 395/650/16 +f 400/651/71 401/639/21 393/641/21 +f 405/652/20 406/645/72 398/646/72 +f 419/653/16 420/664/69 412/654/69 +f 417/656/21 418/666/70 410/657/70 +f 415/659/17 416/668/71 408/660/71 +f 422/662/72 415/659/17 407/661/17 +f 420/664/69 421/669/20 413/665/20 +f 418/666/70 419/1189/16 411/667/16 +f 416/668/71 417/656/21 409/658/21 +f 421/669/20 422/662/72 414/663/72 +f 435/670/16 436/681/69 428/671/69 +f 433/673/21 434/683/70 426/674/70 +f 431/676/17 432/685/71 424/677/71 +f 438/679/72 431/676/17 423/678/17 +f 436/681/69 437/686/20 429/682/20 +f 434/683/70 435/1190/16 427/684/16 +f 432/685/71 433/673/21 425/675/21 +f 437/686/20 438/679/72 430/680/72 +f 447/695/42 444/702/80 443/696/77 +f 450/698/46 449/703/27 442/699/78 +f 451/701/45 440/704/81 439/689/74 +f 446/693/48 445/692/76 444/702/80 +f 448/697/41 443/696/77 442/699/78 +f 451/701/45 450/698/46 441/700/79 +f 459/705/49 447/695/42 448/697/41 +f 455/707/52 456/709/53 450/698/46 +f 458/706/51 448/697/41 449/703/27 +f 459/705/49 460/694/50 446/693/48 +f 455/707/52 451/701/45 452/688/44 +f 457/708/82 449/703/27 450/698/46 +f 461/710/83 460/722/50 459/711/49 +f 463/713/56 458/706/51 457/708/82 +f 465/715/29 456/709/53 455/716/52 +f 467/718/28 454/723/75 453/719/73 +f 468/721/18 453/1191/73 460/722/50 +f 462/712/16 459/711/49 458/706/51 +f 464/714/19 457/708/82 456/709/53 +f 466/717/17 455/716/52 454/723/75 +f 471/724/17 482/738/52 483/725/75 +f 473/727/19 480/739/82 481/728/53 +f 475/730/16 478/740/49 479/731/51 +f 469/733/18 484/1192/25 477/734/50 +f 470/726/28 483/725/75 484/736/25 +f 472/729/29 481/728/53 482/738/52 +f 474/732/56 479/731/51 480/739/82 +f 476/735/83 477/734/50 478/740/49 +f 480/739/82 488/748/27 487/741/46 +f 482/742/52 486/749/45 485/743/44 +f 478/745/49 477/758/50 491/746/48 +f 479/731/51 489/750/41 488/748/27 +f 481/728/53 487/741/46 486/749/45 +f 479/731/51 478/745/49 490/747/42 +f 487/741/46 496/756/38 497/751/43 +f 489/750/41 494/757/47 495/752/39 +f 490/747/42 491/746/48 492/753/84 +f 485/743/44 486/749/45 497/751/43 +f 487/741/46 488/748/27 495/752/39 +f 490/747/42 493/754/40 494/757/47 +f 493/761/40 504/772/16 503/762/69 +f 495/752/39 502/773/20 501/763/72 +f 484/764/25 506/1193/21 505/765/70 +f 498/767/85 499/771/71 506/768/21 +f 497/770/43 500/774/17 499/771/71 +f 492/766/84 505/765/70 504/772/16 +f 494/757/47 503/762/69 502/773/20 +f 496/756/38 501/763/72 500/774/17 +f 313/775/21 328/1194/87 321/776/86 +f 314/629/26 327/628/60 328/778/87 +f 316/632/27 325/631/57 326/780/56 +f 318/635/24 323/634/68 324/781/88 +f 320/777/25 321/776/86 322/782/89 +f 324/783/88 332/622/63 331/612/54 +f 321/784/86 507/788/91 334/619/28 +f 324/783/88 323/789/68 333/785/90 +f 328/786/87 327/618/60 330/617/59 +f 328/787/87 329/790/67 507/788/91 +f 322/782/89 334/619/28 333/785/90 +f 331/612/54 332/622/63 511/624/65 +f 334/619/28 509/621/62 510/623/64 +f 329/790/67 514/1195/66 508/620/61 +f 528/791/67 515/1196/66 521/792/61 +f 523/794/28 520/828/62 519/795/64 +f 526/797/54 525/807/63 518/798/65 +f 534/800/68 535/808/89 523/794/28 +f 529/801/87 528/791/67 522/793/91 +f 530/803/60 527/826/59 528/804/67 +f 533/806/88 534/800/68 524/796/90 +f 536/802/86 522/793/91 523/794/28 +f 533/806/88 525/807/63 526/797/54 +f 537/810/25 536/822/86 535/808/89 +f 539/812/24 534/823/68 533/813/88 +f 541/815/27 532/824/57 531/816/56 +f 543/818/26 530/825/60 529/819/87 +f 544/821/21 529/1197/87 536/822/86 +f 538/811/18 535/808/89 534/823/68 +f 540/814/20 533/813/88 532/824/57 +f 542/817/19 531/816/56 530/825/60 +f 527/826/59 516/830/58 515/827/66 +f 525/807/63 524/796/90 519/795/64 +f 522/793/91 521/792/61 520/828/62 +f 558/831/45 545/863/52 551/832/53 +f 553/834/27 550/864/82 549/835/51 +f 556/837/48 555/845/42 548/838/49 +f 565/840/39 553/834/27 554/836/41 +f 566/842/38 559/843/43 558/831/45 +f 559/843/43 560/865/85 557/844/44 +f 564/841/47 554/836/41 555/845/42 +f 565/840/39 566/842/38 552/833/46 +f 563/846/40 555/845/42 556/837/48 +f 521/848/61 560/851/85 559/849/43 +f 515/850/66 561/1198/25 560/851/85 +f 516/852/58 562/856/84 561/853/25 +f 531/855/56 563/858/40 562/856/84 +f 517/857/55 564/860/47 563/858/40 +f 518/859/65 565/840/39 564/860/47 +f 519/861/64 566/862/38 565/840/39 +f 520/828/62 559/849/43 566/862/38 +f 557/844/44 546/867/75 545/863/52 +f 555/845/42 554/836/41 549/835/51 +f 553/834/27 552/833/46 551/832/53 +f 551/869/53 581/882/29 580/870/19 +f 549/871/51 579/883/56 578/872/16 +f 546/874/75 576/881/28 575/875/17 +f 547/877/50 577/884/83 582/878/18 +f 561/880/25 582/1199/18 576/881/28 +f 545/876/52 575/875/17 581/882/29 +f 550/864/82 580/870/19 579/883/56 +f 548/873/49 578/872/16 577/884/83 +f 585/598/40 572/600/42 571/606/48 +f 508/886/61 567/889/85 568/887/43 +f 514/888/66 583/1200/25 567/889/85 +f 514/890/66 513/894/58 584/891/84 +f 326/893/56 585/896/40 584/891/84 +f 512/895/55 586/898/47 585/896/40 +f 511/897/65 587/597/39 586/898/47 +f 510/899/64 588/900/38 587/597/39 +f 509/621/62 568/887/43 588/900/38 +f 570/602/44 311/904/75 312/610/52 +f 573/599/41 308/609/51 309/607/49 +f 574/596/27 305/604/46 306/611/53 +f 306/906/53 595/919/29 594/907/19 +f 308/908/51 593/920/56 592/909/16 +f 311/911/75 590/918/28 589/912/17 +f 310/914/50 591/921/83 596/915/18 +f 583/917/25 596/1201/18 590/918/28 +f 312/913/52 589/912/17 595/919/29 +f 307/901/82 594/907/19 593/920/56 +f 309/910/49 592/909/16 591/921/83 +f 645/930/42 642/937/80 641/931/77 +f 648/933/46 647/938/27 640/934/78 +f 649/936/45 638/939/81 637/924/74 +f 644/928/48 643/927/76 642/937/80 +f 646/932/41 641/931/77 640/934/78 +f 649/936/45 648/933/46 639/935/79 +f 657/940/49 645/930/42 646/932/41 +f 653/942/52 654/944/53 648/933/46 +f 656/941/51 646/932/41 647/938/27 +f 657/940/49 658/929/50 644/928/48 +f 653/942/52 649/936/45 650/923/44 +f 655/943/82 647/938/27 648/933/46 +f 659/945/83 658/957/50 657/946/49 +f 661/948/56 656/941/51 655/943/82 +f 663/950/29 654/944/53 653/951/52 +f 665/953/28 652/958/75 651/954/73 +f 666/956/18 651/1202/73 658/957/50 +f 660/947/16 657/946/49 656/941/51 +f 662/949/19 655/943/82 654/944/53 +f 664/952/17 653/951/52 652/958/75 +f 669/959/17 680/973/52 681/960/75 +f 671/962/19 678/974/82 679/963/53 +f 673/965/16 676/975/49 677/966/51 +f 667/968/18 682/1203/25 675/969/50 +f 668/961/28 681/960/75 682/971/25 +f 670/964/29 679/963/53 680/973/52 +f 672/967/56 677/966/51 678/974/82 +f 674/970/83 675/969/50 676/975/49 +f 678/974/82 686/983/27 685/976/46 +f 680/977/52 684/984/45 683/978/44 +f 676/980/49 675/992/50 689/981/48 +f 677/966/51 687/985/41 686/983/27 +f 679/963/53 685/976/46 684/984/45 +f 677/966/51 676/980/49 688/982/42 +f 685/976/46 694/991/38 695/986/43 +f 686/983/27 687/985/41 692/987/47 +f 689/981/48 690/994/84 691/989/40 +f 684/984/45 695/986/43 696/990/85 +f 685/976/46 686/983/27 693/988/39 +f 688/982/42 691/989/40 692/987/47 +f 691/996/40 702/1007/16 701/997/69 +f 693/988/39 700/1008/20 699/998/72 +f 682/999/25 704/1204/21 703/1000/70 +f 696/1002/85 697/1006/71 704/1003/21 +f 695/1005/43 698/1009/17 697/1006/71 +f 690/1001/84 703/1000/70 702/1007/16 +f 692/987/47 701/997/69 700/1008/20 +f 694/991/38 699/998/72 698/1009/17 +f 709/1018/99 710/1026/106 713/1019/100 +f 716/1021/102 707/1027/107 708/1022/103 +f 718/1012/94 705/1011/93 706/1024/104 +f 710/1026/106 711/1016/97 712/1015/96 +f 708/1022/103 709/1018/99 714/1020/101 +f 717/1025/105 706/1024/104 707/1027/107 +f 714/1020/101 713/1019/100 725/1028/108 +f 721/1030/110 717/1025/105 716/1021/102 +f 715/1023/24 714/1020/101 724/1029/109 +f 725/1028/108 713/1019/100 712/1015/96 +f 718/1012/94 717/1025/105 721/1030/110 +f 716/1021/102 715/1023/24 723/1032/112 +f 725/1033/108 726/1044/98 727/1034/56 +f 723/1032/112 724/1029/109 729/1036/83 +f 721/1038/110 722/1031/111 731/1039/28 +f 719/1041/92 720/1046/95 733/1042/29 +f 726/1044/98 719/1205/92 734/1045/19 +f 724/1029/109 725/1033/108 728/1035/16 +f 722/1031/111 723/1032/112 730/1037/18 +f 720/1046/95 721/1038/110 732/1040/17 +f 749/1047/95 748/1061/110 737/1048/17 +f 747/1050/111 746/1062/112 739/1051/18 +f 745/1053/109 744/1063/108 741/1054/16 +f 743/1056/98 750/1206/26 735/1057/19 +f 750/1059/26 749/1047/95 736/1049/29 +f 748/1061/110 747/1050/111 738/1052/28 +f 746/1062/112 745/1053/109 740/1055/83 +f 744/1063/108 743/1056/98 742/1058/56 +f 753/1064/102 754/1071/24 746/1062/112 +f 751/1065/94 752/1072/105 748/1066/110 +f 744/1068/108 756/1073/100 757/1069/96 +f 754/1071/24 755/1076/101 745/1053/109 +f 752/1072/105 753/1064/102 747/1050/111 +f 745/1053/109 755/1076/101 756/1073/100 +f 763/1074/113 762/1086/119 753/1064/102 +f 761/1075/114 760/1078/116 755/1076/101 +f 759/1077/115 758/1080/117 757/1069/96 +f 751/1065/94 764/1082/118 763/1074/113 +f 753/1064/102 762/1086/119 761/1075/114 +f 760/1078/116 759/1077/115 756/1073/100 +f 769/1083/69 770/1095/16 759/1084/115 +f 767/1085/72 768/1096/20 761/1075/114 +f 771/1087/70 772/1207/21 750/1088/26 +f 772/1090/21 765/1093/71 764/1091/118 +f 765/1093/71 766/1097/17 763/1094/113 +f 770/1095/16 771/1087/70 758/1089/117 +f 768/1096/20 769/1083/69 760/1078/116 +f 766/1097/17 767/1085/72 762/1086/119 +f 777/1106/99 778/1114/106 781/1107/100 +f 784/1109/102 775/1115/107 776/1110/103 +f 786/1100/94 773/1099/93 774/1112/104 +f 778/1114/106 779/1104/97 780/1103/96 +f 776/1110/103 777/1106/99 782/1108/101 +f 785/1113/105 774/1112/104 775/1115/107 +f 782/1108/101 781/1107/100 793/1116/108 +f 789/1118/110 785/1113/105 784/1109/102 +f 783/1111/24 782/1108/101 792/1117/109 +f 793/1116/108 781/1107/100 780/1103/96 +f 786/1100/94 785/1113/105 789/1118/110 +f 784/1109/102 783/1111/24 791/1120/112 +f 793/1121/108 794/1132/98 795/1122/56 +f 791/1120/112 792/1117/109 797/1124/83 +f 789/1126/110 790/1119/111 799/1127/28 +f 787/1129/92 788/1134/95 801/1130/29 +f 794/1132/98 787/1208/92 802/1133/19 +f 792/1117/109 793/1121/108 796/1123/16 +f 790/1119/111 791/1120/112 798/1125/18 +f 788/1134/95 789/1126/110 800/1128/17 +f 817/1135/95 816/1149/110 805/1136/17 +f 815/1138/111 814/1150/112 807/1139/18 +f 813/1141/109 812/1151/108 809/1142/16 +f 811/1144/98 818/1209/26 803/1145/19 +f 818/1147/26 817/1135/95 804/1137/29 +f 816/1149/110 815/1138/111 806/1140/28 +f 814/1150/112 813/1141/109 808/1143/83 +f 812/1151/108 811/1144/98 810/1146/56 +f 821/1152/102 822/1159/24 814/1150/112 +f 819/1153/94 820/1160/105 816/1154/110 +f 812/1156/108 824/1161/100 825/1157/96 +f 822/1159/24 823/1164/101 813/1141/109 +f 820/1160/105 821/1152/102 815/1138/111 +f 813/1141/109 823/1164/101 824/1161/100 +f 831/1162/113 830/1174/119 821/1152/102 +f 829/1163/114 828/1166/116 823/1164/101 +f 827/1165/115 826/1168/117 825/1157/96 +f 819/1153/94 832/1170/118 831/1162/113 +f 821/1152/102 830/1174/119 829/1163/114 +f 828/1166/116 827/1165/115 824/1161/100 +f 837/1171/69 838/1183/16 827/1172/115 +f 835/1173/72 836/1184/20 829/1163/114 +f 839/1175/70 840/1210/21 818/1176/26 +f 840/1178/21 833/1181/71 832/1179/118 +f 833/1181/71 834/1185/17 831/1182/113 +f 838/1183/16 839/1175/70 826/1177/117 +f 836/1184/20 837/1171/69 828/1166/116 +f 834/1185/17 835/1173/72 830/1174/119 diff --git a/src/main/resources/assets/hbm/models/machines/radar_large.obj b/src/main/resources/assets/hbm/models/machines/radar_large.obj new file mode 100644 index 000000000..0e7e4da41 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/radar_large.obj @@ -0,0 +1,2479 @@ +# Blender v2.79 (sub 0) OBJ File: 'radar_large.blend' +# www.blender.org +o Dish +v -0.218750 5.500000 0.500000 +v 0.218750 5.500000 0.500000 +v -0.218750 5.500000 -0.500000 +v 0.218750 5.500000 -0.500000 +v 0.500000 5.500000 0.218750 +v 0.500000 5.500000 -0.218750 +v -0.500000 5.500000 0.218750 +v -0.500000 5.500000 -0.218750 +v -0.218750 7.000000 0.500000 +v 0.218750 7.000000 0.500000 +v -0.218750 7.000000 -0.500000 +v 0.218750 7.000000 -0.500000 +v 0.500000 7.000000 0.218750 +v 0.500000 7.000000 -0.218750 +v -0.500000 7.000000 0.218750 +v -0.500000 7.000000 -0.218750 +v -0.500000 7.000000 0.500000 +v -0.500000 6.500000 0.500000 +v -0.500000 7.000000 -0.500000 +v -0.500000 6.500000 -0.500000 +v -1.000000 7.000000 -0.500000 +v -1.000000 7.000000 0.500000 +v -1.000000 6.500000 0.500000 +v -1.000000 6.500000 -0.500000 +v -0.125000 7.375000 2.500000 +v -0.125000 7.125000 2.500000 +v -0.375000 7.375000 2.500000 +v -0.375000 7.125000 2.500000 +v 1.000000 7.000000 0.500000 +v 1.000000 6.500000 0.500000 +v 1.000000 7.000000 -0.500000 +v 1.000000 6.500000 -0.500000 +v 0.500000 7.000000 -0.500000 +v 0.500000 7.000000 0.500000 +v 0.500000 6.500000 0.500000 +v 0.500000 6.500000 -0.500000 +v 0.375000 7.375000 2.500000 +v 0.375000 7.125000 2.500000 +v 0.125000 7.375000 2.500000 +v 0.125000 7.125000 2.500000 +v -1.000000 7.250000 2.500000 +v 1.000000 7.250000 2.500000 +v -1.000000 7.000000 2.500000 +v 1.000000 7.000000 2.500000 +v -1.000000 7.000000 2.625000 +v -1.000000 7.250000 2.625000 +v 1.000000 7.250000 2.625000 +v 1.000000 7.000000 2.625000 +v -0.250000 7.125000 2.375000 +v 0.250000 7.125000 2.375000 +v -0.250000 7.375000 2.375000 +v 0.250000 7.375000 2.375000 +v -0.250000 7.375000 2.125000 +v -0.250000 7.125000 2.125000 +v 0.250000 7.125000 2.125000 +v 0.250000 7.375000 2.125000 +v -1.000000 7.500000 -1.500000 +v 1.000000 7.500000 -1.500000 +v -1.000000 9.500000 -1.500000 +v 1.000000 9.500000 -1.500000 +v -2.000000 7.500000 -1.250000 +v 2.000000 7.500000 -1.250000 +v -2.000000 9.500000 -1.250000 +v 2.000000 9.500000 -1.250000 +v -3.000000 7.500000 -0.500000 +v 3.000000 7.500000 -0.500000 +v -3.000000 9.500000 -0.500000 +v 3.000000 9.500000 -0.500000 +v -1.000000 7.000000 -1.250000 +v 1.000000 7.000000 -1.250000 +v -1.000000 10.000000 -1.250000 +v 1.000000 10.000000 -1.250000 +v -2.000000 7.000000 -1.000000 +v 2.000000 7.000000 -1.000000 +v -2.000000 10.000000 -1.000000 +v 2.000000 10.000000 -1.000000 +v -1.031250 7.500000 -1.468750 +v -0.968750 7.500000 -1.468750 +v -1.031250 7.500000 -1.531250 +v -0.968750 7.500000 -1.531250 +v -1.031250 9.500000 -1.468750 +v -0.968750 9.500000 -1.468750 +v -1.031250 9.500000 -1.531250 +v -0.968750 9.500000 -1.531250 +v -1.031250 10.000000 -1.281250 +v -1.031250 10.000000 -1.218750 +v -0.968750 10.000000 -1.218750 +v -0.968750 10.000000 -1.281250 +v -1.031250 7.000000 -1.281250 +v -1.031250 7.000000 -1.218750 +v -0.968750 7.000000 -1.218750 +v -0.968750 7.000000 -1.281250 +v -0.031250 7.500000 -1.468750 +v 0.031250 7.500000 -1.468750 +v -0.031250 7.500000 -1.531250 +v 0.031250 7.500000 -1.531250 +v -0.031250 9.500000 -1.468750 +v 0.031250 9.500000 -1.468750 +v -0.031250 9.500000 -1.531250 +v 0.031250 9.500000 -1.531250 +v -0.031250 10.000000 -1.281250 +v -0.031250 10.000000 -1.218750 +v 0.031250 10.000000 -1.218750 +v 0.031250 10.000000 -1.281250 +v -0.031250 7.000000 -1.281250 +v -0.031250 7.000000 -1.218750 +v 0.031250 7.000000 -1.218750 +v 0.031250 7.000000 -1.281250 +v 0.968750 7.500000 -1.468750 +v 1.031250 7.500000 -1.468750 +v 0.968750 7.500000 -1.531250 +v 1.031250 7.500000 -1.531250 +v 0.968750 9.500000 -1.468750 +v 1.031250 9.500000 -1.468750 +v 0.968750 9.500000 -1.531250 +v 1.031250 9.500000 -1.531250 +v 0.968750 10.000000 -1.281250 +v 0.968750 10.000000 -1.218750 +v 1.031250 10.000000 -1.218750 +v 1.031250 10.000000 -1.281250 +v 0.968750 7.000000 -1.281250 +v 0.968750 7.000000 -1.218750 +v 1.031250 7.000000 -1.218750 +v 1.031250 7.000000 -1.281250 +v -2.031250 7.500000 -1.218750 +v -1.968750 7.500000 -1.218750 +v -2.031250 7.500000 -1.281250 +v -1.968750 7.500000 -1.281250 +v -2.031250 9.500000 -1.218750 +v -1.968750 9.500000 -1.218750 +v -2.031250 9.500000 -1.281250 +v -1.968750 9.500000 -1.281250 +v -2.031250 10.000000 -1.031250 +v -2.031250 10.000000 -0.968750 +v -1.968750 10.000000 -0.968750 +v -1.968750 10.000000 -1.031250 +v -2.031250 7.000000 -1.031250 +v -2.031250 7.000000 -0.968750 +v -1.968750 7.000000 -0.968750 +v -1.968750 7.000000 -1.031250 +v 1.968750 7.500000 -1.218750 +v 2.031250 7.500000 -1.218750 +v 1.968750 7.500000 -1.281250 +v 2.031250 7.500000 -1.281250 +v 1.968750 9.500000 -1.218750 +v 2.031250 9.500000 -1.218750 +v 1.968750 9.500000 -1.281250 +v 2.031250 9.500000 -1.281250 +v 1.968750 10.000000 -1.031250 +v 1.968750 10.000000 -0.968750 +v 2.031250 10.000000 -0.968750 +v 2.031250 10.000000 -1.031250 +v 1.968750 7.000000 -1.031250 +v 1.968750 7.000000 -0.968750 +v 2.031250 7.000000 -0.968750 +v 2.031250 7.000000 -1.031250 +v -3.031250 7.500000 -0.468750 +v -2.968750 7.500000 -0.468750 +v -3.031250 7.500000 -0.531250 +v -2.968750 7.500000 -0.531250 +v -3.031250 9.500000 -0.468750 +v -2.968750 9.500000 -0.468750 +v -3.031250 9.500000 -0.531250 +v -2.968750 9.500000 -0.531250 +v 2.968750 7.500000 -0.468750 +v 3.031250 7.500000 -0.468750 +v 2.968750 7.500000 -0.531250 +v 3.031250 7.500000 -0.531250 +v 2.968750 9.500000 -0.468750 +v 3.031250 9.500000 -0.468750 +v 2.968750 9.500000 -0.531250 +v 3.031250 9.500000 -0.531250 +v -0.625000 6.750000 -1.750000 +v -0.625000 7.000000 -1.750000 +v -0.875000 6.750000 -1.750000 +v -0.875000 7.000000 -1.750000 +v 0.875000 6.750000 -1.750000 +v 0.875000 7.000000 -1.750000 +v 0.625000 6.750000 -1.750000 +v 0.625000 7.000000 -1.750000 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 8.531250 -2.281250 +v -1.000000 8.468750 -2.281250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 8.531250 -2.281250 +v 1.000000 8.468750 -2.281250 +v -2.000000 8.531250 -2.031250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 8.468750 -2.031250 +v 2.000000 8.531250 -2.031250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 8.468750 -2.031250 +v 3.000000 8.531250 -1.281250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 8.468750 -1.281250 +v -3.000000 8.531250 -1.281250 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 8.468750 -1.281250 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 9.500000 -0.531250 +v -3.000000 9.437500 -0.531250 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 7.562500 -0.531250 +v -3.000000 7.500000 -0.531250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 9.500000 -1.281250 +v -2.000000 9.437500 -1.281250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 7.562500 -1.281250 +v -2.000000 7.500000 -1.281250 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 9.500000 -1.531250 +v -1.000000 9.437500 -1.531250 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 7.562500 -1.531250 +v -1.000000 7.500000 -1.531250 +v 0.000000 8.531250 -2.218750 +v 0.000000 8.468750 -2.218750 +v 0.000000 9.500000 -1.531250 +v 0.000000 9.437500 -1.531250 +v 0.000000 8.531250 -2.218750 +v 0.000000 8.468750 -2.218750 +v 0.000000 7.562500 -1.531250 +v 0.000000 7.500000 -1.531250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 9.500000 -1.531250 +v 1.000000 9.437500 -1.531250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 7.562500 -1.531250 +v 1.000000 7.500000 -1.531250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 9.500000 -1.281250 +v 2.000000 9.437500 -1.281250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 7.562500 -1.281250 +v 2.000000 7.500000 -1.281250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 9.500000 -0.531250 +v 3.000000 9.437500 -0.531250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 7.562500 -0.531250 +v 3.000000 7.500000 -0.531250 +v 0.816250 7.000000 -1.687500 +v 0.878750 7.000000 -1.687500 +v 0.816250 7.000000 -1.750000 +v 0.878750 7.000000 -1.750000 +v 0.816250 8.500000 -2.218750 +v 0.878750 8.500000 -2.218750 +v 0.816250 8.500000 -2.281250 +v 0.878750 8.500000 -2.281250 +v -0.683750 7.000000 -1.687500 +v -0.621250 7.000000 -1.687500 +v -0.683750 7.000000 -1.750000 +v -0.621250 7.000000 -1.750000 +v -0.683750 8.500000 -2.218750 +v -0.621250 8.500000 -2.218750 +v -0.683750 8.500000 -2.281250 +v -0.621250 8.500000 -2.281250 +v 0.628750 7.000000 -1.687500 +v 0.691250 7.000000 -1.687500 +v 0.628750 7.000000 -1.750000 +v 0.691250 7.000000 -1.750000 +v 0.628750 8.500000 -2.218750 +v 0.691250 8.500000 -2.218750 +v 0.628750 8.500000 -2.281250 +v 0.691250 8.500000 -2.281250 +v -0.871250 7.000000 -1.687500 +v -0.808750 7.000000 -1.687500 +v -0.871250 7.000000 -1.750000 +v -0.808750 7.000000 -1.750000 +v -0.871250 8.500000 -2.218750 +v -0.808750 8.500000 -2.218750 +v -0.871250 8.500000 -2.281250 +v -0.808750 8.500000 -2.281250 +v -0.125000 7.249850 2.450611 +v 0.125000 7.249850 2.450611 +v -0.125000 7.491331 2.515315 +v 0.125000 7.491331 2.515315 +v -0.125000 7.991632 1.614094 +v -0.125000 7.267187 1.419980 +v 0.125000 7.267187 1.419980 +v 0.125000 7.991632 1.614094 +v -0.218750 7.375000 2.312500 +v 0.218750 7.375000 2.312500 +v -0.218750 7.375000 2.187500 +v 0.218750 7.375000 2.187500 +v 0.218750 7.562500 2.312500 +v -0.218750 7.562500 2.312500 +v 0.218750 7.562500 2.187500 +v -0.218750 7.562500 2.187500 +v -1.000000 7.500000 -1.500000 +v 1.000000 7.500000 -1.500000 +v -1.000000 9.500000 -1.500000 +v 1.000000 9.500000 -1.500000 +v -2.000000 7.500000 -1.250000 +v 2.000000 7.500000 -1.250000 +v -2.000000 9.500000 -1.250000 +v 2.000000 9.500000 -1.250000 +v -3.000000 7.500000 -0.500000 +v 3.000000 7.500000 -0.500000 +v -3.000000 9.500000 -0.500000 +v 3.000000 9.500000 -0.500000 +v -1.000000 7.000000 -1.250000 +v 1.000000 7.000000 -1.250000 +v -1.000000 10.000000 -1.250000 +v 1.000000 10.000000 -1.250000 +v -2.000000 7.000000 -1.000000 +v 2.000000 7.000000 -1.000000 +v -2.000000 10.000000 -1.000000 +v 2.000000 10.000000 -1.000000 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 9.500000 -0.531250 +v -3.000000 9.437500 -0.531250 +v -3.000000 8.531250 -1.218750 +v -3.000000 8.468750 -1.218750 +v -3.000000 7.562500 -0.531250 +v -3.000000 7.500000 -0.531250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 9.500000 -1.281250 +v -2.000000 9.437500 -1.281250 +v -2.000000 8.531250 -1.968750 +v -2.000000 8.468750 -1.968750 +v -2.000000 7.562500 -1.281250 +v -2.000000 7.500000 -1.281250 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 9.500000 -1.531250 +v -1.000000 9.437500 -1.531250 +v -1.000000 8.531250 -2.218750 +v -1.000000 8.468750 -2.218750 +v -1.000000 7.562500 -1.531250 +v -1.000000 7.500000 -1.531250 +v 0.000000 8.531250 -2.218750 +v 0.000000 8.468750 -2.218750 +v 0.000000 9.500000 -1.531250 +v 0.000000 9.437500 -1.531250 +v 0.000000 8.531250 -2.218750 +v 0.000000 8.468750 -2.218750 +v 0.000000 7.562500 -1.531250 +v 0.000000 7.500000 -1.531250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 9.500000 -1.531250 +v 1.000000 9.437500 -1.531250 +v 1.000000 8.531250 -2.218750 +v 1.000000 8.468750 -2.218750 +v 1.000000 7.562500 -1.531250 +v 1.000000 7.500000 -1.531250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 9.500000 -1.281250 +v 2.000000 9.437500 -1.281250 +v 2.000000 8.531250 -1.968750 +v 2.000000 8.468750 -1.968750 +v 2.000000 7.562500 -1.281250 +v 2.000000 7.500000 -1.281250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 9.500000 -0.531250 +v 3.000000 9.437500 -0.531250 +v 3.000000 8.531250 -1.218750 +v 3.000000 8.468750 -1.218750 +v 3.000000 7.562500 -0.531250 +v 3.000000 7.500000 -0.531250 +vt 0.708333 0.066667 +vt 0.681818 0.266667 +vt 0.681818 0.066667 +vt 0.602273 0.066667 +vt 0.575758 0.266667 +vt 0.575758 0.066667 +vt 0.734848 0.266667 +vt 0.734848 0.066667 +vt 0.628788 0.266667 +vt 0.628788 0.066667 +vt 0.761364 0.266667 +vt 0.761364 0.066667 +vt 0.655303 0.266667 +vt 0.655303 0.066667 +vt 0.787879 0.266667 +vt 0.787879 0.066667 +vt 0.592803 0.400000 +vt 0.575758 0.304167 +vt 0.619318 0.266667 +vt 0.863636 0.333333 +vt 0.893939 0.200000 +vt 0.893939 0.333333 +vt 0.924242 0.200000 +vt 0.954545 0.333333 +vt 0.924242 0.333333 +vt 0.924242 0.200000 +vt 0.946970 0.033333 +vt 0.954545 0.200000 +vt 0.984848 0.333333 +vt 0.962121 0.600000 +vt 0.954545 0.200000 +vt 0.984848 0.200000 +vt 0.901515 0.600000 +vt 0.916667 0.633333 +vt 0.901515 0.633333 +vt 0.916667 0.600000 +vt 0.946970 0.600000 +vt 0.931818 0.600000 +vt 0.871212 0.600000 +vt 0.863636 0.333333 +vt 0.893939 0.200000 +vt 0.893939 0.333333 +vt 0.954545 0.333333 +vt 0.924242 0.333333 +vt 0.946970 0.033333 +vt 0.977273 0.600000 +vt 0.962121 0.600000 +vt 0.984848 0.333333 +vt 0.984848 0.200000 +vt 0.901515 0.600000 +vt 0.916667 0.633333 +vt 0.901515 0.633333 +vt 0.946970 0.600000 +vt 0.931818 0.600000 +vt 0.871212 0.600000 +vt 0.818182 0.016667 +vt 0.833333 0.275000 +vt 0.818182 0.275000 +vt 0.795455 0.275000 +vt 0.810606 0.016667 +vt 0.810606 0.275000 +vt 0.810606 -0.000000 +vt 0.795455 0.016667 +vt 0.795455 -0.000000 +vt 0.795455 0.291667 +vt 0.810606 0.291667 +vt 0.787879 0.016667 +vt 0.787879 0.275000 +vt 0.772727 0.300000 +vt 0.742424 0.333333 +vt 0.742424 0.300000 +vt 0.742424 0.366667 +vt 0.772727 0.400000 +vt 0.742424 0.400000 +vt 0.772727 0.333333 +vt 0.772727 0.266667 +vt 0.787879 0.333333 +vt 0.772727 0.366667 +vt 0.727273 0.366667 +vt 0.727273 0.333333 +vt 0.727273 0.466667 +vt 0.606061 0.733333 +vt 0.606061 0.466667 +vt 0.787879 0.733333 +vt 0.727273 0.733333 +vt 0.545455 0.466667 +vt 0.787879 0.466667 +vt 0.848485 0.733333 +vt 0.545455 0.733333 +vt 0.484848 0.466667 +vt 0.606061 0.800000 +vt 0.545455 0.800000 +vt 0.727273 0.400000 +vt 0.787879 0.400000 +vt 0.606061 0.400000 +vt 0.727273 0.800000 +vt 0.484848 0.733333 +vt 0.787879 0.800000 +vt 0.545455 0.400000 +vt 0.848485 0.466667 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.859848 0.466667 +vt 0.863636 0.400000 +vt 0.863636 0.466667 +vt 0.848485 0.733333 +vt 0.852273 0.800000 +vt 0.848485 0.800000 +vt 0.859848 0.733333 +vt 0.852273 0.466667 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.852273 0.808333 +vt 0.856061 0.800000 +vt 0.856061 0.808333 +vt 0.863636 0.733333 +vt 0.859848 0.800000 +vt 0.856061 0.400000 +vt 0.852273 0.391667 +vt 0.856061 0.391667 +vt 0.852273 0.400000 +vt 0.859848 0.400000 +vt 0.863636 0.466667 +vt 0.859848 0.733333 +vt 0.859848 0.466667 +vt 0.852273 0.466667 +vt 0.848485 0.733333 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.863636 0.466667 +vt 0.859848 0.733333 +vt 0.859848 0.466667 +vt 0.852273 0.466667 +vt 0.848485 0.733333 +vt 0.848485 0.466667 +vt 0.856061 0.733333 +vt 0.856061 0.466667 +vt 0.852273 0.733333 +vt 0.856061 0.808333 +vt 0.852273 0.800000 +vt 0.856061 0.800000 +vt 0.852273 0.400000 +vt 0.856061 0.391667 +vt 0.856061 0.400000 +vt 0.852273 0.400000 +vt 0.856061 0.391667 +vt 0.856061 0.400000 +vt 0.856061 0.808333 +vt 0.852273 0.800000 +vt 0.856061 0.800000 +vt 0.901515 -0.000000 +vt 0.916667 0.033333 +vt 0.901515 0.033333 +vt 0.901515 -0.000000 +vt 0.916667 0.033333 +vt 0.901515 0.033333 +vt 0.871212 0.033333 +vt 0.886364 0.033333 +vt 0.871212 0.033333 +vt 0.886364 0.033333 +vt 0.977273 0.033333 +vt 0.977273 0.033333 +vt 0.606061 0.800000 +vt 0.727273 0.808333 +vt 0.606061 0.808333 +vt 0.606061 0.825000 +vt 0.727273 0.833333 +vt 0.606061 0.833333 +vt 0.727273 0.816667 +vt 0.606061 0.816667 +vt 0.727273 0.825000 +vt 0.545455 0.825000 +vt 0.787879 0.825000 +vt 0.787879 0.833333 +vt 0.484848 0.816667 +vt 0.545455 0.816667 +vt 0.545455 0.808333 +vt 0.545455 0.800000 +vt 0.848485 0.825000 +vt 0.848485 0.833333 +vt 0.787879 0.816667 +vt 0.727273 0.800000 +vt 0.787879 0.808333 +vt 0.848485 0.808333 +vt 0.852273 0.816667 +vt 0.848485 0.816667 +vt 0.787879 0.800000 +vt 0.481061 0.816667 +vt 0.484848 0.808333 +vt 0.484848 0.800000 +vt 0.545455 0.833333 +vt 0.484848 0.825000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.484848 0.533333 +vt 0.481061 0.733333 +vt 0.481061 0.533333 +vt 0.473485 0.533333 +vt 0.469697 0.733333 +vt 0.469697 0.533333 +vt 0.477273 0.533333 +vt 0.477273 0.733333 +vt 0.473485 0.733333 +vt 0.484848 0.533333 +vt 0.481061 0.733333 +vt 0.481061 0.533333 +vt 0.473485 0.533333 +vt 0.469697 0.733333 +vt 0.469697 0.533333 +vt 0.477273 0.533333 +vt 0.477273 0.733333 +vt 0.473485 0.733333 +vt 0.484848 0.533333 +vt 0.481061 0.733333 +vt 0.481061 0.533333 +vt 0.473485 0.533333 +vt 0.469697 0.733333 +vt 0.469697 0.533333 +vt 0.477273 0.533333 +vt 0.477273 0.733333 +vt 0.473485 0.733333 +vt 0.484848 0.533333 +vt 0.481061 0.733333 +vt 0.481061 0.533333 +vt 0.473485 0.533333 +vt 0.469697 0.733333 +vt 0.469697 0.533333 +vt 0.477273 0.533333 +vt 0.477273 0.733333 +vt 0.473485 0.733333 +vt 0.924242 1.000000 +vt 0.939394 0.966667 +vt 0.939394 1.000000 +vt 0.939394 0.833333 +vt 0.924242 0.733333 +vt 0.939394 0.733333 +vt 0.924242 0.966667 +vt 0.939394 0.600000 +vt 0.924242 0.600000 +vt 0.863636 0.766667 +vt 0.924242 0.833333 +vt 0.863636 0.800000 +vt 1.000000 0.800000 +vt 1.000000 0.766667 +vt 0.731061 0.291667 +vt 0.704545 0.308333 +vt 0.704545 0.291667 +vt 0.742424 0.308333 +vt 0.742424 0.291667 +vt 0.731061 0.266667 +vt 0.704545 0.266667 +vt 0.693182 0.291667 +vt 0.693182 0.308333 +vt 0.704545 0.333333 +vt 0.731061 0.308333 +vt 0.731061 0.333333 +vt 0.606061 0.733333 +vt 0.727273 0.466667 +vt 0.606061 0.466667 +vt 0.787879 0.733333 +vt 0.727273 0.733333 +vt 0.545455 0.466667 +vt 0.848485 0.733333 +vt 0.787879 0.466667 +vt 0.484848 0.466667 +vt 0.545455 0.733333 +vt 0.606061 0.800000 +vt 0.727273 0.400000 +vt 0.606061 0.400000 +vt 0.727273 0.800000 +vt 0.484848 0.733333 +vt 0.545455 0.800000 +vt 0.787879 0.800000 +vt 0.545455 0.400000 +vt 0.848485 0.466667 +vt 0.787879 0.400000 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.400000 +vt 0.803030 0.391667 +vt 0.803030 0.400000 +vt 0.803030 0.400000 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.708333 0.266667 +vt 0.602273 0.266667 +vt 0.636364 0.304167 +vt 0.636364 0.362500 +vt 0.619318 0.400000 +vt 0.575758 0.362500 +vt 0.592803 0.266667 +vt 0.863636 0.200000 +vt 0.931818 0.033333 +vt 0.977273 0.600000 +vt 0.886364 0.600000 +vt 0.863636 0.200000 +vt 0.931818 0.033333 +vt 0.916667 0.600000 +vt 0.886364 0.600000 +vt 0.833333 0.016667 +vt 0.742424 0.266667 +vt 0.787879 0.366667 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.800000 +vt 0.848485 0.400000 +vt 0.863636 0.733333 +vt 0.863636 0.733333 +vt 0.852273 0.808333 +vt 0.852273 0.391667 +vt 0.852273 0.391667 +vt 0.852273 0.808333 +vt 0.916667 0.000000 +vt 0.916667 -0.000000 +vt 0.962121 0.033333 +vt 0.962121 0.033333 +vt 0.852273 0.808333 +vt 0.848485 0.800000 +vt 0.481061 0.808333 +vt 0.484848 0.833333 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.848485 0.391667 +vt 0.803030 0.391667 +vt 0.484848 0.733333 +vt 0.484848 0.733333 +vt 0.484848 0.733333 +vt 0.484848 0.733333 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vt 0.848485 0.391667 +vt 0.848485 0.400000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9950 0.0000 -0.0995 +vn 0.0000 -0.9545 0.2983 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.9829 -0.1843 +vn -0.9545 0.0000 0.2983 +vn 0.9829 0.0000 -0.1843 +vn -0.9829 0.0000 -0.1843 +vn 0.9545 0.0000 0.2983 +vn -0.2425 0.0000 0.9701 +vn 0.2425 0.0000 0.9701 +vn -0.6000 0.0000 0.8000 +vn 0.6000 0.0000 0.8000 +vn 0.2182 -0.4364 0.8729 +vn -0.2182 0.4364 0.8729 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 0.4472 0.8944 +vn 0.2182 0.4364 0.8729 +vn -0.2182 -0.4364 0.8729 +vn 0.5571 -0.3714 0.7428 +vn -0.5571 -0.3714 0.7428 +vn 0.5571 0.3714 0.7428 +vn -0.5571 0.3714 0.7428 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 -0.4472 -0.8944 +vn 0.9950 0.0000 -0.0995 +vn 0.0000 -0.9806 -0.1961 +vn -0.6000 0.0000 -0.8000 +vn -0.2425 0.0000 -0.9701 +vn 0.2425 0.0000 -0.9701 +vn 0.6000 0.0000 -0.8000 +vn 0.0000 0.3338 0.9426 +vn 0.0000 -0.3338 -0.9426 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 0.8743 0.4854 +vn 0.0000 -0.9999 -0.0168 +vn -0.2182 0.4364 -0.8729 +vn 0.2182 -0.4364 -0.8729 +vn -0.2182 -0.4364 -0.8729 +vn 0.2182 0.4364 -0.8729 +vn -0.5571 0.3714 -0.7428 +vn 0.5571 0.3714 -0.7428 +vn -0.5571 -0.3714 -0.7428 +vn 0.5571 -0.3714 -0.7428 +s off +f 4/1/1 14/2/1 6/3/1 +f 1/4/2 15/5/2 7/6/2 +f 11/7/3 4/1/3 3/8/3 +f 10/9/4 1/4/4 2/10/4 +f 16/11/5 3/8/5 8/12/5 +f 13/13/6 2/10/6 5/14/6 +f 14/2/7 5/14/7 6/3/7 +f 15/15/8 8/12/8 7/16/8 +f 10/17/9 14/18/9 11/19/9 +f 18/20/7 19/21/7 17/22/7 +f 21/23/8 23/24/8 22/25/8 +f 19/21/9 22/25/9 17/22/9 +f 33/26/10 179/27/10 36/28/10 +f 18/29/11 28/30/11 23/24/11 +f 18/29/12 24/31/12 20/32/12 +f 25/33/4 28/34/4 26/35/4 +f 17/22/13 27/36/13 25/33/13 +f 22/25/14 28/37/14 27/38/14 +f 17/22/15 26/39/15 18/20/15 +f 30/40/7 31/41/7 29/42/7 +f 33/26/8 35/43/8 34/44/8 +f 31/41/9 34/44/9 29/42/9 +f 21/23/10 175/45/10 24/31/10 +f 35/43/11 38/46/11 40/47/11 +f 30/48/12 36/28/12 32/49/12 +f 37/50/4 40/51/4 38/52/4 +f 34/44/13 37/50/13 29/42/13 +f 34/44/16 40/53/16 39/54/16 +f 29/42/17 38/55/17 30/40/17 +f 42/56/3 43/57/3 41/58/3 +f 45/59/4 47/60/4 46/61/4 +f 42/62/7 48/63/7 44/64/7 +f 43/65/8 46/61/8 41/66/8 +f 44/67/12 45/59/12 43/68/12 +f 41/58/9 47/60/9 42/56/9 +f 50/69/4 51/70/4 49/71/4 +f 53/72/3 55/73/3 54/74/3 +f 52/75/9 53/72/9 51/70/9 +f 49/71/12 55/76/12 50/69/12 +f 50/77/7 56/78/7 52/75/7 +f 51/70/8 54/79/8 49/80/8 +f 58/81/4 59/82/4 57/83/4 +f 58/81/18 64/84/18 60/85/18 +f 59/82/19 61/86/19 57/83/19 +f 62/87/20 68/88/20 64/84/20 +f 63/89/21 65/90/21 61/86/21 +f 63/89/22 71/91/22 75/92/22 +f 62/87/23 70/93/23 74/94/23 +f 60/85/24 71/91/24 59/82/24 +f 57/83/25 70/93/25 58/81/25 +f 61/86/26 69/95/26 57/83/26 +f 64/84/27 72/96/27 60/85/27 +f 63/89/28 75/92/28 67/97/28 +f 64/84/29 68/88/29 76/98/29 +f 61/86/30 65/90/30 73/99/30 +f 62/87/31 74/94/31 66/100/31 +f 77/101/25 91/102/25 78/103/25 +f 82/104/7 88/105/7 87/106/7 +f 78/103/4 81/107/4 77/101/4 +f 80/108/7 82/104/7 78/109/7 +f 77/101/8 83/110/8 79/111/8 +f 79/111/3 84/112/3 80/108/3 +f 87/113/9 85/114/9 86/115/9 +f 81/107/8 85/114/8 83/110/8 +f 83/110/32 88/105/32 84/112/32 +f 82/116/24 86/117/24 81/107/24 +f 89/118/12 91/119/12 90/120/12 +f 78/109/7 92/121/7 80/108/7 +f 77/101/8 89/118/8 90/122/8 +f 80/108/33 89/118/33 79/111/33 +f 93/123/25 107/124/25 94/125/25 +f 98/126/7 104/127/7 103/128/7 +f 94/125/4 97/129/4 93/123/4 +f 96/130/7 98/126/7 94/131/7 +f 93/123/8 99/132/8 95/133/8 +f 95/133/3 100/134/3 96/130/3 +f 103/135/9 101/136/9 102/137/9 +f 97/129/8 101/136/8 99/132/8 +f 99/132/32 104/127/32 100/134/32 +f 98/138/24 102/139/24 97/129/24 +f 105/140/12 107/141/12 106/142/12 +f 94/131/7 108/143/7 96/130/7 +f 93/123/8 105/140/8 106/144/8 +f 96/130/33 105/140/33 95/133/33 +f 109/145/25 123/146/25 110/147/25 +f 114/148/7 120/149/7 119/150/7 +f 110/147/4 113/151/4 109/145/4 +f 112/152/7 114/148/7 110/153/7 +f 109/145/8 115/154/8 111/155/8 +f 111/155/3 116/156/3 112/152/3 +f 119/157/9 117/158/9 118/159/9 +f 113/151/8 117/158/8 115/154/8 +f 115/154/32 120/149/32 116/156/32 +f 114/160/24 118/161/24 113/151/24 +f 121/162/12 123/163/12 122/164/12 +f 110/153/7 124/165/7 112/152/7 +f 109/145/8 121/162/8 122/166/8 +f 112/152/33 121/162/33 111/155/33 +f 125/167/25 139/168/25 126/169/25 +f 130/170/7 136/171/7 135/172/7 +f 126/169/4 129/173/4 125/167/4 +f 128/174/7 130/170/7 126/175/7 +f 125/167/8 131/176/8 127/177/8 +f 127/177/3 132/178/3 128/174/3 +f 135/179/9 133/180/9 134/181/9 +f 129/173/8 133/180/8 131/176/8 +f 131/176/32 136/171/32 132/178/32 +f 130/182/24 134/183/24 129/173/24 +f 137/184/12 139/185/12 138/186/12 +f 126/175/7 140/187/7 128/174/7 +f 125/167/8 137/184/8 138/188/8 +f 128/174/33 137/184/33 127/177/33 +f 141/189/25 155/190/25 142/191/25 +f 146/192/7 152/193/7 151/194/7 +f 142/191/4 145/195/4 141/189/4 +f 144/196/7 146/192/7 142/197/7 +f 141/189/8 147/198/8 143/199/8 +f 143/199/3 148/200/3 144/196/3 +f 151/201/9 149/202/9 150/203/9 +f 145/195/8 149/202/8 147/198/8 +f 147/198/32 152/193/32 148/200/32 +f 146/204/24 150/205/24 145/195/24 +f 153/206/12 155/207/12 154/208/12 +f 142/197/7 156/209/7 144/196/7 +f 141/189/8 153/206/8 154/210/8 +f 144/196/33 153/206/33 143/199/33 +f 158/211/4 161/212/4 157/213/4 +f 160/214/7 162/215/7 158/216/7 +f 157/213/8 163/217/8 159/218/8 +f 159/218/3 164/219/3 160/214/3 +f 166/220/4 169/221/4 165/222/4 +f 168/223/7 170/224/7 166/225/7 +f 165/222/8 171/226/8 167/227/8 +f 167/227/3 172/228/3 168/223/3 +f 161/229/9 164/230/9 163/231/9 +f 160/232/12 157/233/12 159/234/12 +f 168/235/12 165/236/12 167/237/12 +f 169/238/9 172/239/9 171/240/9 +f 173/241/3 176/242/3 174/243/3 +f 177/244/3 180/245/3 178/246/3 +f 19/21/34 173/247/34 174/248/34 +f 31/41/34 177/249/34 178/250/34 +f 24/31/35 173/251/35 20/32/35 +f 36/28/35 177/252/35 32/49/35 +f 19/21/9 176/242/9 21/23/9 +f 31/41/9 180/245/9 33/26/9 +f 182/253/4 185/254/4 181/255/4 +f 184/256/12 186/257/12 182/258/12 +f 181/255/9 187/259/9 183/260/9 +f 183/260/3 188/261/3 184/256/3 +f 182/258/12 192/262/12 184/256/12 +f 186/257/12 196/263/12 195/264/12 +f 192/262/36 201/265/36 189/266/36 +f 181/255/9 189/266/9 190/267/9 +f 184/256/37 189/266/37 183/260/37 +f 181/255/19 191/268/19 182/253/19 +f 195/264/12 200/269/12 199/270/12 +f 185/254/9 193/271/9 187/259/9 +f 187/259/38 196/263/38 188/261/38 +f 186/272/18 194/273/18 185/254/18 +f 198/274/7 200/275/7 197/276/7 +f 194/273/9 197/276/9 193/271/9 +f 193/271/39 200/269/39 196/263/39 +f 195/277/20 198/274/20 194/273/20 +f 204/278/8 202/279/8 201/265/8 +f 190/267/21 203/280/21 191/268/21 +f 191/281/12 204/282/12 192/262/12 +f 190/267/9 201/265/9 202/279/9 +f 205/283/7 208/284/7 206/285/7 +f 210/286/7 211/287/7 212/288/7 +f 213/289/7 216/290/7 214/291/7 +f 218/292/7 219/293/7 220/294/7 +f 221/295/7 224/296/7 222/297/7 +f 226/298/7 227/299/7 228/300/7 +f 229/301/7 232/302/7 230/303/7 +f 234/304/7 235/305/7 236/306/7 +f 237/307/7 240/308/7 238/309/7 +f 242/310/7 243/311/7 244/312/7 +f 245/313/7 248/314/7 246/315/7 +f 250/316/7 251/317/7 252/318/7 +f 253/319/7 256/320/7 254/321/7 +f 258/322/7 259/323/7 260/324/7 +f 262/325/40 265/326/40 261/327/40 +f 264/328/7 266/329/7 262/330/7 +f 263/331/8 265/326/8 267/332/8 +f 263/331/41 268/333/41 264/328/41 +f 270/334/40 273/335/40 269/336/40 +f 272/337/7 274/338/7 270/339/7 +f 271/340/8 273/335/8 275/341/8 +f 271/340/41 276/342/41 272/337/41 +f 278/343/40 281/344/40 277/345/40 +f 280/346/7 282/347/7 278/348/7 +f 279/349/8 281/344/8 283/350/8 +f 279/349/41 284/351/41 280/346/41 +f 286/352/40 289/353/40 285/354/40 +f 288/355/7 290/356/7 286/357/7 +f 287/358/8 289/353/8 291/359/8 +f 287/358/41 292/360/41 288/355/41 +f 294/361/42 295/362/42 293/363/42 +f 297/364/43 299/365/43 298/366/43 +f 296/367/44 297/364/44 295/362/44 +f 293/368/45 299/365/45 294/369/45 +f 294/370/7 300/371/7 296/372/7 +f 295/373/8 298/366/8 293/374/8 +f 305/375/9 308/376/9 306/377/9 +f 304/378/7 305/375/7 302/379/7 +f 302/380/4 306/377/4 301/381/4 +f 301/382/8 308/376/8 303/383/8 +f 303/384/3 307/385/3 304/386/3 +f 311/387/3 310/388/3 309/389/3 +f 316/390/38 310/388/38 312/391/38 +f 313/392/37 311/387/37 309/389/37 +f 320/393/39 314/394/39 316/390/39 +f 317/395/36 315/396/36 313/392/36 +f 315/396/46 323/397/46 311/387/46 +f 314/394/47 322/398/47 310/388/47 +f 323/397/32 312/391/32 311/387/32 +f 322/398/33 309/389/33 310/388/33 +f 321/399/48 313/392/48 309/389/48 +f 324/400/49 316/390/49 312/391/49 +f 315/396/50 319/401/50 327/402/50 +f 316/390/51 328/403/51 320/393/51 +f 313/392/52 325/404/52 317/395/52 +f 314/394/53 318/405/53 326/406/53 +f 332/407/8 329/408/8 330/409/8 +f 334/410/8 335/411/8 333/412/8 +f 340/413/8 337/414/8 338/415/8 +f 342/416/8 343/417/8 341/418/8 +f 348/419/8 345/420/8 346/421/8 +f 350/422/8 351/423/8 349/424/8 +f 356/425/8 353/426/8 354/427/8 +f 358/428/8 359/429/8 357/430/8 +f 364/431/8 361/432/8 362/433/8 +f 366/434/8 367/435/8 365/436/8 +f 372/437/8 369/438/8 370/439/8 +f 374/440/8 375/441/8 373/442/8 +f 380/443/8 377/444/8 378/445/8 +f 382/446/8 383/447/8 381/448/8 +f 4/1/1 12/449/1 14/2/1 +f 1/4/2 9/450/2 15/5/2 +f 11/7/3 12/449/3 4/1/3 +f 10/9/4 9/450/4 1/4/4 +f 16/11/5 11/7/5 3/8/5 +f 13/13/6 10/9/6 2/10/6 +f 14/2/7 13/13/7 5/14/7 +f 15/15/8 16/11/8 8/12/8 +f 11/19/9 16/451/9 15/452/9 +f 15/452/9 9/453/9 10/17/9 +f 10/17/9 13/454/9 14/18/9 +f 14/18/9 12/455/9 11/19/9 +f 11/19/9 15/452/9 10/17/9 +f 18/20/7 20/456/7 19/21/7 +f 21/23/8 24/31/8 23/24/8 +f 19/21/9 21/23/9 22/25/9 +f 33/26/10 180/457/10 179/27/10 +f 18/29/11 26/458/11 28/30/11 +f 18/29/12 23/24/12 24/31/12 +f 25/33/4 27/36/4 28/34/4 +f 17/22/13 22/25/13 27/36/13 +f 22/25/14 23/24/14 28/37/14 +f 17/22/15 25/459/15 26/39/15 +f 30/40/7 32/460/7 31/41/7 +f 33/26/8 36/28/8 35/43/8 +f 31/41/9 33/26/9 34/44/9 +f 21/23/10 176/461/10 175/45/10 +f 35/43/11 30/48/11 38/46/11 +f 30/48/12 35/43/12 36/28/12 +f 37/50/4 39/462/4 40/51/4 +f 34/44/13 39/462/13 37/50/13 +f 34/44/16 35/43/16 40/53/16 +f 29/42/17 37/463/17 38/55/17 +f 42/56/3 44/464/3 43/57/3 +f 45/59/4 48/63/4 47/60/4 +f 42/62/7 47/60/7 48/63/7 +f 43/65/8 45/59/8 46/61/8 +f 44/67/12 48/63/12 45/59/12 +f 41/58/9 46/61/9 47/60/9 +f 50/69/4 52/75/4 51/70/4 +f 53/72/3 56/78/3 55/73/3 +f 52/75/9 56/78/9 53/72/9 +f 49/71/12 54/465/12 55/76/12 +f 50/77/7 55/466/7 56/78/7 +f 51/70/8 53/72/8 54/79/8 +f 58/81/4 60/85/4 59/82/4 +f 58/81/18 62/87/18 64/84/18 +f 59/82/19 63/89/19 61/86/19 +f 62/87/20 66/100/20 68/88/20 +f 63/89/21 67/97/21 65/90/21 +f 63/89/22 59/82/22 71/91/22 +f 62/87/23 58/81/23 70/93/23 +f 60/85/24 72/96/24 71/91/24 +f 57/83/25 69/95/25 70/93/25 +f 61/86/26 73/99/26 69/95/26 +f 64/84/27 76/98/27 72/96/27 +f 77/101/25 90/122/25 91/102/25 +f 82/104/7 84/112/7 88/105/7 +f 78/103/4 82/116/4 81/107/4 +f 80/108/7 84/112/7 82/104/7 +f 77/101/8 81/107/8 83/110/8 +f 79/111/3 83/110/3 84/112/3 +f 87/113/9 88/105/9 85/114/9 +f 81/107/8 86/117/8 85/114/8 +f 83/110/32 85/114/32 88/105/32 +f 82/116/24 87/467/24 86/117/24 +f 89/118/12 92/121/12 91/119/12 +f 78/109/7 91/468/7 92/121/7 +f 77/101/8 79/111/8 89/118/8 +f 80/108/33 92/121/33 89/118/33 +f 93/123/25 106/144/25 107/124/25 +f 98/126/7 100/134/7 104/127/7 +f 94/125/4 98/138/4 97/129/4 +f 96/130/7 100/134/7 98/126/7 +f 93/123/8 97/129/8 99/132/8 +f 95/133/3 99/132/3 100/134/3 +f 103/135/9 104/127/9 101/136/9 +f 97/129/8 102/139/8 101/136/8 +f 99/132/32 101/136/32 104/127/32 +f 98/138/24 103/469/24 102/139/24 +f 105/140/12 108/143/12 107/141/12 +f 94/131/7 107/470/7 108/143/7 +f 93/123/8 95/133/8 105/140/8 +f 96/130/33 108/143/33 105/140/33 +f 109/145/25 122/166/25 123/146/25 +f 114/148/7 116/156/7 120/149/7 +f 110/147/4 114/160/4 113/151/4 +f 112/152/7 116/156/7 114/148/7 +f 109/145/8 113/151/8 115/154/8 +f 111/155/3 115/154/3 116/156/3 +f 119/157/9 120/149/9 117/158/9 +f 113/151/8 118/161/8 117/158/8 +f 115/154/32 117/158/32 120/149/32 +f 114/160/24 119/471/24 118/161/24 +f 121/162/12 124/165/12 123/163/12 +f 110/153/7 123/472/7 124/165/7 +f 109/145/8 111/155/8 121/162/8 +f 112/152/33 124/165/33 121/162/33 +f 125/167/25 138/188/25 139/168/25 +f 130/170/7 132/178/7 136/171/7 +f 126/169/4 130/182/4 129/173/4 +f 128/174/7 132/178/7 130/170/7 +f 125/167/8 129/173/8 131/176/8 +f 127/177/3 131/176/3 132/178/3 +f 135/179/9 136/171/9 133/180/9 +f 129/173/8 134/183/8 133/180/8 +f 131/176/32 133/180/32 136/171/32 +f 130/182/24 135/473/24 134/183/24 +f 137/184/12 140/187/12 139/185/12 +f 126/175/7 139/474/7 140/187/7 +f 125/167/8 127/177/8 137/184/8 +f 128/174/33 140/187/33 137/184/33 +f 141/189/25 154/210/25 155/190/25 +f 146/192/7 148/200/7 152/193/7 +f 142/191/4 146/204/4 145/195/4 +f 144/196/7 148/200/7 146/192/7 +f 141/189/8 145/195/8 147/198/8 +f 143/199/3 147/198/3 148/200/3 +f 151/201/9 152/193/9 149/202/9 +f 145/195/8 150/205/8 149/202/8 +f 147/198/32 149/202/32 152/193/32 +f 146/204/24 151/475/24 150/205/24 +f 153/206/12 156/209/12 155/207/12 +f 142/197/7 155/476/7 156/209/7 +f 141/189/8 143/199/8 153/206/8 +f 144/196/33 156/209/33 153/206/33 +f 158/211/4 162/477/4 161/212/4 +f 160/214/7 164/219/7 162/215/7 +f 157/213/8 161/212/8 163/217/8 +f 159/218/3 163/217/3 164/219/3 +f 166/220/4 170/478/4 169/221/4 +f 168/223/7 172/228/7 170/224/7 +f 165/222/8 169/221/8 171/226/8 +f 167/227/3 171/226/3 172/228/3 +f 161/229/9 162/479/9 164/230/9 +f 160/232/12 158/480/12 157/233/12 +f 168/235/12 166/481/12 165/236/12 +f 169/238/9 170/482/9 172/239/9 +f 173/241/3 175/483/3 176/242/3 +f 177/244/3 179/484/3 180/245/3 +f 19/21/34 20/456/34 173/247/34 +f 31/41/34 32/460/34 177/249/34 +f 24/31/35 175/485/35 173/251/35 +f 36/28/35 179/486/35 177/252/35 +f 19/21/9 174/243/9 176/242/9 +f 31/41/9 178/246/9 180/245/9 +f 182/253/4 186/272/4 185/254/4 +f 184/256/12 188/261/12 186/257/12 +f 181/255/9 185/254/9 187/259/9 +f 183/260/3 187/259/3 188/261/3 +f 182/258/12 191/281/12 192/262/12 +f 186/257/12 188/261/12 196/263/12 +f 192/262/36 204/282/36 201/265/36 +f 181/255/9 183/260/9 189/266/9 +f 184/256/37 192/262/37 189/266/37 +f 181/255/19 190/267/19 191/268/19 +f 195/264/12 196/263/12 200/269/12 +f 185/254/9 194/273/9 193/271/9 +f 187/259/38 193/271/38 196/263/38 +f 186/272/18 195/277/18 194/273/18 +f 198/274/7 199/487/7 200/275/7 +f 194/273/9 198/274/9 197/276/9 +f 193/271/39 197/276/39 200/269/39 +f 195/277/20 199/488/20 198/274/20 +f 204/278/8 203/489/8 202/279/8 +f 190/267/21 202/279/21 203/280/21 +f 191/281/12 203/490/12 204/282/12 +f 190/267/9 189/266/9 201/265/9 +f 205/283/7 207/491/7 208/284/7 +f 210/286/7 209/492/7 211/287/7 +f 213/289/7 215/493/7 216/290/7 +f 218/292/7 217/494/7 219/293/7 +f 221/295/7 223/495/7 224/296/7 +f 226/298/7 225/496/7 227/299/7 +f 229/301/7 231/497/7 232/302/7 +f 234/304/7 233/498/7 235/305/7 +f 237/307/7 239/499/7 240/308/7 +f 242/310/7 241/500/7 243/311/7 +f 245/313/7 247/501/7 248/314/7 +f 250/316/7 249/502/7 251/317/7 +f 253/319/7 255/503/7 256/320/7 +f 258/322/7 257/504/7 259/323/7 +f 262/325/40 266/505/40 265/326/40 +f 264/328/7 268/333/7 266/329/7 +f 263/331/8 261/327/8 265/326/8 +f 263/331/41 267/332/41 268/333/41 +f 270/334/40 274/506/40 273/335/40 +f 272/337/7 276/342/7 274/338/7 +f 271/340/8 269/336/8 273/335/8 +f 271/340/41 275/341/41 276/342/41 +f 278/343/40 282/507/40 281/344/40 +f 280/346/7 284/351/7 282/347/7 +f 279/349/8 277/345/8 281/344/8 +f 279/349/41 283/350/41 284/351/41 +f 286/352/40 290/508/40 289/353/40 +f 288/355/7 292/360/7 290/356/7 +f 287/358/8 285/354/8 289/353/8 +f 287/358/41 291/359/41 292/360/41 +f 294/361/42 296/367/42 295/362/42 +f 297/364/43 300/371/43 299/365/43 +f 296/367/44 300/371/44 297/364/44 +f 293/368/45 298/366/45 299/365/45 +f 294/370/7 299/365/7 300/371/7 +f 295/373/8 297/364/8 298/366/8 +f 305/375/9 307/385/9 308/376/9 +f 304/378/7 307/385/7 305/375/7 +f 302/380/4 305/375/4 306/377/4 +f 301/382/8 306/377/8 308/376/8 +f 303/384/3 308/376/3 307/385/3 +f 311/387/3 312/391/3 310/388/3 +f 316/390/38 314/394/38 310/388/38 +f 313/392/37 315/396/37 311/387/37 +f 320/393/39 318/405/39 314/394/39 +f 317/395/36 319/401/36 315/396/36 +f 315/396/46 327/402/46 323/397/46 +f 314/394/47 326/406/47 322/398/47 +f 323/397/32 324/400/32 312/391/32 +f 322/398/33 321/399/33 309/389/33 +f 321/399/48 325/404/48 313/392/48 +f 324/400/49 328/403/49 316/390/49 +f 332/407/8 331/509/8 329/408/8 +f 334/410/8 336/510/8 335/411/8 +f 340/413/8 339/511/8 337/414/8 +f 342/416/8 344/512/8 343/417/8 +f 348/419/8 347/513/8 345/420/8 +f 350/422/8 352/514/8 351/423/8 +f 356/425/8 355/515/8 353/426/8 +f 358/428/8 360/516/8 359/429/8 +f 364/431/8 363/517/8 361/432/8 +f 366/434/8 368/518/8 367/435/8 +f 372/437/8 371/519/8 369/438/8 +f 374/440/8 376/520/8 375/441/8 +f 380/443/8 379/521/8 377/444/8 +f 382/446/8 384/522/8 383/447/8 +o Radar +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.500000 4.500000 1.500000 +v 1.500000 4.500000 1.500000 +v -1.500000 4.500000 -1.500000 +v 1.500000 4.500000 -1.500000 +v -1.500000 5.000000 1.500000 +v 1.500000 5.000000 1.500000 +v -1.500000 5.000000 -1.500000 +v 1.500000 5.000000 -1.500000 +v -0.312500 5.000000 0.750000 +v 0.312500 5.000000 0.750000 +v -0.312500 5.000000 -0.750000 +v 0.312500 5.000000 -0.750000 +v 0.750000 5.000000 0.312500 +v 0.750000 5.000000 -0.312500 +v -0.750000 5.000000 0.312500 +v -0.750000 5.000000 -0.312500 +v -0.312500 5.500000 0.750000 +v 0.312500 5.500000 0.750000 +v -0.312500 5.500000 -0.750000 +v 0.312500 5.500000 -0.750000 +v 0.750000 5.500000 0.312500 +v 0.750000 5.500000 -0.312500 +v -0.750000 5.500000 0.312500 +v -0.750000 5.500000 -0.312500 +v -1.250000 5.875000 0.750000 +v 1.250000 5.875000 0.750000 +v -1.250000 5.875000 -0.750000 +v 1.250000 5.875000 -0.750000 +v 1.187500 5.000000 -0.687500 +v 1.312500 5.000000 -0.687500 +v 1.187500 5.000000 -0.812500 +v 1.312500 5.000000 -0.812500 +v 1.187500 6.000000 -0.812500 +v 1.187500 6.000000 -0.687500 +v 1.312500 6.000000 -0.687500 +v 1.312500 6.000000 -0.812500 +v 1.187500 5.000000 0.812500 +v 1.312500 5.000000 0.812500 +v 1.187500 5.000000 0.687500 +v 1.312500 5.000000 0.687500 +v 1.187500 6.000000 0.687500 +v 1.187500 6.000000 0.812500 +v 1.312500 6.000000 0.812500 +v 1.312500 6.000000 0.687500 +v -1.312500 5.000000 -0.687500 +v -1.187500 5.000000 -0.687500 +v -1.312500 5.000000 -0.812500 +v -1.187500 5.000000 -0.812500 +v -1.312500 6.000000 -0.812500 +v -1.312500 6.000000 -0.687500 +v -1.187500 6.000000 -0.687500 +v -1.187500 6.000000 -0.812500 +v -1.312500 5.000000 0.812500 +v -1.187500 5.000000 0.812500 +v -1.312500 5.000000 0.687500 +v -1.187500 5.000000 0.687500 +v -1.312500 6.000000 0.687500 +v -1.312500 6.000000 0.812500 +v -1.187500 6.000000 0.812500 +v -1.187500 6.000000 0.687500 +v -0.687500 5.000000 -1.187500 +v -0.687500 5.000000 -1.312500 +v -0.812500 5.000000 -1.187500 +v -0.812500 5.000000 -1.312500 +v -0.812500 6.000000 -1.187500 +v -0.687500 6.000000 -1.187500 +v -0.687500 6.000000 -1.312500 +v -0.812500 6.000000 -1.312500 +v 0.812500 5.000000 -1.187500 +v 0.812500 5.000000 -1.312500 +v 0.687500 5.000000 -1.187500 +v 0.687500 5.000000 -1.312500 +v 0.687500 6.000000 -1.187500 +v 0.812500 6.000000 -1.187500 +v 0.812500 6.000000 -1.312500 +v 0.687500 6.000000 -1.312500 +v -0.687500 5.000000 1.312500 +v -0.687500 5.000000 1.187500 +v -0.812500 5.000000 1.312500 +v -0.812500 5.000000 1.187500 +v -0.812500 6.000000 1.312500 +v -0.687500 6.000000 1.312500 +v -0.687500 6.000000 1.187500 +v -0.812500 6.000000 1.187500 +v 0.812500 5.000000 1.312500 +v 0.812500 5.000000 1.187500 +v 0.687500 5.000000 1.312500 +v 0.687500 5.000000 1.187500 +v 0.687500 6.000000 1.312500 +v 0.812500 6.000000 1.312500 +v 0.812500 6.000000 1.187500 +v 0.687500 6.000000 1.187500 +v 0.750000 5.875000 1.250000 +v 0.750000 5.875000 -1.250000 +v -0.750000 5.875000 1.250000 +v -0.750000 5.875000 -1.250000 +v -1.250000 5.750000 0.750000 +v 1.250000 5.750000 0.750000 +v -1.250000 5.750000 -0.750000 +v 1.250000 5.750000 -0.750000 +v 0.750000 5.750000 1.250000 +v 0.750000 5.750000 -1.250000 +v -0.750000 5.750000 1.250000 +v -0.750000 5.750000 -1.250000 +v -1.250000 5.500000 0.750000 +v 1.250000 5.500000 0.750000 +v -1.250000 5.500000 -0.750000 +v 1.250000 5.500000 -0.750000 +v 0.750000 5.500000 1.250000 +v 0.750000 5.500000 -1.250000 +v -0.750000 5.500000 1.250000 +v -0.750000 5.500000 -1.250000 +v -1.250000 5.375000 0.750000 +v 1.250000 5.375000 0.750000 +v -1.250000 5.375000 -0.750000 +v 1.250000 5.375000 -0.750000 +v 0.750000 5.375000 1.250000 +v 0.750000 5.375000 -1.250000 +v -0.750000 5.375000 1.250000 +v -0.750000 5.375000 -1.250000 +v -1.250000 1.000000 1.250000 +v -0.750000 1.000000 1.250000 +v -1.250000 1.000000 0.750000 +v -0.750000 1.000000 0.750000 +v -1.250000 4.500000 1.250000 +v -0.750000 4.500000 1.250000 +v -1.250000 4.500000 0.750000 +v -0.750000 4.500000 0.750000 +v 0.750000 1.000000 1.250000 +v 1.250000 1.000000 1.250000 +v 0.750000 1.000000 0.750000 +v 1.250000 1.000000 0.750000 +v 0.750000 4.500000 1.250000 +v 1.250000 4.500000 1.250000 +v 0.750000 4.500000 0.750000 +v 1.250000 4.500000 0.750000 +v -1.250000 1.000000 -0.750000 +v -0.750000 1.000000 -0.750000 +v -1.250000 1.000000 -1.250000 +v -0.750000 1.000000 -1.250000 +v -1.250000 4.500000 -0.750000 +v -0.750000 4.500000 -0.750000 +v -1.250000 4.500000 -1.250000 +v -0.750000 4.500000 -1.250000 +v 0.750000 1.000000 -0.750000 +v 1.250000 1.000000 -0.750000 +v 0.750000 1.000000 -1.250000 +v 1.250000 1.000000 -1.250000 +v 0.750000 4.500000 -0.750000 +v 1.250000 4.500000 -0.750000 +v 0.750000 4.500000 -1.250000 +v 1.250000 4.500000 -1.250000 +v -1.062500 1.000000 -0.750000 +v -0.937500 1.000000 0.750000 +v -1.062500 1.250000 -0.750000 +v -0.937500 1.250000 0.750000 +v -1.062500 2.500000 0.750000 +v -0.937500 2.500000 -0.750000 +v -1.062500 2.750000 0.750000 +v -0.937500 2.750000 -0.750000 +v -1.062500 2.750000 -0.750000 +v -0.937500 2.750000 0.750000 +v -1.062500 3.000000 -0.750000 +v -0.937500 3.000000 0.750000 +v -1.062500 4.250000 0.750000 +v -0.937500 4.250000 -0.750000 +v -1.062500 4.500000 0.750000 +v -0.937500 4.500000 -0.750000 +v 0.937500 4.500000 0.750000 +v 1.062500 4.500000 -0.750000 +v 0.937500 4.250000 0.750000 +v 1.062500 4.250000 -0.750000 +v 0.937500 3.000000 -0.750000 +v 1.062500 3.000000 0.750000 +v 0.937500 2.750000 -0.750000 +v 1.062500 2.750000 0.750000 +v 0.937500 2.750000 0.750000 +v 1.062500 2.750000 -0.750000 +v 0.937500 2.500000 0.750000 +v 1.062500 2.500000 -0.750000 +v 0.937500 1.250000 -0.750000 +v 1.062500 1.250000 0.750000 +v 0.937500 1.000000 -0.750000 +v 1.062500 1.000000 0.750000 +v 0.750000 1.000000 -1.062500 +v -0.750000 1.000000 -0.937500 +v 0.750000 1.250000 -1.062500 +v -0.750000 1.250000 -0.937500 +v -0.750000 2.500000 -1.062500 +v 0.750000 2.500000 -0.937500 +v -0.750000 2.750000 -1.062500 +v 0.750000 2.750000 -0.937500 +v 0.750000 2.750000 -1.062500 +v -0.750000 2.750000 -0.937500 +v 0.750000 3.000000 -1.062500 +v -0.750000 3.000000 -0.937500 +v -0.750000 4.250000 -1.062500 +v 0.750000 4.250000 -0.937500 +v -0.750000 4.500000 -1.062500 +v 0.750000 4.500000 -0.937500 +v -0.750000 4.500000 0.937500 +v 0.750000 4.500000 1.062500 +v -0.750000 4.250000 0.937500 +v 0.750000 4.250000 1.062500 +v 0.750000 3.000000 0.937500 +v -0.750000 3.000000 1.062500 +v 0.750000 2.750000 0.937500 +v -0.750000 2.750000 1.062500 +v -0.750000 2.750000 0.937500 +v 0.750000 2.750000 1.062500 +v -0.750000 2.500000 0.937500 +v 0.750000 2.500000 1.062500 +v 0.750000 1.250000 0.937500 +v -0.750000 1.250000 1.062500 +v 0.750000 1.000000 0.937500 +v -0.750000 1.000000 1.062500 +v -0.750000 5.375000 -1.250000 +v -0.750000 5.375000 1.250000 +v 0.750000 5.375000 -1.250000 +v 0.750000 5.375000 1.250000 +v 1.250000 5.375000 -0.750000 +v -1.250000 5.375000 -0.750000 +v 1.250000 5.375000 0.750000 +v -1.250000 5.375000 0.750000 +v -0.750000 5.500000 -1.250000 +v -0.750000 5.500000 1.250000 +v 0.750000 5.500000 -1.250000 +v 0.750000 5.500000 1.250000 +v 1.250000 5.500000 -0.750000 +v -1.250000 5.500000 -0.750000 +v 1.250000 5.500000 0.750000 +v -1.250000 5.500000 0.750000 +v -0.750000 5.750000 -1.250000 +v -0.750000 5.750000 1.250000 +v 0.750000 5.750000 -1.250000 +v 0.750000 5.750000 1.250000 +v 1.250000 5.750000 -0.750000 +v -1.250000 5.750000 -0.750000 +v 1.250000 5.750000 0.750000 +v -1.250000 5.750000 0.750000 +v -0.750000 5.875000 -1.250000 +v -0.750000 5.875000 1.250000 +v 0.750000 5.875000 -1.250000 +v 0.750000 5.875000 1.250000 +v 1.250000 5.875000 -0.750000 +v -1.250000 5.875000 -0.750000 +v 1.250000 5.875000 0.750000 +v -1.250000 5.875000 0.750000 +v -0.750000 1.000000 1.062500 +v 0.750000 1.000000 0.937500 +v -0.750000 1.250000 1.062500 +v 0.750000 1.250000 0.937500 +v 0.750000 2.500000 1.062500 +v -0.750000 2.500000 0.937500 +v 0.750000 2.750000 1.062500 +v -0.750000 2.750000 0.937500 +v -0.750000 2.750000 1.062500 +v 0.750000 2.750000 0.937500 +v -0.750000 3.000000 1.062500 +v 0.750000 3.000000 0.937500 +v 0.750000 4.250000 1.062500 +v -0.750000 4.250000 0.937500 +v 0.750000 4.500000 1.062500 +v -0.750000 4.500000 0.937500 +v 0.750000 4.500000 -0.937500 +v -0.750000 4.500000 -1.062500 +v 0.750000 4.250000 -0.937500 +v -0.750000 4.250000 -1.062500 +v -0.750000 3.000000 -0.937500 +v 0.750000 3.000000 -1.062500 +v -0.750000 2.750000 -0.937500 +v 0.750000 2.750000 -1.062500 +v 0.750000 2.750000 -0.937500 +v -0.750000 2.750000 -1.062500 +v 0.750000 2.500000 -0.937500 +v -0.750000 2.500000 -1.062500 +v -0.750000 1.250000 -0.937500 +v 0.750000 1.250000 -1.062500 +v -0.750000 1.000000 -0.937500 +v 0.750000 1.000000 -1.062500 +v 1.062500 1.000000 0.750000 +v 0.937500 1.000000 -0.750000 +v 1.062500 1.250000 0.750000 +v 0.937500 1.250000 -0.750000 +v 1.062500 2.500000 -0.750000 +v 0.937500 2.500000 0.750000 +v 1.062500 2.750000 -0.750000 +v 0.937500 2.750000 0.750000 +v 1.062500 2.750000 0.750000 +v 0.937500 2.750000 -0.750000 +v 1.062500 3.000000 0.750000 +v 0.937500 3.000000 -0.750000 +v 1.062500 4.250000 -0.750000 +v 0.937500 4.250000 0.750000 +v 1.062500 4.500000 -0.750000 +v 0.937500 4.500000 0.750000 +v -0.937500 4.500000 -0.750000 +v -1.062500 4.500000 0.750000 +v -0.937500 4.250000 -0.750000 +v -1.062500 4.250000 0.750000 +v -0.937500 3.000000 0.750000 +v -1.062500 3.000000 -0.750000 +v -0.937500 2.750000 0.750000 +v -1.062500 2.750000 -0.750000 +v -0.937500 2.750000 -0.750000 +v -1.062500 2.750000 0.750000 +v -0.937500 2.500000 -0.750000 +v -1.062500 2.500000 0.750000 +v -0.937500 1.250000 0.750000 +v -1.062500 1.250000 -0.750000 +v -0.937500 1.000000 0.750000 +v -1.062500 1.000000 -0.750000 +vt 0.000000 0.000000 +vt 0.181818 0.400000 +vt 0.000000 0.400000 +vt 0.181818 0.533333 +vt 0.000000 0.933333 +vt 0.000000 0.533333 +vt 0.181818 0.400000 +vt 0.000000 0.533333 +vt 0.000000 0.400000 +vt 0.181818 0.400000 +vt 0.000000 0.533333 +vt 0.000000 0.400000 +vt 0.181818 0.400000 +vt 0.000000 0.533333 +vt 0.000000 0.400000 +vt 0.181818 0.000000 +vt 0.363636 0.400000 +vt 0.181818 0.400000 +vt 0.363636 0.466667 +vt 0.181818 0.866667 +vt 0.181818 0.466667 +vt 0.363636 0.400000 +vt 0.181818 0.466667 +vt 0.181818 0.400000 +vt 0.363636 0.400000 +vt 0.181818 0.466667 +vt 0.181818 0.400000 +vt 0.363636 0.400000 +vt 0.181818 0.466667 +vt 0.181818 0.400000 +vt 0.674242 0.066667 +vt 0.636364 0.000000 +vt 0.674242 0.000000 +vt 0.522727 0.066667 +vt 0.484848 0.000000 +vt 0.522727 0.000000 +vt 0.712121 0.000000 +vt 0.560606 0.000000 +vt 0.750000 0.000000 +vt 0.712121 0.066667 +vt 0.598485 0.000000 +vt 0.560606 0.066667 +vt 0.598485 0.066667 +vt 0.787879 0.000000 +vt 0.750000 0.066667 +vt 0.511364 0.266667 +vt 0.484848 0.125000 +vt 0.549242 0.066667 +vt 0.378788 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.666667 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.378788 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.666667 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.378788 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.378788 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.378788 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.378788 0.683333 +vt 0.371212 0.666667 +vt 0.378788 0.666667 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.371212 0.533333 +vt 0.363636 0.666667 +vt 0.363636 0.533333 +vt 0.386364 0.533333 +vt 0.378788 0.533333 +vt 0.393939 0.533333 +vt 0.386364 0.666667 +vt 0.454545 0.516667 +vt 0.484848 0.533333 +vt 0.454545 0.533333 +vt 0.454545 0.516667 +vt 0.484848 0.533333 +vt 0.454545 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.363636 0.516667 +vt 0.454545 0.533333 +vt 0.363636 0.533333 +vt 0.484848 0.516667 +vt 0.484848 0.533333 +vt 0.454545 0.533333 +vt 0.484848 0.516667 +vt 0.484848 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.454545 0.500000 +vt 0.484848 0.516667 +vt 0.454545 0.516667 +vt 0.454545 0.500000 +vt 0.484848 0.516667 +vt 0.454545 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.363636 0.500000 +vt 0.454545 0.516667 +vt 0.363636 0.516667 +vt 0.484848 0.500000 +vt 0.484848 0.516667 +vt 0.454545 0.516667 +vt 0.484848 0.500000 +vt 0.484848 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.454545 -0.000000 +vt 0.424242 0.466667 +vt 0.424242 -0.000000 +vt 0.393939 -0.000000 +vt 0.363636 0.466667 +vt 0.363636 -0.000000 +vt 0.484848 -0.000000 +vt 0.454545 0.466667 +vt 0.454545 -0.000000 +vt 0.424242 -0.000000 +vt 0.393939 0.466667 +vt 0.393939 -0.000000 +vt 0.363636 0.466667 +vt 0.363636 -0.000000 +vt 0.424242 0.466667 +vt 0.484848 -0.000000 +vt 0.454545 0.466667 +vt 0.393939 0.466667 +vt 0.424242 -0.000000 +vt 0.393939 0.466667 +vt 0.393939 -0.000000 +vt 0.484848 -0.000000 +vt 0.454545 0.466667 +vt 0.454545 -0.000000 +vt 0.393939 -0.000000 +vt 0.363636 0.466667 +vt 0.363636 -0.000000 +vt 0.454545 -0.000000 +vt 0.424242 0.466667 +vt 0.424242 -0.000000 +vt 0.393939 0.466667 +vt 0.484848 -0.000000 +vt 0.454545 0.466667 +vt 0.424242 0.466667 +vt 0.363636 0.466667 +vt 0.363636 -0.000000 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.500000 +vt 0.454545 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.454545 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.484848 0.500000 +vt 0.484848 0.516667 +vt 0.484848 0.500000 +vt 0.454545 0.516667 +vt 0.484848 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.454545 0.516667 +vt 0.363636 0.500000 +vt 0.363636 0.516667 +vt 0.484848 0.516667 +vt 0.454545 0.500000 +vt 0.484848 0.516667 +vt 0.454545 0.500000 +vt 0.454545 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.454545 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.484848 0.516667 +vt 0.484848 0.533333 +vt 0.484848 0.516667 +vt 0.454545 0.533333 +vt 0.484848 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.454545 0.533333 +vt 0.363636 0.516667 +vt 0.363636 0.533333 +vt 0.484848 0.533333 +vt 0.454545 0.516667 +vt 0.484848 0.533333 +vt 0.454545 0.516667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.454545 0.466667 +vt 0.363636 0.500000 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.454545 0.500000 +vt 0.363636 0.500000 +vt 0.181818 0.000000 +vt 0.181818 0.933333 +vt 0.181818 0.533333 +vt 0.181818 0.533333 +vt 0.181818 0.533333 +vt 0.363636 0.000000 +vt 0.363636 0.866667 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.363636 0.466667 +vt 0.636364 0.066667 +vt 0.484848 0.066667 +vt 0.787879 0.066667 +vt 0.575758 0.125000 +vt 0.575758 0.208333 +vt 0.549242 0.266667 +vt 0.484848 0.208333 +vt 0.511364 0.066667 +vt 0.378788 0.683333 +vt 0.378788 0.683333 +vt 0.393939 0.666667 +vt 0.393939 0.666667 +vt 0.378788 0.683333 +vt 0.378788 0.683333 +vt 0.393939 0.666667 +vt 0.393939 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.683333 +vt 0.393939 0.666667 +vt 0.393939 0.666667 +vt 0.371212 0.683333 +vt 0.371212 0.683333 +vt 0.393939 0.666667 +vt 0.393939 0.666667 +vt 0.484848 0.516667 +vt 0.484848 0.516667 +vt 0.454545 0.516667 +vt 0.454545 0.516667 +vt 0.484848 0.500000 +vt 0.484848 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.484848 0.466667 +vt 0.484848 0.466667 +vt 0.484848 0.466667 +vt 0.484848 0.466667 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.484848 0.500000 +vt 0.484848 0.500000 +vt 0.454545 0.516667 +vt 0.454545 0.516667 +vt 0.484848 0.516667 +vt 0.484848 0.516667 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vt 0.454545 0.500000 +vt 0.454545 0.466667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +s off +f 387/523/54 386/524/54 385/525/54 +f 390/526/55 391/527/55 389/528/55 +f 385/529/56 391/530/56 387/531/56 +f 387/532/57 392/533/57 388/534/57 +f 386/524/58 389/528/58 385/525/58 +f 388/535/59 390/536/59 386/537/59 +f 395/538/54 394/539/54 393/540/54 +f 398/541/55 399/542/55 397/543/55 +f 393/544/56 399/545/56 395/546/56 +f 395/547/57 400/548/57 396/549/57 +f 394/539/58 397/543/58 393/540/58 +f 396/550/59 398/551/59 394/552/59 +f 412/553/60 406/554/60 404/555/60 +f 409/556/61 407/557/61 401/558/61 +f 403/559/57 412/553/57 404/555/57 +f 402/560/58 409/556/58 401/558/58 +f 408/561/62 411/562/62 403/559/62 +f 405/563/63 410/564/63 402/560/63 +f 406/554/59 413/565/59 405/563/59 +f 407/566/56 416/567/56 408/561/56 +f 410/568/55 414/569/55 411/570/55 +f 435/571/55 433/572/55 434/573/55 +f 427/574/55 425/575/55 426/576/55 +f 423/577/57 428/578/57 424/579/57 +f 422/580/58 426/576/58 421/581/58 +f 424/579/59 427/574/59 422/580/59 +f 421/581/56 425/582/56 423/583/56 +f 431/584/57 436/585/57 432/586/57 +f 430/587/58 434/573/58 429/588/58 +f 432/586/59 435/571/59 430/587/59 +f 429/588/56 433/589/56 431/590/56 +f 451/591/55 449/592/55 450/593/55 +f 443/594/55 441/595/55 442/596/55 +f 439/597/57 444/598/57 440/599/57 +f 438/600/58 442/596/58 437/601/58 +f 440/599/59 443/594/59 438/600/59 +f 437/601/56 441/602/56 439/603/56 +f 447/604/57 452/605/57 448/606/57 +f 446/607/58 450/593/58 445/608/58 +f 448/606/59 451/591/59 446/607/59 +f 445/608/56 449/609/56 447/610/56 +f 467/611/55 465/612/55 466/613/55 +f 459/614/55 457/615/55 458/616/55 +f 455/617/56 460/618/56 456/619/56 +f 454/620/59 458/616/59 453/621/59 +f 456/622/57 459/623/57 454/620/57 +f 453/621/58 457/615/58 455/617/58 +f 463/624/56 468/625/56 464/626/56 +f 462/627/59 466/613/59 461/628/59 +f 464/629/57 467/630/57 462/627/57 +f 461/628/58 465/612/58 463/624/58 +f 483/631/55 481/632/55 482/633/55 +f 475/634/55 473/635/55 474/636/55 +f 471/637/56 476/638/56 472/639/56 +f 470/640/59 474/636/59 469/641/59 +f 472/642/57 475/643/57 470/640/57 +f 469/641/58 473/635/58 471/637/58 +f 479/644/56 484/645/56 480/646/56 +f 478/647/59 482/633/59 477/648/59 +f 480/649/57 483/650/57 478/647/57 +f 477/648/58 481/632/58 479/644/58 +f 492/651/60 486/652/60 420/653/60 +f 489/654/61 487/655/61 417/656/61 +f 490/657/59 420/653/59 418/658/59 +f 495/659/58 485/660/58 487/661/58 +f 485/660/63 490/662/63 418/663/63 +f 488/664/62 491/665/62 419/666/62 +f 491/667/56 417/656/56 419/668/56 +f 494/669/57 488/664/57 486/670/57 +f 508/671/60 502/672/60 500/673/60 +f 505/674/61 503/675/61 497/676/61 +f 506/677/59 500/673/59 498/678/59 +f 511/679/58 501/680/58 503/681/58 +f 501/680/63 506/682/63 498/683/63 +f 504/684/62 507/685/62 499/686/62 +f 507/687/56 497/676/56 499/688/56 +f 510/689/57 504/684/57 502/690/57 +f 524/691/59 526/692/59 522/693/59 +f 521/694/56 527/695/56 523/696/56 +f 516/697/59 518/698/59 514/699/59 +f 513/700/56 519/701/56 515/702/56 +f 515/702/57 520/703/57 516/704/57 +f 514/699/58 517/705/58 513/700/58 +f 523/706/57 528/707/57 524/691/57 +f 522/693/58 525/708/58 521/694/58 +f 540/709/59 542/710/59 538/711/59 +f 537/712/56 543/713/56 539/714/56 +f 532/715/59 534/716/59 530/717/59 +f 529/718/56 535/719/56 531/720/56 +f 531/720/57 536/721/57 532/715/57 +f 530/722/58 533/723/58 529/718/58 +f 539/714/57 544/724/57 540/709/57 +f 538/711/58 541/725/58 537/726/58 +f 550/727/59 548/728/59 546/729/59 +f 547/730/59 549/731/59 545/732/59 +f 558/733/59 556/734/59 554/735/59 +f 555/736/59 557/737/59 553/738/59 +f 566/739/56 564/740/56 568/741/56 +f 563/742/56 565/743/56 567/744/56 +f 574/745/56 572/746/56 576/747/56 +f 571/748/56 573/749/56 575/750/56 +f 582/751/58 580/752/58 578/753/58 +f 579/754/58 581/755/58 577/756/58 +f 590/757/58 588/758/58 586/759/58 +f 587/760/58 589/761/58 585/762/58 +f 598/763/57 596/764/57 600/765/57 +f 595/766/57 597/767/57 599/768/57 +f 606/769/57 604/770/57 608/771/57 +f 603/772/57 605/773/57 607/774/57 +f 617/775/58 611/776/58 619/777/58 +f 624/778/59 614/779/59 622/780/59 +f 614/781/63 617/775/63 622/782/63 +f 615/783/62 620/784/62 623/785/62 +f 620/784/57 610/786/57 618/787/57 +f 621/788/56 615/789/56 623/790/56 +f 618/791/60 616/792/60 624/778/60 +f 619/793/61 613/794/61 621/788/61 +f 633/795/58 627/796/58 635/797/58 +f 640/798/59 630/799/59 638/800/59 +f 630/801/63 633/795/63 638/802/63 +f 631/803/62 636/804/62 639/805/62 +f 636/804/57 626/806/57 634/807/57 +f 637/808/56 631/809/56 639/810/56 +f 634/811/60 632/812/60 640/798/60 +f 635/813/61 629/814/61 637/808/61 +f 644/815/58 646/816/58 642/817/58 +f 645/818/58 643/819/58 641/820/58 +f 652/821/58 654/822/58 650/823/58 +f 653/824/58 651/825/58 649/826/58 +f 660/827/57 662/828/57 664/829/57 +f 661/830/57 659/831/57 663/832/57 +f 668/833/57 670/834/57 672/835/57 +f 669/836/57 667/837/57 671/838/57 +f 676/839/59 678/840/59 674/841/59 +f 677/842/59 675/843/59 673/844/59 +f 684/845/59 686/846/59 682/847/59 +f 685/848/59 683/849/59 681/850/59 +f 692/851/56 694/852/56 696/853/56 +f 693/854/56 691/855/56 695/856/56 +f 700/857/56 702/858/56 704/859/56 +f 701/860/56 699/861/56 703/862/56 +f 387/523/54 388/863/54 386/524/54 +f 390/526/55 392/864/55 391/527/55 +f 385/529/56 389/865/56 391/530/56 +f 387/532/57 391/866/57 392/533/57 +f 386/524/58 390/526/58 389/528/58 +f 388/535/59 392/867/59 390/536/59 +f 395/538/54 396/868/54 394/539/54 +f 398/541/55 400/869/55 399/542/55 +f 393/544/56 397/870/56 399/545/56 +f 395/547/57 399/871/57 400/548/57 +f 394/539/58 398/541/58 397/543/58 +f 396/550/59 400/872/59 398/551/59 +f 412/553/60 414/873/60 406/554/60 +f 409/556/61 415/874/61 407/557/61 +f 403/559/57 411/562/57 412/553/57 +f 402/560/58 410/564/58 409/556/58 +f 408/561/62 416/567/62 411/562/62 +f 405/563/63 413/565/63 410/564/63 +f 406/554/59 414/873/59 413/565/59 +f 407/566/56 415/875/56 416/567/56 +f 411/570/55 416/876/55 415/877/55 +f 415/877/55 409/878/55 410/568/55 +f 410/568/55 413/879/55 414/569/55 +f 414/569/55 412/880/55 411/570/55 +f 411/570/55 415/877/55 410/568/55 +f 435/571/55 436/881/55 433/572/55 +f 427/574/55 428/882/55 425/575/55 +f 423/577/57 425/883/57 428/578/57 +f 422/580/58 427/574/58 426/576/58 +f 424/579/59 428/578/59 427/574/59 +f 421/581/56 426/576/56 425/582/56 +f 431/584/57 433/884/57 436/585/57 +f 430/587/58 435/571/58 434/573/58 +f 432/586/59 436/585/59 435/571/59 +f 429/588/56 434/573/56 433/589/56 +f 451/591/55 452/885/55 449/592/55 +f 443/594/55 444/886/55 441/595/55 +f 439/597/57 441/887/57 444/598/57 +f 438/600/58 443/594/58 442/596/58 +f 440/599/59 444/598/59 443/594/59 +f 437/601/56 442/596/56 441/602/56 +f 447/604/57 449/888/57 452/605/57 +f 446/607/58 451/591/58 450/593/58 +f 448/606/59 452/605/59 451/591/59 +f 445/608/56 450/593/56 449/609/56 +f 467/611/55 468/889/55 465/612/55 +f 459/614/55 460/890/55 457/615/55 +f 455/617/56 457/615/56 460/618/56 +f 454/620/59 459/623/59 458/616/59 +f 456/622/57 460/891/57 459/623/57 +f 453/621/58 458/616/58 457/615/58 +f 463/624/56 465/612/56 468/625/56 +f 462/627/59 467/630/59 466/613/59 +f 464/629/57 468/892/57 467/630/57 +f 461/628/58 466/613/58 465/612/58 +f 483/631/55 484/893/55 481/632/55 +f 475/634/55 476/894/55 473/635/55 +f 471/637/56 473/635/56 476/638/56 +f 470/640/59 475/643/59 474/636/59 +f 472/642/57 476/895/57 475/643/57 +f 469/641/58 474/636/58 473/635/58 +f 479/644/56 481/632/56 484/645/56 +f 478/647/59 483/650/59 482/633/59 +f 480/649/57 484/896/57 483/650/57 +f 477/648/58 482/633/58 481/632/58 +f 492/651/60 494/897/60 486/652/60 +f 489/654/61 495/898/61 487/655/61 +f 490/657/59 492/651/59 420/653/59 +f 495/659/58 493/899/58 485/660/58 +f 485/660/63 493/899/63 490/662/63 +f 488/664/62 496/900/62 491/665/62 +f 491/667/56 489/654/56 417/656/56 +f 494/669/57 496/900/57 488/664/57 +f 508/671/60 510/901/60 502/672/60 +f 505/674/61 511/902/61 503/675/61 +f 506/677/59 508/671/59 500/673/59 +f 511/679/58 509/903/58 501/680/58 +f 501/680/63 509/903/63 506/682/63 +f 504/684/62 512/904/62 507/685/62 +f 507/687/56 505/674/56 497/676/56 +f 510/689/57 512/904/57 504/684/57 +f 524/691/59 528/707/59 526/692/59 +f 521/694/56 525/708/56 527/695/56 +f 516/697/59 520/905/59 518/698/59 +f 513/700/56 517/705/56 519/701/56 +f 515/702/57 519/701/57 520/703/57 +f 514/699/58 518/698/58 517/705/58 +f 523/706/57 527/906/57 528/707/57 +f 522/693/58 526/692/58 525/708/58 +f 540/709/59 544/724/59 542/710/59 +f 537/712/56 541/907/56 543/713/56 +f 532/715/59 536/721/59 534/716/59 +f 529/718/56 533/723/56 535/719/56 +f 531/720/57 535/719/57 536/721/57 +f 530/722/58 534/908/58 533/723/58 +f 539/714/57 543/713/57 544/724/57 +f 538/711/58 542/710/58 541/725/58 +f 550/727/59 552/909/59 548/728/59 +f 547/730/59 551/910/59 549/731/59 +f 558/733/59 560/911/59 556/734/59 +f 555/736/59 559/912/59 557/737/59 +f 566/739/56 562/913/56 564/740/56 +f 563/742/56 561/914/56 565/743/56 +f 574/745/56 570/915/56 572/746/56 +f 571/748/56 569/916/56 573/749/56 +f 582/751/58 584/917/58 580/752/58 +f 579/754/58 583/918/58 581/755/58 +f 590/757/58 592/919/58 588/758/58 +f 587/760/58 591/920/58 589/761/58 +f 598/763/57 594/921/57 596/764/57 +f 595/766/57 593/922/57 597/767/57 +f 606/769/57 602/923/57 604/770/57 +f 603/772/57 601/924/57 605/773/57 +f 617/775/58 609/925/58 611/776/58 +f 624/778/59 616/792/59 614/779/59 +f 614/781/63 609/925/63 617/775/63 +f 615/783/62 612/926/62 620/784/62 +f 620/784/57 612/926/57 610/786/57 +f 621/788/56 613/794/56 615/789/56 +f 618/791/60 610/927/60 616/792/60 +f 619/793/61 611/928/61 613/794/61 +f 633/795/58 625/929/58 627/796/58 +f 640/798/59 632/812/59 630/799/59 +f 630/801/63 625/929/63 633/795/63 +f 631/803/62 628/930/62 636/804/62 +f 636/804/57 628/930/57 626/806/57 +f 637/808/56 629/814/56 631/809/56 +f 634/811/60 626/931/60 632/812/60 +f 635/813/61 627/932/61 629/814/61 +f 644/815/58 648/933/58 646/816/58 +f 645/818/58 647/934/58 643/819/58 +f 652/821/58 656/935/58 654/822/58 +f 653/824/58 655/936/58 651/825/58 +f 660/827/57 658/937/57 662/828/57 +f 661/830/57 657/938/57 659/831/57 +f 668/833/57 666/939/57 670/834/57 +f 669/836/57 665/940/57 667/837/57 +f 676/839/59 680/941/59 678/840/59 +f 677/842/59 679/942/59 675/843/59 +f 684/845/59 688/943/59 686/846/59 +f 685/848/59 687/944/59 683/849/59 +f 692/851/56 690/945/56 694/852/56 +f 693/854/56 689/946/56 691/855/56 +f 700/857/56 698/947/56 702/858/56 +f 701/860/56 697/948/56 699/861/56 diff --git a/src/main/resources/assets/hbm/models/machines/radar_screen.obj b/src/main/resources/assets/hbm/models/machines/radar_screen.obj new file mode 100644 index 000000000..18f4a3cc5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/radar_screen.obj @@ -0,0 +1,140 @@ +# Blender v2.79 (sub 0) OBJ File: 'radar_screen.blend' +# www.blender.org +o Plane +v -0.250000 0.000000 1.500000 +v 0.500000 0.000000 1.500000 +v -0.250000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.250000 2.000000 -0.500000 +v -0.250000 2.000000 1.500000 +v 0.500000 2.000000 1.500000 +v 0.500000 2.000000 -0.500000 +v -0.250000 0.250000 -0.250000 +v -0.250000 0.250000 1.250000 +v -0.250000 1.750000 -0.250000 +v -0.250000 1.750000 1.250000 +v -0.500000 0.250000 -0.250000 +v -0.500000 0.250000 1.250000 +v -0.500000 1.750000 -0.250000 +v -0.500000 1.750000 1.250000 +v 0.500000 0.125000 1.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 1.875000 1.375000 +v 0.500000 1.875000 -0.375000 +v 0.375000 0.125000 1.375000 +v 0.375000 0.125000 -0.375000 +v 0.375000 1.875000 1.375000 +v 0.375000 1.875000 -0.375000 +vt 0.500000 0.000000 +vt 0.136364 0.214286 +vt 0.136364 0.000000 +vt 0.136364 0.785714 +vt 0.500000 1.000000 +vt 0.136364 1.000000 +vt 0.636364 0.214286 +vt 0.500000 0.785714 +vt 0.500000 0.214286 +vt 0.000000 0.785714 +vt 0.000000 0.214286 +vt 0.159091 0.750000 +vt 0.681818 0.714286 +vt 0.636364 0.785714 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.954545 0.714286 +vt 1.000000 0.785714 +vt 1.000000 0.214286 +vt 0.681818 0.285714 +vt 0.954545 0.285714 +vt 0.954545 0.267857 +vt 0.681818 0.714286 +vt 0.681818 0.267857 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.818182 -0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.477273 0.750000 +vt 0.159091 0.250000 +vt 0.477273 0.250000 +vt 0.477273 0.250000 +vt 0.159091 0.750000 +vt 0.159091 0.250000 +vt 0.818182 0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.818182 0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.818182 -0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.500000 0.035714 +vt 0.954545 0.714286 +vt 0.500000 0.035714 +vt 0.500000 0.035714 +vt 0.500000 0.035714 +vt 0.818182 0.035714 +vt 0.477273 0.750000 +vt 0.818182 0.035714 +vt 0.818182 0.035714 +vt 0.818182 0.035714 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/2/4 6/10/4 1/11/4 +f 2/2/5 19/12/5 7/4/5 +f 3/7/6 11/13/6 5/14/6 +f 9/15/3 15/16/3 11/17/3 +f 5/14/6 12/18/6 6/19/6 +f 1/20/6 9/21/6 3/7/6 +f 6/19/6 10/22/6 1/20/6 +f 14/23/6 15/24/6 13/25/6 +f 10/26/1 13/27/1 9/28/1 +f 12/29/4 14/30/4 10/31/4 +f 11/32/2 16/33/2 12/34/2 +f 20/35/4 22/36/4 18/37/4 +f 7/4/5 20/38/5 8/8/5 +f 4/9/5 17/39/5 2/2/5 +f 8/8/5 18/40/5 4/9/5 +f 22/41/5 23/42/5 21/43/5 +f 18/44/2 21/45/2 17/46/2 +f 17/47/3 23/48/3 19/49/3 +f 19/50/1 24/51/1 20/52/1 +f 3/1/1 4/9/1 2/2/1 +f 7/4/2 8/8/2 5/5/2 +f 3/7/3 5/14/3 8/8/3 +f 2/2/4 7/4/4 6/10/4 +f 2/2/5 17/39/5 19/12/5 +f 3/7/6 9/21/6 11/13/6 +f 9/15/3 13/53/3 15/16/3 +f 5/14/6 11/13/6 12/18/6 +f 1/20/6 10/22/6 9/21/6 +f 6/19/6 12/18/6 10/22/6 +f 14/23/6 16/54/6 15/24/6 +f 10/26/1 14/55/1 13/27/1 +f 12/29/4 16/56/4 14/30/4 +f 11/32/2 15/57/2 16/33/2 +f 20/35/4 24/58/4 22/36/4 +f 7/4/5 19/12/5 20/38/5 +f 4/9/5 18/40/5 17/39/5 +f 8/8/5 20/38/5 18/40/5 +f 22/41/5 24/59/5 23/42/5 +f 18/44/2 22/60/2 21/45/2 +f 17/47/3 21/61/3 23/48/3 +f 19/50/1 23/62/1 24/51/1 diff --git a/src/main/resources/assets/hbm/models/machines/rotary_furnace.obj b/src/main/resources/assets/hbm/models/machines/rotary_furnace.obj new file mode 100644 index 000000000..20591f327 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/rotary_furnace.obj @@ -0,0 +1,3893 @@ +# Blender v2.79 (sub 0) OBJ File: 'rotary_furnace.blend' +# www.blender.org +o Piston +v -0.375000 2.000000 1.125000 +v -0.375000 2.000000 1.875000 +v 0.375000 2.000000 1.875000 +v 0.375000 2.000000 1.125000 +v -0.375000 3.000000 1.125000 +v -0.375000 3.000000 1.875000 +v 0.375000 3.000000 1.875000 +v 0.375000 3.000000 1.125000 +v -0.500000 3.000000 1.000000 +v -0.500000 3.000000 2.000000 +v 0.500000 3.000000 2.000000 +v 0.500000 3.000000 1.000000 +v -0.500000 3.250000 1.000000 +v -0.500000 3.250000 2.000000 +v 0.500000 3.250000 2.000000 +v 0.500000 3.250000 1.000000 +vt 0.681035 0.815217 +vt 0.620690 0.826087 +vt 0.629310 0.815217 +vt 0.741379 0.847826 +vt 0.689655 0.934783 +vt 0.689655 0.847826 +vt 0.844828 0.847826 +vt 0.793103 0.934783 +vt 0.793103 0.847826 +vt 0.741379 0.934783 +vt 0.896552 0.847826 +vt 0.844828 0.934783 +vt 0.758621 0.826087 +vt 0.689655 0.847826 +vt 0.689655 0.826087 +vt 0.629310 0.750000 +vt 0.689655 0.739130 +vt 0.681035 0.750000 +vt 0.620690 0.739130 +vt 0.620690 0.847826 +vt 0.689655 0.934783 +vt 0.620690 0.934783 +vt 0.896552 0.826087 +vt 0.827586 0.847826 +vt 0.827586 0.826087 +vt 0.758621 0.847826 +vt 0.896552 0.934783 +vt 0.896552 0.847826 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +s off +f 8/1/1 11/2/1 7/3/1 +f 4/4/2 7/5/2 3/6/2 +f 2/7/3 5/8/3 1/9/3 +f 1/9/4 8/10/4 4/4/4 +f 3/11/5 6/12/5 2/7/5 +f 9/13/4 16/14/4 12/15/4 +f 6/16/1 9/17/1 5/18/1 +f 5/18/1 12/15/1 8/1/1 +f 7/3/1 10/19/1 6/16/1 +f 15/20/6 13/21/6 14/22/6 +f 11/23/5 14/24/5 10/25/5 +f 12/15/2 15/20/2 11/2/2 +f 10/25/3 13/26/3 9/13/3 +f 8/1/1 12/15/1 11/2/1 +f 4/4/2 8/10/2 7/5/2 +f 2/7/3 6/12/3 5/8/3 +f 1/9/4 5/8/4 8/10/4 +f 3/11/5 7/27/5 6/12/5 +f 9/13/4 13/26/4 16/14/4 +f 6/16/1 10/19/1 9/17/1 +f 5/18/1 9/17/1 12/15/1 +f 7/3/1 11/2/1 10/19/1 +f 15/20/6 16/14/6 13/21/6 +f 11/23/5 15/28/5 14/24/5 +f 12/15/2 16/14/2 15/20/2 +f 10/25/3 14/24/3 13/26/3 +o Furnace +v -1.500000 0.000000 2.500000 +v 1.500000 0.000000 2.500000 +v -1.500000 0.000000 -2.500000 +v 1.500000 0.000000 -2.500000 +v 1.500000 0.750000 -0.500000 +v -1.500000 0.500000 2.500000 +v 1.500000 0.500000 2.500000 +v 1.500000 0.250000 -0.500000 +v -1.500000 0.500000 0.500000 +v 1.500000 0.500000 0.500000 +v 1.500000 1.000000 0.500000 +v 1.500000 1.000000 -2.500000 +v -1.500000 1.000000 -2.500000 +v -1.500000 1.000000 0.500000 +v -1.250000 1.000000 -0.500000 +v 1.250000 1.000000 -0.500000 +v -1.250000 1.000000 -1.500000 +v 1.250000 1.000000 -1.500000 +v 0.500000 1.000000 0.250000 +v 0.500000 1.000000 -2.250000 +v -0.500000 1.000000 0.250000 +v -0.500000 1.000000 -2.250000 +v -1.250000 4.000000 -0.500000 +v 1.250000 4.000000 -0.500000 +v -1.250000 4.000000 -1.500000 +v 1.250000 4.000000 -1.500000 +v 0.500000 4.000000 0.250000 +v 0.500000 4.000000 -2.250000 +v -0.500000 4.000000 0.250000 +v -0.500000 4.000000 -2.250000 +v -0.500000 4.500000 -1.500000 +v -0.500000 4.500000 -0.500000 +v 0.500000 4.500000 -1.500000 +v 0.500000 4.500000 -0.500000 +v 0.500000 1.000000 0.500000 +v 1.250000 1.000000 0.500000 +v 0.500000 1.000000 0.250000 +v 1.250000 1.000000 -0.500000 +v 0.500000 3.500000 0.500000 +v 1.250000 3.500000 0.500000 +v 0.500000 3.500000 0.250000 +v 1.250000 3.500000 -0.500000 +v -0.500000 5.000000 -1.500000 +v -0.500000 5.000000 -0.500000 +v 0.500000 5.000000 -1.500000 +v 0.500000 5.000000 -0.500000 +v 0.500000 4.750000 -1.500000 +v 0.500000 4.926777 -1.426777 +v 0.500000 5.000000 -1.250000 +v 0.500000 4.926777 -1.073223 +v 0.500000 4.750000 -1.000000 +v 0.500000 4.573223 -1.073223 +v 0.500000 4.500000 -1.250000 +v 0.500000 4.573223 -1.426777 +v 0.625000 4.750000 -1.500000 +v 0.625000 4.926777 -1.426777 +v 0.625000 5.000000 -1.250000 +v 0.625000 4.926777 -1.073223 +v 0.625000 4.750000 -1.000000 +v 0.625000 4.573223 -1.073223 +v 0.625000 4.500000 -1.250000 +v 0.625000 4.573223 -1.426777 +v 0.801777 4.676777 -1.500000 +v 0.926777 4.801777 -1.426777 +v 0.978553 4.853553 -1.250000 +v 0.926777 4.801777 -1.073223 +v 0.801777 4.676777 -1.000000 +v 0.676776 4.551776 -1.073223 +v 0.676776 4.551776 -1.426777 +v 0.875000 4.500000 -1.500000 +v 1.051777 4.500000 -1.426777 +v 1.125000 4.500000 -1.250000 +v 1.051777 4.500000 -1.073223 +v 0.875000 4.500000 -1.000000 +v 0.698223 4.500000 -1.073223 +v 0.698223 4.500000 -1.426777 +v 0.625000 4.000000 -1.250000 +v 0.875000 4.000000 -1.500000 +v 1.051777 4.000000 -1.426777 +v 1.125000 4.000000 -1.250000 +v 1.051777 4.000000 -1.073223 +v 0.875000 4.000000 -1.000000 +v 0.698223 4.000000 -1.073223 +v 0.698223 4.000000 -1.426777 +v 0.500000 4.750000 -1.000000 +v 0.500000 4.926777 -0.926777 +v 0.500000 5.000000 -0.750000 +v 0.500000 4.926777 -0.573223 +v 0.500000 4.750000 -0.500000 +v 0.500000 4.573223 -0.573223 +v 0.500000 4.500000 -0.750000 +v 0.500000 4.573223 -0.926777 +v 0.625000 4.750000 -1.000000 +v 0.625000 4.926777 -0.926777 +v 0.625000 5.000000 -0.750000 +v 0.625000 4.926777 -0.573223 +v 0.625000 4.750000 -0.500000 +v 0.625000 4.573223 -0.573223 +v 0.625000 4.500000 -0.750000 +v 0.625000 4.573223 -0.926777 +v 0.801777 4.676777 -1.000000 +v 0.926777 4.801777 -0.926777 +v 0.978553 4.853553 -0.750000 +v 0.926777 4.801777 -0.573223 +v 0.801777 4.676777 -0.500000 +v 0.676776 4.551776 -0.573223 +v 0.676776 4.551776 -0.926777 +v 0.875000 4.500000 -1.000000 +v 1.051777 4.500000 -0.926777 +v 1.125000 4.500000 -0.750000 +v 1.051777 4.500000 -0.573223 +v 0.875000 4.500000 -0.500000 +v 0.698223 4.500000 -0.573223 +v 0.698223 4.500000 -0.926777 +v 0.625000 4.000000 -0.750000 +v 0.875000 4.000000 -1.000000 +v 1.051777 4.000000 -0.926777 +v 1.125000 4.000000 -0.750000 +v 1.051777 4.000000 -0.573223 +v 0.875000 4.000000 -0.500000 +v 0.698223 4.000000 -0.573223 +v 0.698223 4.000000 -0.926777 +v 1.125000 3.000000 0.500000 +v 1.051777 3.176777 0.500000 +v 0.875000 3.250000 0.500000 +v 0.698223 3.176777 0.500000 +v 0.625000 3.000000 0.500000 +v 0.698223 2.823223 0.500000 +v 0.875000 2.750000 0.500000 +v 1.051777 2.823223 0.500000 +v 1.125000 3.000000 0.625000 +v 1.051777 3.176777 0.625000 +v 0.875000 3.250000 0.625000 +v 0.698223 3.176777 0.625000 +v 0.625000 3.000000 0.625000 +v 0.698223 2.823223 0.625000 +v 0.875000 2.750000 0.625000 +v 1.051777 2.823223 0.625000 +v 1.125000 2.926777 0.801777 +v 1.051777 3.051777 0.926777 +v 0.875000 3.103553 0.978554 +v 0.698223 3.051777 0.926777 +v 0.625000 2.926777 0.801777 +v 0.698223 2.801776 0.676777 +v 1.051777 2.801776 0.676777 +v 1.125000 2.750000 0.875000 +v 1.051777 2.750000 1.051777 +v 0.875000 2.750000 1.125000 +v 0.698223 2.750000 1.051777 +v 0.625000 2.750000 0.875000 +v 0.698223 2.750000 0.698223 +v 1.051777 2.750000 0.698223 +v 0.875000 1.000000 0.625000 +v 1.125000 1.000000 0.875000 +v 1.051777 1.000000 1.051777 +v 0.875000 1.000000 1.125000 +v 0.698223 1.000000 1.051777 +v 0.625000 1.000000 0.875000 +v 0.698223 1.000000 0.698223 +v 1.051777 1.000000 0.698223 +v 0.875000 0.646447 0.771447 +v 1.125000 0.823223 0.948224 +v 1.051777 0.948223 1.073224 +v 0.698223 0.948223 1.073224 +v 0.625000 0.823223 0.948224 +v 0.698223 0.698223 0.823223 +v 1.051777 0.698223 0.823223 +v 0.875000 0.500000 1.125000 +v 1.125000 0.750000 1.125000 +v 1.051777 0.926777 1.125000 +v 0.698223 0.926777 1.125000 +v 0.625000 0.750000 1.125000 +v 0.698223 0.573223 1.125000 +v 1.051777 0.573223 1.125000 +v 1.125000 2.250000 0.500000 +v 1.051777 2.426777 0.500000 +v 0.875000 2.500000 0.500000 +v 0.698223 2.426777 0.500000 +v 0.625000 2.250000 0.500000 +v 0.698223 2.073223 0.500000 +v 0.875000 2.000000 0.500000 +v 1.051777 2.073223 0.500000 +v 1.125000 2.250000 0.875000 +v 1.051777 2.426777 0.875000 +v 0.875000 2.500000 0.875000 +v 0.698223 2.426777 0.875000 +v 0.625000 2.250000 0.875000 +v 0.698223 2.073223 0.875000 +v 0.875000 2.000000 0.875000 +v 1.051777 2.073223 0.875000 +v 1.125000 1.500000 0.500000 +v 1.051777 1.676777 0.500000 +v 0.875000 1.750000 0.500000 +v 0.698223 1.676777 0.500000 +v 0.625000 1.500000 0.500000 +v 0.698223 1.323223 0.500000 +v 0.875000 1.250000 0.500000 +v 1.051777 1.323223 0.500000 +v 1.125000 1.500000 0.875000 +v 1.051777 1.676777 0.875000 +v 0.875000 1.750000 0.875000 +v 0.698223 1.676777 0.875000 +v 0.625000 1.500000 0.875000 +v 0.698223 1.323223 0.875000 +v 0.875000 1.250000 0.875000 +v 1.051777 1.323223 0.875000 +v -0.926777 4.801777 -0.926776 +v -0.978554 4.853553 -0.750000 +v -0.926777 4.801777 -0.573223 +v -0.801777 4.676777 -0.500000 +v -0.625000 4.573223 -0.573223 +v -0.625000 4.500000 -0.750000 +v -0.625000 4.573223 -0.926776 +v -0.625000 4.750000 -1.000000 +v -1.500000 0.500000 2.250000 +v -1.250000 0.500000 2.250000 +v -1.500000 0.500000 1.750000 +v -1.250000 0.500000 1.750000 +v -1.500000 0.750000 1.750000 +v -1.500000 0.750000 2.250000 +v -1.250000 0.750000 2.250000 +v -1.250000 0.750000 1.750000 +v -1.250000 0.500000 2.187500 +v 0.187500 0.500000 2.187500 +v -1.250000 0.500000 1.812500 +v 0.187500 0.500000 1.812500 +v -1.250000 0.687500 1.812500 +v -1.250000 0.687500 2.187500 +v -0.187500 0.687500 2.187500 +v -0.187500 0.687500 1.812500 +v -0.625000 4.926777 -0.926776 +v -0.625000 5.000000 -0.750000 +v -0.625000 4.926777 -0.573223 +v -0.625000 4.750000 -0.500000 +v -0.500000 4.573223 -0.573223 +v -0.500000 4.500000 -0.750000 +v -0.500000 4.573223 -0.926776 +v -0.500000 4.750000 -1.000000 +v -0.500000 0.500000 2.000000 +v 0.500000 0.500000 2.000000 +v -0.500000 0.500000 1.000000 +v 0.500000 0.500000 1.000000 +v -0.500000 2.000000 1.000000 +v -0.500000 2.000000 2.000000 +v 0.500000 2.000000 2.000000 +v 0.500000 2.000000 1.000000 +v 0.875000 1.000000 1.250000 +v 0.875000 0.500000 1.250000 +v 1.125000 0.750000 1.250000 +v 1.051777 0.926777 1.250000 +v 0.698223 0.926777 1.250000 +v 0.625000 0.750000 1.250000 +v 0.698223 0.573223 1.250000 +v 1.051777 0.573223 1.250000 +v 0.801777 1.000000 1.426777 +v 0.801777 0.500000 1.426777 +v 0.978553 0.750000 1.603553 +v 0.926777 0.926777 1.551777 +v 0.676777 0.926777 1.301777 +v 0.676777 0.573223 1.301777 +v 0.926777 0.573223 1.551777 +v 0.625000 1.000000 1.500000 +v 0.625000 0.500000 1.500000 +v 0.625000 0.750000 1.750000 +v 0.625000 0.926777 1.676777 +v 0.625000 0.926777 1.323224 +v 0.625000 0.573223 1.323224 +v 0.625000 0.573223 1.676777 +v 0.500000 0.750000 1.250000 +v 0.500000 1.000000 1.500000 +v 0.500000 0.500000 1.500000 +v 0.500000 0.750000 1.750000 +v 0.500000 0.926777 1.676777 +v 0.500000 0.926777 1.323224 +v 0.500000 0.573223 1.323224 +v 0.500000 0.573223 1.676777 +v -0.187500 1.625000 2.187500 +v -0.187500 1.625000 1.812500 +v 0.187500 1.625000 1.812500 +v 0.187500 1.625000 2.187500 +v -0.500000 4.926777 -0.926776 +v -0.500000 5.000000 -0.750000 +v -0.500000 4.926777 -0.573223 +v -0.500000 4.750000 -0.500000 +v 1.500000 0.750000 -1.500000 +v 1.500000 0.250000 -1.500000 +v 0.500000 0.250000 -0.500000 +v 0.500000 0.250000 -1.500000 +v 0.500000 0.750000 -0.500000 +v 0.500000 0.750000 -1.500000 +v 1.375000 0.750000 -0.500000 +v 1.375000 0.250000 -0.500000 +v 1.375000 0.750000 -1.500000 +v 1.375000 0.250000 -1.500000 +v 1.125000 1.000000 -1.625000 +v 0.625000 1.000000 -2.125000 +v 1.125000 1.000000 -2.125000 +v 0.625000 3.500000 -2.125000 +v 1.125000 3.500000 -1.625000 +v 1.125000 3.500000 -2.125000 +v -1.125000 1.000000 -1.625000 +v -1.125000 1.000000 -2.125000 +v -0.625000 1.000000 -2.125000 +v -1.125000 3.500000 -2.125000 +v -1.125000 3.500000 -1.625000 +v -0.625000 3.500000 -2.125000 +v -1.125000 1.000000 0.125000 +v -0.625000 1.000000 0.125000 +v -1.125000 1.000000 -0.375000 +v -1.125000 3.500000 -0.375000 +v -1.125000 3.500000 0.125000 +v -0.625000 3.500000 0.125000 +v -0.801777 4.676777 -1.000000 +v -0.676777 4.551776 -0.926776 +v -0.676777 4.551776 -0.573223 +v -0.875000 4.500000 -0.500000 +v -1.051777 4.500000 -0.573223 +v -1.125000 4.500000 -0.750000 +v -1.051777 4.500000 -0.926776 +v -0.875000 4.500000 -1.000000 +v -0.698224 4.500000 -0.926776 +v -0.698224 4.500000 -0.573223 +v -0.625000 4.000000 -0.750000 +v -0.875000 4.000000 -0.500000 +v -1.051777 4.000000 -0.573223 +v -1.125000 4.000000 -0.750000 +v -1.051777 4.000000 -0.926776 +v -0.875000 4.000000 -1.000000 +v -0.698224 4.000000 -0.926776 +v -0.698224 4.000000 -0.573223 +v -0.500000 4.750000 -1.000000 +v -0.500000 4.926777 -1.073223 +v -0.500000 5.000000 -1.250000 +v -0.500000 4.926777 -1.426777 +v -0.500000 4.750000 -1.500000 +v -0.500000 4.573223 -1.426777 +v -0.500000 4.500000 -1.250000 +v -0.500000 4.573223 -1.073223 +v -0.625000 4.750000 -1.000000 +v -0.625000 4.926777 -1.073223 +v -0.625000 5.000000 -1.250000 +v -0.625000 4.926777 -1.426777 +v -0.625000 4.750000 -1.500000 +v -0.625000 4.573223 -1.426777 +v -0.625000 4.500000 -1.250000 +v -0.625000 4.573223 -1.073223 +v -0.801777 4.676777 -1.000000 +v -0.926777 4.801777 -1.073223 +v -0.978554 4.853553 -1.250000 +v -0.926777 4.801777 -1.426777 +v -0.801777 4.676777 -1.500000 +v -0.676777 4.551776 -1.426777 +v -0.676777 4.551776 -1.073223 +v -0.875000 4.500000 -1.000000 +v -1.051777 4.500000 -1.073223 +v -1.125000 4.500000 -1.250000 +v -1.051777 4.500000 -1.426777 +v -0.875000 4.500000 -1.500000 +v -0.698224 4.500000 -1.426777 +v -0.698224 4.500000 -1.073223 +v -0.625000 4.000000 -1.250000 +v -0.875000 4.000000 -1.000000 +v -1.051777 4.000000 -1.073223 +v -1.125000 4.000000 -1.250000 +v -1.051777 4.000000 -1.426777 +v -0.875000 4.000000 -1.500000 +v -0.698224 4.000000 -1.426777 +v -0.698224 4.000000 -1.073223 +v -0.500000 4.750000 -1.500000 +v -0.426777 4.926777 -1.500000 +v -0.250000 5.000000 -1.500000 +v -0.073224 4.926777 -1.500000 +v -0.000000 4.750000 -1.500000 +v -0.073224 4.573223 -1.500000 +v -0.250000 4.500000 -1.500000 +v -0.426777 4.573223 -1.500000 +v -0.500000 4.750000 -1.625000 +v -0.426777 4.926777 -1.625000 +v -0.250000 5.000000 -1.625000 +v -0.073224 4.926777 -1.625000 +v -0.000000 4.750000 -1.625000 +v -0.073224 4.573223 -1.625000 +v -0.250000 4.500000 -1.625000 +v -0.426777 4.573223 -1.625000 +v -0.500000 4.676777 -1.801777 +v -0.426777 4.801777 -1.926777 +v -0.250000 4.853553 -1.978554 +v -0.073224 4.801777 -1.926777 +v -0.000000 4.676777 -1.801777 +v -0.073224 4.551776 -1.676777 +v -0.426777 4.551776 -1.676777 +v -0.500000 4.500000 -1.875000 +v -0.426777 4.500000 -2.051777 +v -0.250000 4.500000 -2.125000 +v -0.073224 4.500000 -2.051777 +v -0.000000 4.500000 -1.875000 +v -0.073224 4.500000 -1.698223 +v -0.426777 4.500000 -1.698223 +v -0.250000 4.000000 -1.625000 +v -0.500000 4.000000 -1.875000 +v -0.426777 4.000000 -2.051777 +v -0.250000 4.000000 -2.125000 +v -0.073224 4.000000 -2.051777 +v -0.000000 4.000000 -1.875000 +v -0.073224 4.000000 -1.698223 +v -0.426777 4.000000 -1.698223 +v -0.000000 4.750000 -1.500000 +v 0.073223 4.926777 -1.500000 +v 0.250000 5.000000 -1.500000 +v 0.426777 4.926777 -1.500000 +v 0.500000 4.750000 -1.500000 +v 0.426777 4.573223 -1.500000 +v 0.250000 4.500000 -1.500000 +v 0.073223 4.573223 -1.500000 +v -0.000000 4.750000 -1.625000 +v 0.073223 4.926777 -1.625000 +v 0.250000 5.000000 -1.625000 +v 0.426777 4.926777 -1.625000 +v 0.500000 4.750000 -1.625000 +v 0.426777 4.573223 -1.625000 +v 0.250000 4.500000 -1.625000 +v 0.073223 4.573223 -1.625000 +v -0.000000 4.676777 -1.801777 +v 0.073223 4.801777 -1.926777 +v 0.250000 4.853553 -1.978554 +v 0.426777 4.801777 -1.926777 +v 0.500000 4.676777 -1.801777 +v 0.426777 4.551776 -1.676777 +v 0.073223 4.551776 -1.676777 +v -0.000000 4.500000 -1.875000 +v 0.073223 4.500000 -2.051777 +v 0.250000 4.500000 -2.125000 +v 0.426777 4.500000 -2.051777 +v 0.500000 4.500000 -1.875000 +v 0.426777 4.500000 -1.698223 +v 0.073223 4.500000 -1.698223 +v 0.250000 4.000000 -1.625000 +v -0.000000 4.000000 -1.875000 +v 0.073223 4.000000 -2.051777 +v 0.250000 4.000000 -2.125000 +v 0.426777 4.000000 -2.051777 +v 0.500000 4.000000 -1.875000 +v 0.426777 4.000000 -1.698223 +v 0.073223 4.000000 -1.698223 +v 0.073223 4.801777 -0.073223 +v 0.250000 4.853553 -0.021446 +v 0.426777 4.801777 -0.073223 +v 0.500000 4.676777 -0.198223 +v 0.426777 4.573223 -0.375000 +v 0.250000 4.500000 -0.375000 +v 0.073223 4.573223 -0.375000 +v -0.000000 4.750000 -0.375000 +v 0.073223 4.926777 -0.375000 +v 0.250000 5.000000 -0.375000 +v 0.426777 4.926777 -0.375000 +v 0.500000 4.750000 -0.375000 +v 0.426777 4.573223 -0.500000 +v 0.250000 4.500000 -0.500000 +v 0.073223 4.573223 -0.500000 +v -0.000000 4.750000 -0.500000 +v 0.073223 4.926777 -0.500000 +v 0.250000 5.000000 -0.500000 +v 0.426777 4.926777 -0.500000 +v 0.500000 4.750000 -0.500000 +v -0.000000 4.676777 -0.198223 +v 0.073223 4.551776 -0.323223 +v 0.426777 4.551776 -0.323223 +v 0.500000 4.500000 -0.125000 +v 0.426777 4.500000 0.051777 +v 0.250000 4.500000 0.125000 +v 0.073223 4.500000 0.051777 +v -0.000000 4.500000 -0.125000 +v 0.073223 4.500000 -0.301777 +v 0.426777 4.500000 -0.301777 +v 0.250000 4.000000 -0.375000 +v 0.500000 4.000000 -0.125000 +v 0.426777 4.000000 0.051777 +v 0.250000 4.000000 0.125000 +v 0.073223 4.000000 0.051777 +v -0.000000 4.000000 -0.125000 +v 0.073223 4.000000 -0.301777 +v 0.426777 4.000000 -0.301777 +v -0.000000 4.750000 -0.500000 +v -0.073223 4.926777 -0.500000 +v -0.250000 5.000000 -0.500000 +v -0.426777 4.926777 -0.500000 +v -0.500000 4.750000 -0.500000 +v -0.426777 4.573223 -0.500000 +v -0.250000 4.500000 -0.500000 +v -0.073223 4.573223 -0.500000 +v -0.000000 4.750000 -0.375000 +v -0.073223 4.926777 -0.375000 +v -0.250000 5.000000 -0.375000 +v -0.426777 4.926777 -0.375000 +v -0.500000 4.750000 -0.375000 +v -0.426777 4.573223 -0.375000 +v -0.250000 4.500000 -0.375000 +v -0.073223 4.573223 -0.375000 +v -0.000000 4.676777 -0.198223 +v -0.073223 4.801777 -0.073223 +v -0.250000 4.853553 -0.021446 +v -0.426777 4.801777 -0.073223 +v -0.500000 4.676777 -0.198223 +v -0.426777 4.551776 -0.323223 +v -0.073223 4.551776 -0.323223 +v -0.000000 4.500000 -0.125000 +v -0.073223 4.500000 0.051777 +v -0.250000 4.500000 0.125000 +v -0.426777 4.500000 0.051777 +v -0.500000 4.500000 -0.125000 +v -0.426777 4.500000 -0.301777 +v -0.073223 4.500000 -0.301777 +v -0.250000 4.000000 -0.375000 +v -0.000000 4.000000 -0.125000 +v -0.073223 4.000000 0.051777 +v -0.250000 4.000000 0.125000 +v -0.426777 4.000000 0.051777 +v -0.500000 4.000000 -0.125000 +v -0.426777 4.000000 -0.301777 +v -0.073223 4.000000 -0.301777 +v -1.500000 0.500000 1.250000 +v -1.250000 0.500000 1.250000 +v -1.500000 0.500000 0.750000 +v -1.250000 0.500000 0.750000 +v -1.500000 0.750000 0.750000 +v -1.500000 0.750000 1.250000 +v -1.250000 0.750000 1.250000 +v -1.250000 0.750000 0.750000 +v -1.250000 0.500000 1.187500 +v 0.187500 0.500000 1.187500 +v -1.250000 0.500000 0.812500 +v 0.187500 0.500000 0.812500 +v -1.250000 0.687500 0.812500 +v -1.250000 0.687500 1.187500 +v -0.187500 0.687500 1.187500 +v -0.187500 0.687500 0.812500 +v -0.187500 1.625000 1.187500 +v -0.187500 1.625000 0.812500 +v 0.187500 1.625000 0.812500 +v 0.187500 1.625000 1.187500 +v 0.125000 1.375000 -2.250000 +v -0.125000 1.375000 -2.250000 +v 0.125000 1.125000 -2.500000 +v -0.125000 1.125000 -2.500000 +v 0.125000 1.625000 -2.250000 +v -0.125000 1.625000 -2.250000 +v 0.125000 1.375000 -2.500000 +v -0.125000 1.375000 -2.500000 +v 0.125000 1.062500 -2.500000 +v -0.125000 1.062500 -2.500000 +v 0.187500 1.125000 -2.500000 +v 0.187500 1.375000 -2.500000 +v -0.187500 1.125000 -2.500000 +v -0.187500 1.375000 -2.500000 +v 0.125000 1.312500 -2.250000 +v -0.125000 1.312500 -2.250000 +v 0.187500 1.375000 -2.250000 +v 0.187500 1.625000 -2.250000 +v -0.187500 1.375000 -2.250000 +v -0.187500 1.625000 -2.250000 +vt 0.413793 0.000000 +vt 0.068966 0.260870 +vt 0.068966 0.000000 +vt 0.344828 0.282609 +vt 0.413793 0.347826 +vt 0.344828 0.326087 +vt 0.000000 0.347826 +vt 0.034483 0.608696 +vt 0.000000 0.608696 +vt 0.413793 0.608696 +vt 0.482759 0.347826 +vt 0.482759 0.608696 +vt 0.068966 0.782609 +vt 0.137931 0.826087 +vt 0.068966 0.826087 +vt 0.206897 0.652174 +vt 0.413793 0.695652 +vt 0.034483 0.347826 +vt 0.172414 0.608696 +vt 0.206897 0.347826 +vt 0.206897 0.608696 +vt -0.000000 0.782609 +vt -0.000000 0.826087 +vt 0.068966 0.913043 +vt 0.137931 0.913043 +vt 0.172414 0.347826 +vt 0.965517 0.000000 +vt 0.896552 0.260870 +vt 0.896552 0.000000 +vt 0.620690 0.260870 +vt 0.551724 0.000000 +vt 0.620690 0.000000 +vt 0.827586 0.000000 +vt 0.482759 0.260870 +vt 0.482759 0.000000 +vt 0.758621 0.260870 +vt 0.758621 0.000000 +vt 0.689655 0.260870 +vt 0.689655 0.000000 +vt 0.413793 0.260870 +vt 0.413793 0.000000 +vt 0.689655 0.478261 +vt 0.689655 0.413043 +vt 0.741379 0.413043 +vt 0.620690 0.326087 +vt 0.568965 0.326087 +vt 0.620690 0.478261 +vt 0.620690 0.413043 +vt 0.689655 0.326087 +vt 0.741379 0.326087 +vt 0.568965 0.413043 +vt 0.310345 0.695652 +vt 0.241379 0.739130 +vt 0.241379 0.695652 +vt 0.310345 0.739130 +vt 0.241379 0.826087 +vt 0.551724 0.695652 +vt 0.500000 0.717391 +vt 0.500000 0.695652 +vt 0.620690 0.478261 +vt 0.551724 0.478261 +vt 0.500000 0.478261 +vt 0.482759 0.695652 +vt 0.482759 0.478261 +vt 0.344828 0.826087 +vt 0.344828 0.739130 +vt 0.206897 0.739130 +vt 0.206897 0.826087 +vt 0.241379 0.869565 +vt 0.310345 0.826087 +vt 0.310345 0.869565 +vt 0.465517 0.652174 +vt 0.431034 0.630435 +vt 0.465517 0.630435 +vt 0.413793 0.630435 +vt 0.431034 0.652174 +vt 0.413793 0.652174 +vt 0.482759 0.652174 +vt 0.482759 0.630435 +vt 0.431034 0.673913 +vt 0.465517 0.673913 +vt 0.465517 0.608696 +vt 0.431034 0.608696 +vt 0.500000 0.788043 +vt 0.474138 0.695652 +vt 0.500000 0.695652 +vt 0.396552 0.777174 +vt 0.409483 0.869565 +vt 0.396552 0.902174 +vt 0.577586 0.777174 +vt 0.564655 0.869565 +vt 0.564655 0.777174 +vt 0.620690 0.652174 +vt 0.689655 0.739130 +vt 0.620690 0.739130 +vt 0.758621 0.521739 +vt 0.689655 0.652174 +vt 0.689655 0.521739 +vt 0.896552 0.521739 +vt 0.827586 0.652174 +vt 0.827586 0.521739 +vt 0.620690 0.521739 +vt 0.758621 0.652174 +vt 0.465517 0.652174 +vt 0.431034 0.630435 +vt 0.465517 0.630435 +vt 0.500000 0.902174 +vt 0.474138 0.869565 +vt 0.500000 0.869565 +vt 0.474138 0.788043 +vt 0.474138 1.000000 +vt 0.500000 1.000000 +vt 0.474138 0.902174 +vt 0.206897 0.826087 +vt 0.137931 0.782609 +vt 0.206897 0.782609 +vt 0.137931 0.695652 +vt 0.068966 0.695652 +vt 0.275862 0.326087 +vt 0.413793 0.260870 +vt 0.275862 0.282609 +vt 0.206897 0.304348 +vt 0.068966 0.304348 +vt 0.344828 0.326087 +vt 0.275862 0.282609 +vt 0.344828 0.282609 +vt 0.810345 0.260870 +vt 0.775862 0.478261 +vt 0.775862 0.260870 +vt 0.741379 0.478261 +vt 0.741379 0.260870 +vt 0.844828 0.260870 +vt 0.810345 0.478261 +vt 0.810345 0.260870 +vt 0.879310 0.260870 +vt 0.844828 0.478261 +vt 0.913793 0.478261 +vt 0.948276 0.478261 +vt 0.913793 0.521739 +vt 0.879310 0.478261 +vt 0.844828 0.521739 +vt 0.948276 0.260870 +vt 0.913793 0.260870 +vt 0.810345 0.478261 +vt 0.775862 0.521739 +vt 0.879310 0.478261 +vt 0.879310 0.260870 +vt 0.068966 0.695652 +vt 0.068966 0.652174 +vt 0.413793 0.630435 +vt 0.431034 0.652174 +vt 0.413793 0.652174 +vt 0.482759 0.652174 +vt 0.482759 0.630435 +vt 0.431034 0.673913 +vt 0.465517 0.673913 +vt 0.465517 0.608696 +vt 0.431034 0.608696 +vt 0.500000 0.788043 +vt 0.474138 0.695652 +vt 0.500000 0.695652 +vt 0.396552 0.777174 +vt 0.409483 0.869565 +vt 0.396552 0.902174 +vt 0.577586 0.777174 +vt 0.564655 0.869565 +vt 0.564655 0.777174 +vt 0.500000 0.902174 +vt 0.474138 0.869565 +vt 0.500000 0.869565 +vt 0.474138 0.788043 +vt 0.474138 1.000000 +vt 0.500000 1.000000 +vt 0.474138 0.902174 +vt 0.181034 0.875000 +vt 0.198276 0.853261 +vt 0.198276 0.875000 +vt 0.137931 0.826087 +vt 0.155172 0.847826 +vt 0.137931 0.847826 +vt 0.241379 0.826087 +vt 0.224138 0.847826 +vt 0.224138 0.826087 +vt 0.181034 0.853261 +vt 0.198276 0.847826 +vt 0.181034 0.875000 +vt 0.176724 0.853261 +vt 0.202586 0.875000 +vt 0.198276 0.875000 +vt 0.181034 0.847826 +vt 0.202586 0.853261 +vt 0.219828 0.847826 +vt 0.202586 0.826087 +vt 0.219828 0.826087 +vt 0.198276 0.826087 +vt 0.176724 0.847826 +vt 0.181034 0.826087 +vt 0.159483 0.847826 +vt 0.176724 0.826087 +vt 0.202586 0.847826 +vt 0.159483 0.826087 +vt 0.155172 0.826087 +vt 0.965517 0.260870 +vt 0.551724 0.260870 +vt 0.827586 0.260870 +vt 0.551724 0.782609 +vt 0.620690 0.695652 +vt 0.409483 0.777174 +vt 0.577586 0.902174 +vt 0.896552 0.652174 +vt 0.275862 0.326087 +vt 0.409483 0.777174 +vt 0.577586 0.902174 +vt 0.241379 0.847826 +vt 0.176724 0.875000 +vt 0.831897 0.771739 +vt 0.844828 0.760870 +vt 0.844828 0.771739 +vt 0.857759 0.771739 +vt 0.870690 0.760870 +vt 0.870690 0.771739 +vt 0.883621 0.760870 +vt 0.883621 0.771739 +vt 0.793103 0.771739 +vt 0.806035 0.760870 +vt 0.806035 0.771739 +vt 0.818965 0.771739 +vt 0.831897 0.760870 +vt 0.857759 0.760870 +vt 0.896552 0.760870 +vt 0.896552 0.771739 +vt 0.818965 0.760870 +vt 0.831897 0.755435 +vt 0.818965 0.728261 +vt 0.831897 0.728261 +vt 0.857759 0.728261 +vt 0.857759 0.755435 +vt 0.806035 0.733696 +vt 0.818965 0.744565 +vt 0.844828 0.728261 +vt 0.870690 0.728261 +vt 0.870690 0.744565 +vt 0.883621 0.728261 +vt 0.883621 0.733696 +vt 0.870690 0.711957 +vt 0.883621 0.722826 +vt 0.831897 0.701087 +vt 0.857759 0.701087 +vt 0.806035 0.722826 +vt 0.818965 0.711957 +vt 0.844828 0.695652 +vt 0.896552 0.728261 +vt 0.793103 0.728261 +vt 0.806035 0.728261 +vt 0.793103 0.695652 +vt 0.806035 0.652174 +vt 0.806035 0.695652 +vt 0.870690 0.695652 +vt 0.883621 0.652174 +vt 0.883621 0.695652 +vt 0.896552 0.652174 +vt 0.896552 0.695652 +vt 0.818965 0.695652 +vt 0.831897 0.652174 +vt 0.831897 0.695652 +vt 0.857759 0.652174 +vt 0.857759 0.695652 +vt 0.818965 0.652174 +vt 0.844828 0.652174 +vt 0.870690 0.652174 +vt 0.728448 0.771739 +vt 0.741379 0.760870 +vt 0.741379 0.771739 +vt 0.754310 0.771739 +vt 0.767241 0.760870 +vt 0.767241 0.771739 +vt 0.780172 0.760870 +vt 0.780172 0.771739 +vt 0.689655 0.771739 +vt 0.702586 0.760870 +vt 0.702586 0.771739 +vt 0.715517 0.771739 +vt 0.728448 0.760870 +vt 0.754310 0.760870 +vt 0.793103 0.760870 +vt 0.793103 0.771739 +vt 0.715517 0.760870 +vt 0.728448 0.755435 +vt 0.715517 0.728261 +vt 0.728448 0.728261 +vt 0.754310 0.728261 +vt 0.754310 0.755435 +vt 0.715517 0.744565 +vt 0.702586 0.728261 +vt 0.741379 0.728261 +vt 0.767241 0.728261 +vt 0.767241 0.744565 +vt 0.780172 0.728261 +vt 0.780172 0.733696 +vt 0.767241 0.711957 +vt 0.780172 0.722826 +vt 0.715517 0.711957 +vt 0.728448 0.701087 +vt 0.741379 0.695652 +vt 0.754310 0.701087 +vt 0.702586 0.722826 +vt 0.793103 0.728261 +vt 0.702586 0.733696 +vt 0.689655 0.728261 +vt 0.689655 0.695652 +vt 0.702586 0.652174 +vt 0.702586 0.695652 +vt 0.767241 0.695652 +vt 0.780172 0.652174 +vt 0.780172 0.695652 +vt 0.793103 0.652174 +vt 0.793103 0.695652 +vt 0.715517 0.695652 +vt 0.728448 0.652174 +vt 0.728448 0.695652 +vt 0.754310 0.652174 +vt 0.754310 0.695652 +vt 0.715517 0.652174 +vt 0.741379 0.652174 +vt 0.767241 0.652174 +vt 0.935345 0.902174 +vt 0.948276 0.891304 +vt 0.948276 0.902174 +vt 0.961207 0.902174 +vt 0.974138 0.891304 +vt 0.974138 0.902174 +vt 0.987069 0.891304 +vt 0.987069 0.902174 +vt 0.896552 0.902174 +vt 0.909483 0.891304 +vt 0.909483 0.902174 +vt 0.922414 0.902174 +vt 0.935345 0.891304 +vt 0.961207 0.891304 +vt 1.000000 0.891304 +vt 1.000000 0.902174 +vt 0.922414 0.891304 +vt 0.935345 0.885870 +vt 0.922414 0.858696 +vt 0.935345 0.858696 +vt 0.961207 0.858696 +vt 0.961207 0.885870 +vt 0.909483 0.864130 +vt 0.922414 0.875000 +vt 0.948276 0.858696 +vt 0.974138 0.858696 +vt 0.974138 0.875000 +vt 0.987069 0.864130 +vt 0.987069 0.858696 +vt 0.961207 0.831522 +vt 0.974138 0.842391 +vt 0.987069 0.853261 +vt 0.935345 0.831522 +vt 0.948276 0.826087 +vt 0.909483 0.858696 +vt 0.922414 0.842391 +vt 1.000000 0.858696 +vt 0.896552 0.858696 +vt 0.909483 0.853261 +vt 0.896552 0.826087 +vt 0.909483 0.673913 +vt 0.909483 0.826087 +vt 0.974138 0.826087 +vt 0.987069 0.673913 +vt 0.987069 0.826087 +vt 1.000000 0.673913 +vt 1.000000 0.826087 +vt 0.922414 0.826087 +vt 0.935345 0.673913 +vt 0.935345 0.826087 +vt 0.961207 0.673913 +vt 0.961207 0.826087 +vt 0.922414 0.673913 +vt 0.948276 0.673913 +vt 0.974138 0.673913 +vt 0.922414 0.657609 +vt 0.909483 0.641304 +vt 0.922414 0.641304 +vt 0.961207 0.646739 +vt 0.974138 0.641304 +vt 0.974138 0.657609 +vt 0.896552 0.673913 +vt 0.909483 0.668478 +vt 0.987069 0.641304 +vt 0.987069 0.668478 +vt 0.935345 0.646739 +vt 0.935345 0.641304 +vt 1.000000 0.641304 +vt 0.987069 0.614130 +vt 1.000000 0.608696 +vt 0.909483 0.614130 +vt 0.922414 0.625000 +vt 0.961207 0.635870 +vt 0.974138 0.625000 +vt 0.896552 0.641304 +vt 0.935345 0.635870 +vt 0.948276 0.641304 +vt 0.961207 0.641304 +vt 0.948276 0.440217 +vt 0.974138 0.456522 +vt 0.948276 0.456522 +vt 0.948276 0.472826 +vt 0.974138 0.489130 +vt 0.948276 0.489130 +vt 0.974138 0.505435 +vt 0.948276 0.505435 +vt 0.948276 0.391304 +vt 0.974138 0.407609 +vt 0.948276 0.407609 +vt 0.948276 0.423913 +vt 0.974138 0.440217 +vt 0.974138 0.472826 +vt 0.974138 0.521739 +vt 0.948276 0.521739 +vt 0.974138 0.423913 +vt 0.948276 0.309783 +vt 0.974138 0.326087 +vt 0.948276 0.326087 +vt 0.948276 0.342391 +vt 0.974138 0.358696 +vt 0.948276 0.358696 +vt 0.974138 0.375000 +vt 0.948276 0.375000 +vt 0.948276 0.260870 +vt 0.974138 0.277174 +vt 0.948276 0.277174 +vt 0.948276 0.293478 +vt 0.974138 0.309783 +vt 0.974138 0.342391 +vt 0.974138 0.391304 +vt 0.948276 0.391304 +vt 0.974138 0.293478 +vt 0.857759 0.755435 +vt 0.870690 0.728261 +vt 0.870690 0.744565 +vt 0.831897 0.755435 +vt 0.844828 0.728261 +vt 0.844828 0.760870 +vt 0.806035 0.733696 +vt 0.818965 0.728261 +vt 0.818965 0.744565 +vt 0.857759 0.728261 +vt 0.831897 0.728261 +vt 0.806035 0.771739 +vt 0.818965 0.760870 +vt 0.818965 0.771739 +vt 0.883621 0.771739 +vt 0.896552 0.760870 +vt 0.896552 0.771739 +vt 0.844828 0.771739 +vt 0.857759 0.760870 +vt 0.857759 0.771739 +vt 0.831897 0.760870 +vt 0.831897 0.771739 +vt 0.793103 0.771739 +vt 0.806035 0.760870 +vt 0.987069 0.608696 +vt 1.000000 0.597826 +vt 0.909483 0.608696 +vt 0.922414 0.597826 +vt 0.922414 0.608696 +vt 0.961207 0.608696 +vt 0.974138 0.597826 +vt 0.974138 0.608696 +vt 0.935345 0.608696 +vt 0.948276 0.597826 +vt 0.948276 0.608696 +vt 0.896552 0.608696 +vt 0.909483 0.597826 +vt 0.961207 0.597826 +vt 0.987069 0.597826 +vt 0.935345 0.597826 +vt 0.961207 0.592391 +vt 0.948276 0.565217 +vt 0.961207 0.565217 +vt 0.987069 0.592391 +vt 1.000000 0.565217 +vt 1.000000 0.581522 +vt 0.974138 0.565217 +vt 0.935345 0.570652 +vt 0.948276 0.581522 +vt 0.909483 0.570652 +vt 0.896552 0.565217 +vt 0.909483 0.565217 +vt 0.987069 0.565217 +vt 0.974138 0.532609 +vt 0.987069 0.538043 +vt 0.961207 0.538043 +vt 1.000000 0.548913 +vt 0.935345 0.565217 +vt 0.948276 0.548913 +vt 0.909483 0.559783 +vt 0.922414 0.565217 +vt 0.935345 0.559783 +vt 0.948276 0.532609 +vt 0.961207 0.521739 +vt 0.961207 0.532609 +vt 0.987069 0.532609 +vt 1.000000 0.521739 +vt 1.000000 0.532609 +vt 0.974138 0.521739 +vt 0.922414 0.532609 +vt 0.935345 0.521739 +vt 0.935345 0.532609 +vt 0.948276 0.521739 +vt 0.909483 0.532609 +vt 0.922414 0.521739 +vt 0.896552 0.532609 +vt 0.909483 0.521739 +vt 0.987069 0.521739 +vt 0.870690 0.771739 +vt 0.883621 0.760870 +vt 0.870690 0.760870 +vt 0.883621 0.728261 +vt 0.883621 0.733696 +vt 0.870690 0.711957 +vt 0.883621 0.722826 +vt 0.831897 0.701087 +vt 0.857759 0.701087 +vt 0.806035 0.722826 +vt 0.818965 0.711957 +vt 0.844828 0.695652 +vt 0.896552 0.728261 +vt 0.793103 0.728261 +vt 0.806035 0.728261 +vt 0.793103 0.695652 +vt 0.806035 0.652174 +vt 0.806035 0.695652 +vt 0.870690 0.695652 +vt 0.883621 0.652174 +vt 0.883621 0.695652 +vt 0.896552 0.652174 +vt 0.896552 0.695652 +vt 0.818965 0.695652 +vt 0.831897 0.652174 +vt 0.831897 0.695652 +vt 0.857759 0.652174 +vt 0.857759 0.695652 +vt 0.818965 0.652174 +vt 0.844828 0.652174 +vt 0.870690 0.652174 +vt 0.728448 0.771739 +vt 0.741379 0.760870 +vt 0.741379 0.771739 +vt 0.754310 0.771739 +vt 0.767241 0.760870 +vt 0.767241 0.771739 +vt 0.780172 0.760870 +vt 0.780172 0.771739 +vt 0.689655 0.771739 +vt 0.702586 0.760870 +vt 0.702586 0.771739 +vt 0.715517 0.771739 +vt 0.728448 0.760870 +vt 0.754310 0.760870 +vt 0.793103 0.760870 +vt 0.793103 0.771739 +vt 0.715517 0.760870 +vt 0.715517 0.744565 +vt 0.728448 0.728261 +vt 0.728448 0.755435 +vt 0.754310 0.728261 +vt 0.754310 0.755435 +vt 0.702586 0.728261 +vt 0.715517 0.728261 +vt 0.741379 0.728261 +vt 0.767241 0.728261 +vt 0.767241 0.744565 +vt 0.780172 0.728261 +vt 0.780172 0.733696 +vt 0.754310 0.701087 +vt 0.767241 0.711957 +vt 0.780172 0.722826 +vt 0.728448 0.701087 +vt 0.702586 0.722826 +vt 0.715517 0.711957 +vt 0.741379 0.695652 +vt 0.793103 0.728261 +vt 0.702586 0.733696 +vt 0.689655 0.728261 +vt 0.689655 0.695652 +vt 0.702586 0.652174 +vt 0.702586 0.695652 +vt 0.767241 0.695652 +vt 0.780172 0.652174 +vt 0.780172 0.695652 +vt 0.793103 0.652174 +vt 0.793103 0.695652 +vt 0.715517 0.695652 +vt 0.728448 0.652174 +vt 0.728448 0.695652 +vt 0.754310 0.652174 +vt 0.754310 0.695652 +vt 0.715517 0.652174 +vt 0.741379 0.652174 +vt 0.767241 0.652174 +vt 0.831897 0.771739 +vt 0.844828 0.760870 +vt 0.844828 0.771739 +vt 0.857759 0.771739 +vt 0.870690 0.760870 +vt 0.870690 0.771739 +vt 0.883621 0.760870 +vt 0.883621 0.771739 +vt 0.793103 0.771739 +vt 0.806035 0.760870 +vt 0.806035 0.771739 +vt 0.818965 0.771739 +vt 0.831897 0.760870 +vt 0.857759 0.760870 +vt 0.896552 0.760870 +vt 0.896552 0.771739 +vt 0.818965 0.760870 +vt 0.831897 0.755435 +vt 0.818965 0.728261 +vt 0.831897 0.728261 +vt 0.857759 0.728261 +vt 0.857759 0.755435 +vt 0.806035 0.733696 +vt 0.818965 0.744565 +vt 0.844828 0.728261 +vt 0.870690 0.728261 +vt 0.870690 0.744565 +vt 0.883621 0.728261 +vt 0.883621 0.733696 +vt 0.870690 0.711957 +vt 0.883621 0.722826 +vt 0.831897 0.701087 +vt 0.857759 0.701087 +vt 0.806035 0.722826 +vt 0.818965 0.711957 +vt 0.844828 0.695652 +vt 0.896552 0.728261 +vt 0.793103 0.728261 +vt 0.806035 0.728261 +vt 0.793103 0.695652 +vt 0.806035 0.652174 +vt 0.806035 0.695652 +vt 0.870690 0.695652 +vt 0.883621 0.652174 +vt 0.883621 0.695652 +vt 0.896552 0.652174 +vt 0.896552 0.695652 +vt 0.818965 0.695652 +vt 0.831897 0.652174 +vt 0.831897 0.695652 +vt 0.857759 0.652174 +vt 0.857759 0.695652 +vt 0.818965 0.652174 +vt 0.844828 0.652174 +vt 0.870690 0.652174 +vt 0.728448 0.771739 +vt 0.741379 0.760870 +vt 0.741379 0.771739 +vt 0.754310 0.771739 +vt 0.767241 0.760870 +vt 0.767241 0.771739 +vt 0.780172 0.760870 +vt 0.780172 0.771739 +vt 0.689655 0.771739 +vt 0.702586 0.760870 +vt 0.702586 0.771739 +vt 0.715517 0.771739 +vt 0.728448 0.760870 +vt 0.754310 0.760870 +vt 0.793103 0.760870 +vt 0.793103 0.771739 +vt 0.715517 0.760870 +vt 0.728448 0.755435 +vt 0.715517 0.728261 +vt 0.728448 0.728261 +vt 0.754310 0.728261 +vt 0.754310 0.755435 +vt 0.715517 0.744565 +vt 0.702586 0.728261 +vt 0.741379 0.728261 +vt 0.767241 0.744565 +vt 0.767241 0.728261 +vt 0.780172 0.728261 +vt 0.780172 0.733696 +vt 0.754310 0.701087 +vt 0.767241 0.711957 +vt 0.780172 0.722826 +vt 0.728448 0.701087 +vt 0.702586 0.722826 +vt 0.715517 0.711957 +vt 0.741379 0.695652 +vt 0.793103 0.728261 +vt 0.702586 0.733696 +vt 0.689655 0.728261 +vt 0.689655 0.695652 +vt 0.702586 0.652174 +vt 0.702586 0.695652 +vt 0.767241 0.695652 +vt 0.780172 0.652174 +vt 0.780172 0.695652 +vt 0.793103 0.652174 +vt 0.793103 0.695652 +vt 0.715517 0.695652 +vt 0.728448 0.652174 +vt 0.728448 0.695652 +vt 0.754310 0.652174 +vt 0.754310 0.695652 +vt 0.715517 0.652174 +vt 0.741379 0.652174 +vt 0.767241 0.652174 +vt 0.857759 0.755435 +vt 0.870690 0.728261 +vt 0.870690 0.744565 +vt 0.844828 0.760870 +vt 0.831897 0.728261 +vt 0.844828 0.728261 +vt 0.806035 0.733696 +vt 0.818965 0.728261 +vt 0.818965 0.744565 +vt 0.857759 0.728261 +vt 0.831897 0.755435 +vt 0.806035 0.771739 +vt 0.818965 0.760870 +vt 0.818965 0.771739 +vt 0.883621 0.771739 +vt 0.896552 0.760870 +vt 0.896552 0.771739 +vt 0.844828 0.771739 +vt 0.857759 0.760870 +vt 0.857759 0.771739 +vt 0.831897 0.760870 +vt 0.831897 0.771739 +vt 0.793103 0.771739 +vt 0.806035 0.760870 +vt 0.870690 0.771739 +vt 0.883621 0.760870 +vt 0.870690 0.760870 +vt 0.883621 0.728261 +vt 0.883621 0.733696 +vt 0.857759 0.701087 +vt 0.870690 0.711957 +vt 0.883621 0.722826 +vt 0.831897 0.701087 +vt 0.844828 0.695652 +vt 0.806035 0.728261 +vt 0.818965 0.711957 +vt 0.896552 0.728261 +vt 0.793103 0.728261 +vt 0.806035 0.722826 +vt 0.793103 0.695652 +vt 0.806035 0.652174 +vt 0.806035 0.695652 +vt 0.870690 0.695652 +vt 0.883621 0.652174 +vt 0.883621 0.695652 +vt 0.896552 0.652174 +vt 0.896552 0.695652 +vt 0.818965 0.695652 +vt 0.831897 0.652174 +vt 0.831897 0.695652 +vt 0.857759 0.652174 +vt 0.857759 0.695652 +vt 0.818965 0.652174 +vt 0.844828 0.652174 +vt 0.870690 0.652174 +vt 0.728448 0.771739 +vt 0.741379 0.760870 +vt 0.741379 0.771739 +vt 0.754310 0.771739 +vt 0.767241 0.760870 +vt 0.767241 0.771739 +vt 0.780172 0.760870 +vt 0.780172 0.771739 +vt 0.689655 0.771739 +vt 0.702586 0.760870 +vt 0.702586 0.771739 +vt 0.715517 0.771739 +vt 0.728448 0.760870 +vt 0.754310 0.760870 +vt 0.793103 0.760870 +vt 0.793103 0.771739 +vt 0.715517 0.760870 +vt 0.715517 0.744565 +vt 0.728448 0.728261 +vt 0.728448 0.755435 +vt 0.754310 0.728261 +vt 0.754310 0.755435 +vt 0.702586 0.728261 +vt 0.715517 0.728261 +vt 0.741379 0.728261 +vt 0.767241 0.728261 +vt 0.767241 0.744565 +vt 0.780172 0.728261 +vt 0.780172 0.733696 +vt 0.767241 0.711957 +vt 0.780172 0.722826 +vt 0.728448 0.701087 +vt 0.741379 0.695652 +vt 0.754310 0.701087 +vt 0.715517 0.711957 +vt 0.793103 0.728261 +vt 0.702586 0.733696 +vt 0.689655 0.728261 +vt 0.702586 0.722826 +vt 0.689655 0.695652 +vt 0.702586 0.652174 +vt 0.702586 0.695652 +vt 0.767241 0.695652 +vt 0.780172 0.652174 +vt 0.780172 0.695652 +vt 0.793103 0.652174 +vt 0.793103 0.695652 +vt 0.715517 0.695652 +vt 0.728448 0.652174 +vt 0.728448 0.695652 +vt 0.754310 0.652174 +vt 0.754310 0.695652 +vt 0.715517 0.652174 +vt 0.741379 0.652174 +vt 0.767241 0.652174 +vt 0.793103 0.760870 +vt 0.793103 0.652174 +vt 0.689655 0.760870 +vt 0.689655 0.652174 +vt 0.896552 0.891304 +vt 0.974138 0.391304 +vt 0.974138 0.260870 +vt 0.793103 0.760870 +vt 0.896552 0.597826 +vt 0.896552 0.581522 +vt 0.896552 0.548913 +vt 0.896552 0.521739 +vt 0.793103 0.652174 +vt 0.689655 0.760870 +vt 0.689655 0.652174 +vt 0.793103 0.760870 +vt 0.793103 0.652174 +vt 0.689655 0.760870 +vt 0.689655 0.652174 +vt 0.793103 0.760870 +vt 0.793103 0.652174 +vt 0.689655 0.760870 +vt 0.689655 0.652174 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.4851 0.7276 -0.4851 +vn 0.4851 0.7276 0.4851 +vn 0.5547 0.8321 0.0000 +vn -0.5547 0.8321 0.0000 +vn 0.0000 0.8321 -0.5547 +vn -0.4851 0.7276 0.4851 +vn 0.4851 0.7276 -0.4851 +vn 0.0000 0.8321 0.5547 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.5774 -0.5774 0.5774 +vn -0.5774 -0.5774 0.5774 +vn 0.0000 0.7071 0.7071 +vn 0.1866 0.9824 0.0000 +vn 0.0196 0.0473 -0.9987 +vn -0.1363 -0.6737 -0.7263 +vn 0.0000 -0.7071 -0.7071 +vn -0.1363 -0.6737 0.7263 +vn 0.1447 0.7194 0.6794 +vn 0.1447 0.7194 -0.6794 +vn -0.7071 -0.7071 0.0000 +vn 0.0196 0.0473 0.9987 +vn 0.0670 0.0670 0.9955 +vn 0.5293 0.5293 0.6630 +vn 0.5293 0.5293 -0.6630 +vn 0.7071 0.7071 0.0000 +vn 0.0670 0.0670 -0.9955 +vn -0.4617 -0.4617 -0.7573 +vn 0.0473 0.0196 -0.9987 +vn -0.6737 -0.1363 -0.7263 +vn 0.7194 0.1447 0.6794 +vn 0.7194 0.1447 -0.6794 +vn -0.6737 -0.1363 0.7263 +vn 0.0473 0.0196 0.9987 +vn 0.9824 0.1866 0.0000 +vn -0.4617 -0.4617 0.7573 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.9824 0.1866 +vn 0.9987 0.0473 0.0196 +vn 0.7263 -0.6737 -0.1363 +vn 0.7071 -0.7071 0.0000 +vn -0.7263 -0.6737 -0.1363 +vn -0.6794 0.7194 0.1447 +vn 0.6794 0.7194 0.1447 +vn -0.9987 0.0473 0.0196 +vn -0.9955 0.0670 0.0670 +vn -0.6630 0.5293 0.5293 +vn 0.6630 0.5293 0.5293 +vn 0.9955 0.0670 0.0670 +vn 0.7573 -0.4617 -0.4617 +vn 0.6794 0.1447 0.7194 +vn 0.9987 0.0196 0.0473 +vn 0.7263 -0.1363 -0.6737 +vn -0.6794 0.1447 0.7194 +vn 0.0000 0.1866 0.9824 +vn -0.7573 -0.4617 -0.4617 +vn -0.9987 0.0196 0.0473 +vn -0.7263 -0.1363 -0.6737 +vn -0.6794 -0.1447 -0.7194 +vn 0.6794 -0.1447 -0.7194 +vn 0.0000 -0.1866 -0.9824 +vn -0.7263 0.1363 0.6737 +vn 0.7263 0.1363 0.6737 +vn -0.9987 -0.0196 -0.0473 +vn 0.9987 -0.0196 -0.0473 +vn -0.6630 -0.5293 -0.5293 +vn -0.9955 -0.0670 -0.0670 +vn 0.9955 -0.0670 -0.0670 +vn 0.6630 -0.5293 -0.5293 +vn -0.7573 0.4617 0.4617 +vn 0.6794 -0.7194 -0.1447 +vn 0.0000 -0.9824 -0.1866 +vn -0.6794 -0.7194 -0.1447 +vn -0.9987 -0.0473 -0.0196 +vn 0.7263 0.6737 0.1363 +vn 0.9987 -0.0473 -0.0196 +vn -0.7263 0.6737 0.1363 +vn 0.7573 0.4617 0.4617 +vn -0.1447 0.7194 0.6794 +vn -0.0670 0.0670 0.9955 +vn -0.0196 0.0473 0.9987 +vn -0.1447 0.7194 -0.6794 +vn -0.1866 0.9824 0.0000 +vn 0.1363 -0.6737 -0.7263 +vn -0.0670 0.0670 -0.9955 +vn -0.0196 0.0473 -0.9987 +vn -0.5293 0.5293 0.6630 +vn -0.5293 0.5293 -0.6630 +vn 0.0473 -0.9987 0.0196 +vn 0.9824 0.0000 0.1866 +vn 0.0473 0.9987 0.0196 +vn -0.6737 -0.7263 -0.1363 +vn 0.7194 0.6794 0.1447 +vn 0.7194 -0.6794 0.1447 +vn -0.6737 0.7263 -0.1363 +vn 0.0670 0.9955 0.0670 +vn 0.5293 0.6630 0.5293 +vn 0.0670 -0.9955 0.0670 +vn -0.4617 -0.7573 -0.4617 +vn 0.5293 -0.6630 0.5293 +vn 0.1866 0.0000 0.9824 +vn 0.1447 -0.6794 0.7194 +vn 0.1447 0.6794 0.7194 +vn 0.0196 -0.9987 0.0473 +vn -0.4617 0.7573 -0.4617 +vn 0.0196 0.9987 0.0473 +vn -0.1363 -0.7263 -0.6737 +vn -0.1363 0.7263 -0.6737 +vn 0.1363 -0.6737 0.7263 +vn 0.4617 -0.4617 0.7573 +vn -0.0473 0.0196 0.9987 +vn 0.6737 -0.1363 0.7263 +vn -0.7194 0.1447 -0.6794 +vn -0.7194 0.1447 0.6794 +vn 0.6737 -0.1363 -0.7263 +vn -0.0473 0.0196 -0.9987 +vn -0.9824 0.1866 0.0000 +vn 0.4617 -0.4617 -0.7573 +vn 0.0000 0.9824 -0.1866 +vn -0.9987 0.0473 -0.0196 +vn -0.7263 -0.6737 0.1363 +vn 0.7263 -0.6737 0.1363 +vn 0.6794 0.7194 -0.1447 +vn -0.6794 0.7194 -0.1447 +vn 0.9987 0.0473 -0.0196 +vn 0.9955 0.0670 -0.0670 +vn 0.6630 0.5293 -0.5293 +vn -0.6630 0.5293 -0.5293 +vn -0.9955 0.0670 -0.0670 +vn -0.7573 -0.4617 0.4617 +vn -0.9987 0.0196 -0.0473 +vn -0.7263 -0.1363 0.6737 +vn 0.6794 0.1447 -0.7194 +vn -0.6794 0.1447 -0.7194 +vn 0.7263 -0.1363 0.6737 +vn 0.9987 0.0196 -0.0473 +vn 0.0000 0.1866 -0.9824 +vn 0.7573 -0.4617 0.4617 +s off +f 19/29/7 18/30/7 17/31/7 +f 302/32/8 28/33/8 301/34/8 +f 18/35/9 22/36/9 17/37/9 +f 29/38/10 20/39/10 19/40/10 +f 303/41/8 306/42/8 305/43/8 +f 25/44/11 29/38/11 19/45/11 +f 23/46/12 25/47/12 22/36/12 +f 27/48/12 29/38/12 30/49/12 +f 24/50/10 305/43/10 21/51/10 +f 21/52/7 306/42/7 301/53/7 +f 26/54/9 30/49/9 25/47/9 +f 31/55/11 41/56/11 33/57/11 +f 40/58/13 35/59/13 32/60/13 +f 41/56/14 38/61/14 33/57/14 +f 35/59/9 45/62/9 37/63/9 +f 38/61/10 44/64/10 36/65/10 +f 36/65/15 42/66/15 34/67/15 +f 37/63/16 39/68/16 31/69/16 +f 34/67/8 40/58/8 32/60/8 +f 41/70/17 47/71/17 46/72/17 +f 40/58/18 50/73/18 43/74/18 +f 42/66/19 50/73/19 40/58/19 +f 47/71/20 39/75/20 48/76/20 +f 46/72/21 49/77/21 44/78/21 +f 45/79/22 48/76/22 39/75/22 +f 49/80/8 62/81/8 50/82/8 +f 44/78/23 49/77/23 42/66/23 +f 50/73/24 45/79/24 43/74/24 +f 61/83/12 60/84/12 62/81/12 +f 56/85/12 57/86/12 55/87/12 +f 54/88/8 56/85/8 52/89/8 +f 51/90/11 57/91/11 53/92/11 +f 47/93/10 61/83/10 49/94/10 +f 52/89/9 55/87/9 51/90/9 +f 50/95/9 60/84/9 48/96/9 +f 48/97/11 59/98/11 47/99/11 +f 237/100/12 235/101/12 236/102/12 +f 233/103/10 238/104/10 234/105/10 +f 232/106/9 236/102/9 231/107/9 +f 234/108/8 237/100/8 232/109/8 +f 231/110/11 235/101/11 233/111/11 +f 245/112/12 243/113/12 244/114/12 +f 241/115/10 246/116/10 242/117/10 +f 239/118/9 245/119/9 244/120/9 +f 261/121/12 259/122/12 260/123/12 +f 257/124/10 262/125/10 258/126/10 +f 256/127/9 260/128/9 255/129/9 +f 258/126/8 261/121/8 256/130/8 +f 255/129/11 259/131/11 257/124/11 +f 543/132/12 541/133/12 542/134/12 +f 296/135/12 294/136/12 293/137/12 +f 245/119/9 296/135/9 293/137/9 +f 245/112/11 294/136/11 246/138/11 +f 242/139/8 296/135/8 240/140/8 +f 246/116/10 295/141/10 242/117/10 +f 301/142/9 304/143/9 302/144/9 +f 302/145/12 303/41/12 24/146/12 +f 28/33/8 21/147/8 301/34/8 +f 20/148/8 24/149/8 18/30/8 +f 21/147/8 26/150/8 24/149/8 +f 18/30/8 26/150/8 23/151/8 +f 309/152/8 308/153/8 310/154/8 +f 312/155/10 316/156/10 313/157/10 +f 313/157/8 315/158/8 311/159/8 +f 318/160/10 322/161/10 319/162/10 +f 317/163/11 320/164/11 318/160/11 +f 327/165/12 328/166/12 326/167/12 +f 320/164/12 321/168/12 322/169/12 +f 324/170/9 327/165/9 323/171/9 +f 316/156/12 314/172/12 315/173/12 +f 323/171/11 326/174/11 325/175/11 +f 25/44/11 17/176/11 22/177/11 +f 539/178/10 544/179/10 540/180/10 +f 538/181/9 542/134/9 537/182/9 +f 540/183/8 543/132/8 538/184/8 +f 537/185/11 541/133/11 539/186/11 +f 551/187/12 549/188/12 550/189/12 +f 547/190/10 552/191/10 548/192/10 +f 545/193/9 551/194/9 550/195/9 +f 556/196/12 554/197/12 553/198/12 +f 551/194/9 556/196/9 553/198/9 +f 551/187/11 554/197/11 552/199/11 +f 548/200/8 556/196/8 546/201/8 +f 552/191/10 555/202/10 548/192/10 +f 557/203/25 560/204/25 558/205/25 +f 557/206/11 563/207/11 559/208/11 +f 558/209/8 564/210/8 562/211/8 +f 559/212/10 566/213/10 560/204/10 +f 563/214/10 567/215/10 559/212/10 +f 560/204/10 570/216/10 564/217/10 +f 559/212/10 567/215/10 565/218/10 +f 560/204/10 566/213/10 569/219/10 +f 570/220/11 575/221/11 576/222/11 +f 565/218/26 572/223/26 566/213/26 +f 567/224/27 571/225/27 565/218/27 +f 568/226/8 573/227/8 567/224/8 +f 569/228/28 572/223/28 575/221/28 +f 574/229/25 563/207/25 561/230/25 +f 570/220/25 562/211/25 564/210/25 +f 19/29/7 20/148/7 18/30/7 +f 302/32/8 20/148/8 28/33/8 +f 18/35/9 23/46/9 22/36/9 +f 29/38/10 28/33/10 20/39/10 +f 303/41/8 304/143/8 306/42/8 +f 25/44/11 30/49/11 29/38/11 +f 23/46/12 26/54/12 25/47/12 +f 27/48/12 28/33/12 29/38/12 +f 24/50/10 303/41/10 305/43/10 +f 21/52/7 305/43/7 306/42/7 +f 26/54/9 27/48/9 30/49/9 +f 31/55/11 39/231/11 41/56/11 +f 40/58/13 43/232/13 35/59/13 +f 41/56/14 46/233/14 38/61/14 +f 35/59/9 43/232/9 45/62/9 +f 38/61/10 46/233/10 44/64/10 +f 36/65/15 44/64/15 42/66/15 +f 37/63/16 45/62/16 39/68/16 +f 34/67/8 42/66/8 40/58/8 +f 42/66/19 49/77/19 50/73/19 +f 47/71/20 41/70/20 39/75/20 +f 46/72/21 47/71/21 49/77/21 +f 49/80/8 61/83/8 62/81/8 +f 50/73/24 48/76/24 45/79/24 +f 61/83/12 59/98/12 60/84/12 +f 56/85/12 58/234/12 57/86/12 +f 54/88/8 58/235/8 56/85/8 +f 51/90/11 55/87/11 57/91/11 +f 47/93/10 59/98/10 61/83/10 +f 52/89/9 56/85/9 55/87/9 +f 50/95/9 62/81/9 60/84/9 +f 48/97/11 60/84/11 59/98/11 +f 237/100/12 238/104/12 235/101/12 +f 233/103/10 235/101/10 238/104/10 +f 232/106/9 237/100/9 236/102/9 +f 234/108/8 238/104/8 237/100/8 +f 231/110/11 236/102/11 235/101/11 +f 245/112/12 246/138/12 243/113/12 +f 241/115/10 243/236/10 246/116/10 +f 239/118/9 240/237/9 245/119/9 +f 261/121/12 262/125/12 259/122/12 +f 257/124/10 259/131/10 262/125/10 +f 256/127/9 261/238/9 260/128/9 +f 258/126/8 262/125/8 261/121/8 +f 255/129/11 260/128/11 259/131/11 +f 543/132/12 544/179/12 541/133/12 +f 296/135/12 295/141/12 294/136/12 +f 245/119/9 240/237/9 296/135/9 +f 245/112/11 293/137/11 294/136/11 +f 242/139/8 295/141/8 296/135/8 +f 246/116/10 294/136/10 295/141/10 +f 301/142/9 306/42/9 304/143/9 +f 302/145/12 304/143/12 303/41/12 +f 28/33/8 27/48/8 21/147/8 +f 20/148/8 302/32/8 24/149/8 +f 21/147/8 27/48/8 26/150/8 +f 18/30/8 24/149/8 26/150/8 +f 309/152/8 307/239/8 308/153/8 +f 312/155/10 314/172/10 316/156/10 +f 313/157/8 316/156/8 315/158/8 +f 318/160/10 320/164/10 322/161/10 +f 317/163/11 321/168/11 320/164/11 +f 324/170/9 328/166/9 327/165/9 +f 323/171/11 327/165/11 326/174/11 +f 25/44/11 19/45/11 17/176/11 +f 539/178/10 541/133/10 544/179/10 +f 538/181/9 543/132/9 542/134/9 +f 540/183/8 544/179/8 543/132/8 +f 537/185/11 542/134/11 541/133/11 +f 551/187/12 552/199/12 549/188/12 +f 547/190/10 549/240/10 552/191/10 +f 545/193/9 546/241/9 551/194/9 +f 556/196/12 555/202/12 554/197/12 +f 551/194/9 546/241/9 556/196/9 +f 551/187/11 553/198/11 554/197/11 +f 548/200/8 555/202/8 556/196/8 +f 552/191/10 554/197/10 555/202/10 +f 557/203/25 559/212/25 560/204/25 +f 557/206/11 561/230/11 563/207/11 +f 558/209/8 560/242/8 564/210/8 +f 559/212/10 565/218/10 566/213/10 +f 563/214/10 568/243/10 567/215/10 +f 560/204/10 569/219/10 570/216/10 +f 570/220/11 569/228/11 575/221/11 +f 565/218/26 571/225/26 572/223/26 +f 567/224/27 573/227/27 571/225/27 +f 568/226/8 574/229/8 573/227/8 +f 569/228/28 566/213/28 572/223/28 +f 574/229/25 568/226/25 563/207/25 +f 570/220/25 576/222/25 562/211/25 +s 1 +f 66/244/29 73/245/30 65/246/12 +f 64/247/25 71/248/31 63/249/10 +f 63/249/10 78/250/32 70/251/33 +f 69/252/7 76/253/34 68/254/26 +f 67/255/9 74/256/35 66/244/29 +f 65/246/12 72/257/36 64/247/25 +f 70/251/33 77/258/37 69/259/7 +f 68/254/26 75/260/38 67/255/9 +f 74/261/35 83/262/39 82/263/40 +f 73/245/30 80/264/41 72/265/36 +f 76/266/34 83/262/39 75/267/38 +f 74/261/35 81/268/42 73/245/30 +f 72/265/36 79/269/43 71/270/31 +f 71/270/31 85/271/44 78/272/32 +f 80/264/41 86/273/45 79/269/43 +f 79/269/43 92/274/46 85/271/44 +f 83/262/39 89/275/47 82/263/40 +f 81/268/42 87/276/48 80/264/41 +f 83/262/39 91/277/49 90/278/50 +f 81/268/42 89/275/47 88/279/51 +f 78/272/32 85/271/44 77/280/37 +f 85/271/44 92/274/46 77/280/37 +f 76/266/34 77/281/37 84/282/52 +f 84/282/52 77/281/37 91/277/49 +f 77/283/37 99/284/16 91/285/49 +f 86/286/45 100/287/14 92/288/46 +f 92/288/46 93/289/11 77/290/37 +f 90/291/50 97/292/13 89/293/47 +f 88/279/51 95/294/15 87/295/48 +f 91/285/49 98/296/9 90/291/50 +f 89/293/47 96/297/8 88/279/51 +f 87/295/48 94/298/10 86/286/45 +f 104/299/29 111/300/30 103/301/12 +f 102/302/25 109/303/31 101/304/10 +f 101/304/10 116/305/32 108/306/33 +f 107/307/7 114/308/34 106/309/26 +f 105/310/9 112/311/35 104/299/29 +f 103/301/12 110/312/36 102/302/25 +f 108/306/33 115/313/37 107/314/7 +f 106/309/26 113/315/38 105/310/9 +f 112/316/35 121/317/39 120/318/40 +f 111/300/30 118/319/41 110/320/36 +f 113/321/38 122/322/52 121/317/39 +f 111/300/30 120/318/40 119/323/42 +f 110/320/36 117/324/43 109/325/31 +f 109/325/31 123/326/44 116/327/32 +f 118/319/41 124/328/45 117/324/43 +f 117/324/43 130/329/46 123/326/44 +f 120/318/40 128/330/50 127/331/47 +f 118/319/41 126/332/51 125/333/48 +f 121/317/39 129/334/49 128/330/50 +f 120/318/40 126/332/51 119/323/42 +f 116/327/32 123/326/44 115/335/37 +f 123/326/44 130/329/46 115/335/37 +f 114/336/34 115/337/37 122/322/52 +f 122/322/52 115/337/37 129/334/49 +f 115/338/37 137/339/16 129/340/49 +f 124/341/45 138/342/14 130/343/46 +f 130/343/46 131/344/11 115/345/37 +f 128/346/50 135/347/13 127/348/47 +f 126/332/51 133/349/15 125/350/48 +f 129/340/49 136/351/9 128/346/50 +f 127/348/47 134/352/8 126/332/51 +f 125/350/48 132/353/10 124/341/45 +f 142/354/53 149/355/54 141/356/12 +f 140/357/42 147/358/55 139/359/8 +f 139/359/8 154/360/56 146/361/57 +f 145/362/7 152/363/58 144/364/37 +f 143/365/11 150/366/59 142/354/53 +f 140/357/42 149/355/54 148/367/60 +f 146/361/57 153/368/33 145/369/7 +f 144/364/37 151/370/61 143/365/11 +f 150/371/59 159/372/62 158/373/63 +f 149/355/54 156/374/64 148/375/60 +f 152/376/58 159/372/62 151/377/61 +f 149/355/54 158/373/63 157/378/29 +f 148/375/60 155/379/65 147/380/55 +f 154/381/56 155/379/65 161/382/66 +f 155/379/65 163/383/67 162/384/68 +f 161/382/66 162/384/68 168/385/69 +f 159/372/62 165/386/70 158/373/63 +f 156/374/64 164/387/71 163/383/67 +f 160/388/72 166/389/73 159/372/62 +f 157/378/29 165/386/70 164/387/71 +f 154/381/56 161/382/66 153/390/33 +f 161/382/66 168/385/69 153/390/33 +f 152/376/58 153/391/33 160/388/72 +f 160/388/72 153/391/33 167/392/74 +f 153/393/33 175/394/75 167/395/74 +f 162/396/68 176/397/76 168/398/69 +f 168/398/69 169/399/77 153/400/33 +f 166/401/73 173/402/78 165/403/70 +f 164/387/71 171/404/79 163/405/67 +f 167/395/74 174/406/80 166/401/73 +f 165/403/70 172/407/29 164/387/71 +f 163/405/67 170/408/81 162/396/68 +f 174/409/80 182/410/82 181/411/83 +f 171/412/79 178/413/84 170/414/81 +f 169/415/77 182/410/82 175/416/75 +f 170/414/81 183/417/85 176/418/76 +f 173/419/78 181/411/83 180/420/86 +f 176/418/76 177/421/33 169/399/77 +f 177/421/33 190/422/87 184/423/88 +f 181/411/83 189/424/89 188/425/90 +f 178/413/84 186/426/91 185/427/92 +f 177/428/33 189/424/89 182/410/82 +f 178/413/84 190/422/87 183/417/85 +f 181/411/83 187/429/93 180/420/86 +f 171/412/79 172/430/29 179/431/94 +f 179/431/94 172/430/29 186/426/91 +f 173/419/78 180/420/86 172/430/29 +f 180/420/86 187/429/93 172/430/29 +f 194/432/53 201/433/12 193/434/12 +f 192/435/42 199/436/8 191/437/8 +f 191/437/8 206/438/57 198/439/57 +f 197/440/7 204/441/37 196/442/37 +f 195/443/11 202/444/53 194/432/53 +f 192/435/42 201/433/12 200/445/42 +f 198/439/57 205/446/7 197/447/7 +f 196/442/37 203/448/11 195/443/11 +f 210/449/53 217/450/12 209/451/12 +f 208/452/42 215/453/8 207/454/8 +f 207/454/8 222/455/57 214/456/57 +f 213/457/7 220/458/37 212/459/37 +f 211/460/11 218/461/53 210/449/53 +f 208/452/42 217/450/12 216/462/42 +f 214/456/57 221/463/7 213/464/7 +f 212/459/37 219/465/11 211/460/11 +f 249/466/95 226/467/96 250/468/97 +f 247/469/98 224/470/53 248/471/99 +f 229/472/100 329/473/101 230/474/102 +f 248/471/99 225/475/103 249/466/95 +f 247/469/98 329/473/101 223/476/104 +f 253/477/33 230/478/102 254/479/10 +f 251/480/26 228/481/57 252/482/7 +f 298/483/12 249/484/95 299/485/29 +f 254/479/10 247/486/98 297/487/25 +f 252/488/7 229/489/100 253/477/33 +f 190/490/87 264/491/105 184/423/88 +f 189/492/89 268/493/14 188/494/90 +f 186/495/91 265/496/106 185/497/92 +f 187/498/93 263/499/107 172/500/29 +f 184/501/88 269/502/108 189/492/89 +f 172/500/29 266/503/109 186/495/91 +f 185/497/92 270/504/110 190/490/87 +f 188/494/90 267/505/111 187/498/93 +f 266/506/109 271/507/112 274/508/113 +f 270/509/110 272/510/114 264/511/105 +f 266/506/109 273/512/13 265/496/106 +f 267/513/111 271/507/112 263/514/107 +f 269/515/108 272/516/114 276/517/115 +f 270/509/110 273/512/13 277/518/116 +f 277/518/116 280/519/117 284/520/118 +f 271/507/112 281/521/119 274/508/113 +f 272/510/114 284/520/118 279/522/120 +f 274/508/113 280/519/117 273/512/13 +f 275/523/121 278/524/122 271/507/112 +f 272/516/114 283/525/123 276/517/115 +f 269/515/108 276/517/115 268/526/14 +f 276/517/115 283/525/123 268/526/14 +f 267/513/111 268/526/14 275/523/121 +f 275/523/121 268/526/14 282/527/124 +f 278/528/122 289/529/29 281/530/119 +f 284/531/118 287/532/7 279/533/120 +f 281/530/119 288/534/9 280/519/117 +f 268/535/14 290/536/25 282/537/124 +f 282/537/124 286/538/12 278/528/122 +f 283/539/123 285/540/10 268/535/14 +f 279/541/120 291/542/33 283/539/123 +f 280/519/117 292/543/26 284/531/118 +f 300/544/9 227/545/125 251/480/26 +f 299/485/29 250/546/97 300/544/9 +f 297/487/25 248/471/99 298/483/12 +f 250/468/97 331/547/126 227/548/125 +f 225/475/103 332/549/127 226/467/96 +f 226/467/96 338/550/128 331/547/126 +f 329/473/101 335/551/129 223/476/104 +f 224/470/53 333/552/130 225/475/103 +f 329/473/101 337/553/131 336/554/132 +f 224/470/53 335/551/129 334/555/133 +f 227/548/125 331/547/126 228/556/57 +f 331/547/126 338/550/128 228/556/57 +f 229/472/100 228/557/57 330/558/134 +f 330/558/134 228/557/57 337/553/131 +f 228/559/57 345/560/15 337/561/131 +f 332/562/127 346/563/13 338/564/128 +f 338/564/128 339/565/8 228/566/57 +f 336/567/132 343/568/14 335/569/129 +f 334/555/133 341/570/16 333/571/130 +f 337/561/131 344/572/10 336/567/132 +f 335/569/129 342/573/11 334/555/133 +f 333/571/130 340/574/9 332/562/127 +f 350/575/25 357/576/99 349/577/12 +f 348/578/29 355/579/97 347/580/9 +f 347/580/9 362/581/125 354/582/26 +f 353/583/7 360/584/100 352/585/33 +f 351/586/10 358/587/98 350/575/25 +f 349/577/12 356/588/95 348/578/29 +f 354/582/26 361/589/57 353/590/7 +f 352/585/33 359/591/102 351/586/10 +f 359/592/102 366/593/104 358/594/98 +f 357/576/99 364/595/103 356/596/95 +f 359/592/102 368/597/134 367/598/101 +f 357/576/99 366/593/104 365/599/53 +f 356/596/95 363/600/96 355/601/97 +f 355/601/97 369/602/126 362/603/125 +f 363/600/96 371/604/130 370/605/127 +f 363/600/96 376/606/128 369/602/126 +f 367/598/101 373/607/129 366/593/104 +f 365/599/53 371/604/130 364/595/103 +f 367/598/101 375/608/131 374/609/132 +f 365/599/53 373/607/129 372/610/133 +f 362/603/125 369/602/126 361/611/57 +f 369/602/126 376/606/128 361/611/57 +f 360/612/100 361/613/57 368/597/134 +f 368/597/134 361/613/57 375/608/131 +f 361/614/57 383/615/15 375/616/131 +f 370/617/127 384/618/13 376/619/128 +f 376/619/128 377/620/8 361/621/57 +f 374/622/132 381/623/14 373/624/129 +f 372/610/133 379/625/16 371/626/130 +f 375/616/131 382/627/10 374/622/132 +f 373/624/129 380/628/11 372/610/133 +f 371/626/130 378/629/9 370/617/127 +f 388/630/42 395/631/135 387/632/12 +f 386/633/53 393/634/136 385/635/11 +f 385/635/11 400/636/137 392/637/37 +f 391/638/7 398/639/138 390/640/57 +f 389/641/8 396/642/139 388/630/42 +f 387/632/12 394/643/140 386/633/53 +f 392/637/37 399/644/26 391/645/7 +f 390/640/57 397/646/141 389/641/8 +f 396/647/139 405/648/142 404/649/143 +f 395/631/135 402/650/144 394/651/140 +f 398/652/138 405/648/142 397/653/141 +f 396/647/139 403/654/25 395/631/135 +f 394/651/140 401/655/145 393/656/136 +f 393/656/136 407/657/146 400/658/137 +f 402/650/144 408/659/147 401/655/145 +f 401/655/145 414/660/148 407/657/146 +f 405/648/142 411/661/149 404/649/143 +f 403/654/25 409/662/150 402/650/144 +f 405/648/142 413/663/151 412/664/152 +f 404/649/143 410/665/153 403/654/25 +f 400/658/137 407/657/146 399/666/26 +f 407/657/146 414/660/148 399/666/26 +f 398/652/138 399/667/26 406/668/154 +f 406/668/154 399/667/26 413/663/151 +f 399/669/26 421/670/13 413/671/151 +f 408/672/147 422/673/16 414/674/148 +f 414/674/148 415/675/9 399/676/26 +f 412/677/152 419/678/15 411/679/149 +f 410/665/153 417/680/14 409/681/150 +f 413/671/151 420/682/8 412/677/152 +f 411/679/149 418/683/10 410/665/153 +f 409/681/150 416/684/11 408/672/147 +f 426/685/42 433/686/135 425/687/12 +f 424/688/53 431/689/136 423/690/11 +f 423/690/11 438/691/137 430/692/37 +f 429/693/7 436/694/138 428/695/57 +f 427/696/8 434/697/139 426/685/42 +f 425/687/12 432/698/140 424/688/53 +f 430/692/37 437/699/26 429/700/7 +f 428/695/57 435/701/141 427/696/8 +f 434/702/139 443/703/142 442/704/143 +f 433/686/135 440/705/144 432/706/140 +f 435/707/141 444/708/154 443/703/142 +f 433/686/135 442/704/143 441/709/25 +f 431/710/136 440/705/144 439/711/145 +f 431/710/136 445/712/146 438/713/137 +f 439/711/145 447/714/150 446/715/147 +f 439/711/145 452/716/148 445/712/146 +f 443/703/142 449/717/149 442/704/143 +f 441/709/25 447/714/150 440/705/144 +f 443/703/142 451/718/151 450/719/152 +f 441/709/25 449/717/149 448/720/153 +f 438/713/137 445/712/146 437/721/26 +f 445/712/146 452/716/148 437/721/26 +f 436/722/138 437/723/26 444/708/154 +f 444/708/154 437/723/26 451/718/151 +f 437/724/26 459/725/13 451/726/151 +f 446/727/147 460/728/16 452/729/148 +f 452/729/148 453/730/9 437/731/26 +f 450/732/152 457/733/15 449/734/149 +f 448/720/153 455/735/14 447/736/150 +f 451/726/151 458/737/8 450/732/152 +f 449/734/149 456/738/10 448/720/153 +f 447/736/150 454/739/11 446/727/147 +f 471/740/60 464/741/65 472/742/55 +f 470/743/54 461/744/63 462/745/29 +f 467/746/58 481/747/62 468/748/61 +f 470/743/54 463/749/64 471/740/60 +f 469/750/59 481/747/62 461/744/63 +f 475/751/37 468/752/61 476/753/11 +f 473/754/57 466/755/33 474/756/7 +f 478/757/12 471/758/60 479/759/42 +f 476/753/11 469/760/59 477/761/53 +f 474/762/7 467/763/58 475/751/37 +f 480/764/8 465/765/56 473/754/57 +f 479/759/42 472/766/55 480/764/8 +f 477/761/53 470/743/54 478/757/12 +f 472/742/55 483/767/66 465/768/56 +f 464/741/65 485/769/67 484/770/68 +f 483/767/66 484/770/68 490/771/69 +f 481/747/62 487/772/70 461/744/63 +f 463/749/64 486/773/71 485/769/67 +f 482/774/72 488/775/73 481/747/62 +f 462/745/29 487/772/70 486/773/71 +f 465/768/56 483/767/66 466/776/33 +f 483/767/66 490/771/69 466/776/33 +f 467/746/58 466/777/33 482/774/72 +f 482/774/72 466/777/33 489/778/74 +f 466/779/33 497/780/14 489/781/74 +f 484/782/68 498/783/15 490/784/69 +f 490/784/69 491/785/10 466/786/33 +f 488/787/73 495/788/16 487/789/70 +f 486/773/71 493/790/13 485/791/67 +f 489/781/74 496/792/11 488/787/73 +f 487/789/70 494/793/9 486/773/71 +f 485/791/67 492/794/8 484/782/68 +f 502/795/53 509/796/54 501/797/12 +f 500/798/42 507/799/55 499/800/8 +f 499/800/8 514/801/56 506/802/57 +f 505/803/7 512/804/58 504/805/37 +f 503/806/11 510/807/59 502/795/53 +f 501/797/12 508/808/60 500/798/42 +f 506/802/57 513/809/33 505/810/7 +f 504/805/37 511/811/61 503/806/11 +f 511/812/61 518/813/63 510/814/59 +f 509/796/54 516/815/64 508/816/60 +f 511/812/61 520/817/72 519/818/62 +f 509/796/54 518/813/63 517/819/29 +f 508/816/60 515/820/65 507/821/55 +f 507/821/55 521/822/66 514/823/56 +f 516/815/64 522/824/68 515/820/65 +f 521/822/66 522/824/68 528/825/69 +f 519/818/62 525/826/70 518/813/63 +f 516/815/64 524/827/71 523/828/67 +f 520/817/72 526/829/73 519/818/62 +f 517/819/29 525/826/70 524/827/71 +f 514/823/56 521/822/66 513/830/33 +f 521/822/66 528/825/69 513/830/33 +f 512/831/58 513/832/33 520/817/72 +f 520/817/72 513/832/33 527/833/74 +f 513/834/33 535/835/14 527/836/74 +f 522/837/68 536/838/15 528/839/69 +f 528/839/69 529/840/10 513/841/33 +f 526/842/73 533/843/16 525/844/70 +f 524/827/71 531/845/13 523/846/67 +f 527/836/74 534/847/11 526/842/73 +f 525/844/70 532/848/9 524/827/71 +f 523/846/67 530/849/8 522/837/68 +f 66/244/29 74/256/35 73/245/30 +f 64/247/25 72/257/36 71/248/31 +f 63/249/10 71/248/31 78/250/32 +f 69/252/7 77/850/37 76/253/34 +f 67/255/9 75/260/38 74/256/35 +f 65/246/12 73/245/30 72/257/36 +f 70/251/33 78/250/32 77/258/37 +f 68/254/26 76/253/34 75/260/38 +f 74/261/35 75/267/38 83/262/39 +f 73/245/30 81/268/42 80/264/41 +f 76/266/34 84/282/52 83/262/39 +f 74/261/35 82/263/40 81/268/42 +f 72/265/36 80/264/41 79/269/43 +f 71/270/31 79/269/43 85/271/44 +f 80/264/41 87/276/48 86/273/45 +f 79/269/43 86/273/45 92/274/46 +f 83/262/39 90/278/50 89/275/47 +f 81/268/42 88/279/51 87/276/48 +f 83/262/39 84/282/52 91/277/49 +f 81/268/42 82/263/40 89/275/47 +f 77/283/37 93/851/11 99/284/16 +f 86/286/45 94/298/10 100/287/14 +f 92/288/46 100/287/14 93/289/11 +f 90/291/50 98/296/9 97/292/13 +f 88/279/51 96/297/8 95/294/15 +f 91/285/49 99/284/16 98/296/9 +f 89/293/47 97/292/13 96/297/8 +f 87/295/48 95/294/15 94/298/10 +f 104/299/29 112/311/35 111/300/30 +f 102/302/25 110/312/36 109/303/31 +f 101/304/10 109/303/31 116/305/32 +f 107/307/7 115/852/37 114/308/34 +f 105/310/9 113/315/38 112/311/35 +f 103/301/12 111/300/30 110/312/36 +f 108/306/33 116/305/32 115/313/37 +f 106/309/26 114/308/34 113/315/38 +f 112/316/35 113/321/38 121/317/39 +f 111/300/30 119/323/42 118/319/41 +f 113/321/38 114/336/34 122/322/52 +f 111/300/30 112/316/35 120/318/40 +f 110/320/36 118/319/41 117/324/43 +f 109/325/31 117/324/43 123/326/44 +f 118/319/41 125/333/48 124/328/45 +f 117/324/43 124/328/45 130/329/46 +f 120/318/40 121/317/39 128/330/50 +f 118/319/41 119/323/42 126/332/51 +f 121/317/39 122/322/52 129/334/49 +f 120/318/40 127/331/47 126/332/51 +f 115/338/37 131/853/11 137/339/16 +f 124/341/45 132/353/10 138/342/14 +f 130/343/46 138/342/14 131/344/11 +f 128/346/50 136/351/9 135/347/13 +f 126/332/51 134/352/8 133/349/15 +f 129/340/49 137/339/16 136/351/9 +f 127/348/47 135/347/13 134/352/8 +f 125/350/48 133/349/15 132/353/10 +f 142/354/53 150/366/59 149/355/54 +f 140/357/42 148/367/60 147/358/55 +f 139/359/8 147/358/55 154/360/56 +f 145/362/7 153/854/33 152/363/58 +f 143/365/11 151/370/61 150/366/59 +f 140/357/42 141/356/12 149/355/54 +f 146/361/57 154/360/56 153/368/33 +f 144/364/37 152/363/58 151/370/61 +f 150/371/59 151/377/61 159/372/62 +f 149/355/54 157/378/29 156/374/64 +f 152/376/58 160/388/72 159/372/62 +f 149/355/54 150/371/59 158/373/63 +f 148/375/60 156/374/64 155/379/65 +f 154/381/56 147/380/55 155/379/65 +f 155/379/65 156/374/64 163/383/67 +f 161/382/66 155/379/65 162/384/68 +f 159/372/62 166/389/73 165/386/70 +f 156/374/64 157/378/29 164/387/71 +f 160/388/72 167/392/74 166/389/73 +f 157/378/29 158/373/63 165/386/70 +f 153/393/33 169/415/77 175/394/75 +f 162/396/68 170/408/81 176/397/76 +f 168/398/69 176/397/76 169/399/77 +f 166/401/73 174/406/80 173/402/78 +f 164/387/71 172/407/29 171/404/79 +f 167/395/74 175/394/75 174/406/80 +f 165/403/70 173/402/78 172/407/29 +f 163/405/67 171/404/79 170/408/81 +f 174/409/80 175/416/75 182/410/82 +f 171/412/79 179/431/94 178/413/84 +f 169/415/77 177/428/33 182/410/82 +f 170/414/81 178/413/84 183/417/85 +f 173/419/78 174/409/80 181/411/83 +f 176/418/76 183/417/85 177/421/33 +f 177/421/33 183/417/85 190/422/87 +f 181/411/83 182/410/82 189/424/89 +f 178/413/84 179/431/94 186/426/91 +f 177/428/33 184/501/88 189/424/89 +f 178/413/84 185/427/92 190/422/87 +f 181/411/83 188/425/90 187/429/93 +f 194/432/53 202/444/53 201/433/12 +f 192/435/42 200/445/42 199/436/8 +f 191/437/8 199/436/8 206/438/57 +f 197/440/7 205/855/7 204/441/37 +f 195/443/11 203/448/11 202/444/53 +f 192/435/42 193/434/12 201/433/12 +f 198/439/57 206/438/57 205/446/7 +f 196/442/37 204/441/37 203/448/11 +f 210/449/53 218/461/53 217/450/12 +f 208/452/42 216/462/42 215/453/8 +f 207/454/8 215/453/8 222/455/57 +f 213/457/7 221/856/7 220/458/37 +f 211/460/11 219/465/11 218/461/53 +f 208/452/42 209/451/12 217/450/12 +f 214/456/57 222/455/57 221/463/7 +f 212/459/37 220/458/37 219/465/11 +f 249/466/95 225/475/103 226/467/96 +f 247/469/98 223/476/104 224/470/53 +f 229/472/100 330/558/134 329/473/101 +f 248/471/99 224/470/53 225/475/103 +f 247/469/98 230/474/102 329/473/101 +f 253/477/33 229/489/100 230/478/102 +f 251/480/26 227/545/125 228/481/57 +f 298/483/12 248/471/99 249/484/95 +f 254/479/10 230/478/102 247/486/98 +f 252/488/7 228/857/57 229/489/100 +f 190/490/87 270/504/110 264/491/105 +f 189/492/89 269/502/108 268/493/14 +f 186/495/91 266/503/109 265/496/106 +f 187/498/93 267/505/111 263/499/107 +f 184/501/88 264/858/105 269/502/108 +f 172/500/29 263/499/107 266/503/109 +f 185/497/92 265/496/106 270/504/110 +f 188/494/90 268/493/14 267/505/111 +f 266/506/109 263/514/107 271/507/112 +f 270/509/110 277/518/116 272/510/114 +f 266/506/109 274/508/113 273/512/13 +f 267/513/111 275/523/121 271/507/112 +f 269/515/108 264/859/105 272/516/114 +f 270/509/110 265/496/106 273/512/13 +f 277/518/116 273/512/13 280/519/117 +f 271/507/112 278/524/122 281/521/119 +f 272/510/114 277/518/116 284/520/118 +f 274/508/113 281/521/119 280/519/117 +f 275/523/121 282/527/124 278/524/122 +f 272/516/114 279/860/120 283/525/123 +f 278/528/122 286/538/12 289/529/29 +f 284/531/118 292/543/26 287/532/7 +f 281/530/119 289/529/29 288/534/9 +f 268/535/14 285/540/10 290/536/25 +f 282/537/124 290/536/25 286/538/12 +f 283/539/123 291/542/33 285/540/10 +f 279/541/120 287/861/7 291/542/33 +f 280/519/117 288/534/9 292/543/26 +f 300/544/9 250/546/97 227/545/125 +f 299/485/29 249/484/95 250/546/97 +f 297/487/25 247/486/98 248/471/99 +f 250/468/97 226/467/96 331/547/126 +f 225/475/103 333/552/130 332/549/127 +f 226/467/96 332/549/127 338/550/128 +f 329/473/101 336/554/132 335/551/129 +f 224/470/53 334/555/133 333/552/130 +f 329/473/101 330/558/134 337/553/131 +f 224/470/53 223/476/104 335/551/129 +f 228/559/57 339/862/8 345/560/15 +f 332/562/127 340/574/9 346/563/13 +f 338/564/128 346/563/13 339/565/8 +f 336/567/132 344/572/10 343/568/14 +f 334/555/133 342/573/11 341/570/16 +f 337/561/131 345/560/15 344/572/10 +f 335/569/129 343/568/14 342/573/11 +f 333/571/130 341/570/16 340/574/9 +f 350/575/25 358/587/98 357/576/99 +f 348/578/29 356/588/95 355/579/97 +f 347/580/9 355/579/97 362/581/125 +f 353/583/7 361/863/57 360/584/100 +f 351/586/10 359/591/102 358/587/98 +f 349/577/12 357/576/99 356/588/95 +f 354/582/26 362/581/125 361/589/57 +f 352/585/33 360/584/100 359/591/102 +f 359/592/102 367/598/101 366/593/104 +f 357/576/99 365/599/53 364/595/103 +f 359/592/102 360/612/100 368/597/134 +f 357/576/99 358/594/98 366/593/104 +f 356/596/95 364/595/103 363/600/96 +f 355/601/97 363/600/96 369/602/126 +f 363/600/96 364/595/103 371/604/130 +f 363/600/96 370/605/127 376/606/128 +f 367/598/101 374/609/132 373/607/129 +f 365/599/53 372/610/133 371/604/130 +f 367/598/101 368/597/134 375/608/131 +f 365/599/53 366/593/104 373/607/129 +f 361/614/57 377/864/8 383/615/15 +f 370/617/127 378/629/9 384/618/13 +f 376/619/128 384/618/13 377/620/8 +f 374/622/132 382/627/10 381/623/14 +f 372/610/133 380/628/11 379/625/16 +f 375/616/131 383/615/15 382/627/10 +f 373/624/129 381/623/14 380/628/11 +f 371/626/130 379/625/16 378/629/9 +f 388/630/42 396/642/139 395/631/135 +f 386/633/53 394/643/140 393/634/136 +f 385/635/11 393/634/136 400/636/137 +f 391/638/7 399/865/26 398/639/138 +f 389/641/8 397/646/141 396/642/139 +f 387/632/12 395/631/135 394/643/140 +f 392/637/37 400/636/137 399/644/26 +f 390/640/57 398/639/138 397/646/141 +f 396/647/139 397/653/141 405/648/142 +f 395/631/135 403/654/25 402/650/144 +f 398/652/138 406/668/154 405/648/142 +f 396/647/139 404/649/143 403/654/25 +f 394/651/140 402/650/144 401/655/145 +f 393/656/136 401/655/145 407/657/146 +f 402/650/144 409/662/150 408/659/147 +f 401/655/145 408/659/147 414/660/148 +f 405/648/142 412/664/152 411/661/149 +f 403/654/25 410/665/153 409/662/150 +f 405/648/142 406/668/154 413/663/151 +f 404/649/143 411/661/149 410/665/153 +f 399/669/26 415/866/9 421/670/13 +f 408/672/147 416/684/11 422/673/16 +f 414/674/148 422/673/16 415/675/9 +f 412/677/152 420/682/8 419/678/15 +f 410/665/153 418/683/10 417/680/14 +f 413/671/151 421/670/13 420/682/8 +f 411/679/149 419/678/15 418/683/10 +f 409/681/150 417/680/14 416/684/11 +f 426/685/42 434/697/139 433/686/135 +f 424/688/53 432/698/140 431/689/136 +f 423/690/11 431/689/136 438/691/137 +f 429/693/7 437/867/26 436/694/138 +f 427/696/8 435/701/141 434/697/139 +f 425/687/12 433/686/135 432/698/140 +f 430/692/37 438/691/137 437/699/26 +f 428/695/57 436/694/138 435/701/141 +f 434/702/139 435/707/141 443/703/142 +f 433/686/135 441/709/25 440/705/144 +f 435/707/141 436/722/138 444/708/154 +f 433/686/135 434/702/139 442/704/143 +f 431/710/136 432/706/140 440/705/144 +f 431/710/136 439/711/145 445/712/146 +f 439/711/145 440/705/144 447/714/150 +f 439/711/145 446/715/147 452/716/148 +f 443/703/142 450/719/152 449/717/149 +f 441/709/25 448/720/153 447/714/150 +f 443/703/142 444/708/154 451/718/151 +f 441/709/25 442/704/143 449/717/149 +f 437/724/26 453/868/9 459/725/13 +f 446/727/147 454/739/11 460/728/16 +f 452/729/148 460/728/16 453/730/9 +f 450/732/152 458/737/8 457/733/15 +f 448/720/153 456/738/10 455/735/14 +f 451/726/151 459/725/13 458/737/8 +f 449/734/149 457/733/15 456/738/10 +f 447/736/150 455/735/14 454/739/11 +f 471/740/60 463/749/64 464/741/65 +f 470/743/54 469/750/59 461/744/63 +f 467/746/58 482/774/72 481/747/62 +f 470/743/54 462/745/29 463/749/64 +f 469/750/59 468/748/61 481/747/62 +f 475/751/37 467/763/58 468/752/61 +f 473/754/57 465/765/56 466/755/33 +f 478/757/12 470/743/54 471/758/60 +f 476/753/11 468/752/61 469/760/59 +f 474/762/7 466/869/33 467/763/58 +f 480/764/8 472/766/55 465/765/56 +f 479/759/42 471/758/60 472/766/55 +f 477/761/53 469/760/59 470/743/54 +f 472/742/55 464/741/65 483/767/66 +f 464/741/65 463/749/64 485/769/67 +f 483/767/66 464/741/65 484/770/68 +f 481/747/62 488/775/73 487/772/70 +f 463/749/64 462/745/29 486/773/71 +f 482/774/72 489/778/74 488/775/73 +f 462/745/29 461/744/63 487/772/70 +f 466/779/33 491/870/10 497/780/14 +f 484/782/68 492/794/8 498/783/15 +f 490/784/69 498/783/15 491/785/10 +f 488/787/73 496/792/11 495/788/16 +f 486/773/71 494/793/9 493/790/13 +f 489/781/74 497/780/14 496/792/11 +f 487/789/70 495/788/16 494/793/9 +f 485/791/67 493/790/13 492/794/8 +f 502/795/53 510/807/59 509/796/54 +f 500/798/42 508/808/60 507/799/55 +f 499/800/8 507/799/55 514/801/56 +f 505/803/7 513/871/33 512/804/58 +f 503/806/11 511/811/61 510/807/59 +f 501/797/12 509/796/54 508/808/60 +f 506/802/57 514/801/56 513/809/33 +f 504/805/37 512/804/58 511/811/61 +f 511/812/61 519/818/62 518/813/63 +f 509/796/54 517/819/29 516/815/64 +f 511/812/61 512/831/58 520/817/72 +f 509/796/54 510/814/59 518/813/63 +f 508/816/60 516/815/64 515/820/65 +f 507/821/55 515/820/65 521/822/66 +f 516/815/64 523/828/67 522/824/68 +f 521/822/66 515/820/65 522/824/68 +f 519/818/62 526/829/73 525/826/70 +f 516/815/64 517/819/29 524/827/71 +f 520/817/72 527/833/74 526/829/73 +f 517/819/29 518/813/63 525/826/70 +f 513/834/33 529/872/10 535/835/14 +f 522/837/68 530/849/8 536/838/15 +f 528/839/69 536/838/15 529/840/10 +f 526/842/73 534/847/11 533/843/16 +f 524/827/71 532/848/9 531/845/13 +f 527/836/74 535/835/14 534/847/11 +f 525/844/70 533/843/16 532/848/9 +f 523/846/67 531/845/13 530/849/8 +o Plane +v 4.500000 0.500000 -3.500000 +v 7.500000 0.500000 -3.500000 +v 7.500000 0.000000 -3.500000 +v 4.500000 0.000000 -3.500000 +v 7.500000 0.000000 3.500000 +v 4.500000 0.000000 3.500000 +v 7.500000 0.500000 3.500000 +v 4.500000 0.500000 3.500000 +v 4.750000 1.250000 -3.000000 +v 7.250000 1.250000 -3.000000 +v 4.750000 2.250000 -3.000000 +v 7.250000 2.250000 -3.000000 +v 5.500000 3.000000 -3.000000 +v 5.500000 0.500000 -3.000000 +v 6.500000 3.000000 -3.000000 +v 6.500000 0.500000 -3.000000 +v 4.750000 1.250000 1.000000 +v 7.250000 1.250000 1.000000 +v 4.750000 2.250000 1.000000 +v 7.250000 2.250000 1.000000 +v 5.500000 3.000000 1.000000 +v 5.500000 0.500000 1.000000 +v 6.500000 3.000000 1.000000 +v 6.500000 0.500000 1.000000 +v 4.500000 0.500000 -3.000000 +v 7.500000 0.500000 -3.000000 +v 4.500000 0.500000 -3.500000 +v 7.500000 0.500000 -3.500000 +v 4.500000 2.500000 -3.500000 +v 4.500000 2.500000 -3.000000 +v 7.500000 2.500000 -3.000000 +v 7.500000 2.500000 -3.500000 +v 5.000000 3.000000 -3.500000 +v 5.000000 3.000000 -3.000000 +v 7.000000 3.000000 -3.000000 +v 7.000000 3.000000 -3.500000 +v 4.500000 0.500000 1.500000 +v 7.500000 0.500000 1.500000 +v 4.500000 0.500000 1.000000 +v 7.500000 0.500000 1.000000 +v 4.500000 2.500000 1.000000 +v 4.500000 2.500000 1.500000 +v 7.500000 2.500000 1.500000 +v 7.500000 2.500000 1.000000 +v 5.000000 3.000000 1.000000 +v 5.000000 3.000000 1.500000 +v 7.000000 3.000000 1.500000 +v 7.000000 3.000000 1.000000 +v 4.500000 0.500000 3.000000 +v 7.500000 0.500000 3.000000 +v 4.500000 0.500000 2.500000 +v 7.500000 0.500000 2.500000 +v 4.500000 2.500000 2.500000 +v 4.500000 2.500000 3.000000 +v 7.500000 2.500000 3.000000 +v 7.500000 2.500000 2.500000 +v 5.000000 3.000000 2.500000 +v 5.000000 3.000000 3.000000 +v 7.000000 3.000000 3.000000 +v 7.000000 3.000000 2.500000 +v 7.250000 0.750000 1.750000 +v 7.250000 0.750000 2.250000 +v 7.500000 0.750000 2.250000 +v 7.500000 0.750000 1.750000 +v 4.750000 0.750000 1.750000 +v 4.750000 0.750000 2.250000 +v 4.500000 0.750000 2.250000 +v 4.500000 0.750000 1.750000 +v 4.750000 0.500000 1.750000 +v 4.500000 0.500000 1.750000 +v 4.750000 0.500000 2.250000 +v 4.500000 0.500000 2.250000 +v 6.500000 2.616025 2.500000 +v 6.866026 2.249999 2.500000 +v 7.000000 1.749999 2.500000 +v 6.866025 1.250000 2.500000 +v 6.500000 0.883974 2.500000 +v 6.000000 0.750000 2.500000 +v 5.500000 0.883974 2.500000 +v 5.133975 1.250000 2.500000 +v 5.000000 1.750000 2.500000 +v 5.133975 2.250000 2.500000 +v 5.500000 2.616025 2.500000 +v 6.000000 2.750000 2.500000 +v 6.000000 2.750000 1.500000 +v 5.500000 2.616025 1.500000 +v 5.133975 2.250000 1.500000 +v 5.000000 1.750000 1.500000 +v 5.133975 1.250000 1.500000 +v 5.500000 0.883974 1.500000 +v 6.000000 0.750000 1.500000 +v 6.500000 0.883974 1.500000 +v 6.866025 1.250000 1.500000 +v 7.000000 1.749999 1.500000 +v 6.866026 2.249999 1.500000 +v 6.500000 2.616025 1.500000 +v 7.500000 0.500000 1.750000 +v 7.250000 0.500000 1.750000 +v 7.500000 0.500000 2.250000 +v 7.250000 0.500000 2.250000 +v 4.750000 0.500000 2.187500 +v 4.750000 0.500000 1.812500 +v 4.750000 0.687500 1.812500 +v 4.750000 0.687500 2.187500 +v 5.250000 0.500000 2.187500 +v 5.250000 0.500000 1.812500 +v 5.250000 0.687500 1.812500 +v 5.250000 0.687500 2.187500 +v 6.750000 0.750000 1.750000 +v 6.750000 0.750000 2.250000 +v 6.750000 0.500000 1.750000 +v 6.750000 0.500000 2.250000 +v 5.250000 0.750000 1.750000 +v 5.250000 0.750000 2.250000 +v 5.250000 0.500000 1.750000 +v 5.250000 0.500000 2.250000 +v 7.250000 0.500000 2.187500 +v 7.250000 0.500000 1.812500 +v 7.250000 0.687500 1.812500 +v 7.250000 0.687500 2.187500 +v 6.750000 0.500000 2.187500 +v 6.750000 0.500000 1.812500 +v 6.750000 0.687500 1.812500 +v 6.750000 0.687500 2.187500 +v 6.500000 0.500000 3.500000 +v 7.000000 0.500000 3.500000 +v 6.500000 0.500000 3.000000 +v 7.000000 0.500000 3.000000 +v 6.500000 2.500000 3.000000 +v 6.500000 2.000000 3.500000 +v 7.000000 2.000000 3.500000 +v 7.000000 2.500000 3.000000 +v 5.000000 0.500000 3.500000 +v 5.500000 0.500000 3.500000 +v 5.000000 0.500000 3.000000 +v 5.500000 0.500000 3.000000 +v 5.000000 2.500000 3.000000 +v 5.000000 2.000000 3.500000 +v 5.500000 2.000000 3.500000 +v 5.500000 2.500000 3.000000 +v 5.500000 3.000000 -1.500000 +v 6.500000 3.000000 -1.500000 +v 5.500000 3.000000 -2.500000 +v 6.500000 3.000000 -2.500000 +v 5.500000 4.000000 -2.500000 +v 5.500000 4.000000 -1.500000 +v 6.500000 4.000000 -1.500000 +v 6.500000 4.000000 -2.500000 +v 7.000000 3.000000 -1.500000 +v 6.926776 3.176777 -1.500000 +v 6.750000 3.250000 -1.500000 +v 6.573223 3.176777 -1.500000 +v 6.500000 3.000000 -1.500000 +v 6.573223 2.823223 -1.500000 +v 6.750000 2.750000 -1.500000 +v 6.926776 2.823223 -1.500000 +v 7.000000 3.000000 0.000000 +v 6.926777 3.176777 0.000000 +v 6.750000 3.250000 0.000000 +v 6.573223 3.176777 0.000000 +v 6.500000 3.000000 0.000000 +v 6.573223 2.823223 0.000000 +v 6.750000 2.750000 0.000000 +v 6.926777 2.823223 0.000000 +v 7.000000 2.926777 0.176777 +v 6.926777 3.051777 0.301777 +v 6.750000 3.103553 0.353554 +v 6.573223 3.051777 0.301777 +v 6.500000 2.926777 0.176777 +v 6.573223 2.801776 0.051777 +v 6.926777 2.801776 0.051777 +v 7.000000 2.750000 0.250000 +v 6.926777 2.750000 0.426777 +v 6.750000 2.750000 0.500000 +v 6.573223 2.750000 0.426777 +v 6.500000 2.750000 0.250000 +v 6.573223 2.750000 0.073223 +v 6.926777 2.750000 0.073223 +v 6.750000 2.500000 0.000000 +v 7.000000 2.500000 0.250000 +v 6.926777 2.500000 0.426777 +v 6.750000 2.500000 0.500000 +v 6.573223 2.500000 0.426777 +v 6.500000 2.500000 0.250000 +v 6.573223 2.500000 0.073223 +v 6.926777 2.500000 0.073223 +v 7.000000 3.073223 -1.676777 +v 6.926776 3.198223 -1.551776 +v 6.573223 3.198223 -1.551776 +v 6.500000 3.073223 -1.676777 +v 6.573223 2.948223 -1.801777 +v 6.750000 2.896447 -1.853553 +v 6.926776 2.948223 -1.801777 +v 7.000000 3.250000 -1.750000 +v 6.926776 3.250000 -1.573223 +v 6.573223 3.250000 -1.573223 +v 6.500000 3.250000 -1.750000 +v 6.573223 3.250000 -1.926777 +v 6.750000 3.250000 -2.000000 +v 6.926776 3.250000 -1.926777 +v 6.750000 3.500000 -1.500000 +v 7.000000 3.500000 -1.750000 +v 6.926776 3.500000 -1.573223 +v 6.573223 3.500000 -1.573223 +v 6.500000 3.500000 -1.750000 +v 6.573223 3.500000 -1.926777 +v 6.750000 3.500000 -2.000000 +v 6.926776 3.500000 -1.926777 +v 6.676777 3.676777 -1.500000 +v 6.853553 3.853553 -1.750000 +v 6.801776 3.801776 -1.573223 +v 6.551777 3.551777 -1.573223 +v 6.551777 3.551777 -1.926777 +v 6.676777 3.676777 -2.000000 +v 6.801776 3.801776 -1.926777 +v 6.500000 3.750000 -1.500000 +v 6.500000 4.000000 -1.750000 +v 6.500000 3.926776 -1.573223 +v 6.500000 3.573223 -1.573223 +v 6.500000 3.573223 -1.926777 +v 6.500000 3.750000 -2.000000 +v 6.500000 3.926776 -1.926777 +v 6.750000 2.500000 -2.000000 +v 7.000000 2.500000 -2.250000 +v 6.926776 2.500000 -2.073223 +v 6.573223 2.500000 -2.073223 +v 6.500000 2.500000 -2.250000 +v 6.573223 2.500000 -2.426777 +v 6.750000 2.500000 -2.500000 +v 6.926776 2.500000 -2.426777 +v 6.750000 3.500000 -2.000000 +v 7.000000 3.500000 -2.250000 +v 6.926776 3.500000 -2.073223 +v 6.573223 3.500000 -2.073223 +v 6.500000 3.500000 -2.250000 +v 6.573223 3.500000 -2.426777 +v 6.750000 3.500000 -2.500000 +v 6.926776 3.500000 -2.426777 +v 6.676777 3.676777 -2.000000 +v 6.853553 3.853553 -2.250000 +v 6.801776 3.801776 -2.073223 +v 6.551777 3.551777 -2.073223 +v 6.551777 3.551777 -2.426777 +v 6.676777 3.676777 -2.500000 +v 6.801776 3.801776 -2.426777 +v 6.500000 3.750000 -2.000000 +v 6.500000 4.000000 -2.250000 +v 6.500000 3.926776 -2.073223 +v 6.500000 3.573223 -2.073223 +v 6.500000 3.573223 -2.426777 +v 6.500000 3.750000 -2.500000 +v 6.500000 3.926776 -2.426777 +v 5.000000 3.000000 -1.500000 +v 5.073224 3.176777 -1.500000 +v 5.250000 3.250000 -1.500000 +v 5.426777 3.176777 -1.500000 +v 5.500000 3.000000 -1.500000 +v 5.426777 2.823223 -1.500000 +v 5.250000 2.750000 -1.500000 +v 5.073224 2.823223 -1.500000 +v 5.000000 3.000000 0.000000 +v 5.073223 3.176777 0.000000 +v 5.250000 3.250000 0.000000 +v 5.426777 3.176777 0.000000 +v 5.500000 3.000000 0.000000 +v 5.426777 2.823223 0.000000 +v 5.250000 2.750000 0.000000 +v 5.073223 2.823223 0.000000 +v 5.000000 2.926777 0.176777 +v 5.073223 3.051777 0.301777 +v 5.250000 3.103553 0.353554 +v 5.426777 3.051777 0.301777 +v 5.500000 2.926777 0.176777 +v 5.426777 2.801776 0.051777 +v 5.073223 2.801776 0.051777 +v 5.000000 2.750000 0.250000 +v 5.073223 2.750000 0.426777 +v 5.250000 2.750000 0.500000 +v 5.426777 2.750000 0.426777 +v 5.500000 2.750000 0.250000 +v 5.426777 2.750000 0.073223 +v 5.073223 2.750000 0.073223 +v 5.250000 2.500000 0.000000 +v 5.000000 2.500000 0.250000 +v 5.073223 2.500000 0.426777 +v 5.250000 2.500000 0.500000 +v 5.426777 2.500000 0.426777 +v 5.500000 2.500000 0.250000 +v 5.426777 2.500000 0.073223 +v 5.073223 2.500000 0.073223 +v 5.000000 3.073223 -1.676777 +v 5.073224 3.198223 -1.551776 +v 5.426777 3.198223 -1.551776 +v 5.500000 3.073223 -1.676777 +v 5.426777 2.948223 -1.801777 +v 5.250000 2.896447 -1.853553 +v 5.073224 2.948223 -1.801777 +v 5.000000 3.250000 -1.750000 +v 5.073224 3.250000 -1.573223 +v 5.426777 3.250000 -1.573223 +v 5.500000 3.250000 -1.750000 +v 5.426777 3.250000 -1.926777 +v 5.250000 3.250000 -2.000000 +v 5.073224 3.250000 -1.926777 +v 5.250000 3.500000 -1.500000 +v 5.000000 3.500000 -1.750000 +v 5.073224 3.500000 -1.573223 +v 5.426777 3.500000 -1.573223 +v 5.500000 3.500000 -1.750000 +v 5.426777 3.500000 -1.926777 +v 5.250000 3.500000 -2.000000 +v 5.073224 3.500000 -1.926777 +v 5.323223 3.676777 -1.500000 +v 5.146447 3.853553 -1.750000 +v 5.198224 3.801776 -1.573223 +v 5.448223 3.551777 -1.573223 +v 5.448223 3.551777 -1.926777 +v 5.323223 3.676777 -2.000000 +v 5.198224 3.801776 -1.926777 +v 5.500000 3.750000 -1.500000 +v 5.500000 4.000000 -1.750000 +v 5.500000 3.926776 -1.573223 +v 5.500000 3.573223 -1.573223 +v 5.500000 3.573223 -1.926777 +v 5.500000 3.750000 -2.000000 +v 5.500000 3.926776 -1.926777 +v 5.250000 2.500000 -2.000000 +v 5.000000 2.500000 -2.250000 +v 5.073224 2.500000 -2.073223 +v 5.426777 2.500000 -2.073223 +v 5.500000 2.500000 -2.250000 +v 5.426777 2.500000 -2.426777 +v 5.250000 2.500000 -2.500000 +v 5.073224 2.500000 -2.426777 +v 5.250000 3.500000 -2.000000 +v 5.000000 3.500000 -2.250000 +v 5.073224 3.500000 -2.073223 +v 5.426777 3.500000 -2.073223 +v 5.500000 3.500000 -2.250000 +v 5.426777 3.500000 -2.426777 +v 5.250000 3.500000 -2.500000 +v 5.073224 3.500000 -2.426777 +v 5.323223 3.676777 -2.000000 +v 5.146447 3.853553 -2.250000 +v 5.198224 3.801776 -2.073223 +v 5.448223 3.551777 -2.073223 +v 5.448223 3.551777 -2.426777 +v 5.323223 3.676777 -2.500000 +v 5.198224 3.801776 -2.426777 +v 5.500000 3.750000 -2.000000 +v 5.500000 4.000000 -2.250000 +v 5.500000 3.926776 -2.073223 +v 5.500000 3.573223 -2.073223 +v 5.500000 3.573223 -2.426777 +v 5.500000 3.750000 -2.500000 +v 5.500000 3.926776 -2.426777 +v 5.000000 0.500000 0.250000 +v 7.000000 0.500000 0.250000 +v 5.000000 0.500000 -0.250000 +v 7.000000 0.500000 -0.250000 +v 5.000000 1.000000 -0.250000 +v 5.000000 1.000000 0.250000 +v 7.000000 1.000000 0.250000 +v 7.000000 1.000000 -0.250000 +v 5.000000 0.500000 -1.750000 +v 7.000000 0.500000 -1.750000 +v 5.000000 0.500000 -2.250000 +v 7.000000 0.500000 -2.250000 +v 5.000000 1.000000 -2.250000 +v 5.000000 1.000000 -1.750000 +v 7.000000 1.000000 -1.750000 +v 7.000000 1.000000 -2.250000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9659 0.2588 0.0000 +vn -0.2588 -0.9659 0.0000 +vn 0.9659 -0.2588 0.0000 +vn 0.2588 0.9659 0.0000 +vn -0.2588 0.9659 0.0000 +vn -0.9659 -0.2588 0.0000 +vn 0.2588 -0.9659 0.0000 +vn 0.9659 0.2588 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.7263 0.6737 0.1363 +vn 0.0000 0.9824 0.1866 +vn 0.7263 0.6737 0.1363 +vn 0.9987 0.0473 0.0196 +vn 0.9987 -0.0473 -0.0196 +vn 0.7263 -0.6737 -0.1363 +vn 0.6794 -0.7194 -0.1447 +vn 0.0000 -0.9824 -0.1866 +vn -0.7263 -0.6737 -0.1363 +vn -0.6794 -0.7194 -0.1447 +vn -0.9987 -0.0473 -0.0196 +vn -0.6794 0.7194 0.1447 +vn 0.6794 0.7194 0.1447 +vn 0.0000 -0.7071 -0.7071 +vn -0.9987 0.0473 0.0196 +vn -0.9955 0.0670 0.0670 +vn -0.6630 0.5293 0.5293 +vn 0.6630 0.5293 0.5293 +vn 0.9955 0.0670 0.0670 +vn 0.7573 -0.4617 -0.4617 +vn 0.9987 0.0196 0.0473 +vn 0.7263 -0.1363 -0.6737 +vn -0.9987 0.0196 0.0473 +vn -0.6794 0.1447 0.7194 +vn 0.6794 0.1447 0.7194 +vn -0.7573 -0.4617 -0.4617 +vn 0.0000 0.1866 0.9824 +vn -0.7263 -0.1363 -0.6737 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.6630 -0.5293 -0.5293 +vn -0.6630 -0.5293 -0.5293 +vn 0.9955 -0.0670 -0.0670 +vn 0.7573 0.4617 0.4617 +vn -0.7573 0.4617 0.4617 +vn -0.9955 -0.0670 -0.0670 +vn 0.6794 -0.1447 -0.7194 +vn -0.6794 -0.1447 -0.7194 +vn 0.9987 -0.0196 -0.0473 +vn 0.7263 0.1363 0.6737 +vn 0.0000 -0.1866 -0.9824 +vn -0.7263 0.1363 0.6737 +vn -0.9987 -0.0196 -0.0473 +vn 0.7194 0.1447 -0.6794 +vn -0.6737 -0.1363 -0.7263 +vn 0.7194 0.1447 0.6794 +vn 0.0473 0.0196 0.9987 +vn 0.9824 0.1866 0.0000 +vn -0.6737 -0.1363 0.7263 +vn 0.0473 0.0196 -0.9987 +vn -0.9809 -0.1944 0.0000 +vn 0.5293 0.5293 0.6630 +vn 0.0670 0.0670 0.9955 +vn -0.4617 -0.4617 -0.7573 +vn 0.0670 0.0670 -0.9955 +vn -0.4617 -0.4617 0.7573 +vn 0.5293 0.5293 -0.6630 +vn -0.2611 -0.6303 0.7311 +vn 0.0392 0.0948 -0.9947 +vn 0.2962 0.7150 -0.6332 +vn 0.3827 0.9239 0.0000 +vn 0.2962 0.7150 0.6332 +vn 0.0392 0.0948 0.9947 +vn -0.2611 -0.6303 -0.7311 +vn -0.7194 0.1447 -0.6794 +vn 0.6737 -0.1363 -0.7263 +vn -0.7194 0.1447 0.6794 +vn -0.0473 0.0196 0.9987 +vn -0.9824 0.1866 0.0000 +vn 0.6737 -0.1363 0.7263 +vn -0.0473 0.0196 -0.9987 +vn 0.9809 -0.1944 0.0000 +vn -0.0670 0.0670 0.9955 +vn 0.4617 -0.4617 -0.7573 +vn 0.4617 -0.4617 0.7573 +vn -0.0670 0.0670 -0.9955 +vn 0.2611 -0.6303 0.7311 +vn -0.5293 0.5293 -0.6630 +vn -0.0392 0.0948 -0.9947 +vn -0.5293 0.5293 0.6630 +vn -0.3827 0.9239 0.0000 +vn -0.0392 0.0948 0.9947 +vn 0.2611 -0.6303 -0.7311 +vn -0.2962 0.7150 0.6332 +vn -0.2962 0.7150 -0.6332 +s off +f 577/873/155 579/874/155 580/875/155 +f 578/876/156 581/877/156 579/874/156 +f 583/878/157 582/879/157 581/877/157 +f 584/880/158 580/875/158 582/879/158 +f 583/878/159 577/873/159 584/880/159 +f 580/875/160 581/877/160 582/879/160 +f 613/881/158 617/882/158 615/883/158 +f 617/882/155 624/884/155 620/885/155 +f 596/886/156 586/887/156 588/888/156 +f 593/889/158 587/890/158 585/891/158 +f 598/892/161 585/891/161 590/893/161 +f 595/894/162 589/895/162 587/890/162 +f 597/896/159 591/897/159 589/895/159 +f 944/898/156 947/899/156 942/900/156 +f 599/901/163 588/888/163 591/897/163 +f 594/902/164 592/903/164 586/887/164 +f 615/883/155 620/885/155 616/904/155 +f 605/905/155 612/906/155 608/907/155 +f 601/908/158 605/905/158 603/909/158 +f 603/909/155 608/907/155 604/910/155 +f 602/911/157 606/912/157 601/908/157 +f 604/910/156 607/913/156 602/911/156 +f 611/914/159 609/915/159 610/916/159 +f 607/913/157 610/916/157 606/912/157 +f 608/907/163 611/914/163 607/913/163 +f 606/912/162 609/915/162 605/905/162 +f 614/917/157 618/918/157 613/881/157 +f 616/904/156 619/919/156 614/917/156 +f 623/920/159 621/921/159 622/922/159 +f 619/919/157 622/922/157 618/918/157 +f 620/885/163 623/920/163 619/919/163 +f 618/918/162 621/921/162 617/882/162 +f 625/923/158 629/924/158 627/925/158 +f 629/924/155 636/926/155 632/927/155 +f 627/925/155 632/927/155 628/928/155 +f 626/929/157 630/930/157 625/923/157 +f 628/928/156 631/931/156 626/929/156 +f 635/932/159 633/933/159 634/934/159 +f 631/931/157 634/934/157 630/930/157 +f 632/927/163 635/932/163 631/931/163 +f 630/930/162 633/933/162 629/924/162 +f 664/935/165 658/936/165 663/937/165 +f 667/938/166 655/939/166 666/940/166 +f 670/941/167 652/942/167 669/943/167 +f 663/937/162 659/944/162 662/945/162 +f 661/946/168 649/947/168 672/948/168 +f 666/940/161 656/949/161 665/950/161 +f 669/943/164 653/951/164 668/952/164 +f 662/945/169 660/953/169 661/946/169 +f 672/948/163 650/954/163 671/955/163 +f 665/950/170 657/956/170 664/935/170 +f 668/952/171 654/957/171 667/938/171 +f 671/955/172 651/958/172 670/941/172 +f 642/959/159 644/960/159 643/961/159 +f 646/962/155 641/963/155 645/964/155 +f 647/965/157 643/961/157 648/966/157 +f 679/967/156 645/964/156 641/963/156 +f 648/966/158 644/960/158 646/962/158 +f 639/968/159 637/969/159 638/970/159 +f 674/971/155 640/972/155 673/973/155 +f 675/974/157 638/970/157 676/975/157 +f 673/973/156 639/968/156 675/974/156 +f 637/969/158 696/976/158 638/970/158 +f 681/977/157 680/978/157 677/979/157 +f 683/980/155 678/981/155 679/967/155 +f 684/982/159 679/967/159 680/978/159 +f 685/983/159 690/984/159 686/985/159 +f 687/986/155 689/987/155 685/983/155 +f 686/985/157 692/988/157 688/989/157 +f 690/984/158 683/980/158 684/982/158 +f 692/988/158 684/982/158 681/977/158 +f 683/980/158 691/990/158 682/991/158 +f 680/978/156 641/963/156 642/959/156 +f 647/965/156 680/978/156 642/959/156 +f 695/992/158 674/971/158 694/993/158 +f 676/975/158 696/976/158 693/994/158 +f 696/976/157 697/995/157 693/994/157 +f 694/993/155 699/996/155 695/992/155 +f 695/992/159 700/997/159 696/976/159 +f 700/997/156 685/983/156 686/985/156 +f 699/996/156 687/986/156 685/983/156 +f 688/989/156 700/997/156 686/985/156 +f 712/998/156 715/999/156 710/1000/156 +f 707/1001/173 705/1002/173 706/1003/173 +f 704/1004/156 707/1001/156 702/1005/156 +f 703/1006/158 706/1003/158 705/1002/158 +f 715/999/173 713/1007/173 714/1008/173 +f 702/1005/157 706/1003/157 701/1009/157 +f 711/1010/158 714/1008/158 713/1007/158 +f 710/1000/157 714/1008/157 709/1011/157 +f 723/1012/159 721/1013/159 722/1014/159 +f 720/1015/156 723/1012/156 718/1016/156 +f 717/1017/158 721/1013/158 719/1018/158 +f 719/1018/155 724/1019/155 720/1015/155 +f 718/1016/157 722/1014/157 717/1017/157 +f 942/900/157 946/1020/157 941/1021/157 +f 943/1022/155 948/1023/155 944/898/155 +f 935/1024/155 940/1025/155 936/1026/155 +f 934/1027/157 938/1028/157 933/1029/157 +f 936/1026/156 939/1030/156 934/1027/156 +f 933/1029/158 937/1031/158 935/1024/158 +f 941/1021/158 945/1032/158 943/1022/158 +f 577/873/155 578/876/155 579/874/155 +f 578/876/156 583/878/156 581/877/156 +f 583/878/157 584/880/157 582/879/157 +f 584/880/158 577/873/158 580/875/158 +f 583/878/159 578/876/159 577/873/159 +f 580/875/160 579/874/160 581/877/160 +f 613/881/158 618/918/158 617/882/158 +f 617/882/155 621/921/155 624/884/155 +f 596/886/156 594/902/156 586/887/156 +f 593/889/158 595/894/158 587/890/158 +f 598/892/161 593/889/161 585/891/161 +f 595/894/162 597/896/162 589/895/162 +f 597/896/159 599/901/159 591/897/159 +f 944/898/156 948/1023/156 947/899/156 +f 599/901/163 596/886/163 588/888/163 +f 594/902/164 600/1033/164 592/903/164 +f 615/883/155 617/882/155 620/885/155 +f 605/905/155 609/915/155 612/906/155 +f 601/908/158 606/912/158 605/905/158 +f 603/909/155 605/905/155 608/907/155 +f 602/911/157 607/913/157 606/912/157 +f 604/910/156 608/907/156 607/913/156 +f 611/914/159 612/906/159 609/915/159 +f 607/913/157 611/914/157 610/916/157 +f 608/907/163 612/906/163 611/914/163 +f 606/912/162 610/916/162 609/915/162 +f 614/917/157 619/919/157 618/918/157 +f 616/904/156 620/885/156 619/919/156 +f 623/920/159 624/884/159 621/921/159 +f 619/919/157 623/920/157 622/922/157 +f 620/885/163 624/884/163 623/920/163 +f 618/918/162 622/922/162 621/921/162 +f 625/923/158 630/930/158 629/924/158 +f 629/924/155 633/933/155 636/926/155 +f 627/925/155 629/924/155 632/927/155 +f 626/929/157 631/931/157 630/930/157 +f 628/928/156 632/927/156 631/931/156 +f 635/932/159 636/926/159 633/933/159 +f 631/931/157 635/932/157 634/934/157 +f 632/927/163 636/926/163 635/932/163 +f 630/930/162 634/934/162 633/933/162 +f 664/935/165 657/956/165 658/936/165 +f 667/938/166 654/957/166 655/939/166 +f 670/941/167 651/958/167 652/942/167 +f 663/937/162 658/936/162 659/944/162 +f 661/946/168 660/953/168 649/947/168 +f 666/940/161 655/939/161 656/949/161 +f 669/943/164 652/942/164 653/951/164 +f 662/945/169 659/944/169 660/953/169 +f 672/948/163 649/947/163 650/954/163 +f 665/950/170 656/949/170 657/956/170 +f 668/952/171 653/951/171 654/957/171 +f 671/955/172 650/954/172 651/958/172 +f 642/959/159 641/963/159 644/960/159 +f 646/962/155 644/960/155 641/963/155 +f 647/965/157 642/959/157 643/961/157 +f 679/967/156 678/981/156 645/964/156 +f 648/966/158 643/961/158 644/960/158 +f 639/968/159 640/972/159 637/969/159 +f 674/971/155 637/969/155 640/972/155 +f 675/974/157 639/968/157 638/970/157 +f 673/973/156 640/972/156 639/968/156 +f 637/969/158 695/992/158 696/976/158 +f 681/977/157 684/982/157 680/978/157 +f 683/980/155 682/991/155 678/981/155 +f 684/982/159 683/980/159 679/967/159 +f 685/983/159 689/987/159 690/984/159 +f 687/986/155 691/990/155 689/987/155 +f 686/985/157 690/984/157 692/988/157 +f 690/984/158 689/987/158 683/980/158 +f 692/988/158 690/984/158 684/982/158 +f 683/980/158 689/987/158 691/990/158 +f 680/978/156 679/967/156 641/963/156 +f 647/965/156 677/979/156 680/978/156 +f 695/992/158 637/969/158 674/971/158 +f 676/975/158 638/970/158 696/976/158 +f 696/976/157 700/997/157 697/995/157 +f 694/993/155 698/1034/155 699/996/155 +f 695/992/159 699/996/159 700/997/159 +f 700/997/156 699/996/156 685/983/156 +f 699/996/156 698/1034/156 687/986/156 +f 688/989/156 697/995/156 700/997/156 +f 712/998/156 716/1035/156 715/999/156 +f 707/1001/173 708/1036/173 705/1002/173 +f 704/1004/156 708/1036/156 707/1001/156 +f 703/1006/158 701/1009/158 706/1003/158 +f 715/999/173 716/1035/173 713/1007/173 +f 702/1005/157 707/1001/157 706/1003/157 +f 711/1010/158 709/1011/158 714/1008/158 +f 710/1000/157 715/999/157 714/1008/157 +f 723/1012/159 724/1019/159 721/1013/159 +f 720/1015/156 724/1019/156 723/1012/156 +f 717/1017/158 722/1014/158 721/1013/158 +f 719/1018/155 721/1013/155 724/1019/155 +f 718/1016/157 723/1012/157 722/1014/157 +f 942/900/157 947/899/157 946/1020/157 +f 943/1022/155 945/1032/155 948/1023/155 +f 935/1024/155 937/1031/155 940/1025/155 +f 934/1027/157 939/1030/157 938/1028/157 +f 936/1026/156 940/1025/156 939/1030/156 +f 933/1029/158 938/1028/158 937/1031/158 +f 941/1021/158 946/1020/158 945/1032/158 +s 1 +f 728/1037/174 735/1038/175 727/1039/173 +f 726/1040/176 733/1041/177 725/1042/178 +f 725/1042/178 740/1043/179 732/1044/180 +f 731/1045/181 738/1046/182 730/1047/183 +f 729/1048/184 736/1049/185 728/1037/174 +f 727/1039/173 734/1050/186 726/1040/176 +f 732/1044/180 739/1051/187 731/1045/181 +f 730/1047/183 737/1052/188 729/1048/184 +f 736/1049/185 745/1053/189 744/1054/190 +f 735/1038/175 742/1055/191 734/1050/186 +f 738/1046/182 745/1053/189 737/1052/188 +f 736/1049/185 743/1056/173 735/1038/175 +f 734/1050/186 741/1057/192 733/1041/177 +f 733/1041/177 747/1058/193 740/1043/179 +f 742/1055/191 748/1059/194 741/1057/192 +f 747/1058/193 748/1059/194 754/1060/195 +f 744/1054/190 752/1061/196 751/1062/197 +f 743/1056/173 749/1063/198 742/1055/191 +f 746/1064/199 752/1061/196 745/1053/189 +f 743/1056/173 751/1062/197 750/1065/200 +f 740/1043/179 747/1058/193 739/1051/187 +f 747/1058/193 754/1060/195 739/1051/187 +f 738/1046/182 739/1051/187 746/1064/199 +f 746/1064/199 739/1051/187 753/1066/201 +f 739/1051/187 761/1067/202 753/1066/201 +f 748/1059/194 762/1068/203 754/1060/195 +f 754/1060/195 755/1069/155 739/1051/187 +f 752/1061/196 759/1070/204 751/1062/197 +f 750/1065/200 757/1071/205 749/1063/198 +f 753/1066/201 760/1072/158 752/1061/196 +f 751/1062/197 758/1073/157 750/1065/200 +f 749/1063/198 756/1074/156 748/1059/194 +f 731/1045/181 769/1075/206 732/1044/180 +f 729/1048/184 767/1076/207 730/1047/183 +f 726/1040/176 763/1077/208 764/1078/209 +f 725/1042/178 769/1075/206 763/1077/208 +f 730/1047/183 768/1079/187 731/1045/181 +f 729/1048/184 765/1080/210 766/1081/211 +f 768/1079/187 776/1082/212 769/1075/206 +f 766/1081/211 774/1083/213 767/1076/207 +f 764/1078/209 770/1084/214 771/1085/215 +f 769/1075/206 770/1084/214 763/1077/208 +f 768/1079/187 774/1083/213 775/1086/216 +f 766/1081/211 772/1087/217 773/1088/218 +f 727/1039/173 765/1080/210 728/1037/174 +f 765/1080/210 727/1039/173 772/1087/217 +f 726/1040/176 764/1078/209 727/1039/173 +f 764/1078/209 771/1085/215 727/1039/173 +f 775/1086/216 784/1089/219 776/1082/212 +f 773/1088/218 782/1090/220 774/1083/213 +f 770/1084/214 779/1091/221 771/1085/215 +f 771/1085/215 777/1092/222 727/1039/173 +f 776/1082/212 778/1093/223 770/1084/214 +f 727/1039/173 780/1094/224 772/1087/217 +f 774/1083/213 783/1095/225 775/1086/216 +f 772/1087/217 781/1096/226 773/1088/218 +f 778/1093/223 787/1097/227 779/1091/221 +f 779/1091/221 785/1098/228 777/1092/222 +f 784/1089/219 786/1099/163 778/1093/223 +f 783/1095/225 789/1100/229 790/1101/230 +f 777/1092/222 788/1102/231 780/1094/224 +f 784/1089/219 790/1101/230 791/1103/232 +f 785/1098/228 795/1104/233 788/1102/231 +f 791/1103/232 797/1105/234 798/1106/235 +f 787/1097/227 793/1107/236 794/1108/237 +f 787/1097/227 792/1109/238 785/1098/228 +f 791/1103/232 793/1107/236 786/1099/163 +f 789/1100/229 797/1105/234 790/1101/230 +f 781/1096/226 789/1100/229 782/1090/220 +f 789/1100/229 781/1096/226 796/1110/239 +f 780/1094/224 788/1102/231 781/1096/226 +f 788/1102/231 795/1104/233 781/1096/226 +f 805/1111/155 814/1112/219 806/1113/203 +f 803/1114/158 812/1115/220 804/1116/202 +f 800/1117/156 809/1118/221 801/1119/205 +f 801/1119/205 807/1120/222 799/1121/157 +f 806/1113/203 808/1122/223 800/1117/156 +f 799/1121/157 810/1123/224 802/1124/204 +f 804/1116/202 813/1125/225 805/1111/155 +f 802/1124/204 811/1126/226 803/1114/158 +f 808/1122/223 817/1127/227 809/1118/221 +f 809/1118/221 815/1128/228 807/1120/222 +f 814/1112/219 816/1129/163 808/1122/223 +f 813/1125/225 819/1130/229 820/1131/230 +f 807/1120/222 818/1132/231 810/1123/224 +f 814/1112/219 820/1131/230 821/1133/232 +f 818/1132/231 822/1134/238 825/1135/233 +f 821/1133/232 827/1136/234 828/1137/235 +f 816/1129/163 824/1138/237 817/1127/227 +f 815/1128/228 824/1138/237 822/1134/238 +f 821/1133/232 823/1139/236 816/1129/163 +f 819/1130/229 827/1136/234 820/1131/230 +f 811/1126/226 819/1130/229 812/1115/220 +f 819/1130/229 811/1126/226 826/1140/239 +f 810/1123/224 818/1132/231 811/1126/226 +f 818/1132/231 825/1135/233 811/1126/226 +f 839/1141/175 832/1142/176 831/1143/173 +f 837/1144/188 830/1145/174 829/1146/184 +f 844/1147/182 829/1146/184 836/1148/183 +f 842/1149/179 835/1150/181 834/1151/180 +f 840/1152/186 833/1153/178 832/1142/176 +f 838/1154/185 831/1143/173 830/1145/174 +f 843/1155/187 836/1148/183 835/1150/181 +f 841/1156/177 834/1151/180 833/1153/178 +f 840/1152/186 849/1157/192 841/1156/177 +f 846/1158/190 839/1141/175 838/1154/185 +f 849/1157/192 842/1149/179 841/1156/177 +f 847/1159/173 840/1152/186 839/1141/175 +f 845/1160/189 838/1154/185 837/1144/188 +f 844/1147/182 845/1160/189 837/1144/188 +f 852/1161/196 846/1158/190 845/1160/189 +f 858/1162/201 845/1160/189 851/1163/199 +f 855/1164/198 849/1157/192 848/1165/191 +f 853/1166/197 847/1159/173 846/1158/190 +f 849/1157/192 857/1167/195 850/1168/193 +f 847/1159/173 855/1164/198 848/1165/191 +f 844/1147/182 843/1155/187 851/1163/199 +f 851/1163/199 843/1155/187 858/1162/201 +f 842/1149/179 850/1168/193 843/1155/187 +f 850/1168/193 857/1167/195 843/1155/187 +f 865/1169/203 843/1155/187 857/1167/195 +f 866/1170/202 852/1161/196 858/1162/201 +f 859/1171/155 858/1162/201 843/1155/187 +f 863/1172/205 856/1173/194 855/1164/198 +f 861/1174/204 854/1175/200 853/1166/197 +f 864/1176/156 857/1167/195 856/1173/194 +f 862/1177/157 855/1164/198 854/1175/200 +f 860/1178/158 853/1166/197 852/1161/196 +f 873/1179/207 835/1150/181 836/1148/183 +f 834/1151/180 870/1180/208 833/1153/178 +f 830/1145/174 867/1181/211 829/1146/184 +f 829/1146/184 873/1179/207 836/1148/183 +f 835/1150/181 871/1182/206 834/1151/180 +f 870/1180/208 832/1142/176 833/1153/178 +f 880/1183/213 872/1184/187 873/1179/207 +f 878/1185/212 870/1180/208 871/1182/206 +f 868/1186/210 874/1187/218 867/1181/211 +f 867/1181/211 880/1183/213 873/1179/207 +f 872/1184/187 878/1185/212 871/1182/206 +f 877/1188/214 869/1189/209 870/1180/208 +f 831/1143/173 832/1142/176 869/1189/209 +f 869/1189/209 876/1190/215 831/1143/173 +f 830/1145/174 831/1143/173 868/1186/210 +f 868/1186/210 831/1143/173 875/1191/217 +f 888/1192/240 879/1193/216 880/1183/213 +f 886/1194/241 877/1188/214 878/1185/212 +f 883/1195/242 874/1187/218 875/1191/217 +f 881/1196/243 875/1191/217 831/1143/173 +f 882/1197/244 880/1183/213 874/1187/218 +f 884/1198/245 831/1143/173 876/1190/215 +f 887/1199/246 878/1185/212 879/1193/216 +f 885/1200/247 876/1190/215 877/1188/214 +f 883/1195/242 890/1201/162 882/1197/244 +f 889/1202/248 883/1195/242 881/1196/243 +f 890/1201/162 888/1192/240 882/1197/244 +f 887/1199/246 893/1203/249 886/1194/241 +f 892/1204/250 881/1196/243 884/1198/245 +f 888/1192/240 894/1205/251 887/1199/246 +f 899/1206/252 889/1202/248 892/1204/250 +f 895/1207/253 901/1208/254 894/1205/251 +f 891/1209/255 897/1210/256 890/1201/162 +f 896/1211/257 891/1209/255 889/1202/248 +f 897/1210/256 895/1207/253 890/1201/162 +f 901/1208/254 893/1203/249 894/1205/251 +f 885/1200/247 886/1194/241 893/1203/249 +f 893/1203/249 900/1212/258 885/1200/247 +f 884/1198/245 885/1200/247 892/1204/250 +f 892/1204/250 885/1200/247 899/1206/252 +f 918/1213/240 909/1214/155 910/1215/202 +f 916/1216/241 907/1217/156 908/1218/203 +f 913/1219/242 904/1220/158 905/1221/204 +f 911/1222/243 905/1221/204 903/1223/157 +f 912/1224/244 910/1215/202 904/1220/158 +f 914/1225/245 903/1223/157 906/1226/205 +f 917/1227/246 908/1218/203 909/1214/155 +f 915/1228/247 906/1226/205 907/1217/156 +f 913/1219/242 920/1229/162 912/1224/244 +f 911/1222/243 921/1230/255 913/1219/242 +f 920/1229/162 918/1213/240 912/1224/244 +f 917/1227/246 923/1231/249 916/1216/241 +f 922/1232/250 911/1222/243 914/1225/245 +f 918/1213/240 924/1233/251 917/1227/246 +f 922/1232/250 926/1234/257 919/1235/248 +f 925/1236/253 931/1237/254 924/1233/251 +f 928/1238/259 920/1229/162 921/1230/255 +f 926/1234/257 921/1230/255 919/1235/248 +f 927/1239/256 925/1236/253 920/1229/162 +f 931/1237/254 923/1231/249 924/1233/251 +f 915/1228/247 916/1216/241 923/1231/249 +f 923/1231/249 930/1240/258 915/1228/247 +f 914/1225/245 915/1228/247 922/1232/250 +f 922/1232/250 915/1228/247 929/1241/252 +f 728/1037/174 736/1049/185 735/1038/175 +f 726/1040/176 734/1050/186 733/1041/177 +f 725/1042/178 733/1041/177 740/1043/179 +f 731/1045/181 739/1051/187 738/1046/182 +f 729/1048/184 737/1052/188 736/1049/185 +f 727/1039/173 735/1038/175 734/1050/186 +f 732/1044/180 740/1043/179 739/1051/187 +f 730/1047/183 738/1046/182 737/1052/188 +f 736/1049/185 737/1052/188 745/1053/189 +f 735/1038/175 743/1056/173 742/1055/191 +f 738/1046/182 746/1064/199 745/1053/189 +f 736/1049/185 744/1054/190 743/1056/173 +f 734/1050/186 742/1055/191 741/1057/192 +f 733/1041/177 741/1057/192 747/1058/193 +f 742/1055/191 749/1063/198 748/1059/194 +f 747/1058/193 741/1057/192 748/1059/194 +f 744/1054/190 745/1053/189 752/1061/196 +f 743/1056/173 750/1065/200 749/1063/198 +f 746/1064/199 753/1066/201 752/1061/196 +f 743/1056/173 744/1054/190 751/1062/197 +f 739/1051/187 755/1069/155 761/1067/202 +f 748/1059/194 756/1074/156 762/1068/203 +f 754/1060/195 762/1068/203 755/1069/155 +f 752/1061/196 760/1072/158 759/1070/204 +f 750/1065/200 758/1073/157 757/1071/205 +f 753/1066/201 761/1067/202 760/1072/158 +f 751/1062/197 759/1070/204 758/1073/157 +f 749/1063/198 757/1071/205 756/1074/156 +f 731/1045/181 768/1079/187 769/1075/206 +f 729/1048/184 766/1081/211 767/1076/207 +f 726/1040/176 725/1042/178 763/1077/208 +f 725/1042/178 732/1044/180 769/1075/206 +f 730/1047/183 767/1076/207 768/1079/187 +f 729/1048/184 728/1037/174 765/1080/210 +f 768/1079/187 775/1086/216 776/1082/212 +f 766/1081/211 773/1088/218 774/1083/213 +f 764/1078/209 763/1077/208 770/1084/214 +f 769/1075/206 776/1082/212 770/1084/214 +f 768/1079/187 767/1076/207 774/1083/213 +f 766/1081/211 765/1080/210 772/1087/217 +f 775/1086/216 783/1095/225 784/1089/219 +f 773/1088/218 781/1096/226 782/1090/220 +f 770/1084/214 778/1093/223 779/1091/221 +f 771/1085/215 779/1091/221 777/1092/222 +f 776/1082/212 784/1089/219 778/1093/223 +f 727/1039/173 777/1092/222 780/1094/224 +f 774/1083/213 782/1090/220 783/1095/225 +f 772/1087/217 780/1094/224 781/1096/226 +f 778/1093/223 786/1099/163 787/1097/227 +f 779/1091/221 787/1097/227 785/1098/228 +f 784/1089/219 791/1103/232 786/1099/163 +f 783/1095/225 782/1090/220 789/1100/229 +f 777/1092/222 785/1098/228 788/1102/231 +f 784/1089/219 783/1095/225 790/1101/230 +f 785/1098/228 792/1109/238 795/1104/233 +f 791/1103/232 790/1101/230 797/1105/234 +f 787/1097/227 786/1099/163 793/1107/236 +f 787/1097/227 794/1108/237 792/1109/238 +f 791/1103/232 798/1106/235 793/1107/236 +f 789/1100/229 796/1110/239 797/1105/234 +f 805/1111/155 813/1125/225 814/1112/219 +f 803/1114/158 811/1126/226 812/1115/220 +f 800/1117/156 808/1122/223 809/1118/221 +f 801/1119/205 809/1118/221 807/1120/222 +f 806/1113/203 814/1112/219 808/1122/223 +f 799/1121/157 807/1120/222 810/1123/224 +f 804/1116/202 812/1115/220 813/1125/225 +f 802/1124/204 810/1123/224 811/1126/226 +f 808/1122/223 816/1129/163 817/1127/227 +f 809/1118/221 817/1127/227 815/1128/228 +f 814/1112/219 821/1133/232 816/1129/163 +f 813/1125/225 812/1115/220 819/1130/229 +f 807/1120/222 815/1128/228 818/1132/231 +f 814/1112/219 813/1125/225 820/1131/230 +f 818/1132/231 815/1128/228 822/1134/238 +f 821/1133/232 820/1131/230 827/1136/234 +f 816/1129/163 823/1139/236 824/1138/237 +f 815/1128/228 817/1127/227 824/1138/237 +f 821/1133/232 828/1137/235 823/1139/236 +f 819/1130/229 826/1140/239 827/1136/234 +f 839/1141/175 840/1152/186 832/1142/176 +f 837/1144/188 838/1154/185 830/1145/174 +f 844/1147/182 837/1144/188 829/1146/184 +f 842/1149/179 843/1155/187 835/1150/181 +f 840/1152/186 841/1156/177 833/1153/178 +f 838/1154/185 839/1141/175 831/1143/173 +f 843/1155/187 844/1147/182 836/1148/183 +f 841/1156/177 842/1149/179 834/1151/180 +f 840/1152/186 848/1165/191 849/1157/192 +f 846/1158/190 847/1159/173 839/1141/175 +f 849/1157/192 850/1168/193 842/1149/179 +f 847/1159/173 848/1165/191 840/1152/186 +f 845/1160/189 846/1158/190 838/1154/185 +f 844/1147/182 851/1163/199 845/1160/189 +f 852/1161/196 853/1166/197 846/1158/190 +f 858/1162/201 852/1161/196 845/1160/189 +f 855/1164/198 856/1173/194 849/1157/192 +f 853/1166/197 854/1175/200 847/1159/173 +f 849/1157/192 856/1173/194 857/1167/195 +f 847/1159/173 854/1175/200 855/1164/198 +f 865/1169/203 859/1171/155 843/1155/187 +f 866/1170/202 860/1178/158 852/1161/196 +f 859/1171/155 866/1170/202 858/1162/201 +f 863/1172/205 864/1176/156 856/1173/194 +f 861/1174/204 862/1177/157 854/1175/200 +f 864/1176/156 865/1169/203 857/1167/195 +f 862/1177/157 863/1172/205 855/1164/198 +f 860/1178/158 861/1174/204 853/1166/197 +f 873/1179/207 872/1184/187 835/1150/181 +f 834/1151/180 871/1182/206 870/1180/208 +f 830/1145/174 868/1186/210 867/1181/211 +f 829/1146/184 867/1181/211 873/1179/207 +f 835/1150/181 872/1184/187 871/1182/206 +f 870/1180/208 869/1189/209 832/1142/176 +f 880/1183/213 879/1193/216 872/1184/187 +f 878/1185/212 877/1188/214 870/1180/208 +f 868/1186/210 875/1191/217 874/1187/218 +f 867/1181/211 874/1187/218 880/1183/213 +f 872/1184/187 879/1193/216 878/1185/212 +f 877/1188/214 876/1190/215 869/1189/209 +f 888/1192/240 887/1199/246 879/1193/216 +f 886/1194/241 885/1200/247 877/1188/214 +f 883/1195/242 882/1197/244 874/1187/218 +f 881/1196/243 883/1195/242 875/1191/217 +f 882/1197/244 888/1192/240 880/1183/213 +f 884/1198/245 881/1196/243 831/1143/173 +f 887/1199/246 886/1194/241 878/1185/212 +f 885/1200/247 884/1198/245 876/1190/215 +f 883/1195/242 891/1209/255 890/1201/162 +f 889/1202/248 891/1209/255 883/1195/242 +f 890/1201/162 895/1207/253 888/1192/240 +f 887/1199/246 894/1205/251 893/1203/249 +f 892/1204/250 889/1202/248 881/1196/243 +f 888/1192/240 895/1207/253 894/1205/251 +f 899/1206/252 896/1211/257 889/1202/248 +f 895/1207/253 902/1242/260 901/1208/254 +f 891/1209/255 898/1243/259 897/1210/256 +f 896/1211/257 898/1243/259 891/1209/255 +f 897/1210/256 902/1242/260 895/1207/253 +f 901/1208/254 900/1212/258 893/1203/249 +f 918/1213/240 917/1227/246 909/1214/155 +f 916/1216/241 915/1228/247 907/1217/156 +f 913/1219/242 912/1224/244 904/1220/158 +f 911/1222/243 913/1219/242 905/1221/204 +f 912/1224/244 918/1213/240 910/1215/202 +f 914/1225/245 911/1222/243 903/1223/157 +f 917/1227/246 916/1216/241 908/1218/203 +f 915/1228/247 914/1225/245 906/1226/205 +f 913/1219/242 921/1230/255 920/1229/162 +f 911/1222/243 919/1235/248 921/1230/255 +f 920/1229/162 925/1236/253 918/1213/240 +f 917/1227/246 924/1233/251 923/1231/249 +f 922/1232/250 919/1235/248 911/1222/243 +f 918/1213/240 925/1236/253 924/1233/251 +f 922/1232/250 929/1241/252 926/1234/257 +f 925/1236/253 932/1244/260 931/1237/254 +f 928/1238/259 927/1239/256 920/1229/162 +f 926/1234/257 928/1238/259 921/1230/255 +f 927/1239/256 932/1244/260 925/1236/253 +f 931/1237/254 930/1240/258 923/1231/249 diff --git a/src/main/resources/assets/hbm/models/machines/soldering_station.obj b/src/main/resources/assets/hbm/models/machines/soldering_station.obj new file mode 100644 index 000000000..2e39afa4c --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/soldering_station.obj @@ -0,0 +1,889 @@ +# Blender v2.79 (sub 0) OBJ File: 'soldering_station.blend' +# www.blender.org +o Plane +v -1.000000 0.000000 1.000000 +v 1.000000 0.000000 1.000000 +v -1.000000 0.000000 -1.000000 +v 1.000000 0.000000 -1.000000 +v -1.000000 1.000000 1.000000 +v 1.000000 1.000000 1.000000 +v -1.000000 1.000000 -1.000000 +v 1.000000 1.000000 -1.000000 +v -1.000000 0.875000 -1.000000 +v -1.000000 0.875000 1.000000 +v 1.000000 0.875000 1.000000 +v 1.000000 0.875000 -1.000000 +v -1.000000 0.125000 -1.000000 +v -1.000000 0.125000 1.000000 +v 1.000000 0.125000 1.000000 +v 1.000000 0.125000 -1.000000 +v 0.875000 0.687500 0.312500 +v 0.875000 0.687500 0.687500 +v 0.875000 0.312500 0.687500 +v 0.875000 0.312500 0.312500 +v 1.000000 0.687500 0.312500 +v 1.000000 0.312500 0.312500 +v 1.000000 0.687500 0.687500 +v 1.000000 0.312500 0.687500 +v -0.375000 1.000000 0.375000 +v 0.375000 1.000000 0.375000 +v -0.375000 1.000000 -0.375000 +v 0.375000 1.000000 -0.375000 +v -0.375000 1.125000 -0.375000 +v -0.375000 1.125000 0.375000 +v 0.375000 1.125000 0.375000 +v 0.375000 1.125000 -0.375000 +v -0.375000 1.000000 -0.437500 +v 0.375000 1.000000 -0.437500 +v -0.375000 1.000000 -0.937500 +v 0.375000 1.000000 -0.937500 +v -0.375000 1.125000 -0.937500 +v -0.375000 1.125000 -0.437500 +v 0.375000 1.125000 -0.437500 +v 0.375000 1.125000 -0.937500 +v -0.250000 1.250000 -0.937500 +v -0.250000 1.250000 -0.437500 +v 0.250000 1.250000 -0.437500 +v 0.250000 1.250000 -0.937500 +v -0.125000 1.375000 0.125000 +v 0.125000 1.375000 0.125000 +v -0.125000 1.375000 -0.125000 +v 0.125000 1.375000 -0.125000 +v -0.125000 1.500000 0.125000 +v 0.125000 1.500000 0.125000 +v -0.125000 1.500000 -0.125000 +v 0.125000 1.500000 -0.125000 +v -0.062500 1.375000 0.062500 +v 0.062500 1.375000 0.062500 +v -0.062500 1.375000 -0.062500 +v 0.062500 1.375000 -0.062500 +v 0.000000 1.187500 0.000000 +v -0.062500 1.406250 -0.125000 +v 0.062500 1.406250 -0.125000 +v -0.062500 1.468750 -0.125000 +v 0.062500 1.468750 -0.125000 +v -0.062500 1.406250 -0.625000 +v 0.062500 1.406250 -0.625000 +v -0.062500 1.468750 -0.625000 +v 0.062500 1.468750 -0.625000 +v -0.125000 1.500000 -0.625000 +v 0.125000 1.500000 -0.625000 +v -0.125000 1.500000 -0.875000 +v 0.125000 1.500000 -0.875000 +v -0.125000 1.250000 -0.625000 +v 0.125000 1.250000 -0.625000 +v -0.125000 1.250000 -0.875000 +v 0.125000 1.250000 -0.875000 +v -0.312500 1.187500 -0.500000 +v -0.187500 1.187500 -0.500000 +v -0.312500 1.187500 -0.625000 +v -0.187500 1.187500 -0.625000 +v -0.312500 1.437500 -0.625000 +v -0.312500 1.437500 -0.500000 +v -0.187500 1.437500 -0.500000 +v -0.187500 1.437500 -0.625000 +v -0.312500 1.187500 -0.750000 +v -0.187500 1.187500 -0.750000 +v -0.312500 1.187500 -0.875000 +v -0.187500 1.187500 -0.875000 +v -0.312500 1.437500 -0.875000 +v -0.312500 1.437500 -0.750000 +v -0.187500 1.437500 -0.750000 +v -0.187500 1.437500 -0.875000 +v 1.000000 0.312500 -0.312500 +v 1.000000 0.687500 -0.312500 +v 1.000000 0.312500 -0.687500 +v 1.000000 0.687500 -0.687500 +v 0.875000 0.312500 -0.687500 +v 0.875000 0.312500 -0.312500 +v 0.875000 0.687500 -0.312500 +v 0.875000 0.687500 -0.687500 +v -0.875000 0.125000 -0.875000 +v -0.875000 0.125000 0.875000 +v 0.875000 0.125000 0.875000 +v 0.875000 0.125000 -0.875000 +v -0.875000 0.875000 -0.875000 +v -0.875000 0.875000 0.875000 +v 0.875000 0.875000 0.875000 +v 0.875000 0.875000 -0.875000 +v -0.250000 1.000000 0.937500 +v 0.250000 1.000000 0.937500 +v -0.250000 1.000000 0.437500 +v 0.250000 1.000000 0.437500 +v -0.250000 1.125000 0.437500 +v -0.250000 1.125000 0.937500 +v 0.250000 1.125000 0.937500 +v 0.250000 1.125000 0.437500 +v 0.031250 1.187500 0.687500 +v -0.031250 1.187500 0.687500 +v -0.187500 1.125000 0.562500 +v 0.187500 1.125000 0.562500 +v -0.187500 1.036612 0.599112 +v 0.187500 1.036612 0.599112 +v -0.187500 1.000000 0.687500 +v 0.187500 1.000000 0.687500 +v -0.187500 1.036612 0.775888 +v 0.187500 1.036612 0.775888 +v -0.187500 1.125000 0.812500 +v 0.187500 1.125000 0.812500 +v -0.187500 1.213388 0.775888 +v 0.187500 1.213388 0.775888 +v -0.187500 1.250000 0.687500 +v 0.187500 1.250000 0.687500 +v -0.187500 1.213388 0.599112 +v 0.187500 1.213388 0.599112 +v 0.031250 1.125000 0.687500 +v -0.031250 1.125000 0.687500 +v 0.031250 1.187500 0.000000 +v -0.031250 1.187500 0.000000 +v 0.031250 1.125000 0.000000 +v -0.031250 1.125000 0.000000 +v 0.875000 1.250000 0.500000 +v 0.875000 1.250000 -0.500000 +v 0.875000 1.000000 0.500000 +v 0.875000 1.000000 -0.500000 +v 0.875000 1.000000 0.375000 +v 0.875000 1.000000 -0.375000 +v 0.875000 1.125000 0.375000 +v 0.875000 1.125000 -0.375000 +v 0.750000 1.250000 0.500000 +v 0.750000 1.250000 -0.500000 +v 0.750000 1.000000 0.500000 +v 0.750000 1.000000 -0.500000 +v 0.750000 1.000000 0.375000 +v 0.750000 1.000000 -0.375000 +v 0.750000 1.125000 0.375000 +v 0.750000 1.125000 -0.375000 +v -0.750000 1.250000 0.500000 +v -0.750000 1.250000 -0.500000 +v -0.750000 1.000000 0.500000 +v -0.750000 1.000000 -0.500000 +v -0.750000 1.000000 0.375000 +v -0.750000 1.000000 -0.375000 +v -0.750000 1.125000 0.375000 +v -0.750000 1.125000 -0.375000 +v -0.875000 1.250000 0.500000 +v -0.875000 1.250000 -0.500000 +v -0.875000 1.000000 0.500000 +v -0.875000 1.000000 -0.500000 +v -0.875000 1.000000 0.375000 +v -0.875000 1.000000 -0.375000 +v -0.875000 1.125000 0.375000 +v -0.875000 1.125000 -0.375000 +v -0.312500 0.687500 0.875000 +v -0.687500 0.687500 0.875000 +v -0.687500 0.312500 0.875000 +v -0.312500 0.312500 0.875000 +v -0.312500 0.687500 1.000000 +v -0.312500 0.312500 1.000000 +v -0.687500 0.687500 1.000000 +v -0.687500 0.312500 1.000000 +v 0.312500 0.312500 1.000000 +v 0.312500 0.687500 1.000000 +v 0.687500 0.312500 1.000000 +v 0.687500 0.687500 1.000000 +v 0.687500 0.312500 0.875000 +v 0.312500 0.312500 0.875000 +v 0.312500 0.687500 0.875000 +v 0.687500 0.687500 0.875000 +v -0.687500 0.687500 -0.875000 +v -0.312500 0.687500 -0.875000 +v -0.312500 0.312500 -0.875000 +v -0.687500 0.312500 -0.875000 +v -0.687500 0.687500 -1.000000 +v -0.687500 0.312500 -1.000000 +v -0.312500 0.687500 -1.000000 +v -0.312500 0.312500 -1.000000 +v 0.687500 0.312500 -1.000000 +v 0.687500 0.687500 -1.000000 +v 0.312500 0.312500 -1.000000 +v 0.312500 0.687500 -1.000000 +v 0.312500 0.312500 -0.875000 +v 0.687500 0.312500 -0.875000 +v 0.687500 0.687500 -0.875000 +v 0.312500 0.687500 -0.875000 +v -0.875000 0.687500 0.687500 +v -0.875000 0.687500 0.312500 +v -0.875000 0.312500 0.312500 +v -0.875000 0.312500 0.687500 +v -1.000000 0.687500 0.687500 +v -1.000000 0.312500 0.687500 +v -1.000000 0.687500 0.312500 +v -1.000000 0.312500 0.312500 +v -1.000000 0.312500 -0.687500 +v -1.000000 0.687500 -0.687500 +v -1.000000 0.312500 -0.312500 +v -1.000000 0.687500 -0.312500 +v -0.875000 0.312500 -0.312500 +v -0.875000 0.312500 -0.687500 +v -0.875000 0.687500 -0.687500 +v -0.875000 0.687500 -0.312500 +vt 0.500000 -0.000000 +vt -0.000000 0.380952 +vt 0.000000 -0.000000 +vt -0.000000 0.619048 +vt 0.500000 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.619048 +vt 0.500000 0.595238 +vt 0.500000 0.619048 +vt -0.000000 0.619048 +vt 0.500000 0.595238 +vt 0.500000 0.619048 +vt 0.500000 0.595238 +vt 0.500000 0.619048 +vt 0.500000 0.404762 +vt 0.031250 0.428571 +vt -0.000000 0.404762 +vt -0.000000 0.619048 +vt 0.500000 0.595238 +vt 0.500000 0.619048 +vt 0.500000 0.404762 +vt 0.031250 0.428571 +vt -0.000000 0.404762 +vt 0.500000 0.380952 +vt 0.500000 0.380952 +vt -0.000000 0.404762 +vt -0.000000 0.380952 +vt 0.500000 0.380952 +vt -0.000000 0.404762 +vt -0.000000 0.380952 +vt 0.500000 0.380952 +vt -0.000000 0.380952 +vt 0.468750 0.428571 +vt 0.031250 0.571429 +vt 0.031250 0.428571 +vt 0.500000 0.404762 +vt 0.031250 0.428571 +vt 0.531250 0.500000 +vt 0.625000 0.476190 +vt 0.625000 0.500000 +vt 0.625000 0.571429 +vt 0.531250 0.595238 +vt 0.531250 0.571429 +vt 0.468750 0.428571 +vt 0.031250 0.571429 +vt 0.468750 0.428571 +vt 0.031250 0.571429 +vt 0.500000 0.404762 +vt 0.500000 0.500000 +vt 0.656250 0.571429 +vt 0.812500 0.238095 +vt 0.781250 0.285714 +vt 0.781250 0.238095 +vt 0.531250 0.023810 +vt 0.718750 0.166667 +vt 0.531250 0.166667 +vt 0.750000 0.166667 +vt 0.718750 0.023810 +vt 0.750000 0.023810 +vt 0.500000 0.023810 +vt 0.500000 0.166667 +vt 0.718750 0.000000 +vt 0.531250 0.000000 +vt 0.531250 0.190476 +vt 0.718750 0.190476 +vt 0.718750 0.357143 +vt 0.781250 0.404762 +vt 0.718750 0.404762 +vt 0.718750 0.333333 +vt 0.765625 0.321429 +vt 0.781250 0.333333 +vt 1.000000 0.023810 +vt 1.000000 0.166667 +vt 0.937500 0.142857 +vt 0.937500 -0.000000 +vt 0.812500 0.023810 +vt 0.812500 -0.000000 +vt 0.812500 0.190476 +vt 0.937500 0.166667 +vt 0.937500 0.190476 +vt 0.812500 0.047619 +vt 0.812500 0.142857 +vt 0.937500 0.023810 +vt 0.812500 0.166667 +vt 0.750000 0.166667 +vt 0.750000 0.023810 +vt 0.906250 0.333333 +vt 0.843750 0.357143 +vt 0.843750 0.333333 +vt 0.968750 0.333333 +vt 0.906250 0.357143 +vt 0.781250 0.357143 +vt 0.921875 0.285714 +vt 0.937500 0.190476 +vt 0.937500 0.285714 +vt 0.890625 0.321429 +vt 0.953125 0.321429 +vt 0.828125 0.321429 +vt 0.859375 0.321429 +vt 0.875000 0.285714 +vt 0.796875 0.321429 +vt 0.812500 0.285714 +vt 0.734375 0.321429 +vt 0.750000 0.285714 +vt 0.921875 0.321429 +vt 0.937500 0.285714 +vt 0.890625 0.285714 +vt 0.921875 0.190476 +vt 0.968750 0.190476 +vt 0.968750 0.285714 +vt 0.875000 0.285714 +vt 0.890625 0.190476 +vt 0.625000 0.238095 +vt 0.687500 0.285714 +vt 0.625000 0.285714 +vt 0.718750 0.309524 +vt 0.687500 0.285714 +vt 0.718750 0.285714 +vt 0.687500 0.190476 +vt 0.687500 0.238095 +vt 0.812500 0.238095 +vt 0.875000 0.190476 +vt 0.875000 0.238095 +vt 0.750000 0.190476 +vt 0.750000 0.238095 +vt 0.812500 0.190476 +vt 0.718750 0.309524 +vt 0.687500 0.285714 +vt 0.718750 0.285714 +vt 0.812500 0.238095 +vt 0.781250 0.285714 +vt 0.781250 0.238095 +vt 0.750000 0.238095 +vt 0.718750 0.238095 +vt 0.750000 0.285714 +vt 0.687500 0.238095 +vt 0.750000 0.238095 +vt 0.718750 0.238095 +vt 0.750000 0.285714 +vt 0.687500 0.238095 +vt 0.625000 0.500000 +vt 0.531250 0.571429 +vt 0.531250 0.500000 +vt 0.468750 0.428571 +vt 0.031250 0.571429 +vt 0.656250 0.571429 +vt 0.625000 0.571429 +vt 0.500000 0.500000 +vt 0.531250 0.595238 +vt 0.625000 0.476190 +vt -0.000000 0.595238 +vt 0.468750 0.571429 +vt -0.000000 0.595238 +vt 0.468750 0.571429 +vt -0.000000 0.595238 +vt 0.468750 0.571429 +vt -0.000000 0.595238 +vt 0.468750 0.571429 +vt 0.812500 0.380952 +vt 0.937500 0.476190 +vt 0.812500 0.476190 +vt 0.937500 0.357143 +vt 0.812500 0.357143 +vt 0.812500 0.500000 +vt 0.937500 0.500000 +vt 0.968750 0.476190 +vt 0.937500 0.380952 +vt 0.968750 0.380952 +vt 0.781250 0.380952 +vt 0.781250 0.476190 +vt 0.671875 0.285714 +vt 0.656250 0.416667 +vt 0.656250 0.285714 +vt 0.656250 0.452381 +vt 0.687500 0.523810 +vt 0.656250 0.523810 +vt 0.687500 0.452381 +vt 0.718750 0.523810 +vt 0.750000 0.452320 +vt 0.718831 0.428571 +vt 0.750000 0.404823 +vt 0.718750 0.452381 +vt 0.750000 0.523810 +vt 0.750000 0.452381 +vt 0.781250 0.523810 +vt 0.772040 0.445364 +vt 0.750000 0.452320 +vt 0.727960 0.445364 +vt 0.687500 0.285714 +vt 0.671875 0.416667 +vt 0.640625 0.285714 +vt 0.625000 0.416667 +vt 0.625000 0.285714 +vt 0.640625 0.416667 +vt 0.640625 0.428571 +vt 0.625000 0.428571 +vt 0.562500 0.476190 +vt 0.593750 0.452381 +vt 0.593750 0.476190 +vt 0.500000 0.452381 +vt 0.531250 0.476190 +vt 0.500000 0.476190 +vt 0.593750 0.261905 +vt 0.625000 0.404762 +vt 0.593750 0.404762 +vt 0.593750 0.190476 +vt 0.625000 0.214286 +vt 0.593750 0.214286 +vt 0.562500 0.238095 +vt 0.531250 0.190476 +vt 0.562500 0.190476 +vt 0.500000 0.404762 +vt 0.531250 0.238095 +vt 0.531250 0.428571 +vt 0.625000 0.476190 +vt 0.500000 0.214286 +vt 0.500000 0.190476 +vt 0.562500 0.428571 +vt 0.562500 0.476190 +vt 0.593750 0.452381 +vt 0.593750 0.476190 +vt 0.500000 0.452381 +vt 0.531250 0.476190 +vt 0.500000 0.476190 +vt 0.593750 0.261905 +vt 0.625000 0.404762 +vt 0.593750 0.404762 +vt 0.593750 0.190476 +vt 0.625000 0.214286 +vt 0.593750 0.214286 +vt 0.562500 0.238095 +vt 0.531250 0.190476 +vt 0.562500 0.190476 +vt 0.500000 0.404762 +vt 0.531250 0.238095 +vt 0.531250 0.428571 +vt 0.625000 0.476190 +vt 0.500000 0.214286 +vt 0.500000 0.190476 +vt 0.562500 0.428571 +vt 0.531250 0.500000 +vt 0.625000 0.476190 +vt 0.625000 0.500000 +vt 0.625000 0.571429 +vt 0.531250 0.595238 +vt 0.531250 0.571429 +vt 0.500000 0.500000 +vt 0.656250 0.571429 +vt 0.625000 0.500000 +vt 0.531250 0.571429 +vt 0.531250 0.500000 +vt 0.656250 0.571429 +vt 0.625000 0.571429 +vt 0.500000 0.500000 +vt 0.531250 0.595238 +vt 0.531250 0.476190 +vt 0.625000 0.476190 +vt 0.625000 0.500000 +vt 0.531250 0.476190 +vt 0.625000 0.476190 +vt 0.625000 0.571429 +vt 0.531250 0.595238 +vt 0.531250 0.571429 +vt 0.500000 0.500000 +vt 0.531250 0.500000 +vt 0.656250 0.571429 +vt 0.625000 0.500000 +vt 0.531250 0.571429 +vt 0.531250 0.500000 +vt 0.656250 0.571429 +vt 0.625000 0.571429 +vt 0.500000 0.500000 +vt 0.531250 0.595238 +vt 0.625000 0.476190 +vt 0.531250 0.500000 +vt 0.625000 0.476190 +vt 0.625000 0.500000 +vt 0.625000 0.571429 +vt 0.531250 0.595238 +vt 0.531250 0.571429 +vt 0.500000 0.500000 +vt 0.656250 0.571429 +vt 0.625000 0.500000 +vt 0.531250 0.571429 +vt 0.531250 0.500000 +vt 0.656250 0.571429 +vt 0.625000 0.571429 +vt 0.500000 0.500000 +vt 0.531250 0.595238 +vt 0.625000 0.476190 +vt 0.531250 0.476190 +vt 0.625000 0.595238 +vt 0.500000 0.571429 +vt 0.656250 0.500000 +vt 0.812500 0.285714 +vt 0.968750 0.166667 +vt 0.937500 0.047619 +vt 0.968750 0.023810 +vt 0.781250 0.023810 +vt 0.781250 0.166667 +vt 0.968750 0.357143 +vt 0.875000 0.190476 +vt 0.687500 0.309524 +vt 0.625000 0.190476 +vt 0.687500 0.309524 +vt 0.812500 0.285714 +vt 0.656250 0.500000 +vt 0.500000 0.571429 +vt 0.625000 0.595238 +vt 0.531250 0.476190 +vt 0.772040 0.411779 +vt 0.781169 0.428571 +vt 0.772040 0.445364 +vt 0.727960 0.445364 +vt 0.727960 0.411779 +vt 0.781250 0.452381 +vt 0.718831 0.428571 +vt 0.727960 0.411779 +vt 0.750000 0.404823 +vt 0.772040 0.411779 +vt 0.781169 0.428571 +vt 0.687500 0.416667 +vt 0.625000 0.261905 +vt 0.625000 0.190476 +vt 0.500000 0.261905 +vt 0.625000 0.452381 +vt 0.625000 0.261905 +vt 0.625000 0.190476 +vt 0.500000 0.261905 +vt 0.625000 0.452381 +vt 0.531250 0.476190 +vt 0.625000 0.595238 +vt 0.500000 0.571429 +vt 0.656250 0.500000 +vt 0.656250 0.500000 +vt 0.500000 0.571429 +vt 0.625000 0.595238 +vt 0.625000 0.595238 +vt 0.500000 0.571429 +vt 0.656250 0.500000 +vt 0.656250 0.500000 +vt 0.500000 0.571429 +vt 0.625000 0.595238 +vt 0.531250 0.476190 +vt 0.531250 0.476190 +vt 0.625000 0.595238 +vt 0.500000 0.571429 +vt 0.656250 0.500000 +vt 0.656250 0.500000 +vt 0.500000 0.571429 +vt 0.625000 0.595238 +vt 0.531250 0.476190 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.9487 -0.3162 0.0000 +vn 0.0000 -0.3162 -0.9487 +vn 0.9487 -0.3162 0.0000 +vn 0.0000 -0.3162 0.9487 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 8/7/3 9/8/3 7/9/3 +f 7/10/4 10/11/4 5/12/4 +f 6/4/5 12/13/5 8/14/5 +f 16/15/2 100/16/2 15/17/2 +f 5/18/6 11/19/6 6/20/6 +f 15/21/2 99/22/2 14/23/2 +f 4/24/5 15/17/5 2/2/5 +f 1/25/4 13/26/4 3/27/4 +f 3/28/3 16/29/3 4/30/3 +f 2/31/6 14/23/6 1/32/6 +f 99/33/4 102/34/4 98/35/4 +f 13/36/2 101/37/2 16/29/2 +f 24/38/1 20/39/1 22/40/1 +f 21/41/2 18/42/2 23/43/2 +f 98/44/3 105/45/3 101/37/3 +f 100/46/6 103/47/6 99/22/6 +f 14/48/2 98/35/2 13/26/2 +f 23/43/6 19/49/6 24/38/6 +f 22/40/3 17/50/3 21/41/3 +f 22/40/5 23/43/5 24/38/5 +f 84/51/3 89/52/3 85/53/3 +f 31/54/2 29/55/2 30/56/2 +f 27/57/3 32/58/3 28/59/3 +f 26/60/6 30/56/6 25/61/6 +f 28/62/5 31/54/5 26/63/5 +f 25/64/4 29/55/4 27/65/4 +f 50/66/2 51/67/2 49/68/2 +f 46/69/1 56/70/1 48/71/1 +f 36/72/3 35/73/3 41/74/3 +f 36/75/5 39/76/5 34/77/5 +f 33/78/4 37/79/4 35/80/4 +f 43/81/2 41/74/2 42/82/2 +f 48/71/5 50/66/5 46/69/5 +f 40/83/7 43/81/7 39/76/7 +f 38/84/8 41/74/8 37/79/8 +f 33/85/6 34/86/6 43/81/6 +f 45/87/4 51/88/4 47/89/4 +f 46/90/6 49/91/6 45/87/6 +f 47/89/3 52/92/3 48/71/3 +f 60/93/4 62/94/4 58/95/4 +f 47/89/1 53/96/1 45/87/1 +f 45/87/1 54/97/1 46/90/1 +f 48/71/1 55/98/1 47/89/1 +f 53/96/9 55/99/9 57/100/9 +f 55/98/10 56/101/10 57/102/10 +f 56/70/11 54/103/11 57/104/11 +f 54/97/12 53/105/12 57/106/12 +f 61/107/2 64/108/2 60/93/2 +f 58/95/1 63/109/1 59/110/1 +f 59/111/5 65/112/5 61/107/5 +f 67/113/2 68/114/2 66/115/2 +f 88/116/2 86/117/2 87/118/2 +f 67/113/5 73/119/5 69/120/5 +f 66/121/6 71/122/6 67/123/6 +f 69/120/3 72/124/3 68/125/3 +f 68/125/4 70/126/4 66/121/4 +f 80/127/2 78/128/2 79/129/2 +f 76/130/3 81/131/3 77/132/3 +f 75/133/6 79/129/6 74/134/6 +f 77/132/5 80/135/5 75/133/5 +f 74/134/4 78/128/4 76/136/4 +f 83/137/6 87/118/6 82/138/6 +f 85/53/5 88/139/5 83/137/5 +f 82/138/4 86/117/4 84/140/4 +f 92/141/5 91/142/5 90/143/5 +f 101/144/5 104/145/5 100/16/5 +f 92/141/3 97/146/3 93/147/3 +f 91/142/6 95/148/6 90/143/6 +f 93/147/2 96/149/2 91/142/2 +f 90/143/1 94/150/1 92/141/1 +f 12/151/1 102/152/1 9/8/1 +f 11/153/1 105/154/1 12/13/1 +f 10/155/1 104/156/1 11/19/1 +f 9/157/1 103/158/1 10/11/1 +f 112/159/2 110/160/2 111/161/2 +f 109/162/5 112/159/5 107/163/5 +f 106/164/4 110/160/4 108/165/4 +f 108/166/3 113/167/3 109/168/3 +f 107/169/6 111/161/6 106/170/6 +f 114/171/2 135/172/2 115/173/2 +f 125/174/13 126/175/13 124/176/13 +f 127/177/14 128/178/14 126/175/14 +f 129/179/5 125/180/5 121/181/5 +f 129/182/15 130/183/15 128/178/15 +f 131/184/16 116/185/16 130/183/16 +f 126/186/4 128/187/4 130/188/4 +f 132/189/5 134/190/5 114/171/5 +f 133/191/1 136/192/1 132/193/1 +f 115/173/4 137/194/4 133/191/4 +f 136/192/3 135/195/3 134/196/3 +f 141/197/5 145/198/5 143/199/5 +f 153/200/4 149/201/4 151/202/4 +f 144/203/1 153/204/1 145/205/1 +f 142/206/3 152/207/3 144/208/3 +f 138/209/6 148/210/6 140/211/6 +f 153/212/4 146/213/4 147/214/4 +f 145/198/6 151/215/6 143/199/6 +f 148/210/4 152/216/4 150/217/4 +f 141/197/3 147/214/3 139/218/3 +f 139/218/2 146/213/2 138/209/2 +f 138/209/5 145/205/5 139/218/5 +f 140/211/5 144/208/5 138/209/5 +f 157/219/5 161/220/5 159/221/5 +f 169/222/4 165/223/4 167/224/4 +f 160/225/1 169/226/1 161/227/1 +f 158/228/3 168/229/3 160/230/3 +f 154/231/6 164/232/6 156/233/6 +f 169/234/4 162/235/4 163/236/4 +f 161/220/6 167/237/6 159/221/6 +f 164/232/4 168/238/4 166/239/4 +f 157/219/3 163/236/3 155/240/3 +f 155/240/2 162/235/2 154/231/2 +f 154/231/5 161/227/5 155/240/5 +f 156/233/5 160/230/5 154/231/5 +f 177/241/1 173/242/1 175/243/1 +f 174/244/2 171/245/2 176/246/2 +f 176/246/4 172/247/4 177/241/4 +f 175/243/5 170/248/5 174/244/5 +f 175/243/6 176/246/6 177/241/6 +f 180/249/6 179/250/6 178/251/6 +f 180/249/5 185/252/5 181/253/5 +f 179/250/4 183/254/4 178/251/4 +f 181/253/2 184/255/2 179/250/2 +f 180/249/1 183/256/1 182/257/1 +f 191/258/1 188/259/1 189/260/1 +f 190/261/2 187/262/2 192/263/2 +f 192/263/5 188/264/5 193/265/5 +f 191/258/4 186/266/4 190/261/4 +f 191/258/3 192/263/3 193/265/3 +f 196/267/3 195/268/3 194/269/3 +f 196/267/4 201/270/4 197/271/4 +f 195/268/5 199/272/5 194/269/5 +f 197/271/2 200/273/2 195/268/2 +f 194/269/1 198/274/1 196/267/1 +f 209/275/1 205/276/1 207/277/1 +f 206/278/2 203/279/2 208/280/2 +f 208/280/3 204/281/3 209/275/3 +f 207/277/6 202/282/6 206/278/6 +f 207/277/4 208/280/4 209/275/4 +f 212/283/4 211/284/4 210/285/4 +f 212/283/6 217/286/6 213/287/6 +f 211/284/3 215/288/3 210/285/3 +f 213/287/2 216/289/2 211/284/2 +f 210/285/1 214/290/1 212/283/1 +f 3/1/1 4/24/1 2/2/1 +f 6/4/2 8/14/2 7/5/2 +f 8/7/3 12/151/3 9/8/3 +f 7/10/4 9/157/4 10/11/4 +f 6/4/5 11/153/5 12/13/5 +f 16/15/2 101/144/2 100/16/2 +f 5/18/6 10/155/6 11/19/6 +f 15/21/2 100/46/2 99/22/2 +f 4/24/5 16/15/5 15/17/5 +f 1/25/4 14/48/4 13/26/4 +f 3/28/3 13/36/3 16/29/3 +f 2/31/6 15/21/6 14/23/6 +f 99/33/4 103/158/4 102/34/4 +f 13/36/2 98/44/2 101/37/2 +f 24/38/1 19/291/1 20/39/1 +f 21/41/2 17/292/2 18/42/2 +f 98/44/3 102/152/3 105/45/3 +f 100/46/6 104/156/6 103/47/6 +f 14/48/2 99/33/2 98/35/2 +f 23/43/6 18/293/6 19/49/6 +f 22/40/3 20/294/3 17/50/3 +f 22/40/5 21/41/5 23/43/5 +f 84/51/3 86/295/3 89/52/3 +f 31/54/2 32/58/2 29/55/2 +f 27/57/3 29/55/3 32/58/3 +f 26/60/6 31/54/6 30/56/6 +f 28/62/5 32/58/5 31/54/5 +f 25/64/4 30/56/4 29/55/4 +f 50/66/2 52/92/2 51/67/2 +f 46/69/1 54/103/1 56/70/1 +f 35/73/3 37/296/3 41/74/3 +f 41/74/3 44/297/3 36/72/3 +f 44/297/3 40/298/3 36/72/3 +f 36/75/5 40/83/5 39/76/5 +f 33/78/4 38/84/4 37/79/4 +f 43/81/2 44/297/2 41/74/2 +f 48/71/5 52/92/5 50/66/5 +f 40/83/7 44/297/7 43/81/7 +f 38/84/8 42/82/8 41/74/8 +f 34/86/6 39/299/6 43/81/6 +f 43/81/6 42/82/6 33/85/6 +f 42/82/6 38/300/6 33/85/6 +f 45/87/4 49/91/4 51/88/4 +f 46/90/6 50/301/6 49/91/6 +f 47/89/3 51/88/3 52/92/3 +f 60/93/4 64/108/4 62/94/4 +f 47/89/1 55/99/1 53/96/1 +f 45/87/1 53/105/1 54/97/1 +f 48/71/1 56/101/1 55/98/1 +f 61/107/2 65/112/2 64/108/2 +f 58/95/1 62/94/1 63/109/1 +f 59/111/5 63/302/5 65/112/5 +f 67/113/2 69/120/2 68/114/2 +f 88/116/2 89/303/2 86/117/2 +f 67/113/5 71/304/5 73/119/5 +f 66/121/6 70/126/6 71/122/6 +f 69/120/3 73/119/3 72/124/3 +f 68/125/4 72/124/4 70/126/4 +f 80/127/2 81/305/2 78/128/2 +f 76/130/3 78/306/3 81/131/3 +f 75/133/6 80/135/6 79/129/6 +f 77/132/5 81/131/5 80/135/5 +f 74/134/4 79/129/4 78/128/4 +f 83/137/6 88/139/6 87/118/6 +f 85/53/5 89/52/5 88/139/5 +f 82/138/4 87/118/4 86/117/4 +f 92/141/5 93/147/5 91/142/5 +f 101/144/5 105/154/5 104/145/5 +f 92/141/3 94/307/3 97/146/3 +f 91/142/6 96/308/6 95/148/6 +f 93/147/2 97/309/2 96/149/2 +f 90/143/1 95/310/1 94/150/1 +f 12/151/1 105/45/1 102/152/1 +f 11/153/1 104/145/1 105/154/1 +f 10/155/1 103/47/1 104/156/1 +f 9/157/1 102/34/1 103/158/1 +f 112/159/2 113/167/2 110/160/2 +f 109/162/5 113/167/5 112/159/5 +f 106/164/4 111/161/4 110/160/4 +f 108/166/3 110/160/3 113/167/3 +f 107/169/6 112/159/6 111/161/6 +f 114/171/2 134/190/2 135/172/2 +f 125/174/13 127/177/13 126/175/13 +f 127/177/14 129/182/14 128/178/14 +f 121/181/5 119/311/5 117/312/5 +f 117/312/5 131/313/5 129/179/5 +f 129/179/5 127/314/5 125/180/5 +f 125/180/5 123/315/5 121/181/5 +f 121/181/5 117/312/5 129/179/5 +f 129/182/15 131/184/15 130/183/15 +f 131/184/16 117/316/16 116/185/16 +f 130/188/4 116/317/4 118/318/4 +f 118/318/4 120/319/4 130/188/4 +f 120/319/4 122/320/4 130/188/4 +f 122/320/4 124/321/4 130/188/4 +f 124/321/4 126/186/4 130/188/4 +f 132/189/5 136/322/5 134/190/5 +f 133/191/1 137/194/1 136/192/1 +f 115/173/4 135/172/4 137/194/4 +f 136/192/3 137/194/3 135/195/3 +f 141/197/5 139/218/5 145/198/5 +f 153/200/4 147/214/4 149/201/4 +f 144/203/1 152/323/1 153/204/1 +f 142/206/3 150/324/3 152/207/3 +f 138/209/6 146/213/6 148/210/6 +f 153/212/4 152/325/4 146/213/4 +f 145/198/6 153/326/6 151/215/6 +f 148/210/4 146/213/4 152/216/4 +f 141/197/3 149/201/3 147/214/3 +f 139/218/2 147/214/2 146/213/2 +f 138/209/5 144/203/5 145/205/5 +f 140/211/5 142/206/5 144/208/5 +f 157/219/5 155/240/5 161/220/5 +f 169/222/4 163/236/4 165/223/4 +f 160/225/1 168/327/1 169/226/1 +f 158/228/3 166/328/3 168/229/3 +f 154/231/6 162/235/6 164/232/6 +f 169/234/4 168/329/4 162/235/4 +f 161/220/6 169/330/6 167/237/6 +f 164/232/4 162/235/4 168/238/4 +f 157/219/3 165/223/3 163/236/3 +f 155/240/2 163/236/2 162/235/2 +f 154/231/5 160/225/5 161/227/5 +f 156/233/5 158/228/5 160/230/5 +f 177/241/1 172/331/1 173/242/1 +f 174/244/2 170/332/2 171/245/2 +f 176/246/4 171/333/4 172/247/4 +f 175/243/5 173/334/5 170/248/5 +f 175/243/6 174/244/6 176/246/6 +f 180/249/6 181/253/6 179/250/6 +f 180/249/5 182/335/5 185/252/5 +f 179/250/4 184/336/4 183/254/4 +f 181/253/2 185/337/2 184/255/2 +f 180/249/1 178/251/1 183/256/1 +f 191/258/1 193/265/1 188/259/1 +f 190/261/2 186/338/2 187/262/2 +f 192/263/5 187/339/5 188/264/5 +f 191/258/4 189/340/4 186/266/4 +f 191/258/3 190/261/3 192/263/3 +f 196/267/3 197/271/3 195/268/3 +f 196/267/4 198/341/4 201/270/4 +f 195/268/5 200/342/5 199/272/5 +f 197/271/2 201/343/2 200/273/2 +f 194/269/1 199/344/1 198/274/1 +f 209/275/1 204/345/1 205/276/1 +f 206/278/2 202/346/2 203/279/2 +f 208/280/3 203/347/3 204/281/3 +f 207/277/6 205/348/6 202/282/6 +f 207/277/4 206/278/4 208/280/4 +f 212/283/4 213/287/4 211/284/4 +f 212/283/6 214/349/6 217/286/6 +f 211/284/3 216/350/3 215/288/3 +f 213/287/2 217/351/2 216/289/2 +f 210/285/1 215/352/1 214/290/1 diff --git a/src/main/resources/assets/hbm/models/machines/strand_caster.obj b/src/main/resources/assets/hbm/models/machines/strand_caster.obj new file mode 100644 index 000000000..eb3b63b98 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/strand_caster.obj @@ -0,0 +1,1221 @@ +# Blender v2.79 (sub 0) OBJ File: 'strand_caster.blend' +# www.blender.org +o plate +v -0.500000 0.937500 -1.500000 +v 0.500000 0.937500 -1.500000 +v -0.500000 0.937500 -5.250000 +v 0.500000 0.937500 -5.250000 +v -0.500000 1.062500 -5.250000 +v -0.500000 1.062500 -1.500000 +v 0.500000 1.062500 -1.500000 +v 0.500000 1.062500 -5.250000 +vt 0.890625 0.566667 +vt 0.656250 0.700000 +vt 0.656250 0.566667 +vt 0.656250 0.566667 +vt 0.890625 0.700000 +vt 0.656250 0.700000 +vt 0.664062 0.700000 +vt 0.656250 0.566667 +vt 0.664062 0.566667 +vt 0.890625 0.683333 +vt 0.656250 0.700000 +vt 0.656250 0.683333 +vt 0.656250 0.583333 +vt 0.890625 0.566667 +vt 0.890625 0.583333 +vt 0.890625 0.700000 +vt 0.890625 0.566667 +vt 0.656250 0.700000 +vt 0.890625 0.700000 +vt 0.656250 0.566667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 4/10/4 7/11/4 2/12/4 +f 1/13/5 5/14/5 3/15/5 +f 3/1/1 4/16/1 2/2/1 +f 7/4/2 8/17/2 5/5/2 +f 3/7/3 5/18/3 8/8/3 +f 4/10/4 8/19/4 7/11/4 +f 1/13/5 6/20/5 5/14/5 +o caster +v -1.000000 0.000000 1.000000 +v 1.000000 0.000000 1.000000 +v -1.000000 0.000000 -6.000000 +v 1.000000 0.000000 -6.000000 +v -1.000000 0.750000 -6.000000 +v -1.000000 0.750000 1.000000 +v 1.000000 0.750000 1.000000 +v 1.000000 0.750000 -6.000000 +v -1.000000 2.000000 1.000000 +v 1.000000 2.000000 1.000000 +v -1.000000 3.000000 1.000000 +v 1.000000 3.000000 1.000000 +v -1.000000 2.000000 -1.000000 +v 1.000000 2.000000 -1.000000 +v -1.000000 3.000000 -1.000000 +v 1.000000 3.000000 -1.000000 +v -0.875000 3.000000 0.875000 +v 0.875000 3.000000 0.875000 +v -0.875000 3.000000 -0.875000 +v 0.875000 3.000000 -0.875000 +v -0.875000 2.125000 0.875000 +v 0.875000 2.125000 0.875000 +v -0.875000 2.125000 -0.875000 +v 0.875000 2.125000 -0.875000 +v -0.750000 2.000000 0.750000 +v 0.750000 2.000000 0.750000 +v -0.750000 2.000000 -0.750000 +v 0.750000 2.000000 -0.750000 +v -0.750000 0.500000 -1.500000 +v -0.750000 0.500000 0.750000 +v 0.750000 0.500000 0.750000 +v 0.750000 0.500000 -1.500000 +v -0.750000 0.750000 -5.750000 +v -0.750000 0.750000 0.750000 +v 0.750000 0.750000 0.750000 +v 0.750000 0.750000 -5.750000 +v -0.750000 0.500000 -5.750000 +v -0.750000 0.500000 0.750000 +v 0.750000 0.500000 0.750000 +v 0.750000 0.500000 -5.750000 +v 0.750000 1.250000 -1.500000 +v -0.750000 1.250000 -1.500000 +v 0.750000 0.812500 -3.125000 +v -0.750000 0.812500 -3.125000 +v -0.750000 0.812500 -2.125000 +v 0.750000 0.812500 -2.125000 +v -0.750000 0.724112 -2.088388 +v 0.750000 0.724112 -2.088388 +v -0.750000 0.687500 -2.000000 +v 0.750000 0.687500 -2.000000 +v -0.750000 0.724112 -1.911612 +v 0.750000 0.724112 -1.911612 +v -0.750000 0.812500 -1.875000 +v 0.750000 0.812500 -1.875000 +v -0.750000 0.900888 -1.911612 +v 0.750000 0.900888 -1.911612 +v -0.750000 0.937500 -2.000000 +v 0.750000 0.937500 -2.000000 +v -0.750000 0.900888 -2.088388 +v 0.750000 0.900888 -2.088388 +v -0.750000 0.724112 -3.088388 +v 0.750000 0.724112 -3.088388 +v -0.750000 0.687500 -3.000000 +v 0.750000 0.687500 -3.000000 +v -0.750000 0.724112 -2.911612 +v 0.750000 0.724112 -2.911612 +v -0.750000 0.812500 -2.875000 +v 0.750000 0.812500 -2.875000 +v -0.750000 0.900888 -2.911612 +v 0.750000 0.900888 -2.911612 +v -0.750000 0.937500 -3.000000 +v 0.750000 0.937500 -3.000000 +v -0.750000 0.900888 -3.088388 +v 0.750000 0.900888 -3.088388 +v 0.750000 0.812500 -4.125000 +v -0.750000 0.812500 -4.125000 +v -0.750000 0.724112 -4.088388 +v 0.750000 0.724112 -4.088388 +v -0.750000 0.687500 -4.000000 +v 0.750000 0.687500 -4.000000 +v -0.750000 0.724112 -3.911612 +v 0.750000 0.724112 -3.911612 +v -0.750000 0.812500 -3.875000 +v 0.750000 0.812500 -3.875000 +v -0.750000 0.900888 -3.911612 +v 0.750000 0.900888 -3.911612 +v -0.750000 0.937500 -4.000000 +v 0.750000 0.937500 -4.000000 +v -0.750000 0.900888 -4.088388 +v 0.750000 0.900888 -4.088388 +v 0.750000 0.812500 -5.125000 +v -0.750000 0.812500 -5.125000 +v -0.750000 0.724112 -5.088388 +v 0.750000 0.724112 -5.088388 +v -0.750000 0.687500 -5.000000 +v 0.750000 0.687500 -5.000000 +v -0.750000 0.724112 -4.911612 +v 0.750000 0.724112 -4.911612 +v -0.750000 0.812500 -4.875000 +v 0.750000 0.812500 -4.875000 +v -0.750000 0.900888 -4.911612 +v 0.750000 0.900888 -4.911612 +v -0.750000 0.937500 -5.000000 +v 0.750000 0.937500 -5.000000 +v -0.750000 0.900888 -5.088388 +v 0.750000 0.900888 -5.088388 +v 0.750000 1.187500 -3.625000 +v -0.750000 1.187500 -3.625000 +v -0.750000 1.187500 -2.625000 +v 0.750000 1.187500 -2.625000 +v -0.750000 1.099112 -2.588388 +v 0.750000 1.099112 -2.588388 +v -0.750000 1.062500 -2.500000 +v 0.750000 1.062500 -2.500000 +v -0.750000 1.099112 -2.411612 +v 0.750000 1.099112 -2.411612 +v -0.750000 1.187500 -2.375000 +v 0.750000 1.187500 -2.375000 +v -0.750000 1.275888 -2.411612 +v 0.750000 1.275888 -2.411612 +v -0.750000 1.312500 -2.500000 +v 0.750000 1.312500 -2.500000 +v -0.750000 1.275888 -2.588388 +v 0.750000 1.275888 -2.588388 +v -0.750000 1.099112 -3.588388 +v 0.750000 1.099112 -3.588388 +v -0.750000 1.062500 -3.500000 +v 0.750000 1.062500 -3.500000 +v -0.750000 1.099112 -3.411612 +v 0.750000 1.099112 -3.411612 +v -0.750000 1.187500 -3.375000 +v 0.750000 1.187500 -3.375000 +v -0.750000 1.275888 -3.411612 +v 0.750000 1.275888 -3.411612 +v -0.750000 1.312500 -3.500000 +v 0.750000 1.312500 -3.500000 +v -0.750000 1.275888 -3.588388 +v 0.750000 1.275888 -3.588388 +v 0.750000 1.187500 -4.625000 +v -0.750000 1.187500 -4.625000 +v -0.750000 1.099112 -4.588388 +v 0.750000 1.099112 -4.588388 +v -0.750000 1.062500 -4.500000 +v 0.750000 1.062500 -4.500000 +v -0.750000 1.099112 -4.411612 +v 0.750000 1.099112 -4.411612 +v -0.750000 1.187500 -4.375000 +v 0.750000 1.187500 -4.375000 +v -0.750000 1.275888 -4.411612 +v 0.750000 1.275888 -4.411612 +v -0.750000 1.312500 -4.500000 +v 0.750000 1.312500 -4.500000 +v -0.750000 1.275888 -4.588388 +v 0.750000 1.275888 -4.588388 +v 0.750000 0.937500 -2.125000 +v 0.875000 0.937500 -2.125000 +v 0.750000 0.937500 -2.375000 +v 0.875000 0.937500 -2.375000 +v 0.750000 1.062500 -2.375000 +v -0.750000 1.312500 -2.125000 +v -0.875000 1.312500 -2.125000 +v 0.875000 1.062500 -2.375000 +v -0.750000 1.062500 -2.375000 +v 0.750000 1.312500 -2.125000 +v 0.875000 1.312500 -2.125000 +v -0.875000 1.062500 -2.375000 +v 0.875000 1.062500 -4.625000 +v 0.750000 1.062500 -4.625000 +v -0.750000 0.937500 -2.375000 +v -0.875000 0.937500 -2.375000 +v -0.750000 0.937500 -2.125000 +v -0.875000 0.937500 -2.125000 +v 0.875000 1.312500 -4.875000 +v 0.750000 1.312500 -4.875000 +v 0.875000 0.937500 -4.625000 +v 0.750000 0.937500 -4.625000 +v 0.875000 0.937500 -4.875000 +v 0.750000 0.937500 -4.875000 +v -0.750000 1.062500 -4.625000 +v -0.875000 1.062500 -4.625000 +v -0.750000 1.312500 -4.875000 +v -0.875000 1.312500 -4.875000 +v -0.750000 0.937500 -4.625000 +v -0.875000 0.937500 -4.625000 +v -0.750000 0.937500 -4.875000 +v -0.875000 0.937500 -4.875000 +v 0.750000 0.937500 -1.625000 +v 0.875000 0.937500 -1.625000 +v -0.750000 0.937500 -1.625000 +v -0.875000 0.937500 -1.625000 +v 0.750000 0.937500 -5.375000 +v 0.875000 0.937500 -5.375000 +v -0.750000 0.937500 -5.375000 +v -0.875000 0.937500 -5.375000 +v 0.750000 0.750000 -1.625000 +v 0.875000 0.750000 -1.625000 +v -0.875000 0.750000 -1.625000 +v -0.750000 0.750000 -1.625000 +v 0.750000 0.750000 -5.375000 +v 0.875000 0.750000 -5.375000 +v -0.875000 0.750000 -5.375000 +v -0.750000 0.750000 -5.375000 +v 0.250000 1.250000 -1.500000 +v 0.161612 1.275888 -1.474112 +v 0.125000 1.338388 -1.411612 +v 0.161612 1.400888 -1.349112 +v 0.250000 1.426777 -1.323223 +v 0.338388 1.400888 -1.349112 +v 0.375000 1.338388 -1.411612 +v 0.338388 1.275888 -1.474112 +v 0.250000 1.426777 -1.573223 +v 0.161612 1.426777 -1.536612 +v 0.125000 1.426777 -1.448223 +v 0.161612 1.426777 -1.359835 +v 0.338388 1.426777 -1.359835 +v 0.375000 1.426777 -1.448223 +v 0.338388 1.426777 -1.536612 +v 0.250000 1.603553 -1.500000 +v 0.161612 1.577665 -1.474112 +v 0.125000 1.515165 -1.411612 +v 0.161612 1.452665 -1.349112 +v 0.338388 1.452665 -1.349112 +v 0.375000 1.515165 -1.411612 +v 0.338388 1.577665 -1.474112 +v -0.161612 1.275888 -1.474112 +v -0.125000 1.338388 -1.411612 +v -0.161612 1.400888 -1.349112 +v -0.250000 1.426777 -1.323223 +v -0.338388 1.400888 -1.349112 +v -0.375000 1.338388 -1.411612 +v -0.338388 1.275888 -1.474112 +v -0.250000 1.250000 -1.500000 +v 0.161612 2.152189 -0.899587 +v 0.250000 2.178077 -0.925476 +v 0.125000 2.089689 -0.837087 +v 0.161612 2.027189 -0.774587 +v 0.375000 2.089689 -0.837087 +v 0.338388 2.027189 -0.774587 +v 0.338388 2.152189 -0.899587 +v 0.250000 2.001301 -0.748699 +v -0.250000 1.426777 -1.573223 +v -0.338388 1.426777 -1.536612 +v -0.375000 1.426777 -1.448223 +v -0.338388 1.426777 -1.359835 +v -0.161612 1.426777 -1.359835 +v -0.125000 1.426777 -1.448223 +v -0.161612 1.426777 -1.536612 +v -0.250000 1.603553 -1.500000 +v -0.338388 1.577665 -1.474112 +v -0.375000 1.515165 -1.411612 +v -0.338388 1.452665 -1.349112 +v -0.161612 1.452665 -1.349112 +v -0.125000 1.515165 -1.411612 +v -0.161612 1.577665 -1.474112 +v -0.338388 2.152189 -0.899587 +v -0.250000 2.178077 -0.925476 +v -0.375000 2.089689 -0.837087 +v -0.338388 2.027189 -0.774587 +v -0.125000 2.089689 -0.837087 +v -0.161612 2.027189 -0.774587 +v -0.161612 2.152189 -0.899587 +v -0.250000 2.001301 -0.748699 +v 0.750000 0.750000 -0.125000 +v 0.750000 2.000000 -0.125000 +v 0.838388 0.750000 -0.088388 +v 0.838388 2.000000 -0.088388 +v 0.875000 0.750000 0.000000 +v 0.875000 2.000000 0.000000 +v 0.838388 0.750000 0.088388 +v 0.838388 2.000000 0.088388 +v 0.750000 0.750000 0.125000 +v 0.750000 2.000000 0.125000 +v 0.750000 0.750000 0.375000 +v 0.750000 2.000000 0.375000 +v 0.838388 0.750000 0.411612 +v 0.838388 2.000000 0.411612 +v 0.875000 0.750000 0.500000 +v 0.875000 2.000000 0.500000 +v 0.838388 0.750000 0.588388 +v 0.838388 2.000000 0.588388 +v 0.750000 0.750000 0.625000 +v 0.750000 2.000000 0.625000 +v 0.750000 0.750000 -0.625000 +v 0.750000 2.000000 -0.625000 +v 0.838388 0.750000 -0.588388 +v 0.838388 2.000000 -0.588388 +v 0.875000 0.750000 -0.500000 +v 0.875000 2.000000 -0.500000 +v 0.838388 0.750000 -0.411612 +v 0.838388 2.000000 -0.411612 +v 0.750000 0.750000 -0.375000 +v 0.750000 2.000000 -0.375000 +v -0.750000 0.750000 -0.125000 +v -0.750000 2.000000 -0.125000 +v -0.750000 0.750000 0.125000 +v -0.750000 2.000000 0.125000 +v -0.838388 0.750000 0.088388 +v -0.838388 2.000000 0.088388 +v -0.875000 0.750000 0.000000 +v -0.875000 2.000000 0.000000 +v -0.838388 0.750000 -0.088388 +v -0.838388 2.000000 -0.088388 +v -0.750000 0.750000 0.375000 +v -0.750000 2.000000 0.375000 +v -0.750000 0.750000 0.625000 +v -0.750000 2.000000 0.625000 +v -0.838388 0.750000 0.588388 +v -0.838388 2.000000 0.588388 +v -0.875000 0.750000 0.500000 +v -0.875000 2.000000 0.500000 +v -0.838388 0.750000 0.411612 +v -0.838388 2.000000 0.411612 +v -0.750000 0.750000 -0.625000 +v -0.750000 2.000000 -0.625000 +v -0.750000 0.750000 -0.375000 +v -0.750000 2.000000 -0.375000 +v -0.838388 0.750000 -0.411612 +v -0.838388 2.000000 -0.411612 +v -0.875000 0.750000 -0.500000 +v -0.875000 2.000000 -0.500000 +v -0.838388 0.750000 -0.588388 +v -0.838388 2.000000 -0.588388 +vt 0.484375 0.100000 +vt 0.046875 0.366667 +vt 0.046875 0.100000 +vt 0.484375 0.733333 +vt 0.468750 0.500000 +vt 0.484375 0.466667 +vt 0.531250 0.366667 +vt 0.484375 0.366667 +vt -0.000000 0.100000 +vt 0.046875 0.466667 +vt 0.484375 -0.000000 +vt 0.656250 0.600000 +vt 0.531250 0.466667 +vt 0.656250 0.466667 +vt 0.656250 0.466667 +vt 0.531250 0.600000 +vt 0.531250 0.466667 +vt 0.531250 0.466667 +vt 0.656250 0.600000 +vt 0.531250 0.600000 +vt 0.531250 0.200000 +vt 0.656250 0.466667 +vt 0.656250 0.600000 +vt 0.531250 0.466667 +vt 0.656250 0.466667 +vt 0.539062 0.616667 +vt 0.531250 0.600000 +vt 0.648438 0.616667 +vt 0.539062 0.733333 +vt 0.539062 0.616667 +vt 0.656250 0.600000 +vt 0.539062 0.616667 +vt 0.539062 0.616667 +vt 0.531250 0.600000 +vt 0.539062 0.733333 +vt 0.648438 0.966667 +vt 0.539062 0.966667 +vt 0.648438 0.616667 +vt 0.539062 0.733333 +vt 0.648438 0.616667 +vt 0.648438 0.616667 +vt 0.539062 0.733333 +vt 0.468750 0.733333 +vt 0.062500 0.766667 +vt 0.062500 0.733333 +vt 0.062500 0.700000 +vt 0.046875 0.733333 +vt 0.531250 -0.000000 +vt 0.671875 -0.000000 +vt 0.671875 0.100000 +vt 0.812500 0.200000 +vt 0.765625 -0.000000 +vt 0.906250 -0.000000 +vt 0.765625 0.100000 +vt 0.906250 0.200000 +vt 1.000000 -0.000000 +vt 1.000000 0.200000 +vt 0.062500 0.500000 +vt 0.468750 0.700000 +vt 0.468750 0.966667 +vt 0.062500 0.966667 +vt 0.062500 1.000000 +vt 0.468750 1.000000 +vt 0.484375 0.966667 +vt 0.468750 0.766667 +vt 0.484375 0.766667 +vt 0.046875 0.766667 +vt 0.046875 0.966667 +vt 0.671875 0.200000 +vt 0.765625 0.200000 +vt 0.695312 0.550000 +vt 0.679688 0.566667 +vt 0.679688 0.516667 +vt 0.875000 0.500000 +vt 0.851562 0.516667 +vt 0.851562 0.500000 +vt 0.687500 0.433333 +vt 0.695312 0.450000 +vt 0.687500 0.450000 +vt 0.695312 0.466667 +vt 0.679688 0.450000 +vt 0.695312 0.450000 +vt 0.835938 0.550000 +vt 0.851562 0.566667 +vt 0.835938 0.566667 +vt 0.679688 0.500000 +vt 0.656250 0.516667 +vt 0.656250 0.500000 +vt 0.695312 0.433333 +vt 0.835938 0.450000 +vt 0.695312 0.450000 +vt 0.835938 0.433333 +vt 0.843750 0.450000 +vt 0.695312 0.466667 +vt 0.679688 0.500000 +vt 0.851562 0.500000 +vt 0.679688 0.450000 +vt 0.695312 0.450000 +vt 0.835938 0.466667 +vt 0.851562 0.450000 +vt 0.695312 0.433333 +vt 0.835938 0.450000 +vt 0.679688 0.516667 +vt 0.835938 0.550000 +vt 0.851562 0.566667 +vt 0.835938 0.566667 +vt 0.656250 0.516667 +vt 0.656250 0.500000 +vt 0.695312 0.550000 +vt 0.679688 0.566667 +vt 0.835938 0.466667 +vt 0.851562 0.450000 +vt 0.835938 0.433333 +vt 0.843750 0.450000 +vt 0.687500 0.433333 +vt 0.687500 0.450000 +vt 0.875000 0.500000 +vt 0.851562 0.516667 +vt 0.902344 0.391667 +vt 0.667969 0.408333 +vt 0.667969 0.391667 +vt 0.902344 0.391667 +vt 0.667969 0.408333 +vt 0.667969 0.391667 +vt 0.902344 0.366667 +vt 0.914062 0.408333 +vt 0.902344 0.408333 +vt 0.656250 0.391667 +vt 0.667969 0.433333 +vt 0.902344 0.408333 +vt 0.667969 0.433333 +vt 0.914062 0.408333 +vt 0.656250 0.391667 +vt 0.902344 0.366667 +vt 0.531250 0.100000 +vt 0.000000 0.366667 +vt 0.046875 -0.000000 +vt 0.656250 0.200000 +vt 0.648438 0.733333 +vt 0.648438 0.733333 +vt 0.648438 0.733333 +vt 0.648438 0.733333 +vt 0.625000 0.200000 +vt 0.531250 0.200000 +vt 0.695312 0.566667 +vt 0.875000 0.516667 +vt 0.843750 0.433333 +vt 0.835938 0.450000 +vt 0.695312 0.566667 +vt 0.835938 0.450000 +vt 0.843750 0.433333 +vt 0.875000 0.516667 +vt 0.667969 0.366667 +vt 0.914062 0.391667 +vt 0.656250 0.408333 +vt 0.902344 0.433333 +vt 0.902344 0.433333 +vt 0.914062 0.391667 +vt 0.656250 0.408333 +vt 0.667969 0.366667 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.921875 0.400000 +vt 0.960938 0.200000 +vt 0.968750 0.400000 +vt 0.960938 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.929688 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.921875 0.400000 +vt 0.914062 0.400000 +vt 0.921875 0.200000 +vt 0.921875 0.400000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.929688 0.200000 +vt 0.937500 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.400000 +vt 0.929688 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.200000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.921875 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.929688 0.200000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.921875 0.400000 +vt 0.960938 0.200000 +vt 0.968750 0.400000 +vt 0.960938 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.937500 0.400000 +vt 0.929688 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.921875 0.400000 +vt 0.914062 0.400000 +vt 0.921875 0.200000 +vt 0.921875 0.400000 +vt 0.921875 0.200000 +vt 0.929688 0.400000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.929688 0.200000 +vt 0.937500 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.937500 0.200000 +vt 0.945312 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.400000 +vt 0.929688 0.200000 +vt 0.945312 0.200000 +vt 0.953125 0.200000 +vt 0.914062 0.200000 +vt 0.914062 0.400000 +vt 0.953125 0.200000 +vt 0.960938 0.400000 +vt 0.953125 0.400000 +vt 0.968750 0.200000 +vt 0.976562 0.400000 +vt 0.968750 0.400000 +vt 0.960938 0.200000 +vt 0.945312 0.200000 +vt 0.695312 0.341667 +vt 0.703125 0.333333 +vt 0.703125 0.350000 +vt 0.710938 0.358333 +vt 0.718750 0.333333 +vt 0.718750 0.358333 +vt 0.726562 0.358333 +vt 0.734375 0.333333 +vt 0.742188 0.341667 +vt 0.734375 0.350000 +vt 0.710938 0.333333 +vt 0.726562 0.333333 +vt 0.726562 0.308333 +vt 0.734375 0.316667 +vt 0.742188 0.333333 +vt 0.703125 0.316667 +vt 0.695312 0.325000 +vt 0.695312 0.333333 +vt 0.710938 0.308333 +vt 0.687500 0.333333 +vt 0.750000 0.333333 +vt 0.742188 0.325000 +vt 0.742188 0.200000 +vt 0.750000 0.308333 +vt 0.742188 0.308333 +vt 0.718750 0.358333 +vt 0.726562 0.333333 +vt 0.726562 0.358333 +vt 0.734375 0.200000 +vt 0.734375 0.308333 +vt 0.695312 0.200000 +vt 0.703125 0.308333 +vt 0.695312 0.308333 +vt 0.718750 0.200000 +vt 0.718750 0.308333 +vt 0.703125 0.200000 +vt 0.695312 0.341667 +vt 0.703125 0.333333 +vt 0.703125 0.350000 +vt 0.687500 0.200000 +vt 0.687500 0.308333 +vt 0.710938 0.333333 +vt 0.710938 0.358333 +vt 0.718750 0.333333 +vt 0.726562 0.308333 +vt 0.703125 0.316667 +vt 0.734375 0.333333 +vt 0.742188 0.341667 +vt 0.734375 0.350000 +vt 0.734375 0.316667 +vt 0.742188 0.333333 +vt 0.710938 0.200000 +vt 0.695312 0.333333 +vt 0.710938 0.308333 +vt 0.687500 0.333333 +vt 0.695312 0.325000 +vt 0.750000 0.333333 +vt 0.742188 0.325000 +vt 0.742188 0.200000 +vt 0.750000 0.308333 +vt 0.742188 0.308333 +vt 0.734375 0.200000 +vt 0.734375 0.308333 +vt 0.695312 0.200000 +vt 0.703125 0.308333 +vt 0.695312 0.308333 +vt 0.718750 0.200000 +vt 0.718750 0.308333 +vt 0.703125 0.200000 +vt 0.687500 0.200000 +vt 0.687500 0.308333 +vt 0.710938 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.679688 0.200000 +vt 0.687500 0.366667 +vt 0.687500 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.679688 0.200000 +vt 0.687500 0.366667 +vt 0.687500 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.687500 0.366667 +vt 0.679688 0.200000 +vt 0.687500 0.200000 +vt 0.679688 0.366667 +vt 0.671875 0.200000 +vt 0.671875 0.366667 +vt 0.664062 0.200000 +vt 0.664062 0.366667 +vt 0.656250 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.976562 0.200000 +vt 0.750000 0.200000 +vt 0.726562 0.200000 +vt 0.750000 0.200000 +vt 0.726562 0.200000 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vt 0.656250 0.366667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 0.7071 0.7071 +vn -0.7311 0.2611 0.6303 +vn -0.9955 -0.0000 -0.0949 +vn -0.9947 -0.0393 -0.0948 +vn -0.6333 -0.2962 -0.7150 +vn -0.0000 -0.3827 -0.9239 +vn 0.6333 -0.2962 -0.7150 +vn 0.9955 -0.0000 -0.0949 +vn 0.7311 0.2611 0.6303 +vn 0.9947 -0.0393 -0.0948 +vn -0.6630 -0.0000 -0.7486 +vn 0.6630 -0.0000 -0.7486 +vn 0.6794 0.4063 -0.6110 +vn 0.9987 0.0196 -0.0473 +vn 0.7574 -0.0000 0.6530 +vn -0.9987 0.0196 -0.0473 +vn -0.7263 -0.3800 0.5728 +vn -0.7574 -0.0000 0.6530 +vn -0.6794 0.4063 -0.6110 +vn 0.0000 -0.5562 0.8311 +vn 0.7263 -0.3800 0.5728 +vn 0.7071 -0.5000 0.5000 +vn -0.7071 -0.5000 0.5000 +vn 0.0000 0.5628 -0.8266 +vn -0.7071 0.5000 -0.5000 +vn 0.3827 0.0000 -0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 -0.9239 +vn 0.7071 0.5000 -0.5000 +s off +f 11/21/6 10/22/6 9/23/6 +f 13/24/7 44/25/7 16/26/7 +f 11/21/8 16/27/8 12/28/8 +f 10/22/9 14/29/9 9/23/9 +f 12/28/10 15/30/10 10/22/10 +f 9/23/11 13/31/11 11/21/11 +f 20/32/9 17/33/9 18/34/9 +f 21/35/8 24/36/8 22/37/8 +f 18/38/10 24/39/10 20/40/10 +f 17/41/6 22/42/6 18/38/6 +f 19/43/11 21/44/11 17/45/11 +f 19/43/7 27/46/7 23/47/7 +f 25/48/10 31/49/10 27/46/10 +f 24/39/7 26/50/7 20/40/7 +f 23/51/7 28/52/7 24/36/7 +f 20/32/7 25/53/7 19/54/7 +f 30/55/7 31/56/7 29/57/7 +f 27/58/9 32/59/9 28/52/9 +f 28/60/11 30/55/11 26/50/11 +f 26/61/8 29/62/8 25/53/8 +f 44/63/11 47/64/11 43/65/11 +f 15/30/7 42/66/7 14/67/7 +f 39/68/10 40/69/10 49/70/10 +f 35/71/11 37/72/11 38/73/11 +f 49/70/8 37/72/8 50/74/8 +f 33/75/9 39/76/9 34/77/9 +f 16/26/7 43/78/7 15/30/7 +f 14/67/7 41/79/7 13/24/7 +f 47/64/7 45/80/7 46/81/7 +f 42/82/10 45/80/10 41/83/10 +f 41/84/9 48/85/9 44/86/9 +f 43/87/8 46/81/8 42/88/8 +f 36/89/12 50/74/12 35/90/12 +f 167/91/11 163/92/11 172/93/11 +f 193/94/8 190/95/8 189/96/8 +f 165/97/8 170/98/8 166/99/8 +f 170/100/10 164/101/10 166/102/10 +f 188/103/11 194/104/11 192/105/11 +f 173/106/9 163/107/9 164/108/9 +f 174/109/6 187/110/6 171/111/6 +f 188/112/9 191/113/9 187/110/9 +f 171/114/10 189/96/10 168/115/10 +f 181/116/7 172/93/7 173/106/7 +f 171/114/10 179/117/10 177/118/10 +f 187/119/10 193/120/10 189/96/10 +f 167/121/6 175/122/6 170/98/6 +f 189/96/7 169/123/7 168/115/7 +f 176/124/11 186/125/11 184/126/11 +f 170/100/10 181/116/10 173/106/10 +f 172/93/11 176/124/11 167/91/11 +f 168/115/9 180/127/9 179/128/9 +f 169/123/11 188/103/11 174/129/11 +f 174/129/11 180/130/11 169/123/11 +f 175/131/10 185/132/10 181/116/10 +f 176/133/9 183/134/9 175/122/9 +f 178/135/8 171/111/8 177/136/8 +f 185/137/8 182/138/8 181/116/8 +f 201/139/7 198/140/7 197/141/7 +f 200/142/7 195/143/7 196/144/7 +f 197/141/10 210/145/10 201/139/10 +f 200/142/8 207/146/8 199/147/8 +f 195/143/9 204/148/9 196/144/9 +f 199/147/11 203/149/11 195/143/11 +f 202/150/11 205/151/11 198/140/11 +f 201/139/8 209/152/8 202/150/8 +f 198/140/9 206/153/9 197/141/9 +f 196/144/10 208/154/10 200/142/10 +f 11/21/6 12/28/6 10/22/6 +f 13/24/7 41/79/7 44/25/7 +f 11/21/8 13/155/8 16/27/8 +f 10/22/9 15/156/9 14/29/9 +f 12/28/10 16/26/10 15/30/10 +f 9/23/11 14/157/11 13/31/11 +f 20/32/9 19/54/9 17/33/9 +f 21/35/8 23/51/8 24/36/8 +f 18/38/10 22/42/10 24/39/10 +f 17/41/6 21/158/6 22/42/6 +f 19/43/11 23/47/11 21/44/11 +f 19/43/7 25/48/7 27/46/7 +f 25/48/10 29/159/10 31/49/10 +f 24/39/7 28/60/7 26/50/7 +f 23/51/7 27/58/7 28/52/7 +f 20/32/7 26/61/7 25/53/7 +f 30/55/7 32/160/7 31/56/7 +f 27/58/9 31/161/9 32/59/9 +f 28/60/11 32/160/11 30/55/11 +f 26/61/8 30/162/8 29/62/8 +f 44/63/11 48/85/11 47/64/11 +f 15/30/7 43/78/7 42/66/7 +f 49/70/10 36/163/10 39/68/10 +f 36/163/10 34/164/10 39/68/10 +f 38/73/11 33/75/11 35/71/11 +f 35/71/11 50/74/11 37/72/11 +f 49/70/8 40/69/8 37/72/8 +f 33/75/9 38/73/9 39/76/9 +f 16/26/7 44/25/7 43/78/7 +f 14/67/7 42/66/7 41/79/7 +f 47/64/7 48/85/7 45/80/7 +f 42/82/10 46/81/10 45/80/10 +f 41/84/9 45/80/9 48/85/9 +f 43/87/8 47/64/8 46/81/8 +f 36/89/12 49/70/12 50/74/12 +f 167/91/11 165/165/11 163/92/11 +f 193/94/8 194/166/8 190/95/8 +f 165/97/8 167/121/8 170/98/8 +f 170/100/10 173/106/10 164/101/10 +f 188/103/11 190/95/11 194/104/11 +f 173/106/9 172/93/9 163/107/9 +f 174/109/6 188/112/6 187/110/6 +f 188/112/9 192/167/9 191/113/9 +f 171/114/10 187/119/10 189/96/10 +f 181/116/7 182/138/7 172/93/7 +f 171/114/10 168/115/10 179/117/10 +f 187/119/10 191/168/10 193/120/10 +f 167/121/6 176/133/6 175/122/6 +f 189/96/7 190/95/7 169/123/7 +f 176/124/11 182/138/11 186/125/11 +f 170/100/10 175/131/10 181/116/10 +f 172/93/11 182/138/11 176/124/11 +f 168/115/9 169/123/9 180/127/9 +f 169/123/11 190/95/11 188/103/11 +f 174/129/11 178/169/11 180/130/11 +f 175/131/10 183/170/10 185/132/10 +f 176/133/9 184/171/9 183/134/9 +f 178/135/8 174/109/8 171/111/8 +f 185/137/8 186/172/8 182/138/8 +f 201/139/7 202/150/7 198/140/7 +f 200/142/7 199/147/7 195/143/7 +f 197/141/10 206/173/10 210/145/10 +f 200/142/8 208/174/8 207/146/8 +f 195/143/9 203/175/9 204/148/9 +f 199/147/11 207/176/11 203/149/11 +f 202/150/11 209/177/11 205/151/11 +f 201/139/8 210/178/8 209/152/8 +f 198/140/9 205/179/9 206/153/9 +f 196/144/10 204/180/10 208/154/10 +s 1 +f 90/181/13 91/182/9 89/183/13 +f 54/184/8 55/185/14 53/186/8 +f 78/187/15 79/188/7 77/189/15 +f 56/190/14 57/191/6 55/185/14 +f 94/192/15 95/193/7 93/194/15 +f 76/195/9 77/189/15 75/196/9 +f 58/197/6 59/198/13 57/199/6 +f 74/200/13 75/196/9 73/201/13 +f 60/202/13 61/203/9 59/198/13 +f 72/204/6 73/201/13 71/205/6 +f 62/206/9 63/207/15 61/203/9 +f 82/208/12 52/209/8 81/210/12 +f 70/211/14 71/212/6 69/213/14 +f 64/214/15 65/215/7 63/207/15 +f 51/216/8 69/213/14 52/209/8 +f 66/217/7 67/218/12 65/215/7 +f 92/219/9 93/194/15 91/182/9 +f 80/220/7 81/210/12 79/188/7 +f 68/221/12 53/186/8 67/218/12 +f 88/222/6 89/183/13 87/223/6 +f 98/224/12 84/225/8 97/226/12 +f 86/227/14 87/228/6 85/229/14 +f 83/230/8 85/229/14 84/225/8 +f 96/231/7 97/226/12 95/193/7 +f 106/232/13 107/233/9 105/234/13 +f 110/235/15 111/236/7 109/237/15 +f 108/238/9 109/237/15 107/233/9 +f 104/239/6 105/234/13 103/240/6 +f 114/241/12 100/242/8 113/243/12 +f 102/244/14 103/245/6 101/246/14 +f 99/247/8 101/246/14 100/242/8 +f 112/248/7 113/243/12 111/236/7 +f 154/249/13 155/250/9 153/251/13 +f 118/252/8 119/253/14 117/254/8 +f 142/255/15 143/256/7 141/257/15 +f 120/258/14 121/259/6 119/253/14 +f 158/260/15 159/261/7 157/262/15 +f 140/263/9 141/257/15 139/264/9 +f 122/265/6 123/266/13 121/267/6 +f 138/268/13 139/264/9 137/269/13 +f 124/270/13 125/271/9 123/266/13 +f 136/272/6 137/269/13 135/273/6 +f 126/274/9 127/275/15 125/271/9 +f 146/276/12 116/277/8 145/278/12 +f 134/279/14 135/280/6 133/281/14 +f 128/282/15 129/283/7 127/275/15 +f 115/284/8 133/281/14 116/277/8 +f 130/285/7 131/286/12 129/283/7 +f 156/287/9 157/262/15 155/250/9 +f 144/288/7 145/278/12 143/256/7 +f 132/289/12 117/254/8 131/286/12 +f 152/290/6 153/251/13 151/291/6 +f 162/292/12 148/293/8 161/294/12 +f 150/295/14 151/296/6 149/297/14 +f 147/298/8 149/297/14 148/293/8 +f 160/299/7 161/294/12 159/261/7 +f 214/300/16 221/301/17 213/302/18 +f 212/303/19 219/304/8 211/305/20 +f 219/304/8 218/306/21 211/305/20 +f 224/307/22 216/308/23 217/309/24 +f 213/302/18 220/310/25 212/303/19 +f 225/311/26 217/309/24 218/306/21 +f 219/304/8 232/312/27 225/311/26 +f 231/313/28 223/314/29 224/307/22 +f 228/315/30 220/310/25 221/301/17 +f 225/311/26 231/313/28 224/307/22 +f 229/316/31 221/301/17 222/317/32 +f 227/318/33 219/304/8 220/310/25 +f 214/300/16 215/319/34 222/317/32 +f 222/317/32 215/319/34 229/316/31 +f 215/320/34 216/308/23 223/314/29 +f 223/314/29 230/321/35 215/320/34 +f 246/322/36 215/323/34 230/324/35 +f 240/325/20 255/326/26 233/327/21 +f 232/312/27 245/328/10 231/329/28 +f 244/330/37 228/331/30 229/332/31 +f 242/333/12 232/312/27 226/334/38 +f 245/328/10 230/324/35 231/329/28 +f 243/335/11 227/318/33 228/331/30 +f 237/336/16 251/337/17 238/338/18 +f 248/339/13 229/332/31 215/340/34 +f 238/338/18 250/341/25 239/342/19 +f 249/343/8 262/344/27 255/326/26 +f 258/345/30 250/341/25 251/337/17 +f 250/341/25 240/325/20 239/342/19 +f 254/346/22 235/347/23 234/348/24 +f 255/326/26 234/348/24 233/327/21 +f 261/349/28 253/350/29 254/346/22 +f 241/351/39 226/334/38 227/318/33 +f 255/326/26 261/349/28 254/346/22 +f 252/352/32 258/345/30 251/337/17 +f 257/353/33 249/343/8 250/341/25 +f 237/336/16 236/354/34 252/352/32 +f 252/352/32 236/354/34 259/355/31 +f 236/356/34 235/347/23 253/350/29 +f 253/350/29 260/357/35 236/356/34 +f 268/358/36 236/359/34 260/360/35 +f 262/344/27 267/361/10 261/362/28 +f 266/363/37 258/364/30 259/365/31 +f 264/366/12 262/344/27 256/367/38 +f 267/361/10 260/360/35 261/362/28 +f 265/368/11 257/353/33 258/364/30 +f 270/369/13 259/365/31 236/370/34 +f 263/371/39 256/367/38 257/353/33 +f 272/372/40 273/373/41 271/374/40 +f 274/375/41 275/376/10 273/373/41 +f 276/377/10 277/378/42 275/376/10 +f 278/379/42 279/380/43 277/378/42 +f 284/381/41 285/382/10 283/383/41 +f 282/384/40 283/383/41 281/385/40 +f 286/386/10 287/387/42 285/382/10 +f 288/388/42 289/389/43 287/387/42 +f 294/390/41 295/391/10 293/392/41 +f 292/393/40 293/392/41 291/394/40 +f 296/395/10 297/396/42 295/391/10 +f 298/397/42 299/398/43 297/396/42 +f 304/399/44 305/400/45 303/401/44 +f 306/402/45 307/403/11 305/400/45 +f 308/404/11 309/405/46 307/403/11 +f 310/406/46 301/407/47 309/405/46 +f 314/408/44 315/409/45 313/410/44 +f 316/411/45 317/412/11 315/409/45 +f 318/413/11 319/414/46 317/412/11 +f 320/415/46 311/416/47 319/414/46 +f 324/417/44 325/418/45 323/419/44 +f 326/420/45 327/421/11 325/418/45 +f 328/422/11 329/423/46 327/421/11 +f 330/424/46 321/425/47 329/423/46 +f 90/181/13 92/219/9 91/182/9 +f 54/184/8 56/190/14 55/185/14 +f 78/187/15 80/220/7 79/188/7 +f 56/190/14 58/426/6 57/191/6 +f 94/192/15 96/231/7 95/193/7 +f 76/195/9 78/187/15 77/189/15 +f 58/197/6 60/202/13 59/198/13 +f 74/200/13 76/195/9 75/196/9 +f 60/202/13 62/206/9 61/203/9 +f 72/204/6 74/200/13 73/201/13 +f 62/206/9 64/214/15 63/207/15 +f 82/208/12 51/216/8 52/209/8 +f 70/211/14 72/427/6 71/212/6 +f 64/214/15 66/217/7 65/215/7 +f 51/216/8 70/211/14 69/213/14 +f 66/217/7 68/221/12 67/218/12 +f 92/219/9 94/192/15 93/194/15 +f 80/220/7 82/208/12 81/210/12 +f 68/221/12 54/184/8 53/186/8 +f 88/222/6 90/181/13 89/183/13 +f 98/224/12 83/230/8 84/225/8 +f 86/227/14 88/428/6 87/228/6 +f 83/230/8 86/227/14 85/229/14 +f 96/231/7 98/224/12 97/226/12 +f 106/232/13 108/238/9 107/233/9 +f 110/235/15 112/248/7 111/236/7 +f 108/238/9 110/235/15 109/237/15 +f 104/239/6 106/232/13 105/234/13 +f 114/241/12 99/247/8 100/242/8 +f 102/244/14 104/429/6 103/245/6 +f 99/247/8 102/244/14 101/246/14 +f 112/248/7 114/241/12 113/243/12 +f 154/249/13 156/287/9 155/250/9 +f 118/252/8 120/258/14 119/253/14 +f 142/255/15 144/288/7 143/256/7 +f 120/258/14 122/430/6 121/259/6 +f 158/260/15 160/299/7 159/261/7 +f 140/263/9 142/255/15 141/257/15 +f 122/265/6 124/270/13 123/266/13 +f 138/268/13 140/263/9 139/264/9 +f 124/270/13 126/274/9 125/271/9 +f 136/272/6 138/268/13 137/269/13 +f 126/274/9 128/282/15 127/275/15 +f 146/276/12 115/284/8 116/277/8 +f 134/279/14 136/431/6 135/280/6 +f 128/282/15 130/285/7 129/283/7 +f 115/284/8 134/279/14 133/281/14 +f 130/285/7 132/289/12 131/286/12 +f 156/287/9 158/260/15 157/262/15 +f 144/288/7 146/276/12 145/278/12 +f 132/289/12 118/252/8 117/254/8 +f 152/290/6 154/249/13 153/251/13 +f 162/292/12 147/298/8 148/293/8 +f 150/295/14 152/432/6 151/296/6 +f 147/298/8 150/295/14 149/297/14 +f 160/299/7 162/292/12 161/294/12 +f 214/300/16 222/317/32 221/301/17 +f 212/303/19 220/310/25 219/304/8 +f 219/304/8 225/311/26 218/306/21 +f 224/307/22 223/314/29 216/308/23 +f 213/302/18 221/301/17 220/310/25 +f 225/311/26 224/307/22 217/309/24 +f 219/304/8 226/334/38 232/312/27 +f 231/313/28 230/321/35 223/314/29 +f 228/315/30 227/318/33 220/310/25 +f 225/311/26 232/312/27 231/313/28 +f 229/316/31 228/315/30 221/301/17 +f 227/318/33 226/334/38 219/304/8 +f 246/322/36 248/433/13 215/323/34 +f 240/325/20 249/343/8 255/326/26 +f 232/312/27 247/434/48 245/328/10 +f 244/330/37 243/335/11 228/331/30 +f 242/333/12 247/434/48 232/312/27 +f 245/328/10 246/322/36 230/324/35 +f 243/335/11 241/351/39 227/318/33 +f 237/336/16 252/352/32 251/337/17 +f 248/339/13 244/330/37 229/332/31 +f 238/338/18 251/337/17 250/341/25 +f 249/343/8 256/367/38 262/344/27 +f 258/345/30 257/353/33 250/341/25 +f 250/341/25 249/343/8 240/325/20 +f 254/346/22 253/350/29 235/347/23 +f 255/326/26 254/346/22 234/348/24 +f 261/349/28 260/357/35 253/350/29 +f 241/351/39 242/333/12 226/334/38 +f 255/326/26 262/344/27 261/349/28 +f 252/352/32 259/355/31 258/345/30 +f 257/353/33 256/367/38 249/343/8 +f 268/358/36 270/435/13 236/359/34 +f 262/344/27 269/436/48 267/361/10 +f 266/363/37 265/368/11 258/364/30 +f 264/366/12 269/436/48 262/344/27 +f 267/361/10 268/358/36 260/360/35 +f 265/368/11 263/371/39 257/353/33 +f 270/369/13 266/363/37 259/365/31 +f 263/371/39 264/366/12 256/367/38 +f 272/372/40 274/375/41 273/373/41 +f 274/375/41 276/377/10 275/376/10 +f 276/377/10 278/379/42 277/378/42 +f 278/379/42 280/437/43 279/380/43 +f 284/381/41 286/386/10 285/382/10 +f 282/384/40 284/381/41 283/383/41 +f 286/386/10 288/388/42 287/387/42 +f 288/388/42 290/438/43 289/389/43 +f 294/390/41 296/395/10 295/391/10 +f 292/393/40 294/390/41 293/392/41 +f 296/395/10 298/397/42 297/396/42 +f 298/397/42 300/439/43 299/398/43 +f 304/399/44 306/402/45 305/400/45 +f 306/402/45 308/404/11 307/403/11 +f 308/404/11 310/406/46 309/405/46 +f 310/406/46 302/440/47 301/407/47 +f 314/408/44 316/411/45 315/409/45 +f 316/411/45 318/413/11 317/412/11 +f 318/413/11 320/415/46 319/414/46 +f 320/415/46 312/441/47 311/416/47 +f 324/417/44 326/420/45 325/418/45 +f 326/420/45 328/422/11 327/421/11 +f 328/422/11 330/424/46 329/423/46 +f 330/424/46 322/442/47 321/425/47 diff --git a/src/main/resources/assets/hbm/models/machines/telex.obj b/src/main/resources/assets/hbm/models/machines/telex.obj new file mode 100644 index 000000000..ae7237edb --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/telex.obj @@ -0,0 +1,451 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o Cube.001 +v 0.500000 0.000000 1.500000 +v 0.500000 0.625000 1.500000 +v 0.125000 1.000000 1.500000 +v -0.500000 1.000000 1.500000 +v -0.500000 0.000000 1.500000 +v 0.500000 0.000000 1.125000 +v 0.500000 0.625000 1.125000 +v 0.125000 1.000000 1.125000 +v 0.125000 0.625000 1.125000 +v -0.500000 1.000000 1.125000 +v 0.125000 0.625000 0.250000 +v 0.125000 1.000000 0.250000 +v 0.500000 0.625000 0.250000 +v 0.125000 1.000000 -0.500000 +v 0.500000 0.625000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.250000 +v -0.500000 1.000000 0.250000 +v -0.500000 1.000000 -0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.250000 +v -0.500000 0.000000 1.125000 +v -0.187500 1.000000 -0.437500 +v -0.437500 1.000000 -0.437500 +v -0.437500 1.000000 0.062500 +v -0.187500 1.000000 0.062500 +v -0.187500 1.312500 -0.437500 +v -0.187500 1.312500 0.062500 +v -0.437500 1.312500 0.062500 +v -0.437500 1.312500 -0.437500 +v -0.375000 1.062500 0.062500 +v -0.312500 1.062500 0.062500 +v -0.312500 1.062500 0.125000 +v -0.375000 1.062500 0.187500 +v -0.312500 1.000000 0.062500 +v -0.312500 1.000000 0.125000 +v -0.375000 1.000000 0.062500 +v -0.375000 1.000000 0.187500 +v -0.125000 1.062500 0.125000 +v -0.125000 1.062500 0.187500 +v -0.125000 1.000000 0.125000 +v -0.125000 1.000000 0.187500 +v 0.000000 1.062500 0.125000 +v -0.062500 1.062500 0.125000 +v -0.062500 1.187500 0.125000 +v 0.000000 1.187500 0.125000 +v 0.062500 1.000000 0.250000 +v 0.062500 1.000000 0.062500 +v 0.062500 1.062500 0.062500 +v 0.062500 1.062500 0.250000 +v -0.125000 1.000000 0.062500 +v -0.125000 1.000000 0.250000 +v -0.125000 1.062500 0.250000 +v -0.125000 1.062500 0.062500 +v -0.062500 1.062500 0.187500 +v 0.000000 1.062500 0.187500 +v 0.000000 1.187500 0.187500 +v -0.062500 1.187500 0.187500 +v -0.093750 1.187500 0.093750 +v 0.031250 1.187500 0.093750 +v 0.031250 1.187500 0.218750 +v -0.093750 1.187500 0.218750 +v -0.093750 1.437500 0.093750 +v -0.093750 1.437500 0.218750 +v 0.031250 1.437500 0.218750 +v 0.031250 1.437500 0.093750 +v -0.312500 1.812500 0.000000 +v -0.375000 1.812500 0.000000 +v -0.375000 1.812500 -0.062500 +v -0.312500 1.812500 -0.062500 +v -0.375000 1.312500 -0.062500 +v -0.312500 1.312500 -0.062500 +v -0.312500 1.312500 0.000000 +v -0.375000 1.312500 0.000000 +v 0.312500 0.812500 -0.312500 +v 0.312500 0.812500 0.062500 +v 0.375000 0.875000 0.062500 +v 0.375000 0.875000 -0.312500 +v 0.562500 0.875000 0.062500 +v 0.562500 0.875000 -0.312500 +v 0.625000 0.812500 0.062500 +v 0.625000 0.812500 -0.312500 +v 0.625000 0.625000 0.062500 +v 0.625000 0.625000 -0.312500 +v 0.562500 0.562500 0.062500 +v 0.562500 0.562500 -0.312500 +v 0.562500 0.375000 0.062500 +v 0.562500 0.375000 -0.312500 +v 0.625000 0.312500 0.062500 +v 0.625000 0.312500 -0.312500 +v 0.625000 0.125000 0.062500 +v 0.625000 0.125000 -0.312500 +v 0.562500 0.062500 -0.312500 +v 0.562500 0.062500 0.062500 +vt 0.656250 0.250000 +vt 0.500000 0.250000 +vt 0.500000 -0.000000 +vt 0.000000 -0.000000 +vt 0.093750 0.156250 +vt -0.000000 0.156250 +vt 0.093750 0.250000 +vt 0.500000 0.500000 +vt 0.593750 0.500000 +vt 0.500000 0.593750 +vt 0.593750 0.500000 +vt 0.500000 0.343750 +vt 0.593750 0.343750 +vt 0.687500 0.500000 +vt 0.593750 0.500000 +vt 0.687500 0.593750 +vt 0.312500 0.156250 +vt 0.500000 0.250000 +vt 0.500000 0.156250 +vt 0.312500 0.156250 +vt 0.500000 -0.000000 +vt 0.500000 0.156250 +vt 0.093750 0.000000 +vt 0.593750 0.250000 +vt 0.812500 0.343750 +vt 0.593750 0.343750 +vt 0.093750 0.156250 +vt 0.312500 0.250000 +vt 1.000000 0.343750 +vt 0.812500 0.500000 +vt 0.812500 0.343750 +vt 1.000000 -0.000000 +vt 0.843750 0.250000 +vt 0.750000 0.156250 +vt 0.093750 0.250000 +vt 0.312500 0.500000 +vt 0.312500 0.250000 +vt 0.093750 0.500000 +vt -0.000000 0.250000 +vt -0.000000 0.500000 +vt 0.500000 0.250000 +vt 0.500000 0.500000 +vt 0.093750 0.750000 +vt 0.312500 0.750000 +vt 0.093750 0.500000 +vt 0.285714 0.500000 +vt 0.000000 1.000000 +vt 0.285714 1.000000 +vt 0.250000 0.750000 +vt 0.125000 0.812500 +vt 0.250000 0.812500 +vt 0.312500 0.828125 +vt 0.250000 0.750000 +vt 0.312500 0.750000 +vt 0.187500 0.828125 +vt 0.250000 0.906250 +vt 0.187500 0.906250 +vt 0.187500 0.828125 +vt 0.062500 0.906250 +vt 0.187500 0.906250 +vt 0.125000 0.828125 +vt 0.000000 0.750000 +vt 0.125000 0.750000 +vt 0.437500 0.875000 +vt 0.421875 0.859375 +vt 0.437500 0.859375 +vt 0.437500 0.859375 +vt 0.453125 0.843750 +vt 0.437500 0.843750 +vt 0.437500 0.890625 +vt 0.406250 0.875000 +vt 0.406250 0.890625 +vt 0.406250 0.812500 +vt 0.406250 0.875000 +vt 0.100000 1.000000 +vt 0.000000 0.900000 +vt 0.000000 1.000000 +vt 0.437500 0.812500 +vt 0.421875 0.859375 +vt 0.390625 0.812500 +vt 0.406250 0.875000 +vt 0.406250 0.812500 +vt 0.406250 0.750000 +vt 0.390625 0.781250 +vt 0.390625 0.750000 +vt 0.453125 0.750000 +vt 0.406250 0.765625 +vt 0.406250 0.750000 +vt 0.406250 0.765625 +vt 0.453125 0.750000 +vt 0.453125 0.765625 +vt 0.453125 0.750000 +vt 0.406250 0.765625 +vt 0.406250 0.750000 +vt 0.406250 0.765625 +vt 0.453125 0.750000 +vt 0.453125 0.765625 +vt 0.421875 0.781250 +vt 0.406250 0.750000 +vt 0.421875 0.765625 +vt 0.453125 0.750000 +vt 0.437500 0.765625 +vt 0.453125 0.796875 +vt 0.437500 0.781250 +vt 0.406250 0.796875 +vt 0.390625 0.781250 +vt 0.406250 0.750000 +vt 0.406250 0.781250 +vt 0.390625 0.781250 +vt 0.406250 0.750000 +vt 0.406250 0.781250 +vt 0.390625 0.781250 +vt 0.406250 0.750000 +vt 0.406250 0.781250 +vt 0.437500 0.750000 +vt 0.406250 0.781250 +vt 0.406250 0.750000 +vt 0.343750 0.875000 +vt 0.375000 0.906250 +vt 0.343750 0.906250 +vt 0.343750 0.812500 +vt 0.312500 0.875000 +vt 0.312500 0.812500 +vt 0.312500 0.812500 +vt 0.343750 0.875000 +vt 0.343750 0.812500 +vt 0.312500 0.812500 +vt 0.343750 0.875000 +vt 0.343750 0.812500 +vt 0.468750 0.859375 +vt 0.484375 0.875000 +vt 0.484375 0.859375 +vt 0.484375 0.875000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.484375 0.875000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.484375 0.875000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.687500 0.750000 +vt 0.781250 0.765625 +vt 0.781250 0.750000 +vt 0.687500 0.703125 +vt 0.781250 0.750000 +vt 0.781250 0.703125 +vt 0.687500 0.687500 +vt 0.781250 0.703125 +vt 0.781250 0.687500 +vt 0.687500 0.687500 +vt 0.781250 0.640625 +vt 0.781250 0.687500 +vt 0.687500 0.640625 +vt 0.781250 0.625000 +vt 0.687500 0.625000 +vt 0.781250 0.578125 +vt 0.781250 0.562500 +vt 0.687500 0.578125 +vt 0.687500 0.562500 +vt 0.687500 0.515625 +vt 0.781250 0.500000 +vt 0.687500 0.515625 +vt 0.781250 0.515625 +vt 0.750000 -0.000000 +vt 0.750000 0.156250 +vt -0.000000 0.250000 +vt 0.500000 0.500000 +vt 0.312500 0.250000 +vt 0.312500 0.000000 +vt 0.812500 0.250000 +vt 0.312500 0.156250 +vt 1.000000 0.500000 +vt 0.750000 0.000000 +vt 1.000000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vt 0.312500 0.500000 +vt 0.000000 0.500000 +vt -0.000000 0.750000 +vt 0.000000 0.500000 +vt 0.125000 0.750000 +vt 0.250000 0.828125 +vt 0.250000 0.828125 +vt 0.062500 0.828125 +vt 0.000000 0.828125 +vt 0.453125 0.859375 +vt 0.437500 0.875000 +vt 0.421875 0.812500 +vt 0.100000 0.900000 +vt 0.421875 0.812500 +vt 0.390625 0.875000 +vt 0.406250 0.781250 +vt 0.453125 0.765625 +vt 0.453125 0.765625 +vt 0.406250 0.750000 +vt 0.390625 0.750000 +vt 0.390625 0.750000 +vt 0.390625 0.750000 +vt 0.437500 0.781250 +vt 0.375000 0.875000 +vt 0.312500 0.875000 +vt 0.312500 0.875000 +vt 0.468750 0.875000 +vt 0.468750 0.875000 +vt 0.468750 0.875000 +vt 0.468750 0.875000 +vt 0.687500 0.765625 +vt 0.687500 0.750000 +vt 0.687500 0.703125 +vt 0.781250 0.515625 +vt 0.687500 0.500000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +s off +f 3/1/1 4/2/1 5/3/1 +f 1/4/2 7/5/2 2/6/2 +f 8/7/3 2/6/3 7/5/3 +f 9/8/4 8/9/4 7/10/4 +f 10/11/5 3/12/5 8/13/5 +f 11/14/1 13/15/1 12/16/1 +f 12/17/3 15/18/3 14/19/3 +f 13/20/2 16/21/2 15/22/2 +f 6/23/2 13/20/2 7/5/2 +f 7/24/5 11/25/5 9/26/5 +f 9/27/2 12/28/2 8/7/2 +f 14/29/5 18/30/5 12/31/5 +f 20/32/4 14/33/4 15/34/4 +f 12/31/5 10/11/5 8/13/5 +f 22/35/6 18/36/6 21/37/6 +f 10/38/6 5/39/6 4/40/6 +f 20/41/6 18/36/6 19/42/6 +f 22/43/7 21/44/7 6/45/7 +f 26/46/7 24/47/7 23/48/7 +f 30/49/5 28/50/5 27/51/5 +f 30/52/4 23/53/4 24/54/4 +f 28/55/1 25/56/1 26/57/1 +f 29/58/6 24/59/6 25/60/6 +f 27/61/2 26/62/2 23/63/2 +f 31/64/5 33/65/5 32/66/5 +f 33/67/2 35/68/2 32/69/2 +f 38/70/6 31/71/6 37/72/6 +f 40/73/5 33/65/5 34/74/5 +f 42/75/2 39/76/2 40/77/2 +f 39/78/4 36/79/4 33/67/4 +f 38/80/1 40/81/1 34/82/1 +f 44/83/4 46/84/4 43/85/4 +f 48/86/2 50/87/2 47/88/2 +f 52/89/6 54/90/6 51/91/6 +f 51/92/4 49/93/4 48/94/4 +f 47/95/1 53/96/1 52/97/1 +f 44/98/5 53/99/5 55/100/5 +f 55/100/5 50/101/5 56/102/5 +f 56/102/5 49/103/5 43/104/5 +f 43/104/5 54/105/5 44/98/5 +f 56/106/1 58/107/1 55/108/1 +f 43/109/2 57/110/2 56/111/2 +f 55/112/6 45/113/6 44/114/6 +f 60/115/7 62/116/7 59/117/7 +f 64/118/5 66/119/5 63/120/5 +f 60/121/2 65/122/2 61/123/2 +f 62/124/6 63/125/6 59/126/6 +f 59/127/4 66/128/4 60/121/4 +f 61/123/1 64/118/1 62/129/1 +f 70/130/5 68/131/5 67/132/5 +f 69/133/4 72/134/4 71/135/4 +f 67/136/1 74/137/1 73/138/1 +f 70/139/2 73/140/2 72/141/2 +f 68/131/6 71/142/6 74/143/6 +f 76/144/8 78/145/8 75/146/8 +f 77/147/5 80/148/5 78/149/5 +f 79/150/3 82/151/3 80/152/3 +f 81/153/2 84/154/2 82/155/2 +f 83/156/9 86/157/9 84/154/9 +f 85/158/2 88/159/2 86/157/2 +f 90/160/3 87/161/3 89/162/3 +f 91/163/2 90/160/2 89/162/2 +f 92/164/9 94/165/9 93/166/9 +f 5/3/1 1/167/1 2/168/1 +f 2/168/1 3/1/1 5/3/1 +f 1/4/2 6/23/2 7/5/2 +f 8/7/3 3/169/3 2/6/3 +f 10/11/5 4/170/5 3/12/5 +f 12/17/3 13/171/3 15/18/3 +f 13/20/2 17/172/2 16/21/2 +f 6/23/2 17/172/2 13/20/2 +f 7/24/5 13/173/5 11/25/5 +f 9/27/2 11/174/2 12/28/2 +f 14/29/5 19/175/5 18/30/5 +f 15/34/4 16/176/4 20/32/4 +f 20/32/4 19/177/4 14/33/4 +f 12/31/5 18/30/5 10/11/5 +f 22/35/6 10/38/6 18/36/6 +f 10/38/6 22/35/6 5/39/6 +f 20/41/6 21/37/6 18/36/6 +f 20/178/7 16/179/7 17/180/7 +f 6/45/7 1/181/7 5/182/7 +f 20/178/7 17/180/7 21/44/7 +f 17/180/7 6/45/7 21/44/7 +f 5/182/7 22/43/7 6/45/7 +f 26/46/7 25/183/7 24/47/7 +f 30/49/5 29/184/5 28/50/5 +f 30/52/4 27/185/4 23/53/4 +f 28/55/1 29/186/1 25/56/1 +f 29/58/6 30/187/6 24/59/6 +f 27/61/2 28/188/2 26/62/2 +f 31/64/5 34/74/5 33/65/5 +f 33/67/2 36/189/2 35/68/2 +f 38/70/6 34/190/6 31/71/6 +f 40/73/5 39/191/5 33/65/5 +f 42/75/2 41/192/2 39/76/2 +f 39/78/4 41/193/4 36/79/4 +f 38/80/1 42/194/1 40/81/1 +f 44/83/4 45/195/4 46/84/4 +f 48/86/2 49/196/2 50/87/2 +f 52/89/6 53/99/6 54/90/6 +f 51/92/4 54/197/4 49/93/4 +f 47/95/1 50/198/1 53/96/1 +f 44/98/5 54/105/5 53/99/5 +f 55/100/5 53/99/5 50/101/5 +f 56/102/5 50/101/5 49/103/5 +f 43/104/5 49/103/5 54/105/5 +f 56/106/1 57/199/1 58/107/1 +f 43/109/2 46/200/2 57/110/2 +f 55/112/6 58/201/6 45/113/6 +f 60/115/7 61/202/7 62/116/7 +f 64/118/5 65/203/5 66/119/5 +f 60/121/2 66/128/2 65/122/2 +f 62/124/6 64/204/6 63/125/6 +f 59/127/4 63/205/4 66/128/4 +f 61/123/1 65/122/1 64/118/1 +f 70/130/5 69/206/5 68/131/5 +f 69/133/4 70/207/4 72/134/4 +f 67/136/1 68/208/1 74/137/1 +f 70/139/2 67/209/2 73/140/2 +f 68/131/6 69/206/6 71/142/6 +f 76/144/8 77/210/8 78/145/8 +f 77/147/5 79/211/5 80/148/5 +f 79/150/3 81/212/3 82/151/3 +f 81/153/2 83/156/2 84/154/2 +f 83/156/9 85/158/9 86/157/9 +f 85/158/2 87/161/2 88/159/2 +f 90/160/3 88/159/3 87/161/3 +f 91/163/2 92/213/2 90/160/2 +f 92/164/9 91/214/9 94/165/9 diff --git a/src/main/resources/assets/hbm/models/machines/wood_burner.obj b/src/main/resources/assets/hbm/models/machines/wood_burner.obj new file mode 100644 index 000000000..9d9085591 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/wood_burner.obj @@ -0,0 +1,1112 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o Cylinder +v -0.292386 1.031250 0.845970 +v -0.465753 1.031250 0.917385 +v -0.465753 0.968750 0.917385 +v -0.292386 0.968750 0.845970 +v -0.187500 0.687500 0.937500 +v -0.187500 0.625000 1.000000 +v 0.187500 0.625000 1.000000 +v 0.187500 0.687500 0.937500 +v 0.163320 0.625000 0.875000 +v 0.000000 0.788320 0.875000 +v -0.163321 0.625000 0.875000 +v 0.000000 0.461679 0.875000 +v -0.438154 3.562500 -0.500000 +v -0.500000 3.562500 -0.561846 +v -0.561846 3.562500 -0.500000 +v -0.500000 3.562500 -0.438154 +v 0.687500 0.875000 -0.625000 +v 0.687500 0.875000 -0.250000 +v 0.687500 0.687500 -0.250000 +v 0.687500 0.000000 -0.250000 +v 0.687500 0.000000 -0.625000 +v -0.687500 0.000000 -0.250000 +v 0.562500 0.687500 -0.250000 +v -0.562500 0.687500 -0.250000 +v -0.687500 0.687500 -0.250000 +v -0.297517 0.484684 0.750000 +v -0.362222 0.372612 0.750000 +v 0.000000 0.275555 0.750000 +v 0.000000 0.404965 0.750000 +v -0.297518 1.515315 -0.812500 +v 0.297517 1.515316 -0.812500 +v 0.595035 1.000000 -0.812500 +v -0.297517 0.484685 -0.812500 +v -0.595035 1.000000 0.750000 +v -0.515316 1.297517 0.750000 +v -0.627388 1.362222 0.750000 +v -0.724444 1.000000 0.750000 +v -0.627387 0.637778 0.750000 +v -0.515315 0.702482 0.750000 +v -0.187500 0.687500 -0.625000 +v -0.187500 0.687500 -1.000000 +v -0.312500 0.687500 -1.000000 +v -0.562500 0.687500 -0.625000 +v -0.297518 1.515315 0.750000 +v -0.362223 1.627387 0.750000 +v 0.000000 0.404965 -0.750000 +v 0.000000 0.275556 -0.750000 +v -0.362222 0.372613 -0.750000 +v -0.297517 0.484685 -0.750000 +v 0.000000 1.595035 -0.750000 +v 0.000000 1.724445 -0.750000 +v 0.362222 1.627387 -0.750000 +v 0.297517 1.515316 -0.750000 +v -0.595035 1.000000 -0.750000 +v -0.515315 0.702482 -0.750000 +v -0.627387 0.637778 -0.750000 +v -0.724444 1.000000 -0.750000 +v -0.627388 1.362222 -0.750000 +v -0.515316 1.297517 -0.750000 +v -0.297518 1.515315 -0.750000 +v -0.362223 1.627387 -0.750000 +v 0.595035 1.000000 0.750000 +v 0.724444 1.000000 0.750000 +v 0.627387 1.362222 0.750000 +v 0.515315 1.297517 0.750000 +v -0.115485 0.740485 0.875000 +v -0.115485 0.740485 0.812500 +v -0.163321 0.625000 0.812500 +v 0.312500 1.156250 0.799556 +v 0.356694 1.156250 0.843750 +v 0.356694 1.031250 0.843750 +v 0.312500 1.031250 0.799556 +v 0.687500 0.875000 0.250000 +v 0.687500 0.875000 0.625000 +v 0.687500 -0.000000 0.625000 +v 0.687500 -0.000000 0.250000 +v 0.000000 1.430084 0.875000 +v 0.000000 1.430084 0.937500 +v 0.044194 1.385889 0.937500 +v 0.044194 1.385889 0.875000 +v -0.312500 1.187500 0.875000 +v -0.312500 1.187500 0.812500 +v -0.312500 0.812500 0.812500 +v -0.312500 0.812500 0.875000 +v 0.687500 0.687500 -1.000000 +v 0.687500 0.687500 -0.750000 +v 0.687500 0.000000 -0.750000 +v 0.687500 0.000000 -1.000000 +v 0.515315 0.702482 -0.750000 +v 0.627387 0.637778 -0.750000 +v 0.362222 0.372613 -0.750000 +v 0.297518 0.484685 -0.750000 +v 0.297517 1.515315 0.750000 +v 0.362222 1.627387 0.750000 +v 0.000000 1.724444 0.750000 +v 0.000000 1.595035 0.750000 +v 0.515315 0.702482 0.750000 +v 0.627387 0.637778 0.750000 +v 0.297518 0.484685 0.750000 +v 0.362222 0.372613 0.750000 +v 0.595035 1.000000 -0.750000 +v 0.724444 1.000000 -0.750000 +v -0.515316 1.297517 0.812500 +v -0.515315 0.702482 0.812500 +v 0.000000 0.404965 0.812500 +v 0.515315 1.297517 0.812500 +v 0.515315 1.297518 -0.750000 +v 0.627387 1.362222 -0.750000 +v -0.687500 0.875000 0.625000 +v -0.687500 -0.000000 0.625000 +v 0.312500 1.156250 0.887944 +v 0.268306 1.156250 0.843750 +v 0.268306 1.031250 0.843750 +v 0.312500 1.031250 0.887944 +v -0.044194 1.385889 0.875000 +v -0.044194 1.385889 0.937500 +v -0.187500 0.687500 0.875000 +v 0.187500 0.687500 0.875000 +v 0.250000 1.479639 0.875000 +v -0.250000 1.479639 0.875000 +v -0.250000 1.292139 0.875000 +v 0.250000 1.292139 0.875000 +v -0.687500 0.875000 -0.250000 +v -0.562500 0.875000 -0.250000 +v 0.562500 0.000000 -0.625000 +v 0.562500 0.687500 -0.625000 +v 0.562500 0.875000 -0.625000 +v -0.687500 0.000000 -1.000000 +v -0.687500 0.687500 -1.000000 +v 0.187500 0.687500 -1.000000 +v 0.312500 0.687500 -1.000000 +v 0.187500 0.750000 -0.937500 +v 0.187500 0.687500 -0.625000 +v -0.543732 3.937500 -0.456268 +v -0.561846 3.937500 -0.500000 +v -0.595671 3.937500 -0.500000 +v -0.567650 3.937500 -0.432350 +v 0.562500 0.875000 -0.250000 +v -0.687500 0.875000 0.250000 +v -0.687500 -0.000000 0.250000 +v 0.250000 1.479639 0.812500 +v 0.250000 1.292139 0.812500 +v 0.187500 0.750000 -0.625000 +v -0.187500 0.750000 -0.937500 +v -0.187500 0.750000 -0.625000 +v 0.115485 0.509515 0.875000 +v 0.115485 0.509515 0.812500 +v 0.163320 0.625000 0.812500 +v 0.312500 1.187500 0.812500 +v 0.312500 1.187500 0.875000 +v 0.312500 0.812500 0.875000 +v 0.312500 0.812500 0.812500 +v -0.115485 0.509515 0.875000 +v -0.115485 0.509515 0.812500 +v 0.000000 0.461679 0.812500 +v -0.489558 1.031250 0.859596 +v -0.316191 1.031250 0.788181 +v -0.316191 0.968750 0.788181 +v -0.489558 0.968750 0.859596 +v 0.000000 0.788320 0.812500 +v 0.115485 0.740485 0.875000 +v 0.115485 0.740485 0.812500 +v 0.000000 1.341695 0.875000 +v 0.000000 1.341695 0.937500 +v 0.312500 0.968750 0.887944 +v 0.268306 0.968750 0.843750 +v 0.268306 0.843750 0.843750 +v 0.312500 0.843750 0.887944 +v -0.187500 -0.000000 1.000000 +v 0.187500 -0.000000 1.000000 +v -0.687500 0.000000 -0.625000 +v -0.562500 0.000000 -0.625000 +v -0.687500 0.875000 -0.625000 +v -0.562500 0.875000 -0.625000 +v 0.356694 0.843750 0.843750 +v 0.312500 0.843750 0.799556 +v -0.250000 1.479639 0.812500 +v -0.250000 1.292139 0.812500 +v 0.187500 -0.000000 0.875000 +v -0.187500 -0.000000 0.875000 +v 0.312500 0.968750 0.799556 +v 0.356694 0.968750 0.843750 +v -0.567650 3.875000 -0.432350 +v -0.595671 3.875000 -0.500000 +v -0.663320 3.875000 -0.500000 +v -0.615485 3.875000 -0.384515 +v -0.500000 3.875000 -0.336680 +v -0.500000 3.875000 -0.404329 +v -0.384515 3.875000 -0.384515 +v -0.432350 3.875000 -0.432350 +v -0.543732 3.937500 -0.543732 +v -0.500000 3.937500 -0.561846 +v -0.500000 3.937500 -0.595671 +v -0.567650 3.937500 -0.567650 +v -0.336680 3.875000 -0.500000 +v -0.404329 3.875000 -0.500000 +v -0.500000 3.875000 -0.595671 +v -0.432350 3.875000 -0.567650 +v -0.384515 3.875000 -0.615485 +v -0.500000 3.875000 -0.663320 +v -0.456268 3.937500 -0.456268 +v -0.500000 3.937500 -0.438154 +v -0.500000 3.937500 -0.404329 +v -0.432350 3.937500 -0.432350 +v -0.567650 3.875000 -0.567650 +v -0.615485 3.875000 -0.615485 +v -0.456268 3.937500 -0.543732 +v -0.438154 3.937500 -0.500000 +v -0.404329 3.937500 -0.500000 +v -0.432350 3.937500 -0.567650 +v -0.687500 0.687500 -0.750000 +v -0.687500 0.000000 -0.750000 +v 0.297517 1.515315 0.812500 +v 0.000000 1.595035 0.812500 +v -0.297518 1.515315 0.812500 +v -0.595035 1.000000 0.812500 +v -0.297517 0.484684 0.812500 +v 0.297518 0.484685 0.812500 +v 0.515315 0.702482 0.812500 +v 0.595035 1.000000 0.812500 +v 0.000000 1.595035 -0.812500 +v 0.515315 1.297518 -0.812500 +v 0.515315 0.702482 -0.812500 +v 0.297518 0.484685 -0.812500 +v 0.000000 0.404965 -0.812500 +v -0.515315 0.702482 -0.812500 +v -0.595035 1.000000 -0.812500 +v -0.515316 1.297517 -0.812500 +v -0.456268 3.562500 -0.543732 +v -0.543732 3.562500 -0.543732 +v -0.543732 3.562500 -0.456268 +v -0.456268 3.562500 -0.456268 +v -0.336680 1.000000 -0.500000 +v -0.384515 1.000000 -0.615485 +v -0.384515 1.000000 -0.384515 +v -0.500000 1.000000 -0.336680 +v -0.663320 1.000000 -0.500000 +v -0.615485 1.000000 -0.384515 +v -0.500000 1.000000 -0.663320 +v -0.615485 1.000000 -0.615485 +vt 0.151724 0.294872 +vt 0.172414 0.282051 +vt 0.172414 0.294872 +vt 0.358621 0.294872 +vt 0.400000 0.307692 +vt 0.358621 0.307692 +vt 0.141623 0.191624 +vt 0.141623 0.128949 +vt 0.158480 0.160287 +vt 0.131269 0.551147 +vt 0.130943 0.526053 +vt 0.137855 0.538297 +vt 0.972414 0.358974 +vt 0.896552 0.358974 +vt 0.896552 0.282051 +vt 0.882759 0.500000 +vt 0.758621 0.500000 +vt 0.468966 1.000000 +vt 0.503448 0.974359 +vt 0.496552 1.000000 +vt 0.608602 0.714253 +vt 0.510620 0.609091 +vt 0.608602 0.503929 +vt 0.344828 1.000000 +vt 0.379310 0.974359 +vt 0.372414 1.000000 +vt 0.386207 1.000000 +vt 0.420690 0.974359 +vt 0.413793 1.000000 +vt 0.324138 0.641026 +vt 0.337931 0.564103 +vt 0.365517 0.641026 +vt 0.303448 1.000000 +vt 0.337931 0.974359 +vt 0.331034 1.000000 +vt 0.503448 0.666667 +vt 0.468966 0.641026 +vt 0.496552 0.641026 +vt 0.255172 0.666667 +vt 0.220690 0.641026 +vt 0.248276 0.641026 +vt 0.386207 0.641026 +vt 0.420690 0.666667 +vt 0.379310 0.666667 +vt 0.344828 0.641026 +vt 0.372414 0.641026 +vt 0.303448 0.641026 +vt 0.337931 0.666667 +vt 0.296552 0.666667 +vt 0.131034 0.974359 +vt 0.165517 1.000000 +vt 0.137931 1.000000 +vt 0.462069 0.666667 +vt 0.427586 0.641026 +vt 0.455172 0.641026 +vt 0.193103 0.217949 +vt 0.206897 0.205128 +vt 0.206897 0.217949 +vt 0.289655 0.256410 +vt 0.296552 0.230769 +vt 0.296552 0.256410 +vt 0.993103 0.807692 +vt 0.896552 0.730769 +vt 0.993103 0.730769 +vt 0.131034 0.320513 +vt 0.137931 0.333333 +vt 0.131034 0.333333 +vt 0.179310 0.320513 +vt 0.186207 0.243590 +vt 0.186207 0.320513 +vt 0.200000 0.564103 +vt 0.227586 0.423077 +vt 0.227586 0.564103 +vt 0.089655 0.666667 +vt 0.055172 0.641026 +vt 0.082759 0.641026 +vt 0.213793 0.974359 +vt 0.248276 1.000000 +vt 0.220690 1.000000 +vt 0.089655 0.974359 +vt 0.124138 1.000000 +vt 0.096552 1.000000 +vt 0.048276 0.666667 +vt 0.013793 0.641026 +vt 0.041379 0.641026 +vt 0.055172 1.000000 +vt 0.082759 1.000000 +vt 0.013793 1.000000 +vt 0.048276 0.974359 +vt 0.041379 1.000000 +vt 0.262069 0.641026 +vt 0.427586 1.000000 +vt 0.462069 0.974359 +vt 0.455172 1.000000 +vt 0.124138 0.641026 +vt 0.096552 0.641026 +vt 0.520523 0.805999 +vt 0.631502 0.925110 +vt 0.520523 0.925110 +vt 0.172414 0.974359 +vt 0.206897 1.000000 +vt 0.179310 1.000000 +vt 0.255172 0.974359 +vt 0.289655 1.000000 +vt 0.262069 1.000000 +vt 0.179310 0.641026 +vt 0.213793 0.666667 +vt 0.172414 0.666667 +vt 0.744828 0.987179 +vt 0.896552 0.807692 +vt 0.896552 0.987179 +vt 0.275862 0.256410 +vt 0.282759 0.230769 +vt 0.282759 0.256410 +vt 0.124138 0.320513 +vt 0.131034 0.307692 +vt 0.400000 0.320513 +vt 0.358621 0.320513 +vt 0.137931 0.397436 +vt 0.193103 0.358974 +vt 0.193103 0.397436 +vt 0.744828 0.500000 +vt 0.758621 0.538462 +vt 0.744828 0.538462 +vt 0.882759 0.282051 +vt 0.882759 0.141026 +vt 0.137931 0.641026 +vt 0.165517 0.641026 +vt 0.413793 0.307692 +vt 0.406897 0.307692 +vt 0.400000 0.294872 +vt 0.282759 0.564103 +vt 0.268966 0.564103 +vt 0.434483 0.576923 +vt 0.427586 0.641026 +vt 0.427586 0.564103 +vt 0.044010 0.634626 +vt 0.037931 0.628205 +vt 0.044828 0.628205 +vt 0.268966 0.256410 +vt 0.275862 0.230769 +vt 0.896552 0.538462 +vt 0.896552 0.500000 +vt 0.648276 0.730769 +vt 0.744828 0.807692 +vt 0.648276 0.807692 +vt 0.200000 0.358974 +vt 0.200000 0.397436 +vt 0.475862 0.641026 +vt 0.434483 0.641026 +vt 0.227586 0.615385 +vt 0.475862 0.576923 +vt 0.482759 0.641026 +vt 0.137931 0.217949 +vt 0.151724 0.205128 +vt 0.151724 0.217949 +vt 0.255172 0.320513 +vt 0.262069 0.243590 +vt 0.262069 0.320513 +vt 0.220690 0.217949 +vt 0.234483 0.205128 +vt 0.234483 0.217949 +vt 0.255172 0.243590 +vt 0.186207 0.230769 +vt 0.255172 0.230769 +vt 0.172414 0.307692 +vt 0.151724 0.320513 +vt 0.151724 0.307692 +vt 0.179310 0.217949 +vt 0.193103 0.205128 +vt 0.200000 0.423077 +vt 0.186207 0.564103 +vt 0.186207 0.423077 +vt 0.744828 0.730769 +vt 0.165517 0.205128 +vt 0.165517 0.217949 +vt 0.137931 0.307692 +vt 0.131034 0.294872 +vt 0.137931 0.294872 +vt 0.137931 0.320513 +vt 0.144828 0.307692 +vt 0.144828 0.320513 +vt 0.275862 0.320513 +vt 0.282759 0.294872 +vt 0.282759 0.320513 +vt 0.400000 0.166667 +vt 0.758621 0.282051 +vt 0.668966 0.358974 +vt 0.648276 0.282051 +vt 0.744828 0.282051 +vt 0.144828 0.294872 +vt 0.151724 0.282051 +vt 0.275862 0.217949 +vt 0.282759 0.217949 +vt 0.289655 0.230769 +vt 0.744828 0.102564 +vt 0.758621 0.102564 +vt 0.758621 0.141026 +vt 0.275862 0.269231 +vt 0.282759 0.269231 +vt 0.275862 0.282051 +vt 0.282759 0.282051 +vt 0.131034 0.397436 +vt 0.137931 0.358974 +vt 0.358621 0.141026 +vt 0.400000 0.141026 +vt 0.255172 0.333333 +vt 0.186207 0.333333 +vt 0.413793 0.166667 +vt 0.193103 0.410256 +vt 0.137931 0.410256 +vt 0.896552 0.551282 +vt 0.744828 0.551282 +vt 0.275862 0.333333 +vt 0.282759 0.333333 +vt 0.151724 0.269231 +vt 0.172414 0.269231 +vt 0.124138 0.217949 +vt 0.137931 0.205128 +vt 0.137931 0.346154 +vt 0.193103 0.346154 +vt 0.044828 0.615385 +vt 0.034483 0.602564 +vt 0.048276 0.602564 +vt 0.051724 0.615385 +vt 0.062069 0.602564 +vt 0.058621 0.615385 +vt 0.072414 0.615385 +vt 0.065517 0.615385 +vt 0.016435 0.634626 +vt 0.010345 0.628205 +vt 0.017241 0.628205 +vt 0.079310 0.615385 +vt 0.089655 0.602564 +vt 0.086207 0.615385 +vt 0.025002 0.634626 +vt 0.031034 0.628205 +vt 0.030223 0.634626 +vt 0.106897 0.615385 +vt 0.117241 0.602564 +vt 0.113793 0.615385 +vt 0.071585 0.634626 +vt 0.065517 0.628205 +vt 0.072414 0.628205 +vt 0.179310 0.205128 +vt 0.434483 0.564103 +vt 0.475862 0.564103 +vt 0.100000 0.615385 +vt 0.093103 0.615385 +vt 0.017241 0.615385 +vt 0.006897 0.602564 +vt 0.020690 0.602564 +vt 0.024138 0.615385 +vt 0.031034 0.615385 +vt 0.099160 0.634626 +vt 0.093103 0.628205 +vt 0.100000 0.628205 +vt 0.107726 0.634626 +vt 0.113793 0.628205 +vt 0.112947 0.634626 +vt 0.052577 0.634626 +vt 0.058621 0.628205 +vt 0.057798 0.634626 +vt 0.080151 0.634626 +vt 0.086207 0.628205 +vt 0.085373 0.634626 +vt 0.220690 0.205128 +vt 0.420690 0.564103 +vt 0.406897 0.423077 +vt 0.420690 0.423077 +vt 0.289655 0.320513 +vt 0.296552 0.294872 +vt 0.296552 0.320513 +vt 0.303448 0.307692 +vt 0.344828 0.166667 +vt 0.344828 0.307692 +vt 0.268966 0.320513 +vt 0.275862 0.294872 +vt 0.289655 0.294872 +vt 0.608049 0.968708 +vt 0.576012 0.984666 +vt 0.543975 0.968708 +vt 0.511939 0.865555 +vt 0.543975 0.762401 +vt 0.576012 0.746443 +vt 0.608049 0.762401 +vt 0.631502 0.805999 +vt 0.640086 0.865555 +vt 0.575941 0.730521 +vt 0.543281 0.714253 +vt 0.519371 0.669806 +vt 0.519371 0.548376 +vt 0.543281 0.503929 +vt 0.575941 0.487661 +vt 0.632511 0.548376 +vt 0.641262 0.609091 +vt 0.632511 0.669806 +vt 0.351724 0.307692 +vt 0.282759 0.641026 +vt 0.379310 0.564103 +vt 0.379310 0.423077 +vt 0.379310 0.615385 +vt 0.241379 0.641026 +vt 0.482759 0.564103 +vt 0.153543 0.182446 +vt 0.129703 0.182446 +vt 0.124765 0.160287 +vt 0.129703 0.138128 +vt 0.153543 0.138128 +vt 0.135994 0.547258 +vt 0.126448 0.547686 +vt 0.124356 0.538902 +vt 0.126218 0.529942 +vt 0.135763 0.529514 +vt 0.227586 0.371795 +vt 0.241379 0.346154 +vt 0.993103 0.282051 +vt 0.993103 0.358974 +vt 0.744828 0.358974 +vt 0.324138 0.564103 +vt 0.296552 0.974359 +vt 0.413793 0.641026 +vt 0.331034 0.641026 +vt 0.179310 0.243590 +vt 0.006897 0.666667 +vt 0.006897 0.974359 +vt 0.289655 0.641026 +vt 0.131034 0.666667 +vt 0.206897 0.641026 +vt 0.124138 0.307692 +vt 0.882759 0.102564 +vt 0.896552 0.102564 +vt 0.038789 0.634626 +vt 0.268966 0.230769 +vt 0.882759 0.538462 +vt 0.172414 0.320513 +vt 0.358621 0.166667 +vt 0.648276 0.358974 +vt 0.144828 0.282051 +vt 0.131034 0.358974 +vt 0.124138 0.205128 +vt 0.037931 0.615385 +vt 0.075862 0.602564 +vt 0.011214 0.634626 +vt 0.024138 0.628205 +vt 0.103448 0.602564 +vt 0.066364 0.634626 +vt 0.010345 0.615385 +vt 0.093939 0.634626 +vt 0.106897 0.628205 +vt 0.051724 0.628205 +vt 0.079310 0.628205 +vt 0.406897 0.564103 +vt 0.303448 0.166667 +vt 0.268966 0.294872 +vt 0.365517 0.346154 +vt 0.379310 0.371795 +vt 0.103448 0.012821 +vt 0.372414 0.051282 +vt 0.337931 0.038462 +vt 0.372414 0.038462 +vt 0.131034 0.012821 +vt 0.165517 0.025641 +vt 0.131034 0.025641 +vt 0.158621 0.564103 +vt 0.165517 0.641026 +vt 0.158621 0.641026 +vt 0.406897 0.051282 +vt 0.406897 0.038462 +vt 0.200000 0.051282 +vt 0.165517 0.038462 +vt 0.200000 0.038462 +vt 0.089655 0.012821 +vt 0.137931 0.564103 +vt 0.144828 0.641026 +vt 0.137931 0.641026 +vt 0.234483 0.051282 +vt 0.234483 0.038462 +vt 0.165517 0.564103 +vt 0.172414 0.641026 +vt 0.151724 0.564103 +vt 0.151724 0.641026 +vt 0.124138 0.564103 +vt 0.131034 0.641026 +vt 0.124138 0.641026 +vt 0.441379 0.012821 +vt 0.475862 0.025641 +vt 0.441379 0.025641 +vt 0.075862 0.012821 +vt 0.268966 0.012821 +vt 0.303448 0.025641 +vt 0.268966 0.025641 +vt 0.048276 0.012821 +vt 0.475862 0.012821 +vt 0.510345 0.025641 +vt 0.165517 0.051282 +vt 0.131034 0.038462 +vt 0.544828 0.051282 +vt 0.510345 0.038462 +vt 0.544828 0.038462 +vt 0.200000 0.012821 +vt 0.234483 0.025641 +vt 0.200000 0.025641 +vt 0.406897 0.012821 +vt 0.406897 0.025641 +vt 0.172414 0.564103 +vt 0.179310 0.641026 +vt 0.510345 0.012821 +vt 0.544828 0.025641 +vt 0.372414 0.012821 +vt 0.372414 0.025641 +vt 0.131034 0.564103 +vt 0.144828 0.564103 +vt 0.303448 0.012821 +vt 0.337931 0.025641 +vt 0.337931 0.012821 +vt 0.234483 0.012821 +vt 0.117241 0.012821 +vt 0.337931 0.051282 +vt 0.303448 0.038462 +vt 0.268966 0.051282 +vt 0.268966 0.038462 +vt 0.062069 0.012821 +vt 0.510345 0.051282 +vt 0.475862 0.038462 +vt 0.441379 0.051282 +vt 0.441379 0.038462 +vt 0.475862 0.051282 +vt 0.020690 0.012821 +vt 0.034483 0.012821 +vt 0.165517 0.012821 +vt 0.303448 0.051282 +vt 0.131034 0.051282 +vt 0.179310 0.564103 +vt 0.544828 0.012821 +vt 0.006897 0.012821 +vn 0.3809 0.0000 0.9246 +vn 0.0000 0.7071 0.7071 +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 -0.9239 0.3827 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.3809 0.0000 -0.9246 +vn -0.3827 0.9239 0.0000 +vn 0.7071 -0.0000 0.7071 +vn 0.9239 0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9246 0.0000 0.3809 +vn 0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.9239 -0.3827 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.8660 0.5000 0.0000 +s off +f 2/1/1 4/2/1 1/3/1 +f 6/4/2 8/5/2 5/6/2 +f 10/7/3 12/8/3 9/9/3 +f 14/10/4 16/11/4 13/12/4 +f 19/13/5 20/14/5 21/15/5 +f 20/14/3 23/16/3 24/17/3 +f 26/18/3 28/19/3 29/20/3 +f 30/21/6 32/22/6 33/23/6 +f 35/24/3 37/25/3 34/26/3 +f 34/27/3 38/28/3 39/29/3 +f 40/30/4 42/31/4 43/32/4 +f 44/33/3 36/34/3 35/35/3 +f 47/36/6 49/37/6 46/38/6 +f 51/39/6 53/40/6 50/41/6 +f 54/42/6 56/43/6 57/44/6 +f 57/44/6 59/45/6 54/46/6 +f 60/47/6 58/48/6 61/49/6 +f 63/50/3 65/51/3 62/52/3 +f 48/53/6 55/54/6 49/55/6 +f 66/56/7 68/57/7 11/58/7 +f 70/59/8 72/60/8 69/61/8 +f 74/62/5 76/63/5 73/64/5 +f 78/65/9 80/66/9 77/67/9 +f 82/68/10 84/69/10 81/70/10 +f 86/71/5 88/72/5 85/73/5 +f 90/74/6 92/75/6 89/76/6 +f 94/77/3 96/78/3 93/79/3 +f 98/80/3 62/81/3 97/82/3 +f 91/83/6 46/84/6 92/85/6 +f 99/86/3 98/80/3 97/87/3 +f 29/88/3 100/89/3 99/90/3 +f 50/91/6 61/49/6 51/39/6 +f 39/92/3 27/93/3 26/94/3 +f 101/95/6 90/74/6 89/96/6 +f 104/97/3 106/98/3 103/99/3 +f 64/100/3 93/101/3 65/102/3 +f 95/103/3 44/104/3 96/105/3 +f 107/106/6 52/107/6 108/108/6 +f 109/109/3 75/110/3 74/111/3 +f 112/112/11 114/113/11 111/114/11 +f 77/115/12 116/116/12 78/65/12 +f 5/6/4 118/117/4 117/118/4 +f 120/119/3 122/120/3 119/121/3 +f 25/122/3 124/123/3 123/124/3 +f 21/15/6 125/125/6 126/126/6 +f 108/108/6 101/127/6 107/128/6 +f 118/129/5 8/130/5 7/131/5 +f 130/132/6 131/133/6 88/72/6 +f 132/134/5 133/135/5 130/136/5 +f 134/137/4 136/138/4 137/139/4 +f 69/140/13 113/141/13 112/112/13 +f 18/142/3 23/16/3 19/143/3 +f 139/144/10 110/145/10 109/146/10 +f 119/121/5 142/147/5 141/148/5 +f 132/134/4 145/149/4 143/150/4 +f 86/151/4 85/73/4 131/133/4 +f 144/152/10 40/153/10 145/149/10 +f 146/154/14 148/155/14 9/156/14 +f 150/157/5 152/158/5 149/159/5 +f 153/160/15 155/161/15 12/162/15 +f 151/163/16 83/164/16 152/165/16 +f 157/166/17 159/167/17 156/168/17 +f 10/169/18 67/170/18 66/56/18 +f 87/171/19 126/172/19 125/173/19 +f 75/110/16 140/174/16 76/63/16 +f 9/156/20 162/175/20 161/176/20 +f 164/177/21 115/178/21 163/179/21 +f 79/180/22 163/181/22 80/182/22 +f 166/183/11 168/184/11 165/185/11 +f 6/4/3 170/186/3 7/131/3 +f 172/187/16 125/125/16 20/14/16 +f 25/188/10 173/189/10 171/190/10 +f 156/191/23 3/192/23 2/1/23 +f 79/180/3 116/116/3 164/177/3 +f 114/113/16 72/193/16 71/194/16 +f 111/114/19 71/195/19 70/59/19 +f 173/196/6 174/197/6 43/198/6 +f 69/199/4 111/114/4 70/200/4 +f 168/184/16 176/201/16 175/202/16 +f 177/203/10 121/204/10 120/119/10 +f 170/186/16 180/205/16 179/206/16 +f 81/70/4 149/207/4 82/208/4 +f 179/209/5 7/131/5 170/186/5 +f 120/119/4 141/210/4 177/211/4 +f 73/212/6 140/174/6 139/213/6 +f 181/214/4 165/185/4 182/215/4 +f 4/2/16 159/216/16 158/217/16 +f 81/70/3 151/163/3 150/157/3 +f 12/218/24 147/219/24 146/154/24 +f 122/120/16 178/220/16 142/221/16 +f 183/222/4 185/223/4 186/224/4 +f 183/225/4 187/226/4 188/227/4 +f 187/226/4 190/228/4 188/229/4 +f 191/230/4 193/231/4 194/232/4 +f 190/233/4 195/234/4 196/235/4 +f 191/236/4 136/237/4 135/238/4 +f 198/239/4 200/240/4 197/241/4 +f 201/242/4 203/243/4 204/244/4 +f 161/176/25 160/245/25 10/169/25 +f 144/152/26 130/246/26 41/247/26 +f 195/234/4 198/248/4 196/249/4 +f 205/250/4 200/251/4 206/252/4 +f 205/253/4 185/223/4 184/254/4 +f 207/255/4 209/256/4 210/257/4 +f 207/258/4 193/259/4 192/260/4 +f 134/261/4 203/262/4 202/263/4 +f 201/264/4 209/265/4 208/266/4 +f 2/1/4 157/166/4 156/168/4 +f 11/58/27 154/267/27 153/160/27 +f 43/268/11 212/269/11 172/270/11 +f 182/271/8 176/272/8 181/273/8 +f 118/274/6 180/275/6 117/276/6 +f 181/277/13 167/278/13 166/183/13 +f 165/185/19 175/279/19 182/271/19 +f 106/98/3 213/280/3 103/99/3 +f 213/280/3 214/281/3 103/99/3 +f 214/281/3 215/282/3 103/99/3 +f 103/99/3 216/283/3 104/97/3 +f 104/97/3 217/284/3 105/285/3 +f 105/285/3 218/286/3 219/287/3 +f 219/287/3 220/288/3 105/285/3 +f 220/288/3 106/98/3 105/285/3 +f 30/21/6 221/289/6 31/290/6 +f 31/290/6 222/291/6 32/22/6 +f 32/22/6 223/292/6 224/293/6 +f 224/293/6 225/294/6 32/22/6 +f 225/294/6 33/23/6 32/22/6 +f 33/23/6 226/295/6 227/296/6 +f 227/296/6 228/297/6 33/23/6 +f 228/297/6 30/21/6 33/23/6 +f 6/4/10 5/298/10 117/276/10 +f 180/275/10 6/4/10 117/276/10 +f 133/299/4 131/133/4 130/132/4 +f 132/134/5 143/150/5 133/135/5 +f 212/269/10 129/300/10 128/301/10 +f 42/31/4 129/300/4 211/302/4 +f 211/302/4 43/32/4 42/31/4 +f 126/303/4 86/151/4 131/133/4 +f 144/152/10 41/304/10 40/153/10 +f 9/9/3 161/305/3 10/7/3 +f 10/7/3 66/306/3 11/307/3 +f 11/307/3 153/308/3 12/8/3 +f 12/8/3 146/309/3 9/9/3 +f 13/12/4 229/310/4 14/10/4 +f 14/10/4 230/311/4 15/312/4 +f 15/312/4 231/313/4 16/11/4 +f 16/11/4 232/314/4 13/12/4 +f 88/72/16 87/315/16 125/316/16 +f 2/1/1 3/192/1 4/2/1 +f 6/4/2 7/131/2 8/5/2 +f 10/7/3 11/307/3 12/8/3 +f 14/10/4 15/312/4 16/11/4 +f 21/15/5 17/317/5 19/13/5 +f 17/317/5 18/318/5 19/13/5 +f 25/122/3 22/319/3 24/17/3 +f 22/319/3 20/14/3 24/17/3 +f 20/14/3 19/143/3 23/16/3 +f 26/18/3 27/93/3 28/19/3 +f 30/21/6 31/290/6 32/22/6 +f 35/24/3 36/34/3 37/25/3 +f 34/27/3 37/25/3 38/28/3 +f 40/30/4 41/320/4 42/31/4 +f 44/33/3 45/321/3 36/34/3 +f 47/36/6 48/53/6 49/37/6 +f 51/39/6 52/107/6 53/40/6 +f 54/42/6 55/322/6 56/43/6 +f 57/44/6 58/48/6 59/45/6 +f 60/47/6 59/323/6 58/48/6 +f 63/50/3 64/100/3 65/51/3 +f 48/53/6 56/43/6 55/54/6 +f 66/56/7 67/170/7 68/57/7 +f 70/59/8 71/195/8 72/60/8 +f 74/62/5 75/110/5 76/63/5 +f 78/65/9 79/180/9 80/66/9 +f 82/68/10 83/324/10 84/69/10 +f 86/71/5 87/171/5 88/72/5 +f 90/74/6 91/83/6 92/75/6 +f 94/77/3 95/103/3 96/78/3 +f 98/80/3 63/50/3 62/81/3 +f 91/83/6 47/325/6 46/84/6 +f 99/86/3 100/89/3 98/80/3 +f 29/88/3 28/326/3 100/89/3 +f 50/91/6 60/327/6 61/49/6 +f 39/92/3 38/28/3 27/93/3 +f 101/95/6 102/328/6 90/74/6 +f 104/97/3 105/285/3 106/98/3 +f 64/100/3 94/77/3 93/101/3 +f 95/103/3 45/321/3 44/104/3 +f 107/106/6 53/329/6 52/107/6 +f 109/109/3 110/145/3 75/110/3 +f 112/112/11 113/141/11 114/113/11 +f 77/115/12 115/330/12 116/116/12 +f 5/6/4 8/5/4 118/117/4 +f 120/119/3 121/204/3 122/120/3 +f 25/122/3 24/17/3 124/123/3 +f 127/331/6 17/332/6 126/126/6 +f 17/332/6 21/15/6 126/126/6 +f 108/108/6 102/328/6 101/127/6 +f 88/72/6 128/301/6 41/320/6 +f 128/301/6 129/300/6 42/31/6 +f 42/31/6 41/320/6 128/301/6 +f 41/320/6 130/132/6 88/72/6 +f 131/133/6 85/73/6 88/72/6 +f 134/137/4 135/333/4 136/138/4 +f 69/140/13 72/334/13 113/141/13 +f 18/142/3 138/335/3 23/16/3 +f 139/144/10 140/174/10 110/145/10 +f 119/121/5 122/120/5 142/147/5 +f 132/134/4 144/152/4 145/149/4 +f 146/154/14 147/219/14 148/155/14 +f 150/157/5 151/163/5 152/158/5 +f 153/160/15 154/267/15 155/161/15 +f 151/163/16 84/69/16 83/164/16 +f 157/166/17 158/336/17 159/167/17 +f 10/169/18 160/245/18 67/170/18 +f 87/171/19 86/71/19 126/172/19 +f 75/110/16 110/145/16 140/174/16 +f 9/156/20 148/155/20 162/175/20 +f 164/177/21 116/116/21 115/178/21 +f 79/180/22 164/177/22 163/181/22 +f 166/183/11 167/278/11 168/184/11 +f 6/4/3 169/337/3 170/186/3 +f 125/125/16 21/15/16 20/14/16 +f 20/14/16 22/319/16 172/187/16 +f 22/319/16 171/190/16 172/187/16 +f 171/190/10 22/319/10 25/188/10 +f 25/188/10 123/338/10 173/189/10 +f 156/191/23 159/339/23 3/192/23 +f 79/180/3 78/65/3 116/116/3 +f 114/113/16 113/141/16 72/193/16 +f 111/114/19 114/113/19 71/195/19 +f 172/187/6 171/190/6 43/198/6 +f 171/190/6 173/196/6 43/198/6 +f 69/199/4 112/112/4 111/114/4 +f 168/184/16 167/278/16 176/201/16 +f 177/203/10 178/340/10 121/204/10 +f 170/186/16 169/337/16 180/205/16 +f 81/70/4 150/157/4 149/207/4 +f 179/209/5 118/129/5 7/131/5 +f 120/119/4 119/121/4 141/210/4 +f 73/212/6 76/63/6 140/174/6 +f 181/214/4 166/183/4 165/185/4 +f 4/2/16 3/192/16 159/216/16 +f 81/70/3 84/69/3 151/163/3 +f 12/218/24 155/341/24 147/219/24 +f 122/120/16 121/204/16 178/220/16 +f 183/222/4 184/342/4 185/223/4 +f 183/225/4 186/224/4 187/226/4 +f 187/226/4 189/343/4 190/228/4 +f 191/230/4 192/344/4 193/231/4 +f 190/233/4 189/343/4 195/234/4 +f 191/236/4 194/345/4 136/237/4 +f 198/239/4 199/346/4 200/240/4 +f 201/242/4 202/347/4 203/243/4 +f 161/176/25 162/175/25 160/245/25 +f 144/152/26 132/134/26 130/246/26 +f 195/234/4 199/346/4 198/248/4 +f 205/250/4 197/348/4 200/251/4 +f 205/253/4 206/252/4 185/223/4 +f 207/255/4 208/349/4 209/256/4 +f 207/258/4 210/350/4 193/259/4 +f 134/261/4 137/351/4 203/262/4 +f 201/264/4 204/352/4 209/265/4 +f 2/1/4 1/3/4 157/166/4 +f 11/58/27 68/57/27 154/267/27 +f 43/268/11 211/353/11 212/269/11 +f 182/271/8 175/279/8 176/272/8 +f 118/274/6 179/354/6 180/275/6 +f 181/277/13 176/355/13 167/278/13 +f 165/185/19 168/184/19 175/279/19 +f 180/275/10 169/337/10 6/4/10 +f 133/299/4 126/303/4 131/133/4 +f 212/269/10 211/353/10 129/300/10 +f 125/316/16 172/356/16 128/301/16 +f 172/356/16 212/357/16 128/301/16 +f 128/301/16 88/72/16 125/316/16 +s 1 +f 95/103/4 61/49/28 45/321/28 +f 36/34/29 57/44/10 37/25/10 +f 195/234/5 234/358/8 199/346/8 +f 94/77/30 51/39/4 95/103/4 +f 27/93/31 47/36/16 28/19/16 +f 100/89/32 47/325/16 91/83/32 +f 215/359/28 96/360/4 44/361/28 +f 225/362/16 92/363/32 46/364/16 +f 231/365/8 135/366/5 134/367/8 +f 103/368/29 44/361/28 35/369/29 +f 204/244/19 188/229/3 190/228/19 +f 219/370/33 99/371/32 97/372/33 +f 37/25/10 56/43/34 38/28/34 +f 203/262/3 183/225/11 188/227/3 +f 189/343/19 233/373/5 195/234/5 +f 13/374/10 201/375/13 208/376/10 +f 220/377/5 97/372/33 62/378/5 +f 15/379/5 191/380/19 135/366/5 +f 137/139/11 184/342/10 183/222/11 +f 16/381/6 134/367/8 202/382/6 +f 136/237/10 205/253/13 184/254/10 +f 98/80/33 102/328/5 63/50/5 +f 36/34/29 61/49/28 58/48/29 +f 14/383/3 207/384/11 192/385/3 +f 227/386/10 55/387/34 54/388/10 +f 187/226/3 235/389/19 189/343/19 +f 222/390/35 53/391/30 107/392/35 +f 185/223/10 238/393/11 186/224/11 +f 226/394/34 49/395/31 55/387/34 +f 193/259/6 198/239/8 197/241/6 +f 218/396/32 29/397/16 99/371/32 +f 105/398/16 26/399/31 29/400/16 +f 223/401/33 101/402/5 89/403/33 +f 228/404/29 54/388/10 59/405/29 +f 230/406/19 192/407/3 191/380/19 +f 33/408/31 46/409/16 49/395/31 +f 30/410/28 59/405/29 60/411/28 +f 38/28/34 48/53/31 27/93/31 +f 63/50/5 108/108/35 64/100/35 +f 229/412/11 208/376/10 207/384/11 +f 209/265/5 190/233/19 196/235/5 +f 232/413/13 202/382/6 201/375/13 +f 31/414/30 50/415/4 53/391/30 +f 221/416/4 60/411/28 50/415/4 +f 210/257/8 196/249/5 198/248/8 +f 32/417/5 107/392/35 101/402/5 +f 199/346/8 239/418/6 200/240/6 +f 214/419/4 93/420/30 96/360/4 +f 106/421/35 62/378/5 65/422/35 +f 194/232/13 197/348/6 205/250/13 +f 98/80/33 91/83/32 90/74/33 +f 64/100/35 52/107/30 94/77/30 +f 186/224/11 236/423/3 187/226/3 +f 217/424/31 39/425/34 26/399/31 +f 216/426/10 35/369/29 34/427/10 +f 104/428/34 34/427/10 39/425/34 +f 200/251/6 240/429/13 206/252/13 +f 206/252/13 237/430/10 185/223/10 +f 224/431/32 89/403/33 92/363/32 +f 213/432/30 65/422/35 93/420/30 +f 95/103/4 51/39/4 61/49/28 +f 36/34/29 58/48/29 57/44/10 +f 195/234/5 233/373/5 234/358/8 +f 94/77/30 52/107/30 51/39/4 +f 27/93/31 48/53/31 47/36/16 +f 100/89/32 28/326/16 47/325/16 +f 215/359/28 214/419/4 96/360/4 +f 225/362/16 224/431/32 92/363/32 +f 231/365/8 15/379/5 135/366/5 +f 103/368/29 215/359/28 44/361/28 +f 204/244/19 203/243/3 188/229/3 +f 219/370/33 218/396/32 99/371/32 +f 37/25/10 57/44/10 56/43/34 +f 203/262/3 137/351/11 183/225/11 +f 189/343/19 235/389/19 233/373/5 +f 13/374/10 232/413/13 201/375/13 +f 220/377/5 219/370/33 97/372/33 +f 15/379/5 230/406/19 191/380/19 +f 137/139/11 136/138/10 184/342/10 +f 16/381/6 231/365/8 134/367/8 +f 136/237/10 194/345/13 205/253/13 +f 98/80/33 90/74/33 102/328/5 +f 36/34/29 45/321/28 61/49/28 +f 14/383/3 229/412/11 207/384/11 +f 227/386/10 226/394/34 55/387/34 +f 187/226/3 236/423/3 235/389/19 +f 222/390/35 31/414/30 53/391/30 +f 185/223/10 237/430/10 238/393/11 +f 226/394/34 33/408/31 49/395/31 +f 193/259/6 210/350/8 198/239/8 +f 218/396/32 105/433/16 29/397/16 +f 105/398/16 217/424/31 26/399/31 +f 223/401/33 32/417/5 101/402/5 +f 228/404/29 227/386/10 54/388/10 +f 230/406/19 14/434/3 192/407/3 +f 33/408/31 225/435/16 46/409/16 +f 30/410/28 228/404/29 59/405/29 +f 38/28/34 56/43/34 48/53/31 +f 63/50/5 102/328/5 108/108/35 +f 229/412/11 13/374/10 208/376/10 +f 209/265/5 204/352/19 190/233/19 +f 232/413/13 16/381/6 202/382/6 +f 31/414/30 221/416/4 50/415/4 +f 221/416/4 30/410/28 60/411/28 +f 210/257/8 209/256/5 196/249/5 +f 32/417/5 222/390/35 107/392/35 +f 199/346/8 234/358/8 239/418/6 +f 214/419/4 213/432/30 93/420/30 +f 106/421/35 220/377/5 62/378/5 +f 194/232/13 193/231/6 197/348/6 +f 98/80/33 100/89/32 91/83/32 +f 64/100/35 108/108/35 52/107/30 +f 186/224/11 238/393/11 236/423/3 +f 217/424/31 104/428/34 39/425/34 +f 216/426/10 103/368/29 35/369/29 +f 104/428/34 216/426/10 34/427/10 +f 200/251/6 239/436/6 240/429/13 +f 206/252/13 240/429/13 237/430/10 +f 224/431/32 223/401/33 89/403/33 +f 213/432/30 106/421/35 65/422/35 diff --git a/src/main/resources/assets/hbm/models/mine_ap.obj b/src/main/resources/assets/hbm/models/mine_ap.obj deleted file mode 100644 index 00709083c..000000000 --- a/src/main/resources/assets/hbm/models/mine_ap.obj +++ /dev/null @@ -1,209 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'mine_ap.blend' -# www.blender.org -o Sphere -v -0.023918 0.081742 0.000000 -v -0.044194 0.068194 0.000000 -v -0.057743 0.047918 0.000000 -v -0.062500 0.024000 0.000000 -v -0.057743 0.000082 0.000000 -v -0.016913 0.081742 -0.016912 -v -0.031250 0.068194 -0.031250 -v -0.040830 0.047918 -0.040830 -v -0.044194 0.024000 -0.044194 -v -0.040830 0.000082 -0.040830 -v -0.000000 0.081742 -0.023918 -v -0.000000 0.068194 -0.044194 -v -0.000000 0.047918 -0.057742 -v -0.000000 0.024000 -0.062500 -v -0.000000 0.000082 -0.057742 -v -0.000000 0.086500 0.000000 -v 0.016912 0.081742 -0.016912 -v 0.031250 0.068194 -0.031250 -v 0.040830 0.047918 -0.040830 -v 0.044194 0.024000 -0.044194 -v 0.040830 0.000082 -0.040830 -v 0.023918 0.081742 0.000000 -v 0.044194 0.068194 0.000000 -v 0.057742 0.047918 0.000000 -v 0.062500 0.024000 0.000000 -v 0.057742 0.000082 0.000000 -v 0.016912 0.081742 0.016912 -v 0.031250 0.068194 0.031250 -v 0.040830 0.047918 0.040830 -v 0.044194 0.024000 0.044194 -v 0.040830 0.000082 0.040830 -v -0.000000 0.081742 0.023918 -v -0.000000 0.068194 0.044194 -v -0.000000 0.047918 0.057742 -v -0.000000 0.024000 0.062500 -v -0.000000 0.000082 0.057742 -v -0.016913 0.081742 0.016912 -v -0.031250 0.068194 0.031250 -v -0.040830 0.047918 0.040830 -v -0.044194 0.024000 0.044194 -v -0.040830 0.000082 0.040830 -v -0.061524 0.148194 -0.061523 -v 0.061523 0.148194 -0.061523 -v 0.061523 0.148194 0.061523 -v -0.061524 0.148194 0.061523 -v -0.005980 0.081742 0.000000 -v -0.000000 0.081742 -0.005979 -v -0.000000 0.111500 0.000000 -v 0.005979 0.081742 0.000000 -v -0.000000 0.081742 0.005979 -v -0.000000 0.086500 0.000000 -vt 0.713388 0.422365 -vt 0.372492 0.422365 -vt 0.358449 0.234785 -vt 0.613541 0.784500 -vt 0.472338 0.784500 -vt 0.412485 0.606170 -vt 0.727431 0.234785 -vt 0.372492 0.047204 -vt 0.673395 0.606170 -vt 0.713387 0.047204 -vt 0.542940 0.958853 -vt 0.074879 0.038923 -vt 0.262088 0.020580 -vt 0.262088 0.720477 -vt 0.839131 0.569078 -vt 0.877120 0.614143 -vt 0.839131 0.803203 -vt 0.837838 0.803203 -vt 0.799848 0.614143 -vt 0.837838 0.569078 -vt 0.878413 0.569078 -vt 0.916403 0.614143 -vt 0.878413 0.803204 -vt 0.917696 0.614143 -vt 0.955685 0.569078 -vt 0.955685 0.803203 -vn -0.908700 0.180700 -0.376400 -vn -0.541400 0.810300 -0.224300 -vn -0.908700 -0.180700 -0.376400 -vn -0.786200 0.525300 -0.325600 -vn -0.376400 0.180700 -0.908700 -vn -0.224300 0.810300 -0.541400 -vn -0.376400 -0.180700 -0.908700 -vn -0.325600 0.525300 -0.786200 -vn 0.376400 -0.180700 -0.908700 -vn 0.325600 0.525300 -0.786200 -vn 0.376400 0.180700 -0.908700 -vn 0.224300 0.810300 -0.541400 -vn 0.786200 0.525300 -0.325600 -vn 0.908700 0.180700 -0.376400 -vn 0.541400 0.810300 -0.224300 -vn 0.908700 -0.180700 -0.376400 -vn 0.908700 0.180700 0.376400 -vn 0.541400 0.810300 0.224300 -vn 0.908700 -0.180700 0.376400 -vn 0.786200 0.525300 0.325600 -vn 0.224300 0.810300 0.541400 -vn 0.376400 -0.180700 0.908700 -vn 0.325600 0.525300 0.786200 -vn 0.376400 0.180700 0.908700 -vn -0.376400 -0.180700 0.908700 -vn -0.325600 0.525300 0.786200 -vn -0.376400 0.180700 0.908700 -vn -0.224300 0.810300 0.541400 -vn -0.194500 0.977600 -0.080500 -vn -0.080500 0.977600 -0.194500 -vn 0.080500 0.977600 -0.194500 -vn 0.194500 0.977600 -0.080500 -vn 0.194500 0.977600 0.080500 -vn 0.080500 0.977600 0.194500 -vn -0.080500 0.977600 0.194500 -vn -0.194500 0.977600 0.080500 -vn -0.908700 0.180700 0.376400 -vn -0.541400 0.810300 0.224300 -vn -0.908700 -0.180700 0.376400 -vn -0.786200 0.525300 0.325600 -vn -0.707100 0.000000 0.707100 -vn 0.707100 0.000000 0.707100 -vn 0.707100 0.000000 -0.707100 -vn -0.707100 0.000000 -0.707100 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.000000 1.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000000 0.000000 -1.000000 -s off -f 3/1/1 8/2/1 9/3/1 -f 1/4/2 6/5/2 7/6/2 -f 4/7/3 9/3/3 10/8/3 -f 2/9/4 7/6/4 8/2/4 -f 8/1/5 13/2/5 14/3/5 -f 6/4/6 11/5/6 12/6/6 -f 9/7/7 14/3/7 15/8/7 -f 7/9/8 12/6/8 13/2/8 -f 14/7/9 20/3/9 21/8/9 -f 12/9/10 18/6/10 19/2/10 -f 13/1/11 19/2/11 20/3/11 -f 11/4/12 17/5/12 18/6/12 -f 18/9/13 23/6/13 24/2/13 -f 19/1/14 24/2/14 25/3/14 -f 17/4/15 22/5/15 23/6/15 -f 20/7/16 25/3/16 26/8/16 -f 25/7/17 24/1/17 29/2/17 -f 23/9/18 22/4/18 27/5/18 -f 25/7/19 30/3/19 31/8/19 -f 23/9/20 28/6/20 29/2/20 -f 28/9/21 27/4/21 32/5/21 -f 31/10/22 30/7/22 35/3/22 -f 29/1/23 28/9/23 33/6/23 -f 29/1/24 34/2/24 35/3/24 -f 35/7/25 40/3/25 41/8/25 -f 33/9/26 38/6/26 39/2/26 -f 35/7/27 34/1/27 39/2/27 -f 32/4/28 37/5/28 38/6/28 -f 1/4/29 16/11/29 6/5/29 -f 6/4/30 16/11/30 11/5/30 -f 11/4/31 16/11/31 17/5/31 -f 17/4/32 16/11/32 22/5/32 -f 22/4/33 16/11/33 27/5/33 -f 27/4/34 16/11/34 32/5/34 -f 32/4/35 16/11/35 37/5/35 -f 37/4/36 16/11/36 1/5/36 -f 39/1/37 3/2/37 4/3/37 -f 37/4/38 1/5/38 2/6/38 -f 40/7/39 4/3/39 5/8/39 -f 39/1/40 38/9/40 2/6/40 -f 27/12/41 28/13/41 44/14/41 -f 17/12/42 18/13/42 43/14/42 -f 6/12/43 7/13/43 42/14/43 -f 37/12/44 38/13/44 45/14/44 -f 47/15/45 51/16/45 48/17/45 -f 48/18/46 51/19/46 49/20/46 -f 50/21/47 51/22/47 48/23/47 -f 51/24/48 46/25/48 48/26/48 -f 4/7/1 3/1/1 9/3/1 -f 2/9/2 1/4/2 7/6/2 -f 5/10/3 4/7/3 10/8/3 -f 3/1/4 2/9/4 8/2/4 -f 9/7/5 8/1/5 14/3/5 -f 7/9/6 6/4/6 12/6/6 -f 10/10/7 9/7/7 15/8/7 -f 8/1/8 7/9/8 13/2/8 -f 15/10/9 14/7/9 21/8/9 -f 13/1/10 12/9/10 19/2/10 -f 14/7/11 13/1/11 20/3/11 -f 12/9/12 11/4/12 18/6/12 -f 19/1/13 18/9/13 24/2/13 -f 20/7/14 19/1/14 25/3/14 -f 18/9/15 17/4/15 23/6/15 -f 21/10/16 20/7/16 26/8/16 -f 30/3/17 25/7/17 29/2/17 -f 28/6/18 23/9/18 27/5/18 -f 26/10/19 25/7/19 31/8/19 -f 24/1/20 23/9/20 29/2/20 -f 33/6/21 28/9/21 32/5/21 -f 36/8/22 31/10/22 35/3/22 -f 34/2/23 29/1/23 33/6/23 -f 30/7/24 29/1/24 35/3/24 -f 36/10/25 35/7/25 41/8/25 -f 34/1/26 33/9/26 39/2/26 -f 40/3/27 35/7/27 39/2/27 -f 33/9/28 32/4/28 38/6/28 -f 40/7/37 39/1/37 4/3/37 -f 38/9/38 37/4/38 2/6/38 -f 41/10/39 40/7/39 5/8/39 -f 3/2/40 39/1/40 2/6/40 diff --git a/src/main/resources/assets/hbm/models/mine_he.obj b/src/main/resources/assets/hbm/models/mine_he.obj deleted file mode 100644 index d26f0d488..000000000 --- a/src/main/resources/assets/hbm/models/mine_he.obj +++ /dev/null @@ -1,376 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'mine_he.blend' -# www.blender.org -o Cylinder -v 0.000000 0.000000 -0.250000 -v 0.000000 0.125000 -0.250000 -v 0.125000 0.000000 -0.216506 -v 0.125000 0.125000 -0.216506 -v 0.216506 0.000000 -0.125000 -v 0.216506 0.125000 -0.125000 -v 0.250000 0.000000 0.000000 -v 0.250000 0.125000 0.000000 -v 0.216506 0.000000 0.125000 -v 0.216506 0.125000 0.125000 -v 0.125000 0.000000 0.216506 -v 0.125000 0.125000 0.216506 -v 0.000000 0.000000 0.250000 -v 0.000000 0.125000 0.250000 -v -0.125000 0.000000 0.216506 -v -0.125000 0.125000 0.216506 -v -0.216506 0.000000 0.125000 -v -0.216506 0.125000 0.125000 -v -0.250000 0.000000 0.000000 -v -0.250000 0.125000 0.000000 -v -0.216506 0.000000 -0.125000 -v -0.216506 0.125000 -0.125000 -v -0.125000 0.000000 -0.216506 -v -0.125000 0.125000 -0.216506 -v 0.100000 0.125000 -0.173205 -v -0.000000 0.125000 -0.200000 -v 0.173205 0.125000 -0.100000 -v 0.200000 0.125000 0.000000 -v 0.173205 0.125000 0.100000 -v 0.100000 0.125000 0.173205 -v 0.000000 0.125000 0.200000 -v -0.100000 0.125000 0.173205 -v -0.173205 0.125000 0.100000 -v -0.200000 0.125000 0.000000 -v -0.173205 0.125000 -0.100000 -v -0.100000 0.125000 -0.173205 -v 0.100000 0.110000 -0.173205 -v -0.000000 0.110000 -0.200000 -v 0.173205 0.110000 -0.100000 -v 0.200000 0.110000 0.000000 -v 0.173205 0.110000 0.100000 -v 0.100000 0.110000 0.173205 -v 0.000000 0.110000 0.200000 -v -0.100000 0.110000 0.173205 -v -0.173205 0.110000 0.100000 -v -0.200000 0.110000 0.000000 -v -0.173205 0.110000 -0.100000 -v -0.100000 0.110000 -0.173205 -v 0.070000 0.110000 -0.121244 -v -0.000000 0.110000 -0.140000 -v 0.121244 0.110000 -0.070000 -v 0.140000 0.110000 0.000000 -v 0.121244 0.110000 0.070000 -v 0.070000 0.110000 0.121244 -v 0.000000 0.110000 0.140000 -v -0.070000 0.110000 0.121244 -v -0.121244 0.110000 0.070000 -v -0.140000 0.110000 0.000000 -v -0.121244 0.110000 -0.070000 -v -0.070000 0.110000 -0.121244 -v 0.070000 0.125000 -0.121244 -v -0.000000 0.125000 -0.140000 -v 0.121244 0.125000 -0.070000 -v 0.140000 0.125000 0.000000 -v 0.121244 0.125000 0.070000 -v 0.070000 0.125000 0.121244 -v 0.000000 0.125000 0.140000 -v -0.070000 0.125000 0.121244 -v -0.121244 0.125000 0.070000 -v -0.140000 0.125000 0.000000 -v -0.121244 0.125000 -0.070000 -v -0.070000 0.125000 -0.121244 -v 0.035000 0.125000 -0.060622 -v -0.000000 0.125000 -0.070000 -v 0.060622 0.125000 -0.035000 -v 0.070000 0.125000 0.000000 -v 0.060622 0.125000 0.035000 -v 0.035000 0.125000 0.060622 -v 0.000000 0.125000 0.070000 -v -0.035000 0.125000 0.060622 -v -0.060622 0.125000 0.035000 -v -0.070000 0.125000 0.000000 -v -0.060622 0.125000 -0.035000 -v -0.035000 0.125000 -0.060622 -v 0.021000 0.150000 -0.036373 -v -0.000000 0.150000 -0.042000 -v 0.036373 0.150000 -0.021000 -v 0.042000 0.150000 0.000000 -v 0.036373 0.150000 0.021000 -v 0.021000 0.150000 0.036373 -v 0.000000 0.150000 0.042000 -v -0.021000 0.150000 0.036373 -v -0.036373 0.150000 0.021000 -v -0.042000 0.150000 0.000000 -v -0.036373 0.150000 -0.021000 -v -0.021000 0.150000 -0.036373 -vt 0.960752 0.210383 -vt 0.779713 0.210383 -vt 0.779713 0.035513 -vt 0.942646 0.277949 -vt 0.694075 0.517821 -vt 0.018428 0.336781 -vt 0.265732 0.089478 -vt 0.942648 0.298932 -vt 0.797817 0.298932 -vt 0.797814 0.277947 -vt 0.920923 0.380009 -vt 0.819542 0.380009 -vt 0.920923 0.400994 -vt 0.819542 0.400994 -vt 0.895578 0.495584 -vt 0.844887 0.495584 -vt 0.762072 0.729031 -vt 0.791336 0.772633 -vt 0.769830 0.794139 -vt 0.761958 0.823517 -vt 0.879471 0.823517 -vt 0.850093 0.874402 -vt 0.915201 0.764875 -vt 0.871599 0.794139 -vt 0.850093 0.772633 -vt 0.879357 0.918004 -vt 0.871599 0.852895 -vt 0.709566 0.819974 -vt 0.722685 0.771011 -vt 0.873221 0.725488 -vt 0.820715 0.764761 -vt 0.931864 0.827060 -vt 0.918744 0.876024 -vt 0.709566 0.827060 -vt 0.769830 0.852895 -vt 0.768208 0.921547 -vt 0.791336 0.874402 -vt 0.820715 0.882274 -vt 0.817172 0.712368 -vt 0.918744 0.771011 -vt 0.931864 0.819974 -vt 0.762072 0.918004 -vt 0.726228 0.882160 -vt 0.824257 0.934666 -vt 0.960752 0.035512 -vt 0.446771 0.089478 -vt 0.603555 0.179997 -vt 0.694075 0.336782 -vt 0.603555 0.674605 -vt 0.446771 0.765124 -vt 0.265732 0.765124 -vt 0.108948 0.674605 -vt 0.018428 0.517820 -vt 0.108948 0.179997 -vt 0.726228 0.764875 -vt 0.879357 0.729031 -vt 0.915201 0.882160 -vt 0.824257 0.712368 -vt 0.722685 0.876024 -vt 0.817172 0.934666 -vt 0.768208 0.725488 -vt 0.873221 0.921547 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn 0.000000 1.000000 0.000000 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.000000 -1.000000 0.000000 -vn -0.655700 0.734300 0.175700 -vn 0.175700 0.734300 0.655700 -vn 0.655700 0.734300 -0.175700 -vn -0.655700 0.734300 -0.175700 -vn -0.175700 0.734300 0.655700 -vn 0.655700 0.734300 0.175700 -vn -0.480000 0.734300 -0.480000 -vn 0.175700 0.734300 -0.655700 -vn -0.480000 0.734300 0.480000 -vn 0.480000 0.734300 0.480000 -vn -0.175700 0.734300 -0.655700 -vn 0.480000 0.734300 -0.480000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/1/2 6/2/2 5/3/2 -f 6/1/3 8/2/3 7/3/3 -f 8/1/4 10/2/4 9/3/4 -f 10/1/5 12/2/5 11/3/5 -f 12/1/6 14/2/6 13/3/6 -f 14/1/7 16/2/7 15/3/7 -f 16/1/8 18/2/8 17/3/8 -f 18/1/9 20/2/9 19/3/9 -f 20/1/10 22/2/10 21/3/10 -f 10/2/11 8/1/11 28/4/11 -f 24/1/12 2/2/12 1/3/12 -f 22/1/13 24/2/13 23/3/13 -f 7/5/14 19/6/14 23/7/14 -f 27/4/9 39/8/9 40/9/9 -f 24/1/11 36/4/11 26/10/11 -f 2/1/11 26/4/11 25/10/11 -f 8/2/11 6/1/11 27/4/11 -f 22/1/11 35/4/11 36/10/11 -f 4/1/11 25/4/11 27/10/11 -f 20/1/11 34/4/11 35/10/11 -f 18/1/11 33/4/11 34/10/11 -f 16/1/11 32/4/11 33/10/11 -f 14/1/11 31/4/11 32/10/11 -f 14/2/11 12/1/11 30/4/11 -f 12/2/11 10/1/11 29/4/11 -f 39/8/11 51/11/11 52/12/11 -f 34/4/4 46/8/4 47/9/4 -f 31/4/1 43/8/1 44/9/1 -f 28/4/10 40/8/10 41/9/10 -f 35/4/5 47/8/5 48/9/5 -f 26/4/7 38/8/7 37/9/7 -f 32/4/2 44/8/2 45/9/2 -f 29/4/13 41/8/13 42/9/13 -f 36/4/6 48/8/6 38/9/6 -f 25/4/8 37/8/8 39/9/8 -f 33/4/3 45/8/3 46/9/3 -f 30/4/12 42/8/12 43/9/12 -f 54/11/6 66/13/6 67/14/6 -f 46/8/11 58/11/11 59/12/11 -f 43/8/11 55/11/11 56/12/11 -f 40/8/11 52/11/11 53/12/11 -f 47/8/11 59/11/11 60/12/11 -f 37/9/11 38/8/11 50/11/11 -f 44/8/11 56/11/11 57/12/11 -f 42/9/11 41/8/11 53/11/11 -f 38/9/11 48/8/11 60/11/11 -f 37/8/11 49/11/11 51/12/11 -f 45/8/11 57/11/11 58/12/11 -f 42/8/11 54/11/11 55/12/11 -f 66/13/11 78/15/11 79/16/11 -f 51/11/3 63/13/3 64/14/3 -f 58/11/10 70/13/10 71/14/10 -f 55/11/7 67/13/7 68/14/7 -f 52/11/4 64/13/4 65/14/4 -f 59/11/13 71/13/13 72/14/13 -f 50/11/1 62/13/1 61/14/1 -f 56/11/8 68/13/8 69/14/8 -f 53/11/5 65/13/5 66/14/5 -f 60/11/12 72/13/12 62/14/12 -f 49/11/2 61/13/2 63/14/2 -f 57/11/9 69/13/9 70/14/9 -f 81/17/15 93/18/15 94/19/15 -f 63/13/11 75/15/11 76/16/11 -f 70/13/11 82/15/11 83/16/11 -f 67/13/11 79/15/11 80/16/11 -f 64/13/11 76/15/11 77/16/11 -f 71/13/11 83/15/11 84/16/11 -f 62/13/11 74/15/11 73/16/11 -f 68/13/11 80/15/11 81/16/11 -f 66/14/11 65/13/11 77/15/11 -f 62/14/11 72/13/11 84/15/11 -f 61/13/11 73/15/11 75/16/11 -f 69/13/11 81/15/11 82/16/11 -f 95/20/11 89/21/11 87/22/11 -f 78/23/16 90/24/16 91/25/16 -f 75/26/17 87/22/17 88/27/17 -f 83/28/18 82/29/18 94/19/18 -f 79/30/19 91/25/19 92/31/19 -f 77/32/20 76/33/20 88/27/20 -f 83/34/21 95/20/21 96/35/21 -f 74/36/22 86/37/22 85/38/22 -f 80/39/23 92/31/23 93/18/23 -f 78/40/24 77/41/24 89/21/24 -f 74/42/25 84/43/25 96/35/25 -f 73/44/26 85/38/26 87/22/26 -f 1/45/1 2/1/1 3/3/1 -f 3/45/2 4/1/2 5/3/2 -f 5/45/3 6/1/3 7/3/3 -f 7/45/4 8/1/4 9/3/4 -f 9/45/5 10/1/5 11/3/5 -f 11/45/6 12/1/6 13/3/6 -f 13/45/7 14/1/7 15/3/7 -f 15/45/8 16/1/8 17/3/8 -f 17/45/9 18/1/9 19/3/9 -f 19/45/10 20/1/10 21/3/10 -f 29/10/11 10/2/11 28/4/11 -f 23/45/12 24/1/12 1/3/12 -f 21/45/13 22/1/13 23/3/13 -f 23/7/14 1/46/14 3/47/14 -f 3/47/14 5/48/14 7/5/14 -f 7/5/14 9/49/14 11/50/14 -f 11/50/14 13/51/14 15/52/14 -f 15/52/14 17/53/14 19/6/14 -f 19/6/14 21/54/14 23/7/14 -f 23/7/14 3/47/14 7/5/14 -f 7/5/14 11/50/14 15/52/14 -f 15/52/14 19/6/14 7/5/14 -f 28/10/9 27/4/9 40/9/9 -f 2/2/11 24/1/11 26/10/11 -f 4/2/11 2/1/11 25/10/11 -f 28/10/11 8/2/11 27/4/11 -f 24/2/11 22/1/11 36/10/11 -f 6/2/11 4/1/11 27/10/11 -f 22/2/11 20/1/11 35/10/11 -f 20/2/11 18/1/11 34/10/11 -f 18/2/11 16/1/11 33/10/11 -f 16/2/11 14/1/11 32/10/11 -f 31/10/11 14/2/11 30/4/11 -f 30/10/11 12/2/11 29/4/11 -f 40/9/11 39/8/11 52/12/11 -f 35/10/4 34/4/4 47/9/4 -f 32/10/1 31/4/1 44/9/1 -f 29/10/10 28/4/10 41/9/10 -f 36/10/5 35/4/5 48/9/5 -f 25/10/7 26/4/7 37/9/7 -f 33/10/2 32/4/2 45/9/2 -f 30/10/13 29/4/13 42/9/13 -f 26/10/6 36/4/6 38/9/6 -f 27/10/8 25/4/8 39/9/8 -f 34/10/3 33/4/3 46/9/3 -f 31/10/12 30/4/12 43/9/12 -f 55/12/6 54/11/6 67/14/6 -f 47/9/11 46/8/11 59/12/11 -f 44/9/11 43/8/11 56/12/11 -f 41/9/11 40/8/11 53/12/11 -f 48/9/11 47/8/11 60/12/11 -f 49/12/11 37/9/11 50/11/11 -f 45/9/11 44/8/11 57/12/11 -f 54/12/11 42/9/11 53/11/11 -f 50/12/11 38/9/11 60/11/11 -f 39/9/11 37/8/11 51/12/11 -f 46/9/11 45/8/11 58/12/11 -f 43/9/11 42/8/11 55/12/11 -f 67/14/11 66/13/11 79/16/11 -f 52/12/3 51/11/3 64/14/3 -f 59/12/10 58/11/10 71/14/10 -f 56/12/7 55/11/7 68/14/7 -f 53/12/4 52/11/4 65/14/4 -f 60/12/13 59/11/13 72/14/13 -f 49/12/1 50/11/1 61/14/1 -f 57/12/8 56/11/8 69/14/8 -f 54/12/5 53/11/5 66/14/5 -f 50/12/12 60/11/12 62/14/12 -f 51/12/2 49/11/2 63/14/2 -f 58/12/9 57/11/9 70/14/9 -f 82/55/15 81/17/15 94/19/15 -f 64/14/11 63/13/11 76/16/11 -f 71/14/11 70/13/11 83/16/11 -f 68/14/11 67/13/11 80/16/11 -f 65/14/11 64/13/11 77/16/11 -f 72/14/11 71/13/11 84/16/11 -f 61/14/11 62/13/11 73/16/11 -f 69/14/11 68/13/11 81/16/11 -f 78/16/11 66/14/11 77/15/11 -f 74/16/11 62/14/11 84/15/11 -f 63/14/11 61/13/11 75/16/11 -f 70/14/11 69/13/11 82/16/11 -f 87/22/11 85/38/11 95/20/11 -f 86/37/11 96/35/11 95/20/11 -f 95/20/11 94/19/11 93/18/11 -f 93/18/11 92/31/11 95/20/11 -f 91/25/11 90/24/11 89/21/11 -f 89/21/11 88/27/11 87/22/11 -f 85/38/11 86/37/11 95/20/11 -f 95/20/11 92/31/11 91/25/11 -f 91/25/11 89/21/11 95/20/11 -f 79/56/16 78/23/16 91/25/16 -f 76/57/17 75/26/17 88/27/17 -f 95/20/18 83/28/18 94/19/18 -f 80/58/19 79/30/19 92/31/19 -f 89/21/20 77/32/20 88/27/20 -f 84/59/21 83/34/21 96/35/21 -f 73/60/22 74/36/22 85/38/22 -f 81/61/23 80/39/23 93/18/23 -f 90/24/24 78/40/24 89/21/24 -f 86/37/25 74/42/25 96/35/25 -f 75/62/26 73/44/26 87/22/26 diff --git a/src/main/resources/assets/hbm/models/missileBooster.obj b/src/main/resources/assets/hbm/models/missileBooster.obj deleted file mode 100644 index 1b2478e83..000000000 --- a/src/main/resources/assets/hbm/models/missileBooster.obj +++ /dev/null @@ -1,416 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'carrier_booster.blend' -# www.blender.org -o Cylinder -v 0.000000 1.000000 -0.500000 -v 0.000000 8.000000 -0.500000 -v 0.250000 1.000000 -0.433013 -v 0.250000 8.000000 -0.433013 -v 0.433013 1.000000 -0.250000 -v 0.433013 8.000000 -0.250000 -v 0.500000 1.000000 0.000000 -v 0.500000 8.000000 0.000000 -v 0.433013 1.000000 0.250000 -v 0.433013 8.000000 0.250000 -v 0.250000 1.000000 0.433013 -v 0.250000 8.000000 0.433013 -v 0.000000 1.000000 0.500000 -v 0.000000 8.000000 0.500000 -v -0.250000 1.000000 0.433013 -v -0.250000 8.000000 0.433013 -v -0.433013 1.000000 0.250000 -v -0.433013 8.000000 0.250000 -v -0.500000 1.000000 0.000000 -v -0.500000 8.000000 0.000000 -v -0.433013 1.000000 -0.250000 -v -0.433013 8.000000 -0.250000 -v -0.250000 1.000000 -0.433013 -v -0.250000 8.000000 -0.433013 -v 0.200001 8.500000 -0.346410 -v 0.000001 8.500000 -0.400000 -v 0.346411 8.500000 -0.200000 -v 0.400001 8.500000 0.000000 -v 0.346411 8.500000 0.200000 -v 0.200001 8.500000 0.346410 -v 0.000001 8.500000 0.400000 -v -0.199999 8.500000 0.346410 -v -0.346409 8.500000 0.200000 -v -0.399999 8.500000 0.000000 -v -0.346409 8.500000 -0.200000 -v -0.199999 8.500000 -0.346410 -v 0.037502 9.000000 -0.064952 -v 0.000002 9.000000 -0.075000 -v 0.064954 9.000000 -0.037500 -v 0.075002 9.000000 0.000000 -v 0.064953 9.000000 0.037500 -v 0.037502 9.000000 0.064952 -v 0.000002 9.000000 0.075000 -v -0.037498 9.000000 0.064952 -v -0.064950 9.000000 0.037500 -v -0.074998 9.000000 0.000000 -v -0.064950 9.000000 -0.037500 -v -0.037498 9.000000 -0.064952 -v -0.000000 1.000000 -0.375000 -v 0.187500 1.000000 -0.324760 -v 0.324760 1.000000 -0.187500 -v 0.375000 1.000000 0.000000 -v 0.324760 1.000000 0.187500 -v 0.187500 1.000000 0.324760 -v 0.000000 1.000000 0.375000 -v -0.187500 1.000000 0.324760 -v -0.324759 1.000000 0.187500 -v -0.375000 1.000000 0.000000 -v -0.324760 1.000000 -0.187500 -v -0.187500 1.000000 -0.324759 -v 0.000000 0.000000 -0.500000 -v 0.250000 0.000000 -0.433013 -v 0.433013 0.000000 -0.250000 -v 0.500000 0.000000 0.000000 -v 0.433013 0.000000 0.250000 -v 0.250000 0.000000 0.433013 -v 0.000000 0.000000 0.500000 -v -0.250000 0.000000 0.433013 -v -0.433012 0.000000 0.250000 -v -0.500000 0.000000 0.000000 -v -0.433013 0.000000 -0.250000 -v -0.250000 0.000000 -0.433013 -vt 0.291673 0.852188 -vt 0.261395 0.852188 -vt 0.261395 0.033298 -vt 0.231118 0.852188 -vt 0.231118 0.033298 -vt 0.200840 0.852188 -vt 0.200840 0.033298 -vt 0.170562 0.852188 -vt 0.170563 0.033298 -vt 0.140284 0.852188 -vt 0.140285 0.033298 -vt 0.110006 0.852188 -vt 0.110008 0.033298 -vt 0.079728 0.852188 -vt 0.079730 0.033298 -vt 0.049451 0.852188 -vt 0.049453 0.033298 -vt 0.019173 0.852188 -vt 0.019175 0.033297 -vt 0.382507 0.852188 -vt 0.352229 0.852188 -vt 0.352228 0.033298 -vt 0.321951 0.852188 -vt 0.349201 0.911762 -vt 0.291673 0.033298 -vt 0.321950 0.033298 -vt 0.053237 0.019173 -vt 0.197812 0.911762 -vt 0.187972 0.980827 -vt 0.183430 0.980827 -vt 0.258368 0.911762 -vt 0.379479 0.911762 -vt 0.046423 0.911762 -vt 0.022201 0.911762 -vt 0.076701 0.911762 -vt 0.052478 0.911762 -vt 0.106979 0.911762 -vt 0.082756 0.911762 -vt 0.137256 0.911762 -vt 0.113034 0.911762 -vt 0.167534 0.911762 -vt 0.143312 0.911762 -vt 0.173590 0.911762 -vt 0.318923 0.911762 -vt 0.288645 0.911762 -vt 0.228090 0.911762 -vt 0.726241 0.560416 -vt 0.740920 0.556483 -vt 0.736987 0.571161 -vt 0.339361 0.980827 -vt 0.334819 0.980827 -vt 0.264423 0.911762 -vt 0.278805 0.980827 -vt 0.066861 0.980827 -vt 0.157694 0.980827 -vt 0.153152 0.980827 -vt 0.309083 0.980827 -vt 0.304541 0.980827 -vt 0.248527 0.980827 -vt 0.243986 0.980827 -vt 0.036583 0.980827 -vt 0.032041 0.980827 -vt 0.127416 0.980827 -vt 0.218250 0.980827 -vt 0.213708 0.980827 -vt 0.369639 0.980827 -vt 0.365097 0.980827 -vt 0.097138 0.980827 -vt 0.092596 0.980827 -vt 0.643102 0.894316 -vt 0.613151 0.780289 -vt 0.642667 0.773541 -vt 0.083515 0.019173 -vt 0.106223 0.019173 -vt 0.113792 0.019173 -vt 0.136500 0.019173 -vt 0.144070 0.019173 -vt 0.166778 0.019173 -vt 0.174347 0.019173 -vt 0.197055 0.019173 -vt 0.295457 0.019173 -vt 0.265180 0.019173 -vt 0.287888 0.019173 -vt 0.204625 0.019173 -vt 0.227333 0.019173 -vt 0.325735 0.019173 -vt 0.348443 0.019173 -vt 0.234902 0.019173 -vt 0.257610 0.019173 -vt 0.382505 0.033297 -vt 0.356012 0.019173 -vt 0.022960 0.019173 -vt 0.797384 0.255928 -vt 0.684386 0.225651 -vt 0.725746 0.184290 -vt 0.710258 0.883441 -vt 0.702692 0.765789 -vt 0.732955 0.764817 -vt 0.822808 0.894316 -vt 0.852759 0.780289 -vt 0.881781 0.788917 -vt 0.778254 0.885625 -vt 0.793354 0.768701 -vt 0.823243 0.773541 -vt 0.621335 0.900787 -vt 0.584128 0.788917 -vt 0.687655 0.885625 -vt 0.672555 0.768701 -vt 0.800671 0.889255 -vt 0.755651 0.883441 -vt 0.763217 0.765789 -vt 0.600028 0.908641 -vt 0.555719 0.799390 -vt 0.665239 0.889255 -vt 0.732955 0.882712 -vt 0.844574 0.900787 -vt 0.910190 0.799390 -vt 0.324979 0.911762 -vt 0.075946 0.019173 -vt 0.234145 0.911762 -vt 0.355257 0.911762 -vt 0.294701 0.911762 -vt 0.203868 0.911762 -vt 0.732445 0.571161 -vt 0.728512 0.568891 -vt 0.726241 0.564957 -vt 0.728512 0.556483 -vt 0.732445 0.554212 -vt 0.736987 0.554212 -vt 0.743191 0.560416 -vt 0.743191 0.564957 -vt 0.740920 0.568891 -vt 0.274263 0.980827 -vt 0.062319 0.980827 -vt 0.122875 0.980827 -vt 0.318165 0.019173 -vt 0.378720 0.019173 -vt 0.045668 0.019173 -vt 0.756024 0.184290 -vt 0.782245 0.199429 -vt 0.797384 0.225651 -vt 0.782245 0.282150 -vt 0.756024 0.297288 -vt 0.725746 0.297288 -vt 0.699525 0.282150 -vt 0.684386 0.255928 -vt 0.699525 0.199429 -vt 0.865881 0.908641 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn -0.694300 0.189700 -0.694300 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.000000 -1.000000 0.000000 -vn 0.818100 0.531700 0.219200 -vn 0.694300 0.189700 -0.694300 -vn -0.948400 0.189700 -0.254100 -vn -0.948400 0.189700 0.254100 -vn -0.694300 0.189700 0.694300 -vn -0.254100 0.189700 0.948400 -vn 0.254100 0.189700 0.948400 -vn 0.694300 0.189700 0.694300 -vn 0.948400 0.189700 0.254100 -vn -0.254100 0.189700 -0.948400 -vn 0.254100 0.189700 -0.948400 -vn 0.948400 0.189700 -0.254100 -vn 0.000000 1.000000 -0.000000 -vn -0.598900 0.531700 -0.598900 -vn 0.219200 0.531700 -0.818100 -vn -0.598900 0.531700 0.598900 -vn 0.598900 0.531700 0.598900 -vn -0.219200 0.531700 -0.818100 -vn 0.598900 0.531700 -0.598900 -vn -0.818100 0.531700 0.219200 -vn 0.219200 0.531700 0.818100 -vn 0.818100 0.531700 -0.219200 -vn -0.818100 0.531700 -0.219200 -vn -0.219200 0.531700 0.818100 -vn -0.257000 0.119900 0.959000 -vn 0.959000 0.119900 0.257000 -vn -0.702000 0.119900 -0.702000 -vn 0.257000 0.119900 -0.959000 -vn -0.702000 0.119900 0.702000 -vn 0.702000 0.119900 0.702000 -vn -0.257000 0.119900 -0.959000 -vn 0.702000 0.119900 -0.702000 -vn -0.959000 0.119900 0.257000 -vn 0.257000 0.119900 0.959000 -vn 0.959000 0.119900 -0.257000 -vn -0.959000 0.119900 -0.257000 -vn 0.000000 1.000000 0.000100 -vn 0.000000 1.000000 -0.000100 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/12/7 16/14/7 15/15/7 -f 16/14/8 18/16/8 17/17/8 -f 18/16/9 20/18/9 19/19/9 -f 20/20/10 22/21/10 21/22/10 -f 24/23/11 22/21/11 35/24/11 -f 24/23/12 2/1/12 1/25/12 -f 22/21/13 24/23/13 23/26/13 -f 15/15/14 17/17/14 57/27/14 -f 28/28/15 40/29/15 41/30/15 -f 6/4/16 4/2/16 25/31/16 -f 22/21/17 20/20/17 34/32/17 -f 18/16/18 33/33/18 34/34/18 -f 16/14/19 32/35/19 33/36/19 -f 14/12/20 31/37/20 32/38/20 -f 12/10/21 30/39/21 31/40/21 -f 10/8/22 29/41/22 30/42/22 -f 8/6/23 28/28/23 29/43/23 -f 2/1/24 24/23/24 36/44/24 -f 4/2/25 2/1/25 26/45/25 -f 8/6/26 6/4/26 27/46/26 -f 47/47/27 43/48/27 39/49/27 -f 35/24/28 47/50/28 48/51/28 -f 25/52/29 26/45/29 38/53/29 -f 33/36/30 32/35/30 44/54/30 -f 29/41/31 41/55/31 42/56/31 -f 36/44/32 48/57/32 38/58/32 -f 25/31/33 37/59/33 39/60/33 -f 33/33/34 45/61/34 46/62/34 -f 31/40/35 30/39/35 42/63/35 -f 27/46/36 39/64/36 40/65/36 -f 34/32/37 46/66/37 47/67/37 -f 31/37/38 43/68/38 44/69/38 -f 56/70/39 68/71/39 67/72/39 -f 15/15/14 56/73/14 55/74/14 -f 13/13/14 55/75/14 54/76/14 -f 11/11/14 54/77/14 53/78/14 -f 9/9/14 53/79/14 52/80/14 -f 23/26/14 1/25/14 49/81/14 -f 3/3/14 50/82/14 49/83/14 -f 7/7/14 52/84/14 51/85/14 -f 23/26/14 60/86/14 59/87/14 -f 5/5/14 51/88/14 50/89/14 -f 19/90/14 21/22/14 59/91/14 -f 17/17/14 19/19/14 58/92/14 -f 64/93/14 70/94/14 72/95/14 -f 53/96/40 65/97/40 64/98/40 -f 60/99/41 72/100/41 71/101/41 -f 50/102/42 62/103/42 61/104/42 -f 57/105/43 69/106/43 68/71/43 -f 54/107/44 66/108/44 65/97/44 -f 60/99/45 49/109/45 61/104/45 -f 50/102/46 51/110/46 63/111/46 -f 57/105/47 58/112/47 70/113/47 -f 54/107/48 55/114/48 67/72/48 -f 52/115/49 64/98/49 63/111/49 -f 59/116/50 71/101/50 70/117/50 -f 1/25/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 13/13/7 14/12/7 15/15/7 -f 15/15/8 16/14/8 17/17/8 -f 17/17/9 18/16/9 19/19/9 -f 19/90/10 20/20/10 21/22/10 -f 36/118/11 24/23/11 35/24/11 -f 23/26/12 24/23/12 1/25/12 -f 21/22/13 22/21/13 23/26/13 -f 56/119/14 15/15/14 57/27/14 -f 29/43/15 28/28/15 41/30/15 -f 27/120/16 6/4/16 25/31/16 -f 35/121/17 22/21/17 34/32/17 -f 20/18/18 18/16/18 34/34/18 -f 18/16/19 16/14/19 33/36/19 -f 16/14/20 14/12/20 32/38/20 -f 14/12/21 12/10/21 31/40/21 -f 12/10/22 10/8/22 30/42/22 -f 10/8/23 8/6/23 29/43/23 -f 26/122/24 2/1/24 36/44/24 -f 25/52/25 4/2/25 26/45/25 -f 28/123/26 8/6/26 27/46/26 -f 39/49/51 37/124/51 38/125/51 -f 38/125/51 48/126/51 47/47/51 -f 47/47/27 46/127/27 43/48/27 -f 45/128/52 44/129/52 43/48/52 -f 43/48/51 42/130/51 41/131/51 -f 41/131/27 40/132/27 43/48/27 -f 39/49/27 38/125/27 47/47/27 -f 46/127/27 45/128/27 43/48/27 -f 43/48/27 40/132/27 39/49/27 -f 36/118/28 35/24/28 48/51/28 -f 37/133/29 25/52/29 38/53/29 -f 45/134/30 33/36/30 44/54/30 -f 30/42/31 29/41/31 42/56/31 -f 26/122/32 36/44/32 38/58/32 -f 27/120/33 25/31/33 39/60/33 -f 34/34/34 33/33/34 46/62/34 -f 43/135/35 31/40/35 42/63/35 -f 28/123/36 27/46/36 40/65/36 -f 35/121/37 34/32/37 47/67/37 -f 32/38/38 31/37/38 44/69/38 -f 55/114/39 56/70/39 67/72/39 -f 13/13/14 15/15/14 55/74/14 -f 11/11/14 13/13/14 54/76/14 -f 9/9/14 11/11/14 53/78/14 -f 7/7/14 9/9/14 52/80/14 -f 60/136/14 23/26/14 49/81/14 -f 1/25/14 3/3/14 49/83/14 -f 5/5/14 7/7/14 51/85/14 -f 21/22/14 23/26/14 59/87/14 -f 3/3/14 5/5/14 50/89/14 -f 58/137/14 19/90/14 59/91/14 -f 57/138/14 17/17/14 58/92/14 -f 72/95/14 61/139/14 62/140/14 -f 62/140/14 63/141/14 64/93/14 -f 64/93/14 65/142/14 66/143/14 -f 66/143/14 67/144/14 68/145/14 -f 68/145/14 69/146/14 70/94/14 -f 70/94/14 71/147/14 72/95/14 -f 72/95/14 62/140/14 64/93/14 -f 64/93/14 66/143/14 68/145/14 -f 68/145/14 70/94/14 64/93/14 -f 52/115/40 53/96/40 64/98/40 -f 59/116/41 60/99/41 71/101/41 -f 49/109/42 50/102/42 61/104/42 -f 56/70/43 57/105/43 68/71/43 -f 53/96/44 54/107/44 65/97/44 -f 72/100/45 60/99/45 61/104/45 -f 62/103/46 50/102/46 63/111/46 -f 69/106/47 57/105/47 70/113/47 -f 66/108/48 54/107/48 67/72/48 -f 51/110/49 52/115/49 63/111/49 -f 58/148/50 59/116/50 70/117/50 diff --git a/src/main/resources/assets/hbm/models/missileCarrier.obj b/src/main/resources/assets/hbm/models/missileCarrier.obj deleted file mode 100644 index 5f3734ea0..000000000 --- a/src/main/resources/assets/hbm/models/missileCarrier.obj +++ /dev/null @@ -1,1148 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'carrier_main.blend' -# www.blender.org -o Cylinder -v 0.000000 1.500000 -0.750000 -v 0.000000 5.000000 -0.750000 -v 0.375000 1.500000 -0.649519 -v 0.375000 5.000000 -0.649519 -v 0.649519 1.500000 -0.375000 -v 0.649519 5.000000 -0.375000 -v 0.750000 1.500000 0.000000 -v 0.750000 5.000000 0.000000 -v 0.649519 1.500000 0.375000 -v 0.649519 5.000000 0.375000 -v 0.375000 1.500000 0.649519 -v 0.375000 5.000000 0.649519 -v 0.000000 1.500000 0.750000 -v 0.000000 5.000000 0.750000 -v -0.375000 1.500000 0.649519 -v -0.375000 5.000000 0.649519 -v -0.649519 1.500000 0.375000 -v -0.649519 5.000000 0.375000 -v -0.750000 1.500000 0.000000 -v -0.750000 5.000000 0.000000 -v -0.649519 1.500000 -0.375000 -v -0.649519 5.000000 -0.375000 -v -0.375000 1.500000 -0.649519 -v -0.375000 5.000000 -0.649519 -v -0.000000 1.250000 -0.562500 -v 0.281250 1.250000 -0.487139 -v 0.487139 1.250000 -0.281250 -v 0.562500 1.250000 0.000000 -v 0.487139 1.250000 0.281250 -v 0.281250 1.250000 0.487139 -v 0.000000 1.250000 0.562500 -v -0.281250 1.250000 0.487139 -v -0.487139 1.250000 0.281250 -v -0.562500 1.250000 0.000000 -v -0.487140 1.250000 -0.281250 -v -0.281250 1.250000 -0.487139 -v -0.000000 1.000000 -0.562500 -v 0.281250 1.000000 -0.487139 -v 0.487139 1.000000 -0.281250 -v 0.562500 1.000000 0.000000 -v 0.487139 1.000000 0.281250 -v 0.281250 1.000000 0.487139 -v -0.000000 1.000000 0.562500 -v -0.281250 1.000000 0.487139 -v -0.487139 1.000000 0.281250 -v -0.562500 1.000000 0.000000 -v -0.487140 1.000000 -0.281250 -v -0.281250 1.000000 -0.487139 -v -0.000000 0.750000 -0.262500 -v 0.131250 0.750000 -0.227332 -v 0.227332 0.750000 -0.131250 -v 0.262500 0.750000 0.000000 -v 0.227332 0.750000 0.131250 -v 0.131250 0.750000 0.227332 -v -0.000000 0.750000 0.262500 -v -0.131250 0.750000 0.227332 -v -0.227332 0.750000 0.131250 -v -0.262500 0.750000 0.000000 -v -0.227332 0.750000 -0.131250 -v -0.131250 0.750000 -0.227332 -v 0.000000 0.500000 -0.450000 -v 0.225000 0.500000 -0.389711 -v 0.389711 0.500000 -0.225000 -v 0.450000 0.500000 0.000000 -v 0.389711 0.500000 0.225000 -v 0.225000 0.500000 0.389711 -v 0.000000 0.500000 0.450000 -v -0.225000 0.500000 0.389712 -v -0.389711 0.500000 0.225000 -v -0.450000 0.500000 0.000000 -v -0.389712 0.500000 -0.225000 -v -0.225000 0.500000 -0.389711 -v -0.318750 0.000000 -0.552091 -v -0.552091 0.000000 -0.318750 -v -0.637500 0.000000 0.000000 -v -0.552091 0.000000 0.318750 -v -0.318750 0.000000 0.552091 -v 0.000000 0.000000 0.637500 -v 0.318750 0.000000 0.552091 -v 0.552091 0.000000 0.318750 -v 0.637500 0.000000 0.000000 -v 0.552091 0.000000 -0.318750 -v 0.318750 0.000000 -0.552091 -v 0.000000 0.000000 -0.637500 -v -0.270938 0.000000 -0.469277 -v 0.000000 0.000000 -0.541875 -v -0.469278 0.000000 -0.270937 -v -0.541875 0.000000 0.000000 -v -0.469277 0.000000 0.270938 -v -0.270937 0.000000 0.469278 -v 0.000000 0.000000 0.541875 -v 0.270938 0.000000 0.469278 -v 0.469278 0.000000 0.270938 -v 0.541875 0.000000 0.000000 -v 0.469278 0.000000 -0.270938 -v 0.270938 0.000000 -0.469278 -v -0.054187 0.750000 -0.093855 -v 0.000000 0.750000 -0.108375 -v -0.093855 0.750000 -0.054187 -v -0.108375 0.750000 0.000000 -v -0.093855 0.750000 0.054188 -v -0.054187 0.750000 0.093856 -v 0.000000 0.750000 0.108375 -v 0.054188 0.750000 0.093856 -v 0.093856 0.750000 0.054188 -v 0.108375 0.750000 0.000000 -v 0.093856 0.750000 -0.054187 -v 0.054188 0.750000 -0.093855 -v 0.375000 7.000000 -0.649519 -v 0.000000 7.000000 -0.750000 -v 0.649519 7.000000 -0.375000 -v 0.750000 7.000000 0.000000 -v 0.649519 7.000000 0.375000 -v 0.375000 7.000000 0.649519 -v 0.000000 7.000000 0.750000 -v -0.375000 7.000000 0.649519 -v -0.649519 7.000000 0.375000 -v -0.750000 7.000000 0.000000 -v -0.649519 7.000000 -0.375000 -v -0.375000 7.000000 -0.649519 -v 0.375000 10.500000 -0.649519 -v 0.000000 10.500000 -0.750000 -v 0.649519 10.500000 -0.375000 -v 0.750000 10.500000 0.000000 -v 0.649519 10.500000 0.375000 -v 0.375000 10.500000 0.649519 -v 0.000000 10.500000 0.750000 -v -0.374999 10.500000 0.649519 -v -0.649519 10.500000 0.375000 -v -0.750000 10.500000 0.000000 -v -0.649519 10.500000 -0.375000 -v -0.375000 10.500000 -0.649519 -v -0.000000 5.000000 -0.787500 -v 0.393750 5.000000 -0.681995 -v 0.681995 5.000000 -0.393750 -v 0.787500 5.000000 0.000000 -v 0.681995 5.000000 0.393750 -v 0.393750 5.000000 0.681995 -v 0.000000 5.000000 0.787500 -v -0.393750 5.000000 0.681995 -v -0.681995 5.000000 0.393750 -v -0.787500 5.000000 0.000000 -v -0.681995 5.000000 -0.393750 -v -0.393750 5.000000 -0.681995 -v 0.393750 7.000000 -0.681995 -v 0.000000 7.000000 -0.787500 -v 0.681995 7.000000 -0.393750 -v 0.787500 7.000000 0.000000 -v 0.681995 7.000000 0.393750 -v 0.393750 7.000000 0.681995 -v 0.000000 7.000000 0.787500 -v -0.393750 7.000000 0.681995 -v -0.681995 7.000000 0.393750 -v -0.787500 7.000000 0.000000 -v -0.681995 7.000000 -0.393750 -v -0.393750 7.000000 -0.681995 -v 0.562501 12.000000 -0.974279 -v 0.000001 12.000000 -1.125000 -v 0.974279 12.000000 -0.562500 -v 1.125000 12.000000 -0.000000 -v 0.974279 12.000000 0.562500 -v 0.562501 12.000000 0.974278 -v 0.000001 12.000000 1.125000 -v -0.562499 12.000000 0.974279 -v -0.974278 12.000000 0.562500 -v -1.125000 12.000000 0.000000 -v -0.974278 12.000000 -0.562499 -v -0.562500 12.000000 -0.974278 -v 0.562500 13.500000 -0.974279 -v 0.000000 13.500000 -1.125000 -v 0.974279 13.500000 -0.562500 -v 1.125000 13.500000 -0.000000 -v 0.974279 13.500000 0.562500 -v 0.562500 13.500000 0.974278 -v 0.000000 13.500000 1.125000 -v -0.562499 13.500000 0.974279 -v -0.974278 13.500000 0.562500 -v -1.125000 13.500000 0.000000 -v -0.974279 13.500000 -0.562499 -v -0.562500 13.500000 -0.974278 -v 0.140625 15.500000 -0.243570 -v 0.000000 15.500000 -0.281250 -v 0.243570 15.500000 -0.140625 -v 0.281250 15.500000 0.000000 -v 0.243570 15.500000 0.140625 -v 0.140625 15.500000 0.243570 -v 0.000000 15.500000 0.281250 -v -0.140625 15.500000 0.243570 -v -0.243569 15.500000 0.140625 -v -0.281250 15.500000 0.000000 -v -0.243569 15.500000 -0.140625 -v -0.140625 15.500000 -0.243569 -v 0.021094 15.750000 -0.036535 -v 0.000000 15.750000 -0.042187 -v 0.036536 15.750000 -0.021094 -v 0.042188 15.750000 0.000000 -v 0.036536 15.750000 0.021094 -v 0.021094 15.750000 0.036536 -v 0.000001 15.750000 0.042188 -v -0.021093 15.750000 0.036536 -v -0.036535 15.750000 0.021094 -v -0.042187 15.750000 0.000000 -v -0.036535 15.750000 -0.021094 -v -0.021093 15.750000 -0.036535 -vt 0.301507 0.312696 -vt 0.272488 0.312697 -vt 0.272481 0.051083 -vt 0.271037 0.312697 -vt 0.242019 0.312697 -vt 0.242011 0.051084 -vt 0.240568 0.312697 -vt 0.211549 0.312698 -vt 0.211542 0.051085 -vt 0.210098 0.312698 -vt 0.181079 0.312699 -vt 0.181072 0.051086 -vt 0.179628 0.312699 -vt 0.150609 0.312700 -vt 0.150602 0.051086 -vt 0.149158 0.312700 -vt 0.120140 0.312701 -vt 0.120133 0.051087 -vt 0.118689 0.312701 -vt 0.089670 0.312702 -vt 0.089662 0.051088 -vt 0.088219 0.312702 -vt 0.059200 0.312702 -vt 0.059193 0.051089 -vt 0.057749 0.312702 -vt 0.028730 0.312703 -vt 0.028723 0.051090 -vt 0.392917 0.312693 -vt 0.363898 0.312694 -vt 0.363890 0.051081 -vt 0.331977 0.312695 -vt 0.302958 0.312696 -vt 0.302951 0.051082 -vt 0.362447 0.312694 -vt 0.333428 0.312695 -vt 0.333420 0.051081 -vt 0.240560 0.051084 -vt 0.215168 0.028010 -vt 0.614773 0.847825 -vt 0.614773 0.866512 -vt 0.593009 0.866512 -vt 0.362439 0.051081 -vt 0.337047 0.028006 -vt 0.245638 0.028009 -vt 0.267402 0.028008 -vt 0.367517 0.028006 -vt 0.389281 0.028005 -vt 0.032349 0.028015 -vt 0.054113 0.028014 -vt 0.062820 0.028014 -vt 0.084584 0.028013 -vt 0.093289 0.028013 -vt 0.115053 0.028012 -vt 0.123759 0.028012 -vt 0.145523 0.028012 -vt 0.154229 0.028011 -vt 0.175993 0.028011 -vt 0.210091 0.051085 -vt 0.184699 0.028010 -vt 0.306577 0.028007 -vt 0.328341 0.028006 -vt 0.301500 0.051082 -vt 0.276108 0.028008 -vt 0.608970 0.895119 -vt 0.549481 0.847825 -vt 0.549481 0.866512 -vt 0.527717 0.866512 -vt 0.440661 0.847825 -vt 0.440661 0.866512 -vt 0.418896 0.866512 -vt 0.636537 0.847825 -vt 0.636537 0.866512 -vt 0.571245 0.847825 -vt 0.571245 0.866512 -vt 0.462425 0.847825 -vt 0.462425 0.866512 -vt 0.505953 0.847825 -vt 0.505953 0.866512 -vt 0.484189 0.866512 -vt 0.658302 0.847825 -vt 0.658302 0.866512 -vt 0.593009 0.847825 -vt 0.484189 0.847825 -vt 0.527717 0.847825 -vt 0.680066 0.847825 -vt 0.680066 0.866512 -vt 0.253796 0.824518 -vt 0.275183 0.833911 -vt 0.265791 0.848572 -vt 0.543677 0.895119 -vt 0.533521 0.895119 -vt 0.434857 0.895119 -vt 0.630734 0.895119 -vt 0.620577 0.895119 -vt 0.565441 0.895119 -vt 0.555285 0.895119 -vt 0.456621 0.895119 -vt 0.446464 0.895119 -vt 0.500149 0.895119 -vt 0.652498 0.895119 -vt 0.642341 0.895119 -vt 0.587206 0.895119 -vt 0.577049 0.895119 -vt 0.478385 0.895119 -vt 0.468228 0.895119 -vt 0.521913 0.895119 -vt 0.674262 0.895119 -vt 0.664105 0.895119 -vt 0.224264 0.879299 -vt 0.238474 0.916598 -vt 0.214722 0.923249 -vt 0.217381 0.856977 -vt 0.226504 0.852514 -vt 0.239903 0.871647 -vt 0.178528 0.861344 -vt 0.188643 0.862267 -vt 0.190158 0.885576 -vt 0.131998 0.833070 -vt 0.114525 0.848572 -vt 0.105133 0.833911 -vt 0.229094 0.850940 -vt 0.237259 0.844899 -vt 0.253900 0.861291 -vt 0.201788 0.861344 -vt 0.207497 0.883993 -vt 0.140795 0.842882 -vt 0.126416 0.861291 -vt 0.162935 0.856977 -vt 0.156052 0.879299 -vt 0.140413 0.871647 -vt 0.239521 0.842882 -vt 0.246458 0.835463 -vt 0.214549 0.858057 -vt 0.151222 0.850940 -vt 0.175547 0.860795 -vt 0.172819 0.883993 -vt 0.119685 0.905758 -vt 0.099857 0.891087 -vt 0.297304 0.873069 -vt 0.280459 0.891087 -vt 0.141842 0.916598 -vt 0.083012 0.873069 -vt 0.190158 0.925490 -vt 0.165594 0.923249 -vt 0.260631 0.905758 -vt 0.310610 0.852299 -vt 0.262003 0.912773 -vt 0.243170 0.921987 -vt 0.792469 0.894307 -vt 0.854840 0.876912 -vt 0.856480 0.880772 -vt 0.315425 0.857581 -vt 0.161951 0.929398 -vt 0.141761 0.923745 -vt 0.114092 0.910208 -vt 0.097238 0.897737 -vt 0.238554 0.923745 -vt 0.218365 0.929398 -vt 0.301084 0.879135 -vt 0.137146 0.921987 -vt 0.118313 0.912773 -vt 0.093550 0.894450 -vt 0.079232 0.879135 -vt 0.213507 0.930293 -vt 0.192628 0.932198 -vt 0.283078 0.897737 -vt 0.266224 0.910208 -vt 0.076200 0.875235 -vt 0.064891 0.857581 -vt 0.187688 0.932198 -vt 0.166809 0.930293 -vt 0.828610 0.623227 -vt 0.832242 0.609674 -vt 0.842163 0.619596 -vt 0.910617 0.942823 -vt 0.878470 0.886616 -vt 0.881809 0.884080 -vt 0.940197 0.913601 -vt 0.884386 0.880772 -vt 0.886026 0.876912 -vt 0.849644 0.950787 -vt 0.866275 0.888209 -vt 0.870433 0.888752 -vt 0.800670 0.913603 -vt 0.859056 0.884080 -vt 0.951365 0.873551 -vt 0.948397 0.894305 -vt 0.870433 0.953503 -vt 0.874591 0.888209 -vt 0.813551 0.930145 -vt 0.862396 0.886616 -vt 0.789500 0.873552 -vt 0.854246 0.872761 -vt 0.891223 0.950787 -vt 0.927315 0.930144 -vt 0.830249 0.942823 -vt 0.088223 0.467610 -vt 0.088231 0.729223 -vt 0.059212 0.729224 -vt 0.059205 0.467611 -vt 0.058479 0.464903 -vt 0.088949 0.464902 -vt 0.028735 0.467612 -vt 0.028009 0.464904 -vt 0.363902 0.467602 -vt 0.363177 0.464895 -vt 0.393646 0.464894 -vt 0.529458 0.028005 -vt 0.536713 0.143348 -vt 0.493184 0.143348 -vt 0.179632 0.467607 -vt 0.179640 0.729221 -vt 0.150621 0.729221 -vt 0.331981 0.467603 -vt 0.331988 0.729216 -vt 0.302969 0.729217 -vt 0.271042 0.467605 -vt 0.271049 0.729219 -vt 0.242030 0.729220 -vt 0.057754 0.467611 -vt 0.057762 0.729224 -vt 0.028743 0.729225 -vt 0.149163 0.467608 -vt 0.149170 0.729221 -vt 0.120151 0.729222 -vt 0.240572 0.467606 -vt 0.240579 0.729219 -vt 0.211560 0.729220 -vt 0.392921 0.467601 -vt 0.392928 0.729214 -vt 0.363909 0.729215 -vt 0.118693 0.467609 -vt 0.118700 0.729222 -vt 0.089681 0.729223 -vt 0.210102 0.467607 -vt 0.210109 0.729219 -vt 0.181090 0.729220 -vt 0.362451 0.467602 -vt 0.362459 0.729216 -vt 0.333440 0.729217 -vt 0.301511 0.467604 -vt 0.301519 0.729218 -vt 0.272500 0.729219 -vt 0.180354 0.315407 -vt 0.180358 0.464900 -vt 0.149888 0.464901 -vt 0.210823 0.315406 -vt 0.210828 0.464899 -vt 0.332703 0.315402 -vt 0.332707 0.464896 -vt 0.302237 0.464897 -vt 0.302233 0.315403 -vt 0.271767 0.464897 -vt 0.241293 0.315405 -vt 0.241297 0.464898 -vt 0.363172 0.315401 -vt 0.271763 0.315404 -vt 0.393642 0.315401 -vt 0.058475 0.315410 -vt 0.088944 0.315409 -vt 0.119414 0.315408 -vt 0.119418 0.464902 -vt 0.149884 0.315407 -vt 0.089674 0.467610 -vt 0.120144 0.467609 -vt 0.150614 0.467608 -vt 0.181083 0.467607 -vt 0.211553 0.467607 -vt 0.242023 0.467606 -vt 0.272493 0.467605 -vt 0.302962 0.467604 -vt 0.333432 0.467603 -vt 0.028005 0.315411 -vt 0.754354 0.143348 -vt 0.754354 0.255468 -vt 0.710826 0.255468 -vt 0.660042 0.028005 -vt 0.667297 0.143348 -vt 0.623769 0.143348 -vt 0.877684 0.028005 -vt 0.884939 0.143348 -vt 0.841410 0.143348 -vt 0.790627 0.028005 -vt 0.797882 0.143348 -vt 0.485930 0.028006 -vt 0.449656 0.143348 -vt 0.587495 0.028005 -vt 0.616514 0.028005 -vt 0.747099 0.028005 -vt 0.710826 0.143348 -vt 0.935722 0.028005 -vt 0.964740 0.028005 -vt 0.971995 0.143348 -vt 0.572986 0.028005 -vt 0.580241 0.143348 -vt 0.703571 0.028005 -vt 0.892193 0.028005 -vt 0.921212 0.028005 -vt 0.928467 0.143348 -vt 0.834155 0.028005 -vt 0.580241 0.255468 -vt 0.623769 0.255468 -vt 0.607446 0.416897 -vt 0.971995 0.255468 -vt 0.928467 0.255468 -vt 0.536713 0.255468 -vt 0.667297 0.255468 -vt 0.884939 0.255468 -vt 0.841410 0.255468 -vt 0.797882 0.255468 -vt 0.493185 0.255468 -vt 0.449656 0.255468 -vt 0.602821 0.442335 -vt 0.601189 0.442335 -vt 0.738030 0.416897 -vt 0.727149 0.416897 -vt 0.955672 0.416897 -vt 0.563918 0.416897 -vt 0.553036 0.416897 -vt 0.694502 0.416897 -vt 0.683621 0.416897 -vt 0.912144 0.416897 -vt 0.825087 0.416897 -vt 0.814205 0.416897 -vt 0.520390 0.416897 -vt 0.509508 0.416897 -vt 0.650974 0.416897 -vt 0.640092 0.416897 -vt 0.868616 0.416897 -vt 0.781559 0.416897 -vt 0.476861 0.416897 -vt 0.465980 0.416897 -vt 0.919680 0.621180 -vt 0.914404 0.619766 -vt 0.918266 0.615904 -vt 0.733406 0.442335 -vt 0.731774 0.442335 -vt 0.951047 0.442335 -vt 0.949415 0.442335 -vt 0.559293 0.442335 -vt 0.557661 0.442335 -vt 0.689878 0.442335 -vt 0.901262 0.416897 -vt 0.907519 0.442335 -vt 0.820462 0.442336 -vt 0.515765 0.442335 -vt 0.514133 0.442335 -vt 0.646349 0.442335 -vt 0.857733 0.416897 -vt 0.863991 0.442336 -vt 0.776934 0.442335 -vt 0.775302 0.442335 -vt 0.472237 0.442335 -vt 0.271030 0.051083 -vt 0.179621 0.051086 -vt 0.149151 0.051087 -vt 0.118681 0.051087 -vt 0.088212 0.051088 -vt 0.057741 0.051089 -vt 0.392909 0.051080 -vt 0.331969 0.051081 -vt 0.236932 0.028009 -vt 0.358811 0.028006 -vt 0.206463 0.028010 -vt 0.297872 0.028007 -vt 0.598813 0.895119 -vt 0.418896 0.847825 -vt 0.248318 0.833070 -vt 0.424700 0.895119 -vt 0.489993 0.895119 -vt 0.511757 0.895119 -vt 0.126520 0.824518 -vt 0.191673 0.862267 -vt 0.133858 0.835463 -vt 0.153812 0.852514 -vt 0.204769 0.860795 -vt 0.143057 0.844899 -vt 0.165767 0.858056 -vt 0.069706 0.852299 -vt 0.304116 0.875235 -vt 0.286766 0.894450 -vt 0.840066 0.623227 -vt 0.836435 0.625324 -vt 0.832242 0.625324 -vt 0.826513 0.619596 -vt 0.826513 0.615403 -vt 0.828610 0.611771 -vt 0.836435 0.609674 -vt 0.840066 0.611771 -vt 0.842163 0.615403 -vt 0.886619 0.872761 -vt 0.500439 0.028005 -vt 0.631024 0.028005 -vt 0.848665 0.028005 -vt 0.761608 0.028005 -vt 0.456911 0.028006 -vt 0.718080 0.028005 -vt 0.543967 0.028005 -vt 0.674552 0.028005 -vt 0.805137 0.028005 -vt 0.596564 0.416897 -vt 0.944790 0.416897 -vt 0.770677 0.416897 -vt 0.919680 0.616720 -vt 0.920496 0.618134 -vt 0.920496 0.619766 -vt 0.918266 0.621996 -vt 0.916634 0.621996 -vt 0.915220 0.621180 -vt 0.914404 0.618134 -vt 0.915220 0.616720 -vt 0.916634 0.615904 -vt 0.688245 0.442335 -vt 0.905886 0.442335 -vt 0.818830 0.442336 -vt 0.644717 0.442335 -vt 0.862359 0.442336 -vt 0.470604 0.442335 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.782200 -0.586700 -0.209600 -vn -0.572600 -0.586700 -0.572600 -vn 0.572600 -0.586700 -0.572600 -vn -0.782200 -0.586700 -0.209600 -vn -0.782200 -0.586700 0.209600 -vn -0.572600 -0.586700 0.572600 -vn -0.209600 -0.586700 0.782200 -vn 0.209600 -0.586700 0.782200 -vn 0.572600 -0.586700 0.572600 -vn 0.782200 -0.586700 0.209600 -vn -0.209600 -0.586700 -0.782200 -vn 0.209600 -0.586700 -0.782200 -vn 0.169100 -0.757200 0.631000 -vn -0.782200 0.586700 0.209600 -vn 0.631000 -0.757200 -0.169100 -vn -0.631000 -0.757200 -0.169100 -vn -0.169100 -0.757200 0.631000 -vn 0.631000 -0.757200 0.169100 -vn -0.461900 -0.757200 -0.461900 -vn 0.169100 -0.757200 -0.631000 -vn -0.461900 -0.757200 0.461900 -vn 0.461900 -0.757200 0.461900 -vn -0.169100 -0.757200 -0.631000 -vn 0.461900 -0.757200 -0.461900 -vn -0.631000 -0.757200 0.169100 -vn 0.664800 0.340600 0.664800 -vn 0.209600 0.586700 0.782200 -vn 0.782200 0.586700 -0.209600 -vn -0.782200 0.586700 -0.209600 -vn -0.209600 0.586700 0.782200 -vn 0.782200 0.586700 0.209600 -vn -0.572600 0.586700 -0.572600 -vn 0.209600 0.586700 -0.782200 -vn -0.572600 0.586700 0.572600 -vn 0.572600 0.586700 0.572600 -vn -0.209600 0.586700 -0.782200 -vn 0.572600 0.586700 -0.572600 -vn -0.243300 0.340600 -0.908200 -vn -0.664800 0.340600 0.664800 -vn 0.243300 0.340600 -0.908200 -vn -0.664800 0.340600 -0.664800 -vn 0.908200 0.340600 0.243300 -vn -0.243300 0.340600 0.908200 -vn -0.908200 0.340600 -0.243300 -vn 0.908200 0.340600 -0.243300 -vn 0.243300 0.340600 0.908200 -vn -0.908200 0.340600 0.243300 -vn 0.000000 -1.000000 0.000000 -vn 0.664800 0.340600 -0.664800 -vn 0.617400 -0.487500 -0.617400 -vn -0.226000 -0.487500 0.843400 -vn 0.617400 -0.487500 0.617400 -vn -0.843400 -0.487500 -0.226000 -vn 0.226000 -0.487500 -0.843400 -vn 0.843400 -0.487500 0.226000 -vn -0.843400 -0.487500 0.226000 -vn -0.226000 -0.487500 -0.843400 -vn 0.843400 -0.487500 -0.226000 -vn -0.617400 -0.487500 0.617400 -vn 0.226000 -0.487500 0.843400 -vn -0.617400 -0.487500 -0.617400 -vn 0.000000 1.000000 0.000000 -vn -0.687300 -0.234700 0.687400 -vn 0.687400 -0.234700 0.687300 -vn -0.251600 -0.234700 -0.938900 -vn 0.687400 -0.234700 -0.687300 -vn -0.938900 -0.234700 0.251600 -vn 0.251600 -0.234700 0.938900 -vn 0.938900 -0.234700 -0.251600 -vn -0.938900 -0.234700 -0.251600 -vn -0.251600 -0.234700 0.938900 -vn 0.938900 -0.234700 0.251600 -vn -0.687300 -0.234700 -0.687400 -vn 0.251600 -0.234700 -0.938900 -vn 0.239700 0.377400 0.894500 -vn 0.190100 0.678500 0.709600 -vn 0.894500 0.377400 -0.239700 -vn -0.894500 0.377400 -0.239700 -vn -0.239700 0.377400 0.894500 -vn 0.894500 0.377400 0.239700 -vn -0.654800 0.377400 -0.654800 -vn 0.239700 0.377400 -0.894500 -vn -0.654800 0.377400 0.654800 -vn 0.654800 0.377400 0.654800 -vn -0.239700 0.377400 -0.894500 -vn 0.654800 0.377400 -0.654800 -vn -0.894500 0.377400 0.239700 -vn 0.709600 0.678500 -0.190100 -vn -0.709600 0.678500 -0.190100 -vn -0.190100 0.678500 0.709600 -vn 0.709600 0.678500 0.190100 -vn -0.519400 0.678500 -0.519400 -vn 0.190100 0.678500 -0.709600 -vn -0.519400 0.678500 0.519400 -vn 0.519400 0.678500 0.519400 -vn -0.190100 0.678500 -0.709600 -vn 0.519400 0.678500 -0.519400 -vn -0.709600 0.678500 0.190100 -vn -0.687400 -0.234700 0.687300 -vn 0.687300 -0.234700 0.687300 -vn 0.687300 -0.234700 -0.687400 -vn -0.687400 -0.234700 -0.687300 -vn 0.000000 1.000000 0.000100 -vn 0.000000 1.000000 0.000200 -vn 0.000000 1.000000 -0.000200 -vn 0.000000 1.000000 -0.000100 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/4/2 6/5/2 5/6/2 -f 6/7/3 8/8/3 7/9/3 -f 8/10/4 10/11/4 9/12/4 -f 10/13/5 12/14/5 11/15/5 -f 12/16/6 14/17/6 13/18/6 -f 14/19/7 16/20/7 15/21/7 -f 16/22/8 18/23/8 17/24/8 -f 18/25/9 20/26/9 19/27/9 -f 20/28/10 22/29/10 21/30/10 -f 24/31/11 2/32/11 1/33/11 -f 22/34/12 24/35/12 23/36/12 -f 5/37/13 7/9/13 28/38/13 -f 31/39/6 43/40/6 42/41/6 -f 21/42/14 23/36/14 36/43/14 -f 5/6/15 27/44/15 26/45/15 -f 21/30/16 35/46/16 34/47/16 -f 19/27/17 34/48/17 33/49/17 -f 17/24/18 33/50/18 32/51/18 -f 15/21/19 32/52/19 31/53/19 -f 13/18/20 31/54/20 30/55/20 -f 11/15/21 30/56/21 29/57/21 -f 7/58/22 9/12/22 29/59/22 -f 1/33/23 25/60/23 36/61/23 -f 1/62/24 3/3/24 26/63/24 -f 42/41/25 43/40/25 55/64/25 -f 28/65/3 40/66/3 39/67/3 -f 35/68/10 47/69/10 46/70/10 -f 32/71/7 44/72/7 43/40/7 -f 29/73/4 41/74/4 40/66/4 -f 35/68/12 36/75/12 48/76/12 -f 26/77/1 38/78/1 37/79/1 -f 33/80/8 45/81/8 44/72/8 -f 30/82/5 42/41/5 41/74/5 -f 36/75/11 25/83/11 37/79/11 -f 26/77/2 27/84/2 39/67/2 -f 34/85/9 46/86/9 45/81/9 -f 58/87/26 70/88/26 69/89/26 -f 40/66/27 52/90/27 51/91/27 -f 46/70/28 47/69/28 59/92/28 -f 44/72/29 56/93/29 55/94/29 -f 41/74/30 53/95/30 52/96/30 -f 48/76/31 60/97/31 59/98/31 -f 37/79/32 38/78/32 50/99/32 -f 45/81/33 57/100/33 56/101/33 -f 42/41/34 54/102/34 53/103/34 -f 37/79/35 49/104/35 60/105/35 -f 38/78/36 39/67/36 51/106/36 -f 46/86/37 58/107/37 57/108/37 -f 66/109/38 79/110/38 80/111/38 -f 54/112/39 55/113/39 67/114/39 -f 51/115/40 52/116/40 64/117/40 -f 59/118/41 71/119/41 70/120/41 -f 55/121/42 56/122/42 68/123/42 -f 53/124/43 65/125/43 64/117/43 -f 60/126/44 72/127/44 71/119/44 -f 50/128/45 62/129/45 61/130/45 -f 56/131/46 57/132/46 69/89/46 -f 54/133/47 66/109/47 65/125/47 -f 49/134/48 61/130/48 72/127/48 -f 51/135/49 63/136/49 62/129/49 -f 61/130/50 84/137/50 73/138/50 -f 69/89/51 76/139/51 77/140/51 -f 62/129/52 83/141/52 84/137/52 -f 72/127/53 73/138/53 74/142/53 -f 64/117/54 65/125/54 80/111/54 -f 67/114/55 68/123/55 77/140/55 -f 70/120/56 71/119/56 74/142/56 -f 64/117/57 81/143/57 82/144/57 -f 66/109/58 67/114/58 78/145/58 -f 69/89/59 70/88/59 75/146/59 -f 78/145/60 91/147/60 92/148/60 -f 63/136/61 82/144/61 83/141/61 -f 89/149/62 101/150/62 102/151/62 -f 76/139/60 75/146/60 88/152/60 -f 82/144/60 95/153/60 96/154/60 -f 84/137/60 86/155/60 85/156/60 -f 79/110/60 92/157/60 93/158/60 -f 77/140/60 76/139/60 89/159/60 -f 83/141/60 96/160/60 86/161/60 -f 73/138/60 85/162/60 87/163/60 -f 80/111/60 93/164/60 94/165/60 -f 77/140/60 90/166/60 91/167/60 -f 74/142/60 87/168/60 88/169/60 -f 81/143/60 94/170/60 95/171/60 -f 106/172/60 102/173/60 97/174/60 -f 96/175/63 108/176/63 98/177/63 -f 85/178/64 97/179/64 99/180/64 -f 93/181/65 105/182/65 106/183/65 -f 90/184/66 102/151/66 103/185/66 -f 88/186/67 87/187/67 99/180/67 -f 94/188/68 106/183/68 107/189/68 -f 91/190/69 103/185/69 104/191/69 -f 89/149/70 88/192/70 100/193/70 -f 95/194/71 107/189/71 108/176/71 -f 86/195/72 98/177/72 97/179/72 -f 92/196/73 104/191/73 105/182/73 -f 116/197/8 128/198/8 129/199/8 -f 117/200/74 153/201/74 152/202/74 -f 118/203/74 154/204/74 153/201/74 -f 119/205/74 155/206/74 154/207/74 -f 128/208/75 164/209/75 165/210/75 -f 113/211/5 125/212/5 126/213/5 -f 120/214/11 132/215/11 122/216/11 -f 109/217/2 121/218/2 123/219/2 -f 117/220/9 129/221/9 130/222/9 -f 114/223/6 126/224/6 127/225/6 -f 111/226/3 123/227/3 124/228/3 -f 118/229/10 130/230/10 131/231/10 -f 115/232/7 127/233/7 128/234/7 -f 112/235/4 124/236/4 125/237/4 -f 119/238/12 131/239/12 132/240/12 -f 110/241/1 122/242/1 121/243/1 -f 137/244/5 149/245/5 150/246/5 -f 136/247/4 148/248/4 149/245/4 -f 144/249/11 156/250/11 146/251/11 -f 133/252/1 146/251/1 145/253/1 -f 135/254/3 147/255/3 148/248/3 -f 143/256/12 155/206/12 156/250/12 -f 134/257/2 145/253/2 147/255/2 -f 142/258/10 154/207/10 155/206/10 -f 141/259/9 153/201/9 154/204/9 -f 140/260/8 152/202/8 153/201/8 -f 139/261/7 151/262/7 152/202/7 -f 138/263/6 150/246/6 151/262/6 -f 116/264/74 152/202/74 151/262/74 -f 115/265/74 151/262/74 150/246/74 -f 114/266/74 150/246/74 149/245/74 -f 112/235/74 113/267/74 149/245/74 -f 112/268/74 148/248/74 147/255/74 -f 111/269/74 147/255/74 145/253/74 -f 109/270/74 145/253/74 146/251/74 -f 120/214/74 110/271/74 146/251/74 -f 120/272/74 156/250/74 155/206/74 -f 143/256/60 144/249/60 24/35/60 -f 144/249/60 133/252/60 2/32/60 -f 133/252/60 134/257/60 4/2/60 -f 134/257/60 135/254/60 6/5/60 -f 135/254/60 136/247/60 8/8/60 -f 136/247/60 137/244/60 10/11/60 -f 137/244/60 138/263/60 12/14/60 -f 138/263/60 139/261/60 14/17/60 -f 139/261/60 140/260/60 16/20/60 -f 140/260/60 141/259/60 18/23/60 -f 141/259/60 142/273/60 20/26/60 -f 142/258/60 143/256/60 22/29/60 -f 159/274/3 171/275/3 172/276/3 -f 125/277/76 161/278/76 162/279/76 -f 132/280/77 168/281/77 158/282/77 -f 121/283/78 157/284/78 159/274/78 -f 129/285/79 165/210/79 166/286/79 -f 127/287/80 126/288/80 162/279/80 -f 123/289/81 159/274/81 160/290/81 -f 131/291/82 130/292/82 166/293/82 -f 127/294/83 163/295/83 164/209/83 -f 124/296/84 160/290/84 161/278/84 -f 132/297/85 131/298/85 167/299/85 -f 122/300/86 158/282/86 157/284/86 -f 175/301/87 174/302/87 186/303/87 -f 166/293/10 178/304/10 179/305/10 -f 163/295/7 175/301/7 176/306/7 -f 160/290/4 172/276/4 173/307/4 -f 167/299/12 179/305/12 180/308/12 -f 158/282/1 170/309/1 169/310/1 -f 164/209/8 176/306/8 177/311/8 -f 161/278/5 173/307/5 174/302/5 -f 168/281/11 180/308/11 170/309/11 -f 157/284/2 169/310/2 171/275/2 -f 165/210/9 177/311/9 178/312/9 -f 162/279/6 174/302/6 175/301/6 -f 186/303/88 198/313/88 199/314/88 -f 171/275/89 183/315/89 184/316/89 -f 179/305/90 178/304/90 190/317/90 -f 175/301/91 187/318/91 188/319/91 -f 172/276/92 184/320/92 185/321/92 -f 180/308/93 179/305/93 191/322/93 -f 170/309/94 182/323/94 181/324/94 -f 176/306/95 188/325/95 189/326/95 -f 173/307/96 185/327/96 186/328/96 -f 170/309/97 180/308/97 192/329/97 -f 171/275/98 169/310/98 181/330/98 -f 177/311/99 189/331/99 190/332/99 -f 203/333/74 199/334/74 195/335/74 -f 183/315/100 195/336/100 196/337/100 -f 190/317/101 202/338/101 203/339/101 -f 187/318/102 199/340/102 200/341/102 -f 185/321/103 184/320/103 196/342/103 -f 192/343/104 191/322/104 203/344/104 -f 181/324/105 182/323/105 194/345/105 -f 188/325/106 200/346/106 201/347/106 -f 186/328/107 185/327/107 197/348/107 -f 182/349/108 192/329/108 204/350/108 -f 181/330/109 193/351/109 195/352/109 -f 190/332/110 189/331/110 201/353/110 -f 1/62/1 2/1/1 3/3/1 -f 3/354/2 4/4/2 5/6/2 -f 5/37/3 6/7/3 7/9/3 -f 7/58/4 8/10/4 9/12/4 -f 9/355/5 10/13/5 11/15/5 -f 11/356/6 12/16/6 13/18/6 -f 13/357/7 14/19/7 15/21/7 -f 15/358/8 16/22/8 17/24/8 -f 17/359/9 18/25/9 19/27/9 -f 19/360/10 20/28/10 21/30/10 -f 23/361/11 24/31/11 1/33/11 -f 21/42/12 22/34/12 23/36/12 -f 27/362/13 5/37/13 28/38/13 -f 30/82/6 31/39/6 42/41/6 -f 35/363/14 21/42/14 36/43/14 -f 3/354/15 5/6/15 26/45/15 -f 19/360/16 21/30/16 34/47/16 -f 17/359/17 19/27/17 33/49/17 -f 15/358/18 17/24/18 32/51/18 -f 13/357/19 15/21/19 31/53/19 -f 11/356/20 13/18/20 30/55/20 -f 9/355/21 11/15/21 29/57/21 -f 28/364/22 7/58/22 29/59/22 -f 23/361/23 1/33/23 36/61/23 -f 25/365/24 1/62/24 26/63/24 -f 54/366/25 42/41/25 55/64/25 -f 27/84/3 28/65/3 39/67/3 -f 34/367/10 35/68/10 46/70/10 -f 31/39/7 32/71/7 43/40/7 -f 28/65/4 29/73/4 40/66/4 -f 47/69/12 35/68/12 48/76/12 -f 25/83/1 26/77/1 37/79/1 -f 32/71/8 33/80/8 44/72/8 -f 29/73/5 30/82/5 41/74/5 -f 48/76/11 36/75/11 37/79/11 -f 38/78/2 26/77/2 39/67/2 -f 33/80/9 34/85/9 45/81/9 -f 57/368/26 58/87/26 69/89/26 -f 39/67/27 40/66/27 51/91/27 -f 58/369/28 46/70/28 59/92/28 -f 43/40/29 44/72/29 55/94/29 -f 40/66/30 41/74/30 52/96/30 -f 47/69/31 48/76/31 59/98/31 -f 49/370/32 37/79/32 50/99/32 -f 44/72/33 45/81/33 56/101/33 -f 41/74/34 42/41/34 53/103/34 -f 48/76/35 37/79/35 60/105/35 -f 50/371/36 38/78/36 51/106/36 -f 45/81/37 46/86/37 57/108/37 -f 65/125/38 66/109/38 80/111/38 -f 66/109/39 54/112/39 67/114/39 -f 63/136/40 51/115/40 64/117/40 -f 58/372/41 59/118/41 70/120/41 -f 67/114/42 55/121/42 68/123/42 -f 52/373/43 53/124/43 64/117/43 -f 59/374/44 60/126/44 71/119/44 -f 49/375/45 50/128/45 61/130/45 -f 68/123/46 56/131/46 69/89/46 -f 53/376/47 54/133/47 65/125/47 -f 60/377/48 49/134/48 72/127/48 -f 50/378/49 51/135/49 62/129/49 -f 72/127/50 61/130/50 73/138/50 -f 68/123/51 69/89/51 77/140/51 -f 61/130/52 62/129/52 84/137/52 -f 71/119/53 72/127/53 74/142/53 -f 81/143/54 64/117/54 80/111/54 -f 78/145/55 67/114/55 77/140/55 -f 75/379/56 70/120/56 74/142/56 -f 63/136/57 64/117/57 82/144/57 -f 79/110/58 66/109/58 78/145/58 -f 76/139/59 69/89/59 75/146/59 -f 79/110/60 78/145/60 92/148/60 -f 62/129/61 63/136/61 83/141/61 -f 90/184/62 89/149/62 102/151/62 -f 89/380/60 76/139/60 88/152/60 -f 83/141/60 82/144/60 96/154/60 -f 73/138/60 84/137/60 85/156/60 -f 80/111/60 79/110/60 93/158/60 -f 90/381/60 77/140/60 89/159/60 -f 84/137/60 83/141/60 86/161/60 -f 74/142/60 73/138/60 87/163/60 -f 81/143/60 80/111/60 94/165/60 -f 78/145/60 77/140/60 91/167/60 -f 75/379/60 74/142/60 88/169/60 -f 82/144/60 81/143/60 95/171/60 -f 97/174/60 98/382/60 108/383/60 -f 108/383/60 107/384/60 106/172/60 -f 106/172/60 105/385/60 104/386/60 -f 104/386/60 103/387/60 102/173/60 -f 102/173/60 101/388/60 97/174/60 -f 100/389/60 99/390/60 97/174/60 -f 97/174/60 108/383/60 106/172/60 -f 106/172/60 104/386/60 102/173/60 -f 101/388/60 100/389/60 97/174/60 -f 86/195/63 96/175/63 98/177/63 -f 87/187/64 85/178/64 99/180/64 -f 94/188/65 93/181/65 106/183/65 -f 91/190/66 90/184/66 103/185/66 -f 100/391/67 88/186/67 99/180/67 -f 95/194/68 94/188/68 107/189/68 -f 92/196/69 91/190/69 104/191/69 -f 101/150/70 89/149/70 100/193/70 -f 96/175/71 95/194/71 108/176/71 -f 85/178/72 86/195/72 97/179/72 -f 93/181/73 92/196/73 105/182/73 -f 117/200/8 116/197/8 129/199/8 -f 116/197/74 117/200/74 152/202/74 -f 117/220/74 118/203/74 153/201/74 -f 118/229/74 119/205/74 154/207/74 -f 129/392/111 128/208/111 165/210/111 -f 114/266/5 113/211/5 126/213/5 -f 110/271/11 120/214/11 122/216/11 -f 111/269/2 109/217/2 123/219/2 -f 118/203/9 117/220/9 130/222/9 -f 115/265/6 114/223/6 127/225/6 -f 112/268/3 111/226/3 124/228/3 -f 119/205/10 118/229/10 131/231/10 -f 116/264/7 115/232/7 128/234/7 -f 113/267/4 112/235/4 125/237/4 -f 120/272/12 119/238/12 132/240/12 -f 109/270/1 110/241/1 121/243/1 -f 138/263/5 137/244/5 150/246/5 -f 137/244/4 136/247/4 149/245/4 -f 133/252/11 144/249/11 146/251/11 -f 134/257/1 133/252/1 145/253/1 -f 136/247/3 135/254/3 148/248/3 -f 144/249/12 143/256/12 156/250/12 -f 135/254/2 134/257/2 147/255/2 -f 143/256/10 142/258/10 155/206/10 -f 142/273/9 141/259/9 154/204/9 -f 141/259/8 140/260/8 153/201/8 -f 140/260/7 139/261/7 152/202/7 -f 139/261/6 138/263/6 151/262/6 -f 115/232/74 116/264/74 151/262/74 -f 114/223/74 115/265/74 150/246/74 -f 113/211/74 114/266/74 149/245/74 -f 148/248/74 112/235/74 149/245/74 -f 111/226/74 112/268/74 147/255/74 -f 109/217/74 111/269/74 145/253/74 -f 110/241/74 109/270/74 146/251/74 -f 156/250/74 120/214/74 146/251/74 -f 119/238/74 120/272/74 155/206/74 -f 22/34/60 143/256/60 24/35/60 -f 24/31/60 144/249/60 2/32/60 -f 2/1/60 133/252/60 4/2/60 -f 4/4/60 134/257/60 6/5/60 -f 6/7/60 135/254/60 8/8/60 -f 8/10/60 136/247/60 10/11/60 -f 10/13/60 137/244/60 12/14/60 -f 12/16/60 138/263/60 14/17/60 -f 14/19/60 139/261/60 16/20/60 -f 16/22/60 140/260/60 18/23/60 -f 18/25/60 141/259/60 20/26/60 -f 20/28/60 142/258/60 22/29/60 -f 160/290/3 159/274/3 172/276/3 -f 126/393/112 125/277/112 162/279/112 -f 122/394/77 132/280/77 158/282/77 -f 123/395/113 121/283/113 159/274/113 -f 130/396/79 129/285/79 166/286/79 -f 163/295/80 127/287/80 162/279/80 -f 124/397/81 123/289/81 160/290/81 -f 167/299/82 131/291/82 166/293/82 -f 128/398/83 127/294/83 164/209/83 -f 125/399/84 124/296/84 161/278/84 -f 168/281/114 132/297/114 167/299/114 -f 121/400/86 122/300/86 157/284/86 -f 187/401/87 175/301/87 186/303/87 -f 167/299/10 166/293/10 179/305/10 -f 164/209/7 163/295/7 176/306/7 -f 161/278/4 160/290/4 173/307/4 -f 168/281/12 167/299/12 180/308/12 -f 157/284/1 158/282/1 169/310/1 -f 165/210/8 164/209/8 177/311/8 -f 162/279/5 161/278/5 174/302/5 -f 158/282/11 168/281/11 170/309/11 -f 159/274/2 157/284/2 171/275/2 -f 166/286/9 165/210/9 178/312/9 -f 163/295/6 162/279/6 175/301/6 -f 187/401/88 186/303/88 199/314/88 -f 172/276/89 171/275/89 184/316/89 -f 191/402/90 179/305/90 190/317/90 -f 176/306/91 175/301/91 188/319/91 -f 173/307/92 172/276/92 185/321/92 -f 192/343/93 180/308/93 191/322/93 -f 169/310/94 170/309/94 181/324/94 -f 177/311/95 176/306/95 189/326/95 -f 174/302/96 173/307/96 186/328/96 -f 182/349/97 170/309/97 192/329/97 -f 183/403/98 171/275/98 181/330/98 -f 178/312/99 177/311/99 190/332/99 -f 195/335/115 193/404/115 203/333/115 -f 194/405/116 204/406/116 203/333/116 -f 203/333/74 202/407/74 201/408/74 -f 201/408/117 200/409/117 199/334/117 -f 199/334/118 198/410/118 197/411/118 -f 197/411/74 196/412/74 199/334/74 -f 193/404/117 194/405/117 203/333/117 -f 203/333/74 201/408/74 199/334/74 -f 199/334/74 196/412/74 195/335/74 -f 184/316/100 183/315/100 196/337/100 -f 191/402/101 190/317/101 203/339/101 -f 188/319/102 187/318/102 200/341/102 -f 197/413/103 185/321/103 196/342/103 -f 204/414/104 192/343/104 203/344/104 -f 193/415/105 181/324/105 194/345/105 -f 189/326/106 188/325/106 201/347/106 -f 198/416/107 186/328/107 197/348/107 -f 194/417/108 182/349/108 204/350/108 -f 183/403/109 181/330/109 195/352/109 -f 202/418/110 190/332/110 201/353/110 diff --git a/src/main/resources/assets/hbm/models/missileGeneric.obj b/src/main/resources/assets/hbm/models/missileGeneric.obj deleted file mode 100644 index 82b20117e..000000000 --- a/src/main/resources/assets/hbm/models/missileGeneric.obj +++ /dev/null @@ -1,689 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileGeneric.blend' -# www.blender.org -o Cylinder -v 0.097545 2.500000 -0.490393 -v 0.277785 2.500000 -0.415735 -v 0.277785 0.500000 -0.415735 -v 0.415735 2.500000 -0.277785 -v 0.415735 0.500000 -0.277785 -v 0.490393 2.500000 -0.097545 -v 0.490393 0.500000 -0.097545 -v 0.490393 2.500000 0.097545 -v 0.415735 2.500000 0.277785 -v 0.415735 0.500000 0.277785 -v 0.277785 2.500000 0.415735 -v 0.277785 0.500000 0.415735 -v 0.097545 2.500000 0.490393 -v 0.097545 0.500000 0.490393 -v -0.097545 2.500000 0.490393 -v -0.277785 2.500000 0.415735 -v -0.277785 0.500000 0.415735 -v -0.415735 2.500000 0.277785 -v -0.415735 0.500000 0.277785 -v -0.490393 2.500000 0.097545 -v -0.490393 0.500000 0.097545 -v -0.490393 2.500000 -0.097545 -v -0.415735 2.500000 -0.277785 -v -0.415735 0.500000 -0.277785 -v 0.367794 3.500000 -0.073159 -v 0.367794 3.500000 0.073159 -v -0.277785 0.500000 -0.415735 -v -0.277785 2.500000 -0.415735 -v -0.097545 2.500000 -0.490393 -v -0.097545 0.500000 0.490393 -v -0.082913 -0.000000 0.416834 -v 0.082913 -0.000000 0.416834 -v -0.236117 0.000000 -0.353375 -v -0.082913 0.000000 -0.416834 -v -0.353375 0.000000 -0.236117 -v -0.416834 -0.000000 0.082913 -v -0.353375 -0.000000 0.236117 -v 0.416834 0.000000 -0.082913 -v 0.353375 0.000000 -0.236117 -v 0.236117 -0.000000 0.353375 -v 0.353375 -0.000000 0.236117 -v -0.236117 -0.000000 0.353375 -v 0.236117 0.000000 -0.353375 -v 0.082913 0.000000 -0.416834 -v -0.490393 0.500000 -0.097545 -v -0.416834 0.000000 -0.082913 -v 0.490393 0.500000 0.097545 -v 0.416834 -0.000000 0.082913 -v -0.097545 0.500000 -0.490393 -v 0.097545 0.500000 -0.490393 -v 0.036579 3.750000 -0.717794 -v -0.073159 4.500000 -0.367794 -v 0.073159 4.500000 -0.367794 -v -0.208339 3.500000 -0.311801 -v -0.073159 3.500000 -0.367794 -v 0.073159 3.500000 -0.367794 -v 0.208339 3.500000 0.311801 -v -0.208339 3.500000 0.311801 -v -0.311801 3.500000 0.208339 -v 0.208339 3.500000 -0.311801 -v 0.311801 3.500000 -0.208339 -v -0.367795 3.500000 -0.073159 -v -0.311801 3.500000 -0.208339 -v 0.073159 3.500000 0.367794 -v -0.073159 3.500000 0.367795 -v 0.311801 3.500000 0.208339 -v -0.367795 3.500000 0.073159 -v -0.208339 4.500000 0.311801 -v -0.073159 4.500000 0.367795 -v 0.000000 5.500000 0.000000 -v -0.367795 4.500000 0.073159 -v -0.367795 4.500000 -0.073159 -v -0.036580 3.750000 -0.717794 -v 0.073159 4.500000 0.367794 -v -0.367795 3.750000 -0.036579 -v 0.367794 4.500000 -0.073159 -v 0.367794 4.500000 0.073159 -v -0.311801 4.500000 0.208339 -v -0.311801 4.500000 -0.208339 -v -0.208339 4.500000 -0.311801 -v 0.208338 4.500000 -0.311801 -v 0.311801 4.500000 -0.208339 -v 0.311801 4.500000 0.208339 -v 0.208339 4.500000 0.311801 -v 0.490393 0.500000 -0.048772 -v 0.490393 2.500000 -0.048772 -v -0.490393 2.500000 0.048773 -v 0.490393 2.500000 0.048773 -v -0.367795 4.250000 -0.036579 -v -0.036580 4.000000 -0.717794 -v 0.036579 4.000000 -0.717794 -v 0.036579 3.750000 -0.367794 -v -0.036580 3.750000 -0.367794 -v 0.036579 4.250000 -0.367794 -v -0.367795 3.750000 0.036580 -v -0.367795 4.250000 0.036580 -v -0.036580 4.250000 -0.367794 -v -0.036580 4.000000 0.717795 -v 0.036579 4.000000 0.717795 -v 0.036579 3.750000 0.717795 -v -0.036580 3.750000 0.717795 -v 0.036579 4.250000 0.367795 -v 0.036579 3.750000 0.367795 -v -0.036580 4.250000 0.367795 -v -0.036580 3.750000 0.367795 -v -0.717795 3.750000 -0.036579 -v -0.717795 3.750000 0.036580 -v -0.717795 4.000000 0.036580 -v -0.717795 4.000000 -0.036579 -v 0.367794 4.250000 -0.036579 -v 0.367794 4.250000 0.036580 -v 0.367794 3.750000 -0.036579 -v 0.367794 3.750000 0.036580 -v 0.717794 4.000000 0.036580 -v 0.717794 4.000000 -0.036579 -v 0.717794 3.750000 -0.036579 -v 0.717794 3.750000 0.036580 -v -0.490393 0.500000 0.048773 -v -0.490393 2.500000 -0.048772 -v -0.490393 0.500000 -0.048772 -v 0.490393 0.500000 0.048773 -v 0.990393 0.500000 -0.048772 -v 0.990393 0.500000 0.048773 -v -0.990393 0.500000 0.048773 -v -0.990393 0.500000 -0.048772 -v -0.048772 0.500000 -0.490393 -v -0.048772 2.500000 -0.490393 -v 0.048772 2.500000 0.490393 -v 0.048773 2.500000 -0.490393 -v 0.048772 0.500000 0.490393 -v -0.048773 2.500000 0.490393 -v -0.048773 0.500000 0.490393 -v 0.048773 0.500000 -0.490393 -v -0.048772 0.500000 -0.990393 -v 0.048773 0.500000 -0.990393 -v 0.048772 0.500000 0.990393 -v -0.048773 0.500000 0.990393 -vt 0.675359 0.367717 -vt 0.649979 0.367716 -vt 0.649980 0.107528 -vt 0.624599 0.367716 -vt 0.624599 0.107528 -vt 0.599219 0.367716 -vt 0.599219 0.107528 -vt 0.979922 0.367717 -vt 0.954542 0.367717 -vt 0.954542 0.107528 -vt 0.929161 0.367717 -vt 0.929162 0.107528 -vt 0.903781 0.367717 -vt 0.903782 0.107528 -vt 0.878401 0.367717 -vt 0.853021 0.367717 -vt 0.853021 0.107528 -vt 0.827641 0.367717 -vt 0.827641 0.107528 -vt 0.802261 0.367717 -vt 0.802261 0.107528 -vt 0.776880 0.367717 -vt 0.751500 0.367717 -vt 0.751500 0.107528 -vt 0.596047 0.498786 -vt 0.577011 0.498786 -vt 0.726120 0.107528 -vt 0.726120 0.367717 -vt 0.700740 0.367717 -vt 0.878401 0.107528 -vt 0.880305 0.041781 -vt 0.901878 0.041781 -vt 0.157460 0.217655 -vt 0.165715 0.237586 -vt 0.142205 0.202401 -vt 0.804164 0.041781 -vt 0.825737 0.041781 -vt 0.601122 0.041780 -vt 0.622696 0.041780 -vt 0.728024 0.041781 -vt 0.931065 0.041781 -vt 0.952639 0.041781 -vt 0.854925 0.041781 -vt 0.876498 0.041781 -vt 0.651883 0.041780 -vt 0.673456 0.041780 -vt 0.776881 0.107528 -vt 0.778784 0.041781 -vt 0.800357 0.041781 -vt 0.573839 0.107528 -vt 0.575742 0.041781 -vt 0.597315 0.041781 -vt 0.700740 0.107528 -vt 0.702643 0.041781 -vt 0.724217 0.041781 -vt 0.675360 0.107528 -vt 0.677263 0.041781 -vt 0.698836 0.041781 -vt 0.905685 0.041781 -vt 0.927258 0.041781 -vt 0.829544 0.041781 -vt 0.851118 0.041781 -vt 0.626503 0.041780 -vt 0.648076 0.041781 -vt 0.753404 0.041781 -vt 0.956446 0.041781 -vt 0.978019 0.041781 -vt 0.722948 0.498786 -vt 0.703912 0.498786 -vt 0.697567 0.498786 -vt 0.678532 0.498786 -vt 0.925989 0.498785 -vt 0.849848 0.498785 -vt 0.830813 0.498785 -vt 0.646807 0.498785 -vt 0.627772 0.498785 -vt 0.773708 0.498785 -vt 0.754673 0.498785 -vt 0.976749 0.498785 -vt 0.900609 0.498786 -vt 0.881573 0.498786 -vt 0.824468 0.498785 -vt 0.621427 0.498785 -vt 0.748328 0.498785 -vt 0.729293 0.498785 -vt 0.951369 0.498785 -vt 0.932334 0.498785 -vt 0.875228 0.498785 -vt 0.856193 0.498785 -vt 0.672187 0.498785 -vt 0.799088 0.498786 -vt 0.426882 0.171875 -vt 0.445917 0.171875 -vt 0.436400 0.310489 -vt 0.417365 0.310489 -vt 0.407847 0.171875 -vt 0.398330 0.310490 -vt 0.388812 0.171875 -vt 0.379295 0.310489 -vt 0.369777 0.171875 -vt 0.360259 0.310490 -vt 0.350742 0.171875 -vt 0.341224 0.310490 -vt 0.331707 0.171875 -vt 0.322189 0.310489 -vt 0.312672 0.171875 -vt 0.464953 0.171875 -vt 0.455436 0.310489 -vt 0.303154 0.310490 -vt 0.293637 0.171875 -vt 0.284119 0.310490 -vt 0.274602 0.171875 -vt 0.265085 0.310490 -vt 0.255566 0.171875 -vt 0.246049 0.310490 -vt 0.236531 0.171875 -vt 0.227014 0.310489 -vt 0.217496 0.171875 -vt 0.522058 0.171875 -vt 0.512541 0.310489 -vt 0.503023 0.171875 -vt 0.493505 0.310489 -vt 0.483988 0.171875 -vt 0.474470 0.310490 -vt 0.192477 0.443094 -vt 0.255582 0.427318 -vt 0.255582 0.695515 -vt 0.916817 0.883810 -vt 0.904127 0.883810 -vt 0.916817 0.615614 -vt 0.979922 0.631390 -vt 0.841022 0.631390 -vt 0.904127 0.615614 -vt 0.916817 0.550567 -vt 0.904127 0.550567 -vt 0.268272 0.362271 -vt 0.268272 0.427318 -vt 0.255582 0.362271 -vt 0.426882 0.041780 -vt 0.331707 0.041780 -vt 0.274601 0.041781 -vt 0.464953 0.041780 -vt 0.522058 0.792829 -vt 0.522058 0.857876 -vt 0.476525 0.792829 -vt 0.503023 0.041780 -vt 0.106568 0.658093 -vt 0.106568 0.625569 -vt 0.152101 0.690617 -vt 0.097051 0.658093 -vt 0.051518 0.690617 -vt 0.097051 0.625569 -vt 0.106568 0.580036 -vt 0.097051 0.580036 -vt 0.445918 0.041780 -vt 0.217496 0.041781 -vt 0.236531 0.041781 -vt 0.522058 0.041780 -vt 0.097051 0.714049 -vt 0.106568 0.714049 -vt 0.312672 0.041780 -vt 0.152101 0.625569 -vt 0.051518 0.625569 -vt 0.979922 0.107529 -vt 0.573839 0.367716 -vt 0.142205 0.294345 -vt 0.122274 0.302600 -vt 0.157460 0.279090 -vt 0.165715 0.259159 -vt 0.065515 0.279090 -vt 0.080770 0.294345 -vt 0.057260 0.259159 -vt 0.057260 0.237586 -vt 0.065515 0.217655 -vt 0.080770 0.202400 -vt 0.100701 0.194145 -vt 0.122274 0.194145 -vt 0.100701 0.302600 -vt 0.749597 0.041781 -vt 0.774977 0.041781 -vt 0.467007 0.825352 -vt 0.421474 0.857876 -vt 0.467007 0.792829 -vt 0.906954 0.498785 -vt 0.957714 0.498785 -vt 0.805433 0.498785 -vt 0.602391 0.498785 -vt 0.653152 0.498785 -vt 0.780053 0.498786 -vt 0.331377 0.443094 -vt 0.268272 0.695515 -vt 0.407847 0.041780 -vt 0.467007 0.881308 -vt 0.476525 0.825352 -vt 0.350742 0.041780 -vt 0.476525 0.747295 -vt 0.467007 0.747295 -vt 0.255566 0.041781 -vt 0.476525 0.881308 -vt 0.421474 0.792829 -vt 0.483988 0.041780 -vt 0.324160 0.792829 -vt 0.324160 0.825352 -vt 0.314643 0.825352 -vt 0.314643 0.792829 -vt 0.314643 0.747295 -vt 0.269110 0.857876 -vt 0.269110 0.792829 -vt 0.293636 0.041781 -vt 0.369693 0.857876 -vt 0.388812 0.041780 -vt 0.369777 0.041780 -vt 0.324160 0.881308 -vt 0.314643 0.881308 -vt 0.324160 0.747295 -vt 0.369693 0.792829 -vt 0.162278 0.825352 -vt 0.171796 0.825352 -vt 0.171796 0.881308 -vt 0.171796 0.792829 -vt 0.162278 0.792829 -vt 0.162278 0.747295 -vt 0.116745 0.857876 -vt 0.116745 0.792829 -vt 0.217329 0.792829 -vt 0.217329 0.857876 -vt 0.162278 0.881308 -vt 0.171796 0.747295 -vt 0.383158 0.443094 -vt 0.446263 0.427318 -vt 0.446263 0.695515 -vt 0.726137 0.883810 -vt 0.713447 0.883810 -vt 0.726136 0.615614 -vt 0.789241 0.631390 -vt 0.458953 0.695515 -vt 0.650341 0.631390 -vt 0.713446 0.615614 -vt 0.726136 0.550567 -vt 0.713446 0.550567 -vt 0.458953 0.362271 -vt 0.458953 0.427318 -vt 0.446263 0.362271 -vt 0.522058 0.443094 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 0.000000 -0.707100 -vn 0.923900 -0.000000 -0.382700 -vn 0.923900 -0.000000 0.382700 -vn 0.707100 -0.000000 0.707100 -vn 0.382700 -0.000000 0.923900 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 -0.000000 0.707100 -vn -0.923900 -0.000000 0.382700 -vn -0.923900 0.000000 -0.382700 -vn 0.992600 0.121700 0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.707100 0.000000 -0.707100 -vn 0.000000 -0.145600 0.989400 -vn -0.000000 -1.000000 -0.000000 -vn -0.914000 -0.145600 0.378600 -vn 0.914000 -0.145600 -0.378600 -vn -0.699600 -0.145600 -0.699600 -vn 0.699600 -0.145600 0.699600 -vn -0.378600 -0.145600 0.914000 -vn 0.378600 -0.145600 -0.914000 -vn -0.989400 -0.145600 0.000000 -vn 0.997400 -0.072300 0.000000 -vn 0.989400 -0.145600 0.000000 -vn -0.378600 -0.145600 -0.914000 -vn 0.000000 -0.145600 -0.989400 -vn 0.378600 -0.145600 0.914000 -vn -0.699600 -0.145600 0.699600 -vn 0.699600 -0.145600 -0.699600 -vn -0.914000 -0.145600 -0.378600 -vn 0.914000 -0.145600 0.378600 -vn -0.379800 0.121700 -0.917000 -vn 0.000000 0.121700 -0.992600 -vn 0.379800 0.121700 0.917000 -vn -0.701900 0.121700 0.701900 -vn 0.701900 0.121700 -0.701900 -vn -0.917000 0.121700 -0.379800 -vn 0.917000 0.121700 0.379800 -vn 0.000000 0.121700 0.992600 -vn -0.917000 0.121700 0.379800 -vn 0.917000 0.121700 -0.379800 -vn -0.701900 0.121700 -0.701900 -vn 0.701900 0.121700 0.701900 -vn -0.379800 0.121700 0.917000 -vn 0.379800 0.121700 -0.917000 -vn -0.992600 0.121700 0.000000 -vn -0.359200 0.345200 0.867100 -vn -0.663600 0.345200 0.663600 -vn -0.867100 0.345200 0.359200 -vn -0.938500 0.345200 0.000000 -vn -0.867100 0.345200 -0.359200 -vn -0.663600 0.345200 -0.663600 -vn -0.359200 0.345200 -0.867100 -vn 0.000000 0.345200 0.938500 -vn 0.000000 0.345200 -0.938500 -vn 0.359200 0.345200 -0.867100 -vn 0.663600 0.345200 -0.663600 -vn 0.867100 0.345200 -0.359200 -vn 0.938500 0.345200 0.000000 -vn 0.867100 0.345200 0.359200 -vn 0.663600 0.345200 0.663600 -vn 0.359200 0.345200 0.867100 -vn 0.000000 -0.000000 1.000000 -vn -0.970100 0.242500 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.195100 -0.000000 0.980800 -vn 1.000000 0.000000 0.000000 -vn -0.195100 -0.000000 0.980800 -vn 0.980800 -0.000000 0.195100 -vn 0.980800 0.000000 -0.195100 -vn 0.000000 0.813700 -0.581200 -vn -0.195100 0.000000 -0.980800 -vn 0.195100 0.000000 -0.980800 -vn 0.970100 0.242500 0.000000 -vn -0.581200 0.813700 0.000000 -vn -0.980800 0.000000 0.195100 -vn -0.980800 0.000000 -0.195100 -vn 0.000000 0.813700 0.581200 -vn 0.581200 0.813700 0.000000 -vn 0.000000 0.242500 0.970100 -vn -0.000000 0.242500 -0.970100 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/2/2 4/4/2 5/5/2 -f 4/4/3 6/6/3 7/7/3 -f 8/8/4 9/9/4 10/10/4 -f 9/9/5 11/11/5 12/12/5 -f 11/11/6 13/13/6 14/14/6 -f 15/15/7 16/16/7 17/17/7 -f 16/16/8 18/18/8 19/19/8 -f 18/18/9 20/20/9 21/21/9 -f 22/22/10 23/23/10 24/24/10 -f 6/6/11 25/25/11 26/26/11 -f 27/27/12 28/28/12 29/29/12 -f 23/23/13 28/28/13 27/27/13 -f 30/30/14 31/31/14 32/32/14 -f 33/33/15 34/34/15 35/35/15 -f 21/21/16 36/36/16 37/37/16 -f 7/7/17 38/38/17 39/39/17 -f 24/24/18 27/27/18 33/40/18 -f 12/12/19 40/41/19 41/42/19 -f 17/17/20 42/43/20 31/44/20 -f 3/3/21 43/45/21 44/46/21 -f 45/47/22 46/48/22 36/49/22 -f 47/50/23 48/51/24 38/52/24 -f 49/53/25 34/54/25 33/55/25 -f 50/56/26 44/57/26 34/58/26 -f 14/14/27 32/59/27 40/60/27 -f 19/19/28 37/61/28 42/62/28 -f 5/5/29 39/63/29 43/64/29 -f 45/47/30 24/24/30 35/65/30 -f 10/10/31 41/66/31 48/67/31 -f 28/28/32 54/68/32 55/69/32 -f 29/29/33 55/70/33 56/71/33 -f 13/13/34 11/11/34 57/72/34 -f 16/16/35 58/73/35 59/74/35 -f 2/2/36 60/75/36 61/76/36 -f 22/22/37 62/77/37 63/78/37 -f 9/9/38 8/8/38 26/79/38 -f 13/13/39 64/80/39 65/81/39 -f 20/20/40 18/18/40 59/82/40 -f 6/6/41 4/4/41 61/83/41 -f 23/23/42 63/84/42 54/85/42 -f 9/9/43 66/86/43 57/87/43 -f 15/15/44 65/88/44 58/89/44 -f 2/2/45 1/1/45 56/90/45 -f 22/22/46 20/20/46 67/91/46 -f 68/92/47 69/93/47 70/94/47 -f 68/92/48 70/95/48 78/96/48 -f 78/96/49 70/97/49 71/98/49 -f 71/98/50 70/99/50 72/100/50 -f 72/100/51 70/101/51 79/102/51 -f 79/102/52 70/103/52 80/104/52 -f 80/104/53 70/105/53 52/106/53 -f 74/107/54 70/108/54 69/93/54 -f 52/106/55 70/109/55 53/110/55 -f 53/110/56 70/111/56 81/112/56 -f 81/112/57 70/113/57 82/114/57 -f 82/114/58 70/115/58 76/116/58 -f 76/116/59 70/117/59 77/118/59 -f 77/119/60 70/120/60 83/121/60 -f 83/121/61 70/122/61 84/123/61 -f 84/123/62 70/124/62 74/107/62 -f 121/125/63 123/126/63 88/127/63 -f 87/128/64 119/129/64 124/130/64 -f 118/131/63 87/128/63 124/130/63 -f 120/132/65 125/133/65 119/129/65 -f 118/134/15 124/130/15 120/135/15 -f 85/136/15 122/137/15 121/138/15 -f 21/21/66 20/20/66 22/22/66 -f 50/56/65 49/53/65 29/29/65 -f 124/130/15 125/133/15 120/135/15 -f 58/139/8 68/92/8 78/96/8 -f 79/102/13 80/104/13 54/140/13 -f 60/141/2 81/112/2 82/114/2 -f 84/123/6 74/107/67 64/142/67 -f 95/143/63 96/144/63 107/145/63 -f 66/146/5 83/121/5 84/123/5 -f 90/147/66 73/148/66 97/149/66 -f 91/150/68 94/151/68 51/152/68 -f 93/153/15 73/148/15 92/154/15 -f 68/92/7 58/139/7 65/155/69 -f 51/152/65 73/148/65 91/150/65 -f 26/156/70 25/157/71 76/116/71 -f 66/146/4 26/158/70 77/119/70 -f 82/114/3 76/116/71 25/157/71 -f 94/159/72 91/150/72 97/160/72 -f 55/161/73 52/106/73 53/110/74 -f 73/148/66 93/162/66 97/149/66 -f 94/151/68 92/163/68 51/152/68 -f 73/148/15 51/152/15 92/154/15 -f 73/148/65 90/147/65 91/150/65 -f 91/150/72 90/147/72 97/160/72 -f 50/56/1 1/1/1 3/3/1 -f 3/3/2 2/2/2 5/5/2 -f 5/5/3 4/4/3 7/7/3 -f 47/164/4 8/8/4 10/10/4 -f 10/10/5 9/9/5 12/12/5 -f 12/12/6 11/11/6 14/14/6 -f 30/30/7 15/15/7 17/17/7 -f 17/17/8 16/16/8 19/19/8 -f 19/19/9 18/18/9 21/21/9 -f 45/47/10 22/22/10 24/24/10 -f 8/165/11 6/6/11 26/26/11 -f 49/53/12 27/27/12 29/29/12 -f 24/24/13 23/23/13 27/27/13 -f 14/14/14 30/30/14 32/32/14 -f 5/5/17 7/7/17 39/39/17 -f 39/166/15 38/167/15 43/168/15 -f 38/167/15 35/35/15 44/169/15 -f 40/170/15 38/167/15 41/171/15 -f 40/170/15 32/172/15 31/173/15 -f 31/173/15 42/174/15 37/175/15 -f 37/175/15 36/176/15 46/177/15 -f 19/19/16 21/21/16 37/37/16 -f 38/167/15 44/169/15 43/168/15 -f 38/167/15 37/175/15 46/177/15 -f 40/170/15 31/173/15 37/175/15 -f 38/167/15 40/170/15 37/175/15 -f 35/35/15 34/34/15 44/169/15 -f 38/167/15 48/178/15 41/171/15 -f 35/35/15 38/167/15 46/177/15 -f 35/179/18 24/24/18 33/40/18 -f 10/10/19 12/12/19 41/42/19 -f 30/30/20 17/17/20 31/44/20 -f 50/56/21 3/3/21 44/46/21 -f 21/21/22 45/47/22 36/49/22 -f 47/50/23 38/52/24 7/7/23 -f 27/27/25 49/53/25 33/55/25 -f 49/53/26 50/56/26 34/58/26 -f 12/12/27 14/14/27 40/60/27 -f 17/17/28 19/19/28 42/62/28 -f 3/3/29 5/5/29 43/64/29 -f 46/180/30 45/47/30 35/65/30 -f 47/164/31 10/10/31 48/67/31 -f 109/181/65 89/182/65 106/183/65 -f 29/29/32 28/28/32 55/69/32 -f 1/1/33 29/29/33 56/71/33 -f 64/184/34 13/13/34 57/72/34 -f 18/18/35 16/16/35 59/74/35 -f 4/4/36 2/2/36 61/76/36 -f 23/23/37 22/22/37 63/78/37 -f 66/185/38 9/9/38 26/79/38 -f 15/15/39 13/13/39 65/81/39 -f 67/186/40 20/20/40 59/82/40 -f 25/187/41 6/6/41 61/83/41 -f 28/28/42 23/23/42 54/85/42 -f 11/11/43 9/9/43 57/87/43 -f 16/16/44 15/15/44 58/89/44 -f 60/188/45 2/2/45 56/90/45 -f 62/189/46 22/22/46 67/91/46 -f 85/190/65 86/191/65 122/137/65 -f 7/7/23 6/6/68 8/165/68 -f 119/129/64 125/133/64 124/130/64 -f 123/126/75 122/137/75 86/191/75 -f 14/14/63 13/13/63 15/15/63 -f 122/137/15 123/126/15 121/138/15 -f 59/192/8 58/139/8 78/96/8 -f 89/193/76 109/181/76 108/194/76 -f 63/195/13 79/102/13 54/140/13 -f 95/196/15 107/145/15 75/197/15 -f 61/198/2 60/141/2 82/114/2 -f 106/183/66 107/145/66 109/181/66 -f 96/199/76 89/193/76 108/194/76 -f 96/144/63 108/194/63 107/145/63 -f 89/182/65 75/200/65 106/183/65 -f 107/145/15 106/183/15 75/197/15 -f 107/145/66 108/194/66 109/181/66 -f 57/201/5 66/146/5 84/123/5 -f 100/202/63 99/203/63 98/204/63 -f 100/202/15 101/205/15 105/206/15 -f 104/207/66 105/208/66 101/205/66 -f 81/112/1 60/141/1 56/209/74 -f 102/210/68 99/203/68 100/202/68 -f 55/161/73 54/140/12 80/104/12 -f 67/211/77 71/98/77 72/100/78 -f 62/212/78 72/100/78 79/102/10 -f 102/213/79 104/214/79 99/203/79 -f 78/96/9 71/98/77 67/211/77 -f 101/205/63 100/202/63 98/204/63 -f 103/215/15 100/202/15 105/206/15 -f 104/214/79 98/204/79 99/203/79 -f 98/204/66 104/207/66 101/205/66 -f 103/216/68 102/210/68 100/202/68 -f 114/217/80 115/218/80 110/219/80 -f 116/220/68 115/218/68 114/217/68 -f 116/220/15 117/221/15 113/222/15 -f 111/223/63 113/224/63 117/221/63 -f 116/220/65 112/225/65 110/226/65 -f 111/227/80 114/217/80 110/219/80 -f 117/221/68 116/220/68 114/217/68 -f 112/228/15 116/220/15 113/222/15 -f 114/217/63 111/223/63 117/221/63 -f 115/218/65 116/220/65 110/226/65 -f 74/107/67 69/93/69 65/155/69 -f 133/229/68 135/230/68 129/231/68 -f 128/232/81 131/233/81 136/234/81 -f 130/235/68 128/232/68 136/234/68 -f 129/231/82 135/230/82 127/236/82 -f 132/237/66 137/238/66 131/233/66 -f 130/239/15 136/234/15 132/240/15 -f 126/241/15 134/242/15 133/243/15 -f 136/234/15 137/238/15 132/240/15 -f 126/244/66 127/236/66 134/242/66 -f 131/233/81 137/238/81 136/234/81 -f 135/230/82 134/242/82 127/236/82 -f 134/242/15 135/230/15 133/243/15 -f 86/191/75 88/127/75 123/126/75 -f 45/47/66 21/21/66 22/22/66 -f 1/1/65 50/56/65 29/29/65 -f 57/201/6 84/123/6 64/142/67 -f 69/93/69 68/92/7 65/155/69 -f 77/118/70 26/156/70 76/116/71 -f 83/121/4 66/146/4 77/119/70 -f 61/198/3 82/114/3 25/157/71 -f 56/209/74 55/161/73 53/110/74 -f 47/50/23 7/7/23 8/165/68 -f 30/30/63 14/14/63 15/15/63 -f 53/110/74 81/112/1 56/209/74 -f 52/106/73 55/161/73 80/104/12 -f 62/212/78 67/211/77 72/100/78 -f 63/195/10 62/212/78 79/102/10 -f 59/192/9 78/96/9 67/211/77 -f 64/142/67 74/107/67 65/155/69 diff --git a/src/main/resources/assets/hbm/models/missileHuge.obj b/src/main/resources/assets/hbm/models/missileHuge.obj deleted file mode 100644 index 0835cc5e0..000000000 --- a/src/main/resources/assets/hbm/models/missileHuge.obj +++ /dev/null @@ -1,657 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileHuge.blend' -# www.blender.org -o Cylinder -v 0.264256 0.500000 -0.178243 -v 0.352341 0.000000 -0.237657 -v 0.234573 0.000000 -0.354401 -v -0.264256 0.500000 0.178243 -v -0.352341 -0.000000 0.237657 -v -0.234573 -0.000000 0.354402 -v 0.312351 0.500000 -0.063548 -v 0.416468 0.000000 -0.084731 -v -0.312351 0.500000 0.063548 -v -0.416468 -0.000000 0.084731 -v 0.312894 0.500000 0.060821 -v 0.417192 -0.000000 0.081094 -v -0.312894 0.500000 -0.060820 -v -0.417192 0.000000 -0.081094 -v 0.265801 0.500000 0.175930 -v 0.354401 -0.000000 0.234573 -v -0.265801 0.500000 -0.175930 -v -0.354401 0.000000 -0.234573 -v 0.178243 0.500000 0.264256 -v 0.237657 -0.000000 0.352341 -v -0.178243 0.500000 -0.264256 -v -0.237657 0.000000 -0.352341 -v 0.063548 0.500000 0.312351 -v 0.084731 -0.000000 0.416468 -v 0.060820 0.500000 -0.312894 -v 0.081094 0.000000 -0.417192 -v -0.084731 0.000000 -0.416468 -v -0.063548 0.500000 -0.312351 -v -0.060820 0.500000 0.312894 -v -0.081094 -0.000000 0.417192 -v 0.279597 0.500000 0.414519 -v 0.099684 0.500000 0.489962 -v 0.095404 0.500000 -0.490814 -v -0.175930 0.500000 0.265802 -v -0.490814 0.500000 -0.095405 -v -0.490814 2.500000 -0.095405 -v -0.416943 2.500000 -0.275969 -v -0.279596 0.500000 -0.414519 -v -0.416943 0.500000 -0.275969 -v 0.416943 0.500000 0.275968 -v -0.489962 0.500000 0.099684 -v 0.490814 0.500000 0.095405 -v 0.414519 0.500000 -0.279596 -v 0.489962 0.500000 -0.099684 -v -0.414519 0.500000 0.279597 -v 0.275968 0.500000 -0.416943 -v -0.095404 0.500000 0.490814 -v -0.275968 0.500000 0.416943 -v 0.175930 0.500000 -0.265801 -v -0.099684 0.500000 -0.489962 -v 0.414519 2.500000 -0.279596 -v 0.310889 4.000000 -0.209697 -v 0.367472 4.000000 -0.074763 -v 0.416943 2.500000 0.275968 -v 0.279596 2.500000 0.414519 -v -0.279596 2.500000 -0.414519 -v 0.099684 2.500000 0.489962 -v -0.099684 2.500000 -0.489962 -v 0.095404 2.500000 -0.490814 -v -0.095404 2.500000 0.490814 -v 0.275968 2.500000 -0.416943 -v -0.275968 2.500000 0.416943 -v -0.414519 2.500000 0.279597 -v 0.489962 2.500000 -0.099684 -v -0.489962 2.500000 0.099684 -v 0.490814 2.500000 0.095405 -v 0.074763 5.500000 0.367472 -v 0.056072 6.000000 0.275604 -v -0.053665 6.000000 0.276083 -v -0.310889 4.000000 0.209697 -v 0.368110 4.000000 0.071553 -v -0.367472 4.000000 0.074763 -v -0.368110 4.000000 -0.071553 -v 0.312707 4.000000 0.206976 -v 0.209697 4.000000 0.310889 -v -0.312707 4.000000 -0.206976 -v -0.209697 4.000000 -0.310889 -v 0.074763 4.000000 0.367472 -v -0.074763 4.000000 -0.367472 -v -0.071553 4.000000 0.368110 -v 0.071553 4.000000 -0.368110 -v -0.206976 4.000000 0.312707 -v 0.206976 4.000000 -0.312707 -v 0.233166 6.000000 -0.157273 -v 0.155232 6.000000 -0.234530 -v 0.000000 6.500000 0.000000 -v 0.206976 5.500000 -0.312707 -v 0.071553 5.500000 -0.368110 -v 0.053665 6.000000 -0.276083 -v -0.206977 5.500000 0.312707 -v -0.071554 5.500000 0.368110 -v -0.155233 6.000000 0.234530 -v -0.233167 6.000000 0.157273 -v 0.310889 5.500000 -0.209697 -v 0.275603 6.000000 -0.056072 -v -0.367472 5.500000 0.074763 -v -0.310889 5.500000 0.209697 -v 0.367471 5.500000 -0.074763 -v 0.276082 6.000000 0.053665 -v -0.368110 5.500000 -0.071553 -v -0.275604 6.000000 0.056072 -v 0.368110 5.500000 0.071553 -v 0.234530 6.000000 0.155232 -v -0.276083 6.000000 -0.053665 -v -0.234531 6.000000 -0.155232 -v 0.312707 5.500000 0.206976 -v 0.157273 6.000000 0.233167 -v -0.312707 5.500000 -0.206976 -v -0.157273 6.000000 -0.233167 -v 0.209697 5.500000 0.310889 -v -0.074763 5.500000 -0.367472 -v -0.056073 6.000000 -0.275604 -v -0.209697 5.500000 -0.310889 -vt 0.149260 0.839187 -vt 0.109237 0.763560 -vt 0.134278 0.751582 -vt 0.310796 0.812746 -vt 0.324618 0.728305 -vt 0.351807 0.733896 -vt 0.131270 0.849663 -vt 0.085250 0.777529 -vt 0.290131 0.810219 -vt 0.297065 0.724936 -vt 0.114187 0.861563 -vt 0.062473 0.793394 -vt 0.269330 0.809375 -vt 0.269330 0.723810 -vt 0.407390 0.849663 -vt 0.453410 0.777529 -vt 0.476186 0.793394 -vt 0.248528 0.810219 -vt 0.241595 0.724936 -vt 0.389399 0.839187 -vt 0.429422 0.763560 -vt 0.227864 0.812746 -vt 0.214042 0.728305 -vt 0.370619 0.830203 -vt 0.404382 0.751582 -vt 0.187487 0.822771 -vt 0.160206 0.741672 -vt 0.186853 0.733896 -vt 0.207472 0.816939 -vt 0.351172 0.822771 -vt 0.378453 0.741672 -vt 0.914489 0.049954 -vt 0.881833 0.049954 -vt 0.887752 0.020197 -vt 0.840254 0.735366 -vt 0.923908 0.679471 -vt 0.979803 0.763125 -vt 0.587926 0.049954 -vt 0.593845 0.020198 -vt 0.614663 0.020198 -vt 0.331187 0.816939 -vt 0.718551 0.049954 -vt 0.718551 0.384736 -vt 0.685895 0.384736 -vt 0.653238 0.049954 -vt 0.659157 0.020198 -vt 0.679976 0.020197 -vt 0.920408 0.020197 -vt 0.941227 0.020197 -vt 0.685895 0.049954 -vt 0.691814 0.020197 -vt 0.712632 0.020198 -vt 0.947146 0.049954 -vt 0.953064 0.020197 -vt 0.973883 0.020197 -vt 0.751207 0.049954 -vt 0.724470 0.020198 -vt 0.457300 0.049954 -vt 0.463219 0.020197 -vt 0.484038 0.020197 -vt 0.757126 0.020198 -vt 0.777945 0.020197 -vt 0.522613 0.049954 -vt 0.489957 0.049954 -vt 0.495875 0.020197 -vt 0.783864 0.049954 -vt 0.789783 0.020197 -vt 0.810601 0.020198 -vt 0.555269 0.049954 -vt 0.528532 0.020197 -vt 0.849177 0.049954 -vt 0.816520 0.049954 -vt 0.822439 0.020198 -vt 0.561188 0.020197 -vt 0.582007 0.020198 -vt 0.855095 0.020197 -vt 0.875914 0.020197 -vt 0.168041 0.830203 -vt 0.620582 0.049954 -vt 0.626501 0.020198 -vt 0.647319 0.020198 -vt 0.522612 0.384736 -vt 0.518530 0.636659 -vt 0.494038 0.636659 -vt 0.947147 0.384735 -vt 0.914490 0.384735 -vt 0.653238 0.384736 -vt 0.881834 0.384736 -vt 0.620582 0.384736 -vt 0.587925 0.384736 -vt 0.849177 0.384736 -vt 0.555269 0.384736 -vt 0.816521 0.384736 -vt 0.783864 0.384736 -vt 0.489956 0.384736 -vt 0.751208 0.384736 -vt 0.457300 0.384736 -vt 0.979802 0.049954 -vt 0.979803 0.384735 -vt 0.341013 0.271283 -vt 0.337952 0.356383 -vt 0.319582 0.356383 -vt 0.779783 0.636660 -vt 0.485874 0.636661 -vt 0.461382 0.636661 -vt 0.747126 0.636660 -vt 0.722634 0.636660 -vt 0.975722 0.636658 -vt 0.714469 0.636661 -vt 0.943066 0.636659 -vt 0.918573 0.636659 -vt 0.681813 0.636661 -vt 0.657320 0.636661 -vt 0.910409 0.636660 -vt 0.885917 0.636660 -vt 0.616500 0.636662 -vt 0.649156 0.636659 -vt 0.877753 0.636661 -vt 0.853261 0.636661 -vt 0.583843 0.636661 -vt 0.845096 0.636661 -vt 0.820604 0.636661 -vt 0.551187 0.636660 -vt 0.526694 0.636660 -vt 0.812439 0.636661 -vt 0.074658 0.356383 -vt 0.093028 0.356383 -vt 0.083843 0.451970 -vt 0.096089 0.271283 -vt 0.120582 0.271283 -vt 0.117520 0.356383 -vt 0.292028 0.271283 -vt 0.316521 0.271283 -vt 0.313459 0.356382 -vt 0.288967 0.356382 -vt 0.270598 0.356382 -vt 0.071597 0.271283 -vt 0.068535 0.356382 -vt 0.050166 0.356382 -vt 0.243044 0.271283 -vt 0.267536 0.271283 -vt 0.264475 0.356383 -vt 0.047105 0.271283 -vt 0.044043 0.356383 -vt 0.025674 0.356383 -vt 0.218551 0.271283 -vt 0.239982 0.356383 -vt 0.414490 0.271283 -vt 0.411429 0.356382 -vt 0.393060 0.356382 -vt 0.215490 0.356383 -vt 0.197121 0.356383 -vt 0.389998 0.271283 -vt 0.386937 0.356382 -vt 0.368567 0.356382 -vt 0.194059 0.271283 -vt 0.190997 0.356383 -vt 0.172628 0.356383 -vt 0.365505 0.271283 -vt 0.362444 0.356383 -vt 0.344075 0.356383 -vt 0.145074 0.271283 -vt 0.142013 0.356383 -vt 0.123643 0.356383 -vt 0.169567 0.271283 -vt 0.166505 0.356383 -vt 0.059350 0.451969 -vt 0.034858 0.451971 -vt 0.402245 0.451970 -vt 0.377753 0.451970 -vt 0.099151 0.356383 -vt 0.108335 0.451971 -vt 0.353260 0.451971 -vt 0.328767 0.451971 -vt 0.304275 0.451969 -vt 0.295090 0.356382 -vt 0.279783 0.451970 -vt 0.255291 0.451971 -vt 0.246106 0.356383 -vt 0.230798 0.451971 -vt 0.221613 0.356383 -vt 0.206306 0.451971 -vt 0.181813 0.451970 -vt 0.157321 0.451971 -vt 0.148136 0.356383 -vt 0.132828 0.451972 -vt 0.169567 0.020197 -vt 0.145075 0.020197 -vt 0.365505 0.020197 -vt 0.194059 0.020197 -vt 0.389997 0.020197 -vt 0.218551 0.020197 -vt 0.414489 0.020197 -vt 0.243043 0.020197 -vt 0.047106 0.020197 -vt 0.022612 0.271283 -vt 0.267536 0.020197 -vt 0.071598 0.020197 -vt 0.292028 0.020197 -vt 0.096090 0.020197 -vt 0.316520 0.020197 -vt 0.120582 0.020197 -vt 0.341012 0.020197 -vt 0.424472 0.861563 -vt 0.908570 0.020197 -vt 0.969181 0.788769 -vt 0.949553 0.808397 -vt 0.923908 0.819020 -vt 0.896150 0.819020 -vt 0.870505 0.808397 -vt 0.850877 0.788769 -vt 0.840254 0.763124 -vt 0.850877 0.709721 -vt 0.870505 0.690094 -vt 0.896150 0.679471 -vt 0.949553 0.690094 -vt 0.969180 0.709722 -vt 0.979803 0.735366 -vt 0.745288 0.020198 -vt 0.516694 0.020197 -vt 0.549350 0.020197 -vt 0.843257 0.020197 -vt 0.755291 0.636661 -vt 0.951230 0.636658 -vt 0.689977 0.636661 -vt 0.592008 0.636662 -vt 0.624664 0.636659 -vt 0.559351 0.636661 -vt 0.787947 0.636661 -vt 0.022613 0.020197 -vn 0.689200 0.204000 -0.695200 -vn -0.689200 0.204000 0.695200 -vn 0.902800 0.204000 -0.378600 -vn -0.902800 0.204000 0.378600 -vn 0.979000 0.204000 -0.004300 -vn -0.979000 0.204000 0.004300 -vn 0.906100 0.204000 0.370700 -vn -0.906100 0.204000 -0.370700 -vn 0.695200 0.204000 0.689200 -vn -0.695200 0.204000 -0.689200 -vn 0.378600 0.204000 0.902800 -vn -0.004300 0.204000 -0.979000 -vn -0.378600 0.204000 -0.902800 -vn 0.004300 0.204000 0.979000 -vn -0.000000 -1.000000 -0.000000 -vn -0.370700 0.204000 0.906100 -vn -0.925500 0.000000 -0.378700 -vn -0.925500 0.000000 -0.378600 -vn 0.370700 0.204000 -0.906100 -vn 0.919100 0.081500 -0.385400 -vn 0.710200 0.000000 0.704000 -vn -0.710200 0.000000 -0.704000 -vn 0.386700 -0.000000 0.922200 -vn -0.004400 0.000000 -1.000000 -vn -0.386700 0.000000 -0.922200 -vn 0.004400 -0.000000 1.000000 -vn 0.378600 0.000000 -0.925500 -vn -0.378700 -0.000000 0.925500 -vn 0.704000 0.000000 -0.710200 -vn -0.704000 -0.000000 0.710200 -vn 0.922200 0.000000 -0.386700 -vn -0.922200 -0.000000 0.386700 -vn 1.000000 0.000000 -0.004400 -vn -1.000000 0.000000 0.004400 -vn 0.925500 -0.000000 0.378700 -vn 0.004300 0.180900 0.983500 -vn -0.919100 0.081500 0.385400 -vn 0.996700 0.081500 -0.004400 -vn 0.996700 0.081500 -0.004300 -vn -0.996700 0.081500 0.004400 -vn -0.996700 0.081500 0.004300 -vn 0.922500 0.081500 0.377400 -vn -0.922500 0.081500 -0.377400 -vn 0.707800 0.081500 0.701700 -vn -0.707800 0.081500 -0.701700 -vn 0.385400 0.081500 0.919100 -vn -0.004400 0.081500 -0.996700 -vn -0.004300 0.081500 -0.996700 -vn -0.385400 0.081500 -0.919100 -vn 0.004400 0.081500 0.996700 -vn 0.004300 0.081500 0.996700 -vn 0.377400 0.081500 -0.922500 -vn -0.377400 0.081500 0.922500 -vn 0.701700 0.081500 -0.707800 -vn -0.701700 0.081500 0.707800 -vn 0.616400 0.483100 -0.621800 -vn 0.372400 0.180900 -0.910300 -vn -0.372400 0.180900 0.910300 -vn 0.692400 0.180900 -0.698500 -vn -0.692400 0.180900 0.698500 -vn 0.907000 0.180900 -0.380300 -vn -0.907000 0.180900 0.380300 -vn 0.983500 0.180900 -0.004300 -vn -0.983500 0.180900 0.004300 -vn 0.910300 0.180900 0.372400 -vn -0.910300 0.180900 -0.372400 -vn 0.698500 0.180900 0.692400 -vn -0.698500 0.180900 -0.692400 -vn 0.380300 0.180900 0.907000 -vn -0.004300 0.180900 -0.983500 -vn -0.380300 0.180900 -0.907000 -vn 0.807500 0.483100 -0.338600 -vn 0.875600 0.483100 -0.003800 -vn 0.810400 0.483100 0.331500 -vn 0.621800 0.483100 0.616400 -vn 0.331500 0.483100 -0.810400 -vn 0.338600 0.483100 0.807500 -vn 0.003800 0.483100 0.875600 -vn -0.331500 0.483100 0.810400 -vn -0.616400 0.483100 0.621800 -vn -0.807500 0.483100 0.338600 -vn -0.875600 0.483100 0.003800 -vn -0.810400 0.483100 -0.331500 -vn -0.621800 0.483100 -0.616400 -vn -0.338600 0.483100 -0.807500 -vn -0.003800 0.483100 -0.875600 -vn 0.925500 -0.000000 0.378600 -vn -0.378600 -0.000000 0.925500 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 8/8/3 2/2/3 -f 9/9/4 10/10/4 5/5/4 -f 11/11/5 12/12/5 8/8/5 -f 13/13/6 14/14/6 10/10/6 -f 15/15/7 16/16/7 12/17/7 -f 17/18/8 18/19/8 14/14/8 -f 19/20/9 20/21/9 16/16/9 -f 21/22/10 22/23/10 18/19/10 -f 23/24/11 24/25/11 20/21/11 -f 25/26/12 26/27/12 27/28/12 -f 28/29/13 27/28/13 22/23/13 -f 29/30/14 30/31/14 24/25/14 -f 31/32/15 32/33/15 23/34/15 -f 24/35/15 10/36/15 27/37/15 -f 33/38/15 25/39/15 28/40/15 -f 34/41/16 6/6/16 30/31/16 -f 35/42/17 36/43/18 37/44/18 -f 38/45/15 21/46/15 17/47/15 -f 31/32/15 19/48/15 15/49/15 -f 39/50/15 17/51/15 13/52/15 -f 40/53/15 15/54/15 11/55/15 -f 41/56/15 35/42/15 13/57/15 -f 42/58/15 11/59/15 7/60/15 -f 41/56/15 9/61/15 4/62/15 -f 43/63/15 44/64/15 7/65/15 -f 45/66/15 4/67/15 34/68/15 -f 46/69/15 43/63/15 1/70/15 -f 47/71/15 48/72/15 34/73/15 -f 46/69/15 49/74/15 25/75/15 -f 47/71/15 29/76/15 23/77/15 -f 49/78/19 3/3/19 26/27/19 -f 50/79/15 28/80/15 21/81/15 -f 51/82/20 52/83/20 53/84/20 -f 40/53/21 54/85/21 55/86/21 -f 39/50/22 37/44/22 56/87/22 -f 31/32/23 55/86/23 57/88/23 -f 50/79/24 58/89/24 59/90/24 -f 50/79/25 38/45/25 56/87/25 -f 32/33/26 57/88/26 60/91/26 -f 33/38/27 59/90/27 61/92/27 -f 47/71/28 60/91/28 62/93/28 -f 46/69/29 61/92/29 51/82/29 -f 48/72/30 62/93/30 63/94/30 -f 43/63/31 51/82/31 64/95/31 -f 45/66/32 63/94/32 65/96/32 -f 44/64/33 64/95/33 66/97/33 -f 41/56/34 65/96/34 36/43/34 -f 42/98/35 66/99/35 54/85/35 -f 67/100/36 68/101/36 69/102/36 -f 65/96/37 63/94/37 70/103/37 -f 64/95/38 53/104/39 71/105/39 -f 65/96/40 72/106/41 73/107/41 -f 54/85/42 66/99/42 71/108/42 -f 37/44/43 36/43/43 73/109/43 -f 54/85/44 74/110/44 75/111/44 -f 37/44/45 76/112/45 77/113/45 -f 55/86/46 75/114/46 78/115/46 -f 59/90/47 58/89/47 79/116/48 -f 58/89/49 56/87/49 77/117/49 -f 57/88/50 78/118/51 80/119/51 -f 61/92/52 59/90/52 81/120/52 -f 60/91/53 80/121/53 82/122/53 -f 61/92/54 83/123/54 52/124/54 -f 63/94/55 62/93/55 82/125/55 -f 84/126/56 85/127/56 86/128/56 -f 87/129/57 88/130/57 89/131/57 -f 90/132/58 91/133/58 69/134/58 -f 87/129/59 85/127/59 84/126/59 -f 90/132/60 92/135/60 93/136/60 -f 94/137/61 84/138/61 95/139/61 -f 96/140/62 97/141/62 93/142/62 -f 98/143/63 95/144/63 99/145/63 -f 100/146/64 96/140/64 101/147/64 -f 102/148/65 99/149/65 103/150/65 -f 100/146/66 104/151/66 105/152/66 -f 106/153/67 103/154/67 107/155/67 -f 108/156/68 105/157/68 109/158/68 -f 110/159/69 107/160/69 68/161/69 -f 111/162/70 112/163/70 89/164/70 -f 111/162/71 113/165/71 109/166/71 -f 84/138/72 86/167/72 95/139/72 -f 95/144/73 86/168/73 99/145/73 -f 99/149/74 86/169/74 103/150/74 -f 103/154/75 86/170/75 107/155/75 -f 85/171/76 89/131/76 86/172/76 -f 107/160/77 86/173/77 68/161/77 -f 68/101/78 86/174/78 69/102/78 -f 69/134/79 86/175/79 92/176/79 -f 92/135/80 86/177/80 93/136/80 -f 93/142/81 86/178/81 101/179/81 -f 101/147/82 86/180/82 104/181/82 -f 104/151/83 86/182/83 105/152/83 -f 105/157/84 86/183/84 109/158/84 -f 109/166/85 86/184/85 112/185/85 -f 112/163/86 86/186/86 89/164/86 -f 77/187/25 113/165/25 111/162/25 -f 79/188/24 111/162/24 88/130/24 -f 75/189/23 110/159/23 67/100/23 -f 76/190/22 108/156/22 113/165/22 -f 74/191/21 106/153/21 110/159/21 -f 73/192/18 100/146/18 108/156/18 -f 71/193/87 102/148/87 106/153/87 -f 72/194/34 96/140/34 100/146/34 -f 53/195/33 98/143/33 102/196/33 -f 70/197/32 97/141/32 96/140/32 -f 52/198/31 94/137/31 98/143/31 -f 82/199/30 90/132/30 97/141/30 -f 83/200/29 87/129/29 94/137/29 -f 80/201/88 91/133/88 90/132/88 -f 81/202/27 88/130/27 87/129/27 -f 80/201/26 78/203/26 67/100/26 -f 49/78/1 1/1/1 3/3/1 -f 34/41/2 4/4/2 6/6/2 -f 1/1/3 7/7/3 2/2/3 -f 4/4/4 9/9/4 5/5/4 -f 7/7/5 11/11/5 8/8/5 -f 9/9/6 13/13/6 10/10/6 -f 11/204/7 15/15/7 12/17/7 -f 13/13/8 17/18/8 14/14/8 -f 15/15/9 19/20/9 16/16/9 -f 17/18/10 21/22/10 18/19/10 -f 19/20/11 23/24/11 20/21/11 -f 28/29/12 25/26/12 27/28/12 -f 21/22/13 28/29/13 22/23/13 -f 23/24/14 29/30/14 24/25/14 -f 19/205/15 31/32/15 23/34/15 -f 27/37/15 26/206/15 3/207/15 -f 3/207/15 2/208/15 8/209/15 -f 8/209/15 12/210/15 16/211/15 -f 16/211/15 20/212/15 24/35/15 -f 24/35/15 30/213/15 10/36/15 -f 6/214/15 5/215/15 10/36/15 -f 10/36/15 14/216/15 18/217/15 -f 18/217/15 22/218/15 10/36/15 -f 27/37/15 3/207/15 8/209/15 -f 8/209/15 16/211/15 24/35/15 -f 30/213/15 6/214/15 10/36/15 -f 10/36/15 22/218/15 27/37/15 -f 27/37/15 8/209/15 24/35/15 -f 50/79/15 33/38/15 28/40/15 -f 29/30/16 34/41/16 30/31/16 -f 39/50/17 35/42/17 37/44/18 -f 39/50/15 38/45/15 17/47/15 -f 40/53/15 31/32/15 15/49/15 -f 35/42/15 39/50/15 13/52/15 -f 42/98/15 40/53/15 11/55/15 -f 9/219/15 41/56/15 13/57/15 -f 44/64/15 42/58/15 7/60/15 -f 45/66/15 41/56/15 4/62/15 -f 1/220/15 43/63/15 7/65/15 -f 48/72/15 45/66/15 34/68/15 -f 49/221/15 46/69/15 1/70/15 -f 29/222/15 47/71/15 34/73/15 -f 33/38/15 46/69/15 25/75/15 -f 32/33/15 47/71/15 23/77/15 -f 25/26/19 49/78/19 26/27/19 -f 38/45/15 50/79/15 21/81/15 -f 64/95/20 51/82/20 53/84/20 -f 31/32/21 40/53/21 55/86/21 -f 38/45/22 39/50/22 56/87/22 -f 32/33/23 31/32/23 57/88/23 -f 33/38/24 50/79/24 59/90/24 -f 58/89/25 50/79/25 56/87/25 -f 47/71/26 32/33/26 60/91/26 -f 46/69/27 33/38/27 61/92/27 -f 48/72/28 47/71/28 62/93/28 -f 43/63/29 46/69/29 51/82/29 -f 45/66/30 48/72/30 63/94/30 -f 44/64/31 43/63/31 64/95/31 -f 41/56/32 45/66/32 65/96/32 -f 42/58/33 44/64/33 66/97/33 -f 35/42/34 41/56/34 36/43/34 -f 40/53/35 42/98/35 54/85/35 -f 91/133/36 67/100/36 69/102/36 -f 72/223/37 65/96/37 70/103/37 -f 66/97/38 64/95/38 71/105/39 -f 36/43/40 65/96/40 73/107/41 -f 74/224/42 54/85/42 71/108/42 -f 76/225/43 37/44/43 73/109/43 -f 55/86/44 54/85/44 75/111/44 -f 56/87/45 37/44/45 77/113/45 -f 57/88/46 55/86/46 78/115/46 -f 81/226/48 59/90/47 79/116/48 -f 79/227/49 58/89/49 77/117/49 -f 60/91/50 57/88/50 80/119/51 -f 83/228/52 61/92/52 81/120/52 -f 62/93/53 60/91/53 82/122/53 -f 51/82/54 61/92/54 52/124/54 -f 70/229/55 63/94/55 82/125/55 -f 85/171/57 87/129/57 89/131/57 -f 92/176/58 90/132/58 69/134/58 -f 94/137/59 87/129/59 84/126/59 -f 97/141/60 90/132/60 93/136/60 -f 98/143/61 94/137/61 95/139/61 -f 101/179/62 96/140/62 93/142/62 -f 102/196/63 98/143/63 99/145/63 -f 104/181/64 100/146/64 101/147/64 -f 106/153/65 102/148/65 103/150/65 -f 108/156/66 100/146/66 105/152/66 -f 110/159/67 106/153/67 107/155/67 -f 113/165/68 108/156/68 109/158/68 -f 67/100/69 110/159/69 68/161/69 -f 88/130/70 111/162/70 89/164/70 -f 112/185/71 111/162/71 109/166/71 -f 79/188/25 77/187/25 111/162/25 -f 81/202/24 79/188/24 88/130/24 -f 78/203/23 75/189/23 67/100/23 -f 77/187/22 76/190/22 113/165/22 -f 75/189/21 74/191/21 110/159/21 -f 76/190/18 73/192/18 108/156/18 -f 74/191/87 71/193/87 106/153/87 -f 73/192/34 72/194/34 100/146/34 -f 71/230/33 53/195/33 102/196/33 -f 72/194/32 70/197/32 96/140/32 -f 53/195/31 52/198/31 98/143/31 -f 70/197/30 82/199/30 97/141/30 -f 52/198/29 83/200/29 94/137/29 -f 82/199/88 80/201/88 90/132/88 -f 83/200/27 81/202/27 87/129/27 -f 91/133/26 80/201/26 67/100/26 diff --git a/src/main/resources/assets/hbm/models/missileMIRV.obj b/src/main/resources/assets/hbm/models/missileMIRV.obj deleted file mode 100644 index f28ac0a44..000000000 --- a/src/main/resources/assets/hbm/models/missileMIRV.obj +++ /dev/null @@ -1,472 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileMIRV.blend' -# www.blender.org -o Cylinder -v -0.097545 2.000000 -0.490393 -v 0.097545 2.000000 -0.490393 -v 0.097545 0.000000 -0.490393 -v 0.277785 2.000000 -0.415735 -v 0.277785 0.000000 -0.415735 -v 0.415735 2.000000 -0.277785 -v 0.415735 0.000000 -0.277785 -v 0.490393 2.000000 -0.097545 -v 0.490393 0.000000 -0.097545 -v 0.490393 2.000000 0.097545 -v 0.490393 -0.000000 0.097545 -v 0.415735 2.000000 0.277785 -v 0.415735 -0.000000 0.277785 -v 0.277785 2.000000 0.415735 -v 0.277785 -0.000000 0.415735 -v 0.097545 2.000000 0.490393 -v 0.097545 -0.000000 0.490393 -v -0.097545 2.000000 0.490393 -v -0.097545 -0.000000 0.490393 -v -0.277785 2.000000 0.415735 -v -0.277785 -0.000000 0.415735 -v -0.415735 2.000000 0.277785 -v -0.415735 -0.000000 0.277785 -v -0.490393 2.000000 0.097545 -v -0.490393 -0.000000 0.097545 -v -0.490393 2.000000 -0.097545 -v -0.490393 0.000000 -0.097545 -v -0.415735 2.000000 -0.277785 -v -0.415735 0.000000 -0.277785 -v 0.367795 3.500000 0.073159 -v 0.311801 3.500000 0.208339 -v -0.277785 2.000000 -0.415735 -v -0.097545 0.000000 -0.490393 -v -0.277785 0.000000 -0.415735 -v -0.367794 3.500000 -0.073159 -v -0.367795 5.000000 -0.073159 -v -0.311801 5.000000 -0.208339 -v -0.208339 3.500000 0.311801 -v -0.311801 3.500000 0.208339 -v -0.208339 3.500000 -0.311801 -v -0.073159 3.500000 -0.367794 -v 0.311801 3.500000 -0.208339 -v 0.073159 3.500000 0.367794 -v -0.311801 3.500000 -0.208339 -v 0.073159 3.500000 -0.367794 -v 0.208339 3.500000 -0.311801 -v 0.208339 3.500000 0.311801 -v -0.367794 3.500000 0.073159 -v 0.367795 3.500000 -0.073159 -v -0.073159 3.500000 0.367795 -v -0.311801 5.000000 0.208339 -v -0.228654 6.000000 0.152782 -v -0.269716 6.000000 0.053650 -v 0.311801 5.000000 0.208339 -v 0.208339 5.000000 0.311801 -v -0.208339 5.000000 -0.311801 -v 0.073159 5.000000 0.367794 -v -0.073159 5.000000 -0.367794 -v 0.073159 5.000000 -0.367794 -v -0.073159 5.000000 0.367795 -v 0.208339 5.000000 -0.311801 -v -0.208339 5.000000 0.311801 -v 0.311801 5.000000 -0.208339 -v 0.367794 5.000000 -0.073159 -v -0.367795 5.000000 0.073159 -v 0.367794 5.000000 0.073159 -v 0.228654 6.000000 -0.152782 -v 0.152782 6.000000 -0.228654 -v 0.000000 7.000000 0.000000 -v 0.269716 6.000000 -0.053650 -v -0.269716 6.000000 -0.053650 -v 0.269716 6.000000 0.053650 -v 0.228654 6.000000 0.152782 -v -0.228654 6.000000 -0.152782 -v 0.152782 6.000000 0.228654 -v -0.053650 6.000000 -0.269716 -v 0.053650 6.000000 -0.269716 -v -0.152782 6.000000 -0.228654 -v 0.053650 6.000000 0.269716 -v -0.053650 6.000000 0.269716 -v -0.152782 6.000000 0.228654 -vt 0.614465 0.355173 -vt 0.582182 0.355174 -vt 0.582181 0.024218 -vt 0.549899 0.355174 -vt 0.549898 0.024218 -vt 0.517616 0.355174 -vt 0.517615 0.024218 -vt 0.485333 0.355174 -vt 0.485331 0.024218 -vt 0.453049 0.355174 -vt 0.453048 0.024218 -vt 0.969580 0.355174 -vt 0.937297 0.355174 -vt 0.937298 0.024218 -vt 0.905014 0.355174 -vt 0.905015 0.024218 -vt 0.872730 0.355174 -vt 0.872732 0.024218 -vt 0.840447 0.355174 -vt 0.840448 0.024218 -vt 0.808164 0.355173 -vt 0.808165 0.024218 -vt 0.775881 0.355173 -vt 0.775881 0.024218 -vt 0.743598 0.355173 -vt 0.743598 0.024218 -vt 0.711315 0.355173 -vt 0.711315 0.024218 -vt 0.679032 0.355173 -vt 0.679031 0.024218 -vt 0.965543 0.604218 -vt 0.941331 0.604218 -vt 0.646748 0.355173 -vt 0.614465 0.024218 -vt 0.646748 0.024218 -vt 0.872257 0.814551 -vt 0.807283 0.717237 -vt 0.904596 0.652263 -vt 0.211315 0.024218 -vt 0.211315 0.272435 -vt 0.187102 0.272435 -vt 0.804128 0.604218 -vt 0.779916 0.604218 -vt 0.642713 0.604218 -vt 0.618501 0.604218 -vt 0.513581 0.604218 -vt 0.868694 0.604218 -vt 0.707279 0.604218 -vt 0.683067 0.604218 -vt 0.578147 0.604218 -vt 0.553935 0.604218 -vt 0.933260 0.604218 -vt 0.909048 0.604218 -vt 0.771845 0.604218 -vt 0.747633 0.604218 -vt 0.481298 0.604218 -vt 0.457086 0.604218 -vt 0.836411 0.604218 -vt 0.812199 0.604218 -vt 0.674996 0.604218 -vt 0.650784 0.604218 -vt 0.545864 0.604218 -vt 0.900977 0.604218 -vt 0.876765 0.604218 -vt 0.610430 0.604218 -vt 0.586218 0.604218 -vt 0.739562 0.604218 -vt 0.715350 0.604218 -vt 0.259740 0.272435 -vt 0.256511 0.438707 -vt 0.238756 0.438707 -vt 0.380801 0.024219 -vt 0.380801 0.272435 -vt 0.356589 0.272435 -vt 0.187103 0.024218 -vt 0.162890 0.272435 -vt 0.356589 0.024219 -vt 0.332377 0.272435 -vt 0.138679 0.024218 -vt 0.138678 0.272435 -vt 0.114465 0.272435 -vt 0.162891 0.024218 -vt 0.332377 0.024219 -vt 0.308164 0.272435 -vt 0.114466 0.024218 -vt 0.090253 0.272434 -vt 0.308165 0.024219 -vt 0.283952 0.272435 -vt 0.090254 0.024218 -vt 0.066041 0.272434 -vt 0.283952 0.024219 -vt 0.066042 0.024218 -vt 0.041828 0.272434 -vt 0.259740 0.024219 -vt 0.235527 0.272435 -vt 0.041829 0.024218 -vt 0.017616 0.272434 -vt 0.235528 0.024219 -vt 0.405014 0.024219 -vt 0.405014 0.272435 -vt 0.069268 0.438705 -vt 0.087024 0.438705 -vt 0.078146 0.610096 -vt 0.038599 0.438707 -vt 0.232299 0.438707 -vt 0.214543 0.438707 -vt 0.401786 0.438707 -vt 0.384030 0.438707 -vt 0.208086 0.438707 -vt 0.190330 0.438707 -vt 0.377573 0.438706 -vt 0.183874 0.438706 -vt 0.353361 0.438707 -vt 0.135449 0.438707 -vt 0.117693 0.438707 -vt 0.159662 0.438707 -vt 0.329149 0.438707 -vt 0.311393 0.438707 -vt 0.111237 0.438707 -vt 0.093481 0.438707 -vt 0.304936 0.438707 -vt 0.287180 0.438707 -vt 0.280723 0.438706 -vt 0.262968 0.438706 -vt 0.062812 0.438707 -vt 0.045056 0.438707 -vt 0.296057 0.610098 -vt 0.320271 0.610099 -vt 0.344483 0.610101 -vt 0.335605 0.438707 -vt 0.368695 0.610095 -vt 0.359817 0.438706 -vt 0.392908 0.610101 -vt 0.102358 0.610101 -vt 0.029721 0.610100 -vt 0.020843 0.438707 -vt 0.053934 0.610099 -vt 0.271846 0.610095 -vt 0.247634 0.610098 -vt 0.223421 0.610099 -vt 0.199207 0.610098 -vt 0.174995 0.610095 -vt 0.166118 0.438706 -vt 0.150783 0.610101 -vt 0.141906 0.438707 -vt 0.126570 0.610099 -vt 0.969581 0.024218 -vt 0.934418 0.664628 -vt 0.957238 0.687463 -vt 0.969581 0.717294 -vt 0.969570 0.749577 -vt 0.957206 0.779398 -vt 0.934370 0.802218 -vt 0.904540 0.814562 -vt 0.842436 0.802186 -vt 0.819616 0.779351 -vt 0.807272 0.749521 -vt 0.819648 0.687416 -vt 0.842483 0.664596 -vt 0.872313 0.652252 -vt 0.489369 0.604218 -vt 0.844482 0.604218 -vt 0.521652 0.604218 -vt 0.017617 0.024218 -vn 0.000000 0.000000 -1.000000 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 0.000000 -0.707100 -vn 0.923900 -0.000000 -0.382700 -vn 1.000000 0.000000 0.000000 -vn 0.923900 -0.000000 0.382700 -vn 0.707100 -0.000000 0.707100 -vn 0.382700 -0.000000 0.923900 -vn 0.000000 -0.000000 1.000000 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 -0.000000 0.707100 -vn -0.923900 -0.000000 0.382700 -vn -1.000000 0.000000 0.000000 -vn -0.923900 0.000000 -0.382700 -vn 0.920800 0.081500 0.381400 -vn -0.382700 0.000000 -0.923900 -vn -0.707100 0.000000 -0.707100 -vn -0.000000 -1.000000 -0.000000 -vn -0.704800 0.081500 0.704800 -vn -0.381400 0.081500 -0.920800 -vn 0.920800 0.081500 -0.381400 -vn 0.000000 0.081500 0.996700 -vn -0.920800 0.081500 -0.381400 -vn 0.381400 0.081500 -0.920800 -vn 0.704800 0.081500 0.704800 -vn -0.920800 0.081500 0.381400 -vn 0.996700 0.081500 0.000000 -vn -0.381400 0.081500 0.920800 -vn -0.704800 0.081500 -0.704800 -vn 0.704800 0.081500 -0.704800 -vn 0.381400 0.081500 0.920800 -vn 0.000000 0.081500 -0.996700 -vn -0.996700 0.081500 0.000000 -vn -0.919500 0.097600 0.380900 -vn 0.682700 0.260400 -0.682700 -vn 0.995200 0.097600 0.000000 -vn -0.995200 0.097600 0.000000 -vn 0.919500 0.097600 0.380900 -vn -0.919500 0.097600 -0.380900 -vn 0.703700 0.097600 0.703700 -vn -0.703700 0.097600 -0.703700 -vn 0.380900 0.097600 0.919500 -vn 0.000000 0.097600 -0.995200 -vn -0.380900 0.097600 -0.919500 -vn 0.000000 0.097600 0.995200 -vn 0.380900 0.097600 -0.919500 -vn -0.380900 0.097600 0.919500 -vn 0.703700 0.097600 -0.703700 -vn -0.703700 0.097600 0.703700 -vn 0.919500 0.097600 -0.380900 -vn -0.369500 0.260400 0.892000 -vn 0.000000 0.260400 0.965500 -vn 0.369500 0.260400 0.892000 -vn 0.682700 0.260400 0.682700 -vn 0.892000 0.260400 0.369500 -vn 0.369500 0.260400 -0.892000 -vn 0.965500 0.260400 0.000000 -vn 0.892000 0.260400 -0.369500 -vn -0.682700 0.260400 0.682700 -vn -0.892000 0.260400 0.369500 -vn -0.965500 0.260400 0.000000 -vn -0.892000 0.260400 -0.369500 -vn -0.682700 0.260400 -0.682700 -vn -0.369500 0.260400 -0.892000 -vn 0.000000 0.260400 -0.965500 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/2/2 4/4/2 5/5/2 -f 4/4/3 6/6/3 7/7/3 -f 6/6/4 8/8/4 9/9/4 -f 8/8/5 10/10/5 11/11/5 -f 10/12/6 12/13/6 13/14/6 -f 12/13/7 14/15/7 15/16/7 -f 14/15/8 16/17/8 17/18/8 -f 16/17/9 18/19/9 19/20/9 -f 18/19/10 20/21/10 21/22/10 -f 20/21/11 22/23/11 23/24/11 -f 22/23/12 24/25/12 25/26/12 -f 24/25/13 26/27/13 27/28/13 -f 26/27/14 28/29/14 29/30/14 -f 10/12/15 30/31/15 31/32/15 -f 32/33/16 1/1/16 33/34/16 -f 28/29/17 32/33/17 34/35/17 -f 15/36/18 23/37/18 34/38/18 -f 35/39/14 36/40/14 37/41/14 -f 20/21/19 38/42/19 39/43/19 -f 32/33/20 40/44/20 41/45/20 -f 8/8/21 6/6/21 42/46/21 -f 18/19/22 16/17/22 43/47/22 -f 26/27/23 35/48/23 44/49/23 -f 2/2/24 45/50/24 46/51/24 -f 12/13/25 31/52/25 47/53/25 -f 22/23/26 39/54/26 48/55/26 -f 8/8/27 49/56/27 30/57/27 -f 18/19/28 50/58/28 38/59/28 -f 28/29/29 44/60/29 40/61/29 -f 6/6/30 4/4/30 46/62/30 -f 14/15/31 47/63/31 43/64/31 -f 1/1/32 41/65/32 45/66/32 -f 24/25/33 48/67/33 35/68/33 -f 51/69/34 52/70/34 53/71/34 -f 31/72/7 54/73/7 55/74/7 -f 44/75/17 37/41/17 56/76/17 -f 47/77/8 55/74/8 57/78/8 -f 41/79/1 58/80/1 59/81/1 -f 40/82/16 56/76/16 58/80/16 -f 43/83/9 57/78/9 60/84/9 -f 45/85/2 59/81/2 61/86/2 -f 50/87/10 60/84/10 62/88/10 -f 46/89/3 61/86/3 63/90/3 -f 38/91/11 62/88/11 51/69/11 -f 42/92/4 63/90/4 64/93/4 -f 39/94/12 51/69/12 65/95/12 -f 49/96/5 64/93/5 66/97/5 -f 48/98/13 65/95/13 36/40/13 -f 30/99/6 66/100/6 54/73/6 -f 67/101/35 68/102/35 69/103/35 -f 66/97/36 64/93/36 70/104/36 -f 65/95/37 53/105/37 71/106/37 -f 66/100/38 72/107/38 73/108/38 -f 36/40/39 71/109/39 74/110/39 -f 55/74/40 54/73/40 73/111/40 -f 56/76/41 37/41/41 74/112/41 -f 57/78/42 55/74/42 75/113/42 -f 58/80/43 76/114/43 77/115/43 -f 58/80/44 56/76/44 78/116/44 -f 57/78/45 79/117/45 80/118/45 -f 59/81/46 77/119/46 68/120/46 -f 60/84/47 80/121/47 81/122/47 -f 61/86/48 68/102/48 67/101/48 -f 62/88/49 81/123/49 52/124/49 -f 63/90/50 67/125/50 70/126/50 -f 80/121/51 69/127/51 81/122/51 -f 79/117/52 69/128/52 80/118/52 -f 75/113/53 69/129/53 79/130/53 -f 73/111/54 69/131/54 75/132/54 -f 72/107/55 69/133/55 73/108/55 -f 77/119/56 69/134/56 68/120/56 -f 70/104/57 69/135/57 72/136/57 -f 67/125/58 69/137/58 70/126/58 -f 81/123/59 69/138/59 52/124/59 -f 52/70/60 69/139/60 53/71/60 -f 53/105/61 69/140/61 71/106/61 -f 71/109/62 69/141/62 74/110/62 -f 74/112/63 69/142/63 78/143/63 -f 78/116/64 69/144/64 76/145/64 -f 76/114/65 69/146/65 77/115/65 -f 33/34/1 1/1/1 3/3/1 -f 3/3/2 2/2/2 5/5/2 -f 5/5/3 4/4/3 7/7/3 -f 7/7/4 6/6/4 9/9/4 -f 9/9/5 8/8/5 11/11/5 -f 11/147/6 10/12/6 13/14/6 -f 13/14/7 12/13/7 15/16/7 -f 15/16/8 14/15/8 17/18/8 -f 17/18/9 16/17/9 19/20/9 -f 19/20/10 18/19/10 21/22/10 -f 21/22/11 20/21/11 23/24/11 -f 23/24/12 22/23/12 25/26/12 -f 25/26/13 24/25/13 27/28/13 -f 27/28/14 26/27/14 29/30/14 -f 12/13/15 10/12/15 31/32/15 -f 34/35/16 32/33/16 33/34/16 -f 29/30/17 28/29/17 34/35/17 -f 34/38/18 33/148/18 3/149/18 -f 3/149/18 5/150/18 34/38/18 -f 7/151/18 9/152/18 15/36/18 -f 11/153/18 13/154/18 15/36/18 -f 15/36/18 17/155/18 23/37/18 -f 19/156/18 21/157/18 23/37/18 -f 23/37/18 25/158/18 27/159/18 -f 27/159/18 29/160/18 23/37/18 -f 34/38/18 5/150/18 7/151/18 -f 9/152/18 11/153/18 15/36/18 -f 17/155/18 19/156/18 23/37/18 -f 23/37/18 29/160/18 34/38/18 -f 34/38/18 7/151/18 15/36/18 -f 44/75/14 35/39/14 37/41/14 -f 22/23/19 20/21/19 39/43/19 -f 1/1/20 32/33/20 41/45/20 -f 49/161/21 8/8/21 42/46/21 -f 50/162/22 18/19/22 43/47/22 -f 28/29/23 26/27/23 44/49/23 -f 4/4/24 2/2/24 46/51/24 -f 14/15/25 12/13/25 47/53/25 -f 24/25/26 22/23/26 48/55/26 -f 10/10/27 8/8/27 30/57/27 -f 20/21/28 18/19/28 38/59/28 -f 32/33/29 28/29/29 40/61/29 -f 42/163/30 6/6/30 46/62/30 -f 16/17/31 14/15/31 43/64/31 -f 2/2/32 1/1/32 45/66/32 -f 26/27/33 24/25/33 35/68/33 -f 65/95/34 51/69/34 53/71/34 -f 47/77/7 31/72/7 55/74/7 -f 40/82/17 44/75/17 56/76/17 -f 43/83/8 47/77/8 57/78/8 -f 45/85/1 41/79/1 59/81/1 -f 41/79/16 40/82/16 58/80/16 -f 50/87/9 43/83/9 60/84/9 -f 46/89/2 45/85/2 61/86/2 -f 38/91/10 50/87/10 62/88/10 -f 42/92/3 46/89/3 63/90/3 -f 39/94/11 38/91/11 51/69/11 -f 49/96/4 42/92/4 64/93/4 -f 48/98/12 39/94/12 65/95/12 -f 30/164/5 49/96/5 66/97/5 -f 35/39/13 48/98/13 36/40/13 -f 31/72/6 30/99/6 54/73/6 -f 72/136/36 66/97/36 70/104/36 -f 36/40/37 65/95/37 71/106/37 -f 54/73/38 66/100/38 73/108/38 -f 37/41/39 36/40/39 74/110/39 -f 75/132/40 55/74/40 73/111/40 -f 78/143/41 56/76/41 74/112/41 -f 79/130/42 57/78/42 75/113/42 -f 59/81/43 58/80/43 77/115/43 -f 76/145/44 58/80/44 78/116/44 -f 60/84/45 57/78/45 80/118/45 -f 61/86/46 59/81/46 68/120/46 -f 62/88/47 60/84/47 81/122/47 -f 63/90/48 61/86/48 67/101/48 -f 51/69/49 62/88/49 52/124/49 -f 64/93/50 63/90/50 70/126/50 diff --git a/src/main/resources/assets/hbm/models/missileNuclear.obj b/src/main/resources/assets/hbm/models/missileNuclear.obj deleted file mode 100644 index 29f98141c..000000000 --- a/src/main/resources/assets/hbm/models/missileNuclear.obj +++ /dev/null @@ -1,794 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileNuclear.blend' -# www.blender.org -o Cylinder -v -0.073159 0.500000 -0.367794 -v 0.073159 0.500000 -0.367794 -v 0.097545 0.000000 -0.490393 -v 0.208339 0.500000 -0.311801 -v 0.277785 0.000000 -0.415735 -v 0.311801 0.500000 -0.208339 -v 0.415735 0.000000 -0.277785 -v 0.367794 0.500000 -0.073159 -v 0.490393 0.000000 -0.097545 -v 0.367794 0.500000 0.073159 -v 0.490393 -0.000000 0.097545 -v 0.311801 0.500000 0.208339 -v 0.415735 -0.000000 0.277785 -v 0.208339 0.500000 0.311801 -v 0.277785 -0.000000 0.415735 -v 0.073159 0.500000 0.367794 -v 0.097545 -0.000000 0.490393 -v -0.073159 0.500000 0.367794 -v -0.097545 -0.000000 0.490393 -v -0.208339 0.500000 0.311801 -v -0.277785 -0.000000 0.415735 -v -0.311801 0.500000 0.208339 -v -0.415735 -0.000000 0.277785 -v -0.367794 0.500000 0.073159 -v -0.490393 -0.000000 0.097545 -v -0.367794 0.500000 -0.073159 -v -0.311801 0.500000 -0.208339 -v -0.415735 0.000000 -0.277785 -v 0.097545 0.500000 -0.490393 -v -0.208339 0.500000 -0.311801 -v -0.097545 0.000000 -0.490393 -v -0.277785 0.000000 -0.415735 -v -0.490393 0.500000 0.097545 -v -0.490393 0.500000 -0.097545 -v 0.490393 0.500000 -0.097545 -v 0.490393 0.500000 0.097545 -v -0.277785 0.500000 -0.415735 -v -0.097545 0.500000 -0.490393 -v 0.277785 0.500000 0.415735 -v 0.097545 0.500000 0.490393 -v -0.277785 0.500000 0.415735 -v 0.277785 0.500000 -0.415735 -v -0.415735 0.500000 -0.277785 -v 0.415735 0.500000 0.277785 -v -0.097545 0.500000 0.490393 -v -0.415735 0.500000 0.277785 -v 0.415735 0.500000 -0.277785 -v 0.277785 3.500000 -0.415735 -v 0.260424 4.500000 -0.389751 -v 0.389751 4.500000 -0.260424 -v 0.459743 4.500000 -0.091449 -v 0.353374 5.000000 -0.236117 -v -0.490393 3.500000 -0.097545 -v -0.459744 4.500000 -0.091449 -v -0.389751 4.500000 -0.260424 -v -0.097545 3.500000 -0.490393 -v -0.091449 4.500000 -0.459742 -v 0.091449 4.500000 -0.459742 -v -0.490393 3.500000 0.097545 -v -0.415735 3.500000 0.277785 -v -0.389751 4.500000 0.260424 -v -0.097545 3.500000 0.490393 -v -0.091449 4.500000 0.459744 -v -0.260424 4.500000 0.389751 -v 0.277785 3.500000 0.415735 -v 0.260424 4.500000 0.389751 -v 0.091449 4.500000 0.459743 -v 0.490393 3.500000 0.097545 -v 0.459743 4.500000 0.091449 -v 0.389751 4.500000 0.260424 -v 0.490393 3.500000 -0.097545 -v 0.415735 3.500000 -0.277785 -v -0.277785 3.500000 -0.415735 -v -0.415735 3.500000 -0.277785 -v 0.097545 3.500000 -0.490393 -v -0.459744 4.500000 0.091449 -v -0.277785 3.500000 0.415735 -v 0.097545 3.500000 0.490393 -v 0.415735 3.500000 0.277785 -v -0.260424 4.500000 -0.389751 -v 0.416833 5.000000 -0.082913 -v 0.245196 5.500000 -0.048772 -v 0.245196 5.500000 0.048773 -v -0.353375 5.000000 -0.236117 -v 0.082913 5.000000 -0.416834 -v -0.416834 5.000000 0.082913 -v -0.236117 5.000000 0.353375 -v -0.353375 5.000000 0.236117 -v 0.082913 5.000000 0.416834 -v -0.082913 5.000000 0.416834 -v 0.353374 5.000000 0.236117 -v 0.236117 5.000000 0.353375 -v 0.416833 5.000000 0.082913 -v -0.236117 5.000000 -0.353375 -v 0.236117 5.000000 -0.353375 -v -0.416834 5.000000 -0.082913 -v -0.082914 5.000000 -0.416834 -v -0.138893 5.500000 -0.207867 -v -0.048773 5.500000 -0.245196 -v 0.138892 5.500000 -0.207867 -v 0.207867 5.500000 -0.138892 -v -0.245197 5.500000 -0.048772 -v -0.207868 5.500000 -0.138892 -v 0.048772 5.500000 -0.245196 -v -0.207868 5.500000 0.138893 -v -0.245197 5.500000 0.048773 -v -0.048773 5.500000 0.245197 -v -0.138893 5.500000 0.207868 -v 0.138892 5.500000 0.207868 -v 0.048772 5.500000 0.245197 -v 0.207867 5.500000 0.138893 -v 0.000000 5.750000 0.000000 -v 0.048772 1.500000 1.240393 -v 0.048772 0.500000 1.240393 -v 0.048773 3.500000 0.490393 -v 0.048772 0.500000 0.490393 -v -0.048773 0.500000 0.490393 -v -0.048773 0.500000 1.240393 -v -0.048772 3.500000 0.490393 -v 1.240393 0.500000 -0.048772 -v 1.240393 0.500000 0.048773 -v 0.490393 0.500000 0.048773 -v 0.490393 0.500000 -0.048772 -v -0.048772 3.500000 -0.490393 -v 0.048773 3.500000 -0.490393 -v -0.048772 1.500000 -1.240393 -v -0.490393 0.500000 -0.048772 -v -0.490393 0.500000 0.048772 -v -1.240393 0.500000 -0.048773 -v -1.240393 0.500000 0.048772 -v -0.490393 3.500000 0.048772 -v -0.048773 1.500000 1.240393 -v 0.048773 1.500000 -1.240393 -v -0.048772 0.500000 -1.240393 -v -1.240393 1.500000 -0.048773 -v -0.490393 3.500000 -0.048773 -v -1.240393 1.500000 0.048772 -v 0.048773 0.500000 -1.240393 -v 0.490393 3.500000 0.048773 -v 1.240393 1.500000 0.048773 -v 1.240393 1.500000 -0.048772 -v -0.490393 0.000000 -0.097545 -v 0.048773 0.500000 -0.490393 -v -0.048772 0.500000 -0.490393 -v 0.490393 3.500000 -0.048772 -vt 0.053190 0.141950 -vt 0.047633 0.125797 -vt 0.103538 0.103554 -vt 0.040574 0.110242 -vt 0.094127 0.082814 -vt 0.032077 0.095424 -vt 0.082797 0.063057 -vt 0.022216 0.081476 -vt 0.069650 0.044459 -vt 0.011082 0.068522 -vt 0.054804 0.027187 -vt 0.011082 0.316533 -vt 0.022216 0.303579 -vt 0.069650 0.340596 -vt 0.032077 0.289631 -vt 0.082797 0.321998 -vt 0.040574 0.274813 -vt 0.094127 0.302241 -vt 0.047633 0.259258 -vt 0.103538 0.281501 -vt 0.053190 0.243105 -vt 0.110948 0.259964 -vt 0.057195 0.226500 -vt 0.116288 0.237824 -vt 0.059612 0.209590 -vt 0.119511 0.215277 -vt 0.060420 0.192527 -vt 0.059612 0.175465 -vt 0.119511 0.169778 -vt 0.679575 0.027188 -vt 0.696657 0.027188 -vt 0.699504 0.041501 -vt 0.057195 0.158555 -vt 0.110948 0.125091 -vt 0.116288 0.147231 -vt 0.867028 0.797659 -vt 0.883133 0.716696 -vt 0.947992 0.813764 -vt 0.810535 0.027188 -vt 0.813382 0.041500 -vt 0.790607 0.041500 -vt 0.628329 0.027189 -vt 0.631176 0.041502 -vt 0.608401 0.041502 -vt 0.742208 0.027188 -vt 0.745055 0.041501 -vt 0.722279 0.041501 -vt 0.702351 0.027188 -vt 0.719432 0.027188 -vt 0.924414 0.027187 -vt 0.927261 0.041500 -vt 0.904485 0.041500 -vt 0.839005 0.027187 -vt 0.856087 0.027187 -vt 0.858934 0.041500 -vt 0.656799 0.027189 -vt 0.673881 0.027189 -vt 0.676728 0.041501 -vt 0.787760 0.027188 -vt 0.767831 0.041501 -vt 0.969966 0.027187 -vt 0.972813 0.041500 -vt 0.950037 0.041500 -vt 0.901638 0.027187 -vt 0.881710 0.041500 -vt 0.833311 0.027187 -vt 0.836158 0.041500 -vt 0.634023 0.027189 -vt 0.651105 0.027189 -vt 0.653952 0.041501 -vt 0.764984 0.027188 -vt 0.947190 0.027187 -vt 0.861781 0.027187 -vt 0.878863 0.027187 -vt 0.676732 0.391730 -vt 0.676021 0.508528 -vt 0.654669 0.508529 -vt 0.631894 0.508529 -vt 0.653246 0.508529 -vt 0.652250 0.567115 -vt 0.790609 0.391729 -vt 0.789898 0.508527 -vt 0.768546 0.508528 -vt 0.722282 0.391730 -vt 0.721572 0.508527 -vt 0.700220 0.508527 -vt 0.813384 0.391729 -vt 0.836160 0.391729 -vt 0.835449 0.508527 -vt 0.881711 0.391729 -vt 0.880999 0.508527 -vt 0.859647 0.508527 -vt 0.927261 0.391729 -vt 0.926550 0.508527 -vt 0.905198 0.508527 -vt 0.972812 0.391729 -vt 0.972100 0.508527 -vt 0.950749 0.508527 -vt 0.631181 0.391731 -vt 0.653956 0.391731 -vt 0.745058 0.391730 -vt 0.767833 0.391730 -vt 0.767122 0.508528 -vt 0.699507 0.391730 -vt 0.698796 0.508528 -vt 0.812673 0.508527 -vt 0.791321 0.508527 -vt 0.858935 0.391729 -vt 0.858224 0.508527 -vt 0.904486 0.391729 -vt 0.903775 0.508526 -vt 0.882423 0.508526 -vt 0.950037 0.391729 -vt 0.949325 0.508527 -vt 0.630471 0.508528 -vt 0.609119 0.508528 -vt 0.744347 0.508528 -vt 0.722995 0.508528 -vt 0.629475 0.567114 -vt 0.625490 0.628829 -vt 0.614102 0.628829 -vt 0.745770 0.508528 -vt 0.766126 0.567114 -vt 0.677444 0.508528 -vt 0.697801 0.567114 -vt 0.811677 0.567113 -vt 0.857228 0.567113 -vt 0.837869 0.567113 -vt 0.902778 0.567112 -vt 0.883419 0.567112 -vt 0.948329 0.567113 -vt 0.928970 0.567113 -vt 0.610116 0.567114 -vt 0.743351 0.567114 -vt 0.675025 0.567114 -vt 0.788902 0.567114 -vt 0.720576 0.567113 -vt 0.834453 0.567113 -vt 0.815093 0.567114 -vt 0.880003 0.567113 -vt 0.860644 0.567113 -vt 0.925553 0.567113 -vt 0.906194 0.567113 -vt 0.971104 0.567113 -vt 0.951745 0.567113 -vt 0.739366 0.628829 -vt 0.727978 0.628829 -vt 0.671040 0.628829 -vt 0.659653 0.628829 -vt 0.784916 0.628829 -vt 0.773529 0.628829 -vt 0.716591 0.628828 -vt 0.705203 0.628828 -vt 0.830467 0.628828 -vt 0.819080 0.628828 -vt 0.876018 0.628828 -vt 0.864630 0.628828 -vt 0.921568 0.628828 -vt 0.910180 0.628828 -vt 0.967119 0.628828 -vt 0.955731 0.628828 -vt 0.632891 0.567115 -vt 0.648265 0.628830 -vt 0.762141 0.628829 -vt 0.750753 0.628829 -vt 0.693816 0.628829 -vt 0.682428 0.628829 -vt 0.807692 0.628828 -vt 0.796304 0.628828 -vt 0.853242 0.628828 -vt 0.841855 0.628828 -vt 0.898793 0.628826 -vt 0.887405 0.628826 -vt 0.944343 0.628828 -vt 0.932955 0.628828 -vt 0.779223 0.669709 -vt 0.756447 0.669709 -vt 0.733672 0.669709 -vt 0.824774 0.669709 -vt 0.710897 0.669708 -vt 0.688122 0.669709 -vt 0.665347 0.669710 -vt 0.642572 0.669711 -vt 0.636877 0.628830 -vt 0.619797 0.669709 -vt 0.961425 0.669709 -vt 0.938649 0.669708 -vt 0.915874 0.669708 -vt 0.893099 0.669707 -vt 0.870324 0.669709 -vt 0.847549 0.669708 -vt 0.801998 0.669709 -vt 0.257803 0.231487 -vt 0.257803 0.114744 -vt 0.345360 0.464974 -vt 0.345360 0.114744 -vt 0.158858 0.114744 -vt 0.246415 0.114744 -vt 0.158858 0.464974 -vt 0.482575 0.114744 -vt 0.471187 0.114744 -vt 0.471187 0.027187 -vt 0.482575 0.027187 -vt 0.257803 0.972808 -vt 0.246415 0.972808 -vt 0.257803 0.723435 -vt 0.471187 0.519135 -vt 0.482575 0.519136 -vt 0.471187 0.606692 -vt 0.482575 0.606692 -vt 0.570132 0.606692 -vt 0.570132 0.956921 -vt 0.246415 0.231487 -vt 0.246415 0.723435 -vt 0.257802 0.606692 -vt 0.471187 0.723435 -vt 0.383629 0.956921 -vt 0.482575 0.723435 -vt 0.246415 0.606692 -vt 0.383630 0.606692 -vt 0.471187 0.480867 -vt 0.471187 0.231487 -vt 0.482575 0.231487 -vt 0.054804 0.357868 -vt 0.120589 0.192527 -vt 0.964097 0.732800 -vt 0.972813 0.753842 -vt 0.972813 0.776617 -vt 0.964097 0.797659 -vt 0.904175 0.822480 -vt 0.926950 0.822480 -vt 0.883133 0.813764 -vt 0.611247 0.027189 -vt 0.858313 0.776618 -vt 0.867028 0.732800 -vt 0.904175 0.707980 -vt 0.926951 0.707980 -vt 0.947992 0.716696 -vt 0.858313 0.753842 -vt 0.793454 0.027188 -vt 0.725126 0.027188 -vt 0.907332 0.027187 -vt 0.770678 0.027188 -vt 0.952884 0.027187 -vt 0.884557 0.027187 -vt 0.816229 0.027187 -vt 0.747902 0.027188 -vt 0.930108 0.027187 -vt 0.814097 0.508527 -vt 0.836872 0.508527 -vt 0.927973 0.508527 -vt 0.608405 0.391731 -vt 0.746767 0.567114 -vt 0.678442 0.567114 -vt 0.792318 0.567113 -vt 0.723992 0.567114 -vt 0.655666 0.567115 -vt 0.769543 0.567114 -vt 0.701217 0.567113 -vt 0.334698 0.468972 -vt 0.246415 0.480866 -vt 0.158857 0.606693 -vt 0.158858 0.956922 -vt 0.345360 0.956921 -vt 0.471187 0.972813 -vt 0.383629 0.464973 -vt 0.345360 0.606692 -vt 0.257802 0.519135 -vt 0.482575 0.972813 -vt 0.383630 0.114744 -vt 0.246415 0.519135 -vt 0.257803 0.027187 -vt 0.246415 0.027187 -vt 0.570132 0.114744 -vt 0.570132 0.464973 -vt 0.482575 0.480867 -vn 0.000000 0.238100 -0.971200 -vn 0.371700 0.238100 -0.897300 -vn 0.686800 0.238100 -0.686800 -vn 0.897300 0.238100 -0.371700 -vn 0.971200 0.238100 0.000000 -vn 0.897300 0.238100 0.371700 -vn 0.686800 0.238100 0.686800 -vn 0.371700 0.238100 0.897300 -vn 0.000000 0.238100 0.971200 -vn -0.371700 0.238100 0.897300 -vn -0.686800 0.238100 0.686800 -vn -0.897300 0.238100 0.371700 -vn -0.971200 0.238100 0.000000 -vn -0.897300 0.238100 -0.371700 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 -0.868200 -0.496100 -vn -0.371700 0.238100 -0.897300 -vn -0.686800 0.238100 -0.686800 -vn -0.496100 -0.868200 0.000000 -vn 0.496100 -0.868200 0.000000 -vn 0.000000 -0.868200 0.496100 -vn 0.706800 0.030600 -0.706800 -vn 0.920500 0.085500 -0.381300 -vn -0.923400 0.030600 -0.382500 -vn 0.000000 0.030600 -0.999500 -vn -0.923400 0.030600 0.382500 -vn -0.382500 0.030600 0.923400 -vn 0.382500 0.030600 0.923400 -vn 0.923400 0.030600 0.382500 -vn 0.923400 0.030600 -0.382500 -vn -0.706800 0.030600 -0.706800 -vn 0.382500 0.030600 -0.923400 -vn -0.999500 0.030600 0.000000 -vn -0.706800 0.030600 0.706800 -vn 0.000000 0.030600 0.999500 -vn 0.706800 0.030600 0.706800 -vn 0.999500 0.030600 0.000000 -vn -0.382500 0.030600 -0.923400 -vn 0.945800 0.324700 0.000000 -vn -0.704500 0.085500 -0.704500 -vn 0.381300 0.085500 -0.920500 -vn -0.996300 0.085500 0.000000 -vn -0.704500 0.085500 0.704500 -vn 0.000000 0.085500 0.996300 -vn 0.704500 0.085500 0.704500 -vn 0.996300 0.085500 0.000000 -vn -0.381300 0.085500 -0.920500 -vn 0.704500 0.085500 -0.704500 -vn -0.920500 0.085500 -0.381300 -vn 0.000000 0.085500 -0.996300 -vn -0.920500 0.085500 0.381300 -vn -0.381300 0.085500 0.920500 -vn 0.381300 0.085500 0.920500 -vn 0.920500 0.085500 0.381300 -vn -0.362000 0.324700 -0.873800 -vn 0.668800 0.324700 -0.668800 -vn -0.873800 0.324700 -0.362000 -vn 0.000000 0.324700 -0.945800 -vn -0.873800 0.324700 0.362000 -vn -0.362000 0.324700 0.873800 -vn 0.362000 0.324700 0.873800 -vn 0.873800 0.324700 0.362000 -vn 0.873800 0.324700 0.361900 -vn 0.873800 0.324700 -0.362000 -vn -0.668800 0.324700 -0.668800 -vn 0.362000 0.324700 -0.873800 -vn -0.945800 0.324700 0.000000 -vn -0.668800 0.324700 0.668800 -vn 0.000000 0.324700 0.945800 -vn 0.668800 0.324700 0.668800 -vn -0.659600 0.700200 -0.273200 -vn -0.504800 0.700200 -0.504800 -vn -0.273200 0.700200 -0.659600 -vn -0.659600 0.700200 0.273200 -vn 0.000000 0.700200 -0.713900 -vn 0.273200 0.700200 -0.659600 -vn 0.504800 0.700200 -0.504800 -vn 0.659600 0.700200 -0.273200 -vn 0.713900 0.700200 0.000000 -vn 0.659600 0.700200 0.273200 -vn 0.504800 0.700200 0.504800 -vn 0.273200 0.700200 0.659600 -vn 0.000000 0.700200 0.713900 -vn -0.273200 0.700200 0.659600 -vn -0.504800 0.700200 0.504800 -vn -0.713900 0.700200 0.000000 -vn 0.000000 -0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.351100 -0.936300 -vn 0.000000 0.000000 -1.000000 -vn 0.936300 0.351100 0.000000 -vn 0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 0.000000 -0.707100 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn -0.707100 0.000000 -0.707100 -vn -0.923900 -0.000000 0.382700 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 -0.000000 0.707100 -vn 0.382700 -0.000000 0.923900 -vn 0.923900 -0.000000 0.382700 -vn 0.707100 -0.000000 0.707100 -vn 0.873800 0.324700 -0.361900 -vn 0.000000 0.351100 0.936300 -vn -0.936300 0.351100 0.000000 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 2/2/2 4/4/2 5/5/2 -f 4/4/3 6/6/3 7/7/3 -f 6/6/4 8/8/4 9/9/4 -f 8/8/5 10/10/5 11/11/5 -f 10/12/6 12/13/6 13/14/6 -f 12/13/7 14/15/7 15/16/7 -f 14/15/8 16/17/8 17/18/8 -f 16/17/9 18/19/9 19/20/9 -f 18/19/10 20/21/10 21/22/10 -f 20/21/11 22/23/11 23/24/11 -f 23/24/12 22/23/12 24/25/12 -f 25/26/13 24/25/13 26/27/13 -f 26/27/14 27/28/14 28/29/14 -f 4/30/15 2/31/15 29/32/16 -f 30/33/17 1/1/17 31/34/17 -f 27/28/18 30/33/18 32/35/18 -f 15/36/15 23/37/15 7/38/15 -f 24/39/15 33/40/19 34/41/19 -f 8/42/15 35/43/20 36/44/20 -f 30/45/15 37/46/15 38/47/16 -f 2/48/15 1/49/15 38/47/16 -f 14/50/15 39/51/15 40/52/21 -f 22/53/15 20/54/15 41/55/15 -f 6/56/15 4/57/15 42/58/15 -f 26/59/15 34/41/19 43/60/15 -f 10/61/15 36/62/20 44/63/15 -f 16/64/15 40/52/21 45/65/21 -f 22/66/15 46/67/15 33/40/19 -f 8/68/15 6/69/15 47/70/15 -f 27/71/15 43/60/15 37/46/15 -f 12/72/15 44/63/15 39/51/15 -f 20/73/15 18/74/15 45/65/21 -f 48/75/22 49/76/22 50/77/22 -f 51/78/23 50/79/23 52/80/23 -f 53/81/24 54/82/24 55/83/24 -f 56/84/25 57/85/25 58/86/25 -f 59/87/26 60/88/26 61/89/26 -f 62/90/27 63/91/27 64/92/27 -f 65/93/28 66/94/28 67/95/28 -f 68/96/29 69/97/29 70/98/29 -f 71/99/30 72/100/30 50/79/30 -f 73/101/31 74/102/31 55/103/31 -f 48/75/32 75/104/32 58/105/32 -f 59/87/33 76/106/33 54/107/33 -f 60/88/34 77/108/34 64/109/34 -f 78/110/35 67/111/35 63/112/35 -f 65/93/36 79/113/36 70/114/36 -f 71/99/37 51/115/37 69/116/37 -f 73/101/38 80/117/38 57/118/38 -f 81/119/39 82/120/39 83/121/39 -f 80/122/40 55/103/40 84/123/40 -f 49/124/41 58/105/41 85/125/41 -f 54/107/42 76/106/42 86/126/42 -f 64/109/43 87/127/43 88/128/43 -f 67/111/44 89/129/44 90/130/44 -f 70/114/45 91/131/45 92/132/45 -f 51/115/46 81/119/46 93/133/46 -f 57/118/47 80/117/47 94/134/47 -f 50/77/48 49/76/48 95/135/48 -f 55/83/49 54/82/49 96/136/49 -f 58/86/50 57/85/50 97/137/50 -f 61/89/51 88/138/51 86/139/51 -f 63/91/52 90/140/52 87/141/52 -f 66/94/53 92/142/53 89/143/53 -f 69/97/54 93/144/54 91/145/54 -f 94/134/55 98/146/55 99/147/55 -f 95/135/56 100/148/56 101/149/56 -f 96/136/57 102/150/57 103/151/57 -f 97/137/58 99/152/58 104/153/58 -f 88/138/59 105/154/59 106/155/59 -f 90/140/60 107/156/60 108/157/60 -f 92/142/61 109/158/61 110/159/61 -f 93/144/62 83/160/63 111/161/62 -f 81/162/64 52/80/64 101/163/64 -f 84/123/65 103/164/65 98/165/65 -f 85/125/66 104/166/66 100/167/66 -f 86/126/67 106/168/67 102/169/67 -f 87/127/68 108/170/68 105/171/68 -f 89/129/69 110/172/69 107/173/69 -f 91/131/70 111/174/70 109/175/70 -f 102/150/71 112/176/71 103/151/71 -f 103/164/72 112/177/72 98/165/72 -f 98/146/73 112/178/73 99/147/73 -f 105/154/74 112/179/74 106/155/74 -f 99/152/75 112/180/75 104/153/75 -f 104/166/76 112/181/76 100/167/76 -f 100/148/77 112/182/77 101/149/77 -f 101/163/78 112/183/78 82/184/78 -f 82/120/79 112/185/79 83/121/79 -f 83/160/80 112/186/80 111/161/80 -f 111/174/81 112/187/81 109/175/81 -f 109/158/82 112/188/82 110/159/82 -f 110/172/83 112/189/83 107/173/83 -f 107/156/84 112/190/84 108/157/84 -f 108/170/85 112/191/85 105/171/85 -f 102/169/86 106/168/86 112/192/86 -f 45/65/21 40/52/21 78/110/87 -f 113/193/88 114/194/88 115/195/88 -f 114/194/88 116/196/88 115/195/88 -f 117/197/89 118/198/89 119/199/89 -f 120/200/15 121/201/15 122/202/15 -f 123/203/15 120/200/15 122/202/15 -f 124/204/90 125/205/90 126/206/90 -f 127/207/15 128/208/15 129/209/15 -f 128/208/15 130/210/15 129/209/15 -f 130/210/87 128/211/87 131/212/87 -f 118/198/89 132/213/89 119/199/89 -f 125/205/90 133/214/90 126/206/90 -f 134/215/91 126/206/91 133/214/91 -f 129/209/91 135/216/91 136/217/91 -f 137/218/87 130/210/87 131/212/87 -f 138/219/91 134/215/91 133/214/91 -f 118/198/87 114/194/87 132/213/87 -f 127/220/91 129/209/91 136/217/91 -f 114/194/87 113/193/87 132/213/87 -f 139/221/92 140/222/92 141/223/92 -f 72/100/93 71/99/93 35/43/93 -f 75/104/94 48/75/94 42/58/94 -f 48/75/95 72/100/95 47/70/95 -f 73/101/96 56/84/96 38/47/96 -f 53/81/97 74/102/97 43/60/97 -f 74/102/98 73/101/98 37/46/98 -f 60/88/99 59/87/99 33/40/99 -f 62/90/100 77/108/100 41/55/100 -f 77/108/101 60/88/101 46/67/101 -f 65/93/102 78/110/102 40/52/102 -f 68/96/103 79/113/103 44/63/103 -f 79/113/104 65/93/104 39/51/104 -f 31/34/1 1/1/1 3/3/1 -f 3/3/2 2/2/2 5/5/2 -f 5/5/3 4/4/3 7/7/3 -f 7/7/4 6/6/4 9/9/4 -f 9/9/5 8/8/5 11/11/5 -f 11/224/6 10/12/6 13/14/6 -f 13/14/7 12/13/7 15/16/7 -f 15/16/8 14/15/8 17/18/8 -f 17/18/9 16/17/9 19/20/9 -f 19/20/10 18/19/10 21/22/10 -f 21/22/11 20/21/11 23/24/11 -f 25/26/12 23/24/12 24/25/12 -f 142/225/13 25/26/13 26/27/13 -f 142/225/14 26/27/14 28/29/14 -f 42/58/15 4/30/15 29/32/16 -f 32/35/17 30/33/17 31/34/17 -f 28/29/18 27/28/18 32/35/18 -f 32/226/15 31/227/15 3/228/15 -f 3/228/15 5/229/15 7/38/15 -f 11/230/15 15/36/15 9/231/15 -f 11/230/15 13/232/15 15/36/15 -f 10/233/15 8/42/15 36/44/20 -f 23/37/15 17/234/15 21/235/15 -f 23/37/15 25/236/15 142/237/15 -f 142/237/15 28/238/15 32/226/15 -f 23/37/15 142/237/15 7/38/15 -f 23/37/15 15/36/15 17/234/15 -f 17/234/15 19/239/15 21/235/15 -f 32/226/15 3/228/15 142/237/15 -f 26/240/15 24/39/15 34/41/19 -f 142/237/15 3/228/15 7/38/15 -f 15/36/15 7/38/15 9/231/15 -f 1/241/15 30/45/15 38/47/16 -f 29/32/16 2/48/15 38/47/16 -f 16/242/15 14/50/15 40/52/21 -f 46/67/15 22/53/15 41/55/15 -f 47/70/15 6/56/15 42/58/15 -f 27/243/15 26/59/15 43/60/15 -f 12/244/15 10/61/15 44/63/15 -f 18/245/15 16/64/15 45/65/21 -f 24/246/15 22/66/15 33/40/19 -f 35/43/20 8/68/15 47/70/15 -f 30/247/15 27/71/15 37/46/15 -f 14/248/15 12/72/15 39/51/15 -f 41/55/15 20/73/15 45/65/21 -f 72/100/22 48/75/22 50/77/22 -f 81/162/23 51/78/23 52/80/23 -f 74/102/24 53/81/24 55/83/24 -f 75/104/25 56/84/25 58/86/25 -f 76/249/26 59/87/26 61/89/26 -f 77/108/27 62/90/27 64/92/27 -f 78/110/28 65/93/28 67/95/28 -f 79/113/29 68/96/29 70/98/29 -f 51/78/30 71/99/30 50/79/30 -f 80/122/31 73/101/31 55/103/31 -f 49/124/32 48/75/32 58/105/32 -f 53/81/33 59/87/33 54/107/33 -f 61/250/34 60/88/34 64/109/34 -f 62/90/35 78/110/35 63/112/35 -f 66/251/36 65/93/36 70/114/36 -f 68/252/37 71/99/37 69/116/37 -f 56/84/38 73/101/38 57/118/38 -f 93/133/39 81/119/39 83/121/39 -f 94/253/40 80/122/40 84/123/40 -f 95/254/41 49/124/41 85/125/41 -f 96/255/42 54/107/42 86/126/42 -f 61/250/43 64/109/43 88/128/43 -f 63/112/44 67/111/44 90/130/44 -f 66/251/45 70/114/45 92/132/45 -f 69/116/46 51/115/46 93/133/46 -f 97/256/47 57/118/47 94/134/47 -f 52/257/48 50/77/48 95/135/48 -f 84/258/49 55/83/49 96/136/49 -f 85/259/50 58/86/50 97/137/50 -f 76/249/51 61/89/51 86/139/51 -f 64/92/52 63/91/52 87/141/52 -f 67/95/53 66/94/53 89/143/53 -f 70/98/54 69/97/54 91/145/54 -f 97/256/55 94/134/55 99/147/55 -f 52/257/56 95/135/56 101/149/56 -f 84/258/57 96/136/57 103/151/57 -f 85/259/58 97/137/58 104/153/58 -f 86/139/59 88/138/59 106/155/59 -f 87/141/60 90/140/60 108/157/60 -f 89/143/61 92/142/61 110/159/61 -f 91/145/62 93/144/62 111/161/62 -f 82/184/105 81/162/64 101/163/64 -f 94/253/65 84/123/65 98/165/65 -f 95/254/66 85/125/66 100/167/66 -f 96/255/67 86/126/67 102/169/67 -f 88/128/68 87/127/68 105/171/68 -f 90/130/69 89/129/69 107/173/69 -f 92/132/70 91/131/70 109/175/70 -f 120/200/88 141/223/88 140/222/88 -f 115/195/106 119/260/106 113/193/106 -f 119/261/106 132/213/106 113/193/106 -f 143/262/88 138/219/88 125/263/88 -f 121/201/88 120/200/88 140/222/88 -f 129/209/89 130/210/89 135/216/89 -f 126/206/89 134/215/89 124/264/89 -f 130/210/89 137/218/89 135/216/89 -f 136/265/107 135/216/107 137/218/107 -f 121/201/87 140/222/87 139/266/87 -f 138/219/88 133/214/88 125/263/88 -f 134/215/89 144/267/89 124/264/89 -f 144/268/15 134/215/15 138/219/15 -f 131/269/107 136/265/107 137/218/107 -f 122/270/87 121/201/87 139/266/87 -f 143/271/15 144/268/15 138/219/15 -f 116/272/15 114/194/15 117/273/15 -f 120/200/91 123/274/91 145/275/91 -f 114/194/15 118/198/15 117/273/15 -f 141/223/91 120/200/91 145/275/91 -f 47/70/93 72/100/93 35/43/93 -f 29/32/94 75/104/94 42/58/94 -f 42/58/95 48/75/95 47/70/95 -f 37/46/96 73/101/96 38/47/96 -f 34/41/97 53/81/97 43/60/97 -f 43/60/98 74/102/98 37/46/98 -f 46/67/99 60/88/99 33/40/99 -f 45/65/100 62/90/100 41/55/100 -f 41/55/101 77/108/101 46/67/101 -f 39/51/102 65/93/102 40/52/102 -f 36/62/103 68/96/103 44/63/103 -f 44/63/104 79/113/104 39/51/104 -f 36/44/20 35/43/20 71/99/88 -f 141/223/92 145/276/92 139/221/92 -f 38/47/16 56/84/91 75/104/91 -f 53/81/89 34/41/19 33/40/19 -f 62/90/87 45/65/21 78/110/87 -f 68/252/88 36/44/20 71/99/88 -f 29/32/16 38/47/16 75/104/91 -f 59/87/89 53/81/89 33/40/19 diff --git a/src/main/resources/assets/hbm/models/missilePad.obj b/src/main/resources/assets/hbm/models/missilePad.obj deleted file mode 100644 index f2d38a4bf..000000000 --- a/src/main/resources/assets/hbm/models/missilePad.obj +++ /dev/null @@ -1,172 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'missilePad.blend' -# www.blender.org -o Cube_Cube.001 -v -1.500000 1.000000 1.500000 -v -1.500000 1.000000 -1.500000 -v 1.500000 1.000000 1.500000 -v 1.500000 1.000000 -1.500000 -v -1.500000 0.500000 -0.500000 -v -1.500000 0.500000 0.500000 -v 0.500000 0.500000 -1.500000 -v -0.500000 0.500000 -1.500000 -v 1.500000 0.500000 0.500000 -v 1.500000 0.500000 -0.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.750000 0.000000 1.750000 -v -1.750000 0.000000 -1.750000 -v 1.750000 0.000000 1.750000 -v 1.750000 0.000000 -1.750000 -v -1.750000 0.000000 -0.500000 -v -1.750000 0.000000 0.500000 -v 0.500000 0.000000 -1.750000 -v -0.500000 0.000000 -1.750000 -v 1.750000 0.000000 0.500000 -v 1.750000 0.000000 -0.500000 -v -0.500000 0.000000 1.750000 -v 0.500000 0.000000 1.750000 -v -0.500000 0.000000 0.500000 -v 0.500000 0.000000 0.500000 -v -0.500000 0.000000 -0.500000 -v 0.500000 0.000000 -0.500000 -v -1.500000 0.500000 -1.500000 -v 1.500000 0.500000 -1.500000 -v -1.500000 0.500000 1.500000 -v 1.500000 0.500000 1.500000 -v -0.500000 1.000000 0.500000 -v 0.500000 1.000000 0.500000 -v -0.500000 1.000000 -0.500000 -v 0.500000 1.000000 -0.500000 -vt 0.020000 0.530000 -vt 0.180000 0.370000 -vt 0.340000 0.370000 -vt 0.740000 0.060000 -vt 0.740000 0.220000 -vt 0.580000 0.220000 -vt 0.580000 0.060000 -vt 0.180000 0.210000 -vt 0.020000 0.660000 -vt 0.180000 0.580000 -vt 0.340000 0.580000 -vt 0.930000 0.710000 -vt 0.930000 0.870000 -vt 0.850000 0.870000 -vt 0.690000 0.950000 -vt 0.650000 0.870000 -vt 0.650000 0.670000 -vt 0.850000 0.670000 -vt 0.690000 0.580000 -vt 0.560000 0.870000 -vt 0.560000 0.710000 -vt 0.500000 0.660000 -vt 0.850000 0.580000 -vt 0.500000 0.530000 -vt 0.340000 0.210000 -vt 0.740000 0.300000 -vt 0.580000 0.300000 -vt 0.020000 0.050000 -vt 0.740000 0.360000 -vt 0.740000 0.520000 -vt 0.580000 0.520000 -vt 0.500000 0.580000 -vt 0.020000 0.580000 -vt 0.850000 0.950000 -vt 0.500000 0.050000 -vt 0.580000 0.360000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.447200 0.894400 -vn 0.894400 0.447200 0.000000 -vn 0.000000 0.447200 -0.894400 -vn -0.894400 0.447200 0.000000 -s off -f 2/1/1 39/2/1 40/3/1 -f 5/4/2 15/5/2 13/6/2 -f 13/5/2 14/6/2 12/7/2 -f 16/6/2 10/7/2 9/4/2 -f 8/7/2 7/4/2 16/5/2 -f 37/8/1 39/2/1 2/1/1 -f 2/9/3 5/10/3 6/11/3 -f 12/12/3 14/13/3 30/14/3 -f 7/15/3 23/16/3 32/14/3 -f 10/11/4 3/9/4 9/10/4 -f 10/12/5 16/13/5 32/14/5 -f 23/16/2 20/17/2 26/18/2 -f 30/14/2 25/16/2 19/17/2 -f 22/18/2 29/14/2 27/16/2 -f 18/17/2 24/18/2 31/14/2 -f 9/15/6 25/16/6 30/14/6 -f 29/14/6 22/18/6 6/12/6 -f 11/15/4 27/16/4 29/14/4 -f 31/14/4 24/18/4 8/12/4 -f 5/15/5 21/16/5 31/14/5 -f 28/18/7 19/17/7 36/19/7 -f 25/16/8 9/20/8 36/21/8 -f 2/22/6 4/9/6 7/10/6 -f 26/18/8 20/17/8 34/19/8 -f 34/21/9 20/17/9 23/16/9 -f 1/9/5 11/10/5 12/11/5 -f 33/19/9 8/23/9 24/18/9 -f 21/16/10 5/20/10 33/21/10 -f 35/19/10 6/23/10 22/18/10 -f 27/16/7 11/20/7 35/21/7 -f 4/24/1 40/3/1 38/25/1 -f 40/26/5 39/27/5 15/6/5 -f 38/26/3 40/27/3 16/6/3 -f 15/5/4 39/26/4 37/27/4 -f 13/5/6 37/26/6 38/27/6 -f 38/25/1 37/8/1 1/28/1 -f 38/29/1 40/30/1 39/31/1 -f 4/24/1 2/1/1 40/3/1 -f 6/7/2 5/4/2 13/6/2 -f 11/4/2 13/5/2 12/7/2 -f 14/5/2 16/6/2 9/4/2 -f 15/6/2 8/7/2 16/5/2 -f 1/28/1 37/8/1 2/1/1 -f 6/11/3 35/32/3 1/22/3 -f 1/22/3 2/9/3 6/11/3 -f 33/33/3 5/10/3 2/9/3 -f 28/18/3 12/12/3 30/14/3 -f 16/34/3 7/15/3 32/14/3 -f 36/33/4 9/10/4 3/9/4 -f 10/11/4 34/32/4 4/22/4 -f 4/22/4 3/9/4 10/11/4 -f 26/18/5 10/12/5 32/14/5 -f 32/14/2 23/16/2 26/18/2 -f 28/18/2 30/14/2 19/17/2 -f 17/17/2 22/18/2 27/16/2 -f 21/16/2 18/17/2 31/14/2 -f 14/34/6 9/15/6 30/14/6 -f 13/13/6 29/14/6 6/12/6 -f 13/34/4 11/15/4 29/14/4 -f 15/13/4 31/14/4 8/12/4 -f 15/34/5 5/15/5 31/14/5 -f 12/23/7 28/18/7 36/19/7 -f 19/17/8 25/16/8 36/21/8 -f 7/10/6 8/11/6 2/22/6 -f 33/32/6 2/22/6 8/11/6 -f 4/9/6 34/33/6 7/10/6 -f 10/23/8 26/18/8 34/19/8 -f 7/20/9 34/21/9 23/16/9 -f 12/11/5 36/32/5 3/22/5 -f 3/22/5 1/9/5 12/11/5 -f 35/33/5 11/10/5 1/9/5 -f 18/17/9 33/19/9 24/18/9 -f 18/17/10 21/16/10 33/21/10 -f 17/17/10 35/19/10 22/18/10 -f 17/17/7 27/16/7 35/21/7 -f 3/35/1 4/24/1 38/25/1 -f 16/5/5 40/26/5 15/6/5 -f 14/5/3 38/26/3 16/6/3 -f 13/6/4 15/5/4 37/27/4 -f 14/6/6 13/5/6 38/27/6 -f 3/35/1 38/25/1 1/28/1 -f 37/36/1 38/29/1 39/31/1 diff --git a/src/main/resources/assets/hbm/models/missileTaint.obj b/src/main/resources/assets/hbm/models/missileTaint.obj deleted file mode 100644 index eca5a7b9a..000000000 --- a/src/main/resources/assets/hbm/models/missileTaint.obj +++ /dev/null @@ -1,528 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'missileTaint.blend' -# www.blender.org -o Cylinder -v 0.000000 0.350000 -0.250000 -v -0.000000 4.000000 -0.062500 -v 0.125000 0.350000 -0.216506 -v 0.031250 4.000000 -0.054127 -v 0.216506 0.350000 -0.125000 -v 0.054127 4.000000 -0.031250 -v 0.250000 0.350000 0.000000 -v 0.062500 4.000000 0.000000 -v 0.216506 0.350000 0.125000 -v 0.054127 4.000000 0.031250 -v 0.125000 0.350000 0.216506 -v 0.031250 4.000000 0.054127 -v 0.000000 0.350000 0.250000 -v 0.000000 4.000000 0.062500 -v -0.125000 0.350000 0.216506 -v -0.031250 4.000000 0.054127 -v -0.216506 0.350000 0.125000 -v -0.054127 4.000000 0.031250 -v -0.250000 0.350000 0.000000 -v -0.062500 4.000000 0.000000 -v -0.216506 0.350000 -0.125000 -v -0.054127 4.000000 -0.031250 -v -0.125000 0.350000 -0.216506 -v -0.031250 4.000000 -0.054127 -v 0.000000 2.750000 -0.250000 -v -0.000000 3.250000 -0.225000 -v -0.000000 3.750000 -0.150000 -v 0.075000 3.750000 -0.129904 -v 0.112500 3.250000 -0.194856 -v 0.125000 2.750000 -0.216506 -v 0.129904 3.750000 -0.075000 -v 0.194856 3.250000 -0.112500 -v 0.216506 2.750000 -0.125000 -v 0.150000 3.750000 0.000000 -v 0.225000 3.250000 0.000000 -v 0.250000 2.750000 0.000000 -v 0.129904 3.750000 0.075000 -v 0.194856 3.250000 0.112500 -v 0.216506 2.750000 0.125000 -v 0.075000 3.750000 0.129904 -v 0.112500 3.250000 0.194856 -v 0.125000 2.750000 0.216506 -v 0.000000 3.750000 0.150000 -v 0.000000 3.250000 0.225000 -v 0.000000 2.750000 0.250000 -v -0.075000 3.750000 0.129904 -v -0.112500 3.250000 0.194856 -v -0.125000 2.750000 0.216506 -v -0.129904 3.750000 0.075000 -v -0.194856 3.250000 0.112500 -v -0.216506 2.750000 0.125000 -v -0.150000 3.750000 0.000000 -v -0.225000 3.250000 0.000000 -v -0.250000 2.750000 0.000000 -v -0.129904 3.750000 -0.075000 -v -0.194856 3.250000 -0.112500 -v -0.216506 2.750000 -0.125000 -v -0.075000 3.750000 -0.129904 -v -0.112500 3.250000 -0.194856 -v -0.125000 2.750000 -0.216506 -v -0.000000 0.350000 -0.175000 -v 0.087500 0.350000 -0.151554 -v 0.151554 0.350000 -0.087500 -v 0.175000 0.350000 0.000000 -v 0.151554 0.350000 0.087500 -v 0.087500 0.350000 0.151554 -v 0.000000 0.350000 0.175000 -v -0.087500 0.350000 0.151554 -v -0.151554 0.350000 0.087500 -v -0.175000 0.350000 0.000000 -v -0.151554 0.350000 -0.087500 -v -0.087500 0.350000 -0.151554 -v -0.000000 0.000000 -0.250000 -v 0.125000 0.000000 -0.216506 -v 0.216506 0.000000 -0.125000 -v 0.250000 0.000000 0.000000 -v 0.216506 0.000000 0.125000 -v 0.125000 0.000000 0.216506 -v -0.000000 0.000000 0.250000 -v -0.125000 0.000000 0.216506 -v -0.216506 0.000000 0.125000 -v -0.250000 0.000000 0.000000 -v -0.216507 0.000000 -0.125000 -v -0.125000 0.000000 -0.216506 -v 0.000000 0.650000 -0.250000 -v 0.250000 0.650000 0.000000 -v 0.000000 0.650000 0.250000 -v -0.250000 0.650000 0.000000 -v -0.000000 0.650000 -0.750000 -v 0.750000 0.650000 -0.000000 -v 0.000000 0.650000 0.750000 -v -0.750000 0.650000 0.000000 -v 0.000000 1.150000 -0.250000 -v 0.250000 1.150000 0.000000 -v 0.000000 1.150000 0.250000 -v -0.250000 1.150000 0.000000 -v -0.000000 1.050000 -0.750000 -v 0.750000 1.050000 -0.000000 -v 0.000000 1.050000 0.750000 -v -0.750000 1.050000 0.000000 -vt 0.121181 0.903536 -vt 0.115495 0.969798 -vt 0.107372 0.969798 -vt 0.083002 0.969797 -vt 0.074879 0.969797 -vt 0.069193 0.903536 -vt 0.056196 0.903536 -vt 0.050509 0.969797 -vt 0.042386 0.969797 -vt 0.407930 0.969798 -vt 0.399807 0.969798 -vt 0.394121 0.903536 -vt 0.381124 0.903536 -vt 0.375438 0.969798 -vt 0.367314 0.969798 -vt 0.348631 0.903536 -vt 0.342945 0.969798 -vt 0.334822 0.969798 -vt 0.316138 0.903536 -vt 0.310452 0.969798 -vt 0.302329 0.969798 -vt 0.277959 0.969798 -vt 0.269836 0.969798 -vt 0.264150 0.903536 -vt 0.251153 0.903536 -vt 0.245466 0.969798 -vt 0.237343 0.969798 -vt 0.212973 0.969798 -vt 0.204850 0.969798 -vt 0.199164 0.903536 -vt 0.480519 0.782469 -vt 0.510835 0.774346 -vt 0.506774 0.789504 -vt 0.147988 0.969797 -vt 0.139865 0.969797 -vt 0.134178 0.903535 -vt 0.186167 0.903536 -vt 0.180481 0.969798 -vt 0.172357 0.969798 -vt 0.257652 0.048392 -vt 0.262525 0.030203 -vt 0.285270 0.030203 -vt 0.192666 0.650994 -vt 0.160173 0.650994 -vt 0.160174 0.048392 -vt 0.191041 0.776683 -vt 0.161798 0.776683 -vt 0.166671 0.903536 -vt 0.127680 0.650994 -vt 0.127682 0.048392 -vt 0.158548 0.776682 -vt 0.129305 0.776682 -vt 0.153674 0.903536 -vt 0.225159 0.650994 -vt 0.192667 0.048392 -vt 0.223534 0.776683 -vt 0.194290 0.776683 -vt 0.218660 0.903536 -vt 0.257651 0.650994 -vt 0.225159 0.048392 -vt 0.256027 0.776683 -vt 0.226783 0.776683 -vt 0.231657 0.903536 -vt 0.290144 0.650994 -vt 0.288519 0.776683 -vt 0.259276 0.776683 -vt 0.283645 0.903536 -vt 0.322637 0.650994 -vt 0.290144 0.048392 -vt 0.321012 0.776683 -vt 0.291769 0.776683 -vt 0.296642 0.903536 -vt 0.355129 0.650994 -vt 0.322637 0.048392 -vt 0.353505 0.776683 -vt 0.324261 0.776683 -vt 0.329135 0.903536 -vt 0.387622 0.650994 -vt 0.355129 0.048392 -vt 0.385998 0.776683 -vt 0.356754 0.776683 -vt 0.361628 0.903536 -vt 0.420115 0.650994 -vt 0.387621 0.048392 -vt 0.418490 0.776683 -vt 0.389247 0.776683 -vt 0.413617 0.903536 -vt 0.062695 0.650994 -vt 0.030202 0.650994 -vt 0.030204 0.048392 -vt 0.061070 0.776682 -vt 0.031827 0.776682 -vt 0.036700 0.903536 -vt 0.095188 0.650994 -vt 0.062697 0.048392 -vt 0.093563 0.776683 -vt 0.064319 0.776682 -vt 0.088689 0.903536 -vt 0.095189 0.048392 -vt 0.126056 0.776683 -vt 0.096812 0.776683 -vt 0.101686 0.903536 -vt 0.696232 0.316491 -vt 0.647140 0.241209 -vt 0.675280 0.224963 -vt 0.295018 0.030203 -vt 0.317763 0.030203 -vt 0.327510 0.030203 -vt 0.350255 0.030203 -vt 0.360003 0.030203 -vt 0.382748 0.030203 -vt 0.392495 0.030203 -vt 0.415240 0.030203 -vt 0.132555 0.030203 -vt 0.155300 0.030203 -vt 0.100063 0.030202 -vt 0.122808 0.030203 -vt 0.035078 0.030202 -vt 0.057823 0.030202 -vt 0.165048 0.030203 -vt 0.187793 0.030203 -vt 0.067570 0.030202 -vt 0.090315 0.030202 -vt 0.197540 0.030203 -vt 0.230033 0.030203 -vt 0.675280 0.136191 -vt 0.586508 0.224963 -vt 0.570262 0.164331 -vt 0.766808 0.115239 -vt 0.691526 0.164331 -vt 0.480519 0.191949 -vt 0.480519 0.169205 -vt 0.545858 0.056035 -vt 0.565555 0.044663 -vt 0.614647 0.119945 -vt 0.619521 0.330951 -vt 0.614647 0.241209 -vt 0.781268 0.191949 -vt 0.691526 0.196823 -vt 0.506352 0.095541 -vt 0.586508 0.136191 -vt 0.619521 0.030202 -vt 0.642266 0.030202 -vt 0.647140 0.119945 -vt 0.545858 0.305119 -vt 0.755436 0.265613 -vt 0.715930 0.056035 -vt 0.494979 0.245915 -vt 0.570262 0.196823 -vt 0.606062 0.491790 -vt 0.480519 0.516898 -vt 0.480519 0.391356 -vt 0.606062 0.577303 -vt 0.606061 0.702845 -vt 0.480519 0.677736 -vt 0.792008 0.391356 -vt 0.792008 0.516898 -vt 0.666466 0.491790 -vt 0.792008 0.677736 -vt 0.666466 0.702845 -vt 0.666466 0.577302 -vt 0.499739 0.793565 -vt 0.491616 0.793565 -vt 0.484581 0.789504 -vt 0.480519 0.774346 -vt 0.484581 0.767311 -vt 0.491616 0.763249 -vt 0.499739 0.763249 -vt 0.506774 0.767311 -vt 0.510835 0.782469 -vt 0.420114 0.048392 -vt 0.715930 0.305119 -vt 0.220285 0.030203 -vt 0.252778 0.030203 -vt 0.755436 0.095541 -vt 0.642266 0.330951 -vt 0.781268 0.169205 -vt 0.494980 0.115239 -vt 0.565556 0.316491 -vt 0.766808 0.245915 -vt 0.696232 0.044663 -vt 0.506352 0.265613 -vt 0.606061 0.391356 -vt 0.480519 0.577303 -vt 0.666466 0.391356 -vt 0.792008 0.577303 -vn 0.245200 0.320300 -0.915000 -vn 0.669900 0.320300 -0.669900 -vn 0.915000 0.320300 -0.245200 -vn 0.915000 0.320300 0.245200 -vn 0.669900 0.320300 0.669900 -vn 0.245200 0.320300 0.915000 -vn -0.245200 0.320300 0.915000 -vn -0.669900 0.320300 0.669900 -vn -0.915000 0.320300 0.245200 -vn -0.915000 0.320300 -0.245200 -vn 0.000000 1.000000 0.000000 -vn -0.245200 0.320300 -0.915000 -vn -0.669900 0.320300 -0.669900 -vn 0.000000 -1.000000 -0.000000 -vn -0.707100 0.000000 -0.707100 -vn -0.706300 0.048200 -0.706300 -vn -0.699800 0.143400 -0.699800 -vn -0.258800 0.000000 -0.965900 -vn -0.258500 0.048200 -0.964800 -vn -0.256100 0.143400 -0.955900 -vn -0.965900 0.000000 -0.258800 -vn -0.964800 0.048200 -0.258500 -vn -0.955900 0.143400 -0.256100 -vn -0.965900 0.000000 0.258800 -vn -0.964800 0.048200 0.258500 -vn -0.955900 0.143400 0.256100 -vn -0.707100 0.000000 0.707100 -vn -0.706300 0.048200 0.706300 -vn -0.699800 0.143400 0.699800 -vn -0.258800 0.000000 0.965900 -vn -0.258500 0.048200 0.964800 -vn -0.256100 0.143400 0.955900 -vn 0.258800 0.000000 0.965900 -vn 0.258500 0.048200 0.964800 -vn 0.256100 0.143400 0.955900 -vn 0.707100 0.000000 0.707100 -vn 0.706300 0.048200 0.706300 -vn 0.699800 0.143400 0.699800 -vn 0.965900 0.000000 0.258800 -vn 0.964800 0.048200 0.258500 -vn 0.955900 0.143400 0.256100 -vn 0.965900 0.000000 -0.258800 -vn 0.964800 0.048200 -0.258500 -vn 0.955900 0.143400 -0.256100 -vn 0.707100 0.000000 -0.707100 -vn 0.706300 0.048200 -0.706300 -vn 0.699800 0.143400 -0.699800 -vn 0.258800 0.000000 -0.965900 -vn 0.258500 0.048200 -0.964800 -vn 0.256100 0.143400 -0.955900 -vn -0.253400 0.202700 0.945900 -vn 0.945900 0.202700 0.253400 -vn -0.692400 0.202700 -0.692400 -vn 0.253400 0.202700 -0.945900 -vn -0.692400 0.202700 0.692400 -vn 0.692400 0.202700 0.692400 -vn -0.253400 0.202700 -0.945900 -vn 0.692400 0.202700 -0.692400 -vn -0.945900 0.202700 0.253400 -vn 0.253400 0.202700 0.945900 -vn 0.945900 0.202700 -0.253400 -vn -0.945900 0.202700 -0.253400 -vn 1.000000 0.000000 -0.000000 -vn -0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -s off -f 27/1/1 2/2/1 4/3/1 -f 4/4/2 6/5/2 31/6/2 -f 31/7/3 6/8/3 8/9/3 -f 8/10/4 10/11/4 37/12/4 -f 37/13/5 10/14/5 12/15/5 -f 40/16/6 12/17/6 14/18/6 -f 43/19/7 14/20/7 16/21/7 -f 16/22/8 18/23/8 49/24/8 -f 49/25/9 18/26/9 20/27/9 -f 20/28/10 22/29/10 55/30/10 -f 22/31/11 10/32/11 6/33/11 -f 24/34/12 2/35/12 27/36/12 -f 55/37/13 22/38/13 24/39/13 -f 17/40/14 69/41/14 68/42/14 -f 57/43/15 60/44/15 23/45/15 -f 56/46/16 59/47/16 60/44/16 -f 55/37/17 58/48/17 59/47/17 -f 60/44/18 25/49/18 1/50/18 -f 60/44/19 59/51/19 26/52/19 -f 59/51/20 58/53/20 27/36/20 -f 54/54/21 57/43/21 21/55/21 -f 54/54/22 53/56/22 56/57/22 -f 52/58/23 55/30/23 56/57/23 -f 51/59/24 54/54/24 19/60/24 -f 50/61/25 53/62/25 54/54/25 -f 50/61/26 49/25/26 52/63/26 -f 48/64/27 51/59/27 17/40/27 -f 48/64/28 47/65/28 50/66/28 -f 46/67/29 49/24/29 50/66/29 -f 45/68/30 48/64/30 15/69/30 -f 44/70/31 47/71/31 48/64/31 -f 44/70/32 43/19/32 46/72/32 -f 42/73/33 45/68/33 13/74/33 -f 41/75/34 44/76/34 45/68/34 -f 40/16/35 43/77/35 44/76/35 -f 39/78/36 42/73/36 11/79/36 -f 38/80/37 41/81/37 42/73/37 -f 37/13/38 40/82/38 41/81/38 -f 36/83/39 39/78/39 9/84/39 -f 36/83/40 35/85/40 38/86/40 -f 34/87/41 37/12/41 38/86/41 -f 33/88/42 36/89/42 7/90/42 -f 32/91/43 35/92/43 36/89/43 -f 32/91/44 31/7/44 34/93/44 -f 30/94/45 33/88/45 5/95/45 -f 30/94/46 29/96/46 32/97/46 -f 29/96/47 28/98/47 31/6/47 -f 25/49/48 30/94/48 3/99/48 -f 26/100/49 29/101/49 30/94/49 -f 26/100/50 27/1/50 28/102/50 -f 68/103/51 80/104/51 79/105/51 -f 15/69/14 68/106/14 67/107/14 -f 13/74/14 67/108/14 66/109/14 -f 11/79/14 66/110/14 65/111/14 -f 9/84/14 65/112/14 64/113/14 -f 1/50/14 61/114/14 72/115/14 -f 3/99/14 62/116/14 61/117/14 -f 7/90/14 64/118/14 63/119/14 -f 23/45/14 72/120/14 71/121/14 -f 5/95/14 63/122/14 62/123/14 -f 19/60/14 21/55/14 71/124/14 -f 17/40/14 19/60/14 70/125/14 -f 76/126/14 82/127/14 84/128/14 -f 65/129/52 77/130/52 76/126/52 -f 71/131/53 72/132/53 84/128/53 -f 61/133/54 62/134/54 74/135/54 -f 69/136/55 81/137/55 80/104/55 -f 66/138/56 78/139/56 77/130/56 -f 61/140/57 73/141/57 84/128/57 -f 62/142/58 63/143/58 75/144/58 -f 70/145/59 82/127/59 81/137/59 -f 67/146/60 79/105/60 78/139/60 -f 64/147/61 76/126/61 75/144/61 -f 71/148/62 83/149/62 82/127/62 -f 97/150/63 93/151/63 85/152/63 -f 86/153/64 94/154/64 98/155/64 -f 88/156/65 96/157/65 100/158/65 -f 99/159/66 95/160/66 87/161/66 -f 28/102/1 27/1/1 4/3/1 -f 28/98/2 4/4/2 31/6/2 -f 34/93/3 31/7/3 8/9/3 -f 34/87/4 8/10/4 37/12/4 -f 40/82/5 37/13/5 12/15/5 -f 43/77/6 40/16/6 14/18/6 -f 46/72/7 43/19/7 16/21/7 -f 46/67/8 16/22/8 49/24/8 -f 52/63/9 49/25/9 20/27/9 -f 52/58/10 20/28/10 55/30/10 -f 6/33/11 4/162/11 2/163/11 -f 2/163/11 24/164/11 22/31/11 -f 22/31/11 20/165/11 18/166/11 -f 18/166/11 16/167/11 14/168/11 -f 14/168/11 12/169/11 10/32/11 -f 10/32/11 8/170/11 6/33/11 -f 6/33/11 2/163/11 22/31/11 -f 22/31/11 18/166/11 14/168/11 -f 14/168/11 10/32/11 22/31/11 -f 58/53/12 24/34/12 27/36/12 -f 58/48/13 55/37/13 24/39/13 -f 15/69/14 17/40/14 68/42/14 -f 21/55/15 57/43/15 23/45/15 -f 57/43/16 56/46/16 60/44/16 -f 56/46/17 55/37/17 59/47/17 -f 23/45/18 60/44/18 1/50/18 -f 25/49/19 60/44/19 26/52/19 -f 26/52/20 59/51/20 27/36/20 -f 19/60/21 54/54/21 21/55/21 -f 57/43/22 54/54/22 56/57/22 -f 53/56/23 52/58/23 56/57/23 -f 17/40/24 51/59/24 19/60/24 -f 51/59/25 50/61/25 54/54/25 -f 53/62/26 50/61/26 52/63/26 -f 15/69/27 48/64/27 17/40/27 -f 51/59/28 48/64/28 50/66/28 -f 47/65/29 46/67/29 50/66/29 -f 13/74/30 45/68/30 15/69/30 -f 45/68/31 44/70/31 48/64/31 -f 47/71/32 44/70/32 46/72/32 -f 11/79/33 42/73/33 13/74/33 -f 42/73/34 41/75/34 45/68/34 -f 41/75/35 40/16/35 44/76/35 -f 9/84/36 39/78/36 11/79/36 -f 39/78/37 38/80/37 42/73/37 -f 38/80/38 37/13/38 41/81/38 -f 7/171/39 36/83/39 9/84/39 -f 39/78/40 36/83/40 38/86/40 -f 35/85/41 34/87/41 38/86/41 -f 5/95/42 33/88/42 7/90/42 -f 33/88/43 32/91/43 36/89/43 -f 35/92/44 32/91/44 34/93/44 -f 3/99/45 30/94/45 5/95/45 -f 33/88/46 30/94/46 32/97/46 -f 32/97/47 29/96/47 31/6/47 -f 1/50/48 25/49/48 3/99/48 -f 25/49/49 26/100/49 30/94/49 -f 29/101/50 26/100/50 28/102/50 -f 67/172/51 68/103/51 79/105/51 -f 13/74/14 15/69/14 67/107/14 -f 11/79/14 13/74/14 66/109/14 -f 9/84/14 11/79/14 65/111/14 -f 7/171/14 9/84/14 64/113/14 -f 23/45/14 1/50/14 72/115/14 -f 1/50/14 3/99/14 61/117/14 -f 5/95/14 7/90/14 63/119/14 -f 21/55/14 23/45/14 71/121/14 -f 3/99/14 5/95/14 62/123/14 -f 70/173/14 19/60/14 71/124/14 -f 69/174/14 17/40/14 70/125/14 -f 84/128/14 73/141/14 74/135/14 -f 74/135/14 75/144/14 76/126/14 -f 76/126/14 77/130/14 78/139/14 -f 78/139/14 79/105/14 80/104/14 -f 80/104/14 81/137/14 82/127/14 -f 82/127/14 83/149/14 84/128/14 -f 84/128/14 74/135/14 76/126/14 -f 76/126/14 78/139/14 80/104/14 -f 80/104/14 82/127/14 76/126/14 -f 64/175/52 65/129/52 76/126/52 -f 83/149/53 71/131/53 84/128/53 -f 73/141/54 61/133/54 74/135/54 -f 68/176/55 69/136/55 80/104/55 -f 65/177/56 66/138/56 77/130/56 -f 72/178/57 61/140/57 84/128/57 -f 74/135/58 62/142/58 75/144/58 -f 69/179/59 70/145/59 81/137/59 -f 66/180/60 67/146/60 78/139/60 -f 63/181/61 64/147/61 75/144/61 -f 70/182/62 71/148/62 82/127/62 -f 89/183/63 97/150/63 85/152/63 -f 90/184/64 86/153/64 98/155/64 -f 92/185/65 88/156/65 100/158/65 -f 91/186/66 99/159/66 87/161/66 diff --git a/src/main/resources/assets/hbm/models/missileThermo.obj b/src/main/resources/assets/hbm/models/missileThermo.obj deleted file mode 100644 index a4cb297aa..000000000 --- a/src/main/resources/assets/hbm/models/missileThermo.obj +++ /dev/null @@ -1,847 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileThermo.blend' -# www.blender.org -o Cylinder -v -0.097545 0.500000 -0.490393 -v 0.097545 0.500000 -0.490393 -v 0.073159 0.000000 -0.367794 -v 0.277785 0.500000 -0.415735 -v 0.208339 0.000000 -0.311801 -v 0.415735 0.500000 -0.277785 -v 0.311801 0.000000 -0.208339 -v 0.490393 0.500000 -0.097545 -v 0.367794 0.000000 -0.073159 -v 0.490393 0.500000 0.097545 -v 0.367794 -0.000000 0.073159 -v 0.415735 0.500000 0.277785 -v 0.311801 -0.000000 0.208339 -v 0.277785 0.500000 0.415735 -v 0.208339 -0.000000 0.311801 -v 0.097545 0.500000 0.490393 -v -0.097545 0.500000 0.490393 -v -0.073159 -0.000000 0.367794 -v -0.277785 0.500000 0.415735 -v -0.208339 -0.000000 0.311801 -v -0.415735 0.500000 0.277785 -v -0.311801 -0.000000 0.208339 -v -0.490393 0.500000 0.097545 -v -0.490393 0.500000 -0.097545 -v -0.367794 0.000000 -0.073159 -v -0.415735 0.500000 -0.277785 -v -0.311801 0.000000 -0.208339 -v 0.490393 3.000000 0.097545 -v 0.415735 3.000000 0.277785 -v -0.208339 0.000000 -0.311801 -v -0.277785 0.500000 -0.415735 -v 0.332588 4.500000 0.222228 -v 0.222228 4.500000 0.332588 -v -0.277785 3.000000 0.415735 -v -0.415735 3.000000 0.277785 -v -0.277785 3.000000 -0.415735 -v -0.097545 3.000000 -0.490393 -v 0.415735 3.000000 -0.277785 -v 0.490393 3.000000 -0.097545 -v -0.490393 3.000000 -0.097545 -v -0.415735 3.000000 -0.277785 -v 0.097545 3.000000 -0.490393 -v 0.277785 3.000000 -0.415735 -v 0.277785 3.000000 0.415735 -v -0.490393 3.000000 0.097545 -v -0.097545 3.000000 0.490393 -v 0.097545 3.000000 0.490393 -v -0.332588 4.500000 0.222228 -v -0.270228 4.750000 0.180560 -v -0.318755 4.750000 0.063404 -v -0.332588 4.500000 -0.222228 -v -0.222228 4.500000 -0.332588 -v -0.078036 4.500000 -0.392314 -v 0.078036 4.500000 -0.392314 -v 0.078036 4.500000 0.392314 -v -0.078036 4.500000 0.392314 -v -0.222228 4.500000 0.332588 -v 0.222228 4.500000 -0.332588 -v 0.332588 4.500000 -0.222228 -v 0.392314 4.500000 -0.078036 -v -0.392314 4.500000 0.078036 -v 0.392314 4.500000 0.078036 -v -0.392314 4.500000 -0.078036 -v -0.180560 4.750000 0.270228 -v -0.063404 4.750000 0.318755 -v -0.073159 5.000000 0.367795 -v 0.318755 4.750000 -0.063404 -v -0.318755 4.750000 -0.063404 -v 0.318755 4.750000 0.063404 -v 0.270227 4.750000 0.180560 -v -0.270228 4.750000 -0.180560 -v 0.180560 4.750000 0.270228 -v -0.063405 4.750000 -0.318755 -v 0.063404 4.750000 -0.318755 -v -0.180560 4.750000 -0.270228 -v 0.063404 4.750000 0.318755 -v 0.180560 4.750000 -0.270228 -v 0.270227 4.750000 -0.180560 -v -0.311801 5.000000 -0.208339 -v -0.311801 6.500000 -0.208339 -v -0.208339 6.500000 -0.311801 -v 0.208338 5.000000 -0.311801 -v 0.311801 5.000000 -0.208339 -v -0.208339 5.000000 0.311801 -v -0.311801 5.000000 0.208339 -v 0.367794 5.000000 -0.073159 -v -0.367795 5.000000 0.073159 -v -0.367795 5.000000 -0.073159 -v 0.367794 5.000000 0.073159 -v 0.311801 5.000000 0.208339 -v -0.208339 5.000000 -0.311801 -v 0.208339 5.000000 0.311801 -v 0.073159 5.000000 0.367794 -v -0.073159 5.000000 -0.367794 -v 0.073158 5.000000 -0.367794 -v 0.367794 6.500000 0.073159 -v 0.367794 6.500000 -0.073159 -v 0.220676 6.750000 -0.043895 -v 0.208339 6.500000 0.311801 -v 0.073159 6.500000 0.367794 -v -0.073159 6.500000 -0.367794 -v 0.073159 6.500000 -0.367794 -v -0.073159 6.500000 0.367795 -v 0.208339 6.500000 -0.311801 -v -0.208339 6.500000 0.311801 -v 0.311801 6.500000 -0.208339 -v -0.311801 6.500000 0.208339 -v -0.367795 6.500000 0.073159 -v -0.367795 6.500000 -0.073159 -v 0.311801 6.500000 0.208339 -v 0.187080 6.750000 -0.125003 -v 0.000000 6.900000 0.000000 -v -0.220677 6.750000 0.043895 -v -0.220677 6.750000 -0.043895 -v 0.220676 6.750000 0.043895 -v -0.187081 6.750000 -0.125003 -v 0.187080 6.750000 0.125003 -v 0.125003 6.750000 0.187081 -v 0.043895 6.750000 0.220677 -v -0.043896 6.750000 -0.220677 -v -0.125004 6.750000 -0.187081 -v 0.043895 6.750000 -0.220677 -v -0.043896 6.750000 0.220677 -v 0.125003 6.750000 -0.187081 -v -0.125004 6.750000 0.187081 -v -0.187081 6.750000 0.125003 -v -0.048773 0.500000 0.490393 -v 0.048772 0.500000 0.490393 -v -0.490393 0.500000 0.048773 -v -0.490393 0.500000 -0.048772 -v 0.048773 0.500000 -0.490393 -v -0.048772 0.500000 -0.490393 -v 0.490393 0.500000 -0.048772 -v 0.490393 0.500000 0.048773 -v -0.073159 0.000000 -0.367794 -v 0.073159 -0.000000 0.367794 -v -0.367794 -0.000000 0.073159 -v 0.048773 3.000000 -0.490393 -v -0.048772 3.000000 -0.490393 -v -0.048772 3.000000 0.490393 -v 0.048772 3.000000 0.490393 -v -0.048772 0.500000 -0.990393 -v 0.048773 0.500000 -0.990393 -v 0.048772 0.500000 0.990393 -v -0.048773 0.500000 0.990393 -v -0.490393 3.000000 -0.048773 -v -0.490393 3.000000 0.048772 -v 0.490393 3.000000 0.048773 -v 0.490393 3.000000 -0.048772 -v -0.990393 0.500000 0.048772 -v -0.990393 0.500000 -0.048773 -v 0.990393 0.500000 -0.048772 -v 0.990393 0.500000 0.048773 -vt 0.637050 0.082779 -vt 0.613897 0.082779 -vt 0.616792 0.021683 -vt 0.590745 0.082779 -vt 0.593639 0.021683 -vt 0.567592 0.082778 -vt 0.570487 0.021683 -vt 0.544439 0.082778 -vt 0.547334 0.021683 -vt 0.914881 0.082781 -vt 0.891728 0.082781 -vt 0.894623 0.021685 -vt 0.888835 0.021685 -vt 0.868576 0.082781 -vt 0.865682 0.021685 -vt 0.845423 0.082781 -vt 0.822271 0.082780 -vt 0.825165 0.021684 -vt 0.799118 0.082780 -vt 0.802012 0.021685 -vt 0.796224 0.021684 -vt 0.775965 0.082780 -vt 0.773072 0.021684 -vt 0.752813 0.082780 -vt 0.729660 0.082780 -vt 0.732555 0.021684 -vt 0.706508 0.082780 -vt 0.709402 0.021684 -vt 0.914879 0.379471 -vt 0.891726 0.379471 -vt 0.680461 0.021684 -vt 0.683355 0.082779 -vt 0.660202 0.082779 -vt 0.686250 0.021684 -vt 0.664143 0.659251 -vt 0.683067 0.630930 -vt 0.744795 0.643209 -vt 0.889410 0.557865 -vt 0.870888 0.557865 -vt 0.799116 0.379470 -vt 0.775963 0.379470 -vt 0.683353 0.379470 -vt 0.660200 0.379469 -vt 0.590742 0.379469 -vt 0.567590 0.379469 -vt 0.729658 0.379470 -vt 0.706505 0.379470 -vt 0.637048 0.379469 -vt 0.613895 0.379469 -vt 0.868574 0.379471 -vt 0.752811 0.379470 -vt 0.822269 0.379470 -vt 0.845421 0.379471 -vt 0.773647 0.557865 -vt 0.771910 0.588792 -vt 0.756861 0.588792 -vt 0.704189 0.557864 -vt 0.685667 0.557864 -vt 0.866258 0.557866 -vt 0.657884 0.557864 -vt 0.639362 0.557864 -vt 0.681036 0.557864 -vt 0.662514 0.557864 -vt 0.843105 0.557865 -vt 0.824583 0.557865 -vt 0.634731 0.557864 -vt 0.819952 0.557865 -vt 0.801430 0.557865 -vt 0.611578 0.557864 -vt 0.796800 0.557865 -vt 0.588426 0.557864 -vt 0.569904 0.557864 -vt 0.755125 0.557865 -vt 0.565273 0.557864 -vt 0.546751 0.557864 -vt 0.750494 0.557864 -vt 0.731972 0.557864 -vt 0.912563 0.557866 -vt 0.727342 0.557865 -vt 0.423279 0.021683 -vt 0.438328 0.021683 -vt 0.439486 0.051917 -vt 0.563536 0.588791 -vt 0.748758 0.588791 -vt 0.733709 0.588791 -vt 0.910826 0.588793 -vt 0.895777 0.588793 -vt 0.725605 0.588792 -vt 0.710556 0.588792 -vt 0.887674 0.588792 -vt 0.702453 0.588791 -vt 0.847735 0.557865 -vt 0.864521 0.588792 -vt 0.656147 0.588791 -vt 0.641098 0.588790 -vt 0.679300 0.588791 -vt 0.664251 0.588791 -vt 0.841368 0.588791 -vt 0.632994 0.588791 -vt 0.617945 0.588791 -vt 0.818216 0.588792 -vt 0.609842 0.588791 -vt 0.594792 0.588790 -vt 0.778277 0.557865 -vt 0.795063 0.588792 -vt 0.586689 0.588791 -vt 0.352664 0.051917 -vt 0.352664 0.229931 -vt 0.335300 0.229931 -vt 0.282049 0.021683 -vt 0.283206 0.051917 -vt 0.265842 0.051917 -vt 0.420964 0.021683 -vt 0.422122 0.051917 -vt 0.404757 0.051917 -vt 0.264684 0.021683 -vt 0.248477 0.051917 -vt 0.403600 0.021683 -vt 0.387393 0.051917 -vt 0.232271 0.021683 -vt 0.247320 0.021683 -vt 0.386235 0.021683 -vt 0.370028 0.051917 -vt 0.507786 0.021683 -vt 0.508944 0.051917 -vt 0.491579 0.051917 -vt 0.368871 0.021683 -vt 0.475372 0.021683 -vt 0.490422 0.021683 -vt 0.351506 0.021683 -vt 0.335299 0.051917 -vt 0.473057 0.021683 -vt 0.474215 0.051917 -vt 0.456851 0.051917 -vt 0.316778 0.021683 -vt 0.317935 0.051917 -vt 0.300571 0.051917 -vt 0.334142 0.021683 -vt 0.455693 0.021683 -vt 0.299413 0.021683 -vt 0.231112 0.229931 -vt 0.248477 0.229931 -vt 0.245004 0.264357 -vt 0.474215 0.229931 -vt 0.456851 0.229931 -vt 0.317935 0.229931 -vt 0.300570 0.229931 -vt 0.439486 0.229931 -vt 0.283206 0.229931 -vt 0.422122 0.229931 -vt 0.265842 0.229931 -vt 0.404757 0.229931 -vt 0.387393 0.229931 -vt 0.370028 0.229931 -vt 0.508944 0.229931 -vt 0.491580 0.229931 -vt 0.251950 0.264357 -vt 0.262369 0.264357 -vt 0.257159 0.296023 -vt 0.383920 0.264356 -vt 0.373501 0.264357 -vt 0.505472 0.264356 -vt 0.366555 0.264357 -vt 0.356137 0.264357 -vt 0.488107 0.264356 -vt 0.477688 0.264356 -vt 0.349191 0.264356 -vt 0.470743 0.264356 -vt 0.460324 0.264356 -vt 0.314462 0.264357 -vt 0.331827 0.264357 -vt 0.321408 0.264357 -vt 0.453378 0.264356 -vt 0.297098 0.264356 -vt 0.436013 0.264356 -vt 0.279733 0.264356 -vt 0.269314 0.264356 -vt 0.418649 0.264356 -vt 0.408230 0.264356 -vt 0.401285 0.264356 -vt 0.274523 0.296023 -vt 0.482898 0.296022 -vt 0.500262 0.296023 -vt 0.495053 0.264356 -vt 0.239795 0.296023 -vt 0.234585 0.264357 -vt 0.465533 0.296023 -vt 0.448169 0.296023 -vt 0.442959 0.264356 -vt 0.430804 0.296023 -vt 0.425595 0.264356 -vt 0.413440 0.296022 -vt 0.396075 0.296023 -vt 0.390866 0.264356 -vt 0.378711 0.296023 -vt 0.361346 0.296023 -vt 0.343982 0.296022 -vt 0.338772 0.264356 -vt 0.326617 0.296023 -vt 0.309253 0.296023 -vt 0.304043 0.264357 -vt 0.291888 0.296023 -vt 0.286679 0.264356 -vt 0.275742 0.693421 -vt 0.275742 0.390854 -vt 0.287318 0.693421 -vt 0.439182 0.390854 -vt 0.450758 0.693421 -vt 0.439182 0.693421 -vt 0.112301 0.693421 -vt 0.112301 0.390854 -vt 0.123877 0.693421 -vt 0.287318 0.331516 -vt 0.287318 0.390854 -vt 0.275742 0.331516 -vt 0.845119 0.683623 -vt 0.856695 0.986190 -vt 0.845119 0.986190 -vt 0.856695 0.683623 -vt 0.845119 0.624285 -vt 0.450758 0.390854 -vt 0.439182 0.331516 -vt 0.123877 0.390854 -vt 0.380996 0.402491 -vt 0.508944 0.402491 -vt 0.786933 0.695261 -vt 0.182063 0.402491 -vt 0.914881 0.695261 -vt 0.054115 0.402491 -vt 0.657309 0.021683 -vt 0.639944 0.021683 -vt 0.634156 0.021683 -vt 0.611004 0.021683 -vt 0.587851 0.021683 -vt 0.564698 0.021683 -vt 0.911987 0.021685 -vt 0.871470 0.021685 -vt 0.848318 0.021685 -vt 0.842530 0.021684 -vt 0.819377 0.021685 -vt 0.778860 0.021684 -vt 0.755707 0.021684 -vt 0.749919 0.021684 -vt 0.726766 0.021684 -vt 0.663097 0.021683 -vt 0.703614 0.021684 -vt 0.751440 0.659251 -vt 0.751440 0.676616 -vt 0.744795 0.692659 -vt 0.732517 0.704937 -vt 0.716474 0.711582 -vt 0.670788 0.692659 -vt 0.699110 0.711582 -vt 0.683067 0.704937 -vt 0.664143 0.676616 -vt 0.670788 0.643209 -vt 0.699110 0.624285 -vt 0.716474 0.624285 -vt 0.732517 0.630930 -vt 0.616209 0.557864 -vt 0.593056 0.557863 -vt 0.544437 0.379469 -vt 0.894041 0.557866 -vt 0.708820 0.557865 -vt 0.548487 0.588791 -vt 0.872624 0.588792 -vt 0.687403 0.588791 -vt 0.849472 0.588792 -vt 0.826319 0.588791 -vt 0.803167 0.588792 -vt 0.780014 0.588791 -vt 0.571640 0.588791 -vt 0.266999 0.021683 -vt 0.405915 0.021683 -vt 0.249635 0.021683 -vt 0.388550 0.021683 -vt 0.231113 0.051917 -vt 0.371186 0.021683 -vt 0.492737 0.021683 -vt 0.353822 0.021683 -vt 0.336457 0.021683 -vt 0.458008 0.021683 -vt 0.301728 0.021683 -vt 0.319093 0.021683 -vt 0.440644 0.021683 -vt 0.284364 0.021683 -vt 0.345504 0.402491 -vt 0.217556 0.402491 -vt 0.856695 0.624285 -vt 0.450758 0.331516 -vt 0.112301 0.331516 -vt 0.123877 0.331516 -vn 0.371700 -0.238100 -0.897300 -vn 0.686800 -0.238100 -0.686800 -vn 0.897300 -0.238100 -0.371700 -vn 0.971200 -0.238100 0.000000 -vn 0.897300 -0.238100 0.371700 -vn 0.686800 -0.238100 0.686800 -vn 0.371700 -0.238100 0.897300 -vn 0.000000 -0.238100 0.971200 -vn -0.371700 -0.238100 0.897300 -vn -0.686800 -0.238100 0.686800 -vn -0.897300 -0.238100 0.371700 -vn -0.971200 -0.238100 0.000000 -vn -0.897300 -0.238100 -0.371700 -vn 0.923900 -0.000000 0.382700 -vn -0.371700 -0.238100 -0.897300 -vn -0.686800 -0.238100 -0.686800 -vn 0.000000 -1.000000 -0.000000 -vn 0.705600 0.065200 0.705600 -vn -0.707100 -0.000000 0.707100 -vn -0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn -0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 -0.923900 -vn 0.707100 -0.000000 0.707100 -vn -0.923900 -0.000000 0.382700 -vn -0.382700 -0.000000 0.923900 -vn -0.707100 0.000000 -0.707100 -vn 0.707100 0.000000 -0.707100 -vn 0.382700 -0.000000 0.923900 -vn -0.886300 0.282300 0.367100 -vn -0.705600 0.065200 -0.705600 -vn 0.381900 0.065200 0.921900 -vn 0.000000 0.065200 -0.997900 -vn -0.381900 0.065200 -0.921900 -vn 0.000000 0.065200 0.997900 -vn 0.381900 0.065200 -0.921900 -vn -0.381900 0.065200 0.921900 -vn 0.705600 0.065200 -0.705600 -vn -0.705600 0.065200 0.705600 -vn 0.921900 0.065200 -0.381900 -vn -0.921900 0.065200 0.381900 -vn 0.997900 0.065200 0.000000 -vn -0.997900 0.065200 0.000000 -vn 0.921900 0.065200 0.381900 -vn -0.921900 0.065200 -0.381900 -vn -0.375500 -0.192500 0.906600 -vn 0.959300 0.282300 0.000000 -vn -0.959300 0.282300 0.000000 -vn 0.886300 0.282300 0.367100 -vn -0.886300 0.282300 -0.367100 -vn 0.678400 0.282300 0.678400 -vn 0.678400 0.282300 0.678300 -vn -0.678400 0.282300 -0.678400 -vn 0.367100 0.282300 0.886300 -vn 0.000000 0.282300 -0.959300 -vn -0.367100 0.282300 -0.886300 -vn 0.000000 0.282300 0.959300 -vn 0.367100 0.282300 -0.886300 -vn -0.367100 0.282300 0.886300 -vn 0.678400 0.282300 -0.678400 -vn 0.678400 0.282300 -0.678300 -vn -0.678400 0.282300 0.678400 -vn 0.886300 0.282300 -0.367100 -vn 0.693900 -0.192500 -0.693900 -vn -0.693900 -0.192500 0.693900 -vn 0.906600 -0.192500 -0.375500 -vn -0.906600 -0.192500 0.375500 -vn 0.981300 -0.192500 0.000000 -vn -0.981300 -0.192500 0.000000 -vn 0.906600 -0.192500 0.375500 -vn -0.906600 -0.192500 -0.375500 -vn 0.693900 -0.192500 0.693900 -vn -0.693900 -0.192500 -0.693900 -vn 0.375500 -0.192500 0.906600 -vn 0.000000 -0.192500 -0.981300 -vn -0.375500 -0.192500 -0.906600 -vn 0.000000 -0.192500 0.981300 -vn 0.375500 -0.192500 -0.906600 -vn 0.861800 0.507200 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 -0.000000 1.000000 -vn 1.000000 -0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.519400 0.827000 -0.215100 -vn -0.861800 0.507200 0.000000 -vn 0.796200 0.507200 0.329800 -vn -0.796200 0.507200 -0.329800 -vn 0.609400 0.507200 0.609400 -vn -0.609400 0.507200 -0.609400 -vn 0.329800 0.507200 0.796200 -vn 0.000000 0.507200 -0.861800 -vn -0.329800 0.507200 -0.796200 -vn 0.000000 0.507200 0.861800 -vn 0.329800 0.507200 -0.796200 -vn -0.329800 0.507200 0.796200 -vn 0.609400 0.507200 -0.609400 -vn -0.609400 0.507200 0.609400 -vn 0.796200 0.507200 -0.329800 -vn -0.796200 0.507200 0.329800 -vn 0.397500 0.827000 -0.397500 -vn 0.397500 0.827000 0.397500 -vn 0.519400 0.827000 0.215100 -vn 0.562200 0.827000 0.000000 -vn 0.215100 0.827000 0.519400 -vn 0.000000 0.827000 0.562200 -vn -0.215100 0.827000 0.519400 -vn -0.397500 0.827000 0.397500 -vn -0.519400 0.827000 0.215100 -vn -0.562200 0.827000 0.000000 -vn -0.519400 0.827000 -0.215100 -vn -0.397500 0.827000 -0.397500 -vn -0.215100 0.827000 -0.519400 -vn 0.000000 0.827000 -0.562200 -vn 0.215100 0.827000 -0.519400 -vn 0.000000 0.196100 0.980600 -vn 0.980600 0.196100 0.000000 -vn 0.000000 0.196100 -0.980600 -vn -0.980600 0.196100 0.000000 -vn 0.000000 -0.238100 -0.971200 -vn 0.000000 -0.118100 -0.993000 -s 1 -f 2/1/1 4/2/1 5/3/1 -f 4/2/2 6/4/2 7/5/2 -f 6/4/3 8/6/3 9/7/3 -f 8/6/4 10/8/4 11/9/4 -f 10/10/5 12/11/5 13/12/5 -f 13/13/6 12/11/6 14/14/6 -f 15/15/7 14/14/7 16/16/7 -f 16/16/8 17/17/8 18/18/8 -f 17/17/9 19/19/9 20/20/9 -f 20/21/10 19/19/10 21/22/10 -f 22/23/11 21/22/11 23/24/11 -f 23/24/12 24/25/12 25/26/12 -f 24/25/13 26/27/13 27/28/13 -f 10/10/14 28/29/14 29/30/14 -f 30/31/15 31/32/15 1/33/15 -f 26/27/16 31/32/16 30/34/16 -f 18/35/17 22/36/17 30/37/17 -f 29/30/18 32/38/18 33/39/18 -f 19/19/19 34/40/19 35/41/19 -f 31/32/20 36/42/20 37/43/20 -f 6/4/21 38/44/21 39/45/21 -f 24/25/22 40/46/22 41/47/22 -f 2/1/23 42/48/23 43/49/23 -f 12/11/24 29/30/24 44/50/24 -f 21/22/25 35/41/25 45/51/25 -f 17/17/26 46/52/26 34/40/26 -f 26/27/27 41/47/27 36/42/27 -f 4/2/28 43/49/28 38/44/28 -f 14/14/29 44/50/29 47/53/29 -f 48/54/30 49/55/30 50/56/30 -f 41/47/31 51/57/31 52/58/31 -f 47/53/32 44/50/32 33/59/32 -f 37/43/33 53/60/33 54/61/33 -f 36/42/34 52/62/34 53/63/34 -f 47/53/35 55/64/35 56/65/35 -f 43/49/36 42/48/36 54/66/36 -f 46/52/37 56/67/37 57/68/37 -f 38/44/38 43/49/38 58/69/38 -f 35/41/39 34/40/39 57/70/39 -f 38/44/40 59/71/40 60/72/40 -f 35/41/41 48/54/41 61/73/41 -f 39/45/42 60/74/42 62/75/42 -f 45/51/43 61/76/43 63/77/43 -f 29/30/44 28/29/44 62/78/44 -f 41/47/45 40/46/45 63/79/45 -f 64/80/46 65/81/46 66/82/46 -f 62/75/47 60/74/47 67/83/47 -f 61/76/48 50/84/48 68/85/48 -f 62/78/49 69/86/49 70/87/49 -f 63/79/50 68/88/50 71/89/50 -f 33/39/51 32/38/51 70/90/52 -f 52/58/53 51/57/53 71/91/53 -f 55/92/54 33/59/54 72/93/54 -f 53/60/55 73/94/55 74/95/55 -f 52/62/56 75/96/56 73/97/56 -f 56/65/57 55/64/57 76/98/57 -f 54/66/58 74/99/58 77/100/58 -f 57/68/59 56/67/59 65/101/59 -f 58/69/60 77/102/61 78/103/61 -f 48/104/62 57/70/62 64/105/62 -f 60/72/63 59/71/63 78/106/63 -f 79/107/27 80/108/27 81/109/27 -f 77/110/64 82/111/64 83/112/64 -f 64/113/65 84/114/65 85/115/65 -f 78/116/66 83/112/66 86/117/66 -f 49/118/67 85/115/67 87/119/67 -f 69/120/68 67/121/68 86/117/68 -f 50/122/69 87/119/69 88/123/69 -f 69/124/70 89/125/70 90/126/70 -f 68/127/71 88/123/71 79/107/71 -f 72/128/72 70/129/72 90/126/72 -f 71/130/73 79/107/73 91/131/73 -f 72/132/74 92/133/74 93/134/74 -f 73/135/75 94/136/75 95/137/75 -f 75/138/76 91/131/76 94/136/76 -f 76/139/77 93/134/77 66/82/77 -f 74/140/78 95/137/78 82/111/78 -f 96/141/79 97/142/79 98/143/79 -f 92/133/29 99/144/29 100/145/29 -f 94/136/80 101/146/80 102/147/80 -f 91/131/20 81/109/20 101/146/20 -f 93/134/81 100/145/81 103/148/81 -f 95/137/23 102/147/23 104/149/23 -f 66/82/26 103/148/26 105/150/26 -f 82/111/28 104/149/28 106/151/28 -f 84/114/19 105/150/19 107/152/19 -f 83/112/21 106/151/21 97/142/21 -f 85/115/25 107/152/25 108/153/25 -f 86/117/82 97/142/82 96/141/82 -f 87/119/83 108/153/83 109/154/83 -f 89/125/14 96/155/14 110/156/14 -f 79/107/22 88/123/22 109/154/22 -f 90/126/24 110/156/24 99/144/24 -f 98/157/84 111/158/84 112/159/84 -f 108/153/85 113/160/85 114/161/85 -f 110/156/86 96/155/86 115/162/86 -f 109/154/87 114/163/87 116/164/87 -f 110/156/88 117/165/88 118/166/88 -f 81/109/89 80/108/89 116/167/89 -f 99/144/90 118/168/90 119/169/90 -f 102/147/91 101/146/91 120/170/91 -f 81/109/92 121/171/92 120/172/92 -f 103/148/93 100/145/93 119/173/93 -f 104/149/94 102/147/94 122/174/94 -f 105/150/95 103/148/95 123/175/95 -f 104/149/96 124/176/96 111/177/96 -f 105/150/97 125/178/97 126/179/97 -f 106/151/98 111/158/98 98/157/98 -f 108/153/99 107/152/99 126/180/99 -f 124/176/100 112/181/100 111/177/100 -f 117/165/101 112/182/101 118/166/101 -f 115/162/102 112/183/102 117/184/102 -f 98/143/103 112/185/103 115/186/103 -f 118/168/104 112/187/104 119/169/104 -f 119/173/105 112/188/105 123/189/105 -f 123/175/106 112/190/106 125/191/106 -f 125/178/107 112/192/107 126/179/107 -f 126/180/108 112/193/108 113/194/108 -f 113/160/109 112/195/109 114/161/109 -f 114/163/110 112/196/110 116/164/110 -f 116/167/111 112/197/111 121/198/111 -f 121/171/112 112/199/112 120/172/112 -f 120/170/113 112/200/113 122/201/113 -f 122/174/114 112/202/114 124/203/114 -f 140/204/115 145/205/115 141/206/115 -f 153/207/116 149/208/116 148/209/116 -f 138/210/117 143/211/117 139/212/117 -f 128/213/17 144/214/17 127/215/17 -f 151/216/118 147/217/118 146/218/118 -f 150/219/17 151/216/17 130/220/17 -f 152/221/17 153/207/17 134/222/17 -f 145/205/115 144/214/115 141/206/115 -f 143/211/117 142/223/117 139/212/117 -f 134/224/81 153/207/81 148/209/81 -f 133/225/80 149/208/80 152/221/80 -f 130/226/80 151/216/80 146/218/80 -f 132/227/83 139/212/83 142/223/83 -f 129/228/81 147/217/81 150/219/81 -f 131/229/82 143/211/82 138/210/82 -f 135/230/119 1/33/120 3/231/119 -f 3/232/1 2/1/1 5/3/1 -f 5/233/2 4/2/2 7/5/2 -f 7/234/3 6/4/3 9/7/3 -f 9/235/4 8/6/4 11/9/4 -f 11/236/5 10/10/5 13/12/5 -f 15/237/6 13/13/6 14/14/6 -f 136/238/7 15/15/7 16/16/7 -f 136/239/8 16/16/8 18/18/8 -f 18/240/9 17/17/9 20/20/9 -f 22/241/10 20/21/10 21/22/10 -f 137/242/11 22/23/11 23/24/11 -f 137/243/12 23/24/12 25/26/12 -f 25/244/13 24/25/13 27/28/13 -f 12/11/14 10/10/14 29/30/14 -f 135/245/15 30/31/15 1/33/15 -f 27/246/16 26/27/16 30/34/16 -f 30/37/17 135/247/17 3/248/17 -f 3/248/17 5/249/17 7/250/17 -f 7/250/17 9/251/17 15/252/17 -f 11/253/17 13/254/17 15/252/17 -f 15/252/17 136/255/17 18/35/17 -f 18/35/17 20/256/17 22/36/17 -f 22/36/17 137/257/17 30/37/17 -f 25/258/17 27/259/17 30/37/17 -f 30/37/17 3/248/17 15/252/17 -f 9/251/17 11/253/17 15/252/17 -f 15/252/17 18/35/17 30/37/17 -f 137/257/17 25/258/17 30/37/17 -f 3/248/17 7/250/17 15/252/17 -f 44/50/18 29/30/18 33/39/18 -f 21/22/19 19/19/19 35/41/19 -f 1/33/20 31/32/20 37/43/20 -f 8/6/21 6/4/21 39/45/21 -f 26/27/22 24/25/22 41/47/22 -f 4/2/23 2/1/23 43/49/23 -f 14/14/24 12/11/24 44/50/24 -f 23/24/25 21/22/25 45/51/25 -f 19/19/26 17/17/26 34/40/26 -f 31/32/27 26/27/27 36/42/27 -f 6/4/28 4/2/28 38/44/28 -f 16/16/29 14/14/29 47/53/29 -f 61/73/30 48/54/30 50/56/30 -f 36/42/31 41/47/31 52/58/31 -f 55/92/32 47/53/32 33/59/32 -f 42/48/33 37/43/33 54/61/33 -f 37/43/34 36/42/34 53/63/34 -f 46/52/35 47/53/35 56/65/35 -f 58/260/36 43/49/36 54/66/36 -f 34/40/37 46/52/37 57/68/37 -f 59/261/38 38/44/38 58/69/38 -f 48/104/39 35/41/39 57/70/39 -f 39/45/40 38/44/40 60/72/40 -f 45/51/41 35/41/41 61/73/41 -f 28/262/42 39/45/42 62/75/42 -f 40/46/43 45/51/43 63/77/43 -f 32/263/44 29/30/44 62/78/44 -f 51/264/45 41/47/45 63/79/45 -f 84/114/46 64/80/46 66/82/46 -f 69/265/47 62/75/47 67/83/47 -f 63/77/48 61/76/48 68/85/48 -f 32/263/49 62/78/49 70/87/49 -f 51/264/50 63/79/50 71/89/50 -f 72/266/52 33/39/51 70/90/52 -f 75/267/53 52/58/53 71/91/53 -f 76/268/54 55/92/54 72/93/54 -f 54/61/55 53/60/55 74/95/55 -f 53/63/56 52/62/56 73/97/56 -f 65/269/57 56/65/57 76/98/57 -f 58/260/58 54/66/58 77/100/58 -f 64/270/59 57/68/59 65/101/59 -f 59/261/60 58/69/60 78/103/61 -f 49/271/62 48/104/62 64/105/62 -f 67/272/63 60/72/63 78/106/63 -f 91/131/27 79/107/27 81/109/27 -f 78/273/64 77/110/64 83/112/64 -f 49/274/65 64/113/65 85/115/65 -f 67/275/66 78/116/66 86/117/66 -f 50/276/67 49/118/67 87/119/67 -f 89/277/68 69/120/68 86/117/68 -f 68/278/69 50/122/69 88/123/69 -f 70/279/70 69/124/70 90/126/70 -f 71/280/71 68/127/71 79/107/71 -f 92/133/72 72/128/72 90/126/72 -f 75/281/73 71/130/73 91/131/73 -f 76/282/74 72/132/74 93/134/74 -f 74/283/75 73/135/75 95/137/75 -f 73/284/76 75/138/76 94/136/76 -f 65/285/77 76/139/77 66/82/77 -f 77/286/78 74/140/78 82/111/78 -f 115/186/79 96/141/79 98/143/79 -f 93/134/29 92/133/29 100/145/29 -f 95/137/80 94/136/80 102/147/80 -f 94/136/20 91/131/20 101/146/20 -f 66/82/81 93/134/81 103/148/81 -f 82/111/23 95/137/23 104/149/23 -f 84/114/26 66/82/26 105/150/26 -f 83/112/28 82/111/28 106/151/28 -f 85/115/19 84/114/19 107/152/19 -f 86/117/21 83/112/21 97/142/21 -f 87/119/25 85/115/25 108/153/25 -f 89/277/82 86/117/82 96/141/82 -f 88/123/83 87/119/83 109/154/83 -f 90/126/14 89/125/14 110/156/14 -f 80/108/22 79/107/22 109/154/22 -f 92/133/24 90/126/24 99/144/24 -f 109/154/85 108/153/85 114/161/85 -f 117/184/86 110/156/86 115/162/86 -f 80/108/87 109/154/87 116/164/87 -f 99/144/88 110/156/88 118/166/88 -f 121/198/89 81/109/89 116/167/89 -f 100/145/90 99/144/90 119/169/90 -f 122/201/91 102/147/91 120/170/91 -f 101/146/92 81/109/92 120/172/92 -f 123/189/93 103/148/93 119/173/93 -f 124/203/94 104/149/94 122/174/94 -f 125/191/95 105/150/95 123/175/95 -f 106/151/96 104/149/96 111/177/96 -f 107/152/97 105/150/97 126/179/97 -f 97/142/98 106/151/98 98/157/98 -f 113/194/99 108/153/99 126/180/99 -f 128/287/82 141/206/82 144/214/82 -f 151/216/118 150/219/118 147/217/118 -f 127/288/83 145/205/83 140/204/83 -f 153/207/116 152/221/116 149/208/116 -f 129/289/17 150/219/17 130/220/17 -f 144/214/17 145/205/17 127/215/17 -f 133/290/17 152/221/17 134/222/17 -f 142/223/17 143/211/17 131/291/17 -f 28/262/82 10/8/82 8/6/82 -f 47/53/81 46/52/81 17/17/81 -f 45/51/83 40/46/83 24/25/83 -f 3/231/119 1/33/120 2/1/120 -f 142/223/17 131/291/17 132/292/17 -f 42/48/80 2/1/120 1/33/120 -f 39/45/82 28/262/82 8/6/82 -f 16/16/81 47/53/81 17/17/81 -f 23/24/83 45/51/83 24/25/83 -f 37/43/80 42/48/80 1/33/120 diff --git a/src/main/resources/assets/hbm/models/missileV2.obj b/src/main/resources/assets/hbm/models/missileV2.obj deleted file mode 100644 index a4c0171f0..000000000 --- a/src/main/resources/assets/hbm/models/missileV2.obj +++ /dev/null @@ -1,599 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'MissileV2.blend' -# www.blender.org -o Cylinder -v -0.416943 1.750000 -0.275969 -v -0.312707 0.250000 -0.206976 -v -0.368110 0.250000 -0.071553 -v 0.414519 1.750000 -0.279596 -v 0.310889 0.250000 -0.209697 -v 0.206976 0.250000 -0.312707 -v -0.275968 1.750000 0.416943 -v -0.414519 1.750000 0.279597 -v -0.310889 0.250000 0.209697 -v 0.099684 1.750000 0.489962 -v 0.074763 0.250000 0.367472 -v 0.209697 0.250000 0.310889 -v -0.279596 1.750000 -0.414519 -v -0.099684 1.750000 -0.489962 -v -0.074763 0.250000 -0.367472 -v 0.095404 1.750000 -0.490814 -v 0.275968 1.750000 -0.416943 -v -0.095404 1.750000 0.490814 -v -0.206976 0.250000 0.312707 -v 0.279597 1.750000 0.414519 -v 0.312707 0.250000 0.206976 -v -0.209697 0.250000 -0.310889 -v 0.489962 1.750000 -0.099684 -v 0.367472 0.250000 -0.074763 -v -0.489962 1.750000 0.099684 -v -0.367472 0.250000 0.074763 -v 0.489962 3.250000 -0.099684 -v 0.490814 3.250000 0.095405 -v 0.157273 -0.000000 0.233167 -v 0.490814 1.750000 0.095405 -v 0.416943 1.750000 0.275968 -v -0.275968 3.250000 0.416943 -v -0.206976 4.250000 0.312707 -v -0.310889 4.250000 0.209697 -v -0.279596 3.250000 -0.414519 -v -0.099684 3.250000 -0.489962 -v 0.095405 3.250000 -0.490814 -v 0.279597 3.250000 0.414519 -v 0.099684 3.250000 0.489962 -v -0.414519 3.250000 0.279597 -v 0.275968 3.250000 -0.416943 -v 0.414519 3.250000 -0.279596 -v -0.490814 1.750000 -0.095405 -v -0.490814 3.250000 -0.095405 -v -0.416943 3.250000 -0.275969 -v 0.416943 3.250000 0.275968 -v -0.489962 3.250000 0.099684 -v -0.095404 3.250000 0.490814 -v 0.074763 4.250000 0.367472 -v -0.071553 4.250000 0.368110 -v 0.312707 4.250000 0.206976 -v 0.209697 4.250000 0.310889 -v 0.367472 4.250000 -0.074763 -v 0.368110 4.250000 0.071553 -v -0.209697 4.250000 -0.310889 -v -0.074763 4.250000 -0.367472 -v 0.206976 4.250000 -0.312707 -v 0.310889 4.250000 -0.209697 -v -0.368110 4.250000 -0.071553 -v -0.312707 4.250000 -0.206976 -v 0.071553 4.250000 -0.368110 -v -0.367472 4.250000 0.074763 -v 0.000000 5.250000 0.000000 -v -0.489962 1.750000 0.051186 -v -0.368110 0.250000 -0.034432 -v 0.071553 0.250000 -0.368110 -v 0.367472 0.250000 -0.038726 -v 0.489962 1.750000 -0.051186 -v 0.038726 0.250000 0.367472 -v 0.051186 1.750000 0.489962 -v 0.368110 0.250000 0.071553 -v -0.071553 0.250000 0.368110 -v 0.056072 -0.000000 0.275604 -v -0.053665 -0.000000 0.276083 -v -0.276083 0.000000 -0.053665 -v -0.056072 0.000000 -0.275604 -v -0.157273 0.000000 -0.233167 -v 0.053665 0.000000 -0.276083 -v -0.155232 -0.000000 0.234530 -v -0.233167 -0.000000 0.157273 -v 0.275604 0.000000 -0.056072 -v 0.233167 0.000000 -0.157273 -v 0.276083 -0.000000 0.053665 -v -0.234530 0.000000 -0.155232 -v 0.155232 0.000000 -0.234530 -v -0.275604 -0.000000 0.056072 -v 0.234530 -0.000000 0.155232 -v -0.051186 1.750000 -0.489962 -v -0.038726 0.250000 -0.367472 -v 0.046358 1.750000 -0.490814 -v -0.040084 0.000000 -0.990064 -v 0.033074 0.000000 -0.990702 -v 0.034432 0.250000 -0.368110 -v -0.367472 0.250000 0.038726 -v -0.490814 1.750000 -0.046358 -v -0.990702 0.000000 -0.033074 -v -0.990064 -0.000000 0.040084 -v -0.046358 1.750000 0.490814 -v -0.033074 -0.000000 0.990703 -v 0.040084 -0.000000 0.990064 -v -0.034432 0.250000 0.368110 -v 0.490814 1.750000 0.046358 -v 0.990064 0.000000 -0.040084 -v 0.990702 -0.000000 0.033074 -v 0.368110 0.250000 0.034432 -vt 0.601459 0.261980 -vt 0.604770 0.057671 -vt 0.624633 0.057671 -vt 0.696990 0.261981 -vt 0.700300 0.057672 -vt 0.720163 0.057672 -vt 0.967508 0.261981 -vt 0.941023 0.261981 -vt 0.944335 0.057671 -vt 0.792523 0.261982 -vt 0.795834 0.057673 -vt 0.815697 0.057673 -vt 0.574975 0.261980 -vt 0.548491 0.261980 -vt 0.551801 0.057671 -vt 0.749959 0.261981 -vt 0.723475 0.261981 -vt 0.726785 0.057672 -vt 0.993992 0.261981 -vt 0.970819 0.057671 -vt 0.819007 0.261982 -vt 0.822318 0.057673 -vt 0.842181 0.057673 -vt 0.578285 0.057671 -vt 0.670506 0.261981 -vt 0.673816 0.057672 -vt 0.914539 0.261980 -vt 0.917851 0.057671 -vt 0.670507 0.465612 -vt 0.644022 0.465612 -vt 0.824801 0.021512 -vt 0.871975 0.261982 -vt 0.845491 0.261982 -vt 0.848802 0.057673 -vt 0.967507 0.465611 -vt 0.964196 0.602381 -vt 0.944333 0.602381 -vt 0.574974 0.465611 -vt 0.548490 0.465611 -vt 0.522006 0.465611 -vt 0.819006 0.465613 -vt 0.792522 0.465613 -vt 0.941023 0.465611 -vt 0.723475 0.465612 -vt 0.696991 0.465612 -vt 0.627943 0.261980 -vt 0.627943 0.465611 -vt 0.601459 0.465611 -vt 0.871975 0.465613 -vt 0.845491 0.465613 -vt 0.766038 0.261982 -vt 0.914538 0.465611 -vt 0.993991 0.465611 -vt 0.749959 0.465612 -vt 0.888054 0.465611 -vt 0.789211 0.602382 -vt 0.769348 0.602382 -vt 0.842180 0.602383 -vt 0.822316 0.602383 -vt 0.667197 0.602382 -vt 0.647334 0.602382 -vt 0.571664 0.602380 -vt 0.551801 0.602380 -vt 0.720165 0.602381 -vt 0.700302 0.602381 -vt 0.624632 0.602381 -vt 0.604769 0.602381 -vt 0.545180 0.602380 -vt 0.525317 0.602381 -vt 0.937711 0.602381 -vt 0.990680 0.602381 -vt 0.970817 0.602381 -vt 0.815695 0.602383 -vt 0.795832 0.602383 -vt 0.868664 0.602383 -vt 0.693681 0.602381 -vt 0.598148 0.602381 -vt 0.746649 0.602382 -vt 0.911227 0.602381 -vt 0.891364 0.602381 -vt 0.858732 0.747027 -vt 0.848801 0.602382 -vt 0.683750 0.747025 -vt 0.673818 0.602381 -vt 0.657266 0.747026 -vt 0.832248 0.747027 -vt 0.710234 0.747024 -vt 0.736718 0.747027 -vt 0.726786 0.602382 -vt 0.535248 0.747025 -vt 0.561732 0.747025 -vt 0.805763 0.747028 -vt 0.779279 0.747026 -vt 0.980747 0.747026 -vt 0.954264 0.747024 -vt 0.927779 0.747025 -vt 0.917848 0.602381 -vt 0.588216 0.747025 -vt 0.578285 0.602381 -vt 0.614700 0.747025 -vt 0.901295 0.747025 -vt 0.422370 0.713895 -vt 0.423581 0.466820 -vt 0.435612 0.713895 -vt 0.251725 0.359662 -vt 0.252936 0.112587 -vt 0.264967 0.359662 -vt 0.424134 0.021510 -vt 0.434067 0.021510 -vt 0.423581 0.112591 -vt 0.505927 0.522061 -vt 0.433513 0.466820 -vt 0.351361 0.522314 -vt 0.424134 0.375743 -vt 0.435613 0.359665 -vt 0.422370 0.359665 -vt 0.433513 0.112591 -vt 0.505927 0.167831 -vt 0.263420 0.021510 -vt 0.262868 0.112587 -vt 0.253488 0.021510 -vt 0.888055 0.261980 -vt 0.891366 0.057671 -vt 0.911230 0.057671 -vt 0.180716 0.168081 -vt 0.335282 0.167827 -vt 0.431033 0.759972 -vt 0.436734 0.746209 -vt 0.489692 0.735675 -vt 0.554284 0.021510 -vt 0.569181 0.021510 -vt 0.525317 0.057671 -vt 0.527800 0.021510 -vt 0.542697 0.021510 -vt 0.990682 0.057672 -vt 0.973302 0.021510 -vt 0.946818 0.021510 -vt 0.961715 0.021510 -vt 0.676299 0.021511 -vt 0.691196 0.021511 -vt 0.647332 0.057671 -vt 0.649814 0.021510 -vt 0.664712 0.021510 -vt 0.607252 0.021510 -vt 0.622150 0.021510 -vt 0.580768 0.021510 -vt 0.595666 0.021510 -vt 0.798317 0.021512 -vt 0.813214 0.021512 -vt 0.769350 0.057671 -vt 0.771832 0.021510 -vt 0.786730 0.021510 -vt 0.729267 0.021511 -vt 0.744165 0.021511 -vt 0.702783 0.021511 -vt 0.717680 0.021511 -vt 0.920334 0.021510 -vt 0.935231 0.021510 -vt 0.893849 0.021510 -vt 0.908747 0.021510 -vt 0.851285 0.021512 -vt 0.866183 0.021512 -vt 0.964198 0.057671 -vt 0.571664 0.057671 -vt 0.746648 0.057672 -vt 0.598149 0.057671 -vt 0.693679 0.057672 -vt 0.937714 0.057671 -vt 0.644022 0.261981 -vt 0.839699 0.021512 -vt 0.868665 0.057673 -vt 0.522006 0.261980 -vt 0.766038 0.465612 -vt 0.351361 0.168085 -vt 0.545180 0.057671 -vt 0.667195 0.057671 -vt 0.789213 0.057671 -vt 0.489692 0.799167 -vt 0.475929 0.804868 -vt 0.500226 0.788633 -vt 0.431033 0.774870 -vt 0.461031 0.804868 -vt 0.447268 0.799167 -vt 0.436734 0.788633 -vt 0.447268 0.735675 -vt 0.475929 0.729974 -vt 0.461032 0.729974 -vt 0.505927 0.774870 -vt 0.505927 0.759972 -vt 0.500226 0.746209 -vt 0.988200 0.021510 -vt 0.262744 0.466032 -vt 0.252812 0.466032 -vt 0.253365 0.374955 -vt 0.264843 0.713106 -vt 0.251601 0.713106 -vt 0.180592 0.521526 -vt 0.335159 0.521272 -vt 0.263297 0.374955 -vt 0.434066 0.375743 -vn -0.922500 -0.081500 -0.377400 -vn 0.701700 -0.081500 -0.707800 -vn -0.701700 -0.081500 0.707800 -vn 0.385400 -0.081500 0.919100 -vn -0.385400 -0.081500 -0.919100 -vn 0.377400 -0.081500 -0.922500 -vn -0.377400 -0.081500 0.922500 -vn 0.707800 -0.081500 0.701700 -vn -0.707800 -0.081500 -0.701700 -vn 0.919100 -0.081500 -0.385400 -vn -0.919100 -0.081500 0.385400 -vn 1.000000 -0.000000 -0.004400 -vn 0.666500 -0.345200 0.660700 -vn 0.922500 -0.081500 0.377400 -vn -0.698800 0.121700 0.704900 -vn -0.386700 0.000000 -0.922200 -vn -0.004400 0.000000 -1.000000 -vn 0.386700 -0.000000 0.922200 -vn -0.704000 -0.000000 0.710200 -vn 0.704000 0.000000 -0.710200 -vn -0.925500 0.000000 -0.378700 -vn 0.925500 -0.000000 0.378700 -vn 0.004400 -0.000000 1.000000 -vn -0.922200 0.000000 0.386700 -vn 0.922200 0.000000 -0.386700 -vn -0.710200 0.000000 -0.704000 -vn 0.710200 -0.000000 0.704000 -vn -0.378700 -0.000000 0.925500 -vn -0.378600 -0.000000 0.925500 -vn 0.378700 0.000000 -0.925500 -vn -1.000000 0.000000 0.004400 -vn 0.004300 0.121700 0.992600 -vn 0.704900 0.121700 0.698800 -vn 0.992600 0.121700 -0.004300 -vn -0.383800 0.121700 -0.915300 -vn 0.698800 0.121700 -0.704900 -vn -0.918700 0.121700 -0.375800 -vn -0.004300 0.121700 -0.992600 -vn -0.915300 0.121700 0.383800 -vn -0.375800 0.121700 0.918700 -vn 0.383800 0.121700 0.915300 -vn 0.918700 0.121700 0.375800 -vn 0.915300 0.121700 -0.383800 -vn -0.704900 0.121700 -0.698800 -vn 0.375800 0.121700 -0.918700 -vn -0.992600 0.121700 0.004300 -vn 0.868700 0.345200 0.355400 -vn 0.865500 0.345200 -0.362900 -vn 0.938500 0.345200 -0.004100 -vn 0.666500 0.345200 0.660700 -vn 0.660700 0.345200 -0.666500 -vn 0.355400 0.345200 -0.868700 -vn -0.004100 0.345200 -0.938500 -vn -0.362900 0.345200 -0.865500 -vn 0.362900 0.345200 0.865500 -vn 0.004100 0.345200 0.938500 -vn -0.355400 0.345200 0.868700 -vn -0.660700 0.345200 0.666500 -vn -0.865500 0.345200 0.362900 -vn -0.666500 0.345200 -0.660700 -vn -0.868700 0.345200 -0.355400 -vn -0.938500 0.345200 0.004100 -vn -0.961500 0.274700 0.008400 -vn 0.961500 0.274700 -0.008400 -vn -0.003200 -0.928000 -0.372600 -vn -0.003300 -0.928000 -0.372600 -vn 0.005300 -0.007900 1.000000 -vn 0.001000 -0.007900 -1.000000 -vn 0.372600 -0.928000 -0.003200 -vn 0.008400 0.274700 0.961500 -vn 1.000000 -0.007900 -0.005300 -vn -0.372600 -0.928000 0.003200 -vn -0.996700 -0.081500 0.004400 -vn -0.996700 -0.081500 0.004300 -vn -0.001000 -0.007900 1.000000 -vn -0.005300 -0.007900 -1.000000 -vn 0.000000 -1.000000 -0.000000 -vn -0.362900 -0.345200 -0.865500 -vn -0.004100 -0.345200 -0.938500 -vn -0.355400 -0.345200 0.868700 -vn -0.355400 -0.345200 0.868600 -vn -0.660700 -0.345200 0.666500 -vn 0.865500 -0.345200 -0.362900 -vn 0.938500 -0.345200 -0.004100 -vn -0.868700 -0.345200 -0.355400 -vn -0.868600 -0.345200 -0.355400 -vn -0.666500 -0.345200 -0.660700 -vn 0.362900 -0.345200 0.865500 -vn 0.004100 -0.345200 0.938500 -vn 0.355400 -0.345200 -0.868700 -vn 0.355400 -0.345200 -0.868600 -vn 0.660700 -0.345200 -0.666500 -vn -0.865500 -0.345200 0.362900 -vn -0.938500 -0.345200 0.004100 -vn 0.868700 -0.345200 0.355400 -vn 0.868600 -0.345200 0.355400 -vn 0.378600 0.000000 -0.925500 -vn -1.000000 -0.007900 -0.001000 -vn -0.004300 -0.081500 -0.996700 -vn -0.004400 -0.081500 -0.996700 -vn 0.996700 -0.081500 -0.004300 -vn 0.996700 -0.081500 -0.004400 -vn 0.004300 -0.081500 0.996700 -vn 0.004400 -0.081500 0.996700 -vn 0.003200 -0.928000 0.372600 -vn -0.008400 0.274700 -0.961500 -vn 1.000000 -0.007900 0.001000 -vn -1.000000 -0.007900 0.005300 -s 1 -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 8/8/3 9/9/3 -f 10/10/4 11/11/4 12/12/4 -f 13/13/5 14/14/5 15/15/5 -f 16/16/6 17/17/6 6/18/6 -f 18/19/7 7/7/7 19/20/7 -f 20/21/8 12/22/8 21/23/8 -f 1/1/9 13/13/9 22/24/9 -f 4/4/10 23/25/10 24/26/10 -f 8/8/11 25/27/11 26/28/11 -f 23/25/12 27/29/12 28/30/12 -f 21/23/13 12/22/13 29/31/13 -f 30/32/14 31/33/14 21/34/14 -f 32/35/15 33/36/15 34/37/15 -f 13/13/16 35/38/16 36/39/16 -f 14/14/17 36/39/17 37/40/17 -f 20/21/18 38/41/18 39/42/18 -f 7/7/19 32/35/19 40/43/19 -f 17/17/20 41/44/20 42/45/20 -f 43/46/21 44/47/21 45/48/21 -f 30/32/22 28/49/22 46/50/22 -f 18/51/23 10/10/23 39/42/23 -f 8/8/24 40/43/24 47/52/24 -f 4/4/25 42/45/25 27/29/25 -f 1/1/26 45/48/26 35/38/26 -f 20/21/27 31/33/27 46/50/27 -f 18/19/28 48/53/29 32/35/28 -f 16/16/30 37/54/30 41/44/30 -f 25/27/31 47/52/31 44/55/31 -f 39/42/32 49/56/32 50/57/32 -f 46/50/33 51/58/33 52/59/33 -f 27/29/34 53/60/34 54/61/34 -f 35/38/35 55/62/35 56/63/35 -f 41/44/36 57/64/36 58/65/36 -f 44/47/37 59/66/37 60/67/37 -f 36/39/38 56/68/38 61/69/38 -f 47/52/39 40/43/39 34/70/39 -f 48/53/40 50/71/40 33/72/40 -f 38/41/41 52/73/41 49/74/41 -f 46/50/42 28/49/42 54/75/42 -f 27/29/43 42/45/43 58/76/43 -f 35/38/44 45/48/44 60/77/44 -f 41/44/45 37/54/45 61/78/45 -f 47/52/46 62/79/46 59/80/46 -f 54/75/47 63/81/47 51/82/47 -f 58/76/48 63/83/48 53/84/48 -f 53/60/49 63/85/49 54/61/49 -f 52/59/50 51/58/50 63/86/50 -f 57/64/51 63/87/51 58/65/51 -f 61/78/52 63/88/52 57/89/52 -f 56/68/53 63/90/53 61/69/53 -f 55/62/54 63/91/54 56/63/54 -f 52/73/55 63/92/55 49/74/55 -f 49/56/56 63/93/56 50/57/56 -f 50/71/57 63/94/57 33/72/57 -f 33/36/58 63/95/58 34/37/58 -f 34/70/59 63/96/59 62/97/59 -f 60/77/60 63/98/60 55/99/60 -f 59/66/61 63/100/61 60/67/61 -f 62/79/62 63/101/62 59/80/62 -f 95/102/63 96/103/63 64/104/63 -f 102/105/64 104/106/64 68/107/64 -f 101/108/65 69/109/65 99/110/66 -f 94/111/67 64/104/67 97/112/67 -f 65/113/68 96/103/68 95/102/68 -f 97/112/69 96/103/69 65/114/69 -f 70/115/70 98/116/70 100/117/70 -f 70/115/71 100/117/71 69/118/71 -f 69/109/65 100/117/66 99/110/66 -f 67/119/72 103/120/72 105/121/72 -f 43/122/73 3/123/74 26/124/74 -f 105/125/75 104/106/75 102/105/75 -f 67/126/76 68/107/76 103/120/76 -f 73/127/77 74/128/77 75/129/77 -f 15/15/78 76/130/78 77/131/78 -f 66/132/79 78/133/79 76/134/79 -f 72/135/80 19/20/80 79/136/81 -f 9/9/82 80/137/82 79/138/82 -f 24/26/83 81/139/83 82/140/83 -f 71/141/84 83/142/84 81/143/84 -f 2/2/85 84/144/86 75/145/86 -f 22/24/87 77/146/87 84/147/87 -f 11/11/88 73/148/88 29/149/88 -f 72/150/89 74/151/89 73/152/89 -f 6/18/90 85/153/91 78/154/91 -f 5/5/92 82/155/92 85/156/92 -f 26/28/93 86/157/93 80/158/93 -f 3/123/94 75/159/94 86/160/94 -f 21/34/95 87/161/96 83/162/96 -f 43/46/1 1/1/1 3/3/1 -f 17/17/2 4/4/2 6/6/2 -f 19/163/3 7/7/3 9/9/3 -f 20/21/4 10/10/4 12/12/4 -f 22/164/5 13/13/5 15/15/5 -f 66/165/6 16/16/6 6/18/6 -f 72/135/7 18/19/7 19/20/7 -f 31/33/8 20/21/8 21/23/8 -f 2/166/9 1/1/9 22/24/9 -f 5/167/10 4/4/10 24/26/10 -f 9/168/11 8/8/11 26/28/11 -f 30/169/12 23/25/12 28/30/12 -f 87/170/13 21/23/13 29/31/13 -f 71/171/14 30/32/14 21/34/14 -f 40/43/15 32/35/15 34/37/15 -f 14/14/16 13/13/16 36/39/16 -f 16/172/17 14/14/17 37/40/17 -f 10/10/18 20/21/18 39/42/18 -f 8/8/19 7/7/19 40/43/19 -f 4/4/20 17/17/20 42/45/20 -f 1/1/21 43/46/21 45/48/21 -f 31/33/22 30/32/22 46/50/22 -f 48/173/23 18/51/23 39/42/23 -f 25/27/24 8/8/24 47/52/24 -f 23/25/25 4/4/25 27/29/25 -f 13/13/26 1/1/26 35/38/26 -f 38/41/27 20/21/27 46/50/27 -f 7/7/29 18/19/28 32/35/28 -f 17/17/97 16/16/30 41/44/30 -f 43/122/31 25/27/31 44/55/31 -f 48/173/32 39/42/32 50/57/32 -f 38/41/33 46/50/33 52/59/33 -f 28/30/34 27/29/34 54/61/34 -f 36/39/35 35/38/35 56/63/35 -f 42/45/36 41/44/36 58/65/36 -f 45/48/37 44/47/37 60/67/37 -f 37/40/38 36/39/38 61/69/38 -f 62/97/39 47/52/39 34/70/39 -f 32/35/40 48/53/40 33/72/40 -f 39/42/41 38/41/41 49/74/41 -f 51/82/42 46/50/42 54/75/42 -f 53/84/43 27/29/43 58/76/43 -f 55/99/44 35/38/44 60/77/44 -f 57/89/45 41/44/45 61/78/45 -f 44/55/46 47/52/46 59/80/46 -f 96/103/63 97/112/63 64/104/63 -f 104/106/64 103/120/64 68/107/64 -f 101/174/98 99/110/98 98/116/98 -f 66/132/99 15/175/99 14/14/100 -f 24/176/101 23/25/102 30/169/102 -f 11/177/103 10/10/104 18/51/104 -f 98/116/70 99/110/70 100/117/70 -f 103/120/72 104/106/72 105/121/72 -f 85/178/77 82/179/77 78/180/77 -f 29/181/77 81/182/77 83/183/77 -f 87/184/77 29/181/77 83/183/77 -f 73/127/77 81/182/77 29/181/77 -f 79/185/77 86/186/77 74/128/77 -f 79/185/77 80/187/77 86/186/77 -f 15/175/79 66/132/79 76/134/79 -f 76/188/77 75/129/77 77/189/77 -f 78/180/77 81/182/77 73/127/77 -f 78/180/77 82/179/77 81/182/77 -f 74/128/77 86/186/77 75/129/77 -f 75/129/77 76/188/77 73/127/77 -f 76/188/77 78/180/77 73/127/77 -f 22/164/78 15/15/78 77/131/78 -f 75/129/77 84/190/77 77/189/77 -f 74/191/81 72/135/80 79/136/81 -f 19/163/82 9/9/82 79/138/82 -f 5/167/83 24/26/83 82/140/83 -f 24/176/84 71/141/84 81/143/84 -f 3/3/85 2/2/85 75/145/86 -f 2/166/87 22/24/87 84/147/87 -f 12/12/88 11/11/88 29/149/88 -f 11/177/89 72/150/89 73/152/89 -f 66/165/90 6/18/90 78/154/91 -f 6/6/92 5/5/92 85/156/92 -f 9/168/93 26/28/93 80/158/93 -f 26/124/94 3/123/94 86/160/94 -f 71/171/95 21/34/95 83/162/96 -f 91/192/105 92/193/105 93/194/105 -f 92/193/106 91/192/106 88/195/106 -f 90/196/107 93/197/107 92/193/107 -f 89/198/108 88/195/108 91/192/108 -f 89/199/105 91/192/105 93/194/105 -f 90/196/106 92/193/106 88/195/106 -f 94/200/69 97/112/69 65/114/69 -f 25/27/73 43/122/73 26/124/74 -f 16/172/100 66/132/99 14/14/100 -f 71/141/101 24/176/101 30/169/102 -f 72/150/103 11/177/103 18/51/104 diff --git a/src/main/resources/assets/hbm/models/missile_abm.obj b/src/main/resources/assets/hbm/models/missile_abm.obj new file mode 100644 index 000000000..1cc213eba --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_abm.obj @@ -0,0 +1,2124 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_abm.blend' +# www.blender.org +o Circle +v -0.000000 7.000000 -0.375000 +v -0.143506 7.000000 -0.346455 +v -0.265165 7.000000 -0.265165 +v -0.346455 7.000000 -0.143506 +v -0.375000 7.000000 0.000000 +v -0.346455 7.000000 0.143506 +v -0.265165 7.000000 0.265165 +v -0.143506 7.000000 0.346455 +v -0.000000 7.000000 0.375000 +v 0.143506 7.000000 0.346455 +v 0.265165 7.000000 0.265165 +v 0.346455 7.000000 0.143506 +v 0.375000 7.000000 -0.000000 +v 0.346455 7.000000 -0.143506 +v 0.265165 7.000000 -0.265165 +v 0.143506 7.000000 -0.346455 +v -0.000000 8.500000 0.000000 +v -0.000000 5.500000 -0.375000 +v -0.143506 5.500000 -0.346455 +v -0.265165 5.500000 -0.265165 +v -0.346455 5.500000 -0.143506 +v -0.375000 5.500000 0.000000 +v -0.346455 5.500000 0.143506 +v -0.265165 5.500000 0.265165 +v -0.143506 5.500000 0.346455 +v -0.000000 5.500000 0.375000 +v 0.143506 5.500000 0.346455 +v 0.265165 5.500000 0.265165 +v 0.346455 5.500000 0.143506 +v 0.375000 5.500000 -0.000000 +v 0.346455 5.500000 -0.143506 +v 0.265165 5.500000 -0.265165 +v 0.143506 5.500000 -0.346455 +v -0.000000 4.500000 -0.250000 +v -0.095671 4.500000 -0.230970 +v -0.176777 4.500000 -0.176777 +v -0.230970 4.500000 -0.095671 +v -0.250000 4.500000 0.000000 +v -0.230970 4.500000 0.095671 +v -0.176777 4.500000 0.176777 +v -0.095671 4.500000 0.230970 +v -0.000000 4.500000 0.250000 +v 0.095671 4.500000 0.230970 +v 0.176777 4.500000 0.176777 +v 0.230970 4.500000 0.095671 +v 0.250000 4.500000 -0.000000 +v 0.230970 4.500000 -0.095671 +v 0.176777 4.500000 -0.176777 +v 0.095671 4.500000 -0.230970 +v -0.000000 1.500000 -0.250000 +v -0.095671 1.500000 -0.230970 +v -0.176777 1.500000 -0.176777 +v -0.230970 1.500000 -0.095671 +v -0.250000 1.500000 0.000000 +v -0.230970 1.500000 0.095671 +v -0.176777 1.500000 0.176777 +v -0.095671 1.500000 0.230970 +v -0.000000 1.500000 0.250000 +v 0.095671 1.500000 0.230970 +v 0.176777 1.500000 0.176777 +v 0.230970 1.500000 0.095671 +v 0.250000 1.500000 -0.000000 +v 0.230970 1.500000 -0.095671 +v 0.176777 1.500000 -0.176777 +v 0.095671 1.500000 -0.230970 +v -0.000000 0.250000 -0.250000 +v 0.019030 0.250000 -0.154329 +v 0.073223 0.250000 -0.073223 +v 0.154329 0.250000 -0.019030 +v 0.250000 0.250000 0.000000 +v 0.345671 0.250000 -0.019030 +v 0.426777 0.250000 -0.073223 +v 0.480970 0.250000 -0.154329 +v 0.500000 0.250000 -0.250000 +v 0.480970 0.250000 -0.345671 +v 0.426777 0.250000 -0.426777 +v 0.345671 0.250000 -0.480970 +v 0.250000 0.250000 -0.500000 +v 0.154329 0.250000 -0.480970 +v 0.073223 0.250000 -0.426777 +v 0.019030 0.250000 -0.345671 +v -0.000000 1.500000 -0.250000 +v 0.019030 1.500000 -0.154329 +v 0.073223 1.500000 -0.073223 +v 0.154329 1.500000 -0.019030 +v 0.250000 1.500000 0.000000 +v 0.345671 1.500000 -0.019030 +v 0.426777 1.500000 -0.073223 +v 0.480970 1.500000 -0.154329 +v 0.500000 1.500000 -0.250000 +v 0.480970 1.500000 -0.345671 +v 0.426777 1.500000 -0.426777 +v 0.345671 1.500000 -0.480970 +v 0.250000 1.500000 -0.500000 +v 0.154329 1.500000 -0.480970 +v 0.073223 1.500000 -0.426777 +v 0.019030 1.500000 -0.345671 +v 0.125000 2.500000 -0.125000 +v 0.125000 0.250000 -0.250000 +v 0.134515 0.250000 -0.202165 +v 0.161612 0.250000 -0.161612 +v 0.202165 0.250000 -0.134515 +v 0.250000 0.250000 -0.125000 +v 0.297835 0.250000 -0.134515 +v 0.338388 0.250000 -0.161612 +v 0.365485 0.250000 -0.202165 +v 0.375000 0.250000 -0.250000 +v 0.365485 0.250000 -0.297835 +v 0.338388 0.250000 -0.338388 +v 0.297835 0.250000 -0.365485 +v 0.250000 0.250000 -0.375000 +v 0.202165 0.250000 -0.365485 +v 0.161612 0.250000 -0.338388 +v 0.134515 0.250000 -0.297835 +v -0.000000 0.000000 -0.250000 +v 0.019030 0.000000 -0.154329 +v 0.073223 0.000000 -0.073223 +v 0.154329 0.000000 -0.019030 +v 0.250000 0.000000 0.000000 +v 0.345671 0.000000 -0.019030 +v 0.426777 0.000000 -0.073223 +v 0.480970 0.000000 -0.154329 +v 0.500000 0.000000 -0.250000 +v 0.480970 0.000000 -0.345671 +v 0.426777 0.000000 -0.426777 +v 0.345671 0.000000 -0.480970 +v 0.250000 0.000000 -0.500000 +v 0.154329 0.000000 -0.480970 +v 0.073223 0.000000 -0.426777 +v 0.019030 0.000000 -0.345671 +v 0.000000 5.500000 -0.875000 +v 0.000000 4.500000 -0.875000 +v -0.031250 6.000000 -0.125000 +v -0.031250 4.000000 -0.125000 +v 0.031250 6.000000 -0.125000 +v 0.031250 4.000000 -0.125000 +v 0.031250 0.500000 -0.125000 +v 0.031250 2.500000 -0.125000 +v -0.031250 0.500000 -0.125000 +v -0.031250 2.500000 -0.125000 +v 0.000000 0.500000 -1.125000 +v 0.000000 2.000000 -1.125000 +v -0.062500 4.250000 -0.875000 +v -0.062500 5.750000 -0.875000 +v -0.031250 4.250000 -0.929127 +v -0.031250 5.750000 -0.929127 +v 0.031250 4.250000 -0.929127 +v 0.031250 5.750000 -0.929127 +v 0.062500 4.250000 -0.875000 +v 0.062500 5.750000 -0.875000 +v 0.031250 4.250000 -0.820873 +v 0.031250 5.750000 -0.820873 +v -0.031250 4.250000 -0.820873 +v -0.031250 5.750000 -0.820873 +v 0.000000 0.250000 0.250000 +v -0.019030 0.250000 0.154329 +v -0.073223 0.250000 0.073223 +v -0.154329 0.250000 0.019030 +v -0.250000 0.250000 0.000000 +v -0.345671 0.250000 0.019030 +v -0.426777 0.250000 0.073223 +v -0.480970 0.250000 0.154329 +v -0.500000 0.250000 0.250000 +v -0.480970 0.250000 0.345671 +v -0.426777 0.250000 0.426777 +v -0.345671 0.250000 0.480970 +v -0.250000 0.250000 0.500000 +v -0.154329 0.250000 0.480970 +v -0.073223 0.250000 0.426777 +v -0.019030 0.250000 0.345671 +v 0.000000 1.500000 0.250000 +v -0.019030 1.500000 0.154329 +v -0.073223 1.500000 0.073223 +v -0.154329 1.500000 0.019030 +v -0.250000 1.500000 0.000000 +v -0.345671 1.500000 0.019030 +v -0.426777 1.500000 0.073223 +v -0.480970 1.500000 0.154329 +v -0.500000 1.500000 0.250000 +v -0.480970 1.500000 0.345671 +v -0.426777 1.500000 0.426777 +v -0.345671 1.500000 0.480970 +v -0.250000 1.500000 0.500000 +v -0.154329 1.500000 0.480970 +v -0.073223 1.500000 0.426777 +v -0.019030 1.500000 0.345671 +v -0.125000 2.500000 0.125000 +v -0.125000 0.250000 0.250000 +v -0.134515 0.250000 0.202165 +v -0.161612 0.250000 0.161612 +v -0.202165 0.250000 0.134515 +v -0.250000 0.250000 0.125000 +v -0.297835 0.250000 0.134515 +v -0.338388 0.250000 0.161612 +v -0.365485 0.250000 0.202165 +v -0.375000 0.250000 0.250000 +v -0.365485 0.250000 0.297835 +v -0.338388 0.250000 0.338388 +v -0.297835 0.250000 0.365485 +v -0.250000 0.250000 0.375000 +v -0.202164 0.250000 0.365485 +v -0.161612 0.250000 0.338388 +v -0.134515 0.250000 0.297835 +v 0.000000 0.000000 0.250000 +v -0.019030 0.000000 0.154329 +v -0.073223 0.000000 0.073223 +v -0.154329 0.000000 0.019030 +v -0.250000 0.000000 0.000000 +v -0.345671 0.000000 0.019030 +v -0.426777 0.000000 0.073223 +v -0.480970 0.000000 0.154329 +v -0.500000 0.000000 0.250000 +v -0.480970 0.000000 0.345671 +v -0.426777 0.000000 0.426777 +v -0.345671 0.000000 0.480970 +v -0.250000 0.000000 0.500000 +v -0.154329 0.000000 0.480970 +v -0.073223 0.000000 0.426777 +v -0.019030 0.000000 0.345671 +v -0.031250 0.500000 0.125000 +v -0.031250 2.500000 0.125000 +v 0.031250 0.500000 0.125000 +v 0.031250 2.500000 0.125000 +v 0.000000 0.500000 1.125000 +v 0.000000 2.000000 1.125000 +v -0.250000 0.250000 0.000000 +v -0.154329 0.250000 -0.019030 +v -0.073223 0.250000 -0.073223 +v -0.019030 0.250000 -0.154329 +v -0.000000 0.250000 -0.250000 +v -0.019030 0.250000 -0.345671 +v -0.073223 0.250000 -0.426777 +v -0.154329 0.250000 -0.480970 +v -0.250000 0.250000 -0.500000 +v -0.345671 0.250000 -0.480970 +v -0.426777 0.250000 -0.426777 +v -0.480970 0.250000 -0.345671 +v -0.500000 0.250000 -0.250000 +v -0.480970 0.250000 -0.154329 +v -0.426777 0.250000 -0.073223 +v -0.345671 0.250000 -0.019030 +v -0.250000 1.500000 0.000000 +v -0.154329 1.500000 -0.019030 +v -0.073223 1.500000 -0.073223 +v -0.019030 1.500000 -0.154329 +v -0.000000 1.500000 -0.250000 +v -0.019030 1.500000 -0.345671 +v -0.073223 1.500000 -0.426777 +v -0.154329 1.500000 -0.480970 +v -0.250000 1.500000 -0.500000 +v -0.345671 1.500000 -0.480970 +v -0.426777 1.500000 -0.426777 +v -0.480970 1.500000 -0.345671 +v -0.500000 1.500000 -0.250000 +v -0.480970 1.500000 -0.154329 +v -0.426777 1.500000 -0.073223 +v -0.345671 1.500000 -0.019030 +v -0.125000 2.500000 -0.125000 +v -0.250000 0.250000 -0.125000 +v -0.202165 0.250000 -0.134515 +v -0.161612 0.250000 -0.161612 +v -0.134515 0.250000 -0.202165 +v -0.125000 0.250000 -0.250000 +v -0.134515 0.250000 -0.297835 +v -0.161612 0.250000 -0.338388 +v -0.202165 0.250000 -0.365485 +v -0.250000 0.250000 -0.375000 +v -0.297835 0.250000 -0.365485 +v -0.338388 0.250000 -0.338388 +v -0.365485 0.250000 -0.297835 +v -0.375000 0.250000 -0.250000 +v -0.365485 0.250000 -0.202164 +v -0.338388 0.250000 -0.161612 +v -0.297835 0.250000 -0.134515 +v -0.250000 0.000000 0.000000 +v -0.154329 0.000000 -0.019030 +v -0.073223 0.000000 -0.073223 +v -0.019030 0.000000 -0.154329 +v -0.000000 0.000000 -0.250000 +v -0.019030 0.000000 -0.345671 +v -0.073223 0.000000 -0.426777 +v -0.154329 0.000000 -0.480970 +v -0.250000 0.000000 -0.500000 +v -0.345671 0.000000 -0.480970 +v -0.426777 0.000000 -0.426777 +v -0.480970 0.000000 -0.345671 +v -0.500000 0.000000 -0.250000 +v -0.480970 0.000000 -0.154329 +v -0.426777 0.000000 -0.073223 +v -0.345671 0.000000 -0.019030 +v -0.125000 0.500000 -0.031250 +v -0.125000 2.500000 -0.031250 +v -0.125000 0.500000 0.031250 +v -0.125000 2.500000 0.031250 +v -1.125000 0.500000 0.000000 +v -1.125000 2.000000 0.000000 +v 0.250000 0.250000 -0.000000 +v 0.154329 0.250000 0.019030 +v 0.073223 0.250000 0.073223 +v 0.019030 0.250000 0.154329 +v 0.000000 0.250000 0.250000 +v 0.019030 0.250000 0.345671 +v 0.073223 0.250000 0.426777 +v 0.154329 0.250000 0.480970 +v 0.250000 0.250000 0.500000 +v 0.345671 0.250000 0.480970 +v 0.426777 0.250000 0.426777 +v 0.480970 0.250000 0.345671 +v 0.500000 0.250000 0.250000 +v 0.480970 0.250000 0.154329 +v 0.426777 0.250000 0.073223 +v 0.345671 0.250000 0.019030 +v 0.250000 1.500000 -0.000000 +v 0.154329 1.500000 0.019030 +v 0.073223 1.500000 0.073223 +v 0.019030 1.500000 0.154329 +v 0.000000 1.500000 0.250000 +v 0.019030 1.500000 0.345671 +v 0.073223 1.500000 0.426777 +v 0.154329 1.500000 0.480970 +v 0.250000 1.500000 0.500000 +v 0.345671 1.500000 0.480970 +v 0.426777 1.500000 0.426777 +v 0.480970 1.500000 0.345671 +v 0.500000 1.500000 0.250000 +v 0.480970 1.500000 0.154329 +v 0.426777 1.500000 0.073223 +v 0.345671 1.500000 0.019030 +v 0.125000 2.500000 0.125000 +v 0.250000 0.250000 0.125000 +v 0.202165 0.250000 0.134515 +v 0.161612 0.250000 0.161612 +v 0.134515 0.250000 0.202165 +v 0.125000 0.250000 0.250000 +v 0.134515 0.250000 0.297835 +v 0.161612 0.250000 0.338388 +v 0.202165 0.250000 0.365485 +v 0.250000 0.250000 0.375000 +v 0.297835 0.250000 0.365485 +v 0.338388 0.250000 0.338388 +v 0.365485 0.250000 0.297835 +v 0.375000 0.250000 0.250000 +v 0.365485 0.250000 0.202164 +v 0.338388 0.250000 0.161612 +v 0.297835 0.250000 0.134515 +v 0.250000 0.000000 -0.000000 +v 0.154329 0.000000 0.019030 +v 0.073223 0.000000 0.073223 +v 0.019030 0.000000 0.154329 +v 0.000000 0.000000 0.250000 +v 0.019030 0.000000 0.345671 +v 0.073223 0.000000 0.426777 +v 0.154329 0.000000 0.480970 +v 0.250000 0.000000 0.500000 +v 0.345671 0.000000 0.480970 +v 0.426777 0.000000 0.426777 +v 0.480970 0.000000 0.345671 +v 0.500000 0.000000 0.250000 +v 0.480970 0.000000 0.154329 +v 0.426777 0.000000 0.073223 +v 0.345671 0.000000 0.019030 +v 0.125000 0.500000 0.031250 +v 0.125000 2.500000 0.031250 +v 0.125000 0.500000 -0.031250 +v 0.125000 2.500000 -0.031250 +v 1.125000 0.500000 -0.000000 +v 1.125000 2.000000 -0.000000 +v 0.000000 5.500000 0.875000 +v 0.000000 4.500000 0.875000 +v 0.031250 6.000000 0.125000 +v 0.031250 4.000000 0.125000 +v -0.031250 6.000000 0.125000 +v -0.031250 4.000000 0.125000 +v 0.062500 4.250000 0.875000 +v 0.062500 5.750000 0.875000 +v 0.031250 4.250000 0.929127 +v 0.031250 5.750000 0.929127 +v -0.031250 4.250000 0.929127 +v -0.031250 5.750000 0.929127 +v -0.062500 4.250000 0.875000 +v -0.062500 5.750000 0.875000 +v -0.031250 4.250000 0.820873 +v -0.031250 5.750000 0.820873 +v 0.031250 4.250000 0.820873 +v 0.031250 5.750000 0.820873 +v -0.875000 5.500000 0.000000 +v -0.875000 4.500000 0.000000 +v -0.125000 6.000000 0.031250 +v -0.125000 4.000000 0.031250 +v -0.125000 6.000000 -0.031250 +v -0.125000 4.000000 -0.031250 +v -0.875000 4.250000 0.062500 +v -0.875000 5.750000 0.062500 +v -0.929127 4.250000 0.031250 +v -0.929127 5.750000 0.031250 +v -0.929127 4.250000 -0.031250 +v -0.929127 5.750000 -0.031250 +v -0.875000 4.250000 -0.062500 +v -0.875000 5.750000 -0.062500 +v -0.820873 4.250000 -0.031250 +v -0.820873 5.750000 -0.031250 +v -0.820873 4.250000 0.031250 +v -0.820873 5.750000 0.031250 +v 0.875000 5.500000 -0.000000 +v 0.875000 4.500000 -0.000000 +v 0.125000 6.000000 -0.031250 +v 0.125000 4.000000 -0.031250 +v 0.125000 6.000000 0.031250 +v 0.125000 4.000000 0.031250 +v 0.875000 4.250000 -0.062500 +v 0.875000 5.750000 -0.062500 +v 0.929127 4.250000 -0.031250 +v 0.929127 5.750000 -0.031250 +v 0.929127 4.250000 0.031250 +v 0.929127 5.750000 0.031250 +v 0.875000 4.250000 0.062500 +v 0.875000 5.750000 0.062500 +v 0.820873 4.250000 0.031250 +v 0.820873 5.750000 0.031250 +v 0.820873 4.250000 -0.031250 +v 0.820873 5.750000 -0.031250 +vt 0.720253 0.439829 +vt 0.720253 0.488743 +vt 0.648168 0.488743 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.633240 0.535715 +vt 0.648169 0.511257 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.671053 0.035714 +vt 0.684211 0.053571 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.763158 0.035714 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.946709 0.330357 +vt 0.940460 0.337702 +vt 0.921712 0.330357 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.731302 0.451050 +vt 0.735182 0.464286 +vt 0.731302 0.477522 +vt 0.703716 0.496241 +vt 0.684211 0.498873 +vt 0.664705 0.496241 +vt 0.637119 0.477522 +vt 0.633239 0.464286 +vt 0.637119 0.451050 +vt 0.648169 0.439829 +vt 0.664705 0.432331 +vt 0.684211 0.429698 +vt 0.703716 0.432331 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.684211 0.570302 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.657895 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.940460 0.323013 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.842105 0.294643 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.434211 0.785714 +vt 0.473684 0.785714 +vt 0.447368 1.000000 +vt 0.394737 0.785714 +vt 0.407895 1.000000 +vt 0.355263 0.785714 +vt 0.368421 1.000000 +vt 0.315789 0.785714 +vt 0.328947 1.000000 +vt 0.276316 0.785714 +vt 0.289474 1.000000 +vt 0.236842 0.785714 +vt 0.250000 1.000000 +vt 0.197368 0.785714 +vt 0.210526 1.000000 +vt 0.157895 0.785714 +vt 0.171053 1.000000 +vt 0.131579 1.000000 +vt 0.118421 0.785714 +vt 0.078947 0.785714 +vt 0.092105 1.000000 +vt 0.039474 0.785714 +vt 0.052632 1.000000 +vt 0.000000 0.785714 +vt 0.013158 1.000000 +vt 0.592105 0.785714 +vt 0.631579 0.785714 +vt 0.605263 1.000000 +vt 0.552632 0.785714 +vt 0.565789 1.000000 +vt 0.513158 0.785714 +vt 0.526316 1.000000 +vt 0.486842 1.000000 +vt 0.631579 0.571429 +vt 0.315789 0.571429 +vt 0.039474 0.571429 +vt 0.355263 0.571429 +vt 0.078947 0.571429 +vt 0.394737 0.571429 +vt 0.118421 0.571429 +vt 0.434211 0.571429 +vt 0.157895 0.571429 +vt 0.513158 0.571429 +vt 0.473684 0.571429 +vt 0.197368 0.571429 +vt 0.552632 0.571429 +vt 0.236842 0.571429 +vt 0.592105 0.571429 +vt 0.276316 0.571429 +vt 0.184211 0.428571 +vt 0.539474 0.428571 +vt 0.223684 0.428571 +vt 0.578947 0.428571 +vt 0.263158 0.428571 +vt 0.618421 0.428571 +vt 0.302632 0.428571 +vt 0.000000 0.571429 +vt 0.026316 0.428571 +vt 0.342105 0.428571 +vt 0.065789 0.428571 +vt 0.381579 0.428571 +vt 0.105263 0.428571 +vt 0.421053 0.428571 +vt 0.144737 0.428571 +vt 0.500000 0.428571 +vt 0.460526 0.428571 +vt 0.236842 0.428571 +vt 0.263158 -0.000000 +vt 0.263158 0.428571 +vt 0.052632 0.428571 +vt 0.078947 -0.000000 +vt 0.078947 0.428571 +vt 0.289474 -0.000000 +vt 0.289474 0.428571 +vt 0.105263 -0.000000 +vt 0.105263 0.428571 +vt 0.315789 0.428571 +vt 0.342105 -0.000000 +vt 0.342105 0.428571 +vt 0.315789 -0.000000 +vt 0.131579 -0.000000 +vt 0.131579 0.428571 +vt 0.368421 -0.000000 +vt 0.368421 0.428571 +vt 0.157895 -0.000000 +vt 0.157895 0.428571 +vt 0.394737 -0.000000 +vt 0.394737 0.428571 +vt 0.184211 -0.000000 +vt 0.184211 0.428571 +vt 0.421053 -0.000000 +vt 0.421053 0.428571 +vt 0.210526 -0.000000 +vt 0.210526 0.428571 +vt 0.000000 0.428571 +vt 0.026316 -0.000000 +vt 0.236842 -0.000000 +vt 0.052632 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.789474 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.605263 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.157895 0.428571 +vt 0.513158 0.428571 +vt 0.197368 0.428571 +vt 0.552632 0.428571 +vt 0.236842 0.428571 +vt 0.592105 0.428571 +vt 0.276316 0.428571 +vt 0.315789 0.428571 +vt 0.039474 0.428571 +vt 0.355263 0.428571 +vt 0.078947 0.428571 +vt 0.394737 0.428571 +vt 0.118421 0.428571 +vt 0.473684 0.428571 +vt 0.434211 0.428571 +vt 0.000000 -0.000000 +vt 0.842105 0.517857 +vt 0.421053 -0.000000 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vn 0.0000 -1.0000 0.0000 +vn -0.9991 0.0000 -0.0416 +vn 0.9991 0.0000 -0.0416 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 0.8944 -0.4472 +vn 0.9995 0.0000 -0.0312 +vn -0.9995 0.0000 -0.0312 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn -0.9995 0.0000 0.0312 +vn 0.9995 0.0000 0.0312 +vn -0.4472 0.8944 0.0000 +vn -0.0312 0.0000 -0.9995 +vn -0.0312 0.0000 0.9995 +vn 0.4472 0.8944 0.0000 +vn 0.0312 0.0000 0.9995 +vn 0.0312 0.0000 -0.9995 +vn 0.9991 0.0000 0.0416 +vn -0.9991 0.0000 0.0416 +vn 0.0000 0.8321 0.5547 +vn 0.0000 -0.8321 0.5547 +vn -0.0416 0.0000 0.9991 +vn -0.0416 0.0000 -0.9991 +vn -0.5547 0.8321 0.0000 +vn -0.5547 -0.8321 0.0000 +vn 0.0416 0.0000 -0.9991 +vn 0.0416 0.0000 0.9991 +vn 0.5547 0.8321 0.0000 +vn 0.5547 -0.8321 0.0000 +vn 0.3713 0.2425 -0.8963 +vn -0.0000 0.2425 -0.9701 +vn 0.6860 0.2425 -0.6860 +vn 0.8963 0.2425 -0.3713 +vn 0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn 0.6860 0.2425 0.6860 +vn 0.3713 0.2425 0.8963 +vn -0.0000 0.2425 0.9701 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn -0.8963 0.2425 0.3713 +vn -0.9701 0.2425 0.0000 +vn -0.8963 0.2425 -0.3713 +vn -0.6860 0.2425 -0.6860 +vn -0.3713 0.2425 -0.8963 +vn -0.9239 0.0000 -0.3827 +vn -1.0000 0.0000 -0.0000 +vn 0.9239 0.0000 0.3827 +vn 1.0000 0.0000 -0.0000 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.0000 -0.1240 0.9923 +vn 0.3797 -0.1240 0.9167 +vn -0.3797 -0.1240 -0.9167 +vn -0.7016 -0.1240 -0.7016 +vn 0.7016 -0.1240 0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn -0.0000 -0.1240 -0.9923 +vn 0.0127 0.3525 -0.9357 +vn -0.1164 0.9864 0.1164 +vn 0.3598 0.3824 -0.8511 +vn 0.6504 0.3925 -0.6504 +vn 0.8511 0.3824 -0.3598 +vn 0.9357 0.3525 -0.0127 +vn 0.8863 0.3053 0.3484 +vn 0.6991 0.2457 0.6714 +vn 0.3936 0.1823 0.9010 +vn 0.0149 0.1259 0.9919 +vn -0.3736 0.0869 0.9235 +vn -0.7052 0.0730 0.7052 +vn -0.9235 0.0869 0.3736 +vn -0.9919 0.1259 -0.0149 +vn -0.9010 0.1823 -0.3936 +vn -0.6714 0.2457 -0.6991 +vn -0.3484 0.3053 -0.8863 +vn 0.6325 0.4472 -0.6325 +vn 0.8263 0.4472 -0.3423 +vn 0.3423 0.4472 -0.8263 +vn 0.0000 0.4472 -0.8944 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn 0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 -0.0000 +vn -0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.0127 0.3525 0.9357 +vn 0.1164 0.9864 -0.1164 +vn -0.3598 0.3824 0.8511 +vn -0.6504 0.3925 0.6504 +vn -0.8511 0.3824 0.3598 +vn -0.9357 0.3525 0.0127 +vn -0.8863 0.3053 -0.3484 +vn -0.6991 0.2457 -0.6714 +vn -0.3936 0.1823 -0.9010 +vn -0.0149 0.1259 -0.9919 +vn 0.3736 0.0869 -0.9235 +vn 0.7052 0.0730 -0.7052 +vn 0.9235 0.0869 -0.3736 +vn 0.9919 0.1259 0.0149 +vn 0.9010 0.1823 0.3936 +vn 0.6714 0.2457 0.6991 +vn 0.3484 0.3053 0.8863 +vn -0.9357 0.3525 -0.0127 +vn 0.1164 0.9864 0.1164 +vn -0.8511 0.3824 -0.3598 +vn -0.6504 0.3925 -0.6504 +vn -0.3598 0.3824 -0.8511 +vn -0.0127 0.3525 -0.9357 +vn 0.3484 0.3053 -0.8863 +vn 0.6714 0.2457 -0.6991 +vn 0.9010 0.1823 -0.3936 +vn 0.9919 0.1259 -0.0149 +vn 0.9235 0.0869 0.3736 +vn 0.7052 0.0730 0.7052 +vn 0.3737 0.0869 0.9235 +vn -0.0149 0.1259 0.9919 +vn -0.3936 0.1823 0.9010 +vn -0.6991 0.2457 0.6714 +vn -0.8863 0.3053 0.3484 +vn 0.9357 0.3525 0.0127 +vn -0.1164 0.9864 -0.1164 +vn 0.8511 0.3824 0.3598 +vn 0.6504 0.3925 0.6504 +vn 0.3598 0.3824 0.8511 +vn 0.0127 0.3525 0.9357 +vn -0.3484 0.3053 0.8863 +vn -0.6714 0.2457 0.6991 +vn -0.9010 0.1823 0.3936 +vn -0.9919 0.1259 0.0149 +vn -0.9235 0.0869 -0.3736 +vn -0.7052 0.0730 -0.7052 +vn -0.3737 0.0869 -0.9235 +vn 0.0149 0.1259 -0.9919 +vn 0.3936 0.1823 -0.9010 +vn 0.6991 0.2457 -0.6714 +vn 0.8863 0.3053 -0.3484 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +s off +f 52/1/1 64/2/1 60/3/1 +f 69/4/1 101/5/1 102/6/1 +f 70/7/1 102/8/1 103/9/1 +f 70/7/1 104/10/1 71/11/1 +f 71/11/1 105/12/1 72/13/1 +f 73/14/1 105/15/1 106/16/1 +f 74/17/1 106/18/1 107/19/1 +f 75/20/1 107/21/1 108/22/1 +f 75/20/1 109/23/1 76/24/1 +f 77/25/1 109/26/1 110/27/1 +f 78/28/1 110/29/1 111/30/1 +f 78/28/1 112/31/1 79/32/1 +f 79/32/1 113/33/1 80/34/1 +f 66/35/1 100/36/1 67/37/1 +f 81/38/1 113/39/1 114/40/1 +f 67/37/1 101/41/1 68/42/1 +f 81/38/1 99/43/1 66/35/1 +f 125/44/1 121/45/1 117/46/1 +f 133/47/2 132/48/2 134/49/2 +f 131/50/3 136/51/3 132/48/3 +f 135/52/4 131/53/4 133/54/4 +f 136/51/5 134/55/5 132/56/5 +f 137/57/1 139/58/1 141/59/1 +f 138/60/6 142/61/6 140/62/6 +f 142/63/7 137/57/7 141/59/7 +f 139/64/8 142/63/8 141/59/8 +f 144/65/9 152/66/9 148/67/9 +f 149/68/1 151/69/1 153/70/1 +f 158/71/1 190/72/1 191/73/1 +f 159/74/1 191/75/1 192/76/1 +f 159/74/1 193/77/1 160/78/1 +f 160/78/1 194/79/1 161/80/1 +f 162/81/1 194/82/1 195/83/1 +f 163/84/1 195/85/1 196/86/1 +f 164/87/1 196/88/1 197/89/1 +f 164/87/1 198/90/1 165/91/1 +f 166/92/1 198/93/1 199/94/1 +f 167/95/1 199/96/1 200/97/1 +f 167/95/1 201/98/1 168/99/1 +f 168/99/1 202/100/1 169/101/1 +f 155/102/1 189/103/1 156/104/1 +f 170/105/1 202/106/1 203/107/1 +f 156/104/1 190/108/1 157/109/1 +f 170/105/1 188/110/1 155/102/1 +f 210/111/1 208/112/1 206/113/1 +f 220/114/1 222/115/1 224/116/1 +f 221/117/10 225/118/10 223/119/10 +f 225/120/11 220/114/11 224/116/11 +f 222/121/12 225/120/12 224/116/12 +f 229/122/1 261/123/1 262/124/1 +f 230/125/1 262/126/1 263/127/1 +f 230/125/1 264/128/1 231/129/1 +f 231/129/1 265/130/1 232/131/1 +f 233/132/1 265/133/1 266/134/1 +f 234/135/1 266/136/1 267/137/1 +f 235/138/1 267/139/1 268/140/1 +f 235/138/1 269/141/1 236/142/1 +f 237/143/1 269/144/1 270/145/1 +f 237/143/1 271/146/1 238/147/1 +f 238/147/1 272/148/1 239/149/1 +f 239/149/1 273/150/1 240/151/1 +f 226/152/1 260/153/1 227/154/1 +f 241/155/1 273/156/1 274/157/1 +f 227/154/1 261/158/1 228/159/1 +f 241/155/1 259/160/1 226/152/1 +f 285/161/1 281/162/1 277/163/1 +f 291/164/1 293/165/1 295/166/1 +f 292/167/13 296/168/13 294/169/13 +f 296/170/14 291/164/14 295/166/14 +f 293/171/15 296/170/15 295/166/15 +f 300/172/1 332/173/1 333/174/1 +f 301/175/1 333/176/1 334/177/1 +f 301/175/1 335/178/1 302/179/1 +f 302/179/1 336/180/1 303/181/1 +f 304/182/1 336/183/1 337/184/1 +f 305/185/1 337/186/1 338/187/1 +f 306/188/1 338/189/1 339/190/1 +f 306/188/1 340/191/1 307/192/1 +f 308/193/1 340/194/1 341/195/1 +f 309/196/1 341/197/1 342/198/1 +f 309/196/1 343/199/1 310/200/1 +f 310/200/1 344/201/1 311/202/1 +f 297/203/1 331/204/1 298/205/1 +f 312/206/1 344/207/1 345/208/1 +f 298/205/1 332/209/1 299/210/1 +f 297/203/1 345/211/1 330/212/1 +f 356/213/1 352/214/1 348/215/1 +f 362/216/1 364/217/1 366/218/1 +f 363/219/16 367/220/16 365/221/16 +f 367/222/17 362/216/17 366/218/17 +f 364/223/18 367/222/18 366/218/18 +f 370/224/19 369/225/19 371/226/19 +f 368/227/20 373/228/20 369/225/20 +f 372/229/21 368/230/21 370/231/21 +f 373/228/22 371/232/22 369/233/22 +f 381/234/9 379/235/9 375/236/9 +f 380/237/1 382/238/1 384/239/1 +f 388/240/23 387/241/23 389/242/23 +f 386/243/24 391/244/24 387/241/24 +f 390/245/25 386/246/25 388/247/25 +f 391/244/26 389/248/26 387/249/26 +f 393/250/9 401/251/9 397/252/9 +f 398/253/1 400/254/1 402/255/1 +f 407/256/27 404/257/27 405/258/27 +f 404/257/28 409/259/28 405/258/28 +f 408/260/29 404/261/29 406/262/29 +f 409/259/30 407/263/30 405/264/30 +f 411/265/9 419/266/9 415/267/9 +f 416/268/1 418/269/1 420/270/1 +f 52/1/1 51/271/1 50/272/1 +f 50/272/1 65/273/1 52/1/1 +f 65/273/1 64/2/1 52/1/1 +f 64/2/1 63/274/1 62/275/1 +f 62/275/1 61/276/1 60/3/1 +f 60/3/1 59/277/1 58/278/1 +f 58/278/1 57/279/1 56/280/1 +f 56/280/1 55/281/1 52/1/1 +f 55/281/1 54/282/1 52/1/1 +f 54/282/1 53/283/1 52/1/1 +f 64/2/1 62/275/1 60/3/1 +f 60/3/1 58/278/1 52/1/1 +f 58/278/1 56/280/1 52/1/1 +f 69/4/1 68/284/1 101/5/1 +f 70/7/1 69/4/1 102/8/1 +f 70/7/1 103/285/1 104/10/1 +f 71/11/1 104/286/1 105/12/1 +f 73/14/1 72/13/1 105/15/1 +f 74/17/1 73/14/1 106/18/1 +f 75/20/1 74/17/1 107/21/1 +f 75/20/1 108/287/1 109/23/1 +f 77/25/1 76/24/1 109/26/1 +f 78/28/1 77/25/1 110/29/1 +f 78/28/1 111/288/1 112/31/1 +f 79/32/1 112/289/1 113/33/1 +f 66/35/1 99/290/1 100/36/1 +f 81/38/1 80/34/1 113/39/1 +f 67/37/1 100/291/1 101/41/1 +f 81/38/1 114/292/1 99/43/1 +f 117/46/1 116/293/1 115/294/1 +f 115/294/1 130/295/1 117/46/1 +f 130/295/1 129/296/1 117/46/1 +f 129/296/1 128/297/1 127/298/1 +f 127/298/1 126/299/1 125/44/1 +f 125/44/1 124/300/1 121/45/1 +f 124/300/1 123/301/1 121/45/1 +f 123/301/1 122/302/1 121/45/1 +f 121/45/1 120/303/1 119/304/1 +f 119/304/1 118/305/1 117/46/1 +f 129/296/1 127/298/1 117/46/1 +f 127/298/1 125/44/1 117/46/1 +f 121/45/1 119/304/1 117/46/1 +f 133/47/2 131/50/2 132/48/2 +f 131/50/3 135/52/3 136/51/3 +f 142/63/7 138/60/7 137/57/7 +f 139/64/8 140/306/8 142/63/8 +f 148/67/9 146/307/9 144/65/9 +f 144/65/9 154/308/9 152/66/9 +f 152/66/9 150/309/9 148/67/9 +f 153/70/1 143/310/1 145/311/1 +f 145/311/1 147/312/1 153/70/1 +f 147/312/1 149/68/1 153/70/1 +f 158/71/1 157/313/1 190/72/1 +f 159/74/1 158/71/1 191/75/1 +f 159/74/1 192/314/1 193/77/1 +f 160/78/1 193/315/1 194/79/1 +f 162/81/1 161/80/1 194/82/1 +f 163/84/1 162/81/1 195/85/1 +f 164/87/1 163/84/1 196/88/1 +f 164/87/1 197/316/1 198/90/1 +f 166/92/1 165/91/1 198/93/1 +f 167/95/1 166/92/1 199/96/1 +f 167/95/1 200/317/1 201/98/1 +f 168/99/1 201/318/1 202/100/1 +f 155/102/1 188/319/1 189/103/1 +f 170/105/1 169/101/1 202/106/1 +f 156/104/1 189/320/1 190/108/1 +f 170/105/1 203/321/1 188/110/1 +f 206/113/1 205/322/1 204/323/1 +f 204/323/1 219/324/1 218/325/1 +f 218/325/1 217/326/1 216/327/1 +f 216/327/1 215/328/1 214/329/1 +f 214/329/1 213/330/1 212/331/1 +f 212/331/1 211/332/1 210/111/1 +f 210/111/1 209/333/1 208/112/1 +f 208/112/1 207/334/1 206/113/1 +f 206/113/1 204/323/1 214/329/1 +f 204/323/1 218/325/1 214/329/1 +f 218/325/1 216/327/1 214/329/1 +f 214/329/1 212/331/1 206/113/1 +f 212/331/1 210/111/1 206/113/1 +f 225/120/11 221/117/11 220/114/11 +f 222/121/12 223/335/12 225/120/12 +f 229/122/1 228/336/1 261/123/1 +f 230/125/1 229/122/1 262/126/1 +f 230/125/1 263/337/1 264/128/1 +f 231/129/1 264/338/1 265/130/1 +f 233/132/1 232/131/1 265/133/1 +f 234/135/1 233/132/1 266/136/1 +f 235/138/1 234/135/1 267/139/1 +f 235/138/1 268/339/1 269/141/1 +f 237/143/1 236/142/1 269/144/1 +f 237/143/1 270/340/1 271/146/1 +f 238/147/1 271/341/1 272/148/1 +f 239/149/1 272/342/1 273/150/1 +f 226/152/1 259/343/1 260/153/1 +f 241/155/1 240/151/1 273/156/1 +f 227/154/1 260/344/1 261/158/1 +f 241/155/1 274/345/1 259/160/1 +f 277/163/1 276/346/1 275/347/1 +f 275/347/1 290/348/1 289/349/1 +f 289/349/1 288/350/1 287/351/1 +f 287/351/1 286/352/1 285/161/1 +f 285/161/1 284/353/1 281/162/1 +f 284/353/1 283/354/1 281/162/1 +f 283/354/1 282/355/1 281/162/1 +f 281/162/1 280/356/1 279/357/1 +f 279/357/1 278/358/1 277/163/1 +f 277/163/1 275/347/1 289/349/1 +f 289/349/1 287/351/1 277/163/1 +f 287/351/1 285/161/1 277/163/1 +f 281/162/1 279/357/1 277/163/1 +f 296/170/14 292/167/14 291/164/14 +f 293/171/15 294/359/15 296/170/15 +f 300/172/1 299/360/1 332/173/1 +f 301/175/1 300/172/1 333/176/1 +f 301/175/1 334/361/1 335/178/1 +f 302/179/1 335/362/1 336/180/1 +f 304/182/1 303/181/1 336/183/1 +f 305/185/1 304/182/1 337/186/1 +f 306/188/1 305/185/1 338/189/1 +f 306/188/1 339/363/1 340/191/1 +f 308/193/1 307/192/1 340/194/1 +f 309/196/1 308/193/1 341/197/1 +f 309/196/1 342/364/1 343/199/1 +f 310/200/1 343/365/1 344/201/1 +f 297/203/1 330/366/1 331/204/1 +f 312/206/1 311/202/1 344/207/1 +f 298/205/1 331/367/1 332/209/1 +f 297/203/1 312/206/1 345/211/1 +f 348/215/1 347/368/1 346/369/1 +f 346/369/1 361/370/1 348/215/1 +f 361/370/1 360/371/1 348/215/1 +f 360/371/1 359/372/1 358/373/1 +f 358/373/1 357/374/1 356/213/1 +f 356/213/1 355/375/1 352/214/1 +f 355/375/1 354/376/1 352/214/1 +f 354/376/1 353/377/1 352/214/1 +f 352/214/1 351/378/1 350/379/1 +f 350/379/1 349/380/1 348/215/1 +f 360/371/1 358/373/1 348/215/1 +f 358/373/1 356/213/1 348/215/1 +f 352/214/1 350/379/1 348/215/1 +f 367/222/17 363/219/17 362/216/17 +f 364/223/18 365/381/18 367/222/18 +f 370/224/19 368/227/19 369/225/19 +f 368/227/20 372/229/20 373/228/20 +f 379/235/9 377/382/9 375/236/9 +f 375/236/9 385/383/9 383/384/9 +f 383/384/9 381/234/9 375/236/9 +f 384/239/1 374/385/1 376/386/1 +f 376/386/1 378/387/1 384/239/1 +f 378/387/1 380/237/1 384/239/1 +f 388/240/23 386/243/23 387/241/23 +f 386/243/24 390/245/24 391/244/24 +f 397/252/9 395/388/9 393/250/9 +f 393/250/9 403/389/9 401/251/9 +f 401/251/9 399/390/9 397/252/9 +f 402/255/1 392/391/1 394/392/1 +f 394/392/1 396/393/1 402/255/1 +f 396/393/1 398/253/1 402/255/1 +f 407/256/27 406/394/27 404/257/27 +f 404/257/28 408/260/28 409/259/28 +f 415/267/9 413/395/9 411/265/9 +f 411/265/9 421/396/9 419/266/9 +f 419/266/9 417/397/9 415/267/9 +f 420/270/1 410/398/1 412/399/1 +f 412/399/1 414/400/1 420/270/1 +f 414/400/1 416/268/1 420/270/1 +s 1 +f 16/401/31 1/402/32 17/403/9 +f 15/404/33 16/401/31 17/405/9 +f 14/406/34 15/404/33 17/407/9 +f 13/408/35 14/406/34 17/409/9 +f 12/410/36 13/408/35 17/411/9 +f 11/412/37 12/410/36 17/413/9 +f 10/414/38 11/412/37 17/415/9 +f 9/416/39 10/414/38 17/417/9 +f 9/416/39 17/418/9 8/419/40 +f 7/420/41 8/419/40 17/421/9 +f 6/422/42 7/420/41 17/423/9 +f 5/424/43 6/422/42 17/425/9 +f 4/426/44 5/427/43 17/428/9 +f 3/429/45 4/426/44 17/430/9 +f 2/431/46 3/429/45 17/432/9 +f 1/402/32 2/431/46 17/433/9 +f 4/426/47 22/434/48 5/427/48 +f 12/410/49 30/435/50 13/408/50 +f 5/424/48 23/436/51 6/422/51 +f 13/408/50 31/437/52 14/406/52 +f 6/422/51 24/438/53 7/420/53 +f 14/406/52 32/439/54 15/404/54 +f 7/420/53 25/440/55 8/419/55 +f 15/404/54 33/441/56 16/401/56 +f 8/419/55 26/442/57 9/416/57 +f 1/402/58 19/443/59 2/431/59 +f 16/401/56 18/444/58 1/402/58 +f 9/416/57 27/445/60 10/414/60 +f 2/431/59 20/446/61 3/429/61 +f 10/414/60 28/447/62 11/412/62 +f 3/429/61 21/448/47 4/426/47 +f 11/412/62 29/449/49 12/410/49 +f 26/442/63 43/450/64 27/445/64 +f 19/443/65 36/451/66 20/446/66 +f 27/445/64 44/452/67 28/447/67 +f 20/446/66 37/453/68 21/448/68 +f 28/447/67 45/454/69 29/449/69 +f 21/448/68 38/455/70 22/434/70 +f 29/449/69 46/456/71 30/435/71 +f 22/457/70 39/458/72 23/436/72 +f 30/435/71 47/459/73 31/437/73 +f 23/436/72 40/460/74 24/438/74 +f 31/437/73 48/461/75 32/439/75 +f 24/438/74 41/462/76 25/440/76 +f 32/439/75 49/463/77 33/441/77 +f 25/440/76 42/464/63 26/442/63 +f 18/444/78 35/465/65 19/443/65 +f 33/441/77 34/466/78 18/444/78 +f 47/467/52 64/468/54 48/469/54 +f 40/470/53 57/471/55 41/472/55 +f 48/469/54 65/473/56 49/474/56 +f 41/472/55 58/475/57 42/476/57 +f 34/477/58 51/478/59 35/479/59 +f 49/474/56 50/480/58 34/477/58 +f 42/476/57 59/481/60 43/482/60 +f 35/479/59 52/483/61 36/484/61 +f 43/482/60 60/485/62 44/486/62 +f 36/484/61 53/487/47 37/488/47 +f 44/486/62 61/489/49 45/490/49 +f 37/488/47 54/491/48 38/492/48 +f 45/490/49 62/493/50 46/494/50 +f 38/495/48 55/496/51 39/458/51 +f 46/494/50 63/497/52 47/467/52 +f 39/458/51 56/498/53 40/470/53 +f 68/42/53 83/499/51 67/37/51 +f 76/24/54 91/500/52 75/20/52 +f 69/4/55 84/501/53 68/284/53 +f 77/25/56 92/502/54 76/24/54 +f 70/7/57 85/503/55 69/4/55 +f 78/28/58 93/504/56 77/25/56 +f 71/11/60 86/505/57 70/7/57 +f 79/32/59 94/506/58 78/28/58 +f 72/13/62 87/507/60 71/11/60 +f 80/34/61 95/508/59 79/32/59 +f 73/14/49 88/509/62 72/13/62 +f 81/38/47 96/510/61 80/34/61 +f 74/17/50 89/511/49 73/14/49 +f 67/37/51 82/512/48 66/35/48 +f 66/35/48 97/513/47 81/38/47 +f 75/20/52 90/514/50 74/17/50 +f 94/506/79 98/515/80 93/504/81 +f 92/502/82 93/504/81 98/516/80 +f 91/500/83 92/502/82 98/517/80 +f 90/514/84 91/500/83 98/518/80 +f 89/511/85 90/514/84 98/519/80 +f 88/509/86 89/511/85 98/520/80 +f 87/507/87 88/509/86 98/521/80 +f 86/505/88 87/507/87 98/522/80 +f 85/503/89 86/505/88 98/523/80 +f 84/501/90 85/503/89 98/524/80 +f 83/499/91 84/525/90 98/526/80 +f 82/512/92 83/499/91 98/527/80 +f 97/513/93 82/512/92 98/528/80 +f 96/510/94 97/513/93 98/529/80 +f 95/508/95 96/510/94 98/530/80 +f 94/506/79 95/508/95 98/531/80 +f 109/23/96 124/532/97 125/533/96 +f 109/26/96 126/534/98 110/27/98 +f 110/29/98 127/535/99 111/30/99 +f 111/288/99 128/536/100 112/31/100 +f 113/33/101 128/536/100 129/537/101 +f 100/36/102 115/538/103 116/539/102 +f 113/39/101 130/540/104 114/40/104 +f 100/291/102 117/541/105 101/41/105 +f 114/292/104 115/538/103 99/43/103 +f 102/6/106 117/542/105 118/543/106 +f 102/8/106 119/544/107 103/9/107 +f 103/285/107 120/545/108 104/10/108 +f 104/286/108 121/546/109 105/12/109 +f 105/15/109 122/547/110 106/16/110 +f 106/18/110 123/548/111 107/19/111 +f 107/21/111 124/532/97 108/22/97 +f 144/549/48 145/550/112 143/551/48 +f 146/552/112 147/553/113 145/550/112 +f 148/554/113 149/555/50 147/553/113 +f 150/556/50 151/557/114 149/555/50 +f 152/558/114 153/559/115 151/557/114 +f 154/560/115 143/551/48 153/561/115 +f 157/109/54 172/562/52 156/104/52 +f 165/91/53 180/563/51 164/87/51 +f 158/71/56 173/564/54 157/313/54 +f 166/92/55 181/565/53 165/91/53 +f 159/74/58 174/566/56 158/71/56 +f 167/95/57 182/567/55 166/92/55 +f 160/78/59 175/568/58 159/74/58 +f 168/99/60 183/569/57 167/95/57 +f 161/80/61 176/570/59 160/78/59 +f 169/101/62 184/571/60 168/99/60 +f 162/81/47 177/572/61 161/80/61 +f 170/105/49 185/573/62 169/101/62 +f 163/84/48 178/574/47 162/81/47 +f 156/104/52 171/575/50 155/102/50 +f 155/102/50 186/576/49 170/105/49 +f 164/87/51 179/577/48 163/84/48 +f 183/569/116 187/578/117 182/567/118 +f 181/565/119 182/567/118 187/579/117 +f 180/563/120 181/565/119 187/580/117 +f 179/577/121 180/563/120 187/581/117 +f 178/574/122 179/577/121 187/582/117 +f 177/572/123 178/574/122 187/583/117 +f 176/570/124 177/572/123 187/584/117 +f 175/568/125 176/570/124 187/585/117 +f 174/566/126 175/568/125 187/586/117 +f 173/564/127 174/566/126 187/587/117 +f 172/562/128 173/588/127 187/589/117 +f 171/575/129 172/562/128 187/590/117 +f 186/576/130 171/575/129 187/591/117 +f 185/573/131 186/576/130 187/592/117 +f 184/571/132 185/573/131 187/593/117 +f 183/569/116 184/571/132 187/594/117 +f 198/90/105 213/595/102 214/596/105 +f 198/93/105 215/597/106 199/94/106 +f 199/96/106 216/598/107 200/97/107 +f 201/98/108 216/598/107 217/599/108 +f 202/100/109 217/599/108 218/600/109 +f 188/319/111 205/601/97 189/103/97 +f 202/106/109 219/602/110 203/107/110 +f 190/108/96 205/601/97 206/603/96 +f 203/321/110 204/604/111 188/110/111 +f 190/72/96 207/605/98 191/73/98 +f 191/75/98 208/606/99 192/76/99 +f 192/314/99 209/607/100 193/77/100 +f 193/315/100 210/608/101 194/79/101 +f 194/82/101 211/609/104 195/83/104 +f 195/85/104 212/610/103 196/86/103 +f 196/88/103 213/595/102 197/89/102 +f 228/159/62 243/611/60 227/154/60 +f 236/142/61 251/612/59 235/138/59 +f 229/122/49 244/613/62 228/336/62 +f 237/143/47 252/614/61 236/142/61 +f 230/125/50 245/615/49 229/122/49 +f 238/147/48 253/616/47 237/143/47 +f 231/129/52 246/617/50 230/125/50 +f 239/149/51 254/618/48 238/147/48 +f 232/131/54 247/619/52 231/129/52 +f 240/151/53 255/620/51 239/149/51 +f 233/132/56 248/621/54 232/131/54 +f 241/155/55 256/622/53 240/151/53 +f 234/135/58 249/623/56 233/132/56 +f 227/154/60 242/624/57 226/152/57 +f 226/152/57 257/625/55 241/155/55 +f 235/138/59 250/626/58 234/135/58 +f 254/618/133 258/627/134 253/616/135 +f 252/614/136 253/616/135 258/628/134 +f 251/612/137 252/614/136 258/629/134 +f 250/626/138 251/612/137 258/630/134 +f 249/623/139 250/626/138 258/631/134 +f 248/621/140 249/623/139 258/632/134 +f 247/619/141 248/621/140 258/633/134 +f 246/617/142 247/619/141 258/634/134 +f 245/615/143 246/617/142 258/635/134 +f 244/613/144 245/615/143 258/636/134 +f 243/611/145 244/637/144 258/638/134 +f 242/624/146 243/611/145 258/639/134 +f 257/625/147 242/624/146 258/640/134 +f 256/622/148 257/625/147 258/641/134 +f 255/620/149 256/622/148 258/642/134 +f 254/618/133 255/620/149 258/643/134 +f 268/339/100 285/644/101 269/141/101 +f 269/144/101 286/645/104 270/145/104 +f 270/340/104 287/646/103 271/146/103 +f 271/341/103 288/647/102 272/148/102 +f 273/150/105 288/647/102 289/648/105 +f 259/343/107 276/649/108 260/153/108 +f 273/156/105 290/650/106 274/157/106 +f 260/344/108 277/651/109 261/158/109 +f 274/345/106 275/652/107 259/160/107 +f 262/124/110 277/653/109 278/654/110 +f 262/126/110 279/655/111 263/127/111 +f 263/337/111 280/656/97 264/128/97 +f 264/338/97 281/657/96 265/130/96 +f 265/133/96 282/658/98 266/134/98 +f 266/136/98 283/659/99 267/137/99 +f 267/139/99 284/660/100 268/140/100 +f 299/210/61 314/661/59 298/205/59 +f 307/192/62 322/662/60 306/188/60 +f 300/172/47 315/663/61 299/360/61 +f 308/193/49 323/664/62 307/192/62 +f 301/175/48 316/665/47 300/172/47 +f 309/196/50 324/666/49 308/193/49 +f 302/179/51 317/667/48 301/175/48 +f 310/200/52 325/668/50 309/196/50 +f 303/181/53 318/669/51 302/179/51 +f 311/202/54 326/670/52 310/200/52 +f 304/182/55 319/671/53 303/181/53 +f 312/206/56 327/672/54 311/202/54 +f 305/185/57 320/673/55 304/182/55 +f 298/205/59 313/674/58 297/203/58 +f 297/203/58 328/675/56 312/206/56 +f 306/188/60 321/676/57 305/185/57 +f 325/668/150 329/677/151 324/666/152 +f 323/664/153 324/666/152 329/678/151 +f 322/662/154 323/664/153 329/679/151 +f 321/676/155 322/662/154 329/680/151 +f 320/673/156 321/676/155 329/681/151 +f 319/671/157 320/673/156 329/682/151 +f 318/669/158 319/671/157 329/683/151 +f 317/667/159 318/669/158 329/684/151 +f 316/665/160 317/667/159 329/685/151 +f 315/663/161 316/665/160 329/686/151 +f 314/661/162 315/687/161 329/688/151 +f 313/674/163 314/661/162 329/689/151 +f 328/675/164 313/674/163 329/690/151 +f 327/672/165 328/675/164 329/691/151 +f 326/670/166 327/672/165 329/692/151 +f 325/668/150 326/670/166 329/693/151 +f 340/191/109 355/694/108 356/695/109 +f 340/194/109 357/696/110 341/195/110 +f 341/197/110 358/697/111 342/198/111 +f 343/199/97 358/697/111 359/698/97 +f 343/365/97 360/699/96 344/201/96 +f 330/366/99 347/700/100 331/204/100 +f 345/208/98 360/699/96 361/701/98 +f 332/209/101 347/700/100 348/702/101 +f 345/211/98 346/703/99 330/212/99 +f 333/174/104 348/704/101 349/705/104 +f 333/176/104 350/706/103 334/177/103 +f 335/178/102 350/706/103 351/707/102 +f 335/362/102 352/708/105 336/180/105 +f 336/183/105 353/709/106 337/184/106 +f 337/186/106 354/710/107 338/187/107 +f 338/189/107 355/694/108 339/190/108 +f 375/711/50 376/712/114 374/713/50 +f 377/714/114 378/715/115 376/712/114 +f 379/716/115 380/717/48 378/715/115 +f 381/718/48 382/719/112 380/717/48 +f 383/720/112 384/721/113 382/719/112 +f 385/722/113 374/713/50 384/723/113 +f 393/724/57 394/725/167 392/726/57 +f 395/727/167 396/728/168 394/725/167 +f 397/729/168 398/730/58 396/728/168 +f 399/731/58 400/732/169 398/730/58 +f 401/733/169 402/734/170 400/732/169 +f 403/735/170 392/726/57 402/736/170 +f 411/737/58 412/738/169 410/739/58 +f 413/740/169 414/741/170 412/738/169 +f 415/742/170 416/743/57 414/741/170 +f 417/744/57 418/745/167 416/743/57 +f 419/746/167 420/747/168 418/745/167 +f 421/748/168 410/739/58 420/749/168 +f 4/426/47 21/448/47 22/434/48 +f 12/410/49 29/449/49 30/435/50 +f 5/424/48 22/457/48 23/436/51 +f 13/408/50 30/435/50 31/437/52 +f 6/422/51 23/436/51 24/438/53 +f 14/406/52 31/437/52 32/439/54 +f 7/420/53 24/438/53 25/440/55 +f 15/404/54 32/439/54 33/441/56 +f 8/419/55 25/440/55 26/442/57 +f 1/402/58 18/444/58 19/443/59 +f 16/401/56 33/441/56 18/444/58 +f 9/416/57 26/442/57 27/445/60 +f 2/431/59 19/443/59 20/446/61 +f 10/414/60 27/445/60 28/447/62 +f 3/429/61 20/446/61 21/448/47 +f 11/412/62 28/447/62 29/449/49 +f 26/442/63 42/750/63 43/450/64 +f 19/443/65 35/751/65 36/451/66 +f 27/445/64 43/752/64 44/452/67 +f 20/446/66 36/753/66 37/453/68 +f 28/447/67 44/754/67 45/454/69 +f 21/448/68 37/755/68 38/455/70 +f 29/449/69 45/756/69 46/456/71 +f 22/457/70 38/495/70 39/458/72 +f 30/435/71 46/757/71 47/459/73 +f 23/436/72 39/758/72 40/460/74 +f 31/437/73 47/759/73 48/461/75 +f 24/438/74 40/760/74 41/462/76 +f 32/439/75 48/761/75 49/463/77 +f 25/440/76 41/762/76 42/464/63 +f 18/444/78 34/763/78 35/465/65 +f 33/441/77 49/764/77 34/466/78 +f 47/467/52 63/497/52 64/468/54 +f 40/470/53 56/498/53 57/471/55 +f 48/469/54 64/468/54 65/473/56 +f 41/472/55 57/471/55 58/475/57 +f 34/477/58 50/480/58 51/478/59 +f 49/474/56 65/473/56 50/480/58 +f 42/476/57 58/475/57 59/481/60 +f 35/479/59 51/478/59 52/483/61 +f 43/482/60 59/481/60 60/485/62 +f 36/484/61 52/483/61 53/487/47 +f 44/486/62 60/485/62 61/489/49 +f 37/488/47 53/487/47 54/491/48 +f 45/490/49 61/489/49 62/493/50 +f 38/495/48 54/765/48 55/496/51 +f 46/494/50 62/493/50 63/497/52 +f 39/458/51 55/496/51 56/498/53 +f 68/42/53 84/525/53 83/499/51 +f 76/24/54 92/502/54 91/500/52 +f 69/4/55 85/503/55 84/501/53 +f 77/25/56 93/504/56 92/502/54 +f 70/7/57 86/505/57 85/503/55 +f 78/28/58 94/506/58 93/504/56 +f 71/11/60 87/507/60 86/505/57 +f 79/32/59 95/508/59 94/506/58 +f 72/13/62 88/509/62 87/507/60 +f 80/34/61 96/510/61 95/508/59 +f 73/14/49 89/511/49 88/509/62 +f 81/38/47 97/513/47 96/510/61 +f 74/17/50 90/514/50 89/511/49 +f 67/37/51 83/499/51 82/512/48 +f 66/35/48 82/512/48 97/513/47 +f 75/20/52 91/500/52 90/514/50 +f 109/23/96 108/287/97 124/532/97 +f 109/26/96 125/533/96 126/534/98 +f 110/29/98 126/534/98 127/535/99 +f 111/288/99 127/535/99 128/536/100 +f 113/33/101 112/289/100 128/536/100 +f 100/36/102 99/290/103 115/538/103 +f 113/39/101 129/537/101 130/540/104 +f 100/291/102 116/539/102 117/541/105 +f 114/292/104 130/540/104 115/538/103 +f 102/6/106 101/5/105 117/542/105 +f 102/8/106 118/543/106 119/544/107 +f 103/285/107 119/544/107 120/545/108 +f 104/286/108 120/545/108 121/546/109 +f 105/15/109 121/546/109 122/547/110 +f 106/18/110 122/547/110 123/548/111 +f 107/21/111 123/548/111 124/532/97 +f 144/549/48 146/552/112 145/550/112 +f 146/552/112 148/554/113 147/553/113 +f 148/554/113 150/556/50 149/555/50 +f 150/556/50 152/558/114 151/557/114 +f 152/558/114 154/766/115 153/559/115 +f 154/560/115 144/549/48 143/551/48 +f 157/109/54 173/588/54 172/562/52 +f 165/91/53 181/565/53 180/563/51 +f 158/71/56 174/566/56 173/564/54 +f 166/92/55 182/567/55 181/565/53 +f 159/74/58 175/568/58 174/566/56 +f 167/95/57 183/569/57 182/567/55 +f 160/78/59 176/570/59 175/568/58 +f 168/99/60 184/571/60 183/569/57 +f 161/80/61 177/572/61 176/570/59 +f 169/101/62 185/573/62 184/571/60 +f 162/81/47 178/574/47 177/572/61 +f 170/105/49 186/576/49 185/573/62 +f 163/84/48 179/577/48 178/574/47 +f 156/104/52 172/562/52 171/575/50 +f 155/102/50 171/575/50 186/576/49 +f 164/87/51 180/563/51 179/577/48 +f 198/90/105 197/316/102 213/595/102 +f 198/93/105 214/596/105 215/597/106 +f 199/96/106 215/597/106 216/598/107 +f 201/98/108 200/317/107 216/598/107 +f 202/100/109 201/318/108 217/599/108 +f 188/319/111 204/604/111 205/601/97 +f 202/106/109 218/600/109 219/602/110 +f 190/108/96 189/320/97 205/601/97 +f 203/321/110 219/602/110 204/604/111 +f 190/72/96 206/767/96 207/605/98 +f 191/75/98 207/605/98 208/606/99 +f 192/314/99 208/606/99 209/607/100 +f 193/315/100 209/607/100 210/608/101 +f 194/82/101 210/608/101 211/609/104 +f 195/85/104 211/609/104 212/610/103 +f 196/88/103 212/610/103 213/595/102 +f 228/159/62 244/637/62 243/611/60 +f 236/142/61 252/614/61 251/612/59 +f 229/122/49 245/615/49 244/613/62 +f 237/143/47 253/616/47 252/614/61 +f 230/125/50 246/617/50 245/615/49 +f 238/147/48 254/618/48 253/616/47 +f 231/129/52 247/619/52 246/617/50 +f 239/149/51 255/620/51 254/618/48 +f 232/131/54 248/621/54 247/619/52 +f 240/151/53 256/622/53 255/620/51 +f 233/132/56 249/623/56 248/621/54 +f 241/155/55 257/625/55 256/622/53 +f 234/135/58 250/626/58 249/623/56 +f 227/154/60 243/611/60 242/624/57 +f 226/152/57 242/624/57 257/625/55 +f 235/138/59 251/612/59 250/626/58 +f 268/339/100 284/660/100 285/644/101 +f 269/144/101 285/644/101 286/645/104 +f 270/340/104 286/645/104 287/646/103 +f 271/341/103 287/646/103 288/647/102 +f 273/150/105 272/342/102 288/647/102 +f 259/343/107 275/652/107 276/649/108 +f 273/156/105 289/648/105 290/650/106 +f 260/344/108 276/649/108 277/651/109 +f 274/345/106 290/650/106 275/652/107 +f 262/124/110 261/123/109 277/653/109 +f 262/126/110 278/654/110 279/655/111 +f 263/337/111 279/655/111 280/656/97 +f 264/338/97 280/656/97 281/657/96 +f 265/133/96 281/657/96 282/658/98 +f 266/136/98 282/658/98 283/659/99 +f 267/139/99 283/659/99 284/660/100 +f 299/210/61 315/687/61 314/661/59 +f 307/192/62 323/664/62 322/662/60 +f 300/172/47 316/665/47 315/663/61 +f 308/193/49 324/666/49 323/664/62 +f 301/175/48 317/667/48 316/665/47 +f 309/196/50 325/668/50 324/666/49 +f 302/179/51 318/669/51 317/667/48 +f 310/200/52 326/670/52 325/668/50 +f 303/181/53 319/671/53 318/669/51 +f 311/202/54 327/672/54 326/670/52 +f 304/182/55 320/673/55 319/671/53 +f 312/206/56 328/675/56 327/672/54 +f 305/185/57 321/676/57 320/673/55 +f 298/205/59 314/661/59 313/674/58 +f 297/203/58 313/674/58 328/675/56 +f 306/188/60 322/662/60 321/676/57 +f 340/191/109 339/363/108 355/694/108 +f 340/194/109 356/695/109 357/696/110 +f 341/197/110 357/696/110 358/697/111 +f 343/199/97 342/364/111 358/697/111 +f 343/365/97 359/698/97 360/699/96 +f 330/366/99 346/703/99 347/700/100 +f 345/208/98 344/207/96 360/699/96 +f 332/209/101 331/367/100 347/700/100 +f 345/211/98 361/701/98 346/703/99 +f 333/174/104 332/173/101 348/704/101 +f 333/176/104 349/705/104 350/706/103 +f 335/178/102 334/361/103 350/706/103 +f 335/362/102 351/707/102 352/708/105 +f 336/183/105 352/708/105 353/709/106 +f 337/186/106 353/709/106 354/710/107 +f 338/189/107 354/710/107 355/694/108 +f 375/711/50 377/714/114 376/712/114 +f 377/714/114 379/716/115 378/715/115 +f 379/716/115 381/718/48 380/717/48 +f 381/718/48 383/720/112 382/719/112 +f 383/720/112 385/768/113 384/721/113 +f 385/722/113 375/711/50 374/713/50 +f 393/724/57 395/727/167 394/725/167 +f 395/727/167 397/729/168 396/728/168 +f 397/729/168 399/731/58 398/730/58 +f 399/731/58 401/733/169 400/732/169 +f 401/733/169 403/769/170 402/734/170 +f 403/735/170 393/724/57 392/726/57 +f 411/737/58 413/740/169 412/738/169 +f 413/740/169 415/742/170 414/741/170 +f 415/742/170 417/744/57 416/743/57 +f 417/744/57 419/746/167 418/745/167 +f 419/746/167 421/770/168 420/747/168 +f 421/748/168 411/737/58 410/739/58 diff --git a/src/main/resources/assets/hbm/models/missile_atlas.obj b/src/main/resources/assets/hbm/models/missile_atlas.obj new file mode 100644 index 000000000..ce22b2edb --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_atlas.obj @@ -0,0 +1,1505 @@ +# Blender v3.2.0 OBJ File: 'titan.blend' +# www.blender.org +mtllib missile_icbm.mtl +o Circle.002_Circle.003 +v -0.883883 0.687500 -0.883883 +v -1.154849 0.687500 -0.478354 +v -1.250000 0.687500 0.000000 +v -1.154849 0.687500 0.478354 +v -0.883883 0.687500 0.883883 +v 0.883883 0.687500 0.883884 +v 1.154849 0.687500 0.478354 +v 1.250000 0.687500 -0.000000 +v 1.154849 0.687500 -0.478355 +v 0.883884 0.687500 -0.883883 +v 0.000000 3.312500 -1.250000 +v -0.478354 3.312500 -1.154849 +v -0.883883 3.312500 -0.883883 +v -1.154849 3.312500 -0.478354 +v -1.250000 3.312500 0.000000 +v -1.154849 3.312500 0.478354 +v -0.883883 3.312500 0.883883 +v -0.478354 3.312500 1.154849 +v 0.000000 3.312500 1.250000 +v 0.478354 3.312500 1.154849 +v 0.883883 3.312500 0.883884 +v 1.154849 3.312500 0.478354 +v 1.250000 3.312500 -0.000000 +v 1.154849 3.312500 -0.478355 +v 0.883884 3.312500 -0.883883 +v 0.478354 3.312500 -1.154849 +v 0.000000 3.312500 -1.125000 +v -0.430519 3.312500 -1.039364 +v -0.795495 3.312500 -0.795495 +v -1.039364 3.312500 -0.430519 +v -1.125000 3.312500 0.000000 +v -1.039364 3.312500 0.430519 +v -0.795495 3.312500 0.795495 +v -0.430519 3.312500 1.039364 +v 0.000000 3.312500 1.125000 +v 0.430519 3.312500 1.039364 +v 0.795495 3.312500 0.795495 +v 1.039364 3.312500 0.430519 +v 1.125000 3.312500 -0.000000 +v 1.039364 3.312500 -0.430519 +v 0.795495 3.312500 -0.795495 +v 0.430519 3.312500 -1.039364 +v 0.000000 10.812500 -1.125000 +v -0.430519 10.812500 -1.039364 +v -0.795495 10.812500 -0.795495 +v -1.039364 10.812500 -0.430519 +v -1.125000 10.812500 0.000000 +v -1.039364 10.812500 0.430519 +v -0.795495 10.812500 0.795495 +v -0.430519 10.812500 1.039364 +v 0.000000 10.812500 1.125000 +v 0.430519 10.812500 1.039364 +v 0.795495 10.812500 0.795495 +v 1.039364 10.812500 0.430519 +v 1.125000 10.812500 -0.000000 +v 1.039364 10.812500 -0.430519 +v 0.795495 10.812500 -0.795495 +v 0.430519 10.812500 -1.039364 +v -0.000000 13.312500 -0.562500 +v -0.215259 13.312500 -0.519682 +v -0.397748 13.312500 -0.397748 +v -0.519682 13.312500 -0.215259 +v -0.562500 13.312500 0.000000 +v -0.519682 13.312500 0.215259 +v -0.397748 13.312500 0.397748 +v -0.215259 13.312500 0.519682 +v 0.000000 13.312500 0.562500 +v 0.215259 13.312500 0.519682 +v 0.397747 13.312500 0.397748 +v 0.519682 13.312500 0.215260 +v 0.562500 13.312500 -0.000000 +v 0.519682 13.312500 -0.215260 +v 0.397748 13.312500 -0.397748 +v 0.215259 13.312500 -0.519682 +v -0.000000 14.437500 -0.000000 +v -0.500000 2.250000 -1.250000 +v -0.433013 2.250000 -1.500000 +v -0.250000 2.250000 -1.683013 +v 0.000000 2.250000 -1.750000 +v 0.500000 2.250000 -1.250000 +v 0.433013 2.250000 -1.500000 +v 0.250000 2.250000 -1.683013 +v 0.000000 0.687500 -2.000000 +v -0.375000 0.687500 -1.899519 +v -0.649519 0.687500 -1.625000 +v -0.750000 0.687500 -1.250000 +v 0.750000 0.687500 -1.250000 +v 0.649519 0.687500 -1.625000 +v 0.375000 0.687500 -1.899519 +v 0.125000 3.312500 -1.466506 +v 0.216506 3.312500 -1.375000 +v 0.250000 3.312500 -1.250000 +v 0.216506 3.312500 -1.125000 +v -0.216506 3.312500 -1.125000 +v -0.250000 3.312500 -1.250000 +v -0.216506 3.312500 -1.375000 +v -0.125000 3.312500 -1.466506 +v 0.180586 3.312500 -1.089079 +v -0.180586 3.312500 -1.089079 +v 0.687126 0.687500 -1.015352 +v -0.687126 0.687500 -1.015352 +v 0.125000 6.812500 -1.466506 +v 0.216506 6.812500 -1.375000 +v 0.250000 6.812500 -1.250000 +v 0.216506 6.812500 -1.125000 +v -0.216506 6.812500 -1.125000 +v -0.250000 6.812500 -1.250000 +v -0.216506 6.812500 -1.375000 +v -0.125000 6.812500 -1.466506 +v 0.180586 6.812500 -1.089079 +v -0.180586 6.812500 -1.089079 +v 0.000000 7.687500 -1.125000 +v 0.478354 2.250000 -1.154849 +v -0.478354 2.250000 -1.154849 +v 0.000000 0.687500 -1.625000 +v -0.187500 0.687500 -1.574759 +v -0.324760 0.687500 -1.437500 +v -0.375000 0.687500 -1.250000 +v -0.324760 0.687500 -1.062500 +v -0.187500 0.687500 -0.925241 +v 0.000000 0.687500 -0.875000 +v 0.187500 0.687500 -0.925241 +v 0.324760 0.687500 -1.062500 +v 0.375000 0.687500 -1.250000 +v 0.324760 0.687500 -1.437500 +v 0.187500 0.687500 -1.574759 +v 0.000000 0.000000 -1.750000 +v -0.250000 0.000000 -1.683013 +v -0.433013 0.000000 -1.500000 +v -0.500000 0.000000 -1.250000 +v -0.433013 0.000000 -1.000000 +v -0.250000 0.000000 -0.816987 +v 0.000000 0.000000 -0.750000 +v 0.250000 0.000000 -0.816987 +v 0.433013 0.000000 -1.000000 +v 0.500000 0.000000 -1.250000 +v 0.433013 0.000000 -1.500000 +v 0.250000 0.000000 -1.683013 +v 0.000000 0.687500 -0.375000 +v -0.187500 0.687500 -0.324759 +v -0.324760 0.687500 -0.187500 +v -0.375000 0.687500 0.000000 +v -0.324760 0.687500 0.187500 +v -0.187500 0.687500 0.324759 +v 0.000000 0.687500 0.375000 +v 0.187500 0.687500 0.324759 +v 0.324760 0.687500 0.187500 +v 0.375000 0.687500 0.000000 +v 0.324760 0.687500 -0.187500 +v 0.187500 0.687500 -0.324759 +v 0.000000 0.375000 -0.500000 +v -0.250000 0.375000 -0.433013 +v -0.433013 0.375000 -0.250000 +v -0.500000 0.375000 0.000000 +v -0.433013 0.375000 0.250000 +v -0.250000 0.375000 0.433013 +v 0.000000 0.375000 0.500000 +v 0.250000 0.375000 0.433013 +v 0.433013 0.375000 0.250000 +v 0.500000 0.375000 0.000000 +v 0.433013 0.375000 -0.250000 +v 0.250000 0.375000 -0.433013 +v 0.000000 0.000000 -0.500000 +v -0.250000 0.000000 -0.433013 +v -0.433013 0.000000 -0.250000 +v -0.500000 0.000000 0.000000 +v -0.433013 0.000000 0.250000 +v -0.250000 0.000000 0.433013 +v 0.000000 0.000000 0.500000 +v 0.250000 0.000000 0.433013 +v 0.433013 0.000000 0.250000 +v 0.500000 0.000000 0.000000 +v 0.433013 0.000000 -0.250000 +v 0.250000 0.000000 -0.433013 +v 0.000000 3.312500 -1.500000 +v 0.125000 3.376629 -1.642699 +v -0.125000 3.376629 -1.642699 +v 0.062500 3.687500 -1.466506 +v -0.062500 3.687500 -1.466506 +v 0.500000 2.250000 1.250000 +v 0.433013 2.250000 1.500000 +v 0.250000 2.250000 1.683013 +v -0.000000 2.250000 1.750000 +v -0.500000 2.250000 1.250000 +v -0.433013 2.250000 1.500000 +v -0.250000 2.250000 1.683013 +v -0.000000 0.687500 2.000000 +v 0.375000 0.687500 1.899519 +v 0.649519 0.687500 1.625000 +v 0.750000 0.687500 1.250000 +v -0.750000 0.687500 1.250000 +v -0.649519 0.687500 1.625000 +v -0.375000 0.687500 1.899519 +v -0.125000 3.312500 1.466506 +v -0.216506 3.312500 1.375000 +v -0.250000 3.312500 1.250000 +v -0.216506 3.312500 1.125000 +v 0.216506 3.312500 1.125000 +v 0.250000 3.312500 1.250000 +v 0.216506 3.312500 1.375000 +v 0.125000 3.312500 1.466506 +v -0.180586 3.312500 1.089079 +v 0.180586 3.312500 1.089079 +v -0.687126 0.687500 1.015352 +v 0.687126 0.687500 1.015353 +v -0.125000 6.812500 1.466506 +v -0.216506 6.812500 1.375000 +v -0.250000 6.812500 1.250000 +v -0.216506 6.812500 1.125000 +v 0.216506 6.812500 1.125000 +v 0.250000 6.812500 1.250000 +v 0.216506 6.812500 1.375000 +v 0.125000 6.812500 1.466506 +v -0.180586 6.812500 1.089079 +v 0.180586 6.812500 1.089079 +v -0.000000 7.687500 1.125000 +v -0.478354 2.250000 1.154849 +v 0.478354 2.250000 1.154849 +v -0.000000 0.687500 1.625000 +v 0.187500 0.687500 1.574759 +v 0.324759 0.687500 1.437500 +v 0.375000 0.687500 1.250000 +v 0.324759 0.687500 1.062500 +v 0.187500 0.687500 0.925241 +v -0.000000 0.687500 0.875000 +v -0.187500 0.687500 0.925241 +v -0.324760 0.687500 1.062500 +v -0.375000 0.687500 1.250000 +v -0.324760 0.687500 1.437500 +v -0.187500 0.687500 1.574759 +v -0.000000 0.000000 1.750000 +v 0.250000 0.000000 1.683013 +v 0.433013 0.000000 1.500000 +v 0.500000 0.000000 1.250000 +v 0.433013 0.000000 1.000000 +v 0.250000 0.000000 0.816987 +v -0.000000 0.000000 0.750000 +v -0.250000 0.000000 0.816987 +v -0.433013 0.000000 1.000000 +v -0.500000 0.000000 1.250000 +v -0.433013 0.000000 1.500000 +v -0.250000 0.000000 1.683013 +v -0.000000 3.312500 1.500000 +v -0.378886 3.312500 1.500000 +v -0.218750 3.437500 1.722636 +v 0.218750 3.437500 1.722636 +v 0.378886 3.312500 1.500000 +v -0.378886 3.312500 1.049635 +v 0.378886 3.312500 1.049635 +v -0.378886 4.562500 1.500000 +v -0.218750 4.562500 1.722636 +v 0.218750 4.562500 1.722636 +v 0.378886 4.562500 1.500000 +v -0.378886 4.562500 1.049635 +v 0.378886 4.562500 1.049635 +v 0.180586 5.437500 1.089079 +v -0.216506 5.437500 1.125000 +v -0.250000 5.437500 1.250000 +v -0.216506 5.437500 1.375000 +v 0.216506 5.437500 1.375000 +v 0.250000 5.437500 1.250000 +v 0.216506 5.437500 1.125000 +v -0.180586 5.437500 1.089079 +v -0.125000 5.437500 1.466506 +v 0.125000 5.437500 1.466506 +v -0.806102 10.093750 -0.806102 +v -1.053223 10.093750 -0.436259 +v -1.140000 10.093750 0.000000 +v -1.053223 10.093750 0.436259 +v -0.806102 10.093750 0.806102 +v 0.806102 10.093750 0.806102 +v 1.053223 10.093750 0.436259 +v 1.140000 10.093750 -0.000000 +v 1.053223 10.093750 -0.436259 +v 0.806102 10.093750 -0.806102 +v -0.806102 8.125000 -0.806102 +v -1.053223 8.125000 -0.436259 +v -1.140000 8.125000 0.000000 +v -1.053223 8.125000 0.436259 +v -0.806102 8.125000 0.806102 +v 0.806102 8.125000 0.806102 +v 1.053223 8.125000 0.436259 +v 1.140000 8.125000 -0.000000 +v 1.053223 8.125000 -0.436259 +v 0.806102 8.125000 -0.806102 +v -0.225167 6.406250 1.380000 +v -0.145625 6.406250 1.475167 +v 0.145625 6.406250 1.475167 +v 0.225166 6.406250 1.380000 +v -0.225167 5.875000 1.380000 +v -0.145625 5.875000 1.475167 +v 0.145625 5.875000 1.475167 +v 0.225166 5.875000 1.380000 +v 0.225166 6.406250 -1.380000 +v 0.145625 6.406250 -1.475167 +v -0.145625 6.406250 -1.475167 +v -0.225167 6.406250 -1.380000 +v 0.225166 5.875000 -1.380000 +v 0.145625 5.875000 -1.475167 +v -0.145625 5.875000 -1.475167 +v -0.225167 5.875000 -1.380000 +vt 0.107143 0.186667 +vt 0.071429 0.195556 +vt 0.071429 0.186667 +vt 0.142857 0.195556 +vt 0.178571 0.186667 +vt 0.178571 0.195556 +vt 0.142857 0.186667 +vt 0.107143 0.195556 +vt 0.576531 0.622222 +vt 0.576531 0.684444 +vt 0.571429 0.622222 +vt 0.790816 0.577778 +vt 0.770408 0.577778 +vt 0.780612 0.573333 +vt 0.214286 0.195556 +vt 0.214286 0.186667 +vt 0.250000 0.195556 +vt 0.285714 0.186667 +vt 0.250000 0.186667 +vt 0.321429 0.186667 +vt 0.285714 0.195556 +vt 0.357143 0.195556 +vt 0.321429 0.195556 +vt 0.392857 0.186667 +vt 0.357143 0.186667 +vt 0.392857 0.195556 +vt 0.428571 0.186667 +vt 0.428571 0.195556 +vt 0.464286 0.186667 +vt 0.500000 0.195556 +vt 0.464286 0.195556 +vt 0.535714 0.186667 +vt 0.500000 0.186667 +vt 0.035714 0.186667 +vt 0.035714 0.195556 +vt 0.000000 0.186667 +vt 0.571429 0.195556 +vt 0.535714 0.195556 +vt 0.744173 0.160632 +vt 0.733441 0.146640 +vt 0.777277 0.179900 +vt 0.918367 0.151111 +vt 0.899213 0.146640 +vt 0.948980 0.143966 +vt 0.948980 0.051590 +vt 0.979592 0.097778 +vt 0.971389 0.124444 +vt 0.971389 0.071111 +vt 0.918367 0.044444 +vt 0.899213 0.048915 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.816327 0.186667 +vt 0.855376 0.179900 +vt 0.816327 0.008889 +vt 0.855376 0.015655 +vt 0.777277 0.015655 +vt 0.888480 0.034924 +vt 0.888480 0.160632 +vt 0.790816 0.591111 +vt 0.770408 0.591111 +vt 0.668367 0.622222 +vt 0.668367 0.684444 +vt 0.663265 0.622222 +vt 0.714286 0.044444 +vt 0.733441 0.048915 +vt 0.683674 0.051590 +vt 0.683674 0.143966 +vt 0.653061 0.097778 +vt 0.661264 0.071111 +vt 0.661264 0.124444 +vt 0.714286 0.151111 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.744173 0.034924 +vt 0.000000 0.195556 +vt 0.571429 0.186667 +vt 0.040816 0.111111 +vt 0.061224 -0.000000 +vt 0.081633 -0.000000 +vt -0.000000 0.728889 +vt 0.035714 0.728889 +vt 0.392857 0.728889 +vt 0.142857 0.728889 +vt 0.428571 0.728889 +vt 0.178571 0.728889 +vt 0.464286 0.728889 +vt 0.214286 0.728889 +vt 0.500000 0.728889 +vt 0.250000 0.728889 +vt 0.535714 0.728889 +vt 0.571429 0.728889 +vt 0.285714 0.728889 +vt 0.321429 0.728889 +vt 0.071429 0.728889 +vt 0.357143 0.728889 +vt 0.107143 0.728889 +vt 0.438776 0.911111 +vt 0.474490 0.911111 +vt 0.510204 0.911111 +vt 0.545918 0.911111 +vt 0.010204 0.911111 +vt 0.045918 0.911111 +vt 0.081633 0.911111 +vt 0.117347 0.911111 +vt 0.168367 0.911111 +vt 0.153061 0.911111 +vt 0.188776 0.911111 +vt 0.239796 0.911111 +vt 0.224490 0.911111 +vt 0.260204 0.911111 +vt 0.295918 0.911111 +vt 0.331633 0.911111 +vt 0.367347 0.911111 +vt 0.403061 0.911111 +vt 0.489796 0.911111 +vt 0.482143 1.000000 +vt 0.232143 1.000000 +vt 0.525510 0.911111 +vt 0.517857 1.000000 +vt 0.275510 0.911111 +vt 0.267857 1.000000 +vt 0.025510 0.911111 +vt 0.017857 1.000000 +vt 0.561224 0.911111 +vt 0.553571 1.000000 +vt 0.311224 0.911111 +vt 0.303571 1.000000 +vt 0.061224 0.911111 +vt 0.053571 1.000000 +vt 0.346939 0.911111 +vt 0.339286 1.000000 +vt 0.096939 0.911111 +vt 0.089286 1.000000 +vt 0.382653 0.911111 +vt 0.375000 1.000000 +vt 0.132653 0.911111 +vt 0.125000 1.000000 +vt 0.418367 0.911111 +vt 0.410714 1.000000 +vt 0.160714 1.000000 +vt 0.454082 0.911111 +vt 0.446429 1.000000 +vt 0.204082 0.911111 +vt 0.196429 1.000000 +vt 0.653061 0.186667 +vt 0.678571 0.297778 +vt 0.658163 0.297778 +vt 0.683673 0.186667 +vt 0.709184 0.297778 +vt 0.688776 0.297778 +vt 0.714286 0.186667 +vt 0.739796 0.297778 +vt 0.719388 0.297778 +vt 0.744898 0.186667 +vt 0.770408 0.297778 +vt 0.750000 0.297778 +vt 0.785714 0.297778 +vt 0.775510 0.186667 +vt 0.795918 0.186667 +vt 0.622449 0.186667 +vt 0.647959 0.297778 +vt 0.627551 0.297778 +vt 0.591837 0.186667 +vt 0.617347 0.297778 +vt 0.596939 0.297778 +vt 0.581633 0.297778 +vt 0.591837 0.297778 +vt 0.591837 0.373333 +vt 0.581633 0.373333 +vt 0.602041 0.373333 +vt 0.632653 0.373333 +vt 0.693878 0.373333 +vt 0.673469 0.373333 +vt 0.724490 0.373333 +vt 0.755102 0.373333 +vt 0.775510 0.373333 +vt 0.785714 0.373333 +vt 0.663265 0.373333 +vt 0.658163 0.622222 +vt 0.658163 0.373333 +vt 0.647959 0.622222 +vt 0.647959 0.373333 +vt 0.576531 0.373333 +vt 0.571429 0.373333 +vt 0.607143 0.373333 +vt 0.596939 0.622222 +vt 0.596939 0.373333 +vt 0.586735 0.622222 +vt 0.586735 0.373333 +vt 0.637755 0.622222 +vt 0.637755 0.373333 +vt 0.627551 0.622222 +vt 0.627551 0.373333 +vt 0.581633 0.688889 +vt 0.591837 0.688889 +vt 0.607143 0.622222 +vt 0.602041 0.688889 +vt 0.632653 0.688889 +vt 0.642857 0.688889 +vt 0.653061 0.688889 +vt 0.663265 0.622222 +vt 0.658163 0.684444 +vt 0.612245 0.111111 +vt 0.571429 0.000000 +vt 0.591837 0.000000 +vt 0.571429 0.186667 +vt 0.612245 0.186667 +vt 0.653061 0.186667 +vt 0.040816 0.186667 +vt 0.081633 0.186667 +vt 0.122449 -0.000000 +vt 0.163265 0.000000 +vt 0.122449 0.186667 +vt 0.204082 0.000000 +vt 0.163265 0.186667 +vt 0.244898 -0.000000 +vt 0.204082 0.186667 +vt 0.367347 0.186667 +vt 0.326531 0.186667 +vt 0.367347 0.111111 +vt 0.408163 0.186667 +vt 0.387755 -0.000000 +vt 0.408163 -0.000000 +vt 0.448980 0.000000 +vt 0.489796 -0.000000 +vt 0.448980 0.186667 +vt 0.530612 -0.000000 +vt 0.489796 0.186667 +vt 0.530612 0.186667 +vt 0.948980 0.235556 +vt 0.964286 0.186667 +vt 0.964286 0.235556 +vt 0.918367 0.186667 +vt 0.933673 0.235556 +vt 0.918367 0.235556 +vt 0.887755 0.186667 +vt 0.903061 0.235556 +vt 0.887755 0.235556 +vt 0.903061 0.186667 +vt 0.933673 0.186667 +vt 0.933673 0.262222 +vt 0.948980 0.235556 +vt 0.948980 0.262222 +vt 0.887755 0.262222 +vt 0.903061 0.235556 +vt 0.903061 0.262222 +vt 0.841837 0.262222 +vt 0.857143 0.235556 +vt 0.857143 0.262222 +vt 0.964286 0.235556 +vt 0.964286 0.262222 +vt 0.795918 0.262222 +vt 0.811224 0.235556 +vt 0.811224 0.262222 +vt 0.918367 0.235556 +vt 0.918367 0.262222 +vt 0.872449 0.235556 +vt 0.872449 0.262222 +vt 0.979592 0.235556 +vt 0.979592 0.262222 +vt 0.826531 0.235556 +vt 0.826531 0.262222 +vt 0.933673 0.235556 +vt 0.887755 0.235556 +vt 0.841837 0.235556 +vt 0.948980 0.284444 +vt 0.933673 0.284444 +vt 0.964286 0.284444 +vt 0.979592 0.284444 +vt 0.811224 0.284444 +vt 0.795918 0.284444 +vt 0.826531 0.284444 +vt 0.841837 0.284444 +vt 0.857143 0.284444 +vt 0.872449 0.284444 +vt 0.887755 0.284444 +vt 0.903061 0.284444 +vt 0.918367 0.284444 +vt 0.979592 0.235556 +vt 0.795918 0.186667 +vt 0.811224 0.235556 +vt 0.795918 0.235556 +vt 0.811224 0.186667 +vt 0.826531 0.235556 +vt 0.826531 0.186667 +vt 0.841837 0.235556 +vt 0.841837 0.186667 +vt 0.857143 0.235556 +vt 0.857143 0.186667 +vt 0.872449 0.235556 +vt 0.872449 0.186667 +vt 0.770408 0.617778 +vt 0.755102 0.591111 +vt 0.806122 0.591111 +vt 0.790816 0.617778 +vt 0.775510 0.617778 +vt 0.785714 0.617778 +vt 0.617347 0.688889 +vt 0.653061 0.186667 +vt 0.678571 0.297778 +vt 0.658163 0.297778 +vt 0.683673 0.186667 +vt 0.709184 0.297778 +vt 0.688776 0.297778 +vt 0.714286 0.186667 +vt 0.739796 0.297778 +vt 0.719388 0.297778 +vt 0.744898 0.186667 +vt 0.770408 0.297778 +vt 0.750000 0.297778 +vt 0.785714 0.297778 +vt 0.775510 0.186667 +vt 0.795918 0.186667 +vt 0.622449 0.186667 +vt 0.647959 0.297778 +vt 0.627551 0.297778 +vt 0.591837 0.186667 +vt 0.617347 0.297778 +vt 0.596939 0.297778 +vt 0.581633 0.297778 +vt 0.591837 0.297778 +vt 0.591837 0.373333 +vt 0.581633 0.373333 +vt 0.602041 0.373333 +vt 0.632653 0.373333 +vt 0.693878 0.373333 +vt 0.673469 0.373333 +vt 0.724490 0.373333 +vt 0.755102 0.373333 +vt 0.775510 0.373333 +vt 0.785714 0.373333 +vt 0.760204 0.382222 +vt 0.724490 0.462222 +vt 0.724490 0.382222 +vt 0.760204 0.524444 +vt 0.724490 0.524444 +vt 0.798469 0.524444 +vt 0.785714 0.524444 +vt 0.780612 0.462222 +vt 0.755102 0.555556 +vt 0.806122 0.573333 +vt 0.765306 0.573333 +vt 0.816327 0.462222 +vt 0.811224 0.524444 +vt 0.816327 0.524444 +vt 0.765306 0.524444 +vt 0.760204 0.462222 +vt 0.678571 0.622222 +vt 0.673469 0.688889 +vt 0.688776 0.622222 +vt 0.683673 0.688889 +vt 0.698980 0.622222 +vt 0.693878 0.688889 +vt 0.719388 0.622222 +vt 0.729592 0.622222 +vt 0.724490 0.688889 +vt 0.739796 0.622222 +vt 0.734694 0.688889 +vt 0.750000 0.622222 +vt 0.744898 0.688889 +vt 0.755102 0.622222 +vt 0.750000 0.684444 +vt 0.857143 0.235556 +vt 0.872449 0.186667 +vt 0.872449 0.235556 +vt 0.826531 0.235556 +vt 0.841837 0.186667 +vt 0.841837 0.235556 +vt 0.795918 0.186667 +vt 0.811224 0.235556 +vt 0.795918 0.235556 +vt 0.811224 0.186667 +vt 0.887755 0.235556 +vt 0.887755 0.186667 +vt 0.903061 0.235556 +vt 0.903061 0.186667 +vt 0.918367 0.235556 +vt 0.933673 0.186667 +vt 0.933673 0.235556 +vt 0.948980 0.235556 +vt 0.948980 0.186667 +vt 0.964286 0.235556 +vt 0.964286 0.186667 +vt 0.979592 0.235556 +vt 0.709184 0.688889 +vt 0.704082 0.462222 +vt 0.719388 0.524444 +vt 0.704082 0.524444 +vt 0.285714 0.111111 +vt 0.285714 0.186667 +vt 0.244898 0.186667 +vt 0.265306 0.000000 +vt 0.668367 0.373333 +vt 0.704082 0.373333 +vt 0.816327 0.373333 +vt 0.780612 0.373333 +vt 0.686224 0.524444 +vt 0.698980 0.524444 +vt 0.668367 0.462222 +vt 0.673469 0.524444 +vt 0.668367 0.524444 +vt 0.750000 0.524444 +vt 0.739796 0.524444 +vt 0.729592 0.524444 +vt 0.719388 0.524444 +vt 0.678571 0.524444 +vt 0.668367 0.524444 +vt 0.663265 0.524444 +vt 0.816327 0.524444 +vt 0.755102 0.524444 +vt 0.688776 0.524444 +vt 0.714286 0.968889 +vt 0.785714 0.688889 +vt 0.785714 0.968889 +vt 0.571429 0.968889 +vt 0.642857 0.688889 +vt 0.642857 0.968889 +vt 0.714286 0.968889 +vt 0.785714 0.688889 +vt 0.785714 0.968889 +vt 0.571429 0.968889 +vt 0.642857 0.688889 +vt 0.642857 0.968889 +vt 0.857143 0.688889 +vt 0.857143 0.968889 +vt 0.714286 0.688889 +vt 0.857143 0.688889 +vt 0.857143 0.968889 +vt 0.714286 0.688889 +vt 0.923469 0.764444 +vt 0.943878 0.688889 +vt 0.943878 0.764444 +vt 0.877551 0.688889 +vt 0.877551 0.764444 +vt 0.857143 0.764444 +vt 0.923469 0.764444 +vt 0.943878 0.688889 +vt 0.943878 0.764444 +vt 0.877551 0.688889 +vt 0.877551 0.764444 +vt 0.857143 0.764444 +vt 0.775510 0.297778 +vt 0.571429 0.186667 +vt 0.612245 0.373333 +vt 0.642857 0.373333 +vt 0.704082 0.373333 +vt 0.663265 0.373333 +vt 0.734694 0.373333 +vt 0.765306 0.373333 +vt 0.948980 0.186667 +vt 0.795918 0.235556 +vt 0.979592 0.186667 +vt 0.775510 0.297778 +vt 0.571429 0.186667 +vt 0.612245 0.373333 +vt 0.642857 0.373333 +vt 0.704082 0.373333 +vt 0.663265 0.373333 +vt 0.734694 0.373333 +vt 0.765306 0.373333 +vt 0.816327 0.555556 +vt 0.780612 0.524444 +vt 0.857143 0.186667 +vt 0.826531 0.186667 +vt 0.918367 0.186667 +vt 0.979592 0.186667 +vt 0.755102 0.524444 +vt 0.698980 0.524444 +vt 0.571429 0.688889 +vt 0.571429 0.688889 +vt 0.923469 0.688889 +vt 0.857143 0.688889 +vt 0.923469 0.688889 +vt 0.857143 0.688889 +vn 0.0000 1.0000 0.0000 +vn 0.6965 0.1723 0.6965 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.9397 -0.3420 +vn -0.6965 0.1723 -0.6965 +vn -0.5144 0.0000 -0.8575 +vn -0.5556 0.0000 -0.8315 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 -0.9239 +vn 1.0000 0.0000 -0.0000 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn -1.0000 0.0000 -0.0000 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9013 0.2195 -0.3733 +vn 0.9436 0.3312 -0.0000 +vn 0.9756 0.2195 0.0000 +vn 0.6899 0.2195 -0.6899 +vn 0.8717 0.3312 -0.3611 +vn 0.3733 0.2195 -0.9013 +vn 0.6672 0.3312 -0.6672 +vn -0.0000 0.2195 -0.9756 +vn 0.3611 0.3312 -0.8717 +vn -0.3733 0.2195 -0.9013 +vn -0.0000 0.3312 -0.9436 +vn -0.6899 0.2195 -0.6899 +vn -0.3611 0.3312 -0.8717 +vn -0.9013 0.2195 -0.3733 +vn -0.6672 0.3312 -0.6672 +vn -0.9756 0.2195 -0.0000 +vn -0.8717 0.3312 -0.3611 +vn -0.8717 0.3312 0.3611 +vn -0.9436 0.3312 0.0000 +vn -0.6899 0.2195 0.6899 +vn -0.9013 0.2195 0.3733 +vn -0.3611 0.3312 0.8717 +vn -0.6672 0.3312 0.6672 +vn 0.0000 0.2195 0.9756 +vn -0.3733 0.2195 0.9013 +vn 0.3733 0.2195 0.9013 +vn -0.0000 0.3312 0.9436 +vn 0.6899 0.2195 0.6899 +vn 0.3611 0.3312 0.8717 +vn 0.9013 0.2195 0.3733 +vn 0.6672 0.3312 0.6672 +vn 0.8717 0.3312 0.3611 +vn 0.4937 0.1580 -0.8551 +vn -0.0000 0.1925 -0.9813 +vn 0.4906 0.1925 -0.8498 +vn -0.0000 0.1580 -0.9874 +vn -0.4906 0.1925 -0.8498 +vn -0.4937 0.1580 -0.8551 +vn -0.8498 0.1925 -0.4906 +vn -0.8551 0.1580 -0.4937 +vn -0.9811 0.1926 -0.0186 +vn -0.9568 0.1891 0.2208 +vn -0.9876 0.1569 -0.0007 +vn -0.9549 0.1504 0.2559 +vn 0.8551 0.1580 -0.4937 +vn 0.8498 0.1925 -0.4906 +vn 0.9876 0.1569 -0.0007 +vn 0.9811 0.1926 -0.0186 +vn 0.9568 0.1891 0.2208 +vn 0.9730 0.2306 -0.0011 +vn 0.9412 0.2249 0.2522 +vn 0.8430 0.2290 -0.4867 +vn -0.0000 0.2290 -0.9734 +vn -0.4867 0.2290 -0.8430 +vn -0.8430 0.2290 -0.4867 +vn -0.9730 0.2306 -0.0011 +vn -0.9412 0.2249 0.2522 +vn -0.8658 0.1046 0.4893 +vn -0.8660 0.0000 0.5000 +vn -0.9905 0.1370 -0.0100 +vn 0.8660 0.0000 0.5000 +vn 0.8497 0.1670 -0.5001 +vn 0.8660 0.0000 -0.5000 +vn 0.9905 0.1370 -0.0100 +vn 0.9043 0.0825 0.4189 +vn -0.8497 0.1670 -0.5001 +vn -0.8660 0.0000 -0.5000 +vn -0.3745 0.1870 -0.9082 +vn -0.0746 0.6706 -0.7381 +vn 0.3745 0.1870 -0.9082 +vn -0.7043 0.0895 0.7043 +vn 0.5144 -0.0000 -0.8575 +vn 0.5556 -0.0000 -0.8315 +vn 0.1951 0.0000 -0.9808 +vn -0.1951 0.0000 -0.9808 +vn 0.1951 -0.0000 0.9808 +vn 0.5144 0.0000 0.8575 +vn 0.5556 0.0000 0.8315 +vn 0.8521 0.1789 -0.4919 +vn 0.4919 0.1789 -0.8521 +vn 0.8521 0.1789 0.4919 +vn 0.9839 0.1789 -0.0000 +vn -0.0000 0.1789 0.9839 +vn 0.4919 0.1789 0.8521 +vn 0.5000 0.0000 0.8660 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 0.8660 +vn 0.9285 0.3714 0.0000 +vn 0.8041 0.3714 -0.4642 +vn 0.4642 0.3714 -0.8041 +vn -0.0000 0.3714 -0.9285 +vn -0.4642 0.3714 -0.8041 +vn -0.8041 0.3714 -0.4642 +vn -0.9285 0.3714 0.0000 +vn -0.8041 0.3714 0.4642 +vn -0.4642 0.3714 0.8041 +vn 0.0000 0.3714 0.9285 +vn 0.4642 0.3714 0.8041 +vn 0.8041 0.3714 0.4642 +vn -0.0000 0.1789 -0.9839 +vn -0.4919 0.1789 -0.8521 +vn -0.8521 0.1789 -0.4919 +vn -0.9839 0.1789 0.0000 +vn -0.8521 0.1789 0.4919 +vn -0.4919 0.1789 0.8521 +vn 0.6886 0.4574 -0.5627 +vn 0.2733 0.5153 -0.8122 +vn 0.9846 0.1641 0.0597 +vn -0.6886 0.4574 -0.5627 +vn -0.9846 0.1641 0.0597 +vn -0.2733 0.5153 -0.8122 +vn -0.4937 0.1580 0.8551 +vn 0.0000 0.1925 0.9813 +vn -0.4906 0.1925 0.8498 +vn 0.0000 0.1580 0.9874 +vn 0.4906 0.1925 0.8498 +vn 0.4937 0.1580 0.8551 +vn 0.8498 0.1925 0.4906 +vn 0.8551 0.1580 0.4937 +vn 0.9811 0.1926 0.0186 +vn 0.9568 0.1891 -0.2208 +vn 0.9876 0.1569 0.0007 +vn 0.9549 0.1504 -0.2559 +vn -0.8551 0.1580 0.4937 +vn -0.8498 0.1925 0.4906 +vn -0.9876 0.1569 0.0007 +vn -0.9811 0.1926 0.0186 +vn -0.9568 0.1891 -0.2208 +vn -0.9730 0.2306 0.0011 +vn -0.9412 0.2249 -0.2522 +vn -0.8430 0.2290 0.4867 +vn -0.0000 0.2290 0.9734 +vn 0.4867 0.2290 0.8430 +vn 0.8430 0.2290 0.4867 +vn 0.9730 0.2306 0.0011 +vn 0.9412 0.2249 -0.2522 +vn 0.5098 0.0000 0.8603 +vn -0.4475 0.1436 0.8827 +vn -0.5098 0.0000 0.8603 +vn 0.3856 0.2768 0.8802 +vn -0.3856 0.2768 0.8802 +vn 0.9796 0.2009 -0.0044 +vn 0.8462 0.2260 0.4826 +vn 0.9417 0.1046 0.3198 +vn 0.0000 -0.9802 0.1978 +vn 0.0000 -0.8720 0.4896 +vn 0.9968 0.0762 -0.0244 +vn 0.8471 0.1996 -0.4926 +vn 0.6944 0.1887 -0.6944 +vn 0.4475 0.1436 0.8827 +vn -0.9043 0.0825 -0.4189 +vn -0.9905 0.1370 0.0100 +vn 0.0746 0.6706 0.7381 +vn -0.8497 0.1670 0.5001 +vn -0.3745 0.1870 0.9082 +vn 0.3745 0.1870 0.9082 +vn 0.8497 0.1670 0.5001 +vn 0.9905 0.1370 0.0100 +vn 0.8658 0.1046 -0.4893 +vn 0.7043 0.0895 -0.7043 +vn -0.9417 0.1046 0.3198 +vn -0.8462 0.2260 0.4826 +vn -0.5144 -0.0000 0.8575 +vn -0.1951 0.0000 0.9808 +vn -0.5556 -0.0000 0.8315 +vn -0.9661 0.0000 0.2581 +vn 0.9661 0.0000 0.2581 +vn -0.9796 0.2009 -0.0044 +vn -0.9968 0.0762 -0.0244 +vn -0.8471 0.1996 -0.4926 +vn -0.6944 0.1887 -0.6944 +vn 0.8315 0.0000 0.5556 +vn -0.8315 0.0000 -0.5556 +vn 0.8315 0.0000 -0.5556 +vn -0.8315 0.0000 0.5556 +vn 0.4235 0.0000 0.9059 +vn 0.7673 0.0000 0.6413 +vn -0.4235 0.0000 0.9059 +vn -0.7673 0.0000 0.6413 +vn -0.4235 0.0000 -0.9059 +vn -0.7673 0.0000 -0.6413 +vn 0.4235 0.0000 -0.9059 +vn 0.7673 0.0000 -0.6413 +vn 0.9549 0.1504 0.2559 +vn 0.4867 0.2290 -0.8430 +vn -0.9549 0.1504 -0.2559 +vn -0.4867 0.2290 0.8430 +usemtl Material.001 +s off +f 14/1/1 29/2/1 13/3/1 +f 31/4/1 16/5/1 32/6/1 +f 15/7/1 30/8/1 14/1/1 +f 105/9/2 112/10/2 110/11/2 +f 97/12/1 90/13/1 175/14/1 +f 33/15/1 16/5/1 17/16/1 +f 17/16/1 34/17/1 33/15/1 +f 19/18/1 34/17/1 18/19/1 +f 20/20/1 35/21/1 19/18/1 +f 20/20/1 37/22/1 36/23/1 +f 22/24/1 37/22/1 21/25/1 +f 38/26/1 23/27/1 39/28/1 +f 24/29/1 39/28/1 23/27/1 +f 24/29/1 41/30/1 40/31/1 +f 26/32/1 41/30/1 25/33/1 +f 12/34/1 29/2/1 28/35/1 +f 28/35/1 11/36/1 12/34/1 +f 26/32/1 27/37/1 42/38/1 +f 6/39/3 205/40/3 7/41/3 +f 87/42/3 100/43/3 88/44/3 +f 100/43/3 85/45/3 88/44/3 +f 88/44/3 83/46/3 89/47/3 +f 84/48/3 83/46/3 85/45/3 +f 86/49/3 85/45/3 101/50/3 +f 88/44/3 85/45/3 83/46/3 +f 127/51/3 138/52/3 128/53/3 +f 133/54/3 132/55/3 134/56/3 +f 136/57/3 135/58/3 137/59/3 +f 130/60/3 129/61/3 131/62/3 +f 131/62/3 134/56/3 132/55/3 +f 128/53/3 137/59/3 129/61/3 +f 131/62/3 137/59/3 135/58/3 +f 163/63/3 174/64/3 164/65/3 +f 169/66/3 168/67/3 170/68/3 +f 172/69/3 171/70/3 173/71/3 +f 166/72/3 165/73/3 167/74/3 +f 167/74/3 170/68/3 168/67/3 +f 164/65/3 173/71/3 165/73/3 +f 167/74/3 173/71/3 171/70/3 +f 8/75/3 7/41/3 9/76/3 +f 3/77/3 2/78/3 4/79/3 +f 1/80/3 101/50/3 2/78/3 +f 10/81/3 9/76/3 100/43/3 +f 9/76/3 101/50/3 100/43/3 +f 4/79/3 9/76/3 7/41/3 +f 90/13/4 177/82/4 176/83/4 +f 209/84/5 216/85/5 214/86/5 +f 191/87/3 204/88/3 192/89/3 +f 204/88/3 189/90/3 192/89/3 +f 192/89/3 187/91/3 193/92/3 +f 188/93/3 187/91/3 189/90/3 +f 190/94/3 189/90/3 205/40/3 +f 192/89/3 189/90/3 187/91/3 +f 231/95/3 242/96/3 232/97/3 +f 237/98/3 236/99/3 238/100/3 +f 240/101/3 239/102/3 241/103/3 +f 234/104/3 233/105/3 235/106/3 +f 236/99/3 239/102/3 238/100/3 +f 232/97/3 241/103/3 233/105/3 +f 235/106/3 241/103/3 239/102/3 +f 5/107/3 4/79/3 204/88/3 +f 204/88/3 7/41/3 205/40/3 +f 14/1/1 30/8/1 29/2/1 +f 31/4/1 15/7/1 16/5/1 +f 15/7/1 31/4/1 30/8/1 +f 33/15/1 32/6/1 16/5/1 +f 17/16/1 18/19/1 34/17/1 +f 19/18/1 35/21/1 34/17/1 +f 20/20/1 36/23/1 35/21/1 +f 20/20/1 21/25/1 37/22/1 +f 22/24/1 38/26/1 37/22/1 +f 38/26/1 22/24/1 23/27/1 +f 24/29/1 40/31/1 39/28/1 +f 24/29/1 25/33/1 41/30/1 +f 26/32/1 42/38/1 41/30/1 +f 12/34/1 13/3/1 29/2/1 +f 28/35/1 27/108/1 11/36/1 +f 26/32/1 11/109/1 27/37/1 +f 100/43/3 101/50/3 85/45/3 +f 131/62/3 135/58/3 134/56/3 +f 128/53/3 138/52/3 137/59/3 +f 131/62/3 129/61/3 137/59/3 +f 167/74/3 171/70/3 170/68/3 +f 164/65/3 174/64/3 173/71/3 +f 167/74/3 165/73/3 173/71/3 +f 9/76/3 2/78/3 101/50/3 +f 4/79/3 2/78/3 9/76/3 +f 90/13/4 97/12/4 177/82/4 +f 204/88/3 205/40/3 189/90/3 +f 236/99/3 235/106/3 239/102/3 +f 232/97/3 242/96/3 241/103/3 +f 235/106/3 233/105/3 241/103/3 +f 204/88/3 4/79/3 7/41/3 +s 1 +f 114/110/6 101/111/7 1/112/8 +f 43/113/9 28/35/10 44/114/10 +f 39/28/11 54/115/12 38/26/12 +f 32/6/13 47/116/14 31/4/14 +f 40/31/15 55/117/11 39/28/11 +f 33/15/16 48/118/13 32/6/13 +f 41/30/17 56/119/15 40/31/15 +f 34/17/18 49/120/16 33/15/16 +f 42/38/19 57/121/17 41/30/17 +f 35/21/20 50/122/18 34/17/18 +f 58/123/19 27/37/9 43/124/9 +f 36/23/21 51/125/20 35/21/20 +f 29/2/8 44/114/10 28/35/10 +f 37/22/22 52/126/21 36/23/21 +f 30/8/23 45/127/8 29/2/8 +f 38/26/12 53/128/22 37/22/22 +f 31/4/14 46/129/23 30/8/23 +f 56/119/24 71/130/25 55/117/26 +f 57/121/27 72/131/28 56/119/24 +f 58/123/29 73/132/30 57/121/27 +f 43/124/31 74/133/32 58/123/29 +f 44/114/33 59/134/34 43/113/31 +f 45/127/35 60/135/36 44/114/33 +f 46/129/37 61/136/38 45/127/35 +f 47/116/39 62/137/40 46/129/37 +f 47/116/39 64/138/41 63/139/42 +f 49/120/43 64/140/41 48/118/44 +f 49/120/43 66/141/45 65/142/46 +f 51/125/47 66/143/45 50/122/48 +f 52/126/49 67/144/50 51/125/47 +f 53/128/51 68/145/52 52/126/49 +f 54/115/53 69/146/54 53/128/51 +f 55/117/26 70/147/55 54/115/53 +f 72/131/28 73/148/30 75/149/1 +f 65/142/46 66/141/45 75/150/1 +f 73/132/30 74/151/32 75/152/1 +f 66/143/45 67/153/50 75/154/1 +f 59/134/34 60/155/36 75/156/1 +f 74/133/32 59/157/34 75/158/1 +f 67/144/50 68/159/52 75/160/1 +f 60/135/36 61/161/38 75/162/1 +f 68/145/52 69/163/54 75/164/1 +f 61/136/38 62/165/40 75/166/1 +f 69/146/54 70/167/55 75/168/1 +f 62/137/40 63/169/42 75/170/1 +f 70/147/55 71/171/25 75/172/1 +f 63/139/42 64/138/41 75/173/1 +f 71/130/25 72/174/28 75/175/1 +f 64/140/41 65/176/46 75/177/1 +f 89/178/56 79/179/57 82/180/58 +f 83/181/59 78/182/60 79/183/57 +f 84/184/61 77/185/62 78/186/60 +f 85/187/63 76/188/64 77/189/62 +f 114/190/65 86/191/66 101/192/67 +f 88/193/68 82/194/58 81/195/69 +f 87/196/70 81/197/69 80/198/71 +f 113/199/72 87/196/70 80/200/71 +f 113/199/72 92/201/73 93/202/74 +f 81/197/69 92/203/73 80/198/71 +f 82/194/58 91/204/75 81/195/69 +f 78/182/60 175/205/76 79/183/57 +f 175/206/76 82/180/58 79/179/57 +f 77/185/62 97/207/77 78/186/60 +f 76/188/64 96/208/78 77/189/62 +f 95/209/79 114/190/65 94/210/80 +f 99/211/16 106/212/81 94/213/82 +f 94/213/82 107/214/83 95/215/14 +f 93/216/84 110/11/22 98/217/22 +f 90/218/19 103/219/85 91/220/86 +f 91/220/86 104/221/87 92/222/11 +f 92/222/11 105/9/88 93/216/84 +f 95/215/14 108/223/89 96/224/90 +f 96/224/90 109/225/91 97/226/10 +f 105/9/88 104/221/87 112/227/92 +f 104/221/87 103/219/85 112/228/92 +f 103/219/85 102/229/93 112/230/92 +f 109/225/91 108/223/89 112/231/92 +f 108/223/89 107/214/83 112/232/92 +f 107/214/83 106/212/81 112/233/92 +f 106/212/81 111/234/94 112/235/92 +f 113/236/95 10/237/17 100/238/96 +f 25/239/17 113/236/95 26/240/19 +f 26/240/19 113/236/95 11/241/97 +f 11/36/98 114/110/6 12/242/10 +f 13/243/8 114/110/6 1/112/8 +f 2/244/23 13/243/8 1/112/8 +f 3/245/14 14/246/23 2/244/23 +f 4/247/13 15/248/14 3/245/14 +f 5/249/16 16/250/13 4/247/13 +f 20/251/21 19/252/99 218/253/100 +f 218/253/100 21/254/22 20/251/21 +f 218/253/100 205/255/101 6/256/22 +f 7/257/12 21/254/22 6/256/22 +f 8/258/11 22/259/12 7/257/12 +f 9/260/15 23/261/11 8/258/11 +f 10/237/17 24/262/15 9/260/15 +f 125/263/102 138/264/103 126/265/103 +f 135/266/104 124/267/105 123/268/104 +f 133/269/106 122/270/107 121/271/106 +f 134/272/107 123/268/104 122/270/107 +f 136/273/105 125/263/102 124/267/105 +f 160/274/11 173/275/86 161/276/86 +f 157/277/20 170/278/108 158/279/108 +f 154/280/14 167/281/82 155/282/82 +f 161/276/86 174/283/109 162/284/109 +f 151/285/9 164/286/110 152/287/110 +f 158/279/108 171/288/84 159/289/84 +f 155/282/82 168/290/111 156/291/111 +f 162/284/109 163/292/9 151/293/9 +f 152/287/110 165/294/90 153/295/90 +f 159/289/84 172/296/11 160/274/11 +f 156/291/111 169/297/20 157/277/20 +f 153/295/90 166/298/14 154/280/14 +f 160/274/112 149/299/113 148/300/112 +f 161/276/113 150/301/114 149/299/113 +f 162/284/114 139/302/115 150/301/114 +f 151/285/115 140/303/116 139/304/115 +f 152/287/116 141/305/117 140/303/116 +f 153/295/117 142/306/118 141/305/117 +f 154/280/118 143/307/119 142/306/118 +f 155/282/119 144/308/120 143/307/119 +f 156/291/120 145/309/121 144/308/120 +f 145/309/121 158/279/122 146/310/122 +f 158/279/122 147/311/123 146/310/122 +f 159/289/123 148/300/112 147/311/123 +f 138/264/103 115/312/124 126/265/103 +f 127/313/124 116/314/125 115/315/124 +f 128/316/125 117/317/126 116/314/125 +f 129/318/126 118/319/127 117/317/126 +f 130/320/127 119/321/128 118/319/127 +f 131/322/128 120/323/129 119/321/128 +f 132/324/129 121/271/106 120/323/129 +f 176/83/130 178/325/131 90/326/132 +f 177/82/133 97/327/134 179/328/135 +f 178/329/131 177/82/133 179/330/135 +f 112/331/92 102/229/93 109/225/91 +f 102/229/93 97/226/10 109/225/91 +f 193/332/136 183/333/137 186/334/138 +f 187/335/139 182/336/140 183/337/137 +f 188/338/141 181/339/142 182/340/140 +f 189/341/143 180/342/144 181/343/142 +f 218/344/145 190/345/146 205/346/147 +f 192/347/148 186/348/138 185/349/149 +f 191/350/150 185/351/149 184/352/151 +f 217/353/152 191/350/150 184/354/151 +f 217/353/152 196/355/153 197/356/154 +f 185/351/149 196/357/153 184/352/151 +f 186/348/138 195/358/155 185/349/149 +f 182/336/140 243/359/156 183/337/137 +f 243/360/156 186/334/138 183/333/137 +f 181/339/142 201/361/157 182/340/140 +f 180/342/144 200/362/158 181/343/142 +f 199/363/159 218/344/145 198/364/160 +f 246/365/161 251/366/162 245/367/163 +f 251/366/162 265/368/164 264/369/165 +f 261/370/166 260/371/167 253/372/168 +f 244/373/169 246/374/170 245/375/170 +f 261/370/166 255/376/171 262/377/172 +f 256/378/173 262/377/172 255/376/171 +f 253/372/168 265/379/164 252/380/174 +f 255/376/171 261/370/166 253/372/168 +f 209/84/175 208/381/176 216/382/177 +f 208/381/176 207/383/178 216/384/177 +f 207/383/178 206/385/179 216/386/177 +f 213/387/180 212/388/181 216/389/177 +f 212/388/181 211/390/182 216/391/177 +f 211/390/182 210/392/183 216/393/177 +f 210/392/183 215/394/184 216/395/177 +f 229/396/128 242/397/129 230/398/129 +f 227/399/126 240/400/127 228/401/127 +f 237/402/124 226/403/125 225/404/124 +f 238/405/125 227/399/126 226/403/125 +f 240/400/127 229/396/128 228/401/127 +f 242/397/129 219/406/106 230/398/129 +f 231/407/106 220/408/107 219/406/106 +f 232/409/107 221/410/104 220/408/107 +f 221/410/104 234/411/105 222/412/105 +f 234/411/105 223/413/102 222/412/105 +f 235/414/102 224/415/103 223/413/102 +f 236/416/103 225/417/124 224/415/103 +f 216/418/177 206/385/179 213/387/180 +f 250/419/185 264/420/165 259/421/186 +f 217/422/187 19/252/188 18/423/18 +f 17/424/16 217/422/187 18/423/18 +f 217/422/187 5/249/16 204/425/189 +f 250/419/185 248/426/14 244/427/190 +f 245/367/163 250/419/185 244/427/190 +f 249/428/11 253/372/168 247/429/191 +f 253/372/168 246/365/161 247/429/191 +f 258/430/192 250/419/185 259/431/186 +f 258/430/192 254/432/193 250/419/185 +f 258/430/192 257/433/194 254/432/193 +f 263/434/195 254/432/193 257/433/194 +f 262/435/86 215/394/184 210/392/183 +f 261/436/11 210/392/183 211/390/182 +f 260/437/84 211/390/182 212/388/181 +f 206/385/179 265/438/21 213/387/180 +f 258/439/14 207/383/178 208/381/176 +f 257/440/90 208/381/176 209/84/175 +f 263/441/8 209/84/175 214/86/8 +f 249/442/3 244/373/169 248/443/3 +f 265/438/21 212/388/181 213/387/180 +f 259/444/82 206/385/179 207/383/178 +f 273/445/11 284/446/15 274/447/15 +f 271/448/196 282/449/12 272/450/12 +f 268/451/14 279/452/13 269/453/13 +f 266/454/197 277/455/23 267/456/23 +f 274/447/15 285/457/198 275/458/198 +f 272/450/12 283/459/11 273/445/11 +f 269/453/13 280/460/199 270/461/199 +f 267/456/23 278/462/14 268/451/14 +f 288/463/200 293/464/201 289/465/201 +f 291/466/202 288/463/200 287/467/202 +f 286/468/203 291/466/202 287/467/202 +f 296/469/204 301/470/205 297/471/205 +f 299/472/206 296/469/204 295/473/206 +f 294/474/207 299/472/206 295/473/206 +f 43/113/9 27/108/9 28/35/10 +f 39/28/11 55/117/11 54/115/12 +f 32/6/13 48/118/13 47/116/14 +f 40/31/15 56/119/15 55/117/11 +f 33/15/16 49/120/16 48/118/13 +f 41/30/17 57/121/17 56/119/15 +f 34/17/18 50/122/18 49/120/16 +f 42/38/19 58/123/19 57/121/17 +f 35/21/20 51/125/20 50/122/18 +f 58/123/19 42/38/19 27/37/9 +f 36/23/21 52/126/21 51/125/20 +f 29/2/8 45/127/8 44/114/10 +f 37/22/22 53/128/22 52/126/21 +f 30/8/23 46/129/23 45/127/8 +f 38/26/12 54/115/12 53/128/22 +f 31/4/14 47/116/14 46/129/23 +f 56/119/24 72/174/28 71/130/25 +f 57/121/27 73/148/30 72/131/28 +f 58/123/29 74/151/32 73/132/30 +f 43/124/31 59/157/34 74/133/32 +f 44/114/33 60/155/36 59/134/34 +f 45/127/35 61/161/38 60/135/36 +f 46/129/37 62/165/40 61/136/38 +f 47/116/39 63/169/42 62/137/40 +f 47/116/39 48/118/44 64/138/41 +f 49/120/43 65/176/46 64/140/41 +f 49/120/43 50/122/48 66/141/45 +f 51/125/47 67/153/50 66/143/45 +f 52/126/49 68/159/52 67/144/50 +f 53/128/51 69/163/54 68/145/52 +f 54/115/53 70/167/55 69/146/54 +f 55/117/26 71/171/25 70/147/55 +f 89/178/56 83/181/59 79/179/57 +f 83/181/59 84/184/61 78/182/60 +f 84/184/61 85/187/63 77/185/62 +f 85/187/63 86/191/66 76/188/64 +f 114/190/65 76/475/64 86/191/66 +f 88/193/68 89/178/56 82/194/58 +f 87/196/70 88/193/68 81/197/69 +f 113/199/72 100/476/208 87/196/70 +f 113/199/72 80/200/71 92/201/73 +f 81/197/69 91/477/75 92/203/73 +f 82/194/58 90/478/209 91/204/75 +f 78/182/60 97/479/77 175/205/76 +f 175/206/76 90/480/209 82/180/58 +f 77/185/62 96/481/78 97/207/77 +f 76/188/64 95/482/79 96/208/78 +f 95/209/79 76/475/64 114/190/65 +f 99/211/16 111/234/94 106/212/81 +f 94/213/82 106/212/81 107/214/83 +f 93/216/84 105/9/88 110/11/22 +f 90/218/19 102/229/93 103/219/85 +f 91/220/86 103/219/85 104/221/87 +f 92/222/11 104/221/87 105/9/88 +f 95/215/14 107/214/83 108/223/89 +f 96/224/90 108/223/89 109/225/91 +f 25/239/17 10/237/17 113/236/95 +f 13/243/8 12/242/10 114/110/6 +f 2/244/23 14/246/23 13/243/8 +f 3/245/14 15/248/14 14/246/23 +f 4/247/13 16/250/13 15/248/14 +f 5/249/16 17/424/16 16/250/13 +f 218/253/100 6/256/22 21/254/22 +f 7/257/12 22/259/12 21/254/22 +f 8/258/11 23/261/11 22/259/12 +f 9/260/15 24/262/15 23/261/11 +f 10/237/17 25/239/17 24/262/15 +f 125/263/102 137/483/102 138/264/103 +f 135/266/104 136/273/105 124/267/105 +f 133/269/106 134/272/107 122/270/107 +f 134/272/107 135/266/104 123/268/104 +f 136/273/105 137/483/102 125/263/102 +f 160/274/11 172/296/11 173/275/86 +f 157/277/20 169/297/20 170/278/108 +f 154/280/14 166/298/14 167/281/82 +f 161/276/86 173/275/86 174/283/109 +f 151/285/9 163/484/9 164/286/110 +f 158/279/108 170/278/108 171/288/84 +f 155/282/82 167/281/82 168/290/111 +f 162/284/109 174/283/109 163/292/9 +f 152/287/110 164/286/110 165/294/90 +f 159/289/84 171/288/84 172/296/11 +f 156/291/111 168/290/111 169/297/20 +f 153/295/90 165/294/90 166/298/14 +f 160/274/112 161/276/113 149/299/113 +f 161/276/113 162/284/114 150/301/114 +f 162/284/114 151/293/115 139/302/115 +f 151/285/115 152/287/116 140/303/116 +f 152/287/116 153/295/117 141/305/117 +f 153/295/117 154/280/118 142/306/118 +f 154/280/118 155/282/119 143/307/119 +f 155/282/119 156/291/120 144/308/120 +f 156/291/120 157/277/121 145/309/121 +f 145/309/121 157/277/121 158/279/122 +f 158/279/122 159/289/123 147/311/123 +f 159/289/123 160/274/112 148/300/112 +f 138/264/103 127/485/124 115/312/124 +f 127/313/124 128/316/125 116/314/125 +f 128/316/125 129/318/126 117/317/126 +f 129/318/126 130/320/127 118/319/127 +f 130/320/127 131/322/128 119/321/128 +f 131/322/128 132/324/129 120/323/129 +f 132/324/129 133/269/106 121/271/106 +f 178/329/131 176/83/130 177/82/133 +f 102/229/93 90/218/19 97/226/10 +f 193/332/136 187/335/139 183/333/137 +f 187/335/139 188/338/141 182/336/140 +f 188/338/141 189/341/143 181/339/142 +f 189/341/143 190/345/146 180/342/144 +f 218/344/145 180/486/144 190/345/146 +f 192/347/148 193/332/136 186/348/138 +f 191/350/150 192/347/148 185/351/149 +f 217/353/152 204/487/210 191/350/150 +f 217/353/152 184/354/151 196/355/153 +f 185/351/149 195/488/155 196/357/153 +f 186/348/138 194/489/211 195/358/155 +f 182/336/140 201/490/157 243/359/156 +f 243/360/156 194/491/211 186/334/138 +f 181/339/142 200/492/158 201/361/157 +f 180/342/144 199/493/159 200/362/158 +f 199/363/159 180/486/144 218/344/145 +f 246/365/161 252/380/174 251/366/162 +f 251/366/162 252/380/174 265/368/164 +f 244/373/169 247/494/169 246/374/170 +f 253/372/168 260/495/167 265/379/164 +f 229/396/128 241/496/128 242/397/129 +f 227/399/126 239/497/126 240/400/127 +f 237/402/124 238/405/125 226/403/125 +f 238/405/125 239/497/126 227/399/126 +f 240/400/127 241/496/128 229/396/128 +f 242/397/129 231/407/106 219/406/106 +f 231/407/106 232/409/107 220/408/107 +f 232/409/107 233/498/104 221/410/104 +f 221/410/104 233/498/104 234/411/105 +f 234/411/105 235/414/102 223/413/102 +f 235/414/102 236/416/103 224/415/103 +f 236/416/103 237/499/124 225/417/124 +f 250/419/185 251/366/162 264/420/165 +f 17/424/16 5/249/16 217/422/187 +f 250/419/185 254/432/193 248/426/14 +f 245/367/163 251/366/162 250/419/185 +f 249/428/11 255/376/171 253/372/168 +f 253/372/168 252/380/174 246/365/161 +f 262/435/86 256/500/17 215/394/184 +f 261/436/11 262/435/86 210/392/183 +f 260/437/84 261/436/11 211/390/182 +f 206/385/179 264/501/18 265/438/21 +f 258/439/14 259/444/82 207/383/178 +f 257/440/90 258/439/14 208/381/176 +f 263/441/8 257/440/90 209/84/175 +f 249/442/3 247/494/169 244/373/169 +f 265/438/21 260/437/84 212/388/181 +f 259/444/82 264/501/18 206/385/179 +f 273/445/11 283/459/11 284/446/15 +f 271/448/196 281/502/196 282/449/12 +f 268/451/14 278/462/14 279/452/13 +f 266/454/197 276/503/197 277/455/23 +f 274/447/15 284/446/15 285/457/198 +f 272/450/12 282/449/12 283/459/11 +f 269/453/13 279/452/13 280/460/199 +f 267/456/23 277/455/23 278/462/14 +f 288/463/200 292/504/200 293/464/201 +f 291/466/202 292/504/200 288/463/200 +f 286/468/203 290/505/203 291/466/202 +f 296/469/204 300/506/204 301/470/205 +f 299/472/206 300/506/204 296/469/204 +f 294/474/207 298/507/207 299/472/206 +l 197 202 +l 203 198 diff --git a/src/main/resources/assets/hbm/models/missile_huge.obj b/src/main/resources/assets/hbm/models/missile_huge.obj new file mode 100644 index 000000000..a3b5f2934 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_huge.obj @@ -0,0 +1,1581 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_huge.blend' +# www.blender.org +o Circle +v 1.154849 0.500000 -0.478354 +v 1.250000 0.500000 0.000000 +v 1.154849 0.500000 0.478354 +v 0.883883 0.500000 0.883884 +v 0.478354 0.500000 1.154850 +v -0.000000 0.500000 1.250000 +v -0.478354 0.500000 1.154850 +v -0.883883 0.500000 0.883883 +v -1.154849 0.500000 0.478354 +v -1.250000 0.500000 0.000000 +v -1.154849 0.500000 -0.478354 +v -0.883883 0.500000 -0.883883 +v -0.478354 0.500000 -1.154850 +v 0.000000 0.500000 -1.250000 +v 0.000000 9.500000 -1.000000 +v -0.382683 9.500000 -0.923880 +v -0.707107 9.500000 -0.707107 +v -0.923880 9.500000 -0.382683 +v -1.000000 9.500000 0.000000 +v -0.923880 9.500000 0.382684 +v -0.707107 9.500000 0.707107 +v -0.382683 9.500000 0.923880 +v -0.000000 9.500000 1.000000 +v 0.382683 9.500000 0.923880 +v 0.707107 9.500000 0.707107 +v 0.923880 9.500000 0.382684 +v 1.000000 9.500000 0.000000 +v 0.923879 9.500000 -0.382684 +v 0.707107 9.500000 -0.707107 +v 0.382683 9.500000 -0.923880 +v -0.000000 11.000000 -0.875000 +v -0.334848 11.000000 -0.808394 +v -0.618718 11.000000 -0.618719 +v -0.808395 11.000000 -0.334848 +v -0.875000 11.000000 0.000000 +v -0.808395 11.000000 0.334848 +v -0.618718 11.000000 0.618719 +v -0.334848 11.000000 0.808394 +v -0.000000 11.000000 0.875000 +v 0.334848 11.000000 0.808394 +v 0.618718 11.000000 0.618719 +v 0.808395 11.000000 0.334848 +v 0.875000 11.000000 0.000000 +v 0.808394 11.000000 -0.334848 +v 0.618718 11.000000 -0.618719 +v 0.334848 11.000000 -0.808395 +v 0.000000 13.499999 0.000000 +v 0.095671 0.500000 -0.855970 +v 0.176777 0.500000 -0.801777 +v 0.230970 0.500000 -0.720671 +v 0.250000 0.500000 -0.625000 +v 0.230970 0.500000 -0.529329 +v 0.176777 0.500000 -0.448223 +v 0.095671 0.500000 -0.394030 +v -0.000000 0.500000 -0.375000 +v -0.095671 0.500000 -0.394030 +v -0.176777 0.500000 -0.448223 +v -0.230970 0.500000 -0.529329 +v -0.250000 0.500000 -0.625000 +v -0.230970 0.500000 -0.720671 +v -0.176777 0.500000 -0.801777 +v -0.095671 0.500000 -0.855970 +v -0.000000 0.500000 -0.875000 +v 0.143506 0.250000 -0.971455 +v 0.265165 0.250000 -0.890165 +v 0.346455 0.250000 -0.768507 +v 0.375000 0.250000 -0.625000 +v 0.346455 0.250000 -0.481493 +v 0.265165 0.250000 -0.359835 +v 0.143506 0.250000 -0.278545 +v -0.000000 0.250000 -0.250000 +v -0.143506 0.250000 -0.278545 +v -0.265165 0.250000 -0.359835 +v -0.346455 0.250000 -0.481494 +v -0.375000 0.250000 -0.625000 +v -0.346455 0.250000 -0.768506 +v -0.265165 0.250000 -0.890165 +v -0.000000 0.250000 -1.000000 +v -0.143506 0.250000 -0.971455 +v 0.143506 0.000000 -0.971455 +v 0.265165 0.000000 -0.890165 +v 0.346455 0.000000 -0.768507 +v 0.375000 0.000000 -0.625000 +v 0.346455 0.000000 -0.481493 +v 0.265165 0.000000 -0.359835 +v 0.143506 0.000000 -0.278545 +v -0.000000 0.000000 -0.250000 +v -0.143506 0.000000 -0.278545 +v -0.265165 0.000000 -0.359835 +v -0.346455 0.000000 -0.481494 +v -0.375000 0.000000 -0.625000 +v -0.346455 0.000000 -0.768506 +v -0.265165 0.000000 -0.890165 +v -0.143506 0.000000 -0.971455 +v -0.000000 0.000000 -1.000000 +v 0.000000 5.250000 -1.250000 +v -0.478354 5.250000 -1.154850 +v -0.883883 5.250000 -0.883883 +v -1.154849 5.250000 -0.478354 +v -1.250000 5.250000 0.000000 +v -1.154849 5.250000 0.478354 +v -0.883883 5.250000 0.883883 +v -0.478354 5.250000 1.154850 +v -0.000000 5.250000 1.250000 +v 0.478354 5.250000 1.154850 +v 0.883883 5.250000 0.883884 +v 1.154849 5.250000 0.478354 +v 1.250000 5.250000 0.000000 +v 1.154849 5.250000 -0.478354 +v 0.883883 5.250000 -0.883884 +v 0.478354 5.250000 -1.154850 +v 0.883883 0.500000 -0.883884 +v 0.478354 0.500000 -1.154850 +v 0.000000 6.250000 -1.000000 +v -0.382683 6.250000 -0.923880 +v -0.707107 6.250000 -0.707107 +v -0.923880 6.250000 -0.382683 +v -1.000000 6.250000 0.000000 +v -0.923880 6.250000 0.382684 +v -0.707107 6.250000 0.707107 +v -0.382683 6.250000 0.923880 +v -0.000000 6.250000 1.000000 +v 0.382683 6.250000 0.923880 +v 0.707107 6.250000 0.707107 +v 0.923880 6.250000 0.382684 +v 1.000000 6.250000 0.000000 +v 0.923879 6.250000 -0.382684 +v 0.707107 6.250000 -0.707107 +v 0.382683 6.250000 -0.923880 +v 0.000000 6.500000 -1.000000 +v -0.382683 6.500000 -0.923880 +v -0.707107 6.500000 -0.707107 +v -0.923880 6.500000 -0.382683 +v -1.000000 6.500000 0.000000 +v -0.923880 6.500000 0.382684 +v -0.707107 6.500000 0.707107 +v -0.382683 6.500000 0.923880 +v -0.000000 6.500000 1.000000 +v 0.382683 6.500000 0.923880 +v 0.707107 6.500000 0.707107 +v 0.923880 6.500000 0.382684 +v 1.000000 6.500000 0.000000 +v 0.923879 6.500000 -0.382684 +v 0.707107 6.500000 -0.707107 +v 0.382683 6.500000 -0.923880 +v -0.000000 6.500000 -0.875000 +v -0.334848 6.500000 -0.808394 +v -0.618718 6.500000 -0.618719 +v -0.808395 6.500000 -0.334848 +v -0.875000 6.500000 0.000000 +v -0.808395 6.500000 0.334848 +v -0.618718 6.500000 0.618719 +v -0.334848 6.500000 0.808394 +v -0.000000 6.500000 0.875000 +v 0.334848 6.500000 0.808394 +v 0.618718 6.500000 0.618719 +v 0.808395 6.500000 0.334848 +v 0.875000 6.500000 0.000000 +v 0.808394 6.500000 -0.334848 +v 0.618718 6.500000 -0.618719 +v 0.334848 6.500000 -0.808395 +v -0.000000 6.250000 -0.875000 +v -0.334848 6.250000 -0.808394 +v -0.618718 6.250000 -0.618719 +v -0.808395 6.250000 -0.334848 +v -0.875000 6.250000 0.000000 +v -0.808395 6.250000 0.334848 +v -0.618718 6.250000 0.618719 +v -0.334848 6.250000 0.808394 +v -0.000000 6.250000 0.875000 +v 0.334848 6.250000 0.808394 +v 0.618718 6.250000 0.618719 +v 0.808395 6.250000 0.334848 +v 0.875000 6.250000 0.000000 +v 0.808394 6.250000 -0.334848 +v 0.618718 6.250000 -0.618719 +v 0.334848 6.250000 -0.808395 +v 1.010000 7.313000 -0.010000 +v 0.933879 7.313000 -0.392684 +v 0.717107 7.313000 -0.717107 +v 0.392683 7.313000 -0.933880 +v 0.392683 8.500000 -0.933880 +v 0.717107 8.500000 -0.717107 +v 0.933879 8.500000 -0.392684 +v 1.010000 8.500000 -0.010000 +v 0.839689 3.375000 -0.751301 +v 0.751301 3.375000 -0.839689 +v 1.502602 0.375000 -1.502602 +v 0.839689 0.375000 -0.751301 +v 0.751301 0.375000 -0.839689 +v 1.502602 1.375000 -1.502602 +v 0.095671 0.500000 0.394030 +v 0.176777 0.500000 0.448223 +v 0.230970 0.500000 0.529329 +v 0.250000 0.500000 0.625000 +v 0.230970 0.500000 0.720671 +v 0.176777 0.500000 0.801777 +v 0.095671 0.500000 0.855970 +v -0.000000 0.500000 0.875000 +v -0.095671 0.500000 0.855970 +v -0.176777 0.500000 0.801777 +v -0.230970 0.500000 0.720671 +v -0.250000 0.500000 0.625000 +v -0.230970 0.500000 0.529329 +v -0.176777 0.500000 0.448223 +v -0.095671 0.500000 0.394030 +v -0.000000 0.500000 0.375000 +v 0.143506 0.250000 0.278545 +v 0.265165 0.250000 0.359835 +v 0.346455 0.250000 0.481493 +v 0.375000 0.250000 0.625000 +v 0.346455 0.250000 0.768507 +v 0.265165 0.250000 0.890165 +v 0.143506 0.250000 0.971455 +v -0.000000 0.250000 1.000000 +v -0.143506 0.250000 0.971455 +v -0.265165 0.250000 0.890165 +v -0.346455 0.250000 0.768506 +v -0.375000 0.250000 0.625000 +v -0.346455 0.250000 0.481494 +v -0.265165 0.250000 0.359835 +v -0.000000 0.250000 0.250000 +v -0.143506 0.250000 0.278545 +v 0.143506 0.000000 0.278545 +v 0.265165 0.000000 0.359835 +v 0.346455 0.000000 0.481493 +v 0.375000 0.000000 0.625000 +v 0.346455 0.000000 0.768507 +v 0.265165 0.000000 0.890165 +v 0.143506 0.000000 0.971455 +v -0.000000 0.000000 1.000000 +v -0.143506 0.000000 0.971455 +v -0.265165 0.000000 0.890165 +v -0.346455 0.000000 0.768506 +v -0.375000 0.000000 0.625000 +v -0.346455 0.000000 0.481494 +v -0.265165 0.000000 0.359835 +v -0.143506 0.000000 0.278545 +v -0.000000 0.000000 0.250000 +v 0.720671 0.500000 -0.230970 +v 0.801777 0.500000 -0.176777 +v 0.855970 0.500000 -0.095671 +v 0.875000 0.500000 0.000000 +v 0.855970 0.500000 0.095671 +v 0.801777 0.500000 0.176777 +v 0.720671 0.500000 0.230970 +v 0.625000 0.500000 0.250000 +v 0.529329 0.500000 0.230970 +v 0.448223 0.500000 0.176777 +v 0.394030 0.500000 0.095671 +v 0.375000 0.500000 0.000000 +v 0.394030 0.500000 -0.095671 +v 0.448223 0.500000 -0.176777 +v 0.529329 0.500000 -0.230970 +v 0.625000 0.500000 -0.250000 +v 0.768506 0.250000 -0.346455 +v 0.890165 0.250000 -0.265165 +v 0.971455 0.250000 -0.143507 +v 1.000000 0.250000 0.000000 +v 0.971455 0.250000 0.143507 +v 0.890165 0.250000 0.265165 +v 0.768506 0.250000 0.346455 +v 0.625000 0.250000 0.375000 +v 0.481494 0.250000 0.346455 +v 0.359835 0.250000 0.265165 +v 0.278545 0.250000 0.143506 +v 0.250000 0.250000 0.000000 +v 0.278545 0.250000 -0.143506 +v 0.359835 0.250000 -0.265165 +v 0.625000 0.250000 -0.375000 +v 0.481494 0.250000 -0.346455 +v 0.768506 0.000000 -0.346455 +v 0.890165 0.000000 -0.265165 +v 0.971455 0.000000 -0.143507 +v 1.000000 0.000000 0.000000 +v 0.971455 0.000000 0.143507 +v 0.890165 0.000000 0.265165 +v 0.768506 0.000000 0.346455 +v 0.625000 0.000000 0.375000 +v 0.481494 0.000000 0.346455 +v 0.359835 0.000000 0.265165 +v 0.278545 0.000000 0.143506 +v 0.250000 0.000000 0.000000 +v 0.278545 0.000000 -0.143506 +v 0.359835 0.000000 -0.265165 +v 0.481494 0.000000 -0.346455 +v 0.625000 0.000000 -0.375000 +v -0.529329 0.500000 -0.230970 +v -0.448223 0.500000 -0.176777 +v -0.394030 0.500000 -0.095671 +v -0.375000 0.500000 0.000000 +v -0.394030 0.500000 0.095671 +v -0.448223 0.500000 0.176777 +v -0.529329 0.500000 0.230970 +v -0.625000 0.500000 0.250000 +v -0.720671 0.500000 0.230970 +v -0.801777 0.500000 0.176777 +v -0.855970 0.500000 0.095671 +v -0.875000 0.500000 0.000000 +v -0.855970 0.500000 -0.095671 +v -0.801777 0.500000 -0.176777 +v -0.720671 0.500000 -0.230970 +v -0.625000 0.500000 -0.250000 +v -0.481494 0.250000 -0.346455 +v -0.359835 0.250000 -0.265165 +v -0.278545 0.250000 -0.143507 +v -0.250000 0.250000 0.000000 +v -0.278545 0.250000 0.143507 +v -0.359835 0.250000 0.265165 +v -0.481494 0.250000 0.346455 +v -0.625000 0.250000 0.375000 +v -0.768506 0.250000 0.346455 +v -0.890165 0.250000 0.265165 +v -0.971455 0.250000 0.143506 +v -1.000000 0.250000 0.000000 +v -0.971455 0.250000 -0.143506 +v -0.890165 0.250000 -0.265165 +v -0.625000 0.250000 -0.375000 +v -0.768506 0.250000 -0.346455 +v -0.481494 0.000000 -0.346455 +v -0.359835 0.000000 -0.265165 +v -0.278545 0.000000 -0.143507 +v -0.250000 0.000000 0.000000 +v -0.278545 0.000000 0.143507 +v -0.359835 0.000000 0.265165 +v -0.481494 0.000000 0.346455 +v -0.625000 0.000000 0.375000 +v -0.768506 0.000000 0.346455 +v -0.890165 0.000000 0.265165 +v -0.971455 0.000000 0.143506 +v -1.000000 0.000000 0.000000 +v -0.971455 0.000000 -0.143506 +v -0.890165 0.000000 -0.265165 +v -0.768506 0.000000 -0.346455 +v -0.625000 0.000000 -0.375000 +v -0.839689 3.375000 0.751301 +v -0.751301 3.375000 0.839689 +v -1.502602 0.375000 1.502602 +v -0.839689 0.375000 0.751301 +v -0.751301 0.375000 0.839689 +v -1.502602 1.375000 1.502602 +v -0.751301 3.375000 -0.839689 +v -0.839689 3.375000 -0.751301 +v -1.502602 0.375000 -1.502602 +v -0.751301 0.375000 -0.839689 +v -0.839689 0.375000 -0.751301 +v -1.502602 1.375000 -1.502602 +v 0.751301 3.375000 0.839689 +v 0.839689 3.375000 0.751301 +v 1.502602 0.375000 1.502601 +v 0.751301 0.375000 0.839689 +v 0.839689 0.375000 0.751301 +v 1.502602 1.375000 1.502601 +v -1.010000 7.313000 0.010000 +v -0.933879 7.313000 0.392684 +v -0.717106 7.313000 0.717107 +v -0.392683 7.313000 0.933880 +v -0.392683 8.500000 0.933880 +v -0.717106 8.500000 0.717107 +v -0.933879 8.500000 0.392684 +v -1.010000 8.500000 0.010000 +vt 0.291667 0.471698 +vt 0.250000 0.462264 +vt 0.291667 0.462264 +vt 0.583333 0.471698 +vt 0.625000 0.462264 +vt 0.625000 0.471698 +vt 0.208333 0.471698 +vt 0.250000 0.471698 +vt 0.541667 0.471698 +vt 0.583333 0.462264 +vt 0.166667 0.462264 +vt 0.208333 0.462264 +vt 0.500000 0.471698 +vt 0.458333 0.462264 +vt 0.500000 0.462264 +vt 0.541667 0.462264 +vt 0.125000 0.471698 +vt 0.166667 0.471698 +vt 0.416667 0.471698 +vt 0.458333 0.471698 +vt 0.083333 0.471698 +vt 0.125000 0.462264 +vt 0.375000 0.462264 +vt 0.416667 0.462264 +vt 0.041667 0.471698 +vt 0.083333 0.462264 +vt 0.375000 0.471698 +vt 0.333333 0.462264 +vt -0.000000 0.471698 +vt 0.041667 0.462264 +vt 0.333333 0.471698 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.666667 0.462264 +vt 0.666667 0.471698 +vt 0.333333 0.433962 +vt 0.291667 0.443396 +vt 0.291667 0.433962 +vt 0.375000 0.433962 +vt 0.333333 0.443396 +vt 0.416667 0.433962 +vt 0.375000 0.443396 +vt 0.458333 0.433962 +vt 0.416667 0.443396 +vt 0.500000 0.433962 +vt 0.458333 0.443396 +vt 0.541667 0.433962 +vt 0.500000 0.443396 +vt 0.583333 0.443396 +vt 0.541667 0.443396 +vt 0.583333 0.433962 +vt 0.625000 0.443396 +vt 0.625000 0.433962 +vt 0.666667 0.443396 +vt 0.000000 0.433962 +vt 0.041667 0.443396 +vt 0.000000 0.443396 +vt 0.041667 0.433962 +vt 0.083333 0.443396 +vt 0.125000 0.433962 +vt 0.083333 0.433962 +vt 0.166667 0.443396 +vt 0.125000 0.443396 +vt 0.208333 0.433962 +vt 0.166667 0.433962 +vt 0.250000 0.433962 +vt 0.208333 0.443396 +vt 0.250000 0.443396 +vt 0.903652 0.461671 +vt 0.903652 0.594933 +vt 0.707459 0.594933 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.000000 0.462264 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.666667 0.433962 +vt 0.933724 0.492241 +vt 0.944284 0.528302 +vt 0.933724 0.564363 +vt 0.858645 0.615360 +vt 0.805556 0.622533 +vt 0.752466 0.615360 +vt 0.677387 0.564362 +vt 0.666827 0.528302 +vt 0.677387 0.492241 +vt 0.707459 0.461671 +vt 0.752466 0.441244 +vt 0.805556 0.434071 +vt 0.858645 0.441244 +vt 0.888889 0.231132 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt -0.000000 0.358491 +vt 0.055556 0.000000 +vt 0.055556 0.358491 +vt 0.583333 0.698113 +vt 0.541667 0.811321 +vt 0.541667 0.698113 +vt 0.250000 0.698113 +vt 0.208333 0.811321 +vt 0.208333 0.698113 +vt 0.625000 0.698113 +vt 0.583333 0.811321 +vt 0.291667 0.698113 +vt 0.250000 0.811321 +vt 0.666667 0.698113 +vt 0.625000 0.811321 +vt 0.326389 0.811321 +vt 0.291667 0.811321 +vt 0.041667 0.698113 +vt 0.000000 0.811321 +vt -0.000000 0.698113 +vt 0.375000 0.698113 +vt 0.333333 0.811321 +vt 0.333333 0.698113 +vt 0.083333 0.698113 +vt 0.041667 0.811321 +vt 0.416667 0.698113 +vt 0.375000 0.811321 +vt 0.125000 0.698113 +vt 0.083333 0.811321 +vt 0.458333 0.698113 +vt 0.416667 0.811321 +vt 0.166667 0.698113 +vt 0.125000 0.811321 +vt 0.500000 0.811321 +vt 0.500000 0.698113 +vt 0.458333 0.811321 +vt 0.166667 0.811321 +vt 0.388889 0.358491 +vt 0.444444 0.000000 +vt 0.444444 0.358491 +vt 0.576389 0.811321 +vt 0.562500 1.000000 +vt 0.618056 0.811321 +vt 0.604167 1.000000 +vt 0.659722 0.811321 +vt 0.645833 1.000000 +vt 0.034722 0.811321 +vt 0.020833 1.000000 +vt 0.076389 0.811321 +vt 0.062500 1.000000 +vt 0.118056 0.811321 +vt 0.104167 1.000000 +vt 0.159722 0.811321 +vt 0.145833 1.000000 +vt 0.194444 0.811321 +vt 0.187500 1.000000 +vt 0.243056 0.811321 +vt 0.229167 1.000000 +vt 0.284722 0.811321 +vt 0.270833 1.000000 +vt 0.312500 1.000000 +vt 0.368056 0.811321 +vt 0.354167 1.000000 +vt 0.409722 0.811321 +vt 0.395833 1.000000 +vt 0.451389 0.811321 +vt 0.437500 1.000000 +vt 0.493056 0.811321 +vt 0.479167 1.000000 +vt 0.534722 0.811321 +vt 0.520833 1.000000 +vt 0.833333 0.358491 +vt 0.888889 0.000000 +vt 0.888889 0.358491 +vt 0.333333 0.358491 +vt 0.388889 -0.000000 +vt 0.777778 0.358491 +vt 0.833333 0.000000 +vt 0.277778 0.358491 +vt 0.333333 -0.000000 +vt 0.722222 0.358491 +vt 0.777778 0.000000 +vt 0.222222 0.358491 +vt 0.277778 0.000000 +vt 0.611111 0.358491 +vt 0.666667 0.000000 +vt 0.666667 0.358491 +vt 0.729167 0.000000 +vt 0.166667 0.358491 +vt 0.222222 -0.000000 +vt 0.555556 0.358491 +vt 0.611111 0.000000 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.660377 +vt 0.819444 0.641509 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.555556 0.433962 +vt 0.611111 0.433962 +vt 0.500000 0.000000 +vt 0.500000 0.358491 +vt 0.166667 0.433962 +vt 0.111111 0.358491 +vt 0.500000 0.433962 +vt 0.055556 0.433962 +vt 0.111111 0.433962 +vt 0.444444 0.433962 +vt 0.833333 0.433962 +vt 0.888889 0.433962 +vt 0.333333 0.433962 +vt 0.388889 0.433962 +vt 0.777778 0.433962 +vt 0.722222 0.433962 +vt 0.222222 0.433962 +vt 0.277778 0.433962 +vt 0.666667 0.433962 +vt 0.166667 -0.000000 +vt 0.555556 -0.000000 +vt 0.111111 -0.000000 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.641509 +vt 0.777778 0.660377 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.641509 +vt 0.750000 0.660377 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.000000 0.000000 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.6325 0.4472 -0.6325 +vn 0.7498 0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn -0.6325 0.4472 0.6325 +vn -0.7498 0.0000 -0.6616 +vn 0.6616 0.0000 0.7498 +vn -0.6325 0.4472 -0.6325 +vn 0.6616 0.0000 -0.7498 +vn -0.7498 0.0000 0.6616 +vn 0.6325 0.4472 0.6325 +vn -0.6616 0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn -1.0000 0.0000 -0.0000 +vn -0.9239 0.0000 0.3827 +vn -0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 -0.9207 +vn 0.7047 0.0830 0.7047 +vn 0.3814 0.0830 0.9207 +vn -0.9207 0.0830 -0.3814 +vn 0.9207 0.0830 0.3814 +vn -0.9965 0.0830 -0.0000 +vn 0.9965 0.0830 0.0000 +vn -0.9207 0.0830 0.3814 +vn 0.9207 0.0830 -0.3814 +vn -0.7047 0.0830 0.7047 +vn 0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 0.9207 +vn 0.3814 0.0830 -0.9207 +vn -0.0000 0.0830 0.9965 +vn -0.0000 0.0830 -0.9965 +vn 0.9239 0.0000 0.3827 +vn 1.0000 0.0000 -0.0000 +vn -0.3612 0.3304 -0.8720 +vn -0.6674 0.3304 -0.6674 +vn -0.8720 0.3304 -0.3612 +vn -0.9439 0.3304 0.0000 +vn -0.8720 0.3304 0.3612 +vn -0.6674 0.3304 0.6674 +vn -0.3612 0.3304 0.8720 +vn 0.0000 0.3304 0.9439 +vn 0.3612 0.3304 0.8720 +vn 0.6674 0.3304 0.6674 +vn 0.8720 0.3304 0.3612 +vn 0.9439 0.3304 0.0000 +vn 0.8720 0.3304 -0.3612 +vn 0.6674 0.3304 -0.6674 +vn 0.3612 0.3304 -0.8720 +vn -0.0000 0.3304 -0.9439 +vn -0.9239 0.0000 -0.3827 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.8263 0.4472 0.3423 +vn 0.3423 0.4472 0.8263 +vn -0.0000 0.4472 0.8944 +vn -0.3423 0.4472 0.8263 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.3423 0.4472 -0.8263 +vn -0.0000 0.4472 -0.8944 +vn 0.3423 0.4472 -0.8263 +vn 0.8263 0.4472 -0.3423 +vn 0.8944 0.4472 -0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.9239 0.0000 -0.3827 +vn 0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 -0.8963 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn 0.8963 0.2425 -0.3713 +vn -0.8963 0.2425 0.3713 +vn 0.9701 0.2425 -0.0000 +vn -0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn -0.8963 0.2425 -0.3713 +vn 0.6860 0.2425 0.6860 +vn -0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 0.8963 +vn -0.3713 0.2425 -0.8963 +vn 0.0000 0.2425 0.9701 +vn 0.0000 0.2425 -0.9701 +vn 0.5556 0.0000 -0.8315 +vn 0.9808 0.0000 -0.1951 +vn -0.5556 0.0000 0.8315 +vn -0.9808 0.0000 0.1951 +s off +f 141/1/1 156/2/1 157/3/1 +f 132/4/1 149/5/1 133/6/1 +f 139/7/1 156/2/1 140/8/1 +f 131/9/1 148/10/1 132/4/1 +f 139/7/1 154/11/1 155/12/1 +f 130/13/1 161/14/1 146/15/1 +f 131/9/1 146/15/1 147/16/1 +f 137/17/1 154/11/1 138/18/1 +f 144/19/1 161/14/1 145/20/1 +f 136/21/1 153/22/1 137/17/1 +f 144/19/1 159/23/1 160/24/1 +f 135/25/1 152/26/1 136/21/1 +f 143/27/1 158/28/1 159/23/1 +f 134/29/1 151/30/1 135/25/1 +f 142/31/1 157/3/1 158/28/1 +f 85/32/1 89/33/1 93/34/1 +f 133/6/1 150/35/1 134/36/1 +f 126/37/2 173/38/2 125/39/2 +f 127/40/2 174/41/2 126/37/2 +f 128/42/2 175/43/2 127/40/2 +f 129/44/2 176/45/2 128/42/2 +f 114/46/2 177/47/2 129/44/2 +f 115/48/2 162/49/2 114/46/2 +f 115/48/2 164/50/2 163/51/2 +f 116/52/2 165/53/2 164/50/2 +f 117/54/2 166/55/2 165/53/2 +f 118/56/2 167/57/2 166/58/2 +f 119/59/2 168/60/2 167/57/2 +f 121/61/2 168/60/2 120/62/2 +f 121/61/2 170/63/2 169/64/2 +f 123/65/2 170/63/2 122/66/2 +f 124/67/2 171/68/2 123/65/2 +f 125/39/2 172/69/2 124/67/2 +f 12/70/1 112/71/1 4/72/1 +f 188/73/1 189/74/1 190/75/1 +f 186/76/3 191/77/3 187/78/3 +f 189/74/4 191/79/4 186/76/4 +f 190/80/5 191/79/5 188/73/5 +f 229/81/1 233/82/1 237/83/1 +f 277/84/1 281/85/1 285/86/1 +f 325/87/1 329/88/1 333/89/1 +f 338/90/1 339/91/1 340/92/1 +f 336/93/6 341/94/6 337/95/6 +f 339/91/7 341/96/7 336/93/7 +f 340/97/8 341/96/8 338/90/8 +f 344/98/1 345/99/1 346/100/1 +f 342/101/9 347/102/9 343/103/9 +f 345/99/10 347/104/10 342/101/10 +f 346/105/11 347/104/11 344/98/11 +f 350/106/1 351/107/1 352/108/1 +f 348/109/12 353/110/12 349/111/12 +f 351/107/13 353/112/13 348/109/13 +f 352/113/14 353/112/14 350/106/14 +f 141/1/1 140/8/1 156/2/1 +f 132/4/1 148/10/1 149/5/1 +f 139/7/1 155/12/1 156/2/1 +f 131/9/1 147/16/1 148/10/1 +f 139/7/1 138/18/1 154/11/1 +f 130/13/1 145/20/1 161/14/1 +f 131/9/1 130/13/1 146/15/1 +f 137/17/1 153/22/1 154/11/1 +f 144/19/1 160/24/1 161/14/1 +f 136/21/1 152/26/1 153/22/1 +f 144/19/1 143/27/1 159/23/1 +f 135/25/1 151/30/1 152/26/1 +f 143/27/1 142/31/1 158/28/1 +f 134/29/1 150/114/1 151/30/1 +f 142/31/1 141/1/1 157/3/1 +f 93/34/1 94/115/1 81/116/1 +f 94/115/1 95/117/1 81/116/1 +f 95/117/1 80/118/1 81/116/1 +f 81/116/1 82/119/1 83/120/1 +f 83/120/1 84/121/1 85/32/1 +f 85/32/1 86/122/1 89/33/1 +f 86/122/1 87/123/1 89/33/1 +f 87/123/1 88/124/1 89/33/1 +f 89/33/1 90/125/1 91/126/1 +f 91/126/1 92/127/1 89/33/1 +f 92/127/1 93/34/1 89/33/1 +f 81/116/1 83/120/1 93/34/1 +f 83/120/1 85/32/1 93/34/1 +f 133/6/1 149/5/1 150/35/1 +f 126/37/2 174/41/2 173/38/2 +f 127/40/2 175/43/2 174/41/2 +f 128/42/2 176/45/2 175/43/2 +f 129/44/2 177/47/2 176/45/2 +f 114/46/2 162/49/2 177/47/2 +f 115/48/2 163/51/2 162/49/2 +f 115/48/2 116/52/2 164/50/2 +f 116/52/2 117/54/2 165/53/2 +f 117/54/2 118/128/2 166/55/2 +f 118/56/2 119/59/2 167/57/2 +f 119/59/2 120/62/2 168/60/2 +f 121/61/2 169/64/2 168/60/2 +f 121/61/2 122/66/2 170/63/2 +f 123/65/2 171/68/2 170/63/2 +f 124/67/2 172/69/2 171/68/2 +f 125/39/2 173/38/2 172/69/2 +f 12/70/1 13/129/1 14/130/1 +f 14/130/1 113/131/1 12/70/1 +f 113/131/1 112/71/1 12/70/1 +f 112/71/1 1/132/1 2/133/1 +f 2/133/1 3/134/1 4/72/1 +f 4/72/1 5/135/1 6/136/1 +f 6/136/1 7/137/1 8/138/1 +f 8/138/1 9/139/1 10/140/1 +f 10/140/1 11/141/1 12/70/1 +f 112/71/1 2/133/1 4/72/1 +f 4/72/1 6/136/1 12/70/1 +f 6/136/1 8/138/1 12/70/1 +f 8/138/1 10/140/1 12/70/1 +f 189/74/4 188/73/4 191/79/4 +f 190/80/5 187/142/5 191/79/5 +f 237/83/1 238/143/1 225/144/1 +f 238/143/1 239/145/1 225/144/1 +f 239/145/1 224/146/1 225/144/1 +f 225/144/1 226/147/1 227/148/1 +f 227/148/1 228/149/1 229/81/1 +f 229/81/1 230/150/1 233/82/1 +f 230/150/1 231/151/1 233/82/1 +f 231/151/1 232/152/1 233/82/1 +f 233/82/1 234/153/1 235/154/1 +f 235/154/1 236/155/1 233/82/1 +f 236/155/1 237/83/1 233/82/1 +f 225/144/1 227/148/1 237/83/1 +f 227/148/1 229/81/1 237/83/1 +f 285/86/1 286/156/1 273/157/1 +f 286/156/1 287/158/1 273/157/1 +f 287/158/1 272/159/1 273/157/1 +f 273/157/1 274/160/1 275/161/1 +f 275/161/1 276/162/1 277/84/1 +f 277/84/1 278/163/1 281/85/1 +f 278/163/1 279/164/1 281/85/1 +f 279/164/1 280/165/1 281/85/1 +f 281/85/1 282/166/1 283/167/1 +f 283/167/1 284/168/1 281/85/1 +f 284/168/1 285/86/1 281/85/1 +f 273/157/1 275/161/1 285/86/1 +f 275/161/1 277/84/1 285/86/1 +f 333/89/1 334/169/1 321/170/1 +f 334/169/1 335/171/1 321/170/1 +f 335/171/1 320/172/1 321/170/1 +f 321/170/1 322/173/1 323/174/1 +f 323/174/1 324/175/1 325/87/1 +f 325/87/1 326/176/1 329/88/1 +f 326/176/1 327/177/1 329/88/1 +f 327/177/1 328/178/1 329/88/1 +f 329/88/1 330/179/1 331/180/1 +f 331/180/1 332/181/1 329/88/1 +f 332/181/1 333/89/1 329/88/1 +f 321/170/1 323/174/1 333/89/1 +f 323/174/1 325/87/1 333/89/1 +f 339/91/7 338/90/7 341/96/7 +f 340/97/8 337/182/8 341/96/8 +f 345/99/10 344/98/10 347/104/10 +f 346/105/11 343/183/11 347/104/11 +f 351/107/13 350/106/13 353/112/13 +f 352/113/14 349/184/14 353/112/14 +s 1 +f 100/185/15 9/186/16 101/187/16 +f 17/188/17 32/189/18 16/190/18 +f 25/191/19 40/192/20 24/193/20 +f 18/194/21 33/195/17 17/188/17 +f 26/196/22 41/197/19 25/191/19 +f 19/198/23 34/199/21 18/194/21 +f 26/196/22 43/200/24 42/201/22 +f 20/202/25 35/203/23 19/204/23 +f 28/205/26 43/206/24 27/207/24 +f 21/208/27 36/209/25 20/202/25 +f 29/210/28 44/211/26 28/205/26 +f 22/212/29 37/213/27 21/208/27 +f 30/214/30 45/215/28 29/210/28 +f 23/216/31 38/217/29 22/212/29 +f 16/190/18 31/218/32 15/219/32 +f 15/219/32 46/220/30 30/214/30 +f 24/193/20 39/221/31 23/216/31 +f 107/222/33 2/223/34 108/224/34 +f 32/189/35 33/225/36 47/226/2 +f 33/195/36 34/227/37 47/228/2 +f 34/199/37 35/229/38 47/230/2 +f 35/203/38 36/231/39 47/232/2 +f 36/209/39 37/233/40 47/234/2 +f 37/213/40 38/235/41 47/236/2 +f 38/217/41 39/237/42 47/238/2 +f 39/221/42 40/239/43 47/240/2 +f 40/192/43 41/241/44 47/242/2 +f 41/197/44 42/243/45 47/244/2 +f 42/201/45 43/200/46 47/245/2 +f 43/206/46 44/246/47 47/247/2 +f 44/211/47 45/248/48 47/249/2 +f 45/215/48 46/250/49 47/251/2 +f 46/220/49 31/252/50 47/253/2 +f 31/218/50 32/254/35 47/255/2 +f 99/256/51 10/257/15 100/258/15 +f 106/259/52 3/260/33 107/222/33 +f 98/261/53 11/262/51 99/256/51 +f 105/263/54 4/264/52 106/259/52 +f 97/265/55 12/266/53 98/261/53 +f 104/267/56 5/268/54 105/263/54 +f 111/269/57 14/270/58 96/271/58 +f 96/271/58 13/272/55 97/265/55 +f 103/273/59 6/274/56 104/267/56 +f 110/275/60 113/276/57 111/269/57 +f 68/277/61 53/278/12 69/279/12 +f 70/280/62 53/278/12 54/281/62 +f 70/280/62 55/282/63 71/283/63 +f 72/284/64 55/285/63 56/286/64 +f 72/284/64 57/287/6 73/288/6 +f 73/288/6 58/289/65 74/290/65 +f 74/290/65 59/291/66 75/292/66 +f 75/292/66 60/293/67 76/294/67 +f 76/294/67 61/295/9 77/296/9 +f 79/297/68 61/295/9 62/298/68 +f 79/297/68 63/299/69 78/300/69 +f 78/300/69 48/301/70 64/302/70 +f 64/302/70 49/303/3 65/304/3 +f 66/305/71 49/303/3 50/306/71 +f 67/307/72 50/306/71 51/308/72 +f 92/309/51 77/296/53 93/310/53 +f 85/311/52 70/280/54 86/312/54 +f 93/310/53 79/297/55 94/313/55 +f 86/312/54 71/283/56 87/314/56 +f 95/315/58 64/302/57 80/316/57 +f 94/313/55 78/300/58 95/315/58 +f 87/317/56 72/284/59 88/318/59 +f 80/316/57 65/304/60 81/319/60 +f 88/318/59 73/288/73 89/320/73 +f 81/319/60 66/305/74 82/321/74 +f 89/320/73 74/290/16 90/322/16 +f 82/321/74 67/307/34 83/323/34 +f 90/322/16 75/292/15 91/324/15 +f 83/323/34 68/277/33 84/325/33 +f 91/324/15 76/294/51 92/309/51 +f 84/325/33 69/279/52 85/311/52 +f 67/307/72 52/326/61 68/277/61 +f 128/327/75 111/269/76 129/328/76 +f 108/224/34 1/329/74 109/330/74 +f 147/16/55 164/50/53 148/10/53 +f 155/12/54 172/69/52 156/2/52 +f 148/10/53 165/53/51 149/5/51 +f 156/2/52 173/38/33 157/3/33 +f 149/5/51 166/55/15 150/35/15 +f 157/3/33 174/41/34 158/28/34 +f 150/114/15 167/57/16 151/30/16 +f 158/28/34 175/43/74 159/23/74 +f 151/30/16 168/60/73 152/26/73 +f 159/23/74 176/45/60 160/24/60 +f 152/26/73 169/64/59 153/22/59 +f 160/24/60 177/47/57 161/14/57 +f 153/22/59 170/63/56 154/11/56 +f 146/15/58 163/51/55 147/16/55 +f 161/14/57 162/49/58 146/15/58 +f 154/11/56 171/68/54 155/12/54 +f 121/331/77 102/332/78 103/273/77 +f 127/333/79 110/275/75 128/327/75 +f 119/334/80 102/332/78 120/335/78 +f 126/336/81 109/330/79 127/333/79 +f 119/334/80 100/185/82 101/187/80 +f 126/336/81 107/222/83 108/224/81 +f 117/337/84 100/258/82 118/338/82 +f 124/339/85 107/222/83 125/340/83 +f 116/341/86 99/256/84 117/337/84 +f 124/339/85 105/263/87 106/259/85 +f 115/342/88 98/261/86 116/341/86 +f 122/343/89 105/263/87 123/344/87 +f 114/345/90 111/269/76 96/271/90 +f 114/345/90 97/265/88 115/342/88 +f 121/331/77 104/267/89 122/343/89 +f 102/332/73 7/346/59 103/273/59 +f 109/330/74 112/347/60 110/275/60 +f 101/187/16 8/348/73 102/332/73 +f 141/1/33 27/207/34 26/196/33 +f 142/31/34 28/205/74 27/207/34 +f 143/27/74 29/210/60 28/205/74 +f 144/19/60 30/214/57 29/210/60 +f 145/20/57 15/219/58 30/214/57 +f 130/13/58 16/190/55 15/219/58 +f 131/9/55 17/188/53 16/190/55 +f 132/4/53 18/194/51 17/188/53 +f 133/6/51 19/198/15 18/194/51 +f 134/29/15 20/202/16 19/204/15 +f 135/25/16 21/208/73 20/202/16 +f 136/21/73 22/212/59 21/208/73 +f 137/17/59 23/216/56 22/212/59 +f 138/18/56 24/193/54 23/216/56 +f 139/7/54 25/191/52 24/193/54 +f 140/8/52 26/196/33 25/191/52 +f 180/349/60 182/350/91 183/351/60 +f 179/352/74 183/351/60 184/353/74 +f 178/354/92 184/353/74 185/355/92 +f 212/356/61 197/357/12 213/358/12 +f 214/359/62 197/357/12 198/360/62 +f 214/359/62 199/361/63 215/362/63 +f 216/363/64 199/364/63 200/365/64 +f 216/363/64 201/366/6 217/367/6 +f 217/367/6 202/368/65 218/369/65 +f 218/369/65 203/370/66 219/371/66 +f 220/372/67 203/370/66 204/373/67 +f 220/372/67 205/374/9 221/375/9 +f 223/376/68 205/374/9 206/377/68 +f 222/378/69 206/377/68 207/379/69 +f 222/378/69 192/380/70 208/381/70 +f 209/382/3 192/380/70 193/383/3 +f 210/384/71 193/383/3 194/385/71 +f 211/386/72 194/385/71 195/387/72 +f 236/388/51 221/375/53 237/389/53 +f 229/390/52 214/359/54 230/391/54 +f 237/389/53 223/376/55 238/392/55 +f 230/391/54 215/362/56 231/393/56 +f 239/394/58 208/381/57 224/395/57 +f 238/392/55 222/378/58 239/394/58 +f 231/396/56 216/363/59 232/397/59 +f 224/395/57 209/382/60 225/398/60 +f 232/397/59 217/367/73 233/399/73 +f 225/398/60 210/384/74 226/400/74 +f 233/399/73 218/369/16 234/401/16 +f 226/400/74 211/386/34 227/402/34 +f 234/401/16 219/371/15 235/403/15 +f 227/402/34 212/356/33 228/404/33 +f 235/403/15 220/372/51 236/388/51 +f 228/404/33 213/358/52 229/390/52 +f 211/386/72 196/405/61 212/356/61 +f 260/406/61 245/407/12 261/408/12 +f 262/409/62 245/407/12 246/410/62 +f 262/409/62 247/411/63 263/412/63 +f 264/413/64 247/414/63 248/415/64 +f 264/413/64 249/416/6 265/417/6 +f 265/417/6 250/418/65 266/419/65 +f 266/419/65 251/420/66 267/421/66 +f 268/422/67 251/420/66 252/423/67 +f 268/422/67 253/424/9 269/425/9 +f 271/426/68 253/424/9 254/427/68 +f 271/426/68 255/428/69 270/429/69 +f 270/429/69 240/430/70 256/431/70 +f 256/431/70 241/432/3 257/433/3 +f 258/434/71 241/432/3 242/435/71 +f 259/436/72 242/435/71 243/437/72 +f 284/438/51 269/425/53 285/439/53 +f 277/440/52 262/409/54 278/441/54 +f 285/439/53 271/426/55 286/442/55 +f 278/441/54 263/412/56 279/443/56 +f 287/444/58 256/431/57 272/445/57 +f 286/442/55 270/429/58 287/444/58 +f 279/446/56 264/413/59 280/447/59 +f 272/445/57 257/433/60 273/448/60 +f 280/447/59 265/417/73 281/449/73 +f 273/448/60 258/434/74 274/450/74 +f 281/449/73 266/419/16 282/451/16 +f 274/450/74 259/436/34 275/452/34 +f 282/451/16 267/421/15 283/453/15 +f 275/452/34 260/406/33 276/454/33 +f 283/453/15 268/422/51 284/438/51 +f 276/454/33 261/408/52 277/440/52 +f 259/436/72 244/455/61 260/406/61 +f 308/456/61 293/457/12 309/458/12 +f 310/459/62 293/457/12 294/460/62 +f 310/459/62 295/461/63 311/462/63 +f 312/463/64 295/464/63 296/465/64 +f 312/463/64 297/466/6 313/467/6 +f 313/467/6 298/468/65 314/469/65 +f 314/469/65 299/470/66 315/471/66 +f 316/472/67 299/470/66 300/473/67 +f 316/472/67 301/474/9 317/475/9 +f 319/476/68 301/474/9 302/477/68 +f 319/476/68 303/478/69 318/479/69 +f 318/479/69 288/480/70 304/481/70 +f 304/481/70 289/482/3 305/483/3 +f 306/484/71 289/482/3 290/485/71 +f 307/486/72 290/485/71 291/487/72 +f 332/488/51 317/475/53 333/489/53 +f 325/490/52 310/459/54 326/491/54 +f 333/489/53 319/476/55 334/492/55 +f 326/491/54 311/462/56 327/493/56 +f 335/494/58 304/481/57 320/495/57 +f 334/492/55 318/479/58 335/494/58 +f 327/496/56 312/463/59 328/497/59 +f 320/495/57 305/483/60 321/498/60 +f 328/497/59 313/467/73 329/499/73 +f 321/498/60 306/484/74 322/500/74 +f 329/499/73 314/469/16 330/501/16 +f 322/500/74 307/486/34 323/502/34 +f 330/501/16 315/471/15 331/503/15 +f 323/502/34 308/456/33 324/504/33 +f 331/503/15 316/472/51 332/488/51 +f 324/504/33 309/458/52 325/490/52 +f 307/486/72 292/505/61 308/456/61 +f 356/506/73 358/507/93 359/508/73 +f 355/509/16 359/508/73 360/510/16 +f 354/511/94 360/510/16 361/512/94 +f 100/185/15 10/513/15 9/186/16 +f 17/188/17 33/225/17 32/189/18 +f 25/191/19 41/241/19 40/192/20 +f 18/194/21 34/227/21 33/195/17 +f 26/196/22 42/243/22 41/197/19 +f 19/198/23 35/229/23 34/199/21 +f 26/196/22 27/207/24 43/200/24 +f 20/202/25 36/231/25 35/203/23 +f 28/205/26 44/246/26 43/206/24 +f 21/208/27 37/233/27 36/209/25 +f 29/210/28 45/248/28 44/211/26 +f 22/212/29 38/235/29 37/213/27 +f 30/214/30 46/250/30 45/215/28 +f 23/216/31 39/237/31 38/217/29 +f 16/190/18 32/254/18 31/218/32 +f 15/219/32 31/252/32 46/220/30 +f 24/193/20 40/239/20 39/221/31 +f 107/222/33 3/260/33 2/223/34 +f 99/256/51 11/262/51 10/257/15 +f 106/259/52 4/264/52 3/260/33 +f 98/261/53 12/266/53 11/262/51 +f 105/263/54 5/268/54 4/264/52 +f 97/265/55 13/272/55 12/266/53 +f 104/267/56 6/274/56 5/268/54 +f 111/269/57 113/276/57 14/270/58 +f 96/271/58 14/270/58 13/272/55 +f 103/273/59 7/346/59 6/274/56 +f 110/275/60 112/347/60 113/276/57 +f 68/277/61 52/326/61 53/278/12 +f 70/280/62 69/279/12 53/278/12 +f 70/280/62 54/281/62 55/282/63 +f 72/284/64 71/514/63 55/285/63 +f 72/284/64 56/286/64 57/287/6 +f 73/288/6 57/287/6 58/289/65 +f 74/290/65 58/289/65 59/291/66 +f 75/292/66 59/291/66 60/293/67 +f 76/294/67 60/293/67 61/295/9 +f 79/297/68 77/296/9 61/295/9 +f 79/297/68 62/298/68 63/299/69 +f 78/300/69 63/299/69 48/301/70 +f 64/302/70 48/301/70 49/303/3 +f 66/305/71 65/304/3 49/303/3 +f 67/307/72 66/305/71 50/306/71 +f 92/309/51 76/294/51 77/296/53 +f 85/311/52 69/279/52 70/280/54 +f 93/310/53 77/296/53 79/297/55 +f 86/312/54 70/280/54 71/283/56 +f 95/315/58 78/300/58 64/302/57 +f 94/313/55 79/297/55 78/300/58 +f 87/317/56 71/514/56 72/284/59 +f 80/316/57 64/302/57 65/304/60 +f 88/318/59 72/284/59 73/288/73 +f 81/319/60 65/304/60 66/305/74 +f 89/320/73 73/288/73 74/290/16 +f 82/321/74 66/305/74 67/307/34 +f 90/322/16 74/290/16 75/292/15 +f 83/323/34 67/307/34 68/277/33 +f 91/324/15 75/292/15 76/294/51 +f 84/325/33 68/277/33 69/279/52 +f 67/307/72 51/308/72 52/326/61 +f 128/327/75 110/275/75 111/269/76 +f 108/224/34 2/223/34 1/329/74 +f 147/16/55 163/51/55 164/50/53 +f 155/12/54 171/68/54 172/69/52 +f 148/10/53 164/50/53 165/53/51 +f 156/2/52 172/69/52 173/38/33 +f 149/5/51 165/53/51 166/55/15 +f 157/3/33 173/38/33 174/41/34 +f 150/114/15 166/58/15 167/57/16 +f 158/28/34 174/41/34 175/43/74 +f 151/30/16 167/57/16 168/60/73 +f 159/23/74 175/43/74 176/45/60 +f 152/26/73 168/60/73 169/64/59 +f 160/24/60 176/45/60 177/47/57 +f 153/22/59 169/64/59 170/63/56 +f 146/15/58 162/49/58 163/51/55 +f 161/14/57 177/47/57 162/49/58 +f 154/11/56 170/63/56 171/68/54 +f 121/331/77 120/335/78 102/332/78 +f 127/333/79 109/330/79 110/275/75 +f 119/334/80 101/187/80 102/332/78 +f 126/336/81 108/224/81 109/330/79 +f 119/334/80 118/56/82 100/185/82 +f 126/336/81 125/340/83 107/222/83 +f 117/337/84 99/256/84 100/258/82 +f 124/339/85 106/259/85 107/222/83 +f 116/341/86 98/261/86 99/256/84 +f 124/339/85 123/344/87 105/263/87 +f 115/342/88 97/265/88 98/261/86 +f 122/343/89 104/267/89 105/263/87 +f 114/345/90 129/328/76 111/269/76 +f 114/345/90 96/271/90 97/265/88 +f 121/331/77 103/273/77 104/267/89 +f 102/332/73 8/348/73 7/346/59 +f 109/330/74 1/329/74 112/347/60 +f 101/187/16 9/186/16 8/348/73 +f 141/1/33 142/31/34 27/207/34 +f 142/31/34 143/27/74 28/205/74 +f 143/27/74 144/19/60 29/210/60 +f 144/19/60 145/20/57 30/214/57 +f 145/20/57 130/13/58 15/219/58 +f 130/13/58 131/9/55 16/190/55 +f 131/9/55 132/4/53 17/188/53 +f 132/4/53 133/6/51 18/194/51 +f 133/6/51 134/36/15 19/198/15 +f 134/29/15 135/25/16 20/202/16 +f 135/25/16 136/21/73 21/208/73 +f 136/21/73 137/17/59 22/212/59 +f 137/17/59 138/18/56 23/216/56 +f 138/18/56 139/7/54 24/193/54 +f 139/7/54 140/8/52 25/191/52 +f 140/8/52 141/1/33 26/196/33 +f 180/349/60 181/515/91 182/350/91 +f 179/352/74 180/349/60 183/351/60 +f 178/354/92 179/352/74 184/353/74 +f 212/356/61 196/405/61 197/357/12 +f 214/359/62 213/358/12 197/357/12 +f 214/359/62 198/360/62 199/361/63 +f 216/363/64 215/516/63 199/364/63 +f 216/363/64 200/365/64 201/366/6 +f 217/367/6 201/366/6 202/368/65 +f 218/369/65 202/368/65 203/370/66 +f 220/372/67 219/371/66 203/370/66 +f 220/372/67 204/373/67 205/374/9 +f 223/376/68 221/375/9 205/374/9 +f 222/378/69 223/376/68 206/377/68 +f 222/378/69 207/379/69 192/380/70 +f 209/382/3 208/381/70 192/380/70 +f 210/384/71 209/382/3 193/383/3 +f 211/386/72 210/384/71 194/385/71 +f 236/388/51 220/372/51 221/375/53 +f 229/390/52 213/358/52 214/359/54 +f 237/389/53 221/375/53 223/376/55 +f 230/391/54 214/359/54 215/362/56 +f 239/394/58 222/378/58 208/381/57 +f 238/392/55 223/376/55 222/378/58 +f 231/396/56 215/516/56 216/363/59 +f 224/395/57 208/381/57 209/382/60 +f 232/397/59 216/363/59 217/367/73 +f 225/398/60 209/382/60 210/384/74 +f 233/399/73 217/367/73 218/369/16 +f 226/400/74 210/384/74 211/386/34 +f 234/401/16 218/369/16 219/371/15 +f 227/402/34 211/386/34 212/356/33 +f 235/403/15 219/371/15 220/372/51 +f 228/404/33 212/356/33 213/358/52 +f 211/386/72 195/387/72 196/405/61 +f 260/406/61 244/455/61 245/407/12 +f 262/409/62 261/408/12 245/407/12 +f 262/409/62 246/410/62 247/411/63 +f 264/413/64 263/517/63 247/414/63 +f 264/413/64 248/415/64 249/416/6 +f 265/417/6 249/416/6 250/418/65 +f 266/419/65 250/418/65 251/420/66 +f 268/422/67 267/421/66 251/420/66 +f 268/422/67 252/423/67 253/424/9 +f 271/426/68 269/425/9 253/424/9 +f 271/426/68 254/427/68 255/428/69 +f 270/429/69 255/428/69 240/430/70 +f 256/431/70 240/430/70 241/432/3 +f 258/434/71 257/433/3 241/432/3 +f 259/436/72 258/434/71 242/435/71 +f 284/438/51 268/422/51 269/425/53 +f 277/440/52 261/408/52 262/409/54 +f 285/439/53 269/425/53 271/426/55 +f 278/441/54 262/409/54 263/412/56 +f 287/444/58 270/429/58 256/431/57 +f 286/442/55 271/426/55 270/429/58 +f 279/446/56 263/517/56 264/413/59 +f 272/445/57 256/431/57 257/433/60 +f 280/447/59 264/413/59 265/417/73 +f 273/448/60 257/433/60 258/434/74 +f 281/449/73 265/417/73 266/419/16 +f 274/450/74 258/434/74 259/436/34 +f 282/451/16 266/419/16 267/421/15 +f 275/452/34 259/436/34 260/406/33 +f 283/453/15 267/421/15 268/422/51 +f 276/454/33 260/406/33 261/408/52 +f 259/436/72 243/437/72 244/455/61 +f 308/456/61 292/505/61 293/457/12 +f 310/459/62 309/458/12 293/457/12 +f 310/459/62 294/460/62 295/461/63 +f 312/463/64 311/518/63 295/464/63 +f 312/463/64 296/465/64 297/466/6 +f 313/467/6 297/466/6 298/468/65 +f 314/469/65 298/468/65 299/470/66 +f 316/472/67 315/471/66 299/470/66 +f 316/472/67 300/473/67 301/474/9 +f 319/476/68 317/475/9 301/474/9 +f 319/476/68 302/477/68 303/478/69 +f 318/479/69 303/478/69 288/480/70 +f 304/481/70 288/480/70 289/482/3 +f 306/484/71 305/483/3 289/482/3 +f 307/486/72 306/484/71 290/485/71 +f 332/488/51 316/472/51 317/475/53 +f 325/490/52 309/458/52 310/459/54 +f 333/489/53 317/475/53 319/476/55 +f 326/491/54 310/459/54 311/462/56 +f 335/494/58 318/479/58 304/481/57 +f 334/492/55 319/476/55 318/479/58 +f 327/496/56 311/518/56 312/463/59 +f 320/495/57 304/481/57 305/483/60 +f 328/497/59 312/463/59 313/467/73 +f 321/498/60 305/483/60 306/484/74 +f 329/499/73 313/467/73 314/469/16 +f 322/500/74 306/484/74 307/486/34 +f 330/501/16 314/469/16 315/471/15 +f 323/502/34 307/486/34 308/456/33 +f 331/503/15 315/471/15 316/472/51 +f 324/504/33 308/456/33 309/458/52 +f 307/486/72 291/487/72 292/505/61 +f 356/506/73 357/519/93 358/507/93 +f 355/509/16 356/506/73 359/508/73 +f 354/511/94 355/509/16 360/510/16 diff --git a/src/main/resources/assets/hbm/models/missile_micro.obj b/src/main/resources/assets/hbm/models/missile_micro.obj new file mode 100644 index 000000000..3af3d6293 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_micro.obj @@ -0,0 +1,1023 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_micro.blend' +# www.blender.org +o Circle +v 0.164063 4.750000 -0.284164 +v 0.284165 4.750000 -0.164062 +v 0.328125 4.750000 0.000000 +v 0.284165 4.750000 0.164063 +v 0.164062 4.750000 0.284165 +v -0.000000 4.750000 0.328125 +v -0.164063 4.750000 0.284165 +v -0.284165 4.750000 0.164063 +v -0.328125 4.750000 0.000000 +v -0.284165 4.750000 -0.164062 +v -0.164062 4.750000 -0.284165 +v 0.000000 4.750000 -0.328125 +v 0.000000 0.000000 -0.375000 +v -0.187500 0.000000 -0.324760 +v -0.324760 0.000000 -0.187500 +v -0.375000 0.000000 0.000000 +v -0.324760 0.000000 0.187500 +v -0.187500 0.000000 0.324760 +v -0.000000 0.000000 0.375000 +v 0.187500 0.000000 0.324760 +v 0.324759 0.000000 0.187500 +v 0.375000 0.000000 0.000000 +v 0.324760 0.000000 -0.187500 +v 0.187500 0.000000 -0.324759 +v 0.000000 1.500000 -0.375000 +v -0.187500 1.500000 -0.324760 +v -0.324760 1.500000 -0.187500 +v -0.375000 1.500000 0.000000 +v -0.324760 1.500000 0.187500 +v -0.187500 1.500000 0.324760 +v -0.000000 1.500000 0.375000 +v 0.187500 1.500000 0.324760 +v 0.324759 1.500000 0.187500 +v 0.375000 1.500000 0.000000 +v 0.324760 1.500000 -0.187500 +v 0.187500 1.500000 -0.324759 +v 0.000000 1.500000 -0.312500 +v -0.156250 1.500000 -0.270633 +v -0.270633 1.500000 -0.156250 +v -0.312500 1.500000 0.000000 +v -0.270633 1.500000 0.156250 +v -0.156250 1.500000 0.270633 +v -0.000000 1.500000 0.312500 +v 0.156250 1.500000 0.270633 +v 0.270633 1.500000 0.156250 +v 0.312500 1.500000 0.000000 +v 0.270633 1.500000 -0.156250 +v 0.156250 1.500000 -0.270633 +v 0.000000 1.750000 -0.312500 +v -0.156250 1.750000 -0.270633 +v -0.270633 1.750000 -0.156250 +v -0.312500 1.750000 0.000000 +v -0.270633 1.750000 0.156250 +v -0.156250 1.750000 0.270633 +v -0.000000 1.750000 0.312500 +v 0.156250 1.750000 0.270633 +v 0.270633 1.750000 0.156250 +v 0.312500 1.750000 0.000000 +v 0.270633 1.750000 -0.156250 +v 0.156250 1.750000 -0.270633 +v 0.000000 1.750000 -0.375000 +v -0.187500 1.750000 -0.324760 +v -0.324760 1.750000 -0.187500 +v -0.375000 1.750000 0.000000 +v -0.324760 1.750000 0.187500 +v -0.187500 1.750000 0.324760 +v -0.000000 1.750000 0.375000 +v 0.187500 1.750000 0.324760 +v 0.324759 1.750000 0.187500 +v 0.375000 1.750000 0.000000 +v 0.324760 1.750000 -0.187500 +v 0.187500 1.750000 -0.324759 +v 0.000000 2.500000 -0.375000 +v -0.187500 2.500000 -0.324760 +v -0.324760 2.500000 -0.187500 +v -0.375000 2.500000 0.000000 +v -0.324760 2.500000 0.187500 +v -0.187500 2.500000 0.324760 +v -0.000000 2.500000 0.375000 +v 0.187500 2.500000 0.324760 +v 0.324759 2.500000 0.187500 +v 0.375000 2.500000 0.000000 +v 0.324760 2.500000 -0.187500 +v 0.187500 2.500000 -0.324759 +v 0.000000 2.500000 -0.312500 +v -0.156250 2.500000 -0.270633 +v -0.270633 2.500000 -0.156250 +v -0.312500 2.500000 0.000000 +v -0.270633 2.500000 0.156250 +v -0.156250 2.500000 0.270633 +v -0.000000 2.500000 0.312500 +v 0.156250 2.500000 0.270633 +v 0.270633 2.500000 0.156250 +v 0.312500 2.500000 0.000000 +v 0.270633 2.500000 -0.156250 +v 0.156250 2.500000 -0.270633 +v 0.000000 2.750000 -0.312500 +v -0.156250 2.750000 -0.270633 +v -0.270633 2.750000 -0.156250 +v -0.312500 2.750000 0.000000 +v -0.270633 2.750000 0.156250 +v -0.156250 2.750000 0.270633 +v -0.000000 2.750000 0.312500 +v 0.156250 2.750000 0.270633 +v 0.270633 2.750000 0.156250 +v 0.312500 2.750000 0.000000 +v 0.270633 2.750000 -0.156250 +v 0.156250 2.750000 -0.270633 +v 0.000000 2.750000 -0.375000 +v -0.187500 2.750000 -0.324760 +v -0.324760 2.750000 -0.187500 +v -0.375000 2.750000 0.000000 +v -0.324760 2.750000 0.187500 +v -0.187500 2.750000 0.324760 +v -0.000000 2.750000 0.375000 +v 0.187500 2.750000 0.324760 +v 0.324759 2.750000 0.187500 +v 0.375000 2.750000 0.000000 +v 0.324760 2.750000 -0.187500 +v 0.187500 2.750000 -0.324759 +v 0.000000 3.500000 -0.375000 +v -0.187500 3.500000 -0.324760 +v -0.324760 3.500000 -0.187500 +v -0.375000 3.500000 0.000000 +v -0.324760 3.500000 0.187500 +v -0.187500 3.500000 0.324760 +v -0.000000 3.500000 0.375000 +v 0.187500 3.500000 0.324760 +v 0.324759 3.500000 0.187500 +v 0.375000 3.500000 0.000000 +v 0.324760 3.500000 -0.187500 +v 0.187500 3.500000 -0.324759 +v 0.000000 3.500000 -0.312500 +v -0.156250 3.500000 -0.270633 +v -0.270633 3.500000 -0.156250 +v -0.312500 3.500000 0.000000 +v -0.270633 3.500000 0.156250 +v -0.156250 3.500000 0.270633 +v -0.000000 3.500000 0.312500 +v 0.156250 3.500000 0.270633 +v 0.270633 3.500000 0.156250 +v 0.312500 3.500000 0.000000 +v 0.270633 3.500000 -0.156250 +v 0.156250 3.500000 -0.270633 +v 0.000000 3.750000 -0.312500 +v -0.156250 3.750000 -0.270633 +v -0.270633 3.750000 -0.156250 +v -0.312500 3.750000 0.000000 +v -0.270633 3.750000 0.156250 +v -0.156250 3.750000 0.270633 +v -0.000000 3.750000 0.312500 +v 0.156250 3.750000 0.270633 +v 0.270633 3.750000 0.156250 +v 0.312500 3.750000 0.000000 +v 0.270633 3.750000 -0.156250 +v 0.156250 3.750000 -0.270633 +v 0.000000 3.750000 -0.375000 +v -0.187500 3.750000 -0.324760 +v -0.324760 3.750000 -0.187500 +v -0.375000 3.750000 0.000000 +v -0.324760 3.750000 0.187500 +v -0.187500 3.750000 0.324760 +v -0.000000 3.750000 0.375000 +v 0.187500 3.750000 0.324760 +v 0.324759 3.750000 0.187500 +v 0.375000 3.750000 0.000000 +v 0.324760 3.750000 -0.187500 +v 0.187500 3.750000 -0.324759 +v 0.000000 4.500000 -0.375000 +v -0.187500 4.500000 -0.324760 +v -0.324760 4.500000 -0.187500 +v -0.375000 4.500000 0.000000 +v -0.324760 4.500000 0.187500 +v -0.187500 4.500000 0.324760 +v -0.000000 4.500000 0.375000 +v 0.187500 4.500000 0.324760 +v 0.324759 4.500000 0.187500 +v 0.375000 4.500000 0.000000 +v 0.324760 4.500000 -0.187500 +v 0.187500 4.500000 -0.324759 +v 0.000000 5.000000 0.000000 +v -0.198874 1.531250 -0.154680 +v -0.198874 0.031250 -0.154680 +v -0.154680 1.531250 -0.198874 +v -0.154680 0.031250 -0.198874 +v -0.530330 1.031250 -0.530330 +v -0.530330 0.031250 -0.530330 +v 0.530330 0.031250 0.530330 +v 0.530330 1.031250 0.530330 +v 0.154680 0.031250 0.198874 +v 0.154680 1.531250 0.198874 +v 0.198874 0.031250 0.154680 +v 0.198874 1.531250 0.154680 +v -0.154680 1.531250 0.198874 +v -0.154680 0.031250 0.198874 +v -0.198874 1.531250 0.154680 +v -0.198874 0.031250 0.154680 +v -0.530330 1.031250 0.530330 +v -0.530330 0.031250 0.530330 +v 0.530330 0.031250 -0.530330 +v 0.530330 1.031250 -0.530330 +v 0.198874 0.031250 -0.154680 +v 0.198874 1.531250 -0.154680 +v 0.154680 0.031250 -0.198874 +v 0.154680 1.531250 -0.198874 +v 0.000000 0.000000 -0.250000 +v -0.125000 0.000000 -0.216506 +v -0.216506 0.000000 -0.125000 +v -0.250000 0.000000 0.000000 +v -0.216506 0.000000 0.125000 +v -0.125000 0.000000 0.216506 +v -0.000000 0.000000 0.250000 +v 0.125000 0.000000 0.216506 +v 0.216506 0.000000 0.125000 +v 0.250000 0.000000 0.000000 +v 0.216506 0.000000 -0.125000 +v 0.125000 0.000000 -0.216506 +v -0.000000 0.500000 0.000000 +v 0.334759 2.937500 0.187500 +v 0.385000 2.937500 0.000000 +v 0.334760 2.937500 -0.187500 +v 0.334759 3.312500 0.187500 +v 0.385000 3.312500 0.000000 +v 0.334760 3.312500 -0.187500 +v -0.334760 2.937500 -0.187500 +v -0.385000 2.937500 -0.000000 +v -0.334760 2.937500 0.187500 +v -0.334760 3.312500 -0.187500 +v -0.385000 3.312500 -0.000000 +v -0.334760 3.312500 0.187500 +vt 0.576923 0.354167 +vt 0.634615 0.364583 +vt 0.576923 0.364583 +vt 0.634615 0.354167 +vt 0.692308 0.364583 +vt 0.057692 0.354167 +vt 0.000000 0.364583 +vt 0.000000 0.354167 +vt 0.115385 0.354167 +vt 0.057692 0.364583 +vt 0.173077 0.354167 +vt 0.115385 0.364583 +vt 0.230769 0.354167 +vt 0.173077 0.364583 +vt 0.288462 0.354167 +vt 0.230769 0.364583 +vt 0.346154 0.354167 +vt 0.288462 0.364583 +vt 0.403846 0.364583 +vt 0.346154 0.364583 +vt 0.403846 0.354167 +vt 0.461538 0.364583 +vt 0.519231 0.354167 +vt 0.461538 0.354167 +vt 0.519231 0.364583 +vt 0.519231 0.406250 +vt 0.461538 0.416667 +vt 0.461538 0.406250 +vt 0.576923 0.406250 +vt 0.519231 0.416667 +vt 0.634615 0.406250 +vt 0.576923 0.416667 +vt 0.692308 0.406250 +vt 0.634615 0.416667 +vt 0.057692 0.406250 +vt 0.000000 0.416667 +vt 0.000000 0.406250 +vt 0.115385 0.416667 +vt 0.057692 0.416667 +vt 0.115385 0.406250 +vt 0.173077 0.416667 +vt 0.230769 0.406250 +vt 0.173077 0.406250 +vt 0.288462 0.406250 +vt 0.230769 0.416667 +vt 0.346154 0.416667 +vt 0.288462 0.416667 +vt 0.403846 0.406250 +vt 0.346154 0.406250 +vt 0.403846 0.416667 +vt 0.519231 0.593750 +vt 0.461538 0.604167 +vt 0.461538 0.593750 +vt 0.576923 0.593750 +vt 0.519231 0.604167 +vt 0.634615 0.593750 +vt 0.576923 0.604167 +vt 0.692308 0.593750 +vt 0.634615 0.604167 +vt 0.057692 0.593750 +vt 0.000000 0.604167 +vt 0.000000 0.593750 +vt 0.115385 0.604167 +vt 0.057692 0.604167 +vt 0.115385 0.593750 +vt 0.173077 0.604167 +vt 0.230769 0.593750 +vt 0.173077 0.593750 +vt 0.288462 0.593750 +vt 0.230769 0.604167 +vt 0.346154 0.604167 +vt 0.288462 0.604167 +vt 0.403846 0.593750 +vt 0.346154 0.593750 +vt 0.403846 0.604167 +vt 0.519231 0.781250 +vt 0.461538 0.791667 +vt 0.461538 0.781250 +vt 0.576923 0.781250 +vt 0.519231 0.791667 +vt 0.634615 0.781250 +vt 0.576923 0.791667 +vt 0.692308 0.781250 +vt 0.634615 0.791667 +vt 0.057692 0.781250 +vt 0.000000 0.791667 +vt 0.000000 0.781250 +vt 0.115385 0.791667 +vt 0.057692 0.791667 +vt 0.115385 0.781250 +vt 0.173077 0.791667 +vt 0.230769 0.781250 +vt 0.173077 0.781250 +vt 0.288462 0.781250 +vt 0.230769 0.791667 +vt 0.346154 0.791667 +vt 0.288462 0.791667 +vt 0.403846 0.781250 +vt 0.346154 0.781250 +vt 0.403846 0.791667 +vt 0.519231 0.541667 +vt 0.461538 0.552083 +vt 0.461538 0.541667 +vt 0.576923 0.541667 +vt 0.519231 0.552083 +vt 0.634615 0.552083 +vt 0.576923 0.552083 +vt 0.634615 0.541667 +vt 0.692308 0.552083 +vt 0.057692 0.541667 +vt 0.000000 0.552083 +vt 0.000000 0.541667 +vt 0.115385 0.541667 +vt 0.057692 0.552083 +vt 0.173077 0.541667 +vt 0.115385 0.552083 +vt 0.230769 0.541667 +vt 0.173077 0.552083 +vt 0.288462 0.541667 +vt 0.230769 0.552083 +vt 0.346154 0.541667 +vt 0.288462 0.552083 +vt 0.403846 0.552083 +vt 0.346154 0.552083 +vt 0.403846 0.541667 +vt 0.519231 0.729167 +vt 0.461538 0.739583 +vt 0.461538 0.729167 +vt 0.576923 0.729167 +vt 0.519231 0.739583 +vt 0.634615 0.739583 +vt 0.576923 0.739583 +vt 0.634615 0.729167 +vt 0.692308 0.739583 +vt 0.057692 0.729167 +vt 0.000000 0.739583 +vt 0.000000 0.729167 +vt 0.115385 0.729167 +vt 0.057692 0.739583 +vt 0.173077 0.729167 +vt 0.115385 0.739583 +vt 0.230769 0.729167 +vt 0.173077 0.739583 +vt 0.288462 0.729167 +vt 0.230769 0.739583 +vt 0.346154 0.729167 +vt 0.288462 0.739583 +vt 0.403846 0.739583 +vt 0.346154 0.739583 +vt 0.403846 0.729167 +vt 0.846154 0.000000 +vt 0.692308 0.010417 +vt 0.692308 0.000000 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.692308 0.010417 +vt 0.846154 0.177083 +vt 0.846154 0.010417 +vt 0.846154 0.177083 +vt 0.692308 0.010417 +vt 0.846154 0.010417 +vt 0.692308 0.010417 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.846154 0.000000 +vt 0.692308 0.000000 +vt 0.846154 0.000000 +vt 0.692308 0.010417 +vt 0.692308 0.000000 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.692308 0.010417 +vt 0.846154 0.177083 +vt 0.846154 0.010417 +vt 0.846154 0.177083 +vt 0.692308 0.010417 +vt 0.846154 0.010417 +vt 0.692308 0.010417 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.846154 0.000000 +vt 0.692308 0.000000 +vt 0.346154 0.083333 +vt 0.403846 0.104167 +vt 0.346154 0.104167 +vt 0.403846 0.083333 +vt 0.461538 0.104167 +vt 0.461538 0.083333 +vt 0.519231 0.104167 +vt 0.519231 0.083333 +vt 0.576923 0.104167 +vt 0.615385 0.083333 +vt 0.634615 0.104167 +vt 0.634615 0.083333 +vt 0.692308 0.104167 +vt 0.000000 0.083333 +vt 0.057692 0.104167 +vt 0.000000 0.104167 +vt 0.057692 0.083333 +vt 0.115385 0.104167 +vt 0.115385 0.083333 +vt 0.173077 0.104167 +vt 0.173077 0.083333 +vt 0.230769 0.104167 +vt 0.230769 0.083333 +vt 0.288462 0.104167 +vt 0.288462 0.083333 +vt 0.692308 0.354167 +vt 0.692308 0.416667 +vt 0.692308 0.604167 +vt 0.692308 0.791667 +vt 0.692308 0.541667 +vt 0.692308 0.729167 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.384615 0.083333 +vt 0.442308 0.083333 +vt 0.500000 0.083333 +vt 0.557692 0.083333 +vt 0.576923 0.083333 +vt 0.673077 0.083333 +vt 0.038462 0.083333 +vt 0.096154 0.083333 +vt 0.153846 0.083333 +vt 0.211538 0.083333 +vt 0.269231 0.083333 +vt 0.326923 0.083333 +vt 0.576923 0.916667 +vt 0.000000 0.916667 +vt 0.403846 0.916667 +vt 0.230769 0.916667 +vt 0.634615 0.916667 +vt 0.057692 0.916667 +vt 0.461538 0.916667 +vt 0.288462 0.916667 +vt 0.115385 0.916667 +vt 0.519231 0.916667 +vt 0.346154 0.916667 +vt 0.173077 0.916667 +vt 0.288462 0.958333 +vt 0.115385 0.958333 +vt 0.557692 0.958333 +vt 0.519231 0.958333 +vt 0.346154 0.958333 +vt 0.211538 0.958333 +vt 0.173077 0.958333 +vt 0.576923 0.958333 +vt 0.000000 0.958333 +vt 0.442308 0.958333 +vt 0.403846 0.958333 +vt 0.230769 0.958333 +vt 0.692308 0.916667 +vt 0.634615 0.958333 +vt 0.057692 0.958333 +vt 0.461538 0.958333 +vt 0.038462 0.958333 +vt 0.019231 1.000000 +vt 0.096154 0.958333 +vt 0.076923 1.000000 +vt 0.153846 0.958333 +vt 0.134615 1.000000 +vt 0.192308 1.000000 +vt 0.269231 0.958333 +vt 0.250000 1.000000 +vt 0.326923 0.958333 +vt 0.307692 1.000000 +vt 0.384615 0.958333 +vt 0.365385 1.000000 +vt 0.423077 1.000000 +vt 0.500000 0.958333 +vt 0.480769 1.000000 +vt 0.538462 1.000000 +vt 0.615385 0.958333 +vt 0.596154 1.000000 +vt 0.673077 0.958333 +vt 0.653846 1.000000 +vt 0.019231 0.000000 +vt 0.653846 0.000000 +vt 0.596154 0.000000 +vt 0.538462 0.000000 +vt 0.480769 0.000000 +vt 0.423077 0.000000 +vt 0.365385 0.000000 +vt 0.307692 0.000000 +vt 0.250000 0.000000 +vt 0.192308 0.000000 +vt 0.134615 0.000000 +vt 0.076923 0.000000 +vt 0.846154 0.270833 +vt 0.692308 0.437500 +vt 0.692308 0.270833 +vt 1.000000 0.270833 +vt 0.846154 0.437500 +vt 0.846154 0.270833 +vt 0.692308 0.437500 +vt 0.692308 0.270833 +vt 1.000000 0.270833 +vt 0.846154 0.437500 +vt 1.000000 0.437500 +vt 1.000000 0.437500 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.5000 0.7071 -0.5000 +vn -0.7498 0.0000 0.6616 +vn 0.6616 0.0000 -0.7498 +vn -0.6616 0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.6616 0.0000 0.7498 +vn -0.7498 0.0000 -0.6616 +vn 0.7498 0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn 0.5000 0.7071 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 0.0000 0.8660 +vn 0.0000 0.0000 1.0000 +vn -0.8660 0.0000 0.5000 +vn -1.0000 0.0000 0.0000 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.0000 0.0000 -1.0000 +vn 0.8660 0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.8624 0.0912 -0.4979 +vn 0.0000 0.0912 -0.9958 +vn 0.4979 0.0912 0.8624 +vn -0.8624 0.0912 0.4979 +vn 0.4979 0.0912 -0.8624 +vn -0.4979 0.0912 -0.8624 +vn 0.8624 0.0912 0.4979 +vn -0.4979 0.0912 0.8624 +vn -0.8624 0.0912 -0.4979 +vn 0.9958 0.0912 0.0000 +vn 0.0000 0.0912 0.9958 +vn -0.9958 0.0912 0.0000 +vn -0.4330 0.5000 0.7500 +vn -0.7500 0.5000 -0.4330 +vn 0.7500 0.5000 -0.4330 +vn 0.8660 0.5000 0.0000 +vn -0.0000 0.5000 0.8660 +vn -0.7500 0.5000 0.4330 +vn -0.8660 0.5000 -0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.7500 0.5000 0.4330 +vn 0.4330 0.5000 0.7500 +vn 0.4330 0.5000 -0.7500 +vn -0.4330 0.5000 -0.7500 +vn 0.4472 -0.4472 0.7746 +vn -0.0000 -0.4472 0.8944 +vn -0.4472 -0.4472 0.7746 +vn -0.7746 -0.4472 0.4472 +vn -0.8944 -0.4472 -0.0000 +vn -0.7746 -0.4472 -0.4472 +vn -0.4472 -0.4472 -0.7746 +vn 0.0000 -0.4472 -0.8944 +vn 0.4472 -0.4472 -0.7746 +vn 0.7746 -0.4472 -0.4472 +vn 0.8944 -0.4472 -0.0000 +vn 0.7746 -0.4472 0.4472 +vn 0.9659 0.0000 0.2588 +vn 0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 0.2588 +s off +f 35/1/1 48/2/1 47/3/1 +f 36/4/1 37/5/1 48/2/1 +f 26/6/1 37/7/1 25/8/1 +f 27/9/1 38/10/1 26/6/1 +f 28/11/1 39/12/1 27/9/1 +f 29/13/1 40/14/1 28/11/1 +f 30/15/1 41/16/1 29/13/1 +f 31/17/1 42/18/1 30/15/1 +f 31/17/1 44/19/1 43/20/1 +f 32/21/1 45/22/1 44/19/1 +f 34/23/1 45/22/1 33/24/1 +f 35/1/1 46/25/1 34/23/1 +f 58/26/2 69/27/2 57/28/2 +f 59/29/2 70/30/2 58/26/2 +f 60/31/2 71/32/2 59/29/2 +f 49/33/2 72/34/2 60/31/2 +f 50/35/2 61/36/2 49/37/2 +f 50/35/2 63/38/2 62/39/2 +f 51/40/2 64/41/2 63/38/2 +f 53/42/2 64/41/2 52/43/2 +f 54/44/2 65/45/2 53/42/2 +f 54/44/2 67/46/2 66/47/2 +f 56/48/2 67/46/2 55/49/2 +f 57/28/2 68/50/2 56/48/2 +f 106/51/2 117/52/2 105/53/2 +f 107/54/2 118/55/2 106/51/2 +f 108/56/2 119/57/2 107/54/2 +f 97/58/2 120/59/2 108/56/2 +f 98/60/2 109/61/2 97/62/2 +f 98/60/2 111/63/2 110/64/2 +f 99/65/2 112/66/2 111/63/2 +f 101/67/2 112/66/2 100/68/2 +f 102/69/2 113/70/2 101/67/2 +f 102/69/2 115/71/2 114/72/2 +f 104/73/2 115/71/2 103/74/2 +f 105/53/2 116/75/2 104/73/2 +f 154/76/2 165/77/2 153/78/2 +f 155/79/2 166/80/2 154/76/2 +f 156/81/2 167/82/2 155/79/2 +f 145/83/2 168/84/2 156/81/2 +f 146/85/2 157/86/2 145/87/2 +f 146/85/2 159/88/2 158/89/2 +f 147/90/2 160/91/2 159/88/2 +f 149/92/2 160/91/2 148/93/2 +f 150/94/2 161/95/2 149/92/2 +f 150/94/2 163/96/2 162/97/2 +f 152/98/2 163/96/2 151/99/2 +f 153/78/2 164/100/2 152/98/2 +f 82/101/1 93/102/1 81/103/1 +f 83/104/1 94/105/1 82/101/1 +f 83/104/1 96/106/1 95/107/1 +f 84/108/1 85/109/1 96/106/1 +f 74/110/1 85/111/1 73/112/1 +f 75/113/1 86/114/1 74/110/1 +f 76/115/1 87/116/1 75/113/1 +f 77/117/1 88/118/1 76/115/1 +f 78/119/1 89/120/1 77/117/1 +f 79/121/1 90/122/1 78/119/1 +f 79/121/1 92/123/1 91/124/1 +f 80/125/1 93/102/1 92/123/1 +f 130/126/1 141/127/1 129/128/1 +f 131/129/1 142/130/1 130/126/1 +f 131/129/1 144/131/1 143/132/1 +f 132/133/1 133/134/1 144/131/1 +f 122/135/1 133/136/1 121/137/1 +f 123/138/1 134/139/1 122/135/1 +f 124/140/1 135/141/1 123/138/1 +f 125/142/1 136/143/1 124/140/1 +f 126/144/1 137/145/1 125/142/1 +f 127/146/1 138/147/1 126/144/1 +f 127/146/1 140/148/1 139/149/1 +f 128/150/1 141/127/1 140/148/1 +f 187/151/2 185/152/2 183/153/2 +f 184/154/3 186/155/3 182/156/3 +f 183/157/4 186/158/4 187/159/4 +f 186/158/5 185/152/5 187/159/5 +f 189/160/6 190/161/6 188/162/6 +f 192/163/7 189/160/7 188/162/7 +f 191/164/8 189/165/8 193/166/8 +f 188/167/2 190/161/2 192/168/2 +f 199/169/2 197/170/2 195/171/2 +f 196/172/9 198/173/9 194/174/9 +f 195/175/10 198/176/10 199/177/10 +f 198/176/11 197/170/11 199/177/11 +f 201/178/12 202/179/12 200/180/12 +f 204/181/13 201/178/13 200/180/13 +f 203/182/14 201/183/14 205/184/14 +f 200/185/2 202/179/2 204/186/2 +f 212/187/2 20/188/2 19/189/2 +f 213/190/2 21/191/2 20/188/2 +f 214/192/2 22/193/2 21/191/2 +f 215/194/2 23/195/2 22/193/2 +f 23/195/2 217/196/2 24/197/2 +f 217/198/2 13/199/2 24/197/2 +f 206/200/2 14/201/2 13/202/2 +f 207/203/2 15/204/2 14/201/2 +f 208/205/2 16/206/2 15/204/2 +f 209/207/2 17/208/2 16/206/2 +f 210/209/2 18/210/2 17/208/2 +f 211/211/2 19/189/2 18/210/2 +f 35/1/1 36/4/1 48/2/1 +f 36/4/1 25/212/1 37/5/1 +f 26/6/1 38/10/1 37/7/1 +f 27/9/1 39/12/1 38/10/1 +f 28/11/1 40/14/1 39/12/1 +f 29/13/1 41/16/1 40/14/1 +f 30/15/1 42/18/1 41/16/1 +f 31/17/1 43/20/1 42/18/1 +f 31/17/1 32/21/1 44/19/1 +f 32/21/1 33/24/1 45/22/1 +f 34/23/1 46/25/1 45/22/1 +f 35/1/1 47/3/1 46/25/1 +f 58/26/2 70/30/2 69/27/2 +f 59/29/2 71/32/2 70/30/2 +f 60/31/2 72/34/2 71/32/2 +f 49/33/2 61/213/2 72/34/2 +f 50/35/2 62/39/2 61/36/2 +f 50/35/2 51/40/2 63/38/2 +f 51/40/2 52/43/2 64/41/2 +f 53/42/2 65/45/2 64/41/2 +f 54/44/2 66/47/2 65/45/2 +f 54/44/2 55/49/2 67/46/2 +f 56/48/2 68/50/2 67/46/2 +f 57/28/2 69/27/2 68/50/2 +f 106/51/2 118/55/2 117/52/2 +f 107/54/2 119/57/2 118/55/2 +f 108/56/2 120/59/2 119/57/2 +f 97/58/2 109/214/2 120/59/2 +f 98/60/2 110/64/2 109/61/2 +f 98/60/2 99/65/2 111/63/2 +f 99/65/2 100/68/2 112/66/2 +f 101/67/2 113/70/2 112/66/2 +f 102/69/2 114/72/2 113/70/2 +f 102/69/2 103/74/2 115/71/2 +f 104/73/2 116/75/2 115/71/2 +f 105/53/2 117/52/2 116/75/2 +f 154/76/2 166/80/2 165/77/2 +f 155/79/2 167/82/2 166/80/2 +f 156/81/2 168/84/2 167/82/2 +f 145/83/2 157/215/2 168/84/2 +f 146/85/2 158/89/2 157/86/2 +f 146/85/2 147/90/2 159/88/2 +f 147/90/2 148/93/2 160/91/2 +f 149/92/2 161/95/2 160/91/2 +f 150/94/2 162/97/2 161/95/2 +f 150/94/2 151/99/2 163/96/2 +f 152/98/2 164/100/2 163/96/2 +f 153/78/2 165/77/2 164/100/2 +f 82/101/1 94/105/1 93/102/1 +f 83/104/1 95/107/1 94/105/1 +f 83/104/1 84/108/1 96/106/1 +f 84/108/1 73/216/1 85/109/1 +f 74/110/1 86/114/1 85/111/1 +f 75/113/1 87/116/1 86/114/1 +f 76/115/1 88/118/1 87/116/1 +f 77/117/1 89/120/1 88/118/1 +f 78/119/1 90/122/1 89/120/1 +f 79/121/1 91/124/1 90/122/1 +f 79/121/1 80/125/1 92/123/1 +f 80/125/1 81/103/1 93/102/1 +f 130/126/1 142/130/1 141/127/1 +f 131/129/1 143/132/1 142/130/1 +f 131/129/1 132/133/1 144/131/1 +f 132/133/1 121/217/1 133/134/1 +f 122/135/1 134/139/1 133/136/1 +f 123/138/1 135/141/1 134/139/1 +f 124/140/1 136/143/1 135/141/1 +f 125/142/1 137/145/1 136/143/1 +f 126/144/1 138/147/1 137/145/1 +f 127/146/1 139/149/1 138/147/1 +f 127/146/1 128/150/1 140/148/1 +f 128/150/1 129/128/1 141/127/1 +f 183/157/4 182/218/4 186/158/4 +f 186/158/5 184/154/5 185/152/5 +f 189/160/6 191/164/6 190/161/6 +f 192/163/7 193/219/7 189/160/7 +f 195/175/10 194/220/10 198/176/10 +f 198/176/11 196/172/11 197/170/11 +f 201/178/12 203/182/12 202/179/12 +f 204/181/13 205/221/13 201/178/13 +f 212/187/2 213/222/2 20/188/2 +f 213/190/2 214/223/2 21/191/2 +f 214/192/2 215/224/2 22/193/2 +f 215/194/2 216/225/2 23/195/2 +f 23/195/2 216/226/2 217/196/2 +f 217/198/2 206/227/2 13/199/2 +f 206/200/2 207/228/2 14/201/2 +f 207/203/2 208/229/2 15/204/2 +f 208/205/2 209/230/2 16/206/2 +f 209/207/2 210/231/2 17/208/2 +f 210/209/2 211/232/2 18/210/2 +f 211/211/2 212/233/2 19/189/2 +s 1 +f 23/195/15 34/23/16 22/193/16 +f 20/188/17 31/17/18 19/189/18 +f 17/208/19 28/11/20 16/206/20 +f 24/197/21 35/1/15 23/195/15 +f 14/201/22 25/8/23 13/202/23 +f 21/191/24 32/21/17 20/188/17 +f 18/210/25 29/13/19 17/208/19 +f 13/199/23 36/4/21 24/197/21 +f 15/204/26 26/6/22 14/201/22 +f 22/193/16 33/24/24 21/191/24 +f 19/189/18 30/15/25 18/210/25 +f 16/206/20 27/9/26 15/204/26 +f 45/22/24 56/48/17 44/19/17 +f 42/18/25 53/42/19 41/16/19 +f 37/5/23 60/31/21 48/2/21 +f 39/12/26 50/35/22 38/10/22 +f 46/25/16 57/28/24 45/22/24 +f 43/20/18 54/44/25 42/18/25 +f 40/14/20 51/40/26 39/12/26 +f 47/3/15 58/26/16 46/25/16 +f 44/19/17 55/49/18 43/20/18 +f 41/16/19 52/43/20 40/14/20 +f 48/2/21 59/29/15 47/3/15 +f 38/10/22 49/37/23 37/7/23 +f 72/34/21 83/104/15 71/32/15 +f 62/39/22 73/112/23 61/36/23 +f 69/27/24 80/125/17 68/50/17 +f 66/47/25 77/117/19 65/45/19 +f 61/213/23 84/108/21 72/34/21 +f 63/38/26 74/110/22 62/39/22 +f 70/30/16 81/103/24 69/27/24 +f 67/46/18 78/119/25 66/47/25 +f 64/41/20 75/113/26 63/38/26 +f 71/32/15 82/101/16 70/30/16 +f 68/50/17 79/121/18 67/46/18 +f 65/45/19 76/115/20 64/41/20 +f 93/102/24 104/73/17 92/123/17 +f 90/122/25 101/67/19 89/120/19 +f 85/109/23 108/56/21 96/106/21 +f 87/116/26 98/60/22 86/114/22 +f 94/105/16 105/53/24 93/102/24 +f 91/124/18 102/69/25 90/122/25 +f 88/118/20 99/65/26 87/116/26 +f 95/107/15 106/51/16 94/105/16 +f 92/123/17 103/74/18 91/124/18 +f 89/120/19 100/68/20 88/118/20 +f 96/106/21 107/54/15 95/107/15 +f 86/114/22 97/62/23 85/111/23 +f 120/59/21 131/129/15 119/57/15 +f 110/64/22 121/137/23 109/61/23 +f 117/52/24 128/150/17 116/75/17 +f 114/72/25 125/142/19 113/70/19 +f 109/214/23 132/133/21 120/59/21 +f 111/63/26 122/135/22 110/64/22 +f 118/55/16 129/128/24 117/52/24 +f 115/71/18 126/144/25 114/72/25 +f 112/66/20 123/138/26 111/63/26 +f 119/57/15 130/126/16 118/55/16 +f 116/75/17 127/146/18 115/71/18 +f 113/70/19 124/140/20 112/66/20 +f 141/127/24 152/98/17 140/148/17 +f 138/147/25 149/92/19 137/145/19 +f 133/134/23 156/81/21 144/131/21 +f 135/141/26 146/85/22 134/139/22 +f 142/130/16 153/78/24 141/127/24 +f 139/149/18 150/94/25 138/147/25 +f 136/143/20 147/90/26 135/141/26 +f 143/132/15 154/76/16 142/130/16 +f 140/148/17 151/99/18 139/149/18 +f 137/145/19 148/93/20 136/143/20 +f 144/131/21 155/79/15 143/132/15 +f 134/139/22 145/87/23 133/136/23 +f 168/84/21 179/234/27 167/82/15 +f 158/89/22 169/235/28 157/86/23 +f 165/77/24 176/236/29 164/100/17 +f 162/97/25 173/237/30 161/95/19 +f 157/215/23 180/238/31 168/84/21 +f 159/88/26 170/239/32 158/89/22 +f 166/80/16 177/240/33 165/77/24 +f 163/96/18 174/241/34 162/97/25 +f 160/91/20 171/242/35 159/88/26 +f 167/82/15 178/243/36 166/80/16 +f 164/100/17 175/244/37 163/96/18 +f 161/95/19 172/245/38 160/91/20 +f 175/244/37 7/246/39 174/241/34 +f 172/245/38 10/247/40 171/242/35 +f 178/243/36 2/248/41 3/249/42 +f 176/236/29 6/250/43 175/244/37 +f 172/245/38 8/251/44 9/252/45 +f 180/238/31 2/253/41 179/234/27 +f 170/239/32 12/254/46 169/235/28 +f 176/236/29 4/255/47 5/256/48 +f 174/241/34 8/257/44 173/237/30 +f 169/258/28 1/259/49 180/238/31 +f 171/242/35 11/260/50 170/239/32 +f 178/243/36 4/261/47 177/240/33 +f 12/254/46 11/262/50 181/263/1 +f 11/260/50 10/264/40 181/265/1 +f 10/247/40 9/266/45 181/267/1 +f 9/252/45 8/251/44 181/268/1 +f 8/257/44 7/269/39 181/270/1 +f 7/246/39 6/271/43 181/272/1 +f 6/250/43 5/273/48 181/274/1 +f 5/256/48 4/255/47 181/275/1 +f 4/261/47 3/276/42 181/277/1 +f 3/249/42 2/248/41 181/278/1 +f 2/253/41 1/279/49 181/280/1 +f 1/259/49 12/281/46 181/282/1 +f 207/228/51 206/200/52 218/283/2 +f 206/227/52 217/198/53 218/284/2 +f 217/196/53 216/226/54 218/285/2 +f 216/225/54 215/194/55 218/286/2 +f 215/224/55 214/192/56 218/287/2 +f 214/223/56 213/190/57 218/288/2 +f 213/222/57 212/187/58 218/289/2 +f 212/233/58 211/211/59 218/290/2 +f 211/232/59 210/209/60 218/291/2 +f 210/231/60 209/207/61 218/292/2 +f 209/230/61 208/205/62 218/293/2 +f 208/229/62 207/203/51 218/294/2 +f 220/295/16 222/296/63 219/297/63 +f 221/298/64 223/299/16 220/295/16 +f 226/300/20 228/301/65 225/302/65 +f 227/303/66 229/304/20 226/300/20 +f 23/195/15 35/1/15 34/23/16 +f 20/188/17 32/21/17 31/17/18 +f 17/208/19 29/13/19 28/11/20 +f 24/197/21 36/4/21 35/1/15 +f 14/201/22 26/6/22 25/8/23 +f 21/191/24 33/24/24 32/21/17 +f 18/210/25 30/15/25 29/13/19 +f 13/199/23 25/212/23 36/4/21 +f 15/204/26 27/9/26 26/6/22 +f 22/193/16 34/23/16 33/24/24 +f 19/189/18 31/17/18 30/15/25 +f 16/206/20 28/11/20 27/9/26 +f 45/22/24 57/28/24 56/48/17 +f 42/18/25 54/44/25 53/42/19 +f 37/5/23 49/33/23 60/31/21 +f 39/12/26 51/40/26 50/35/22 +f 46/25/16 58/26/16 57/28/24 +f 43/20/18 55/49/18 54/44/25 +f 40/14/20 52/43/20 51/40/26 +f 47/3/15 59/29/15 58/26/16 +f 44/19/17 56/48/17 55/49/18 +f 41/16/19 53/42/19 52/43/20 +f 48/2/21 60/31/21 59/29/15 +f 38/10/22 50/35/22 49/37/23 +f 72/34/21 84/108/21 83/104/15 +f 62/39/22 74/110/22 73/112/23 +f 69/27/24 81/103/24 80/125/17 +f 66/47/25 78/119/25 77/117/19 +f 61/213/23 73/216/23 84/108/21 +f 63/38/26 75/113/26 74/110/22 +f 70/30/16 82/101/16 81/103/24 +f 67/46/18 79/121/18 78/119/25 +f 64/41/20 76/115/20 75/113/26 +f 71/32/15 83/104/15 82/101/16 +f 68/50/17 80/125/17 79/121/18 +f 65/45/19 77/117/19 76/115/20 +f 93/102/24 105/53/24 104/73/17 +f 90/122/25 102/69/25 101/67/19 +f 85/109/23 97/58/23 108/56/21 +f 87/116/26 99/65/26 98/60/22 +f 94/105/16 106/51/16 105/53/24 +f 91/124/18 103/74/18 102/69/25 +f 88/118/20 100/68/20 99/65/26 +f 95/107/15 107/54/15 106/51/16 +f 92/123/17 104/73/17 103/74/18 +f 89/120/19 101/67/19 100/68/20 +f 96/106/21 108/56/21 107/54/15 +f 86/114/22 98/60/22 97/62/23 +f 120/59/21 132/133/21 131/129/15 +f 110/64/22 122/135/22 121/137/23 +f 117/52/24 129/128/24 128/150/17 +f 114/72/25 126/144/25 125/142/19 +f 109/214/23 121/217/23 132/133/21 +f 111/63/26 123/138/26 122/135/22 +f 118/55/16 130/126/16 129/128/24 +f 115/71/18 127/146/18 126/144/25 +f 112/66/20 124/140/20 123/138/26 +f 119/57/15 131/129/15 130/126/16 +f 116/75/17 128/150/17 127/146/18 +f 113/70/19 125/142/19 124/140/20 +f 141/127/24 153/78/24 152/98/17 +f 138/147/25 150/94/25 149/92/19 +f 133/134/23 145/83/23 156/81/21 +f 135/141/26 147/90/26 146/85/22 +f 142/130/16 154/76/16 153/78/24 +f 139/149/18 151/99/18 150/94/25 +f 136/143/20 148/93/20 147/90/26 +f 143/132/15 155/79/15 154/76/16 +f 140/148/17 152/98/17 151/99/18 +f 137/145/19 149/92/19 148/93/20 +f 144/131/21 156/81/21 155/79/15 +f 134/139/22 146/85/22 145/87/23 +f 168/84/21 180/238/31 179/234/27 +f 158/89/22 170/239/32 169/235/28 +f 165/77/24 177/240/33 176/236/29 +f 162/97/25 174/241/34 173/237/30 +f 157/215/23 169/258/28 180/238/31 +f 159/88/26 171/242/35 170/239/32 +f 166/80/16 178/243/36 177/240/33 +f 163/96/18 175/244/37 174/241/34 +f 160/91/20 172/245/38 171/242/35 +f 167/82/15 179/234/27 178/243/36 +f 164/100/17 176/236/29 175/244/37 +f 161/95/19 173/237/30 172/245/38 +f 175/244/37 6/271/43 7/246/39 +f 172/245/38 9/266/45 10/247/40 +f 178/243/36 179/234/27 2/248/41 +f 176/236/29 5/273/48 6/250/43 +f 172/245/38 173/237/30 8/251/44 +f 180/238/31 1/279/49 2/253/41 +f 170/239/32 11/262/50 12/254/46 +f 176/236/29 177/240/33 4/255/47 +f 174/241/34 7/269/39 8/257/44 +f 169/258/28 12/281/46 1/259/49 +f 171/242/35 10/264/40 11/260/50 +f 178/243/36 3/276/42 4/261/47 +f 220/295/16 223/299/16 222/296/63 +f 221/298/64 224/305/64 223/299/16 +f 226/300/20 229/304/20 228/301/65 +f 227/303/66 230/306/66 229/304/20 diff --git a/src/main/resources/assets/hbm/models/missile_stealth.obj b/src/main/resources/assets/hbm/models/missile_stealth.obj new file mode 100644 index 000000000..f723b225a --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_stealth.obj @@ -0,0 +1,384 @@ +# Blender v2.79 (sub 0) OBJ File: 'MissileStealth.blend' +# www.blender.org +o Cylinder +v 0.487139 0.500000 -0.281250 +v 0.487139 0.500000 0.281250 +v 0.000000 0.500000 0.562500 +v -0.487139 0.500000 0.281250 +v 0.000000 0.500000 -0.562500 +v -0.487139 0.500000 -0.281250 +v 0.000000 1.000000 -0.750000 +v -0.649519 1.000000 -0.375000 +v -0.649519 1.000000 0.375000 +v 0.000000 1.000000 0.750000 +v 0.649519 1.000000 0.375000 +v 0.649519 1.000000 -0.375000 +v 0.000000 7.000000 -0.750000 +v -0.649519 7.000000 -0.375000 +v -0.649519 7.000000 0.375000 +v 0.000000 7.000000 0.750000 +v 0.649519 7.000000 0.375000 +v 0.649519 7.000000 -0.375000 +v 0.000000 11.000000 0.000000 +v 0.755918 -0.020288 -1.295622 +v 0.255918 0.979712 -0.429596 +v 0.505918 -0.020288 -0.862609 +v 0.755918 1.479711 -1.295621 +v 0.255918 3.479711 -0.429596 +v 0.310045 0.979712 -0.398346 +v 0.310045 3.479711 -0.398346 +v 0.810045 -0.020288 -1.264372 +v 0.560045 -0.020288 -0.831359 +v 0.810045 1.479711 -1.264371 +v 0.689955 1.479712 1.333705 +v 0.439955 -0.020288 0.900692 +v 0.689955 -0.020288 1.333705 +v 0.189955 3.479711 0.467680 +v 0.189955 0.979712 0.467680 +v 0.244082 3.479711 0.436430 +v 0.744082 1.479712 1.302455 +v 0.494082 -0.020288 0.869442 +v 0.244082 0.979712 0.436430 +v 0.744082 -0.020288 1.302455 +v -1.500000 -0.020288 -0.006834 +v -0.500000 0.979712 -0.006834 +v -1.000000 -0.020288 -0.006834 +v -1.500000 1.479712 -0.006834 +v -0.500000 3.479712 -0.006834 +v -0.500000 0.979712 -0.069334 +v -0.500000 3.479712 -0.069334 +v -1.500000 -0.020288 -0.069334 +v -1.000000 -0.020288 -0.069334 +v -1.500000 1.479712 -0.069334 +v -0.744082 -0.020288 -1.302455 +v -0.244082 0.979712 -0.436430 +v -0.494082 -0.020288 -0.869442 +v -0.744082 1.479711 -1.302455 +v -0.244082 3.479711 -0.436430 +v -0.189955 0.979712 -0.467680 +v -0.189955 3.479711 -0.467680 +v -0.689956 -0.020288 -1.333705 +v -0.439955 -0.020288 -0.900692 +v -0.689956 1.479711 -1.333705 +v 1.500000 1.479712 0.069333 +v 1.000000 -0.020288 0.069334 +v 1.500000 -0.020288 0.069333 +v 0.500000 3.479711 0.069334 +v 0.500000 0.979712 0.069334 +v 0.500000 3.479711 0.006834 +v 1.500000 1.479712 0.006834 +v 1.000000 -0.020288 0.006834 +v 0.500000 0.979712 0.006834 +v 1.500000 -0.020288 0.006833 +v -0.755918 -0.020288 1.295621 +v -0.255918 0.979712 0.429596 +v -0.505918 -0.020288 0.862609 +v -0.755918 1.479712 1.295621 +v -0.255918 3.479712 0.429596 +v -0.310045 0.979712 0.398346 +v -0.310045 3.479712 0.398346 +v -0.810045 -0.020288 1.264371 +v -0.560045 -0.020288 0.831359 +v -0.810045 1.479712 1.264371 +vt 0.400000 0.047619 +vt 0.511111 0.000000 +vt 0.533333 0.047619 +vt 0.666667 0.047619 +vt 0.777778 -0.000000 +vt 0.800000 0.047619 +vt 0.133333 0.047619 +vt 0.244444 0.000000 +vt 0.266667 0.047619 +vt 0.644444 0.000000 +vt 0.022222 0.000000 +vt 0.111111 0.000000 +vt 0.850033 0.099935 +vt 0.800066 0.053571 +vt 0.850033 0.007208 +vt 0.266667 0.619048 +vt 0.000000 0.619048 +vt 0.000000 0.047619 +vt 0.533333 0.619048 +vt 0.133333 0.619048 +vt 0.666667 0.619048 +vt 0.400000 0.619048 +vt 0.377778 0.000000 +vt 0.600000 1.000000 +vt 0.800000 0.619048 +vt 0.733333 1.000000 +vt 0.066667 1.000000 +vt 0.200000 1.000000 +vt 0.333333 1.000000 +vt 0.466667 1.000000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.977778 0.202381 +vt 0.988889 0.202381 +vt 0.988889 0.583333 +vt 0.988889 0.107143 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.977778 0.202381 +vt 0.977778 0.107143 +vt 0.988889 0.392857 +vt 0.977778 0.583333 +vt 0.977778 0.392857 +vt 0.988889 0.250000 +vt 0.988889 0.202381 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.977778 0.202381 +vt 0.988889 0.202381 +vt 0.988889 0.583333 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.988889 0.202381 +vt 0.977778 0.202381 +vt 0.988889 0.583333 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.988889 0.202381 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.988889 0.583333 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.977778 0.250000 +vt 0.977778 0.202381 +vt 0.988889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.988889 0.202381 +vt 0.977778 0.202381 +vt 0.988889 0.583333 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.422222 0.000000 +vt 0.688889 0.000000 +vt 0.155556 0.000000 +vt 0.555556 -0.000000 +vt 0.949967 0.007208 +vt 0.999934 0.053571 +vt 0.949967 0.099935 +vt 0.288889 0.000000 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vt 0.988889 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vt 0.977778 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vn -0.4756 -0.3089 -0.8237 +vn -0.4756 -0.3089 0.8237 +vn 0.9511 -0.3089 0.0000 +vn -0.9511 -0.3089 0.0000 +vn 0.4756 -0.3089 0.8237 +vn -0.0000 -1.0000 0.0000 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 0.8660 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.5000 0.0000 0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.4756 -0.3089 -0.8237 +vn -0.9871 0.1603 0.0000 +vn -0.4935 0.1603 0.8548 +vn 0.4935 0.1603 0.8548 +vn 0.9871 0.1603 0.0000 +vn 0.4935 0.1603 -0.8548 +vn -0.4935 0.1603 -0.8548 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 -0.0000 0.5000 +vn 0.4472 0.4472 -0.7746 +vn -0.4472 -0.4472 0.7746 +vn -0.4472 -0.4472 -0.7746 +vn 0.4472 0.4472 0.7746 +vn -0.8660 -0.0000 0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.8944 0.4472 0.0000 +vn 0.8944 -0.4472 0.0000 +vn -0.4472 0.4472 -0.7746 +vn 0.4472 -0.4472 0.7746 +vn -0.8944 -0.4472 0.0000 +vn 0.8944 0.4472 -0.0000 +vn -0.4472 0.4472 0.7746 +vn 0.4472 -0.4472 -0.7746 +s off +f 7/1/1 6/2/1 8/3/1 +f 9/4/2 3/5/2 10/6/2 +f 11/7/3 1/8/3 12/9/3 +f 8/3/4 4/10/4 9/4/4 +f 11/7/5 3/11/5 2/12/5 +f 2/13/6 3/14/6 4/15/6 +f 7/1/7 18/16/7 12/9/7 +f 11/7/8 16/17/8 10/18/8 +f 9/4/9 14/19/9 8/3/9 +f 12/9/10 17/20/10 11/7/10 +f 10/6/11 15/21/11 9/4/11 +f 8/3/12 13/22/12 7/1/12 +f 12/9/13 5/23/13 7/1/13 +f 14/19/14 15/21/14 19/24/14 +f 15/21/15 16/25/15 19/26/15 +f 16/17/16 17/20/16 19/27/16 +f 17/20/17 18/16/17 19/28/17 +f 18/16/18 13/22/18 19/29/18 +f 13/22/19 14/19/19 19/30/19 +f 23/31/20 20/32/20 22/33/20 +f 28/34/21 27/35/21 29/36/21 +f 23/37/7 27/35/7 20/38/7 +f 20/38/6 28/39/6 22/40/6 +f 24/41/22 29/36/22 23/37/22 +f 21/42/23 28/39/23 25/43/23 +f 38/44/24 31/45/24 34/46/24 +f 36/47/25 33/48/25 30/49/25 +f 39/50/6 31/45/6 37/51/6 +f 36/47/8 32/52/8 39/50/8 +f 31/53/26 32/52/26 30/49/26 +f 36/54/27 39/55/27 37/56/27 +f 43/57/28 40/58/28 42/59/28 +f 48/60/29 47/61/29 49/62/29 +f 43/63/9 47/61/9 40/64/9 +f 40/64/6 48/65/6 42/66/6 +f 44/67/30 49/62/30 43/63/30 +f 42/66/31 45/68/31 41/69/31 +f 53/70/26 50/71/26 52/72/26 +f 58/73/27 57/74/27 59/75/27 +f 53/76/12 57/74/12 50/77/12 +f 52/78/6 57/74/6 58/79/6 +f 54/80/32 59/75/32 53/76/32 +f 52/78/33 55/81/33 51/82/33 +f 67/83/34 64/84/34 68/85/34 +f 65/86/35 60/87/35 66/88/35 +f 67/83/6 62/89/6 61/90/6 +f 66/88/10 62/89/10 69/91/10 +f 61/92/28 62/89/28 60/87/28 +f 66/93/29 69/94/29 67/95/29 +f 73/96/21 70/97/21 72/98/21 +f 78/99/20 77/100/20 79/101/20 +f 73/102/11 77/100/11 70/103/11 +f 72/104/6 77/100/6 78/105/6 +f 74/106/36 79/101/36 73/102/36 +f 72/104/37 75/107/37 71/108/37 +f 7/1/1 5/109/1 6/2/1 +f 9/4/2 4/110/2 3/5/2 +f 11/7/3 2/111/3 1/8/3 +f 8/3/4 6/112/4 4/10/4 +f 11/7/5 10/18/5 3/11/5 +f 4/15/6 6/113/6 5/114/6 +f 5/114/6 1/115/6 4/15/6 +f 1/115/6 2/13/6 4/15/6 +f 7/1/7 13/22/7 18/16/7 +f 11/7/8 17/20/8 16/17/8 +f 9/4/9 15/21/9 14/19/9 +f 12/9/10 18/16/10 17/20/10 +f 10/6/11 16/25/11 15/21/11 +f 8/3/12 14/19/12 13/22/12 +f 12/9/13 1/116/13 5/23/13 +f 22/33/20 21/117/20 23/31/20 +f 21/117/20 24/118/20 23/31/20 +f 26/119/21 25/120/21 29/36/21 +f 25/120/21 28/34/21 29/36/21 +f 23/37/7 29/36/7 27/35/7 +f 20/38/6 27/35/6 28/39/6 +f 24/41/22 26/121/22 29/36/22 +f 21/42/23 22/40/23 28/39/23 +f 38/44/24 37/51/24 31/45/24 +f 36/47/25 35/122/25 33/48/25 +f 39/50/6 32/52/6 31/45/6 +f 36/47/8 30/49/8 32/52/8 +f 33/123/26 34/124/26 30/49/26 +f 34/124/26 31/53/26 30/49/26 +f 37/56/27 38/125/27 36/54/27 +f 38/125/27 35/126/27 36/54/27 +f 42/59/28 41/127/28 43/57/28 +f 41/127/28 44/128/28 43/57/28 +f 46/129/29 45/130/29 49/62/29 +f 45/130/29 48/60/29 49/62/29 +f 43/63/9 49/62/9 47/61/9 +f 40/64/6 47/61/6 48/65/6 +f 44/67/30 46/131/30 49/62/30 +f 42/66/31 48/65/31 45/68/31 +f 52/72/26 51/132/26 53/70/26 +f 51/132/26 54/133/26 53/70/26 +f 56/134/27 55/135/27 59/75/27 +f 55/135/27 58/73/27 59/75/27 +f 53/76/12 59/75/12 57/74/12 +f 52/78/6 50/77/6 57/74/6 +f 54/80/32 56/136/32 59/75/32 +f 52/78/33 58/79/33 55/81/33 +f 67/83/34 61/90/34 64/84/34 +f 65/86/35 63/137/35 60/87/35 +f 67/83/6 69/91/6 62/89/6 +f 66/88/10 60/87/10 62/89/10 +f 63/138/28 64/139/28 60/87/28 +f 64/139/28 61/92/28 60/87/28 +f 67/95/29 68/140/29 66/93/29 +f 68/140/29 65/141/29 66/93/29 +f 72/98/21 71/142/21 73/96/21 +f 71/142/21 74/143/21 73/96/21 +f 76/144/20 75/145/20 79/101/20 +f 75/145/20 78/99/20 79/101/20 +f 73/102/11 79/101/11 77/100/11 +f 72/104/6 70/103/6 77/100/6 +f 74/106/36 76/146/36 79/101/36 +f 72/104/37 78/105/37 75/107/37 diff --git a/src/main/resources/assets/hbm/models/missile_strong.obj b/src/main/resources/assets/hbm/models/missile_strong.obj new file mode 100644 index 000000000..e6b97761c --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_strong.obj @@ -0,0 +1,979 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_strong.blend' +# www.blender.org +o Circle +v 0.000000 4.125000 -0.625000 +v -0.239177 4.125000 -0.577425 +v -0.441942 4.125000 -0.441942 +v -0.577425 4.125000 -0.239177 +v -0.625000 4.125000 0.000000 +v -0.577425 4.125000 0.239177 +v -0.441942 4.125000 0.441942 +v -0.239177 4.125000 0.577425 +v -0.000000 4.125000 0.625000 +v 0.239177 4.125000 0.577425 +v 0.441942 4.125000 0.441942 +v 0.577425 4.125000 0.239177 +v 0.625000 4.125000 -0.000000 +v 0.577425 4.125000 -0.239177 +v 0.441942 4.125000 -0.441942 +v 0.239177 4.125000 -0.577425 +v 0.000000 4.875000 -0.630000 +v -0.241091 4.875000 -0.582044 +v -0.445477 4.875000 -0.445477 +v -0.582044 4.875000 -0.241091 +v -0.630000 4.875000 0.000000 +v -0.582044 4.875000 0.241091 +v -0.445477 4.875000 0.445477 +v -0.241091 4.875000 0.582044 +v -0.000000 4.875000 0.630000 +v 0.241090 4.875000 0.582044 +v 0.445477 4.875000 0.445477 +v 0.582044 4.875000 0.241091 +v 0.630000 4.875000 -0.000000 +v 0.582044 4.875000 -0.241091 +v 0.445477 4.875000 -0.445477 +v 0.241090 4.875000 -0.582044 +v 0.000000 5.000000 -0.500000 +v -0.191342 5.000000 -0.461940 +v -0.353553 5.000000 -0.353553 +v -0.461940 5.000000 -0.191342 +v -0.500000 5.000000 0.000000 +v -0.461940 5.000000 0.191342 +v -0.353553 5.000000 0.353553 +v -0.191342 5.000000 0.461940 +v -0.000000 5.000000 0.500000 +v 0.191342 5.000000 0.461940 +v 0.353553 5.000000 0.353554 +v 0.461940 5.000000 0.191342 +v 0.500000 5.000000 -0.000000 +v 0.461940 5.000000 -0.191342 +v 0.353553 5.000000 -0.353554 +v 0.191341 5.000000 -0.461940 +v 0.000000 6.000000 0.000000 +v 0.000000 4.000000 -0.500000 +v -0.191342 4.000000 -0.461940 +v -0.353553 4.000000 -0.353553 +v -0.461940 4.000000 -0.191342 +v -0.500000 4.000000 0.000000 +v -0.461940 4.000000 0.191342 +v -0.353553 4.000000 0.353553 +v -0.191342 4.000000 0.461940 +v -0.000000 4.000000 0.500000 +v 0.191342 4.000000 0.461940 +v 0.353553 4.000000 0.353554 +v 0.461940 4.000000 0.191342 +v 0.500000 4.000000 -0.000000 +v 0.461940 4.000000 -0.191342 +v 0.353553 4.000000 -0.353554 +v 0.191341 4.000000 -0.461940 +v 0.000000 3.500000 -0.500000 +v -0.191342 3.500000 -0.461940 +v -0.353553 3.500000 -0.353553 +v -0.461940 3.500000 -0.191342 +v -0.500000 3.500000 0.000000 +v -0.461940 3.500000 0.191342 +v -0.353553 3.500000 0.353553 +v -0.191342 3.500000 0.461940 +v -0.000000 3.500000 0.500000 +v 0.191342 3.500000 0.461940 +v 0.353553 3.500000 0.353554 +v 0.461940 3.500000 0.191342 +v 0.500000 3.500000 -0.000000 +v 0.461940 3.500000 -0.191342 +v 0.353553 3.500000 -0.353554 +v 0.191341 3.500000 -0.461940 +v 0.000000 2.500000 -0.625000 +v -0.239177 2.500000 -0.577425 +v -0.441942 2.500000 -0.441942 +v -0.577425 2.500000 -0.239177 +v -0.625000 2.500000 0.000000 +v -0.577425 2.500000 0.239177 +v -0.441942 2.500000 0.441942 +v -0.239177 2.500000 0.577425 +v -0.000000 2.500000 0.625000 +v 0.239177 2.500000 0.577425 +v 0.441942 2.500000 0.441942 +v 0.577425 2.500000 0.239177 +v 0.625000 2.500000 -0.000000 +v 0.577425 2.500000 -0.239177 +v 0.441942 2.500000 -0.441942 +v 0.239177 2.500000 -0.577425 +v 0.000000 0.500000 -0.625000 +v -0.239177 0.500000 -0.577425 +v -0.441942 0.500000 -0.441942 +v -0.577425 0.500000 -0.239177 +v -0.625000 0.500000 0.000000 +v -0.577425 0.500000 0.239177 +v -0.441942 0.500000 0.441942 +v -0.239177 0.500000 0.577425 +v -0.000000 0.500000 0.625000 +v 0.239177 0.500000 0.577425 +v 0.441942 0.500000 0.441942 +v 0.577425 0.500000 0.239177 +v 0.625000 0.500000 -0.000000 +v 0.577425 0.500000 -0.239177 +v 0.441942 0.500000 -0.441942 +v 0.239177 0.500000 -0.577425 +v 0.000000 0.500000 -0.500000 +v -0.191342 0.500000 -0.461940 +v -0.353553 0.500000 -0.353553 +v -0.461940 0.500000 -0.191342 +v -0.500000 0.500000 0.000000 +v -0.461940 0.500000 0.191342 +v -0.353553 0.500000 0.353553 +v -0.191342 0.500000 0.461940 +v -0.000000 0.500000 0.500000 +v 0.191342 0.500000 0.461940 +v 0.353553 0.500000 0.353554 +v 0.461940 0.500000 0.191342 +v 0.500000 0.500000 -0.000000 +v 0.461940 0.500000 -0.191342 +v 0.353553 0.500000 -0.353554 +v 0.191341 0.500000 -0.461940 +v 0.000000 0.000000 -0.500000 +v -0.191342 0.000000 -0.461940 +v -0.353553 0.000000 -0.353553 +v -0.461940 0.000000 -0.191342 +v -0.500000 0.000000 0.000000 +v -0.461940 0.000000 0.191342 +v -0.353553 0.000000 0.353553 +v -0.191342 0.000000 0.461940 +v -0.000000 0.000000 0.500000 +v 0.191342 0.000000 0.461940 +v 0.353553 0.000000 0.353554 +v 0.461940 0.000000 0.191342 +v 0.500000 0.000000 -0.000000 +v 0.461940 0.000000 -0.191342 +v 0.353553 0.000000 -0.353554 +v 0.191341 0.000000 -0.461940 +v 0.333224 4.750000 -0.377418 +v 0.885651 4.500000 -0.885651 +v 0.333224 4.250000 -0.377418 +v 0.885651 4.250000 -0.885651 +v 0.377418 4.750000 -0.333224 +v 0.377418 4.250000 -0.333224 +v 0.377418 4.750000 0.333224 +v 0.885652 4.500000 0.885651 +v 0.377418 4.250000 0.333224 +v 0.885652 4.250000 0.885651 +v 0.333224 4.750000 0.377418 +v 0.333224 4.250000 0.377418 +v 0.375651 2.250000 0.331456 +v 0.883884 1.500000 0.883883 +v 0.375651 0.250000 0.331456 +v 0.883884 0.250000 0.883883 +v 0.331456 2.250000 0.375650 +v 0.331456 0.250000 0.375650 +v -0.331456 0.250000 -0.375650 +v -0.331456 2.250000 -0.375650 +v -0.883884 0.250000 -0.883883 +v -0.375651 0.250000 -0.331456 +v -0.883884 1.500000 -0.883883 +v -0.375651 2.250000 -0.331456 +v 0.331456 2.250000 -0.375650 +v 0.883883 1.500000 -0.883883 +v 0.331456 0.250000 -0.375650 +v 0.883883 0.250000 -0.883883 +v 0.375650 2.250000 -0.331456 +v 0.375650 0.250000 -0.331456 +v -0.333224 4.250000 -0.377418 +v -0.333224 4.750000 -0.377418 +v -0.885651 4.250000 -0.885651 +v -0.377418 4.250000 -0.333224 +v -0.885651 4.500000 -0.885651 +v -0.377418 4.750000 -0.333224 +v -0.375650 0.250000 0.331456 +v -0.375650 2.250000 0.331456 +v -0.883883 0.250000 0.883883 +v -0.331456 0.250000 0.375651 +v -0.883883 1.500000 0.883883 +v -0.331456 2.250000 0.375651 +v -0.377418 4.250000 0.333224 +v -0.377418 4.750000 0.333224 +v -0.885651 4.250000 0.885651 +v -0.333224 4.250000 0.377418 +v -0.885651 4.500000 0.885651 +v -0.333224 4.750000 0.377418 +vt 0.350000 0.102041 +vt 0.387500 0.081633 +vt 0.400000 0.102041 +vt 0.437500 0.081633 +vt 0.450000 0.102041 +vt 0.450000 0.081633 +vt 0.500000 0.102041 +vt 0.500000 0.081633 +vt 0.550000 0.102041 +vt 0.550000 0.081633 +vt 0.600000 0.102041 +vt 0.600000 0.081633 +vt 0.650000 0.102041 +vt 0.650000 0.081633 +vt 0.700000 0.102041 +vt 0.737500 0.081633 +vt 0.750000 0.102041 +vt 0.750000 0.081633 +vt 0.800000 0.102041 +vt 0.000000 0.102041 +vt 0.037500 0.081633 +vt 0.050000 0.102041 +vt 0.087500 0.081633 +vt 0.100000 0.102041 +vt 0.100000 0.081633 +vt 0.150000 0.102041 +vt 0.150000 0.081633 +vt 0.200000 0.102041 +vt 0.237500 0.081633 +vt 0.250000 0.102041 +vt 0.250000 0.081633 +vt 0.300000 0.102041 +vt 0.300000 0.081633 +vt 0.970508 0.024075 +vt 0.970508 0.139190 +vt 0.829492 0.139190 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.350000 0.081633 +vt 0.400000 0.081633 +vt 0.487500 0.081633 +vt 0.537500 0.081633 +vt 0.587500 0.081633 +vt 0.637500 0.081633 +vt 0.687500 0.081633 +vt 0.700000 0.081633 +vt 0.787500 0.081633 +vt 0.000000 0.081633 +vt 0.050000 0.081633 +vt 0.137500 0.081633 +vt 0.187500 0.081633 +vt 0.200000 0.081633 +vt 0.287500 0.081633 +vt 0.337500 0.081633 +vt 0.992123 0.050483 +vt 0.999714 0.081633 +vt 0.992123 0.112783 +vt 0.938159 0.156836 +vt 0.900000 0.163032 +vt 0.861841 0.156836 +vt 0.807876 0.112783 +vt 0.800286 0.081633 +vt 0.807877 0.050483 +vt 0.829492 0.024075 +vt 0.861841 0.006430 +vt 0.900000 0.000234 +vt 0.938159 0.006430 +vt 0.700000 0.693878 +vt 0.650000 0.816327 +vt 0.650000 0.693878 +vt 0.300000 0.693878 +vt 0.250000 0.816327 +vt 0.250000 0.693878 +vt 0.750000 0.693878 +vt 0.700000 0.816327 +vt 0.350000 0.693878 +vt 0.300000 0.816327 +vt 0.800000 0.693878 +vt 0.750000 0.816327 +vt 0.400000 0.693878 +vt 0.350000 0.816327 +vt 0.050000 0.693878 +vt 0.000000 0.816327 +vt -0.000000 0.693878 +vt 0.450000 0.693878 +vt 0.400000 0.816327 +vt 0.100000 0.693878 +vt 0.050000 0.816327 +vt 0.500000 0.693878 +vt 0.450000 0.816327 +vt 0.150000 0.693878 +vt 0.100000 0.816327 +vt 0.550000 0.693878 +vt 0.500000 0.816327 +vt 0.200000 0.693878 +vt 0.150000 0.816327 +vt 0.600000 0.816327 +vt 0.600000 0.693878 +vt 0.550000 0.816327 +vt 0.200000 0.816327 +vt 0.150000 0.836735 +vt 0.600000 0.836735 +vt 0.550000 0.836735 +vt 0.200000 0.836735 +vt 0.650000 0.836735 +vt 0.250000 0.836735 +vt 0.700000 0.836735 +vt 0.337500 0.836735 +vt 0.300000 0.836735 +vt 0.800000 0.816327 +vt 0.750000 0.836735 +vt 0.350000 0.836735 +vt -0.000000 0.836735 +vt 0.437500 0.836735 +vt 0.400000 0.836735 +vt 0.050000 0.836735 +vt 0.450000 0.836735 +vt 0.100000 0.836735 +vt 0.500000 0.836735 +vt 0.300000 0.673469 +vt 0.687500 0.836735 +vt 0.662500 1.000000 +vt 0.737500 0.836735 +vt 0.712500 1.000000 +vt 0.787500 0.836735 +vt 0.762500 1.000000 +vt 0.037500 0.836735 +vt 0.012500 1.000000 +vt 0.087500 0.836735 +vt 0.062500 1.000000 +vt 0.137500 0.836735 +vt 0.112500 1.000000 +vt 0.187500 0.836735 +vt 0.162500 1.000000 +vt 0.237500 0.836735 +vt 0.212500 1.000000 +vt 0.287500 0.836735 +vt 0.262500 1.000000 +vt 0.312500 1.000000 +vt 0.387500 0.836735 +vt 0.362500 1.000000 +vt 0.412500 1.000000 +vt 0.487500 0.836735 +vt 0.462500 1.000000 +vt 0.537500 0.836735 +vt 0.512500 1.000000 +vt 0.587500 0.836735 +vt 0.562500 1.000000 +vt 0.637500 0.836735 +vt 0.612500 1.000000 +vt 0.350000 0.673469 +vt 0.400000 0.673469 +vt 0.450000 0.673469 +vt 0.500000 0.673469 +vt 0.587500 0.673469 +vt 0.600000 0.673469 +vt 0.650000 0.673469 +vt 0.700000 0.673469 +vt 0.750000 0.673469 +vt 0.000000 0.673469 +vt 0.050000 0.673469 +vt 0.100000 0.673469 +vt 0.150000 0.673469 +vt 0.200000 0.673469 +vt 0.250000 0.673469 +vt 0.687500 0.591837 +vt 0.687500 0.673469 +vt 0.287500 0.591837 +vt 0.287500 0.673469 +vt 0.737500 0.591837 +vt 0.737500 0.673469 +vt 0.337500 0.591837 +vt 0.337500 0.673469 +vt 0.787500 0.591837 +vt 0.787500 0.673469 +vt 0.387500 0.591837 +vt 0.387500 0.673469 +vt 0.037500 0.591837 +vt 0.037500 0.673469 +vt 0.437500 0.591837 +vt 0.437500 0.673469 +vt 0.087500 0.591837 +vt 0.087500 0.673469 +vt 0.487500 0.591837 +vt 0.487500 0.673469 +vt 0.137500 0.591837 +vt 0.137500 0.673469 +vt 0.537500 0.591837 +vt 0.537500 0.673469 +vt 0.187500 0.591837 +vt 0.187500 0.673469 +vt 0.637500 0.591837 +vt 0.637500 0.673469 +vt 0.550000 0.673469 +vt 0.587500 0.591837 +vt 0.237500 0.591837 +vt 0.237500 0.673469 +vt 0.100000 0.591837 +vt 0.150000 0.428571 +vt 0.500000 0.591837 +vt 0.550000 0.428571 +vt 0.150000 0.591837 +vt 0.200000 0.428571 +vt 0.600000 0.591837 +vt 0.650000 0.428571 +vt 0.550000 0.591837 +vt 0.600000 0.428571 +vt 0.250000 0.428571 +vt 0.650000 0.591837 +vt 0.700000 0.428571 +vt 0.250000 0.591837 +vt 0.300000 0.428571 +vt 0.700000 0.591837 +vt 0.750000 0.428571 +vt 0.300000 0.591837 +vt 0.350000 0.428571 +vt 0.750000 0.591837 +vt 0.800000 0.428571 +vt 0.350000 0.591837 +vt 0.400000 0.428571 +vt -0.000000 0.591837 +vt 0.050000 0.428571 +vt 0.400000 0.591837 +vt 0.450000 0.428571 +vt 0.050000 0.591837 +vt 0.100000 0.428571 +vt 0.450000 0.591837 +vt 0.500000 0.428571 +vt 0.000000 0.428571 +vt 0.537500 -0.000000 +vt 0.187500 0.000000 +vt 0.637500 0.000000 +vt 0.587500 0.000000 +vt 0.237500 0.000000 +vt 0.687500 0.000000 +vt 0.287500 0.000000 +vt 0.737500 -0.000000 +vt 0.337500 0.000000 +vt 0.787500 -0.000000 +vt 0.387500 0.000000 +vt 0.037500 -0.000000 +vt 0.437500 0.000000 +vt 0.087500 -0.000000 +vt 0.487500 0.000000 +vt 0.137500 0.000000 +vt 0.200000 0.591837 +vt 0.500000 -0.000000 +vt 0.150000 0.000000 +vt 0.600000 0.000000 +vt 0.550000 0.000000 +vt 0.200000 -0.000000 +vt 0.650000 0.000000 +vt 0.250000 -0.000000 +vt 0.700000 0.000000 +vt 0.300000 -0.000000 +vt 0.750000 0.000000 +vt 0.350000 -0.000000 +vt -0.000000 0.000000 +vt 0.400000 -0.000000 +vt 0.050000 -0.000000 +vt 0.450000 0.000000 +vt 0.100000 0.000000 +vn 0.0000 -1.0000 0.0000 +vn -0.6771 0.0000 -0.7359 +vn 0.7359 0.0000 0.6771 +vn 0.2236 0.9487 -0.2236 +vn 0.7359 0.0000 -0.6771 +vn -0.6771 0.0000 0.7359 +vn 0.2236 0.9487 0.2236 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 -0.5000 +vn 0.6771 0.0000 -0.7359 +vn -0.7359 0.0000 0.6771 +vn 0.5000 0.7071 -0.5000 +vn -0.2236 0.9487 -0.2236 +vn -0.5000 0.7071 0.5000 +vn -0.7359 0.0000 -0.6771 +vn 0.6771 0.0000 0.7359 +vn -0.2236 0.9487 0.2236 +vn -0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 -0.9239 +vn 0.7071 -0.0067 0.7071 +vn 0.3827 -0.0067 0.9239 +vn -0.9239 -0.0067 -0.3827 +vn 0.9239 -0.0067 0.3827 +vn -1.0000 -0.0067 0.0000 +vn 1.0000 -0.0067 -0.0000 +vn -0.9239 -0.0067 0.3827 +vn 0.9239 -0.0067 -0.3827 +vn -0.7071 -0.0067 0.7071 +vn 0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 0.9239 +vn 0.3827 -0.0067 -0.9239 +vn -0.0000 -0.0067 1.0000 +vn -0.0000 -0.0067 -1.0000 +vn -0.0000 0.7208 0.6931 +vn -0.2652 0.7208 0.6403 +vn -0.2652 0.7208 -0.6403 +vn -0.0000 0.7208 -0.6931 +vn 0.2652 0.7208 -0.6403 +vn 0.2652 0.7208 0.6403 +vn -0.4901 0.7208 -0.4901 +vn -0.2652 0.7208 -0.6404 +vn 0.4901 0.7208 0.4901 +vn -0.6403 0.7208 -0.2652 +vn 0.6403 0.7208 0.2652 +vn -0.6931 0.7208 -0.0000 +vn 0.6931 0.7208 0.0000 +vn -0.6403 0.7208 0.2652 +vn 0.6403 0.7208 -0.2652 +vn -0.4901 0.7208 0.4901 +vn 0.4901 0.7208 -0.4901 +vn 0.5000 -0.7071 0.5000 +vn 0.6533 -0.7071 0.2706 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn 0.0000 1.0000 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.8944 0.4472 -0.0000 +vn -0.8263 0.4472 0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn -0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 0.0000 +vn 0.8263 0.4472 -0.3423 +vn 0.6325 0.4472 -0.6325 +vn 0.3423 0.4472 -0.8263 +vn -0.0000 0.4472 -0.8944 +vn 0.7071 -0.7071 0.0000 +vn 0.6533 -0.7071 -0.2706 +vn 0.5000 -0.7071 -0.5000 +vn 0.2706 -0.7071 -0.6533 +vn -0.0000 -0.7071 -0.7071 +vn -0.2706 -0.7071 -0.6533 +vn -0.5000 -0.7071 -0.5000 +vn -0.6533 -0.7071 -0.2706 +vn -0.7071 -0.7071 -0.0000 +vn -0.6533 -0.7071 0.2706 +vn -0.5000 -0.7071 0.5000 +vn -0.2706 -0.7071 0.6533 +vn -0.0000 -0.7071 0.7071 +vn 0.2706 -0.7071 0.6533 +vn -0.3827 0.0000 -0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.7016 0.1240 0.7016 +vn -0.3797 0.1240 0.9167 +vn 0.7016 0.1240 -0.7016 +vn 0.3797 0.1240 -0.9167 +vn -0.0000 0.1240 0.9923 +vn -0.0000 0.1240 -0.9923 +vn -0.3797 0.1240 -0.9167 +vn 0.3797 0.1240 0.9167 +vn -0.7016 0.1240 -0.7016 +vn 0.7016 0.1240 0.7016 +vn -0.9167 0.1240 -0.3797 +vn 0.9167 0.1240 0.3797 +vn -0.9923 0.1240 -0.0000 +vn 0.9923 0.1240 0.0000 +vn -0.9167 0.1240 0.3797 +vn 0.9167 0.1240 -0.3797 +s off +f 109/1/1 126/2/1 110/3/1 +f 110/3/1 127/4/1 111/5/1 +f 127/6/1 112/7/1 111/5/1 +f 128/8/1 113/9/1 112/7/1 +f 129/10/1 98/11/1 113/9/1 +f 114/12/1 99/13/1 98/11/1 +f 115/14/1 100/15/1 99/13/1 +f 100/15/1 117/16/1 101/17/1 +f 117/18/1 102/19/1 101/17/1 +f 102/20/1 119/21/1 103/22/1 +f 103/22/1 120/23/1 104/24/1 +f 120/25/1 105/26/1 104/24/1 +f 121/27/1 106/28/1 105/26/1 +f 106/28/1 123/29/1 107/30/1 +f 123/31/1 108/32/1 107/30/1 +f 124/33/1 109/1/1 108/32/1 +f 132/34/1 144/35/1 140/36/1 +f 147/37/2 148/38/2 146/39/2 +f 151/40/3 147/37/3 150/41/3 +f 147/42/4 146/43/4 150/41/4 +f 148/44/1 149/45/1 151/40/1 +f 153/46/5 154/47/5 152/48/5 +f 157/49/6 153/46/6 156/50/6 +f 153/51/7 152/52/7 156/50/7 +f 154/53/1 155/54/1 157/49/1 +f 159/55/5 160/56/5 158/57/5 +f 163/58/6 159/55/6 162/59/6 +f 159/60/8 158/61/8 162/59/8 +f 160/62/1 161/63/1 163/58/1 +f 167/64/1 166/65/1 164/66/1 +f 168/67/9 169/68/9 165/69/9 +f 164/66/10 168/70/10 165/69/10 +f 168/70/11 167/71/11 169/72/11 +f 171/73/2 172/74/2 170/75/2 +f 175/76/3 171/73/3 174/77/3 +f 171/78/12 170/79/12 174/77/12 +f 172/80/1 173/81/1 175/76/1 +f 179/82/1 178/83/1 176/84/1 +f 180/85/13 181/86/13 177/87/13 +f 176/84/10 180/88/10 177/87/10 +f 180/88/11 179/89/11 181/90/11 +f 185/91/1 184/92/1 182/93/1 +f 186/94/14 187/95/14 183/96/14 +f 182/93/15 186/97/15 183/96/15 +f 186/97/16 185/98/16 187/99/16 +f 191/100/1 190/101/1 188/102/1 +f 192/103/17 193/104/17 189/105/17 +f 188/102/15 192/106/15 189/105/15 +f 192/106/16 191/107/16 193/108/16 +f 109/1/1 125/109/1 126/2/1 +f 110/3/1 126/110/1 127/4/1 +f 127/6/1 128/111/1 112/7/1 +f 128/8/1 129/112/1 113/9/1 +f 129/10/1 114/113/1 98/11/1 +f 114/12/1 115/114/1 99/13/1 +f 115/14/1 116/115/1 100/15/1 +f 100/15/1 116/116/1 117/16/1 +f 117/18/1 118/117/1 102/19/1 +f 102/20/1 118/118/1 119/21/1 +f 103/22/1 119/119/1 120/23/1 +f 120/25/1 121/120/1 105/26/1 +f 121/27/1 122/121/1 106/28/1 +f 106/28/1 122/122/1 123/29/1 +f 123/31/1 124/123/1 108/32/1 +f 124/33/1 125/124/1 109/1/1 +f 132/34/1 131/125/1 130/126/1 +f 130/126/1 145/127/1 144/35/1 +f 144/35/1 143/128/1 142/129/1 +f 142/129/1 141/130/1 140/36/1 +f 140/36/1 139/131/1 138/132/1 +f 138/132/1 137/133/1 136/134/1 +f 136/134/1 135/135/1 134/136/1 +f 134/136/1 133/137/1 136/134/1 +f 133/137/1 132/34/1 136/134/1 +f 132/34/1 130/126/1 144/35/1 +f 144/35/1 142/129/1 140/36/1 +f 140/36/1 138/132/1 132/34/1 +f 138/132/1 136/134/1 132/34/1 +f 147/37/2 149/45/2 148/38/2 +f 151/40/3 149/45/3 147/37/3 +f 153/46/5 155/54/5 154/47/5 +f 157/49/6 155/54/6 153/46/6 +f 159/55/5 161/63/5 160/56/5 +f 163/58/6 161/63/6 159/55/6 +f 164/66/10 166/65/10 168/70/10 +f 168/70/11 166/65/11 167/71/11 +f 171/73/2 173/81/2 172/74/2 +f 175/76/3 173/81/3 171/73/3 +f 176/84/10 178/83/10 180/88/10 +f 180/88/11 178/83/11 179/89/11 +f 182/93/15 184/92/15 186/97/15 +f 186/97/16 184/92/16 185/98/16 +f 188/102/15 190/101/15 192/106/15 +f 192/106/16 190/101/16 191/107/16 +s 1 +f 3/138/18 18/139/19 2/140/19 +f 11/141/20 26/142/21 10/143/21 +f 4/144/22 19/145/18 3/138/18 +f 12/146/23 27/147/20 11/141/20 +f 5/148/24 20/149/22 4/144/22 +f 13/150/25 28/151/23 12/146/23 +f 6/152/26 21/153/24 5/154/24 +f 14/155/27 29/156/25 13/150/25 +f 7/157/28 22/158/26 6/152/26 +f 15/159/29 30/160/27 14/155/27 +f 8/161/30 23/162/28 7/157/28 +f 16/163/31 31/164/29 15/159/29 +f 9/165/32 24/166/30 8/161/30 +f 2/140/19 17/167/33 1/168/33 +f 1/168/33 32/169/31 16/163/31 +f 10/143/21 25/170/32 9/165/32 +f 25/170/34 40/171/35 24/166/35 +f 18/139/36 33/172/37 17/167/37 +f 17/167/37 48/173/38 32/169/38 +f 26/142/39 41/174/34 25/170/34 +f 19/145/40 34/175/41 18/139/36 +f 27/147/42 42/176/39 26/142/39 +f 20/149/43 35/177/40 19/145/40 +f 27/147/42 44/178/44 43/179/42 +f 21/180/45 36/181/43 20/149/43 +f 29/156/46 44/182/44 28/151/44 +f 22/158/47 37/183/45 21/153/45 +f 29/156/46 46/184/48 45/185/46 +f 23/162/49 38/186/47 22/158/47 +f 31/164/50 46/187/48 30/160/48 +f 24/166/35 39/188/49 23/162/49 +f 32/169/38 47/189/50 31/164/50 +f 60/190/51 12/146/52 11/141/51 +f 34/175/53 35/191/54 49/192/55 +f 35/177/54 36/193/56 49/194/55 +f 36/181/56 37/195/57 49/196/55 +f 37/183/57 38/197/58 49/198/55 +f 38/186/58 39/199/59 49/200/55 +f 39/188/59 40/201/60 49/202/55 +f 40/171/60 41/203/61 49/204/55 +f 41/174/61 42/205/62 49/206/55 +f 42/176/62 43/207/63 49/208/55 +f 43/179/63 44/178/64 49/209/55 +f 44/182/64 45/210/65 49/211/55 +f 45/185/65 46/184/66 49/212/55 +f 46/187/66 47/213/67 49/214/55 +f 47/189/67 48/215/68 49/216/55 +f 48/173/68 33/217/69 49/218/55 +f 33/172/69 34/219/53 49/220/55 +f 61/221/52 13/150/70 12/146/52 +f 62/222/70 14/155/71 13/150/70 +f 63/223/71 15/159/72 14/155/71 +f 64/224/72 16/163/73 15/159/72 +f 16/163/73 50/225/74 1/168/74 +f 50/226/74 2/140/75 1/168/74 +f 51/227/75 3/138/76 2/140/75 +f 52/228/76 4/144/77 3/138/76 +f 53/229/77 5/148/78 4/144/77 +f 54/230/78 6/152/79 5/154/78 +f 55/231/79 7/157/80 6/152/79 +f 56/232/80 8/161/81 7/157/80 +f 57/233/81 9/165/82 8/161/81 +f 58/234/82 10/143/83 9/165/82 +f 59/235/83 11/141/51 10/143/83 +f 51/227/84 68/236/85 52/237/85 +f 59/235/86 76/238/87 60/239/87 +f 52/228/85 69/240/88 53/241/88 +f 60/190/87 77/242/89 61/243/89 +f 53/229/88 70/244/90 54/245/90 +f 61/221/89 78/246/91 62/247/91 +f 54/230/90 71/248/92 55/249/92 +f 62/222/91 79/250/93 63/251/93 +f 55/231/92 72/252/94 56/253/94 +f 63/223/93 80/254/95 64/255/95 +f 56/232/94 73/256/96 57/257/96 +f 64/224/95 81/258/97 65/259/97 +f 57/233/96 74/260/98 58/261/98 +f 50/226/99 67/262/84 51/263/84 +f 65/264/97 66/265/99 50/225/99 +f 58/234/98 75/266/86 59/267/86 +f 72/268/100 89/269/101 73/256/101 +f 80/270/102 97/271/103 81/258/103 +f 73/272/101 90/273/104 74/260/104 +f 66/274/105 83/275/106 67/262/106 +f 81/276/103 82/277/105 66/265/105 +f 75/266/107 90/273/104 91/278/107 +f 67/279/106 84/280/108 68/236/108 +f 75/281/107 92/282/109 76/238/109 +f 68/283/108 85/284/110 69/240/110 +f 76/285/109 93/286/111 77/242/111 +f 69/287/110 86/288/112 70/244/112 +f 77/289/111 94/290/113 78/246/113 +f 70/291/112 87/292/114 71/248/114 +f 78/293/113 95/294/115 79/250/115 +f 71/295/114 88/296/100 72/252/100 +f 79/297/115 96/298/102 80/254/102 +f 93/286/89 110/3/91 94/290/91 +f 86/299/90 103/22/92 87/292/92 +f 94/290/91 111/5/93 95/294/93 +f 87/292/92 104/24/94 88/296/94 +f 95/294/93 112/7/95 96/298/95 +f 88/296/94 105/26/96 89/269/96 +f 96/298/95 113/9/97 97/271/97 +f 89/269/96 106/28/98 90/273/98 +f 82/277/99 99/13/84 83/275/84 +f 97/271/97 98/11/99 82/277/99 +f 90/273/98 107/30/86 91/278/86 +f 83/275/84 100/15/85 84/280/85 +f 91/278/86 108/32/87 92/282/87 +f 84/280/85 101/17/88 85/284/88 +f 92/282/87 109/1/89 93/286/89 +f 85/284/88 102/19/90 86/288/90 +f 128/8/95 145/300/97 129/112/97 +f 121/27/96 138/301/98 122/121/98 +f 114/12/99 131/302/84 115/114/84 +f 129/10/97 130/303/99 114/113/99 +f 122/122/98 139/304/86 123/29/86 +f 115/14/84 132/305/85 116/115/85 +f 123/31/86 140/306/87 124/123/87 +f 116/116/85 133/307/88 117/16/88 +f 124/33/87 141/308/89 125/124/89 +f 117/18/88 134/309/90 118/117/90 +f 125/109/89 142/310/91 126/2/91 +f 118/118/90 135/311/92 119/21/92 +f 126/110/91 143/312/93 127/4/93 +f 119/119/92 136/313/94 120/23/94 +f 127/6/93 144/314/95 128/111/95 +f 120/25/94 137/315/96 121/120/96 +f 3/138/18 19/145/18 18/139/19 +f 11/141/20 27/147/20 26/142/21 +f 4/144/22 20/149/22 19/145/18 +f 12/146/23 28/151/23 27/147/20 +f 5/148/24 21/180/24 20/149/22 +f 13/150/25 29/156/25 28/151/23 +f 6/152/26 22/158/26 21/153/24 +f 14/155/27 30/160/27 29/156/25 +f 7/157/28 23/162/28 22/158/26 +f 15/159/29 31/164/29 30/160/27 +f 8/161/30 24/166/30 23/162/28 +f 16/163/31 32/169/31 31/164/29 +f 9/165/32 25/170/32 24/166/30 +f 2/140/19 18/139/19 17/167/33 +f 1/168/33 17/167/33 32/169/31 +f 10/143/21 26/142/21 25/170/32 +f 25/170/34 41/203/34 40/171/35 +f 18/139/36 34/219/41 33/172/37 +f 17/167/37 33/217/37 48/173/38 +f 26/142/39 42/205/39 41/174/34 +f 19/145/40 35/191/40 34/175/41 +f 27/147/42 43/207/42 42/176/39 +f 20/149/43 36/193/43 35/177/40 +f 27/147/42 28/151/44 44/178/44 +f 21/180/45 37/195/45 36/181/43 +f 29/156/46 45/210/46 44/182/44 +f 22/158/47 38/197/47 37/183/45 +f 29/156/46 30/160/48 46/184/48 +f 23/162/49 39/199/49 38/186/47 +f 31/164/50 47/213/50 46/187/48 +f 24/166/35 40/201/35 39/188/49 +f 32/169/38 48/215/38 47/189/50 +f 60/190/51 61/243/52 12/146/52 +f 61/221/52 62/247/70 13/150/70 +f 62/222/70 63/251/71 14/155/71 +f 63/223/71 64/255/72 15/159/72 +f 64/224/72 65/259/73 16/163/73 +f 16/163/73 65/264/73 50/225/74 +f 50/226/74 51/263/75 2/140/75 +f 51/227/75 52/237/76 3/138/76 +f 52/228/76 53/241/77 4/144/77 +f 53/229/77 54/245/78 5/148/78 +f 54/230/78 55/249/79 6/152/79 +f 55/231/79 56/253/80 7/157/80 +f 56/232/80 57/257/81 8/161/81 +f 57/233/81 58/261/82 9/165/82 +f 58/234/82 59/267/83 10/143/83 +f 59/235/83 60/239/51 11/141/51 +f 51/227/84 67/279/84 68/236/85 +f 59/235/86 75/281/86 76/238/87 +f 52/228/85 68/283/85 69/240/88 +f 60/190/87 76/285/87 77/242/89 +f 53/229/88 69/287/88 70/244/90 +f 61/221/89 77/289/89 78/246/91 +f 54/230/90 70/291/90 71/248/92 +f 62/222/91 78/293/91 79/250/93 +f 55/231/92 71/295/92 72/252/94 +f 63/223/93 79/297/93 80/254/95 +f 56/232/94 72/268/94 73/256/96 +f 64/224/95 80/270/95 81/258/97 +f 57/233/96 73/272/96 74/260/98 +f 50/226/99 66/274/99 67/262/84 +f 65/264/97 81/276/97 66/265/99 +f 58/234/98 74/316/98 75/266/86 +f 72/268/100 88/296/100 89/269/101 +f 80/270/102 96/298/102 97/271/103 +f 73/272/101 89/269/101 90/273/104 +f 66/274/105 82/277/105 83/275/106 +f 81/276/103 97/271/103 82/277/105 +f 75/266/107 74/316/104 90/273/104 +f 67/279/106 83/275/106 84/280/108 +f 75/281/107 91/278/107 92/282/109 +f 68/283/108 84/280/108 85/284/110 +f 76/285/109 92/282/109 93/286/111 +f 69/287/110 85/284/110 86/288/112 +f 77/289/111 93/286/111 94/290/113 +f 70/291/112 86/299/112 87/292/114 +f 78/293/113 94/290/113 95/294/115 +f 71/295/114 87/292/114 88/296/100 +f 79/297/115 95/294/115 96/298/102 +f 93/286/89 109/1/89 110/3/91 +f 86/299/90 102/20/90 103/22/92 +f 94/290/91 110/3/91 111/5/93 +f 87/292/92 103/22/92 104/24/94 +f 95/294/93 111/5/93 112/7/95 +f 88/296/94 104/24/94 105/26/96 +f 96/298/95 112/7/95 113/9/97 +f 89/269/96 105/26/96 106/28/98 +f 82/277/99 98/11/99 99/13/84 +f 97/271/97 113/9/97 98/11/99 +f 90/273/98 106/28/98 107/30/86 +f 83/275/84 99/13/84 100/15/85 +f 91/278/86 107/30/86 108/32/87 +f 84/280/85 100/15/85 101/17/88 +f 92/282/87 108/32/87 109/1/89 +f 85/284/88 101/17/88 102/19/90 +f 128/8/95 144/317/95 145/300/97 +f 121/27/96 137/318/96 138/301/98 +f 114/12/99 130/319/99 131/302/84 +f 129/10/97 145/320/97 130/303/99 +f 122/122/98 138/321/98 139/304/86 +f 115/14/84 131/322/84 132/305/85 +f 123/31/86 139/323/86 140/306/87 +f 116/116/85 132/324/85 133/307/88 +f 124/33/87 140/325/87 141/308/89 +f 117/18/88 133/326/88 134/309/90 +f 125/109/89 141/327/89 142/310/91 +f 118/118/90 134/328/90 135/311/92 +f 126/110/91 142/329/91 143/312/93 +f 119/119/92 135/330/92 136/313/94 +f 127/6/93 143/331/93 144/314/95 +f 120/25/94 136/332/94 137/315/96 diff --git a/src/main/resources/assets/hbm/models/missile_v2.obj b/src/main/resources/assets/hbm/models/missile_v2.obj new file mode 100644 index 000000000..16b7be918 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_v2.obj @@ -0,0 +1,572 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_v2.blend' +# www.blender.org +o Cylinder +v 0.000000 1.500000 -0.500000 +v -0.191342 1.500000 -0.461940 +v -0.353553 1.500000 -0.353553 +v -0.461940 1.500000 -0.191342 +v -0.500000 1.500000 0.000000 +v -0.461940 1.500000 0.191342 +v -0.353553 1.500000 0.353553 +v -0.191342 1.500000 0.461940 +v -0.000000 1.500000 0.500000 +v 0.191342 1.500000 0.461940 +v 0.353553 1.500000 0.353553 +v 0.461940 1.500000 0.191342 +v 0.500000 1.500000 -0.000000 +v 0.461940 1.500000 -0.191342 +v 0.353553 1.500000 -0.353554 +v 0.191341 1.500000 -0.461940 +v 0.000000 4.000000 -0.500000 +v -0.191342 4.000000 -0.461940 +v -0.353553 4.000000 -0.353553 +v -0.461940 4.000000 -0.191342 +v -0.500000 4.000000 0.000000 +v -0.461940 4.000000 0.191342 +v -0.353553 4.000000 0.353553 +v -0.191342 4.000000 0.461940 +v -0.000000 4.000000 0.500000 +v 0.191342 4.000000 0.461940 +v 0.353553 4.000000 0.353554 +v 0.461940 4.000000 0.191342 +v 0.500000 4.000000 -0.000000 +v 0.461940 4.000000 -0.191342 +v 0.353553 4.000000 -0.353554 +v 0.191341 4.000000 -0.461940 +v -0.000000 5.500000 -0.375000 +v -0.143506 5.500000 -0.346455 +v -0.265165 5.500000 -0.265165 +v -0.346455 5.500000 -0.143506 +v -0.375000 5.500000 0.000000 +v -0.346455 5.500000 0.143506 +v -0.265165 5.500000 0.265165 +v -0.143506 5.500000 0.346455 +v -0.000000 5.500000 0.375000 +v 0.143506 5.500000 0.346455 +v 0.265165 5.500000 0.265165 +v 0.346455 5.500000 0.143506 +v 0.375000 5.500000 -0.000000 +v 0.346455 5.500000 -0.143506 +v 0.265165 5.500000 -0.265165 +v 0.143506 5.500000 -0.346455 +v -0.000000 7.000000 0.000000 +v -0.000000 0.500000 -0.375000 +v -0.143506 0.500000 -0.346455 +v -0.265165 0.500000 -0.265165 +v -0.346455 0.500000 -0.143506 +v -0.375000 0.500000 0.000000 +v -0.346455 0.500000 0.143506 +v -0.265165 0.500000 0.265165 +v -0.143506 0.500000 0.346455 +v -0.000000 0.500000 0.375000 +v 0.143506 0.500000 0.346455 +v 0.265165 0.500000 0.265165 +v 0.346455 0.500000 0.143506 +v 0.375000 0.500000 -0.000000 +v 0.346455 0.500000 -0.143506 +v 0.265165 0.500000 -0.265165 +v 0.143506 0.500000 -0.346455 +v -0.198874 0.500000 -0.243068 +v 0.243068 0.500000 -0.198874 +v -0.552427 -0.000000 -0.596621 +v -0.198874 2.500000 -0.243068 +v -0.596621 -0.000000 -0.552427 +v 0.596621 -0.000000 -0.552427 +v -0.243068 0.500000 -0.198874 +v -0.243068 2.500000 -0.198874 +v -0.729204 -0.000000 -0.773398 +v -0.729204 1.500000 -0.773398 +v -0.773398 1.500000 -0.729204 +v -0.773398 -0.000000 -0.729204 +v 0.243068 2.500000 -0.198874 +v 0.552427 -0.000000 -0.596621 +v 0.198874 0.500000 -0.243068 +v 0.198874 2.500000 -0.243068 +v 0.773398 -0.000000 -0.729204 +v 0.773398 1.500000 -0.729204 +v 0.729204 1.500000 -0.773398 +v 0.729204 -0.000000 -0.773398 +v -0.729204 -0.000000 0.773398 +v -0.729204 1.500000 0.773398 +v -0.773398 1.500000 0.729204 +v -0.773398 -0.000000 0.729204 +v -0.198874 2.500000 0.243068 +v -0.198874 0.500000 0.243068 +v -0.552427 -0.000000 0.596621 +v -0.243068 2.500000 0.198874 +v -0.596621 -0.000000 0.552427 +v -0.243068 0.500000 0.198874 +v 0.773398 -0.000000 0.729204 +v 0.773398 1.500000 0.729204 +v 0.729204 1.500000 0.773398 +v 0.729204 -0.000000 0.773398 +v 0.243068 2.500000 0.198874 +v 0.243068 0.500000 0.198874 +v 0.596621 -0.000000 0.552427 +v 0.198874 2.500000 0.243068 +v 0.552427 -0.000000 0.596621 +v 0.198874 0.500000 0.243068 +vt 0.954652 0.411214 +vt 0.954652 0.492632 +vt 0.815840 0.492632 +vt 0.803279 0.240385 +vt 0.786885 0.009615 +vt 0.803279 0.009615 +vt 0.803279 0.750000 +vt 0.786885 0.519231 +vt 0.803279 0.519231 +vt 1.000000 0.509615 +vt 0.868852 0.519231 +vt 0.868852 0.509615 +vt 1.000000 -0.000000 +vt 0.868852 0.009615 +vt 0.868852 -0.000000 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 0.596154 +vt 1.000000 0.086538 +vt 0.803279 0.509615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.803279 0.000000 +vt 0.786885 0.240385 +vt 0.803279 0.394231 +vt 0.786885 0.394231 +vt 0.786885 0.394231 +vt 0.803279 0.240385 +vt 0.803279 0.394231 +vt 0.868852 0.009615 +vt 0.803279 0.000000 +vt 0.868852 -0.000000 +vt 0.803279 0.009615 +vt 1.000000 0.086538 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 -0.000000 +vt 0.786885 0.009615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.868852 0.509615 +vt 0.803279 0.519231 +vt 0.803279 0.509615 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 1.000000 0.519231 +vt 1.000000 0.509615 +vt 0.786885 0.519231 +vt 0.815840 0.411214 +vt 0.847684 0.398734 +vt 0.885246 0.394352 +vt 0.922808 0.398734 +vt 0.975929 0.429891 +vt 0.983401 0.451923 +vt 0.975929 0.473955 +vt 0.922808 0.505112 +vt 0.885246 0.509494 +vt 0.847684 0.505112 +vt 0.794563 0.473955 +vt 0.787091 0.451923 +vt 0.794563 0.429891 +vt 1.000000 0.519231 +vt 1.000000 0.009615 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.903846 +vt 1.000000 0.394231 +vt 0.786885 0.240385 +vt 1.000000 0.394231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.009615 +vt 0.868852 0.519231 +vt 1.000000 0.903846 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 0.295082 0.153846 +vt 0.245902 0.538462 +vt 0.245902 0.153846 +vt 0.737705 0.153846 +vt 0.688525 0.538462 +vt 0.688525 0.153846 +vt 0.344262 0.153846 +vt 0.295082 0.538462 +vt 0.786885 0.153846 +vt 0.737705 0.538462 +vt 0.393443 0.153846 +vt 0.344262 0.538462 +vt 0.049180 0.153846 +vt -0.000000 0.538462 +vt -0.000000 0.153846 +vt 0.442623 0.153846 +vt 0.393443 0.538462 +vt 0.098361 0.153846 +vt 0.049180 0.538462 +vt 0.491803 0.153846 +vt 0.442623 0.538462 +vt 0.147541 0.153846 +vt 0.098361 0.538462 +vt 0.540984 0.153846 +vt 0.491803 0.538462 +vt 0.196721 0.538462 +vt 0.147541 0.538462 +vt 0.639344 0.153846 +vt 0.590164 0.538462 +vt 0.590164 0.153846 +vt 0.540984 0.538462 +vt 0.196721 0.153846 +vt 0.639344 0.538462 +vt 0.573770 0.769231 +vt 0.540984 0.769231 +vt 0.196721 0.769231 +vt 0.672131 0.769231 +vt 0.639344 0.769231 +vt 0.278689 0.769231 +vt 0.245902 0.769231 +vt 0.688525 0.769231 +vt 0.295082 0.769231 +vt 0.770492 0.769231 +vt 0.737705 0.769231 +vt 0.377049 0.769231 +vt 0.344262 0.769231 +vt -0.000000 0.769231 +vt 0.393443 0.769231 +vt 0.081967 0.769231 +vt 0.049180 0.769231 +vt 0.442623 0.769231 +vt 0.098361 0.769231 +vt 0.491803 0.769231 +vt 0.147541 0.769231 +vt 0.590164 0.769231 +vt 0.655738 1.000000 +vt 0.721311 0.769231 +vt 0.704918 1.000000 +vt 0.754098 1.000000 +vt 0.032787 0.769231 +vt 0.016393 1.000000 +vt 0.065574 1.000000 +vt 0.131148 0.769231 +vt 0.114754 1.000000 +vt 0.180328 0.769231 +vt 0.163934 1.000000 +vt 0.229508 0.769231 +vt 0.213115 1.000000 +vt 0.262295 1.000000 +vt 0.327869 0.769231 +vt 0.311475 1.000000 +vt 0.360656 1.000000 +vt 0.426230 0.769231 +vt 0.409836 1.000000 +vt 0.475410 0.769231 +vt 0.459016 1.000000 +vt 0.524590 0.769231 +vt 0.508197 1.000000 +vt 0.557377 1.000000 +vt 0.622951 0.769231 +vt 0.606557 1.000000 +vt 0.278689 0.000000 +vt 0.688525 0.000000 +vt 0.721311 0.000000 +vt 0.295082 0.000000 +vt 0.327869 0.000000 +vt 0.737705 0.000000 +vt 0.770492 0.000000 +vt 0.344262 0.000000 +vt 0.377049 0.000000 +vt -0.000000 0.000000 +vt 0.032787 0.000000 +vt 0.426230 0.000000 +vt 0.081967 0.000000 +vt 0.475410 0.000000 +vt 0.131148 0.000000 +vt 0.491803 0.000000 +vt 0.524590 0.000000 +vt 0.180328 0.000000 +vt 0.622951 0.000000 +vt 0.573770 0.000000 +vt 0.196721 0.000000 +vt 0.229508 0.000000 +vt 0.639344 0.000000 +vt 0.672131 0.000000 +vt 0.786885 0.538462 +vt 0.245902 0.000000 +vt 0.393443 0.000000 +vt 0.049180 0.000000 +vt 0.442623 0.000000 +vt 0.098361 0.000000 +vt 0.147541 0.000000 +vt 0.590164 0.000000 +vt 0.540984 0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.5000 -0.7071 0.5000 +vn -0.5000 -0.7071 0.5000 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn -0.5657 0.6000 -0.5657 +vn 0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 0.5657 +vn 0.5000 -0.7071 -0.5000 +vn 0.5657 0.6000 0.5657 +vn -0.5000 -0.7071 -0.5000 +vn 0.7058 -0.0617 0.7058 +vn 0.3824 0.0413 0.9231 +vn 0.3820 -0.0617 0.9221 +vn -0.9221 -0.0617 -0.3820 +vn -0.7065 0.0413 -0.7065 +vn -0.7058 -0.0617 -0.7058 +vn 0.9221 -0.0617 0.3820 +vn 0.7065 0.0413 0.7065 +vn -0.9981 -0.0617 -0.0000 +vn -0.9231 0.0413 -0.3824 +vn 0.9981 -0.0617 -0.0000 +vn 0.9231 0.0413 0.3824 +vn -0.9221 -0.0617 0.3820 +vn -0.9991 0.0413 0.0000 +vn 0.9221 -0.0617 -0.3820 +vn 0.9991 0.0413 -0.0000 +vn -0.7058 -0.0617 0.7058 +vn -0.9231 0.0413 0.3824 +vn 0.7058 -0.0617 -0.7058 +vn 0.9231 0.0413 -0.3824 +vn -0.3820 -0.0617 0.9221 +vn -0.7065 0.0413 0.7065 +vn 0.3820 -0.0617 -0.9221 +vn 0.7065 0.0413 -0.7065 +vn 0.0000 0.0413 0.9991 +vn -0.3824 0.0413 0.9231 +vn -0.3820 -0.0617 -0.9221 +vn -0.0000 0.0413 -0.9991 +vn -0.0000 -0.0617 -0.9981 +vn 0.3824 0.0413 -0.9231 +vn -0.0000 -0.0617 0.9981 +vn -0.3824 0.0413 -0.9231 +vn -0.0000 0.1617 -0.9868 +vn 0.3776 0.1617 -0.9117 +vn -0.0000 0.1617 0.9868 +vn -0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 -0.9117 +vn 0.6978 0.1617 0.6978 +vn 0.3776 0.1617 0.9117 +vn -0.9868 0.1617 0.0000 +vn -0.9117 0.1617 -0.3776 +vn 0.9868 0.1617 0.0000 +vn 0.9117 0.1617 0.3776 +vn -0.6978 0.1617 0.6978 +vn -0.9117 0.1617 0.3776 +vn 0.9117 0.1617 -0.3776 +vn 0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 0.9117 +vn -0.0000 1.0000 0.0000 +vn 0.7016 -0.1240 0.7016 +vn -0.7016 -0.1240 -0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 -0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 0.9923 +vn -0.3797 -0.1240 -0.9167 +vn -0.0000 -0.1240 -0.9923 +vn 0.3797 -0.1240 0.9167 +s off +f 64/1/1 60/2/1 56/3/1 +f 84/4/2 82/5/2 85/6/2 +f 76/7/3 74/8/3 77/9/3 +f 66/10/4 70/11/4 68/12/4 +f 67/13/5 79/14/5 71/15/5 +f 75/16/2 66/17/2 74/18/2 +f 83/19/6 67/20/6 82/21/6 +f 76/7/7 77/9/7 72/22/7 +f 84/4/3 85/6/3 80/23/3 +f 70/11/1 74/24/1 68/12/1 +f 75/25/8 73/26/8 69/27/8 +f 71/15/1 85/6/1 82/28/1 +f 83/29/9 81/30/9 78/31/9 +f 93/32/10 87/33/10 90/34/10 +f 92/35/1 89/36/1 94/37/1 +f 87/33/6 86/38/6 91/39/6 +f 88/40/3 95/41/3 89/42/3 +f 95/43/11 92/35/11 94/37/11 +f 87/33/7 89/44/7 86/38/7 +f 98/45/12 100/46/12 103/47/12 +f 104/48/1 96/49/1 99/50/1 +f 97/51/2 96/49/2 101/52/2 +f 98/53/7 105/54/7 99/55/7 +f 101/56/13 104/48/13 105/57/13 +f 97/51/6 99/58/6 96/49/6 +f 52/59/1 51/60/1 50/61/1 +f 50/61/1 65/62/1 64/1/1 +f 64/1/1 63/63/1 60/2/1 +f 63/63/1 62/64/1 60/2/1 +f 62/64/1 61/65/1 60/2/1 +f 60/2/1 59/66/1 56/3/1 +f 59/66/1 58/67/1 56/3/1 +f 58/67/1 57/68/1 56/3/1 +f 56/3/1 55/69/1 54/70/1 +f 54/70/1 53/71/1 52/59/1 +f 52/59/1 50/61/1 64/1/1 +f 56/3/1 54/70/1 52/59/1 +f 52/59/1 64/1/1 56/3/1 +f 84/4/2 83/29/2 82/5/2 +f 76/7/3 75/25/3 74/8/3 +f 66/10/4 72/72/4 70/11/4 +f 67/13/5 80/73/5 79/14/5 +f 69/74/2 66/17/2 75/16/2 +f 66/17/2 68/75/2 74/18/2 +f 78/76/6 67/20/6 83/19/6 +f 67/20/6 71/77/6 82/21/6 +f 70/11/7 72/22/7 77/9/7 +f 72/22/7 73/78/7 76/7/7 +f 79/14/3 80/23/3 85/6/3 +f 80/23/3 81/79/3 84/4/3 +f 70/11/1 77/9/1 74/24/1 +f 75/25/8 76/7/8 73/26/8 +f 71/15/1 79/14/1 85/6/1 +f 83/29/9 84/4/9 81/30/9 +f 93/32/10 88/80/10 87/33/10 +f 92/35/1 86/38/1 89/36/1 +f 92/35/6 91/39/6 86/38/6 +f 91/39/6 90/81/6 87/33/6 +f 93/82/3 95/41/3 88/40/3 +f 95/41/3 94/83/3 89/42/3 +f 95/43/11 91/84/11 92/35/11 +f 87/33/7 88/80/7 89/44/7 +f 98/45/12 97/51/12 100/46/12 +f 104/48/1 102/85/1 96/49/1 +f 102/85/2 101/52/2 96/49/2 +f 101/52/2 100/86/2 97/51/2 +f 103/87/7 105/54/7 98/53/7 +f 105/54/7 104/88/7 99/55/7 +f 101/56/13 102/85/13 104/48/13 +f 97/51/6 98/45/6 99/58/6 +s 1 +f 11/89/14 26/90/15 10/91/16 +f 4/92/17 19/93/18 3/94/19 +f 12/95/20 27/96/21 11/89/14 +f 5/97/22 20/98/23 4/92/17 +f 13/99/24 28/100/25 12/95/20 +f 6/101/26 21/102/27 5/103/22 +f 14/104/28 29/105/29 13/99/24 +f 7/106/30 22/107/31 6/101/26 +f 15/108/32 30/109/33 14/104/28 +f 8/110/34 23/111/35 7/106/30 +f 16/112/36 31/113/37 15/108/32 +f 8/110/34 25/114/38 24/115/39 +f 2/116/40 17/117/41 1/118/42 +f 1/118/42 32/119/43 16/112/36 +f 10/91/16 25/114/38 9/120/44 +f 3/94/19 18/121/45 2/116/40 +f 32/119/43 33/122/46 48/123/47 +f 26/90/15 41/124/48 25/114/38 +f 18/121/45 35/125/49 34/126/50 +f 26/90/15 43/127/51 42/128/52 +f 20/98/23 35/129/49 19/93/18 +f 28/100/25 43/130/51 27/96/21 +f 20/98/23 37/131/53 36/132/54 +f 28/100/25 45/133/55 44/134/56 +f 22/107/31 37/135/53 21/102/27 +f 30/109/33 45/136/55 29/105/29 +f 22/107/31 39/137/57 38/138/58 +f 31/113/37 46/139/59 30/109/33 +f 24/115/39 39/140/57 23/111/35 +f 32/119/43 47/141/60 31/113/37 +f 25/114/38 40/142/61 24/115/39 +f 18/121/45 33/143/46 17/117/41 +f 34/126/50 35/125/49 49/144/62 +f 35/129/49 36/145/54 49/146/62 +f 36/132/54 37/131/53 49/147/62 +f 37/135/53 38/148/58 49/149/62 +f 38/138/58 39/137/57 49/150/62 +f 39/140/57 40/151/61 49/152/62 +f 40/142/61 41/153/48 49/154/62 +f 41/124/48 42/155/52 49/156/62 +f 42/128/52 43/127/51 49/157/62 +f 43/130/51 44/158/56 49/159/62 +f 44/134/56 45/133/55 49/160/62 +f 45/136/55 46/161/59 49/162/62 +f 46/139/59 47/163/60 49/164/62 +f 47/141/60 48/165/47 49/166/62 +f 48/123/47 33/122/46 49/167/62 +f 33/143/46 34/168/50 49/169/62 +f 10/91/16 60/170/63 11/89/14 +f 4/92/17 52/171/64 53/172/65 +f 12/95/20 60/173/63 61/174/66 +f 5/97/22 53/175/65 54/176/67 +f 13/99/24 61/177/66 62/178/68 +f 6/101/26 54/179/67 55/180/69 +f 13/99/24 63/181/70 14/104/28 +f 6/101/26 56/182/71 7/106/30 +f 14/104/28 64/183/72 15/108/32 +f 7/106/30 57/184/73 8/110/34 +f 16/112/36 64/185/72 65/186/74 +f 8/110/34 58/187/75 9/120/44 +f 1/118/42 51/188/76 2/116/40 +f 16/112/36 50/189/77 1/118/42 +f 10/91/16 58/190/75 59/191/78 +f 3/94/19 51/192/76 52/193/64 +f 11/89/14 27/96/21 26/90/15 +f 4/92/17 20/98/23 19/93/18 +f 12/95/20 28/100/25 27/96/21 +f 5/97/22 21/194/27 20/98/23 +f 13/99/24 29/105/29 28/100/25 +f 6/101/26 22/107/31 21/102/27 +f 14/104/28 30/109/33 29/105/29 +f 7/106/30 23/111/35 22/107/31 +f 15/108/32 31/113/37 30/109/33 +f 8/110/34 24/115/39 23/111/35 +f 16/112/36 32/119/43 31/113/37 +f 8/110/34 9/120/44 25/114/38 +f 2/116/40 18/121/45 17/117/41 +f 1/118/42 17/117/41 32/119/43 +f 10/91/16 26/90/15 25/114/38 +f 3/94/19 19/93/18 18/121/45 +f 32/119/43 17/117/41 33/122/46 +f 26/90/15 42/155/52 41/124/48 +f 18/121/45 19/93/18 35/125/49 +f 26/90/15 27/96/21 43/127/51 +f 20/98/23 36/145/54 35/129/49 +f 28/100/25 44/158/56 43/130/51 +f 20/98/23 21/194/27 37/131/53 +f 28/100/25 29/105/29 45/133/55 +f 22/107/31 38/148/58 37/135/53 +f 30/109/33 46/161/59 45/136/55 +f 22/107/31 23/111/35 39/137/57 +f 31/113/37 47/163/60 46/139/59 +f 24/115/39 40/151/61 39/140/57 +f 32/119/43 48/165/47 47/141/60 +f 25/114/38 41/153/48 40/142/61 +f 18/121/45 34/168/50 33/143/46 +f 10/91/16 59/195/78 60/170/63 +f 4/92/17 3/94/19 52/171/64 +f 12/95/20 11/89/14 60/173/63 +f 5/97/22 4/92/17 53/175/65 +f 13/99/24 12/95/20 61/177/66 +f 6/101/26 5/103/22 54/179/67 +f 13/99/24 62/196/68 63/181/70 +f 6/101/26 55/197/69 56/182/71 +f 14/104/28 63/198/70 64/183/72 +f 7/106/30 56/199/71 57/184/73 +f 16/112/36 15/108/32 64/185/72 +f 8/110/34 57/200/73 58/187/75 +f 1/118/42 50/201/77 51/188/76 +f 16/112/36 65/202/74 50/189/77 +f 10/91/16 9/120/44 58/190/75 +f 3/94/19 2/116/40 51/192/76 diff --git a/src/main/resources/assets/hbm/models/mobs/plasticbag.obj b/src/main/resources/assets/hbm/models/mobs/plasticbag.obj new file mode 100644 index 000000000..239dd3d8e --- /dev/null +++ b/src/main/resources/assets/hbm/models/mobs/plasticbag.obj @@ -0,0 +1,97 @@ +# Blender v2.79 (sub 0) OBJ File: 'plasticbag.blend' +# www.blender.org +o Cube_Cube.001 +v -0.187500 -0.250000 0.125000 +v -0.187500 0.250000 0.125000 +v -0.187500 -0.250000 -0.125000 +v -0.187500 0.250000 -0.125000 +v 0.187500 -0.250000 0.125000 +v 0.187500 0.250000 0.125000 +v 0.187500 -0.250000 -0.125000 +v 0.187500 0.250000 -0.125000 +v -0.125000 0.250000 0.125000 +v -0.125000 0.250000 -0.125000 +v -0.062500 0.250000 0.125000 +v -0.062500 0.250000 -0.125000 +v -0.125000 0.375000 0.125000 +v -0.125000 0.375000 -0.125000 +v -0.062500 0.375000 0.125000 +v -0.062500 0.375000 -0.125000 +v 0.062500 0.250000 0.125000 +v 0.062500 0.250000 -0.125000 +v 0.125000 0.250000 0.125000 +v 0.125000 0.250000 -0.125000 +v 0.062500 0.375000 0.125000 +v 0.062500 0.375000 -0.125000 +v 0.125000 0.375000 0.125000 +v 0.125000 0.375000 -0.125000 +v -0.062500 0.437500 0.125000 +v -0.062500 0.437500 -0.125000 +v 0.062500 0.437500 0.125000 +v 0.062500 0.437500 -0.125000 +vt 1.000000 1.000000 +vt 0.600000 0.333333 +vt 1.000000 0.333333 +vt 0.600000 1.000000 +vt -0.000000 0.333333 +vt 1.000000 1.000000 +vt 0.600000 0.333333 +vt 1.000000 0.333333 +vt 0.600000 1.000000 +vt -0.000000 0.333333 +vt 0.600000 0.000000 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.900000 0.166667 +vt 0.900000 0.000000 +vt 0.700000 0.000000 +vt 0.600000 0.166667 +vt 0.600000 0.000000 +vt 1.000000 0.000000 +vt 0.900000 0.166667 +vt 0.900000 0.000000 +vt 0.700000 0.000000 +vt 0.600000 0.166667 +vt 0.600000 0.000000 +vt 0.700000 0.250000 +vt 0.700000 0.166667 +vt 0.900000 0.250000 +vt 0.700000 0.166667 +vt 0.700000 0.250000 +vt 1.000000 0.166667 +vt 1.000000 0.166667 +vt 0.900000 0.250000 +vt -0.000000 1.000000 +vt -0.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/2/2 +f 8/6/3 5/7/3 7/8/3 +f 6/9/4 1/10/4 5/7/4 +f 7/11/5 1/10/5 3/12/5 +f 19/13/4 21/14/4 17/15/4 +f 11/16/4 13/17/4 9/18/4 +f 10/19/2 16/20/2 12/21/2 +f 18/22/2 24/23/2 20/24/2 +f 16/20/2 28/25/2 22/26/2 +f 27/27/4 15/28/4 21/14/4 +f 13/17/4 15/28/4 25/29/4 +f 21/14/4 23/30/4 27/27/4 +f 22/26/2 28/25/2 24/23/2 +f 16/20/2 14/31/2 26/32/2 +f 2/1/1 4/4/1 3/2/1 +f 4/4/2 8/33/2 7/5/2 +f 8/6/3 6/9/3 5/7/3 +f 6/9/4 2/34/4 1/10/4 +f 7/11/5 5/7/5 1/10/5 +f 19/13/4 23/30/4 21/14/4 +f 11/16/4 15/28/4 13/17/4 +f 10/19/2 14/31/2 16/20/2 +f 18/22/2 22/26/2 24/23/2 +f 16/20/2 26/32/2 28/25/2 +f 27/27/4 25/29/4 15/28/4 diff --git a/src/main/resources/assets/hbm/models/mush.hmf b/src/main/resources/assets/hbm/models/mush.hmf deleted file mode 100644 index f68b80d1e..000000000 --- a/src/main/resources/assets/hbm/models/mush.hmf +++ /dev/null @@ -1,2093 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'mush.blend' -# www.blender.org -o Cylinder -v -0.000000 0.000000 -2.999999 -v -0.000000 4.000000 -2.000000 -v 0.585271 0.000000 -2.942355 -v 0.390181 4.000000 -1.961570 -v 1.148050 0.000000 -2.771638 -v 0.765367 4.000000 -1.847759 -v 1.666710 0.000000 -2.494408 -v 1.111140 4.000000 -1.662939 -v 2.121320 0.000000 -2.121320 -v 1.414213 4.000000 -1.414213 -v 2.494409 0.000000 -1.666710 -v 1.662939 4.000000 -1.111140 -v 2.771638 0.000000 -1.148050 -v 1.847759 4.000000 -0.765367 -v 2.942355 0.000000 -0.585271 -v 1.961570 4.000000 -0.390180 -v 3.000000 0.000000 0.000000 -v 2.000000 4.000000 0.000000 -v 2.942356 0.000000 0.585271 -v 1.961571 4.000000 0.390181 -v 2.771638 0.000000 1.148051 -v 1.847759 4.000000 0.765367 -v 2.494409 0.000000 1.666711 -v 1.662939 4.000000 1.111141 -v 2.121320 0.000000 2.121321 -v 1.414213 4.000000 1.414214 -v 1.666710 0.000000 2.494410 -v 1.111140 4.000000 1.662940 -v 1.148050 0.000000 2.771640 -v 0.765366 4.000000 1.847760 -v 0.585270 0.000000 2.942357 -v 0.390180 4.000000 1.961571 -v -0.000001 0.000000 3.000000 -v -0.000001 4.000000 2.000000 -v -0.585272 0.000000 2.942356 -v -0.390182 4.000000 1.961571 -v -1.148052 0.000000 2.771639 -v -0.765368 4.000000 1.847759 -v -1.666712 0.000000 2.494409 -v -1.111142 4.000000 1.662939 -v -2.121322 0.000000 2.121320 -v -1.414215 4.000000 1.414213 -v -2.494411 0.000000 1.666710 -v -1.662940 4.000000 1.111140 -v -2.771640 0.000000 1.148049 -v -1.847760 4.000000 0.765366 -v -2.942357 0.000000 0.585269 -v -1.961571 4.000000 0.390179 -v -3.000000 0.000000 -0.000002 -v -2.000000 4.000000 -0.000002 -v -2.942356 0.000000 -0.585274 -v -1.961570 4.000000 -0.390182 -v -2.771638 0.000000 -1.148053 -v -1.847758 4.000000 -0.765369 -v -2.494407 0.000000 -1.666713 -v -1.662938 4.000000 -1.111142 -v -2.121318 0.000000 -2.121322 -v -1.414212 4.000000 -1.414215 -v -1.666708 0.000000 -2.494411 -v -1.111138 4.000000 -1.662940 -v -1.148046 0.000000 -2.771640 -v -0.765364 4.000000 -1.847760 -v -0.585267 0.000000 -2.942356 -v -0.390178 4.000000 -1.961571 -v 0.292634 9.000000 -1.471178 -v -0.000001 9.000000 -1.500000 -v 0.574024 9.000000 -1.385819 -v 0.833354 9.000000 -1.247204 -v 1.060659 9.000000 -1.060660 -v 1.247203 9.000000 -0.833355 -v 1.385818 9.000000 -0.574025 -v 1.471177 9.000000 -0.292635 -v 1.499999 9.000000 0.000000 -v 1.471177 9.000000 0.292635 -v 1.385818 9.000000 0.574025 -v 1.247203 9.000000 0.833355 -v 1.060659 9.000000 1.060660 -v 0.833354 9.000000 1.247205 -v 0.574024 9.000000 1.385820 -v 0.292634 9.000000 1.471178 -v -0.000002 9.000000 1.500000 -v -0.292637 9.000000 1.471178 -v -0.574027 9.000000 1.385819 -v -0.833357 9.000000 1.247204 -v -1.060662 9.000000 1.060660 -v -1.247206 9.000000 0.833355 -v -1.385821 9.000000 0.574024 -v -1.471179 9.000000 0.292634 -v -1.500001 9.000000 -0.000001 -v -1.471179 9.000000 -0.292637 -v -1.385820 9.000000 -0.574027 -v -1.247205 9.000000 -0.833357 -v -1.060660 9.000000 -1.060661 -v -0.833355 9.000000 -1.247205 -v -0.574024 9.000000 -1.385820 -v -0.292635 9.000000 -1.471178 -v 0.243864 22.000000 -1.225981 -v 0.000001 22.000000 -1.250000 -v 0.478355 22.000000 -1.154849 -v 0.694464 22.000000 -1.039337 -v 0.883885 22.000000 -0.883883 -v 1.039338 22.000000 -0.694463 -v 1.154850 22.000000 -0.478354 -v 1.225983 22.000000 -0.243863 -v 1.250001 22.000000 -0.000000 -v 1.225983 22.000000 0.243863 -v 1.154851 22.000000 0.478354 -v 1.039338 22.000000 0.694463 -v 0.883885 22.000000 0.883884 -v 0.694464 22.000000 1.039337 -v 0.478355 22.000000 1.154850 -v 0.243864 22.000000 1.225982 -v 0.000001 22.000000 1.250000 -v -0.243862 22.000000 1.225982 -v -0.478354 22.000000 1.154849 -v -0.694462 22.000000 1.039337 -v -0.883883 22.000000 0.883883 -v -1.039336 22.000000 0.694462 -v -1.154849 22.000000 0.478353 -v -1.225981 22.000000 0.243862 -v -1.249999 22.000000 -0.000001 -v -1.225980 22.000000 -0.243864 -v -1.154848 22.000000 -0.478356 -v -1.039335 22.000000 -0.694464 -v -0.883881 22.000000 -0.883884 -v -0.694460 22.000000 -1.039338 -v -0.478351 22.000000 -1.154850 -v -0.243860 22.000000 -1.225982 -v 0.390184 20.000000 -1.961570 -v 0.000004 20.000000 -2.000000 -v 0.765370 20.000000 -1.847759 -v 1.111144 20.000000 -1.662939 -v 1.414217 20.000000 -1.414213 -v 1.662943 20.000000 -1.111140 -v 1.847763 20.000000 -0.765367 -v 1.961574 20.000000 -0.390180 -v 2.000004 20.000000 0.000000 -v 1.961574 20.000000 0.390181 -v 1.847763 20.000000 0.765367 -v 1.662943 20.000000 1.111141 -v 1.414217 20.000000 1.414214 -v 1.111144 20.000000 1.662940 -v 0.765370 20.000000 1.847760 -v 0.390184 20.000000 1.961571 -v 0.000003 20.000000 2.000000 -v -0.390178 20.000000 1.961571 -v -0.765364 20.000000 1.847759 -v -1.111138 20.000000 1.662939 -v -1.414211 20.000000 1.414213 -v -1.662936 20.000000 1.111140 -v -1.847756 20.000000 0.765366 -v -1.961567 20.000000 0.390179 -v -1.999996 20.000000 -0.000002 -v -1.961566 20.000000 -0.390182 -v -1.847754 20.000000 -0.765369 -v -1.662934 20.000000 -1.111142 -v -1.414208 20.000000 -1.414215 -v -1.111135 20.000000 -1.662941 -v -0.765361 20.000000 -1.847760 -v -0.390174 20.000000 -1.961571 -v 0.546257 20.000000 -2.746198 -v 0.000004 20.000000 -2.799999 -v 1.071518 20.000000 -2.586862 -v 1.555601 20.000000 -2.328114 -v 1.979903 20.000000 -1.979898 -v 2.328119 20.000000 -1.555596 -v 2.586867 20.000000 -1.071513 -v 2.746203 20.000000 -0.546253 -v 2.800004 20.000000 0.000000 -v 2.746203 20.000000 0.546253 -v 2.586867 20.000000 1.071514 -v 2.328119 20.000000 1.555597 -v 1.979903 20.000000 1.979900 -v 1.555601 20.000000 2.328115 -v 1.071517 20.000000 2.586864 -v 0.546256 20.000000 2.746200 -v 0.000003 20.000000 2.800000 -v -0.546250 20.000000 2.746199 -v -1.071511 20.000000 2.586863 -v -1.555594 20.000000 2.328115 -v -1.979896 20.000000 1.979898 -v -2.328112 20.000000 1.555596 -v -2.586860 20.000000 1.071512 -v -2.746195 20.000000 0.546251 -v -2.799996 20.000000 -0.000002 -v -2.746194 20.000000 -0.546255 -v -2.586858 20.000000 -1.071516 -v -2.328109 20.000000 -1.555599 -v -1.979892 20.000000 -1.979901 -v -1.555590 20.000000 -2.328117 -v -1.071506 20.000000 -2.586864 -v -0.546245 20.000000 -2.746199 -v 0.663312 21.000000 -3.334670 -v 0.000004 21.000000 -3.400000 -v 1.301128 21.000000 -3.141190 -v 1.888944 21.000000 -2.826996 -v 2.404167 21.000000 -2.404163 -v 2.827002 21.000000 -1.888938 -v 3.141195 21.000000 -1.301123 -v 3.334675 21.000000 -0.663307 -v 3.400004 21.000000 0.000000 -v 3.334675 21.000000 0.663307 -v 3.141196 21.000000 1.301124 -v 2.827002 21.000000 1.888939 -v 2.404167 21.000000 2.404164 -v 1.888943 21.000000 2.826997 -v 1.301127 21.000000 3.141191 -v 0.663311 21.000000 3.334671 -v 0.000003 21.000000 3.400000 -v -0.663304 21.000000 3.334670 -v -1.301121 21.000000 3.141190 -v -1.888936 21.000000 2.826996 -v -2.404160 21.000000 2.404162 -v -2.826994 21.000000 1.888937 -v -3.141187 21.000000 1.301122 -v -3.334666 21.000000 0.663305 -v -3.399996 21.000000 -0.000003 -v -3.334665 21.000000 -0.663310 -v -3.141184 21.000000 -1.301127 -v -2.826990 21.000000 -1.888942 -v -2.404155 21.000000 -2.404165 -v -1.888931 21.000000 -2.826999 -v -1.301115 21.000000 -3.141192 -v -0.663298 21.000000 -3.334670 -v 0.663312 22.000000 -3.334670 -v 0.000005 22.000000 -3.400000 -v 1.301129 22.000000 -3.141190 -v 1.888944 22.000000 -2.826996 -v 2.404168 22.000000 -2.404163 -v 2.827002 22.000000 -1.888938 -v 3.141195 22.000000 -1.301123 -v 3.334675 22.000000 -0.663307 -v 3.400005 22.000000 0.000000 -v 3.334675 22.000000 0.663307 -v 3.141196 22.000000 1.301124 -v 2.827002 22.000000 1.888939 -v 2.404168 22.000000 2.404164 -v 1.888944 22.000000 2.826997 -v 1.301128 22.000000 3.141191 -v 0.663311 22.000000 3.334671 -v 0.000004 22.000000 3.400000 -v -0.663304 22.000000 3.334670 -v -1.301120 22.000000 3.141190 -v -1.888936 22.000000 2.826996 -v -2.404160 22.000000 2.404162 -v -2.826993 22.000000 1.888937 -v -3.141187 22.000000 1.301122 -v -3.334666 22.000000 0.663305 -v -3.399995 22.000000 -0.000003 -v -3.334665 22.000000 -0.663310 -v -3.141184 22.000000 -1.301127 -v -2.826989 22.000000 -1.888942 -v -2.404155 22.000000 -2.404165 -v -1.888930 22.000000 -2.826999 -v -1.301114 22.000000 -3.141192 -v -0.663297 22.000000 -3.334670 -v 0.468222 24.000000 -2.353884 -v 0.000006 24.000000 -2.400000 -v 0.918446 24.000000 -2.217310 -v 1.333374 24.000000 -1.995527 -v 1.697062 24.000000 -1.697056 -v 1.995533 24.000000 -1.333368 -v 2.217317 24.000000 -0.918440 -v 2.353890 24.000000 -0.468216 -v 2.400005 24.000000 0.000000 -v 2.353890 24.000000 0.468217 -v 2.217317 24.000000 0.918440 -v 1.995533 24.000000 1.333369 -v 1.697062 24.000000 1.697057 -v 1.333374 24.000000 1.995528 -v 0.918445 24.000000 2.217312 -v 0.468222 24.000000 2.353885 -v 0.000005 24.000000 2.400000 -v -0.468212 24.000000 2.353885 -v -0.918436 24.000000 2.217311 -v -1.333364 24.000000 1.995527 -v -1.697052 24.000000 1.697056 -v -1.995522 24.000000 1.333368 -v -2.217306 24.000000 0.918439 -v -2.353879 24.000000 0.468215 -v -2.399995 24.000000 -0.000002 -v -2.353878 24.000000 -0.468219 -v -2.217304 24.000000 -0.918442 -v -1.995520 24.000000 -1.333371 -v -1.697048 24.000000 -1.697058 -v -1.333360 24.000000 -1.995528 -v -0.918431 24.000000 -2.217312 -v -0.468208 24.000000 -2.353885 -v 1.053494 23.000000 -5.296239 -v 0.000006 23.000000 -5.399999 -v 2.066497 23.000000 -4.988948 -v 3.000085 23.000000 -4.489934 -v 3.818383 23.000000 -3.818375 -v 4.489942 23.000000 -3.000077 -v 4.988955 23.000000 -2.066489 -v 5.296246 23.000000 -1.053487 -v 5.400004 23.000000 0.000001 -v 5.296246 23.000000 1.053488 -v 4.988955 23.000000 2.066491 -v 4.489942 23.000000 3.000080 -v 3.818383 23.000000 3.818377 -v 3.000085 23.000000 4.489937 -v 2.066496 23.000000 4.988951 -v 1.053492 23.000000 5.296242 -v 0.000004 23.000000 5.400001 -v -1.053484 23.000000 5.296241 -v -2.066487 23.000000 4.988949 -v -3.000076 23.000000 4.489935 -v -3.818373 23.000000 3.818375 -v -4.489932 23.000000 3.000077 -v -4.988945 23.000000 2.066488 -v -5.296236 23.000000 1.053484 -v -5.399994 23.000000 -0.000004 -v -5.296233 23.000000 -1.053492 -v -4.988941 23.000000 -2.066495 -v -4.489926 23.000000 -3.000083 -v -3.818366 23.000000 -3.818380 -v -3.000067 23.000000 -4.489939 -v -2.066477 23.000000 -4.988951 -v -1.053474 23.000000 -5.296240 -v 1.755819 24.000000 -8.827065 -v 0.000006 24.000000 -8.999997 -v 3.444157 24.000000 -8.314913 -v 5.000138 24.000000 -7.483224 -v 6.363967 24.000000 -6.363959 -v 7.483233 24.000000 -5.000129 -v 8.314921 24.000000 -3.444148 -v 8.827073 24.000000 -1.755811 -v 9.000004 24.000000 0.000002 -v 8.827074 24.000000 1.755814 -v 8.314922 24.000000 3.444152 -v 7.483233 24.000000 5.000134 -v 6.363967 24.000000 6.363963 -v 5.000138 24.000000 7.483229 -v 3.444156 24.000000 8.314919 -v 1.755817 24.000000 8.827070 -v 0.000003 24.000000 9.000002 -v -1.755810 24.000000 8.827069 -v -3.444149 24.000000 8.314917 -v -5.000130 24.000000 7.483226 -v -6.363959 24.000000 6.363959 -v -7.483224 24.000000 5.000129 -v -8.314913 24.000000 3.444147 -v -8.827063 24.000000 1.755807 -v -8.999994 24.000000 -0.000006 -v -8.827060 24.000000 -1.755820 -v -8.314906 24.000000 -3.444158 -v -7.483214 24.000000 -5.000139 -v -6.363947 24.000000 -6.363967 -v -5.000115 24.000000 -7.483231 -v -3.444133 24.000000 -8.314919 -v -1.755793 24.000000 -8.827067 -v 2.038701 26.000000 -10.249203 -v 0.000007 26.000000 -10.449997 -v 3.999049 26.000000 -9.654537 -v 5.805717 26.000000 -8.688854 -v 7.389273 26.000000 -7.389263 -v 8.688865 26.000000 -5.805706 -v 9.654549 26.000000 -3.999039 -v 10.249214 26.000000 -2.038692 -v 10.450004 26.000000 0.000002 -v 10.249214 26.000000 2.038695 -v 9.654549 26.000000 3.999043 -v 8.688865 26.000000 5.805711 -v 7.389273 26.000000 7.389268 -v 5.805716 26.000000 8.688861 -v 3.999047 26.000000 9.654545 -v 2.038698 26.000000 10.249209 -v 0.000004 26.000000 10.450003 -v -2.038691 26.000000 10.249207 -v -3.999040 26.000000 9.654542 -v -5.805707 26.000000 8.688857 -v -7.389263 26.000000 7.389264 -v -8.688853 26.000000 5.805706 -v -9.654536 26.000000 3.999037 -v -10.249200 26.000000 2.038688 -v -10.449993 26.000000 -0.000007 -v -10.249197 26.000000 -2.038702 -v -9.654529 26.000000 -3.999050 -v -8.688843 26.000000 -5.805717 -v -7.389249 26.000000 -7.389272 -v -5.805690 26.000000 -8.688862 -v -3.999021 26.000000 -9.654544 -v -2.038671 26.000000 -10.249207 -v 1.950911 28.000000 -9.807850 -v 0.000007 28.000000 -9.999997 -v 3.826842 28.000000 -9.238792 -v 5.555710 28.000000 -8.314693 -v 7.071075 28.000000 -7.071065 -v 8.314704 28.000000 -5.555699 -v 9.238802 28.000000 -3.826832 -v 9.807859 28.000000 -1.950901 -v 10.000003 28.000000 0.000002 -v 9.807860 28.000000 1.950905 -v 9.238803 28.000000 3.826835 -v 8.314704 28.000000 5.555705 -v 7.071075 28.000000 7.071070 -v 5.555709 28.000000 8.314699 -v 3.826840 28.000000 9.238799 -v 1.950908 28.000000 9.807856 -v 0.000004 28.000000 10.000002 -v -1.950900 28.000000 9.807855 -v -3.826832 28.000000 9.238796 -v -5.555700 28.000000 8.314696 -v -7.071065 28.000000 7.071066 -v -8.314693 28.000000 5.555699 -v -9.238791 28.000000 3.826830 -v -9.807847 28.000000 1.950897 -v -9.999993 28.000000 -0.000007 -v -9.807844 28.000000 -1.950911 -v -9.238784 28.000000 -3.826842 -v -8.314682 28.000000 -5.555710 -v -7.071051 28.000000 -7.071074 -v -5.555684 28.000000 -8.314701 -v -3.826813 28.000000 -9.238798 -v -1.950881 28.000000 -9.807853 -v 0.975460 31.000000 -4.903925 -v 0.000008 31.000000 -4.999999 -v 1.913425 31.000000 -4.619397 -v 2.777859 31.000000 -4.157347 -v 3.535542 31.000000 -3.535533 -v 4.157357 31.000000 -2.777850 -v 4.619406 31.000000 -1.913416 -v 4.903934 31.000000 -0.975451 -v 5.000006 31.000000 0.000001 -v 4.903935 31.000000 0.975452 -v 4.619406 31.000000 1.913418 -v 4.157357 31.000000 2.777852 -v 3.535542 31.000000 3.535535 -v 2.777859 31.000000 4.157349 -v 1.913425 31.000000 4.619399 -v 0.975459 31.000000 4.903927 -v 0.000007 31.000000 5.000000 -v -0.975445 31.000000 4.903927 -v -1.913411 31.000000 4.619398 -v -2.777845 31.000000 4.157348 -v -3.535528 31.000000 3.535533 -v -4.157342 31.000000 2.777849 -v -4.619391 31.000000 1.913415 -v -4.903919 31.000000 0.975448 -v -4.999992 31.000000 -0.000004 -v -4.903917 31.000000 -0.975456 -v -4.619387 31.000000 -1.913421 -v -4.157336 31.000000 -2.777855 -v -3.535521 31.000000 -3.535537 -v -2.777837 31.000000 -4.157351 -v -1.913402 31.000000 -4.619400 -v -0.975436 31.000000 -4.903927 -v 0.195100 32.000000 -0.980785 -v 0.000009 32.000000 -1.000000 -v 0.382693 32.000000 -0.923880 -v 0.555579 32.000000 -0.831470 -v 0.707116 32.000000 -0.707107 -v 0.831479 32.000000 -0.555570 -v 0.923889 32.000000 -0.382683 -v 0.980794 32.000000 -0.195090 -v 1.000009 32.000000 -0.000000 -v 0.980795 32.000000 0.195090 -v 0.923889 32.000000 0.382683 -v 0.831479 32.000000 0.555570 -v 0.707116 32.000000 0.707107 -v 0.555579 32.000000 0.831470 -v 0.382692 32.000000 0.923880 -v 0.195099 32.000000 0.980785 -v 0.000009 32.000000 1.000000 -v -0.195082 32.000000 0.980785 -v -0.382675 32.000000 0.923879 -v -0.555561 32.000000 0.831469 -v -0.707098 32.000000 0.707106 -v -0.831461 32.000000 0.555570 -v -0.923871 32.000000 0.382683 -v -0.980776 32.000000 0.195089 -v -0.999991 32.000000 -0.000001 -v -0.980776 32.000000 -0.195091 -v -0.923870 32.000000 -0.382684 -v -0.831460 32.000000 -0.555571 -v -0.707097 32.000000 -0.707108 -v -0.555560 32.000000 -0.831470 -v -0.382673 32.000000 -0.923880 -v -0.195080 32.000000 -0.980786 -vt 0.530549 0.164590 -vt 0.511666 0.163643 -vt 0.521050 -0.034955 -vt 0.492712 0.163326 -vt 0.473760 0.163641 -vt 0.464416 -0.034959 -vt 0.454878 0.164586 -vt 0.436165 -0.032960 -vt 0.530466 0.164544 -vt 0.511584 0.163595 -vt 0.520990 -0.034999 -vt 0.492630 0.163276 -vt 0.492677 -0.035670 -vt 0.473678 0.163590 -vt 0.454796 0.164533 -vt 0.436106 -0.033015 -vt 0.549279 -0.032970 -vt 0.530567 0.164579 -vt 0.492733 -0.035632 -vt 0.511646 0.163658 -vt 0.521031 -0.034940 -vt 0.473740 0.163656 -vt 0.464397 -0.034945 -vt 0.436145 -0.032947 -vt 0.549245 -0.033009 -vt 0.492654 0.406011 -vt 0.478473 0.406094 -vt 0.454848 0.164591 -vt 0.484783 0.841883 -vt 0.481703 0.815945 -vt 0.498141 0.815218 -vt 0.478517 0.406158 -vt 0.480864 1.033334 -vt 0.469047 1.033401 -vt 0.464335 0.406424 -vt 0.521029 0.406412 -vt 0.506854 0.406164 -vt 0.492601 0.406024 -vt 0.478419 0.406106 -vt 0.464379 0.406400 -vt 0.520980 0.406345 -vt 0.492698 0.406075 -vt 0.464248 0.406354 -vt 0.506806 0.406095 -vt 0.521088 0.406401 -vt 0.464301 0.406335 -vt 0.528333 0.932272 -vt 0.515249 0.932270 -vt 0.514645 0.840931 -vt 0.492685 1.033317 -vt 0.504528 1.033347 -vt 0.516218 1.033355 -vt 0.504401 1.033288 -vt 0.492583 1.033266 -vt 0.469077 1.033415 -vt 0.480766 1.033288 -vt 0.516301 1.033331 -vt 0.468949 1.033355 -vt 0.492666 1.033242 -vt 0.469032 1.033331 -vt 0.516241 1.033340 -vt 0.516347 1.033391 -vt 0.489116 0.932391 -vt 0.499639 0.841163 -vt 0.529638 0.841146 -vt 0.544452 0.841822 -vt 0.502170 0.932307 -vt 0.502067 0.931417 -vt 0.489014 0.931490 -vt 0.484772 0.841027 -vt 0.515252 0.932265 -vt 0.499616 0.840324 -vt 0.514609 0.840100 -vt 0.515150 0.931384 -vt 0.529588 0.840325 -vt 0.528233 0.931394 -vt 0.544387 0.841006 -vt 0.502141 0.932422 -vt 0.489088 0.932506 -vt 0.484755 0.841998 -vt 0.515223 0.932380 -vt 0.499611 0.841277 -vt 0.544446 0.841815 -vt 0.528306 0.932383 -vt 0.514619 0.841041 -vt 0.529613 0.841256 -vt 0.544428 0.841933 -vt 0.514653 0.840929 -vt 0.541383 0.932312 -vt 0.514294 0.815010 -vt 0.514115 0.784175 -vt 0.530516 0.783920 -vt 0.530451 0.815198 -vt 0.481734 0.815116 -vt 0.498149 0.814411 -vt 0.546877 0.815869 -vt 0.514282 0.814222 -vt 0.530410 0.814413 -vt 0.546808 0.815091 -vt 0.481674 0.816058 -vt 0.530447 0.815191 -vt 0.498113 0.815331 -vt 0.514273 0.815126 -vt 0.530427 0.815307 -vt 0.497702 0.783983 -vt 0.499096 0.760277 -vt 0.514093 0.760874 -vt 0.497680 0.784096 -vt 0.480598 0.783379 -vt 0.547598 0.783235 -vt 0.514094 0.784288 -vt 0.530497 0.784033 -vt 0.546852 0.815983 -vt 0.480672 0.782607 -vt 0.497751 0.783237 -vt 0.514128 0.783445 -vt 0.530493 0.783201 -vt 0.480562 0.783487 -vt 0.483887 0.758308 -vt 0.495914 0.711438 -vt 0.504773 0.711578 -vt 0.529070 0.760267 -vt 0.544188 0.758255 -vt 0.484000 0.757603 -vt 0.499171 0.759591 -vt 0.514125 0.760200 -vt 0.529050 0.759600 -vt 0.544127 0.757597 -vt 0.483856 0.758415 -vt 0.499074 0.760387 -vt 0.514074 0.760983 -vt 0.529041 0.760372 -vt 0.544161 0.758360 -vt 0.523594 0.711573 -vt 0.529972 0.661378 -vt 0.545561 0.664658 -vt 0.532448 0.711418 -vt 0.496068 0.710899 -vt 0.504878 0.711055 -vt 0.514184 0.711617 -vt 0.514245 0.711102 -vt 0.523616 0.711060 -vt 0.495882 0.711535 -vt 0.504744 0.711675 -vt 0.514158 0.711713 -vt 0.523570 0.711670 -vt 0.513848 0.660219 -vt 0.513669 0.608672 -vt 0.513828 0.659944 -vt 0.529911 0.661083 -vt 0.482091 0.664427 -vt 0.497705 0.661195 -vt 0.545452 0.664348 -vt 0.482051 0.664506 -vt 0.497671 0.661274 -vt 0.513820 0.660298 -vt 0.513851 0.660221 -vt 0.532428 0.711511 -vt 0.529950 0.661456 -vt 0.532453 0.711417 -vt 0.482323 0.664233 -vt 0.497723 0.660949 -vt 0.536884 0.609783 -vt 0.513620 0.608741 -vt 0.513592 0.578273 -vt 0.490435 0.609678 -vt 0.466382 0.613327 -vt 0.536902 0.609745 -vt 0.560895 0.613327 -vt 0.560888 0.613379 -vt 0.466576 0.613222 -vt 0.490460 0.609499 -vt 0.513658 0.608477 -vt 0.536854 0.609547 -vt 0.560808 0.613134 -vt 0.488667 0.578260 -vt 0.489455 0.552993 -vt 0.513561 0.553945 -vt 0.461659 0.578631 -vt 0.538555 0.578237 -vt 0.513596 0.578186 -vt 0.538530 0.578189 -vt 0.565552 0.578473 -vt 0.565547 0.578471 -vt 0.461750 0.578463 -vt 0.488684 0.578059 -vt 0.513584 0.578010 -vt 0.538488 0.578023 -vt 0.565480 0.578318 -vt 0.461632 0.578691 -vt 0.488649 0.578325 -vt 0.464207 0.549432 -vt 0.487190 0.475078 -vt 0.500042 0.478373 -vt 0.537671 0.552949 -vt 0.464147 0.549565 -vt 0.537673 0.552951 -vt 0.489480 0.552845 -vt 0.513557 0.553799 -vt 0.537641 0.552812 -vt 0.562948 0.549342 -vt 0.489444 0.553047 -vt 0.563007 0.549470 -vt 0.513562 0.554003 -vt 0.526690 0.478484 -vt 0.516244 0.422415 -vt 0.518946 0.421679 -vt 0.513331 0.479593 -vt 0.513332 0.479537 -vt 0.539754 0.475224 -vt 0.526709 0.478560 -vt 0.516842 0.409963 -vt 0.517872 0.420415 -vt 0.510888 0.421103 -vt 0.510606 0.422421 -vt 0.507984 0.421679 -vt 0.513413 0.422628 -vt 0.518952 0.421679 -vt 0.549263 -0.032939 -vt 0.541291 0.931450 -vt 0.541364 0.932431 -vt 0.547581 0.783348 -vt 0.547538 0.782523 -vt 0.532439 0.710900 -vt 0.545546 0.664737 -vt 0.539728 0.475174 -vt 0.509859 0.420415 -vt 0.508983 0.419540 -vt 0.508295 0.418510 -vt 0.507822 0.417367 -vt 0.507580 0.416152 -vt 0.508295 0.412556 -vt 0.507580 0.414914 -vt 0.507822 0.413700 -vt 0.508983 0.411527 -vt 0.509859 0.410651 -vt 0.510888 0.409963 -vt 0.512032 0.409490 -vt 0.513246 0.409248 -vt 0.514484 0.409248 -vt 0.515699 0.409490 -vt 0.517872 0.410651 -vt 0.518747 0.411527 -vt 0.519435 0.412556 -vt 0.519909 0.413700 -vt 0.520151 0.414914 -vt 0.520151 0.416152 -vt 0.519909 0.417367 -vt 0.519435 0.418510 -vt 0.518747 0.419540 -vt 0.516842 0.421103 -vt 0.515699 0.421577 -vt 0.514484 0.421818 -vt 0.513246 0.421818 -vt 0.512032 0.421577 -vn 0.095100 0.241400 -0.965700 -vn 0.281700 0.241400 -0.928600 -vn 0.457500 0.241400 -0.855800 -vn 0.615600 0.241400 -0.750100 -vn 0.750100 0.241400 -0.615600 -vn 0.855800 0.241400 -0.457500 -vn 0.928600 0.241400 -0.281700 -vn 0.965700 0.241400 -0.095100 -vn 0.965700 0.241400 0.095100 -vn 0.928600 0.241400 0.281700 -vn 0.855800 0.241400 0.457500 -vn 0.750100 0.241400 0.615600 -vn 0.615600 0.241400 0.750100 -vn 0.457500 0.241400 0.855800 -vn 0.281700 0.241400 0.928600 -vn 0.095100 0.241400 0.965700 -vn -0.095100 0.241400 0.965700 -vn -0.281700 0.241400 0.928600 -vn -0.457500 0.241400 0.855800 -vn -0.615600 0.241400 0.750100 -vn -0.750100 0.241400 0.615600 -vn -0.855800 0.241400 0.457500 -vn -0.928600 0.241400 0.281700 -vn -0.965700 0.241400 0.095100 -vn -0.965700 0.241400 -0.095100 -vn -0.928600 0.241400 -0.281700 -vn -0.855800 0.241400 -0.457500 -vn -0.750100 0.241400 -0.615600 -vn -0.615600 0.241400 -0.750100 -vn -0.457500 0.241400 -0.855800 -vn 0.877600 0.099000 0.469100 -vn -0.095100 0.241400 -0.965700 -vn -0.281700 0.241400 -0.928600 -vn 0.000000 -1.000000 0.000000 -vn 0.634300 0.019100 -0.772900 -vn -0.631300 0.099000 0.769200 -vn -0.631300 0.099000 -0.769200 -vn 0.952200 0.099000 -0.288900 -vn 0.097500 0.099000 0.990300 -vn -0.990300 0.099000 -0.097500 -vn 0.469100 0.099000 -0.877600 -vn 0.769200 0.099000 0.631300 -vn -0.769200 0.099000 0.631300 -vn -0.469100 0.099000 -0.877600 -vn 0.990300 0.099000 -0.097500 -vn -0.097500 0.099000 0.990300 -vn -0.952200 0.099000 -0.288900 -vn 0.631300 0.099000 -0.769200 -vn 0.631300 0.099000 0.769200 -vn -0.877600 0.099000 0.469100 -vn -0.288900 0.099000 -0.952200 -vn 0.990300 0.099000 0.097500 -vn -0.288900 0.099000 0.952200 -vn -0.877600 0.099000 -0.469100 -vn 0.769200 0.099000 -0.631300 -vn 0.469100 0.099000 0.877600 -vn -0.952200 0.099000 0.288900 -vn 0.097500 0.099000 -0.990300 -vn -0.097500 0.099000 -0.990300 -vn 0.952200 0.099000 0.288900 -vn -0.469100 0.099000 0.877600 -vn -0.769200 0.099000 -0.631300 -vn 0.877600 0.099000 -0.469100 -vn 0.288900 0.099000 0.952200 -vn -0.990300 0.099000 0.097500 -vn 0.288900 0.099000 -0.952200 -vn -0.896500 -0.349600 0.272000 -vn -0.290200 0.019100 -0.956800 -vn -0.290200 0.019100 0.956800 -vn 0.772900 0.019100 -0.634300 -vn -0.098000 0.019100 -0.995000 -vn -0.471300 0.019100 0.881800 -vn 0.881800 0.019100 -0.471300 -vn -0.634300 0.019100 0.772900 -vn 0.956800 0.019100 -0.290200 -vn -0.772900 0.019100 0.634300 -vn 0.995000 0.019100 -0.098000 -vn -0.881800 0.019100 0.471300 -vn 0.995000 0.019100 0.098000 -vn -0.956800 0.019100 0.290200 -vn 0.956800 0.019100 0.290200 -vn -0.995000 0.019100 0.098000 -vn 0.881800 0.019100 0.471300 -vn -0.995000 0.019100 -0.098000 -vn 0.772900 0.019100 0.634300 -vn -0.956800 0.019100 -0.290200 -vn 0.634300 0.019100 0.772900 -vn -0.881800 0.019100 -0.471300 -vn 0.471300 0.019100 0.881800 -vn 0.098000 0.019100 -0.995000 -vn -0.772900 0.019100 -0.634300 -vn 0.290200 0.019100 0.956800 -vn 0.290200 0.019100 -0.956800 -vn -0.634300 0.019100 -0.772900 -vn 0.098000 0.019100 0.995000 -vn 0.471300 0.019100 -0.881800 -vn -0.471300 0.019100 -0.881800 -vn -0.098000 0.019100 0.995000 -vn 0.724200 -0.349600 -0.594400 -vn -0.932400 -0.349600 0.091800 -vn 0.826300 -0.349600 -0.441600 -vn -0.932400 -0.349600 -0.091800 -vn 0.896500 -0.349600 -0.272000 -vn -0.896500 -0.349600 -0.272000 -vn 0.932400 -0.349600 -0.091800 -vn -0.826300 -0.349600 -0.441600 -vn 0.932400 -0.349600 0.091800 -vn -0.724200 -0.349600 -0.594400 -vn 0.896500 -0.349600 0.272000 -vn -0.594400 -0.349600 -0.724200 -vn 0.826300 -0.349600 0.441600 -vn -0.441600 -0.349600 -0.826300 -vn -0.091800 -0.349600 0.932400 -vn 0.724200 -0.349600 0.594400 -vn -0.272000 -0.349600 -0.896500 -vn -0.272000 -0.349600 0.896500 -vn 0.594400 -0.349600 0.724200 -vn -0.091800 -0.349600 -0.932400 -vn -0.441600 -0.349600 0.826300 -vn 0.441600 -0.349600 0.826300 -vn 0.091800 -0.349600 -0.932400 -vn -0.594400 -0.349600 0.724200 -vn 0.272000 -0.349600 0.896500 -vn 0.272000 -0.349600 -0.896500 -vn -0.724200 -0.349600 0.594400 -vn 0.091800 -0.349600 0.932400 -vn 0.441600 -0.349600 -0.826300 -vn -0.826300 -0.349600 0.441600 -vn 0.594400 -0.349600 -0.724200 -vn 0.249200 -0.512700 0.821600 -vn -0.290300 0.000000 0.956900 -vn 0.249200 -0.512700 -0.821600 -vn -0.544700 -0.512700 -0.663700 -vn 0.084200 -0.512700 0.854500 -vn 0.404700 -0.512700 -0.757200 -vn -0.404700 -0.512700 -0.757200 -vn -0.084200 -0.512700 0.854500 -vn 0.544700 -0.512700 -0.663700 -vn -0.249200 -0.512700 -0.821600 -vn -0.249200 -0.512700 0.821600 -vn 0.663700 -0.512700 -0.544700 -vn -0.084200 -0.512700 -0.854500 -vn -0.404700 -0.512700 0.757200 -vn 0.757200 -0.512700 -0.404700 -vn -0.544700 -0.512700 0.663700 -vn 0.821600 -0.512700 -0.249200 -vn -0.663700 -0.512700 0.544700 -vn 0.854500 -0.512700 -0.084200 -vn -0.757200 -0.512700 0.404700 -vn 0.854500 -0.512700 0.084200 -vn -0.821600 -0.512700 0.249200 -vn 0.821600 -0.512700 0.249200 -vn -0.854500 -0.512700 0.084200 -vn 0.757200 -0.512700 0.404700 -vn -0.854500 -0.512700 -0.084200 -vn 0.663700 -0.512700 0.544700 -vn -0.821600 -0.512700 -0.249200 -vn 0.544700 -0.512700 0.663700 -vn -0.757200 -0.512700 -0.404700 -vn 0.404700 -0.512700 0.757200 -vn 0.084200 -0.512700 -0.854500 -vn -0.663700 -0.512700 -0.544700 -vn -0.692100 0.445500 0.568000 -vn 0.773000 -0.000000 -0.634400 -vn -0.098000 0.000000 -0.995200 -vn -0.471400 0.000000 0.881900 -vn 0.881900 0.000000 -0.471400 -vn -0.634400 0.000000 0.773000 -vn 0.956900 0.000000 -0.290300 -vn -0.773000 0.000000 0.634400 -vn 0.995200 0.000000 -0.098000 -vn -0.881900 0.000000 0.471400 -vn 0.995200 0.000000 0.098000 -vn -0.956900 0.000000 0.290300 -vn 0.956900 0.000000 0.290300 -vn -0.995200 0.000000 0.098000 -vn 0.881900 0.000000 0.471400 -vn -0.995200 0.000000 -0.098000 -vn 0.773000 0.000000 0.634400 -vn -0.956900 0.000000 -0.290300 -vn 0.634400 -0.000000 0.773000 -vn -0.881900 0.000000 -0.471400 -vn 0.471400 -0.000000 0.881900 -vn 0.098000 -0.000000 -0.995200 -vn -0.773000 0.000000 -0.634400 -vn 0.290300 -0.000000 0.956900 -vn 0.290300 -0.000000 -0.956900 -vn -0.634400 0.000000 -0.773000 -vn 0.098000 -0.000000 0.995200 -vn 0.471400 -0.000000 -0.881900 -vn -0.471400 0.000000 -0.881900 -vn -0.098000 0.000000 0.995200 -vn 0.634400 -0.000000 -0.773000 -vn -0.290300 0.000000 -0.956900 -vn 0.316100 -0.948200 -0.031100 -vn 0.891000 0.445500 -0.087800 -vn -0.789600 0.445500 0.422000 -vn 0.891000 0.445500 0.087800 -vn -0.856700 0.445500 0.259900 -vn 0.856700 0.445500 0.259900 -vn -0.891000 0.445500 0.087800 -vn 0.789600 0.445500 0.422000 -vn -0.891000 0.445500 -0.087800 -vn 0.692100 0.445500 0.568000 -vn -0.856700 0.445500 -0.259900 -vn 0.568000 0.445500 0.692100 -vn -0.789600 0.445500 -0.422000 -vn 0.422000 0.445500 0.789600 -vn 0.087800 0.445500 -0.891000 -vn -0.692100 0.445500 -0.568000 -vn 0.259900 0.445500 0.856700 -vn 0.259900 0.445500 -0.856700 -vn -0.568000 0.445500 -0.692100 -vn 0.087800 0.445500 0.891000 -vn 0.422000 0.445500 -0.789600 -vn -0.422000 0.445500 -0.789600 -vn -0.087800 0.445500 0.891000 -vn 0.568000 0.445500 -0.692100 -vn -0.259900 0.445500 -0.856700 -vn -0.259900 0.445500 0.856700 -vn 0.692100 0.445500 -0.568000 -vn -0.087800 0.445500 -0.891000 -vn -0.422000 0.445500 0.789600 -vn 0.789600 0.445500 -0.422000 -vn -0.568000 0.445500 0.692100 -vn 0.856700 0.445500 -0.259900 -vn -0.237100 -0.963200 -0.126700 -vn -0.280100 -0.948200 -0.149700 -vn 0.316100 -0.948200 0.031100 -vn -0.245500 -0.948200 -0.201500 -vn 0.303900 -0.948200 0.092200 -vn -0.201500 -0.948200 -0.245500 -vn 0.280100 -0.948200 0.149700 -vn -0.149700 -0.948200 -0.280100 -vn -0.031100 -0.948200 0.316100 -vn 0.245500 -0.948200 0.201500 -vn -0.092200 -0.948200 -0.303900 -vn -0.092200 -0.948200 0.303900 -vn 0.201500 -0.948200 0.245500 -vn -0.031100 -0.948200 -0.316100 -vn -0.149700 -0.948200 0.280100 -vn 0.149700 -0.948200 0.280100 -vn 0.031100 -0.948200 -0.316100 -vn -0.201500 -0.948200 0.245500 -vn 0.092200 -0.948200 0.303900 -vn 0.092200 -0.948200 -0.303900 -vn -0.245500 -0.948200 0.201500 -vn 0.031100 -0.948200 0.316100 -vn 0.149700 -0.948200 -0.280100 -vn -0.280100 -0.948200 0.149700 -vn 0.201500 -0.948200 -0.245500 -vn -0.303900 -0.948200 0.092200 -vn 0.245500 -0.948200 -0.201500 -vn -0.316100 -0.948200 0.031100 -vn 0.280100 -0.948200 -0.149700 -vn -0.316100 -0.948200 -0.031100 -vn 0.303900 -0.948200 -0.092200 -vn -0.303900 -0.948200 -0.092200 -vn 0.382300 -0.585100 -0.715200 -vn 0.126700 -0.963200 0.237100 -vn 0.026400 -0.963200 -0.267600 -vn -0.207800 -0.963200 -0.170600 -vn 0.078000 -0.963200 0.257300 -vn 0.078000 -0.963200 -0.257300 -vn -0.170600 -0.963200 -0.207800 -vn 0.026400 -0.963200 0.267600 -vn 0.126700 -0.963200 -0.237100 -vn -0.126700 -0.963200 -0.237100 -vn -0.026400 -0.963200 0.267500 -vn 0.170600 -0.963200 -0.207800 -vn -0.078000 -0.963200 -0.257300 -vn -0.078000 -0.963200 0.257300 -vn 0.207800 -0.963200 -0.170600 -vn -0.026400 -0.963200 -0.267600 -vn -0.126700 -0.963200 0.237100 -vn 0.237100 -0.963200 -0.126700 -vn -0.170600 -0.963200 0.207800 -vn 0.257300 -0.963200 -0.078000 -vn -0.207800 -0.963200 0.170600 -vn 0.267600 -0.963200 -0.026400 -vn -0.237100 -0.963200 0.126700 -vn 0.267600 -0.963200 0.026400 -vn -0.257300 -0.963200 0.078000 -vn 0.257300 -0.963200 0.078000 -vn -0.267600 -0.963200 0.026400 -vn 0.237100 -0.963200 0.126700 -vn -0.267600 -0.963200 -0.026400 -vn 0.207800 -0.963200 0.170600 -vn -0.257300 -0.963200 -0.078000 -vn 0.170600 -0.963200 0.207800 -vn 0.860600 0.218500 -0.460000 -vn -0.382300 -0.585100 -0.715200 -vn -0.079500 -0.585100 0.807000 -vn 0.514500 -0.585100 -0.626900 -vn -0.235400 -0.585100 -0.776000 -vn -0.235400 -0.585100 0.776000 -vn 0.626900 -0.585100 -0.514500 -vn -0.079500 -0.585100 -0.807000 -vn -0.382300 -0.585100 0.715200 -vn 0.715200 -0.585100 -0.382300 -vn -0.514500 -0.585100 0.626900 -vn 0.776000 -0.585100 -0.235400 -vn -0.626900 -0.585100 0.514500 -vn 0.807000 -0.585100 -0.079500 -vn -0.715200 -0.585100 0.382300 -vn 0.807000 -0.585100 0.079500 -vn -0.776000 -0.585100 0.235400 -vn 0.776000 -0.585100 0.235400 -vn -0.807000 -0.585100 0.079500 -vn 0.715200 -0.585100 0.382300 -vn -0.807000 -0.585100 -0.079500 -vn 0.626900 -0.585100 0.514500 -vn -0.776000 -0.585100 -0.235400 -vn 0.514500 -0.585100 0.626900 -vn -0.715200 -0.585100 -0.382300 -vn 0.382300 -0.585100 0.715200 -vn 0.079500 -0.585100 -0.807000 -vn -0.626900 -0.585100 -0.514500 -vn 0.235400 -0.585100 0.776000 -vn 0.235400 -0.585100 -0.776000 -vn -0.514500 -0.585100 -0.626900 -vn 0.079500 -0.585100 0.807000 -vn 0.513800 0.856400 0.050600 -vn -0.619100 0.218500 0.754300 -vn 0.933800 0.218500 -0.283300 -vn -0.754300 0.218500 0.619100 -vn 0.971100 0.218500 -0.095600 -vn -0.860600 0.218500 0.460000 -vn 0.971100 0.218500 0.095600 -vn -0.933800 0.218500 0.283300 -vn 0.933800 0.218500 0.283300 -vn -0.971100 0.218500 0.095600 -vn 0.860600 0.218500 0.460000 -vn -0.971100 0.218500 -0.095600 -vn 0.754300 0.218500 0.619100 -vn -0.933800 0.218500 -0.283300 -vn 0.619100 0.218500 0.754300 -vn -0.860600 0.218500 -0.460000 -vn 0.460000 0.218500 0.860600 -vn 0.095600 0.218500 -0.971100 -vn -0.754300 0.218500 -0.619100 -vn 0.283300 0.218500 0.933800 -vn 0.283300 0.218500 -0.933800 -vn -0.619100 0.218500 -0.754300 -vn 0.095600 0.218500 0.971100 -vn 0.460000 0.218500 -0.860600 -vn -0.460000 0.218500 -0.860600 -vn -0.095600 0.218500 0.971100 -vn 0.619100 0.218500 -0.754300 -vn -0.283300 0.218500 -0.933800 -vn -0.283300 0.218500 0.933800 -vn 0.754300 0.218500 -0.619100 -vn -0.095600 0.218500 -0.971100 -vn -0.460000 0.218500 0.860600 -vn 0.188300 0.969900 0.154600 -vn -0.494100 0.856400 0.149900 -vn 0.494100 0.856400 0.149900 -vn -0.513800 0.856400 0.050600 -vn 0.455400 0.856400 0.243400 -vn -0.513800 0.856400 -0.050600 -vn 0.399100 0.856400 0.327600 -vn -0.494100 0.856400 -0.149900 -vn 0.327600 0.856400 0.399100 -vn -0.455400 0.856400 -0.243400 -vn 0.243400 0.856400 0.455400 -vn 0.050600 0.856400 -0.513800 -vn -0.399100 0.856400 -0.327600 -vn 0.149900 0.856400 0.494100 -vn 0.149900 0.856400 -0.494100 -vn -0.327600 0.856400 -0.399100 -vn 0.050600 0.856400 0.513800 -vn 0.243400 0.856400 -0.455400 -vn -0.243400 0.856400 -0.455400 -vn -0.050600 0.856400 0.513800 -vn 0.327600 0.856400 -0.399100 -vn -0.149900 0.856400 -0.494100 -vn -0.149900 0.856400 0.494100 -vn 0.399100 0.856400 -0.327600 -vn -0.050600 0.856400 -0.513800 -vn -0.243400 0.856400 0.455400 -vn 0.455400 0.856400 -0.243400 -vn -0.327600 0.856400 0.399100 -vn 0.494100 0.856400 -0.149900 -vn -0.399100 0.856400 0.327600 -vn 0.513800 0.856400 -0.050600 -vn -0.455400 0.856400 0.243400 -vn 0.000000 1.000000 -0.000000 -vn -0.233100 0.969900 -0.070700 -vn 0.154600 0.969900 0.188300 -vn -0.214900 0.969900 -0.114900 -vn 0.114900 0.969900 0.214900 -vn 0.023900 0.969900 -0.242500 -vn -0.188300 0.969900 -0.154600 -vn 0.070700 0.969900 0.233100 -vn 0.070700 0.969900 -0.233200 -vn -0.154600 0.969900 -0.188300 -vn 0.023900 0.969900 0.242500 -vn 0.114900 0.969900 -0.214900 -vn -0.114900 0.969900 -0.214900 -vn -0.023900 0.969900 0.242500 -vn 0.154600 0.969900 -0.188300 -vn -0.070700 0.969900 -0.233100 -vn -0.070700 0.969900 0.233100 -vn 0.188300 0.969900 -0.154600 -vn -0.023900 0.969900 -0.242500 -vn -0.114900 0.969900 0.214900 -vn 0.214900 0.969900 -0.114800 -vn -0.154600 0.969900 0.188400 -vn 0.233100 0.969900 -0.070700 -vn -0.188300 0.969900 0.154600 -vn 0.242500 0.969900 -0.023900 -vn -0.214900 0.969900 0.114800 -vn 0.242500 0.969900 0.023900 -vn -0.233100 0.969900 0.070700 -vn 0.233100 0.969900 0.070700 -vn -0.242500 0.969900 0.023900 -vn 0.214900 0.969900 0.114900 -vn -0.242500 0.969900 -0.023900 -vn -0.457400 0.241400 -0.855800 -vn -0.026400 -0.963200 0.267600 -vn 0.000000 1.000000 0.000100 -vn 0.000000 1.000000 -0.000200 -vn 0.070700 0.969900 0.233200 -vn 0.070700 0.969900 -0.233100 -vn 0.214900 0.969900 -0.114900 -vn -0.154600 0.969900 0.188300 -vn -0.214900 0.969900 0.114900 -vn 0.214900 0.969900 0.114800 -s off -f 2/1/1 4/2/1 3/3/1 -f 3/3/2 4/2/2 6/4/2 -f 6/4/3 8/5/3 7/6/3 -f 8/5/4 10/7/4 9/8/4 -f 10/9/5 12/10/5 11/11/5 -f 11/11/6 12/10/6 14/12/6 -f 13/13/7 14/12/7 16/14/7 -f 16/14/8 18/15/8 17/16/8 -f 18/9/9 20/10/9 19/11/9 -f 19/11/10 20/10/10 22/4/10 -f 22/4/11 24/14/11 23/6/11 -f 24/14/12 26/15/12 25/16/12 -f 25/17/13 26/18/13 28/2/13 -f 27/11/14 28/2/14 30/4/14 -f 29/19/15 30/4/15 32/5/15 -f 31/6/16 32/5/16 34/7/16 -f 34/1/17 36/20/17 35/21/17 -f 35/21/18 36/20/18 38/4/18 -f 38/4/19 40/22/19 39/23/19 -f 40/22/20 42/7/20 41/24/20 -f 42/9/21 44/10/21 43/11/21 -f 44/10/22 46/4/22 45/13/22 -f 46/4/23 48/14/23 47/6/23 -f 48/14/24 50/15/24 49/16/24 -f 49/25/25 50/9/25 52/10/25 -f 52/10/26 54/4/26 53/13/26 -f 54/4/27 56/14/27 55/6/27 -f 56/14/28 58/15/28 57/16/28 -f 58/1/29 60/10/29 59/21/29 -f 60/10/30 62/4/30 61/19/30 -f 22/4/31 75/26/31 76/27/31 -f 63/6/32 64/14/32 2/28/32 -f 62/4/33 64/14/33 63/6/33 -f 149/29/34 181/30/34 182/31/34 -f 68/32/35 100/33/35 101/34/35 -f 40/22/36 84/32/36 85/35/36 -f 58/1/37 93/36/37 94/37/37 -f 14/12/38 71/38/38 72/39/38 -f 32/5/39 80/32/39 81/40/39 -f 52/10/40 50/9/40 89/41/40 -f 8/5/41 6/4/41 67/42/41 -f 26/15/42 24/14/42 76/27/42 -f 44/10/43 42/9/43 85/41/43 -f 60/10/44 94/37/44 95/42/44 -f 16/14/45 72/39/45 73/43/45 -f 36/20/46 34/1/46 81/36/46 -f 52/10/47 90/44/47 91/38/47 -f 8/5/48 68/32/48 69/35/48 -f 28/2/49 26/18/49 77/45/49 -f 44/10/50 86/44/50 87/26/50 -f 62/4/51 95/42/51 96/32/51 -f 18/9/52 73/41/52 74/44/52 -f 36/20/53 82/37/53 83/42/53 -f 54/4/54 91/38/54 92/39/54 -f 10/9/55 69/36/55 70/44/55 -f 28/2/56 78/37/56 79/42/56 -f 46/4/57 87/26/57 88/27/57 -f 2/1/58 66/45/58 65/37/58 -f 64/14/59 96/32/59 66/35/59 -f 20/10/60 74/44/60 75/26/60 -f 38/4/61 83/42/61 84/32/61 -f 58/15/62 56/14/62 92/39/62 -f 12/10/63 70/44/63 71/38/63 -f 32/5/64 30/4/64 79/42/64 -f 48/14/65 88/27/65 89/46/65 -f 4/2/66 65/37/66 67/42/66 -f 104/47/67 103/48/67 135/49/67 -f 95/42/68 127/50/68 128/33/68 -f 83/42/69 82/37/69 114/51/69 -f 69/36/70 101/52/70 102/53/70 -f 66/35/71 96/32/71 128/33/71 -f 83/42/72 115/50/72 116/33/72 -f 70/44/73 102/53/73 103/54/73 -f 84/32/74 116/33/74 117/55/74 -f 71/38/75 103/54/75 104/56/75 -f 85/41/76 117/57/76 118/51/76 -f 72/39/77 104/56/77 105/58/77 -f 86/44/78 118/51/78 119/59/78 -f 73/41/79 105/57/79 106/51/79 -f 87/26/80 119/59/80 120/56/80 -f 74/44/81 106/51/81 107/50/81 -f 88/27/82 120/56/82 121/60/82 -f 75/26/83 107/50/83 108/56/83 -f 89/41/84 121/61/84 122/53/84 -f 76/27/85 108/56/85 109/60/85 -f 90/44/86 122/53/86 123/54/86 -f 77/45/87 109/62/87 110/51/87 -f 91/38/88 123/54/88 124/56/88 -f 78/37/89 110/51/89 111/50/89 -f 66/45/90 98/62/90 97/51/90 -f 92/39/91 124/56/91 125/60/91 -f 79/42/92 111/50/92 112/33/92 -f 65/37/93 97/51/93 99/50/93 -f 93/36/94 125/62/94 126/51/94 -f 80/32/95 112/33/95 113/55/95 -f 67/42/96 99/50/96 100/33/96 -f 94/37/97 126/51/97 127/50/97 -f 81/36/98 113/62/98 114/51/98 -f 117/63/99 149/29/99 150/64/99 -f 104/47/100 136/65/100 137/66/100 -f 118/67/101 150/64/101 151/49/101 -f 106/68/102 105/69/102 137/70/102 -f 119/71/103 151/49/103 152/65/103 -f 106/68/104 138/72/104 139/73/104 -f 120/47/105 152/65/105 153/66/105 -f 107/74/106 139/73/106 140/75/106 -f 122/67/107 121/63/107 153/29/107 -f 108/76/108 140/75/108 141/77/108 -f 123/71/109 122/67/109 154/64/109 -f 109/63/110 141/29/110 142/64/110 -f 124/47/111 123/71/111 155/49/111 -f 110/67/112 142/64/112 143/49/112 -f 97/78/113 98/79/113 130/80/113 -f 124/47/114 156/65/114 157/66/114 -f 111/48/115 143/49/115 144/65/115 -f 99/81/116 97/78/116 129/82/116 -f 126/67/117 125/63/117 157/29/117 -f 112/47/118 144/65/118 145/83/118 -f 100/84/119 99/81/119 131/85/119 -f 127/71/120 126/67/120 158/64/120 -f 114/67/121 113/63/121 145/29/121 -f 100/84/122 132/86/122 133/87/122 -f 127/71/123 159/88/123 160/65/123 -f 115/48/124 114/67/124 146/64/124 -f 101/63/125 133/29/125 134/64/125 -f 128/47/126 160/65/126 130/66/126 -f 115/48/127 147/49/127 148/65/127 -f 102/67/128 134/64/128 135/49/128 -f 117/89/129 116/47/129 148/65/129 -f 175/90/130 207/91/130 208/92/130 -f 137/66/34 136/65/34 168/93/34 -f 150/64/34 182/31/34 183/90/34 -f 138/72/34 137/70/34 169/94/34 -f 151/49/34 183/90/34 184/93/34 -f 139/73/34 138/72/34 170/95/34 -f 152/65/34 184/93/34 185/96/34 -f 140/75/34 139/73/34 171/97/34 -f 153/29/34 185/30/34 186/31/34 -f 140/75/34 172/98/34 173/99/34 -f 154/64/34 186/31/34 187/90/34 -f 141/29/34 173/30/34 174/31/34 -f 155/49/34 187/90/34 188/93/34 -f 142/64/34 174/31/34 175/90/34 -f 129/82/34 130/80/34 162/100/34 -f 157/66/34 156/65/34 188/93/34 -f 143/49/34 175/90/34 176/101/34 -f 131/85/34 129/82/34 161/102/34 -f 158/64/34 157/29/34 189/30/34 -f 144/65/34 176/101/34 177/96/34 -f 132/86/34 131/85/34 163/103/34 -f 159/88/34 158/64/34 190/31/34 -f 145/29/34 177/30/34 178/31/34 -f 133/87/34 132/86/34 164/104/34 -f 159/88/34 191/90/34 192/93/34 -f 146/64/34 178/31/34 179/90/34 -f 134/64/34 133/29/34 165/30/34 -f 130/66/34 160/65/34 192/93/34 -f 147/49/34 179/90/34 180/101/34 -f 134/64/34 166/31/34 167/90/34 -f 148/65/34 180/101/34 181/96/34 -f 136/65/34 135/49/34 167/90/34 -f 210/105/131 242/106/131 243/107/131 -f 163/103/132 161/102/132 193/108/132 -f 190/31/133 189/30/133 221/109/133 -f 176/101/134 208/92/134 209/110/134 -f 163/103/135 195/111/135 196/112/135 -f 190/31/136 222/105/136 223/91/136 -f 178/31/137 177/30/137 209/109/137 -f 165/113/138 164/104/138 196/112/138 -f 191/90/139 223/91/139 224/92/139 -f 179/90/140 178/31/140 210/105/140 -f 166/31/141 165/30/141 197/109/141 -f 192/93/142 224/92/142 194/110/142 -f 179/90/143 211/91/143 212/92/143 -f 167/90/144 166/31/144 198/105/144 -f 181/96/145 180/101/145 212/92/145 -f 168/93/146 167/90/146 199/91/146 -f 181/30/147 213/109/147 214/105/147 -f 169/96/148 168/93/148 200/92/148 -f 183/90/149 182/31/149 214/105/149 -f 169/94/150 201/114/150 202/115/150 -f 183/90/151 215/91/151 216/92/151 -f 171/97/152 170/95/152 202/115/152 -f 185/96/153 184/93/153 216/92/153 -f 171/97/154 203/116/154 204/117/154 -f 186/31/155 185/30/155 217/109/155 -f 173/99/156 172/98/156 204/117/156 -f 187/90/157 186/31/157 218/105/157 -f 174/31/158 173/30/158 205/109/158 -f 188/93/159 187/90/159 219/91/159 -f 175/90/160 174/31/160 206/105/160 -f 161/102/161 162/100/161 194/118/161 -f 189/96/162 188/93/162 220/92/162 -f 245/119/163 277/120/163 278/121/163 -f 197/109/164 229/119/164 230/106/164 -f 224/92/165 256/122/165 226/123/165 -f 211/91/166 243/107/166 244/122/166 -f 198/105/167 230/106/167 231/107/167 -f 212/92/168 244/122/168 245/123/168 -f 199/91/169 231/107/169 232/122/169 -f 213/109/170 245/119/170 246/106/170 -f 200/92/171 232/122/171 233/123/171 -f 215/91/172 214/105/172 246/106/172 -f 201/114/173 233/124/173 234/125/173 -f 215/91/174 247/107/174 248/122/174 -f 202/115/175 234/125/175 235/126/175 -f 217/110/176 216/92/176 248/122/176 -f 203/116/177 235/126/177 236/127/177 -f 218/105/178 217/109/178 249/119/178 -f 204/117/179 236/127/179 237/128/179 -f 218/105/180 250/106/180 251/107/180 -f 205/109/181 237/119/181 238/106/181 -f 219/91/182 251/107/182 252/122/182 -f 206/105/183 238/106/183 239/107/183 -f 194/118/184 226/129/184 225/130/184 -f 221/110/185 220/92/185 252/122/185 -f 207/91/186 239/107/186 240/122/186 -f 193/108/187 225/130/187 227/131/187 -f 222/105/188 221/109/188 253/119/188 -f 208/92/189 240/122/189 241/123/189 -f 195/111/190 227/131/190 228/132/190 -f 222/105/191 254/106/191 255/107/191 -f 209/109/192 241/119/192 242/106/192 -f 196/112/193 228/132/193 229/133/193 -f 223/91/194 255/107/194 256/122/194 -f 280/134/195 312/135/195 313/136/195 -f 232/122/196 264/134/196 265/137/196 -f 247/107/197 246/106/197 278/121/197 -f 233/124/198 265/138/198 266/139/198 -f 247/107/199 279/140/199 280/134/199 -f 235/126/200 234/125/200 266/139/200 -f 248/122/201 280/134/201 281/137/201 -f 235/126/202 267/141/202 268/142/202 -f 250/106/203 249/119/203 281/120/203 -f 237/128/204 236/127/204 268/142/204 -f 250/106/205 282/121/205 283/140/205 -f 237/119/206 269/120/206 270/121/206 -f 252/122/207 251/107/207 283/140/207 -f 238/106/208 270/121/208 271/140/208 -f 226/129/209 258/143/209 257/144/209 -f 253/123/210 252/122/210 284/134/210 -f 239/107/211 271/140/211 272/134/211 -f 225/130/212 257/144/212 259/145/212 -f 253/119/213 285/120/213 286/121/213 -f 240/122/214 272/134/214 273/137/214 -f 228/132/215 227/131/215 259/145/215 -f 255/107/216 254/106/216 286/121/216 -f 241/119/217 273/120/217 274/121/217 -f 229/133/218 228/132/218 260/146/218 -f 255/107/219 287/140/219 288/134/219 -f 242/106/220 274/121/220 275/140/220 -f 229/119/221 261/120/221 262/121/221 -f 226/123/222 256/122/222 288/134/222 -f 243/107/223 275/140/223 276/134/223 -f 231/107/224 230/106/224 262/121/224 -f 245/123/225 244/122/225 276/134/225 -f 231/107/226 263/140/226 264/134/226 -f 316/135/227 315/147/227 347/148/227 -f 267/141/228 299/149/228 300/150/228 -f 281/120/229 313/151/229 314/152/229 -f 268/142/230 300/150/230 301/153/230 -f 282/121/231 314/152/231 315/147/231 -f 269/120/232 301/151/232 302/152/232 -f 283/140/233 315/147/233 316/135/233 -f 270/121/234 302/152/234 303/147/234 -f 258/143/235 290/154/235 289/155/235 -f 284/134/236 316/135/236 317/136/236 -f 271/140/237 303/147/237 304/135/237 -f 259/145/238 257/144/238 289/155/238 -f 286/121/239 285/120/239 317/151/239 -f 272/134/240 304/135/240 305/136/240 -f 260/146/241 259/145/241 291/156/241 -f 286/121/242 318/152/242 319/157/242 -f 273/120/243 305/151/243 306/152/243 -f 261/158/244 260/146/244 292/159/244 -f 287/140/245 319/157/245 320/135/245 -f 274/121/246 306/152/246 307/147/246 -f 262/121/247 261/120/247 293/151/247 -f 258/160/248 288/134/248 320/135/248 -f 275/140/249 307/147/249 308/135/249 -f 262/121/250 294/152/250 295/147/250 -f 277/137/251 276/134/251 308/135/251 -f 263/140/252 295/147/252 296/135/252 -f 277/120/253 309/151/253 310/152/253 -f 264/134/254 296/135/254 297/136/254 -f 278/121/255 310/152/255 311/147/255 -f 266/139/256 265/138/256 297/161/256 -f 279/140/257 311/147/257 312/135/257 -f 267/141/258 266/139/258 298/162/258 -f 324/163/259 323/164/259 355/165/259 -f 303/147/260 302/152/260 334/166/260 -f 290/154/261 322/167/261 321/166/261 -f 316/135/262 348/168/262 349/169/262 -f 303/147/263 335/148/263 336/168/263 -f 291/156/264 289/155/264 321/166/264 -f 317/151/265 349/167/265 350/166/265 -f 304/135/266 336/168/266 337/169/266 -f 291/156/267 323/164/267 324/163/267 -f 318/152/268 350/166/268 351/148/268 -f 305/151/269 337/167/269 338/166/269 -f 292/159/270 324/163/270 325/170/270 -f 320/135/271 319/157/271 351/148/271 -f 306/152/272 338/166/272 339/148/272 -f 294/152/273 293/151/273 325/167/273 -f 320/135/274 352/168/274 322/169/274 -f 307/147/275 339/148/275 340/168/275 -f 294/152/276 326/166/276 327/148/276 -f 308/135/277 340/168/277 341/169/277 -f 296/135/278 295/147/278 327/148/278 -f 309/151/279 341/167/279 342/166/279 -f 296/135/280 328/168/280 329/169/280 -f 311/147/281 310/152/281 342/166/281 -f 298/162/282 297/161/282 329/171/282 -f 311/147/283 343/148/283 344/168/283 -f 298/162/284 330/172/284 331/173/284 -f 312/135/285 344/168/285 345/169/285 -f 300/150/286 299/149/286 331/173/286 -f 313/151/287 345/167/287 346/166/287 -f 300/150/288 332/174/288 333/175/288 -f 314/152/289 346/166/289 347/148/289 -f 301/151/290 333/167/290 334/166/290 -f 358/176/291 390/177/291 391/178/291 -f 351/148/292 350/166/292 382/176/292 -f 337/167/293 369/179/293 370/176/293 -f 325/170/294 324/163/294 356/180/294 -f 352/168/295 351/148/295 383/181/295 -f 339/148/296 338/166/296 370/176/296 -f 326/166/297 325/167/297 357/179/297 -f 352/168/298 384/182/298 354/183/298 -f 339/148/299 371/181/299 372/182/299 -f 326/166/300 358/176/300 359/181/300 -f 340/168/301 372/182/301 373/184/301 -f 328/168/302 327/148/302 359/181/302 -f 341/167/303 373/179/303 374/176/303 -f 328/168/304 360/182/304 361/184/304 -f 342/166/305 374/176/305 375/181/305 -f 330/172/306 329/171/306 361/185/306 -f 343/148/307 375/181/307 376/182/307 -f 330/172/308 362/186/308 363/187/308 -f 344/168/309 376/182/309 377/184/309 -f 331/173/310 363/187/310 364/188/310 -f 345/167/311 377/179/311 378/176/311 -f 332/174/312 364/188/312 365/189/312 -f 346/166/313 378/176/313 379/181/313 -f 334/166/314 333/167/314 365/179/314 -f 347/148/315 379/181/315 380/182/315 -f 334/166/316 366/176/316 367/181/316 -f 322/167/317 354/190/317 353/191/317 -f 348/168/318 380/182/318 381/183/318 -f 335/148/319 367/181/319 368/182/319 -f 321/166/320 353/191/320 355/165/320 -f 349/167/321 381/179/321 382/176/321 -f 336/168/322 368/182/322 369/184/322 -f 393/192/323 425/193/323 426/194/323 -f 373/184/324 372/182/324 404/195/324 -f 360/182/325 359/181/325 391/178/325 -f 374/176/326 373/179/326 405/196/326 -f 361/184/327 360/182/327 392/197/327 -f 375/181/328 374/176/328 406/177/328 -f 361/185/329 393/192/329 394/198/329 -f 375/181/330 407/178/330 408/195/330 -f 362/186/331 394/198/331 395/199/331 -f 377/184/332 376/182/332 408/195/332 -f 363/187/333 395/199/333 396/200/333 -f 377/179/334 409/196/334 410/177/334 -f 364/188/335 396/200/335 397/201/335 -f 378/176/336 410/177/336 411/178/336 -f 366/176/337 365/179/337 397/196/337 -f 380/182/338 379/181/338 411/178/338 -f 367/181/339 366/176/339 398/177/339 -f 354/190/340 386/196/340 385/202/340 -f 380/182/341 412/195/341 413/203/341 -f 368/182/342 367/181/342 399/178/342 -f 353/191/343 385/202/343 387/204/343 -f 382/176/344 381/179/344 413/196/344 -f 369/184/345 368/182/345 400/195/345 -f 356/180/346 355/165/346 387/204/346 -f 382/176/347 414/177/347 415/178/347 -f 370/176/348 369/179/348 401/196/348 -f 356/180/349 388/197/349 389/203/349 -f 384/182/350 383/181/350 415/178/350 -f 370/176/351 402/177/351 403/178/351 -f 357/179/352 389/196/352 390/177/352 -f 354/183/353 384/182/353 416/197/353 -f 371/181/354 403/178/354 404/195/354 -f 428/205/355 460/206/355 461/207/355 -f 407/178/356 439/208/356 440/205/356 -f 394/198/357 426/194/357 427/209/357 -f 408/195/358 440/205/358 441/210/358 -f 395/199/359 427/209/359 428/205/359 -f 410/177/360 409/196/360 441/193/360 -f 397/201/361 396/200/361 428/205/361 -f 411/178/362 410/177/362 442/194/362 -f 397/196/363 429/193/363 430/194/363 -f 412/195/364 411/178/364 443/208/364 -f 398/177/365 430/194/365 431/208/365 -f 385/202/366 386/196/366 418/193/366 -f 412/195/367 444/205/367 445/210/367 -f 400/195/368 399/178/368 431/208/368 -f 385/202/369 417/194/369 419/208/369 -f 413/196/370 445/193/370 446/194/370 -f 400/195/371 432/205/371 433/210/371 -f 387/204/372 419/208/372 420/211/372 -f 414/177/373 446/194/373 447/208/373 -f 401/196/374 433/193/374 434/194/374 -f 388/197/375 420/211/375 421/210/375 -f 415/178/376 447/208/376 448/205/376 -f 402/177/377 434/194/377 435/208/377 -f 389/196/378 421/193/378 422/194/378 -f 416/197/379 448/205/379 418/210/379 -f 403/178/380 435/208/380 436/205/380 -f 391/178/381 390/177/381 422/194/381 -f 404/195/382 436/205/382 437/210/382 -f 391/178/383 423/208/383 424/205/383 -f 405/196/384 437/193/384 438/194/384 -f 393/203/385 392/197/385 424/205/385 -f 406/177/386 438/194/386 439/208/386 -f 467/212/387 457/213/387 451/214/387 -f 443/208/388 442/194/388 474/215/388 -f 429/193/389 461/216/389 462/215/389 -f 444/205/390 443/208/390 475/217/390 -f 430/194/391 462/215/391 463/217/391 -f 418/193/392 450/216/392 449/215/392 -f 445/210/393 444/205/393 476/206/393 -f 431/208/394 463/217/394 464/206/394 -f 417/194/395 449/215/395 451/217/395 -f 445/193/396 477/216/396 478/215/396 -f 433/210/397 432/205/397 464/206/397 -f 420/211/398 419/208/398 451/217/398 -f 446/194/399 478/215/399 479/217/399 -f 433/193/400 465/216/400 466/215/400 -f 421/210/401 420/211/401 452/206/401 -f 447/208/402 479/217/402 480/206/402 -f 434/194/403 466/215/403 467/217/403 -f 421/193/404 453/216/404 454/215/404 -f 448/205/405 480/206/405 450/218/405 -f 435/208/406 467/217/406 468/206/406 -f 422/194/407 454/215/407 455/217/407 -f 436/205/408 468/206/408 469/218/408 -f 423/208/409 455/217/409 456/206/409 -f 438/194/410 437/193/410 469/216/410 -f 425/210/411 424/205/411 456/206/411 -f 438/194/412 470/215/412 471/217/412 -f 425/193/413 457/216/413 458/215/413 -f 439/208/414 471/217/414 472/206/414 -f 426/194/415 458/215/415 459/217/415 -f 440/205/416 472/206/416 473/218/416 -f 428/205/417 427/209/417 459/217/417 -f 441/193/418 473/216/418 474/215/418 -f 1/17/1 2/1/1 3/3/1 -f 5/19/2 3/3/2 6/4/2 -f 5/19/3 6/4/3 7/6/3 -f 7/6/4 8/5/4 9/8/4 -f 9/25/5 10/9/5 11/11/5 -f 13/13/6 11/11/6 14/12/6 -f 15/6/7 13/13/7 16/14/7 -f 15/6/8 16/14/8 17/16/8 -f 17/25/9 18/9/9 19/11/9 -f 21/13/10 19/11/10 22/4/10 -f 21/13/11 22/4/11 23/6/11 -f 23/6/12 24/14/12 25/16/12 -f 27/11/13 25/17/13 28/2/13 -f 29/19/14 27/11/14 30/4/14 -f 31/6/15 29/19/15 32/5/15 -f 33/8/16 31/6/16 34/7/16 -f 33/219/17 34/1/17 35/21/17 -f 37/19/18 35/21/18 38/4/18 -f 37/19/19 38/4/19 39/23/19 -f 39/23/20 40/22/20 41/24/20 -f 41/25/21 42/9/21 43/11/21 -f 43/11/22 44/10/22 45/13/22 -f 45/13/23 46/4/23 47/6/23 -f 47/6/24 48/14/24 49/16/24 -f 51/11/25 49/25/25 52/10/25 -f 51/11/26 52/10/26 53/13/26 -f 53/13/27 54/4/27 55/6/27 -f 55/6/28 56/14/28 57/16/28 -f 57/219/29 58/1/29 59/21/29 -f 59/21/419 60/10/419 61/19/419 -f 24/14/31 22/4/31 76/27/31 -f 1/16/32 63/6/32 2/28/32 -f 61/19/33 62/4/33 63/6/33 -f 150/64/34 149/29/34 182/31/34 -f 69/35/35 68/32/35 101/34/35 -f 42/7/36 40/22/36 85/35/36 -f 60/10/37 58/1/37 94/37/37 -f 16/14/38 14/12/38 72/39/38 -f 34/7/39 32/5/39 81/40/39 -f 90/44/40 52/10/40 89/41/40 -f 68/32/41 8/5/41 67/42/41 -f 77/46/42 26/15/42 76/27/42 -f 86/44/43 44/10/43 85/41/43 -f 62/4/44 60/10/44 95/42/44 -f 18/15/45 16/14/45 73/43/45 -f 82/37/46 36/20/46 81/36/46 -f 54/4/47 52/10/47 91/38/47 -f 10/7/48 8/5/48 69/35/48 -f 78/37/49 28/2/49 77/45/49 -f 46/4/50 44/10/50 87/26/50 -f 64/14/51 62/4/51 96/32/51 -f 20/10/52 18/9/52 74/44/52 -f 38/4/53 36/20/53 83/42/53 -f 56/14/54 54/4/54 92/39/54 -f 12/10/55 10/9/55 70/44/55 -f 30/4/56 28/2/56 79/42/56 -f 48/14/57 46/4/57 88/27/57 -f 4/2/58 2/1/58 65/37/58 -f 2/28/59 64/14/59 66/35/59 -f 22/4/60 20/10/60 75/26/60 -f 40/22/61 38/4/61 84/32/61 -f 93/46/62 58/15/62 92/39/62 -f 14/12/63 12/10/63 71/38/63 -f 80/32/64 32/5/64 79/42/64 -f 50/15/65 48/14/65 89/46/65 -f 6/4/66 4/2/66 67/42/66 -f 136/65/67 104/47/67 135/49/67 -f 96/32/68 95/42/68 128/33/68 -f 115/50/69 83/42/69 114/51/69 -f 70/44/70 69/36/70 102/53/70 -f 98/55/71 66/35/71 128/33/71 -f 84/32/72 83/42/72 116/33/72 -f 71/38/73 70/44/73 103/54/73 -f 85/35/74 84/32/74 117/55/74 -f 72/39/75 71/38/75 104/56/75 -f 86/44/76 85/41/76 118/51/76 -f 73/43/77 72/39/77 105/58/77 -f 87/26/78 86/44/78 119/59/78 -f 74/44/79 73/41/79 106/51/79 -f 88/27/80 87/26/80 120/56/80 -f 75/26/81 74/44/81 107/50/81 -f 89/46/82 88/27/82 121/60/82 -f 76/27/83 75/26/83 108/56/83 -f 90/44/84 89/41/84 122/53/84 -f 77/46/85 76/27/85 109/60/85 -f 91/38/86 90/44/86 123/54/86 -f 78/37/87 77/45/87 110/51/87 -f 92/39/88 91/38/88 124/56/88 -f 79/42/89 78/37/89 111/50/89 -f 65/37/90 66/45/90 97/51/90 -f 93/46/91 92/39/91 125/60/91 -f 80/32/92 79/42/92 112/33/92 -f 67/42/93 65/37/93 99/50/93 -f 94/37/94 93/36/94 126/51/94 -f 81/40/95 80/32/95 113/55/95 -f 68/32/96 67/42/96 100/33/96 -f 95/42/97 94/37/97 127/50/97 -f 82/37/98 81/36/98 114/51/98 -f 118/67/99 117/63/99 150/64/99 -f 105/89/100 104/47/100 137/66/100 -f 119/71/101 118/67/101 151/49/101 -f 138/72/102 106/68/102 137/70/102 -f 120/47/103 119/71/103 152/65/103 -f 107/74/104 106/68/104 139/73/104 -f 121/89/105 120/47/105 153/66/105 -f 108/76/106 107/74/106 140/75/106 -f 154/64/107 122/67/107 153/29/107 -f 109/220/108 108/76/108 141/77/108 -f 155/49/109 123/71/109 154/64/109 -f 110/67/110 109/63/110 142/64/110 -f 156/65/111 124/47/111 155/49/111 -f 111/48/112 110/67/112 143/49/112 -f 129/82/113 97/78/113 130/80/113 -f 125/89/114 124/47/114 157/66/114 -f 112/47/115 111/48/115 144/65/115 -f 131/85/116 99/81/116 129/82/116 -f 158/64/117 126/67/117 157/29/117 -f 113/89/118 112/47/118 145/83/118 -f 132/86/119 100/84/119 131/85/119 -f 159/88/120 127/71/120 158/64/120 -f 146/64/121 114/67/121 145/29/121 -f 101/221/122 100/84/122 133/87/122 -f 128/47/123 127/71/123 160/65/123 -f 147/49/124 115/48/124 146/64/124 -f 102/67/125 101/63/125 134/64/125 -f 98/89/126 128/47/126 130/66/126 -f 116/47/127 115/48/127 148/65/127 -f 103/48/128 102/67/128 135/49/128 -f 149/83/129 117/89/129 148/65/129 -f 176/101/130 175/90/130 208/92/130 -f 169/96/34 137/66/34 168/93/34 -f 151/49/34 150/64/34 183/90/34 -f 170/95/34 138/72/34 169/94/34 -f 152/65/34 151/49/34 184/93/34 -f 171/97/34 139/73/34 170/95/34 -f 153/66/34 152/65/34 185/96/34 -f 172/98/34 140/75/34 171/97/34 -f 154/64/34 153/29/34 186/31/34 -f 141/77/34 140/75/34 173/99/34 -f 155/49/34 154/64/34 187/90/34 -f 142/64/34 141/29/34 174/31/34 -f 156/65/34 155/49/34 188/93/34 -f 143/49/34 142/64/34 175/90/34 -f 161/102/34 129/82/34 162/100/34 -f 189/96/34 157/66/34 188/93/34 -f 144/65/34 143/49/34 176/101/34 -f 163/103/34 131/85/34 161/102/34 -f 190/31/34 158/64/34 189/30/34 -f 145/83/34 144/65/34 177/96/34 -f 164/104/34 132/86/34 163/103/34 -f 191/90/34 159/88/34 190/31/34 -f 146/64/34 145/29/34 178/31/34 -f 165/113/34 133/87/34 164/104/34 -f 160/65/34 159/88/34 192/93/34 -f 147/49/34 146/64/34 179/90/34 -f 166/31/34 134/64/34 165/30/34 -f 162/96/34 130/66/34 192/93/34 -f 148/65/34 147/49/34 180/101/34 -f 135/49/34 134/64/34 167/90/34 -f 149/83/34 148/65/34 181/96/34 -f 168/93/34 136/65/34 167/90/34 -f 211/91/131 210/105/131 243/107/131 -f 195/111/132 163/103/132 193/108/132 -f 222/105/133 190/31/133 221/109/133 -f 177/96/134 176/101/134 209/110/134 -f 164/104/135 163/103/135 196/112/135 -f 191/90/136 190/31/136 223/91/136 -f 210/105/137 178/31/137 209/109/137 -f 197/222/138 165/113/138 196/112/138 -f 192/93/139 191/90/139 224/92/139 -f 211/91/140 179/90/140 210/105/140 -f 198/105/141 166/31/141 197/109/141 -f 162/96/142 192/93/142 194/110/142 -f 180/101/143 179/90/143 212/92/143 -f 199/91/144 167/90/144 198/105/144 -f 213/110/145 181/96/145 212/92/145 -f 200/92/146 168/93/146 199/91/146 -f 182/31/147 181/30/147 214/105/147 -f 201/110/148 169/96/148 200/92/148 -f 215/91/149 183/90/149 214/105/149 -f 170/95/150 169/94/150 202/115/150 -f 184/93/151 183/90/151 216/92/151 -f 203/116/152 171/97/152 202/115/152 -f 217/110/153 185/96/153 216/92/153 -f 172/98/154 171/97/154 204/117/154 -f 218/105/155 186/31/155 217/109/155 -f 205/223/156 173/99/156 204/117/156 -f 219/91/157 187/90/157 218/105/157 -f 206/105/158 174/31/158 205/109/158 -f 220/92/159 188/93/159 219/91/159 -f 207/91/160 175/90/160 206/105/160 -f 193/108/161 161/102/161 194/118/161 -f 221/110/162 189/96/162 220/92/162 -f 246/106/163 245/119/163 278/121/163 -f 198/105/164 197/109/164 230/106/164 -f 194/110/165 224/92/165 226/123/165 -f 212/92/166 211/91/166 244/122/166 -f 199/91/167 198/105/167 231/107/167 -f 213/110/168 212/92/168 245/123/168 -f 200/92/169 199/91/169 232/122/169 -f 214/105/170 213/109/170 246/106/170 -f 201/110/171 200/92/171 233/123/171 -f 247/107/172 215/91/172 246/106/172 -f 202/115/173 201/114/173 234/125/173 -f 216/92/174 215/91/174 248/122/174 -f 203/116/175 202/115/175 235/126/175 -f 249/123/176 217/110/176 248/122/176 -f 204/117/177 203/116/177 236/127/177 -f 250/106/178 218/105/178 249/119/178 -f 205/223/179 204/117/179 237/128/179 -f 219/91/180 218/105/180 251/107/180 -f 206/105/181 205/109/181 238/106/181 -f 220/92/182 219/91/182 252/122/182 -f 207/91/183 206/105/183 239/107/183 -f 193/108/184 194/118/184 225/130/184 -f 253/123/185 221/110/185 252/122/185 -f 208/92/186 207/91/186 240/122/186 -f 195/111/187 193/108/187 227/131/187 -f 254/106/188 222/105/188 253/119/188 -f 209/110/189 208/92/189 241/123/189 -f 196/112/190 195/111/190 228/132/190 -f 223/91/191 222/105/191 255/107/191 -f 210/105/192 209/109/192 242/106/192 -f 197/222/193 196/112/193 229/133/193 -f 224/92/194 223/91/194 256/122/194 -f 281/137/195 280/134/195 313/136/195 -f 233/123/196 232/122/196 265/137/196 -f 279/140/197 247/107/197 278/121/197 -f 234/125/198 233/124/198 266/139/198 -f 248/122/199 247/107/199 280/134/199 -f 267/141/200 235/126/200 266/139/200 -f 249/123/201 248/122/201 281/137/201 -f 236/127/202 235/126/202 268/142/202 -f 282/121/203 250/106/203 281/120/203 -f 269/224/204 237/128/204 268/142/204 -f 251/107/205 250/106/205 283/140/205 -f 238/106/206 237/119/206 270/121/206 -f 284/134/207 252/122/207 283/140/207 -f 239/107/208 238/106/208 271/140/208 -f 225/130/209 226/129/209 257/144/209 -f 285/137/210 253/123/210 284/134/210 -f 240/122/211 239/107/211 272/134/211 -f 227/131/212 225/130/212 259/145/212 -f 254/106/213 253/119/213 286/121/213 -f 241/123/214 240/122/214 273/137/214 -f 260/146/215 228/132/215 259/145/215 -f 287/140/216 255/107/216 286/121/216 -f 242/106/217 241/119/217 274/121/217 -f 261/158/218 229/133/218 260/146/218 -f 256/122/219 255/107/219 288/134/219 -f 243/107/220 242/106/220 275/140/220 -f 230/106/221 229/119/221 262/121/221 -f 258/160/222 226/123/222 288/134/222 -f 244/122/223 243/107/223 276/134/223 -f 263/140/224 231/107/224 262/121/224 -f 277/137/225 245/123/225 276/134/225 -f 232/122/226 231/107/226 264/134/226 -f 348/168/227 316/135/227 347/148/227 -f 268/142/228 267/141/228 300/150/228 -f 282/121/229 281/120/229 314/152/229 -f 269/224/230 268/142/230 301/153/230 -f 283/140/231 282/121/231 315/147/231 -f 270/121/232 269/120/232 302/152/232 -f 284/134/233 283/140/233 316/135/233 -f 271/140/234 270/121/234 303/147/234 -f 257/144/235 258/143/235 289/155/235 -f 285/137/236 284/134/236 317/136/236 -f 272/134/237 271/140/237 304/135/237 -f 291/156/238 259/145/238 289/155/238 -f 318/152/239 286/121/239 317/151/239 -f 273/137/240 272/134/240 305/136/240 -f 292/159/241 260/146/241 291/156/241 -f 287/140/242 286/121/242 319/157/242 -f 274/121/243 273/120/243 306/152/243 -f 293/225/244 261/158/244 292/159/244 -f 288/134/245 287/140/245 320/135/245 -f 275/140/246 274/121/246 307/147/246 -f 294/152/247 262/121/247 293/151/247 -f 290/136/248 258/160/248 320/135/248 -f 276/134/249 275/140/249 308/135/249 -f 263/140/250 262/121/250 295/147/250 -f 309/136/251 277/137/251 308/135/251 -f 264/134/252 263/140/252 296/135/252 -f 278/121/253 277/120/253 310/152/253 -f 265/137/254 264/134/254 297/136/254 -f 279/140/255 278/121/255 311/147/255 -f 298/162/256 266/139/256 297/161/256 -f 280/134/257 279/140/257 312/135/257 -f 299/149/258 267/141/258 298/162/258 -f 356/180/259 324/163/259 355/165/259 -f 335/148/260 303/147/260 334/166/260 -f 289/155/261 290/154/261 321/166/261 -f 317/136/262 316/135/262 349/169/262 -f 304/135/263 303/147/263 336/168/263 -f 323/164/264 291/156/264 321/166/264 -f 318/152/265 317/151/265 350/166/265 -f 305/136/266 304/135/266 337/169/266 -f 292/159/267 291/156/267 324/163/267 -f 319/157/268 318/152/268 351/148/268 -f 306/152/420 305/151/420 338/166/420 -f 293/225/270 292/159/270 325/170/270 -f 352/168/271 320/135/271 351/148/271 -f 307/147/272 306/152/272 339/148/272 -f 326/166/273 294/152/273 325/167/273 -f 290/136/274 320/135/274 322/169/274 -f 308/135/275 307/147/275 340/168/275 -f 295/147/276 294/152/276 327/148/276 -f 309/136/277 308/135/277 341/169/277 -f 328/168/278 296/135/278 327/148/278 -f 310/152/279 309/151/279 342/166/279 -f 297/136/280 296/135/280 329/169/280 -f 343/148/281 311/147/281 342/166/281 -f 330/172/282 298/162/282 329/171/282 -f 312/135/283 311/147/283 344/168/283 -f 299/149/284 298/162/284 331/173/284 -f 313/136/285 312/135/285 345/169/285 -f 332/174/286 300/150/286 331/173/286 -f 314/152/287 313/151/287 346/166/287 -f 301/153/288 300/150/288 333/175/288 -f 315/147/289 314/152/289 347/148/289 -f 302/152/290 301/151/290 334/166/290 -f 359/181/291 358/176/291 391/178/291 -f 383/181/292 351/148/292 382/176/292 -f 338/166/293 337/167/293 370/176/293 -f 357/183/294 325/170/294 356/180/294 -f 384/182/295 352/168/295 383/181/295 -f 371/181/296 339/148/296 370/176/296 -f 358/176/297 326/166/297 357/179/297 -f 322/169/298 352/168/298 354/183/298 -f 340/168/299 339/148/299 372/182/299 -f 327/148/300 326/166/300 359/181/300 -f 341/169/301 340/168/301 373/184/301 -f 360/182/302 328/168/302 359/181/302 -f 342/166/303 341/167/303 374/176/303 -f 329/169/304 328/168/304 361/184/304 -f 343/148/305 342/166/305 375/181/305 -f 362/186/306 330/172/306 361/185/306 -f 344/168/307 343/148/307 376/182/307 -f 331/173/308 330/172/308 363/187/308 -f 345/169/309 344/168/309 377/184/309 -f 332/174/310 331/173/310 364/188/310 -f 346/166/311 345/167/311 378/176/311 -f 333/175/312 332/174/312 365/189/312 -f 347/148/313 346/166/313 379/181/313 -f 366/176/314 334/166/314 365/179/314 -f 348/168/315 347/148/315 380/182/315 -f 335/148/316 334/166/316 367/181/316 -f 321/166/317 322/167/317 353/191/317 -f 349/169/318 348/168/318 381/183/318 -f 336/168/319 335/148/319 368/182/319 -f 323/164/320 321/166/320 355/165/320 -f 350/166/321 349/167/321 382/176/321 -f 337/169/322 336/168/322 369/184/322 -f 394/198/323 393/192/323 426/194/323 -f 405/203/324 373/184/324 404/195/324 -f 392/197/325 360/182/325 391/178/325 -f 406/177/326 374/176/326 405/196/326 -f 393/203/327 361/184/327 392/197/327 -f 407/178/328 375/181/328 406/177/328 -f 362/186/329 361/185/329 394/198/329 -f 376/182/330 375/181/330 408/195/330 -f 363/187/331 362/186/331 395/199/331 -f 409/203/332 377/184/332 408/195/332 -f 364/188/333 363/187/333 396/200/333 -f 378/176/334 377/179/334 410/177/334 -f 365/189/335 364/188/335 397/201/335 -f 379/181/336 378/176/336 411/178/336 -f 398/177/337 366/176/337 397/196/337 -f 412/195/338 380/182/338 411/178/338 -f 399/178/339 367/181/339 398/177/339 -f 353/191/340 354/190/340 385/202/340 -f 381/183/341 380/182/341 413/203/341 -f 400/195/342 368/182/342 399/178/342 -f 355/165/343 353/191/343 387/204/343 -f 414/177/344 382/176/344 413/196/344 -f 401/203/345 369/184/345 400/195/345 -f 388/197/346 356/180/346 387/204/346 -f 383/181/347 382/176/347 415/178/347 -f 402/177/348 370/176/348 401/196/348 -f 357/183/349 356/180/349 389/203/349 -f 416/197/350 384/182/350 415/178/350 -f 371/181/351 370/176/351 403/178/351 -f 358/176/352 357/179/352 390/177/352 -f 386/203/353 354/183/353 416/197/353 -f 372/182/354 371/181/354 404/195/354 -f 429/226/355 428/205/355 461/207/355 -f 408/195/356 407/178/356 440/205/356 -f 395/199/357 394/198/357 427/209/357 -f 409/203/358 408/195/358 441/210/358 -f 396/200/359 395/199/359 428/205/359 -f 442/194/360 410/177/360 441/193/360 -f 429/226/361 397/201/361 428/205/361 -f 443/208/362 411/178/362 442/194/362 -f 398/177/363 397/196/363 430/194/363 -f 444/205/364 412/195/364 443/208/364 -f 399/178/365 398/177/365 431/208/365 -f 417/194/366 385/202/366 418/193/366 -f 413/203/367 412/195/367 445/210/367 -f 432/205/368 400/195/368 431/208/368 -f 387/204/369 385/202/369 419/208/369 -f 414/177/370 413/196/370 446/194/370 -f 401/203/371 400/195/371 433/210/371 -f 388/197/372 387/204/372 420/211/372 -f 415/178/373 414/177/373 447/208/373 -f 402/177/374 401/196/374 434/194/374 -f 389/203/375 388/197/375 421/210/375 -f 416/197/376 415/178/376 448/205/376 -f 403/178/377 402/177/377 435/208/377 -f 390/177/378 389/196/378 422/194/378 -f 386/203/379 416/197/379 418/210/379 -f 404/195/380 403/178/380 436/205/380 -f 423/208/381 391/178/381 422/194/381 -f 405/203/382 404/195/382 437/210/382 -f 392/197/383 391/178/383 424/205/383 -f 406/177/384 405/196/384 438/194/384 -f 425/210/385 393/203/385 424/205/385 -f 407/178/386 406/177/386 439/208/386 -f 451/214/421 449/227/421 450/228/421 -f 450/228/387 480/229/387 451/214/387 -f 479/230/387 478/231/387 475/232/387 -f 477/233/387 476/234/387 475/232/387 -f 475/232/387 474/235/387 473/236/387 -f 473/236/387 472/237/387 475/232/387 -f 471/238/387 470/239/387 469/240/387 -f 469/240/387 468/241/387 471/238/387 -f 467/212/421 466/242/421 465/243/421 -f 465/243/422 464/244/422 467/212/422 -f 463/245/387 462/246/387 461/247/387 -f 461/247/387 460/248/387 459/249/387 -f 459/249/387 458/250/387 457/213/387 -f 457/213/387 456/251/387 455/252/387 -f 455/252/387 454/253/387 453/254/387 -f 453/254/387 452/255/387 451/214/387 -f 451/214/387 480/229/387 479/230/387 -f 478/231/387 477/233/387 475/232/387 -f 475/232/387 472/237/387 471/238/387 -f 471/238/387 468/241/387 467/212/387 -f 467/212/387 464/244/387 463/245/387 -f 463/245/387 461/247/387 467/212/387 -f 459/249/387 457/213/387 467/212/387 -f 455/252/387 453/254/387 451/214/387 -f 451/214/387 479/230/387 475/232/387 -f 475/232/387 471/238/387 451/214/387 -f 467/212/387 461/247/387 459/249/387 -f 457/213/387 455/252/387 451/214/387 -f 451/214/387 471/238/387 467/212/387 -f 475/217/388 443/208/388 474/215/388 -f 430/194/389 429/193/389 462/215/389 -f 476/206/390 444/205/390 475/217/390 -f 431/208/391 430/194/391 463/217/391 -f 417/194/392 418/193/392 449/215/392 -f 477/218/393 445/210/393 476/206/393 -f 432/205/423 431/208/423 464/206/423 -f 419/208/424 417/194/424 451/217/424 -f 446/194/396 445/193/396 478/215/396 -f 465/218/397 433/210/397 464/206/397 -f 452/206/398 420/211/398 451/217/398 -f 447/208/399 446/194/399 479/217/399 -f 434/194/400 433/193/400 466/215/400 -f 453/218/401 421/210/401 452/206/401 -f 448/205/402 447/208/402 480/206/402 -f 435/208/403 434/194/403 467/217/403 -f 422/194/404 421/193/404 454/215/404 -f 418/210/405 448/205/405 450/218/405 -f 436/205/406 435/208/406 468/206/406 -f 423/208/425 422/194/425 455/217/425 -f 437/210/426 436/205/426 469/218/426 -f 424/205/409 423/208/409 456/206/409 -f 470/215/410 438/194/410 469/216/410 -f 457/218/411 425/210/411 456/206/411 -f 439/208/427 438/194/427 471/217/427 -f 426/194/413 425/193/413 458/215/413 -f 440/205/414 439/208/414 472/206/414 -f 427/209/415 426/194/415 459/217/415 -f 441/210/416 440/205/416 473/218/416 -f 460/206/428 428/205/428 459/217/428 -f 442/194/418 441/193/418 474/215/418 diff --git a/src/main/resources/assets/hbm/models/mush.obj b/src/main/resources/assets/hbm/models/mush.obj deleted file mode 100644 index f68b80d1e..000000000 --- a/src/main/resources/assets/hbm/models/mush.obj +++ /dev/null @@ -1,2093 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'mush.blend' -# www.blender.org -o Cylinder -v -0.000000 0.000000 -2.999999 -v -0.000000 4.000000 -2.000000 -v 0.585271 0.000000 -2.942355 -v 0.390181 4.000000 -1.961570 -v 1.148050 0.000000 -2.771638 -v 0.765367 4.000000 -1.847759 -v 1.666710 0.000000 -2.494408 -v 1.111140 4.000000 -1.662939 -v 2.121320 0.000000 -2.121320 -v 1.414213 4.000000 -1.414213 -v 2.494409 0.000000 -1.666710 -v 1.662939 4.000000 -1.111140 -v 2.771638 0.000000 -1.148050 -v 1.847759 4.000000 -0.765367 -v 2.942355 0.000000 -0.585271 -v 1.961570 4.000000 -0.390180 -v 3.000000 0.000000 0.000000 -v 2.000000 4.000000 0.000000 -v 2.942356 0.000000 0.585271 -v 1.961571 4.000000 0.390181 -v 2.771638 0.000000 1.148051 -v 1.847759 4.000000 0.765367 -v 2.494409 0.000000 1.666711 -v 1.662939 4.000000 1.111141 -v 2.121320 0.000000 2.121321 -v 1.414213 4.000000 1.414214 -v 1.666710 0.000000 2.494410 -v 1.111140 4.000000 1.662940 -v 1.148050 0.000000 2.771640 -v 0.765366 4.000000 1.847760 -v 0.585270 0.000000 2.942357 -v 0.390180 4.000000 1.961571 -v -0.000001 0.000000 3.000000 -v -0.000001 4.000000 2.000000 -v -0.585272 0.000000 2.942356 -v -0.390182 4.000000 1.961571 -v -1.148052 0.000000 2.771639 -v -0.765368 4.000000 1.847759 -v -1.666712 0.000000 2.494409 -v -1.111142 4.000000 1.662939 -v -2.121322 0.000000 2.121320 -v -1.414215 4.000000 1.414213 -v -2.494411 0.000000 1.666710 -v -1.662940 4.000000 1.111140 -v -2.771640 0.000000 1.148049 -v -1.847760 4.000000 0.765366 -v -2.942357 0.000000 0.585269 -v -1.961571 4.000000 0.390179 -v -3.000000 0.000000 -0.000002 -v -2.000000 4.000000 -0.000002 -v -2.942356 0.000000 -0.585274 -v -1.961570 4.000000 -0.390182 -v -2.771638 0.000000 -1.148053 -v -1.847758 4.000000 -0.765369 -v -2.494407 0.000000 -1.666713 -v -1.662938 4.000000 -1.111142 -v -2.121318 0.000000 -2.121322 -v -1.414212 4.000000 -1.414215 -v -1.666708 0.000000 -2.494411 -v -1.111138 4.000000 -1.662940 -v -1.148046 0.000000 -2.771640 -v -0.765364 4.000000 -1.847760 -v -0.585267 0.000000 -2.942356 -v -0.390178 4.000000 -1.961571 -v 0.292634 9.000000 -1.471178 -v -0.000001 9.000000 -1.500000 -v 0.574024 9.000000 -1.385819 -v 0.833354 9.000000 -1.247204 -v 1.060659 9.000000 -1.060660 -v 1.247203 9.000000 -0.833355 -v 1.385818 9.000000 -0.574025 -v 1.471177 9.000000 -0.292635 -v 1.499999 9.000000 0.000000 -v 1.471177 9.000000 0.292635 -v 1.385818 9.000000 0.574025 -v 1.247203 9.000000 0.833355 -v 1.060659 9.000000 1.060660 -v 0.833354 9.000000 1.247205 -v 0.574024 9.000000 1.385820 -v 0.292634 9.000000 1.471178 -v -0.000002 9.000000 1.500000 -v -0.292637 9.000000 1.471178 -v -0.574027 9.000000 1.385819 -v -0.833357 9.000000 1.247204 -v -1.060662 9.000000 1.060660 -v -1.247206 9.000000 0.833355 -v -1.385821 9.000000 0.574024 -v -1.471179 9.000000 0.292634 -v -1.500001 9.000000 -0.000001 -v -1.471179 9.000000 -0.292637 -v -1.385820 9.000000 -0.574027 -v -1.247205 9.000000 -0.833357 -v -1.060660 9.000000 -1.060661 -v -0.833355 9.000000 -1.247205 -v -0.574024 9.000000 -1.385820 -v -0.292635 9.000000 -1.471178 -v 0.243864 22.000000 -1.225981 -v 0.000001 22.000000 -1.250000 -v 0.478355 22.000000 -1.154849 -v 0.694464 22.000000 -1.039337 -v 0.883885 22.000000 -0.883883 -v 1.039338 22.000000 -0.694463 -v 1.154850 22.000000 -0.478354 -v 1.225983 22.000000 -0.243863 -v 1.250001 22.000000 -0.000000 -v 1.225983 22.000000 0.243863 -v 1.154851 22.000000 0.478354 -v 1.039338 22.000000 0.694463 -v 0.883885 22.000000 0.883884 -v 0.694464 22.000000 1.039337 -v 0.478355 22.000000 1.154850 -v 0.243864 22.000000 1.225982 -v 0.000001 22.000000 1.250000 -v -0.243862 22.000000 1.225982 -v -0.478354 22.000000 1.154849 -v -0.694462 22.000000 1.039337 -v -0.883883 22.000000 0.883883 -v -1.039336 22.000000 0.694462 -v -1.154849 22.000000 0.478353 -v -1.225981 22.000000 0.243862 -v -1.249999 22.000000 -0.000001 -v -1.225980 22.000000 -0.243864 -v -1.154848 22.000000 -0.478356 -v -1.039335 22.000000 -0.694464 -v -0.883881 22.000000 -0.883884 -v -0.694460 22.000000 -1.039338 -v -0.478351 22.000000 -1.154850 -v -0.243860 22.000000 -1.225982 -v 0.390184 20.000000 -1.961570 -v 0.000004 20.000000 -2.000000 -v 0.765370 20.000000 -1.847759 -v 1.111144 20.000000 -1.662939 -v 1.414217 20.000000 -1.414213 -v 1.662943 20.000000 -1.111140 -v 1.847763 20.000000 -0.765367 -v 1.961574 20.000000 -0.390180 -v 2.000004 20.000000 0.000000 -v 1.961574 20.000000 0.390181 -v 1.847763 20.000000 0.765367 -v 1.662943 20.000000 1.111141 -v 1.414217 20.000000 1.414214 -v 1.111144 20.000000 1.662940 -v 0.765370 20.000000 1.847760 -v 0.390184 20.000000 1.961571 -v 0.000003 20.000000 2.000000 -v -0.390178 20.000000 1.961571 -v -0.765364 20.000000 1.847759 -v -1.111138 20.000000 1.662939 -v -1.414211 20.000000 1.414213 -v -1.662936 20.000000 1.111140 -v -1.847756 20.000000 0.765366 -v -1.961567 20.000000 0.390179 -v -1.999996 20.000000 -0.000002 -v -1.961566 20.000000 -0.390182 -v -1.847754 20.000000 -0.765369 -v -1.662934 20.000000 -1.111142 -v -1.414208 20.000000 -1.414215 -v -1.111135 20.000000 -1.662941 -v -0.765361 20.000000 -1.847760 -v -0.390174 20.000000 -1.961571 -v 0.546257 20.000000 -2.746198 -v 0.000004 20.000000 -2.799999 -v 1.071518 20.000000 -2.586862 -v 1.555601 20.000000 -2.328114 -v 1.979903 20.000000 -1.979898 -v 2.328119 20.000000 -1.555596 -v 2.586867 20.000000 -1.071513 -v 2.746203 20.000000 -0.546253 -v 2.800004 20.000000 0.000000 -v 2.746203 20.000000 0.546253 -v 2.586867 20.000000 1.071514 -v 2.328119 20.000000 1.555597 -v 1.979903 20.000000 1.979900 -v 1.555601 20.000000 2.328115 -v 1.071517 20.000000 2.586864 -v 0.546256 20.000000 2.746200 -v 0.000003 20.000000 2.800000 -v -0.546250 20.000000 2.746199 -v -1.071511 20.000000 2.586863 -v -1.555594 20.000000 2.328115 -v -1.979896 20.000000 1.979898 -v -2.328112 20.000000 1.555596 -v -2.586860 20.000000 1.071512 -v -2.746195 20.000000 0.546251 -v -2.799996 20.000000 -0.000002 -v -2.746194 20.000000 -0.546255 -v -2.586858 20.000000 -1.071516 -v -2.328109 20.000000 -1.555599 -v -1.979892 20.000000 -1.979901 -v -1.555590 20.000000 -2.328117 -v -1.071506 20.000000 -2.586864 -v -0.546245 20.000000 -2.746199 -v 0.663312 21.000000 -3.334670 -v 0.000004 21.000000 -3.400000 -v 1.301128 21.000000 -3.141190 -v 1.888944 21.000000 -2.826996 -v 2.404167 21.000000 -2.404163 -v 2.827002 21.000000 -1.888938 -v 3.141195 21.000000 -1.301123 -v 3.334675 21.000000 -0.663307 -v 3.400004 21.000000 0.000000 -v 3.334675 21.000000 0.663307 -v 3.141196 21.000000 1.301124 -v 2.827002 21.000000 1.888939 -v 2.404167 21.000000 2.404164 -v 1.888943 21.000000 2.826997 -v 1.301127 21.000000 3.141191 -v 0.663311 21.000000 3.334671 -v 0.000003 21.000000 3.400000 -v -0.663304 21.000000 3.334670 -v -1.301121 21.000000 3.141190 -v -1.888936 21.000000 2.826996 -v -2.404160 21.000000 2.404162 -v -2.826994 21.000000 1.888937 -v -3.141187 21.000000 1.301122 -v -3.334666 21.000000 0.663305 -v -3.399996 21.000000 -0.000003 -v -3.334665 21.000000 -0.663310 -v -3.141184 21.000000 -1.301127 -v -2.826990 21.000000 -1.888942 -v -2.404155 21.000000 -2.404165 -v -1.888931 21.000000 -2.826999 -v -1.301115 21.000000 -3.141192 -v -0.663298 21.000000 -3.334670 -v 0.663312 22.000000 -3.334670 -v 0.000005 22.000000 -3.400000 -v 1.301129 22.000000 -3.141190 -v 1.888944 22.000000 -2.826996 -v 2.404168 22.000000 -2.404163 -v 2.827002 22.000000 -1.888938 -v 3.141195 22.000000 -1.301123 -v 3.334675 22.000000 -0.663307 -v 3.400005 22.000000 0.000000 -v 3.334675 22.000000 0.663307 -v 3.141196 22.000000 1.301124 -v 2.827002 22.000000 1.888939 -v 2.404168 22.000000 2.404164 -v 1.888944 22.000000 2.826997 -v 1.301128 22.000000 3.141191 -v 0.663311 22.000000 3.334671 -v 0.000004 22.000000 3.400000 -v -0.663304 22.000000 3.334670 -v -1.301120 22.000000 3.141190 -v -1.888936 22.000000 2.826996 -v -2.404160 22.000000 2.404162 -v -2.826993 22.000000 1.888937 -v -3.141187 22.000000 1.301122 -v -3.334666 22.000000 0.663305 -v -3.399995 22.000000 -0.000003 -v -3.334665 22.000000 -0.663310 -v -3.141184 22.000000 -1.301127 -v -2.826989 22.000000 -1.888942 -v -2.404155 22.000000 -2.404165 -v -1.888930 22.000000 -2.826999 -v -1.301114 22.000000 -3.141192 -v -0.663297 22.000000 -3.334670 -v 0.468222 24.000000 -2.353884 -v 0.000006 24.000000 -2.400000 -v 0.918446 24.000000 -2.217310 -v 1.333374 24.000000 -1.995527 -v 1.697062 24.000000 -1.697056 -v 1.995533 24.000000 -1.333368 -v 2.217317 24.000000 -0.918440 -v 2.353890 24.000000 -0.468216 -v 2.400005 24.000000 0.000000 -v 2.353890 24.000000 0.468217 -v 2.217317 24.000000 0.918440 -v 1.995533 24.000000 1.333369 -v 1.697062 24.000000 1.697057 -v 1.333374 24.000000 1.995528 -v 0.918445 24.000000 2.217312 -v 0.468222 24.000000 2.353885 -v 0.000005 24.000000 2.400000 -v -0.468212 24.000000 2.353885 -v -0.918436 24.000000 2.217311 -v -1.333364 24.000000 1.995527 -v -1.697052 24.000000 1.697056 -v -1.995522 24.000000 1.333368 -v -2.217306 24.000000 0.918439 -v -2.353879 24.000000 0.468215 -v -2.399995 24.000000 -0.000002 -v -2.353878 24.000000 -0.468219 -v -2.217304 24.000000 -0.918442 -v -1.995520 24.000000 -1.333371 -v -1.697048 24.000000 -1.697058 -v -1.333360 24.000000 -1.995528 -v -0.918431 24.000000 -2.217312 -v -0.468208 24.000000 -2.353885 -v 1.053494 23.000000 -5.296239 -v 0.000006 23.000000 -5.399999 -v 2.066497 23.000000 -4.988948 -v 3.000085 23.000000 -4.489934 -v 3.818383 23.000000 -3.818375 -v 4.489942 23.000000 -3.000077 -v 4.988955 23.000000 -2.066489 -v 5.296246 23.000000 -1.053487 -v 5.400004 23.000000 0.000001 -v 5.296246 23.000000 1.053488 -v 4.988955 23.000000 2.066491 -v 4.489942 23.000000 3.000080 -v 3.818383 23.000000 3.818377 -v 3.000085 23.000000 4.489937 -v 2.066496 23.000000 4.988951 -v 1.053492 23.000000 5.296242 -v 0.000004 23.000000 5.400001 -v -1.053484 23.000000 5.296241 -v -2.066487 23.000000 4.988949 -v -3.000076 23.000000 4.489935 -v -3.818373 23.000000 3.818375 -v -4.489932 23.000000 3.000077 -v -4.988945 23.000000 2.066488 -v -5.296236 23.000000 1.053484 -v -5.399994 23.000000 -0.000004 -v -5.296233 23.000000 -1.053492 -v -4.988941 23.000000 -2.066495 -v -4.489926 23.000000 -3.000083 -v -3.818366 23.000000 -3.818380 -v -3.000067 23.000000 -4.489939 -v -2.066477 23.000000 -4.988951 -v -1.053474 23.000000 -5.296240 -v 1.755819 24.000000 -8.827065 -v 0.000006 24.000000 -8.999997 -v 3.444157 24.000000 -8.314913 -v 5.000138 24.000000 -7.483224 -v 6.363967 24.000000 -6.363959 -v 7.483233 24.000000 -5.000129 -v 8.314921 24.000000 -3.444148 -v 8.827073 24.000000 -1.755811 -v 9.000004 24.000000 0.000002 -v 8.827074 24.000000 1.755814 -v 8.314922 24.000000 3.444152 -v 7.483233 24.000000 5.000134 -v 6.363967 24.000000 6.363963 -v 5.000138 24.000000 7.483229 -v 3.444156 24.000000 8.314919 -v 1.755817 24.000000 8.827070 -v 0.000003 24.000000 9.000002 -v -1.755810 24.000000 8.827069 -v -3.444149 24.000000 8.314917 -v -5.000130 24.000000 7.483226 -v -6.363959 24.000000 6.363959 -v -7.483224 24.000000 5.000129 -v -8.314913 24.000000 3.444147 -v -8.827063 24.000000 1.755807 -v -8.999994 24.000000 -0.000006 -v -8.827060 24.000000 -1.755820 -v -8.314906 24.000000 -3.444158 -v -7.483214 24.000000 -5.000139 -v -6.363947 24.000000 -6.363967 -v -5.000115 24.000000 -7.483231 -v -3.444133 24.000000 -8.314919 -v -1.755793 24.000000 -8.827067 -v 2.038701 26.000000 -10.249203 -v 0.000007 26.000000 -10.449997 -v 3.999049 26.000000 -9.654537 -v 5.805717 26.000000 -8.688854 -v 7.389273 26.000000 -7.389263 -v 8.688865 26.000000 -5.805706 -v 9.654549 26.000000 -3.999039 -v 10.249214 26.000000 -2.038692 -v 10.450004 26.000000 0.000002 -v 10.249214 26.000000 2.038695 -v 9.654549 26.000000 3.999043 -v 8.688865 26.000000 5.805711 -v 7.389273 26.000000 7.389268 -v 5.805716 26.000000 8.688861 -v 3.999047 26.000000 9.654545 -v 2.038698 26.000000 10.249209 -v 0.000004 26.000000 10.450003 -v -2.038691 26.000000 10.249207 -v -3.999040 26.000000 9.654542 -v -5.805707 26.000000 8.688857 -v -7.389263 26.000000 7.389264 -v -8.688853 26.000000 5.805706 -v -9.654536 26.000000 3.999037 -v -10.249200 26.000000 2.038688 -v -10.449993 26.000000 -0.000007 -v -10.249197 26.000000 -2.038702 -v -9.654529 26.000000 -3.999050 -v -8.688843 26.000000 -5.805717 -v -7.389249 26.000000 -7.389272 -v -5.805690 26.000000 -8.688862 -v -3.999021 26.000000 -9.654544 -v -2.038671 26.000000 -10.249207 -v 1.950911 28.000000 -9.807850 -v 0.000007 28.000000 -9.999997 -v 3.826842 28.000000 -9.238792 -v 5.555710 28.000000 -8.314693 -v 7.071075 28.000000 -7.071065 -v 8.314704 28.000000 -5.555699 -v 9.238802 28.000000 -3.826832 -v 9.807859 28.000000 -1.950901 -v 10.000003 28.000000 0.000002 -v 9.807860 28.000000 1.950905 -v 9.238803 28.000000 3.826835 -v 8.314704 28.000000 5.555705 -v 7.071075 28.000000 7.071070 -v 5.555709 28.000000 8.314699 -v 3.826840 28.000000 9.238799 -v 1.950908 28.000000 9.807856 -v 0.000004 28.000000 10.000002 -v -1.950900 28.000000 9.807855 -v -3.826832 28.000000 9.238796 -v -5.555700 28.000000 8.314696 -v -7.071065 28.000000 7.071066 -v -8.314693 28.000000 5.555699 -v -9.238791 28.000000 3.826830 -v -9.807847 28.000000 1.950897 -v -9.999993 28.000000 -0.000007 -v -9.807844 28.000000 -1.950911 -v -9.238784 28.000000 -3.826842 -v -8.314682 28.000000 -5.555710 -v -7.071051 28.000000 -7.071074 -v -5.555684 28.000000 -8.314701 -v -3.826813 28.000000 -9.238798 -v -1.950881 28.000000 -9.807853 -v 0.975460 31.000000 -4.903925 -v 0.000008 31.000000 -4.999999 -v 1.913425 31.000000 -4.619397 -v 2.777859 31.000000 -4.157347 -v 3.535542 31.000000 -3.535533 -v 4.157357 31.000000 -2.777850 -v 4.619406 31.000000 -1.913416 -v 4.903934 31.000000 -0.975451 -v 5.000006 31.000000 0.000001 -v 4.903935 31.000000 0.975452 -v 4.619406 31.000000 1.913418 -v 4.157357 31.000000 2.777852 -v 3.535542 31.000000 3.535535 -v 2.777859 31.000000 4.157349 -v 1.913425 31.000000 4.619399 -v 0.975459 31.000000 4.903927 -v 0.000007 31.000000 5.000000 -v -0.975445 31.000000 4.903927 -v -1.913411 31.000000 4.619398 -v -2.777845 31.000000 4.157348 -v -3.535528 31.000000 3.535533 -v -4.157342 31.000000 2.777849 -v -4.619391 31.000000 1.913415 -v -4.903919 31.000000 0.975448 -v -4.999992 31.000000 -0.000004 -v -4.903917 31.000000 -0.975456 -v -4.619387 31.000000 -1.913421 -v -4.157336 31.000000 -2.777855 -v -3.535521 31.000000 -3.535537 -v -2.777837 31.000000 -4.157351 -v -1.913402 31.000000 -4.619400 -v -0.975436 31.000000 -4.903927 -v 0.195100 32.000000 -0.980785 -v 0.000009 32.000000 -1.000000 -v 0.382693 32.000000 -0.923880 -v 0.555579 32.000000 -0.831470 -v 0.707116 32.000000 -0.707107 -v 0.831479 32.000000 -0.555570 -v 0.923889 32.000000 -0.382683 -v 0.980794 32.000000 -0.195090 -v 1.000009 32.000000 -0.000000 -v 0.980795 32.000000 0.195090 -v 0.923889 32.000000 0.382683 -v 0.831479 32.000000 0.555570 -v 0.707116 32.000000 0.707107 -v 0.555579 32.000000 0.831470 -v 0.382692 32.000000 0.923880 -v 0.195099 32.000000 0.980785 -v 0.000009 32.000000 1.000000 -v -0.195082 32.000000 0.980785 -v -0.382675 32.000000 0.923879 -v -0.555561 32.000000 0.831469 -v -0.707098 32.000000 0.707106 -v -0.831461 32.000000 0.555570 -v -0.923871 32.000000 0.382683 -v -0.980776 32.000000 0.195089 -v -0.999991 32.000000 -0.000001 -v -0.980776 32.000000 -0.195091 -v -0.923870 32.000000 -0.382684 -v -0.831460 32.000000 -0.555571 -v -0.707097 32.000000 -0.707108 -v -0.555560 32.000000 -0.831470 -v -0.382673 32.000000 -0.923880 -v -0.195080 32.000000 -0.980786 -vt 0.530549 0.164590 -vt 0.511666 0.163643 -vt 0.521050 -0.034955 -vt 0.492712 0.163326 -vt 0.473760 0.163641 -vt 0.464416 -0.034959 -vt 0.454878 0.164586 -vt 0.436165 -0.032960 -vt 0.530466 0.164544 -vt 0.511584 0.163595 -vt 0.520990 -0.034999 -vt 0.492630 0.163276 -vt 0.492677 -0.035670 -vt 0.473678 0.163590 -vt 0.454796 0.164533 -vt 0.436106 -0.033015 -vt 0.549279 -0.032970 -vt 0.530567 0.164579 -vt 0.492733 -0.035632 -vt 0.511646 0.163658 -vt 0.521031 -0.034940 -vt 0.473740 0.163656 -vt 0.464397 -0.034945 -vt 0.436145 -0.032947 -vt 0.549245 -0.033009 -vt 0.492654 0.406011 -vt 0.478473 0.406094 -vt 0.454848 0.164591 -vt 0.484783 0.841883 -vt 0.481703 0.815945 -vt 0.498141 0.815218 -vt 0.478517 0.406158 -vt 0.480864 1.033334 -vt 0.469047 1.033401 -vt 0.464335 0.406424 -vt 0.521029 0.406412 -vt 0.506854 0.406164 -vt 0.492601 0.406024 -vt 0.478419 0.406106 -vt 0.464379 0.406400 -vt 0.520980 0.406345 -vt 0.492698 0.406075 -vt 0.464248 0.406354 -vt 0.506806 0.406095 -vt 0.521088 0.406401 -vt 0.464301 0.406335 -vt 0.528333 0.932272 -vt 0.515249 0.932270 -vt 0.514645 0.840931 -vt 0.492685 1.033317 -vt 0.504528 1.033347 -vt 0.516218 1.033355 -vt 0.504401 1.033288 -vt 0.492583 1.033266 -vt 0.469077 1.033415 -vt 0.480766 1.033288 -vt 0.516301 1.033331 -vt 0.468949 1.033355 -vt 0.492666 1.033242 -vt 0.469032 1.033331 -vt 0.516241 1.033340 -vt 0.516347 1.033391 -vt 0.489116 0.932391 -vt 0.499639 0.841163 -vt 0.529638 0.841146 -vt 0.544452 0.841822 -vt 0.502170 0.932307 -vt 0.502067 0.931417 -vt 0.489014 0.931490 -vt 0.484772 0.841027 -vt 0.515252 0.932265 -vt 0.499616 0.840324 -vt 0.514609 0.840100 -vt 0.515150 0.931384 -vt 0.529588 0.840325 -vt 0.528233 0.931394 -vt 0.544387 0.841006 -vt 0.502141 0.932422 -vt 0.489088 0.932506 -vt 0.484755 0.841998 -vt 0.515223 0.932380 -vt 0.499611 0.841277 -vt 0.544446 0.841815 -vt 0.528306 0.932383 -vt 0.514619 0.841041 -vt 0.529613 0.841256 -vt 0.544428 0.841933 -vt 0.514653 0.840929 -vt 0.541383 0.932312 -vt 0.514294 0.815010 -vt 0.514115 0.784175 -vt 0.530516 0.783920 -vt 0.530451 0.815198 -vt 0.481734 0.815116 -vt 0.498149 0.814411 -vt 0.546877 0.815869 -vt 0.514282 0.814222 -vt 0.530410 0.814413 -vt 0.546808 0.815091 -vt 0.481674 0.816058 -vt 0.530447 0.815191 -vt 0.498113 0.815331 -vt 0.514273 0.815126 -vt 0.530427 0.815307 -vt 0.497702 0.783983 -vt 0.499096 0.760277 -vt 0.514093 0.760874 -vt 0.497680 0.784096 -vt 0.480598 0.783379 -vt 0.547598 0.783235 -vt 0.514094 0.784288 -vt 0.530497 0.784033 -vt 0.546852 0.815983 -vt 0.480672 0.782607 -vt 0.497751 0.783237 -vt 0.514128 0.783445 -vt 0.530493 0.783201 -vt 0.480562 0.783487 -vt 0.483887 0.758308 -vt 0.495914 0.711438 -vt 0.504773 0.711578 -vt 0.529070 0.760267 -vt 0.544188 0.758255 -vt 0.484000 0.757603 -vt 0.499171 0.759591 -vt 0.514125 0.760200 -vt 0.529050 0.759600 -vt 0.544127 0.757597 -vt 0.483856 0.758415 -vt 0.499074 0.760387 -vt 0.514074 0.760983 -vt 0.529041 0.760372 -vt 0.544161 0.758360 -vt 0.523594 0.711573 -vt 0.529972 0.661378 -vt 0.545561 0.664658 -vt 0.532448 0.711418 -vt 0.496068 0.710899 -vt 0.504878 0.711055 -vt 0.514184 0.711617 -vt 0.514245 0.711102 -vt 0.523616 0.711060 -vt 0.495882 0.711535 -vt 0.504744 0.711675 -vt 0.514158 0.711713 -vt 0.523570 0.711670 -vt 0.513848 0.660219 -vt 0.513669 0.608672 -vt 0.513828 0.659944 -vt 0.529911 0.661083 -vt 0.482091 0.664427 -vt 0.497705 0.661195 -vt 0.545452 0.664348 -vt 0.482051 0.664506 -vt 0.497671 0.661274 -vt 0.513820 0.660298 -vt 0.513851 0.660221 -vt 0.532428 0.711511 -vt 0.529950 0.661456 -vt 0.532453 0.711417 -vt 0.482323 0.664233 -vt 0.497723 0.660949 -vt 0.536884 0.609783 -vt 0.513620 0.608741 -vt 0.513592 0.578273 -vt 0.490435 0.609678 -vt 0.466382 0.613327 -vt 0.536902 0.609745 -vt 0.560895 0.613327 -vt 0.560888 0.613379 -vt 0.466576 0.613222 -vt 0.490460 0.609499 -vt 0.513658 0.608477 -vt 0.536854 0.609547 -vt 0.560808 0.613134 -vt 0.488667 0.578260 -vt 0.489455 0.552993 -vt 0.513561 0.553945 -vt 0.461659 0.578631 -vt 0.538555 0.578237 -vt 0.513596 0.578186 -vt 0.538530 0.578189 -vt 0.565552 0.578473 -vt 0.565547 0.578471 -vt 0.461750 0.578463 -vt 0.488684 0.578059 -vt 0.513584 0.578010 -vt 0.538488 0.578023 -vt 0.565480 0.578318 -vt 0.461632 0.578691 -vt 0.488649 0.578325 -vt 0.464207 0.549432 -vt 0.487190 0.475078 -vt 0.500042 0.478373 -vt 0.537671 0.552949 -vt 0.464147 0.549565 -vt 0.537673 0.552951 -vt 0.489480 0.552845 -vt 0.513557 0.553799 -vt 0.537641 0.552812 -vt 0.562948 0.549342 -vt 0.489444 0.553047 -vt 0.563007 0.549470 -vt 0.513562 0.554003 -vt 0.526690 0.478484 -vt 0.516244 0.422415 -vt 0.518946 0.421679 -vt 0.513331 0.479593 -vt 0.513332 0.479537 -vt 0.539754 0.475224 -vt 0.526709 0.478560 -vt 0.516842 0.409963 -vt 0.517872 0.420415 -vt 0.510888 0.421103 -vt 0.510606 0.422421 -vt 0.507984 0.421679 -vt 0.513413 0.422628 -vt 0.518952 0.421679 -vt 0.549263 -0.032939 -vt 0.541291 0.931450 -vt 0.541364 0.932431 -vt 0.547581 0.783348 -vt 0.547538 0.782523 -vt 0.532439 0.710900 -vt 0.545546 0.664737 -vt 0.539728 0.475174 -vt 0.509859 0.420415 -vt 0.508983 0.419540 -vt 0.508295 0.418510 -vt 0.507822 0.417367 -vt 0.507580 0.416152 -vt 0.508295 0.412556 -vt 0.507580 0.414914 -vt 0.507822 0.413700 -vt 0.508983 0.411527 -vt 0.509859 0.410651 -vt 0.510888 0.409963 -vt 0.512032 0.409490 -vt 0.513246 0.409248 -vt 0.514484 0.409248 -vt 0.515699 0.409490 -vt 0.517872 0.410651 -vt 0.518747 0.411527 -vt 0.519435 0.412556 -vt 0.519909 0.413700 -vt 0.520151 0.414914 -vt 0.520151 0.416152 -vt 0.519909 0.417367 -vt 0.519435 0.418510 -vt 0.518747 0.419540 -vt 0.516842 0.421103 -vt 0.515699 0.421577 -vt 0.514484 0.421818 -vt 0.513246 0.421818 -vt 0.512032 0.421577 -vn 0.095100 0.241400 -0.965700 -vn 0.281700 0.241400 -0.928600 -vn 0.457500 0.241400 -0.855800 -vn 0.615600 0.241400 -0.750100 -vn 0.750100 0.241400 -0.615600 -vn 0.855800 0.241400 -0.457500 -vn 0.928600 0.241400 -0.281700 -vn 0.965700 0.241400 -0.095100 -vn 0.965700 0.241400 0.095100 -vn 0.928600 0.241400 0.281700 -vn 0.855800 0.241400 0.457500 -vn 0.750100 0.241400 0.615600 -vn 0.615600 0.241400 0.750100 -vn 0.457500 0.241400 0.855800 -vn 0.281700 0.241400 0.928600 -vn 0.095100 0.241400 0.965700 -vn -0.095100 0.241400 0.965700 -vn -0.281700 0.241400 0.928600 -vn -0.457500 0.241400 0.855800 -vn -0.615600 0.241400 0.750100 -vn -0.750100 0.241400 0.615600 -vn -0.855800 0.241400 0.457500 -vn -0.928600 0.241400 0.281700 -vn -0.965700 0.241400 0.095100 -vn -0.965700 0.241400 -0.095100 -vn -0.928600 0.241400 -0.281700 -vn -0.855800 0.241400 -0.457500 -vn -0.750100 0.241400 -0.615600 -vn -0.615600 0.241400 -0.750100 -vn -0.457500 0.241400 -0.855800 -vn 0.877600 0.099000 0.469100 -vn -0.095100 0.241400 -0.965700 -vn -0.281700 0.241400 -0.928600 -vn 0.000000 -1.000000 0.000000 -vn 0.634300 0.019100 -0.772900 -vn -0.631300 0.099000 0.769200 -vn -0.631300 0.099000 -0.769200 -vn 0.952200 0.099000 -0.288900 -vn 0.097500 0.099000 0.990300 -vn -0.990300 0.099000 -0.097500 -vn 0.469100 0.099000 -0.877600 -vn 0.769200 0.099000 0.631300 -vn -0.769200 0.099000 0.631300 -vn -0.469100 0.099000 -0.877600 -vn 0.990300 0.099000 -0.097500 -vn -0.097500 0.099000 0.990300 -vn -0.952200 0.099000 -0.288900 -vn 0.631300 0.099000 -0.769200 -vn 0.631300 0.099000 0.769200 -vn -0.877600 0.099000 0.469100 -vn -0.288900 0.099000 -0.952200 -vn 0.990300 0.099000 0.097500 -vn -0.288900 0.099000 0.952200 -vn -0.877600 0.099000 -0.469100 -vn 0.769200 0.099000 -0.631300 -vn 0.469100 0.099000 0.877600 -vn -0.952200 0.099000 0.288900 -vn 0.097500 0.099000 -0.990300 -vn -0.097500 0.099000 -0.990300 -vn 0.952200 0.099000 0.288900 -vn -0.469100 0.099000 0.877600 -vn -0.769200 0.099000 -0.631300 -vn 0.877600 0.099000 -0.469100 -vn 0.288900 0.099000 0.952200 -vn -0.990300 0.099000 0.097500 -vn 0.288900 0.099000 -0.952200 -vn -0.896500 -0.349600 0.272000 -vn -0.290200 0.019100 -0.956800 -vn -0.290200 0.019100 0.956800 -vn 0.772900 0.019100 -0.634300 -vn -0.098000 0.019100 -0.995000 -vn -0.471300 0.019100 0.881800 -vn 0.881800 0.019100 -0.471300 -vn -0.634300 0.019100 0.772900 -vn 0.956800 0.019100 -0.290200 -vn -0.772900 0.019100 0.634300 -vn 0.995000 0.019100 -0.098000 -vn -0.881800 0.019100 0.471300 -vn 0.995000 0.019100 0.098000 -vn -0.956800 0.019100 0.290200 -vn 0.956800 0.019100 0.290200 -vn -0.995000 0.019100 0.098000 -vn 0.881800 0.019100 0.471300 -vn -0.995000 0.019100 -0.098000 -vn 0.772900 0.019100 0.634300 -vn -0.956800 0.019100 -0.290200 -vn 0.634300 0.019100 0.772900 -vn -0.881800 0.019100 -0.471300 -vn 0.471300 0.019100 0.881800 -vn 0.098000 0.019100 -0.995000 -vn -0.772900 0.019100 -0.634300 -vn 0.290200 0.019100 0.956800 -vn 0.290200 0.019100 -0.956800 -vn -0.634300 0.019100 -0.772900 -vn 0.098000 0.019100 0.995000 -vn 0.471300 0.019100 -0.881800 -vn -0.471300 0.019100 -0.881800 -vn -0.098000 0.019100 0.995000 -vn 0.724200 -0.349600 -0.594400 -vn -0.932400 -0.349600 0.091800 -vn 0.826300 -0.349600 -0.441600 -vn -0.932400 -0.349600 -0.091800 -vn 0.896500 -0.349600 -0.272000 -vn -0.896500 -0.349600 -0.272000 -vn 0.932400 -0.349600 -0.091800 -vn -0.826300 -0.349600 -0.441600 -vn 0.932400 -0.349600 0.091800 -vn -0.724200 -0.349600 -0.594400 -vn 0.896500 -0.349600 0.272000 -vn -0.594400 -0.349600 -0.724200 -vn 0.826300 -0.349600 0.441600 -vn -0.441600 -0.349600 -0.826300 -vn -0.091800 -0.349600 0.932400 -vn 0.724200 -0.349600 0.594400 -vn -0.272000 -0.349600 -0.896500 -vn -0.272000 -0.349600 0.896500 -vn 0.594400 -0.349600 0.724200 -vn -0.091800 -0.349600 -0.932400 -vn -0.441600 -0.349600 0.826300 -vn 0.441600 -0.349600 0.826300 -vn 0.091800 -0.349600 -0.932400 -vn -0.594400 -0.349600 0.724200 -vn 0.272000 -0.349600 0.896500 -vn 0.272000 -0.349600 -0.896500 -vn -0.724200 -0.349600 0.594400 -vn 0.091800 -0.349600 0.932400 -vn 0.441600 -0.349600 -0.826300 -vn -0.826300 -0.349600 0.441600 -vn 0.594400 -0.349600 -0.724200 -vn 0.249200 -0.512700 0.821600 -vn -0.290300 0.000000 0.956900 -vn 0.249200 -0.512700 -0.821600 -vn -0.544700 -0.512700 -0.663700 -vn 0.084200 -0.512700 0.854500 -vn 0.404700 -0.512700 -0.757200 -vn -0.404700 -0.512700 -0.757200 -vn -0.084200 -0.512700 0.854500 -vn 0.544700 -0.512700 -0.663700 -vn -0.249200 -0.512700 -0.821600 -vn -0.249200 -0.512700 0.821600 -vn 0.663700 -0.512700 -0.544700 -vn -0.084200 -0.512700 -0.854500 -vn -0.404700 -0.512700 0.757200 -vn 0.757200 -0.512700 -0.404700 -vn -0.544700 -0.512700 0.663700 -vn 0.821600 -0.512700 -0.249200 -vn -0.663700 -0.512700 0.544700 -vn 0.854500 -0.512700 -0.084200 -vn -0.757200 -0.512700 0.404700 -vn 0.854500 -0.512700 0.084200 -vn -0.821600 -0.512700 0.249200 -vn 0.821600 -0.512700 0.249200 -vn -0.854500 -0.512700 0.084200 -vn 0.757200 -0.512700 0.404700 -vn -0.854500 -0.512700 -0.084200 -vn 0.663700 -0.512700 0.544700 -vn -0.821600 -0.512700 -0.249200 -vn 0.544700 -0.512700 0.663700 -vn -0.757200 -0.512700 -0.404700 -vn 0.404700 -0.512700 0.757200 -vn 0.084200 -0.512700 -0.854500 -vn -0.663700 -0.512700 -0.544700 -vn -0.692100 0.445500 0.568000 -vn 0.773000 -0.000000 -0.634400 -vn -0.098000 0.000000 -0.995200 -vn -0.471400 0.000000 0.881900 -vn 0.881900 0.000000 -0.471400 -vn -0.634400 0.000000 0.773000 -vn 0.956900 0.000000 -0.290300 -vn -0.773000 0.000000 0.634400 -vn 0.995200 0.000000 -0.098000 -vn -0.881900 0.000000 0.471400 -vn 0.995200 0.000000 0.098000 -vn -0.956900 0.000000 0.290300 -vn 0.956900 0.000000 0.290300 -vn -0.995200 0.000000 0.098000 -vn 0.881900 0.000000 0.471400 -vn -0.995200 0.000000 -0.098000 -vn 0.773000 0.000000 0.634400 -vn -0.956900 0.000000 -0.290300 -vn 0.634400 -0.000000 0.773000 -vn -0.881900 0.000000 -0.471400 -vn 0.471400 -0.000000 0.881900 -vn 0.098000 -0.000000 -0.995200 -vn -0.773000 0.000000 -0.634400 -vn 0.290300 -0.000000 0.956900 -vn 0.290300 -0.000000 -0.956900 -vn -0.634400 0.000000 -0.773000 -vn 0.098000 -0.000000 0.995200 -vn 0.471400 -0.000000 -0.881900 -vn -0.471400 0.000000 -0.881900 -vn -0.098000 0.000000 0.995200 -vn 0.634400 -0.000000 -0.773000 -vn -0.290300 0.000000 -0.956900 -vn 0.316100 -0.948200 -0.031100 -vn 0.891000 0.445500 -0.087800 -vn -0.789600 0.445500 0.422000 -vn 0.891000 0.445500 0.087800 -vn -0.856700 0.445500 0.259900 -vn 0.856700 0.445500 0.259900 -vn -0.891000 0.445500 0.087800 -vn 0.789600 0.445500 0.422000 -vn -0.891000 0.445500 -0.087800 -vn 0.692100 0.445500 0.568000 -vn -0.856700 0.445500 -0.259900 -vn 0.568000 0.445500 0.692100 -vn -0.789600 0.445500 -0.422000 -vn 0.422000 0.445500 0.789600 -vn 0.087800 0.445500 -0.891000 -vn -0.692100 0.445500 -0.568000 -vn 0.259900 0.445500 0.856700 -vn 0.259900 0.445500 -0.856700 -vn -0.568000 0.445500 -0.692100 -vn 0.087800 0.445500 0.891000 -vn 0.422000 0.445500 -0.789600 -vn -0.422000 0.445500 -0.789600 -vn -0.087800 0.445500 0.891000 -vn 0.568000 0.445500 -0.692100 -vn -0.259900 0.445500 -0.856700 -vn -0.259900 0.445500 0.856700 -vn 0.692100 0.445500 -0.568000 -vn -0.087800 0.445500 -0.891000 -vn -0.422000 0.445500 0.789600 -vn 0.789600 0.445500 -0.422000 -vn -0.568000 0.445500 0.692100 -vn 0.856700 0.445500 -0.259900 -vn -0.237100 -0.963200 -0.126700 -vn -0.280100 -0.948200 -0.149700 -vn 0.316100 -0.948200 0.031100 -vn -0.245500 -0.948200 -0.201500 -vn 0.303900 -0.948200 0.092200 -vn -0.201500 -0.948200 -0.245500 -vn 0.280100 -0.948200 0.149700 -vn -0.149700 -0.948200 -0.280100 -vn -0.031100 -0.948200 0.316100 -vn 0.245500 -0.948200 0.201500 -vn -0.092200 -0.948200 -0.303900 -vn -0.092200 -0.948200 0.303900 -vn 0.201500 -0.948200 0.245500 -vn -0.031100 -0.948200 -0.316100 -vn -0.149700 -0.948200 0.280100 -vn 0.149700 -0.948200 0.280100 -vn 0.031100 -0.948200 -0.316100 -vn -0.201500 -0.948200 0.245500 -vn 0.092200 -0.948200 0.303900 -vn 0.092200 -0.948200 -0.303900 -vn -0.245500 -0.948200 0.201500 -vn 0.031100 -0.948200 0.316100 -vn 0.149700 -0.948200 -0.280100 -vn -0.280100 -0.948200 0.149700 -vn 0.201500 -0.948200 -0.245500 -vn -0.303900 -0.948200 0.092200 -vn 0.245500 -0.948200 -0.201500 -vn -0.316100 -0.948200 0.031100 -vn 0.280100 -0.948200 -0.149700 -vn -0.316100 -0.948200 -0.031100 -vn 0.303900 -0.948200 -0.092200 -vn -0.303900 -0.948200 -0.092200 -vn 0.382300 -0.585100 -0.715200 -vn 0.126700 -0.963200 0.237100 -vn 0.026400 -0.963200 -0.267600 -vn -0.207800 -0.963200 -0.170600 -vn 0.078000 -0.963200 0.257300 -vn 0.078000 -0.963200 -0.257300 -vn -0.170600 -0.963200 -0.207800 -vn 0.026400 -0.963200 0.267600 -vn 0.126700 -0.963200 -0.237100 -vn -0.126700 -0.963200 -0.237100 -vn -0.026400 -0.963200 0.267500 -vn 0.170600 -0.963200 -0.207800 -vn -0.078000 -0.963200 -0.257300 -vn -0.078000 -0.963200 0.257300 -vn 0.207800 -0.963200 -0.170600 -vn -0.026400 -0.963200 -0.267600 -vn -0.126700 -0.963200 0.237100 -vn 0.237100 -0.963200 -0.126700 -vn -0.170600 -0.963200 0.207800 -vn 0.257300 -0.963200 -0.078000 -vn -0.207800 -0.963200 0.170600 -vn 0.267600 -0.963200 -0.026400 -vn -0.237100 -0.963200 0.126700 -vn 0.267600 -0.963200 0.026400 -vn -0.257300 -0.963200 0.078000 -vn 0.257300 -0.963200 0.078000 -vn -0.267600 -0.963200 0.026400 -vn 0.237100 -0.963200 0.126700 -vn -0.267600 -0.963200 -0.026400 -vn 0.207800 -0.963200 0.170600 -vn -0.257300 -0.963200 -0.078000 -vn 0.170600 -0.963200 0.207800 -vn 0.860600 0.218500 -0.460000 -vn -0.382300 -0.585100 -0.715200 -vn -0.079500 -0.585100 0.807000 -vn 0.514500 -0.585100 -0.626900 -vn -0.235400 -0.585100 -0.776000 -vn -0.235400 -0.585100 0.776000 -vn 0.626900 -0.585100 -0.514500 -vn -0.079500 -0.585100 -0.807000 -vn -0.382300 -0.585100 0.715200 -vn 0.715200 -0.585100 -0.382300 -vn -0.514500 -0.585100 0.626900 -vn 0.776000 -0.585100 -0.235400 -vn -0.626900 -0.585100 0.514500 -vn 0.807000 -0.585100 -0.079500 -vn -0.715200 -0.585100 0.382300 -vn 0.807000 -0.585100 0.079500 -vn -0.776000 -0.585100 0.235400 -vn 0.776000 -0.585100 0.235400 -vn -0.807000 -0.585100 0.079500 -vn 0.715200 -0.585100 0.382300 -vn -0.807000 -0.585100 -0.079500 -vn 0.626900 -0.585100 0.514500 -vn -0.776000 -0.585100 -0.235400 -vn 0.514500 -0.585100 0.626900 -vn -0.715200 -0.585100 -0.382300 -vn 0.382300 -0.585100 0.715200 -vn 0.079500 -0.585100 -0.807000 -vn -0.626900 -0.585100 -0.514500 -vn 0.235400 -0.585100 0.776000 -vn 0.235400 -0.585100 -0.776000 -vn -0.514500 -0.585100 -0.626900 -vn 0.079500 -0.585100 0.807000 -vn 0.513800 0.856400 0.050600 -vn -0.619100 0.218500 0.754300 -vn 0.933800 0.218500 -0.283300 -vn -0.754300 0.218500 0.619100 -vn 0.971100 0.218500 -0.095600 -vn -0.860600 0.218500 0.460000 -vn 0.971100 0.218500 0.095600 -vn -0.933800 0.218500 0.283300 -vn 0.933800 0.218500 0.283300 -vn -0.971100 0.218500 0.095600 -vn 0.860600 0.218500 0.460000 -vn -0.971100 0.218500 -0.095600 -vn 0.754300 0.218500 0.619100 -vn -0.933800 0.218500 -0.283300 -vn 0.619100 0.218500 0.754300 -vn -0.860600 0.218500 -0.460000 -vn 0.460000 0.218500 0.860600 -vn 0.095600 0.218500 -0.971100 -vn -0.754300 0.218500 -0.619100 -vn 0.283300 0.218500 0.933800 -vn 0.283300 0.218500 -0.933800 -vn -0.619100 0.218500 -0.754300 -vn 0.095600 0.218500 0.971100 -vn 0.460000 0.218500 -0.860600 -vn -0.460000 0.218500 -0.860600 -vn -0.095600 0.218500 0.971100 -vn 0.619100 0.218500 -0.754300 -vn -0.283300 0.218500 -0.933800 -vn -0.283300 0.218500 0.933800 -vn 0.754300 0.218500 -0.619100 -vn -0.095600 0.218500 -0.971100 -vn -0.460000 0.218500 0.860600 -vn 0.188300 0.969900 0.154600 -vn -0.494100 0.856400 0.149900 -vn 0.494100 0.856400 0.149900 -vn -0.513800 0.856400 0.050600 -vn 0.455400 0.856400 0.243400 -vn -0.513800 0.856400 -0.050600 -vn 0.399100 0.856400 0.327600 -vn -0.494100 0.856400 -0.149900 -vn 0.327600 0.856400 0.399100 -vn -0.455400 0.856400 -0.243400 -vn 0.243400 0.856400 0.455400 -vn 0.050600 0.856400 -0.513800 -vn -0.399100 0.856400 -0.327600 -vn 0.149900 0.856400 0.494100 -vn 0.149900 0.856400 -0.494100 -vn -0.327600 0.856400 -0.399100 -vn 0.050600 0.856400 0.513800 -vn 0.243400 0.856400 -0.455400 -vn -0.243400 0.856400 -0.455400 -vn -0.050600 0.856400 0.513800 -vn 0.327600 0.856400 -0.399100 -vn -0.149900 0.856400 -0.494100 -vn -0.149900 0.856400 0.494100 -vn 0.399100 0.856400 -0.327600 -vn -0.050600 0.856400 -0.513800 -vn -0.243400 0.856400 0.455400 -vn 0.455400 0.856400 -0.243400 -vn -0.327600 0.856400 0.399100 -vn 0.494100 0.856400 -0.149900 -vn -0.399100 0.856400 0.327600 -vn 0.513800 0.856400 -0.050600 -vn -0.455400 0.856400 0.243400 -vn 0.000000 1.000000 -0.000000 -vn -0.233100 0.969900 -0.070700 -vn 0.154600 0.969900 0.188300 -vn -0.214900 0.969900 -0.114900 -vn 0.114900 0.969900 0.214900 -vn 0.023900 0.969900 -0.242500 -vn -0.188300 0.969900 -0.154600 -vn 0.070700 0.969900 0.233100 -vn 0.070700 0.969900 -0.233200 -vn -0.154600 0.969900 -0.188300 -vn 0.023900 0.969900 0.242500 -vn 0.114900 0.969900 -0.214900 -vn -0.114900 0.969900 -0.214900 -vn -0.023900 0.969900 0.242500 -vn 0.154600 0.969900 -0.188300 -vn -0.070700 0.969900 -0.233100 -vn -0.070700 0.969900 0.233100 -vn 0.188300 0.969900 -0.154600 -vn -0.023900 0.969900 -0.242500 -vn -0.114900 0.969900 0.214900 -vn 0.214900 0.969900 -0.114800 -vn -0.154600 0.969900 0.188400 -vn 0.233100 0.969900 -0.070700 -vn -0.188300 0.969900 0.154600 -vn 0.242500 0.969900 -0.023900 -vn -0.214900 0.969900 0.114800 -vn 0.242500 0.969900 0.023900 -vn -0.233100 0.969900 0.070700 -vn 0.233100 0.969900 0.070700 -vn -0.242500 0.969900 0.023900 -vn 0.214900 0.969900 0.114900 -vn -0.242500 0.969900 -0.023900 -vn -0.457400 0.241400 -0.855800 -vn -0.026400 -0.963200 0.267600 -vn 0.000000 1.000000 0.000100 -vn 0.000000 1.000000 -0.000200 -vn 0.070700 0.969900 0.233200 -vn 0.070700 0.969900 -0.233100 -vn 0.214900 0.969900 -0.114900 -vn -0.154600 0.969900 0.188300 -vn -0.214900 0.969900 0.114900 -vn 0.214900 0.969900 0.114800 -s off -f 2/1/1 4/2/1 3/3/1 -f 3/3/2 4/2/2 6/4/2 -f 6/4/3 8/5/3 7/6/3 -f 8/5/4 10/7/4 9/8/4 -f 10/9/5 12/10/5 11/11/5 -f 11/11/6 12/10/6 14/12/6 -f 13/13/7 14/12/7 16/14/7 -f 16/14/8 18/15/8 17/16/8 -f 18/9/9 20/10/9 19/11/9 -f 19/11/10 20/10/10 22/4/10 -f 22/4/11 24/14/11 23/6/11 -f 24/14/12 26/15/12 25/16/12 -f 25/17/13 26/18/13 28/2/13 -f 27/11/14 28/2/14 30/4/14 -f 29/19/15 30/4/15 32/5/15 -f 31/6/16 32/5/16 34/7/16 -f 34/1/17 36/20/17 35/21/17 -f 35/21/18 36/20/18 38/4/18 -f 38/4/19 40/22/19 39/23/19 -f 40/22/20 42/7/20 41/24/20 -f 42/9/21 44/10/21 43/11/21 -f 44/10/22 46/4/22 45/13/22 -f 46/4/23 48/14/23 47/6/23 -f 48/14/24 50/15/24 49/16/24 -f 49/25/25 50/9/25 52/10/25 -f 52/10/26 54/4/26 53/13/26 -f 54/4/27 56/14/27 55/6/27 -f 56/14/28 58/15/28 57/16/28 -f 58/1/29 60/10/29 59/21/29 -f 60/10/30 62/4/30 61/19/30 -f 22/4/31 75/26/31 76/27/31 -f 63/6/32 64/14/32 2/28/32 -f 62/4/33 64/14/33 63/6/33 -f 149/29/34 181/30/34 182/31/34 -f 68/32/35 100/33/35 101/34/35 -f 40/22/36 84/32/36 85/35/36 -f 58/1/37 93/36/37 94/37/37 -f 14/12/38 71/38/38 72/39/38 -f 32/5/39 80/32/39 81/40/39 -f 52/10/40 50/9/40 89/41/40 -f 8/5/41 6/4/41 67/42/41 -f 26/15/42 24/14/42 76/27/42 -f 44/10/43 42/9/43 85/41/43 -f 60/10/44 94/37/44 95/42/44 -f 16/14/45 72/39/45 73/43/45 -f 36/20/46 34/1/46 81/36/46 -f 52/10/47 90/44/47 91/38/47 -f 8/5/48 68/32/48 69/35/48 -f 28/2/49 26/18/49 77/45/49 -f 44/10/50 86/44/50 87/26/50 -f 62/4/51 95/42/51 96/32/51 -f 18/9/52 73/41/52 74/44/52 -f 36/20/53 82/37/53 83/42/53 -f 54/4/54 91/38/54 92/39/54 -f 10/9/55 69/36/55 70/44/55 -f 28/2/56 78/37/56 79/42/56 -f 46/4/57 87/26/57 88/27/57 -f 2/1/58 66/45/58 65/37/58 -f 64/14/59 96/32/59 66/35/59 -f 20/10/60 74/44/60 75/26/60 -f 38/4/61 83/42/61 84/32/61 -f 58/15/62 56/14/62 92/39/62 -f 12/10/63 70/44/63 71/38/63 -f 32/5/64 30/4/64 79/42/64 -f 48/14/65 88/27/65 89/46/65 -f 4/2/66 65/37/66 67/42/66 -f 104/47/67 103/48/67 135/49/67 -f 95/42/68 127/50/68 128/33/68 -f 83/42/69 82/37/69 114/51/69 -f 69/36/70 101/52/70 102/53/70 -f 66/35/71 96/32/71 128/33/71 -f 83/42/72 115/50/72 116/33/72 -f 70/44/73 102/53/73 103/54/73 -f 84/32/74 116/33/74 117/55/74 -f 71/38/75 103/54/75 104/56/75 -f 85/41/76 117/57/76 118/51/76 -f 72/39/77 104/56/77 105/58/77 -f 86/44/78 118/51/78 119/59/78 -f 73/41/79 105/57/79 106/51/79 -f 87/26/80 119/59/80 120/56/80 -f 74/44/81 106/51/81 107/50/81 -f 88/27/82 120/56/82 121/60/82 -f 75/26/83 107/50/83 108/56/83 -f 89/41/84 121/61/84 122/53/84 -f 76/27/85 108/56/85 109/60/85 -f 90/44/86 122/53/86 123/54/86 -f 77/45/87 109/62/87 110/51/87 -f 91/38/88 123/54/88 124/56/88 -f 78/37/89 110/51/89 111/50/89 -f 66/45/90 98/62/90 97/51/90 -f 92/39/91 124/56/91 125/60/91 -f 79/42/92 111/50/92 112/33/92 -f 65/37/93 97/51/93 99/50/93 -f 93/36/94 125/62/94 126/51/94 -f 80/32/95 112/33/95 113/55/95 -f 67/42/96 99/50/96 100/33/96 -f 94/37/97 126/51/97 127/50/97 -f 81/36/98 113/62/98 114/51/98 -f 117/63/99 149/29/99 150/64/99 -f 104/47/100 136/65/100 137/66/100 -f 118/67/101 150/64/101 151/49/101 -f 106/68/102 105/69/102 137/70/102 -f 119/71/103 151/49/103 152/65/103 -f 106/68/104 138/72/104 139/73/104 -f 120/47/105 152/65/105 153/66/105 -f 107/74/106 139/73/106 140/75/106 -f 122/67/107 121/63/107 153/29/107 -f 108/76/108 140/75/108 141/77/108 -f 123/71/109 122/67/109 154/64/109 -f 109/63/110 141/29/110 142/64/110 -f 124/47/111 123/71/111 155/49/111 -f 110/67/112 142/64/112 143/49/112 -f 97/78/113 98/79/113 130/80/113 -f 124/47/114 156/65/114 157/66/114 -f 111/48/115 143/49/115 144/65/115 -f 99/81/116 97/78/116 129/82/116 -f 126/67/117 125/63/117 157/29/117 -f 112/47/118 144/65/118 145/83/118 -f 100/84/119 99/81/119 131/85/119 -f 127/71/120 126/67/120 158/64/120 -f 114/67/121 113/63/121 145/29/121 -f 100/84/122 132/86/122 133/87/122 -f 127/71/123 159/88/123 160/65/123 -f 115/48/124 114/67/124 146/64/124 -f 101/63/125 133/29/125 134/64/125 -f 128/47/126 160/65/126 130/66/126 -f 115/48/127 147/49/127 148/65/127 -f 102/67/128 134/64/128 135/49/128 -f 117/89/129 116/47/129 148/65/129 -f 175/90/130 207/91/130 208/92/130 -f 137/66/34 136/65/34 168/93/34 -f 150/64/34 182/31/34 183/90/34 -f 138/72/34 137/70/34 169/94/34 -f 151/49/34 183/90/34 184/93/34 -f 139/73/34 138/72/34 170/95/34 -f 152/65/34 184/93/34 185/96/34 -f 140/75/34 139/73/34 171/97/34 -f 153/29/34 185/30/34 186/31/34 -f 140/75/34 172/98/34 173/99/34 -f 154/64/34 186/31/34 187/90/34 -f 141/29/34 173/30/34 174/31/34 -f 155/49/34 187/90/34 188/93/34 -f 142/64/34 174/31/34 175/90/34 -f 129/82/34 130/80/34 162/100/34 -f 157/66/34 156/65/34 188/93/34 -f 143/49/34 175/90/34 176/101/34 -f 131/85/34 129/82/34 161/102/34 -f 158/64/34 157/29/34 189/30/34 -f 144/65/34 176/101/34 177/96/34 -f 132/86/34 131/85/34 163/103/34 -f 159/88/34 158/64/34 190/31/34 -f 145/29/34 177/30/34 178/31/34 -f 133/87/34 132/86/34 164/104/34 -f 159/88/34 191/90/34 192/93/34 -f 146/64/34 178/31/34 179/90/34 -f 134/64/34 133/29/34 165/30/34 -f 130/66/34 160/65/34 192/93/34 -f 147/49/34 179/90/34 180/101/34 -f 134/64/34 166/31/34 167/90/34 -f 148/65/34 180/101/34 181/96/34 -f 136/65/34 135/49/34 167/90/34 -f 210/105/131 242/106/131 243/107/131 -f 163/103/132 161/102/132 193/108/132 -f 190/31/133 189/30/133 221/109/133 -f 176/101/134 208/92/134 209/110/134 -f 163/103/135 195/111/135 196/112/135 -f 190/31/136 222/105/136 223/91/136 -f 178/31/137 177/30/137 209/109/137 -f 165/113/138 164/104/138 196/112/138 -f 191/90/139 223/91/139 224/92/139 -f 179/90/140 178/31/140 210/105/140 -f 166/31/141 165/30/141 197/109/141 -f 192/93/142 224/92/142 194/110/142 -f 179/90/143 211/91/143 212/92/143 -f 167/90/144 166/31/144 198/105/144 -f 181/96/145 180/101/145 212/92/145 -f 168/93/146 167/90/146 199/91/146 -f 181/30/147 213/109/147 214/105/147 -f 169/96/148 168/93/148 200/92/148 -f 183/90/149 182/31/149 214/105/149 -f 169/94/150 201/114/150 202/115/150 -f 183/90/151 215/91/151 216/92/151 -f 171/97/152 170/95/152 202/115/152 -f 185/96/153 184/93/153 216/92/153 -f 171/97/154 203/116/154 204/117/154 -f 186/31/155 185/30/155 217/109/155 -f 173/99/156 172/98/156 204/117/156 -f 187/90/157 186/31/157 218/105/157 -f 174/31/158 173/30/158 205/109/158 -f 188/93/159 187/90/159 219/91/159 -f 175/90/160 174/31/160 206/105/160 -f 161/102/161 162/100/161 194/118/161 -f 189/96/162 188/93/162 220/92/162 -f 245/119/163 277/120/163 278/121/163 -f 197/109/164 229/119/164 230/106/164 -f 224/92/165 256/122/165 226/123/165 -f 211/91/166 243/107/166 244/122/166 -f 198/105/167 230/106/167 231/107/167 -f 212/92/168 244/122/168 245/123/168 -f 199/91/169 231/107/169 232/122/169 -f 213/109/170 245/119/170 246/106/170 -f 200/92/171 232/122/171 233/123/171 -f 215/91/172 214/105/172 246/106/172 -f 201/114/173 233/124/173 234/125/173 -f 215/91/174 247/107/174 248/122/174 -f 202/115/175 234/125/175 235/126/175 -f 217/110/176 216/92/176 248/122/176 -f 203/116/177 235/126/177 236/127/177 -f 218/105/178 217/109/178 249/119/178 -f 204/117/179 236/127/179 237/128/179 -f 218/105/180 250/106/180 251/107/180 -f 205/109/181 237/119/181 238/106/181 -f 219/91/182 251/107/182 252/122/182 -f 206/105/183 238/106/183 239/107/183 -f 194/118/184 226/129/184 225/130/184 -f 221/110/185 220/92/185 252/122/185 -f 207/91/186 239/107/186 240/122/186 -f 193/108/187 225/130/187 227/131/187 -f 222/105/188 221/109/188 253/119/188 -f 208/92/189 240/122/189 241/123/189 -f 195/111/190 227/131/190 228/132/190 -f 222/105/191 254/106/191 255/107/191 -f 209/109/192 241/119/192 242/106/192 -f 196/112/193 228/132/193 229/133/193 -f 223/91/194 255/107/194 256/122/194 -f 280/134/195 312/135/195 313/136/195 -f 232/122/196 264/134/196 265/137/196 -f 247/107/197 246/106/197 278/121/197 -f 233/124/198 265/138/198 266/139/198 -f 247/107/199 279/140/199 280/134/199 -f 235/126/200 234/125/200 266/139/200 -f 248/122/201 280/134/201 281/137/201 -f 235/126/202 267/141/202 268/142/202 -f 250/106/203 249/119/203 281/120/203 -f 237/128/204 236/127/204 268/142/204 -f 250/106/205 282/121/205 283/140/205 -f 237/119/206 269/120/206 270/121/206 -f 252/122/207 251/107/207 283/140/207 -f 238/106/208 270/121/208 271/140/208 -f 226/129/209 258/143/209 257/144/209 -f 253/123/210 252/122/210 284/134/210 -f 239/107/211 271/140/211 272/134/211 -f 225/130/212 257/144/212 259/145/212 -f 253/119/213 285/120/213 286/121/213 -f 240/122/214 272/134/214 273/137/214 -f 228/132/215 227/131/215 259/145/215 -f 255/107/216 254/106/216 286/121/216 -f 241/119/217 273/120/217 274/121/217 -f 229/133/218 228/132/218 260/146/218 -f 255/107/219 287/140/219 288/134/219 -f 242/106/220 274/121/220 275/140/220 -f 229/119/221 261/120/221 262/121/221 -f 226/123/222 256/122/222 288/134/222 -f 243/107/223 275/140/223 276/134/223 -f 231/107/224 230/106/224 262/121/224 -f 245/123/225 244/122/225 276/134/225 -f 231/107/226 263/140/226 264/134/226 -f 316/135/227 315/147/227 347/148/227 -f 267/141/228 299/149/228 300/150/228 -f 281/120/229 313/151/229 314/152/229 -f 268/142/230 300/150/230 301/153/230 -f 282/121/231 314/152/231 315/147/231 -f 269/120/232 301/151/232 302/152/232 -f 283/140/233 315/147/233 316/135/233 -f 270/121/234 302/152/234 303/147/234 -f 258/143/235 290/154/235 289/155/235 -f 284/134/236 316/135/236 317/136/236 -f 271/140/237 303/147/237 304/135/237 -f 259/145/238 257/144/238 289/155/238 -f 286/121/239 285/120/239 317/151/239 -f 272/134/240 304/135/240 305/136/240 -f 260/146/241 259/145/241 291/156/241 -f 286/121/242 318/152/242 319/157/242 -f 273/120/243 305/151/243 306/152/243 -f 261/158/244 260/146/244 292/159/244 -f 287/140/245 319/157/245 320/135/245 -f 274/121/246 306/152/246 307/147/246 -f 262/121/247 261/120/247 293/151/247 -f 258/160/248 288/134/248 320/135/248 -f 275/140/249 307/147/249 308/135/249 -f 262/121/250 294/152/250 295/147/250 -f 277/137/251 276/134/251 308/135/251 -f 263/140/252 295/147/252 296/135/252 -f 277/120/253 309/151/253 310/152/253 -f 264/134/254 296/135/254 297/136/254 -f 278/121/255 310/152/255 311/147/255 -f 266/139/256 265/138/256 297/161/256 -f 279/140/257 311/147/257 312/135/257 -f 267/141/258 266/139/258 298/162/258 -f 324/163/259 323/164/259 355/165/259 -f 303/147/260 302/152/260 334/166/260 -f 290/154/261 322/167/261 321/166/261 -f 316/135/262 348/168/262 349/169/262 -f 303/147/263 335/148/263 336/168/263 -f 291/156/264 289/155/264 321/166/264 -f 317/151/265 349/167/265 350/166/265 -f 304/135/266 336/168/266 337/169/266 -f 291/156/267 323/164/267 324/163/267 -f 318/152/268 350/166/268 351/148/268 -f 305/151/269 337/167/269 338/166/269 -f 292/159/270 324/163/270 325/170/270 -f 320/135/271 319/157/271 351/148/271 -f 306/152/272 338/166/272 339/148/272 -f 294/152/273 293/151/273 325/167/273 -f 320/135/274 352/168/274 322/169/274 -f 307/147/275 339/148/275 340/168/275 -f 294/152/276 326/166/276 327/148/276 -f 308/135/277 340/168/277 341/169/277 -f 296/135/278 295/147/278 327/148/278 -f 309/151/279 341/167/279 342/166/279 -f 296/135/280 328/168/280 329/169/280 -f 311/147/281 310/152/281 342/166/281 -f 298/162/282 297/161/282 329/171/282 -f 311/147/283 343/148/283 344/168/283 -f 298/162/284 330/172/284 331/173/284 -f 312/135/285 344/168/285 345/169/285 -f 300/150/286 299/149/286 331/173/286 -f 313/151/287 345/167/287 346/166/287 -f 300/150/288 332/174/288 333/175/288 -f 314/152/289 346/166/289 347/148/289 -f 301/151/290 333/167/290 334/166/290 -f 358/176/291 390/177/291 391/178/291 -f 351/148/292 350/166/292 382/176/292 -f 337/167/293 369/179/293 370/176/293 -f 325/170/294 324/163/294 356/180/294 -f 352/168/295 351/148/295 383/181/295 -f 339/148/296 338/166/296 370/176/296 -f 326/166/297 325/167/297 357/179/297 -f 352/168/298 384/182/298 354/183/298 -f 339/148/299 371/181/299 372/182/299 -f 326/166/300 358/176/300 359/181/300 -f 340/168/301 372/182/301 373/184/301 -f 328/168/302 327/148/302 359/181/302 -f 341/167/303 373/179/303 374/176/303 -f 328/168/304 360/182/304 361/184/304 -f 342/166/305 374/176/305 375/181/305 -f 330/172/306 329/171/306 361/185/306 -f 343/148/307 375/181/307 376/182/307 -f 330/172/308 362/186/308 363/187/308 -f 344/168/309 376/182/309 377/184/309 -f 331/173/310 363/187/310 364/188/310 -f 345/167/311 377/179/311 378/176/311 -f 332/174/312 364/188/312 365/189/312 -f 346/166/313 378/176/313 379/181/313 -f 334/166/314 333/167/314 365/179/314 -f 347/148/315 379/181/315 380/182/315 -f 334/166/316 366/176/316 367/181/316 -f 322/167/317 354/190/317 353/191/317 -f 348/168/318 380/182/318 381/183/318 -f 335/148/319 367/181/319 368/182/319 -f 321/166/320 353/191/320 355/165/320 -f 349/167/321 381/179/321 382/176/321 -f 336/168/322 368/182/322 369/184/322 -f 393/192/323 425/193/323 426/194/323 -f 373/184/324 372/182/324 404/195/324 -f 360/182/325 359/181/325 391/178/325 -f 374/176/326 373/179/326 405/196/326 -f 361/184/327 360/182/327 392/197/327 -f 375/181/328 374/176/328 406/177/328 -f 361/185/329 393/192/329 394/198/329 -f 375/181/330 407/178/330 408/195/330 -f 362/186/331 394/198/331 395/199/331 -f 377/184/332 376/182/332 408/195/332 -f 363/187/333 395/199/333 396/200/333 -f 377/179/334 409/196/334 410/177/334 -f 364/188/335 396/200/335 397/201/335 -f 378/176/336 410/177/336 411/178/336 -f 366/176/337 365/179/337 397/196/337 -f 380/182/338 379/181/338 411/178/338 -f 367/181/339 366/176/339 398/177/339 -f 354/190/340 386/196/340 385/202/340 -f 380/182/341 412/195/341 413/203/341 -f 368/182/342 367/181/342 399/178/342 -f 353/191/343 385/202/343 387/204/343 -f 382/176/344 381/179/344 413/196/344 -f 369/184/345 368/182/345 400/195/345 -f 356/180/346 355/165/346 387/204/346 -f 382/176/347 414/177/347 415/178/347 -f 370/176/348 369/179/348 401/196/348 -f 356/180/349 388/197/349 389/203/349 -f 384/182/350 383/181/350 415/178/350 -f 370/176/351 402/177/351 403/178/351 -f 357/179/352 389/196/352 390/177/352 -f 354/183/353 384/182/353 416/197/353 -f 371/181/354 403/178/354 404/195/354 -f 428/205/355 460/206/355 461/207/355 -f 407/178/356 439/208/356 440/205/356 -f 394/198/357 426/194/357 427/209/357 -f 408/195/358 440/205/358 441/210/358 -f 395/199/359 427/209/359 428/205/359 -f 410/177/360 409/196/360 441/193/360 -f 397/201/361 396/200/361 428/205/361 -f 411/178/362 410/177/362 442/194/362 -f 397/196/363 429/193/363 430/194/363 -f 412/195/364 411/178/364 443/208/364 -f 398/177/365 430/194/365 431/208/365 -f 385/202/366 386/196/366 418/193/366 -f 412/195/367 444/205/367 445/210/367 -f 400/195/368 399/178/368 431/208/368 -f 385/202/369 417/194/369 419/208/369 -f 413/196/370 445/193/370 446/194/370 -f 400/195/371 432/205/371 433/210/371 -f 387/204/372 419/208/372 420/211/372 -f 414/177/373 446/194/373 447/208/373 -f 401/196/374 433/193/374 434/194/374 -f 388/197/375 420/211/375 421/210/375 -f 415/178/376 447/208/376 448/205/376 -f 402/177/377 434/194/377 435/208/377 -f 389/196/378 421/193/378 422/194/378 -f 416/197/379 448/205/379 418/210/379 -f 403/178/380 435/208/380 436/205/380 -f 391/178/381 390/177/381 422/194/381 -f 404/195/382 436/205/382 437/210/382 -f 391/178/383 423/208/383 424/205/383 -f 405/196/384 437/193/384 438/194/384 -f 393/203/385 392/197/385 424/205/385 -f 406/177/386 438/194/386 439/208/386 -f 467/212/387 457/213/387 451/214/387 -f 443/208/388 442/194/388 474/215/388 -f 429/193/389 461/216/389 462/215/389 -f 444/205/390 443/208/390 475/217/390 -f 430/194/391 462/215/391 463/217/391 -f 418/193/392 450/216/392 449/215/392 -f 445/210/393 444/205/393 476/206/393 -f 431/208/394 463/217/394 464/206/394 -f 417/194/395 449/215/395 451/217/395 -f 445/193/396 477/216/396 478/215/396 -f 433/210/397 432/205/397 464/206/397 -f 420/211/398 419/208/398 451/217/398 -f 446/194/399 478/215/399 479/217/399 -f 433/193/400 465/216/400 466/215/400 -f 421/210/401 420/211/401 452/206/401 -f 447/208/402 479/217/402 480/206/402 -f 434/194/403 466/215/403 467/217/403 -f 421/193/404 453/216/404 454/215/404 -f 448/205/405 480/206/405 450/218/405 -f 435/208/406 467/217/406 468/206/406 -f 422/194/407 454/215/407 455/217/407 -f 436/205/408 468/206/408 469/218/408 -f 423/208/409 455/217/409 456/206/409 -f 438/194/410 437/193/410 469/216/410 -f 425/210/411 424/205/411 456/206/411 -f 438/194/412 470/215/412 471/217/412 -f 425/193/413 457/216/413 458/215/413 -f 439/208/414 471/217/414 472/206/414 -f 426/194/415 458/215/415 459/217/415 -f 440/205/416 472/206/416 473/218/416 -f 428/205/417 427/209/417 459/217/417 -f 441/193/418 473/216/418 474/215/418 -f 1/17/1 2/1/1 3/3/1 -f 5/19/2 3/3/2 6/4/2 -f 5/19/3 6/4/3 7/6/3 -f 7/6/4 8/5/4 9/8/4 -f 9/25/5 10/9/5 11/11/5 -f 13/13/6 11/11/6 14/12/6 -f 15/6/7 13/13/7 16/14/7 -f 15/6/8 16/14/8 17/16/8 -f 17/25/9 18/9/9 19/11/9 -f 21/13/10 19/11/10 22/4/10 -f 21/13/11 22/4/11 23/6/11 -f 23/6/12 24/14/12 25/16/12 -f 27/11/13 25/17/13 28/2/13 -f 29/19/14 27/11/14 30/4/14 -f 31/6/15 29/19/15 32/5/15 -f 33/8/16 31/6/16 34/7/16 -f 33/219/17 34/1/17 35/21/17 -f 37/19/18 35/21/18 38/4/18 -f 37/19/19 38/4/19 39/23/19 -f 39/23/20 40/22/20 41/24/20 -f 41/25/21 42/9/21 43/11/21 -f 43/11/22 44/10/22 45/13/22 -f 45/13/23 46/4/23 47/6/23 -f 47/6/24 48/14/24 49/16/24 -f 51/11/25 49/25/25 52/10/25 -f 51/11/26 52/10/26 53/13/26 -f 53/13/27 54/4/27 55/6/27 -f 55/6/28 56/14/28 57/16/28 -f 57/219/29 58/1/29 59/21/29 -f 59/21/419 60/10/419 61/19/419 -f 24/14/31 22/4/31 76/27/31 -f 1/16/32 63/6/32 2/28/32 -f 61/19/33 62/4/33 63/6/33 -f 150/64/34 149/29/34 182/31/34 -f 69/35/35 68/32/35 101/34/35 -f 42/7/36 40/22/36 85/35/36 -f 60/10/37 58/1/37 94/37/37 -f 16/14/38 14/12/38 72/39/38 -f 34/7/39 32/5/39 81/40/39 -f 90/44/40 52/10/40 89/41/40 -f 68/32/41 8/5/41 67/42/41 -f 77/46/42 26/15/42 76/27/42 -f 86/44/43 44/10/43 85/41/43 -f 62/4/44 60/10/44 95/42/44 -f 18/15/45 16/14/45 73/43/45 -f 82/37/46 36/20/46 81/36/46 -f 54/4/47 52/10/47 91/38/47 -f 10/7/48 8/5/48 69/35/48 -f 78/37/49 28/2/49 77/45/49 -f 46/4/50 44/10/50 87/26/50 -f 64/14/51 62/4/51 96/32/51 -f 20/10/52 18/9/52 74/44/52 -f 38/4/53 36/20/53 83/42/53 -f 56/14/54 54/4/54 92/39/54 -f 12/10/55 10/9/55 70/44/55 -f 30/4/56 28/2/56 79/42/56 -f 48/14/57 46/4/57 88/27/57 -f 4/2/58 2/1/58 65/37/58 -f 2/28/59 64/14/59 66/35/59 -f 22/4/60 20/10/60 75/26/60 -f 40/22/61 38/4/61 84/32/61 -f 93/46/62 58/15/62 92/39/62 -f 14/12/63 12/10/63 71/38/63 -f 80/32/64 32/5/64 79/42/64 -f 50/15/65 48/14/65 89/46/65 -f 6/4/66 4/2/66 67/42/66 -f 136/65/67 104/47/67 135/49/67 -f 96/32/68 95/42/68 128/33/68 -f 115/50/69 83/42/69 114/51/69 -f 70/44/70 69/36/70 102/53/70 -f 98/55/71 66/35/71 128/33/71 -f 84/32/72 83/42/72 116/33/72 -f 71/38/73 70/44/73 103/54/73 -f 85/35/74 84/32/74 117/55/74 -f 72/39/75 71/38/75 104/56/75 -f 86/44/76 85/41/76 118/51/76 -f 73/43/77 72/39/77 105/58/77 -f 87/26/78 86/44/78 119/59/78 -f 74/44/79 73/41/79 106/51/79 -f 88/27/80 87/26/80 120/56/80 -f 75/26/81 74/44/81 107/50/81 -f 89/46/82 88/27/82 121/60/82 -f 76/27/83 75/26/83 108/56/83 -f 90/44/84 89/41/84 122/53/84 -f 77/46/85 76/27/85 109/60/85 -f 91/38/86 90/44/86 123/54/86 -f 78/37/87 77/45/87 110/51/87 -f 92/39/88 91/38/88 124/56/88 -f 79/42/89 78/37/89 111/50/89 -f 65/37/90 66/45/90 97/51/90 -f 93/46/91 92/39/91 125/60/91 -f 80/32/92 79/42/92 112/33/92 -f 67/42/93 65/37/93 99/50/93 -f 94/37/94 93/36/94 126/51/94 -f 81/40/95 80/32/95 113/55/95 -f 68/32/96 67/42/96 100/33/96 -f 95/42/97 94/37/97 127/50/97 -f 82/37/98 81/36/98 114/51/98 -f 118/67/99 117/63/99 150/64/99 -f 105/89/100 104/47/100 137/66/100 -f 119/71/101 118/67/101 151/49/101 -f 138/72/102 106/68/102 137/70/102 -f 120/47/103 119/71/103 152/65/103 -f 107/74/104 106/68/104 139/73/104 -f 121/89/105 120/47/105 153/66/105 -f 108/76/106 107/74/106 140/75/106 -f 154/64/107 122/67/107 153/29/107 -f 109/220/108 108/76/108 141/77/108 -f 155/49/109 123/71/109 154/64/109 -f 110/67/110 109/63/110 142/64/110 -f 156/65/111 124/47/111 155/49/111 -f 111/48/112 110/67/112 143/49/112 -f 129/82/113 97/78/113 130/80/113 -f 125/89/114 124/47/114 157/66/114 -f 112/47/115 111/48/115 144/65/115 -f 131/85/116 99/81/116 129/82/116 -f 158/64/117 126/67/117 157/29/117 -f 113/89/118 112/47/118 145/83/118 -f 132/86/119 100/84/119 131/85/119 -f 159/88/120 127/71/120 158/64/120 -f 146/64/121 114/67/121 145/29/121 -f 101/221/122 100/84/122 133/87/122 -f 128/47/123 127/71/123 160/65/123 -f 147/49/124 115/48/124 146/64/124 -f 102/67/125 101/63/125 134/64/125 -f 98/89/126 128/47/126 130/66/126 -f 116/47/127 115/48/127 148/65/127 -f 103/48/128 102/67/128 135/49/128 -f 149/83/129 117/89/129 148/65/129 -f 176/101/130 175/90/130 208/92/130 -f 169/96/34 137/66/34 168/93/34 -f 151/49/34 150/64/34 183/90/34 -f 170/95/34 138/72/34 169/94/34 -f 152/65/34 151/49/34 184/93/34 -f 171/97/34 139/73/34 170/95/34 -f 153/66/34 152/65/34 185/96/34 -f 172/98/34 140/75/34 171/97/34 -f 154/64/34 153/29/34 186/31/34 -f 141/77/34 140/75/34 173/99/34 -f 155/49/34 154/64/34 187/90/34 -f 142/64/34 141/29/34 174/31/34 -f 156/65/34 155/49/34 188/93/34 -f 143/49/34 142/64/34 175/90/34 -f 161/102/34 129/82/34 162/100/34 -f 189/96/34 157/66/34 188/93/34 -f 144/65/34 143/49/34 176/101/34 -f 163/103/34 131/85/34 161/102/34 -f 190/31/34 158/64/34 189/30/34 -f 145/83/34 144/65/34 177/96/34 -f 164/104/34 132/86/34 163/103/34 -f 191/90/34 159/88/34 190/31/34 -f 146/64/34 145/29/34 178/31/34 -f 165/113/34 133/87/34 164/104/34 -f 160/65/34 159/88/34 192/93/34 -f 147/49/34 146/64/34 179/90/34 -f 166/31/34 134/64/34 165/30/34 -f 162/96/34 130/66/34 192/93/34 -f 148/65/34 147/49/34 180/101/34 -f 135/49/34 134/64/34 167/90/34 -f 149/83/34 148/65/34 181/96/34 -f 168/93/34 136/65/34 167/90/34 -f 211/91/131 210/105/131 243/107/131 -f 195/111/132 163/103/132 193/108/132 -f 222/105/133 190/31/133 221/109/133 -f 177/96/134 176/101/134 209/110/134 -f 164/104/135 163/103/135 196/112/135 -f 191/90/136 190/31/136 223/91/136 -f 210/105/137 178/31/137 209/109/137 -f 197/222/138 165/113/138 196/112/138 -f 192/93/139 191/90/139 224/92/139 -f 211/91/140 179/90/140 210/105/140 -f 198/105/141 166/31/141 197/109/141 -f 162/96/142 192/93/142 194/110/142 -f 180/101/143 179/90/143 212/92/143 -f 199/91/144 167/90/144 198/105/144 -f 213/110/145 181/96/145 212/92/145 -f 200/92/146 168/93/146 199/91/146 -f 182/31/147 181/30/147 214/105/147 -f 201/110/148 169/96/148 200/92/148 -f 215/91/149 183/90/149 214/105/149 -f 170/95/150 169/94/150 202/115/150 -f 184/93/151 183/90/151 216/92/151 -f 203/116/152 171/97/152 202/115/152 -f 217/110/153 185/96/153 216/92/153 -f 172/98/154 171/97/154 204/117/154 -f 218/105/155 186/31/155 217/109/155 -f 205/223/156 173/99/156 204/117/156 -f 219/91/157 187/90/157 218/105/157 -f 206/105/158 174/31/158 205/109/158 -f 220/92/159 188/93/159 219/91/159 -f 207/91/160 175/90/160 206/105/160 -f 193/108/161 161/102/161 194/118/161 -f 221/110/162 189/96/162 220/92/162 -f 246/106/163 245/119/163 278/121/163 -f 198/105/164 197/109/164 230/106/164 -f 194/110/165 224/92/165 226/123/165 -f 212/92/166 211/91/166 244/122/166 -f 199/91/167 198/105/167 231/107/167 -f 213/110/168 212/92/168 245/123/168 -f 200/92/169 199/91/169 232/122/169 -f 214/105/170 213/109/170 246/106/170 -f 201/110/171 200/92/171 233/123/171 -f 247/107/172 215/91/172 246/106/172 -f 202/115/173 201/114/173 234/125/173 -f 216/92/174 215/91/174 248/122/174 -f 203/116/175 202/115/175 235/126/175 -f 249/123/176 217/110/176 248/122/176 -f 204/117/177 203/116/177 236/127/177 -f 250/106/178 218/105/178 249/119/178 -f 205/223/179 204/117/179 237/128/179 -f 219/91/180 218/105/180 251/107/180 -f 206/105/181 205/109/181 238/106/181 -f 220/92/182 219/91/182 252/122/182 -f 207/91/183 206/105/183 239/107/183 -f 193/108/184 194/118/184 225/130/184 -f 253/123/185 221/110/185 252/122/185 -f 208/92/186 207/91/186 240/122/186 -f 195/111/187 193/108/187 227/131/187 -f 254/106/188 222/105/188 253/119/188 -f 209/110/189 208/92/189 241/123/189 -f 196/112/190 195/111/190 228/132/190 -f 223/91/191 222/105/191 255/107/191 -f 210/105/192 209/109/192 242/106/192 -f 197/222/193 196/112/193 229/133/193 -f 224/92/194 223/91/194 256/122/194 -f 281/137/195 280/134/195 313/136/195 -f 233/123/196 232/122/196 265/137/196 -f 279/140/197 247/107/197 278/121/197 -f 234/125/198 233/124/198 266/139/198 -f 248/122/199 247/107/199 280/134/199 -f 267/141/200 235/126/200 266/139/200 -f 249/123/201 248/122/201 281/137/201 -f 236/127/202 235/126/202 268/142/202 -f 282/121/203 250/106/203 281/120/203 -f 269/224/204 237/128/204 268/142/204 -f 251/107/205 250/106/205 283/140/205 -f 238/106/206 237/119/206 270/121/206 -f 284/134/207 252/122/207 283/140/207 -f 239/107/208 238/106/208 271/140/208 -f 225/130/209 226/129/209 257/144/209 -f 285/137/210 253/123/210 284/134/210 -f 240/122/211 239/107/211 272/134/211 -f 227/131/212 225/130/212 259/145/212 -f 254/106/213 253/119/213 286/121/213 -f 241/123/214 240/122/214 273/137/214 -f 260/146/215 228/132/215 259/145/215 -f 287/140/216 255/107/216 286/121/216 -f 242/106/217 241/119/217 274/121/217 -f 261/158/218 229/133/218 260/146/218 -f 256/122/219 255/107/219 288/134/219 -f 243/107/220 242/106/220 275/140/220 -f 230/106/221 229/119/221 262/121/221 -f 258/160/222 226/123/222 288/134/222 -f 244/122/223 243/107/223 276/134/223 -f 263/140/224 231/107/224 262/121/224 -f 277/137/225 245/123/225 276/134/225 -f 232/122/226 231/107/226 264/134/226 -f 348/168/227 316/135/227 347/148/227 -f 268/142/228 267/141/228 300/150/228 -f 282/121/229 281/120/229 314/152/229 -f 269/224/230 268/142/230 301/153/230 -f 283/140/231 282/121/231 315/147/231 -f 270/121/232 269/120/232 302/152/232 -f 284/134/233 283/140/233 316/135/233 -f 271/140/234 270/121/234 303/147/234 -f 257/144/235 258/143/235 289/155/235 -f 285/137/236 284/134/236 317/136/236 -f 272/134/237 271/140/237 304/135/237 -f 291/156/238 259/145/238 289/155/238 -f 318/152/239 286/121/239 317/151/239 -f 273/137/240 272/134/240 305/136/240 -f 292/159/241 260/146/241 291/156/241 -f 287/140/242 286/121/242 319/157/242 -f 274/121/243 273/120/243 306/152/243 -f 293/225/244 261/158/244 292/159/244 -f 288/134/245 287/140/245 320/135/245 -f 275/140/246 274/121/246 307/147/246 -f 294/152/247 262/121/247 293/151/247 -f 290/136/248 258/160/248 320/135/248 -f 276/134/249 275/140/249 308/135/249 -f 263/140/250 262/121/250 295/147/250 -f 309/136/251 277/137/251 308/135/251 -f 264/134/252 263/140/252 296/135/252 -f 278/121/253 277/120/253 310/152/253 -f 265/137/254 264/134/254 297/136/254 -f 279/140/255 278/121/255 311/147/255 -f 298/162/256 266/139/256 297/161/256 -f 280/134/257 279/140/257 312/135/257 -f 299/149/258 267/141/258 298/162/258 -f 356/180/259 324/163/259 355/165/259 -f 335/148/260 303/147/260 334/166/260 -f 289/155/261 290/154/261 321/166/261 -f 317/136/262 316/135/262 349/169/262 -f 304/135/263 303/147/263 336/168/263 -f 323/164/264 291/156/264 321/166/264 -f 318/152/265 317/151/265 350/166/265 -f 305/136/266 304/135/266 337/169/266 -f 292/159/267 291/156/267 324/163/267 -f 319/157/268 318/152/268 351/148/268 -f 306/152/420 305/151/420 338/166/420 -f 293/225/270 292/159/270 325/170/270 -f 352/168/271 320/135/271 351/148/271 -f 307/147/272 306/152/272 339/148/272 -f 326/166/273 294/152/273 325/167/273 -f 290/136/274 320/135/274 322/169/274 -f 308/135/275 307/147/275 340/168/275 -f 295/147/276 294/152/276 327/148/276 -f 309/136/277 308/135/277 341/169/277 -f 328/168/278 296/135/278 327/148/278 -f 310/152/279 309/151/279 342/166/279 -f 297/136/280 296/135/280 329/169/280 -f 343/148/281 311/147/281 342/166/281 -f 330/172/282 298/162/282 329/171/282 -f 312/135/283 311/147/283 344/168/283 -f 299/149/284 298/162/284 331/173/284 -f 313/136/285 312/135/285 345/169/285 -f 332/174/286 300/150/286 331/173/286 -f 314/152/287 313/151/287 346/166/287 -f 301/153/288 300/150/288 333/175/288 -f 315/147/289 314/152/289 347/148/289 -f 302/152/290 301/151/290 334/166/290 -f 359/181/291 358/176/291 391/178/291 -f 383/181/292 351/148/292 382/176/292 -f 338/166/293 337/167/293 370/176/293 -f 357/183/294 325/170/294 356/180/294 -f 384/182/295 352/168/295 383/181/295 -f 371/181/296 339/148/296 370/176/296 -f 358/176/297 326/166/297 357/179/297 -f 322/169/298 352/168/298 354/183/298 -f 340/168/299 339/148/299 372/182/299 -f 327/148/300 326/166/300 359/181/300 -f 341/169/301 340/168/301 373/184/301 -f 360/182/302 328/168/302 359/181/302 -f 342/166/303 341/167/303 374/176/303 -f 329/169/304 328/168/304 361/184/304 -f 343/148/305 342/166/305 375/181/305 -f 362/186/306 330/172/306 361/185/306 -f 344/168/307 343/148/307 376/182/307 -f 331/173/308 330/172/308 363/187/308 -f 345/169/309 344/168/309 377/184/309 -f 332/174/310 331/173/310 364/188/310 -f 346/166/311 345/167/311 378/176/311 -f 333/175/312 332/174/312 365/189/312 -f 347/148/313 346/166/313 379/181/313 -f 366/176/314 334/166/314 365/179/314 -f 348/168/315 347/148/315 380/182/315 -f 335/148/316 334/166/316 367/181/316 -f 321/166/317 322/167/317 353/191/317 -f 349/169/318 348/168/318 381/183/318 -f 336/168/319 335/148/319 368/182/319 -f 323/164/320 321/166/320 355/165/320 -f 350/166/321 349/167/321 382/176/321 -f 337/169/322 336/168/322 369/184/322 -f 394/198/323 393/192/323 426/194/323 -f 405/203/324 373/184/324 404/195/324 -f 392/197/325 360/182/325 391/178/325 -f 406/177/326 374/176/326 405/196/326 -f 393/203/327 361/184/327 392/197/327 -f 407/178/328 375/181/328 406/177/328 -f 362/186/329 361/185/329 394/198/329 -f 376/182/330 375/181/330 408/195/330 -f 363/187/331 362/186/331 395/199/331 -f 409/203/332 377/184/332 408/195/332 -f 364/188/333 363/187/333 396/200/333 -f 378/176/334 377/179/334 410/177/334 -f 365/189/335 364/188/335 397/201/335 -f 379/181/336 378/176/336 411/178/336 -f 398/177/337 366/176/337 397/196/337 -f 412/195/338 380/182/338 411/178/338 -f 399/178/339 367/181/339 398/177/339 -f 353/191/340 354/190/340 385/202/340 -f 381/183/341 380/182/341 413/203/341 -f 400/195/342 368/182/342 399/178/342 -f 355/165/343 353/191/343 387/204/343 -f 414/177/344 382/176/344 413/196/344 -f 401/203/345 369/184/345 400/195/345 -f 388/197/346 356/180/346 387/204/346 -f 383/181/347 382/176/347 415/178/347 -f 402/177/348 370/176/348 401/196/348 -f 357/183/349 356/180/349 389/203/349 -f 416/197/350 384/182/350 415/178/350 -f 371/181/351 370/176/351 403/178/351 -f 358/176/352 357/179/352 390/177/352 -f 386/203/353 354/183/353 416/197/353 -f 372/182/354 371/181/354 404/195/354 -f 429/226/355 428/205/355 461/207/355 -f 408/195/356 407/178/356 440/205/356 -f 395/199/357 394/198/357 427/209/357 -f 409/203/358 408/195/358 441/210/358 -f 396/200/359 395/199/359 428/205/359 -f 442/194/360 410/177/360 441/193/360 -f 429/226/361 397/201/361 428/205/361 -f 443/208/362 411/178/362 442/194/362 -f 398/177/363 397/196/363 430/194/363 -f 444/205/364 412/195/364 443/208/364 -f 399/178/365 398/177/365 431/208/365 -f 417/194/366 385/202/366 418/193/366 -f 413/203/367 412/195/367 445/210/367 -f 432/205/368 400/195/368 431/208/368 -f 387/204/369 385/202/369 419/208/369 -f 414/177/370 413/196/370 446/194/370 -f 401/203/371 400/195/371 433/210/371 -f 388/197/372 387/204/372 420/211/372 -f 415/178/373 414/177/373 447/208/373 -f 402/177/374 401/196/374 434/194/374 -f 389/203/375 388/197/375 421/210/375 -f 416/197/376 415/178/376 448/205/376 -f 403/178/377 402/177/377 435/208/377 -f 390/177/378 389/196/378 422/194/378 -f 386/203/379 416/197/379 418/210/379 -f 404/195/380 403/178/380 436/205/380 -f 423/208/381 391/178/381 422/194/381 -f 405/203/382 404/195/382 437/210/382 -f 392/197/383 391/178/383 424/205/383 -f 406/177/384 405/196/384 438/194/384 -f 425/210/385 393/203/385 424/205/385 -f 407/178/386 406/177/386 439/208/386 -f 451/214/421 449/227/421 450/228/421 -f 450/228/387 480/229/387 451/214/387 -f 479/230/387 478/231/387 475/232/387 -f 477/233/387 476/234/387 475/232/387 -f 475/232/387 474/235/387 473/236/387 -f 473/236/387 472/237/387 475/232/387 -f 471/238/387 470/239/387 469/240/387 -f 469/240/387 468/241/387 471/238/387 -f 467/212/421 466/242/421 465/243/421 -f 465/243/422 464/244/422 467/212/422 -f 463/245/387 462/246/387 461/247/387 -f 461/247/387 460/248/387 459/249/387 -f 459/249/387 458/250/387 457/213/387 -f 457/213/387 456/251/387 455/252/387 -f 455/252/387 454/253/387 453/254/387 -f 453/254/387 452/255/387 451/214/387 -f 451/214/387 480/229/387 479/230/387 -f 478/231/387 477/233/387 475/232/387 -f 475/232/387 472/237/387 471/238/387 -f 471/238/387 468/241/387 467/212/387 -f 467/212/387 464/244/387 463/245/387 -f 463/245/387 461/247/387 467/212/387 -f 459/249/387 457/213/387 467/212/387 -f 455/252/387 453/254/387 451/214/387 -f 451/214/387 479/230/387 475/232/387 -f 475/232/387 471/238/387 451/214/387 -f 467/212/387 461/247/387 459/249/387 -f 457/213/387 455/252/387 451/214/387 -f 451/214/387 471/238/387 467/212/387 -f 475/217/388 443/208/388 474/215/388 -f 430/194/389 429/193/389 462/215/389 -f 476/206/390 444/205/390 475/217/390 -f 431/208/391 430/194/391 463/217/391 -f 417/194/392 418/193/392 449/215/392 -f 477/218/393 445/210/393 476/206/393 -f 432/205/423 431/208/423 464/206/423 -f 419/208/424 417/194/424 451/217/424 -f 446/194/396 445/193/396 478/215/396 -f 465/218/397 433/210/397 464/206/397 -f 452/206/398 420/211/398 451/217/398 -f 447/208/399 446/194/399 479/217/399 -f 434/194/400 433/193/400 466/215/400 -f 453/218/401 421/210/401 452/206/401 -f 448/205/402 447/208/402 480/206/402 -f 435/208/403 434/194/403 467/217/403 -f 422/194/404 421/193/404 454/215/404 -f 418/210/405 448/205/405 450/218/405 -f 436/205/406 435/208/406 468/206/406 -f 423/208/425 422/194/425 455/217/425 -f 437/210/426 436/205/426 469/218/426 -f 424/205/409 423/208/409 456/206/409 -f 470/215/410 438/194/410 469/216/410 -f 457/218/411 425/210/411 456/206/411 -f 439/208/427 438/194/427 471/217/427 -f 426/194/413 425/193/413 458/215/413 -f 440/205/414 439/208/414 472/206/414 -f 427/209/415 426/194/415 459/217/415 -f 441/210/416 440/205/416 473/218/416 -f 460/206/428 428/205/428 459/217/428 -f 442/194/418 441/193/418 474/215/418 diff --git a/src/main/resources/assets/hbm/models/network/pylon_medium.obj b/src/main/resources/assets/hbm/models/network/pylon_medium.obj new file mode 100644 index 000000000..750e781b9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/network/pylon_medium.obj @@ -0,0 +1,1023 @@ +# Blender v2.79 (sub 0) OBJ File: 'pylon_medium.blend' +# www.blender.org +o Transformer +v -0.187500 0.312500 -0.250000 +v 0.187500 0.312500 -0.250000 +v -0.187500 0.687500 -0.250000 +v 0.187500 0.687500 -0.250000 +v -0.187500 0.687500 -0.500000 +v -0.187500 0.312500 -0.500000 +v 0.187500 0.312500 -0.500000 +v 0.187500 0.687500 -0.500000 +v -0.250000 5.500000 -0.125000 +v 0.250000 5.500000 -0.125000 +v -0.250000 6.500000 -0.125000 +v 0.250000 6.500000 -0.125000 +v -0.250000 6.500000 -0.625000 +v -0.250000 5.500000 -0.625000 +v 0.250000 5.500000 -0.625000 +v 0.250000 6.500000 -0.625000 +v -0.062500 1.000000 -0.125000 +v 0.062500 1.000000 -0.125000 +v -0.062500 1.000000 -0.187500 +v 0.062500 1.000000 -0.187500 +v -0.062500 5.500000 -0.125000 +v 0.062500 5.500000 -0.125000 +v -0.062500 5.500000 -0.187500 +v 0.062500 5.500000 -0.187500 +v -0.062500 6.500000 -0.125000 +v 0.062500 6.500000 -0.125000 +v -0.062500 6.500000 -0.187500 +v 0.062500 6.500000 -0.187500 +v -0.062500 6.937500 -0.125000 +v 0.062500 6.937500 -0.125000 +v -0.062500 6.875000 -0.187500 +v 0.062500 6.875000 -0.187500 +v -0.187500 5.562500 0.187500 +v 0.187500 5.562500 0.187500 +v -0.187500 5.562500 -0.125000 +v 0.187500 5.562500 -0.125000 +v -0.187500 5.687500 -0.125000 +v -0.187500 5.687500 0.187500 +v 0.187500 5.687500 0.187500 +v 0.187500 5.687500 -0.125000 +v -0.187500 6.312500 0.187500 +v 0.187500 6.312500 0.187500 +v -0.187500 6.312500 -0.125000 +v 0.187500 6.312500 -0.125000 +v -0.187500 6.437500 -0.125000 +v -0.187500 6.437500 0.187500 +v 0.187500 6.437500 0.187500 +v 0.187500 6.437500 -0.125000 +vt 0.846154 0.312500 +vt 0.692308 0.437500 +vt 0.692308 0.312500 +vt 0.730769 0.265625 +vt 0.615385 0.218750 +vt 0.730769 0.218750 +vt 0.538462 0.218750 +vt 0.615385 0.265625 +vt 0.538462 0.265625 +vt 0.807692 0.265625 +vt 0.807692 0.218750 +vt 0.615385 0.296875 +vt 0.730769 0.296875 +vt 0.730769 0.187500 +vt 0.615385 0.187500 +vt 0.538462 0.437500 +vt 0.384615 0.312500 +vt 0.538462 0.312500 +vt 0.384615 0.500000 +vt 0.538462 0.500000 +vt 0.538462 0.250000 +vt 0.384615 0.250000 +vt 1.000000 0.437500 +vt 0.846154 0.437500 +vt 0.057692 0.562500 +vt 0.019231 0.000000 +vt 0.057692 0.000000 +vt 0.019231 0.562500 +vt -0.000000 0.000000 +vt 0.076923 0.562500 +vt 0.076923 0.000000 +vt 0.057692 0.859375 +vt 0.019231 0.812500 +vt 0.057692 0.812500 +vt 0.019231 0.859375 +vt 0.000000 0.812500 +vt 0.076923 0.812500 +vt 0.057692 0.867188 +vt 0.788462 0.437500 +vt 0.903846 0.476562 +vt 0.788462 0.476562 +vt 0.903846 0.492188 +vt 0.788462 0.531250 +vt 0.788462 0.492188 +vt 0.788462 0.437500 +vt 0.903846 0.476562 +vt 0.788462 0.476562 +vt 1.000000 0.476562 +vt 0.692308 0.492188 +vt 0.692308 0.476562 +vt 0.903846 0.492188 +vt 0.788462 0.531250 +vt 0.788462 0.492188 +vt 1.000000 0.476562 +vt 0.692308 0.492188 +vt 0.692308 0.476562 +vt 0.384615 0.437500 +vt 1.000000 0.312500 +vt -0.000000 0.562500 +vt 0.000000 0.867188 +vt 0.076923 0.867188 +vt 0.019231 0.867188 +vt 0.903846 0.437500 +vt 0.903846 0.531250 +vt 0.903846 0.437500 +vt 1.000000 0.492188 +vt 0.903846 0.531250 +vt 1.000000 0.492188 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +s off +f 10/1/1 11/2/1 9/3/1 +f 5/4/2 7/5/2 6/6/2 +f 2/7/3 8/8/3 4/9/3 +f 3/10/4 6/6/4 1/11/4 +f 4/12/5 5/4/5 3/13/5 +f 1/14/6 7/5/6 2/15/6 +f 13/16/2 15/17/2 14/18/2 +f 12/19/5 13/16/5 11/20/5 +f 9/21/6 15/17/6 10/22/6 +f 10/1/3 16/23/3 12/24/3 +f 11/2/4 14/18/4 9/3/4 +f 23/25/2 20/26/2 19/27/2 +f 24/28/3 18/29/3 20/26/3 +f 21/30/4 19/27/4 17/31/4 +f 31/32/2 28/33/2 27/34/2 +f 32/35/3 26/36/3 28/33/3 +f 25/37/4 31/32/4 27/34/4 +f 29/38/7 32/35/7 31/32/7 +f 35/39/6 34/40/6 33/41/6 +f 39/42/5 37/43/5 38/44/5 +f 43/45/6 42/46/6 41/47/6 +f 34/40/1 38/44/1 33/41/1 +f 36/48/3 39/42/3 34/40/3 +f 33/41/4 37/49/4 35/50/4 +f 47/51/5 45/52/5 46/53/5 +f 42/46/1 46/53/1 41/47/1 +f 44/54/3 47/51/3 42/46/3 +f 41/47/4 45/55/4 43/56/4 +f 10/1/1 12/24/1 11/2/1 +f 5/4/2 8/8/2 7/5/2 +f 2/7/3 7/5/3 8/8/3 +f 3/10/4 5/4/4 6/6/4 +f 4/12/5 8/8/5 5/4/5 +f 1/14/6 6/6/6 7/5/6 +f 13/16/2 16/57/2 15/17/2 +f 12/19/5 16/57/5 13/16/5 +f 9/21/6 14/18/6 15/17/6 +f 10/1/3 15/58/3 16/23/3 +f 11/2/4 13/16/4 14/18/4 +f 23/25/2 24/28/2 20/26/2 +f 24/28/3 22/59/3 18/29/3 +f 21/30/4 23/25/4 19/27/4 +f 31/32/2 32/35/2 28/33/2 +f 32/35/3 30/60/3 26/36/3 +f 25/37/4 29/61/4 31/32/4 +f 29/38/7 30/62/7 32/35/7 +f 35/39/6 36/63/6 34/40/6 +f 39/42/5 40/64/5 37/43/5 +f 43/45/6 44/65/6 42/46/6 +f 34/40/1 39/42/1 38/44/1 +f 36/48/3 40/66/3 39/42/3 +f 33/41/4 38/44/4 37/49/4 +f 47/51/5 48/67/5 45/52/5 +f 42/46/1 47/51/1 46/53/1 +f 44/54/3 48/68/3 47/51/3 +f 41/47/4 46/53/4 45/55/4 +o Pylon +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 -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.125000 1.000000 0.125000 +v 0.125000 1.000000 0.125000 +v -0.125000 1.000000 -0.125000 +v 0.125000 1.000000 -0.125000 +v -0.125000 7.000000 0.125000 +v 0.125000 7.000000 0.125000 +v -0.125000 7.000000 -0.125000 +v 0.125000 7.000000 -0.125000 +v -0.125000 7.000000 0.125000 +v 0.125000 7.000000 0.125000 +v -0.125000 7.000000 -0.125000 +v 0.125000 7.000000 -0.125000 +v -0.125000 7.062500 -0.125000 +v -0.125000 7.062500 0.125000 +v 0.125000 7.062500 0.125000 +v 0.125000 7.062500 -0.125000 +v -0.187500 7.062500 -0.187500 +v -0.187500 7.062500 0.187500 +v 0.187500 7.062500 0.187500 +v 0.187500 7.062500 -0.187500 +v -0.187500 7.187500 -0.187500 +v -0.187500 7.187500 0.187500 +v 0.187500 7.187500 0.187500 +v 0.187500 7.187500 -0.187500 +v -0.125000 7.187500 0.125000 +v 0.125000 7.187500 0.125000 +v -0.125000 7.187500 -0.125000 +v 0.125000 7.187500 -0.125000 +v -0.125000 7.250000 -0.125000 +v -0.125000 7.250000 0.125000 +v 0.125000 7.250000 0.125000 +v 0.125000 7.250000 -0.125000 +v -0.187500 7.250000 -0.187500 +v -0.187500 7.250000 0.187500 +v 0.187500 7.250000 0.187500 +v 0.187500 7.250000 -0.187500 +v -0.187500 7.375000 -0.187500 +v -0.187500 7.375000 0.187500 +v 0.187500 7.375000 0.187500 +v 0.187500 7.375000 -0.187500 +v -0.125000 7.375000 0.125000 +v 0.125000 7.375000 0.125000 +v -0.125000 7.375000 -0.125000 +v 0.125000 7.375000 -0.125000 +v -0.125000 7.437500 -0.125000 +v -0.125000 7.437500 0.125000 +v 0.125000 7.437500 0.125000 +v 0.125000 7.437500 -0.125000 +v -0.062500 7.437500 -0.062500 +v -0.062500 7.437500 0.062500 +v 0.062500 7.437500 0.062500 +v 0.062500 7.437500 -0.062500 +v -0.062500 7.562500 -0.062500 +v -0.062500 7.562500 0.062500 +v 0.062500 7.562500 0.062500 +v 0.062500 7.562500 -0.062500 +v -0.125000 7.000000 2.125000 +v 0.125000 7.000000 2.125000 +v -0.125000 6.750000 2.125000 +v 0.125000 6.750000 2.125000 +v -0.125000 7.000000 0.125000 +v 0.125000 7.000000 0.125000 +v -0.125000 6.750000 0.125000 +v 0.125000 6.750000 0.125000 +v -0.062500 5.750000 0.125000 +v 0.062500 5.750000 0.125000 +v -0.062500 6.000000 0.125000 +v 0.062500 6.000000 0.125000 +v -0.062500 6.750000 1.125000 +v 0.062500 6.750000 1.125000 +v -0.062500 6.750000 0.875000 +v 0.062500 6.750000 0.875000 +v -0.125000 7.000000 1.125000 +v 0.125000 7.000000 1.125000 +v -0.125000 7.000000 0.875000 +v 0.125000 7.000000 0.875000 +v -0.125000 7.062500 0.875000 +v -0.125000 7.062500 1.125000 +v 0.125000 7.062500 1.125000 +v 0.125000 7.062500 0.875000 +v -0.187500 7.062500 0.812500 +v -0.187500 7.062500 1.187500 +v 0.187500 7.062500 1.187500 +v 0.187500 7.062500 0.812500 +v -0.187500 7.187500 0.812500 +v -0.187500 7.187500 1.187500 +v 0.187500 7.187500 1.187500 +v 0.187500 7.187500 0.812500 +v -0.125000 7.187500 1.125000 +v 0.125000 7.187500 1.125000 +v -0.125000 7.187500 0.875000 +v 0.125000 7.187500 0.875000 +v -0.125000 7.250000 0.875000 +v -0.125000 7.250000 1.125000 +v 0.125000 7.250000 1.125000 +v 0.125000 7.250000 0.875000 +v -0.187500 7.250000 0.812500 +v -0.187500 7.250000 1.187500 +v 0.187500 7.250000 1.187500 +v 0.187500 7.250000 0.812500 +v -0.187500 7.375000 0.812500 +v -0.187500 7.375000 1.187500 +v 0.187500 7.375000 1.187500 +v 0.187500 7.375000 0.812500 +v -0.125000 7.375000 1.125000 +v 0.125000 7.375000 1.125000 +v -0.125000 7.375000 0.875000 +v 0.125000 7.375000 0.875000 +v -0.125000 7.437500 0.875000 +v -0.125000 7.437500 1.125000 +v 0.125000 7.437500 1.125000 +v 0.125000 7.437500 0.875000 +v -0.062500 7.437500 0.937500 +v -0.062500 7.437500 1.062500 +v 0.062500 7.437500 1.062500 +v 0.062500 7.437500 0.937500 +v -0.062500 7.562500 0.937500 +v -0.062500 7.562500 1.062500 +v 0.062500 7.562500 1.062500 +v 0.062500 7.562500 0.937500 +v -0.125000 7.000000 2.125000 +v 0.125000 7.000000 2.125000 +v -0.125000 7.000000 1.875000 +v 0.125000 7.000000 1.875000 +v -0.125000 7.062500 1.875000 +v -0.125000 7.062500 2.125000 +v 0.125000 7.062500 2.125000 +v 0.125000 7.062500 1.875000 +v -0.187500 7.062500 1.812500 +v -0.187500 7.062500 2.187500 +v 0.187500 7.062500 2.187500 +v 0.187500 7.062500 1.812500 +v -0.187500 7.187500 1.812500 +v -0.187500 7.187500 2.187500 +v 0.187500 7.187500 2.187500 +v 0.187500 7.187500 1.812500 +v -0.125000 7.187500 2.125000 +v 0.125000 7.187500 2.125000 +v -0.125000 7.187500 1.875000 +v 0.125000 7.187500 1.875000 +v -0.125000 7.250000 1.875000 +v -0.125000 7.250000 2.125000 +v 0.125000 7.250000 2.125000 +v 0.125000 7.250000 1.875000 +v -0.187500 7.250000 1.812500 +v -0.187500 7.250000 2.187500 +v 0.187500 7.250000 2.187500 +v 0.187500 7.250000 1.812500 +v -0.187500 7.375000 1.812500 +v -0.187500 7.375000 2.187500 +v 0.187500 7.375000 2.187500 +v 0.187500 7.375000 1.812500 +v -0.125000 7.375000 2.125000 +v 0.125000 7.375000 2.125000 +v -0.125000 7.375000 1.875000 +v 0.125000 7.375000 1.875000 +v -0.125000 7.437500 1.875000 +v -0.125000 7.437500 2.125000 +v 0.125000 7.437500 2.125000 +v 0.125000 7.437500 1.875000 +v -0.062500 7.437500 1.937500 +v -0.062500 7.437500 2.062500 +v 0.062500 7.437500 2.062500 +v 0.062500 7.437500 1.937500 +v -0.062500 7.562500 1.937500 +v -0.062500 7.562500 2.062500 +v 0.062500 7.562500 2.062500 +v 0.062500 7.562500 1.937500 +vt 0.538462 -0.000000 +vt 0.384615 0.062500 +vt 0.384615 -0.000000 +vt 0.538462 0.062500 +vt 0.384615 0.187500 +vt 0.846154 0.062500 +vt 0.692308 0.187500 +vt 0.692308 0.062500 +vt 0.538462 0.187500 +vt 1.000000 0.062500 +vt 0.846154 0.187500 +vt 0.230769 0.000000 +vt 0.153846 0.750000 +vt 0.153846 0.000000 +vt 0.384615 0.250000 +vt 0.538462 0.250000 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.384615 0.000000 +vt 0.307692 0.750000 +vt 0.307692 0.000000 +vt 0.076923 0.750000 +vt 0.076923 0.000000 +vt 0.230769 0.750000 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.403846 0.789062 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.403846 0.828125 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.480769 0.820312 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.906250 +vt 0.461538 0.890625 +vt 0.461538 0.906250 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.750000 +vt 0.384615 0.781250 +vt 0.384615 0.750000 +vt 0.615385 0.750000 +vt 0.692308 0.500000 +vt 0.692308 0.750000 +vt 0.461538 0.500000 +vt 0.538462 0.500000 +vt 0.538462 0.750000 +vt 0.615385 0.500000 +vt 0.961538 0.875000 +vt 0.923077 0.781250 +vt 0.961538 0.781250 +vt 0.769231 0.656250 +vt 1.000000 0.531250 +vt 1.000000 0.562500 +vt 1.000000 0.906250 +vt 0.961538 0.781250 +vt 1.000000 0.781250 +vt 1.000000 0.781250 +vt 0.692308 0.687500 +vt 0.692308 0.656250 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.403846 0.789062 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.403846 0.828125 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.480769 0.820312 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.906250 +vt 0.461538 0.890625 +vt 0.461538 0.906250 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.403846 0.789062 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.781250 +vt 0.480769 0.781250 +vt 0.403846 0.789062 +vt 0.403846 0.781250 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.789062 +vt 0.480769 0.789062 +vt 0.384615 0.796875 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.403846 0.828125 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.500000 0.796875 +vt 0.384615 0.812500 +vt 0.480769 0.820312 +vt 0.403846 0.820312 +vt 0.480769 0.820312 +vt 0.403846 0.828125 +vt 0.403846 0.820312 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.480769 0.828125 +vt 0.480769 0.828125 +vt 0.384615 0.835938 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.835938 +vt 0.384615 0.851562 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.812500 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.480769 0.859375 +vt 0.403846 0.867188 +vt 0.403846 0.859375 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.500000 0.851562 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.875000 +vt 0.480769 0.867188 +vt 0.423077 0.906250 +vt 0.461538 0.890625 +vt 0.461538 0.906250 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 0.461538 0.875000 +vt 0.423077 0.890625 +vt 1.000000 0.187500 +vt 0.384615 0.750000 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.781250 +vt 0.384615 0.500000 +vt 0.923077 0.875000 +vt 0.692308 0.656250 +vt 0.961538 0.906250 +vt 0.923077 0.781250 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vt 0.461538 0.890625 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +s off +f 51/69/8 50/70/8 49/71/8 +f 52/72/9 54/73/9 50/70/9 +f 49/74/10 55/75/10 51/76/10 +f 51/76/11 56/77/11 52/72/11 +f 50/78/12 53/79/12 49/74/12 +f 59/80/11 64/81/11 60/82/11 +f 53/83/13 56/77/13 55/84/13 +f 84/85/9 87/86/9 82/87/9 +f 58/88/12 61/89/12 57/90/12 +f 60/82/9 62/91/9 58/92/9 +f 57/90/10 63/93/10 59/80/10 +f 81/94/10 85/95/10 83/96/10 +f 69/97/8 76/98/8 72/99/8 +f 68/100/9 71/101/9 66/102/9 +f 65/103/10 69/104/10 67/105/10 +f 67/106/11 72/99/11 68/107/11 +f 66/108/12 70/109/12 65/110/12 +f 76/111/9 79/112/9 75/113/9 +f 71/114/8 74/115/8 70/109/8 +f 72/116/8 75/113/8 71/101/8 +f 70/117/8 73/118/8 69/104/8 +f 85/119/8 92/120/8 88/121/8 +f 74/122/10 77/123/10 73/118/10 +f 73/124/11 80/125/11 76/98/11 +f 75/126/12 78/127/12 74/115/12 +f 83/128/11 88/121/11 84/129/11 +f 82/130/12 86/131/12 81/132/12 +f 92/133/9 95/134/9 91/135/9 +f 87/136/8 90/137/8 86/131/8 +f 88/138/8 91/135/8 87/86/8 +f 86/139/8 89/140/8 85/95/8 +f 90/141/10 93/142/10 89/140/10 +f 89/143/11 96/144/11 92/120/11 +f 91/145/12 94/146/12 90/137/12 +f 82/130/13 78/127/13 79/147/13 +f 84/85/13 79/112/13 80/148/13 +f 83/128/13 80/125/13 77/149/13 +f 81/94/13 77/123/13 78/150/13 +f 100/151/9 103/152/9 98/153/9 +f 97/154/10 101/155/10 99/156/10 +f 99/157/11 104/158/11 100/159/11 +f 98/160/12 102/161/12 97/162/12 +f 98/160/13 94/146/13 95/163/13 +f 100/151/13 95/134/13 96/164/13 +f 99/157/13 96/144/13 93/165/13 +f 97/154/13 93/142/13 94/166/13 +f 102/167/13 105/168/13 101/155/13 +f 108/169/9 111/170/9 107/171/9 +f 101/172/13 108/173/13 104/158/13 +f 103/174/13 106/175/13 102/161/13 +f 104/176/13 107/171/13 103/152/13 +f 110/177/13 112/178/13 109/179/13 +f 106/180/10 109/181/10 105/168/10 +f 105/182/11 112/183/11 108/173/11 +f 107/184/12 110/185/12 106/175/12 +f 113/186/12 116/187/12 114/188/12 +f 116/189/9 118/190/9 114/191/9 +f 114/188/13 117/192/13 113/186/13 +f 113/186/10 119/193/10 115/194/10 +f 115/194/8 120/195/8 116/189/8 +f 127/196/14 124/197/14 123/198/14 +f 128/199/9 122/200/9 124/201/9 +f 126/202/15 121/203/15 122/204/15 +f 125/205/10 123/206/10 121/207/10 +f 148/208/9 151/209/9 146/210/9 +f 145/211/10 149/212/10 147/213/10 +f 133/214/8 140/215/8 136/216/8 +f 132/217/9 135/218/9 130/219/9 +f 129/220/10 133/221/10 131/222/10 +f 131/223/11 136/216/11 132/224/11 +f 130/225/12 134/226/12 129/227/12 +f 140/228/9 143/229/9 139/230/9 +f 135/231/8 138/232/8 134/226/8 +f 136/233/8 139/230/8 135/218/8 +f 134/234/8 137/235/8 133/221/8 +f 149/236/8 156/237/8 152/238/8 +f 138/239/10 141/240/10 137/235/10 +f 137/241/11 144/242/11 140/215/11 +f 139/243/12 142/244/12 138/232/12 +f 147/245/11 152/238/11 148/246/11 +f 146/247/12 150/248/12 145/249/12 +f 156/250/9 159/251/9 155/252/9 +f 151/253/8 154/254/8 150/248/8 +f 152/255/8 155/252/8 151/209/8 +f 150/256/8 153/257/8 149/212/8 +f 154/258/10 157/259/10 153/257/10 +f 153/260/11 160/261/11 156/237/11 +f 155/262/12 158/263/12 154/254/12 +f 146/247/13 142/244/13 143/264/13 +f 148/208/13 143/229/13 144/265/13 +f 147/245/13 144/242/13 141/266/13 +f 145/211/13 141/240/13 142/267/13 +f 164/268/9 167/269/9 162/270/9 +f 161/271/10 165/272/10 163/273/10 +f 163/274/11 168/275/11 164/276/11 +f 162/277/12 166/278/12 161/279/12 +f 162/277/13 158/263/13 159/280/13 +f 164/268/13 159/251/13 160/281/13 +f 163/274/13 160/261/13 157/282/13 +f 161/271/13 157/259/13 158/283/13 +f 166/284/13 169/285/13 165/272/13 +f 172/286/9 175/287/9 171/288/9 +f 165/289/13 172/290/13 168/275/13 +f 167/291/13 170/292/13 166/278/13 +f 168/293/13 171/288/13 167/269/13 +f 174/294/13 176/295/13 173/296/13 +f 170/297/10 173/298/10 169/285/10 +f 169/299/11 176/300/11 172/290/11 +f 171/301/12 174/302/12 170/292/12 +f 196/303/9 199/304/9 194/305/9 +f 193/306/10 197/307/10 195/308/10 +f 181/309/8 188/310/8 184/311/8 +f 180/312/9 183/313/9 178/314/9 +f 177/315/10 181/316/10 179/317/10 +f 179/318/11 184/311/11 180/319/11 +f 178/320/12 182/321/12 177/322/12 +f 188/323/9 191/324/9 187/325/9 +f 183/326/8 186/327/8 182/321/8 +f 184/328/8 187/325/8 183/313/8 +f 182/329/8 185/330/8 181/316/8 +f 197/331/8 204/332/8 200/333/8 +f 186/334/10 189/335/10 185/330/10 +f 185/336/11 192/337/11 188/310/11 +f 187/338/12 190/339/12 186/327/12 +f 195/340/11 200/333/11 196/341/11 +f 194/342/12 198/343/12 193/344/12 +f 204/345/9 207/346/9 203/347/9 +f 199/348/8 202/349/8 198/343/8 +f 200/350/8 203/347/8 199/304/8 +f 198/351/8 201/352/8 197/307/8 +f 202/353/10 205/354/10 201/352/10 +f 201/355/11 208/356/11 204/332/11 +f 203/357/12 206/358/12 202/349/12 +f 194/342/13 190/339/13 191/359/13 +f 196/303/13 191/324/13 192/360/13 +f 195/340/13 192/337/13 189/361/13 +f 193/306/13 189/335/13 190/362/13 +f 212/363/9 215/364/9 210/365/9 +f 209/366/10 213/367/10 211/368/10 +f 211/369/11 216/370/11 212/371/11 +f 210/372/12 214/373/12 209/374/12 +f 210/372/13 206/358/13 207/375/13 +f 212/363/13 207/346/13 208/376/13 +f 211/369/13 208/356/13 205/377/13 +f 209/366/13 205/354/13 206/378/13 +f 214/379/13 217/380/13 213/367/13 +f 220/381/9 223/382/9 219/383/9 +f 213/384/13 220/385/13 216/370/13 +f 215/386/13 218/387/13 214/373/13 +f 216/388/13 219/383/13 215/364/13 +f 222/389/13 224/390/13 221/391/13 +f 218/392/10 221/393/10 217/380/10 +f 217/394/11 224/395/11 220/385/11 +f 219/396/12 222/397/12 218/387/12 +f 51/69/8 52/72/8 50/70/8 +f 52/72/9 56/77/9 54/73/9 +f 49/74/10 53/79/10 55/75/10 +f 51/76/11 55/75/11 56/77/11 +f 50/78/12 54/398/12 53/79/12 +f 59/80/11 63/93/11 64/81/11 +f 53/83/13 54/73/13 56/77/13 +f 84/85/9 88/138/9 87/86/9 +f 58/88/12 62/399/12 61/89/12 +f 60/82/9 64/81/9 62/91/9 +f 57/90/10 61/89/10 63/93/10 +f 81/94/10 86/139/10 85/95/10 +f 69/97/8 73/124/8 76/98/8 +f 68/100/9 72/116/9 71/101/9 +f 65/103/10 70/117/10 69/104/10 +f 67/106/11 69/97/11 72/99/11 +f 66/108/12 71/114/12 70/109/12 +f 76/111/9 80/148/9 79/112/9 +f 71/114/8 75/126/8 74/115/8 +f 72/116/8 76/111/8 75/113/8 +f 70/117/8 74/122/8 73/118/8 +f 85/119/8 89/143/8 92/120/8 +f 74/122/10 78/150/10 77/123/10 +f 73/124/11 77/149/11 80/125/11 +f 75/126/12 79/147/12 78/127/12 +f 83/128/11 85/119/11 88/121/11 +f 82/130/12 87/136/12 86/131/12 +f 92/133/9 96/164/9 95/134/9 +f 87/136/8 91/145/8 90/137/8 +f 88/138/8 92/133/8 91/135/8 +f 86/139/8 90/141/8 89/140/8 +f 90/141/10 94/166/10 93/142/10 +f 89/143/11 93/165/11 96/144/11 +f 91/145/12 95/163/12 94/146/12 +f 82/130/13 81/132/13 78/127/13 +f 84/85/13 82/87/13 79/112/13 +f 83/128/13 84/129/13 80/125/13 +f 81/94/13 83/96/13 77/123/13 +f 100/151/9 104/176/9 103/152/9 +f 97/154/10 102/167/10 101/155/10 +f 99/157/11 101/172/11 104/158/11 +f 98/160/12 103/174/12 102/161/12 +f 98/160/13 97/162/13 94/146/13 +f 100/151/13 98/153/13 95/134/13 +f 99/157/13 100/159/13 96/144/13 +f 97/154/13 99/156/13 93/142/13 +f 102/167/13 106/180/13 105/168/13 +f 108/169/9 112/178/9 111/170/9 +f 101/172/13 105/182/13 108/173/13 +f 103/174/13 107/184/13 106/175/13 +f 104/176/13 108/169/13 107/171/13 +f 110/177/13 111/170/13 112/178/13 +f 106/180/10 110/400/10 109/181/10 +f 105/182/11 109/401/11 112/183/11 +f 107/184/12 111/402/12 110/185/12 +f 113/186/12 115/403/12 116/187/12 +f 116/189/9 120/195/9 118/190/9 +f 114/188/13 118/404/13 117/192/13 +f 113/186/10 117/192/10 119/193/10 +f 115/194/8 119/193/8 120/195/8 +f 127/196/14 128/405/14 124/197/14 +f 128/199/9 126/406/9 122/200/9 +f 126/202/15 125/407/15 121/203/15 +f 125/205/10 127/408/10 123/206/10 +f 148/208/9 152/255/9 151/209/9 +f 145/211/10 150/256/10 149/212/10 +f 133/214/8 137/241/8 140/215/8 +f 132/217/9 136/233/9 135/218/9 +f 129/220/10 134/234/10 133/221/10 +f 131/223/11 133/214/11 136/216/11 +f 130/225/12 135/231/12 134/226/12 +f 140/228/9 144/265/9 143/229/9 +f 135/231/8 139/243/8 138/232/8 +f 136/233/8 140/228/8 139/230/8 +f 134/234/8 138/239/8 137/235/8 +f 149/236/8 153/260/8 156/237/8 +f 138/239/10 142/267/10 141/240/10 +f 137/241/11 141/266/11 144/242/11 +f 139/243/12 143/264/12 142/244/12 +f 147/245/11 149/236/11 152/238/11 +f 146/247/12 151/253/12 150/248/12 +f 156/250/9 160/281/9 159/251/9 +f 151/253/8 155/262/8 154/254/8 +f 152/255/8 156/250/8 155/252/8 +f 150/256/8 154/258/8 153/257/8 +f 154/258/10 158/283/10 157/259/10 +f 153/260/11 157/282/11 160/261/11 +f 155/262/12 159/280/12 158/263/12 +f 146/247/13 145/249/13 142/244/13 +f 148/208/13 146/210/13 143/229/13 +f 147/245/13 148/246/13 144/242/13 +f 145/211/13 147/213/13 141/240/13 +f 164/268/9 168/293/9 167/269/9 +f 161/271/10 166/284/10 165/272/10 +f 163/274/11 165/289/11 168/275/11 +f 162/277/12 167/291/12 166/278/12 +f 162/277/13 161/279/13 158/263/13 +f 164/268/13 162/270/13 159/251/13 +f 163/274/13 164/276/13 160/261/13 +f 161/271/13 163/273/13 157/259/13 +f 166/284/13 170/297/13 169/285/13 +f 172/286/9 176/295/9 175/287/9 +f 165/289/13 169/299/13 172/290/13 +f 167/291/13 171/301/13 170/292/13 +f 168/293/13 172/286/13 171/288/13 +f 174/294/13 175/287/13 176/295/13 +f 170/297/10 174/409/10 173/298/10 +f 169/299/11 173/410/11 176/300/11 +f 171/301/12 175/411/12 174/302/12 +f 196/303/9 200/350/9 199/304/9 +f 193/306/10 198/351/10 197/307/10 +f 181/309/8 185/336/8 188/310/8 +f 180/312/9 184/328/9 183/313/9 +f 177/315/10 182/329/10 181/316/10 +f 179/318/11 181/309/11 184/311/11 +f 178/320/12 183/326/12 182/321/12 +f 188/323/9 192/360/9 191/324/9 +f 183/326/8 187/338/8 186/327/8 +f 184/328/8 188/323/8 187/325/8 +f 182/329/8 186/334/8 185/330/8 +f 197/331/8 201/355/8 204/332/8 +f 186/334/10 190/362/10 189/335/10 +f 185/336/11 189/361/11 192/337/11 +f 187/338/12 191/359/12 190/339/12 +f 195/340/11 197/331/11 200/333/11 +f 194/342/12 199/348/12 198/343/12 +f 204/345/9 208/376/9 207/346/9 +f 199/348/8 203/357/8 202/349/8 +f 200/350/8 204/345/8 203/347/8 +f 198/351/8 202/353/8 201/352/8 +f 202/353/10 206/378/10 205/354/10 +f 201/355/11 205/377/11 208/356/11 +f 203/357/12 207/375/12 206/358/12 +f 194/342/13 193/344/13 190/339/13 +f 196/303/13 194/305/13 191/324/13 +f 195/340/13 196/341/13 192/337/13 +f 193/306/13 195/308/13 189/335/13 +f 212/363/9 216/388/9 215/364/9 +f 209/366/10 214/379/10 213/367/10 +f 211/369/11 213/384/11 216/370/11 +f 210/372/12 215/386/12 214/373/12 +f 210/372/13 209/374/13 206/358/13 +f 212/363/13 210/365/13 207/346/13 +f 211/369/13 212/371/13 208/356/13 +f 209/366/13 211/368/13 205/354/13 +f 214/379/13 218/392/13 217/380/13 +f 220/381/9 224/390/9 223/382/9 +f 213/384/13 217/394/13 220/385/13 +f 215/386/13 219/396/13 218/387/13 +f 216/388/13 220/381/13 219/383/13 +f 222/389/13 223/382/13 224/390/13 +f 218/392/10 222/412/10 221/393/10 +f 217/394/11 221/413/11 224/395/11 +f 219/396/12 223/414/12 222/397/12 diff --git a/src/main/resources/assets/hbm/models/projectiles/leadburster.obj b/src/main/resources/assets/hbm/models/projectiles/leadburster.obj new file mode 100644 index 000000000..994ea3b72 --- /dev/null +++ b/src/main/resources/assets/hbm/models/projectiles/leadburster.obj @@ -0,0 +1,1671 @@ +# Blender v2.79 (sub 0) OBJ File: 'leadburster.blend' +# www.blender.org +o Based.001 +v -0.015017 4.297415 -1.162174 +v -0.015017 4.297415 1.146320 +v 0.576962 3.955635 1.146320 +v 0.576962 3.955635 -1.162174 +v 0.576962 3.272077 1.146320 +v 0.576962 3.272077 -1.162174 +v -0.015017 2.930297 1.146320 +v -0.015017 2.930298 -1.162174 +v -0.606996 3.272077 1.146320 +v -0.606996 3.272077 -1.162174 +v 0.489972 3.322300 1.146320 +v -0.015017 3.030745 1.146320 +v -0.606996 3.955635 1.146320 +v -0.606996 3.955635 -1.162174 +v 0.491289 3.321540 -1.162174 +v 0.491289 3.906172 -1.162174 +v -0.520006 3.322300 1.146320 +v -0.015017 3.030745 0.868875 +v -0.520006 3.322300 0.868875 +v -0.520006 3.905411 1.146320 +v -0.015017 4.196967 1.146320 +v 0.489972 3.905411 1.146320 +v 0.489972 3.322300 0.868875 +v 0.455764 3.342050 0.868875 +v -0.015017 3.070245 0.868875 +v 0.489972 3.905411 0.868875 +v -0.520006 3.905411 0.868875 +v -0.015017 4.196967 0.868875 +v 0.455764 3.885662 0.868875 +v 0.394149 3.850088 1.153171 +v 0.394149 3.377624 1.153171 +v -0.015017 4.157467 0.868875 +v -0.485798 3.885662 0.868875 +v -0.485798 3.342051 0.868875 +v -0.015017 4.086320 1.153171 +v -0.424183 3.850088 1.153171 +v -0.424183 3.377624 1.153171 +v -0.015017 3.141392 1.153171 +v -0.521323 3.321540 -1.162174 +v -0.521323 3.906172 -1.162174 +v -0.487987 3.886926 -0.844068 +v -0.487987 3.340786 -0.844068 +v -0.015017 4.198488 -1.162174 +v -0.015017 3.029224 -1.162174 +v -0.015017 4.159995 -0.844068 +v -0.015017 4.086784 -1.161144 +v -0.424585 3.850320 -1.161144 +v -0.015017 3.067717 -0.844068 +v 0.457954 3.340786 -0.844068 +v 0.457954 3.886926 -0.844068 +v 0.394551 3.850320 -1.161144 +v 0.394551 3.377392 -1.161144 +v -0.015017 3.140928 -1.161144 +v -0.424585 3.377392 -1.161144 +v 0.308285 1.821139 -0.740607 +v 0.305698 1.821139 0.741679 +v -0.308285 1.821139 0.740608 +v -0.305698 1.821139 -0.741679 +v -0.308285 2.128531 0.740608 +v -0.305698 2.128531 -0.741679 +v 0.305698 2.128531 0.741679 +v 0.308285 2.128531 -0.740607 +v 0.305698 3.115462 0.741679 +v -0.308285 3.099616 0.740608 +v -0.015017 2.930297 0.741119 +v -0.305698 2.128531 -1.038465 +v -0.305698 1.821139 -1.038465 +v -0.308285 1.821139 1.036965 +v 0.305698 1.821139 1.038465 +v 0.305698 2.128531 1.038465 +v -0.308285 2.128531 1.036965 +v 0.308285 1.821139 -1.036965 +v 0.308285 2.128531 -1.036965 +v -0.305698 3.098122 -0.741679 +v -0.305698 3.098122 -1.038465 +v -0.015017 2.930297 -1.037755 +v 0.308285 3.116956 -1.036965 +v 0.305698 3.115462 1.038465 +v 0.308285 3.116956 -0.740607 +v -0.015017 2.930297 -0.741172 +v -0.308285 3.099616 1.036965 +v -0.015017 2.930297 1.037682 +vt 0.639483 0.175662 +vt 0.663689 0.275699 +vt 0.639518 0.275817 +vt 0.511157 0.563979 +vt 0.552869 0.765382 +vt 0.511157 0.765383 +vt 0.808845 0.848002 +vt 0.753093 0.471432 +vt 0.808845 0.471432 +vt 0.753093 0.848002 +vt 0.697341 0.471432 +vt 0.697340 0.848002 +vt 0.641588 0.471432 +vt 0.976102 0.471432 +vt 0.920349 0.848002 +vt 0.920349 0.471432 +vt 0.641588 0.848002 +vt 0.693244 0.862192 +vt 0.645685 0.862192 +vt 0.864597 0.471432 +vt 0.864597 0.848002 +vt 0.749058 0.457457 +vt 0.972005 0.862192 +vt 0.924446 0.907449 +vt 0.924446 0.862192 +vt 0.812941 0.862192 +vt 0.976102 0.848002 +vt 0.748996 0.862192 +vt 0.701437 0.862192 +vt 0.868694 0.862192 +vt 0.804749 0.862192 +vt 0.757189 0.862192 +vt 0.693244 0.907449 +vt 0.647296 0.913030 +vt 0.645685 0.907450 +vt 0.701437 0.907450 +vt 0.916253 0.862192 +vt 0.868694 0.907450 +vt 0.757189 0.907450 +vt 0.860501 0.862192 +vt 0.812941 0.907450 +vt 0.747386 0.913030 +vt 0.705949 0.960482 +vt 0.703048 0.913030 +vt 0.804749 0.907450 +vt 0.758800 0.913030 +vt 0.858890 0.913030 +vt 0.814552 0.913030 +vt 0.970394 0.913030 +vt 0.926057 0.913030 +vt 0.748996 0.907450 +vt 0.914642 0.913030 +vt 0.870304 0.913030 +vt 0.537788 0.150505 +vt 0.557055 0.083760 +vt 0.614858 0.150505 +vt 0.873206 0.960482 +vt 0.691633 0.913030 +vt 0.650197 0.960482 +vt 0.800236 0.960482 +vt 0.761701 0.960482 +vt 0.817454 0.960482 +vt 0.928958 0.960482 +vt 0.916315 0.457457 +vt 0.870201 0.405282 +vt 0.914745 0.405282 +vt 0.757127 0.457457 +vt 0.804811 0.457457 +vt 0.693306 0.457457 +vt 0.860563 0.457457 +vt 0.924384 0.457457 +vt 0.972067 0.457457 +vt 0.858993 0.405282 +vt 0.817435 0.352535 +vt 0.856008 0.352536 +vt 0.647192 0.405282 +vt 0.691737 0.405282 +vt 0.803241 0.405282 +vt 0.812879 0.457457 +vt 0.925954 0.405282 +vt 0.970497 0.405282 +vt 0.701375 0.457457 +vt 0.747489 0.405282 +vt 0.537788 0.313976 +vt 0.557086 0.247179 +vt 0.595659 0.247206 +vt 0.967512 0.352535 +vt 0.705930 0.352536 +vt 0.744503 0.352536 +vt 0.911760 0.352535 +vt 0.688751 0.352536 +vt 0.761682 0.352536 +vt 0.800255 0.352536 +vt 0.636347 0.765383 +vt 0.615464 0.563979 +vt 0.636347 0.563979 +vt 0.573752 0.563979 +vt 0.615464 0.765383 +vt 0.573752 0.765382 +vt 0.688760 0.026976 +vt 0.767964 0.026976 +vt 0.754154 0.074815 +vt 0.552869 0.563979 +vt 0.863701 0.015410 +vt 0.838629 0.063823 +vt 0.838629 0.015410 +vt 0.663689 0.175544 +vt 0.688760 0.275699 +vt 0.863701 0.163978 +vt 0.838629 0.163978 +vt 0.688760 0.127131 +vt 0.663689 0.127131 +vt 0.663689 0.324042 +vt 0.688760 0.324042 +vt 0.942782 0.063823 +vt 0.863701 0.063823 +vt 0.838629 0.212321 +vt 0.863701 0.212321 +vt 0.814423 0.063941 +vt 0.814458 0.164096 +vt 0.929094 0.111240 +vt 0.688760 0.175544 +vt 0.769256 0.127131 +vt 0.769256 0.175544 +vt 0.944318 0.163978 +vt 0.944318 0.212321 +vt 0.929094 0.265060 +vt 0.754154 0.227860 +vt 0.767964 0.324042 +vt 0.972005 0.907450 +vt 0.916253 0.907450 +vt 0.860501 0.907450 +vt 0.744484 0.960482 +vt 0.803138 0.913030 +vt 0.595590 0.083760 +vt 0.595590 0.217249 +vt 0.557055 0.217249 +vt 0.911741 0.960482 +vt 0.688732 0.960482 +vt 0.855989 0.960482 +vt 0.967493 0.960482 +vt 0.868631 0.457457 +vt 0.645623 0.457457 +vt 0.814449 0.405282 +vt 0.758697 0.405282 +vt 0.702945 0.405282 +vt 0.614933 0.314029 +vt 0.595636 0.380826 +vt 0.557063 0.380800 +vt 0.928939 0.352535 +vt 0.873187 0.352535 +vt 0.650178 0.352536 +vt 0.942782 0.015410 +vt 0.942782 0.312477 +vt 0.863701 0.312477 +vt 0.767964 0.275699 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9773 0.0000 0.2118 +vn -0.9773 0.0000 0.2118 +vn 0.4887 -0.8464 0.2118 +vn 0.4887 0.8464 0.2118 +vn -0.4887 0.8464 0.2118 +vn -0.4887 -0.8464 0.2118 +vn 0.9946 0.0000 -0.1042 +vn -0.4903 0.8492 -0.1961 +vn -0.4973 0.8613 -0.1042 +vn -0.4973 -0.8613 -0.1042 +vn 0.4973 -0.8613 -0.1042 +vn 0.4973 0.8613 -0.1042 +vn -0.9946 0.0000 -0.1042 +vn -0.4903 -0.8492 -0.1961 +vn 0.9806 0.0000 -0.1961 +vn -0.9806 0.0000 -0.1961 +vn 0.4903 -0.8492 -0.1961 +vn 0.4903 0.8492 -0.1961 +vn -1.0000 -0.0000 -0.0017 +vn 0.0000 1.0000 -0.0000 +vn 0.0017 0.0000 -1.0000 +vn 1.0000 0.0000 0.0017 +vn -0.0024 0.0000 1.0000 +vn 0.0024 0.0000 -1.0000 +vn -0.0017 0.0000 1.0000 +s off +f 56/1/1 68/2/1 57/3/1 +f 58/4/1 56/5/1 57/6/1 +f 2/7/2 4/8/2 1/9/2 +f 3/10/3 6/11/3 4/8/3 +f 5/12/4 8/13/4 6/11/4 +f 8/14/5 9/15/5 10/16/5 +f 7/17/6 11/18/6 12/19/6 +f 9/15/7 14/20/7 10/16/7 +f 13/21/8 1/9/8 14/20/8 +f 6/11/9 16/22/9 4/8/9 +f 12/23/2 19/24/2 17/25/2 +f 13/21/6 21/26/6 2/7/6 +f 7/27/6 17/25/6 9/15/6 +f 5/12/6 22/28/6 11/29/6 +f 9/15/6 20/30/6 13/21/6 +f 3/10/6 21/31/6 22/32/6 +f 23/33/6 25/34/6 18/35/6 +f 22/28/7 23/36/7 11/29/7 +f 17/37/3 27/38/3 20/30/3 +f 11/18/8 18/35/8 12/19/8 +f 21/31/5 26/39/5 22/32/5 +f 20/40/4 28/41/4 21/26/4 +f 29/42/10 31/43/10 24/44/10 +f 28/45/6 29/46/6 26/39/6 +f 28/41/6 33/47/6 32/48/6 +f 19/24/6 25/49/6 34/50/6 +f 26/51/6 24/44/6 23/36/6 +f 27/38/6 34/52/6 33/53/6 +f 38/54/6 31/55/6 35/56/6 +f 34/52/11 36/57/11 33/53/11 +f 24/58/12 38/59/12 25/34/12 +f 29/46/13 35/60/13 30/61/13 +f 33/47/14 35/62/14 32/48/14 +f 25/49/15 37/63/15 34/50/15 +f 39/64/16 41/65/16 42/66/16 +f 14/20/9 39/64/9 10/16/9 +f 1/9/9 16/67/9 43/68/9 +f 8/13/9 15/69/9 6/11/9 +f 1/9/9 40/70/9 14/20/9 +f 8/14/9 39/71/9 44/72/9 +f 41/73/17 46/74/17 47/75/17 +f 15/69/18 48/76/18 49/77/18 +f 16/67/19 45/78/19 43/68/19 +f 43/79/20 41/73/20 40/70/20 +f 44/72/21 42/80/21 48/81/21 +f 15/82/22 50/83/22 16/22/22 +f 53/84/9 54/85/9 47/86/9 +f 42/80/23 53/87/23 48/81/23 +f 50/83/24 52/88/24 51/89/24 +f 41/65/25 54/90/25 42/66/25 +f 48/76/26 52/91/26 49/77/26 +f 45/78/27 51/92/27 46/93/27 +f 57/94/28 60/95/28 58/96/28 +f 62/97/29 59/98/29 61/99/29 +f 59/100/30 64/101/30 65/102/30 +f 55/103/31 61/99/31 56/5/31 +f 60/104/7 67/105/7 58/106/7 +f 69/107/32 71/108/32 68/2/32 +f 67/105/33 73/109/33 72/110/33 +f 61/111/3 69/107/3 56/112/3 +f 57/113/7 71/108/7 59/114/7 +f 60/104/7 75/115/7 66/116/7 +f 55/117/3 73/109/3 62/118/3 +f 58/119/1 72/110/1 55/120/1 +f 66/116/33 75/115/33 76/121/33 +f 70/122/3 63/123/3 78/124/3 +f 62/118/3 77/125/3 79/126/3 +f 62/118/34 79/126/34 80/127/34 +f 70/122/32 78/124/32 82/128/32 +f 71/108/7 64/129/7 59/114/7 +f 56/1/1 69/107/1 68/2/1 +f 58/4/1 55/103/1 56/5/1 +f 2/7/2 3/10/2 4/8/2 +f 3/10/3 5/12/3 6/11/3 +f 5/12/4 7/17/4 8/13/4 +f 8/14/5 7/27/5 9/15/5 +f 7/17/6 5/12/6 11/18/6 +f 9/15/7 13/21/7 14/20/7 +f 13/21/8 2/7/8 1/9/8 +f 6/11/9 15/82/9 16/22/9 +f 12/23/2 18/130/2 19/24/2 +f 13/21/6 20/40/6 21/26/6 +f 7/27/6 12/23/6 17/25/6 +f 5/12/6 3/10/6 22/28/6 +f 9/15/6 17/37/6 20/30/6 +f 3/10/6 2/7/6 21/31/6 +f 23/33/6 24/58/6 25/34/6 +f 22/28/7 26/51/7 23/36/7 +f 17/37/3 19/131/3 27/38/3 +f 11/18/8 23/33/8 18/35/8 +f 21/31/5 28/45/5 26/39/5 +f 20/40/4 27/132/4 28/41/4 +f 29/42/10 30/133/10 31/43/10 +f 28/45/6 32/134/6 29/46/6 +f 28/41/6 27/132/6 33/47/6 +f 19/24/6 18/130/6 25/49/6 +f 26/51/6 29/42/6 24/44/6 +f 27/38/6 19/131/6 34/52/6 +f 31/55/6 30/135/6 35/56/6 +f 35/56/6 36/136/6 37/137/6 +f 37/137/6 38/54/6 35/56/6 +f 34/52/11 37/138/11 36/57/11 +f 24/58/12 31/139/12 38/59/12 +f 29/46/13 32/134/13 35/60/13 +f 33/47/14 36/140/14 35/62/14 +f 25/49/15 38/141/15 37/63/15 +f 39/64/16 40/142/16 41/65/16 +f 14/20/9 40/142/9 39/64/9 +f 1/9/9 4/8/9 16/67/9 +f 8/13/9 44/143/9 15/69/9 +f 1/9/9 43/79/9 40/70/9 +f 8/14/9 10/16/9 39/71/9 +f 41/73/17 45/144/17 46/74/17 +f 15/69/18 44/143/18 48/76/18 +f 16/67/19 50/145/19 45/78/19 +f 43/79/20 45/144/20 41/73/20 +f 44/72/21 39/71/21 42/80/21 +f 15/82/22 49/146/22 50/83/22 +f 47/86/9 46/147/9 53/84/9 +f 46/147/9 51/148/9 53/84/9 +f 51/148/9 52/149/9 53/84/9 +f 42/80/23 54/150/23 53/87/23 +f 50/83/24 49/146/24 52/88/24 +f 41/65/25 47/151/25 54/90/25 +f 48/76/26 53/152/26 52/91/26 +f 45/78/27 50/145/27 51/92/27 +f 57/94/28 59/98/28 60/95/28 +f 62/97/29 60/95/29 59/98/29 +f 65/102/30 63/123/30 61/111/30 +f 61/111/30 59/100/30 65/102/30 +f 55/103/31 62/97/31 61/99/31 +f 60/104/7 66/116/7 67/105/7 +f 69/107/32 70/122/32 71/108/32 +f 67/105/33 66/116/33 73/109/33 +f 61/111/3 70/122/3 69/107/3 +f 57/113/7 68/2/7 71/108/7 +f 60/104/7 74/153/7 75/115/7 +f 55/117/3 72/110/3 73/109/3 +f 58/119/1 67/105/1 72/110/1 +f 77/125/33 73/109/33 76/121/33 +f 73/109/33 66/116/33 76/121/33 +f 70/122/3 61/111/3 63/123/3 +f 62/118/3 73/109/3 77/125/3 +f 80/127/34 74/154/34 60/155/34 +f 60/155/34 62/118/34 80/127/34 +f 82/128/32 81/156/32 71/108/32 +f 71/108/32 70/122/32 82/128/32 +f 71/108/7 81/156/7 64/129/7 +o Backlight +v -1.320666 5.883319 -0.497968 +v -0.984420 5.883904 -0.491350 +v -0.987140 5.302763 -0.301741 +v -1.323386 5.302178 -0.308359 +v -0.999171 5.303525 0.309437 +v -1.335417 5.302939 0.302818 +v -1.003886 5.885137 0.497557 +v -1.340132 5.884551 0.490938 +v -0.994770 6.243831 0.002643 +v -1.331016 6.243245 -0.003975 +v 0.021235 6.075014 -0.897532 +v 0.021235 6.075014 0.897532 +v 0.288019 5.707444 0.897532 +v 0.288019 5.707444 -0.897532 +v 0.103085 5.292618 0.897532 +v 0.103085 5.292618 -0.897532 +v -0.348631 5.245362 0.897532 +v -0.348631 5.245362 -0.897532 +v -0.615414 5.612932 0.897532 +v -0.615414 5.612932 -0.897532 +v -0.430481 6.027758 0.897532 +v -0.430481 6.027758 -0.897532 +v -0.868643 2.165176 0.689521 +v -1.105512 2.543972 0.689521 +v -1.105512 2.543972 -0.689521 +v -0.868643 2.165176 -0.689521 +v 1.105512 2.543972 -0.689521 +v 0.868643 2.165176 -0.689521 +v 0.868643 2.165176 0.689521 +v 1.199654 4.481366 0.689521 +v 1.199654 4.481366 -0.689521 +v 0.857499 6.338323 -0.688818 +v 0.857499 6.338323 0.688818 +v -1.094646 5.192699 -0.689521 +v 1.105512 2.543972 0.689521 +v -1.104364 2.657593 -0.454835 +v -1.095794 5.079079 -0.454835 +v -1.094646 5.192699 0.689521 +v -1.075323 6.338323 0.688818 +v -1.075323 6.338323 -0.688818 +v 0.443011 6.780780 -0.689521 +v -0.748752 6.780780 -0.689521 +v -0.748752 6.780780 0.689521 +v 0.443011 6.780780 0.689521 +v -1.095794 5.079079 0.454835 +v -1.560949 4.983612 -0.454835 +v -1.560949 4.983612 0.454835 +v -1.104364 2.657593 0.454835 +v -1.744408 4.759537 0.454835 +v -1.751578 2.847407 0.454835 +v -1.565712 2.659905 0.454835 +v -1.565712 2.659905 -0.454835 +v -1.751578 2.847407 -0.454835 +v -1.744408 4.759537 -0.454835 +v 0.902946 2.617983 -0.365337 +v 1.624929 2.505614 -0.365337 +v 1.571494 2.162292 -0.112895 +v 0.849512 2.274660 -0.112895 +v 1.591904 2.293429 0.295564 +v 0.869922 2.405798 0.295564 +v 1.657953 2.717800 0.295564 +v 0.935971 2.830168 0.295564 +v 1.678363 2.848937 -0.112895 +v 0.956381 2.961306 -0.112895 +v 0.675515 5.594983 -0.365337 +v 1.390851 5.743908 -0.365337 +v 1.461669 5.403746 -0.112895 +v 0.746333 5.254820 -0.112895 +v 1.434619 5.533676 0.295564 +v 0.719283 5.384750 0.295564 +v 1.347083 5.954140 0.295564 +v 0.631746 5.805215 0.295564 +v 1.320033 6.084071 -0.112895 +v 0.604696 5.935145 -0.112895 +v 0.804842 4.824814 -0.365337 +v 1.529542 4.918053 -0.365337 +v 1.573880 4.573438 -0.112895 +v 0.849180 4.480198 -0.112895 +v 1.556945 4.705069 0.295564 +v 0.832244 4.611830 0.295564 +v 1.502140 5.131038 0.295564 +v 0.777439 5.037798 0.295564 +v 1.485204 5.262669 -0.112895 +v 0.760504 5.169430 -0.112895 +v 0.920711 4.059648 -0.365337 +v 1.648066 4.129222 -0.365337 +v 1.681150 3.783345 -0.112895 +v 0.953796 3.713770 -0.112895 +v 1.668513 3.915458 0.295564 +v 0.941159 3.845884 0.295564 +v 1.627618 4.342986 0.295564 +v 0.900264 4.273412 0.295564 +v 1.614981 4.475100 -0.112895 +v 0.887627 4.405526 -0.112895 +v 0.945849 3.338301 -0.365337 +v 1.676468 3.329257 -0.365337 +v 1.672167 2.981827 -0.112895 +v 0.941548 2.990872 -0.112895 +v 1.673810 3.114533 0.295564 +v 0.943191 3.123578 0.295564 +v 1.679126 3.543980 0.295564 +v 0.948508 3.553025 0.295564 +v 1.680769 3.676687 -0.112895 +v 0.950150 3.685731 -0.112895 +vt 0.734577 0.712371 +vt 0.689031 0.795268 +vt 0.706490 0.693161 +vt 0.804411 0.303943 +vt 0.758865 0.386840 +vt 0.776323 0.284733 +vt 0.786953 0.406050 +vt 0.741407 0.488948 +vt 0.752036 0.610264 +vt 0.723948 0.591054 +vt 0.704915 0.385185 +vt 0.689031 0.282055 +vt 0.633210 0.445087 +vt 0.609124 0.254698 +vt 0.633210 0.254698 +vt 0.609124 0.445087 +vt 0.585038 0.254698 +vt 0.729554 0.445087 +vt 0.705468 0.254698 +vt 0.729554 0.254698 +vt 0.705468 0.445087 +vt 0.681382 0.254698 +vt 0.729554 0.528523 +vt 0.693425 0.486805 +vt 0.681382 0.445087 +vt 0.657296 0.254698 +vt 0.657296 0.445087 +vt 0.693425 0.212980 +vt 0.705468 0.171262 +vt 0.174122 0.039077 +vt 0.146848 0.207453 +vt 0.146848 0.039077 +vt 0.137452 0.253472 +vt 0.120204 0.496470 +vt 0.115056 0.284604 +vt 0.116729 0.523112 +vt 0.010671 0.691488 +vt 0.010671 0.523112 +vt 0.262417 0.523112 +vt 0.377689 0.691402 +vt 0.262417 0.691488 +vt 0.144003 0.523112 +vt 0.144003 0.691488 +vt 0.335824 0.207453 +vt 0.181059 0.178798 +vt 0.328887 0.178799 +vt 0.335823 0.039077 +vt 0.405772 0.207367 +vt 0.298993 0.239102 +vt 0.374633 0.470381 +vt 0.487456 0.523112 +vt 0.414701 0.691488 +vt 0.414701 0.523112 +vt 0.368906 0.234669 +vt 0.400385 0.417212 +vt 0.377689 0.523198 +vt 0.405771 0.039163 +vt 0.439344 0.207453 +vt 0.120204 0.718130 +vt 0.137452 0.961127 +vt 0.115056 0.929996 +vt 0.116729 0.691488 +vt 0.374633 0.744218 +vt 0.298993 0.975498 +vt 0.400385 0.797388 +vt 0.368906 0.979930 +vt 0.347149 0.651237 +vt 0.318160 0.540170 +vt 0.347149 0.540170 +vt 0.328887 0.067731 +vt 0.174122 0.207453 +vt 0.181059 0.067731 +vt 0.300481 0.540170 +vt 0.183748 0.540170 +vt 0.172309 0.461061 +vt 0.183748 0.651237 +vt 0.300481 0.651237 +vt 0.172308 0.730346 +vt 0.167631 0.540170 +vt 0.318160 0.651237 +vt 0.139466 0.540170 +vt 0.167631 0.651237 +vt 0.139466 0.651237 +vt 0.296233 0.330392 +vt 0.392444 0.443495 +vt 0.296233 0.443495 +vt 0.392444 0.556598 +vt 0.296233 0.556598 +vt 0.296233 0.669700 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.018569 0.175984 +vt 0.392444 0.782803 +vt 0.296233 0.782803 +vt 0.296233 0.895906 +vt 0.006900 0.330392 +vt 0.103083 0.443589 +vt 0.006873 0.443495 +vt 0.006845 0.556598 +vt 0.103028 0.669794 +vt 0.006818 0.669701 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.006790 0.782803 +vt 0.103001 0.782897 +vt 0.006763 0.895906 +vt 0.488888 0.330392 +vt 0.392677 0.443495 +vt 0.392677 0.330393 +vt 0.488888 0.443495 +vt 0.392677 0.556598 +vt 0.488888 0.556598 +vt 0.392677 0.669700 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.488888 0.669700 +vt 0.392677 0.782803 +vt 0.488888 0.782803 +vt 0.392677 0.895906 +vt 0.296000 0.330393 +vt 0.199789 0.443496 +vt 0.199789 0.330392 +vt 0.295999 0.443495 +vt 0.199789 0.556598 +vt 0.295999 0.669701 +vt 0.199789 0.669701 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.199789 0.782803 +vt 0.296000 0.782803 +vt 0.199789 0.895906 +vt 0.103344 0.330393 +vt 0.199555 0.443495 +vt 0.103344 0.443495 +vt 0.103344 0.556598 +vt 0.199555 0.669701 +vt 0.103344 0.669701 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.199555 0.782803 +vt 0.103344 0.782803 +vt 0.199555 0.895906 +vt 0.103344 0.895906 +vt 0.717118 0.814478 +vt 0.769494 0.508157 +vt 0.733164 0.219973 +vt 0.585038 0.445087 +vt 0.741597 0.486805 +vt 0.705468 0.528523 +vt 0.729554 0.171262 +vt 0.741597 0.212980 +vt 0.487456 0.691488 +vt 0.396853 0.271873 +vt 0.439343 0.039077 +vt 0.396853 0.942726 +vt 0.172344 0.517391 +vt 0.320137 0.461124 +vt 0.314202 0.517873 +vt 0.314202 0.673534 +vt 0.320137 0.730284 +vt 0.172344 0.674016 +vt 0.392444 0.330393 +vt 0.392444 0.669700 +vt 0.001075 0.068302 +vt 0.046875 0.001750 +vt 0.392444 0.895906 +vt 0.103111 0.330486 +vt 0.103056 0.556692 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vt 0.102974 0.895999 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vt 0.488888 0.895906 +vt 0.296000 0.556598 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vt 0.296000 0.895906 +vt 0.199555 0.330392 +vt 0.199555 0.556598 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vn 0.0192 -0.3102 -0.9505 +vn 0.0017 -1.0000 0.0013 +vn -0.0182 -0.3078 0.9513 +vn -0.0130 0.8097 0.5866 +vn 0.0102 0.8083 -0.5887 +vn -0.9998 -0.0017 -0.0197 +vn 0.8093 0.5874 0.0000 +vn 0.9133 -0.4072 0.0000 +vn 0.1040 -0.9946 0.0000 +vn -0.8093 -0.5874 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.9133 0.4072 0.0000 +vn -0.1040 0.9946 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.8477 -0.5305 -0.0013 +vn -0.8479 -0.5302 0.0000 +vn 0.0012 -0.0007 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.9834 0.1812 0.0000 +vn 0.9835 0.1807 -0.0002 +vn 0.0012 0.0005 -1.0000 +vn 0.9988 -0.0485 0.0000 +vn -1.0000 0.0003 -0.0029 +vn -1.0000 0.0051 -0.0032 +vn -1.0000 0.0044 -0.0018 +vn -0.9998 0.0177 -0.0031 +vn -0.9999 0.0164 0.0002 +vn -0.9999 0.0169 0.0032 +vn 0.0029 0.0020 -1.0000 +vn 0.0002 -0.0001 -1.0000 +vn 0.0001 0.0004 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0005 -0.0015 -1.0000 +vn 0.0000 -0.0016 -1.0000 +vn -0.0005 -0.0016 -1.0000 +vn 0.7297 0.6838 0.0005 +vn 0.7298 0.6837 0.0000 +vn 0.7296 0.6839 -0.0004 +vn -0.8045 0.5940 -0.0004 +vn -0.8046 0.5938 0.0000 +vn -0.8044 0.5941 0.0004 +vn 0.0007 -0.0011 1.0000 +vn 0.8479 -0.5302 0.0000 +vn 0.0013 -0.0000 1.0000 +vn -0.0001 -0.0001 1.0000 +vn 0.0033 0.0010 1.0000 +vn 0.0001 0.0004 1.0000 +vn 0.0000 -0.0016 1.0000 +vn 0.0005 -0.0016 1.0000 +vn -0.0005 -0.0014 1.0000 +vn -0.2007 0.9797 -0.0015 +vn -0.2010 0.9796 0.0000 +vn -0.2010 0.9796 -0.0016 +vn -0.9999 0.0098 0.0032 +vn -0.9999 0.0108 0.0014 +vn -1.0000 0.0092 -0.0031 +vn -0.9999 0.0102 -0.0013 +vn -1.0000 0.0086 -0.0004 +vn -0.9999 0.0103 0.0013 +vn -1.0000 0.0009 -0.0030 +vn -1.0000 0.0039 -0.0014 +vn -1.0000 0.0054 -0.0029 +vn -0.0007 0.0014 1.0000 +vn -0.0013 0.0009 -1.0000 +vn -1.0000 0.0037 0.0000 +vn -0.7102 -0.7040 0.0000 +vn -0.7737 0.6335 0.0000 +vn -0.0056 -1.0000 -0.0014 +vn -0.0050 -1.0000 0.0000 +vn -0.0058 -1.0000 0.0013 +vn -0.0904 -0.5808 -0.8090 +vn -0.1463 -0.9397 0.3090 +vn 0.9881 -0.1538 -0.0000 +vn 0.1463 0.9397 0.3090 +vn 0.0904 0.5808 -0.8090 +vn 0.1198 -0.5754 -0.8090 +vn 0.1938 -0.9311 0.3090 +vn 0.9790 0.2038 0.0000 +vn -0.1938 0.9311 0.3090 +vn -0.1198 0.5754 -0.8090 +vn 0.0750 -0.5830 -0.8090 +vn 0.1214 -0.9433 0.3090 +vn 0.9918 0.1276 -0.0000 +vn -0.1214 0.9433 0.3090 +vn -0.0750 0.5830 -0.8090 +vn 0.0560 -0.5851 -0.8090 +vn 0.0906 -0.9467 0.3090 +vn 0.9955 0.0952 0.0000 +vn -0.0906 0.9467 0.3090 +vn -0.0560 0.5851 -0.8090 +vn -0.0073 -0.5877 -0.8090 +vn -0.0118 -0.9510 0.3090 +vn 0.9999 -0.0124 0.0000 +vn 0.0118 0.9510 0.3090 +vn 0.0073 0.5877 -0.8090 +vn -0.8479 -0.5302 -0.0013 +vn -0.8473 -0.5311 0.0008 +vn 0.0013 -0.0001 -1.0000 +vn 0.9835 0.1812 0.0005 +vn 0.9835 0.1810 -0.0005 +vn 0.0005 0.0013 -1.0000 +vn 0.0031 -0.0010 -1.0000 +vn -1.0000 0.0009 0.0029 +vn -1.0000 0.0052 0.0037 +vn -1.0000 0.0052 0.0019 +vn -0.9998 0.0196 -0.0016 +vn -0.9999 0.0169 -0.0005 +vn -0.9999 0.0167 0.0005 +vn 0.0001 0.0038 -1.0000 +vn 0.0004 0.0002 -1.0000 +vn -0.0005 0.0004 -1.0000 +vn 0.0004 -0.0013 -1.0000 +vn 0.7294 0.6840 0.0000 +vn -0.8043 0.5942 -0.0000 +vn 0.0013 -0.0003 1.0000 +vn 0.0022 -0.0023 1.0000 +vn 0.0010 0.0009 1.0000 +vn -0.0005 0.0005 1.0000 +vn -0.0000 0.0001 1.0000 +vn 0.0013 0.0035 1.0000 +vn 0.0005 -0.0015 1.0000 +vn -0.1997 0.9799 -0.0008 +vn -1.0000 0.0087 0.0029 +vn -0.9999 0.0103 -0.0016 +vn -0.9999 0.0107 -0.0012 +vn -1.0000 0.0094 -0.0014 +vn -0.9999 0.0100 0.0015 +vn -1.0000 0.0007 0.0016 +vn -1.0000 0.0020 0.0032 +vn -1.0000 0.0051 0.0033 +vn -0.0015 0.0004 1.0000 +vn -0.0001 0.0015 1.0000 +vn -0.0014 -0.0007 1.0000 +vn -0.0015 -0.0003 1.0000 +vn 0.0015 0.0005 -1.0000 +vn 0.0008 0.0013 -1.0000 +vn -0.0003 0.0015 -1.0000 +vn -0.0015 0.0002 -1.0000 +vn -0.0065 -1.0000 -0.0003 +s off +f 84/157/35 86/158/35 83/159/35 +f 85/160/36 88/161/36 86/162/36 +f 87/163/37 90/164/37 88/161/37 +f 90/164/38 91/165/38 92/166/38 +f 91/165/39 83/159/39 92/166/39 +f 86/162/40 90/167/40 92/168/40 +f 94/169/41 96/170/41 93/171/41 +f 95/172/42 98/173/42 96/170/42 +f 97/174/43 100/175/43 98/176/43 +f 99/177/44 102/178/44 100/175/44 +f 94/179/45 101/180/45 97/174/45 +f 101/181/46 104/182/46 102/178/46 +f 103/183/47 93/171/47 104/182/47 +f 100/175/48 102/184/48 104/185/48 +f 106/186/49 108/187/50 105/188/50 +f 107/189/51 110/190/48 108/191/48 +f 110/192/52 105/193/52 108/194/52 +f 113/195/53 115/196/54 112/197/53 +f 107/189/55 113/195/48 109/198/48 +f 109/198/56 112/197/56 117/199/56 +f 116/200/57 118/201/58 119/202/59 +f 120/203/60 122/204/61 116/200/62 +f 116/205/63 114/206/64 113/195/65 +f 124/207/66 126/208/66 123/209/66 +f 122/210/67 123/211/68 114/206/69 +f 114/212/70 126/208/71 115/196/72 +f 121/213/73 124/214/74 122/204/75 +f 111/215/45 106/216/76 105/217/45 +f 110/192/77 117/199/77 111/218/77 +f 112/197/45 106/216/78 117/199/45 +f 115/219/79 120/220/80 112/197/81 +f 126/221/82 121/222/83 115/219/84 +f 119/223/85 129/224/86 127/225/87 +f 116/200/88 127/226/89 120/203/90 +f 106/186/91 118/201/92 107/227/93 +f 120/203/94 130/228/95 106/186/96 +f 131/229/45 132/230/45 130/231/97 +f 135/232/48 136/233/48 118/234/98 +f 132/230/99 136/233/99 135/232/99 +f 135/232/100 133/235/100 132/230/100 +f 128/236/101 131/229/101 129/224/101 +f 130/237/102 134/238/103 118/239/104 +f 137/240/105 139/241/105 140/242/105 +f 140/242/106 141/243/106 142/244/106 +f 141/243/45 144/245/45 142/244/45 +f 145/246/107 143/247/107 141/248/107 +f 144/245/108 145/249/108 146/250/108 +f 145/249/109 137/251/109 146/250/109 +f 147/252/110 149/253/110 150/254/110 +f 149/253/111 152/255/111 150/254/111 +f 152/255/45 153/256/45 154/257/45 +f 148/258/112 155/259/112 153/260/112 +f 153/256/113 156/261/113 154/257/113 +f 155/262/114 147/263/114 156/261/114 +f 158/264/115 160/265/115 157/266/115 +f 159/267/116 162/268/116 160/265/116 +f 161/269/45 164/270/45 162/268/45 +f 158/271/117 165/272/117 163/273/117 +f 163/274/118 166/275/118 164/270/118 +f 165/276/119 157/277/119 166/275/119 +f 168/278/120 170/279/120 167/280/120 +f 169/281/121 172/282/121 170/279/121 +f 172/282/45 173/283/45 174/284/45 +f 168/285/122 175/286/122 173/287/122 +f 173/283/123 176/288/123 174/284/123 +f 175/289/124 167/290/124 176/288/124 +f 177/291/125 179/292/125 180/293/125 +f 179/292/126 182/294/126 180/293/126 +f 182/294/45 183/295/45 184/296/45 +f 178/297/127 185/298/127 183/299/127 +f 184/296/128 185/300/128 186/301/128 +f 186/301/129 178/302/129 177/303/129 +f 84/157/35 85/304/35 86/158/35 +f 85/160/36 87/163/36 88/161/36 +f 87/163/37 89/305/37 90/164/37 +f 90/164/38 89/305/38 91/165/38 +f 91/165/39 84/157/39 83/159/39 +f 92/168/40 83/306/40 86/162/40 +f 86/162/40 88/161/40 90/167/40 +f 94/169/41 95/172/41 96/170/41 +f 95/172/42 97/307/42 98/173/42 +f 97/174/43 99/177/43 100/175/43 +f 99/177/44 101/181/44 102/178/44 +f 97/174/45 95/308/45 94/179/45 +f 94/179/45 103/309/45 101/180/45 +f 101/180/45 99/177/45 97/174/45 +f 101/181/46 103/183/46 104/182/46 +f 103/183/47 94/169/47 93/171/47 +f 104/185/48 93/310/48 96/311/48 +f 96/311/48 98/176/48 104/185/48 +f 98/176/48 100/175/48 104/185/48 +f 106/186/130 107/227/131 108/187/50 +f 107/189/132 109/198/48 110/190/48 +f 110/192/52 111/218/52 105/193/52 +f 113/195/53 114/212/133 115/196/134 +f 107/189/135 116/205/136 113/195/48 +f 109/198/56 113/195/56 112/197/56 +f 116/200/137 107/227/138 118/201/139 +f 120/203/140 121/213/141 122/204/142 +f 116/205/143 122/210/144 114/206/145 +f 124/207/66 125/312/66 126/208/66 +f 122/210/146 124/313/68 123/211/68 +f 114/212/147 123/209/71 126/208/71 +f 121/213/148 125/314/74 124/214/74 +f 111/215/45 117/199/45 106/216/149 +f 110/192/77 109/198/77 117/199/77 +f 112/197/45 120/220/150 106/216/151 +f 115/219/152 121/222/153 120/220/154 +f 126/221/82 125/315/82 121/222/155 +f 119/223/156 128/236/86 129/224/86 +f 116/200/157 119/202/92 127/226/158 +f 106/186/159 130/228/160 118/201/161 +f 120/203/162 127/226/163 130/228/164 +f 133/316/45 130/231/165 132/230/45 +f 130/231/166 127/317/167 131/229/45 +f 127/317/168 129/318/45 131/229/45 +f 128/319/48 119/320/169 136/233/48 +f 119/320/170 118/234/171 136/233/48 +f 118/234/172 134/321/48 135/232/48 +f 132/230/99 131/229/99 136/233/99 +f 135/232/100 134/238/100 133/235/100 +f 128/236/101 136/233/101 131/229/101 +f 130/237/173 133/235/103 134/238/103 +f 137/240/105 138/322/105 139/241/105 +f 140/242/106 139/241/106 141/243/106 +f 141/243/45 143/323/45 144/245/45 +f 141/248/107 139/324/107 138/325/107 +f 138/325/107 145/246/107 141/248/107 +f 144/245/108 143/323/108 145/249/108 +f 145/249/109 138/326/109 137/251/109 +f 147/252/110 148/327/110 149/253/110 +f 149/253/111 151/328/111 152/255/111 +f 152/255/45 151/328/45 153/256/45 +f 151/329/112 149/330/112 153/260/112 +f 149/330/112 148/258/112 153/260/112 +f 153/256/113 155/262/113 156/261/113 +f 155/262/114 148/331/114 147/263/114 +f 158/264/115 159/267/115 160/265/115 +f 159/267/116 161/269/116 162/268/116 +f 161/269/45 163/274/45 164/270/45 +f 161/332/117 159/333/117 163/273/117 +f 159/333/117 158/271/117 163/273/117 +f 163/274/118 165/276/118 166/275/118 +f 165/276/119 158/334/119 157/277/119 +f 168/278/120 169/281/120 170/279/120 +f 169/281/121 171/335/121 172/282/121 +f 172/282/45 171/335/45 173/283/45 +f 171/336/122 169/337/122 173/287/122 +f 169/337/122 168/285/122 173/287/122 +f 173/283/123 175/289/123 176/288/123 +f 175/289/124 168/338/124 167/290/124 +f 177/291/125 178/339/125 179/292/125 +f 179/292/126 181/340/126 182/294/126 +f 182/294/45 181/340/45 183/295/45 +f 181/341/127 179/342/127 183/299/127 +f 179/342/127 178/297/127 183/299/127 +f 184/296/128 183/295/128 185/300/128 +f 186/301/129 185/300/129 178/302/129 +o Based +v -0.476324 0.117178 -1.155649 +v -0.476324 0.976271 -1.155649 +v 0.480355 0.976271 -1.153979 +v 0.480355 0.117178 -1.153979 +v 1.155649 0.976271 -0.476324 +v 1.155649 0.117178 -0.476324 +v 1.153979 0.976271 0.480355 +v 1.153979 0.117178 0.480355 +v 0.476324 0.976271 1.155649 +v 0.476324 0.117178 1.155649 +v -0.480355 0.976271 1.153980 +v -0.480355 0.117178 1.153980 +v -1.155649 0.976271 0.476324 +v -1.155649 0.117178 0.476324 +v 0.795350 1.043438 0.331072 +v 0.328294 1.043438 0.796501 +v -1.153980 0.976271 -0.480355 +v -1.153980 0.117178 -0.480355 +v 0.360808 0.117178 0.875387 +v 0.874122 0.117178 0.363862 +v -0.328294 1.043438 -0.796501 +v -0.795350 1.043438 -0.331072 +v -1.093998 1.088246 -0.455387 +v -0.451566 1.088246 -1.095581 +v -0.796501 1.043438 0.328294 +v 0.331072 1.043438 -0.795350 +v 0.796501 1.043438 -0.328294 +v -0.331072 1.043438 0.795350 +v 0.451566 1.088246 1.095581 +v 1.093998 1.088246 0.455387 +v 1.093998 1.310994 0.455387 +v 0.451566 1.310995 1.095581 +v -0.455387 1.088246 1.093998 +v -1.095581 1.088246 0.451566 +v 0.455387 1.088246 -1.093998 +v 1.095581 1.088246 -0.451566 +v -0.451566 1.310994 -1.095581 +v -1.093998 1.310994 -0.455387 +v -0.668254 1.435045 -0.278167 +v -0.275833 1.435045 -0.669221 +v 0.455387 1.310994 -1.093998 +v 1.095581 1.310994 -0.451566 +v -1.095581 1.310994 0.451566 +v -0.455387 1.310995 1.093998 +v -0.278167 1.435045 0.668254 +v 0.275833 1.435045 0.669221 +v 0.436165 1.536411 1.058215 +v -0.439856 1.536411 1.056686 +v -0.669221 1.435045 0.275833 +v 0.668254 1.435045 0.278168 +v 0.278167 1.435045 -0.668254 +v 0.669221 1.435045 -0.275833 +v 1.056686 1.536411 0.439856 +v 1.058215 1.536411 -0.436165 +v 1.058215 1.707899 -0.436165 +v 1.056686 1.707899 0.439856 +v -0.436165 1.536411 -1.058215 +v 0.439856 1.536411 -1.056686 +v -1.056686 1.536411 -0.439856 +v -1.058215 1.536411 0.436165 +v -1.056686 1.707899 -0.439856 +v -1.058215 1.707899 0.436165 +v -0.741679 1.821139 0.305698 +v -0.740608 1.821139 -0.308285 +v -0.436165 1.707899 -1.058215 +v 0.439856 1.707899 -1.056686 +v -0.439856 1.707899 1.056686 +v 0.436165 1.707899 1.058215 +v 0.308285 1.821139 -0.740607 +v 0.305698 1.821139 0.741679 +v 0.740607 1.821139 0.308285 +v 0.741679 1.821139 -0.305698 +v -0.308285 1.821139 0.740608 +v -0.305698 1.821139 -0.741679 +v -0.598298 -0.513317 0.246601 +v -0.597434 -0.513317 -0.248688 +v -0.597434 -1.343910 -0.248688 +v -0.598298 -1.343910 0.246601 +v -0.874122 0.117178 -0.363862 +v -0.875387 0.117178 0.360808 +v 0.875387 0.117178 -0.360808 +v 0.363862 0.117178 -0.874122 +v -0.363862 0.117178 0.874122 +v -0.360808 0.117178 -0.875387 +v -0.248688 -1.343910 0.597434 +v -0.975065 -1.373442 0.401893 +v -0.260556 -1.373442 0.625947 +v 0.246601 -0.513317 0.598298 +v -0.248688 -0.513317 0.597434 +v 0.246601 -1.343910 0.598298 +v 0.598298 -0.513317 -0.246601 +v 0.597434 -0.513317 0.248688 +v 0.597434 -1.343910 0.248688 +v 0.598298 -1.343910 -0.246601 +v -0.246601 -0.513317 -0.598298 +v 0.248688 -0.513317 -0.597434 +v 0.248688 -1.343910 -0.597434 +v -0.246601 -1.343910 -0.598298 +v -0.401893 -1.373442 -0.975065 +v 0.260556 -1.373442 -0.625947 +v 0.026543 -3.162143 -0.063765 +v -0.026320 -3.162143 -0.063857 +v 0.401893 -1.373442 0.975065 +v 0.625947 -1.373442 0.260556 +v 0.975065 -1.373442 -0.401893 +v -0.625947 -1.373442 -0.260556 +v -0.063765 -3.162143 -0.026543 +v 0.063857 -3.162143 -0.026320 +v 0.063765 -3.162143 0.026543 +v 0.026320 -3.162143 0.063857 +v -0.026543 -3.162143 0.063765 +v -0.063857 -3.162143 0.026320 +v 0.875387 -0.493910 -0.360808 +v 0.363862 -0.493910 -0.874122 +v 0.360808 -0.493910 0.875387 +v 0.874122 -0.493910 0.363862 +v -0.875387 -0.493910 0.360808 +v -0.363862 -0.493910 0.874122 +v -0.360808 -0.493910 -0.875387 +v -0.874122 -0.493910 -0.363862 +vt 0.872281 0.534636 +vt 0.822605 0.440198 +vt 0.875179 0.442976 +vt 0.820879 0.535179 +vt 0.768775 0.440298 +vt 0.767922 0.537229 +vt 0.714298 0.442725 +vt 0.714505 0.541417 +vt 0.658847 0.447191 +vt 0.660811 0.548715 +vt 0.600787 0.455120 +vt 0.606527 0.561669 +vt 0.537111 0.472517 +vt 0.661796 0.599848 +vt 0.969815 0.546227 +vt 0.925836 0.449611 +vt 0.974197 0.459371 +vt 0.921409 0.536355 +vt 0.706920 0.410802 +vt 0.870965 0.582319 +vt 0.918532 0.621801 +vt 0.869895 0.625279 +vt 0.919468 0.579715 +vt 0.767151 0.587629 +vt 0.609953 0.614303 +vt 0.819840 0.584762 +vt 0.714307 0.592268 +vt 0.546180 0.587418 +vt 0.609488 0.614399 +vt 0.561893 0.633359 +vt 0.713660 0.637878 +vt 0.663905 0.672730 +vt 0.662170 0.645110 +vt 0.556909 0.669718 +vt 0.819372 0.584716 +vt 0.766099 0.632876 +vt 0.961927 0.579016 +vt 0.661318 0.599870 +vt 0.611495 0.657113 +vt 0.766676 0.587587 +vt 0.870515 0.582267 +vt 0.818794 0.629251 +vt 0.919502 0.647338 +vt 0.870564 0.722266 +vt 0.870950 0.652394 +vt 0.767039 0.661357 +vt 0.970789 0.617301 +vt 0.613830 0.683727 +vt 0.714777 0.666196 +vt 0.819852 0.657475 +vt 0.558526 0.700429 +vt 0.663565 0.740854 +vt 0.614306 0.808200 +vt 0.616028 0.750600 +vt 0.574708 0.758346 +vt 0.714777 0.731739 +vt 0.664222 0.740881 +vt 0.767606 0.738395 +vt 0.962072 0.696043 +vt 0.919547 0.710030 +vt 0.766904 0.738360 +vt 0.715448 0.731786 +vt 0.869882 0.722252 +vt 0.819198 0.730314 +vt 0.765363 0.804002 +vt 0.712805 0.821896 +vt 0.712657 0.800660 +vt 0.818059 0.798447 +vt 0.922396 0.776157 +vt 0.870630 0.789375 +vt 0.565344 0.801835 +vt 0.662868 0.804960 +vt 0.980256 0.749479 +vt 0.982717 0.772283 +vt 0.938005 0.838340 +vt 0.924472 0.797426 +vt 0.818967 0.820347 +vt 0.871953 0.811076 +vt 0.564639 0.823456 +vt 0.663355 0.825332 +vt 0.765636 0.825797 +vt 0.614358 0.828508 +vt 0.869617 0.140202 +vt 0.858526 0.118021 +vt 0.858526 0.086653 +vt 0.622295 0.865615 +vt 0.756986 0.865737 +vt 0.719958 0.863003 +vt 0.865806 0.853105 +vt 0.828669 0.859602 +vt 0.919235 0.839751 +vt 0.882425 0.849319 +vt 0.571106 0.862348 +vt 0.671410 0.862747 +vt 0.774657 0.865888 +vt 0.943459 0.333805 +vt 0.972733 0.254883 +vt 0.968497 0.338857 +vt 0.969761 0.429873 +vt 0.816063 0.408694 +vt 0.650647 0.414159 +vt 0.920664 0.419148 +vt 0.869210 0.411858 +vt 0.761814 0.408697 +vt 0.590519 0.419948 +vt 0.715887 0.601468 +vt 0.699719 0.537434 +vt 0.702832 0.537392 +vt 0.609944 0.311349 +vt 0.636562 0.206427 +vt 0.640004 0.307244 +vt 0.725952 0.309036 +vt 0.753103 0.213184 +vt 0.754156 0.307779 +vt 0.836980 0.312416 +vt 0.865404 0.222565 +vt 0.864198 0.313854 +vt 0.891447 0.320806 +vt 0.920554 0.236280 +vt 0.917673 0.324242 +vt 0.541839 0.312744 +vt 0.567253 0.193170 +vt 0.574805 0.303737 +vt 0.669491 0.310634 +vt 0.696260 0.212038 +vt 0.698198 0.308322 +vt 0.781694 0.308754 +vt 0.809519 0.215232 +vt 0.809563 0.308702 +vt 0.797002 0.537432 +vt 0.928156 0.546644 +vt 0.799286 0.639227 +vt 0.715423 0.471720 +vt 0.748360 0.440271 +vt 0.748360 0.446543 +vt 0.781298 0.471719 +vt 0.793889 0.537390 +vt 0.748361 0.632265 +vt 0.697436 0.639229 +vt 0.696489 0.433976 +vt 0.800231 0.433973 +vt 0.780835 0.601467 +vt 0.748361 0.626098 +vt 0.826511 0.104116 +vt 0.820289 0.109271 +vt 0.817711 0.096826 +vt 0.751735 0.893085 +vt 0.748362 0.892239 +vt 0.568565 0.546652 +vt 0.568958 0.539856 +vt 0.744926 0.174843 +vt 0.748359 0.175704 +vt 0.928221 0.533067 +vt 0.927763 0.539848 +vt 0.744990 0.893085 +vt 0.568500 0.533075 +vt 0.751791 0.174843 +vt 0.775288 0.408770 +vt 0.816031 0.339926 +vt 0.664918 0.414184 +vt 0.705494 0.339963 +vt 0.542285 0.433126 +vt 0.584963 0.338601 +vt 0.882292 0.414121 +vt 0.922784 0.354432 +vt 0.829386 0.409754 +vt 0.870098 0.344694 +vt 0.720548 0.410535 +vt 0.761039 0.339101 +vt 0.606666 0.420165 +vt 0.648114 0.339985 +vt 0.933129 0.422480 +vt 0.972879 0.368090 +vt 0.713828 0.592247 +vt 0.919042 0.579655 +vt 0.918905 0.710085 +vt 0.970969 0.646088 +vt 0.615414 0.750609 +vt 0.818497 0.730271 +vt 0.978827 0.820718 +vt 0.869617 0.064471 +vt 0.885301 0.064472 +vt 0.896391 0.086653 +vt 0.896391 0.118021 +vt 0.885301 0.140202 +vt 0.656636 0.863389 +vt 0.605953 0.865889 +vt 0.706068 0.860339 +vt 0.812036 0.862068 +vt 0.947696 0.249830 +vt 0.606502 0.210532 +vt 0.724899 0.214440 +vt 0.838185 0.221126 +vt 0.894328 0.232845 +vt 0.534287 0.202177 +vt 0.667552 0.214350 +vt 0.781651 0.215285 +vt 0.820289 0.091671 +vt 0.823934 0.091671 +vt 0.826511 0.096826 +vt 0.823934 0.109271 +vt 0.817711 0.104116 +vt 0.775256 0.340002 +vt 0.663491 0.343346 +vt 0.536729 0.351779 +vt 0.884412 0.349406 +vt 0.830274 0.342590 +vt 0.719773 0.340939 +vt 0.604134 0.345991 +vt 0.936246 0.360697 +vn 0.0017 0.0000 -1.0000 +vn 0.7083 0.0000 -0.7059 +vn 1.0000 0.0000 0.0017 +vn 0.7059 -0.0000 0.7083 +vn -0.0017 0.0000 1.0000 +vn -0.7083 0.0000 0.7059 +vn 0.1299 0.9829 0.1303 +vn -1.0000 0.0000 -0.0017 +vn -0.7059 0.0000 -0.7083 +vn -0.0000 -1.0000 0.0000 +vn -0.1047 -0.9889 -0.1050 +vn -0.1840 0.9829 -0.0003 +vn 0.1303 0.9829 -0.1299 +vn -0.0003 0.9829 0.1840 +vn -0.1299 0.9829 -0.1303 +vn 0.0003 0.9829 -0.1840 +vn 0.1840 0.9829 0.0003 +vn -0.1303 0.9829 0.1299 +vn -0.1050 -0.9889 0.1047 +vn 0.1047 -0.9889 0.1050 +vn 0.1050 -0.9889 -0.1047 +vn -0.1483 -0.9889 -0.0003 +vn -0.0003 -0.9889 0.1483 +vn 0.1483 -0.9889 0.0003 +vn 0.0003 -0.9889 -0.1483 +vn -0.1973 0.9601 -0.1980 +vn -0.0004 -0.9676 0.2523 +vn -0.1980 0.9601 0.1973 +vn 0.1973 0.9601 0.1980 +vn 0.1980 0.9601 -0.1973 +vn -0.2796 0.9601 -0.0005 +vn -0.0005 0.9601 0.2796 +vn 0.2796 0.9601 0.0005 +vn 0.0005 0.9601 -0.2796 +vn 0.2523 -0.9676 0.0004 +vn 0.0004 -0.9676 -0.2523 +vn -0.1781 -0.9676 -0.1787 +vn -0.1787 -0.9676 0.1781 +vn 0.1781 -0.9676 0.1787 +vn 0.1787 -0.9676 -0.1781 +vn -0.2523 -0.9676 -0.0004 +vn -0.3371 0.9415 -0.0006 +vn 0.0000 1.0000 0.0000 +vn -0.0006 0.9415 0.3371 +vn 0.3371 0.9415 0.0006 +vn 0.0006 0.9415 -0.3371 +vn -0.2379 0.9415 -0.2388 +vn -0.2388 0.9415 0.2379 +vn 0.2379 0.9415 0.2388 +vn 0.2388 0.9415 -0.2379 +vn -0.5094 0.6948 0.5076 +vn 0.4397 -0.3327 -0.8343 +vn 0.5076 0.6948 0.5094 +vn 0.5094 0.6948 -0.5076 +vn -0.0995 0.9937 -0.0524 +vn -0.0524 0.9937 0.0995 +vn 0.0995 0.9937 0.0524 +vn 0.0524 0.9937 -0.0995 +vn -0.5076 0.6948 -0.5094 +vn -0.6733 -0.3000 -0.6757 +vn -0.6757 -0.3000 0.6733 +vn 0.6733 -0.3000 0.6757 +vn 0.6757 -0.3000 -0.6733 +vn -0.8343 -0.3327 -0.4397 +vn -0.4397 -0.3327 0.8343 +vn 0.8343 -0.3327 0.4397 +vn 0.0495 -0.9976 -0.0494 +vn 0.0494 -0.9976 0.0495 +vn -0.0495 -0.9976 0.0494 +vn -0.0494 -0.9976 -0.0495 +vn 0.0001 -0.9976 -0.0699 +vn 0.0699 -0.9976 0.0001 +vn -0.0001 -0.9976 0.0699 +vn -0.0699 -0.9976 -0.0001 +vn -0.0337 0.9937 0.1073 +vn 0.0017 -0.3000 -0.9539 +vn 0.1073 0.9937 0.0337 +vn 0.0337 0.9937 -0.1073 +vn -0.7192 0.6948 -0.0013 +vn -0.0013 0.6948 0.7192 +vn 0.7192 0.6948 0.0013 +vn 0.0013 0.6948 -0.7192 +vn -0.1073 0.9937 -0.0337 +vn -0.8998 -0.3327 -0.2822 +vn -0.2822 -0.3327 0.8998 +vn 0.8998 -0.3327 0.2822 +vn 0.2822 -0.3327 -0.8998 +vn -0.9539 -0.3000 -0.0017 +vn -0.0017 -0.3000 0.9539 +vn 0.9539 -0.3000 0.0017 +s off +f 188/343/174 190/344/174 187/345/174 +f 189/346/175 192/347/175 190/344/175 +f 191/348/176 194/349/176 192/347/176 +f 193/350/177 196/351/177 194/349/177 +f 195/352/178 198/353/178 196/351/178 +f 197/354/179 200/355/179 198/353/179 +f 193/350/180 202/356/180 195/352/180 +f 199/357/181 204/358/181 200/359/181 +f 203/360/182 187/345/182 204/358/182 +f 196/351/183 206/361/183 194/349/183 +f 207/362/184 209/363/184 210/364/184 +f 199/357/185 208/365/185 203/360/185 +f 189/346/186 213/366/186 191/348/186 +f 195/352/187 214/367/187 197/354/187 +f 203/360/188 207/362/188 188/343/188 +f 188/343/189 212/368/189 189/346/189 +f 191/348/190 201/369/190 193/350/190 +f 199/370/191 214/371/191 211/372/191 +f 216/373/177 218/374/177 215/375/177 +f 214/371/192 220/376/192 211/372/192 +f 202/356/193 216/373/193 215/375/193 +f 212/377/194 222/378/194 213/366/194 +f 211/379/195 209/363/195 208/365/195 +f 202/380/196 219/381/196 214/367/196 +f 213/382/197 216/373/197 201/369/197 +f 207/383/198 221/384/198 212/368/198 +f 224/385/199 226/386/199 223/387/199 +f 221/384/175 228/388/175 222/378/175 +f 220/389/181 224/385/181 209/363/181 +f 215/375/178 230/390/178 219/381/178 +f 222/378/176 217/391/176 216/373/176 +f 210/364/174 227/392/174 221/384/174 +f 209/363/182 223/387/182 210/364/182 +f 219/381/179 229/393/179 220/376/179 +f 232/394/200 234/395/200 231/396/200 +f 230/390/201 235/397/201 229/393/201 +f 218/374/202 236/398/202 232/399/202 +f 227/392/203 238/400/203 228/388/203 +f 224/385/204 235/401/204 225/402/204 +f 218/374/205 231/396/205 230/390/205 +f 217/391/206 238/403/206 236/404/206 +f 227/392/207 226/405/207 237/406/207 +f 240/407/176 242/408/176 239/409/176 +f 238/403/208 239/409/208 236/404/208 +f 226/405/209 244/410/209 237/406/209 +f 226/386/210 245/411/210 243/412/210 +f 235/397/211 234/395/211 246/413/211 +f 236/398/212 233/414/212 232/399/212 +f 238/400/213 244/410/213 240/407/213 +f 225/402/214 246/415/214 245/411/214 +f 248/416/215 250/417/215 247/418/215 +f 243/412/174 252/419/174 244/410/174 +f 245/411/182 251/420/182 243/412/182 +f 234/395/179 248/421/179 246/413/179 +f 239/409/177 254/422/177 233/414/177 +f 244/410/175 241/423/175 240/407/175 +f 246/415/181 247/418/181 245/411/181 +f 233/414/178 253/424/178 234/395/178 +f 260/425/216 250/426/216 249/427/216 +f 254/422/217 259/428/217 253/424/217 +f 242/408/218 258/429/218 257/430/218 +f 252/419/219 260/431/219 255/432/219 +f 251/420/220 250/433/220 260/434/220 +f 253/424/221 249/435/221 248/421/221 +f 242/408/222 256/436/222 254/422/222 +f 252/419/223 258/437/223 241/423/223 +f 262/438/181 264/439/181 261/440/181 +f 204/358/183 266/441/183 200/359/183 +f 192/347/183 268/442/183 190/344/183 +f 198/353/183 205/443/183 196/351/183 +f 187/345/183 265/444/183 204/358/183 +f 190/344/183 270/445/183 187/345/183 +f 194/349/183 267/446/183 192/347/183 +f 200/355/183 269/447/183 198/353/183 +f 264/448/224 273/449/224 271/450/224 +f 275/451/178 276/452/178 274/453/178 +f 278/454/176 280/455/176 277/456/176 +f 282/457/174 284/458/174 281/459/174 +f 281/460/182 263/461/182 262/462/182 +f 261/463/179 271/464/179 275/465/179 +f 274/466/177 279/467/177 278/468/177 +f 277/469/175 283/470/175 282/471/175 +f 286/472/225 288/473/225 285/474/225 +f 276/475/226 290/476/226 279/477/226 +f 280/478/227 286/472/227 283/479/227 +f 264/448/228 292/480/228 272/481/228 +f 276/475/229 273/449/229 289/482/229 +f 280/478/230 290/476/230 291/483/230 +f 284/484/231 286/472/231 285/474/231 +f 284/484/232 292/480/232 263/485/232 +f 294/486/183 296/487/183 298/488/183 +f 292/480/233 288/489/233 293/490/233 +f 273/449/234 298/491/234 297/492/234 +f 290/476/235 296/493/235 295/494/235 +f 286/472/236 294/495/236 287/496/236 +f 292/480/237 298/497/237 272/481/237 +f 273/449/238 296/498/238 289/482/238 +f 290/476/239 294/499/239 291/483/239 +f 267/500/175 300/501/175 268/442/175 +f 300/501/240 277/469/240 282/471/240 +f 205/502/177 302/503/177 206/361/177 +f 302/503/241 274/466/241 278/468/241 +f 266/504/179 304/505/179 269/447/179 +f 304/505/242 261/463/242 275/465/242 +f 270/506/182 306/507/182 265/444/182 +f 306/507/243 281/460/243 262/462/243 +f 268/508/174 305/509/174 270/445/174 +f 305/509/244 282/457/244 281/459/244 +f 206/510/176 299/511/176 267/446/176 +f 299/511/245 278/454/245 277/456/245 +f 269/512/178 301/513/178 205/443/178 +f 301/513/246 275/451/246 274/453/246 +f 265/514/181 303/515/181 266/441/181 +f 303/515/247 262/438/247 261/440/247 +f 188/343/174 189/346/174 190/344/174 +f 189/346/175 191/348/175 192/347/175 +f 191/348/176 193/350/176 194/349/176 +f 193/350/177 195/352/177 196/351/177 +f 195/352/178 197/354/178 198/353/178 +f 197/354/179 199/370/179 200/355/179 +f 193/350/180 201/516/180 202/356/180 +f 199/357/181 203/360/181 204/358/181 +f 203/360/182 188/343/182 187/345/182 +f 196/351/183 205/502/183 206/361/183 +f 207/362/184 208/517/184 209/363/184 +f 199/357/185 211/379/185 208/365/185 +f 189/346/186 212/377/186 213/366/186 +f 195/352/187 202/380/187 214/367/187 +f 203/360/188 208/517/188 207/362/188 +f 188/343/189 207/383/189 212/368/189 +f 191/348/190 213/382/190 201/369/190 +f 199/370/191 197/354/191 214/371/191 +f 216/373/177 217/391/177 218/374/177 +f 214/371/192 219/381/192 220/376/192 +f 202/356/193 201/516/193 216/373/193 +f 212/377/194 221/384/194 222/378/194 +f 211/379/195 220/389/195 209/363/195 +f 202/380/196 215/375/196 219/381/196 +f 213/382/197 222/378/197 216/373/197 +f 207/383/198 210/364/198 221/384/198 +f 224/385/199 225/518/199 226/386/199 +f 221/384/175 227/392/175 228/388/175 +f 220/389/181 229/519/181 224/385/181 +f 215/375/178 218/374/178 230/390/178 +f 222/378/176 228/388/176 217/391/176 +f 210/364/174 223/387/174 227/392/174 +f 209/363/182 224/385/182 223/387/182 +f 219/381/179 230/390/179 229/393/179 +f 232/394/200 233/414/200 234/395/200 +f 230/390/201 231/520/201 235/397/201 +f 218/374/202 217/391/202 236/398/202 +f 227/392/203 237/521/203 238/400/203 +f 224/385/204 229/519/204 235/401/204 +f 218/374/205 232/394/205 231/396/205 +f 217/391/206 228/388/206 238/403/206 +f 227/392/207 223/387/207 226/405/207 +f 240/407/176 241/423/176 242/408/176 +f 238/403/208 240/407/208 239/409/208 +f 226/405/209 243/412/209 244/410/209 +f 226/386/210 225/518/210 245/411/210 +f 235/397/211 231/520/211 234/395/211 +f 236/398/212 239/409/212 233/414/212 +f 238/400/213 237/521/213 244/410/213 +f 225/402/214 235/401/214 246/415/214 +f 248/416/215 249/522/215 250/417/215 +f 243/412/174 251/420/174 252/419/174 +f 245/411/182 247/418/182 251/420/182 +f 234/395/179 253/424/179 248/421/179 +f 239/409/177 242/408/177 254/422/177 +f 244/410/175 252/419/175 241/423/175 +f 246/415/181 248/416/181 247/418/181 +f 233/414/178 254/422/178 253/424/178 +f 249/427/216 259/523/216 256/524/216 +f 256/524/216 257/525/216 249/427/216 +f 257/525/216 258/526/216 249/427/216 +f 258/526/216 255/527/216 249/427/216 +f 255/527/216 260/425/216 249/427/216 +f 254/422/217 256/528/217 259/428/217 +f 242/408/218 241/423/218 258/429/218 +f 252/419/219 251/420/219 260/431/219 +f 251/420/220 247/418/220 250/433/220 +f 253/424/221 259/529/221 249/435/221 +f 242/408/222 257/530/222 256/436/222 +f 252/419/223 255/531/223 258/437/223 +f 262/438/181 263/532/181 264/439/181 +f 204/358/183 265/514/183 266/441/183 +f 192/347/183 267/500/183 268/442/183 +f 198/353/183 269/512/183 205/443/183 +f 187/345/183 270/506/183 265/444/183 +f 190/344/183 268/508/183 270/445/183 +f 194/349/183 206/510/183 267/446/183 +f 200/355/183 266/504/183 269/447/183 +f 264/448/248 272/481/248 273/449/248 +f 275/451/178 271/533/178 276/452/178 +f 278/454/176 279/534/176 280/455/176 +f 282/457/174 283/535/174 284/458/174 +f 281/460/182 284/536/182 263/461/182 +f 261/463/179 264/537/179 271/464/179 +f 274/466/177 276/538/177 279/467/177 +f 277/469/175 280/539/175 283/470/175 +f 286/472/249 287/496/249 288/473/249 +f 276/475/250 289/482/250 290/476/250 +f 280/478/251 291/483/251 286/472/251 +f 264/448/252 263/485/252 292/480/252 +f 276/475/253 271/450/253 273/449/253 +f 280/478/254 279/477/254 290/476/254 +f 284/484/255 283/479/255 286/472/255 +f 284/484/256 285/474/256 292/480/256 +f 298/488/183 293/540/183 288/541/183 +f 288/541/183 287/542/183 294/486/183 +f 294/486/183 295/543/183 296/487/183 +f 296/487/183 297/544/183 298/488/183 +f 298/488/183 288/541/183 294/486/183 +f 292/480/257 285/474/257 288/489/257 +f 273/449/258 272/481/258 298/491/258 +f 290/476/259 289/482/259 296/493/259 +f 286/472/260 291/483/260 294/495/260 +f 292/480/261 293/490/261 298/497/261 +f 273/449/262 297/492/262 296/498/262 +f 290/476/263 295/494/263 294/499/263 +f 267/500/175 299/545/175 300/501/175 +f 300/501/240 299/545/240 277/469/240 +f 205/502/177 301/546/177 302/503/177 +f 302/503/241 301/546/241 274/466/241 +f 266/504/179 303/547/179 304/505/179 +f 304/505/242 303/547/242 261/463/242 +f 270/506/182 305/548/182 306/507/182 +f 306/507/243 305/548/243 281/460/243 +f 268/508/174 300/549/174 305/509/174 +f 305/509/244 300/549/244 282/457/244 +f 206/510/176 302/550/176 299/511/176 +f 299/511/245 302/550/245 278/454/245 +f 269/512/178 304/551/178 301/513/178 +f 301/513/246 304/551/246 275/451/246 +f 265/514/181 306/552/181 303/515/181 +f 303/515/247 306/552/247 262/438/247 diff --git a/src/main/resources/assets/hbm/models/radar_head.obj b/src/main/resources/assets/hbm/models/radar_head.obj deleted file mode 100644 index 346cfe68a..000000000 --- a/src/main/resources/assets/hbm/models/radar_head.obj +++ /dev/null @@ -1,404 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'radar_head.blend' -# www.blender.org -o Torus -v 0.578906 1.584721 -0.000000 -v 0.601365 1.806898 -0.000000 -v 0.546068 1.962747 -0.000000 -v 0.361454 1.273760 -0.000000 -v 0.487268 1.381080 -0.000000 -v 0.548050 1.592989 -0.242643 -v 0.571688 1.814850 -0.233375 -v 0.519476 1.969872 -0.209110 -v 0.334863 1.280885 -0.209110 -v 0.457591 1.389032 -0.233375 -v 0.457584 1.617229 -0.468750 -v 0.484678 1.838164 -0.450845 -v 0.441513 1.990763 -0.403970 -v 0.256899 1.301775 -0.403970 -v 0.370581 1.412347 -0.450845 -v 0.313675 1.655789 -0.662913 -v 0.346265 1.875252 -0.637592 -v 0.317491 2.023994 -0.571300 -v 0.132877 1.335007 -0.571300 -v 0.232168 1.449434 -0.637592 -v 0.126128 1.706043 -0.811899 -v 0.165882 1.923585 -0.780887 -v 0.155863 2.067302 -0.699697 -v -0.028751 1.378315 -0.699697 -v 0.051785 1.497768 -0.780887 -v 0.126128 1.706043 0.811899 -v 0.165882 1.923585 0.780887 -v 0.155863 2.067302 0.699697 -v -0.028751 1.378315 0.699697 -v 0.051785 1.497768 0.780887 -v 0.313674 1.655790 0.662913 -v 0.346265 1.875252 0.637592 -v 0.317491 2.023994 0.571301 -v 0.132877 1.335007 0.571301 -v 0.232168 1.449434 0.637592 -v 0.457584 1.617229 0.468750 -v 0.484678 1.838164 0.450845 -v 0.441513 1.990763 0.403970 -v 0.256899 1.301775 0.403970 -v 0.370581 1.412347 0.450845 -v 0.548050 1.592989 0.242643 -v 0.571688 1.814850 0.233374 -v 0.519476 1.969872 0.209110 -v 0.334863 1.280885 0.209110 -v 0.457591 1.389032 0.233374 -v -0.100000 1.000000 0.100000 -v -0.100000 1.200000 0.100000 -v -0.100000 1.000000 -0.100000 -v -0.100000 1.200000 -0.100000 -v 0.100000 1.000000 0.100000 -v 0.100000 1.200000 0.100000 -v 0.100000 1.000000 -0.100000 -v 0.100000 1.200000 -0.100000 -v -0.500000 1.550000 0.050000 -v -0.500000 1.700000 0.050000 -v -0.500000 1.700000 -0.050000 -v -0.500000 1.550000 -0.050000 -v -0.450000 1.518750 -0.025000 -v -0.450000 1.881250 -0.025000 -v -0.450000 1.518750 0.025000 -v -0.450000 1.881250 0.025000 -v -0.467678 1.518750 0.017678 -v -0.467678 1.881250 0.017678 -v -0.475000 1.518750 -0.000000 -v -0.475000 1.881250 -0.000000 -v -0.467678 1.518750 -0.017678 -v -0.467678 1.881250 -0.017678 -v -0.400000 1.518750 -0.025000 -v -0.400000 1.881250 -0.025000 -v -0.382322 1.518750 -0.017678 -v -0.382322 1.881250 -0.017678 -v -0.375000 1.518750 0.000000 -v -0.375000 1.881250 0.000000 -v -0.382322 1.518750 0.017678 -v -0.382322 1.881250 0.017678 -v -0.400000 1.518750 0.025000 -v -0.400000 1.881250 0.025000 -vt 0.749477 0.177462 -vt 0.851663 0.177461 -vt 0.849712 0.270681 -vt 0.751428 0.270681 -vt 0.844603 0.339539 -vt 0.844602 0.015383 -vt 0.849712 0.084242 -vt 0.751428 0.084242 -vt 0.718710 0.177464 -vt 0.716756 0.270683 -vt 0.618472 0.270681 -vt 0.711645 0.339542 -vt 0.623580 0.339539 -vt 0.623588 0.015383 -vt 0.711653 0.015385 -vt 0.716761 0.084244 -vt 0.616523 0.177461 -vt 0.271242 0.713845 -vt 0.373429 0.713845 -vt 0.371477 0.807065 -vt 0.366368 0.875923 -vt 0.278303 0.875923 -vt 0.366368 0.551767 -vt 0.371477 0.620625 -vt 0.273194 0.620625 -vt 0.851663 0.532386 -vt 0.849712 0.625606 -vt 0.751428 0.625606 -vt 0.844603 0.694464 -vt 0.756538 0.694464 -vt 0.844603 0.370308 -vt 0.849712 0.439167 -vt 0.751428 0.439167 -vt 0.984617 0.177461 -vt 0.982665 0.270681 -vt 0.884382 0.270681 -vt 0.977556 0.339539 -vt 0.977556 0.015383 -vt 0.982665 0.084242 -vt 0.884382 0.084242 -vt 0.882430 0.177461 -vt 0.117570 0.599110 -vt 0.115619 0.692329 -vt 0.017335 0.692329 -vt 0.110509 0.761188 -vt 0.022444 0.761188 -vt 0.022444 0.437032 -vt 0.110510 0.437032 -vt 0.115619 0.505890 -vt 0.017335 0.505890 -vt 0.718710 0.532386 -vt 0.716759 0.625606 -vt 0.618475 0.625606 -vt 0.711649 0.694464 -vt 0.623584 0.694465 -vt 0.711649 0.370308 -vt 0.716758 0.439167 -vt 0.618475 0.439167 -vt 0.616523 0.532386 -vt 0.506382 0.713845 -vt 0.504430 0.807065 -vt 0.406147 0.807065 -vt 0.499321 0.875923 -vt 0.411256 0.875923 -vt 0.499321 0.551767 -vt 0.504431 0.620625 -vt 0.406147 0.620625 -vt 0.404195 0.713845 -vt 0.041881 0.130470 -vt 0.086176 0.059678 -vt 0.107053 0.343634 -vt 0.213977 0.130470 -vt 0.169683 0.059678 -vt 0.240475 0.015383 -vt 0.502249 0.098891 -vt 0.502249 0.015383 -vt 0.585757 0.015383 -vt 0.015383 0.015383 -vt 0.585757 0.098891 -vt 0.585757 0.182399 -vt 0.502249 0.182399 -vt 0.107052 0.406265 -vt 0.148806 0.343634 -vt 0.182027 0.396728 -vt 0.564880 0.449753 -vt 0.523126 0.449753 -vt 0.469735 0.433464 -vt 0.271242 0.406604 -vt 0.340291 0.359638 -vt 0.471482 0.120906 -vt 0.445258 0.204975 -vt 0.334736 0.180122 -vt 0.292959 0.252428 -vt 0.306677 0.283195 -vt 0.452868 0.347029 -vt 0.179652 0.437032 -vt 0.187033 0.440089 -vt 0.187033 0.454851 -vt 0.685335 0.876611 -vt 0.677346 0.876608 -vt 0.677397 0.725251 -vt 0.669357 0.876605 -vt 0.669408 0.725249 -vt 0.632552 0.725236 -vt 0.653429 0.725243 -vt 0.653378 0.876600 -vt 0.661367 0.876603 -vt 0.661418 0.725246 -vt 0.706212 0.876618 -vt 0.685387 0.725254 -vt 0.632501 0.876593 -vt 0.624512 0.876590 -vt 0.624562 0.725234 -vt 0.616523 0.876588 -vt 0.616573 0.725231 -vt 0.722190 0.876623 -vt 0.714201 0.876621 -vt 0.714253 0.725264 -vt 0.706263 0.725261 -vt 0.300577 0.521000 -vt 0.460098 0.521000 -vt 0.271242 0.125882 -vt 0.312920 0.015383 -vt 0.471482 0.032841 -vt 0.756538 0.339540 -vt 0.756537 0.015383 -vt 0.618477 0.084242 -vt 0.273193 0.807065 -vt 0.278303 0.551767 -vt 0.749477 0.532386 -vt 0.756538 0.370308 -vt 0.889491 0.339539 -vt 0.889491 0.015383 -vt 0.015383 0.599110 -vt 0.623584 0.370308 -vt 0.411256 0.551767 -vt 0.073832 0.396728 -vt 0.148806 0.406265 -vt 0.179652 0.457908 -vt 0.158775 0.457908 -vt 0.151394 0.454851 -vt 0.148337 0.447470 -vt 0.151394 0.440089 -vt 0.158775 0.437032 -vt 0.190091 0.447470 -vt 0.722242 0.725267 -vn 0.986600 -0.099700 -0.128900 -vn 0.936900 0.332400 -0.107800 -vn 0.645200 -0.756400 -0.107800 -vn 0.904300 -0.406900 -0.128900 -vn 0.922200 -0.082500 -0.377800 -vn 0.883000 0.346900 -0.316100 -vn 0.591300 -0.741900 -0.316100 -vn 0.839900 -0.389700 -0.377800 -vn 0.797700 -0.049100 -0.601000 -vn 0.778900 0.374800 -0.502900 -vn 0.487100 -0.714000 -0.502900 -vn 0.715400 -0.356300 -0.601000 -vn 0.621700 -0.002000 -0.783300 -vn 0.631600 0.414300 -0.655300 -vn 0.339900 -0.674600 -0.655300 -vn 0.539400 -0.309200 -0.783300 -vn 0.621700 -0.002000 0.783300 -vn 0.631600 0.414300 0.655300 -vn 0.339900 -0.674600 0.655300 -vn 0.539400 -0.309200 0.783300 -vn 0.797700 -0.049100 0.601000 -vn 0.778900 0.374800 0.502900 -vn 0.487100 -0.714000 0.502900 -vn 0.715400 -0.356300 0.601000 -vn 0.922200 -0.082500 0.377800 -vn 0.883000 0.346900 0.316100 -vn 0.591300 -0.741900 0.316100 -vn 0.839900 -0.389700 0.377800 -vn 0.986600 -0.099700 0.128900 -vn 0.936900 0.332400 0.107800 -vn 0.645200 -0.756400 0.107800 -vn 0.904300 -0.406900 0.128900 -vn -0.124000 0.000000 -0.992300 -vn 0.000000 0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 1.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.124000 0.000000 0.992300 -vn -0.808700 -0.588200 0.000000 -vn 0.780900 0.624700 0.000000 -vn 0.000000 0.948300 0.317500 -vn -0.236400 0.951600 -0.196600 -vn 0.421300 0.000000 -0.906900 -vn 0.421300 0.000000 0.906900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.483500 -0.483500 -0.729600 -vn 0.654900 -0.677600 -0.334700 -vn -0.483500 -0.483500 0.729600 -vn 0.654900 -0.677600 0.334700 -vn -0.236400 0.951600 0.196600 -vn 0.000000 0.948300 -0.317500 -s off -f 1/1/1 6/2/1 7/3/1 -f 2/4/2 7/3/2 8/5/2 -f 9/6/3 10/7/3 5/8/3 -f 5/8/4 10/7/4 6/2/4 -f 11/9/5 12/10/5 7/11/5 -f 12/10/6 13/12/6 8/13/6 -f 9/14/7 14/15/7 15/16/7 -f 15/16/8 11/9/8 6/17/8 -f 11/18/9 16/19/9 17/20/9 -f 17/20/10 18/21/10 13/22/10 -f 19/23/11 20/24/11 15/25/11 -f 20/24/12 16/19/12 11/18/12 -f 21/26/13 22/27/13 17/28/13 -f 22/27/14 23/29/14 18/30/14 -f 24/31/15 25/32/15 20/33/15 -f 20/33/16 25/32/16 21/26/16 -f 31/34/17 32/35/17 27/36/17 -f 27/36/18 32/35/18 33/37/18 -f 34/38/19 35/39/19 30/40/19 -f 35/39/20 31/34/20 26/41/20 -f 36/42/21 37/43/21 32/44/21 -f 37/43/22 38/45/22 33/46/22 -f 34/47/23 39/48/23 40/49/23 -f 35/50/24 40/49/24 36/42/24 -f 41/51/25 42/52/25 37/53/25 -f 42/52/26 43/54/26 38/55/26 -f 44/56/27 45/57/27 40/58/27 -f 45/57/28 41/51/28 36/59/28 -f 1/60/29 2/61/29 42/62/29 -f 2/61/30 3/63/30 43/64/30 -f 4/65/31 5/66/31 45/67/31 -f 5/66/32 1/60/32 41/68/32 -f 49/69/33 48/70/33 57/71/33 -f 47/72/34 46/73/34 50/74/34 -f 51/75/35 50/76/35 52/77/35 -f 48/70/36 49/69/36 52/78/36 -f 53/79/37 49/80/37 47/81/37 -f 56/82/38 57/71/38 54/83/38 -f 47/72/39 55/84/39 54/83/39 -f 46/73/40 54/83/40 57/71/40 -f 49/80/41 56/85/41 55/86/41 -f 14/87/42 49/88/42 53/89/42 -f 39/90/43 44/91/43 51/92/43 -f 50/93/44 51/92/44 44/91/44 -f 52/94/45 9/95/45 53/89/45 -f 77/96/37 75/97/37 71/98/37 -f 61/99/46 63/100/46 62/101/46 -f 63/100/47 65/102/47 64/103/47 -f 68/104/36 58/105/36 59/106/36 -f 67/107/48 59/106/48 58/105/48 -f 65/102/49 67/107/49 66/108/49 -f 77/109/34 61/99/34 60/110/34 -f 69/111/50 71/112/50 70/113/50 -f 71/112/51 73/114/51 72/115/51 -f 73/116/52 75/117/52 74/118/52 -f 75/117/53 77/109/53 76/119/53 -f 49/88/54 14/87/54 52/120/54 -f 9/121/55 52/120/55 14/87/55 -f 47/122/56 50/123/56 39/90/56 -f 39/90/57 50/123/57 44/124/57 -f 2/4/1 1/1/1 7/3/1 -f 3/125/2 2/4/2 8/5/2 -f 4/126/3 9/6/3 5/8/3 -f 1/1/4 5/8/4 6/2/4 -f 6/17/5 11/9/5 7/11/5 -f 7/11/6 12/10/6 8/13/6 -f 10/127/7 9/14/7 15/16/7 -f 10/127/8 15/16/8 6/17/8 -f 12/128/9 11/18/9 17/20/9 -f 12/128/10 17/20/10 13/22/10 -f 14/129/11 19/23/11 15/25/11 -f 15/25/12 20/24/12 11/18/12 -f 16/130/13 21/26/13 17/28/13 -f 17/28/14 22/27/14 18/30/14 -f 19/131/15 24/31/15 20/33/15 -f 16/130/16 20/33/16 21/26/16 -f 26/41/17 31/34/17 27/36/17 -f 28/132/18 27/36/18 33/37/18 -f 29/133/19 34/38/19 30/40/19 -f 30/40/20 35/39/20 26/41/20 -f 31/134/21 36/42/21 32/44/21 -f 32/44/22 37/43/22 33/46/22 -f 35/50/23 34/47/23 40/49/23 -f 31/134/24 35/50/24 36/42/24 -f 36/59/25 41/51/25 37/53/25 -f 37/53/26 42/52/26 38/55/26 -f 39/135/27 44/56/27 40/58/27 -f 40/58/28 45/57/28 36/59/28 -f 41/68/29 1/60/29 42/62/29 -f 42/62/30 2/61/30 43/64/30 -f 44/136/31 4/65/31 45/67/31 -f 45/67/32 5/66/32 41/68/32 -f 56/137/33 49/69/33 57/71/33 -f 53/79/35 51/75/35 52/77/35 -f 51/75/37 53/79/37 47/81/37 -f 55/138/38 56/82/38 54/83/38 -f 46/73/39 47/72/39 54/83/39 -f 48/70/40 46/73/40 57/71/40 -f 47/81/41 49/80/41 55/86/41 -f 9/95/58 14/87/58 53/89/58 -f 47/122/59 39/90/59 51/92/59 -f 71/98/37 69/139/37 77/96/37 -f 59/140/37 67/141/37 65/142/37 -f 65/142/37 63/143/37 61/144/37 -f 61/144/37 77/96/37 69/139/37 -f 75/97/37 73/145/37 71/98/37 -f 69/139/37 59/140/37 61/144/37 -f 65/142/37 61/144/37 59/140/37 -f 60/110/46 61/99/46 62/101/46 -f 62/101/47 63/100/47 64/103/47 -f 69/111/36 68/104/36 59/106/36 -f 66/108/48 67/107/48 58/105/48 -f 64/103/49 65/102/49 66/108/49 -f 76/119/34 77/109/34 60/110/34 -f 68/104/50 69/111/50 70/113/50 -f 70/113/51 71/112/51 72/115/51 -f 72/146/52 73/116/52 74/118/52 -f 74/118/53 75/117/53 76/119/53 diff --git a/src/main/resources/assets/hbm/models/reactors/icf.obj b/src/main/resources/assets/hbm/models/reactors/icf.obj new file mode 100644 index 000000000..9ff991a0d --- /dev/null +++ b/src/main/resources/assets/hbm/models/reactors/icf.obj @@ -0,0 +1,16720 @@ +# Blender v2.79 (sub 0) OBJ File: 'icf.blend' +# www.blender.org +o Circle +v 0.000000 6.000000 1.500000 +v -0.956709 5.809699 1.500000 +v -1.767767 5.267767 1.500000 +v -2.309699 4.456708 1.500000 +v -2.500000 3.500000 1.500000 +v -2.309699 2.543291 1.500000 +v -1.767767 1.732233 1.500000 +v -0.956709 1.190301 1.500000 +v 0.000000 1.000000 1.500000 +v 0.956708 1.190301 1.500000 +v 1.767766 1.732232 1.500000 +v 2.309698 2.543291 1.500000 +v 2.500000 3.500000 1.500000 +v 2.309698 4.456709 1.500000 +v 1.767766 5.267767 1.500000 +v 0.956707 5.809699 1.500000 +v 0.000000 6.000000 -1.500000 +v -0.956709 5.809699 -1.500000 +v -1.767767 5.267767 -1.500000 +v -2.309699 4.456708 -1.500000 +v -2.500000 3.500000 -1.500000 +v -2.309699 2.543291 -1.500000 +v -1.767767 1.732233 -1.500000 +v -0.956709 1.190301 -1.500000 +v 0.000000 1.000000 -1.500000 +v 0.956708 1.190301 -1.500000 +v 1.767766 1.732232 -1.500000 +v 2.309698 2.543291 -1.500000 +v 2.500000 3.500000 -1.500000 +v 2.309698 4.456709 -1.500000 +v 1.767766 5.267767 -1.500000 +v 0.956707 5.809699 -1.500000 +v 0.000000 5.000000 -2.500000 +v -0.574025 4.885819 -2.500000 +v -1.060660 4.560660 -2.500000 +v -1.385819 4.074025 -2.500000 +v -1.500000 3.500000 -2.500000 +v -1.385819 2.925975 -2.500000 +v -1.060660 2.439340 -2.500000 +v -0.574025 2.114181 -2.500000 +v 0.000000 2.000000 -2.500000 +v 0.574024 2.114181 -2.500000 +v 1.060659 2.439340 -2.500000 +v 1.385818 2.925974 -2.500000 +v 1.500000 3.500000 -2.500000 +v 1.385818 4.074025 -2.500000 +v 1.060659 4.560660 -2.500000 +v 0.574024 4.885819 -2.500000 +v 0.000000 5.000000 2.500000 +v -0.574025 4.885819 2.500000 +v -1.060660 4.560660 2.500000 +v -1.385819 4.074025 2.500000 +v -1.500000 3.500000 2.500000 +v -1.385819 2.925975 2.500000 +v -1.060660 2.439340 2.500000 +v -0.574025 2.114181 2.500000 +v 0.000000 2.000000 2.500000 +v 0.574024 2.114181 2.500000 +v 1.060659 2.439340 2.500000 +v 1.385818 2.925974 2.500000 +v 1.500000 3.500000 2.500000 +v 1.385818 4.074025 2.500000 +v 1.060659 4.560660 2.500000 +v 0.574024 4.885819 2.500000 +v 0.000000 5.000000 -3.000000 +v -0.574025 4.885819 -3.000000 +v -1.060660 4.560660 -3.000000 +v -1.385819 4.074025 -3.000000 +v -1.500000 3.500000 -3.000000 +v -1.385819 2.925975 -3.000000 +v -1.060660 2.439340 -3.000000 +v -0.574025 2.114181 -3.000000 +v 0.000000 2.000000 -3.000000 +v 0.574024 2.114181 -3.000000 +v 1.060659 2.439340 -3.000000 +v 1.385818 2.925974 -3.000000 +v 1.500000 3.500000 -3.000000 +v 1.385818 4.074025 -3.000000 +v 1.060659 4.560660 -3.000000 +v 0.574024 4.885819 -3.000000 +v 0.000000 5.000000 3.000000 +v -0.574025 4.885819 3.000000 +v -1.060660 4.560660 3.000000 +v -1.385819 4.074025 3.000000 +v -1.500000 3.500000 3.000000 +v -1.385819 2.925975 3.000000 +v -1.060660 2.439340 3.000000 +v -0.574025 2.114181 3.000000 +v 0.000000 2.000000 3.000000 +v 0.574024 2.114181 3.000000 +v 1.060659 2.439340 3.000000 +v 1.385818 2.925974 3.000000 +v 1.500000 3.500000 3.000000 +v 1.385818 4.074025 3.000000 +v 1.060659 4.560660 3.000000 +v 0.574024 4.885819 3.000000 +v 0.000000 5.500000 -3.250000 +v -0.765368 5.347759 -3.250000 +v -1.414214 4.914213 -3.250000 +v -1.847759 4.265367 -3.250000 +v -2.000000 3.500000 -3.250000 +v -1.847759 2.734632 -3.250000 +v -1.414214 2.085786 -3.250000 +v -0.765368 1.652241 -3.250000 +v -0.000001 1.500000 -3.250000 +v 0.765366 1.652241 -3.250000 +v 1.414213 2.085786 -3.250000 +v 1.847758 2.734632 -3.250000 +v 2.000000 3.500000 -3.250000 +v 1.847758 4.265367 -3.250000 +v 1.414212 4.914214 -3.250000 +v 0.765366 5.347759 -3.250000 +v 0.000000 5.250000 -3.000000 +v -0.669697 5.116788 -3.000000 +v -1.237437 4.737436 -3.000000 +v -1.616789 4.169695 -3.000000 +v -1.750000 3.500000 -3.000000 +v -1.616789 2.830303 -3.000000 +v -1.237437 2.262563 -3.000000 +v -0.669697 1.883210 -3.000000 +v -0.000001 1.750000 -3.000000 +v 0.669695 1.883210 -3.000000 +v 1.237436 2.262562 -3.000000 +v 1.616789 2.830303 -3.000000 +v 1.750000 3.500000 -3.000000 +v 1.616789 4.169696 -3.000000 +v 1.237436 4.737437 -3.000000 +v 0.669695 5.116789 -3.000000 +v 0.000000 5.250000 -4.500000 +v -0.669697 5.116788 -4.500000 +v -1.237437 4.737436 -4.500000 +v -1.616789 4.169695 -4.500000 +v -1.750000 3.500000 -4.500000 +v -1.616789 2.830303 -4.500000 +v -1.237437 2.262563 -4.500000 +v -0.669697 1.883210 -4.500000 +v -0.000001 1.750000 -4.500000 +v 0.669695 1.883210 -4.500000 +v 1.237436 2.262562 -4.500000 +v 1.616789 2.830303 -4.500000 +v 1.750000 3.500000 -4.500000 +v 1.616789 4.169696 -4.500000 +v 1.237436 4.737437 -4.500000 +v 0.669695 5.116789 -4.500000 +v 0.000000 5.500000 -4.250000 +v -0.765368 5.347759 -4.250000 +v -1.414214 4.914213 -4.250000 +v -1.847759 4.265367 -4.250000 +v -2.000000 3.500000 -4.250000 +v -1.847759 2.734632 -4.250000 +v -1.414214 2.085786 -4.250000 +v -0.765368 1.652241 -4.250000 +v -0.000001 1.500000 -4.250000 +v 0.765366 1.652241 -4.250000 +v 1.414213 2.085786 -4.250000 +v 1.847758 2.734632 -4.250000 +v 2.000000 3.500000 -4.250000 +v 1.847758 4.265367 -4.250000 +v 1.414212 4.914214 -4.250000 +v 0.765366 5.347759 -4.250000 +v 0.000000 5.500000 4.250000 +v -0.765368 5.347759 4.250000 +v -1.414214 4.914213 4.250000 +v -1.847759 4.265367 4.250000 +v -2.000000 3.500000 4.250000 +v -1.847759 2.734632 4.250000 +v -1.414214 2.085786 4.250000 +v -0.765368 1.652241 4.250000 +v -0.000001 1.500000 4.250000 +v 0.765366 1.652241 4.250000 +v 1.414213 2.085786 4.250000 +v 1.847758 2.734632 4.250000 +v 2.000000 3.500000 4.250000 +v 1.847758 4.265367 4.250000 +v 1.414212 4.914214 4.250000 +v 0.765366 5.347759 4.250000 +v 0.000000 5.250000 4.500000 +v -0.669697 5.116788 4.500000 +v -1.237437 4.737436 4.500000 +v -1.616789 4.169695 4.500000 +v -1.750000 3.500000 4.500000 +v -1.616789 2.830303 4.500000 +v -1.237437 2.262563 4.500000 +v -0.669697 1.883210 4.500000 +v -0.000001 1.750000 4.500000 +v 0.669695 1.883210 4.500000 +v 1.237436 2.262562 4.500000 +v 1.616789 2.830303 4.500000 +v 1.750000 3.500000 4.500000 +v 1.616789 4.169696 4.500000 +v 1.237436 4.737437 4.500000 +v 0.669695 5.116789 4.500000 +v 0.000000 5.250000 3.000000 +v -0.669697 5.116788 3.000000 +v -1.237437 4.737436 3.000000 +v -1.616789 4.169695 3.000000 +v -1.750000 3.500000 3.000000 +v -1.616789 2.830303 3.000000 +v -1.237437 2.262563 3.000000 +v -0.669697 1.883210 3.000000 +v -0.000001 1.750000 3.000000 +v 0.669695 1.883210 3.000000 +v 1.237436 2.262562 3.000000 +v 1.616789 2.830303 3.000000 +v 1.750000 3.500000 3.000000 +v 1.616789 4.169696 3.000000 +v 1.237436 4.737437 3.000000 +v 0.669695 5.116789 3.000000 +v 0.000000 5.500000 3.250000 +v -0.765368 5.347759 3.250000 +v -1.414214 4.914213 3.250000 +v -1.847759 4.265367 3.250000 +v -2.000000 3.500000 3.250000 +v -1.847759 2.734632 3.250000 +v -1.414214 2.085786 3.250000 +v -0.765368 1.652241 3.250000 +v -0.000001 1.500000 3.250000 +v 0.765366 1.652241 3.250000 +v 1.414213 2.085786 3.250000 +v 1.847758 2.734632 3.250000 +v 2.000000 3.500000 3.250000 +v 1.847758 4.265367 3.250000 +v 1.414212 4.914214 3.250000 +v 0.765366 5.347759 3.250000 +v -0.000001 4.500000 -4.500000 +v -0.382684 4.423880 -4.500000 +v -0.707108 4.207107 -4.500000 +v -0.923880 3.882683 -4.500000 +v -1.000000 3.500000 -4.500000 +v -0.923880 3.117316 -4.500000 +v -0.707108 2.792893 -4.500000 +v -0.382684 2.576120 -4.500000 +v -0.000001 2.500000 -4.500000 +v 0.382683 2.576120 -4.500000 +v 0.707106 2.792892 -4.500000 +v 0.923879 3.117316 -4.500000 +v 0.999999 3.500000 -4.500000 +v 0.923879 3.882684 -4.500000 +v 0.707106 4.207107 -4.500000 +v 0.382683 4.423880 -4.500000 +v -0.000001 4.500000 -7.000000 +v -0.382684 4.423880 -7.000000 +v -0.707108 4.207107 -7.000000 +v -0.923880 3.882683 -7.000000 +v -1.000000 3.500000 -7.000000 +v -0.923880 3.117316 -7.000000 +v -0.707108 2.792893 -7.000000 +v -0.382684 2.576120 -7.000000 +v -0.000001 2.500000 -7.000000 +v 0.382683 2.576120 -7.000000 +v 0.707106 2.792892 -7.000000 +v 0.923879 3.117316 -7.000000 +v 0.999999 3.500000 -7.000000 +v 0.923879 3.882684 -7.000000 +v 0.707106 4.207107 -7.000000 +v 0.382683 4.423880 -7.000000 +v 0.000000 5.500000 -7.250000 +v -0.765368 5.347759 -7.250000 +v -1.414214 4.914213 -7.250000 +v -1.847759 4.265367 -7.250000 +v -2.000000 3.500000 -7.250000 +v -1.847759 2.734632 -7.250000 +v -1.414214 2.085786 -7.250000 +v -0.765368 1.652241 -7.250000 +v -0.000001 1.500000 -7.250000 +v 0.765366 1.652241 -7.250000 +v 1.414213 2.085786 -7.250000 +v 1.847758 2.734632 -7.250000 +v 2.000000 3.500000 -7.250000 +v 1.847758 4.265367 -7.250000 +v 1.414212 4.914214 -7.250000 +v 0.765366 5.347759 -7.250000 +v 0.000000 5.250000 -7.000000 +v -0.669697 5.116788 -7.000000 +v -1.237437 4.737436 -7.000000 +v -1.616789 4.169695 -7.000000 +v -1.750000 3.500000 -7.000000 +v -1.616789 2.830303 -7.000000 +v -1.237437 2.262563 -7.000000 +v -0.669697 1.883210 -7.000000 +v -0.000001 1.750000 -7.000000 +v 0.669695 1.883210 -7.000000 +v 1.237436 2.262562 -7.000000 +v 1.616789 2.830303 -7.000000 +v 1.750000 3.500000 -7.000000 +v 1.616789 4.169696 -7.000000 +v 1.237436 4.737437 -7.000000 +v 0.669695 5.116789 -7.000000 +v 0.000000 5.250000 -8.500000 +v -0.669697 5.116788 -8.500000 +v -1.237437 4.737436 -8.500000 +v -1.616789 4.169695 -8.500000 +v -1.750000 3.500000 -8.500000 +v -1.616789 2.830303 -8.500000 +v -1.237437 2.262563 -8.500000 +v -0.669697 1.883210 -8.500000 +v -0.000001 1.750000 -8.500000 +v 0.669695 1.883210 -8.500000 +v 1.237436 2.262562 -8.500000 +v 1.616789 2.830303 -8.500000 +v 1.750000 3.500000 -8.500000 +v 1.616789 4.169696 -8.500000 +v 1.237436 4.737437 -8.500000 +v 0.669695 5.116789 -8.500000 +v 0.000000 5.500000 -8.250000 +v -0.765368 5.347759 -8.250000 +v -1.414214 4.914213 -8.250000 +v -1.847759 4.265367 -8.250000 +v -2.000000 3.500000 -8.250000 +v -1.847759 2.734632 -8.250000 +v -1.414214 2.085786 -8.250000 +v -0.765368 1.652241 -8.250000 +v -0.000001 1.500000 -8.250000 +v 0.765366 1.652241 -8.250000 +v 1.414213 2.085786 -8.250000 +v 1.847758 2.734632 -8.250000 +v 2.000000 3.500000 -8.250000 +v 1.847758 4.265367 -8.250000 +v 1.414212 4.914214 -8.250000 +v 0.765366 5.347759 -8.250000 +v 0.000000 5.500000 8.250000 +v -0.765368 5.347759 8.250000 +v -1.414214 4.914213 8.250000 +v -1.847759 4.265367 8.250000 +v -2.000000 3.500000 8.250000 +v -1.847759 2.734632 8.250000 +v -1.414214 2.085786 8.250000 +v -0.765368 1.652241 8.250000 +v -0.000001 1.500000 8.250000 +v 0.765366 1.652241 8.250000 +v 1.414213 2.085786 8.250000 +v 1.847758 2.734632 8.250000 +v 2.000000 3.500000 8.250000 +v 1.847758 4.265367 8.250000 +v 1.414212 4.914214 8.250000 +v 0.765366 5.347759 8.250000 +v 0.000000 5.250000 8.500000 +v -0.669697 5.116788 8.500000 +v -1.237437 4.737436 8.500000 +v -1.616789 4.169695 8.500000 +v -1.750000 3.500000 8.500000 +v -1.616789 2.830303 8.500000 +v -1.237437 2.262563 8.500000 +v -0.669697 1.883210 8.500000 +v -0.000001 1.750000 8.500000 +v 0.669695 1.883210 8.500000 +v 1.237436 2.262562 8.500000 +v 1.616789 2.830303 8.500000 +v 1.750000 3.500000 8.500000 +v 1.616789 4.169696 8.500000 +v 1.237436 4.737437 8.500000 +v 0.669695 5.116789 8.500000 +v 0.000000 5.250000 7.000000 +v -0.669697 5.116788 7.000000 +v -1.237437 4.737436 7.000000 +v -1.616789 4.169695 7.000000 +v -1.750000 3.500000 7.000000 +v -1.616789 2.830303 7.000000 +v -1.237437 2.262563 7.000000 +v -0.669697 1.883210 7.000000 +v -0.000001 1.750000 7.000000 +v 0.669695 1.883210 7.000000 +v 1.237436 2.262562 7.000000 +v 1.616789 2.830303 7.000000 +v 1.750000 3.500000 7.000000 +v 1.616789 4.169696 7.000000 +v 1.237436 4.737437 7.000000 +v 0.669695 5.116789 7.000000 +v 0.000000 5.500000 7.250000 +v -0.765368 5.347759 7.250000 +v -1.414214 4.914213 7.250000 +v -1.847759 4.265367 7.250000 +v -2.000000 3.500000 7.250000 +v -1.847759 2.734632 7.250000 +v -1.414214 2.085786 7.250000 +v -0.765368 1.652241 7.250000 +v -0.000001 1.500000 7.250000 +v 0.765366 1.652241 7.250000 +v 1.414213 2.085786 7.250000 +v 1.847758 2.734632 7.250000 +v 2.000000 3.500000 7.250000 +v 1.847758 4.265367 7.250000 +v 1.414212 4.914214 7.250000 +v 0.765366 5.347759 7.250000 +v -0.000001 4.500000 4.500000 +v -0.382684 4.423880 4.500000 +v -0.707108 4.207107 4.500000 +v -0.923880 3.882683 4.500000 +v -1.000000 3.500000 4.500000 +v -0.923880 3.117316 4.500000 +v -0.707108 2.792893 4.500000 +v -0.382684 2.576120 4.500000 +v -0.000001 2.500000 4.500000 +v 0.382683 2.576120 4.500000 +v 0.707106 2.792892 4.500000 +v 0.923879 3.117316 4.500000 +v 0.999999 3.500000 4.500000 +v 0.923879 3.882684 4.500000 +v 0.707106 4.207107 4.500000 +v 0.382683 4.423880 4.500000 +v -0.000001 4.500000 7.000000 +v -0.382684 4.423880 7.000000 +v -0.707108 4.207107 7.000000 +v -0.923880 3.882683 7.000000 +v -1.000000 3.500000 7.000000 +v -0.923880 3.117316 7.000000 +v -0.707108 2.792893 7.000000 +v -0.382684 2.576120 7.000000 +v -0.000001 2.500000 7.000000 +v 0.382683 2.576120 7.000000 +v 0.707106 2.792892 7.000000 +v 0.923879 3.117316 7.000000 +v 0.999999 3.500000 7.000000 +v 0.923879 3.882684 7.000000 +v 0.707106 4.207107 7.000000 +v 0.382683 4.423880 7.000000 +v -0.000001 3.750000 -8.500000 +v -0.095672 3.730969 -8.500000 +v -0.176777 3.676777 -8.500000 +v -0.230970 3.595671 -8.500000 +v -0.250001 3.500000 -8.500000 +v -0.230970 3.404329 -8.500000 +v -0.176777 3.323223 -8.500000 +v -0.095672 3.269031 -8.500000 +v -0.000001 3.250000 -8.500000 +v 0.095671 3.269030 -8.500000 +v 0.176776 3.323223 -8.500000 +v 0.230969 3.404329 -8.500000 +v 0.249999 3.500000 -8.500000 +v 0.230969 3.595671 -8.500000 +v 0.176776 3.676777 -8.500000 +v 0.095670 3.730970 -8.500000 +v -0.095672 3.730969 -8.250000 +v -0.000001 3.750000 -8.250000 +v -0.176777 3.676777 -8.250000 +v -0.230970 3.595671 -8.250000 +v -0.250001 3.500000 -8.250000 +v -0.230970 3.404329 -8.250000 +v -0.176777 3.323223 -8.250000 +v -0.095672 3.269031 -8.250000 +v -0.000001 3.250000 -8.250000 +v 0.095671 3.269030 -8.250000 +v 0.176776 3.323223 -8.250000 +v 0.230969 3.404329 -8.250000 +v 0.249999 3.500000 -8.250000 +v 0.230969 3.595671 -8.250000 +v 0.176776 3.676777 -8.250000 +v 0.095670 3.730970 -8.250000 +v -0.000001 3.750000 8.500000 +v -0.095672 3.730969 8.500000 +v -0.176777 3.676777 8.500000 +v -0.230970 3.595671 8.500000 +v -0.250001 3.500000 8.500000 +v -0.230970 3.404329 8.500000 +v -0.176777 3.323223 8.500000 +v -0.095672 3.269031 8.500000 +v -0.000001 3.250000 8.500000 +v 0.095671 3.269030 8.500000 +v 0.176776 3.323223 8.500000 +v 0.230969 3.404329 8.500000 +v 0.249999 3.500000 8.500000 +v 0.230969 3.595671 8.500000 +v 0.176776 3.676777 8.500000 +v 0.095670 3.730970 8.500000 +v -0.095672 3.730969 8.250000 +v -0.000001 3.750000 8.250000 +v -0.176777 3.676777 8.250000 +v -0.230970 3.595671 8.250000 +v -0.250001 3.500000 8.250000 +v -0.230970 3.404329 8.250000 +v -0.176777 3.323223 8.250000 +v -0.095672 3.269031 8.250000 +v -0.000001 3.250000 8.250000 +v 0.095671 3.269030 8.250000 +v 0.176776 3.323223 8.250000 +v 0.230969 3.404329 8.250000 +v 0.249999 3.500000 8.250000 +v 0.230969 3.595671 8.250000 +v 0.176776 3.676777 8.250000 +v 0.095670 3.730970 8.250000 +v -0.000001 5.000000 -4.500000 +v -0.574026 4.885819 -4.500000 +v -1.060660 4.560660 -4.500000 +v -1.385819 4.074025 -4.500000 +v -1.500000 3.500000 -4.500000 +v -1.385819 2.925975 -4.500000 +v -1.060660 2.439340 -4.500000 +v -0.574026 2.114181 -4.500000 +v -0.000001 2.000000 -4.500000 +v 0.574024 2.114181 -4.500000 +v 1.060659 2.439340 -4.500000 +v 1.385818 2.925974 -4.500000 +v 1.499999 3.500000 -4.500000 +v 1.385818 4.074025 -4.500000 +v 1.060659 4.560660 -4.500000 +v 0.574024 4.885819 -4.500000 +v -0.000001 5.000000 -7.000000 +v -0.574026 4.885819 -7.000000 +v -1.060660 4.560660 -7.000000 +v -1.385819 4.074025 -7.000000 +v -1.500000 3.500000 -7.000000 +v -1.385819 2.925975 -7.000000 +v -1.060660 2.439340 -7.000000 +v -0.574026 2.114181 -7.000000 +v -0.000001 2.000000 -7.000000 +v 0.574024 2.114181 -7.000000 +v 1.060659 2.439340 -7.000000 +v 1.385818 2.925974 -7.000000 +v 1.499999 3.500000 -7.000000 +v 1.385818 4.074025 -7.000000 +v 1.060659 4.560660 -7.000000 +v 0.574024 4.885819 -7.000000 +v -0.000001 5.000000 7.000000 +v -0.574026 4.885819 7.000000 +v -1.060660 4.560660 7.000000 +v -1.385819 4.074025 7.000000 +v -1.500000 3.500000 7.000000 +v -1.385819 2.925975 7.000000 +v -1.060660 2.439340 7.000000 +v -0.574026 2.114181 7.000000 +v -0.000001 2.000000 7.000000 +v 0.574024 2.114181 7.000000 +v 1.060659 2.439340 7.000000 +v 1.385818 2.925974 7.000000 +v 1.499999 3.500000 7.000000 +v 1.385818 4.074025 7.000000 +v 1.060659 4.560660 7.000000 +v 0.574024 4.885819 7.000000 +v -0.000001 5.000000 4.500000 +v -0.574026 4.885819 4.500000 +v -1.060660 4.560660 4.500000 +v -1.385819 4.074025 4.500000 +v -1.500000 3.500000 4.500000 +v -1.385819 2.925975 4.500000 +v -1.060660 2.439340 4.500000 +v -0.574026 2.114181 4.500000 +v -0.000001 2.000000 4.500000 +v 0.574024 2.114181 4.500000 +v 1.060659 2.439340 4.500000 +v 1.385818 2.925974 4.500000 +v 1.499999 3.500000 4.500000 +v 1.385818 4.074025 4.500000 +v 1.060659 4.560660 4.500000 +v 0.574024 4.885819 4.500000 +v -1.500000 5.750000 -3.375000 +v 1.500000 5.750000 -3.375000 +v -1.500000 5.750000 -4.125000 +v 1.500000 5.750000 -4.125000 +v -1.500000 4.750000 -4.125000 +v -1.500000 4.750000 -3.375000 +v 1.500000 4.750000 -3.375000 +v 1.500000 4.750000 -4.125000 +v -1.500000 5.750000 -7.375000 +v 1.500000 5.750000 -7.375000 +v -1.500000 5.750000 -8.125000 +v 1.500000 5.750000 -8.125000 +v -1.500000 4.750000 -8.125000 +v -1.500000 4.750000 -7.375000 +v 1.500000 4.750000 -7.375000 +v 1.500000 4.750000 -8.125000 +v -1.500000 5.750000 8.125000 +v 1.500000 5.750000 8.125000 +v -1.500000 5.750000 7.375000 +v 1.500000 5.750000 7.375000 +v -1.500000 4.750000 7.375000 +v -1.500000 4.750000 8.125000 +v 1.500000 4.750000 8.125000 +v 1.500000 4.750000 7.375000 +v -1.500000 5.750000 4.125000 +v 1.500000 5.750000 4.125000 +v -1.500000 5.750000 3.375000 +v 1.500000 5.750000 3.375000 +v -1.500000 4.750000 3.375000 +v -1.500000 4.750000 4.125000 +v 1.500000 4.750000 4.125000 +v 1.500000 4.750000 3.375000 +v 1.000000 5.250000 -4.125000 +v 1.375000 5.250000 -4.125000 +v 1.000000 5.625000 -4.125000 +v 1.375000 5.625000 -4.125000 +v 1.000000 5.250000 -7.375000 +v 1.375000 5.250000 -7.375000 +v 1.000000 5.625000 -7.375000 +v 1.375000 5.625000 -7.375000 +v -1.375000 5.250000 -4.125000 +v -1.000000 5.250000 -4.125000 +v -1.375000 5.625000 -4.125000 +v -1.000000 5.625000 -4.125000 +v -1.375000 5.250000 -7.375000 +v -1.000000 5.250000 -7.375000 +v -1.375000 5.625000 -7.375000 +v -1.000000 5.625000 -7.375000 +v 1.000000 5.250000 7.375000 +v 1.375000 5.250000 7.375000 +v 1.000000 5.625000 7.375000 +v 1.375000 5.625000 7.375000 +v 1.000000 5.250000 4.125000 +v 1.375000 5.250000 4.125000 +v 1.000000 5.625000 4.125000 +v 1.375000 5.625000 4.125000 +v -1.375000 5.250000 7.375000 +v -1.000000 5.250000 7.375000 +v -1.375000 5.625000 7.375000 +v -1.000000 5.625000 7.375000 +v -1.375000 5.250000 4.125000 +v -1.000000 5.250000 4.125000 +v -1.375000 5.625000 4.125000 +v -1.000000 5.625000 4.125000 +v 0.750000 5.750000 4.000000 +v 1.250000 5.750000 4.000000 +v 0.750000 5.750000 -4.000000 +v 1.250000 5.750000 -4.000000 +v 0.750000 6.000000 -3.750000 +v 0.750000 6.000000 3.750000 +v 1.250000 6.000000 3.750000 +v 1.250000 6.000000 -3.750000 +v -1.250000 5.750000 4.000000 +v -0.750000 5.750000 4.000000 +v -1.250000 5.750000 -4.000000 +v -0.750000 5.750000 -4.000000 +v -1.250000 6.000000 -3.750000 +v -1.250000 6.000000 3.750000 +v -0.750000 6.000000 3.750000 +v -0.750000 6.000000 -3.750000 +v -1.500000 2.250000 -3.375000 +v 1.500000 2.250000 -3.375000 +v -1.500000 2.250000 -4.125000 +v 1.500000 2.250000 -4.125000 +v -1.500000 1.250000 -4.125000 +v -1.500000 1.250000 -3.375000 +v 1.500000 1.250000 -3.375000 +v 1.500000 1.250000 -4.125000 +v -1.500000 2.250000 -7.375000 +v 1.500000 2.250000 -7.375000 +v -1.500000 2.250000 -8.125000 +v 1.500000 2.250000 -8.125000 +v -1.500000 1.250000 -8.125000 +v -1.500000 1.250000 -7.375000 +v 1.500000 1.250000 -7.375000 +v 1.500000 1.250000 -8.125000 +v -1.500000 2.250000 8.125000 +v 1.500000 2.250000 8.125000 +v -1.500000 2.250000 7.375000 +v 1.500000 2.250000 7.375000 +v -1.500000 1.250000 7.375000 +v -1.500000 1.250000 8.125000 +v 1.500000 1.250000 8.125000 +v 1.500000 1.250000 7.375000 +v -1.500000 2.250000 4.125000 +v 1.500000 2.250000 4.125000 +v -1.500000 2.250000 3.375000 +v 1.500000 2.250000 3.375000 +v -1.500000 1.250000 3.375000 +v -1.500000 1.250000 4.125000 +v 1.500000 1.250000 4.125000 +v 1.500000 1.250000 3.375000 +v 1.000000 1.375000 -4.125000 +v 1.375000 1.375000 -4.125000 +v 1.000000 1.750000 -4.125000 +v 1.375000 1.750000 -4.125000 +v 1.000000 1.375000 -7.375000 +v 1.375000 1.375000 -7.375000 +v 1.000000 1.750000 -7.375000 +v 1.375000 1.750000 -7.375000 +v -1.375000 1.375000 -4.125000 +v -1.000000 1.375000 -4.125000 +v -1.375000 1.750000 -4.125000 +v -1.000000 1.750000 -4.125000 +v -1.375000 1.375000 -7.375000 +v -1.000000 1.375000 -7.375000 +v -1.375000 1.750000 -7.375000 +v -1.000000 1.750000 -7.375000 +v 1.000000 1.375000 7.375000 +v 1.375000 1.375000 7.375000 +v 1.000000 1.750000 7.375000 +v 1.375000 1.750000 7.375000 +v 1.000000 1.375000 4.125000 +v 1.375000 1.375000 4.125000 +v 1.000000 1.750000 4.125000 +v 1.375000 1.750000 4.125000 +v -1.375000 1.375000 7.375000 +v -1.000000 1.375000 7.375000 +v -1.375000 1.750000 7.375000 +v -1.000000 1.750000 7.375000 +v -1.375000 1.375000 4.125000 +v -1.000000 1.375000 4.125000 +v -1.375000 1.750000 4.125000 +v -1.000000 1.750000 4.125000 +v -0.750000 1.250000 4.000000 +v -1.250000 1.250000 4.000000 +v -0.750000 1.250000 -4.000000 +v -1.250000 1.250000 -4.000000 +v -0.750000 1.000000 -3.750000 +v -0.750000 1.000000 3.750000 +v -1.250000 1.000000 3.750000 +v -1.250000 1.000000 -3.750000 +v 1.250000 1.250000 4.000000 +v 0.750000 1.250000 4.000000 +v 1.250000 1.250000 -4.000000 +v 0.750000 1.250000 -4.000000 +v 1.250000 1.000000 -3.750000 +v 1.250000 1.000000 3.750000 +v 0.750000 1.000000 3.750000 +v 0.750000 1.000000 -3.750000 +v 1.250000 0.750000 -8.500000 +v 1.750000 0.750000 -8.500000 +v 1.250000 1.250000 -8.500000 +v 1.750000 1.250000 -8.500000 +v 1.250000 0.750000 8.500000 +v 1.750000 0.750000 8.500000 +v 1.250000 1.250000 8.500000 +v 1.750000 1.250000 8.500000 +v 1.250000 0.000000 8.250000 +v 1.750000 0.000000 8.250000 +v 1.250000 0.000000 7.750000 +v 1.750000 0.000000 7.750000 +v 1.250000 0.125000 7.750000 +v 1.250000 0.125000 8.250000 +v 1.750000 0.125000 8.250000 +v 1.750000 0.125000 7.750000 +v 1.312500 0.125000 7.812500 +v 1.312500 0.125000 8.187500 +v 1.687500 0.125000 8.187500 +v 1.687500 0.125000 7.812500 +v 1.312500 0.750000 7.812500 +v 1.312500 0.750000 8.187500 +v 1.687500 0.750000 8.187500 +v 1.687500 0.750000 7.812500 +v -1.750000 0.750000 -8.500000 +v -1.250000 0.750000 -8.500000 +v -1.750000 1.250000 -8.500000 +v -1.250000 1.250000 -8.500000 +v -1.750000 0.750000 8.500000 +v -1.250000 0.750000 8.500000 +v -1.750000 1.250000 8.500000 +v -1.250000 1.250000 8.500000 +v -0.375000 6.000000 0.375000 +v 0.375000 6.000000 0.375000 +v -0.375000 6.000000 -0.375000 +v 0.375000 6.000000 -0.375000 +v -0.375000 5.875000 -0.375000 +v -0.375000 5.875000 0.375000 +v 0.375000 5.875000 0.375000 +v 0.375000 5.875000 -0.375000 +v -0.375000 0.000000 0.375000 +v 0.375000 0.000000 0.375000 +v -0.375000 0.000000 -0.375000 +v 0.375000 0.000000 -0.375000 +v -0.375000 1.125000 -0.375000 +v -0.375000 1.125000 0.375000 +v 0.375000 1.125000 0.375000 +v 0.375000 1.125000 -0.375000 +v 2.500000 3.750000 6.250000 +v 2.500000 3.250000 6.250000 +v 2.500000 3.750000 5.750000 +v 2.500000 3.250000 5.750000 +v 1.500000 3.750000 5.750000 +v 1.500000 3.750000 6.250000 +v 1.500000 3.250000 6.250000 +v 1.500000 3.250000 5.750000 +v 1.500000 3.875000 5.625000 +v 1.500000 3.875000 6.375000 +v 1.500000 3.125000 6.375000 +v 1.500000 3.125000 5.625000 +v 0.875000 3.875000 5.625000 +v 0.875000 3.875000 6.375000 +v 0.875000 3.125000 6.375000 +v 0.875000 3.125000 5.625000 +v 5.370945 3.437636 -0.031646 +v 5.482748 3.437636 0.024255 +v 5.479053 3.562364 0.031646 +v 5.367250 3.562364 -0.024256 +v 3.989082 5.816198 2.732081 +v 4.100885 5.816198 2.787983 +v 4.148417 5.881990 2.692919 +v 4.036614 5.881990 2.637018 +v 5.093926 3.397937 0.522393 +v 5.205729 3.397937 0.578294 +v 5.213573 3.521701 0.562607 +v 5.101769 3.521701 0.506706 +v 4.813114 3.624890 1.084016 +v 4.924919 3.624890 1.139917 +v 4.951885 3.734385 1.085984 +v 4.840080 3.734385 1.030083 +v 4.535995 4.104363 1.638257 +v 4.647799 4.104363 1.694158 +v 4.686504 4.194551 1.616744 +v 4.574701 4.194551 1.560842 +v 4.261469 4.832593 2.187310 +v 4.373272 4.832593 2.243212 +v 4.418531 4.905957 2.152690 +v 4.306728 4.905957 2.096789 +v 5.392796 3.466860 -0.075347 +v 5.504599 3.466860 -0.019445 +v 5.457203 3.533140 0.075347 +v 5.345400 3.533140 0.019445 +v 4.011459 1.088484 2.687328 +v 4.123262 1.088484 2.743229 +v 4.126041 1.213329 2.737673 +v 4.014238 1.213329 2.681771 +v 5.120440 2.493382 0.469364 +v 5.232244 2.493382 0.525266 +v 5.187058 2.566979 0.615636 +v 5.075255 2.566979 0.559734 +v 4.845951 1.765268 1.018342 +v 4.957754 1.765268 1.074244 +v 4.919048 1.855455 1.151658 +v 4.807245 1.855455 1.095756 +v 4.568831 1.285796 1.572583 +v 4.680634 1.285796 1.628485 +v 4.653668 1.395291 1.682417 +v 4.541865 1.395291 1.626516 +v 4.288248 1.058917 2.133752 +v 4.400051 1.058917 2.189653 +v 4.391752 1.182532 2.206249 +v 4.279949 1.182532 2.150347 +v 5.384722 3.444246 -0.055514 +v 5.493280 3.444246 0.006453 +v 5.465277 3.555754 0.055514 +v 5.356718 3.555754 -0.006453 +v 1.931818 3.444246 5.993546 +v 2.040377 3.444246 6.055514 +v 2.068381 3.555754 6.006454 +v 1.959822 3.555754 5.944486 +v 2.424219 2.941473 5.130919 +v 2.532779 2.941473 5.192886 +v 2.554522 3.058527 5.154795 +v 2.445963 3.058527 5.092828 +v 3.409801 2.437981 3.404303 +v 3.518359 2.437981 3.466271 +v 3.526027 2.562019 3.452839 +v 3.417467 2.562019 3.390872 +v 3.906738 2.437981 2.533729 +v 4.015297 2.437981 2.595696 +v 4.007631 2.562019 2.609128 +v 3.899072 2.562019 2.547160 +v 4.892321 2.941473 0.807114 +v 5.000879 2.941473 0.869081 +v 4.979136 3.058527 0.907172 +v 4.870577 3.058527 0.845204 +v 0.000000 5.875000 -1.250000 +v -0.908873 5.694214 -1.250000 +v -1.679379 5.179379 -1.250000 +v -2.194214 4.408875 -1.250000 +v -2.375000 3.500000 -1.250000 +v -2.194214 2.591125 -1.250000 +v -1.679379 1.820621 -1.250000 +v -0.908874 1.305786 -1.250000 +v 0.000000 1.125000 -1.250000 +v 0.908873 1.305786 -1.250000 +v 1.679379 1.820621 -1.250000 +v 2.194214 2.591125 -1.250000 +v 2.375000 3.500000 -1.250000 +v 2.194214 4.408875 -1.250000 +v 1.679378 5.179379 -1.250000 +v 0.908872 5.694214 -1.250000 +v 0.000000 5.875000 1.250000 +v -0.908873 5.694214 1.250000 +v -1.679379 5.179379 1.250000 +v -2.194214 4.408875 1.250000 +v -2.375000 3.500000 1.250000 +v -2.194214 2.591125 1.250000 +v -1.679379 1.820621 1.250000 +v -0.908874 1.305786 1.250000 +v 0.000000 1.125000 1.250000 +v 0.908873 1.305786 1.250000 +v 1.679379 1.820621 1.250000 +v 2.194214 2.591125 1.250000 +v 2.375000 3.500000 1.250000 +v 2.194214 4.408875 1.250000 +v 1.679378 5.179379 1.250000 +v 0.908872 5.694214 1.250000 +v 0.000000 5.000000 2.250000 +v -0.574025 4.885818 2.250000 +v -1.060660 4.560659 2.250000 +v -1.385819 4.074025 2.250000 +v -1.500000 3.500000 2.250000 +v -1.385819 2.925975 2.250000 +v -1.060660 2.439340 2.250000 +v -0.574025 2.114181 2.250000 +v 0.000000 2.000000 2.250000 +v 0.574024 2.114181 2.250000 +v 1.060659 2.439340 2.250000 +v 1.385818 2.925974 2.250000 +v 1.500000 3.500000 2.250000 +v 1.385818 4.074025 2.250000 +v 1.060659 4.560660 2.250000 +v 0.574024 4.885819 2.250000 +v 0.000000 5.000000 -2.250000 +v -0.574025 4.885818 -2.250000 +v -1.060660 4.560659 -2.250000 +v -1.385819 4.074025 -2.250000 +v -1.500000 3.500000 -2.250000 +v -1.385819 2.925975 -2.250000 +v -1.060660 2.439340 -2.250000 +v -0.574025 2.114181 -2.250000 +v 0.000000 2.000000 -2.250000 +v 0.574024 2.114181 -2.250000 +v 1.060659 2.439340 -2.250000 +v 1.385818 2.925974 -2.250000 +v 1.500000 3.500000 -2.250000 +v 1.385818 4.074025 -2.250000 +v 1.060659 4.560660 -2.250000 +v 0.574024 4.885819 -2.250000 +v -1.767767 5.267767 1.250000 +v -2.309699 4.456709 1.250000 +v -2.309699 2.543291 1.250000 +v -1.767767 1.732233 1.250000 +v 1.767766 1.732232 1.250000 +v 2.309698 2.543291 1.250000 +v 2.309698 4.456709 1.250000 +v 1.767766 5.267767 1.250000 +v -1.767767 5.267767 -1.250000 +v -2.309699 4.456709 -1.250000 +v -2.309699 2.543291 -1.250000 +v -1.767767 1.732233 -1.250000 +v 1.767766 1.732232 -1.250000 +v 2.309698 2.543291 -1.250000 +v 2.309698 4.456709 -1.250000 +v 1.767766 5.267767 -1.250000 +v 3.250000 3.500000 -0.750001 +v 3.250000 3.875000 -0.649519 +v 3.250000 4.149519 -0.375001 +v 3.250000 4.250000 -0.000001 +v 3.250000 4.149519 0.374999 +v 3.250000 3.875000 0.649518 +v 3.250000 3.500000 0.749999 +v 3.250000 3.125000 0.649519 +v 3.250000 2.850481 0.375000 +v 3.250000 2.750000 -0.000000 +v 3.250000 2.850481 -0.375000 +v 3.250000 3.125000 -0.649520 +v 3.000000 3.500000 -0.500000 +v 3.000000 3.750000 -0.433013 +v 3.000000 3.933013 -0.250000 +v 3.000000 4.000000 -0.000001 +v 3.000000 3.933013 0.249999 +v 3.000000 3.750000 0.433012 +v 3.000000 3.500000 0.499999 +v 3.000000 3.250000 0.433012 +v 3.000000 3.066987 0.250000 +v 3.000000 3.000000 -0.000000 +v 3.000000 3.066987 -0.250000 +v 3.000000 3.250000 -0.433013 +v 4.750000 3.500000 -0.750001 +v 4.750000 3.875000 -0.649520 +v 4.750000 4.149519 -0.375001 +v 4.750000 4.250000 -0.000001 +v 4.750000 4.149519 0.374999 +v 4.750000 3.875000 0.649518 +v 4.750000 3.500000 0.749999 +v 4.750000 3.125000 0.649518 +v 4.750000 2.850481 0.374999 +v 4.750000 2.750000 -0.000000 +v 4.750000 2.850481 -0.375000 +v 4.750000 3.125000 -0.649520 +v 5.000000 3.500000 -0.500001 +v 5.000000 3.750000 -0.433014 +v 5.000000 3.933013 -0.250001 +v 5.000000 4.000000 -0.000001 +v 5.000000 3.933013 0.249999 +v 5.000000 3.750000 0.433012 +v 5.000000 3.500000 0.499999 +v 5.000000 3.250000 0.433012 +v 5.000000 3.066987 0.249999 +v 5.000000 3.000000 -0.000001 +v 5.000000 3.066987 -0.250001 +v 5.000000 3.250000 -0.433013 +v 5.000000 3.500000 -0.375001 +v 5.000000 3.687500 -0.324760 +v 5.000000 3.824759 -0.187501 +v 5.000000 3.875000 -0.000001 +v 5.000000 3.824759 0.187499 +v 5.000000 3.687500 0.324759 +v 5.000000 3.500000 0.374999 +v 5.000000 3.312500 0.324759 +v 5.000000 3.175241 0.187499 +v 5.000000 3.125000 -0.000001 +v 5.000000 3.175241 -0.187501 +v 5.000000 3.312500 -0.324760 +v 5.875000 3.687500 -0.324760 +v 5.875000 3.500000 -0.375001 +v 5.875000 3.824759 -0.187501 +v 5.875000 3.875000 -0.000001 +v 5.875000 3.824759 0.187499 +v 5.875000 3.687500 0.324759 +v 5.875000 3.500000 0.374999 +v 5.875000 3.312500 0.324759 +v 5.875000 3.175241 0.187499 +v 5.875000 3.125000 -0.000001 +v 5.875000 3.175241 -0.187501 +v 5.875000 3.312500 -0.324760 +v 1.500000 3.500000 -0.500000 +v 1.500000 3.750000 -0.433013 +v 1.500000 3.933013 -0.250000 +v 1.500000 4.000000 -0.000000 +v 1.500000 3.933013 0.250000 +v 1.500000 3.750000 0.433012 +v 1.500000 3.500000 0.500000 +v 1.500000 3.250000 0.433012 +v 1.500000 3.066987 0.250000 +v 1.500000 3.000000 -0.000000 +v 1.500000 3.066987 -0.250000 +v 1.500000 3.250000 -0.433013 +v 1.500000 3.500000 -0.250000 +v 1.500000 3.625000 -0.216507 +v 1.500000 3.716506 -0.125000 +v 1.500000 3.750000 -0.000000 +v 1.500000 3.716506 0.125000 +v 1.500000 3.625000 0.216506 +v 1.500000 3.500000 0.250000 +v 1.500000 3.375000 0.216506 +v 1.500000 3.283494 0.125000 +v 1.500000 3.250000 -0.000000 +v 1.500000 3.283494 -0.125000 +v 1.500000 3.375000 -0.216507 +v 0.750000 3.500000 -0.250000 +v 0.750000 3.625000 -0.216507 +v 0.750000 3.716506 -0.125000 +v 0.750000 3.750000 -0.000000 +v 0.750000 3.716506 0.125000 +v 0.750000 3.625000 0.216506 +v 0.750000 3.500000 0.250000 +v 0.750000 3.375000 0.216506 +v 0.750000 3.283494 0.125000 +v 0.750000 3.250000 -0.000000 +v 0.750000 3.283494 -0.125000 +v 0.750000 3.375000 -0.216506 +v 0.750000 3.562500 -0.108253 +v 0.750000 3.500000 -0.125000 +v 0.750000 3.608253 -0.062500 +v 0.750000 3.625000 -0.000000 +v 0.750000 3.608253 0.062500 +v 0.750000 3.562500 0.108253 +v 0.750000 3.500000 0.125000 +v 0.750000 3.437500 0.108253 +v 0.750000 3.391747 0.062500 +v 0.750000 3.375000 -0.000000 +v 0.750000 3.391747 -0.062500 +v 0.750000 3.437500 -0.108253 +v 0.500000 3.562500 -0.108253 +v 0.500000 3.500000 -0.125000 +v 0.500000 3.608253 -0.062500 +v 0.500000 3.625000 -0.000000 +v 0.500000 3.608253 0.062500 +v 0.500000 3.562500 0.108253 +v 0.500000 3.500000 0.125000 +v 0.500000 3.437500 0.108253 +v 0.500000 3.391747 0.062500 +v 0.500000 3.375000 -0.000000 +v 0.500000 3.391747 -0.062500 +v 0.500000 3.437500 -0.108253 +v 0.500000 3.500000 2.250000 +v 0.433013 3.750000 2.250000 +v 0.250000 3.933013 2.250000 +v 0.000000 4.000000 2.250000 +v -0.250000 3.933013 2.250000 +v -0.433013 3.750000 2.250000 +v -0.500000 3.500000 2.250000 +v -0.433013 3.250000 2.250000 +v -0.250000 3.066987 2.250000 +v 0.000000 3.000000 2.250000 +v 0.250000 3.066987 2.250000 +v 0.433012 3.250000 2.250000 +v 0.500000 3.500000 1.500000 +v 0.433012 3.750000 1.500000 +v 0.250000 3.933013 1.500000 +v 0.000000 4.000000 1.500000 +v -0.250000 3.933013 1.500000 +v -0.433013 3.750000 1.500000 +v -0.500000 3.500000 1.500000 +v -0.433013 3.250000 1.500000 +v -0.250000 3.066987 1.500000 +v 0.000000 3.000000 1.500000 +v 0.250000 3.066987 1.500000 +v 0.433012 3.250000 1.500000 +v 0.250000 3.500000 1.500000 +v 0.216506 3.625000 1.500000 +v 0.125000 3.716506 1.500000 +v 0.000000 3.750000 1.500000 +v -0.125000 3.716506 1.500000 +v -0.216507 3.625000 1.500000 +v -0.250000 3.500000 1.500000 +v -0.216507 3.375000 1.500000 +v -0.125000 3.283494 1.500000 +v 0.000000 3.250000 1.500000 +v 0.125000 3.283494 1.500000 +v 0.216506 3.375000 1.500000 +v 0.250000 3.500000 0.750000 +v 0.216506 3.625000 0.750000 +v 0.125000 3.716506 0.750000 +v 0.000000 3.750000 0.750000 +v -0.125000 3.716506 0.750000 +v -0.216507 3.625000 0.750000 +v -0.250000 3.500000 0.750000 +v -0.216507 3.375000 0.750000 +v -0.125000 3.283494 0.750000 +v 0.000000 3.250000 0.750000 +v 0.125000 3.283494 0.750000 +v 0.216506 3.375000 0.750000 +v 0.108253 3.562500 0.750000 +v 0.125000 3.500000 0.750000 +v 0.062500 3.608253 0.750000 +v 0.000000 3.625000 0.750000 +v -0.062500 3.608253 0.750000 +v -0.108253 3.562500 0.750000 +v -0.125000 3.500000 0.750000 +v -0.108253 3.437500 0.750000 +v -0.062500 3.391747 0.750000 +v 0.000000 3.375000 0.750000 +v 0.062500 3.391747 0.750000 +v 0.108253 3.437500 0.750000 +v 0.108253 3.562500 0.500000 +v 0.125000 3.500000 0.500000 +v 0.062500 3.608253 0.500000 +v 0.000000 3.625000 0.500000 +v -0.062500 3.608253 0.500000 +v -0.108253 3.562500 0.500000 +v -0.125000 3.500000 0.500000 +v -0.108253 3.437500 0.500000 +v -0.062500 3.391747 0.500000 +v 0.000000 3.375000 0.500000 +v 0.062500 3.391747 0.500000 +v 0.108253 3.437500 0.500000 +v 0.000000 3.250000 0.000000 +v 0.180900 3.388196 0.131430 +v -0.069097 3.388196 0.212660 +v -0.223607 3.388196 0.000000 +v -0.069097 3.388196 -0.212660 +v 0.180900 3.388196 -0.131430 +v 0.069096 3.611804 0.212660 +v -0.180901 3.611804 0.131430 +v -0.180901 3.611804 -0.131430 +v 0.069096 3.611804 -0.212660 +v 0.223606 3.611804 0.000000 +v 0.000000 3.750000 0.000000 +v 2.030893 4.476523 3.875000 +v 2.030893 4.476523 7.625000 +v 2.126564 4.476523 3.875000 +v 2.126564 4.476523 7.625000 +v 2.194214 4.408874 3.875000 +v 2.194214 4.408874 7.625000 +v 2.194214 4.313202 3.875000 +v 2.194214 4.313202 7.625000 +v 2.126564 4.245553 3.875000 +v 2.126564 4.245553 7.625000 +v 2.030893 4.245553 3.875000 +v 2.030893 4.245553 7.625000 +v 1.963243 4.313202 3.875000 +v 1.963243 4.313202 7.625000 +v 1.963243 4.408874 3.875000 +v 1.963243 4.408874 7.625000 +v 1.997068 4.462512 3.786612 +v 2.068821 4.452605 3.724112 +v 2.126564 4.380852 3.698223 +v 2.136471 4.289285 3.724112 +v 2.092739 4.231542 3.786612 +v 2.020987 4.241449 3.849112 +v 1.953337 4.404770 3.849112 +v 1.915408 4.428688 3.750000 +v 1.929419 4.394863 3.661612 +v 1.963243 4.313202 3.625000 +v 1.997068 4.231542 3.661612 +v 2.011079 4.197718 3.750000 +v 1.997068 4.231542 3.838388 +v 1.929419 4.394863 3.838388 +v 1.997068 4.462512 7.713388 +v 2.068821 4.452605 7.775888 +v 2.126564 4.380852 7.801777 +v 2.136471 4.289285 7.775888 +v 2.092739 4.231542 7.713388 +v 2.020986 4.241449 7.650888 +v 1.953337 4.404770 7.650888 +v 1.915408 4.428688 7.750000 +v 1.929419 4.394863 7.838388 +v 1.963243 4.313202 7.875000 +v 1.997068 4.231542 7.838388 +v 2.011079 4.197718 7.750000 +v 1.997068 4.231542 7.661612 +v 1.929419 4.394863 7.661612 +v 1.732273 4.217532 7.625000 +v 1.684438 4.333016 7.750000 +v 1.698449 4.299192 7.838388 +v 1.732273 4.217532 7.875000 +v 1.766098 4.135871 7.838388 +v 1.780109 4.102046 7.750000 +v 1.766098 4.135871 7.661612 +v 1.698448 4.299192 7.661612 +v 1.732273 4.217532 3.875000 +v 1.684438 4.333016 3.750000 +v 1.698449 4.299192 3.661612 +v 1.732273 4.217532 3.625000 +v 1.766098 4.135871 3.661612 +v 1.780109 4.102046 3.750000 +v 1.766098 4.135871 3.838388 +v 1.698449 4.299192 3.838388 +v 2.126564 2.754447 3.875000 +v 2.126564 2.754447 7.625000 +v 2.194214 2.686798 3.875000 +v 2.194214 2.686798 7.625000 +v 2.194214 2.591127 3.875000 +v 2.194214 2.591127 7.625000 +v 2.126564 2.523477 3.875000 +v 2.126564 2.523477 7.625000 +v 2.030893 2.523477 3.875000 +v 2.030893 2.523477 7.625000 +v 1.963244 2.591127 3.875000 +v 1.963244 2.591127 7.625000 +v 1.963243 2.686798 3.875000 +v 1.963243 2.686798 7.625000 +v 2.030893 2.754447 3.875000 +v 2.030893 2.754447 7.625000 +v 2.092739 2.768458 3.786612 +v 2.136471 2.710716 3.724112 +v 2.126564 2.619148 3.698223 +v 2.068821 2.547395 3.724112 +v 1.997068 2.537488 3.786612 +v 1.953337 2.595230 3.849112 +v 2.020986 2.758551 3.849112 +v 2.011079 2.802283 3.750000 +v 1.997068 2.768458 3.661612 +v 1.963243 2.686798 3.625000 +v 1.929419 2.605137 3.661612 +v 1.915408 2.571313 3.750000 +v 1.929419 2.605137 3.838388 +v 1.997068 2.768458 3.838388 +v 2.092739 2.768458 7.713388 +v 2.136471 2.710716 7.775888 +v 2.126564 2.619148 7.801777 +v 2.068821 2.547395 7.775888 +v 1.997068 2.537488 7.713388 +v 1.953336 2.595231 7.650888 +v 2.020986 2.758551 7.650888 +v 2.011079 2.802283 7.750000 +v 1.997068 2.768458 7.838388 +v 1.963243 2.686798 7.875000 +v 1.929419 2.605137 7.838388 +v 1.915408 2.571313 7.750000 +v 1.929419 2.605137 7.661612 +v 1.997068 2.768458 7.661612 +v 1.732273 2.782469 7.625000 +v 1.780109 2.897954 7.750000 +v 1.766099 2.864129 7.838388 +v 1.732273 2.782469 7.875000 +v 1.698449 2.700809 7.838388 +v 1.684438 2.666983 7.750000 +v 1.698449 2.700809 7.661612 +v 1.766098 2.864129 7.661612 +v 1.732273 2.782469 3.875000 +v 1.780109 2.897954 3.750000 +v 1.766099 2.864129 3.661612 +v 1.732273 2.782469 3.625000 +v 1.698449 2.700809 3.661612 +v 1.684438 2.666983 3.750000 +v 1.698449 2.700809 3.838388 +v 1.766099 2.864129 3.838388 +v -2.030895 2.523477 3.875000 +v -2.030895 2.523477 7.625000 +v -2.126565 2.523477 3.875000 +v -2.126565 2.523477 7.625000 +v -2.194215 2.591127 3.875000 +v -2.194215 2.591127 7.625000 +v -2.194215 2.686798 3.875000 +v -2.194215 2.686798 7.625000 +v -2.126565 2.754447 3.875000 +v -2.126565 2.754447 7.625000 +v -2.030895 2.754447 3.875000 +v -2.030895 2.754447 7.625000 +v -1.963245 2.686798 3.875000 +v -1.963245 2.686798 7.625000 +v -1.963245 2.591127 3.875000 +v -1.963245 2.591127 7.625000 +v -1.997070 2.537488 3.786612 +v -2.068822 2.547395 3.724112 +v -2.126565 2.619148 3.698223 +v -2.136472 2.710716 3.724112 +v -2.092741 2.768458 3.786612 +v -2.020988 2.758551 3.849112 +v -1.953338 2.595230 3.849112 +v -1.915410 2.571313 3.750000 +v -1.929420 2.605138 3.661612 +v -1.963245 2.686798 3.625000 +v -1.997070 2.768458 3.661612 +v -2.011080 2.802283 3.750000 +v -1.997070 2.768458 3.838388 +v -1.929420 2.605138 3.838388 +v -1.997070 2.537488 7.713388 +v -2.068822 2.547395 7.775888 +v -2.126565 2.619148 7.801777 +v -2.136472 2.710716 7.775888 +v -2.092741 2.768458 7.713388 +v -2.020987 2.758551 7.650888 +v -1.953338 2.595230 7.650888 +v -1.915410 2.571313 7.750000 +v -1.929420 2.605138 7.838388 +v -1.963245 2.686798 7.875000 +v -1.997070 2.768458 7.838388 +v -2.011080 2.802283 7.750000 +v -1.997070 2.768458 7.661612 +v -1.929420 2.605138 7.661612 +v -1.732275 2.782469 7.625000 +v -1.684439 2.666984 7.750000 +v -1.698451 2.700808 7.838388 +v -1.732275 2.782469 7.875000 +v -1.766099 2.864129 7.838388 +v -1.780111 2.897954 7.750000 +v -1.766099 2.864129 7.661612 +v -1.698450 2.700808 7.661612 +v -1.732275 2.782469 3.875000 +v -1.684439 2.666984 3.750000 +v -1.698451 2.700808 3.661612 +v -1.732275 2.782469 3.625000 +v -1.766099 2.864129 3.661612 +v -1.780111 2.897954 3.750000 +v -1.766099 2.864129 3.838388 +v -1.698451 2.700808 3.838388 +v -2.126566 4.245553 3.875000 +v -2.126566 4.245553 7.625000 +v -2.194215 4.313202 3.875000 +v -2.194215 4.313202 7.625000 +v -2.194215 4.408874 3.875000 +v -2.194215 4.408874 7.625000 +v -2.126566 4.476523 3.875000 +v -2.126566 4.476523 7.625000 +v -2.030895 4.476523 3.875000 +v -2.030895 4.476523 7.625000 +v -1.963245 4.408874 3.875000 +v -1.963245 4.408874 7.625000 +v -1.963245 4.313202 3.875000 +v -1.963245 4.313202 7.625000 +v -2.030895 4.245553 3.875000 +v -2.030895 4.245553 7.625000 +v -2.092741 4.231543 3.786612 +v -2.136472 4.289284 3.724112 +v -2.126565 4.380852 3.698223 +v -2.068823 4.452605 3.724112 +v -1.997069 4.462512 3.786612 +v -1.953338 4.404770 3.849112 +v -2.020988 4.241449 3.849112 +v -2.011081 4.197718 3.750000 +v -1.997069 4.231542 3.661612 +v -1.963245 4.313202 3.625000 +v -1.929420 4.394863 3.661612 +v -1.915409 4.428687 3.750000 +v -1.929420 4.394863 3.838388 +v -1.997069 4.231542 3.838388 +v -2.092741 4.231543 7.713388 +v -2.136472 4.289284 7.775888 +v -2.126565 4.380852 7.801777 +v -2.068823 4.452605 7.775888 +v -1.997069 4.462512 7.713388 +v -1.953337 4.404769 7.650888 +v -2.020988 4.241449 7.650888 +v -2.011081 4.197718 7.750000 +v -1.997069 4.231542 7.838388 +v -1.963245 4.313202 7.875000 +v -1.929420 4.394863 7.838388 +v -1.915409 4.428687 7.750000 +v -1.929420 4.394863 7.661612 +v -1.997069 4.231542 7.661612 +v -1.732275 4.217531 7.625000 +v -1.780110 4.102046 7.750000 +v -1.766100 4.135871 7.838388 +v -1.732275 4.217531 7.875000 +v -1.698450 4.299191 7.838388 +v -1.684440 4.333017 7.750000 +v -1.698450 4.299191 7.661612 +v -1.766099 4.135871 7.661612 +v -1.732275 4.217531 3.875000 +v -1.780110 4.102046 3.750000 +v -1.766100 4.135871 3.661612 +v -1.732275 4.217531 3.625000 +v -1.698450 4.299191 3.661612 +v -1.684440 4.333017 3.750000 +v -1.698450 4.299191 3.838388 +v -1.766100 4.135871 3.838388 +v -2.030893 4.476523 -3.875000 +v -2.030894 4.476523 -7.625000 +v -2.126564 4.476523 -3.875000 +v -2.126565 4.476523 -7.625000 +v -2.194214 4.408874 -3.875000 +v -2.194215 4.408874 -7.625000 +v -2.194214 4.313202 -3.875000 +v -2.194215 4.313202 -7.625000 +v -2.126564 4.245553 -3.875000 +v -2.126565 4.245553 -7.625000 +v -2.030893 4.245553 -3.875000 +v -2.030894 4.245553 -7.625000 +v -1.963244 4.313202 -3.875000 +v -1.963244 4.313202 -7.625000 +v -1.963244 4.408874 -3.875000 +v -1.963244 4.408874 -7.625000 +v -1.997069 4.462512 -3.786612 +v -2.068821 4.452605 -3.724112 +v -2.126564 4.380852 -3.698223 +v -2.136471 4.289285 -3.724112 +v -2.092739 4.231542 -3.786612 +v -2.020987 4.241449 -3.849112 +v -1.953337 4.404770 -3.849112 +v -1.915409 4.428688 -3.750000 +v -1.929419 4.394863 -3.661612 +v -1.963244 4.313202 -3.625000 +v -1.997069 4.231542 -3.661612 +v -2.011079 4.197718 -3.750000 +v -1.997069 4.231542 -3.838388 +v -1.929419 4.394863 -3.838388 +v -1.997069 4.462512 -7.713388 +v -2.068822 4.452605 -7.775888 +v -2.126565 4.380852 -7.801777 +v -2.136472 4.289285 -7.775888 +v -2.092740 4.231542 -7.713388 +v -2.020987 4.241449 -7.650888 +v -1.953337 4.404770 -7.650888 +v -1.915409 4.428688 -7.750000 +v -1.929419 4.394863 -7.838388 +v -1.963244 4.313202 -7.875000 +v -1.997069 4.231542 -7.838388 +v -2.011080 4.197718 -7.750000 +v -1.997069 4.231542 -7.661612 +v -1.929419 4.394863 -7.661612 +v -1.732274 4.217532 -7.625000 +v -1.684438 4.333016 -7.750000 +v -1.698450 4.299192 -7.838388 +v -1.732274 4.217532 -7.875000 +v -1.766099 4.135871 -7.838388 +v -1.780110 4.102046 -7.750000 +v -1.766099 4.135871 -7.661612 +v -1.698449 4.299192 -7.661612 +v -1.732274 4.217532 -3.875000 +v -1.684438 4.333016 -3.750000 +v -1.698450 4.299192 -3.661612 +v -1.732274 4.217532 -3.625000 +v -1.766098 4.135871 -3.661612 +v -1.780110 4.102046 -3.750000 +v -1.766098 4.135871 -3.838388 +v -1.698450 4.299192 -3.838388 +v -2.126565 2.754447 -3.875000 +v -2.126565 2.754447 -7.625000 +v -2.194214 2.686798 -3.875000 +v -2.194214 2.686798 -7.625000 +v -2.194214 2.591127 -3.875000 +v -2.194215 2.591127 -7.625000 +v -2.126565 2.523477 -3.875000 +v -2.126565 2.523477 -7.625000 +v -2.030894 2.523477 -3.875000 +v -2.030894 2.523477 -7.625000 +v -1.963244 2.591127 -3.875000 +v -1.963244 2.591127 -7.625000 +v -1.963244 2.686798 -3.875000 +v -1.963244 2.686798 -7.625000 +v -2.030894 2.754447 -3.875000 +v -2.030894 2.754447 -7.625000 +v -2.092739 2.768458 -3.786612 +v -2.136471 2.710716 -3.724112 +v -2.126564 2.619148 -3.698223 +v -2.068822 2.547395 -3.724112 +v -1.997069 2.537488 -3.786612 +v -1.953337 2.595230 -3.849112 +v -2.020987 2.758551 -3.849112 +v -2.011080 2.802283 -3.750000 +v -1.997069 2.768458 -3.661612 +v -1.963244 2.686798 -3.625000 +v -1.929419 2.605137 -3.661612 +v -1.915409 2.571313 -3.750000 +v -1.929419 2.605137 -3.838388 +v -1.997069 2.768458 -3.838388 +v -2.092740 2.768458 -7.713388 +v -2.136471 2.710716 -7.775888 +v -2.126564 2.619148 -7.801777 +v -2.068822 2.547395 -7.775888 +v -1.997069 2.537488 -7.713388 +v -1.953337 2.595231 -7.650888 +v -2.020987 2.758551 -7.650888 +v -2.011080 2.802283 -7.750000 +v -1.997069 2.768458 -7.838388 +v -1.963244 2.686798 -7.875000 +v -1.929420 2.605137 -7.838388 +v -1.915409 2.571313 -7.750000 +v -1.929420 2.605137 -7.661612 +v -1.997069 2.768458 -7.661612 +v -1.732274 2.782469 -7.625000 +v -1.780109 2.897954 -7.750000 +v -1.766099 2.864129 -7.838388 +v -1.732274 2.782469 -7.875000 +v -1.698449 2.700809 -7.838388 +v -1.684439 2.666983 -7.750000 +v -1.698449 2.700809 -7.661612 +v -1.766099 2.864129 -7.661612 +v -1.732274 2.782469 -3.875000 +v -1.780109 2.897954 -3.750000 +v -1.766099 2.864129 -3.661612 +v -1.732274 2.782469 -3.625000 +v -1.698449 2.700809 -3.661612 +v -1.684439 2.666983 -3.750000 +v -1.698449 2.700809 -3.838388 +v -1.766099 2.864129 -3.838388 +v 2.030895 2.523477 -3.875000 +v 2.030894 2.523477 -7.625000 +v 2.126565 2.523477 -3.875000 +v 2.126565 2.523477 -7.625000 +v 2.194215 2.591127 -3.875000 +v 2.194214 2.591127 -7.625000 +v 2.194215 2.686798 -3.875000 +v 2.194214 2.686798 -7.625000 +v 2.126565 2.754447 -3.875000 +v 2.126565 2.754447 -7.625000 +v 2.030895 2.754447 -3.875000 +v 2.030894 2.754447 -7.625000 +v 1.963244 2.686798 -3.875000 +v 1.963244 2.686798 -7.625000 +v 1.963244 2.591127 -3.875000 +v 1.963244 2.591127 -7.625000 +v 1.997069 2.537488 -3.786612 +v 2.068822 2.547395 -3.724112 +v 2.126565 2.619148 -3.698223 +v 2.136472 2.710716 -3.724112 +v 2.092741 2.768458 -3.786612 +v 2.020988 2.758551 -3.849112 +v 1.953338 2.595230 -3.849112 +v 1.915409 2.571313 -3.750000 +v 1.929420 2.605138 -3.661612 +v 1.963244 2.686798 -3.625000 +v 1.997069 2.768458 -3.661612 +v 2.011080 2.802283 -3.750000 +v 1.997069 2.768458 -3.838388 +v 1.929420 2.605138 -3.838388 +v 1.997069 2.537488 -7.713388 +v 2.068821 2.547395 -7.775888 +v 2.126565 2.619148 -7.801777 +v 2.136471 2.710716 -7.775888 +v 2.092740 2.768458 -7.713388 +v 2.020986 2.758551 -7.650888 +v 1.953337 2.595230 -7.650888 +v 1.915409 2.571313 -7.750000 +v 1.929419 2.605138 -7.838388 +v 1.963244 2.686798 -7.875000 +v 1.997069 2.768458 -7.838388 +v 2.011079 2.802283 -7.750000 +v 1.997069 2.768458 -7.661612 +v 1.929419 2.605138 -7.661612 +v 1.732274 2.782469 -7.625000 +v 1.684438 2.666984 -7.750000 +v 1.698450 2.700808 -7.838388 +v 1.732274 2.782469 -7.875000 +v 1.766099 2.864129 -7.838388 +v 1.780110 2.897954 -7.750000 +v 1.766099 2.864129 -7.661612 +v 1.698449 2.700808 -7.661612 +v 1.732274 2.782469 -3.875000 +v 1.684439 2.666984 -3.750000 +v 1.698450 2.700808 -3.661612 +v 1.732274 2.782469 -3.625000 +v 1.766099 2.864129 -3.661612 +v 1.780110 2.897954 -3.750000 +v 1.766099 2.864129 -3.838388 +v 1.698450 2.700808 -3.838388 +v 2.126565 4.245553 -3.875000 +v 2.126565 4.245553 -7.625000 +v 2.194215 4.313202 -3.875000 +v 2.194215 4.313202 -7.625000 +v 2.194215 4.408874 -3.875000 +v 2.194214 4.408874 -7.625000 +v 2.126565 4.476523 -3.875000 +v 2.126565 4.476523 -7.625000 +v 2.030894 4.476523 -3.875000 +v 2.030894 4.476523 -7.625000 +v 1.963244 4.408874 -3.875000 +v 1.963244 4.408874 -7.625000 +v 1.963244 4.313202 -3.875000 +v 1.963244 4.313202 -7.625000 +v 2.030894 4.245553 -3.875000 +v 2.030894 4.245553 -7.625000 +v 2.092741 4.231543 -3.786612 +v 2.136472 4.289284 -3.724112 +v 2.126565 4.380852 -3.698223 +v 2.068822 4.452605 -3.724112 +v 1.997069 4.462512 -3.786612 +v 1.953338 4.404770 -3.849112 +v 2.020987 4.241449 -3.849112 +v 2.011080 4.197718 -3.750000 +v 1.997069 4.231542 -3.661612 +v 1.963244 4.313202 -3.625000 +v 1.929420 4.394863 -3.661612 +v 1.915409 4.428687 -3.750000 +v 1.929420 4.394863 -3.838388 +v 1.997069 4.231542 -3.838388 +v 2.092740 4.231543 -7.713388 +v 2.136472 4.289284 -7.775888 +v 2.126565 4.380852 -7.801777 +v 2.068822 4.452605 -7.775888 +v 1.997069 4.462512 -7.713388 +v 1.953337 4.404769 -7.650888 +v 2.020987 4.241449 -7.650888 +v 2.011080 4.197718 -7.750000 +v 1.997069 4.231542 -7.838388 +v 1.963244 4.313202 -7.875000 +v 1.929419 4.394863 -7.838388 +v 1.915409 4.428687 -7.750000 +v 1.929419 4.394863 -7.661612 +v 1.997069 4.231542 -7.661612 +v 1.732274 4.217531 -7.625000 +v 1.780109 4.102046 -7.750000 +v 1.766099 4.135871 -7.838388 +v 1.732274 4.217531 -7.875000 +v 1.698449 4.299191 -7.838388 +v 1.684439 4.333017 -7.750000 +v 1.698449 4.299191 -7.661612 +v 1.766099 4.135871 -7.661612 +v 1.732274 4.217531 -3.875000 +v 1.780110 4.102046 -3.750000 +v 1.766100 4.135871 -3.661612 +v 1.732274 4.217531 -3.625000 +v 1.698449 4.299191 -3.661612 +v 1.684439 4.333017 -3.750000 +v 1.698449 4.299191 -3.838388 +v 1.766100 4.135871 -3.838388 +v 2.500000 3.750000 -5.750000 +v 2.500000 3.250000 -5.750000 +v 2.500000 3.750000 -6.250000 +v 2.500000 3.250000 -6.250000 +v 1.500000 3.750000 -6.250000 +v 1.500000 3.750000 -5.750000 +v 1.500000 3.250000 -5.750000 +v 1.500000 3.250000 -6.250000 +v 1.500000 3.875000 -6.375000 +v 1.500000 3.875000 -5.625000 +v 1.500000 3.125000 -5.625000 +v 1.500000 3.125000 -6.375000 +v 0.875000 3.875000 -6.375000 +v 0.875000 3.875000 -5.625000 +v 0.875000 3.125000 -5.625000 +v 0.875000 3.125000 -6.375000 +v -2.500000 3.750000 -6.250000 +v -2.500000 3.250000 -6.250000 +v -2.500000 3.750000 -5.750000 +v -2.500000 3.250000 -5.750000 +v -1.500000 3.750000 -5.750000 +v -1.500000 3.750000 -6.250000 +v -1.500000 3.250000 -6.250000 +v -1.500000 3.250000 -5.750000 +v -1.500000 3.875000 -5.625000 +v -1.500000 3.875000 -6.375000 +v -1.500000 3.125000 -6.375000 +v -1.500000 3.125000 -5.625000 +v -0.875000 3.875000 -5.625000 +v -0.875000 3.875000 -6.375000 +v -0.875000 3.125000 -6.375000 +v -0.875000 3.125000 -5.625000 +v -2.500000 3.750000 5.750000 +v -2.500000 3.250000 5.750000 +v -2.500000 3.750000 6.250000 +v -2.500000 3.250000 6.250000 +v -1.500000 3.750000 6.250000 +v -1.500000 3.750000 5.750000 +v -1.500000 3.250000 5.750000 +v -1.500000 3.250000 6.250000 +v -1.500000 3.875000 6.375000 +v -1.500000 3.875000 5.625000 +v -1.500000 3.125000 5.625000 +v -1.500000 3.125000 6.375000 +v -0.875000 3.875000 6.375000 +v -0.875000 3.875000 5.625000 +v -0.875000 3.125000 5.625000 +v -0.875000 3.125000 6.375000 +v -1.750000 0.000000 8.250000 +v -1.250000 0.000000 8.250000 +v -1.750000 0.000000 7.750000 +v -1.250000 0.000000 7.750000 +v -1.750000 0.125000 7.750000 +v -1.750000 0.125000 8.250000 +v -1.250000 0.125000 8.250000 +v -1.250000 0.125000 7.750000 +v -1.687500 0.125000 7.812500 +v -1.687500 0.125000 8.187500 +v -1.312500 0.125000 8.187500 +v -1.312500 0.125000 7.812500 +v -1.687500 0.750000 7.812500 +v -1.687500 0.750000 8.187500 +v -1.312500 0.750000 8.187500 +v -1.312500 0.750000 7.812500 +v 1.250000 0.000000 6.250000 +v 1.750000 0.000000 6.250000 +v 1.250000 0.000000 5.750000 +v 1.750000 0.000000 5.750000 +v 1.250000 0.125000 5.750000 +v 1.250000 0.125000 6.250000 +v 1.750000 0.125000 6.250000 +v 1.750000 0.125000 5.750000 +v 1.312500 0.125000 5.812500 +v 1.312500 0.125000 6.187500 +v 1.687500 0.125000 6.187500 +v 1.687500 0.125000 5.812500 +v 1.312500 0.750000 5.812500 +v 1.312500 0.750000 6.187500 +v 1.687500 0.750000 6.187500 +v 1.687500 0.750000 5.812500 +v -1.750000 0.000000 6.250000 +v -1.250000 0.000000 6.250000 +v -1.750000 0.000000 5.750000 +v -1.250000 0.000000 5.750000 +v -1.750000 0.125000 5.750000 +v -1.750000 0.125000 6.250000 +v -1.250000 0.125000 6.250000 +v -1.250000 0.125000 5.750000 +v -1.687500 0.125000 5.812500 +v -1.687500 0.125000 6.187500 +v -1.312500 0.125000 6.187500 +v -1.312500 0.125000 5.812500 +v -1.687500 0.750000 5.812500 +v -1.687500 0.750000 6.187500 +v -1.312500 0.750000 6.187500 +v -1.312500 0.750000 5.812500 +v 1.250000 0.000000 4.250000 +v 1.750000 0.000000 4.250000 +v 1.250000 0.000000 3.750000 +v 1.750000 0.000000 3.750000 +v 1.250000 0.125000 3.750000 +v 1.250000 0.125000 4.250000 +v 1.750000 0.125000 4.250000 +v 1.750000 0.125000 3.750000 +v 1.312500 0.125000 3.812500 +v 1.312500 0.125000 4.187500 +v 1.687500 0.125000 4.187500 +v 1.687500 0.125000 3.812500 +v 1.312500 0.750000 3.812500 +v 1.312500 0.750000 4.187500 +v 1.687500 0.750000 4.187500 +v 1.687500 0.750000 3.812500 +v -1.750000 0.000000 4.250000 +v -1.250000 0.000000 4.250000 +v -1.750000 0.000000 3.750000 +v -1.250000 0.000000 3.750000 +v -1.750000 0.125000 3.750000 +v -1.750000 0.125000 4.250000 +v -1.250000 0.125000 4.250000 +v -1.250000 0.125000 3.750000 +v -1.687500 0.125000 3.812500 +v -1.687500 0.125000 4.187500 +v -1.312500 0.125000 4.187500 +v -1.312500 0.125000 3.812500 +v -1.687500 0.750000 3.812500 +v -1.687500 0.750000 4.187500 +v -1.312500 0.750000 4.187500 +v -1.312500 0.750000 3.812500 +v 1.250000 0.000000 2.250000 +v 1.750000 0.000000 2.250000 +v 1.250000 0.000000 1.750000 +v 1.750000 0.000000 1.750000 +v 1.250000 0.125000 1.750000 +v 1.250000 0.125000 2.250000 +v 1.750000 0.125000 2.250000 +v 1.750000 0.125000 1.750000 +v 1.312500 0.125000 1.812500 +v 1.312500 0.125000 2.187500 +v 1.687500 0.125000 2.187500 +v 1.687500 0.125000 1.812500 +v 1.312500 0.750000 1.812500 +v 1.312500 0.750000 2.187500 +v 1.687500 0.750000 2.187500 +v 1.687500 0.750000 1.812500 +v -1.750000 0.000000 2.250000 +v -1.250000 0.000000 2.250000 +v -1.750000 0.000000 1.750000 +v -1.250000 0.000000 1.750000 +v -1.750000 0.125000 1.750000 +v -1.750000 0.125000 2.250000 +v -1.250000 0.125000 2.250000 +v -1.250000 0.125000 1.750000 +v -1.687500 0.125000 1.812500 +v -1.687500 0.125000 2.187500 +v -1.312500 0.125000 2.187500 +v -1.312500 0.125000 1.812500 +v -1.687500 0.750000 1.812500 +v -1.687500 0.750000 2.187500 +v -1.312500 0.750000 2.187500 +v -1.312500 0.750000 1.812500 +v 1.250000 0.000000 0.250000 +v 1.750000 0.000000 0.250000 +v 1.250000 0.000000 -0.250000 +v 1.750000 0.000000 -0.250000 +v 1.250000 0.125000 -0.250000 +v 1.250000 0.125000 0.250000 +v 1.750000 0.125000 0.250000 +v 1.750000 0.125000 -0.250000 +v 1.312500 0.125000 -0.187500 +v 1.312500 0.125000 0.187500 +v 1.687500 0.125000 0.187500 +v 1.687500 0.125000 -0.187500 +v 1.312500 0.750000 -0.187500 +v 1.312500 0.750000 0.187500 +v 1.687500 0.750000 0.187500 +v 1.687500 0.750000 -0.187500 +v -1.750000 0.000000 0.250000 +v -1.250000 0.000000 0.250000 +v -1.750000 0.000000 -0.250000 +v -1.250000 0.000000 -0.250000 +v -1.750000 0.125000 -0.250000 +v -1.750000 0.125000 0.250000 +v -1.250000 0.125000 0.250000 +v -1.250000 0.125000 -0.250000 +v -1.687500 0.125000 -0.187500 +v -1.687500 0.125000 0.187500 +v -1.312500 0.125000 0.187500 +v -1.312500 0.125000 -0.187500 +v -1.687500 0.750000 -0.187500 +v -1.687500 0.750000 0.187500 +v -1.312500 0.750000 0.187500 +v -1.312500 0.750000 -0.187500 +v 1.250000 0.000000 -1.750000 +v 1.750000 0.000000 -1.750000 +v 1.250000 0.000000 -2.250000 +v 1.750000 0.000000 -2.250000 +v 1.250000 0.125000 -2.250000 +v 1.250000 0.125000 -1.750000 +v 1.750000 0.125000 -1.750000 +v 1.750000 0.125000 -2.250000 +v 1.312500 0.125000 -2.187500 +v 1.312500 0.125000 -1.812500 +v 1.687500 0.125000 -1.812500 +v 1.687500 0.125000 -2.187500 +v 1.312500 0.750000 -2.187500 +v 1.312500 0.750000 -1.812500 +v 1.687500 0.750000 -1.812500 +v 1.687500 0.750000 -2.187500 +v -1.750000 0.000000 -1.750000 +v -1.250000 0.000000 -1.750000 +v -1.750000 0.000000 -2.250000 +v -1.250000 0.000000 -2.250000 +v -1.750000 0.125000 -2.250000 +v -1.750000 0.125000 -1.750000 +v -1.250000 0.125000 -1.750000 +v -1.250000 0.125000 -2.250000 +v -1.687500 0.125000 -2.187500 +v -1.687500 0.125000 -1.812500 +v -1.312500 0.125000 -1.812500 +v -1.312500 0.125000 -2.187500 +v -1.687500 0.750000 -2.187500 +v -1.687500 0.750000 -1.812500 +v -1.312500 0.750000 -1.812500 +v -1.312500 0.750000 -2.187500 +v 1.250000 0.000000 -3.750000 +v 1.750000 0.000000 -3.750000 +v 1.250000 0.000000 -4.250000 +v 1.750000 0.000000 -4.250000 +v 1.250000 0.125000 -4.250000 +v 1.250000 0.125000 -3.750000 +v 1.750000 0.125000 -3.750000 +v 1.750000 0.125000 -4.250000 +v 1.312500 0.125000 -4.187500 +v 1.312500 0.125000 -3.812500 +v 1.687500 0.125000 -3.812500 +v 1.687500 0.125000 -4.187500 +v 1.312500 0.750000 -4.187500 +v 1.312500 0.750000 -3.812500 +v 1.687500 0.750000 -3.812500 +v 1.687500 0.750000 -4.187500 +v -1.750000 0.000000 -3.750000 +v -1.250000 0.000000 -3.750000 +v -1.750000 0.000000 -4.250000 +v -1.250000 0.000000 -4.250000 +v -1.750000 0.125000 -4.250000 +v -1.750000 0.125000 -3.750000 +v -1.250000 0.125000 -3.750000 +v -1.250000 0.125000 -4.250000 +v -1.687500 0.125000 -4.187500 +v -1.687500 0.125000 -3.812500 +v -1.312500 0.125000 -3.812500 +v -1.312500 0.125000 -4.187500 +v -1.687500 0.750000 -4.187500 +v -1.687500 0.750000 -3.812500 +v -1.312500 0.750000 -3.812500 +v -1.312500 0.750000 -4.187500 +v 1.250000 0.000000 -5.750000 +v 1.750000 0.000000 -5.750000 +v 1.250000 0.000000 -6.250000 +v 1.750000 0.000000 -6.250000 +v 1.250000 0.125000 -6.250000 +v 1.250000 0.125000 -5.750000 +v 1.750000 0.125000 -5.750000 +v 1.750000 0.125000 -6.250000 +v 1.312500 0.125000 -6.187500 +v 1.312500 0.125000 -5.812500 +v 1.687500 0.125000 -5.812500 +v 1.687500 0.125000 -6.187500 +v 1.312500 0.750000 -6.187500 +v 1.312500 0.750000 -5.812500 +v 1.687500 0.750000 -5.812500 +v 1.687500 0.750000 -6.187500 +v -1.750000 0.000000 -5.750000 +v -1.250000 0.000000 -5.750000 +v -1.750000 0.000000 -6.250000 +v -1.250000 0.000000 -6.250000 +v -1.750000 0.125000 -6.250000 +v -1.750000 0.125000 -5.750000 +v -1.250000 0.125000 -5.750000 +v -1.250000 0.125000 -6.250000 +v -1.687500 0.125000 -6.187500 +v -1.687500 0.125000 -5.812500 +v -1.312500 0.125000 -5.812500 +v -1.312500 0.125000 -6.187500 +v -1.687500 0.750000 -6.187500 +v -1.687500 0.750000 -5.812500 +v -1.312500 0.750000 -5.812500 +v -1.312500 0.750000 -6.187500 +v 1.250000 0.000000 -7.750000 +v 1.750000 0.000000 -7.750000 +v 1.250000 0.000000 -8.250000 +v 1.750000 0.000000 -8.250000 +v 1.250000 0.125000 -8.250000 +v 1.250000 0.125000 -7.750000 +v 1.750000 0.125000 -7.750000 +v 1.750000 0.125000 -8.250000 +v 1.312500 0.125000 -8.187500 +v 1.312500 0.125000 -7.812500 +v 1.687500 0.125000 -7.812500 +v 1.687500 0.125000 -8.187500 +v 1.312500 0.750000 -8.187500 +v 1.312500 0.750000 -7.812500 +v 1.687500 0.750000 -7.812500 +v 1.687500 0.750000 -8.187500 +v -1.750000 0.000000 -7.750000 +v -1.250000 0.000000 -7.750000 +v -1.750000 0.000000 -8.250000 +v -1.250000 0.000000 -8.250000 +v -1.750000 0.125000 -8.250000 +v -1.750000 0.125000 -7.750000 +v -1.250000 0.125000 -7.750000 +v -1.250000 0.125000 -8.250000 +v -1.687500 0.125000 -8.187500 +v -1.687500 0.125000 -7.812500 +v -1.312500 0.125000 -7.812500 +v -1.312500 0.125000 -8.187500 +v -1.687500 0.750000 -8.187500 +v -1.687500 0.750000 -7.812500 +v -1.312500 0.750000 -7.812500 +v -1.312500 0.750000 -8.187500 +v 5.370945 3.437636 0.031646 +v 5.482748 3.437636 -0.024255 +v 5.479053 3.562364 -0.031646 +v 5.367250 3.562364 0.024256 +v 3.989082 5.816198 -2.732081 +v 4.100885 5.816198 -2.787983 +v 4.148417 5.881990 -2.692919 +v 4.036614 5.881990 -2.637018 +v 5.093926 3.397937 -0.522393 +v 5.205729 3.397937 -0.578294 +v 5.213573 3.521701 -0.562607 +v 5.101769 3.521701 -0.506706 +v 4.813114 3.624890 -1.084016 +v 4.924919 3.624890 -1.139917 +v 4.951885 3.734385 -1.085984 +v 4.840080 3.734385 -1.030083 +v 4.535995 4.104363 -1.638257 +v 4.647799 4.104363 -1.694158 +v 4.686504 4.194551 -1.616744 +v 4.574701 4.194551 -1.560842 +v 4.261469 4.832593 -2.187310 +v 4.373272 4.832593 -2.243212 +v 4.418531 4.905957 -2.152690 +v 4.306728 4.905957 -2.096789 +v 5.392796 3.466860 0.075347 +v 5.504599 3.466860 0.019445 +v 5.457203 3.533140 -0.075347 +v 5.345400 3.533140 -0.019445 +v 4.011459 1.088484 -2.687328 +v 4.123262 1.088484 -2.743229 +v 4.126041 1.213329 -2.737673 +v 4.014238 1.213329 -2.681771 +v 5.120440 2.493382 -0.469364 +v 5.232244 2.493382 -0.525266 +v 5.187058 2.566979 -0.615636 +v 5.075255 2.566979 -0.559734 +v 4.845951 1.765268 -1.018342 +v 4.957754 1.765268 -1.074244 +v 4.919048 1.855455 -1.151658 +v 4.807245 1.855455 -1.095756 +v 4.568831 1.285796 -1.572583 +v 4.680634 1.285796 -1.628485 +v 4.653668 1.395291 -1.682417 +v 4.541865 1.395291 -1.626516 +v 4.288248 1.058917 -2.133752 +v 4.400051 1.058917 -2.189653 +v 4.391752 1.182532 -2.206249 +v 4.279949 1.182532 -2.150347 +v 5.384722 3.444246 0.055514 +v 5.493280 3.444246 -0.006453 +v 5.465277 3.555754 -0.055514 +v 5.356718 3.555754 0.006453 +v 1.931818 3.444246 -5.993546 +v 2.040377 3.444246 -6.055514 +v 2.068381 3.555754 -6.006454 +v 1.959822 3.555754 -5.944486 +v 2.424219 2.941473 -5.130919 +v 2.532779 2.941473 -5.192886 +v 2.554522 3.058527 -5.154795 +v 2.445963 3.058527 -5.092828 +v 3.409801 2.437981 -3.404303 +v 3.518359 2.437981 -3.466271 +v 3.526027 2.562019 -3.452839 +v 3.417467 2.562019 -3.390872 +v 3.906738 2.437981 -2.533729 +v 4.015297 2.437981 -2.595696 +v 4.007631 2.562019 -2.609128 +v 3.899072 2.562019 -2.547160 +v 4.892321 2.941473 -0.807114 +v 5.000879 2.941473 -0.869081 +v 4.979136 3.058527 -0.907172 +v 4.870577 3.058527 -0.845204 +v -5.875000 3.312500 0.324761 +v -5.875000 3.175241 0.187501 +v -5.875000 3.125000 0.000002 +v -5.875000 3.175241 -0.187498 +v -5.875000 3.312500 -0.324758 +v -5.875000 3.500000 -0.374998 +v -5.875000 3.687500 -0.324758 +v -5.875000 3.824759 -0.187498 +v -5.875000 3.875000 0.000002 +v -5.875000 3.824759 0.187502 +v -5.875000 3.500000 0.375002 +v -5.875000 3.687500 0.324761 +v -5.000000 3.312500 0.324761 +v -5.000000 3.175241 0.187501 +v -5.000000 3.125000 0.000001 +v -5.000000 3.175241 -0.187499 +v -5.000000 3.312500 -0.324758 +v -5.000000 3.500000 -0.374999 +v -5.000000 3.687500 -0.324758 +v -5.000000 3.824759 -0.187499 +v -5.000000 3.875000 0.000001 +v -5.000000 3.824759 0.187501 +v -5.000000 3.687500 0.324761 +v -5.000000 3.500000 0.375001 +v -5.000000 3.250000 0.433014 +v -5.000000 3.066987 0.250001 +v -5.000000 3.000000 0.000001 +v -5.000000 3.066987 -0.249999 +v -5.000000 3.250000 -0.433011 +v -5.000000 3.500000 -0.499998 +v -5.000000 3.750000 -0.433011 +v -5.000000 3.933013 -0.249999 +v -5.000000 4.000000 0.000002 +v -5.000000 3.933013 0.250002 +v -5.000000 3.750000 0.433014 +v -5.000000 3.500000 0.500001 +v -4.750000 3.125000 0.649520 +v -4.750000 2.850481 0.375001 +v -4.750000 2.750000 0.000001 +v -4.750000 2.850481 -0.374999 +v -4.750000 3.125000 -0.649517 +v -4.750000 3.500000 -0.749999 +v -4.750000 3.875000 -0.649517 +v -4.750000 4.149519 -0.374999 +v -4.750000 4.250000 0.000001 +v -4.750000 4.149519 0.375001 +v -4.750000 3.875000 0.649521 +v -4.750000 3.500000 0.750001 +v -3.000000 3.250000 0.433014 +v -3.000000 3.066987 0.250001 +v -3.000000 3.000000 0.000001 +v -3.000000 3.066987 -0.249999 +v -3.000000 3.250000 -0.433012 +v -3.000000 3.500000 -0.499999 +v -3.000000 3.750000 -0.433012 +v -3.000000 3.933013 -0.249999 +v -3.000000 4.000000 0.000001 +v -3.000000 3.933013 0.250001 +v -3.000000 3.750000 0.433014 +v -3.000000 3.500000 0.500001 +v -3.250000 3.125000 0.649520 +v -3.250000 2.850481 0.375001 +v -3.250000 2.750000 0.000001 +v -3.250000 2.850481 -0.374999 +v -3.250000 3.125000 -0.649518 +v -3.250000 3.500000 -0.749999 +v -3.250000 3.875000 -0.649518 +v -3.250000 4.149519 -0.374999 +v -3.250000 4.250000 0.000001 +v -3.250000 4.149519 0.375001 +v -3.250000 3.875000 0.649520 +v -3.250000 3.500000 0.750001 +v -4.870577 3.058527 -0.845204 +v -4.979136 3.058527 -0.907171 +v -5.000879 2.941473 -0.869080 +v -4.892321 2.941473 -0.807113 +v -3.899072 2.562019 -2.547160 +v -4.007631 2.562019 -2.609127 +v -4.015297 2.437981 -2.595696 +v -3.906738 2.437981 -2.533728 +v -3.417467 2.562019 -3.390871 +v -3.526027 2.562019 -3.452839 +v -3.518359 2.437981 -3.466270 +v -3.409801 2.437981 -3.404303 +v -2.445963 3.058527 -5.092828 +v -2.554522 3.058527 -5.154795 +v -2.532779 2.941473 -5.192886 +v -2.424220 2.941473 -5.130919 +v -1.959822 3.555754 -5.944486 +v -2.068382 3.555754 -6.006454 +v -2.040377 3.444246 -6.055514 +v -1.931818 3.444246 -5.993546 +v -5.356718 3.555754 0.006454 +v -5.465277 3.555754 -0.055513 +v -5.493280 3.444246 -0.006452 +v -5.384722 3.444246 0.055515 +v -4.279949 1.182532 -2.150347 +v -4.391752 1.182532 -2.206249 +v -4.400051 1.058917 -2.189653 +v -4.288248 1.058917 -2.133751 +v -4.541865 1.395291 -1.626515 +v -4.653668 1.395291 -1.682417 +v -4.680634 1.285796 -1.628484 +v -4.568831 1.285796 -1.572583 +v -4.807245 1.855455 -1.095756 +v -4.919048 1.855455 -1.151657 +v -4.957754 1.765268 -1.074243 +v -4.845951 1.765268 -1.018341 +v -5.075255 2.566979 -0.559734 +v -5.187058 2.566979 -0.615635 +v -5.232244 2.493382 -0.525265 +v -5.120440 2.493382 -0.469363 +v -4.014238 1.213329 -2.681771 +v -4.126041 1.213329 -2.737672 +v -4.123262 1.088484 -2.743229 +v -4.011459 1.088484 -2.687327 +v -5.345400 3.533140 -0.019444 +v -5.457203 3.533140 -0.075346 +v -5.504599 3.466860 0.019446 +v -5.392796 3.466860 0.075347 +v -4.306728 4.905957 -2.096788 +v -4.418531 4.905957 -2.152690 +v -4.373272 4.832593 -2.243212 +v -4.261469 4.832593 -2.187310 +v -4.574701 4.194551 -1.560841 +v -4.686504 4.194551 -1.616743 +v -4.647799 4.104363 -1.694157 +v -4.535995 4.104363 -1.638256 +v -4.840080 3.734385 -1.030082 +v -4.951885 3.734385 -1.085984 +v -4.924919 3.624890 -1.139916 +v -4.813114 3.624890 -1.084015 +v -5.101769 3.521701 -0.506705 +v -5.213573 3.521701 -0.562607 +v -5.205729 3.397937 -0.578294 +v -5.093926 3.397937 -0.522392 +v -4.036614 5.881990 -2.637017 +v -4.148417 5.881990 -2.692919 +v -4.100885 5.816198 -2.787982 +v -3.989082 5.816198 -2.732081 +v -5.367250 3.562364 0.024256 +v -5.479053 3.562364 -0.031645 +v -5.482748 3.437636 -0.024255 +v -5.370945 3.437636 0.031647 +v 2.112740 2.280209 -2.274519 +v 2.343750 2.579848 -2.187500 +v 2.599880 2.748959 -1.949760 +v 2.812500 2.742228 -1.625000 +v 2.924639 2.561459 -1.300241 +v 2.906250 2.255089 -1.062500 +v 2.762259 1.905209 -0.975482 +v 2.531250 1.605570 -1.062500 +v 2.275120 1.436459 -1.300241 +v 2.062500 1.443190 -1.625000 +v 1.950361 1.623959 -1.949760 +v 1.968750 1.930329 -2.187500 +v 2.033493 2.325962 -1.933013 +v 2.187500 2.525722 -1.875000 +v 2.358253 2.638462 -1.716507 +v 2.500000 2.633975 -1.500000 +v 2.574759 2.513462 -1.283494 +v 2.562500 2.309215 -1.125000 +v 2.466506 2.075962 -1.066988 +v 2.312500 1.876203 -1.125000 +v 2.141746 1.763462 -1.283494 +v 2.000000 1.767949 -1.500000 +v 1.925240 1.888462 -1.716507 +v 1.937500 2.092709 -1.875000 +v 3.237740 1.630690 -3.024519 +v 3.468750 1.930329 -2.937501 +v 3.724879 2.099440 -2.699760 +v 3.937500 2.092709 -2.375000 +v 4.049639 1.911940 -2.050241 +v 4.031250 1.605570 -1.812501 +v 3.887259 1.255690 -1.725482 +v 3.656250 0.956051 -1.812501 +v 3.400120 0.786940 -2.050241 +v 3.187500 0.793671 -2.375000 +v 3.075361 0.974440 -2.699760 +v 3.093750 1.280810 -2.937500 +v 3.533493 1.459937 -2.933013 +v 3.687499 1.659697 -2.875001 +v 3.858253 1.772437 -2.716507 +v 3.999999 1.767950 -2.500001 +v 4.074759 1.647437 -2.283494 +v 4.062500 1.443190 -2.125001 +v 3.966506 1.209937 -2.066988 +v 3.812500 1.010177 -2.125001 +v 3.641746 0.897437 -2.283494 +v 3.499999 0.901924 -2.500000 +v 3.425240 1.022437 -2.716507 +v 3.437499 1.226684 -2.875000 +v 3.587620 1.428687 -2.824760 +v 3.703124 1.578506 -2.781251 +v 3.831189 1.663062 -2.662380 +v 3.937499 1.659696 -2.500000 +v 3.993569 1.569312 -2.337621 +v 3.984374 1.416127 -2.218751 +v 3.912379 1.241187 -2.175241 +v 3.796874 1.091367 -2.218751 +v 3.668809 1.006812 -2.337621 +v 3.562499 1.010177 -2.500000 +v 3.506430 1.100562 -2.662380 +v 3.515624 1.253747 -2.781250 +v 4.359375 1.199620 -3.218751 +v 4.243870 1.049801 -3.262260 +v 4.487439 1.284176 -3.099881 +v 4.593750 1.280810 -2.937501 +v 4.649819 1.190426 -2.775121 +v 4.640625 1.037241 -2.656251 +v 4.568629 0.862301 -2.612741 +v 4.453125 0.712481 -2.656251 +v 4.325059 0.627926 -2.775121 +v 4.218750 0.631291 -2.937500 +v 4.162680 0.721676 -3.099880 +v 4.171875 0.874861 -3.218751 +v 0.908493 2.975481 -1.183013 +v 1.062500 3.175241 -1.125000 +v 1.233253 3.287981 -0.966507 +v 1.375000 3.283494 -0.750000 +v 1.449759 3.162981 -0.533494 +v 1.437500 2.958734 -0.375000 +v 1.341506 2.725481 -0.316988 +v 1.187500 2.525722 -0.375000 +v 1.016747 2.412981 -0.533494 +v 0.875000 2.417468 -0.750000 +v 0.800240 2.537981 -0.966506 +v 0.812500 2.742228 -1.125000 +v 1.016747 2.912981 -0.966506 +v 1.093750 3.012861 -0.937500 +v 1.179126 3.069231 -0.858253 +v 1.250000 3.066988 -0.750000 +v 1.287380 3.006731 -0.641747 +v 1.281250 2.904608 -0.562500 +v 1.233253 2.787981 -0.533494 +v 1.156250 2.688101 -0.562500 +v 1.070873 2.631731 -0.641747 +v 1.000000 2.633975 -0.750000 +v 0.962620 2.694231 -0.858253 +v 0.968750 2.796355 -0.937500 +v 0.454247 3.237741 -0.591506 +v 0.531250 3.337620 -0.562500 +v 0.616627 3.393991 -0.483253 +v 0.687500 3.391747 -0.375000 +v 0.724880 3.331491 -0.266747 +v 0.718750 3.229367 -0.187500 +v 0.670753 3.112741 -0.158494 +v 0.593750 3.012861 -0.187500 +v 0.508373 2.956491 -0.266747 +v 0.437500 2.958734 -0.375000 +v 0.400120 3.018991 -0.483253 +v 0.406250 3.121114 -0.562500 +v 0.546875 3.256430 -0.468750 +v 0.508373 3.206491 -0.483253 +v 0.589563 3.284616 -0.429127 +v 0.625000 3.283494 -0.375000 +v 0.643690 3.253366 -0.320874 +v 0.640625 3.202304 -0.281250 +v 0.616626 3.143991 -0.266747 +v 0.578125 3.094051 -0.281250 +v 0.535437 3.065866 -0.320874 +v 0.500000 3.066987 -0.375000 +v 0.481310 3.097116 -0.429127 +v 0.484375 3.148177 -0.468750 +v 0.359375 3.364684 -0.343750 +v 0.320873 3.314744 -0.358253 +v 0.402063 3.392869 -0.304127 +v 0.437500 3.391747 -0.250000 +v 0.456190 3.361619 -0.195874 +v 0.453125 3.310557 -0.156250 +v 0.429126 3.252244 -0.141747 +v 0.390625 3.202304 -0.156250 +v 0.347937 3.174119 -0.195874 +v 0.312500 3.175241 -0.250000 +v 0.293810 3.205369 -0.304127 +v 0.296875 3.256430 -0.343750 +v 2.762260 1.905209 0.975481 +v 2.906250 2.255088 1.062500 +v 2.924639 2.561459 1.300241 +v 2.812500 2.742228 1.625000 +v 2.599880 2.748959 1.949759 +v 2.343750 2.579848 2.187500 +v 2.112741 2.280209 2.274518 +v 1.968750 1.930329 2.187500 +v 1.950361 1.623959 1.949759 +v 2.062500 1.443190 1.625000 +v 2.275120 1.436459 1.300241 +v 2.531250 1.605569 1.062500 +v 2.466507 2.075962 1.066987 +v 2.562500 2.309215 1.125000 +v 2.574760 2.513462 1.283493 +v 2.500000 2.633975 1.500000 +v 2.358253 2.638462 1.716506 +v 2.187500 2.525721 1.875000 +v 2.033494 2.325962 1.933012 +v 1.937500 2.092709 1.875000 +v 1.925241 1.888462 1.716506 +v 2.000000 1.767949 1.500000 +v 2.141747 1.763462 1.283493 +v 2.312500 1.876202 1.125000 +v 3.887259 1.255690 1.725481 +v 4.031250 1.605569 1.812500 +v 4.049639 1.911940 2.050240 +v 3.937500 2.092709 2.375000 +v 3.724880 2.099440 2.699759 +v 3.468750 1.930329 2.937500 +v 3.237741 1.630690 3.024519 +v 3.093750 1.280810 2.937500 +v 3.075361 0.974440 2.699759 +v 3.187500 0.793671 2.375000 +v 3.400120 0.786940 2.050241 +v 3.656250 0.956050 1.812500 +v 3.966506 1.209936 2.066987 +v 4.062500 1.443189 2.124999 +v 4.074759 1.647437 2.283493 +v 4.000000 1.767949 2.499999 +v 3.858253 1.772437 2.716506 +v 3.687500 1.659696 2.875000 +v 3.533494 1.459936 2.933012 +v 3.437500 1.226683 2.875000 +v 3.425241 1.022436 2.716506 +v 3.500000 0.901924 2.500000 +v 3.641747 0.897436 2.283493 +v 3.812500 1.010177 2.125000 +v 3.912380 1.241187 2.175240 +v 3.984375 1.416126 2.218749 +v 3.993569 1.569312 2.337620 +v 3.937500 1.659696 2.500000 +v 3.831190 1.663062 2.662379 +v 3.703125 1.578506 2.781249 +v 3.587620 1.428687 2.824759 +v 3.515625 1.253747 2.781249 +v 3.506430 1.100562 2.662379 +v 3.562500 1.010177 2.500000 +v 3.668810 1.006812 2.337620 +v 3.796875 1.091367 2.218750 +v 4.640625 1.037240 2.656250 +v 4.568630 0.862300 2.612740 +v 4.649820 1.190425 2.775120 +v 4.593750 1.280810 2.937500 +v 4.487440 1.284175 3.099879 +v 4.359375 1.199620 3.218750 +v 4.243871 1.049800 3.262259 +v 4.171875 0.874860 3.218750 +v 4.162680 0.721675 3.099879 +v 4.218750 0.631291 2.937500 +v 4.325060 0.627925 2.775120 +v 4.453125 0.712481 2.656250 +v 1.341506 2.725481 0.316987 +v 1.437500 2.958734 0.375000 +v 1.449760 3.162981 0.533494 +v 1.375000 3.283494 0.750000 +v 1.233253 3.287981 0.966506 +v 1.062500 3.175241 1.125000 +v 0.908494 2.975481 1.183012 +v 0.812500 2.742228 1.125000 +v 0.800240 2.537981 0.966506 +v 0.875000 2.417468 0.750000 +v 1.016747 2.412981 0.533494 +v 1.187500 2.525721 0.375000 +v 1.233253 2.787981 0.533494 +v 1.281250 2.904608 0.562500 +v 1.287380 3.006731 0.641747 +v 1.250000 3.066987 0.750000 +v 1.179127 3.069231 0.858253 +v 1.093750 3.012861 0.937500 +v 1.016747 2.912981 0.966506 +v 0.968750 2.796354 0.937500 +v 0.962620 2.694231 0.858253 +v 1.000000 2.633975 0.750000 +v 1.070873 2.631731 0.641747 +v 1.156250 2.688101 0.562500 +v 0.670753 3.112741 0.158494 +v 0.718750 3.229367 0.187500 +v 0.724880 3.331491 0.266747 +v 0.687500 3.391747 0.375000 +v 0.616627 3.393991 0.483253 +v 0.531250 3.337620 0.562500 +v 0.454247 3.237741 0.591506 +v 0.406250 3.121114 0.562500 +v 0.400120 3.018990 0.483253 +v 0.437500 2.958734 0.375000 +v 0.508373 2.956490 0.266747 +v 0.593750 3.012861 0.187500 +v 0.640625 3.202304 0.281250 +v 0.616627 3.143991 0.266747 +v 0.643690 3.253366 0.320873 +v 0.625000 3.283494 0.375000 +v 0.589563 3.284616 0.429126 +v 0.546875 3.256430 0.468750 +v 0.508373 3.206491 0.483253 +v 0.484375 3.148177 0.468750 +v 0.481310 3.097115 0.429126 +v 0.500000 3.066987 0.375000 +v 0.535437 3.065865 0.320873 +v 0.578125 3.094050 0.281250 +v 0.453125 3.310557 0.156250 +v 0.429127 3.252244 0.141747 +v 0.456190 3.361619 0.195873 +v 0.437500 3.391747 0.250000 +v 0.402063 3.392869 0.304127 +v 0.359375 3.364683 0.343750 +v 0.320874 3.314744 0.358253 +v 0.296875 3.256430 0.343750 +v 0.293810 3.205369 0.304127 +v 0.312500 3.175241 0.250000 +v 0.347937 3.174119 0.195873 +v 0.390625 3.202304 0.156250 +v 2.112740 4.719791 -2.274519 +v 1.968750 5.069671 -2.187500 +v 1.950360 5.376041 -1.949760 +v 2.062500 5.556810 -1.625000 +v 2.275120 5.563541 -1.300241 +v 2.531250 5.394431 -1.062500 +v 2.762259 5.094791 -0.975482 +v 2.906250 4.744912 -1.062500 +v 2.924639 4.438541 -1.300241 +v 2.812500 4.257772 -1.625000 +v 2.599880 4.251041 -1.949760 +v 2.343750 4.420152 -2.187500 +v 2.033493 4.674038 -1.933013 +v 1.937500 4.907291 -1.875000 +v 1.925240 5.111538 -1.716507 +v 2.000000 5.232051 -1.500000 +v 2.141746 5.236538 -1.283494 +v 2.312500 5.123797 -1.125000 +v 2.466506 4.924038 -1.066988 +v 2.562500 4.690784 -1.125000 +v 2.574759 4.486538 -1.283494 +v 2.500000 4.366025 -1.500000 +v 2.358253 4.361538 -1.716507 +v 2.187500 4.474278 -1.875000 +v 3.237740 5.369310 -3.024519 +v 3.093750 5.719190 -2.937501 +v 3.075360 6.025560 -2.699760 +v 3.187500 6.206329 -2.375000 +v 3.400120 6.213060 -2.050241 +v 3.656250 6.043950 -1.812501 +v 3.887259 5.744310 -1.725482 +v 4.031250 5.394431 -1.812501 +v 4.049639 5.088060 -2.050241 +v 3.937500 4.907291 -2.375000 +v 3.724880 4.900560 -2.699760 +v 3.468750 5.069671 -2.937500 +v 3.533493 5.540064 -2.933013 +v 3.437499 5.773316 -2.875001 +v 3.425240 5.977563 -2.716507 +v 3.499999 6.098076 -2.500001 +v 3.641746 6.102564 -2.283494 +v 3.812500 5.989823 -2.125001 +v 3.966506 5.790064 -2.066988 +v 4.062500 5.556810 -2.125001 +v 4.074759 5.352563 -2.283494 +v 3.999999 5.232050 -2.500000 +v 3.858253 5.227563 -2.716507 +v 3.687499 5.340303 -2.875000 +v 3.587620 5.571314 -2.824760 +v 3.515624 5.746253 -2.781251 +v 3.506430 5.899439 -2.662380 +v 3.562499 5.989823 -2.500000 +v 3.668809 5.993189 -2.337621 +v 3.796874 5.908633 -2.218751 +v 3.912379 5.758814 -2.175241 +v 3.984374 5.583873 -2.218751 +v 3.993569 5.430689 -2.337621 +v 3.937499 5.340304 -2.500000 +v 3.831189 5.336939 -2.662380 +v 3.703124 5.421494 -2.781250 +v 4.171875 6.125140 -3.218751 +v 4.243870 5.950200 -3.262260 +v 4.162680 6.278324 -3.099881 +v 4.218750 6.368710 -2.937501 +v 4.325059 6.372075 -2.775121 +v 4.453125 6.287519 -2.656251 +v 4.568629 6.137700 -2.612741 +v 4.640624 5.962760 -2.656251 +v 4.649819 5.809574 -2.775121 +v 4.593749 5.719191 -2.937500 +v 4.487439 5.715824 -3.099880 +v 4.359375 5.800380 -3.218751 +v 0.908493 4.024519 -1.183013 +v 0.812500 4.257772 -1.125000 +v 0.800240 4.462019 -0.966507 +v 0.875000 4.582532 -0.750000 +v 1.016746 4.587019 -0.533494 +v 1.187500 4.474278 -0.375000 +v 1.341506 4.274519 -0.316988 +v 1.437500 4.041266 -0.375000 +v 1.449759 3.837019 -0.533494 +v 1.375000 3.716506 -0.750000 +v 1.233253 3.712019 -0.966506 +v 1.062500 3.824759 -1.125000 +v 1.016747 4.087019 -0.966506 +v 0.968750 4.203646 -0.937500 +v 0.962620 4.305769 -0.858253 +v 1.000000 4.366025 -0.750000 +v 1.070873 4.368269 -0.641747 +v 1.156250 4.311899 -0.562500 +v 1.233253 4.212019 -0.533494 +v 1.281250 4.095392 -0.562500 +v 1.287380 3.993269 -0.641747 +v 1.250000 3.933013 -0.750000 +v 1.179126 3.930769 -0.858253 +v 1.093750 3.987139 -0.937500 +v 0.454247 3.762259 -0.591506 +v 0.406250 3.878886 -0.562500 +v 0.400120 3.981009 -0.483253 +v 0.437500 4.041266 -0.375000 +v 0.508373 4.043509 -0.266747 +v 0.593750 3.987139 -0.187500 +v 0.670753 3.887259 -0.158494 +v 0.718750 3.770633 -0.187500 +v 0.724880 3.668509 -0.266747 +v 0.687500 3.608253 -0.375000 +v 0.616627 3.606009 -0.483253 +v 0.531250 3.662380 -0.562500 +v 0.484375 3.851823 -0.468750 +v 0.508373 3.793509 -0.483253 +v 0.481310 3.902884 -0.429127 +v 0.500000 3.933013 -0.375000 +v 0.535437 3.934134 -0.320874 +v 0.578125 3.905949 -0.281250 +v 0.616626 3.856009 -0.266747 +v 0.640625 3.797696 -0.281250 +v 0.643690 3.746634 -0.320874 +v 0.625000 3.716506 -0.375000 +v 0.589563 3.715384 -0.429127 +v 0.546875 3.743570 -0.468750 +v 0.296875 3.743570 -0.343750 +v 0.320873 3.685256 -0.358253 +v 0.293810 3.794631 -0.304127 +v 0.312500 3.824759 -0.250000 +v 0.347937 3.825881 -0.195874 +v 0.390625 3.797696 -0.156250 +v 0.429126 3.747756 -0.141747 +v 0.453125 3.689443 -0.156250 +v 0.456190 3.638381 -0.195874 +v 0.437500 3.608253 -0.250000 +v 0.402063 3.607131 -0.304127 +v 0.359375 3.635316 -0.343750 +v 2.762260 5.094791 0.975481 +v 2.531250 5.394431 1.062500 +v 2.275120 5.563541 1.300241 +v 2.062500 5.556810 1.625000 +v 1.950361 5.376041 1.949759 +v 1.968750 5.069671 2.187500 +v 2.112741 4.719791 2.274518 +v 2.343750 4.420152 2.187500 +v 2.599880 4.251041 1.949759 +v 2.812500 4.257772 1.625000 +v 2.924639 4.438541 1.300241 +v 2.906250 4.744912 1.062500 +v 2.466507 4.924038 1.066987 +v 2.312500 5.123798 1.125000 +v 2.141747 5.236538 1.283493 +v 2.000000 5.232051 1.500000 +v 1.925240 5.111539 1.716506 +v 1.937500 4.907291 1.875000 +v 2.033494 4.674038 1.933012 +v 2.187500 4.474278 1.875000 +v 2.358253 4.361538 1.716506 +v 2.500000 4.366025 1.500000 +v 2.574760 4.486538 1.283493 +v 2.562500 4.690785 1.125000 +v 3.887259 5.744310 1.725481 +v 3.656250 6.043950 1.812500 +v 3.400120 6.213060 2.050240 +v 3.187500 6.206329 2.375000 +v 3.075361 6.025560 2.699759 +v 3.093750 5.719191 2.937500 +v 3.237741 5.369310 3.024519 +v 3.468750 5.069672 2.937500 +v 3.724880 4.900561 2.699759 +v 3.937500 4.907291 2.375000 +v 4.049639 5.088060 2.050241 +v 4.031250 5.394431 1.812500 +v 3.966506 5.790064 2.066987 +v 3.812500 5.989823 2.124999 +v 3.641746 6.102564 2.283493 +v 3.500000 6.098076 2.499999 +v 3.425241 5.977564 2.716506 +v 3.437500 5.773317 2.875000 +v 3.533494 5.540064 2.933012 +v 3.687500 5.340304 2.875000 +v 3.858253 5.227564 2.716506 +v 4.000000 5.232051 2.500000 +v 4.074759 5.352563 2.283493 +v 4.062500 5.556810 2.125000 +v 3.912380 5.758814 2.175240 +v 3.796875 5.908633 2.218749 +v 3.668810 5.993189 2.337620 +v 3.562500 5.989823 2.500000 +v 3.506430 5.899439 2.662379 +v 3.515625 5.746254 2.781249 +v 3.587620 5.571314 2.824759 +v 3.703125 5.421494 2.781249 +v 3.831190 5.336939 2.662379 +v 3.937500 5.340304 2.500000 +v 3.993569 5.430689 2.337620 +v 3.984375 5.583874 2.218750 +v 4.453125 6.287520 2.656250 +v 4.568630 6.137700 2.612740 +v 4.325060 6.372075 2.775120 +v 4.218750 6.368710 2.937500 +v 4.162681 6.278325 3.099879 +v 4.171875 6.125140 3.218750 +v 4.243871 5.950200 3.262259 +v 4.359375 5.800381 3.218750 +v 4.487440 5.715825 3.099879 +v 4.593750 5.719191 2.937500 +v 4.649819 5.809575 2.775120 +v 4.640625 5.962760 2.656250 +v 1.341506 4.274519 0.316987 +v 1.187500 4.474278 0.375000 +v 1.016747 4.587019 0.533494 +v 0.875000 4.582532 0.750000 +v 0.800240 4.462019 0.966506 +v 0.812500 4.257772 1.125000 +v 0.908494 4.024519 1.183012 +v 1.062500 3.824759 1.125000 +v 1.233253 3.712019 0.966506 +v 1.375000 3.716506 0.750000 +v 1.449760 3.837019 0.533494 +v 1.437500 4.041266 0.375000 +v 1.233253 4.212019 0.533494 +v 1.156250 4.311899 0.562500 +v 1.070873 4.368269 0.641747 +v 1.000000 4.366025 0.750000 +v 0.962620 4.305769 0.858253 +v 0.968750 4.203646 0.937500 +v 1.016747 4.087019 0.966506 +v 1.093750 3.987139 0.937500 +v 1.179127 3.930769 0.858253 +v 1.250000 3.933013 0.750000 +v 1.287380 3.993269 0.641747 +v 1.281250 4.095393 0.562500 +v 0.670753 3.887260 0.158494 +v 0.593750 3.987139 0.187500 +v 0.508373 4.043509 0.266747 +v 0.437500 4.041266 0.375000 +v 0.400120 3.981010 0.483253 +v 0.406250 3.878886 0.562500 +v 0.454247 3.762260 0.591506 +v 0.531250 3.662380 0.562500 +v 0.616627 3.606009 0.483253 +v 0.687500 3.608253 0.375000 +v 0.724880 3.668509 0.266747 +v 0.718750 3.770633 0.187500 +v 0.578125 3.905949 0.281250 +v 0.616627 3.856010 0.266747 +v 0.535437 3.934135 0.320873 +v 0.500000 3.933013 0.375000 +v 0.481310 3.902885 0.429126 +v 0.484375 3.851823 0.468750 +v 0.508373 3.793510 0.483253 +v 0.546875 3.743570 0.468750 +v 0.589563 3.715384 0.429126 +v 0.625000 3.716506 0.375000 +v 0.643690 3.746634 0.320873 +v 0.640625 3.797696 0.281250 +v 0.390625 3.797696 0.156250 +v 0.429127 3.747756 0.141747 +v 0.347937 3.825881 0.195873 +v 0.312500 3.824759 0.250000 +v 0.293810 3.794631 0.304127 +v 0.296875 3.743570 0.343750 +v 0.320874 3.685256 0.358253 +v 0.359375 3.635317 0.343750 +v 0.402063 3.607131 0.304127 +v 0.437500 3.608253 0.250000 +v 0.456190 3.638381 0.195873 +v 0.453125 3.689443 0.156250 +v -1.500000 3.500000 0.500001 +v -1.500000 3.750000 0.433013 +v -1.500000 3.933013 0.250001 +v -1.500000 4.000000 0.000001 +v -1.500000 3.933013 -0.249999 +v -1.500000 3.750000 -0.433012 +v -1.500000 3.500000 -0.499999 +v -1.500000 3.250000 -0.433012 +v -1.500000 3.066987 -0.249999 +v -1.500000 3.000000 0.000000 +v -1.500000 3.066987 0.250000 +v -1.500000 3.250000 0.433013 +v -1.500000 3.500000 0.250001 +v -1.500000 3.625000 0.216507 +v -1.500000 3.716506 0.125001 +v -1.500000 3.750000 0.000001 +v -1.500000 3.716506 -0.124999 +v -1.500000 3.625000 -0.216506 +v -1.500000 3.500000 -0.249999 +v -1.500000 3.375000 -0.216506 +v -1.500000 3.283494 -0.124999 +v -1.500000 3.250000 0.000001 +v -1.500000 3.283494 0.125000 +v -1.500000 3.375000 0.216507 +v -0.750000 3.500000 0.250000 +v -0.750000 3.625000 0.216507 +v -0.750000 3.716506 0.125000 +v -0.750000 3.750000 0.000000 +v -0.750000 3.716506 -0.124999 +v -0.750000 3.625000 -0.216506 +v -0.750000 3.500000 -0.249999 +v -0.750000 3.375000 -0.216506 +v -0.750000 3.283494 -0.125000 +v -0.750000 3.250000 0.000000 +v -0.750000 3.283494 0.125000 +v -0.750000 3.375000 0.216507 +v -0.750000 3.562500 0.108254 +v -0.750000 3.500000 0.125000 +v -0.750000 3.608253 0.062500 +v -0.750000 3.625000 0.000000 +v -0.750000 3.608253 -0.062500 +v -0.750000 3.562500 -0.108253 +v -0.750000 3.500000 -0.125000 +v -0.750000 3.437500 -0.108253 +v -0.750000 3.391747 -0.062500 +v -0.750000 3.375000 0.000000 +v -0.750000 3.391747 0.062500 +v -0.750000 3.437500 0.108254 +v -0.500000 3.562500 0.108254 +v -0.500000 3.500000 0.125000 +v -0.500000 3.608253 0.062500 +v -0.500000 3.625000 0.000000 +v -0.500000 3.608253 -0.062500 +v -0.500000 3.562500 -0.108253 +v -0.500000 3.500000 -0.125000 +v -0.500000 3.437500 -0.108253 +v -0.500000 3.391747 -0.062500 +v -0.500000 3.375000 0.000000 +v -0.500000 3.391747 0.062500 +v -0.500000 3.437500 0.108254 +v -0.500000 3.500000 -2.250000 +v -0.433013 3.750000 -2.250000 +v -0.250000 3.933013 -2.250000 +v -0.000000 4.000000 -2.250000 +v 0.250000 3.933013 -2.250000 +v 0.433013 3.750000 -2.250000 +v 0.500000 3.500000 -2.250000 +v 0.433013 3.250000 -2.250000 +v 0.250000 3.066987 -2.250000 +v -0.000000 3.000000 -2.250000 +v -0.250000 3.066987 -2.250000 +v -0.433012 3.250000 -2.250000 +v -0.500000 3.500000 -1.500000 +v -0.433012 3.750000 -1.500000 +v -0.250000 3.933013 -1.500000 +v -0.000000 4.000000 -1.500000 +v 0.250000 3.933013 -1.500000 +v 0.433013 3.750000 -1.500000 +v 0.500000 3.500000 -1.500000 +v 0.433013 3.250000 -1.500000 +v 0.250000 3.066987 -1.500000 +v -0.000000 3.000000 -1.500000 +v -0.250000 3.066987 -1.500000 +v -0.433012 3.250000 -1.500000 +v -0.250000 3.500000 -1.500000 +v -0.216506 3.625000 -1.500000 +v -0.125000 3.716506 -1.500000 +v -0.000000 3.750000 -1.500000 +v 0.125000 3.716506 -1.500000 +v 0.216507 3.625000 -1.500000 +v 0.250000 3.500000 -1.500000 +v 0.216507 3.375000 -1.500000 +v 0.125000 3.283494 -1.500000 +v -0.000000 3.250000 -1.500000 +v -0.125000 3.283494 -1.500000 +v -0.216506 3.375000 -1.500000 +v -0.250000 3.500000 -0.750000 +v -0.216506 3.625000 -0.750000 +v -0.125000 3.716506 -0.750000 +v -0.000000 3.750000 -0.750000 +v 0.125000 3.716506 -0.750000 +v 0.216507 3.625000 -0.750000 +v 0.250000 3.500000 -0.750000 +v 0.216507 3.375000 -0.750000 +v 0.125000 3.283494 -0.750000 +v -0.000000 3.250000 -0.750000 +v -0.125000 3.283494 -0.750000 +v -0.216506 3.375000 -0.750000 +v -0.108253 3.562500 -0.750000 +v -0.125000 3.500000 -0.750000 +v -0.062500 3.608253 -0.750000 +v -0.000000 3.625000 -0.750000 +v 0.062500 3.608253 -0.750000 +v 0.108253 3.562500 -0.750000 +v 0.125000 3.500000 -0.750000 +v 0.108253 3.437500 -0.750000 +v 0.062500 3.391747 -0.750000 +v -0.000000 3.375000 -0.750000 +v -0.062500 3.391747 -0.750000 +v -0.108253 3.437500 -0.750000 +v -0.108254 3.562500 -0.500000 +v -0.125000 3.500000 -0.500000 +v -0.062500 3.608253 -0.500000 +v -0.000000 3.625000 -0.500000 +v 0.062500 3.608253 -0.500000 +v 0.108253 3.562500 -0.500000 +v 0.125000 3.500000 -0.500000 +v 0.108253 3.437500 -0.500000 +v 0.062500 3.391747 -0.500000 +v -0.000000 3.375000 -0.500000 +v -0.062500 3.391747 -0.500000 +v -0.108253 3.437500 -0.500000 +v -5.370945 3.437636 -0.031645 +v -5.482748 3.437636 0.024256 +v -5.479053 3.562364 0.031647 +v -5.367250 3.562364 -0.024255 +v -3.989082 5.816198 2.732082 +v -4.100885 5.816198 2.787983 +v -4.148417 5.881990 2.692920 +v -4.036614 5.881990 2.637018 +v -5.093926 3.397937 0.522393 +v -5.205729 3.397937 0.578295 +v -5.213573 3.521701 0.562608 +v -5.101769 3.521701 0.506706 +v -4.813114 3.624890 1.084016 +v -4.924919 3.624890 1.139918 +v -4.951885 3.734385 1.085985 +v -4.840080 3.734385 1.030084 +v -4.535995 4.104363 1.638257 +v -4.647799 4.104363 1.694159 +v -4.686504 4.194551 1.616744 +v -4.574701 4.194551 1.560843 +v -4.261469 4.832593 2.187311 +v -4.373272 4.832593 2.243212 +v -4.418531 4.905957 2.152691 +v -4.306728 4.905957 2.096789 +v -5.392796 3.466860 -0.075346 +v -5.504599 3.466860 -0.019445 +v -5.457203 3.533140 0.075347 +v -5.345400 3.533140 0.019446 +v -4.011459 1.088484 2.687328 +v -4.123262 1.088484 2.743230 +v -4.126041 1.213329 2.737673 +v -4.014238 1.213329 2.681772 +v -5.120440 2.493382 0.469365 +v -5.232244 2.493382 0.525266 +v -5.187058 2.566979 0.615637 +v -5.075255 2.566979 0.559735 +v -4.845951 1.765268 1.018343 +v -4.957754 1.765268 1.074244 +v -4.919048 1.855455 1.151659 +v -4.807245 1.855455 1.095757 +v -4.568831 1.285796 1.572584 +v -4.680634 1.285796 1.628485 +v -4.653668 1.395291 1.682418 +v -4.541865 1.395291 1.626516 +v -4.288248 1.058917 2.133752 +v -4.400051 1.058917 2.189654 +v -4.391752 1.182532 2.206249 +v -4.279949 1.182532 2.150348 +v -5.384722 3.444246 -0.055513 +v -5.493280 3.444246 0.006454 +v -5.465277 3.555754 0.055514 +v -5.356718 3.555754 -0.006453 +v -1.931818 3.444246 5.993546 +v -2.040376 3.444246 6.055514 +v -2.068381 3.555754 6.006454 +v -1.959821 3.555754 5.944486 +v -2.424219 2.941473 5.130919 +v -2.532778 2.941473 5.192886 +v -2.554521 3.058527 5.154795 +v -2.445962 3.058527 5.092828 +v -3.409801 2.437981 3.404304 +v -3.518359 2.437981 3.466271 +v -3.526027 2.562019 3.452840 +v -3.417467 2.562019 3.390872 +v -3.906738 2.437981 2.533729 +v -4.015297 2.437981 2.595697 +v -4.007631 2.562019 2.609128 +v -3.899072 2.562019 2.547161 +v -4.892321 2.941473 0.807114 +v -5.000879 2.941473 0.869082 +v -4.979136 3.058527 0.907172 +v -4.870577 3.058527 0.845205 +v -2.112740 2.280209 2.274520 +v -2.343749 2.579848 2.187501 +v -2.599879 2.748959 1.949760 +v -2.812499 2.742228 1.625001 +v -2.924639 2.561459 1.300241 +v -2.906250 2.255089 1.062501 +v -2.762259 1.905209 0.975482 +v -2.531250 1.605570 1.062501 +v -2.275120 1.436459 1.300241 +v -2.062499 1.443190 1.625001 +v -1.950361 1.623959 1.949760 +v -1.968750 1.930329 2.187501 +v -2.033493 2.325962 1.933014 +v -2.187500 2.525722 1.875001 +v -2.358253 2.638462 1.716507 +v -2.499999 2.633975 1.500001 +v -2.574759 2.513462 1.283494 +v -2.562500 2.309215 1.125001 +v -2.466506 2.075962 1.066988 +v -2.312500 1.876203 1.125001 +v -2.141746 1.763462 1.283494 +v -2.000000 1.767949 1.500001 +v -1.925240 1.888462 1.716507 +v -1.937500 2.092709 1.875001 +v -3.237740 1.630690 3.024520 +v -3.468749 1.930329 2.937501 +v -3.724879 2.099440 2.699760 +v -3.937500 2.092709 2.375001 +v -4.049639 1.911940 2.050241 +v -4.031250 1.605570 1.812501 +v -3.887259 1.255690 1.725482 +v -3.656250 0.956051 1.812502 +v -3.400120 0.786940 2.050241 +v -3.187500 0.793671 2.375001 +v -3.075360 0.974440 2.699760 +v -3.093749 1.280810 2.937501 +v -3.533493 1.459937 2.933014 +v -3.687499 1.659697 2.875001 +v -3.858253 1.772437 2.716507 +v -3.999999 1.767950 2.500001 +v -4.074759 1.647437 2.283495 +v -4.062500 1.443190 2.125001 +v -3.966506 1.209937 2.066988 +v -3.812500 1.010177 2.125001 +v -3.641746 0.897437 2.283495 +v -3.499999 0.901924 2.500001 +v -3.425240 1.022437 2.716507 +v -3.437499 1.226684 2.875001 +v -3.587619 1.428687 2.824760 +v -3.703124 1.578506 2.781251 +v -3.831189 1.663062 2.662381 +v -3.937499 1.659696 2.500001 +v -3.993569 1.569312 2.337621 +v -3.984374 1.416127 2.218751 +v -3.912379 1.241187 2.175241 +v -3.796874 1.091367 2.218751 +v -3.668809 1.006812 2.337621 +v -3.562499 1.010177 2.500001 +v -3.506430 1.100562 2.662381 +v -3.515624 1.253747 2.781251 +v -4.359374 1.199620 3.218751 +v -4.243870 1.049801 3.262261 +v -4.487439 1.284176 3.099881 +v -4.593749 1.280810 2.937501 +v -4.649818 1.190426 2.775122 +v -4.640625 1.037241 2.656251 +v -4.568629 0.862301 2.612742 +v -4.453125 0.712481 2.656251 +v -4.325058 0.627926 2.775121 +v -4.218749 0.631291 2.937501 +v -4.162680 0.721676 3.099881 +v -4.171874 0.874861 3.218751 +v -0.908493 2.975481 1.183013 +v -1.062500 3.175241 1.125001 +v -1.233253 3.287981 0.966507 +v -1.375000 3.283494 0.750001 +v -1.449759 3.162981 0.533494 +v -1.437500 2.958734 0.375001 +v -1.341506 2.725481 0.316988 +v -1.187500 2.525722 0.375001 +v -1.016747 2.412981 0.533494 +v -0.875000 2.417468 0.750000 +v -0.800240 2.537981 0.966507 +v -0.812500 2.742228 1.125000 +v -1.016746 2.912981 0.966507 +v -1.093750 3.012861 0.937501 +v -1.179126 3.069231 0.858254 +v -1.250000 3.066988 0.750001 +v -1.287380 3.006731 0.641747 +v -1.281250 2.904608 0.562501 +v -1.233253 2.787981 0.533494 +v -1.156250 2.688101 0.562501 +v -1.070873 2.631731 0.641747 +v -1.000000 2.633975 0.750000 +v -0.962620 2.694231 0.858253 +v -0.968750 2.796355 0.937500 +v -0.454247 3.237741 0.591507 +v -0.531250 3.337620 0.562500 +v -0.616627 3.393991 0.483254 +v -0.687500 3.391747 0.375000 +v -0.724880 3.331491 0.266747 +v -0.718750 3.229367 0.187500 +v -0.670753 3.112741 0.158494 +v -0.593750 3.012861 0.187500 +v -0.508373 2.956491 0.266747 +v -0.437500 2.958734 0.375000 +v -0.400120 3.018991 0.483254 +v -0.406250 3.121114 0.562500 +v -0.546875 3.256430 0.468750 +v -0.508373 3.206491 0.483253 +v -0.589563 3.284616 0.429127 +v -0.625000 3.283494 0.375000 +v -0.643690 3.253366 0.320874 +v -0.640625 3.202304 0.281250 +v -0.616626 3.143991 0.266747 +v -0.578125 3.094051 0.281250 +v -0.535437 3.065866 0.320874 +v -0.500000 3.066987 0.375000 +v -0.481310 3.097116 0.429127 +v -0.484375 3.148177 0.468750 +v -0.359375 3.364684 0.343750 +v -0.320873 3.314744 0.358254 +v -0.402063 3.392869 0.304127 +v -0.437500 3.391747 0.250000 +v -0.456190 3.361619 0.195874 +v -0.453125 3.310557 0.156250 +v -0.429126 3.252244 0.141747 +v -0.390625 3.202304 0.156250 +v -0.347936 3.174119 0.195874 +v -0.312500 3.175241 0.250000 +v -0.293810 3.205369 0.304127 +v -0.296875 3.256430 0.343750 +v -2.762260 1.905209 -0.975480 +v -2.906250 2.255088 -1.062500 +v -2.924639 2.561459 -1.300240 +v -2.812501 2.742228 -1.625000 +v -2.599880 2.748959 -1.949759 +v -2.343751 2.579848 -2.187500 +v -2.112741 2.280209 -2.274518 +v -1.968750 1.930329 -2.187500 +v -1.950361 1.623959 -1.949759 +v -2.062500 1.443190 -1.625000 +v -2.275120 1.436459 -1.300240 +v -2.531250 1.605569 -1.062500 +v -2.466507 2.075962 -1.066987 +v -2.562500 2.309215 -1.124999 +v -2.574760 2.513462 -1.283493 +v -2.500000 2.633975 -1.499999 +v -2.358253 2.638462 -1.716506 +v -2.187501 2.525721 -1.874999 +v -2.033494 2.325962 -1.933012 +v -1.937500 2.092709 -1.874999 +v -1.925241 1.888462 -1.716506 +v -2.000000 1.767949 -1.499999 +v -2.141747 1.763462 -1.283493 +v -2.312500 1.876202 -1.124999 +v -3.887259 1.255690 -1.725480 +v -4.031250 1.605569 -1.812499 +v -4.049639 1.911940 -2.050240 +v -3.937500 2.092709 -2.374999 +v -3.724880 2.099440 -2.699759 +v -3.468750 1.930329 -2.937499 +v -3.237741 1.630690 -3.024518 +v -3.093750 1.280810 -2.937499 +v -3.075361 0.974440 -2.699759 +v -3.187500 0.793671 -2.374999 +v -3.400120 0.786940 -2.050240 +v -3.656250 0.956050 -1.812500 +v -3.966506 1.209936 -2.066986 +v -4.062500 1.443189 -2.124999 +v -4.074759 1.647437 -2.283493 +v -4.000000 1.767949 -2.499999 +v -3.858253 1.772437 -2.716505 +v -3.687500 1.659696 -2.874999 +v -3.533494 1.459936 -2.933012 +v -3.437500 1.226683 -2.874999 +v -3.425241 1.022436 -2.716505 +v -3.500000 0.901924 -2.499999 +v -3.641747 0.897436 -2.283493 +v -3.812500 1.010177 -2.124999 +v -3.912380 1.241187 -2.175240 +v -3.984375 1.416126 -2.218749 +v -3.993569 1.569312 -2.337619 +v -3.937500 1.659696 -2.499999 +v -3.831190 1.663062 -2.662379 +v -3.703126 1.578506 -2.781249 +v -3.587620 1.428687 -2.824759 +v -3.515626 1.253747 -2.781249 +v -3.506430 1.100562 -2.662379 +v -3.562500 1.010177 -2.499999 +v -3.668810 1.006812 -2.337619 +v -3.796875 1.091367 -2.218749 +v -4.640625 1.037240 -2.656249 +v -4.568630 0.862300 -2.612739 +v -4.649821 1.190425 -2.775119 +v -4.593751 1.280810 -2.937499 +v -4.487440 1.284175 -3.099879 +v -4.359376 1.199620 -3.218749 +v -4.243871 1.049800 -3.262259 +v -4.171876 0.874860 -3.218749 +v -4.162681 0.721675 -3.099879 +v -4.218750 0.631291 -2.937500 +v -4.325060 0.627925 -2.775119 +v -4.453125 0.712481 -2.656249 +v -1.341506 2.725481 -0.316987 +v -1.437500 2.958734 -0.374999 +v -1.449760 3.162981 -0.533493 +v -1.375000 3.283494 -0.749999 +v -1.233254 3.287981 -0.966506 +v -1.062500 3.175241 -1.125000 +v -0.908494 2.975481 -1.183012 +v -0.812500 2.742228 -1.125000 +v -0.800240 2.537981 -0.966506 +v -0.875000 2.417468 -0.750000 +v -1.016747 2.412981 -0.533493 +v -1.187500 2.525721 -0.375000 +v -1.233253 2.787981 -0.533493 +v -1.281250 2.904608 -0.562500 +v -1.287380 3.006731 -0.641746 +v -1.250000 3.066987 -0.749999 +v -1.179127 3.069231 -0.858253 +v -1.093750 3.012861 -0.937500 +v -1.016747 2.912981 -0.966506 +v -0.968750 2.796354 -0.937500 +v -0.962620 2.694231 -0.858253 +v -1.000000 2.633975 -0.750000 +v -1.070873 2.631731 -0.641746 +v -1.156250 2.688101 -0.562500 +v -0.670753 3.112741 -0.158493 +v -0.718750 3.229367 -0.187500 +v -0.724880 3.331491 -0.266746 +v -0.687500 3.391747 -0.375000 +v -0.616627 3.393991 -0.483253 +v -0.531250 3.337620 -0.562500 +v -0.454247 3.237741 -0.591506 +v -0.406250 3.121114 -0.562500 +v -0.400120 3.018990 -0.483253 +v -0.437500 2.958734 -0.375000 +v -0.508373 2.956490 -0.266747 +v -0.593750 3.012861 -0.187500 +v -0.640625 3.202304 -0.281250 +v -0.616627 3.143991 -0.266746 +v -0.643690 3.253366 -0.320873 +v -0.625000 3.283494 -0.375000 +v -0.589564 3.284616 -0.429126 +v -0.546875 3.256430 -0.468750 +v -0.508373 3.206491 -0.483253 +v -0.484375 3.148177 -0.468750 +v -0.481310 3.097115 -0.429126 +v -0.500000 3.066987 -0.375000 +v -0.535437 3.065865 -0.320873 +v -0.578125 3.094050 -0.281250 +v -0.453125 3.310557 -0.156250 +v -0.429127 3.252244 -0.141746 +v -0.456190 3.361619 -0.195873 +v -0.437500 3.391747 -0.250000 +v -0.402063 3.392869 -0.304126 +v -0.359375 3.364683 -0.343750 +v -0.320874 3.314744 -0.358253 +v -0.296875 3.256430 -0.343750 +v -0.293810 3.205369 -0.304126 +v -0.312500 3.175241 -0.250000 +v -0.347937 3.174119 -0.195873 +v -0.390625 3.202304 -0.156250 +v -2.112740 4.719791 2.274520 +v -1.968750 5.069671 2.187501 +v -1.950360 5.376041 1.949760 +v -2.062499 5.556810 1.625001 +v -2.275120 5.563541 1.300241 +v -2.531250 5.394431 1.062501 +v -2.762259 5.094791 0.975482 +v -2.906250 4.744912 1.062501 +v -2.924639 4.438541 1.300241 +v -2.812500 4.257772 1.625001 +v -2.599879 4.251041 1.949760 +v -2.343749 4.420152 2.187501 +v -2.033493 4.674038 1.933014 +v -1.937500 4.907291 1.875001 +v -1.925240 5.111538 1.716507 +v -1.999999 5.232051 1.500001 +v -2.141746 5.236538 1.283494 +v -2.312500 5.123797 1.125001 +v -2.466506 4.924038 1.066988 +v -2.562500 4.690784 1.125001 +v -2.574759 4.486538 1.283494 +v -2.499999 4.366025 1.500001 +v -2.358253 4.361538 1.716507 +v -2.187500 4.474278 1.875001 +v -3.237740 5.369310 3.024520 +v -3.093749 5.719190 2.937501 +v -3.075360 6.025560 2.699760 +v -3.187500 6.206329 2.375001 +v -3.400120 6.213060 2.050241 +v -3.656250 6.043950 1.812501 +v -3.887259 5.744310 1.725482 +v -4.031250 5.394431 1.812502 +v -4.049639 5.088060 2.050241 +v -3.937500 4.907291 2.375001 +v -3.724879 4.900560 2.699760 +v -3.468750 5.069671 2.937501 +v -3.533493 5.540064 2.933014 +v -3.437499 5.773316 2.875001 +v -3.425240 5.977563 2.716507 +v -3.499999 6.098076 2.500001 +v -3.641746 6.102564 2.283495 +v -3.812500 5.989823 2.125001 +v -3.966506 5.790064 2.066988 +v -4.062500 5.556810 2.125001 +v -4.074759 5.352563 2.283495 +v -3.999999 5.232050 2.500001 +v -3.858253 5.227563 2.716507 +v -3.687499 5.340303 2.875001 +v -3.587619 5.571314 2.824760 +v -3.515624 5.746253 2.781251 +v -3.506430 5.899439 2.662381 +v -3.562499 5.989823 2.500001 +v -3.668809 5.993189 2.337621 +v -3.796874 5.908633 2.218751 +v -3.912379 5.758814 2.175241 +v -3.984374 5.583873 2.218751 +v -3.993569 5.430689 2.337621 +v -3.937499 5.340304 2.500001 +v -3.831189 5.336939 2.662381 +v -3.703124 5.421494 2.781251 +v -4.171874 6.125140 3.218751 +v -4.243870 5.950200 3.262261 +v -4.162680 6.278324 3.099881 +v -4.218749 6.368710 2.937501 +v -4.325058 6.372075 2.775122 +v -4.453125 6.287519 2.656251 +v -4.568629 6.137700 2.612742 +v -4.640624 5.962760 2.656251 +v -4.649818 5.809574 2.775121 +v -4.593749 5.719191 2.937501 +v -4.487439 5.715824 3.099881 +v -4.359374 5.800380 3.218751 +v -0.908493 4.024519 1.183013 +v -0.812500 4.257772 1.125001 +v -0.800240 4.462019 0.966507 +v -0.875000 4.582532 0.750000 +v -1.016746 4.587019 0.533494 +v -1.187500 4.474278 0.375001 +v -1.341506 4.274519 0.316988 +v -1.437500 4.041266 0.375001 +v -1.449759 3.837019 0.533494 +v -1.375000 3.716506 0.750000 +v -1.233253 3.712019 0.966507 +v -1.062500 3.824759 1.125000 +v -1.016746 4.087019 0.966507 +v -0.968750 4.203646 0.937500 +v -0.962620 4.305769 0.858254 +v -1.000000 4.366025 0.750001 +v -1.070873 4.368269 0.641747 +v -1.156250 4.311899 0.562501 +v -1.233253 4.212019 0.533494 +v -1.281250 4.095392 0.562501 +v -1.287380 3.993269 0.641747 +v -1.250000 3.933013 0.750000 +v -1.179126 3.930769 0.858254 +v -1.093750 3.987139 0.937500 +v -0.454247 3.762259 0.591507 +v -0.406250 3.878886 0.562500 +v -0.400120 3.981009 0.483254 +v -0.437500 4.041266 0.375000 +v -0.508373 4.043509 0.266747 +v -0.593750 3.987139 0.187500 +v -0.670753 3.887259 0.158494 +v -0.718750 3.770633 0.187500 +v -0.724880 3.668509 0.266747 +v -0.687500 3.608253 0.375000 +v -0.616627 3.606009 0.483254 +v -0.531250 3.662380 0.562500 +v -0.484375 3.851823 0.468750 +v -0.508373 3.793509 0.483253 +v -0.481310 3.902884 0.429127 +v -0.500000 3.933013 0.375000 +v -0.535437 3.934134 0.320874 +v -0.578125 3.905949 0.281250 +v -0.616626 3.856009 0.266747 +v -0.640625 3.797696 0.281250 +v -0.643690 3.746634 0.320874 +v -0.625000 3.716506 0.375000 +v -0.589563 3.715384 0.429127 +v -0.546875 3.743570 0.468750 +v -0.296875 3.743570 0.343750 +v -0.320873 3.685256 0.358254 +v -0.293810 3.794631 0.304127 +v -0.312500 3.824759 0.250000 +v -0.347937 3.825881 0.195874 +v -0.390625 3.797696 0.156250 +v -0.429126 3.747756 0.141747 +v -0.453125 3.689443 0.156250 +v -0.456190 3.638381 0.195874 +v -0.437500 3.608253 0.250000 +v -0.402063 3.607131 0.304127 +v -0.359375 3.635316 0.343750 +v -2.762260 5.094791 -0.975480 +v -2.531250 5.394431 -1.062500 +v -2.275120 5.563541 -1.300240 +v -2.062501 5.556810 -1.625000 +v -1.950361 5.376041 -1.949759 +v -1.968750 5.069671 -2.187500 +v -2.112741 4.719791 -2.274518 +v -2.343751 4.420152 -2.187500 +v -2.599880 4.251041 -1.949759 +v -2.812500 4.257772 -1.625000 +v -2.924639 4.438541 -1.300240 +v -2.906250 4.744912 -1.062500 +v -2.466507 4.924038 -1.066987 +v -2.312500 5.123798 -1.124999 +v -2.141747 5.236538 -1.283493 +v -2.000000 5.232051 -1.499999 +v -1.925241 5.111539 -1.716506 +v -1.937500 4.907291 -1.874999 +v -2.033494 4.674038 -1.933012 +v -2.187500 4.474278 -1.874999 +v -2.358253 4.361538 -1.716506 +v -2.500000 4.366025 -1.499999 +v -2.574760 4.486538 -1.283493 +v -2.562500 4.690785 -1.124999 +v -3.887259 5.744310 -1.725480 +v -3.656250 6.043950 -1.812499 +v -3.400120 6.213060 -2.050240 +v -3.187500 6.206329 -2.374999 +v -3.075361 6.025560 -2.699759 +v -3.093750 5.719191 -2.937499 +v -3.237741 5.369310 -3.024518 +v -3.468750 5.069672 -2.937499 +v -3.724880 4.900561 -2.699759 +v -3.937500 4.907291 -2.374999 +v -4.049639 5.088060 -2.050240 +v -4.031250 5.394431 -1.812500 +v -3.966506 5.790064 -2.066986 +v -3.812500 5.989823 -2.124999 +v -3.641747 6.102564 -2.283493 +v -3.500000 6.098076 -2.499999 +v -3.425241 5.977564 -2.716505 +v -3.437500 5.773317 -2.874999 +v -3.533494 5.540064 -2.933012 +v -3.687500 5.340304 -2.874999 +v -3.858253 5.227564 -2.716505 +v -4.000000 5.232051 -2.499999 +v -4.074759 5.352563 -2.283493 +v -4.062500 5.556810 -2.124999 +v -3.912380 5.758814 -2.175240 +v -3.796875 5.908633 -2.218749 +v -3.668810 5.993189 -2.337619 +v -3.562500 5.989823 -2.499999 +v -3.506430 5.899439 -2.662379 +v -3.515626 5.746254 -2.781249 +v -3.587620 5.571314 -2.824759 +v -3.703126 5.421494 -2.781249 +v -3.831190 5.336939 -2.662379 +v -3.937500 5.340304 -2.499999 +v -3.993569 5.430689 -2.337619 +v -3.984375 5.583874 -2.218749 +v -4.453125 6.287520 -2.656249 +v -4.568630 6.137700 -2.612739 +v -4.325061 6.372075 -2.775119 +v -4.218751 6.368710 -2.937499 +v -4.162681 6.278325 -3.099879 +v -4.171876 6.125140 -3.218749 +v -4.243871 5.950200 -3.262259 +v -4.359375 5.800381 -3.218749 +v -4.487441 5.715825 -3.099879 +v -4.593750 5.719191 -2.937500 +v -4.649819 5.809575 -2.775119 +v -4.640625 5.962760 -2.656249 +v -1.341506 4.274519 -0.316987 +v -1.187500 4.474278 -0.374999 +v -1.016747 4.587019 -0.533493 +v -0.875000 4.582532 -0.750000 +v -0.800241 4.462019 -0.966506 +v -0.812500 4.257772 -1.125000 +v -0.908494 4.024519 -1.183012 +v -1.062500 3.824759 -1.125000 +v -1.233253 3.712019 -0.966506 +v -1.375000 3.716506 -0.750000 +v -1.449760 3.837019 -0.533493 +v -1.437500 4.041266 -0.375000 +v -1.233253 4.212019 -0.533493 +v -1.156250 4.311899 -0.562500 +v -1.070873 4.368269 -0.641746 +v -1.000000 4.366025 -0.749999 +v -0.962620 4.305769 -0.858253 +v -0.968750 4.203646 -0.937500 +v -1.016747 4.087019 -0.966506 +v -1.093750 3.987139 -0.937500 +v -1.179127 3.930769 -0.858253 +v -1.250000 3.933013 -0.750000 +v -1.287380 3.993269 -0.641746 +v -1.281250 4.095393 -0.562500 +v -0.670753 3.887260 -0.158493 +v -0.593750 3.987139 -0.187500 +v -0.508373 4.043509 -0.266747 +v -0.437500 4.041266 -0.375000 +v -0.400120 3.981010 -0.483253 +v -0.406250 3.878886 -0.562500 +v -0.454247 3.762260 -0.591506 +v -0.531250 3.662380 -0.562500 +v -0.616627 3.606009 -0.483253 +v -0.687500 3.608253 -0.375000 +v -0.724880 3.668509 -0.266747 +v -0.718750 3.770633 -0.187500 +v -0.578125 3.905949 -0.281250 +v -0.616627 3.856010 -0.266746 +v -0.535437 3.934135 -0.320873 +v -0.500000 3.933013 -0.375000 +v -0.481310 3.902885 -0.429126 +v -0.484375 3.851823 -0.468750 +v -0.508373 3.793510 -0.483253 +v -0.546875 3.743570 -0.468750 +v -0.589563 3.715384 -0.429126 +v -0.625000 3.716506 -0.375000 +v -0.643690 3.746634 -0.320873 +v -0.640625 3.797696 -0.281250 +v -0.390625 3.797696 -0.156250 +v -0.429127 3.747756 -0.141746 +v -0.347937 3.825881 -0.195873 +v -0.312500 3.824759 -0.250000 +v -0.293810 3.794631 -0.304126 +v -0.296875 3.743570 -0.343750 +v -0.320874 3.685256 -0.358253 +v -0.359375 3.635317 -0.343750 +v -0.402063 3.607131 -0.304126 +v -0.437500 3.608253 -0.250000 +v -0.456190 3.638381 -0.195873 +v -0.453125 3.689443 -0.156250 +vt 0.250000 0.298077 +vt 0.260417 0.330128 +vt 0.250000 0.326923 +vt 0.250000 0.336538 +vt 0.260417 0.368590 +vt 0.250000 0.365385 +vt 0.260417 0.371795 +vt 0.250000 0.403846 +vt 0.250000 0.375000 +vt 0.260417 0.410256 +vt 0.250000 0.442308 +vt 0.250000 0.413462 +vt 0.260417 0.448718 +vt 0.250000 0.480769 +vt 0.250000 0.451923 +vt 0.260417 0.487179 +vt 0.250000 0.519231 +vt 0.250000 0.490385 +vt 0.260417 0.525641 +vt 0.250000 0.557692 +vt 0.250000 0.528846 +vt 0.260417 0.564103 +vt 0.250000 0.596154 +vt 0.250000 0.567308 +vt 0.260417 0.602564 +vt 0.250000 0.634615 +vt 0.250000 0.605769 +vt 0.250000 0.644231 +vt 0.260417 0.676282 +vt 0.250000 0.673077 +vt 0.250000 0.682692 +vt 0.260417 0.714744 +vt 0.250000 0.711538 +vt 0.250000 0.105769 +vt 0.260417 0.137821 +vt 0.250000 0.134615 +vt 0.250000 0.144231 +vt 0.260417 0.176282 +vt 0.250000 0.173077 +vt 0.250000 0.182692 +vt 0.260417 0.214744 +vt 0.250000 0.211538 +vt 0.250000 0.221154 +vt 0.260417 0.253205 +vt 0.250000 0.250000 +vt 0.250000 0.259615 +vt 0.260417 0.291667 +vt 0.250000 0.288462 +vt 0.250000 0.480769 +vt 0.260417 0.448718 +vt 0.260417 0.483974 +vt 0.250000 0.413462 +vt 0.260417 0.445513 +vt 0.250000 0.442308 +vt 0.250000 0.375000 +vt 0.260417 0.407051 +vt 0.250000 0.403846 +vt 0.250000 0.336538 +vt 0.260417 0.368590 +vt 0.250000 0.365385 +vt 0.250000 0.298077 +vt 0.260417 0.330128 +vt 0.250000 0.326923 +vt 0.250000 0.259615 +vt 0.260417 0.291667 +vt 0.250000 0.288462 +vt 0.250000 0.221154 +vt 0.260417 0.253205 +vt 0.250000 0.250000 +vt 0.250000 0.182692 +vt 0.260417 0.214744 +vt 0.250000 0.211538 +vt 0.250000 0.173077 +vt 0.260417 0.141026 +vt 0.260417 0.176282 +vt 0.250000 0.134615 +vt 0.260417 0.102564 +vt 0.260417 0.137821 +vt 0.250000 0.711538 +vt 0.260417 0.679487 +vt 0.260417 0.714744 +vt 0.250000 0.673077 +vt 0.260417 0.641026 +vt 0.260417 0.676282 +vt 0.250000 0.634615 +vt 0.260417 0.602564 +vt 0.260417 0.637821 +vt 0.250000 0.596154 +vt 0.260417 0.564103 +vt 0.260417 0.599359 +vt 0.250000 0.557692 +vt 0.260417 0.525641 +vt 0.260417 0.560897 +vt 0.250000 0.519231 +vt 0.260417 0.487179 +vt 0.260417 0.522436 +vt 0.364583 0.266026 +vt 0.333333 0.291667 +vt 0.333333 0.256410 +vt 0.364583 0.304487 +vt 0.333333 0.330128 +vt 0.333333 0.294872 +vt 0.333333 0.333333 +vt 0.364583 0.362179 +vt 0.333333 0.368590 +vt 0.364583 0.381410 +vt 0.333333 0.407051 +vt 0.333333 0.371795 +vt 0.364583 0.419872 +vt 0.333333 0.445513 +vt 0.333333 0.410256 +vt 0.333333 0.448718 +vt 0.364583 0.477564 +vt 0.333333 0.483974 +vt 0.364583 0.496795 +vt 0.333333 0.522436 +vt 0.333333 0.487179 +vt 0.364583 0.535256 +vt 0.333333 0.560897 +vt 0.333333 0.525641 +vt 0.333333 0.564103 +vt 0.364583 0.592949 +vt 0.333333 0.599359 +vt 0.333333 0.602564 +vt 0.364583 0.631410 +vt 0.333333 0.637821 +vt 0.364583 0.650641 +vt 0.333333 0.676282 +vt 0.333333 0.641026 +vt 0.364583 0.689103 +vt 0.333333 0.714744 +vt 0.333333 0.679487 +vt 0.333333 0.102564 +vt 0.364583 0.131410 +vt 0.333333 0.137821 +vt 0.333333 0.141026 +vt 0.364583 0.169872 +vt 0.333333 0.176282 +vt 0.364583 0.189103 +vt 0.333333 0.214744 +vt 0.333333 0.179487 +vt 0.364583 0.227564 +vt 0.333333 0.253205 +vt 0.333333 0.217949 +vt 0.468750 0.304487 +vt 0.500000 0.330128 +vt 0.468750 0.323718 +vt 0.500000 0.333333 +vt 0.468750 0.362179 +vt 0.468750 0.342949 +vt 0.468750 0.381410 +vt 0.500000 0.407051 +vt 0.468750 0.400641 +vt 0.468750 0.419872 +vt 0.500000 0.445513 +vt 0.468750 0.439103 +vt 0.500000 0.448718 +vt 0.468750 0.477564 +vt 0.468750 0.458333 +vt 0.468750 0.496795 +vt 0.500000 0.522436 +vt 0.468750 0.516026 +vt 0.500000 0.525641 +vt 0.468750 0.554487 +vt 0.468750 0.535256 +vt 0.500000 0.564103 +vt 0.468750 0.592949 +vt 0.468750 0.573718 +vt 0.500000 0.602564 +vt 0.468750 0.631410 +vt 0.468750 0.612179 +vt 0.468750 0.650641 +vt 0.500000 0.676282 +vt 0.468750 0.669872 +vt 0.468750 0.689103 +vt 0.500000 0.714744 +vt 0.468750 0.708333 +vt 0.500000 0.102564 +vt 0.468750 0.131410 +vt 0.468750 0.112179 +vt 0.500000 0.141026 +vt 0.468750 0.169872 +vt 0.468750 0.150641 +vt 0.500000 0.179487 +vt 0.468750 0.208333 +vt 0.468750 0.189103 +vt 0.468750 0.227564 +vt 0.500000 0.253205 +vt 0.468750 0.246795 +vt 0.468750 0.266026 +vt 0.500000 0.291667 +vt 0.468750 0.285256 +vt 0.333333 0.487179 +vt 0.364583 0.516026 +vt 0.333333 0.522436 +vt 0.333333 0.483974 +vt 0.364583 0.458333 +vt 0.364583 0.477564 +vt 0.333333 0.410256 +vt 0.364583 0.439103 +vt 0.333333 0.445513 +vt 0.333333 0.371795 +vt 0.364583 0.400641 +vt 0.333333 0.407051 +vt 0.333333 0.368590 +vt 0.364583 0.342949 +vt 0.364583 0.362179 +vt 0.333333 0.294872 +vt 0.364583 0.323718 +vt 0.333333 0.330128 +vt 0.333333 0.291667 +vt 0.364583 0.266026 +vt 0.364583 0.285256 +vt 0.333333 0.253205 +vt 0.364583 0.227564 +vt 0.364583 0.246795 +vt 0.333333 0.214744 +vt 0.364583 0.189103 +vt 0.364583 0.208333 +vt 0.333333 0.141026 +vt 0.364583 0.169872 +vt 0.333333 0.176282 +vt 0.333333 0.102564 +vt 0.364583 0.131410 +vt 0.333333 0.137821 +vt 0.333333 0.714744 +vt 0.364583 0.689103 +vt 0.364583 0.708333 +vt 0.333333 0.676282 +vt 0.364583 0.650641 +vt 0.364583 0.669872 +vt 0.333333 0.602564 +vt 0.364583 0.631410 +vt 0.333333 0.637821 +vt 0.333333 0.564103 +vt 0.364583 0.592949 +vt 0.333333 0.599359 +vt 0.333333 0.525641 +vt 0.364583 0.554487 +vt 0.333333 0.560897 +vt 0.468750 0.516026 +vt 0.500000 0.487179 +vt 0.500000 0.522436 +vt 0.500000 0.483974 +vt 0.468750 0.458333 +vt 0.500000 0.448718 +vt 0.468750 0.439103 +vt 0.500000 0.410256 +vt 0.500000 0.445513 +vt 0.468750 0.400641 +vt 0.500000 0.371795 +vt 0.500000 0.407051 +vt 0.500000 0.368590 +vt 0.468750 0.342949 +vt 0.500000 0.333333 +vt 0.468750 0.323718 +vt 0.500000 0.294872 +vt 0.500000 0.330128 +vt 0.468750 0.285256 +vt 0.500000 0.256410 +vt 0.500000 0.291667 +vt 0.500000 0.253205 +vt 0.468750 0.227564 +vt 0.500000 0.217949 +vt 0.500000 0.214744 +vt 0.468750 0.189103 +vt 0.500000 0.179487 +vt 0.468750 0.169872 +vt 0.500000 0.141026 +vt 0.500000 0.176282 +vt 0.468750 0.131410 +vt 0.500000 0.102564 +vt 0.500000 0.137821 +vt 0.500000 0.714744 +vt 0.468750 0.689103 +vt 0.500000 0.679487 +vt 0.500000 0.676282 +vt 0.468750 0.650641 +vt 0.500000 0.641026 +vt 0.468750 0.631410 +vt 0.500000 0.602564 +vt 0.500000 0.637821 +vt 0.468750 0.592949 +vt 0.500000 0.564103 +vt 0.500000 0.599359 +vt 0.468750 0.554487 +vt 0.500000 0.525641 +vt 0.500000 0.560897 +vt 0.572917 0.256410 +vt 0.635417 0.275641 +vt 0.572917 0.291667 +vt 0.635417 0.310897 +vt 0.572917 0.330128 +vt 0.572917 0.294872 +vt 0.635417 0.349359 +vt 0.572917 0.368590 +vt 0.572917 0.333333 +vt 0.635417 0.387821 +vt 0.572917 0.407051 +vt 0.572917 0.371795 +vt 0.635417 0.426282 +vt 0.572917 0.445513 +vt 0.572917 0.410256 +vt 0.572917 0.448718 +vt 0.635417 0.467949 +vt 0.572917 0.483974 +vt 0.635417 0.503205 +vt 0.572917 0.522436 +vt 0.572917 0.487179 +vt 0.572917 0.525641 +vt 0.635417 0.544872 +vt 0.572917 0.560897 +vt 0.635417 0.580128 +vt 0.572917 0.599359 +vt 0.572917 0.564103 +vt 0.572917 0.602564 +vt 0.635417 0.621795 +vt 0.572917 0.637821 +vt 0.635417 0.657051 +vt 0.572917 0.676282 +vt 0.572917 0.641026 +vt 0.572917 0.679487 +vt 0.635417 0.698718 +vt 0.572917 0.714744 +vt 0.572917 0.102564 +vt 0.635417 0.121795 +vt 0.572917 0.137821 +vt 0.635417 0.157051 +vt 0.572917 0.176282 +vt 0.572917 0.141026 +vt 0.635417 0.195513 +vt 0.572917 0.214744 +vt 0.572917 0.179487 +vt 0.635417 0.233974 +vt 0.572917 0.253205 +vt 0.572917 0.217949 +vt 0.253086 0.721747 +vt 0.267746 0.721747 +vt 0.267746 0.739791 +vt 0.572917 0.487179 +vt 0.635417 0.506410 +vt 0.572917 0.522436 +vt 0.572917 0.448718 +vt 0.635417 0.467949 +vt 0.572917 0.483974 +vt 0.572917 0.410256 +vt 0.635417 0.429487 +vt 0.572917 0.445513 +vt 0.572917 0.371795 +vt 0.635417 0.391026 +vt 0.572917 0.407051 +vt 0.572917 0.368590 +vt 0.635417 0.349359 +vt 0.635417 0.352564 +vt 0.572917 0.294872 +vt 0.635417 0.314103 +vt 0.572917 0.330128 +vt 0.572917 0.291667 +vt 0.635417 0.272436 +vt 0.635417 0.275641 +vt 0.572917 0.217949 +vt 0.635417 0.237179 +vt 0.572917 0.253205 +vt 0.572917 0.214744 +vt 0.635417 0.195513 +vt 0.635417 0.198718 +vt 0.572917 0.141026 +vt 0.635417 0.160256 +vt 0.572917 0.176282 +vt 0.572917 0.137821 +vt 0.635417 0.118590 +vt 0.635417 0.121795 +vt 0.572917 0.714744 +vt 0.635417 0.695513 +vt 0.635417 0.698718 +vt 0.572917 0.641026 +vt 0.635417 0.660256 +vt 0.572917 0.676282 +vt 0.572917 0.602564 +vt 0.635417 0.621795 +vt 0.572917 0.637821 +vt 0.572917 0.564103 +vt 0.635417 0.583333 +vt 0.572917 0.599359 +vt 0.572917 0.560897 +vt 0.635417 0.541667 +vt 0.635417 0.544872 +vt 0.260416 0.718010 +vt 0.270783 0.730769 +vt 0.260416 0.743528 +vt 0.739583 0.410256 +vt 0.770833 0.564103 +vt 0.739583 0.564103 +vt 0.739583 0.410256 +vt 0.770833 0.564103 +vt 0.739583 0.564103 +vt 0.770833 0.358974 +vt 0.770833 0.410256 +vt 0.739583 0.615385 +vt 0.812500 0.564103 +vt 0.697917 0.410256 +vt 0.770833 0.358974 +vt 0.770833 0.410256 +vt 0.739583 0.615385 +vt 0.812500 0.564103 +vt 0.697917 0.410256 +vt 0.770833 0.564103 +vt 0.739583 0.410256 +vt 0.770833 0.410256 +vt 0.770833 0.564103 +vt 0.739583 0.410256 +vt 0.770833 0.410256 +vt 0.739583 0.615385 +vt 0.739583 0.564103 +vt 0.770833 0.358974 +vt 0.697917 0.410256 +vt 0.812500 0.564103 +vt 0.739583 0.615385 +vt 0.739583 0.564103 +vt 0.770833 0.358974 +vt 0.697917 0.410256 +vt 0.812500 0.564103 +vt 0.515625 0.717949 +vt 0.500000 0.884615 +vt 0.500000 0.717949 +vt 0.484375 0.717949 +vt 0.468750 0.884615 +vt 0.468750 0.717949 +vt 0.484375 0.884615 +vt 0.531250 0.717949 +vt 0.515625 0.884615 +vt 0.515625 0.717949 +vt 0.500000 0.884615 +vt 0.500000 0.717949 +vt 0.484375 0.717949 +vt 0.468750 0.884615 +vt 0.468750 0.717949 +vt 0.484375 0.884615 +vt 0.531250 0.717949 +vt 0.515625 0.884615 +vt 0.484375 0.884615 +vt 0.500000 0.717949 +vt 0.500000 0.884615 +vt 0.515625 0.884615 +vt 0.531250 0.717949 +vt 0.531250 0.884615 +vt 0.515625 0.717949 +vt 0.468750 0.884615 +vt 0.484375 0.717949 +vt 0.484375 0.884615 +vt 0.500000 0.717949 +vt 0.500000 0.884615 +vt 0.515625 0.884615 +vt 0.531250 0.717949 +vt 0.531250 0.884615 +vt 0.515625 0.717949 +vt 0.468750 0.884615 +vt 0.484375 0.717949 +vt 0.635417 0.102564 +vt 0.656250 0.512821 +vt 0.635417 0.512821 +vt 0.666667 0.500000 +vt 0.687500 0.115385 +vt 0.687500 0.500000 +vt 0.687500 0.102564 +vt 0.666667 0.115385 +vt 0.666667 0.102564 +vt 0.666667 0.512821 +vt 0.687500 0.512821 +vt 0.656250 0.102564 +vt 0.697917 0.512821 +vt 0.697917 0.102564 +vt 0.635417 0.102564 +vt 0.656250 0.512821 +vt 0.635417 0.512821 +vt 0.666667 0.500000 +vt 0.687500 0.115385 +vt 0.687500 0.500000 +vt 0.687500 0.102564 +vt 0.666667 0.115385 +vt 0.666667 0.102564 +vt 0.666667 0.512821 +vt 0.687500 0.512821 +vt 0.656250 0.102564 +vt 0.697917 0.512821 +vt 0.697917 0.102564 +vt 0.739583 0.358974 +vt 0.770833 0.307692 +vt 0.770833 0.358974 +vt 0.770833 0.102564 +vt 0.739583 0.153846 +vt 0.739583 0.102564 +vt 0.812500 0.307692 +vt 0.770833 0.153846 +vt 0.812500 0.153846 +vt 0.697917 0.153846 +vt 0.739583 0.307692 +vt 0.697917 0.307692 +vt 0.739583 0.358974 +vt 0.770833 0.307692 +vt 0.770833 0.358974 +vt 0.770833 0.102564 +vt 0.739583 0.153846 +vt 0.739583 0.102564 +vt 0.812500 0.307692 +vt 0.770833 0.153846 +vt 0.812500 0.153846 +vt 0.697917 0.153846 +vt 0.739583 0.307692 +vt 0.697917 0.307692 +vt 0.770833 0.102564 +vt 0.739583 0.153846 +vt 0.739583 0.102564 +vt 0.739583 0.358974 +vt 0.770833 0.307692 +vt 0.770833 0.358974 +vt 0.697917 0.153846 +vt 0.739583 0.307692 +vt 0.697917 0.307692 +vt 0.812500 0.307692 +vt 0.770833 0.153846 +vt 0.812500 0.153846 +vt 0.770833 0.102564 +vt 0.739583 0.153846 +vt 0.739583 0.102564 +vt 0.739583 0.358974 +vt 0.770833 0.307692 +vt 0.770833 0.358974 +vt 0.697917 0.153846 +vt 0.739583 0.307692 +vt 0.697917 0.307692 +vt 0.812500 0.307692 +vt 0.770833 0.153846 +vt 0.812500 0.153846 +vt 0.515625 0.717949 +vt 0.500000 0.884615 +vt 0.500000 0.717949 +vt 0.484375 0.717949 +vt 0.468750 0.884615 +vt 0.468750 0.717949 +vt 0.484375 0.884615 +vt 0.531250 0.717949 +vt 0.515625 0.884615 +vt 0.515625 0.717949 +vt 0.500000 0.884615 +vt 0.500000 0.717949 +vt 0.484375 0.717949 +vt 0.468750 0.884615 +vt 0.468750 0.717949 +vt 0.484375 0.884615 +vt 0.531250 0.717949 +vt 0.515625 0.884615 +vt 0.484375 0.884615 +vt 0.500000 0.717949 +vt 0.500000 0.884615 +vt 0.515625 0.884615 +vt 0.531250 0.717949 +vt 0.531250 0.884615 +vt 0.515625 0.717949 +vt 0.468750 0.884615 +vt 0.484375 0.717949 +vt 0.484375 0.884615 +vt 0.500000 0.717949 +vt 0.500000 0.884615 +vt 0.515625 0.884615 +vt 0.531250 0.717949 +vt 0.531250 0.884615 +vt 0.515625 0.717949 +vt 0.468750 0.884615 +vt 0.484375 0.717949 +vt 0.635417 0.102564 +vt 0.656250 0.512821 +vt 0.635417 0.512821 +vt 0.666667 0.500000 +vt 0.687500 0.115385 +vt 0.687500 0.500000 +vt 0.687500 0.102564 +vt 0.666667 0.115385 +vt 0.666667 0.102564 +vt 0.666667 0.512821 +vt 0.687500 0.512821 +vt 0.656250 0.102564 +vt 0.697917 0.512821 +vt 0.697917 0.102564 +vt 0.635417 0.102564 +vt 0.656250 0.512821 +vt 0.635417 0.512821 +vt 0.666667 0.500000 +vt 0.687500 0.115385 +vt 0.687500 0.500000 +vt 0.687500 0.102564 +vt 0.666667 0.115385 +vt 0.666667 0.102564 +vt 0.666667 0.512821 +vt 0.687500 0.512821 +vt 0.656250 0.102564 +vt 0.697917 0.512821 +vt 0.697917 0.102564 +vt 0.770833 0.102564 +vt 0.791667 0.076923 +vt 0.791667 0.102564 +vt 0.041667 0.076923 +vt 0.062500 0.102564 +vt 0.041667 0.102564 +vt 0.770833 0.076923 +vt 0.062500 0.051282 +vt 0.770833 0.051282 +vt 0.770833 0.025641 +vt 0.062500 -0.000000 +vt 0.770833 -0.000000 +vt 0.062500 0.076923 +vt 0.062500 0.025641 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.770833 0.102564 +vt 0.791667 0.076923 +vt 0.791667 0.102564 +vt 0.041667 0.076923 +vt 0.062500 0.102564 +vt 0.041667 0.102564 +vt 0.770833 0.076923 +vt 0.062500 0.051282 +vt 0.770833 0.051282 +vt 0.770833 0.025641 +vt 0.062500 -0.000000 +vt 0.770833 -0.000000 +vt 0.062500 0.076923 +vt 0.062500 0.025641 +vt 0.255208 0.750000 +vt 0.286458 0.788462 +vt 0.255208 0.788462 +vt 0.250000 0.750000 +vt 0.286458 0.743590 +vt 0.286458 0.750000 +vt 0.255208 0.794872 +vt 0.291667 0.788462 +vt 0.562500 0.717949 +vt 0.531250 0.756410 +vt 0.531250 0.717949 +vt 0.255208 0.884615 +vt 0.276042 0.910256 +vt 0.255208 0.910256 +vt 0.562500 0.756410 +vt 0.531250 0.814103 +vt 0.625000 0.756410 +vt 0.593750 0.814103 +vt 0.593750 0.756410 +vt 0.562500 0.814103 +vt 0.656250 0.756410 +vt 0.625000 0.814103 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.276042 0.833333 +vt 0.255208 0.884615 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.958333 0.240385 +vt 0.854167 0.246795 +vt 0.854167 0.240385 +vt 0.854167 0.282051 +vt 0.958333 0.288462 +vt 0.854167 0.288462 +vt 0.859375 0.288462 +vt 0.953125 0.288462 +vt 0.854167 0.144231 +vt 0.859375 0.096154 +vt 0.859375 0.144231 +vt 0.958333 0.144231 +vt 0.953125 0.096154 +vt 0.958333 0.096154 +vt 0.958333 0.137821 +vt 0.958333 0.102564 +vt 0.854167 0.096154 +vt 0.953125 0.673077 +vt 0.958333 0.625000 +vt 0.958333 0.673077 +vt 0.854167 0.625000 +vt 0.859375 0.673077 +vt 0.854167 0.673077 +vt 0.854167 0.631410 +vt 0.958333 0.666667 +vt 0.854167 0.528846 +vt 0.859375 0.480769 +vt 0.859375 0.528846 +vt 0.958333 0.528846 +vt 0.953125 0.480769 +vt 0.958333 0.480769 +vt 0.958333 0.474359 +vt 0.854167 0.480769 +vt 0.958333 0.522436 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.785256 +vt 0.817708 0.772436 +vt 0.822917 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.926282 +vt 0.989583 0.935897 +vt 0.979167 0.939103 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.945513 +vt 0.989583 0.955128 +vt 0.979167 0.958333 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.723980 0.967949 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.901042 0.903846 +vt 0.916667 0.919872 +vt 0.901042 0.923077 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.901042 0.846154 +vt 0.916667 0.862179 +vt 0.901042 0.865385 +vt 0.901042 1.000000 +vt 0.916667 0.983974 +vt 0.916667 0.996795 +vt 0.901042 0.942308 +vt 0.916667 0.926282 +vt 0.916667 0.939103 +vt 0.901042 0.884615 +vt 0.916667 0.868590 +vt 0.916667 0.881410 +vt 0.901042 0.769231 +vt 0.916667 0.785256 +vt 0.901042 0.788462 +vt 0.916667 0.958333 +vt 0.901042 0.961538 +vt 0.916667 0.900641 +vt 0.916667 0.791667 +vt 0.916667 0.804487 +vt 0.916667 0.830128 +vt 0.916667 0.842949 +vt 0.901042 0.980769 +vt 0.916667 0.964744 +vt 0.916667 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.993590 +vt 0.770833 0.987179 +vt 0.770833 0.990385 +vt 0.770833 0.971154 +vt 0.765625 0.974359 +vt 0.770833 0.939103 +vt 0.765625 0.942308 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.723958 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.713542 0.974359 +vt 0.723958 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.718750 0.961538 +vt 0.713542 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.713542 0.974359 +vt 0.713542 0.974359 +vt 0.718750 0.961538 +vt 0.723958 0.974359 +vt 0.723958 0.974359 +vt 0.718750 0.961538 +vt 0.255208 0.884615 +vt 0.276042 0.910256 +vt 0.255208 0.910256 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.276042 0.833333 +vt 0.255208 0.884615 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.255208 0.884615 +vt 0.276042 0.910256 +vt 0.255208 0.910256 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.276042 0.833333 +vt 0.255208 0.884615 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.255208 0.884615 +vt 0.276042 0.910256 +vt 0.255208 0.910256 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.276042 0.833333 +vt 0.255208 0.884615 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.255208 0.884615 +vt 0.276042 0.833333 +vt 0.276042 0.884615 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.255208 0.833333 +vt 0.255208 0.833333 +vt 0.281250 0.826923 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.250000 0.826923 +vt 0.281250 0.794872 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.062500 0.000000 +vt 0.041667 0.025641 +vt 0.041667 0.000000 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.062500 0.025641 +vt 0.041667 0.032051 +vt 0.041667 0.025641 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.062500 0.032051 +vt 0.062500 0.032051 +vt 0.044271 0.035256 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.059896 0.035256 +vt 0.044271 0.067308 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.849359 +vt 0.817708 0.858974 +vt 0.817708 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.791667 +vt 0.817708 0.801282 +vt 0.817708 0.791667 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.710957 0.958920 +vt 0.710957 0.925696 +vt 0.734335 0.942308 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.868590 +vt 0.989583 0.878205 +vt 0.979167 0.881410 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.967949 +vt 0.770833 0.961538 +vt 0.770833 0.964744 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.765625 0.961538 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.734353 0.967949 +vt 0.731760 0.973477 +vt 0.726573 0.973477 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.791667 +vt 0.817708 0.801282 +vt 0.817708 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.945513 +vt 0.989583 0.955128 +vt 0.979167 0.958333 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.939103 +vt 0.817708 0.926282 +vt 0.822917 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.958920 +vt 0.710957 0.958920 +vt 0.710957 0.925696 +vt 0.979167 0.907051 +vt 0.989583 0.916667 +vt 0.979167 0.919872 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.862179 +vt 0.989583 0.852564 +vt 0.989583 0.858974 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.926282 +vt 0.989583 0.935897 +vt 0.979167 0.939103 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.900641 +vt 0.989583 0.891026 +vt 0.989583 0.897436 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.842949 +vt 0.989583 0.833333 +vt 0.989583 0.839744 +vt 0.979167 0.977564 +vt 0.989583 0.967949 +vt 0.989583 0.974359 +vt 0.765625 0.929487 +vt 0.770833 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.967949 +vt 0.770833 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.765625 0.942308 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.770833 0.958333 +vt 0.765625 0.961538 +vt 0.731760 0.973477 +vt 0.726573 0.973477 +vt 0.726573 0.962420 +vt 0.822917 0.849359 +vt 0.817708 0.858974 +vt 0.817708 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.785256 +vt 0.817708 0.772436 +vt 0.822917 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.958920 +vt 0.710957 0.958920 +vt 0.710957 0.925696 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.862179 +vt 0.989583 0.852564 +vt 0.989583 0.858974 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.868590 +vt 0.989583 0.878205 +vt 0.979167 0.881410 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.945513 +vt 0.989583 0.955128 +vt 0.979167 0.958333 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.765625 0.942308 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.958333 +vt 0.723980 0.967949 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.926282 +vt 0.989583 0.935897 +vt 0.979167 0.939103 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.987179 +vt 0.770833 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.765625 0.980769 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.901042 0.903846 +vt 0.916667 0.919872 +vt 0.901042 0.923077 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.901042 0.846154 +vt 0.916667 0.862179 +vt 0.901042 0.865385 +vt 0.901042 1.000000 +vt 0.916667 0.983974 +vt 0.916667 0.996795 +vt 0.901042 0.942308 +vt 0.916667 0.926282 +vt 0.916667 0.939103 +vt 0.901042 0.884615 +vt 0.916667 0.868590 +vt 0.916667 0.881410 +vt 0.901042 0.769231 +vt 0.916667 0.785256 +vt 0.901042 0.788462 +vt 0.916667 0.958333 +vt 0.901042 0.961538 +vt 0.916667 0.900641 +vt 0.916667 0.791667 +vt 0.916667 0.804487 +vt 0.916667 0.830128 +vt 0.916667 0.842949 +vt 0.901042 0.980769 +vt 0.916667 0.964744 +vt 0.916667 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.993590 +vt 0.770833 0.987179 +vt 0.770833 0.990385 +vt 0.770833 0.971154 +vt 0.765625 0.974359 +vt 0.770833 0.939103 +vt 0.765625 0.942308 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.822917 0.849359 +vt 0.817708 0.858974 +vt 0.817708 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.785256 +vt 0.817708 0.772436 +vt 0.822917 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.977564 +vt 0.989583 0.967949 +vt 0.989583 0.974359 +vt 0.765625 0.929487 +vt 0.770833 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.987179 +vt 0.770833 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.967949 +vt 0.770833 0.961538 +vt 0.770833 0.964744 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.770833 0.971154 +vt 0.765625 0.974359 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.765625 0.980769 +vt 0.770833 0.958333 +vt 0.765625 0.961538 +vt 0.731760 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.810897 +vt 0.817708 0.820513 +vt 0.817708 0.810897 +vt 0.822917 0.842949 +vt 0.817708 0.830128 +vt 0.822917 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.979167 0.907051 +vt 0.989583 0.916667 +vt 0.979167 0.919872 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.849359 +vt 0.989583 0.858974 +vt 0.979167 0.862179 +vt 0.979167 0.983974 +vt 0.989583 0.993590 +vt 0.979167 0.996795 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.945513 +vt 0.989583 0.955128 +vt 0.979167 0.958333 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 +vt 0.765625 0.929487 +vt 0.770833 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.770833 0.971154 +vt 0.765625 0.974359 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.734353 0.967949 +vt 0.726573 0.973477 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.958333 +vt 0.817708 0.945513 +vt 0.822917 0.945513 +vt 0.822917 0.977564 +vt 0.817708 0.964744 +vt 0.822917 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.772436 +vt 0.817708 0.782051 +vt 0.817708 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.958920 +vt 0.710957 0.958920 +vt 0.710957 0.925696 +vt 0.979167 0.907051 +vt 0.989583 0.916667 +vt 0.979167 0.919872 +vt 0.979167 0.810897 +vt 0.989583 0.820513 +vt 0.979167 0.823718 +vt 0.979167 0.862179 +vt 0.989583 0.852564 +vt 0.989583 0.858974 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.926282 +vt 0.989583 0.935897 +vt 0.979167 0.939103 +vt 0.979167 0.868590 +vt 0.989583 0.878205 +vt 0.979167 0.881410 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.791667 +vt 0.989583 0.801282 +vt 0.979167 0.804487 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.977564 +vt 0.989583 0.967949 +vt 0.989583 0.974359 +vt 0.765625 0.929487 +vt 0.770833 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.967949 +vt 0.770833 0.961538 +vt 0.770833 0.964744 +vt 0.770833 0.932692 +vt 0.765625 0.935897 +vt 0.765625 0.942308 +vt 0.770833 0.945513 +vt 0.765625 0.948718 +vt 0.765625 0.993590 +vt 0.770833 0.987179 +vt 0.770833 0.990385 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.977564 +vt 0.770833 0.958333 +vt 0.765625 0.961538 +vt 0.731760 0.973477 +vt 0.726573 0.973477 +vt 0.726573 0.962420 +vt 0.822917 0.862179 +vt 0.817708 0.849359 +vt 0.822917 0.849359 +vt 0.822917 0.881410 +vt 0.817708 0.868590 +vt 0.822917 0.868590 +vt 0.822917 0.900641 +vt 0.817708 0.887821 +vt 0.822917 0.887821 +vt 0.822917 0.919872 +vt 0.817708 0.907051 +vt 0.822917 0.907051 +vt 0.822917 0.926282 +vt 0.817708 0.935897 +vt 0.817708 0.926282 +vt 0.822917 0.945513 +vt 0.817708 0.955128 +vt 0.817708 0.945513 +vt 0.822917 0.964744 +vt 0.817708 0.974359 +vt 0.817708 0.964744 +vt 0.822917 0.983974 +vt 0.817708 0.993590 +vt 0.817708 0.983974 +vt 0.822917 0.785256 +vt 0.817708 0.772436 +vt 0.822917 0.772436 +vt 0.822917 0.804487 +vt 0.817708 0.791667 +vt 0.822917 0.791667 +vt 0.822917 0.823718 +vt 0.817708 0.810897 +vt 0.822917 0.810897 +vt 0.822917 0.830128 +vt 0.817708 0.839744 +vt 0.817708 0.830128 +vt 0.726543 0.925696 +vt 0.734335 0.942308 +vt 0.710957 0.958920 +vt 0.979167 0.919872 +vt 0.989583 0.910256 +vt 0.989583 0.916667 +vt 0.979167 0.823718 +vt 0.989583 0.814103 +vt 0.989583 0.820513 +vt 0.979167 0.862179 +vt 0.989583 0.852564 +vt 0.989583 0.858974 +vt 0.979167 0.996795 +vt 0.989583 0.987179 +vt 0.989583 0.993590 +vt 0.979167 0.939103 +vt 0.989583 0.929487 +vt 0.989583 0.935897 +vt 0.979167 0.881410 +vt 0.989583 0.871795 +vt 0.989583 0.878205 +vt 0.979167 0.772436 +vt 0.989583 0.782051 +vt 0.979167 0.785256 +vt 0.979167 0.958333 +vt 0.989583 0.948718 +vt 0.989583 0.955128 +vt 0.979167 0.887821 +vt 0.989583 0.897436 +vt 0.979167 0.900641 +vt 0.979167 0.804487 +vt 0.989583 0.794872 +vt 0.989583 0.801282 +vt 0.979167 0.830128 +vt 0.989583 0.839744 +vt 0.979167 0.842949 +vt 0.979167 0.964744 +vt 0.989583 0.974359 +vt 0.979167 0.977564 +vt 0.765625 0.923077 +vt 0.770833 0.926282 +vt 0.765625 0.929487 +vt 0.765625 0.980769 +vt 0.770833 0.983974 +vt 0.765625 0.987179 +vt 0.765625 0.961538 +vt 0.770833 0.964744 +vt 0.765625 0.967949 +vt 0.765625 0.935897 +vt 0.770833 0.929487 +vt 0.770833 0.932692 +vt 0.765625 0.948718 +vt 0.770833 0.942308 +vt 0.770833 0.945513 +vt 0.770833 0.990385 +vt 0.765625 0.993590 +vt 0.765625 0.974359 +vt 0.770833 0.967949 +vt 0.770833 0.971154 +vt 0.765625 0.942308 +vt 0.770833 0.935897 +vt 0.770833 0.939103 +vt 0.770833 0.951923 +vt 0.765625 0.955128 +vt 0.765625 1.000000 +vt 0.770833 0.993590 +vt 0.770833 0.996795 +vt 0.770833 0.974359 +vt 0.770833 0.977564 +vt 0.770833 0.955128 +vt 0.770833 0.958333 +vt 0.726573 0.962420 +vt 0.731760 0.962420 +vt 0.734353 0.967949 +vt 0.260417 0.294872 +vt 0.260417 0.333333 +vt 0.260417 0.407051 +vt 0.260417 0.445513 +vt 0.260417 0.483974 +vt 0.260417 0.522436 +vt 0.260417 0.560897 +vt 0.260417 0.599359 +vt 0.260417 0.637821 +vt 0.260417 0.641026 +vt 0.260417 0.679487 +vt 0.260417 0.102564 +vt 0.260417 0.141026 +vt 0.260417 0.179487 +vt 0.260417 0.217949 +vt 0.260417 0.256410 +vt 0.250000 0.451923 +vt 0.260417 0.410256 +vt 0.260417 0.371795 +vt 0.260417 0.333333 +vt 0.260417 0.294872 +vt 0.260417 0.256410 +vt 0.260417 0.217949 +vt 0.260417 0.179487 +vt 0.250000 0.144231 +vt 0.250000 0.105769 +vt 0.250000 0.682692 +vt 0.250000 0.644231 +vt 0.250000 0.605769 +vt 0.250000 0.567308 +vt 0.250000 0.528846 +vt 0.250000 0.490385 +vt 0.364583 0.285256 +vt 0.364583 0.323718 +vt 0.364583 0.342949 +vt 0.364583 0.400641 +vt 0.364583 0.439103 +vt 0.364583 0.458333 +vt 0.364583 0.516026 +vt 0.364583 0.554487 +vt 0.364583 0.573718 +vt 0.364583 0.612179 +vt 0.364583 0.669872 +vt 0.364583 0.708333 +vt 0.364583 0.112179 +vt 0.364583 0.150641 +vt 0.364583 0.208333 +vt 0.364583 0.246795 +vt 0.500000 0.294872 +vt 0.500000 0.368590 +vt 0.500000 0.371795 +vt 0.500000 0.410256 +vt 0.500000 0.483974 +vt 0.500000 0.487179 +vt 0.500000 0.560897 +vt 0.500000 0.599359 +vt 0.500000 0.637821 +vt 0.500000 0.641026 +vt 0.500000 0.679487 +vt 0.500000 0.137821 +vt 0.500000 0.176282 +vt 0.500000 0.214744 +vt 0.500000 0.217949 +vt 0.500000 0.256410 +vt 0.364583 0.496795 +vt 0.333333 0.448718 +vt 0.364583 0.419872 +vt 0.364583 0.381410 +vt 0.333333 0.333333 +vt 0.364583 0.304487 +vt 0.333333 0.256410 +vt 0.333333 0.217949 +vt 0.333333 0.179487 +vt 0.364583 0.150641 +vt 0.364583 0.112179 +vt 0.333333 0.679487 +vt 0.333333 0.641026 +vt 0.364583 0.612179 +vt 0.364583 0.573718 +vt 0.364583 0.535256 +vt 0.468750 0.496795 +vt 0.468750 0.477564 +vt 0.468750 0.419872 +vt 0.468750 0.381410 +vt 0.468750 0.362179 +vt 0.468750 0.304487 +vt 0.468750 0.266026 +vt 0.468750 0.246795 +vt 0.468750 0.208333 +vt 0.468750 0.150641 +vt 0.468750 0.112179 +vt 0.468750 0.708333 +vt 0.468750 0.669872 +vt 0.468750 0.612179 +vt 0.468750 0.573718 +vt 0.468750 0.535256 +vt 0.635417 0.272436 +vt 0.635417 0.314103 +vt 0.635417 0.352564 +vt 0.635417 0.391026 +vt 0.635417 0.429487 +vt 0.635417 0.464744 +vt 0.635417 0.506410 +vt 0.635417 0.541667 +vt 0.635417 0.583333 +vt 0.635417 0.618590 +vt 0.635417 0.660256 +vt 0.635417 0.695513 +vt 0.635417 0.118590 +vt 0.635417 0.160256 +vt 0.635417 0.198718 +vt 0.635417 0.237179 +vt 0.264383 0.742557 +vt 0.253086 0.739791 +vt 0.260416 0.743528 +vt 0.256449 0.742557 +vt 0.250839 0.735652 +vt 0.250049 0.730769 +vt 0.250839 0.725887 +vt 0.256449 0.718982 +vt 0.260416 0.718010 +vt 0.264383 0.718982 +vt 0.269994 0.725887 +vt 0.270783 0.730769 +vt 0.269994 0.735652 +vt 0.635417 0.503205 +vt 0.635417 0.464744 +vt 0.635417 0.426282 +vt 0.635417 0.387821 +vt 0.572917 0.333333 +vt 0.635417 0.310897 +vt 0.572917 0.256410 +vt 0.635417 0.233974 +vt 0.572917 0.179487 +vt 0.635417 0.157051 +vt 0.572917 0.102564 +vt 0.572917 0.679487 +vt 0.635417 0.657051 +vt 0.635417 0.618590 +vt 0.635417 0.580128 +vt 0.572917 0.525641 +vt 0.256449 0.742557 +vt 0.253086 0.739791 +vt 0.250839 0.735652 +vt 0.250049 0.730769 +vt 0.250839 0.725887 +vt 0.253086 0.721747 +vt 0.256449 0.718982 +vt 0.264383 0.718982 +vt 0.267746 0.721747 +vt 0.269994 0.725887 +vt 0.269994 0.735652 +vt 0.267746 0.739791 +vt 0.264383 0.742557 +vt 0.739583 0.358974 +vt 0.770833 0.615385 +vt 0.812500 0.410256 +vt 0.697917 0.564103 +vt 0.739583 0.358974 +vt 0.770833 0.615385 +vt 0.812500 0.410256 +vt 0.697917 0.564103 +vt 0.770833 0.615385 +vt 0.739583 0.358974 +vt 0.697917 0.564103 +vt 0.812500 0.410256 +vt 0.770833 0.615385 +vt 0.739583 0.358974 +vt 0.697917 0.564103 +vt 0.812500 0.410256 +vt 0.531250 0.884615 +vt 0.531250 0.884615 +vt 0.468750 0.717949 +vt 0.468750 0.717949 +vt 0.531250 0.884615 +vt 0.531250 0.884615 +vt 0.468750 0.717949 +vt 0.468750 0.717949 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.250000 0.788462 +vt 0.255208 0.743590 +vt 0.286458 0.794872 +vt 0.291667 0.750000 +vt 0.656250 0.814103 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.958333 0.246795 +vt 0.958333 0.282051 +vt 0.859375 0.240385 +vt 0.953125 0.240385 +vt 0.953125 0.144231 +vt 0.854167 0.137821 +vt 0.854167 0.102564 +vt 0.953125 0.625000 +vt 0.859375 0.625000 +vt 0.958333 0.631410 +vt 0.854167 0.666667 +vt 0.953125 0.528846 +vt 0.854167 0.474359 +vt 0.854167 0.522436 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.817708 0.782051 +vt 0.817708 0.801282 +vt 0.822917 0.823718 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.979167 0.907051 +vt 0.989583 0.814103 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.989583 0.929487 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.989583 0.948718 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.726573 0.973477 +vt 0.724675 0.971141 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.916667 0.907051 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.772436 +vt 0.916667 0.945513 +vt 0.916667 0.887821 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.967949 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.250000 0.794872 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.059896 0.067308 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.822917 0.842949 +vt 0.817708 0.820513 +vt 0.817708 0.801282 +vt 0.822917 0.785256 +vt 0.822917 0.996795 +vt 0.822917 0.977564 +vt 0.817708 0.955128 +vt 0.822917 0.939103 +vt 0.817708 0.916667 +vt 0.817708 0.897436 +vt 0.817708 0.878205 +vt 0.817708 0.858974 +vt 0.822917 0.862179 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.822917 0.804487 +vt 0.817708 0.820513 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.726543 0.925696 +vt 0.732247 0.932717 +vt 0.979167 0.907051 +vt 0.979167 0.810897 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.989583 0.871795 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.726573 0.962420 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.822917 0.804487 +vt 0.822917 0.823718 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.979167 0.907051 +vt 0.979167 0.810897 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.989583 0.948718 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.817708 0.935897 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.817708 0.801282 +vt 0.822917 0.823718 +vt 0.822917 0.842949 +vt 0.734335 0.942308 +vt 0.732247 0.951899 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.726543 0.925696 +vt 0.732247 0.932717 +vt 0.989583 0.910256 +vt 0.989583 0.814103 +vt 0.979167 0.849359 +vt 0.979167 0.983974 +vt 0.989583 0.929487 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.979167 0.887821 +vt 0.979167 0.791667 +vt 0.979167 0.830128 +vt 0.979167 0.964744 +vt 0.765625 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.770833 0.955128 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.734353 0.967949 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.729167 0.974332 +vt 0.822917 0.862179 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.817708 0.782051 +vt 0.817708 0.801282 +vt 0.817708 0.820513 +vt 0.822917 0.842949 +vt 0.734335 0.942308 +vt 0.732247 0.951899 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.726543 0.925696 +vt 0.732247 0.932717 +vt 0.979167 0.907051 +vt 0.979167 0.810897 +vt 0.979167 0.849359 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.989583 0.871795 +vt 0.989583 0.775641 +vt 0.989583 0.948718 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.955128 +vt 0.726573 0.973477 +vt 0.724675 0.971141 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.979167 0.907051 +vt 0.989583 0.814103 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.989583 0.929487 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 +vt 0.770833 0.923077 +vt 0.770833 0.961538 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.916667 0.907051 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.772436 +vt 0.916667 0.945513 +vt 0.916667 0.887821 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.967949 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.822917 0.862179 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.817708 0.782051 +vt 0.817708 0.801282 +vt 0.822917 0.823718 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.979167 0.907051 +vt 0.989583 0.814103 +vt 0.989583 0.852564 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.979167 0.964744 +vt 0.765625 0.923077 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.967949 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.770833 0.955128 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.726573 0.962420 +vt 0.729167 0.961565 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.817708 0.801282 +vt 0.822917 0.823718 +vt 0.817708 0.839744 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.710957 0.925696 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.989583 0.910256 +vt 0.979167 0.810897 +vt 0.989583 0.852564 +vt 0.989583 0.987179 +vt 0.979167 0.926282 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.989583 0.948718 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 +vt 0.765625 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.987179 +vt 0.770833 0.967949 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.817708 0.955128 +vt 0.817708 0.974359 +vt 0.822917 0.996795 +vt 0.822917 0.785256 +vt 0.817708 0.801282 +vt 0.817708 0.820513 +vt 0.822917 0.842949 +vt 0.734335 0.942308 +vt 0.732247 0.951899 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.726543 0.925696 +vt 0.732247 0.932717 +vt 0.989583 0.910256 +vt 0.989583 0.814103 +vt 0.979167 0.849359 +vt 0.979167 0.983974 +vt 0.989583 0.929487 +vt 0.989583 0.871795 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.989583 0.794872 +vt 0.989583 0.833333 +vt 0.979167 0.964744 +vt 0.765625 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.929487 +vt 0.770833 0.942308 +vt 0.770833 0.935897 +vt 0.770833 0.948718 +vt 0.770833 0.974359 +vt 0.770833 0.955128 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.731760 0.962420 +vt 0.733658 0.964757 +vt 0.734353 0.967949 +vt 0.733658 0.971141 +vt 0.729167 0.974332 +vt 0.817708 0.858974 +vt 0.817708 0.878205 +vt 0.817708 0.897436 +vt 0.817708 0.916667 +vt 0.822917 0.939103 +vt 0.822917 0.958333 +vt 0.822917 0.977564 +vt 0.822917 0.996795 +vt 0.817708 0.782051 +vt 0.817708 0.801282 +vt 0.817708 0.820513 +vt 0.822917 0.842949 +vt 0.732247 0.951899 +vt 0.726543 0.958920 +vt 0.718750 0.961490 +vt 0.705253 0.951899 +vt 0.710957 0.925696 +vt 0.703165 0.942308 +vt 0.705253 0.932717 +vt 0.718750 0.923126 +vt 0.732247 0.932717 +vt 0.979167 0.907051 +vt 0.979167 0.810897 +vt 0.979167 0.849359 +vt 0.979167 0.983974 +vt 0.979167 0.926282 +vt 0.979167 0.868590 +vt 0.989583 0.775641 +vt 0.979167 0.945513 +vt 0.989583 0.891026 +vt 0.979167 0.791667 +vt 0.989583 0.833333 +vt 0.989583 0.967949 +vt 0.770833 0.923077 +vt 0.770833 0.980769 +vt 0.770833 0.961538 +vt 0.770833 0.987179 +vt 0.770833 0.948718 +vt 0.726573 0.973477 +vt 0.724675 0.971141 +vt 0.723980 0.967949 +vt 0.724675 0.964757 +vt 0.729167 0.961565 +vt 0.733658 0.964757 +vt 0.733658 0.971141 +vt 0.731760 0.973477 +vt 0.729167 0.974332 +vt 0.187500 0.102564 +vt 0.062500 0.153846 +vt 0.062500 0.102564 +vt 0.187500 0.410256 +vt 0.062500 0.461538 +vt 0.062500 0.410256 +vt 0.187500 0.564103 +vt 0.062500 0.615385 +vt 0.062500 0.564103 +vt 0.187500 0.871795 +vt 0.062500 0.923077 +vt 0.062500 0.871795 +vt 0.187500 0.512821 +vt 0.062500 0.512821 +vt 0.229167 0.320513 +vt 0.187500 0.358974 +vt 0.187500 0.307692 +vt 0.229167 0.397436 +vt 0.229167 0.423077 +vt 0.187500 0.461538 +vt 0.229167 0.500000 +vt 0.229167 0.525641 +vt 0.229167 0.576923 +vt 0.187500 0.615385 +vt 0.229167 0.628205 +vt 0.187500 0.666667 +vt 0.229167 0.705128 +vt 0.187500 0.717949 +vt 0.229167 0.756410 +vt 0.187500 0.769231 +vt 0.229167 0.807692 +vt 0.187500 0.820513 +vt 0.229167 0.833333 +vt 0.229167 0.884615 +vt 0.187500 0.923077 +vt 0.229167 0.141026 +vt 0.187500 0.153846 +vt 0.229167 0.166667 +vt 0.187500 0.205128 +vt 0.229167 0.217949 +vt 0.187500 0.256410 +vt 0.229167 0.294872 +vt 0.062500 0.358974 +vt 0.020833 0.397436 +vt 0.020833 0.371795 +vt 0.020833 0.448718 +vt 0.020833 0.423077 +vt 0.020833 0.500000 +vt 0.020833 0.474359 +vt 0.020833 0.525641 +vt 0.020833 0.576923 +vt 0.062500 0.666667 +vt 0.020833 0.628205 +vt 0.062500 0.717949 +vt 0.020833 0.679487 +vt 0.062500 0.769231 +vt 0.020833 0.730769 +vt 0.020833 0.807692 +vt 0.020833 0.782051 +vt 0.062500 0.820513 +vt 0.020833 0.858974 +vt 0.020833 0.833333 +vt 0.020833 0.884615 +vt 0.020833 0.141026 +vt 0.020833 0.115385 +vt 0.020833 0.192308 +vt 0.020833 0.166667 +vt 0.062500 0.256410 +vt 0.020833 0.217949 +vt 0.062500 0.205128 +vt 0.020833 0.294872 +vt 0.020833 0.269231 +vt 0.020833 0.320513 +vt 0.062500 0.307692 +vt 0.250000 0.346154 +vt 0.229167 0.346154 +vt 0.229167 0.782051 +vt 0.250000 0.807692 +vt 0.229167 0.371795 +vt 0.250000 0.397436 +vt 0.229167 0.858974 +vt 0.250000 0.833333 +vt 0.250000 0.858974 +vt 0.250000 0.448718 +vt 0.229167 0.448718 +vt 0.250000 0.910256 +vt 0.229167 0.910256 +vt 0.250000 0.551282 +vt 0.229167 0.551282 +vt 0.229167 0.474359 +vt 0.250000 0.500000 +vt 0.229167 0.115385 +vt 0.250000 0.141026 +vt 0.250000 0.602564 +vt 0.229167 0.602564 +vt 0.250000 0.192308 +vt 0.229167 0.192308 +vt 0.250000 0.653846 +vt 0.229167 0.653846 +vt 0.250000 0.243590 +vt 0.229167 0.243590 +vt 0.229167 0.679487 +vt 0.250000 0.705128 +vt 0.229167 0.269231 +vt 0.250000 0.294872 +vt 0.229167 0.730769 +vt 0.250000 0.756410 +vt 0.020833 0.653846 +vt -0.000000 0.628205 +vt 0.020833 0.243590 +vt 0.000000 0.217949 +vt 0.020833 0.705128 +vt 0.000000 0.679487 +vt 0.000000 0.269231 +vt 0.020833 0.756410 +vt 0.000000 0.730769 +vt 0.020833 0.346154 +vt 0.000000 0.320513 +vt 0.000000 0.782051 +vt 0.000000 0.371795 +vt -0.000000 0.858974 +vt -0.000000 0.833333 +vt 0.000000 0.423077 +vt 0.020833 0.910256 +vt -0.000000 0.884615 +vt 0.020833 0.551282 +vt 0.000000 0.525641 +vt 0.000000 0.474359 +vt -0.000000 0.115385 +vt 0.020833 0.602564 +vt 0.000000 0.576923 +vt -0.000000 0.166667 +vt 0.276042 0.410256 +vt 0.276042 0.371795 +vt 0.276042 0.448718 +vt 0.276042 0.487179 +vt 0.276042 0.525641 +vt 0.276042 0.564103 +vt 0.276042 0.602564 +vt 0.276042 0.641026 +vt 0.276042 0.679487 +vt 0.276042 0.717949 +vt 0.276042 0.102564 +vt 0.276042 0.141026 +vt 0.276042 0.217949 +vt 0.276042 0.179487 +vt 0.276042 0.256410 +vt 0.276042 0.294872 +vt 0.276042 0.333333 +vt 0.317708 0.294872 +vt 0.317708 0.333333 +vt 0.317708 0.371795 +vt 0.317708 0.410256 +vt 0.317708 0.448718 +vt 0.317708 0.487179 +vt 0.317708 0.525641 +vt 0.317708 0.564103 +vt 0.317708 0.602564 +vt 0.317708 0.641026 +vt 0.317708 0.679487 +vt 0.317708 0.102564 +vt 0.317708 0.141026 +vt 0.317708 0.179487 +vt 0.317708 0.217949 +vt 0.317708 0.256410 +vt 0.317708 0.410256 +vt 0.317708 0.448718 +vt 0.317708 0.371795 +vt 0.317708 0.333333 +vt 0.317708 0.294872 +vt 0.317708 0.256410 +vt 0.317708 0.217949 +vt 0.317708 0.179487 +vt 0.317708 0.102564 +vt 0.317708 0.141026 +vt 0.317708 0.717949 +vt 0.317708 0.679487 +vt 0.317708 0.641026 +vt 0.317708 0.602564 +vt 0.317708 0.564103 +vt 0.317708 0.525641 +vt 0.317708 0.487179 +vt 0.276042 0.525641 +vt 0.276042 0.487179 +vt 0.276042 0.448718 +vt 0.276042 0.410256 +vt 0.276042 0.371795 +vt 0.276042 0.333333 +vt 0.276042 0.294872 +vt 0.276042 0.256410 +vt 0.276042 0.217949 +vt 0.276042 0.179487 +vt 0.276042 0.141026 +vt 0.276042 0.717949 +vt 0.276042 0.679487 +vt 0.276042 0.641026 +vt 0.276042 0.602564 +vt 0.276042 0.564103 +vt 0.276042 0.102564 +vt 0.364583 0.198718 +vt 0.468750 0.217949 +vt 0.364583 0.217949 +vt 0.364583 0.371795 +vt 0.468750 0.391026 +vt 0.364583 0.391026 +vt 0.468750 0.237179 +vt 0.364583 0.237179 +vt 0.468750 0.410256 +vt 0.364583 0.410256 +vt 0.364583 0.256410 +vt 0.468750 0.275641 +vt 0.364583 0.275641 +vt 0.468750 0.256410 +vt 0.364583 0.102564 +vt 0.468750 0.121795 +vt 0.364583 0.121795 +vt 0.468750 0.294872 +vt 0.364583 0.294872 +vt 0.468750 0.141026 +vt 0.364583 0.141026 +vt 0.468750 0.314103 +vt 0.364583 0.314103 +vt 0.468750 0.160256 +vt 0.364583 0.160256 +vt 0.468750 0.333333 +vt 0.364583 0.333333 +vt 0.468750 0.179487 +vt 0.364583 0.179487 +vt 0.468750 0.352564 +vt 0.364583 0.352564 +vt 0.468750 0.198718 +vt 0.468750 0.371795 +vt 0.515625 0.371795 +vt 0.515625 0.448718 +vt 0.515625 0.410256 +vt 0.515625 0.487179 +vt 0.515625 0.525641 +vt 0.515625 0.564103 +vt 0.515625 0.602564 +vt 0.515625 0.641026 +vt 0.515625 0.679487 +vt 0.515625 0.717949 +vt 0.515625 0.102564 +vt 0.515625 0.141026 +vt 0.515625 0.179487 +vt 0.515625 0.217949 +vt 0.515625 0.256410 +vt 0.515625 0.294872 +vt 0.515625 0.333333 +vt 0.557292 0.294872 +vt 0.557292 0.333333 +vt 0.557292 0.371795 +vt 0.557292 0.410256 +vt 0.557292 0.448718 +vt 0.557292 0.487179 +vt 0.557292 0.525641 +vt 0.557292 0.564103 +vt 0.557292 0.602564 +vt 0.557292 0.641026 +vt 0.557292 0.679487 +vt 0.557292 0.102564 +vt 0.557292 0.141026 +vt 0.557292 0.179487 +vt 0.557292 0.217949 +vt 0.557292 0.256410 +vt 0.557292 0.410256 +vt 0.557292 0.448718 +vt 0.557292 0.371795 +vt 0.557292 0.333333 +vt 0.557292 0.294872 +vt 0.557292 0.256410 +vt 0.557292 0.217949 +vt 0.557292 0.179487 +vt 0.557292 0.141026 +vt 0.557292 0.102564 +vt 0.557292 0.679487 +vt 0.557292 0.717949 +vt 0.557292 0.602564 +vt 0.557292 0.641026 +vt 0.557292 0.564103 +vt 0.557292 0.525641 +vt 0.557292 0.487179 +vt 0.515625 0.525641 +vt 0.515625 0.487179 +vt 0.515625 0.448718 +vt 0.515625 0.410256 +vt 0.515625 0.371795 +vt 0.515625 0.333333 +vt 0.515625 0.294872 +vt 0.515625 0.256410 +vt 0.515625 0.217949 +vt 0.515625 0.179487 +vt 0.515625 0.141026 +vt 0.515625 0.717949 +vt 0.515625 0.679487 +vt 0.515625 0.641026 +vt 0.515625 0.602564 +vt 0.515625 0.564103 +vt 0.515625 0.102564 +vt 0.364583 0.121795 +vt 0.468750 0.141026 +vt 0.364583 0.141026 +vt 0.364583 0.275641 +vt 0.468750 0.294872 +vt 0.364583 0.294872 +vt 0.364583 0.102564 +vt 0.468750 0.121795 +vt 0.364583 0.237179 +vt 0.468750 0.256410 +vt 0.364583 0.256410 +vt 0.468750 0.275641 +vt 0.364583 0.391026 +vt 0.468750 0.410256 +vt 0.364583 0.410256 +vt 0.364583 0.217949 +vt 0.468750 0.237179 +vt 0.364583 0.371795 +vt 0.468750 0.391026 +vt 0.364583 0.198718 +vt 0.468750 0.217949 +vt 0.364583 0.352564 +vt 0.468750 0.371795 +vt 0.364583 0.179487 +vt 0.468750 0.198718 +vt 0.364583 0.333333 +vt 0.468750 0.352564 +vt 0.364583 0.160256 +vt 0.468750 0.179487 +vt 0.364583 0.314103 +vt 0.468750 0.333333 +vt 0.468750 0.160256 +vt 0.468750 0.314103 +vt 0.645833 0.538462 +vt 0.635417 0.535256 +vt 0.645833 0.535256 +vt 0.645833 0.541667 +vt 0.635417 0.538462 +vt 0.645833 0.564103 +vt 0.635417 0.560897 +vt 0.645833 0.560897 +vt 0.635417 0.532051 +vt 0.645833 0.532051 +vt 0.635417 0.557692 +vt 0.645833 0.557692 +vt 0.635417 0.528846 +vt 0.645833 0.528846 +vt 0.635417 0.554487 +vt 0.645833 0.554487 +vt 0.635417 0.525641 +vt 0.645833 0.525641 +vt 0.635417 0.551282 +vt 0.645833 0.551282 +vt 0.635417 0.522436 +vt 0.645833 0.522436 +vt 0.635417 0.548077 +vt 0.645833 0.548077 +vt 0.635417 0.519231 +vt 0.645833 0.519231 +vt 0.635417 0.544872 +vt 0.645833 0.544872 +vt 0.635417 0.516026 +vt 0.645833 0.516026 +vt 0.635417 0.541667 +vt 0.635417 0.512821 +vt 0.645833 0.512821 +vt 0.645833 0.522436 +vt 0.635417 0.519231 +vt 0.645833 0.519231 +vt 0.645833 0.551282 +vt 0.635417 0.548077 +vt 0.645833 0.548077 +vt 0.645833 0.525641 +vt 0.635417 0.522436 +vt 0.645833 0.554487 +vt 0.635417 0.551282 +vt 0.645833 0.528846 +vt 0.635417 0.525641 +vt 0.645833 0.557692 +vt 0.635417 0.554487 +vt 0.645833 0.532051 +vt 0.635417 0.528846 +vt 0.645833 0.560897 +vt 0.635417 0.557692 +vt 0.645833 0.535256 +vt 0.635417 0.532051 +vt 0.645833 0.564103 +vt 0.635417 0.560897 +vt 0.645833 0.541667 +vt 0.635417 0.538462 +vt 0.645833 0.538462 +vt 0.635417 0.535256 +vt 0.645833 0.516026 +vt 0.635417 0.512821 +vt 0.645833 0.512821 +vt 0.645833 0.544872 +vt 0.635417 0.541667 +vt 0.635417 0.516026 +vt 0.635417 0.544872 +vt 0.468750 0.554487 +vt 0.364583 0.583333 +vt 0.364583 0.554487 +vt 0.468750 0.814103 +vt 0.364583 0.842949 +vt 0.364583 0.814103 +vt 0.468750 0.583333 +vt 0.364583 0.612179 +vt 0.468750 0.842949 +vt 0.364583 0.871795 +vt 0.468750 0.641026 +vt 0.364583 0.669872 +vt 0.364583 0.641026 +vt 0.468750 0.612179 +vt 0.468750 0.410256 +vt 0.364583 0.439103 +vt 0.364583 0.410256 +vt 0.468750 0.669872 +vt 0.364583 0.698718 +vt 0.468750 0.439103 +vt 0.364583 0.467949 +vt 0.468750 0.698718 +vt 0.364583 0.727564 +vt 0.468750 0.467949 +vt 0.364583 0.496795 +vt 0.468750 0.727564 +vt 0.364583 0.756410 +vt 0.468750 0.525641 +vt 0.364583 0.525641 +vt 0.468750 0.756410 +vt 0.364583 0.785256 +vt 0.468750 0.785256 +vt 0.364583 0.727564 +vt 0.468750 0.698718 +vt 0.468750 0.727564 +vt 0.364583 0.467949 +vt 0.468750 0.439103 +vt 0.468750 0.467949 +vt 0.364583 0.698718 +vt 0.468750 0.669872 +vt 0.364583 0.439103 +vt 0.468750 0.410256 +vt 0.364583 0.641026 +vt 0.468750 0.612179 +vt 0.468750 0.641026 +vt 0.364583 0.669872 +vt 0.364583 0.871795 +vt 0.468750 0.842949 +vt 0.468750 0.871795 +vt 0.364583 0.612179 +vt 0.468750 0.583333 +vt 0.364583 0.842949 +vt 0.468750 0.814103 +vt 0.364583 0.583333 +vt 0.468750 0.554487 +vt 0.364583 0.814103 +vt 0.468750 0.785256 +vt 0.364583 0.554487 +vt 0.468750 0.525641 +vt 0.364583 0.756410 +vt 0.468750 0.756410 +vt 0.364583 0.525641 +vt 0.468750 0.496795 +vt 0.364583 0.496795 +vt 0.497396 0.948718 +vt 0.520833 0.942308 +vt 0.520833 0.948718 +vt 0.354167 0.961538 +vt 0.401042 0.955128 +vt 0.401042 0.961538 +vt 0.497396 0.955128 +vt 0.520833 0.955128 +vt 0.401042 0.948718 +vt 0.354167 0.942308 +vt 0.401042 0.942308 +vt 0.497396 0.935897 +vt 0.520833 0.935897 +vt 0.354167 0.955128 +vt 0.520833 0.961538 +vt 0.471354 0.942308 +vt 0.497396 0.942308 +vt 0.471354 0.948718 +vt 0.471354 0.961538 +vt 0.497396 0.961538 +vt 0.440104 0.942308 +vt 0.471354 0.935897 +vt 0.471354 0.955128 +vt 0.440104 0.948718 +vt 0.440104 0.961538 +vt 0.401042 0.935897 +vt 0.440104 0.935897 +vt 0.440104 0.955128 +vt 0.354167 0.916667 +vt 0.377604 0.910256 +vt 0.377604 0.916667 +vt 0.377604 0.923077 +vt 0.354167 0.929487 +vt 0.377604 0.929487 +vt 0.354167 0.935897 +vt 0.377604 0.935897 +vt 0.520833 0.916667 +vt 0.473958 0.910256 +vt 0.520833 0.910256 +vt 0.473958 0.923077 +vt 0.520833 0.923077 +vt 0.473958 0.929487 +vt 0.520833 0.929487 +vt 0.520833 0.935897 +vt 0.434896 0.916667 +vt 0.473958 0.916667 +vt 0.434896 0.923077 +vt 0.434896 0.929487 +vt 0.473958 0.935897 +vt 0.403646 0.910256 +vt 0.434896 0.910256 +vt 0.403646 0.923077 +vt 0.434896 0.935897 +vt 0.403646 0.929487 +vt 0.403646 0.916667 +vt 0.403646 0.935897 +vt 0.609375 0.884615 +vt 0.656250 0.891026 +vt 0.609375 0.891026 +vt 0.609375 0.897436 +vt 0.656250 0.897436 +vt 0.656250 0.903846 +vt 0.609375 0.903846 +vt 0.656250 0.910256 +vt 0.609375 0.910256 +vt 0.354167 0.884615 +vt 0.401042 0.891026 +vt 0.354167 0.891026 +vt 0.401042 0.897436 +vt 0.354167 0.897436 +vt 0.401042 0.903846 +vt 0.354167 0.903846 +vt 0.354167 0.910256 +vt 0.401042 0.910256 +vt 0.484375 0.884615 +vt 0.484375 0.891026 +vt 0.484375 0.897436 +vt 0.484375 0.903846 +vt 0.484375 0.910256 +vt 0.526042 0.891026 +vt 0.526042 0.897436 +vt 0.526042 0.903846 +vt 0.526042 0.910256 +vt 0.526042 0.884615 +vt 0.854167 0.769231 +vt 0.958333 0.721154 +vt 0.958333 0.769231 +vt 0.854167 0.336538 +vt 0.958333 0.336538 +vt 0.854167 0.721154 +vt 0.958333 0.192308 +vt 0.958333 0.576923 +vt 0.854167 0.192308 +vt 0.854167 0.576923 +vt 0.958333 0.048077 +vt 0.958333 0.432692 +vt 0.854167 0.048077 +vt 0.958333 -0.000000 +vt 0.854167 0.384615 +vt 0.958333 0.384615 +vt 0.854167 0.432692 +vt 0.812500 0.759615 +vt 0.812500 0.682692 +vt 0.812500 0.634615 +vt 0.812500 0.615385 +vt 0.812500 0.538462 +vt 0.812500 0.490385 +vt 0.812500 0.471154 +vt 0.812500 0.394231 +vt 0.812500 0.375000 +vt 0.812500 0.326923 +vt 0.812500 0.278846 +vt 0.812500 0.230769 +vt 0.812500 0.153846 +vt 0.812500 0.134615 +vt 0.812500 0.086538 +vt 0.812500 0.038462 +vt 0.854167 -0.000000 +vt 0.674546 0.791749 +vt 0.762954 0.791749 +vt 0.762954 0.900559 +vt 1.000000 0.038462 +vt 1.000000 0.759615 +vt 1.000000 0.682692 +vt 1.000000 0.711538 +vt 1.000000 0.634615 +vt 1.000000 0.663462 +vt 1.000000 0.586538 +vt 1.000000 0.615385 +vt 1.000000 0.538462 +vt 1.000000 0.567308 +vt 1.000000 0.490385 +vt 1.000000 0.519231 +vt 1.000000 0.471154 +vt 1.000000 0.423077 +vt 1.000000 0.375000 +vt 1.000000 0.326923 +vt 1.000000 0.278846 +vt 1.000000 0.230769 +vt 1.000000 0.153846 +vt 1.000000 0.182692 +vt 1.000000 0.134615 +vt 1.000000 0.086538 +vt 0.718750 0.769213 +vt 0.781264 0.846154 +vt 0.718750 0.923094 +vt 0.916667 0.849359 +vt 0.901042 0.865385 +vt 0.901042 0.846154 +vt 0.916667 0.881410 +vt 0.901042 0.884615 +vt 0.916667 0.887821 +vt 0.901042 0.903846 +vt 0.916667 0.919872 +vt 0.901042 0.923077 +vt 0.916667 0.926282 +vt 0.901042 0.942308 +vt 0.916667 0.958333 +vt 0.901042 0.961538 +vt 0.916667 0.964744 +vt 0.901042 0.980769 +vt 0.916667 0.983974 +vt 0.901042 1.000000 +vt 0.916667 0.772436 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.916667 0.804487 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.916667 0.830128 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.846154 +vt 0.838542 0.826923 +vt 0.838542 0.961538 +vt 0.838542 0.923077 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.865385 +vt 0.838542 0.980769 +vt 0.838542 0.769231 +vt 0.838542 1.000000 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.772436 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.830128 +vt 0.916667 0.810897 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.868590 +vt 0.916667 0.785256 +vt 0.916667 0.945513 +vt 0.916667 0.900641 +vt 0.916667 0.791667 +vt 0.916667 0.842949 +vt 0.916667 0.977564 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.869792 0.826923 +vt 0.869792 0.865385 +vt 0.869792 0.980769 +vt 0.869792 1.000000 +vt 0.869792 0.923077 +vt 0.869792 0.942308 +vt 0.869792 0.884615 +vt 0.869792 0.769231 +vt 0.869792 0.788462 +vt 0.869792 0.961538 +vt 0.869792 0.903846 +vt 0.869792 0.807692 +vt 0.869792 0.846154 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.671875 0.535256 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.666667 0.528846 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.687500 0.740385 +vt 0.692708 0.746795 +vt 0.687500 0.746795 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.666667 0.753205 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.682292 0.756410 +vt 0.692708 0.750000 +vt 0.687500 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.743590 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.666667 0.525641 +vt 0.661458 0.512821 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.525641 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.666667 0.528846 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.692708 0.743590 +vt 0.687500 0.746795 +vt 0.687500 0.740385 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.666667 0.753205 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.692708 0.746795 +vt 0.697917 0.746795 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.666667 0.528846 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.687500 0.740385 +vt 0.692708 0.746795 +vt 0.687500 0.746795 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.666667 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.743590 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.666667 0.528846 +vt 0.671875 0.525641 +vt 0.682292 0.525641 +vt 0.677083 0.525641 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.692708 0.743590 +vt 0.687500 0.746795 +vt 0.687500 0.740385 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.692708 0.746795 +vt 0.666667 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.666667 0.525641 +vt 0.661458 0.512821 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.525641 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.671875 0.535256 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.661458 0.532051 +vt 0.666667 0.528846 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.692708 0.743590 +vt 0.687500 0.746795 +vt 0.687500 0.740385 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.666667 0.753205 +vt 0.661458 0.750000 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.692708 0.746795 +vt 0.677083 0.756410 +vt 0.697917 0.746795 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.769231 +vt 0.697917 0.769231 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.666667 0.528846 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.687500 0.740385 +vt 0.692708 0.746795 +vt 0.687500 0.746795 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.666667 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.743590 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.769231 +vt 0.687500 0.769231 +vt 0.692708 0.756410 +vt 0.697917 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.535256 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.666667 0.528846 +vt 0.671875 0.525641 +vt 0.677083 0.525641 +vt 0.682292 0.525641 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.538462 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.687500 0.740385 +vt 0.692708 0.746795 +vt 0.687500 0.746795 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.666667 0.753205 +vt 0.697917 0.746795 +vt 0.692708 0.743590 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.666667 0.756410 +vt 0.661458 0.769231 +vt 0.661458 0.756410 +vt 0.671875 0.769231 +vt 0.687500 0.756410 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.769231 +vt 0.687500 0.769231 +vt 0.692708 0.756410 +vt 0.697917 0.769231 +vt 0.666667 0.769231 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.687500 0.737179 +vt 0.682292 0.544872 +vt 0.687500 0.544872 +vt 0.682292 0.737179 +vt 0.677083 0.544872 +vt 0.677083 0.737179 +vt 0.671875 0.544872 +vt 0.671875 0.737179 +vt 0.666667 0.544872 +vt 0.666667 0.737179 +vt 0.661458 0.544872 +vt 0.661458 0.737179 +vt 0.656250 0.544872 +vt 0.677083 0.746795 +vt 0.697917 0.737179 +vt 0.692708 0.544872 +vt 0.697917 0.544872 +vt 0.692708 0.737179 +vt 0.677083 0.535256 +vt 0.666667 0.541667 +vt 0.671875 0.535256 +vt 0.682292 0.535256 +vt 0.661458 0.538462 +vt 0.666667 0.535256 +vt 0.687500 0.541667 +vt 0.692708 0.535256 +vt 0.692708 0.538462 +vt 0.687500 0.535256 +vt 0.687500 0.528846 +vt 0.692708 0.532051 +vt 0.666667 0.528846 +vt 0.671875 0.525641 +vt 0.682292 0.525641 +vt 0.661458 0.535256 +vt 0.677083 0.525641 +vt 0.697917 0.535256 +vt 0.656250 0.535256 +vt 0.661458 0.532051 +vt 0.661458 0.743590 +vt 0.666667 0.746795 +vt 0.661458 0.746795 +vt 0.692708 0.743590 +vt 0.687500 0.746795 +vt 0.687500 0.740385 +vt 0.682292 0.746795 +vt 0.671875 0.746795 +vt 0.666667 0.740385 +vt 0.666667 0.753205 +vt 0.661458 0.750000 +vt 0.677083 0.756410 +vt 0.671875 0.756410 +vt 0.687500 0.753205 +vt 0.682292 0.756410 +vt 0.692708 0.746795 +vt 0.697917 0.746795 +vt 0.692708 0.750000 +vt 0.656250 0.746795 +vt 0.661458 0.756410 +vt 0.666667 0.769231 +vt 0.661458 0.769231 +vt 0.671875 0.769231 +vt 0.687500 0.769231 +vt 0.682292 0.769231 +vt 0.656250 0.756410 +vt 0.656250 0.769231 +vt 0.692708 0.756410 +vt 0.687500 0.756410 +vt 0.697917 0.756410 +vt 0.692708 0.769231 +vt 0.666667 0.756410 +vt 0.677083 0.769231 +vt 0.697917 0.525641 +vt 0.692708 0.512821 +vt 0.697917 0.512821 +vt 0.666667 0.512821 +vt 0.671875 0.512821 +vt 0.682292 0.512821 +vt 0.661458 0.525641 +vt 0.666667 0.525641 +vt 0.677083 0.512821 +vt 0.687500 0.525641 +vt 0.687500 0.512821 +vt 0.656250 0.525641 +vt 0.661458 0.512821 +vt 0.692708 0.525641 +vt 0.520833 0.942308 +vt 0.497396 0.948718 +vt 0.520833 0.948718 +vt 0.401042 0.955128 +vt 0.354167 0.961538 +vt 0.401042 0.961538 +vt 0.497396 0.955128 +vt 0.520833 0.955128 +vt 0.401042 0.948718 +vt 0.354167 0.942308 +vt 0.354167 0.948718 +vt 0.520833 0.935897 +vt 0.497396 0.942308 +vt 0.354167 0.955128 +vt 0.520833 0.961538 +vt 0.497396 0.961538 +vt 0.497396 0.935897 +vt 0.471354 0.942308 +vt 0.471354 0.948718 +vt 0.471354 0.955128 +vt 0.471354 0.961538 +vt 0.471354 0.935897 +vt 0.440104 0.942308 +vt 0.440104 0.948718 +vt 0.440104 0.955128 +vt 0.440104 0.961538 +vt 0.440104 0.935897 +vt 0.401042 0.942308 +vt 0.401042 0.935897 +vt 0.377604 0.910256 +vt 0.354167 0.916667 +vt 0.377604 0.916667 +vt 0.377604 0.923077 +vt 0.354167 0.923077 +vt 0.354167 0.929487 +vt 0.377604 0.929487 +vt 0.354167 0.935897 +vt 0.377604 0.935897 +vt 0.520833 0.916667 +vt 0.473958 0.910256 +vt 0.473958 0.916667 +vt 0.473958 0.923077 +vt 0.520833 0.923077 +vt 0.473958 0.929487 +vt 0.520833 0.929487 +vt 0.520833 0.935897 +vt 0.473958 0.935897 +vt 0.434896 0.916667 +vt 0.434896 0.923077 +vt 0.434896 0.929487 +vt 0.434896 0.935897 +vt 0.403646 0.910256 +vt 0.403646 0.916667 +vt 0.403646 0.923077 +vt 0.403646 0.929487 +vt 0.403646 0.935897 +vt 0.656250 0.891026 +vt 0.609375 0.884615 +vt 0.609375 0.891026 +vt 0.609375 0.897436 +vt 0.656250 0.903846 +vt 0.609375 0.903846 +vt 0.656250 0.910256 +vt 0.609375 0.910256 +vt 0.401042 0.891026 +vt 0.354167 0.884615 +vt 0.354167 0.891026 +vt 0.401042 0.897436 +vt 0.354167 0.897436 +vt 0.401042 0.903846 +vt 0.354167 0.903846 +vt 0.354167 0.910256 +vt 0.484375 0.884615 +vt 0.401042 0.884615 +vt 0.484375 0.897436 +vt 0.484375 0.903846 +vt 0.401042 0.910256 +vt 0.526042 0.891026 +vt 0.484375 0.891026 +vt 0.526042 0.903846 +vt 0.526042 0.910256 +vt 0.484375 0.910256 +vt 0.526042 0.884615 +vt 0.526042 0.897436 +vt 0.781250 0.791667 +vt 0.781250 0.887821 +vt 0.781250 0.945513 +vt 0.781250 0.772436 +vt 0.781250 0.868590 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.849359 +vt 0.781250 0.810897 +vt 0.781250 0.907051 +vt 0.781250 0.964744 +vt 0.838542 0.826923 +vt 0.838542 0.807692 +vt 0.838542 0.788462 +vt 0.838542 0.769231 +vt 0.838542 1.000000 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.942308 +vt 0.838542 0.923077 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.901042 0.884615 +vt 0.901042 0.865385 +vt 0.901042 0.942308 +vt 0.901042 0.923077 +vt 0.901042 1.000000 +vt 0.901042 0.980769 +vt 0.901042 0.846154 +vt 0.901042 0.826923 +vt 0.901042 0.807692 +vt 0.901042 0.903846 +vt 0.901042 0.961538 +vt 0.916667 0.830128 +vt 0.916667 0.823718 +vt 0.916667 0.804487 +vt 0.916667 0.772436 +vt 0.916667 0.983974 +vt 0.916667 0.964744 +vt 0.916667 0.958333 +vt 0.916667 0.926282 +vt 0.916667 0.907051 +vt 0.916667 0.887821 +vt 0.916667 0.868590 +vt 0.916667 0.849359 +vt 0.526042 0.903846 +vt 0.609375 0.910256 +vt 0.526042 0.910256 +vt 0.609375 0.897436 +vt 0.609375 0.903846 +vt 0.526042 0.897436 +vt 0.609375 0.891026 +vt 0.526042 0.884615 +vt 0.526042 0.891026 +vt 0.484375 0.903846 +vt 0.484375 0.910256 +vt 0.484375 0.897436 +vt 0.484375 0.884615 +vt 0.484375 0.891026 +vt 0.401042 0.910256 +vt 0.401042 0.897436 +vt 0.401042 0.903846 +vt 0.401042 0.891026 +vt 0.354167 0.910256 +vt 0.354167 0.897436 +vt 0.354167 0.903846 +vt 0.354167 0.891026 +vt 0.354167 0.884615 +vt 0.656250 0.910256 +vt 0.656250 0.903846 +vt 0.656250 0.891026 +vt 0.656250 0.897436 +vt 0.609375 0.884615 +vt 0.403646 0.935897 +vt 0.377604 0.929487 +vt 0.403646 0.929487 +vt 0.377604 0.923077 +vt 0.403646 0.923077 +vt 0.403646 0.916667 +vt 0.377604 0.910256 +vt 0.403646 0.910256 +vt 0.434896 0.935897 +vt 0.434896 0.929487 +vt 0.434896 0.923077 +vt 0.434896 0.916667 +vt 0.434896 0.910256 +vt 0.473958 0.935897 +vt 0.473958 0.929487 +vt 0.473958 0.923077 +vt 0.473958 0.916667 +vt 0.473958 0.910256 +vt 0.520833 0.935897 +vt 0.520833 0.929487 +vt 0.520833 0.923077 +vt 0.520833 0.916667 +vt 0.520833 0.910256 +vt 0.354167 0.935897 +vt 0.377604 0.935897 +vt 0.354167 0.929487 +vt 0.354167 0.916667 +vt 0.377604 0.916667 +vt 0.354167 0.942308 +vt 0.401042 0.935897 +vt 0.401042 0.942308 +vt 0.401042 0.961538 +vt 0.440104 0.955128 +vt 0.440104 0.961538 +vt 0.401042 0.955128 +vt 0.440104 0.948718 +vt 0.440104 0.942308 +vt 0.440104 0.935897 +vt 0.471354 0.955128 +vt 0.471354 0.961538 +vt 0.471354 0.948718 +vt 0.471354 0.942308 +vt 0.471354 0.935897 +vt 0.497396 0.955128 +vt 0.497396 0.961538 +vt 0.497396 0.948718 +vt 0.497396 0.942308 +vt 0.497396 0.935897 +vt 0.520833 0.961538 +vt 0.520833 0.955128 +vt 0.354167 0.955128 +vt 0.401042 0.948718 +vt 0.520833 0.942308 +vt 0.520833 0.935897 +vt 0.520833 0.948718 +vt 0.354167 0.961538 +vt 0.901042 0.846154 +vt 0.916667 0.862179 +vt 0.901042 0.865385 +vt 0.916667 0.868590 +vt 0.901042 0.884615 +vt 0.916667 0.887821 +vt 0.901042 0.903846 +vt 0.916667 0.907051 +vt 0.901042 0.923077 +vt 0.916667 0.926282 +vt 0.901042 0.942308 +vt 0.916667 0.945513 +vt 0.901042 0.961538 +vt 0.916667 0.977564 +vt 0.901042 0.980769 +vt 0.916667 0.983974 +vt 0.901042 1.000000 +vt 0.901042 0.769231 +vt 0.916667 0.785256 +vt 0.901042 0.788462 +vt 0.916667 0.791667 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.916667 0.842949 +vt 0.838542 0.961538 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.923077 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.838542 0.980769 +vt 0.838542 0.769231 +vt 0.838542 1.000000 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.858974 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.830128 +vt 0.916667 0.810897 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.958333 +vt 0.916667 0.900641 +vt 0.916667 0.804487 +vt 0.916667 0.830128 +vt 0.916667 0.964744 +vt 0.916667 0.919872 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.955128 +vt 0.781250 0.958333 +vt 0.781250 0.923077 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.929487 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.916667 0.849359 +vt 0.901042 0.865385 +vt 0.901042 0.846154 +vt 0.916667 0.868590 +vt 0.901042 0.884615 +vt 0.916667 0.900641 +vt 0.901042 0.903846 +vt 0.916667 0.919872 +vt 0.901042 0.923077 +vt 0.916667 0.926282 +vt 0.901042 0.942308 +vt 0.916667 0.958333 +vt 0.901042 0.961538 +vt 0.916667 0.964744 +vt 0.901042 0.980769 +vt 0.916667 0.983974 +vt 0.901042 1.000000 +vt 0.916667 0.772436 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.916667 0.791667 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.916667 0.830128 +vt 0.838542 0.942308 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.961538 +vt 0.838542 0.807692 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.838542 0.980769 +vt 0.838542 0.923077 +vt 0.838542 0.769231 +vt 0.838542 1.000000 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.897436 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.830128 +vt 0.916667 0.810897 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.785256 +vt 0.916667 0.887821 +vt 0.916667 0.804487 +vt 0.916667 0.842949 +vt 0.916667 0.977564 +vt 0.734375 0.980769 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 0.974359 +vt 0.734375 0.942308 +vt 0.734375 0.955128 +vt 0.734375 1.000000 +vt 0.781250 0.974359 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.980769 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.901042 0.846154 +vt 0.916667 0.862179 +vt 0.901042 0.865385 +vt 0.916667 0.868590 +vt 0.901042 0.884615 +vt 0.916667 0.887821 +vt 0.901042 0.903846 +vt 0.916667 0.907051 +vt 0.901042 0.923077 +vt 0.916667 0.926282 +vt 0.901042 0.942308 +vt 0.916667 0.945513 +vt 0.901042 0.961538 +vt 0.916667 0.964744 +vt 0.901042 0.980769 +vt 0.916667 0.983974 +vt 0.901042 1.000000 +vt 0.901042 0.769231 +vt 0.916667 0.785256 +vt 0.901042 0.788462 +vt 0.916667 0.804487 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.916667 0.842949 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.846154 +vt 0.838542 0.923077 +vt 0.838542 0.865385 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.858974 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.801282 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.772436 +vt 0.916667 0.958333 +vt 0.916667 0.900641 +vt 0.916667 0.977564 +vt 0.916667 0.919872 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 0.942308 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.993590 +vt 0.781250 0.996795 +vt 0.916667 0.849359 +vt 0.901042 0.865385 +vt 0.901042 0.846154 +vt 0.916667 0.868590 +vt 0.901042 0.884615 +vt 0.916667 0.900641 +vt 0.901042 0.903846 +vt 0.916667 0.919872 +vt 0.901042 0.923077 +vt 0.916667 0.926282 +vt 0.901042 0.942308 +vt 0.916667 0.958333 +vt 0.901042 0.961538 +vt 0.916667 0.964744 +vt 0.901042 0.980769 +vt 0.916667 0.983974 +vt 0.901042 1.000000 +vt 0.916667 0.772436 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.916667 0.791667 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.916667 0.830128 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.961538 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.838542 0.980769 +vt 0.838542 0.923077 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.878205 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.785256 +vt 0.916667 0.945513 +vt 0.916667 0.887821 +vt 0.916667 0.804487 +vt 0.916667 0.842949 +vt 0.916667 0.977564 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.955128 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.942308 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.993590 +vt 0.781250 0.996795 +vt 0.781250 0.830128 +vt 0.916667 0.810897 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.785256 +vt 0.916667 0.945513 +vt 0.916667 0.900641 +vt 0.916667 0.791667 +vt 0.916667 0.842949 +vt 0.916667 0.977564 +vt 0.916667 0.919872 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.869792 0.807692 +vt 0.869792 0.826923 +vt 0.869792 0.846154 +vt 0.869792 0.865385 +vt 0.869792 0.980769 +vt 0.869792 1.000000 +vt 0.869792 0.923077 +vt 0.869792 0.942308 +vt 0.869792 0.884615 +vt 0.869792 0.769231 +vt 0.869792 0.788462 +vt 0.869792 0.961538 +vt 0.869792 0.903846 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.971154 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.520833 0.942308 +vt 0.497396 0.948718 +vt 0.520833 0.948718 +vt 0.401042 0.955128 +vt 0.354167 0.961538 +vt 0.401042 0.961538 +vt 0.497396 0.955128 +vt 0.520833 0.955128 +vt 0.401042 0.948718 +vt 0.354167 0.942308 +vt 0.354167 0.948718 +vt 0.520833 0.935897 +vt 0.497396 0.942308 +vt 0.354167 0.955128 +vt 0.520833 0.961538 +vt 0.497396 0.961538 +vt 0.497396 0.935897 +vt 0.471354 0.942308 +vt 0.471354 0.948718 +vt 0.471354 0.955128 +vt 0.471354 0.961538 +vt 0.471354 0.935897 +vt 0.440104 0.942308 +vt 0.440104 0.948718 +vt 0.440104 0.955128 +vt 0.440104 0.961538 +vt 0.440104 0.935897 +vt 0.401042 0.942308 +vt 0.401042 0.935897 +vt 0.377604 0.910256 +vt 0.354167 0.916667 +vt 0.377604 0.916667 +vt 0.377604 0.923077 +vt 0.354167 0.923077 +vt 0.354167 0.929487 +vt 0.377604 0.929487 +vt 0.354167 0.935897 +vt 0.377604 0.935897 +vt 0.520833 0.916667 +vt 0.473958 0.910256 +vt 0.473958 0.916667 +vt 0.473958 0.923077 +vt 0.520833 0.923077 +vt 0.473958 0.929487 +vt 0.520833 0.929487 +vt 0.520833 0.935897 +vt 0.473958 0.935897 +vt 0.434896 0.916667 +vt 0.434896 0.923077 +vt 0.434896 0.929487 +vt 0.434896 0.935897 +vt 0.403646 0.910256 +vt 0.403646 0.916667 +vt 0.403646 0.923077 +vt 0.403646 0.929487 +vt 0.403646 0.935897 +vt 0.656250 0.891026 +vt 0.609375 0.884615 +vt 0.609375 0.891026 +vt 0.609375 0.897436 +vt 0.656250 0.903846 +vt 0.609375 0.903846 +vt 0.656250 0.910256 +vt 0.609375 0.910256 +vt 0.401042 0.891026 +vt 0.354167 0.884615 +vt 0.354167 0.891026 +vt 0.401042 0.897436 +vt 0.354167 0.897436 +vt 0.401042 0.903846 +vt 0.354167 0.903846 +vt 0.354167 0.910256 +vt 0.484375 0.884615 +vt 0.401042 0.884615 +vt 0.484375 0.897436 +vt 0.484375 0.903846 +vt 0.401042 0.910256 +vt 0.526042 0.891026 +vt 0.484375 0.891026 +vt 0.526042 0.903846 +vt 0.526042 0.910256 +vt 0.484375 0.910256 +vt 0.526042 0.884615 +vt 0.526042 0.897436 +vt 0.916667 0.849359 +vt 0.901042 0.865385 +vt 0.901042 0.846154 +vt 0.916667 0.868590 +vt 0.901042 0.884615 +vt 0.916667 0.900641 +vt 0.901042 0.903846 +vt 0.916667 0.919872 +vt 0.901042 0.923077 +vt 0.916667 0.926282 +vt 0.901042 0.942308 +vt 0.916667 0.945513 +vt 0.901042 0.961538 +vt 0.916667 0.977564 +vt 0.901042 0.980769 +vt 0.916667 0.983974 +vt 0.901042 1.000000 +vt 0.901042 0.769231 +vt 0.916667 0.785256 +vt 0.901042 0.788462 +vt 0.916667 0.791667 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.916667 0.842949 +vt 0.838542 0.942308 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.807692 +vt 0.838542 0.788462 +vt 0.838542 0.846154 +vt 0.838542 0.826923 +vt 0.838542 0.961538 +vt 0.838542 0.865385 +vt 0.838542 1.000000 +vt 0.838542 0.980769 +vt 0.838542 0.923077 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.878205 +vt 0.781250 0.868590 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.887821 +vt 0.781250 0.801282 +vt 0.781250 0.791667 +vt 0.781250 0.830128 +vt 0.916667 0.810897 +vt 0.916667 0.862179 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.958333 +vt 0.916667 0.804487 +vt 0.916667 0.830128 +vt 0.916667 0.964744 +vt 0.916667 0.907051 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.923077 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.942308 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.901042 0.846154 +vt 0.916667 0.862179 +vt 0.901042 0.865385 +vt 0.916667 0.881410 +vt 0.901042 0.884615 +vt 0.916667 0.900641 +vt 0.901042 0.903846 +vt 0.916667 0.919872 +vt 0.901042 0.923077 +vt 0.916667 0.926282 +vt 0.901042 0.942308 +vt 0.916667 0.945513 +vt 0.901042 0.961538 +vt 0.916667 0.964744 +vt 0.901042 0.980769 +vt 0.916667 0.983974 +vt 0.901042 1.000000 +vt 0.916667 0.772436 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.916667 0.791667 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.916667 0.830128 +vt 0.838542 0.942308 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.807692 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.865385 +vt 0.838542 0.846154 +vt 0.838542 1.000000 +vt 0.838542 0.923077 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.993590 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.945513 +vt 0.781250 0.897436 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.785256 +vt 0.916667 0.958333 +vt 0.916667 0.887821 +vt 0.916667 0.804487 +vt 0.916667 0.842949 +vt 0.916667 0.977564 +vt 0.916667 0.907051 +vt 0.734375 0.980769 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 0.974359 +vt 0.734375 0.955128 +vt 0.734375 1.000000 +vt 0.781250 0.974359 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.980769 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.942308 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.901042 0.846154 +vt 0.916667 0.862179 +vt 0.901042 0.865385 +vt 0.916667 0.868590 +vt 0.901042 0.884615 +vt 0.916667 0.900641 +vt 0.901042 0.903846 +vt 0.916667 0.907051 +vt 0.901042 0.923077 +vt 0.916667 0.926282 +vt 0.901042 0.942308 +vt 0.916667 0.945513 +vt 0.901042 0.961538 +vt 0.916667 0.964744 +vt 0.901042 0.980769 +vt 0.916667 0.983974 +vt 0.901042 1.000000 +vt 0.901042 0.769231 +vt 0.916667 0.785256 +vt 0.901042 0.788462 +vt 0.916667 0.804487 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.916667 0.842949 +vt 0.838542 0.942308 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.903846 +vt 0.838542 0.807692 +vt 0.838542 0.846154 +vt 0.838542 0.923077 +vt 0.838542 0.865385 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.926282 +vt 0.781250 0.878205 +vt 0.781250 0.868590 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.897436 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.916667 0.996795 +vt 0.916667 0.939103 +vt 0.916667 0.881410 +vt 0.916667 0.772436 +vt 0.916667 0.958333 +vt 0.916667 0.830128 +vt 0.916667 0.977564 +vt 0.916667 0.919872 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.901042 0.846154 +vt 0.916667 0.862179 +vt 0.901042 0.865385 +vt 0.916667 0.881410 +vt 0.901042 0.884615 +vt 0.916667 0.900641 +vt 0.901042 0.903846 +vt 0.916667 0.907051 +vt 0.901042 0.923077 +vt 0.916667 0.939103 +vt 0.901042 0.942308 +vt 0.916667 0.958333 +vt 0.901042 0.961538 +vt 0.916667 0.977564 +vt 0.901042 0.980769 +vt 0.916667 0.983974 +vt 0.901042 1.000000 +vt 0.916667 0.772436 +vt 0.901042 0.788462 +vt 0.901042 0.769231 +vt 0.916667 0.791667 +vt 0.901042 0.807692 +vt 0.916667 0.823718 +vt 0.901042 0.826923 +vt 0.916667 0.842949 +vt 0.838542 0.942308 +vt 0.838542 0.903846 +vt 0.838542 0.884615 +vt 0.838542 0.788462 +vt 0.838542 0.826923 +vt 0.838542 0.980769 +vt 0.838542 0.961538 +vt 0.838542 0.807692 +vt 0.838542 0.846154 +vt 0.838542 1.000000 +vt 0.838542 0.923077 +vt 0.838542 0.865385 +vt 0.838542 0.769231 +vt 0.781250 0.974359 +vt 0.781250 0.964744 +vt 0.781250 0.907051 +vt 0.781250 0.810897 +vt 0.781250 0.849359 +vt 0.781250 0.983974 +vt 0.781250 0.935897 +vt 0.781250 0.926282 +vt 0.781250 0.878205 +vt 0.781250 0.868590 +vt 0.781250 0.782051 +vt 0.781250 0.772436 +vt 0.781250 0.955128 +vt 0.781250 0.945513 +vt 0.781250 0.897436 +vt 0.781250 0.887821 +vt 0.781250 0.791667 +vt 0.781250 0.839744 +vt 0.781250 0.830128 +vt 0.916667 0.810897 +vt 0.916667 0.849359 +vt 0.916667 0.996795 +vt 0.916667 0.785256 +vt 0.916667 0.887821 +vt 0.916667 0.804487 +vt 0.916667 0.964744 +vt 0.916667 0.919872 +vt 0.734375 0.974359 +vt 0.734375 0.980769 +vt 0.734375 0.955128 +vt 0.734375 0.961538 +vt 0.734375 0.923077 +vt 0.734375 0.929487 +vt 0.734375 0.987179 +vt 0.734375 0.967949 +vt 0.734375 0.935897 +vt 0.734375 0.942308 +vt 0.734375 0.948718 +vt 0.734375 0.993590 +vt 0.734375 1.000000 +vt 0.781250 0.977564 +vt 0.781250 0.955128 +vt 0.781250 0.958333 +vt 0.781250 0.926282 +vt 0.781250 0.983974 +vt 0.781250 0.964744 +vt 0.781250 0.932692 +vt 0.781250 0.942308 +vt 0.781250 0.945513 +vt 0.781250 0.990385 +vt 0.781250 0.967949 +vt 0.781250 0.971154 +vt 0.781250 0.935897 +vt 0.781250 0.939103 +vt 0.781250 0.951923 +vt 0.781250 0.996795 +vt 0.250000 0.320513 +vt 0.250000 0.782051 +vt 0.250000 0.371795 +vt 0.250000 0.423077 +vt 0.250000 0.884615 +vt 0.250000 0.525641 +vt 0.250000 0.474359 +vt 0.250000 0.115385 +vt 0.250000 0.576923 +vt 0.250000 0.166667 +vt 0.250000 0.628205 +vt 0.250000 0.217949 +vt 0.250000 0.679487 +vt 0.250000 0.269231 +vt 0.250000 0.730769 +vt -0.000000 0.653846 +vt 0.000000 0.243590 +vt 0.000000 0.705128 +vt -0.000000 0.294872 +vt -0.000000 0.756410 +vt -0.000000 0.346154 +vt -0.000000 0.807692 +vt -0.000000 0.397436 +vt -0.000000 0.448718 +vt -0.000000 0.910256 +vt -0.000000 0.551282 +vt 0.000000 0.500000 +vt -0.000000 0.141026 +vt -0.000000 0.602564 +vt 0.000000 0.192308 +vt 0.317708 0.717949 +vt 0.468750 0.102564 +vt 0.557292 0.717949 +vt 0.468750 0.102564 +vt 0.635417 0.564103 +vt 0.635417 0.564103 +vt 0.468750 0.871795 +vt 0.468750 0.496795 +vt 0.364583 0.410256 +vt 0.364583 0.785256 +vt 0.354167 0.948718 +vt 0.354167 0.935897 +vt 0.354167 0.910256 +vt 0.354167 0.923077 +vt 0.656250 0.884615 +vt 0.401042 0.884615 +vt 0.812500 0.730769 +vt 0.812500 0.711538 +vt 0.812500 0.663462 +vt 0.812500 0.586538 +vt 0.812500 0.567308 +vt 0.812500 0.519231 +vt 0.812500 0.442308 +vt 0.812500 0.423077 +vt 0.812500 0.346154 +vt 0.812500 0.298077 +vt 0.812500 0.250000 +vt 0.812500 0.201923 +vt 0.812500 0.182692 +vt 0.812500 0.105769 +vt 0.812500 0.057692 +vt 0.812500 0.009615 +vt 0.742673 0.917238 +vt 0.674546 0.900559 +vt 0.718750 0.923094 +vt 0.694827 0.917238 +vt 0.660994 0.875598 +vt 0.656236 0.846154 +vt 0.660995 0.816710 +vt 0.694827 0.775070 +vt 0.718750 0.769213 +vt 0.742673 0.775070 +vt 0.776506 0.816710 +vt 0.781264 0.846154 +vt 0.776505 0.875598 +vt 1.000000 0.009615 +vt 1.000000 0.730769 +vt 1.000000 0.442308 +vt 1.000000 0.394231 +vt 1.000000 0.346154 +vt 1.000000 0.298077 +vt 1.000000 0.250000 +vt 1.000000 0.201923 +vt 1.000000 0.105769 +vt 1.000000 0.057692 +vt 0.694827 0.917238 +vt 0.656236 0.846154 +vt 0.674546 0.900559 +vt 0.660995 0.875598 +vt 0.660995 0.816710 +vt 0.674546 0.791749 +vt 0.694827 0.775070 +vt 0.742673 0.775070 +vt 0.762954 0.791749 +vt 0.776506 0.816710 +vt 0.776506 0.875598 +vt 0.762954 0.900559 +vt 0.742673 0.917238 +vt 0.916667 0.907051 +vt 0.781250 0.974359 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.935897 +vt 0.781250 0.878205 +vt 0.781250 0.782051 +vt 0.781250 0.955128 +vt 0.781250 0.897436 +vt 0.781250 0.801282 +vt 0.781250 0.839744 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.935897 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.756410 +vt 0.656250 0.512821 +vt 0.656250 0.737179 +vt 0.697917 0.769231 +vt 0.656250 0.512821 +vt 0.354167 0.935897 +vt 0.354167 0.910256 +vt 0.520833 0.910256 +vt 0.434896 0.910256 +vt 0.656250 0.884615 +vt 0.656250 0.897436 +vt 0.781250 0.801282 +vt 0.781250 0.897436 +vt 0.781250 0.955128 +vt 0.781250 0.782051 +vt 0.781250 0.878205 +vt 0.781250 0.935897 +vt 0.781250 0.993590 +vt 0.781250 0.858974 +vt 0.781250 0.820513 +vt 0.781250 0.916667 +vt 0.781250 0.974359 +vt 0.401042 0.884615 +vt 0.656250 0.884615 +vt 0.354167 0.923077 +vt 0.354167 0.910256 +vt 0.354167 0.935897 +vt 0.354167 0.948718 +vt 0.916667 0.849359 +vt 0.916667 0.772436 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.993590 +vt 0.781250 0.878205 +vt 0.781250 0.897436 +vt 0.781250 0.801282 +vt 0.781250 0.839744 +vt 0.734375 0.923077 +vt 0.781250 0.974359 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.916667 0.907051 +vt 0.916667 0.945513 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.935897 +vt 0.781250 0.878205 +vt 0.781250 0.782051 +vt 0.781250 0.801282 +vt 0.781250 0.839744 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.916667 0.791667 +vt 0.916667 0.830128 +vt 0.838542 1.000000 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.993590 +vt 0.781250 0.878205 +vt 0.781250 0.897436 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.916667 0.907051 +vt 0.916667 0.810897 +vt 0.838542 1.000000 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.955128 +vt 0.781250 0.897436 +vt 0.781250 0.801282 +vt 0.781250 0.974359 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.839744 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.967949 +vt 0.781250 0.935897 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.354167 0.935897 +vt 0.354167 0.910256 +vt 0.520833 0.910256 +vt 0.434896 0.910256 +vt 0.656250 0.884615 +vt 0.656250 0.897436 +vt 0.916667 0.887821 +vt 0.916667 0.772436 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.782051 +vt 0.781250 0.897436 +vt 0.781250 0.839744 +vt 0.734375 0.923077 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.916667 0.868590 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.878205 +vt 0.781250 0.955128 +vt 0.781250 0.801282 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.916667 0.849359 +vt 0.916667 0.887821 +vt 0.916667 0.791667 +vt 0.916667 0.810897 +vt 0.838542 1.000000 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.935897 +vt 0.781250 0.782051 +vt 0.781250 0.801282 +vt 0.734375 0.923077 +vt 0.781250 0.974359 +vt 0.781250 0.955128 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.942308 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vt 0.916667 0.868590 +vt 0.916667 0.926282 +vt 0.916667 0.945513 +vt 0.916667 0.830128 +vt 0.781250 0.916667 +vt 0.781250 0.820513 +vt 0.781250 0.858974 +vt 0.781250 0.993590 +vt 0.781250 0.801282 +vt 0.781250 0.974359 +vt 0.781250 0.923077 +vt 0.781250 0.980769 +vt 0.781250 0.961538 +vt 0.781250 0.929487 +vt 0.781250 0.987179 +vt 0.781250 0.948718 +vt 0.781250 0.993590 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -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.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.3827 0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.1876 -0.7947 0.5774 +vn 0.6071 -0.7947 0.0000 +vn -0.4911 -0.7947 0.3568 +vn -0.4911 -0.7947 -0.3568 +vn 0.1876 -0.7947 -0.5774 +vn 0.9822 -0.1876 0.0000 +vn 0.3035 -0.1876 0.9342 +vn -0.7946 -0.1876 0.5774 +vn -0.7946 -0.1876 -0.5774 +vn 0.3035 -0.1876 -0.9342 +vn 0.7946 0.1876 0.5774 +vn -0.3035 0.1876 0.9342 +vn -0.9822 0.1876 0.0000 +vn -0.3035 0.1876 -0.9342 +vn 0.7946 0.1876 -0.5774 +vn 0.4911 0.7947 0.3568 +vn -0.1876 0.7947 0.5774 +vn -0.6071 0.7947 0.0000 +vn -0.1876 0.7947 -0.5774 +vn 0.4911 0.7947 -0.3568 +vn 0.7500 -0.4330 -0.5000 +vn -0.7500 0.4330 0.5000 +vn 0.7500 -0.4330 0.5000 +vn -0.7500 0.4330 -0.5000 +vn 0.7500 0.4330 -0.5000 +vn -0.7500 -0.4330 0.5000 +vn 0.7500 0.4330 0.5000 +vn -0.7500 -0.4330 -0.5000 +vn 0.0000 -0.9303 -0.3668 +vn 0.3560 -0.8595 0.3668 +vn 0.0000 -0.9303 0.3668 +vn 0.6578 0.6578 -0.3668 +vn 0.3560 0.8595 0.3668 +vn 0.6578 0.6578 0.3668 +vn -0.3560 0.8595 -0.3668 +vn -0.6578 0.6578 0.3668 +vn -0.3560 0.8595 0.3668 +vn -0.3560 -0.8595 -0.3668 +vn -0.3560 -0.8595 0.3668 +vn 0.0000 0.9303 -0.3668 +vn 0.0000 0.9303 0.3668 +vn 0.7071 0.0000 -0.7071 +vn 0.8595 0.3560 -0.3668 +vn 0.9303 -0.0000 -0.3668 +vn 0.5000 0.5000 -0.7071 +vn 0.3560 0.8595 -0.3668 +vn -0.2706 0.6533 -0.7071 +vn -0.6578 0.6578 -0.3668 +vn -0.5000 0.5000 -0.7071 +vn -0.8595 0.3560 -0.3668 +vn -0.7071 0.0000 -0.7071 +vn -0.9303 -0.0000 -0.3668 +vn -0.6533 -0.2706 -0.7071 +vn -0.8595 -0.3560 -0.3668 +vn -0.5000 -0.5000 -0.7071 +vn -0.6578 -0.6578 -0.3668 +vn -0.2706 -0.6533 -0.7071 +vn 0.2706 -0.6533 -0.7071 +vn 0.3560 -0.8595 -0.3668 +vn 0.6578 -0.6578 -0.3668 +vn 0.5000 -0.5000 -0.7071 +vn 0.8595 -0.3560 -0.3668 +vn 0.8595 0.3560 0.3668 +vn 0.5000 0.5000 0.7071 +vn 0.6533 0.2706 0.7071 +vn 0.2706 0.6533 0.7071 +vn -0.2706 0.6533 0.7071 +vn -0.8595 0.3560 0.3668 +vn -0.5000 0.5000 0.7071 +vn -0.9303 0.0000 0.3668 +vn -0.6533 0.2706 0.7071 +vn -0.8595 -0.3560 0.3668 +vn -0.7071 -0.0000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn -0.6533 -0.2706 0.7071 +vn -0.6578 -0.6578 0.3668 +vn -0.2706 -0.6533 0.7071 +vn 0.2706 -0.6533 0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.8595 -0.3560 0.3668 +vn 0.6578 -0.6578 0.3668 +vn 0.7071 0.0000 0.7071 +vn 0.6533 -0.2706 0.7071 +vn 0.9303 0.0000 0.3668 +vn 0.9239 0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.6533 0.2706 -0.7071 +vn 0.2706 0.6533 -0.7071 +vn -0.6533 0.2706 -0.7071 +vn 0.6533 -0.2706 -0.7071 +vn 0.7177 0.6472 0.2568 +vn 0.6523 -0.7061 0.2755 +vn 0.6104 0.7060 0.3593 +vn -0.9013 -0.3723 0.2215 +vn -0.3976 0.4048 -0.8234 +vn -0.8798 -0.4243 0.2143 +vn -0.6361 0.6472 -0.4201 +vn -0.6536 0.7060 -0.2727 +vn 0.8973 0.4048 -0.1760 +vn 0.3636 -0.3723 0.8540 +vn 0.3564 -0.4243 0.8324 +vn -0.6410 -0.7403 -0.2027 +vn -0.6118 -0.7061 -0.3565 +vn -0.3635 0.3721 -0.8540 +vn 0.4434 -0.6475 0.6197 +vn 0.5467 -0.7403 0.3912 +vn 0.8096 0.5854 0.0438 +vn -0.7619 -0.6475 0.0171 +vn 0.3861 -0.5265 0.7575 +vn -0.5208 0.5854 -0.6214 +vn 0.8656 0.4917 -0.0952 +vn -0.8376 -0.5265 0.1457 +vn -0.4432 0.4917 -0.7495 +vn 0.6170 -0.7068 0.3462 +vn -0.5455 -0.7380 -0.3971 +vn 0.6450 -0.7380 0.1981 +vn 0.6317 0.6489 0.4242 +vn -0.6157 0.7066 -0.3488 +vn -0.7184 0.6489 -0.2508 +vn -0.6472 -0.7067 -0.2858 +vn 0.9005 -0.3750 -0.2200 +vn -0.3575 -0.4254 -0.8314 +vn -0.3643 -0.3750 -0.8524 +vn 0.3973 0.4064 0.8228 +vn 0.3643 0.3749 0.8525 +vn -0.8966 0.4064 0.1758 +vn -0.9006 0.3749 0.2201 +vn 0.8376 -0.5265 -0.1457 +vn 0.8796 -0.4254 -0.2129 +vn 0.4432 0.4917 0.7495 +vn -0.8656 0.4917 0.0952 +vn -0.4434 -0.6475 -0.6198 +vn -0.3861 -0.5265 -0.7575 +vn 0.5208 0.5854 0.6214 +vn -0.8096 0.5854 -0.0438 +vn 0.7619 -0.6475 -0.0171 +vn -0.4663 -0.6839 -0.5611 +vn 0.7724 -0.6310 0.0731 +vn 0.7203 -0.6839 0.1163 +vn 0.5180 0.6371 0.5707 +vn 0.4555 0.6307 0.6282 +vn -0.7726 0.6307 -0.0728 +vn -0.7548 0.6371 -0.1558 +vn -0.4557 -0.6310 -0.6279 +vn -0.7724 -0.6310 -0.0731 +vn 0.4663 -0.6839 0.5611 +vn 0.4557 -0.6310 0.6279 +vn 0.7548 0.6371 0.1558 +vn 0.7726 0.6307 0.0728 +vn -0.5180 0.6371 -0.5707 +vn -0.4555 0.6307 -0.6282 +vn -0.7203 -0.6839 -0.1163 +vn -0.6358 -0.7273 -0.2585 +vn 0.5459 -0.7273 0.4160 +vn 0.6808 0.6717 0.2921 +vn -0.5977 0.6717 -0.4376 +vn 0.6358 -0.7273 0.2585 +vn 0.5977 0.6717 0.4376 +vn -0.6808 0.6717 -0.2921 +vn -0.5459 -0.7273 -0.4160 +vn -0.0000 0.9411 -0.3381 +vn -0.3601 0.8695 0.3381 +vn -0.0000 0.9411 0.3381 +vn 0.3601 -0.8695 -0.3381 +vn 0.5761 -0.6806 0.4527 +vn 0.3601 -0.8695 0.3381 +vn -0.3601 0.8695 -0.3381 +vn -0.5761 0.6806 0.4527 +vn 0.8492 -0.2718 -0.4527 +vn 0.9411 -0.0000 0.3381 +vn 0.8492 -0.2718 0.4527 +vn -0.8492 0.2718 -0.4527 +vn -0.9411 -0.0000 0.3381 +vn -0.8492 0.2718 0.4527 +vn 0.9411 0.0000 -0.3381 +vn 0.8492 0.2718 0.4527 +vn -0.9411 -0.0000 -0.3381 +vn -0.8492 -0.2718 0.4527 +vn 0.5761 0.6806 -0.4527 +vn 0.3601 0.8695 0.3381 +vn 0.5761 0.6806 0.4527 +vn -0.5761 -0.6806 -0.4527 +vn -0.3601 -0.8695 0.3381 +vn -0.5761 -0.6806 0.4527 +vn 0.3601 0.8695 -0.3381 +vn -0.0000 -0.9411 -0.3381 +vn -0.0000 -0.9411 0.3381 +vn -0.3601 -0.8695 -0.3381 +vn -0.0000 0.4542 -0.8909 +vn -0.3212 0.3212 -0.8909 +vn -0.5761 0.6806 -0.4527 +vn -0.4196 0.1738 -0.8909 +vn -0.4196 -0.1738 -0.8909 +vn -0.8492 -0.2718 -0.4527 +vn -0.3212 -0.3212 -0.8909 +vn 0.0000 -0.4542 -0.8909 +vn 0.1738 -0.4196 -0.8909 +vn 0.5761 -0.6806 -0.4527 +vn 0.3212 -0.3212 -0.8909 +vn 0.4196 -0.1738 -0.8909 +vn 0.4196 0.1738 -0.8909 +vn 0.8492 0.2718 -0.4527 +vn 0.3212 0.3212 -0.8909 +vn 0.1738 0.4196 -0.8909 +vn 0.1738 0.4196 0.8909 +vn -0.0000 0.4542 0.8909 +vn -0.3212 0.3212 0.8909 +vn -0.1738 0.4196 0.8909 +vn -0.4196 0.1738 0.8909 +vn -0.4542 -0.0000 0.8909 +vn -0.4196 -0.1738 0.8909 +vn -0.3212 -0.3212 0.8909 +vn -0.1738 -0.4196 0.8909 +vn 0.0000 -0.4542 0.8909 +vn 0.1738 -0.4196 0.8909 +vn 0.3212 -0.3212 0.8909 +vn 0.4196 -0.1738 0.8909 +vn 0.4196 0.1738 0.8909 +vn 0.4542 -0.0000 0.8909 +vn 0.3212 0.3212 0.8909 +vn -0.7071 0.3536 -0.6124 +vn -0.3620 0.8073 -0.4661 +vn -0.3620 0.4661 -0.8073 +vn -0.3620 0.9322 0.0000 +vn -0.3620 0.8073 0.4661 +vn -0.7071 0.3536 0.6124 +vn -0.3620 0.4661 0.8073 +vn -0.3620 0.0000 0.9322 +vn -0.7071 -0.3536 0.6124 +vn -0.3620 -0.4661 0.8073 +vn -0.3620 -0.8073 0.4661 +vn -0.7071 -0.6124 0.3536 +vn -0.3620 -0.9322 0.0000 +vn -0.3620 -0.8073 -0.4661 +vn -0.7071 -0.3536 -0.6124 +vn -0.3620 -0.4661 -0.8073 +vn -0.3620 0.0000 -0.9322 +vn 0.3620 0.0000 0.9322 +vn 0.3620 0.9322 0.0000 +vn 0.3620 -0.8073 -0.4661 +vn 0.3620 0.4661 -0.8073 +vn 0.3620 -0.0000 -0.9322 +vn 0.3620 -0.4661 0.8073 +vn 0.3620 0.4661 0.8073 +vn 0.3620 0.8073 0.4661 +vn 0.3620 -0.4661 -0.8073 +vn 0.3620 0.8073 -0.4661 +vn 0.3620 -0.8073 0.4661 +vn 0.3620 -0.9322 0.0000 +vn 0.7071 0.3536 -0.6124 +vn 0.7071 0.6124 -0.3536 +vn 0.7071 0.6124 0.3536 +vn 0.7071 0.3536 0.6124 +vn 0.7071 -0.6124 0.3536 +vn 0.7071 -0.3536 0.6124 +vn 0.7071 -0.6124 -0.3536 +vn 0.7071 -0.3536 -0.6124 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn -0.0000 -0.5000 -0.8660 +vn -0.0000 0.8660 -0.5000 +vn -0.0000 0.5000 -0.8660 +vn -0.0000 -0.8660 -0.5000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.3385 0.9408 0.0196 +vn 0.4046 0.9030 -0.1448 +vn -0.3385 0.9408 -0.0196 +vn 0.4046 0.9030 0.1448 +vn 0.9077 0.3760 -0.1866 +vn 0.9077 0.3760 0.1866 +vn 0.9246 -0.3524 -0.1448 +vn 0.9246 -0.3524 0.1448 +vn 0.4259 -0.9046 -0.0196 +vn 0.4259 -0.9046 0.0196 +vn -0.3445 -0.9288 0.1363 +vn -0.3445 -0.9288 -0.1363 +vn -0.9004 0.4132 0.1363 +vn -0.9004 0.4132 -0.1363 +vn 0.7428 -0.4100 -0.5293 +vn 0.2353 0.8151 -0.5294 +vn -0.1367 -0.8764 0.4617 +vn 0.4429 -0.8940 -0.0671 +vn -0.7164 0.5230 0.4617 +vn -0.3190 0.9454 -0.0671 +vn -0.3641 0.9302 -0.0473 +vn -0.4038 0.6189 0.6737 +vn 0.3937 -0.5723 -0.7194 +vn 0.1724 0.0714 -0.9824 +vn -0.1262 0.6831 -0.7194 +vn 0.4003 -0.9152 -0.0473 +vn 0.1520 -0.7232 0.6737 +vn 0.4429 -0.8940 0.0671 +vn -0.1368 -0.8764 -0.4617 +vn -0.7164 0.5230 -0.4617 +vn -0.3190 0.9454 0.0671 +vn 0.2353 0.8151 0.5294 +vn 0.7428 -0.4100 0.5293 +vn 0.4003 -0.9152 0.0473 +vn 0.1520 -0.7232 -0.6737 +vn 0.1724 0.0714 0.9824 +vn 0.3937 -0.5723 0.7194 +vn -0.1262 0.6831 0.7194 +vn -0.4038 0.6189 -0.6737 +vn -0.3641 0.9302 0.0473 +vn 0.4259 0.9046 0.0196 +vn 0.9246 0.3524 -0.1448 +vn 0.4259 0.9046 -0.0196 +vn 0.9246 0.3524 0.1448 +vn 0.9077 -0.3760 -0.1866 +vn 0.9077 -0.3760 0.1866 +vn 0.4046 -0.9030 -0.1448 +vn 0.4046 -0.9030 0.1448 +vn -0.3385 -0.9408 -0.0196 +vn -0.3385 -0.9408 0.0196 +vn -0.9004 -0.4132 0.1363 +vn -0.9004 -0.4132 -0.1363 +vn -0.3445 0.9288 0.1363 +vn -0.3445 0.9288 -0.1363 +vn 0.2353 -0.8151 -0.5294 +vn 0.7428 0.4100 -0.5294 +vn -0.7164 -0.5230 0.4617 +vn -0.3190 -0.9454 -0.0671 +vn -0.1368 0.8764 0.4617 +vn 0.4429 0.8940 -0.0671 +vn 0.4003 0.9152 -0.0473 +vn 0.1520 0.7232 0.6737 +vn -0.3641 -0.9302 -0.0473 +vn -0.1262 -0.6831 -0.7194 +vn 0.1724 -0.0714 -0.9824 +vn 0.3937 0.5723 -0.7194 +vn -0.4039 -0.6189 0.6737 +vn -0.3190 -0.9454 0.0671 +vn -0.7164 -0.5230 -0.4617 +vn 0.4429 0.8940 0.0671 +vn 0.7428 0.4100 0.5294 +vn 0.2353 -0.8151 0.5294 +vn -0.3641 -0.9302 0.0473 +vn -0.4038 -0.6189 -0.6737 +vn 0.1724 -0.0714 0.9824 +vn -0.1262 -0.6831 0.7194 +vn 0.4003 0.9152 0.0473 +vn 0.3937 0.5723 0.7194 +vn -0.1367 0.8764 -0.4617 +vn 0.1520 0.7232 -0.6737 +vn 0.3385 -0.9408 0.0196 +vn -0.4046 -0.9030 -0.1448 +vn 0.3385 -0.9408 -0.0196 +vn -0.4046 -0.9030 0.1448 +vn -0.9077 -0.3760 -0.1866 +vn -0.9077 -0.3760 0.1866 +vn -0.9246 0.3524 -0.1448 +vn -0.9246 0.3524 0.1448 +vn -0.4259 0.9046 -0.0196 +vn -0.4259 0.9046 0.0196 +vn 0.3445 0.9288 0.1363 +vn 0.3445 0.9288 -0.1363 +vn 0.9004 -0.4132 0.1363 +vn 0.9004 -0.4132 -0.1363 +vn -0.7428 0.4100 -0.5294 +vn -0.2353 -0.8151 -0.5294 +vn 0.1367 0.8764 0.4617 +vn -0.4429 0.8940 -0.0671 +vn 0.7164 -0.5230 0.4617 +vn 0.3190 -0.9454 -0.0671 +vn 0.3641 -0.9302 -0.0473 +vn 0.4038 -0.6189 0.6737 +vn -0.3937 0.5723 -0.7194 +vn -0.1724 -0.0714 -0.9824 +vn 0.1262 -0.6831 -0.7194 +vn -0.4003 0.9152 -0.0473 +vn -0.1520 0.7232 0.6737 +vn -0.4429 0.8940 0.0671 +vn 0.1368 0.8764 -0.4617 +vn 0.7164 -0.5230 -0.4617 +vn 0.3190 -0.9454 0.0671 +vn -0.2353 -0.8151 0.5294 +vn -0.7428 0.4100 0.5294 +vn -0.1520 0.7232 -0.6737 +vn -0.1724 -0.0714 0.9824 +vn -0.3937 0.5723 0.7194 +vn 0.3641 -0.9302 0.0473 +vn 0.1262 -0.6831 0.7194 +vn -0.4003 0.9152 0.0473 +vn 0.4038 -0.6189 -0.6737 +vn -0.4259 -0.9046 0.0196 +vn -0.9246 -0.3524 -0.1448 +vn -0.4259 -0.9046 -0.0196 +vn -0.9246 -0.3524 0.1448 +vn -0.9077 0.3760 -0.1866 +vn -0.9077 0.3760 0.1866 +vn -0.4046 0.9030 -0.1448 +vn -0.4046 0.9030 0.1448 +vn 0.3385 0.9408 -0.0196 +vn 0.3385 0.9408 0.0196 +vn 0.9004 0.4132 0.1363 +vn 0.9004 0.4132 -0.1363 +vn 0.3445 -0.9288 0.1363 +vn 0.3445 -0.9288 -0.1363 +vn -0.2353 0.8151 -0.5294 +vn -0.7428 -0.4100 -0.5294 +vn 0.7164 0.5230 0.4617 +vn 0.3190 0.9454 -0.0671 +vn 0.1367 -0.8764 0.4617 +vn -0.4429 -0.8940 -0.0671 +vn -0.4003 -0.9152 -0.0473 +vn -0.1520 -0.7232 0.6737 +vn 0.3641 0.9302 -0.0473 +vn 0.1262 0.6831 -0.7194 +vn -0.3937 -0.5723 -0.7194 +vn -0.1724 0.0714 -0.9824 +vn 0.4039 0.6189 0.6737 +vn 0.3190 0.9454 0.0671 +vn 0.7164 0.5230 -0.4617 +vn -0.4429 -0.8940 0.0671 +vn -0.7428 -0.4100 0.5293 +vn -0.2353 0.8151 0.5294 +vn 0.4039 0.6189 -0.6737 +vn -0.1724 0.0714 0.9824 +vn 0.1262 0.6831 0.7194 +vn -0.4003 -0.9152 0.0473 +vn -0.3937 -0.5723 0.7194 +vn 0.1368 -0.8764 -0.4617 +vn 0.3641 0.9302 0.0473 +vn -0.1520 -0.7232 -0.6737 +vn 0.1367 -0.8764 -0.4617 +vn 0.4038 0.6189 -0.6737 +vn 0.1368 -0.8764 0.4617 +vn -0.7428 -0.4100 -0.5293 +vn 0.4038 0.6189 0.6737 +vn 0.4039 -0.6189 -0.6737 +vn -0.4038 -0.6189 0.6737 +vn 0.7428 -0.4100 0.5294 +vn -0.1367 -0.8764 -0.4617 +vn -0.4039 0.6189 -0.6737 +vn 0.7428 -0.4100 -0.5294 +vn -0.4039 0.6189 0.6737 +vn -0.1368 -0.8764 0.4617 +vn 0.6523 -0.7061 -0.2755 +vn 0.7177 0.6472 -0.2568 +vn 0.6104 0.7060 -0.3593 +vn -0.3976 0.4048 0.8234 +vn -0.9013 -0.3723 -0.2215 +vn -0.8798 -0.4243 -0.2143 +vn -0.6361 0.6472 0.4201 +vn -0.6536 0.7060 0.2727 +vn 0.8973 0.4048 0.1760 +vn 0.3636 -0.3723 -0.8540 +vn 0.9013 0.3721 0.2216 +vn -0.6118 -0.7061 0.3565 +vn 0.5467 -0.7403 -0.3912 +vn -0.3635 0.3721 0.8540 +vn -0.6410 -0.7403 0.2027 +vn 0.4434 -0.6475 -0.6197 +vn 0.8096 0.5854 -0.0438 +vn -0.5208 0.5854 0.6214 +vn -0.7619 -0.6475 -0.0171 +vn 0.3861 -0.5265 -0.7575 +vn 0.8656 0.4917 0.0952 +vn -0.4432 0.4917 0.7495 +vn -0.8376 -0.5265 -0.1457 +vn 0.3564 -0.4243 -0.8324 +vn -0.5455 -0.7380 0.3971 +vn 0.6170 -0.7068 -0.3462 +vn 0.6450 -0.7380 -0.1981 +vn 0.6317 0.6489 -0.4242 +vn 0.6484 0.7066 -0.2833 +vn -0.6157 0.7066 0.3488 +vn -0.7184 0.6489 0.2508 +vn -0.6472 -0.7067 0.2858 +vn 0.9005 -0.3750 0.2200 +vn -0.3575 -0.4254 0.8314 +vn 0.8796 -0.4254 0.2129 +vn 0.3973 0.4064 -0.8228 +vn 0.3643 0.3749 -0.8525 +vn -0.8966 0.4064 -0.1758 +vn -0.9006 0.3749 -0.2201 +vn -0.3643 -0.3750 0.8524 +vn 0.8376 -0.5265 0.1457 +vn 0.4432 0.4917 -0.7495 +vn -0.8656 0.4917 -0.0952 +vn -0.3861 -0.5265 0.7575 +vn -0.4434 -0.6475 0.6198 +vn 0.7619 -0.6475 0.0171 +vn 0.5208 0.5854 -0.6214 +vn -0.8096 0.5854 0.0438 +vn 0.7724 -0.6310 -0.0731 +vn -0.4663 -0.6839 0.5611 +vn 0.7203 -0.6839 -0.1163 +vn 0.5180 0.6371 -0.5707 +vn -0.7726 0.6307 0.0728 +vn -0.7548 0.6371 0.1558 +vn -0.4557 -0.6310 0.6279 +vn 0.4663 -0.6839 -0.5611 +vn -0.7724 -0.6310 0.0731 +vn 0.4557 -0.6310 -0.6279 +vn 0.7548 0.6371 -0.1558 +vn 0.7726 0.6307 -0.0728 +vn -0.5180 0.6371 0.5707 +vn -0.4555 0.6307 0.6282 +vn -0.6358 -0.7273 0.2585 +vn -0.7203 -0.6839 0.1163 +vn 0.6808 0.6717 -0.2921 +vn -0.5977 0.6717 0.4376 +vn 0.6358 -0.7273 -0.2585 +vn 0.5459 -0.7273 -0.4160 +vn -0.6808 0.6717 0.2921 +vn -0.5459 -0.7273 0.4160 +vn 0.5977 0.6717 -0.4376 +vn -0.7071 -0.6124 -0.3536 +vn -0.7071 0.6124 -0.3536 +vn -0.7071 0.6124 0.3536 +vn 0.4434 -0.6475 0.6198 +vn 0.7184 0.6489 0.2508 +vn -0.6317 0.6489 -0.4242 +vn 0.5455 -0.7380 0.3971 +vn 0.3575 -0.4254 0.8314 +vn 0.8966 0.4064 -0.1758 +vn -0.3973 0.4064 -0.8228 +vn -0.8796 -0.4254 0.2129 +vn 0.3643 -0.3750 0.8524 +vn 0.9006 0.3749 -0.2201 +vn -0.3643 0.3749 -0.8525 +vn -0.9005 -0.3750 0.2200 +vn 0.6472 -0.7067 0.2858 +vn 0.6157 0.7066 0.3488 +vn -0.6170 -0.7068 -0.3462 +vn -0.6450 -0.7380 -0.1981 +vn -0.3636 -0.3723 -0.8540 +vn 0.8798 -0.4243 -0.2143 +vn -0.3564 -0.4243 -0.8324 +vn 0.3976 0.4048 0.8234 +vn -0.4434 -0.6475 -0.6197 +vn 0.6361 0.6472 0.4201 +vn 0.6410 -0.7403 0.2027 +vn -0.7177 0.6472 -0.2568 +vn -0.5467 -0.7403 -0.3912 +vn 0.6118 -0.7061 0.3565 +vn 0.6536 0.7060 0.2727 +vn 0.3635 0.3721 0.8540 +vn -0.8973 0.4048 0.1760 +vn -0.6523 -0.7061 -0.2755 +vn -0.6104 0.7060 -0.3593 +vn 0.9013 -0.3723 -0.2215 +vn -0.3880 0.7622 -0.5181 +vn -0.3772 0.9249 0.0474 +vn -0.0697 0.9724 -0.2226 +vn 0.1946 0.9640 0.1810 +vn -0.1768 0.9186 0.3536 +vn 0.3339 0.7394 0.5847 +vn -0.0711 0.7481 0.6597 +vn 0.3111 0.3586 0.8801 +vn -0.0884 0.4593 0.8839 +vn 0.1321 -0.0763 0.9883 +vn -0.2241 0.1294 0.9659 +vn -0.1550 -0.4487 0.8801 +vn -0.6834 -0.3125 0.6597 +vn -0.4733 -0.6589 0.5847 +vn -0.7376 -0.6505 0.1810 +vn -0.9896 -0.1358 0.0474 +vn -0.8770 -0.4258 -0.2226 +vn -0.8541 -0.0451 -0.5181 +vn -0.8365 0.4830 -0.2588 +vn -0.6752 0.3898 -0.6263 +vn -0.6187 0.7655 -0.1768 +vn 0.3880 -0.7622 0.5181 +vn 0.6752 -0.3898 0.6263 +vn 0.7376 0.6505 -0.1810 +vn -0.3339 -0.7394 -0.5847 +vn -0.1321 0.0763 -0.9883 +vn 0.8541 0.0451 0.5181 +vn 0.8770 0.4258 0.2226 +vn -0.3111 -0.3586 -0.8801 +vn 0.4733 0.6589 -0.5847 +vn 0.1550 0.4487 -0.8801 +vn 0.0697 -0.9724 0.2226 +vn -0.1946 -0.9640 -0.1810 +vn 0.6834 0.3125 -0.6597 +vn 0.4419 0.1531 -0.8839 +vn 0.8839 0.3062 -0.3536 +vn 0.9896 0.1358 -0.0474 +vn 0.8365 -0.4830 0.2588 +vn 0.9723 -0.1531 0.1768 +vn 0.3772 -0.9249 -0.0474 +vn 0.6187 -0.7655 0.1768 +vn 0.1768 -0.9186 -0.3536 +vn 0.0711 -0.7481 -0.6597 +vn 0.0884 -0.4593 -0.8839 +vn 0.2241 -0.1294 -0.9659 +vn 0.1250 -0.6495 0.7500 +vn -0.2165 -0.8750 0.4330 +vn 0.6250 0.2165 0.7500 +vn 0.6495 0.6250 0.4330 +vn -0.4330 0.2500 -0.8660 +vn -0.6250 -0.2165 -0.7500 +vn -0.1250 0.6495 -0.7500 +vn 0.2165 0.8750 -0.4330 +vn 0.4330 -0.2500 0.8660 +vn -0.6495 -0.6250 -0.4330 +vn -0.0884 0.4593 -0.8839 +vn 0.3339 0.7394 -0.5847 +vn 0.3111 0.3586 -0.8801 +vn -0.0710 0.7481 -0.6597 +vn 0.1946 0.9640 -0.1810 +vn -0.3772 0.9249 -0.0474 +vn -0.0697 0.9724 0.2226 +vn -0.6187 0.7655 0.1768 +vn -0.3880 0.7622 0.5181 +vn -0.6752 0.3898 0.6263 +vn -0.9723 0.1531 0.1768 +vn -0.8541 -0.0451 0.5181 +vn -0.8770 -0.4258 0.2226 +vn -0.9896 -0.1358 -0.0474 +vn -0.7376 -0.6505 -0.1810 +vn -0.8839 -0.3062 -0.3536 +vn -0.4733 -0.6589 -0.5847 +vn -0.6834 -0.3125 -0.6597 +vn -0.1550 -0.4487 -0.8801 +vn -0.2241 0.1294 -0.9659 +vn 0.1321 -0.0763 -0.9883 +vn -0.1321 0.0763 0.9883 +vn 0.4733 0.6589 0.5847 +vn 0.7376 0.6505 0.1810 +vn 0.0697 -0.9724 -0.2226 +vn 0.6752 -0.3898 -0.6263 +vn -0.3111 -0.3586 0.8801 +vn 0.3880 -0.7622 -0.5181 +vn 0.8770 0.4258 -0.2226 +vn 0.8541 0.0451 -0.5181 +vn -0.3339 -0.7394 0.5847 +vn 0.1550 0.4487 0.8801 +vn -0.1946 -0.9640 0.1810 +vn 0.9896 0.1358 0.0474 +vn 0.9723 -0.1531 -0.1768 +vn 0.6834 0.3125 0.6597 +vn 0.8839 0.3062 0.3536 +vn 0.2241 -0.1294 0.9659 +vn 0.4419 0.1531 0.8839 +vn 0.0884 -0.4593 0.8839 +vn 0.0711 -0.7481 0.6597 +vn 0.1768 -0.9186 0.3536 +vn 0.3772 -0.9249 0.0474 +vn 0.6187 -0.7655 -0.1768 +vn 0.8365 -0.4830 -0.2588 +vn -0.6250 -0.2165 0.7500 +vn -0.6495 -0.6250 0.4330 +vn -0.1250 0.6495 0.7500 +vn 0.2165 0.8750 0.4330 +vn 0.4330 -0.2500 -0.8660 +vn 0.1250 -0.6495 -0.7500 +vn 0.6495 0.6250 -0.4330 +vn 0.6250 0.2165 -0.7500 +vn -0.4330 0.2500 0.8660 +vn -0.2165 -0.8750 -0.4330 +vn -0.8541 0.0451 -0.5181 +vn -0.9896 0.1358 0.0474 +vn -0.8770 0.4258 -0.2226 +vn -0.7376 0.6505 0.1810 +vn -0.8839 0.3062 0.3536 +vn -0.4733 0.6589 0.5847 +vn -0.6834 0.3125 0.6597 +vn -0.1550 0.4487 0.8801 +vn -0.4419 0.1531 0.8839 +vn 0.1321 0.0763 0.9883 +vn -0.2241 -0.1294 0.9659 +vn 0.3111 -0.3586 0.8801 +vn -0.0884 -0.4593 0.8839 +vn 0.3339 -0.7394 0.5847 +vn -0.0711 -0.7481 0.6597 +vn 0.1946 -0.9640 0.1810 +vn -0.3772 -0.9249 0.0474 +vn -0.0697 -0.9724 -0.2226 +vn -0.6187 -0.7655 -0.1768 +vn -0.3880 -0.7622 -0.5181 +vn -0.8365 -0.4830 -0.2588 +vn -0.6752 -0.3898 -0.6263 +vn -0.9723 -0.1531 -0.1768 +vn 0.6752 0.3898 0.6263 +vn -0.1946 0.9640 -0.1810 +vn 0.4733 -0.6589 -0.5847 +vn -0.1321 -0.0763 -0.9883 +vn 0.8770 -0.4258 0.2226 +vn 0.8541 -0.0451 0.5181 +vn 0.0697 0.9724 0.2226 +vn 0.1550 -0.4487 -0.8801 +vn -0.3111 0.3586 -0.8801 +vn 0.3880 0.7622 0.5181 +vn -0.3339 0.7394 -0.5847 +vn 0.7376 -0.6505 -0.1810 +vn 0.0711 0.7481 -0.6597 +vn 0.0884 0.4593 -0.8839 +vn 0.3772 0.9249 -0.0474 +vn 0.1768 0.9186 -0.3536 +vn 0.8365 0.4830 0.2588 +vn 0.6187 0.7655 0.1768 +vn 0.9723 0.1531 0.1768 +vn 0.8839 -0.3062 -0.3536 +vn 0.9896 -0.1358 -0.0474 +vn 0.6834 -0.3125 -0.6597 +vn 0.4419 -0.1531 -0.8839 +vn 0.2241 0.1294 -0.9659 +vn 0.6250 -0.2165 0.7500 +vn 0.6495 -0.6250 0.4330 +vn 0.1250 0.6495 0.7500 +vn -0.2165 0.8750 0.4330 +vn -0.4330 -0.2500 -0.8660 +vn -0.1250 -0.6495 -0.7500 +vn -0.6250 0.2165 -0.7500 +vn -0.6495 0.6250 -0.4330 +vn 0.4330 0.2500 0.8660 +vn 0.2165 -0.8750 -0.4330 +vn -0.4419 0.1531 -0.8839 +vn -0.4733 0.6589 -0.5847 +vn -0.1550 0.4487 -0.8801 +vn -0.6834 0.3125 -0.6597 +vn -0.7376 0.6505 -0.1810 +vn -0.9896 0.1358 -0.0474 +vn -0.8770 0.4258 0.2226 +vn -0.9723 -0.1531 0.1768 +vn -0.8541 0.0451 0.5181 +vn -0.6752 -0.3898 0.6263 +vn -0.6187 -0.7655 0.1768 +vn -0.3880 -0.7622 0.5181 +vn -0.0697 -0.9724 0.2226 +vn -0.3772 -0.9249 -0.0474 +vn 0.1946 -0.9640 -0.1810 +vn -0.1768 -0.9186 -0.3536 +vn 0.3339 -0.7394 -0.5847 +vn -0.0710 -0.7481 -0.6597 +vn 0.3111 -0.3586 -0.8801 +vn -0.2241 -0.1294 -0.9659 +vn 0.1321 0.0763 -0.9883 +vn -0.1321 -0.0763 0.9883 +vn -0.1946 0.9640 0.1810 +vn 0.8770 -0.4258 -0.2226 +vn 0.6752 0.3898 -0.6263 +vn 0.1550 -0.4487 0.8801 +vn -0.3339 0.7394 0.5847 +vn 0.8541 -0.0451 -0.5181 +vn 0.0697 0.9724 -0.2226 +vn 0.3880 0.7622 -0.5181 +vn 0.4733 -0.6589 0.5847 +vn -0.3111 0.3586 0.8801 +vn 0.7376 -0.6505 0.1810 +vn 0.6187 0.7655 -0.1768 +vn 0.1768 0.9186 0.3536 +vn 0.3772 0.9249 0.0474 +vn 0.0711 0.7481 0.6597 +vn 0.0884 0.4593 0.8839 +vn 0.2241 0.1294 0.9659 +vn 0.4419 -0.1531 0.8839 +vn 0.8839 -0.3062 0.3536 +vn 0.6834 -0.3125 0.6597 +vn 0.9896 -0.1358 0.0474 +vn 0.9723 0.1531 -0.1768 +vn 0.8365 0.4830 -0.2588 +vn -0.1250 -0.6495 0.7500 +vn 0.2165 -0.8750 0.4330 +vn -0.6250 0.2165 0.7500 +vn -0.6495 0.6250 0.4330 +vn 0.4330 0.2500 -0.8660 +vn 0.6250 -0.2165 -0.7500 +vn -0.2165 0.8750 -0.4330 +vn 0.1250 0.6495 -0.7500 +vn -0.4330 -0.2500 0.8660 +vn 0.6495 -0.6250 -0.4330 +vn -0.6523 -0.7061 0.2755 +vn -0.7177 0.6472 0.2568 +vn -0.6104 0.7060 0.3593 +vn 0.3976 0.4048 -0.8234 +vn 0.9013 -0.3723 0.2215 +vn 0.8798 -0.4243 0.2143 +vn 0.6361 0.6472 -0.4201 +vn 0.6536 0.7060 -0.2727 +vn -0.8973 0.4048 -0.1760 +vn -0.3636 -0.3723 0.8540 +vn -0.9013 0.3721 -0.2216 +vn 0.6118 -0.7061 -0.3565 +vn -0.5467 -0.7403 0.3912 +vn 0.3635 0.3721 -0.8540 +vn 0.6410 -0.7403 -0.2027 +vn -0.4434 -0.6475 0.6197 +vn -0.3564 -0.4243 0.8324 +vn 0.5455 -0.7380 -0.3971 +vn -0.6170 -0.7068 0.3462 +vn -0.6450 -0.7380 0.1981 +vn -0.6317 0.6489 0.4242 +vn -0.6484 0.7066 0.2833 +vn 0.6157 0.7066 -0.3488 +vn 0.7184 0.6489 -0.2508 +vn 0.6472 -0.7067 -0.2858 +vn -0.9005 -0.3750 -0.2200 +vn 0.3575 -0.4254 -0.8314 +vn -0.8796 -0.4254 -0.2129 +vn -0.3973 0.4065 0.8228 +vn -0.3643 0.3749 0.8525 +vn 0.8966 0.4064 0.1758 +vn 0.9006 0.3749 0.2201 +vn 0.3643 -0.3750 -0.8524 +vn 0.4434 -0.6475 -0.6198 +vn 0.4555 0.6307 -0.6282 +vn 0.0710 0.7481 -0.6597 +vn -0.1768 -0.9186 0.3536 +vn 0.0710 0.7481 0.6597 +vn -0.8839 0.3062 -0.3536 +vn -0.0884 -0.4593 -0.8839 +vn -0.0711 -0.7481 -0.6597 +vn -0.8365 -0.4830 0.2588 +vn -0.9723 0.1531 -0.1768 +vn -0.8839 -0.3062 0.3536 +vn -0.4419 -0.1531 0.8839 +vn 0.0710 -0.7481 0.6597 +vn -0.1768 0.9186 -0.3536 +vn -0.0711 0.7481 -0.6597 +vn -0.4419 -0.1531 -0.8839 +vn -0.8365 0.4830 0.2588 +vn 0.9013 0.3721 -0.2216 +vn 0.6484 0.7066 0.2833 +vn -0.1738 0.4196 -0.8909 +vn -0.4542 -0.0000 -0.8909 +vn -0.1738 -0.4196 -0.8909 +vn 0.4542 -0.0000 -0.8909 +vn -0.6484 0.7066 -0.2833 +vn -0.9013 0.3721 0.2216 +s off +f 78/1/1 127/2/1 79/3/1 +f 79/4/1 128/5/1 80/6/1 +f 128/7/1 65/8/1 80/9/1 +f 113/10/1 66/11/1 65/12/1 +f 114/13/1 67/14/1 66/15/1 +f 115/16/1 68/17/1 67/18/1 +f 116/19/1 69/20/1 68/21/1 +f 117/22/1 70/23/1 69/24/1 +f 118/25/1 71/26/1 70/27/1 +f 71/28/1 120/29/1 72/30/1 +f 72/31/1 121/32/1 73/33/1 +f 73/34/1 122/35/1 74/36/1 +f 74/37/1 123/38/1 75/39/1 +f 75/40/1 124/41/1 76/42/1 +f 76/43/1 125/44/1 77/45/1 +f 77/46/1 126/47/1 78/48/1 +f 95/49/2 208/50/2 207/51/2 +f 81/52/2 208/53/2 96/54/2 +f 82/55/2 193/56/2 81/57/2 +f 83/58/2 194/59/2 82/60/2 +f 84/61/2 195/62/2 83/63/2 +f 85/64/2 196/65/2 84/66/2 +f 86/67/2 197/68/2 85/69/2 +f 87/70/2 198/71/2 86/72/2 +f 87/73/2 200/74/2 199/75/2 +f 88/76/2 201/77/2 200/78/2 +f 89/79/2 202/80/2 201/81/2 +f 90/82/2 203/83/2 202/84/2 +f 91/85/2 204/86/2 203/87/2 +f 92/88/2 205/89/2 204/90/2 +f 93/91/2 206/92/2 205/93/2 +f 94/94/2 207/95/2 206/96/2 +f 237/97/2 142/98/2 141/99/2 +f 238/100/2 143/101/2 142/102/2 +f 143/103/2 240/104/2 144/105/2 +f 240/106/2 129/107/2 144/108/2 +f 225/109/2 130/110/2 129/111/2 +f 130/112/2 227/113/2 131/114/2 +f 227/115/2 132/116/2 131/117/2 +f 228/118/2 133/119/2 132/120/2 +f 133/121/2 230/122/2 134/123/2 +f 134/124/2 231/125/2 135/126/2 +f 231/127/2 136/128/2 135/129/2 +f 232/130/2 137/131/2 136/132/2 +f 137/133/2 234/134/2 138/135/2 +f 138/136/2 235/137/2 139/138/2 +f 235/139/2 140/140/2 139/141/2 +f 236/142/2 141/143/2 140/144/2 +f 254/145/1 287/146/1 255/147/1 +f 287/148/1 256/149/1 255/150/1 +f 256/151/1 273/152/1 241/153/1 +f 241/154/1 274/155/1 242/156/1 +f 274/157/1 243/158/1 242/159/1 +f 243/160/1 276/161/1 244/162/1 +f 276/163/1 245/164/1 244/165/1 +f 277/166/1 246/167/1 245/168/1 +f 278/169/1 247/170/1 246/171/1 +f 247/172/1 280/173/1 248/174/1 +f 248/175/1 281/176/1 249/177/1 +f 281/178/1 250/179/1 249/180/1 +f 282/181/1 251/182/1 250/183/1 +f 283/184/1 252/185/1 251/186/1 +f 252/187/1 285/188/1 253/189/1 +f 253/190/1 286/191/1 254/192/1 +f 191/193/1 398/194/1 190/195/1 +f 191/196/1 400/197/1 399/198/1 +f 177/199/1 400/200/1 192/201/1 +f 178/202/1 385/203/1 177/204/1 +f 178/205/1 387/206/1 386/207/1 +f 180/208/1 387/209/1 179/210/1 +f 180/211/1 389/212/1 388/213/1 +f 181/214/1 390/215/1 389/216/1 +f 182/217/1 391/218/1 390/219/1 +f 184/220/1 391/221/1 183/222/1 +f 185/223/1 392/224/1 184/225/1 +f 185/226/1 394/227/1 393/228/1 +f 186/229/1 395/230/1 394/231/1 +f 188/232/1 395/233/1 187/234/1 +f 189/235/1 396/236/1 188/237/1 +f 190/238/1 397/239/1 189/240/1 +f 414/241/2 367/242/2 366/243/2 +f 367/244/2 416/245/2 368/246/2 +f 416/247/2 353/248/2 368/249/2 +f 401/250/2 354/251/2 353/252/2 +f 354/253/2 403/254/2 355/255/2 +f 403/256/2 356/257/2 355/258/2 +f 404/259/2 357/260/2 356/261/2 +f 357/262/2 406/263/2 358/264/2 +f 358/265/2 407/266/2 359/267/2 +f 407/268/2 360/269/2 359/270/2 +f 408/271/2 361/272/2 360/273/2 +f 361/274/2 410/275/2 362/276/2 +f 362/277/2 411/278/2 363/279/2 +f 411/280/2 364/281/2 363/282/2 +f 412/283/2 365/284/2 364/285/2 +f 413/286/2 366/287/2 365/288/2 +f 301/289/2 430/290/2 302/291/2 +f 430/292/2 303/293/2 302/294/2 +f 431/295/2 304/296/2 303/297/2 +f 432/298/2 289/299/2 304/300/2 +f 417/301/2 290/302/2 289/303/2 +f 290/304/2 419/305/2 291/306/2 +f 419/307/2 292/308/2 291/309/2 +f 292/310/2 421/311/2 293/312/2 +f 421/313/2 294/314/2 293/315/2 +f 294/316/2 423/317/2 295/318/2 +f 423/319/2 296/320/2 295/321/2 +f 296/322/2 425/323/2 297/324/2 +f 297/325/2 426/326/2 298/327/2 +f 426/328/2 299/329/2 298/330/2 +f 427/331/2 300/332/2 299/333/2 +f 428/334/2 301/335/2 300/336/2 +f 443/337/2 439/338/2 435/339/2 +f 351/340/1 462/341/1 350/342/1 +f 352/343/1 463/344/1 351/345/1 +f 337/346/1 464/347/1 352/348/1 +f 338/349/1 449/350/1 337/351/1 +f 338/352/1 451/353/1 450/354/1 +f 340/355/1 451/356/1 339/357/1 +f 340/358/1 453/359/1 452/360/1 +f 342/361/1 453/362/1 341/363/1 +f 342/364/1 455/365/1 454/366/1 +f 344/367/1 455/368/1 343/369/1 +f 344/370/1 457/371/1 456/372/1 +f 345/373/1 458/374/1 457/375/1 +f 347/376/1 458/377/1 346/378/1 +f 348/379/1 459/380/1 347/381/1 +f 349/382/1 460/383/1 348/384/1 +f 349/385/1 462/386/1 461/387/1 +f 473/388/1 477/389/1 466/390/1 +f 546/391/3 547/392/3 545/393/3 +f 554/394/3 555/395/3 553/396/3 +f 546/391/4 552/397/4 548/398/4 +f 547/392/5 550/399/5 545/393/5 +f 548/398/2 549/400/2 547/392/2 +f 545/393/1 551/401/1 546/391/1 +f 554/394/4 560/402/4 556/403/4 +f 555/395/5 558/404/5 553/396/5 +f 556/403/2 557/405/2 555/395/2 +f 553/396/1 559/406/1 554/394/1 +f 562/407/3 563/408/3 561/409/3 +f 570/410/3 571/411/3 569/412/3 +f 562/407/4 568/413/4 564/414/4 +f 563/408/5 566/415/5 561/409/5 +f 564/414/2 565/416/2 563/408/2 +f 561/409/1 567/417/1 562/407/1 +f 570/410/4 576/418/4 572/419/4 +f 571/411/5 574/420/5 569/412/5 +f 572/419/2 573/421/2 571/411/2 +f 569/412/1 575/422/1 570/410/1 +f 578/423/4 584/424/4 580/425/4 +f 579/426/5 581/427/5 577/428/5 +f 580/425/3 583/429/3 579/426/3 +f 577/430/6 582/431/6 578/423/6 +f 586/432/4 592/433/4 588/434/4 +f 587/435/5 589/436/5 585/437/5 +f 588/434/3 591/438/3 587/435/3 +f 585/439/6 590/440/6 586/432/6 +f 594/441/4 600/442/4 596/443/4 +f 595/444/5 597/445/5 593/446/5 +f 596/443/3 599/447/3 595/444/3 +f 593/448/6 598/449/6 594/441/6 +f 602/450/4 608/451/4 604/452/4 +f 603/453/5 605/454/5 601/455/5 +f 604/452/3 607/456/3 603/453/3 +f 601/457/6 606/458/6 602/450/6 +f 611/459/6 610/460/6 609/461/6 +f 615/462/3 613/463/3 614/464/3 +f 611/465/7 616/466/7 612/467/7 +f 610/468/8 614/464/8 609/469/8 +f 612/470/4 615/462/4 610/460/4 +f 609/471/5 613/463/5 611/472/5 +f 619/473/6 618/474/6 617/475/6 +f 623/476/3 621/477/3 622/478/3 +f 619/479/7 624/480/7 620/481/7 +f 618/482/8 622/478/8 617/483/8 +f 620/484/4 623/476/4 618/474/4 +f 617/485/5 621/477/5 619/486/5 +f 626/487/4 632/488/4 628/489/4 +f 627/490/5 630/491/5 625/492/5 +f 628/493/2 629/494/2 627/495/2 +f 625/496/1 631/497/1 626/498/1 +f 634/499/4 640/500/4 636/501/4 +f 635/502/5 638/503/5 633/504/5 +f 636/505/2 637/506/2 635/507/2 +f 633/508/1 639/509/1 634/510/1 +f 642/511/4 648/512/4 644/513/4 +f 643/514/5 646/515/5 641/516/5 +f 644/517/2 645/518/2 643/519/2 +f 641/520/1 647/521/1 642/522/1 +f 650/523/4 656/524/4 652/525/4 +f 651/526/5 654/527/5 649/528/5 +f 652/529/2 653/530/2 651/531/2 +f 649/532/1 655/533/1 650/534/1 +f 648/512/6 646/515/6 645/518/6 +f 656/524/6 654/527/6 653/530/6 +f 632/488/6 630/491/6 629/494/6 +f 640/500/6 638/503/6 637/506/6 +f 658/535/4 664/536/4 660/537/4 +f 659/538/5 661/539/5 657/540/5 +f 660/537/3 663/541/3 659/538/3 +f 657/542/6 662/543/6 658/535/6 +f 666/544/4 672/545/4 668/546/4 +f 667/547/5 669/548/5 665/549/5 +f 668/546/3 671/550/3 667/547/3 +f 665/551/6 670/552/6 666/544/6 +f 674/553/4 680/554/4 676/555/4 +f 675/556/5 677/557/5 673/558/5 +f 676/555/3 679/559/3 675/556/3 +f 673/560/6 678/561/6 674/553/6 +f 682/562/4 688/563/4 684/564/4 +f 683/565/5 685/566/5 681/567/5 +f 684/564/3 687/568/3 683/565/3 +f 681/569/6 686/570/6 682/562/6 +f 691/571/3 690/572/3 689/573/3 +f 695/574/6 693/575/6 694/576/6 +f 691/577/9 696/578/9 692/579/9 +f 690/580/10 694/576/10 689/581/10 +f 692/582/5 695/574/5 690/572/5 +f 689/583/4 693/575/4 691/584/4 +f 699/585/3 698/586/3 697/587/3 +f 703/588/6 701/589/6 702/590/6 +f 699/591/9 704/592/9 700/593/9 +f 698/594/10 702/590/10 697/595/10 +f 700/596/5 703/588/5 698/586/5 +f 697/597/4 701/589/4 699/598/4 +f 707/599/2 706/600/2 705/601/2 +f 710/602/1 711/603/1 709/604/1 +f 708/605/4 710/606/4 706/607/4 +f 705/608/5 711/609/5 707/610/5 +f 707/599/3 712/611/3 708/605/3 +f 706/607/6 709/612/6 705/608/6 +f 715/613/6 714/614/6 713/615/6 +f 717/616/3 724/617/3 720/618/3 +f 715/619/2 720/618/2 716/620/2 +f 714/621/1 718/622/1 713/623/1 +f 716/624/4 719/625/4 714/614/4 +f 713/626/5 717/627/5 715/628/5 +f 724/629/4 727/630/4 723/631/4 +f 719/632/3 722/633/3 718/622/3 +f 720/634/3 723/631/3 719/625/3 +f 718/635/3 721/636/3 717/627/3 +f 722/637/5 725/638/5 721/636/5 +f 721/639/2 728/640/2 724/617/2 +f 723/641/1 726/642/1 722/633/1 +f 731/643/2 730/644/2 729/645/2 +f 734/646/1 735/647/1 733/648/1 +f 732/649/4 734/650/4 730/651/4 +f 729/652/5 735/653/5 731/654/5 +f 731/643/3 736/655/3 732/649/3 +f 730/651/6 733/656/6 729/652/6 +f 738/657/3 739/658/3 737/659/3 +f 737/659/1 743/660/1 738/657/1 +f 738/657/4 744/661/4 740/662/4 +f 739/658/5 742/663/5 737/659/5 +f 740/662/2 741/664/2 739/658/2 +f 747/665/6 746/666/6 745/667/6 +f 754/668/4 755/669/4 753/670/4 +f 748/671/4 751/672/4 746/666/4 +f 745/673/5 749/674/5 747/675/5 +f 747/675/2 752/676/2 748/671/2 +f 746/677/1 750/678/1 745/673/1 +f 760/679/4 761/680/4 757/681/4 +f 756/682/2 757/681/2 755/683/2 +f 753/684/1 759/685/1 754/686/1 +f 754/668/6 760/687/6 756/688/6 +f 755/689/3 758/690/3 753/691/3 +f 763/692/6 768/693/6 764/694/6 +f 758/695/4 763/696/4 759/685/4 +f 759/697/4 764/694/4 760/687/4 +f 757/698/4 762/699/4 758/690/4 +f 761/700/3 766/701/3 762/699/3 +f 764/702/2 765/703/2 761/680/2 +f 762/704/1 767/705/1 763/696/1 +f 844/706/11 906/707/11 860/708/11 +f 905/709/12 843/710/12 859/711/12 +f 860/708/2 905/712/2 859/711/2 +f 913/713/1 844/706/1 843/710/1 +f 862/714/2 908/715/2 907/716/2 +f 846/717/1 916/718/1 847/719/1 +f 862/714/13 915/720/13 846/717/13 +f 916/721/14 863/722/14 847/719/14 +f 917/723/1 852/724/1 851/725/1 +f 868/726/2 909/727/2 867/728/2 +f 852/724/15 910/729/15 868/726/15 +f 867/728/16 917/730/16 851/725/16 +f 870/731/2 912/732/2 911/733/2 +f 854/734/1 920/735/1 855/736/1 +f 920/737/17 871/738/17 855/736/17 +f 870/731/18 919/739/18 854/734/18 +f 959/740/4 970/741/4 958/742/4 +f 960/743/4 971/744/4 959/745/4 +f 961/746/4 972/747/4 960/748/4 +f 962/749/4 973/750/4 961/751/4 +f 962/752/4 975/753/4 974/754/4 +f 964/755/4 975/756/4 963/757/4 +f 964/758/4 977/759/4 976/760/4 +f 965/761/4 978/762/4 977/763/4 +f 967/764/4 978/765/4 966/766/4 +f 968/767/4 979/768/4 967/769/4 +f 968/770/4 969/771/4 980/772/4 +f 957/773/4 970/774/4 969/775/4 +f 991/776/4 982/777/4 985/778/4 +f 998/779/5 1009/780/5 1010/781/5 +f 1004/782/5 1005/783/5 993/784/5 +f 994/785/5 1007/786/5 995/787/5 +f 1002/788/5 1013/789/5 1014/790/5 +f 998/791/5 1011/792/5 999/793/5 +f 996/794/5 1007/795/5 1008/796/5 +f 1002/797/5 1015/798/5 1003/799/5 +f 999/800/5 1012/801/5 1000/802/5 +f 996/803/5 1009/804/5 997/805/5 +f 1004/806/5 1015/807/5 1016/808/5 +f 993/809/5 1006/810/5 994/811/5 +f 1000/812/5 1013/813/5 1001/814/5 +f 1026/815/5 1039/816/5 1027/817/5 +f 1023/818/5 1036/819/5 1024/820/5 +f 1020/821/5 1033/822/5 1021/823/5 +f 1028/824/5 1039/825/5 1040/826/5 +f 1017/827/5 1029/828/5 1018/829/5 +f 1024/820/5 1037/830/5 1025/831/5 +f 1022/832/5 1033/833/5 1034/834/5 +f 1028/824/5 1030/835/5 1017/827/5 +f 1018/829/5 1031/836/5 1019/837/5 +f 1026/838/5 1037/839/5 1038/840/5 +f 1022/832/5 1035/841/5 1023/818/5 +f 1020/821/5 1031/842/5 1032/843/5 +f 1042/844/5 1051/845/5 1047/846/5 +f 1069/847/2 1082/848/2 1070/849/2 +f 1076/850/2 1077/851/2 1065/852/2 +f 1066/853/2 1079/854/2 1067/855/2 +f 1074/856/2 1085/857/2 1086/858/2 +f 1071/859/2 1082/860/2 1083/861/2 +f 1068/862/2 1079/863/2 1080/864/2 +f 1074/865/2 1087/866/2 1075/867/2 +f 1071/859/2 1084/868/2 1072/869/2 +f 1068/862/2 1081/870/2 1069/847/2 +f 1076/850/2 1087/871/2 1088/872/2 +f 1066/853/2 1077/873/2 1078/874/2 +f 1073/875/2 1084/876/2 1085/877/2 +f 1098/878/2 1111/879/2 1099/880/2 +f 1095/881/2 1108/882/2 1096/883/2 +f 1092/884/2 1105/885/2 1093/886/2 +f 1100/887/2 1111/888/2 1112/889/2 +f 1090/890/2 1102/891/2 1101/892/2 +f 1097/893/2 1108/894/2 1109/895/2 +f 1093/886/2 1106/896/2 1094/897/2 +f 1100/887/2 1102/898/2 1089/899/2 +f 1090/890/2 1103/900/2 1091/901/2 +f 1098/902/2 1109/903/2 1110/904/2 +f 1095/881/2 1106/905/2 1107/906/2 +f 1092/884/2 1103/907/2 1104/908/2 +f 1123/909/2 1119/910/2 1115/911/2 +f 1125/912/19 1126/913/19 1127/914/19 +f 1126/913/20 1125/915/20 1130/916/20 +f 1125/912/21 1127/917/21 1128/918/21 +f 1125/915/22 1128/919/22 1129/920/22 +f 1125/915/23 1129/921/23 1130/922/23 +f 1126/913/24 1130/923/24 1135/924/24 +f 1127/917/25 1126/925/25 1131/926/25 +f 1128/919/26 1127/917/26 1132/927/26 +f 1129/920/27 1128/918/27 1133/928/27 +f 1130/916/28 1129/920/28 1134/929/28 +f 1126/925/29 1135/924/29 1131/930/29 +f 1127/914/30 1131/926/30 1132/931/30 +f 1128/919/31 1132/931/31 1133/932/31 +f 1129/921/32 1133/933/32 1134/929/32 +f 1130/916/33 1134/934/33 1135/935/33 +f 1131/930/34 1135/935/34 1136/936/34 +f 1132/937/35 1131/930/35 1136/938/35 +f 1133/928/36 1132/931/36 1136/938/36 +f 1134/934/37 1133/932/37 1136/936/37 +f 1135/924/38 1134/934/38 1136/938/38 +f 1618/939/4 1619/940/4 1617/941/4 +f 1624/942/4 1625/943/4 1621/944/4 +f 1620/945/2 1621/944/2 1619/946/2 +f 1617/947/1 1623/948/1 1618/949/1 +f 1618/939/6 1624/950/6 1620/951/6 +f 1619/952/3 1622/953/3 1617/954/3 +f 1627/955/6 1632/956/6 1628/957/6 +f 1622/958/4 1627/959/4 1623/948/4 +f 1623/960/4 1628/957/4 1624/950/4 +f 1621/961/4 1626/962/4 1622/953/4 +f 1625/963/3 1630/964/3 1626/962/3 +f 1628/965/2 1629/966/2 1625/943/2 +f 1626/967/1 1631/968/1 1627/959/1 +f 1634/969/5 1635/970/5 1633/971/5 +f 1640/972/5 1641/973/5 1637/974/5 +f 1636/975/1 1637/974/1 1635/976/1 +f 1633/977/2 1639/978/2 1634/979/2 +f 1634/969/6 1640/980/6 1636/981/6 +f 1635/982/3 1638/983/3 1633/984/3 +f 1643/985/6 1648/986/6 1644/987/6 +f 1638/988/5 1643/989/5 1639/978/5 +f 1639/990/5 1644/987/5 1640/980/5 +f 1637/991/5 1642/992/5 1638/983/5 +f 1641/993/3 1646/994/3 1642/992/3 +f 1644/995/1 1645/996/1 1641/973/1 +f 1642/997/2 1647/998/2 1643/989/2 +f 1650/999/5 1651/1000/5 1649/1001/5 +f 1656/1002/5 1657/1003/5 1653/1004/5 +f 1652/1005/1 1653/1004/1 1651/1006/1 +f 1649/1007/2 1655/1008/2 1650/1009/2 +f 1650/999/6 1656/1010/6 1652/1011/6 +f 1651/1012/3 1654/1013/3 1649/1014/3 +f 1659/1015/6 1664/1016/6 1660/1017/6 +f 1654/1018/5 1659/1019/5 1655/1008/5 +f 1655/1020/5 1660/1017/5 1656/1010/5 +f 1653/1021/5 1658/1022/5 1654/1013/5 +f 1657/1023/3 1662/1024/3 1658/1022/3 +f 1660/1025/1 1661/1026/1 1657/1003/1 +f 1658/1027/2 1663/1028/2 1659/1019/2 +f 1667/1029/6 1666/1030/6 1665/1031/6 +f 1669/1032/3 1676/1033/3 1672/1034/3 +f 1667/1035/2 1672/1034/2 1668/1036/2 +f 1666/1037/1 1670/1038/1 1665/1039/1 +f 1668/1040/4 1671/1041/4 1666/1030/4 +f 1665/1042/5 1669/1043/5 1667/1044/5 +f 1676/1045/4 1679/1046/4 1675/1047/4 +f 1671/1048/3 1674/1049/3 1670/1038/3 +f 1672/1050/3 1675/1047/3 1671/1041/3 +f 1670/1051/3 1673/1052/3 1669/1043/3 +f 1674/1053/5 1677/1054/5 1673/1052/5 +f 1673/1055/2 1680/1056/2 1676/1033/2 +f 1675/1057/1 1678/1058/1 1674/1049/1 +f 1683/1059/6 1682/1060/6 1681/1061/6 +f 1685/1062/3 1692/1063/3 1688/1064/3 +f 1683/1065/2 1688/1064/2 1684/1066/2 +f 1682/1067/1 1686/1068/1 1681/1069/1 +f 1684/1070/4 1687/1071/4 1682/1060/4 +f 1681/1072/5 1685/1073/5 1683/1074/5 +f 1692/1075/4 1695/1076/4 1691/1077/4 +f 1687/1078/3 1690/1079/3 1686/1068/3 +f 1688/1080/3 1691/1077/3 1687/1071/3 +f 1686/1081/3 1689/1082/3 1685/1073/3 +f 1690/1083/5 1693/1084/5 1689/1082/5 +f 1689/1085/2 1696/1086/2 1692/1063/2 +f 1691/1087/1 1694/1088/1 1690/1079/1 +f 1699/1089/6 1698/1090/6 1697/1091/6 +f 1701/1092/3 1708/1093/3 1704/1094/3 +f 1699/1095/2 1704/1094/2 1700/1096/2 +f 1698/1097/1 1702/1098/1 1697/1099/1 +f 1700/1100/4 1703/1101/4 1698/1090/4 +f 1697/1102/5 1701/1103/5 1699/1104/5 +f 1708/1105/4 1711/1106/4 1707/1107/4 +f 1703/1108/3 1706/1109/3 1702/1098/3 +f 1704/1110/3 1707/1107/3 1703/1101/3 +f 1702/1111/3 1705/1112/3 1701/1103/3 +f 1706/1113/5 1709/1114/5 1705/1112/5 +f 1705/1115/2 1712/1116/2 1708/1093/2 +f 1707/1117/1 1710/1118/1 1706/1109/1 +f 1715/1119/6 1714/1120/6 1713/1121/6 +f 1717/1122/3 1724/1123/3 1720/1124/3 +f 1715/1125/2 1720/1124/2 1716/1126/2 +f 1714/1127/1 1718/1128/1 1713/1129/1 +f 1716/1130/4 1719/1131/4 1714/1120/4 +f 1713/1132/5 1717/1133/5 1715/1134/5 +f 1724/1135/4 1727/1136/4 1723/1137/4 +f 1719/1138/3 1722/1139/3 1718/1128/3 +f 1720/1140/3 1723/1137/3 1719/1131/3 +f 1718/1141/3 1721/1142/3 1717/1133/3 +f 1722/1143/5 1725/1144/5 1721/1142/5 +f 1721/1145/2 1728/1146/2 1724/1123/2 +f 1723/1147/1 1726/1148/1 1722/1139/1 +f 1731/1149/6 1730/1150/6 1729/1151/6 +f 1733/1152/3 1740/1153/3 1736/1154/3 +f 1731/1155/2 1736/1154/2 1732/1156/2 +f 1730/1157/1 1734/1158/1 1729/1159/1 +f 1732/1160/4 1735/1161/4 1730/1150/4 +f 1729/1162/5 1733/1163/5 1731/1164/5 +f 1740/1165/4 1743/1166/4 1739/1167/4 +f 1735/1168/3 1738/1169/3 1734/1158/3 +f 1736/1170/3 1739/1167/3 1735/1161/3 +f 1734/1171/3 1737/1172/3 1733/1163/3 +f 1738/1173/5 1741/1174/5 1737/1172/5 +f 1737/1175/2 1744/1176/2 1740/1153/2 +f 1739/1177/1 1742/1178/1 1738/1169/1 +f 1747/1179/6 1746/1180/6 1745/1181/6 +f 1749/1182/3 1756/1183/3 1752/1184/3 +f 1747/1185/2 1752/1184/2 1748/1186/2 +f 1746/1187/1 1750/1188/1 1745/1189/1 +f 1748/1190/4 1751/1191/4 1746/1180/4 +f 1745/1192/5 1749/1193/5 1747/1194/5 +f 1756/1195/4 1759/1196/4 1755/1197/4 +f 1751/1198/3 1754/1199/3 1750/1188/3 +f 1752/1200/3 1755/1197/3 1751/1191/3 +f 1750/1201/3 1753/1202/3 1749/1193/3 +f 1754/1203/5 1757/1204/5 1753/1202/5 +f 1753/1205/2 1760/1206/2 1756/1183/2 +f 1755/1207/1 1758/1208/1 1754/1199/1 +f 1763/1209/6 1762/1210/6 1761/1211/6 +f 1765/1212/3 1772/1213/3 1768/1214/3 +f 1763/1215/2 1768/1214/2 1764/1216/2 +f 1762/1217/1 1766/1218/1 1761/1219/1 +f 1764/1220/4 1767/1221/4 1762/1210/4 +f 1761/1222/5 1765/1223/5 1763/1224/5 +f 1772/1225/4 1775/1226/4 1771/1227/4 +f 1767/1228/3 1770/1229/3 1766/1218/3 +f 1768/1230/3 1771/1227/3 1767/1221/3 +f 1766/1231/3 1769/1232/3 1765/1223/3 +f 1770/1233/5 1773/1234/5 1769/1232/5 +f 1769/1235/2 1776/1236/2 1772/1213/2 +f 1771/1237/1 1774/1238/1 1770/1229/1 +f 1779/1239/6 1778/1240/6 1777/1241/6 +f 1781/1242/3 1788/1243/3 1784/1244/3 +f 1779/1245/2 1784/1244/2 1780/1246/2 +f 1778/1247/1 1782/1248/1 1777/1249/1 +f 1780/1250/4 1783/1251/4 1778/1240/4 +f 1777/1252/5 1781/1253/5 1779/1254/5 +f 1788/1255/4 1791/1256/4 1787/1257/4 +f 1783/1258/3 1786/1259/3 1782/1248/3 +f 1784/1260/3 1787/1257/3 1783/1251/3 +f 1782/1261/3 1785/1262/3 1781/1253/3 +f 1786/1263/5 1789/1264/5 1785/1262/5 +f 1785/1265/2 1792/1266/2 1788/1243/2 +f 1787/1267/1 1790/1268/1 1786/1259/1 +f 1795/1269/6 1794/1270/6 1793/1271/6 +f 1797/1272/3 1804/1273/3 1800/1274/3 +f 1795/1275/2 1800/1274/2 1796/1276/2 +f 1794/1277/1 1798/1278/1 1793/1279/1 +f 1796/1280/4 1799/1281/4 1794/1270/4 +f 1793/1282/5 1797/1283/5 1795/1284/5 +f 1804/1285/4 1807/1286/4 1803/1287/4 +f 1799/1288/3 1802/1289/3 1798/1278/3 +f 1800/1290/3 1803/1287/3 1799/1281/3 +f 1798/1291/3 1801/1292/3 1797/1283/3 +f 1802/1293/5 1805/1294/5 1801/1292/5 +f 1801/1295/2 1808/1296/2 1804/1273/2 +f 1803/1297/1 1806/1298/1 1802/1289/1 +f 1811/1299/6 1810/1300/6 1809/1301/6 +f 1813/1302/3 1820/1303/3 1816/1304/3 +f 1811/1305/2 1816/1304/2 1812/1306/2 +f 1810/1307/1 1814/1308/1 1809/1309/1 +f 1812/1310/4 1815/1311/4 1810/1300/4 +f 1809/1312/5 1813/1313/5 1811/1314/5 +f 1820/1315/4 1823/1316/4 1819/1317/4 +f 1815/1318/3 1818/1319/3 1814/1308/3 +f 1816/1320/3 1819/1317/3 1815/1311/3 +f 1814/1321/3 1817/1322/3 1813/1313/3 +f 1818/1323/5 1821/1324/5 1817/1322/5 +f 1817/1325/2 1824/1326/2 1820/1303/2 +f 1819/1327/1 1822/1328/1 1818/1319/1 +f 1827/1329/6 1826/1330/6 1825/1331/6 +f 1829/1332/3 1836/1333/3 1832/1334/3 +f 1827/1335/2 1832/1334/2 1828/1336/2 +f 1826/1337/1 1830/1338/1 1825/1339/1 +f 1828/1340/4 1831/1341/4 1826/1330/4 +f 1825/1342/5 1829/1343/5 1827/1344/5 +f 1836/1345/4 1839/1346/4 1835/1347/4 +f 1831/1348/3 1834/1349/3 1830/1338/3 +f 1832/1350/3 1835/1347/3 1831/1341/3 +f 1830/1351/3 1833/1352/3 1829/1343/3 +f 1834/1353/5 1837/1354/5 1833/1352/5 +f 1833/1355/2 1840/1356/2 1836/1333/2 +f 1835/1357/1 1838/1358/1 1834/1349/1 +f 1843/1359/6 1842/1360/6 1841/1361/6 +f 1845/1362/3 1852/1363/3 1848/1364/3 +f 1843/1365/2 1848/1364/2 1844/1366/2 +f 1842/1367/1 1846/1368/1 1841/1369/1 +f 1844/1370/4 1847/1371/4 1842/1360/4 +f 1841/1372/5 1845/1373/5 1843/1374/5 +f 1852/1375/4 1855/1376/4 1851/1377/4 +f 1847/1378/3 1850/1379/3 1846/1368/3 +f 1848/1380/3 1851/1377/3 1847/1371/3 +f 1846/1381/3 1849/1382/3 1845/1373/3 +f 1850/1383/5 1853/1384/5 1849/1382/5 +f 1849/1385/2 1856/1386/2 1852/1363/2 +f 1851/1387/1 1854/1388/1 1850/1379/1 +f 1859/1389/6 1858/1390/6 1857/1391/6 +f 1861/1392/3 1868/1393/3 1864/1394/3 +f 1859/1395/2 1864/1394/2 1860/1396/2 +f 1858/1397/1 1862/1398/1 1857/1399/1 +f 1860/1400/4 1863/1401/4 1858/1390/4 +f 1857/1402/5 1861/1403/5 1859/1404/5 +f 1868/1405/4 1871/1406/4 1867/1407/4 +f 1863/1408/3 1866/1409/3 1862/1398/3 +f 1864/1410/3 1867/1407/3 1863/1401/3 +f 1862/1411/3 1865/1412/3 1861/1403/3 +f 1866/1413/5 1869/1414/5 1865/1412/5 +f 1865/1415/2 1872/1416/2 1868/1393/2 +f 1867/1417/1 1870/1418/1 1866/1409/1 +f 1875/1419/6 1874/1420/6 1873/1421/6 +f 1877/1422/3 1884/1423/3 1880/1424/3 +f 1875/1425/2 1880/1424/2 1876/1426/2 +f 1874/1427/1 1878/1428/1 1873/1429/1 +f 1876/1430/4 1879/1431/4 1874/1420/4 +f 1873/1432/5 1877/1433/5 1875/1434/5 +f 1884/1435/4 1887/1436/4 1883/1437/4 +f 1879/1438/3 1882/1439/3 1878/1428/3 +f 1880/1440/3 1883/1437/3 1879/1431/3 +f 1878/1441/3 1881/1442/3 1877/1433/3 +f 1882/1443/5 1885/1444/5 1881/1442/5 +f 1881/1445/2 1888/1446/2 1884/1423/2 +f 1883/1447/1 1886/1448/1 1882/1439/1 +f 1891/1449/6 1890/1450/6 1889/1451/6 +f 1893/1452/3 1900/1453/3 1896/1454/3 +f 1891/1455/2 1896/1454/2 1892/1456/2 +f 1890/1457/1 1894/1458/1 1889/1459/1 +f 1892/1460/4 1895/1461/4 1890/1450/4 +f 1889/1462/5 1893/1463/5 1891/1464/5 +f 1900/1465/4 1903/1466/4 1899/1467/4 +f 1895/1468/3 1898/1469/3 1894/1458/3 +f 1896/1470/3 1899/1467/3 1895/1461/3 +f 1894/1471/3 1897/1472/3 1893/1463/3 +f 1898/1473/5 1901/1474/5 1897/1472/5 +f 1897/1475/2 1904/1476/2 1900/1453/2 +f 1899/1477/1 1902/1478/1 1898/1469/1 +f 1907/1479/6 1906/1480/6 1905/1481/6 +f 1909/1482/3 1916/1483/3 1912/1484/3 +f 1907/1485/2 1912/1484/2 1908/1486/2 +f 1906/1487/1 1910/1488/1 1905/1489/1 +f 1908/1490/4 1911/1491/4 1906/1480/4 +f 1905/1492/5 1909/1493/5 1907/1494/5 +f 1916/1495/4 1919/1496/4 1915/1497/4 +f 1911/1498/3 1914/1499/3 1910/1488/3 +f 1912/1500/3 1915/1497/3 1911/1491/3 +f 1910/1501/3 1913/1502/3 1909/1493/3 +f 1914/1503/5 1917/1504/5 1913/1502/5 +f 1913/1505/2 1920/1506/2 1916/1483/2 +f 1915/1507/1 1918/1508/1 1914/1499/1 +f 1923/1509/6 1922/1510/6 1921/1511/6 +f 1925/1512/3 1932/1513/3 1928/1514/3 +f 1923/1515/2 1928/1514/2 1924/1516/2 +f 1922/1517/1 1926/1518/1 1921/1519/1 +f 1924/1520/4 1927/1521/4 1922/1510/4 +f 1921/1522/5 1925/1523/5 1923/1524/5 +f 1932/1525/4 1935/1526/4 1931/1527/4 +f 1927/1528/3 1930/1529/3 1926/1518/3 +f 1928/1530/3 1931/1527/3 1927/1521/3 +f 1926/1531/3 1929/1532/3 1925/1523/3 +f 1930/1533/5 1933/1534/5 1929/1532/5 +f 1929/1535/2 1936/1536/2 1932/1513/2 +f 1931/1537/1 1934/1538/1 1930/1529/1 +f 2010/1539/5 2019/1540/5 2016/1541/5 +f 2044/1542/5 2031/1543/5 2032/1544/5 +f 2044/1545/5 2021/1546/5 2033/1547/5 +f 2033/1548/5 2022/1549/5 2034/1550/5 +f 2035/1551/5 2022/1552/5 2023/1553/5 +f 2036/1554/5 2023/1555/5 2024/1556/5 +f 2037/1557/5 2024/1558/5 2025/1559/5 +f 2037/1560/5 2026/1561/5 2038/1562/5 +f 2039/1563/5 2026/1564/5 2027/1565/5 +f 2039/1566/5 2028/1567/5 2040/1568/5 +f 2040/1569/5 2029/1570/5 2041/1571/5 +f 2041/1572/5 2030/1573/5 2042/1574/5 +f 2042/1575/5 2031/1576/5 2043/1577/5 +f 2190/1578/39 2203/1579/39 2202/1580/39 +f 2192/1581/39 2203/1582/39 2191/1583/39 +f 2193/1584/39 2204/1585/39 2192/1586/39 +f 2194/1587/39 2205/1588/39 2193/1589/39 +f 2194/1590/39 2207/1591/39 2206/1592/39 +f 2196/1593/39 2207/1594/39 2195/1595/39 +f 2196/1596/39 2209/1597/39 2208/1598/39 +f 2197/1599/39 2210/1600/39 2209/1601/39 +f 2198/1602/39 2211/1603/39 2210/1604/39 +f 2199/1605/39 2212/1606/39 2211/1607/39 +f 2189/1608/39 2212/1609/39 2200/1610/39 +f 2189/1611/39 2202/1612/39 2201/1613/39 +f 2217/1614/39 2221/1615/39 2214/1616/39 +f 2230/1617/40 2241/1618/40 2242/1619/40 +f 2225/1620/40 2248/1621/40 2237/1622/40 +f 2226/1623/40 2239/1624/40 2227/1625/40 +f 2234/1626/40 2245/1627/40 2246/1628/40 +f 2231/1629/40 2242/1630/40 2243/1631/40 +f 2227/1632/40 2240/1633/40 2228/1634/40 +f 2234/1635/40 2247/1636/40 2235/1637/40 +f 2232/1638/40 2243/1639/40 2244/1640/40 +f 2228/1641/40 2241/1642/40 2229/1643/40 +f 2236/1644/40 2247/1645/40 2248/1646/40 +f 2225/1647/40 2238/1648/40 2226/1649/40 +f 2232/1650/40 2245/1651/40 2233/1652/40 +f 2258/1653/40 2271/1654/40 2259/1655/40 +f 2255/1656/40 2268/1657/40 2256/1658/40 +f 2253/1659/40 2264/1660/40 2265/1661/40 +f 2259/1655/40 2272/1662/40 2260/1663/40 +f 2249/1664/40 2261/1665/40 2250/1666/40 +f 2256/1658/40 2269/1667/40 2257/1668/40 +f 2254/1669/40 2265/1670/40 2266/1671/40 +f 2260/1663/40 2262/1672/40 2249/1664/40 +f 2250/1666/40 2263/1673/40 2251/1674/40 +f 2258/1675/40 2269/1676/40 2270/1677/40 +f 2254/1669/40 2267/1678/40 2255/1656/40 +f 2252/1679/40 2263/1680/40 2264/1681/40 +f 2279/1682/40 2277/1683/40 2275/1684/40 +f 2323/1685/41 2334/1686/41 2322/1687/41 +f 2324/1688/41 2335/1689/41 2323/1690/41 +f 2325/1691/41 2336/1692/41 2324/1693/41 +f 2326/1694/41 2337/1695/41 2325/1696/41 +f 2326/1697/41 2339/1698/41 2338/1699/41 +f 2328/1700/41 2339/1701/41 2327/1702/41 +f 2328/1703/41 2341/1704/41 2340/1705/41 +f 2329/1706/41 2342/1707/41 2341/1708/41 +f 2330/1709/41 2343/1710/41 2342/1711/41 +f 2331/1712/41 2344/1713/41 2343/1714/41 +f 2332/1715/41 2333/1716/41 2344/1717/41 +f 2321/1718/41 2334/1719/41 2333/1720/41 +f 2355/1721/41 2346/1722/41 2349/1723/41 +f 2362/1724/42 2373/1725/42 2374/1726/42 +f 2357/1727/42 2380/1728/42 2369/1729/42 +f 2358/1730/42 2371/1731/42 2359/1732/42 +f 2366/1733/42 2377/1734/42 2378/1735/42 +f 2363/1736/42 2374/1737/42 2375/1738/42 +f 2360/1739/42 2371/1740/42 2372/1741/42 +f 2366/1742/42 2379/1743/42 2367/1744/42 +f 2363/1745/42 2376/1746/42 2364/1747/42 +f 2360/1748/42 2373/1749/42 2361/1750/42 +f 2368/1751/42 2379/1752/42 2380/1753/42 +f 2357/1754/42 2370/1755/42 2358/1756/42 +f 2364/1757/42 2377/1758/42 2365/1759/42 +f 2390/1760/42 2403/1761/42 2391/1762/42 +f 2387/1763/42 2400/1764/42 2388/1765/42 +f 2384/1766/42 2397/1767/42 2385/1768/42 +f 2391/1762/42 2404/1769/42 2392/1770/42 +f 2381/1771/42 2393/1772/42 2382/1773/42 +f 2388/1765/42 2401/1774/42 2389/1775/42 +f 2386/1776/42 2397/1777/42 2398/1778/42 +f 2392/1770/42 2394/1779/42 2381/1771/42 +f 2382/1773/42 2395/1780/42 2383/1781/42 +f 2390/1782/42 2401/1783/42 2402/1784/42 +f 2387/1763/42 2398/1785/42 2399/1786/42 +f 2384/1766/42 2395/1787/42 2396/1788/42 +f 2415/1789/42 2411/1790/42 2407/1791/42 +f 2455/1792/43 2466/1793/43 2454/1794/43 +f 2456/1795/43 2467/1796/43 2455/1797/43 +f 2457/1798/43 2468/1799/43 2456/1800/43 +f 2458/1801/43 2469/1802/43 2457/1803/43 +f 2459/1804/43 2470/1805/43 2458/1806/43 +f 2460/1807/43 2471/1808/43 2459/1809/43 +f 2460/1810/43 2473/1811/43 2472/1812/43 +f 2461/1813/43 2474/1814/43 2473/1815/43 +f 2462/1816/43 2475/1817/43 2474/1818/43 +f 2464/1819/43 2475/1820/43 2463/1821/43 +f 2464/1822/43 2465/1823/43 2476/1824/43 +f 2453/1825/43 2466/1826/43 2465/1827/43 +f 2479/1828/43 2481/1829/43 2485/1830/43 +f 2493/1831/44 2506/1832/44 2494/1833/44 +f 2500/1834/44 2501/1835/44 2489/1836/44 +f 2491/1837/44 2502/1838/44 2503/1839/44 +f 2498/1840/44 2509/1841/44 2510/1842/44 +f 2494/1843/44 2507/1844/44 2495/1845/44 +f 2492/1846/44 2503/1847/44 2504/1848/44 +f 2498/1849/44 2511/1850/44 2499/1851/44 +f 2496/1852/44 2507/1853/44 2508/1854/44 +f 2493/1855/44 2504/1856/44 2505/1857/44 +f 2500/1858/44 2511/1859/44 2512/1860/44 +f 2490/1861/44 2501/1862/44 2502/1863/44 +f 2497/1864/44 2508/1865/44 2509/1866/44 +f 2523/1867/44 2534/1868/44 2535/1869/44 +f 2519/1870/44 2532/1871/44 2520/1872/44 +f 2517/1873/44 2528/1874/44 2529/1875/44 +f 2524/1876/44 2535/1877/44 2536/1878/44 +f 2514/1879/44 2526/1880/44 2525/1881/44 +f 2520/1872/44 2533/1882/44 2521/1883/44 +f 2518/1884/44 2529/1885/44 2530/1886/44 +f 2524/1876/44 2526/1887/44 2513/1888/44 +f 2514/1879/44 2527/1889/44 2515/1890/44 +f 2522/1891/44 2533/1892/44 2534/1893/44 +f 2518/1884/44 2531/1894/44 2519/1870/44 +f 2515/1890/44 2528/1895/44 2516/1896/44 +f 2541/1897/44 2539/1898/44 2547/1899/44 +f 2586/1900/45 2599/1901/45 2598/1902/45 +f 2588/1903/45 2599/1904/45 2587/1905/45 +f 2589/1906/45 2600/1907/45 2588/1908/45 +f 2590/1909/45 2601/1910/45 2589/1911/45 +f 2590/1912/45 2603/1913/45 2602/1914/45 +f 2592/1915/45 2603/1916/45 2591/1917/45 +f 2592/1918/45 2605/1919/45 2604/1920/45 +f 2593/1921/45 2606/1922/45 2605/1923/45 +f 2595/1924/45 2606/1925/45 2594/1926/45 +f 2596/1927/45 2607/1928/45 2595/1929/45 +f 2585/1930/45 2608/1931/45 2596/1932/45 +f 2585/1933/45 2598/1934/45 2597/1935/45 +f 2611/1936/45 2613/1937/45 2617/1938/45 +f 2626/1939/46 2637/1940/46 2638/1941/46 +f 2621/1942/46 2644/1943/46 2633/1944/46 +f 2623/1945/46 2634/1946/46 2635/1947/46 +f 2630/1948/46 2641/1949/46 2642/1950/46 +f 2627/1951/46 2638/1952/46 2639/1953/46 +f 2623/1954/46 2636/1955/46 2624/1956/46 +f 2630/1957/46 2643/1958/46 2631/1959/46 +f 2627/1960/46 2640/1961/46 2628/1962/46 +f 2624/1963/46 2637/1964/46 2625/1965/46 +f 2632/1966/46 2643/1967/46 2644/1968/46 +f 2621/1969/46 2634/1970/46 2622/1971/46 +f 2628/1972/46 2641/1973/46 2629/1974/46 +f 2654/1975/46 2667/1976/46 2655/1977/46 +f 2651/1978/46 2664/1979/46 2652/1980/46 +f 2648/1981/46 2661/1982/46 2649/1983/46 +f 2656/1984/46 2667/1985/46 2668/1986/46 +f 2646/1987/46 2658/1988/46 2657/1989/46 +f 2652/1980/46 2665/1990/46 2653/1991/46 +f 2650/1992/46 2661/1993/46 2662/1994/46 +f 2656/1984/46 2658/1995/46 2645/1996/46 +f 2646/1987/46 2659/1997/46 2647/1998/46 +f 2654/1999/46 2665/2000/46 2666/2001/46 +f 2651/1978/46 2662/2002/46 2663/2003/46 +f 2647/1998/46 2660/2004/46 2648/1981/46 +f 2670/2005/46 2679/2006/46 2675/2007/46 +f 2686/2008/4 2697/2009/4 2698/2010/4 +f 2692/2011/4 2693/2012/4 2681/2013/4 +f 2682/2014/4 2695/2015/4 2683/2016/4 +f 2690/2017/4 2701/2018/4 2702/2019/4 +f 2686/2020/4 2699/2021/4 2687/2022/4 +f 2684/2023/4 2695/2024/4 2696/2025/4 +f 2690/2026/4 2703/2027/4 2691/2028/4 +f 2688/2029/4 2699/2030/4 2700/2031/4 +f 2684/2032/4 2697/2033/4 2685/2034/4 +f 2692/2035/4 2703/2036/4 2704/2037/4 +f 2681/2038/4 2694/2039/4 2682/2040/4 +f 2688/2041/4 2701/2042/4 2689/2043/4 +f 2714/2044/4 2727/2045/4 2715/2046/4 +f 2712/2047/4 2723/2048/4 2724/2049/4 +f 2708/2050/4 2721/2051/4 2709/2052/4 +f 2716/2053/4 2727/2054/4 2728/2055/4 +f 2705/2056/4 2717/2057/4 2706/2058/4 +f 2712/2047/4 2725/2059/4 2713/2060/4 +f 2710/2061/4 2721/2062/4 2722/2063/4 +f 2716/2053/4 2718/2064/4 2705/2056/4 +f 2706/2058/4 2719/2065/4 2707/2066/4 +f 2714/2067/4 2725/2068/4 2726/2069/4 +f 2710/2061/4 2723/2070/4 2711/2071/4 +f 2708/2050/4 2719/2072/4 2720/2073/4 +f 2739/2074/4 2735/2075/4 2731/2076/4 +f 2757/2077/1 2770/2078/1 2758/2079/1 +f 2764/2080/1 2765/2081/1 2753/2082/1 +f 2754/2083/1 2767/2084/1 2755/2085/1 +f 2762/2086/1 2773/2087/1 2774/2088/1 +f 2759/2089/1 2770/2090/1 2771/2091/1 +f 2756/2092/1 2767/2093/1 2768/2094/1 +f 2762/2095/1 2775/2096/1 2763/2097/1 +f 2759/2089/1 2772/2098/1 2760/2099/1 +f 2756/2092/1 2769/2100/1 2757/2077/1 +f 2764/2080/1 2775/2101/1 2776/2102/1 +f 2754/2083/1 2765/2103/1 2766/2104/1 +f 2761/2105/1 2772/2106/1 2773/2107/1 +f 2786/2108/1 2799/2109/1 2787/2110/1 +f 2783/2111/1 2796/2112/1 2784/2113/1 +f 2780/2114/1 2793/2115/1 2781/2116/1 +f 2788/2117/1 2799/2118/1 2800/2119/1 +f 2778/2120/1 2790/2121/1 2789/2122/1 +f 2785/2123/1 2796/2124/1 2797/2125/1 +f 2781/2116/1 2794/2126/1 2782/2127/1 +f 2788/2117/1 2790/2128/1 2777/2129/1 +f 2778/2120/1 2791/2130/1 2779/2131/1 +f 2786/2132/1 2797/2133/1 2798/2134/1 +f 2783/2111/1 2794/2135/1 2795/2136/1 +f 2780/2114/1 2791/2137/1 2792/2138/1 +f 2811/2139/1 2807/2140/1 2803/2141/1 +f 2922/2142/44 2935/2143/44 2934/2144/44 +f 2924/2145/44 2935/2146/44 2923/2147/44 +f 2925/2148/44 2936/2149/44 2924/2150/44 +f 2926/2151/44 2937/2152/44 2925/2153/44 +f 2926/2154/44 2939/2155/44 2938/2156/44 +f 2928/2157/44 2939/2158/44 2927/2159/44 +f 2928/2160/44 2941/2161/44 2940/2162/44 +f 2929/2163/44 2942/2164/44 2941/2165/44 +f 2931/2166/44 2942/2167/44 2930/2168/44 +f 2932/2169/44 2943/2170/44 2931/2171/44 +f 2932/2172/44 2933/2173/44 2944/2174/44 +f 2921/2175/44 2934/2176/44 2933/2177/44 +f 2955/2178/44 2946/2179/44 2949/2180/44 +f 2962/2181/43 2973/2182/43 2974/2183/43 +f 2968/2184/43 2969/2185/43 2957/2186/43 +f 2958/2187/43 2971/2188/43 2959/2189/43 +f 2966/2190/43 2977/2191/43 2978/2192/43 +f 2963/2193/43 2974/2194/43 2975/2195/43 +f 2960/2196/43 2971/2197/43 2972/2198/43 +f 2966/2199/43 2979/2200/43 2967/2201/43 +f 2964/2202/43 2975/2203/43 2976/2204/43 +f 2960/2205/43 2973/2206/43 2961/2207/43 +f 2968/2208/43 2979/2209/43 2980/2210/43 +f 2957/2211/43 2970/2212/43 2958/2213/43 +f 2965/2214/43 2976/2215/43 2977/2216/43 +f 2991/2217/43 3002/2218/43 3003/2219/43 +f 2988/2220/43 2999/2221/43 3000/2222/43 +f 2985/2223/43 2996/2224/43 2997/2225/43 +f 2991/2217/43 3004/2226/43 2992/2227/43 +f 2981/2228/43 2993/2229/43 2982/2230/43 +f 2988/2220/43 3001/2231/43 2989/2232/43 +f 2985/2223/43 2998/2233/43 2986/2234/43 +f 2992/2227/43 2994/2235/43 2981/2228/43 +f 2982/2230/43 2995/2236/43 2983/2237/43 +f 2990/2238/43 3001/2239/43 3002/2240/43 +f 2986/2234/43 2999/2241/43 2987/2242/43 +f 2983/2237/43 2996/2243/43 2984/2244/43 +f 3013/2245/43 3011/2246/43 3007/2247/43 +f 3055/2248/46 3066/2249/46 3054/2250/46 +f 3056/2251/46 3067/2252/46 3055/2253/46 +f 3057/2254/46 3068/2255/46 3056/2256/46 +f 3058/2257/46 3069/2258/46 3057/2259/46 +f 3058/2260/46 3071/2261/46 3070/2262/46 +f 3060/2263/46 3071/2264/46 3059/2265/46 +f 3060/2266/46 3073/2267/46 3072/2268/46 +f 3061/2269/46 3074/2270/46 3073/2271/46 +f 3062/2272/46 3075/2273/46 3074/2274/46 +f 3064/2275/46 3075/2276/46 3063/2277/46 +f 3064/2278/46 3065/2279/46 3076/2280/46 +f 3054/2281/46 3065/2282/46 3053/2283/46 +f 3087/2284/46 3078/2285/46 3081/2286/46 +f 3093/2287/45 3106/2288/45 3094/2289/45 +f 3089/2290/45 3112/2291/45 3101/2292/45 +f 3090/2293/45 3103/2294/45 3091/2295/45 +f 3097/2296/45 3110/2297/45 3098/2298/45 +f 3095/2299/45 3106/2300/45 3107/2301/45 +f 3092/2302/45 3103/2303/45 3104/2304/45 +f 3098/2305/45 3111/2306/45 3099/2307/45 +f 3095/2308/45 3108/2309/45 3096/2310/45 +f 3092/2311/45 3105/2312/45 3093/2313/45 +f 3100/2314/45 3111/2315/45 3112/2316/45 +f 3089/2317/45 3102/2318/45 3090/2319/45 +f 3096/2320/45 3109/2321/45 3097/2322/45 +f 3123/2323/45 3134/2324/45 3135/2325/45 +f 3119/2326/45 3132/2327/45 3120/2328/45 +f 3116/2329/45 3129/2330/45 3117/2331/45 +f 3123/2323/45 3136/2332/45 3124/2333/45 +f 3113/2334/45 3125/2335/45 3114/2336/45 +f 3120/2328/45 3133/2337/45 3121/2338/45 +f 3117/2331/45 3130/2339/45 3118/2340/45 +f 3124/2333/45 3126/2341/45 3113/2334/45 +f 3114/2336/45 3127/2342/45 3115/2343/45 +f 3122/2344/45 3133/2345/45 3134/2346/45 +f 3119/2326/45 3130/2347/45 3131/2348/45 +f 3116/2329/45 3127/2349/45 3128/2350/45 +f 3147/2351/45 3143/2352/45 3139/2353/45 +f 3187/2354/40 3198/2355/40 3186/2356/40 +f 3188/2357/40 3199/2358/40 3187/2359/40 +f 3189/2360/40 3200/2361/40 3188/2362/40 +f 3190/2363/40 3201/2364/40 3189/2365/40 +f 3190/2366/40 3203/2367/40 3202/2368/40 +f 3192/2369/40 3203/2370/40 3191/2371/40 +f 3193/2372/40 3204/2373/40 3192/2374/40 +f 3193/2375/40 3206/2376/40 3205/2377/40 +f 3194/2378/40 3207/2379/40 3206/2380/40 +f 3196/2381/40 3207/2382/40 3195/2383/40 +f 3185/2384/40 3208/2385/40 3196/2386/40 +f 3185/2387/40 3198/2388/40 3197/2389/40 +f 3211/2390/40 3213/2391/40 3217/2392/40 +f 3225/2393/39 3238/2394/39 3226/2395/39 +f 3232/2396/39 3233/2397/39 3221/2398/39 +f 3223/2399/39 3234/2400/39 3235/2401/39 +f 3230/2402/39 3241/2403/39 3242/2404/39 +f 3226/2405/39 3239/2406/39 3227/2407/39 +f 3223/2408/39 3236/2409/39 3224/2410/39 +f 3230/2411/39 3243/2412/39 3231/2413/39 +f 3228/2414/39 3239/2415/39 3240/2416/39 +f 3224/2417/39 3237/2418/39 3225/2419/39 +f 3231/2420/39 3244/2421/39 3232/2422/39 +f 3221/2423/39 3234/2424/39 3222/2425/39 +f 3229/2426/39 3240/2427/39 3241/2428/39 +f 3255/2429/39 3266/2430/39 3267/2431/39 +f 3251/2432/39 3264/2433/39 3252/2434/39 +f 3249/2435/39 3260/2436/39 3261/2437/39 +f 3255/2429/39 3268/2438/39 3256/2439/39 +f 3245/2440/39 3257/2441/39 3246/2442/39 +f 3253/2443/39 3264/2444/39 3265/2445/39 +f 3250/2446/39 3261/2447/39 3262/2448/39 +f 3256/2439/39 3258/2449/39 3245/2440/39 +f 3246/2442/39 3259/2450/39 3247/2451/39 +f 3254/2452/39 3265/2453/39 3266/2454/39 +f 3250/2446/39 3263/2455/39 3251/2432/39 +f 3247/2451/39 3260/2456/39 3248/2457/39 +f 3273/2458/39 3271/2459/39 3279/2460/39 +f 3319/2461/42 3330/2462/42 3318/2463/42 +f 3320/2464/42 3331/2465/42 3319/2466/42 +f 3321/2467/42 3332/2468/42 3320/2469/42 +f 3322/2470/42 3333/2471/42 3321/2472/42 +f 3322/2473/42 3335/2474/42 3334/2475/42 +f 3323/2476/42 3336/2477/42 3335/2478/42 +f 3324/2479/42 3337/2480/42 3336/2481/42 +f 3325/2482/42 3338/2483/42 3337/2484/42 +f 3327/2485/42 3338/2486/42 3326/2487/42 +f 3328/2488/42 3339/2489/42 3327/2490/42 +f 3317/2491/42 3340/2492/42 3328/2493/42 +f 3317/2494/42 3330/2495/42 3329/2496/42 +f 3351/2497/42 3342/2498/42 3345/2499/42 +f 3358/2500/41 3369/2501/41 3370/2502/41 +f 3353/2503/41 3376/2504/41 3365/2505/41 +f 3355/2506/41 3366/2507/41 3367/2508/41 +f 3362/2509/41 3373/2510/41 3374/2511/41 +f 3359/2512/41 3370/2513/41 3371/2514/41 +f 3356/2515/41 3367/2516/41 3368/2517/41 +f 3362/2518/41 3375/2519/41 3363/2520/41 +f 3360/2521/41 3371/2522/41 3372/2523/41 +f 3356/2524/41 3369/2525/41 3357/2526/41 +f 3364/2527/41 3375/2528/41 3376/2529/41 +f 3353/2530/41 3366/2531/41 3354/2532/41 +f 3360/2533/41 3373/2534/41 3361/2535/41 +f 3386/2536/41 3399/2537/41 3387/2538/41 +f 3383/2539/41 3396/2540/41 3384/2541/41 +f 3380/2542/41 3393/2543/41 3381/2544/41 +f 3388/2545/41 3399/2546/41 3400/2547/41 +f 3378/2548/41 3390/2549/41 3389/2550/41 +f 3384/2541/41 3397/2551/41 3385/2552/41 +f 3382/2553/41 3393/2554/41 3394/2555/41 +f 3377/2556/41 3400/2557/41 3390/2558/41 +f 3378/2548/41 3391/2559/41 3379/2560/41 +f 3386/2561/41 3397/2562/41 3398/2563/41 +f 3383/2539/41 3394/2564/41 3395/2565/41 +f 3380/2542/41 3391/2566/41 3392/2567/41 +f 3411/2568/41 3409/2569/41 3407/2570/41 +f 78/1/1 126/2571/1 127/2/1 +f 79/4/1 127/2572/1 128/5/1 +f 128/7/1 113/2573/1 65/8/1 +f 113/10/1 114/2574/1 66/11/1 +f 114/13/1 115/2575/1 67/14/1 +f 115/16/1 116/2576/1 68/17/1 +f 116/19/1 117/2577/1 69/20/1 +f 117/22/1 118/2578/1 70/23/1 +f 118/25/1 119/2579/1 71/26/1 +f 71/28/1 119/2580/1 120/29/1 +f 72/31/1 120/2581/1 121/32/1 +f 73/34/1 121/2582/1 122/35/1 +f 74/37/1 122/2583/1 123/38/1 +f 75/40/1 123/2584/1 124/41/1 +f 76/43/1 124/2585/1 125/44/1 +f 77/46/1 125/2586/1 126/47/1 +f 95/49/2 96/2587/2 208/50/2 +f 81/52/2 193/2588/2 208/53/2 +f 82/55/2 194/2589/2 193/56/2 +f 83/58/2 195/2590/2 194/59/2 +f 84/61/2 196/2591/2 195/62/2 +f 85/64/2 197/2592/2 196/65/2 +f 86/67/2 198/2593/2 197/68/2 +f 87/70/2 199/2594/2 198/71/2 +f 87/73/2 88/2595/2 200/74/2 +f 88/76/2 89/2596/2 201/77/2 +f 89/79/2 90/2597/2 202/80/2 +f 90/82/2 91/2598/2 203/83/2 +f 91/85/2 92/2599/2 204/86/2 +f 92/88/2 93/2600/2 205/89/2 +f 93/91/2 94/2601/2 206/92/2 +f 94/94/2 95/2602/2 207/95/2 +f 237/97/2 238/2603/2 142/98/2 +f 238/100/2 239/2604/2 143/101/2 +f 143/103/2 239/2605/2 240/104/2 +f 240/106/2 225/2606/2 129/107/2 +f 225/109/2 226/2607/2 130/110/2 +f 130/112/2 226/2608/2 227/113/2 +f 227/115/2 228/2609/2 132/116/2 +f 228/118/2 229/2610/2 133/119/2 +f 133/121/2 229/2611/2 230/122/2 +f 134/124/2 230/2612/2 231/125/2 +f 231/127/2 232/2613/2 136/128/2 +f 232/130/2 233/2614/2 137/131/2 +f 137/133/2 233/2615/2 234/134/2 +f 138/136/2 234/2616/2 235/137/2 +f 235/139/2 236/2617/2 140/140/2 +f 236/142/2 237/2618/2 141/143/2 +f 254/145/1 286/2619/1 287/146/1 +f 287/148/1 288/2620/1 256/149/1 +f 256/151/1 288/2621/1 273/152/1 +f 241/154/1 273/2622/1 274/155/1 +f 274/157/1 275/2623/1 243/158/1 +f 243/160/1 275/2624/1 276/161/1 +f 276/163/1 277/2625/1 245/164/1 +f 277/166/1 278/2626/1 246/167/1 +f 278/169/1 279/2627/1 247/170/1 +f 247/172/1 279/2628/1 280/173/1 +f 248/175/1 280/2629/1 281/176/1 +f 281/178/1 282/2630/1 250/179/1 +f 282/181/1 283/2631/1 251/182/1 +f 283/184/1 284/2632/1 252/185/1 +f 252/187/1 284/2633/1 285/188/1 +f 253/190/1 285/2634/1 286/191/1 +f 191/193/1 399/2635/1 398/194/1 +f 191/196/1 192/2636/1 400/197/1 +f 177/199/1 385/2637/1 400/200/1 +f 178/202/1 386/2638/1 385/203/1 +f 178/205/1 179/2639/1 387/206/1 +f 180/208/1 388/2640/1 387/209/1 +f 180/211/1 181/2641/1 389/212/1 +f 181/214/1 182/2642/1 390/215/1 +f 182/217/1 183/2643/1 391/218/1 +f 184/220/1 392/2644/1 391/221/1 +f 185/223/1 393/2645/1 392/224/1 +f 185/226/1 186/2646/1 394/227/1 +f 186/229/1 187/2647/1 395/230/1 +f 188/232/1 396/2648/1 395/233/1 +f 189/235/1 397/2649/1 396/236/1 +f 190/238/1 398/2650/1 397/239/1 +f 414/241/2 415/2651/2 367/242/2 +f 367/244/2 415/2652/2 416/245/2 +f 416/247/2 401/2653/2 353/248/2 +f 401/250/2 402/2654/2 354/251/2 +f 354/253/2 402/2655/2 403/254/2 +f 403/256/2 404/2656/2 356/257/2 +f 404/259/2 405/2657/2 357/260/2 +f 357/262/2 405/2658/2 406/263/2 +f 358/265/2 406/2659/2 407/266/2 +f 407/268/2 408/2660/2 360/269/2 +f 408/271/2 409/2661/2 361/272/2 +f 361/274/2 409/2662/2 410/275/2 +f 362/277/2 410/2663/2 411/278/2 +f 411/280/2 412/2664/2 364/281/2 +f 412/283/2 413/2665/2 365/284/2 +f 413/286/2 414/2666/2 366/287/2 +f 301/289/2 429/2667/2 430/290/2 +f 430/292/2 431/2668/2 303/293/2 +f 431/295/2 432/2669/2 304/296/2 +f 432/298/2 417/2670/2 289/299/2 +f 417/301/2 418/2671/2 290/302/2 +f 290/304/2 418/2672/2 419/305/2 +f 419/307/2 420/2673/2 292/308/2 +f 292/310/2 420/2674/2 421/311/2 +f 421/313/2 422/2675/2 294/314/2 +f 294/316/2 422/2676/2 423/317/2 +f 423/319/2 424/2677/2 296/320/2 +f 296/322/2 424/2678/2 425/323/2 +f 297/325/2 425/2679/2 426/326/2 +f 426/328/2 427/2680/2 299/329/2 +f 427/331/2 428/2681/2 300/332/2 +f 428/334/2 429/2682/2 301/335/2 +f 435/339/2 433/2683/2 447/2684/2 +f 433/2683/2 434/2685/2 447/2684/2 +f 434/2685/2 448/2686/2 447/2684/2 +f 447/2684/2 446/2687/2 445/2688/2 +f 445/2688/2 444/2689/2 443/337/2 +f 443/337/2 442/2690/2 441/2691/2 +f 441/2691/2 440/2692/2 443/337/2 +f 440/2692/2 439/338/2 443/337/2 +f 439/338/2 438/2693/2 435/339/2 +f 438/2693/2 437/2694/2 435/339/2 +f 437/2694/2 436/2695/2 435/339/2 +f 447/2684/2 445/2688/2 435/339/2 +f 445/2688/2 443/337/2 435/339/2 +f 351/340/1 463/2696/1 462/341/1 +f 352/343/1 464/2697/1 463/344/1 +f 337/346/1 449/2698/1 464/347/1 +f 338/349/1 450/2699/1 449/350/1 +f 338/352/1 339/2700/1 451/353/1 +f 340/355/1 452/2701/1 451/356/1 +f 340/358/1 341/2702/1 453/359/1 +f 342/361/1 454/2703/1 453/362/1 +f 342/364/1 343/2704/1 455/365/1 +f 344/367/1 456/2705/1 455/368/1 +f 344/370/1 345/2706/1 457/371/1 +f 345/373/1 346/2707/1 458/374/1 +f 347/376/1 459/2708/1 458/377/1 +f 348/379/1 460/2709/1 459/380/1 +f 349/382/1 461/2710/1 460/383/1 +f 349/385/1 350/2711/1 462/386/1 +f 466/390/1 465/2712/1 467/2713/1 +f 467/2713/1 468/2714/1 466/390/1 +f 468/2714/1 469/2715/1 466/390/1 +f 469/2715/1 470/2716/1 471/2717/1 +f 471/2717/1 472/2718/1 473/388/1 +f 473/388/1 474/2719/1 475/2720/1 +f 475/2720/1 476/2721/1 477/389/1 +f 477/389/1 478/2722/1 479/2723/1 +f 479/2723/1 480/2724/1 466/390/1 +f 469/2715/1 471/2717/1 466/390/1 +f 471/2717/1 473/388/1 466/390/1 +f 473/388/1 475/2720/1 477/389/1 +f 477/389/1 479/2723/1 466/390/1 +f 546/391/3 548/398/3 547/392/3 +f 554/394/3 556/403/3 555/395/3 +f 546/391/4 551/2725/4 552/397/4 +f 547/392/5 549/2726/5 550/399/5 +f 548/398/2 552/2727/2 549/400/2 +f 545/393/1 550/2728/1 551/401/1 +f 554/394/4 559/2729/4 560/402/4 +f 555/395/5 557/2730/5 558/404/5 +f 556/403/2 560/2731/2 557/405/2 +f 553/396/1 558/2732/1 559/406/1 +f 562/407/3 564/414/3 563/408/3 +f 570/410/3 572/419/3 571/411/3 +f 562/407/4 567/2733/4 568/413/4 +f 563/408/5 565/2734/5 566/415/5 +f 564/414/2 568/2735/2 565/416/2 +f 561/409/1 566/2736/1 567/417/1 +f 570/410/4 575/2737/4 576/418/4 +f 571/411/5 573/2738/5 574/420/5 +f 572/419/2 576/2739/2 573/421/2 +f 569/412/1 574/2740/1 575/422/1 +f 578/423/4 582/431/4 584/424/4 +f 579/426/5 583/429/5 581/427/5 +f 580/425/3 584/424/3 583/429/3 +f 577/430/6 581/2741/6 582/431/6 +f 586/432/4 590/440/4 592/433/4 +f 587/435/5 591/438/5 589/436/5 +f 588/434/3 592/433/3 591/438/3 +f 585/439/6 589/2742/6 590/440/6 +f 594/441/4 598/449/4 600/442/4 +f 595/444/5 599/447/5 597/445/5 +f 596/443/3 600/442/3 599/447/3 +f 593/448/6 597/2743/6 598/449/6 +f 602/450/4 606/458/4 608/451/4 +f 603/453/5 607/456/5 605/454/5 +f 604/452/3 608/451/3 607/456/3 +f 601/457/6 605/2744/6 606/458/6 +f 611/459/6 612/470/6 610/460/6 +f 615/462/3 616/466/3 613/463/3 +f 611/465/7 613/463/7 616/466/7 +f 610/468/8 615/462/8 614/464/8 +f 612/470/4 616/466/4 615/462/4 +f 609/471/5 614/464/5 613/463/5 +f 619/473/6 620/484/6 618/474/6 +f 623/476/3 624/480/3 621/477/3 +f 619/479/7 621/477/7 624/480/7 +f 618/482/8 623/476/8 622/478/8 +f 620/484/4 624/480/4 623/476/4 +f 617/485/5 622/478/5 621/477/5 +f 626/487/4 631/497/4 632/488/4 +f 627/490/5 629/494/5 630/491/5 +f 628/493/2 632/488/2 629/494/2 +f 625/496/1 630/491/1 631/497/1 +f 634/499/4 639/509/4 640/500/4 +f 635/502/5 637/506/5 638/503/5 +f 636/505/2 640/500/2 637/506/2 +f 633/508/1 638/503/1 639/509/1 +f 642/511/4 647/521/4 648/512/4 +f 643/514/5 645/518/5 646/515/5 +f 644/517/2 648/512/2 645/518/2 +f 641/520/1 646/515/1 647/521/1 +f 650/523/4 655/533/4 656/524/4 +f 651/526/5 653/530/5 654/527/5 +f 652/529/2 656/524/2 653/530/2 +f 649/532/1 654/527/1 655/533/1 +f 648/512/6 647/521/6 646/515/6 +f 656/524/6 655/533/6 654/527/6 +f 632/488/6 631/497/6 630/491/6 +f 640/500/6 639/509/6 638/503/6 +f 658/535/4 662/543/4 664/536/4 +f 659/538/5 663/541/5 661/539/5 +f 660/537/3 664/536/3 663/541/3 +f 657/542/6 661/2745/6 662/543/6 +f 666/544/4 670/552/4 672/545/4 +f 667/547/5 671/550/5 669/548/5 +f 668/546/3 672/545/3 671/550/3 +f 665/551/6 669/2746/6 670/552/6 +f 674/553/4 678/561/4 680/554/4 +f 675/556/5 679/559/5 677/557/5 +f 676/555/3 680/554/3 679/559/3 +f 673/560/6 677/2747/6 678/561/6 +f 682/562/4 686/570/4 688/563/4 +f 683/565/5 687/568/5 685/566/5 +f 684/564/3 688/563/3 687/568/3 +f 681/569/6 685/2748/6 686/570/6 +f 691/571/3 692/582/3 690/572/3 +f 695/574/6 696/578/6 693/575/6 +f 691/577/9 693/575/9 696/578/9 +f 690/580/10 695/574/10 694/576/10 +f 692/582/5 696/578/5 695/574/5 +f 689/583/4 694/576/4 693/575/4 +f 699/585/3 700/596/3 698/586/3 +f 703/588/6 704/592/6 701/589/6 +f 699/591/9 701/589/9 704/592/9 +f 698/594/10 703/588/10 702/590/10 +f 700/596/5 704/592/5 703/588/5 +f 697/597/4 702/590/4 701/589/4 +f 707/599/2 708/605/2 706/600/2 +f 710/602/1 712/611/1 711/603/1 +f 708/605/4 712/611/4 710/606/4 +f 705/608/5 709/612/5 711/609/5 +f 707/599/3 711/603/3 712/611/3 +f 706/607/6 710/606/6 709/612/6 +f 715/613/6 716/624/6 714/614/6 +f 717/616/3 721/639/3 724/617/3 +f 715/619/2 717/616/2 720/618/2 +f 714/621/1 719/632/1 718/622/1 +f 716/624/4 720/634/4 719/625/4 +f 713/626/5 718/635/5 717/627/5 +f 724/629/4 728/2749/4 727/630/4 +f 719/632/3 723/641/3 722/633/3 +f 720/634/3 724/629/3 723/631/3 +f 718/635/3 722/637/3 721/636/3 +f 722/637/5 726/2750/5 725/638/5 +f 721/639/2 725/2751/2 728/640/2 +f 723/641/1 727/2752/1 726/642/1 +f 731/643/2 732/649/2 730/644/2 +f 734/646/1 736/655/1 735/647/1 +f 732/649/4 736/655/4 734/650/4 +f 729/652/5 733/656/5 735/653/5 +f 731/643/3 735/647/3 736/655/3 +f 730/651/6 734/650/6 733/656/6 +f 738/657/3 740/662/3 739/658/3 +f 737/659/1 742/2753/1 743/660/1 +f 738/657/4 743/2754/4 744/661/4 +f 739/658/5 741/2755/5 742/663/5 +f 740/662/2 744/2756/2 741/664/2 +f 747/665/6 748/671/6 746/666/6 +f 754/668/4 756/688/4 755/669/4 +f 748/671/4 752/676/4 751/672/4 +f 745/673/5 750/678/5 749/674/5 +f 747/675/2 749/674/2 752/676/2 +f 746/677/1 751/2757/1 750/678/1 +f 760/679/4 764/702/4 761/680/4 +f 756/682/2 760/679/2 757/681/2 +f 753/684/1 758/695/1 759/685/1 +f 754/668/6 759/697/6 760/687/6 +f 755/689/3 757/698/3 758/690/3 +f 763/692/6 767/2758/6 768/693/6 +f 758/695/4 762/704/4 763/696/4 +f 759/697/4 763/692/4 764/694/4 +f 757/698/4 761/700/4 762/699/4 +f 761/700/3 765/2759/3 766/701/3 +f 764/702/2 768/2760/2 765/703/2 +f 762/704/1 766/2761/1 767/705/1 +f 844/706/11 914/2762/11 906/707/11 +f 905/709/12 913/2763/12 843/710/12 +f 860/708/2 906/2764/2 905/712/2 +f 913/713/1 914/2765/1 844/706/1 +f 862/714/2 863/722/2 908/715/2 +f 846/717/1 915/2766/1 916/718/1 +f 862/714/13 907/2767/13 915/720/13 +f 916/721/14 908/2768/14 863/722/14 +f 917/723/1 918/2769/1 852/724/1 +f 868/726/2 910/2770/2 909/727/2 +f 852/724/15 918/2771/15 910/729/15 +f 867/728/16 909/2772/16 917/730/16 +f 870/731/2 871/738/2 912/732/2 +f 854/734/1 919/2773/1 920/735/1 +f 920/737/17 912/2774/17 871/738/17 +f 870/731/18 911/2775/18 919/739/18 +f 959/740/4 971/2776/4 970/741/4 +f 960/743/4 972/2777/4 971/744/4 +f 961/746/4 973/2778/4 972/747/4 +f 962/749/4 974/2779/4 973/750/4 +f 962/752/4 963/2780/4 975/753/4 +f 964/755/4 976/2781/4 975/756/4 +f 964/758/4 965/2782/4 977/759/4 +f 965/761/4 966/2783/4 978/762/4 +f 967/764/4 979/2784/4 978/765/4 +f 968/767/4 980/2785/4 979/768/4 +f 968/770/4 957/2786/4 969/771/4 +f 957/773/4 958/2787/4 970/774/4 +f 982/777/4 981/2788/4 985/778/4 +f 981/2788/4 983/2789/4 985/778/4 +f 983/2789/4 984/2790/4 985/778/4 +f 985/778/4 986/2791/4 987/2792/4 +f 987/2792/4 988/2793/4 989/2794/4 +f 989/2794/4 990/2795/4 991/776/4 +f 991/776/4 992/2796/4 982/777/4 +f 985/778/4 987/2792/4 989/2794/4 +f 989/2794/4 991/776/4 985/778/4 +f 998/779/5 997/2797/5 1009/780/5 +f 1004/782/5 1016/2798/5 1005/783/5 +f 994/785/5 1006/2799/5 1007/786/5 +f 1002/788/5 1001/2800/5 1013/789/5 +f 998/791/5 1010/2801/5 1011/792/5 +f 996/794/5 995/2802/5 1007/795/5 +f 1002/797/5 1014/2803/5 1015/798/5 +f 999/800/5 1011/2804/5 1012/801/5 +f 996/803/5 1008/2805/5 1009/804/5 +f 1004/806/5 1003/2806/5 1015/807/5 +f 993/809/5 1005/2807/5 1006/810/5 +f 1000/812/5 1012/2808/5 1013/813/5 +f 1026/815/5 1038/2809/5 1039/816/5 +f 1023/818/5 1035/2810/5 1036/819/5 +f 1020/821/5 1032/2811/5 1033/822/5 +f 1028/824/5 1027/817/5 1039/825/5 +f 1017/827/5 1030/2812/5 1029/828/5 +f 1024/820/5 1036/2813/5 1037/830/5 +f 1022/832/5 1021/823/5 1033/833/5 +f 1028/824/5 1040/2814/5 1030/835/5 +f 1018/829/5 1029/2815/5 1031/836/5 +f 1026/838/5 1025/831/5 1037/839/5 +f 1022/832/5 1034/2816/5 1035/841/5 +f 1020/821/5 1019/837/5 1031/842/5 +f 1043/2817/5 1041/2818/5 1042/844/5 +f 1042/844/5 1052/2819/5 1051/845/5 +f 1051/845/5 1050/2820/5 1047/846/5 +f 1050/2820/5 1049/2821/5 1047/846/5 +f 1049/2821/5 1048/2822/5 1047/846/5 +f 1047/846/5 1046/2823/5 1045/2824/5 +f 1045/2824/5 1044/2825/5 1047/846/5 +f 1044/2825/5 1043/2817/5 1047/846/5 +f 1043/2817/5 1042/844/5 1047/846/5 +f 1069/847/2 1081/2826/2 1082/848/2 +f 1076/850/2 1088/2827/2 1077/851/2 +f 1066/853/2 1078/2828/2 1079/854/2 +f 1074/856/2 1073/875/2 1085/857/2 +f 1071/859/2 1070/849/2 1082/860/2 +f 1068/862/2 1067/855/2 1079/863/2 +f 1074/865/2 1086/2829/2 1087/866/2 +f 1071/859/2 1083/2830/2 1084/868/2 +f 1068/862/2 1080/2831/2 1081/870/2 +f 1076/850/2 1075/867/2 1087/871/2 +f 1066/853/2 1065/852/2 1077/873/2 +f 1073/875/2 1072/869/2 1084/876/2 +f 1098/878/2 1110/2832/2 1111/879/2 +f 1095/881/2 1107/2833/2 1108/882/2 +f 1092/884/2 1104/2834/2 1105/885/2 +f 1100/887/2 1099/880/2 1111/888/2 +f 1090/890/2 1089/899/2 1102/891/2 +f 1097/893/2 1096/883/2 1108/894/2 +f 1093/886/2 1105/2835/2 1106/896/2 +f 1100/887/2 1112/2836/2 1102/898/2 +f 1090/890/2 1101/2837/2 1103/900/2 +f 1098/902/2 1097/893/2 1109/903/2 +f 1095/881/2 1094/897/2 1106/905/2 +f 1092/884/2 1091/901/2 1103/907/2 +f 1115/911/2 1113/2838/2 1114/2839/2 +f 1114/2839/2 1124/2840/2 1115/911/2 +f 1124/2840/2 1123/909/2 1115/911/2 +f 1123/909/2 1122/2841/2 1119/910/2 +f 1122/2841/2 1121/2842/2 1119/910/2 +f 1121/2842/2 1120/2843/2 1119/910/2 +f 1119/910/2 1118/2844/2 1117/2845/2 +f 1117/2845/2 1116/2846/2 1119/910/2 +f 1116/2846/2 1115/911/2 1119/910/2 +f 1618/939/4 1620/951/4 1619/940/4 +f 1624/942/4 1628/965/4 1625/943/4 +f 1620/945/2 1624/942/2 1621/944/2 +f 1617/947/1 1622/958/1 1623/948/1 +f 1618/939/6 1623/960/6 1624/950/6 +f 1619/952/3 1621/961/3 1622/953/3 +f 1627/955/6 1631/2847/6 1632/956/6 +f 1622/958/4 1626/967/4 1627/959/4 +f 1623/960/4 1627/955/4 1628/957/4 +f 1621/961/4 1625/963/4 1626/962/4 +f 1625/963/3 1629/2848/3 1630/964/3 +f 1628/965/2 1632/2849/2 1629/966/2 +f 1626/967/1 1630/2850/1 1631/968/1 +f 1634/969/5 1636/981/5 1635/970/5 +f 1640/972/5 1644/995/5 1641/973/5 +f 1636/975/1 1640/972/1 1637/974/1 +f 1633/977/2 1638/988/2 1639/978/2 +f 1634/969/6 1639/990/6 1640/980/6 +f 1635/982/3 1637/991/3 1638/983/3 +f 1643/985/6 1647/2851/6 1648/986/6 +f 1638/988/5 1642/997/5 1643/989/5 +f 1639/990/5 1643/985/5 1644/987/5 +f 1637/991/5 1641/993/5 1642/992/5 +f 1641/993/3 1645/2852/3 1646/994/3 +f 1644/995/1 1648/2853/1 1645/996/1 +f 1642/997/2 1646/2854/2 1647/998/2 +f 1650/999/5 1652/1011/5 1651/1000/5 +f 1656/1002/5 1660/1025/5 1657/1003/5 +f 1652/1005/1 1656/1002/1 1653/1004/1 +f 1649/1007/2 1654/1018/2 1655/1008/2 +f 1650/999/6 1655/1020/6 1656/1010/6 +f 1651/1012/3 1653/1021/3 1654/1013/3 +f 1659/1015/6 1663/2855/6 1664/1016/6 +f 1654/1018/5 1658/1027/5 1659/1019/5 +f 1655/1020/5 1659/1015/5 1660/1017/5 +f 1653/1021/5 1657/1023/5 1658/1022/5 +f 1657/1023/3 1661/2856/3 1662/1024/3 +f 1660/1025/1 1664/2857/1 1661/1026/1 +f 1658/1027/2 1662/2858/2 1663/1028/2 +f 1667/1029/6 1668/1040/6 1666/1030/6 +f 1669/1032/3 1673/1055/3 1676/1033/3 +f 1667/1035/2 1669/1032/2 1672/1034/2 +f 1666/1037/1 1671/1048/1 1670/1038/1 +f 1668/1040/4 1672/1050/4 1671/1041/4 +f 1665/1042/5 1670/1051/5 1669/1043/5 +f 1676/1045/4 1680/2859/4 1679/1046/4 +f 1671/1048/3 1675/1057/3 1674/1049/3 +f 1672/1050/3 1676/1045/3 1675/1047/3 +f 1670/1051/3 1674/1053/3 1673/1052/3 +f 1674/1053/5 1678/2860/5 1677/1054/5 +f 1673/1055/2 1677/2861/2 1680/1056/2 +f 1675/1057/1 1679/2862/1 1678/1058/1 +f 1683/1059/6 1684/1070/6 1682/1060/6 +f 1685/1062/3 1689/1085/3 1692/1063/3 +f 1683/1065/2 1685/1062/2 1688/1064/2 +f 1682/1067/1 1687/1078/1 1686/1068/1 +f 1684/1070/4 1688/1080/4 1687/1071/4 +f 1681/1072/5 1686/1081/5 1685/1073/5 +f 1692/1075/4 1696/2863/4 1695/1076/4 +f 1687/1078/3 1691/1087/3 1690/1079/3 +f 1688/1080/3 1692/1075/3 1691/1077/3 +f 1686/1081/3 1690/1083/3 1689/1082/3 +f 1690/1083/5 1694/2864/5 1693/1084/5 +f 1689/1085/2 1693/2865/2 1696/1086/2 +f 1691/1087/1 1695/2866/1 1694/1088/1 +f 1699/1089/6 1700/1100/6 1698/1090/6 +f 1701/1092/3 1705/1115/3 1708/1093/3 +f 1699/1095/2 1701/1092/2 1704/1094/2 +f 1698/1097/1 1703/1108/1 1702/1098/1 +f 1700/1100/4 1704/1110/4 1703/1101/4 +f 1697/1102/5 1702/1111/5 1701/1103/5 +f 1708/1105/4 1712/2867/4 1711/1106/4 +f 1703/1108/3 1707/1117/3 1706/1109/3 +f 1704/1110/3 1708/1105/3 1707/1107/3 +f 1702/1111/3 1706/1113/3 1705/1112/3 +f 1706/1113/5 1710/2868/5 1709/1114/5 +f 1705/1115/2 1709/2869/2 1712/1116/2 +f 1707/1117/1 1711/2870/1 1710/1118/1 +f 1715/1119/6 1716/1130/6 1714/1120/6 +f 1717/1122/3 1721/1145/3 1724/1123/3 +f 1715/1125/2 1717/1122/2 1720/1124/2 +f 1714/1127/1 1719/1138/1 1718/1128/1 +f 1716/1130/4 1720/1140/4 1719/1131/4 +f 1713/1132/5 1718/1141/5 1717/1133/5 +f 1724/1135/4 1728/2871/4 1727/1136/4 +f 1719/1138/3 1723/1147/3 1722/1139/3 +f 1720/1140/3 1724/1135/3 1723/1137/3 +f 1718/1141/3 1722/1143/3 1721/1142/3 +f 1722/1143/5 1726/2872/5 1725/1144/5 +f 1721/1145/2 1725/2873/2 1728/1146/2 +f 1723/1147/1 1727/2874/1 1726/1148/1 +f 1731/1149/6 1732/1160/6 1730/1150/6 +f 1733/1152/3 1737/1175/3 1740/1153/3 +f 1731/1155/2 1733/1152/2 1736/1154/2 +f 1730/1157/1 1735/1168/1 1734/1158/1 +f 1732/1160/4 1736/1170/4 1735/1161/4 +f 1729/1162/5 1734/1171/5 1733/1163/5 +f 1740/1165/4 1744/2875/4 1743/1166/4 +f 1735/1168/3 1739/1177/3 1738/1169/3 +f 1736/1170/3 1740/1165/3 1739/1167/3 +f 1734/1171/3 1738/1173/3 1737/1172/3 +f 1738/1173/5 1742/2876/5 1741/1174/5 +f 1737/1175/2 1741/2877/2 1744/1176/2 +f 1739/1177/1 1743/2878/1 1742/1178/1 +f 1747/1179/6 1748/1190/6 1746/1180/6 +f 1749/1182/3 1753/1205/3 1756/1183/3 +f 1747/1185/2 1749/1182/2 1752/1184/2 +f 1746/1187/1 1751/1198/1 1750/1188/1 +f 1748/1190/4 1752/1200/4 1751/1191/4 +f 1745/1192/5 1750/1201/5 1749/1193/5 +f 1756/1195/4 1760/2879/4 1759/1196/4 +f 1751/1198/3 1755/1207/3 1754/1199/3 +f 1752/1200/3 1756/1195/3 1755/1197/3 +f 1750/1201/3 1754/1203/3 1753/1202/3 +f 1754/1203/5 1758/2880/5 1757/1204/5 +f 1753/1205/2 1757/2881/2 1760/1206/2 +f 1755/1207/1 1759/2882/1 1758/1208/1 +f 1763/1209/6 1764/1220/6 1762/1210/6 +f 1765/1212/3 1769/1235/3 1772/1213/3 +f 1763/1215/2 1765/1212/2 1768/1214/2 +f 1762/1217/1 1767/1228/1 1766/1218/1 +f 1764/1220/4 1768/1230/4 1767/1221/4 +f 1761/1222/5 1766/1231/5 1765/1223/5 +f 1772/1225/4 1776/2883/4 1775/1226/4 +f 1767/1228/3 1771/1237/3 1770/1229/3 +f 1768/1230/3 1772/1225/3 1771/1227/3 +f 1766/1231/3 1770/1233/3 1769/1232/3 +f 1770/1233/5 1774/2884/5 1773/1234/5 +f 1769/1235/2 1773/2885/2 1776/1236/2 +f 1771/1237/1 1775/2886/1 1774/1238/1 +f 1779/1239/6 1780/1250/6 1778/1240/6 +f 1781/1242/3 1785/1265/3 1788/1243/3 +f 1779/1245/2 1781/1242/2 1784/1244/2 +f 1778/1247/1 1783/1258/1 1782/1248/1 +f 1780/1250/4 1784/1260/4 1783/1251/4 +f 1777/1252/5 1782/1261/5 1781/1253/5 +f 1788/1255/4 1792/2887/4 1791/1256/4 +f 1783/1258/3 1787/1267/3 1786/1259/3 +f 1784/1260/3 1788/1255/3 1787/1257/3 +f 1782/1261/3 1786/1263/3 1785/1262/3 +f 1786/1263/5 1790/2888/5 1789/1264/5 +f 1785/1265/2 1789/2889/2 1792/1266/2 +f 1787/1267/1 1791/2890/1 1790/1268/1 +f 1795/1269/6 1796/1280/6 1794/1270/6 +f 1797/1272/3 1801/1295/3 1804/1273/3 +f 1795/1275/2 1797/1272/2 1800/1274/2 +f 1794/1277/1 1799/1288/1 1798/1278/1 +f 1796/1280/4 1800/1290/4 1799/1281/4 +f 1793/1282/5 1798/1291/5 1797/1283/5 +f 1804/1285/4 1808/2891/4 1807/1286/4 +f 1799/1288/3 1803/1297/3 1802/1289/3 +f 1800/1290/3 1804/1285/3 1803/1287/3 +f 1798/1291/3 1802/1293/3 1801/1292/3 +f 1802/1293/5 1806/2892/5 1805/1294/5 +f 1801/1295/2 1805/2893/2 1808/1296/2 +f 1803/1297/1 1807/2894/1 1806/1298/1 +f 1811/1299/6 1812/1310/6 1810/1300/6 +f 1813/1302/3 1817/1325/3 1820/1303/3 +f 1811/1305/2 1813/1302/2 1816/1304/2 +f 1810/1307/1 1815/1318/1 1814/1308/1 +f 1812/1310/4 1816/1320/4 1815/1311/4 +f 1809/1312/5 1814/1321/5 1813/1313/5 +f 1820/1315/4 1824/2895/4 1823/1316/4 +f 1815/1318/3 1819/1327/3 1818/1319/3 +f 1816/1320/3 1820/1315/3 1819/1317/3 +f 1814/1321/3 1818/1323/3 1817/1322/3 +f 1818/1323/5 1822/2896/5 1821/1324/5 +f 1817/1325/2 1821/2897/2 1824/1326/2 +f 1819/1327/1 1823/2898/1 1822/1328/1 +f 1827/1329/6 1828/1340/6 1826/1330/6 +f 1829/1332/3 1833/1355/3 1836/1333/3 +f 1827/1335/2 1829/1332/2 1832/1334/2 +f 1826/1337/1 1831/1348/1 1830/1338/1 +f 1828/1340/4 1832/1350/4 1831/1341/4 +f 1825/1342/5 1830/1351/5 1829/1343/5 +f 1836/1345/4 1840/2899/4 1839/1346/4 +f 1831/1348/3 1835/1357/3 1834/1349/3 +f 1832/1350/3 1836/1345/3 1835/1347/3 +f 1830/1351/3 1834/1353/3 1833/1352/3 +f 1834/1353/5 1838/2900/5 1837/1354/5 +f 1833/1355/2 1837/2901/2 1840/1356/2 +f 1835/1357/1 1839/2902/1 1838/1358/1 +f 1843/1359/6 1844/1370/6 1842/1360/6 +f 1845/1362/3 1849/1385/3 1852/1363/3 +f 1843/1365/2 1845/1362/2 1848/1364/2 +f 1842/1367/1 1847/1378/1 1846/1368/1 +f 1844/1370/4 1848/1380/4 1847/1371/4 +f 1841/1372/5 1846/1381/5 1845/1373/5 +f 1852/1375/4 1856/2903/4 1855/1376/4 +f 1847/1378/3 1851/1387/3 1850/1379/3 +f 1848/1380/3 1852/1375/3 1851/1377/3 +f 1846/1381/3 1850/1383/3 1849/1382/3 +f 1850/1383/5 1854/2904/5 1853/1384/5 +f 1849/1385/2 1853/2905/2 1856/1386/2 +f 1851/1387/1 1855/2906/1 1854/1388/1 +f 1859/1389/6 1860/1400/6 1858/1390/6 +f 1861/1392/3 1865/1415/3 1868/1393/3 +f 1859/1395/2 1861/1392/2 1864/1394/2 +f 1858/1397/1 1863/1408/1 1862/1398/1 +f 1860/1400/4 1864/1410/4 1863/1401/4 +f 1857/1402/5 1862/1411/5 1861/1403/5 +f 1868/1405/4 1872/2907/4 1871/1406/4 +f 1863/1408/3 1867/1417/3 1866/1409/3 +f 1864/1410/3 1868/1405/3 1867/1407/3 +f 1862/1411/3 1866/1413/3 1865/1412/3 +f 1866/1413/5 1870/2908/5 1869/1414/5 +f 1865/1415/2 1869/2909/2 1872/1416/2 +f 1867/1417/1 1871/2910/1 1870/1418/1 +f 1875/1419/6 1876/1430/6 1874/1420/6 +f 1877/1422/3 1881/1445/3 1884/1423/3 +f 1875/1425/2 1877/1422/2 1880/1424/2 +f 1874/1427/1 1879/1438/1 1878/1428/1 +f 1876/1430/4 1880/1440/4 1879/1431/4 +f 1873/1432/5 1878/1441/5 1877/1433/5 +f 1884/1435/4 1888/2911/4 1887/1436/4 +f 1879/1438/3 1883/1447/3 1882/1439/3 +f 1880/1440/3 1884/1435/3 1883/1437/3 +f 1878/1441/3 1882/1443/3 1881/1442/3 +f 1882/1443/5 1886/2912/5 1885/1444/5 +f 1881/1445/2 1885/2913/2 1888/1446/2 +f 1883/1447/1 1887/2914/1 1886/1448/1 +f 1891/1449/6 1892/1460/6 1890/1450/6 +f 1893/1452/3 1897/1475/3 1900/1453/3 +f 1891/1455/2 1893/1452/2 1896/1454/2 +f 1890/1457/1 1895/1468/1 1894/1458/1 +f 1892/1460/4 1896/1470/4 1895/1461/4 +f 1889/1462/5 1894/1471/5 1893/1463/5 +f 1900/1465/4 1904/2915/4 1903/1466/4 +f 1895/1468/3 1899/1477/3 1898/1469/3 +f 1896/1470/3 1900/1465/3 1899/1467/3 +f 1894/1471/3 1898/1473/3 1897/1472/3 +f 1898/1473/5 1902/2916/5 1901/1474/5 +f 1897/1475/2 1901/2917/2 1904/1476/2 +f 1899/1477/1 1903/2918/1 1902/1478/1 +f 1907/1479/6 1908/1490/6 1906/1480/6 +f 1909/1482/3 1913/1505/3 1916/1483/3 +f 1907/1485/2 1909/1482/2 1912/1484/2 +f 1906/1487/1 1911/1498/1 1910/1488/1 +f 1908/1490/4 1912/1500/4 1911/1491/4 +f 1905/1492/5 1910/1501/5 1909/1493/5 +f 1916/1495/4 1920/2919/4 1919/1496/4 +f 1911/1498/3 1915/1507/3 1914/1499/3 +f 1912/1500/3 1916/1495/3 1915/1497/3 +f 1910/1501/3 1914/1503/3 1913/1502/3 +f 1914/1503/5 1918/2920/5 1917/1504/5 +f 1913/1505/2 1917/2921/2 1920/1506/2 +f 1915/1507/1 1919/2922/1 1918/1508/1 +f 1923/1509/6 1924/1520/6 1922/1510/6 +f 1925/1512/3 1929/1535/3 1932/1513/3 +f 1923/1515/2 1925/1512/2 1928/1514/2 +f 1922/1517/1 1927/1528/1 1926/1518/1 +f 1924/1520/4 1928/1530/4 1927/1521/4 +f 1921/1522/5 1926/1531/5 1925/1523/5 +f 1932/1525/4 1936/2923/4 1935/1526/4 +f 1927/1528/3 1931/1537/3 1930/1529/3 +f 1928/1530/3 1932/1525/3 1931/1527/3 +f 1926/1531/3 1930/1533/3 1929/1532/3 +f 1930/1533/5 1934/2924/5 1933/1534/5 +f 1929/1535/2 1933/2925/2 1936/1536/2 +f 1931/1537/1 1935/2926/1 1934/1538/1 +f 2019/1540/5 2020/2927/5 2016/1541/5 +f 2020/2927/5 2018/2928/5 2016/1541/5 +f 2018/2928/5 2017/2929/5 2016/1541/5 +f 2016/1541/5 2015/2930/5 2014/2931/5 +f 2014/2931/5 2013/2932/5 2012/2933/5 +f 2012/2933/5 2011/2934/5 2010/1539/5 +f 2010/1539/5 2009/2935/5 2019/1540/5 +f 2016/1541/5 2014/2931/5 2012/2933/5 +f 2012/2933/5 2010/1539/5 2016/1541/5 +f 2044/1542/5 2043/2936/5 2031/1543/5 +f 2044/1545/5 2032/2937/5 2021/1546/5 +f 2033/1548/5 2021/2938/5 2022/1549/5 +f 2035/1551/5 2034/2939/5 2022/1552/5 +f 2036/1554/5 2035/2940/5 2023/1555/5 +f 2037/1557/5 2036/2941/5 2024/1558/5 +f 2037/1560/5 2025/2942/5 2026/1561/5 +f 2039/1563/5 2038/2943/5 2026/1564/5 +f 2039/1566/5 2027/2944/5 2028/1567/5 +f 2040/1569/5 2028/2945/5 2029/1570/5 +f 2041/1572/5 2029/2946/5 2030/1573/5 +f 2042/1575/5 2030/2947/5 2031/1576/5 +f 2190/1578/39 2191/2948/39 2203/1579/39 +f 2192/1581/39 2204/2949/39 2203/1582/39 +f 2193/1584/39 2205/2950/39 2204/1585/39 +f 2194/1587/39 2206/2951/39 2205/1588/39 +f 2194/1590/39 2195/2952/39 2207/1591/39 +f 2196/1593/39 2208/2953/39 2207/1594/39 +f 2196/1596/39 2197/2954/39 2209/1597/39 +f 2197/1599/39 2198/2955/39 2210/1600/39 +f 2198/1602/39 2199/2956/39 2211/1603/39 +f 2199/1605/39 2200/2957/39 2212/1606/39 +f 2189/1608/39 2201/2958/39 2212/1609/39 +f 2189/1611/39 2190/2959/39 2202/1612/39 +f 2214/1616/39 2213/2960/39 2215/2961/39 +f 2215/2961/39 2216/2962/39 2217/1614/39 +f 2217/1614/39 2218/2963/39 2219/2964/39 +f 2219/2964/39 2220/2965/39 2217/1614/39 +f 2220/2965/39 2221/1615/39 2217/1614/39 +f 2221/1615/39 2222/2966/39 2214/1616/39 +f 2222/2966/39 2223/2967/39 2214/1616/39 +f 2223/2967/39 2224/2968/39 2214/1616/39 +f 2214/1616/39 2215/2961/39 2217/1614/39 +f 2230/1617/40 2229/2969/40 2241/1618/40 +f 2225/1620/40 2236/2970/40 2248/1621/40 +f 2226/1623/40 2238/2971/40 2239/1624/40 +f 2234/1626/40 2233/2972/40 2245/1627/40 +f 2231/1629/40 2230/2973/40 2242/1630/40 +f 2227/1632/40 2239/2974/40 2240/1633/40 +f 2234/1635/40 2246/2975/40 2247/1636/40 +f 2232/1638/40 2231/2976/40 2243/1639/40 +f 2228/1641/40 2240/2977/40 2241/1642/40 +f 2236/1644/40 2235/2978/40 2247/1645/40 +f 2225/1647/40 2237/2979/40 2238/1648/40 +f 2232/1650/40 2244/2980/40 2245/1651/40 +f 2258/1653/40 2270/2981/40 2271/1654/40 +f 2255/1656/40 2267/2982/40 2268/1657/40 +f 2253/1659/40 2252/1679/40 2264/1660/40 +f 2259/1655/40 2271/2983/40 2272/1662/40 +f 2249/1664/40 2262/2984/40 2261/1665/40 +f 2256/1658/40 2268/2985/40 2269/1667/40 +f 2254/1669/40 2253/1659/40 2265/1670/40 +f 2260/1663/40 2272/2986/40 2262/1672/40 +f 2250/1666/40 2261/2987/40 2263/1673/40 +f 2258/1675/40 2257/1668/40 2269/1676/40 +f 2254/1669/40 2266/2988/40 2267/1678/40 +f 2252/1679/40 2251/1674/40 2263/1680/40 +f 2275/1684/40 2273/2989/40 2274/2990/40 +f 2274/2990/40 2284/2991/40 2283/2992/40 +f 2283/2992/40 2282/2993/40 2279/1682/40 +f 2282/2993/40 2281/2994/40 2279/1682/40 +f 2281/2994/40 2280/2995/40 2279/1682/40 +f 2279/1682/40 2278/2996/40 2277/1683/40 +f 2277/1683/40 2276/2997/40 2275/1684/40 +f 2275/1684/40 2274/2990/40 2279/1682/40 +f 2274/2990/40 2283/2992/40 2279/1682/40 +f 2323/1685/41 2335/2998/41 2334/1686/41 +f 2324/1688/41 2336/2999/41 2335/1689/41 +f 2325/1691/41 2337/3000/41 2336/1692/41 +f 2326/1694/41 2338/3001/41 2337/1695/41 +f 2326/1697/41 2327/3002/41 2339/1698/41 +f 2328/1700/41 2340/3003/41 2339/1701/41 +f 2328/1703/41 2329/3004/41 2341/1704/41 +f 2329/1706/41 2330/3005/41 2342/1707/41 +f 2330/1709/41 2331/3006/41 2343/1710/41 +f 2331/1712/41 2332/3007/41 2344/1713/41 +f 2332/1715/41 2321/3008/41 2333/1716/41 +f 2321/1718/41 2322/3009/41 2334/1719/41 +f 2346/1722/41 2345/3010/41 2347/3011/41 +f 2347/3011/41 2348/3012/41 2349/1723/41 +f 2349/1723/41 2350/3013/41 2351/3014/41 +f 2351/3014/41 2352/3015/41 2349/1723/41 +f 2352/3015/41 2353/3016/41 2349/1723/41 +f 2353/3016/41 2354/3017/41 2355/1721/41 +f 2355/1721/41 2356/3018/41 2346/1722/41 +f 2346/1722/41 2347/3011/41 2349/1723/41 +f 2353/3016/41 2355/1721/41 2349/1723/41 +f 2362/1724/42 2361/3019/42 2373/1725/42 +f 2357/1727/42 2368/3020/42 2380/1728/42 +f 2358/1730/42 2370/3021/42 2371/1731/42 +f 2366/1733/42 2365/3022/42 2377/1734/42 +f 2363/1736/42 2362/3023/42 2374/1737/42 +f 2360/1739/42 2359/3024/42 2371/1740/42 +f 2366/1742/42 2378/3025/42 2379/1743/42 +f 2363/1745/42 2375/3026/42 2376/1746/42 +f 2360/1748/42 2372/3027/42 2373/1749/42 +f 2368/1751/42 2367/3028/42 2379/1752/42 +f 2357/1754/42 2369/3029/42 2370/1755/42 +f 2364/1757/42 2376/3030/42 2377/1758/42 +f 2390/1760/42 2402/3031/42 2403/1761/42 +f 2387/1763/42 2399/3032/42 2400/1764/42 +f 2384/1766/42 2396/3033/42 2397/1767/42 +f 2391/1762/42 2403/3034/42 2404/1769/42 +f 2381/1771/42 2394/3035/42 2393/1772/42 +f 2388/1765/42 2400/3036/42 2401/1774/42 +f 2386/1776/42 2385/1768/42 2397/1777/42 +f 2392/1770/42 2404/3037/42 2394/1779/42 +f 2382/1773/42 2393/3038/42 2395/1780/42 +f 2390/1782/42 2389/1775/42 2401/1783/42 +f 2387/1763/42 2386/1776/42 2398/1785/42 +f 2384/1766/42 2383/1781/42 2395/1787/42 +f 2407/1791/42 2405/3039/42 2406/3040/42 +f 2406/3040/42 2416/3041/42 2407/1791/42 +f 2416/3041/42 2415/1789/42 2407/1791/42 +f 2415/1789/42 2414/3042/42 2411/1790/42 +f 2414/3042/42 2413/3043/42 2411/1790/42 +f 2413/3043/42 2412/3044/42 2411/1790/42 +f 2411/1790/42 2410/3045/42 2409/3046/42 +f 2409/3046/42 2408/3047/42 2411/1790/42 +f 2408/3047/42 2407/1791/42 2411/1790/42 +f 2455/1792/43 2467/3048/43 2466/1793/43 +f 2456/1795/43 2468/3049/43 2467/1796/43 +f 2457/1798/43 2469/3050/43 2468/1799/43 +f 2458/1801/43 2470/3051/43 2469/1802/43 +f 2459/1804/43 2471/3052/43 2470/1805/43 +f 2460/1807/43 2472/3053/43 2471/1808/43 +f 2460/1810/43 2461/3054/43 2473/1811/43 +f 2461/1813/43 2462/3055/43 2474/1814/43 +f 2462/1816/43 2463/3056/43 2475/1817/43 +f 2464/1819/43 2476/3057/43 2475/1820/43 +f 2464/1822/43 2453/3058/43 2465/1823/43 +f 2453/1825/43 2454/3059/43 2466/1826/43 +f 2478/3060/43 2477/3061/43 2479/1828/43 +f 2479/1828/43 2480/3062/43 2481/1829/43 +f 2481/1829/43 2482/3063/43 2483/3064/43 +f 2483/3064/43 2484/3065/43 2481/1829/43 +f 2484/3065/43 2485/1830/43 2481/1829/43 +f 2485/1830/43 2486/3066/43 2478/3060/43 +f 2486/3066/43 2487/3067/43 2478/3060/43 +f 2487/3067/43 2488/3068/43 2478/3060/43 +f 2478/3060/43 2479/1828/43 2485/1830/43 +f 2493/1831/44 2505/3069/44 2506/1832/44 +f 2500/1834/44 2512/3070/44 2501/1835/44 +f 2491/1837/44 2490/3071/44 2502/1838/44 +f 2498/1840/44 2497/3072/44 2509/1841/44 +f 2494/1843/44 2506/3073/44 2507/1844/44 +f 2492/1846/44 2491/3074/44 2503/1847/44 +f 2498/1849/44 2510/3075/44 2511/1850/44 +f 2496/1852/44 2495/3076/44 2507/1853/44 +f 2493/1855/44 2492/3077/44 2504/1856/44 +f 2500/1858/44 2499/3078/44 2511/1859/44 +f 2490/1861/44 2489/3079/44 2501/1862/44 +f 2497/1864/44 2496/3080/44 2508/1865/44 +f 2523/1867/44 2522/3081/44 2534/1868/44 +f 2519/1870/44 2531/3082/44 2532/1871/44 +f 2517/1873/44 2516/1896/44 2528/1874/44 +f 2524/1876/44 2523/1867/44 2535/1877/44 +f 2514/1879/44 2513/1888/44 2526/1880/44 +f 2520/1872/44 2532/3083/44 2533/1882/44 +f 2518/1884/44 2517/1873/44 2529/1885/44 +f 2524/1876/44 2536/3084/44 2526/1887/44 +f 2514/1879/44 2525/3085/44 2527/1889/44 +f 2522/1891/44 2521/1883/44 2533/1892/44 +f 2518/1884/44 2530/3086/44 2531/1894/44 +f 2515/1890/44 2527/3087/44 2528/1895/44 +f 2539/1898/44 2537/3088/44 2547/1899/44 +f 2537/3088/44 2538/3089/44 2547/1899/44 +f 2538/3089/44 2548/3090/44 2547/1899/44 +f 2547/1899/44 2546/3091/44 2543/3092/44 +f 2546/3091/44 2545/3093/44 2543/3092/44 +f 2545/3093/44 2544/3094/44 2543/3092/44 +f 2543/3092/44 2542/3095/44 2541/1897/44 +f 2541/1897/44 2540/3096/44 2539/1898/44 +f 2543/3092/44 2541/1897/44 2547/1899/44 +f 2586/1900/45 2587/3097/45 2599/1901/45 +f 2588/1903/45 2600/3098/45 2599/1904/45 +f 2589/1906/45 2601/3099/45 2600/1907/45 +f 2590/1909/45 2602/3100/45 2601/1910/45 +f 2590/1912/45 2591/3101/45 2603/1913/45 +f 2592/1915/45 2604/3102/45 2603/1916/45 +f 2592/1918/45 2593/3103/45 2605/1919/45 +f 2593/1921/45 2594/3104/45 2606/1922/45 +f 2595/1924/45 2607/3105/45 2606/1925/45 +f 2596/1927/45 2608/3106/45 2607/1928/45 +f 2585/1930/45 2597/3107/45 2608/1931/45 +f 2585/1933/45 2586/3108/45 2598/1934/45 +f 2610/3109/45 2609/3110/45 2611/1936/45 +f 2611/1936/45 2612/3111/45 2613/1937/45 +f 2613/1937/45 2614/3112/45 2615/3113/45 +f 2615/3113/45 2616/3114/45 2613/1937/45 +f 2616/3114/45 2617/1938/45 2613/1937/45 +f 2617/1938/45 2618/3115/45 2619/3116/45 +f 2619/3116/45 2620/3117/45 2617/1938/45 +f 2620/3117/45 2610/3109/45 2617/1938/45 +f 2610/3109/45 2611/1936/45 2617/1938/45 +f 2626/1939/46 2625/3118/46 2637/1940/46 +f 2621/1942/46 2632/3119/46 2644/1943/46 +f 2623/1945/46 2622/3120/46 2634/1946/46 +f 2630/1948/46 2629/3121/46 2641/1949/46 +f 2627/1951/46 2626/3122/46 2638/1952/46 +f 2623/1954/46 2635/3123/46 2636/1955/46 +f 2630/1957/46 2642/3124/46 2643/1958/46 +f 2627/1960/46 2639/3125/46 2640/1961/46 +f 2624/1963/46 2636/3126/46 2637/1964/46 +f 2632/1966/46 2631/3127/46 2643/1967/46 +f 2621/1969/46 2633/3128/46 2634/1970/46 +f 2628/1972/46 2640/3129/46 2641/1973/46 +f 2654/1975/46 2666/3130/46 2667/1976/46 +f 2651/1978/46 2663/3131/46 2664/1979/46 +f 2648/1981/46 2660/3132/46 2661/1982/46 +f 2656/1984/46 2655/1977/46 2667/1985/46 +f 2646/1987/46 2645/1996/46 2658/1988/46 +f 2652/1980/46 2664/3133/46 2665/1990/46 +f 2650/1992/46 2649/1983/46 2661/1993/46 +f 2656/1984/46 2668/3134/46 2658/1995/46 +f 2646/1987/46 2657/3135/46 2659/1997/46 +f 2654/1999/46 2653/1991/46 2665/2000/46 +f 2651/1978/46 2650/1992/46 2662/2002/46 +f 2647/1998/46 2659/3136/46 2660/2004/46 +f 2671/3137/46 2669/3138/46 2670/2005/46 +f 2670/2005/46 2680/3139/46 2679/2006/46 +f 2679/2006/46 2678/3140/46 2675/2007/46 +f 2678/3140/46 2677/3141/46 2675/2007/46 +f 2677/3141/46 2676/3142/46 2675/2007/46 +f 2675/2007/46 2674/3143/46 2673/3144/46 +f 2673/3144/46 2672/3145/46 2675/2007/46 +f 2672/3145/46 2671/3137/46 2675/2007/46 +f 2671/3137/46 2670/2005/46 2675/2007/46 +f 2686/2008/4 2685/3146/4 2697/2009/4 +f 2692/2011/4 2704/3147/4 2693/2012/4 +f 2682/2014/4 2694/3148/4 2695/2015/4 +f 2690/2017/4 2689/3149/4 2701/2018/4 +f 2686/2020/4 2698/3150/4 2699/2021/4 +f 2684/2023/4 2683/3151/4 2695/2024/4 +f 2690/2026/4 2702/3152/4 2703/2027/4 +f 2688/2029/4 2687/3153/4 2699/2030/4 +f 2684/2032/4 2696/3154/4 2697/2033/4 +f 2692/2035/4 2691/3155/4 2703/2036/4 +f 2681/2038/4 2693/3156/4 2694/2039/4 +f 2688/2041/4 2700/3157/4 2701/2042/4 +f 2714/2044/4 2726/3158/4 2727/2045/4 +f 2712/2047/4 2711/2071/4 2723/2048/4 +f 2708/2050/4 2720/3159/4 2721/2051/4 +f 2716/2053/4 2715/2046/4 2727/2054/4 +f 2705/2056/4 2718/3160/4 2717/2057/4 +f 2712/2047/4 2724/3161/4 2725/2059/4 +f 2710/2061/4 2709/2052/4 2721/2062/4 +f 2716/2053/4 2728/3162/4 2718/2064/4 +f 2706/2058/4 2717/3163/4 2719/2065/4 +f 2714/2067/4 2713/2060/4 2725/2068/4 +f 2710/2061/4 2722/3164/4 2723/2070/4 +f 2708/2050/4 2707/2066/4 2719/2072/4 +f 2731/2076/4 2729/3165/4 2730/3166/4 +f 2730/3166/4 2740/3167/4 2731/2076/4 +f 2740/3167/4 2739/2074/4 2731/2076/4 +f 2739/2074/4 2738/3168/4 2735/2075/4 +f 2738/3168/4 2737/3169/4 2735/2075/4 +f 2737/3169/4 2736/3170/4 2735/2075/4 +f 2735/2075/4 2734/3171/4 2733/3172/4 +f 2733/3172/4 2732/3173/4 2735/2075/4 +f 2732/3173/4 2731/2076/4 2735/2075/4 +f 2757/2077/1 2769/3174/1 2770/2078/1 +f 2764/2080/1 2776/3175/1 2765/2081/1 +f 2754/2083/1 2766/3176/1 2767/2084/1 +f 2762/2086/1 2761/2105/1 2773/2087/1 +f 2759/2089/1 2758/2079/1 2770/2090/1 +f 2756/2092/1 2755/2085/1 2767/2093/1 +f 2762/2095/1 2774/3177/1 2775/2096/1 +f 2759/2089/1 2771/3178/1 2772/2098/1 +f 2756/2092/1 2768/3179/1 2769/2100/1 +f 2764/2080/1 2763/2097/1 2775/2101/1 +f 2754/2083/1 2753/2082/1 2765/2103/1 +f 2761/2105/1 2760/2099/1 2772/2106/1 +f 2786/2108/1 2798/3180/1 2799/2109/1 +f 2783/2111/1 2795/3181/1 2796/2112/1 +f 2780/2114/1 2792/3182/1 2793/2115/1 +f 2788/2117/1 2787/2110/1 2799/2118/1 +f 2778/2120/1 2777/2129/1 2790/2121/1 +f 2785/2123/1 2784/2113/1 2796/2124/1 +f 2781/2116/1 2793/3183/1 2794/2126/1 +f 2788/2117/1 2800/3184/1 2790/2128/1 +f 2778/2120/1 2789/3185/1 2791/2130/1 +f 2786/2132/1 2785/2123/1 2797/2133/1 +f 2783/2111/1 2782/2127/1 2794/2135/1 +f 2780/2114/1 2779/2131/1 2791/2137/1 +f 2803/2141/1 2801/3186/1 2802/3187/1 +f 2802/3187/1 2812/3188/1 2803/2141/1 +f 2812/3188/1 2811/2139/1 2803/2141/1 +f 2811/2139/1 2810/3189/1 2807/2140/1 +f 2810/3189/1 2809/3190/1 2807/2140/1 +f 2809/3190/1 2808/3191/1 2807/2140/1 +f 2807/2140/1 2806/3192/1 2805/3193/1 +f 2805/3193/1 2804/3194/1 2807/2140/1 +f 2804/3194/1 2803/2141/1 2807/2140/1 +f 2922/2142/44 2923/3195/44 2935/2143/44 +f 2924/2145/44 2936/3196/44 2935/2146/44 +f 2925/2148/44 2937/3197/44 2936/2149/44 +f 2926/2151/44 2938/3198/44 2937/2152/44 +f 2926/2154/44 2927/3199/44 2939/2155/44 +f 2928/2157/44 2940/3200/44 2939/2158/44 +f 2928/2160/44 2929/3201/44 2941/2161/44 +f 2929/2163/44 2930/3202/44 2942/2164/44 +f 2931/2166/44 2943/3203/44 2942/2167/44 +f 2932/2169/44 2944/3204/44 2943/2170/44 +f 2932/2172/44 2921/3205/44 2933/2173/44 +f 2921/2175/44 2922/3206/44 2934/2176/44 +f 2946/2179/44 2945/3207/44 2949/2180/44 +f 2945/3207/44 2947/3208/44 2949/2180/44 +f 2947/3208/44 2948/3209/44 2949/2180/44 +f 2949/2180/44 2950/3210/44 2951/3211/44 +f 2951/3211/44 2952/3212/44 2949/2180/44 +f 2952/3212/44 2953/3213/44 2949/2180/44 +f 2953/3213/44 2954/3214/44 2955/2178/44 +f 2955/2178/44 2956/3215/44 2946/2179/44 +f 2953/3213/44 2955/2178/44 2949/2180/44 +f 2962/2181/43 2961/3216/43 2973/2182/43 +f 2968/2184/43 2980/3217/43 2969/2185/43 +f 2958/2187/43 2970/3218/43 2971/2188/43 +f 2966/2190/43 2965/3219/43 2977/2191/43 +f 2963/2193/43 2962/3220/43 2974/2194/43 +f 2960/2196/43 2959/3221/43 2971/2197/43 +f 2966/2199/43 2978/3222/43 2979/2200/43 +f 2964/2202/43 2963/3223/43 2975/2203/43 +f 2960/2205/43 2972/3224/43 2973/2206/43 +f 2968/2208/43 2967/3225/43 2979/2209/43 +f 2957/2211/43 2969/3226/43 2970/2212/43 +f 2965/2214/43 2964/3227/43 2976/2215/43 +f 2991/2217/43 2990/3228/43 3002/2218/43 +f 2988/2220/43 2987/2242/43 2999/2221/43 +f 2985/2223/43 2984/2244/43 2996/2224/43 +f 2991/2217/43 3003/3229/43 3004/2226/43 +f 2981/2228/43 2994/3230/43 2993/2229/43 +f 2988/2220/43 3000/3231/43 3001/2231/43 +f 2985/2223/43 2997/3232/43 2998/2233/43 +f 2992/2227/43 3004/3233/43 2994/2235/43 +f 2982/2230/43 2993/3234/43 2995/2236/43 +f 2990/2238/43 2989/2232/43 3001/2239/43 +f 2986/2234/43 2998/3235/43 2999/2241/43 +f 2983/2237/43 2995/3236/43 2996/2243/43 +f 3007/2247/43 3005/3237/43 3006/3238/43 +f 3006/3238/43 3016/3239/43 3007/2247/43 +f 3016/3239/43 3015/3240/43 3007/2247/43 +f 3015/3240/43 3014/3241/43 3013/2245/43 +f 3013/2245/43 3012/3242/43 3011/2246/43 +f 3011/2246/43 3010/3243/43 3007/2247/43 +f 3010/3243/43 3009/3244/43 3007/2247/43 +f 3009/3244/43 3008/3245/43 3007/2247/43 +f 3015/3240/43 3013/2245/43 3007/2247/43 +f 3055/2248/46 3067/3246/46 3066/2249/46 +f 3056/2251/46 3068/3247/46 3067/2252/46 +f 3057/2254/46 3069/3248/46 3068/2255/46 +f 3058/2257/46 3070/3249/46 3069/2258/46 +f 3058/2260/46 3059/3250/46 3071/2261/46 +f 3060/2263/46 3072/3251/46 3071/2264/46 +f 3060/2266/46 3061/3252/46 3073/2267/46 +f 3061/2269/46 3062/3253/46 3074/2270/46 +f 3062/2272/46 3063/3254/46 3075/2273/46 +f 3064/2275/46 3076/3255/46 3075/2276/46 +f 3064/2278/46 3053/3256/46 3065/2279/46 +f 3054/2281/46 3066/3257/46 3065/2282/46 +f 3078/2285/46 3077/3258/46 3081/2286/46 +f 3077/3258/46 3079/3259/46 3081/2286/46 +f 3079/3259/46 3080/3260/46 3081/2286/46 +f 3081/2286/46 3082/3261/46 3083/3262/46 +f 3083/3262/46 3084/3263/46 3081/2286/46 +f 3084/3263/46 3085/3264/46 3081/2286/46 +f 3085/3264/46 3086/3265/46 3087/2284/46 +f 3087/2284/46 3088/3266/46 3078/2285/46 +f 3085/3264/46 3087/2284/46 3081/2286/46 +f 3093/2287/45 3105/3267/45 3106/2288/45 +f 3089/2290/45 3100/3268/45 3112/2291/45 +f 3090/2293/45 3102/3269/45 3103/2294/45 +f 3097/2296/45 3109/3270/45 3110/2297/45 +f 3095/2299/45 3094/3271/45 3106/2300/45 +f 3092/2302/45 3091/3272/45 3103/2303/45 +f 3098/2305/45 3110/3273/45 3111/2306/45 +f 3095/2308/45 3107/3274/45 3108/2309/45 +f 3092/2311/45 3104/3275/45 3105/2312/45 +f 3100/2314/45 3099/3276/45 3111/2315/45 +f 3089/2317/45 3101/3277/45 3102/2318/45 +f 3096/2320/45 3108/3278/45 3109/2321/45 +f 3123/2323/45 3122/3279/45 3134/2324/45 +f 3119/2326/45 3131/3280/45 3132/2327/45 +f 3116/2329/45 3128/3281/45 3129/2330/45 +f 3123/2323/45 3135/3282/45 3136/2332/45 +f 3113/2334/45 3126/3283/45 3125/2335/45 +f 3120/2328/45 3132/3284/45 3133/2337/45 +f 3117/2331/45 3129/3285/45 3130/2339/45 +f 3124/2333/45 3136/3286/45 3126/2341/45 +f 3114/2336/45 3125/3287/45 3127/2342/45 +f 3122/2344/45 3121/2338/45 3133/2345/45 +f 3119/2326/45 3118/2340/45 3130/2347/45 +f 3116/2329/45 3115/2343/45 3127/2349/45 +f 3139/2353/45 3137/3288/45 3138/3289/45 +f 3138/3289/45 3148/3290/45 3139/2353/45 +f 3148/3290/45 3147/2351/45 3139/2353/45 +f 3147/2351/45 3146/3291/45 3143/2352/45 +f 3146/3291/45 3145/3292/45 3143/2352/45 +f 3145/3292/45 3144/3293/45 3143/2352/45 +f 3143/2352/45 3142/3294/45 3139/2353/45 +f 3142/3294/45 3141/3295/45 3139/2353/45 +f 3141/3295/45 3140/3296/45 3139/2353/45 +f 3187/2354/40 3199/3297/40 3198/2355/40 +f 3188/2357/40 3200/3298/40 3199/2358/40 +f 3189/2360/40 3201/3299/40 3200/2361/40 +f 3190/2363/40 3202/3300/40 3201/2364/40 +f 3190/2366/40 3191/3301/40 3203/2367/40 +f 3192/2369/40 3204/3302/40 3203/2370/40 +f 3193/2372/40 3205/3303/40 3204/2373/40 +f 3193/2375/40 3194/3304/40 3206/2376/40 +f 3194/2378/40 3195/3305/40 3207/2379/40 +f 3196/2381/40 3208/3306/40 3207/2382/40 +f 3185/2384/40 3197/3307/40 3208/2385/40 +f 3185/2387/40 3186/3308/40 3198/2388/40 +f 3210/3309/40 3209/3310/40 3211/2390/40 +f 3211/2390/40 3212/3311/40 3213/2391/40 +f 3213/2391/40 3214/3312/40 3217/2392/40 +f 3214/3312/40 3215/3313/40 3217/2392/40 +f 3215/3313/40 3216/3314/40 3217/2392/40 +f 3217/2392/40 3218/3315/40 3210/3309/40 +f 3218/3315/40 3219/3316/40 3210/3309/40 +f 3219/3316/40 3220/3317/40 3210/3309/40 +f 3210/3309/40 3211/2390/40 3217/2392/40 +f 3225/2393/39 3237/3318/39 3238/2394/39 +f 3232/2396/39 3244/3319/39 3233/2397/39 +f 3223/2399/39 3222/3320/39 3234/2400/39 +f 3230/2402/39 3229/3321/39 3241/2403/39 +f 3226/2405/39 3238/3322/39 3239/2406/39 +f 3223/2408/39 3235/3323/39 3236/2409/39 +f 3230/2411/39 3242/3324/39 3243/2412/39 +f 3228/2414/39 3227/3325/39 3239/2415/39 +f 3224/2417/39 3236/3326/39 3237/2418/39 +f 3231/2420/39 3243/3327/39 3244/2421/39 +f 3221/2423/39 3233/3328/39 3234/2424/39 +f 3229/2426/39 3228/3329/39 3240/2427/39 +f 3255/2429/39 3254/3330/39 3266/2430/39 +f 3251/2432/39 3263/3331/39 3264/2433/39 +f 3249/2435/39 3248/2457/39 3260/2436/39 +f 3255/2429/39 3267/3332/39 3268/2438/39 +f 3245/2440/39 3258/3333/39 3257/2441/39 +f 3253/2443/39 3252/2434/39 3264/2444/39 +f 3250/2446/39 3249/2435/39 3261/2447/39 +f 3256/2439/39 3268/3334/39 3258/2449/39 +f 3246/2442/39 3257/3335/39 3259/2450/39 +f 3254/2452/39 3253/2443/39 3265/2453/39 +f 3250/2446/39 3262/3336/39 3263/2455/39 +f 3247/2451/39 3259/3337/39 3260/2456/39 +f 3271/2459/39 3269/3338/39 3270/3339/39 +f 3270/3339/39 3280/3340/39 3271/2459/39 +f 3280/3340/39 3279/2460/39 3271/2459/39 +f 3279/2460/39 3278/3341/39 3277/3342/39 +f 3277/3342/39 3276/3343/39 3279/2460/39 +f 3276/3343/39 3275/3344/39 3279/2460/39 +f 3275/3344/39 3274/3345/39 3273/2458/39 +f 3273/2458/39 3272/3346/39 3271/2459/39 +f 3275/3344/39 3273/2458/39 3279/2460/39 +f 3319/2461/42 3331/3347/42 3330/2462/42 +f 3320/2464/42 3332/3348/42 3331/2465/42 +f 3321/2467/42 3333/3349/42 3332/2468/42 +f 3322/2470/42 3334/3350/42 3333/2471/42 +f 3322/2473/42 3323/3351/42 3335/2474/42 +f 3323/2476/42 3324/3352/42 3336/2477/42 +f 3324/2479/42 3325/3353/42 3337/2480/42 +f 3325/2482/42 3326/3354/42 3338/2483/42 +f 3327/2485/42 3339/3355/42 3338/2486/42 +f 3328/2488/42 3340/3356/42 3339/2489/42 +f 3317/2491/42 3329/3357/42 3340/2492/42 +f 3317/2494/42 3318/3358/42 3330/2495/42 +f 3342/2498/42 3341/3359/42 3343/3360/42 +f 3343/3360/42 3344/3361/42 3342/2498/42 +f 3344/3361/42 3345/2499/42 3342/2498/42 +f 3345/2499/42 3346/3362/42 3349/3363/42 +f 3346/3362/42 3347/3364/42 3349/3363/42 +f 3347/3364/42 3348/3365/42 3349/3363/42 +f 3349/3363/42 3350/3366/42 3351/2497/42 +f 3351/2497/42 3352/3367/42 3342/2498/42 +f 3349/3363/42 3351/2497/42 3345/2499/42 +f 3358/2500/41 3357/3368/41 3369/2501/41 +f 3353/2503/41 3364/3369/41 3376/2504/41 +f 3355/2506/41 3354/3370/41 3366/2507/41 +f 3362/2509/41 3361/3371/41 3373/2510/41 +f 3359/2512/41 3358/3372/41 3370/2513/41 +f 3356/2515/41 3355/3373/41 3367/2516/41 +f 3362/2518/41 3374/3374/41 3375/2519/41 +f 3360/2521/41 3359/3375/41 3371/2522/41 +f 3356/2524/41 3368/3376/41 3369/2525/41 +f 3364/2527/41 3363/3377/41 3375/2528/41 +f 3353/2530/41 3365/3378/41 3366/2531/41 +f 3360/2533/41 3372/3379/41 3373/2534/41 +f 3386/2536/41 3398/3380/41 3399/2537/41 +f 3383/2539/41 3395/3381/41 3396/2540/41 +f 3380/2542/41 3392/3382/41 3393/2543/41 +f 3388/2545/41 3387/2538/41 3399/2546/41 +f 3378/2548/41 3377/2556/41 3390/2549/41 +f 3384/2541/41 3396/3383/41 3397/2551/41 +f 3382/2553/41 3381/2544/41 3393/2554/41 +f 3377/2556/41 3388/2545/41 3400/2557/41 +f 3378/2548/41 3389/3384/41 3391/2559/41 +f 3386/2561/41 3385/2552/41 3397/2562/41 +f 3383/2539/41 3382/2553/41 3394/2564/41 +f 3380/2542/41 3379/2560/41 3391/2566/41 +f 3403/3385/41 3401/3386/41 3402/3387/41 +f 3402/3387/41 3412/3388/41 3411/2568/41 +f 3411/2568/41 3410/3389/41 3409/2569/41 +f 3409/2569/41 3408/3390/41 3407/2570/41 +f 3407/2570/41 3406/3391/41 3405/3392/41 +f 3405/3392/41 3404/3393/41 3407/2570/41 +f 3404/3393/41 3403/3385/41 3407/2570/41 +f 3403/3385/41 3402/3387/41 3407/2570/41 +f 3402/3387/41 3411/2568/41 3407/2570/41 +s 1 +f 25/3394/47 10/3395/48 9/3396/49 +f 31/3397/50 16/3398/51 15/3399/52 +f 18/3400/53 3/3401/54 2/3402/55 +f 24/3403/56 9/3404/49 8/3405/57 +f 17/3406/58 2/3402/55 1/3407/59 +f 16/3398/51 17/3406/58 1/3407/59 +f 45/3408/60 30/3409/61 29/3410/62 +f 30/3409/61 47/3411/63 31/3397/50 +f 47/3412/63 32/3413/64 31/3397/50 +f 32/3413/64 33/3414/7 17/3406/58 +f 33/3415/7 18/3400/53 17/3406/58 +f 34/3416/65 19/3417/66 18/3400/53 +f 35/3418/67 20/3419/68 19/3417/66 +f 20/3419/68 37/3420/69 21/3421/70 +f 21/3421/70 38/3422/71 22/3423/72 +f 22/3423/72 39/3424/73 23/3425/74 +f 39/3426/73 24/3403/56 23/3425/74 +f 40/3427/75 25/3428/47 24/3403/56 +f 25/3394/47 42/3429/76 26/3430/77 +f 42/3431/76 27/3432/78 26/3430/77 +f 43/3433/79 28/3434/80 27/3432/78 +f 28/3434/80 45/3435/60 29/3410/62 +f 14/3436/81 63/3437/82 62/3438/83 +f 15/3399/52 64/3439/84 63/3440/82 +f 16/3398/51 49/3441/8 64/3442/84 +f 2/3402/55 49/3443/8 1/3407/59 +f 3/3401/54 50/3444/85 2/3402/55 +f 4/3445/86 51/3446/87 3/3401/54 +f 5/3447/88 52/3448/89 4/3445/86 +f 6/3449/90 53/3450/91 5/3447/88 +f 6/3449/90 55/3451/92 54/3452/93 +f 7/3453/94 56/3454/95 55/3455/92 +f 9/3404/49 56/3456/95 8/3405/57 +f 9/3396/49 58/3457/96 57/3458/10 +f 10/3395/48 59/3459/97 58/3460/96 +f 12/3461/98 59/3462/97 11/3463/99 +f 12/3461/98 61/3464/100 60/3465/101 +f 14/3436/81 61/3466/100 13/3467/102 +f 45/3408/4 78/3468/103 46/3469/103 +f 38/3470/104 71/3471/12 39/3424/12 +f 46/3472/103 79/3473/16 47/3411/16 +f 40/3474/15 71/3475/12 72/3476/15 +f 47/3412/16 80/3477/11 48/3478/11 +f 40/3427/15 73/3479/6 41/3480/6 +f 33/3415/3 66/3481/18 34/3482/18 +f 48/3483/11 65/3484/3 33/3414/3 +f 41/3485/6 74/3486/13 42/3429/13 +f 34/3416/18 67/3487/14 35/3488/14 +f 42/3431/13 75/3489/17 43/3490/17 +f 35/3418/14 68/3491/105 36/3492/105 +f 43/3433/17 76/3493/106 44/3494/106 +f 36/3495/105 69/3496/5 37/3420/5 +f 44/3497/106 77/3498/4 45/3435/4 +f 37/3499/5 70/3500/104 38/3422/104 +f 52/3501/105 83/3502/14 51/3446/14 +f 60/3503/106 91/3504/17 59/3462/17 +f 53/3505/5 84/3506/105 52/3448/105 +f 61/3464/4 92/3507/106 60/3465/106 +f 54/3508/104 85/3509/5 53/3450/5 +f 62/3510/103 93/3511/4 61/3466/4 +f 55/3451/12 86/3512/104 54/3452/104 +f 63/3437/16 94/3513/103 62/3438/103 +f 55/3455/12 88/3514/15 87/3515/12 +f 64/3439/11 95/3516/16 63/3440/16 +f 57/3517/6 88/3518/15 56/3456/15 +f 50/3519/18 81/3520/3 49/3443/3 +f 49/3441/3 96/3521/11 64/3442/11 +f 58/3457/13 89/3522/6 57/3458/6 +f 51/3523/14 82/3524/18 50/3444/18 +f 59/3459/17 90/3525/13 58/3460/13 +f 97/3526/8 128/7/84 112/3527/84 +f 98/3528/85 113/10/8 97/3526/8 +f 99/3529/87 114/13/85 98/3528/85 +f 100/3530/89 115/16/87 99/3529/87 +f 101/3531/91 116/19/89 100/3530/89 +f 102/3532/93 117/22/91 101/3531/91 +f 103/3533/92 118/25/93 102/3532/93 +f 104/3534/95 119/2580/92 103/3533/92 +f 105/3535/10 120/2581/95 104/3534/95 +f 105/3536/10 122/35/96 121/2582/10 +f 106/3537/96 123/38/97 122/2583/96 +f 108/3538/101 123/2584/97 107/3539/97 +f 108/3538/101 125/44/100 124/2585/101 +f 109/3540/100 126/47/83 125/2586/100 +f 110/3541/83 127/2/82 126/2571/83 +f 111/3542/82 128/5/84 127/2572/82 +f 158/3543/103 111/3542/16 110/3541/103 +f 159/3544/16 112/3527/11 111/3542/16 +f 160/3545/11 97/3526/3 112/3527/11 +f 145/3546/3 98/3528/18 97/3526/3 +f 146/3547/18 99/3529/14 98/3528/18 +f 147/3548/14 100/3530/105 99/3529/14 +f 148/3549/105 101/3531/5 100/3530/105 +f 149/3550/5 102/3532/104 101/3531/5 +f 150/3551/104 103/3533/12 102/3532/104 +f 151/3552/12 104/3534/15 103/3533/12 +f 152/3553/15 105/3535/6 104/3534/15 +f 153/3554/6 106/3537/13 105/3536/6 +f 154/3555/13 107/3539/17 106/3537/13 +f 155/3556/17 108/3538/106 107/3539/17 +f 156/3557/106 109/3540/4 108/3538/106 +f 157/3558/4 110/3541/103 109/3540/4 +f 143/101/63 158/3543/107 142/102/107 +f 144/105/108 159/3544/63 143/103/63 +f 129/107/7 160/3545/108 144/108/108 +f 129/111/7 146/3547/65 145/3546/7 +f 130/112/65 147/3548/67 146/3547/65 +f 131/117/67 148/3549/109 147/3548/67 +f 132/120/109 149/3550/69 148/3549/109 +f 133/121/69 150/3551/71 149/3550/69 +f 134/124/71 151/3552/73 150/3551/71 +f 136/128/75 151/3552/73 135/129/73 +f 137/131/9 152/3553/75 136/132/75 +f 138/135/76 153/3554/9 137/133/9 +f 139/138/79 154/3555/76 138/136/76 +f 140/140/110 155/3556/79 139/141/79 +f 141/143/60 156/3557/110 140/144/110 +f 142/98/107 157/3558/60 141/99/60 +f 161/3559/8 192/201/84 176/3560/84 +f 162/3561/85 177/204/8 161/3559/8 +f 163/3562/87 178/205/85 162/3561/85 +f 164/3563/89 179/210/87 163/3562/87 +f 165/3564/91 180/211/89 164/3563/89 +f 166/3565/93 181/214/91 165/3564/91 +f 167/3566/92 182/217/93 166/3565/93 +f 167/3566/92 184/220/95 183/222/92 +f 169/3567/10 184/225/95 168/3568/95 +f 169/3569/10 186/2646/96 185/226/10 +f 170/3570/96 187/2647/97 186/229/96 +f 171/3571/97 188/232/101 187/234/97 +f 172/3572/101 189/235/100 188/237/101 +f 173/3573/100 190/238/83 189/240/100 +f 174/3574/83 191/193/82 190/195/83 +f 175/3575/82 192/2636/84 191/196/82 +f 222/3576/103 175/3575/16 174/3574/103 +f 223/3577/16 176/3560/11 175/3575/16 +f 224/3578/11 161/3559/3 176/3560/11 +f 209/3579/3 162/3561/18 161/3559/3 +f 210/3580/18 163/3562/14 162/3561/18 +f 211/3581/14 164/3563/105 163/3562/14 +f 212/3582/105 165/3564/5 164/3563/105 +f 213/3583/5 166/3565/104 165/3564/5 +f 214/3584/104 167/3566/12 166/3565/104 +f 215/3585/12 168/3568/15 167/3566/12 +f 216/3586/15 169/3567/6 168/3568/15 +f 217/3587/6 170/3570/13 169/3569/6 +f 218/3588/13 171/3571/17 170/3570/13 +f 219/3589/17 172/3572/106 171/3571/17 +f 220/3590/106 173/3573/4 172/3572/106 +f 221/3591/4 174/3574/103 173/3573/4 +f 207/95/63 222/3576/107 206/96/107 +f 208/50/108 223/3577/63 207/51/63 +f 193/2588/7 224/3578/108 208/53/108 +f 193/56/7 210/3580/65 209/3579/7 +f 194/59/65 211/3581/67 210/3580/65 +f 195/62/67 212/3582/109 211/3581/67 +f 196/65/109 213/3583/69 212/3582/109 +f 197/68/69 214/3584/71 213/3583/69 +f 198/71/71 215/3585/73 214/3584/71 +f 199/75/73 216/3586/75 215/3585/73 +f 200/78/75 217/3592/9 216/3586/75 +f 202/80/76 217/3587/9 201/81/9 +f 203/83/79 218/3588/76 202/84/76 +f 203/87/79 220/3590/110 219/3589/79 +f 205/89/60 220/3590/110 204/90/110 +f 206/92/107 221/3591/60 205/93/60 +f 238/3593/103 255/3594/16 239/3595/16 +f 231/3596/12 248/3597/15 232/3598/15 +f 239/3595/16 256/3599/11 240/3600/11 +f 232/3598/15 249/3601/6 233/3602/6 +f 225/3603/3 242/3604/18 226/3605/18 +f 240/3600/11 241/3606/3 225/3603/3 +f 233/3607/6 250/3608/13 234/3609/13 +f 226/3605/18 243/3610/14 227/3611/14 +f 234/3609/13 251/3612/17 235/3613/17 +f 227/3611/14 244/3614/105 228/3615/105 +f 235/3613/17 252/3616/106 236/3617/106 +f 228/3615/105 245/3618/5 229/3619/5 +f 236/3617/106 253/3620/4 237/3621/4 +f 229/3619/5 246/3622/104 230/3623/104 +f 237/3621/4 254/3624/103 238/3593/103 +f 230/3623/104 247/3625/12 231/3596/12 +f 272/3626/84 273/152/8 288/2621/84 +f 258/3627/85 273/2622/8 257/3628/8 +f 259/3629/87 274/157/85 258/3627/85 +f 260/3630/89 275/2624/87 259/3629/87 +f 261/3631/91 276/163/89 260/3630/89 +f 262/3632/93 277/166/91 261/3631/91 +f 263/3633/92 278/169/93 262/3632/93 +f 264/3634/95 279/2628/92 263/3633/92 +f 265/3635/10 280/2629/95 264/3634/95 +f 265/3636/10 282/2630/96 281/178/10 +f 266/3637/96 283/2631/97 282/181/96 +f 267/3638/97 284/2632/101 283/184/97 +f 268/3639/101 285/188/100 284/2633/101 +f 269/3640/100 286/191/83 285/2634/100 +f 270/3641/83 287/146/82 286/2619/83 +f 272/3626/84 287/148/82 271/3642/82 +f 318/3643/103 271/3642/16 270/3641/103 +f 319/3644/16 272/3626/11 271/3642/16 +f 320/3645/11 257/3628/3 272/3626/11 +f 305/3646/3 258/3627/18 257/3628/3 +f 306/3647/18 259/3629/14 258/3627/18 +f 307/3648/14 260/3630/105 259/3629/14 +f 308/3649/105 261/3631/5 260/3630/105 +f 309/3650/5 262/3632/104 261/3631/5 +f 310/3651/104 263/3633/12 262/3632/104 +f 311/3652/12 264/3634/15 263/3633/12 +f 312/3653/15 265/3635/6 264/3634/15 +f 313/3654/6 266/3637/13 265/3636/6 +f 314/3655/13 267/3638/17 266/3637/13 +f 315/3656/17 268/3639/106 267/3638/17 +f 316/3657/106 269/3640/4 268/3639/106 +f 317/3658/4 270/3641/103 269/3640/4 +f 303/293/63 318/3643/107 302/294/107 +f 304/296/108 319/3644/63 303/297/63 +f 289/299/7 320/3645/108 304/300/108 +f 289/303/7 306/3647/65 305/3646/7 +f 290/304/65 307/3648/67 306/3647/65 +f 291/309/67 308/3649/109 307/3648/67 +f 292/310/109 309/3650/69 308/3649/109 +f 293/315/69 310/3651/71 309/3650/69 +f 295/318/73 310/3651/71 294/316/71 +f 295/321/73 312/3653/75 311/3652/73 +f 297/324/9 312/3653/75 296/322/75 +f 298/327/76 313/3654/9 297/325/9 +f 299/329/79 314/3655/76 298/330/76 +f 299/333/79 316/3657/110 315/3656/79 +f 301/335/60 316/3657/110 300/336/110 +f 302/291/107 317/3658/60 301/289/60 +f 321/3659/8 352/348/84 336/3660/84 +f 322/3661/85 337/351/8 321/3659/8 +f 323/3662/87 338/352/85 322/3661/85 +f 324/3663/89 339/357/87 323/3662/87 +f 325/3664/91 340/358/89 324/3663/89 +f 326/3665/93 341/363/91 325/3664/91 +f 327/3666/92 342/364/93 326/3665/93 +f 328/3667/95 343/369/92 327/3666/92 +f 329/3668/10 344/370/95 328/3667/95 +f 330/3669/96 345/373/10 329/3670/10 +f 330/3669/96 347/376/97 346/378/96 +f 332/3671/101 347/381/97 331/3672/97 +f 332/3671/101 349/382/100 348/384/101 +f 333/3673/100 350/2711/83 349/385/100 +f 334/3674/83 351/340/82 350/342/83 +f 335/3675/82 352/343/84 351/345/82 +f 382/3676/103 335/3675/16 334/3674/103 +f 383/3677/16 336/3660/11 335/3675/16 +f 384/3678/11 321/3659/3 336/3660/11 +f 369/3679/3 322/3661/18 321/3659/3 +f 370/3680/18 323/3662/14 322/3661/18 +f 371/3681/14 324/3663/105 323/3662/14 +f 372/3682/105 325/3664/5 324/3663/105 +f 373/3683/5 326/3665/104 325/3664/5 +f 374/3684/104 327/3666/12 326/3665/104 +f 375/3685/12 328/3667/15 327/3666/12 +f 376/3686/15 329/3668/6 328/3667/15 +f 377/3687/6 330/3669/13 329/3670/6 +f 378/3688/13 331/3672/17 330/3669/13 +f 379/3689/17 332/3671/106 331/3672/17 +f 380/3690/106 333/3673/4 332/3671/106 +f 381/3691/4 334/3674/103 333/3673/4 +f 367/242/63 382/3676/107 366/243/107 +f 368/246/108 383/3677/63 367/244/63 +f 353/248/7 384/3678/108 368/249/108 +f 353/252/7 370/3680/65 369/3679/7 +f 355/255/67 370/3680/65 354/253/65 +f 355/258/67 372/3682/109 371/3681/67 +f 356/261/109 373/3683/69 372/3682/109 +f 357/262/69 374/3684/71 373/3683/69 +f 359/267/73 374/3684/71 358/265/71 +f 359/270/73 376/3686/75 375/3685/73 +f 360/273/75 377/3692/9 376/3686/75 +f 362/276/76 377/3687/9 361/274/9 +f 363/279/79 378/3688/76 362/277/76 +f 364/281/110 379/3689/79 363/282/79 +f 365/284/60 380/3690/110 364/285/110 +f 366/287/107 381/3691/60 365/288/60 +f 392/3693/15 407/3694/12 391/3695/12 +f 400/3696/11 415/3697/16 399/3698/16 +f 393/3699/6 408/3700/15 392/3693/15 +f 386/3701/18 401/3702/3 385/3703/3 +f 385/3703/3 416/3704/11 400/3696/11 +f 394/3705/13 409/3706/6 393/3707/6 +f 387/3708/14 402/3709/18 386/3701/18 +f 395/3710/17 410/3711/13 394/3705/13 +f 388/3712/105 403/3713/14 387/3708/14 +f 396/3714/106 411/3715/17 395/3710/17 +f 389/3716/5 404/3717/105 388/3712/105 +f 397/3718/4 412/3719/106 396/3714/106 +f 390/3720/104 405/3721/5 389/3716/5 +f 398/3722/103 413/3723/4 397/3718/4 +f 391/3695/12 406/3724/104 390/3720/104 +f 399/3698/16 414/3725/103 398/3722/103 +f 417/3726/6 433/3727/13 418/3728/13 +f 432/3729/15 434/3730/6 417/3726/6 +f 425/3731/3 442/3732/18 426/3733/18 +f 418/3728/13 435/3734/17 419/3735/17 +f 426/3733/18 443/3736/14 427/3737/14 +f 419/3735/17 436/3738/106 420/3739/106 +f 427/3737/14 444/3740/105 428/3741/105 +f 420/3739/106 437/3742/4 421/3743/4 +f 428/3741/105 445/3744/5 429/3745/5 +f 421/3743/4 438/3746/103 422/3747/103 +f 429/3745/5 446/3748/104 430/3749/104 +f 422/3747/103 439/3750/16 423/3751/16 +f 430/3749/104 447/3752/12 431/3753/12 +f 423/3751/16 440/3754/11 424/3755/11 +f 431/3753/12 448/3756/15 432/3729/15 +f 424/3755/11 441/3757/3 425/3758/3 +f 460/3759/105 475/3760/14 459/3761/14 +f 453/3762/4 468/3763/106 452/3764/106 +f 461/3765/5 476/3766/105 460/3759/105 +f 454/3767/103 469/3768/4 453/3762/4 +f 462/3769/104 477/3770/5 461/3765/5 +f 455/3771/16 470/3772/103 454/3767/103 +f 463/3773/12 478/3774/104 462/3769/104 +f 456/3775/11 471/3776/16 455/3771/16 +f 464/3777/15 479/3778/12 463/3773/12 +f 457/3779/3 472/3780/11 456/3775/11 +f 450/3781/13 466/3782/6 449/3783/6 +f 449/3783/6 480/3784/15 464/3777/15 +f 458/3785/18 473/3786/3 457/3787/3 +f 451/3788/17 465/3789/13 450/3781/13 +f 459/3761/14 474/3790/18 458/3785/18 +f 452/3764/106 467/3791/17 451/3788/17 +f 510/3792/103 495/3793/16 494/3794/103 +f 503/3795/12 488/3796/15 487/3797/12 +f 511/3798/16 496/3799/11 495/3793/16 +f 504/3800/15 489/3801/6 488/3796/15 +f 497/3802/3 482/3803/18 481/3804/3 +f 512/3805/11 481/3804/3 496/3799/11 +f 505/3806/6 490/3807/13 489/3808/6 +f 498/3809/18 483/3810/14 482/3803/18 +f 506/3811/13 491/3812/17 490/3807/13 +f 499/3813/14 484/3814/105 483/3810/14 +f 507/3815/17 492/3816/106 491/3812/17 +f 500/3817/105 485/3818/5 484/3814/105 +f 492/3816/106 509/3819/4 493/3820/4 +f 501/3821/5 486/3822/104 485/3818/5 +f 509/3819/4 494/3794/103 493/3820/4 +f 502/3823/104 487/3797/12 486/3822/104 +f 542/3824/103 527/3825/16 526/3826/103 +f 535/3827/12 520/3828/15 519/3829/12 +f 543/3830/16 528/3831/11 527/3825/16 +f 536/3832/15 521/3833/6 520/3828/15 +f 529/3834/3 514/3835/18 513/3836/3 +f 544/3837/11 513/3836/3 528/3831/11 +f 537/3838/6 522/3839/13 521/3840/6 +f 530/3841/18 515/3842/14 514/3835/18 +f 538/3843/13 523/3844/17 522/3839/13 +f 531/3845/14 516/3846/105 515/3842/14 +f 539/3847/17 524/3848/106 523/3844/17 +f 532/3849/105 517/3850/5 516/3846/105 +f 524/3848/106 541/3851/4 525/3852/4 +f 533/3853/5 518/3854/104 517/3850/5 +f 541/3851/4 526/3826/103 525/3852/4 +f 534/3855/104 519/3829/12 518/3854/104 +f 779/3856/111 770/3857/112 771/3858/113 +f 773/3859/114 792/3860/115 789/3861/116 +f 780/3862/117 771/3858/113 772/3863/118 +f 791/3864/119 774/3865/120 790/3866/121 +f 770/3857/112 777/3867/122 769/3868/123 +f 776/3869/124 791/3864/119 792/3860/115 +f 769/3870/123 780/3862/117 772/3863/118 +f 782/3871/125 777/3867/122 778/3872/126 +f 779/3856/111 782/3871/125 778/3872/126 +f 780/3862/117 783/3873/127 779/3856/111 +f 781/3874/128 780/3862/117 777/3875/122 +f 786/3876/129 781/3877/128 782/3871/125 +f 783/3873/127 786/3876/129 782/3871/125 +f 784/3878/130 787/3879/131 783/3873/127 +f 785/3880/132 784/3878/130 781/3874/128 +f 786/3876/129 789/3881/116 785/3882/132 +f 787/3879/131 790/3866/121 786/3876/129 +f 788/3883/133 791/3864/119 787/3879/131 +f 789/3861/116 788/3883/133 785/3880/132 +f 774/3865/120 789/3881/116 790/3866/121 +f 798/3884/134 813/3885/135 814/3886/136 +f 815/3887/137 798/3884/134 814/3886/136 +f 800/3888/138 815/3887/137 816/3889/139 +f 797/3890/140 816/3889/139 813/3891/135 +f 794/3892/141 801/3893/142 793/3894/143 +f 803/3895/144 794/3892/141 795/3896/145 +f 804/3897/146 795/3896/145 796/3898/147 +f 793/3899/143 804/3897/146 796/3898/147 +f 806/3900/148 801/3893/142 802/3901/149 +f 807/3902/150 802/3901/149 803/3895/144 +f 808/3903/151 803/3895/144 804/3897/146 +f 801/3904/142 808/3903/151 804/3897/146 +f 806/3900/148 809/3905/152 805/3906/153 +f 811/3907/154 806/3900/148 807/3902/150 +f 808/3903/151 811/3907/154 807/3902/150 +f 805/3908/153 812/3909/155 808/3903/151 +f 810/3910/156 813/3885/135 809/3905/152 +f 815/3887/137 810/3910/156 811/3907/154 +f 812/3909/155 815/3887/137 811/3907/154 +f 809/3911/152 816/3889/139 812/3909/155 +f 837/3912/157 818/3913/158 838/3914/159 +f 839/3915/160 818/3913/158 819/3916/161 +f 839/3915/160 820/3917/162 840/3918/163 +f 840/3918/163 817/3919/164 837/3920/157 +f 821/3921/165 826/3922/166 822/3923/167 +f 822/3923/167 827/3924/168 823/3925/169 +f 823/3925/169 828/3926/170 824/3927/171 +f 821/3928/165 828/3926/170 825/3929/172 +f 826/3922/166 829/3930/173 830/3931/174 +f 826/3922/166 831/3932/175 827/3924/168 +f 827/3924/168 832/3933/176 828/3926/170 +f 825/3929/172 832/3933/176 829/3934/173 +f 829/3930/173 834/3935/177 830/3931/174 +f 831/3932/175 834/3935/177 835/3936/178 +f 831/3932/175 836/3937/179 832/3933/176 +f 832/3933/176 833/3938/180 829/3934/173 +f 833/3939/180 838/3914/159 834/3935/177 +f 835/3936/178 838/3914/159 839/3915/160 +f 835/3936/178 840/3918/163 836/3937/179 +f 836/3937/179 837/3920/157 833/3938/180 +f 865/3940/181 850/3941/182 849/3942/183 +f 858/3943/184 843/710/185 842/3944/186 +f 866/3945/187 851/725/188 850/3941/182 +f 860/708/189 845/3946/190 844/706/191 +f 868/726/192 853/3947/193 852/724/194 +f 861/3948/195 846/717/196 845/3946/190 +f 869/3949/197 854/734/198 853/3947/193 +f 863/722/199 848/3950/200 847/719/201 +f 871/738/202 856/3951/203 855/736/204 +f 864/3952/205 849/3953/183 848/3950/200 +f 857/3954/206 842/3944/186 841/3955/207 +f 872/3956/208 841/3955/207 856/3951/203 +f 29/3410/62 14/3436/81 13/3467/102 +f 26/3430/77 11/3463/99 10/3395/48 +f 28/3434/80 13/3467/102 12/3461/98 +f 881/3957/209 866/3945/187 865/3940/181 +f 866/3945/187 883/3958/210 867/728/211 +f 867/728/211 884/3959/212 868/726/192 +f 884/3960/212 869/3949/197 868/726/192 +f 869/3949/197 886/3961/213 870/731/214 +f 870/731/214 887/3962/215 871/738/202 +f 887/3963/215 872/3956/208 871/738/202 +f 872/3956/208 873/3964/216 857/3954/206 +f 873/3965/216 858/3943/184 857/3954/206 +f 874/3966/217 859/711/218 858/3943/184 +f 875/3967/219 860/708/189 859/711/218 +f 876/3968/220 861/3948/195 860/708/189 +f 861/3948/195 878/3969/221 862/714/222 +f 878/3970/221 863/722/199 862/714/222 +f 879/3971/223 864/3952/205 863/722/199 +f 880/3972/224 865/3973/181 864/3952/205 +f 883/3974/210 879/3975/223 875/3976/219 +f 849/3953/183 896/3977/225 848/3950/200 +f 850/3941/182 897/3978/226 849/3942/183 +f 850/3941/182 899/3979/227 898/3980/228 +f 851/725/188 900/3981/229 899/3982/227 +f 852/724/194 901/3983/230 900/3984/229 +f 853/3947/193 902/3985/231 901/3986/230 +f 854/734/198 903/3987/232 902/3988/231 +f 856/3951/203 903/3989/232 855/736/204 +f 841/3955/207 904/3990/233 856/3951/203 +f 842/3944/186 889/3991/234 841/3955/207 +f 843/710/185 890/3992/235 842/3944/186 +f 844/706/191 891/3993/236 843/710/185 +f 845/3946/190 892/3994/237 844/706/191 +f 845/3946/190 894/3995/238 893/3996/239 +f 847/719/201 894/3997/238 846/717/196 +f 848/3950/200 895/3998/240 847/719/201 +f 897/3999/226 901/4000/230 889/4001/234 +f 20/3419/68 5/3447/88 4/3445/86 +f 21/3421/70 6/3449/90 5/3447/88 +f 23/3425/74 8/3405/57 7/3453/94 +f 934/4002/241 923/4003/242 922/4004/243 +f 923/4003/242 936/4005/14 924/4006/244 +f 936/4007/14 925/4008/245 924/4006/244 +f 925/4008/245 938/4009/246 926/4010/247 +f 938/4011/246 927/4012/248 926/4010/247 +f 927/4012/248 940/4013/249 928/4014/250 +f 940/4015/249 929/4016/251 928/4014/250 +f 941/4017/252 930/4018/253 929/4016/251 +f 942/4019/12 931/4020/254 930/4021/253 +f 931/4020/254 944/4022/255 932/4023/256 +f 932/4023/256 933/4024/69 921/4025/257 +f 933/4026/69 922/4004/243 921/4025/257 +f 928/4014/250 951/4027/258 927/4012/248 +f 925/4008/245 948/4028/259 924/4006/244 +f 932/4023/256 955/4029/260 931/4020/254 +f 921/4025/257 946/4030/261 945/4031/262 +f 929/4016/251 952/4032/263 928/4014/250 +f 925/4008/245 950/4033/264 949/4034/265 +f 921/4025/257 956/4035/266 932/4023/256 +f 922/4004/243 947/4036/267 946/4030/261 +f 930/4018/253 953/4037/268 929/4016/251 +f 927/4012/248 950/4033/264 926/4010/247 +f 924/4006/244 947/4036/267 923/4003/242 +f 930/4021/253 955/4029/260 954/4038/269 +f 947/4036/267 958/742/270 946/4030/261 +f 948/4028/259 959/745/271 947/4036/267 +f 949/4034/265 960/748/16 948/4028/259 +f 950/4033/264 961/751/272 949/4034/265 +f 950/4033/264 963/2780/100 962/752/273 +f 952/4032/263 963/757/100 951/4027/258 +f 952/4032/263 965/2782/274 964/758/275 +f 954/4039/269 965/761/274 953/4037/268 +f 954/4038/269 967/764/276 966/766/17 +f 956/4035/266 967/769/276 955/4029/260 +f 945/4031/262 968/770/277 956/4035/266 +f 945/4031/262 958/2787/270 957/773/60 +f 977/759/278 988/4040/279 976/760/279 +f 974/2779/280 985/4041/281 973/750/281 +f 969/771/2 992/4042/282 980/772/282 +f 971/2776/283 981/4043/284 970/741/284 +f 978/762/6 989/4044/278 977/763/278 +f 975/753/1 986/4045/280 974/754/280 +f 972/2777/3 983/4046/283 971/744/283 +f 979/2784/285 990/4047/6 978/765/6 +f 976/2781/279 987/4048/1 975/756/1 +f 973/2778/281 984/4049/3 972/747/3 +f 980/2785/282 991/4050/285 979/768/285 +f 970/774/284 982/4051/2 969/775/2 +f 944/4052/282 993/784/2 933/4024/2 +f 935/4053/283 994/785/284 995/787/283 +f 941/4017/278 1002/788/6 942/4054/6 +f 938/4011/280 999/793/1 939/4055/1 +f 935/4056/283 996/794/3 936/4005/3 +f 942/4019/6 1003/799/285 943/4057/285 +f 939/4058/1 1000/802/279 940/4013/279 +f 936/4007/3 997/805/281 937/4059/281 +f 943/4060/285 1004/806/282 944/4022/282 +f 933/4026/2 994/811/284 934/4061/284 +f 940/4015/279 1001/814/278 941/4062/278 +f 938/4009/280 997/2797/281 998/779/280 +f 1010/4063/280 1023/818/1 1011/4064/1 +f 1007/4065/283 1020/821/3 1008/4066/3 +f 1014/4067/6 1027/817/285 1015/4068/285 +f 1011/4064/1 1024/820/279 1012/4069/279 +f 1008/4066/3 1021/823/281 1009/4070/281 +f 1015/4068/285 1028/824/282 1016/4071/282 +f 1005/4072/2 1018/829/284 1006/4073/284 +f 1012/4069/279 1025/831/278 1013/4074/278 +f 1009/4070/281 1022/832/280 1010/4063/280 +f 1016/4071/282 1017/827/2 1005/4072/2 +f 1006/4073/284 1019/837/283 1007/4065/283 +f 1013/4074/278 1026/838/6 1014/4075/6 +f 1034/2816/280 1047/4076/1 1035/841/1 +f 1031/842/283 1044/4077/3 1032/843/3 +f 1038/2809/6 1051/4078/285 1039/816/285 +f 1035/2810/1 1048/4079/279 1036/819/279 +f 1032/2811/3 1045/4080/281 1033/822/281 +f 1039/825/285 1052/4081/282 1040/826/282 +f 1030/2812/2 1041/4082/284 1029/828/284 +f 1036/2813/279 1049/4083/278 1037/830/278 +f 1033/833/281 1046/4084/280 1034/834/280 +f 1030/835/2 1052/4085/282 1042/4086/2 +f 1029/2815/284 1043/4087/283 1031/836/283 +f 1037/839/278 1050/4088/6 1038/840/6 +f 1053/4089/4 1076/850/286 1065/852/4 +f 1055/4090/287 1066/853/288 1067/855/287 +f 1061/4091/289 1074/856/6 1062/4092/6 +f 1058/4093/290 1071/859/5 1059/4094/5 +f 1055/4090/287 1068/862/3 1056/4095/3 +f 1062/4096/6 1075/867/291 1063/4097/291 +f 1059/4094/5 1072/869/292 1060/4098/292 +f 1056/4095/3 1069/847/293 1057/4099/293 +f 1063/4097/291 1076/850/286 1064/4100/286 +f 1053/4089/4 1066/853/288 1054/4101/288 +f 1061/4091/289 1072/869/292 1073/875/289 +f 1058/4093/290 1069/847/293 1070/849/290 +f 1082/4102/290 1095/881/5 1083/4103/5 +f 1079/4104/287 1092/884/3 1080/4105/3 +f 1086/4106/6 1099/880/291 1087/4107/291 +f 1083/4103/5 1096/883/292 1084/4108/292 +f 1080/4105/3 1093/886/293 1081/4109/293 +f 1087/4107/291 1100/887/286 1088/4110/286 +f 1077/4111/4 1090/890/288 1078/4112/288 +f 1085/4113/289 1096/883/292 1097/893/289 +f 1081/4109/293 1094/897/290 1082/4102/290 +f 1077/4111/4 1100/887/286 1089/899/4 +f 1078/4112/288 1091/901/287 1079/4104/287 +f 1085/4113/289 1098/902/6 1086/4114/6 +f 1106/905/290 1119/4115/5 1107/906/5 +f 1103/907/287 1116/4116/3 1104/908/3 +f 1110/2832/6 1123/4117/291 1111/879/291 +f 1107/2833/5 1120/4118/292 1108/882/292 +f 1104/2834/3 1117/4119/293 1105/885/293 +f 1111/888/291 1124/4120/286 1112/889/286 +f 1102/891/4 1113/4121/288 1101/892/288 +f 1108/894/292 1121/4122/289 1109/895/289 +f 1105/2835/293 1118/4123/290 1106/896/290 +f 1112/2836/286 1114/4124/4 1102/898/4 +f 1101/2837/288 1115/4125/287 1103/900/287 +f 1109/903/289 1122/4126/6 1110/904/6 +f 19/3417/66 4/3445/86 3/3401/54 +f 22/3423/72 7/3453/94 6/3449/90 +f 27/3432/78 12/3461/98 11/3463/99 +f 30/3409/61 15/3399/52 14/3436/81 +f 1138/4127/294 1139/4128/295 1137/4129/296 +f 1140/4130/297 1141/4131/298 1139/4128/295 +f 1142/4132/299 1143/4133/300 1141/4131/298 +f 1144/4134/301 1145/4135/302 1143/4133/300 +f 1146/4136/303 1147/4137/304 1145/4135/302 +f 1148/4138/305 1149/4139/93 1147/4137/304 +f 1140/4130/297 1169/4140/83 1142/4132/299 +f 1150/4141/71 1151/4142/306 1149/4143/93 +f 1152/4144/307 1137/4129/296 1151/4142/306 +f 1141/4131/298 1156/4145/308 1155/4146/107 +f 1145/4147/302 1156/4145/308 1143/4133/300 +f 1139/4128/295 1155/4146/107 1154/4148/309 +f 1145/4147/302 1158/4149/310 1157/4150/311 +f 1137/4151/296 1159/4152/312 1151/4153/306 +f 1139/4128/295 1153/4154/313 1137/4151/296 +f 1159/4152/312 1160/4155/314 1166/4156/315 +f 1157/4150/311 1163/4157/316 1156/4145/308 +f 1154/4148/309 1162/4158/317 1161/4159/318 +f 1158/4149/310 1164/4160/319 1157/4150/311 +f 1156/4145/308 1162/4158/317 1155/4146/107 +f 1153/4154/313 1161/4159/318 1160/4155/314 +f 1151/4153/306 1159/4152/312 1149/4161/93 +f 1159/4152/312 1166/4156/315 1149/4161/93 +f 1149/4162/93 1158/4149/310 1147/4163/304 +f 1158/4149/310 1149/4162/93 1165/4164/320 +f 1148/4165/305 1171/4166/321 1172/4167/322 +f 1138/4168/294 1173/4169/323 1167/4170/324 +f 1140/4130/297 1167/4170/324 1168/4171/325 +f 1144/4134/301 1169/4140/83 1170/4172/326 +f 1146/4173/303 1170/4172/326 1171/4166/321 +f 1172/4167/322 1178/4174/327 1179/4175/328 +f 1170/4172/326 1176/4176/329 1177/4177/330 +f 1167/4170/324 1175/4178/331 1168/4171/325 +f 1167/4170/324 1180/4179/332 1174/4180/333 +f 1171/4166/321 1177/4177/330 1178/4174/327 +f 1168/4171/325 1176/4176/329 1169/4140/83 +f 1150/4181/71 1173/4169/323 1152/4182/307 +f 1173/4169/323 1150/4181/71 1180/4179/332 +f 1148/4165/305 1172/4167/322 1150/4183/71 +f 1172/4167/322 1179/4175/328 1150/4183/71 +f 1179/4184/328 1186/4185/13 1187/4186/76 +f 1176/4176/329 1185/4187/96 1177/4177/330 +f 1174/4188/333 1183/4189/85 1175/4178/331 +f 1150/4190/71 1187/4186/76 1181/4191/2 +f 1180/4192/332 1182/4193/18 1174/4188/333 +f 1180/4192/332 1181/4194/2 1188/4195/65 +f 1177/4177/330 1186/4185/13 1178/4196/327 +f 1176/4176/329 1183/4189/85 1184/4197/1 +f 1149/4198/93 1196/4199/85 1189/4200/1 +f 1163/4157/316 1194/4201/13 1193/4202/76 +f 1162/4158/317 1191/4203/65 1161/4159/318 +f 1164/4204/319 1195/4205/96 1194/4201/13 +f 1162/4158/317 1193/4202/76 1192/4206/2 +f 1160/4207/314 1191/4203/65 1190/4208/18 +f 1149/4209/93 1195/4205/96 1165/4210/320 +f 1160/4207/314 1196/4199/85 1166/4211/315 +f 1198/4212/334 1199/4213/335 1197/4214/336 +f 1200/4215/337 1201/4216/338 1199/4213/335 +f 1202/4217/339 1203/4218/340 1201/4216/338 +f 1204/4219/341 1205/4220/342 1203/4218/340 +f 1206/4221/343 1207/4222/344 1205/4220/342 +f 1208/4223/345 1209/4224/89 1207/4222/344 +f 1200/4215/337 1229/4225/101 1202/4217/339 +f 1210/4226/109 1211/4227/346 1209/4228/89 +f 1212/4229/347 1197/4214/336 1211/4227/346 +f 1203/4218/340 1215/4230/110 1201/4216/338 +f 1205/4231/342 1216/4232/348 1203/4218/340 +f 1199/4213/335 1215/4230/110 1214/4233/349 +f 1205/4231/342 1218/4234/350 1217/4235/351 +f 1197/4236/336 1219/4237/352 1211/4238/346 +f 1197/4236/336 1214/4233/349 1213/4239/353 +f 1219/4237/352 1220/4240/354 1226/4241/355 +f 1216/4232/348 1224/4242/356 1223/4243/357 +f 1214/4233/349 1222/4244/358 1221/4245/359 +f 1218/4234/350 1224/4242/356 1217/4235/351 +f 1215/4230/110 1223/4243/357 1222/4244/358 +f 1214/4233/349 1220/4240/354 1213/4239/353 +f 1211/4238/346 1219/4237/352 1209/4246/89 +f 1219/4237/352 1226/4241/355 1209/4246/89 +f 1209/4247/89 1218/4234/350 1207/4248/344 +f 1218/4234/350 1209/4247/89 1225/4249/360 +f 1208/4250/345 1231/4251/361 1232/4252/362 +f 1212/4253/347 1227/4254/363 1198/4255/334 +f 1200/4215/337 1227/4254/363 1228/4256/364 +f 1204/4219/341 1229/4225/101 1230/4257/365 +f 1206/4258/343 1230/4257/365 1231/4251/361 +f 1232/4252/362 1238/4259/366 1239/4260/367 +f 1230/4257/365 1236/4261/368 1237/4262/369 +f 1228/4256/364 1234/4263/370 1235/4264/371 +f 1233/4265/372 1234/4263/370 1227/4254/363 +f 1231/4251/361 1237/4262/369 1238/4259/366 +f 1228/4256/364 1236/4261/368 1229/4225/101 +f 1210/4266/109 1233/4265/372 1212/4253/347 +f 1233/4265/372 1210/4266/109 1240/4267/373 +f 1208/4250/345 1232/4252/362 1210/4268/109 +f 1232/4252/362 1239/4260/367 1210/4268/109 +f 1239/4269/367 1246/4270/15 1247/4271/75 +f 1236/4261/368 1245/4272/95 1237/4262/369 +f 1234/4273/370 1243/4274/84 1235/4264/371 +f 1210/4275/109 1247/4271/75 1241/4276/2 +f 1240/4277/373 1242/4278/11 1234/4273/370 +f 1240/4277/373 1241/4279/2 1248/4280/108 +f 1237/4262/369 1246/4270/15 1238/4281/366 +f 1236/4261/368 1243/4274/84 1244/4282/1 +f 1209/4283/89 1256/4284/84 1249/4285/1 +f 1223/4243/357 1254/4286/15 1253/4287/75 +f 1222/4244/358 1251/4288/108 1221/4245/359 +f 1225/4289/360 1254/4286/15 1224/4290/356 +f 1222/4244/358 1253/4287/75 1252/4291/2 +f 1220/4292/354 1251/4288/108 1250/4293/11 +f 1209/4294/89 1255/4295/95 1225/4289/360 +f 1220/4292/354 1256/4284/84 1226/4296/355 +f 1258/4297/374 1259/4298/375 1257/4299/376 +f 1260/4300/377 1261/4301/378 1259/4298/375 +f 1262/4302/379 1263/4303/380 1261/4301/378 +f 1264/4304/381 1265/4305/382 1263/4303/380 +f 1266/4306/383 1267/4307/384 1265/4305/382 +f 1268/4308/385 1269/4309/83 1267/4307/384 +f 1260/4300/377 1289/4310/93 1262/4302/379 +f 1270/4311/107 1271/4312/386 1269/4313/83 +f 1272/4314/387 1257/4299/376 1271/4312/386 +f 1263/4303/380 1275/4315/71 1261/4301/378 +f 1265/4316/382 1276/4317/388 1263/4303/380 +f 1259/4298/375 1275/4315/71 1274/4318/389 +f 1265/4316/382 1278/4319/390 1277/4320/391 +f 1257/4321/376 1279/4322/392 1271/4323/386 +f 1257/4321/376 1274/4318/389 1273/4324/393 +f 1279/4322/392 1280/4325/394 1286/4326/395 +f 1277/4320/391 1283/4327/396 1276/4317/388 +f 1274/4318/389 1282/4328/397 1281/4329/398 +f 1278/4319/390 1284/4330/399 1277/4320/391 +f 1276/4317/388 1282/4328/397 1275/4315/71 +f 1274/4318/389 1280/4325/394 1273/4324/393 +f 1271/4323/386 1279/4322/392 1269/4331/83 +f 1279/4322/392 1286/4326/395 1269/4331/83 +f 1269/4332/83 1278/4319/390 1267/4333/384 +f 1278/4319/390 1269/4332/83 1285/4334/400 +f 1268/4335/385 1291/4336/401 1292/4337/402 +f 1258/4338/374 1293/4339/403 1287/4340/404 +f 1260/4300/377 1287/4340/404 1288/4341/405 +f 1262/4302/379 1290/4342/406 1264/4304/381 +f 1266/4343/383 1290/4342/406 1291/4336/401 +f 1291/4336/401 1299/4344/407 1292/4337/402 +f 1290/4342/406 1296/4345/408 1297/4346/409 +f 1288/4341/405 1294/4347/410 1295/4348/411 +f 1293/4339/403 1294/4347/410 1287/4340/404 +f 1291/4336/401 1297/4346/409 1298/4349/412 +f 1288/4341/405 1296/4345/408 1289/4310/93 +f 1270/4350/107 1293/4339/403 1272/4351/387 +f 1293/4339/403 1270/4350/107 1300/4352/413 +f 1268/4335/385 1292/4337/402 1270/4353/107 +f 1292/4337/402 1299/4344/407 1270/4353/107 +f 1299/4354/407 1306/4355/18 1307/4356/65 +f 1296/4345/408 1305/4357/85 1297/4346/409 +f 1294/4358/410 1303/4359/96 1295/4348/411 +f 1270/4360/107 1307/4356/65 1301/4361/2 +f 1300/4362/413 1302/4363/13 1294/4358/410 +f 1300/4362/413 1301/4364/2 1308/4365/76 +f 1297/4346/409 1306/4355/18 1298/4366/412 +f 1295/4348/411 1304/4367/1 1296/4345/408 +f 1269/4368/83 1316/4369/96 1309/4370/1 +f 1283/4327/396 1314/4371/18 1313/4372/65 +f 1282/4328/397 1311/4373/76 1281/4329/398 +f 1285/4374/400 1314/4371/18 1284/4375/399 +f 1282/4328/397 1313/4372/65 1312/4376/2 +f 1280/4377/394 1311/4373/76 1310/4378/13 +f 1269/4379/83 1315/4380/85 1285/4374/400 +f 1280/4377/394 1316/4369/96 1286/4381/395 +f 1318/4382/414 1319/4383/415 1317/4384/416 +f 1320/4385/417 1321/4386/418 1319/4383/415 +f 1322/4387/419 1323/4388/420 1321/4386/418 +f 1324/4389/421 1325/4390/422 1323/4388/420 +f 1326/4391/423 1327/4392/424 1325/4390/422 +f 1328/4393/425 1329/4394/101 1327/4392/424 +f 1320/4385/417 1349/4395/89 1322/4387/419 +f 1330/4396/110 1331/4397/426 1329/4398/101 +f 1332/4399/427 1317/4384/416 1331/4397/426 +f 1323/4388/420 1335/4400/109 1321/4386/418 +f 1325/4401/422 1336/4402/428 1323/4388/420 +f 1319/4383/415 1335/4400/109 1334/4403/429 +f 1325/4401/422 1338/4404/430 1337/4405/431 +f 1317/4406/416 1339/4407/432 1331/4408/426 +f 1317/4406/416 1334/4403/429 1333/4409/433 +f 1339/4407/432 1340/4410/434 1346/4411/435 +f 1336/4402/428 1344/4412/436 1343/4413/437 +f 1335/4400/109 1341/4414/438 1334/4403/429 +f 1338/4404/430 1344/4412/436 1337/4405/431 +f 1336/4402/428 1342/4415/439 1335/4400/109 +f 1334/4403/429 1340/4410/434 1333/4409/433 +f 1331/4408/426 1339/4407/432 1329/4416/101 +f 1339/4407/432 1346/4411/435 1329/4416/101 +f 1329/4417/101 1338/4404/430 1327/4418/424 +f 1338/4404/430 1329/4417/101 1345/4419/440 +f 1328/4420/425 1351/4421/441 1352/4422/442 +f 1332/4423/427 1347/4424/443 1318/4425/414 +f 1318/4425/414 1348/4426/444 1320/4385/417 +f 1324/4389/421 1349/4395/89 1350/4427/445 +f 1326/4428/423 1350/4427/445 1351/4421/441 +f 1351/4421/441 1359/4429/446 1352/4422/442 +f 1350/4427/445 1356/4430/447 1357/4431/448 +f 1348/4426/444 1354/4432/449 1355/4433/450 +f 1353/4434/451 1354/4432/449 1347/4424/443 +f 1351/4421/441 1357/4431/448 1358/4435/452 +f 1349/4395/89 1355/4433/450 1356/4430/447 +f 1330/4436/110 1353/4434/451 1332/4423/427 +f 1353/4434/451 1330/4436/110 1360/4437/453 +f 1328/4420/425 1352/4422/442 1330/4438/110 +f 1352/4422/442 1359/4429/446 1330/4438/110 +f 1359/4439/446 1366/4440/11 1367/4441/108 +f 1356/4430/447 1365/4442/84 1357/4431/448 +f 1354/4443/449 1363/4444/95 1355/4433/450 +f 1330/4445/110 1367/4441/108 1361/4446/2 +f 1360/4447/453 1362/4448/15 1354/4443/449 +f 1360/4447/453 1361/4449/2 1368/4450/75 +f 1357/4431/448 1366/4440/11 1358/4451/452 +f 1356/4430/447 1363/4444/95 1364/4452/1 +f 1329/4453/101 1376/4454/95 1369/4455/1 +f 1343/4413/437 1374/4456/11 1373/4457/108 +f 1342/4415/439 1371/4458/75 1341/4414/438 +f 1344/4459/436 1375/4460/84 1374/4456/11 +f 1342/4415/439 1373/4457/108 1372/4461/2 +f 1340/4462/434 1371/4458/75 1370/4463/15 +f 1329/4464/101 1375/4460/84 1345/4465/440 +f 1340/4462/434 1376/4454/95 1346/4466/435 +f 1378/4467/422 1379/4468/421 1377/4469/423 +f 1380/4470/420 1381/4471/419 1379/4468/421 +f 1382/4472/418 1383/4473/417 1381/4471/419 +f 1384/4474/415 1385/4475/414 1383/4473/417 +f 1386/4476/416 1387/4477/427 1385/4475/414 +f 1388/4478/426 1389/4479/110 1387/4477/427 +f 1380/4470/420 1409/4480/109 1382/4472/418 +f 1390/4481/101 1391/4482/425 1389/4483/110 +f 1392/4484/424 1377/4469/423 1391/4482/425 +f 1381/4471/419 1396/4485/444 1395/4486/89 +f 1385/4487/414 1396/4485/444 1383/4473/417 +f 1379/4468/421 1395/4486/89 1394/4488/445 +f 1385/4487/414 1398/4489/454 1397/4490/443 +f 1377/4491/423 1399/4492/442 1391/4493/425 +f 1379/4468/421 1393/4494/441 1377/4491/423 +f 1399/4492/442 1400/4495/452 1406/4496/455 +f 1397/4490/443 1403/4497/450 1396/4485/444 +f 1394/4488/445 1402/4498/447 1401/4499/448 +f 1397/4490/443 1405/4500/453 1404/4501/449 +f 1396/4485/444 1402/4498/447 1395/4486/89 +f 1394/4488/445 1400/4495/452 1393/4494/441 +f 1391/4493/425 1399/4492/442 1389/4502/110 +f 1399/4492/442 1406/4496/455 1389/4502/110 +f 1389/4503/110 1398/4489/454 1387/4504/427 +f 1398/4489/454 1389/4503/110 1405/4500/453 +f 1388/4505/426 1411/4506/433 1412/4507/456 +f 1392/4508/424 1407/4509/431 1378/4510/422 +f 1378/4510/422 1408/4511/428 1380/4470/420 +f 1384/4474/415 1409/4480/109 1410/4512/457 +f 1386/4513/416 1410/4512/457 1411/4506/433 +f 1412/4507/456 1418/4514/434 1419/4515/435 +f 1409/4480/109 1417/4516/438 1410/4512/457 +f 1408/4511/428 1414/4517/436 1415/4518/437 +f 1413/4519/430 1414/4517/436 1407/4509/431 +f 1410/4512/457 1418/4514/434 1411/4506/433 +f 1408/4511/428 1416/4520/439 1409/4480/109 +f 1390/4521/101 1413/4519/430 1392/4508/424 +f 1413/4519/430 1390/4521/101 1420/4522/458 +f 1388/4505/426 1412/4507/456 1390/4523/101 +f 1412/4507/456 1419/4515/435 1390/4523/101 +f 1419/4524/435 1426/4525/15 1427/4526/95 +f 1416/4520/439 1425/4527/75 1417/4516/438 +f 1414/4528/436 1423/4529/108 1415/4518/437 +f 1390/4530/101 1427/4526/95 1421/4531/1 +f 1420/4532/458 1422/4533/11 1414/4528/436 +f 1420/4532/458 1421/4534/1 1428/4535/84 +f 1418/4536/434 1425/4527/75 1426/4525/15 +f 1416/4520/439 1423/4529/108 1424/4537/2 +f 1389/4538/110 1436/4539/108 1429/4540/2 +f 1403/4497/450 1434/4541/15 1433/4542/95 +f 1402/4498/447 1431/4543/84 1401/4499/448 +f 1405/4544/453 1434/4541/15 1404/4545/449 +f 1402/4498/447 1433/4542/95 1432/4546/1 +f 1400/4547/452 1431/4543/84 1430/4548/11 +f 1389/4549/110 1435/4550/75 1405/4544/453 +f 1400/4547/452 1436/4539/108 1406/4551/455 +f 1438/4552/382 1439/4553/381 1437/4554/383 +f 1440/4555/380 1441/4556/379 1439/4553/381 +f 1442/4557/378 1443/4558/377 1441/4556/379 +f 1444/4559/375 1445/4560/374 1443/4558/377 +f 1446/4561/376 1447/4562/387 1445/4560/374 +f 1448/4563/386 1449/4564/107 1447/4562/387 +f 1440/4555/380 1469/4565/71 1442/4557/378 +f 1450/4566/83 1451/4567/385 1449/4568/107 +f 1452/4569/384 1437/4554/383 1451/4567/385 +f 1443/4558/377 1455/4570/93 1441/4556/379 +f 1445/4571/374 1456/4572/405 1443/4558/377 +f 1441/4556/379 1454/4573/406 1439/4553/381 +f 1445/4571/374 1458/4574/403 1457/4575/404 +f 1437/4576/383 1459/4577/402 1451/4578/385 +f 1437/4576/383 1454/4573/406 1453/4579/401 +f 1459/4577/402 1460/4580/412 1466/4581/407 +f 1457/4575/404 1463/4582/411 1456/4572/405 +f 1454/4573/406 1462/4583/408 1461/4584/409 +f 1458/4574/403 1464/4585/410 1457/4575/404 +f 1456/4572/405 1462/4583/408 1455/4570/93 +f 1454/4573/406 1460/4580/412 1453/4579/401 +f 1451/4578/385 1459/4577/402 1449/4586/107 +f 1459/4577/402 1466/4581/407 1449/4586/107 +f 1449/4587/107 1458/4574/403 1447/4588/387 +f 1458/4574/403 1449/4587/107 1465/4589/459 +f 1448/4590/386 1471/4591/393 1472/4592/392 +f 1438/4593/382 1473/4594/390 1467/4595/391 +f 1440/4555/380 1467/4595/391 1468/4596/388 +f 1444/4559/375 1469/4565/71 1470/4597/389 +f 1444/4559/375 1471/4591/393 1446/4598/376 +f 1471/4591/393 1479/4599/395 1472/4592/392 +f 1470/4597/389 1476/4600/397 1477/4601/398 +f 1468/4596/388 1474/4602/399 1475/4603/396 +f 1473/4594/390 1474/4602/399 1467/4595/391 +f 1471/4591/393 1477/4601/398 1478/4604/394 +f 1468/4596/388 1476/4600/397 1469/4565/71 +f 1450/4605/83 1473/4594/390 1452/4606/384 +f 1473/4594/390 1450/4605/83 1480/4607/400 +f 1448/4590/386 1472/4592/392 1450/4608/83 +f 1472/4592/392 1479/4599/395 1450/4608/83 +f 1479/4609/395 1486/4610/13 1487/4611/96 +f 1476/4600/397 1485/4612/76 1477/4601/398 +f 1474/4613/399 1483/4614/65 1475/4603/396 +f 1450/4615/83 1487/4611/96 1481/4616/1 +f 1474/4613/399 1488/4617/85 1482/4618/18 +f 1480/4619/400 1481/4620/1 1488/4617/85 +f 1477/4601/398 1486/4610/13 1478/4621/394 +f 1476/4600/397 1483/4614/65 1484/4622/2 +f 1449/4623/107 1496/4624/65 1489/4625/2 +f 1463/4582/411 1494/4626/13 1493/4627/96 +f 1462/4583/408 1491/4628/85 1461/4584/409 +f 1465/4629/459 1494/4626/13 1464/4630/410 +f 1462/4583/408 1493/4627/96 1492/4631/1 +f 1460/4632/412 1491/4628/85 1490/4633/18 +f 1449/4634/107 1495/4635/76 1465/4629/459 +f 1466/4636/407 1490/4633/18 1496/4624/65 +f 1498/4637/342 1499/4638/341 1497/4639/343 +f 1500/4640/340 1501/4641/339 1499/4638/341 +f 1502/4642/338 1503/4643/337 1501/4641/339 +f 1504/4644/335 1505/4645/334 1503/4643/337 +f 1506/4646/336 1507/4647/347 1505/4645/334 +f 1508/4648/346 1509/4649/109 1507/4647/347 +f 1500/4640/340 1529/4650/110 1502/4642/338 +f 1510/4651/89 1511/4652/345 1509/4653/109 +f 1512/4654/344 1497/4639/343 1511/4652/345 +f 1503/4643/337 1515/4655/101 1501/4641/339 +f 1505/4656/334 1516/4657/364 1503/4643/337 +f 1499/4638/341 1515/4655/101 1514/4658/365 +f 1505/4656/334 1518/4659/372 1517/4660/363 +f 1497/4661/343 1519/4662/362 1511/4663/345 +f 1497/4661/343 1514/4658/365 1513/4664/361 +f 1519/4662/362 1520/4665/366 1526/4666/367 +f 1516/4657/364 1524/4667/370 1523/4668/371 +f 1514/4658/365 1522/4669/368 1521/4670/369 +f 1518/4659/372 1524/4667/370 1517/4660/363 +f 1515/4655/101 1523/4668/371 1522/4669/368 +f 1513/4664/361 1521/4670/369 1520/4665/366 +f 1511/4663/345 1519/4662/362 1509/4671/109 +f 1519/4662/362 1526/4666/367 1509/4671/109 +f 1509/4672/109 1518/4659/372 1507/4673/347 +f 1518/4659/372 1509/4672/109 1525/4674/373 +f 1508/4675/346 1531/4676/353 1532/4677/352 +f 1498/4678/342 1533/4679/350 1527/4680/351 +f 1500/4640/340 1527/4680/351 1528/4681/348 +f 1502/4642/338 1530/4682/349 1504/4644/335 +f 1506/4683/336 1530/4682/349 1531/4676/353 +f 1531/4676/353 1539/4684/355 1532/4677/352 +f 1530/4682/349 1536/4685/358 1537/4686/359 +f 1528/4681/348 1534/4687/356 1535/4688/357 +f 1533/4679/350 1534/4687/356 1527/4680/351 +f 1530/4682/349 1538/4689/354 1531/4676/353 +f 1528/4681/348 1536/4685/358 1529/4650/110 +f 1510/4690/89 1533/4679/350 1512/4691/344 +f 1533/4679/350 1510/4690/89 1540/4692/460 +f 1508/4675/346 1532/4677/352 1510/4693/89 +f 1532/4677/352 1539/4684/355 1510/4693/89 +f 1538/4694/354 1547/4695/84 1539/4696/355 +f 1536/4685/358 1545/4697/108 1537/4686/359 +f 1534/4698/356 1543/4699/75 1535/4688/357 +f 1510/4700/89 1547/4695/84 1541/4701/1 +f 1534/4698/356 1548/4702/95 1542/4703/15 +f 1540/4704/460 1541/4705/1 1548/4702/95 +f 1537/4686/359 1546/4706/11 1538/4694/354 +f 1536/4685/358 1543/4699/75 1544/4707/2 +f 1509/4708/109 1556/4709/75 1549/4710/2 +f 1523/4668/371 1554/4711/11 1553/4712/84 +f 1522/4669/368 1551/4713/95 1521/4670/369 +f 1525/4714/373 1554/4711/11 1524/4715/370 +f 1522/4669/368 1553/4712/84 1552/4716/1 +f 1520/4717/366 1551/4713/95 1550/4718/15 +f 1509/4719/109 1555/4720/108 1525/4714/373 +f 1520/4717/366 1556/4709/75 1526/4721/367 +f 1558/4722/302 1559/4723/301 1557/4724/303 +f 1560/4725/300 1561/4726/299 1559/4723/301 +f 1562/4727/298 1563/4728/297 1561/4726/299 +f 1564/4729/295 1565/4730/294 1563/4728/297 +f 1566/4731/296 1567/4732/307 1565/4730/294 +f 1568/4733/306 1569/4734/71 1567/4732/307 +f 1560/4725/300 1589/4735/107 1562/4727/298 +f 1570/4736/93 1571/4737/305 1569/4738/71 +f 1572/4739/304 1557/4724/303 1571/4737/305 +f 1563/4728/297 1575/4740/83 1561/4726/299 +f 1565/4741/294 1576/4742/325 1563/4728/297 +f 1559/4723/301 1575/4740/83 1574/4743/461 +f 1567/4744/307 1577/4745/324 1565/4741/294 +f 1557/4746/303 1579/4747/462 1571/4748/305 +f 1559/4723/301 1573/4749/321 1557/4746/303 +f 1579/4747/462 1580/4750/327 1586/4751/328 +f 1576/4742/325 1584/4752/333 1583/4753/331 +f 1575/4740/83 1581/4754/330 1574/4743/461 +f 1578/4755/323 1584/4752/333 1577/4745/324 +f 1576/4742/325 1582/4756/329 1575/4740/83 +f 1574/4743/461 1580/4750/327 1573/4749/321 +f 1571/4748/305 1579/4747/462 1569/4757/71 +f 1579/4747/462 1586/4751/328 1569/4757/71 +f 1569/4758/71 1578/4755/323 1567/4744/307 +f 1578/4755/323 1569/4758/71 1585/4759/463 +f 1568/4760/306 1591/4761/313 1592/4762/312 +f 1572/4763/304 1587/4764/311 1558/4765/302 +f 1558/4765/302 1588/4766/464 1560/4725/300 +f 1564/4729/295 1589/4735/107 1590/4767/309 +f 1566/4768/296 1590/4767/309 1591/4761/313 +f 1592/4762/312 1598/4769/314 1599/4770/465 +f 1590/4767/309 1596/4771/317 1597/4772/318 +f 1588/4766/464 1594/4773/319 1595/4774/316 +f 1593/4775/466 1594/4773/319 1587/4764/311 +f 1591/4761/313 1597/4772/318 1598/4769/314 +f 1588/4766/464 1596/4771/317 1589/4735/107 +f 1570/4776/93 1593/4775/466 1572/4763/304 +f 1593/4775/466 1570/4776/93 1600/4777/320 +f 1568/4760/306 1592/4762/312 1570/4778/93 +f 1592/4762/312 1599/4770/465 1570/4778/93 +f 1599/4779/465 1606/4780/18 1607/4781/85 +f 1596/4771/317 1605/4782/65 1597/4772/318 +f 1595/4774/316 1602/4783/13 1603/4784/76 +f 1570/4785/93 1607/4781/85 1601/4786/1 +f 1600/4787/320 1602/4783/13 1594/4788/319 +f 1570/4789/93 1608/4790/96 1600/4787/320 +f 1597/4772/318 1606/4780/18 1598/4791/314 +f 1596/4771/317 1603/4784/76 1604/4792/2 +f 1569/4793/71 1616/4794/76 1609/4795/2 +f 1583/4753/331 1614/4796/18 1613/4797/85 +f 1582/4756/329 1611/4798/96 1581/4754/330 +f 1585/4799/463 1614/4796/18 1584/4800/333 +f 1582/4756/329 1613/4797/85 1612/4801/1 +f 1580/4802/327 1611/4798/96 1610/4803/13 +f 1569/4804/71 1615/4805/65 1585/4799/463 +f 1580/4802/327 1616/4794/76 1586/4806/328 +f 1938/4807/467 1947/4808/468 1939/4809/469 +f 1960/4810/470 1941/4811/471 1957/4812/472 +f 1939/4809/469 1948/4813/473 1940/4814/474 +f 1959/4815/475 1942/4816/476 1943/4817/477 +f 1937/4818/478 1946/4819/479 1938/4807/467 +f 1959/4815/475 1944/4820/480 1960/4810/470 +f 1937/4821/478 1948/4813/473 1945/4822/481 +f 1945/4823/481 1950/4824/482 1946/4819/479 +f 1947/4808/468 1950/4824/482 1951/4825/483 +f 1948/4813/473 1951/4825/483 1952/4826/484 +f 1948/4813/473 1949/4827/485 1945/4822/481 +f 1949/4828/485 1954/4829/486 1950/4824/482 +f 1951/4825/483 1954/4829/486 1955/4830/487 +f 1952/4826/484 1955/4830/487 1956/4831/488 +f 1952/4826/484 1953/4832/489 1949/4827/485 +f 1953/4833/489 1958/4834/490 1954/4829/486 +f 1955/4830/487 1958/4834/490 1959/4815/475 +f 1955/4830/487 1960/4810/470 1956/4831/488 +f 1956/4831/488 1957/4812/472 1953/4832/489 +f 1957/4835/472 1942/4816/476 1958/4834/490 +f 1981/4836/491 1966/4837/492 1982/4838/493 +f 1983/4839/494 1966/4837/492 1967/4840/495 +f 1983/4839/494 1968/4841/496 1984/4842/497 +f 1984/4842/497 1965/4843/498 1981/4844/491 +f 1962/4845/499 1969/4846/500 1970/4847/501 +f 1962/4845/499 1971/4848/502 1963/4849/503 +f 1963/4849/503 1972/4850/504 1964/4851/505 +f 1961/4852/506 1972/4850/504 1969/4853/500 +f 1969/4846/500 1974/4854/507 1970/4847/501 +f 1970/4847/501 1975/4855/508 1971/4848/502 +f 1971/4848/502 1976/4856/509 1972/4850/504 +f 1969/4853/500 1976/4856/509 1973/4857/510 +f 1974/4854/507 1977/4858/511 1978/4859/512 +f 1974/4854/507 1979/4860/513 1975/4855/508 +f 1976/4856/509 1979/4860/513 1980/4861/514 +f 1973/4857/510 1980/4861/514 1977/4862/511 +f 1978/4859/512 1981/4836/491 1982/4838/493 +f 1978/4859/512 1983/4839/494 1979/4860/513 +f 1979/4860/513 1984/4842/497 1980/4861/514 +f 1977/4862/511 1984/4842/497 1981/4844/491 +f 1986/4863/515 2005/4864/516 2006/4865/517 +f 2007/4866/518 1986/4863/515 2006/4865/517 +f 1988/4867/519 2007/4866/518 2008/4868/520 +f 1985/4869/521 2008/4868/520 2005/4870/516 +f 1994/4871/522 1989/4872/523 1990/4873/524 +f 1995/4874/525 1990/4873/524 1991/4875/526 +f 1996/4876/527 1991/4875/526 1992/4877/528 +f 1989/4878/523 1996/4876/527 1992/4877/528 +f 1994/4871/522 1997/4879/529 1993/4880/530 +f 1999/4881/531 1994/4871/522 1995/4874/525 +f 2000/4882/532 1995/4874/525 1996/4876/527 +f 1993/4883/530 2000/4882/532 1996/4876/527 +f 2002/4884/533 1997/4879/529 1998/4885/534 +f 1999/4881/531 2002/4884/533 1998/4885/534 +f 2004/4886/535 1999/4881/531 2000/4882/532 +f 2001/4887/536 2000/4882/532 1997/4888/529 +f 2006/4865/517 2001/4889/536 2002/4884/533 +f 2003/4890/537 2006/4865/517 2002/4884/533 +f 2004/4886/535 2007/4866/518 2003/4890/537 +f 2005/4870/516 2004/4886/535 2001/4887/536 +f 2021/2938/279 2010/4891/278 2022/1549/278 +f 2028/2945/283 2017/4892/3 2029/1570/3 +f 2025/2942/282 2014/4893/2 2026/1561/2 +f 2022/1552/278 2011/4894/6 2023/1553/6 +f 2029/2946/3 2018/4895/281 2030/1573/281 +f 2026/1564/2 2015/4896/284 2027/1565/284 +f 2023/1555/6 2012/4897/285 2024/1556/285 +f 2030/2947/281 2020/4898/280 2031/1576/280 +f 2032/2937/1 2009/4899/279 2021/1546/279 +f 2027/2944/284 2016/4900/283 2028/1567/283 +f 2024/1558/285 2013/4901/282 2025/1559/282 +f 2056/4902/248 2043/2936/246 2044/1542/91 +f 2056/4902/248 2033/1547/249 2045/4903/250 +f 2045/4903/250 2034/1550/252 2046/4904/251 +f 2047/4905/253 2034/2939/252 2035/1551/12 +f 2047/4906/253 2036/1554/538 2048/4907/254 +f 2049/4908/256 2036/2941/538 2037/1557/255 +f 2049/4908/256 2038/1562/69 2050/4909/257 +f 2051/4910/243 2038/2943/69 2039/1563/241 +f 2051/4910/243 2040/1568/539 2052/4911/242 +f 2053/4912/244 2040/1569/539 2041/1571/14 +f 2054/4913/245 2041/1572/14 2042/1574/540 +f 2055/4914/247 2042/1575/540 2043/1577/246 +f 2070/4915/268 2047/4905/253 2071/4916/269 +f 2077/4917/259 2054/4913/245 2078/4918/265 +f 2074/4919/262 2051/4910/243 2075/4920/261 +f 2071/4921/269 2048/4907/254 2072/4922/260 +f 2078/4918/265 2055/4914/247 2079/4923/264 +f 2080/4924/258 2045/4903/250 2069/4925/263 +f 2075/4920/261 2052/4911/242 2076/4926/267 +f 2072/4922/260 2049/4908/256 2073/4927/266 +f 2079/4923/264 2056/4902/248 2080/4924/258 +f 2069/4925/263 2046/4904/251 2070/4915/268 +f 2076/4926/267 2053/4912/244 2077/4917/259 +f 2073/4927/266 2050/4909/257 2074/4919/262 +f 2068/4928/100 2079/4923/264 2080/4924/258 +f 2069/4925/263 2068/4929/100 2080/4924/258 +f 2070/4915/268 2057/4930/275 2069/4925/263 +f 2059/4931/17 2070/4915/268 2071/4916/269 +f 2060/4932/276 2071/4921/269 2072/4922/260 +f 2061/4933/277 2072/4922/260 2073/4927/266 +f 2074/4919/262 2061/4934/277 2073/4927/266 +f 2063/4935/270 2074/4919/262 2075/4920/261 +f 2064/4936/271 2075/4920/261 2076/4926/267 +f 2065/4937/16 2076/4926/267 2077/4917/259 +f 2066/4938/272 2077/4917/259 2078/4918/265 +f 2067/4939/273 2078/4918/265 2079/4923/264 +f 2085/4940/175 2084/4941/166 2088/4942/174 +f 2085/4940/175 2082/4943/170 2081/4944/168 +f 2086/4945/176 2083/4946/172 2082/4943/170 +f 2088/4947/174 2083/4946/172 2087/4948/173 +f 2089/4949/178 2088/4942/174 2092/4950/177 +f 2090/4951/179 2085/4940/175 2089/4949/178 +f 2090/4951/179 2087/4948/173 2086/4945/176 +f 2092/4952/177 2087/4948/173 2091/4953/180 +f 2096/4954/159 2089/4949/178 2092/4950/177 +f 2094/4955/163 2089/4949/178 2093/4956/160 +f 2095/4957/157 2090/4951/179 2094/4955/163 +f 2095/4957/157 2092/4952/177 2091/4953/180 +f 2100/4958/158 2093/4956/160 2096/4954/159 +f 2098/4959/162 2093/4956/160 2097/4960/161 +f 2099/4961/164 2094/4955/163 2098/4959/162 +f 2100/4962/158 2095/4957/157 2099/4961/164 +f 2081/4944/168 2104/4963/167 2084/4941/166 +f 2082/4943/170 2101/4964/169 2081/4944/168 +f 2082/4943/170 2103/4965/165 2102/4966/171 +f 2084/4967/166 2103/4965/165 2083/4946/172 +f 2112/4968/541 2105/4969/542 2109/4970/127 +f 2109/4970/127 2106/4971/543 2110/4972/130 +f 2106/4971/543 2111/4973/128 2110/4972/130 +f 2111/4973/128 2108/4974/544 2112/4975/541 +f 2116/4976/129 2109/4970/127 2113/4977/131 +f 2113/4977/131 2110/4972/130 2114/4978/133 +f 2110/4972/130 2115/4979/132 2114/4978/133 +f 2115/4979/132 2112/4975/541 2116/4980/129 +f 2120/4981/545 2113/4977/131 2117/4982/546 +f 2113/4977/131 2118/4983/547 2117/4982/546 +f 2114/4978/133 2119/4984/548 2118/4983/547 +f 2115/4979/132 2120/4985/545 2119/4984/548 +f 2128/4986/549 2117/4982/546 2125/4987/550 +f 2117/4982/546 2126/4988/551 2125/4987/550 +f 2118/4983/547 2127/4989/552 2126/4988/551 +f 2127/4989/552 2120/4985/545 2128/4990/549 +f 2124/4991/553 2105/4969/542 2108/4992/544 +f 2121/4993/554 2106/4971/543 2105/4969/542 +f 2106/4971/543 2123/4994/555 2107/4995/556 +f 2123/4994/555 2108/4974/544 2107/4995/556 +f 2147/4996/557 2132/4997/558 2131/4998/559 +f 2132/4999/558 2133/5000/150 2136/5001/148 +f 2129/5002/560 2134/5003/151 2133/5000/150 +f 2134/5003/151 2131/4998/559 2135/5004/153 +f 2135/5004/153 2132/4997/558 2136/5005/148 +f 2136/5001/148 2137/5006/154 2140/5007/156 +f 2137/5006/154 2134/5003/151 2138/5008/155 +f 2138/5008/155 2135/5004/153 2139/5009/561 +f 2135/5004/153 2140/5010/156 2139/5009/561 +f 2140/5007/156 2141/5011/562 2144/5012/563 +f 2141/5011/562 2138/5008/155 2142/5013/564 +f 2142/5013/564 2139/5009/561 2143/5014/565 +f 2139/5009/561 2144/5015/563 2143/5014/565 +f 2152/5016/566 2141/5011/562 2149/5017/567 +f 2145/5018/568 2130/5019/569 2129/5002/560 +f 2151/5020/570 2144/5015/563 2152/5021/566 +f 2130/5019/569 2147/4996/557 2131/4998/559 +f 2141/5011/562 2150/5022/571 2149/5017/567 +f 2148/5023/572 2129/5002/560 2132/4999/558 +f 2142/5013/564 2151/5020/570 2150/5022/571 +f 2154/5024/573 2167/5025/574 2155/5026/575 +f 2167/5027/574 2156/5028/576 2155/5026/575 +f 2168/5029/577 2157/5030/578 2156/5028/576 +f 2169/5031/579 2158/5032/580 2157/5030/578 +f 2170/5033/581 2159/5034/582 2158/5032/580 +f 2171/5035/583 2160/5036/584 2159/5034/582 +f 2160/5036/584 2173/5037/585 2161/5038/586 +f 2173/5039/585 2162/5040/587 2161/5038/586 +f 2162/5041/587 2175/5042/588 2163/5043/589 +f 2175/5044/588 2164/5045/590 2163/5043/589 +f 2164/5045/590 2165/5046/591 2153/5047/592 +f 2153/5047/592 2166/5048/593 2154/5024/573 +f 2159/5034/582 2184/5049/594 2183/5050/595 +f 2157/5030/578 2180/5051/596 2156/5028/576 +f 2164/5045/590 2187/5052/597 2163/5043/589 +f 2154/5024/573 2177/5053/598 2153/5047/592 +f 2161/5038/586 2184/5049/594 2160/5036/584 +f 2157/5030/578 2182/5054/599 2181/5055/600 +f 2164/5045/590 2177/5053/598 2188/5056/601 +f 2154/5024/573 2179/5057/602 2178/5058/603 +f 2162/5040/587 2185/5059/604 2161/5038/586 +f 2158/5032/580 2183/5050/595 2182/5054/599 +f 2156/5028/576 2179/5057/602 2155/5026/575 +f 2163/5043/589 2186/5060/605 2162/5041/587 +f 2178/5058/603 2191/2948/606 2190/1578/607 +f 2179/5057/602 2192/1581/608 2191/1583/606 +f 2180/5051/596 2193/1584/609 2192/1586/608 +f 2182/5054/599 2193/1589/609 2181/5055/600 +f 2182/5054/599 2195/2952/610 2194/1590/611 +f 2184/5049/594 2195/1595/610 2183/5050/595 +f 2184/5049/594 2197/2954/612 2196/1596/613 +f 2186/5061/605 2197/1599/612 2185/5059/604 +f 2187/5052/597 2198/1602/614 2186/5060/605 +f 2188/5056/601 2199/1605/615 2187/5052/597 +f 2177/5053/598 2200/1610/616 2188/5056/601 +f 2177/5053/598 2190/2959/607 2189/1611/617 +f 2208/1598/618 2221/5062/619 2220/5063/618 +f 2206/2951/620 2217/5064/621 2205/1588/621 +f 2201/2958/622 2224/5065/623 2212/1609/623 +f 2202/1580/624 2215/5066/625 2213/5067/624 +f 2210/1600/289 2221/5068/619 2209/1601/619 +f 2206/1592/620 2219/5069/626 2218/5070/620 +f 2204/2949/287 2215/5071/625 2203/1582/625 +f 2210/1604/289 2223/5072/627 2222/5073/289 +f 2207/1594/626 2220/5074/618 2219/5075/626 +f 2205/2950/621 2216/5076/287 2204/1585/287 +f 2212/1606/623 2223/5077/627 2211/1607/627 +f 2202/1612/624 2214/5078/622 2201/1613/622 +f 2176/5079/623 2225/1620/622 2165/5046/622 +f 2167/5025/625 2226/1623/624 2227/1625/625 +f 2173/5039/619 2234/1626/289 2174/5080/289 +f 2170/5033/620 2231/1629/626 2171/5081/626 +f 2167/5027/625 2228/1634/287 2168/5082/287 +f 2175/5042/627 2234/1635/289 2235/1637/627 +f 2172/5083/618 2231/2976/626 2232/1638/618 +f 2168/5029/287 2229/1643/621 2169/5084/621 +f 2175/5044/627 2236/1644/623 2176/5085/623 +f 2165/5086/622 2226/1649/624 2166/5048/624 +f 2172/5087/618 2233/1652/619 2173/5037/619 +f 2169/5031/621 2230/1617/620 2170/5088/620 +f 2242/5089/620 2255/1656/626 2243/5090/626 +f 2239/5091/625 2252/1679/287 2240/5092/287 +f 2247/5093/627 2258/1653/289 2259/1655/627 +f 2243/5090/626 2256/1658/618 2244/5094/618 +f 2241/5095/621 2252/1679/287 2253/1659/621 +f 2247/5093/627 2260/1663/623 2248/5096/623 +f 2237/5097/622 2250/1666/624 2238/5098/624 +f 2244/5094/618 2257/1668/619 2245/5099/619 +f 2242/5089/620 2253/1659/621 2254/1669/620 +f 2248/5096/623 2249/1664/622 2237/5097/622 +f 2239/5091/625 2250/1666/624 2251/1674/625 +f 2245/5099/619 2258/1675/289 2246/5100/289 +f 2266/2988/620 2279/5101/626 2267/1678/626 +f 2264/1681/287 2275/5102/625 2276/5103/287 +f 2271/1654/627 2282/5104/289 2283/5105/627 +f 2267/2982/626 2280/5106/618 2268/1657/618 +f 2264/1660/287 2277/5107/621 2265/1661/621 +f 2272/1662/623 2283/5108/627 2284/5109/623 +f 2262/2984/622 2273/5110/624 2261/1665/624 +f 2268/2985/618 2281/5111/619 2269/1667/619 +f 2265/1670/621 2278/5112/620 2266/1671/620 +f 2262/1672/622 2284/5113/623 2274/5114/622 +f 2261/2987/624 2275/5115/625 2263/1673/625 +f 2269/1676/619 2282/5116/289 2270/1677/289 +f 2298/5117/628 2287/5118/629 2286/5119/630 +f 2299/5120/631 2288/5121/632 2287/5118/629 +f 2288/5121/632 2301/5122/633 2289/5123/634 +f 2289/5123/634 2302/5124/635 2290/5125/636 +f 2302/5126/635 2291/5127/637 2290/5125/636 +f 2291/5127/637 2304/5128/638 2292/5129/639 +f 2304/5130/638 2293/5131/640 2292/5129/639 +f 2305/5132/641 2294/5133/642 2293/5131/640 +f 2306/5134/643 2295/5135/644 2294/5136/642 +f 2307/5137/645 2296/5138/646 2295/5135/644 +f 2296/5138/646 2297/5139/647 2285/5140/648 +f 2297/5141/647 2286/5119/630 2285/5140/648 +f 2292/5129/639 2315/5142/649 2291/5127/637 +f 2288/5121/632 2313/5143/650 2312/5144/651 +f 2296/5138/646 2319/5145/652 2295/5135/644 +f 2286/5119/630 2309/5146/653 2285/5140/648 +f 2293/5131/640 2316/5147/654 2292/5129/639 +f 2290/5125/636 2313/5143/650 2289/5123/634 +f 2285/5140/648 2320/5148/655 2296/5138/646 +f 2286/5119/630 2311/5149/656 2310/5150/657 +f 2294/5133/642 2317/5151/658 2293/5131/640 +f 2290/5125/636 2315/5142/649 2314/5152/659 +f 2288/5121/632 2311/5149/656 2287/5118/629 +f 2295/5135/644 2318/5153/660 2294/5136/642 +f 2310/5150/657 2323/1685/661 2322/1687/662 +f 2312/5144/651 2323/1690/661 2311/5149/656 +f 2312/5144/651 2325/1691/663 2324/1693/664 +f 2314/5152/659 2325/1696/663 2313/5143/650 +f 2314/5152/659 2327/3002/665 2326/1697/666 +f 2315/5142/649 2328/1700/667 2327/1702/665 +f 2316/5147/654 2329/3004/668 2328/1703/667 +f 2318/5154/660 2329/1706/668 2317/5151/658 +f 2319/5145/652 2330/1709/669 2318/5153/660 +f 2320/5148/655 2331/1712/670 2319/5145/652 +f 2309/5146/653 2332/1715/671 2320/5148/655 +f 2310/5150/657 2321/1718/672 2309/5146/653 +f 2340/1705/673 2353/5155/674 2352/5156/673 +f 2338/3001/675 2349/5157/676 2337/1695/676 +f 2333/1716/677 2356/5158/678 2344/1717/678 +f 2335/2998/679 2345/5159/680 2334/1686/680 +f 2342/1707/289 2353/5160/674 2341/1708/674 +f 2339/1698/681 2350/5161/675 2338/1699/675 +f 2336/2999/287 2347/5162/679 2335/1689/679 +f 2343/1710/682 2354/5163/289 2342/1711/289 +f 2339/1701/681 2352/5164/673 2351/5165/681 +f 2336/1692/287 2349/5166/676 2348/5167/287 +f 2344/1713/678 2355/5168/682 2343/1714/682 +f 2334/1719/680 2346/5169/677 2333/1720/677 +f 2308/5170/678 2357/1727/677 2297/5139/677 +f 2299/5171/679 2358/1730/680 2359/1732/679 +f 2305/5132/674 2366/1733/289 2306/5172/289 +f 2303/5173/681 2362/3023/675 2363/1736/681 +f 2300/5174/287 2359/3024/679 2360/1739/287 +f 2306/5134/289 2367/1744/682 2307/5175/682 +f 2304/5128/673 2363/1745/681 2364/1747/673 +f 2300/5176/287 2361/1750/676 2301/5122/676 +f 2307/5137/682 2368/1751/678 2308/5177/678 +f 2297/5141/677 2358/1756/680 2298/5178/680 +f 2304/5130/673 2365/1759/674 2305/5179/674 +f 2302/5124/675 2361/3019/676 2362/1724/675 +f 2375/5180/681 2386/1776/675 2387/1763/681 +f 2372/5181/287 2383/1781/679 2384/1766/287 +f 2378/5182/289 2391/1762/682 2379/5183/682 +f 2375/5180/681 2388/1765/673 2376/5184/673 +f 2372/5181/287 2385/1768/676 2373/5185/676 +f 2380/5186/678 2391/1762/682 2392/1770/678 +f 2370/5187/680 2381/1771/677 2382/1773/680 +f 2376/5184/673 2389/1775/674 2377/5188/674 +f 2374/5189/675 2385/1768/676 2386/1776/675 +f 2380/5186/678 2381/1771/677 2369/5190/677 +f 2371/5191/679 2382/1773/680 2383/1781/679 +f 2378/5192/289 2389/1775/674 2390/1782/289 +f 2399/1786/681 2410/5193/675 2411/5194/681 +f 2395/1787/679 2408/5195/287 2396/1788/287 +f 2402/3031/289 2415/5196/682 2403/1761/682 +f 2400/1764/673 2411/5197/681 2412/5198/673 +f 2396/3033/287 2409/5199/676 2397/1767/676 +f 2403/3034/682 2416/5200/678 2404/1769/678 +f 2394/3035/677 2405/5201/680 2393/1772/680 +f 2400/3036/673 2413/5202/674 2401/1774/674 +f 2397/1777/676 2410/5203/675 2398/1778/675 +f 2394/1779/677 2416/5204/678 2406/5205/677 +f 2393/3038/680 2407/5206/679 2395/1780/679 +f 2401/1783/674 2414/5207/289 2402/1784/289 +f 2418/5208/683 2431/5209/684 2419/5210/685 +f 2431/5211/684 2420/5212/686 2419/5210/685 +f 2432/5213/687 2421/5214/688 2420/5212/686 +f 2433/5215/689 2422/5216/690 2421/5214/688 +f 2434/5217/691 2423/5218/692 2422/5216/690 +f 2435/5219/693 2424/5220/694 2423/5218/692 +f 2436/5221/695 2425/5222/696 2424/5220/694 +f 2437/5223/697 2426/5224/698 2425/5222/696 +f 2426/5225/698 2439/5226/699 2427/5227/700 +f 2427/5227/700 2440/5228/701 2428/5229/702 +f 2428/5229/702 2429/5230/703 2417/5231/704 +f 2417/5231/704 2430/5232/705 2418/5208/683 +f 2424/5220/694 2447/5233/706 2423/5218/692 +f 2421/5214/688 2444/5234/707 2420/5212/686 +f 2428/5229/702 2451/5235/708 2427/5227/700 +f 2418/5208/683 2441/5236/709 2417/5231/704 +f 2424/5220/694 2449/5237/710 2448/5238/711 +f 2422/5216/690 2445/5239/712 2421/5214/688 +f 2428/5229/702 2441/5236/709 2452/5240/713 +f 2419/5210/685 2442/5241/714 2418/5208/683 +f 2426/5224/698 2449/5237/710 2425/5222/696 +f 2422/5216/690 2447/5233/706 2446/5242/715 +f 2419/5210/685 2444/5234/707 2443/5243/716 +f 2427/5227/700 2450/5244/717 2426/5225/698 +f 2442/5241/714 2455/1792/718 2454/1794/719 +f 2444/5234/707 2455/1797/718 2443/5243/716 +f 2444/5234/707 2457/1798/720 2456/1800/721 +f 2446/5242/715 2457/1803/720 2445/5239/712 +f 2446/5242/715 2459/1804/722 2458/1806/723 +f 2448/5238/711 2459/1809/722 2447/5233/706 +f 2449/5237/710 2460/1810/724 2448/5238/711 +f 2449/5237/710 2462/3055/725 2461/1813/726 +f 2451/5235/708 2462/1816/725 2450/5244/717 +f 2452/5240/713 2463/1821/727 2451/5235/708 +f 2441/5236/709 2464/1822/728 2452/5240/713 +f 2441/5236/709 2454/3059/719 2453/1825/729 +f 2472/1812/730 2485/5245/731 2484/5246/730 +f 2470/3051/732 2481/5247/733 2469/1802/733 +f 2465/1823/734 2488/5248/735 2476/1824/735 +f 2466/1793/736 2479/5249/737 2477/5250/736 +f 2474/1814/291 2485/5251/731 2473/1815/731 +f 2470/1805/732 2483/5252/738 2482/5253/732 +f 2468/3049/293 2479/5254/737 2467/1796/737 +f 2474/1818/291 2487/5255/739 2486/5256/291 +f 2471/1808/738 2484/5257/730 2483/5258/738 +f 2469/3050/733 2480/5259/293 2468/1799/293 +f 2475/1820/739 2488/5260/735 2487/5261/739 +f 2465/1827/734 2477/5262/736 2478/5263/734 +f 2440/5264/735 2489/1836/734 2429/5230/734 +f 2430/5265/736 2491/1837/737 2431/5209/737 +f 2438/5266/291 2497/3072/731 2498/1840/291 +f 2434/5217/732 2495/1845/738 2435/5267/738 +f 2432/5268/293 2491/3074/737 2492/1846/293 +f 2438/5269/291 2499/1851/739 2439/5226/739 +f 2436/5270/730 2495/3076/738 2496/1852/730 +f 2433/5271/733 2492/3077/293 2493/1855/733 +f 2440/5228/735 2499/3078/739 2500/1858/735 +f 2430/5232/736 2489/3079/734 2490/1861/736 +f 2436/5221/730 2497/1864/731 2437/5272/731 +f 2434/5273/732 2493/1831/733 2494/1833/732 +f 2506/5274/732 2519/1870/738 2507/5275/738 +f 2503/5276/737 2516/1896/293 2504/5277/293 +f 2510/5278/291 2523/1867/739 2511/5279/739 +f 2507/5275/738 2520/1872/730 2508/5280/730 +f 2505/5281/733 2516/1896/293 2517/1873/733 +f 2512/5282/735 2523/1867/739 2524/1876/735 +f 2502/5283/736 2513/1888/734 2514/1879/736 +f 2509/5284/731 2520/1872/730 2521/1883/731 +f 2505/5281/733 2518/1884/732 2506/5274/732 +f 2512/5282/735 2513/1888/734 2501/5285/734 +f 2503/5276/737 2514/1879/736 2515/1890/737 +f 2509/5284/731 2522/1891/291 2510/5286/291 +f 2530/3086/732 2543/5287/738 2531/1894/738 +f 2527/3087/737 2540/5288/293 2528/1895/293 +f 2534/1868/291 2547/5289/739 2535/1869/739 +f 2531/3082/738 2544/5290/730 2532/1871/730 +f 2528/1874/293 2541/5291/733 2529/1875/733 +f 2535/1877/739 2548/5292/735 2536/1878/735 +f 2526/1880/734 2537/5293/736 2525/1881/736 +f 2532/3083/730 2545/5294/731 2533/1882/731 +f 2530/1886/732 2541/5295/733 2542/5296/732 +f 2526/1887/734 2548/5297/735 2538/5298/734 +f 2525/3085/736 2539/5299/737 2527/1889/737 +f 2534/1893/291 2545/5300/731 2546/5301/291 +f 2562/5302/740 2551/5303/741 2550/5304/742 +f 2563/5305/743 2552/5306/744 2551/5303/741 +f 2552/5306/744 2565/5307/745 2553/5308/746 +f 2553/5308/746 2566/5309/747 2554/5310/748 +f 2566/5311/747 2555/5312/749 2554/5310/748 +f 2555/5312/749 2568/5313/750 2556/5314/751 +f 2568/5315/750 2557/5316/752 2556/5314/751 +f 2569/5317/753 2558/5318/754 2557/5316/752 +f 2570/5319/755 2559/5320/756 2558/5321/754 +f 2571/5322/757 2560/5323/758 2559/5320/756 +f 2560/5323/758 2561/5324/759 2549/5325/760 +f 2561/5326/759 2550/5304/742 2549/5325/760 +f 2556/5314/751 2579/5327/761 2555/5312/749 +f 2553/5308/746 2576/5328/762 2552/5306/744 +f 2560/5323/758 2583/5329/763 2559/5320/756 +f 2550/5304/742 2573/5330/764 2549/5325/760 +f 2557/5316/752 2580/5331/765 2556/5314/751 +f 2554/5310/748 2577/5332/766 2553/5308/746 +f 2560/5323/758 2573/5330/764 2584/5333/767 +f 2550/5304/742 2575/5334/768 2574/5335/769 +f 2558/5318/754 2581/5336/770 2557/5316/752 +f 2554/5310/748 2579/5327/761 2578/5337/771 +f 2552/5306/744 2575/5334/768 2551/5303/741 +f 2559/5320/756 2582/5338/772 2558/5321/754 +f 2575/5334/768 2586/1900/773 2574/5335/769 +f 2575/5334/768 2588/1903/774 2587/1905/775 +f 2576/5328/762 2589/1906/776 2588/1908/774 +f 2577/5332/766 2590/1909/777 2589/1911/776 +f 2579/5327/761 2590/1912/777 2578/5337/771 +f 2580/5331/765 2591/1917/778 2579/5327/761 +f 2581/5336/770 2592/1918/779 2580/5331/765 +f 2581/5336/770 2594/3104/780 2593/1921/781 +f 2582/5338/772 2595/1924/782 2594/1926/780 +f 2584/5333/767 2595/1929/782 2583/5329/763 +f 2573/5330/764 2596/1932/783 2584/5333/767 +f 2573/5330/764 2586/3108/773 2585/1933/784 +f 2604/1920/785 2617/5339/786 2616/5340/785 +f 2602/3100/787 2613/5341/788 2601/1910/788 +f 2597/3107/789 2620/5342/790 2608/1931/790 +f 2599/1901/791 2609/5343/792 2598/1902/792 +f 2606/1922/291 2617/5344/786 2605/1923/786 +f 2602/1914/787 2615/5345/793 2614/5346/787 +f 2599/1904/791 2612/5347/293 2611/5348/791 +f 2606/1925/291 2619/5349/794 2618/5350/291 +f 2604/3102/785 2615/5351/793 2603/1916/793 +f 2601/3099/788 2612/5352/293 2600/1907/293 +f 2608/3106/790 2619/5353/794 2607/1928/794 +f 2597/1935/789 2609/5354/792 2610/5355/789 +f 2561/5324/789 2632/3119/790 2621/1942/789 +f 2562/5302/792 2623/1945/791 2563/5356/791 +f 2569/5317/786 2630/1948/291 2570/5357/291 +f 2567/5358/793 2626/3122/787 2627/1951/793 +f 2564/5359/293 2623/1954/791 2624/1956/293 +f 2571/5360/794 2630/1957/291 2631/1959/794 +f 2567/5361/793 2628/1962/785 2568/5313/785 +f 2564/5362/293 2625/1965/788 2565/5307/788 +f 2572/5363/790 2631/3127/794 2632/1966/790 +f 2561/5326/789 2622/1971/792 2562/5364/792 +f 2568/5315/785 2629/1974/786 2569/5365/786 +f 2566/5309/787 2625/3118/788 2626/1939/787 +f 2638/5366/787 2651/1978/793 2639/5367/793 +f 2635/5368/791 2648/1981/293 2636/5369/293 +f 2642/5370/291 2655/1977/794 2643/5371/794 +f 2639/5367/793 2652/1980/785 2640/5372/785 +f 2636/5369/293 2649/1983/788 2637/5373/788 +f 2644/5374/790 2655/1977/794 2656/1984/790 +f 2633/5375/789 2646/1987/792 2634/5376/792 +f 2640/5372/785 2653/1991/786 2641/5377/786 +f 2638/5366/787 2649/1983/788 2650/1992/787 +f 2633/5375/789 2656/1984/790 2645/1996/789 +f 2634/5376/792 2647/1998/791 2635/5368/791 +f 2642/5378/291 2653/1991/786 2654/1999/291 +f 2662/2002/787 2675/5379/793 2663/2003/793 +f 2660/2004/293 2671/5380/791 2672/5381/293 +f 2666/3130/291 2679/5382/794 2667/1976/794 +f 2663/3131/793 2676/5383/785 2664/1979/785 +f 2660/3132/293 2673/5384/788 2661/1982/788 +f 2667/1985/794 2680/5385/790 2668/1986/790 +f 2657/1989/792 2670/5386/789 2669/5387/792 +f 2664/3133/785 2677/5388/786 2665/1990/786 +f 2662/1994/787 2673/5389/788 2674/5390/787 +f 2658/1995/789 2680/5391/790 2670/5392/789 +f 2657/3135/792 2671/5393/791 2659/1997/791 +f 2666/2001/291 2677/5394/786 2678/5395/291 +f 2031/1543/280 2019/5396/1 2032/1544/1 +f 2057/5397/279 2681/2013/1 2068/4929/1 +f 2066/5398/281 2682/2014/280 2683/2016/281 +f 2060/4932/285 2690/2017/6 2059/5399/6 +f 2062/5400/2 2686/2020/284 2687/2022/2 +f 2066/4938/281 2684/2023/3 2065/5401/3 +f 2059/4931/6 2691/2028/278 2058/5402/278 +f 2062/5403/2 2688/2029/282 2061/4934/282 +f 2065/4937/3 2685/2034/283 2064/5404/283 +f 2058/5405/278 2692/2035/279 2057/4930/279 +f 2068/4928/1 2682/2040/280 2067/5406/280 +f 2061/4933/282 2689/2043/285 2060/5407/285 +f 2064/4936/283 2686/2008/284 2063/5408/284 +f 2698/5409/284 2711/2071/2 2699/5410/2 +f 2695/5411/281 2708/2050/3 2696/5412/3 +f 2702/5413/6 2715/2046/278 2703/5414/278 +f 2699/5410/2 2712/2047/282 2700/5415/282 +f 2696/5412/3 2709/2052/283 2697/5416/283 +f 2703/5414/278 2716/2053/279 2704/5417/279 +f 2693/5418/1 2706/2058/280 2694/5419/280 +f 2700/5415/282 2713/2060/285 2701/5420/285 +f 2697/5416/283 2710/2061/284 2698/5409/284 +f 2704/5417/279 2705/2056/1 2693/5418/1 +f 2694/5419/280 2707/2066/281 2695/5411/281 +f 2701/5420/285 2714/2067/6 2702/5421/6 +f 2722/3164/284 2735/5422/2 2723/2070/2 +f 2719/2072/281 2732/5423/3 2720/2073/3 +f 2726/3158/6 2739/5424/278 2727/2045/278 +f 2723/2048/2 2736/5425/282 2724/2049/282 +f 2720/3159/3 2733/5426/283 2721/2051/283 +f 2727/2054/278 2740/5427/279 2728/2055/279 +f 2718/3160/1 2729/5428/280 2717/2057/280 +f 2724/3161/282 2737/5429/285 2725/2059/285 +f 2721/2062/283 2734/5430/284 2722/2063/284 +f 2718/2064/1 2740/5431/279 2730/5432/1 +f 2717/3163/280 2731/5433/281 2719/2065/281 +f 2725/2068/285 2738/5434/6 2726/2069/6 +f 2752/5435/292 2753/2082/5 2741/5436/5 +f 2742/5437/290 2755/2085/293 2743/5438/293 +f 2749/5439/291 2762/2086/6 2750/5440/6 +f 2746/5441/288 2759/2089/4 2747/5442/4 +f 2743/5438/293 2756/2092/3 2744/5443/3 +f 2750/5444/6 2763/2097/289 2751/5445/289 +f 2747/5442/4 2760/2099/286 2748/5446/286 +f 2744/5443/3 2757/2077/287 2745/5447/287 +f 2751/5445/289 2764/2080/292 2752/5435/292 +f 2742/5437/290 2753/2082/5 2754/2083/290 +f 2749/5439/291 2760/2099/286 2761/2105/291 +f 2746/5441/288 2757/2077/287 2758/2079/288 +f 2770/5448/288 2783/2111/4 2771/5449/4 +f 2767/5450/293 2780/2114/3 2768/5451/3 +f 2774/5452/6 2787/2110/289 2775/5453/289 +f 2771/5449/4 2784/2113/286 2772/5454/286 +f 2768/5451/3 2781/2116/287 2769/5455/287 +f 2775/5453/289 2788/2117/292 2776/5456/292 +f 2765/5457/5 2778/2120/290 2766/5458/290 +f 2773/5459/291 2784/2113/286 2785/2123/291 +f 2769/5455/287 2782/2127/288 2770/5448/288 +f 2765/5457/5 2788/2117/292 2777/2129/5 +f 2766/5458/290 2779/2131/293 2767/5450/293 +f 2773/5459/291 2786/2132/6 2774/5460/6 +f 2794/2135/288 2807/5461/4 2795/2136/4 +f 2791/2137/293 2804/5462/3 2792/2138/3 +f 2798/3180/6 2811/5463/289 2799/2109/289 +f 2795/3181/4 2808/5464/286 2796/2112/286 +f 2792/3182/3 2805/5465/287 2793/2115/287 +f 2799/2118/289 2812/5466/292 2800/2119/292 +f 2790/2121/5 2801/5467/290 2789/2122/290 +f 2796/2124/286 2809/5468/291 2797/2125/291 +f 2793/3183/287 2806/5469/288 2794/2126/288 +f 2800/3184/292 2802/5470/5 2790/2128/5 +f 2789/3185/290 2803/5471/293 2791/2130/293 +f 2797/2133/291 2810/5472/6 2798/2134/6 +f 2814/5473/795 2823/5474/796 2815/5475/797 +f 2836/5476/798 2817/5477/799 2833/5478/800 +f 2815/5475/797 2824/5479/801 2816/5480/802 +f 2835/5481/803 2818/5482/804 2819/5483/805 +f 2813/5484/806 2822/5485/807 2814/5473/795 +f 2835/5481/803 2820/5486/808 2836/5476/798 +f 2813/5487/806 2824/5479/801 2821/5488/809 +f 2821/5489/809 2826/5490/810 2822/5485/807 +f 2823/5474/796 2826/5490/810 2827/5491/514 +f 2824/5479/801 2827/5491/514 2828/5492/513 +f 2824/5479/801 2825/5493/512 2821/5488/809 +f 2825/5494/512 2830/5495/510 2826/5490/810 +f 2827/5491/514 2830/5495/510 2831/5496/509 +f 2828/5492/513 2831/5496/509 2832/5497/508 +f 2828/5492/513 2829/5498/507 2825/5493/512 +f 2829/5499/507 2834/5500/811 2830/5495/510 +f 2831/5496/509 2834/5500/811 2835/5481/803 +f 2831/5496/509 2836/5476/798 2832/5497/508 +f 2832/5497/508 2833/5478/800 2829/5498/507 +f 2833/5501/800 2818/5482/804 2834/5500/811 +f 2857/5502/812 2842/5503/813 2858/5504/814 +f 2859/5505/815 2842/5503/813 2843/5506/816 +f 2859/5505/815 2844/5507/817 2860/5508/818 +f 2860/5508/818 2841/5509/819 2857/5510/812 +f 2838/5511/820 2845/5512/821 2846/5513/822 +f 2838/5511/820 2847/5514/823 2839/5515/824 +f 2839/5515/824 2848/5516/825 2840/5517/826 +f 2837/5518/827 2848/5516/825 2845/5519/821 +f 2845/5512/821 2850/5520/489 2846/5513/822 +f 2846/5513/822 2851/5521/488 2847/5514/823 +f 2847/5514/823 2852/5522/487 2848/5516/825 +f 2845/5519/821 2852/5522/487 2849/5523/486 +f 2850/5520/489 2853/5524/828 2854/5525/485 +f 2850/5520/489 2855/5526/484 2851/5521/488 +f 2852/5522/487 2855/5526/484 2856/5527/483 +f 2849/5523/486 2856/5527/483 2853/5528/828 +f 2854/5525/485 2857/5502/812 2858/5504/814 +f 2854/5525/485 2859/5505/815 2855/5526/484 +f 2855/5526/484 2860/5508/818 2856/5527/483 +f 2853/5528/828 2860/5508/818 2857/5510/812 +f 2862/5529/523 2881/5530/522 2882/5531/530 +f 2883/5532/527 2862/5529/523 2882/5531/530 +f 2864/5533/526 2883/5532/527 2884/5534/525 +f 2861/5535/524 2884/5534/525 2881/5536/522 +f 2870/5537/516 2865/5538/515 2866/5539/521 +f 2871/5540/520 2866/5539/521 2867/5541/519 +f 2872/5542/518 2867/5541/519 2868/5543/829 +f 2865/5544/515 2872/5542/518 2868/5543/829 +f 2870/5537/516 2873/5545/533 2869/5546/517 +f 2875/5547/535 2870/5537/516 2871/5540/520 +f 2876/5548/537 2871/5540/520 2872/5542/518 +f 2869/5549/517 2876/5548/537 2872/5542/518 +f 2878/5550/529 2873/5545/533 2874/5551/536 +f 2875/5547/535 2878/5550/529 2874/5551/536 +f 2880/5552/531 2875/5547/535 2876/5548/537 +f 2877/5553/534 2876/5548/537 2873/5554/533 +f 2882/5531/530 2877/5555/534 2878/5550/529 +f 2879/5556/532 2882/5531/530 2878/5550/529 +f 2884/5534/525 2879/5556/532 2880/5552/531 +f 2881/5536/522 2880/5552/531 2877/5553/534 +f 2898/5557/723 2887/5558/712 2886/5559/715 +f 2899/5560/720 2888/5561/707 2887/5558/712 +f 2888/5561/707 2901/5562/830 2889/5563/716 +f 2889/5563/716 2902/5564/719 2890/5565/714 +f 2902/5566/719 2891/5567/709 2890/5565/714 +f 2903/5568/729 2892/5569/713 2891/5567/709 +f 2892/5569/713 2905/5570/727 2893/5571/708 +f 2905/5572/727 2894/5573/717 2893/5571/708 +f 2894/5574/717 2907/5575/726 2895/5576/710 +f 2907/5577/726 2896/5578/711 2895/5576/710 +f 2896/5578/711 2897/5579/722 2885/5580/706 +f 2885/5580/706 2898/5581/723 2886/5559/715 +f 2892/5569/713 2915/5582/704 2891/5567/709 +f 2888/5561/707 2913/5583/685 2912/5584/686 +f 2895/5576/710 2920/5585/694 2919/5586/696 +f 2885/5580/706 2910/5587/690 2909/5588/692 +f 2893/5571/708 2916/5589/702 2892/5569/713 +f 2890/5565/714 2913/5583/685 2889/5563/716 +f 2896/5578/711 2909/5588/692 2920/5585/694 +f 2886/5559/715 2911/5590/688 2910/5587/690 +f 2893/5571/708 2918/5591/698 2917/5592/700 +f 2890/5565/714 2915/5582/704 2914/5593/683 +f 2888/5561/707 2911/5590/688 2887/5558/712 +f 2895/5576/710 2918/5594/698 2894/5574/717 +f 2911/5590/688 2922/2142/691 2910/5587/690 +f 2911/5590/688 2924/2145/687 2923/2147/689 +f 2912/5584/686 2925/2148/684 2924/2150/687 +f 2914/5593/683 2925/2153/684 2913/5583/685 +f 2914/5593/683 2927/3199/703 2926/2154/705 +f 2916/5589/702 2927/2159/703 2915/5582/704 +f 2916/5589/702 2929/3201/699 2928/2160/701 +f 2918/5591/698 2929/2163/699 2917/5592/700 +f 2919/5586/696 2930/2168/831 2918/5594/698 +f 2920/5585/694 2931/2171/697 2919/5586/696 +f 2909/5588/692 2932/2172/695 2920/5585/694 +f 2909/5588/692 2922/3206/691 2921/2175/693 +f 2940/2162/735 2953/5595/739 2952/5596/735 +f 2938/3198/736 2949/5597/737 2937/2152/737 +f 2933/2173/738 2956/5598/730 2944/2174/730 +f 2935/2143/733 2945/5599/732 2934/2144/732 +f 2942/2164/291 2953/5600/739 2941/2165/739 +f 2938/2156/736 2951/5601/734 2950/5602/736 +f 2935/2146/733 2948/5603/293 2947/5604/733 +f 2943/3203/731 2954/5605/291 2942/2167/291 +f 2939/2158/734 2952/5606/735 2951/5607/734 +f 2937/3197/737 2948/5608/293 2936/2149/293 +f 2943/2170/731 2956/5609/730 2955/5610/731 +f 2934/2176/732 2946/5611/738 2933/2177/738 +f 2908/5612/730 2957/2186/738 2897/5579/738 +f 2899/5613/733 2958/2187/732 2959/2189/733 +f 2905/5572/739 2966/2190/291 2906/5614/291 +f 2903/5615/734 2962/3220/736 2963/2193/734 +f 2900/5616/293 2959/3221/733 2960/2196/293 +f 2907/5575/731 2966/2199/291 2967/2201/731 +f 2904/5617/735 2963/3223/734 2964/2202/735 +f 2901/5562/737 2960/2205/293 2961/2207/737 +f 2908/5618/730 2967/3225/731 2968/2208/730 +f 2897/5619/738 2958/2213/732 2898/5581/732 +f 2904/5620/735 2965/2214/739 2905/5570/739 +f 2901/5621/737 2962/2181/736 2902/5564/736 +f 2974/5622/736 2987/2242/734 2975/5623/734 +f 2971/5624/733 2984/2244/293 2972/5625/293 +f 2979/5626/731 2990/3228/291 2991/2217/731 +f 2976/5627/735 2987/2242/734 2988/2220/735 +f 2973/5628/737 2984/2244/293 2985/2223/737 +f 2980/5629/730 2991/2217/731 2992/2227/730 +f 2969/5630/738 2982/2230/732 2970/5631/732 +f 2976/5627/735 2989/2232/739 2977/5632/739 +f 2974/5622/736 2985/2223/737 2986/2234/736 +f 2980/5629/730 2981/2228/738 2969/5630/738 +f 2971/5624/733 2982/2230/732 2983/2237/733 +f 2977/5632/739 2990/2238/291 2978/5633/291 +f 2998/3235/736 3011/5634/734 2999/2241/734 +f 2995/3236/733 3008/5635/293 2996/2243/293 +f 3003/2219/731 3014/5636/291 3015/5637/731 +f 2999/2221/734 3012/5638/735 3000/2222/735 +f 2996/2224/293 3009/5639/737 2997/2225/737 +f 3003/3229/731 3016/5640/730 3004/2226/730 +f 2993/2229/732 3006/5641/738 3005/5642/732 +f 3000/3231/735 3013/5643/739 3001/2231/739 +f 2998/2233/736 3009/5644/737 3010/5645/736 +f 2994/2235/738 3016/5646/730 3006/5647/738 +f 2993/3234/732 3007/5648/733 2995/2236/733 +f 3001/2239/739 3014/5649/291 3002/2240/291 +f 3018/5650/771 3031/5651/832 3019/5652/766 +f 3019/5652/766 3032/5653/774 3020/5654/762 +f 3020/5654/762 3033/5655/775 3021/5656/768 +f 3021/5656/768 3034/5657/773 3022/5658/769 +f 3034/5659/773 3023/5660/764 3022/5658/769 +f 3035/5661/784 3024/5662/767 3023/5660/764 +f 3036/5663/783 3025/5664/763 3024/5662/767 +f 3037/5665/782 3026/5666/772 3025/5664/763 +f 3038/5667/780 3027/5668/770 3026/5669/772 +f 3039/5670/781 3028/5671/765 3027/5668/770 +f 3028/5671/765 3029/5672/778 3017/5673/761 +f 3029/5674/778 3018/5650/771 3017/5673/761 +f 3024/5662/767 3047/5675/760 3023/5660/764 +f 3020/5654/762 3045/5676/741 3044/5677/744 +f 3027/5668/770 3052/5678/751 3051/5679/752 +f 3018/5650/771 3041/5680/749 3017/5673/761 +f 3024/5662/767 3049/5681/756 3048/5682/758 +f 3022/5658/769 3045/5676/741 3021/5656/768 +f 3028/5671/765 3041/5680/749 3052/5678/751 +f 3018/5650/771 3043/5683/746 3042/5684/748 +f 3025/5664/763 3050/5685/754 3049/5681/756 +f 3022/5658/769 3047/5675/760 3046/5686/742 +f 3020/5654/762 3043/5683/746 3019/5652/766 +f 3027/5668/770 3050/5687/754 3026/5669/772 +f 3042/5684/748 3055/2248/745 3054/2250/747 +f 3043/5683/746 3056/2251/833 3055/2253/745 +f 3044/5677/744 3057/2254/743 3056/2256/833 +f 3046/5686/742 3057/2259/743 3045/5676/741 +f 3047/5675/760 3058/2260/740 3046/5686/742 +f 3047/5675/760 3060/2263/834 3059/2265/759 +f 3048/5682/758 3061/3252/835 3060/2266/834 +f 3050/5685/754 3061/2269/835 3049/5681/756 +f 3051/5679/752 3062/2272/755 3050/5687/754 +f 3052/5678/751 3063/2277/753 3051/5679/752 +f 3052/5678/751 3053/3256/836 3064/2278/750 +f 3041/5680/749 3054/2281/747 3053/2283/836 +f 3072/2268/790 3085/5688/794 3084/5689/790 +f 3070/3249/792 3081/5690/791 3069/2258/791 +f 3065/2279/793 3088/5691/785 3076/2280/785 +f 3067/3246/788 3077/5692/787 3066/2249/787 +f 3073/2271/794 3086/5693/291 3085/5694/794 +f 3070/2262/792 3083/5695/789 3082/5696/792 +f 3068/3247/293 3079/5697/788 3067/2252/788 +f 3074/2274/291 3087/5698/786 3086/5699/291 +f 3072/3251/790 3083/5700/789 3071/2264/789 +f 3068/2255/293 3081/5701/791 3080/5702/293 +f 3076/3255/785 3087/5703/786 3075/2276/786 +f 3065/2282/793 3077/5704/787 3078/5705/793 +f 3040/5706/785 3089/2290/793 3029/5672/793 +f 3030/5707/787 3091/2295/788 3031/5651/788 +f 3038/5708/291 3097/2296/794 3098/2298/291 +f 3034/5659/792 3095/2299/789 3035/5709/789 +f 3032/5653/293 3091/3272/788 3092/2302/293 +f 3038/5667/291 3099/2307/786 3039/5710/786 +f 3036/5711/790 3095/2308/789 3096/2310/790 +f 3032/5712/293 3093/2313/791 3033/5655/791 +f 3039/5670/786 3100/2314/785 3040/5713/785 +f 3029/5674/793 3090/2319/787 3030/5714/787 +f 3036/5663/790 3097/2322/794 3037/5715/794 +f 3033/5716/791 3094/2289/792 3034/5657/792 +f 3107/5717/789 3118/2340/792 3119/2326/789 +f 3104/5718/293 3115/2343/788 3116/2329/293 +f 3110/5719/291 3123/2323/786 3111/5720/786 +f 3107/5717/789 3120/2328/790 3108/5721/790 +f 3104/5718/293 3117/2331/791 3105/5722/791 +f 3111/5720/786 3124/2333/785 3112/5723/785 +f 3101/5724/793 3114/2336/787 3102/5725/787 +f 3109/5726/794 3120/2328/790 3121/2338/794 +f 3105/5722/791 3118/2340/792 3106/5727/792 +f 3112/5723/785 3113/2334/793 3101/5724/793 +f 3102/5725/787 3115/2343/788 3103/5728/788 +f 3110/5729/291 3121/2338/794 3122/2344/291 +f 3131/2348/789 3142/5730/792 3143/5731/789 +f 3127/2349/788 3140/5732/293 3128/2350/293 +f 3134/2324/291 3147/5733/786 3135/2325/786 +f 3132/2327/790 3143/5734/789 3144/5735/790 +f 3128/3281/293 3141/5736/791 3129/2330/791 +f 3135/3282/786 3148/5737/785 3136/2332/785 +f 3125/2335/787 3138/5738/793 3137/5739/787 +f 3132/3284/790 3145/5740/794 3133/2337/794 +f 3130/2339/792 3141/5741/791 3142/5742/792 +f 3126/2341/793 3148/5743/785 3138/5744/793 +f 3125/3287/787 3139/5745/788 3127/2342/788 +f 3133/2345/794 3146/5746/291 3134/2346/291 +f 3150/5747/599 3163/5748/609 3151/5749/600 +f 3163/5750/609 3152/5751/596 3151/5749/600 +f 3152/5751/596 3165/5752/606 3153/5753/602 +f 3165/5754/606 3154/5755/603 3153/5753/602 +f 3166/5756/607 3155/5757/598 3154/5755/603 +f 3167/5758/617 3156/5759/601 3155/5757/598 +f 3168/5760/616 3157/5761/597 3156/5759/601 +f 3169/5762/615 3158/5763/605 3157/5761/597 +f 3158/5764/605 3171/5765/612 3159/5766/604 +f 3159/5766/604 3172/5767/613 3160/5768/594 +f 3160/5768/594 3161/5769/610 3149/5770/595 +f 3149/5770/595 3162/5771/611 3150/5747/599 +f 3156/5759/601 3179/5772/592 3155/5757/598 +f 3153/5753/602 3176/5773/576 3152/5751/596 +f 3160/5768/594 3183/5774/586 3159/5766/604 +f 3150/5747/599 3173/5775/582 3149/5770/595 +f 3156/5759/601 3181/5776/589 3180/5777/590 +f 3154/5755/603 3177/5778/575 3153/5753/602 +f 3160/5768/594 3173/5775/582 3184/5779/584 +f 3151/5749/600 3174/5780/580 3150/5747/599 +f 3158/5763/605 3181/5776/589 3157/5761/597 +f 3154/5755/603 3179/5772/592 3178/5781/573 +f 3151/5749/600 3176/5773/576 3175/5782/578 +f 3158/5764/605 3183/5774/586 3182/5783/587 +f 3175/5782/578 3186/2356/581 3174/5780/580 +f 3175/5782/578 3188/2357/577 3187/2359/579 +f 3176/5773/576 3189/2360/574 3188/2362/577 +f 3178/5781/573 3189/2365/574 3177/5778/575 +f 3178/5781/573 3191/3301/591 3190/2366/593 +f 3180/5777/590 3191/2371/591 3179/5772/592 +f 3181/5776/589 3192/2374/837 3180/5777/590 +f 3181/5776/589 3194/3304/838 3193/2375/588 +f 3183/5774/586 3194/2378/838 3182/5783/587 +f 3184/5779/584 3195/2383/585 3183/5774/586 +f 3173/5775/582 3196/2386/839 3184/5779/584 +f 3173/5775/582 3186/3308/581 3185/2387/583 +f 3204/2373/623 3217/5784/627 3216/5785/623 +f 3202/3300/624 3213/5786/625 3201/2364/625 +f 3197/3307/626 3220/5787/618 3208/2385/618 +f 3199/3297/621 3209/5788/620 3198/2355/620 +f 3206/2376/289 3217/5789/627 3205/2377/627 +f 3203/2367/622 3214/5790/624 3202/2368/624 +f 3199/2358/621 3212/5791/287 3211/5792/621 +f 3207/2379/619 3218/5793/289 3206/2380/289 +f 3203/2370/622 3216/5794/623 3215/5795/622 +f 3200/2361/287 3213/5796/625 3212/5797/287 +f 3208/3306/618 3219/5798/619 3207/2382/619 +f 3197/2389/626 3209/5799/620 3210/5800/626 +f 3161/5769/626 3232/2396/618 3221/2398/626 +f 3163/5748/621 3222/3320/620 3223/2399/621 +f 3170/5801/289 3229/3321/627 3230/2402/289 +f 3166/5756/624 3227/2407/622 3167/5802/622 +f 3163/5750/621 3224/2410/287 3164/5803/287 +f 3170/5804/289 3231/2413/619 3171/5765/619 +f 3167/5758/622 3228/2414/623 3168/5805/623 +f 3165/5752/625 3224/2417/287 3225/2419/625 +f 3172/5767/618 3231/2420/619 3232/2422/618 +f 3161/5806/626 3222/2425/620 3162/5771/620 +f 3168/5760/623 3229/2426/627 3169/5807/627 +f 3165/5754/625 3226/2395/624 3166/5808/624 +f 3238/5809/624 3251/2432/622 3239/5810/622 +f 3235/5811/621 3248/2457/287 3236/5812/287 +f 3243/5813/619 3254/3330/289 3255/2429/619 +f 3239/5810/622 3252/2434/623 3240/5814/623 +f 3237/5815/625 3248/2457/287 3249/2435/625 +f 3243/5813/619 3256/2439/618 3244/5816/618 +f 3233/5817/626 3246/2442/620 3234/5818/620 +f 3240/5814/623 3253/2443/627 3241/5819/627 +f 3238/5809/624 3249/2435/625 3250/2446/624 +f 3233/5817/626 3256/2439/618 3245/2440/626 +f 3235/5811/621 3246/2442/620 3247/2451/621 +f 3241/5819/627 3254/2452/289 3242/5820/289 +f 3262/3336/624 3275/5821/622 3263/2455/622 +f 3259/3337/621 3272/5822/287 3260/2456/287 +f 3266/2430/289 3279/5823/619 3267/2431/619 +f 3263/3331/622 3276/5824/623 3264/2433/623 +f 3260/2436/287 3273/5825/625 3261/2437/625 +f 3267/3332/619 3280/5826/618 3268/2438/618 +f 3258/3333/626 3269/5827/620 3257/2441/620 +f 3264/2444/623 3277/5828/627 3265/2445/627 +f 3262/2448/624 3273/5829/625 3274/5830/624 +f 3258/2449/626 3280/5831/618 3270/5832/626 +f 3257/3335/620 3271/5833/621 3259/2450/621 +f 3265/2453/627 3278/5834/289 3266/2454/289 +f 3282/5835/659 3295/5836/663 3283/5837/650 +f 3283/5837/650 3296/5838/664 3284/5839/651 +f 3284/5839/651 3297/5840/661 3285/5841/656 +f 3297/5842/661 3286/5843/657 3285/5841/656 +f 3286/5843/657 3299/5844/672 3287/5845/653 +f 3287/5845/653 3300/5846/671 3288/5847/655 +f 3288/5847/655 3301/5848/670 3289/5849/652 +f 3301/5850/670 3290/5851/660 3289/5849/652 +f 3302/5852/669 3291/5853/658 3290/5854/660 +f 3303/5855/840 3292/5856/654 3291/5853/658 +f 3292/5856/654 3293/5857/665 3281/5858/649 +f 3281/5858/649 3294/5859/666 3282/5835/659 +f 3288/5847/655 3311/5860/648 3287/5845/653 +f 3284/5839/651 3309/5861/629 3308/5862/632 +f 3292/5856/654 3315/5863/640 3291/5853/658 +f 3282/5835/659 3305/5864/637 3281/5858/649 +f 3288/5847/655 3313/5865/644 3312/5866/646 +f 3286/5843/657 3309/5861/629 3285/5841/656 +f 3281/5858/649 3316/5867/639 3292/5856/654 +f 3283/5837/650 3306/5868/636 3282/5835/659 +f 3289/5849/652 3314/5869/642 3313/5865/644 +f 3286/5843/657 3311/5860/648 3310/5870/630 +f 3283/5837/650 3308/5862/632 3307/5871/634 +f 3291/5853/658 3314/5872/642 3290/5854/660 +f 3307/5871/634 3318/2463/635 3306/5868/636 +f 3307/5871/634 3320/2464/841 3319/2466/633 +f 3308/5862/632 3321/2467/842 3320/2469/841 +f 3310/5870/630 3321/2472/842 3309/5861/629 +f 3311/5860/648 3322/2473/628 3310/5870/630 +f 3311/5860/648 3324/3352/843 3323/2476/647 +f 3312/5866/646 3325/3353/645 3324/2479/843 +f 3314/5869/642 3325/2482/645 3313/5865/644 +f 3315/5863/640 3326/2487/643 3314/5872/642 +f 3316/5867/639 3327/2490/641 3315/5863/640 +f 3305/5864/637 3328/2493/638 3316/5867/639 +f 3305/5864/637 3318/3358/635 3317/2494/844 +f 3336/2481/678 3349/5873/682 3348/5874/678 +f 3334/3350/680 3345/5875/679 3333/2471/679 +f 3329/3357/681 3352/5876/673 3340/2492/673 +f 3331/3347/676 3341/5877/675 3330/2462/675 +f 3338/2483/289 3349/5878/682 3337/2484/682 +f 3334/2475/680 3347/5879/677 3346/5880/680 +f 3331/2465/676 3344/5881/287 3343/5882/676 +f 3338/2486/289 3351/5883/674 3350/5884/289 +f 3335/2478/677 3348/5885/678 3347/5886/677 +f 3332/2468/287 3345/5887/679 3344/5888/287 +f 3340/3356/673 3351/5889/674 3339/2489/674 +f 3329/2496/681 3341/5890/675 3342/5891/681 +f 3304/5892/673 3353/2503/681 3293/5857/681 +f 3294/5893/675 3355/2506/676 3295/5836/676 +f 3301/5850/682 3362/2509/289 3302/5894/289 +f 3299/5844/677 3358/3372/680 3359/2512/677 +f 3296/5838/287 3355/3373/676 3356/2515/287 +f 3302/5852/289 3363/2520/674 3303/5895/674 +f 3300/5846/678 3359/3375/677 3360/2521/678 +f 3296/5896/287 3357/2526/679 3297/5840/679 +f 3303/5855/674 3364/2527/673 3304/5897/673 +f 3294/5859/675 3353/2530/681 3354/2532/675 +f 3300/5898/678 3361/2535/682 3301/5848/682 +f 3298/5899/680 3357/3368/679 3358/2500/680 +f 3370/5900/680 3383/2539/677 3371/5901/677 +f 3367/5902/676 3380/2542/287 3368/5903/287 +f 3374/5904/289 3387/2538/674 3375/5905/674 +f 3371/5901/677 3384/2541/678 3372/5906/678 +f 3368/5903/287 3381/2544/679 3369/5907/679 +f 3375/5905/674 3388/2545/673 3376/5908/673 +f 3365/5909/681 3378/2548/675 3366/5910/675 +f 3373/5911/682 3384/2541/678 3385/2552/682 +f 3370/5900/680 3381/2544/679 3382/2553/680 +f 3365/5909/681 3388/2545/673 3377/2556/681 +f 3366/5910/675 3379/2560/676 3367/5902/676 +f 3374/5912/289 3385/2552/682 3386/2561/289 +f 3394/2564/680 3407/5913/677 3395/2565/677 +f 3392/2567/287 3403/5914/676 3404/5915/287 +f 3398/3380/289 3411/5916/674 3399/2537/674 +f 3395/3381/677 3408/5917/678 3396/2540/678 +f 3392/3382/287 3405/5918/679 3393/2543/679 +f 3399/2546/674 3412/5919/673 3400/2547/673 +f 3389/2550/675 3402/5920/681 3401/5921/675 +f 3396/3383/678 3409/5922/682 3397/2551/682 +f 3394/2555/680 3405/5923/679 3406/5924/680 +f 3390/2558/681 3412/5925/673 3402/5926/681 +f 3389/3384/675 3403/5927/676 3391/2559/676 +f 3397/2562/682 3410/5928/289 3398/2563/289 +f 25/3394/47 26/3430/77 10/3395/48 +f 31/3397/50 32/3413/64 16/3398/51 +f 18/3400/53 19/3417/66 3/3401/54 +f 24/3403/56 25/3428/47 9/3404/49 +f 17/3406/58 18/3400/53 2/3402/55 +f 16/3398/51 32/3413/64 17/3406/58 +f 45/3408/60 46/3469/107 30/3409/61 +f 30/3409/61 46/3472/107 47/3411/63 +f 47/3412/63 48/3478/108 32/3413/64 +f 32/3413/64 48/3483/108 33/3414/7 +f 33/3415/7 34/3482/65 18/3400/53 +f 34/3416/65 35/3488/67 19/3417/66 +f 35/3418/67 36/3492/109 20/3419/68 +f 20/3419/68 36/3495/109 37/3420/69 +f 21/3421/70 37/3499/69 38/3422/71 +f 22/3423/72 38/3470/71 39/3424/73 +f 39/3426/73 40/3474/75 24/3403/56 +f 40/3427/75 41/3480/9 25/3428/47 +f 25/3394/47 41/3485/9 42/3429/76 +f 42/3431/76 43/3490/79 27/3432/78 +f 43/3433/79 44/3494/110 28/3434/80 +f 28/3434/80 44/3497/110 45/3435/60 +f 14/3436/81 15/3399/52 63/3437/82 +f 15/3399/52 16/3398/51 64/3439/84 +f 16/3398/51 1/3407/59 49/3441/8 +f 2/3402/55 50/3519/85 49/3443/8 +f 3/3401/54 51/3523/87 50/3444/85 +f 4/3445/86 52/3501/89 51/3446/87 +f 5/3447/88 53/3505/91 52/3448/89 +f 6/3449/90 54/3508/93 53/3450/91 +f 6/3449/90 7/3453/94 55/3451/92 +f 7/3453/94 8/3405/57 56/3454/95 +f 9/3404/49 57/3517/10 56/3456/95 +f 9/3396/49 10/3395/48 58/3457/96 +f 10/3395/48 11/3463/99 59/3459/97 +f 12/3461/98 60/3503/101 59/3462/97 +f 12/3461/98 13/3467/102 61/3464/100 +f 14/3436/81 62/3510/83 61/3466/100 +f 45/3408/4 77/5929/4 78/3468/103 +f 38/3470/104 70/5930/104 71/3471/12 +f 46/3472/103 78/5931/103 79/3473/16 +f 40/3474/15 39/3426/12 71/3475/12 +f 47/3412/16 79/5932/16 80/3477/11 +f 40/3427/15 72/5933/15 73/3479/6 +f 33/3415/3 65/5934/3 66/3481/18 +f 48/3483/11 80/5935/11 65/3484/3 +f 41/3485/6 73/5936/6 74/3486/13 +f 34/3416/18 66/5937/18 67/3487/14 +f 42/3431/13 74/5938/13 75/3489/17 +f 35/3418/14 67/5939/14 68/3491/105 +f 43/3433/17 75/5940/17 76/3493/106 +f 36/3495/105 68/5941/105 69/3496/5 +f 44/3497/106 76/5942/106 77/3498/4 +f 37/3499/5 69/5943/5 70/3500/104 +f 52/3501/105 84/5944/105 83/3502/14 +f 60/3503/106 92/5945/106 91/3504/17 +f 53/3505/5 85/5946/5 84/3506/105 +f 61/3464/4 93/5947/4 92/3507/106 +f 54/3508/104 86/5948/104 85/3509/5 +f 62/3510/103 94/5949/103 93/3511/4 +f 55/3451/12 87/5950/12 86/3512/104 +f 63/3437/16 95/5951/16 94/3513/103 +f 55/3455/12 56/3454/15 88/3514/15 +f 64/3439/11 96/5952/11 95/3516/16 +f 57/3517/6 89/5953/6 88/3518/15 +f 50/3519/18 82/5954/18 81/3520/3 +f 49/3441/3 81/5955/3 96/3521/11 +f 58/3457/13 90/5956/13 89/3522/6 +f 51/3523/14 83/5957/14 82/3524/18 +f 59/3459/17 91/5958/17 90/3525/13 +f 97/3526/8 113/2573/8 128/7/84 +f 98/3528/85 114/2574/85 113/10/8 +f 99/3529/87 115/2575/87 114/13/85 +f 100/3530/89 116/2576/89 115/16/87 +f 101/3531/91 117/2577/91 116/19/89 +f 102/3532/93 118/2578/93 117/22/91 +f 103/3533/92 119/2579/92 118/25/93 +f 104/3534/95 120/29/95 119/2580/92 +f 105/3535/10 121/32/10 120/2581/95 +f 105/3536/10 106/3537/96 122/35/96 +f 106/3537/96 107/3539/97 123/38/97 +f 108/3538/101 124/41/101 123/2584/97 +f 108/3538/101 109/3540/100 125/44/100 +f 109/3540/100 110/3541/83 126/47/83 +f 110/3541/83 111/3542/82 127/2/82 +f 111/3542/82 112/3527/84 128/5/84 +f 158/3543/103 159/3544/16 111/3542/16 +f 159/3544/16 160/3545/11 112/3527/11 +f 160/3545/11 145/3546/3 97/3526/3 +f 145/3546/3 146/3547/18 98/3528/18 +f 146/3547/18 147/3548/14 99/3529/14 +f 147/3548/14 148/3549/105 100/3530/105 +f 148/3549/105 149/3550/5 101/3531/5 +f 149/3550/5 150/3551/104 102/3532/104 +f 150/3551/104 151/3552/12 103/3533/12 +f 151/3552/12 152/3553/15 104/3534/15 +f 152/3553/15 153/5959/6 105/3535/6 +f 153/3554/6 154/3555/13 106/3537/13 +f 154/3555/13 155/3556/17 107/3539/17 +f 155/3556/17 156/3557/106 108/3538/106 +f 156/3557/106 157/3558/4 109/3540/4 +f 157/3558/4 158/3543/103 110/3541/103 +f 143/101/63 159/3544/63 158/3543/107 +f 144/105/108 160/3545/108 159/3544/63 +f 129/107/7 145/3546/7 160/3545/108 +f 129/111/7 130/110/65 146/3547/65 +f 130/112/65 131/114/67 147/3548/67 +f 131/117/67 132/116/109 148/3549/109 +f 132/120/109 133/119/69 149/3550/69 +f 133/121/69 134/123/71 150/3551/71 +f 134/124/71 135/126/73 151/3552/73 +f 136/128/75 152/3553/75 151/3552/73 +f 137/131/9 153/5959/9 152/3553/75 +f 138/135/76 154/3555/76 153/3554/9 +f 139/138/79 155/3556/79 154/3555/76 +f 140/140/110 156/3557/110 155/3556/79 +f 141/143/60 157/3558/60 156/3557/110 +f 142/98/107 158/3543/107 157/3558/60 +f 161/3559/8 177/199/8 192/201/84 +f 162/3561/85 178/202/85 177/204/8 +f 163/3562/87 179/2639/87 178/205/85 +f 164/3563/89 180/208/89 179/210/87 +f 165/3564/91 181/2641/91 180/211/89 +f 166/3565/93 182/2642/93 181/214/91 +f 167/3566/92 183/2643/92 182/217/93 +f 167/3566/92 168/3568/95 184/220/95 +f 169/3567/10 185/223/10 184/225/95 +f 169/3569/10 170/3570/96 186/2646/96 +f 170/3570/96 171/3571/97 187/2647/97 +f 171/3571/97 172/3572/101 188/232/101 +f 172/3572/101 173/3573/100 189/235/100 +f 173/3573/100 174/3574/83 190/238/83 +f 174/3574/83 175/3575/82 191/193/82 +f 175/3575/82 176/3560/84 192/2636/84 +f 222/3576/103 223/3577/16 175/3575/16 +f 223/3577/16 224/3578/11 176/3560/11 +f 224/3578/11 209/3579/3 161/3559/3 +f 209/3579/3 210/3580/18 162/3561/18 +f 210/3580/18 211/3581/14 163/3562/14 +f 211/3581/14 212/3582/105 164/3563/105 +f 212/3582/105 213/3583/5 165/3564/5 +f 213/3583/5 214/3584/104 166/3565/104 +f 214/3584/104 215/3585/12 167/3566/12 +f 215/3585/12 216/3586/15 168/3568/15 +f 216/3586/15 217/3592/6 169/3567/6 +f 217/3587/6 218/3588/13 170/3570/13 +f 218/3588/13 219/3589/17 171/3571/17 +f 219/3589/17 220/3590/106 172/3572/106 +f 220/3590/106 221/3591/4 173/3573/4 +f 221/3591/4 222/3576/103 174/3574/103 +f 207/95/63 223/3577/63 222/3576/107 +f 208/50/108 224/3578/108 223/3577/63 +f 193/2588/7 209/3579/7 224/3578/108 +f 193/56/7 194/2589/65 210/3580/65 +f 194/59/65 195/2590/67 211/3581/67 +f 195/62/67 196/2591/109 212/3582/109 +f 196/65/109 197/2592/69 213/3583/69 +f 197/68/69 198/2593/71 214/3584/71 +f 198/71/71 199/2594/73 215/3585/73 +f 199/75/73 200/74/75 216/3586/75 +f 200/78/75 201/77/9 217/3592/9 +f 202/80/76 218/3588/76 217/3587/9 +f 203/83/79 219/3589/79 218/3588/76 +f 203/87/79 204/86/110 220/3590/110 +f 205/89/60 221/3591/60 220/3590/110 +f 206/92/107 222/3576/107 221/3591/60 +f 238/3593/103 254/3624/103 255/3594/16 +f 231/3596/12 247/3625/12 248/3597/15 +f 239/3595/16 255/3594/16 256/3599/11 +f 232/3598/15 248/3597/15 249/3601/6 +f 225/3603/3 241/3606/3 242/3604/18 +f 240/3600/11 256/3599/11 241/3606/3 +f 233/3607/6 249/5960/6 250/3608/13 +f 226/3605/18 242/3604/18 243/3610/14 +f 234/3609/13 250/3608/13 251/3612/17 +f 227/3611/14 243/3610/14 244/3614/105 +f 235/3613/17 251/3612/17 252/3616/106 +f 228/3615/105 244/3614/105 245/3618/5 +f 236/3617/106 252/3616/106 253/3620/4 +f 229/3619/5 245/3618/5 246/3622/104 +f 237/3621/4 253/3620/4 254/3624/103 +f 230/3623/104 246/3622/104 247/3625/12 +f 272/3626/84 257/3628/8 273/152/8 +f 258/3627/85 274/155/85 273/2622/8 +f 259/3629/87 275/2623/87 274/157/85 +f 260/3630/89 276/161/89 275/2624/87 +f 261/3631/91 277/2625/91 276/163/89 +f 262/3632/93 278/2626/93 277/166/91 +f 263/3633/92 279/2627/92 278/169/93 +f 264/3634/95 280/173/95 279/2628/92 +f 265/3635/10 281/176/10 280/2629/95 +f 265/3636/10 266/3637/96 282/2630/96 +f 266/3637/96 267/3638/97 283/2631/97 +f 267/3638/97 268/3639/101 284/2632/101 +f 268/3639/101 269/3640/100 285/188/100 +f 269/3640/100 270/3641/83 286/191/83 +f 270/3641/83 271/3642/82 287/146/82 +f 272/3626/84 288/2620/84 287/148/82 +f 318/3643/103 319/3644/16 271/3642/16 +f 319/3644/16 320/3645/11 272/3626/11 +f 320/3645/11 305/3646/3 257/3628/3 +f 305/3646/3 306/3647/18 258/3627/18 +f 306/3647/18 307/3648/14 259/3629/14 +f 307/3648/14 308/3649/105 260/3630/105 +f 308/3649/105 309/3650/5 261/3631/5 +f 309/3650/5 310/3651/104 262/3632/104 +f 310/3651/104 311/3652/12 263/3633/12 +f 311/3652/12 312/3653/15 264/3634/15 +f 312/3653/15 313/5961/6 265/3635/6 +f 313/3654/6 314/3655/13 266/3637/13 +f 314/3655/13 315/3656/17 267/3638/17 +f 315/3656/17 316/3657/106 268/3639/106 +f 316/3657/106 317/3658/4 269/3640/4 +f 317/3658/4 318/3643/103 270/3641/103 +f 303/293/63 319/3644/63 318/3643/107 +f 304/296/108 320/3645/108 319/3644/63 +f 289/299/7 305/3646/7 320/3645/108 +f 289/303/7 290/302/65 306/3647/65 +f 290/304/65 291/306/67 307/3648/67 +f 291/309/67 292/308/109 308/3649/109 +f 292/310/109 293/312/69 309/3650/69 +f 293/315/69 294/314/71 310/3651/71 +f 295/318/73 311/3652/73 310/3651/71 +f 295/321/73 296/320/75 312/3653/75 +f 297/324/9 313/5961/9 312/3653/75 +f 298/327/76 314/3655/76 313/3654/9 +f 299/329/79 315/3656/79 314/3655/76 +f 299/333/79 300/332/110 316/3657/110 +f 301/335/60 317/3658/60 316/3657/110 +f 302/291/107 318/3643/107 317/3658/60 +f 321/3659/8 337/346/8 352/348/84 +f 322/3661/85 338/349/85 337/351/8 +f 323/3662/87 339/2700/87 338/352/85 +f 324/3663/89 340/355/89 339/357/87 +f 325/3664/91 341/2702/91 340/358/89 +f 326/3665/93 342/361/93 341/363/91 +f 327/3666/92 343/2704/92 342/364/93 +f 328/3667/95 344/367/95 343/369/92 +f 329/3668/10 345/2706/10 344/370/95 +f 330/3669/96 346/2707/96 345/373/10 +f 330/3669/96 331/3672/97 347/376/97 +f 332/3671/101 348/379/101 347/381/97 +f 332/3671/101 333/3673/100 349/382/100 +f 333/3673/100 334/3674/83 350/2711/83 +f 334/3674/83 335/3675/82 351/340/82 +f 335/3675/82 336/3660/84 352/343/84 +f 382/3676/103 383/3677/16 335/3675/16 +f 383/3677/16 384/3678/11 336/3660/11 +f 384/3678/11 369/3679/3 321/3659/3 +f 369/3679/3 370/3680/18 322/3661/18 +f 370/3680/18 371/3681/14 323/3662/14 +f 371/3681/14 372/3682/105 324/3663/105 +f 372/3682/105 373/3683/5 325/3664/5 +f 373/3683/5 374/3684/104 326/3665/104 +f 374/3684/104 375/3685/12 327/3666/12 +f 375/3685/12 376/3686/15 328/3667/15 +f 376/3686/15 377/3692/6 329/3668/6 +f 377/3687/6 378/3688/13 330/3669/13 +f 378/3688/13 379/3689/17 331/3672/17 +f 379/3689/17 380/3690/106 332/3671/106 +f 380/3690/106 381/3691/4 333/3673/4 +f 381/3691/4 382/3676/103 334/3674/103 +f 367/242/63 383/3677/63 382/3676/107 +f 368/246/108 384/3678/108 383/3677/63 +f 353/248/7 369/3679/7 384/3678/108 +f 353/252/7 354/251/65 370/3680/65 +f 355/255/67 371/3681/67 370/3680/65 +f 355/258/67 356/257/109 372/3682/109 +f 356/261/109 357/260/69 373/3683/69 +f 357/262/69 358/264/71 374/3684/71 +f 359/267/73 375/3685/73 374/3684/71 +f 359/270/73 360/269/75 376/3686/75 +f 360/273/75 361/272/9 377/3692/9 +f 362/276/76 378/3688/76 377/3687/9 +f 363/279/79 379/3689/79 378/3688/76 +f 364/281/110 380/3690/110 379/3689/79 +f 365/284/60 381/3691/60 380/3690/110 +f 366/287/107 382/3676/107 381/3691/60 +f 392/3693/15 408/3700/15 407/3694/12 +f 400/3696/11 416/3704/11 415/3697/16 +f 393/3699/6 409/5962/6 408/3700/15 +f 386/3701/18 402/3709/18 401/3702/3 +f 385/3703/3 401/3702/3 416/3704/11 +f 394/3705/13 410/3711/13 409/3706/6 +f 387/3708/14 403/3713/14 402/3709/18 +f 395/3710/17 411/3715/17 410/3711/13 +f 388/3712/105 404/3717/105 403/3713/14 +f 396/3714/106 412/3719/106 411/3715/17 +f 389/3716/5 405/3721/5 404/3717/105 +f 397/3718/4 413/3723/4 412/3719/106 +f 390/3720/104 406/3724/104 405/3721/5 +f 398/3722/103 414/3725/103 413/3723/4 +f 391/3695/12 407/3694/12 406/3724/104 +f 399/3698/16 415/3697/16 414/3725/103 +f 417/3726/6 434/3730/6 433/3727/13 +f 432/3729/15 448/3756/15 434/3730/6 +f 425/3731/3 441/5963/3 442/3732/18 +f 418/3728/13 433/3727/13 435/3734/17 +f 426/3733/18 442/3732/18 443/3736/14 +f 419/3735/17 435/3734/17 436/3738/106 +f 427/3737/14 443/3736/14 444/3740/105 +f 420/3739/106 436/3738/106 437/3742/4 +f 428/3741/105 444/3740/105 445/3744/5 +f 421/3743/4 437/3742/4 438/3746/103 +f 429/3745/5 445/3744/5 446/3748/104 +f 422/3747/103 438/3746/103 439/3750/16 +f 430/3749/104 446/3748/104 447/3752/12 +f 423/3751/16 439/3750/16 440/3754/11 +f 431/3753/12 447/3752/12 448/3756/15 +f 424/3755/11 440/3754/11 441/3757/3 +f 460/3759/105 476/3766/105 475/3760/14 +f 453/3762/4 469/3768/4 468/3763/106 +f 461/3765/5 477/3770/5 476/3766/105 +f 454/3767/103 470/3772/103 469/3768/4 +f 462/3769/104 478/3774/104 477/3770/5 +f 455/3771/16 471/3776/16 470/3772/103 +f 463/3773/12 479/3778/12 478/3774/104 +f 456/3775/11 472/3780/11 471/3776/16 +f 464/3777/15 480/3784/15 479/3778/12 +f 457/3779/3 473/5964/3 472/3780/11 +f 450/3781/13 465/3789/13 466/3782/6 +f 449/3783/6 466/3782/6 480/3784/15 +f 458/3785/18 474/3790/18 473/3786/3 +f 451/3788/17 467/3791/17 465/3789/13 +f 459/3761/14 475/3760/14 474/3790/18 +f 452/3764/106 468/3763/106 467/3791/17 +f 510/3792/103 511/3798/16 495/3793/16 +f 503/3795/12 504/3800/15 488/3796/15 +f 511/3798/16 512/3805/11 496/3799/11 +f 504/3800/15 505/5965/6 489/3801/6 +f 497/3802/3 498/3809/18 482/3803/18 +f 512/3805/11 497/3802/3 481/3804/3 +f 505/3806/6 506/3811/13 490/3807/13 +f 498/3809/18 499/3813/14 483/3810/14 +f 506/3811/13 507/3815/17 491/3812/17 +f 499/3813/14 500/3817/105 484/3814/105 +f 507/3815/17 508/5966/106 492/3816/106 +f 500/3817/105 501/3821/5 485/3818/5 +f 492/3816/106 508/5966/106 509/3819/4 +f 501/3821/5 502/3823/104 486/3822/104 +f 509/3819/4 510/3792/103 494/3794/103 +f 502/3823/104 503/3795/12 487/3797/12 +f 542/3824/103 543/3830/16 527/3825/16 +f 535/3827/12 536/3832/15 520/3828/15 +f 543/3830/16 544/3837/11 528/3831/11 +f 536/3832/15 537/5967/6 521/3833/6 +f 529/3834/3 530/3841/18 514/3835/18 +f 544/3837/11 529/3834/3 513/3836/3 +f 537/3838/6 538/3843/13 522/3839/13 +f 530/3841/18 531/3845/14 515/3842/14 +f 538/3843/13 539/3847/17 523/3844/17 +f 531/3845/14 532/3849/105 516/3846/105 +f 539/3847/17 540/5968/106 524/3848/106 +f 532/3849/105 533/3853/5 517/3850/5 +f 524/3848/106 540/5968/106 541/3851/4 +f 533/3853/5 534/3855/104 518/3854/104 +f 541/3851/4 542/3824/103 526/3826/103 +f 534/3855/104 535/3827/12 519/3829/12 +f 779/3856/111 778/3872/126 770/3857/112 +f 773/3859/114 776/3869/124 792/3860/115 +f 780/3862/117 779/3856/111 771/3858/113 +f 791/3864/119 775/5969/845 774/3865/120 +f 770/3857/112 778/3872/126 777/3867/122 +f 776/3869/124 775/5969/845 791/3864/119 +f 769/3870/123 777/3875/122 780/3862/117 +f 782/3871/125 781/3877/128 777/3867/122 +f 779/3856/111 783/3873/127 782/3871/125 +f 780/3862/117 784/3878/130 783/3873/127 +f 781/3874/128 784/3878/130 780/3862/117 +f 786/3876/129 785/3882/132 781/3877/128 +f 783/3873/127 787/3879/131 786/3876/129 +f 784/3878/130 788/3883/133 787/3879/131 +f 785/3880/132 788/3883/133 784/3878/130 +f 786/3876/129 790/3866/121 789/3881/116 +f 787/3879/131 791/3864/119 790/3866/121 +f 788/3883/133 792/3860/115 791/3864/119 +f 789/3861/116 792/3860/115 788/3883/133 +f 774/3865/120 773/5970/114 789/3881/116 +f 798/3884/134 797/5971/140 813/3885/135 +f 815/3887/137 799/5972/846 798/3884/134 +f 800/3888/138 799/5972/846 815/3887/137 +f 797/3890/140 800/3888/138 816/3889/139 +f 794/3892/141 802/3901/149 801/3893/142 +f 803/3895/144 802/3901/149 794/3892/141 +f 804/3897/146 803/3895/144 795/3896/145 +f 793/3899/143 801/3904/142 804/3897/146 +f 806/3900/148 805/3906/153 801/3893/142 +f 807/3902/150 806/3900/148 802/3901/149 +f 808/3903/151 807/3902/150 803/3895/144 +f 801/3904/142 805/3908/153 808/3903/151 +f 806/3900/148 810/3910/156 809/3905/152 +f 811/3907/154 810/3910/156 806/3900/148 +f 808/3903/151 812/3909/155 811/3907/154 +f 805/3908/153 809/3911/152 812/3909/155 +f 810/3910/156 814/3886/136 813/3885/135 +f 815/3887/137 814/3886/136 810/3910/156 +f 812/3909/155 816/3889/139 815/3887/137 +f 809/3911/152 813/3891/135 816/3889/139 +f 837/3912/157 817/5973/164 818/3913/158 +f 839/3915/160 838/3914/159 818/3913/158 +f 839/3915/160 819/3916/161 820/3917/162 +f 840/3918/163 820/3917/162 817/3919/164 +f 821/3921/165 825/5974/172 826/3922/166 +f 822/3923/167 826/3922/166 827/3924/168 +f 823/3925/169 827/3924/168 828/3926/170 +f 821/3928/165 824/3927/171 828/3926/170 +f 826/3922/166 825/5974/172 829/3930/173 +f 826/3922/166 830/3931/174 831/3932/175 +f 827/3924/168 831/3932/175 832/3933/176 +f 825/3929/172 828/3926/170 832/3933/176 +f 829/3930/173 833/3939/180 834/3935/177 +f 831/3932/175 830/3931/174 834/3935/177 +f 831/3932/175 835/3936/178 836/3937/179 +f 832/3933/176 836/3937/179 833/3938/180 +f 833/3939/180 837/3912/157 838/3914/159 +f 835/3936/178 834/3935/177 838/3914/159 +f 835/3936/178 839/3915/160 840/3918/163 +f 836/3937/179 840/3918/163 837/3920/157 +f 865/3940/181 866/3945/187 850/3941/182 +f 858/3943/184 859/711/218 843/710/185 +f 866/3945/187 867/728/211 851/725/188 +f 860/708/189 861/3948/195 845/3946/190 +f 868/726/192 869/3949/197 853/3947/193 +f 861/3948/195 862/714/222 846/717/196 +f 869/3949/197 870/731/214 854/734/198 +f 863/722/199 864/3952/205 848/3950/200 +f 871/738/202 872/3956/208 856/3951/203 +f 864/3952/205 865/3973/181 849/3953/183 +f 857/3954/206 858/3943/184 842/3944/186 +f 872/3956/208 857/3954/206 841/3955/207 +f 29/3410/62 30/3409/61 14/3436/81 +f 26/3430/77 27/3432/78 11/3463/99 +f 28/3434/80 29/3410/62 13/3467/102 +f 881/3957/209 882/5975/847 866/3945/187 +f 866/3945/187 882/5976/847 883/3958/210 +f 867/728/211 883/5977/210 884/3959/212 +f 884/3960/212 885/5978/848 869/3949/197 +f 869/3949/197 885/5979/848 886/3961/213 +f 870/731/214 886/5980/213 887/3962/215 +f 887/3963/215 888/5981/849 872/3956/208 +f 872/3956/208 888/5982/849 873/3964/216 +f 873/3965/216 874/5983/217 858/3943/184 +f 874/3966/217 875/5984/219 859/711/218 +f 875/3967/219 876/5985/220 860/708/189 +f 876/3968/220 877/5986/850 861/3948/195 +f 861/3948/195 877/5987/850 878/3969/221 +f 878/3970/221 879/5988/223 863/722/199 +f 879/3971/223 880/5989/224 864/3952/205 +f 880/3972/224 881/5990/209 865/3973/181 +f 875/3976/219 874/5991/217 887/5992/215 +f 874/5991/217 873/5993/216 887/5992/215 +f 873/5993/216 888/5994/849 887/5992/215 +f 887/5992/215 886/5995/213 883/3974/210 +f 886/5995/213 885/5996/848 883/3974/210 +f 885/5996/848 884/5997/212 883/3974/210 +f 883/3974/210 882/5998/847 881/5999/209 +f 881/5999/209 880/6000/224 883/3974/210 +f 880/6000/224 879/3975/223 883/3974/210 +f 879/3975/223 878/6001/221 877/6002/850 +f 877/6002/850 876/6003/220 875/3976/219 +f 879/3975/223 877/6002/850 875/3976/219 +f 875/3976/219 887/5992/215 883/3974/210 +f 849/3953/183 897/6004/226 896/3977/225 +f 850/3941/182 898/6005/228 897/3978/226 +f 850/3941/182 851/725/188 899/3979/227 +f 851/725/188 852/724/194 900/3981/229 +f 852/724/194 853/3947/193 901/3983/230 +f 853/3947/193 854/734/198 902/3985/231 +f 854/734/198 855/736/204 903/3987/232 +f 856/3951/203 904/6006/233 903/3989/232 +f 841/3955/207 889/6007/234 904/3990/233 +f 842/3944/186 890/6008/235 889/3991/234 +f 843/710/185 891/6009/236 890/3992/235 +f 844/706/191 892/6010/237 891/3993/236 +f 845/3946/190 893/6011/239 892/3994/237 +f 845/3946/190 846/717/196 894/3995/238 +f 847/719/201 895/6012/240 894/3997/238 +f 848/3950/200 896/6013/225 895/3998/240 +f 889/4001/234 890/6014/235 893/6015/239 +f 890/6014/235 891/6016/236 893/6015/239 +f 891/6016/236 892/6017/237 893/6015/239 +f 893/6015/239 894/6018/238 895/6019/240 +f 895/6019/240 896/6020/225 893/6015/239 +f 896/6020/225 897/3999/226 893/6015/239 +f 897/3999/226 898/6021/228 899/6022/227 +f 899/6022/227 900/6023/229 897/3999/226 +f 900/6023/229 901/4000/230 897/3999/226 +f 901/4000/230 902/6024/231 889/4001/234 +f 902/6024/231 903/6025/232 889/4001/234 +f 903/6025/232 904/6026/233 889/4001/234 +f 889/4001/234 893/6015/239 897/3999/226 +f 20/3419/68 21/3421/70 5/3447/88 +f 21/3421/70 22/3423/72 6/3449/90 +f 23/3425/74 24/3403/56 8/3405/57 +f 934/4002/241 935/4053/539 923/4003/242 +f 923/4003/242 935/4056/539 936/4005/14 +f 936/4007/14 937/4059/540 925/4008/245 +f 925/4008/245 937/6027/540 938/4009/246 +f 938/4011/246 939/4055/91 927/4012/248 +f 927/4012/248 939/4058/91 940/4013/249 +f 940/4015/249 941/4062/252 929/4016/251 +f 941/4017/252 942/4054/12 930/4018/253 +f 942/4019/12 943/4057/538 931/4020/254 +f 931/4020/254 943/4060/538 944/4022/255 +f 932/4023/256 944/4052/255 933/4024/69 +f 933/4026/69 934/4061/241 922/4004/243 +f 928/4014/250 952/4032/263 951/4027/258 +f 925/4008/245 949/4034/265 948/4028/259 +f 932/4023/256 956/4035/266 955/4029/260 +f 921/4025/257 922/4004/243 946/4030/261 +f 929/4016/251 953/4037/268 952/4032/263 +f 925/4008/245 926/4010/247 950/4033/264 +f 921/4025/257 945/4031/262 956/4035/266 +f 922/4004/243 923/4003/242 947/4036/267 +f 930/4018/253 954/4039/269 953/4037/268 +f 927/4012/248 951/4027/258 950/4033/264 +f 924/4006/244 948/4028/259 947/4036/267 +f 930/4021/253 931/4020/254 955/4029/260 +f 947/4036/267 959/740/271 958/742/270 +f 948/4028/259 960/743/16 959/745/271 +f 949/4034/265 961/746/272 960/748/16 +f 950/4033/264 962/749/273 961/751/272 +f 950/4033/264 951/4027/258 963/2780/100 +f 952/4032/263 964/755/275 963/757/100 +f 952/4032/263 953/4037/268 965/2782/274 +f 954/4039/269 966/2783/17 965/761/274 +f 954/4038/269 955/4029/260 967/764/276 +f 956/4035/266 968/767/277 967/769/276 +f 945/4031/262 957/2786/60 968/770/277 +f 945/4031/262 946/4030/261 958/2787/270 +f 977/759/278 989/6028/278 988/4040/279 +f 974/2779/280 986/6029/280 985/4041/281 +f 969/771/2 982/6030/2 992/4042/282 +f 971/2776/283 983/6031/283 981/4043/284 +f 978/762/6 990/6032/6 989/4044/278 +f 975/753/1 987/6033/1 986/4045/280 +f 972/2777/3 984/6034/3 983/4046/283 +f 979/2784/285 991/6035/285 990/4047/6 +f 976/2781/279 988/6036/279 987/4048/1 +f 973/2778/281 985/6037/281 984/4049/3 +f 980/2785/282 992/6038/282 991/4050/285 +f 970/774/284 981/6039/284 982/4051/2 +f 944/4052/282 1004/782/282 993/784/2 +f 935/4053/283 934/4002/284 994/785/284 +f 941/4017/278 1001/2800/278 1002/788/6 +f 938/4011/280 998/791/280 999/793/1 +f 935/4056/283 995/2802/283 996/794/3 +f 942/4019/6 1002/797/6 1003/799/285 +f 939/4058/1 999/800/1 1000/802/279 +f 936/4007/3 996/803/3 997/805/281 +f 943/4060/285 1003/2806/285 1004/806/282 +f 933/4026/2 993/809/2 994/811/284 +f 940/4015/279 1000/812/279 1001/814/278 +f 938/4009/280 937/6027/281 997/2797/281 +f 1010/4063/280 1022/832/280 1023/818/1 +f 1007/4065/283 1019/837/283 1020/821/3 +f 1014/4067/6 1026/815/6 1027/817/285 +f 1011/4064/1 1023/818/1 1024/820/279 +f 1008/4066/3 1020/821/3 1021/823/281 +f 1015/4068/285 1027/817/285 1028/824/282 +f 1005/4072/2 1017/827/2 1018/829/284 +f 1012/4069/279 1024/820/279 1025/831/278 +f 1009/4070/281 1021/823/281 1022/832/280 +f 1016/4071/282 1028/824/282 1017/827/2 +f 1006/4073/284 1018/829/284 1019/837/283 +f 1013/4074/278 1025/831/278 1026/838/6 +f 1034/2816/280 1046/6040/280 1047/4076/1 +f 1031/842/283 1043/6041/283 1044/4077/3 +f 1038/2809/6 1050/6042/6 1051/4078/285 +f 1035/2810/1 1047/6043/1 1048/4079/279 +f 1032/2811/3 1044/6044/3 1045/4080/281 +f 1039/825/285 1051/6045/285 1052/4081/282 +f 1030/2812/2 1042/6046/2 1041/4082/284 +f 1036/2813/279 1048/6047/279 1049/4083/278 +f 1033/833/281 1045/6048/281 1046/4084/280 +f 1030/835/2 1040/2814/282 1052/4085/282 +f 1029/2815/284 1041/6049/284 1043/4087/283 +f 1037/839/278 1049/6050/278 1050/4088/6 +f 1053/4089/4 1064/4100/286 1076/850/286 +f 1055/4090/287 1054/4101/288 1066/853/288 +f 1061/4091/289 1073/875/289 1074/856/6 +f 1058/4093/290 1070/849/290 1071/859/5 +f 1055/4090/287 1067/855/287 1068/862/3 +f 1062/4096/6 1074/865/6 1075/867/291 +f 1059/4094/5 1071/859/5 1072/869/292 +f 1056/4095/3 1068/862/3 1069/847/293 +f 1063/4097/291 1075/867/291 1076/850/286 +f 1053/4089/4 1065/852/4 1066/853/288 +f 1061/4091/289 1060/4098/292 1072/869/292 +f 1058/4093/290 1057/4099/293 1069/847/293 +f 1082/4102/290 1094/897/290 1095/881/5 +f 1079/4104/287 1091/901/287 1092/884/3 +f 1086/4106/6 1098/878/6 1099/880/291 +f 1083/4103/5 1095/881/5 1096/883/292 +f 1080/4105/3 1092/884/3 1093/886/293 +f 1087/4107/291 1099/880/291 1100/887/286 +f 1077/4111/4 1089/899/4 1090/890/288 +f 1085/4113/289 1084/4108/292 1096/883/292 +f 1081/4109/293 1093/886/293 1094/897/290 +f 1077/4111/4 1088/4110/286 1100/887/286 +f 1078/4112/288 1090/890/288 1091/901/287 +f 1085/4113/289 1097/893/289 1098/902/6 +f 1106/905/290 1118/6051/290 1119/4115/5 +f 1103/907/287 1115/6052/287 1116/4116/3 +f 1110/2832/6 1122/6053/6 1123/4117/291 +f 1107/2833/5 1119/6054/5 1120/4118/292 +f 1104/2834/3 1116/6055/3 1117/4119/293 +f 1111/888/291 1123/6056/291 1124/4120/286 +f 1102/891/4 1114/6057/4 1113/4121/288 +f 1108/894/292 1120/6058/292 1121/4122/289 +f 1105/2835/293 1117/6059/293 1118/4123/290 +f 1112/2836/286 1124/6060/286 1114/4124/4 +f 1101/2837/288 1113/6061/288 1115/4125/287 +f 1109/903/289 1121/6062/289 1122/4126/6 +f 19/3417/66 20/3419/68 4/3445/86 +f 22/3423/72 23/3425/74 7/3453/94 +f 27/3432/78 28/3434/80 12/3461/98 +f 30/3409/61 31/3397/50 15/3399/52 +f 1138/4127/294 1140/4130/297 1139/4128/295 +f 1140/4130/297 1142/4132/299 1141/4131/298 +f 1142/4132/299 1144/4134/301 1143/4133/300 +f 1144/4134/301 1146/4136/303 1145/4135/302 +f 1146/4136/303 1148/4138/305 1147/4137/304 +f 1148/4138/305 1150/6063/71 1149/4139/93 +f 1140/4130/297 1168/4171/325 1169/4140/83 +f 1150/4141/71 1152/4144/307 1151/4142/306 +f 1152/4144/307 1138/4127/294 1137/4129/296 +f 1141/4131/298 1143/4133/300 1156/4145/308 +f 1145/4147/302 1157/4150/311 1156/4145/308 +f 1139/4128/295 1141/4131/298 1155/4146/107 +f 1145/4147/302 1147/4163/304 1158/4149/310 +f 1137/4151/296 1153/4154/313 1159/4152/312 +f 1139/4128/295 1154/4148/309 1153/4154/313 +f 1159/4152/312 1153/4154/313 1160/4155/314 +f 1157/4150/311 1164/4160/319 1163/4157/316 +f 1154/4148/309 1155/4146/107 1162/4158/317 +f 1158/4149/310 1165/4164/320 1164/4160/319 +f 1156/4145/308 1163/4157/316 1162/4158/317 +f 1153/4154/313 1154/4148/309 1161/4159/318 +f 1148/4165/305 1146/4173/303 1171/4166/321 +f 1138/4168/294 1152/4182/307 1173/4169/323 +f 1140/4130/297 1138/4168/294 1167/4170/324 +f 1144/4134/301 1142/4132/299 1169/4140/83 +f 1146/4173/303 1144/4134/301 1170/4172/326 +f 1172/4167/322 1171/4166/321 1178/4174/327 +f 1170/4172/326 1169/4140/83 1176/4176/329 +f 1167/4170/324 1174/4180/333 1175/4178/331 +f 1167/4170/324 1173/4169/323 1180/4179/332 +f 1171/4166/321 1170/4172/326 1177/4177/330 +f 1168/4171/325 1175/4178/331 1176/4176/329 +f 1179/4184/328 1178/4196/327 1186/4185/13 +f 1176/4176/329 1184/4197/1 1185/4187/96 +f 1174/4188/333 1182/4193/18 1183/4189/85 +f 1150/4190/71 1179/4184/328 1187/4186/76 +f 1180/4192/332 1188/4195/65 1182/4193/18 +f 1180/4192/332 1150/6064/71 1181/4194/2 +f 1177/4177/330 1185/4187/96 1186/4185/13 +f 1176/4176/329 1175/4178/331 1183/4189/85 +f 1149/4198/93 1166/4211/315 1196/4199/85 +f 1163/4157/316 1164/4204/319 1194/4201/13 +f 1162/4158/317 1192/4206/2 1191/4203/65 +f 1164/4204/319 1165/4210/320 1195/4205/96 +f 1162/4158/317 1163/4157/316 1193/4202/76 +f 1160/4207/314 1161/4159/318 1191/4203/65 +f 1149/4209/93 1189/6065/1 1195/4205/96 +f 1160/4207/314 1190/4208/18 1196/4199/85 +f 1198/4212/334 1200/4215/337 1199/4213/335 +f 1200/4215/337 1202/4217/339 1201/4216/338 +f 1202/4217/339 1204/4219/341 1203/4218/340 +f 1204/4219/341 1206/4221/343 1205/4220/342 +f 1206/4221/343 1208/4223/345 1207/4222/344 +f 1208/4223/345 1210/6066/109 1209/4224/89 +f 1200/4215/337 1228/4256/364 1229/4225/101 +f 1210/4226/109 1212/4229/347 1211/4227/346 +f 1212/4229/347 1198/4212/334 1197/4214/336 +f 1203/4218/340 1216/4232/348 1215/4230/110 +f 1205/4231/342 1217/4235/351 1216/4232/348 +f 1199/4213/335 1201/4216/338 1215/4230/110 +f 1205/4231/342 1207/4248/344 1218/4234/350 +f 1197/4236/336 1213/4239/353 1219/4237/352 +f 1197/4236/336 1199/4213/335 1214/4233/349 +f 1219/4237/352 1213/4239/353 1220/4240/354 +f 1216/4232/348 1217/4235/351 1224/4242/356 +f 1214/4233/349 1215/4230/110 1222/4244/358 +f 1218/4234/350 1225/4249/360 1224/4242/356 +f 1215/4230/110 1216/4232/348 1223/4243/357 +f 1214/4233/349 1221/4245/359 1220/4240/354 +f 1208/4250/345 1206/4258/343 1231/4251/361 +f 1212/4253/347 1233/4265/372 1227/4254/363 +f 1200/4215/337 1198/4255/334 1227/4254/363 +f 1204/4219/341 1202/4217/339 1229/4225/101 +f 1206/4258/343 1204/4219/341 1230/4257/365 +f 1232/4252/362 1231/4251/361 1238/4259/366 +f 1230/4257/365 1229/4225/101 1236/4261/368 +f 1228/4256/364 1227/4254/363 1234/4263/370 +f 1233/4265/372 1240/4267/373 1234/4263/370 +f 1231/4251/361 1230/4257/365 1237/4262/369 +f 1228/4256/364 1235/4264/371 1236/4261/368 +f 1239/4269/367 1238/4281/366 1246/4270/15 +f 1236/4261/368 1244/4282/1 1245/4272/95 +f 1234/4273/370 1242/4278/11 1243/4274/84 +f 1210/4275/109 1239/4269/367 1247/4271/75 +f 1240/4277/373 1248/4280/108 1242/4278/11 +f 1240/4277/373 1210/6067/109 1241/4279/2 +f 1237/4262/369 1245/4272/95 1246/4270/15 +f 1236/4261/368 1235/4264/371 1243/4274/84 +f 1209/4283/89 1226/4296/355 1256/4284/84 +f 1223/4243/357 1224/4290/356 1254/4286/15 +f 1222/4244/358 1252/4291/2 1251/4288/108 +f 1225/4289/360 1255/4295/95 1254/4286/15 +f 1222/4244/358 1223/4243/357 1253/4287/75 +f 1220/4292/354 1221/4245/359 1251/4288/108 +f 1209/4294/89 1249/6068/1 1255/4295/95 +f 1220/4292/354 1250/4293/11 1256/4284/84 +f 1258/4297/374 1260/4300/377 1259/4298/375 +f 1260/4300/377 1262/4302/379 1261/4301/378 +f 1262/4302/379 1264/4304/381 1263/4303/380 +f 1264/4304/381 1266/4306/383 1265/4305/382 +f 1266/4306/383 1268/4308/385 1267/4307/384 +f 1268/4308/385 1270/6069/107 1269/4309/83 +f 1260/4300/377 1288/4341/405 1289/4310/93 +f 1270/4311/107 1272/4314/387 1271/4312/386 +f 1272/4314/387 1258/4297/374 1257/4299/376 +f 1263/4303/380 1276/4317/388 1275/4315/71 +f 1265/4316/382 1277/4320/391 1276/4317/388 +f 1259/4298/375 1261/4301/378 1275/4315/71 +f 1265/4316/382 1267/4333/384 1278/4319/390 +f 1257/4321/376 1273/4324/393 1279/4322/392 +f 1257/4321/376 1259/4298/375 1274/4318/389 +f 1279/4322/392 1273/4324/393 1280/4325/394 +f 1277/4320/391 1284/4330/399 1283/4327/396 +f 1274/4318/389 1275/4315/71 1282/4328/397 +f 1278/4319/390 1285/4334/400 1284/4330/399 +f 1276/4317/388 1283/4327/396 1282/4328/397 +f 1274/4318/389 1281/4329/398 1280/4325/394 +f 1268/4335/385 1266/4343/383 1291/4336/401 +f 1258/4338/374 1272/4351/387 1293/4339/403 +f 1260/4300/377 1258/4338/374 1287/4340/404 +f 1262/4302/379 1289/4310/93 1290/4342/406 +f 1266/4343/383 1264/4304/381 1290/4342/406 +f 1291/4336/401 1298/4349/412 1299/4344/407 +f 1290/4342/406 1289/4310/93 1296/4345/408 +f 1288/4341/405 1287/4340/404 1294/4347/410 +f 1293/4339/403 1300/4352/413 1294/4347/410 +f 1291/4336/401 1290/4342/406 1297/4346/409 +f 1288/4341/405 1295/4348/411 1296/4345/408 +f 1299/4354/407 1298/4366/412 1306/4355/18 +f 1296/4345/408 1304/4367/1 1305/4357/85 +f 1294/4358/410 1302/4363/13 1303/4359/96 +f 1270/4360/107 1299/4354/407 1307/4356/65 +f 1300/4362/413 1308/4365/76 1302/4363/13 +f 1300/4362/413 1270/6070/107 1301/4364/2 +f 1297/4346/409 1305/4357/85 1306/4355/18 +f 1295/4348/411 1303/4359/96 1304/4367/1 +f 1269/4368/83 1286/4381/395 1316/4369/96 +f 1283/4327/396 1284/4375/399 1314/4371/18 +f 1282/4328/397 1312/4376/2 1311/4373/76 +f 1285/4374/400 1315/4380/85 1314/4371/18 +f 1282/4328/397 1283/4327/396 1313/4372/65 +f 1280/4377/394 1281/4329/398 1311/4373/76 +f 1269/4379/83 1309/6071/1 1315/4380/85 +f 1280/4377/394 1310/4378/13 1316/4369/96 +f 1318/4382/414 1320/4385/417 1319/4383/415 +f 1320/4385/417 1322/4387/419 1321/4386/418 +f 1322/4387/419 1324/4389/421 1323/4388/420 +f 1324/4389/421 1326/4391/423 1325/4390/422 +f 1326/4391/423 1328/4393/425 1327/4392/424 +f 1328/4393/425 1330/6072/110 1329/4394/101 +f 1320/4385/417 1348/4426/444 1349/4395/89 +f 1330/4396/110 1332/4399/427 1331/4397/426 +f 1332/4399/427 1318/4382/414 1317/4384/416 +f 1323/4388/420 1336/4402/428 1335/4400/109 +f 1325/4401/422 1337/4405/431 1336/4402/428 +f 1319/4383/415 1321/4386/418 1335/4400/109 +f 1325/4401/422 1327/4418/424 1338/4404/430 +f 1317/4406/416 1333/4409/433 1339/4407/432 +f 1317/4406/416 1319/4383/415 1334/4403/429 +f 1339/4407/432 1333/4409/433 1340/4410/434 +f 1336/4402/428 1337/4405/431 1344/4412/436 +f 1335/4400/109 1342/4415/439 1341/4414/438 +f 1338/4404/430 1345/4419/440 1344/4412/436 +f 1336/4402/428 1343/4413/437 1342/4415/439 +f 1334/4403/429 1341/4414/438 1340/4410/434 +f 1328/4420/425 1326/4428/423 1351/4421/441 +f 1332/4423/427 1353/4434/451 1347/4424/443 +f 1318/4425/414 1347/4424/443 1348/4426/444 +f 1324/4389/421 1322/4387/419 1349/4395/89 +f 1326/4428/423 1324/4389/421 1350/4427/445 +f 1351/4421/441 1358/4435/452 1359/4429/446 +f 1350/4427/445 1349/4395/89 1356/4430/447 +f 1348/4426/444 1347/4424/443 1354/4432/449 +f 1353/4434/451 1360/4437/453 1354/4432/449 +f 1351/4421/441 1350/4427/445 1357/4431/448 +f 1349/4395/89 1348/4426/444 1355/4433/450 +f 1359/4439/446 1358/4451/452 1366/4440/11 +f 1356/4430/447 1364/4452/1 1365/4442/84 +f 1354/4443/449 1362/4448/15 1363/4444/95 +f 1330/4445/110 1359/4439/446 1367/4441/108 +f 1360/4447/453 1368/4450/75 1362/4448/15 +f 1360/4447/453 1330/6073/110 1361/4449/2 +f 1357/4431/448 1365/4442/84 1366/4440/11 +f 1356/4430/447 1355/4433/450 1363/4444/95 +f 1329/4453/101 1346/4466/435 1376/4454/95 +f 1343/4413/437 1344/4459/436 1374/4456/11 +f 1342/4415/439 1372/4461/2 1371/4458/75 +f 1344/4459/436 1345/4465/440 1375/4460/84 +f 1342/4415/439 1343/4413/437 1373/4457/108 +f 1340/4462/434 1341/4414/438 1371/4458/75 +f 1329/4464/101 1369/6074/1 1375/4460/84 +f 1340/4462/434 1370/4463/15 1376/4454/95 +f 1378/4467/422 1380/4470/420 1379/4468/421 +f 1380/4470/420 1382/4472/418 1381/4471/419 +f 1382/4472/418 1384/4474/415 1383/4473/417 +f 1384/4474/415 1386/4476/416 1385/4475/414 +f 1386/4476/416 1388/4478/426 1387/4477/427 +f 1388/4478/426 1390/6075/101 1389/4479/110 +f 1380/4470/420 1408/4511/428 1409/4480/109 +f 1390/4481/101 1392/4484/424 1391/4482/425 +f 1392/4484/424 1378/4467/422 1377/4469/423 +f 1381/4471/419 1383/4473/417 1396/4485/444 +f 1385/4487/414 1397/4490/443 1396/4485/444 +f 1379/4468/421 1381/4471/419 1395/4486/89 +f 1385/4487/414 1387/4504/427 1398/4489/454 +f 1377/4491/423 1393/4494/441 1399/4492/442 +f 1379/4468/421 1394/4488/445 1393/4494/441 +f 1399/4492/442 1393/4494/441 1400/4495/452 +f 1397/4490/443 1404/4501/449 1403/4497/450 +f 1394/4488/445 1395/4486/89 1402/4498/447 +f 1397/4490/443 1398/4489/454 1405/4500/453 +f 1396/4485/444 1403/4497/450 1402/4498/447 +f 1394/4488/445 1401/4499/448 1400/4495/452 +f 1388/4505/426 1386/4513/416 1411/4506/433 +f 1392/4508/424 1413/4519/430 1407/4509/431 +f 1378/4510/422 1407/4509/431 1408/4511/428 +f 1384/4474/415 1382/4472/418 1409/4480/109 +f 1386/4513/416 1384/4474/415 1410/4512/457 +f 1412/4507/456 1411/4506/433 1418/4514/434 +f 1409/4480/109 1416/4520/439 1417/4516/438 +f 1408/4511/428 1407/4509/431 1414/4517/436 +f 1413/4519/430 1420/4522/458 1414/4517/436 +f 1410/4512/457 1417/4516/438 1418/4514/434 +f 1408/4511/428 1415/4518/437 1416/4520/439 +f 1419/4524/435 1418/4536/434 1426/4525/15 +f 1416/4520/439 1424/4537/2 1425/4527/75 +f 1414/4528/436 1422/4533/11 1423/4529/108 +f 1390/4530/101 1419/4524/435 1427/4526/95 +f 1420/4532/458 1428/4535/84 1422/4533/11 +f 1420/4532/458 1390/6076/101 1421/4534/1 +f 1418/4536/434 1417/4516/438 1425/4527/75 +f 1416/4520/439 1415/4518/437 1423/4529/108 +f 1389/4538/110 1406/4551/455 1436/4539/108 +f 1403/4497/450 1404/4545/449 1434/4541/15 +f 1402/4498/447 1432/4546/1 1431/4543/84 +f 1405/4544/453 1435/4550/75 1434/4541/15 +f 1402/4498/447 1403/4497/450 1433/4542/95 +f 1400/4547/452 1401/4499/448 1431/4543/84 +f 1389/4549/110 1429/6077/2 1435/4550/75 +f 1400/4547/452 1430/4548/11 1436/4539/108 +f 1438/4552/382 1440/4555/380 1439/4553/381 +f 1440/4555/380 1442/4557/378 1441/4556/379 +f 1442/4557/378 1444/4559/375 1443/4558/377 +f 1444/4559/375 1446/4561/376 1445/4560/374 +f 1446/4561/376 1448/4563/386 1447/4562/387 +f 1448/4563/386 1450/6078/83 1449/4564/107 +f 1440/4555/380 1468/4596/388 1469/4565/71 +f 1450/4566/83 1452/4569/384 1451/4567/385 +f 1452/4569/384 1438/4552/382 1437/4554/383 +f 1443/4558/377 1456/4572/405 1455/4570/93 +f 1445/4571/374 1457/4575/404 1456/4572/405 +f 1441/4556/379 1455/4570/93 1454/4573/406 +f 1445/4571/374 1447/4588/387 1458/4574/403 +f 1437/4576/383 1453/4579/401 1459/4577/402 +f 1437/4576/383 1439/4553/381 1454/4573/406 +f 1459/4577/402 1453/4579/401 1460/4580/412 +f 1457/4575/404 1464/4585/410 1463/4582/411 +f 1454/4573/406 1455/4570/93 1462/4583/408 +f 1458/4574/403 1465/4589/459 1464/4585/410 +f 1456/4572/405 1463/4582/411 1462/4583/408 +f 1454/4573/406 1461/4584/409 1460/4580/412 +f 1448/4590/386 1446/4598/376 1471/4591/393 +f 1438/4593/382 1452/4606/384 1473/4594/390 +f 1440/4555/380 1438/4593/382 1467/4595/391 +f 1444/4559/375 1442/4557/378 1469/4565/71 +f 1444/4559/375 1470/4597/389 1471/4591/393 +f 1471/4591/393 1478/4604/394 1479/4599/395 +f 1470/4597/389 1469/4565/71 1476/4600/397 +f 1468/4596/388 1467/4595/391 1474/4602/399 +f 1473/4594/390 1480/4607/400 1474/4602/399 +f 1471/4591/393 1470/4597/389 1477/4601/398 +f 1468/4596/388 1475/4603/396 1476/4600/397 +f 1479/4609/395 1478/4621/394 1486/4610/13 +f 1476/4600/397 1484/4622/2 1485/4612/76 +f 1474/4613/399 1482/4618/18 1483/4614/65 +f 1450/4615/83 1479/4609/395 1487/4611/96 +f 1474/4613/399 1480/4619/400 1488/4617/85 +f 1480/4619/400 1450/6079/83 1481/4620/1 +f 1477/4601/398 1485/4612/76 1486/4610/13 +f 1476/4600/397 1475/4603/396 1483/4614/65 +f 1449/4623/107 1466/4636/407 1496/4624/65 +f 1463/4582/411 1464/4630/410 1494/4626/13 +f 1462/4583/408 1492/4631/1 1491/4628/85 +f 1465/4629/459 1495/4635/76 1494/4626/13 +f 1462/4583/408 1463/4582/411 1493/4627/96 +f 1460/4632/412 1461/4584/409 1491/4628/85 +f 1449/4634/107 1489/6080/2 1495/4635/76 +f 1466/4636/407 1460/4632/412 1490/4633/18 +f 1498/4637/342 1500/4640/340 1499/4638/341 +f 1500/4640/340 1502/4642/338 1501/4641/339 +f 1502/4642/338 1504/4644/335 1503/4643/337 +f 1504/4644/335 1506/4646/336 1505/4645/334 +f 1506/4646/336 1508/4648/346 1507/4647/347 +f 1508/4648/346 1510/6081/89 1509/4649/109 +f 1500/4640/340 1528/4681/348 1529/4650/110 +f 1510/4651/89 1512/4654/344 1511/4652/345 +f 1512/4654/344 1498/4637/342 1497/4639/343 +f 1503/4643/337 1516/4657/364 1515/4655/101 +f 1505/4656/334 1517/4660/363 1516/4657/364 +f 1499/4638/341 1501/4641/339 1515/4655/101 +f 1505/4656/334 1507/4673/347 1518/4659/372 +f 1497/4661/343 1513/4664/361 1519/4662/362 +f 1497/4661/343 1499/4638/341 1514/4658/365 +f 1519/4662/362 1513/4664/361 1520/4665/366 +f 1516/4657/364 1517/4660/363 1524/4667/370 +f 1514/4658/365 1515/4655/101 1522/4669/368 +f 1518/4659/372 1525/4674/373 1524/4667/370 +f 1515/4655/101 1516/4657/364 1523/4668/371 +f 1513/4664/361 1514/4658/365 1521/4670/369 +f 1508/4675/346 1506/4683/336 1531/4676/353 +f 1498/4678/342 1512/4691/344 1533/4679/350 +f 1500/4640/340 1498/4678/342 1527/4680/351 +f 1502/4642/338 1529/4650/110 1530/4682/349 +f 1506/4683/336 1504/4644/335 1530/4682/349 +f 1531/4676/353 1538/4689/354 1539/4684/355 +f 1530/4682/349 1529/4650/110 1536/4685/358 +f 1528/4681/348 1527/4680/351 1534/4687/356 +f 1533/4679/350 1540/4692/460 1534/4687/356 +f 1530/4682/349 1537/4686/359 1538/4689/354 +f 1528/4681/348 1535/4688/357 1536/4685/358 +f 1538/4694/354 1546/4706/11 1547/4695/84 +f 1536/4685/358 1544/4707/2 1545/4697/108 +f 1534/4698/356 1542/4703/15 1543/4699/75 +f 1510/4700/89 1539/4696/355 1547/4695/84 +f 1534/4698/356 1540/4704/460 1548/4702/95 +f 1540/4704/460 1510/6082/89 1541/4705/1 +f 1537/4686/359 1545/4697/108 1546/4706/11 +f 1536/4685/358 1535/4688/357 1543/4699/75 +f 1509/4708/109 1526/4721/367 1556/4709/75 +f 1523/4668/371 1524/4715/370 1554/4711/11 +f 1522/4669/368 1552/4716/1 1551/4713/95 +f 1525/4714/373 1555/4720/108 1554/4711/11 +f 1522/4669/368 1523/4668/371 1553/4712/84 +f 1520/4717/366 1521/4670/369 1551/4713/95 +f 1509/4719/109 1549/6083/2 1555/4720/108 +f 1520/4717/366 1550/4718/15 1556/4709/75 +f 1558/4722/302 1560/4725/300 1559/4723/301 +f 1560/4725/300 1562/4727/298 1561/4726/299 +f 1562/4727/298 1564/4729/295 1563/4728/297 +f 1564/4729/295 1566/4731/296 1565/4730/294 +f 1566/4731/296 1568/4733/306 1567/4732/307 +f 1568/4733/306 1570/6084/93 1569/4734/71 +f 1560/4725/300 1588/4766/464 1589/4735/107 +f 1570/4736/93 1572/4739/304 1571/4737/305 +f 1572/4739/304 1558/4722/302 1557/4724/303 +f 1563/4728/297 1576/4742/325 1575/4740/83 +f 1565/4741/294 1577/4745/324 1576/4742/325 +f 1559/4723/301 1561/4726/299 1575/4740/83 +f 1567/4744/307 1578/4755/323 1577/4745/324 +f 1557/4746/303 1573/4749/321 1579/4747/462 +f 1559/4723/301 1574/4743/461 1573/4749/321 +f 1579/4747/462 1573/4749/321 1580/4750/327 +f 1576/4742/325 1577/4745/324 1584/4752/333 +f 1575/4740/83 1582/4756/329 1581/4754/330 +f 1578/4755/323 1585/4759/463 1584/4752/333 +f 1576/4742/325 1583/4753/331 1582/4756/329 +f 1574/4743/461 1581/4754/330 1580/4750/327 +f 1568/4760/306 1566/4768/296 1591/4761/313 +f 1572/4763/304 1593/4775/466 1587/4764/311 +f 1558/4765/302 1587/4764/311 1588/4766/464 +f 1564/4729/295 1562/4727/298 1589/4735/107 +f 1566/4768/296 1564/4729/295 1590/4767/309 +f 1592/4762/312 1591/4761/313 1598/4769/314 +f 1590/4767/309 1589/4735/107 1596/4771/317 +f 1588/4766/464 1587/4764/311 1594/4773/319 +f 1593/4775/466 1600/4777/320 1594/4773/319 +f 1591/4761/313 1590/4767/309 1597/4772/318 +f 1588/4766/464 1595/4774/316 1596/4771/317 +f 1599/4779/465 1598/4791/314 1606/4780/18 +f 1596/4771/317 1604/4792/2 1605/4782/65 +f 1595/4774/316 1594/4788/319 1602/4783/13 +f 1570/4785/93 1599/4779/465 1607/4781/85 +f 1600/4787/320 1608/4790/96 1602/4783/13 +f 1570/4789/93 1601/6085/1 1608/4790/96 +f 1597/4772/318 1605/4782/65 1606/4780/18 +f 1596/4771/317 1595/4774/316 1603/4784/76 +f 1569/4793/71 1586/4806/328 1616/4794/76 +f 1583/4753/331 1584/4800/333 1614/4796/18 +f 1582/4756/329 1612/4801/1 1611/4798/96 +f 1585/4799/463 1615/4805/65 1614/4796/18 +f 1582/4756/329 1583/4753/331 1613/4797/85 +f 1580/4802/327 1581/4754/330 1611/4798/96 +f 1569/4804/71 1609/6086/2 1615/4805/65 +f 1580/4802/327 1610/4803/13 1616/4794/76 +f 1938/4807/467 1946/4819/479 1947/4808/468 +f 1960/4810/470 1944/4820/480 1941/4811/471 +f 1939/4809/469 1947/4808/468 1948/4813/473 +f 1959/4815/475 1958/4834/490 1942/4816/476 +f 1937/4818/478 1945/4823/481 1946/4819/479 +f 1959/4815/475 1943/4817/477 1944/4820/480 +f 1937/4821/478 1940/4814/474 1948/4813/473 +f 1945/4823/481 1949/4828/485 1950/4824/482 +f 1947/4808/468 1946/4819/479 1950/4824/482 +f 1948/4813/473 1947/4808/468 1951/4825/483 +f 1948/4813/473 1952/4826/484 1949/4827/485 +f 1949/4828/485 1953/4833/489 1954/4829/486 +f 1951/4825/483 1950/4824/482 1954/4829/486 +f 1952/4826/484 1951/4825/483 1955/4830/487 +f 1952/4826/484 1956/4831/488 1953/4832/489 +f 1953/4833/489 1957/4835/472 1958/4834/490 +f 1955/4830/487 1954/4829/486 1958/4834/490 +f 1955/4830/487 1959/4815/475 1960/4810/470 +f 1956/4831/488 1960/4810/470 1957/4812/472 +f 1957/4835/472 1941/6087/471 1942/4816/476 +f 1981/4836/491 1965/6088/498 1966/4837/492 +f 1983/4839/494 1982/4838/493 1966/4837/492 +f 1983/4839/494 1967/4840/495 1968/4841/496 +f 1984/4842/497 1968/4841/496 1965/4843/498 +f 1962/4845/499 1961/6089/506 1969/4846/500 +f 1962/4845/499 1970/4847/501 1971/4848/502 +f 1963/4849/503 1971/4848/502 1972/4850/504 +f 1961/4852/506 1964/4851/505 1972/4850/504 +f 1969/4846/500 1973/6090/510 1974/4854/507 +f 1970/4847/501 1974/4854/507 1975/4855/508 +f 1971/4848/502 1975/4855/508 1976/4856/509 +f 1969/4853/500 1972/4850/504 1976/4856/509 +f 1974/4854/507 1973/6090/510 1977/4858/511 +f 1974/4854/507 1978/4859/512 1979/4860/513 +f 1976/4856/509 1975/4855/508 1979/4860/513 +f 1973/4857/510 1976/4856/509 1980/4861/514 +f 1978/4859/512 1977/4858/511 1981/4836/491 +f 1978/4859/512 1982/4838/493 1983/4839/494 +f 1979/4860/513 1983/4839/494 1984/4842/497 +f 1977/4862/511 1980/4861/514 1984/4842/497 +f 1986/4863/515 1985/6091/521 2005/4864/516 +f 2007/4866/518 1987/6092/829 1986/4863/515 +f 1988/4867/519 1987/6092/829 2007/4866/518 +f 1985/4869/521 1988/4867/519 2008/4868/520 +f 1994/4871/522 1993/4880/530 1989/4872/523 +f 1995/4874/525 1994/4871/522 1990/4873/524 +f 1996/4876/527 1995/4874/525 1991/4875/526 +f 1989/4878/523 1993/4883/530 1996/4876/527 +f 1994/4871/522 1998/4885/534 1997/4879/529 +f 1999/4881/531 1998/4885/534 1994/4871/522 +f 2000/4882/532 1999/4881/531 1995/4874/525 +f 1993/4883/530 1997/4888/529 2000/4882/532 +f 2002/4884/533 2001/4889/536 1997/4879/529 +f 1999/4881/531 2003/4890/537 2002/4884/533 +f 2004/4886/535 2003/4890/537 1999/4881/531 +f 2001/4887/536 2004/4886/535 2000/4882/532 +f 2006/4865/517 2005/4864/516 2001/4889/536 +f 2003/4890/537 2007/4866/518 2006/4865/517 +f 2004/4886/535 2008/4868/520 2007/4866/518 +f 2005/4870/516 2008/4868/520 2004/4886/535 +f 2021/2938/279 2009/6093/279 2010/4891/278 +f 2028/2945/283 2016/6094/283 2017/4892/3 +f 2025/2942/282 2013/6095/282 2014/4893/2 +f 2022/1552/278 2010/6096/278 2011/4894/6 +f 2029/2946/3 2017/6097/3 2018/4895/281 +f 2026/1564/2 2014/6098/2 2015/4896/284 +f 2023/1555/6 2011/6099/6 2012/4897/285 +f 2030/2947/281 2018/6100/281 2020/4898/280 +f 2032/2937/1 2019/6101/1 2009/4899/279 +f 2027/2944/284 2015/6102/284 2016/4900/283 +f 2024/1558/285 2012/6103/285 2013/4901/282 +f 2056/4902/248 2055/4914/247 2043/2936/246 +f 2056/4902/248 2044/1545/91 2033/1547/249 +f 2045/4903/250 2033/1548/249 2034/1550/252 +f 2047/4905/253 2046/4904/251 2034/2939/252 +f 2047/4906/253 2035/2940/12 2036/1554/538 +f 2049/4908/256 2048/4907/254 2036/2941/538 +f 2049/4908/256 2037/1560/255 2038/1562/69 +f 2051/4910/243 2050/4909/257 2038/2943/69 +f 2051/4910/243 2039/1566/241 2040/1568/539 +f 2053/4912/244 2052/4911/242 2040/1569/539 +f 2054/4913/245 2053/4912/244 2041/1572/14 +f 2055/4914/247 2054/4913/245 2042/1575/540 +f 2070/4915/268 2046/4904/251 2047/4905/253 +f 2077/4917/259 2053/4912/244 2054/4913/245 +f 2074/4919/262 2050/4909/257 2051/4910/243 +f 2071/4921/269 2047/4906/253 2048/4907/254 +f 2078/4918/265 2054/4913/245 2055/4914/247 +f 2080/4924/258 2056/4902/248 2045/4903/250 +f 2075/4920/261 2051/4910/243 2052/4911/242 +f 2072/4922/260 2048/4907/254 2049/4908/256 +f 2079/4923/264 2055/4914/247 2056/4902/248 +f 2069/4925/263 2045/4903/250 2046/4904/251 +f 2076/4926/267 2052/4911/242 2053/4912/244 +f 2073/4927/266 2049/4908/256 2050/4909/257 +f 2068/4928/100 2067/5406/273 2079/4923/264 +f 2069/4925/263 2057/5397/275 2068/4929/100 +f 2070/4915/268 2058/5405/274 2057/4930/275 +f 2059/4931/17 2058/5402/274 2070/4915/268 +f 2060/4932/276 2059/5399/17 2071/4921/269 +f 2061/4933/277 2060/5407/276 2072/4922/260 +f 2074/4919/262 2062/5403/60 2061/4934/277 +f 2063/4935/270 2062/5400/60 2074/4919/262 +f 2064/4936/271 2063/5408/270 2075/4920/261 +f 2065/4937/16 2064/5404/271 2076/4926/267 +f 2066/4938/272 2065/5401/16 2077/4917/259 +f 2067/4939/273 2066/5398/272 2078/4918/265 +f 2085/4940/175 2081/4944/168 2084/4941/166 +f 2085/4940/175 2086/4945/176 2082/4943/170 +f 2086/4945/176 2087/4948/173 2083/4946/172 +f 2088/4947/174 2084/4967/166 2083/4946/172 +f 2089/4949/178 2085/4940/175 2088/4942/174 +f 2090/4951/179 2086/4945/176 2085/4940/175 +f 2090/4951/179 2091/4953/180 2087/4948/173 +f 2092/4952/177 2088/4947/174 2087/4948/173 +f 2096/4954/159 2093/4956/160 2089/4949/178 +f 2094/4955/163 2090/4951/179 2089/4949/178 +f 2095/4957/157 2091/4953/180 2090/4951/179 +f 2095/4957/157 2096/6104/159 2092/4952/177 +f 2100/4958/158 2097/4960/161 2093/4956/160 +f 2098/4959/162 2094/4955/163 2093/4956/160 +f 2099/4961/164 2095/4957/157 2094/4955/163 +f 2100/4962/158 2096/6104/159 2095/4957/157 +f 2081/4944/168 2101/4964/169 2104/4963/167 +f 2082/4943/170 2102/4966/171 2101/4964/169 +f 2082/4943/170 2083/4946/172 2103/4965/165 +f 2084/4967/166 2104/6105/167 2103/4965/165 +f 2112/4968/541 2108/4992/544 2105/4969/542 +f 2109/4970/127 2105/4969/542 2106/4971/543 +f 2106/4971/543 2107/4995/556 2111/4973/128 +f 2111/4973/128 2107/4995/556 2108/4974/544 +f 2116/4976/129 2112/4968/541 2109/4970/127 +f 2113/4977/131 2109/4970/127 2110/4972/130 +f 2110/4972/130 2111/4973/128 2115/4979/132 +f 2115/4979/132 2111/4973/128 2112/4975/541 +f 2120/4981/545 2116/4976/129 2113/4977/131 +f 2113/4977/131 2114/4978/133 2118/4983/547 +f 2114/4978/133 2115/4979/132 2119/4984/548 +f 2115/4979/132 2116/4980/129 2120/4985/545 +f 2128/4986/549 2120/4981/545 2117/4982/546 +f 2117/4982/546 2118/4983/547 2126/4988/551 +f 2118/4983/547 2119/4984/548 2127/4989/552 +f 2127/4989/552 2119/4984/548 2120/4985/545 +f 2124/4991/553 2121/4993/554 2105/4969/542 +f 2121/4993/554 2122/6106/851 2106/4971/543 +f 2106/4971/543 2122/6106/851 2123/4994/555 +f 2123/4994/555 2124/6107/553 2108/4974/544 +f 2147/4996/557 2148/6108/572 2132/4997/558 +f 2132/4999/558 2129/5002/560 2133/5000/150 +f 2129/5002/560 2130/5019/569 2134/5003/151 +f 2134/5003/151 2130/5019/569 2131/4998/559 +f 2135/5004/153 2131/4998/559 2132/4997/558 +f 2136/5001/148 2133/5000/150 2137/5006/154 +f 2137/5006/154 2133/5000/150 2134/5003/151 +f 2138/5008/155 2134/5003/151 2135/5004/153 +f 2135/5004/153 2136/5005/148 2140/5010/156 +f 2140/5007/156 2137/5006/154 2141/5011/562 +f 2141/5011/562 2137/5006/154 2138/5008/155 +f 2142/5013/564 2138/5008/155 2139/5009/561 +f 2139/5009/561 2140/5010/156 2144/5015/563 +f 2152/5016/566 2144/5012/563 2141/5011/562 +f 2145/5018/568 2146/6109/852 2130/5019/569 +f 2151/5020/570 2143/5014/565 2144/5015/563 +f 2130/5019/569 2146/6109/852 2147/4996/557 +f 2141/5011/562 2142/5013/564 2150/5022/571 +f 2148/5023/572 2145/5018/568 2129/5002/560 +f 2142/5013/564 2143/5014/565 2151/5020/570 +f 2154/5024/573 2166/6110/593 2167/5025/574 +f 2167/5027/574 2168/5082/577 2156/5028/576 +f 2168/5029/577 2169/5084/579 2157/5030/578 +f 2169/5031/579 2170/5088/581 2158/5032/580 +f 2170/5033/581 2171/5081/583 2159/5034/582 +f 2171/5035/583 2172/5083/839 2160/5036/584 +f 2160/5036/584 2172/5087/839 2173/5037/585 +f 2173/5039/585 2174/5080/838 2162/5040/587 +f 2162/5041/587 2174/6111/838 2175/5042/588 +f 2175/5044/588 2176/5085/837 2164/5045/590 +f 2164/5045/590 2176/5079/837 2165/5046/591 +f 2153/5047/592 2165/5086/591 2166/5048/593 +f 2159/5034/582 2160/5036/584 2184/5049/594 +f 2157/5030/578 2181/5055/600 2180/5051/596 +f 2164/5045/590 2188/5056/601 2187/5052/597 +f 2154/5024/573 2178/5058/603 2177/5053/598 +f 2161/5038/586 2185/5059/604 2184/5049/594 +f 2157/5030/578 2158/5032/580 2182/5054/599 +f 2164/5045/590 2153/5047/592 2177/5053/598 +f 2154/5024/573 2155/5026/575 2179/5057/602 +f 2162/5040/587 2186/5061/605 2185/5059/604 +f 2158/5032/580 2159/5034/582 2183/5050/595 +f 2156/5028/576 2180/5051/596 2179/5057/602 +f 2163/5043/589 2187/5052/597 2186/5060/605 +f 2178/5058/603 2179/5057/602 2191/2948/606 +f 2179/5057/602 2180/5051/596 2192/1581/608 +f 2180/5051/596 2181/5055/600 2193/1584/609 +f 2182/5054/599 2194/1587/611 2193/1589/609 +f 2182/5054/599 2183/5050/595 2195/2952/610 +f 2184/5049/594 2196/1593/613 2195/1595/610 +f 2184/5049/594 2185/5059/604 2197/2954/612 +f 2186/5061/605 2198/2955/614 2197/1599/612 +f 2187/5052/597 2199/2956/615 2198/1602/614 +f 2188/5056/601 2200/2957/616 2199/1605/615 +f 2177/5053/598 2189/1608/617 2200/1610/616 +f 2177/5053/598 2178/5058/603 2190/2959/607 +f 2208/1598/618 2209/1597/619 2221/5062/619 +f 2206/2951/620 2218/6112/620 2217/5064/621 +f 2201/2958/622 2214/6113/622 2224/5065/623 +f 2202/1580/624 2203/1579/625 2215/5066/625 +f 2210/1600/289 2222/6114/289 2221/5068/619 +f 2206/1592/620 2207/1591/626 2219/5069/626 +f 2204/2949/287 2216/6115/287 2215/5071/625 +f 2210/1604/289 2211/1603/627 2223/5072/627 +f 2207/1594/626 2208/2953/618 2220/5074/618 +f 2205/2950/621 2217/6116/621 2216/5076/287 +f 2212/1606/623 2224/6117/623 2223/5077/627 +f 2202/1612/624 2213/6118/624 2214/5078/622 +f 2176/5079/623 2236/2970/623 2225/1620/622 +f 2167/5025/625 2166/6110/624 2226/1623/624 +f 2173/5039/619 2233/2972/619 2234/1626/289 +f 2170/5033/620 2230/2973/620 2231/1629/626 +f 2167/5027/625 2227/1632/625 2228/1634/287 +f 2175/5042/627 2174/6111/289 2234/1635/289 +f 2172/5083/618 2171/5035/626 2231/2976/626 +f 2168/5029/287 2228/1641/287 2229/1643/621 +f 2175/5044/627 2235/2978/627 2236/1644/623 +f 2165/5086/622 2225/1647/622 2226/1649/624 +f 2172/5087/618 2232/1650/618 2233/1652/619 +f 2169/5031/621 2229/2969/621 2230/1617/620 +f 2242/5089/620 2254/1669/620 2255/1656/626 +f 2239/5091/625 2251/1674/625 2252/1679/287 +f 2247/5093/627 2246/6119/289 2258/1653/289 +f 2243/5090/626 2255/1656/626 2256/1658/618 +f 2241/5095/621 2240/5092/287 2252/1679/287 +f 2247/5093/627 2259/1655/627 2260/1663/623 +f 2237/5097/622 2249/1664/622 2250/1666/624 +f 2244/5094/618 2256/1658/618 2257/1668/619 +f 2242/5089/620 2241/5095/621 2253/1659/621 +f 2248/5096/623 2260/1663/623 2249/1664/622 +f 2239/5091/625 2238/5098/624 2250/1666/624 +f 2245/5099/619 2257/1668/619 2258/1675/289 +f 2266/2988/620 2278/6120/620 2279/5101/626 +f 2264/1681/287 2263/1680/625 2275/5102/625 +f 2271/1654/627 2270/2981/289 2282/5104/289 +f 2267/2982/626 2279/6121/626 2280/5106/618 +f 2264/1660/287 2276/6122/287 2277/5107/621 +f 2272/1662/623 2271/2983/627 2283/5108/627 +f 2262/2984/622 2274/6123/622 2273/5110/624 +f 2268/2985/618 2280/6124/618 2281/5111/619 +f 2265/1670/621 2277/6125/621 2278/5112/620 +f 2262/1672/622 2272/2986/623 2284/5113/623 +f 2261/2987/624 2273/6126/624 2275/5115/625 +f 2269/1676/619 2281/6127/619 2282/5116/289 +f 2298/5117/628 2299/5171/631 2287/5118/629 +f 2299/5120/631 2300/5174/841 2288/5121/632 +f 2288/5121/632 2300/5176/841 2301/5122/633 +f 2289/5123/634 2301/6128/633 2302/5124/635 +f 2302/5126/635 2303/5173/844 2291/5127/637 +f 2291/5127/637 2303/6129/844 2304/5128/638 +f 2304/5130/638 2305/5179/641 2293/5131/640 +f 2305/5132/641 2306/5172/643 2294/5133/642 +f 2306/5134/643 2307/5175/645 2295/5135/644 +f 2307/5137/645 2308/5177/843 2296/5138/646 +f 2296/5138/646 2308/5170/843 2297/5139/647 +f 2297/5141/647 2298/5178/628 2286/5119/630 +f 2292/5129/639 2316/5147/654 2315/5142/649 +f 2288/5121/632 2289/5123/634 2313/5143/650 +f 2296/5138/646 2320/5148/655 2319/5145/652 +f 2286/5119/630 2310/5150/657 2309/5146/653 +f 2293/5131/640 2317/5151/658 2316/5147/654 +f 2290/5125/636 2314/5152/659 2313/5143/650 +f 2285/5140/648 2309/5146/653 2320/5148/655 +f 2286/5119/630 2287/5118/629 2311/5149/656 +f 2294/5133/642 2318/5154/660 2317/5151/658 +f 2290/5125/636 2291/5127/637 2315/5142/649 +f 2288/5121/632 2312/5144/651 2311/5149/656 +f 2295/5135/644 2319/5145/652 2318/5153/660 +f 2310/5150/657 2311/5149/656 2323/1685/661 +f 2312/5144/651 2324/1688/664 2323/1690/661 +f 2312/5144/651 2313/5143/650 2325/1691/663 +f 2314/5152/659 2326/1694/666 2325/1696/663 +f 2314/5152/659 2315/5142/649 2327/3002/665 +f 2315/5142/649 2316/5147/654 2328/1700/667 +f 2316/5147/654 2317/5151/658 2329/3004/668 +f 2318/5154/660 2330/3005/669 2329/1706/668 +f 2319/5145/652 2331/3006/670 2330/1709/669 +f 2320/5148/655 2332/3007/671 2331/1712/670 +f 2309/5146/653 2321/3008/672 2332/1715/671 +f 2310/5150/657 2322/3009/662 2321/1718/672 +f 2340/1705/673 2341/1704/674 2353/5155/674 +f 2338/3001/675 2350/6130/675 2349/5157/676 +f 2333/1716/677 2346/6131/677 2356/5158/678 +f 2335/2998/679 2347/6132/679 2345/5159/680 +f 2342/1707/289 2354/6133/289 2353/5160/674 +f 2339/1698/681 2351/6134/681 2350/5161/675 +f 2336/2999/287 2348/6135/287 2347/5162/679 +f 2343/1710/682 2355/6136/682 2354/5163/289 +f 2339/1701/681 2340/3003/673 2352/5164/673 +f 2336/1692/287 2337/3000/676 2349/5166/676 +f 2344/1713/678 2356/6137/678 2355/5168/682 +f 2334/1719/680 2345/6138/680 2346/5169/677 +f 2308/5170/678 2368/3020/678 2357/1727/677 +f 2299/5171/679 2298/5117/680 2358/1730/680 +f 2305/5132/674 2365/3022/674 2366/1733/289 +f 2303/5173/681 2302/5126/675 2362/3023/675 +f 2300/5174/287 2299/5120/679 2359/3024/679 +f 2306/5134/289 2366/1742/289 2367/1744/682 +f 2304/5128/673 2303/6129/681 2363/1745/681 +f 2300/5176/287 2360/1748/287 2361/1750/676 +f 2307/5137/682 2367/3028/682 2368/1751/678 +f 2297/5141/677 2357/1754/677 2358/1756/680 +f 2304/5130/673 2364/1757/673 2365/1759/674 +f 2302/5124/675 2301/6128/676 2361/3019/676 +f 2375/5180/681 2374/5189/675 2386/1776/675 +f 2372/5181/287 2371/5191/679 2383/1781/679 +f 2378/5182/289 2390/1760/289 2391/1762/682 +f 2375/5180/681 2387/1763/681 2388/1765/673 +f 2372/5181/287 2384/1766/287 2385/1768/676 +f 2380/5186/678 2379/5183/682 2391/1762/682 +f 2370/5187/680 2369/5190/677 2381/1771/677 +f 2376/5184/673 2388/1765/673 2389/1775/674 +f 2374/5189/675 2373/5185/676 2385/1768/676 +f 2380/5186/678 2392/1770/678 2381/1771/677 +f 2371/5191/679 2370/5187/680 2382/1773/680 +f 2378/5192/289 2377/5188/674 2389/1775/674 +f 2399/1786/681 2398/1785/675 2410/5193/675 +f 2395/1787/679 2407/6139/679 2408/5195/287 +f 2402/3031/289 2414/6140/289 2415/5196/682 +f 2400/1764/673 2399/3032/681 2411/5197/681 +f 2396/3033/287 2408/6141/287 2409/5199/676 +f 2403/3034/682 2415/6142/682 2416/5200/678 +f 2394/3035/677 2406/6143/677 2405/5201/680 +f 2400/3036/673 2412/6144/673 2413/5202/674 +f 2397/1777/676 2409/6145/676 2410/5203/675 +f 2394/1779/677 2404/3037/678 2416/5204/678 +f 2393/3038/680 2405/6146/680 2407/5206/679 +f 2401/1783/674 2413/6147/674 2414/5207/289 +f 2418/5208/683 2430/5265/705 2431/5209/684 +f 2431/5211/684 2432/5268/687 2420/5212/686 +f 2432/5213/687 2433/5271/689 2421/5214/688 +f 2433/5215/689 2434/5273/691 2422/5216/690 +f 2434/5217/691 2435/5267/693 2423/5218/692 +f 2435/5219/693 2436/5270/695 2424/5220/694 +f 2436/5221/695 2437/5272/697 2425/5222/696 +f 2437/5223/697 2438/5266/831 2426/5224/698 +f 2426/5225/698 2438/5269/831 2439/5226/699 +f 2427/5227/700 2439/6148/699 2440/5228/701 +f 2428/5229/702 2440/5264/701 2429/5230/703 +f 2417/5231/704 2429/6149/703 2430/5232/705 +f 2424/5220/694 2448/5238/711 2447/5233/706 +f 2421/5214/688 2445/5239/712 2444/5234/707 +f 2428/5229/702 2452/5240/713 2451/5235/708 +f 2418/5208/683 2442/5241/714 2441/5236/709 +f 2424/5220/694 2425/5222/696 2449/5237/710 +f 2422/5216/690 2446/5242/715 2445/5239/712 +f 2428/5229/702 2417/5231/704 2441/5236/709 +f 2419/5210/685 2443/5243/716 2442/5241/714 +f 2426/5224/698 2450/6150/717 2449/5237/710 +f 2422/5216/690 2423/5218/692 2447/5233/706 +f 2419/5210/685 2420/5212/686 2444/5234/707 +f 2427/5227/700 2451/5235/708 2450/5244/717 +f 2442/5241/714 2443/5243/716 2455/1792/718 +f 2444/5234/707 2456/1795/721 2455/1797/718 +f 2444/5234/707 2445/5239/712 2457/1798/720 +f 2446/5242/715 2458/1801/723 2457/1803/720 +f 2446/5242/715 2447/5233/706 2459/1804/722 +f 2448/5238/711 2460/1807/724 2459/1809/722 +f 2449/5237/710 2461/3054/726 2460/1810/724 +f 2449/5237/710 2450/6150/717 2462/3055/725 +f 2451/5235/708 2463/3056/727 2462/1816/725 +f 2452/5240/713 2464/1819/728 2463/1821/727 +f 2441/5236/709 2453/3058/729 2464/1822/728 +f 2441/5236/709 2442/5241/714 2454/3059/719 +f 2472/1812/730 2473/1811/731 2485/5245/731 +f 2470/3051/732 2482/6151/732 2481/5247/733 +f 2465/1823/734 2478/6152/734 2488/5248/735 +f 2466/1793/736 2467/3048/737 2479/5249/737 +f 2474/1814/291 2486/6153/291 2485/5251/731 +f 2470/1805/732 2471/3052/738 2483/5252/738 +f 2468/3049/293 2480/6154/293 2479/5254/737 +f 2474/1818/291 2475/1817/739 2487/5255/739 +f 2471/1808/738 2472/3053/730 2484/5257/730 +f 2469/3050/733 2481/6155/733 2480/5259/293 +f 2475/1820/739 2476/3057/735 2488/5260/735 +f 2465/1827/734 2466/1826/736 2477/5262/736 +f 2440/5264/735 2500/1834/735 2489/1836/734 +f 2430/5265/736 2490/3071/736 2491/1837/737 +f 2438/5266/291 2437/5223/731 2497/3072/731 +f 2434/5217/732 2494/1843/732 2495/1845/738 +f 2432/5268/293 2431/5211/737 2491/3074/737 +f 2438/5269/291 2498/1849/291 2499/1851/739 +f 2436/5270/730 2435/5219/738 2495/3076/738 +f 2433/5271/733 2432/5213/293 2492/3077/293 +f 2440/5228/735 2439/6148/739 2499/3078/739 +f 2430/5232/736 2429/6149/734 2489/3079/734 +f 2436/5221/730 2496/3080/730 2497/1864/731 +f 2434/5273/732 2433/5215/733 2493/1831/733 +f 2506/5274/732 2518/1884/732 2519/1870/738 +f 2503/5276/737 2515/1890/737 2516/1896/293 +f 2510/5278/291 2522/3081/291 2523/1867/739 +f 2507/5275/738 2519/1870/738 2520/1872/730 +f 2505/5281/733 2504/5277/293 2516/1896/293 +f 2512/5282/735 2511/5279/739 2523/1867/739 +f 2502/5283/736 2501/5285/734 2513/1888/734 +f 2509/5284/731 2508/5280/730 2520/1872/730 +f 2505/5281/733 2517/1873/733 2518/1884/732 +f 2512/5282/735 2524/1876/735 2513/1888/734 +f 2503/5276/737 2502/5283/736 2514/1879/736 +f 2509/5284/731 2521/1883/731 2522/1891/291 +f 2530/3086/732 2542/6156/732 2543/5287/738 +f 2527/3087/737 2539/6157/737 2540/5288/293 +f 2534/1868/291 2546/6158/291 2547/5289/739 +f 2531/3082/738 2543/6159/738 2544/5290/730 +f 2528/1874/293 2540/6160/293 2541/5291/733 +f 2535/1877/739 2547/6161/739 2548/5292/735 +f 2526/1880/734 2538/6162/734 2537/5293/736 +f 2532/3083/730 2544/6163/730 2545/5294/731 +f 2530/1886/732 2529/1885/733 2541/5295/733 +f 2526/1887/734 2536/3084/735 2548/5297/735 +f 2525/3085/736 2537/6164/736 2539/5299/737 +f 2534/1893/291 2533/1892/731 2545/5300/731 +f 2562/5302/740 2563/5356/743 2551/5303/741 +f 2563/5305/743 2564/5359/833 2552/5306/744 +f 2552/5306/744 2564/5362/833 2565/5307/745 +f 2553/5308/746 2565/6165/745 2566/5309/747 +f 2566/5311/747 2567/5358/836 2555/5312/749 +f 2555/5312/749 2567/5361/836 2568/5313/750 +f 2568/5315/750 2569/5365/753 2557/5316/752 +f 2569/5317/753 2570/5357/755 2558/5318/754 +f 2570/5319/755 2571/5360/757 2559/5320/756 +f 2571/5322/757 2572/5363/834 2560/5323/758 +f 2560/5323/758 2572/6166/834 2561/5324/759 +f 2561/5326/759 2562/5364/740 2550/5304/742 +f 2556/5314/751 2580/5331/765 2579/5327/761 +f 2553/5308/746 2577/5332/766 2576/5328/762 +f 2560/5323/758 2584/5333/767 2583/5329/763 +f 2550/5304/742 2574/5335/769 2573/5330/764 +f 2557/5316/752 2581/5336/770 2580/5331/765 +f 2554/5310/748 2578/5337/771 2577/5332/766 +f 2560/5323/758 2549/5325/760 2573/5330/764 +f 2550/5304/742 2551/5303/741 2575/5334/768 +f 2558/5318/754 2582/6167/772 2581/5336/770 +f 2554/5310/748 2555/5312/749 2579/5327/761 +f 2552/5306/744 2576/5328/762 2575/5334/768 +f 2559/5320/756 2583/5329/763 2582/5338/772 +f 2575/5334/768 2587/3097/775 2586/1900/773 +f 2575/5334/768 2576/5328/762 2588/1903/774 +f 2576/5328/762 2577/5332/766 2589/1906/776 +f 2577/5332/766 2578/5337/771 2590/1909/777 +f 2579/5327/761 2591/3101/778 2590/1912/777 +f 2580/5331/765 2592/1915/779 2591/1917/778 +f 2581/5336/770 2593/3103/781 2592/1918/779 +f 2581/5336/770 2582/6167/772 2594/3104/780 +f 2582/5338/772 2583/5329/763 2595/1924/782 +f 2584/5333/767 2596/1927/783 2595/1929/782 +f 2573/5330/764 2585/1930/784 2596/1932/783 +f 2573/5330/764 2574/5335/769 2586/3108/773 +f 2604/1920/785 2605/1919/786 2617/5339/786 +f 2602/3100/787 2614/6168/787 2613/5341/788 +f 2597/3107/789 2610/6169/789 2620/5342/790 +f 2599/1901/791 2611/6170/791 2609/5343/792 +f 2606/1922/291 2618/6171/291 2617/5344/786 +f 2602/1914/787 2603/1913/793 2615/5345/793 +f 2599/1904/791 2600/3098/293 2612/5347/293 +f 2606/1925/291 2607/3105/794 2619/5349/794 +f 2604/3102/785 2616/6172/785 2615/5351/793 +f 2601/3099/788 2613/6173/788 2612/5352/293 +f 2608/3106/790 2620/6174/790 2619/5353/794 +f 2597/1935/789 2598/1934/792 2609/5354/792 +f 2561/5324/789 2572/6166/790 2632/3119/790 +f 2562/5302/792 2622/3120/792 2623/1945/791 +f 2569/5317/786 2629/3121/786 2630/1948/291 +f 2567/5358/793 2566/5311/787 2626/3122/787 +f 2564/5359/293 2563/5305/791 2623/1954/791 +f 2571/5360/794 2570/5319/291 2630/1957/291 +f 2567/5361/793 2627/1960/793 2628/1962/785 +f 2564/5362/293 2624/1963/293 2625/1965/788 +f 2572/5363/790 2571/5322/794 2631/3127/794 +f 2561/5326/789 2621/1969/789 2622/1971/792 +f 2568/5315/785 2628/1972/785 2629/1974/786 +f 2566/5309/787 2565/6165/788 2625/3118/788 +f 2638/5366/787 2650/1992/787 2651/1978/793 +f 2635/5368/791 2647/1998/791 2648/1981/293 +f 2642/5370/291 2654/1975/291 2655/1977/794 +f 2639/5367/793 2651/1978/793 2652/1980/785 +f 2636/5369/293 2648/1981/293 2649/1983/788 +f 2644/5374/790 2643/5371/794 2655/1977/794 +f 2633/5375/789 2645/1996/789 2646/1987/792 +f 2640/5372/785 2652/1980/785 2653/1991/786 +f 2638/5366/787 2637/5373/788 2649/1983/788 +f 2633/5375/789 2644/5374/790 2656/1984/790 +f 2634/5376/792 2646/1987/792 2647/1998/791 +f 2642/5378/291 2641/5377/786 2653/1991/786 +f 2662/2002/787 2674/6175/787 2675/5379/793 +f 2660/2004/293 2659/3136/791 2671/5380/791 +f 2666/3130/291 2678/6176/291 2679/5382/794 +f 2663/3131/793 2675/6177/793 2676/5383/785 +f 2660/3132/293 2672/6178/293 2673/5384/788 +f 2667/1985/794 2679/6179/794 2680/5385/790 +f 2657/1989/792 2658/1988/789 2670/5386/789 +f 2664/3133/785 2676/6180/785 2677/5388/786 +f 2662/1994/787 2661/1993/788 2673/5389/788 +f 2658/1995/789 2668/3134/790 2680/5391/790 +f 2657/3135/792 2669/6181/792 2671/5393/791 +f 2666/2001/291 2665/2000/786 2677/5394/786 +f 2031/1543/280 2020/6182/280 2019/5396/1 +f 2057/5397/279 2692/2011/279 2681/2013/1 +f 2066/5398/281 2067/4939/280 2682/2014/280 +f 2060/4932/285 2689/3149/285 2690/2017/6 +f 2062/5400/2 2063/4935/284 2686/2020/284 +f 2066/4938/281 2683/3151/281 2684/2023/3 +f 2059/4931/6 2690/2026/6 2691/2028/278 +f 2062/5403/2 2687/3153/2 2688/2029/282 +f 2065/4937/3 2684/2032/3 2685/2034/283 +f 2058/5405/278 2691/3155/278 2692/2035/279 +f 2068/4928/1 2681/2038/1 2682/2040/280 +f 2061/4933/282 2688/2041/282 2689/2043/285 +f 2064/4936/283 2685/3146/283 2686/2008/284 +f 2698/5409/284 2710/2061/284 2711/2071/2 +f 2695/5411/281 2707/2066/281 2708/2050/3 +f 2702/5413/6 2714/2044/6 2715/2046/278 +f 2699/5410/2 2711/2071/2 2712/2047/282 +f 2696/5412/3 2708/2050/3 2709/2052/283 +f 2703/5414/278 2715/2046/278 2716/2053/279 +f 2693/5418/1 2705/2056/1 2706/2058/280 +f 2700/5415/282 2712/2047/282 2713/2060/285 +f 2697/5416/283 2709/2052/283 2710/2061/284 +f 2704/5417/279 2716/2053/279 2705/2056/1 +f 2694/5419/280 2706/2058/280 2707/2066/281 +f 2701/5420/285 2713/2060/285 2714/2067/6 +f 2722/3164/284 2734/6183/284 2735/5422/2 +f 2719/2072/281 2731/6184/281 2732/5423/3 +f 2726/3158/6 2738/6185/6 2739/5424/278 +f 2723/2048/2 2735/6186/2 2736/5425/282 +f 2720/3159/3 2732/6187/3 2733/5426/283 +f 2727/2054/278 2739/6188/278 2740/5427/279 +f 2718/3160/1 2730/6189/1 2729/5428/280 +f 2724/3161/282 2736/6190/282 2737/5429/285 +f 2721/2062/283 2733/6191/283 2734/5430/284 +f 2718/2064/1 2728/3162/279 2740/5431/279 +f 2717/3163/280 2729/6192/280 2731/5433/281 +f 2725/2068/285 2737/6193/285 2738/5434/6 +f 2752/5435/292 2764/2080/292 2753/2082/5 +f 2742/5437/290 2754/2083/290 2755/2085/293 +f 2749/5439/291 2761/2105/291 2762/2086/6 +f 2746/5441/288 2758/2079/288 2759/2089/4 +f 2743/5438/293 2755/2085/293 2756/2092/3 +f 2750/5444/6 2762/2095/6 2763/2097/289 +f 2747/5442/4 2759/2089/4 2760/2099/286 +f 2744/5443/3 2756/2092/3 2757/2077/287 +f 2751/5445/289 2763/2097/289 2764/2080/292 +f 2742/5437/290 2741/5436/5 2753/2082/5 +f 2749/5439/291 2748/5446/286 2760/2099/286 +f 2746/5441/288 2745/5447/287 2757/2077/287 +f 2770/5448/288 2782/2127/288 2783/2111/4 +f 2767/5450/293 2779/2131/293 2780/2114/3 +f 2774/5452/6 2786/2108/6 2787/2110/289 +f 2771/5449/4 2783/2111/4 2784/2113/286 +f 2768/5451/3 2780/2114/3 2781/2116/287 +f 2775/5453/289 2787/2110/289 2788/2117/292 +f 2765/5457/5 2777/2129/5 2778/2120/290 +f 2773/5459/291 2772/5454/286 2784/2113/286 +f 2769/5455/287 2781/2116/287 2782/2127/288 +f 2765/5457/5 2776/5456/292 2788/2117/292 +f 2766/5458/290 2778/2120/290 2779/2131/293 +f 2773/5459/291 2785/2123/291 2786/2132/6 +f 2794/2135/288 2806/6194/288 2807/5461/4 +f 2791/2137/293 2803/6195/293 2804/5462/3 +f 2798/3180/6 2810/6196/6 2811/5463/289 +f 2795/3181/4 2807/6197/4 2808/5464/286 +f 2792/3182/3 2804/6198/3 2805/5465/287 +f 2799/2118/289 2811/6199/289 2812/5466/292 +f 2790/2121/5 2802/6200/5 2801/5467/290 +f 2796/2124/286 2808/6201/286 2809/5468/291 +f 2793/3183/287 2805/6202/287 2806/5469/288 +f 2800/3184/292 2812/6203/292 2802/5470/5 +f 2789/3185/290 2801/6204/290 2803/5471/293 +f 2797/2133/291 2809/6205/291 2810/5472/6 +f 2814/5473/795 2822/5485/807 2823/5474/796 +f 2836/5476/798 2820/5486/808 2817/5477/799 +f 2815/5475/797 2823/5474/796 2824/5479/801 +f 2835/5481/803 2834/5500/811 2818/5482/804 +f 2813/5484/806 2821/5489/809 2822/5485/807 +f 2835/5481/803 2819/5483/805 2820/5486/808 +f 2813/5487/806 2816/5480/802 2824/5479/801 +f 2821/5489/809 2825/5494/512 2826/5490/810 +f 2823/5474/796 2822/5485/807 2826/5490/810 +f 2824/5479/801 2823/5474/796 2827/5491/514 +f 2824/5479/801 2828/5492/513 2825/5493/512 +f 2825/5494/512 2829/5499/507 2830/5495/510 +f 2827/5491/514 2826/5490/810 2830/5495/510 +f 2828/5492/513 2827/5491/514 2831/5496/509 +f 2828/5492/513 2832/5497/508 2829/5498/507 +f 2829/5499/507 2833/5501/800 2834/5500/811 +f 2831/5496/509 2830/5495/510 2834/5500/811 +f 2831/5496/509 2835/5481/803 2836/5476/798 +f 2832/5497/508 2836/5476/798 2833/5478/800 +f 2833/5501/800 2817/6206/799 2818/5482/804 +f 2857/5502/812 2841/6207/819 2842/5503/813 +f 2859/5505/815 2858/5504/814 2842/5503/813 +f 2859/5505/815 2843/5506/816 2844/5507/817 +f 2860/5508/818 2844/5507/817 2841/5509/819 +f 2838/5511/820 2837/6208/827 2845/5512/821 +f 2838/5511/820 2846/5513/822 2847/5514/823 +f 2839/5515/824 2847/5514/823 2848/5516/825 +f 2837/5518/827 2840/5517/826 2848/5516/825 +f 2845/5512/821 2849/6209/486 2850/5520/489 +f 2846/5513/822 2850/5520/489 2851/5521/488 +f 2847/5514/823 2851/5521/488 2852/5522/487 +f 2845/5519/821 2848/5516/825 2852/5522/487 +f 2850/5520/489 2849/6209/486 2853/5524/828 +f 2850/5520/489 2854/5525/485 2855/5526/484 +f 2852/5522/487 2851/5521/488 2855/5526/484 +f 2849/5523/486 2852/5522/487 2856/5527/483 +f 2854/5525/485 2853/5524/828 2857/5502/812 +f 2854/5525/485 2858/5504/814 2859/5505/815 +f 2855/5526/484 2859/5505/815 2860/5508/818 +f 2853/5528/828 2856/5527/483 2860/5508/818 +f 2862/5529/523 2861/6210/524 2881/5530/522 +f 2883/5532/527 2863/6211/528 2862/5529/523 +f 2864/5533/526 2863/6211/528 2883/5532/527 +f 2861/5535/524 2864/5533/526 2884/5534/525 +f 2870/5537/516 2869/5546/517 2865/5538/515 +f 2871/5540/520 2870/5537/516 2866/5539/521 +f 2872/5542/518 2871/5540/520 2867/5541/519 +f 2865/5544/515 2869/5549/517 2872/5542/518 +f 2870/5537/516 2874/5551/536 2873/5545/533 +f 2875/5547/535 2874/5551/536 2870/5537/516 +f 2876/5548/537 2875/5547/535 2871/5540/520 +f 2869/5549/517 2873/5554/533 2876/5548/537 +f 2878/5550/529 2877/5555/534 2873/5545/533 +f 2875/5547/535 2879/5556/532 2878/5550/529 +f 2880/5552/531 2879/5556/532 2875/5547/535 +f 2877/5553/534 2880/5552/531 2876/5548/537 +f 2882/5531/530 2881/5530/522 2877/5555/534 +f 2879/5556/532 2883/5532/527 2882/5531/530 +f 2884/5534/525 2883/5532/527 2879/5556/532 +f 2881/5536/522 2884/5534/525 2880/5552/531 +f 2898/5557/723 2899/5613/720 2887/5558/712 +f 2899/5560/720 2900/5616/721 2888/5561/707 +f 2888/5561/707 2900/6212/721 2901/5562/830 +f 2889/5563/716 2901/5621/830 2902/5564/719 +f 2902/5566/719 2903/5615/729 2891/5567/709 +f 2903/5568/729 2904/5617/728 2892/5569/713 +f 2892/5569/713 2904/5620/728 2905/5570/727 +f 2905/5572/727 2906/5614/725 2894/5573/717 +f 2894/5574/717 2906/6213/725 2907/5575/726 +f 2907/5577/726 2908/5618/724 2896/5578/711 +f 2896/5578/711 2908/5612/724 2897/5579/722 +f 2885/5580/706 2897/5619/722 2898/5581/723 +f 2892/5569/713 2916/5589/702 2915/5582/704 +f 2888/5561/707 2889/5563/716 2913/5583/685 +f 2895/5576/710 2896/5578/711 2920/5585/694 +f 2885/5580/706 2886/5559/715 2910/5587/690 +f 2893/5571/708 2917/5592/700 2916/5589/702 +f 2890/5565/714 2914/5593/683 2913/5583/685 +f 2896/5578/711 2885/5580/706 2909/5588/692 +f 2886/5559/715 2887/5558/712 2911/5590/688 +f 2893/5571/708 2894/5573/717 2918/5591/698 +f 2890/5565/714 2891/5567/709 2915/5582/704 +f 2888/5561/707 2912/5584/686 2911/5590/688 +f 2895/5576/710 2919/5586/696 2918/5594/698 +f 2911/5590/688 2923/3195/689 2922/2142/691 +f 2911/5590/688 2912/5584/686 2924/2145/687 +f 2912/5584/686 2913/5583/685 2925/2148/684 +f 2914/5593/683 2926/2151/705 2925/2153/684 +f 2914/5593/683 2915/5582/704 2927/3199/703 +f 2916/5589/702 2928/2157/701 2927/2159/703 +f 2916/5589/702 2917/5592/700 2929/3201/699 +f 2918/5591/698 2930/3202/831 2929/2163/699 +f 2919/5586/696 2931/2166/697 2930/2168/831 +f 2920/5585/694 2932/2169/695 2931/2171/697 +f 2909/5588/692 2921/3205/693 2932/2172/695 +f 2909/5588/692 2910/5587/690 2922/3206/691 +f 2940/2162/735 2941/2161/739 2953/5595/739 +f 2938/3198/736 2950/6214/736 2949/5597/737 +f 2933/2173/738 2946/6215/738 2956/5598/730 +f 2935/2143/733 2947/6216/733 2945/5599/732 +f 2942/2164/291 2954/6217/291 2953/5600/739 +f 2938/2156/736 2939/2155/734 2951/5601/734 +f 2935/2146/733 2936/3196/293 2948/5603/293 +f 2943/3203/731 2955/6218/731 2954/5605/291 +f 2939/2158/734 2940/3200/735 2952/5606/735 +f 2937/3197/737 2949/6219/737 2948/5608/293 +f 2943/2170/731 2944/3204/730 2956/5609/730 +f 2934/2176/732 2945/6220/732 2946/5611/738 +f 2908/5612/730 2968/2184/730 2957/2186/738 +f 2899/5613/733 2898/5557/732 2958/2187/732 +f 2905/5572/739 2965/3219/739 2966/2190/291 +f 2903/5615/734 2902/5566/736 2962/3220/736 +f 2900/5616/293 2899/5560/733 2959/3221/733 +f 2907/5575/731 2906/6213/291 2966/2199/291 +f 2904/5617/735 2903/5568/734 2963/3223/734 +f 2901/5562/737 2900/6212/293 2960/2205/293 +f 2908/5618/730 2907/5577/731 2967/3225/731 +f 2897/5619/738 2957/2211/738 2958/2213/732 +f 2904/5620/735 2964/3227/735 2965/2214/739 +f 2901/5621/737 2961/3216/737 2962/2181/736 +f 2974/5622/736 2986/2234/736 2987/2242/734 +f 2971/5624/733 2983/2237/733 2984/2244/293 +f 2979/5626/731 2978/6221/291 2990/3228/291 +f 2976/5627/735 2975/5623/734 2987/2242/734 +f 2973/5628/737 2972/5625/293 2984/2244/293 +f 2980/5629/730 2979/5626/731 2991/2217/731 +f 2969/5630/738 2981/2228/738 2982/2230/732 +f 2976/5627/735 2988/2220/735 2989/2232/739 +f 2974/5622/736 2973/5628/737 2985/2223/737 +f 2980/5629/730 2992/2227/730 2981/2228/738 +f 2971/5624/733 2970/5631/732 2982/2230/732 +f 2977/5632/739 2989/2232/739 2990/2238/291 +f 2998/3235/736 3010/6222/736 3011/5634/734 +f 2995/3236/733 3007/6223/733 3008/5635/293 +f 3003/2219/731 3002/2218/291 3014/5636/291 +f 2999/2221/734 3011/6224/734 3012/5638/735 +f 2996/2224/293 3008/6225/293 3009/5639/737 +f 3003/3229/731 3015/6226/731 3016/5640/730 +f 2993/2229/732 2994/3230/738 3006/5641/738 +f 3000/3231/735 3012/6227/735 3013/5643/739 +f 2998/2233/736 2997/3232/737 3009/5644/737 +f 2994/2235/738 3004/3233/730 3016/5646/730 +f 2993/3234/732 3005/6228/732 3007/5648/733 +f 3001/2239/739 3013/6229/739 3014/5649/291 +f 3018/5650/771 3030/5707/777 3031/5651/832 +f 3019/5652/766 3031/6230/832 3032/5653/774 +f 3020/5654/762 3032/5712/774 3033/5655/775 +f 3021/5656/768 3033/5716/775 3034/5657/773 +f 3034/5659/773 3035/5709/784 3023/5660/764 +f 3035/5661/784 3036/5711/783 3024/5662/767 +f 3036/5663/783 3037/5715/782 3025/5664/763 +f 3037/5665/782 3038/5708/780 3026/5666/772 +f 3038/5667/780 3039/5710/781 3027/5668/770 +f 3039/5670/781 3040/5713/779 3028/5671/765 +f 3028/5671/765 3040/5706/779 3029/5672/778 +f 3029/5674/778 3030/5714/777 3018/5650/771 +f 3024/5662/767 3048/5682/758 3047/5675/760 +f 3020/5654/762 3021/5656/768 3045/5676/741 +f 3027/5668/770 3028/5671/765 3052/5678/751 +f 3018/5650/771 3042/5684/748 3041/5680/749 +f 3024/5662/767 3025/5664/763 3049/5681/756 +f 3022/5658/769 3046/5686/742 3045/5676/741 +f 3028/5671/765 3017/5673/761 3041/5680/749 +f 3018/5650/771 3019/5652/766 3043/5683/746 +f 3025/5664/763 3026/5666/772 3050/5685/754 +f 3022/5658/769 3023/5660/764 3047/5675/760 +f 3020/5654/762 3044/5677/744 3043/5683/746 +f 3027/5668/770 3051/5679/752 3050/5687/754 +f 3042/5684/748 3043/5683/746 3055/2248/745 +f 3043/5683/746 3044/5677/744 3056/2251/833 +f 3044/5677/744 3045/5676/741 3057/2254/743 +f 3046/5686/742 3058/2257/740 3057/2259/743 +f 3047/5675/760 3059/3250/759 3058/2260/740 +f 3047/5675/760 3048/5682/758 3060/2263/834 +f 3048/5682/758 3049/5681/756 3061/3252/835 +f 3050/5685/754 3062/3253/755 3061/2269/835 +f 3051/5679/752 3063/3254/753 3062/2272/755 +f 3052/5678/751 3064/2275/750 3063/2277/753 +f 3052/5678/751 3041/5680/749 3053/3256/836 +f 3041/5680/749 3042/5684/748 3054/2281/747 +f 3072/2268/790 3073/2267/794 3085/5688/794 +f 3070/3249/792 3082/6231/792 3081/5690/791 +f 3065/2279/793 3078/6232/793 3088/5691/785 +f 3067/3246/788 3079/6233/788 3077/5692/787 +f 3073/2271/794 3074/2270/291 3086/5693/291 +f 3070/2262/792 3071/2261/789 3083/5695/789 +f 3068/3247/293 3080/6234/293 3079/5697/788 +f 3074/2274/291 3075/2273/786 3087/5698/786 +f 3072/3251/790 3084/6235/790 3083/5700/789 +f 3068/2255/293 3069/3248/791 3081/5701/791 +f 3076/3255/785 3088/6236/785 3087/5703/786 +f 3065/2282/793 3066/3257/787 3077/5704/787 +f 3040/5706/785 3100/3268/785 3089/2290/793 +f 3030/5707/787 3090/2293/787 3091/2295/788 +f 3038/5708/291 3037/5665/794 3097/2296/794 +f 3034/5659/792 3094/3271/792 3095/2299/789 +f 3032/5653/293 3031/6230/788 3091/3272/788 +f 3038/5667/291 3098/2305/291 3099/2307/786 +f 3036/5711/790 3035/5661/789 3095/2308/789 +f 3032/5712/293 3092/2311/293 3093/2313/791 +f 3039/5670/786 3099/3276/786 3100/2314/785 +f 3029/5674/793 3089/2317/793 3090/2319/787 +f 3036/5663/790 3096/2320/790 3097/2322/794 +f 3033/5716/791 3093/2287/791 3094/2289/792 +f 3107/5717/789 3106/5727/792 3118/2340/792 +f 3104/5718/293 3103/5728/788 3115/2343/788 +f 3110/5719/291 3122/3279/291 3123/2323/786 +f 3107/5717/789 3119/2326/789 3120/2328/790 +f 3104/5718/293 3116/2329/293 3117/2331/791 +f 3111/5720/786 3123/2323/786 3124/2333/785 +f 3101/5724/793 3113/2334/793 3114/2336/787 +f 3109/5726/794 3108/5721/790 3120/2328/790 +f 3105/5722/791 3117/2331/791 3118/2340/792 +f 3112/5723/785 3124/2333/785 3113/2334/793 +f 3102/5725/787 3114/2336/787 3115/2343/788 +f 3110/5729/291 3109/5726/794 3121/2338/794 +f 3131/2348/789 3130/2347/792 3142/5730/792 +f 3127/2349/788 3139/6237/788 3140/5732/293 +f 3134/2324/291 3146/6238/291 3147/5733/786 +f 3132/2327/790 3131/3280/789 3143/5734/789 +f 3128/3281/293 3140/6239/293 3141/5736/791 +f 3135/3282/786 3147/6240/786 3148/5737/785 +f 3125/2335/787 3126/3283/793 3138/5738/793 +f 3132/3284/790 3144/6241/790 3145/5740/794 +f 3130/2339/792 3129/3285/791 3141/5741/791 +f 3126/2341/793 3136/3286/785 3148/5743/785 +f 3125/3287/787 3137/6242/787 3139/5745/788 +f 3133/2345/794 3145/6243/794 3146/5746/291 +f 3150/5747/599 3162/6244/611 3163/5748/609 +f 3163/5750/609 3164/5803/608 3152/5751/596 +f 3152/5751/596 3164/6245/608 3165/5752/606 +f 3165/5754/606 3166/5808/607 3154/5755/603 +f 3166/5756/607 3167/5802/617 3155/5757/598 +f 3167/5758/617 3168/5805/616 3156/5759/601 +f 3168/5760/616 3169/5807/615 3157/5761/597 +f 3169/5762/615 3170/5801/614 3158/5763/605 +f 3158/5764/605 3170/5804/614 3171/5765/612 +f 3159/5766/604 3171/6246/612 3172/5767/613 +f 3160/5768/594 3172/6247/613 3161/5769/610 +f 3149/5770/595 3161/5806/610 3162/5771/611 +f 3156/5759/601 3180/5777/590 3179/5772/592 +f 3153/5753/602 3177/5778/575 3176/5773/576 +f 3160/5768/594 3184/5779/584 3183/5774/586 +f 3150/5747/599 3174/5780/580 3173/5775/582 +f 3156/5759/601 3157/5761/597 3181/5776/589 +f 3154/5755/603 3178/5781/573 3177/5778/575 +f 3160/5768/594 3149/5770/595 3173/5775/582 +f 3151/5749/600 3175/5782/578 3174/5780/580 +f 3158/5763/605 3182/6248/587 3181/5776/589 +f 3154/5755/603 3155/5757/598 3179/5772/592 +f 3151/5749/600 3152/5751/596 3176/5773/576 +f 3158/5764/605 3159/5766/604 3183/5774/586 +f 3175/5782/578 3187/2354/579 3186/2356/581 +f 3175/5782/578 3176/5773/576 3188/2357/577 +f 3176/5773/576 3177/5778/575 3189/2360/574 +f 3178/5781/573 3190/2363/593 3189/2365/574 +f 3178/5781/573 3179/5772/592 3191/3301/591 +f 3180/5777/590 3192/2369/837 3191/2371/591 +f 3181/5776/589 3193/2372/588 3192/2374/837 +f 3181/5776/589 3182/6248/587 3194/3304/838 +f 3183/5774/586 3195/3305/585 3194/2378/838 +f 3184/5779/584 3196/2381/839 3195/2383/585 +f 3173/5775/582 3185/2384/583 3196/2386/839 +f 3173/5775/582 3174/5780/580 3186/3308/581 +f 3204/2373/623 3205/3303/627 3217/5784/627 +f 3202/3300/624 3214/6249/624 3213/5786/625 +f 3197/3307/626 3210/6250/626 3220/5787/618 +f 3199/3297/621 3211/6251/621 3209/5788/620 +f 3206/2376/289 3218/6252/289 3217/5789/627 +f 3203/2367/622 3215/6253/622 3214/5790/624 +f 3199/2358/621 3200/3298/287 3212/5791/287 +f 3207/2379/619 3219/6254/619 3218/5793/289 +f 3203/2370/622 3204/3302/623 3216/5794/623 +f 3200/2361/287 3201/3299/625 3213/5796/625 +f 3208/3306/618 3220/6255/618 3219/5798/619 +f 3197/2389/626 3198/2388/620 3209/5799/620 +f 3161/5769/626 3172/6247/618 3232/2396/618 +f 3163/5748/621 3162/6244/620 3222/3320/620 +f 3170/5801/289 3169/5762/627 3229/3321/627 +f 3166/5756/624 3226/2405/624 3227/2407/622 +f 3163/5750/621 3223/2408/621 3224/2410/287 +f 3170/5804/289 3230/2411/289 3231/2413/619 +f 3167/5758/622 3227/3325/622 3228/2414/623 +f 3165/5752/625 3164/6245/287 3224/2417/287 +f 3172/5767/618 3171/6246/619 3231/2420/619 +f 3161/5806/626 3221/2423/626 3222/2425/620 +f 3168/5760/623 3228/3329/623 3229/2426/627 +f 3165/5754/625 3225/2393/625 3226/2395/624 +f 3238/5809/624 3250/2446/624 3251/2432/622 +f 3235/5811/621 3247/2451/621 3248/2457/287 +f 3243/5813/619 3242/6256/289 3254/3330/289 +f 3239/5810/622 3251/2432/622 3252/2434/623 +f 3237/5815/625 3236/5812/287 3248/2457/287 +f 3243/5813/619 3255/2429/619 3256/2439/618 +f 3233/5817/626 3245/2440/626 3246/2442/620 +f 3240/5814/623 3252/2434/623 3253/2443/627 +f 3238/5809/624 3237/5815/625 3249/2435/625 +f 3233/5817/626 3244/5816/618 3256/2439/618 +f 3235/5811/621 3234/5818/620 3246/2442/620 +f 3241/5819/627 3253/2443/627 3254/2452/289 +f 3262/3336/624 3274/6257/624 3275/5821/622 +f 3259/3337/621 3271/6258/621 3272/5822/287 +f 3266/2430/289 3278/6259/289 3279/5823/619 +f 3263/3331/622 3275/6260/622 3276/5824/623 +f 3260/2436/287 3272/6261/287 3273/5825/625 +f 3267/3332/619 3279/6262/619 3280/5826/618 +f 3258/3333/626 3270/6263/626 3269/5827/620 +f 3264/2444/623 3276/6264/623 3277/5828/627 +f 3262/2448/624 3261/2447/625 3273/5829/625 +f 3258/2449/626 3268/3334/618 3280/5831/618 +f 3257/3335/620 3269/6265/620 3271/5833/621 +f 3265/2453/627 3277/6266/627 3278/5834/289 +f 3282/5835/659 3294/5893/666 3295/5836/663 +f 3283/5837/650 3295/6267/663 3296/5838/664 +f 3284/5839/651 3296/5896/664 3297/5840/661 +f 3297/5842/661 3298/5899/662 3286/5843/657 +f 3286/5843/657 3298/6268/662 3299/5844/672 +f 3287/5845/653 3299/6269/672 3300/5846/671 +f 3288/5847/655 3300/5898/671 3301/5848/670 +f 3301/5850/670 3302/5894/669 3290/5851/660 +f 3302/5852/669 3303/5895/840 3291/5853/658 +f 3303/5855/840 3304/5897/667 3292/5856/654 +f 3292/5856/654 3304/5892/667 3293/5857/665 +f 3281/5858/649 3293/6270/665 3294/5859/666 +f 3288/5847/655 3312/5866/646 3311/5860/648 +f 3284/5839/651 3285/5841/656 3309/5861/629 +f 3292/5856/654 3316/5867/639 3315/5863/640 +f 3282/5835/659 3306/5868/636 3305/5864/637 +f 3288/5847/655 3289/5849/652 3313/5865/644 +f 3286/5843/657 3310/5870/630 3309/5861/629 +f 3281/5858/649 3305/5864/637 3316/5867/639 +f 3283/5837/650 3307/5871/634 3306/5868/636 +f 3289/5849/652 3290/5851/660 3314/5869/642 +f 3286/5843/657 3287/5845/653 3311/5860/648 +f 3283/5837/650 3284/5839/651 3308/5862/632 +f 3291/5853/658 3315/5863/640 3314/5872/642 +f 3307/5871/634 3319/2461/633 3318/2463/635 +f 3307/5871/634 3308/5862/632 3320/2464/841 +f 3308/5862/632 3309/5861/629 3321/2467/842 +f 3310/5870/630 3322/2470/628 3321/2472/842 +f 3311/5860/648 3323/3351/647 3322/2473/628 +f 3311/5860/648 3312/5866/646 3324/3352/843 +f 3312/5866/646 3313/5865/644 3325/3353/645 +f 3314/5869/642 3326/3354/643 3325/2482/645 +f 3315/5863/640 3327/2485/641 3326/2487/643 +f 3316/5867/639 3328/2488/638 3327/2490/641 +f 3305/5864/637 3317/2491/844 3328/2493/638 +f 3305/5864/637 3306/5868/636 3318/3358/635 +f 3336/2481/678 3337/2480/682 3349/5873/682 +f 3334/3350/680 3346/6271/680 3345/5875/679 +f 3329/3357/681 3342/6272/681 3352/5876/673 +f 3331/3347/676 3343/6273/676 3341/5877/675 +f 3338/2483/289 3350/6274/289 3349/5878/682 +f 3334/2475/680 3335/2474/677 3347/5879/677 +f 3331/2465/676 3332/3348/287 3344/5881/287 +f 3338/2486/289 3339/3355/674 3351/5883/674 +f 3335/2478/677 3336/2477/678 3348/5885/678 +f 3332/2468/287 3333/3349/679 3345/5887/679 +f 3340/3356/673 3352/6275/673 3351/5889/674 +f 3329/2496/681 3330/2495/675 3341/5890/675 +f 3304/5892/673 3364/3369/673 3353/2503/681 +f 3294/5893/675 3354/3370/675 3355/2506/676 +f 3301/5850/682 3361/3371/682 3362/2509/289 +f 3299/5844/677 3298/6268/680 3358/3372/680 +f 3296/5838/287 3295/6267/676 3355/3373/676 +f 3302/5852/289 3362/2518/289 3363/2520/674 +f 3300/5846/678 3299/6269/677 3359/3375/677 +f 3296/5896/287 3356/2524/287 3357/2526/679 +f 3303/5855/674 3363/3377/674 3364/2527/673 +f 3294/5859/675 3293/6270/681 3353/2530/681 +f 3300/5898/678 3360/2533/678 3361/2535/682 +f 3298/5899/680 3297/5842/679 3357/3368/679 +f 3370/5900/680 3382/2553/680 3383/2539/677 +f 3367/5902/676 3379/2560/676 3380/2542/287 +f 3374/5904/289 3386/2536/289 3387/2538/674 +f 3371/5901/677 3383/2539/677 3384/2541/678 +f 3368/5903/287 3380/2542/287 3381/2544/679 +f 3375/5905/674 3387/2538/674 3388/2545/673 +f 3365/5909/681 3377/2556/681 3378/2548/675 +f 3373/5911/682 3372/5906/678 3384/2541/678 +f 3370/5900/680 3369/5907/679 3381/2544/679 +f 3365/5909/681 3376/5908/673 3388/2545/673 +f 3366/5910/675 3378/2548/675 3379/2560/676 +f 3374/5912/289 3373/5911/682 3385/2552/682 +f 3394/2564/680 3406/6276/680 3407/5913/677 +f 3392/2567/287 3391/2566/676 3403/5914/676 +f 3398/3380/289 3410/6277/289 3411/5916/674 +f 3395/3381/677 3407/6278/677 3408/5917/678 +f 3392/3382/287 3404/6279/287 3405/5918/679 +f 3399/2546/674 3411/6280/674 3412/5919/673 +f 3389/2550/675 3390/2549/681 3402/5920/681 +f 3396/3383/678 3408/6281/678 3409/5922/682 +f 3394/2555/680 3393/2554/679 3405/5923/679 +f 3390/2558/681 3400/2557/673 3412/5925/673 +f 3389/3384/675 3401/6282/675 3403/5927/676 +f 3397/2562/682 3409/6283/682 3410/5928/289 diff --git a/src/main/resources/assets/hbm/models/selenium_engine_body.obj b/src/main/resources/assets/hbm/models/selenium_engine_body.obj deleted file mode 100644 index b679392b9..000000000 --- a/src/main/resources/assets/hbm/models/selenium_engine_body.obj +++ /dev/null @@ -1,586 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'selenium_engine_body.blend' -# www.blender.org -o Cylinder_Cylinder.001 -v 0.000000 1.350000 -0.175000 -v 0.000000 1.350000 0.175000 -v 0.175000 1.303109 -0.175000 -v 0.175000 1.303109 0.175000 -v 0.303109 1.175000 -0.175000 -v 0.303109 1.175000 0.175000 -v 0.350000 1.000000 -0.175000 -v 0.350000 1.000000 0.175000 -v 0.303109 0.825000 -0.175000 -v 0.303109 0.825000 0.175000 -v 0.175000 0.696891 -0.175000 -v 0.175000 0.696891 0.175000 -v 0.000000 0.650000 -0.175000 -v 0.000000 0.650000 0.175000 -v -0.175000 0.696891 -0.175000 -v -0.175000 0.696891 0.175000 -v -0.303109 0.825000 -0.175000 -v -0.303109 0.825000 0.175000 -v -0.350000 1.000000 -0.175000 -v -0.350000 1.000000 0.175000 -v -0.303109 1.175000 -0.175000 -v -0.303109 1.175000 0.175000 -v -0.175000 1.303109 -0.175000 -v -0.175000 1.303109 0.175000 -v -0.000000 1.210000 -0.175000 -v 0.105000 1.181865 -0.175000 -v 0.105000 1.181865 0.175000 -v -0.000000 1.210000 0.175000 -v 0.181865 1.105000 -0.175000 -v 0.181865 1.105000 0.175000 -v 0.210000 1.000000 -0.175000 -v 0.210000 1.000000 0.175000 -v 0.181865 0.895000 -0.175000 -v 0.181865 0.895000 0.175000 -v 0.105000 0.818135 -0.175000 -v 0.105000 0.818135 0.175000 -v 0.000000 0.790000 -0.175000 -v 0.000000 0.790000 0.175000 -v -0.105000 0.818135 -0.175000 -v -0.105000 0.818135 0.175000 -v -0.181865 0.895000 -0.175000 -v -0.181865 0.895000 0.175000 -v -0.210000 1.000000 -0.175000 -v -0.210000 1.000000 0.175000 -v -0.181865 1.105000 -0.175000 -v -0.181865 1.105000 0.175000 -v -0.105000 1.181865 -0.175000 -v -0.105000 1.181865 0.175000 -v 0.105000 1.181865 0.225000 -v -0.000000 1.210000 0.225000 -v -0.105000 1.181865 0.225000 -v -0.181865 1.105000 0.225000 -v -0.210000 1.000000 0.225000 -v -0.181865 0.895000 0.225000 -v -0.105000 0.818135 0.225000 -v 0.000000 0.790000 0.225000 -v 0.105000 0.818135 0.225000 -v 0.181865 0.895000 0.225000 -v 0.210000 1.000000 0.225000 -v 0.181865 1.105000 0.225000 -v -0.000000 1.210000 -0.225000 -v 0.105000 1.181865 -0.225000 -v 0.181865 1.105000 -0.225000 -v 0.210000 1.000000 -0.225000 -v 0.181865 0.895000 -0.225000 -v 0.105000 0.818135 -0.225000 -v 0.000000 0.790000 -0.225000 -v -0.105000 0.818135 -0.225000 -v -0.181865 0.895000 -0.225000 -v -0.210000 1.000000 -0.225000 -v -0.181865 1.105000 -0.225000 -v -0.105000 1.181865 -0.225000 -v -0.375000 0.000000 0.237500 -v -0.250000 0.000000 0.237500 -v 0.250000 0.000000 0.237500 -v 0.375000 0.000000 0.237500 -v -0.375000 0.000000 0.175000 -v -0.250000 0.000000 0.175000 -v 0.250000 0.000000 0.175000 -v 0.375000 0.000000 0.175000 -v -0.375000 0.000000 -0.175000 -v -0.250000 0.000000 -0.175000 -v 0.250000 0.000000 -0.175000 -v 0.375000 0.000000 -0.175000 -v -0.375000 0.000000 -0.237500 -v -0.250000 0.000000 -0.237500 -v 0.250000 0.000000 -0.237500 -v 0.375000 0.000000 -0.237500 -v 0.335000 1.000000 -0.237500 -v 0.210000 1.000000 -0.237500 -v -0.210000 1.000000 -0.237500 -v -0.335000 1.000000 -0.237500 -v 0.210000 1.040000 -0.175000 -v 0.335000 1.040000 -0.175000 -v -0.335000 1.030000 -0.175000 -v -0.210000 1.030000 -0.175000 -v 0.335000 1.030000 0.175000 -v 0.210000 1.030000 0.175000 -v -0.210000 1.030000 0.175000 -v -0.335000 1.030000 0.175000 -v 0.210000 1.000000 0.237500 -v 0.335000 1.000000 0.237500 -v -0.335000 1.000000 0.237500 -v -0.210000 1.000000 0.237500 -v -0.156250 0.000000 -0.156250 -v -0.156250 0.000000 0.156250 -v 0.156250 0.000000 -0.156250 -v 0.156250 0.000000 0.156250 -v -0.078125 0.156250 -0.078125 -v -0.078125 0.156250 0.078125 -v 0.078125 0.156250 0.078125 -v 0.078125 0.156250 -0.078125 -v -0.078125 0.706250 -0.078125 -v -0.078125 0.706250 0.078125 -v 0.078125 0.706250 0.078125 -v 0.078125 0.706250 -0.078125 -vt 0.377779 0.024108 -vt 0.436724 0.024108 -vt 0.436724 0.137981 -vt 0.495669 0.024108 -vt 0.495669 0.137981 -vt 0.554615 0.024108 -vt 0.554615 0.137981 -vt 0.613560 0.024108 -vt 0.613560 0.137981 -vt 0.672505 0.024108 -vt 0.672505 0.137981 -vt 0.731450 0.024108 -vt 0.731450 0.137981 -vt 0.024108 0.024108 -vt 0.083053 0.024108 -vt 0.083053 0.137982 -vt 0.141998 0.024108 -vt 0.141998 0.137982 -vt 0.200943 0.024108 -vt 0.200944 0.137981 -vt 0.259889 0.024108 -vt 0.259889 0.137981 -vt 0.163574 0.186198 -vt 0.214622 0.215670 -vt 0.182414 0.247878 -vt 0.318834 0.024108 -vt 0.377779 0.137981 -vt 0.318834 0.137981 -vt 0.104629 0.406184 -vt 0.116418 0.362187 -vt 0.151785 0.362187 -vt 0.024108 0.325663 -vt 0.068105 0.313874 -vt 0.085789 0.344503 -vt 0.482824 0.376711 -vt 0.450616 0.344503 -vt 0.468299 0.313874 -vt 0.292310 0.266718 -vt 0.336308 0.278507 -vt 0.336308 0.313874 -vt 0.244094 0.325663 -vt 0.200097 0.313874 -vt 0.200097 0.278507 -vt 0.053581 0.215670 -vt 0.085789 0.247878 -vt 0.068105 0.278507 -vt 0.512297 0.266718 -vt 0.468299 0.278507 -vt 0.450616 0.247878 -vt 0.372831 0.406184 -vt 0.321783 0.376711 -vt 0.353991 0.344503 -vt 0.431776 0.186198 -vt 0.419987 0.230195 -vt 0.384620 0.230195 -vt 0.163574 0.406184 -vt 0.182414 0.344503 -vt 0.151785 0.230195 -vt 0.116418 0.230195 -vt 0.053581 0.376711 -vt 0.431776 0.406184 -vt 0.419987 0.362187 -vt 0.321783 0.215670 -vt 0.353991 0.247878 -vt 0.244094 0.266718 -vt 0.024108 0.266718 -vt 0.512297 0.325663 -vt 0.292310 0.325663 -vt 0.214622 0.376711 -vt 0.104629 0.186198 -vt 0.482824 0.215670 -vt 0.384620 0.362187 -vt 0.372831 0.186198 -vt 0.039821 0.878779 -vt 0.176469 0.878779 -vt 0.142307 0.937949 -vt 0.073983 0.937949 -vt 0.108145 0.947103 -vt 0.103935 0.962816 -vt 0.048975 0.912941 -vt 0.062480 0.949452 -vt 0.024108 0.882989 -vt 0.033262 0.840407 -vt 0.048975 0.844617 -vt 0.062480 0.808106 -vt 0.073983 0.819609 -vt 0.103935 0.794742 -vt 0.108145 0.810455 -vt 0.142307 0.819609 -vt 0.112356 0.794742 -vt 0.167316 0.844617 -vt 0.153810 0.808106 -vt 0.183029 0.840407 -vt 0.167316 0.912941 -vt 0.192183 0.882989 -vt 0.178819 0.924444 -vt 0.146518 0.953663 -vt 0.340346 0.943001 -vt 0.274350 0.925318 -vt 0.304978 0.811009 -vt 0.370975 0.828693 -vt 0.340346 0.811009 -vt 0.348479 0.796921 -vt 0.388658 0.859322 -vt 0.385063 0.820559 -vt 0.388658 0.894689 -vt 0.404926 0.859322 -vt 0.370975 0.925318 -vt 0.402746 0.902823 -vt 0.379108 0.939406 -vt 0.304979 0.943001 -vt 0.340346 0.959269 -vt 0.296845 0.957089 -vt 0.256666 0.894689 -vt 0.260262 0.933451 -vt 0.240399 0.859322 -vt 0.256666 0.859322 -vt 0.260262 0.820559 -vt 0.274350 0.828693 -vt 0.296845 0.796921 -vt 0.304978 0.794742 -vt 0.024108 0.684733 -vt 0.025734 0.644096 -vt 0.046052 0.644909 -vt 0.444044 0.726997 -vt 0.442418 0.686360 -vt 0.462737 0.685548 -vt 0.464321 0.515373 -vt 0.465946 0.556010 -vt 0.445628 0.556822 -vt 0.046052 0.474734 -vt 0.044426 0.515371 -vt 0.024108 0.514558 -vt 0.046003 0.746519 -vt 0.044426 0.705880 -vt 0.379792 0.705887 -vt 0.465946 0.576344 -vt 0.791559 0.556013 -vt 0.464362 0.746519 -vt 0.464362 0.726184 -vt 0.789974 0.726188 -vt 0.046052 0.624575 -vt 0.381418 0.624575 -vt 0.371665 0.644912 -vt 0.465899 0.454400 -vt 0.801265 0.454400 -vt 0.799687 0.495039 -vt 0.370039 0.685549 -vt 0.464321 0.495038 -vt 0.789934 0.515377 -vt 0.044426 0.685546 -vt 0.371664 0.474741 -vt 0.370037 0.515377 -vt 0.464315 0.624575 -vt 0.799681 0.624575 -vt 0.798103 0.665213 -vt 0.044426 0.535705 -vt 0.462737 0.665213 -vt 0.788350 0.685551 -vt 0.045987 0.576344 -vt 0.383041 0.535719 -vt 0.046053 0.454400 -vt 0.384669 0.454400 -vt 0.394160 0.516343 -vt 0.814096 0.555112 -vt 0.810887 0.684650 -vt 0.812512 0.725286 -vt 0.394203 0.645814 -vt 0.392577 0.686451 -vt 0.830946 0.331144 -vt 0.830946 0.229471 -vt 0.932619 0.229471 -vt 0.932619 0.331143 -vt 0.907200 0.387980 -vt 0.856364 0.387980 -vt 0.774109 0.305725 -vt 0.774109 0.254889 -vt 0.856364 0.172634 -vt 0.907200 0.172634 -vt 0.989455 0.254889 -vt 0.989455 0.305725 -vt 0.560513 0.237034 -vt 0.739457 0.237034 -vt 0.739457 0.287870 -vt 0.560513 0.338707 -vt 0.739457 0.338706 -vt 0.739457 0.389543 -vt 0.560513 0.186198 -vt 0.739457 0.186198 -vt 0.560513 0.287870 -vt 0.024108 0.137982 -vt 0.069773 0.953663 -vt 0.037472 0.924444 -vt 0.033262 0.917151 -vt 0.024108 0.874569 -vt 0.037472 0.833114 -vt 0.069773 0.803895 -vt 0.146518 0.803895 -vt 0.178819 0.833114 -vt 0.192183 0.874569 -vt 0.183029 0.917151 -vt 0.153810 0.949452 -vt 0.112356 0.962816 -vt 0.379108 0.814605 -vt 0.402746 0.851188 -vt 0.404926 0.894689 -vt 0.385063 0.933451 -vt 0.348479 0.957089 -vt 0.304979 0.959269 -vt 0.266216 0.939406 -vt 0.242578 0.902823 -vt 0.240399 0.894689 -vt 0.242578 0.851188 -vt 0.266216 0.814605 -vt 0.340346 0.794742 -vt 0.444003 0.516186 -vt 0.025734 0.473921 -vt 0.381369 0.746526 -vt 0.801311 0.576351 -vt 0.799727 0.746526 -vt 0.384603 0.576359 -vt 0.395787 0.475707 -vt 0.812471 0.514475 -vt 0.560513 0.389543 -vn 0.258800 0.965900 0.000000 -vn 0.707100 0.707100 0.000000 -vn 0.965900 0.258800 0.000000 -vn 0.965900 -0.258800 0.000000 -vn 0.707100 -0.707100 0.000000 -vn 0.258800 -0.965900 0.000000 -vn -0.258800 -0.965900 0.000000 -vn -0.707100 -0.707100 0.000000 -vn -0.965900 -0.258800 0.000000 -vn -0.965900 0.258800 0.000000 -vn 0.000000 0.000000 1.000000 -vn -0.258800 0.965900 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.000000 -0.000000 -1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.999200 -0.040000 0.000000 -vn -0.999200 -0.040000 0.000000 -vn 0.999100 -0.038800 -0.018600 -vn -0.999100 0.038800 -0.018600 -vn -0.999200 0.040000 0.000000 -vn 0.999200 0.040000 0.000000 -vn 0.999100 0.038800 0.018600 -vn -0.999000 -0.038400 0.024600 -vn 0.000000 0.842300 -0.539100 -vn 0.000000 0.901500 -0.432700 -vn 0.000000 0.901500 0.432700 -vn 0.000000 0.447200 0.894400 -vn -0.894400 0.447200 0.000000 -vn 0.000000 0.447200 -0.894400 -vn 0.894400 0.447200 0.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.999100 -0.038800 0.018600 -vn -0.999100 -0.038800 -0.018600 -vn -0.999100 0.038800 0.018600 -vn 0.999000 0.038400 -0.024600 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/14/7 16/15/7 15/16/7 -f 16/15/8 18/17/8 17/18/8 -f 18/17/9 20/19/9 19/20/9 -f 20/19/10 22/21/10 21/22/10 -f 16/23/11 14/24/11 38/25/11 -f 24/26/12 2/1/12 1/27/12 -f 22/21/13 24/26/13 23/28/13 -f 4/29/11 27/30/11 30/31/11 -f 24/32/11 48/33/11 28/34/11 -f 11/35/14 35/36/14 33/37/14 -f 21/38/14 45/39/14 43/40/14 -f 10/41/11 34/42/11 36/43/11 -f 20/44/11 44/45/11 46/46/11 -f 7/47/14 31/48/14 29/49/14 -f 15/50/14 17/51/14 41/52/14 -f 3/53/14 26/54/14 25/55/14 -f 6/56/11 30/31/11 32/57/11 -f 16/23/11 40/58/11 42/59/11 -f 2/60/11 28/34/11 27/30/11 -f 13/61/14 37/62/14 35/36/14 -f 21/38/14 23/63/14 47/64/14 -f 12/65/11 36/43/11 38/25/11 -f 22/66/11 46/46/11 48/33/11 -f 9/67/14 33/37/14 31/48/14 -f 17/51/14 19/68/14 43/40/14 -f 8/69/11 32/57/11 34/42/11 -f 18/70/11 42/59/11 44/45/11 -f 3/53/14 5/71/14 29/49/14 -f 15/50/14 39/72/14 37/62/14 -f 1/73/14 25/55/14 47/64/14 -f 52/74/11 58/75/11 60/76/11 -f 50/77/1 49/78/1 27/79/1 -f 51/80/12 50/77/12 28/81/12 -f 46/82/13 52/74/13 51/80/13 -f 44/83/10 53/84/10 52/74/10 -f 42/85/9 54/86/9 53/84/9 -f 40/87/8 55/88/8 54/86/8 -f 56/89/7 55/88/7 40/90/7 -f 57/91/6 56/89/6 38/92/6 -f 58/75/5 57/91/5 36/93/5 -f 59/94/4 58/75/4 34/95/4 -f 60/76/3 59/94/3 32/96/3 -f 49/78/2 60/76/2 30/97/2 -f 66/98/14 68/99/14 72/100/14 -f 62/101/1 61/102/1 25/103/1 -f 63/104/2 62/101/2 26/105/2 -f 64/106/3 63/104/3 29/107/3 -f 65/108/4 64/106/4 31/109/4 -f 66/98/5 65/108/5 33/110/5 -f 67/111/6 66/98/6 35/112/6 -f 68/99/7 67/111/7 37/113/7 -f 69/114/8 68/99/8 39/115/8 -f 43/116/9 70/117/9 69/114/9 -f 45/118/10 71/119/10 70/117/10 -f 47/120/13 72/100/13 71/119/13 -f 61/102/12 72/100/12 47/121/12 -f 77/122/15 78/123/15 74/124/15 -f 79/125/15 80/126/15 76/127/15 -f 85/128/15 86/129/15 82/130/15 -f 87/131/15 88/132/15 84/133/15 -f 78/134/14 77/135/14 100/136/14 -f 82/137/16 86/129/16 91/138/16 -f 79/139/17 75/140/17 101/141/17 -f 78/142/18 99/143/18 104/144/18 -f 82/145/11 96/146/11 95/147/11 -f 74/124/11 104/144/11 103/148/11 -f 81/149/19 95/147/19 92/150/19 -f 77/135/20 73/151/20 103/148/20 -f 87/131/14 90/152/14 89/153/14 -f 79/154/14 98/155/14 97/156/14 -f 84/157/21 88/132/21 89/153/21 -f 80/158/22 97/156/22 102/159/22 -f 83/160/11 84/157/11 94/161/11 -f 86/129/14 85/128/14 92/150/14 -f 75/140/11 76/127/11 102/159/11 -f 83/162/23 93/163/23 90/152/23 -f 94/164/24 89/153/24 90/152/24 -f 96/165/25 91/138/25 92/150/25 -f 102/159/26 97/166/26 98/167/26 -f 104/144/26 99/168/26 100/169/26 -f 106/170/15 105/171/15 107/172/15 -f 108/173/27 111/174/27 110/175/27 -f 106/170/28 110/176/28 109/177/28 -f 105/171/29 109/178/29 112/179/29 -f 107/172/30 112/180/30 111/181/30 -f 110/182/31 114/183/31 113/184/31 -f 112/185/32 116/186/32 115/187/32 -f 111/188/11 115/189/11 114/183/11 -f 109/190/14 113/184/14 116/186/14 -f 1/27/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 13/191/7 14/14/7 15/16/7 -f 15/16/8 16/15/8 17/18/8 -f 17/18/9 18/17/9 19/20/9 -f 19/20/10 20/19/10 21/22/10 -f 40/58/11 16/23/11 38/25/11 -f 23/28/12 24/26/12 1/27/12 -f 21/22/13 22/21/13 23/28/13 -f 6/56/11 4/29/11 30/31/11 -f 2/60/11 24/32/11 28/34/11 -f 9/67/14 11/35/14 33/37/14 -f 19/68/14 21/38/14 43/40/14 -f 12/65/11 10/41/11 36/43/11 -f 22/66/11 20/44/11 46/46/11 -f 5/71/14 7/47/14 29/49/14 -f 39/72/14 15/50/14 41/52/14 -f 1/73/14 3/53/14 25/55/14 -f 8/69/11 6/56/11 32/57/11 -f 18/70/11 16/23/11 42/59/11 -f 4/29/11 2/60/11 27/30/11 -f 11/35/14 13/61/14 35/36/14 -f 45/39/14 21/38/14 47/64/14 -f 14/24/11 12/65/11 38/25/11 -f 24/32/11 22/66/11 48/33/11 -f 7/47/14 9/67/14 31/48/14 -f 41/52/14 17/51/14 43/40/14 -f 10/41/11 8/69/11 34/42/11 -f 20/44/11 18/70/11 44/45/11 -f 26/54/14 3/53/14 29/49/14 -f 13/61/14 15/50/14 37/62/14 -f 23/63/14 1/73/14 47/64/14 -f 60/76/11 49/78/11 50/77/11 -f 50/77/11 51/80/11 60/76/11 -f 52/74/11 53/84/11 54/86/11 -f 54/86/11 55/88/11 52/74/11 -f 56/89/11 57/91/11 58/75/11 -f 58/75/11 59/94/11 60/76/11 -f 60/76/11 51/80/11 52/74/11 -f 52/74/11 55/88/11 56/89/11 -f 56/89/11 58/75/11 52/74/11 -f 28/192/1 50/77/1 27/79/1 -f 48/193/12 51/80/12 28/81/12 -f 48/194/13 46/82/13 51/80/13 -f 46/195/10 44/83/10 52/74/10 -f 44/196/9 42/85/9 53/84/9 -f 42/197/8 40/87/8 54/86/8 -f 38/198/7 56/89/7 40/90/7 -f 36/199/6 57/91/6 38/92/6 -f 34/200/5 58/75/5 36/93/5 -f 32/201/4 59/94/4 34/95/4 -f 30/202/3 60/76/3 32/96/3 -f 27/203/2 49/78/2 30/97/2 -f 72/100/14 61/102/14 62/101/14 -f 62/101/14 63/104/14 64/106/14 -f 64/106/14 65/108/14 66/98/14 -f 66/98/14 67/111/14 68/99/14 -f 68/99/14 69/114/14 70/117/14 -f 70/117/14 71/119/14 72/100/14 -f 72/100/14 62/101/14 64/106/14 -f 64/106/14 66/98/14 72/100/14 -f 68/99/14 70/117/14 72/100/14 -f 26/204/1 62/101/1 25/103/1 -f 29/205/2 63/104/2 26/105/2 -f 31/206/3 64/106/3 29/107/3 -f 33/207/4 65/108/4 31/109/4 -f 35/208/5 66/98/5 33/110/5 -f 37/209/6 67/111/6 35/112/6 -f 39/210/7 68/99/7 37/113/7 -f 41/211/8 69/114/8 39/115/8 -f 41/212/9 43/116/9 69/114/9 -f 43/213/10 45/118/10 70/117/10 -f 45/214/13 47/120/13 71/119/13 -f 25/215/12 61/102/12 47/121/12 -f 73/151/15 77/122/15 74/124/15 -f 75/140/15 79/125/15 76/127/15 -f 81/216/15 85/128/15 82/130/15 -f 83/217/15 87/131/15 84/133/15 -f 99/218/14 78/134/14 100/136/14 -f 96/219/33 82/137/33 91/138/33 -f 98/220/34 79/139/34 101/141/34 -f 74/124/16 78/142/16 104/144/16 -f 81/149/11 82/145/11 95/147/11 -f 73/151/11 74/124/11 103/148/11 -f 85/128/20 81/149/20 92/150/20 -f 100/136/35 77/135/35 103/148/35 -f 88/132/14 87/131/14 89/153/14 -f 80/158/14 79/154/14 97/156/14 -f 94/161/36 84/157/36 89/153/36 -f 76/127/21 80/158/21 102/159/21 -f 93/221/11 83/160/11 94/161/11 -f 91/138/14 86/129/14 92/150/14 -f 101/141/11 75/140/11 102/159/11 -f 87/131/17 83/162/17 90/152/17 -f 93/222/24 94/164/24 90/152/24 -f 95/223/25 96/165/25 92/150/25 -f 101/141/26 102/159/26 98/167/26 -f 103/148/26 104/144/26 100/169/26 -f 108/173/15 106/170/15 107/172/15 -f 106/170/27 108/173/27 110/175/27 -f 105/171/28 106/170/28 109/177/28 -f 107/172/29 105/171/29 112/179/29 -f 108/173/30 107/172/30 111/181/30 -f 109/190/31 110/182/31 113/184/31 -f 111/224/32 112/185/32 115/187/32 -f 110/182/11 111/188/11 114/183/11 -f 112/185/14 109/190/14 116/186/14 diff --git a/src/main/resources/assets/hbm/models/selenium_engine_piston.obj b/src/main/resources/assets/hbm/models/selenium_engine_piston.obj deleted file mode 100644 index 8e3894b38..000000000 --- a/src/main/resources/assets/hbm/models/selenium_engine_piston.obj +++ /dev/null @@ -1,531 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'selenium_engine_piston.blend' -# www.blender.org -o Cube_Cube.001 -v 0.088388 0.650000 0.088388 -v 0.088388 0.250000 0.088388 -v 0.125000 0.650000 0.000000 -v 0.125000 0.250000 0.000000 -v 0.088388 0.650000 -0.088388 -v 0.088388 0.250000 -0.088388 -v -0.000000 0.650000 -0.125000 -v -0.000000 0.250000 -0.125000 -v -0.088389 0.650000 -0.088388 -v -0.088388 0.250000 -0.088388 -v -0.125000 0.650000 -0.000000 -v -0.125000 0.250000 -0.000000 -v -0.088389 0.650000 0.088388 -v -0.088388 0.250000 0.088388 -v -0.000000 0.650000 0.125000 -v -0.000000 0.250000 0.125000 -v -0.000000 0.650000 0.156250 -v -0.000000 0.775000 0.156250 -v -0.110486 0.650000 0.110485 -v -0.110486 0.775000 0.110485 -v -0.156250 0.650000 -0.000000 -v -0.156250 0.775000 -0.000000 -v -0.110486 0.650000 -0.110485 -v -0.110486 0.775000 -0.110485 -v -0.000000 0.650000 -0.156250 -v -0.000000 0.775000 -0.156250 -v 0.110485 0.650000 -0.110485 -v 0.110485 0.775000 -0.110485 -v 0.156250 0.650000 0.000000 -v 0.156250 0.775000 0.000000 -v 0.110485 0.650000 0.110485 -v 0.110485 0.775000 0.110485 -v 0.200000 0.750000 0.050000 -v 0.135000 0.750000 -0.050000 -v 0.200000 0.750000 -0.050000 -v 0.135000 0.750000 0.050000 -v 0.235000 0.715000 0.050000 -v 0.235000 0.715000 -0.050000 -v 0.235000 0.615000 0.050000 -v 0.235000 0.615000 -0.050000 -v 0.160000 0.465000 0.050000 -v 0.160000 0.465000 -0.050000 -v 0.160000 0.265000 0.050000 -v 0.160000 0.265000 -0.050000 -v -0.125000 0.300000 0.107322 -v -0.125000 0.650000 0.107322 -v -0.107322 0.300000 0.125000 -v -0.107323 0.650000 0.125000 -v -0.142678 0.300000 0.125000 -v -0.142678 0.650000 0.125000 -v -0.125000 0.300000 0.142678 -v -0.125000 0.650000 0.142678 -v -0.125000 0.650000 0.098483 -v -0.098484 0.650000 0.125000 -v -0.151517 0.650000 0.125000 -v -0.125000 0.650000 0.151516 -v -0.110000 0.750000 0.083483 -v -0.083484 0.750000 0.110000 -v -0.110000 0.750000 0.136516 -v -0.136517 0.750000 0.110000 -v 0.125000 0.300000 0.107322 -v 0.125000 0.650000 0.107322 -v 0.142678 0.300000 0.125000 -v 0.142677 0.650000 0.125000 -v 0.107322 0.300000 0.125000 -v 0.107322 0.650000 0.125000 -v 0.125000 0.300000 0.142678 -v 0.125000 0.650000 0.142678 -v 0.125000 0.650000 0.098484 -v 0.151516 0.650000 0.125000 -v 0.098483 0.650000 0.125000 -v 0.125000 0.650000 0.151517 -v 0.110000 0.750000 0.083484 -v 0.136516 0.750000 0.110000 -v 0.110000 0.750000 0.136517 -v 0.083483 0.750000 0.110000 -v 0.125000 0.300000 -0.142678 -v 0.125000 0.650000 -0.142678 -v 0.142678 0.300000 -0.125000 -v 0.142678 0.650000 -0.125000 -v 0.107322 0.300000 -0.125000 -v 0.107322 0.650000 -0.125000 -v 0.125000 0.300000 -0.107322 -v 0.125000 0.650000 -0.107322 -v 0.125000 0.650000 -0.151516 -v 0.151516 0.650000 -0.125000 -v 0.098483 0.650000 -0.125000 -v 0.125000 0.650000 -0.098483 -v 0.110000 0.750000 -0.136516 -v 0.136516 0.750000 -0.110000 -v 0.110000 0.750000 -0.083483 -v 0.083483 0.750000 -0.110000 -v -0.125000 0.300000 -0.142678 -v -0.125000 0.650000 -0.142678 -v -0.107322 0.300000 -0.125000 -v -0.107322 0.650000 -0.125000 -v -0.142678 0.300000 -0.125000 -v -0.142678 0.650000 -0.125000 -v -0.125000 0.300000 -0.107322 -v -0.125000 0.650000 -0.107322 -v -0.125000 0.650000 -0.151517 -v -0.098484 0.650000 -0.125000 -v -0.151517 0.650000 -0.125000 -v -0.125000 0.650000 -0.098484 -v -0.110000 0.750000 -0.136517 -v -0.083484 0.750000 -0.110000 -v -0.110000 0.750000 -0.083484 -v -0.136517 0.750000 -0.110000 -v -0.100000 0.200000 -0.075000 -v -0.100000 0.712500 -0.075000 -v -0.100000 0.200000 0.075000 -v -0.100000 0.712500 0.075000 -v -0.200000 0.200000 -0.075000 -v -0.200000 0.612500 -0.075000 -v -0.200000 0.200000 0.075000 -v -0.200000 0.612500 0.075000 -vt 0.420709 0.299122 -vt 0.353866 0.299122 -vt 0.353866 0.019654 -vt 0.554394 0.299122 -vt 0.487551 0.299122 -vt 0.487552 0.019654 -vt 0.287024 0.299122 -vt 0.220182 0.299122 -vt 0.220182 0.019654 -vt 0.153339 0.299122 -vt 0.153339 0.019654 -vt 0.420709 0.019654 -vt 0.086497 0.299123 -vt 0.019654 0.299123 -vt 0.019654 0.019654 -vt 0.287024 0.019654 -vt 0.086496 0.019654 -vt 0.186760 0.872253 -vt 0.103207 0.872253 -vt 0.103207 0.784919 -vt 0.019654 0.872253 -vt 0.019654 0.784919 -vt 0.688079 0.872253 -vt 0.604526 0.872253 -vt 0.604526 0.784919 -vt 0.520973 0.872253 -vt 0.520973 0.784919 -vt 0.437420 0.872253 -vt 0.437420 0.784919 -vt 0.353867 0.872253 -vt 0.353866 0.784919 -vt 0.408297 0.397511 -vt 0.610013 0.397511 -vt 0.610013 0.481064 -vt 0.270313 0.872253 -vt 0.186760 0.784919 -vt 0.270313 0.784919 -vt 0.362222 0.764747 -vt 0.429064 0.764747 -vt 0.345511 0.764747 -vt 0.195116 0.764747 -vt 0.261958 0.764747 -vt 0.178405 0.764747 -vt 0.028009 0.764747 -vt 0.094852 0.764747 -vt 0.679724 0.764747 -vt 0.688079 0.784919 -vt 0.529328 0.764747 -vt 0.596171 0.764747 -vt 0.512617 0.764747 -vt 0.719188 0.494732 -vt 0.719188 0.540145 -vt 0.649321 0.540145 -vt 0.649321 0.494732 -vt 0.649321 0.460149 -vt 0.719188 0.460149 -vt 0.649321 0.390282 -vt 0.719188 0.390282 -vt 0.649320 0.273112 -vt 0.719188 0.273111 -vt 0.649320 0.133377 -vt 0.719188 0.133377 -vt 0.920071 0.661756 -vt 0.920071 0.417221 -vt 0.937537 0.417221 -vt 0.902605 0.661756 -vt 0.902604 0.417221 -vt 0.885138 0.661756 -vt 0.885137 0.417221 -vt 0.867671 0.661756 -vt 0.867671 0.417221 -vt 0.529281 0.592250 -vt 0.533648 0.596617 -vt 0.507448 0.596617 -vt 0.433353 0.591439 -vt 0.450440 0.587814 -vt 0.455618 0.591180 -vt 0.504082 0.591439 -vt 0.481818 0.591180 -vt 0.477451 0.586813 -vt 0.429988 0.596616 -vt 0.455617 0.662601 -vt 0.533648 0.694239 -vt 0.507447 0.694239 -vt 0.507447 0.668038 -vt 0.481818 0.662601 -vt 0.533648 0.668039 -vt 0.793429 0.377913 -vt 0.793429 0.133377 -vt 0.810896 0.133377 -vt 0.775962 0.377913 -vt 0.775962 0.133377 -vt 0.758496 0.377913 -vt 0.758496 0.133377 -vt 0.810896 0.377913 -vt 0.828362 0.133377 -vt 0.808277 0.730813 -vt 0.811642 0.735990 -vt 0.786013 0.730554 -vt 0.833476 0.731624 -vt 0.837843 0.735990 -vt 0.781646 0.726187 -vt 0.759812 0.730554 -vt 0.754635 0.727188 -vt 0.734183 0.735990 -vt 0.837843 0.807412 -vt 0.837843 0.833613 -vt 0.811642 0.833613 -vt 0.786013 0.801975 -vt 0.759812 0.801975 -vt 0.811642 0.807412 -vt 0.885138 0.377913 -vt 0.885137 0.133377 -vt 0.902604 0.133377 -vt 0.867671 0.377913 -vt 0.867671 0.133377 -vt 0.920071 0.377913 -vt 0.920071 0.133377 -vt 0.937537 0.133377 -vt 0.902605 0.377913 -vt 0.781646 0.872920 -vt 0.786013 0.877287 -vt 0.759812 0.877287 -vt 0.791190 0.873922 -vt 0.808277 0.877546 -vt 0.811642 0.882724 -vt 0.737548 0.877546 -vt 0.754635 0.873922 -vt 0.833476 0.878357 -vt 0.837843 0.882724 -vt 0.811642 0.954146 -vt 0.786013 0.948709 -vt 0.811642 0.980346 -vt 0.837843 0.954146 -vt 0.734183 0.882724 -vt 0.759812 0.948709 -vt 0.758496 0.661756 -vt 0.758496 0.417221 -vt 0.775962 0.417221 -vt 0.810896 0.661756 -vt 0.810896 0.417221 -vt 0.828362 0.417221 -vt 0.793429 0.661756 -vt 0.793429 0.417221 -vt 0.775962 0.661756 -vt 0.594580 0.584079 -vt 0.611667 0.580455 -vt 0.616845 0.583820 -vt 0.621211 0.579453 -vt 0.638678 0.579453 -vt 0.643045 0.583820 -vt 0.690508 0.584890 -vt 0.694875 0.589257 -vt 0.668675 0.589257 -vt 0.648223 0.580455 -vt 0.665309 0.584079 -vt 0.643045 0.655242 -vt 0.616845 0.655242 -vt 0.668675 0.686879 -vt 0.668675 0.660679 -vt 0.694875 0.660679 -vt 0.591215 0.589257 -vt 0.264189 0.696500 -vt 0.264189 0.338430 -vt 0.368990 0.338430 -vt 0.194322 0.626632 -vt 0.194322 0.338430 -vt 0.089521 0.626632 -vt 0.089521 0.338430 -vt 0.019654 0.696499 -vt 0.019654 0.338430 -vt 0.194322 0.725439 -vt 0.089521 0.725439 -vt 0.554394 0.019654 -vt 0.550932 0.540146 -vt 0.467378 0.540146 -vt 0.408297 0.481064 -vt 0.467378 0.338430 -vt 0.550932 0.338430 -vt 0.278669 0.764747 -vt 0.111562 0.764747 -vt 0.612881 0.764747 -vt 0.445775 0.764747 -vt 0.937538 0.661756 -vt 0.511814 0.592250 -vt 0.486996 0.587814 -vt 0.459984 0.586813 -vt 0.429988 0.668038 -vt 0.828363 0.377913 -vt 0.791190 0.727188 -vt 0.816009 0.731624 -vt 0.764179 0.726187 -vt 0.737548 0.730813 -vt 0.734183 0.807412 -vt 0.937538 0.377913 -vt 0.764179 0.872920 -vt 0.816009 0.878357 -vt 0.837843 0.980346 -vt 0.734183 0.954146 -vt 0.828363 0.661756 -vt 0.673041 0.584890 -vt 0.694875 0.686879 -vt 0.591215 0.660679 -vt 0.368990 0.696500 -vn 0.382700 0.000000 -0.923900 -vn -0.923900 -0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 -0.000000 -0.923900 -vn -0.923900 -0.000000 0.382700 -vn 0.923900 0.000000 -0.382700 -vn -0.382700 -0.000000 0.923900 -vn -0.000000 1.000000 -0.000000 -vn 0.000000 -1.000000 -0.000000 -vn 0.707100 0.707100 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.894400 -0.447200 0.000000 -vn 0.707100 0.000000 -0.707100 -vn 0.707100 0.000000 0.707100 -vn -0.707100 -0.000000 0.707100 -vn -0.707100 -0.000000 -0.707100 -vn -0.691700 0.207500 0.691700 -vn 0.691700 -0.207500 -0.691700 -vn -0.691700 -0.207500 -0.691700 -vn 0.691700 0.207500 0.691700 -vn -0.691700 -0.207500 0.691700 -vn 0.691700 0.207500 -0.691700 -vn -0.691700 0.207500 -0.691700 -vn 0.691700 -0.207500 0.691700 -vn -0.000000 -0.000000 1.000000 -vn -1.000000 -0.000000 -0.000000 -vn 0.000000 0.000000 -1.000000 -vn -0.707100 0.707100 -0.000000 -s off -f 7/1/1 5/2/1 6/3/1 -f 11/4/2 9/5/2 10/6/2 -f 3/7/3 1/8/3 2/9/3 -f 1/8/4 15/10/4 16/11/4 -f 9/5/5 7/1/5 8/12/5 -f 13/13/6 11/14/6 12/15/6 -f 5/2/7 3/7/7 4/16/7 -f 15/10/8 13/13/8 14/17/8 -f 18/18/8 20/19/8 19/20/8 -f 20/19/6 22/21/6 21/22/6 -f 22/23/2 24/24/2 23/25/2 -f 24/24/5 26/26/5 25/27/5 -f 26/26/1 28/28/1 27/29/1 -f 28/28/7 30/30/7 29/31/7 -f 30/32/9 24/33/9 22/34/9 -f 32/35/4 18/18/4 17/36/4 -f 30/30/3 32/35/3 31/37/3 -f 3/38/10 5/39/10 27/29/10 -f 3/40/10 29/31/10 31/37/10 -f 15/41/10 1/42/10 31/37/10 -f 15/43/10 17/36/10 19/20/10 -f 11/44/10 13/45/10 19/20/10 -f 11/46/10 21/47/10 23/25/10 -f 7/48/10 9/49/10 23/25/10 -f 7/50/10 25/27/10 27/29/10 -f 35/51/9 34/52/9 36/53/9 -f 33/54/11 37/55/11 38/56/11 -f 39/57/12 40/58/12 38/56/12 -f 41/59/13 42/60/13 40/58/13 -f 43/61/12 44/62/12 42/60/12 -f 48/63/14 47/64/14 45/65/14 -f 52/66/15 51/67/15 47/64/15 -f 50/68/16 49/69/16 51/67/16 -f 46/70/17 45/71/17 49/69/17 -f 46/72/10 53/73/10 54/74/10 -f 46/75/10 50/76/10 55/77/10 -f 48/78/10 54/74/10 56/79/10 -f 52/80/10 56/79/10 55/77/10 -f 53/81/17 55/77/17 60/82/17 -f 60/83/9 59/84/9 58/85/9 -f 54/74/15 58/85/15 59/86/15 -f 56/79/18 59/86/18 60/82/18 -f 54/74/19 53/73/19 57/87/19 -f 64/88/14 63/89/14 61/90/14 -f 68/91/15 67/92/15 63/89/15 -f 66/93/16 65/94/16 67/92/16 -f 62/95/17 61/90/17 65/96/17 -f 62/97/10 69/98/10 70/99/10 -f 66/100/10 71/101/10 69/98/10 -f 64/102/10 70/99/10 72/103/10 -f 68/104/10 72/103/10 71/105/10 -f 69/98/20 71/101/20 76/106/20 -f 76/106/9 75/107/9 74/108/9 -f 70/99/21 74/109/21 75/110/21 -f 71/105/16 72/103/16 75/110/16 -f 69/98/14 73/111/14 74/109/14 -f 80/112/14 79/113/14 77/114/14 -f 84/115/15 83/116/15 79/113/15 -f 82/117/16 81/118/16 83/119/16 -f 78/120/17 77/114/17 81/118/17 -f 78/121/10 85/122/10 86/123/10 -f 78/124/10 82/125/10 87/126/10 -f 84/127/10 80/128/10 86/123/10 -f 84/129/10 88/130/10 87/126/10 -f 87/126/17 92/131/17 89/132/17 -f 89/133/9 92/131/9 91/134/9 -f 88/135/15 86/123/15 90/136/15 -f 88/130/22 91/134/22 92/131/22 -f 86/123/23 85/122/23 89/132/23 -f 96/137/14 95/138/14 93/139/14 -f 100/140/15 99/141/15 95/142/15 -f 98/143/16 97/144/16 99/141/16 -f 94/145/17 93/139/17 97/144/17 -f 96/146/10 94/147/10 101/148/10 -f 94/149/10 98/150/10 103/151/10 -f 96/152/10 102/153/10 104/154/10 -f 98/155/10 100/156/10 104/154/10 -f 103/151/24 108/157/24 105/158/24 -f 108/159/9 107/160/9 106/161/9 -f 102/153/25 106/161/25 107/160/25 -f 104/154/16 107/160/16 108/157/16 -f 102/162/14 101/148/14 105/158/14 -f 112/163/12 111/164/12 109/165/12 -f 116/166/26 115/167/26 111/164/26 -f 114/168/27 113/169/27 115/167/27 -f 114/168/28 110/170/28 109/171/28 -f 116/166/29 112/172/29 110/173/29 -f 8/12/1 7/1/1 6/3/1 -f 12/174/2 11/4/2 10/6/2 -f 4/16/3 3/7/3 2/9/3 -f 2/9/4 1/8/4 16/11/4 -f 10/6/5 9/5/5 8/12/5 -f 14/17/6 13/13/6 12/15/6 -f 6/3/7 5/2/7 4/16/7 -f 16/11/8 15/10/8 14/17/8 -f 17/36/8 18/18/8 19/20/8 -f 19/20/6 20/19/6 21/22/6 -f 21/47/2 22/23/2 23/25/2 -f 23/25/5 24/24/5 25/27/5 -f 25/27/1 26/26/1 27/29/1 -f 27/29/7 28/28/7 29/31/7 -f 22/34/9 20/175/9 30/32/9 -f 18/176/9 32/177/9 30/32/9 -f 30/32/9 28/178/9 26/179/9 -f 26/179/9 24/33/9 30/32/9 -f 20/175/9 18/176/9 30/32/9 -f 31/37/4 32/35/4 17/36/4 -f 29/31/3 30/30/3 31/37/3 -f 29/31/10 3/38/10 27/29/10 -f 1/180/10 3/40/10 31/37/10 -f 17/36/10 15/41/10 31/37/10 -f 13/181/10 15/43/10 19/20/10 -f 21/22/10 11/44/10 19/20/10 -f 9/182/10 11/46/10 23/25/10 -f 25/27/10 7/48/10 23/25/10 -f 5/183/10 7/50/10 27/29/10 -f 33/54/9 35/51/9 36/53/9 -f 35/51/11 33/54/11 38/56/11 -f 37/55/12 39/57/12 38/56/12 -f 39/57/13 41/59/13 40/58/13 -f 41/59/12 43/61/12 42/60/12 -f 46/184/14 48/63/14 45/65/14 -f 48/63/15 52/66/15 47/64/15 -f 52/66/16 50/68/16 51/67/16 -f 50/68/17 46/70/17 49/69/17 -f 48/185/10 46/72/10 54/74/10 -f 53/81/10 46/75/10 55/77/10 -f 52/186/10 48/78/10 56/79/10 -f 50/187/10 52/80/10 55/77/10 -f 57/188/17 53/81/17 60/82/17 -f 57/87/9 60/83/9 58/85/9 -f 56/79/15 54/74/15 59/86/15 -f 55/77/18 56/79/18 60/82/18 -f 58/85/19 54/74/19 57/87/19 -f 62/95/14 64/88/14 61/90/14 -f 64/88/15 68/91/15 63/89/15 -f 68/91/16 66/93/16 67/92/16 -f 66/189/17 62/95/17 65/96/17 -f 64/190/10 62/97/10 70/99/10 -f 62/191/10 66/100/10 69/98/10 -f 68/192/10 64/102/10 72/103/10 -f 66/193/10 68/104/10 71/105/10 -f 73/111/20 69/98/20 76/106/20 -f 73/111/9 76/106/9 74/108/9 -f 72/103/21 70/99/21 75/110/21 -f 76/194/16 71/105/16 75/110/16 -f 70/99/14 69/98/14 74/109/14 -f 78/120/14 80/112/14 77/114/14 -f 80/112/15 84/115/15 79/113/15 -f 84/195/16 82/117/16 83/119/16 -f 82/117/17 78/120/17 81/118/17 -f 80/196/10 78/121/10 86/123/10 -f 85/122/10 78/124/10 87/126/10 -f 88/135/10 84/127/10 86/123/10 -f 82/197/10 84/129/10 87/126/10 -f 85/122/17 87/126/17 89/132/17 -f 90/198/9 89/133/9 91/134/9 -f 91/199/15 88/135/15 90/136/15 -f 87/126/22 88/130/22 92/131/22 -f 90/136/23 86/123/23 89/132/23 -f 94/145/14 96/137/14 93/139/14 -f 96/200/15 100/140/15 95/142/15 -f 100/140/16 98/143/16 99/141/16 -f 98/143/17 94/145/17 97/144/17 -f 102/162/10 96/146/10 101/148/10 -f 101/148/10 94/149/10 103/151/10 -f 100/201/10 96/152/10 104/154/10 -f 103/151/10 98/155/10 104/154/10 -f 101/148/24 103/151/24 105/158/24 -f 105/202/9 108/159/9 106/161/9 -f 104/154/25 102/153/25 107/160/25 -f 103/151/16 104/154/16 108/157/16 -f 106/203/14 102/162/14 105/158/14 -f 110/204/12 112/163/12 109/165/12 -f 112/163/26 116/166/26 111/164/26 -f 116/166/27 114/168/27 115/167/27 -f 113/169/28 114/168/28 109/171/28 -f 114/168/29 116/166/29 110/173/29 diff --git a/src/main/resources/assets/hbm/models/selenium_engine_rotor.obj b/src/main/resources/assets/hbm/models/selenium_engine_rotor.obj deleted file mode 100644 index 7a4de9dad..000000000 --- a/src/main/resources/assets/hbm/models/selenium_engine_rotor.obj +++ /dev/null @@ -1,176 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'selenium_engine_rotor.blend' -# www.blender.org -o Cylinder.001_Cylinder.002 -v 0.000000 0.050000 -0.262500 -v 0.000000 0.050000 0.262500 -v -0.035355 -0.035355 -0.262500 -v -0.035355 -0.035355 0.262500 -v -0.050000 -0.000000 -0.262500 -v -0.050000 0.000000 0.262500 -v -0.035355 0.035355 -0.262500 -v -0.035355 0.035355 0.262500 -v 0.000000 0.150000 -0.262500 -v 0.000000 0.150000 0.262500 -v -0.106066 -0.106066 -0.262500 -v -0.106066 -0.106066 0.262500 -v -0.150000 -0.000000 -0.262500 -v -0.150000 0.000000 0.262500 -v -0.106066 0.106066 -0.262500 -v -0.106066 0.106066 0.262500 -v 0.035355 0.035355 0.325000 -v 0.000000 0.050000 0.325000 -v -0.035355 0.035355 0.325000 -v -0.050000 0.000000 0.325000 -v -0.035355 -0.035355 0.325000 -v -0.000000 -0.050000 0.325000 -v 0.035355 -0.035355 0.325000 -v 0.050000 0.000000 0.325000 -v 0.000000 0.050000 -0.325000 -v 0.035355 0.035355 -0.325000 -v 0.050000 -0.000000 -0.325000 -v 0.035355 -0.035355 -0.325000 -v -0.000000 -0.050000 -0.325000 -v -0.035355 -0.035355 -0.325000 -v -0.050000 -0.000000 -0.325000 -v -0.035355 0.035355 -0.325000 -vt 0.598952 0.123521 -vt 0.598952 0.565266 -vt 0.493775 0.565266 -vt 0.373026 0.565267 -vt 0.373025 0.123521 -vt 0.252276 0.565267 -vt 0.131527 0.565267 -vt 0.131527 0.123521 -vt 0.252276 0.123521 -vt 0.413275 0.662438 -vt 0.292526 0.662438 -vt 0.026349 0.123521 -vt 0.171777 0.662438 -vt 0.212026 0.026350 -vt 0.453525 0.026349 -vt 0.493774 0.123521 -vt 0.332775 0.026349 -vt 0.620400 0.895852 -vt 0.648861 0.827142 -vt 0.689111 0.924313 -vt 0.973650 0.520682 -vt 0.973650 0.573271 -vt 0.933400 0.573271 -vt 0.691901 0.573271 -vt 0.651650 0.573271 -vt 0.651650 0.520682 -vt 0.732151 0.573272 -vt 0.691901 0.520682 -vt 0.861451 0.925589 -vt 0.832990 0.897128 -vt 0.861450 0.828418 -vt 0.933400 0.520683 -vt 0.893150 0.026349 -vt 0.933401 0.078939 -vt 0.691902 0.026349 -vt 0.732152 0.026349 -vt 0.732152 0.078938 -vt 0.651652 0.026349 -vt 0.691902 0.078938 -vt 0.933401 0.026349 -vt 0.973651 0.026349 -vt 0.973651 0.078939 -vt 0.852901 0.573271 -vt 0.852901 0.026349 -vt 0.812651 0.573272 -vt 0.812651 0.026349 -vt 0.772402 0.573272 -vt 0.772402 0.026349 -vt 0.732151 0.520682 -vt 0.453525 0.662438 -vt 0.332776 0.662438 -vt 0.026349 0.565267 -vt 0.212027 0.662438 -vt 0.171776 0.026350 -vt 0.413275 0.026349 -vt 0.292525 0.026349 -vt 0.717572 0.855602 -vt 0.717572 0.895852 -vt 0.648861 0.924313 -vt 0.620400 0.855602 -vt 0.689111 0.827142 -vt 0.901700 0.828418 -vt 0.901700 0.925589 -vt 0.930161 0.856879 -vt 0.930161 0.897128 -vt 0.832990 0.856879 -vt 0.893151 0.573271 -vt 0.651652 0.078938 -vn 0.707100 -0.707100 0.000000 -vn -0.923900 -0.382700 0.000000 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 -0.000000 -vn 0.000000 0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.382700 0.923900 -0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -s off -f 3/1/1 4/2/1 12/3/1 -f 12/3/2 14/4/2 13/5/2 -f 16/6/3 10/7/3 9/8/3 -f 14/4/4 16/6/4 15/9/4 -f 6/10/5 14/4/5 12/3/5 -f 8/11/5 16/6/5 14/4/5 -f 1/12/6 9/8/6 10/7/6 -f 2/13/5 10/7/5 16/6/5 -f 7/14/7 15/9/7 9/8/7 -f 3/15/7 11/16/7 13/5/7 -f 5/17/7 13/5/7 15/9/7 -f 20/18/5 22/19/5 18/20/5 -f 8/21/3 19/22/3 18/23/3 -f 20/24/4 19/25/4 8/26/4 -f 21/27/2 20/24/2 6/28/2 -f 29/29/7 30/30/7 32/31/7 -f 2/32/8 26/33/8 1/34/8 -f 31/35/2 30/36/2 3/37/2 -f 32/38/4 31/35/4 5/39/4 -f 25/40/3 32/41/3 7/42/3 -f 24/43/9 27/44/9 26/33/9 -f 23/45/10 28/46/10 27/44/10 -f 22/47/11 29/48/11 28/46/11 -f 29/48/12 22/47/12 4/49/12 -f 11/16/1 3/1/1 12/3/1 -f 11/16/2 12/3/2 13/5/2 -f 15/9/3 16/6/3 9/8/3 -f 13/5/4 14/4/4 15/9/4 -f 4/50/5 6/10/5 12/3/5 -f 6/51/5 8/11/5 14/4/5 -f 2/52/6 1/12/6 10/7/6 -f 8/53/5 2/13/5 16/6/5 -f 1/54/7 7/14/7 9/8/7 -f 5/55/7 3/15/7 13/5/7 -f 7/56/7 5/17/7 15/9/7 -f 24/57/5 17/58/5 18/20/5 -f 18/20/5 19/59/5 20/18/5 -f 20/18/5 21/60/5 22/19/5 -f 22/19/5 23/61/5 24/57/5 -f 24/57/5 18/20/5 22/19/5 -f 2/32/3 8/21/3 18/23/3 -f 6/28/4 20/24/4 8/26/4 -f 4/49/2 21/27/2 6/28/2 -f 32/31/7 25/62/7 28/63/7 -f 26/64/7 27/65/7 28/63/7 -f 28/63/7 29/29/7 32/31/7 -f 30/30/7 31/66/7 32/31/7 -f 25/62/7 26/64/7 28/63/7 -f 25/40/8 1/34/8 26/33/8 -f 2/32/8 18/23/8 17/67/8 -f 17/67/8 26/33/8 2/32/8 -f 5/39/2 31/35/2 3/37/2 -f 7/68/4 32/38/4 5/39/4 -f 1/34/3 25/40/3 7/42/3 -f 17/67/9 24/43/9 26/33/9 -f 24/43/10 23/45/10 27/44/10 -f 23/45/11 22/47/11 28/46/11 -f 4/49/12 3/37/12 29/48/12 -f 30/36/12 29/48/12 3/37/12 -f 22/47/12 21/27/12 4/49/12 diff --git a/src/main/resources/assets/hbm/models/trinkets/bobble.obj b/src/main/resources/assets/hbm/models/trinkets/bobble.obj index 5a6183975..35e58fb51 100644 --- a/src/main/resources/assets/hbm/models/trinkets/bobble.obj +++ b/src/main/resources/assets/hbm/models/trinkets/bobble.obj @@ -1,5 +1,353 @@ -# Blender v2.79 (sub 0) OBJ File: 'bobble.blend' +# Blender 4.0.1 # www.blender.org +o Body +v 0.125000 1.750000 0.250000 +v -0.125000 1.750000 0.250000 +v 0.125000 1.750000 -0.250000 +v -0.125000 1.750000 -0.250000 +v 0.125000 1.000000 0.250000 +v -0.125000 1.000000 0.250000 +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +v 0.156250 1.781250 0.281250 +v -0.156250 1.781250 0.281250 +v 0.156250 1.781250 -0.281250 +v -0.156250 1.781250 -0.281250 +v 0.156250 0.968750 0.281250 +v -0.156250 0.968750 0.281250 +v -0.156250 0.968750 -0.281250 +v 0.156250 0.968750 -0.281250 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.312500 0.687500 +vt 0.437500 0.750000 +vt 0.312500 0.750000 +vt 0.562500 0.687500 +vt 0.562500 0.750000 +vt 0.500000 0.687500 +vt 0.625000 0.500000 +vt 0.625000 0.687500 +vt 0.437500 0.687500 +vt 0.500000 0.500000 +vt 0.437500 0.500000 +vt 0.250000 0.687500 +vt 0.312500 0.500000 +vt 0.312500 0.437500 +vt 0.562500 0.500000 +vt 0.437500 0.437500 +vt 0.562500 0.437500 +vt 0.500000 0.437500 +vt 0.625000 0.250000 +vt 0.625000 0.437500 +vt 0.500000 0.250000 +vt 0.437500 0.250000 +vt 0.250000 0.437500 +vt 0.312500 0.250000 +vt 0.250000 0.500000 +vt 0.250000 0.250000 +s 0 +f 1/1/1 4/2/1 2/3/1 +f 7/2/2 5/4/2 6/5/2 +f 4/6/3 6/7/3 2/8/3 +f 3/9/4 7/10/4 4/6/4 +f 1/1/5 8/11/5 3/9/5 +f 2/12/6 5/13/6 1/1/6 +f 9/14/1 12/11/1 10/13/1 +f 14/15/2 16/16/2 13/17/2 +f 12/18/3 14/19/3 10/20/3 +f 11/16/4 15/21/4 12/18/4 +f 9/14/5 16/22/5 11/16/5 +f 10/23/6 13/24/6 9/14/6 +f 1/1/1 3/9/1 4/2/1 +f 7/2/2 8/9/2 5/4/2 +f 4/6/3 7/10/3 6/7/3 +f 3/9/4 8/11/4 7/10/4 +f 1/1/5 5/13/5 8/11/5 +f 2/12/6 6/25/6 5/13/6 +f 9/14/1 11/16/1 12/11/1 +f 14/15/2 15/11/2 16/16/2 +f 12/18/3 15/21/3 14/19/3 +f 11/16/4 16/22/4 15/21/4 +f 9/14/5 13/24/5 16/22/5 +f 10/23/6 14/26/6 13/24/6 +o Body17 +v 0.125000 1.750000 0.250000 +v -0.125000 1.750000 0.250000 +v 0.125000 1.750000 -0.250000 +v -0.125000 1.750000 -0.250000 +v 0.125000 1.000000 0.250000 +v -0.125000 1.000000 0.250000 +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.312500 0.375000 +vt 0.437500 0.500000 +vt 0.312500 0.500000 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.500000 0.375000 +vt 0.625000 -0.000000 +vt 0.625000 0.375000 +vt 0.437500 0.375000 +vt 0.500000 -0.000000 +vt 0.437500 -0.000000 +vt 0.250000 0.375000 +vt 0.312500 -0.000000 +vt 0.250000 -0.000000 +s 0 +f 17/27/7 20/28/7 18/29/7 +f 23/28/8 21/30/8 22/31/8 +f 20/32/9 22/33/9 18/34/9 +f 19/35/10 23/36/10 20/32/10 +f 17/27/11 24/37/11 19/35/11 +f 18/38/12 21/39/12 17/27/12 +f 17/27/7 19/35/7 20/28/7 +f 23/28/8 24/35/8 21/30/8 +f 20/32/9 23/36/9 22/33/9 +f 19/35/10 24/37/10 23/36/10 +f 17/27/11 21/39/11 24/37/11 +f 18/38/12 22/40/12 21/39/12 +o Cube +v 0.045753 0.237741 0.312500 +v 0.045753 0.737741 0.312500 +v 0.045753 0.237741 0.062500 +v 0.045753 0.737741 0.062500 +v 0.295753 0.237741 0.312500 +v 0.295753 0.737741 0.312500 +v 0.295753 0.237741 0.062500 +v 0.295753 0.737741 0.062500 +v -0.291506 0.316987 -0.062500 +v -0.041506 0.750000 -0.062500 +v -0.291506 0.316987 -0.312500 +v -0.041506 0.750000 -0.312500 +v -0.075000 0.191987 -0.062500 +v 0.175000 0.625000 -0.062500 +v -0.075000 0.191987 -0.312500 +v 0.175000 0.625000 -0.312500 +v 0.079247 0.612741 0.312500 +v -0.170753 1.045753 0.312500 +v 0.079247 0.612741 0.062500 +v -0.170753 1.045753 0.062500 +v 0.295753 0.737741 0.312500 +v 0.045753 1.170753 0.312500 +v 0.295753 0.737741 0.062500 +v 0.045753 1.170753 0.062500 +v -0.075000 0.625000 -0.062500 +v -0.075000 1.125000 -0.062500 +v -0.075000 0.625000 -0.312500 +v -0.075000 1.125000 -0.312500 +v 0.175000 0.625000 -0.062500 +v 0.175000 1.125000 -0.062500 +v 0.175000 0.625000 -0.312500 +v 0.175000 1.125000 -0.312500 +v -0.125000 1.000000 0.250000 +v 0.125000 1.000000 0.250000 +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +v -0.125000 1.250000 -0.250000 +v -0.125000 1.250000 0.250000 +v 0.125000 1.250000 0.250000 +v 0.125000 1.250000 -0.250000 +v -0.187500 1.250000 0.375000 +v 0.187500 1.250000 0.375000 +v -0.187500 1.250000 -0.375000 +v 0.187500 1.250000 -0.375000 +v -0.187500 1.750000 -0.375000 +v -0.187500 1.750000 0.375000 +v 0.187500 1.750000 0.375000 +v 0.187500 1.750000 -0.375000 +v 0.232576 1.266670 -0.066987 +v 0.041065 1.427367 -0.500000 +v 0.398429 1.127502 -0.191987 +v 0.206918 1.288199 -0.625000 +v 0.393273 1.458181 -0.066987 +v 0.201762 1.618878 -0.500000 +v 0.559126 1.319013 -0.191987 +v 0.367615 1.479710 -0.625000 +v 0.206918 1.288199 -0.375000 +v -0.176104 1.609593 -0.375000 +v 0.206918 1.288199 -0.625000 +v -0.176104 1.609593 -0.625000 +v 0.367615 1.479710 -0.375000 +v -0.015407 1.801104 -0.375000 +v 0.367615 1.479710 -0.625000 +v -0.015407 1.801104 -0.625000 +v 0.125000 1.871693 0.950891 +v 0.125000 1.438680 0.700891 +v 0.125000 1.996693 0.734384 +v 0.125000 1.563680 0.484384 +v -0.125000 1.871693 0.950891 +v -0.125000 1.438680 0.700891 +v -0.125000 1.996693 0.734384 +v -0.125000 1.563680 0.484384 +v 0.125000 1.438680 0.700891 +v 0.125000 1.525504 0.208487 +v 0.125000 1.684882 0.744303 +v 0.125000 1.771706 0.251899 +v -0.125000 1.438680 0.700891 +v -0.125000 1.525504 0.208487 +v -0.125000 1.684882 0.744303 +v -0.125000 1.771706 0.251899 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn -0.6428 -0.7660 -0.0000 +vn 0.6634 -0.5567 -0.5000 +vn 0.6428 0.7660 -0.0000 +vn -0.6634 0.5567 0.5000 +vn 0.3830 -0.3214 0.8660 +vn -0.3830 0.3214 -0.8660 +vn 0.7660 -0.6428 -0.0000 +vn -0.7660 0.6428 -0.0000 +vn -0.0000 0.5000 -0.8660 +vn -0.0000 -0.5000 0.8660 +vn -0.0000 0.8660 0.5000 +vn -0.0000 -0.8660 -0.5000 +vn -0.0000 0.9848 0.1736 +vn -0.0000 -0.9848 -0.1736 +vn -0.0000 -0.1736 0.9848 +vn -0.0000 0.1736 -0.9848 +s 0 +f 26//13 27//13 25//13 +f 28//14 31//14 27//14 +f 32//15 29//15 31//15 +f 30//16 25//16 29//16 +f 31//17 25//17 27//17 +f 28//18 30//18 32//18 +f 34//19 35//19 33//19 +f 35//14 40//14 39//14 +f 40//20 37//20 39//20 +f 38//16 33//16 37//16 +f 39//21 33//21 35//21 +f 36//22 38//22 40//22 +f 42//23 43//23 41//23 +f 44//14 47//14 43//14 +f 48//24 45//24 47//24 +f 45//16 42//16 41//16 +f 47//25 41//25 43//25 +f 44//26 46//26 48//26 +f 50//13 51//13 49//13 +f 52//14 55//14 51//14 +f 56//15 53//15 55//15 +f 54//16 49//16 53//16 +f 55//17 49//17 51//17 +f 52//18 54//18 56//18 +f 59//17 58//17 57//17 +f 63//18 61//18 62//18 +f 59//14 64//14 60//14 +f 58//16 62//16 57//16 +f 60//15 63//15 58//15 +f 57//13 61//13 59//13 +f 67//17 66//17 65//17 +f 71//18 69//18 70//18 +f 68//15 71//15 66//15 +f 65//13 69//13 67//13 +f 67//14 72//14 68//14 +f 66//16 70//16 65//16 +f 74//27 75//27 73//27 +f 76//28 79//28 75//28 +f 79//29 78//29 77//29 +f 78//30 73//30 77//30 +f 75//31 77//31 73//31 +f 76//32 78//32 80//32 +f 82//27 83//27 81//27 +f 84//14 87//14 83//14 +f 88//29 85//29 87//29 +f 85//16 82//16 81//16 +f 87//33 81//33 83//33 +f 84//34 86//34 88//34 +f 90//15 91//15 89//15 +f 92//35 95//35 91//35 +f 96//13 93//13 95//13 +f 94//36 89//36 93//36 +f 95//37 89//37 91//37 +f 92//38 94//38 96//38 +f 98//15 99//15 97//15 +f 100//39 103//39 99//39 +f 103//13 102//13 101//13 +f 102//40 97//40 101//40 +f 103//41 97//41 99//41 +f 100//42 102//42 104//42 +f 26//13 28//13 27//13 +f 28//14 32//14 31//14 +f 32//15 30//15 29//15 +f 30//16 26//16 25//16 +f 31//17 29//17 25//17 +f 28//18 26//18 30//18 +f 34//19 36//19 35//19 +f 35//14 36//14 40//14 +f 40//20 38//20 37//20 +f 38//16 34//16 33//16 +f 39//21 37//21 33//21 +f 36//22 34//22 38//22 +f 42//23 44//23 43//23 +f 44//14 48//14 47//14 +f 48//24 46//24 45//24 +f 45//16 46//16 42//16 +f 47//25 45//25 41//25 +f 44//26 42//26 46//26 +f 50//13 52//13 51//13 +f 52//14 56//14 55//14 +f 56//15 54//15 53//15 +f 54//16 50//16 49//16 +f 55//17 53//17 49//17 +f 52//18 50//18 54//18 +f 59//17 60//17 58//17 +f 63//18 64//18 61//18 +f 59//14 61//14 64//14 +f 58//16 63//16 62//16 +f 60//15 64//15 63//15 +f 57//13 62//13 61//13 +f 67//17 68//17 66//17 +f 71//18 72//18 69//18 +f 68//15 72//15 71//15 +f 65//13 70//13 69//13 +f 67//14 69//14 72//14 +f 66//16 71//16 70//16 +f 74//27 76//27 75//27 +f 76//28 80//28 79//28 +f 79//29 80//29 78//29 +f 78//30 74//30 73//30 +f 75//31 79//31 77//31 +f 76//32 74//32 78//32 +f 82//27 84//27 83//27 +f 84//14 88//14 87//14 +f 88//29 86//29 85//29 +f 85//16 86//16 82//16 +f 87//33 85//33 81//33 +f 84//34 82//34 86//34 +f 90//15 92//15 91//15 +f 92//35 96//35 95//35 +f 96//13 94//13 93//13 +f 94//36 90//36 89//36 +f 95//37 93//37 89//37 +f 92//38 90//38 94//38 +f 98//15 100//15 99//15 +f 100//39 104//39 103//39 +f 103//13 104//13 102//13 +f 102//40 98//40 97//40 +f 103//41 101//41 97//41 +f 100//42 98//42 102//42 o Drillgon v -0.250000 0.500000 0.437500 v -0.250000 1.125000 0.437500 @@ -103,6 +451,31 @@ v 0.062500 0.687500 0.625000 v -0.062500 0.687500 0.625000 v 0.062500 0.500000 0.437500 v -0.062500 0.500000 0.437500 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.3162 -0.9487 +vn 0.9487 0.3162 -0.0000 +vn -0.0000 0.3162 0.9487 +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.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn -0.0000 1.0000 -0.0000 +vn -0.9487 -0.0000 -0.3162 +vn -0.0000 0.9487 -0.3162 +vn 0.9487 -0.0000 -0.3162 +vn -0.0000 -0.9487 -0.3162 +vn -0.0000 0.9487 0.3162 +vn -0.9487 -0.0000 0.3162 +vn 0.9487 -0.0000 0.3162 +vn -0.0000 -0.9487 0.3162 +vn -0.0000 0.7071 0.7071 +vn -0.0000 0.7071 -0.7071 vt 0.846154 0.540541 vt 0.576923 0.270270 vt 0.846154 0.270270 @@ -136,19 +509,6 @@ vt 0.961538 0.054054 vt 0.884615 0.000000 vt 0.961538 0.000000 vt 0.884615 0.054054 -vt 0.846154 0.270270 -vt 0.846154 0.054054 -vt 0.884615 0.270270 -vt 0.961538 0.324324 -vt 0.884615 0.324324 -vt 0.961538 0.270270 -vt 1.000000 0.054054 -vt 1.000000 0.270270 -vt 0.961538 0.054054 -vt 0.884615 0.000000 -vt 0.961538 0.000000 -vt 0.884615 0.054054 -vt 0.846154 0.270270 vt 0.846154 0.054054 vt 0.384615 1.000000 vt 0.384615 0.837838 @@ -158,61 +518,13 @@ vt 0.000000 0.837838 vt 0.576923 0.702703 vt 0.461538 0.837838 vt 0.461538 0.108108 -vt 0.384615 -0.000000 -vt 0.461538 -0.000000 vt 0.461538 -0.000000 vt 0.480769 0.081081 -vt 0.461538 0.108108 -vt 0.384615 -0.000000 vt 0.384615 0.108108 -vt 0.461538 -0.000000 -vt 0.480769 0.081081 -vt 0.461538 0.108108 -vt 0.384615 -0.000000 -vt 0.461538 0.108108 -vt 0.384615 0.108108 -vt 0.384615 -0.000000 -vt 0.384615 0.108108 -vt 0.384615 -0.000000 -vt 0.461538 0.108108 -vt 0.384615 0.108108 -vt 0.461538 -0.000000 -vt 0.480769 0.081081 -vt 0.461538 0.108108 -vt 0.384615 -0.000000 vt 0.480769 0.027027 vt 0.538462 0.108108 -vt 0.480769 0.081081 -vt 0.461538 0.108108 -vt 0.384615 -0.000000 -vt 0.461538 -0.000000 -vt 0.461538 0.108108 -vt 0.384615 0.000000 -vt 0.461538 -0.000000 -vt 0.461538 -0.000000 -vt 0.480769 0.081081 -vt 0.538462 0.108108 vt 0.615385 -0.000000 vt 0.615385 0.108108 -vt 0.480769 0.027027 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.081081 -vt 0.480769 0.081081 -vt 0.461538 -0.000000 -vt 0.480769 0.081081 -vt 0.615385 -0.000000 -vt 0.615385 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 -vt 0.480769 0.027027 -vt 0.538462 0.108108 vt 0.192308 0.162162 vt 0.153846 0.108108 vt 0.192308 0.108108 @@ -222,7 +534,6 @@ vt 0.115385 0.162162 vt 0.076923 0.108108 vt 0.115385 0.054054 vt 0.153846 0.054054 -vt 0.153846 0.216216 vt 0.961538 0.459459 vt 0.923077 0.540541 vt 0.923077 0.432432 @@ -236,21 +547,6 @@ vt 0.884615 0.432432 vt 0.923077 0.324324 vt 0.846154 0.459459 vt 0.846154 0.405405 -vt 0.884615 0.324324 -vt 0.961538 0.459459 -vt 0.923077 0.540541 -vt 0.923077 0.432432 -vt 1.000000 0.459459 -vt 0.961538 0.513514 -vt 1.000000 0.351351 -vt 0.961538 0.405405 -vt 0.961538 0.351351 -vt 0.884615 0.432432 -vt 0.923077 0.324324 -vt 0.884615 0.540541 -vt 0.846154 0.459459 -vt 0.846154 0.405405 -vt 0.884615 0.324324 vt 0.192308 0.216216 vt -0.000000 0.216216 vt 0.423077 0.216216 @@ -259,17 +555,6 @@ vt 0.192308 1.000000 vt 0.807692 0.837838 vt 0.115385 0.837838 vt 0.576923 0.837838 -vt 0.384615 0.108108 -vt 0.384615 0.108108 -vt 0.538462 -0.000000 -vt 0.384615 0.108108 -vt 0.384615 0.108108 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 -vt 0.538462 -0.000000 vt 0.538462 -0.000000 vt 0.076923 0.162162 vt 0.115385 0.216216 @@ -277,637 +562,158 @@ vt 1.000000 0.513514 vt 1.000000 0.405405 vt 0.846154 0.513514 vt 0.846154 0.351351 -vt 1.000000 0.513514 -vt 1.000000 0.405405 -vt 0.846154 0.513514 -vt 0.846154 0.351351 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.3162 -0.9487 -vn 0.9487 0.3162 0.0000 -vn 0.0000 0.3162 0.9487 -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.0000 -0.7071 -vn 0.7071 0.0000 -0.7071 -vn 0.7071 0.0000 0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.0000 1.0000 -0.0000 -vn -0.9487 0.0000 -0.3162 -vn 0.0000 0.9487 -0.3162 -vn 0.9487 0.0000 -0.3162 -vn 0.0000 -0.9487 -0.3162 -vn 0.0000 0.9487 0.3162 -vn -0.9487 0.0000 0.3162 -vn 0.9487 0.0000 0.3162 -vn 0.0000 -0.9487 0.3162 -vn 0.0000 0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 -s off -f 2/1/1 3/2/1 1/3/1 -f 4/4/2 7/5/2 3/2/2 -f 8/6/3 5/7/3 7/5/3 -f 6/8/4 1/9/4 5/7/4 -f 5/7/3 15/10/3 7/5/3 -f 4/4/5 11/11/5 8/6/5 -f 11/12/3 36/13/3 12/14/3 -f 8/6/6 12/14/6 6/8/6 -f 2/1/1 10/15/1 4/4/1 -f 2/16/7 12/17/7 9/18/7 -f 15/10/8 14/19/8 13/20/8 -f 1/9/9 16/21/9 5/7/9 -f 7/5/10 13/22/10 3/2/10 -f 3/2/1 14/23/1 1/3/1 -f 18/24/11 19/25/11 17/26/11 -f 20/27/12 23/28/12 19/29/12 -f 24/30/13 21/31/13 23/32/13 -f 22/33/14 17/34/14 21/35/14 -f 20/27/15 22/33/15 24/30/15 -f 26/36/14 27/37/14 25/38/14 -f 28/39/11 31/40/11 27/41/11 -f 32/42/12 29/43/12 31/44/12 -f 30/45/13 25/46/13 29/47/13 -f 28/39/15 30/45/15 32/42/15 -f 34/48/15 36/13/15 35/49/15 -f 9/50/1 34/51/1 10/15/1 -f 12/17/4 33/52/4 9/18/4 -f 10/53/2 35/54/2 11/11/2 -f 38/55/1 39/56/1 37/57/1 -f 42/58/4 56/59/4 41/60/4 -f 44/61/3 41/60/3 43/62/3 -f 38/63/4 55/64/4 42/65/4 -f 43/66/8 37/67/8 39/68/8 -f 40/69/15 42/65/15 44/70/15 -f 46/71/1 47/72/1 45/73/1 -f 51/74/2 64/75/2 52/76/2 -f 52/76/3 49/77/3 51/74/3 -f 53/78/16 58/79/16 54/80/16 -f 51/81/8 45/82/8 47/83/8 -f 48/84/15 50/85/15 52/86/15 -f 37/57/4 54/80/4 38/55/4 -f 41/87/4 53/88/4 37/67/4 -f 59/89/4 57/90/4 60/91/4 -f 54/92/17 59/89/17 55/64/17 -f 55/93/18 60/94/18 56/59/18 -f 56/95/19 57/96/19 53/88/19 -f 64/97/20 65/98/20 61/99/20 -f 47/83/2 63/100/2 51/81/2 -f 52/86/2 61/99/2 48/84/2 -f 48/101/2 62/102/2 47/72/2 -f 65/98/2 67/103/2 66/104/2 -f 61/105/21 66/106/21 62/102/21 -f 63/107/22 68/108/22 64/75/22 -f 62/109/23 67/110/23 63/100/23 -f 72/111/2 75/112/2 71/113/2 -f 76/114/3 73/115/3 75/112/3 -f 74/116/4 69/117/4 73/115/4 -f 75/112/8 69/118/8 71/119/8 -f 72/120/15 74/116/15 76/114/15 -f 84/121/1 86/122/1 88/123/1 -f 83/124/9 81/125/9 84/121/9 -f 79/126/24 84/127/24 78/128/24 -f 87/129/25 88/123/25 86/122/25 -f 89/130/10 90/131/10 88/123/10 -f 87/129/3 83/132/3 89/130/3 -f 90/131/1 84/127/1 88/123/1 -f 83/133/3 91/134/3 89/130/3 -f 96/135/3 97/136/3 99/137/3 -f 95/138/10 94/139/10 96/135/10 -f 92/140/25 96/141/25 77/142/25 -f 97/136/24 100/143/24 99/137/24 -f 100/143/9 101/144/9 99/137/9 -f 98/145/1 95/146/1 100/143/1 -f 101/144/3 96/141/3 99/137/3 -f 95/147/1 102/148/1 100/143/1 -f 2/1/1 4/4/1 3/2/1 -f 4/4/2 8/6/2 7/5/2 -f 8/6/3 6/8/3 5/7/3 -f 6/8/4 2/16/4 1/9/4 -f 5/7/3 16/149/3 15/10/3 -f 4/4/5 10/53/5 11/11/5 -f 11/12/3 35/49/3 36/13/3 -f 8/6/6 11/12/6 12/14/6 -f 2/1/1 9/50/1 10/15/1 -f 2/16/7 6/8/7 12/17/7 -f 15/10/8 16/149/8 14/19/8 -f 1/9/9 14/150/9 16/21/9 -f 7/5/10 15/151/10 13/22/10 -f 3/2/1 13/152/1 14/23/1 -f 18/24/11 20/27/11 19/25/11 -f 20/27/12 24/30/12 23/28/12 -f 24/30/13 22/33/13 21/31/13 -f 22/33/14 18/24/14 17/34/14 -f 20/27/15 18/24/15 22/33/15 -f 26/36/14 28/39/14 27/37/14 -f 28/39/11 32/42/11 31/40/11 -f 32/42/12 30/45/12 29/43/12 -f 30/45/13 26/36/13 25/46/13 -f 28/39/15 26/36/15 30/45/15 -f 34/48/15 33/153/15 36/13/15 -f 9/50/1 33/154/1 34/51/1 -f 12/17/4 36/155/4 33/52/4 -f 10/53/2 34/156/2 35/54/2 -f 38/55/1 40/157/1 39/56/1 -f 42/58/4 55/93/4 56/59/4 -f 44/61/3 42/58/3 41/60/3 -f 38/63/4 54/92/4 55/64/4 -f 43/66/8 41/87/8 37/67/8 -f 40/69/15 38/63/15 42/65/15 -f 46/71/1 48/101/1 47/72/1 -f 51/74/2 63/107/2 64/75/2 -f 52/76/3 50/158/3 49/77/3 -f 53/78/16 57/159/16 58/79/16 -f 51/81/8 49/160/8 45/82/8 -f 48/84/15 46/161/15 50/85/15 -f 37/57/4 53/78/4 54/80/4 -f 41/87/4 56/95/4 53/88/4 -f 59/89/4 58/162/4 57/90/4 -f 54/92/17 58/162/17 59/89/17 -f 55/93/18 59/163/18 60/94/18 -f 56/95/19 60/164/19 57/96/19 -f 64/97/20 68/165/20 65/98/20 -f 47/83/2 62/109/2 63/100/2 -f 52/86/2 64/97/2 61/99/2 -f 48/101/2 61/105/2 62/102/2 -f 65/98/2 68/165/2 67/103/2 -f 61/105/21 65/166/21 66/106/21 -f 63/107/22 67/167/22 68/108/22 -f 62/109/23 66/168/23 67/110/23 -f 72/111/2 76/114/2 75/112/2 -f 76/114/3 74/116/3 73/115/3 -f 74/116/4 70/169/4 69/117/4 -f 75/112/8 73/115/8 69/118/8 -f 72/120/15 70/170/15 74/116/15 -f 84/121/1 81/125/1 86/122/1 -f 83/124/9 80/171/9 81/125/9 -f 79/126/24 83/172/24 84/127/24 -f 87/129/25 89/130/25 88/123/25 -f 89/130/10 91/134/10 90/131/10 -f 87/129/3 80/173/3 83/132/3 -f 90/131/1 78/128/1 84/127/1 -f 83/133/3 79/174/3 91/134/3 -f 96/135/3 94/139/3 97/136/3 -f 95/138/10 93/175/10 94/139/10 -f 92/140/25 95/176/25 96/141/25 -f 97/136/24 98/145/24 100/143/24 -f 100/143/9 102/148/9 101/144/9 -f 98/145/1 93/177/1 95/146/1 -f 101/144/3 77/142/3 96/141/3 -f 95/147/1 92/178/1 102/148/1 -l 82 85 -o Cube -v 0.045753 0.237741 0.312500 -v 0.045753 0.737741 0.312500 -v 0.045753 0.237741 0.062500 -v 0.045753 0.737741 0.062500 -v 0.295753 0.237741 0.312500 -v 0.295753 0.737741 0.312500 -v 0.295753 0.237741 0.062500 -v 0.295753 0.737741 0.062500 -v -0.291506 0.316987 -0.062500 -v -0.041506 0.750000 -0.062500 -v -0.291506 0.316987 -0.312500 -v -0.041506 0.750000 -0.312500 -v -0.075000 0.191987 -0.062500 -v 0.175000 0.625000 -0.062500 -v -0.075000 0.191987 -0.312500 -v 0.175000 0.625000 -0.312500 -v 0.079247 0.612741 0.312500 -v -0.170753 1.045753 0.312500 -v 0.079247 0.612741 0.062500 -v -0.170753 1.045753 0.062500 -v 0.295753 0.737741 0.312500 -v 0.045753 1.170753 0.312500 -v 0.295753 0.737741 0.062500 -v 0.045753 1.170753 0.062500 -v -0.075000 0.625000 -0.062500 -v -0.075000 1.125000 -0.062500 -v -0.075000 0.625000 -0.312500 -v -0.075000 1.125000 -0.312500 -v 0.175000 0.625000 -0.062500 -v 0.175000 1.125000 -0.062500 -v 0.175000 0.625000 -0.312500 -v 0.175000 1.125000 -0.312500 -v -0.125000 1.000000 0.250000 -v 0.125000 1.000000 0.250000 -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -v -0.125000 1.250000 -0.250000 -v -0.125000 1.250000 0.250000 -v 0.125000 1.250000 0.250000 -v 0.125000 1.250000 -0.250000 -v -0.187500 1.250000 0.375000 -v 0.187500 1.250000 0.375000 -v -0.187500 1.250000 -0.375000 -v 0.187500 1.250000 -0.375000 -v -0.187500 1.750000 -0.375000 -v -0.187500 1.750000 0.375000 -v 0.187500 1.750000 0.375000 -v 0.187500 1.750000 -0.375000 -v 0.232576 1.266670 -0.066987 -v 0.041065 1.427367 -0.500000 -v 0.398429 1.127502 -0.191987 -v 0.206918 1.288199 -0.625000 -v 0.393273 1.458181 -0.066987 -v 0.201762 1.618878 -0.500000 -v 0.559126 1.319013 -0.191987 -v 0.367615 1.479710 -0.625000 -v 0.206918 1.288199 -0.375000 -v -0.176104 1.609593 -0.375000 -v 0.206918 1.288199 -0.625000 -v -0.176104 1.609593 -0.625000 -v 0.367615 1.479710 -0.375000 -v -0.015407 1.801104 -0.375000 -v 0.367615 1.479710 -0.625000 -v -0.015407 1.801104 -0.625000 -v 0.125000 1.871693 0.950891 -v 0.125000 1.438680 0.700891 -v 0.125000 1.996693 0.734384 -v 0.125000 1.563680 0.484384 -v -0.125000 1.871693 0.950891 -v -0.125000 1.438680 0.700891 -v -0.125000 1.996693 0.734384 -v -0.125000 1.563680 0.484384 -v 0.125000 1.438680 0.700891 -v 0.125000 1.525504 0.208487 -v 0.125000 1.684882 0.744303 -v 0.125000 1.771706 0.251899 -v -0.125000 1.438680 0.700891 -v -0.125000 1.525504 0.208487 -v -0.125000 1.684882 0.744303 -v -0.125000 1.771706 0.251899 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.8660 0.5000 0.0000 -vn 0.8660 -0.5000 0.0000 -vn -0.5000 -0.8660 0.0000 -vn 0.5000 0.8660 0.0000 -vn -0.8660 -0.5000 0.0000 -vn 0.8660 0.5000 0.0000 -vn 0.5000 -0.8660 0.0000 -vn -0.5000 0.8660 0.0000 -vn -0.6428 -0.7660 0.0000 -vn 0.6634 -0.5567 -0.5000 -vn 0.6428 0.7660 -0.0000 -vn -0.6634 0.5567 0.5000 -vn 0.3830 -0.3214 0.8660 -vn -0.3830 0.3214 -0.8660 -vn 0.7660 -0.6428 0.0000 -vn -0.7660 0.6428 0.0000 -vn 0.0000 0.5000 -0.8660 -vn 0.0000 -0.5000 0.8660 -vn 0.0000 0.8660 0.5000 -vn 0.0000 -0.8660 -0.5000 -vn 0.0000 0.9848 0.1736 -vn 0.0000 -0.9848 -0.1736 -vn 0.0000 -0.1736 0.9848 -vn 0.0000 0.1736 -0.9848 -s off -f 104//26 105//26 103//26 -f 106//27 109//27 105//27 -f 110//28 107//28 109//28 -f 108//29 103//29 107//29 -f 109//30 103//30 105//30 -f 106//31 108//31 110//31 -f 112//32 113//32 111//32 -f 113//27 118//27 117//27 -f 118//33 115//33 117//33 -f 116//29 111//29 115//29 -f 117//34 111//34 113//34 -f 114//35 116//35 118//35 -f 120//36 121//36 119//36 -f 122//27 125//27 121//27 -f 126//37 123//37 125//37 -f 123//29 120//29 119//29 -f 125//38 119//38 121//38 -f 122//39 124//39 126//39 -f 128//26 129//26 127//26 -f 130//27 133//27 129//27 -f 134//28 131//28 133//28 -f 132//29 127//29 131//29 -f 133//30 127//30 129//30 -f 130//31 132//31 134//31 -f 137//30 136//30 135//30 -f 141//31 139//31 140//31 -f 137//27 142//27 138//27 -f 136//29 140//29 135//29 -f 138//28 141//28 136//28 -f 135//26 139//26 137//26 -f 145//30 144//30 143//30 -f 149//31 147//31 148//31 -f 146//28 149//28 144//28 -f 143//26 147//26 145//26 -f 145//27 150//27 146//27 -f 144//29 148//29 143//29 -f 152//40 153//40 151//40 -f 154//41 157//41 153//41 -f 157//42 156//42 155//42 -f 156//43 151//43 155//43 -f 153//44 155//44 151//44 -f 154//45 156//45 158//45 -f 160//40 161//40 159//40 -f 162//27 165//27 161//27 -f 166//42 163//42 165//42 -f 163//29 160//29 159//29 -f 165//46 159//46 161//46 -f 162//47 164//47 166//47 -f 168//28 169//28 167//28 -f 170//48 173//48 169//48 -f 174//26 171//26 173//26 -f 172//49 167//49 171//49 -f 173//50 167//50 169//50 -f 170//51 172//51 174//51 -f 176//28 177//28 175//28 -f 178//52 181//52 177//52 -f 181//26 180//26 179//26 -f 180//53 175//53 179//53 -f 181//54 175//54 177//54 -f 178//55 180//55 182//55 -f 104//26 106//26 105//26 -f 106//27 110//27 109//27 -f 110//28 108//28 107//28 -f 108//29 104//29 103//29 -f 109//30 107//30 103//30 -f 106//31 104//31 108//31 -f 112//32 114//32 113//32 -f 113//27 114//27 118//27 -f 118//33 116//33 115//33 -f 116//29 112//29 111//29 -f 117//34 115//34 111//34 -f 114//35 112//35 116//35 -f 120//36 122//36 121//36 -f 122//27 126//27 125//27 -f 126//37 124//37 123//37 -f 123//29 124//29 120//29 -f 125//38 123//38 119//38 -f 122//39 120//39 124//39 -f 128//26 130//26 129//26 -f 130//27 134//27 133//27 -f 134//28 132//28 131//28 -f 132//29 128//29 127//29 -f 133//30 131//30 127//30 -f 130//31 128//31 132//31 -f 137//30 138//30 136//30 -f 141//31 142//31 139//31 -f 137//27 139//27 142//27 -f 136//29 141//29 140//29 -f 138//28 142//28 141//28 -f 135//26 140//26 139//26 -f 145//30 146//30 144//30 -f 149//31 150//31 147//31 -f 146//28 150//28 149//28 -f 143//26 148//26 147//26 -f 145//27 147//27 150//27 -f 144//29 149//29 148//29 -f 152//40 154//40 153//40 -f 154//41 158//41 157//41 -f 157//42 158//42 156//42 -f 156//43 152//43 151//43 -f 153//44 157//44 155//44 -f 154//45 152//45 156//45 -f 160//40 162//40 161//40 -f 162//27 166//27 165//27 -f 166//42 164//42 163//42 -f 163//29 164//29 160//29 -f 165//46 163//46 159//46 -f 162//47 160//47 164//47 -f 168//28 170//28 169//28 -f 170//48 174//48 173//48 -f 174//26 172//26 171//26 -f 172//49 168//49 167//49 -f 173//50 171//50 167//50 -f 170//51 168//51 172//51 -f 176//28 178//28 177//28 -f 178//52 182//52 181//52 -f 181//26 182//26 180//26 -f 180//53 176//53 175//53 -f 181//54 179//54 175//54 -f 178//55 176//55 180//55 -o FumoHead -v -0.250000 0.750000 -0.250000 -v -0.250000 0.750000 0.250000 -v 0.250000 0.750000 0.250000 -v 0.250000 0.750000 -0.250000 -v -0.250000 1.250000 -0.250000 -v -0.250000 1.250000 0.250000 -v 0.250000 1.250000 0.250000 -v 0.250000 1.250000 -0.250000 -v -0.281250 0.718750 -0.281250 -v -0.281250 0.718750 0.281250 -v 0.281250 0.718750 0.281250 -v 0.281250 0.718750 -0.281250 -v -0.281250 1.281250 -0.281250 -v -0.281250 1.281250 0.281250 -v 0.281250 1.281250 0.281250 -v 0.281250 1.281250 -0.281250 -v -0.281250 1.093750 -0.281250 -v -0.281250 1.093750 0.281250 -v 0.281250 1.093750 0.281250 -v 0.281250 1.093750 -0.281250 -v -0.218750 1.093750 -0.468750 -v 0.218750 1.093750 -0.468750 -v -0.218750 1.093750 0.468750 -v 0.218750 1.093750 0.468750 -v 0.468750 1.093750 0.218750 -v 0.468750 1.093750 -0.218750 -v -0.468750 1.093750 -0.218750 -v -0.468750 1.093750 0.218750 -v -0.281250 1.156250 0.281250 -v 0.281250 1.156250 0.281250 -v 0.281250 1.156250 -0.281250 -v -0.281250 1.156250 -0.281250 -v 0.218750 1.156250 -0.468750 -v -0.218750 1.156250 -0.468750 -v -0.218750 1.156250 0.468750 -v 0.218750 1.156250 0.468750 -v 0.468750 1.156250 0.218750 -v 0.468750 1.156250 -0.218750 -v -0.468750 1.156250 -0.218750 -v -0.468750 1.156250 0.218750 -v 0.156250 1.156250 -0.281250 -v 0.093750 1.156250 -0.406250 -v 0.093750 1.281250 -0.406250 -v 0.156250 1.218750 -0.281250 -v 0.156250 1.156250 -0.281250 -v 0.218750 1.156250 -0.406250 -v 0.218750 1.281250 -0.406250 -v 0.156250 1.218750 -0.281250 -vt 0.375000 0.750000 -vt 0.250000 1.000000 -vt 0.250000 0.750000 -vt 0.125000 0.750000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 0.750000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt -0.000000 0.750000 -vt -0.000000 0.500000 -vt 0.500000 0.500000 -vt 0.375000 0.750000 -vt 0.875000 0.750000 -vt 0.750000 1.000000 -vt 0.750000 0.750000 -vt 0.625000 0.750000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 0.750000 -vt 0.750000 0.500000 -vt 0.625000 0.500000 -vt 0.500000 0.750000 -vt 0.500000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.750000 -vt 0.734375 0.343750 -vt 0.625000 0.250000 -vt 0.750000 0.250000 -vt 0.734375 0.343750 -vt 0.625000 0.250000 -vt 0.750000 0.250000 -vt 0.734375 0.343750 -vt 0.625000 0.250000 -vt 0.750000 0.250000 -vt 0.734375 0.343750 -vt 0.625000 0.250000 -vt 0.750000 0.250000 -vt 0.796875 0.218750 -vt 0.796875 0.218750 -vt 0.796875 0.218750 -vt 0.796875 0.218750 -vt 0.625000 0.468750 -vt 0.734375 0.375000 -vt 0.750000 0.468750 -vt 0.625000 0.468750 -vt 0.734375 0.375000 -vt 0.750000 0.468750 -vt 0.625000 0.468750 -vt 0.734375 0.375000 -vt 0.750000 0.468750 -vt 0.625000 0.468750 -vt 0.734375 0.375000 -vt 0.750000 0.468750 -vt 0.796875 0.500000 -vt 0.796875 0.500000 -vt 0.796875 0.500000 -vt 0.796875 0.500000 -vt 0.640625 0.375000 -vt 0.640625 0.343750 -vt 0.640625 0.375000 -vt 0.640625 0.343750 -vt 0.796875 0.343750 -vt 0.796875 0.343750 -vt 0.796875 0.343750 -vt 0.640625 0.375000 -vt 0.640625 0.343750 -vt 0.640625 0.375000 -vt 0.640625 0.343750 -vt 0.796875 0.343750 -vt 0.656250 0.187500 -vt 0.625000 0.218750 -vt 0.625000 0.187500 -vt 0.656250 0.187500 -vt 0.625000 0.218750 -vt 0.625000 0.187500 -vt 0.375000 1.000000 -vt 0.500000 0.750000 -vt 0.875000 1.000000 -vt 1.000000 0.750000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.656250 0.250000 -vt 0.656250 0.250000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.7071 0.0000 0.7071 -vn 0.8944 0.0000 0.4472 -vn 0.8944 0.0000 -0.4472 -s off -f 183/179/56 185/180/56 184/181/56 -f 189/182/57 187/183/57 188/184/57 -f 183/185/58 190/186/58 186/187/58 -f 185/188/59 188/189/59 184/190/59 -f 186/187/60 189/182/60 185/188/60 -f 184/191/61 187/192/61 183/185/61 -f 191/193/56 193/194/56 192/195/56 -f 197/196/57 195/197/57 196/198/57 -f 191/199/58 198/200/58 194/201/58 -f 193/202/59 196/203/59 192/204/59 -f 194/201/60 197/196/60 193/202/60 -f 192/205/61 195/206/61 191/199/61 -f 203/207/56 202/208/56 199/209/56 -f 206/210/56 200/211/56 201/212/56 -f 208/213/56 201/214/56 202/215/56 -f 210/216/56 199/217/56 200/218/56 -f 200/218/56 205/219/56 210/216/56 -f 201/212/56 207/220/56 206/210/56 -f 202/215/56 204/221/56 208/213/56 -f 199/209/56 209/222/56 203/207/56 -f 213/223/57 216/224/57 214/225/57 -f 211/226/57 218/227/57 212/228/57 -f 212/229/57 220/230/57 213/231/57 -f 214/232/57 222/233/57 211/234/57 -f 211/234/57 222/233/57 217/235/57 -f 212/228/57 218/227/57 219/236/57 -f 213/231/57 220/230/57 215/237/57 -f 214/225/57 216/224/57 221/238/57 -f 206/210/59 217/239/59 205/240/59 -f 203/207/58 215/241/58 204/242/58 -f 204/243/62 220/230/62 208/213/62 -f 209/244/63 216/224/63 203/207/63 -f 205/245/64 222/233/64 210/216/64 -f 210/216/61 221/246/61 209/247/61 -f 208/213/60 219/248/60 207/249/60 -f 207/250/65 218/227/65 206/210/65 -f 228/251/66 230/252/66 227/253/66 -f 224/254/67 226/255/67 223/256/67 -f 183/179/56 186/257/56 185/180/56 -f 189/182/57 190/186/57 187/183/57 -f 183/185/58 187/192/58 190/186/58 -f 185/188/59 189/182/59 188/189/59 -f 186/187/60 190/186/60 189/182/60 -f 184/191/61 188/258/61 187/192/61 -f 191/193/56 194/259/56 193/194/56 -f 197/196/57 198/200/57 195/197/57 -f 191/199/58 195/206/58 198/200/58 -f 193/202/59 197/196/59 196/203/59 -f 194/201/60 198/200/60 197/196/60 -f 192/205/61 196/260/61 195/206/61 -f 203/207/56 204/242/56 202/208/56 -f 206/210/56 205/240/56 200/211/56 -f 208/213/56 207/249/56 201/214/56 -f 210/216/56 209/247/56 199/217/56 -f 213/223/57 215/241/57 216/224/57 -f 211/226/57 217/239/57 218/227/57 -f 212/229/57 219/248/57 220/230/57 -f 214/232/57 221/246/57 222/233/57 -f 206/210/59 218/227/59 217/239/59 -f 203/207/58 216/224/58 215/241/58 -f 204/243/62 215/261/62 220/230/62 -f 209/244/63 221/262/63 216/224/63 -f 205/245/64 217/263/64 222/233/64 -f 210/216/61 222/233/61 221/246/61 -f 208/213/60 220/230/60 219/248/60 -f 207/250/65 219/264/65 218/227/65 -f 228/251/66 229/265/66 230/252/66 -f 224/254/67 225/266/67 226/255/67 +s 0 +f 106/41/43 107/42/43 105/43/43 +f 108/44/44 111/45/44 107/42/44 +f 112/46/45 109/47/45 111/45/45 +f 110/48/46 105/49/46 109/47/46 +f 109/47/45 119/50/45 111/45/45 +f 108/44/47 115/51/47 112/46/47 +f 115/52/45 140/53/45 116/54/45 +f 112/46/48 116/54/48 110/48/48 +f 106/41/43 114/55/43 108/44/43 +f 106/56/49 116/57/49 113/58/49 +f 119/50/50 118/59/50 117/60/50 +f 105/49/51 120/61/51 109/47/51 +f 111/45/52 117/62/52 107/42/52 +f 107/42/43 118/63/43 105/43/43 +f 122/64/53 123/65/53 121/66/53 +f 124/67/54 127/68/54 123/69/54 +f 128/70/55 125/71/55 127/72/55 +f 126/73/56 121/43/56 125/74/56 +f 124/67/57 126/73/57 128/70/57 +f 130/64/56 131/65/56 129/66/56 +f 132/67/53 135/68/53 131/69/53 +f 136/70/54 133/71/54 135/72/54 +f 134/73/55 129/43/55 133/74/55 +f 132/67/57 134/73/57 136/70/57 +f 138/75/57 140/53/57 139/76/57 +f 113/77/43 138/78/43 114/55/43 +f 116/57/46 137/79/46 113/58/46 +f 114/80/44 139/81/44 115/51/44 +f 142/82/43 143/60/43 141/83/43 +f 146/83/46 160/84/46 145/82/46 +f 148/60/45 145/82/45 147/85/45 +f 142/83/46 159/84/46 146/82/46 +f 147/60/50 141/82/50 143/85/50 +f 144/60/57 146/82/57 148/85/57 +f 150/60/43 151/82/43 149/85/43 +f 155/83/44 168/84/44 156/82/44 +f 156/82/45 153/60/45 155/83/45 +f 157/86/58 162/87/58 158/84/58 +f 155/82/50 149/60/50 151/83/50 +f 152/82/57 154/60/57 156/83/57 +f 141/83/46 158/84/46 142/82/46 +f 145/83/46 157/84/46 141/82/46 +f 163/87/46 161/88/46 164/89/46 +f 158/86/59 163/87/59 159/84/59 +f 159/86/60 164/87/60 160/84/60 +f 160/86/61 161/87/61 157/84/61 +f 168/86/62 169/87/62 165/84/62 +f 151/83/44 167/84/44 155/82/44 +f 156/83/44 165/84/44 152/82/44 +f 152/83/44 166/84/44 151/82/44 +f 169/87/44 171/88/44 170/89/44 +f 165/86/63 170/87/63 166/84/63 +f 167/86/64 172/87/64 168/84/64 +f 166/86/65 171/87/65 167/84/65 +f 176/90/44 179/91/44 175/92/44 +f 180/93/45 177/94/45 179/91/45 +f 178/95/46 173/96/46 177/94/46 +f 179/91/50 173/97/50 175/98/50 +f 176/61/57 178/95/57 180/93/57 +f 188/99/43 190/100/43 192/101/43 +f 187/102/51 185/103/51 188/99/51 +f 183/104/66 188/105/66 182/106/66 +f 191/107/67 192/101/67 190/100/67 +f 193/108/52 194/109/52 192/101/52 +f 191/107/45 187/110/45 193/108/45 +f 194/109/43 188/105/43 192/101/43 +f 187/111/45 195/66/45 193/108/45 +f 200/99/45 201/100/45 203/101/45 +f 199/102/52 198/103/52 200/99/52 +f 196/104/67 200/105/67 181/106/67 +f 201/100/66 204/108/66 203/101/66 +f 204/108/51 205/109/51 203/101/51 +f 202/107/43 199/110/43 204/108/43 +f 205/109/45 200/105/45 203/101/45 +f 199/111/43 206/66/43 204/108/43 +f 106/41/43 108/44/43 107/42/43 +f 108/44/44 112/46/44 111/45/44 +f 112/46/45 110/48/45 109/47/45 +f 110/48/46 106/56/46 105/49/46 +f 109/47/45 120/112/45 119/50/45 +f 108/44/47 114/80/47 115/51/47 +f 115/52/45 139/76/45 140/53/45 +f 112/46/48 115/52/48 116/54/48 +f 106/41/43 113/77/43 114/55/43 +f 106/56/49 110/48/49 116/57/49 +f 119/50/50 120/112/50 118/59/50 +f 105/49/51 118/113/51 120/61/51 +f 111/45/52 119/114/52 117/62/52 +f 107/42/43 117/115/43 118/63/43 +f 122/64/53 124/67/53 123/65/53 +f 124/67/54 128/70/54 127/68/54 +f 128/70/55 126/73/55 125/71/55 +f 126/73/56 122/64/56 121/43/56 +f 124/67/57 122/64/57 126/73/57 +f 130/64/56 132/67/56 131/65/56 +f 132/67/53 136/70/53 135/68/53 +f 136/70/54 134/73/54 133/71/54 +f 134/73/55 130/64/55 129/43/55 +f 132/67/57 130/64/57 134/73/57 +f 138/75/57 137/116/57 140/53/57 +f 113/77/43 137/117/43 138/78/43 +f 116/57/46 140/118/46 137/79/46 +f 114/80/44 138/119/44 139/81/44 +f 142/82/43 144/85/43 143/60/43 +f 146/83/46 159/86/46 160/84/46 +f 148/60/45 146/83/45 145/82/45 +f 142/83/46 158/86/46 159/84/46 +f 147/60/50 145/83/50 141/82/50 +f 144/60/57 142/83/57 146/82/57 +f 150/60/43 152/83/43 151/82/43 +f 155/83/44 167/86/44 168/84/44 +f 156/82/45 154/85/45 153/60/45 +f 157/86/58 161/120/58 162/87/58 +f 155/82/50 153/85/50 149/60/50 +f 152/82/57 150/85/57 154/60/57 +f 141/83/46 157/86/46 158/84/46 +f 145/83/46 160/86/46 157/84/46 +f 163/87/46 162/120/46 161/88/46 +f 158/86/59 162/120/59 163/87/59 +f 159/86/60 163/120/60 164/87/60 +f 160/86/61 164/120/61 161/87/61 +f 168/86/62 172/120/62 169/87/62 +f 151/83/44 166/86/44 167/84/44 +f 156/83/44 168/86/44 165/84/44 +f 152/83/44 165/86/44 166/84/44 +f 169/87/44 172/120/44 171/88/44 +f 165/86/63 169/120/63 170/87/63 +f 167/86/64 171/120/64 172/87/64 +f 166/86/65 170/120/65 171/87/65 +f 176/90/44 180/93/44 179/91/44 +f 180/93/45 178/95/45 177/94/45 +f 178/95/46 174/121/46 173/96/46 +f 179/91/50 177/94/50 173/97/50 +f 176/61/57 174/122/57 178/95/57 +f 188/99/43 185/103/43 190/100/43 +f 187/102/51 184/123/51 185/103/51 +f 183/104/66 187/124/66 188/105/66 +f 191/107/67 193/108/67 192/101/67 +f 193/108/52 195/66/52 194/109/52 +f 191/107/45 184/125/45 187/110/45 +f 194/109/43 182/106/43 188/105/43 +f 187/111/45 183/126/45 195/66/45 +f 200/99/45 198/103/45 201/100/45 +f 199/102/52 197/123/52 198/103/52 +f 196/104/67 199/124/67 200/105/67 +f 201/100/66 202/107/66 204/108/66 +f 204/108/51 206/66/51 205/109/51 +f 202/107/43 197/125/43 199/110/43 +f 205/109/45 181/106/45 200/105/45 +f 199/111/43 196/126/43 206/66/43 +l 186 189 o Fumo v -0.390165 0.375000 -0.213388 v -0.213388 0.375000 -0.390165 @@ -1029,6 +835,44 @@ v -0.070312 0.669481 -0.463916 v -0.070312 0.533647 -0.427519 v 0.070312 0.533647 -0.427519 v 0.070312 0.669481 -0.463916 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.2588 0.9659 +vn 0.2588 -0.0000 -0.9659 +vn 0.9659 -0.0000 -0.2588 +vn -0.2588 -0.0000 -0.9659 +vn -0.9659 -0.0000 -0.2588 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 0.8944 0.4472 +vn -0.4472 0.8944 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.2588 -0.0000 0.9659 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.4472 0.8944 -0.0000 +vn 0.9659 -0.0000 0.2588 +vn 0.3162 0.8944 0.3162 +vn -0.0000 0.8944 -0.4472 +vn -0.3162 0.8944 -0.3162 +vn 0.3162 0.8944 -0.3162 +vn -0.3162 0.8944 0.3162 +vn -0.0000 0.2588 -0.9659 +vn 0.3162 -0.8944 0.3162 +vn -0.0000 -0.8944 0.4472 +vn -0.0000 0.9659 0.2588 +vn -0.0000 -0.9659 -0.2588 +vn -0.0000 -0.2588 0.9659 +vn -0.3162 -0.8944 -0.3162 +vn -0.4472 -0.8944 -0.0000 +vn 0.4472 -0.8944 -0.0000 +vn -0.0000 -0.8944 -0.4472 +vn -0.9659 -0.0000 0.2588 +vn 0.2588 -0.0000 0.9659 +vn 0.3162 -0.8944 -0.3162 +vn -0.3162 -0.8944 0.3162 +vn -0.0000 0.9659 -0.2588 +vn -0.0000 -0.9659 0.2588 +vn -0.0000 -0.2588 -0.9659 vt 0.343750 0.437500 vt 0.312500 0.281250 vt 0.312500 0.437500 @@ -1038,13 +882,10 @@ vt 0.281250 0.500000 vt 0.562500 0.187500 vt 0.593750 0.437500 vt 0.562500 0.437500 -vt 0.562500 0.437500 vt 0.593750 0.500000 -vt 0.593750 0.437500 vt 0.531250 0.437500 vt 0.500000 0.187500 vt 0.500000 0.437500 -vt 0.531250 0.437500 vt 0.562500 0.500000 vt 0.531250 0.500000 vt 0.593750 0.187500 @@ -1053,83 +894,25 @@ vt 0.796875 0.375000 vt 0.859375 0.500000 vt 0.796875 0.500000 vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.796875 0.375000 vt 0.531250 0.187500 -vt 0.500000 0.187500 -vt 0.500000 0.437500 vt 0.125000 0.375000 vt 0.187500 0.500000 vt 0.125000 0.500000 vt 0.062500 0.375000 -vt 0.125000 0.500000 vt 0.062500 0.500000 vt 0.125000 0.187500 vt 0.062500 0.187500 vt 0.250000 0.187500 vt 0.187500 0.375000 vt 0.187500 0.187500 -vt 0.125000 0.375000 vt -0.000000 0.375000 vt -0.000000 0.187500 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.593750 0.500000 -vt 0.562500 0.437500 -vt 0.593750 0.437500 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.859375 0.500000 -vt 0.796875 0.375000 -vt 0.859375 0.375000 -vt 0.562500 0.187500 -vt 0.531250 0.187500 -vt 0.593750 0.437500 vt 0.625000 0.187500 -vt 0.593750 0.187500 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.859375 0.500000 -vt 0.796875 0.375000 -vt 0.859375 0.375000 -vt 0.281250 0.437500 -vt 0.312500 0.500000 -vt 0.281250 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.859375 0.500000 -vt 0.796875 0.375000 -vt 0.796875 0.500000 -vt 0.312500 0.281250 -vt 0.343750 0.437500 -vt 0.312500 0.437500 vt 0.281250 0.281250 vt 0.343750 0.281250 vt 0.375000 0.437500 -vt 0.343750 0.437500 -vt 0.312500 0.500000 -vt 0.312500 0.437500 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.375000 vt 0.250000 0.281250 vt 0.250000 0.437500 -vt 0.796875 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.375000 vt 0.406250 0.437500 vt 0.437500 0.500000 vt 0.406250 0.500000 @@ -1137,304 +920,872 @@ vt 0.437500 0.437500 vt 0.468750 0.281250 vt 0.468750 0.437500 vt 0.406250 0.281250 -vt 0.500000 0.437500 -vt 0.468750 0.437500 -vt 0.437500 0.500000 -vt 0.437500 0.437500 vt 0.375000 0.281250 -vt 0.375000 0.437500 -vt 0.562500 0.500000 -vt 0.531250 0.500000 -vt 0.562500 0.437500 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.859375 0.375000 -vt 0.796875 0.500000 -vt 0.859375 0.500000 -vt 0.281250 0.281250 -vt 0.375000 0.437500 -vt 0.343750 0.281250 -vt 0.312500 0.500000 -vt 0.343750 0.437500 -vt 0.312500 0.437500 -vt 0.250000 0.437500 -vt 0.250000 0.281250 -vt 0.437500 0.500000 -vt 0.406250 0.437500 -vt 0.406250 0.500000 -vt 0.437500 0.437500 -vt 0.468750 0.281250 vt 0.437500 0.281250 -vt 0.406250 0.281250 -vt 0.500000 0.437500 -vt 0.468750 0.437500 -vt 0.437500 0.500000 -vt 0.468750 0.437500 -vt 0.437500 0.437500 -vt 0.375000 0.281250 -vt 0.375000 0.437500 -vt 0.562500 0.500000 -vt 0.625000 0.187500 -vt 0.859375 0.375000 -vt 0.859375 0.500000 -vt 0.187500 0.375000 vt 0.250000 0.375000 -vt 0.796875 0.375000 -vt 0.562500 0.500000 -vt 0.796875 0.375000 -vt 0.796875 0.500000 -vt 0.625000 0.437500 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.796875 0.500000 -vt 0.796875 0.375000 -vt 0.859375 0.375000 -vt 0.375000 0.281250 -vt 0.343750 0.500000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.859375 0.500000 -vt 0.859375 0.500000 -vt 0.437500 0.281250 -vt 0.500000 0.281250 -vt 0.468750 0.500000 -vt 0.796875 0.375000 -vt 0.796875 0.375000 -vt 0.375000 0.281250 vt 0.343750 0.500000 vt 0.500000 0.281250 vt 0.468750 0.500000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.2588 0.9659 -vn 0.2588 0.0000 -0.9659 -vn 0.9659 0.0000 -0.2588 -vn -0.2588 0.0000 -0.9659 -vn -0.9659 0.0000 -0.2588 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 0.8944 0.4472 -vn -0.4472 0.8944 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.2588 0.0000 0.9659 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 0.4472 0.8944 0.0000 -vn 0.9659 0.0000 0.2588 -vn 0.3162 0.8944 0.3162 -vn 0.0000 0.8944 -0.4472 -vn -0.3162 0.8944 -0.3162 -vn 0.3162 0.8944 -0.3162 -vn -0.3162 0.8944 0.3162 -vn 0.0000 0.2588 -0.9659 -vn 0.3162 -0.8944 0.3162 -vn 0.0000 -0.8944 0.4472 -vn 0.0000 0.9659 0.2588 -vn 0.0000 -0.9659 -0.2588 -vn 0.0000 -0.2588 0.9659 -vn -0.3162 -0.8944 -0.3162 -vn -0.4472 -0.8944 0.0000 -vn 0.4472 -0.8944 0.0000 -vn 0.0000 -0.8944 -0.4472 -vn -0.9659 0.0000 0.2588 -vn 0.2588 0.0000 0.9659 -vn 0.3162 -0.8944 -0.3162 -vn -0.3162 -0.8944 0.3162 -vn 0.0000 0.9659 -0.2588 -vn 0.0000 -0.9659 0.2588 -vn 0.0000 -0.2588 -0.9659 -s off -f 336/267/68 342/268/68 338/269/68 -f 336/270/69 337/271/69 335/272/69 -f 259/273/70 241/274/70 242/275/70 -f 333/276/71 331/277/71 332/278/71 -f 328/279/72 333/280/72 327/281/72 -f 240/282/73 241/283/73 239/284/73 -f 260/285/74 239/286/74 241/274/74 -f 236/287/75 237/288/75 238/289/75 -f 246/290/76 243/291/76 245/292/76 -f 262/293/77 242/275/77 240/282/77 -f 261/294/78 240/282/78 239/295/78 -f 249/296/74 248/297/74 247/298/74 -f 253/299/77 251/300/77 252/301/77 -f 250/302/68 253/299/68 248/303/68 -f 247/304/79 251/305/79 249/306/79 -f 249/306/80 254/307/80 250/302/80 -f 248/303/81 252/308/81 247/309/81 -f 255/310/82 258/311/82 256/312/82 -f 259/313/83 261/314/83 260/315/83 -f 271/316/84 274/317/84 272/318/84 -f 268/319/85 269/320/85 270/321/85 -f 328/279/77 331/322/77 334/323/77 -f 329/324/74 333/325/74 332/326/74 -f 275/327/86 278/328/86 276/329/86 -f 279/330/87 282/331/87 280/332/87 -f 284/333/88 285/334/88 286/335/88 -f 289/336/89 288/337/89 287/338/89 -f 231/339/90 234/340/90 233/341/90 -f 313/342/91 312/343/91 314/344/91 -f 298/345/68 288/346/68 290/347/68 -f 295/348/92 290/347/92 289/336/92 -f 297/349/93 287/350/93 288/346/93 -f 297/351/94 295/352/94 296/353/94 -f 263/354/95 266/355/95 265/356/95 -f 315/357/96 318/358/96 317/359/96 -f 294/360/97 291/361/97 292/362/97 -f 296/363/79 289/336/79 287/364/79 -f 299/365/98 302/366/98 301/367/98 -f 305/368/89 304/369/89 303/370/89 -f 306/371/68 309/372/68 304/373/68 -f 307/374/92 306/371/92 305/368/92 -f 309/372/93 303/375/93 304/373/93 -f 309/376/94 307/377/94 308/378/94 -f 308/379/79 305/368/79 303/380/79 -f 329/381/99 328/279/99 327/382/99 -f 329/324/100 331/322/100 330/383/100 -f 326/384/101 323/385/101 324/386/101 -f 322/387/102 319/388/102 320/389/102 -f 338/269/103 339/390/103 337/271/103 -f 335/391/104 341/392/104 336/267/104 -f 339/393/105 341/394/105 340/395/105 -f 335/396/79 339/390/79 340/397/79 -f 344/398/69 345/399/69 343/400/69 -f 346/401/68 349/402/68 350/403/68 -f 346/401/103 347/404/103 345/399/103 -f 343/405/104 349/402/104 344/406/104 -f 347/407/105 349/408/105 348/409/105 -f 345/399/79 348/410/79 343/411/79 -f 336/267/68 341/392/68 342/268/68 -f 336/270/69 338/269/69 337/271/69 -f 259/273/70 260/285/70 241/274/70 -f 333/276/71 334/412/71 331/277/71 -f 328/279/72 334/323/72 333/280/72 -f 240/282/73 242/275/73 241/283/73 -f 260/285/74 261/413/74 239/286/74 -f 236/287/75 235/414/75 237/288/75 -f 246/290/76 244/415/76 243/291/76 -f 262/293/77 259/273/77 242/275/77 -f 261/294/78 262/293/78 240/282/78 -f 249/296/74 250/416/74 248/297/74 -f 253/299/77 254/307/77 251/300/77 -f 250/302/68 254/307/68 253/299/68 -f 247/304/79 252/417/79 251/305/79 -f 249/306/80 251/305/80 254/307/80 -f 248/303/81 253/299/81 252/308/81 -f 255/310/82 257/418/82 258/311/82 -f 259/313/83 262/419/83 261/314/83 -f 271/316/84 273/420/84 274/317/84 -f 268/319/85 267/421/85 269/320/85 -f 328/279/77 330/383/77 331/322/77 -f 329/324/74 327/422/74 333/325/74 -f 275/327/86 277/423/86 278/328/86 -f 279/330/87 281/424/87 282/331/87 -f 284/333/88 283/425/88 285/334/88 -f 289/336/89 290/347/89 288/337/89 -f 231/339/90 232/426/90 234/340/90 -f 313/342/91 311/427/91 312/343/91 -f 298/345/68 297/349/68 288/346/68 -f 295/348/92 298/345/92 290/347/92 -f 297/349/93 296/428/93 287/350/93 -f 297/351/94 298/429/94 295/352/94 -f 263/354/95 264/430/95 266/355/95 -f 315/357/96 316/431/96 318/358/96 -f 294/360/97 293/432/97 291/361/97 -f 296/363/79 295/348/79 289/336/79 -f 299/365/98 300/433/98 302/366/98 -f 305/368/89 306/371/89 304/369/89 -f 306/371/68 310/434/68 309/372/68 -f 307/374/92 310/434/92 306/371/92 -f 309/372/93 308/435/93 303/375/93 -f 309/376/94 310/436/94 307/377/94 -f 308/379/79 307/374/79 305/368/79 -f 329/381/99 330/383/99 328/279/99 -f 329/324/100 332/326/100 331/322/100 -f 326/384/101 325/437/101 323/385/101 -f 322/387/102 321/438/102 319/388/102 -f 338/269/103 342/268/103 339/390/103 -f 335/391/104 340/439/104 341/392/104 -f 339/393/105 342/440/105 341/394/105 -f 335/396/79 337/271/79 339/390/79 -f 344/398/69 346/401/69 345/399/69 -f 346/401/68 344/406/68 349/402/68 -f 346/401/103 350/403/103 347/404/103 -f 343/405/104 348/441/104 349/402/104 -f 347/407/105 350/442/105 349/408/105 -f 345/399/79 347/404/79 348/410/79 +s 0 +f 312/127/68 318/128/68 314/129/68 +f 312/130/69 313/131/69 311/132/69 +f 235/133/70 217/134/70 218/135/70 +f 309/135/71 307/136/71 308/134/71 +f 304/137/72 309/138/72 303/139/72 +f 216/137/73 217/140/73 215/141/73 +f 236/142/74 215/143/74 217/134/74 +f 212/144/75 213/145/75 214/146/75 +f 222/147/76 219/146/76 221/144/76 +f 238/148/77 218/135/77 216/137/77 +f 237/138/78 216/137/78 215/139/78 +f 225/149/74 224/150/74 223/151/74 +f 229/152/77 227/151/77 228/153/77 +f 226/154/68 229/152/68 224/155/68 +f 223/156/79 227/157/79 225/158/79 +f 225/158/80 230/149/80 226/154/80 +f 224/155/81 228/159/81 223/160/81 +f 231/146/82 234/147/82 232/145/82 +f 235/136/83 237/135/83 236/134/83 +f 247/146/84 250/147/84 248/145/84 +f 244/145/85 245/144/85 246/147/85 +f 304/137/77 307/133/77 310/148/77 +f 305/134/74 309/161/74 308/142/74 +f 251/146/86 254/147/86 252/145/86 +f 255/146/87 258/147/87 256/145/87 +f 260/145/88 261/144/88 262/147/88 +f 265/131/89 264/130/89 263/132/89 +f 207/147/90 210/146/90 209/145/90 +f 289/145/91 288/144/91 290/146/91 +f 274/128/68 264/127/68 266/129/68 +f 271/162/92 266/129/92 265/131/92 +f 273/163/93 263/164/93 264/127/93 +f 273/127/94 271/130/94 272/129/94 +f 239/147/95 242/146/95 241/145/95 +f 291/147/96 294/146/96 293/145/96 +f 270/146/97 267/147/97 268/144/97 +f 272/165/79 265/131/79 263/166/79 +f 275/146/98 278/147/98 277/144/98 +f 281/167/89 280/168/89 279/169/89 +f 282/170/68 285/171/68 280/172/68 +f 283/173/92 282/170/92 281/167/92 +f 285/171/93 279/139/93 280/172/93 +f 285/172/94 283/168/94 284/170/94 +f 284/174/79 281/167/79 279/164/79 +f 305/140/99 304/137/99 303/141/99 +f 305/134/100 307/133/100 306/135/100 +f 302/147/101 299/146/101 300/145/101 +f 298/147/102 295/146/102 296/145/102 +f 314/129/103 315/162/103 313/131/103 +f 311/164/104 317/163/104 312/127/104 +f 315/130/105 317/127/105 316/129/105 +f 311/166/79 315/162/79 316/165/79 +f 320/168/69 321/167/69 319/169/69 +f 322/170/68 325/171/68 326/175/68 +f 322/170/103 323/173/103 321/167/103 +f 319/139/104 325/171/104 320/172/104 +f 323/168/105 325/172/105 324/170/105 +f 321/167/79 324/174/79 319/164/79 +f 312/127/68 317/163/68 318/128/68 +f 312/130/69 314/129/69 313/131/69 +f 235/133/70 236/142/70 217/134/70 +f 309/135/71 310/140/71 307/136/71 +f 304/137/72 310/148/72 309/138/72 +f 216/137/73 218/135/73 217/140/73 +f 236/142/74 237/161/74 215/143/74 +f 212/144/75 211/147/75 213/145/75 +f 222/147/76 220/145/76 219/146/76 +f 238/148/77 235/133/77 218/135/77 +f 237/138/78 238/148/78 216/137/78 +f 225/149/74 226/157/74 224/150/74 +f 229/152/77 230/149/77 227/151/77 +f 226/154/68 230/149/68 229/152/68 +f 223/156/79 228/176/79 227/157/79 +f 225/158/80 227/157/80 230/149/80 +f 224/155/81 229/152/81 228/159/81 +f 231/146/82 233/144/82 234/147/82 +f 235/136/83 238/140/83 237/135/83 +f 247/146/84 249/144/84 250/147/84 +f 244/145/85 243/146/85 245/144/85 +f 304/137/77 306/135/77 307/133/77 +f 305/134/74 303/143/74 309/161/74 +f 251/146/86 253/144/86 254/147/86 +f 255/146/87 257/144/87 258/147/87 +f 260/145/88 259/146/88 261/144/88 +f 265/131/89 266/129/89 264/130/89 +f 207/147/90 208/144/90 210/146/90 +f 289/145/91 287/147/91 288/144/91 +f 274/128/68 273/163/68 264/127/68 +f 271/162/92 274/128/92 266/129/92 +f 273/163/93 272/174/93 263/164/93 +f 273/127/94 274/177/94 271/130/94 +f 239/147/95 240/144/95 242/146/95 +f 291/147/96 292/144/96 294/146/96 +f 270/146/97 269/145/97 267/147/97 +f 272/165/79 271/162/79 265/131/79 +f 275/146/98 276/145/98 278/147/98 +f 281/167/89 282/170/89 280/168/89 +f 282/170/68 286/175/68 285/171/68 +f 283/173/92 286/175/92 282/170/92 +f 285/171/93 284/178/93 279/139/93 +f 285/172/94 286/179/94 283/168/94 +f 284/174/79 283/173/79 281/167/79 +f 305/140/99 306/135/99 304/137/99 +f 305/134/100 308/142/100 307/133/100 +f 302/147/101 301/144/101 299/146/101 +f 298/147/102 297/144/102 295/146/102 +f 314/129/103 318/128/103 315/162/103 +f 311/164/104 316/174/104 317/163/104 +f 315/130/105 318/177/105 317/127/105 +f 311/166/79 313/131/79 315/162/79 +f 320/168/69 322/170/69 321/167/69 +f 322/170/68 320/172/68 325/171/68 +f 322/170/103 326/175/103 323/173/103 +f 319/139/104 324/178/104 325/171/104 +f 323/168/105 326/179/105 325/172/105 +f 321/167/79 323/173/79 324/174/79 +o FumoHead +v -0.250000 0.750000 -0.250000 +v -0.250000 0.750000 0.250000 +v 0.250000 0.750000 0.250000 +v 0.250000 0.750000 -0.250000 +v -0.250000 1.250000 -0.250000 +v -0.250000 1.250000 0.250000 +v 0.250000 1.250000 0.250000 +v 0.250000 1.250000 -0.250000 +v -0.281250 0.718750 -0.281250 +v -0.281250 0.718750 0.281250 +v 0.281250 0.718750 0.281250 +v 0.281250 0.718750 -0.281250 +v -0.281250 1.281250 -0.281250 +v -0.281250 1.281250 0.281250 +v 0.281250 1.281250 0.281250 +v 0.281250 1.281250 -0.281250 +v -0.281250 1.093750 -0.281250 +v -0.281250 1.093750 0.281250 +v 0.281250 1.093750 0.281250 +v 0.281250 1.093750 -0.281250 +v -0.218750 1.093750 -0.468750 +v 0.218750 1.093750 -0.468750 +v -0.218750 1.093750 0.468750 +v 0.218750 1.093750 0.468750 +v 0.468750 1.093750 0.218750 +v 0.468750 1.093750 -0.218750 +v -0.468750 1.093750 -0.218750 +v -0.468750 1.093750 0.218750 +v -0.281250 1.156250 0.281250 +v 0.281250 1.156250 0.281250 +v 0.281250 1.156250 -0.281250 +v -0.281250 1.156250 -0.281250 +v 0.218750 1.156250 -0.468750 +v -0.218750 1.156250 -0.468750 +v -0.218750 1.156250 0.468750 +v 0.218750 1.156250 0.468750 +v 0.468750 1.156250 0.218750 +v 0.468750 1.156250 -0.218750 +v -0.468750 1.156250 -0.218750 +v -0.468750 1.156250 0.218750 +v 0.156250 1.156250 -0.281250 +v 0.093750 1.156250 -0.406250 +v 0.093750 1.281250 -0.406250 +v 0.156250 1.218750 -0.281250 +v 0.156250 1.156250 -0.281250 +v 0.218750 1.156250 -0.406250 +v 0.218750 1.281250 -0.406250 +v 0.156250 1.218750 -0.281250 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 -0.0000 -0.7071 +vn -0.7071 -0.0000 0.7071 +vn 0.7071 -0.0000 0.7071 +vn 0.8944 -0.0000 0.4472 +vn 0.8944 -0.0000 -0.4472 +vt 0.375000 0.750000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.125000 0.750000 +vt 0.125000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 0.500000 +vt 0.125000 0.500000 +vt -0.000000 0.750000 +vt -0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.875000 0.750000 +vt 0.750000 1.000000 +vt 0.750000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 0.750000 +vt 1.000000 0.500000 +vt 0.734375 0.343750 +vt 0.625000 0.250000 +vt 0.750000 0.250000 +vt 0.796875 0.218750 +vt 0.625000 0.468750 +vt 0.734375 0.375000 +vt 0.750000 0.468750 +vt 0.796875 0.500000 +vt 0.640625 0.375000 +vt 0.640625 0.343750 +vt 0.796875 0.343750 +vt 0.656250 0.187500 +vt 0.625000 0.218750 +vt 0.625000 0.187500 +vt 0.375000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 0.750000 +vt 0.796875 0.375000 +vt 0.656250 0.250000 +s 0 +f 327/180/106 329/181/106 328/182/106 +f 333/183/107 331/181/107 332/184/107 +f 327/185/108 334/182/108 330/186/108 +f 329/187/109 332/188/109 328/189/109 +f 330/186/110 333/183/110 329/187/110 +f 328/190/111 331/180/111 327/185/111 +f 335/191/106 337/192/106 336/193/106 +f 341/194/107 339/192/107 340/195/107 +f 335/196/108 342/193/108 338/197/108 +f 337/198/109 340/199/109 336/190/109 +f 338/197/110 341/194/110 337/198/110 +f 336/200/111 339/191/111 335/196/111 +f 347/201/106 346/202/106 343/203/106 +f 350/201/106 344/202/106 345/203/106 +f 352/201/106 345/202/106 346/203/106 +f 354/201/106 343/202/106 344/203/106 +f 344/203/106 349/204/106 354/201/106 +f 345/203/106 351/204/106 350/201/106 +f 346/203/106 348/204/106 352/201/106 +f 343/203/106 353/204/106 347/201/106 +f 357/205/107 360/206/107 358/207/107 +f 355/205/107 362/206/107 356/207/107 +f 356/205/107 364/206/107 357/207/107 +f 358/205/107 366/206/107 355/207/107 +f 355/207/107 366/206/107 361/208/107 +f 356/207/107 362/206/107 363/208/107 +f 357/207/107 364/206/107 359/208/107 +f 358/207/107 360/206/107 365/208/107 +f 350/201/109 361/209/109 349/210/109 +f 347/201/108 359/209/108 348/210/108 +f 348/211/112 364/206/112 352/201/112 +f 353/211/113 360/206/113 347/201/113 +f 349/211/114 366/206/114 354/201/114 +f 354/201/111 365/209/111 353/210/111 +f 352/201/110 363/209/110 351/210/110 +f 351/211/115 362/206/115 350/201/115 +f 372/212/116 374/213/116 371/214/116 +f 368/212/117 370/213/117 367/214/117 +f 327/180/106 330/215/106 329/181/106 +f 333/183/107 334/182/107 331/181/107 +f 327/185/108 331/180/108 334/182/108 +f 329/187/109 333/183/109 332/188/109 +f 330/186/110 334/182/110 333/183/110 +f 328/190/111 332/199/111 331/180/111 +f 335/191/106 338/216/106 337/192/106 +f 341/194/107 342/193/107 339/192/107 +f 335/196/108 339/191/108 342/193/108 +f 337/198/109 341/194/109 340/199/109 +f 338/197/110 342/193/110 341/194/110 +f 336/200/111 340/217/111 339/191/111 +f 347/201/106 348/210/106 346/202/106 +f 350/201/106 349/210/106 344/202/106 +f 352/201/106 351/210/106 345/202/106 +f 354/201/106 353/210/106 343/202/106 +f 357/205/107 359/209/107 360/206/107 +f 355/205/107 361/209/107 362/206/107 +f 356/205/107 363/209/107 364/206/107 +f 358/205/107 365/209/107 366/206/107 +f 350/201/109 362/206/109 361/209/109 +f 347/201/108 360/206/108 359/209/108 +f 348/211/112 359/218/112 364/206/112 +f 353/211/113 365/218/113 360/206/113 +f 349/211/114 361/218/114 366/206/114 +f 354/201/111 366/206/111 365/209/111 +f 352/201/110 364/206/110 363/209/110 +f 351/211/115 363/218/115 362/206/115 +f 372/212/116 373/219/116 374/213/116 +f 368/212/117 369/219/117 370/213/117 +o Head +v 0.375000 1.750000 0.375000 +v -0.375000 1.750000 0.375000 +v 0.375000 1.750000 -0.375000 +v -0.375000 1.750000 -0.375000 +v 0.375000 2.500000 0.375000 +v -0.375000 2.500000 0.375000 +v -0.375000 2.500000 -0.375000 +v 0.375000 2.500000 -0.375000 +v 0.421875 1.703125 0.421875 +v -0.421875 1.703125 0.421875 +v 0.421875 1.703125 -0.421875 +v -0.421875 1.703125 -0.421875 +v 0.421875 2.546875 0.421875 +v -0.421875 2.546875 0.421875 +v -0.421875 2.546875 -0.421875 +v 0.421875 2.546875 -0.421875 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.250000 1.000000 +vt 0.375000 0.875000 +vt 0.375000 1.000000 +vt 0.125000 0.875000 +vt 0.125000 1.000000 +vt 0.250000 0.750000 +vt 0.125000 0.750000 +vt -0.000000 0.875000 +vt -0.000000 0.750000 +vt 0.500000 0.750000 +vt 0.375000 0.750000 +vt 0.250000 0.875000 +vt 0.750000 1.000000 +vt 0.875000 0.875000 +vt 0.875000 1.000000 +vt 0.625000 0.875000 +vt 0.625000 1.000000 +vt 0.750000 0.750000 +vt 0.625000 0.750000 +vt 0.500000 0.875000 +vt 1.000000 0.750000 +vt 0.875000 0.750000 +vt 0.750000 0.875000 +vt 1.000000 0.875000 +s 0 +f 378/220/118 375/221/118 376/222/118 +f 379/223/119 381/220/119 380/224/119 +f 377/225/120 379/223/120 375/226/120 +f 375/226/121 380/227/121 376/228/121 +f 376/229/122 381/221/122 378/230/122 +f 378/230/123 382/231/123 377/225/123 +f 386/232/118 383/233/118 384/234/118 +f 387/235/119 389/232/119 388/236/119 +f 385/237/120 387/235/120 383/238/120 +f 383/238/121 388/239/121 384/229/121 +f 384/240/122 389/233/122 386/241/122 +f 386/241/123 390/242/123 385/237/123 +f 378/220/118 377/231/118 375/221/118 +f 379/223/119 382/231/119 381/220/119 +f 377/225/120 382/231/120 379/223/120 +f 375/226/121 379/223/121 380/227/121 +f 376/229/122 380/239/122 381/221/122 +f 378/230/123 381/221/123 382/231/123 +f 386/232/118 385/242/118 383/233/118 +f 387/235/119 390/242/119 389/232/119 +f 385/237/120 390/242/120 387/235/120 +f 383/238/121 387/235/121 388/239/121 +f 384/240/122 388/243/122 389/233/122 +f 386/241/123 389/233/123 390/242/123 +o Head17 +v 0.375000 1.750000 0.375000 +v -0.375000 1.750000 0.375000 +v 0.375000 1.750000 -0.375000 +v -0.375000 1.750000 -0.375000 +v 0.375000 2.500000 0.375000 +v -0.375000 2.500000 0.375000 +v -0.375000 2.500000 -0.375000 +v 0.375000 2.500000 -0.375000 +v 0.421875 1.703125 0.421875 +v -0.421875 1.703125 0.421875 +v 0.421875 1.703125 -0.421875 +v -0.421875 1.703125 -0.421875 +v 0.421875 2.546875 0.421875 +v -0.421875 2.546875 0.421875 +v -0.421875 2.546875 -0.421875 +v 0.421875 2.546875 -0.421875 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.250000 1.000000 +vt 0.375000 0.750000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.125000 1.000000 +vt 0.250000 0.500000 +vt 0.125000 0.500000 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.375000 0.500000 +vt 0.250000 0.750000 +vt 0.750000 1.000000 +vt 0.875000 0.750000 +vt 0.875000 1.000000 +vt 0.625000 0.750000 +vt 0.625000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 0.750000 +vt 1.000000 0.500000 +vt 0.875000 0.500000 +vt 0.750000 0.750000 +vt 1.000000 0.750000 +s 0 +f 394/244/124 391/245/124 392/246/124 +f 395/247/125 397/244/125 396/248/125 +f 393/249/126 395/247/126 391/250/126 +f 391/250/127 396/251/127 392/252/127 +f 392/253/128 397/245/128 394/254/128 +f 394/254/129 398/255/129 393/249/129 +f 402/256/124 399/257/124 400/258/124 +f 403/259/125 405/256/125 404/260/125 +f 401/261/126 403/259/126 399/262/126 +f 399/262/127 404/263/127 400/253/127 +f 400/264/128 405/257/128 402/265/128 +f 402/265/129 406/266/129 401/261/129 +f 394/244/124 393/255/124 391/245/124 +f 395/247/125 398/255/125 397/244/125 +f 393/249/126 398/255/126 395/247/126 +f 391/250/127 395/247/127 396/251/127 +f 392/253/128 396/263/128 397/245/128 +f 394/254/129 397/245/129 398/255/129 +f 402/256/124 401/266/124 399/257/124 +f 403/259/125 406/266/125 405/256/125 +f 401/261/126 406/266/126 403/259/126 +f 399/262/127 403/259/127 404/263/127 +f 400/264/128 404/267/128 405/257/128 +f 402/265/129 405/257/129 406/266/129 o Horn v 0.205806 2.419194 0.062500 v 0.294194 2.330806 0.062500 v 0.205806 2.419194 -0.062500 v 0.294194 2.330806 -0.062500 -v 0.780330 2.905330 0.000000 +v 0.780330 2.905330 -0.000000 +vn 0.7634 -0.6459 -0.0000 +vn 0.0587 0.0587 -0.9965 +vn 0.0587 0.0587 0.9965 +vn -0.6459 0.7634 -0.0000 vt 0.906250 0.500000 vt 0.890625 0.687500 vt 0.875000 0.500000 -vt 0.906250 0.500000 -vt 0.875000 0.500000 -vt 0.906250 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.906250 0.500000 -vn 0.7634 -0.6459 0.0000 -vn 0.0587 0.0587 -0.9965 -vn 0.0587 0.0587 0.9965 -vn -0.6459 0.7634 0.0000 -s off -f 354/443/106 355/444/106 352/445/106 -f 353/446/107 355/444/107 354/447/107 -f 352/448/108 355/444/108 351/449/108 -f 353/450/109 351/451/109 355/444/109 -o PelletShine -v -0.000000 0.250000 -0.375000 -v -0.187500 0.250000 -0.324760 -v -0.324760 0.250000 -0.187500 -v -0.375000 0.250000 0.000000 -v -0.324760 0.250000 0.187500 -v -0.187500 0.250000 0.324760 -v -0.000000 0.250000 0.375000 -v 0.187500 0.250000 0.324760 -v 0.324759 0.250000 0.187500 -v 0.375000 0.250000 0.000000 -v 0.324760 0.250000 -0.187500 -v 0.187500 0.250000 -0.324759 -v -0.000000 0.812500 -0.375000 -v -0.187500 0.812500 -0.324760 -v -0.324760 0.812500 -0.187500 -v -0.375000 0.812500 0.000000 -v -0.324760 0.812500 0.187500 -v -0.187500 0.812500 0.324760 -v -0.000000 0.812500 0.375000 -v 0.187500 0.812500 0.324760 -v 0.324759 0.812500 0.187500 -v 0.375000 0.812500 0.000000 -v 0.324760 0.812500 -0.187500 -v 0.187500 0.812500 -0.324759 -v 0.000000 0.875000 -0.312500 -v -0.156250 0.875000 -0.270633 -v -0.270633 0.875000 -0.156250 -v -0.312500 0.875000 0.000000 -v -0.270633 0.875000 0.156250 -v -0.156250 0.875000 0.270633 -v -0.000000 0.875000 0.312500 -v 0.156250 0.875000 0.270633 -v 0.270633 0.875000 0.156250 -v 0.312500 0.875000 0.000000 -v 0.270633 0.875000 -0.156250 -v 0.156250 0.875000 -0.270633 -vn -0.7071 0.0000 -0.7071 -vn 0.9659 0.0000 0.2588 -vn -0.2588 0.0000 0.9659 -vn -0.9659 0.0000 -0.2588 -vn 0.9659 0.0000 -0.2588 -vn 0.2588 0.0000 0.9659 -vn -0.9659 0.0000 0.2588 -vn 0.7071 0.0000 -0.7071 -vn -0.2588 0.0000 -0.9659 -vn 0.7071 0.0000 0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.2588 0.0000 -0.9659 -vn 0.6947 0.6947 0.1862 -vn 0.6947 0.6947 -0.1862 +s 0 +f 410/268/130 411/269/130 408/270/130 +f 409/268/131 411/269/131 410/270/131 +f 408/268/132 411/269/132 407/270/132 +f 409/270/133 407/268/133 411/269/133 +o LA +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +v -0.125000 1.750000 -0.250000 +v 0.125000 1.750000 -0.250000 +v -0.125000 1.000000 -0.500000 +v 0.125000 1.000000 -0.500000 +v 0.125000 1.750000 -0.500000 +v -0.125000 1.750000 -0.500000 +v -0.156250 0.968750 -0.218750 +v 0.156250 0.968750 -0.218750 +v -0.156250 1.781250 -0.218750 +v 0.156250 1.781250 -0.218750 +v -0.156250 0.968750 -0.531250 +v 0.156250 0.968750 -0.531250 +v -0.156250 1.781250 -0.531250 +v 0.156250 1.781250 -0.531250 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.625000 0.187500 +vt 0.562500 0.000000 +vt 0.625000 0.000000 +vt 0.687500 0.187500 +vt 0.687500 0.000000 +vt 0.750000 0.187500 +vt 0.562500 0.250000 +vt 0.562500 0.187500 +vt 0.687500 0.250000 +vt 0.625000 0.250000 +vt 0.500000 0.187500 +vt 0.875000 0.187500 +vt 0.937500 0.250000 +vt 0.875000 0.250000 +vt 0.812500 -0.000000 +vt 0.875000 -0.000000 +vt 0.812500 0.187500 +vt 0.937500 -0.000000 +vt 1.000000 0.187500 +vt 0.937500 0.187500 +vt 0.750000 0.000000 +vt 0.500000 0.000000 +vt 0.812500 0.250000 +vt 1.000000 -0.000000 +s 0 +f 418/271/134 413/272/134 417/273/134 +f 417/273/135 419/274/135 418/271/135 +f 416/275/136 414/276/136 419/274/136 +f 418/271/137 414/277/137 415/278/137 +f 417/271/138 412/279/138 416/280/138 +f 414/281/139 413/272/139 415/278/139 +f 425/282/138 420/283/138 424/284/138 +f 427/282/134 421/285/134 425/286/134 +f 426/284/137 423/287/137 427/282/137 +f 424/288/136 422/289/136 426/290/136 +f 422/276/139 421/285/139 423/287/139 +f 425/286/135 426/290/135 427/282/135 +f 418/271/134 415/278/134 413/272/134 +f 417/273/135 416/275/135 419/274/135 +f 416/275/136 412/291/136 414/276/136 +f 418/271/137 419/280/137 414/277/137 +f 417/271/138 413/274/138 412/279/138 +f 414/281/139 412/292/139 413/272/139 +f 425/282/138 421/290/138 420/283/138 +f 427/282/134 423/287/134 421/285/134 +f 426/284/137 422/293/137 423/287/137 +f 424/288/136 420/294/136 422/289/136 +f 422/276/139 420/291/139 421/285/139 +f 425/286/135 424/288/135 426/290/135 +o LA17 +v -0.125000 1.000000 -0.500000 +v 0.125000 1.000000 -0.500000 +v -0.125000 1.750000 -0.500000 +v 0.125000 1.750000 -0.500000 +v -0.125000 1.000000 -0.250000 +v 0.125000 1.000000 -0.250000 +v 0.125000 1.750000 -0.250000 +v -0.125000 1.750000 -0.250000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vt 0.687500 -0.000000 +vt 0.625000 0.375000 +vt 0.687500 0.375000 +vt 0.750000 0.375000 +vt 0.687500 0.500000 +vt 0.750000 0.500000 +vt 0.750000 -0.000000 +vt 0.812500 0.500000 +vt 0.812500 0.375000 +vt 0.875000 0.375000 +vt 0.812500 -0.000000 +vt 0.625000 -0.000000 +vt 0.875000 -0.000000 +s 0 +f 429/295/140 430/296/140 431/297/140 +f 434/298/141 430/299/141 435/300/141 +f 429/295/142 434/298/142 433/301/142 +f 428/302/143 433/298/143 432/300/143 +f 435/303/144 433/301/144 434/298/144 +f 430/304/145 432/305/145 435/303/145 +f 429/295/140 428/306/140 430/296/140 +f 434/298/141 431/297/141 430/299/141 +f 429/295/142 431/297/142 434/298/142 +f 428/302/143 429/303/143 433/298/143 +f 435/303/144 432/305/144 433/301/144 +f 430/304/145 428/307/145 432/305/145 +o LL +v -0.125000 1.000000 -0.250000 +v -0.125000 0.250000 -0.250000 +v 0.125000 1.000000 -0.250000 +v 0.125000 0.250000 -0.250000 +v -0.125000 1.000000 -0.000000 +v -0.125000 0.250000 -0.000000 +v 0.125000 1.000000 -0.000000 +v 0.125000 0.250000 -0.000000 +v -0.156250 1.031250 -0.281250 +v -0.156250 0.218750 -0.281250 +v 0.156250 1.031250 -0.281250 +v 0.156250 0.218750 -0.281250 +v -0.156250 1.031250 0.031250 +v -0.156250 0.218750 0.031250 +v 0.156250 1.031250 0.031250 +v 0.156250 0.218750 0.031250 +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.0000 -1.0000 +vt 0.375000 0.250000 +vt 0.437500 0.187500 +vt 0.437500 0.250000 +vt 0.500000 0.187500 +vt 0.437500 0.000000 +vt 0.500000 0.000000 +vt 0.312500 0.187500 +vt 0.250000 0.000000 +vt 0.312500 0.000000 +vt 0.375000 0.187500 +vt 0.375000 0.000000 +vt 0.312500 0.250000 +vt 0.062500 0.250000 +vt 0.125000 0.187500 +vt 0.125000 0.250000 +vt 0.187500 0.187500 +vt 0.187500 0.250000 +vt 0.062500 0.000000 +vt 0.125000 0.000000 +vt 0.187500 0.000000 +vt 0.250000 0.187500 +vt 0.062500 0.187500 +vt 0.000000 0.000000 +vt 0.000000 0.187500 +s 0 +f 437/308/146 443/309/146 441/310/146 +f 440/311/147 437/312/147 441/313/147 +f 442/314/148 441/315/148 443/316/148 +f 438/317/149 443/316/149 439/318/149 +f 440/319/150 438/317/150 436/308/150 +f 436/309/151 439/318/151 437/312/151 +f 448/320/150 446/321/150 444/322/150 +f 445/322/146 451/323/146 449/324/146 +f 446/321/149 451/325/149 447/326/149 +f 444/323/151 447/326/151 445/327/151 +f 448/328/147 445/327/147 449/315/147 +f 450/329/148 449/330/148 451/325/148 +f 437/308/146 439/317/146 443/309/146 +f 440/311/147 436/309/147 437/312/147 +f 442/314/148 440/328/148 441/315/148 +f 438/317/149 442/314/149 443/316/149 +f 440/319/150 442/314/150 438/317/150 +f 436/309/151 438/317/151 439/318/151 +f 448/320/150 450/329/150 446/321/150 +f 445/322/146 447/321/146 451/323/146 +f 446/321/149 450/329/149 451/325/149 +f 444/323/151 446/321/151 447/326/151 +f 448/328/147 444/323/147 445/327/147 +f 450/329/148 448/331/148 449/330/148 +o LL17 +v -0.125000 1.000000 -0.000000 +v -0.125000 0.250000 -0.000000 +v 0.125000 1.000000 -0.000000 +v 0.125000 0.250000 -0.000000 +v -0.125000 1.000000 -0.250000 +v -0.125000 0.250000 -0.250000 +v 0.125000 1.000000 -0.250000 +v 0.125000 0.250000 -0.250000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.125000 0.375000 +vt 0.062500 0.500000 +vt 0.125000 0.500000 +vt 0.187500 0.375000 +vt 0.187500 0.500000 +vt 0.062500 -0.000000 +vt 0.125000 -0.000000 +vt 0.187500 -0.000000 +vt 0.250000 0.375000 +vt 0.250000 -0.000000 +vt 0.000000 -0.000000 +vt 0.062500 0.375000 +vt 0.000000 0.375000 +s 0 +f 454/332/152 456/333/152 452/334/152 +f 459/335/153 453/334/153 457/336/153 +f 459/337/154 454/332/154 455/338/154 +f 455/338/155 452/335/155 453/339/155 +f 453/339/156 456/340/156 457/341/156 +f 457/342/157 458/343/157 459/337/157 +f 454/332/152 458/343/152 456/333/152 +f 459/335/153 455/332/153 453/334/153 +f 459/337/154 458/343/154 454/332/154 +f 455/338/155 454/332/155 452/335/155 +f 453/339/156 452/335/156 456/340/156 +f 457/342/157 456/344/157 458/343/157 +o PeepHat +v 0.281250 2.625000 -0.281250 +v 0.281250 2.625000 0.281250 +v -0.281250 2.625000 0.281250 +v -0.281250 2.625000 -0.281250 +v -0.281250 2.500000 -0.281250 +v -0.281250 2.500000 0.281250 +v 0.281250 2.500000 0.281250 +v 0.281250 2.500000 -0.281250 +v 0.000000 2.687500 0.062500 +v 0.000000 2.687500 -0.062500 +v 0.000000 2.625000 -0.000000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vt -0.000000 0.890625 +vt 0.015625 0.984375 +vt -0.000000 0.984375 +vt 0.125000 0.984375 +vt 0.109375 0.890625 +vt 0.125000 0.890625 +vt 0.015625 1.000000 +vt 0.109375 0.984375 +vt 0.109375 1.000000 +vt 0.109375 0.875000 +vt 0.015625 0.890625 +vt 0.015625 0.875000 +vt 0.000000 1.000000 +s 0 +f 466/345/158 462/346/158 465/347/158 +f 464/348/159 460/349/159 467/350/159 +f 465/351/160 463/352/160 464/353/160 +f 467/354/161 461/355/161 466/356/161 +f 461/355/162 463/352/162 462/346/162 +f 468/357/161 470/347/161 469/346/161 +f 466/345/158 461/355/158 462/346/158 +f 464/348/159 463/352/159 460/349/159 +f 465/351/160 462/346/160 463/352/160 +f 467/354/161 460/349/161 461/355/161 +f 461/355/162 460/349/162 463/352/162 +o PeepTail +v -0.114030 1.104741 -0.062500 +v -0.071277 0.987279 -0.062500 +v -0.114030 1.104741 0.062500 +v -0.071277 0.987279 0.062500 +v -0.583876 0.933731 -0.062500 +v -0.541124 0.816269 -0.062500 +v -0.583876 0.933731 0.062500 +v -0.541124 0.816269 0.062500 +v -0.547280 0.814373 0.062500 +v -0.704707 1.160419 0.125000 +v -0.547280 0.814373 -0.062500 +v -0.704707 1.160419 -0.125000 +v -0.426539 0.846725 0.062500 +v -0.463226 1.225123 0.125000 +v -0.426539 0.846725 -0.062500 +v -0.463226 1.225123 -0.125000 +v -0.801764 1.522641 0.125000 +v -0.801764 1.522641 -0.125000 +v -0.560283 1.587345 -0.125000 +v -0.560283 1.587345 0.125000 +v -0.757570 1.599187 0.062500 +v -0.757570 1.599187 -0.062500 +v -0.636829 1.631540 -0.062500 +v -0.636829 1.631540 0.062500 +vn -0.3420 0.9397 -0.0000 +vn 0.3420 -0.9397 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.9102 -0.4141 -0.0000 +vn 0.0425 -0.1588 -0.9864 +vn 0.9953 0.0965 -0.0000 +vn 0.0425 -0.1588 0.9864 +vn 0.2588 -0.9659 -0.0000 +vn 0.9659 0.2588 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn -0.9659 -0.2588 -0.0000 +vn -0.2588 0.9659 -0.0000 +vn -0.1830 0.6830 0.7071 +vn -0.1830 0.6830 -0.7071 +vn 0.5000 0.8660 -0.0000 +vt 0.937500 0.562500 +vt 0.968750 0.687500 +vt 0.937500 0.687500 +vt 0.968750 0.562500 +vt 0.937500 0.546875 +vt 0.890625 0.453125 +vt 0.921875 0.453125 +vt 0.890625 0.421875 +vt 0.875000 0.640625 +vt 0.875000 0.546875 +vt 0.937500 0.640625 +vt 0.890625 0.656250 +vt 0.921875 0.687500 +vt 0.890625 0.687500 +vt 0.921875 0.656250 +vt 0.921875 0.421875 +s 0 +f 475/358/163 473/359/163 471/360/163 +f 472/359/164 478/358/164 476/361/164 +f 473/360/165 478/361/165 474/359/165 +f 475/361/166 472/360/166 476/358/166 +f 480/362/167 481/363/167 479/364/167 +f 482/362/168 485/363/168 481/364/168 +f 486/362/169 483/363/169 485/364/169 +f 484/362/170 479/363/170 483/364/170 +f 485/365/171 479/364/171 481/363/171 +f 486/362/172 490/366/172 484/367/172 +f 487/368/173 492/369/173 488/366/173 +f 480/362/174 488/366/174 482/367/174 +f 484/362/165 487/366/165 480/367/165 +f 482/362/166 489/366/166 486/367/166 +f 492/369/175 494/370/175 493/371/175 +f 487/366/176 494/372/176 491/369/176 +f 488/368/177 493/369/177 489/366/177 +f 489/368/178 494/369/178 490/366/178 +f 475/358/163 477/361/163 473/359/163 +f 472/359/164 474/360/164 478/358/164 +f 473/360/165 477/358/165 478/361/165 +f 475/361/166 471/359/166 472/360/166 +f 480/362/167 482/367/167 481/363/167 +f 482/362/168 486/367/168 485/363/168 +f 486/362/169 484/367/169 483/363/169 +f 484/362/170 480/367/170 479/363/170 +f 485/365/171 483/373/171 479/364/171 +f 486/362/172 489/368/172 490/366/172 +f 487/368/173 491/372/173 492/369/173 +f 480/362/174 487/368/174 488/366/174 +f 484/362/165 490/368/165 487/366/165 +f 482/362/166 488/368/166 489/366/166 +f 492/369/175 491/372/175 494/370/175 +f 487/366/176 490/368/176 494/372/176 +f 488/368/177 492/372/177 493/369/177 +f 489/368/178 493/372/178 494/369/178 +o Pellet +v 0.000000 0.250000 -0.312500 +v -0.156250 0.250000 -0.270633 +v -0.270633 0.250000 -0.156250 +v -0.312500 0.250000 -0.000000 +v -0.270633 0.250000 0.156250 +v -0.156250 0.250000 0.270633 +v 0.000000 0.250000 0.312500 +v 0.156250 0.250000 0.270633 +v 0.270633 0.250000 0.156250 +v 0.312500 0.250000 -0.000000 +v 0.270633 0.250000 -0.156250 +v 0.156250 0.250000 -0.270633 +v 0.000000 0.750000 -0.312500 +v -0.156250 0.750000 -0.270633 +v -0.270633 0.750000 -0.156250 +v -0.312500 0.750000 -0.000000 +v -0.270633 0.750000 0.156250 +v -0.156250 0.750000 0.270633 +v 0.000000 0.750000 0.312500 +v 0.156250 0.750000 0.270633 +v 0.270633 0.750000 0.156250 +v 0.312500 0.750000 -0.000000 +v 0.270633 0.750000 -0.156250 +v 0.156250 0.750000 -0.270633 +v 0.000000 0.812500 -0.250000 +v -0.125000 0.812500 -0.216506 +v -0.216506 0.812500 -0.125000 +v -0.250000 0.812500 -0.000000 +v -0.216506 0.812500 0.125000 +v -0.125000 0.812500 0.216506 +v 0.000000 0.812500 0.250000 +v 0.125000 0.812500 0.216506 +v 0.216506 0.812500 0.125000 +v 0.250000 0.812500 -0.000000 +v 0.216506 0.812500 -0.125000 +v 0.125000 0.812500 -0.216506 +vn -0.2588 -0.0000 0.9659 +vn -0.9659 -0.0000 -0.2588 +vn 0.9659 -0.0000 -0.2588 +vn 0.2588 -0.0000 0.9659 +vn -0.9659 -0.0000 0.2588 +vn 0.7071 -0.0000 -0.7071 +vn -0.2588 -0.0000 -0.9659 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn 0.2588 -0.0000 -0.9659 +vn -0.7071 -0.0000 -0.7071 +vn 0.9659 -0.0000 0.2588 vn 0.5086 0.6947 -0.5086 vn 0.1862 0.6947 -0.6947 vn -0.1862 0.6947 -0.6947 @@ -1445,103 +1796,9 @@ vn -0.5086 0.6947 0.5086 vn -0.1862 0.6947 0.6947 vn 0.1862 0.6947 0.6947 vn 0.5086 0.6947 0.5086 -vn 0.0000 1.0000 0.0000 -s off -f 370//110 357//110 358//110 -f 377//111 364//111 365//111 -f 374//112 361//112 362//112 -f 371//113 358//113 359//113 -f 378//114 365//114 366//114 -f 375//115 362//115 363//115 -f 372//116 359//116 360//116 -f 379//117 366//117 367//117 -f 369//118 356//118 357//118 -f 376//119 363//119 364//119 -f 373//120 360//120 361//120 -f 368//121 367//121 356//121 -f 377//122 388//122 376//122 -f 377//123 390//123 389//123 -f 378//124 391//124 390//124 -f 379//125 380//125 391//125 -f 368//126 381//126 380//126 -f 369//127 382//127 381//127 -f 371//128 382//128 370//128 -f 372//129 383//129 371//129 -f 373//130 384//130 372//130 -f 374//131 385//131 373//131 -f 375//132 386//132 374//132 -f 376//133 387//133 375//133 -f 388//134 390//134 380//134 -f 370//110 369//110 357//110 -f 377//111 376//111 364//111 -f 374//112 373//112 361//112 -f 371//113 370//113 358//113 -f 378//114 377//114 365//114 -f 375//115 374//115 362//115 -f 372//116 371//116 359//116 -f 379//117 378//117 366//117 -f 369//118 368//118 356//118 -f 376//119 375//119 363//119 -f 373//120 372//120 360//120 -f 368//121 379//121 367//121 -f 377//122 389//122 388//122 -f 377//123 378//123 390//123 -f 378//124 379//124 391//124 -f 379//125 368//125 380//125 -f 368//126 369//126 381//126 -f 369//127 370//127 382//127 -f 371//128 383//128 382//128 -f 372//129 384//129 383//129 -f 373//130 385//130 384//130 -f 374//131 386//131 385//131 -f 375//132 387//132 386//132 -f 376//133 388//133 387//133 -f 380//134 381//134 384//134 -f 381//134 382//134 384//134 -f 382//134 383//134 384//134 -f 384//134 385//134 386//134 -f 386//134 387//134 388//134 -f 388//134 389//134 390//134 -f 390//134 391//134 380//134 -f 384//134 386//134 380//134 -f 386//134 388//134 380//134 -o Pellet -v 0.000000 0.250000 -0.312500 -v -0.156250 0.250000 -0.270633 -v -0.270633 0.250000 -0.156250 -v -0.312500 0.250000 0.000000 -v -0.270633 0.250000 0.156250 -v -0.156250 0.250000 0.270633 -v -0.000000 0.250000 0.312500 -v 0.156250 0.250000 0.270633 -v 0.270633 0.250000 0.156250 -v 0.312500 0.250000 0.000000 -v 0.270633 0.250000 -0.156250 -v 0.156250 0.250000 -0.270633 -v 0.000000 0.750000 -0.312500 -v -0.156250 0.750000 -0.270633 -v -0.270633 0.750000 -0.156250 -v -0.312500 0.750000 0.000000 -v -0.270633 0.750000 0.156250 -v -0.156250 0.750000 0.270633 -v -0.000000 0.750000 0.312500 -v 0.156250 0.750000 0.270633 -v 0.270633 0.750000 0.156250 -v 0.312500 0.750000 0.000000 -v 0.270633 0.750000 -0.156250 -v 0.156250 0.750000 -0.270633 -v 0.000000 0.812500 -0.250000 -v -0.125000 0.812500 -0.216506 -v -0.216506 0.812500 -0.125000 -v -0.250000 0.812500 0.000000 -v -0.216506 0.812500 0.125000 -v -0.125000 0.812500 0.216506 -v -0.000000 0.812500 0.250000 -v 0.125000 0.812500 0.216506 -v 0.216506 0.812500 0.125000 -v 0.250000 0.812500 0.000000 -v 0.216506 0.812500 -0.125000 -v 0.125000 0.812500 -0.216506 +vn 0.6947 0.6947 0.1862 +vn 0.6947 0.6947 -0.1862 +vn -0.0000 1.0000 -0.0000 vt 0.250000 0.000000 vt 0.166667 0.470588 vt 0.166667 0.000000 @@ -1604,20 +1861,118 @@ vt 0.015933 0.648338 vt 0.111111 0.531970 vt 0.166063 0.563151 vt 0.206290 0.648338 -vn -0.2588 0.0000 0.9659 -vn -0.9659 0.0000 -0.2588 -vn 0.9659 0.0000 -0.2588 -vn 0.2588 0.0000 0.9659 -vn -0.9659 0.0000 0.2588 -vn 0.7071 0.0000 -0.7071 -vn -0.2588 0.0000 -0.9659 -vn 0.7071 0.0000 0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.2588 0.0000 -0.9659 -vn -0.7071 0.0000 -0.7071 -vn 0.9659 0.0000 0.2588 +s 0 +f 501/374/179 512/375/179 500/376/179 +f 498/377/180 509/378/180 497/379/180 +f 505/380/181 516/381/181 504/382/181 +f 502/383/182 513/384/182 501/374/182 +f 499/385/183 510/386/183 498/387/183 +f 506/388/184 517/389/184 505/380/184 +f 496/390/185 507/391/185 495/392/185 +f 503/393/186 514/394/186 502/383/186 +f 500/376/187 511/395/187 499/385/187 +f 495/392/188 518/396/188 506/388/188 +f 497/379/189 508/397/189 496/390/189 +f 504/382/190 515/398/190 503/393/190 +f 517/389/191 530/399/191 529/400/191 +f 518/396/192 519/401/192 530/402/192 +f 508/397/193 519/403/193 507/391/193 +f 509/378/194 520/404/194 508/397/194 +f 510/405/195 521/406/195 509/378/195 +f 511/395/196 522/407/196 510/386/196 +f 512/375/197 523/408/197 511/395/197 +f 513/384/198 524/409/198 512/375/198 +f 514/394/199 525/410/199 513/384/199 +f 514/394/200 527/411/200 526/412/200 +f 515/398/201 528/413/201 527/414/201 +f 516/381/202 529/415/202 528/416/202 +f 523/417/203 527/418/203 519/419/203 +f 501/374/179 513/384/179 512/375/179 +f 498/377/180 510/405/180 509/378/180 +f 505/380/181 517/389/181 516/381/181 +f 502/383/182 514/394/182 513/384/182 +f 499/385/183 511/395/183 510/386/183 +f 506/388/184 518/396/184 517/389/184 +f 496/390/185 508/397/185 507/391/185 +f 503/393/186 515/398/186 514/394/186 +f 500/376/187 512/375/187 511/395/187 +f 495/392/188 507/391/188 518/396/188 +f 497/379/189 509/378/189 508/397/189 +f 504/382/190 516/381/190 515/398/190 +f 517/389/191 518/396/191 530/399/191 +f 518/396/192 507/391/192 519/401/192 +f 508/397/193 520/420/193 519/403/193 +f 509/378/194 521/421/194 520/404/194 +f 510/405/195 522/422/195 521/406/195 +f 511/395/196 523/423/196 522/407/196 +f 512/375/197 524/424/197 523/408/197 +f 513/384/198 525/425/198 524/409/198 +f 514/394/199 526/426/199 525/410/199 +f 514/394/200 515/398/200 527/411/200 +f 515/398/201 516/381/201 528/413/201 +f 516/381/202 517/389/202 529/415/202 +f 519/419/203 520/427/203 521/428/203 +f 521/428/203 522/429/203 523/417/203 +f 523/417/203 524/430/203 525/431/203 +f 525/431/203 526/432/203 523/417/203 +f 526/432/203 527/418/203 523/417/203 +f 527/418/203 528/433/203 529/434/203 +f 529/434/203 530/435/203 519/419/203 +f 519/419/203 521/428/203 523/417/203 +f 527/418/203 529/434/203 519/419/203 +o PelletShine +v 0.000000 0.250000 -0.375000 +v -0.187500 0.250000 -0.324760 +v -0.324760 0.250000 -0.187500 +v -0.375000 0.250000 -0.000000 +v -0.324760 0.250000 0.187500 +v -0.187500 0.250000 0.324760 +v 0.000000 0.250000 0.375000 +v 0.187500 0.250000 0.324760 +v 0.324759 0.250000 0.187500 +v 0.375000 0.250000 -0.000000 +v 0.324760 0.250000 -0.187500 +v 0.187500 0.250000 -0.324759 +v 0.000000 0.812500 -0.375000 +v -0.187500 0.812500 -0.324760 +v -0.324760 0.812500 -0.187500 +v -0.375000 0.812500 -0.000000 +v -0.324760 0.812500 0.187500 +v -0.187500 0.812500 0.324760 +v 0.000000 0.812500 0.375000 +v 0.187500 0.812500 0.324760 +v 0.324759 0.812500 0.187500 +v 0.375000 0.812500 -0.000000 +v 0.324760 0.812500 -0.187500 +v 0.187500 0.812500 -0.324759 +v 0.000000 0.875000 -0.312500 +v -0.156250 0.875000 -0.270633 +v -0.270633 0.875000 -0.156250 +v -0.312500 0.875000 -0.000000 +v -0.270633 0.875000 0.156250 +v -0.156250 0.875000 0.270633 +v 0.000000 0.875000 0.312500 +v 0.156250 0.875000 0.270633 +v 0.270633 0.875000 0.156250 +v 0.312500 0.875000 -0.000000 +v 0.270633 0.875000 -0.156250 +v 0.156250 0.875000 -0.270633 +vn -0.7071 -0.0000 -0.7071 +vn 0.9659 -0.0000 0.2588 +vn -0.2588 -0.0000 0.9659 +vn -0.9659 -0.0000 -0.2588 +vn 0.9659 -0.0000 -0.2588 +vn 0.2588 -0.0000 0.9659 +vn -0.9659 -0.0000 0.2588 +vn 0.7071 -0.0000 -0.7071 +vn -0.2588 -0.0000 -0.9659 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn 0.2588 -0.0000 -0.9659 +vn 0.6947 0.6947 0.1862 +vn 0.6947 0.6947 -0.1862 vn 0.5086 0.6947 -0.5086 -vn 0.1862 0.6947 -0.6947 +vn 0.1862 0.6947 -0.6948 vn -0.1862 0.6947 -0.6947 vn -0.5086 0.6947 -0.5086 vn -0.6947 0.6947 -0.1862 @@ -1626,228 +1981,67 @@ vn -0.5086 0.6947 0.5086 vn -0.1862 0.6947 0.6947 vn 0.1862 0.6947 0.6947 vn 0.5086 0.6947 0.5086 -vn 0.6947 0.6947 0.1862 -vn 0.6947 0.6947 -0.1862 -vn 0.0000 1.0000 -0.0000 -s off -f 398/452/135 409/453/135 397/454/135 -f 395/455/136 406/456/136 394/457/136 -f 402/458/137 413/459/137 401/460/137 -f 399/461/138 410/462/138 398/452/138 -f 396/463/139 407/464/139 395/465/139 -f 403/466/140 414/467/140 402/458/140 -f 393/468/141 404/469/141 392/470/141 -f 400/471/142 411/472/142 399/461/142 -f 397/454/143 408/473/143 396/463/143 -f 392/470/144 415/474/144 403/466/144 -f 394/457/145 405/475/145 393/468/145 -f 401/460/146 412/476/146 400/471/146 -f 414/467/147 427/477/147 426/478/147 -f 415/474/148 416/479/148 427/480/148 -f 405/475/149 416/481/149 404/469/149 -f 406/456/150 417/482/150 405/475/150 -f 407/483/151 418/484/151 406/456/151 -f 408/473/152 419/485/152 407/464/152 -f 409/453/153 420/486/153 408/473/153 -f 410/462/154 421/487/154 409/453/154 -f 411/472/155 422/488/155 410/462/155 -f 411/472/156 424/489/156 423/490/156 -f 412/476/157 425/491/157 424/492/157 -f 413/459/158 426/493/158 425/494/158 -f 420/495/159 424/496/159 416/497/159 -f 398/452/135 410/462/135 409/453/135 -f 395/455/136 407/483/136 406/456/136 -f 402/458/137 414/467/137 413/459/137 -f 399/461/138 411/472/138 410/462/138 -f 396/463/139 408/473/139 407/464/139 -f 403/466/140 415/474/140 414/467/140 -f 393/468/141 405/475/141 404/469/141 -f 400/471/142 412/476/142 411/472/142 -f 397/454/143 409/453/143 408/473/143 -f 392/470/144 404/469/144 415/474/144 -f 394/457/145 406/456/145 405/475/145 -f 401/460/146 413/459/146 412/476/146 -f 414/467/147 415/474/147 427/477/147 -f 415/474/148 404/469/148 416/479/148 -f 405/475/149 417/498/149 416/481/149 -f 406/456/150 418/499/150 417/482/150 -f 407/483/151 419/500/151 418/484/151 -f 408/473/152 420/501/152 419/485/152 -f 409/453/153 421/502/153 420/486/153 -f 410/462/154 422/503/154 421/487/154 -f 411/472/155 423/504/155 422/488/155 -f 411/472/156 412/476/156 424/489/156 -f 412/476/157 413/459/157 425/491/157 -f 413/459/158 414/467/158 426/493/158 -f 416/497/159 417/505/159 418/506/159 -f 418/506/159 419/507/159 420/495/159 -f 420/495/159 421/508/159 422/509/159 -f 422/509/159 423/510/159 420/495/159 -f 423/510/159 424/496/159 420/495/159 -f 424/496/159 425/511/159 426/512/159 -f 426/512/159 427/513/159 416/497/159 -f 416/497/159 418/506/159 420/495/159 -f 424/496/159 426/512/159 416/497/159 -o Head -v 0.375000 1.750000 0.375000 -v -0.375000 1.750000 0.375000 -v 0.375000 1.750000 -0.375000 -v -0.375000 1.750000 -0.375000 -v 0.375000 2.500000 0.375000 -v -0.375000 2.500000 0.375000 -v -0.375000 2.500000 -0.375000 -v 0.375000 2.500000 -0.375000 -v 0.421875 1.703125 0.421875 -v -0.421875 1.703125 0.421875 -v 0.421875 1.703125 -0.421875 -v -0.421875 1.703125 -0.421875 -v 0.421875 2.546875 0.421875 -v -0.421875 2.546875 0.421875 -v -0.421875 2.546875 -0.421875 -v 0.421875 2.546875 -0.421875 -vt 0.250000 1.000000 -vt 0.375000 0.875000 -vt 0.375000 1.000000 -vt 0.125000 0.875000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 0.750000 -vt 0.125000 0.750000 -vt -0.000000 0.875000 -vt -0.000000 0.750000 -vt 0.500000 0.750000 -vt 0.375000 0.875000 -vt 0.375000 0.750000 -vt 0.250000 0.875000 -vt 0.750000 1.000000 -vt 0.875000 0.875000 -vt 0.875000 1.000000 -vt 0.625000 0.875000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 0.750000 -vt 0.625000 0.750000 -vt 0.500000 0.875000 -vt 0.500000 0.750000 -vt 1.000000 0.750000 -vt 0.875000 0.875000 -vt 0.875000 0.750000 -vt 0.750000 0.875000 -vt 0.250000 0.875000 -vt 0.500000 0.875000 -vt 0.750000 0.875000 -vt 1.000000 0.875000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 -0.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -s off -f 431/514/160 428/515/160 429/516/160 -f 432/517/161 434/518/161 433/519/161 -f 430/520/162 432/517/162 428/521/162 -f 428/521/163 433/522/163 429/523/163 -f 429/524/164 434/525/164 431/526/164 -f 431/526/165 435/527/165 430/520/165 -f 439/528/160 436/529/160 437/530/160 -f 440/531/161 442/532/161 441/533/161 -f 438/534/162 440/531/162 436/535/162 -f 436/535/163 441/536/163 437/537/163 -f 437/538/164 442/539/164 439/540/164 -f 439/540/165 443/541/165 438/534/165 -f 431/514/160 430/542/160 428/515/160 -f 432/517/161 435/527/161 434/518/161 -f 430/520/162 435/527/162 432/517/162 -f 428/521/163 432/517/163 433/522/163 -f 429/524/164 433/543/164 434/525/164 -f 431/526/165 434/525/165 435/527/165 -f 439/528/160 438/544/160 436/529/160 -f 440/531/161 443/541/161 442/532/161 -f 438/534/162 443/541/162 440/531/162 -f 436/535/163 440/531/163 441/536/163 -f 437/538/164 441/545/164 442/539/164 -f 439/540/165 442/539/165 443/541/165 -o LA -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -v -0.125000 1.750000 -0.250000 -v 0.125000 1.750000 -0.250000 -v -0.125000 1.000000 -0.500000 -v 0.125000 1.000000 -0.500000 -v 0.125000 1.750000 -0.500000 -v -0.125000 1.750000 -0.500000 -v -0.156250 0.968750 -0.218750 -v 0.156250 0.968750 -0.218750 -v -0.156250 1.781250 -0.218750 -v 0.156250 1.781250 -0.218750 -v -0.156250 0.968750 -0.531250 -v 0.156250 0.968750 -0.531250 -v -0.156250 1.781250 -0.531250 -v 0.156250 1.781250 -0.531250 -vt 0.625000 0.187500 -vt 0.562500 0.000000 -vt 0.625000 0.000000 -vt 0.687500 0.187500 -vt 0.687500 0.000000 -vt 0.750000 0.187500 -vt 0.562500 0.250000 -vt 0.562500 0.187500 -vt 0.625000 0.187500 -vt 0.687500 0.250000 -vt 0.625000 0.250000 -vt 0.500000 0.187500 -vt 0.875000 0.187500 -vt 0.937500 0.250000 -vt 0.875000 0.250000 -vt 0.875000 0.187500 -vt 0.812500 -0.000000 -vt 0.875000 -0.000000 -vt 0.875000 0.250000 -vt 0.812500 0.187500 -vt 0.937500 -0.000000 -vt 1.000000 0.187500 -vt 0.937500 0.187500 -vt 0.750000 0.187500 -vt 0.750000 0.000000 -vt 0.625000 0.250000 -vt 0.687500 0.187500 -vt 0.500000 0.000000 -vt 0.937500 0.187500 -vt 0.812500 0.250000 -vt 1.000000 -0.000000 -vt 0.750000 -0.000000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -s off -f 450/546/166 445/547/166 449/548/166 -f 449/548/167 451/549/167 450/546/167 -f 448/550/168 446/551/168 451/549/168 -f 450/546/169 446/552/169 447/553/169 -f 449/554/170 444/555/170 448/556/170 -f 446/557/171 445/547/171 447/553/171 -f 457/558/170 452/559/170 456/560/170 -f 459/561/166 453/562/166 457/563/166 -f 458/564/169 455/565/169 459/561/169 -f 456/566/168 454/567/168 458/568/168 -f 454/569/171 453/562/171 455/565/171 -f 457/563/167 458/568/167 459/561/167 -f 450/546/166 447/553/166 445/547/166 -f 449/548/167 448/550/167 451/549/167 -f 448/550/168 444/570/168 446/551/168 -f 450/546/169 451/571/169 446/552/169 -f 449/554/170 445/572/170 444/555/170 -f 446/557/171 444/573/171 445/547/171 -f 457/558/170 453/574/170 452/559/170 -f 459/561/166 455/565/166 453/562/166 -f 458/564/169 454/575/169 455/565/169 -f 456/566/168 452/576/168 454/567/168 -f 454/569/171 452/577/171 453/562/171 -f 457/563/167 456/566/167 458/568/167 +vn -0.0000 1.0000 -0.0000 +vn 0.1862 0.6947 -0.6947 +s 0 +f 545//204 532//204 533//204 +f 552//205 539//205 540//205 +f 549//206 536//206 537//206 +f 546//207 533//207 534//207 +f 553//208 540//208 541//208 +f 550//209 537//209 538//209 +f 547//210 534//210 535//210 +f 554//211 541//211 542//211 +f 544//212 531//212 532//212 +f 551//213 538//213 539//213 +f 548//214 535//214 536//214 +f 543//215 542//215 531//215 +f 552//216 563//216 551//216 +f 552//217 565//217 564//217 +f 553//218 566//218 565//218 +f 554//219 555//219 566//219 +f 543//220 556//220 555//220 +f 544//221 557//221 556//221 +f 546//222 557//222 545//222 +f 547//223 558//223 546//223 +f 548//224 559//224 547//224 +f 549//225 560//225 548//225 +f 550//226 561//226 549//226 +f 551//227 562//227 550//227 +f 563//228 565//228 555//228 +f 545//204 544//204 532//204 +f 552//205 551//205 539//205 +f 549//206 548//206 536//206 +f 546//207 545//207 533//207 +f 553//208 552//208 540//208 +f 550//209 549//209 537//209 +f 547//210 546//210 534//210 +f 554//211 553//211 541//211 +f 544//212 543//212 531//212 +f 551//213 550//213 538//213 +f 548//214 547//214 535//214 +f 543//215 554//215 542//215 +f 552//216 564//216 563//216 +f 552//217 553//217 565//217 +f 553//218 554//218 566//218 +f 554//229 543//229 555//229 +f 543//220 544//220 556//220 +f 544//221 545//221 557//221 +f 546//222 558//222 557//222 +f 547//223 559//223 558//223 +f 548//224 560//224 559//224 +f 549//225 561//225 560//225 +f 550//226 562//226 561//226 +f 551//227 563//227 562//227 +f 555//228 556//228 559//228 +f 556//228 557//228 559//228 +f 557//228 558//228 559//228 +f 559//228 560//228 561//228 +f 561//228 562//228 563//228 +f 563//228 564//228 565//228 +f 565//228 566//228 555//228 +f 559//228 561//228 555//228 +f 561//228 563//228 555//228 o RA v -0.125000 1.750000 0.250000 v 0.125000 1.750000 0.250000 @@ -1865,6 +2059,12 @@ v 0.156250 1.781250 0.531250 v -0.156250 1.781250 0.531250 v 0.156250 0.968750 0.531250 v -0.156250 0.968750 0.531250 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 vt 0.750000 0.500000 vt 0.812500 0.687500 vt 0.750000 0.687500 @@ -1873,7 +2073,6 @@ vt 0.687500 0.500000 vt 0.687500 0.687500 vt 0.812500 0.500000 vt 0.875000 0.687500 -vt 0.750000 0.687500 vt 0.812500 0.750000 vt 0.750000 0.750000 vt 0.687500 0.750000 @@ -1885,138 +2084,85 @@ vt 0.687500 0.250000 vt 0.687500 0.437500 vt 0.812500 0.250000 vt 0.875000 0.437500 -vt 0.750000 0.500000 -vt 0.750000 0.437500 -vt 0.812500 0.500000 -vt 0.750000 0.500000 vt 0.625000 0.500000 vt 0.875000 0.500000 -vt 0.812500 0.687500 -vt 0.750000 0.750000 vt 0.625000 0.250000 vt 0.875000 0.250000 +s 0 +f 569/436/230 567/437/230 568/438/230 +f 572/439/231 573/440/231 571/441/231 +f 570/442/232 572/443/232 567/437/232 +f 569/438/233 574/444/233 570/445/233 +f 568/438/234 573/440/234 569/436/234 +f 568/438/235 572/446/235 571/441/235 +f 577/447/230 576/448/230 575/449/230 +f 580/450/231 581/451/231 579/452/231 +f 578/453/232 580/454/232 576/448/232 +f 576/436/235 579/452/235 575/449/235 +f 575/449/234 581/451/234 577/447/234 +f 577/449/233 582/442/233 578/436/233 +f 569/436/230 570/442/230 567/437/230 +f 572/439/231 574/455/231 573/440/231 +f 570/442/232 574/456/232 572/443/232 +f 569/438/233 573/437/233 574/444/233 +f 568/438/234 571/441/234 573/440/234 +f 568/438/235 567/445/235 572/446/235 +f 577/447/230 578/453/230 576/448/230 +f 580/450/231 582/457/231 581/451/231 +f 578/453/232 582/458/232 580/454/232 +f 576/436/235 580/440/235 579/452/235 +f 575/449/234 579/452/234 581/451/234 +f 577/449/233 581/448/233 582/442/233 +o RA17 +v -0.125000 1.750000 0.250000 +v 0.125000 1.750000 0.250000 +v 0.125000 1.000000 0.250000 +v -0.125000 1.000000 0.250000 +v 0.125000 1.750000 0.500000 +v -0.125000 1.750000 0.500000 +v 0.125000 1.000000 0.500000 +v -0.125000 1.000000 0.500000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vt 0.750000 -0.000000 +vt 0.812500 0.375000 +vt 0.750000 0.375000 +vt 0.625000 0.375000 +vt 0.687500 -0.000000 +vt 0.687500 0.375000 +vt 0.812500 -0.000000 +vt 0.875000 0.375000 +vt 0.812500 0.500000 +vt 0.750000 0.500000 vt 0.687500 0.500000 -vt 0.812500 0.437500 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 1.0000 0.0000 -s off -f 462/578/172 460/579/172 461/580/172 -f 465/581/173 466/582/173 464/583/173 -f 463/584/174 465/585/174 460/579/174 -f 462/586/175 467/587/175 463/588/175 -f 461/580/176 466/582/176 462/578/176 -f 461/580/177 465/589/177 464/583/177 -f 470/590/172 469/591/172 468/592/172 -f 473/593/173 474/594/173 472/595/173 -f 471/596/174 473/597/174 469/591/174 -f 469/598/177 472/595/177 468/592/177 -f 468/592/176 474/594/176 470/590/176 -f 470/599/175 475/600/175 471/601/175 -f 462/578/172 463/584/172 460/579/172 -f 465/581/173 467/602/173 466/582/173 -f 463/584/174 467/603/174 465/585/174 -f 462/586/175 466/604/175 467/587/175 -f 461/580/176 464/583/176 466/582/176 -f 461/580/177 460/605/177 465/589/177 -f 470/590/172 471/596/172 469/591/172 -f 473/593/173 475/606/173 474/594/173 -f 471/596/174 475/607/174 473/597/174 -f 469/598/177 473/608/177 472/595/177 -f 468/592/176 472/595/176 474/594/176 -f 470/599/175 474/609/175 475/600/175 -o LL -v -0.125000 1.000000 -0.250000 -v -0.125000 0.250000 -0.250000 -v 0.125000 1.000000 -0.250000 -v 0.125000 0.250000 -0.250000 -v -0.125000 1.000000 0.000000 -v -0.125000 0.250000 0.000000 -v 0.125000 1.000000 0.000000 -v 0.125000 0.250000 0.000000 -v -0.156250 1.031250 -0.281250 -v -0.156250 0.218750 -0.281250 -v 0.156250 1.031250 -0.281250 -v 0.156250 0.218750 -0.281250 -v -0.156250 1.031250 0.031250 -v -0.156250 0.218750 0.031250 -v 0.156250 1.031250 0.031250 -v 0.156250 0.218750 0.031250 -vt 0.375000 0.250000 -vt 0.437500 0.187500 -vt 0.437500 0.250000 -vt 0.500000 0.187500 -vt 0.437500 0.000000 -vt 0.500000 0.000000 -vt 0.312500 0.187500 -vt 0.250000 0.000000 -vt 0.312500 0.000000 -vt 0.375000 0.187500 -vt 0.375000 0.000000 -vt 0.312500 0.250000 -vt 0.375000 0.250000 -vt 0.437500 0.187500 -vt 0.062500 0.250000 -vt 0.125000 0.187500 -vt 0.125000 0.250000 -vt 0.125000 0.250000 -vt 0.187500 0.187500 -vt 0.187500 0.250000 -vt 0.062500 0.000000 -vt 0.125000 0.000000 -vt 0.187500 0.187500 -vt 0.187500 0.000000 -vt 0.250000 0.187500 -vt 0.250000 0.000000 -vt 0.062500 0.187500 -vt 0.000000 0.000000 -vt 0.375000 0.187500 -vt 0.250000 0.187500 -vt 0.125000 0.187500 -vt 0.000000 0.187500 -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.0000 -1.0000 -s off -f 477/610/178 483/611/178 481/612/178 -f 480/613/179 477/614/179 481/615/179 -f 482/616/180 481/617/180 483/618/180 -f 478/619/181 483/618/181 479/620/181 -f 480/621/182 478/619/182 476/622/182 -f 476/623/183 479/620/183 477/614/183 -f 488/624/182 486/625/182 484/626/182 -f 485/627/178 491/628/178 489/629/178 -f 486/625/181 491/630/181 487/631/181 -f 484/632/183 487/631/183 485/633/183 -f 488/634/179 485/633/179 489/635/179 -f 490/636/180 489/637/180 491/630/180 -f 477/610/178 479/638/178 483/611/178 -f 480/613/179 476/623/179 477/614/179 -f 482/616/180 480/639/180 481/617/180 -f 478/619/181 482/616/181 483/618/181 -f 480/621/182 482/616/182 478/619/182 -f 476/623/183 478/619/183 479/620/183 -f 488/624/182 490/636/182 486/625/182 -f 485/627/178 487/640/178 491/628/178 -f 486/625/181 490/636/181 491/630/181 -f 484/632/183 486/625/183 487/631/183 -f 488/634/179 484/632/179 485/633/179 -f 490/636/180 488/641/180 489/637/180 +vt 0.625000 -0.000000 +vt 0.875000 -0.000000 +s 0 +f 585/459/236 583/460/236 584/461/236 +f 588/462/237 589/463/237 587/464/237 +f 586/465/238 588/466/238 583/460/238 +f 585/461/239 590/467/239 586/468/239 +f 584/461/240 589/463/240 585/459/240 +f 584/461/241 588/469/241 587/464/241 +f 585/459/236 586/465/236 583/460/236 +f 588/462/237 590/470/237 589/463/237 +f 586/465/238 590/471/238 588/466/238 +f 585/461/239 589/460/239 590/467/239 +f 584/461/240 587/464/240 589/463/240 +f 584/461/241 583/468/241 588/469/241 o RL v 0.125000 0.250000 0.250000 v 0.125000 1.000000 0.250000 v -0.125000 0.250000 0.250000 v -0.125000 1.000000 0.250000 -v 0.125000 0.250000 0.000000 -v 0.125000 1.000000 0.000000 -v -0.125000 0.250000 0.000000 -v -0.125000 1.000000 0.000000 +v 0.125000 0.250000 -0.000000 +v 0.125000 1.000000 -0.000000 +v -0.125000 0.250000 -0.000000 +v -0.125000 1.000000 -0.000000 v 0.156250 0.218750 0.281250 v 0.156250 1.031250 0.281250 v -0.156250 0.218750 0.281250 @@ -2025,6 +2171,12 @@ v 0.156250 0.218750 -0.031250 v 0.156250 1.031250 -0.031250 v -0.156250 0.218750 -0.031250 v -0.156250 1.031250 -0.031250 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 vt 0.062500 0.687500 vt 0.000000 0.500000 vt 0.062500 0.500000 @@ -2035,10 +2187,8 @@ vt 0.187500 0.687500 vt 0.125000 0.500000 vt 0.125000 0.687500 vt 0.125000 0.750000 -vt 0.187500 0.687500 vt 0.187500 0.750000 vt 0.062500 0.750000 -vt 0.125000 0.750000 vt 0.062500 0.437500 vt -0.000000 0.250000 vt 0.062500 0.250000 @@ -2048,267 +2198,48 @@ vt 0.250000 0.250000 vt 0.187500 0.437500 vt 0.125000 0.250000 vt 0.125000 0.437500 -vt 0.125000 0.500000 -vt 0.187500 0.437500 -vt 0.187500 0.500000 -vt 0.062500 0.500000 -vt 0.125000 0.500000 vt 0.000000 0.687500 -vt 0.125000 0.687500 vt -0.000000 0.437500 -vt 0.125000 0.437500 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -s off -f 493/642/184 494/643/184 492/644/184 -f 495/645/185 498/646/185 494/647/185 -f 499/648/186 496/649/186 498/646/186 -f 497/650/187 492/644/187 496/649/187 -f 498/651/188 492/652/188 494/653/188 -f 495/654/189 497/650/189 499/655/189 -f 501/656/184 502/657/184 500/658/184 -f 503/659/185 506/660/185 502/661/185 -f 507/662/186 504/663/186 506/660/186 -f 505/664/187 500/658/187 504/663/187 -f 506/665/188 500/666/188 502/667/188 -f 503/668/189 505/664/189 507/669/189 -f 493/642/184 495/670/184 494/643/184 -f 495/645/185 499/648/185 498/646/185 -f 499/648/186 497/650/186 496/649/186 -f 497/650/187 493/642/187 492/644/187 -f 498/651/188 496/671/188 492/652/188 -f 495/654/189 493/642/189 497/650/189 -f 501/656/184 503/672/184 502/657/184 -f 503/659/185 507/662/185 506/660/185 -f 507/662/186 505/664/186 504/663/186 -f 505/664/187 501/656/187 500/658/187 -f 506/665/188 504/673/188 500/666/188 -f 503/668/189 501/656/189 505/664/189 -o Head17 -v 0.375000 1.750000 0.375000 -v -0.375000 1.750000 0.375000 -v 0.375000 1.750000 -0.375000 -v -0.375000 1.750000 -0.375000 -v 0.375000 2.500000 0.375000 -v -0.375000 2.500000 0.375000 -v -0.375000 2.500000 -0.375000 -v 0.375000 2.500000 -0.375000 -v 0.421875 1.703125 0.421875 -v -0.421875 1.703125 0.421875 -v 0.421875 1.703125 -0.421875 -v -0.421875 1.703125 -0.421875 -v 0.421875 2.546875 0.421875 -v -0.421875 2.546875 0.421875 -v -0.421875 2.546875 -0.421875 -v 0.421875 2.546875 -0.421875 -vt 0.250000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.125000 0.750000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.750000 -vt 0.000000 0.500000 -vt 0.500000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vt 0.250000 0.750000 -vt 0.750000 1.000000 -vt 0.875000 0.750000 -vt 0.875000 1.000000 -vt 0.625000 0.750000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 0.500000 -vt 0.500000 0.750000 -vt 0.500000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.750000 0.750000 -vt 0.250000 0.750000 -vt 0.500000 0.750000 -vt 0.750000 0.750000 -vt 1.000000 0.750000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 -0.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -s off -f 511/674/190 508/675/190 509/676/190 -f 512/677/191 514/678/191 513/679/191 -f 510/680/192 512/677/192 508/681/192 -f 508/681/193 513/682/193 509/683/193 -f 509/684/194 514/685/194 511/686/194 -f 511/686/195 515/687/195 510/680/195 -f 519/688/190 516/689/190 517/690/190 -f 520/691/191 522/692/191 521/693/191 -f 518/694/192 520/691/192 516/695/192 -f 516/695/193 521/696/193 517/697/193 -f 517/698/194 522/699/194 519/700/194 -f 519/700/195 523/701/195 518/694/195 -f 511/674/190 510/702/190 508/675/190 -f 512/677/191 515/687/191 514/678/191 -f 510/680/192 515/687/192 512/677/192 -f 508/681/193 512/677/193 513/682/193 -f 509/684/194 513/703/194 514/685/194 -f 511/686/195 514/685/195 515/687/195 -f 519/688/190 518/704/190 516/689/190 -f 520/691/191 523/701/191 522/692/191 -f 518/694/192 523/701/192 520/691/192 -f 516/695/193 520/691/193 521/696/193 -f 517/698/194 521/705/194 522/699/194 -f 519/700/195 522/699/195 523/701/195 -o RA17 -v -0.125000 1.750000 0.250000 -v 0.125000 1.750000 0.250000 -v 0.125000 1.000000 0.250000 -v -0.125000 1.000000 0.250000 -v 0.125000 1.750000 0.500000 -v -0.125000 1.750000 0.500000 -v 0.125000 1.000000 0.500000 -v -0.125000 1.000000 0.500000 -vt 0.750000 -0.000000 -vt 0.812500 0.375000 -vt 0.750000 0.375000 -vt 0.625000 0.375000 -vt 0.687500 -0.000000 -vt 0.687500 0.375000 -vt 0.812500 -0.000000 -vt 0.875000 0.375000 -vt 0.750000 0.375000 -vt 0.812500 0.500000 -vt 0.750000 0.500000 -vt 0.687500 0.500000 -vt 0.625000 -0.000000 -vt 0.875000 -0.000000 -vt 0.812500 0.375000 -vt 0.750000 0.500000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 1.0000 0.0000 -s off -f 526/706/196 524/707/196 525/708/196 -f 529/709/197 530/710/197 528/711/197 -f 527/712/198 529/713/198 524/707/198 -f 526/714/199 531/715/199 527/716/199 -f 525/708/200 530/710/200 526/706/200 -f 525/708/201 529/717/201 528/711/201 -f 526/706/196 527/712/196 524/707/196 -f 529/709/197 531/718/197 530/710/197 -f 527/712/198 531/719/198 529/713/198 -f 526/714/199 530/720/199 531/715/199 -f 525/708/200 528/711/200 530/710/200 -f 525/708/201 524/721/201 529/717/201 -o LA17 -v -0.125000 1.000000 -0.500000 -v 0.125000 1.000000 -0.500000 -v -0.125000 1.750000 -0.500000 -v 0.125000 1.750000 -0.500000 -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -v 0.125000 1.750000 -0.250000 -v -0.125000 1.750000 -0.250000 -vt 0.687500 -0.000000 -vt 0.625000 0.375000 -vt 0.687500 0.375000 -vt 0.750000 0.375000 -vt 0.687500 0.500000 -vt 0.750000 0.500000 -vt 0.750000 -0.000000 -vt 0.812500 0.500000 -vt 0.750000 0.375000 -vt 0.750000 0.500000 -vt 0.812500 0.375000 -vt 0.875000 0.375000 -vt 0.812500 -0.000000 -vt 0.625000 -0.000000 -vt 0.812500 0.375000 -vt 0.875000 -0.000000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 -0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 -0.0000 -s off -f 533/722/202 534/723/202 535/724/202 -f 538/725/203 534/726/203 539/727/203 -f 533/722/204 538/725/204 537/728/204 -f 532/729/205 537/730/205 536/731/205 -f 539/732/206 537/728/206 538/725/206 -f 534/733/207 536/734/207 539/732/207 -f 533/722/202 532/735/202 534/723/202 -f 538/725/203 535/724/203 534/726/203 -f 533/722/204 535/724/204 538/725/204 -f 532/729/205 533/736/205 537/730/205 -f 539/732/206 536/734/206 537/728/206 -f 534/733/207 532/737/207 536/734/207 -o LL17 -v -0.125000 1.000000 0.000000 -v -0.125000 0.250000 0.000000 -v 0.125000 1.000000 0.000000 -v 0.125000 0.250000 0.000000 -v -0.125000 1.000000 -0.250000 -v -0.125000 0.250000 -0.250000 -v 0.125000 1.000000 -0.250000 -v 0.125000 0.250000 -0.250000 -vt 0.125000 0.375000 -vt 0.062500 0.500000 -vt 0.125000 0.500000 -vt 0.187500 0.375000 -vt 0.125000 0.500000 -vt 0.187500 0.500000 -vt 0.062500 -0.000000 -vt 0.125000 -0.000000 -vt 0.187500 0.375000 -vt 0.187500 -0.000000 -vt 0.250000 0.375000 -vt 0.250000 -0.000000 -vt 0.000000 -0.000000 -vt 0.062500 0.375000 -vt 0.125000 0.375000 -vt 0.000000 0.375000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -s off -f 542/738/208 544/739/208 540/740/208 -f 547/741/209 541/742/209 545/743/209 -f 547/744/210 542/738/210 543/745/210 -f 543/745/211 540/746/211 541/747/211 -f 541/747/212 544/748/212 545/749/212 -f 545/750/213 546/751/213 547/744/213 -f 542/738/208 546/751/208 544/739/208 -f 547/741/209 543/752/209 541/742/209 -f 547/744/210 546/751/210 542/738/210 -f 543/745/211 542/738/211 540/746/211 -f 541/747/212 540/746/212 544/748/212 -f 545/750/213 544/753/213 546/751/213 +s 0 +f 592/472/242 593/473/242 591/474/242 +f 594/475/243 597/476/243 593/477/243 +f 598/478/244 595/479/244 597/476/244 +f 596/480/245 591/474/245 595/479/245 +f 597/481/246 591/478/246 593/482/246 +f 594/483/247 596/480/247 598/481/247 +f 600/484/242 601/485/242 599/486/242 +f 602/487/243 605/488/243 601/489/243 +f 606/490/244 603/491/244 605/488/244 +f 604/492/245 599/486/245 603/491/245 +f 605/479/246 599/490/246 601/476/246 +f 602/474/247 604/492/247 606/479/247 +f 592/472/242 594/493/242 593/473/242 +f 594/475/243 598/478/243 597/476/243 +f 598/478/244 596/480/244 595/479/244 +f 596/480/245 592/472/245 591/474/245 +f 597/481/246 595/480/246 591/478/246 +f 594/483/247 592/472/247 596/480/247 +f 600/484/242 602/494/242 601/485/242 +f 602/487/243 606/490/243 605/488/243 +f 606/490/244 604/492/244 603/491/244 +f 604/492/245 600/484/245 599/486/245 +f 605/479/246 603/492/246 599/490/246 +f 602/474/247 600/484/247 604/492/247 o RL17 v 0.125000 0.250000 0.250000 v 0.125000 1.000000 0.250000 v -0.125000 0.250000 0.250000 v -0.125000 1.000000 0.250000 -v 0.125000 0.250000 0.000000 -v 0.125000 1.000000 0.000000 -v -0.125000 0.250000 0.000000 -v -0.125000 1.000000 0.000000 +v 0.125000 0.250000 -0.000000 +v 0.125000 1.000000 -0.000000 +v -0.125000 0.250000 -0.000000 +v -0.125000 1.000000 -0.000000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 vt 0.062500 0.375000 vt 0.000000 -0.000000 vt 0.062500 -0.000000 @@ -2319,200 +2250,216 @@ vt 0.187500 0.375000 vt 0.125000 -0.000000 vt 0.125000 0.375000 vt 0.125000 0.500000 -vt 0.187500 0.375000 vt 0.187500 0.500000 vt 0.062500 0.500000 -vt 0.125000 0.500000 vt 0.000000 0.375000 -vt 0.125000 0.375000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -s off -f 549/754/214 550/755/214 548/756/214 -f 551/757/215 554/758/215 550/759/215 -f 555/760/216 552/761/216 554/758/216 -f 553/762/217 548/756/217 552/761/217 -f 554/763/218 548/764/218 550/765/218 -f 551/766/219 553/762/219 555/767/219 -f 549/754/214 551/768/214 550/755/214 -f 551/757/215 555/760/215 554/758/215 -f 555/760/216 553/762/216 552/761/216 -f 553/762/217 549/754/217 548/756/217 -f 554/763/218 552/769/218 548/764/218 -f 551/766/219 549/754/219 553/762/219 -o Body17 -v 0.125000 1.750000 0.250000 -v -0.125000 1.750000 0.250000 -v 0.125000 1.750000 -0.250000 -v -0.125000 1.750000 -0.250000 -v 0.125000 1.000000 0.250000 -v -0.125000 1.000000 0.250000 -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -vt 0.312500 0.375000 -vt 0.437500 0.500000 -vt 0.312500 0.500000 -vt 0.437500 0.500000 -vt 0.562500 0.375000 -vt 0.562500 0.500000 -vt 0.500000 0.375000 -vt 0.625000 -0.000000 -vt 0.625000 0.375000 -vt 0.437500 0.375000 -vt 0.500000 -0.000000 -vt 0.437500 -0.000000 -vt 0.250000 0.375000 -vt 0.312500 -0.000000 -vt 0.437500 0.375000 -vt 0.250000 -0.000000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 1.0000 -s off -f 556/770/220 559/771/220 557/772/220 -f 562/773/221 560/774/221 561/775/221 -f 559/776/222 561/777/222 557/778/222 -f 558/779/223 562/780/223 559/776/223 -f 556/770/224 563/781/224 558/779/224 -f 557/782/225 560/783/225 556/770/225 -f 556/770/220 558/779/220 559/771/220 -f 562/773/221 563/784/221 560/774/221 -f 559/776/222 562/780/222 561/777/222 -f 558/779/223 563/781/223 562/780/223 -f 556/770/224 560/783/224 563/781/224 -f 557/782/225 561/785/225 560/783/225 +s 0 +f 608/495/248 609/496/248 607/497/248 +f 610/498/249 613/499/249 609/500/249 +f 614/501/250 611/502/250 613/499/250 +f 612/503/251 607/497/251 611/502/251 +f 613/504/252 607/501/252 609/505/252 +f 610/506/253 612/503/253 614/504/253 +f 608/495/248 610/507/248 609/496/248 +f 610/498/249 614/501/249 613/499/249 +f 614/501/250 612/503/250 611/502/250 +f 612/503/251 608/495/251 607/497/251 +f 613/504/252 611/503/252 607/501/252 +f 610/506/253 608/495/253 612/503/253 o Socket v 0.625000 0.000000 0.625000 -v 0.625000 0.000000 -0.625000 +v 0.625000 -0.000000 -0.625000 v -0.625000 0.000000 0.625000 -v -0.625000 0.000000 -0.625000 +v -0.625000 -0.000000 -0.625000 v -0.625000 0.250000 0.625000 v 0.625000 0.250000 0.625000 v 0.625000 0.250000 -0.625000 v -0.625000 0.250000 -0.625000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 vt 0.000000 1.000000 vt 1.000000 0.166667 vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.000000 0.166667 -vt 1.000000 0.166667 vt 0.000000 0.166667 vt 1.000000 0.000000 -vt 1.000000 0.166667 -vt 1.000000 0.000000 -vt 0.000000 0.166667 vt 0.000000 0.000000 -vt 0.000000 0.166667 -vt 1.000000 0.000000 -vt 1.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.166667 -vt 0.000000 0.000000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -s off -f 566/786/226 565/787/226 564/788/226 -f 570/789/227 568/790/227 569/791/227 -f 566/792/228 571/793/228 567/794/228 -f 565/795/229 569/796/229 564/797/229 -f 567/798/230 570/799/230 565/787/230 -f 564/800/231 568/790/231 566/801/231 -f 566/786/226 567/798/226 565/787/226 -f 570/789/227 571/802/227 568/790/227 -f 566/792/228 568/803/228 571/793/228 -f 565/795/229 570/804/229 569/796/229 -f 567/798/230 571/805/230 570/799/230 -f 564/800/231 569/791/231 568/790/231 -o Body -v 0.125000 1.750000 0.250000 -v -0.125000 1.750000 0.250000 -v 0.125000 1.750000 -0.250000 -v -0.125000 1.750000 -0.250000 -v 0.125000 1.000000 0.250000 -v -0.125000 1.000000 0.250000 -v -0.125000 1.000000 -0.250000 -v 0.125000 1.000000 -0.250000 -v 0.156250 1.781250 0.281250 -v -0.156250 1.781250 0.281250 -v 0.156250 1.781250 -0.281250 -v -0.156250 1.781250 -0.281250 -v 0.156250 0.968750 0.281250 -v -0.156250 0.968750 0.281250 -v -0.156250 0.968750 -0.281250 -v 0.156250 0.968750 -0.281250 -vt 0.312500 0.687500 -vt 0.437500 0.750000 -vt 0.312500 0.750000 -vt 0.437500 0.750000 -vt 0.562500 0.687500 -vt 0.562500 0.750000 -vt 0.500000 0.687500 -vt 0.625000 0.500000 +s 0 +f 617/508/254 616/509/254 615/510/254 +f 621/510/255 619/511/255 620/509/255 +f 617/511/256 622/512/256 618/509/256 +f 616/512/257 620/511/257 615/513/257 +f 618/511/258 621/512/258 616/509/258 +f 615/512/259 619/511/259 617/513/259 +f 617/508/254 618/511/254 616/509/254 +f 621/510/255 622/508/255 619/511/255 +f 617/511/256 619/513/256 622/512/256 +f 616/512/257 621/509/257 620/511/257 +f 618/511/258 622/513/258 621/512/258 +f 615/512/259 620/509/259 619/511/259 +o Fluoro +v 0.610719 0.246094 0.295662 +v 0.397021 0.246094 0.295662 +v 0.610719 0.246094 0.000000 +v 0.397021 0.246094 0.000000 +v 0.620287 0.301531 0.295662 +v 0.387453 0.301531 0.295662 +v 0.620287 0.301531 0.000000 +v 0.387453 0.301531 0.000000 +v 0.620287 0.273812 0.000000 +v 0.387453 0.273812 0.000000 +v 0.620287 0.273812 0.295662 +v 0.387453 0.273812 0.295662 +v 0.397021 0.246094 0.314141 +v 0.610719 0.246094 0.314141 +v 0.620287 0.301531 0.314141 +v 0.387453 0.301531 0.314141 +v 0.387453 0.273812 0.314141 +v 0.620287 0.273812 0.314141 +v 0.397021 0.246094 -0.295662 +v 0.610719 0.246094 -0.295662 +v 0.397021 0.246094 0.000000 +v 0.610719 0.246094 0.000000 +v 0.387453 0.301531 -0.295662 +v 0.620287 0.301531 -0.295662 +v 0.387453 0.301531 0.000000 +v 0.620287 0.301531 -0.000000 +v 0.387453 0.273812 0.000000 +v 0.620287 0.273812 -0.000000 +v 0.387453 0.273812 -0.295662 +v 0.620287 0.273812 -0.295662 +v 0.610719 0.246094 -0.314141 +v 0.397021 0.246094 -0.314141 +v 0.387453 0.301531 -0.314141 +v 0.620287 0.301531 -0.314141 +v 0.620287 0.273812 -0.314141 +v 0.387453 0.273812 -0.314141 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.9453 -0.3263 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.9453 -0.3263 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.125000 0.937500 +vt 0.625000 0.875000 +vt 0.625000 0.937500 +vt 0.125000 0.687500 +vt 0.625000 0.125000 vt 0.625000 0.687500 -vt 0.437500 0.687500 -vt 0.500000 0.500000 -vt 0.437500 0.500000 -vt 0.250000 0.687500 -vt 0.312500 0.500000 -vt 0.312500 0.437500 -vt 0.437500 0.500000 -vt 0.312500 0.500000 -vt 0.562500 0.500000 -vt 0.437500 0.437500 -vt 0.562500 0.437500 -vt 0.500000 0.437500 -vt 0.625000 0.250000 -vt 0.625000 0.437500 -vt 0.437500 0.437500 -vt 0.500000 0.250000 -vt 0.437500 0.250000 -vt 0.250000 0.437500 -vt 0.312500 0.250000 -vt 0.437500 0.687500 -vt 0.250000 0.500000 -vt 0.437500 0.500000 -vt 0.250000 0.250000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 0.0000 1.0000 -s off -f 572/806/232 575/807/232 573/808/232 -f 578/809/233 576/810/233 577/811/233 -f 575/812/234 577/813/234 573/814/234 -f 574/815/235 578/816/235 575/812/235 -f 572/806/236 579/817/236 574/815/236 -f 573/818/237 576/819/237 572/806/237 -f 580/820/232 583/821/232 581/822/232 -f 585/823/233 587/824/233 584/825/233 -f 583/826/234 585/827/234 581/828/234 -f 582/829/235 586/830/235 583/826/235 -f 580/820/236 587/831/236 582/829/236 -f 581/832/237 584/833/237 580/820/237 -f 572/806/232 574/815/232 575/807/232 -f 578/809/233 579/834/233 576/810/233 -f 575/812/234 578/816/234 577/813/234 -f 574/815/235 579/817/235 578/816/235 -f 572/806/236 576/819/236 579/817/236 -f 573/818/237 577/835/237 576/819/237 -f 580/820/232 582/829/232 583/821/232 -f 585/823/233 586/836/233 587/824/233 -f 583/826/234 586/830/234 585/827/234 -f 582/829/235 587/831/235 586/830/235 -f 580/820/236 584/833/236 587/831/236 -f 581/832/237 585/837/237 584/833/237 +vt 0.687500 0.125000 +vt 0.687500 0.687500 +vt 0.062500 0.687500 +vt 0.000000 0.125000 +vt 0.062500 0.125000 +vt 0.125000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.687500 +vt 0.125000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.062500 +vt 0.625000 0.000000 +vt 0.625000 0.062500 +vt 1.000000 0.375000 +vt 0.937500 0.437500 +vt 0.937500 0.375000 +vt 1.000000 0.437500 +vt 0.937500 1.000000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.937500 0.500000 +vt 0.000000 0.687500 +vt 0.125000 0.875000 +vt 0.125000 0.000000 +s 0 +f 632/514/260 629/515/260 631/516/260 +f 630/517/261 627/518/261 629/519/261 +f 629/519/262 633/520/262 631/521/262 +f 632/522/263 624/523/263 634/524/263 +f 632/522/264 628/525/264 630/517/264 +f 631/521/265 623/526/265 625/527/265 +f 626/528/260 631/516/260 625/529/260 +f 639/530/266 636/531/266 640/532/266 +f 635/533/263 634/534/263 624/535/263 +f 640/534/265 623/533/265 633/536/265 +f 638/525/266 640/532/266 637/518/266 +f 638/537/261 627/538/261 628/539/261 +f 639/534/264 628/538/264 634/536/264 +f 637/540/262 633/536/262 627/538/262 +f 650/514/266 647/515/266 649/516/266 +f 648/517/261 645/518/261 647/519/261 +f 647/519/264 651/520/264 649/521/264 +f 644/541/265 652/524/265 650/522/265 +f 650/522/262 646/525/262 648/517/262 +f 649/521/263 641/526/263 643/527/263 +f 644/528/266 649/516/266 643/529/266 +f 657/530/260 654/531/260 658/532/260 +f 653/533/265 652/534/265 642/535/265 +f 658/534/263 641/533/263 651/536/263 +f 656/525/260 658/532/260 655/518/260 +f 656/537/261 645/538/261 646/539/261 +f 657/534/262 646/538/262 652/536/262 +f 655/540/264 651/536/264 645/538/264 +f 632/514/260 630/542/260 629/515/260 +f 630/517/261 628/525/261 627/518/261 +f 629/519/262 627/518/262 633/520/262 +f 632/522/263 626/541/263 624/523/263 +f 632/522/264 634/524/264 628/525/264 +f 631/521/265 633/520/265 623/526/265 +f 626/528/260 632/514/260 631/516/260 +f 639/530/266 635/543/266 636/531/266 +f 635/533/263 639/536/263 634/534/263 +f 640/534/265 636/535/265 623/533/265 +f 638/525/266 639/530/266 640/532/266 +f 638/537/261 637/540/261 627/538/261 +f 639/534/264 638/540/264 628/538/264 +f 637/540/262 640/534/262 633/536/262 +f 650/514/266 648/542/266 647/515/266 +f 648/517/261 646/525/261 645/518/261 +f 647/519/264 645/518/264 651/520/264 +f 644/541/265 642/523/265 652/524/265 +f 650/522/262 652/524/262 646/525/262 +f 649/521/263 651/520/263 641/526/263 +f 644/528/266 650/514/266 649/516/266 +f 657/530/260 653/543/260 654/531/260 +f 653/533/265 657/536/265 652/534/265 +f 658/534/263 654/535/263 641/533/263 +f 656/525/260 657/530/260 658/532/260 +f 656/537/261 655/540/261 645/538/261 +f 657/534/262 656/540/262 646/538/262 +f 655/540/264 658/534/264 651/536/264 +o Glow +v 0.388825 0.297917 0.296631 +v -0.007899 1.660617 1.039308 +v 0.388825 0.297917 -0.296631 +v -0.007899 1.660617 -1.039308 +v 0.619008 0.297917 0.296631 +v 1.015732 1.660617 1.039308 +v 0.619008 0.297917 -0.296631 +v 1.015732 1.660617 -1.039308 +vn -0.9601 -0.2795 -0.0000 +vn -0.0000 -0.4785 -0.8781 +vn 0.9601 -0.2795 -0.0000 +vn -0.0000 -0.4785 0.8781 +vt 1.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 -0.000000 +vt 1.000000 1.000000 +vt 0.000000 -0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt -0.000000 1.000000 +s 0 +f 660/544/267 661/545/267 659/546/267 +f 662/547/268 665/548/268 661/549/268 +f 665/550/269 664/551/269 663/552/269 +f 664/544/270 659/545/270 663/546/270 +f 660/544/267 662/551/267 661/545/267 +f 662/547/268 666/553/268 665/548/268 +f 665/550/269 666/544/269 664/551/269 +f 664/544/270 660/551/270 659/545/270 diff --git a/src/main/resources/assets/hbm/models/trinkets/lantern.obj b/src/main/resources/assets/hbm/models/trinkets/lantern.obj new file mode 100644 index 000000000..46f55c49d --- /dev/null +++ b/src/main/resources/assets/hbm/models/trinkets/lantern.obj @@ -0,0 +1,500 @@ +# Blender v2.79 (sub 0) OBJ File: 'lantern.blend' +# www.blender.org +o Light +v 0.187500 4.062500 0.187500 +v 0.312500 4.812500 0.312500 +v 0.187500 4.062500 -0.187500 +v 0.312500 4.812500 -0.312500 +v -0.181700 4.062500 0.187500 +v -0.306700 4.812500 0.312500 +v -0.181700 4.062500 -0.187500 +v -0.306700 4.812500 -0.312500 +vn 0.0000 -0.1644 0.9864 +vn -0.9864 -0.1644 0.0000 +vn 0.0000 -0.1644 -0.9864 +vn 0.9864 -0.1644 0.0000 +s off +f 2//1 5//1 1//1 +f 7//2 6//2 8//2 +f 3//3 8//3 4//3 +f 1//4 4//4 2//4 +f 2//1 6//1 5//1 +f 7//2 5//2 6//2 +f 3//3 7//3 8//3 +f 1//4 3//4 4//4 +o Lantern +v -0.125000 -0.250000 0.125000 +v 0.125000 -0.250000 0.125000 +v -0.125000 -0.250000 -0.125000 +v 0.125000 -0.250000 -0.125000 +v -0.125000 0.937500 0.125000 +v 0.125000 0.937500 0.125000 +v -0.125000 0.937500 -0.125000 +v 0.125000 0.937500 -0.125000 +v -0.062500 1.000000 0.062500 +v 0.062500 1.000000 0.062500 +v -0.062500 1.000000 -0.062500 +v 0.062500 1.000000 -0.062500 +v -0.125000 1.062500 0.125000 +v 0.125000 1.062500 0.125000 +v -0.125000 1.062500 -0.125000 +v 0.125000 1.062500 -0.125000 +v -0.125000 1.187500 0.125000 +v 0.125000 1.187500 0.125000 +v -0.125000 1.187500 -0.125000 +v 0.125000 1.187500 -0.125000 +v -0.062500 1.250000 0.062500 +v 0.062500 1.250000 0.062500 +v -0.062500 1.250000 -0.062500 +v 0.062500 1.250000 -0.062500 +v -0.062500 3.250000 -0.062500 +v -0.062500 3.250000 0.062500 +v 0.062500 3.250000 0.062500 +v 0.062500 3.250000 -0.062500 +v -0.125000 3.312500 -0.125000 +v -0.125000 3.312500 0.125000 +v 0.125000 3.312500 0.125000 +v 0.125000 3.312500 -0.125000 +v -0.125000 3.437500 -0.125000 +v -0.125000 3.437500 0.125000 +v 0.125000 3.437500 0.125000 +v 0.125000 3.437500 -0.125000 +v -0.062500 3.500000 -0.062500 +v -0.062500 3.500000 0.062500 +v 0.062500 3.500000 0.062500 +v 0.062500 3.500000 -0.062500 +v -0.062500 4.000000 -0.062500 +v -0.062500 4.000000 0.062500 +v 0.062500 4.000000 0.062500 +v 0.062500 4.000000 -0.062500 +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.250000 4.062500 -0.250000 +v -0.250000 4.062500 0.250000 +v 0.250000 4.062500 0.250000 +v 0.250000 4.062500 -0.250000 +v 0.250000 4.062500 0.250000 +v 0.250000 4.062500 0.187500 +v 0.187500 4.062500 0.250000 +v 0.187500 4.062500 0.187500 +v 0.375000 4.812500 0.375000 +v 0.375000 4.812500 0.312500 +v 0.312500 4.812500 0.375000 +v 0.312500 4.812500 0.312500 +v 0.250000 4.062500 -0.187500 +v 0.250000 4.062500 -0.250000 +v 0.187500 4.062500 -0.187500 +v 0.187500 4.062500 -0.250000 +v 0.375000 4.812500 -0.312500 +v 0.375000 4.812500 -0.375000 +v 0.312500 4.812500 -0.312500 +v 0.312500 4.812500 -0.375000 +v -0.181700 4.062500 0.250000 +v -0.181700 4.062500 0.187500 +v -0.244200 4.062500 0.250000 +v -0.244200 4.062500 0.187500 +v -0.306700 4.812500 0.375000 +v -0.306700 4.812500 0.312500 +v -0.369200 4.812500 0.375000 +v -0.369200 4.812500 0.312500 +v -0.181700 4.062500 -0.187500 +v -0.181700 4.062500 -0.250000 +v -0.244200 4.062500 -0.187500 +v -0.244200 4.062500 -0.250000 +v -0.306700 4.812500 -0.312500 +v -0.306700 4.812500 -0.375000 +v -0.369200 4.812500 -0.312500 +v -0.369200 4.812500 -0.375000 +v 0.375000 4.812500 0.375000 +v 0.375000 4.812500 -0.375000 +v -0.369200 4.812500 0.375000 +v -0.369200 4.812500 -0.375000 +v 0.375000 4.875000 0.375000 +v 0.375000 4.875000 -0.375000 +v -0.369200 4.875000 0.375000 +v -0.369200 4.875000 -0.375000 +v 0.125000 5.000000 -0.125000 +v 0.125000 5.000000 0.125000 +v -0.119200 5.000000 0.125000 +v -0.119200 5.000000 -0.125000 +v -0.059600 5.000000 0.062500 +v 0.065400 5.000000 0.062500 +v -0.059600 5.000000 -0.062500 +v 0.065400 5.000000 -0.062500 +v -0.059600 5.500000 0.062500 +v 0.065400 5.500000 0.062500 +v -0.059600 5.500000 -0.062500 +v 0.065400 5.500000 -0.062500 +vt 0.764706 0.176471 +vt 1.000000 0.235294 +vt 0.764706 0.235294 +vt 0.294118 0.279412 +vt 0.117647 0.294118 +vt 0.058824 0.279412 +vt 0.294118 -0.000000 +vt 0.058824 0.279412 +vt 0.058824 -0.000000 +vt 0.294118 -0.000000 +vt 0.058824 0.279412 +vt 0.058824 -0.000000 +vt 0.294118 -0.000000 +vt 0.058824 -0.000000 +vt 0.294118 -0.000000 +vt 0.058824 0.279412 +vt 0.058824 -0.000000 +vt 0.235294 0.294118 +vt 0.058824 0.308824 +vt 0.117647 0.294118 +vt 0.294118 0.279412 +vt 0.117647 0.294118 +vt 0.294118 0.279412 +vt 0.294118 0.279412 +vt 0.117647 0.294118 +vt 0.294118 0.308824 +vt 0.058824 0.338235 +vt 0.058824 0.308824 +vt 0.235294 0.294118 +vt 0.235294 0.294118 +vt 0.058824 0.308824 +vt 0.235294 0.294118 +vt 0.058824 0.308824 +vt 0.294118 0.338235 +vt 0.117647 0.352941 +vt 0.058824 0.338235 +vt 0.294118 0.308824 +vt 0.294118 0.308824 +vt 0.058824 0.338235 +vt 0.294118 0.308824 +vt 0.058824 0.338235 +vt 0.235294 0.352941 +vt 0.117647 0.823529 +vt 0.117647 0.352941 +vt 0.294118 0.338235 +vt 0.117647 0.352941 +vt 0.294118 0.338235 +vt 0.294118 0.338235 +vt 0.117647 0.352941 +vt 0.117647 0.823529 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.235294 0.352941 +vt 0.117647 0.823529 +vt 0.235294 0.352941 +vt 0.235294 0.352941 +vt 0.117647 0.823529 +vt 0.058824 0.867647 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.294118 0.867647 +vt 0.117647 0.882353 +vt 0.058824 0.867647 +vt 0.058824 0.867647 +vt 0.058824 0.867647 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.117647 0.882353 +vt 0.294118 0.867647 +vt 0.117647 0.882353 +vt 0.294118 0.867647 +vt 0.294118 0.867647 +vt 0.117647 0.882353 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.764706 -0.000000 +vt 0.294118 0.117647 +vt 0.294118 -0.000000 +vt 0.294118 0.132353 +vt 0.764706 0.250000 +vt 0.294118 0.250000 +vt 0.764706 0.117647 +vt 0.764706 0.117647 +vt 0.294118 0.132353 +vt 0.294118 0.117647 +vt 0.764706 0.117647 +vt 0.294118 0.132353 +vt 0.294118 0.117647 +vt 0.764706 0.117647 +vt 0.294118 0.132353 +vt 0.294118 0.117647 +vt 0.882353 0.000000 +vt 0.823529 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 1.000000 0.176471 +vt 0.941176 0.000000 +vt 1.000000 0.000000 +vt 0.941176 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 0.941176 0.000000 +vt 1.000000 0.176471 +vt 0.941176 0.176471 +vt 0.882353 0.000000 +vt 0.823529 0.176471 +vt 0.941176 0.176471 +vt 0.882353 0.000000 +vt 0.941176 0.000000 +vt 0.823529 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 1.000000 0.176471 +vt 1.000000 0.000000 +vt 1.000000 0.176471 +vt 0.941176 0.000000 +vt 1.000000 0.000000 +vt 0.882353 0.000000 +vt 0.941176 0.176471 +vt 0.882353 0.176471 +vt 0.823529 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 0.294118 0.426471 +vt 1.000000 0.250000 +vt 1.000000 0.426471 +vt 0.294118 0.617647 +vt 0.764706 0.558824 +vt 1.000000 0.617647 +vt 1.000000 0.426471 +vt 0.294118 0.441176 +vt 0.294118 0.426471 +vt 0.294118 0.441176 +vt 1.000000 0.426471 +vt 0.294118 0.441176 +vt 0.294118 0.426471 +vt 1.000000 0.426471 +vt 0.294118 0.441176 +vt 0.294118 0.426471 +vt 0.529412 0.500000 +vt 0.764706 0.500000 +vt 1.000000 0.441176 +vt 0.529412 0.558824 +vt 0.529412 0.735294 +vt 0.411765 0.617647 +vt 0.529412 0.617647 +vt 0.764706 0.735294 +vt 0.647059 0.617647 +vt 0.764706 0.617647 +vt 0.647059 0.735294 +vt 0.411765 0.735294 +vt 0.294118 0.617647 +vt 0.411765 0.764706 +vt 0.529412 0.764706 +vt 1.000000 0.176471 +vt 0.235294 0.823529 +vt 0.235294 0.823529 +vt 0.235294 0.823529 +vt 0.235294 0.823529 +vt 0.235294 1.000000 +vt 0.235294 1.000000 +vt 0.235294 1.000000 +vt 0.235294 1.000000 +vt 0.764706 0.132353 +vt 0.764706 0.132353 +vt 0.764706 0.132353 +vt 0.764706 0.132353 +vt 0.882353 0.176471 +vt 1.000000 0.000000 +vt 0.882353 0.176471 +vt 0.882353 0.176471 +vt 0.294118 0.250000 +vt 1.000000 0.441176 +vt 1.000000 0.441176 +vt 1.000000 0.441176 +vt 0.294118 0.735294 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.1644 0.9864 +vn -0.9864 0.1644 0.0000 +vn 0.0000 0.1644 -0.9864 +vn 0.9864 -0.1644 0.0000 +vn 0.0000 0.1644 0.9864 +vn 0.0000 -0.1644 -0.9864 +vn -0.9864 -0.1644 0.0000 +vn 0.9864 0.1644 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.4472 0.8944 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.8944 0.4472 +s off +f 11/1/5 10/2/5 9/3/5 +f 16/4/6 18/5/6 14/6/6 +f 11/7/7 16/8/7 12/9/7 +f 10/10/8 13/11/8 9/12/8 +f 12/13/9 14/6/9 10/14/9 +f 9/15/10 15/16/10 11/17/10 +f 19/18/11 24/19/11 20/20/11 +f 13/21/12 19/22/12 15/16/12 +f 15/23/13 20/20/13 16/8/13 +f 14/24/14 17/25/14 13/11/14 +f 22/26/8 25/27/8 21/28/8 +f 18/29/15 21/28/15 17/25/15 +f 20/30/16 22/31/16 18/5/16 +f 17/32/17 23/33/17 19/22/17 +f 28/34/6 30/35/6 26/36/6 +f 24/37/9 26/36/9 22/31/9 +f 21/38/10 27/39/10 23/33/10 +f 23/40/7 28/41/7 24/19/7 +f 31/42/7 36/43/7 32/44/7 +f 25/45/12 31/46/12 27/39/12 +f 27/47/13 32/44/13 28/41/13 +f 26/48/14 29/49/14 25/27/14 +f 35/50/16 40/51/16 39/52/16 +f 30/53/8 34/54/8 29/49/8 +f 32/55/9 35/50/9 30/35/9 +f 29/56/10 33/57/10 31/46/10 +f 40/51/9 43/58/9 39/52/9 +f 33/57/17 38/59/17 37/60/17 +f 36/43/11 37/61/11 40/62/11 +f 34/54/15 39/63/15 38/64/15 +f 41/65/13 48/66/13 44/67/13 +f 38/59/10 41/68/10 37/60/10 +f 37/61/7 44/67/7 40/62/7 +f 39/63/8 42/69/8 38/64/8 +f 48/70/9 51/71/9 47/72/9 +f 43/73/14 46/74/14 42/69/14 +f 44/75/6 47/72/6 43/58/6 +f 42/76/12 45/77/12 41/68/12 +f 46/78/10 49/79/10 45/77/10 +f 45/80/7 52/81/7 48/66/7 +f 47/82/8 50/83/8 46/74/8 +f 55/84/5 54/85/5 53/86/5 +f 59/87/18 57/88/18 58/89/18 +f 56/90/9 59/87/9 54/85/9 +f 53/91/10 57/92/10 55/93/10 +f 55/94/7 60/95/7 56/96/7 +f 54/97/8 58/98/8 53/99/8 +f 61/100/19 67/101/19 63/102/19 +f 63/102/20 68/103/20 64/104/20 +f 68/105/21 62/106/21 64/107/21 +f 66/108/22 61/100/22 62/106/22 +f 69/109/23 75/110/23 71/111/23 +f 72/112/20 75/113/20 76/114/20 +f 76/114/24 70/115/24 72/112/24 +f 70/115/22 73/116/22 69/109/22 +f 81/117/19 79/118/19 77/119/19 +f 79/118/25 84/120/25 80/121/25 +f 80/121/21 82/122/21 78/123/21 +f 82/124/26 77/119/26 78/125/26 +f 89/126/23 87/127/23 85/128/23 +f 88/129/25 91/130/25 92/131/25 +f 88/129/24 90/132/24 86/133/24 +f 86/133/26 89/134/26 85/135/26 +f 93/136/5 96/137/5 94/138/5 +f 99/139/27 104/140/27 100/141/27 +f 95/142/10 100/143/10 96/144/10 +f 94/138/9 97/145/9 93/136/9 +f 96/146/7 98/147/7 94/148/7 +f 93/149/8 99/150/8 95/151/8 +f 104/140/18 102/152/18 101/153/18 +f 98/154/28 102/152/28 97/145/28 +f 100/141/29 101/153/29 98/154/29 +f 97/145/30 103/155/30 99/139/30 +f 112/156/9 106/157/9 108/158/9 +f 109/159/10 107/160/10 105/161/10 +f 111/162/7 108/158/7 107/160/7 +f 110/163/8 105/164/8 106/157/8 +f 109/165/18 112/156/18 111/166/18 +f 11/1/5 12/167/5 10/2/5 +f 16/4/6 20/30/6 18/5/6 +f 11/7/7 15/23/7 16/8/7 +f 10/10/8 14/24/8 13/11/8 +f 12/13/9 16/4/9 14/6/9 +f 9/15/10 13/21/10 15/16/10 +f 19/18/11 23/40/11 24/19/11 +f 13/21/12 17/32/12 19/22/12 +f 15/23/13 19/18/13 20/20/13 +f 14/24/14 18/29/14 17/25/14 +f 22/26/8 26/48/8 25/27/8 +f 18/29/15 22/26/15 21/28/15 +f 20/30/16 24/37/16 22/31/16 +f 17/32/17 21/38/17 23/33/17 +f 28/34/6 32/55/6 30/35/6 +f 24/37/9 28/34/9 26/36/9 +f 21/38/10 25/45/10 27/39/10 +f 23/40/7 27/47/7 28/41/7 +f 31/42/7 33/168/7 36/43/7 +f 25/45/12 29/56/12 31/46/12 +f 27/47/13 31/42/13 32/44/13 +f 26/48/14 30/53/14 29/49/14 +f 35/50/16 36/169/16 40/51/16 +f 30/53/8 35/170/8 34/54/8 +f 32/55/9 36/169/9 35/50/9 +f 29/56/10 34/171/10 33/57/10 +f 40/51/9 44/75/9 43/58/9 +f 33/57/17 34/171/17 38/59/17 +f 36/43/11 33/168/11 37/61/11 +f 34/54/15 35/170/15 39/63/15 +f 41/65/13 45/80/13 48/66/13 +f 38/59/10 42/76/10 41/68/10 +f 37/61/7 41/65/7 44/67/7 +f 39/63/8 43/73/8 42/69/8 +f 48/70/9 52/172/9 51/71/9 +f 43/73/14 47/82/14 46/74/14 +f 44/75/6 48/70/6 47/72/6 +f 42/76/12 46/78/12 45/77/12 +f 46/78/10 50/173/10 49/79/10 +f 45/80/7 49/174/7 52/81/7 +f 47/82/8 51/175/8 50/83/8 +f 55/84/5 56/90/5 54/85/5 +f 59/87/18 60/176/18 57/88/18 +f 56/90/9 60/176/9 59/87/9 +f 53/91/10 58/177/10 57/92/10 +f 55/94/7 57/178/7 60/95/7 +f 54/97/8 59/179/8 58/98/8 +f 61/100/19 65/180/19 67/101/19 +f 63/102/20 67/101/20 68/103/20 +f 68/105/21 66/108/21 62/106/21 +f 66/108/22 65/180/22 61/100/22 +f 69/109/23 73/116/23 75/110/23 +f 72/112/20 71/181/20 75/113/20 +f 76/114/24 74/182/24 70/115/24 +f 70/115/22 74/182/22 73/116/22 +f 81/117/19 83/183/19 79/118/19 +f 79/118/25 83/183/25 84/120/25 +f 80/121/21 84/120/21 82/122/21 +f 82/124/26 81/117/26 77/119/26 +f 89/126/23 91/130/23 87/127/23 +f 88/129/25 87/127/25 91/130/25 +f 88/129/24 92/131/24 90/132/24 +f 86/133/26 90/132/26 89/134/26 +f 93/136/5 95/184/5 96/137/5 +f 99/139/27 103/155/27 104/140/27 +f 95/142/10 99/185/10 100/143/10 +f 94/138/9 98/154/9 97/145/9 +f 96/146/7 100/186/7 98/147/7 +f 93/149/8 97/187/8 99/150/8 +f 104/140/18 103/155/18 102/152/18 +f 98/154/28 101/153/28 102/152/28 +f 100/141/29 104/140/29 101/153/29 +f 97/145/30 102/152/30 103/155/30 +f 112/156/9 110/163/9 106/157/9 +f 109/159/10 111/162/10 107/160/10 +f 111/162/7 112/156/7 108/158/7 +f 110/163/8 109/188/8 105/164/8 +f 109/165/18 110/163/18 112/156/18 diff --git a/src/main/resources/assets/hbm/models/trinkets/pooh.obj b/src/main/resources/assets/hbm/models/trinkets/pooh.obj new file mode 100644 index 000000000..958bfc3e9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/trinkets/pooh.obj @@ -0,0 +1,334 @@ +# Blender v2.79 (sub 0) OBJ File: 'pooh.blend' +# www.blender.org +o Cube_Cube.001 +v -0.250000 0.062500 0.250000 +v 0.250000 0.062500 0.250000 +v -0.250000 0.062500 -0.250000 +v 0.250000 0.062500 -0.250000 +v -0.250000 0.437500 0.250000 +v 0.250000 0.437500 0.250000 +v -0.250000 0.437500 -0.250000 +v 0.250000 0.437500 -0.250000 +v -0.187500 0.437500 0.187500 +v 0.187500 0.437500 0.187500 +v -0.187500 0.437500 -0.187500 +v 0.187500 0.437500 -0.187500 +v -0.187500 0.625000 -0.187500 +v -0.187500 0.625000 0.187500 +v 0.187500 0.625000 0.187500 +v 0.187500 0.625000 -0.187500 +v -0.250000 0.625000 0.250000 +v 0.250000 0.625000 0.250000 +v -0.250000 0.625000 -0.250000 +v 0.250000 0.625000 -0.250000 +v -0.250000 1.125000 -0.250000 +v -0.250000 1.125000 0.250000 +v 0.250000 1.125000 0.250000 +v 0.250000 1.125000 -0.250000 +v -0.125000 0.000000 -0.062500 +v 0.500000 0.000000 -0.062500 +v -0.125000 0.000000 -0.187500 +v 0.500000 0.000000 -0.187500 +v -0.125000 0.125000 -0.187500 +v -0.125000 0.125000 -0.062500 +v 0.500000 0.125000 -0.062500 +v 0.500000 0.125000 -0.187500 +v -0.125000 0.000000 0.187500 +v 0.500000 0.000000 0.187500 +v -0.125000 0.000000 0.062500 +v 0.500000 0.000000 0.062500 +v -0.125000 0.125000 0.062500 +v -0.125000 0.125000 0.187500 +v 0.500000 0.125000 0.187500 +v 0.500000 0.125000 0.062500 +v -0.062500 0.606694 -0.169194 +v 0.062500 0.606694 -0.169194 +v -0.062500 0.518306 -0.080806 +v 0.062500 0.518306 -0.080806 +v -0.062500 0.253141 -0.345971 +v -0.062500 0.341529 -0.434359 +v 0.062500 0.341529 -0.434359 +v 0.062500 0.253141 -0.345971 +v -0.062500 0.606694 0.169194 +v 0.062500 0.606694 0.169194 +v -0.062500 0.518306 0.080806 +v 0.062500 0.518306 0.080806 +v -0.062500 0.253141 0.345971 +v -0.062500 0.341529 0.434359 +v 0.062500 0.341529 0.434359 +v 0.062500 0.253141 0.345971 +v 0.250000 0.781250 0.031250 +v 0.250000 0.718750 0.031250 +v 0.250000 0.781250 -0.031250 +v 0.250000 0.718750 -0.031250 +v 0.312500 0.781250 -0.031250 +v 0.312500 0.781250 0.031250 +v 0.312500 0.718750 0.031250 +v 0.312500 0.718750 -0.031250 +v -0.093750 1.062500 -0.125000 +v 0.093750 1.062500 -0.125000 +v -0.093750 1.062500 -0.312500 +v 0.093750 1.062500 -0.312500 +v -0.093750 1.250000 -0.312500 +v -0.093750 1.250000 -0.125000 +v 0.093750 1.250000 -0.125000 +v 0.093750 1.250000 -0.312500 +v -0.093750 1.062500 0.312500 +v 0.093750 1.062500 0.312500 +v -0.093750 1.062500 0.125000 +v 0.093750 1.062500 0.125000 +v -0.093750 1.250000 0.125000 +v -0.093750 1.250000 0.312500 +v 0.093750 1.250000 0.312500 +v 0.093750 1.250000 0.125000 +vt 0.400000 -0.000000 +vt 0.200000 0.173913 +vt 0.200000 -0.000000 +vt 0.200000 0.304348 +vt 0.400000 0.478261 +vt 0.200000 0.478261 +vt 0.600000 0.173913 +vt 0.400000 0.304348 +vt 0.400000 0.173913 +vt 0.000000 0.304348 +vt 0.000000 0.173913 +vt 0.800000 0.173913 +vt 0.600000 0.304348 +vt 0.700000 0.304348 +vt 0.550000 0.369565 +vt 0.550000 0.304348 +vt 1.000000 0.304348 +vt 0.850000 0.369565 +vt 0.850000 0.304348 +vt 0.700000 0.369565 +vt 0.400000 0.369565 +vt 0.400000 0.304348 +vt 0.400000 0.478261 +vt 0.200000 0.652174 +vt 0.200000 0.478261 +vt 0.200000 0.826087 +vt 0.400000 1.000000 +vt 0.200000 1.000000 +vt 0.600000 0.652174 +vt 0.400000 0.826087 +vt 0.400000 0.652174 +vt -0.000000 0.826087 +vt -0.000000 0.652174 +vt 0.800000 0.652174 +vt 0.600000 0.826087 +vt 0.900000 0.260870 +vt 0.950000 0.043478 +vt 0.950000 0.260870 +vt 0.800000 0.043478 +vt 0.850000 0.260870 +vt 0.800000 0.260870 +vt 0.850000 -0.000000 +vt 0.800000 0.000000 +vt 0.800000 0.304348 +vt 0.850000 0.304348 +vt 0.850000 0.043478 +vt 0.900000 0.043478 +vt 1.000000 0.260870 +vt 0.900000 0.260870 +vt 0.950000 0.043478 +vt 0.950000 0.260870 +vt 0.800000 0.043478 +vt 0.850000 0.260870 +vt 0.800000 0.260870 +vt 0.850000 -0.000000 +vt 0.800000 0.000000 +vt 0.800000 0.304348 +vt 0.850000 0.304348 +vt 0.850000 0.043478 +vt 0.900000 0.043478 +vt 1.000000 0.260870 +vt 0.550000 0.369565 +vt 0.475000 0.434783 +vt 0.475000 0.369565 +vt 0.400000 0.043478 +vt 0.450000 0.000000 +vt 0.450000 0.043478 +vt 0.600000 0.173913 +vt 0.550000 0.043478 +vt 0.600000 0.043478 +vt 0.450000 0.173913 +vt 0.500000 0.043478 +vt 0.500000 0.173913 +vt 0.550000 0.173913 +vt 0.400000 0.173913 +vt 0.400000 0.000000 +vt 0.450000 0.043478 +vt 0.400000 0.043478 +vt 0.500000 0.173913 +vt 0.450000 0.173913 +vt 0.550000 0.043478 +vt 0.600000 0.173913 +vt 0.550000 0.173913 +vt 0.500000 0.043478 +vt 0.400000 0.173913 +vt 0.425000 0.521739 +vt 0.450000 0.543478 +vt 0.425000 0.543478 +vt 0.425000 0.565217 +vt 0.450000 0.565217 +vt 0.475000 0.543478 +vt 0.450000 0.521739 +vt 0.475000 0.521739 +vt 0.400000 0.521739 +vt 0.400000 0.543478 +vt 0.450000 0.500000 +vt 0.425000 0.500000 +vt 0.475000 0.500000 +vt 0.550000 0.565217 +vt 0.475000 0.565217 +vt 0.550000 0.434783 +vt 0.700000 0.434783 +vt 0.625000 0.500000 +vt 0.625000 0.434783 +vt 0.550000 0.500000 +vt 0.400000 0.500000 +vt 0.400000 0.434783 +vt 0.550000 0.369565 +vt 0.475000 0.434783 +vt 0.475000 0.369565 +vt 0.475000 0.500000 +vt 0.550000 0.565217 +vt 0.475000 0.565217 +vt 0.550000 0.434783 +vt 0.700000 0.434783 +vt 0.625000 0.500000 +vt 0.625000 0.434783 +vt 0.550000 0.500000 +vt 0.400000 0.500000 +vt 0.400000 0.434783 +vt 0.800000 0.304348 +vt 1.000000 0.369565 +vt 0.800000 0.826087 +vt 1.000000 0.043478 +vt 1.000000 0.043478 +vt 0.400000 0.000000 +vt 0.450000 0.000000 +vt 0.600000 0.043478 +vt 0.700000 0.500000 +vt 0.700000 0.500000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/2/4 5/10/4 1/11/4 +f 4/9/5 6/4/5 2/2/5 +f 1/12/6 7/13/6 3/7/6 +f 12/14/5 15/15/5 10/16/5 +f 9/17/6 13/18/6 11/19/6 +f 11/19/3 16/20/3 12/14/3 +f 10/16/4 14/21/4 9/22/4 +f 19/23/1 18/24/1 17/25/1 +f 23/26/2 21/27/2 22/28/2 +f 19/29/3 24/30/3 20/31/3 +f 18/24/4 22/32/4 17/33/4 +f 20/31/5 23/26/5 18/24/5 +f 17/34/6 21/35/6 19/29/6 +f 27/36/1 26/37/1 25/38/1 +f 31/39/2 29/40/2 30/41/2 +f 28/42/5 31/39/5 26/43/5 +f 25/44/6 29/40/6 27/45/6 +f 27/36/3 32/46/3 28/47/3 +f 26/37/4 30/48/4 25/38/4 +f 35/49/1 34/50/1 33/51/1 +f 39/52/2 37/53/2 38/54/2 +f 36/55/5 39/52/5 34/56/5 +f 33/57/6 37/53/6 35/58/6 +f 35/49/3 40/59/3 36/60/3 +f 34/50/4 38/61/4 33/51/4 +f 67/62/1 66/63/1 65/64/1 +f 47/65/7 45/66/7 46/67/7 +f 42/68/5 48/69/5 47/70/5 +f 41/71/6 45/72/6 43/73/6 +f 43/73/8 48/69/8 44/74/8 +f 42/75/9 46/67/9 41/71/9 +f 53/76/8 55/77/8 54/78/8 +f 55/77/5 52/79/5 50/80/5 +f 53/81/6 49/82/6 51/83/6 +f 56/84/7 51/83/7 52/79/7 +f 54/78/10 50/80/10 49/85/10 +f 63/86/5 61/87/5 62/88/5 +f 57/89/2 61/87/2 59/90/2 +f 59/91/3 64/92/3 60/93/3 +f 58/94/4 62/88/4 57/95/4 +f 60/96/1 63/86/1 58/97/1 +f 71/98/2 69/99/2 70/100/2 +f 68/101/5 71/98/5 66/63/5 +f 65/102/6 69/103/6 67/104/6 +f 67/104/3 72/105/3 68/101/3 +f 66/63/4 70/106/4 65/107/4 +f 75/108/1 74/109/1 73/110/1 +f 79/111/2 77/112/2 78/113/2 +f 76/114/5 79/111/5 74/109/5 +f 73/115/6 77/116/6 75/117/6 +f 75/117/3 80/118/3 76/114/3 +f 74/109/4 78/119/4 73/120/4 +f 3/1/1 4/9/1 2/2/1 +f 6/4/2 8/8/2 7/5/2 +f 3/7/3 7/13/3 8/8/3 +f 2/2/4 6/4/4 5/10/4 +f 4/9/5 8/8/5 6/4/5 +f 1/12/6 5/121/6 7/13/6 +f 12/14/5 16/20/5 15/15/5 +f 9/17/6 14/122/6 13/18/6 +f 11/19/3 13/18/3 16/20/3 +f 10/16/4 15/15/4 14/21/4 +f 19/23/1 20/31/1 18/24/1 +f 23/26/2 24/30/2 21/27/2 +f 19/29/3 21/35/3 24/30/3 +f 18/24/4 23/26/4 22/32/4 +f 20/31/5 24/30/5 23/26/5 +f 17/34/6 22/123/6 21/35/6 +f 27/36/1 28/47/1 26/37/1 +f 31/39/2 32/46/2 29/40/2 +f 28/42/5 32/46/5 31/39/5 +f 25/44/6 30/41/6 29/40/6 +f 27/36/3 29/40/3 32/46/3 +f 26/37/4 31/124/4 30/48/4 +f 35/49/1 36/60/1 34/50/1 +f 39/52/2 40/59/2 37/53/2 +f 36/55/5 40/59/5 39/52/5 +f 33/57/6 38/54/6 37/53/6 +f 35/49/3 37/53/3 40/59/3 +f 34/50/4 39/125/4 38/61/4 +f 67/62/1 68/101/1 66/63/1 +f 47/65/7 48/126/7 45/66/7 +f 42/68/5 44/74/5 48/69/5 +f 41/71/6 46/67/6 45/72/6 +f 43/73/8 45/72/8 48/69/8 +f 42/75/9 47/65/9 46/67/9 +f 53/76/8 56/127/8 55/77/8 +f 55/77/5 56/84/5 52/79/5 +f 53/81/6 54/128/6 49/82/6 +f 56/84/7 53/81/7 51/83/7 +f 54/78/10 55/77/10 50/80/10 +f 63/86/5 64/92/5 61/87/5 +f 57/89/2 62/88/2 61/87/2 +f 59/91/3 61/87/3 64/92/3 +f 58/94/4 63/86/4 62/88/4 +f 60/96/1 64/92/1 63/86/1 +f 71/98/2 72/105/2 69/99/2 +f 68/101/5 72/105/5 71/98/5 +f 65/102/6 70/129/6 69/103/6 +f 67/104/3 69/103/3 72/105/3 +f 66/63/4 71/98/4 70/106/4 +f 75/108/1 76/114/1 74/109/1 +f 79/111/2 80/118/2 77/112/2 +f 76/114/5 80/118/5 79/111/5 +f 73/115/6 78/130/6 77/116/6 +f 75/117/3 77/116/3 80/118/3 +f 74/109/4 79/111/4 78/119/4 diff --git a/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj b/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj index 10fc715a6..a165813f1 100644 --- a/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj +++ b/src/main/resources/assets/hbm/models/trinkets/snowglobe.obj @@ -1,581 +1,3328 @@ # Blender v2.79 (sub 0) OBJ File: 'snowglobe.blend' # www.blender.org -o Glass -v 0.000000 1.000000 -3.500000 -v -1.339392 1.000000 -3.233578 -v -2.474874 1.000000 -2.474874 -v -3.233578 1.000000 -1.339392 -v -3.500000 1.000000 0.000000 -v -3.233578 1.000000 1.339393 -v -2.474874 1.000000 2.474874 -v -1.339392 1.000000 3.233578 -v -0.000000 1.000000 3.500000 -v 1.339391 1.000000 3.233579 -v 2.474873 1.000000 2.474874 -v 3.233578 1.000000 1.339393 -v 3.500000 1.000000 0.000000 -v 3.233578 1.000000 -1.339393 -v 2.474873 1.000000 -2.474874 -v 1.339391 1.000000 -3.233579 -v 0.000001 5.000000 -1.205920 -v 0.000001 4.469670 -2.511333 -v -0.461486 5.000000 -1.114124 -v -0.961046 4.469670 -2.320169 -v -0.852714 5.000000 -0.852715 -v -1.775780 4.469670 -1.775781 -v -1.114124 5.000000 -0.461486 -v -2.320169 4.469670 -0.961045 -v -1.205920 5.000000 0.000000 -v -2.511333 4.469670 0.000000 -v -1.114124 5.000000 0.461486 -v -2.320169 4.469669 0.961046 -v -0.852714 5.000000 0.852715 -v -1.775780 4.469670 1.775781 -v -0.461485 5.000000 1.114124 -v -0.961046 4.469670 2.320169 -v -0.000000 5.000000 1.205920 -v -0.000000 4.469670 2.511333 -v 0.461486 5.000000 1.114124 -v 0.961045 4.469670 2.320169 -v 0.852714 5.000000 0.852715 -v 1.775780 4.469669 1.775782 -v 1.114125 5.000000 0.461486 -v 2.320169 4.469670 0.961046 -v 1.205920 5.000000 0.000000 -v 2.511333 4.469670 0.000000 -v 1.114125 5.000000 -0.461486 -v 2.320169 4.469670 -0.961046 -v 0.852714 5.000000 -0.852715 -v 1.775780 4.469670 -1.775782 -v 0.461484 5.000000 -1.114125 -v 0.961044 4.469669 -2.320170 -v 0.000000 4.030330 -2.959280 -v 0.000000 2.750000 -3.500000 -v -1.339392 2.750000 -3.233578 -v -1.132467 4.030330 -2.734018 -v -2.474874 2.750000 -2.474874 -v -2.092527 4.030330 -2.092527 -v -3.233578 2.750000 -1.339392 -v -2.734018 4.030330 -1.132467 -v -3.500000 2.750000 0.000000 -v -2.959280 4.030330 0.000000 -v -3.233578 2.750000 1.339393 -v -2.734018 4.030330 1.132467 -v -2.474874 2.750000 2.474874 -v -2.092527 4.030330 2.092527 -v -1.339392 2.750000 3.233578 -v -1.132468 4.030330 2.734018 -v -0.000000 2.750000 3.500000 -v -0.000000 4.030330 2.959280 -v 1.339391 2.750000 3.233579 -v 1.132467 4.030330 2.734018 -v 2.474873 2.750000 2.474874 -v 2.092527 4.030330 2.092527 -v 3.233578 2.750000 1.339393 -v 2.734018 4.030330 1.132468 -v 3.500000 2.750000 0.000000 -v 2.959280 4.030330 0.000000 -v 3.233578 2.750000 -1.339393 -v 2.734018 4.030330 -1.132468 -v 2.474873 2.750000 -2.474874 -v 2.092526 4.030330 -2.092527 -v 1.339391 2.750000 -3.233579 -v 1.132466 4.030330 -2.734019 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vn 0.5221 0.8250 -0.2163 -vn 0.5899 0.5513 -0.5899 -vn 0.3996 0.8250 -0.3996 -vn -0.3996 0.8250 0.3996 -vn -0.3193 0.5513 0.7707 -vn -0.2163 0.8250 0.5221 -vn 0.3193 0.5513 -0.7707 -vn 0.2163 0.8250 -0.5221 -vn 0.0000 0.5513 0.8343 -vn 0.0000 0.8250 0.5651 -vn 0.3193 0.5513 0.7707 -vn 0.2163 0.8250 0.5221 -vn 0.3996 0.8250 0.3996 -vn 0.5899 0.5513 0.5899 -vn -0.3996 0.8250 -0.3996 -vn -0.7707 0.5513 -0.3193 -vn -0.5221 0.8250 -0.2163 -vn 0.0000 0.5513 -0.8343 -vn 0.0000 0.8250 -0.5651 -vn 0.7707 0.5513 0.3193 -vn 0.5221 0.8250 0.2163 -vn -0.8343 0.5513 0.0000 -vn -0.5651 0.8250 0.0000 -vn 0.8343 0.5513 0.0000 -vn 0.5651 0.8250 0.0000 -vn -0.7707 0.5513 0.3193 -vn -0.5221 0.8250 0.2163 -vn 0.7707 0.5513 -0.3193 -vn -0.5899 0.5513 0.5899 -vn -0.3827 0.0000 -0.9239 -vn 0.0000 0.1938 -0.9810 +o SierraMadre +v -1.000000 1.500000 1.000000 +v 1.000000 1.500000 1.000000 +v -1.000000 1.500000 -1.000000 +v 1.000000 1.500000 -1.000000 +v -1.000000 3.000000 -1.000000 +v -1.000000 3.000000 1.000000 +v 1.000000 3.000000 1.000000 +v 1.000000 3.000000 -1.000000 +v -1.250000 1.500000 0.500000 +v 1.250000 1.500000 0.500000 +v -1.250000 1.500000 -0.500000 +v 1.250000 1.500000 -0.500000 +v -1.250000 4.000000 -0.500000 +v -1.250000 4.000000 0.500000 +v 1.250000 4.000000 0.500000 +v 1.250000 4.000000 -0.500000 +v -1.250000 4.125000 -0.250000 +v 1.500000 1.000000 2.000000 +v -1.250000 4.125000 0.250000 +v 1.250000 4.125000 0.250000 +v -1.500000 1.000000 2.000000 +v 1.250000 4.125000 -0.250000 +v -1.500000 1.000000 -2.000000 +v 1.500000 1.000000 -2.000000 +v -1.500000 1.500000 2.000000 +v 1.500000 1.500000 2.000000 +v -1.500000 1.500000 -2.000000 +v 1.500000 1.500000 -2.000000 +v 1.124000 1.500000 0.126000 +v 1.376000 1.500000 0.126000 +v 1.124000 1.500000 -0.126000 +v 1.376000 1.500000 -0.126000 +v 1.124000 4.750000 -0.126000 +v 1.124000 4.750000 0.126000 +v 1.376000 4.750000 0.126000 +v 1.376000 4.750000 -0.126000 +vt 0.400169 0.766151 +vt 0.473712 0.839693 +vt 0.400169 0.839693 +vt 0.358338 0.755432 +vt 0.267290 0.823719 +vt 0.267290 0.755432 +vt 0.358338 0.755432 +vt 0.267290 0.823719 +vt 0.267290 0.755432 +vt 0.358338 0.755432 +vt 0.267290 0.823719 +vt 0.267290 0.755432 +vt 0.358338 0.755432 +vt 0.267290 0.823719 +vt 0.267290 0.755432 +vt 0.500609 0.906794 +vt 0.624891 1.000005 +vt 0.500609 1.000005 +vt 0.446133 0.756958 +vt 0.455326 0.848886 +vt 0.446133 0.848886 +vt 0.369719 0.755432 +vt 0.255909 0.869243 +vt 0.255909 0.755432 +vt 0.369719 0.755432 +vt 0.255909 0.869243 +vt 0.255909 0.755432 +vt 0.324195 0.874933 +vt 0.301433 0.874933 +vt 0.290052 0.869243 +vt 0.324195 0.874933 +vt 0.301433 0.874933 +vt 0.290052 0.869243 +vt 0.418555 0.756958 +vt 0.427747 0.848886 +vt 0.418555 0.848886 +vt 0.624149 0.875209 +vt 0.500594 0.890653 +vt 0.500594 0.875209 +vt 0.597474 0.875209 +vt 0.504808 0.890653 +vt 0.504808 0.875209 +vt 0.427747 0.756958 +vt 0.597474 0.875209 +vt 0.504808 0.890653 +vt 0.504808 0.875209 +vt 0.624149 0.875209 +vt 0.500594 0.890653 +vt 0.500594 0.875209 +vt 0.432307 0.752325 +vt 0.441573 0.761591 +vt 0.432307 0.761591 +vt 0.395609 0.752361 +vt 0.386343 0.871868 +vt 0.386343 0.752361 +vt 0.487538 0.752361 +vt 0.478271 0.871868 +vt 0.478271 0.752361 +vt 0.441573 0.752361 +vt 0.432307 0.871868 +vt 0.432307 0.752361 +vt 0.441573 0.752361 +vt 0.432307 0.871868 +vt 0.432307 0.752361 +vt 0.473712 0.766151 +vt 0.358338 0.823719 +vt 0.358338 0.823719 +vt 0.358338 0.823719 +vt 0.358338 0.823719 +vt 0.624891 0.906794 +vt 0.455326 0.756958 +vt 0.369719 0.869243 +vt 0.369719 0.869243 +vt 0.290052 0.755432 +vt 0.335576 0.755432 +vt 0.335576 0.869243 +vt 0.290052 0.755432 +vt 0.335576 0.755432 +vt 0.335576 0.869243 +vt 0.624149 0.890653 +vt 0.597474 0.890653 +vt 0.597474 0.890653 +vt 0.624149 0.890653 +vt 0.441573 0.752325 +vt 0.395609 0.871868 +vt 0.487538 0.871868 +vt 0.441573 0.871868 +vt 0.441573 0.871868 +vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 -1.0000 -vn -0.3193 0.5513 -0.7707 -vn -0.5899 0.5513 -0.5899 -vn -0.9239 0.0000 -0.3827 -vn -0.6937 0.1938 -0.6937 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.8944 0.4472 +s off +f 7/1/1 5/2/1 6/3/1 +f 3/4/2 8/5/2 4/6/2 +f 2/7/3 6/8/3 1/9/3 +f 4/10/4 7/11/4 2/12/4 +f 1/13/5 5/14/5 3/15/5 +f 26/16/1 27/17/1 25/18/1 +f 22/19/6 13/20/6 17/21/6 +f 11/22/2 16/23/2 12/24/2 +f 10/25/3 14/26/3 9/27/3 +f 22/28/4 20/29/4 15/30/4 +f 19/31/5 17/32/5 13/33/5 +f 15/34/7 19/35/7 14/36/7 +f 21/37/5 27/38/5 23/39/5 +f 18/40/3 25/41/3 21/42/3 +f 20/43/1 17/21/1 19/35/1 +f 23/44/2 28/45/2 24/46/2 +f 24/47/4 26/48/4 18/49/4 +f 35/50/1 33/51/1 34/52/1 +f 31/53/2 36/54/2 32/55/2 +f 30/56/3 34/57/3 29/58/3 +f 32/59/4 35/60/4 30/61/4 +f 29/62/5 33/63/5 31/64/5 +f 7/1/1 8/65/1 5/2/1 +f 3/4/2 5/66/2 8/5/2 +f 2/7/3 7/67/3 6/8/3 +f 4/10/4 8/68/4 7/11/4 +f 1/13/5 6/69/5 5/14/5 +f 26/16/1 28/70/1 27/17/1 +f 22/19/6 16/71/6 13/20/6 +f 11/22/2 13/72/2 16/23/2 +f 10/25/3 15/73/3 14/26/3 +f 15/30/4 10/74/4 12/75/4 +f 12/75/4 16/76/4 15/30/4 +f 16/76/4 22/28/4 15/30/4 +f 13/33/5 11/77/5 9/78/5 +f 9/78/5 14/79/5 13/33/5 +f 14/79/5 19/31/5 13/33/5 +f 15/34/7 20/43/7 19/35/7 +f 21/37/5 25/80/5 27/38/5 +f 18/40/3 26/81/3 25/41/3 +f 20/43/1 22/19/1 17/21/1 +f 23/44/2 27/82/2 28/45/2 +f 24/47/4 28/83/4 26/48/4 +f 35/50/1 36/84/1 33/51/1 +f 31/53/2 33/85/2 36/54/2 +f 30/56/3 35/86/3 34/57/3 +f 32/59/4 36/87/4 35/60/4 +f 29/62/5 34/88/5 33/63/5 +o Prydwen +v 0.000000 3.000000 1.500000 +v -0.250000 2.933013 1.500000 +v -0.433013 2.750000 1.500000 +v -0.500000 2.500000 1.500000 +v -0.433013 2.250000 1.500000 +v -0.250000 2.066987 1.500000 +v -0.000000 2.000000 1.500000 +v 0.250000 2.066987 1.500000 +v 0.433013 2.250000 1.500000 +v 0.500000 2.500000 1.500000 +v 0.433013 2.750000 1.500000 +v 0.250000 2.933012 1.500000 +v 0.000000 3.000000 -1.500000 +v -0.250000 2.933013 -1.500000 +v -0.433013 2.750000 -1.500000 +v -0.500000 2.500000 -1.500000 +v -0.433013 2.250000 -1.500000 +v -0.250000 2.066987 -1.500000 +v -0.000000 2.000000 -1.500000 +v 0.250000 2.066987 -1.500000 +v 0.433013 2.250000 -1.500000 +v 0.500000 2.500000 -1.500000 +v 0.433013 2.750000 -1.500000 +v 0.250000 2.933012 -1.500000 +v 0.000000 2.625000 -2.500000 +v -0.062500 2.608253 -2.500000 +v -0.108253 2.562500 -2.500000 +v -0.125000 2.500000 -2.500000 +v -0.108253 2.437500 -2.500000 +v -0.062500 2.391747 -2.500000 +v -0.000000 2.375000 -2.500000 +v 0.062500 2.391747 -2.500000 +v 0.108253 2.437500 -2.500000 +v 0.125000 2.500000 -2.500000 +v 0.108253 2.562500 -2.500000 +v 0.062500 2.608253 -2.500000 +v 0.000000 2.750000 2.000000 +v -0.125000 2.716507 2.000000 +v -0.216506 2.625000 2.000000 +v -0.250000 2.500000 2.000000 +v -0.216506 2.375000 2.000000 +v -0.125000 2.283493 2.000000 +v -0.000000 2.250000 2.000000 +v 0.125000 2.283493 2.000000 +v 0.216506 2.375000 2.000000 +v 0.250000 2.500000 2.000000 +v 0.216506 2.625000 2.000000 +v 0.125000 2.716506 2.000000 +v -0.125000 3.000000 -2.500000 +v 0.125000 3.000000 -2.500000 +v -0.125000 1.625000 -2.500000 +v 0.125000 1.625000 -2.500000 +v -0.062500 3.000000 -2.500000 +v 0.062500 3.000000 -2.500000 +v -0.062500 2.000000 -2.500000 +v 0.062500 2.000000 -2.500000 +v -0.062500 3.000000 -1.500000 +v 0.062500 3.000000 -1.500000 +v -0.062500 2.000000 -1.500000 +v 0.062500 2.000000 -1.500000 +v -0.125000 1.625000 -2.760000 +v -0.125000 3.000000 -2.760000 +v 0.125000 3.000000 -2.760000 +v 0.125000 1.625000 -2.760000 +v -0.250000 2.125000 1.500000 +v 0.250000 2.125000 1.500000 +v -0.250000 2.125000 0.500000 +v 0.250000 2.125000 0.500000 +v -0.250000 1.750000 0.500000 +v -0.250000 1.750000 1.500000 +v 0.250000 1.750000 1.500000 +v 0.250000 1.750000 0.500000 +v -0.125000 1.750000 1.375000 +v 0.125000 1.750000 1.375000 +v -0.125000 1.750000 -0.625000 +v 0.125000 1.750000 -0.625000 +v -0.125000 1.625000 -0.625000 +v -0.125000 1.625000 1.375000 +v 0.125000 1.625000 1.375000 +v 0.125000 1.625000 -0.625000 +v -0.250000 2.125000 -0.625000 +v 0.250000 2.125000 -0.625000 +v -0.250000 2.125000 -1.125000 +v 0.250000 2.125000 -1.125000 +v -0.250000 1.500000 -1.125000 +v -0.250000 1.500000 -0.625000 +v 0.250000 1.500000 -0.625000 +v 0.250000 1.500000 -1.125000 +v -0.250000 1.625000 0.500000 +v -0.250000 1.625000 1.500000 +v 0.250000 1.625000 1.500000 +v 0.250000 1.625000 0.500000 +v -0.250000 1.500000 0.500000 +v -0.250000 1.500000 1.500000 +v 0.250000 1.500000 1.500000 +v 0.250000 1.500000 0.500000 +v -0.062500 2.437500 2.000000 +v 0.062500 2.437500 2.000000 +v -0.062500 2.562500 2.000000 +v 0.062500 2.562500 2.000000 +v -0.062500 2.562500 2.750000 +v -0.062500 2.437500 2.750000 +v 0.062500 2.437500 2.750000 +v 0.062500 2.562500 2.750000 +v -0.062500 2.437500 2.250000 +v 0.062500 2.437500 2.250000 +v -0.062500 2.437500 2.125000 +v 0.062500 2.437500 2.125000 +v -0.062500 1.562500 1.500000 +v 0.062500 1.562500 1.500000 +v -0.062500 1.562500 1.375000 +v 0.062500 1.562500 1.375000 +vt 0.682837 0.937347 +vt 0.692469 0.937347 +vt 0.687653 0.945689 +vt 0.059873 0.920665 +vt 0.065433 0.951250 +vt 0.059873 0.951250 +vt 0.059873 0.951250 +vt 0.065433 0.920665 +vt 0.065433 0.951250 +vt 0.007155 0.951250 +vt 0.001372 0.920665 +vt 0.007155 0.920665 +vt 0.118151 0.935957 +vt 0.095907 0.933177 +vt 0.118151 0.933177 +vt 0.118151 0.935957 +vt 0.095907 0.933177 +vt 0.118151 0.933177 +vt 0.118151 0.951250 +vt 0.095907 0.929006 +vt 0.118151 0.929006 +vt 0.007155 0.929006 +vt 0.029399 0.951250 +vt 0.007155 0.951250 +vt 0.118151 0.931786 +vt 0.123934 0.937347 +vt 0.118151 0.937347 +vt 0.118151 0.931786 +vt 0.123934 0.937347 +vt 0.118151 0.937347 +vt 0.118151 0.920665 +vt 0.123934 0.951250 +vt 0.118151 0.951250 +vt 0.656957 0.931786 +vt 0.701444 0.937347 +vt 0.656957 0.937347 +vt 0.051420 0.929006 +vt 0.029176 0.940128 +vt 0.029176 0.929006 +vt 0.057092 0.931786 +vt 0.068214 0.923445 +vt 0.068214 0.931786 +vt 0.057092 0.931786 +vt 0.068214 0.923445 +vt 0.068214 0.931786 +vt 0.029176 0.931786 +vt 0.051420 0.923445 +vt 0.051420 0.931786 +vt 0.073886 0.931786 +vt 0.096130 0.923445 +vt 0.096130 0.931786 +vt 0.701444 0.931786 +vt 0.656957 0.937347 +vt 0.656957 0.931786 +vt 0.656957 0.923445 +vt 0.701444 0.920665 +vt 0.701444 0.923445 +vt 0.673862 0.923445 +vt 0.718349 0.920665 +vt 0.718349 0.923445 +vt 0.684873 0.923445 +vt 0.690433 0.920665 +vt 0.690433 0.923445 +vt 0.087566 0.929006 +vt 0.076444 0.940128 +vt 0.076444 0.929006 +vt 0.057092 0.931786 +vt 0.068214 0.917884 +vt 0.068214 0.931786 +vt 0.057092 0.931786 +vt 0.068214 0.917884 +vt 0.068214 0.931786 +vt 0.076444 0.931786 +vt 0.087566 0.917884 +vt 0.087566 0.931786 +vt 0.037740 0.931786 +vt 0.048862 0.917884 +vt 0.048862 0.931786 +vt 0.029176 0.929006 +vt 0.051420 0.940128 +vt 0.029176 0.940128 +vt 0.051420 0.929006 +vt 0.029176 0.940128 +vt 0.029176 0.929006 +vt 0.029176 0.920665 +vt 0.051420 0.917884 +vt 0.051420 0.920665 +vt 0.073886 0.920665 +vt 0.096130 0.917884 +vt 0.096130 0.920665 +vt 0.057092 0.920665 +vt 0.068214 0.917884 +vt 0.068214 0.920665 +vt 0.057092 0.920665 +vt 0.068214 0.917884 +vt 0.068214 0.920665 +vt 0.689043 0.938738 +vt 0.686263 0.941518 +vt 0.686263 0.938738 +vt 0.643054 0.935957 +vt 0.626372 0.933177 +vt 0.643054 0.933177 +vt 0.643054 0.935957 +vt 0.626372 0.933177 +vt 0.643054 0.933177 +vt 0.643054 0.941518 +vt 0.626372 0.938738 +vt 0.643054 0.938738 +vt 0.732252 0.938738 +vt 0.748934 0.941518 +vt 0.732252 0.941518 +vt 0.640274 0.938738 +vt 0.654176 0.919274 +vt 0.656957 0.919274 +vt 0.637494 0.933177 +vt 0.654176 0.935957 +vt 0.637494 0.935957 +vt 0.735032 0.938738 +vt 0.721130 0.919274 +vt 0.737812 0.938738 +vt 0.640274 0.933177 +vt 0.656957 0.935957 +vt 0.640274 0.935957 +vt 0.684873 0.944944 +vt 0.682837 0.942908 +vt 0.682092 0.940128 +vt 0.684873 0.935312 +vt 0.687653 0.934567 +vt 0.690433 0.935312 +vt 0.693214 0.940128 +vt 0.692469 0.942908 +vt 0.690433 0.944944 +vt 0.065433 0.920665 +vt 0.059873 0.920665 +vt 0.001372 0.951250 +vt 0.095907 0.935957 +vt 0.095907 0.935957 +vt 0.095907 0.951250 +vt 0.029399 0.929006 +vt 0.123934 0.931786 +vt 0.123934 0.931786 +vt 0.123934 0.920665 +vt 0.701444 0.931786 +vt 0.051420 0.940128 +vt 0.057092 0.923445 +vt 0.057092 0.923445 +vt 0.029176 0.923445 +vt 0.073886 0.923445 +vt 0.701444 0.937347 +vt 0.656957 0.920665 +vt 0.673862 0.920665 +vt 0.684873 0.920665 +vt 0.087566 0.940128 +vt 0.057092 0.917884 +vt 0.057092 0.917884 +vt 0.076444 0.917884 +vt 0.037740 0.917884 +vt 0.051420 0.929006 +vt 0.051420 0.940128 +vt 0.029176 0.917884 +vt 0.073886 0.917884 +vt 0.057092 0.917884 +vt 0.057092 0.917884 +vt 0.689043 0.941518 +vt 0.626372 0.935957 +vt 0.626372 0.935957 +vt 0.626372 0.941518 +vt 0.748934 0.938738 +vt 0.637494 0.938738 +vt 0.654176 0.933177 +vt 0.718349 0.919274 +vt 0.656957 0.933177 +vt 0.720907 0.934567 +vt 0.654176 0.940128 +vt 0.654176 0.934567 +vt 0.720907 0.940128 +vt 0.654176 0.944199 +vt 0.654176 0.940128 +vt 0.720907 0.924935 +vt 0.654176 0.929006 +vt 0.654176 0.924935 +vt 0.720907 0.929006 +vt 0.654176 0.929006 +vt 0.720907 0.940128 +vt 0.654176 0.944199 +vt 0.720907 0.934567 +vt 0.654176 0.940128 +vt 0.654176 0.934567 +vt 0.720907 0.929006 +vt 0.654176 0.934567 +vt 0.654399 0.945689 +vt 0.721130 0.940128 +vt 0.721130 0.945689 +vt 0.720907 0.945689 +vt 0.654176 0.945689 +vt 0.720907 0.934567 +vt 0.654399 0.940128 +vt 0.721130 0.934567 +vt 0.720907 0.924935 +vt 0.654176 0.924935 +vt 0.743151 0.933177 +vt 0.632155 0.941518 +vt 0.743151 0.940128 +vt 0.720907 0.940128 +vt 0.743151 0.935957 +vt 0.632155 0.940128 +vt 0.654399 0.934567 +vt 0.743151 0.932159 +vt 0.743151 0.935957 +vt 0.720907 0.944199 +vt 0.743151 0.932159 +vt 0.743151 0.933177 +vt 0.720907 0.944199 +vt 0.743151 0.938738 +vt 0.643054 0.937347 +vt 0.643054 0.934567 +vt 0.643054 0.937347 +vt 0.643054 0.929751 +vt 0.643054 0.931786 +vt 0.643054 0.940128 +vt 0.643054 0.937347 +vt 0.643054 0.931786 +vt 0.732252 0.942908 +vt 0.643054 0.934567 +vt 0.732252 0.937347 +vt 0.732252 0.940128 +vt 0.643054 0.929751 +vt 0.743151 0.934567 +vt 0.743151 0.941518 +vt 0.632155 0.938738 +vt 0.743151 0.934567 +vt 0.743151 0.936975 +vt 0.743151 0.936975 +vt 0.643054 0.939383 +vt 0.643054 0.939383 +vt 0.643054 0.942908 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.6508 0.7593 +vn 0.0000 0.6508 -0.7593 +vn -0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.4682 -0.8109 -0.3511 +vn -0.0000 -0.9363 -0.3511 +vn -0.8109 0.4682 -0.3511 +vn -0.9363 -0.0000 -0.3511 +vn 0.9363 -0.0000 -0.3511 +vn 0.8109 0.4682 -0.3511 +vn 0.4682 -0.8109 -0.3511 +vn -0.8109 -0.4682 -0.3511 +vn 0.4682 0.8109 -0.3511 +vn 0.0000 0.9363 -0.3511 +vn -0.4682 0.8109 -0.3511 +vn 0.8109 -0.4682 -0.3511 +vn 0.0000 0.8944 0.4472 +vn -0.4472 0.7746 0.4472 +vn 0.7746 -0.4472 0.4472 +vn 0.4472 -0.7746 0.4472 +vn -0.4472 -0.7746 0.4472 +vn -0.7746 -0.4472 0.4472 +vn 0.4472 0.7746 0.4472 +vn -0.7746 0.4472 0.4472 +vn 0.8944 -0.0000 0.4472 +vn 0.0000 -0.8944 0.4472 +vn -0.8944 -0.0000 0.4472 +vn 0.7746 0.4472 0.4472 +s off +f 77/89/8 81/90/8 73/91/8 +f 87/92/8 86/93/8 85/94/8 +f 99/95/9 97/96/9 98/97/9 +f 85/98/10 97/99/10 87/100/10 +f 92/101/11 95/102/11 91/103/11 +f 89/104/12 94/105/12 90/106/12 +f 90/107/13 96/108/13 92/109/13 +f 91/110/10 93/111/10 89/112/10 +f 87/113/11 100/114/11 88/115/11 +f 86/116/12 98/117/12 85/118/12 +f 88/119/13 99/120/13 86/121/13 +f 110/122/12 111/123/12 109/124/12 +f 105/125/11 107/126/11 106/127/11 +f 104/128/9 105/129/9 103/130/9 +f 101/131/8 107/132/8 102/133/8 +f 102/134/13 108/135/13 104/136/13 +f 103/137/10 106/138/10 101/139/10 +f 113/140/11 115/141/11 114/142/11 +f 110/143/13 116/144/13 112/145/13 +f 111/146/10 114/147/10 109/148/10 +f 109/149/8 115/150/8 110/151/8 +f 121/152/11 123/153/11 122/154/11 +f 120/155/9 121/156/9 119/157/9 +f 117/158/8 123/159/8 118/160/8 +f 118/161/13 124/162/13 120/163/13 +f 119/164/10 122/165/10 117/166/10 +f 127/167/12 125/168/12 126/169/12 +f 129/170/11 131/171/11 130/172/11 +f 127/173/13 132/174/13 128/175/13 +f 125/176/10 130/177/10 126/178/10 +f 128/179/9 129/180/9 125/181/9 +f 126/182/8 131/183/8 127/184/8 +f 139/185/8 137/186/8 138/187/8 +f 135/188/12 140/189/12 136/190/12 +f 134/191/11 138/192/11 133/193/11 +f 136/194/13 139/195/13 134/196/13 +f 133/197/10 137/198/10 135/199/10 +f 144/200/13 146/201/13 148/202/13 +f 141/203/14 146/204/14 142/205/14 +f 143/206/10 145/207/10 141/208/10 +f 144/209/15 147/210/15 143/211/15 +f 73/91/8 74/212/8 75/213/8 +f 75/213/8 76/214/8 77/89/8 +f 77/89/8 78/215/8 79/216/8 +f 79/216/8 80/217/8 81/90/8 +f 81/90/8 82/218/8 83/219/8 +f 83/219/8 84/220/8 81/90/8 +f 84/220/8 73/91/8 81/90/8 +f 73/91/8 75/213/8 77/89/8 +f 77/89/8 79/216/8 81/90/8 +f 87/92/8 88/221/8 86/93/8 +f 99/95/9 100/222/9 97/96/9 +f 85/98/10 98/223/10 97/99/10 +f 92/101/11 96/224/11 95/102/11 +f 89/104/12 93/225/12 94/105/12 +f 90/107/13 94/226/13 96/108/13 +f 91/110/10 95/227/10 93/111/10 +f 87/113/11 97/228/11 100/114/11 +f 86/116/12 99/229/12 98/117/12 +f 88/119/13 100/230/13 99/120/13 +f 110/122/12 112/231/12 111/123/12 +f 105/125/11 108/232/11 107/126/11 +f 104/128/9 108/233/9 105/129/9 +f 101/131/8 106/234/8 107/132/8 +f 102/134/13 107/235/13 108/135/13 +f 103/137/10 105/236/10 106/138/10 +f 113/140/11 116/237/11 115/141/11 +f 110/143/13 115/238/13 116/144/13 +f 111/146/10 113/239/10 114/147/10 +f 109/149/8 114/240/8 115/150/8 +f 121/152/11 124/241/11 123/153/11 +f 120/155/9 124/242/9 121/156/9 +f 117/158/8 122/243/8 123/159/8 +f 118/161/13 123/244/13 124/162/13 +f 119/164/10 121/245/10 122/165/10 +f 127/167/12 128/246/12 125/168/12 +f 129/170/11 132/247/11 131/171/11 +f 127/173/13 131/248/13 132/174/13 +f 125/176/10 129/249/10 130/177/10 +f 128/179/9 132/250/9 129/180/9 +f 126/182/8 130/251/8 131/183/8 +f 139/185/8 140/252/8 137/186/8 +f 135/188/12 137/253/12 140/189/12 +f 134/191/11 139/254/11 138/192/11 +f 136/194/13 140/255/13 139/195/13 +f 133/197/10 138/256/10 137/198/10 +f 144/200/13 142/257/13 146/201/13 +f 141/203/14 145/258/14 146/204/14 +f 143/206/10 147/259/10 145/207/10 +f 144/209/15 148/260/15 147/210/15 +s 1 +f 49/261/12 38/262/16 37/263/12 +f 56/264/17 45/265/18 44/266/17 +f 53/267/19 42/268/20 41/269/19 +f 60/270/21 37/263/12 48/271/21 +f 50/272/16 39/273/22 38/262/16 +f 57/274/18 46/275/13 45/276/18 +f 54/277/20 43/278/11 42/268/20 +f 51/279/22 40/280/10 39/281/22 +f 46/275/13 59/282/23 47/283/23 +f 55/284/11 44/266/17 43/278/11 +f 52/285/10 41/286/19 40/280/10 +f 59/287/23 48/271/21 47/288/23 +f 66/289/24 55/284/25 54/277/24 +f 63/290/26 52/285/27 51/279/26 +f 70/291/28 59/282/29 58/292/28 +f 55/284/25 68/293/30 56/264/30 +f 64/294/27 53/295/31 52/285/27 +f 71/296/29 60/270/32 59/287/29 +f 49/261/33 62/297/34 50/272/34 +f 68/293/30 57/298/35 56/264/30 +f 65/299/31 54/277/24 53/267/31 +f 72/300/32 49/261/33 60/270/32 +f 62/297/34 51/301/26 50/272/34 +f 69/302/35 58/292/28 57/274/35 +f 37/263/36 74/303/37 73/304/36 +f 45/265/38 80/305/39 44/266/39 +f 42/268/40 77/306/41 41/269/41 +f 48/271/42 73/304/36 84/307/42 +f 39/273/43 74/303/37 38/262/37 +f 45/276/38 82/308/44 81/309/38 +f 43/278/45 78/310/40 42/268/40 +f 40/280/46 75/311/43 39/281/43 +f 47/283/47 82/308/44 46/275/44 +f 43/278/45 80/305/39 79/312/45 +f 40/280/46 77/313/41 76/314/46 +f 48/271/42 83/315/47 47/288/47 +f 49/261/12 50/272/16 38/262/16 +f 56/264/17 57/298/18 45/265/18 +f 53/267/19 54/277/20 42/268/20 +f 60/270/21 49/261/12 37/263/12 +f 50/272/16 51/301/22 39/273/22 +f 57/274/18 58/292/13 46/275/13 +f 54/277/20 55/284/11 43/278/11 +f 51/279/22 52/285/10 40/280/10 +f 46/275/13 58/292/13 59/282/23 +f 55/284/11 56/264/17 44/266/17 +f 52/285/10 53/295/19 41/286/19 +f 59/287/23 60/270/21 48/271/21 +f 66/289/24 67/316/25 55/284/25 +f 63/290/26 64/294/27 52/285/27 +f 70/291/28 71/317/29 59/282/29 +f 55/284/25 67/316/25 68/293/30 +f 64/294/27 65/318/31 53/295/31 +f 71/296/29 72/300/32 60/270/32 +f 49/261/33 61/319/33 62/297/34 +f 68/293/30 69/320/35 57/298/35 +f 65/299/31 66/289/24 54/277/24 +f 72/300/32 61/319/33 49/261/33 +f 62/297/34 63/321/26 51/301/26 +f 69/302/35 70/291/28 58/292/28 +f 37/263/36 38/262/37 74/303/37 +f 45/265/38 81/322/38 80/305/39 +f 42/268/40 78/310/40 77/306/41 +f 48/271/42 37/263/36 73/304/36 +f 39/273/43 75/323/43 74/303/37 +f 45/276/38 46/275/44 82/308/44 +f 43/278/45 79/312/45 78/310/40 +f 40/280/46 76/314/46 75/311/43 +f 47/283/47 83/324/47 82/308/44 +f 43/278/45 44/266/39 80/305/39 +f 40/280/46 41/286/41 77/313/41 +f 48/271/42 84/307/42 83/315/47 +o Lucky38 +v 0.000000 1.125000 -0.750000 +v -0.375000 1.125000 -0.649519 +v -0.649519 1.125000 -0.375000 +v -0.750000 1.125000 0.000000 +v -0.649519 1.125000 0.375000 +v -0.375000 1.125000 0.649519 +v -0.000000 1.125000 0.750000 +v 0.375000 1.125000 0.649519 +v 0.649519 1.125000 0.375000 +v 0.750000 1.125000 0.000000 +v 0.649519 1.125000 -0.375000 +v 0.375000 1.125000 -0.649519 +v 0.000000 1.375000 -0.750000 +v -0.375000 1.375000 -0.649519 +v -0.649519 1.375000 -0.375000 +v -0.750000 1.375000 0.000000 +v -0.649519 1.375000 0.375000 +v -0.375000 1.375000 0.649519 +v -0.000000 1.375000 0.750000 +v 0.375000 1.375000 0.649519 +v 0.649519 1.375000 0.375000 +v 0.750000 1.375000 0.000000 +v 0.649519 1.375000 -0.375000 +v 0.375000 1.375000 -0.649519 +v 0.000000 1.625000 -0.500000 +v -0.250000 1.625000 -0.433013 +v -0.433013 1.625000 -0.250000 +v -0.500000 1.625000 0.000000 +v -0.433013 1.625000 0.250000 +v -0.250000 1.625000 0.433013 +v -0.000000 1.625000 0.500000 +v 0.250000 1.625000 0.433013 +v 0.433013 1.625000 0.250000 +v 0.500000 1.625000 0.000000 +v 0.433013 1.625000 -0.250000 +v 0.250000 1.625000 -0.433012 +v 0.000000 2.125000 -0.500000 +v -0.250000 2.125000 -0.433013 +v -0.433013 2.125000 -0.250000 +v -0.500000 2.125000 0.000000 +v -0.433013 2.125000 0.250000 +v -0.250000 2.125000 0.433013 +v -0.000000 2.125000 0.500000 +v 0.250000 2.125000 0.433013 +v 0.433013 2.125000 0.250000 +v 0.500000 2.125000 0.000000 +v 0.433013 2.125000 -0.250000 +v 0.250000 2.125000 -0.433012 +v 0.000000 2.875000 -0.250000 +v -0.125000 2.875000 -0.216506 +v -0.216506 2.875000 -0.125000 +v -0.250000 2.875000 0.000000 +v -0.216506 2.875000 0.125000 +v -0.125000 2.875000 0.216506 +v -0.000000 2.875000 0.250000 +v 0.125000 2.875000 0.216507 +v 0.216506 2.875000 0.125000 +v 0.250000 2.875000 0.000000 +v 0.216506 2.875000 -0.125000 +v 0.125000 2.875000 -0.216506 +v 0.000000 3.875000 -0.250000 +v -0.125000 3.875000 -0.216506 +v -0.216506 3.875000 -0.125000 +v -0.250000 3.875000 0.000000 +v -0.216506 3.875000 0.125000 +v -0.125000 3.875000 0.216506 +v -0.000000 3.875000 0.250000 +v 0.125000 3.875000 0.216507 +v 0.216506 3.875000 0.125000 +v 0.250000 3.875000 0.000000 +v 0.216506 3.875000 -0.125000 +v 0.125000 3.875000 -0.216506 +v 0.000000 3.875000 -0.500000 +v -0.250000 3.875000 -0.433013 +v -0.433013 3.875000 -0.250000 +v -0.500000 3.875000 0.000000 +v -0.433013 3.875000 0.250000 +v -0.250000 3.875000 0.433013 +v -0.000000 3.875000 0.500000 +v 0.250000 3.875000 0.433013 +v 0.433013 3.875000 0.250000 +v 0.500000 3.875000 0.000000 +v 0.433013 3.875000 -0.250000 +v 0.250000 3.875000 -0.433012 +v -0.312500 4.125000 -0.541266 +v -0.000000 4.125000 -0.625000 +v -0.541266 4.125000 -0.312500 +v -0.625000 4.125000 0.000000 +v -0.541266 4.125000 0.312500 +v -0.312500 4.125000 0.541266 +v -0.000000 4.125000 0.625000 +v 0.312500 4.125000 0.541266 +v 0.541266 4.125000 0.312500 +v 0.625000 4.125000 0.000000 +v 0.541266 4.125000 -0.312500 +v 0.312500 4.125000 -0.541266 +v 0.125000 2.875000 0.062500 +v 0.250000 2.875000 0.062500 +v 0.125000 2.875000 -0.062500 +v 0.250000 2.875000 -0.062500 +v 0.500000 3.875000 -0.062500 +v 0.500000 3.875000 0.062500 +v 0.625000 3.875000 0.062500 +v 0.625000 3.875000 -0.062500 +v 0.500000 3.875000 -0.062500 +v 0.500000 3.875000 0.062500 +v 0.500000 4.000000 -0.062500 +v 0.500000 4.000000 0.062500 +v 1.000000 3.875000 -0.062500 +v 1.000000 3.875000 0.062500 +v 1.000000 4.000000 -0.062500 +v 1.000000 4.000000 0.062500 +v 1.000000 3.812500 -0.125000 +v 1.000000 3.812500 0.125000 +v 1.000000 4.062500 -0.125000 +v 1.000000 4.062500 0.125000 +v 1.250000 3.812500 -0.125000 +v 1.250000 3.812500 0.125000 +v 1.250000 4.062500 -0.125000 +v 1.250000 4.062500 0.125000 +v 0.000000 4.125000 -0.500000 +v -0.250000 4.125000 -0.433013 +v -0.433013 4.125000 -0.250000 +v -0.500000 4.125000 0.000000 +v -0.433013 4.125000 0.250000 +v -0.250000 4.125000 0.433013 +v -0.000000 4.125000 0.500000 +v 0.250000 4.125000 0.433013 +v 0.433013 4.125000 0.250000 +v 0.500000 4.125000 0.000000 +v 0.433013 4.125000 -0.250000 +v 0.250000 4.125000 -0.433012 +v -0.125000 4.250000 -0.216506 +v 0.000000 4.250000 -0.250000 +v -0.216506 4.250000 -0.125000 +v -0.250000 4.250000 0.000000 +v -0.216506 4.250000 0.125000 +v -0.125000 4.250000 0.216506 +v -0.000000 4.250000 0.250000 +v 0.125000 4.250000 0.216507 +v 0.216506 4.250000 0.125000 +v 0.250000 4.250000 0.000000 +v 0.216506 4.250000 -0.125000 +v 0.125000 4.250000 -0.216506 +v -0.125000 2.875000 -0.062500 +v -0.250000 2.875000 -0.062500 +v -0.125000 2.875000 0.062500 +v -0.250000 2.875000 0.062500 +v -0.500000 3.875000 0.062500 +v -0.500000 3.875000 -0.062500 +v -0.625000 3.875000 -0.062500 +v -0.625000 3.875000 0.062500 +v -0.500000 3.875000 0.062500 +v -0.500000 3.875000 -0.062500 +v -0.500000 4.000000 0.062500 +v -0.500000 4.000000 -0.062500 +v -1.000000 3.875000 0.062500 +v -1.000000 3.875000 -0.062500 +v -1.000000 4.000000 0.062500 +v -1.000000 4.000000 -0.062500 +v -1.000000 3.812500 0.125000 +v -1.000000 3.812500 -0.125000 +v -1.000000 4.062500 0.125000 +v -1.000000 4.062500 -0.125000 +v -1.250000 3.812500 0.125000 +v -1.250000 3.812500 -0.125000 +v -1.250000 4.062500 0.125000 +v -1.250000 4.062500 -0.125000 +v 0.062500 2.875000 -0.125000 +v 0.062500 2.875000 -0.250000 +v -0.062500 2.875000 -0.125000 +v -0.062500 2.875000 -0.250000 +v -0.062500 3.875000 -0.500000 +v 0.062500 3.875000 -0.500000 +v 0.062500 3.875000 -0.625000 +v -0.062500 3.875000 -0.625000 +v -0.062500 3.875000 -0.500000 +v 0.062500 3.875000 -0.500000 +v -0.062500 4.000000 -0.500000 +v 0.062500 4.000000 -0.500000 +v -0.062500 3.875000 -1.000000 +v 0.062500 3.875000 -1.000000 +v -0.062500 4.000000 -1.000000 +v 0.062500 4.000000 -1.000000 +v -0.125000 3.812500 -1.000000 +v 0.125000 3.812500 -1.000000 +v -0.125000 4.062500 -1.000000 +v 0.125000 4.062500 -1.000000 +v -0.125000 3.812500 -1.250000 +v 0.125000 3.812500 -1.250000 +v -0.125000 4.062500 -1.250000 +v 0.125000 4.062500 -1.250000 +v -0.062500 2.875000 0.125000 +v -0.062500 2.875000 0.250000 +v 0.062500 2.875000 0.125000 +v 0.062500 2.875000 0.250000 +v 0.062500 3.875000 0.500000 +v -0.062500 3.875000 0.500000 +v -0.062500 3.875000 0.625000 +v 0.062500 3.875000 0.625000 +v 0.062500 3.875000 0.500000 +v -0.062500 3.875000 0.500000 +v 0.062500 4.000000 0.500000 +v -0.062500 4.000000 0.500000 +v 0.062500 3.875000 1.000000 +v -0.062500 3.875000 1.000000 +v 0.062500 4.000000 1.000000 +v -0.062500 4.000000 1.000000 +v 0.125000 3.812500 1.000000 +v -0.125000 3.812500 1.000000 +v 0.125000 4.062500 1.000000 +v -0.125000 4.062500 1.000000 +v 0.125000 3.812500 1.250000 +v -0.125000 3.812500 1.250000 +v 0.125000 4.062500 1.250000 +v -0.125000 4.062500 1.250000 +v 0.000000 1.125000 -2.000000 +v -1.000000 1.125000 -1.732051 +v -1.732051 1.125000 -1.000000 +v -2.000000 1.125000 0.000000 +v -1.732051 1.125000 1.000000 +v -1.000000 1.125000 1.732051 +v -0.000000 1.125000 2.000000 +v 1.000000 1.125000 1.732051 +v 1.732050 1.125000 1.000001 +v 2.000000 1.125000 0.000001 +v 1.732051 1.125000 -0.999999 +v 1.000001 1.125000 -1.732050 +v -1.000000 1.000000 -1.732051 +v 0.000000 1.000000 -2.000000 +v -1.732051 1.000000 -1.000000 +v -2.000000 1.000000 0.000000 +v -1.732051 1.000000 1.000000 +v -1.000000 1.000000 1.732051 +v -0.000000 1.000000 2.000000 +v 1.000000 1.000000 1.732051 +v 1.732050 1.000000 1.000001 +v 2.000000 1.000000 0.000001 +v 1.732051 1.000000 -0.999999 +v 1.000001 1.000000 -1.732050 +v -0.015625 4.250000 0.015625 +v 0.015625 4.250000 0.015625 +v -0.015625 4.250000 -0.015625 +v 0.015625 4.250000 -0.015625 +v -0.015625 4.500000 -0.015625 +v -0.015625 4.500000 0.015625 +v 0.015625 4.500000 0.015625 +v 0.015625 4.500000 -0.015625 +vt 0.453538 0.802124 +vt 0.438272 0.828565 +vt 0.423006 0.802124 +vt 0.451493 0.833837 +vt 0.438272 0.832091 +vt 0.448848 0.829257 +vt 0.456591 0.821514 +vt 0.461171 0.824159 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.172126 0.942461 +vt 0.163312 0.977716 +vt 0.158905 0.977716 +vt 0.189753 0.942461 +vt 0.198567 0.977716 +vt 0.185346 0.942461 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.198567 0.977716 +vt 0.216194 0.982123 +vt 0.198567 0.982123 +vt 0.198567 0.935851 +vt 0.216194 0.940257 +vt 0.198567 0.940257 +vt 0.163312 0.982123 +vt 0.145685 0.977716 +vt 0.163312 0.977716 +vt 0.202092 0.935410 +vt 0.223245 0.940698 +vt 0.202092 0.940698 +vt 0.442679 0.857210 +vt 0.433865 0.848396 +vt 0.442679 0.848396 +vt 0.442679 0.848396 +vt 0.433865 0.857210 +vt 0.433865 0.848396 +vt 0.403017 0.857210 +vt 0.394203 0.848396 +vt 0.403017 0.848396 +vt 0.480578 0.805650 +vt 0.491154 0.816226 +vt 0.480578 0.816226 +vt 0.473527 0.848396 +vt 0.482341 0.857210 +vt 0.473527 0.857210 +vt 0.473527 0.806531 +vt 0.482341 0.815345 +vt 0.473527 0.815345 +vt 0.438272 0.800362 +vt 0.447432 0.805650 +vt 0.438272 0.821514 +vt 0.438272 0.837379 +vt 0.427696 0.829257 +vt 0.415373 0.824159 +vt 0.425051 0.833837 +vt 0.411831 0.810938 +vt 0.419953 0.821514 +vt 0.415373 0.797717 +vt 0.417119 0.810938 +vt 0.425051 0.788039 +vt 0.419953 0.800362 +vt 0.438272 0.784497 +vt 0.427696 0.792619 +vt 0.451493 0.788039 +vt 0.438272 0.789785 +vt 0.461171 0.797717 +vt 0.448848 0.792619 +vt 0.464713 0.810938 +vt 0.456591 0.800362 +vt 0.459425 0.810938 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.172126 0.942461 +vt 0.163312 0.977716 +vt 0.158905 0.977716 +vt 0.189753 0.942461 +vt 0.198567 0.977716 +vt 0.185346 0.942461 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.198567 0.977716 +vt 0.216194 0.982123 +vt 0.198567 0.982123 +vt 0.163312 0.940257 +vt 0.145685 0.935851 +vt 0.163312 0.935851 +vt 0.163312 0.982123 +vt 0.145685 0.977716 +vt 0.163312 0.977716 +vt 0.159787 0.935410 +vt 0.138634 0.940698 +vt 0.138634 0.935410 +vt 0.442679 0.857210 +vt 0.433865 0.848396 +vt 0.442679 0.848396 +vt 0.442679 0.848396 +vt 0.433865 0.857210 +vt 0.433865 0.848396 +vt 0.403017 0.857210 +vt 0.394203 0.848396 +vt 0.403017 0.848396 +vt 0.395966 0.805650 +vt 0.385390 0.816226 +vt 0.385390 0.805650 +vt 0.473527 0.848396 +vt 0.482341 0.857210 +vt 0.473527 0.857210 +vt 0.403017 0.815345 +vt 0.394203 0.806531 +vt 0.403017 0.806531 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.172126 0.942461 +vt 0.163312 0.977716 +vt 0.158905 0.977716 +vt 0.189753 0.942461 +vt 0.198567 0.977716 +vt 0.185346 0.942461 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.198567 0.977716 +vt 0.216194 0.982123 +vt 0.198567 0.982123 +vt 0.178736 0.920427 +vt 0.183143 0.902799 +vt 0.183143 0.920427 +vt 0.163312 0.982123 +vt 0.145685 0.977716 +vt 0.163312 0.977716 +vt 0.183584 0.959207 +vt 0.178295 0.980360 +vt 0.178295 0.959207 +vt 0.442679 0.857210 +vt 0.433865 0.848396 +vt 0.442679 0.848396 +vt 0.442679 0.848396 +vt 0.433865 0.857210 +vt 0.433865 0.848396 +vt 0.403017 0.857210 +vt 0.394203 0.848396 +vt 0.403017 0.848396 +vt 0.443560 0.853244 +vt 0.432984 0.863820 +vt 0.432984 0.853244 +vt 0.473527 0.848396 +vt 0.482341 0.857210 +vt 0.473527 0.857210 +vt 0.433865 0.775683 +vt 0.442679 0.766869 +vt 0.442679 0.775683 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.172126 0.942461 +vt 0.163312 0.977716 +vt 0.158905 0.977716 +vt 0.189753 0.942461 +vt 0.198567 0.977716 +vt 0.185346 0.942461 +vt 0.183143 0.942461 +vt 0.178736 0.977716 +vt 0.178736 0.942461 +vt 0.198567 0.977716 +vt 0.216194 0.982123 +vt 0.198567 0.982123 +vt 0.183143 0.955682 +vt 0.178736 0.973309 +vt 0.178736 0.955682 +vt 0.163312 0.982123 +vt 0.145685 0.977716 +vt 0.163312 0.977716 +vt 0.183584 0.916901 +vt 0.178295 0.895748 +vt 0.183584 0.895748 +vt 0.442679 0.857210 +vt 0.433865 0.848396 +vt 0.442679 0.848396 +vt 0.442679 0.848396 +vt 0.433865 0.857210 +vt 0.433865 0.848396 +vt 0.403017 0.857210 +vt 0.394203 0.848396 +vt 0.403017 0.848396 +vt 0.432984 0.768632 +vt 0.443560 0.758056 +vt 0.443560 0.768632 +vt 0.473527 0.848396 +vt 0.482341 0.857210 +vt 0.473527 0.857210 +vt 0.442679 0.846193 +vt 0.433865 0.855007 +vt 0.433865 0.846193 +vt 0.135431 0.907687 +vt 0.240221 0.907686 +vt 0.187826 0.998437 +vt 0.436884 0.800879 +vt 0.448380 0.813502 +vt 0.436187 0.812803 +vt 0.438823 0.863820 +vt 0.437721 0.872634 +vt 0.437721 0.863820 +vt 0.438823 0.863820 +vt 0.437721 0.872634 +vt 0.437721 0.863820 +vt 0.438731 0.855007 +vt 0.437813 0.862351 +vt 0.437813 0.855007 +vt 0.438823 0.863820 +vt 0.437721 0.872634 +vt 0.437721 0.863820 +vt 0.429458 0.795672 +vt 0.438272 0.793311 +vt 0.447086 0.795672 +vt 0.455899 0.810938 +vt 0.453538 0.819752 +vt 0.447086 0.826204 +vt 0.429458 0.826204 +vt 0.423006 0.819752 +vt 0.420645 0.810938 +vt 0.183143 0.977716 +vt 0.176533 0.942461 +vt 0.202974 0.977716 +vt 0.183143 0.977716 +vt 0.216194 0.977716 +vt 0.216194 0.935851 +vt 0.145685 0.982123 +vt 0.223245 0.935410 +vt 0.433865 0.857210 +vt 0.442679 0.857210 +vt 0.394203 0.857210 +vt 0.491154 0.805650 +vt 0.482341 0.848396 +vt 0.482341 0.806531 +vt 0.432984 0.820097 +vt 0.429113 0.816226 +vt 0.427696 0.810938 +vt 0.429113 0.805650 +vt 0.432984 0.801778 +vt 0.443560 0.801778 +vt 0.448848 0.810938 +vt 0.447432 0.816226 +vt 0.443560 0.820097 +vt 0.183143 0.977716 +vt 0.176533 0.942461 +vt 0.202974 0.977716 +vt 0.183143 0.977716 +vt 0.216194 0.977716 +vt 0.145685 0.940257 +vt 0.145685 0.982123 +vt 0.159787 0.940698 +vt 0.433865 0.857210 +vt 0.442679 0.857210 +vt 0.394203 0.857210 +vt 0.395966 0.816226 +vt 0.482341 0.848396 +vt 0.394203 0.815345 +vt 0.183143 0.977716 +vt 0.176533 0.942461 +vt 0.202974 0.977716 +vt 0.183143 0.977716 +vt 0.216194 0.977716 +vt 0.178736 0.902799 +vt 0.145685 0.982123 +vt 0.183584 0.980360 +vt 0.433865 0.857210 +vt 0.442679 0.857210 +vt 0.394203 0.857210 +vt 0.443560 0.863820 +vt 0.482341 0.848396 +vt 0.433865 0.766869 +vt 0.183143 0.977716 +vt 0.176533 0.942461 +vt 0.202974 0.977716 +vt 0.183143 0.977716 +vt 0.216194 0.977716 +vt 0.183143 0.973309 +vt 0.145685 0.982123 +vt 0.178295 0.916901 +vt 0.433865 0.857210 +vt 0.442679 0.857210 +vt 0.394203 0.857210 +vt 0.432984 0.758056 +vt 0.482341 0.848396 +vt 0.442679 0.855007 +vt 0.157576 0.990331 +vt 0.135431 0.968187 +vt 0.127326 0.937937 +vt 0.157576 0.885542 +vt 0.187826 0.877436 +vt 0.218076 0.885542 +vt 0.248326 0.937937 +vt 0.240221 0.968187 +vt 0.218076 0.990331 +vt 0.449122 0.801583 +vt 0.438823 0.872634 +vt 0.438823 0.872634 +vt 0.438731 0.862351 +vt 0.438823 0.872634 +vt 0.203838 0.880765 +vt 0.194160 0.889579 +vt 0.194160 0.880765 +vt 0.203838 0.880765 +vt 0.194160 0.889579 +vt 0.194160 0.880765 +vt 0.180939 0.880765 +vt 0.167719 0.889579 +vt 0.167719 0.880765 +vt 0.203838 0.880765 +vt 0.194160 0.889579 +vt 0.194160 0.880765 +vt 0.180939 0.880765 +vt 0.167719 0.889579 +vt 0.167719 0.880765 +vt 0.180939 0.880765 +vt 0.167719 0.889579 +vt 0.167719 0.880765 +vt 0.180939 0.880765 +vt 0.167719 0.889579 +vt 0.167719 0.880765 +vt 0.194160 0.880765 +vt 0.180939 0.889579 +vt 0.180939 0.889579 +vt 0.180939 0.889579 +vt 0.203838 0.880765 +vt 0.194160 0.889579 +vt 0.180939 0.889579 +vt 0.425051 0.762463 +vt 0.438272 0.771276 +vt 0.429458 0.771276 +vt 0.438272 0.762462 +vt 0.447086 0.771276 +vt 0.451493 0.762462 +vt 0.453538 0.771276 +vt 0.425051 0.762462 +vt 0.438272 0.771276 +vt 0.429458 0.771276 +vt 0.451493 0.762462 +vt 0.438272 0.762462 +vt 0.461171 0.762462 +vt 0.447086 0.771276 +vt 0.438272 0.762462 +vt 0.429458 0.771276 +vt 0.425051 0.762462 +vt 0.451493 0.762463 +vt 0.438272 0.771276 +vt 0.461171 0.762463 +vt 0.447086 0.771276 +vt 0.438272 0.762462 +vt 0.429458 0.771276 +vt 0.425051 0.762462 +vt 0.447086 0.771276 +vt 0.438272 0.771276 +vt 0.451493 0.762462 +vt 0.453538 0.771276 +vt 0.574440 0.880554 +vt 0.565627 0.898182 +vt 0.565627 0.880554 +vt 0.574440 0.880554 +vt 0.565627 0.898182 +vt 0.565627 0.880554 +vt 0.583254 0.880554 +vt 0.574440 0.898182 +vt 0.574440 0.880554 +vt 0.583254 0.880554 +vt 0.574440 0.898182 +vt 0.583254 0.880554 +vt 0.574440 0.898182 +vt 0.589706 0.880554 +vt 0.583254 0.898182 +vt 0.583254 0.880554 +vt 0.574440 0.898182 +vt 0.574440 0.880554 +vt 0.589706 0.880554 +vt 0.583254 0.898182 +vt 0.589706 0.880554 +vt 0.583254 0.898182 +vt 0.565627 0.898182 +vt 0.565627 0.880554 +vt 0.589706 0.880554 +vt 0.583254 0.898182 +vt 0.565627 0.898182 +vt 0.565627 0.880554 +vt 0.180939 0.916020 +vt 0.176533 0.942461 +vt 0.172126 0.916020 +vt 0.180939 0.916020 +vt 0.176533 0.942461 +vt 0.172126 0.916020 +vt 0.189753 0.916020 +vt 0.180939 0.942461 +vt 0.180939 0.916020 +vt 0.189753 0.916020 +vt 0.180939 0.942461 +vt 0.189753 0.916020 +vt 0.180939 0.942461 +vt 0.196205 0.916020 +vt 0.185346 0.942461 +vt 0.189753 0.916020 +vt 0.180939 0.942461 +vt 0.180939 0.916020 +vt 0.196205 0.916020 +vt 0.185346 0.942461 +vt 0.196205 0.916020 +vt 0.185346 0.942461 +vt 0.172126 0.916020 +vt 0.176533 0.942461 +vt 0.196205 0.916020 +vt 0.185346 0.942461 +vt 0.176533 0.942461 +vt 0.172126 0.916020 +vt 0.176533 0.977716 +vt 0.176533 0.977716 +vt 0.176533 0.977716 +vt 0.180939 0.977716 +vt 0.180939 0.977716 +vt 0.180939 0.977716 +vt 0.188572 0.942461 +vt 0.185346 0.977716 +vt 0.180939 0.977716 +vt 0.188572 0.942461 +vt 0.185346 0.977716 +vt 0.188572 0.942461 +vt 0.185346 0.977716 +vt 0.176533 0.977716 +vt 0.188572 0.942461 +vt 0.185346 0.977716 +vt 0.552426 0.875649 +vt 0.522555 0.899546 +vt 0.528529 0.875649 +vt 0.593816 0.875649 +vt 0.582297 0.899546 +vt 0.576322 0.875649 +vt 0.552426 0.875649 +vt 0.522555 0.899546 +vt 0.528529 0.875649 +vt 0.528529 0.875649 +vt 0.552426 0.899546 +vt 0.522555 0.899546 +vt 0.552426 0.875649 +vt 0.522555 0.899546 +vt 0.528529 0.875649 +vt 0.576322 0.875649 +vt 0.552426 0.899546 +vt 0.576322 0.875649 +vt 0.552426 0.875649 +vt 0.576322 0.875649 +vt 0.552426 0.899546 +vt 0.593816 0.875649 +vt 0.582297 0.899546 +vt 0.552426 0.899546 +vt 0.604163 0.899546 +vt 0.582297 0.899546 +vt 0.593816 0.875649 +vt 0.582297 0.899546 +vt 0.453538 0.859413 +vt 0.442679 0.863820 +vt 0.447086 0.859413 +vt 0.453538 0.859414 +vt 0.442679 0.863820 +vt 0.447086 0.859414 +vt 0.438272 0.859413 +vt 0.433865 0.863820 +vt 0.429458 0.859413 +vt 0.453538 0.859413 +vt 0.442679 0.863820 +vt 0.447086 0.859413 +vt 0.438272 0.859413 +vt 0.433865 0.863820 +vt 0.429458 0.859414 +vt 0.438272 0.859413 +vt 0.433865 0.863820 +vt 0.429458 0.859413 +vt 0.438272 0.859413 +vt 0.433865 0.863820 +vt 0.429458 0.859413 +vt 0.447086 0.859413 +vt 0.438272 0.863820 +vt 0.438272 0.863820 +vt 0.438272 0.863820 +vt 0.453538 0.859413 +vt 0.442679 0.863820 +vt 0.438272 0.863820 +vt 0.465218 0.756009 +vt 0.491026 0.751602 +vt 0.491026 0.756009 +vt 0.394708 0.756009 +vt 0.429963 0.751602 +vt 0.429963 0.756009 +vt 0.465218 0.756009 +vt 0.491026 0.751602 +vt 0.491026 0.756009 +vt 0.394708 0.756009 +vt 0.429963 0.751602 +vt 0.429963 0.756009 +vt 0.394708 0.756009 +vt 0.429963 0.751602 +vt 0.429963 0.756009 +vt 0.394708 0.756009 +vt 0.429963 0.751602 +vt 0.429963 0.756009 +vt 0.465218 0.751602 +vt 0.465218 0.756009 +vt 0.465218 0.751602 +vt 0.465218 0.756009 +vt 0.465218 0.751602 +vt 0.491026 0.751602 +vt 0.491026 0.756009 +vt 0.465218 0.751602 +vt 0.491026 0.751602 +vt 0.491026 0.756009 +vt 0.203838 0.889579 +vt 0.203838 0.889579 +vt 0.203838 0.889579 +vt 0.203838 0.889579 +vt 0.461171 0.762462 +vt 0.453538 0.771276 +vt 0.453538 0.771276 +vt 0.461171 0.762462 +vt 0.589706 0.898182 +vt 0.589706 0.898182 +vt 0.589706 0.898182 +vt 0.589706 0.898182 +vt 0.188572 0.977716 +vt 0.188572 0.977716 +vt 0.188572 0.977716 +vt 0.188572 0.977716 +vt 0.604163 0.899546 +vt 0.604163 0.899546 +vt 0.593816 0.875649 +vt 0.604164 0.899546 +vt 0.445905 0.863820 +vt 0.445905 0.863820 +vt 0.445905 0.863820 +vt 0.445905 0.863820 +vt 0.394708 0.751602 +vt 0.394708 0.751602 +vt 0.394708 0.751602 +vt 0.394708 0.751602 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9363 0.3511 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.9363 -0.3511 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.9363 0.3511 0.0000 +vn -0.9363 -0.3511 0.0000 +vn 0.0000 0.3511 0.9363 +vn 0.0000 -0.3511 -0.9363 +vn 0.0000 0.3511 -0.9363 +vn 0.0000 -0.3511 0.9363 +vn 0.8660 0.0000 0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn 0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 -0.5000 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 -0.5000 +vn 0.6124 0.7071 0.3536 +vn 0.7071 0.7071 0.0000 +vn 0.6124 0.7071 -0.3536 +vn 0.3536 0.7071 -0.6124 +vn 0.0000 0.7071 -0.7071 +vn -0.3536 0.7071 -0.6124 +vn -0.6124 0.7071 -0.3536 +vn -0.7071 0.7071 0.0000 +vn -0.6124 0.7071 0.3536 +vn -0.3536 0.7071 0.6124 +vn -0.0000 0.7071 0.7071 +vn 0.3536 0.7071 0.6124 +vn -0.0000 0.3162 0.9487 +vn -0.4743 0.3162 0.8216 +vn -0.9487 0.3162 0.0000 +vn -0.8216 0.3162 -0.4743 +vn 0.8216 0.3162 -0.4743 +vn 0.9487 0.3162 0.0000 +vn 0.4743 0.3162 0.8216 +vn -0.8216 0.3162 0.4743 +vn 0.4743 0.3162 -0.8216 +vn -0.4743 0.3162 -0.8216 +vn 0.0000 0.3162 -0.9487 +vn 0.8216 0.3162 0.4743 +vn 0.0000 -0.4472 -0.8944 +vn 0.4472 -0.4472 -0.7746 +vn -0.7746 -0.4472 -0.4472 +vn -0.4472 -0.4472 -0.7746 +vn 0.8944 -0.4472 0.0000 +vn 0.7746 -0.4472 0.4472 +vn -0.4472 -0.4472 0.7746 +vn -0.0000 -0.4472 0.8944 +vn -0.8944 -0.4472 -0.0000 +vn 0.7746 -0.4472 -0.4472 +vn 0.4472 -0.4472 0.7746 +vn -0.7746 -0.4472 0.4472 +vn 0.3873 0.8944 0.2236 +vn 0.2236 0.8944 0.3873 +vn -0.2236 0.8944 0.3873 +vn -0.3873 0.8944 0.2236 +vn -0.0000 0.8944 -0.4472 +vn 0.2236 0.8944 -0.3873 +vn -0.3873 0.8944 -0.2236 +vn -0.2236 0.8944 -0.3873 +vn 0.4472 0.8944 -0.0000 +vn 0.0000 0.8944 0.4472 +vn -0.4472 0.8944 0.0000 +vn 0.3873 0.8944 -0.2236 +s off +f 231/325/48 227/326/48 223/327/48 +f 244/328/49 269/329/49 280/330/49 +f 244/328/49 279/331/49 243/332/49 +f 245/333/50 249/334/50 247/335/50 +f 248/336/51 249/337/51 252/338/51 +f 246/339/52 250/340/52 245/341/52 +f 248/342/53 251/343/53 246/344/53 +f 254/345/52 260/346/52 256/347/52 +f 253/348/48 258/349/48 254/350/48 +f 255/351/51 257/352/51 253/353/51 +f 256/354/49 259/355/49 255/356/49 +f 264/357/54 261/358/54 262/359/54 +f 265/360/55 268/361/55 266/362/55 +f 263/363/51 265/364/51 261/365/51 +f 264/366/49 267/367/49 263/368/49 +f 262/369/52 268/370/52 264/371/52 +f 261/372/48 266/373/48 262/374/48 +f 287/375/49 289/376/49 282/377/49 +f 234/378/49 270/379/49 269/329/49 +f 235/380/49 270/379/49 233/381/49 +f 236/382/49 271/383/49 235/380/49 +f 237/384/49 272/385/49 236/382/49 +f 238/386/49 273/387/49 237/384/49 +f 239/388/49 274/389/49 238/386/49 +f 240/390/49 275/391/49 239/388/49 +f 241/392/49 276/393/49 240/390/49 +f 242/394/49 277/395/49 241/392/49 +f 242/394/49 279/331/49 278/396/49 +f 293/397/56 297/398/56 295/399/56 +f 296/400/52 297/401/52 300/402/52 +f 294/403/51 298/404/51 293/405/51 +f 296/406/57 299/407/57 294/408/57 +f 302/409/51 308/410/51 304/411/51 +f 301/412/48 306/413/48 302/414/48 +f 303/415/52 305/416/52 301/417/52 +f 303/418/49 308/419/49 307/420/49 +f 312/421/55 309/422/55 310/423/55 +f 313/424/54 316/425/54 314/426/54 +f 311/427/52 313/428/52 309/429/52 +f 311/430/49 316/431/49 315/432/49 +f 310/433/51 316/434/51 312/435/51 +f 309/436/48 314/437/48 310/438/48 +f 317/439/58 321/440/58 319/441/58 +f 320/442/54 321/443/54 324/444/54 +f 318/445/55 322/446/55 317/447/55 +f 320/448/59 323/449/59 318/450/59 +f 326/451/55 332/452/55 328/453/55 +f 325/454/48 330/455/48 326/456/48 +f 327/457/54 329/458/54 325/459/54 +f 328/460/49 331/461/49 327/462/49 +f 336/463/52 333/464/52 334/465/52 +f 337/466/51 340/467/51 338/468/51 +f 335/469/54 337/470/54 333/471/54 +f 336/472/49 339/473/49 335/474/49 +f 334/475/55 340/476/55 336/477/55 +f 333/478/48 338/479/48 334/480/48 +f 341/481/60 345/482/60 343/483/60 +f 344/484/55 345/485/55 348/486/55 +f 342/487/54 346/488/54 341/489/54 +f 344/490/61 347/491/61 342/492/61 +f 350/493/54 356/494/54 352/495/54 +f 349/496/48 354/497/48 350/498/48 +f 351/499/55 353/500/55 349/501/55 +f 351/502/49 356/503/49 355/504/49 +f 360/505/51 357/506/51 358/507/51 +f 361/508/52 364/509/52 362/510/52 +f 359/511/55 361/512/55 357/513/55 +f 360/514/49 363/515/49 359/516/49 +f 358/517/54 364/518/54 360/519/54 +f 357/520/48 362/521/48 358/522/48 +f 369/523/49 373/524/49 365/525/49 +f 395/526/49 393/527/49 394/528/49 +f 391/529/51 396/530/51 392/531/51 +f 390/532/52 394/533/52 389/534/52 +f 392/535/55 395/536/55 390/537/55 +f 389/538/54 393/539/54 391/540/54 +f 223/327/48 222/541/48 221/542/48 +f 221/542/48 232/543/48 223/327/48 +f 232/543/48 231/325/48 223/327/48 +f 231/325/48 230/544/48 227/326/48 +f 230/544/48 229/545/48 227/326/48 +f 229/545/48 228/546/48 227/326/48 +f 227/326/48 226/547/48 225/548/48 +f 225/548/48 224/549/48 223/327/48 +f 227/326/48 225/548/48 223/327/48 +f 244/328/49 234/378/49 269/329/49 +f 244/328/49 280/330/49 279/331/49 +f 245/333/50 250/550/50 249/334/50 +f 248/336/51 247/551/51 249/337/51 +f 246/339/52 251/552/52 250/340/52 +f 248/342/53 252/553/53 251/343/53 +f 254/345/52 258/554/52 260/346/52 +f 253/348/48 257/555/48 258/349/48 +f 255/351/51 259/556/51 257/352/51 +f 256/354/49 260/557/49 259/355/49 +f 264/357/54 263/558/54 261/358/54 +f 265/360/55 267/559/55 268/361/55 +f 263/363/51 267/560/51 265/364/51 +f 264/366/49 268/561/49 267/367/49 +f 262/369/52 266/562/52 268/370/52 +f 261/372/48 265/563/48 266/373/48 +f 282/377/49 281/564/49 283/565/49 +f 283/565/49 284/566/49 282/377/49 +f 284/566/49 285/567/49 282/377/49 +f 285/567/49 286/568/49 287/375/49 +f 287/375/49 288/569/49 289/376/49 +f 289/376/49 290/570/49 291/571/49 +f 291/571/49 292/572/49 289/376/49 +f 292/572/49 282/377/49 289/376/49 +f 285/567/49 287/375/49 282/377/49 +f 234/378/49 233/381/49 270/379/49 +f 235/380/49 271/383/49 270/379/49 +f 236/382/49 272/385/49 271/383/49 +f 237/384/49 273/387/49 272/385/49 +f 238/386/49 274/389/49 273/387/49 +f 239/388/49 275/391/49 274/389/49 +f 240/390/49 276/393/49 275/391/49 +f 241/392/49 277/395/49 276/393/49 +f 242/394/49 278/396/49 277/395/49 +f 242/394/49 243/332/49 279/331/49 +f 293/397/56 298/573/56 297/398/56 +f 296/400/52 295/574/52 297/401/52 +f 294/403/51 299/575/51 298/404/51 +f 296/406/57 300/576/57 299/407/57 +f 302/409/51 306/577/51 308/410/51 +f 301/412/48 305/578/48 306/413/48 +f 303/415/52 307/579/52 305/416/52 +f 303/418/49 304/580/49 308/419/49 +f 312/421/55 311/581/55 309/422/55 +f 313/424/54 315/582/54 316/425/54 +f 311/427/52 315/583/52 313/428/52 +f 311/430/49 312/584/49 316/431/49 +f 310/433/51 314/585/51 316/434/51 +f 309/436/48 313/586/48 314/437/48 +f 317/439/58 322/587/58 321/440/58 +f 320/442/54 319/588/54 321/443/54 +f 318/445/55 323/589/55 322/446/55 +f 320/448/59 324/590/59 323/449/59 +f 326/451/55 330/591/55 332/452/55 +f 325/454/48 329/592/48 330/455/48 +f 327/457/54 331/593/54 329/458/54 +f 328/460/49 332/594/49 331/461/49 +f 336/463/52 335/595/52 333/464/52 +f 337/466/51 339/596/51 340/467/51 +f 335/469/54 339/597/54 337/470/54 +f 336/472/49 340/598/49 339/473/49 +f 334/475/55 338/599/55 340/476/55 +f 333/478/48 337/600/48 338/479/48 +f 341/481/60 346/601/60 345/482/60 +f 344/484/55 343/602/55 345/485/55 +f 342/487/54 347/603/54 346/488/54 +f 344/490/61 348/604/61 347/491/61 +f 350/493/54 354/605/54 356/494/54 +f 349/496/48 353/606/48 354/497/48 +f 351/499/55 355/607/55 353/500/55 +f 351/502/49 352/608/49 356/503/49 +f 360/505/51 359/609/51 357/506/51 +f 361/508/52 363/610/52 364/509/52 +f 359/511/55 363/611/55 361/512/55 +f 360/514/49 364/612/49 363/515/49 +f 358/517/54 362/613/54 364/518/54 +f 357/520/48 361/614/48 362/521/48 +f 365/525/49 366/615/49 367/616/49 +f 367/616/49 368/617/49 369/523/49 +f 369/523/49 370/618/49 373/524/49 +f 370/618/49 371/619/49 373/524/49 +f 371/619/49 372/620/49 373/524/49 +f 373/524/49 374/621/49 375/622/49 +f 375/622/49 376/623/49 365/525/49 +f 365/525/49 367/616/49 369/523/49 +f 373/524/49 375/622/49 365/525/49 +f 395/526/49 396/624/49 393/527/49 +f 391/529/51 393/625/51 396/530/51 +f 390/532/52 395/626/52 394/533/52 +f 392/535/55 396/627/55 395/536/55 +f 389/538/54 394/628/54 393/539/54 +s 1 +f 157/629/62 168/630/63 156/631/63 +f 154/632/64 165/633/65 153/634/65 +f 149/635/51 172/636/66 160/637/66 +f 151/638/67 162/639/68 150/640/68 +f 158/641/55 169/642/62 157/643/62 +f 155/644/52 166/645/64 154/646/64 +f 152/647/54 163/648/67 151/649/67 +f 159/650/69 170/651/55 158/641/55 +f 156/631/63 167/652/52 155/644/52 +f 153/634/65 164/653/54 152/647/54 +f 160/654/66 171/655/69 159/650/69 +f 150/640/68 161/656/51 149/635/51 +f 169/657/70 182/658/71 181/659/70 +f 170/660/71 183/661/72 182/658/71 +f 171/662/72 184/663/73 183/661/72 +f 172/664/73 173/665/74 184/666/73 +f 162/667/75 173/665/74 161/668/74 +f 163/669/76 174/670/75 162/667/75 +f 164/671/77 175/672/76 163/673/76 +f 165/674/78 176/675/77 164/671/77 +f 166/676/79 177/677/78 165/674/78 +f 167/678/80 178/679/79 166/680/79 +f 167/678/80 180/681/81 179/682/80 +f 168/683/81 181/684/70 180/681/81 +f 179/685/52 190/686/64 178/687/64 +f 176/688/54 187/689/67 175/690/67 +f 183/691/69 194/692/55 182/693/55 +f 180/694/63 191/695/52 179/685/52 +f 177/696/65 188/697/54 176/688/54 +f 184/698/66 195/699/69 183/691/69 +f 174/700/68 185/701/51 173/702/51 +f 181/703/62 192/704/63 180/694/63 +f 178/705/64 189/706/65 177/696/65 +f 173/702/51 196/707/66 184/708/66 +f 175/709/67 186/710/68 174/700/68 +f 182/693/55 193/711/62 181/712/62 +f 191/713/82 202/714/83 190/715/83 +f 188/716/84 199/717/85 187/718/85 +f 195/719/86 206/720/87 194/721/87 +f 192/722/88 203/723/82 191/713/82 +f 189/724/89 200/725/84 188/716/84 +f 196/726/90 207/727/86 195/719/86 +f 186/728/91 197/729/92 185/730/92 +f 193/731/93 204/732/88 192/722/88 +f 190/733/83 201/734/89 189/724/89 +f 196/735/90 197/729/92 208/736/90 +f 187/737/85 198/738/91 186/728/91 +f 194/721/87 205/739/93 193/740/93 +f 206/720/55 217/741/62 205/739/62 +f 203/723/52 214/742/64 202/714/64 +f 200/725/54 211/743/67 199/717/67 +f 207/727/69 218/744/55 206/720/55 +f 204/732/63 215/745/52 203/723/52 +f 201/734/65 212/746/54 200/725/54 +f 208/747/66 219/748/69 207/727/69 +f 198/738/68 209/749/51 197/729/51 +f 205/750/62 216/751/63 204/732/63 +f 202/752/64 213/753/65 201/734/65 +f 197/729/51 220/754/66 208/736/66 +f 199/755/67 210/756/68 198/738/68 +f 221/757/94 244/758/95 232/759/95 +f 223/760/96 233/761/97 222/762/97 +f 230/763/98 241/764/99 229/765/99 +f 226/766/100 239/767/101 238/768/100 +f 224/769/102 235/770/96 223/771/96 +f 231/772/103 242/773/98 230/763/98 +f 228/774/104 239/767/101 227/775/101 +f 225/776/105 236/777/102 224/769/102 +f 232/778/95 243/779/103 231/772/103 +f 222/762/97 234/780/94 221/757/94 +f 228/774/104 241/781/99 240/782/104 +f 226/783/100 237/784/105 225/776/105 +f 277/785/106 288/786/107 276/787/107 +f 274/788/108 285/789/109 273/790/109 +f 269/791/110 292/792/111 280/793/111 +f 271/794/112 281/795/113 270/796/113 +f 278/797/114 289/798/106 277/799/106 +f 275/800/115 286/801/108 274/802/108 +f 272/803/116 283/804/112 271/805/112 +f 279/806/117 290/807/114 278/797/114 +f 275/800/115 288/786/107 287/808/115 +f 273/790/109 284/809/116 272/803/116 +f 280/810/111 291/811/117 279/806/117 +f 270/796/113 282/812/110 269/791/110 +f 369/813/65 382/814/64 370/815/64 +f 376/816/66 378/817/51 365/818/51 +f 366/819/68 379/820/67 367/821/67 +f 373/822/62 386/823/55 374/824/55 +f 370/825/64 383/826/52 371/827/52 +f 367/828/67 380/829/54 368/830/54 +f 374/824/55 387/831/69 375/832/69 +f 371/827/52 384/833/63 372/834/63 +f 368/830/54 381/835/65 369/813/65 +f 375/832/69 388/836/66 376/837/66 +f 365/818/51 377/838/68 366/819/68 +f 372/834/63 385/839/62 373/840/62 +f 157/629/62 169/841/62 168/630/63 +f 154/632/64 166/842/64 165/633/65 +f 149/635/51 161/656/51 172/636/66 +f 151/638/67 163/843/67 162/639/68 +f 158/641/55 170/651/55 169/642/62 +f 155/644/52 167/652/52 166/645/64 +f 152/647/54 164/653/54 163/648/67 +f 159/650/69 171/655/69 170/651/55 +f 156/631/63 168/630/63 167/652/52 +f 153/634/65 165/633/65 164/653/54 +f 160/654/66 172/844/66 171/655/69 +f 150/640/68 162/639/68 161/656/51 +f 169/657/70 170/660/71 182/658/71 +f 170/660/71 171/662/72 183/661/72 +f 171/662/72 172/845/73 184/663/73 +f 172/664/73 161/668/74 173/665/74 +f 162/667/75 174/670/75 173/665/74 +f 163/669/76 175/846/76 174/670/75 +f 164/671/77 176/675/77 175/672/76 +f 165/674/78 177/677/78 176/675/77 +f 166/676/79 178/847/79 177/677/78 +f 167/678/80 179/682/80 178/679/79 +f 167/678/80 168/683/81 180/681/81 +f 168/683/81 169/848/70 181/684/70 +f 179/685/52 191/695/52 190/686/64 +f 176/688/54 188/697/54 187/689/67 +f 183/691/69 195/699/69 194/692/55 +f 180/694/63 192/704/63 191/695/52 +f 177/696/65 189/706/65 188/697/54 +f 184/698/66 196/849/66 195/699/69 +f 174/700/68 186/710/68 185/701/51 +f 181/703/62 193/850/62 192/704/63 +f 178/705/64 190/851/64 189/706/65 +f 173/702/51 185/701/51 196/707/66 +f 175/709/67 187/852/67 186/710/68 +f 182/693/55 194/692/55 193/711/62 +f 191/713/82 203/723/82 202/714/83 +f 188/716/84 200/725/84 199/717/85 +f 195/719/86 207/727/86 206/720/87 +f 192/722/88 204/732/88 203/723/82 +f 189/724/89 201/734/89 200/725/84 +f 196/726/90 208/747/90 207/727/86 +f 186/728/91 198/738/91 197/729/92 +f 193/731/93 205/750/93 204/732/88 +f 190/733/83 202/752/83 201/734/89 +f 196/735/90 185/730/92 197/729/92 +f 187/737/85 199/755/85 198/738/91 +f 194/721/87 206/720/87 205/739/93 +f 206/720/55 218/744/55 217/741/62 +f 203/723/52 215/745/52 214/742/64 +f 200/725/54 212/746/54 211/743/67 +f 207/727/69 219/748/69 218/744/55 +f 204/732/63 216/751/63 215/745/52 +f 201/734/65 213/753/65 212/746/54 +f 208/747/66 220/853/66 219/748/69 +f 198/738/68 210/756/68 209/749/51 +f 205/750/62 217/854/62 216/751/63 +f 202/752/64 214/855/64 213/753/65 +f 197/729/51 209/749/51 220/754/66 +f 199/755/67 211/856/67 210/756/68 +f 221/757/94 234/780/94 244/758/95 +f 223/760/96 235/857/96 233/761/97 +f 230/763/98 242/773/98 241/764/99 +f 226/766/100 227/775/101 239/767/101 +f 224/769/102 236/777/102 235/770/96 +f 231/772/103 243/779/103 242/773/98 +f 228/774/104 240/782/104 239/767/101 +f 225/776/105 237/784/105 236/777/102 +f 232/778/95 244/858/95 243/779/103 +f 222/762/97 233/761/97 234/780/94 +f 228/774/104 229/859/99 241/781/99 +f 226/783/100 238/860/100 237/784/105 +f 277/785/106 289/861/106 288/786/107 +f 274/788/108 286/862/108 285/789/109 +f 269/791/110 282/812/110 292/792/111 +f 271/794/112 283/863/112 281/795/113 +f 278/797/114 290/807/114 289/798/106 +f 275/800/115 287/808/115 286/801/108 +f 272/803/116 284/809/116 283/804/112 +f 279/806/117 291/811/117 290/807/114 +f 275/800/115 276/787/107 288/786/107 +f 273/790/109 285/789/109 284/809/116 +f 280/810/111 292/864/111 291/811/117 +f 270/796/113 281/795/113 282/812/110 +f 369/813/65 381/835/65 382/814/64 +f 376/816/66 388/865/66 378/817/51 +f 366/819/68 377/838/68 379/820/67 +f 373/822/62 385/866/62 386/823/55 +f 370/825/64 382/867/64 383/826/52 +f 367/828/67 379/868/67 380/829/54 +f 374/824/55 386/823/55 387/831/69 +f 371/827/52 383/826/52 384/833/63 +f 368/830/54 380/829/54 381/835/65 +f 375/832/69 387/831/69 388/836/66 +f 365/818/51 378/817/51 377/838/68 +f 372/834/63 384/833/63 385/839/62 +o Glass +v -3.500000 1.000000 3.500000 +v 3.500000 1.000000 3.500000 +v -3.500000 1.000000 -3.500000 +v 3.500000 1.000000 -3.500000 +v -3.500000 5.000000 -3.500000 +v -3.500000 5.000000 3.500000 +v 3.500000 5.000000 3.500000 +v 3.500000 5.000000 -3.500000 +vt -0.000000 0.363636 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 0.000000 +vt 0.000000 0.363636 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.363636 +vt 0.000000 0.000000 +vt 1.000000 -0.000000 +vt -0.000000 -0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.363636 +vt 0.000000 0.000000 +vt 1.000000 0.363636 +vt 1.000000 0.363636 +vt 1.000000 0.363636 +vt 1.000000 0.363636 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 403/869/118 401/870/118 402/871/118 +f 399/872/119 404/873/119 400/874/119 +f 398/875/120 402/876/120 397/877/120 +f 400/878/121 403/869/121 398/879/121 +f 397/880/122 401/881/122 399/882/122 +f 403/869/118 404/883/118 401/870/118 +f 399/872/119 401/884/119 404/873/119 +f 398/875/120 403/885/120 402/876/120 +f 400/878/121 404/883/121 403/869/121 +f 397/880/122 402/886/122 401/881/122 +o TenpennyTower +v 0.625000 1.500000 0.375000 +v 1.375000 1.500000 0.625000 +v -2.500000 1.000000 1.500000 +v 2.500000 1.000000 1.500000 +v 0.125000 2.000000 0.375000 +v -0.125000 2.000000 0.625000 +v -2.500000 1.000000 -1.500000 +v 2.500000 1.000000 -1.500000 +v -0.125000 2.000000 -0.625000 +v 0.125000 2.000000 -0.375000 +v -1.250000 4.000000 -0.625000 +v -1.500000 4.000000 -0.375000 +v -1.500000 4.000000 0.375000 +v -1.250000 4.000000 0.625000 +v -0.125000 4.000000 0.625000 +v 0.125000 4.000000 0.375000 +v 0.125000 4.000000 -0.375000 +v -0.125000 4.000000 -0.625000 +v -1.250000 1.000000 -0.625000 +v 1.375000 1.500000 -0.375000 +v -1.500000 1.000000 -0.375000 +v 1.375000 1.000000 -0.375000 +v 2.375000 1.000000 -1.375000 +v -2.375000 1.000000 -1.375000 +v -1.500000 1.000000 0.375000 +v -1.250000 1.000000 0.625000 +v 0.125000 1.500000 0.625000 +v 0.125000 2.000000 0.625000 +v 0.375000 2.000000 0.375000 +v 0.375000 1.500000 0.375000 +v 0.375000 1.500000 -0.375000 +v 0.125000 1.500000 -0.625000 +v 0.375000 2.000000 -0.375000 +v 0.125000 2.000000 -0.625000 +v 1.375000 1.000000 0.375000 +v 2.375000 1.000000 1.375000 +v -2.375000 1.000000 1.375000 +v 1.375000 1.500000 0.375000 +v 0.625000 1.500000 -0.375000 +v 1.375000 1.500000 -0.625000 +v 1.375000 1.000000 0.625000 +v 0.625000 1.000000 0.375000 +v 0.625000 1.000000 -0.375000 +v 1.375000 1.000000 -0.625000 +v -2.500000 1.500000 -1.500000 +v -2.500000 1.500000 1.500000 +v 2.500000 1.500000 -1.500000 +v 2.375000 1.500000 -1.375000 +v -2.375000 1.500000 -1.375000 +v 2.375000 1.500000 1.375000 +v 2.500000 1.500000 1.500000 +v -2.375000 1.500000 1.375000 +v -0.187500 4.000000 0.084835 +v -0.452665 4.000000 0.350000 +v 0.077665 4.000000 0.350000 +v -0.187500 4.000000 0.615165 +v 2.500000 1.000000 -0.250000 +v 2.375000 1.000000 -0.250000 +v 2.500000 1.500000 -0.250000 +v 2.375000 1.500000 -0.250000 +v 2.500000 1.000000 0.250000 +v 2.375000 1.000000 0.250000 +v 2.500000 1.500000 0.250000 +v 2.375000 1.500000 0.250000 +v -0.187500 4.000000 -0.615165 +v -0.452665 4.000000 -0.350000 +v 0.077665 4.000000 -0.350000 +v -0.187500 4.000000 -0.084835 +v -1.187500 4.000000 0.084835 +v -1.452665 4.000000 0.350000 +v -0.922335 4.000000 0.350000 +v -1.187500 4.000000 0.615165 +v -1.187500 4.000000 -0.615165 +v -1.452665 4.000000 -0.350000 +v -0.922335 4.000000 -0.350000 +v -1.187500 4.000000 -0.084835 +v -0.187500 4.250000 0.084835 +v -0.452665 4.250000 0.350000 +v 0.077665 4.250000 0.350000 +v -0.187500 4.250000 0.615165 +v -0.187500 4.250000 -0.615165 +v -0.452665 4.250000 -0.350000 +v 0.077665 4.250000 -0.350000 +v -0.187500 4.250000 -0.084835 +v -1.187500 4.250000 0.084835 +v -1.452665 4.250000 0.350000 +v -0.922335 4.250000 0.350000 +v -1.187500 4.250000 0.615165 +v -1.187500 4.250000 -0.615165 +v -1.452665 4.250000 -0.350000 +v -0.922335 4.250000 -0.350000 +v -1.187500 4.250000 -0.084835 +v -0.187500 4.375000 0.217417 +v -0.320083 4.375000 0.350000 +v -0.054917 4.375000 0.350000 +v -0.187500 4.375000 0.482583 +v -0.187500 4.375000 -0.482583 +v -0.320083 4.375000 -0.350000 +v -0.054917 4.375000 -0.350000 +v -0.187500 4.375000 -0.217418 +v -1.187500 4.375000 0.217417 +v -1.320083 4.375000 0.350000 +v -1.054917 4.375000 0.350000 +v -1.187500 4.375000 0.482583 +v -1.187500 4.375000 -0.482583 +v -1.320083 4.375000 -0.350000 +v -1.054917 4.375000 -0.350000 +v -1.187500 4.375000 -0.217418 +v -1.250000 3.250000 -0.625000 +v -1.500000 3.250000 -0.375000 +v -1.500000 3.250000 0.375000 +v -1.250000 3.250000 0.625000 +v -0.125000 3.250000 0.625000 +v 0.125000 3.250000 0.375000 +v 0.125000 3.250000 -0.375000 +v -0.125000 3.250000 -0.625000 +v -0.125000 3.375000 -0.625000 +v 0.125000 3.375000 -0.375000 +v 0.125000 3.375000 0.375000 +v -0.125000 3.375000 0.625000 +v -1.250000 3.375000 0.625000 +v -1.500000 3.375000 0.375000 +v -1.500000 3.375000 -0.375000 +v -1.250000 3.375000 -0.625000 +v 0.187500 3.250000 0.375000 +v 0.187500 3.250000 -0.375000 +v 0.187500 3.375000 -0.375000 +v 0.187500 3.375000 0.375000 +v -1.562500 3.250000 -0.375000 +v -1.562500 3.250000 0.375000 +v -1.562500 3.375000 0.375000 +v -1.562500 3.375000 -0.375000 +v -0.125000 3.250000 -0.687500 +v -1.250000 3.250000 -0.687500 +v -1.250000 3.375000 -0.687500 +v -0.125000 3.375000 -0.687500 +v -1.250000 3.250000 0.687500 +v -0.125000 3.250000 0.687500 +v -0.125000 3.375000 0.687500 +v -1.250000 3.375000 0.687500 +vt 0.464930 0.988754 +vt 0.454188 0.999497 +vt 0.411218 0.988754 +vt 0.327609 0.916709 +vt 0.297465 0.997093 +vt 0.297465 0.916709 +vt 0.317561 0.997093 +vt 0.307513 0.916709 +vt 0.317561 0.916709 +vt 0.307513 0.916709 +vt 0.317561 0.997093 +vt 0.307513 0.997093 +vt 0.362778 0.876517 +vt 0.372826 0.997093 +vt 0.362778 0.997093 +vt 0.297465 0.876517 +vt 0.327609 0.997093 +vt 0.297465 0.997093 +vt 0.454188 0.929671 +vt 0.421961 0.929671 +vt 0.454188 0.918929 +vt 0.252249 0.876517 +vt 0.262297 0.997093 +vt 0.252249 0.997093 +vt 0.307513 0.896613 +vt 0.298769 0.916829 +vt 0.328914 0.896733 +vt 0.328914 0.916829 +vt 0.358172 0.916829 +vt 0.368220 0.896733 +vt 0.368220 0.916829 +vt 0.256289 0.916829 +vt 0.266337 0.896733 +vt 0.266337 0.916829 +vt 0.454188 0.918929 +vt 0.421961 0.918929 +vt 0.454188 0.908186 +vt 0.262297 0.876517 +vt 0.338636 0.896616 +vt 0.328588 0.876520 +vt 0.338636 0.876520 +vt 0.338636 0.876520 +vt 0.368780 0.896616 +vt 0.338636 0.896616 +vt 0.298443 0.896616 +vt 0.328588 0.876520 +vt 0.328588 0.896616 +vt 0.288395 0.896616 +vt 0.258251 0.876520 +vt 0.288395 0.876520 +vt 0.288395 0.896616 +vt 0.298443 0.876520 +vt 0.298443 0.896616 +vt 0.154072 0.897085 +vt 0.181586 0.909313 +vt 0.154072 0.909313 +vt 0.224385 0.999496 +vt 0.154072 0.996439 +vt 0.221328 0.996439 +vt 0.224385 0.877214 +vt 0.221328 0.880271 +vt 0.193814 0.909313 +vt 0.224385 0.897085 +vt 0.224385 0.909313 +vt 0.151015 0.999496 +vt 0.154072 0.880271 +vt 0.245784 0.897085 +vt 0.129616 0.909313 +vt 0.129616 0.897085 +vt 0.248841 0.897085 +vt 0.126559 0.909313 +vt 0.126559 0.897085 +vt 0.248841 0.897085 +vt 0.126559 0.909313 +vt 0.126559 0.897085 +vt 0.221328 0.897085 +vt 0.154072 0.909313 +vt 0.154072 0.897085 +vt 0.181586 0.877214 +vt 0.151015 0.877214 +vt 0.245784 0.897085 +vt 0.129616 0.909313 +vt 0.129616 0.897085 +vt 0.224385 0.897085 +vt 0.151015 0.909313 +vt 0.151015 0.897085 +vt 0.151015 0.909313 +vt 0.181586 0.897085 +vt 0.181586 0.909313 +vt 0.193814 0.897085 +vt 0.221328 0.909313 +vt 0.193814 0.909313 +vt 0.193814 0.877214 +vt 0.126559 0.897085 +vt 0.129616 0.909313 +vt 0.126559 0.909313 +vt 0.245784 0.909313 +vt 0.248841 0.897085 +vt 0.248841 0.909313 +vt 0.441719 0.943099 +vt 0.453113 0.937402 +vt 0.447416 0.943099 +vt 0.464507 0.986068 +vt 0.453113 0.980372 +vt 0.453113 0.974674 +vt 0.464507 0.943099 +vt 0.453113 0.931705 +vt 0.453113 0.991765 +vt 0.458810 0.986068 +vt 0.332035 0.989268 +vt 0.321378 0.999317 +vt 0.321378 0.989268 +vt 0.316963 0.989268 +vt 0.306305 0.999317 +vt 0.306305 0.989268 +vt 0.276771 0.989268 +vt 0.266113 0.999317 +vt 0.266113 0.989268 +vt 0.295648 0.999317 +vt 0.295648 0.989268 +vt 0.255456 0.999317 +vt 0.255456 0.989268 +vt 0.310720 0.999317 +vt 0.310720 0.989268 +vt 0.372227 0.989268 +vt 0.361570 0.999317 +vt 0.361570 0.989268 +vt 0.350912 0.999317 +vt 0.350912 0.989268 +vt 0.316963 0.989268 +vt 0.306305 0.999317 +vt 0.306305 0.989268 +vt 0.276771 0.989268 +vt 0.266113 0.999317 +vt 0.266113 0.989268 +vt 0.295648 0.999317 +vt 0.295648 0.989268 +vt 0.255456 0.999317 +vt 0.255456 0.989268 +vt 0.332035 0.989268 +vt 0.321378 0.999317 +vt 0.321378 0.989268 +vt 0.372227 0.989268 +vt 0.361570 0.999317 +vt 0.361570 0.989268 +vt 0.310720 0.999317 +vt 0.310720 0.989268 +vt 0.350912 0.999317 +vt 0.350912 0.989268 +vt 0.423035 0.937402 +vt 0.423035 0.948796 +vt 0.417338 0.943099 +vt 0.458810 0.943099 +vt 0.453113 0.948796 +vt 0.423035 0.980372 +vt 0.423035 0.991765 +vt 0.417338 0.986068 +vt 0.447416 0.986068 +vt 0.441719 0.986068 +vt 0.453113 0.954493 +vt 0.423035 0.954493 +vt 0.428732 0.943099 +vt 0.434429 0.943099 +vt 0.453113 0.997463 +vt 0.423035 0.997463 +vt 0.428732 0.986068 +vt 0.434429 0.986068 +vt 0.423035 0.931705 +vt 0.423035 0.974674 +vt 0.411641 0.943099 +vt 0.411641 0.986068 +vt 0.413651 0.967078 +vt 0.426211 0.967078 +vt 0.416163 0.967078 +vt 0.456355 0.967078 +vt 0.468915 0.967078 +vt 0.466403 0.967078 +vt 0.426211 0.967078 +vt 0.413651 0.967078 +vt 0.416163 0.967078 +vt 0.468915 0.962054 +vt 0.456355 0.967078 +vt 0.468915 0.967078 +vt 0.456355 0.962054 +vt 0.426211 0.967078 +vt 0.426211 0.962054 +vt 0.426211 0.962054 +vt 0.456355 0.962054 +vt 0.426211 0.967078 +vt 0.413651 0.962054 +vt 0.416163 0.962054 +vt 0.413651 0.962054 +vt 0.426211 0.962054 +vt 0.456355 0.962054 +vt 0.456355 0.962054 +vt 0.426211 0.962054 +vt 0.456355 0.967078 +vt 0.468915 0.962054 +vt 0.456355 0.967078 +vt 0.466403 0.962054 +vt 0.466403 0.962054 +vt 0.466403 0.967078 +vt 0.416163 0.962054 +vt 0.421960 0.999497 +vt 0.411218 0.940413 +vt 0.464930 0.940413 +vt 0.421961 0.929671 +vt 0.454188 0.929671 +vt 0.327609 0.997093 +vt 0.307513 0.997093 +vt 0.317561 0.916709 +vt 0.372826 0.876517 +vt 0.327609 0.876517 +vt 0.411218 0.940413 +vt 0.411218 0.929671 +vt 0.421961 0.918929 +vt 0.464930 0.929671 +vt 0.464930 0.940413 +vt 0.307513 0.916709 +vt 0.257273 0.896613 +vt 0.257273 0.876517 +vt 0.298769 0.896733 +vt 0.358172 0.896733 +vt 0.256289 0.896733 +vt 0.411218 0.929671 +vt 0.411218 0.875959 +vt 0.421961 0.908186 +vt 0.421961 0.875959 +vt 0.454188 0.875959 +vt 0.464930 0.875959 +vt 0.464930 0.929671 +vt 0.317561 0.896613 +vt 0.317561 0.916709 +vt 0.367802 0.876517 +vt 0.367802 0.896613 +vt 0.328588 0.896616 +vt 0.368780 0.876520 +vt 0.298443 0.876520 +vt 0.258251 0.896616 +vt 0.288395 0.876520 +vt 0.181586 0.897085 +vt 0.193814 0.897085 +vt 0.245784 0.909313 +vt 0.248841 0.909313 +vt 0.248841 0.909313 +vt 0.221328 0.909313 +vt 0.181586 0.880271 +vt 0.245784 0.909313 +vt 0.224385 0.909313 +vt 0.151015 0.897085 +vt 0.221328 0.897085 +vt 0.193814 0.880271 +vt 0.129616 0.897085 +vt 0.245784 0.897085 +vt 0.332035 0.999317 +vt 0.316963 0.999317 +vt 0.276771 0.999317 +vt 0.372227 0.999317 +vt 0.316963 0.999317 +vt 0.276771 0.999317 +vt 0.332035 0.999317 +vt 0.372227 0.999317 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 vn -0.7071 0.0000 -0.7071 vn -1.0000 0.0000 0.0000 -vn -0.9063 0.1938 -0.3754 -vn -0.9239 0.0000 0.3827 -vn -0.9810 0.1938 0.0000 vn -0.7071 0.0000 0.7071 -vn -0.9063 0.1938 0.3754 -vn -0.3827 0.0000 0.9239 -vn -0.6937 0.1938 0.6937 +vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 -vn -0.3754 0.1938 0.9063 -vn 0.3827 0.0000 0.9239 -vn 0.0000 0.1938 0.9810 -vn 0.7071 0.0000 0.7071 -vn 0.3754 0.1938 0.9063 -vn 0.9239 0.0000 0.3827 -vn 0.6937 0.1938 0.6937 -vn 1.0000 0.0000 0.0000 -vn 0.9063 0.1938 0.3754 -vn 0.9239 0.0000 -0.3827 -vn 0.9810 0.1938 0.0000 -vn 0.7071 0.0000 -0.7071 -vn 0.9063 0.1938 -0.3754 -vn 0.3827 0.0000 -0.9239 -vn 0.6937 0.1938 -0.6937 -vn -0.3754 0.1938 -0.9063 -vn 0.3754 0.1938 -0.9063 -vn 0.0000 0.9767 -0.2146 -vn -0.2163 0.8250 -0.5221 -vn -0.0821 0.9767 -0.1982 -vn -0.1517 0.9767 -0.1517 -vn -0.1982 0.9767 -0.0821 -vn -0.2146 0.9767 0.0000 -vn -0.1982 0.9767 0.0821 -vn -0.1517 0.9767 0.1517 -vn -0.0821 0.9767 0.1982 -vn 0.0000 0.9767 0.2146 -vn 0.0821 0.9767 0.1982 -vn 0.1517 0.9767 0.1517 -vn 0.1982 0.9767 0.0821 -vn 0.2146 0.9767 0.0000 -vn 0.1982 0.9767 -0.0821 -vn 0.1517 0.9767 -0.1517 -vn 0.0821 0.9767 -0.1982 -s 1 -f 44/1/1 78/2/2 46/3/3 -f 30/4/4 64/5/5 32/6/6 -f 46/3/3 80/7/7 48/8/8 -f 32/6/6 66/9/9 34/10/10 -f 34/10/10 68/11/11 36/12/12 -f 38/13/13 68/11/11 70/14/14 -f 22/15/15 56/16/16 24/17/17 -f 48/8/8 49/18/18 18/19/19 -f 38/13/13 72/20/20 40/21/21 -f 24/17/17 58/22/22 26/23/23 -f 40/21/21 74/24/24 42/25/25 -f 26/23/23 60/26/26 28/27/27 -f 44/1/1 74/24/24 76/28/28 -f 28/27/27 62/29/29 30/4/4 -f 2/30/30 50/31/31 1/32/32 -f 22/15/15 52/33/33 54/34/34 -f 4/35/35 53/36/36 3/37/37 -f 5/38/38 55/39/39 4/35/35 -f 6/40/40 57/41/41 5/38/38 -f 7/42/42 59/43/43 6/40/40 -f 8/44/44 61/45/45 7/42/42 -f 9/46/46 63/47/47 8/44/44 -f 10/48/48 65/49/49 9/46/46 -f 11/50/50 67/51/51 10/48/48 -f 12/52/52 69/53/53 11/50/50 -f 13/54/54 71/55/55 12/52/52 -f 14/56/56 73/57/57 13/54/54 -f 15/58/58 75/59/59 14/56/56 -f 16/60/60 77/61/61 15/58/58 -f 3/37/37 51/62/62 2/30/30 -f 1/32/32 79/63/63 16/60/60 -f 17/64/64 20/65/65 19/66/66 -f 21/67/67 20/65/65 22/15/15 -f 23/68/68 22/15/15 24/17/17 -f 25/69/69 24/17/17 26/23/23 -f 27/70/70 26/23/23 28/27/27 -f 27/70/70 30/4/4 29/71/71 -f 29/71/71 32/6/6 31/72/72 -f 33/73/73 32/6/6 34/10/10 -f 33/73/73 36/12/12 35/74/74 -f 37/75/75 36/12/12 38/13/13 -f 37/75/75 40/21/21 39/76/76 -f 39/76/76 42/25/25 41/77/77 -f 43/78/78 42/25/25 44/1/1 -f 45/79/79 44/1/1 46/3/3 -f 45/79/79 48/8/8 47/80/80 -f 17/64/64 48/8/8 18/19/19 -f 25/69/69 33/73/73 41/77/77 -f 51/62/62 49/18/18 50/31/31 -f 53/36/36 52/33/33 51/62/62 -f 53/36/36 56/16/16 54/34/34 -f 55/39/39 58/22/22 56/16/16 -f 57/41/41 60/26/26 58/22/22 -f 59/43/43 62/29/29 60/26/26 -f 63/47/47 62/29/29 61/45/45 -f 63/47/47 66/9/9 64/5/5 -f 67/51/51 66/9/9 65/49/49 -f 67/51/51 70/14/14 68/11/11 -f 71/55/55 70/14/14 69/53/53 -f 73/57/57 72/20/20 71/55/55 -f 75/59/59 74/24/24 73/57/57 -f 77/61/61 76/28/28 75/59/59 -f 79/63/63 78/2/2 77/61/61 -f 50/31/31 80/7/7 79/63/63 -f 18/19/19 52/33/33 20/65/65 -f 44/1/1 76/28/28 78/2/2 -f 30/4/4 62/29/29 64/5/5 -f 46/3/3 78/2/2 80/7/7 -f 32/6/6 64/5/5 66/9/9 -f 34/10/10 66/9/9 68/11/11 -f 38/13/13 36/12/12 68/11/11 -f 22/15/15 54/34/34 56/16/16 -f 48/8/8 80/7/7 49/18/18 -f 38/13/13 70/14/14 72/20/20 -f 24/17/17 56/16/16 58/22/22 -f 40/21/21 72/20/20 74/24/24 -f 26/23/23 58/22/22 60/26/26 -f 44/1/1 42/25/25 74/24/24 -f 28/27/27 60/26/26 62/29/29 -f 2/30/30 51/62/62 50/31/31 -f 22/15/15 20/65/65 52/33/33 -f 4/35/35 55/39/39 53/36/36 -f 5/38/38 57/41/41 55/39/39 -f 6/40/40 59/43/43 57/41/41 -f 7/42/42 61/45/45 59/43/43 -f 8/44/44 63/47/47 61/45/45 -f 9/46/46 65/49/49 63/47/47 -f 10/48/48 67/51/51 65/49/49 -f 11/50/50 69/53/53 67/51/51 -f 12/52/52 71/55/55 69/53/53 -f 13/54/54 73/57/57 71/55/55 -f 14/56/56 75/59/59 73/57/57 -f 15/58/58 77/61/61 75/59/59 -f 16/60/60 79/63/63 77/61/61 -f 3/37/37 53/36/36 51/62/62 -f 1/32/32 50/31/31 79/63/63 -f 17/64/64 18/19/19 20/65/65 -f 21/67/67 19/66/66 20/65/65 -f 23/68/68 21/67/67 22/15/15 -f 25/69/69 23/68/68 24/17/17 -f 27/70/70 25/69/69 26/23/23 -f 27/70/70 28/27/27 30/4/4 -f 29/71/71 30/4/4 32/6/6 -f 33/73/73 31/72/72 32/6/6 -f 33/73/73 34/10/10 36/12/12 -f 37/75/75 35/74/74 36/12/12 -f 37/75/75 38/13/13 40/21/21 -f 39/76/76 40/21/21 42/25/25 -f 43/78/78 41/77/77 42/25/25 -f 45/79/79 43/78/78 44/1/1 -f 45/79/79 46/3/3 48/8/8 -f 17/64/64 47/80/80 48/8/8 -f 17/64/64 19/66/66 25/69/69 -f 19/66/66 21/67/67 25/69/69 -f 21/67/67 23/68/68 25/69/69 -f 25/69/69 27/70/70 29/71/71 -f 29/71/71 31/72/72 25/69/69 -f 31/72/72 33/73/73 25/69/69 -f 33/73/73 35/74/74 41/77/77 -f 35/74/74 37/75/75 41/77/77 -f 37/75/75 39/76/76 41/77/77 -f 41/77/77 43/78/78 45/79/79 -f 45/79/79 47/80/80 41/77/77 -f 47/80/80 17/64/64 41/77/77 -f 17/64/64 25/69/69 41/77/77 -f 51/62/62 52/33/33 49/18/18 -f 53/36/36 54/34/34 52/33/33 -f 53/36/36 55/39/39 56/16/16 -f 55/39/39 57/41/41 58/22/22 -f 57/41/41 59/43/43 60/26/26 -f 59/43/43 61/45/45 62/29/29 -f 63/47/47 64/5/5 62/29/29 -f 63/47/47 65/49/49 66/9/9 -f 67/51/51 68/11/11 66/9/9 -f 67/51/51 69/53/53 70/14/14 -f 71/55/55 72/20/20 70/14/14 -f 73/57/57 74/24/24 72/20/20 -f 75/59/59 76/28/28 74/24/24 -f 77/61/61 78/2/2 76/28/28 -f 79/63/63 80/7/7 78/2/2 -f 50/31/31 49/18/18 80/7/7 -f 18/19/19 49/18/18 52/33/33 -o Socket -v 0.000000 0.000000 -4.000000 -v 0.000000 1.000000 -4.000000 -v 1.530734 0.000000 -3.695518 -v 1.530734 1.000000 -3.695518 -v 2.828427 0.000000 -2.828427 -v 2.828427 1.000000 -2.828427 -v 3.695518 0.000000 -1.530734 -v 3.695518 1.000000 -1.530734 -v 4.000000 0.000000 0.000000 -v 4.000000 1.000000 0.000000 -v 3.695518 0.000000 1.530734 -v 3.695518 1.000000 1.530734 -v 2.828427 0.000000 2.828427 -v 2.828427 1.000000 2.828427 -v 1.530734 0.000000 3.695518 -v 1.530734 1.000000 3.695518 -v 0.000001 0.000000 4.000000 -v 0.000001 1.000000 4.000000 -v -1.530733 0.000000 3.695518 -v -1.530733 1.000000 3.695518 -v -2.828426 0.000000 2.828428 -v -2.828426 1.000000 2.828428 -v -3.695518 0.000000 1.530734 -v -3.695518 1.000000 1.530734 -v -4.000000 0.000000 -0.000000 -v -4.000000 1.000000 -0.000000 -v -3.695518 0.000000 -1.530734 -v -3.695518 1.000000 -1.530734 -v -2.828426 0.000000 -2.828428 -v -2.828426 1.000000 -2.828428 -v -1.530732 0.000000 -3.695519 -v -1.530732 1.000000 -3.695519 -vt 0.426601 0.598494 -vt 0.426601 0.930919 -vt 0.073399 0.930919 -vt 0.345575 0.452461 -vt 0.019260 0.325247 -vt 0.154425 0.018127 -vt 0.480740 0.674753 -vt 0.499751 0.764706 -vt 0.480740 0.854660 -vt 0.345576 0.981873 -vt 0.250000 0.999766 -vt 0.154425 0.981873 -vt 0.019260 0.854659 -vt 0.000249 0.764706 -vt 0.019260 0.674752 -vt 0.073399 0.598493 -vt 0.154425 0.547539 -vt 0.250000 0.529646 -vt 0.345576 0.547539 -vt 0.480740 0.145341 -vt 0.499751 0.235294 -vt 0.480740 0.325248 -vt 0.426601 0.401507 -vt 0.250000 0.470354 -vt 0.154424 0.452461 -vt 0.073399 0.401506 -vt 0.000249 0.235294 -vt 0.019260 0.145341 -vt 0.073399 0.069081 -vt 0.250000 0.000234 -vt 0.345576 0.018127 -vt 0.426601 0.069082 -vt 0.750000 0.529412 -vt 0.687500 0.470588 -vt 0.750000 0.470588 -vt 0.687500 0.529412 -vt 0.625000 0.470588 -vt 0.625000 0.529412 -vt 0.562500 0.470588 -vt 0.562500 0.529412 -vt 0.500000 0.470588 -vt 0.500000 0.529412 -vt 0.437500 0.470588 -vt 0.437500 0.529412 -vt 0.375000 0.470588 -vt 0.375000 0.529412 -vt 0.312500 0.470588 -vt 0.312500 0.529412 -vt 0.250000 0.470588 -vt 0.250000 0.529412 -vt 0.187500 0.470588 -vt 0.187500 0.529412 -vt 0.125000 0.470588 -vt 0.125000 0.529412 -vt 0.062500 0.470588 -vt 0.062500 0.529412 -vt 0.000000 0.470588 -vt 1.000000 0.529412 -vt 0.937500 0.470588 -vt 1.000000 0.470588 -vt 0.937500 0.529412 -vt 0.875000 0.470588 -vt 0.875000 0.529412 -vt 0.812500 0.470588 -vt 0.812500 0.529412 -vt 0.000000 0.529412 -vn 0.0000 1.0000 -0.0000 +vn 0.5657 0.6000 0.5657 +vn 0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 0.5657 vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.6657 -0.7462 -vn 0.2855 -0.6657 -0.6894 -vn 0.0000 -0.6657 -0.7462 -vn 0.2855 0.6657 -0.6894 -vn 0.5276 -0.6657 -0.5276 -vn 0.5276 0.6657 -0.5276 -vn 0.6894 -0.6657 -0.2855 -vn 0.6894 0.6657 -0.2855 -vn 0.7462 -0.6657 0.0000 -vn 0.7462 0.6657 0.0000 -vn 0.6894 -0.6657 0.2855 -vn 0.6894 0.6657 0.2855 -vn 0.5276 -0.6657 0.5276 -vn 0.5276 0.6657 0.5276 -vn 0.2855 -0.6657 0.6894 -vn 0.2855 0.6657 0.6894 -vn 0.0000 -0.6657 0.7462 -vn 0.0000 0.6657 0.7462 -vn -0.2855 -0.6657 0.6894 -vn -0.2855 0.6657 0.6894 -vn -0.5276 -0.6657 0.5276 -vn -0.5276 0.6657 0.5276 -vn -0.6894 -0.6657 0.2855 -vn -0.6894 0.6657 0.2855 -vn -0.7462 -0.6657 0.0000 -vn -0.7462 0.6657 0.0000 -vn -0.6894 -0.6657 -0.2855 -vn -0.6894 0.6657 -0.2855 -vn -0.5276 -0.6657 -0.5276 -vn -0.5276 0.6657 -0.5276 -vn -0.2855 -0.6657 -0.6894 -vn -0.2855 0.6657 -0.6894 s off -f 86/81/81 110/82/81 102/83/81 -f 87/84/82 95/85/82 103/86/82 -f 86/81/81 84/87/81 82/88/81 -f 82/88/81 112/89/81 110/82/81 -f 110/82/81 108/90/81 106/91/81 -f 106/91/81 104/92/81 102/83/81 -f 102/83/81 100/93/81 98/94/81 -f 98/94/81 96/95/81 94/96/81 -f 94/96/81 92/97/81 90/98/81 -f 90/98/81 88/99/81 94/96/81 -f 88/99/81 86/81/81 94/96/81 -f 86/81/81 82/88/81 110/82/81 -f 110/82/81 106/91/81 102/83/81 -f 102/83/81 98/94/81 86/81/81 -f 98/94/81 94/96/81 86/81/81 -f 111/100/82 81/101/82 83/102/82 -f 83/102/82 85/103/82 111/100/82 -f 85/103/82 87/84/82 111/100/82 -f 87/84/82 89/104/82 91/105/82 -f 91/105/82 93/106/82 87/84/82 -f 93/106/82 95/85/82 87/84/82 -f 95/85/82 97/107/82 103/86/82 -f 97/107/82 99/108/82 103/86/82 -f 99/108/82 101/109/82 103/86/82 -f 103/86/82 105/110/82 107/111/82 -f 107/111/82 109/112/82 111/100/82 -f 103/86/82 107/111/82 111/100/82 -f 111/100/82 87/84/82 103/86/82 -s 1 -f 82/113/83 83/114/84 81/115/85 -f 84/116/86 85/117/87 83/114/84 -f 86/118/88 87/119/89 85/117/87 -f 88/120/90 89/121/91 87/119/89 -f 90/122/92 91/123/93 89/121/91 -f 92/124/94 93/125/95 91/123/93 -f 94/126/96 95/127/97 93/125/95 -f 96/128/98 97/129/99 95/127/97 -f 98/130/100 99/131/101 97/129/99 -f 100/132/102 101/133/103 99/131/101 -f 102/134/104 103/135/105 101/133/103 -f 104/136/106 105/137/107 103/135/105 -f 106/138/108 107/139/109 105/140/107 -f 108/141/110 109/142/111 107/139/109 -f 110/143/112 111/144/113 109/142/111 -f 112/145/114 81/115/85 111/144/113 -f 82/113/83 84/116/86 83/114/84 -f 84/116/86 86/118/88 85/117/87 -f 86/118/88 88/120/90 87/119/89 -f 88/120/90 90/122/92 89/121/91 -f 90/122/92 92/124/94 91/123/93 -f 92/124/94 94/126/96 93/125/95 -f 94/126/96 96/128/98 95/127/97 -f 96/128/98 98/130/100 97/129/99 -f 98/130/100 100/132/102 99/131/101 -f 100/132/102 102/134/104 101/133/103 -f 102/134/104 104/136/106 103/135/105 -f 104/136/106 106/146/108 105/137/107 -f 106/138/108 108/141/110 107/139/109 -f 108/141/110 110/143/112 109/142/111 -f 110/143/112 112/145/114 111/144/113 -f 112/145/114 82/113/83 81/115/85 +f 415/887/123 416/888/123 418/889/123 +f 414/890/124 420/891/124 409/892/124 +f 422/893/125 414/894/125 413/895/125 +f 410/896/126 420/897/126 419/898/126 +f 423/899/127 416/900/127 415/901/127 +f 425/902/128 417/903/128 416/904/128 +f 414/905/123 409/906/123 437/907/123 +f 429/908/129 418/909/129 417/910/129 +f 423/899/130 413/895/130 436/911/130 +f 433/912/124 435/913/124 437/914/124 +f 432/915/126 434/916/126 433/917/126 +f 437/918/125 436/919/125 438/920/125 +f 435/921/123 434/922/123 443/923/123 +f 410/896/131 418/909/131 430/924/131 +f 444/925/124 426/926/124 448/927/124 +f 447/928/131 424/929/131 443/930/131 +f 405/931/124 447/932/124 443/933/124 +f 405/934/130 439/935/130 446/936/130 +f 406/937/124 439/938/124 442/939/124 +f 427/940/128 464/941/128 452/942/128 +f 449/943/123 456/944/123 453/945/123 +f 451/946/123 453/945/123 452/947/123 +f 463/948/124 412/949/124 451/950/124 +f 450/951/123 454/952/123 456/944/123 +f 441/953/130 454/954/130 440/955/130 +f 411/956/130 451/957/130 412/958/130 +f 408/959/131 450/960/131 407/961/131 +f 428/962/124 456/963/124 441/964/124 +f 467/965/123 454/952/123 455/966/123 +f 427/967/131 453/968/131 428/969/131 +f 407/970/128 449/971/128 411/972/128 +f 455/973/124 465/974/124 467/975/124 +f 466/976/128 454/977/128 468/978/128 +f 452/947/123 463/979/123 451/946/123 +f 465/980/130 468/981/130 467/982/130 +f 464/983/131 461/984/131 463/985/131 +f 488/986/132 503/987/132 504/988/132 +f 493/989/133 511/990/133 495/991/133 +f 485/992/133 503/987/133 487/993/133 +f 493/989/134 510/994/134 509/995/134 +f 458/996/127 481/997/127 457/998/127 +f 471/999/126 488/1000/126 472/1001/126 +f 479/1002/126 496/1003/126 480/1004/126 +f 472/1001/129 486/1005/129 470/1006/129 +f 480/1004/129 494/1007/129 478/1008/129 +f 457/998/125 483/1009/125 459/1010/125 +f 474/1011/127 489/1012/127 473/1013/127 +f 473/1013/125 491/1014/125 475/1015/125 +f 459/1016/126 484/1017/126 460/1018/126 +f 475/1019/126 492/1020/126 476/1021/126 +f 460/1018/129 482/1022/129 458/1023/129 +f 476/1021/129 490/1024/129 474/1025/129 +f 470/1026/127 485/1027/127 469/1028/127 +f 478/1029/127 493/1030/127 477/1031/127 +f 469/1028/125 487/1032/125 471/1033/125 +f 477/1031/125 495/1034/125 479/1035/125 +f 499/1036/123 498/1037/123 500/1038/123 +f 504/988/123 501/1039/123 502/1040/123 +f 507/1041/123 506/1042/123 508/1043/123 +f 512/1044/123 509/995/123 510/994/123 +f 495/991/132 512/1044/132 496/1045/132 +f 488/986/135 502/1040/135 486/1046/135 +f 482/1047/134 497/1048/134 481/1049/134 +f 496/1045/135 510/994/135 494/1050/135 +f 490/1051/134 505/1052/134 489/1053/134 +f 481/1049/133 499/1036/133 483/1054/133 +f 491/1055/133 505/1052/133 507/1041/133 +f 483/1054/132 500/1038/132 484/1056/132 +f 491/1055/132 508/1043/132 492/1057/132 +f 484/1056/135 498/1037/135 482/1047/135 +f 492/1057/135 506/1042/135 490/1051/135 +f 485/992/134 502/1040/134 501/1039/134 +f 543/1058/123 523/1059/123 524/1060/123 +f 522/1061/123 540/1062/123 521/1063/123 +f 526/1064/123 544/1065/123 525/1066/123 +f 538/1067/127 536/1068/127 539/1069/127 +f 530/1070/124 532/1071/124 529/1072/124 +f 530/1070/136 518/1073/136 519/1074/136 +f 535/1075/129 541/1076/129 544/1065/129 +f 532/1071/123 522/1061/123 523/1059/123 +f 517/1077/136 529/1072/136 542/1078/136 +f 534/1079/128 536/1068/128 533/1080/128 +f 534/1079/136 514/1081/136 515/1082/136 +f 531/1083/125 537/1084/125 540/1062/125 +f 536/1068/123 526/1064/123 527/1085/123 +f 513/1086/136 533/1080/136 538/1067/136 +f 538/1067/130 540/1062/130 537/1084/130 +f 538/1067/136 520/1087/136 513/1086/136 +f 539/1069/123 527/1085/123 528/1088/123 +f 540/1062/123 528/1088/123 521/1063/123 +f 534/1079/136 516/1089/136 541/1076/136 +f 542/1078/131 544/1065/131 541/1076/131 +f 542/1078/136 516/1089/136 517/1077/136 +f 542/1078/126 532/1071/126 543/1058/126 +f 544/1065/123 524/1060/123 525/1066/123 +f 530/1070/136 520/1087/136 537/1084/136 +f 416/888/123 417/1090/123 418/889/123 +f 418/889/123 419/1091/123 422/1092/123 +f 419/1091/123 420/1093/123 422/1092/123 +f 420/1093/123 421/1094/123 422/1092/123 +f 422/1092/123 415/887/123 418/889/123 +f 414/890/124 421/1095/124 420/891/124 +f 422/893/125 421/1096/125 414/894/125 +f 410/896/126 409/1097/126 420/897/126 +f 423/899/127 425/1098/127 416/900/127 +f 425/902/128 429/1099/128 417/903/128 +f 409/906/123 410/1100/123 432/1101/123 +f 432/1101/123 433/1102/123 409/906/123 +f 433/1102/123 437/907/123 409/906/123 +f 437/907/123 438/1103/123 414/905/123 +f 438/1103/123 413/1104/123 414/905/123 +f 429/908/129 430/924/129 418/909/129 +f 423/899/130 415/901/130 413/895/130 +f 415/901/130 422/893/130 413/895/130 +f 413/895/130 438/1105/130 436/911/130 +f 444/1106/130 448/1107/130 436/911/130 +f 448/1107/130 423/899/130 436/911/130 +f 433/912/124 434/1108/124 435/913/124 +f 432/915/126 431/1109/126 434/916/126 +f 437/918/125 435/1110/125 436/919/125 +f 431/1111/123 406/1112/123 405/1113/123 +f 406/1112/123 442/1114/123 405/1113/123 +f 434/922/123 431/1111/123 405/1113/123 +f 443/923/123 424/1115/123 444/1116/123 +f 434/922/123 405/1113/123 443/923/123 +f 444/1116/123 436/1117/123 443/923/123 +f 436/1117/123 435/921/123 443/923/123 +f 431/1118/131 432/1119/131 410/896/131 +f 410/896/131 419/898/131 418/909/131 +f 430/924/131 445/1120/131 431/1118/131 +f 445/1120/131 406/1121/131 431/1118/131 +f 431/1118/131 410/896/131 430/924/131 +f 444/925/124 424/1122/124 426/926/124 +f 447/928/131 426/1123/131 424/929/131 +f 405/931/124 446/1124/124 447/932/124 +f 405/934/130 442/1125/130 439/935/130 +f 406/937/124 445/1126/124 439/938/124 +f 427/940/128 462/1127/128 464/941/128 +f 449/943/123 450/951/123 456/944/123 +f 451/946/123 449/943/123 453/945/123 +f 463/948/124 461/1128/124 412/949/124 +f 450/951/123 455/966/123 454/952/123 +f 441/953/130 456/1129/130 454/954/130 +f 411/956/130 449/1130/130 451/957/130 +f 408/959/131 455/1131/131 450/960/131 +f 428/962/124 453/1132/124 456/963/124 +f 467/965/123 468/1133/123 454/952/123 +f 427/967/131 452/1134/131 453/968/131 +f 407/970/128 450/1135/128 449/971/128 +f 455/973/124 408/1136/124 465/974/124 +f 466/976/128 440/1137/128 454/977/128 +f 452/947/123 464/1138/123 463/979/123 +f 465/980/130 466/1139/130 468/981/130 +f 464/983/131 462/1140/131 461/984/131 +f 488/986/132 487/993/132 503/987/132 +f 493/989/133 509/995/133 511/990/133 +f 485/992/133 501/1039/133 503/987/133 +f 493/989/134 494/1050/134 510/994/134 +f 458/996/127 482/1141/127 481/997/127 +f 471/999/126 487/1142/126 488/1000/126 +f 479/1002/126 495/1143/126 496/1003/126 +f 472/1001/129 488/1000/129 486/1005/129 +f 480/1004/129 496/1003/129 494/1007/129 +f 457/998/125 481/997/125 483/1009/125 +f 474/1011/127 490/1144/127 489/1012/127 +f 473/1013/125 489/1012/125 491/1014/125 +f 459/1016/126 483/1145/126 484/1017/126 +f 475/1019/126 491/1146/126 492/1020/126 +f 460/1018/129 484/1017/129 482/1022/129 +f 476/1021/129 492/1020/129 490/1024/129 +f 470/1026/127 486/1147/127 485/1027/127 +f 478/1029/127 494/1148/127 493/1030/127 +f 469/1028/125 485/1027/125 487/1032/125 +f 477/1031/125 493/1030/125 495/1034/125 +f 499/1036/123 497/1048/123 498/1037/123 +f 504/988/123 503/987/123 501/1039/123 +f 507/1041/123 505/1052/123 506/1042/123 +f 512/1044/123 511/990/123 509/995/123 +f 495/991/132 511/990/132 512/1044/132 +f 488/986/135 504/988/135 502/1040/135 +f 482/1047/134 498/1037/134 497/1048/134 +f 496/1045/135 512/1044/135 510/994/135 +f 490/1051/134 506/1042/134 505/1052/134 +f 481/1049/133 497/1048/133 499/1036/133 +f 491/1055/133 489/1053/133 505/1052/133 +f 483/1054/132 499/1036/132 500/1038/132 +f 491/1055/132 507/1041/132 508/1043/132 +f 484/1056/135 500/1038/135 498/1037/135 +f 492/1057/135 508/1043/135 506/1042/135 +f 485/992/134 486/1046/134 502/1040/134 +f 543/1058/123 532/1071/123 523/1059/123 +f 522/1061/123 531/1083/123 540/1062/123 +f 526/1064/123 535/1075/123 544/1065/123 +f 538/1067/127 533/1080/127 536/1068/127 +f 530/1070/124 531/1083/124 532/1071/124 +f 530/1070/136 529/1072/136 518/1073/136 +f 535/1075/129 534/1079/129 541/1076/129 +f 532/1071/123 531/1083/123 522/1061/123 +f 517/1077/136 518/1073/136 529/1072/136 +f 534/1079/128 535/1075/128 536/1068/128 +f 534/1079/136 533/1080/136 514/1081/136 +f 531/1083/125 530/1070/125 537/1084/125 +f 536/1068/123 535/1075/123 526/1064/123 +f 513/1086/136 514/1081/136 533/1080/136 +f 538/1067/130 539/1069/130 540/1062/130 +f 538/1067/136 537/1084/136 520/1087/136 +f 539/1069/123 536/1068/123 527/1085/123 +f 540/1062/123 539/1069/123 528/1088/123 +f 534/1079/136 515/1082/136 516/1089/136 +f 542/1078/131 543/1058/131 544/1065/131 +f 542/1078/136 541/1076/136 516/1089/136 +f 542/1078/126 529/1072/126 532/1071/126 +f 544/1065/123 543/1058/123 524/1060/123 +f 530/1070/136 519/1074/136 520/1087/136 +o RivetCity +v -0.750000 1.000000 2.750000 +v -1.000000 1.000000 2.250000 +v 0.000000 1.000000 2.250000 +v -0.250000 1.000000 2.750000 +v -1.000000 1.375000 2.250000 +v -0.750000 1.375000 2.750000 +v -0.250000 1.375000 2.750000 +v 0.000000 1.375000 2.250000 +v 0.250000 1.500000 2.250000 +v 0.000000 1.500000 2.750000 +v 0.250000 1.375000 2.250000 +v 0.000000 1.375000 2.750000 +v -1.000000 1.500000 2.750000 +v -1.250000 1.500000 2.250000 +v -1.000000 1.375000 2.750000 +v -1.250000 1.375000 2.250000 +v 0.000000 1.500000 2.500000 +v -1.000000 1.500000 2.500000 +v -1.000000 1.625000 2.500000 +v 0.000000 1.625000 2.500000 +v -0.062500 1.625000 -0.375000 +v -0.062500 1.625000 0.375000 +v -0.437500 1.625000 -0.375000 +v -0.437500 1.625000 0.375000 +v -0.062500 1.875000 -0.375000 +v -0.062500 1.875000 0.375000 +v -0.437500 1.875000 -0.375000 +v -0.437500 1.875000 0.375000 +v -0.062500 2.062500 -0.312500 +v -0.062500 2.062500 0.312500 +v -0.437500 2.062500 -0.312500 +v -0.437500 2.062500 0.312500 +v -0.375000 2.062500 0.250000 +v -0.125000 2.062500 0.250000 +v -0.375000 2.062500 -0.125000 +v -0.125000 2.062500 -0.125000 +v -0.375000 2.375000 -0.125000 +v -0.375000 2.375000 0.250000 +v -0.125000 2.375000 0.250000 +v -0.125000 2.375000 -0.125000 +v 0.750000 1.125000 0.500000 +v 2.250000 1.125000 0.500000 +v 0.750000 1.125000 -1.000000 +v 2.250000 1.125000 -1.000000 +v 2.250000 1.000000 -1.000000 +v 0.750000 1.000000 -1.000000 +v 2.250000 1.000000 0.500000 +v 0.750000 1.000000 0.500000 +v -0.125000 2.062500 -0.187500 +v -0.125000 2.062500 -0.312500 +v 0.375000 2.187500 -0.187500 +v 0.375000 2.187500 -0.312500 +v -0.250000 2.187500 -0.187500 +v -0.250000 2.187500 -0.312500 +v -0.250000 2.061500 -0.187500 +v -0.250000 2.061500 -0.312500 +v 1.000000 1.125000 -0.062500 +v 1.375000 1.125000 -0.062500 +v 1.000000 1.125000 -0.437500 +v 1.375000 1.125000 -0.437500 +v 1.000000 1.625000 -0.437500 +v 1.000000 1.625000 -0.062500 +v 1.375000 1.625000 -0.062500 +v 1.375000 1.625000 -0.437500 +v 1.000000 1.562500 -0.312500 +v 1.000000 1.562500 -0.187500 +v -0.000000 1.562500 -0.312500 +v -0.000000 1.562500 -0.187500 +v -1.250000 1.375000 -1.000000 +v -1.250000 1.500000 -1.000000 +v 0.000000 1.000000 -1.000000 +v -1.000000 1.375000 -1.000000 +v -1.000000 1.000000 -1.000000 +v -1.000000 1.625000 -1.000000 +v -1.000000 1.500000 -1.000000 +v 0.000000 1.375000 -1.000000 +v 0.250000 1.500000 -1.000000 +v 0.250000 1.375000 -1.000000 +v 0.000000 1.625000 -1.000000 +v 0.000000 1.500000 -1.000000 +v -1.000000 0.676476 -2.707407 +v 0.000000 0.676476 -2.707407 +v -1.000000 1.038698 -2.804464 +v 0.000000 1.038698 -2.804464 +v 0.250000 1.159439 -2.836817 +v 0.250000 1.038698 -2.804464 +v -1.250000 1.038698 -2.804464 +v -1.250000 1.159439 -2.836817 +v 0.000000 1.224144 -2.595335 +v -1.000000 1.224144 -2.595335 +v -1.000000 1.344885 -2.627687 +v 0.000000 1.344885 -2.627687 +v -1.250000 1.362222 -1.597057 +v -1.250000 1.482963 -1.629410 +v 0.000000 1.000000 -1.500000 +v -1.000000 1.362222 -1.597057 +v -1.000000 1.000000 -1.500000 +v -1.000000 1.603703 -1.661762 +v -1.000000 1.482963 -1.629410 +v 0.000000 1.362222 -1.597057 +v 0.250000 1.482963 -1.629410 +v 0.250000 1.362222 -1.597057 +v 0.000000 1.603703 -1.661762 +v 0.000000 1.482963 -1.629410 +v -0.673266 1.795531 1.082261 +v -0.459279 1.670993 0.800614 +v -0.650436 1.750751 1.119408 +v -0.436449 1.626214 0.837760 +v -0.599211 1.761568 1.153543 +v -0.385224 1.637031 0.871897 +v -0.570817 1.817165 1.150534 +v -0.356830 1.692627 0.868886 +v -0.593647 1.861944 1.113387 +v -0.379660 1.737407 0.831740 +v -0.644872 1.851127 1.079251 +v -0.430885 1.726590 0.797604 +v -0.301061 1.619542 0.693927 +v -0.417142 1.849616 1.252941 +v -0.826940 1.763080 0.979854 +v -0.619259 1.856536 1.096319 +v -0.619259 1.856536 1.096319 +v -0.612835 1.972439 1.049951 +v -0.547930 1.815023 1.002437 +vt 0.083449 0.926311 +vt 0.012034 0.934551 +vt 0.012034 0.926311 +vt 0.034962 0.934551 +vt 0.029468 0.926311 +vt 0.034962 0.926311 +vt 0.051442 0.934551 +vt 0.045949 0.926311 +vt 0.051442 0.926311 +vt 0.051442 0.988258 +vt 0.051442 0.999245 +vt 0.045949 0.999245 +vt 0.029468 0.988258 +vt 0.029468 0.999245 +vt 0.023975 0.988258 +vt 0.056936 0.934551 +vt 0.051442 0.937298 +vt 0.051442 0.934551 +vt 0.083449 0.934551 +vt 0.012034 0.937298 +vt 0.012034 0.934551 +vt 0.051442 0.916843 +vt 0.056936 0.988258 +vt 0.029468 0.934551 +vt 0.023975 0.937298 +vt 0.023975 0.934551 +vt 0.045949 0.934551 +vt 0.029468 0.937298 +vt 0.041829 0.943776 +vt 0.050069 0.930043 +vt 0.050069 0.943776 +vt 0.051442 0.916843 +vt 0.029468 0.993752 +vt 0.051442 0.993752 +vt 0.051442 0.940045 +vt 0.029468 0.937298 +vt 0.051442 0.937298 +vt 0.118318 0.940045 +vt 0.041409 0.937298 +vt 0.118318 0.937298 +vt 0.071623 0.945538 +vt 0.056516 0.949658 +vt 0.055143 0.945538 +vt 0.083030 0.945538 +vt 0.074789 0.940045 +vt 0.083030 0.940045 +vt 0.055143 0.940045 +vt 0.071623 0.940045 +vt 0.050069 0.945538 +vt 0.041829 0.940045 +vt 0.050069 0.940045 +vt 0.069716 0.945538 +vt 0.053235 0.940045 +vt 0.069716 0.940045 +vt 0.041829 0.949658 +vt 0.041829 0.945538 +vt 0.054609 0.949658 +vt 0.053235 0.945538 +vt 0.074789 0.949658 +vt 0.074789 0.945538 +vt 0.048696 0.931416 +vt 0.043202 0.939656 +vt 0.043202 0.931416 +vt 0.081656 0.949658 +vt 0.076163 0.956525 +vt 0.076163 0.949658 +vt 0.048696 0.949658 +vt 0.043202 0.956525 +vt 0.043202 0.949658 +vt 0.064222 0.949658 +vt 0.055982 0.956525 +vt 0.055982 0.949658 +vt 0.068877 0.949658 +vt 0.060636 0.956525 +vt 0.060636 0.949658 +vt 0.056936 0.926311 +vt 0.023975 0.929058 +vt 0.023975 0.926311 +vt 0.100883 0.926311 +vt 0.067923 0.929058 +vt 0.067923 0.926311 +vt 0.083449 0.926311 +vt 0.050488 0.929058 +vt 0.050488 0.926311 +vt 0.074370 0.926311 +vt 0.041409 0.929058 +vt 0.041409 0.926311 +vt 0.100883 0.949804 +vt 0.067923 0.916843 +vt 0.067923 0.949804 +vt 0.068342 0.952405 +vt 0.065595 0.949658 +vt 0.068342 0.949658 +vt 0.045949 0.943776 +vt 0.059682 0.941030 +vt 0.059682 0.943776 +vt 0.056516 0.949636 +vt 0.059263 0.952405 +vt 0.056516 0.952405 +vt 0.048696 0.949658 +vt 0.045949 0.952405 +vt 0.045949 0.949636 +vt 0.076163 0.949658 +vt 0.078910 0.952405 +vt 0.065176 0.952405 +vt 0.081656 0.938283 +vt 0.073416 0.946523 +vt 0.073416 0.938283 +vt 0.071089 0.929058 +vt 0.062849 0.940045 +vt 0.062849 0.929058 +vt 0.062010 0.929058 +vt 0.053770 0.940045 +vt 0.053770 0.929058 +vt 0.051442 0.929058 +vt 0.043202 0.940045 +vt 0.043202 0.929058 +vt 0.081656 0.929058 +vt 0.073416 0.940045 +vt 0.073416 0.929058 +vt 0.051442 0.931950 +vt 0.073416 0.934697 +vt 0.073416 0.931950 +vt 0.056936 0.887468 +vt 0.051442 0.958883 +vt 0.051442 0.881975 +vt 0.051442 0.993752 +vt 0.029468 0.999245 +vt 0.051442 0.999245 +vt 0.029468 0.958883 +vt 0.023975 0.958883 +vt 0.023975 0.887468 +vt 0.041409 0.926311 +vt 0.112824 0.934551 +vt 0.041409 0.934551 +vt 0.029468 0.916843 +vt 0.023975 0.916843 +vt 0.073416 0.937298 +vt 0.073416 0.934551 +vt 0.095390 0.934551 +vt 0.083449 0.940045 +vt 0.006541 0.937298 +vt 0.083449 0.937298 +vt 0.041409 0.934551 +vt 0.112824 0.937298 +vt 0.041409 0.937298 +vt 0.051442 0.903724 +vt 0.051442 0.903013 +vt 0.029468 0.903013 +vt 0.023975 0.876482 +vt 0.051442 0.881788 +vt 0.056936 0.876482 +vt 0.029468 0.879325 +vt 0.051442 0.877192 +vt 0.051442 0.879325 +vt 0.095390 0.927161 +vt 0.100883 0.927161 +vt 0.100883 0.929814 +vt 0.003891 0.919202 +vt 0.028290 0.934270 +vt 0.001758 0.927161 +vt 0.029468 0.903724 +vt 0.023975 0.877192 +vt 0.029468 0.877192 +vt 0.001758 0.927161 +vt 0.027579 0.936923 +vt 0.001047 0.929814 +vt 0.119216 0.933889 +vt 0.097280 0.936923 +vt 0.118505 0.931236 +vt 0.095390 0.933889 +vt 0.073416 0.931236 +vt 0.095390 0.931236 +vt 0.051442 0.902302 +vt 0.029468 0.881077 +vt 0.029468 0.902302 +vt 0.056936 0.877192 +vt 0.056936 0.903724 +vt 0.100883 0.936923 +vt 0.067923 0.936923 +vt 0.073416 0.936923 +vt 0.097280 0.936923 +vt 0.123100 0.927161 +vt 0.123811 0.929814 +vt 0.096569 0.934270 +vt 0.120967 0.919202 +vt 0.123100 0.927161 +vt 0.026868 0.939577 +vt 0.006354 0.931236 +vt 0.027579 0.936923 +vt 0.083508 0.941055 +vt 0.087709 0.942808 +vt 0.088210 0.943792 +vt 0.037150 0.942808 +vt 0.042977 0.940309 +vt 0.038275 0.943045 +vt 0.038899 0.944267 +vt 0.043601 0.941531 +vt 0.038398 0.945251 +vt 0.041852 0.957226 +vt 0.044827 0.954065 +vt 0.042977 0.957976 +vt 0.082884 0.942277 +vt 0.087586 0.945013 +vt 0.087024 0.945132 +vt 0.037835 0.945132 +vt 0.042276 0.944980 +vt 0.043100 0.918633 +vt 0.044827 0.921661 +vt 0.041974 0.919383 +vt 0.044827 0.939925 +vt 0.080032 0.939925 +vt 0.083007 0.940071 +vt 0.043100 0.942515 +vt 0.036648 0.943792 +vt 0.041350 0.941055 +vt 0.033271 0.943079 +vt 0.037835 0.945132 +vt 0.037976 0.947679 +vt 0.039402 0.944220 +vt 0.083449 0.934551 +vt 0.029468 0.934551 +vt 0.034962 0.999245 +vt 0.056936 0.937298 +vt 0.083449 0.937298 +vt 0.056936 0.916843 +vt 0.041829 0.930043 +vt 0.029468 0.916843 +vt 0.029468 0.940045 +vt 0.041409 0.940045 +vt 0.070250 0.949658 +vt 0.050069 0.949658 +vt 0.068342 0.949658 +vt 0.083030 0.949658 +vt 0.048696 0.939656 +vt 0.081656 0.956525 +vt 0.048696 0.956525 +vt 0.064222 0.956525 +vt 0.068877 0.956525 +vt 0.056936 0.929058 +vt 0.100883 0.929058 +vt 0.083449 0.929058 +vt 0.074370 0.929058 +vt 0.100883 0.916843 +vt 0.065595 0.952405 +vt 0.045949 0.941030 +vt 0.059263 0.949636 +vt 0.059682 0.952405 +vt 0.078910 0.949636 +vt 0.081656 0.946523 +vt 0.071089 0.940045 +vt 0.062010 0.940045 +vt 0.051442 0.940045 +vt 0.081656 0.940045 +vt 0.051442 0.934697 +vt 0.051442 0.876482 +vt 0.056936 0.958883 +vt 0.029468 0.993752 +vt 0.029468 0.876482 +vt 0.029468 0.881975 +vt 0.112824 0.926311 +vt 0.100883 0.934551 +vt 0.100883 0.937298 +vt 0.095390 0.937298 +vt 0.095390 0.940045 +vt 0.073416 0.940045 +vt 0.067923 0.937298 +vt 0.067923 0.934551 +vt 0.073416 0.926311 +vt 0.095390 0.926311 +vt 0.006541 0.940045 +vt 0.112824 0.934551 +vt 0.023975 0.903013 +vt 0.023975 0.903724 +vt 0.029468 0.905856 +vt 0.051442 0.905856 +vt 0.056936 0.903013 +vt 0.029468 0.881788 +vt 0.067923 0.929814 +vt 0.073416 0.927161 +vt 0.067923 0.927161 +vt 0.030422 0.926311 +vt 0.028290 0.934270 +vt 0.097991 0.939577 +vt 0.073416 0.933889 +vt 0.051442 0.881077 +vt 0.095390 0.936923 +vt 0.096569 0.934270 +vt 0.094436 0.926311 +vt 0.005643 0.933889 +vt 0.041852 0.940071 +vt 0.086461 0.945251 +vt 0.081759 0.942515 +vt 0.037272 0.945013 +vn 1.0000 0.0000 0.0000 +vn -0.8944 0.0000 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.3162 0.9487 +vn 0.0000 0.3162 -0.9487 +vn 0.2425 -0.9701 0.0000 +vn 0.0000 0.2588 0.9659 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 -0.9659 0.2588 +vn -0.7355 -0.6135 -0.2875 +vn -0.0514 -0.9272 0.3709 +vn 0.6841 -0.3137 0.6585 +vn 0.7355 0.6135 0.2875 +vn 0.1089 -0.9830 0.1481 +vn 0.0514 0.9272 -0.3709 +vn -0.6841 0.3137 -0.6585 +vn -0.5706 0.3321 0.7511 +vn 0.2077 0.7987 -0.5647 +vn 0.8155 -0.3935 0.4243 +vn -0.4990 0.2093 -0.8409 +vn -0.5484 -0.6815 -0.4846 +vn 0.8649 0.4973 0.0679 +vn -0.8196 -0.1731 -0.5462 +vn 0.0514 0.9272 -0.3710 +s off +f 615/1149/137 552/1150/137 547/1151/137 +f 550/1152/138 546/1153/138 545/1154/138 +f 552/1155/139 548/1156/139 547/1157/139 +f 552/1158/140 556/1159/140 551/1160/140 +f 549/1161/140 559/1162/140 560/1163/140 +f 555/1164/139 554/1165/139 556/1166/139 +f 622/1167/137 553/1168/137 555/1169/137 +f 620/1170/140 555/1171/140 552/1158/140 +f 559/1172/138 558/1173/138 560/1174/138 +f 550/1152/141 548/1156/141 551/1175/141 +f 557/1176/141 550/1152/141 551/1175/141 +f 575/1177/142 574/1178/142 573/1179/142 +f 623/1180/142 563/1181/142 564/1182/142 +f 564/1183/141 562/1184/141 561/1185/141 +f 563/1186/143 619/1187/143 562/1188/143 +f 572/1189/143 575/1190/143 571/1191/143 +f 571/1192/144 565/1193/144 567/1194/144 +f 572/1189/143 567/1195/143 568/1196/143 +f 570/1197/141 568/1198/141 566/1199/141 +f 569/1200/137 566/1201/137 565/1202/137 +f 570/1197/145 576/1203/145 572/1204/145 +f 569/1200/137 574/1205/137 570/1206/137 +f 571/1192/146 573/1207/146 569/1208/146 +f 583/1209/142 581/1210/142 582/1211/142 +f 579/1212/144 584/1213/144 580/1214/144 +f 578/1215/141 582/1216/141 577/1217/141 +f 580/1218/137 583/1219/137 578/1220/137 +f 577/1221/143 581/1222/143 579/1223/143 +f 590/1224/144 588/1225/144 589/1226/144 +f 591/1227/141 585/1228/141 592/1229/141 +f 589/1230/137 586/1231/137 591/1232/137 +f 592/1233/143 587/1234/143 590/1235/143 +f 586/1236/142 587/1237/142 585/1238/142 +f 596/1239/147 593/1240/147 594/1241/147 +f 598/1242/142 595/1243/142 596/1244/142 +f 600/1245/143 597/1246/143 598/1247/143 +f 593/1248/141 597/1249/141 599/1250/141 +f 594/1251/144 598/1252/144 596/1253/144 +f 607/1254/142 605/1255/142 606/1256/142 +f 604/1257/137 607/1258/137 602/1259/137 +f 601/1260/143 605/1261/143 603/1262/143 +f 603/1263/144 608/1264/144 604/1265/144 +f 602/1266/141 606/1267/141 601/1268/141 +f 611/1269/142 610/1270/142 609/1271/142 +f 553/1272/142 624/1273/142 561/1274/142 +f 561/1275/142 557/1276/142 554/1277/142 +f 619/1278/142 614/1279/142 558/1280/142 +f 617/1281/143 549/1282/143 616/1283/143 +f 616/1284/140 560/1163/140 613/1285/140 +f 624/1286/144 620/1287/144 616/1288/144 +f 623/1289/137 561/1290/137 624/1291/137 +f 613/1292/143 558/1293/143 614/1294/143 +f 644/1295/148 648/1296/148 643/1297/148 +f 632/1298/149 633/1299/149 629/1300/149 +f 625/1301/150 628/1302/150 626/1303/150 +f 627/1304/150 631/1305/150 632/1306/150 +f 625/1307/143 640/1308/143 627/1309/143 +f 640/1310/151 631/1311/151 627/1312/151 +f 631/1313/143 638/1314/143 632/1315/143 +f 636/1316/137 648/1317/137 633/1318/137 +f 635/1319/150 633/1320/150 634/1321/150 +f 647/1322/149 635/1323/149 642/1324/149 +f 644/1295/151 630/1325/151 646/1326/151 +f 638/1327/149 634/1321/149 632/1306/149 +f 645/1328/149 633/1320/149 648/1329/149 +f 645/1330/137 630/1331/137 629/1332/137 +f 644/1333/137 626/1334/137 628/1335/137 +f 642/1336/143 634/1337/143 643/1338/143 +f 650/1339/152 651/1340/152 649/1341/152 +f 651/1342/153 654/1343/153 653/1344/153 +f 654/1343/154 655/1345/154 653/1344/154 +f 656/1346/155 657/1347/155 655/1345/155 +f 652/1348/156 661/1349/156 654/1350/156 +f 660/1351/157 659/1352/157 664/1353/157 +f 659/1352/158 650/1339/158 649/1341/158 +f 655/1345/159 657/1347/159 664/1354/159 +f 656/1346/157 655/1345/157 662/1355/157 +f 658/1356/160 661/1357/160 660/1358/160 +f 654/1343/161 661/1359/161 656/1346/161 +f 660/1351/162 661/1360/162 650/1339/162 +f 650/1339/163 661/1360/163 652/1361/163 +f 656/1346/164 661/1359/164 658/1362/164 +f 649/1363/157 650/1364/157 663/1365/157 +f 665/1366/165 666/1367/165 667/1368/165 +f 615/1149/137 620/1369/137 552/1150/137 +f 550/1152/138 549/1370/138 546/1153/138 +f 552/1155/139 551/1175/139 548/1156/139 +f 552/1158/140 555/1171/140 556/1159/140 +f 549/1161/140 550/1371/140 559/1162/140 +f 555/1164/139 553/1372/139 554/1165/139 +f 622/1167/137 621/1373/137 553/1168/137 +f 620/1170/140 622/1374/140 555/1171/140 +f 559/1172/138 557/1176/138 558/1173/138 +f 550/1152/141 545/1154/141 548/1156/141 +f 556/1166/141 554/1165/141 551/1175/141 +f 554/1165/141 557/1176/141 551/1175/141 +f 557/1176/141 559/1172/141 550/1152/141 +f 575/1177/142 576/1375/142 574/1178/142 +f 623/1180/142 618/1376/142 563/1181/142 +f 564/1183/141 563/1377/141 562/1184/141 +f 563/1186/143 618/1378/143 619/1187/143 +f 572/1189/143 576/1379/143 575/1190/143 +f 571/1192/144 569/1208/144 565/1193/144 +f 572/1189/143 571/1191/143 567/1195/143 +f 570/1197/141 572/1204/141 568/1198/141 +f 569/1200/137 570/1206/137 566/1201/137 +f 570/1197/145 574/1380/145 576/1203/145 +f 569/1200/137 573/1381/137 574/1205/137 +f 571/1192/146 575/1382/146 573/1207/146 +f 583/1209/142 584/1383/142 581/1210/142 +f 579/1212/144 581/1384/144 584/1213/144 +f 578/1215/141 583/1385/141 582/1216/141 +f 580/1218/137 584/1386/137 583/1219/137 +f 577/1221/143 582/1387/143 581/1222/143 +f 590/1224/144 587/1388/144 588/1225/144 +f 591/1227/141 586/1389/141 585/1228/141 +f 589/1230/137 588/1390/137 586/1231/137 +f 592/1233/143 585/1391/143 587/1234/143 +f 586/1236/142 588/1392/142 587/1237/142 +f 596/1239/147 595/1393/147 593/1240/147 +f 598/1242/142 597/1394/142 595/1243/142 +f 600/1245/143 599/1395/143 597/1246/143 +f 593/1248/141 595/1396/141 597/1249/141 +f 594/1251/144 600/1397/144 598/1252/144 +f 607/1254/142 608/1398/142 605/1255/142 +f 604/1257/137 608/1399/137 607/1258/137 +f 601/1260/143 606/1400/143 605/1261/143 +f 603/1263/144 605/1401/144 608/1264/144 +f 602/1266/141 607/1402/141 606/1267/141 +f 611/1269/142 612/1403/142 610/1270/142 +f 561/1274/142 554/1404/142 553/1272/142 +f 553/1272/142 621/1405/142 624/1273/142 +f 561/1275/142 562/1406/142 557/1276/142 +f 558/1280/142 557/1407/142 562/1408/142 +f 562/1408/142 619/1278/142 558/1280/142 +f 617/1281/143 546/1409/143 549/1282/143 +f 616/1284/140 549/1161/140 560/1163/140 +f 613/1410/144 614/1411/144 619/1412/144 +f 619/1412/144 618/1413/144 623/1414/144 +f 624/1286/144 621/1415/144 622/1416/144 +f 619/1412/144 623/1414/144 624/1286/144 +f 616/1288/144 613/1410/144 619/1412/144 +f 615/1417/144 617/1418/144 616/1288/144 +f 624/1286/144 622/1416/144 620/1287/144 +f 620/1287/144 615/1417/144 616/1288/144 +f 616/1288/144 619/1412/144 624/1286/144 +f 623/1289/137 564/1419/137 561/1290/137 +f 613/1292/143 560/1420/143 558/1293/143 +f 638/1421/148 637/1422/148 643/1297/148 +f 637/1422/148 640/1310/148 643/1297/148 +f 640/1310/148 641/1423/148 639/1424/148 +f 644/1295/148 646/1326/148 648/1296/148 +f 646/1326/148 645/1425/148 648/1296/148 +f 640/1310/148 639/1424/148 644/1295/148 +f 647/1322/148 642/1324/148 643/1297/148 +f 648/1296/148 647/1322/148 643/1297/148 +f 643/1297/148 640/1310/148 644/1295/148 +f 632/1298/149 634/1426/149 633/1299/149 +f 625/1301/150 627/1312/150 628/1302/150 +f 632/1306/150 629/1427/150 628/1428/150 +f 629/1427/150 630/1429/150 628/1428/150 +f 628/1428/150 627/1304/150 632/1306/150 +f 625/1307/143 641/1430/143 640/1308/143 +f 640/1310/151 637/1422/151 631/1311/151 +f 631/1313/143 637/1431/143 638/1314/143 +f 636/1316/137 647/1432/137 648/1317/137 +f 635/1319/150 636/1433/150 633/1320/150 +f 647/1322/149 636/1434/149 635/1323/149 +f 644/1295/151 628/1302/151 630/1325/151 +f 638/1327/149 643/1435/149 634/1321/149 +f 645/1328/149 629/1427/149 633/1320/149 +f 645/1330/137 646/1436/137 630/1331/137 +f 644/1333/137 639/1437/137 626/1334/137 +f 642/1336/143 635/1438/143 634/1337/143 +f 650/1339/152 652/1361/152 651/1340/152 +f 651/1342/153 652/1439/153 654/1343/153 +f 654/1343/154 656/1346/154 655/1345/154 +f 656/1346/155 658/1362/155 657/1347/155 +f 664/1353/166 657/1440/166 658/1441/166 +f 658/1441/157 660/1351/157 664/1353/157 +f 659/1352/158 660/1351/158 650/1339/158 +f 659/1442/159 649/1363/159 664/1354/159 +f 649/1363/159 651/1342/159 664/1354/159 +f 651/1342/159 653/1344/159 664/1354/159 +f 653/1344/159 655/1345/159 664/1354/159 +o Socket +v -4.000000 0.000000 4.000000 +v 4.000000 0.000000 4.000000 +v -4.000000 0.000000 -4.000000 +v 4.000000 0.000000 -4.000000 +v -4.000000 1.000000 -4.000000 +v -4.000000 1.000000 4.000000 +v 4.000000 1.000000 4.000000 +v 4.000000 1.000000 -4.000000 +vt 1.000000 0.111111 +vt -0.000000 1.000000 +vt -0.000000 0.111111 +vt 0.000100 0.111189 +vt 0.999900 0.999900 +vt 0.000100 0.999900 +vt 0.999900 0.000100 +vt 0.000100 0.000100 +vt 1.000000 -0.000000 +vt -0.000000 0.111111 +vt -0.000000 -0.000000 +vt 1.000000 -0.000000 +vt -0.000000 0.111111 +vt -0.000000 -0.000000 +vt 1.000000 -0.000000 +vt -0.000000 0.111111 +vt -0.000000 -0.000000 +vt 1.000000 1.000000 +vt 0.999900 0.111189 +vt 1.000000 0.111111 +vt 1.000000 0.111111 +vt 1.000000 0.111111 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 670/1443/167 669/1444/167 668/1445/167 +f 674/1446/168 672/1447/168 673/1448/168 +f 671/1449/169 674/1446/169 669/1450/169 +f 668/1451/170 672/1452/170 670/1453/170 +f 670/1454/171 675/1455/171 671/1456/171 +f 669/1457/172 673/1458/172 668/1459/172 +f 670/1443/167 671/1460/167 669/1444/167 +f 674/1446/168 675/1461/168 672/1447/168 +f 671/1449/169 675/1461/169 674/1446/169 +f 668/1451/170 673/1462/170 672/1452/170 +f 670/1454/171 672/1463/171 675/1455/171 +f 669/1457/172 674/1464/172 673/1458/172 diff --git a/src/main/resources/assets/hbm/models/trinkets/yomi.obj b/src/main/resources/assets/hbm/models/trinkets/yomi.obj new file mode 100644 index 000000000..44c0bdac0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/trinkets/yomi.obj @@ -0,0 +1,487 @@ +# Blender v2.79 (sub 0) OBJ File: 'yomi.blend' +# www.blender.org +o Plane +v -0.250000 1.187500 0.250000 +v 0.250000 1.187500 0.250000 +v -0.250000 1.187500 -0.250000 +v 0.250000 1.187500 -0.250000 +v 0.250000 1.000000 0.187500 +v 0.250000 1.000000 -0.187500 +v 0.125000 0.750000 0.187500 +v 0.125000 0.750000 -0.187500 +v 0.125000 1.000000 0.187500 +v 0.125000 1.000000 -0.187500 +v 0.156375 0.937500 -0.031250 +v 0.156375 0.937500 0.031250 +v 0.156375 1.000000 0.031250 +v 0.156375 1.000000 -0.031250 +v 0.125000 0.875000 -0.031250 +v 0.125000 0.875000 -0.187500 +v 0.125000 1.000000 -0.031250 +v 0.187500 1.000000 -0.031250 +v 0.187500 1.000000 -0.187500 +v 0.187500 0.875000 -0.187500 +v 0.187500 0.875000 -0.031250 +v 0.125000 1.000000 0.031250 +v 0.125000 0.875000 0.031250 +v 0.125000 0.875000 0.187500 +v 0.187500 0.875000 0.187500 +v 0.187500 0.875000 0.031250 +v 0.187500 1.000000 0.031250 +v 0.187500 1.000000 0.187500 +v -0.187500 0.750000 0.187500 +v -0.187500 0.750000 -0.187500 +v -0.250000 0.625000 -0.250000 +v -0.250000 0.625000 0.250000 +v 0.250000 0.625000 0.250000 +v 0.250000 0.625000 0.187500 +v 0.250000 0.625000 -0.250000 +v 0.250000 0.625000 -0.187500 +v -0.187500 0.625000 -0.187500 +v -0.187500 0.625000 0.187500 +v -0.218750 0.750000 -0.218750 +v -0.218750 0.750000 0.218750 +v 0.218750 0.750000 0.218750 +v 0.218750 0.750000 -0.218750 +v -0.218750 0.562500 0.218750 +v 0.218750 0.562500 0.218750 +v 0.218750 0.562500 -0.218750 +v -0.218750 0.562500 -0.218750 +v -0.187500 0.562500 -0.187500 +v -0.187500 0.562500 0.187500 +v 0.187500 0.562500 0.187500 +v 0.187500 0.562500 -0.187500 +v -0.187500 0.062500 0.250000 +v 0.187500 0.062500 0.250000 +v 0.187500 0.062500 -0.250000 +v -0.187500 0.062500 -0.250000 +v -0.031250 1.187500 0.218750 +v 0.031250 1.187500 0.218750 +v -0.031250 1.187500 0.031250 +v 0.031250 1.187500 0.031250 +v -0.031250 1.812500 0.031250 +v -0.031250 1.812500 0.218750 +v 0.031250 1.812500 0.218750 +v 0.031250 1.812500 0.031250 +v -0.031250 1.187500 -0.031250 +v 0.031250 1.187500 -0.031250 +v -0.031250 1.187500 -0.218750 +v 0.031250 1.187500 -0.218750 +v -0.031250 1.812500 -0.218750 +v -0.031250 1.812500 -0.031250 +v 0.031250 1.812500 -0.031250 +v 0.031250 1.812500 -0.218750 +v -0.062500 0.000000 -0.062500 +v 0.437500 0.000000 -0.062500 +v -0.062500 0.000000 -0.187500 +v 0.437500 0.000000 -0.187500 +v -0.062500 0.125000 -0.187500 +v -0.062500 0.125000 -0.062500 +v 0.437500 0.125000 -0.062500 +v 0.437500 0.125000 -0.187500 +v 0.562500 0.000000 -0.062500 +v 0.562500 0.000000 -0.187500 +v 0.562500 0.312500 -0.062500 +v 0.562500 0.312500 -0.187500 +v -0.062500 0.000000 0.187500 +v 0.437500 0.000000 0.187500 +v -0.062500 0.000000 0.062500 +v 0.437500 0.000000 0.062500 +v -0.062500 0.125000 0.062500 +v -0.062500 0.125000 0.187500 +v 0.437500 0.125000 0.187500 +v 0.437500 0.125000 0.062500 +v 0.562500 0.000000 0.187500 +v 0.562500 0.000000 0.062500 +v 0.562500 0.312500 0.187500 +v 0.562500 0.312500 0.062500 +v -0.062500 0.562500 -0.099112 +v -0.062500 0.650888 -0.187500 +v -0.062500 0.208947 -0.452665 +v -0.062500 0.297335 -0.541053 +v 0.062500 0.562500 -0.099112 +v 0.062500 0.650888 -0.187500 +v 0.062500 0.208947 -0.452665 +v 0.062500 0.297335 -0.541053 +v -0.062500 0.562500 0.099112 +v -0.062500 0.650888 0.187500 +v -0.062500 0.208947 0.452665 +v -0.062500 0.297335 0.541053 +v 0.062500 0.562500 0.099112 +v 0.062500 0.650888 0.187500 +v 0.062500 0.208947 0.452665 +v 0.062500 0.297335 0.541053 +v 0.135000 0.859375 0.078125 +v 0.135000 0.765625 0.078125 +v 0.135000 0.859375 -0.078125 +v 0.135000 0.765625 -0.078125 +vt 0.166667 0.809524 +vt 0.333333 1.000000 +vt 0.166667 1.000000 +vt 0.166667 0.595238 +vt 0.187500 0.738095 +vt 0.000000 0.595238 +vt 0.000000 0.809524 +vt 0.333333 0.595238 +vt 0.500000 0.809524 +vt 0.333333 0.809524 +vt 0.312500 0.690476 +vt 0.312500 0.738095 +vt 0.166667 0.809524 +vt 0.166667 0.857143 +vt 0.062500 0.857143 +vt 0.187500 0.595238 +vt 0.187500 0.690476 +vt 0.395833 0.523810 +vt 0.416667 0.547619 +vt 0.395833 0.547619 +vt 0.447917 0.547619 +vt 0.500000 0.523810 +vt 0.500000 0.547619 +vt 0.312500 0.428571 +vt 0.333333 0.404762 +vt 0.437500 0.595238 +vt 0.416667 0.547619 +vt 0.437500 0.547619 +vt 0.187500 0.476190 +vt 0.312500 0.595238 +vt 0.500000 0.595238 +vt 0.447917 0.595238 +vt 0.395833 0.547619 +vt 0.416667 0.595238 +vt 0.395833 0.595238 +vt 0.333333 0.547619 +vt 0.385417 0.523810 +vt 0.385417 0.547619 +vt 0.385417 0.595238 +vt 0.333333 0.595238 +vt 0.479167 0.809524 +vt 0.437500 0.857143 +vt 0.333333 0.809524 +vt 0.312500 0.476190 +vt 0.500000 0.595238 +vt 0.666667 0.809524 +vt 0.291667 0.238095 +vt 0.145833 0.404762 +vt 0.145833 0.238095 +vt 0.145833 0.000000 +vt 0.291667 0.166667 +vt 0.145833 0.166667 +vt -0.000000 0.238095 +vt 0.437500 0.166667 +vt 0.437500 0.238095 +vt 0.583333 0.166667 +vt 0.583333 0.238095 +vt 0.833333 0.333333 +vt 0.708333 0.476190 +vt 0.708333 0.333333 +vt 0.687500 0.000000 +vt 0.854167 0.142857 +vt 0.687500 0.142857 +vt 0.833333 0.476190 +vt 0.687500 0.666667 +vt 0.541667 0.333333 +vt 1.000000 0.476190 +vt 0.354167 0.476190 +vt 0.437500 0.500000 +vt 0.354167 0.500000 +vt 0.354167 0.476190 +vt 0.437500 0.500000 +vt 0.354167 0.500000 +vt 0.458333 0.238095 +vt 0.437500 0.476190 +vt 0.437500 0.238095 +vt 0.354167 0.238095 +vt 0.333333 0.476190 +vt 0.333333 0.238095 +vt 0.427083 0.238095 +vt 0.364583 0.476190 +vt 0.364583 0.238095 +vt 0.531250 0.238095 +vt 0.468750 0.476190 +vt 0.468750 0.238095 +vt 0.458333 0.238095 +vt 0.437500 0.476190 +vt 0.437500 0.238095 +vt 0.354167 0.238095 +vt 0.333333 0.476190 +vt 0.333333 0.238095 +vt 0.427083 0.238095 +vt 0.364583 0.476190 +vt 0.364583 0.238095 +vt 0.531250 0.238095 +vt 0.468750 0.476190 +vt 0.468750 0.238095 +vt 0.791667 0.857143 +vt 0.833333 0.666667 +vt 0.833333 0.857143 +vt 0.708333 0.666667 +vt 0.750000 0.857143 +vt 0.708333 0.857143 +vt 0.750000 0.666667 +vt 0.791667 0.666667 +vt 0.666667 0.666667 +vt 0.666667 0.857143 +vt 0.833333 0.714286 +vt 0.875000 0.666667 +vt 0.875000 0.785714 +vt 0.708333 0.904762 +vt 0.750000 0.904762 +vt 0.916667 0.666667 +vt 0.875000 0.857143 +vt 0.916667 0.785714 +vt 0.916667 0.857143 +vt 0.916667 0.619048 +vt 0.875000 0.619048 +vt 0.958333 0.714286 +vt 0.958333 0.666667 +vt 0.833333 0.857143 +vt 0.791667 0.666667 +vt 0.791667 0.857143 +vt 0.750000 0.666667 +vt 0.708333 0.857143 +vt 0.750000 0.857143 +vt 0.666667 0.857143 +vt 0.708333 0.666667 +vt 0.666667 0.666667 +vt 0.958333 0.714286 +vt 0.916667 0.666667 +vt 0.916667 0.785714 +vt 0.750000 0.904762 +vt 0.708333 0.904762 +vt 0.875000 0.666667 +vt 0.916667 0.857143 +vt 0.875000 0.785714 +vt 0.875000 0.857143 +vt 0.875000 0.619048 +vt 0.916667 0.619048 +vt 0.833333 0.714286 +vt 0.833333 0.666667 +vt 0.125000 0.595238 +vt 0.166667 0.404762 +vt 0.166667 0.595238 +vt 0.083333 0.357143 +vt 0.041667 0.404762 +vt 0.041667 0.357143 +vt 0.083333 0.404762 +vt 0.041667 0.595238 +vt -0.000000 0.595238 +vt -0.000000 0.404762 +vt 0.125000 0.404762 +vt 0.083333 0.595238 +vt 0.166667 0.404762 +vt 0.125000 0.595238 +vt 0.166667 0.595238 +vt 0.041667 0.404762 +vt 0.083333 0.357143 +vt 0.041667 0.357143 +vt 0.041667 0.595238 +vt 0.083333 0.404762 +vt -0.000000 0.595238 +vt -0.000000 0.404762 +vt 0.083333 0.595238 +vt 0.125000 0.404762 +vt 0.187500 0.428571 +vt 0.166667 0.404762 +vt 0.500000 0.523810 +vt 0.604167 0.595238 +vt 0.500000 0.595238 +vt 0.187500 0.595238 +vt 0.062500 0.952381 +vt 0.020833 0.952381 +vt 0.020833 0.809524 +vt 0.416667 0.523810 +vt 0.447917 0.523810 +vt 0.312500 0.595238 +vt 0.416667 0.595238 +vt 0.416667 0.547619 +vt 0.333333 0.523810 +vt 0.479167 0.952381 +vt 0.437500 0.952381 +vt 0.333333 0.857143 +vt 0.666667 0.595238 +vt 0.291667 0.404762 +vt 0.291667 0.000000 +vt 0.000000 0.166667 +vt 0.854167 0.000000 +vt 0.854167 0.666667 +vt 0.541667 0.476190 +vt 1.000000 0.333333 +vt 0.458333 0.476190 +vt 0.427083 0.476190 +vt 0.531250 0.476190 +vt 0.458333 0.476190 +vt 0.427083 0.476190 +vt 0.531250 0.476190 +vt 0.958333 0.666667 +vt 0.604167 0.523810 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.1240 0.9923 +vn 0.0000 0.1240 -0.9923 +vn -0.8321 0.5547 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +s off +f 2/1/1 3/2/1 1/3/1 +f 33/4/2 5/5/2 2/1/2 +f 32/6/3 2/1/3 1/7/3 +f 35/8/4 3/9/4 4/10/4 +f 5/5/5 10/11/5 6/12/5 +f 38/13/4 29/14/4 7/15/4 +f 7/16/2 10/11/2 9/17/2 +f 12/18/2 14/19/2 13/20/2 +f 21/21/5 16/22/5 20/23/5 +f 35/8/5 37/24/5 31/25/5 +f 18/26/3 15/27/3 21/28/3 +f 29/29/5 8/30/5 7/16/5 +f 21/21/2 19/31/2 18/32/2 +f 26/33/4 22/34/4 27/35/4 +f 25/36/5 23/37/5 26/38/5 +f 25/36/2 27/39/2 28/40/2 +f 36/41/3 8/42/3 37/43/3 +f 29/29/2 37/24/2 30/44/2 +f 31/45/6 1/46/6 3/9/6 +f 42/47/1 40/48/1 41/49/1 +f 43/50/5 45/51/5 44/52/5 +f 40/53/3 44/52/3 41/49/3 +f 41/49/2 45/51/2 42/47/2 +f 42/47/4 46/54/4 39/55/4 +f 39/55/6 43/56/6 40/57/6 +f 50/58/1 48/59/1 49/60/1 +f 51/61/5 53/62/5 52/63/5 +f 47/64/6 51/65/6 48/59/6 +f 48/59/7 52/66/7 49/60/7 +f 49/60/2 53/62/2 50/58/2 +f 50/58/8 54/67/8 47/64/8 +f 69/68/1 67/69/1 68/70/1 +f 61/71/1 59/72/1 60/73/1 +f 57/74/4 62/75/4 58/76/4 +f 56/77/3 60/78/3 55/79/3 +f 58/80/2 61/81/2 56/82/2 +f 55/83/6 59/84/6 57/85/6 +f 65/86/4 70/87/4 66/88/4 +f 64/89/3 68/90/3 63/91/3 +f 66/92/2 69/93/2 64/94/2 +f 63/95/6 67/96/6 65/97/6 +f 73/98/5 72/99/5 71/100/5 +f 77/101/1 75/102/1 76/103/1 +f 73/98/4 78/104/4 74/105/4 +f 72/106/3 76/103/3 71/107/3 +f 77/108/3 79/109/3 81/110/3 +f 71/111/6 75/102/6 73/112/6 +f 80/113/2 81/110/2 79/109/2 +f 77/114/9 82/115/9 78/116/9 +f 74/117/5 79/109/5 72/118/5 +f 78/119/4 80/113/4 74/120/4 +f 85/121/5 84/122/5 83/123/5 +f 89/124/1 87/125/1 88/126/1 +f 85/127/4 90/128/4 86/129/4 +f 84/122/3 88/126/3 83/123/3 +f 89/130/3 91/131/3 93/132/3 +f 83/133/6 87/125/6 85/134/6 +f 92/135/2 93/132/2 91/131/2 +f 89/136/9 94/137/9 90/138/9 +f 86/139/5 91/131/5 84/140/5 +f 90/141/4 92/135/4 86/142/4 +f 96/143/6 97/144/6 95/145/6 +f 98/146/10 101/147/10 97/148/10 +f 102/149/2 99/150/2 101/147/2 +f 101/147/11 95/151/11 97/152/11 +f 98/153/12 100/154/12 102/149/12 +f 105/155/6 104/156/6 103/157/6 +f 109/158/11 106/159/11 105/160/11 +f 107/161/2 110/162/2 109/158/2 +f 103/163/10 109/158/10 105/164/10 +f 108/165/13 106/166/13 110/162/13 +f 6/12/2 2/1/2 5/5/2 +f 6/12/2 35/8/2 4/10/2 +f 38/167/5 33/4/5 32/168/5 +f 38/167/5 31/25/5 37/24/5 +f 112/169/2 113/170/2 111/171/2 +f 2/1/1 4/10/1 3/2/1 +f 33/4/2 34/172/2 5/5/2 +f 32/6/3 33/4/3 2/1/3 +f 35/8/4 31/45/4 3/9/4 +f 5/5/5 9/17/5 10/11/5 +f 9/173/4 5/174/4 7/15/4 +f 5/174/4 34/175/4 7/15/4 +f 34/175/4 38/13/4 7/15/4 +f 7/16/2 8/30/2 10/11/2 +f 12/18/2 11/176/2 14/19/2 +f 21/21/5 15/177/5 16/22/5 +f 35/8/5 36/178/5 37/24/5 +f 18/26/3 17/179/3 15/27/3 +f 29/29/5 30/44/5 8/30/5 +f 21/21/2 20/23/2 19/31/2 +f 26/33/4 23/180/4 22/34/4 +f 25/36/5 24/181/5 23/37/5 +f 25/36/2 26/38/2 27/39/2 +f 36/41/3 6/182/3 8/42/3 +f 6/182/3 10/183/3 8/42/3 +f 8/42/3 30/184/3 37/43/3 +f 29/29/2 38/167/2 37/24/2 +f 31/45/6 32/185/6 1/46/6 +f 42/47/1 39/186/1 40/48/1 +f 43/50/5 46/187/5 45/51/5 +f 40/53/3 43/188/3 44/52/3 +f 41/49/2 44/52/2 45/51/2 +f 42/47/4 45/51/4 46/54/4 +f 39/55/6 46/54/6 43/56/6 +f 50/58/1 47/64/1 48/59/1 +f 51/61/5 54/189/5 53/62/5 +f 47/64/6 54/190/6 51/65/6 +f 48/59/7 51/191/7 52/66/7 +f 49/60/2 52/63/2 53/62/2 +f 50/58/8 53/192/8 54/67/8 +f 69/68/1 70/87/1 67/69/1 +f 61/71/1 62/75/1 59/72/1 +f 57/74/4 59/193/4 62/75/4 +f 56/77/3 61/71/3 60/78/3 +f 58/80/2 62/194/2 61/81/2 +f 55/83/6 60/195/6 59/84/6 +f 65/86/4 67/196/4 70/87/4 +f 64/89/3 69/68/3 68/90/3 +f 66/92/2 70/197/2 69/93/2 +f 63/95/6 68/198/6 67/96/6 +f 73/98/5 74/105/5 72/99/5 +f 77/101/1 78/104/1 75/102/1 +f 73/98/4 75/102/4 78/104/4 +f 72/106/3 77/101/3 76/103/3 +f 77/108/3 72/99/3 79/109/3 +f 71/111/6 76/103/6 75/102/6 +f 80/113/2 82/115/2 81/110/2 +f 77/114/9 81/110/9 82/115/9 +f 74/117/5 80/113/5 79/109/5 +f 78/119/4 82/115/4 80/113/4 +f 85/121/5 86/142/5 84/122/5 +f 89/124/1 90/128/1 87/125/1 +f 85/127/4 87/125/4 90/128/4 +f 84/122/3 89/124/3 88/126/3 +f 89/130/3 84/199/3 91/131/3 +f 83/133/6 88/126/6 87/125/6 +f 92/135/2 94/137/2 93/132/2 +f 89/136/9 93/132/9 94/137/9 +f 86/139/5 92/135/5 91/131/5 +f 90/141/4 94/137/4 92/135/4 +f 96/143/6 98/153/6 97/144/6 +f 98/146/10 102/149/10 101/147/10 +f 102/149/2 100/154/2 99/150/2 +f 101/147/11 99/150/11 95/151/11 +f 98/153/12 96/143/12 100/154/12 +f 105/155/6 106/166/6 104/156/6 +f 109/158/11 110/162/11 106/159/11 +f 107/161/2 108/165/2 110/162/2 +f 103/163/10 107/161/10 109/158/10 +f 108/165/13 104/156/13 106/166/13 +f 6/12/2 4/10/2 2/1/2 +f 6/12/2 36/178/2 35/8/2 +f 38/167/5 34/172/5 33/4/5 +f 38/167/5 32/168/5 31/25/5 +f 112/169/2 114/200/2 113/170/2 diff --git a/src/main/resources/assets/hbm/models/untitled.obj b/src/main/resources/assets/hbm/models/untitled.obj deleted file mode 100644 index d3483b770..000000000 --- a/src/main/resources/assets/hbm/models/untitled.obj +++ /dev/null @@ -1,887 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: '' -# www.blender.org -o Cube.001 -v 0.250000 0.250000 0.375000 -v 0.250000 0.250000 0.500000 -v 0.250000 0.750000 0.500000 -v 0.250000 0.750000 0.375000 -v -0.312500 0.062500 0.437500 -v -0.312500 0.875000 0.437500 -v -0.312500 0.875000 0.375000 -v -0.312500 0.062500 0.375000 -v -0.250000 0.750000 0.500000 -v -0.250000 0.250000 0.500000 -v -0.250000 0.250000 0.375000 -v -0.250000 0.750000 0.375000 -v 0.312500 0.062500 0.375000 -v 0.312500 0.875000 0.375000 -v 0.312500 0.875000 0.437500 -v 0.312500 0.062500 0.437500 -v 0.500000 0.250000 0.250000 -v 0.375000 0.250000 0.250000 -v 0.375000 0.750000 0.250000 -v 0.500000 0.750000 0.250000 -v 0.375000 0.750000 -0.250000 -v 0.375000 0.250000 -0.250000 -v 0.500000 0.250000 -0.250000 -v 0.500000 0.750000 -0.250000 -v 0.437500 0.875000 0.312500 -v 0.437500 0.875000 -0.312500 -v 0.375000 0.875000 -0.312500 -v 0.375000 0.875000 0.312500 -v 0.437500 0.062500 -0.312500 -v 0.375000 0.062500 -0.312500 -v 0.375000 0.062500 0.312500 -v 0.437500 0.062500 0.312500 -v -0.375000 0.250000 -0.250000 -v -0.375000 0.750000 -0.250000 -v -0.500000 0.750000 -0.250000 -v -0.500000 0.250000 -0.250000 -v -0.437500 0.875000 -0.312500 -v -0.437500 0.875000 0.312500 -v -0.375000 0.875000 0.312500 -v -0.375000 0.875000 -0.312500 -v -0.437500 0.062500 -0.312500 -v -0.375000 0.062500 -0.312500 -v -0.500000 0.250000 0.250000 -v -0.500000 0.750000 0.250000 -v -0.375000 0.750000 0.250000 -v -0.375000 0.250000 0.250000 -v -0.375000 0.062500 0.312500 -v -0.437500 0.062500 0.312500 -v 0.312500 0.062500 -0.437500 -v 0.312500 0.875000 -0.437500 -v 0.312500 0.875000 -0.375000 -v 0.312500 0.062500 -0.375000 -v -0.250000 0.250000 -0.500000 -v 0.250000 0.250000 -0.500000 -v 0.250000 0.750000 -0.500000 -v -0.250000 0.750000 -0.500000 -v 0.250000 0.750000 -0.375000 -v -0.250000 0.750000 -0.375000 -v 0.250000 0.250000 -0.375000 -v -0.250000 0.250000 -0.375000 -v -0.312500 0.062500 -0.375000 -v -0.312500 0.875000 -0.375000 -v -0.312500 0.875000 -0.437500 -v -0.312500 0.062500 -0.437500 -v 0.437500 0.937500 0.437500 -v -0.437500 0.937500 0.437500 -v 0.437500 0.937500 -0.437500 -v -0.437500 0.937500 -0.437500 -v 0.437500 0.062500 -0.437500 -v 0.437500 0.062500 0.437500 -v -0.437500 0.062500 0.437500 -v -0.437500 0.062500 -0.437500 -v -0.375000 0.937500 -0.375000 -v -0.375000 0.937500 0.375000 -v 0.375000 0.937500 -0.375000 -v 0.375000 0.937500 0.375000 -v 0.187500 0.937500 0.187500 -v -0.187500 0.937500 0.187500 -v -0.187500 1.000000 0.187500 -v 0.187500 1.000000 0.187500 -v -0.250000 0.937500 -0.250000 -v -0.250000 0.937500 0.250000 -v -0.375000 0.937500 0.250000 -v -0.375000 0.937500 -0.250000 -v -0.375000 1.000000 -0.375000 -v -0.375000 1.000000 -0.250000 -v -0.250000 0.937500 0.375000 -v -0.375000 1.000000 0.375000 -v -0.250000 1.000000 0.375000 -v 0.250000 0.937500 -0.250000 -v -0.250000 0.937500 -0.375000 -v 0.250000 0.937500 -0.375000 -v 0.375000 0.937500 0.250000 -v 0.375000 1.000000 0.375000 -v 0.375000 1.000000 0.250000 -v 0.250000 0.937500 0.250000 -v 0.250000 0.937500 0.375000 -v 0.375000 1.000000 -0.375000 -v 0.250000 1.000000 -0.375000 -v 0.375000 0.937500 -0.250000 -v 0.250000 1.000000 -0.250000 -v 0.375000 1.000000 -0.250000 -v -0.375000 1.000000 0.250000 -v -0.250000 1.000000 0.250000 -v -0.250000 1.000000 -0.375000 -v -0.250000 1.000000 -0.250000 -v 0.250000 1.000000 0.375000 -v 0.250000 1.000000 0.250000 -v -0.187500 0.937500 -0.187500 -v 0.187500 0.937500 -0.187500 -v -0.187500 1.000000 -0.187500 -v 0.187500 1.000000 -0.187500 -v -0.125000 1.000000 -0.125000 -v -0.125000 1.000000 0.125000 -v 0.125000 1.000000 -0.125000 -v 0.125000 1.000000 0.125000 -v -0.125000 1.937500 -0.125000 -v -0.125000 1.937500 0.125000 -v 0.125000 1.937500 0.125000 -v 0.125000 1.937500 -0.125000 -v -0.437500 1.875000 0.437500 -v 0.437500 1.875000 0.437500 -v 0.437500 1.687500 0.437500 -v -0.437500 1.687500 0.437500 -v -0.187500 1.875000 -0.187500 -v 0.187500 1.875000 -0.187500 -v 0.187500 1.937500 -0.187500 -v -0.187500 1.937500 -0.187500 -v 0.187500 1.875000 0.187500 -v 0.187500 1.937500 0.187500 -v -0.187500 1.875000 0.187500 -v -0.187500 1.937500 0.187500 -v 0.250000 1.625000 -0.250000 -v 0.250000 1.625000 0.250000 -v 0.375000 1.625000 0.375000 -v 0.375000 1.625000 -0.375000 -v 0.437500 1.875000 -0.437500 -v 0.437500 1.687500 -0.437500 -v -0.187500 1.687500 0.187500 -v 0.187500 1.687500 0.187500 -v 0.187500 1.750000 0.187500 -v -0.187500 1.750000 0.187500 -v -0.437500 1.687500 -0.437500 -v -0.437500 1.875000 -0.437500 -v -0.250000 1.625000 -0.250000 -v -0.375000 1.625000 -0.375000 -v -0.250000 1.625000 0.250000 -v -0.375000 1.625000 0.375000 -v -0.125000 1.687500 0.125000 -v 0.125000 1.687500 0.125000 -v -0.250000 1.937500 -0.250000 -v -0.250000 1.937500 0.250000 -v -0.375000 1.937500 0.375000 -v -0.375000 1.937500 -0.375000 -v 0.187500 1.687500 -0.187500 -v 0.187500 1.750000 -0.187500 -v 0.250000 1.937500 0.250000 -v 0.250000 1.937500 -0.250000 -v 0.375000 1.937500 -0.375000 -v 0.375000 1.937500 0.375000 -v -0.187500 1.687500 -0.187500 -v -0.187500 1.750000 -0.187500 -v 0.500000 0.062500 -0.500000 -v 0.500000 0.062500 0.500000 -v 0.500000 0.000000 0.500000 -v 0.500000 0.000000 -0.500000 -v -0.500000 0.062500 -0.500000 -v -0.500000 0.000000 -0.500000 -v -0.500000 0.062500 0.500000 -v -0.500000 0.000000 0.500000 -v -0.125000 1.875000 -0.125000 -v 0.125000 1.875000 -0.125000 -v 0.125000 1.875000 0.125000 -v -0.125000 1.875000 0.125000 -v -0.125000 1.687500 -0.125000 -v 0.125000 1.687500 -0.125000 -v 0.125000 0.250000 0.437500 -v 0.125000 0.250000 0.375000 -v 0.125000 0.062500 0.375000 -v 0.125000 0.062500 0.437500 -v 0.125000 0.250000 -0.375000 -v 0.125000 0.250000 -0.437500 -v 0.125000 0.062500 -0.437500 -v 0.125000 0.062500 -0.375000 -v -0.125000 0.250000 0.375000 -v -0.125000 0.250000 0.437500 -v -0.125000 0.062500 0.437500 -v -0.125000 0.062500 0.375000 -v -0.125000 0.250000 -0.437500 -v -0.125000 0.250000 -0.375000 -v -0.125000 0.062500 -0.375000 -v -0.125000 0.062500 -0.437500 -v -0.437500 0.250000 0.125000 -v -0.375000 0.250000 0.125000 -v -0.375000 0.062500 0.125000 -v -0.437500 0.062500 0.125000 -v 0.375000 0.250000 0.125000 -v 0.437500 0.250000 0.125000 -v 0.437500 0.062500 0.125000 -v 0.375000 0.062500 0.125000 -v -0.375000 0.250000 -0.125000 -v -0.437500 0.250000 -0.125000 -v -0.437500 0.062500 -0.125000 -v -0.375000 0.062500 -0.125000 -v 0.437500 0.250000 -0.125000 -v 0.375000 0.250000 -0.125000 -v 0.375000 0.062500 -0.125000 -v 0.437500 0.062500 -0.125000 -v -0.500000 0.062500 0.500000 -v 0.500000 0.062500 0.500000 -vt 0.375000 0.359375 -vt 0.375000 0.390625 -vt 0.250000 0.390625 -vt 0.250000 0.984375 -vt 0.250000 0.781250 -vt 0.234375 0.781250 -vt 0.500000 0.359375 -vt 0.125000 0.515625 -vt -0.000000 0.515625 -vt -0.000000 0.390625 -vt 0.406250 0.781250 -vt 0.390625 0.828125 -vt 0.406250 0.984375 -vt 0.265625 0.953125 -vt 0.265625 0.828125 -vt -0.000000 0.359375 -vt 0.125000 0.359375 -vt 0.125000 0.390625 -vt 0.421875 0.984375 -vt 0.421875 0.781250 -vt 0.250000 1.000000 -vt 0.500000 0.390625 -vt 0.625000 0.984375 -vt 0.468750 0.984375 -vt 0.468750 1.000000 -vt 0.625000 0.781250 -vt 0.640625 0.984375 -vt 0.484375 0.828125 -vt 0.468750 0.781250 -vt 0.484375 0.953125 -vt 0.609375 0.828125 -vt 0.453125 0.781250 -vt 0.031250 1.000000 -vt 0.187500 1.000000 -vt 0.187500 0.984375 -vt 0.015625 0.781250 -vt 0.015625 0.984375 -vt 0.031250 0.984375 -vt 0.031250 0.781250 -vt 0.187500 0.781250 -vt 0.171875 0.828125 -vt 0.046875 0.953125 -vt 0.046875 0.828125 -vt 0.203125 0.984375 -vt 0.250000 0.359375 -vt 0.671875 0.781250 -vt 0.671875 0.984375 -vt 0.687500 0.984375 -vt 0.687500 0.781250 -vt 0.843750 0.781250 -vt 0.828125 0.828125 -vt 0.843750 0.984375 -vt 0.703125 0.953125 -vt 0.703125 0.828125 -vt 0.687500 1.000000 -vt 0.843750 1.000000 -vt 0.859375 0.984375 -vt 0.218750 1.000000 -vt 0.437500 1.000000 -vt 0.656250 1.000000 -vt 0.000000 1.000000 -vt 0.656250 0.781250 -vt 0.437500 0.781250 -vt 0.218750 0.781250 -vt 0.875000 0.781250 -vt 0.000000 0.781250 -vt 0.468750 0.359375 -vt 0.453125 0.343750 -vt 0.250000 0.140625 -vt 0.265625 0.343750 -vt 0.468750 0.140625 -vt 0.453125 0.156250 -vt 0.265625 0.156250 -vt 0.781250 0.687500 -vt 0.875000 0.687500 -vt 0.875000 0.671875 -vt 0.296875 0.343750 -vt 0.421875 0.343750 -vt 0.421875 0.312500 -vt 0.781250 0.734375 -vt 0.750000 0.734375 -vt 0.750000 0.750000 -vt 0.781250 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.734375 -vt 0.265625 0.187500 -vt 0.265625 0.312500 -vt 0.296875 0.312500 -vt 0.718750 0.734375 -vt 0.718750 0.750000 -vt 0.453125 0.312500 -vt 0.453125 0.187500 -vt 0.421875 0.187500 -vt 0.687500 0.750000 -vt 0.421875 0.156250 -vt 0.296875 0.156250 -vt 0.296875 0.187500 -vt 0.718750 0.781250 -vt 0.750000 0.781250 -vt 0.796875 0.734375 -vt 0.765625 0.734375 -vt 0.765625 0.750000 -vt 0.406250 0.296875 -vt 0.312500 0.296875 -vt 0.406250 0.203125 -vt 0.312500 0.203125 -vt 0.781250 0.671875 -vt 0.687500 0.671875 -vt 0.687500 0.687500 -vt 0.593750 0.671875 -vt 0.500000 0.671875 -vt 0.500000 0.687500 -vt 0.593750 0.687500 -vt 0.593750 0.781250 -vt 0.671875 0.765625 -vt 0.609375 0.765625 -vt 0.671875 0.703125 -vt 0.609375 0.703125 -vt 0.062500 0.359375 -vt 0.125000 0.296875 -vt 0.359375 0.421875 -vt 0.140625 0.421875 -vt 0.140625 0.468750 -vt 0.000000 0.000000 -vt 0.984375 0.203125 -vt 0.796875 0.203125 -vt 0.828125 0.234375 -vt 0.125000 0.421875 -vt 0.125000 0.468750 -vt 0.343750 0.468750 -vt 0.359375 0.468750 -vt 0.984375 0.390625 -vt 0.953125 0.234375 -vt 0.796875 0.390625 -vt 0.828125 0.359375 -vt 0.187500 0.046875 -vt 0.187500 0.218750 -vt 0.125000 0.218750 -vt 0.578125 0.390625 -vt 0.765625 0.390625 -vt 0.734375 0.359375 -vt 0.953125 0.359375 -vt 0.765625 0.203125 -vt 0.578125 0.203125 -vt 0.609375 0.234375 -vt 0.734375 0.234375 -vt 0.609375 0.359375 -vt 0.562500 0.406250 -vt 0.562500 0.187500 -vt 0.781250 0.406250 -vt 0.781250 0.187500 -vt 0.796875 0.375000 -vt 0.984375 0.375000 -vt 1.000000 0.390625 -vt 1.000000 0.187500 -vt 0.625000 0.343750 -vt 0.718750 0.343750 -vt 0.625000 0.250000 -vt 0.984127 0.190476 -vt 0.984127 0.317460 -vt 1.000000 0.301587 -vt 0.843750 0.250000 -vt 0.843750 0.343750 -vt 0.937500 0.343750 -vt 0.937500 0.250000 -vt 0.500000 0.515625 -vt 0.500000 0.531250 -vt 0.750000 0.531250 -vt 0.750000 0.515625 -vt 1.000000 0.515625 -vt 0.250000 0.531250 -vt 0.000000 0.531250 -vt 0.250000 0.515625 -vt 0.125000 0.281250 -vt 0.062500 0.296875 -vt 0.187500 0.296875 -vt 0.062500 0.281250 -vt -0.000000 0.281250 -vt 0.250000 0.296875 -vt 0.250000 0.281250 -vt 0.187500 0.281250 -vt 0.250000 0.218750 -vt 0.062500 0.046875 -vt 0.062500 0.218750 -vt -0.000000 0.218750 -vt 0.125000 0.046875 -vt 0.250000 0.484375 -vt 0.265625 0.484375 -vt 0.265625 0.437500 -vt 0.203125 0.437500 -vt 0.203125 0.484375 -vt 0.218750 0.484375 -vt 0.171875 0.484375 -vt 0.187500 0.484375 -vt 0.187500 0.437500 -vt 0.140625 0.437500 -vt 0.125000 0.437500 -vt 0.125000 0.484375 -vt 0.234375 0.484375 -vt 0.234375 0.437500 -vt 0.171875 0.468750 -vt 0.187500 0.468750 -vt 0.187500 0.421875 -vt 0.140625 0.484375 -vt 0.156250 0.484375 -vt 0.156250 0.437500 -vt 0.171875 0.437500 -vt 0.093750 0.359375 -vt 0.093750 0.375000 -vt 0.031250 0.375000 -vt 0.296875 0.546875 -vt 0.343750 0.546875 -vt 0.343750 0.562500 -vt 0.406250 0.546875 -vt 0.406250 0.562500 -vt 0.453125 0.562500 -vt 0.265625 0.546875 -vt 0.265625 0.765625 -vt 0.296875 0.765625 -vt 0.343750 0.765625 -vt 0.343750 0.750000 -vt 0.406250 0.750000 -vt 0.406250 0.765625 -vt 0.453125 0.765625 -vt 0.265625 0.625000 -vt 0.281250 0.625000 -vt 0.281250 0.578125 -vt 0.265625 0.734375 -vt 0.265625 0.687500 -vt 0.281250 0.687500 -vt 0.468750 0.687500 -vt 0.484375 0.687500 -vt 0.484375 0.734375 -vt 0.484375 0.578125 -vt 0.484375 0.625000 -vt 0.468750 0.625000 -vt 0.484375 0.546875 -vt 0.500000 0.781250 -vt 0.484375 0.765625 -vt 0.234375 0.984375 -vt 0.390625 0.953125 -vt 0.406250 1.000000 -vt 0.625000 1.000000 -vt 0.640625 0.781250 -vt 0.609375 0.953125 -vt 0.453125 0.984375 -vt 0.171875 0.953125 -vt 0.203125 0.781250 -vt 0.828125 0.953125 -vt 0.859375 0.781250 -vt 0.875000 1.000000 -vt 0.687500 0.734375 -vt 0.796875 0.750000 -vt 0.343750 0.421875 -vt 0.781250 0.390625 -vt 1.000000 0.406250 -vt 0.718750 0.250000 -vt 1.000000 0.206349 -vt 1.000000 0.531250 -vt 0.000000 0.296875 -vt 0.250000 0.046875 -vt -0.000000 0.046875 -vt 0.250000 0.437500 -vt 0.218750 0.437500 -vt 0.171875 0.421875 -vt 0.031250 0.359375 -vt 0.296875 0.562500 -vt 0.453125 0.546875 -vt 0.296875 0.750000 -vt 0.453125 0.750000 -vt 0.265625 0.578125 -vt 0.281250 0.734375 -vt 0.468750 0.734375 -vt 0.468750 0.578125 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -0.000000 1.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.707100 -0.707100 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.000000 0.707100 0.707100 -vn 0.000000 -0.707100 -0.707100 -vn 0.707100 -0.707100 0.000000 -vn -0.707100 -0.707100 0.000000 -vn 0.000000 -0.707100 0.707100 -s 1 -f 4/1/1 3/2/1 2/3/1 -f 8/4/1 7/5/1 6/6/1 -f 12/7/2 11/1/2 10/2/2 -f 3/8/3 9/9/3 10/10/3 -f 8/5/3 13/11/3 1/12/3 -f 14/13/3 7/4/3 12/14/3 -f 7/4/3 8/5/3 11/15/3 -f 1/12/3 13/11/3 14/13/3 -f 4/16/4 12/17/4 9/18/4 -f 14/19/2 13/20/2 16/11/2 -f 7/13/5 14/4/5 15/21/5 -f 20/22/3 19/7/3 18/1/3 -f 24/3/6 23/18/6 22/17/6 -f 28/23/5 27/24/5 26/25/5 -f 27/26/3 30/23/3 29/27/3 -f 24/8/1 20/9/1 17/10/1 -f 19/16/4 20/10/4 24/18/4 -f 18/28/1 31/29/1 30/26/1 -f 27/23/1 28/24/1 19/30/1 -f 28/24/1 31/29/1 18/28/1 -f 22/31/1 30/26/1 27/23/1 -f 31/24/6 28/29/6 25/32/6 -f 36/10/6 35/18/6 34/17/6 -f 40/33/5 39/34/5 38/35/5 -f 42/36/3 40/37/3 37/38/3 -f 44/8/2 35/9/2 36/10/2 -f 45/1/4 34/7/4 35/22/4 -f 42/39/2 47/40/2 46/41/2 -f 39/35/2 40/38/2 34/42/2 -f 46/41/2 47/40/2 39/35/2 -f 40/38/2 42/39/2 33/43/2 -f 39/40/6 47/35/6 48/44/6 -f 43/18/3 46/17/3 45/45/3 -f 52/46/2 51/47/2 50/48/2 -f 56/8/6 55/9/6 54/10/6 -f 58/1/4 57/45/4 55/3/4 -f 55/22/1 57/7/1 59/1/1 -f 52/49/6 61/50/6 60/51/6 -f 62/52/6 51/48/6 57/53/6 -f 60/51/6 61/50/6 62/52/6 -f 51/48/6 52/49/6 59/54/6 -f 51/55/5 62/56/5 63/52/5 -f 53/2/2 60/1/2 58/7/2 -f 62/50/1 61/52/1 64/57/1 -f 66/58/3 6/4/3 15/13/3 -f 65/59/1 25/24/1 26/23/1 -f 67/60/6 50/48/6 63/52/6 -f 68/61/2 37/38/2 38/35/2 -f 50/48/6 67/60/6 69/62/6 -f 26/23/1 29/26/1 69/62/1 -f 15/13/3 16/11/3 70/63/3 -f 25/24/1 65/59/1 70/63/1 -f 38/35/2 48/40/2 71/64/2 -f 6/4/3 66/58/3 71/64/3 -f 63/52/6 64/50/6 72/65/6 -f 37/38/2 68/61/2 72/66/2 -f 68/45/4 66/67/4 74/68/4 -f 67/69/4 68/45/4 73/70/4 -f 66/67/4 65/71/4 76/72/4 -f 65/71/4 67/69/4 75/73/4 -f 80/74/3 79/75/3 78/76/3 -f 84/77/4 83/78/4 82/79/4 -f 86/80/2 85/81/2 73/82/2 -f 89/83/3 88/84/3 74/85/3 -f 92/86/4 91/87/4 81/88/4 -f 95/81/1 94/89/1 76/90/1 -f 87/91/4 97/92/4 96/93/4 -f 99/94/6 98/90/6 75/89/6 -f 93/95/4 100/96/4 90/97/4 -f 102/82/4 98/90/4 99/98/4 -f 98/81/1 102/89/1 100/90/1 -f 102/83/3 101/84/3 90/85/3 -f 101/80/2 99/81/2 92/82/2 -f 89/82/4 104/90/4 103/98/4 -f 88/80/2 103/81/2 83/82/2 -f 103/94/6 104/90/6 82/89/6 -f 104/81/1 89/89/1 87/90/1 -f 86/99/4 106/82/4 105/90/4 -f 105/81/1 106/89/1 81/90/1 -f 85/94/6 105/90/6 91/89/6 -f 106/83/3 86/84/3 84/85/3 -f 95/90/4 108/98/4 107/99/4 -f 107/80/2 108/81/2 96/82/2 -f 108/94/6 95/90/6 93/89/6 -f 94/100/3 107/101/3 97/102/3 -f 81/88/4 82/79/4 78/103/4 -f 90/97/4 81/88/4 109/104/4 -f 82/79/4 96/93/4 77/105/4 -f 96/93/4 90/97/4 110/106/4 -f 79/107/2 111/108/2 109/109/2 -f 112/110/1 80/111/1 77/112/1 -f 111/113/6 112/109/6 110/108/6 -f 111/114/4 79/49/4 114/115/4 -f 112/113/4 111/114/4 113/116/4 -f 79/49/4 80/109/4 116/117/4 -f 80/109/4 112/113/4 115/118/4 -f 118/119/4 119/17/4 120/120/4 -f 124/121/3 123/122/3 122/123/3 -f 128/124/6 127/124/6 126/124/6 -f 127/124/1 130/124/1 129/124/1 -f 130/124/3 132/124/3 131/124/3 -f 136/125/5 135/126/5 134/127/5 -f 122/128/1 123/129/1 138/130/1 -f 142/124/6 141/124/6 140/124/6 -f 144/131/2 143/121/2 124/122/2 -f 146/132/5 136/125/5 133/133/5 -f 135/126/5 148/134/5 147/135/5 -f 116/136/3 150/137/3 149/138/3 -f 154/139/4 153/140/4 152/141/4 -f 141/124/2 156/124/2 155/124/2 -f 148/134/5 146/132/5 145/142/5 -f 160/143/4 159/144/4 158/145/4 -f 153/140/4 160/143/4 157/146/4 -f 159/144/4 154/139/4 151/147/4 -f 137/148/7 144/149/7 154/144/7 -f 122/150/8 137/148/8 159/139/8 -f 144/149/9 121/151/9 153/143/9 -f 121/150/10 122/151/10 160/143/10 -f 156/124/3 162/124/3 161/124/3 -f 136/134/11 146/126/11 143/151/11 -f 135/152/12 136/153/12 138/154/12 -f 146/125/13 148/126/13 124/151/13 -f 148/132/14 135/125/14 123/155/14 -f 138/123/6 143/131/6 144/121/6 -f 158/145/10 151/147/10 125/156/10 -f 157/147/9 158/141/9 126/157/9 -f 151/146/8 152/145/8 131/158/8 -f 152/159/7 157/160/7 129/161/7 -f 132/124/2 128/124/2 125/124/2 -f 155/162/14 161/163/14 145/135/14 -f 140/164/13 155/163/13 133/135/13 -f 161/162/12 139/165/12 147/133/12 -f 139/165/11 140/164/11 134/142/11 -f 162/124/1 142/124/1 139/124/1 -f 164/166/1 165/167/1 166/168/1 -f 163/168/6 166/169/6 168/170/6 -f 169/166/3 170/167/3 165/171/3 -f 167/172/2 168/9/2 170/173/2 -f 165/172/5 170/66/5 168/5/5 -f 174/115/4 173/117/4 172/118/4 -f 120/174/6 172/120/6 171/175/6 -f 118/174/3 174/120/3 173/176/3 -f 117/175/2 171/177/2 174/178/2 -f 119/179/1 173/180/1 172/181/1 -f 173/117/4 174/115/4 131/49/4 -f 126/113/4 172/118/4 173/117/4 -f 125/114/4 171/116/4 172/118/4 -f 125/114/4 131/49/4 174/115/4 -f 161/49/5 155/109/5 176/117/5 -f 155/109/5 140/113/5 150/118/5 -f 139/114/5 161/49/5 175/115/5 -f 140/113/5 139/114/5 149/116/5 -f 115/136/1 176/137/1 150/182/1 -f 113/183/6 175/184/6 176/185/6 -f 114/186/2 149/138/2 175/184/2 -f 180/187/1 179/188/1 178/189/1 -f 181/190/1 184/191/1 183/192/1 -f 188/193/2 187/194/2 186/195/2 -f 192/196/2 191/197/2 190/198/2 -f 196/192/3 195/199/3 194/200/3 -f 200/201/3 199/202/3 198/203/3 -f 204/204/6 203/205/6 202/206/6 -f 208/187/6 207/188/6 206/189/6 -f 208/200/1 205/199/1 198/193/1 -f 183/204/6 192/191/6 189/190/6 -f 193/200/2 202/207/2 203/193/2 -f 186/207/3 187/193/3 180/199/3 -f 18/17/5 197/208/5 198/209/5 -f 22/16/5 23/10/5 205/210/5 -f 17/18/5 198/209/5 205/210/5 -f 59/17/5 181/208/5 182/209/5 -f 60/16/5 53/10/5 189/210/5 -f 54/18/5 182/209/5 189/210/5 -f 33/17/5 201/208/5 202/209/5 -f 46/16/5 43/10/5 193/210/5 -f 11/17/5 185/208/5 186/209/5 -f 1/16/5 2/10/5 177/210/5 -f 186/209/5 177/210/5 2/10/5 -f 202/209/5 193/210/5 43/10/5 -f 5/211/4 187/212/4 188/213/4 -f 179/214/4 180/215/4 16/216/4 -f 164/171/4 70/217/4 71/218/4 -f 41/219/4 203/220/4 204/221/4 -f 195/222/4 196/223/4 48/224/4 -f 191/225/4 192/226/4 64/227/4 -f 49/228/4 183/229/4 184/230/4 -f 207/231/4 208/232/4 29/233/4 -f 32/234/4 199/235/4 200/236/4 -f 163/167/4 69/237/4 70/217/4 -f 167/238/4 72/239/4 69/237/4 -f 169/5/4 71/218/4 72/239/4 -f 1/45/1 4/1/1 2/3/1 -f 5/240/1 8/4/1 6/6/1 -f 9/22/2 12/7/2 10/2/2 -f 2/18/3 3/8/3 10/10/3 -f 11/15/3 8/5/3 1/12/3 -f 4/241/3 14/13/3 12/14/3 -f 12/14/3 7/4/3 11/15/3 -f 4/241/3 1/12/3 14/13/3 -f 3/10/4 4/16/4 9/18/4 -f 15/13/2 14/19/2 16/11/2 -f 6/242/5 7/13/5 15/21/5 -f 17/2/3 20/22/3 18/1/3 -f 21/45/6 24/3/6 22/17/6 -f 25/243/5 28/23/5 26/25/5 -f 26/244/3 27/26/3 29/27/3 -f 23/18/1 24/8/1 17/10/1 -f 21/17/4 19/16/4 24/18/4 -f 22/31/1 18/28/1 30/26/1 -f 21/245/1 27/23/1 19/30/1 -f 19/30/1 28/24/1 18/28/1 -f 21/245/1 22/31/1 27/23/1 -f 32/246/6 31/24/6 25/32/6 -f 33/16/6 36/10/6 34/17/6 -f 37/38/5 40/33/5 38/35/5 -f 41/39/3 42/36/3 37/38/3 -f 43/18/2 44/8/2 36/10/2 -f 44/2/4 45/1/4 35/22/4 -f 33/43/2 42/39/2 46/41/2 -f 45/247/2 39/35/2 34/42/2 -f 45/247/2 46/41/2 39/35/2 -f 34/42/2 40/38/2 33/43/2 -f 38/248/6 39/40/6 48/44/6 -f 44/3/3 43/18/3 45/45/3 -f 49/49/2 52/46/2 50/48/2 -f 53/18/6 56/8/6 54/10/6 -f 56/2/4 58/1/4 55/3/4 -f 54/2/1 55/22/1 59/1/1 -f 59/54/6 52/49/6 60/51/6 -f 58/249/6 62/52/6 57/53/6 -f 58/249/6 60/51/6 62/52/6 -f 57/53/6 51/48/6 59/54/6 -f 50/48/5 51/55/5 63/52/5 -f 56/22/2 53/2/2 58/7/2 -f 63/250/1 62/50/1 64/57/1 -f 65/59/3 66/58/3 15/13/3 -f 67/60/1 65/59/1 26/23/1 -f 68/251/6 67/60/6 63/52/6 -f 66/58/2 68/61/2 38/35/2 -f 49/49/6 50/48/6 69/62/6 -f 67/60/1 26/23/1 69/62/1 -f 65/59/3 15/13/3 70/63/3 -f 32/29/1 25/24/1 70/63/1 -f 66/58/2 38/35/2 71/64/2 -f 5/5/3 6/4/3 71/64/3 -f 68/251/6 63/52/6 72/65/6 -f 41/39/2 37/38/2 72/66/2 -f 73/70/4 68/45/4 74/68/4 -f 75/73/4 67/69/4 73/70/4 -f 74/68/4 66/67/4 76/72/4 -f 76/72/4 65/71/4 75/73/4 -f 77/107/3 80/74/3 78/76/3 -f 81/88/4 84/77/4 82/79/4 -f 84/83/2 86/80/2 73/82/2 -f 87/80/3 89/83/3 74/85/3 -f 90/97/4 92/86/4 81/88/4 -f 93/82/1 95/81/1 76/90/1 -f 82/79/4 87/91/4 96/93/4 -f 92/252/6 99/94/6 75/89/6 -f 96/93/4 93/95/4 90/97/4 -f 101/99/4 102/82/4 99/98/4 -f 75/82/1 98/81/1 100/90/1 -f 100/80/3 102/83/3 90/85/3 -f 90/83/2 101/80/2 92/82/2 -f 88/99/4 89/82/4 103/98/4 -f 74/83/2 88/80/2 83/82/2 -f 83/252/6 103/94/6 82/89/6 -f 82/82/1 104/81/1 87/90/1 -f 85/98/4 86/99/4 105/90/4 -f 91/82/1 105/81/1 81/90/1 -f 73/252/6 85/94/6 91/89/6 -f 81/80/3 106/83/3 84/85/3 -f 94/82/4 95/90/4 107/99/4 -f 97/83/2 107/80/2 96/82/2 -f 96/252/6 108/94/6 93/89/6 -f 76/253/3 94/100/3 97/102/3 -f 109/104/4 81/88/4 78/103/4 -f 110/106/4 90/97/4 109/104/4 -f 78/103/4 82/79/4 77/105/4 -f 77/105/4 96/93/4 110/106/4 -f 78/74/2 79/107/2 109/109/2 -f 110/113/1 112/110/1 77/112/1 -f 109/110/6 111/113/6 110/108/6 -f 113/116/4 111/114/4 114/115/4 -f 115/118/4 112/113/4 113/116/4 -f 114/115/4 79/49/4 116/117/4 -f 116/117/4 80/109/4 115/118/4 -f 117/175/4 118/119/4 120/120/4 -f 121/131/3 124/121/3 122/123/3 -f 125/124/6 128/124/6 126/124/6 -f 126/124/1 127/124/1 129/124/1 -f 129/124/3 130/124/3 131/124/3 -f 133/133/5 136/125/5 134/127/5 -f 137/254/1 122/128/1 138/130/1 -f 139/124/6 142/124/6 140/124/6 -f 121/123/2 144/131/2 124/122/2 -f 145/142/5 146/132/5 133/133/5 -f 134/127/5 135/126/5 147/135/5 -f 114/186/3 116/136/3 149/138/3 -f 151/147/4 154/139/4 152/141/4 -f 140/124/2 141/124/2 155/124/2 -f 147/135/5 148/134/5 145/142/5 -f 157/146/4 160/143/4 158/145/4 -f 152/141/4 153/140/4 157/146/4 -f 158/145/4 159/144/4 151/147/4 -f 159/139/7 137/148/7 154/144/7 -f 160/140/8 122/150/8 159/139/8 -f 154/144/9 144/149/9 153/143/9 -f 153/140/10 121/150/10 160/143/10 -f 155/124/3 156/124/3 161/124/3 -f 138/150/11 136/134/11 143/151/11 -f 123/255/12 135/152/12 138/154/12 -f 143/155/13 146/125/13 124/151/13 -f 124/256/14 148/132/14 123/155/14 -f 137/122/6 138/123/6 144/121/6 -f 126/158/10 158/145/10 125/156/10 -f 129/156/9 157/147/9 126/157/9 -f 125/257/8 151/146/8 131/158/8 -f 131/258/7 152/159/7 129/161/7 -f 131/124/2 132/124/2 125/124/2 -f 133/127/14 155/162/14 145/135/14 -f 134/142/13 140/164/13 133/135/13 -f 145/127/12 161/162/12 147/133/12 -f 147/133/11 139/165/11 134/142/11 -f 161/124/1 162/124/1 139/124/1 -f 163/169/1 164/166/1 166/168/1 -f 167/259/6 163/168/6 168/170/6 -f 164/173/3 169/166/3 165/171/3 -f 169/171/2 167/172/2 170/173/2 -f 166/171/5 165/172/5 168/5/5 -f 171/116/4 174/115/4 172/118/4 -f 117/177/6 120/174/6 171/175/6 -f 119/181/3 118/174/3 173/176/3 -f 118/260/2 117/175/2 174/178/2 -f 120/176/1 119/179/1 172/181/1 -f 129/109/4 173/117/4 131/49/4 -f 129/109/4 126/113/4 173/117/4 -f 126/113/4 125/114/4 172/118/4 -f 171/116/4 125/114/4 174/115/4 -f 175/115/5 161/49/5 176/117/5 -f 176/117/5 155/109/5 150/118/5 -f 149/116/5 139/114/5 175/115/5 -f 150/118/5 140/113/5 149/116/5 -f 116/261/1 115/136/1 150/182/1 -f 115/262/6 113/183/6 176/185/6 -f 113/183/2 114/186/2 175/184/2 -f 177/263/1 180/187/1 178/189/1 -f 182/264/1 181/190/1 183/192/1 -f 185/207/2 188/193/2 186/195/2 -f 189/204/2 192/196/2 190/198/2 -f 193/264/3 196/192/3 194/200/3 -f 197/265/3 200/201/3 198/203/3 -f 201/196/6 204/204/6 202/206/6 -f 205/263/6 208/187/6 206/189/6 -f 199/207/1 208/200/1 198/193/1 -f 182/196/6 183/204/6 189/190/6 -f 196/199/2 193/200/2 203/193/2 -f 177/200/3 186/207/3 180/199/3 -f 17/18/5 18/17/5 198/209/5 -f 206/266/5 22/16/5 205/210/5 -f 23/10/5 17/18/5 205/210/5 -f 54/18/5 59/17/5 182/209/5 -f 190/266/5 60/16/5 189/210/5 -f 53/10/5 54/18/5 189/210/5 -f 36/18/5 33/17/5 202/209/5 -f 194/266/5 46/16/5 193/210/5 -f 10/18/5 11/17/5 186/209/5 -f 178/266/5 1/16/5 177/210/5 -f 10/18/5 186/209/5 2/10/5 -f 36/18/5 202/209/5 43/10/5 -f 8/267/4 5/211/4 188/213/4 -f 13/268/4 179/214/4 16/216/4 -f 169/5/4 164/171/4 71/218/4 -f 42/269/4 41/219/4 204/221/4 -f 47/270/4 195/222/4 48/224/4 -f 61/271/4 191/225/4 64/227/4 -f 52/272/4 49/228/4 184/230/4 -f 30/273/4 207/231/4 29/233/4 -f 31/274/4 32/234/4 200/236/4 -f 164/171/4 163/167/4 70/217/4 -f 163/167/4 167/238/4 69/237/4 -f 167/238/4 169/5/4 72/239/4 -l 210 163 -l 209 210 -l 167 209 diff --git a/src/main/resources/assets/hbm/models/vault_frame_old.obj b/src/main/resources/assets/hbm/models/vault_frame_old.obj deleted file mode 100644 index ee5a5df5a..000000000 --- a/src/main/resources/assets/hbm/models/vault_frame_old.obj +++ /dev/null @@ -1,1576 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'vault_frame.blend' -# www.blender.org -o Cylinder -v 0.500000 5.000000 2.500000 -v 0.500000 0.000000 2.500000 -v 0.500000 5.000000 -2.500000 -v 0.500000 0.000000 -2.500000 -v -0.500000 5.000000 2.500000 -v -0.500000 0.000000 2.500000 -v -0.500000 5.000000 -2.500000 -v -0.500000 0.000000 -2.500000 -v -0.500000 0.762429 0.308123 -v 0.500000 0.762428 0.308123 -v -0.500000 0.970886 0.880855 -v 0.500000 0.970886 0.880854 -v -0.500000 1.367000 1.352926 -v 0.500000 1.367000 1.352926 -v -0.500000 1.894833 1.657669 -v 0.500000 1.894833 1.657669 -v -0.500000 2.501716 1.764679 -v 0.500000 2.501716 1.764679 -v -0.500000 3.101944 1.658843 -v 0.500000 3.101944 1.658843 -v -0.500000 3.635628 1.350719 -v 0.500000 3.635628 1.350719 -v -0.500000 4.027399 0.883825 -v 0.500000 4.027399 0.883825 -v -0.500000 4.238168 0.304744 -v 0.500000 4.238167 0.304744 -v -0.500000 4.238167 -0.304744 -v 0.500000 4.238167 -0.304744 -v -0.500000 4.027398 -0.883825 -v 0.500000 4.027398 -0.883825 -v -0.500001 3.635627 -1.350720 -v 0.500000 3.635627 -1.350720 -v -0.500001 3.101943 -1.658842 -v 0.499999 3.101943 -1.658842 -v -0.500000 2.501716 -1.764678 -v 0.500000 2.501716 -1.764678 -v -0.500001 1.894833 -1.657669 -v 0.500000 1.894833 -1.657669 -v -0.500001 1.367002 -1.352925 -v 0.500000 1.367001 -1.352925 -v -0.500000 0.970887 -0.880855 -v 0.500000 0.970886 -0.880855 -v -0.500000 0.762429 -0.308124 -v 0.500000 0.762429 -0.308124 -v -0.500000 0.327325 0.574589 -v 0.500000 0.327325 0.574589 -v 0.500000 0.466296 0.956409 -v -0.500000 0.466297 0.956409 -v -0.500000 1.204973 1.836729 -v 0.500000 1.204973 1.836729 -v 0.500000 1.556861 2.039891 -v -0.500000 1.556861 2.039891 -v -0.500000 2.688578 2.239443 -v 0.500000 2.688578 2.239443 -v 0.500000 3.088730 2.168886 -v -0.500000 3.088730 2.168886 -v -0.500000 4.083945 1.594298 -v 0.500000 4.083945 1.594298 -v 0.500000 4.345126 1.283035 -v -0.500000 4.345126 1.283035 -v -0.500000 4.738167 0.203162 -v 0.500000 4.738167 0.203162 -v 0.500000 4.738167 -0.203163 -v -0.500000 4.738167 -0.203163 -v -0.500000 4.345125 -1.283035 -v 0.500000 4.345125 -1.283035 -v 0.500000 4.083944 -1.594298 -v -0.500001 4.083944 -1.594298 -v -0.500001 3.088729 -2.168885 -v 0.499999 3.088729 -2.168885 -v 0.500000 2.688578 -2.239443 -v -0.500001 2.688578 -2.239443 -v -0.500001 1.556861 -2.039891 -v 0.500000 1.556861 -2.039891 -v 0.500000 1.204973 -1.836729 -v -0.500001 1.204974 -1.836729 -v -0.500001 0.466298 -0.956410 -v 0.499999 0.466297 -0.956411 -v 0.499999 0.327326 -0.574590 -v -0.500001 0.327326 -0.574590 -v 0.750000 1.894833 1.657669 -v 0.750000 2.501716 1.764679 -v 0.750000 0.970886 0.880854 -v 0.750000 1.367000 1.352926 -v 0.750000 0.762428 0.308123 -v 0.750000 0.762429 -0.308124 -v 0.750000 1.367001 -1.352925 -v 0.750000 0.970886 -0.880855 -v 0.750000 4.027399 0.883825 -v 0.750000 4.238167 0.304744 -v 0.750000 3.101944 1.658843 -v 0.750000 3.635628 1.350719 -v 0.750000 2.501716 -1.764678 -v 0.750000 1.894833 -1.657669 -v 0.750000 3.635627 -1.350720 -v 0.749999 3.101943 -1.658842 -v 0.750000 4.238167 -0.304744 -v 0.750000 4.027398 -0.883825 -v 0.562500 0.327325 0.574589 -v 0.562500 0.466296 0.956409 -v 0.562500 1.204973 1.836729 -v 0.562500 1.556861 2.039891 -v 0.562500 2.688578 2.239443 -v 0.562500 3.088730 2.168886 -v 0.562500 4.083945 1.594298 -v 0.562500 4.345126 1.283035 -v 0.562500 4.738167 0.203162 -v 0.562500 4.738167 -0.203163 -v 0.562500 4.345125 -1.283035 -v 0.562500 4.083944 -1.594298 -v 0.562499 3.088729 -2.168885 -v 0.562500 2.688578 -2.239443 -v 0.562500 1.556861 -2.039891 -v 0.562500 1.204973 -1.836729 -v 0.562499 0.466297 -0.956411 -v 0.562499 0.327326 -0.574590 -v 0.750000 1.947966 1.711219 -v 0.750000 2.433472 1.796827 -v 0.750000 0.977166 0.956029 -v 0.750000 1.294058 1.333687 -v 0.750000 0.718918 0.246499 -v 0.750000 0.718919 -0.246500 -v 0.750000 1.294059 -1.333686 -v 0.750000 0.977167 -0.956030 -v 0.750000 4.089362 0.840798 -v 0.750000 4.257977 0.377533 -v 0.750000 3.177068 1.665711 -v 0.750000 3.604014 1.419213 -v 0.750000 2.433472 -1.796827 -v 0.750000 1.947966 -1.711219 -v 0.750000 3.604013 -1.419213 -v 0.749999 3.177067 -1.665711 -v 0.750000 4.257977 -0.377534 -v 0.750000 4.089361 -0.840798 -v 0.562500 0.370835 0.459671 -v 0.562500 0.573495 1.016473 -v 0.562500 1.164436 1.720729 -v 0.562500 1.677588 2.016997 -v 0.562500 2.582962 2.176639 -v 0.562500 3.166496 2.073746 -v 0.562500 3.962668 1.614075 -v 0.562500 4.343544 1.160166 -v 0.562500 4.657976 0.296268 -v 0.562500 4.657976 -0.296269 -v 0.562500 4.343543 -1.160166 -v 0.562500 3.962667 -1.614076 -v 0.562499 3.166496 -2.073745 -v 0.562500 2.582962 -2.176638 -v 0.562500 1.677588 -2.016997 -v 0.562500 1.164437 -1.720729 -v 0.562499 0.573496 -1.016474 -v 0.562500 0.370836 -0.459672 -v 0.625000 1.947966 1.711219 -v 0.625000 2.433472 1.796827 -v 0.625000 0.977166 0.956029 -v 0.625000 1.294058 1.333687 -v 0.625000 0.718918 0.246499 -v 0.625000 0.718919 -0.246500 -v 0.625000 1.294059 -1.333686 -v 0.625000 0.977167 -0.956030 -v 0.625000 4.089362 0.840798 -v 0.625000 4.257977 0.377533 -v 0.625000 3.177068 1.665711 -v 0.625000 3.604014 1.419213 -v 0.625000 2.433472 -1.796827 -v 0.625000 1.947966 -1.711219 -v 0.625000 3.604013 -1.419213 -v 0.624999 3.177067 -1.665711 -v 0.625000 4.257977 -0.377534 -v 0.625000 4.089361 -0.840798 -v 0.625000 0.370835 0.459671 -v 0.625000 0.573495 1.016473 -v 0.625000 1.164436 1.720729 -v 0.625000 1.677588 2.016997 -v 0.625000 2.582962 2.176639 -v 0.625000 3.166496 2.073746 -v 0.625000 3.962668 1.614075 -v 0.625000 4.343544 1.160166 -v 0.625000 4.657976 0.296268 -v 0.625000 4.657976 -0.296269 -v 0.625000 4.343543 -1.160166 -v 0.625000 3.962667 -1.614076 -v 0.624999 3.166496 -2.073745 -v 0.625000 2.582962 -2.176638 -v 0.625000 1.677588 -2.016997 -v 0.625000 1.164437 -1.720729 -v 0.624999 0.573496 -1.016474 -v 0.625000 0.370836 -0.459672 -v 0.750000 2.045067 1.728341 -v 0.750000 2.142168 1.745462 -v 0.750000 2.239269 1.762584 -v 0.750000 2.336371 1.779706 -v 0.750000 1.040545 1.031561 -v 0.750000 1.103923 1.107092 -v 0.750000 1.167301 1.182624 -v 0.750000 1.230680 1.258155 -v 0.750000 0.718918 0.147899 -v 0.750000 0.718918 0.049299 -v 0.750000 0.718918 -0.049300 -v 0.750000 0.718918 -0.147900 -v 0.750000 1.230681 -1.258155 -v 0.750000 1.167302 -1.182624 -v 0.750000 1.103924 -1.107092 -v 0.750000 1.040545 -1.031561 -v 0.750000 4.123085 0.748145 -v 0.750000 4.156808 0.655492 -v 0.750000 4.190531 0.562839 -v 0.750000 4.224254 0.470186 -v 0.750000 3.262457 1.616412 -v 0.750000 3.347846 1.567112 -v 0.750000 3.433236 1.517812 -v 0.750000 3.518625 1.468513 -v 0.750000 2.336371 -1.779705 -v 0.750000 2.239269 -1.762584 -v 0.750000 2.142168 -1.745462 -v 0.750000 2.045067 -1.728341 -v 0.750000 3.518624 -1.468513 -v 0.749999 3.433235 -1.517812 -v 0.749999 3.347846 -1.567112 -v 0.749999 3.262456 -1.616411 -v 0.750000 4.224254 -0.470187 -v 0.750000 4.190530 -0.562840 -v 0.750000 4.156807 -0.655493 -v 0.750000 4.123084 -0.748146 -v 0.625000 2.045067 1.728341 -v 0.625000 2.142168 1.745462 -v 0.625000 2.239269 1.762584 -v 0.625000 2.336371 1.779706 -v 0.625000 1.040545 1.031561 -v 0.625000 1.103923 1.107092 -v 0.625000 1.167301 1.182624 -v 0.625000 1.230680 1.258155 -v 0.625000 0.718918 0.147899 -v 0.625000 0.718918 0.049299 -v 0.625000 0.718918 -0.049300 -v 0.625000 0.718918 -0.147900 -v 0.625000 1.230681 -1.258155 -v 0.625000 1.167302 -1.182624 -v 0.625000 1.103924 -1.107092 -v 0.625000 1.040545 -1.031561 -v 0.625000 4.123085 0.748145 -v 0.625000 4.156808 0.655492 -v 0.625000 4.190531 0.562839 -v 0.625000 4.224254 0.470186 -v 0.625000 3.262457 1.616412 -v 0.625000 3.347846 1.567112 -v 0.625000 3.433236 1.517812 -v 0.625000 3.518625 1.468513 -v 0.625000 2.336371 -1.779705 -v 0.625000 2.239269 -1.762584 -v 0.625000 2.142168 -1.745462 -v 0.625000 2.045067 -1.728341 -v 0.625000 3.518624 -1.468513 -v 0.624999 3.433235 -1.517812 -v 0.624999 3.347846 -1.567112 -v 0.624999 3.262456 -1.616411 -v 0.625000 4.224254 -0.470187 -v 0.625000 4.190530 -0.562840 -v 0.625000 4.156807 -0.655493 -v 0.625000 4.123084 -0.748146 -v 0.625000 4.553145 -0.589894 -v 0.625000 4.519423 -0.682547 -v 0.562500 4.519423 -0.682547 -v 0.562500 4.553145 -0.589894 -v 0.625000 4.485700 -0.775200 -v 0.625000 4.451977 -0.867853 -v 0.562500 4.451977 -0.867853 -v 0.562500 4.485700 -0.775200 -v 0.625000 3.693624 -1.771622 -v 0.624999 3.608234 -1.820921 -v 0.562499 3.608234 -1.820921 -v 0.562500 3.693624 -1.771622 -v 0.624999 3.522846 -1.870220 -v 0.624999 3.437456 -1.919520 -v 0.562499 3.437456 -1.919520 -v 0.562499 3.522846 -1.870220 -v 0.625000 2.275594 -2.124388 -v 0.625000 2.178493 -2.107266 -v 0.562500 2.178493 -2.107266 -v 0.562500 2.275594 -2.124388 -v 0.625000 2.081392 -2.090145 -v 0.625000 1.984291 -2.073024 -v 0.562500 1.984291 -2.073024 -v 0.562500 2.081392 -2.090145 -v 0.625000 3.437457 1.919520 -v 0.625000 3.522846 1.870221 -v 0.562500 3.522846 1.870221 -v 0.562500 3.437457 1.919520 -v 0.625000 3.608236 1.820921 -v 0.625000 3.693625 1.771621 -v 0.562500 3.693625 1.771621 -v 0.562500 3.608236 1.820921 -v 0.625000 4.451978 0.867852 -v 0.625000 4.485701 0.775199 -v 0.562500 4.485701 0.775199 -v 0.562500 4.451978 0.867852 -v 0.625000 4.519423 0.682546 -v 0.625000 4.553146 0.589893 -v 0.562500 4.553146 0.589893 -v 0.562500 4.519423 0.682546 -v 0.625000 0.962565 -1.483131 -v 0.625000 0.899187 -1.407600 -v 0.562500 0.899187 -1.407600 -v 0.562500 0.962565 -1.483131 -v 0.625000 0.835809 -1.332069 -v 0.625000 0.772430 -1.256537 -v 0.562500 0.772430 -1.256537 -v 0.562500 0.835809 -1.332069 -v 0.625000 0.368918 -0.147900 -v 0.625000 0.368918 -0.049301 -v 0.562500 0.368918 -0.049301 -v 0.562500 0.368918 -0.147900 -v 0.625000 0.368918 0.049299 -v 0.625000 0.368918 0.147898 -v 0.562500 0.368918 0.147898 -v 0.562500 0.368918 0.049299 -v 0.625000 0.772429 1.256536 -v 0.625000 0.835807 1.332068 -v 0.562500 0.835807 1.332068 -v 0.562500 0.772429 1.256536 -v 0.625000 0.899186 1.407599 -v 0.625000 0.962564 1.483131 -v 0.562500 0.962564 1.483131 -v 0.562500 0.899186 1.407599 -v 0.625000 1.984290 2.073024 -v 0.625000 2.081391 2.090145 -v 0.562500 2.081391 2.090145 -v 0.562500 1.984290 2.073024 -v 0.625000 2.178493 2.107267 -v 0.625000 2.275594 2.124388 -v 0.562500 2.275594 2.124388 -v 0.562500 2.178493 2.107267 -vt 0.674495 0.301724 -vt 0.744051 0.301724 -vt 0.744051 0.344587 -vt 0.634294 0.063011 -vt 0.564738 0.062987 -vt 0.564753 0.020124 -vt 0.616871 0.301724 -vt 0.616871 0.344588 -vt 0.547315 0.344588 -vt 0.590179 0.454379 -vt 0.547315 0.454379 -vt 0.547315 0.384823 -vt 0.585249 0.674595 -vt 0.628113 0.674595 -vt 0.628113 0.744151 -vt 0.761489 0.020118 -vt 0.761489 0.062981 -vt 0.691933 0.062981 -vt 0.586800 0.548190 -vt 0.629663 0.548190 -vt 0.629663 0.617746 -vt 0.451201 0.674595 -vt 0.451201 0.744151 -vt 0.408338 0.744151 -vt 0.451201 0.547415 -vt 0.451201 0.616971 -vt 0.408338 0.616971 -vt 0.547315 0.237973 -vt 0.616871 0.237973 -vt 0.616871 0.266236 -vt 0.547315 0.301724 -vt 0.547315 0.266236 -vt 0.616871 0.202485 -vt 0.634272 0.126762 -vt 0.564716 0.126738 -vt 0.564726 0.098475 -vt 0.634282 0.098499 -vt 0.634260 0.162250 -vt 0.564704 0.162226 -vt 0.674495 0.266236 -vt 0.674495 0.237973 -vt 0.744051 0.237973 -vt 0.744051 0.266236 -vt 0.744051 0.202485 -vt 0.761489 0.126732 -vt 0.691933 0.126732 -vt 0.691933 0.098469 -vt 0.761489 0.098469 -vt 0.691933 0.162220 -vt 0.663601 0.674595 -vt 0.691863 0.674595 -vt 0.691863 0.744151 -vt 0.663601 0.744151 -vt 0.727352 0.744151 -vt 0.486689 0.547415 -vt 0.514952 0.547415 -vt 0.514952 0.616971 -vt 0.486689 0.616971 -vt 0.550440 0.547415 -vt 0.550440 0.616971 -vt 0.514952 0.674595 -vt 0.514952 0.744151 -vt 0.486689 0.744151 -vt 0.486689 0.674595 -vt 0.550440 0.744151 -vt 0.693414 0.548190 -vt 0.693414 0.617746 -vt 0.665151 0.617746 -vt 0.665151 0.548190 -vt 0.728902 0.617746 -vt 0.625667 0.384823 -vt 0.653929 0.384823 -vt 0.653929 0.454379 -vt 0.590179 0.384823 -vt 0.625667 0.454379 -vt 0.689417 0.384823 -vt 0.689418 0.454379 -vt 0.249545 0.419394 -vt 0.278078 0.419377 -vt 0.437273 0.437603 -vt 0.107759 0.276798 -vt 0.112671 0.304627 -vt 0.089639 0.437603 -vt 0.174332 0.392033 -vt 0.152666 0.373861 -vt 0.352849 0.392119 -vt 0.374458 0.373974 -vt 0.414381 0.304802 -vt 0.761440 0.301724 -vt 0.486689 0.621318 -vt 0.674544 0.162220 -vt 0.687586 0.126732 -vt 0.689418 0.471767 -vt 0.653929 0.458726 -vt 0.089637 0.089759 -vt 0.419307 0.276979 -vt 0.437594 0.089923 -vt 0.687586 0.098469 -vt 0.625667 0.458726 -vt 0.547315 0.162220 -vt 0.560369 0.126736 -vt 0.585249 0.744151 -vt 0.628113 0.761540 -vt 0.550440 0.761540 -vt 0.514952 0.748498 -vt 0.121648 0.198105 -vt 0.135789 0.173628 -vt 0.197051 0.122258 -vt 0.223619 0.112599 -vt 0.405488 0.198235 -vt 0.391371 0.173744 -vt 0.330152 0.122319 -vt 0.303590 0.112636 -vt 0.154148 0.570166 -vt 0.234094 0.570183 -vt 0.215552 0.600446 -vt 0.132836 0.614938 -vt 0.099994 0.642495 -vt 0.066333 0.631220 -vt 0.078794 0.679218 -vt 0.071352 0.721439 -vt 0.038321 0.734443 -vt 0.020167 0.547365 -vt 0.368053 0.547438 -vt 0.127581 0.579832 -vt 0.052198 0.655705 -vt 0.020208 0.895350 -vt 0.043237 0.762285 -vt 0.083229 0.831507 -vt 0.100160 0.800306 -vt 0.104901 0.849667 -vt 0.132656 0.827534 -vt 0.172952 0.842159 -vt 0.180000 0.876995 -vt 0.208515 0.876943 -vt 0.215478 0.842107 -vt 0.367883 0.895009 -vt 0.255674 0.827470 -vt 0.283397 0.849534 -vt 0.305016 0.831395 -vt 0.344940 0.762245 -vt 0.309503 0.763161 -vt 0.349853 0.734435 -vt 0.260653 0.579856 -vt 0.288222 0.642514 -vt 0.255390 0.614954 -vt 0.316853 0.721441 -vt 0.309411 0.679233 -vt 0.336003 0.655732 -vt 0.321878 0.631251 -vt 0.020071 0.437604 -vt 0.437273 0.507130 -vt 0.089640 0.507130 -vt 0.507130 0.089988 -vt 0.506809 0.437667 -vt 0.089670 0.020167 -vt 0.437627 0.020332 -vt 0.788301 0.887799 -vt 0.792587 0.890825 -vt 0.776111 0.917371 -vt 0.728604 0.806122 -vt 0.720610 0.809148 -vt 0.656665 0.809148 -vt 0.750092 0.501493 -vt 0.729653 0.469684 -vt 0.737902 0.471921 -vt 0.773013 0.672556 -vt 0.781006 0.669530 -vt 0.844951 0.669530 -vt 0.792956 0.501493 -vt 0.788669 0.498466 -vt 0.805145 0.471921 -vt 0.768839 0.842054 -vt 0.776832 0.839028 -vt 0.840778 0.839028 -vt 0.621218 0.266236 -vt 0.674544 0.062981 -vt 0.674544 0.020118 -vt 0.550440 0.634360 -vt 0.514952 0.621318 -vt 0.547350 0.062981 -vt 0.547364 0.020118 -vt 0.634260 0.202485 -vt 0.621218 0.237973 -vt 0.629663 0.635135 -vt 0.586800 0.635135 -vt 0.665151 0.622093 -vt 0.877731 0.250212 -vt 0.797799 0.250212 -vt 0.797799 0.245865 -vt 0.748398 0.266236 -vt 0.604561 0.801775 -vt 0.604561 0.806122 -vt 0.524629 0.806122 -vt 0.634260 0.301724 -vt 0.634260 0.344588 -vt 0.728902 0.635135 -vt 0.693414 0.622093 -vt 0.451201 0.761540 -vt 0.809585 0.384823 -vt 0.809585 0.389170 -vt 0.729653 0.389170 -vt 0.761440 0.202485 -vt 0.748398 0.237973 -vt 0.663601 0.748498 -vt 0.488270 0.801775 -vt 0.488270 0.806122 -vt 0.408338 0.806122 -vt 0.877731 0.286572 -vt 0.877731 0.290919 -vt 0.797799 0.290919 -vt 0.768839 0.846401 -vt 0.848771 0.842054 -vt 0.727352 0.761540 -vt 0.691863 0.748498 -vt 0.486689 0.748498 -vt 0.590179 0.471768 -vt 0.547315 0.471768 -vt 0.773013 0.676903 -vt 0.852944 0.672556 -vt 0.560379 0.098474 -vt 0.773013 0.592041 -vt 0.773013 0.587694 -vt 0.852944 0.587694 -vt 0.451201 0.634360 -vt 0.408338 0.634360 -vt 0.728604 0.801775 -vt 0.648672 0.806122 -vt 0.807648 0.053565 -vt 0.824123 0.027020 -vt 0.828922 0.034270 -vt 0.908061 0.387849 -vt 0.924536 0.414395 -vt 0.903262 0.395099 -vt 0.874890 0.053565 -vt 0.853615 0.034270 -vt 0.858414 0.027019 -vt 0.795834 0.556109 -vt 0.781006 0.580320 -vt 0.777299 0.578050 -vt 0.820620 0.214280 -vt 0.805793 0.238491 -vt 0.802085 0.236221 -vt 0.830124 0.556110 -vt 0.848659 0.578050 -vt 0.844951 0.580321 -vt 0.465803 0.890438 -vt 0.482279 0.916984 -vt 0.461004 0.897688 -vt 0.415036 0.916984 -vt 0.431512 0.890438 -vt 0.436311 0.897688 -vt 0.869738 0.238491 -vt 0.854911 0.214280 -vt 0.873445 0.236221 -vt 0.805793 0.242838 -vt 0.869738 0.242838 -vt 0.831164 0.887799 -vt 0.851602 0.919608 -vt 0.843353 0.917371 -vt 0.596568 0.809148 -vt 0.532623 0.809148 -vt 0.869484 0.384823 -vt 0.873770 0.387849 -vt 0.857294 0.414395 -vt 0.801592 0.392196 -vt 0.737646 0.392197 -vt 0.912347 0.384823 -vt 0.932785 0.416631 -vt 0.480277 0.809148 -vt 0.819837 0.023993 -vt 0.869738 0.293945 -vt 0.805792 0.293945 -vt 0.862700 0.023993 -vt 0.883139 0.055802 -vt 0.781006 0.584668 -vt 0.844951 0.584668 -vt 0.427226 0.887412 -vt 0.793451 0.748947 -vt 0.773013 0.717138 -vt 0.781262 0.719375 -vt 0.470089 0.887412 -vt 0.490528 0.919220 -vt 0.915012 0.502892 -vt 0.910726 0.499866 -vt 0.927202 0.473320 -vt 0.863476 0.124745 -vt 0.859190 0.121718 -vt 0.875665 0.095173 -vt 0.872149 0.502892 -vt 0.851711 0.471084 -vt 0.859960 0.473320 -vt 0.820612 0.124745 -vt 0.800174 0.092936 -vt 0.808423 0.095173 -vt 0.705638 0.921545 -vt 0.701352 0.918519 -vt 0.717828 0.891973 -vt 0.836315 0.748947 -vt 0.832028 0.745920 -vt 0.848504 0.719375 -vt 0.662775 0.921545 -vt 0.642337 0.889737 -vt 0.650586 0.891973 -vt 0.776832 0.834680 -vt 0.773125 0.832410 -vt 0.791660 0.810469 -vt 0.840778 0.834681 -vt 0.581741 0.837707 -vt 0.596568 0.813496 -vt 0.600275 0.815766 -vt 0.781006 0.665182 -vt 0.844951 0.665182 -vt 0.824899 0.121718 -vt 0.829698 0.114468 -vt 0.854911 0.205585 -vt 0.720610 0.813496 -vt 0.656665 0.813496 -vt 0.854391 0.114468 -vt 0.532623 0.813496 -vt 0.547450 0.837707 -vt 0.528916 0.815766 -vt 0.786765 0.420755 -vt 0.801592 0.396544 -vt 0.805299 0.398814 -vt 0.737646 0.396544 -vt 0.827229 0.738670 -vt 0.480277 0.813496 -vt 0.416331 0.813496 -vt 0.797737 0.745920 -vt 0.802537 0.738670 -vt 0.869738 0.298293 -vt 0.805792 0.298292 -vt 0.752474 0.420755 -vt 0.733939 0.398814 -vt 0.820619 0.331198 -vt 0.820619 0.322503 -vt 0.854910 0.322504 -vt 0.533851 0.958558 -vt 0.532389 0.954464 -vt 0.556777 0.950371 -vt 0.556777 0.973605 -vt 0.532389 0.969511 -vt 0.533851 0.965417 -vt 0.465449 0.837707 -vt 0.431159 0.837707 -vt 0.559701 0.965417 -vt 0.667061 0.918519 -vt 0.529504 0.965417 -vt 0.529504 0.958558 -vt 0.431159 0.846401 -vt 0.923476 0.281118 -vt 0.922014 0.277024 -vt 0.946402 0.272930 -vt 0.876435 0.499866 -vt 0.946402 0.296164 -vt 0.922014 0.292070 -vt 0.923476 0.287976 -vt 0.949327 0.281118 -vt 0.919129 0.287976 -vt 0.919129 0.281118 -vt 0.928109 0.109699 -vt 0.926647 0.105605 -vt 0.951035 0.101511 -vt 0.786765 0.429449 -vt 0.752474 0.429449 -vt 0.951035 0.124745 -vt 0.926647 0.120651 -vt 0.928109 0.116557 -vt 0.953959 0.116557 -vt 0.547450 0.846401 -vt 0.923762 0.116557 -vt 0.923762 0.109699 -vt 0.162464 0.945359 -vt 0.161002 0.941265 -vt 0.185390 0.937171 -vt 0.185390 0.960405 -vt 0.161002 0.956311 -vt 0.162464 0.952217 -vt 0.188314 0.945359 -vt 0.158117 0.952217 -vt 0.158117 0.945359 -vt 0.255186 0.951558 -vt 0.256648 0.955652 -vt 0.232259 0.959746 -vt 0.795834 0.547415 -vt 0.830124 0.547415 -vt 0.232260 0.936512 -vt 0.256648 0.940606 -vt 0.255186 0.944700 -vt 0.229335 0.944700 -vt 0.259533 0.944700 -vt 0.259533 0.951558 -vt 0.907387 0.955893 -vt 0.911481 0.954430 -vt 0.915575 0.978819 -vt 0.892341 0.978819 -vt 0.896435 0.954430 -vt 0.900529 0.955893 -vt 0.907387 0.981743 -vt 0.900529 0.951545 -vt 0.907387 0.951545 -vt 0.949224 0.035551 -vt 0.950687 0.039645 -vt 0.926298 0.043739 -vt 0.926298 0.020505 -vt 0.950687 0.024599 -vt 0.949224 0.028693 -vt 0.923374 0.028693 -vt 0.953572 0.028693 -vt 0.953572 0.035551 -vt 0.896897 0.896055 -vt 0.895435 0.891961 -vt 0.919824 0.887867 -vt 0.919824 0.911101 -vt 0.895435 0.907007 -vt 0.896897 0.902913 -vt 0.922748 0.896055 -vt 0.892550 0.902913 -vt 0.895977 0.663020 -vt 0.894514 0.658926 -vt 0.918903 0.654832 -vt 0.918903 0.678066 -vt 0.894514 0.673972 -vt 0.895977 0.669878 -vt 0.921827 0.663020 -vt 0.891629 0.669878 -vt 0.891629 0.663020 -vt 0.024465 0.950581 -vt 0.020118 0.950581 -vt 0.020118 0.943723 -vt 0.050315 0.950581 -vt 0.024465 0.943723 -vt 0.047391 0.958769 -vt 0.023003 0.954675 -vt 0.023003 0.939629 -vt 0.047391 0.935535 -vt 0.908225 0.573265 -vt 0.908225 0.577613 -vt 0.901367 0.577613 -vt 0.901367 0.573265 -vt 0.901367 0.547415 -vt 0.916413 0.550339 -vt 0.912319 0.574728 -vt 0.897273 0.574728 -vt 0.893179 0.550339 -vt 0.968594 0.574816 -vt 0.968594 0.579163 -vt 0.961736 0.579163 -vt 0.968594 0.548965 -vt 0.961736 0.574816 -vt 0.976782 0.551889 -vt 0.972688 0.576278 -vt 0.957642 0.576278 -vt 0.953548 0.551889 -vt 0.914856 0.809963 -vt 0.919204 0.809963 -vt 0.919204 0.816821 -vt 0.914856 0.816821 -vt 0.889006 0.816821 -vt 0.891930 0.801775 -vt 0.916319 0.805869 -vt 0.916319 0.820915 -vt 0.891930 0.825009 -vt 0.557214 0.894864 -vt 0.561561 0.894864 -vt 0.561561 0.901723 -vt 0.557214 0.901723 -vt 0.531363 0.901723 -vt 0.534287 0.886677 -vt 0.558676 0.890771 -vt 0.558676 0.905817 -vt 0.534287 0.909911 -vt 0.903238 0.723036 -vt 0.903238 0.718688 -vt 0.910097 0.718688 -vt 0.903238 0.748886 -vt 0.910097 0.723036 -vt 0.895051 0.745962 -vt 0.899145 0.721574 -vt 0.914191 0.721574 -vt 0.918285 0.745962 -vt 0.116401 0.943723 -vt 0.120748 0.943723 -vt 0.120748 0.950581 -vt 0.116401 0.950581 -vt 0.090550 0.950581 -vt 0.093475 0.935535 -vt 0.117863 0.939629 -vt 0.117863 0.954675 -vt 0.093475 0.958769 -vt 0.309225 0.939882 -vt 0.309225 0.935535 -vt 0.316083 0.935535 -vt 0.309225 0.965733 -vt 0.316083 0.939882 -vt 0.301037 0.962809 -vt 0.305131 0.938420 -vt 0.320177 0.938420 -vt 0.324271 0.962809 -vt 0.934169 0.229504 -vt 0.934169 0.233852 -vt 0.927311 0.233852 -vt 0.927311 0.229504 -vt 0.927311 0.203654 -vt 0.942357 0.206578 -vt 0.938263 0.230966 -vt 0.923217 0.230966 -vt 0.919123 0.206578 -vt 0.825950 0.801775 -vt 0.825950 0.810469 -vt 0.795833 0.640971 -vt 0.830124 0.640971 -vt 0.830124 0.632277 -vt 0.826878 0.890825 -vt 0.754378 0.498466 -vt 0.671492 0.846401 -vt 0.671492 0.837707 -vt 0.705783 0.837707 -vt 0.844485 0.832410 -vt 0.878569 0.395099 -vt 0.822079 0.898076 -vt 0.797386 0.898076 -vt 0.777299 0.662912 -vt 0.759177 0.491216 -vt 0.783870 0.491216 -vt 0.724318 0.815766 -vt 0.652958 0.815766 -vt 0.671860 0.911269 -vt 0.802085 0.300562 -vt 0.696553 0.911269 -vt 0.873445 0.300563 -vt 0.412624 0.815766 -vt 0.881234 0.492616 -vt 0.905927 0.492616 -vt 0.483984 0.815766 -vt 0.848659 0.662912 -vt 0.674495 0.344587 -vt 0.634309 0.020148 -vt 0.691933 0.020118 -vt 0.586800 0.617746 -vt 0.408338 0.674595 -vt 0.408338 0.547415 -vt 0.547315 0.202485 -vt 0.674495 0.202485 -vt 0.761489 0.162220 -vt 0.727352 0.674595 -vt 0.550440 0.674595 -vt 0.728902 0.548190 -vt 0.761440 0.344587 -vt 0.585249 0.761540 -vt 0.172682 0.600439 -vt 0.078717 0.763193 -vt 0.288096 0.800252 -vt 0.020068 0.089759 -vt 0.767862 0.919608 -vt 0.813394 0.469684 -vt 0.877731 0.245865 -vt 0.524629 0.801775 -vt 0.408338 0.761540 -vt 0.729653 0.384823 -vt 0.408338 0.801775 -vt 0.797799 0.286572 -vt 0.848771 0.846401 -vt 0.852944 0.676903 -vt 0.852944 0.592042 -vt 0.648672 0.801775 -vt 0.849045 0.416631 -vt 0.416331 0.809148 -vt 0.799399 0.055802 -vt 0.406787 0.919220 -vt 0.935451 0.471084 -vt 0.883914 0.092936 -vt 0.726077 0.889737 -vt 0.856753 0.717138 -vt 0.820620 0.205585 -vt 0.854910 0.331198 -vt 0.559701 0.958558 -vt 0.465449 0.846401 -vt 0.949327 0.287976 -vt 0.953959 0.109699 -vt 0.581741 0.846401 -vt 0.188314 0.952218 -vt 0.229335 0.951558 -vt 0.900529 0.981743 -vt 0.923374 0.035551 -vt 0.922748 0.902913 -vt 0.892550 0.896055 -vt 0.921827 0.669878 -vt 0.050315 0.943723 -vt 0.908225 0.547415 -vt 0.961736 0.548965 -vt 0.889006 0.809963 -vt 0.531363 0.894864 -vt 0.910097 0.748886 -vt 0.090550 0.943723 -vt 0.316083 0.965733 -vt 0.934169 0.203654 -vt 0.791660 0.801775 -vt 0.795833 0.632277 -vt 0.705783 0.846401 -vn 0.000000 0.173600 -0.984800 -vn 0.000000 0.766000 -0.642800 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.766000 0.642800 -vn -0.000000 -0.939700 -0.342000 -vn -0.000000 -0.500000 -0.866000 -vn -0.000000 0.173600 0.984800 -vn 0.000000 -0.500000 0.866000 -vn 0.000000 -0.939700 0.342000 -vn 0.000000 0.939700 -0.342000 -vn 0.000000 0.522300 0.852800 -vn 0.000000 -0.148100 -0.989000 -vn 0.000000 0.500000 -0.866000 -vn 0.000000 0.948200 0.317600 -vn 0.000000 -0.749100 -0.662400 -vn 0.000000 -0.173600 -0.984800 -vn 0.000000 0.930500 -0.366200 -vn 0.000000 -0.999700 -0.025900 -vn 0.000000 -0.766000 -0.642800 -vn 0.000000 0.477400 -0.878700 -vn 0.000000 -0.782400 0.622700 -vn 0.000000 -1.000000 0.000000 -vn -0.000000 -0.199100 -0.980000 -vn 0.000000 -0.199100 0.980000 -vn 0.000000 -0.766000 0.642800 -vn -0.000000 -0.782400 -0.622700 -vn 0.000000 0.477400 0.878700 -vn 0.000000 -0.173600 0.984800 -vn 0.000000 -0.999700 0.025900 -vn -0.000000 0.930500 0.366200 -vn 0.000000 0.500000 0.866000 -vn 0.000000 -0.749100 0.662400 -vn 0.000000 0.948200 -0.317600 -vn 0.000000 0.939700 0.342000 -vn 0.000000 -0.148100 0.989000 -vn 0.000000 0.522300 -0.852800 -vn 1.000000 -0.000000 -0.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.908400 0.238500 0.343500 -vn 0.857500 0.082800 0.507700 -vn 0.908400 -0.038100 0.416400 -vn 0.000000 -0.477400 -0.878700 -vn 0.000000 0.782400 0.622700 -vn 0.000000 0.999700 -0.025900 -vn 0.000000 0.749100 -0.662400 -vn 0.000000 -0.930500 -0.366200 -vn 0.857500 0.389800 0.335700 -vn 0.908400 0.403500 0.109800 -vn 0.857500 0.514400 0.006600 -vn 0.908400 0.379700 -0.175200 -vn 0.857500 0.398300 -0.325600 -vn 0.908400 0.178200 -0.378300 -vn 0.857500 -0.481100 -0.182200 -vn 0.857500 0.095800 -0.505400 -vn 0.908400 -0.416700 0.034800 -vn 0.908400 -0.106600 -0.404300 -vn 0.857500 -0.485600 0.169700 -vn 0.857500 -0.251500 -0.448800 -vn 0.908400 -0.296800 0.294500 -vn 0.908400 -0.341600 -0.241200 -vn 0.857500 -0.262900 0.442200 -vn 0.000000 0.148100 -0.989000 -vn 0.000000 -0.948200 0.317600 -vn 0.000000 -0.522300 0.852800 -vn 0.000000 -0.522300 -0.852800 -vn 0.000000 -0.342000 0.939700 -vn 0.000000 0.342000 -0.939700 -vn 0.941700 0.316100 0.115000 -vn 0.000000 -0.866000 0.500000 -vn 0.000000 0.866000 -0.500000 -vn 0.941700 0.168200 0.291300 -vn 0.000000 0.984800 -0.173600 -vn 0.000000 -0.984800 0.173600 -vn 0.941700 -0.058400 -0.331200 -vn 0.000000 0.866000 0.500000 -vn 0.000000 -0.866000 -0.500000 -vn 0.941700 0.168200 -0.291300 -vn 0.000000 0.342000 0.939700 -vn 0.000000 -0.342000 -0.939700 -vn 0.941700 0.316100 -0.115000 -vn 0.941700 -0.257600 -0.216200 -vn 0.000000 -0.642800 0.766000 -vn 0.000000 0.642800 -0.766000 -vn 0.941700 -0.336300 0.000000 -vn 0.941700 -0.257600 0.216200 -vn 0.000000 0.642800 0.766000 -vn 0.000000 -0.642800 -0.766000 -vn 0.941700 -0.058400 0.331200 -vn 0.000000 0.984800 0.173600 -vn 0.000000 -0.984800 -0.173600 -vn 0.000000 0.199100 -0.980000 -vn 0.000000 0.199100 0.980000 -vn 0.000000 0.782400 -0.622700 -vn 0.000000 -0.477400 0.878700 -vn 0.000000 0.999700 0.025900 -vn 0.000000 -0.930500 0.366200 -vn 0.000000 0.749100 0.662400 -vn 0.000000 -0.948200 -0.317600 -vn 0.000000 0.148100 0.989000 -vn 0.857500 0.514400 -0.006600 -vn 0.908400 0.379700 0.175200 -vn 0.857500 0.398300 0.325600 -vn 0.908400 0.403500 -0.109800 -vn 0.857500 0.389800 -0.335700 -vn 0.908400 0.238500 -0.343500 -vn 0.857500 0.082800 -0.507700 -vn 0.908400 -0.038100 -0.416400 -vn 0.857500 -0.262900 -0.442200 -vn 0.908400 -0.341600 0.241200 -vn 0.908400 -0.296800 -0.294500 -vn 0.857500 -0.251500 0.448800 -vn 0.857500 -0.485600 -0.169700 -vn 0.908400 -0.106600 0.404300 -vn 0.908400 -0.416700 -0.034800 -vn 0.857500 0.095800 0.505400 -vn 0.857500 -0.481100 0.182200 -vn 0.908400 0.178200 0.378300 -s off -f 17/1/1 18/2/1 16/3/1 -f 13/4/2 14/5/2 12/6/2 -f 10/7/3 44/8/3 43/9/3 -f 42/10/4 40/11/4 39/12/4 -f 23/13/5 25/14/5 26/15/5 -f 19/16/6 21/17/6 22/18/6 -f 35/19/7 37/20/7 38/21/7 -f 33/22/8 34/23/8 32/24/8 -f 29/25/9 30/26/9 28/27/9 -f 48/28/10 47/29/10 46/30/10 -f 10/7/11 9/31/11 45/32/11 -f 12/33/12 47/29/12 48/28/12 -f 52/34/13 51/35/13 50/36/13 -f 14/5/14 13/4/14 49/37/14 -f 15/38/15 16/39/15 51/35/15 -f 53/40/16 56/41/16 55/42/16 -f 17/1/17 53/40/17 54/43/17 -f 20/44/18 55/42/18 56/41/18 -f 60/45/19 59/46/19 58/47/19 -f 21/17/20 57/48/20 58/47/20 -f 24/49/21 59/46/21 60/45/21 -f 61/50/22 64/51/22 63/52/22 -f 25/14/23 61/50/23 62/53/23 -f 28/54/24 63/52/24 64/51/24 -f 65/55/25 68/56/25 67/57/25 -f 29/25/26 65/55/26 66/58/26 -f 31/59/27 32/60/27 67/57/27 -f 72/61/28 71/62/28 70/63/28 -f 33/22/29 69/64/29 70/63/29 -f 36/65/30 71/62/30 72/61/30 -f 76/66/31 75/67/31 74/68/31 -f 37/20/32 73/69/32 74/68/32 -f 40/70/33 75/67/33 76/66/33 -f 77/71/34 80/72/34 79/73/34 -f 41/74/35 77/71/35 78/75/35 -f 43/76/36 44/77/36 79/73/36 -f 62/78/37 63/79/37 3/80/37 -f 54/81/37 55/82/37 1/83/37 -f 1/83/37 59/84/37 62/78/37 -f 58/85/37 59/84/37 1/83/37 -f 3/80/37 63/79/37 66/86/37 -f 3/80/37 67/87/37 70/88/37 -f 16/3/1 18/2/1 82/89/1 -f 30/26/26 66/58/26 109/90/26 -f 24/49/21 89/91/21 106/92/21 -f 66/86/37 67/87/37 3/80/37 -f 44/77/36 86/93/36 116/94/36 -f 1/83/37 2/95/37 54/81/37 -f 70/88/37 71/96/37 3/80/37 -f 3/80/37 71/96/37 4/97/37 -f 22/18/20 58/47/20 105/98/20 -f 42/10/35 78/75/35 115/99/35 -f 16/39/15 81/100/15 102/101/15 -f 24/102/5 26/15/5 90/103/5 -f 36/65/30 93/104/30 112/105/30 -f 54/81/37 2/95/37 51/106/37 -f 51/106/37 2/95/37 50/107/37 -f 50/107/37 2/95/37 47/108/37 -f 46/109/37 47/108/37 2/95/37 -f 71/96/37 74/110/37 4/97/37 -f 74/110/37 75/111/37 4/97/37 -f 78/112/37 4/97/37 75/111/37 -f 78/112/37 79/113/37 4/97/37 -f 4/97/37 79/113/37 46/109/37 -f 80/114/38 45/115/38 9/116/38 -f 41/117/38 39/118/38 76/119/38 -f 37/120/38 35/121/38 72/122/38 -f 8/123/38 6/124/38 45/115/38 -f 80/114/38 77/125/38 8/123/38 -f 77/125/38 76/119/38 8/123/38 -f 76/119/38 73/126/38 8/123/38 -f 73/126/38 72/122/38 8/123/38 -f 8/123/38 72/122/38 7/127/38 -f 72/122/38 69/128/38 7/127/38 -f 68/129/38 69/128/38 31/130/38 -f 68/129/38 65/131/38 7/127/38 -f 29/132/38 27/133/38 65/131/38 -f 65/131/38 27/133/38 7/127/38 -f 27/133/38 64/134/38 7/127/38 -f 7/127/38 64/134/38 61/135/38 -f 61/135/38 25/136/38 5/137/38 -f 25/136/38 23/138/38 60/139/38 -f 5/137/38 25/136/38 60/139/38 -f 60/139/38 57/140/38 5/137/38 -f 56/141/38 57/140/38 19/142/38 -f 56/141/38 53/143/38 5/137/38 -f 5/137/38 53/143/38 6/124/38 -f 45/115/38 6/124/38 48/144/38 -f 13/145/38 11/146/38 48/144/38 -f 17/147/38 15/148/38 52/149/38 -f 53/143/38 52/149/38 6/124/38 -f 52/149/38 49/150/38 6/124/38 -f 6/124/38 49/150/38 48/144/38 -f 2/95/39 1/83/39 5/151/39 -f 3/80/3 7/152/3 5/153/3 -f 4/97/40 8/154/40 7/155/40 -f 2/95/22 6/156/22 8/157/22 -f 1/83/37 55/82/37 58/85/37 -f 89/158/41 125/159/41 142/160/41 -f 104/161/37 140/162/37 141/163/37 -f 92/164/42 105/165/42 141/166/42 -f 106/167/37 142/168/37 143/169/37 -f 91/170/43 127/171/43 140/172/43 -f 108/173/37 144/174/37 145/175/37 -f 10/7/11 46/30/11 99/176/11 -f 22/18/6 92/177/6 91/178/6 -f 32/60/27 95/179/27 110/180/27 -f 14/5/2 84/181/2 83/182/2 -f 12/33/12 83/183/12 100/184/12 -f 38/21/7 94/185/7 93/186/7 -f 38/21/32 74/68/32 113/187/32 -f 74/188/16 71/189/16 112/190/16 -f 18/2/17 54/43/17 103/191/17 -f 75/192/19 114/193/19 115/194/19 -f 10/7/3 85/195/3 86/196/3 -f 40/70/33 87/197/33 114/198/33 -f 32/24/8 34/23/8 96/199/8 -f 79/200/22 116/201/22 99/202/22 -f 20/44/18 91/203/18 104/204/18 -f 26/15/23 62/53/23 107/205/23 -f 47/206/25 100/207/25 101/208/25 -f 51/209/28 102/210/28 103/211/28 -f 63/212/10 108/173/10 109/213/10 -f 28/54/24 97/214/24 108/215/24 -f 34/23/29 70/63/29 111/216/29 -f 42/10/4 88/217/4 87/218/4 -f 59/219/34 106/167/34 107/220/34 -f 14/5/14 50/36/14 101/221/14 -f 67/222/13 110/223/13 111/224/13 -f 30/26/9 98/225/9 97/226/9 -f 55/227/31 104/161/31 105/228/31 -f 146/229/44 131/230/44 167/231/44 -f 134/232/45 145/233/45 170/234/45 -f 147/235/46 168/236/46 132/237/46 -f 167/238/27 182/239/27 146/240/27 -f 165/241/30 184/242/30 148/243/30 -f 168/244/29 147/245/29 183/246/29 -f 130/247/47 149/248/47 166/249/47 -f 148/250/48 129/251/48 165/252/48 -f 185/253/32 166/254/32 149/255/32 -f 112/190/37 148/256/37 149/257/37 -f 90/258/49 107/259/49 143/260/49 -f 114/193/37 150/261/37 151/262/37 -f 97/263/50 133/264/50 144/265/50 -f 116/201/37 152/266/37 135/267/37 -f 98/268/51 109/269/51 145/233/51 -f 101/208/37 100/207/37 136/270/37 -f 95/271/52 131/230/52 146/229/52 -f 102/210/37 138/272/37 139/273/37 -f 96/274/53 111/275/53 147/235/53 -f 110/223/37 146/276/37 147/277/37 -f 93/278/54 129/251/54 148/250/54 -f 85/279/55 99/280/55 135/281/55 -f 94/282/56 113/283/56 149/248/56 -f 83/284/57 119/285/57 136/286/57 -f 87/287/58 123/288/58 150/289/58 -f 84/290/59 101/291/59 137/292/59 -f 88/293/60 115/294/60 151/295/60 -f 81/296/61 117/297/61 138/298/61 -f 86/299/62 122/300/62 152/301/62 -f 82/302/63 103/303/63 139/304/63 -f 134/232/37 133/264/37 97/263/37 -f 180/305/24 144/306/24 169/307/24 -f 144/174/10 180/305/10 181/308/10 -f 159/309/33 186/310/33 150/311/33 -f 142/168/34 178/312/34 179/313/34 -f 124/314/64 151/295/64 160/315/64 -f 130/316/16 166/254/16 165/241/16 -f 140/162/31 176/317/31 177/318/31 -f 150/289/65 123/288/65 159/319/65 -f 148/256/16 184/242/16 185/253/16 -f 187/320/35 160/321/35 151/322/35 -f 150/261/19 186/310/19 187/320/19 -f 158/323/36 188/324/36 152/325/36 -f 152/266/22 188/324/22 171/326/22 -f 152/301/66 122/300/66 158/327/66 -f 136/270/25 172/328/25 173/329/25 -f 121/330/67 135/281/67 157/331/67 -f 138/272/28 174/332/28 175/333/28 -f 171/326/11 157/334/11 135/335/11 -f 146/276/13 182/239/13 183/246/13 -f 118/336/28 154/337/28 153/338/28 -f 293/339/68 296/340/68 241/341/68 -f 153/338/37 154/337/37 175/333/37 -f 242/342/69 295/343/69 294/344/69 -f 172/328/37 155/345/37 156/346/37 -f 206/347/70 294/344/70 293/339/70 -f 118/348/37 117/297/37 81/296/37 -f 294/344/34 295/349/34 296/350/34 -f 120/351/25 156/346/25 155/345/25 -f 289/352/71 292/353/71 247/354/71 -f 84/290/37 120/355/37 119/285/37 -f 248/356/72 291/357/72 290/358/72 -f 85/279/37 121/330/37 122/300/37 -f 290/358/73 289/352/73 211/359/73 -f 188/324/37 158/323/37 157/334/37 -f 290/358/31 291/360/31 292/361/31 -f 159/309/37 160/321/37 187/320/37 -f 285/362/71 288/363/71 245/364/71 -f 158/323/22 122/365/22 121/366/22 -f 246/367/72 287/368/72 286/369/72 -f 124/314/37 123/288/37 87/287/37 -f 210/370/73 286/369/73 285/362/73 -f 124/371/19 160/321/19 159/309/19 -f 286/369/31 287/372/31 288/373/31 -f 281/374/74 284/375/74 251/376/74 -f 94/282/37 130/247/37 129/251/37 -f 252/377/75 283/378/75 282/379/75 -f 96/274/37 132/237/37 131/230/37 -f 282/379/76 281/374/76 215/380/76 -f 184/242/37 165/241/37 166/254/37 -f 282/379/16 283/381/16 284/382/16 -f 167/238/37 168/244/37 183/246/37 -f 277/383/74 280/384/74 249/385/74 -f 167/238/13 131/386/13 132/387/13 -f 250/388/75 279/389/75 278/390/75 -f 214/391/76 278/390/76 277/383/76 -f 278/390/16 279/392/16 280/393/16 -f 273/394/77 276/395/77 255/396/77 -f 256/397/78 275/398/78 274/399/78 -f 274/399/79 273/394/79 219/400/79 -f 274/399/13 275/401/13 276/402/13 -f 269/403/77 272/404/77 253/405/77 -f 254/406/78 271/407/78 270/408/78 -f 218/409/79 270/408/79 269/403/79 -f 270/408/13 271/410/13 272/411/13 -f 265/412/80 268/413/80 259/414/80 -f 260/415/81 267/416/81 266/417/81 -f 266/417/82 265/412/82 223/418/82 -f 265/412/10 266/417/10 267/419/10 -f 261/420/80 264/421/80 257/422/80 -f 258/423/81 263/424/81 262/425/81 -f 262/425/82 261/420/82 221/426/82 -f 262/425/10 263/427/10 264/428/10 -f 298/429/34 299/430/34 300/431/34 -f 208/432/70 298/429/70 297/433/70 -f 244/434/69 299/435/69 298/429/69 -f 297/433/68 300/436/68 243/437/68 -f 302/438/19 303/439/19 304/440/19 -f 302/438/83 301/441/83 201/442/83 -f 238/443/84 303/444/84 302/438/84 -f 301/441/85 304/445/85 237/446/85 -f 306/447/19 307/448/19 308/449/19 -f 204/450/83 306/447/83 305/451/83 -f 240/452/84 307/453/84 306/447/84 -f 305/451/85 308/454/85 239/455/85 -f 310/456/22 311/457/22 312/458/22 -f 310/456/86 309/459/86 200/460/86 -f 235/461/39 311/462/39 310/456/39 -f 309/459/40 312/463/40 236/464/40 -f 314/465/22 315/466/22 316/467/22 -f 314/465/86 313/468/86 198/469/86 -f 233/470/39 315/471/39 314/465/39 -f 313/468/40 316/472/40 234/473/40 -f 318/474/25 319/475/25 320/476/25 -f 194/477/87 318/474/87 317/478/87 -f 230/479/88 319/480/88 318/474/88 -f 317/478/89 320/481/89 229/482/89 -f 322/483/25 323/484/25 324/485/25 -f 322/483/87 321/486/87 195/487/87 -f 232/488/88 323/489/88 322/483/88 -f 321/486/89 324/490/89 231/491/89 -f 326/492/28 327/493/28 328/494/28 -f 190/495/90 326/492/90 325/496/90 -f 226/497/91 327/498/91 326/492/91 -f 325/496/92 328/499/92 225/500/92 -f 330/501/28 331/502/28 332/503/28 -f 330/501/90 329/504/90 191/505/90 -f 228/506/91 331/507/91 330/501/91 -f 329/504/92 332/508/92 227/509/92 -f 134/510/10 170/511/10 169/307/10 -f 169/307/37 170/511/37 181/308/37 -f 161/512/37 162/513/37 179/313/37 -f 126/514/34 162/513/34 161/512/34 -f 90/258/37 126/515/37 125/159/37 -f 128/516/37 127/171/37 91/170/37 -f 128/517/31 164/518/31 163/519/31 -f 163/519/37 164/518/37 177/318/37 -f 170/511/26 145/520/26 181/308/26 -f 144/265/93 133/264/93 169/521/93 -f 126/515/94 143/260/94 162/522/94 -f 142/160/95 125/159/95 161/523/95 -f 161/512/21 178/312/21 142/524/21 -f 128/516/96 141/166/96 164/525/96 -f 140/172/97 127/171/97 163/526/97 -f 163/519/18 176/317/18 140/527/18 -f 164/518/20 141/528/20 177/318/20 -f 118/348/98 139/304/98 154/529/98 -f 154/337/17 139/530/17 175/333/17 -f 138/298/99 117/297/99 153/531/99 -f 153/338/15 174/332/15 138/532/15 -f 173/329/14 156/346/14 137/533/14 -f 120/355/100 137/292/100 156/534/100 -f 136/286/101 119/285/101 155/535/101 -f 155/345/12 172/328/12 136/536/12 -f 162/513/23 143/537/23 179/313/23 -f 15/538/1 17/1/1 16/3/1 -f 11/539/2 13/4/2 12/6/2 -f 9/31/3 10/7/3 43/9/3 -f 41/74/4 42/10/4 39/12/4 -f 24/102/5 23/13/5 26/15/5 -f 20/540/6 19/16/6 22/18/6 -f 36/541/7 35/19/7 38/21/7 -f 31/542/8 33/22/8 32/24/8 -f 27/543/9 29/25/9 28/27/9 -f 45/32/10 48/28/10 46/30/10 -f 46/30/11 10/7/11 45/32/11 -f 11/544/12 12/33/12 48/28/12 -f 49/37/13 52/34/13 50/36/13 -f 50/36/14 14/5/14 49/37/14 -f 52/34/15 15/38/15 51/35/15 -f 54/43/16 53/40/16 55/42/16 -f 18/2/17 17/1/17 54/43/17 -f 19/545/18 20/44/18 56/41/18 -f 57/48/19 60/45/19 58/47/19 -f 22/18/20 21/17/20 58/47/20 -f 23/546/21 24/49/21 60/45/21 -f 62/53/22 61/50/22 63/52/22 -f 26/15/23 25/14/23 62/53/23 -f 27/547/24 28/54/24 64/51/24 -f 66/58/25 65/55/25 67/57/25 -f 30/26/26 29/25/26 66/58/26 -f 68/56/27 31/59/27 67/57/27 -f 69/64/28 72/61/28 70/63/28 -f 34/23/29 33/22/29 70/63/29 -f 35/548/30 36/65/30 72/61/30 -f 73/69/31 76/66/31 74/68/31 -f 38/21/32 37/20/32 74/68/32 -f 39/549/33 40/70/33 76/66/33 -f 78/75/34 77/71/34 79/73/34 -f 42/10/35 41/74/35 78/75/35 -f 80/72/36 43/76/36 79/73/36 -f 1/83/37 62/78/37 3/80/37 -f 81/550/1 16/3/1 82/89/1 -f 98/225/26 30/26/26 109/90/26 -f 59/46/21 24/49/21 106/92/21 -f 79/73/36 44/77/36 116/94/36 -f 92/177/20 22/18/20 105/98/20 -f 88/217/35 42/10/35 115/99/35 -f 51/35/15 16/39/15 102/101/15 -f 89/551/5 24/102/5 90/103/5 -f 71/62/30 36/65/30 112/105/30 -f 2/95/37 4/97/37 46/109/37 -f 43/552/38 80/114/38 9/116/38 -f 77/125/38 41/117/38 76/119/38 -f 73/126/38 37/120/38 72/122/38 -f 80/114/38 8/123/38 45/115/38 -f 33/553/38 31/130/38 69/128/38 -f 68/129/38 7/127/38 69/128/38 -f 5/137/38 7/127/38 61/135/38 -f 21/554/38 19/142/38 57/140/38 -f 56/141/38 5/137/38 57/140/38 -f 49/150/38 13/145/38 48/144/38 -f 53/143/38 17/147/38 52/149/38 -f 6/555/39 2/95/39 5/151/39 -f 1/83/3 3/80/3 5/153/3 -f 3/80/40 4/97/40 7/155/40 -f 4/97/22 2/95/22 8/157/22 -f 106/556/102 89/158/102 142/160/102 -f 105/228/37 104/161/37 141/163/37 -f 128/516/103 92/164/103 141/166/103 -f 107/220/37 106/167/37 143/169/37 -f 104/557/104 91/170/104 140/172/104 -f 109/213/37 108/173/37 145/175/37 -f 85/195/11 10/7/11 99/176/11 -f 20/540/6 22/18/6 91/178/6 -f 67/57/27 32/60/27 110/180/27 -f 12/6/2 14/5/2 83/182/2 -f 47/29/12 12/33/12 100/184/12 -f 36/541/7 38/21/7 93/186/7 -f 94/185/32 38/21/32 113/187/32 -f 113/558/16 74/188/16 112/190/16 -f 82/89/17 18/2/17 103/191/17 -f 78/559/19 75/192/19 115/194/19 -f 44/8/3 10/7/3 86/196/3 -f 75/67/33 40/70/33 114/198/33 -f 95/560/8 32/24/8 96/199/8 -f 46/561/22 79/200/22 99/202/22 -f 55/42/18 20/44/18 104/204/18 -f 90/103/23 26/15/23 107/205/23 -f 50/562/25 47/206/25 101/208/25 -f 54/563/28 51/209/28 103/211/28 -f 66/564/10 63/212/10 109/213/10 -f 63/52/24 28/54/24 108/215/24 -f 96/199/29 34/23/29 111/216/29 -f 40/11/4 42/10/4 87/218/4 -f 62/565/34 59/219/34 107/220/34 -f 84/181/14 14/5/14 101/221/14 -f 70/566/13 67/222/13 111/224/13 -f 28/27/9 30/26/9 97/226/9 -f 58/567/31 55/227/31 105/228/31 -f 113/558/37 112/190/37 149/257/37 -f 126/515/105 90/258/105 143/260/105 -f 115/194/37 114/193/37 151/262/37 -f 108/568/106 97/263/106 144/265/106 -f 99/202/37 116/201/37 135/267/37 -f 134/232/107 98/268/107 145/233/107 -f 137/569/37 101/208/37 136/270/37 -f 110/570/108 95/271/108 146/229/108 -f 103/211/37 102/210/37 139/273/37 -f 132/237/109 96/274/109 147/235/109 -f 111/224/37 110/223/37 147/277/37 -f 112/571/110 93/278/110 148/250/110 -f 121/330/111 85/279/111 135/281/111 -f 130/247/112 94/282/112 149/248/112 -f 100/572/113 83/284/113 136/286/113 -f 114/573/114 87/287/114 150/289/114 -f 120/355/115 84/290/115 137/292/115 -f 124/314/116 88/293/116 151/295/116 -f 102/574/117 81/296/117 138/298/117 -f 116/575/118 86/299/118 152/301/118 -f 118/348/119 82/302/119 139/304/119 -f 98/268/37 134/232/37 97/263/37 -f 145/175/10 144/174/10 181/308/10 -f 143/169/34 142/168/34 179/313/34 -f 129/576/16 130/316/16 165/241/16 -f 141/163/31 140/162/31 177/318/31 -f 149/257/16 148/256/16 185/253/16 -f 151/262/19 150/261/19 187/320/19 -f 135/267/22 152/266/22 171/326/22 -f 137/569/25 136/270/25 173/329/25 -f 139/273/28 138/272/28 175/333/28 -f 147/277/13 146/276/13 183/246/13 -f 117/577/28 118/336/28 153/338/28 -f 205/578/68 293/339/68 241/341/68 -f 174/332/37 153/338/37 175/333/37 -f 206/347/69 242/342/69 294/344/69 -f 173/329/37 172/328/37 156/346/37 -f 205/578/70 206/347/70 293/339/70 -f 82/302/37 118/348/37 81/296/37 -f 293/339/34 294/344/34 296/350/34 -f 119/579/25 120/351/25 155/345/25 -f 211/359/71 289/352/71 247/354/71 -f 83/284/37 84/290/37 119/285/37 -f 212/580/72 248/356/72 290/358/72 -f 86/299/37 85/279/37 122/300/37 -f 212/580/73 290/358/73 211/359/73 -f 171/326/37 188/324/37 157/334/37 -f 289/352/31 290/358/31 292/361/31 -f 186/310/37 159/309/37 187/320/37 -f 209/581/71 285/362/71 245/364/71 -f 157/334/22 158/323/22 121/366/22 -f 210/370/72 246/367/72 286/369/72 -f 88/293/37 124/314/37 87/287/37 -f 209/581/73 210/370/73 285/362/73 -f 123/582/19 124/371/19 159/309/19 -f 285/362/31 286/369/31 288/373/31 -f 215/380/74 281/374/74 251/376/74 -f 93/278/37 94/282/37 129/251/37 -f 216/583/75 252/377/75 282/379/75 -f 95/271/37 96/274/37 131/230/37 -f 216/583/76 282/379/76 215/380/76 -f 185/253/37 184/242/37 166/254/37 -f 281/374/16 282/379/16 284/382/16 -f 182/239/37 167/238/37 183/246/37 -f 213/584/74 277/383/74 249/385/74 -f 168/244/13 167/238/13 132/387/13 -f 214/391/75 250/388/75 278/390/75 -f 213/584/76 214/391/76 277/383/76 -f 277/383/16 278/390/16 280/393/16 -f 219/400/77 273/394/77 255/396/77 -f 220/585/78 256/397/78 274/399/78 -f 220/585/79 274/399/79 219/400/79 -f 273/394/13 274/399/13 276/402/13 -f 217/586/77 269/403/77 253/405/77 -f 218/409/78 254/406/78 270/408/78 -f 217/586/79 218/409/79 269/403/79 -f 269/403/13 270/408/13 272/411/13 -f 223/418/80 265/412/80 259/414/80 -f 224/587/81 260/415/81 266/417/81 -f 224/587/82 266/417/82 223/418/82 -f 268/588/10 265/412/10 267/419/10 -f 221/426/80 261/420/80 257/422/80 -f 222/589/81 258/423/81 262/425/81 -f 222/589/82 262/425/82 221/426/82 -f 261/420/10 262/425/10 264/428/10 -f 297/433/34 298/429/34 300/431/34 -f 207/590/70 208/432/70 297/433/70 -f 208/432/69 244/434/69 298/429/69 -f 207/590/68 297/433/68 243/437/68 -f 301/441/19 302/438/19 304/440/19 -f 202/591/83 302/438/83 201/442/83 -f 202/591/84 238/443/84 302/438/84 -f 201/442/85 301/441/85 237/446/85 -f 305/451/19 306/447/19 308/449/19 -f 203/592/83 204/450/83 305/451/83 -f 204/450/84 240/452/84 306/447/84 -f 203/592/85 305/451/85 239/455/85 -f 309/459/22 310/456/22 312/458/22 -f 199/593/86 310/456/86 200/460/86 -f 199/593/39 235/461/39 310/456/39 -f 200/460/40 309/459/40 236/464/40 -f 313/468/22 314/465/22 316/467/22 -f 197/594/86 314/465/86 198/469/86 -f 197/594/39 233/470/39 314/465/39 -f 198/469/40 313/468/40 234/473/40 -f 317/478/25 318/474/25 320/476/25 -f 193/595/87 194/477/87 317/478/87 -f 194/477/88 230/479/88 318/474/88 -f 193/595/89 317/478/89 229/482/89 -f 321/486/25 322/483/25 324/485/25 -f 196/596/87 322/483/87 195/487/87 -f 196/596/88 232/488/88 322/483/88 -f 195/487/89 321/486/89 231/491/89 -f 325/496/28 326/492/28 328/494/28 -f 189/597/90 190/495/90 325/496/90 -f 190/495/91 226/497/91 326/492/91 -f 189/597/92 325/496/92 225/500/92 -f 329/504/28 330/501/28 332/503/28 -f 192/598/90 330/501/90 191/505/90 -f 192/598/91 228/506/91 330/501/91 -f 191/505/92 329/504/92 227/509/92 -f 133/599/10 134/510/10 169/307/10 -f 180/305/37 169/307/37 181/308/37 -f 178/312/37 161/512/37 179/313/37 -f 125/600/34 126/514/34 161/512/34 -f 89/158/37 90/258/37 125/159/37 -f 92/164/37 128/516/37 91/170/37 -f 127/601/31 128/517/31 163/519/31 -f 176/317/37 163/519/37 177/318/37 diff --git a/src/main/resources/assets/hbm/models/vehicles/tunnel_bore.obj b/src/main/resources/assets/hbm/models/vehicles/tunnel_bore.obj new file mode 100644 index 000000000..94434ba94 --- /dev/null +++ b/src/main/resources/assets/hbm/models/vehicles/tunnel_bore.obj @@ -0,0 +1,7617 @@ +# Blender v2.79 (sub 0) OBJ File: 'tunnel_bore.blend' +# www.blender.org +o Plane +v 0.750000 0.073223 3.051777 +v 0.750000 0.250000 3.125000 +v 0.750000 0.426777 3.051777 +v 0.750000 0.500000 2.875000 +v 0.750000 0.500000 2.125000 +v 0.750000 0.426777 2.301777 +v 0.750000 0.250000 2.375000 +v 0.750000 0.073223 2.301777 +v 0.750000 0.000000 2.125000 +v 0.750000 0.073223 1.948223 +v 0.750000 0.250000 1.875000 +v 0.750000 0.426777 1.948223 +v -0.750000 0.500000 2.125000 +v -0.750000 0.426777 2.301777 +v -0.750000 0.250000 2.375000 +v -0.750000 0.073223 2.301777 +v -0.750000 0.000000 2.125000 +v -0.750000 0.073223 1.948223 +v -0.750000 0.250000 1.875000 +v -0.750000 0.426777 1.948223 +v 0.687500 0.426777 2.301777 +v 0.687500 0.500000 2.125000 +v 0.687500 0.250000 2.375000 +v 0.687500 0.073223 2.301777 +v 0.687500 0.000000 2.125000 +v 0.687500 0.073223 1.948223 +v 0.687500 0.250000 1.875000 +v 0.687500 0.426777 1.948223 +v -0.687500 0.426777 2.301777 +v -0.687500 0.500000 2.125000 +v -0.687500 0.250000 2.375000 +v -0.687500 0.073223 2.301777 +v -0.687500 0.000000 2.125000 +v -0.687500 0.073223 1.948223 +v -0.687500 0.250000 1.875000 +v -0.687500 0.426777 1.948223 +v 0.750000 0.382582 2.257582 +v 0.750000 0.437500 2.125000 +v 0.750000 0.250000 2.312500 +v 0.750000 0.117417 2.257582 +v 0.750000 0.062500 2.125000 +v 0.750000 0.117418 1.992417 +v 0.750000 0.250000 1.937500 +v 0.750000 0.382582 1.992417 +v 0.812500 0.382582 2.257582 +v 0.812500 0.437500 2.125000 +v 0.812500 0.250000 2.312500 +v 0.812500 0.117417 2.257582 +v 0.812500 0.062500 2.125000 +v 0.812500 0.117418 1.992417 +v 0.812500 0.250000 1.937500 +v 0.812500 0.382582 1.992417 +v -0.750000 0.382582 2.257582 +v -0.750000 0.437500 2.125000 +v -0.750000 0.250000 2.312500 +v -0.750000 0.117417 2.257582 +v -0.750000 0.062500 2.125000 +v -0.750000 0.117418 1.992417 +v -0.750000 0.250000 1.937500 +v -0.750000 0.382582 1.992417 +v -0.812500 0.382582 2.257582 +v -0.812500 0.437500 2.125000 +v -0.812500 0.250000 2.312500 +v -0.812500 0.117417 2.257582 +v -0.812500 0.062500 2.125000 +v -0.812500 0.117418 1.992417 +v -0.812500 0.250000 1.937500 +v -0.812500 0.382582 1.992417 +v 0.750000 0.000000 2.875000 +v 0.750000 0.073223 2.698223 +v 0.750000 0.250000 2.625000 +v 0.750000 0.426777 2.698223 +v -0.750000 0.500000 2.875000 +v -0.750000 0.426777 3.051777 +v -0.750000 0.250000 3.125000 +v -0.750000 0.073223 3.051777 +v -0.750000 0.000000 2.875000 +v -0.750000 0.073223 2.698223 +v -0.750000 0.250000 2.625000 +v -0.750000 0.426777 2.698223 +v 0.687500 0.426777 3.051777 +v 0.687500 0.500000 2.875000 +v 0.687500 0.250000 3.125000 +v 0.687500 0.073223 3.051777 +v 0.687500 0.000000 2.875000 +v 0.687500 0.073223 2.698223 +v 0.687500 0.250000 2.625000 +v 0.687500 0.426777 2.698223 +v -0.687500 0.426777 3.051777 +v -0.687500 0.500000 2.875000 +v -0.687500 0.250000 3.125000 +v -0.687500 0.073223 3.051777 +v -0.687500 0.000000 2.875000 +v -0.687500 0.073223 2.698223 +v -0.687500 0.250000 2.625000 +v -0.687500 0.426777 2.698223 +v 0.750000 0.382582 3.007583 +v 0.750000 0.437500 2.875000 +v 0.750000 0.250000 3.062500 +v 0.750000 0.117417 3.007583 +v 0.750000 0.062500 2.875000 +v 0.750000 0.117418 2.742417 +v 0.750000 0.250000 2.687500 +v 0.750000 0.382582 2.742417 +v 0.812500 0.382582 3.007583 +v 0.812500 0.437500 2.875000 +v 0.812500 0.250000 3.062500 +v 0.812500 0.117417 3.007583 +v 0.812500 0.062500 2.875000 +v 0.812500 0.117418 2.742417 +v 0.812500 0.250000 2.687500 +v 0.812500 0.382582 2.742417 +v -0.750000 0.382582 3.007583 +v -0.750000 0.437500 2.875000 +v -0.750000 0.250000 3.062500 +v -0.750000 0.117417 3.007583 +v -0.750000 0.062500 2.875000 +v -0.750000 0.117418 2.742417 +v -0.750000 0.250000 2.687500 +v -0.750000 0.382582 2.742417 +v -0.812500 0.382582 3.007583 +v -0.812500 0.437500 2.875000 +v -0.812500 0.250000 3.062500 +v -0.812500 0.117417 3.007583 +v -0.812500 0.062500 2.875000 +v -0.812500 0.117418 2.742417 +v -0.812500 0.250000 2.687500 +v -0.812500 0.382582 2.742417 +v 1.000000 0.625000 3.250000 +v 1.000000 0.625000 1.750000 +v -1.000000 0.625000 3.250000 +v -1.000000 0.625000 1.750000 +v 1.000000 0.250000 3.250000 +v 1.000000 0.250000 1.750000 +v -1.000000 0.250000 3.250000 +v -1.000000 0.250000 1.750000 +v 1.000000 0.250000 1.625000 +v -1.000000 0.250000 1.625000 +v 1.000000 0.250000 3.375000 +v -1.000000 0.250000 3.375000 +v 1.000000 0.750000 1.625000 +v -1.000000 0.750000 1.625000 +v 1.000000 0.750000 3.375000 +v -1.000000 0.750000 3.375000 +v 0.687500 0.125000 3.125000 +v 0.687500 0.125000 1.875000 +v -0.687500 0.125000 3.125000 +v -0.687500 0.125000 1.875000 +v 0.687500 0.250000 1.750000 +v -0.687500 0.250000 1.750000 +v 0.687500 0.250000 3.250000 +v -0.687500 0.250000 3.250000 +v 0.687500 0.625000 1.750000 +v 0.687500 0.625000 3.250000 +v -0.687500 0.625000 1.750000 +v -0.687500 0.625000 3.250000 +v 0.750000 0.073223 -1.948224 +v 0.750000 0.250000 -1.875000 +v 0.750000 0.426777 -1.948224 +v 0.750000 0.500000 -2.125000 +v 0.750000 0.500000 -2.875000 +v 0.750000 0.426777 -2.698223 +v 0.750000 0.250000 -2.625000 +v 0.750000 0.073223 -2.698223 +v 0.750000 0.000000 -2.875000 +v 0.750000 0.073223 -3.051777 +v 0.750000 0.250000 -3.125000 +v 0.750000 0.426777 -3.051777 +v -0.750000 0.500000 -2.875000 +v -0.750000 0.426777 -2.698223 +v -0.750000 0.250000 -2.625000 +v -0.750000 0.073223 -2.698223 +v -0.750000 0.000000 -2.875000 +v -0.750000 0.073223 -3.051777 +v -0.750000 0.250000 -3.125000 +v -0.750000 0.426777 -3.051777 +v 0.687500 0.426777 -2.698223 +v 0.687500 0.500000 -2.875000 +v 0.687500 0.250000 -2.625000 +v 0.687500 0.073223 -2.698223 +v 0.687500 0.000000 -2.875000 +v 0.687500 0.073223 -3.051777 +v 0.687500 0.250000 -3.125000 +v 0.687500 0.426777 -3.051777 +v -0.687500 0.426777 -2.698223 +v -0.687500 0.500000 -2.875000 +v -0.687500 0.250000 -2.625000 +v -0.687500 0.073223 -2.698223 +v -0.687500 0.000000 -2.875000 +v -0.687500 0.073223 -3.051777 +v -0.687500 0.250000 -3.125000 +v -0.687500 0.426777 -3.051777 +v 0.750000 0.382582 -2.742418 +v 0.750000 0.437500 -2.875000 +v 0.750000 0.250000 -2.687500 +v 0.750000 0.117417 -2.742418 +v 0.750000 0.062500 -2.875000 +v 0.750000 0.117418 -3.007583 +v 0.750000 0.250000 -3.062500 +v 0.750000 0.382582 -3.007583 +v 0.812500 0.382582 -2.742418 +v 0.812500 0.437500 -2.875000 +v 0.812500 0.250000 -2.687500 +v 0.812500 0.117417 -2.742418 +v 0.812500 0.062500 -2.875000 +v 0.812500 0.117418 -3.007583 +v 0.812500 0.250000 -3.062500 +v 0.812500 0.382582 -3.007583 +v -0.750000 0.382582 -2.742418 +v -0.750000 0.437500 -2.875000 +v -0.750000 0.250000 -2.687500 +v -0.750000 0.117417 -2.742418 +v -0.750000 0.062500 -2.875000 +v -0.750000 0.117418 -3.007583 +v -0.750000 0.250000 -3.062500 +v -0.750000 0.382582 -3.007583 +v -0.812500 0.382582 -2.742418 +v -0.812500 0.437500 -2.875000 +v -0.812500 0.250000 -2.687500 +v -0.812500 0.117417 -2.742418 +v -0.812500 0.062500 -2.875000 +v -0.812500 0.117418 -3.007583 +v -0.812500 0.250000 -3.062500 +v -0.812500 0.382582 -3.007583 +v 0.750000 0.000000 -2.125000 +v 0.750000 0.073223 -2.301777 +v 0.750000 0.250000 -2.375000 +v 0.750000 0.426777 -2.301777 +v -0.750000 0.500000 -2.125000 +v -0.750000 0.426777 -1.948223 +v -0.750000 0.250000 -1.875000 +v -0.750000 0.073223 -1.948223 +v -0.750000 0.000000 -2.125000 +v -0.750000 0.073223 -2.301777 +v -0.750000 0.250000 -2.375000 +v -0.750000 0.426777 -2.301777 +v 0.687500 0.426777 -1.948224 +v 0.687500 0.500000 -2.125000 +v 0.687500 0.250000 -1.875000 +v 0.687500 0.073223 -1.948224 +v 0.687500 0.000000 -2.125000 +v 0.687500 0.073223 -2.301777 +v 0.687500 0.250000 -2.375000 +v 0.687500 0.426777 -2.301777 +v -0.687500 0.426777 -1.948223 +v -0.687500 0.500000 -2.125000 +v -0.687500 0.250000 -1.875000 +v -0.687500 0.073223 -1.948223 +v -0.687500 0.000000 -2.125000 +v -0.687500 0.073223 -2.301777 +v -0.687500 0.250000 -2.375000 +v -0.687500 0.426777 -2.301777 +v 0.750000 0.382582 -1.992417 +v 0.750000 0.437500 -2.125000 +v 0.750000 0.250000 -1.937500 +v 0.750000 0.117417 -1.992417 +v 0.750000 0.062500 -2.125000 +v 0.750000 0.117418 -2.257583 +v 0.750000 0.250000 -2.312500 +v 0.750000 0.382582 -2.257583 +v 0.812500 0.382582 -1.992417 +v 0.812500 0.437500 -2.125000 +v 0.812500 0.250000 -1.937500 +v 0.812500 0.117417 -1.992417 +v 0.812500 0.062500 -2.125000 +v 0.812500 0.117418 -2.257583 +v 0.812500 0.250000 -2.312500 +v 0.812500 0.382582 -2.257583 +v -0.750000 0.382582 -1.992417 +v -0.750000 0.437500 -2.125000 +v -0.750000 0.250000 -1.937500 +v -0.750000 0.117417 -1.992417 +v -0.750000 0.062500 -2.125000 +v -0.750000 0.117418 -2.257583 +v -0.750000 0.250000 -2.312500 +v -0.750000 0.382582 -2.257583 +v -0.812500 0.382582 -1.992417 +v -0.812500 0.437500 -2.125000 +v -0.812500 0.250000 -1.937500 +v -0.812500 0.117417 -1.992417 +v -0.812500 0.062500 -2.125000 +v -0.812500 0.117418 -2.257583 +v -0.812500 0.250000 -2.312500 +v -0.812500 0.382582 -2.257583 +v 1.000000 0.625000 -1.750000 +v 1.000000 0.625000 -3.250000 +v -1.000000 0.625000 -1.750000 +v -1.000000 0.625000 -3.250000 +v 1.000000 0.250000 -1.750000 +v 1.000000 0.250000 -3.250000 +v -1.000000 0.250000 -1.750000 +v -1.000000 0.250000 -3.250000 +v 1.000000 0.250000 -3.375000 +v -1.000000 0.250000 -3.375000 +v 1.000000 0.250000 -1.625000 +v -1.000000 0.250000 -1.625000 +v 1.000000 0.750000 -3.375000 +v -1.000000 0.750000 -3.375000 +v 1.000000 0.750000 -1.625000 +v -1.000000 0.750000 -1.625000 +v 0.687500 0.125000 -1.875000 +v 0.687500 0.125000 -3.125000 +v -0.687500 0.125000 -1.875000 +v -0.687500 0.125000 -3.125000 +v 0.687500 0.250000 -3.250000 +v -0.687500 0.250000 -3.250000 +v 0.687500 0.250000 -1.750000 +v -0.687500 0.250000 -1.750000 +v 0.687500 0.625000 -3.250000 +v 0.687500 0.625000 -1.750000 +v -0.687500 0.625000 -3.250000 +v -0.687500 0.625000 -1.750000 +v -0.750000 0.750000 3.500000 +v 0.750000 0.750000 3.500000 +v -0.750000 0.750000 -3.500000 +v 0.750000 0.750000 -3.500000 +v -0.750000 1.000000 -3.500000 +v -0.750000 1.000000 3.500000 +v 0.750000 1.000000 3.500000 +v 0.750000 1.000000 -3.500000 +v -0.750000 0.750000 -1.500000 +v -0.750000 0.750000 1.500000 +v 0.750000 0.750000 1.500000 +v 0.750000 0.750000 -1.500000 +v -0.750000 0.250000 -1.000000 +v -0.750000 0.250000 1.000000 +v 0.750000 0.250000 1.000000 +v 0.750000 0.250000 -1.000000 +v 0.530330 1.469670 3.750000 +v 0.750000 2.000000 3.750000 +v 0.530330 2.530330 3.750000 +v 0.000000 2.750000 3.750000 +v -0.530330 2.530330 3.750000 +v -0.750000 2.000000 3.750000 +v -0.530330 1.469670 3.750000 +v -0.000000 1.250000 3.750000 +v -1.000000 1.000000 3.500000 +v 1.000000 1.000000 3.500000 +v -1.000000 1.000000 -0.500000 +v 1.000000 1.000000 -0.500000 +v -1.000000 2.500000 -0.500000 +v -1.000000 2.500000 3.500000 +v 1.000000 2.500000 3.500000 +v 1.000000 2.500000 -0.500000 +v -0.250000 3.000000 -0.500000 +v -0.250000 3.000000 3.500000 +v 0.250000 3.000000 3.500000 +v 0.250000 3.000000 -0.500000 +v 1.000000 1.187500 -0.312500 +v 1.000000 1.812500 -0.312500 +v 1.000000 1.187500 0.062500 +v 1.000000 1.812500 0.062500 +v 0.750000 1.187500 -0.312500 +v 0.750000 1.812500 -0.312500 +v 0.750000 1.187500 0.062500 +v 0.750000 1.812500 0.062500 +v 0.750000 1.375000 -0.250000 +v 0.750000 1.463388 -0.213388 +v 0.750000 1.500000 -0.125000 +v 0.750000 1.463388 -0.036612 +v 0.750000 1.375000 -0.000000 +v 0.750000 1.286612 -0.036612 +v 0.750000 1.250000 -0.125000 +v 0.750000 1.286612 -0.213388 +v 1.000000 1.375000 -0.250000 +v 1.000000 1.463388 -0.213388 +v 1.000000 1.500000 -0.125000 +v 1.000000 1.463388 -0.036612 +v 1.000000 1.375000 -0.000000 +v 1.000000 1.286612 -0.036612 +v 1.000000 1.250000 -0.125000 +v 1.000000 1.286612 -0.213388 +v 1.176777 1.375000 -0.176777 +v 1.150888 1.463388 -0.150888 +v 1.088388 1.500000 -0.088388 +v 1.025888 1.463388 -0.025888 +v 1.025888 1.286612 -0.025888 +v 1.088388 1.250000 -0.088388 +v 1.150888 1.286612 -0.150888 +v 1.250000 1.375000 -0.000000 +v 1.213388 1.463388 -0.000000 +v 1.125000 1.500000 -0.000000 +v 1.036612 1.463388 -0.000000 +v 1.036612 1.286612 -0.000000 +v 1.125000 1.250000 -0.000000 +v 1.213388 1.286612 0.000000 +v 1.000000 1.375000 2.750000 +v 1.250000 1.375000 2.750000 +v 1.213388 1.463388 2.750000 +v 1.125000 1.500000 2.750000 +v 1.036612 1.463388 2.750000 +v 1.036612 1.286612 2.750000 +v 1.125000 1.250000 2.750000 +v 1.213388 1.286612 2.750000 +v 1.000000 1.411612 2.838388 +v 1.250000 1.411612 2.838388 +v 1.213388 1.474112 2.775888 +v 1.036612 1.474112 2.775888 +v 1.036612 1.349112 2.900888 +v 1.125000 1.323223 2.926777 +v 1.213388 1.349112 2.900888 +v 1.000000 1.500000 2.875000 +v 1.250000 1.500000 2.875000 +v 1.213388 1.500000 2.786612 +v 1.036612 1.500000 2.786612 +v 1.036612 1.500000 2.963388 +v 1.125000 1.500000 3.000000 +v 1.213388 1.500000 2.963388 +v 1.125000 2.000000 2.750000 +v 1.000000 2.000000 2.875000 +v 1.250000 2.000000 2.875000 +v 1.213388 2.000000 2.786612 +v 1.036612 2.000000 2.786612 +v 1.036612 2.000000 2.963388 +v 1.125000 2.000000 3.000000 +v 1.213388 2.000000 2.963388 +v 1.088388 2.088388 2.750000 +v 1.176777 2.176777 2.875000 +v 1.150888 2.150888 2.786612 +v 1.025888 2.025888 2.786612 +v 1.025888 2.025888 2.963388 +v 1.088388 2.088388 3.000000 +v 1.150888 2.150888 2.963388 +v 1.000000 2.125000 2.750000 +v 1.000000 2.250000 2.875000 +v 1.000000 2.213388 2.786612 +v 1.000000 2.036612 2.786612 +v 1.000000 2.036612 2.963388 +v 1.000000 2.125000 3.000000 +v 1.000000 2.213388 2.963388 +v 0.750000 1.625000 -0.250000 +v 0.750000 1.713388 -0.213388 +v 0.750000 1.750000 -0.125000 +v 0.750000 1.713388 -0.036612 +v 0.750000 1.625000 -0.000000 +v 0.750000 1.536612 -0.036612 +v 0.750000 1.500000 -0.125000 +v 0.750000 1.536612 -0.213388 +v 1.000000 1.625000 -0.250000 +v 1.000000 1.713388 -0.213388 +v 1.000000 1.750000 -0.125000 +v 1.000000 1.713388 -0.036612 +v 1.000000 1.625000 -0.000000 +v 1.000000 1.536612 -0.036612 +v 1.000000 1.500000 -0.125000 +v 1.000000 1.536612 -0.213388 +v 1.176777 1.625000 -0.176777 +v 1.150888 1.713388 -0.150888 +v 1.088388 1.750000 -0.088388 +v 1.025888 1.713388 -0.025888 +v 1.025888 1.536612 -0.025888 +v 1.088388 1.500000 -0.088388 +v 1.150888 1.536612 -0.150888 +v 1.250000 1.625000 -0.000000 +v 1.213388 1.713388 -0.000000 +v 1.125000 1.750000 -0.000000 +v 1.036612 1.713388 -0.000000 +v 1.036612 1.536612 -0.000000 +v 1.125000 1.500000 -0.000000 +v 1.213388 1.536612 0.000000 +v 1.000000 1.625000 2.500000 +v 1.250000 1.625000 2.500000 +v 1.213388 1.713388 2.500000 +v 1.125000 1.750000 2.500000 +v 1.036612 1.713388 2.500000 +v 1.036612 1.536612 2.500000 +v 1.125000 1.500000 2.500000 +v 1.213388 1.536612 2.500000 +v 1.000000 1.661612 2.588388 +v 1.250000 1.661612 2.588388 +v 1.213388 1.724112 2.525888 +v 1.036612 1.724112 2.525888 +v 1.036612 1.599112 2.650888 +v 1.125000 1.573223 2.676777 +v 1.213388 1.599112 2.650888 +v 1.000000 1.750000 2.625000 +v 1.250000 1.750000 2.625000 +v 1.213388 1.750000 2.536612 +v 1.036612 1.750000 2.536612 +v 1.036612 1.750000 2.713388 +v 1.125000 1.750000 2.750000 +v 1.213388 1.750000 2.713388 +v 1.125000 2.000000 2.500000 +v 1.000000 2.250000 2.625000 +v 1.250000 2.000000 2.625000 +v 1.213388 2.000000 2.536612 +v 1.036612 2.000000 2.536612 +v 1.036612 2.000000 2.713388 +v 1.125000 2.000000 2.750000 +v 1.213388 2.000000 2.713388 +v 1.088388 2.088388 2.500000 +v 1.176777 2.176777 2.625000 +v 1.150888 2.150888 2.536612 +v 1.025888 2.025888 2.536612 +v 1.025888 2.025888 2.713388 +v 1.088388 2.088388 2.750000 +v 1.150888 2.150888 2.713388 +v 1.000000 2.125000 2.500000 +v 1.000000 2.250000 2.625000 +v 1.000000 2.213388 2.536612 +v 1.000000 2.036612 2.536612 +v 1.000000 2.036612 2.713388 +v 1.000000 2.125000 2.750000 +v 1.000000 2.213388 2.713388 +v -0.750000 1.187500 -0.312500 +v -0.750000 1.812500 -0.312500 +v -0.750000 1.187500 0.062500 +v -0.750000 1.812500 0.062500 +v -1.000000 1.187500 -0.312500 +v -1.000000 1.812500 -0.312500 +v -1.000000 1.187500 0.062500 +v -1.000000 1.812500 0.062500 +v -0.750000 1.375000 -0.250000 +v -0.750000 1.463388 -0.213388 +v -0.750000 1.500000 -0.125000 +v -0.750000 1.463388 -0.036612 +v -0.750000 1.375000 0.000000 +v -0.750000 1.286612 -0.036612 +v -0.750000 1.250000 -0.125000 +v -0.750000 1.286612 -0.213388 +v -1.000000 1.375000 -0.250000 +v -1.000000 1.463388 -0.213388 +v -1.000000 1.500000 -0.125000 +v -1.000000 1.463388 -0.036612 +v -1.000000 1.375000 0.000000 +v -1.000000 1.286612 -0.036612 +v -1.000000 1.250000 -0.125000 +v -1.000000 1.286612 -0.213388 +v -1.176777 1.375000 -0.176777 +v -1.150888 1.463388 -0.150888 +v -1.088388 1.500000 -0.088388 +v -1.025888 1.463388 -0.025888 +v -1.025888 1.286612 -0.025888 +v -1.088388 1.250000 -0.088388 +v -1.150888 1.286612 -0.150888 +v -1.250000 1.375000 -0.000000 +v -1.213388 1.463388 -0.000000 +v -1.125000 1.500000 -0.000000 +v -1.036612 1.463388 -0.000000 +v -1.036612 1.286612 -0.000000 +v -1.125000 1.250000 -0.000000 +v -1.213388 1.286612 0.000000 +v -1.000000 1.375000 2.750000 +v -1.250000 1.375000 2.750000 +v -1.213388 1.463388 2.750000 +v -1.125000 1.500000 2.750000 +v -1.036612 1.463388 2.750000 +v -1.036612 1.286612 2.750000 +v -1.125000 1.250000 2.750000 +v -1.213388 1.286612 2.750000 +v -1.000000 1.411612 2.838388 +v -1.250000 1.411612 2.838388 +v -1.213388 1.474112 2.775888 +v -1.036612 1.474112 2.775888 +v -1.036612 1.349112 2.900888 +v -1.125000 1.323223 2.926777 +v -1.213388 1.349112 2.900888 +v -1.000000 1.500000 2.875000 +v -1.250000 1.500000 2.875000 +v -1.213388 1.500000 2.786612 +v -1.036612 1.500000 2.786612 +v -1.036612 1.500000 2.963388 +v -1.125000 1.500000 3.000000 +v -1.213388 1.500000 2.963388 +v -1.125000 2.000000 2.750000 +v -1.000000 2.000000 2.875000 +v -1.250000 2.000000 2.875000 +v -1.213388 2.000000 2.786612 +v -1.036612 2.000000 2.786612 +v -1.036612 2.000000 2.963388 +v -1.125000 2.000000 3.000000 +v -1.213388 2.000000 2.963388 +v -1.088388 2.088388 2.750000 +v -1.176777 2.176777 2.875000 +v -1.150888 2.150888 2.786612 +v -1.025888 2.025888 2.786612 +v -1.025888 2.025888 2.963388 +v -1.088388 2.088388 3.000000 +v -1.150888 2.150888 2.963388 +v -1.000000 2.125000 2.750000 +v -1.000000 2.250000 2.875000 +v -1.000000 2.213388 2.786612 +v -1.000000 2.036612 2.786612 +v -1.000000 2.036612 2.963388 +v -1.000000 2.125000 3.000000 +v -1.000000 2.213388 2.963388 +v -0.750000 1.625000 -0.250000 +v -0.750000 1.713388 -0.213388 +v -0.750000 1.750000 -0.125000 +v -0.750000 1.713388 -0.036612 +v -0.750000 1.625000 0.000000 +v -0.750000 1.536612 -0.036612 +v -0.750000 1.500000 -0.125000 +v -0.750000 1.536612 -0.213388 +v -1.000000 1.625000 -0.250000 +v -1.000000 1.713388 -0.213388 +v -1.000000 1.750000 -0.125000 +v -1.000000 1.713388 -0.036612 +v -1.000000 1.625000 0.000000 +v -1.000000 1.536612 -0.036612 +v -1.000000 1.500000 -0.125000 +v -1.000000 1.536612 -0.213388 +v -1.176777 1.625000 -0.176777 +v -1.150888 1.713388 -0.150888 +v -1.088388 1.750000 -0.088388 +v -1.025888 1.713388 -0.025888 +v -1.025888 1.536612 -0.025888 +v -1.088388 1.500000 -0.088388 +v -1.150888 1.536612 -0.150888 +v -1.250000 1.625000 -0.000000 +v -1.213388 1.713388 -0.000000 +v -1.125000 1.750000 -0.000000 +v -1.036612 1.713388 -0.000000 +v -1.036612 1.536612 -0.000000 +v -1.125000 1.500000 -0.000000 +v -1.213388 1.536612 0.000000 +v -1.000000 1.625000 2.500000 +v -1.250000 1.625000 2.500000 +v -1.213388 1.713388 2.500000 +v -1.125000 1.750000 2.500000 +v -1.036612 1.713388 2.500000 +v -1.036612 1.536612 2.500000 +v -1.125000 1.500000 2.500000 +v -1.213388 1.536612 2.500000 +v -1.000000 1.661612 2.588388 +v -1.250000 1.661612 2.588388 +v -1.213388 1.724112 2.525888 +v -1.036612 1.724112 2.525888 +v -1.036612 1.599112 2.650888 +v -1.125000 1.573223 2.676777 +v -1.213388 1.599112 2.650888 +v -1.000000 1.750000 2.625000 +v -1.250000 1.750000 2.625000 +v -1.213388 1.750000 2.536612 +v -1.036612 1.750000 2.536612 +v -1.036612 1.750000 2.713388 +v -1.125000 1.750000 2.750000 +v -1.213388 1.750000 2.713388 +v -1.125000 2.000000 2.500000 +v -1.000000 2.250000 2.625000 +v -1.250000 2.000000 2.625000 +v -1.213388 2.000000 2.536612 +v -1.036612 2.000000 2.536612 +v -1.036612 2.000000 2.713388 +v -1.125000 2.000000 2.750000 +v -1.213388 2.000000 2.713388 +v -1.088388 2.088388 2.500000 +v -1.176777 2.176777 2.625000 +v -1.150888 2.150888 2.536612 +v -1.025888 2.025888 2.536612 +v -1.025888 2.025888 2.713388 +v -1.088388 2.088388 2.750000 +v -1.150888 2.150888 2.713388 +v -1.000000 2.125000 2.500000 +v -1.000000 2.250000 2.625000 +v -1.000000 2.213388 2.536612 +v -1.000000 2.036612 2.536612 +v -1.000000 2.036612 2.713388 +v -1.000000 2.125000 2.750000 +v -1.000000 2.213388 2.713388 +v -0.000000 1.250000 3.500000 +v -0.530330 1.469670 3.500000 +v -0.750000 2.000000 3.500000 +v -0.530330 2.530330 3.500000 +v 0.000000 2.750000 3.500000 +v 0.530330 2.530330 3.500000 +v 0.750000 2.000000 3.500000 +v 0.530330 1.469670 3.500000 +v 0.000000 3.500000 4.250000 +v -0.750000 3.299038 4.250000 +v -1.299038 2.750000 4.250000 +v -1.500000 2.000000 4.250000 +v -1.299038 1.250000 4.250000 +v -0.750000 0.700962 4.250000 +v -0.000000 0.500000 4.250000 +v 0.750000 0.700962 4.250000 +v 1.299038 1.250000 4.250000 +v 1.500000 1.999999 4.250000 +v 1.299038 2.749999 4.250000 +v 0.750001 3.299038 4.250000 +v 0.000000 3.500000 5.000000 +v -0.750000 3.299038 5.000000 +v -1.299038 2.750000 5.000000 +v -1.500000 2.000000 5.000000 +v -1.299038 1.250000 5.000000 +v -0.750000 0.700962 5.000000 +v -0.000000 0.500000 5.000000 +v 0.750000 0.700962 5.000000 +v 1.299038 1.250000 5.000000 +v 1.500000 1.999999 5.000000 +v 1.299038 2.749999 5.000000 +v 0.750001 3.299038 5.000000 +v 0.000000 3.312500 5.750000 +v -0.656250 3.136658 5.750000 +v -1.136658 2.656250 5.750000 +v -1.312500 2.000000 5.750000 +v -1.136658 1.343750 5.750000 +v -0.656250 0.863342 5.750000 +v -0.000000 0.687500 5.750000 +v 0.656250 0.863341 5.750000 +v 1.136658 1.343750 5.750000 +v 1.312500 1.999999 5.750000 +v 1.136659 2.656250 5.750000 +v 0.656251 3.136658 5.750000 +v 0.000000 2.937500 6.500000 +v -0.468750 2.811899 6.500000 +v -0.811899 2.468750 6.500000 +v -0.937500 2.000000 6.500000 +v -0.811899 1.531250 6.500000 +v -0.468750 1.188101 6.500000 +v -0.000000 1.062500 6.500000 +v 0.468750 1.188101 6.500000 +v 0.811899 1.531250 6.500000 +v 0.937500 2.000000 6.500000 +v 0.811899 2.468750 6.500000 +v 0.468751 2.811899 6.500000 +v 0.000000 2.375000 7.250000 +v -0.187500 2.324759 7.250000 +v -0.324759 2.187500 7.250000 +v -0.375000 2.000000 7.250000 +v -0.324759 1.812500 7.250000 +v -0.187500 1.675241 7.250000 +v -0.000000 1.625000 7.250000 +v 0.187500 1.675240 7.250000 +v 0.324759 1.812500 7.250000 +v 0.375000 2.000000 7.250000 +v 0.324760 2.187500 7.250000 +v 0.187500 2.324759 7.250000 +v 1.375000 2.249999 4.875000 +v 1.375000 1.749999 4.875000 +v 1.375000 2.249999 4.375000 +v 1.375000 1.749999 4.375000 +v 1.625000 2.249999 4.375000 +v 1.625000 2.249999 4.875000 +v 1.625000 1.749999 4.875000 +v 1.625000 1.749999 4.375000 +v 1.875000 2.374999 4.500000 +v 1.875000 2.374999 4.750000 +v 1.875000 2.124999 4.750000 +v 1.875000 2.124999 4.500000 +v 1.290549 1.913017 5.621202 +v 1.161140 1.430054 5.621202 +v 1.374415 1.890545 5.128798 +v 1.245005 1.407582 5.128798 +v 1.612228 1.826823 5.172210 +v 1.528362 1.849295 5.664614 +v 1.398953 1.366332 5.664614 +v 1.482818 1.343860 5.172210 +v 1.861427 1.889460 5.338723 +v 1.819494 1.900696 5.584925 +v 1.754789 1.659214 5.584925 +v 1.796722 1.647979 5.338723 +v 0.894345 2.249999 6.351577 +v 0.894345 1.749999 6.351577 +v 1.105654 2.249999 5.898423 +v 1.105654 1.749999 5.898423 +v 1.332231 2.249999 6.004077 +v 1.120922 2.249999 6.457232 +v 1.120922 1.749999 6.457232 +v 1.332231 1.749999 6.004077 +v 1.505981 2.374999 6.223021 +v 1.400326 2.374999 6.449597 +v 1.400326 2.124999 6.449597 +v 1.505981 2.124999 6.223021 +v 0.375000 2.249999 7.091506 +v 0.375000 1.749999 7.091506 +v 0.625000 2.249999 6.658494 +v 0.625000 1.749999 6.658494 +v 0.841506 2.249999 6.783494 +v 0.591506 2.249999 7.216506 +v 0.591506 1.749999 7.216506 +v 0.841506 1.749999 6.783494 +v 0.995513 2.374999 7.016747 +v 0.870513 2.374999 7.233253 +v 0.870513 2.124999 7.233253 +v 0.995513 2.124999 7.016747 +v -1.375000 1.750001 4.875000 +v -1.375000 2.250001 4.875000 +v -1.375000 1.750001 4.375000 +v -1.375000 2.250001 4.375000 +v -1.625000 1.750001 4.375000 +v -1.625000 1.750001 4.875000 +v -1.625000 2.250001 4.875000 +v -1.625000 2.250001 4.375000 +v -1.875000 1.625001 4.500000 +v -1.875000 1.625001 4.750000 +v -1.875000 1.875001 4.750000 +v -1.875000 1.875001 4.500000 +v 0.249999 0.625000 4.875000 +v -0.250001 0.625000 4.875000 +v 0.249999 0.625000 4.375000 +v -0.250001 0.625000 4.375000 +v 0.249999 0.375000 4.375000 +v 0.249999 0.375000 4.875000 +v -0.250001 0.375000 4.875000 +v -0.250001 0.375000 4.375000 +v 0.374999 0.125000 4.500000 +v 0.374999 0.125000 4.750000 +v 0.124999 0.125000 4.750000 +v 0.124999 0.125000 4.500000 +v -0.249999 3.375000 4.875000 +v 0.250001 3.375000 4.875000 +v -0.249999 3.375000 4.375000 +v 0.250001 3.375000 4.375000 +v -0.249999 3.625000 4.375000 +v -0.249999 3.625000 4.875000 +v 0.250001 3.625000 4.875000 +v 0.250001 3.625000 4.375000 +v -0.374999 3.875000 4.500000 +v -0.374999 3.875000 4.750000 +v -0.124999 3.875000 4.750000 +v -0.124999 3.875000 4.500000 +v 1.315784 1.529006 4.875000 +v 1.065784 1.095993 4.875000 +v 1.315784 1.529006 4.375000 +v 1.065784 1.095993 4.375000 +v 1.532291 1.404006 4.375000 +v 1.532291 1.404006 4.875000 +v 1.282291 0.970993 4.875000 +v 1.282291 0.970993 4.375000 +v 1.811297 1.387259 4.500000 +v 1.811297 1.387259 4.750000 +v 1.686297 1.170753 4.750000 +v 1.686297 1.170753 4.500000 +v -1.315784 2.470994 4.875000 +v -1.065784 2.904007 4.875000 +v -1.315784 2.470994 4.375000 +v -1.065784 2.904007 4.375000 +v -1.532291 2.595994 4.375000 +v -1.532291 2.595994 4.875000 +v -1.282291 3.029007 4.875000 +v -1.282291 3.029007 4.375000 +v -1.811297 2.612741 4.500000 +v -1.811297 2.612741 4.750000 +v -1.686297 2.829247 4.750000 +v -1.686297 2.829247 4.500000 +v -0.470994 0.684216 4.875000 +v -0.904007 0.934216 4.875000 +v -0.470994 0.684216 4.375000 +v -0.904007 0.934216 4.375000 +v -0.595994 0.467709 4.375000 +v -0.595994 0.467709 4.875000 +v -1.029007 0.717709 4.875000 +v -1.029007 0.717709 4.375000 +v -0.612741 0.188703 4.500000 +v -0.612741 0.188703 4.750000 +v -0.829247 0.313703 4.750000 +v -0.829247 0.313703 4.500000 +v 0.470994 3.315784 4.875000 +v 0.904007 3.065784 4.875000 +v 0.470994 3.315784 4.375000 +v 0.904007 3.065784 4.375000 +v 0.595995 3.532291 4.375000 +v 0.595995 3.532291 4.875000 +v 1.029007 3.282291 4.875000 +v 1.029007 3.282291 4.375000 +v 0.612741 3.811297 4.500000 +v 0.612741 3.811297 4.750000 +v 0.829248 3.686297 4.750000 +v 0.829248 3.686297 4.500000 +v 0.904006 0.934215 4.875000 +v 0.470993 0.684215 4.875000 +v 0.904006 0.934215 4.375000 +v 0.470993 0.684215 4.375000 +v 1.029006 0.717708 4.375000 +v 1.029006 0.717708 4.875000 +v 0.595993 0.467708 4.875000 +v 0.595993 0.467708 4.375000 +v 1.262259 0.563702 4.500000 +v 1.262259 0.563702 4.750000 +v 1.045753 0.438702 4.750000 +v 1.045753 0.438702 4.500000 +v -0.904006 3.065785 4.875000 +v -0.470993 3.315785 4.875000 +v -0.904006 3.065785 4.375000 +v -0.470993 3.315785 4.375000 +v -1.029006 3.282291 4.375000 +v -1.029006 3.282291 4.875000 +v -0.595993 3.532291 4.875000 +v -0.595993 3.532291 4.375000 +v -1.262259 3.436298 4.500000 +v -1.262259 3.436298 4.750000 +v -1.045752 3.561298 4.750000 +v -1.045752 3.561298 4.500000 +v -1.065785 1.095994 4.875000 +v -1.315785 1.529007 4.875000 +v -1.065785 1.095994 4.375000 +v -1.315785 1.529007 4.375000 +v -1.282292 0.970994 4.375000 +v -1.282292 0.970994 4.875000 +v -1.532292 1.404007 4.875000 +v -1.532292 1.404007 4.375000 +v -1.436298 0.737741 4.500000 +v -1.436298 0.737741 4.750000 +v -1.561298 0.954248 4.750000 +v -1.561298 0.954248 4.500000 +v 1.065785 2.904006 4.875000 +v 1.315785 2.470993 4.875000 +v 1.065785 2.904006 4.375000 +v 1.315785 2.470993 4.375000 +v 1.282292 3.029006 4.375000 +v 1.282292 3.029006 4.875000 +v 1.532292 2.595993 4.875000 +v 1.532292 2.595993 4.375000 +v 1.436298 3.262259 4.500000 +v 1.436298 3.262259 4.750000 +v 1.561298 3.045752 4.750000 +v 1.561298 3.045752 4.500000 +v 1.074157 1.279396 5.621202 +v 0.720603 0.925842 5.621202 +v 1.135551 1.218002 5.128798 +v 0.781998 0.864448 5.128798 +v 1.309642 1.043911 5.172210 +v 1.248248 1.105304 5.664614 +v 0.894695 0.751751 5.664614 +v 0.956088 0.690357 5.172210 +v 1.556773 0.973556 5.338723 +v 1.526076 1.004253 5.584925 +v 1.349299 0.827477 5.584925 +v 1.379996 0.796780 5.338723 +v 0.569945 0.838860 5.621202 +v 0.086982 0.709450 5.621202 +v 0.592417 0.754994 5.128798 +v 0.109454 0.625585 5.128798 +v 0.656138 0.517182 5.172210 +v 0.633667 0.601047 5.664614 +v 0.150704 0.471638 5.664614 +v 0.173175 0.387772 5.172210 +v 0.834983 0.332687 5.338723 +v 0.823747 0.374620 5.584925 +v 0.582266 0.309916 5.584925 +v 0.593501 0.267983 5.338723 +v 0.086983 3.290549 5.621202 +v 0.569946 3.161140 5.621202 +v 0.109455 3.374415 5.128798 +v 0.592418 3.245006 5.128798 +v 0.173177 3.612228 5.172210 +v 0.150705 3.528362 5.664614 +v 0.633668 3.398952 5.664614 +v 0.656140 3.482818 5.172210 +v 0.110540 3.861427 5.338723 +v 0.099304 3.819494 5.584925 +v 0.340785 3.754789 5.584925 +v 0.352021 3.796722 5.338723 +v 0.720604 3.074157 5.621202 +v 1.074158 2.720603 5.621202 +v 0.781998 3.135550 5.128798 +v 1.135552 2.781997 5.128798 +v 0.956089 3.309642 5.172210 +v 0.894696 3.248248 5.664614 +v 1.248249 2.894695 5.664614 +v 1.309643 2.956089 5.172210 +v 1.026444 3.556773 5.338723 +v 0.995747 3.526076 5.584925 +v 1.172523 3.349299 5.584925 +v 1.203220 3.379996 5.338723 +v 1.161140 2.569945 5.621202 +v 1.290550 2.086982 5.621202 +v 1.245006 2.592417 5.128798 +v 1.374415 2.109454 5.128798 +v 1.482818 2.656138 5.172210 +v 1.398953 2.633667 5.664614 +v 1.528362 2.150704 5.664614 +v 1.612228 2.173176 5.172210 +v 1.667313 2.834983 5.338723 +v 1.625380 2.823747 5.584925 +v 1.690084 2.582266 5.584925 +v 1.732017 2.593501 5.338723 +v -1.290549 2.086983 5.621202 +v -1.161140 2.569946 5.621202 +v -1.374415 2.109455 5.128798 +v -1.245005 2.592418 5.128798 +v -1.612228 2.173177 5.172210 +v -1.528362 2.150705 5.664614 +v -1.398953 2.633668 5.664614 +v -1.482818 2.656140 5.172210 +v -1.861427 2.110540 5.338723 +v -1.819494 2.099304 5.584925 +v -1.754789 2.340786 5.584925 +v -1.796722 2.352022 5.338723 +v -1.074157 2.720604 5.621202 +v -0.720603 3.074158 5.621202 +v -1.135550 2.781999 5.128798 +v -0.781997 3.135552 5.128798 +v -1.309641 2.956089 5.172210 +v -1.248248 2.894696 5.664614 +v -0.894694 3.248249 5.664614 +v -0.956088 3.309643 5.172210 +v -1.556773 3.026444 5.338723 +v -1.526076 2.995747 5.584925 +v -1.349299 3.172523 5.584925 +v -1.379996 3.203220 5.338723 +v -0.569945 3.161140 5.621202 +v -0.086982 3.290550 5.621202 +v -0.592416 3.245006 5.128798 +v -0.109454 3.374415 5.128798 +v -0.656138 3.482818 5.172210 +v -0.633666 3.398953 5.664614 +v -0.150704 3.528362 5.664614 +v -0.173175 3.612228 5.172210 +v -0.834983 3.667313 5.338723 +v -0.823747 3.625380 5.584925 +v -0.582265 3.690084 5.584925 +v -0.593501 3.732017 5.338723 +v -0.086983 0.709451 5.621202 +v -0.569946 0.838860 5.621202 +v -0.109455 0.625585 5.128798 +v -0.592418 0.754994 5.128798 +v -0.173177 0.387772 5.172210 +v -0.150705 0.471638 5.664614 +v -0.633668 0.601048 5.664614 +v -0.656140 0.517182 5.172210 +v -0.110540 0.138573 5.338723 +v -0.099304 0.180506 5.584925 +v -0.340786 0.245211 5.584925 +v -0.352021 0.203278 5.338723 +v -0.720604 0.925843 5.621202 +v -1.074158 1.279397 5.621202 +v -0.781998 0.864450 5.128798 +v -1.135552 1.218003 5.128798 +v -0.956089 0.690358 5.172210 +v -0.894696 0.751752 5.664614 +v -1.248249 1.105306 5.664614 +v -1.309643 1.043912 5.172210 +v -1.026444 0.443227 5.338723 +v -0.995747 0.473924 5.584925 +v -1.172524 0.650701 5.584925 +v -1.203220 0.620004 5.338723 +v -1.161140 1.430055 5.621202 +v -1.290550 1.913018 5.621202 +v -1.245006 1.407584 5.128798 +v -1.374415 1.890546 5.128798 +v -1.482818 1.343862 5.172210 +v -1.398953 1.366334 5.664614 +v -1.528362 1.849296 5.664614 +v -1.612228 1.826825 5.172210 +v -1.667313 1.165017 5.338723 +v -1.625380 1.176253 5.584925 +v -1.690084 1.417735 5.584925 +v -1.732017 1.406499 5.338723 +v -0.894345 1.750001 6.351577 +v -0.894345 2.250001 6.351577 +v -1.105654 1.750001 5.898423 +v -1.105654 2.250001 5.898423 +v -1.332231 1.750001 6.004077 +v -1.120922 1.750001 6.457232 +v -1.120922 2.250001 6.457232 +v -1.332231 2.250001 6.004077 +v -1.505981 1.625001 6.223021 +v -1.400326 1.625001 6.449597 +v -1.400326 1.875001 6.449597 +v -1.505981 1.875001 6.223021 +v 0.249999 1.105655 6.351577 +v -0.250001 1.105655 6.351577 +v 0.249999 0.894346 5.898423 +v -0.250001 0.894346 5.898423 +v 0.249999 0.667769 6.004077 +v 0.249999 0.879078 6.457232 +v -0.250001 0.879078 6.457232 +v -0.250001 0.667769 6.004077 +v 0.374999 0.494019 6.223021 +v 0.374999 0.599674 6.449597 +v 0.124999 0.599674 6.449597 +v 0.124999 0.494019 6.223021 +v -0.249999 2.894345 6.351577 +v 0.250001 2.894345 6.351577 +v -0.249999 3.105654 5.898423 +v 0.250001 3.105654 5.898423 +v -0.249999 3.332232 6.004077 +v -0.249999 3.120922 6.457232 +v 0.250001 3.120922 6.457232 +v 0.250001 3.332232 6.004077 +v -0.374999 3.505981 6.223021 +v -0.374999 3.400326 6.449597 +v -0.124999 3.400326 6.449597 +v -0.124999 3.505981 6.223021 +v 0.809174 1.544379 6.351577 +v 0.455620 1.190825 6.351577 +v 0.958592 1.394960 5.898423 +v 0.605039 1.041407 5.898423 +v 1.118806 1.234746 6.004077 +v 0.969388 1.384165 6.457232 +v 0.615835 1.030611 6.457232 +v 0.765253 0.881193 6.004077 +v 1.330054 1.200275 6.223021 +v 1.255345 1.274984 6.449597 +v 1.078568 1.098207 6.449597 +v 1.153277 1.023499 6.223021 +v -0.809174 2.455621 6.351577 +v -0.455620 2.809175 6.351577 +v -0.958592 2.605040 5.898423 +v -0.605039 2.958593 5.898423 +v -1.118806 2.765254 6.004077 +v -0.969388 2.615836 6.457232 +v -0.615834 2.969389 6.457232 +v -0.765252 3.118807 6.004077 +v -1.330054 2.799725 6.223021 +v -1.255345 2.725016 6.449597 +v -1.078568 2.901793 6.449597 +v -1.153277 2.976501 6.223021 +v -0.455621 1.190826 6.351577 +v -0.809175 1.544380 6.351577 +v -0.605040 1.041408 5.898423 +v -0.958593 1.394961 5.898423 +v -0.765254 0.881194 6.004077 +v -0.615835 1.030612 6.457232 +v -0.969389 1.384166 6.457232 +v -1.118807 1.234747 6.004077 +v -0.799725 0.669946 6.223021 +v -0.725016 0.744655 6.449597 +v -0.901793 0.921432 6.449597 +v -0.976501 0.846723 6.223021 +v 0.455622 2.809174 6.351577 +v 0.809175 2.455620 6.351577 +v 0.605040 2.958592 5.898423 +v 0.958593 2.605039 5.898423 +v 0.765254 3.118806 6.004077 +v 0.615836 2.969388 6.457232 +v 0.969389 2.615834 6.457232 +v 1.118807 2.765253 6.004077 +v 0.799725 3.330054 6.223021 +v 0.725016 3.255345 6.449597 +v 0.901793 3.078568 6.449597 +v 0.976502 3.153277 6.223021 +v -0.375000 1.750001 7.091506 +v -0.375000 2.250001 7.091506 +v -0.625000 1.750001 6.658494 +v -0.625000 2.250001 6.658494 +v -0.841506 1.750001 6.783494 +v -0.591506 1.750001 7.216506 +v -0.591506 2.250001 7.216506 +v -0.841506 2.250001 6.783494 +v -0.995513 1.625001 7.016747 +v -0.870513 1.625001 7.233253 +v -0.870512 1.875001 7.233253 +v -0.995512 1.875001 7.016747 +v 0.404006 1.800240 7.091506 +v -0.029007 1.550240 7.091506 +v 0.529006 1.583734 6.658494 +v 0.095993 1.333734 6.658494 +v 0.637259 1.396234 6.783494 +v 0.512259 1.612740 7.216506 +v 0.079246 1.362740 7.216506 +v 0.204246 1.146234 6.783494 +v 0.822515 1.325360 7.016747 +v 0.760015 1.433614 7.233253 +v 0.543509 1.308614 7.233253 +v 0.606009 1.200360 7.016747 +v -0.404006 2.199760 7.091506 +v 0.029007 2.449760 7.091506 +v -0.529006 2.416266 6.658494 +v -0.095993 2.666266 6.658494 +v -0.637259 2.603766 6.783494 +v -0.512259 2.387260 7.216506 +v -0.079246 2.637260 7.216506 +v -0.204246 2.853766 6.783494 +v -0.822515 2.674640 7.016747 +v -0.760015 2.566386 7.233253 +v -0.543509 2.691386 7.233253 +v -0.606009 2.799640 7.016747 +v 0.029006 1.550241 7.091506 +v -0.404007 1.800241 7.091506 +v -0.095994 1.333735 6.658494 +v -0.529007 1.583735 6.658494 +v -0.204248 1.146235 6.783494 +v -0.079247 1.362741 7.216506 +v -0.512260 1.612741 7.216506 +v -0.637260 1.396235 6.783494 +v -0.172997 0.950361 7.016747 +v -0.110498 1.058614 7.233253 +v -0.327004 1.183614 7.233253 +v -0.389504 1.075361 7.016747 +v -0.029006 2.449759 7.091506 +v 0.404007 2.199759 7.091506 +v 0.095994 2.666265 6.658494 +v 0.529007 2.416265 6.658494 +v 0.204248 2.853765 6.783494 +v 0.079247 2.637259 7.216506 +v 0.512260 2.387259 7.216506 +v 0.637260 2.603765 6.783494 +v 0.172998 3.049639 7.016747 +v 0.110498 2.941386 7.233253 +v 0.327004 2.816386 7.233253 +v 0.389504 2.924639 7.016747 +v 0.000000 2.250000 7.250000 +v -0.176777 2.176777 7.250000 +v -0.250000 2.000000 7.250000 +v -0.176777 1.823223 7.250000 +v 0.000000 1.750000 7.250000 +v 0.176777 1.823223 7.250000 +v 0.250000 2.000000 7.250000 +v 0.176777 2.176777 7.250000 +v 0.000000 2.250000 7.625000 +v -0.176777 2.176777 7.375000 +v -0.250000 2.000000 7.625000 +v -0.176777 1.823223 7.375000 +v 0.000000 1.750000 7.625000 +v 0.176777 1.823223 7.375000 +v 0.250000 2.000000 7.625000 +v 0.176777 2.176777 7.375000 +v 0.000000 2.937500 3.750000 +v -0.468750 2.811899 3.750000 +v -0.811899 2.468750 3.750000 +v -0.937500 2.000000 3.750000 +v -0.811899 1.531250 3.750000 +v -0.468750 1.188101 3.750000 +v -0.000000 1.062500 3.750000 +v 0.468750 1.188101 3.750000 +v 0.811899 1.531250 3.750000 +v 0.937500 2.000000 3.750000 +v 0.811899 2.468750 3.750000 +v 0.468751 2.811899 3.750000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.000000 -1.750000 +v 0.500000 1.000000 -1.750000 +v -0.500000 1.750000 -1.750000 +v -0.500000 1.750000 -0.500000 +v 0.500000 1.750000 -0.500000 +v 0.500000 1.750000 -1.750000 +v -0.500000 2.000000 -1.250000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -1.250000 +v -0.375000 1.000000 -2.125000 +v 0.375000 1.000000 -2.125000 +v -0.375000 1.000000 -2.875000 +v 0.375000 1.000000 -2.875000 +v -0.375000 1.487500 -2.875000 +v -0.375000 1.487500 -2.125000 +v 0.375000 1.487500 -2.125000 +v 0.375000 1.487500 -2.875000 +v -0.375000 1.737500 -2.875000 +v 0.375000 1.737500 -2.875000 +v -0.375000 1.737500 -3.000000 +v 0.375000 1.737500 -3.000000 +v -0.375000 2.487500 -3.000000 +v -0.375000 2.487500 -2.875000 +v 0.375000 2.487500 -2.875000 +v 0.375000 2.487500 -3.000000 +v 0.125000 1.737500 -2.875000 +v 0.250000 1.737500 -2.875000 +v 0.125000 1.737500 -3.000000 +v 0.250000 1.737500 -3.000000 +v 0.125000 0.987500 -3.000000 +v 0.125000 0.987500 -2.875000 +v 0.250000 0.987500 -2.875000 +v 0.250000 0.987500 -3.000000 +v -0.250000 1.737500 -2.875000 +v -0.125000 1.737500 -2.875000 +v -0.250000 1.737500 -3.000000 +v -0.125000 1.737500 -3.000000 +v -0.250000 0.987500 -3.000000 +v -0.250000 0.987500 -2.875000 +v -0.125000 0.987500 -2.875000 +v -0.125000 0.987500 -3.000000 +v 0.500000 1.000000 -0.500000 +v 0.750000 1.000000 -0.500000 +v 0.500000 1.000000 -0.750000 +v 0.750000 1.000000 -0.750000 +v 0.500000 3.500000 -0.500000 +v 0.750000 3.500000 -0.500000 +v 0.500000 3.500000 -0.750000 +v 0.750000 3.500000 -0.750000 +v -0.750000 1.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -0.750000 1.000000 -0.750000 +v -0.500000 1.000000 -0.750000 +v -0.750000 3.500000 -0.500000 +v -0.500000 3.500000 -0.500000 +v -0.750000 3.500000 -0.750000 +v -0.500000 3.500000 -0.750000 +v 0.500000 1.000000 -3.250000 +v 0.750000 1.000000 -3.250000 +v 0.500000 1.000000 -3.500000 +v 0.750000 1.000000 -3.500000 +v 0.500000 3.500000 -3.250000 +v 0.750000 3.500000 -3.250000 +v 0.500000 3.500000 -3.500000 +v 0.750000 3.500000 -3.500000 +v -0.750000 1.000000 -3.250000 +v -0.500000 1.000000 -3.250000 +v -0.750000 1.000000 -3.500000 +v -0.500000 1.000000 -3.500000 +v -0.750000 3.500000 -3.250000 +v -0.500000 3.500000 -3.250000 +v -0.750000 3.500000 -3.500000 +v -0.500000 3.500000 -3.500000 +v -0.750000 3.500000 -0.250000 +v 0.750000 3.500000 -0.250000 +v -0.750000 3.500000 -3.750000 +v 0.750000 3.500000 -3.750000 +v -0.750000 3.750000 -3.750000 +v -0.750000 3.750000 -0.250000 +v 0.750000 3.750000 -0.250000 +v 0.750000 3.750000 -3.750000 +v -0.500000 1.000000 -3.125000 +v 0.500000 1.000000 -3.125000 +v -0.500000 1.000000 -3.875000 +v 0.500000 1.000000 -3.875000 +v -0.500000 1.500000 -3.875000 +v -0.500000 1.500000 -3.125000 +v 0.500000 1.500000 -3.125000 +v 0.500000 1.500000 -3.875000 +v 0.125000 3.875000 -0.625000 +v 0.125000 3.875000 -0.875000 +v -0.125000 3.875000 -0.625000 +v -0.125000 3.875000 -0.875000 +v 0.125000 3.750000 -0.875000 +v -0.125000 3.750000 -0.875000 +v 0.125000 3.750000 -0.625000 +v -0.125000 3.750000 -0.625000 +v -0.750000 0.750000 -3.875000 +v -0.750000 1.000000 -3.625000 +v -0.750000 1.500000 -3.625000 +v -0.750000 1.750000 -3.875000 +v -0.750000 1.000000 -4.625000 +v -0.750000 0.750000 -4.375000 +v -0.750000 1.750000 -4.375000 +v -0.750000 1.500000 -4.625000 +v 0.750000 1.000000 -3.625000 +v 0.750000 0.750000 -3.875000 +v 0.750000 1.750000 -3.875000 +v 0.750000 1.500000 -3.625000 +v 0.750000 0.750000 -4.375000 +v 0.750000 1.000000 -4.625000 +v 0.750000 1.500000 -4.625000 +v 0.750000 1.750000 -4.375000 +v -0.250000 3.812500 -0.687500 +v 0.250000 3.812500 -0.687500 +v -0.250000 4.312500 -0.687500 +v 0.250000 4.312500 -0.687500 +v -0.250000 4.312500 -0.562500 +v -0.250000 3.812500 -0.562500 +v 0.250000 3.812500 -0.562500 +v 0.250000 4.312500 -0.562500 +v -0.125000 4.187500 -0.812500 +v -0.125000 3.937500 -0.812500 +v 0.125000 3.937500 -0.812500 +v 0.125000 4.187500 -0.812500 +v -0.187500 4.250000 -0.562500 +v -0.187500 3.875000 -0.562500 +v 0.187500 3.875000 -0.562500 +v 0.187500 4.250000 -0.562500 +v -0.187500 4.250000 -0.500000 +v -0.187500 3.875000 -0.500000 +v 0.187500 3.875000 -0.500000 +v 0.187500 4.250000 -0.500000 +v 0.375000 1.000000 -3.312500 +v 0.500000 1.000000 -3.312500 +v 0.375000 1.000000 -3.437500 +v 0.500000 1.000000 -3.437500 +v -0.501000 3.500000 -3.312500 +v -0.376000 3.500000 -3.312500 +v -0.501000 3.500000 -3.437500 +v -0.376000 3.500000 -3.437500 +v -0.500000 1.000000 -3.312500 +v -0.375000 1.000000 -3.312500 +v -0.500000 1.000000 -3.437500 +v -0.375000 1.000000 -3.437500 +v 0.374000 3.500000 -3.312500 +v 0.499000 3.500000 -3.312500 +v 0.374000 3.500000 -3.437500 +v 0.499000 3.500000 -3.437500 +v -0.750000 1.250000 -4.250000 +v -0.750000 1.338388 -4.213388 +v -0.750000 1.375000 -4.125000 +v -0.750000 1.338388 -4.036612 +v -0.750000 1.250000 -4.000000 +v -0.750000 1.161612 -4.036612 +v -0.750000 1.125000 -4.125000 +v -0.750000 1.161612 -4.213388 +v -1.000000 1.250000 -4.250000 +v -1.000000 1.338388 -4.213388 +v -1.000000 1.375000 -4.125000 +v -1.000000 1.338388 -4.036612 +v -1.000000 1.250000 -4.000000 +v -1.000000 1.161612 -4.036612 +v -1.000000 1.125000 -4.125000 +v -1.000000 1.161612 -4.213388 +v -1.088388 1.213388 -4.250000 +v -1.150888 1.275888 -4.213388 +v -1.176777 1.301777 -4.125000 +v -1.150888 1.275888 -4.036612 +v -1.088388 1.213388 -4.000000 +v -1.025888 1.150888 -4.036612 +v -1.025888 1.150888 -4.213388 +v -1.125000 1.125000 -4.250000 +v -1.213388 1.125000 -4.213388 +v -1.250000 1.125000 -4.125000 +v -1.213388 1.125000 -4.036612 +v -1.125000 1.125000 -4.000000 +v -1.036612 1.125000 -4.036612 +v -1.036612 1.125000 -4.213388 +v -1.000000 1.000000 -4.125000 +v -1.125000 1.000000 -4.250000 +v -1.213388 1.000000 -4.213388 +v -1.250000 1.000000 -4.125000 +v -1.213388 1.000000 -4.036612 +v -1.125000 1.000000 -4.000000 +v -1.036612 1.000000 -4.036612 +v -1.036612 1.000000 -4.213388 +v -1.000000 0.911612 -4.088388 +v -1.125000 0.823223 -4.176777 +v -1.213388 0.849112 -4.150888 +v -1.250000 0.911612 -4.088388 +v -1.213388 0.974112 -4.025888 +v -1.036612 0.974112 -4.025888 +v -1.036612 0.849112 -4.150888 +v -1.000000 0.875000 -4.000000 +v -1.125000 0.750000 -4.000000 +v -1.213388 0.786612 -4.000000 +v -1.250000 0.875000 -4.000000 +v -1.213388 0.963388 -4.000000 +v -1.036612 0.963388 -4.000000 +v -1.036612 0.786612 -4.000000 +v -1.125000 1.000000 0.500000 +v -1.000000 0.875000 0.500000 +v -1.125000 0.750000 0.500000 +v -1.213388 0.786612 0.500000 +v -1.250000 0.875000 0.500000 +v -1.213388 0.963388 0.500000 +v -1.036612 0.963388 0.500000 +v -1.036612 0.786612 0.500000 +v -1.088388 1.000000 0.588388 +v -1.088388 0.750000 0.588388 +v -1.150888 0.786612 0.650888 +v -1.176777 0.875000 0.676777 +v -1.150888 0.963388 0.650888 +v -1.025888 0.963388 0.525888 +v -1.025888 0.786612 0.525888 +v -1.000000 1.000000 0.625000 +v -1.000000 0.750000 0.625000 +v -1.000000 0.786612 0.713388 +v -1.000000 0.875000 0.750000 +v -1.000000 0.963388 0.713388 +v -1.000000 0.963388 0.536612 +v -1.000000 0.786612 0.536612 +v -0.750000 0.875000 0.500000 +v -0.750000 1.000000 0.625000 +v -0.750000 0.750000 0.625000 +v -0.750000 0.786612 0.713388 +v -0.750000 0.875000 0.750000 +v -0.750000 0.963388 0.713388 +v -0.750000 0.963388 0.536612 +v -0.750000 0.786612 0.536612 +v 1.125000 3.375000 -0.250000 +v 1.125000 3.375000 -3.750000 +v 1.125000 3.625000 -0.250000 +v 1.125000 3.625000 -3.750000 +v -1.125000 3.375000 -3.750000 +v -1.125000 3.375000 -0.250000 +v -1.125000 3.625000 -3.750000 +v -1.125000 3.625000 -0.250000 +v 0.625000 2.500000 2.500000 +v 0.448223 2.500000 2.573223 +v 0.375000 2.500000 2.750000 +v 0.448223 2.500000 2.926777 +v 0.625000 2.500000 3.000000 +v 0.801777 2.500000 2.926777 +v 0.875000 2.500000 2.750000 +v 0.801777 2.500000 2.573223 +v 0.625000 2.500000 1.750000 +v 0.448223 2.500000 1.823223 +v 0.375000 2.500000 2.000000 +v 0.448223 2.500000 2.176777 +v 0.625000 2.500000 2.250000 +v 0.801777 2.500000 2.176777 +v 0.875000 2.500000 2.000000 +v 0.801777 2.500000 1.823223 +v 0.625000 3.000000 2.500000 +v 0.448223 3.000000 2.573223 +v 0.375000 3.000000 2.750000 +v 0.448223 3.000000 2.926777 +v 0.625000 3.000000 3.000000 +v 0.801777 3.000000 2.926777 +v 0.875000 3.000000 2.750000 +v 0.801777 3.000000 2.573223 +v 0.625000 3.000000 1.750000 +v 0.448223 3.000000 1.823223 +v 0.375000 3.000000 2.000000 +v 0.448223 3.000000 2.176777 +v 0.625000 3.000000 2.250000 +v 0.801777 3.000000 2.176777 +v 0.875000 3.000000 2.000000 +v 0.801777 3.000000 1.823223 +v 0.536612 3.125000 2.661612 +v 0.625000 3.125000 2.625000 +v 0.500000 3.125000 2.750000 +v 0.536612 3.125000 2.838388 +v 0.625000 3.125000 2.875000 +v 0.713388 3.125000 2.838388 +v 0.750000 3.125000 2.750000 +v 0.713388 3.125000 2.661612 +v 0.536612 3.125000 1.911612 +v 0.625000 3.125000 1.875000 +v 0.500000 3.125000 2.000000 +v 0.536612 3.125000 2.088388 +v 0.625000 3.125000 2.125000 +v 0.713388 3.125000 2.088388 +v 0.750000 3.125000 2.000000 +v 0.713388 3.125000 1.911612 +vt 0.964670 0.929866 +vt 0.974078 0.932982 +vt 0.966013 0.933222 +vt 0.116235 0.984543 +vt 0.106827 0.981428 +vt 0.114891 0.981188 +vt 0.156962 0.964302 +vt 0.159223 0.974514 +vt 0.156962 0.975209 +vt 0.462708 0.953115 +vt 0.470311 0.972098 +vt 0.451956 0.980603 +vt 0.154207 0.964945 +vt 0.755545 0.794827 +vt 0.751880 0.784538 +vt 0.755565 0.784537 +vt 0.817620 0.267565 +vt 0.821321 0.278052 +vt 0.817636 0.278053 +vt 0.751860 0.711424 +vt 0.755565 0.721885 +vt 0.751880 0.721885 +vt 0.751880 0.701001 +vt 0.755545 0.711424 +vt 0.162261 0.984488 +vt 0.154207 0.975852 +vt 0.751880 0.805410 +vt 0.751860 0.794828 +vt 0.817636 0.257169 +vt 0.821305 0.267565 +vt 0.412886 0.978242 +vt 0.418184 0.961190 +vt 0.430976 0.972687 +vt 0.412778 0.715128 +vt 0.409073 0.704667 +vt 0.412758 0.704667 +vt 0.409093 0.694244 +vt 0.412778 0.694244 +vt 0.433731 0.972043 +vt 0.425678 0.963407 +vt 0.428433 0.962764 +vt 0.406278 0.810175 +vt 0.409983 0.820757 +vt 0.406298 0.820758 +vt 0.409963 0.831153 +vt 0.406294 0.820758 +vt 0.409979 0.820758 +vt 0.433731 0.982950 +vt 0.409983 0.799885 +vt 0.409963 0.810175 +vt 0.409979 0.841641 +vt 0.406278 0.831153 +vt 0.893080 0.866947 +vt 0.896780 0.859229 +vt 0.896765 0.866947 +vt 0.168818 0.983136 +vt 0.169754 0.986705 +vt 0.175053 0.980560 +vt 0.172792 0.970348 +vt 0.175053 0.969653 +vt 0.169754 0.960374 +vt 0.163197 0.961726 +vt 0.162261 0.958157 +vt 0.159223 0.966334 +vt 0.163197 0.981474 +vt 0.172792 0.978528 +vt 0.168818 0.963388 +vt 0.171573 0.982493 +vt 0.161979 0.973871 +vt 0.165953 0.961082 +vt 0.896777 0.906201 +vt 0.893080 0.898336 +vt 0.896765 0.898335 +vt 0.246705 0.859638 +vt 0.243005 0.851792 +vt 0.246690 0.851792 +vt 0.243019 0.843975 +vt 0.246705 0.843975 +vt 0.165953 0.980831 +vt 0.896780 0.874884 +vt 0.893095 0.874884 +vt 0.893092 0.890539 +vt 0.896777 0.890539 +vt 0.161979 0.965691 +vt 0.565196 0.854933 +vt 0.560292 0.847110 +vt 0.563120 0.847190 +vt 0.105483 0.984864 +vt 0.101124 0.975631 +vt 0.097880 0.965881 +vt 0.106827 0.961053 +vt 0.101124 0.967191 +vt 0.123838 0.965107 +vt 0.114891 0.960813 +vt 0.116235 0.957377 +vt 0.120593 0.975050 +vt 0.123838 0.976360 +vt 0.097880 0.977134 +vt 0.105483 0.957698 +vt 0.120593 0.966610 +vt 0.729674 0.974152 +vt 0.729674 0.982591 +vt 0.710205 0.974733 +vt 0.893080 0.874884 +vt 0.889380 0.866947 +vt 0.893065 0.866947 +vt 0.324434 0.896666 +vt 0.328108 0.904462 +vt 0.324423 0.904462 +vt 0.565196 0.839279 +vt 0.562369 0.839199 +vt 0.893080 0.859229 +vt 0.889395 0.859230 +vt 0.328119 0.912328 +vt 0.324434 0.912328 +vt 0.409185 0.851630 +vt 0.412886 0.859476 +vt 0.409200 0.859476 +vt 0.409200 0.843813 +vt 0.412871 0.851630 +vt 0.151452 0.969653 +vt 0.149191 0.978528 +vt 0.149191 0.970348 +vt 0.975422 0.957033 +vt 0.983025 0.976016 +vt 0.964669 0.984520 +vt 0.154207 0.979917 +vt 0.151452 0.980560 +vt 0.563977 0.807733 +vt 0.560312 0.797443 +vt 0.563997 0.797443 +vt 0.669146 0.650553 +vt 0.672847 0.661041 +vt 0.669162 0.661041 +vt 0.409073 0.746436 +vt 0.412778 0.756897 +vt 0.409093 0.756897 +vt 0.409093 0.736013 +vt 0.412758 0.746436 +vt 0.146153 0.960374 +vt 0.154207 0.969010 +vt 0.560312 0.818316 +vt 0.560292 0.807733 +vt 0.669162 0.640158 +vt 0.672831 0.650553 +vt 0.987895 0.337962 +vt 0.982596 0.344107 +vt 0.975103 0.315559 +vt 0.412778 0.694244 +vt 0.409073 0.683783 +vt 0.412758 0.683783 +vt 0.409093 0.673360 +vt 0.412778 0.673360 +vt 0.990650 0.326412 +vt 0.982596 0.317776 +vt 0.985351 0.317133 +vt 0.817620 0.246587 +vt 0.821325 0.257169 +vt 0.817640 0.257169 +vt 0.563977 0.828711 +vt 0.560308 0.818316 +vt 0.563993 0.818316 +vt 0.990650 0.337319 +vt 0.987895 0.327055 +vt 0.821325 0.236296 +vt 0.821305 0.246586 +vt 0.563993 0.839199 +vt 0.560292 0.828711 +vt 0.889395 0.843575 +vt 0.893065 0.851292 +vt 0.889380 0.851292 +vt 0.139597 0.961726 +vt 0.138660 0.958157 +vt 0.133361 0.975209 +vt 0.135623 0.966334 +vt 0.135623 0.974514 +vt 0.138660 0.984488 +vt 0.145217 0.983136 +vt 0.146153 0.986705 +vt 0.145217 0.963388 +vt 0.133361 0.964302 +vt 0.139597 0.981474 +vt 0.136841 0.962369 +vt 0.146436 0.970991 +vt 0.142462 0.983779 +vt 0.246701 0.906618 +vt 0.243005 0.898753 +vt 0.246690 0.898752 +vt 0.246705 0.843975 +vt 0.243005 0.836129 +vt 0.246690 0.836129 +vt 0.243019 0.828312 +vt 0.246705 0.828312 +vt 0.142462 0.964031 +vt 0.893080 0.859229 +vt 0.889395 0.859229 +vt 0.243016 0.890956 +vt 0.246701 0.890956 +vt 0.756764 0.842028 +vt 0.751860 0.834205 +vt 0.754688 0.834284 +vt 0.983025 0.937276 +vt 0.975422 0.929546 +vt 0.983025 0.948528 +vt 0.974078 0.953356 +vt 0.979780 0.947219 +vt 0.957066 0.949303 +vt 0.966013 0.953597 +vt 0.964669 0.957033 +vt 0.957066 0.938050 +vt 0.960311 0.939360 +vt 0.979780 0.938779 +vt 0.975422 0.956712 +vt 0.960311 0.947800 +vt 0.840983 0.975291 +vt 0.854749 0.968913 +vt 0.860452 0.983150 +vt 0.896780 0.859229 +vt 0.893080 0.851292 +vt 0.896765 0.851292 +vt 0.561508 0.886259 +vt 0.565182 0.894056 +vt 0.561496 0.894056 +vt 0.753937 0.826294 +vt 0.756764 0.826373 +vt 0.893095 0.843575 +vt 0.896780 0.843575 +vt 0.565193 0.901922 +vt 0.561508 0.901922 +vt 0.142103 0.829484 +vt 0.145803 0.837330 +vt 0.142118 0.837330 +vt 0.142118 0.821667 +vt 0.145788 0.829484 +vt 0.889441 0.388429 +vt 0.871015 0.410580 +vt 0.871015 0.388430 +vt 0.814488 0.877039 +vt 0.832914 0.788483 +vt 0.832914 0.877037 +vt 0.283727 0.803652 +vt 0.262037 0.789471 +vt 0.284136 0.789488 +vt 0.841473 0.533162 +vt 0.870954 0.415024 +vt 0.870954 0.533163 +vt 0.291281 0.651453 +vt 0.259197 0.742079 +vt 0.261815 0.651431 +vt 0.642122 0.081258 +vt 0.745310 0.199398 +vt 0.642122 0.199396 +vt 0.261815 0.808370 +vt 0.261628 0.803635 +vt 0.281483 0.746831 +vt 0.291281 0.808393 +vt 0.288663 0.742101 +vt 0.673557 0.849500 +vt 0.651456 0.856720 +vt 0.651456 0.849711 +vt 0.680924 0.758312 +vt 0.673557 0.765392 +vt 0.651456 0.758595 +vt 0.669406 0.433451 +vt 0.743070 0.514682 +vt 0.669406 0.514671 +vt 0.743070 0.433462 +vt 0.750186 0.514717 +vt 0.661790 0.433484 +vt 0.501319 0.862125 +vt 0.501319 0.792035 +vt 0.530787 0.784743 +vt 0.254484 0.784731 +vt 0.252614 0.737380 +vt 0.281892 0.732667 +vt 0.387852 0.758143 +vt 0.406278 0.846693 +vt 0.387852 0.846696 +vt 0.899666 0.390799 +vt 0.918092 0.412949 +vt 0.899666 0.412949 +vt 0.784792 0.997004 +vt 0.798931 0.975265 +vt 0.798931 0.997403 +vt 0.661790 0.514704 +vt 0.654423 0.533161 +vt 0.757553 0.533178 +vt 0.750186 0.533176 +vt 0.313312 0.984464 +vt 0.303904 0.981349 +vt 0.311968 0.981109 +vt 0.832563 0.984542 +vt 0.823155 0.981427 +vt 0.831219 0.981186 +vt 0.915578 0.972216 +vt 0.913317 0.981090 +vt 0.913317 0.972910 +vt 0.231573 0.949085 +vt 0.239176 0.968068 +vt 0.220820 0.976572 +vt 0.918333 0.982479 +vt 0.915578 0.983122 +vt 0.563977 0.786860 +vt 0.560312 0.776571 +vt 0.563997 0.776570 +vt 0.669146 0.671437 +vt 0.672847 0.681924 +vt 0.669162 0.681925 +vt 0.751860 0.732308 +vt 0.755565 0.742769 +vt 0.751880 0.742769 +vt 0.751880 0.721885 +vt 0.755545 0.732308 +vt 0.913035 0.962293 +vt 0.918333 0.971573 +vt 0.560312 0.797443 +vt 0.560292 0.786860 +vt 0.669162 0.661041 +vt 0.672831 0.671437 +vt 0.889044 0.984399 +vt 0.883746 0.990544 +vt 0.876252 0.961996 +vt 0.412778 0.736012 +vt 0.409073 0.725552 +vt 0.412758 0.725551 +vt 0.409093 0.715128 +vt 0.412778 0.715128 +vt 0.891799 0.972849 +vt 0.883746 0.964213 +vt 0.886501 0.963569 +vt 0.142103 0.790211 +vt 0.145808 0.800793 +vt 0.142123 0.800794 +vt 0.842211 0.224305 +vt 0.838541 0.213910 +vt 0.842226 0.213909 +vt 0.891799 0.983756 +vt 0.889044 0.973492 +vt 0.145808 0.779921 +vt 0.145788 0.790211 +vt 0.838541 0.234793 +vt 0.838526 0.224305 +vt 0.324437 0.881011 +vt 0.328108 0.888728 +vt 0.324423 0.888729 +vt 0.910280 0.962936 +vt 0.903723 0.964288 +vt 0.902786 0.960720 +vt 0.897488 0.966864 +vt 0.899749 0.977077 +vt 0.897488 0.977771 +vt 0.902786 0.987051 +vt 0.909343 0.985699 +vt 0.910280 0.989267 +vt 0.909343 0.965951 +vt 0.899749 0.968897 +vt 0.903723 0.984036 +vt 0.900968 0.964931 +vt 0.910562 0.973553 +vt 0.906588 0.986342 +vt 0.131059 0.912323 +vt 0.127362 0.904457 +vt 0.131047 0.904457 +vt 0.565196 0.870596 +vt 0.561496 0.862750 +vt 0.565182 0.862750 +vt 0.561511 0.854933 +vt 0.565196 0.854933 +vt 0.906588 0.966594 +vt 0.328123 0.896665 +vt 0.324437 0.896666 +vt 0.127373 0.896660 +vt 0.131059 0.896660 +vt 0.837819 0.869340 +vt 0.832914 0.861517 +vt 0.835742 0.861597 +vt 0.814208 0.977133 +vt 0.821811 0.984863 +vt 0.814208 0.965880 +vt 0.823155 0.961052 +vt 0.817453 0.967190 +vt 0.840166 0.965105 +vt 0.831219 0.960811 +vt 0.832563 0.957375 +vt 0.836921 0.975048 +vt 0.840166 0.976358 +vt 0.817453 0.975629 +vt 0.821811 0.957696 +vt 0.836921 0.966609 +vt 0.748507 0.983944 +vt 0.748507 0.975504 +vt 0.767975 0.983363 +vt 0.131062 0.896660 +vt 0.127362 0.888723 +vt 0.131047 0.888723 +vt 0.703416 0.900457 +vt 0.707089 0.908254 +vt 0.703404 0.908254 +vt 0.834991 0.853606 +vt 0.837819 0.853686 +vt 0.127377 0.881006 +vt 0.131062 0.881005 +vt 0.707101 0.916120 +vt 0.703416 0.916120 +vt 0.561496 0.878413 +vt 0.565196 0.886259 +vt 0.561511 0.886259 +vt 0.561511 0.870596 +vt 0.565182 0.878413 +vt 0.945965 0.971483 +vt 0.943703 0.980358 +vt 0.943703 0.972178 +vt 0.957166 0.373615 +vt 0.957166 0.362362 +vt 0.983125 0.372840 +vt 0.948720 0.981747 +vt 0.945965 0.982390 +vt 0.409963 0.789302 +vt 0.406298 0.779013 +vt 0.409983 0.779012 +vt 0.751860 0.815806 +vt 0.755561 0.826293 +vt 0.751875 0.826294 +vt 0.751860 0.753192 +vt 0.755565 0.763653 +vt 0.751880 0.763653 +vt 0.751880 0.742769 +vt 0.755545 0.753192 +vt 0.940666 0.962204 +vt 0.948720 0.970840 +vt 0.406298 0.799885 +vt 0.406278 0.789302 +vt 0.751875 0.805410 +vt 0.755545 0.815805 +vt 0.968947 0.211996 +vt 0.974245 0.194945 +vt 0.987037 0.206441 +vt 0.755565 0.784537 +vt 0.751860 0.774076 +vt 0.755545 0.774076 +vt 0.751880 0.763653 +vt 0.755565 0.763653 +vt 0.989792 0.205797 +vt 0.981739 0.197161 +vt 0.984494 0.196518 +vt 0.142103 0.811084 +vt 0.145808 0.821666 +vt 0.142123 0.821667 +vt 0.246690 0.817824 +vt 0.243020 0.807429 +vt 0.246705 0.807429 +vt 0.989792 0.216704 +vt 0.145808 0.800794 +vt 0.145788 0.811083 +vt 0.243020 0.828312 +vt 0.243005 0.817824 +vt 0.243019 0.875302 +vt 0.246690 0.883018 +vt 0.243005 0.883019 +vt 0.934109 0.963556 +vt 0.933173 0.959987 +vt 0.927874 0.977039 +vt 0.930135 0.968164 +vt 0.930135 0.976344 +vt 0.933173 0.986318 +vt 0.939729 0.984966 +vt 0.940666 0.988535 +vt 0.939729 0.965218 +vt 0.927874 0.966132 +vt 0.934109 0.983304 +vt 0.931354 0.964199 +vt 0.940948 0.972821 +vt 0.936974 0.985610 +vt 0.781669 0.918250 +vt 0.777972 0.910384 +vt 0.781658 0.910384 +vt 0.602063 0.875303 +vt 0.598363 0.867457 +vt 0.602049 0.867457 +vt 0.598378 0.859640 +vt 0.602063 0.859640 +vt 0.936974 0.965861 +vt 0.246705 0.890955 +vt 0.243019 0.890956 +vt 0.777984 0.902588 +vt 0.781669 0.902588 +vt 0.785854 0.081220 +vt 0.780950 0.073397 +vt 0.783777 0.073477 +vt 0.294957 0.977055 +vt 0.302560 0.984785 +vt 0.294957 0.965802 +vt 0.303904 0.960974 +vt 0.298202 0.967112 +vt 0.320915 0.965028 +vt 0.311968 0.960734 +vt 0.313312 0.957298 +vt 0.320915 0.976281 +vt 0.317670 0.974971 +vt 0.298202 0.975552 +vt 0.302560 0.957619 +vt 0.317670 0.966531 +vt 0.566017 0.975236 +vt 0.579783 0.968857 +vt 0.585486 0.983094 +vt 0.896780 0.890538 +vt 0.893080 0.882602 +vt 0.896765 0.882601 +vt 0.561508 0.901922 +vt 0.565182 0.909718 +vt 0.561496 0.909718 +vt 0.783026 0.065486 +vt 0.785854 0.065566 +vt 0.893095 0.874885 +vt 0.896780 0.874884 +vt 0.565193 0.917584 +vt 0.561508 0.917584 +vt 0.243005 0.867455 +vt 0.246705 0.875301 +vt 0.243019 0.875301 +vt 0.243019 0.859638 +vt 0.246690 0.867455 +vt 0.962328 0.168381 +vt 0.943902 0.190531 +vt 0.943902 0.168381 +vt 0.672850 0.533178 +vt 0.654423 0.621734 +vt 0.654423 0.533180 +vt 0.090326 0.810172 +vt 0.068636 0.795991 +vt 0.090735 0.796008 +vt 0.841473 0.651302 +vt 0.870954 0.533164 +vt 0.870954 0.651303 +vt 0.097880 0.657973 +vt 0.065796 0.748599 +vt 0.068414 0.657951 +vt 0.642122 0.199398 +vt 0.745310 0.317538 +vt 0.642122 0.317536 +vt 0.068414 0.814890 +vt 0.068227 0.810155 +vt 0.088082 0.753351 +vt 0.097880 0.814913 +vt 0.095262 0.748621 +vt 0.644089 0.849500 +vt 0.621987 0.856720 +vt 0.621987 0.849711 +vt 0.651456 0.758312 +vt 0.644088 0.765392 +vt 0.621987 0.758595 +vt 0.654164 0.739885 +vt 0.580500 0.658653 +vt 0.654164 0.658665 +vt 0.580500 0.739873 +vt 0.573383 0.658618 +vt 0.661780 0.739852 +vt 0.501319 0.791682 +vt 0.501319 0.861772 +vt 0.471850 0.869063 +vt 0.061083 0.791251 +vt 0.059213 0.743900 +vt 0.088491 0.739187 +vt 0.889380 0.887828 +vt 0.870954 0.799278 +vt 0.889380 0.799275 +vt 0.673633 0.967035 +vt 0.692059 0.989184 +vt 0.673633 0.989185 +vt 0.325765 0.996349 +vt 0.339904 0.974610 +vt 0.339904 0.996748 +vt 0.661780 0.658632 +vt 0.669146 0.758312 +vt 0.566017 0.758296 +vt 0.566017 0.640158 +vt 0.000136 0.000014 +vt 0.088582 0.118072 +vt 0.000136 0.118085 +vt 0.088582 0.413485 +vt 0.177029 0.000000 +vt 0.177029 0.413483 +vt 0.627394 0.081258 +vt 0.638423 0.149560 +vt 0.623696 0.149171 +vt 0.471824 0.873341 +vt 0.457084 0.784737 +vt 0.471824 0.784737 +vt 0.624752 0.224985 +vt 0.642122 0.414907 +vt 0.029469 0.525549 +vt 0.044203 0.413264 +vt 0.044203 0.805768 +vt 0.000136 0.295193 +vt 0.088582 0.413250 +vt 0.000136 0.413264 +vt 0.088446 0.264661 +vt 0.088582 0.295179 +vt 0.000000 0.146603 +vt 0.000000 0.264674 +vt 0.626338 0.338705 +vt 0.595561 0.243161 +vt 0.029469 0.693765 +vt 0.000000 0.553867 +vt 0.619388 0.849014 +vt 0.605094 0.880278 +vt 0.604655 0.849011 +vt 0.331691 0.869731 +vt 0.349759 0.838197 +vt 0.345683 0.869865 +vt 0.058964 0.818944 +vt 0.044280 0.850210 +vt 0.044223 0.818943 +vt 0.768198 0.031410 +vt 0.787591 0.000000 +vt 0.777652 0.031028 +vt 0.335766 0.900690 +vt 0.349759 0.900824 +vt 0.442365 0.577926 +vt 0.530807 0.577926 +vt 0.530811 0.696065 +vt 0.412886 0.651166 +vt 0.294957 0.415042 +vt 0.412886 0.415023 +vt 0.619826 0.817628 +vt 0.605094 0.817625 +vt 0.778137 0.062999 +vt 0.787591 0.062617 +vt 0.059213 0.624775 +vt 0.059213 0.602103 +vt 0.088667 0.567265 +vt 0.128680 0.570366 +vt 0.164527 0.555144 +vt 0.165498 0.569328 +vt 0.566017 0.415870 +vt 0.606537 0.447023 +vt 0.566017 0.640158 +vt 0.221117 0.651300 +vt 0.250599 0.415023 +vt 0.250599 0.651300 +vt 0.059021 0.787558 +vt 0.044280 0.787558 +vt 0.177029 0.415155 +vt 0.177029 0.651431 +vt 0.294957 0.651428 +vt 0.294957 0.415152 +vt 0.177029 0.564772 +vt 0.164527 0.543809 +vt 0.166673 0.413485 +vt 0.986770 0.176000 +vt 0.972029 0.139084 +vt 0.986770 0.139084 +vt 0.191770 0.993851 +vt 0.177029 0.971700 +vt 0.191770 0.971700 +vt 0.127710 0.556183 +vt 0.127710 0.544848 +vt 0.191770 0.971702 +vt 0.206511 0.993838 +vt 0.191770 0.993841 +vt 0.128680 0.559031 +vt 0.078311 0.415979 +vt 0.972750 0.888042 +vt 0.987491 0.924958 +vt 0.972750 0.924959 +vt 0.766935 0.081220 +vt 0.752194 0.059070 +vt 0.766935 0.059069 +vt 0.991464 0.789133 +vt 0.980153 0.751916 +vt 0.991464 0.752235 +vt 0.473857 0.973494 +vt 0.488598 0.995630 +vt 0.473857 0.995633 +vt 0.654423 0.415023 +vt 0.606537 0.425996 +vt 0.643372 0.446670 +vt 0.643372 0.425643 +vt 0.654423 0.639311 +vt 0.953091 0.805785 +vt 0.974079 0.842889 +vt 0.953091 0.842688 +vt 0.723832 0.341514 +vt 0.699899 0.399398 +vt 0.642122 0.375422 +vt 0.253827 0.385635 +vt 0.297997 0.341280 +vt 0.297997 0.385582 +vt 0.177029 0.385442 +vt 0.209550 0.341282 +vt 0.209550 0.385584 +vt 0.442122 0.057873 +vt 0.486065 0.074394 +vt 0.466891 0.095357 +vt 0.253829 0.179730 +vt 0.297998 0.135044 +vt 0.297998 0.179321 +vt 0.488240 0.530725 +vt 0.533171 0.492408 +vt 0.532770 0.534460 +vt 0.404174 0.032951 +vt 0.461296 0.036909 +vt 0.209551 0.179335 +vt 0.253829 0.135453 +vt 0.444360 0.534460 +vt 0.488642 0.488673 +vt 0.330222 0.341137 +vt 0.330222 0.385439 +vt 0.253827 0.341333 +vt 0.177029 0.178242 +vt 0.209551 0.135058 +vt 0.330222 0.133941 +vt 0.330222 0.178218 +vt 0.215035 0.090456 +vt 0.253778 0.090801 +vt 0.450950 0.453374 +vt 0.489346 0.450106 +vt 0.320622 0.296811 +vt 0.253777 0.296983 +vt 0.177029 0.133965 +vt 0.292426 0.090443 +vt 0.320622 0.089478 +vt 0.292425 0.296936 +vt 0.177029 0.341140 +vt 0.215034 0.296938 +vt 0.495995 0.054605 +vt 0.528309 0.453374 +vt 0.423348 0.011988 +vt 0.474322 0.021806 +vt 0.514272 0.125355 +vt 0.551268 0.110288 +vt 0.553753 0.132145 +vt 0.253676 0.045774 +vt 0.490353 0.415023 +vt 0.301423 0.252461 +vt 0.226003 0.252551 +vt 0.253676 0.252584 +vt 0.205676 0.044844 +vt 0.226003 0.045527 +vt 0.301422 0.044829 +vt 0.281282 0.252550 +vt 0.205677 0.252463 +vt 0.578111 0.100362 +vt 0.591333 0.118248 +vt 0.281282 0.045519 +vt 0.518184 0.417358 +vt 0.541129 0.000000 +vt 0.532977 0.037258 +vt 0.514286 0.009926 +vt 0.523067 0.105438 +vt 0.547770 0.077403 +vt 0.253523 0.000372 +vt 0.569330 0.004850 +vt 0.543714 0.033287 +vt 0.527688 0.068132 +vt 0.536489 0.075463 +vt 0.253524 0.208136 +vt 0.234323 0.000000 +vt 0.242454 0.000273 +vt 0.591333 0.023176 +vt 0.554994 0.035227 +vt 0.264567 0.208123 +vt 0.495995 0.031968 +vt 0.525660 0.046075 +vt 0.558507 0.073432 +vt 0.264566 0.000270 +vt 0.523724 0.057376 +vt 0.966035 0.766820 +vt 0.936572 0.781587 +vt 0.936570 0.766820 +vt 0.703100 0.952165 +vt 0.680255 0.967034 +vt 0.673635 0.952165 +vt 0.213217 0.912249 +vt 0.227959 0.941781 +vt 0.213217 0.941782 +vt 0.703098 0.937397 +vt 0.673633 0.937397 +vt 0.936552 0.759416 +vt 0.966033 0.744649 +vt 0.966034 0.759416 +vt 0.096015 0.889985 +vt 0.084703 0.860147 +vt 0.096015 0.860466 +vt 0.059213 0.882540 +vt 0.068666 0.896917 +vt 0.059213 0.897299 +vt 0.936551 0.744649 +vt 0.958695 0.729848 +vt 0.084703 0.889665 +vt 0.068666 0.882158 +vt 0.242673 0.934318 +vt 0.242673 0.949085 +vt 0.058944 0.786858 +vt 0.044203 0.757324 +vt 0.058944 0.757323 +vt 0.847202 0.020110 +vt 0.869097 0.000000 +vt 0.876682 0.020110 +vt 0.931764 0.109288 +vt 0.917245 0.079726 +vt 0.931764 0.079755 +vt 0.847153 0.034349 +vt 0.876634 0.034349 +vt 0.088849 0.964659 +vt 0.059213 0.950394 +vt 0.088658 0.950394 +vt 0.403216 0.197512 +vt 0.390263 0.167165 +vt 0.403216 0.168564 +vt 0.366754 0.191339 +vt 0.373792 0.203238 +vt 0.366754 0.205813 +vt 0.081462 0.934219 +vt 0.390263 0.196113 +vt 0.373792 0.188764 +vt 0.901451 0.087162 +vt 0.901451 0.072396 +vt 0.739714 0.938818 +vt 0.724972 0.909286 +vt 0.739714 0.909285 +vt 0.029488 0.950347 +vt 0.050963 0.965522 +vt 0.036228 0.965522 +vt 0.177029 0.867980 +vt 0.190411 0.897579 +vt 0.177029 0.897513 +vt 0.058950 0.935582 +vt 0.029480 0.935582 +vt 0.966265 0.722480 +vt 0.936783 0.707712 +vt 0.966265 0.707712 +vt 0.927380 0.921683 +vt 0.913134 0.892037 +vt 0.927380 0.892165 +vt 0.206884 0.890190 +vt 0.213066 0.904813 +vt 0.206884 0.904957 +vt 0.944197 0.692928 +vt 0.958938 0.692928 +vt 0.913134 0.921555 +vt 0.896994 0.914288 +vt 0.955365 0.892305 +vt 0.929738 0.914650 +vt 0.927380 0.892037 +vt 0.000000 0.950810 +vt 0.022693 0.935582 +vt 0.029472 0.950810 +vt 0.710205 0.900457 +vt 0.697413 0.870846 +vt 0.710205 0.870924 +vt 0.000008 0.965574 +vt 0.029480 0.965574 +vt 0.937002 0.029548 +vt 0.966483 0.014780 +vt 0.966484 0.029548 +vt 0.443196 0.922096 +vt 0.428673 0.892493 +vt 0.443196 0.892578 +vt 0.680958 0.878219 +vt 0.673633 0.863590 +vt 0.680958 0.863452 +vt 0.944417 0.000000 +vt 0.959158 0.000000 +vt 0.428673 0.922011 +vt 0.412886 0.914791 +vt 0.986770 0.139084 +vt 0.998081 0.168921 +vt 0.986770 0.168602 +vt 0.943731 0.929546 +vt 0.929738 0.929412 +vt 0.966038 0.781587 +vt 0.943691 0.796388 +vt 0.955365 0.921828 +vt 0.943731 0.914784 +vt 0.710205 0.916591 +vt 0.710205 0.901824 +vt 0.971888 0.139084 +vt 0.944043 0.153845 +vt 0.943902 0.139084 +vt 0.379655 0.911290 +vt 0.358059 0.933373 +vt 0.350190 0.911290 +vt 0.840983 0.902484 +vt 0.855723 0.932019 +vt 0.840983 0.932019 +vt 0.636525 0.965810 +vt 0.651260 0.993705 +vt 0.636525 0.993846 +vt 0.380361 0.910450 +vt 0.364922 0.891463 +vt 0.379655 0.891508 +vt 0.365628 0.868803 +vt 0.380361 0.868847 +vt 0.372794 0.948140 +vt 0.358061 0.948140 +vt 0.365628 0.910405 +vt 0.350190 0.901819 +vt 0.350542 0.890489 +vt 0.870543 0.924610 +vt 0.870543 0.939377 +vt 0.879290 0.207889 +vt 0.895312 0.226384 +vt 0.880585 0.226800 +vt 0.814194 0.947579 +vt 0.799454 0.918044 +vt 0.814194 0.918044 +vt 0.500029 0.947445 +vt 0.522075 0.925361 +vt 0.529511 0.947445 +vt 0.879290 0.185217 +vt 0.894017 0.207473 +vt 0.507334 0.910594 +vt 0.522075 0.910594 +vt 0.972029 0.153844 +vt 0.953497 0.168381 +vt 0.894017 0.184802 +vt 0.909068 0.194782 +vt 0.784792 0.925401 +vt 0.784792 0.910633 +vt 0.938537 0.445694 +vt 0.951270 0.474960 +vt 0.938537 0.475212 +vt 0.566017 0.926567 +vt 0.588511 0.902648 +vt 0.595482 0.926567 +vt 0.409860 0.917707 +vt 0.395118 0.947240 +vt 0.395118 0.917707 +vt 0.566269 0.939322 +vt 0.595734 0.939322 +vt 0.967717 0.593972 +vt 0.954984 0.564470 +vt 0.967717 0.564437 +vt 0.571270 0.859640 +vt 0.593110 0.876307 +vt 0.566017 0.870919 +vt 0.584817 0.899954 +vt 0.595874 0.893504 +vt 0.598363 0.902648 +vt 0.954984 0.594005 +vt 0.938537 0.571858 +vt 0.582328 0.890810 +vt 0.380361 0.925172 +vt 0.380361 0.910405 +vt 0.953489 0.849231 +vt 0.924040 0.861987 +vt 0.924007 0.849231 +vt 0.748507 0.902588 +vt 0.763248 0.932121 +vt 0.748507 0.932121 +vt 0.953522 0.861987 +vt 0.931359 0.885905 +vt 0.983025 0.959112 +vt 0.995091 0.989749 +vt 0.983025 0.986783 +vt 0.969804 0.328751 +vt 0.956007 0.317896 +vt 0.969804 0.315559 +vt 0.951270 0.445442 +vt 0.967716 0.467544 +vt 0.943918 0.319448 +vt 0.956007 0.331088 +vt 0.943918 0.345832 +vt 0.777972 0.924820 +vt 0.777972 0.939586 +vt 0.621987 0.935434 +vt 0.634971 0.965669 +vt 0.621987 0.963470 +vt 0.929861 0.576163 +vt 0.916328 0.601859 +vt 0.902162 0.580169 +vt 0.936570 0.774219 +vt 0.921830 0.803754 +vt 0.921830 0.774220 +vt 0.930178 0.562975 +vt 0.902479 0.566981 +vt 0.132867 0.881005 +vt 0.111630 0.862785 +vt 0.125418 0.863581 +vt 0.118931 0.838991 +vt 0.132719 0.839787 +vt 0.749851 0.848667 +vt 0.737119 0.863678 +vt 0.737119 0.848919 +vt 0.119080 0.880209 +vt 0.097880 0.872293 +vt 0.101530 0.860396 +vt 0.907008 0.781587 +vt 0.907008 0.766820 +vt 0.604655 0.835846 +vt 0.583418 0.817625 +vt 0.597206 0.818422 +vt 0.444353 0.945749 +vt 0.459093 0.916214 +vt 0.459093 0.945749 +vt 0.590867 0.835050 +vt 0.566017 0.839031 +vt 0.597354 0.859640 +vt 0.858414 0.240277 +vt 0.871146 0.225477 +vt 0.871146 0.240244 +vt 0.634971 0.937633 +vt 0.651445 0.958813 +vt 0.583566 0.858844 +vt 0.569741 0.847743 +vt 0.473752 0.938348 +vt 0.473752 0.953115 +vt 0.982458 0.554962 +vt 0.994994 0.580555 +vt 0.982458 0.582998 +vt 0.294957 0.920393 +vt 0.316994 0.893834 +vt 0.324423 0.920393 +vt 0.206565 0.941814 +vt 0.191825 0.912279 +vt 0.206565 0.912280 +vt 0.981225 0.002443 +vt 0.993761 0.028036 +vt 0.981224 0.030479 +vt 0.877837 0.562975 +vt 0.885056 0.580631 +vt 0.870954 0.580631 +vt 0.876087 0.604307 +vt 0.890189 0.604307 +vt 0.302509 0.881011 +vt 0.317242 0.881011 +vt 0.994718 0.680733 +vt 0.981006 0.658623 +vt 0.994718 0.651199 +vt 0.902162 0.582136 +vt 0.177029 0.919724 +vt 0.177029 0.904957 +vt 0.493898 0.886996 +vt 0.485939 0.869662 +vt 0.500029 0.869063 +vt 0.560238 0.946457 +vt 0.545497 0.916922 +vt 0.560238 0.916923 +vt 0.127362 0.881006 +vt 0.105258 0.907565 +vt 0.097880 0.881005 +vt 0.500029 0.910433 +vt 0.479809 0.887595 +vt 0.119967 0.920387 +vt 0.105226 0.920387 +vt 0.456298 0.873331 +vt 0.442586 0.851502 +vt 0.456298 0.843813 +vt 0.485939 0.911031 +vt 0.471850 0.901288 +vt 0.530811 0.924243 +vt 0.530811 0.909476 +vt 0.995825 0.959112 +vt 0.983025 0.929546 +vt 0.995825 0.929578 +vt 0.471824 0.878696 +vt 0.445870 0.900743 +vt 0.444353 0.873341 +vt 0.936551 0.737285 +vt 0.921811 0.766820 +vt 0.921811 0.737286 +vt 0.982683 0.463525 +vt 0.995483 0.493092 +vt 0.982683 0.493060 +vt 0.979111 0.438491 +vt 0.966311 0.408725 +vt 0.979111 0.408973 +vt 0.994942 0.353858 +vt 0.983125 0.384683 +vt 0.983125 0.356429 +vt 0.459605 0.916214 +vt 0.445870 0.913537 +vt 0.966311 0.438242 +vt 0.957166 0.415639 +vt 0.471824 0.904284 +vt 0.459605 0.903420 +vt 0.907008 0.744615 +vt 0.907008 0.729848 +vt 0.995463 0.534502 +vt 0.982663 0.504736 +vt 0.995463 0.504984 +vt 0.953091 0.842645 +vt 0.938350 0.813112 +vt 0.953091 0.813111 +vt 0.770345 0.277132 +vt 0.745310 0.295722 +vt 0.752720 0.270236 +vt 0.782162 0.302814 +vt 0.782162 0.274560 +vt 0.754122 0.313297 +vt 0.745310 0.309849 +vt 0.692059 0.967034 +vt 0.706082 0.990789 +vt 0.692059 0.995070 +vt 0.770345 0.305386 +vt 0.754122 0.299170 +vt 0.923672 0.820552 +vt 0.923672 0.805785 +vt 0.901255 0.640872 +vt 0.878767 0.614761 +vt 0.893448 0.614761 +vt 0.901255 0.633840 +vt 0.915759 0.604334 +vt 0.915759 0.633867 +vt 0.870954 0.651303 +vt 0.900317 0.651303 +vt 0.621987 0.935434 +vt 0.611526 0.966055 +vt 0.611525 0.936762 +vt 0.876682 0.005171 +vt 0.890599 0.033451 +vt 0.876682 0.031129 +vt 0.892512 0.604307 +vt 0.877830 0.604307 +vt 0.595871 0.944745 +vt 0.890599 0.007493 +vt 0.906946 0.012979 +vt 0.931580 0.626437 +vt 0.931580 0.641204 +vt 0.899666 0.279928 +vt 0.922730 0.254730 +vt 0.928880 0.279928 +vt 0.899687 0.488906 +vt 0.914180 0.518457 +vt 0.899687 0.518440 +vt 0.980258 0.694228 +vt 0.994144 0.721429 +vt 0.980258 0.722729 +vt 0.500072 0.887605 +vt 0.514770 0.869063 +vt 0.514813 0.887605 +vt 0.500037 0.910594 +vt 0.514778 0.910594 +vt 0.907614 0.240457 +vt 0.922221 0.240457 +vt 0.999072 0.139084 +vt 0.988145 0.119393 +vt 0.999072 0.109991 +vt 0.529535 0.888717 +vt 0.930020 0.511045 +vt 0.930020 0.525812 +vt 0.412886 0.961190 +vt 0.437982 0.943782 +vt 0.441973 0.961190 +vt 0.931740 0.072394 +vt 0.917194 0.042861 +vt 0.931740 0.042860 +vt 0.870954 0.876316 +vt 0.853941 0.859053 +vt 0.868637 0.858345 +vt 0.248196 0.934532 +vt 0.275447 0.948711 +vt 0.247076 0.948711 +vt 0.856258 0.900420 +vt 0.856258 0.877024 +vt 0.424080 0.929550 +vt 0.438624 0.929550 +vt 0.269158 0.964953 +vt 0.254972 0.964953 +vt 0.840983 0.890786 +vt 0.901451 0.050242 +vt 0.901451 0.035474 +vt 0.187961 0.823449 +vt 0.182523 0.854643 +vt 0.177029 0.848759 +vt 0.931743 0.153554 +vt 0.917200 0.183076 +vt 0.917200 0.153542 +vt 0.433731 0.961190 +vt 0.444326 0.991963 +vt 0.433731 0.990366 +vt 0.987491 0.918587 +vt 0.998036 0.888042 +vt 0.998036 0.917370 +vt 0.212628 0.859527 +vt 0.198949 0.835216 +vt 0.212628 0.832853 +vt 0.968947 0.179035 +vt 0.979248 0.194945 +vt 0.968947 0.193699 +vt 0.989907 0.878189 +vt 0.974286 0.855435 +vt 0.989907 0.849231 +vt 0.198949 0.861890 +vt 0.901451 0.160950 +vt 0.901451 0.146183 +vt 0.339469 0.167165 +vt 0.337437 0.192658 +vt 0.330222 0.190941 +vt 0.931752 0.146183 +vt 0.917219 0.116626 +vt 0.931752 0.116649 +vt 0.000000 0.965574 +vt 0.014291 0.995301 +vt 0.000000 0.995020 +vt 0.943918 0.256276 +vt 0.958186 0.226617 +vt 0.958186 0.256128 +vt 0.366754 0.169635 +vt 0.353900 0.199870 +vt 0.353900 0.170599 +vt 0.337437 0.207293 +vt 0.330222 0.205576 +vt 0.970599 0.248318 +vt 0.901451 0.124055 +vt 0.901451 0.109288 +vt 0.847153 0.020023 +vt 0.824336 0.000000 +vt 0.839064 0.000000 +vt 0.929981 0.353829 +vt 0.915466 0.324325 +vt 0.929981 0.324296 +vt 0.817537 0.034281 +vt 0.846995 0.034281 +vt 0.927676 0.959987 +vt 0.956770 0.945704 +vt 0.957066 0.959987 +vt 0.595250 0.971053 +vt 0.585486 0.997805 +vt 0.585486 0.968857 +vt 0.933670 0.672428 +vt 0.946588 0.685293 +vt 0.933670 0.686841 +vt 0.934995 0.929546 +vt 0.949690 0.929546 +vt 0.960148 0.680129 +vt 0.946588 0.670879 +vt 0.960148 0.651303 +vt 0.899666 0.331655 +vt 0.899666 0.316889 +vt 0.681135 0.852911 +vt 0.699251 0.824487 +vt 0.710205 0.849462 +vt 0.929990 0.451963 +vt 0.915460 0.422455 +vt 0.929990 0.422430 +vt 0.710205 0.860004 +vt 0.500029 0.913006 +vt 0.489530 0.943800 +vt 0.489529 0.914630 +vt 0.621813 0.996470 +vt 0.610397 0.966055 +vt 0.621813 0.970512 +vt 0.696793 0.814291 +vt 0.684716 0.826212 +vt 0.682258 0.816015 +vt 0.473857 0.937308 +vt 0.473857 0.922722 +vt 0.176344 0.903313 +vt 0.161925 0.892503 +vt 0.176344 0.880881 +vt 0.899687 0.429790 +vt 0.899687 0.415023 +vt 0.132867 0.880881 +vt 0.152167 0.906960 +vt 0.137638 0.906324 +vt 0.929980 0.533211 +vt 0.915439 0.562760 +vt 0.915439 0.533226 +vt 0.344230 0.920166 +vt 0.335545 0.901112 +vt 0.349759 0.900824 +vt 0.380361 0.976039 +vt 0.394707 0.947240 +vt 0.394707 0.974827 +vt 0.349759 0.942478 +vt 0.330017 0.920455 +vt 0.152167 0.921241 +vt 0.137638 0.920606 +vt 0.407360 0.964151 +vt 0.161925 0.910716 +vt 0.161925 0.882153 +vt 0.899687 0.540579 +vt 0.899687 0.525812 +vt 0.896994 0.960720 +vt 0.921599 0.943285 +vt 0.926210 0.960720 +vt 0.899687 0.451988 +vt 0.914175 0.481525 +vt 0.899687 0.481523 +vt 0.595871 0.966055 +vt 0.610397 0.994624 +vt 0.595871 0.993749 +vt 0.872419 0.206186 +vt 0.865373 0.225087 +vt 0.858501 0.205806 +vt 0.879290 0.183826 +vt 0.865373 0.183446 +vt 0.907515 0.929047 +vt 0.922123 0.929047 +vt 0.844584 0.215836 +vt 0.898043 0.932245 +vt 0.906990 0.943285 +vt 0.930024 0.474138 +vt 0.930024 0.488906 +vt 0.924007 0.892037 +vt 0.911531 0.859852 +vt 0.924007 0.864637 +vt 0.930000 0.390785 +vt 0.915509 0.361264 +vt 0.930000 0.361251 +vt 0.997467 0.256207 +vt 0.986911 0.225605 +vt 0.997467 0.226909 +vt 1.000000 0.408725 +vt 0.989493 0.439062 +vt 0.989493 0.409644 +vt 0.986308 0.051236 +vt 0.997283 0.073676 +vt 0.986308 0.077909 +vt 0.980677 0.300850 +vt 0.970338 0.314625 +vt 0.970338 0.299915 +vt 0.813486 0.996727 +vt 0.798931 0.975123 +vt 0.813486 0.974866 +vt 0.896994 0.861225 +vt 0.899055 0.882466 +vt 0.899666 0.368625 +vt 0.899666 0.353858 +vt 0.907805 0.689730 +vt 0.933670 0.667101 +vt 0.933669 0.692928 +vt 0.899666 0.279953 +vt 0.914167 0.309462 +vt 0.899666 0.309487 +vt 0.014291 0.965574 +vt 0.028564 0.995253 +vt 0.014291 0.995074 +vt 0.970527 0.256276 +vt 0.956278 0.285850 +vt 0.956278 0.256317 +vt 0.860452 0.970406 +vt 0.870063 0.998184 +vt 0.860452 0.999677 +vt 0.920339 0.651303 +vt 0.933271 0.652902 +vt 0.943918 0.263818 +vt 0.907008 0.661332 +vt 0.920737 0.665502 +vt 0.929993 0.302122 +vt 0.929993 0.316889 +vt 0.444697 0.167165 +vt 0.450662 0.190055 +vt 0.439941 0.189763 +vt 0.029814 0.935515 +vt 0.016477 0.906049 +vt 0.029814 0.905982 +vt 0.088695 0.994193 +vt 0.073954 0.964659 +vt 0.088695 0.964659 +vt 0.938537 0.504731 +vt 0.953278 0.475217 +vt 0.953278 0.504736 +vt 0.476257 0.167440 +vt 0.466140 0.197272 +vt 0.466140 0.167750 +vt 0.450662 0.204817 +vt 0.439941 0.204524 +vt 0.967944 0.482843 +vt 0.967944 0.497602 +vt 0.000000 0.913428 +vt 0.000000 0.898662 +vt 0.958707 0.641151 +vt 0.944179 0.619074 +vt 0.957742 0.619074 +vt 0.703404 0.937397 +vt 0.690111 0.907840 +vt 0.703404 0.907863 +vt 0.636525 0.994083 +vt 0.621987 0.966335 +vt 0.636525 0.965669 +vt 0.160425 0.860561 +vt 0.154052 0.880743 +vt 0.146643 0.860422 +vt 0.154026 0.838991 +vt 0.167808 0.839130 +vt 0.944207 0.604307 +vt 0.957771 0.604307 +vt 0.132867 0.870721 +vt 0.931638 0.611617 +vt 0.931580 0.641151 +vt 0.673633 0.915225 +vt 0.673633 0.900457 +vt 0.840983 0.920532 +vt 0.814684 0.942608 +vt 0.814208 0.920532 +vt 0.089108 0.934197 +vt 0.075682 0.904684 +vt 0.089108 0.904663 +vt 0.885044 0.907726 +vt 0.877080 0.888041 +vt 0.891171 0.887831 +vt 0.966687 0.564437 +vt 0.939027 0.549763 +vt 0.967177 0.549763 +vt 0.877080 0.929761 +vt 0.870954 0.907936 +vt 0.828040 0.957375 +vt 0.814653 0.957375 +vt 0.958453 0.534262 +vt 0.840920 0.950066 +vt 0.828071 0.942608 +vt 0.059213 0.912066 +vt 0.059213 0.897299 +vt 0.412886 0.858026 +vt 0.438575 0.881201 +vt 0.424468 0.882796 +vt 0.651792 0.905901 +vt 0.638464 0.935370 +vt 0.638464 0.905837 +vt 0.442586 0.843813 +vt 0.414373 0.847003 +vt 0.943902 0.139084 +vt 0.954794 0.107922 +vt 0.954794 0.136057 +vt 0.787591 0.008959 +vt 0.802291 0.035439 +vt 0.787591 0.034917 +vt 0.442586 0.890898 +vt 0.428479 0.892493 +vt 0.970652 0.113588 +vt 0.970652 0.127656 +vt 0.802291 0.009481 +vt 0.817537 0.012979 +vt 0.621987 0.913224 +vt 0.621987 0.898457 +vt 0.000000 0.864289 +vt 0.025565 0.887597 +vt 0.011562 0.889071 +vt 0.276940 0.934470 +vt 0.263548 0.904999 +vt 0.276940 0.904936 +vt 0.029806 0.850210 +vt 0.001801 0.853157 +vt 0.943902 0.078131 +vt 0.954890 0.047002 +vt 0.954890 0.074875 +vt 0.557918 0.946457 +vt 0.530811 0.960977 +vt 0.535682 0.949097 +vt 0.015803 0.898662 +vt 0.029806 0.897188 +vt 0.970791 0.066471 +vt 0.553047 0.958337 +vt 0.546800 0.975213 +vt 0.247076 0.912377 +vt 0.247076 0.897610 +vt 0.309717 0.870324 +vt 0.331691 0.853742 +vt 0.331691 0.881011 +vt 0.936783 0.700281 +vt 0.923486 0.729848 +vt 0.923486 0.700313 +vt 0.339180 0.793760 +vt 0.350162 0.824891 +vt 0.339180 0.821921 +vt 0.997234 0.106597 +vt 0.986375 0.080794 +vt 0.997234 0.078131 +vt 0.294957 0.858747 +vt 0.300252 0.879418 +vt 0.939970 0.430992 +vt 0.930000 0.442325 +vt 0.930000 0.428092 +vt 0.993944 0.722729 +vt 0.980258 0.737457 +vt 0.980258 0.724613 +vt 0.304422 0.849653 +vt 0.320704 0.848398 +vt 0.907008 0.707695 +vt 0.907008 0.692928 +vt 0.771071 0.902452 +vt 0.748507 0.880372 +vt 0.754601 0.880304 +vt 0.784493 0.872949 +vt 0.771071 0.872918 +vt 0.996081 0.287373 +vt 0.985003 0.256276 +vt 0.996081 0.259472 +vt 0.996357 0.604307 +vt 0.985403 0.635442 +vt 0.985403 0.607208 +vt 0.937001 0.031808 +vt 0.910411 0.015747 +vt 0.937001 0.017127 +vt 0.899307 0.391649 +vt 0.889441 0.402546 +vt 0.889441 0.388429 +vt 0.970791 0.076536 +vt 0.986308 0.054442 +vt 0.986308 0.069209 +vt 0.920242 0.000690 +vt 0.754601 0.865537 +vt 0.414230 0.204192 +vt 0.439941 0.182245 +vt 0.433827 0.204829 +vt 0.324145 0.957218 +vt 0.311405 0.927765 +vt 0.324145 0.927685 +vt 0.261817 0.994488 +vt 0.247076 0.964953 +vt 0.261817 0.964953 +vt 0.938537 0.504736 +vt 0.953277 0.534262 +vt 0.938537 0.534256 +vt 0.403216 0.174953 +vt 0.403216 0.204476 +vt 0.430142 0.167165 +vt 0.439941 0.167483 +vt 0.967922 0.512362 +vt 0.967922 0.527122 +vt 0.414229 0.174670 +vt 0.430142 0.181926 +vt 0.294957 0.935159 +vt 0.294957 0.920393 +vt 0.840983 0.920532 +vt 0.827897 0.889864 +vt 0.840983 0.893109 +vt 0.127034 0.957377 +vt 0.114323 0.927780 +vt 0.127034 0.927843 +vt 0.984461 0.828146 +vt 0.996365 0.798421 +vt 0.996365 0.827948 +vt 0.972750 0.929546 +vt 0.955365 0.912110 +vt 0.969975 0.912440 +vt 0.958140 0.888042 +vt 0.972750 0.888372 +vt 0.827735 0.877039 +vt 0.840821 0.880285 +vt 0.743954 0.994906 +vt 0.729674 0.978602 +vt 0.743954 0.968354 +vt 0.814488 0.888393 +vt 0.814811 0.914041 +vt 0.097880 0.935154 +vt 0.097880 0.920387 +vt 0.897839 0.842822 +vt 0.923672 0.821805 +vt 0.923672 0.849231 +vt 0.059213 0.934147 +vt 0.046392 0.904675 +vt 0.059213 0.904613 +vt 0.595545 0.201701 +vt 0.585686 0.182139 +vt 0.595545 0.176447 +vt 0.651792 0.922954 +vt 0.671798 0.899294 +vt 0.665940 0.923791 +vt 0.657650 0.939368 +vt 0.671798 0.940204 +vt 0.910333 0.805785 +vt 0.923249 0.808990 +vt 0.782331 0.995300 +vt 0.767975 0.979427 +vt 0.782331 0.969126 +vt 0.896994 0.817191 +vt 0.910755 0.818600 +vt 0.029933 0.912065 +vt 0.029933 0.897299 +vt 0.636192 0.872830 +vt 0.656307 0.883402 +vt 0.636192 0.898457 +vt 0.161991 0.958140 +vt 0.149307 0.928622 +vt 0.161991 0.928605 +vt 0.621987 0.870868 +vt 0.621987 0.896495 +vt 0.325765 0.942767 +vt 0.334862 0.974211 +vt 0.325765 0.968525 +vt 0.644073 0.858683 +vt 0.956432 0.224254 +vt 0.967965 0.213133 +vt 0.968947 0.226617 +vt 0.334862 0.948453 +vt 0.349759 0.971227 +vt 0.968947 0.199671 +vt 0.955451 0.210770 +vt 0.943918 0.194945 +vt 0.132867 0.936009 +vt 0.132867 0.921241 +vt 0.733896 0.901766 +vt 0.710205 0.879642 +vt 0.717434 0.879613 +vt 0.746743 0.901782 +vt 0.733896 0.872231 +vt 0.746743 0.872248 +vt 0.670998 0.872701 +vt 0.658028 0.856980 +vt 0.672719 0.856720 +vt 0.205740 0.942199 +vt 0.193400 0.971315 +vt 0.193400 0.941814 +vt 0.658028 0.897793 +vt 0.656307 0.872960 +vt 0.883426 0.959434 +vt 0.894865 0.948690 +vt 0.895899 0.961996 +vt 0.177029 0.949098 +vt 0.895899 0.934885 +vt 0.882392 0.946128 +vt 0.870954 0.929761 +vt 0.717434 0.864846 +vt 0.983418 0.139084 +vt 0.984832 0.128363 +vt 0.988145 0.138893 +vt 0.850168 0.403043 +vt 0.860611 0.410567 +vt 0.850168 0.410423 +vt 0.817687 0.229288 +vt 0.827921 0.234935 +vt 0.817620 0.236296 +vt 0.752194 0.066472 +vt 0.741750 0.059069 +vt 0.752194 0.059088 +vt 0.731347 0.066472 +vt 0.731346 0.059089 +vt 0.983418 0.118211 +vt 0.988145 0.118021 +vt 0.871015 0.403040 +vt 0.871015 0.410419 +vt 0.838526 0.229288 +vt 0.838459 0.236296 +vt 0.530811 0.985673 +vt 0.545690 0.975213 +vt 0.545690 0.996097 +vt 0.670640 0.637997 +vt 0.654423 0.637997 +vt 0.667488 0.621734 +vt 0.545690 0.985674 +vt 0.560450 0.975213 +vt 0.560450 0.996097 +vt 0.406278 0.769051 +vt 0.412418 0.758140 +vt 0.412418 0.779012 +vt 0.387852 0.867580 +vt 0.408699 0.846696 +vt 0.408699 0.867579 +vt 0.281282 0.207867 +vt 0.253676 0.208123 +vt 0.488881 0.569214 +vt 0.387178 0.073855 +vt 0.455655 0.167165 +vt 0.429472 0.137861 +vt 0.471844 0.135361 +vt 0.461455 0.571549 +vt 0.361579 0.070305 +vt 0.363216 0.027271 +vt 0.226003 0.414991 +vt 0.426376 0.112859 +vt 0.441784 0.577926 +vt 0.412886 0.544664 +vt 0.340958 0.079731 +vt 0.330222 0.042353 +vt 0.566017 0.544664 +vt 0.516712 0.571549 +vt 0.410895 0.089431 +vt 0.373133 0.163615 +vt 0.333936 0.124611 +vt 0.650297 0.073795 +vt 0.591333 0.000009 +vt 0.650297 0.000000 +vt 0.723977 0.059069 +vt 0.709235 0.000000 +vt 0.723975 0.000000 +vt 0.726928 0.317538 +vt 0.767994 0.364559 +vt 0.723832 0.362775 +vt 0.768199 0.059069 +vt 0.768196 0.000000 +vt 0.767994 0.411947 +vt 0.723832 0.410163 +vt 0.709235 0.070090 +vt 0.665032 0.000423 +vt 0.709235 0.000000 +vt 0.555026 0.132145 +vt 0.496062 0.176448 +vt 0.496062 0.132146 +vt 0.782715 0.384109 +vt 0.782715 0.412542 +vt 0.665032 0.070513 +vt 0.650297 0.028601 +vt 0.495995 0.205917 +vt 0.555026 0.176447 +vt 0.554959 0.205916 +vt 0.247083 0.852695 +vt 0.291274 0.808393 +vt 0.291281 0.852695 +vt 0.294957 0.838063 +vt 0.339180 0.793760 +vt 0.339180 0.838062 +vt 0.214276 0.807429 +vt 0.241946 0.841506 +vt 0.213217 0.841419 +vt 0.029806 0.850210 +vt 0.058550 0.894513 +vt 0.029806 0.894512 +vt 0.243004 0.869919 +vt 0.214276 0.869832 +vt 0.213217 0.870194 +vt 0.241950 0.911973 +vt 0.213217 0.912248 +vt 0.175201 0.836580 +vt 0.167835 0.880880 +vt 0.167835 0.836579 +vt 0.593056 0.176447 +vt 0.585686 0.132145 +vt 0.593056 0.132145 +vt 0.063939 0.814913 +vt 0.059213 0.859381 +vt 0.059213 0.815104 +vt 0.787591 0.079722 +vt 0.794587 0.035506 +vt 0.794587 0.079789 +vt 0.097873 0.815870 +vt 0.063939 0.859190 +vt 0.044223 0.805909 +vt 0.000000 0.850210 +vt 0.000000 0.805911 +vt 0.979735 0.842889 +vt 0.974079 0.798452 +vt 0.979735 0.798612 +vt 0.840285 0.832783 +vt 0.832914 0.788483 +vt 0.840285 0.788483 +vt 0.983837 0.408725 +vt 0.989493 0.453161 +vt 0.983837 0.453002 +vt 0.889380 0.799275 +vt 0.896750 0.843574 +vt 0.889380 0.843575 +vt 0.979111 0.408916 +vt 0.979111 0.453193 +vt 0.096104 0.941649 +vt 0.089108 0.897299 +vt 0.096104 0.897366 +vt 0.984461 0.842698 +vt 0.984462 0.798421 +vt 0.739714 0.901824 +vt 0.746710 0.946175 +vt 0.739714 0.946108 +vt 0.872718 0.146229 +vt 0.880089 0.168381 +vt 0.865348 0.168380 +vt 0.802360 0.120640 +vt 0.809592 0.137493 +vt 0.794862 0.137793 +vt 0.883001 0.651622 +vt 0.871690 0.798893 +vt 0.871690 0.651303 +vt 0.885695 0.415023 +vt 0.870954 0.562690 +vt 0.870954 0.415024 +vt 0.862237 0.799275 +vt 0.862237 0.651685 +vt 0.901451 0.035608 +vt 0.887459 0.183087 +vt 0.887459 0.035474 +vt 0.850168 0.388110 +vt 0.861479 0.240839 +vt 0.861479 0.388429 +vt 0.751860 0.701001 +vt 0.737119 0.848667 +vt 0.737119 0.701002 +vt 0.870932 0.240457 +vt 0.870932 0.388047 +vt 0.899687 0.415157 +vt 0.885695 0.562636 +vt 0.885695 0.415023 +vt 0.484970 0.414874 +vt 0.573416 0.208131 +vt 0.573416 0.414873 +vt 0.440746 0.414756 +vt 0.352300 0.208145 +vt 0.440746 0.208131 +vt 0.841473 0.798956 +vt 0.852784 0.651685 +vt 0.852784 0.799275 +vt 0.044203 0.757323 +vt 0.058944 0.609657 +vt 0.058944 0.757323 +vt 0.862237 0.651303 +vt 0.862237 0.798893 +vt 0.899666 0.240591 +vt 0.885673 0.388070 +vt 0.885673 0.240457 +vt 0.865348 0.035793 +vt 0.854037 0.183064 +vt 0.854037 0.035474 +vt 0.885673 0.240457 +vt 0.870932 0.388123 +vt 0.870932 0.240457 +vt 0.844584 0.183446 +vt 0.844584 0.035856 +vt 0.883001 0.798915 +vt 0.896994 0.651437 +vt 0.896994 0.799049 +vt 0.802890 0.052627 +vt 0.817089 0.120339 +vt 0.872718 0.057625 +vt 0.887459 0.146230 +vt 0.412886 0.843806 +vt 0.457084 0.784744 +vt 0.457084 0.843813 +vt 0.097880 0.779921 +vt 0.142103 0.838991 +vt 0.097880 0.838990 +vt 0.556220 0.132197 +vt 0.584492 0.177472 +vt 0.555026 0.177524 +vt 0.841473 0.799275 +vt 0.870954 0.858345 +vt 0.841473 0.858344 +vt 0.585686 0.205880 +vt 0.556220 0.205932 +vt 0.814261 0.910351 +vt 0.784792 0.868579 +vt 0.814261 0.868297 +vt 0.560292 0.776571 +vt 0.530811 0.865174 +vt 0.530811 0.776570 +vt 0.350190 0.679023 +vt 0.364911 0.651185 +vt 0.409073 0.662447 +vt 0.656865 0.414165 +vt 0.671596 0.399398 +vt 0.671598 0.414165 +vt 0.457174 0.784669 +vt 0.427691 0.696065 +vt 0.457173 0.696066 +vt 0.607994 0.817625 +vt 0.566017 0.802462 +vt 0.580009 0.758312 +vt 0.360266 0.756950 +vt 0.394352 0.690285 +vt 0.389707 0.758140 +vt 0.486083 0.784739 +vt 0.471850 0.696065 +vt 0.486083 0.696135 +vt 0.471850 0.784737 +vt 0.515549 0.696140 +vt 0.530781 0.784678 +vt 0.515549 0.784743 +vt 0.427691 0.784669 +vt 0.412886 0.696132 +vt 0.642122 0.414165 +vt 0.656863 0.399398 +vt 0.656863 0.414165 +vt 0.720798 0.414165 +vt 0.713428 0.399398 +vt 0.720798 0.399398 +vt 0.757218 0.862685 +vt 0.749851 0.848738 +vt 0.757218 0.848667 +vt 0.832914 0.844113 +vt 0.840633 0.853606 +vt 0.833267 0.853584 +vt 0.833267 0.832783 +vt 0.840281 0.844135 +vt 0.036818 0.995056 +vt 0.029480 0.972871 +vt 0.036818 0.965522 +vt 0.870464 0.968913 +vt 0.840983 0.939377 +vt 0.870464 0.939378 +vt 0.044189 0.995056 +vt 0.051555 0.995057 +vt 0.044189 0.965522 +vt 0.051555 0.965523 +vt 0.965611 0.286041 +vt 0.970338 0.315368 +vt 0.965611 0.315559 +vt 0.979915 0.226617 +vt 0.986911 0.256207 +vt 0.979915 0.256139 +vt 0.943918 0.293133 +vt 0.955229 0.308211 +vt 0.943918 0.307892 +vt 0.058672 0.987709 +vt 0.955229 0.293452 +vt 0.970599 0.234133 +vt 0.731346 0.059069 +vt 0.709235 0.081220 +vt 0.709235 0.059070 +vt 0.591333 0.073804 +vt 0.595018 0.095955 +vt 0.591333 0.095955 +vt 0.595016 0.118106 +vt 0.591333 0.095955 +vt 0.595016 0.095955 +vt 0.593056 0.132240 +vt 0.595420 0.154283 +vt 0.593056 0.154379 +vt 0.409073 0.651185 +vt 0.412571 0.673360 +vt 0.409073 0.673327 +vt 0.677465 0.688132 +vt 0.672850 0.533178 +vt 0.677465 0.534214 +vt 0.943902 0.194945 +vt 0.936956 0.047002 +vt 0.943902 0.047845 +vt 0.682889 0.535830 +vt 0.936956 0.351416 +vt 0.930000 0.197387 +vt 0.936956 0.194945 +vt 0.902495 0.652723 +vt 0.907008 0.803039 +vt 0.902495 0.804460 +vt 0.943918 0.344853 +vt 0.936956 0.195637 +vt 0.943918 0.194945 +vt 0.896994 0.654048 +vt 0.896994 0.805785 +vt 0.938537 0.447879 +vt 0.931580 0.601871 +vt 0.931580 0.445442 +vt 0.817620 0.269935 +vt 0.802890 0.270236 +vt 0.462892 0.208166 +vt 0.484970 0.208133 +vt 0.352300 0.414770 +vt 0.330222 0.208398 +vt 0.880089 0.035475 +vt 0.887459 0.057626 +vt 0.058938 0.609516 +vt 0.044203 0.413405 +vt 0.058938 0.413264 +vt 0.595561 0.414905 +vt 0.462892 0.415003 +vt 0.810388 0.035474 +vt 0.817620 0.052327 +vt 0.805264 0.964065 +vt 0.801275 0.968061 +vt 0.795634 0.954418 +vt 0.366586 0.968588 +vt 0.356956 0.964592 +vt 0.360944 0.954945 +vt 0.444353 0.961620 +vt 0.451956 0.953436 +vt 0.470311 0.960845 +vt 0.462708 0.980282 +vt 0.444353 0.972873 +vt 0.755565 0.701001 +vt 0.159506 0.985131 +vt 0.755565 0.805410 +vt 0.821321 0.257169 +vt 0.425678 0.989738 +vt 0.418184 0.987521 +vt 0.412886 0.967335 +vt 0.430976 0.983593 +vt 0.409093 0.715128 +vt 0.406298 0.799886 +vt 0.406294 0.841641 +vt 0.893095 0.859230 +vt 0.171573 0.962745 +vt 0.175547 0.969704 +vt 0.175547 0.977884 +vt 0.893092 0.906201 +vt 0.243019 0.859638 +vt 0.562369 0.854853 +vt 0.723971 0.988729 +vt 0.715907 0.988970 +vt 0.710205 0.983172 +vt 0.715907 0.968595 +vt 0.723971 0.968354 +vt 0.889395 0.874884 +vt 0.328119 0.896666 +vt 0.412886 0.843813 +vt 0.957066 0.965538 +vt 0.964669 0.957354 +vt 0.983025 0.964763 +vt 0.975422 0.984200 +vt 0.957066 0.976790 +vt 0.412778 0.736013 +vt 0.148908 0.959731 +vt 0.563997 0.818315 +vt 0.672847 0.640158 +vt 0.975103 0.341890 +vt 0.969804 0.332611 +vt 0.969804 0.321704 +vt 0.409093 0.694244 +vt 0.817640 0.236297 +vt 0.560307 0.839199 +vt 0.893080 0.843575 +vt 0.136841 0.982117 +vt 0.132868 0.975157 +vt 0.132867 0.966977 +vt 0.146436 0.979171 +vt 0.243016 0.906618 +vt 0.243019 0.843975 +vt 0.753937 0.841948 +vt 0.854749 0.989288 +vt 0.846685 0.989529 +vt 0.840983 0.983731 +vt 0.846685 0.969154 +vt 0.860452 0.974710 +vt 0.893095 0.859229 +vt 0.565193 0.886259 +vt 0.145803 0.821667 +vt 0.889441 0.410579 +vt 0.814488 0.788486 +vt 0.841473 0.415023 +vt 0.745310 0.081260 +vt 0.259384 0.746814 +vt 0.680924 0.856438 +vt 0.651456 0.765603 +vt 0.750186 0.433497 +vt 0.508686 0.784955 +vt 0.530787 0.868851 +vt 0.508686 0.869063 +vt 0.259793 0.732650 +vt 0.406278 0.758140 +vt 0.918092 0.390799 +vt 0.784792 0.974866 +vt 0.661790 0.533163 +vt 0.654423 0.415023 +vt 0.661790 0.415025 +vt 0.757553 0.415040 +vt 0.750186 0.415038 +vt 0.213217 0.957590 +vt 0.220820 0.949406 +vt 0.239176 0.956815 +vt 0.231573 0.976252 +vt 0.213217 0.968842 +vt 0.755565 0.721885 +vt 0.563997 0.797442 +vt 0.672847 0.661041 +vt 0.876252 0.988327 +vt 0.870954 0.979047 +vt 0.870954 0.968141 +vt 0.409093 0.736013 +vt 0.142123 0.779921 +vt 0.842226 0.234792 +vt 0.328123 0.881011 +vt 0.900968 0.984680 +vt 0.896994 0.977720 +vt 0.896994 0.969540 +vt 0.910562 0.981733 +vt 0.127373 0.912323 +vt 0.561511 0.870596 +vt 0.834991 0.869261 +vt 0.754209 0.969366 +vt 0.762273 0.969126 +vt 0.767975 0.974923 +vt 0.762273 0.989500 +vt 0.754209 0.989741 +vt 0.127377 0.896660 +vt 0.707101 0.900457 +vt 0.565196 0.870596 +vt 0.964769 0.354179 +vt 0.975522 0.353858 +vt 0.983125 0.361588 +vt 0.975522 0.381024 +vt 0.964769 0.381345 +vt 0.755565 0.742769 +vt 0.943421 0.961561 +vt 0.409983 0.799884 +vt 0.755561 0.805410 +vt 0.981739 0.223492 +vt 0.974245 0.221275 +vt 0.968947 0.201089 +vt 0.987037 0.217347 +vt 0.751880 0.784537 +vt 0.142123 0.800794 +vt 0.246705 0.828312 +vt 0.246705 0.875301 +vt 0.931354 0.983947 +vt 0.927380 0.976988 +vt 0.927380 0.968808 +vt 0.940948 0.981001 +vt 0.777984 0.918250 +vt 0.598378 0.875303 +vt 0.783026 0.081141 +vt 0.579783 0.989232 +vt 0.571719 0.989473 +vt 0.566017 0.983675 +vt 0.571719 0.969098 +vt 0.585486 0.974655 +vt 0.893095 0.890539 +vt 0.565193 0.901922 +vt 0.246705 0.859638 +vt 0.962328 0.190531 +vt 0.672850 0.621731 +vt 0.841473 0.533163 +vt 0.745310 0.199400 +vt 0.065983 0.753334 +vt 0.651456 0.856438 +vt 0.621987 0.765603 +vt 0.573383 0.739838 +vt 0.493951 0.868851 +vt 0.471850 0.784955 +vt 0.493951 0.784743 +vt 0.066392 0.739170 +vt 0.870954 0.887831 +vt 0.692059 0.967034 +vt 0.325765 0.974211 +vt 0.661780 0.640173 +vt 0.669146 0.640174 +vt 0.661780 0.758311 +vt 0.573383 0.640159 +vt 0.573383 0.758297 +vt 0.088582 0.000000 +vt 0.088582 0.000002 +vt 0.642122 0.081647 +vt 0.457084 0.873341 +vt 0.627394 0.414518 +vt 0.029469 0.805909 +vt 0.029469 0.413405 +vt 0.088446 0.146589 +vt 0.596618 0.318974 +vt 0.000000 0.666011 +vt 0.619826 0.880280 +vt 0.335766 0.838063 +vt 0.059021 0.850210 +vt 0.778137 0.000382 +vt 0.442369 0.696065 +vt 0.412887 0.651763 +vt 0.412886 0.622228 +vt 0.294957 0.651185 +vt 0.177029 0.655457 +vt 0.088667 0.657951 +vt 0.221117 0.415024 +vt 0.165498 0.557992 +vt 0.972029 0.176001 +vt 0.177029 0.993851 +vt 0.206511 0.971700 +vt 0.987491 0.888042 +vt 0.752194 0.081220 +vt 0.980153 0.788814 +vt 0.488598 0.973492 +vt 0.974079 0.805986 +vt 0.642122 0.341514 +vt 0.666055 0.317538 +vt 0.699900 0.317538 +vt 0.723832 0.375422 +vt 0.666054 0.399398 +vt 0.444761 0.492408 +vt 0.186578 0.089499 +vt 0.186578 0.296814 +vt 0.441118 0.000000 +vt 0.462927 0.417358 +vt 0.501064 0.087112 +vt 0.242455 0.208123 +vt 0.563795 0.042558 +vt 0.567759 0.053314 +vt 0.565823 0.064615 +vt 0.694987 0.967034 +vt 0.227959 0.912248 +vt 0.943954 0.729848 +vt 0.044203 0.786858 +vt 0.854357 0.000000 +vt 0.917245 0.109259 +vt 0.059404 0.964659 +vt 0.066739 0.934219 +vt 0.724972 0.938819 +vt 0.058958 0.950347 +vt 0.190411 0.868046 +vt 0.936783 0.722480 +vt 0.213066 0.890047 +vt 0.896994 0.929047 +vt 0.007957 0.935582 +vt 0.697413 0.900379 +vt 0.937001 0.014780 +vt 0.673633 0.878356 +vt 0.412886 0.929550 +vt 0.998081 0.139403 +vt 0.958424 0.796388 +vt 0.372791 0.933373 +vt 0.855723 0.902485 +vt 0.651260 0.965669 +vt 0.350542 0.911290 +vt 0.799454 0.947578 +vt 0.507334 0.925361 +vt 0.967490 0.168381 +vt 0.909068 0.183446 +vt 0.573778 0.902648 +vt 0.409860 0.947240 +vt 0.598363 0.865028 +vt 0.938537 0.586626 +vt 0.763248 0.902588 +vt 0.946100 0.885905 +vt 0.995091 0.962078 +vt 0.967716 0.452785 +vt 0.930178 0.599855 +vt 0.936570 0.803754 +vt 0.749851 0.863426 +vt 0.101604 0.881005 +vt 0.444353 0.916214 +vt 0.858414 0.225510 +vt 0.651445 0.944795 +vt 0.566091 0.859640 +vt 0.994994 0.552519 +vt 0.302261 0.893834 +vt 0.191825 0.941813 +vt 0.993761 0.000000 +vt 0.891939 0.562975 +vt 0.981006 0.673390 +vt 0.899595 0.570298 +vt 0.545497 0.946456 +vt 0.119999 0.907565 +vt 0.442586 0.866261 +vt 0.474915 0.913006 +vt 0.983025 0.959080 +vt 0.936551 0.766819 +vt 0.995483 0.463557 +vt 0.994942 0.382112 +vt 0.957166 0.430398 +vt 0.982663 0.534254 +vt 0.938350 0.842646 +vt 0.706082 0.976771 +vt 0.871892 0.640872 +vt 0.901255 0.604307 +vt 0.621987 0.964727 +vt 0.595871 0.959391 +vt 0.906946 0.000000 +vt 0.908122 0.254730 +vt 0.914180 0.488922 +vt 0.994144 0.692928 +vt 0.500029 0.869063 +vt 0.988145 0.133940 +vt 0.529552 0.877222 +vt 0.423439 0.943782 +vt 0.917194 0.072396 +vt 0.276568 0.934532 +vt 0.870954 0.899711 +vt 0.840983 0.902484 +vt 0.931743 0.183089 +vt 0.444326 0.962787 +vt 0.987491 0.889258 +vt 0.979248 0.180280 +vt 0.974286 0.869913 +vt 0.182523 0.867980 +vt 0.917219 0.146159 +vt 0.014291 0.965855 +vt 0.943918 0.226765 +vt 0.366754 0.198906 +vt 0.970599 0.233562 +vt 0.817696 0.020023 +vt 0.915466 0.353858 +vt 0.927380 0.945704 +vt 0.595250 1.000000 +vt 0.915460 0.451988 +vt 0.681135 0.863452 +vt 0.500029 0.942176 +vt 0.610397 0.992013 +vt 0.161925 0.903718 +vt 0.929980 0.562745 +vt 0.380361 0.948453 +vt 0.335545 0.942767 +vt 0.407360 0.950358 +vt 0.914175 0.451990 +vt 0.610397 0.966930 +vt 0.879290 0.225467 +vt 0.848020 0.225477 +vt 0.915509 0.390799 +vt 0.986911 0.254902 +vt 1.000000 0.438143 +vt 0.997283 0.047002 +vt 0.980677 0.315559 +vt 0.798931 0.986053 +vt 0.910500 0.849231 +vt 0.914167 0.279928 +vt 0.028564 0.965753 +vt 0.970527 0.285809 +vt 0.870063 0.968913 +vt 0.943918 0.278585 +vt 0.016477 0.935582 +vt 0.073954 0.994193 +vt 0.938537 0.475212 +vt 0.476257 0.196963 +vt 0.690112 0.937375 +vt 0.621987 0.994749 +vt 0.167835 0.880881 +vt 0.136572 0.880881 +vt 0.075682 0.934219 +vt 0.938537 0.564437 +vt 0.891171 0.929551 +vt 0.944378 0.534262 +vt 0.441099 0.854836 +vt 0.651792 0.935434 +vt 0.943902 0.110949 +vt 0.817537 0.000000 +vt 0.028005 0.861342 +vt 0.263548 0.934532 +vt 0.943902 0.050258 +vt 0.970791 0.052535 +vt 0.557918 0.973893 +vt 0.936783 0.729816 +vt 0.350162 0.796730 +vt 0.986375 0.109260 +vt 0.939970 0.445225 +vt 0.993944 0.748418 +vt 0.318056 0.838063 +vt 0.758881 0.902588 +vt 0.784493 0.902483 +vt 0.985003 0.284177 +vt 0.996357 0.632541 +vt 0.910411 0.030427 +vt 0.899307 0.405766 +vt 0.970791 0.047002 +vt 0.906946 0.000000 +vt 0.311405 0.957298 +vt 0.247076 0.994488 +vt 0.953277 0.504742 +vt 0.114323 0.957314 +vt 0.984461 0.798619 +vt 0.958140 0.929215 +vt 0.729674 0.991878 +vt 0.046392 0.934208 +vt 0.585686 0.207393 +vt 0.657650 0.898457 +vt 0.767975 0.992514 +vt 0.656307 0.870589 +vt 0.149307 0.958157 +vt 0.629868 0.856720 +vt 0.349759 0.958349 +vt 0.719437 0.901824 +vt 0.205740 0.971700 +vt 0.672719 0.897533 +vt 0.177029 0.963849 +vt 0.970652 0.128936 +vt 0.860611 0.388429 +vt 0.828122 0.213909 +vt 0.741750 0.081220 +vt 0.387852 0.846697 +vt 0.419353 0.157739 +vt 0.253676 0.415023 +vt 0.537491 0.577926 +vt 0.330840 0.099609 +vt 0.398732 0.167165 +vt 0.349416 0.148039 +vt 0.591333 0.073804 +vt 0.709237 0.059069 +vt 0.771091 0.319322 +vt 0.650297 0.070654 +vt 0.247076 0.808393 +vt 0.294957 0.793761 +vt 0.243004 0.807515 +vt 0.058550 0.850212 +vt 0.241950 0.869919 +vt 0.175201 0.880881 +vt 0.585686 0.176447 +vt 0.787591 0.035439 +vt 0.097873 0.860147 +vt 0.044223 0.850209 +vt 0.974079 0.842729 +vt 0.832914 0.832783 +vt 0.989493 0.408884 +vt 0.896750 0.799275 +vt 0.089108 0.941582 +vt 0.746710 0.901891 +vt 0.883001 0.799212 +vt 0.885695 0.562689 +vt 0.901451 0.183221 +vt 0.850168 0.240520 +vt 0.751860 0.848667 +vt 0.899687 0.562770 +vt 0.841473 0.651365 +vt 0.044203 0.609658 +vt 0.899666 0.388204 +vt 0.865348 0.183384 +vt 0.885673 0.388123 +vt 0.883001 0.651303 +vt 0.412886 0.784737 +vt 0.142103 0.779922 +vt 0.585686 0.132145 +vt 0.870954 0.799276 +vt 0.784792 0.910633 +vt 0.560292 0.865175 +vt 0.409073 0.681402 +vt 0.364911 0.689095 +vt 0.350190 0.660068 +vt 0.394352 0.652374 +vt 0.656863 0.399398 +vt 0.607994 0.758580 +vt 0.621987 0.773476 +vt 0.621987 0.802998 +vt 0.580009 0.817357 +vt 0.566017 0.772940 +vt 0.471850 0.784669 +vt 0.471850 0.696133 +vt 0.530781 0.696074 +vt 0.412886 0.784736 +vt 0.642122 0.399398 +vt 0.713428 0.414165 +vt 0.749851 0.862756 +vt 0.840633 0.832805 +vt 0.029480 0.987639 +vt 0.840983 0.968912 +vt 0.044189 0.965522 +vt 0.044189 0.995056 +vt 0.970338 0.285850 +vt 0.986911 0.226684 +vt 0.058672 0.972942 +vt 0.970599 0.248894 +vt 0.731346 0.081219 +vt 0.595018 0.073804 +vt 0.591333 0.118106 +vt 0.595420 0.132145 +vt 0.412571 0.651218 +vt 0.672850 0.687095 +vt 0.936956 0.194102 +vt 0.682889 0.689748 +vt 0.930000 0.353858 +vt 0.907008 0.651303 +vt 0.936956 0.345546 +vt 0.938537 0.604307 +vt 0.462892 0.414907 +vt 0.330222 0.415023 +vt 0.865348 0.035474 +vt 0.044203 0.609657 +vt 0.595561 0.208163 +vt 0.462892 0.208378 +vt 0.795658 0.035774 +vt 0.795634 0.968061 +vt 0.791645 0.964065 +vt 0.791645 0.958414 +vt 0.801275 0.954418 +vt 0.805264 0.958414 +vt 0.366586 0.954945 +vt 0.370574 0.958941 +vt 0.370574 0.964592 +vt 0.360944 0.968588 +vt 0.356956 0.958941 +vt 0.840460 0.788483 +vt 0.826298 0.781930 +vt 0.840969 0.783363 +vt 0.978146 0.445442 +vt 0.972911 0.460217 +vt 0.972911 0.445450 +vt 0.173362 0.668339 +vt 0.158158 0.664634 +vt 0.172823 0.663137 +vt 0.338345 0.792162 +vt 0.344324 0.782451 +vt 0.343550 0.793760 +vt 0.349529 0.781273 +vt 0.348755 0.792582 +vt 0.826801 0.776663 +vt 0.841473 0.778096 +vt 0.967723 0.460209 +vt 0.967723 0.445442 +vt 0.157640 0.659449 +vt 0.172305 0.657951 +vt 0.349996 0.772078 +vt 0.821320 0.779273 +vt 0.825343 0.775885 +vt 0.149163 0.664025 +vt 0.817292 0.782513 +vt 0.158697 0.669837 +vt 0.153192 0.667315 +vt 0.339587 0.771658 +vt 0.344872 0.771678 +vt 0.819678 0.773869 +vt 0.156769 0.672208 +vt 0.151573 0.672729 +vt 0.345098 0.761664 +vt 0.350190 0.763531 +vt 0.824862 0.774302 +vt 0.146399 0.673267 +vt 0.967716 0.461741 +vt 0.747134 0.533279 +vt 0.752390 0.535160 +vt 0.747115 0.534531 +vt 0.978146 0.460209 +vt 0.978139 0.461741 +vt 0.757553 0.533178 +vt 0.757534 0.534430 +vt 0.168015 0.834331 +vt 0.339780 0.763110 +vt 0.345098 0.657410 +vt 0.752409 0.689358 +vt 0.350190 0.659277 +vt 0.747134 0.688729 +vt 0.840613 0.612722 +vt 0.162841 0.834869 +vt 0.814488 0.773289 +vt 0.835429 0.612290 +vt 0.757553 0.688628 +vt 0.750252 0.694335 +vt 0.342943 0.653972 +vt 0.346509 0.653408 +vt 0.841473 0.603731 +vt 0.746502 0.690187 +vt 0.830239 0.611709 +vt 0.836436 0.601755 +vt 0.339149 0.657849 +vt 0.166620 0.956640 +vt 0.171330 0.947403 +vt 0.171898 0.957875 +vt 0.337738 0.652374 +vt 0.744978 0.700715 +vt 0.745043 0.696439 +vt 0.164284 0.953107 +vt 0.166135 0.947701 +vt 0.177029 0.956088 +vt 0.176544 0.947150 +vt 0.744976 0.690803 +vt 0.173211 0.833810 +vt 0.173362 0.835329 +vt 0.744818 0.687109 +vt 0.162993 0.836388 +vt 0.337351 0.662768 +vt 0.337625 0.657381 +vt 0.308183 0.656192 +vt 0.308296 0.651185 +vt 0.715574 0.696725 +vt 0.715508 0.691089 +vt 0.715349 0.687395 +vt 0.164000 0.947870 +vt 0.164578 0.918209 +vt 0.169773 0.917911 +vt 0.174987 0.917658 +vt 0.875804 0.170534 +vt 0.881058 0.172658 +vt 0.875837 0.174185 +vt 0.171654 0.912583 +vt 0.175538 0.916097 +vt 0.710205 0.688125 +vt 0.167788 0.909114 +vt 0.297660 0.654077 +vt 0.307909 0.661578 +vt 0.299105 0.658660 +vt 0.886260 0.174204 +vt 0.881058 0.183080 +vt 0.300162 0.666935 +vt 0.294957 0.665337 +vt 0.875837 0.183081 +vt 0.176744 0.910148 +vt 0.177029 0.915384 +vt 0.306078 0.664612 +vt 0.302591 0.663024 +vt 0.176478 0.904957 +vt 0.783388 0.865537 +vt 0.769284 0.858858 +vt 0.783942 0.860422 +vt 0.947432 0.045847 +vt 0.952666 0.031071 +vt 0.952666 0.045839 +vt 0.737119 0.711378 +vt 0.721879 0.707823 +vt 0.736529 0.706181 +vt 0.811383 0.410943 +vt 0.817362 0.401232 +vt 0.816588 0.412542 +vt 0.822566 0.400055 +vt 0.821792 0.411364 +vt 0.769835 0.853595 +vt 0.784493 0.855160 +vt 0.957854 0.031079 +vt 0.957855 0.045847 +vt 0.721310 0.702643 +vt 0.735960 0.701001 +vt 0.823033 0.390860 +vt 0.764331 0.856155 +vt 0.768384 0.852803 +vt 0.712878 0.707303 +vt 0.760273 0.859359 +vt 0.722469 0.713020 +vt 0.716940 0.710553 +vt 0.812157 0.399634 +vt 0.817909 0.390460 +vt 0.762737 0.850737 +vt 0.720564 0.715410 +vt 0.715374 0.715982 +vt 0.812624 0.390439 +vt 0.818136 0.380446 +vt 0.823227 0.382312 +vt 0.767917 0.851217 +vt 0.710205 0.716571 +vt 0.957861 0.029548 +vt 0.252614 0.805169 +vt 0.247083 0.804418 +vt 0.252374 0.803940 +vt 0.947431 0.031079 +vt 0.947438 0.029548 +vt 0.242442 0.807429 +vt 0.242201 0.806199 +vt 0.731762 0.862739 +vt 0.812818 0.381892 +vt 0.818136 0.285669 +vt 0.218099 0.667278 +vt 0.823227 0.287536 +vt 0.223390 0.666800 +vt 0.783553 0.704461 +vt 0.726594 0.863328 +vt 0.757553 0.850110 +vt 0.778373 0.703981 +vt 0.213217 0.669059 +vt 0.219181 0.661961 +vt 0.815980 0.282232 +vt 0.819547 0.281667 +vt 0.779474 0.693456 +vt 0.784493 0.695477 +vt 0.223707 0.665243 +vt 0.773188 0.703354 +vt 0.812186 0.286108 +vt 0.975988 0.115372 +vt 0.980419 0.105997 +vt 0.981301 0.116447 +vt 0.810662 0.285640 +vt 0.810775 0.280633 +vt 0.223022 0.654626 +vt 0.223842 0.658823 +vt 0.973548 0.111910 +vt 0.975235 0.106452 +vt 0.986375 0.114507 +vt 0.985623 0.105587 +vt 0.225072 0.664324 +vt 0.736952 0.862167 +vt 0.737119 0.863684 +vt 0.225991 0.667905 +vt 0.726760 0.864846 +vt 0.810388 0.291027 +vt 0.795941 0.285046 +vt 0.796055 0.280039 +vt 0.237408 0.651431 +vt 0.252614 0.652433 +vt 0.240376 0.664709 +vt 0.973107 0.106685 +vt 0.974015 0.091736 +vt 0.979199 0.091281 +vt 0.984403 0.090871 +vt 0.239458 0.661128 +vt 0.865348 0.170534 +vt 0.870602 0.172658 +vt 0.865381 0.174185 +vt 0.980919 0.085899 +vt 0.984906 0.089295 +vt 0.245258 0.662928 +vt 0.976951 0.082548 +vt 0.785419 0.282930 +vt 0.795667 0.290432 +vt 0.786863 0.287514 +vt 0.875804 0.174204 +vt 0.870602 0.183080 +vt 0.790349 0.291878 +vt 0.782715 0.294191 +vt 0.865381 0.183081 +vt 0.986375 0.088537 +vt 0.793125 0.294612 +vt 0.787920 0.295789 +vt 0.985513 0.078131 +vt 0.985934 0.083312 +vt 0.826279 0.421580 +vt 0.840462 0.415023 +vt 0.840951 0.420145 +vt 0.942197 0.031083 +vt 0.947431 0.045842 +vt 0.942197 0.045850 +vt 0.829399 0.207229 +vt 0.844584 0.203521 +vt 0.844065 0.208726 +vt 0.344482 0.837758 +vt 0.339180 0.825185 +vt 0.344482 0.826422 +vt 0.349594 0.836226 +vt 0.349594 0.824891 +vt 0.826801 0.426845 +vt 0.841473 0.425410 +vt 0.937008 0.031075 +vt 0.937008 0.045842 +vt 0.828862 0.212413 +vt 0.843527 0.213909 +vt 0.783034 0.263412 +vt 0.790275 0.270235 +vt 0.784746 0.269487 +vt 0.821301 0.424238 +vt 0.820385 0.207837 +vt 0.817293 0.420996 +vt 0.825791 0.416458 +vt 0.824433 0.204549 +vt 0.829919 0.202025 +vt 0.788270 0.263118 +vt 0.794862 0.266989 +vt 0.819658 0.429642 +vt 0.827990 0.199654 +vt 0.828464 0.201239 +vt 0.785554 0.252179 +vt 0.793151 0.260914 +vt 0.824862 0.429206 +vt 0.825343 0.427624 +vt 0.822814 0.199135 +vt 0.937001 0.029548 +vt 0.830116 0.199848 +vt 0.947431 0.031075 +vt 0.947425 0.029548 +vt 0.827052 0.429170 +vt 0.839251 0.037532 +vt 0.750148 0.102116 +vt 0.790833 0.251576 +vt 0.101901 0.758239 +vt 0.136907 0.657951 +vt 0.140928 0.661594 +vt 0.745310 0.104011 +vt 0.780716 0.254074 +vt 0.107372 0.758897 +vt 0.146399 0.662251 +vt 0.840581 0.590789 +vt 0.834057 0.036992 +vt 0.817620 0.198596 +vt 0.835377 0.591224 +vt 0.814488 0.430221 +vt 0.102612 0.762236 +vt 0.097880 0.754596 +vt 0.751105 0.096775 +vt 0.841473 0.599778 +vt 0.107580 0.760067 +vt 0.836422 0.601755 +vt 0.830207 0.591804 +vt 0.755706 0.099949 +vt 0.755426 0.101513 +vt 0.675544 0.700236 +vt 0.670318 0.691257 +vt 0.675536 0.689748 +vt 0.755692 0.093528 +vt 0.682885 0.694918 +vt 0.680748 0.700216 +vt 0.680742 0.691264 +vt 0.754774 0.089352 +vt 0.746944 0.094894 +vt 0.106839 0.765673 +vt 0.844427 0.038051 +vt 0.844584 0.036532 +vt 0.111088 0.756183 +vt 0.108818 0.761074 +vt 0.834214 0.035474 +vt 0.757050 0.098998 +vt 0.758052 0.102557 +vt 0.785664 0.091933 +vt 0.682868 0.729695 +vt 0.682889 0.700162 +vt 0.135666 0.773237 +vt 0.783388 0.082286 +vt 0.675523 0.729769 +vt 0.670325 0.700209 +vt 0.794862 0.085258 +vt 0.784306 0.086463 +vt 0.680727 0.729749 +vt 0.677678 0.734991 +vt 0.141957 0.771990 +vt 0.137936 0.768347 +vt 0.673983 0.738657 +vt 0.670304 0.729742 +vt 0.794674 0.090904 +vt 0.786666 0.095491 +vt 0.655499 0.070654 +vt 0.650297 0.081116 +vt 0.650297 0.072186 +vt 0.146399 0.779921 +vt 0.146031 0.772248 +vt 0.660721 0.081097 +vt 0.660721 0.072167 +vt 0.681359 0.731279 +vt 0.682889 0.737157 +vt 0.142172 0.776484 +vt 0.136844 0.774304 +vt 0.682877 0.742355 +vt 0.834940 0.247140 +vt 0.849064 0.240457 +vt 0.849598 0.245574 +vt 0.945165 0.429627 +vt 0.950400 0.444387 +vt 0.945165 0.444394 +vt 0.799041 0.861478 +vt 0.814261 0.857920 +vt 0.813691 0.863119 +vt 0.876448 0.240277 +vt 0.871146 0.227703 +vt 0.876448 0.228941 +vt 0.881560 0.238745 +vt 0.881560 0.227410 +vt 0.835510 0.252401 +vt 0.850168 0.250834 +vt 0.939977 0.429619 +vt 0.939977 0.444386 +vt 0.798453 0.866656 +vt 0.813103 0.868297 +vt 0.201657 0.816152 +vt 0.208423 0.823449 +vt 0.202956 0.822328 +vt 0.829987 0.249843 +vt 0.790021 0.861997 +vt 0.825950 0.246638 +vt 0.834406 0.242023 +vt 0.794101 0.858749 +vt 0.799611 0.856279 +vt 0.206901 0.816212 +vt 0.213217 0.820519 +vt 0.828392 0.255261 +vt 0.797706 0.853889 +vt 0.798165 0.855479 +vt 0.204927 0.805114 +vt 0.211919 0.814342 +vt 0.833592 0.254779 +vt 0.834059 0.253192 +vt 0.792535 0.853320 +vt 0.939970 0.428092 +vt 0.799830 0.854104 +vt 0.950400 0.429619 +vt 0.950393 0.428092 +vt 0.835781 0.254723 +vt 0.808918 0.706562 +vt 0.181983 0.666831 +vt 0.210233 0.804869 +vt 0.354507 0.852005 +vt 0.378027 0.758140 +vt 0.382344 0.761424 +vt 0.177029 0.668396 +vt 0.199972 0.806679 +vt 0.360015 0.852190 +vt 0.387852 0.761610 +vt 0.849196 0.401539 +vt 0.803730 0.705971 +vt 0.787347 0.852729 +vt 0.843996 0.402021 +vt 0.823227 0.255887 +vt 0.355558 0.855926 +vt 0.350190 0.848720 +vt 0.183297 0.661568 +vt 0.845134 0.412542 +vt 0.360322 0.853339 +vt 0.839803 0.411626 +vt 0.838831 0.402646 +vt 0.187675 0.665045 +vt 0.187290 0.666586 +vt 0.978059 0.614795 +vt 0.972837 0.605814 +vt 0.978056 0.604307 +vt 0.188092 0.658638 +vt 0.985402 0.609480 +vt 0.983263 0.614778 +vt 0.983260 0.605826 +vt 0.187457 0.654408 +vt 0.179272 0.659410 +vt 0.361642 0.854236 +vt 0.814089 0.707132 +vt 0.814261 0.705615 +vt 0.363485 0.849168 +vt 0.803902 0.704455 +vt 0.189079 0.664187 +vt 0.189840 0.667805 +vt 0.203591 0.661627 +vt 0.985403 0.614724 +vt 0.983245 0.629544 +vt 0.377380 0.854076 +vt 0.201969 0.651849 +vt 0.978041 0.629561 +vt 0.375536 0.859143 +vt 0.360063 0.858988 +vt 0.972839 0.614766 +vt 0.213217 0.655588 +vt 0.202604 0.656078 +vt 0.983876 0.631074 +vt 0.381698 0.857360 +vt 0.976497 0.638449 +vt 0.972822 0.629532 +vt 0.212650 0.661209 +vt 0.204352 0.665245 +vt 0.665942 0.081116 +vt 0.671144 0.070655 +vt 0.671144 0.079585 +vt 0.385779 0.857269 +vt 0.382296 0.861820 +vt 0.660721 0.070674 +vt 0.660721 0.079603 +vt 0.985403 0.636953 +vt 0.980194 0.634785 +vt 0.376801 0.860105 +vt 0.985389 0.642151 +vt 0.977174 0.396112 +vt 0.971940 0.381353 +vt 0.977174 0.381345 +vt 0.493800 0.983954 +vt 0.499031 0.998708 +vt 0.493810 0.998721 +vt 0.557461 0.583426 +vt 0.562763 0.596000 +vt 0.557461 0.594762 +vt 0.552349 0.584958 +vt 0.552349 0.596294 +vt 0.918092 0.392971 +vt 0.923393 0.407723 +vt 0.918111 0.407739 +vt 0.982363 0.396120 +vt 0.982363 0.381353 +vt 0.488598 0.983947 +vt 0.488608 0.998715 +vt 0.923374 0.392955 +vt 0.928529 0.407727 +vt 0.555305 0.579480 +vt 0.978677 0.405033 +vt 0.975015 0.401333 +vt 0.488608 0.975018 +vt 0.493812 0.973492 +vt 0.971940 0.396120 +vt 0.971307 0.397649 +vt 0.499021 0.983940 +vt 0.499031 0.975011 +vt 0.562763 0.584664 +vt 0.559081 0.577926 +vt 0.969804 0.403496 +vt 0.969781 0.398282 +vt 0.786203 0.680598 +vt 0.776920 0.683114 +vt 0.777303 0.678854 +vt 0.781664 0.693456 +vt 0.776567 0.688739 +vt 0.785467 0.690483 +vt 0.551718 0.583802 +vt 0.550098 0.577966 +vt 0.787347 0.685157 +vt 0.928529 0.391427 +vt 0.928510 0.392959 +vt 0.550421 0.588362 +vt 0.550193 0.583359 +vt 0.918111 0.391439 +vt 0.918162 0.390799 +vt 0.769951 0.678376 +vt 0.776450 0.692435 +vt 0.769215 0.688260 +vt 0.962355 0.396138 +vt 0.969725 0.396138 +vt 0.542734 0.578174 +vt 0.542829 0.583567 +vt 0.969781 0.408725 +vt 0.962434 0.403496 +vt 0.769568 0.682635 +vt 0.962411 0.398282 +vt 0.960891 0.398280 +vt 0.957166 0.396130 +vt 0.532510 0.581237 +vt 0.764522 0.680249 +vt 0.543058 0.588570 +vt 0.534102 0.586181 +vt 0.768473 0.677677 +vt 0.769098 0.691956 +vt 0.760600 0.684188 +vt 0.762736 0.675167 +vt 0.767950 0.676188 +vt 0.804084 0.416283 +vt 0.808728 0.425293 +vt 0.803532 0.425049 +vt 0.537946 0.590101 +vt 0.541225 0.591698 +vt 0.536018 0.593505 +vt 0.814488 0.416919 +vt 0.809375 0.415023 +vt 0.757553 0.675511 +vt 0.530811 0.591992 +vt 0.962411 0.408724 +vt 0.960891 0.408722 +vt 0.699802 0.814291 +vt 0.699703 0.812762 +vt 0.704915 0.812443 +vt 0.710205 0.813636 +vt 0.710106 0.812107 +vt 0.787347 0.690214 +vt 0.693474 0.546819 +vt 0.547668 0.763703 +vt 0.688283 0.547155 +vt 0.813936 0.425684 +vt 0.792544 0.690458 +vt 0.781479 0.423542 +vt 0.542462 0.762189 +vt 0.786693 0.424564 +vt 0.797751 0.690850 +vt 0.794380 0.695798 +vt 0.776296 0.423887 +vt 0.782246 0.415023 +vt 0.683071 0.547474 +vt 0.690111 0.541809 +vt 0.787347 0.417292 +vt 0.790483 0.699330 +vt 0.694009 0.545253 +vt 0.799138 0.703556 +vt 0.695493 0.544525 +vt 0.798289 0.692414 +vt 0.799451 0.698273 +vt 0.995450 0.288888 +vt 0.990191 0.297830 +vt 0.990220 0.287373 +vt 0.694840 0.534104 +vt 0.695177 0.539323 +vt 0.985027 0.288905 +vt 0.985003 0.297831 +vt 0.552875 0.761896 +vt 0.552942 0.763361 +vt 0.552970 0.764940 +vt 0.542529 0.763655 +vt 0.542556 0.765234 +vt 0.542556 0.776570 +vt 0.710205 0.543599 +vt 0.547668 0.775038 +vt 0.799774 0.693139 +vt 0.814165 0.699172 +vt 0.995426 0.297814 +vt 0.990216 0.312598 +vt 0.709889 0.538397 +vt 0.985027 0.312598 +vt 0.813852 0.704455 +vt 0.672557 0.969836 +vt 0.661790 0.940204 +vt 0.672557 0.940318 +vt 0.937378 0.420521 +vt 0.930000 0.391245 +vt 0.937378 0.390999 +vt 0.948631 0.383380 +vt 0.937378 0.353881 +vt 0.948631 0.353858 +vt 0.948631 0.420497 +vt 0.948631 0.390975 +vt 0.957166 0.383593 +vt 0.957166 0.354071 +vt 0.957166 0.420711 +vt 0.957166 0.391188 +vt 0.510468 0.977137 +vt 0.500029 0.947558 +vt 0.510468 0.947603 +vt 0.484296 0.973492 +vt 0.473857 0.943913 +vt 0.484296 0.943959 +vt 0.520876 0.977090 +vt 0.520876 0.947557 +vt 0.494704 0.973445 +vt 0.494704 0.943912 +vt 0.525156 0.976978 +vt 0.525156 0.947445 +vt 0.498984 0.973333 +vt 0.498984 0.943800 +vt 0.963519 0.878749 +vt 0.953522 0.849408 +vt 0.963519 0.849231 +vt 0.661790 0.969723 +vt 0.651792 0.940381 +vt 0.974286 0.878863 +vt 0.974286 0.849345 +vt 0.937378 0.383404 +vt 0.930000 0.354128 +vt 0.964176 0.886377 +vt 0.812030 0.955571 +vt 0.358167 0.948141 +vt 0.662447 0.977350 +vt 0.792770 0.974866 +vt 0.804052 0.974866 +vt 0.940685 0.390975 +vt 0.946312 0.428080 +vt 0.940685 0.428092 +vt 0.377427 0.956132 +vt 0.784792 0.955571 +vt 0.784792 0.966874 +vt 0.369450 0.975427 +vt 0.377427 0.967435 +vt 0.792770 0.947579 +vt 0.350190 0.967435 +vt 0.358167 0.975427 +vt 0.804052 0.947579 +vt 0.825789 0.787050 +vt 0.339120 0.780853 +vt 0.157243 0.670622 +vt 0.339780 0.658856 +vt 0.753870 0.697124 +vt 0.831098 0.602717 +vt 0.715509 0.701001 +vt 0.162444 0.918379 +vt 0.881020 0.168381 +vt 0.714001 0.691303 +vt 0.886260 0.183100 +vt 0.305366 0.665758 +vt 0.768730 0.863972 +vt 0.721023 0.713820 +vt 0.812818 0.287115 +vt 0.215065 0.659983 +vt 0.774128 0.694371 +vt 0.971887 0.091969 +vt 0.870564 0.168381 +vt 0.240887 0.660606 +vt 0.875804 0.183100 +vt 0.793836 0.293466 +vt 0.339180 0.836520 +vt 0.099094 0.761419 +vt 0.831099 0.600792 +vt 0.133686 0.777836 +vt 0.792398 0.081258 +vt 0.791944 0.094889 +vt 0.655500 0.081116 +vt 0.682885 0.731913 +vt 0.136907 0.775621 +vt 0.871146 0.239039 +vt 0.351983 0.855414 +vt 0.850168 0.410519 +vt 0.985368 0.644257 +vt 0.387852 0.868803 +vt 0.211028 0.651431 +vt 0.209659 0.665000 +vt 0.665942 0.070654 +vt 0.386801 0.864882 +vt 0.985402 0.631709 +vt 0.376976 0.861411 +vt 0.759006 0.687185 +vt 0.541790 0.590701 +vt 0.776950 0.416615 +vt 0.686191 0.538347 +vt 0.552970 0.776276 +vt 0.814488 0.694038 +vt 0.995450 0.312581 +vt 0.709552 0.533178 +vt 0.930000 0.420768 +vt 0.500029 0.977091 +vt 0.473857 0.973446 +vt 0.953522 0.878926 +vt 0.651792 0.969899 +vt 0.930000 0.383651 +vt 0.969559 0.886434 +vt 0.812030 0.966873 +vt 0.369450 0.948140 +vt 0.667830 0.977407 +vt 0.946312 0.390963 +vt 0.350190 0.956133 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.3827 -0.9239 +vn -0.0000 -0.9239 -0.3827 +vn -0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.5547 0.8321 0.0000 +vn -0.5547 0.8321 0.0000 +vn 0.2588 0.9659 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.9659 -0.2588 0.0000 +vn -0.2588 -0.9659 0.0000 +vn -0.9659 0.2588 0.0000 +vn 0.9659 0.2588 0.0000 +vn 0.2588 -0.9659 0.0000 +vn -0.9659 -0.2588 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.2588 0.9659 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.2516 -0.9389 0.2347 +vn -0.9389 -0.2516 0.2347 +vn 0.6874 0.6873 0.2347 +vn -0.2516 0.9389 0.2347 +vn 0.6874 -0.6873 0.2347 +vn -0.6874 -0.6873 0.2347 +vn 0.2516 0.9389 0.2347 +vn -0.6873 0.6873 0.2347 +vn 0.9389 -0.2516 0.2347 +vn -0.2516 -0.9389 0.2347 +vn -0.9389 0.2516 0.2347 +vn 0.9389 0.2516 0.2347 +vn 0.8698 0.2331 0.4349 +vn 0.2331 -0.8698 0.4349 +vn -0.8698 -0.2331 0.4349 +vn 0.6367 0.6367 0.4349 +vn -0.2331 0.8698 0.4349 +vn 0.6367 -0.6367 0.4349 +vn -0.6367 -0.6367 0.4349 +vn 0.2331 0.8698 0.4349 +vn -0.6367 0.6367 0.4349 +vn 0.8698 -0.2331 0.4349 +vn -0.2331 -0.8698 0.4349 +vn -0.8698 0.2331 0.4349 +vn -0.7822 0.2096 0.5867 +vn 0.7822 0.2096 0.5867 +vn 0.2096 -0.7822 0.5867 +vn -0.7822 -0.2096 0.5867 +vn 0.5726 0.5726 0.5867 +vn -0.2096 0.7822 0.5867 +vn 0.5726 -0.5726 0.5867 +vn -0.5726 -0.5726 0.5867 +vn 0.2096 0.7822 0.5867 +vn -0.5726 0.5726 0.5867 +vn 0.7822 -0.2096 0.5867 +vn -0.2096 -0.7822 0.5867 +vn 0.8321 -0.5547 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.4472 0.0000 -0.8944 +vn 0.4472 0.0000 0.8944 +vn 0.6479 -0.7479 0.1445 +vn -0.1677 0.0449 0.9848 +vn 0.1677 -0.0449 -0.9848 +vn 0.9513 -0.2549 0.1736 +vn -0.1939 0.9779 -0.0777 +vn 0.5754 -0.1542 -0.8032 +vn 0.2754 -0.0738 0.9585 +vn 0.7541 -0.5547 0.3516 +vn -0.4226 0.0000 0.9063 +vn 0.4226 0.0000 -0.9063 +vn 0.9063 0.0000 0.4226 +vn -0.4053 0.8944 -0.1890 +vn 0.7833 0.0000 -0.6216 +vn 0.0273 0.0000 0.9996 +vn -0.8321 0.5547 0.0000 +vn 0.7206 -0.5547 0.4160 +vn -0.5000 0.0000 0.8660 +vn 0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +vn -0.3873 0.8944 -0.2236 +vn 0.8345 0.0000 -0.5510 +vn -0.0599 0.0000 0.9982 +vn 0.4472 -0.8944 0.0000 +vn -0.4472 0.0000 -0.8944 +vn -0.4472 0.0000 0.8944 +vn -0.5547 -0.8321 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 -0.4472 0.8944 +vn -0.8944 -0.4472 0.0000 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 0.4472 0.8944 +vn -0.5000 -0.8660 0.0000 +vn 0.4432 -0.8964 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.0599 0.9982 0.0000 +vn 0.3873 -0.2236 -0.8944 +vn 0.3873 -0.2236 0.8944 +vn -0.4432 0.8964 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.0599 -0.9982 0.0000 +vn -0.3873 0.2236 -0.8944 +vn -0.3873 0.2236 0.8944 +vn -0.8964 -0.4432 0.0000 +vn 0.9982 -0.0599 0.0000 +vn -0.2236 -0.3873 -0.8944 +vn -0.2236 -0.3873 0.8944 +vn 0.8964 0.4432 0.0000 +vn -0.9982 0.0599 0.0000 +vn 0.2236 0.3873 -0.8944 +vn 0.2236 0.3873 0.8944 +vn -0.8660 -0.5000 0.0000 +vn -0.0644 -0.9979 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.5510 0.8345 0.0000 +vn 0.2236 -0.3873 -0.8944 +vn 0.2236 -0.3873 0.8944 +vn 0.0644 0.9979 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.5510 -0.8345 0.0000 +vn -0.2236 0.3873 -0.8944 +vn -0.2236 0.3873 0.8944 +vn -0.9979 0.0644 0.0000 +vn 0.8345 -0.5510 0.0000 +vn -0.3873 -0.2236 -0.8944 +vn -0.3873 -0.2236 0.8944 +vn 0.9979 -0.0644 0.0000 +vn -0.8345 0.5510 0.0000 +vn 0.3873 0.2236 -0.8944 +vn 0.3873 0.2236 0.8944 +vn 0.1872 -0.9716 0.1445 +vn -0.1228 0.1228 0.9848 +vn 0.1228 -0.1228 -0.9848 +vn 0.6964 -0.6964 0.1736 +vn 0.3210 0.9439 -0.0777 +vn 0.4212 -0.4212 -0.8032 +vn 0.2016 -0.2016 0.9585 +vn -0.3237 -0.9351 0.1445 +vn -0.0449 0.1677 0.9848 +vn 0.0449 -0.1677 -0.9848 +vn 0.2549 -0.9513 0.1736 +vn 0.7500 0.6569 -0.0777 +vn 0.1542 -0.5754 -0.8032 +vn 0.0738 -0.2754 0.9585 +vn 0.7479 0.6479 0.1445 +vn -0.0449 -0.1677 0.9848 +vn 0.0449 0.1677 -0.9848 +vn 0.2549 0.9513 0.1736 +vn -0.9779 -0.1939 -0.0777 +vn 0.1542 0.5754 -0.8032 +vn 0.0738 0.2754 0.9585 +vn 0.9716 0.1872 0.1445 +vn -0.1228 -0.1228 0.9848 +vn 0.1228 0.1228 -0.9848 +vn 0.6964 0.6964 0.1736 +vn -0.9439 0.3210 -0.0777 +vn 0.4212 0.4212 -0.8032 +vn 0.2016 0.2016 0.9585 +vn 0.9351 -0.3237 0.1445 +vn -0.1677 -0.0449 0.9848 +vn 0.1677 0.0449 -0.9848 +vn 0.9513 0.2549 0.1736 +vn -0.6569 0.7500 -0.0777 +vn 0.5754 0.1542 -0.8032 +vn 0.2754 0.0738 0.9585 +vn -0.6479 0.7479 0.1445 +vn 0.1677 -0.0449 0.9848 +vn -0.1677 0.0449 -0.9848 +vn -0.9513 0.2549 0.1736 +vn 0.1939 -0.9779 -0.0777 +vn -0.5754 0.1542 -0.8032 +vn -0.2754 0.0738 0.9585 +vn -0.1872 0.9716 0.1445 +vn 0.1228 -0.1228 0.9848 +vn -0.1228 0.1228 -0.9848 +vn -0.6964 0.6964 0.1736 +vn -0.3210 -0.9439 -0.0777 +vn -0.4212 0.4212 -0.8032 +vn -0.2016 0.2016 0.9585 +vn 0.3237 0.9351 0.1445 +vn 0.0449 -0.1677 0.9848 +vn -0.0449 0.1677 -0.9848 +vn -0.2549 0.9513 0.1736 +vn -0.7500 -0.6569 -0.0777 +vn -0.1542 0.5754 -0.8032 +vn -0.0738 0.2754 0.9585 +vn -0.7479 -0.6479 0.1445 +vn 0.0449 0.1677 0.9848 +vn -0.0449 -0.1677 -0.9848 +vn -0.2549 -0.9513 0.1736 +vn 0.9779 0.1939 -0.0777 +vn -0.1542 -0.5754 -0.8032 +vn -0.0738 -0.2754 0.9585 +vn -0.9716 -0.1872 0.1445 +vn 0.1228 0.1228 0.9848 +vn -0.1228 -0.1228 -0.9848 +vn -0.6964 -0.6964 0.1736 +vn 0.9439 -0.3210 -0.0777 +vn -0.4212 -0.4212 -0.8032 +vn -0.2016 -0.2016 0.9585 +vn -0.9351 0.3237 0.1445 +vn 0.1677 0.0449 0.9848 +vn -0.1677 -0.0449 -0.9848 +vn -0.9513 -0.2549 0.1736 +vn 0.6569 -0.7500 -0.0777 +vn -0.5754 -0.1542 -0.8032 +vn -0.2754 -0.0738 0.9585 +vn -0.7541 0.5547 0.3516 +vn 0.4226 0.0000 0.9063 +vn -0.4226 0.0000 -0.9063 +vn -0.9063 0.0000 0.4226 +vn 0.4053 -0.8944 -0.1890 +vn -0.7833 0.0000 -0.6216 +vn -0.0273 0.0000 0.9996 +vn -0.5547 -0.7541 0.3516 +vn 0.0000 0.4226 0.9063 +vn 0.0000 -0.4226 -0.9063 +vn 0.0000 -0.9063 0.4226 +vn 0.8944 0.4053 -0.1890 +vn 0.0000 -0.7833 -0.6216 +vn 0.0000 -0.0273 0.9996 +vn 0.5547 0.7541 0.3516 +vn 0.0000 -0.4226 0.9063 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 0.9063 0.4226 +vn -0.8944 -0.4053 -0.1890 +vn 0.0000 0.7833 -0.6216 +vn 0.0000 0.0273 0.9996 +vn 0.1410 -0.9255 0.3516 +vn -0.2988 0.2988 0.9063 +vn 0.2988 -0.2988 -0.9063 +vn 0.6409 -0.6409 0.4226 +vn 0.3459 0.9191 -0.1890 +vn 0.5539 -0.5539 -0.6216 +vn 0.0193 -0.0193 0.9996 +vn -0.1410 0.9255 0.3516 +vn 0.2988 -0.2988 0.9063 +vn -0.2988 0.2988 -0.9063 +vn -0.6409 0.6409 0.4226 +vn -0.3459 -0.9191 -0.1890 +vn -0.5539 0.5539 -0.6216 +vn -0.0193 0.0193 0.9996 +vn -0.9255 -0.1410 0.3516 +vn 0.2988 0.2988 0.9063 +vn -0.2988 -0.2988 -0.9063 +vn -0.6409 -0.6409 0.4226 +vn 0.9191 -0.3459 -0.1890 +vn -0.5539 -0.5539 -0.6216 +vn -0.0193 -0.0193 0.9996 +vn 0.9255 0.1410 0.3516 +vn -0.2988 -0.2988 0.9063 +vn 0.2988 0.2988 -0.9063 +vn 0.6409 0.6409 0.4226 +vn -0.9191 0.3459 -0.1890 +vn 0.5539 0.5539 -0.6216 +vn 0.0193 0.0193 0.9996 +vn -0.7206 0.5547 0.4160 +vn 0.5000 -0.0000 0.8660 +vn -0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 0.5000 +vn 0.3873 -0.8944 -0.2236 +vn -0.8345 0.0000 -0.5510 +vn 0.0599 -0.0000 0.9982 +vn -0.1201 -0.9014 0.4160 +vn -0.2500 0.4330 0.8660 +vn 0.2500 -0.4330 -0.8660 +vn 0.4330 -0.7500 0.5000 +vn 0.5809 0.7826 -0.2236 +vn 0.4173 -0.7227 -0.5510 +vn -0.0300 0.0519 0.9982 +vn 0.1201 0.9014 0.4160 +vn 0.2500 -0.4330 0.8660 +vn -0.2500 0.4330 -0.8660 +vn -0.4330 0.7500 0.5000 +vn -0.5809 -0.7826 -0.2236 +vn -0.4173 0.7227 -0.5510 +vn 0.0300 -0.0519 0.9982 +vn -0.8407 -0.3467 0.4160 +vn 0.2500 0.4330 0.8660 +vn -0.2500 -0.4330 -0.8660 +vn -0.4330 -0.7500 0.5000 +vn 0.9682 -0.1118 -0.2236 +vn -0.4173 -0.7227 -0.5510 +vn 0.0300 0.0519 0.9982 +vn 0.8407 0.3467 0.4160 +vn -0.2500 -0.4330 0.8660 +vn 0.2500 0.4330 -0.8660 +vn 0.4330 0.7500 0.5000 +vn -0.9682 0.1118 -0.2236 +vn 0.4173 0.7227 -0.5510 +vn -0.0300 -0.0519 0.9982 +vn 0.0000 -0.9597 0.2811 +vn -0.9597 0.0000 0.2811 +vn 0.0000 0.9597 0.2811 +vn 0.9597 0.0000 0.2811 +vn -0.1753 -0.6541 -0.7358 +vn -0.6541 0.1753 -0.7358 +vn 0.6541 0.1753 -0.7358 +vn 0.1753 -0.6541 -0.7358 +vn -0.6541 -0.1753 -0.7358 +vn 0.4788 0.4788 -0.7358 +vn -0.1753 0.6541 -0.7358 +vn 0.4788 -0.4788 -0.7358 +vn -0.4788 -0.4788 -0.7358 +vn 0.1753 0.6541 -0.7358 +vn -0.4788 0.4788 -0.7358 +vn 0.6541 -0.1753 -0.7358 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.9437 0.3307 0.0000 +vn -0.9437 -0.3307 0.0000 +vn 0.9440 -0.3300 0.0000 +vn -0.9440 0.3300 0.0000 +vn 0.3162 0.9487 0.0000 +vn -0.3162 -0.9487 0.0000 +vn -0.3162 0.9487 0.0000 +vn 0.3162 -0.9487 0.0000 +vn 0.4213 0.4212 -0.8032 +vn 0.0196 -0.9987 -0.0473 +vn -0.7071 -0.0000 0.7071 +vn 0.0196 0.9987 -0.0473 +vn 0.1866 -0.0000 -0.9824 +vn 0.1448 -0.6794 -0.7194 +vn -0.1363 -0.7263 0.6737 +vn -0.1363 0.7263 0.6737 +vn 0.1448 0.6794 -0.7194 +vn 0.5294 -0.6630 -0.5294 +vn 0.0671 -0.9955 -0.0671 +vn -0.4617 -0.7574 0.4617 +vn 0.5294 0.6630 -0.5294 +vn 0.0671 0.9955 -0.0671 +vn 0.0473 -0.9987 -0.0196 +vn -0.6737 0.7263 0.1363 +vn 0.0473 0.9987 -0.0196 +vn 0.9824 -0.0000 -0.1866 +vn 0.7194 -0.6794 -0.1448 +vn -0.6737 -0.7263 0.1363 +vn 0.7194 0.6794 -0.1448 +vn -0.4617 0.7574 0.4617 +vn 0.9987 -0.0473 0.0196 +vn -0.9987 -0.0473 0.0196 +vn 0.6794 -0.7194 0.1448 +vn -0.7263 0.6737 -0.1363 +vn -0.6794 -0.7194 0.1448 +vn 0.7263 0.6737 -0.1363 +vn -0.0000 -0.9824 0.1866 +vn -0.9955 -0.0671 0.0671 +vn 0.9955 -0.0671 0.0671 +vn 0.6630 -0.5294 0.5294 +vn -0.6630 -0.5294 0.5294 +vn -0.7574 0.4617 -0.4617 +vn 0.7574 0.4617 -0.4617 +vn 0.0000 -0.1866 0.9824 +vn 0.9987 -0.0196 0.0473 +vn -0.6794 -0.1448 0.7194 +vn -0.9987 -0.0196 0.0473 +vn 0.6794 -0.1448 0.7194 +vn -0.7263 0.1363 -0.6737 +vn 0.7263 0.1363 -0.6737 +vn 0.7194 0.1448 -0.6794 +vn 0.9824 0.1866 -0.0000 +vn -0.5880 -0.0639 -0.8063 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1448 0.6794 +vn 0.0473 0.0196 0.9987 +vn -0.5880 -0.0639 0.8063 +vn 0.5294 0.5294 0.6630 +vn 0.0671 0.0671 0.9955 +vn -0.2706 -0.2706 0.9239 +vn 0.0671 0.0671 -0.9955 +vn 0.5294 0.5294 -0.6630 +vn 0.0393 0.0948 -0.9947 +vn 0.2962 0.7150 -0.6333 +vn 0.2962 0.7150 0.6333 +vn 0.0393 0.0948 0.9947 +vn -0.1566 -0.3780 0.9125 +vn -0.2706 -0.2706 -0.9239 +vn -0.6725 -0.0522 0.7382 +vn -0.6725 -0.0522 -0.7382 +vn -0.1566 -0.3780 -0.9125 +vn -0.0196 -0.9987 -0.0473 +vn 0.7071 0.0000 0.7071 +vn -0.0196 0.9987 -0.0473 +vn -0.1866 -0.0000 -0.9824 +vn -0.1448 -0.6794 -0.7194 +vn 0.1363 -0.7263 0.6737 +vn 0.1363 0.7263 0.6737 +vn -0.1448 0.6794 -0.7194 +vn -0.5294 -0.6630 -0.5294 +vn -0.0671 -0.9955 -0.0671 +vn -0.5294 0.6630 -0.5294 +vn -0.0671 0.9955 -0.0671 +vn -0.0473 -0.9987 -0.0196 +vn 0.6737 0.7263 0.1363 +vn 0.4617 0.7574 0.4617 +vn -0.9824 -0.0000 -0.1866 +vn 0.6737 -0.7263 0.1363 +vn 0.4617 -0.7574 0.4617 +vn -0.0473 0.9987 -0.0196 +vn -0.7194 0.6794 -0.1448 +vn -0.7194 -0.6794 -0.1448 +vn -0.7194 0.1448 -0.6794 +vn 0.5880 -0.0639 -0.8063 +vn -0.7194 0.1448 0.6794 +vn -0.0473 0.0196 0.9987 +vn -0.9824 0.1866 -0.0000 +vn 0.5880 -0.0639 0.8063 +vn -0.0671 0.0671 0.9955 +vn -0.0671 0.0671 -0.9955 +vn -0.0473 0.0196 -0.9987 +vn -0.5294 0.5294 0.6630 +vn -0.5294 0.5294 -0.6630 +vn -0.2962 0.7150 -0.6333 +vn -0.2962 0.7150 0.6333 +vn 0.2706 -0.2706 0.9239 +vn -0.0393 0.0948 0.9947 +vn -0.0393 0.0948 -0.9947 +vn 0.2706 -0.2706 -0.9239 +vn 0.6725 -0.0522 0.7382 +vn 0.6725 -0.0522 -0.7382 +vn -0.0196 0.0473 0.9987 +vn -0.1866 0.9824 -0.0000 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn 0.1363 -0.6737 0.7263 +vn -0.1448 0.7194 0.6794 +vn -0.1448 0.7194 -0.6794 +vn 0.4617 -0.4617 0.7574 +vn 0.6737 -0.1363 0.7263 +vn 0.4617 -0.4617 -0.7574 +vn 0.6737 -0.1363 -0.7263 +vn -0.7263 0.1363 0.6737 +vn -0.6794 -0.1448 -0.7194 +vn 0.9987 -0.0196 -0.0473 +vn 0.0000 -0.1866 -0.9824 +vn 0.6794 -0.1448 -0.7194 +vn -0.9987 -0.0196 -0.0473 +vn 0.7263 0.1363 0.6737 +vn 0.7574 0.4617 0.4617 +vn 0.9955 -0.0671 -0.0671 +vn -0.9955 -0.0671 -0.0671 +vn 0.6630 -0.5294 -0.5294 +vn -0.7574 0.4617 0.4617 +vn -0.6630 -0.5294 -0.5294 +vn -0.9987 -0.0473 -0.0196 +vn -0.7263 0.6737 0.1363 +vn -0.0000 -0.9824 -0.1866 +vn -0.6794 -0.7194 -0.1448 +vn 0.7263 0.6737 0.1363 +vn 0.9987 -0.0473 -0.0196 +vn 0.6794 -0.7194 -0.1448 +vn -0.7194 -0.6794 0.1448 +vn 0.6737 0.7263 -0.1363 +vn -0.0473 0.9987 0.0196 +vn -0.0473 -0.9987 0.0196 +vn -0.9824 -0.0000 0.1866 +vn 0.6737 -0.7263 -0.1363 +vn -0.7194 0.6794 0.1448 +vn -0.0671 -0.9955 0.0671 +vn -0.0671 0.9955 0.0671 +vn -0.5294 0.6630 0.5294 +vn -0.5294 -0.6630 0.5294 +vn 0.4617 0.7574 -0.4617 +vn -0.1448 -0.6794 0.7194 +vn 0.1363 0.7263 -0.6737 +vn 0.4617 -0.7574 -0.4617 +vn -0.0196 -0.9987 0.0473 +vn -0.1866 -0.0000 0.9824 +vn -0.1448 0.6794 0.7194 +vn -0.0196 0.9987 0.0473 +vn 0.1363 -0.7263 -0.6737 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.5000 0.7071 0.5000 +vn 0.1566 -0.3780 0.9125 +vn 0.1566 -0.3780 -0.9125 +s off +f 74/1/1 114/2/1 113/3/1 +f 14/4/1 54/5/1 53/6/1 +f 12/7/2 43/8/2 11/9/2 +f 22/10/1 27/11/1 25/12/1 +f 11/9/3 28/13/3 12/7/3 +f 9/14/4 26/15/4 10/16/4 +f 7/17/5 24/18/5 8/19/5 +f 5/20/6 21/21/6 6/22/6 +f 12/23/7 22/24/7 5/20/7 +f 10/25/8 27/26/8 11/9/8 +f 9/14/9 24/27/9 25/28/9 +f 6/29/10 23/30/10 7/17/10 +f 31/31/2 33/32/2 35/33/2 +f 14/34/6 30/35/6 13/36/6 +f 13/36/7 36/37/7 20/38/7 +f 19/39/8 34/40/8 18/41/8 +f 17/42/9 32/43/9 16/44/9 +f 15/45/10 29/46/10 14/47/10 +f 20/48/3 35/33/3 19/39/3 +f 17/42/4 34/49/4 33/50/4 +f 16/51/5 31/52/5 15/45/5 +f 41/53/4 50/54/4 49/55/4 +f 10/25/2 41/56/2 9/57/2 +f 8/58/2 39/59/2 7/60/2 +f 6/61/2 38/62/2 5/63/2 +f 12/7/2 38/62/2 44/64/2 +f 11/9/2 42/65/2 10/25/2 +f 9/57/2 40/66/2 8/58/2 +f 6/61/2 39/59/2 37/67/2 +f 49/68/2 51/69/2 46/70/2 +f 40/71/5 47/72/5 39/73/5 +f 37/74/6 46/75/6 38/76/6 +f 38/76/7 52/77/7 44/78/7 +f 43/8/8 50/79/8 42/65/8 +f 41/53/9 48/80/9 40/81/9 +f 39/73/10 45/82/10 37/83/10 +f 43/8/3 52/84/3 51/69/3 +f 58/85/8 67/86/8 59/87/8 +f 13/88/1 60/89/1 54/5/1 +f 19/90/1 58/91/1 59/92/1 +f 16/93/1 57/94/1 17/95/1 +f 14/4/1 55/96/1 15/97/1 +f 19/90/1 60/89/1 20/98/1 +f 17/95/1 58/91/1 18/99/1 +f 16/93/1 55/96/1 56/100/1 +f 64/101/1 63/102/1 67/103/1 +f 56/104/9 65/105/9 57/106/9 +f 53/107/10 63/108/10 55/109/10 +f 60/110/3 67/86/3 68/111/3 +f 58/112/4 65/105/4 66/113/4 +f 55/109/5 64/114/5 56/115/5 +f 54/116/6 61/117/6 53/118/6 +f 60/119/7 62/120/7 54/116/7 +f 71/121/2 104/122/2 103/123/2 +f 82/124/1 87/125/1 85/126/1 +f 71/121/3 88/127/3 72/128/3 +f 69/129/4 86/130/4 70/131/4 +f 2/132/5 84/133/5 1/134/5 +f 4/135/6 81/136/6 3/137/6 +f 72/138/7 82/139/7 4/135/7 +f 70/140/8 87/141/8 71/121/8 +f 69/129/9 84/142/9 85/143/9 +f 3/144/10 83/145/10 2/132/10 +f 96/146/2 90/147/2 93/148/2 +f 74/149/6 90/150/6 73/151/6 +f 73/151/7 96/152/7 80/153/7 +f 79/154/8 94/155/8 78/156/8 +f 77/157/9 92/158/9 76/159/9 +f 75/160/10 89/161/10 74/162/10 +f 80/163/3 95/164/3 79/154/3 +f 77/157/4 94/165/4 93/166/4 +f 76/167/5 91/168/5 75/160/5 +f 102/169/4 109/170/4 101/171/4 +f 70/140/2 101/172/2 69/173/2 +f 2/174/2 100/175/2 99/176/2 +f 3/177/2 98/178/2 4/179/2 +f 72/128/2 98/178/2 104/122/2 +f 71/121/2 102/180/2 70/140/2 +f 1/181/2 101/172/2 100/175/2 +f 2/174/2 97/182/2 3/177/2 +f 109/183/2 111/184/2 106/185/2 +f 100/186/5 107/187/5 99/188/5 +f 97/189/6 106/190/6 98/191/6 +f 98/191/7 112/192/7 104/193/7 +f 103/123/8 110/194/8 102/180/8 +f 101/171/9 108/195/9 100/196/9 +f 99/188/10 105/197/10 97/198/10 +f 104/122/3 111/184/3 103/123/3 +f 118/199/8 127/200/8 119/201/8 +f 80/202/1 114/2/1 73/203/1 +f 79/204/1 118/205/1 119/206/1 +f 76/207/1 117/208/1 77/209/1 +f 75/210/1 113/3/1 115/211/1 +f 79/204/1 120/212/1 80/202/1 +f 78/213/1 117/208/1 118/205/1 +f 75/210/1 116/214/1 76/207/1 +f 127/215/1 125/216/1 123/217/1 +f 116/218/9 125/219/9 117/220/9 +f 113/221/10 123/222/10 115/223/10 +f 119/201/3 128/224/3 120/225/3 +f 117/220/4 126/226/4 118/227/4 +f 115/223/5 124/228/5 116/229/5 +f 114/230/6 121/231/6 113/232/6 +f 120/233/7 122/234/7 114/230/7 +f 134/235/11 153/236/11 149/237/11 +f 154/238/12 130/239/12 129/240/12 +f 129/241/13 151/242/13 154/243/13 +f 143/244/11 140/245/11 139/246/11 +f 142/247/13 137/248/13 138/249/13 +f 142/250/14 143/251/14 141/252/14 +f 129/241/2 139/253/2 133/254/2 +f 130/255/2 143/256/2 129/241/2 +f 130/255/2 137/248/2 141/257/2 +f 132/258/1 138/259/1 136/260/1 +f 144/261/1 132/258/1 131/262/1 +f 131/262/1 140/263/1 144/261/1 +f 147/264/12 146/265/12 145/266/12 +f 148/267/15 149/268/15 146/265/15 +f 145/266/16 152/269/16 147/264/16 +f 148/270/1 147/271/1 156/272/1 +f 145/273/2 146/274/2 153/275/2 +f 132/276/12 156/277/12 131/278/12 +f 136/279/11 155/280/11 132/281/11 +f 156/282/13 135/283/13 131/284/13 +f 152/269/12 151/285/12 139/286/12 +f 137/287/12 134/288/12 149/268/12 +f 230/289/1 270/290/1 269/291/1 +f 170/292/1 210/293/1 209/294/1 +f 167/295/2 200/296/2 199/297/2 +f 178/298/1 183/299/1 181/300/1 +f 167/295/3 184/301/3 168/302/3 +f 165/303/4 182/304/4 166/305/4 +f 163/306/5 180/307/5 164/308/5 +f 161/309/6 177/310/6 162/311/6 +f 168/312/7 178/313/7 161/309/7 +f 167/295/8 182/314/8 183/315/8 +f 165/303/9 180/316/9 181/317/9 +f 162/318/10 179/319/10 163/306/10 +f 192/320/2 186/321/2 189/322/2 +f 170/323/6 186/324/6 169/325/6 +f 169/325/7 192/326/7 176/327/7 +f 175/328/8 190/329/8 174/330/8 +f 173/331/9 188/332/9 172/333/9 +f 171/334/10 185/335/10 170/336/10 +f 176/337/3 191/338/3 175/328/3 +f 173/331/4 190/339/4 189/340/4 +f 171/334/5 188/341/5 187/342/5 +f 198/343/4 205/344/4 197/345/4 +f 166/346/2 197/347/2 165/348/2 +f 164/349/2 195/350/2 163/351/2 +f 162/352/2 194/353/2 161/354/2 +f 168/302/2 194/353/2 200/296/2 +f 167/295/2 198/355/2 166/346/2 +f 165/348/2 196/356/2 164/349/2 +f 162/352/2 195/350/2 193/357/2 +f 205/358/2 207/359/2 202/360/2 +f 196/361/5 203/362/5 195/363/5 +f 193/364/6 202/365/6 194/366/6 +f 194/366/7 208/367/7 200/368/7 +f 199/297/8 206/369/8 198/355/8 +f 197/345/9 204/370/9 196/371/9 +f 195/363/10 201/372/10 193/373/10 +f 200/296/3 207/359/3 199/297/3 +f 214/374/8 223/375/8 215/376/8 +f 176/377/1 210/293/1 169/378/1 +f 175/379/1 214/380/1 215/381/1 +f 172/382/1 213/383/1 173/384/1 +f 170/292/1 211/385/1 171/386/1 +f 175/379/1 216/387/1 176/377/1 +f 174/388/1 213/383/1 214/380/1 +f 172/382/1 211/385/1 212/389/1 +f 220/390/1 219/391/1 223/392/1 +f 212/393/9 221/394/9 213/395/9 +f 209/396/10 219/397/10 211/398/10 +f 215/376/3 224/399/3 216/400/3 +f 213/395/4 222/401/4 214/402/4 +f 211/398/5 220/403/5 212/404/5 +f 210/405/6 217/406/6 209/407/6 +f 216/408/7 218/409/7 210/405/7 +f 227/410/2 260/411/2 259/412/2 +f 240/413/1 239/414/1 243/415/1 +f 227/410/3 244/416/3 228/417/3 +f 225/418/4 242/419/4 226/420/4 +f 158/421/5 240/422/5 157/423/5 +f 160/424/6 237/425/6 159/426/6 +f 228/427/7 238/428/7 160/424/7 +f 226/429/8 243/430/8 227/410/8 +f 225/418/9 240/431/9 241/432/9 +f 159/433/10 239/434/10 158/421/10 +f 247/435/2 249/436/2 251/437/2 +f 230/438/6 246/439/6 229/440/6 +f 229/440/7 252/441/7 236/442/7 +f 235/443/8 250/444/8 234/445/8 +f 233/446/9 248/447/9 232/448/9 +f 231/449/10 245/450/10 230/451/10 +f 236/452/3 251/437/3 235/443/3 +f 233/446/4 250/453/4 249/454/4 +f 231/449/5 248/455/5 247/456/5 +f 258/457/4 265/458/4 257/459/4 +f 226/429/2 257/460/2 225/461/2 +f 158/462/2 256/463/2 255/464/2 +f 159/465/2 254/466/2 160/467/2 +f 228/417/2 254/466/2 260/411/2 +f 227/410/2 258/468/2 226/429/2 +f 157/469/2 257/460/2 256/463/2 +f 158/462/2 253/470/2 159/465/2 +f 265/471/2 267/472/2 262/473/2 +f 256/474/5 263/475/5 255/476/5 +f 253/477/6 262/478/6 254/479/6 +f 254/479/7 268/480/7 260/481/7 +f 259/412/8 266/482/8 258/468/8 +f 257/459/9 264/483/9 256/484/9 +f 255/476/10 261/485/10 253/486/10 +f 260/411/3 267/472/3 259/412/3 +f 274/487/8 283/488/8 275/489/8 +f 236/490/1 270/290/1 229/491/1 +f 235/492/1 274/493/1 275/494/1 +f 232/495/1 273/496/1 233/497/1 +f 231/498/1 269/291/1 271/499/1 +f 235/492/1 276/500/1 236/490/1 +f 234/501/1 273/496/1 274/493/1 +f 231/498/1 272/502/1 232/495/1 +f 283/503/1 281/504/1 279/505/1 +f 272/506/9 281/507/9 273/508/9 +f 269/509/10 279/510/10 271/511/10 +f 275/489/3 284/512/3 276/513/3 +f 273/508/4 282/514/4 274/515/4 +f 271/511/5 280/516/5 272/517/5 +f 270/518/6 277/519/6 269/520/6 +f 276/521/7 278/522/7 270/518/7 +f 290/523/11 309/524/11 305/525/11 +f 310/526/12 286/527/12 285/528/12 +f 285/529/13 307/530/13 310/531/13 +f 299/532/11 296/533/11 295/534/11 +f 298/535/13 293/536/13 294/537/13 +f 298/538/14 299/539/14 297/540/14 +f 285/529/2 295/541/2 289/542/2 +f 286/543/2 299/544/2 285/529/2 +f 286/543/2 293/536/2 297/545/2 +f 288/546/1 294/547/1 292/548/1 +f 300/549/1 288/546/1 287/550/1 +f 287/550/1 296/551/1 300/549/1 +f 303/552/12 302/553/12 301/554/12 +f 304/555/15 305/556/15 302/553/15 +f 301/554/16 308/557/16 303/552/16 +f 304/558/1 303/559/1 312/560/1 +f 301/561/2 302/562/2 309/563/2 +f 288/564/12 312/565/12 287/566/12 +f 292/567/11 311/568/11 288/569/11 +f 312/570/13 291/571/13 287/572/13 +f 307/573/12 296/574/12 308/557/12 +f 294/575/12 293/576/12 305/556/12 +f 315/577/12 324/578/12 321/579/12 +f 319/580/14 317/581/14 318/582/14 +f 315/583/13 320/584/13 316/585/13 +f 314/586/11 318/587/11 313/588/11 +f 324/589/2 320/584/2 319/590/2 +f 322/591/1 318/592/1 317/593/1 +f 322/594/12 314/595/12 313/596/12 +f 322/594/16 327/597/16 323/598/16 +f 325/599/12 327/597/12 326/600/12 +f 324/578/15 325/599/15 321/579/15 +f 323/601/2 328/602/2 324/589/2 +f 321/603/1 326/604/1 322/591/1 +f 336/605/17 662/606/17 661/607/17 +f 334/608/18 664/609/18 663/610/18 +f 332/611/19 666/612/19 665/613/19 +f 330/614/20 668/615/20 667/616/20 +f 335/617/21 663/610/21 662/618/21 +f 342/619/11 337/620/11 338/621/11 +f 339/622/12 338/623/12 337/624/12 +f 329/625/22 661/607/22 668/626/22 +f 331/627/23 667/616/23 666/628/23 +f 345/629/13 348/630/13 344/631/13 +f 354/632/2 355/633/2 353/634/2 +f 341/635/1 512/636/1 342/637/1 +f 347/638/14 345/639/14 346/640/14 +f 333/641/24 665/613/24 664/642/24 +f 344/643/25 347/638/25 343/644/25 +f 342/645/26 345/639/26 341/646/26 +f 340/647/2 351/648/2 338/649/2 +f 350/650/11 353/651/11 349/652/11 +f 349/653/14 355/654/14 351/655/14 +f 351/648/13 356/656/13 352/657/13 +f 352/658/12 354/659/12 350/660/12 +f 350/661/2 340/647/2 344/631/2 +f 352/657/2 344/631/2 343/662/2 +f 338/649/2 352/657/2 343/662/2 +f 506/663/11 509/664/11 505/665/11 +f 505/666/14 511/667/14 507/668/14 +f 507/669/13 512/670/13 508/671/13 +f 508/672/12 510/673/12 506/674/12 +f 339/675/1 510/676/1 341/635/1 +f 339/675/1 511/677/1 509/678/1 +f 512/636/1 337/679/1 342/637/1 +f 505/680/1 508/681/1 506/682/1 +f 331/683/11 333/684/11 335/685/11 +f 669/686/27 692/687/27 680/688/27 +f 671/689/28 682/690/28 670/691/28 +f 678/692/29 689/693/29 677/694/29 +f 675/695/30 686/696/30 674/697/30 +f 672/698/31 683/699/31 671/700/31 +f 679/701/32 690/702/32 678/692/32 +f 676/703/33 687/704/33 675/695/33 +f 673/705/34 684/706/34 672/698/34 +f 680/688/35 691/707/35 679/708/35 +f 670/691/36 681/709/36 669/686/36 +f 677/710/37 688/711/37 676/703/37 +f 674/697/38 685/712/38 673/713/38 +f 687/704/39 700/714/39 699/715/39 +f 684/706/40 697/716/40 696/717/40 +f 692/687/41 703/718/41 691/707/41 +f 682/690/42 693/719/42 681/709/42 +f 689/720/43 700/714/43 688/711/43 +f 685/712/44 698/721/44 697/722/44 +f 681/709/45 704/723/45 692/687/45 +f 683/724/46 694/725/46 682/690/46 +f 690/702/47 701/726/47 689/693/47 +f 687/704/48 698/721/48 686/696/48 +f 684/706/49 695/727/49 683/699/49 +f 691/728/50 702/729/50 690/702/50 +f 703/730/51 714/731/51 702/732/51 +f 700/714/52 711/733/52 699/715/52 +f 697/716/53 708/734/53 696/717/53 +f 704/723/54 715/735/54 703/718/54 +f 693/719/55 706/736/55 705/737/55 +f 700/714/56 713/738/56 712/739/56 +f 698/721/57 709/740/57 697/722/57 +f 693/719/58 716/741/58 704/723/58 +f 694/725/59 707/742/59 706/736/59 +f 702/732/60 713/743/60 701/744/60 +f 699/715/61 710/745/61 698/721/61 +f 696/717/62 707/746/62 695/727/62 +f 708/747/63 719/748/63 707/749/63 +f 715/750/64 726/751/64 714/731/64 +f 712/739/65 723/752/65 711/733/65 +f 709/753/66 720/754/66 708/747/66 +f 715/750/67 728/755/67 727/756/67 +f 706/736/68 717/757/68 705/737/68 +f 712/739/69 725/758/69 724/759/69 +f 710/760/70 721/761/70 709/753/70 +f 716/741/71 717/757/71 728/762/71 +f 706/763/72 719/748/72 718/764/72 +f 714/731/73 725/765/73 713/743/73 +f 711/733/74 722/766/74 710/745/74 +f 727/756/11 717/767/11 721/761/11 +f 777/768/12 781/769/12 779/770/12 +f 736/771/75 739/772/75 735/773/75 +f 730/774/11 734/775/11 729/776/11 +f 732/777/12 735/773/12 730/778/12 +f 729/779/14 733/780/14 731/781/14 +f 731/782/13 736/783/13 732/784/13 +f 739/785/2 737/786/2 738/787/2 +f 734/788/76 737/789/76 733/780/76 +f 733/790/77 740/791/77 736/783/77 +f 734/775/78 739/792/78 738/793/78 +f 780/794/14 783/795/14 778/796/14 +f 748/797/79 751/798/79 747/799/79 +f 742/800/80 746/801/80 741/802/80 +f 744/803/30 747/799/30 742/804/30 +f 743/805/27 746/806/27 745/807/27 +f 743/808/81 748/809/81 744/810/81 +f 751/811/82 749/812/82 750/813/82 +f 746/806/83 749/814/83 745/807/83 +f 745/815/84 752/816/84 748/809/84 +f 746/801/85 751/817/85 750/818/85 +f 778/819/11 782/820/11 777/821/11 +f 759/822/86 764/823/86 763/824/86 +f 754/825/87 758/826/87 753/827/87 +f 756/828/12 759/822/12 754/829/12 +f 755/830/14 758/831/14 757/832/14 +f 755/833/88 760/834/88 756/835/88 +f 763/836/89 761/837/89 762/838/89 +f 757/832/90 762/839/90 761/840/90 +f 757/841/91 764/842/91 760/834/91 +f 758/826/92 763/836/92 762/838/92 +f 784/843/93 787/844/93 783/845/93 +f 772/846/94 775/847/94 771/848/94 +f 766/849/95 770/850/95 765/851/95 +f 768/852/12 771/848/12 766/853/12 +f 765/854/14 769/855/14 767/856/14 +f 767/857/96 772/858/96 768/859/96 +f 775/860/97 773/861/97 774/862/97 +f 769/855/98 774/863/98 773/864/98 +f 769/865/99 776/866/99 772/858/99 +f 770/850/100 775/860/100 774/862/100 +f 779/867/13 784/868/13 780/869/13 +f 787/844/1 785/870/1 786/871/1 +f 782/872/101 785/873/101 781/769/101 +f 781/874/102 788/875/102 784/843/102 +f 782/820/103 787/876/103 786/877/103 +f 801/878/1 805/879/1 803/880/1 +f 796/881/104 799/882/104 795/883/104 +f 790/884/11 794/885/11 789/886/11 +f 792/887/1 795/888/1 790/889/1 +f 789/890/2 793/891/2 791/892/2 +f 791/892/13 796/893/13 792/894/13 +f 799/882/12 797/895/12 798/896/12 +f 794/897/105 797/898/105 793/891/105 +f 793/891/106 800/899/106 796/893/106 +f 794/885/107 799/900/107 798/901/107 +f 804/902/2 807/903/2 802/904/2 +f 802/905/11 806/906/11 801/907/11 +f 808/908/25 811/909/25 807/910/25 +f 803/911/13 808/912/13 804/902/13 +f 811/909/14 809/913/14 810/914/14 +f 806/915/108 809/916/108 805/879/108 +f 805/917/109 812/918/109 808/912/109 +f 806/906/110 811/919/110 810/920/110 +f 825/921/111 829/922/111 827/923/111 +f 820/924/112 823/925/112 819/926/112 +f 813/927/11 819/928/11 818/929/11 +f 816/930/111 819/926/111 814/931/111 +f 813/932/113 817/933/113 815/934/113 +f 816/935/13 817/936/13 820/937/13 +f 823/938/114 821/939/114 822/940/114 +f 818/941/115 821/942/115 817/933/115 +f 817/936/116 824/943/116 820/937/116 +f 818/929/117 823/944/117 822/945/117 +f 828/946/113 831/947/113 826/948/113 +f 826/949/11 830/950/11 825/951/11 +f 832/952/118 835/953/118 831/947/118 +f 827/954/13 832/955/13 828/956/13 +f 835/957/119 833/958/119 834/959/119 +f 830/960/120 833/961/120 829/922/120 +f 829/962/121 836/963/121 832/964/121 +f 830/950/122 835/965/122 834/966/122 +f 849/967/119 853/968/119 851/969/119 +f 844/970/123 847/971/123 843/972/123 +f 837/973/11 843/974/11 842/975/11 +f 840/976/119 843/972/119 838/977/119 +f 837/978/114 841/979/114 839/980/114 +f 839/980/13 844/981/13 840/982/13 +f 847/983/111 845/984/111 846/985/111 +f 842/986/124 845/987/124 841/979/124 +f 841/979/125 848/988/125 844/981/125 +f 842/975/126 847/989/126 846/990/126 +f 852/991/114 855/992/114 850/993/114 +f 849/994/11 855/995/11 854/996/11 +f 856/997/127 859/998/127 855/992/127 +f 851/999/13 856/997/13 852/991/13 +f 859/1000/113 857/1001/113 858/1002/113 +f 854/1003/128 857/1004/128 853/968/128 +f 853/1005/129 860/1006/129 856/997/129 +f 854/996/130 859/1007/130 858/1008/130 +f 873/1009/131 877/1010/131 875/1011/131 +f 868/1012/132 871/1013/132 867/1014/132 +f 862/1015/11 866/1016/11 861/1017/11 +f 864/1018/131 867/1019/131 862/1020/131 +f 861/1021/133 865/1022/133 863/1023/133 +f 864/1024/13 865/1022/13 868/1025/13 +f 871/1013/134 869/1026/134 870/1027/134 +f 866/1028/135 869/1029/135 865/1030/135 +f 865/1022/136 872/1031/136 868/1025/136 +f 866/1016/137 871/1032/137 870/1033/137 +f 876/1034/133 879/1035/133 874/1036/133 +f 874/1037/11 878/1038/11 873/1039/11 +f 880/1040/138 883/1041/138 879/1042/138 +f 875/1043/13 880/1044/13 876/1034/13 +f 883/1041/139 881/1045/139 882/1046/139 +f 878/1047/140 881/1048/140 877/1049/140 +f 877/1050/141 884/1051/141 880/1044/141 +f 878/1038/142 883/1052/142 882/1053/142 +f 897/1054/139 901/1055/139 899/1056/139 +f 892/1057/143 895/1058/143 891/1059/143 +f 885/1060/11 891/1061/11 890/1062/11 +f 888/1063/139 891/1064/139 886/1065/139 +f 885/1066/134 889/1067/134 887/1068/134 +f 888/1069/13 889/1070/13 892/1071/13 +f 895/1058/131 893/1072/131 894/1073/131 +f 890/1074/144 893/1075/144 889/1067/144 +f 889/1076/145 896/1077/145 892/1057/145 +f 890/1062/146 895/1078/146 894/1079/146 +f 900/1080/134 903/1081/134 898/1082/134 +f 898/1083/11 902/1084/11 897/1085/11 +f 904/1086/147 907/1087/147 903/1088/147 +f 899/1089/13 904/1086/13 900/1090/13 +f 907/1087/133 905/1091/133 906/1092/133 +f 902/1093/148 905/1094/148 901/1095/148 +f 901/1096/149 908/1097/149 904/1086/149 +f 902/1084/150 907/1098/150 906/1099/150 +f 915/1100/151 920/1101/151 919/1102/151 +f 909/1103/152 915/1104/152 914/1105/152 +f 912/1106/38 915/1100/38 910/1107/38 +f 911/1108/35 914/1109/35 913/1110/35 +f 911/1111/153 916/1112/153 912/1113/153 +f 918/1114/154 920/1101/154 917/1115/154 +f 914/1109/155 917/1116/155 913/1110/155 +f 913/1117/156 920/1118/156 916/1112/156 +f 914/1105/157 919/1119/157 918/1120/157 +f 928/1121/158 931/1122/158 927/1123/158 +f 922/1124/159 926/1125/159 921/1126/159 +f 924/1127/34 927/1128/34 922/1129/34 +f 923/1130/32 926/1131/32 925/1132/32 +f 924/1133/160 925/1132/160 928/1134/160 +f 931/1122/161 929/1135/161 930/1136/161 +f 926/1137/162 929/1138/162 925/1139/162 +f 925/1132/163 932/1140/163 928/1134/163 +f 926/1125/164 931/1141/164 930/1142/164 +f 940/1143/165 943/1144/165 939/1145/165 +f 934/1146/166 938/1147/166 933/1148/166 +f 936/1149/29 939/1150/29 934/1151/29 +f 935/1152/31 938/1153/31 937/1154/31 +f 936/1149/167 937/1155/167 940/1156/167 +f 943/1144/168 941/1157/168 942/1158/168 +f 937/1154/169 942/1159/169 941/1160/169 +f 937/1155/170 944/1161/170 940/1156/170 +f 938/1147/171 943/1162/171 942/1163/171 +f 951/1164/172 956/1165/172 955/1166/172 +f 945/1167/173 951/1168/173 950/1169/173 +f 948/1170/37 951/1171/37 946/1172/37 +f 947/1173/28 950/1174/28 949/1175/28 +f 947/1176/174 952/1177/174 948/1178/174 +f 954/1179/175 956/1180/175 953/1181/175 +f 950/1182/176 953/1183/176 949/1184/176 +f 949/1185/177 956/1165/177 952/1177/177 +f 950/1169/178 955/1186/178 954/1187/178 +f 963/1188/179 968/1189/179 967/1190/179 +f 958/1191/180 962/1192/180 957/1193/180 +f 960/1194/33 963/1195/33 958/1196/33 +f 959/1197/36 962/1198/36 961/1199/36 +f 960/1200/181 961/1201/181 964/1202/181 +f 967/1190/182 965/1203/182 966/1204/182 +f 962/1198/183 965/1205/183 961/1199/183 +f 961/1201/184 968/1189/184 964/1202/184 +f 962/1192/185 967/1206/185 966/1207/185 +f 975/1208/186 980/1209/186 979/1210/186 +f 970/1211/187 974/1212/187 969/1213/187 +f 972/1214/27 975/1208/27 970/1215/27 +f 969/1216/30 973/1217/30 971/1218/30 +f 972/1219/188 973/1220/188 976/1221/188 +f 979/1222/189 977/1223/189 978/1224/189 +f 973/1217/190 978/1225/190 977/1226/190 +f 973/1227/191 980/1228/191 976/1229/191 +f 974/1212/192 979/1230/192 978/1231/192 +f 988/1232/193 991/1233/193 987/1234/193 +f 982/1235/194 986/1236/194 981/1237/194 +f 982/1238/35 988/1232/35 987/1234/35 +f 983/1239/38 986/1240/38 985/1241/38 +f 983/1242/195 988/1243/195 984/1244/195 +f 990/1245/196 992/1246/196 989/1247/196 +f 985/1241/197 990/1248/197 989/1249/197 +f 985/1250/198 992/1251/198 988/1252/198 +f 986/1236/199 991/1253/199 990/1254/199 +f 999/1255/200 1004/1256/200 1003/1257/200 +f 993/1258/201 999/1259/201 998/1260/201 +f 996/1261/32 999/1262/32 994/1263/32 +f 995/1264/34 998/1265/34 997/1266/34 +f 995/1267/202 1000/1268/202 996/1261/202 +f 1003/1257/203 1001/1269/203 1002/1270/203 +f 998/1265/204 1001/1271/204 997/1266/204 +f 997/1272/205 1004/1256/205 1000/1273/205 +f 998/1260/206 1003/1274/206 1002/1275/206 +f 1012/1276/207 1015/1277/207 1011/1278/207 +f 1006/1279/208 1010/1280/208 1005/1281/208 +f 1008/1282/31 1011/1283/31 1006/1284/31 +f 1007/1285/29 1010/1286/29 1009/1287/29 +f 1008/1288/209 1009/1287/209 1012/1289/209 +f 1015/1277/210 1013/1290/210 1014/1291/210 +f 1010/1286/211 1013/1292/211 1009/1287/211 +f 1009/1293/212 1016/1294/212 1012/1276/212 +f 1010/1280/213 1015/1295/213 1014/1296/213 +f 1023/1297/214 1028/1298/214 1027/1299/214 +f 1018/1300/215 1022/1301/215 1017/1302/215 +f 1020/1303/28 1023/1304/28 1018/1305/28 +f 1019/1306/37 1022/1307/37 1021/1308/37 +f 1019/1309/216 1024/1310/216 1020/1311/216 +f 1027/1312/217 1025/1313/217 1026/1314/217 +f 1022/1315/218 1025/1316/218 1021/1317/218 +f 1021/1318/219 1028/1298/219 1024/1319/219 +f 1022/1301/220 1027/1320/220 1026/1321/220 +f 1036/1322/221 1039/1323/221 1035/1324/221 +f 1030/1325/222 1034/1326/222 1029/1327/222 +f 1032/1328/36 1035/1329/36 1030/1330/36 +f 1031/1331/33 1034/1332/33 1033/1333/33 +f 1031/1334/223 1036/1335/223 1032/1336/223 +f 1039/1323/224 1037/1337/224 1038/1338/224 +f 1034/1332/225 1037/1339/225 1033/1333/225 +f 1033/1340/226 1040/1341/226 1036/1322/226 +f 1034/1326/227 1039/1342/227 1038/1343/227 +f 1047/1344/228 1052/1345/228 1051/1346/228 +f 1042/1347/229 1046/1348/229 1041/1349/229 +f 1044/1350/14 1047/1351/14 1042/1352/14 +f 1043/1353/12 1046/1354/12 1045/1355/12 +f 1044/1356/230 1045/1357/230 1048/1358/230 +f 1051/1346/231 1049/1359/231 1050/1360/231 +f 1045/1355/232 1050/1361/232 1049/1362/232 +f 1045/1357/233 1052/1345/233 1048/1358/233 +f 1046/1348/234 1051/1363/234 1050/1364/234 +f 1059/1365/235 1064/1366/235 1063/1367/235 +f 1054/1368/236 1058/1369/236 1053/1370/236 +f 1056/1371/1 1059/1372/1 1054/1373/1 +f 1055/1374/2 1058/1375/2 1057/1376/2 +f 1055/1374/237 1060/1377/237 1056/1378/237 +f 1063/1367/238 1061/1379/238 1062/1380/238 +f 1058/1375/239 1061/1381/239 1057/1376/239 +f 1057/1382/240 1064/1366/240 1060/1383/240 +f 1058/1369/241 1063/1384/241 1062/1385/241 +f 1072/1386/242 1075/1387/242 1071/1388/242 +f 1066/1389/243 1070/1390/243 1065/1391/243 +f 1068/1392/2 1071/1393/2 1066/1394/2 +f 1067/1395/1 1070/1396/1 1069/1397/1 +f 1068/1392/244 1069/1398/244 1072/1399/244 +f 1075/1387/245 1073/1400/245 1074/1401/245 +f 1070/1396/246 1073/1402/246 1069/1397/246 +f 1069/1403/247 1076/1404/247 1072/1386/247 +f 1070/1390/248 1075/1405/248 1074/1406/248 +f 1083/1407/249 1088/1408/249 1087/1409/249 +f 1077/1410/250 1083/1411/250 1082/1412/250 +f 1080/1413/38 1083/1407/38 1078/1414/38 +f 1079/1415/35 1082/1416/35 1081/1417/35 +f 1079/1418/251 1084/1419/251 1080/1420/251 +f 1087/1409/252 1085/1421/252 1086/1422/252 +f 1081/1417/253 1086/1423/253 1085/1424/253 +f 1081/1425/254 1088/1426/254 1084/1419/254 +f 1082/1412/255 1087/1427/255 1086/1428/255 +f 1095/1429/256 1100/1430/256 1099/1431/256 +f 1090/1432/257 1094/1433/257 1089/1434/257 +f 1092/1435/35 1095/1429/35 1090/1436/35 +f 1091/1437/38 1094/1438/38 1093/1439/38 +f 1091/1440/258 1096/1441/258 1092/1442/258 +f 1098/1443/259 1100/1430/259 1097/1444/259 +f 1094/1438/260 1097/1445/260 1093/1439/260 +f 1093/1446/261 1100/1447/261 1096/1441/261 +f 1094/1433/262 1099/1448/262 1098/1449/262 +f 1108/1450/263 1111/1451/263 1107/1452/263 +f 1101/1453/264 1107/1454/264 1106/1455/264 +f 1104/1456/28 1107/1457/28 1102/1458/28 +f 1101/1459/37 1105/1460/37 1103/1461/37 +f 1103/1462/265 1108/1450/265 1104/1463/265 +f 1111/1464/266 1109/1465/266 1110/1466/266 +f 1105/1467/267 1110/1468/267 1109/1469/267 +f 1105/1470/268 1112/1471/268 1108/1450/268 +f 1106/1455/269 1111/1472/269 1110/1473/269 +f 1119/1474/270 1124/1475/270 1123/1476/270 +f 1113/1477/271 1119/1474/271 1118/1478/271 +f 1116/1479/37 1119/1480/37 1114/1481/37 +f 1115/1482/28 1118/1483/28 1117/1484/28 +f 1116/1485/272 1117/1486/272 1120/1487/272 +f 1123/1488/273 1121/1489/273 1122/1490/273 +f 1117/1491/274 1122/1492/274 1121/1493/274 +f 1117/1486/275 1124/1494/275 1120/1487/275 +f 1118/1478/276 1123/1476/276 1122/1495/276 +f 1132/1496/277 1135/1497/277 1131/1498/277 +f 1126/1499/278 1130/1500/278 1125/1501/278 +f 1128/1502/14 1131/1503/14 1126/1504/14 +f 1125/1505/12 1129/1506/12 1127/1507/12 +f 1127/1508/279 1132/1496/279 1128/1509/279 +f 1135/1497/280 1133/1510/280 1134/1511/280 +f 1129/1506/281 1134/1512/281 1133/1513/281 +f 1129/1514/282 1136/1515/282 1132/1496/282 +f 1130/1500/283 1135/1516/283 1134/1517/283 +f 1143/1518/284 1148/1519/284 1147/1520/284 +f 1138/1521/285 1142/1522/285 1137/1523/285 +f 1138/1524/131 1144/1525/131 1143/1526/131 +f 1137/1527/133 1141/1528/133 1139/1529/133 +f 1139/1529/286 1144/1530/286 1140/1531/286 +f 1147/1520/287 1145/1532/287 1146/1533/287 +f 1142/1534/288 1145/1535/288 1141/1536/288 +f 1141/1537/289 1148/1519/289 1144/1538/289 +f 1142/1522/290 1147/1539/290 1146/1540/290 +f 1156/1541/291 1159/1542/291 1155/1543/291 +f 1150/1544/292 1154/1545/292 1149/1546/292 +f 1152/1547/133 1155/1548/133 1150/1549/133 +f 1151/1550/131 1154/1551/131 1153/1552/131 +f 1152/1553/293 1153/1552/293 1156/1554/293 +f 1159/1542/294 1157/1555/294 1158/1556/294 +f 1154/1557/295 1157/1558/295 1153/1559/295 +f 1153/1560/296 1160/1561/296 1156/1541/296 +f 1154/1545/297 1159/1562/297 1158/1563/297 +f 1168/1564/298 1171/1565/298 1167/1566/298 +f 1162/1567/299 1166/1568/299 1161/1569/299 +f 1164/1570/119 1167/1566/119 1162/1571/119 +f 1161/1572/114 1165/1573/114 1163/1574/114 +f 1164/1570/300 1165/1575/300 1168/1564/300 +f 1171/1576/301 1169/1577/301 1170/1578/301 +f 1166/1579/302 1169/1580/302 1165/1573/302 +f 1165/1581/303 1172/1582/303 1168/1583/303 +f 1166/1568/304 1171/1584/304 1170/1585/304 +f 1179/1586/305 1184/1587/305 1183/1588/305 +f 1174/1589/306 1178/1590/306 1173/1591/306 +f 1176/1592/114 1179/1593/114 1174/1594/114 +f 1175/1595/119 1178/1596/119 1177/1597/119 +f 1176/1592/307 1177/1598/307 1180/1599/307 +f 1183/1600/308 1181/1601/308 1182/1602/308 +f 1178/1596/309 1181/1603/309 1177/1597/309 +f 1177/1604/310 1184/1605/310 1180/1606/310 +f 1178/1590/311 1183/1588/311 1182/1607/311 +f 1200/1608/23 1191/1609/23 1192/1610/23 +f 1198/1611/22 1189/1612/22 1190/1613/22 +f 1196/1614/21 1187/1615/21 1188/1616/21 +f 1194/1617/24 1185/1618/24 1186/1619/24 +f 1185/1618/19 1200/1620/19 1192/1621/19 +f 1191/1609/20 1198/1622/20 1190/1623/20 +f 1189/1612/17 1196/1624/17 1188/1625/17 +f 1187/1615/18 1194/1626/18 1186/1627/18 +f 1193/1628/312 1194/1629/312 1200/1630/312 +f 1199/1631/313 1200/1632/313 1198/1633/313 +f 1197/1634/314 1198/1635/314 1196/1636/314 +f 1195/1637/315 1196/1638/315 1194/1639/315 +f 1194/1640/11 1198/1641/11 1200/1642/11 +f 675/695/316 1206/1643/316 1207/1644/316 +f 671/700/317 1204/1645/317 672/698/317 +f 678/692/318 1211/1646/318 679/701/318 +f 675/1647/319 1208/1648/319 676/1649/319 +f 673/705/320 1204/1645/320 1205/1650/320 +f 679/701/321 1212/1651/321 680/1652/321 +f 669/686/322 1202/1653/322 670/691/322 +f 677/694/323 1208/1648/323 1209/1654/323 +f 673/705/324 1206/1655/324 674/1656/324 +f 680/1652/325 1201/1657/325 669/1658/325 +f 670/1659/326 1203/1660/326 671/700/326 +f 677/694/327 1210/1661/327 678/692/327 +f 1205/1662/13 1203/1663/13 1211/1646/13 +f 1215/1664/12 1214/1665/12 1213/1666/12 +f 1219/1667/11 1222/1668/11 1218/1669/11 +f 1215/1670/13 1220/1671/13 1216/1672/13 +f 1214/1673/11 1218/1669/11 1213/1674/11 +f 1216/1672/2 1219/1675/2 1214/1676/2 +f 1213/1677/1 1217/1678/1 1215/1679/1 +f 1223/1680/14 1221/1681/14 1222/1682/14 +f 1219/1675/2 1224/1683/2 1223/1684/2 +f 1218/1685/1 1221/1686/1 1217/1678/1 +f 1217/1687/328 1224/1688/328 1220/1689/328 +f 1227/1690/12 1226/1691/12 1225/1692/12 +f 1231/1693/14 1229/1694/14 1230/1695/14 +f 1227/1696/13 1232/1697/13 1228/1698/13 +f 1226/1699/11 1230/1700/11 1225/1701/11 +f 1228/1698/2 1231/1702/2 1226/1703/2 +f 1225/1704/1 1229/1705/1 1227/1706/1 +f 1235/1707/12 1234/1708/12 1233/1709/12 +f 1239/1710/14 1237/1711/14 1238/1712/14 +f 1236/1713/2 1239/1714/2 1234/1715/2 +f 1233/1716/1 1237/1717/1 1235/1718/1 +f 1235/1719/13 1240/1720/13 1236/1713/13 +f 1234/1721/11 1238/1722/11 1233/1723/11 +f 1256/1724/13 1251/1725/13 1252/1726/13 +f 1254/1727/11 1250/1728/11 1249/1729/11 +f 1248/1730/13 1243/1731/13 1244/1732/13 +f 1246/1733/11 1242/1734/11 1241/1735/11 +f 1247/1736/2 1244/1732/2 1242/1737/2 +f 1245/1738/1 1241/1739/1 1243/1740/1 +f 1255/1741/2 1252/1726/2 1250/1742/2 +f 1253/1743/1 1249/1744/1 1251/1745/1 +f 1289/1746/11 1454/1747/11 1452/1748/11 +f 1292/1749/13 1450/1750/13 1448/1751/13 +f 1259/1752/13 1264/1753/13 1260/1754/13 +f 1258/1755/11 1261/1756/11 1257/1757/11 +f 1260/1754/2 1262/1758/2 1258/1759/2 +f 1257/1760/1 1263/1761/1 1259/1762/1 +f 1267/1763/13 1272/1764/13 1268/1765/13 +f 1266/1766/11 1269/1767/11 1265/1768/11 +f 1268/1765/2 1270/1769/2 1266/1770/2 +f 1265/1771/1 1271/1772/1 1267/1773/1 +f 1295/1774/14 1293/1775/14 1294/1776/14 +f 1291/1777/12 1290/1778/12 1289/1779/12 +f 1275/1780/13 1280/1781/13 1276/1782/13 +f 1274/1783/11 1277/1784/11 1273/1785/11 +f 1276/1782/2 1278/1786/2 1274/1787/2 +f 1273/1788/1 1279/1789/1 1275/1790/1 +f 1283/1791/13 1288/1792/13 1284/1793/13 +f 1282/1794/11 1285/1795/11 1281/1796/11 +f 1284/1793/2 1286/1797/2 1282/1798/2 +f 1281/1799/1 1287/1800/1 1283/1801/1 +f 1291/1802/13 1296/1803/13 1292/1749/13 +f 1290/1804/11 1294/1805/11 1289/1746/11 +f 1299/1806/12 1298/1807/12 1297/1808/12 +f 1303/1809/14 1301/1810/14 1302/1811/14 +f 1299/1812/13 1304/1813/13 1300/1814/13 +f 1298/1815/11 1302/1816/11 1297/1817/11 +f 1300/1814/2 1303/1818/2 1298/1819/2 +f 1297/1820/1 1301/1821/1 1299/1822/1 +f 1324/1823/11 1314/1824/11 1321/1825/11 +f 1328/1826/2 1324/1827/2 1322/1828/2 +f 1310/1829/12 1311/1830/12 1312/1831/12 +f 1319/1832/14 1323/1833/14 1328/1834/14 +f 1316/1835/1 1320/1836/1 1318/1837/1 +f 1320/1838/13 1326/1839/13 1317/1840/13 +f 1318/1841/15 1326/1842/15 1325/1843/15 +f 1328/1834/329 1320/1844/329 1319/1832/329 +f 1322/1845/16 1314/1846/16 1313/1847/16 +f 1316/1848/330 1324/1849/330 1323/1833/330 +f 1325/1843/12 1313/1847/12 1318/1841/12 +f 1305/1850/14 1308/1851/14 1307/1852/14 +f 1311/1853/11 1307/1854/11 1312/1855/11 +f 1312/1856/1 1308/1857/1 1310/1858/1 +f 1309/1859/2 1305/1860/2 1311/1861/2 +f 1310/1862/13 1306/1863/13 1309/1859/13 +f 1332/1864/329 1337/1865/329 1331/1866/329 +f 1335/1867/11 1333/1868/11 1334/1869/11 +f 1331/1866/14 1336/1870/14 1332/1864/14 +f 1330/1871/12 1334/1872/12 1329/1873/12 +f 1332/1874/2 1335/1875/2 1330/1876/2 +f 1329/1877/1 1333/1878/1 1331/1879/1 +f 1337/1880/13 1339/1881/13 1338/1882/13 +f 1329/1873/15 1339/1883/15 1330/1871/15 +f 1330/1876/331 1340/1884/331 1332/1874/331 +f 1331/1879/332 1338/1885/332 1329/1877/332 +f 1347/1886/11 1345/1887/11 1346/1888/11 +f 1341/1889/14 1348/1890/14 1344/1891/14 +f 1343/1892/12 1346/1893/12 1342/1894/12 +f 1344/1895/2 1347/1896/2 1343/1897/2 +f 1342/1898/1 1345/1899/1 1341/1900/1 +f 1356/1901/333 1350/1902/333 1352/1903/333 +f 1353/1904/334 1351/1905/334 1349/1906/334 +f 1351/1907/13 1356/1901/13 1352/1903/13 +f 1354/1908/11 1349/1909/11 1350/1910/11 +f 1364/1911/335 1358/1912/335 1360/1913/335 +f 1361/1914/336 1359/1915/336 1357/1916/336 +f 1363/1917/13 1360/1913/13 1359/1918/13 +f 1358/1919/11 1361/1920/11 1357/1921/11 +f 1448/1751/2 1449/1922/2 1447/1923/2 +f 1295/1774/337 1450/1924/337 1296/1925/337 +f 1292/1926/338 1447/1927/338 1290/1778/338 +f 1290/1804/11 1449/1928/11 1295/1929/11 +f 1452/1930/1 1453/1931/1 1451/1932/1 +f 1293/1775/339 1454/1933/339 1294/1776/339 +f 1289/1779/340 1451/1934/340 1291/1777/340 +f 1291/1802/13 1453/1935/13 1293/1936/13 +f 1502/1937/14 1496/1938/14 1499/1939/14 +f 1491/1940/14 1493/1941/14 1488/1942/14 +f 74/1/1 73/203/1 114/2/1 +f 14/4/1 13/88/1 54/5/1 +f 12/7/2 44/64/2 43/8/2 +f 23/1943/1 21/1944/1 22/10/1 +f 22/10/1 28/1945/1 27/11/1 +f 27/11/1 26/1946/1 25/12/1 +f 25/12/1 24/1947/1 23/1943/1 +f 23/1943/1 22/10/1 25/12/1 +f 11/9/3 27/26/3 28/13/3 +f 9/14/4 25/28/4 26/15/4 +f 7/17/5 23/30/5 24/18/5 +f 5/20/6 22/24/6 21/21/6 +f 12/23/7 28/1948/7 22/24/7 +f 10/25/8 26/1949/8 27/26/8 +f 9/14/9 8/1950/9 24/27/9 +f 6/29/10 21/1951/10 23/30/10 +f 30/1952/2 29/1953/2 31/31/2 +f 31/31/2 32/1954/2 33/32/2 +f 33/32/2 34/40/2 35/33/2 +f 35/33/2 36/1955/2 30/1952/2 +f 30/1952/2 31/31/2 35/33/2 +f 14/34/6 29/1956/6 30/35/6 +f 13/36/7 30/35/7 36/37/7 +f 19/39/8 35/33/8 34/40/8 +f 17/42/9 33/50/9 32/43/9 +f 15/45/10 31/52/10 29/46/10 +f 20/48/3 36/1955/3 35/33/3 +f 17/42/4 18/1957/4 34/49/4 +f 16/51/5 32/1958/5 31/52/5 +f 41/53/4 42/1959/4 50/54/4 +f 10/25/2 42/65/2 41/56/2 +f 8/58/2 40/66/2 39/59/2 +f 6/61/2 37/67/2 38/62/2 +f 12/7/2 5/63/2 38/62/2 +f 11/9/2 43/8/2 42/65/2 +f 9/57/2 41/56/2 40/66/2 +f 6/61/2 7/60/2 39/59/2 +f 46/70/2 45/1960/2 49/68/2 +f 45/1960/2 47/1961/2 49/68/2 +f 47/1961/2 48/1962/2 49/68/2 +f 49/68/2 50/79/2 51/69/2 +f 51/69/2 52/84/2 46/70/2 +f 40/71/5 48/1963/5 47/72/5 +f 37/74/6 45/1964/6 46/75/6 +f 38/76/7 46/75/7 52/77/7 +f 43/8/8 51/69/8 50/79/8 +f 41/53/9 49/55/9 48/80/9 +f 39/73/10 47/72/10 45/82/10 +f 43/8/3 44/64/3 52/84/3 +f 58/85/8 66/1965/8 67/86/8 +f 13/88/1 20/98/1 60/89/1 +f 19/90/1 18/99/1 58/91/1 +f 16/93/1 56/100/1 57/94/1 +f 14/4/1 53/6/1 55/96/1 +f 19/90/1 59/92/1 60/89/1 +f 17/95/1 57/94/1 58/91/1 +f 16/93/1 15/97/1 55/96/1 +f 63/102/1 61/1966/1 67/103/1 +f 61/1966/1 62/1967/1 67/103/1 +f 62/1967/1 68/1968/1 67/103/1 +f 67/103/1 66/1969/1 65/1970/1 +f 65/1970/1 64/101/1 67/103/1 +f 56/104/9 64/1971/9 65/105/9 +f 53/107/10 61/1972/10 63/108/10 +f 60/110/3 59/87/3 67/86/3 +f 58/112/4 57/106/4 65/105/4 +f 55/109/5 63/108/5 64/114/5 +f 54/116/6 62/120/6 61/117/6 +f 60/119/7 68/1973/7 62/120/7 +f 71/121/2 72/128/2 104/122/2 +f 83/1974/1 81/1975/1 82/124/1 +f 82/124/1 88/1976/1 87/125/1 +f 87/125/1 86/1977/1 85/126/1 +f 85/126/1 84/1978/1 83/1974/1 +f 83/1974/1 82/124/1 85/126/1 +f 71/121/3 87/141/3 88/127/3 +f 69/129/4 85/143/4 86/130/4 +f 2/132/5 83/145/5 84/133/5 +f 4/135/6 82/139/6 81/136/6 +f 72/138/7 88/1979/7 82/139/7 +f 70/140/8 86/1980/8 87/141/8 +f 69/129/9 1/1981/9 84/142/9 +f 3/144/10 81/1982/10 83/145/10 +f 90/147/2 89/1983/2 91/1984/2 +f 91/1984/2 92/1985/2 90/147/2 +f 92/1985/2 93/148/2 90/147/2 +f 93/148/2 94/155/2 95/164/2 +f 95/164/2 96/146/2 93/148/2 +f 74/149/6 89/1986/6 90/150/6 +f 73/151/7 90/150/7 96/152/7 +f 79/154/8 95/164/8 94/155/8 +f 77/157/9 93/166/9 92/158/9 +f 75/160/10 91/168/10 89/161/10 +f 80/163/3 96/146/3 95/164/3 +f 77/157/4 78/1987/4 94/165/4 +f 76/167/5 92/1988/5 91/168/5 +f 102/169/4 110/1989/4 109/170/4 +f 70/140/2 102/180/2 101/172/2 +f 2/174/2 1/181/2 100/175/2 +f 3/177/2 97/182/2 98/178/2 +f 72/128/2 4/179/2 98/178/2 +f 71/121/2 103/123/2 102/180/2 +f 1/181/2 69/173/2 101/172/2 +f 2/174/2 99/176/2 97/182/2 +f 106/185/2 105/1990/2 107/1991/2 +f 107/1991/2 108/1992/2 109/183/2 +f 109/183/2 110/194/2 111/184/2 +f 111/184/2 112/1993/2 106/185/2 +f 106/185/2 107/1991/2 109/183/2 +f 100/186/5 108/1994/5 107/187/5 +f 97/189/6 105/1995/6 106/190/6 +f 98/191/7 106/190/7 112/192/7 +f 103/123/8 111/184/8 110/194/8 +f 101/171/9 109/170/9 108/195/9 +f 99/188/10 107/187/10 105/197/10 +f 104/122/3 112/1993/3 111/184/3 +f 118/199/8 126/1996/8 127/200/8 +f 80/202/1 120/212/1 114/2/1 +f 79/204/1 78/213/1 118/205/1 +f 76/207/1 116/214/1 117/208/1 +f 75/210/1 74/1/1 113/3/1 +f 79/204/1 119/206/1 120/212/1 +f 78/213/1 77/209/1 117/208/1 +f 75/210/1 115/211/1 116/214/1 +f 123/217/1 121/1997/1 122/1998/1 +f 122/1998/1 128/1999/1 127/215/1 +f 127/215/1 126/2000/1 125/216/1 +f 125/216/1 124/2001/1 123/217/1 +f 123/217/1 122/1998/1 127/215/1 +f 116/218/9 124/2002/9 125/219/9 +f 113/221/10 121/2003/10 123/222/10 +f 119/201/3 127/200/3 128/224/3 +f 117/220/4 125/219/4 126/226/4 +f 115/223/5 123/222/5 124/228/5 +f 114/230/6 122/234/6 121/231/6 +f 120/233/7 128/2004/7 122/234/7 +f 134/235/11 130/2005/11 153/236/11 +f 154/238/12 153/2006/12 130/239/12 +f 129/241/13 133/254/13 151/242/13 +f 143/244/11 144/2007/11 140/245/11 +f 142/247/13 141/257/13 137/248/13 +f 142/250/14 144/2008/14 143/251/14 +f 129/241/2 143/256/2 139/253/2 +f 130/255/2 141/257/2 143/256/2 +f 130/255/2 134/2009/2 137/248/2 +f 132/258/1 142/2010/1 138/259/1 +f 144/261/1 142/2010/1 132/258/1 +f 131/262/1 135/2011/1 140/263/1 +f 147/264/12 148/267/12 146/265/12 +f 148/267/15 150/2012/15 149/268/15 +f 145/266/16 151/285/16 152/269/16 +f 147/271/1 152/2013/1 156/272/1 +f 156/272/1 155/2014/1 148/270/1 +f 155/2014/1 150/2015/1 148/270/1 +f 146/274/2 149/2016/2 153/275/2 +f 153/275/2 154/243/2 145/273/2 +f 154/243/2 151/242/2 145/273/2 +f 132/276/12 155/2017/12 156/277/12 +f 136/279/11 150/2018/11 155/280/11 +f 156/282/13 152/2019/13 135/283/13 +f 151/285/12 133/2020/12 139/286/12 +f 139/286/12 140/2021/12 152/269/12 +f 140/2021/12 135/2022/12 152/269/12 +f 149/268/12 150/2012/12 138/2023/12 +f 150/2012/12 136/2024/12 138/2023/12 +f 138/2023/12 137/287/12 149/268/12 +f 230/289/1 229/491/1 270/290/1 +f 170/292/1 169/378/1 210/293/1 +f 167/295/2 168/302/2 200/296/2 +f 179/2025/1 177/2026/1 178/298/1 +f 178/298/1 184/2027/1 183/299/1 +f 183/299/1 182/2028/1 181/300/1 +f 181/300/1 180/2029/1 179/2025/1 +f 179/2025/1 178/298/1 181/300/1 +f 167/295/3 183/315/3 184/301/3 +f 165/303/4 181/317/4 182/304/4 +f 163/306/5 179/319/5 180/307/5 +f 161/309/6 178/313/6 177/310/6 +f 168/312/7 184/2030/7 178/313/7 +f 167/295/8 166/346/8 182/314/8 +f 165/303/9 164/2031/9 180/316/9 +f 162/318/10 177/2032/10 179/319/10 +f 186/321/2 185/2033/2 187/2034/2 +f 187/2034/2 188/2035/2 186/321/2 +f 188/2035/2 189/322/2 186/321/2 +f 189/322/2 190/329/2 191/338/2 +f 191/338/2 192/320/2 189/322/2 +f 170/323/6 185/2036/6 186/324/6 +f 169/325/7 186/324/7 192/326/7 +f 175/328/8 191/338/8 190/329/8 +f 173/331/9 189/340/9 188/332/9 +f 171/334/10 187/342/10 185/335/10 +f 176/337/3 192/320/3 191/338/3 +f 173/331/4 174/2037/4 190/339/4 +f 171/334/5 172/2038/5 188/341/5 +f 198/343/4 206/2039/4 205/344/4 +f 166/346/2 198/355/2 197/347/2 +f 164/349/2 196/356/2 195/350/2 +f 162/352/2 193/357/2 194/353/2 +f 168/302/2 161/354/2 194/353/2 +f 167/295/2 199/297/2 198/355/2 +f 165/348/2 197/347/2 196/356/2 +f 162/352/2 163/351/2 195/350/2 +f 202/360/2 201/2040/2 205/358/2 +f 201/2040/2 203/2041/2 205/358/2 +f 203/2041/2 204/2042/2 205/358/2 +f 205/358/2 206/369/2 207/359/2 +f 207/359/2 208/2043/2 202/360/2 +f 196/361/5 204/2044/5 203/362/5 +f 193/364/6 201/2045/6 202/365/6 +f 194/366/7 202/365/7 208/367/7 +f 199/297/8 207/359/8 206/369/8 +f 197/345/9 205/344/9 204/370/9 +f 195/363/10 203/362/10 201/372/10 +f 200/296/3 208/2043/3 207/359/3 +f 214/374/8 222/2046/8 223/375/8 +f 176/377/1 216/387/1 210/293/1 +f 175/379/1 174/388/1 214/380/1 +f 172/382/1 212/389/1 213/383/1 +f 170/292/1 209/294/1 211/385/1 +f 175/379/1 215/381/1 216/387/1 +f 174/388/1 173/384/1 213/383/1 +f 172/382/1 171/386/1 211/385/1 +f 219/391/1 217/2047/1 223/392/1 +f 217/2047/1 218/2048/1 223/392/1 +f 218/2048/1 224/2049/1 223/392/1 +f 223/392/1 222/2050/1 221/2051/1 +f 221/2051/1 220/390/1 223/392/1 +f 212/393/9 220/2052/9 221/394/9 +f 209/396/10 217/2053/10 219/397/10 +f 215/376/3 223/375/3 224/399/3 +f 213/395/4 221/394/4 222/401/4 +f 211/398/5 219/397/5 220/403/5 +f 210/405/6 218/409/6 217/406/6 +f 216/408/7 224/2054/7 218/409/7 +f 227/410/2 228/417/2 260/411/2 +f 239/414/1 237/2055/1 243/415/1 +f 237/2055/1 238/2056/1 243/415/1 +f 238/2056/1 244/2057/1 243/415/1 +f 243/415/1 242/2058/1 241/2059/1 +f 241/2059/1 240/413/1 243/415/1 +f 227/410/3 243/430/3 244/416/3 +f 225/418/4 241/432/4 242/419/4 +f 158/421/5 239/434/5 240/422/5 +f 160/424/6 238/428/6 237/425/6 +f 228/427/7 244/2060/7 238/428/7 +f 226/429/8 242/2061/8 243/430/8 +f 225/418/9 157/2062/9 240/431/9 +f 159/433/10 237/2063/10 239/434/10 +f 246/2064/2 245/2065/2 247/435/2 +f 247/435/2 248/2066/2 249/436/2 +f 249/436/2 250/444/2 251/437/2 +f 251/437/2 252/2067/2 246/2064/2 +f 246/2064/2 247/435/2 251/437/2 +f 230/438/6 245/2068/6 246/439/6 +f 229/440/7 246/439/7 252/441/7 +f 235/443/8 251/437/8 250/444/8 +f 233/446/9 249/454/9 248/447/9 +f 231/449/10 247/456/10 245/450/10 +f 236/452/3 252/2067/3 251/437/3 +f 233/446/4 234/2069/4 250/453/4 +f 231/449/5 232/2070/5 248/455/5 +f 258/457/4 266/2071/4 265/458/4 +f 226/429/2 258/468/2 257/460/2 +f 158/462/2 157/469/2 256/463/2 +f 159/465/2 253/470/2 254/466/2 +f 228/417/2 160/467/2 254/466/2 +f 227/410/2 259/412/2 258/468/2 +f 157/469/2 225/461/2 257/460/2 +f 158/462/2 255/464/2 253/470/2 +f 262/473/2 261/2072/2 263/2073/2 +f 263/2073/2 264/2074/2 265/471/2 +f 265/471/2 266/482/2 267/472/2 +f 267/472/2 268/2075/2 262/473/2 +f 262/473/2 263/2073/2 265/471/2 +f 256/474/5 264/2076/5 263/475/5 +f 253/477/6 261/2077/6 262/478/6 +f 254/479/7 262/478/7 268/480/7 +f 259/412/8 267/472/8 266/482/8 +f 257/459/9 265/458/9 264/483/9 +f 255/476/10 263/475/10 261/485/10 +f 260/411/3 268/2075/3 267/472/3 +f 274/487/8 282/2078/8 283/488/8 +f 236/490/1 276/500/1 270/290/1 +f 235/492/1 234/501/1 274/493/1 +f 232/495/1 272/502/1 273/496/1 +f 231/498/1 230/289/1 269/291/1 +f 235/492/1 275/494/1 276/500/1 +f 234/501/1 233/497/1 273/496/1 +f 231/498/1 271/499/1 272/502/1 +f 279/505/1 277/2079/1 278/2080/1 +f 278/2080/1 284/2081/1 283/503/1 +f 283/503/1 282/2082/1 281/504/1 +f 281/504/1 280/2083/1 279/505/1 +f 279/505/1 278/2080/1 283/503/1 +f 272/506/9 280/2084/9 281/507/9 +f 269/509/10 277/2085/10 279/510/10 +f 275/489/3 283/488/3 284/512/3 +f 273/508/4 281/507/4 282/514/4 +f 271/511/5 279/510/5 280/516/5 +f 270/518/6 278/522/6 277/519/6 +f 276/521/7 284/2086/7 278/522/7 +f 290/523/11 286/2087/11 309/524/11 +f 310/526/12 309/2088/12 286/527/12 +f 285/529/13 289/542/13 307/530/13 +f 299/532/11 300/2089/11 296/533/11 +f 298/535/13 297/545/13 293/536/13 +f 298/538/14 300/2090/14 299/539/14 +f 285/529/2 299/544/2 295/541/2 +f 286/543/2 297/545/2 299/544/2 +f 286/543/2 290/2091/2 293/536/2 +f 288/546/1 298/2092/1 294/547/1 +f 300/549/1 298/2092/1 288/546/1 +f 287/550/1 291/2093/1 296/551/1 +f 303/552/12 304/555/12 302/553/12 +f 304/555/15 306/2094/15 305/556/15 +f 301/554/16 307/573/16 308/557/16 +f 303/559/1 308/2095/1 312/560/1 +f 312/560/1 311/2096/1 304/558/1 +f 311/2096/1 306/2097/1 304/558/1 +f 302/562/2 305/2098/2 309/563/2 +f 309/563/2 310/531/2 301/561/2 +f 310/531/2 307/530/2 301/561/2 +f 288/564/12 311/2099/12 312/565/12 +f 292/567/11 306/2100/11 311/568/11 +f 312/570/13 308/2101/13 291/571/13 +f 307/573/12 289/2102/12 295/2103/12 +f 295/2103/12 296/574/12 307/573/12 +f 296/574/12 291/2104/12 308/557/12 +f 290/2105/12 305/556/12 293/576/12 +f 305/556/12 306/2094/12 294/575/12 +f 306/2094/12 292/2106/12 294/575/12 +f 315/577/12 316/2107/12 324/578/12 +f 319/580/14 320/2108/14 317/581/14 +f 315/583/13 317/2109/13 320/584/13 +f 314/586/11 319/2110/11 318/587/11 +f 319/590/2 314/2111/2 323/601/2 +f 324/589/2 316/585/2 320/584/2 +f 319/590/2 323/601/2 324/589/2 +f 317/593/1 315/2112/1 321/603/1 +f 322/591/1 313/2113/1 318/592/1 +f 317/593/1 321/603/1 322/591/1 +f 322/594/12 323/598/12 314/595/12 +f 322/594/16 326/600/16 327/597/16 +f 325/599/12 328/2114/12 327/597/12 +f 324/578/15 328/2114/15 325/599/15 +f 323/601/2 327/2115/2 328/602/2 +f 321/603/1 325/2116/1 326/604/1 +f 336/605/17 335/2117/17 662/606/17 +f 334/608/18 333/2118/18 664/609/18 +f 332/611/19 331/2119/19 666/612/19 +f 330/614/20 329/2120/20 668/615/20 +f 335/617/21 334/608/21 663/610/21 +f 338/621/11 343/2121/11 342/619/11 +f 343/2121/11 347/2122/11 342/619/11 +f 347/2122/11 346/2123/11 342/619/11 +f 339/622/12 340/2124/12 338/623/12 +f 329/625/22 336/605/22 661/607/22 +f 331/627/23 330/614/23 667/616/23 +f 344/631/13 340/647/13 339/2125/13 +f 339/2125/13 341/2126/13 344/631/13 +f 341/2126/13 345/629/13 344/631/13 +f 354/632/2 356/656/2 355/633/2 +f 341/635/1 510/676/1 512/636/1 +f 347/638/14 348/2127/14 345/639/14 +f 333/641/24 332/611/24 665/613/24 +f 344/643/25 348/2127/25 347/638/25 +f 342/645/26 346/640/26 345/639/26 +f 340/647/2 349/2128/2 351/648/2 +f 350/650/11 354/2129/11 353/651/11 +f 349/653/14 353/2130/14 355/654/14 +f 351/648/13 355/633/13 356/656/13 +f 352/658/12 356/2131/12 354/659/12 +f 350/661/2 349/2128/2 340/647/2 +f 352/657/2 350/661/2 344/631/2 +f 338/649/2 351/648/2 352/657/2 +f 506/663/11 510/2132/11 509/664/11 +f 505/666/14 509/2133/14 511/667/14 +f 507/669/13 511/2134/13 512/670/13 +f 508/672/12 512/2135/12 510/673/12 +f 339/675/1 509/678/1 510/676/1 +f 339/675/1 337/679/1 511/677/1 +f 512/636/1 511/677/1 337/679/1 +f 505/680/1 507/2136/1 508/681/1 +f 335/685/11 336/2137/11 331/683/11 +f 336/2137/11 329/2138/11 331/683/11 +f 329/2138/11 330/2139/11 331/683/11 +f 331/683/11 332/2140/11 333/684/11 +f 333/684/11 334/2141/11 335/685/11 +f 669/686/27 681/709/27 692/687/27 +f 671/689/28 683/724/28 682/690/28 +f 678/692/29 690/702/29 689/693/29 +f 675/695/30 687/704/30 686/696/30 +f 672/698/31 684/706/31 683/699/31 +f 679/701/32 691/728/32 690/702/32 +f 676/703/33 688/711/33 687/704/33 +f 673/705/34 685/2142/34 684/706/34 +f 680/688/35 692/687/35 691/707/35 +f 670/691/36 682/690/36 681/709/36 +f 677/710/37 689/720/37 688/711/37 +f 674/697/38 686/696/38 685/712/38 +f 687/704/39 688/711/39 700/714/39 +f 684/706/40 685/2142/40 697/716/40 +f 692/687/41 704/723/41 703/718/41 +f 682/690/42 694/725/42 693/719/42 +f 689/720/43 701/2143/43 700/714/43 +f 685/712/44 686/696/44 698/721/44 +f 681/709/45 693/719/45 704/723/45 +f 683/724/46 695/2144/46 694/725/46 +f 690/702/47 702/729/47 701/726/47 +f 687/704/48 699/715/48 698/721/48 +f 684/706/49 696/717/49 695/727/49 +f 691/728/50 703/2145/50 702/729/50 +f 703/730/51 715/750/51 714/731/51 +f 700/714/52 712/739/52 711/733/52 +f 697/716/53 709/2146/53 708/734/53 +f 704/723/54 716/741/54 715/735/54 +f 693/719/55 694/725/55 706/736/55 +f 700/714/56 701/2143/56 713/738/56 +f 698/721/57 710/745/57 709/740/57 +f 693/719/58 705/737/58 716/741/58 +f 694/725/59 695/2144/59 707/742/59 +f 702/732/60 714/731/60 713/743/60 +f 699/715/61 711/733/61 710/745/61 +f 696/717/62 708/734/62 707/746/62 +f 708/747/63 720/754/63 719/748/63 +f 715/750/64 727/756/64 726/751/64 +f 712/739/65 724/759/65 723/752/65 +f 709/753/66 721/761/66 720/754/66 +f 715/750/67 716/2147/67 728/755/67 +f 706/736/68 718/2148/68 717/757/68 +f 712/739/69 713/738/69 725/758/69 +f 710/760/70 722/2149/70 721/761/70 +f 716/741/71 705/737/71 717/757/71 +f 706/763/72 707/749/72 719/748/72 +f 714/731/73 726/751/73 725/765/73 +f 711/733/74 723/752/74 722/766/74 +f 717/767/11 718/764/11 721/761/11 +f 718/764/11 719/748/11 721/761/11 +f 719/748/11 720/754/11 721/761/11 +f 721/761/11 722/2149/11 725/765/11 +f 722/2149/11 723/2150/11 725/765/11 +f 723/2150/11 724/2151/11 725/765/11 +f 725/765/11 726/751/11 727/756/11 +f 727/756/11 728/755/11 717/767/11 +f 725/765/11 727/756/11 721/761/11 +f 777/768/12 782/872/12 781/769/12 +f 736/771/75 740/2152/75 739/772/75 +f 730/774/11 735/2153/11 734/775/11 +f 732/777/12 736/771/12 735/773/12 +f 729/779/14 734/788/14 733/780/14 +f 731/782/13 733/790/13 736/783/13 +f 739/785/2 740/791/2 737/786/2 +f 734/788/76 738/2154/76 737/789/76 +f 733/790/77 737/786/77 740/791/77 +f 734/775/78 735/2153/78 739/792/78 +f 780/794/14 784/2155/14 783/795/14 +f 748/797/79 752/2156/79 751/798/79 +f 742/800/80 747/2157/80 746/801/80 +f 744/803/30 748/797/30 747/799/30 +f 743/805/27 741/2158/27 746/806/27 +f 743/808/81 745/815/81 748/809/81 +f 751/811/82 752/816/82 749/812/82 +f 746/806/83 750/2159/83 749/814/83 +f 745/815/84 749/812/84 752/816/84 +f 746/801/85 747/2157/85 751/817/85 +f 778/819/11 783/2160/11 782/820/11 +f 759/822/86 760/2161/86 764/823/86 +f 754/825/87 759/2162/87 758/826/87 +f 756/828/12 760/2161/12 759/822/12 +f 755/830/14 753/2163/14 758/831/14 +f 755/833/88 757/841/88 760/834/88 +f 763/836/89 764/2164/89 761/837/89 +f 757/832/90 758/831/90 762/839/90 +f 757/841/91 761/2165/91 764/842/91 +f 758/826/92 759/2162/92 763/836/92 +f 784/843/93 788/875/93 787/844/93 +f 772/846/94 776/2166/94 775/847/94 +f 766/849/95 771/2167/95 770/850/95 +f 768/852/12 772/846/12 771/848/12 +f 765/854/14 770/2168/14 769/855/14 +f 767/857/96 769/865/96 772/858/96 +f 775/860/97 776/2169/97 773/861/97 +f 769/855/98 770/2168/98 774/863/98 +f 769/865/99 773/2170/99 776/866/99 +f 770/850/100 771/2167/100 775/860/100 +f 779/867/13 781/2171/13 784/868/13 +f 787/844/1 788/875/1 785/870/1 +f 782/872/101 786/2172/101 785/873/101 +f 781/874/102 785/870/102 788/875/102 +f 782/820/103 783/2160/103 787/876/103 +f 801/878/1 806/915/1 805/879/1 +f 796/881/104 800/2173/104 799/882/104 +f 790/884/11 795/2174/11 794/885/11 +f 792/887/1 796/2175/1 795/888/1 +f 789/890/2 794/897/2 793/891/2 +f 791/892/13 793/891/13 796/893/13 +f 799/882/12 800/2173/12 797/895/12 +f 794/897/105 798/2176/105 797/898/105 +f 793/891/106 797/898/106 800/899/106 +f 794/885/107 795/2174/107 799/900/107 +f 804/902/2 808/912/2 807/903/2 +f 802/905/11 807/2177/11 806/906/11 +f 808/908/25 812/2178/25 811/909/25 +f 803/911/13 805/917/13 808/912/13 +f 811/909/14 812/2178/14 809/913/14 +f 806/915/108 810/2179/108 809/916/108 +f 805/917/109 809/2180/109 812/918/109 +f 806/906/110 807/2177/110 811/919/110 +f 825/921/111 830/960/111 829/922/111 +f 820/924/112 824/2181/112 823/925/112 +f 813/927/11 814/2182/11 819/928/11 +f 816/930/111 820/924/111 819/926/111 +f 813/932/113 818/941/113 817/933/113 +f 816/935/13 815/2183/13 817/936/13 +f 823/938/114 824/943/114 821/939/114 +f 818/941/115 822/2184/115 821/942/115 +f 817/936/116 821/939/116 824/943/116 +f 818/929/117 819/928/117 823/944/117 +f 828/946/113 832/952/113 831/947/113 +f 826/949/11 831/2185/11 830/950/11 +f 832/952/118 836/2186/118 835/953/118 +f 827/954/13 829/2187/13 832/955/13 +f 835/957/119 836/963/119 833/958/119 +f 830/960/120 834/2188/120 833/961/120 +f 829/962/121 833/958/121 836/963/121 +f 830/950/122 831/2185/122 835/965/122 +f 849/967/119 854/1003/119 853/968/119 +f 844/970/123 848/2189/123 847/971/123 +f 837/973/11 838/2190/11 843/974/11 +f 840/976/119 844/970/119 843/972/119 +f 837/978/114 842/986/114 841/979/114 +f 839/980/13 841/979/13 844/981/13 +f 847/983/111 848/2191/111 845/984/111 +f 842/986/124 846/2192/124 845/987/124 +f 841/979/125 845/987/125 848/988/125 +f 842/975/126 843/974/126 847/989/126 +f 852/991/114 856/997/114 855/992/114 +f 849/994/11 850/2193/11 855/995/11 +f 856/997/127 860/1006/127 859/998/127 +f 851/999/13 853/1005/13 856/997/13 +f 859/1000/113 860/2194/113 857/1001/113 +f 854/1003/128 858/2195/128 857/1004/128 +f 853/1005/129 857/2196/129 860/1006/129 +f 854/996/130 855/995/130 859/1007/130 +f 873/1009/131 878/2197/131 877/1010/131 +f 868/1012/132 872/2198/132 871/1013/132 +f 862/1015/11 867/2199/11 866/1016/11 +f 864/1018/131 868/2200/131 867/1019/131 +f 861/1021/133 866/2201/133 865/1022/133 +f 864/1024/13 863/1023/13 865/1022/13 +f 871/1013/134 872/2198/134 869/1026/134 +f 866/1028/135 870/2202/135 869/1029/135 +f 865/1022/136 869/2203/136 872/1031/136 +f 866/1016/137 867/2199/137 871/1032/137 +f 876/1034/133 880/1044/133 879/1035/133 +f 874/1037/11 879/2204/11 878/1038/11 +f 880/1040/138 884/2205/138 883/1041/138 +f 875/1043/13 877/1050/13 880/1044/13 +f 883/1041/139 884/2205/139 881/1045/139 +f 878/1047/140 882/2206/140 881/1048/140 +f 877/1050/141 881/2207/141 884/1051/141 +f 878/1038/142 879/2204/142 883/1052/142 +f 897/1054/139 902/2208/139 901/1055/139 +f 892/1057/143 896/1077/143 895/1058/143 +f 885/1060/11 886/2209/11 891/1061/11 +f 888/1063/139 892/2210/139 891/1064/139 +f 885/1066/134 890/1074/134 889/1067/134 +f 888/1069/13 887/2211/13 889/1070/13 +f 895/1058/131 896/1077/131 893/1072/131 +f 890/1074/144 894/2212/144 893/1075/144 +f 889/1076/145 893/1072/145 896/1077/145 +f 890/1062/146 891/1061/146 895/1078/146 +f 900/1080/134 904/2213/134 903/1081/134 +f 898/1083/11 903/2214/11 902/1084/11 +f 904/1086/147 908/1097/147 907/1087/147 +f 899/1089/13 901/1096/13 904/1086/13 +f 907/1087/133 908/1097/133 905/1091/133 +f 902/1093/148 906/2215/148 905/1094/148 +f 901/1096/149 905/1091/149 908/1097/149 +f 902/1084/150 903/2214/150 907/1098/150 +f 915/1100/151 916/2216/151 920/1101/151 +f 909/1103/152 910/2217/152 915/1104/152 +f 912/1106/38 916/2216/38 915/1100/38 +f 911/1108/35 909/2218/35 914/1109/35 +f 911/1111/153 913/1117/153 916/1112/153 +f 918/1114/154 919/1102/154 920/1101/154 +f 914/1109/155 918/2219/155 917/1116/155 +f 913/1117/156 917/2220/156 920/1118/156 +f 914/1105/157 915/1104/157 919/1119/157 +f 928/1121/158 932/2221/158 931/1122/158 +f 922/1124/159 927/2222/159 926/1125/159 +f 924/1127/34 928/2223/34 927/1128/34 +f 923/1130/32 921/2224/32 926/1131/32 +f 924/1133/160 923/1130/160 925/1132/160 +f 931/1122/161 932/2221/161 929/1135/161 +f 926/1137/162 930/2225/162 929/1138/162 +f 925/1132/163 929/2226/163 932/1140/163 +f 926/1125/164 927/2222/164 931/1141/164 +f 940/1143/165 944/2227/165 943/1144/165 +f 934/1146/166 939/2228/166 938/1147/166 +f 936/1149/29 940/1156/29 939/1150/29 +f 935/1152/31 933/2229/31 938/1153/31 +f 936/1149/167 935/2230/167 937/1155/167 +f 943/1144/168 944/2227/168 941/1157/168 +f 937/1154/169 938/1153/169 942/1159/169 +f 937/1155/170 941/2231/170 944/1161/170 +f 938/1147/171 939/2228/171 943/1162/171 +f 951/1164/172 952/1177/172 956/1165/172 +f 945/1167/173 946/2232/173 951/1168/173 +f 948/1170/37 952/2233/37 951/1171/37 +f 947/1173/28 945/2234/28 950/1174/28 +f 947/1176/174 949/1185/174 952/1177/174 +f 954/1179/175 955/2235/175 956/1180/175 +f 950/1182/176 954/2236/176 953/1183/176 +f 949/1185/341 953/2237/341 956/1165/341 +f 950/1169/178 951/1168/178 955/1186/178 +f 963/1188/179 964/1202/179 968/1189/179 +f 958/1191/180 963/2238/180 962/1192/180 +f 960/1194/33 964/2239/33 963/1195/33 +f 959/1197/36 957/2240/36 962/1198/36 +f 960/1200/181 959/2241/181 961/1201/181 +f 967/1190/182 968/1189/182 965/1203/182 +f 962/1198/183 966/2242/183 965/1205/183 +f 961/1201/184 965/1203/184 968/1189/184 +f 962/1192/185 963/2238/185 967/1206/185 +f 975/1208/186 976/2243/186 980/1209/186 +f 970/1211/187 975/2244/187 974/1212/187 +f 972/1214/27 976/2243/27 975/1208/27 +f 969/1216/30 974/2245/30 973/1217/30 +f 972/1219/188 971/2246/188 973/1220/188 +f 979/1222/189 980/1228/189 977/1223/189 +f 973/1217/190 974/2245/190 978/1225/190 +f 973/1227/191 977/1223/191 980/1228/191 +f 974/1212/192 975/2244/192 979/1230/192 +f 988/1232/193 992/1246/193 991/1233/193 +f 982/1235/194 987/2247/194 986/1236/194 +f 982/1238/35 984/2248/35 988/1232/35 +f 983/1239/38 981/2249/38 986/1240/38 +f 983/1242/195 985/2250/195 988/1243/195 +f 990/1245/196 991/1233/196 992/1246/196 +f 985/1241/197 986/1240/197 990/1248/197 +f 985/1250/198 989/2251/198 992/1251/198 +f 986/1236/199 987/2247/199 991/1253/199 +f 999/1255/200 1000/1273/200 1004/1256/200 +f 993/1258/201 994/2252/201 999/1259/201 +f 996/1261/32 1000/1268/32 999/1262/32 +f 995/1264/34 993/2253/34 998/1265/34 +f 995/1267/202 997/2254/202 1000/1268/202 +f 1003/1257/203 1004/1256/203 1001/1269/203 +f 998/1265/204 1002/2255/204 1001/1271/204 +f 997/1272/205 1001/1269/205 1004/1256/205 +f 998/1260/206 999/1259/206 1003/1274/206 +f 1012/1276/207 1016/1294/207 1015/1277/207 +f 1006/1279/208 1011/2256/208 1010/1280/208 +f 1008/1282/31 1012/2257/31 1011/1283/31 +f 1007/1285/29 1005/2258/29 1010/1286/29 +f 1008/1288/209 1007/1285/209 1009/1287/209 +f 1015/1277/210 1016/1294/210 1013/1290/210 +f 1010/1286/211 1014/2259/211 1013/1292/211 +f 1009/1293/212 1013/1290/212 1016/1294/212 +f 1010/1280/213 1011/2256/213 1015/1295/213 +f 1023/1297/214 1024/1319/214 1028/1298/214 +f 1018/1300/215 1023/2260/215 1022/1301/215 +f 1020/1303/28 1024/2261/28 1023/1304/28 +f 1019/1306/37 1017/2262/37 1022/1307/37 +f 1019/1309/216 1021/2263/216 1024/1310/216 +f 1027/1312/217 1028/2264/217 1025/1313/217 +f 1022/1315/218 1026/2265/218 1025/1316/218 +f 1021/1318/219 1025/2266/219 1028/1298/219 +f 1022/1301/220 1023/2260/220 1027/1320/220 +f 1036/1322/221 1040/1341/221 1039/1323/221 +f 1030/1325/222 1035/2267/222 1034/1326/222 +f 1032/1328/36 1036/2268/36 1035/1329/36 +f 1031/1331/33 1029/2269/33 1034/1332/33 +f 1031/1334/223 1033/2270/223 1036/1335/223 +f 1039/1323/224 1040/1341/224 1037/1337/224 +f 1034/1332/225 1038/2271/225 1037/1339/225 +f 1033/1340/226 1037/1337/226 1040/1341/226 +f 1034/1326/227 1035/2267/227 1039/1342/227 +f 1047/1344/228 1048/1358/228 1052/1345/228 +f 1042/1347/229 1047/2272/229 1046/1348/229 +f 1044/1350/14 1048/2273/14 1047/1351/14 +f 1043/1353/12 1041/2274/12 1046/1354/12 +f 1044/1356/230 1043/2275/230 1045/1357/230 +f 1051/1346/231 1052/1345/231 1049/1359/231 +f 1045/1355/232 1046/1354/232 1050/1361/232 +f 1045/1357/233 1049/1359/233 1052/1345/233 +f 1046/1348/234 1047/2272/234 1051/1363/234 +f 1059/1365/235 1060/1383/235 1064/1366/235 +f 1054/1368/236 1059/2276/236 1058/1369/236 +f 1056/1371/1 1060/2277/1 1059/1372/1 +f 1055/1374/2 1053/2278/2 1058/1375/2 +f 1055/1374/237 1057/1376/237 1060/1377/237 +f 1063/1367/238 1064/1366/238 1061/1379/238 +f 1058/1375/239 1062/2279/239 1061/1381/239 +f 1057/1382/240 1061/1379/240 1064/1366/240 +f 1058/1369/241 1059/2276/241 1063/1384/241 +f 1072/1386/242 1076/1404/242 1075/1387/242 +f 1066/1389/243 1071/2280/243 1070/1390/243 +f 1068/1392/2 1072/1399/2 1071/1393/2 +f 1067/1395/1 1065/2281/1 1070/1396/1 +f 1068/1392/244 1067/2282/244 1069/1398/244 +f 1075/1387/245 1076/1404/245 1073/1400/245 +f 1070/1396/246 1074/2283/246 1073/1402/246 +f 1069/1403/247 1073/1400/247 1076/1404/247 +f 1070/1390/248 1071/2280/248 1075/1405/248 +f 1083/1407/249 1084/2284/249 1088/1408/249 +f 1077/1410/250 1078/2285/250 1083/1411/250 +f 1080/1413/38 1084/2284/38 1083/1407/38 +f 1079/1415/35 1077/2286/35 1082/1416/35 +f 1079/1418/251 1081/1425/251 1084/1419/251 +f 1087/1409/252 1088/1408/252 1085/1421/252 +f 1081/1417/253 1082/1416/253 1086/1423/253 +f 1081/1425/254 1085/2287/254 1088/1426/254 +f 1082/1412/255 1083/1411/255 1087/1427/255 +f 1095/1429/256 1096/2288/256 1100/1430/256 +f 1090/1432/257 1095/2289/257 1094/1433/257 +f 1092/1435/35 1096/2288/35 1095/1429/35 +f 1091/1437/38 1089/2290/38 1094/1438/38 +f 1091/1440/258 1093/1446/258 1096/1441/258 +f 1098/1443/259 1099/1431/259 1100/1430/259 +f 1094/1438/260 1098/2291/260 1097/1445/260 +f 1093/1446/261 1097/2292/261 1100/1447/261 +f 1094/1433/262 1095/2289/262 1099/1448/262 +f 1108/1450/263 1112/1471/263 1111/1451/263 +f 1101/1453/264 1102/2293/264 1107/1454/264 +f 1104/1456/28 1108/2294/28 1107/1457/28 +f 1101/1459/37 1106/2295/37 1105/1460/37 +f 1103/1462/265 1105/1470/265 1108/1450/265 +f 1111/1464/266 1112/2296/266 1109/1465/266 +f 1105/1467/267 1106/2297/267 1110/1468/267 +f 1105/1470/268 1109/2298/268 1112/1471/268 +f 1106/1455/269 1107/1454/269 1111/1472/269 +f 1119/1474/270 1120/2299/270 1124/1475/270 +f 1113/1477/271 1114/2300/271 1119/1474/271 +f 1116/1479/37 1120/2301/37 1119/1480/37 +f 1115/1482/28 1113/2302/28 1118/1483/28 +f 1116/1485/272 1115/2303/272 1117/1486/272 +f 1123/1488/273 1124/2304/273 1121/1489/273 +f 1117/1491/274 1118/2305/274 1122/1492/274 +f 1117/1486/275 1121/2306/275 1124/1494/275 +f 1118/1478/276 1119/1474/276 1123/1476/276 +f 1132/1496/277 1136/1515/277 1135/1497/277 +f 1126/1499/278 1131/2307/278 1130/1500/278 +f 1128/1502/14 1132/2308/14 1131/1503/14 +f 1125/1505/12 1130/2309/12 1129/1506/12 +f 1127/1508/279 1129/1514/279 1132/1496/279 +f 1135/1497/280 1136/1515/280 1133/1510/280 +f 1129/1506/281 1130/2309/281 1134/1512/281 +f 1129/1514/282 1133/1510/282 1136/1515/282 +f 1130/1500/283 1131/2307/283 1135/1516/283 +f 1143/1518/284 1144/1538/284 1148/1519/284 +f 1138/1521/285 1143/2310/285 1142/1522/285 +f 1138/1524/131 1140/2311/131 1144/1525/131 +f 1137/1527/133 1142/2312/133 1141/1528/133 +f 1139/1529/286 1141/1528/286 1144/1530/286 +f 1147/1520/287 1148/1519/287 1145/1532/287 +f 1142/1534/288 1146/2313/288 1145/1535/288 +f 1141/1537/289 1145/1532/289 1148/1519/289 +f 1142/1522/290 1143/2310/290 1147/1539/290 +f 1156/1541/291 1160/1561/291 1159/1542/291 +f 1150/1544/292 1155/2314/292 1154/1545/292 +f 1152/1547/133 1156/2315/133 1155/1548/133 +f 1151/1550/131 1149/2316/131 1154/1551/131 +f 1152/1553/293 1151/1550/293 1153/1552/293 +f 1159/1542/294 1160/1561/294 1157/1555/294 +f 1154/1557/295 1158/2317/295 1157/1558/295 +f 1153/1560/296 1157/1555/296 1160/1561/296 +f 1154/1545/297 1155/2314/297 1159/1562/297 +f 1168/1564/298 1172/2318/298 1171/1565/298 +f 1162/1567/299 1167/2319/299 1166/1568/299 +f 1164/1570/119 1168/1564/119 1167/1566/119 +f 1161/1572/114 1166/1579/114 1165/1573/114 +f 1164/1570/300 1163/2320/300 1165/1575/300 +f 1171/1576/301 1172/1582/301 1169/1577/301 +f 1166/1579/302 1170/2321/302 1169/1580/302 +f 1165/1581/303 1169/1577/303 1172/1582/303 +f 1166/1568/304 1167/2319/304 1171/1584/304 +f 1179/1586/305 1180/2322/305 1184/1587/305 +f 1174/1589/306 1179/1586/306 1178/1590/306 +f 1176/1592/114 1180/1599/114 1179/1593/114 +f 1175/1595/119 1173/2323/119 1178/1596/119 +f 1176/1592/307 1175/2324/307 1177/1598/307 +f 1183/1600/308 1184/1605/308 1181/1601/308 +f 1178/1596/309 1182/2325/309 1181/1603/309 +f 1177/1604/310 1181/1601/310 1184/1605/310 +f 1178/1590/311 1179/1586/311 1183/1588/311 +f 1200/1608/23 1199/2326/23 1191/1609/23 +f 1198/1611/22 1197/2327/22 1189/1612/22 +f 1196/1614/21 1195/2328/21 1187/1615/21 +f 1194/1617/24 1193/2329/24 1185/1618/24 +f 1185/1618/19 1193/2329/19 1200/1620/19 +f 1191/1609/20 1199/2326/20 1198/1622/20 +f 1189/1612/17 1197/2327/17 1196/1624/17 +f 1187/1615/18 1195/2328/18 1194/1626/18 +f 1194/1640/11 1196/2330/11 1198/1641/11 +f 675/695/316 674/697/316 1206/1643/316 +f 671/700/317 1203/1660/317 1204/1645/317 +f 678/692/318 1210/1661/318 1211/1646/318 +f 675/1647/319 1207/2331/319 1208/1648/319 +f 673/705/320 672/698/320 1204/1645/320 +f 679/701/321 1211/1646/321 1212/1651/321 +f 669/686/322 1201/2332/322 1202/1653/322 +f 677/694/323 676/1649/323 1208/1648/323 +f 673/705/324 1205/1650/324 1206/1655/324 +f 680/1652/325 1212/1651/325 1201/1657/325 +f 670/1659/326 1202/2333/326 1203/1660/326 +f 677/694/327 1209/1654/327 1210/1661/327 +f 1203/1663/13 1202/2334/13 1211/1646/13 +f 1202/2334/13 1201/1657/13 1211/1646/13 +f 1201/1657/13 1212/1651/13 1211/1646/13 +f 1211/1646/13 1210/1661/13 1209/1654/13 +f 1209/1654/13 1208/1648/13 1207/2331/13 +f 1207/2331/13 1206/2335/13 1205/1662/13 +f 1205/1662/13 1204/2336/13 1203/1663/13 +f 1211/1646/13 1209/1654/13 1207/2331/13 +f 1207/2331/13 1205/1662/13 1211/1646/13 +f 1215/1664/12 1216/2337/12 1214/1665/12 +f 1219/1667/11 1223/2338/11 1222/1668/11 +f 1215/1670/13 1217/2339/13 1220/1671/13 +f 1214/1673/11 1219/1667/11 1218/1669/11 +f 1216/1672/2 1220/1671/2 1219/1675/2 +f 1213/1677/1 1218/1685/1 1217/1678/1 +f 1223/1680/14 1224/1688/14 1221/1681/14 +f 1219/1675/2 1220/1671/2 1224/1683/2 +f 1218/1685/1 1222/2340/1 1221/1686/1 +f 1217/1687/328 1221/1681/328 1224/1688/328 +f 1227/1690/12 1228/2341/12 1226/1691/12 +f 1231/1693/14 1232/2342/14 1229/1694/14 +f 1227/1696/13 1229/2343/13 1232/1697/13 +f 1226/1699/11 1231/2344/11 1230/1700/11 +f 1228/1698/2 1232/1697/2 1231/1702/2 +f 1225/1704/1 1230/2345/1 1229/1705/1 +f 1235/1707/12 1236/2346/12 1234/1708/12 +f 1239/1710/14 1240/2347/14 1237/1711/14 +f 1236/1713/2 1240/1720/2 1239/1714/2 +f 1233/1716/1 1238/2348/1 1237/1717/1 +f 1235/1719/13 1237/2349/13 1240/1720/13 +f 1234/1721/11 1239/2350/11 1238/1722/11 +f 1256/1724/13 1253/2351/13 1251/1725/13 +f 1254/1727/11 1255/2352/11 1250/1728/11 +f 1248/1730/13 1245/2353/13 1243/1731/13 +f 1246/1733/11 1247/2354/11 1242/1734/11 +f 1247/1736/2 1248/1730/2 1244/1732/2 +f 1245/1738/1 1246/2355/1 1241/1739/1 +f 1255/1741/2 1256/1724/2 1252/1726/2 +f 1253/1743/1 1254/2356/1 1249/1744/1 +f 1289/1746/11 1294/1805/11 1454/1747/11 +f 1292/1749/13 1296/1803/13 1450/1750/13 +f 1259/1752/13 1263/2357/13 1264/1753/13 +f 1258/1755/11 1262/2358/11 1261/1756/11 +f 1260/1754/2 1264/1753/2 1262/1758/2 +f 1257/1760/1 1261/2359/1 1263/1761/1 +f 1267/1763/13 1271/2360/13 1272/1764/13 +f 1266/1766/11 1270/2361/11 1269/1767/11 +f 1268/1765/2 1272/1764/2 1270/1769/2 +f 1265/1771/1 1269/2362/1 1271/1772/1 +f 1295/1774/14 1296/1925/14 1293/1775/14 +f 1291/1777/12 1292/1926/12 1290/1778/12 +f 1275/1780/13 1279/2363/13 1280/1781/13 +f 1274/1783/11 1278/2364/11 1277/1784/11 +f 1276/1782/2 1280/1781/2 1278/1786/2 +f 1273/1788/1 1277/2365/1 1279/1789/1 +f 1283/1791/13 1287/2366/13 1288/1792/13 +f 1282/1794/11 1286/2367/11 1285/1795/11 +f 1284/1793/2 1288/1792/2 1286/1797/2 +f 1281/1799/1 1285/2368/1 1287/1800/1 +f 1291/1802/13 1293/1936/13 1296/1803/13 +f 1290/1804/11 1295/1929/11 1294/1805/11 +f 1299/1806/12 1300/2369/12 1298/1807/12 +f 1303/1809/14 1304/2370/14 1301/1810/14 +f 1299/1812/13 1301/2371/13 1304/1813/13 +f 1298/1815/11 1303/2372/11 1302/1816/11 +f 1300/1814/2 1304/1813/2 1303/1818/2 +f 1297/1820/1 1302/2373/1 1301/1821/1 +f 1324/1823/11 1315/2374/11 1314/1824/11 +f 1322/1828/2 1325/2375/2 1326/1839/2 +f 1326/1839/2 1327/2376/2 1328/1826/2 +f 1328/1826/2 1323/2377/2 1324/1827/2 +f 1324/1827/2 1321/2378/2 1322/1828/2 +f 1322/1828/2 1326/1839/2 1328/1826/2 +f 1310/1829/12 1309/2379/12 1311/1830/12 +f 1319/1832/14 1316/1848/14 1323/1833/14 +f 1318/1837/1 1313/2380/1 1314/2381/1 +f 1314/2381/1 1315/2382/1 1316/1835/1 +f 1316/1835/1 1319/2383/1 1320/1836/1 +f 1320/1836/1 1317/2384/1 1318/1837/1 +f 1318/1837/1 1314/2381/1 1316/1835/1 +f 1320/1838/13 1327/2376/13 1326/1839/13 +f 1318/1841/15 1317/2385/15 1326/1842/15 +f 1328/1834/329 1327/2386/329 1320/1844/329 +f 1322/1845/16 1321/2387/16 1314/1846/16 +f 1316/1848/330 1315/2388/330 1324/1849/330 +f 1325/1843/12 1322/1845/12 1313/1847/12 +f 1305/1850/14 1306/2389/14 1308/1851/14 +f 1311/1853/11 1305/2390/11 1307/1854/11 +f 1312/1856/1 1307/2391/1 1308/1857/1 +f 1309/1859/2 1306/1863/2 1305/1860/2 +f 1310/1862/13 1308/2392/13 1306/1863/13 +f 1332/1864/329 1340/2393/329 1337/1865/329 +f 1335/1867/11 1336/2394/11 1333/1868/11 +f 1331/1866/14 1333/2395/14 1336/1870/14 +f 1330/1871/12 1335/2396/12 1334/1872/12 +f 1332/1874/2 1336/2397/2 1335/1875/2 +f 1329/1877/1 1334/2398/1 1333/1878/1 +f 1337/1880/13 1340/1884/13 1339/1881/13 +f 1329/1873/15 1338/2399/15 1339/1883/15 +f 1330/1876/331 1339/1881/331 1340/1884/331 +f 1331/1879/332 1337/2400/332 1338/1885/332 +f 1347/1886/11 1348/2401/11 1345/1887/11 +f 1341/1889/14 1345/2402/14 1348/1890/14 +f 1343/1892/12 1347/2403/12 1346/1893/12 +f 1344/1895/2 1348/2404/2 1347/1896/2 +f 1342/1898/1 1346/2405/1 1345/1899/1 +f 1356/1901/333 1354/2406/333 1350/1902/333 +f 1353/1904/334 1355/2407/334 1351/1905/334 +f 1351/1907/13 1355/2408/13 1356/1901/13 +f 1354/1908/11 1353/2409/11 1349/1909/11 +f 1364/1911/335 1362/2410/335 1358/1912/335 +f 1361/1914/336 1363/2411/336 1359/1915/336 +f 1363/1917/13 1364/1911/13 1360/1913/13 +f 1358/1919/11 1362/2412/11 1361/1920/11 +f 1448/1751/2 1450/1750/2 1449/1922/2 +f 1295/1774/337 1449/2413/337 1450/1924/337 +f 1292/1926/338 1448/2414/338 1447/1927/338 +f 1290/1804/11 1447/2415/11 1449/1928/11 +f 1452/1930/1 1454/2416/1 1453/1931/1 +f 1293/1775/339 1453/2417/339 1454/1933/339 +f 1289/1779/340 1452/2418/340 1451/1934/340 +f 1291/1802/13 1451/2419/13 1453/1935/13 +f 1496/1938/14 1495/2420/14 1499/1939/14 +f 1495/2420/14 1497/2421/14 1499/1939/14 +f 1497/2421/14 1498/2422/14 1499/1939/14 +f 1499/1939/14 1500/2423/14 1501/2424/14 +f 1501/2424/14 1502/1937/14 1499/1939/14 +f 1488/1942/14 1487/2425/14 1489/2426/14 +f 1489/2426/14 1490/2427/14 1491/1940/14 +f 1491/1940/14 1492/2428/14 1493/1941/14 +f 1493/1941/14 1494/2429/14 1488/1942/14 +f 1488/1942/14 1489/2426/14 1491/1940/14 +s 1 +f 364/2430/15 371/2431/342 363/2432/12 +f 362/2433/16 369/2434/343 361/2435/11 +f 360/2436/330 367/2437/344 359/2438/14 +f 358/2439/329 365/2440/345 357/2441/13 +f 357/2441/13 372/2442/346 364/2443/15 +f 363/2432/12 370/2444/347 362/2445/16 +f 361/2435/11 368/2446/348 360/2447/330 +f 359/2438/14 366/2448/349 358/2449/329 +f 365/2440/345 379/2450/350 372/2442/346 +f 370/2444/347 378/2451/351 377/2452/352 +f 367/2437/344 374/2453/353 366/2448/349 +f 371/2431/342 379/2454/350 378/2451/351 +f 368/2455/348 375/2456/354 367/2437/344 +f 365/2440/345 374/2457/353 373/2458/331 +f 379/2454/350 385/2459/355 378/2451/351 +f 375/2456/354 383/2460/356 382/2461/357 +f 374/2457/353 380/2462/358 373/2458/331 +f 379/2450/350 380/2462/358 386/2463/359 +f 378/2451/351 384/2464/360 377/2452/352 +f 374/2453/353 382/2461/357 381/2465/361 +f 368/2446/348 369/2434/343 376/2466/362 +f 376/2467/362 369/2468/343 383/2469/356 +f 370/2470/347 377/2471/352 369/2434/343 +f 377/2472/352 384/2473/360 369/2468/343 +f 383/2460/356 390/2474/329 382/2461/357 +f 381/2475/361 388/2476/363 380/2462/358 +f 384/2473/360 387/2477/364 369/2468/343 +f 380/2462/358 394/2478/365 386/2463/359 +f 369/2468/343 391/2479/366 383/2469/356 +f 385/2459/355 392/2480/367 384/2464/360 +f 382/2461/357 389/2481/368 381/2465/361 +f 386/2482/359 393/2483/369 385/2459/355 +f 392/2484/367 395/2485/370 387/2477/364 +f 394/2478/365 396/2486/371 401/2487/372 +f 393/2483/369 399/2488/373 392/2480/367 +f 387/2477/364 398/2489/374 391/2479/366 +f 394/2490/365 400/2491/16 393/2483/369 +f 388/2476/363 397/2492/375 396/2486/371 +f 401/2493/372 407/2494/376 400/2495/16 +f 397/2492/375 403/2496/377 396/2486/371 +f 395/2485/370 406/2497/378 402/2498/379 +f 396/2499/371 408/2500/380 401/2493/372 +f 399/2501/373 407/2494/376 406/2502/378 +f 395/2485/370 405/2503/381 398/2489/374 +f 391/2504/366 398/2505/374 390/2474/329 +f 398/2489/374 405/2503/381 390/2506/329 +f 389/2481/368 390/2474/329 397/2507/375 +f 397/2492/375 390/2508/329 404/2509/382 +f 403/2496/377 412/2510/383 411/2511/384 +f 390/2508/329 412/2510/383 404/2509/382 +f 406/2497/378 410/2512/1 402/2498/379 +f 390/2506/329 413/2513/385 409/2514/386 +f 403/2515/377 416/2516/387 408/2500/380 +f 406/2502/378 415/2517/388 414/2518/389 +f 402/2498/379 413/2513/385 405/2503/381 +f 408/2500/380 415/2517/388 407/2494/376 +f 416/2519/387 418/2520/35 423/2521/390 +f 414/2518/389 422/2522/391 421/2523/392 +f 413/2513/385 417/2524/393 409/2514/386 +f 415/2517/388 423/2525/390 422/2522/391 +f 412/2510/383 418/2526/35 411/2511/384 +f 409/2527/386 419/2528/394 412/2510/383 +f 419/2529/394 425/2530/19 418/2520/35 +f 419/2528/394 424/2531/395 426/2532/396 +f 423/2521/390 425/2530/19 430/2533/397 +f 421/2523/392 429/2534/398 428/2535/399 +f 420/2536/400 424/2531/395 417/2537/393 +f 422/2522/391 430/2538/397 429/2534/398 +f 438/2539/15 445/2540/342 437/2541/12 +f 436/2542/16 443/2543/343 435/2544/11 +f 434/2545/330 441/2546/344 433/2547/14 +f 432/2548/329 439/2549/345 431/2550/13 +f 431/2550/13 446/2551/346 438/2552/15 +f 437/2541/12 444/2553/347 436/2554/16 +f 435/2544/11 442/2555/348 434/2556/330 +f 433/2547/14 440/2557/349 432/2558/329 +f 439/2549/345 453/2559/350 446/2551/346 +f 444/2553/347 452/2560/351 451/2561/352 +f 441/2546/344 448/2562/353 440/2557/349 +f 445/2540/342 453/2563/350 452/2560/351 +f 442/2564/348 449/2565/354 441/2546/344 +f 440/2566/349 447/2567/331 439/2549/345 +f 453/2563/350 459/2568/355 452/2560/351 +f 449/2565/354 457/2569/356 456/2570/357 +f 448/2571/353 454/2572/358 447/2567/331 +f 447/2567/331 460/2573/359 453/2559/350 +f 452/2560/351 458/2574/360 451/2561/352 +f 448/2562/353 456/2570/357 455/2575/361 +f 442/2555/348 443/2543/343 450/2576/362 +f 450/2577/362 443/2578/343 457/2579/356 +f 444/2580/347 451/2581/352 443/2543/343 +f 451/2582/352 458/2583/360 443/2578/343 +f 457/2569/356 464/2584/329 456/2570/357 +f 455/2585/361 462/2586/363 454/2572/358 +f 458/2583/360 461/2587/364 443/2578/343 +f 454/2572/358 468/2588/365 460/2573/359 +f 443/2578/343 465/2589/366 457/2579/356 +f 459/2568/355 466/2590/367 458/2574/360 +f 456/2570/357 463/2591/368 455/2575/361 +f 460/2592/359 467/2593/369 459/2568/355 +f 466/2594/367 469/2595/370 461/2587/364 +f 468/2588/365 470/2596/371 475/2597/372 +f 466/2590/367 474/2598/16 473/2599/373 +f 461/2587/364 472/2600/374 465/2589/366 +f 468/2601/365 474/2598/16 467/2593/369 +f 462/2586/363 471/2602/375 470/2596/371 +f 475/2603/372 481/2604/376 474/2605/16 +f 470/2596/371 478/2606/382 477/2607/377 +f 469/2595/370 480/2608/378 476/2609/379 +f 470/2610/371 482/2611/380 475/2603/372 +f 473/2612/373 481/2604/376 480/2613/378 +f 469/2595/370 479/2614/381 472/2600/374 +f 465/2615/366 472/2616/374 464/2584/329 +f 472/2600/374 479/2614/381 464/2617/329 +f 463/2591/368 464/2584/329 471/2618/375 +f 471/2602/375 464/2619/329 478/2606/382 +f 477/2607/377 486/2620/383 485/2621/384 +f 464/2619/329 486/2620/383 478/2606/382 +f 476/2609/379 488/2622/401 484/2623/1 +f 479/2614/381 483/2624/386 464/2617/329 +f 477/2625/377 490/2626/387 482/2611/380 +f 480/2613/378 489/2627/388 488/2628/401 +f 476/2609/379 487/2629/402 479/2614/381 +f 482/2611/380 489/2627/388 481/2604/376 +f 490/2630/387 492/2631/35 497/2632/390 +f 488/2628/401 496/2633/391 495/2634/392 +f 487/2629/402 491/2635/393 483/2624/386 +f 489/2627/388 497/2636/390 496/2633/391 +f 486/2620/383 492/2637/35 485/2621/384 +f 483/2638/386 493/2639/394 486/2620/383 +f 493/2640/394 499/2641/19 492/2631/35 +f 491/2642/393 500/2643/396 493/2639/394 +f 497/2632/390 499/2641/19 504/2644/397 +f 496/2633/391 502/2645/399 495/2634/392 +f 491/2642/393 501/2646/403 498/2647/395 +f 496/2633/391 504/2648/397 503/2649/398 +f 527/2650/404 520/2651/15 519/2652/12 +f 525/2653/405 518/2654/16 517/2655/11 +f 523/2656/406 516/2657/330 515/2658/14 +f 521/2659/407 514/2660/329 513/2661/13 +f 528/2662/408 513/2661/13 520/2663/15 +f 526/2664/409 519/2652/12 518/2665/16 +f 524/2666/410 517/2655/11 516/2667/330 +f 522/2668/411 515/2658/14 514/2669/329 +f 535/2670/412 521/2671/407 528/2672/408 +f 526/2664/409 534/2673/413 527/2650/404 +f 530/2674/414 523/2656/406 522/2668/411 +f 527/2650/404 535/2675/412 528/2676/408 +f 531/2677/415 524/2678/410 523/2656/406 +f 529/2679/332 522/2680/411 521/2671/407 +f 541/2681/416 535/2675/412 534/2673/413 +f 531/2677/415 539/2682/417 532/2683/418 +f 536/2684/419 530/2685/414 529/2679/332 +f 535/2670/412 536/2684/419 529/2679/332 +f 540/2686/420 534/2673/413 533/2687/421 +f 530/2674/414 538/2688/422 531/2677/415 +f 524/2666/410 532/2689/418 525/2653/405 +f 532/2683/418 539/2682/417 525/2690/405 +f 526/2691/409 525/2653/405 533/2692/421 +f 533/2687/421 525/2693/405 540/2686/420 +f 546/2694/329 539/2682/417 538/2688/422 +f 544/2695/364 537/2696/423 536/2684/419 +f 543/2697/363 540/2698/420 525/2699/405 +f 550/2700/367 536/2684/419 542/2701/424 +f 547/2702/368 525/2699/405 539/2703/417 +f 548/2704/365 541/2681/416 540/2686/420 +f 545/2705/366 538/2688/422 537/2706/423 +f 549/2707/369 542/2708/424 541/2681/416 +f 551/2709/371 548/2710/365 543/2697/363 +f 550/2700/367 552/2711/370 544/2695/364 +f 555/2712/372 549/2707/369 548/2704/365 +f 554/2713/375 543/2697/363 547/2702/368 +f 556/2714/16 550/2715/367 549/2707/369 +f 544/2695/364 553/2716/374 545/2717/366 +f 563/2718/376 557/2719/373 556/2720/16 +f 559/2721/379 553/2716/374 552/2711/370 +f 551/2722/371 562/2723/380 555/2724/372 +f 564/2725/378 552/2711/370 557/2726/373 +f 555/2724/372 563/2718/376 556/2720/16 +f 554/2713/375 558/2727/377 551/2709/371 +f 547/2728/368 546/2694/329 554/2729/375 +f 554/2713/375 546/2730/329 561/2731/382 +f 545/2705/366 553/2732/374 546/2694/329 +f 553/2716/374 560/2733/381 546/2734/329 +f 559/2721/379 568/2735/425 560/2733/381 +f 568/2735/425 546/2734/329 560/2733/381 +f 566/2736/2 562/2723/380 558/2737/377 +f 546/2730/329 569/2738/426 561/2731/382 +f 572/2739/427 559/2721/379 564/2725/378 +f 562/2723/380 571/2740/428 563/2718/376 +f 569/2738/426 558/2727/377 561/2731/382 +f 571/2740/428 564/2741/378 563/2718/376 +f 572/2739/427 574/2742/28 567/2743/429 +f 570/2744/430 578/2745/431 571/2740/428 +f 573/2746/432 569/2738/426 565/2747/433 +f 571/2740/428 579/2748/434 572/2749/427 +f 574/2742/28 568/2735/425 567/2743/429 +f 575/2750/435 565/2751/433 568/2735/425 +f 574/2752/28 582/2753/436 575/2754/435 +f 582/2755/436 573/2746/432 575/2756/435 +f 586/2757/437 574/2752/28 579/2758/434 +f 577/2759/438 585/2760/439 578/2745/431 +f 580/2761/440 576/2762/441 573/2746/432 +f 578/2745/431 586/2763/437 579/2748/434 +f 601/2764/404 594/2765/15 593/2766/12 +f 599/2767/405 592/2768/16 591/2769/11 +f 597/2770/406 590/2771/330 589/2772/14 +f 595/2773/407 588/2774/329 587/2775/13 +f 602/2776/408 587/2775/13 594/2777/15 +f 600/2778/409 593/2766/12 592/2779/16 +f 598/2780/410 591/2769/11 590/2781/330 +f 596/2782/411 589/2772/14 588/2783/329 +f 609/2784/412 595/2785/407 602/2786/408 +f 600/2778/409 608/2787/413 601/2764/404 +f 604/2788/414 597/2770/406 596/2782/411 +f 601/2764/404 609/2789/412 602/2790/408 +f 605/2791/415 598/2792/410 597/2770/406 +f 603/2793/332 596/2794/411 595/2785/407 +f 615/2795/416 609/2789/412 608/2787/413 +f 605/2791/415 613/2796/417 606/2797/418 +f 610/2798/419 604/2799/414 603/2793/332 +f 609/2784/412 610/2798/419 603/2793/332 +f 614/2800/420 608/2787/413 607/2801/421 +f 604/2788/414 612/2802/422 605/2791/415 +f 598/2780/410 606/2803/418 599/2767/405 +f 606/2797/418 613/2796/417 599/2804/405 +f 600/2805/409 599/2767/405 607/2806/421 +f 607/2801/421 599/2807/405 614/2800/420 +f 620/2808/329 613/2796/417 612/2802/422 +f 618/2809/364 611/2810/423 610/2798/419 +f 617/2811/363 614/2812/420 599/2813/405 +f 624/2814/367 610/2798/419 616/2815/424 +f 621/2816/368 599/2813/405 613/2817/417 +f 622/2818/365 615/2795/416 614/2800/420 +f 619/2819/366 612/2802/422 611/2820/423 +f 623/2821/369 616/2822/424 615/2795/416 +f 625/2823/371 622/2824/365 617/2811/363 +f 624/2814/367 626/2825/370 618/2809/364 +f 622/2818/365 630/2826/16 623/2821/369 +f 628/2827/375 617/2811/363 621/2816/368 +f 623/2821/369 631/2828/373 624/2829/367 +f 618/2809/364 627/2830/374 619/2831/366 +f 637/2832/376 631/2833/373 630/2834/16 +f 633/2835/379 627/2830/374 626/2825/370 +f 625/2836/371 636/2837/380 629/2838/372 +f 638/2839/378 626/2825/370 631/2840/373 +f 629/2838/372 637/2832/376 630/2834/16 +f 635/2841/382 625/2823/371 628/2827/375 +f 621/2842/368 620/2808/329 628/2843/375 +f 628/2827/375 620/2844/329 635/2841/382 +f 619/2819/366 627/2845/374 620/2808/329 +f 627/2830/374 634/2846/381 620/2847/329 +f 633/2835/379 642/2848/425 634/2846/381 +f 642/2848/425 620/2847/329 634/2846/381 +f 632/2849/377 644/2850/442 636/2837/380 +f 639/2851/433 635/2841/382 620/2844/329 +f 646/2852/427 633/2835/379 638/2839/378 +f 636/2837/380 645/2853/428 637/2832/376 +f 643/2854/443 632/2855/377 635/2841/382 +f 645/2853/428 638/2856/378 637/2832/376 +f 646/2852/427 648/2857/28 641/2858/429 +f 651/2859/438 645/2853/428 644/2850/442 +f 647/2860/432 643/2854/443 639/2851/433 +f 645/2853/428 653/2861/434 646/2862/427 +f 648/2857/28 642/2848/425 641/2858/429 +f 649/2863/435 639/2864/433 642/2848/425 +f 648/2865/28 656/2866/436 649/2867/435 +f 649/2868/435 654/2869/440 647/2860/432 +f 660/2870/437 648/2865/28 653/2871/434 +f 651/2859/438 659/2872/439 652/2873/431 +f 654/2869/440 650/2874/441 647/2860/432 +f 652/2873/431 660/2875/437 653/2861/434 +f 1377/2876/444 1370/2877/16 1369/2878/11 +f 1375/2879/445 1368/2880/330 1367/2881/14 +f 1373/2882/446 1366/2883/329 1365/2884/13 +f 1380/2885/447 1365/2884/13 1372/2886/15 +f 1378/2887/448 1371/2888/12 1370/2889/16 +f 1376/2890/449 1369/2878/11 1368/2891/330 +f 1374/2892/450 1367/2881/14 1366/2893/329 +f 1379/2894/37 1372/2895/15 1371/2888/12 +f 1380/2885/447 1381/2896/432 1373/2882/446 +f 1377/2876/444 1384/2897/434 1385/2898/431 +f 1375/2879/445 1382/2899/435 1383/2900/28 +f 1378/2901/448 1385/2898/431 1386/2902/451 +f 1376/2903/449 1383/2900/28 1384/2904/434 +f 1374/2905/450 1381/2896/432 1382/2906/435 +f 1386/2902/451 1392/2907/428 1393/2908/452 +f 1384/2909/434 1390/2910/429 1391/2911/427 +f 1381/2912/432 1389/2913/425 1382/2914/435 +f 1387/2915/453 1388/2916/433 1381/2896/432 +f 1384/2897/434 1392/2907/428 1385/2898/431 +f 1382/2914/435 1390/2910/429 1383/2917/28 +f 1379/2894/37 1387/2918/453 1380/2919/447 +f 1387/2915/453 1379/2920/37 1394/2921/454 +f 1378/2887/448 1386/2922/451 1379/2894/37 +f 1386/2922/451 1393/2923/452 1379/2894/37 +f 1390/2910/429 1399/2924/455 1391/2911/427 +f 1388/2925/433 1397/2926/456 1389/2913/425 +f 1393/2908/452 1395/2927/457 1379/2928/37 +f 1394/2921/454 1396/2929/458 1388/2916/433 +f 1379/2920/37 1402/2930/459 1394/2921/454 +f 1391/2931/427 1400/2932/330 1392/2907/428 +f 1389/2913/425 1398/2933/460 1390/2910/429 +f 1392/2907/428 1401/2934/461 1393/2908/452 +f 1395/2927/457 1408/2935/462 1403/2936/463 +f 1402/2930/459 1404/2937/15 1396/2929/458 +f 1397/2926/456 1406/2938/464 1398/2933/460 +f 1395/2939/457 1409/2940/465 1402/2930/459 +f 1398/2933/460 1407/2941/466 1399/2924/455 +f 1396/2942/458 1405/2943/467 1397/2926/456 +f 1407/2941/466 1413/2944/468 1414/2945/469 +f 1405/2946/467 1411/2947/470 1412/2948/471 +f 1403/2949/463 1415/2950/472 1410/2951/473 +f 1409/2952/465 1411/2947/470 1404/2953/15 +f 1406/2938/464 1412/2954/471 1413/2944/468 +f 1403/2949/463 1416/2955/474 1409/2940/465 +f 1399/2956/455 1407/2957/466 1400/2932/330 +f 1407/2958/466 1414/2959/469 1400/2960/330 +f 1400/2932/330 1408/2935/462 1401/2934/461 +f 1408/2961/462 1400/2960/330 1415/2962/472 +f 1411/2947/470 1420/2963/475 1412/2948/471 +f 1400/2960/330 1423/2964/476 1415/2962/472 +f 1415/2950/472 1418/2965/331 1410/2951/473 +f 1414/2959/469 1417/2966/477 1400/2960/330 +f 1416/2967/474 1419/2968/478 1411/2947/470 +f 1412/2954/471 1421/2969/479 1413/2944/468 +f 1410/2951/473 1424/2970/480 1416/2955/474 +f 1413/2944/468 1422/2971/481 1414/2945/469 +f 1424/2972/480 1426/2973/482 1419/2968/478 +f 1420/2974/475 1428/2975/343 1421/2969/479 +f 1422/2976/481 1425/2977/483 1417/2966/477 +f 1421/2969/479 1429/2978/484 1422/2971/481 +f 1420/2963/475 1426/2973/482 1427/2979/485 +f 1417/2966/477 1430/2980/486 1423/2964/476 +f 1426/2973/482 1434/2981/487 1427/2979/485 +f 1425/2977/483 1437/2982/488 1430/2980/486 +f 1431/2983/489 1433/2984/490 1426/2973/482 +f 1427/2985/485 1435/2986/491 1428/2987/343 +f 1425/2977/483 1436/2988/492 1432/2989/493 +f 1429/2990/484 1435/2986/491 1436/2991/492 +f 1423/2992/476 1430/2993/486 1418/2965/331 +f 1430/2993/486 1437/2994/488 1418/2965/331 +f 1418/2965/331 1431/2995/489 1424/2970/480 +f 1431/2995/489 1418/2965/331 1438/2996/494 +f 1418/2965/331 1446/2997/15 1438/2996/494 +f 1432/2989/493 1445/2998/329 1437/2982/488 +f 1437/2994/488 1439/2999/13 1418/2965/331 +f 1438/3000/494 1441/3001/12 1433/2984/490 +f 1434/3002/487 1443/3003/11 1435/2986/491 +f 1436/2988/492 1440/3004/14 1432/2989/493 +f 1435/2986/491 1444/3005/330 1436/2991/492 +f 1433/2984/490 1442/3006/16 1434/2981/487 +f 1479/3007/13 1470/3008/331 1463/3009/13 +f 1480/3010/332 1463/3011/13 1464/3012/332 +f 1473/3013/1 1456/3014/332 1457/3015/1 +f 1481/3016/1 1464/3012/332 1465/3017/1 +f 1474/3018/343 1457/3015/1 1458/3019/343 +f 1482/3020/343 1465/3017/1 1466/3021/343 +f 1475/3022/11 1458/3023/343 1459/3024/11 +f 1483/3025/11 1466/3026/343 1467/3027/11 +f 1476/3028/405 1459/3024/11 1460/3029/405 +f 1484/3030/405 1467/3027/11 1468/3031/405 +f 1477/3032/2 1460/3029/405 1461/3033/2 +f 1485/3034/2 1468/3031/405 1469/3035/2 +f 1478/3036/331 1461/3037/2 1462/3038/331 +f 1486/3039/331 1469/3040/2 1470/3008/331 +f 1471/3041/13 1462/3038/331 1455/3042/13 +f 1472/3043/332 1455/3044/13 1456/3014/332 +f 1471/3041/329 1494/3045/495 1478/3036/495 +f 1485/3046/35 1502/1937/495 1501/2424/35 +f 1471/3047/329 1487/2425/496 1488/1942/329 +f 1479/3007/329 1502/3048/495 1486/3039/495 +f 1480/3049/496 1496/1938/329 1479/3050/329 +f 1473/3013/28 1487/3051/496 1472/3043/496 +f 1480/3010/496 1497/3052/28 1495/3053/496 +f 1473/3054/28 1490/2427/497 1489/2426/28 +f 1482/3055/497 1497/2421/28 1481/3056/28 +f 1475/3057/330 1490/2427/497 1474/3058/497 +f 1483/3059/330 1498/2422/497 1482/3055/497 +f 1475/3057/330 1492/2428/498 1491/1940/330 +f 1483/3059/330 1500/2423/498 1499/1939/330 +f 1477/3060/35 1492/2428/498 1476/3061/498 +f 1485/3046/35 1500/2423/498 1484/3062/498 +f 1477/3060/35 1494/2429/495 1493/1941/35 +f 364/2430/15 372/3063/346 371/2431/342 +f 362/2433/16 370/2470/347 369/2434/343 +f 360/2436/330 368/2455/348 367/2437/344 +f 358/2439/329 366/3064/349 365/2440/345 +f 357/2441/13 365/2440/345 372/2442/346 +f 363/2432/12 371/2431/342 370/2444/347 +f 361/2435/11 369/2434/343 368/2446/348 +f 359/2438/14 367/2437/344 366/2448/349 +f 365/2440/345 373/2458/331 379/2450/350 +f 370/2444/347 371/2431/342 378/2451/351 +f 367/2437/344 375/2456/354 374/2453/353 +f 371/2431/342 372/3063/346 379/2454/350 +f 368/2455/348 376/3065/362 375/2456/354 +f 365/2440/345 366/3064/349 374/2457/353 +f 379/2454/350 386/2482/359 385/2459/355 +f 375/2456/354 376/3065/362 383/2460/356 +f 374/2457/353 381/2475/361 380/2462/358 +f 379/2450/350 373/2458/331 380/2462/358 +f 378/2451/351 385/2459/355 384/2464/360 +f 374/2453/353 375/2456/354 382/2461/357 +f 383/2460/356 391/2504/366 390/2474/329 +f 381/2475/361 389/3066/368 388/2476/363 +f 384/2473/360 392/2484/367 387/2477/364 +f 380/2462/358 388/2476/363 394/2478/365 +f 369/2468/343 387/2477/364 391/2479/366 +f 385/2459/355 393/2483/369 392/2480/367 +f 382/2461/357 390/2474/329 389/2481/368 +f 386/2482/359 394/2490/365 393/2483/369 +f 392/2484/367 399/3067/373 395/2485/370 +f 394/2478/365 388/2476/363 396/2486/371 +f 393/2483/369 400/2491/16 399/2488/373 +f 387/2477/364 395/2485/370 398/2489/374 +f 394/2490/365 401/3068/372 400/2491/16 +f 388/2476/363 389/3066/368 397/2492/375 +f 401/2493/372 408/2500/380 407/2494/376 +f 397/2492/375 404/2509/382 403/2496/377 +f 395/2485/370 399/3067/373 406/2497/378 +f 396/2499/371 403/2515/377 408/2500/380 +f 399/2501/373 400/2495/16 407/2494/376 +f 395/2485/370 402/2498/379 405/2503/381 +f 403/2496/377 404/2509/382 412/2510/383 +f 390/2508/329 409/2527/386 412/2510/383 +f 406/2497/378 414/3069/389 410/2512/1 +f 390/2506/329 405/2503/381 413/2513/385 +f 403/2515/377 411/3070/384 416/2516/387 +f 406/2502/378 407/2494/376 415/2517/388 +f 402/2498/379 410/2512/1 413/2513/385 +f 408/2500/380 416/2516/387 415/2517/388 +f 416/2519/387 411/3071/384 418/2520/35 +f 414/2518/389 415/2517/388 422/2522/391 +f 413/2513/385 420/3072/400 417/2524/393 +f 415/2517/388 416/2516/387 423/2525/390 +f 412/2510/383 419/2528/394 418/2526/35 +f 409/2527/386 417/2537/393 419/2528/394 +f 419/2529/394 426/3073/396 425/2530/19 +f 419/2528/394 417/2537/393 424/2531/395 +f 423/2521/390 418/2520/35 425/2530/19 +f 421/2523/392 422/2522/391 429/2534/398 +f 420/2536/400 427/3074/403 424/2531/395 +f 422/2522/391 423/2525/390 430/2538/397 +f 438/2539/15 446/3075/346 445/2540/342 +f 436/2542/16 444/2580/347 443/2543/343 +f 434/2545/330 442/2564/348 441/2546/344 +f 432/2548/329 440/2566/349 439/2549/345 +f 431/2550/13 439/2549/345 446/2551/346 +f 437/2541/12 445/2540/342 444/2553/347 +f 435/2544/11 443/2543/343 442/2555/348 +f 433/2547/14 441/2546/344 440/2557/349 +f 439/2549/345 447/2567/331 453/2559/350 +f 444/2553/347 445/2540/342 452/2560/351 +f 441/2546/344 449/2565/354 448/2562/353 +f 445/2540/342 446/3075/346 453/2563/350 +f 442/2564/348 450/3076/362 449/2565/354 +f 440/2566/349 448/2571/353 447/2567/331 +f 453/2563/350 460/2592/359 459/2568/355 +f 449/2565/354 450/3076/362 457/2569/356 +f 448/2571/353 455/2585/361 454/2572/358 +f 447/2567/331 454/2572/358 460/2573/359 +f 452/2560/351 459/2568/355 458/2574/360 +f 448/2562/353 449/2565/354 456/2570/357 +f 457/2569/356 465/2615/366 464/2584/329 +f 455/2585/361 463/3077/368 462/2586/363 +f 458/2583/360 466/2594/367 461/2587/364 +f 454/2572/358 462/2586/363 468/2588/365 +f 443/2578/343 461/2587/364 465/2589/366 +f 459/2568/355 467/2593/369 466/2590/367 +f 456/2570/357 464/2584/329 463/2591/368 +f 460/2592/359 468/2601/365 467/2593/369 +f 466/2594/367 473/3078/373 469/2595/370 +f 468/2588/365 462/2586/363 470/2596/371 +f 466/2590/367 467/2593/369 474/2598/16 +f 461/2587/364 469/2595/370 472/2600/374 +f 468/2601/365 475/3079/372 474/2598/16 +f 462/2586/363 463/3077/368 471/2602/375 +f 475/2603/372 482/2611/380 481/2604/376 +f 470/2596/371 471/2602/375 478/2606/382 +f 469/2595/370 473/3078/373 480/2608/378 +f 470/2610/371 477/2625/377 482/2611/380 +f 473/2612/373 474/2605/16 481/2604/376 +f 469/2595/370 476/2609/379 479/2614/381 +f 477/2607/377 478/2606/382 486/2620/383 +f 464/2619/329 483/2638/386 486/2620/383 +f 476/2609/379 480/2608/378 488/2622/401 +f 479/2614/381 487/2629/402 483/2624/386 +f 477/2625/377 485/3080/384 490/2626/387 +f 480/2613/378 481/2604/376 489/2627/388 +f 476/2609/379 484/2623/1 487/2629/402 +f 482/2611/380 490/2626/387 489/2627/388 +f 490/2630/387 485/3081/384 492/2631/35 +f 488/2628/401 489/2627/388 496/2633/391 +f 487/2629/402 494/3082/400 491/2635/393 +f 489/2627/388 490/2626/387 497/2636/390 +f 486/2620/383 493/2639/394 492/2637/35 +f 483/2638/386 491/2642/393 493/2639/394 +f 493/2640/394 500/3083/396 499/2641/19 +f 491/2642/393 498/2647/395 500/2643/396 +f 497/2632/390 492/2631/35 499/2641/19 +f 496/2633/391 503/2649/398 502/2645/399 +f 491/2642/393 494/3084/400 501/2646/403 +f 496/2633/391 497/2636/390 504/2648/397 +f 527/2650/404 528/2676/408 520/2651/15 +f 525/2653/405 526/2691/409 518/2654/16 +f 523/2656/406 524/2678/410 516/2657/330 +f 521/2659/407 522/3085/411 514/2660/329 +f 528/2662/408 521/2659/407 513/2661/13 +f 526/2664/409 527/2650/404 519/2652/12 +f 524/2666/410 525/2653/405 517/2655/11 +f 522/2668/411 523/2656/406 515/2658/14 +f 535/2670/412 529/2679/332 521/2671/407 +f 526/2664/409 533/2687/421 534/2673/413 +f 530/2674/414 531/2677/415 523/2656/406 +f 527/2650/404 534/2673/413 535/2675/412 +f 531/2677/415 532/2683/418 524/2678/410 +f 529/2679/332 530/2685/414 522/2680/411 +f 541/2681/416 542/2708/424 535/2675/412 +f 531/2677/415 538/2688/422 539/2682/417 +f 536/2684/419 537/2696/423 530/2685/414 +f 535/2670/412 542/2701/424 536/2684/419 +f 540/2686/420 541/2681/416 534/2673/413 +f 530/2674/414 537/2706/423 538/2688/422 +f 546/2694/329 547/2728/368 539/2682/417 +f 544/2695/364 545/2717/366 537/2696/423 +f 543/2697/363 548/2710/365 540/2698/420 +f 550/2700/367 544/2695/364 536/2684/419 +f 547/2702/368 543/2697/363 525/2699/405 +f 548/2704/365 549/2707/369 541/2681/416 +f 545/2705/366 546/2694/329 538/2688/422 +f 549/2707/369 550/2715/367 542/2708/424 +f 551/2709/371 555/3086/372 548/2710/365 +f 550/2700/367 557/2726/373 552/2711/370 +f 555/2712/372 556/2714/16 549/2707/369 +f 554/2713/375 551/2709/371 543/2697/363 +f 556/2714/16 557/3087/373 550/2715/367 +f 544/2695/364 552/2711/370 553/2716/374 +f 563/2718/376 564/2741/378 557/2719/373 +f 559/2721/379 560/2733/381 553/2716/374 +f 551/2722/371 558/2737/377 562/2723/380 +f 564/2725/378 559/2721/379 552/2711/370 +f 555/2724/372 562/2723/380 563/2718/376 +f 554/2713/375 561/2731/382 558/2727/377 +f 559/2721/379 567/2743/429 568/2735/425 +f 568/2735/425 565/2751/433 546/2734/329 +f 566/2736/2 570/2744/430 562/2723/380 +f 546/2730/329 565/2747/433 569/2738/426 +f 572/2739/427 567/2743/429 559/2721/379 +f 562/2723/380 570/2744/430 571/2740/428 +f 569/2738/426 566/3088/2 558/2727/377 +f 571/2740/428 572/2749/427 564/2741/378 +f 572/2739/427 579/3089/434 574/2742/28 +f 570/2744/430 577/2759/438 578/2745/431 +f 573/2746/432 576/2762/441 569/2738/426 +f 571/2740/428 578/2745/431 579/2748/434 +f 574/2742/28 575/2750/435 568/2735/425 +f 575/2750/435 573/3090/432 565/2751/433 +f 574/2752/28 581/3091/24 582/2753/436 +f 582/2755/436 580/2761/440 573/2746/432 +f 586/2757/437 581/3091/24 574/2752/28 +f 577/2759/438 584/3092/499 585/2760/439 +f 580/2761/440 583/3093/500 576/2762/441 +f 578/2745/431 585/2760/439 586/2763/437 +f 601/2764/404 602/2790/408 594/2765/15 +f 599/2767/405 600/2805/409 592/2768/16 +f 597/2770/406 598/2792/410 590/2771/330 +f 595/2773/407 596/3094/411 588/2774/329 +f 602/2776/408 595/2773/407 587/2775/13 +f 600/2778/409 601/2764/404 593/2766/12 +f 598/2780/410 599/2767/405 591/2769/11 +f 596/2782/411 597/2770/406 589/2772/14 +f 609/2784/412 603/2793/332 595/2785/407 +f 600/2778/409 607/2801/421 608/2787/413 +f 604/2788/414 605/2791/415 597/2770/406 +f 601/2764/404 608/2787/413 609/2789/412 +f 605/2791/415 606/2797/418 598/2792/410 +f 603/2793/332 604/2799/414 596/2794/411 +f 615/2795/416 616/2822/424 609/2789/412 +f 605/2791/415 612/2802/422 613/2796/417 +f 610/2798/419 611/2810/423 604/2799/414 +f 609/2784/412 616/2815/424 610/2798/419 +f 614/2800/420 615/2795/416 608/2787/413 +f 604/2788/414 611/2820/423 612/2802/422 +f 620/2808/329 621/2842/368 613/2796/417 +f 618/2809/364 619/2831/366 611/2810/423 +f 617/2811/363 622/2824/365 614/2812/420 +f 624/2814/367 618/2809/364 610/2798/419 +f 621/2816/368 617/2811/363 599/2813/405 +f 622/2818/365 623/2821/369 615/2795/416 +f 619/2819/366 620/2808/329 612/2802/422 +f 623/2821/369 624/2829/367 616/2822/424 +f 625/2823/371 629/3095/372 622/2824/365 +f 624/2814/367 631/2840/373 626/2825/370 +f 622/2818/365 629/3096/372 630/2826/16 +f 628/2827/375 625/2823/371 617/2811/363 +f 623/2821/369 630/2826/16 631/2828/373 +f 618/2809/364 626/2825/370 627/2830/374 +f 637/2832/376 638/2856/378 631/2833/373 +f 633/2835/379 634/2846/381 627/2830/374 +f 625/2836/371 632/2849/377 636/2837/380 +f 638/2839/378 633/2835/379 626/2825/370 +f 629/2838/372 636/2837/380 637/2832/376 +f 635/2841/382 632/2855/377 625/2823/371 +f 633/2835/379 641/2858/429 642/2848/425 +f 642/2848/425 639/2864/433 620/2847/329 +f 632/2849/377 640/3097/2 644/2850/442 +f 639/2851/433 643/2854/443 635/2841/382 +f 646/2852/427 641/2858/429 633/2835/379 +f 636/2837/380 644/2850/442 645/2853/428 +f 643/2854/443 640/3098/2 632/2855/377 +f 645/2853/428 646/2862/427 638/2856/378 +f 646/2852/427 653/3099/434 648/2857/28 +f 651/2859/438 652/2873/431 645/2853/428 +f 647/2860/432 650/2874/441 643/2854/443 +f 645/2853/428 652/2873/431 653/2861/434 +f 648/2857/28 649/2863/435 642/2848/425 +f 649/2863/435 647/3100/432 639/2864/433 +f 648/2865/28 655/3101/24 656/2866/436 +f 649/2868/435 656/3102/436 654/2869/440 +f 660/2870/437 655/3101/24 648/2865/28 +f 651/2859/438 658/3103/499 659/2872/439 +f 654/2869/440 657/3104/500 650/2874/441 +f 652/2873/431 659/2872/439 660/2875/437 +f 1377/2876/444 1378/2901/448 1370/2877/16 +f 1375/2879/445 1376/2903/449 1368/2880/330 +f 1373/2882/446 1374/2905/450 1366/2883/329 +f 1380/2885/447 1373/2882/446 1365/2884/13 +f 1378/2887/448 1379/2894/37 1371/2888/12 +f 1376/2890/449 1377/2876/444 1369/2878/11 +f 1374/2892/450 1375/2879/445 1367/2881/14 +f 1379/2894/37 1380/2919/447 1372/2895/15 +f 1380/2885/447 1387/2915/453 1381/2896/432 +f 1377/2876/444 1376/2890/449 1384/2897/434 +f 1375/2879/445 1374/2892/450 1382/2899/435 +f 1378/2901/448 1377/2876/444 1385/2898/431 +f 1376/2903/449 1375/2879/445 1383/2900/28 +f 1374/2905/450 1373/2882/446 1381/2896/432 +f 1386/2902/451 1385/2898/431 1392/2907/428 +f 1384/2909/434 1383/2917/28 1390/2910/429 +f 1381/2912/432 1388/2925/433 1389/2913/425 +f 1387/2915/453 1394/2921/454 1388/2916/433 +f 1384/2897/434 1391/2931/427 1392/2907/428 +f 1382/2914/435 1389/2913/425 1390/2910/429 +f 1390/2910/429 1398/2933/460 1399/2924/455 +f 1388/2925/433 1396/2942/458 1397/2926/456 +f 1393/2908/452 1401/2934/461 1395/2927/457 +f 1394/2921/454 1402/2930/459 1396/2929/458 +f 1379/2920/37 1395/2939/457 1402/2930/459 +f 1391/2931/427 1399/2956/455 1400/2932/330 +f 1389/2913/425 1397/2926/456 1398/2933/460 +f 1392/2907/428 1400/2932/330 1401/2934/461 +f 1395/2927/457 1401/2934/461 1408/2935/462 +f 1402/2930/459 1409/2940/465 1404/2937/15 +f 1397/2926/456 1405/2943/467 1406/2938/464 +f 1395/2939/457 1403/2949/463 1409/2940/465 +f 1398/2933/460 1406/2938/464 1407/2941/466 +f 1396/2942/458 1404/3105/15 1405/2943/467 +f 1407/2941/466 1406/2938/464 1413/2944/468 +f 1405/2946/467 1404/2953/15 1411/2947/470 +f 1403/2949/463 1408/3106/462 1415/2950/472 +f 1409/2952/465 1416/2967/474 1411/2947/470 +f 1406/2938/464 1405/2943/467 1412/2954/471 +f 1403/2949/463 1410/2951/473 1416/2955/474 +f 1411/2947/470 1419/2968/478 1420/2963/475 +f 1400/2960/330 1417/2966/477 1423/2964/476 +f 1415/2950/472 1423/2992/476 1418/2965/331 +f 1414/2959/469 1422/2976/481 1417/2966/477 +f 1416/2967/474 1424/2972/480 1419/2968/478 +f 1412/2954/471 1420/2974/475 1421/2969/479 +f 1410/2951/473 1418/2965/331 1424/2970/480 +f 1413/2944/468 1421/2969/479 1422/2971/481 +f 1424/2972/480 1431/2983/489 1426/2973/482 +f 1420/2974/475 1427/3107/485 1428/2975/343 +f 1422/2976/481 1429/3108/484 1425/2977/483 +f 1421/2969/479 1428/2975/343 1429/2978/484 +f 1420/2963/475 1419/2968/478 1426/2973/482 +f 1417/2966/477 1425/2977/483 1430/2980/486 +f 1426/2973/482 1433/2984/490 1434/2981/487 +f 1425/2977/483 1432/2989/493 1437/2982/488 +f 1431/2983/489 1438/3000/494 1433/2984/490 +f 1427/2985/485 1434/3002/487 1435/2986/491 +f 1425/2977/483 1429/3108/484 1436/2988/492 +f 1429/2990/484 1428/2987/343 1435/2986/491 +f 1418/2965/331 1439/2999/13 1446/2997/15 +f 1432/2989/493 1440/3004/14 1445/2998/329 +f 1437/2994/488 1445/3109/329 1439/2999/13 +f 1438/3000/494 1446/3110/15 1441/3001/12 +f 1434/3002/487 1442/3111/16 1443/3003/11 +f 1436/2988/492 1444/3112/330 1440/3004/14 +f 1435/2986/491 1443/3003/11 1444/3005/330 +f 1433/2984/490 1441/3001/12 1442/3006/16 +f 1479/3007/13 1486/3039/331 1470/3008/331 +f 1480/3010/332 1479/3113/13 1463/3011/13 +f 1473/3013/1 1472/3043/332 1456/3014/332 +f 1481/3016/1 1480/3010/332 1464/3012/332 +f 1474/3018/343 1473/3013/1 1457/3015/1 +f 1482/3020/343 1481/3016/1 1465/3017/1 +f 1475/3022/11 1474/3114/343 1458/3023/343 +f 1483/3025/11 1482/3115/343 1466/3026/343 +f 1476/3028/405 1475/3022/11 1459/3024/11 +f 1484/3030/405 1483/3025/11 1467/3027/11 +f 1477/3032/2 1476/3028/405 1460/3029/405 +f 1485/3034/2 1484/3030/405 1468/3031/405 +f 1478/3036/331 1477/3116/2 1461/3037/2 +f 1486/3039/331 1485/3117/2 1469/3040/2 +f 1471/3041/13 1478/3036/331 1462/3038/331 +f 1472/3043/332 1471/3118/13 1455/3044/13 +f 1471/3041/329 1488/3119/329 1494/3045/495 +f 1485/3046/35 1486/3120/495 1502/1937/495 +f 1471/3047/329 1472/3121/496 1487/2425/496 +f 1479/3007/329 1496/3122/329 1502/3048/495 +f 1480/3049/496 1495/2420/496 1496/1938/329 +f 1473/3013/28 1489/3123/28 1487/3051/496 +f 1480/3010/496 1481/3016/28 1497/3052/28 +f 1473/3054/28 1474/3058/497 1490/2427/497 +f 1482/3055/497 1498/2422/497 1497/2421/28 +f 1475/3057/330 1491/1940/330 1490/2427/497 +f 1483/3059/330 1499/1939/330 1498/2422/497 +f 1475/3057/330 1476/3061/498 1492/2428/498 +f 1483/3059/330 1484/3062/498 1500/2423/498 +f 1477/3060/35 1493/1941/35 1492/2428/498 +f 1485/3046/35 1501/2424/35 1500/2423/498 +f 1477/3060/35 1478/3124/495 1494/2429/495 diff --git a/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj new file mode 100644 index 000000000..0a7aa02dd --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj @@ -0,0 +1,9409 @@ +# Blender 3.6.1 +# www.blender.org +mtllib UAC pistol.mtl +o bool_obj_bool_obj_data.002 +v -0.395192 7.596701 -3.479156 +v 0.584592 7.596701 -3.479156 +v 0.584592 6.166869 -3.479156 +v -0.395192 6.166869 -3.479156 +v -0.395192 8.736673 -5.713195 +v 0.584592 8.736673 -5.713195 +v -0.395192 9.164925 -5.571519 +v 0.584592 9.164925 -5.571519 +v -0.395192 9.566045 -5.817651 +v 0.584592 9.566045 -5.817651 +v -0.395192 9.328085 -6.240386 +v 0.584592 9.328085 -6.240386 +v -0.395192 8.650138 -6.472074 +v 0.584592 8.650138 -6.472074 +v -0.395192 8.023209 -6.974555 +v 0.584592 8.023209 -6.974555 +v -0.395192 7.262578 -7.039774 +v 0.584592 7.262578 -7.039774 +v -0.395192 7.029797 -6.702054 +v 0.584592 7.029797 -6.702054 +v -0.395192 7.269280 -6.422195 +v 0.584592 7.269280 -6.422195 +v -0.395192 7.572928 -6.422195 +v 0.584592 7.572928 -6.422195 +v -0.395192 8.226030 -6.011785 +v 0.584592 8.226030 -6.011785 +v -0.395192 6.903951 -4.234125 +v 0.584592 6.903951 -4.234125 +v -0.395192 6.148036 -4.191928 +v 0.584592 6.148036 -4.191928 +v -0.395192 7.596701 -3.479156 +v 0.584592 7.596701 -3.479156 +v 0.584592 6.166869 -3.479156 +v -0.395192 6.166869 -3.479156 +v -0.395192 8.736673 -5.713195 +v 0.584592 8.736673 -5.713195 +v -0.395192 9.164925 -5.571519 +v 0.584592 9.164925 -5.571519 +v -0.395192 9.566045 -5.817651 +v 0.584592 9.566045 -5.817651 +v -0.395192 9.328085 -6.240386 +v 0.584592 9.328085 -6.240386 +v -0.395192 8.650138 -6.472074 +v 0.584592 8.650138 -6.472074 +v -0.395192 8.023209 -6.974555 +v 0.584592 8.023209 -6.974555 +v -0.395192 7.262578 -7.039774 +v 0.584592 7.262578 -7.039774 +v -0.395192 7.029797 -6.702054 +v 0.584592 7.029797 -6.702054 +v -0.395192 7.269280 -6.422195 +v 0.584592 7.269280 -6.422195 +v -0.395192 7.572928 -6.422195 +v 0.584592 7.572928 -6.422195 +v -0.395192 8.226030 -6.011785 +v 0.584592 8.226030 -6.011785 +v -0.395192 6.903951 -4.234125 +v 0.584592 6.903951 -4.234125 +v -0.395192 6.148036 -4.191928 +v 0.584592 6.148036 -4.191928 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.5222 0.8528 +vn -0.0000 -0.6977 0.7164 +vn -0.0000 0.3799 0.9250 +vn -0.0000 0.1152 0.9933 +vn -0.0000 0.9679 0.2511 +vn -0.0000 0.6394 -0.7689 +vn -0.0000 0.4816 -0.8764 +vn -0.0000 0.3715 -0.9284 +vn -0.0000 -0.4267 -0.9044 +vn -0.0000 -0.9986 0.0521 +vn -0.0000 -0.4182 0.9083 +vn -0.0000 -0.2769 0.9609 +vn -0.0000 -0.9829 0.1841 +vn -0.0000 -0.4738 -0.8807 +vn -0.0000 -0.7356 -0.6775 +vt 0.382588 0.627146 +vt 0.395485 0.647711 +s 0 +f 22/1/1 20/1/1 18/1/1 +f 17/1/2 21/1/2 23/1/2 +f 25/1/2 15/1/2 23/1/2 +f 16/1/1 26/1/1 24/1/1 +f 14/1/1 6/1/1 26/1/1 +f 13/1/2 25/1/2 5/1/2 +f 5/1/2 11/1/2 13/1/2 +f 12/1/1 6/1/1 14/1/1 +f 7/1/2 9/1/2 11/1/2 +f 12/1/1 10/1/1 8/1/1 +f 6/1/1 28/1/1 26/1/1 +f 28/1/1 3/2/1 30/1/1 +f 27/1/2 5/1/2 25/1/2 +f 27/1/2 4/2/2 1/1/2 +f 16/1/1 24/1/1 18/1/1 +f 24/1/1 22/1/1 18/1/1 +f 23/1/2 15/1/2 17/1/2 +f 17/1/2 19/1/2 21/1/2 +f 25/1/2 13/1/2 15/1/2 +f 16/1/1 14/1/1 26/1/1 +f 5/1/2 7/1/2 11/1/2 +f 12/1/1 8/1/1 6/1/1 +f 6/1/1 2/1/1 28/1/1 +f 28/1/1 2/1/1 3/2/1 +f 27/1/2 1/1/2 5/1/2 +f 27/1/2 29/1/2 4/2/2 +s 1 +f 31/1/3 33/2/4 32/1/3 +f 32/1/3 35/1/5 31/1/3 +f 36/1/5 37/1/6 35/1/5 +f 38/1/6 39/1/7 37/1/6 +f 40/1/7 41/1/8 39/1/7 +f 42/1/8 43/1/9 41/1/8 +f 44/1/9 45/1/10 43/1/9 +f 46/1/10 47/1/11 45/1/10 +f 48/1/11 49/1/12 47/1/11 +f 50/1/12 51/1/13 49/1/12 +f 52/1/13 53/1/14 51/1/13 +f 54/1/14 55/1/15 53/1/14 +f 56/1/15 57/1/16 55/1/15 +f 58/1/16 59/1/17 57/1/16 +f 34/2/4 60/1/17 33/2/4 +f 31/1/3 34/2/4 33/2/4 +f 32/1/3 36/1/5 35/1/5 +f 36/1/5 38/1/6 37/1/6 +f 38/1/6 40/1/7 39/1/7 +f 40/1/7 42/1/8 41/1/8 +f 42/1/8 44/1/9 43/1/9 +f 44/1/9 46/1/10 45/1/10 +f 46/1/10 48/1/11 47/1/11 +f 48/1/11 50/1/12 49/1/12 +f 50/1/12 52/1/13 51/1/13 +f 52/1/13 54/1/14 53/1/14 +f 54/1/14 56/1/15 55/1/15 +f 56/1/15 58/1/16 57/1/16 +f 58/1/16 60/1/17 59/1/17 +f 34/2/4 59/1/17 60/1/17 +o lower_pistol_0 +v 1.709833 6.807342 5.318411 +v 1.709833 6.807342 5.149457 +v 1.965886 6.807342 5.149457 +v 1.363295 6.807342 7.165411 +v 1.363295 6.807342 5.318411 +v 1.882584 6.807342 5.848535 +v 2.253843 6.902664 -4.747439 +v 2.253843 6.534985 -3.056432 +v 1.924818 6.534985 -3.056432 +v 1.924818 6.930664 -2.831019 +v 1.924818 6.534985 -3.056432 +v 2.253843 6.534985 -3.056432 +v 2.253843 6.534985 -3.056432 +v 2.253843 6.902664 -4.747439 +v 2.253843 7.162436 -4.697546 +v 1.924818 6.930664 -2.831019 +v 1.592578 6.930664 -2.831019 +v 1.592578 7.603653 -2.269644 +v 1.592578 6.534985 -3.056432 +v 1.592578 6.902664 -4.747439 +v 1.924818 6.125614 -1.931486 +v 1.592578 6.902664 -4.747439 +v 1.592578 7.162436 -4.697546 +v 2.253843 7.162436 -4.697546 +v 2.253843 7.603653 -2.269644 +v 2.253843 7.371370 -2.466393 +v 1.924818 7.371370 -2.466393 +v 2.253843 7.371370 -2.466393 +v 2.253843 7.603653 -2.269644 +v 2.253843 6.966193 -1.398448 +v 2.253843 7.603653 -2.269644 +v 1.592578 7.603653 -2.269644 +v 1.592578 6.966193 -1.398448 +v 1.592578 7.162436 -4.697546 +v 1.592578 6.902664 -4.747439 +v 1.592578 6.534985 -3.056432 +v 2.253843 6.930664 -2.831019 +v 2.253843 7.162436 -4.697546 +v 1.592578 7.162436 -4.697546 +v 1.924818 7.371370 -2.466393 +v 1.924818 6.726052 -1.549974 +v 1.924818 6.125614 -1.931486 +v 2.253843 6.966193 -1.398448 +v 1.592578 6.966193 -1.398448 +v 1.924818 6.726052 -1.549974 +v 1.709833 7.483092 5.149457 +v 1.709833 6.807342 5.149457 +v 1.709833 7.118924 5.318411 +v 1.363295 7.118924 5.318411 +v 1.363295 6.807342 7.165411 +v 1.363295 7.118924 10.804634 +v 1.363295 6.201985 10.638463 +v 1.363295 6.617642 11.001134 +v 1.363295 7.118924 10.804634 +v 1.882584 7.118924 7.165411 +v 1.363295 7.118924 5.318411 +v 2.249606 7.118924 10.804634 +v 2.249606 7.118924 7.165411 +v 1.709833 7.483090 5.848535 +v 1.709833 7.483090 5.848535 +v 1.882584 7.118924 5.848535 +v 1.965886 7.483090 5.848535 +v 2.249606 7.118924 10.804634 +v 2.249606 6.617642 11.001134 +v 2.249606 6.201985 10.638463 +v 2.249606 7.118924 7.165411 +v 1.363295 6.915578 11.004506 +v 1.363295 6.411725 10.933464 +v 1.709833 7.118924 5.848535 +v 1.709833 7.118924 5.848535 +v 1.882584 6.807342 5.848535 +v 1.965886 6.807342 5.848535 +v 2.249606 6.411725 10.933464 +v 2.249606 6.807342 7.165411 +v 2.249606 6.807342 7.165411 +v 2.249606 6.201985 10.638463 +v 1.363295 6.201985 10.638463 +v 1.363295 6.915578 11.004506 +v 2.249606 6.915578 11.004506 +v 1.363295 6.617642 11.001134 +v 2.249606 6.617642 11.001134 +v 1.363295 6.411725 10.933464 +v 2.249606 6.411725 10.933464 +v 1.882584 6.807342 7.165411 +v 1.709833 7.118924 5.318411 +v 1.363295 6.807342 5.318411 +v 1.363295 7.118924 5.318411 +v 1.709833 7.118924 5.318411 +v 1.709833 6.807342 5.149457 +v 1.709833 7.483092 5.149457 +v 1.965886 7.483092 5.149457 +v 1.965886 7.483092 5.149457 +v 1.709833 7.483092 5.149457 +v 1.709833 7.483090 5.848535 +v 1.965886 6.807342 5.149457 +v 1.965886 7.483092 5.149457 +v 1.965886 7.483090 5.848535 +v 1.882584 6.807342 5.848535 +v 1.882584 7.118924 5.848535 +v 1.882584 7.118924 7.165411 +v 1.882584 6.807342 7.165411 +v 1.882584 7.118924 7.165411 +v 2.249606 7.118924 7.165411 +v 1.363295 6.807342 5.318411 +v 1.882584 7.118924 5.848535 +v 1.709833 6.807342 5.318411 +v 1.709833 7.118924 5.848535 +v 2.249606 6.915578 11.004506 +v 0.741864 8.870750 5.649786 +v 0.685393 8.586851 5.649786 +v 0.685393 8.586853 22.443676 +v -1.051055 4.245723 5.289183 +v -1.051055 4.815591 5.698347 +v -1.582758 4.978196 4.997455 +v -1.051055 0.126899 9.525374 +v -1.051055 0.126897 6.278877 +v -1.051055 -0.223472 3.408138 +v -1.051055 5.194829 19.361946 +v -1.051055 4.834130 12.349441 +v -1.051055 4.834130 19.361946 +v -1.582758 5.194829 5.282278 +v -1.373788 7.218986 19.361946 +v -1.373788 6.342139 19.361946 +v -0.857694 7.218986 19.361946 +v -1.051055 5.194829 19.361946 +v -0.857694 5.453609 19.361946 +v -1.373788 5.534112 19.361946 +v 0.741864 8.870753 22.443676 +v 0.685393 8.586853 22.443676 +v 0.912610 8.492737 22.443676 +v 0.987802 8.870753 22.443676 +v 0.912610 8.492737 22.443676 +v 0.912610 8.492735 5.649786 +v 0.987802 8.870750 5.649786 +v 0.912610 8.492735 5.649786 +v 0.685393 8.586851 5.649786 +v 0.524577 8.346173 5.649786 +v 0.524577 8.346175 22.443676 +v 0.524577 8.346175 22.443676 +v 0.698482 8.172271 22.443676 +v 0.698482 8.172271 22.443676 +v 0.698482 8.172269 5.649786 +v 0.698482 8.172269 5.649786 +v 0.524577 8.346173 5.649786 +v 0.283899 8.185357 5.649786 +v 0.283899 8.185359 22.443676 +v 0.283899 8.185359 22.443676 +v 0.378015 7.958142 22.443676 +v 0.378015 7.958142 22.443676 +v 0.378015 7.958138 5.649786 +v 0.378015 7.958138 5.649786 +v 0.283899 8.185357 5.649786 +v 0.000000 8.128886 5.649786 +v 0.000000 8.128888 22.443676 +v 0.000000 8.128888 22.443676 +v 0.000000 7.882950 22.443676 +v 0.000000 7.882950 22.443676 +v 0.000000 7.882946 5.649786 +v 0.000000 7.882946 5.649786 +v 0.000000 8.128886 5.649786 +v 0.000000 8.128886 5.649786 +v -0.283899 8.185357 5.649786 +v -0.283899 8.185359 22.443676 +v -0.283899 8.185359 22.443676 +v -0.378015 7.958142 22.443676 +v 0.000000 7.882950 22.443676 +v -0.378015 7.958142 22.443676 +v -0.378015 7.958138 5.649786 +v -0.378015 7.958138 5.649786 +v -0.283899 8.185357 5.649786 +v -0.524577 8.346173 5.649786 +v -0.524577 8.346175 22.443676 +v -0.524577 8.346175 22.443676 +v -0.698482 8.172271 22.443676 +v -0.698482 8.172271 22.443676 +v -0.698482 8.172269 5.649786 +v -0.698482 8.172269 5.649786 +v -0.524577 8.346173 5.649786 +v -0.685393 8.586851 5.649786 +v -0.685393 8.586853 22.443676 +v -0.685393 8.586853 22.443676 +v -0.912610 8.492737 22.443676 +v -0.912610 8.492737 22.443676 +v -0.912610 8.492735 5.649786 +v -0.912610 8.492735 5.649786 +v -0.685393 8.586851 5.649786 +v -0.741864 8.870750 5.649786 +v -0.741864 8.870753 22.443676 +v -0.741864 8.870753 22.443676 +v -0.987802 8.870753 22.443676 +v -0.987802 8.870753 22.443676 +v -0.987802 8.870750 5.649786 +v -0.987802 8.870750 5.649786 +v -0.741864 8.870750 5.649786 +v -0.685393 9.154650 5.649786 +v -0.685393 9.154652 22.443676 +v -0.685393 9.154652 22.443676 +v -0.912610 9.248768 22.443676 +v -0.912610 9.248768 22.443676 +v -0.912610 9.248766 5.649786 +v -0.912610 9.248766 5.649786 +v -0.685393 9.154650 5.649786 +v -0.524577 9.395328 5.649786 +v -0.524577 9.395329 22.443676 +v -0.524577 9.395329 22.443676 +v -0.698482 9.569234 22.443676 +v -0.698482 9.569234 22.443676 +v -0.698482 9.569232 5.649784 +v -0.698482 9.569232 5.649784 +v -0.524577 9.395328 5.649786 +v -0.283899 9.556144 5.649784 +v -0.283899 9.556146 22.443676 +v -0.283899 9.556146 22.443676 +v -0.378015 9.783361 22.443676 +v -0.378015 9.783361 22.443676 +v -0.378015 9.783360 5.649784 +v -0.378015 9.783360 5.649784 +v -0.283899 9.556144 5.649784 +v 0.000000 9.612615 5.649784 +v 0.000000 9.612617 22.443676 +v 0.000000 9.612617 22.443676 +v 0.000000 9.858554 22.443676 +v 0.000000 9.858554 22.443676 +v 0.000000 9.858552 5.649784 +v 0.000000 9.858552 5.649784 +v 0.000000 9.612615 5.649784 +v 0.283899 9.556144 5.649784 +v 0.283899 9.556146 22.443676 +v 0.283899 9.556146 22.443676 +v 0.378015 9.783361 22.443676 +v 0.378015 9.783361 22.443676 +v 0.378015 9.783360 5.649784 +v 0.378015 9.783360 5.649784 +v 0.283899 9.556144 5.649784 +v 0.524577 9.395328 5.649786 +v 0.524577 9.395329 22.443676 +v 0.524577 9.395329 22.443676 +v 0.698482 9.569234 22.443676 +v 0.698482 9.569234 22.443676 +v 0.698482 9.569232 5.649784 +v 0.698482 9.569232 5.649784 +v 0.524577 9.395328 5.649786 +v 0.685393 9.154650 5.649786 +v 0.685393 9.154652 22.443676 +v 0.685393 9.154652 22.443676 +v 0.912610 9.248768 22.443676 +v 0.912610 9.248768 22.443676 +v 0.912610 9.248766 5.649786 +v 0.912610 9.248766 5.649786 +v 0.685393 9.154650 5.649786 +v 0.741864 8.870753 22.443676 +v 0.987802 8.870753 22.443676 +v 0.987802 8.870750 5.649786 +v 0.741864 8.870750 5.649786 +v 1.133210 1.741260 4.213062 +v 1.133210 1.619134 4.668841 +v 1.133210 1.560808 4.635167 +v 1.133210 1.285481 5.002494 +v 1.133210 1.251807 4.944168 +v 1.133210 0.829702 5.124619 +v 1.133210 0.829702 5.057271 +v 1.133210 0.373924 5.002494 +v 1.133210 0.407598 4.944168 +v 1.133210 0.040271 4.668841 +v 1.133210 0.098596 4.635167 +v 1.133210 -0.081855 4.213062 +v 1.133210 -0.014506 4.213062 +v 1.133210 0.040271 3.757283 +v 1.133210 0.098596 3.790958 +v 1.133210 0.373924 3.423630 +v 1.133210 0.407598 3.481956 +v 1.133210 0.829702 3.301505 +v 1.133210 0.829702 3.368853 +v 1.133210 1.285481 3.423630 +v 1.133210 1.251807 3.481956 +v 1.133210 1.619134 3.757283 +v 1.133210 1.560808 3.790958 +v 1.133210 1.673911 4.213062 +v 1.133210 1.560808 3.790958 +v 1.133210 1.673911 4.213062 +v 1.469249 1.673911 4.213062 +v 1.020556 1.741260 4.213062 +v 1.020556 1.619134 4.668841 +v 1.133210 1.619134 4.668841 +v 1.469249 1.673911 4.213062 +v 1.469249 1.560808 4.635167 +v 1.469249 0.829702 4.213062 +v 1.133210 1.251807 3.481956 +v 1.469249 1.560808 3.790958 +v 1.020556 1.285481 5.002494 +v 1.133210 1.285481 5.002494 +v 1.469249 1.251807 4.944168 +v 1.133210 0.829702 3.368853 +v 1.469249 1.251807 3.481956 +v 1.020556 0.829702 5.124619 +v 1.133210 0.829702 5.124619 +v 1.469249 0.829702 5.057271 +v 1.133210 0.407598 3.481956 +v 1.133210 0.829702 3.368853 +v 1.469249 0.829702 3.368853 +v 1.020556 0.373924 5.002494 +v 1.133210 0.373924 5.002494 +v 1.469249 0.407598 4.944168 +v 1.133210 0.098596 3.790958 +v 1.469249 0.407598 3.481956 +v 1.020556 0.040271 4.668841 +v 1.133210 0.040271 4.668841 +v 1.469249 0.098596 4.635167 +v 1.133210 -0.014506 4.213062 +v 1.469249 0.098596 3.790958 +v 1.020556 -0.081855 4.213062 +v 1.133210 -0.081855 4.213062 +v 1.469249 -0.014506 4.213062 +v 1.133210 0.098596 4.635167 +v 1.469249 -0.014506 4.213062 +v 1.020556 0.040271 3.757283 +v 1.133210 0.040271 3.757283 +v 1.469249 0.098596 3.790958 +v 1.133210 0.407598 4.944168 +v 1.469249 0.098596 4.635167 +v 1.020556 0.373924 3.423630 +v 1.133210 0.373924 3.423630 +v 1.469249 0.407598 3.481956 +v 1.133210 0.829702 5.057271 +v 1.469249 0.407598 4.944168 +v 1.020556 0.829702 3.301505 +v 1.133210 0.829702 3.301505 +v 1.469249 0.829702 3.368853 +v 1.133210 1.251807 4.944168 +v 1.469249 0.829702 5.057271 +v 1.020556 0.829702 3.301505 +v 1.020556 1.285481 3.423630 +v 1.133210 1.285481 3.423630 +v 1.469249 1.251807 3.481956 +v 1.133210 1.560808 4.635167 +v 1.469249 1.251807 4.944168 +v 1.020556 1.619134 3.757283 +v 1.133210 1.619134 3.757283 +v 1.469249 1.560808 3.790958 +v 1.469249 1.560808 4.635167 +v 1.133210 1.741260 4.213062 +v -2.120367 6.032114 -1.127586 +v -2.168285 6.052625 -0.925915 +v -2.124553 6.332816 -1.081475 +v -1.803483 -8.183756 -0.940652 +v -1.550631 -8.207280 -0.940179 +v -1.803497 2.273637 3.302741 +v -2.107996 4.322828 -0.236828 +v -2.163024 4.259209 -0.066218 +v -2.116467 4.647215 -0.174769 +v -2.168202 1.521683 2.220641 +v -2.172835 -7.439816 -1.372816 +v -2.137654 1.534970 2.385706 +v -1.849792 2.296251 3.228978 +v -1.880736 2.578792 3.289423 +v -1.879857 2.017154 3.056580 +v -1.803508 -5.875546 -4.913877 +v -1.803499 -6.096517 -4.976789 +v -2.130997 -6.177514 -4.485744 +v -1.550631 -5.813593 -4.933241 +v -1.550631 -6.027864 -4.968081 +v -1.839455 4.411472 -0.653382 +v -2.137789 6.702975 -0.434407 +v -1.803504 7.006510 -0.872318 +v -1.803507 7.133335 -0.533684 +v -1.550631 7.026423 -0.881129 +v -1.803483 6.443164 -1.419199 +v -2.176839 -6.680809 -4.296600 +v -2.176541 -6.266698 -4.325727 +v -2.177566 -6.820210 -4.161255 +v -2.121354 -6.703001 -4.498363 +v -2.173862 1.655341 1.737604 +v -1.978566 2.889965 3.247607 +v -1.933436 2.830892 2.688685 +v -2.119590 3.136953 3.088691 +v -1.971355 2.842444 2.231860 +v -2.159245 3.192134 2.951774 +v -2.171134 2.757730 1.304274 +v -2.032148 2.748445 1.721616 +v -2.176745 2.987958 1.594733 +v -2.167308 3.176706 2.349641 +v -1.838198 2.378400 2.963018 +v -1.857113 2.122498 2.578046 +v -2.068853 1.609260 2.541311 +v -1.962750 1.737307 2.831918 +v -1.945670 1.985472 2.045092 +v -2.173443 2.217372 1.117763 +v -2.176554 1.911733 1.296362 +v -2.047754 2.044644 1.547692 +v -1.847373 2.496792 2.548999 +v -1.977065 2.428715 1.644999 +v -1.883795 2.419949 2.091068 +v -2.169390 2.475281 1.132310 +v -2.174314 6.129676 4.109241 +v -2.176527 6.514084 3.866836 +v -2.108078 6.117068 4.317319 +v -2.174668 5.841984 -0.795250 +v -2.179727 5.017104 -0.002164 +v -2.141465 5.765682 -0.955082 +v -2.145445 -6.930309 -4.281384 +v -2.119612 -7.822574 -1.480974 +v -2.176766 -7.604493 -1.548244 +v -2.174624 4.663060 0.053574 +v -2.163947 6.294227 -0.887580 +v -2.176857 6.557230 -0.328894 +v -1.803505 6.986403 4.265716 +v -2.129669 6.678270 3.948848 +v -1.550631 7.011675 4.277203 +v -1.803498 6.146347 4.785964 +v -1.550631 5.888646 4.797830 +v -1.550631 6.141140 4.807180 +v -1.803494 -8.338592 -1.148251 +v -2.121051 -7.647707 -1.285313 +v -1.284940 0.829702 3.740532 +v -1.284940 1.075818 2.934655 +v -1.284940 0.583586 2.934655 +v -1.284940 0.442691 4.456008 +v -1.284940 0.606261 4.619579 +v -1.353546 0.606261 4.619579 +v -1.284940 0.382820 4.232567 +v -1.353546 0.442691 4.456008 +v -1.284940 0.829702 4.679450 +v -1.353546 0.829702 4.679450 +v -1.284940 0.442691 4.009126 +v -1.353546 0.382820 4.232567 +v -1.284940 0.606261 3.845556 +v -1.353546 0.442691 4.009126 +v -1.284940 1.053144 4.619579 +v -1.353546 1.053144 4.619579 +v -1.284940 0.829702 3.785685 +v -1.353546 0.606261 3.845556 +v -1.284940 1.053144 3.845556 +v -1.353546 0.829702 3.785685 +v -1.284940 1.216714 4.456008 +v -1.353546 1.216714 4.456008 +v -1.284940 1.216714 4.009126 +v -1.353546 1.053144 3.845556 +v -1.284940 1.276585 4.232567 +v -1.353546 1.216714 4.009126 +v -1.353546 1.276585 4.232567 +v -1.284940 0.403587 4.478585 +v -1.284940 0.583685 4.658682 +v -1.284940 0.606261 4.619579 +v -1.284940 0.337667 4.232567 +v -1.284940 0.442691 4.456008 +v -1.284940 0.829702 4.724603 +v -1.284940 0.829702 4.679450 +v -1.284940 0.403587 3.986549 +v -1.284940 0.382820 4.232567 +v -1.284940 0.583685 3.806452 +v -1.284940 0.442691 4.009126 +v -1.284940 1.075720 4.658682 +v -1.284940 1.053144 4.619579 +v -1.284940 0.606261 3.845556 +v -1.284940 1.075720 3.806452 +v -1.284940 0.829702 3.785685 +v -1.284940 1.255818 4.478585 +v -1.284940 1.216714 4.456008 +v -1.284940 1.255818 3.986549 +v -1.284940 1.053144 3.845556 +v -1.284940 1.321738 4.232567 +v -1.284940 1.216714 4.009126 +v -1.284940 1.276585 4.232567 +v -1.353546 0.606261 4.619579 +v -1.353546 0.829702 4.232567 +v -1.353546 0.442691 4.456008 +v -1.284940 0.583685 4.658682 +v -1.284940 0.403587 4.478585 +v -0.991334 0.403587 4.478585 +v -1.284940 0.829702 4.724603 +v -0.991334 0.583685 4.658682 +v -1.353546 0.382820 4.232567 +v -1.284940 0.337667 4.232567 +v -0.991334 0.337667 4.232567 +v -1.353546 0.829702 4.679450 +v -1.353546 0.442691 4.009126 +v -1.284940 0.403587 3.986549 +v -0.991334 0.403587 3.986549 +v -1.284940 1.075720 4.658682 +v -0.991334 0.829702 4.724603 +v -1.353546 0.606261 3.845556 +v -1.284940 0.583685 3.806452 +v -0.991334 0.583685 3.806452 +v -1.353546 1.053144 4.619579 +v -1.353546 0.829702 3.785685 +v -1.284940 1.075720 3.806452 +v -0.991334 1.075720 3.806452 +v -0.991334 1.075818 2.934655 +v -1.284940 1.255818 4.478585 +v -0.991334 1.075720 4.658682 +v -1.353546 1.053144 3.845556 +v -1.284940 0.714416 2.803811 +v -1.284940 0.944989 2.803811 +v -0.991334 0.944989 2.803811 +v -1.353546 1.216714 4.456008 +v -1.353546 1.216714 4.009126 +v -1.284940 1.255818 3.986549 +v -0.991334 1.255818 3.986549 +v -1.284940 1.321738 4.232567 +v -0.991334 1.255818 4.478585 +v -1.353546 1.276585 4.232567 +v -0.991334 1.321738 4.232567 +v -1.284940 1.075818 2.934655 +v -1.284940 0.583586 2.934655 +v -0.991334 0.583586 2.934655 +v -1.284940 0.583586 2.934655 +v -1.284940 0.944989 2.803811 +v -1.702916 6.787141 -2.070845 +v -1.702916 6.582519 -2.070845 +v -1.702916 6.727209 -1.926155 +v -1.702916 6.787141 -2.070845 +v -1.702916 6.727209 -1.926155 +v 1.979996 6.727209 -1.926155 +v 1.979996 6.787141 -2.070845 +v 1.979996 6.727209 -1.926155 +v 1.979996 6.582519 -2.070845 +v -1.702916 6.582519 -1.866223 +v -1.702916 6.582519 -1.866223 +v 1.979996 6.582519 -1.866223 +v 1.979996 6.582519 -1.866223 +v -1.702916 6.437829 -1.926155 +v -1.702916 6.437829 -1.926155 +v 1.979996 6.437829 -1.926155 +v 1.979996 6.437829 -1.926155 +v -1.702916 6.377896 -2.070845 +v -1.702916 6.437829 -1.926155 +v -1.702916 6.377896 -2.070845 +v 1.979996 6.377896 -2.070845 +v 1.979996 6.377896 -2.070845 +v -1.702916 6.437829 -2.215535 +v -1.702916 6.437829 -2.215535 +v 1.979996 6.437829 -2.215535 +v 1.979996 6.437829 -2.215535 +v -1.702916 6.582519 -2.275470 +v -1.702916 6.582519 -2.275470 +v 1.979996 6.582519 -2.275470 +v -1.425465 5.714321 12.324278 +v -1.425465 5.534113 12.470450 +v -1.425465 6.342139 12.470448 +v 1.979996 6.582519 -2.275470 +v -1.702916 6.727209 -2.215535 +v -1.373788 5.534112 19.361946 +v -1.702916 6.727209 -2.215535 +v 1.979996 6.727209 -2.215535 +v 1.979996 6.727209 -2.215535 +v -1.425465 5.714321 12.324278 +v -1.425465 6.129150 12.324278 +v -1.582758 6.173633 12.234967 +v -1.425465 5.534113 12.470450 +v -1.582758 5.657323 12.234967 +v 1.979996 6.787141 -2.070845 +v 0.000000 6.215096 -5.421185 +v -1.582758 6.749187 -4.912819 +v 1.582758 6.749187 -4.912819 +v 1.488590 5.921740 -5.685918 +v 0.000000 6.031167 -5.736896 +v -1.582758 5.957942 -5.266879 +v -1.582758 5.870734 -4.399592 +v -1.582758 6.749187 -4.912819 +v 1.582758 5.957942 -5.266879 +v 1.582758 6.154637 -5.365934 +v 1.582758 6.749187 -4.912819 +v 1.582758 5.848899 -5.238699 +v 1.582758 5.870734 -4.399592 +v 0.983988 5.324528 -5.327059 +v -1.425465 6.342139 12.470448 +v -1.582758 6.342139 12.374790 +v -1.582758 5.848899 -5.238699 +v -1.484238 5.789523 -5.649559 +v -0.983988 5.324528 -5.327059 +v 1.488590 5.921740 -5.685918 +v -1.425465 6.342139 12.470448 +v -1.373788 6.342139 19.361946 +v -1.582758 6.342139 18.331852 +v -1.051055 0.805344 10.660654 +v -1.051055 0.446520 11.231197 +v -1.051055 3.374606 10.660654 +v -1.051055 -0.223472 11.574593 +v -1.051055 0.200443 10.158533 +v -0.836559 7.218984 0.486122 +v -1.148529 7.218984 0.843370 +v -1.148529 -7.632975 -5.164886 +v -1.092400 5.576506 -6.393807 +v -1.582758 6.342139 18.331852 +v -1.582758 7.218986 18.331852 +v -1.582758 6.342139 12.374790 +v -1.051055 5.194829 6.202400 +v -1.051055 5.194829 19.361946 +v -1.582758 5.194829 18.331852 +v -1.373788 5.194829 19.361946 +v -0.580398 3.816195 5.489355 +v -0.580398 5.143754 5.307024 +v -0.580398 4.250059 5.891655 +v -1.148529 7.218986 4.965837 +v -1.148529 -8.749960 -1.489983 +v -0.580398 4.410829 6.286258 +v -0.580398 4.410829 8.504850 +v -1.051055 4.410829 9.595867 +v -1.582758 7.218984 -4.804955 +v -0.843982 7.218986 5.409400 +v -1.148529 7.218986 4.965837 +v -0.957142 7.218986 5.409400 +v -1.582758 7.218986 5.409400 +v -1.582758 7.218986 5.409400 +v -1.582758 7.218986 18.331852 +v -0.857694 7.218986 12.938876 +v -1.213076 8.145895 -1.953277 +v -0.692288 8.145895 -1.953277 +v -0.427195 9.430100 -1.953277 +v -0.708688 7.624437 -1.953277 +v -0.397424 7.218984 -1.953277 +v -1.213076 7.624437 -1.953277 +v -1.213076 7.218984 -1.953277 +v -1.213076 7.218984 -1.953277 +v -0.836559 7.218984 0.486122 +v -0.397424 7.218984 -1.953277 +v -0.843982 7.218986 5.409400 +v -0.957142 7.218986 5.409400 +v -0.957142 7.863286 5.710876 +v -1.488590 5.921740 -5.685918 +v -1.582758 6.154637 -5.365934 +v -1.582758 5.957942 -5.266879 +v -1.488590 5.921740 -5.685918 +v 1.582758 5.957942 -5.266879 +v 1.484238 5.789523 -5.649559 +v -1.051055 0.730363 5.438924 +v -1.052369 1.419883 5.161799 +v -1.051770 1.087353 3.958939 +v -1.052369 2.312512 5.048415 +v -1.052369 3.020581 5.130578 +v -1.051055 4.245723 5.289183 +v -1.582758 0.545047 3.068055 +v -1.582758 -0.142682 2.781362 +v -1.051055 -0.223472 3.408138 +v -1.582758 4.606297 4.761065 +v -1.582758 1.087353 3.294126 +v -1.051770 1.087353 3.958939 +v 1.494327 1.329366 3.504859 +v 1.493618 0.998143 3.367662 +v 1.582758 -0.142682 2.781362 +v -1.582758 -2.770208 -4.057409 +v -1.582758 2.997752 -1.677936 +v -1.582758 0.676579 2.788985 +v -1.582758 0.955821 2.788985 +v -1.582758 1.087353 2.951361 +v -1.582758 7.218984 0.532608 +v -0.443586 5.533402 -6.767138 +v -0.528251 5.631948 -6.753191 +v 0.000000 5.631948 -6.801857 +v 1.239158 -6.459404 -6.210184 +v 1.239158 -6.716359 -6.316617 +v 1.239158 -5.908381 -6.182570 +v -1.239158 -6.459404 -6.210184 +v -1.239158 -6.352970 -5.953228 +v -1.239158 -5.908381 -6.182570 +v 1.239158 -7.503078 -5.592237 +v 1.239158 -6.973310 -5.696270 +v 1.239158 -6.751893 -5.355608 +v 1.239158 -7.188475 -6.627295 +v 1.239158 -7.079744 -5.953228 +v 1.239158 -6.352970 -5.953228 +v 1.239158 -6.111135 -5.821548 +v 1.239158 -6.459404 -5.696270 +v 1.239158 -6.353005 -5.417202 +v 1.239158 -6.716359 -5.589839 +v -1.239158 -7.503078 -5.592237 +v -1.239158 -7.079744 -5.953228 +v -1.239158 -7.188475 -6.627295 +v -1.239158 -6.716359 -5.589839 +v -1.239158 -6.973310 -5.696270 +v -1.239158 -6.751893 -5.355608 +v -1.239158 -6.459404 -5.696270 +v -1.239158 -6.353005 -5.417202 +v -1.239158 -6.111135 -5.821548 +v -1.239158 -6.716359 -6.316617 +v 1.239158 -6.973310 -6.210184 +v -1.239158 -6.973310 -6.210184 +v -1.148529 7.218984 0.843370 +v -1.582758 -8.611731 0.338330 +v -1.582758 -7.606416 0.140502 +v -1.539709 -9.237019 0.112446 +v -1.582758 -6.783546 -5.235445 +v -1.582758 -7.547009 -5.447709 +v -1.582758 -6.272799 -5.294005 +v -1.582758 -6.767919 0.122680 +v -1.582758 -5.973763 -5.781600 +v -1.582758 -3.887019 -5.026795 +v 0.000000 5.385467 -6.635780 +v 0.000000 5.533402 -6.815804 +v -0.957142 7.218986 7.609766 +v -1.582758 7.218984 -4.804955 +v -1.213076 7.218984 -4.804955 +v -1.582758 4.316335 -1.880566 +v -1.582758 5.060399 -2.393605 +v -1.213076 9.430100 -1.953277 +v -1.213076 9.430100 -4.335176 +v -1.213076 8.145895 -4.804955 +v -1.582758 5.060399 -2.393605 +v -1.582758 5.705914 -3.303000 +v -0.974568 4.768444 -3.230170 +v -1.113677 5.685021 -6.433600 +v -1.488590 5.921740 -5.685918 +v -1.582758 5.705914 -3.303000 +v -1.582758 7.218984 -4.804955 +v -1.213076 7.218984 -4.804955 +v -0.703050 7.624435 -4.804955 +v -0.702042 8.145895 -4.804955 +v -0.419459 8.845671 -4.804955 +v -1.239158 -7.188475 -6.627295 +v -1.239158 -5.908381 -6.182570 +v -0.974568 -7.096979 -6.928317 +v -1.239158 -5.908381 -6.182570 +v -1.239158 -6.111135 -5.821548 +v -1.582758 -5.973763 -5.781600 +v -1.582758 -7.547009 -5.447709 +v -1.582758 -6.783546 -5.235445 +v -1.239158 -6.751893 -5.355608 +v -1.582758 -6.272799 -5.294005 +v 2.119590 3.136953 3.088691 +v 2.108078 6.117068 4.317319 +v 1.803502 5.931036 4.779142 +v 1.880736 2.578792 3.289423 +v 1.978566 2.889965 3.247607 +v 1.803497 2.273637 3.302741 +v 1.962750 1.737307 2.831918 +v 1.879857 2.017154 3.056580 +v 1.803483 -8.183756 -0.940652 +v 2.068853 1.609260 2.541311 +v 2.137654 1.534970 2.385706 +v 1.803499 -6.096517 -4.976789 +v 2.130997 -6.177514 -4.485744 +v 2.121354 -6.703001 -4.498363 +v 1.550631 -7.022316 -4.915741 +v 1.550631 -6.027864 -4.968081 +v 2.116467 4.647215 -0.174769 +v 2.107996 4.322828 -0.236828 +v 1.839455 4.411472 -0.653382 +v 2.138861 4.925927 -0.212349 +v 1.832909 4.741830 -0.615315 +v 2.141465 5.765682 -0.955082 +v 1.803493 4.979961 -0.698811 +v 2.120367 6.032114 -1.127586 +v 1.803477 5.747915 -1.279529 +v 2.124553 6.332816 -1.081475 +v 1.803468 6.136785 -1.467315 +v 1.803507 7.133335 -0.533684 +v 1.803500 7.103070 4.086895 +v 2.129669 6.678270 3.948848 +v 1.550631 4.920799 -0.676702 +v 1.550631 5.750243 -1.260870 +v 1.550631 6.117420 -1.448277 +v 1.550631 6.431123 -1.427431 +v 1.803483 6.443164 -1.419199 +v 1.550631 4.711940 -0.618973 +v 1.839455 4.411472 -0.653382 +v 2.179727 5.017104 -0.002164 +v 2.174624 4.663060 0.053574 +v 2.119612 -7.822574 -1.480974 +v 2.176766 -7.604493 -1.548244 +v 2.121051 -7.647707 -1.285313 +v 1.803505 -7.014567 -4.882656 +v 2.137789 6.702975 -0.434407 +v 1.550631 4.418573 -0.651555 +v 1.550631 5.888646 4.797830 +v 1.550631 -8.207280 -0.940179 +v 2.163024 4.259209 -0.066218 +v 2.172835 -7.439816 -1.372816 +v 1.803508 -5.875546 -4.913877 +v 1.803504 7.006510 -0.872318 +v 1.550631 7.026423 -0.881129 +v 2.176857 6.557230 -0.328894 +v 2.163947 6.294227 -0.887580 +v 2.176527 6.514084 3.866836 +v 2.168285 6.052625 -0.925915 +v -0.823032 5.400961 -6.289595 +v -1.373788 7.218986 19.361946 +v -0.857694 7.218986 19.361946 +v 1.092400 5.576506 -6.393807 +v 0.443586 5.533402 -6.767138 +v 0.823032 5.400961 -6.289595 +v 0.403942 7.218984 -4.804955 +v 1.213076 7.218984 -4.804955 +v 0.974568 5.132453 -4.066989 +v 1.213076 8.145895 -4.804955 +v 1.213076 8.845671 -4.804955 +v 1.213076 9.430100 -4.335176 +v 0.703050 7.624435 -4.804955 +v 0.708688 7.624437 -1.953277 +v 1.213076 7.624437 -1.953277 +v 1.213076 7.624437 -1.953277 +v 1.213076 7.218984 -1.953277 +v 1.213076 7.218984 -4.804955 +v 0.703050 7.624435 -4.804955 +v 0.702042 8.145895 -4.804955 +v 0.692288 8.145895 -1.953277 +v 0.692288 8.145895 -1.953277 +v 0.702042 8.145895 -4.804955 +v 1.213076 8.145895 -4.804955 +v 1.213076 9.430100 -4.335176 +v 0.450662 9.430100 -4.335176 +v 0.427195 9.430100 -1.953277 +v 1.582758 7.218984 -4.804955 +v 0.528251 5.631948 -6.753191 +v 0.000000 5.631948 -6.801857 +v 1.113677 5.685021 -6.433600 +v 1.582758 6.154637 -5.365934 +v -0.403942 7.218984 -4.804955 +v 1.213076 7.218984 -1.953277 +v 1.582758 7.218984 -4.804955 +v 1.213076 7.218984 -4.804955 +v 0.703050 7.624435 -4.804955 +v 0.419459 8.845671 -4.804955 +v 1.213076 7.624435 -4.804955 +v 1.213076 8.845671 -4.804955 +v 1.213076 8.145895 -4.804955 +v 0.702042 8.145895 -4.804955 +v 0.450662 9.430100 -4.335176 +v 1.213076 9.430100 -4.335176 +v 0.836559 7.218984 0.486122 +v 0.397424 7.218984 -1.953277 +v -1.582758 6.154637 -5.365934 +v 1.582758 2.997752 -1.677936 +v 1.582758 4.606297 4.761065 +v 1.582758 5.060399 -2.393605 +v 1.582758 5.705914 -3.303000 +v 1.582758 7.218984 0.532608 +v 1.582758 4.978196 4.997455 +v 1.582758 7.218986 5.409400 +v 1.582758 6.173633 12.234967 +v 1.582758 5.194829 5.282278 +v 1.582758 5.194829 18.331852 +v 1.582758 5.534113 12.374792 +v 1.582758 4.316335 -1.880566 +v 1.582758 7.218984 -4.804955 +v 1.582758 6.342139 12.374790 +v 1.582758 5.657323 12.234967 +v 1.582758 7.218986 18.331852 +v 1.582758 7.218986 5.409400 +v 0.857694 7.218986 12.938876 +v 1.148529 7.218986 4.965837 +v 0.957142 7.218986 5.409400 +v 0.857694 7.218986 19.361946 +v 1.373788 7.218986 19.361946 +v 0.957142 7.218986 7.609766 +v 1.148529 7.218984 0.843370 +v 0.957142 7.218986 6.277359 +v 0.857694 5.453765 12.938878 +v 0.580191 5.127948 12.938878 +v 0.580398 5.127513 19.361946 +v 0.857694 7.218986 12.938876 +v 0.857694 5.453609 19.361946 +v -1.803494 -8.338592 -1.148251 +v -1.803496 -7.249155 -4.729249 +v -1.550631 -7.254868 -4.756801 +v -1.550631 -8.362582 -1.129570 +v -1.803505 -7.014567 -4.882656 +v -1.803500 7.103070 4.086895 +v -1.550631 7.159328 -0.581058 +v -1.839455 4.411472 -0.653382 +v -1.550631 4.418573 -0.651555 +v -1.803502 5.931036 4.779142 +v -2.138861 4.925927 -0.212349 +v -1.550631 -7.022316 -4.915741 +v -1.832909 4.741830 -0.615315 +v -1.803493 4.979961 -0.698811 +v -1.803477 5.747915 -1.279529 +v -1.803468 6.136785 -1.467315 +v -1.550631 4.920799 -0.676702 +v -1.550631 5.750243 -1.260870 +v -1.550631 6.117420 -1.448277 +v -1.550631 6.431123 -1.427431 +v -1.550631 4.711940 -0.618973 +v 2.168202 1.521683 2.220641 +v 1.849792 2.296251 3.228978 +v 1.550631 -5.813593 -4.933241 +v 2.176839 -6.680809 -4.296600 +v 2.177566 -6.820210 -4.161255 +v 2.145445 -6.930309 -4.281384 +v 2.173862 1.655341 1.737604 +v 1.933436 2.830892 2.688685 +v 1.971355 2.842444 2.231860 +v 2.167308 3.176706 2.349641 +v 2.159245 3.192134 2.951774 +v 2.032148 2.748445 1.721616 +v 2.171134 2.757730 1.304274 +v 2.176745 2.987958 1.594733 +v 1.838198 2.378400 2.963018 +v 1.857113 2.122498 2.578046 +v 1.945670 1.985472 2.045092 +v 2.047754 2.044644 1.547692 +v 2.176554 1.911733 1.296362 +v 2.173443 2.217372 1.117763 +v 1.847373 2.496792 2.548999 +v 1.977065 2.428715 1.644999 +v 1.883795 2.419949 2.091068 +v 2.169390 2.475281 1.132310 +v 2.174314 6.129676 4.109241 +v 2.174668 5.841984 -0.795250 +v 2.176541 -6.266698 -4.325727 +v 1.803505 6.986403 4.265716 +v 1.803498 6.146347 4.785964 +v 1.550631 7.011675 4.277203 +v 1.550631 6.141140 4.807180 +v 1.803494 -8.338592 -1.148251 +v 1.550631 -8.362582 -1.129570 +v 1.803494 -8.338592 -1.148251 +v 1.803496 -7.249155 -4.729249 +v 1.550631 -7.254868 -4.756801 +v 1.550631 7.159328 -0.581058 +v 1.550631 7.128139 4.054966 +v -1.239158 -6.353005 -5.417202 +v -1.113677 5.685021 -6.433600 +v -1.582758 6.173633 12.234967 +v -1.582758 5.657323 12.234967 +v -0.974568 4.193733 -2.693952 +v -1.582758 4.316335 -1.880566 +v -1.582758 5.870734 -4.399592 +v -0.974568 5.132453 -4.066989 +v -0.974568 2.986196 -2.567274 +v -1.582758 2.997752 -1.677936 +v -0.974568 -2.299957 -4.683156 +v -1.582758 -2.770208 -4.057409 +v -0.974568 -3.532902 -5.626941 +v -1.582758 -3.887019 -5.026795 +v -1.582758 -5.973763 -5.781600 +v -0.427195 9.430100 -1.953277 +v -0.397424 7.218984 -1.953277 +v -0.450662 9.430100 -4.335176 +v -0.580398 4.410829 6.286258 +v -0.580398 5.143754 8.504850 +v 0.403942 7.218984 -4.804955 +v -0.580398 3.410161 5.307024 +v 0.397424 7.218984 -1.953277 +v 0.450662 9.430100 -4.335176 +v 0.419459 8.845671 -4.804955 +v -0.857694 5.453765 12.938878 +v -0.857694 5.453609 19.361946 +v -0.580398 5.127513 19.361946 +v -0.857694 7.218986 12.938876 +v -0.857694 7.218986 19.361946 +v -0.957142 7.863286 7.609766 +v -0.957142 7.218986 5.409400 +v -0.957142 7.218986 6.277359 +v -0.957142 7.863286 5.710876 +v -1.213076 8.845671 -4.804955 +v -0.703050 7.624435 -4.804955 +v -1.213076 7.624435 -4.804955 +v -1.213076 7.624437 -1.953277 +v -1.213076 7.624437 -1.953277 +v -1.213076 7.624435 -4.804955 +v -1.213076 7.218984 -4.804955 +v -1.148529 -8.749960 -1.489983 +v -0.843982 -8.845317 -1.176258 +v -1.539709 -9.237019 0.112446 +v -0.703050 7.624435 -4.804955 +v -0.708688 7.624437 -1.953277 +v -0.692288 8.145895 -1.953277 +v -0.580398 3.410161 5.307024 +v -0.580398 3.816195 5.489355 +v -1.051055 3.816077 5.489355 +v -1.051055 4.250059 5.891655 +v -0.580398 4.250059 5.891655 +v -1.051055 4.410829 6.286258 +v -0.692288 8.145895 -1.953277 +v -1.213076 8.145895 -1.953277 +v -1.213076 8.145895 -4.804955 +v -1.052369 3.020581 5.130578 +v -1.582758 5.534112 18.331852 +v -1.582758 5.534113 12.374792 +v -1.582758 5.194829 18.331852 +v -1.051055 3.986081 11.231197 +v -1.213076 9.430100 -4.335176 +v -1.213076 9.430100 -1.953277 +v -0.427195 9.430100 -1.953277 +v -1.051055 4.197898 10.160744 +v -1.051055 4.410829 9.595867 +v -1.051055 5.194829 6.202400 +v -1.051055 4.410829 6.286258 +v -1.051055 4.815591 5.698347 +v -1.051055 4.250059 5.891655 +v 1.051203 0.060934 3.592092 +v 1.051055 -0.223472 3.408138 +v 1.358388 0.595196 3.367662 +v -1.051055 0.491169 10.501270 +v -1.051055 3.846212 10.532600 +v -1.051055 3.816077 5.489355 +v -1.051055 0.303245 5.858099 +v -1.051055 0.145063 11.660562 +v -0.403942 7.218984 -4.804955 +v -0.419459 8.845671 -4.804955 +v -0.580398 5.127513 19.361946 +v -1.213076 7.624435 -4.804955 +v -1.213076 8.845671 -4.804955 +v -1.213076 9.430100 -4.335176 +v -0.528251 5.631948 -6.753191 +v -1.051055 -7.663412 0.798396 +v -1.051055 -6.827383 0.859534 +v -1.051055 -9.408401 0.676295 +v -1.051055 -8.710466 0.929090 +v -0.832096 -2.281892 2.617995 +v -1.051055 -0.223472 3.408138 +v -1.051055 -6.827383 0.859534 +v -0.832096 -3.798709 2.025143 +v -0.832096 -3.666983 2.980051 +v -0.832096 -2.992427 3.243009 +v -1.051055 4.834130 19.361946 +v -1.582758 5.534113 12.374792 +v -1.582758 5.534112 18.331852 +v -1.373788 5.534112 19.361946 +v -1.373788 7.218986 19.361946 +v -1.373788 5.194829 19.361946 +v -0.372438 10.036927 5.890270 +v -0.372438 10.296735 5.890270 +v 0.372438 10.036927 5.890270 +v -0.570611 9.870735 5.890270 +v 0.570611 9.870735 5.890270 +v 0.667251 10.036927 5.890270 +v -0.667251 10.036927 5.890270 +v -0.372438 10.036927 5.890270 +v -0.667251 10.036927 5.890270 +v -0.666265 10.036927 11.908642 +v -1.159394 7.167399 5.890272 +v -1.159394 7.167401 11.908642 +v -1.159394 9.473121 11.908642 +v -1.018901 7.167401 11.908642 +v -1.018901 9.373809 11.908642 +v -1.159394 9.473121 11.908642 +v -1.018901 7.167399 5.890272 +v -1.159394 7.167399 5.890272 +v -1.159394 9.473121 5.890272 +v -0.570611 9.870735 11.908642 +v -0.666265 10.036927 11.908642 +v 1.018901 9.373809 5.890272 +v 1.018901 7.167399 5.890272 +v 1.018901 7.167401 11.908642 +v 1.018901 9.373809 11.908642 +v 0.570611 9.870735 11.908642 +v -0.372438 10.036929 8.085607 +v 0.372438 10.036929 8.085607 +v 0.372438 10.296735 5.890270 +v 1.018901 7.167399 5.890272 +v 1.018901 9.373809 5.890272 +v 1.159394 9.473121 5.890272 +v 0.372438 10.036927 5.890270 +v 0.372438 10.296735 5.890270 +v 0.372438 10.036929 8.085607 +v 0.372438 10.036927 5.890270 +v 0.372438 10.036929 8.085607 +v 0.666265 10.036927 11.908642 +v 1.159394 7.167399 5.890272 +v 1.159394 9.473121 5.890272 +v 1.159394 9.473121 11.908642 +v 1.018901 7.167401 11.908642 +v 1.159394 7.167401 11.908642 +v 1.159394 9.473121 11.908642 +v 0.570611 9.870735 11.908642 +v 1.018901 9.373809 11.908642 +v 0.667251 10.036927 5.890270 +v -1.018901 9.373809 5.890272 +v -1.018901 9.373809 11.908642 +v -1.018901 7.167401 11.908642 +v -0.372438 10.036929 8.085607 +v -0.372438 10.296735 5.890270 +v -0.372438 10.036927 5.890270 +v -0.372438 10.036929 8.085607 +v -0.570611 9.870735 5.890270 +v -0.570611 9.870735 11.908642 +v 0.570611 9.870735 5.890270 +v 0.372438 10.296735 5.890270 +v 1.592578 6.930664 -2.831019 +v 1.924818 6.930664 -2.831019 +v 1.924818 6.930664 -2.831019 +v 2.253843 6.726052 -1.549974 +v 1.592578 6.125614 -1.931486 +v 1.592578 6.966193 -1.398448 +v 1.924818 6.125614 -1.931486 +v 1.592578 6.125614 -1.931486 +v 1.592578 7.603653 -2.269644 +v 1.592578 6.930664 -2.831019 +v 1.924818 6.534985 -3.056432 +v 1.924818 6.726052 -1.549974 +v 1.924818 7.371370 -2.466393 +v 2.253843 7.371370 -2.466393 +v -1.051770 0.545047 3.730687 +v 1.360567 1.614293 3.789785 +v 1.051232 1.834943 4.322482 +v 1.050937 1.614293 3.789785 +v 1.360567 1.614293 3.789785 +v -1.582758 0.676579 2.788985 +v -1.582758 0.545047 3.068055 +v -1.051770 0.545047 2.951361 +v 1.050937 0.595196 3.367662 +v 1.050937 1.614293 3.789785 +v 1.052369 1.419883 5.161799 +v 1.051232 1.834943 4.322482 +v -1.051770 0.545047 3.730687 +v 1.051055 0.126897 6.278877 +v 1.051055 -0.223472 3.408138 +v 1.051055 0.303245 5.858099 +v 1.051232 1.834943 4.322482 +v 1.050937 0.998143 3.367662 +v 1.358388 0.595196 3.367662 +v 1.493618 0.998143 3.367662 +v 1.050937 0.998143 3.367662 +v -1.051770 1.087353 3.958939 +v -1.582758 1.087353 3.294126 +v -1.582758 1.087353 2.951361 +v 1.050937 0.062500 3.588312 +v 1.051055 0.730363 5.438924 +v 1.050937 1.329366 3.504859 +v 1.239158 -6.352970 -5.953228 +v -1.239158 -6.352970 -5.953228 +v -1.239158 -6.459404 -6.210184 +v -1.239158 -6.973310 -6.210184 +v 1.239158 -6.973310 -6.210184 +v 1.239158 -6.716359 -6.316617 +v -1.239158 -7.079744 -5.953228 +v -1.239158 -6.716359 -5.589839 +v 1.239158 -6.716359 -5.589839 +v 1.239158 -6.973310 -5.696270 +v -0.836559 -7.541790 -5.464879 +v -1.148529 -7.632975 -5.164886 +v -1.239158 -7.503078 -5.592237 +v -0.843982 -8.845317 -1.176258 +v -1.582758 -7.547009 -5.447709 +v -0.974568 -7.096979 -6.928317 +v -1.239158 -7.188475 -6.627295 +v -0.857694 5.453765 12.938878 +v 0.857694 5.453765 12.938878 +v 0.857694 7.218986 12.938876 +v -0.580191 5.127948 12.938878 +v 0.580191 5.127948 12.938878 +v 0.427195 9.430100 -1.953277 +v -1.051055 -9.408401 0.676295 +v -0.580191 5.127948 12.938878 +v 0.403942 7.218984 -4.804955 +v 1.239158 -6.459404 -6.210184 +v -1.239158 -6.459404 -5.696270 +v 1.239158 -6.459404 -5.696270 +v 1.239158 -7.079744 -5.953228 +v 1.239158 -6.352970 -5.953228 +v 0.957142 7.218986 5.409400 +v 0.843982 7.218986 5.409400 +v 0.957142 7.863286 5.710876 +v 1.213076 7.624437 -1.953277 +v 0.708688 7.624437 -1.953277 +v 0.397424 7.218984 -1.953277 +v 0.692288 8.145895 -1.953277 +v 0.427195 9.430100 -1.953277 +v 1.213076 8.145895 -1.953277 +v 1.213076 9.430100 -1.953277 +v -0.957142 7.218986 6.277359 +v 1.582758 7.218986 18.331852 +v 0.843982 7.218986 5.409400 +v 1.582758 5.870734 -4.399592 +v 0.580398 4.410829 6.286258 +v 1.051055 4.410829 6.286258 +v 1.051055 4.410829 9.595867 +v -0.580398 4.410829 8.504850 +v -0.580398 5.143754 8.504850 +v 0.580398 5.143754 8.504850 +v 0.580398 5.143754 5.307024 +v 0.580398 3.816195 5.489355 +v 0.580398 4.250059 5.891655 +v 1.582758 5.194829 18.331852 +v 1.373788 5.194829 19.361946 +v 1.051055 5.194829 19.361946 +v 1.051055 5.194829 6.202400 +v 1.582758 5.194829 5.282278 +v 1.582758 6.342139 18.331852 +v 1.051055 4.834130 12.349441 +v -1.051055 4.834130 12.349441 +v -1.051055 3.986081 11.231197 +v -1.051055 4.197898 10.160744 +v 1.051055 -0.223472 11.574593 +v 1.051055 0.126899 9.525374 +v 1.051055 0.200443 10.158533 +v -1.051770 0.545047 2.951361 +v -1.051770 1.087353 2.951361 +v -1.051770 0.955821 2.753111 +v 1.050937 0.062500 3.588312 +v 1.051203 0.060934 3.592092 +v 1.358388 0.595196 3.367662 +v -1.582758 0.955821 2.788985 +v -1.051770 0.955821 2.753111 +v 1.051055 0.446520 11.231197 +v 1.051055 0.805344 10.660654 +v 1.051055 3.374606 10.660654 +v 1.425465 6.342139 12.470448 +v 1.582758 6.342139 12.374790 +v 1.582758 6.342139 18.331852 +v 1.425465 6.129150 12.324278 +v 1.582758 6.173633 12.234967 +v 1.582758 6.342139 12.374790 +v 1.425465 5.534113 12.470450 +v 1.582758 5.534113 12.374792 +v 1.582758 5.657323 12.234967 +v 1.425465 5.714321 12.324278 +v 1.425465 6.342139 12.470448 +v 1.373788 6.342139 19.361946 +v 1.373788 5.534112 19.361946 +v 1.425465 5.714321 12.324278 +v 1.425465 6.129150 12.324278 +v 1.051055 5.194829 19.361946 +v 1.373788 5.194829 19.361946 +v 1.373788 5.534112 19.361946 +v 1.373788 6.342139 19.361946 +v 1.373788 7.218986 19.361946 +v 0.857694 7.218986 19.361946 +v -1.582758 0.676579 2.788985 +v -1.051770 0.676579 2.753111 +v 1.051055 5.194829 6.202400 +v 1.051055 4.815591 5.698347 +v 1.051055 4.834130 12.349441 +v 1.051055 5.194829 19.361946 +v 1.051055 4.834130 19.361946 +v 1.051203 0.060934 3.592092 +v 1.050937 0.062500 3.588312 +v 1.051055 -0.223472 3.408138 +v 1.051055 4.245723 5.289183 +v 1.582758 5.534112 18.331852 +v 1.373788 5.534112 19.361946 +v 1.373788 5.194829 19.361946 +v 1.373788 7.218986 19.361946 +v 1.373788 6.342139 19.361946 +v 1.373788 5.534112 19.361946 +v 1.051055 4.834130 19.361946 +v 0.857694 5.453609 19.361946 +v 0.580398 5.127513 19.361946 +v -1.051055 0.145063 11.660562 +v -1.051055 -0.223472 11.574593 +v 1.051055 -0.223472 11.574593 +v 1.494327 1.329366 3.504859 +v 1.051055 -0.223472 11.574593 +v -1.051055 -0.223472 11.574593 +v -1.051055 -0.223472 3.408138 +v -1.051055 0.446520 11.231197 +v -1.051055 0.145063 11.660562 +v 1.051055 0.145063 11.660562 +v 1.051055 0.446520 11.231197 +v -1.051055 4.834130 19.361946 +v -0.832096 -2.992427 3.243009 +v 0.832096 -2.992427 3.243009 +v 0.832096 -2.281892 2.617995 +v -0.832096 -3.666983 2.980051 +v 0.832096 -3.666983 2.980051 +v 0.832096 -2.992427 3.243009 +v 0.832096 -3.798709 2.025143 +v 0.832096 -2.281892 2.617995 +v 0.832096 -2.992427 3.243009 +v -0.832096 -3.798709 2.025143 +v 0.832096 -3.798709 2.025143 +v 0.832096 -3.666983 2.980051 +v 1.051055 -0.223472 3.408138 +v 1.051055 -6.827383 0.859534 +v 1.582758 -6.767919 0.122680 +v 1.582758 -7.606416 0.140502 +v 1.051055 -7.663412 0.798396 +v 1.051055 -8.710466 0.929090 +v 0.832096 -2.281892 2.617995 +v 0.832096 -3.798709 2.025143 +v 1.051055 -6.827383 0.859534 +v 1.051055 -9.408401 0.676295 +v 1.539709 -9.237019 0.112446 +v 1.582758 -8.611731 0.338330 +v 1.051055 -7.663412 0.798396 +v -1.051055 -7.663412 0.798396 +v -1.051055 -8.710466 0.929090 +v -0.832096 -3.798709 2.025143 +v -1.051055 -9.408401 0.676295 +v 1.051055 -9.408401 0.676295 +v 1.051055 -8.710466 0.929090 +v -0.403942 7.218984 -4.804955 +v 1.051055 0.491169 10.501270 +v 1.051055 0.145063 11.660562 +v 1.051055 4.245723 5.289183 +v 1.052369 3.020581 5.130578 +v 1.052369 2.312512 5.048415 +v 1.051055 3.816077 5.489355 +v 1.051055 4.250059 5.891655 +v 1.051055 4.410829 6.286258 +v 1.051055 4.815591 5.698347 +v 1.051055 5.194829 6.202400 +v 1.051055 4.410829 9.595867 +v 1.051055 4.197898 10.160744 +v 1.051055 3.986081 11.231197 +v 1.051055 3.846212 10.532600 +v 1.050937 1.329366 3.504859 +v -1.052369 3.020581 5.130578 +v -1.052369 2.312512 5.048415 +v 1.052369 2.312512 5.048415 +v 1.052369 3.020581 5.130578 +v 1.051055 3.816077 5.489355 +v 0.580398 3.410161 5.307024 +v 0.580398 4.250059 5.891655 +v 1.051055 4.250059 5.891655 +v 0.580398 3.816195 5.489355 +v -1.051055 0.126899 9.525374 +v -1.051055 0.200443 10.158533 +v 1.051055 0.200443 10.158533 +v -1.051055 0.491169 10.501270 +v 1.051055 0.491169 10.501270 +v -1.051055 0.126897 6.278877 +v 1.051055 0.126899 9.525374 +v -1.051055 0.805344 10.660654 +v 1.051055 0.805344 10.660654 +v -1.051055 0.303245 5.858099 +v 1.051055 0.126897 6.278877 +v -1.051055 3.374606 10.660654 +v 1.051055 3.374606 10.660654 +v -1.051055 0.730363 5.438924 +v 1.051055 0.303245 5.858099 +v -1.051055 3.846212 10.532600 +v 1.051055 3.846212 10.532600 +v -1.052369 1.419883 5.161799 +v 1.051055 0.730363 5.438924 +v 1.051055 4.197898 10.160744 +v 1.052369 1.419883 5.161799 +v 0.580398 5.143754 5.307024 +v -0.580398 5.143754 5.307024 +v -0.580398 3.410161 5.307024 +v 0.580398 3.410161 5.307024 +v 0.580398 4.410829 6.286258 +v 0.580398 5.143754 8.504850 +v -0.580398 5.143754 8.504850 +v -0.580398 5.143754 5.307024 +v 0.580398 4.410829 8.504850 +v 0.580398 5.143754 8.504850 +v 0.580398 4.410829 8.504850 +v 1.582758 -3.887019 -5.026795 +v 1.582758 -5.973763 -5.781600 +v 1.239158 -5.908381 -6.182570 +v 0.974568 -7.096979 -6.928317 +v 0.974568 -3.532902 -5.626941 +v 0.974568 -2.299957 -4.683156 +v 1.582758 -2.770208 -4.057409 +v 0.974568 2.986196 -2.567274 +v 1.582758 2.997752 -1.677936 +v 0.974568 4.768444 -3.230170 +v 1.582758 5.705914 -3.303000 +v 0.974568 4.193733 -2.693952 +v 1.582758 4.316335 -1.880566 +v 1.582758 5.060399 -2.393605 +v 1.113677 5.685021 -6.433600 +v 1.488590 5.921740 -5.685918 +v 0.528251 5.631948 -6.753191 +v 1.239158 -6.353005 -5.417202 +v 1.582758 -6.272799 -5.294005 +v 1.582758 -6.783546 -5.235445 +v 1.239158 -6.111135 -5.821548 +v 1.582758 -7.547009 -5.447709 +v 1.239158 -7.503078 -5.592237 +v 1.239158 -6.751893 -5.355608 +v 1.239158 -5.908381 -6.182570 +v 1.582758 -5.973763 -5.781600 +v 1.239158 -7.188475 -6.627295 +v 1.213076 9.430100 -1.953277 +v 1.213076 8.145895 -1.953277 +v 1.582758 -2.770208 -4.057409 +v 1.582758 -3.887019 -5.026795 +v 1.582758 -6.272799 -5.294005 +v 1.582758 -5.973763 -5.781600 +v 1.582758 -6.783546 -5.235445 +v 1.582758 -7.547009 -5.447709 +v 1.582758 -7.547009 -5.447709 +v 1.148529 -7.632975 -5.164886 +v 1.239158 -7.503078 -5.592237 +v 0.836559 -7.541790 -5.464879 +v 0.974568 -7.096979 -6.928317 +v 1.239158 -7.188475 -6.627295 +v 1.539709 -9.237019 0.112446 +v 1.051055 -9.408401 0.676295 +v 0.843982 -8.845317 -1.176258 +v 0.843982 -8.845317 -1.176258 +v 0.843982 7.218986 5.409400 +v 1.148529 7.218986 4.965837 +v 1.148529 7.218984 0.843370 +v 1.148529 -7.632975 -5.164886 +v 0.836559 7.218984 0.486122 +v 0.836559 -7.541790 -5.464879 +v 1.148529 -7.632975 -5.164886 +v -0.836559 -7.541790 -5.464879 +v -0.843982 7.218986 5.409400 +v 1.148529 -8.749960 -1.489983 +v 0.957142 7.863286 7.609766 +v -0.957142 7.863286 7.609766 +v -0.957142 7.218986 7.609766 +v 0.957142 7.218986 5.409400 +v 0.957142 7.863286 5.710876 +v 0.957142 7.863286 7.609766 +v -0.957142 7.863286 7.609766 +v 0.957142 7.863286 7.609766 +v 0.957142 7.863286 5.710876 +v 0.957142 7.218986 7.609766 +v 0.957142 7.218986 6.277359 +v 2.253843 6.930664 -2.831019 +v 2.253843 6.930664 -2.831019 +v 1.592578 6.125614 -1.931486 +v 2.253843 6.902664 -4.747439 +v 2.253843 6.726052 -1.549974 +v 2.253843 6.966193 -1.398448 +v 1.709833 6.807342 5.318411 +v 1.965886 6.807342 5.149457 +v 1.965886 7.483090 5.848535 +v 1.965886 6.807342 5.848535 +v 1.882584 6.807342 7.165411 +v 2.249606 6.807342 7.165411 +v -1.051055 5.194829 6.202400 +v -1.373788 5.194829 19.361946 +v 0.000000 8.128888 22.443676 +v 0.000000 7.882946 5.649786 +v 1.469249 0.829702 3.368853 +v 1.133210 0.829702 3.301505 +v -0.991334 0.714416 2.803811 +v -0.991334 0.583586 2.934655 +v -1.284940 0.714416 2.803811 +v 1.979996 6.437829 -1.926155 +v -1.425465 6.129150 12.324278 +v -1.373788 6.342139 19.361946 +v -1.582758 6.342139 12.374790 +v -1.582758 5.194829 5.282278 +v -1.213076 9.430100 -1.953277 +v -1.051770 0.545047 3.730687 +v -1.213076 8.145895 -1.953277 +v -1.239158 -7.503078 -5.592237 +v 1.213076 7.624435 -4.804955 +v 1.213076 7.624435 -4.804955 +v 0.708688 7.624437 -1.953277 +v 1.213076 8.145895 -1.953277 +v 1.213076 9.430100 -1.953277 +v 0.857694 7.218986 19.361946 +v -1.550631 -8.362582 -1.129570 +v -1.550631 7.128139 4.054966 +v 1.550631 -8.362582 -1.129570 +v -0.580398 4.410829 8.504850 +v -0.957142 7.218986 7.609766 +v -0.708688 7.624437 -1.953277 +v -1.213076 7.218984 -1.953277 +v -0.702042 8.145895 -4.804955 +v -0.702042 8.145895 -4.804955 +v -0.450662 9.430100 -4.335176 +v -1.213076 8.145895 -4.804955 +v -0.450662 9.430100 -4.335176 +v -0.832096 -2.281892 2.617995 +v -1.373788 6.342139 19.361946 +v -1.373788 5.534112 19.361946 +v -1.159394 9.473121 5.890272 +v -1.159394 7.167401 11.908642 +v -1.018901 9.373809 5.890272 +v -0.372438 10.296735 5.890270 +v 1.159394 7.167399 5.890272 +v 1.159394 7.167401 11.908642 +v 0.666265 10.036927 11.908642 +v -1.018901 7.167399 5.890272 +v 2.253843 6.726052 -1.549974 +v -1.051770 0.676579 2.753111 +v 1.050937 0.595196 3.367662 +v -1.051770 1.087353 2.951361 +v -1.239158 -6.716359 -6.316617 +v -1.239158 -6.973310 -5.696270 +v -0.857694 7.218986 12.938876 +v -1.239158 -6.352970 -5.953228 +v 1.213076 7.218984 -1.953277 +v 0.580398 4.410829 8.504850 +v 1.051055 3.986081 11.231197 +v -1.051770 0.676579 2.753111 +v 1.050937 0.062500 3.588312 +v 1.373788 6.342139 19.361946 +v 1.425465 6.342139 12.470448 +v 1.425465 5.534113 12.470450 +v 1.582758 5.534112 18.331852 +v 1.051055 0.145063 11.660562 +v 1.051055 -0.223472 3.408138 +v 1.051055 4.834130 19.361946 +v -0.832096 -2.281892 2.617995 +v -0.832096 -2.992427 3.243009 +v 0.832096 -3.666983 2.980051 +v -0.832096 -3.666983 2.980051 +v 1.052369 3.020581 5.130578 +v 0.580398 3.410161 5.307024 +v 0.580398 5.143754 5.307024 +v 1.148529 -8.749960 -1.489983 +v 1.148529 7.218984 0.843370 +v 0.957142 7.218986 7.609766 +v -0.957142 7.863286 5.710876 +v 1.965886 6.807342 5.848535 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.9983 -0.0575 +vn -0.0000 -0.9772 -0.2125 +vn -0.0000 -0.9666 -0.2562 +vn -0.0000 -0.4950 0.8689 +vn 1.0000 -0.0000 -0.0000 +vn -0.0053 0.6390 -0.7692 +vn -0.0000 0.6406 -0.7679 +vn -0.0035 0.6415 -0.7671 +vn -0.0000 -0.9606 -0.2778 +vn -0.0000 -0.9397 -0.3420 +vn -0.0000 0.1886 -0.9821 +vn -0.0000 0.6463 -0.7631 +vn -0.0036 0.6433 -0.7656 +vn -0.0000 0.8070 0.5905 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.9924 0.1232 +vn -0.0000 -0.5336 0.8457 +vn -0.0011 -0.5347 0.8451 +vn -0.0008 -0.5346 0.8451 +vn 0.0002 0.9819 0.1892 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 0.8598 0.5106 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.9851 -0.1717 +vn -0.0000 -0.9356 0.3532 +vn -0.0000 -0.9999 0.0171 +vn -0.0000 0.3735 0.9276 +vn -0.0000 -0.2142 0.9768 +vn -0.0000 -0.1128 0.9936 +vn -0.0000 -0.6774 0.7356 +vn -0.0000 -0.5021 0.8648 +vn -0.0000 -0.9934 -0.1149 +vn -0.0000 -0.0000 -1.0000 +vn -0.9978 0.0662 -0.0000 +vn -0.8965 0.4430 -0.0000 +vn -0.9472 0.3207 -0.0000 +vn -0.9575 -0.1451 0.2492 +vn -0.9344 -0.2629 0.2404 +vn -0.9389 -0.2242 0.2612 +vn -0.8781 -0.1764 0.4448 +vn -0.9776 -0.1677 0.1269 +vn 0.9978 -0.0662 -0.0000 +vn 0.8965 -0.4430 -0.0000 +vn 0.9472 -0.3207 -0.0000 +vn -0.6588 0.7523 -0.0000 +vn -0.7523 0.6588 -0.0000 +vn 0.6588 -0.7523 -0.0000 +vn 0.7523 -0.6588 -0.0000 +vn -0.3207 0.9472 -0.0001 +vn -0.4430 0.8965 -0.0001 +vn 0.3207 -0.9472 -0.0000 +vn 0.4430 -0.8965 -0.0000 +vn 0.0662 0.9978 -0.0000 +vn -0.0661 0.9978 -0.0000 +vn -0.0662 -0.9978 -0.0000 +vn 0.0661 -0.9978 -0.0000 +vn 0.0661 0.9978 -0.0000 +vn 0.4430 0.8965 -0.0000 +vn 0.3207 0.9472 -0.0000 +vn -0.0661 -0.9978 -0.0000 +vn -0.4430 -0.8965 -0.0000 +vn -0.3207 -0.9472 -0.0000 +vn 0.7523 0.6588 -0.0000 +vn 0.6588 0.7523 -0.0000 +vn -0.7523 -0.6588 -0.0000 +vn -0.6588 -0.7523 -0.0000 +vn 0.9472 0.3207 -0.0000 +vn 0.8965 0.4430 -0.0001 +vn -0.9472 -0.3207 -0.0000 +vn -0.8965 -0.4430 -0.0000 +vn 0.9978 0.0662 -0.0000 +vn -0.9978 -0.0662 -0.0000 +vn 0.8965 -0.4430 0.0001 +vn -0.3207 0.9472 -0.0000 +vn -0.4430 0.8965 -0.0000 +vn 0.0662 -0.9978 -0.0000 +vn -0.0662 0.9978 -0.0000 +vn -0.4430 -0.8965 0.0001 +vn -0.3207 -0.9472 0.0001 +vn 0.8965 0.4430 -0.0000 +vn -0.0000 0.9071 -0.4210 +vn -0.0000 0.9960 0.0890 +vn -0.0000 0.9960 -0.0890 +vn -0.0000 0.9960 0.0889 +vn -0.0000 0.8181 0.5750 +vn -0.0000 0.9071 0.4210 +vn -0.0000 0.5751 -0.8181 +vn -0.0000 0.8181 -0.5751 +vn -0.0000 0.4210 0.9071 +vn -0.0000 0.5750 0.8181 +vn -0.0000 0.0890 -0.9960 +vn -0.0000 0.4210 -0.9071 +vn -0.0000 -0.0889 0.9960 +vn -0.0000 0.0889 0.9960 +vn -0.0000 -0.4210 -0.9071 +vn -0.0000 0.0889 -0.9960 +vn -0.0000 -0.0890 -0.9960 +vn -0.0000 -0.5750 0.8181 +vn -0.0000 -0.4210 0.9071 +vn -0.0000 -0.8181 -0.5751 +vn -0.0000 -0.5751 -0.8181 +vn -0.0000 -0.9071 0.4210 +vn -0.0000 -0.8181 0.5750 +vn -0.0000 -0.9960 -0.0890 +vn -0.0000 -0.9071 -0.4210 +vn -0.0000 -0.9960 -0.0889 +vn -0.0000 -0.9960 0.0889 +vn -0.0000 -0.9960 0.0890 +vn -0.0000 -0.8181 -0.5750 +vn -0.0000 -0.5751 0.8181 +vn -0.0000 -0.8181 0.5751 +vn -0.0000 -0.5750 -0.8181 +vn -0.0000 -0.0890 0.9960 +vn -0.0000 0.0890 0.9960 +vn -0.0000 0.5750 -0.8181 +vn -0.0000 0.8181 0.5751 +vn -0.0000 0.5751 0.8181 +vn -0.0000 0.8181 -0.5750 +vn -0.0000 0.9960 -0.0889 +vn -0.8737 -0.1315 -0.4684 +vn -0.9862 -0.0041 -0.1656 +vn -0.8872 0.2205 -0.4054 +vn -0.7168 -0.3702 0.5909 +vn -0.0822 -0.6000 0.7957 +vn -0.6767 -0.2422 0.6953 +vn -0.9125 0.1216 -0.3905 +vn -0.9940 0.0221 -0.1068 +vn -0.9139 -0.0027 -0.4059 +vn -0.9673 0.2232 0.1202 +vn -0.9954 -0.0433 0.0853 +vn -0.9560 0.1006 0.2757 +vn -0.9685 -0.0991 0.2284 +vn -0.9504 -0.2074 0.2318 +vn -0.9883 0.1182 0.0969 +vn -0.4530 0.2801 -0.8464 +vn -0.4864 0.0390 -0.8729 +vn -0.9142 0.0704 -0.3992 +vn -0.1396 0.2721 -0.9521 +vn -0.0360 0.1283 -0.9911 +vn -0.8460 0.1204 -0.5194 +vn -0.9076 0.3995 -0.1294 +vn -0.4854 0.7468 -0.4545 +vn -0.5755 0.8091 -0.1186 +vn -0.0534 0.7747 -0.6301 +vn -0.3445 0.4756 -0.8094 +vn -0.9779 -0.0642 -0.1992 +vn -0.9947 0.0245 -0.0996 +vn -0.9931 -0.0834 -0.0820 +vn -0.9058 -0.1444 -0.3984 +vn -0.9566 0.2613 0.1289 +vn -0.9201 -0.3126 0.2362 +vn -0.9313 -0.3635 0.0218 +vn -0.9227 -0.2852 0.2592 +vn -0.9128 -0.3909 0.1182 +vn -0.9312 -0.3570 0.0740 +vn -0.9684 -0.1692 0.1830 +vn -0.9038 -0.3696 0.2156 +vn -0.9809 -0.1776 0.0789 +vn -0.9786 -0.2002 0.0480 +vn -0.9987 -0.0475 -0.0201 +vn -0.9688 0.2308 0.0903 +vn -0.9376 0.0952 0.3344 +vn -0.9649 0.1135 0.2367 +vn -0.9495 0.2763 0.1486 +vn -0.9832 0.0556 0.1736 +vn -0.9844 0.1276 0.1212 +vn -0.9290 0.2500 0.2729 +vn -0.9956 -0.0665 0.0653 +vn -0.9625 -0.0724 0.2614 +vn -0.9851 -0.1084 0.1335 +vn -0.9833 -0.0502 0.1751 +vn -0.9846 -0.0087 0.1745 +vn -0.9900 0.1007 0.0988 +vn -0.8989 0.0907 0.4287 +vn -0.9942 -0.0403 -0.1002 +vn -0.9968 -0.0448 -0.0663 +vn -0.8695 -0.2858 -0.4029 +vn -0.9335 -0.3023 -0.1926 +vn -0.9089 -0.4170 0.0072 +vn -0.9846 -0.1696 0.0430 +vn -0.9932 -0.0221 -0.1146 +vn -0.9900 0.0999 -0.0998 +vn -0.9920 0.1239 -0.0234 +vn -0.5747 0.5494 0.6065 +vn -0.8998 0.4026 0.1680 +vn -0.0745 0.7122 0.6980 +vn -0.3706 0.2403 0.8972 +vn -0.0963 -0.2070 0.9736 +vn -0.0758 0.2517 0.9648 +vn -0.6409 -0.7662 -0.0458 +vn -0.9298 -0.2330 0.2848 +vn -0.0000 -0.5750 0.8182 +vn -0.0000 -0.5750 -0.8182 +vn -0.0000 -0.8182 -0.5750 +vn -0.0000 0.5750 0.8182 +vn -0.0000 -0.0889 -0.9960 +vn -0.0000 -0.9239 -0.3826 +vn -0.0000 0.9239 -0.3826 +vn -0.0001 0.9675 -0.2527 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 0.8629 -0.5054 +vn -0.0000 -0.9676 -0.2526 +vn -0.0000 -0.8629 -0.5054 +vn 0.0002 -0.9676 -0.2526 +vn -0.0000 0.9906 0.1368 +vn -0.0000 0.6038 0.7972 +vn -0.0000 0.7972 0.6038 +vn -0.0000 -0.1368 0.9906 +vn -0.0000 0.1368 0.9906 +vn -0.0000 -0.7972 0.6037 +vn -0.0000 -0.6038 0.7972 +vn -0.0000 -0.7972 0.6038 +vn -0.0000 -0.9906 -0.1368 +vn -0.0000 -0.9906 0.1368 +vn -0.0000 -0.6038 -0.7972 +vn -0.0000 -0.7972 -0.6038 +vn -0.0000 0.1368 -0.9906 +vn -0.0000 -0.1368 -0.9906 +vn -1.0000 -0.0000 0.0037 +vn -1.0000 -0.0000 0.0075 +vn -0.0000 0.7972 -0.6038 +vn -0.0000 0.6038 -0.7972 +vn -0.5344 0.1812 0.8256 +vn -0.5073 -0.3627 0.7818 +vn -0.5247 -0.1884 0.8302 +vn -0.3422 0.8174 0.4635 +vn -0.5018 0.4301 0.7505 +vn -0.0000 0.9906 -0.1368 +vn 0.0138 0.7488 -0.6626 +vn -0.0105 0.4047 -0.9144 +vn 0.0087 0.3748 -0.9271 +vn 0.0713 0.8730 -0.4825 +vn -0.0055 0.9136 -0.4067 +vn -0.9958 -0.0324 -0.0853 +vn -0.9474 -0.3190 -0.0268 +vn 0.9932 -0.0426 -0.1083 +vn 0.9930 -0.0531 -0.1054 +vn 0.9015 -0.4270 -0.0701 +vn 0.9474 -0.3190 -0.0268 +vn 0.4260 -0.8999 -0.0934 +vn -0.4482 -0.5058 0.7370 +vn -0.4877 -0.5255 0.6971 +vn -0.9280 -0.3587 -0.1012 +vn -0.8534 -0.4727 -0.2197 +vn -0.4260 -0.8989 -0.1030 +vn 0.9394 -0.1625 -0.3019 +vn 0.5145 -0.3209 0.7952 +vn 0.9295 -0.1383 0.3419 +vn 0.9268 -0.1407 0.3483 +vn -0.6818 -0.5955 -0.4249 +vn -0.9911 -0.0000 0.1331 +vn -0.9978 -0.0000 0.0666 +vn 0.9404 0.1281 -0.3149 +vn 0.9304 0.1374 -0.3398 +vn -0.0000 -0.9918 0.1279 +vn -0.0000 -0.9960 -0.0893 +vn 0.1721 0.4024 -0.8991 +vn -0.0000 0.4238 -0.9058 +vn -0.9476 -0.1416 -0.2864 +vn -0.9930 -0.0531 -0.1054 +vn -0.9476 -0.1416 -0.2865 +vn 0.8934 -0.3903 -0.2225 +vn -1.0000 -0.0006 0.0001 +vn -1.0000 -0.0010 -0.0002 +vn -0.9886 -0.0584 0.1389 +vn -1.0000 -0.0000 -0.0006 +vn -1.0000 0.0008 -0.0006 +vn -0.8859 -0.1792 0.4279 +vn -0.9569 -0.1081 0.2694 +vn -0.9391 -0.1502 0.3090 +vn -0.9371 -0.1343 0.3223 +vn 0.4203 -0.4751 0.7730 +vn 0.3339 -0.2816 0.8996 +vn 0.8896 -0.1729 0.4226 +vn -0.9473 0.1523 -0.2819 +vn -0.9802 0.0091 -0.1979 +vn -0.2835 -0.4795 -0.8305 +vn -0.2965 -0.1206 -0.9474 +vn -0.0364 0.1142 -0.9928 +vn 0.9363 0.1191 -0.3304 +vn -0.9363 0.1191 -0.3304 +vn 0.9910 0.0439 -0.1265 +vn -0.9910 0.0439 -0.1265 +vn -0.8724 -0.1036 0.4777 +vn -0.9603 0.0267 0.2778 +vn -0.9801 -0.1117 0.1641 +vn -0.9999 -0.0132 -0.0001 +vn -0.9719 -0.0333 0.2329 +vn -0.9376 0.1183 -0.3271 +vn -0.9212 0.1912 -0.3389 +vn -0.0000 -0.9072 -0.4206 +vn 0.0208 -0.2762 -0.9609 +vn -0.0000 0.2238 -0.9746 +vn -0.0000 0.1500 -0.9887 +vn -0.9257 -0.1856 -0.3295 +vn -0.9477 -0.2262 -0.2251 +vn -0.9436 -0.3063 -0.1256 +vn -0.5812 -0.6406 -0.5019 +vn -0.0856 0.9400 -0.3303 +vn -0.0807 0.8763 -0.4749 +vn 0.0006 0.2651 -0.9642 +vn -0.9910 0.0440 -0.1265 +vn -0.9363 0.1191 -0.3303 +vn -0.4139 0.3096 -0.8560 +vn -0.3758 -0.8080 -0.4538 +vn -0.3691 -0.8001 -0.4728 +vn -0.3743 -0.7996 -0.4696 +vn -0.3715 0.2637 -0.8902 +vn -0.3430 0.0002 -0.9393 +vn -0.3595 0.1300 -0.9240 +vn -0.3937 -0.6141 -0.6841 +vn 0.9227 -0.2852 0.2592 +vn 0.8989 0.0907 0.4287 +vn 0.6998 -0.1880 0.6892 +vn 0.9504 -0.2074 0.2318 +vn 0.9201 -0.3126 0.2362 +vn 0.6767 -0.2422 0.6953 +vn 0.9649 0.1135 0.2367 +vn 0.9883 0.1182 0.0969 +vn 0.7168 -0.3702 0.5909 +vn 0.9376 0.0952 0.3344 +vn 0.9560 0.1006 0.2757 +vn 0.4864 0.0390 -0.8729 +vn 0.9142 0.0704 -0.3992 +vn 0.9058 -0.1444 -0.3984 +vn 0.0717 -0.2461 -0.9666 +vn 0.0360 0.1283 -0.9911 +vn 0.9139 -0.0027 -0.4059 +vn 0.9125 0.1216 -0.3905 +vn 0.8460 0.1204 -0.5194 +vn 0.9083 -0.1711 -0.3818 +vn 0.4795 -0.1233 -0.8689 +vn 0.8695 -0.2858 -0.4029 +vn 0.3927 -0.4709 -0.7900 +vn 0.8737 -0.1315 -0.4684 +vn 0.3129 -0.4800 -0.8196 +vn 0.8872 0.2205 -0.4054 +vn 0.3805 -0.0664 -0.9224 +vn 0.5755 0.8091 -0.1186 +vn 0.3592 0.8985 0.2523 +vn 0.8999 0.4025 0.1679 +vn 0.0333 -0.3953 -0.9180 +vn -0.0238 -0.5460 -0.8375 +vn -0.0633 -0.2827 -0.9571 +vn -0.0221 0.3133 -0.9494 +vn 0.3445 0.4756 -0.8094 +vn 0.0128 -0.0140 -0.9998 +vn 0.0009 0.2043 -0.9789 +vn 0.9968 -0.0448 -0.0663 +vn 0.9932 -0.0221 -0.1146 +vn 0.9089 -0.4170 0.0072 +vn 0.9846 -0.1696 0.0430 +vn 0.9298 -0.2330 0.2848 +vn 0.4446 -0.3490 -0.8249 +vn 0.9076 0.3995 -0.1294 +vn 0.0550 0.2948 -0.9540 +vn 0.0963 -0.2070 0.9736 +vn 0.0822 -0.6000 0.7957 +vn 0.9940 0.0221 -0.1068 +vn 0.9954 -0.0433 0.0853 +vn 0.4530 0.2801 -0.8464 +vn 0.4854 0.7468 -0.4545 +vn 0.0534 0.7747 -0.6301 +vn 0.9920 0.1239 -0.0234 +vn 0.9900 0.0999 -0.0998 +vn 0.9900 0.1007 0.0988 +vn 0.9862 -0.0041 -0.1656 +vn -0.1765 -0.9638 -0.1996 +vn 0.6818 -0.5955 -0.4249 +vn 0.3051 -0.5726 -0.7609 +vn 0.2122 -0.9513 -0.2235 +vn -0.0000 0.0901 -0.9959 +vn 0.4259 -0.8802 -0.2092 +vn 0.9999 0.0167 0.0007 +vn 1.0000 0.0019 0.0034 +vn -0.0000 0.9018 -0.4322 +vn 0.0616 0.9395 -0.3370 +vn -0.0000 0.9364 -0.3510 +vn 0.0856 0.9400 -0.3303 +vn 0.0516 0.7096 -0.7027 +vn -0.0000 0.1126 -0.9936 +vn -0.0000 0.2651 -0.9642 +vn -0.0000 0.2199 -0.9755 +vn -0.0000 0.9018 -0.4321 +vn -0.0613 0.7646 -0.6415 +vn 0.9666 0.0118 -0.2559 +vn 0.9053 -0.1764 0.3864 +vn 0.9477 -0.2262 -0.2251 +vn 0.9436 -0.3063 -0.1256 +vn 0.9389 -0.2242 0.2612 +vn 0.9776 -0.1677 0.1269 +vn 0.9978 -0.0000 0.0666 +vn 0.9257 -0.1856 -0.3295 +vn -0.8895 0.4570 -0.0000 +vn -0.2763 0.9611 0.0002 +vn -0.5527 0.8333 0.0001 +vn -0.9736 0.2284 -0.0000 +vn -0.0976 -0.7839 0.6132 +vn -0.6439 -0.6219 -0.4457 +vn -0.0928 -0.7999 -0.5929 +vn -0.0690 -0.9541 -0.2914 +vn -0.4446 -0.3490 -0.8249 +vn -0.3592 0.8985 0.2523 +vn -0.1134 0.9756 -0.1878 +vn -0.0002 0.2043 -0.9789 +vn -0.0550 0.2948 -0.9540 +vn -0.6998 -0.1881 0.6892 +vn -0.9083 -0.1711 -0.3818 +vn -0.0717 -0.2461 -0.9666 +vn -0.4795 -0.1233 -0.8689 +vn -0.3927 -0.4709 -0.7900 +vn -0.3129 -0.4800 -0.8196 +vn -0.3805 -0.0664 -0.9224 +vn -0.0333 -0.3953 -0.9180 +vn 0.0238 -0.5460 -0.8375 +vn 0.0633 -0.2827 -0.9571 +vn 0.0221 0.3133 -0.9494 +vn -0.0128 -0.0140 -0.9998 +vn 0.9673 0.2232 0.1202 +vn 0.9685 -0.0991 0.2284 +vn 0.1396 0.2721 -0.9521 +vn 0.9779 -0.0642 -0.1992 +vn 0.9931 -0.0834 -0.0820 +vn 0.9335 -0.3023 -0.1926 +vn 0.9566 0.2613 0.1289 +vn 0.9313 -0.3635 0.0219 +vn 0.9128 -0.3909 0.1182 +vn 0.9786 -0.2002 0.0480 +vn 0.9312 -0.3570 0.0740 +vn 0.9038 -0.3696 0.2156 +vn 0.9684 -0.1692 0.1830 +vn 0.9809 -0.1776 0.0789 +vn 0.9987 -0.0475 -0.0201 +vn 0.9688 0.2308 0.0903 +vn 0.9495 0.2763 0.1486 +vn 0.9290 0.2500 0.2729 +vn 0.9844 0.1276 0.1212 +vn 0.9832 0.0556 0.1736 +vn 0.9956 -0.0665 0.0653 +vn 0.9625 -0.0724 0.2614 +vn 0.9851 -0.1084 0.1335 +vn 0.9833 -0.0502 0.1751 +vn 0.9846 -0.0087 0.1745 +vn 0.9942 -0.0403 -0.1002 +vn 0.9947 0.0245 -0.0996 +vn 0.5747 0.5494 0.6065 +vn 0.3706 0.2403 0.8972 +vn 0.0745 0.7122 0.6980 +vn 0.0758 0.2517 0.9648 +vn 0.6409 -0.7662 -0.0458 +vn 0.1193 -0.7677 0.6296 +vn 0.0973 -0.7840 0.6130 +vn 0.6439 -0.6219 -0.4457 +vn 0.0928 -0.7999 -0.5929 +vn 0.1134 0.9756 -0.1878 +vn 0.0654 0.9680 0.2423 +vn -0.3723 -0.3800 -0.8468 +vn -0.6432 -0.3414 -0.6854 +vn -0.4592 -0.4012 -0.7925 +vn -0.4263 -0.8678 -0.2554 +vn -0.3935 0.1531 -0.9065 +vn -0.5149 0.4477 -0.7311 +vn -0.4133 0.4461 -0.7938 +vn -0.9212 0.1912 -0.3390 +vn -0.9375 0.1183 -0.3271 +vn 0.9999 0.0135 -0.0099 +vn 0.9998 0.0213 0.0011 +vn 0.9996 0.0271 0.0029 +vn -0.9998 0.0213 0.0011 +vn -0.9996 0.0271 0.0029 +vn -0.9997 0.0252 0.0067 +vn 0.8895 0.4570 -0.0000 +vn 0.9736 0.2284 -0.0000 +vn 0.4196 0.9077 -0.0000 +vn -0.0000 -0.9568 -0.2908 +vn -0.9999 0.0167 0.0007 +vn -0.9995 0.0314 -0.0020 +vn -0.0004 -0.2799 0.9600 +vn 0.0001 -0.5968 0.8024 +vn -0.0004 -0.5061 0.8625 +vn 0.0001 -0.7783 0.6279 +vn -0.0000 -0.8622 0.5066 +vn -0.0000 -0.9667 0.2558 +vn -0.0004 -0.2668 0.9638 +vn -0.9911 -0.0000 0.1332 +vn -0.9894 -0.1160 0.0873 +vn 0.8417 -0.2936 0.4532 +vn 0.4395 -0.3448 0.8294 +vn 0.4540 -0.0806 0.8873 +vn -1.0000 0.0006 0.0012 +vn 1.0000 0.0095 -0.0023 +vn 0.9997 0.0252 0.0067 +vn 0.0001 0.2199 -0.9755 +vn -0.0616 0.9395 -0.3370 +vn -0.4392 0.0051 0.8984 +vn -0.3221 -0.2815 0.9039 +vn -0.4149 -0.3225 0.8508 +vn -0.4184 -0.0205 0.9080 +vn 0.0147 -0.3602 0.9328 +vn -0.3221 -0.2814 0.9039 +vn -0.1337 0.9663 0.2198 +vn -0.9800 -0.0000 0.1988 +vn -0.5451 0.8383 -0.0000 +vn -0.2015 0.9795 0.0001 +vn -0.9362 0.3516 0.0001 +vn -0.9334 -0.3588 -0.0000 +vn -0.5359 -0.8443 -0.0000 +vn -0.0000 0.9989 0.0471 +vn -0.0000 0.9992 0.0392 +vn -0.0000 0.9931 0.1175 +vn -0.0000 0.9992 0.0393 +vn 0.1595 0.9872 0.0003 +vn 0.9363 0.3512 -0.0000 +vn 0.9362 0.3516 0.0001 +vn 0.5451 0.8383 0.0001 +vn 0.9334 -0.3588 -0.0000 +vn 0.4063 -0.9137 -0.0000 +vn -0.2679 -0.9634 -0.0000 +vn -0.0000 -0.5363 0.8440 +vn -0.0005 -0.5361 0.8442 +vn -0.0000 -0.8176 -0.5758 +vn -0.9850 -0.0671 0.1589 +vn 0.4464 -0.6134 0.6515 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.7929 0.6094 +vn 0.4465 -0.6134 0.6515 +vn 0.0655 0.8693 0.4899 +vn 0.0479 0.9748 0.2177 +vn 0.0450 0.9407 0.3362 +vn 1.0000 -0.0001 -0.0003 +vn 1.0000 0.0004 -0.0008 +vn 1.0000 -0.0007 -0.0006 +vn 0.9756 -0.0842 0.2027 +vn 1.0000 0.0004 -0.0001 +vn 0.4540 -0.0805 0.8873 +vn -0.0000 -0.1298 0.9915 +vn 0.0112 -0.9503 0.3111 +vn 1.0000 0.0002 -0.0001 +vn 1.0000 -0.0007 -0.0000 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 0.6037 0.7972 +vn -0.0000 0.7972 0.6037 +vn -0.0000 0.7071 -0.7071 +vn 0.4240 0.3427 -0.8383 +vn -0.9999 0.0135 -0.0099 +vn 0.4193 0.9079 0.0001 +vn -1.0000 0.0095 -0.0023 +vn 0.0001 -0.7972 -0.6037 +vn -0.0001 -0.6037 -0.7972 +vn -0.1722 0.3928 -0.9033 +vn -0.0000 -0.9929 -0.1193 +vn 0.9911 -0.0000 0.1332 +vn -0.0000 -0.9478 0.3188 +vn -0.0000 -0.4448 0.8956 +vn -0.0000 -0.8814 -0.4724 +vn -0.9418 0.2820 0.1830 +vn -0.7726 0.5655 0.2886 +vn 0.0646 -0.2831 0.9569 +vn 0.0405 -0.5936 0.8037 +vn 0.5073 -0.3627 0.7818 +vn 0.5247 -0.1884 0.8302 +vn 0.4877 -0.5255 0.6971 +vn 0.3422 0.8174 0.4635 +vn 0.1337 0.9663 0.2198 +vn 0.5018 0.4301 0.7505 +vn 0.5344 0.1812 0.8256 +vn 1.0000 -0.0000 0.0037 +vn 1.0000 -0.0000 0.0075 +vn 0.0674 -0.0000 0.9977 +vn 0.9894 -0.1160 0.0873 +vn 0.9344 -0.2629 0.2404 +vn -0.9978 -0.0354 0.0555 +vn 0.9575 -0.1436 0.2500 +vn 0.9800 -0.0000 0.1988 +vn -0.0000 -0.2272 0.9739 +vn 0.0002 0.6059 0.7955 +vn -0.0000 0.8184 0.5746 +vn -0.0002 0.3029 0.9530 +vn -0.0000 0.6605 0.7508 +vn -0.0000 -0.3632 0.9317 +vn -0.0000 -0.9906 0.1367 +vn 0.4395 -0.3449 0.8294 +vn 0.3228 -0.2420 0.9150 +vn 0.9719 -0.0333 0.2329 +vn 0.9603 0.0267 0.2778 +vn 0.4392 0.0417 0.8974 +vn 0.4198 -0.1075 0.9012 +vn -0.0197 -0.3607 0.9325 +vn -0.0257 -0.3607 0.9323 +vn 0.5470 -0.3017 0.7809 +vn 0.9801 -0.1117 0.1641 +vn 0.8724 -0.1036 0.4777 +vn -0.4184 -0.0204 0.9080 +vn 0.0385 -0.3613 0.9316 +vn 0.5470 -0.3018 0.7808 +vn 0.4198 -0.1076 0.9012 +vn 1.0000 0.0009 -0.0015 +vn 1.0000 0.0001 -0.0016 +vn 1.0000 0.0006 0.0012 +vn -0.0000 -0.4993 0.8664 +vn -0.0000 -0.2667 0.9638 +vn -0.0000 0.0459 0.9989 +vn -0.0000 -0.0351 0.9994 +vn 0.0006 -0.3409 0.9401 +vn 0.0003 -0.5061 0.8625 +vn 0.0003 -0.3136 0.9496 +vn -0.0000 -0.7783 0.6279 +vn -0.0001 -0.5968 0.8024 +vn -0.0000 0.9970 -0.0770 +vn -0.0000 0.8727 -0.4883 +vn -0.0001 0.9526 -0.3041 +vn -0.0000 0.5657 -0.8246 +vn -0.0000 0.6710 -0.7415 +vn -0.0000 0.9914 0.1311 +vn -0.0000 0.9993 -0.0385 +vn -0.0000 0.1546 -0.9880 +vn -0.0000 0.3091 -0.9510 +vn -0.0000 0.8635 0.5044 +vn -0.0000 0.9650 0.2623 +vn -0.0000 -0.1761 -0.9844 +vn -0.0000 -0.0880 -0.9961 +vn -0.0000 0.6016 0.7988 +vn -0.0000 0.7882 0.6154 +vn -0.0000 -0.5913 -0.8065 +vn -0.0000 -0.4311 -0.9023 +vn -0.0000 0.2927 0.9562 +vn -0.0000 0.4905 0.8714 +vn -0.0000 -0.8104 -0.5859 +vn -0.0000 0.2098 0.9777 +vn -0.0002 -0.2799 0.9600 +vn 0.9212 0.1912 -0.3390 +vn 0.9375 0.1183 -0.3271 +vn 0.9363 0.1191 -0.3303 +vn 0.5457 0.2840 -0.7884 +vn 0.4129 0.3969 -0.8198 +vn 0.3689 0.4766 -0.7979 +vn 0.9473 0.1523 -0.2819 +vn 0.5471 0.1521 -0.8231 +vn 0.4428 -0.7141 -0.5422 +vn 0.4578 -0.2885 -0.8409 +vn 0.6432 -0.3414 -0.6854 +vn 0.2347 -0.0372 -0.9713 +vn 0.3723 -0.3800 -0.8468 +vn 0.3937 -0.6141 -0.6841 +vn 0.3430 0.0002 -0.9393 +vn 0.3691 -0.8001 -0.4728 +vn 0.3715 0.2637 -0.8902 +vn 0.4024 0.2750 -0.8731 +vn 0.3595 0.1300 -0.9240 +vn 0.3758 -0.8080 -0.4538 +vn 0.3743 -0.7997 -0.4695 +vn 0.9910 0.0440 -0.1265 +vn 0.9212 0.1912 -0.3389 +vn 0.9376 0.1183 -0.3271 +vn 0.9999 -0.0132 -0.0001 +vn -0.5587 0.3131 -0.7680 +vn -0.1722 0.3928 -0.9034 +vn -0.9404 0.1281 -0.3149 +vn -0.9295 -0.1383 0.3419 +vn -0.9268 -0.1407 0.3483 +vn -0.3897 -0.3446 0.8541 +vn -0.3829 -0.3454 0.8568 +vn -0.9268 -0.1406 0.3483 +vn 0.2529 -0.3618 0.8973 +vn 0.1722 0.4024 -0.8991 +vn -0.0000 -0.6037 0.7972 +vn -0.4024 0.2750 -0.8731 +vn 0.9995 0.0314 -0.0020 +vn -0.1193 -0.7677 0.6296 +vn -0.0654 0.9680 0.2423 +vn 0.0690 -0.9541 -0.2914 +vn -1.0000 0.0019 0.0034 +vn -0.9363 0.3512 -0.0000 +vn 0.0373 0.8327 0.5525 +vn -0.0000 0.1951 0.9808 +vn -0.0000 -0.9574 0.2887 +vn -0.0000 0.3827 0.9239 +vn 0.4482 -0.5058 0.7370 +vn 0.0004 -0.3409 0.9401 +vn -0.9304 0.1374 -0.3398 +vt 0.359688 0.958662 +vt 0.362249 0.958669 +vt 0.362239 0.962551 +vt 0.331697 0.953329 +vt 0.359702 0.953407 +vt 0.351642 0.961259 +vt 0.811898 0.853744 +vt 0.802908 0.853744 +vt 0.802908 0.855453 +vt 0.510231 0.845136 +vt 0.505784 0.850420 +vt 0.501968 0.847202 +vt 0.477758 0.837077 +vt 0.479214 0.833341 +vt 0.823042 0.855453 +vt 0.823042 0.857179 +vt 0.827595 0.857179 +vt 0.802908 0.857179 +vt 0.811898 0.857179 +vt 0.796689 0.855453 +vt 0.813272 0.857179 +vt 0.813272 0.853744 +vt 0.827595 0.853744 +vt 0.826014 0.853744 +vt 0.826014 0.855453 +vt 0.520442 0.836072 +vt 0.524015 0.833150 +vt 0.535257 0.845043 +vt 0.833203 0.857179 +vt 0.897698 0.596442 +vt 0.896258 0.600185 +vt 0.920512 0.610205 +vt 0.823042 0.853744 +vt 0.516880 0.839562 +vt 0.528775 0.851703 +vt 0.521438 0.859613 +vt 0.833202 0.853744 +vt 0.834678 0.855453 +vt 0.790690 0.954682 +vt 0.780443 0.954656 +vt 0.785161 0.957230 +vt 0.422440 0.965570 +vt 0.450495 0.970002 +vt 0.505626 0.964699 +vt 0.503252 0.978629 +vt 0.508685 0.972269 +vt 0.260623 0.953127 +vt 0.205415 0.960844 +vt 0.177430 0.952890 +vt 0.260584 0.966567 +vt 0.205400 0.966410 +vt 0.790662 0.965283 +vt 0.939733 0.972563 +vt 0.945259 0.969952 +vt 0.939739 0.968680 +vt 0.597353 0.964711 +vt 0.600376 0.972295 +vt 0.594912 0.978629 +vt 0.542169 0.965022 +vt 0.508689 0.967750 +vt 0.507691 0.975401 +vt 0.185454 0.958168 +vt 0.785140 0.965268 +vt 0.949984 0.969959 +vt 0.949986 0.968695 +vt 0.599367 0.975424 +vt 0.542195 0.969746 +vt 0.331659 0.966768 +vt 0.278202 0.966617 +vt 0.278240 0.953177 +vt 0.264946 0.953139 +vt 0.264908 0.966579 +vt 0.269464 0.953153 +vt 0.269426 0.966592 +vt 0.272751 0.953162 +vt 0.272713 0.966602 +vt 0.331675 0.961203 +vt 0.177415 0.958145 +vt 0.364426 0.953420 +vt 0.364412 0.958675 +vt 0.968179 0.972572 +vt 0.957932 0.972563 +vt 0.957935 0.968680 +vt 0.794573 0.954693 +vt 0.804820 0.954720 +vt 0.794545 0.965293 +vt 0.516662 0.969893 +vt 0.516635 0.965166 +vt 0.536604 0.965056 +vt 0.536631 0.969780 +vt 0.422489 0.970295 +vt 0.185446 0.960788 +vt 0.780437 0.957218 +vt 0.945255 0.972571 +vt 0.600401 0.967777 +vt 0.035908 0.941334 +vt 0.035908 0.941635 +vt 0.054072 0.941633 +vt 0.370583 0.810248 +vt 0.374948 0.806042 +vt 0.367858 0.802066 +vt 0.164734 0.678016 +vt 0.213982 0.678118 +vt 0.257519 0.683519 +vt 0.015729 0.600923 +vt 0.122051 0.606551 +vt 0.015721 0.606392 +vt 0.370634 0.800249 +vt 0.812069 0.443349 +vt 0.825366 0.443346 +vt 0.812071 0.451175 +vt 0.842764 0.448237 +vt 0.838841 0.451170 +vt 0.837618 0.443344 +vt 0.051468 0.951958 +vt 0.051191 0.952073 +vt 0.051240 0.952323 +vt 0.035954 0.945310 +vt 0.035954 0.944910 +vt 0.054117 0.944908 +vt 0.053269 0.945680 +vt 0.052868 0.945681 +vt 0.052918 0.945431 +vt 0.035908 0.941935 +vt 0.054072 0.941933 +vt 0.051191 0.945097 +vt 0.050890 0.945097 +vt 0.050841 0.945347 +vt 0.035954 0.944510 +vt 0.054117 0.944508 +vt 0.052499 0.945529 +vt 0.052640 0.945316 +vt 0.035908 0.942235 +vt 0.054072 0.942234 +vt 0.050890 0.952073 +vt 0.050613 0.951958 +vt 0.050471 0.952170 +vt 0.035954 0.944110 +vt 0.054117 0.944108 +vt 0.052215 0.945246 +vt 0.052428 0.945104 +vt 0.035908 0.942536 +vt 0.054072 0.942534 +vt 0.050400 0.951745 +vt 0.050188 0.951887 +vt 0.036076 0.944336 +vt 0.036076 0.943936 +vt 0.054239 0.943934 +vt 0.052062 0.944877 +vt 0.052312 0.944827 +vt 0.035908 0.937730 +vt 0.035908 0.938031 +vt 0.054072 0.938027 +vt 0.050286 0.951468 +vt 0.050035 0.951517 +vt 0.035954 0.943134 +vt 0.035954 0.942734 +vt 0.054117 0.942732 +vt 0.052061 0.944477 +vt 0.052312 0.944526 +vt 0.035908 0.945006 +vt 0.035908 0.945307 +vt 0.054072 0.945304 +vt 0.050286 0.951167 +vt 0.050035 0.951117 +vt 0.035954 0.942334 +vt 0.054117 0.942332 +vt 0.052214 0.944107 +vt 0.052426 0.944249 +vt 0.035908 0.945607 +vt 0.054072 0.945604 +vt 0.050401 0.950890 +vt 0.050188 0.950748 +vt 0.035954 0.941934 +vt 0.054117 0.941932 +vt 0.052496 0.943824 +vt 0.052638 0.944036 +vt 0.035908 0.938631 +vt 0.035908 0.938932 +vt 0.054072 0.938929 +vt 0.050613 0.950677 +vt 0.050471 0.950465 +vt 0.035954 0.941534 +vt 0.054117 0.941532 +vt 0.052865 0.943670 +vt 0.052915 0.943920 +vt 0.035908 0.939232 +vt 0.054072 0.939229 +vt 0.050891 0.950562 +vt 0.050841 0.950312 +vt 0.035954 0.941134 +vt 0.054117 0.941132 +vt 0.053265 0.943670 +vt 0.053216 0.943920 +vt 0.035908 0.939532 +vt 0.054072 0.939530 +vt 0.051191 0.950562 +vt 0.051241 0.950312 +vt 0.035954 0.940734 +vt 0.054117 0.940732 +vt 0.053635 0.943822 +vt 0.053494 0.944035 +vt 0.035908 0.939833 +vt 0.054072 0.939830 +vt 0.051468 0.950678 +vt 0.051610 0.950465 +vt 0.035954 0.940334 +vt 0.054117 0.940332 +vt 0.053918 0.944104 +vt 0.053706 0.944247 +vt 0.035908 0.940133 +vt 0.054072 0.940130 +vt 0.051681 0.950890 +vt 0.051893 0.950748 +vt 0.035954 0.939934 +vt 0.054117 0.939932 +vt 0.054072 0.944474 +vt 0.053822 0.944524 +vt 0.035908 0.940433 +vt 0.054072 0.940431 +vt 0.051796 0.951167 +vt 0.052046 0.951118 +vt 0.035954 0.946910 +vt 0.035954 0.946510 +vt 0.054117 0.946508 +vt 0.054073 0.944874 +vt 0.053822 0.944824 +vt 0.035908 0.940734 +vt 0.054072 0.940731 +vt 0.051796 0.951468 +vt 0.052046 0.951518 +vt 0.035954 0.946110 +vt 0.054117 0.946108 +vt 0.053920 0.945244 +vt 0.053708 0.945102 +vt 0.035908 0.941034 +vt 0.054072 0.941032 +vt 0.051681 0.951746 +vt 0.051893 0.951887 +vt 0.035954 0.945710 +vt 0.054117 0.945708 +vt 0.053638 0.945527 +vt 0.053496 0.945315 +vt 0.054072 0.941332 +vt 0.051610 0.952170 +vt 0.054117 0.945308 +vt 0.053218 0.945430 +vt 0.395541 0.956521 +vt 0.399095 0.962729 +vt 0.398106 0.962988 +vt 0.399068 0.969883 +vt 0.398081 0.969613 +vt 0.395468 0.976063 +vt 0.394748 0.975338 +vt 0.389257 0.979614 +vt 0.388998 0.978628 +vt 0.382104 0.979585 +vt 0.382373 0.978601 +vt 0.375923 0.975984 +vt 0.376648 0.975264 +vt 0.372372 0.969775 +vt 0.373359 0.969515 +vt 0.372399 0.962623 +vt 0.373386 0.962892 +vt 0.375999 0.956443 +vt 0.376720 0.957167 +vt 0.382206 0.952890 +vt 0.382469 0.953878 +vt 0.389360 0.952919 +vt 0.389091 0.953904 +vt 0.394817 0.957240 +vt 0.838965 0.931013 +vt 0.832339 0.930980 +vt 0.832314 0.936076 +vt 0.337664 0.995947 +vt 0.344817 0.995957 +vt 0.344820 0.994249 +vt 0.253929 0.963378 +vt 0.253961 0.970006 +vt 0.241579 0.966752 +vt 0.845592 0.931046 +vt 0.838941 0.936108 +vt 0.351970 0.995967 +vt 0.351972 0.994259 +vt 0.250678 0.975761 +vt 0.852219 0.931079 +vt 0.845567 0.936141 +vt 0.359124 0.995976 +vt 0.359126 0.994268 +vt 0.244954 0.979102 +vt 0.779328 0.930717 +vt 0.772701 0.930684 +vt 0.772676 0.935780 +vt 0.366278 0.995986 +vt 0.366281 0.994278 +vt 0.238328 0.979135 +vt 0.785955 0.930750 +vt 0.779303 0.935813 +vt 0.373434 0.995995 +vt 0.373437 0.994286 +vt 0.232572 0.975848 +vt 0.792581 0.930783 +vt 0.785929 0.935845 +vt 0.380592 0.996004 +vt 0.380594 0.994295 +vt 0.229232 0.970128 +vt 0.799208 0.930816 +vt 0.792556 0.935878 +vt 0.387750 0.996012 +vt 0.387752 0.994303 +vt 0.229199 0.963502 +vt 0.805834 0.930849 +vt 0.799183 0.935911 +vt 0.394910 0.996020 +vt 0.394911 0.994310 +vt 0.232484 0.957745 +vt 0.812460 0.930881 +vt 0.805809 0.935944 +vt 0.402070 0.996027 +vt 0.402072 0.994318 +vt 0.238206 0.954406 +vt 0.819087 0.930915 +vt 0.812435 0.935977 +vt 0.316208 0.995915 +vt 0.323359 0.995926 +vt 0.323362 0.994218 +vt 0.244832 0.954373 +vt 0.825713 0.930947 +vt 0.819061 0.936010 +vt 0.330512 0.995936 +vt 0.330514 0.994229 +vt 0.250586 0.957656 +vt 0.825687 0.936043 +vt 0.337666 0.994239 +vt 0.295338 0.103287 +vt 0.295221 0.104723 +vt 0.293302 0.103617 +vt 0.409234 0.135866 +vt 0.410611 0.137862 +vt 0.319804 0.145507 +vt 0.309657 0.110962 +vt 0.309823 0.112593 +vt 0.306707 0.110882 +vt 0.328674 0.137629 +vt 0.404333 0.130464 +vt 0.328247 0.138878 +vt 0.319775 0.144719 +vt 0.317240 0.144505 +vt 0.322554 0.143866 +vt 0.403938 0.100755 +vt 0.405721 0.101225 +vt 0.404279 0.105677 +vt 0.403791 0.098527 +vt 0.405876 0.098902 +vt 0.309891 0.106421 +vt 0.290334 0.107950 +vt 0.287801 0.103905 +vt 0.286363 0.106300 +vt 0.286167 0.102470 +vt 0.292374 0.100537 +vt 0.407173 0.108601 +vt 0.404441 0.107178 +vt 0.407718 0.109926 +vt 0.407977 0.107246 +vt 0.328434 0.133594 +vt 0.314711 0.143246 +vt 0.316677 0.139029 +vt 0.312958 0.141183 +vt 0.317532 0.135389 +vt 0.312794 0.139989 +vt 0.319955 0.127728 +vt 0.319269 0.131437 +vt 0.317360 0.129659 +vt 0.314226 0.135381 +vt 0.319718 0.142303 +vt 0.322593 0.139719 +vt 0.327219 0.140192 +vt 0.325454 0.142462 +vt 0.324800 0.135588 +vt 0.325027 0.127340 +vt 0.327174 0.129527 +vt 0.325386 0.131443 +vt 0.319686 0.138706 +vt 0.322039 0.131554 +vt 0.321220 0.135209 +vt 0.322767 0.126903 +vt 0.288842 0.142654 +vt 0.286523 0.140196 +vt 0.288488 0.144289 +vt 0.296744 0.105669 +vt 0.303415 0.111921 +vt 0.297301 0.104416 +vt 0.408817 0.109428 +vt 0.407352 0.130669 +vt 0.405962 0.129635 +vt 0.306196 0.112876 +vt 0.293525 0.104978 +vt 0.291353 0.108873 +vt 0.281673 0.142822 +vt 0.285169 0.140549 +vt 0.279556 0.143871 +vt 0.286951 0.148225 +vt 0.288440 0.150917 +vt 0.286064 0.150224 +vt 0.410802 0.134669 +vt 0.405654 0.131658 +vt 0.200676 0.976738 +vt 0.198506 0.962311 +vt 0.206953 0.963581 +vt 0.177491 0.953870 +vt 0.174541 0.955967 +vt 0.174214 0.955054 +vt 0.179011 0.950603 +vt 0.176755 0.953254 +vt 0.170974 0.956250 +vt 0.171141 0.955319 +vt 0.178740 0.946996 +vt 0.178071 0.950430 +vt 0.176717 0.943925 +vt 0.177824 0.947310 +vt 0.167756 0.954771 +vt 0.168348 0.954049 +vt 0.173219 0.942341 +vt 0.176033 0.944690 +vt 0.169417 0.942815 +vt 0.173064 0.943346 +vt 0.165672 0.951916 +vt 0.166544 0.951571 +vt 0.166596 0.945097 +vt 0.169843 0.943734 +vt 0.165246 0.948395 +vt 0.167364 0.945664 +vt 0.166181 0.948525 +vt 0.178034 0.954320 +vt 0.174785 0.956657 +vt 0.179705 0.950732 +vt 0.170851 0.956935 +vt 0.179415 0.946774 +vt 0.177257 0.943358 +vt 0.167318 0.955307 +vt 0.173333 0.941582 +vt 0.169069 0.942125 +vt 0.165031 0.952168 +vt 0.166033 0.944684 +vt 0.164562 0.948303 +vt 0.507413 0.952649 +vt 0.505313 0.947007 +vt 0.509953 0.950848 +vt 0.813137 0.936030 +vt 0.816999 0.936042 +vt 0.817012 0.931590 +vt 0.809275 0.936018 +vt 0.813150 0.931578 +vt 0.511269 0.948024 +vt 0.820861 0.936053 +vt 0.820874 0.931600 +vt 0.504339 0.952914 +vt 0.511023 0.944905 +vt 0.824723 0.936065 +vt 0.824738 0.931614 +vt 0.805411 0.936006 +vt 0.809288 0.931566 +vt 0.509232 0.942284 +vt 0.828587 0.936077 +vt 0.828600 0.931624 +vt 0.501546 0.951644 +vt 0.506263 0.940940 +vt 0.789963 0.935960 +vt 0.789976 0.931508 +vt 0.776758 0.931469 +vt 0.801550 0.935995 +vt 0.805426 0.931555 +vt 0.503041 0.941329 +vt 0.770442 0.935901 +vt 0.773938 0.935912 +vt 0.773952 0.931460 +vt 0.499743 0.949165 +vt 0.500563 0.943259 +vt 0.793825 0.935972 +vt 0.793838 0.931519 +vt 0.797687 0.935984 +vt 0.801564 0.931543 +vt 0.499379 0.946119 +vt 0.797702 0.931532 +vt 0.776744 0.935920 +vt 0.196413 0.977281 +vt 0.841807 0.936117 +vt 0.767649 0.931441 +vt 0.767636 0.935893 +vt 0.179609 0.928425 +vt 0.171162 0.927155 +vt 0.173740 0.925126 +vt 0.204601 0.978514 +vt 0.267733 0.946344 +vt 0.264866 0.947523 +vt 0.267728 0.948720 +vt 0.113559 0.986588 +vt 0.113545 0.988963 +vt 0.169391 0.989268 +vt 0.912369 0.968520 +vt 0.914046 0.966837 +vt 0.915237 0.969701 +vt 0.266045 0.950393 +vt 0.113533 0.991338 +vt 0.169378 0.991642 +vt 0.916421 0.966832 +vt 0.263670 0.950389 +vt 0.113520 0.993713 +vt 0.169365 0.994017 +vt 0.918104 0.968508 +vt 0.261993 0.948704 +vt 0.113623 0.974714 +vt 0.113610 0.977089 +vt 0.169456 0.977394 +vt 0.918104 0.970883 +vt 0.262000 0.946331 +vt 0.113597 0.979464 +vt 0.169443 0.979768 +vt 0.916433 0.972566 +vt 0.263683 0.944656 +vt 0.113584 0.981839 +vt 0.169430 0.982143 +vt 0.278275 0.840654 +vt 0.280295 0.842503 +vt 0.278989 0.832199 +vt 0.914053 0.972571 +vt 0.266059 0.944661 +vt 0.369894 0.831101 +vt 0.113571 0.984213 +vt 0.169417 0.984518 +vt 0.912375 0.970895 +vt 0.467682 0.428415 +vt 0.467409 0.426444 +vt 0.466533 0.426181 +vt 0.468381 0.429055 +vt 0.466914 0.428943 +vt 0.169404 0.986893 +vt 0.920370 0.565509 +vt 0.944401 0.554243 +vt 0.896376 0.554167 +vt 0.897668 0.571337 +vt 0.920362 0.571097 +vt 0.277841 0.781228 +vt 0.285343 0.783006 +vt 0.281869 0.774704 +vt 0.160089 0.800284 +vt 0.159623 0.798905 +vt 0.163138 0.795437 +vt 0.479286 0.894667 +vt 0.489683 0.897471 +vt 0.480471 0.884403 +vt 0.467929 0.425487 +vt 0.467205 0.425127 +vt 0.477729 0.848052 +vt 0.472954 0.850913 +vt 0.479582 0.858578 +vt 0.157244 0.800156 +vt 0.498939 0.421464 +vt 0.494112 0.421021 +vt 0.147537 0.667691 +vt 0.138873 0.673114 +vt 0.147618 0.628731 +vt 0.133643 0.683264 +vt 0.155132 0.676881 +vt 0.525965 0.426373 +vt 0.523581 0.425654 +vt 0.523015 0.509761 +vt 0.465526 0.858808 +vt 0.481265 0.779540 +vt 0.480607 0.772219 +vt 0.431532 0.784011 +vt 0.379766 0.803761 +vt 0.488548 0.791601 +vt 0.479552 0.788234 +vt 0.488196 0.788828 +vt 0.816605 0.798274 +vt 0.800394 0.810525 +vt 0.816251 0.807239 +vt 0.503573 0.417403 +vt 0.502943 0.507827 +vt 0.397927 0.482081 +vt 0.364284 0.482080 +vt 0.347740 0.489217 +vt 0.283364 0.770711 +vt 0.524484 0.428283 +vt 0.525220 0.427780 +vt 0.524484 0.428095 +vt 0.372721 0.781916 +vt 0.523960 0.436055 +vt 0.499903 0.435989 +vt 0.509939 0.437367 +vt 0.524487 0.427059 +vt 0.631458 0.968590 +vt 0.631414 0.976488 +vt 0.650864 0.980618 +vt 0.623508 0.976194 +vt 0.617333 0.980879 +vt 0.623551 0.968546 +vt 0.617403 0.968511 +vt 0.536680 0.427704 +vt 0.532638 0.428317 +vt 0.536677 0.429055 +vt 0.505929 0.440946 +vt 0.506151 0.441448 +vt 0.507140 0.440872 +vt 0.274031 0.781088 +vt 0.277202 0.779388 +vt 0.476868 0.846792 +vt 0.471771 0.849575 +vt 0.478536 0.895923 +vt 0.474524 0.892209 +vt 0.226741 0.668989 +vt 0.230965 0.658537 +vt 0.249203 0.663617 +vt 0.232711 0.644999 +vt 0.231484 0.634255 +vt 0.229111 0.615665 +vt 0.344606 0.838417 +vt 0.341288 0.844146 +vt 0.348270 0.846461 +vt 0.365181 0.805114 +vt 0.347197 0.834015 +vt 0.354449 0.835871 +vt 0.213549 0.839343 +vt 0.212248 0.841388 +vt 0.206815 0.848170 +vt 0.278298 0.859067 +vt 0.305848 0.811373 +vt 0.341603 0.836850 +vt 0.341929 0.834401 +vt 0.344203 0.833531 +vt 0.330160 0.776947 +vt 0.462094 0.867217 +vt 0.461172 0.865919 +vt 0.460357 0.872288 +vt 0.542334 0.734232 +vt 0.542982 0.739274 +vt 0.542761 0.725538 +vt 0.612699 0.710711 +vt 0.608902 0.708625 +vt 0.613102 0.701990 +vt 0.528420 0.748113 +vt 0.532710 0.740699 +vt 0.528989 0.736149 +vt 0.546000 0.748127 +vt 0.535991 0.743464 +vt 0.538550 0.732135 +vt 0.536918 0.728310 +vt 0.534592 0.733283 +vt 0.531071 0.731273 +vt 0.532323 0.736601 +vt 0.598796 0.724641 +vt 0.606324 0.719957 +vt 0.616313 0.724533 +vt 0.602661 0.713126 +vt 0.603047 0.717217 +vt 0.599324 0.712678 +vt 0.604936 0.709796 +vt 0.601402 0.707792 +vt 0.607249 0.704798 +vt 0.613286 0.715728 +vt 0.540303 0.742946 +vt 0.610621 0.719398 +vt 0.532048 0.427799 +vt 0.308951 0.916386 +vt 0.308804 0.907417 +vt 0.306065 0.921446 +vt 0.262659 0.892397 +vt 0.259718 0.898761 +vt 0.262865 0.887867 +vt 0.309964 0.899927 +vt 0.259034 0.884614 +vt 0.268399 0.867508 +vt 0.464315 0.872081 +vt 0.461623 0.872221 +vt 0.520840 0.428085 +vt 0.512013 0.428226 +vt 0.944412 0.546931 +vt 0.938804 0.546922 +vt 0.305612 0.799576 +vt 0.301983 0.792453 +vt 0.533427 0.430789 +vt 0.529482 0.430804 +vt 0.528712 0.432934 +vt 0.516798 0.838874 +vt 0.502642 0.840441 +vt 0.512413 0.853965 +vt 0.937195 0.583071 +vt 0.943054 0.571410 +vt 0.294765 0.785732 +vt 0.415487 0.757689 +vt 0.372231 0.763177 +vt 0.415472 0.763294 +vt 0.931076 0.540758 +vt 0.931073 0.532847 +vt 0.926803 0.522223 +vt 0.717079 0.850025 +vt 0.697889 0.850599 +vt 0.717428 0.855838 +vt 0.604947 0.699432 +vt 0.592611 0.724172 +vt 0.593958 0.711478 +vt 0.597415 0.704236 +vt 0.288507 0.148770 +vt 0.413761 0.103579 +vt 0.304331 0.110232 +vt 0.306789 0.105923 +vt 0.304667 0.104836 +vt 0.297557 0.100926 +vt 0.294488 0.100201 +vt 0.281002 0.141297 +vt 0.305962 0.103033 +vt 0.298304 0.099009 +vt 0.294755 0.098165 +vt 0.291840 0.098506 +vt 0.307621 0.103550 +vt 0.411997 0.105183 +vt 0.310018 0.103888 +vt 0.467771 0.862417 +vt 0.497984 0.436373 +vt 0.497981 0.437334 +vt 0.466787 0.885072 +vt 0.462614 0.877138 +vt 0.468717 0.881368 +vt 0.914272 0.546883 +vt 0.901996 0.546863 +vt 0.498218 0.886038 +vt 0.530203 0.432638 +vt 0.530198 0.431479 +vt 0.530971 0.430508 +vt 0.530207 0.434348 +vt 0.534930 0.434344 +vt 0.534933 0.435180 +vt 0.534935 0.435851 +vt 0.530211 0.435865 +vt 0.741145 0.587771 +vt 0.741138 0.579863 +vt 0.784380 0.579822 +vt 0.741104 0.572114 +vt 0.536277 0.431807 +vt 0.536268 0.430545 +vt 0.532323 0.430534 +vt 0.896388 0.546854 +vt 0.912374 0.587741 +vt 0.920334 0.588416 +vt 0.903490 0.583017 +vt 0.896258 0.565379 +vt 0.926528 0.546902 +vt 0.536670 0.431723 +vt 0.541392 0.432348 +vt 0.541394 0.431735 +vt 0.909744 0.540724 +vt 0.914078 0.522204 +vt 0.902006 0.540711 +vt 0.902038 0.522185 +vt 0.902020 0.532800 +vt 0.909773 0.532813 +vt 0.913623 0.510828 +vt 0.902057 0.510809 +vt 0.532631 0.431088 +vt 0.536673 0.430372 +vt 0.944483 0.565456 +vt 0.180820 0.822971 +vt 0.225631 0.818815 +vt 0.178050 0.808817 +vt 0.172700 0.803752 +vt 0.199189 0.797410 +vt 0.227672 0.816516 +vt 0.038689 0.814747 +vt 0.082486 0.817672 +vt 0.037050 0.828634 +vt 0.119684 0.819896 +vt 0.083750 0.821563 +vt 0.229782 0.815148 +vt 0.231420 0.801261 +vt 0.180716 0.814159 +vt 0.164279 0.792464 +vt 0.083280 0.816529 +vt 0.082798 0.820883 +vt 0.499887 0.441882 +vt 0.523943 0.441948 +vt 0.509930 0.440560 +vt 0.525209 0.431585 +vt 0.524475 0.431266 +vt 0.524472 0.432302 +vt 0.497973 0.440527 +vt 0.497970 0.441488 +vt 0.519850 0.440772 +vt 0.532038 0.431603 +vt 0.523038 0.431262 +vt 0.520831 0.431256 +vt 0.507889 0.443620 +vt 0.508686 0.443623 +vt 0.508723 0.431665 +vt 0.504603 0.443610 +vt 0.507926 0.431663 +vt 0.413032 0.107126 +vt 0.415337 0.106231 +vt 0.412617 0.135954 +vt 0.284455 0.105100 +vt 0.278808 0.141349 +vt 0.464288 0.857946 +vt 0.430491 0.785523 +vt 0.430922 0.789755 +vt 0.525633 0.853031 +vt 0.527890 0.837636 +vt 0.488410 0.844488 +vt 0.497813 0.855843 +vt 0.547036 0.854081 +vt 0.545883 0.836789 +vt 0.642072 0.855004 +vt 0.644582 0.840304 +vt 0.664836 0.856850 +vt 0.665550 0.844082 +vt 0.696641 0.843246 +vt 0.541561 0.435406 +vt 0.541562 0.439068 +vt 0.537616 0.435406 +vt 0.818748 0.813198 +vt 0.834622 0.844873 +vt 0.541397 0.430395 +vt 0.819014 0.791969 +vt 0.520041 0.434440 +vt 0.516080 0.430794 +vt 0.515306 0.431766 +vt 0.541405 0.427105 +vt 0.511643 0.443632 +vt 0.511681 0.431675 +vt 0.510884 0.431672 +vt 0.507074 0.443643 +vt 0.507113 0.431685 +vt 0.503826 0.431675 +vt 0.510646 0.441203 +vt 0.507810 0.441837 +vt 0.528708 0.431775 +vt 0.528715 0.434644 +vt 0.528717 0.435489 +vt 0.533441 0.435479 +vt 0.528719 0.436161 +vt 0.067244 0.893667 +vt 0.062278 0.889043 +vt 0.041841 0.899568 +vt 0.533439 0.434643 +vt 0.533438 0.433779 +vt 0.420110 0.482081 +vt 0.413360 0.482081 +vt 0.413362 0.489218 +vt 0.404388 0.489218 +vt 0.404388 0.482081 +vt 0.397926 0.489218 +vt 0.786497 0.853755 +vt 0.783792 0.853765 +vt 0.783848 0.868579 +vt 0.426594 0.489238 +vt 0.479489 0.785493 +vt 0.432181 0.790646 +vt 0.138986 0.619442 +vt 0.527793 0.430554 +vt 0.523847 0.430532 +vt 0.523840 0.431833 +vt 0.155225 0.616260 +vt 0.163798 0.613046 +vt 0.215285 0.601246 +vt 0.213992 0.613134 +vt 0.222920 0.607011 +vt 0.219973 0.615583 +vt 0.213518 0.848409 +vt 0.212031 0.850131 +vt 0.212061 0.844251 +vt 0.149944 0.672461 +vt 0.149575 0.621583 +vt 0.226063 0.622177 +vt 0.220370 0.675456 +vt 0.132351 0.677672 +vt 0.536839 0.439070 +vt 0.536838 0.436375 +vt 0.843786 0.455374 +vt 0.938814 0.540771 +vt 0.938843 0.522242 +vt 0.938861 0.510866 +vt 0.928295 0.587766 +vt 0.316290 0.909189 +vt 0.317939 0.901895 +vt 0.312259 0.924673 +vt 0.315534 0.918706 +vt 0.185045 0.846782 +vt 0.151621 0.850208 +vt 0.258963 0.849871 +vt 0.693736 0.480570 +vt 0.706500 0.473447 +vt 0.706497 0.462469 +vt 0.767028 0.809971 +vt 0.762580 0.817109 +vt 0.761558 0.809972 +vt 0.467778 0.429604 +vt 0.494848 0.426750 +vt 0.499402 0.425107 +vt 0.489382 0.771430 +vt 0.510766 0.435967 +vt 0.510768 0.435484 +vt 0.512152 0.435975 +vt 0.510395 0.436275 +vt 0.512519 0.436286 +vt 0.512701 0.435978 +vt 0.510217 0.435965 +vt 0.503404 0.438795 +vt 0.503403 0.439344 +vt 0.514607 0.439360 +vt 0.503395 0.445030 +vt 0.514599 0.445047 +vt 0.514605 0.440754 +vt 0.458385 0.056417 +vt 0.424924 0.056311 +vt 0.423411 0.058436 +vt 0.509540 0.441305 +vt 0.509278 0.441304 +vt 0.509296 0.437010 +vt 0.417408 0.049490 +vt 0.414883 0.050932 +vt 0.508711 0.419461 +vt 0.504603 0.419473 +vt 0.504635 0.430677 +vt 0.508743 0.430665 +vt 0.509989 0.430662 +vt 0.515352 0.424554 +vt 0.513966 0.424552 +vt 0.513960 0.428667 +vt 0.513321 0.441323 +vt 0.513348 0.437216 +vt 0.513611 0.437033 +vt 0.513479 0.428610 +vt 0.503406 0.437409 +vt 0.507493 0.437415 +vt 0.514611 0.436879 +vt 0.503416 0.431174 +vt 0.503409 0.435467 +vt 0.514613 0.435484 +vt 0.458463 0.025487 +vt 0.458468 0.023357 +vt 0.423510 0.023271 +vt 0.417457 0.032182 +vt 0.425010 0.025404 +vt 0.503407 0.436860 +vt 0.513327 0.419448 +vt 0.513359 0.430652 +vt 0.517467 0.430640 +vt 0.507491 0.438802 +vt 0.515346 0.428669 +vt 0.515827 0.428613 +vt 0.512081 0.419451 +vt 0.512113 0.430656 +vt 0.509957 0.419458 +vt 0.512155 0.435491 +vt 0.924937 0.604905 +vt 0.834678 0.853744 +vt 0.936206 0.619330 +vt 0.946414 0.608213 +vt 0.838373 0.855453 +vt 0.838373 0.857178 +vt 0.935119 0.596362 +vt 0.252649 0.671850 +vt 0.216060 0.837967 +vt 0.688976 0.721051 +vt 0.688964 0.729778 +vt 0.693650 0.729782 +vt 0.987930 0.703465 +vt 0.987937 0.709256 +vt 0.996010 0.707585 +vt 0.100906 0.686438 +vt 0.107408 0.671030 +vt 0.128190 0.674115 +vt 0.115506 0.667738 +vt 0.995866 0.719402 +vt 0.144996 0.693831 +vt 0.101437 0.698854 +vt 0.138634 0.691115 +vt 0.220429 0.837505 +vt 0.100946 0.680329 +vt 0.693601 0.747407 +vt 0.695654 0.741310 +vt 0.688953 0.741304 +vt 0.995821 0.679724 +vt 0.987837 0.689859 +vt 0.987873 0.695057 +vt 0.104197 0.694536 +vt 0.132322 0.684597 +vt 0.103059 0.675321 +vt 0.632078 0.866868 +vt 0.594498 0.866868 +vt 0.594498 0.862650 +vt 0.594498 0.854215 +vt 0.632078 0.854215 +vt 0.632078 0.858432 +vt 0.203347 0.487944 +vt 0.165767 0.487944 +vt 0.165767 0.483727 +vt 0.166763 0.745860 +vt 0.204344 0.745860 +vt 0.204344 0.750077 +vt 0.130247 0.889012 +vt 0.125486 0.893737 +vt 0.132258 0.895120 +vt 0.500600 0.507658 +vt 0.129961 0.900327 +vt 0.153438 0.891133 +vt 0.148662 0.895139 +vt 0.509791 0.440921 +vt 0.506598 0.440935 +vt 0.506583 0.437649 +vt 0.509277 0.441530 +vt 0.507117 0.441540 +vt 0.520025 0.430778 +vt 0.032914 0.892147 +vt 0.510846 0.443630 +vt 0.515317 0.434461 +vt 0.632078 0.862650 +vt 0.166763 0.741642 +vt 0.204344 0.741642 +vt 0.204344 0.754295 +vt 0.166763 0.754295 +vt 0.204344 0.737425 +vt 0.506125 0.436830 +vt 0.505931 0.437397 +vt 0.507183 0.437514 +vt 0.701232 0.980835 +vt 0.701178 0.973187 +vt 0.694996 0.968511 +vt 0.709083 0.972881 +vt 0.728527 0.968723 +vt 0.709139 0.980778 +vt 0.728612 0.980639 +vt 0.523046 0.428091 +vt 0.120536 0.807751 +vt 0.524476 0.431078 +vt 0.165680 0.801658 +vt 0.397927 0.464479 +vt 0.397927 0.457342 +vt 0.347741 0.457341 +vt 0.842467 0.852745 +vt 0.822154 0.857297 +vt 0.787926 0.822949 +vt 0.775618 0.839118 +vt 0.784584 0.838795 +vt 0.126237 0.820376 +vt 0.126494 0.822480 +vt 0.043968 0.831329 +vt 0.121011 0.813305 +vt 0.377326 0.801464 +vt 0.377276 0.833340 +vt 0.398558 0.833373 +vt 0.338586 0.489217 +vt 0.225253 0.699679 +vt 0.194218 0.694159 +vt 0.203825 0.693107 +vt 0.264472 0.671874 +vt 0.264488 0.663647 +vt 0.268153 0.665649 +vt 0.688940 0.756131 +vt 0.689025 0.756305 +vt 0.987901 0.699231 +vt 0.995953 0.699177 +vt 0.220114 0.689486 +vt 0.211500 0.683987 +vt 0.211760 0.645028 +vt 0.468430 0.425751 +vt 0.467704 0.425373 +vt 0.494826 0.421949 +vt 0.467887 0.426702 +vt 0.467013 0.426422 +vt 0.468799 0.429341 +vt 0.468185 0.429873 +vt 0.467346 0.429192 +vt 0.468121 0.428683 +vt 0.231220 0.830499 +vt 0.321420 0.821180 +vt 0.322517 0.831775 +vt 0.230329 0.838968 +vt 0.229651 0.833246 +vt 0.842765 0.480112 +vt 0.842765 0.485006 +vt 0.837620 0.485005 +vt 0.825367 0.485004 +vt 0.812070 0.485004 +vt 0.812071 0.477177 +vt 0.995981 0.703411 +vt 0.236699 0.817843 +vt 0.233036 0.819558 +vt 0.237514 0.623066 +vt 0.343890 0.618285 +vt 0.343855 0.623755 +vt 0.169223 0.700762 +vt 0.169246 0.700790 +vt 0.167737 0.702484 +vt 0.229706 0.822739 +vt 0.119645 0.817818 +vt 0.126369 0.818161 +vt 0.127194 0.807182 +vt 0.127669 0.812736 +vt 0.500038 0.426193 +vt 0.767029 0.841847 +vt 0.838841 0.477179 +vt 0.762580 0.834710 +vt 0.761559 0.841847 +vt 0.460186 0.833470 +vt 0.465924 0.833478 +vt 0.465974 0.801603 +vt 0.695669 0.735883 +vt 0.589758 0.833672 +vt 0.452231 0.833457 +vt 0.460236 0.801593 +vt 0.452281 0.801581 +vt 0.270941 0.833175 +vt 0.731733 0.462463 +vt 0.731730 0.448114 +vt 0.731735 0.473442 +vt 0.744502 0.480559 +vt 0.744475 0.455864 +vt 0.706503 0.488064 +vt 0.731738 0.488059 +vt 0.151521 0.818331 +vt 0.187828 0.891142 +vt 0.181881 0.889467 +vt 0.180828 0.895063 +vt 0.186407 0.896580 +vt 0.185602 0.903706 +vt 0.184965 0.821547 +vt 0.209662 0.821469 +vt 0.258863 0.817994 +vt 0.182995 0.908105 +vt 0.178426 0.905528 +vt 0.180717 0.901802 +vt 0.271574 0.817954 +vt 0.271675 0.849831 +vt 0.287676 0.849781 +vt 0.209741 0.846705 +vt 0.298932 0.849746 +vt 0.298832 0.817868 +vt 0.287576 0.817904 +vt 0.843786 0.472975 +vt 0.541400 0.429057 +vt 0.209051 0.688734 +vt 0.226594 0.694100 +vt 0.130403 0.631285 +vt 0.127876 0.649844 +vt 0.126560 0.660571 +vt 0.133395 0.637819 +vt 0.139538 0.631279 +vt 0.145537 0.628880 +vt 0.136663 0.622685 +vt 0.144343 0.616985 +vt 0.195720 0.629210 +vt 0.204263 0.632495 +vt 0.220473 0.635814 +vt 0.209866 0.637864 +vt 0.688958 0.735877 +vt 0.161690 0.489238 +vt 0.172499 0.489238 +vt 0.172498 0.457322 +vt 0.426595 0.457322 +vt 0.413362 0.457342 +vt 0.420110 0.464479 +vt 0.404388 0.464479 +vt 0.404389 0.457342 +vt 0.413361 0.464479 +vt 0.262632 0.489217 +vt 0.272298 0.489217 +vt 0.272298 0.457341 +vt 0.279113 0.489217 +vt 0.279113 0.457341 +vt 0.213404 0.489217 +vt 0.262632 0.457341 +vt 0.284455 0.489217 +vt 0.284455 0.457341 +vt 0.206486 0.489217 +vt 0.213404 0.457341 +vt 0.323415 0.489217 +vt 0.323415 0.457341 +vt 0.197411 0.489217 +vt 0.206485 0.457341 +vt 0.330825 0.489217 +vt 0.330825 0.457341 +vt 0.186143 0.489237 +vt 0.197411 0.457342 +vt 0.338586 0.457341 +vt 0.186142 0.457322 +vt 0.781838 0.791904 +vt 0.769305 0.841505 +vt 0.790535 0.841313 +vt 0.814282 0.865143 +vt 0.364285 0.464478 +vt 0.665099 0.895783 +vt 0.696240 0.896784 +vt 0.697528 0.889426 +vt 0.717390 0.884099 +vt 0.664335 0.883183 +vt 0.642311 0.884975 +vt 0.644805 0.899444 +vt 0.547257 0.887636 +vt 0.546159 0.904698 +vt 0.512670 0.887203 +vt 0.503448 0.900859 +vt 0.526257 0.888227 +vt 0.528278 0.903634 +vt 0.517264 0.902279 +vt 0.465653 0.886011 +vt 0.473472 0.893576 +vt 0.461836 0.878509 +vt 0.527098 0.727704 +vt 0.523628 0.734935 +vt 0.522247 0.747613 +vt 0.534645 0.722946 +vt 0.717036 0.890009 +vt 0.534917 0.430491 +vt 0.534926 0.432618 +vt 0.159128 0.858047 +vt 0.151495 0.864134 +vt 0.146839 0.879266 +vt 0.144046 0.876731 +vt 0.146573 0.882660 +vt 0.144209 0.887363 +vt 0.130019 0.852326 +vt 0.125529 0.858905 +vt 0.132303 0.857539 +vt 0.130277 0.863641 +vt 0.153474 0.861577 +vt 0.148708 0.857559 +vt 0.041897 0.852873 +vt 0.032952 0.860271 +vt 0.062309 0.863447 +vt 0.491739 0.507629 +vt 0.492032 0.416482 +vt 0.489346 0.417357 +vt 0.469285 0.425479 +vt 0.469311 0.509589 +vt 0.534748 0.426440 +vt 0.534114 0.509991 +vt 0.536433 0.509863 +vt 0.525331 0.509924 +vt 0.500893 0.416511 +vt 0.067286 0.858835 +vt 0.519860 0.437209 +vt 0.519310 0.440420 +vt 0.529931 0.440635 +vt 0.530292 0.436681 +vt 0.510722 0.437437 +vt 0.930383 0.894023 +vt 0.928759 0.883534 +vt 0.907068 0.886893 +vt 0.506415 0.841924 +vt 0.796689 0.857179 +vt 0.532339 0.848213 +vt 0.968182 0.968689 +vt 0.804792 0.965320 +vt 0.842763 0.443343 +vt 0.050841 0.952323 +vt 0.054072 0.949210 +vt 0.035908 0.949211 +vt 0.054072 0.949510 +vt 0.054605 0.944456 +vt 0.036442 0.944458 +vt 0.054605 0.944056 +vt 0.054072 0.944703 +vt 0.035908 0.944706 +vt 0.054072 0.945003 +vt 0.054117 0.943132 +vt 0.054072 0.945905 +vt 0.035908 0.945908 +vt 0.054072 0.946205 +vt 0.035908 0.946208 +vt 0.054072 0.946505 +vt 0.035908 0.946508 +vt 0.054072 0.946806 +vt 0.054117 0.946908 +vt 0.852193 0.936174 +vt 0.316211 0.994208 +vt 0.770455 0.931449 +vt 0.841820 0.931664 +vt 0.177713 0.925811 +vt 0.169469 0.975019 +vt 0.277487 0.834962 +vt 0.368558 0.820578 +vt 0.650931 0.968701 +vt 0.351976 0.840046 +vt 0.533435 0.432916 +vt 0.530209 0.435193 +vt 0.784387 0.587733 +vt 0.784346 0.571925 +vt 0.532332 0.431836 +vt 0.504640 0.431653 +vt 0.842494 0.837028 +vt 0.514929 0.443643 +vt 0.927409 0.934733 +vt 0.929762 0.924701 +vt 0.906663 0.929866 +vt 0.533442 0.436150 +vt 0.528715 0.433781 +vt 0.786503 0.868569 +vt 0.527785 0.431817 +vt 0.938826 0.532859 +vt 0.927294 0.510847 +vt 0.693752 0.455875 +vt 0.490040 0.778751 +vt 0.488357 0.785906 +vt 0.503401 0.440738 +vt 0.458378 0.058547 +vt 0.509556 0.437196 +vt 0.513582 0.441326 +vt 0.514620 0.431192 +vt 0.414941 0.030725 +vt 0.517435 0.419436 +vt 0.688948 0.747403 +vt 0.995924 0.695002 +vt 0.594498 0.858432 +vt 0.203347 0.483727 +vt 0.166763 0.750077 +vt 0.509776 0.437635 +vt 0.165767 0.466857 +vt 0.203347 0.466857 +vt 0.165767 0.471074 +vt 0.695084 0.980879 +vt 0.829999 0.865170 +vt 0.398608 0.801497 +vt 0.268144 0.669886 +vt 0.499658 0.422525 +vt 0.232286 0.840869 +vt 0.495422 0.427721 +vt 0.589808 0.801796 +vt 0.270991 0.801299 +vt 0.706494 0.448119 +vt 0.161689 0.457323 +vt 0.769370 0.804329 +vt 0.489394 0.507784 +vt 0.537143 0.425757 +vt 0.519297 0.436720 +vt 0.507859 0.436561 +vt 0.351639 0.962522 +s 1 +f 61/3/18 62/4/18 63/5/18 +f 64/6/19 65/7/18 66/8/18 +f 67/9/20 68/10/20 69/11/21 +f 70/12/22 71/13/22 72/14/22 +f 73/14/23 74/15/23 75/16/23 +f 76/17/24 77/18/25 78/19/26 +f 79/20/27 80/21/20 67/9/20 +f 79/20/27 69/11/21 81/22/28 +f 82/21/29 83/23/29 84/24/29 +f 85/25/30 86/26/30 87/27/31 +f 88/28/23 89/29/23 90/30/23 +f 91/25/32 92/19/32 93/31/32 +f 79/20/27 67/9/20 69/11/21 +f 94/32/33 95/33/33 96/34/33 +f 97/35/34 98/24/34 99/23/34 +f 100/36/23 101/37/23 102/38/23 +f 103/39/35 104/31/36 105/40/37 +f 106/41/33 107/42/33 108/43/33 +f 109/44/33 110/45/33 111/46/33 +f 111/46/33 112/47/33 113/48/33 +f 114/49/38 115/50/39 116/51/39 +f 117/52/40 118/53/39 114/49/38 +f 106/41/33 108/43/33 119/54/33 +f 120/55/41 121/56/41 122/57/41 +f 123/58/23 124/59/23 125/60/23 +f 123/58/23 125/60/23 126/61/23 +f 127/62/33 111/46/33 113/48/33 +f 110/45/33 112/47/33 111/46/33 +f 112/47/33 128/63/33 113/48/33 +f 115/50/39 129/64/39 116/51/39 +f 118/53/39 115/50/39 114/49/38 +f 108/43/33 130/65/33 119/54/33 +f 131/66/41 132/67/41 121/56/41 +f 121/56/41 132/67/41 122/57/41 +f 124/59/23 133/68/23 125/60/23 +f 125/60/23 134/69/23 126/61/23 +f 135/70/42 136/71/43 137/72/44 +f 138/73/45 139/74/45 117/52/40 +f 138/73/45 140/75/46 141/76/47 +f 140/75/46 142/77/48 143/78/49 +f 142/77/48 137/72/44 136/71/43 +f 144/79/50 137/72/44 64/6/19 +f 145/80/39 116/51/39 129/64/39 +f 146/7/51 147/81/51 148/82/51 +f 149/83/51 150/84/51 151/85/51 +f 152/86/39 153/41/39 154/54/39 +f 155/87/23 156/86/23 157/88/23 +f 158/89/23 159/90/23 160/91/23 +f 161/92/51 162/91/51 163/61/51 +f 109/44/33 164/93/33 110/45/33 +f 129/64/39 115/50/39 165/94/39 +f 107/42/33 166/95/33 108/43/33 +f 120/55/41 167/96/41 121/56/41 +f 123/58/23 168/97/23 124/59/23 +f 169/98/52 170/99/53 171/100/54 +f 172/101/55 173/102/56 174/103/57 +f 175/104/33 176/105/33 177/106/58 +f 178/107/33 179/108/33 180/109/33 +f 181/110/59 174/103/57 173/102/56 +f 182/111/41 183/112/41 184/113/41 +f 185/114/41 186/115/41 187/116/41 +f 188/117/41 189/118/41 190/119/41 +f 191/120/60 192/121/61 193/122/62 +f 194/123/51 195/124/51 196/125/51 +f 170/99/53 197/126/63 198/127/64 +f 189/128/41 199/129/41 200/130/41 +f 192/121/61 201/131/65 202/132/66 +f 195/124/51 203/133/51 204/134/51 +f 197/126/63 205/135/67 206/136/68 +f 199/137/41 207/138/41 208/139/41 +f 201/131/65 209/140/69 210/141/70 +f 203/133/51 211/142/51 212/143/51 +f 205/135/67 213/144/71 214/145/72 +f 207/138/41 215/146/41 216/147/41 +f 209/148/69 217/149/73 218/150/74 +f 211/142/51 219/151/51 220/152/51 +f 221/153/75 222/154/76 223/155/77 +f 215/146/41 224/156/41 225/157/41 +f 226/158/78 227/159/79 228/160/80 +f 219/151/51 229/161/51 230/162/51 +f 222/163/76 231/164/81 232/165/82 +f 224/156/41 233/166/41 234/167/41 +f 227/159/79 235/168/83 236/169/84 +f 229/161/51 237/170/51 238/171/51 +f 231/164/81 239/172/85 240/173/86 +f 233/166/41 241/174/41 242/175/41 +f 235/168/83 243/176/87 244/177/88 +f 237/170/51 245/178/51 246/179/51 +f 239/180/85 247/181/60 248/182/89 +f 241/174/41 249/183/41 250/184/41 +f 243/176/87 251/185/52 252/186/90 +f 245/178/51 253/187/51 254/188/51 +f 247/181/60 255/189/91 256/190/62 +f 249/183/41 257/191/41 258/192/41 +f 251/185/52 259/193/53 260/194/54 +f 253/187/51 261/195/51 262/196/51 +f 255/189/91 263/197/65 264/198/66 +f 257/191/41 265/199/41 266/200/41 +f 259/193/53 267/201/63 268/202/64 +f 261/195/51 269/203/51 270/204/51 +f 263/197/65 271/205/69 272/206/70 +f 265/199/41 273/207/41 274/208/41 +f 267/201/63 275/209/92 276/210/93 +f 269/203/51 277/211/51 278/212/51 +f 271/205/69 279/213/73 280/214/94 +f 273/207/41 281/215/41 282/216/41 +f 275/209/92 283/217/71 284/218/95 +f 277/211/51 285/219/51 286/220/51 +f 279/213/73 287/221/96 288/222/97 +f 281/215/41 289/223/41 290/224/41 +f 283/225/71 291/226/76 292/227/77 +f 285/219/51 293/228/51 294/229/51 +f 287/221/96 295/230/83 296/231/84 +f 289/223/41 297/232/41 298/233/41 +f 291/226/76 299/234/81 300/235/82 +f 293/228/51 301/236/51 302/237/51 +f 295/230/83 303/238/87 304/239/88 +f 297/232/41 305/240/41 306/241/41 +f 299/234/81 307/242/85 308/243/98 +f 301/236/51 309/244/51 310/245/51 +f 303/238/87 169/98/52 311/246/90 +f 305/240/41 188/117/41 312/247/41 +f 307/242/85 191/120/60 313/248/89 +f 309/244/51 194/123/51 314/249/51 +f 315/250/23 316/251/23 317/252/23 +f 316/251/23 318/253/23 319/254/23 +f 318/253/23 320/255/23 321/256/23 +f 320/255/23 322/257/23 323/258/23 +f 322/257/23 324/259/23 325/260/23 +f 324/259/23 326/261/23 327/262/23 +f 326/261/23 328/263/23 329/264/23 +f 328/263/23 330/265/23 331/266/23 +f 330/265/23 332/267/23 333/268/23 +f 332/267/23 334/269/23 335/270/23 +f 334/269/23 336/271/23 337/272/23 +f 336/271/23 315/250/23 338/273/23 +f 339/274/99 340/275/100 341/276/101 +f 342/277/102 343/278/103 344/279/104 +f 345/280/23 346/281/23 347/282/23 +f 348/283/105 339/274/99 349/284/106 +f 343/278/103 350/285/107 351/286/108 +f 346/281/23 352/287/23 347/282/23 +f 353/288/109 348/283/105 354/289/110 +f 350/285/107 355/290/111 356/291/112 +f 352/287/23 357/292/23 347/282/23 +f 358/293/113 359/294/114 360/295/115 +f 355/290/111 361/296/116 362/297/117 +f 357/292/23 363/298/23 347/282/23 +f 364/299/118 358/293/113 365/300/119 +f 361/296/116 366/301/120 367/302/121 +f 363/298/23 368/303/23 347/282/23 +f 369/304/122 364/299/118 370/305/123 +f 366/301/120 371/306/124 372/307/125 +f 368/303/23 373/308/23 347/282/23 +f 374/309/120 369/304/122 375/310/126 +f 371/306/124 376/311/127 377/312/123 +f 373/308/23 378/313/23 347/282/23 +f 379/314/128 374/309/120 380/315/129 +f 376/311/127 381/316/113 382/317/130 +f 378/313/23 383/318/23 347/282/23 +f 384/319/131 379/314/128 385/320/117 +f 381/316/113 386/321/114 387/322/115 +f 383/318/23 388/323/23 347/282/23 +f 389/324/107 384/319/131 390/325/132 +f 391/326/109 392/327/133 393/328/110 +f 388/323/23 394/329/23 347/282/23 +f 395/330/134 389/324/107 396/331/135 +f 392/327/133 397/332/99 398/333/136 +f 394/329/23 399/334/23 347/282/23 +f 340/275/100 395/330/134 400/335/104 +f 397/332/99 342/277/102 401/336/137 +f 399/334/23 345/280/23 347/282/23 +f 402/337/138 403/338/139 404/339/140 +f 405/340/141 406/341/142 407/342/143 +f 408/343/144 409/344/145 410/345/146 +f 411/346/147 412/347/148 413/348/149 +f 414/349/150 407/342/143 415/350/151 +f 416/351/152 407/342/143 414/349/150 +f 417/352/153 418/353/154 419/354/155 +f 420/355/156 421/356/157 417/352/153 +f 408/343/144 422/357/158 417/352/153 +f 423/358/159 424/359/160 404/339/140 +f 424/359/160 423/358/159 425/360/161 +f 424/359/160 426/361/162 427/362/163 +f 428/363/164 429/364/165 419/354/155 +f 430/365/166 428/363/164 431/366/167 +f 411/346/147 432/367/168 412/347/148 +f 433/368/169 434/369/170 415/350/151 +f 435/370/171 434/369/170 433/368/169 +f 436/371/172 434/369/170 437/372/173 +f 438/373/174 439/374/175 440/375/176 +f 441/376/177 440/375/176 439/374/175 +f 414/349/150 415/350/151 442/377/178 +f 443/378/179 413/348/149 444/379/180 +f 445/380/181 416/351/152 443/378/179 +f 411/346/147 413/348/149 446/381/182 +f 432/367/168 411/346/147 446/381/182 +f 446/381/182 413/348/149 443/378/179 +f 447/382/183 448/383/184 449/384/185 +f 434/369/170 442/377/178 415/350/151 +f 443/378/179 442/377/178 450/385/186 +f 451/386/187 452/387/188 436/371/172 +f 452/387/188 450/385/186 434/369/170 +f 446/381/182 452/387/188 451/386/187 +f 450/385/186 452/387/188 446/381/182 +f 449/384/185 451/386/187 447/382/183 +f 438/373/174 453/388/189 451/386/187 +f 454/389/190 437/372/173 435/370/171 +f 455/390/191 454/389/190 456/391/192 +f 457/392/193 403/338/139 402/337/138 +f 458/393/194 457/392/193 459/394/195 +f 429/364/165 409/344/145 408/343/144 +f 460/395/196 461/396/197 462/397/198 +f 437/372/173 434/369/170 435/370/171 +f 450/385/186 442/377/178 434/369/170 +f 416/351/152 414/349/150 442/377/178 +f 442/377/178 443/378/179 416/351/152 +f 445/380/181 443/378/179 444/379/180 +f 432/367/168 449/384/185 448/383/184 +f 453/388/189 447/382/183 451/386/187 +f 439/374/175 438/373/174 451/386/187 +f 462/397/198 412/347/148 430/365/166 +f 432/367/168 448/383/184 412/347/148 +f 412/347/148 448/383/184 429/364/165 +f 453/388/189 409/344/145 447/382/183 +f 438/373/174 409/344/145 453/388/189 +f 438/373/174 440/375/176 409/344/145 +f 440/375/176 441/376/177 463/398/199 +f 437/372/173 454/389/190 441/376/177 +f 441/376/177 455/390/191 458/393/194 +f 464/399/200 457/392/193 465/400/201 +f 403/338/139 457/392/193 464/399/200 +f 429/364/165 428/363/164 430/365/166 +f 412/347/148 429/364/165 430/365/166 +f 448/383/184 447/382/183 429/364/165 +f 409/344/145 429/364/165 447/382/183 +f 440/375/176 463/398/199 409/344/145 +f 441/376/177 458/393/194 463/398/199 +f 454/389/190 455/390/191 441/376/177 +f 455/390/191 465/400/201 458/393/194 +f 457/392/193 458/393/194 465/400/201 +f 466/401/202 467/402/203 456/391/192 +f 468/403/204 466/401/202 469/404/205 +f 470/405/206 471/406/207 469/404/205 +f 472/407/208 405/340/141 473/408/209 +f 474/409/33 475/410/33 476/411/33 +f 477/412/121 478/413/117 479/414/210 +f 480/415/125 477/412/121 481/416/120 +f 478/413/117 482/417/112 483/418/111 +f 484/419/123 480/415/125 485/420/124 +f 486/421/211 484/419/123 487/422/212 +f 482/417/112 488/423/213 489/424/107 +f 490/425/214 486/421/211 491/426/113 +f 492/427/110 490/425/214 493/428/114 +f 488/423/213 494/429/104 495/430/103 +f 496/431/136 492/427/110 497/432/133 +f 498/433/137 496/431/136 499/434/99 +f 494/429/104 498/433/137 500/435/102 +f 501/436/33 502/437/33 503/413/33 +f 504/438/33 501/436/33 505/412/33 +f 502/437/33 506/439/33 507/417/33 +f 508/440/33 504/438/33 509/415/33 +f 510/441/33 508/440/33 511/419/33 +f 506/439/33 512/442/33 513/423/33 +f 474/443/33 510/441/33 514/421/33 +f 515/444/33 474/443/33 516/425/33 +f 512/442/33 517/445/33 518/429/33 +f 519/446/33 515/444/33 520/427/33 +f 521/447/33 519/446/33 522/431/33 +f 517/445/33 521/447/33 523/433/33 +f 524/448/33 525/449/33 526/450/33 +f 527/451/116 528/452/120 529/453/121 +f 530/454/111 527/451/116 531/455/117 +f 526/450/33 525/449/33 532/456/33 +f 528/452/120 533/457/124 534/458/125 +f 535/459/33 525/449/33 524/448/33 +f 532/456/33 525/449/33 536/460/33 +f 533/457/124 537/461/127 538/462/123 +f 539/463/107 530/454/111 540/464/112 +f 536/460/33 525/449/33 541/465/33 +f 537/461/127 542/466/215 543/467/215 +f 544/468/33 525/449/33 535/459/33 +f 541/465/33 525/449/33 545/469/33 +f 546/470/216 547/471/216 548/472/217 +f 549/473/103 539/463/107 550/474/108 +f 545/469/33 525/449/33 551/475/33 +f 552/476/218 553/477/219 554/478/219 +f 555/479/33 525/449/33 544/468/33 +f 551/475/33 525/449/33 556/480/33 +f 546/470/216 557/481/99 558/482/136 +f 559/483/102 549/473/103 560/484/104 +f 556/480/33 525/449/33 561/485/33 +f 557/481/99 559/483/102 562/486/137 +f 561/485/33 525/449/33 555/479/33 +f 563/487/220 548/472/217 554/478/219 +f 474/409/33 515/488/33 475/410/33 +f 543/467/215 542/466/215 564/489/221 +f 565/490/222 566/491/223 552/476/218 +f 476/492/33 475/493/33 567/494/33 +f 476/411/33 510/495/33 474/409/33 +f 568/496/33 569/497/33 570/498/33 +f 571/499/224 572/500/225 573/501/226 +f 574/502/23 575/503/23 576/504/23 +f 570/498/33 569/497/33 577/505/33 +f 572/500/225 578/506/227 579/507/228 +f 575/503/23 580/508/23 576/504/23 +f 577/505/33 569/497/33 581/509/33 +f 578/506/227 582/510/229 583/511/230 +f 580/508/23 584/512/23 576/504/23 +f 581/509/33 569/497/33 585/513/33 +f 586/514/231 587/515/232 588/516/233 +f 584/512/23 589/517/23 576/504/23 +f 585/513/33 569/497/33 590/518/33 +f 587/515/232 591/519/234 592/520/235 +f 589/517/23 593/521/23 576/504/23 +f 590/518/33 569/497/33 594/522/33 +f 591/519/234 595/523/236 596/524/237 +f 597/525/33 598/526/238 599/527/238 +f 593/521/23 600/528/23 576/504/23 +f 594/522/33 569/497/33 601/529/33 +f 599/527/238 598/526/238 602/530/239 +f 595/523/236 603/531/240 604/532/241 +f 600/528/23 605/533/23 576/504/23 +f 606/534/242 607/535/243 608/536/244 +f 609/537/245 606/534/242 610/538/246 +f 601/529/33 569/497/33 568/496/33 +f 603/531/240 571/499/224 611/539/247 +f 605/533/23 574/502/23 576/504/23 +f 612/540/248 613/541/249 614/542/250 +f 615/543/251 616/544/252 612/540/248 +f 617/545/253 618/546/254 619/547/33 +f 620/548/255 621/549/256 622/550/23 +f 623/551/257 624/552/258 625/553/259 +f 607/535/243 626/554/260 627/555/261 +f 628/556/262 629/557/263 630/558/264 +f 620/548/255 631/559/265 621/549/256 +f 632/554/18 633/560/18 634/561/18 +f 635/562/33 636/563/33 637/564/33 +f 175/104/33 638/565/33 639/566/33 +f 640/567/266 641/568/267 642/569/268 +f 630/558/264 629/557/263 643/570/269 +f 644/571/270 645/572/271 646/573/33 +f 647/574/18 648/575/18 649/576/18 +f 650/577/18 649/576/18 648/575/18 +f 651/578/23 652/579/23 653/580/23 +f 654/581/272 655/582/273 642/569/268 +f 656/583/274 657/584/18 658/585/275 +f 619/547/33 618/546/254 659/586/33 +f 660/587/39 661/588/39 662/589/39 +f 645/572/271 663/590/33 646/573/33 +f 664/591/39 665/592/39 666/593/39 +f 662/589/39 661/588/39 664/594/39 +f 667/595/41 668/596/41 669/597/41 +f 668/596/41 670/598/41 671/599/41 +f 672/600/41 673/601/41 671/599/41 +f 674/602/39 675/603/39 676/604/39 +f 677/605/276 678/606/277 679/607/277 +f 680/608/278 617/545/253 681/609/279 +f 628/556/262 682/610/253 683/611/280 +f 684/612/255 623/551/257 685/613/281 +f 686/614/282 687/615/283 688/616/284 +f 688/616/284 687/615/283 689/617/285 +f 688/616/284 689/617/285 690/618/286 +f 688/616/284 690/618/286 691/619/55 +f 692/620/287 693/621/288 694/622/58 +f 695/623/289 696/624/290 697/625/284 +f 698/626/291 699/627/292 700/628/293 +f 701/629/294 693/621/288 702/630/295 +f 703/631/33 704/632/33 702/630/295 +f 704/632/33 705/633/33 702/630/295 +f 706/634/33 702/630/295 705/633/33 +f 693/621/288 703/631/33 702/630/295 +f 703/631/33 693/621/288 692/620/287 +f 707/635/296 708/636/297 709/637/298 +f 710/638/23 711/639/23 712/640/299 +f 713/641/33 714/642/33 715/643/300 +f 716/644/23 717/645/23 718/646/23 +f 716/644/23 719/647/301 720/648/23 +f 710/638/23 712/640/299 721/649/23 +f 721/649/23 722/650/23 723/651/23 +f 723/651/23 724/652/23 725/653/23 +f 726/654/33 727/655/33 728/656/302 +f 729/657/33 730/658/33 731/659/33 +f 732/660/33 729/657/33 733/661/33 +f 714/642/33 732/660/33 734/662/33 +f 713/641/33 715/643/300 735/663/33 +f 711/639/23 736/664/23 719/647/301 +f 720/648/23 717/645/23 716/644/23 +f 717/645/23 725/653/23 718/646/23 +f 719/647/301 736/664/23 720/648/23 +f 712/640/299 722/650/23 721/649/23 +f 722/650/23 724/652/23 723/651/23 +f 724/652/23 718/646/23 725/653/23 +f 737/665/33 735/663/33 728/656/302 +f 730/658/33 727/655/33 726/654/33 +f 727/655/33 737/665/33 728/656/302 +f 730/658/33 726/654/33 731/659/33 +f 729/657/33 731/659/33 733/661/33 +f 732/660/33 733/661/33 734/662/33 +f 715/643/300 728/656/302 735/663/33 +f 738/666/39 675/603/39 674/602/39 +f 739/667/303 740/668/304 741/669/305 +f 742/670/33 743/671/306 740/668/304 +f 744/672/33 742/670/33 745/673/307 +f 746/674/308 744/672/33 747/675/309 +f 701/629/294 747/675/309 745/673/307 +f 748/676/310 707/635/296 749/677/311 +f 750/678/39 664/594/39 666/679/39 +f 751/680/312 752/681/313 613/541/249 +f 753/682/314 702/630/295 706/634/33 +f 754/683/315 753/682/314 706/634/33 +f 619/547/33 681/609/279 617/545/253 +f 755/684/33 756/685/33 757/686/33 +f 758/687/315 759/688/316 760/689/317 +f 616/544/252 761/690/318 762/691/319 +f 659/586/33 763/692/316 706/634/33 +f 663/590/33 706/634/33 174/103/57 +f 764/693/39 674/694/39 765/695/39 +f 766/696/51 767/697/51 768/698/320 +f 769/699/321 770/700/322 771/701/323 +f 772/643/324 773/662/325 774/702/326 +f 775/703/327 776/704/328 777/659/329 +f 778/705/330 774/702/326 773/662/325 +f 779/370/331 780/391/332 781/706/333 +f 781/706/333 782/350/334 783/368/335 +f 784/342/336 785/380/337 786/351/338 +f 787/340/339 788/379/340 785/380/337 +f 789/348/341 788/379/340 787/340/339 +f 784/342/336 787/340/339 785/380/337 +f 790/353/342 791/354/343 792/366/344 +f 793/707/345 794/356/346 790/353/342 +f 795/345/347 796/343/348 797/357/349 +f 798/708/350 795/345/347 799/709/351 +f 800/394/352 798/708/350 801/710/353 +f 802/337/354 800/394/352 803/711/355 +f 804/339/356 802/337/354 805/712/357 +f 806/360/358 807/713/359 808/402/360 +f 809/714/361 801/710/353 799/709/351 +f 810/715/362 803/711/355 801/710/353 +f 811/716/363 805/712/357 803/711/355 +f 812/717/364 813/362/365 805/712/357 +f 814/718/366 799/709/351 815/357/367 +f 816/393/368 817/398/369 798/708/350 +f 818/396/370 819/397/371 820/408/372 +f 783/368/335 779/370/331 781/706/333 +f 820/408/372 789/348/341 787/340/339 +f 821/719/373 790/353/342 792/366/344 +f 821/719/373 793/707/345 790/353/342 +f 801/710/353 798/708/350 799/709/351 +f 803/711/355 800/394/352 801/710/353 +f 805/712/357 802/337/354 803/711/355 +f 813/362/365 804/339/356 805/712/357 +f 822/358/374 806/360/358 808/402/360 +f 814/718/366 809/714/361 799/709/351 +f 809/714/361 810/715/362 801/710/353 +f 810/715/362 811/716/363 803/711/355 +f 811/716/363 812/717/364 805/712/357 +f 823/720/375 814/718/366 815/357/367 +f 824/405/376 825/341/377 784/342/336 +f 817/398/369 826/344/378 795/345/347 +f 820/408/372 827/347/379 789/348/341 +f 781/706/333 784/342/336 782/350/334 +f 790/353/342 794/356/346 828/352/380 +f 813/362/365 829/359/381 804/339/356 +f 812/717/364 830/361/382 813/362/365 +f 831/400/383 822/358/374 808/402/360 +f 832/399/384 804/339/356 822/358/374 +f 833/390/385 831/400/383 808/402/360 +f 831/400/383 832/399/384 822/358/374 +f 832/399/384 834/338/386 804/339/356 +f 643/570/269 707/635/296 835/721/387 +f 836/722/39 837/723/39 665/592/39 +f 625/553/259 838/724/388 685/613/281 +f 839/725/389 838/724/388 840/726/390 +f 841/727/391 842/728/313 614/542/250 +f 843/729/392 625/553/259 624/552/258 +f 844/730/23 845/731/23 846/732/23 +f 847/733/39 848/734/39 849/735/39 +f 850/735/23 851/736/23 852/737/23 +f 853/738/393 854/739/394 855/740/393 +f 856/740/18 857/739/18 858/741/18 +f 859/742/395 860/743/395 861/744/39 +f 738/666/39 664/594/39 661/588/39 +f 842/728/313 862/745/312 614/542/250 +f 863/746/396 864/747/397 616/544/252 +f 616/544/252 615/543/251 865/748/398 +f 612/540/248 614/542/250 866/749/399 +f 614/542/250 613/541/249 867/750/400 +f 868/751/39 869/752/39 870/753/39 +f 871/754/51 841/727/391 872/755/401 +f 873/756/51 842/728/313 841/727/391 +f 874/757/402 875/758/51 876/759/51 +f 872/755/401 877/760/403 878/761/403 +f 865/748/398 863/746/396 616/544/252 +f 879/762/39 868/751/39 880/763/39 +f 616/544/252 762/691/319 881/764/404 +f 700/628/293 882/765/405 883/766/406 +f 884/767/407 885/768/408 886/769/23 +f 883/766/406 886/769/23 887/770/409 +f 888/771/23 889/772/23 890/773/410 +f 891/774/411 890/773/410 892/775/23 +f 890/776/410 887/770/409 888/777/23 +f 882/765/405 886/769/23 883/766/406 +f 882/765/405 893/778/412 886/769/23 +f 893/778/412 884/767/407 886/769/23 +f 885/768/408 894/779/23 886/769/23 +f 886/769/23 888/777/23 887/770/409 +f 888/771/23 895/780/23 889/772/23 +f 889/772/23 896/781/23 890/773/410 +f 890/773/410 896/781/23 892/775/23 +f 897/782/39 898/783/39 899/784/39 +f 900/785/39 901/786/39 898/787/39 +f 902/788/39 903/789/39 897/782/39 +f 898/783/39 904/790/39 899/784/39 +f 898/787/39 905/791/39 900/785/39 +f 906/792/39 904/793/39 898/787/39 +f 905/791/39 898/787/39 869/752/39 +f 907/794/413 908/795/414 909/796/415 +f 910/797/33 907/794/413 911/798/416 +f 406/341/142 405/340/141 912/407/417 +f 913/799/418 472/407/208 461/396/197 +f 914/800/419 915/801/420 472/407/208 +f 914/800/419 913/799/418 916/719/421 +f 431/366/167 916/719/421 913/799/418 +f 917/713/422 467/402/203 466/401/202 +f 918/802/423 426/361/162 424/359/160 +f 918/802/423 425/360/161 917/713/422 +f 917/713/422 466/401/202 468/403/204 +f 417/352/153 919/357/424 920/720/425 +f 407/342/143 470/405/206 921/706/426 +f 410/345/146 463/398/199 922/708/427 +f 412/347/148 462/397/198 473/408/209 +f 456/391/192 921/706/426 469/404/205 +f 456/391/192 435/370/171 921/706/426 +f 415/350/151 921/706/426 433/368/169 +f 445/380/181 407/342/143 416/351/152 +f 444/379/180 405/340/141 445/380/181 +f 444/379/180 413/348/149 405/340/141 +f 405/340/141 407/342/143 445/380/181 +f 419/354/155 418/353/154 431/366/167 +f 421/356/157 923/707/428 418/353/154 +f 410/345/146 924/709/429 422/357/158 +f 410/345/146 922/708/427 924/709/429 +f 922/708/427 459/394/195 925/710/430 +f 459/394/195 402/337/138 926/711/431 +f 402/337/138 404/339/140 927/712/432 +f 917/713/422 425/360/161 467/402/203 +f 925/710/430 928/714/433 924/709/429 +f 926/711/431 929/715/434 925/710/430 +f 927/712/432 930/716/435 926/711/431 +f 427/362/163 931/717/436 927/712/432 +f 924/709/429 932/718/437 919/357/424 +f 463/398/199 458/393/194 922/708/427 +f 462/397/198 461/396/197 473/408/209 +f 435/370/171 433/368/169 921/706/426 +f 413/348/149 473/408/209 405/340/141 +f 418/353/154 916/719/421 431/366/167 +f 923/707/428 916/719/421 418/353/154 +f 922/708/427 925/710/430 924/709/429 +f 459/394/195 926/711/431 925/710/430 +f 402/337/138 927/712/432 926/711/431 +f 404/339/140 427/362/163 927/712/432 +f 425/360/161 423/358/159 467/402/203 +f 928/714/433 932/718/437 924/709/429 +f 929/715/434 928/714/433 925/710/430 +f 930/716/435 929/715/434 926/711/431 +f 931/717/436 930/716/435 927/712/432 +f 932/718/437 920/720/425 919/357/424 +f 406/341/142 470/405/206 407/342/143 +f 409/344/145 463/398/199 410/345/146 +f 412/347/148 473/408/209 413/348/149 +f 407/342/143 921/706/426 415/350/151 +f 421/356/157 418/353/154 417/352/153 +f 424/359/160 427/362/163 404/339/140 +f 426/361/162 931/717/436 427/362/163 +f 423/358/159 465/400/201 467/402/203 +f 404/339/140 464/399/200 423/358/159 +f 465/400/201 455/390/191 467/402/203 +f 464/399/200 465/400/201 423/358/159 +f 403/338/139 464/399/200 404/339/140 +f 834/338/386 802/337/354 804/339/356 +f 825/341/377 787/340/339 784/342/336 +f 826/344/378 796/343/348 795/345/347 +f 827/347/379 933/346/438 789/348/341 +f 784/342/336 934/349/439 782/350/334 +f 784/342/336 786/351/338 934/349/439 +f 790/353/342 828/352/380 791/354/343 +f 794/356/346 935/355/440 828/352/380 +f 796/343/348 791/354/343 828/352/380 +f 829/359/381 822/358/374 804/339/356 +f 822/358/374 829/359/381 806/360/358 +f 830/361/382 829/359/381 813/362/365 +f 936/363/441 792/366/344 791/354/343 +f 937/365/442 938/395/443 792/366/344 +f 939/367/444 933/346/438 827/347/379 +f 940/369/445 783/368/335 782/350/334 +f 940/369/445 779/370/331 783/368/335 +f 941/371/446 942/376/447 943/372/448 +f 944/374/449 945/373/450 946/375/451 +f 942/376/447 941/371/446 944/374/449 +f 782/350/334 934/349/439 947/377/452 +f 789/348/341 948/378/453 788/379/340 +f 786/351/338 785/380/337 948/378/453 +f 789/348/341 933/346/438 949/381/454 +f 939/367/444 950/384/455 949/381/454 +f 789/348/341 949/381/454 948/378/453 +f 951/383/456 952/382/457 950/384/455 +f 947/377/452 940/369/445 782/350/334 +f 947/377/452 948/378/453 953/385/458 +f 954/386/459 944/374/449 941/371/446 +f 955/387/460 941/371/446 940/369/445 +f 949/381/454 950/384/455 954/386/459 +f 953/385/458 948/378/453 949/381/454 +f 954/386/459 950/384/455 952/382/457 +f 956/388/461 945/373/450 954/386/459 +f 957/389/462 780/391/332 779/370/331 +f 833/390/385 808/402/360 780/391/332 +f 958/392/463 800/394/352 802/337/354 +f 816/393/368 798/708/350 800/394/352 +f 959/364/464 791/354/343 796/343/348 +f 938/395/443 937/365/442 819/397/371 +f 940/369/445 943/372/448 779/370/331 +f 947/377/452 953/385/458 940/369/445 +f 934/349/439 786/351/338 947/377/452 +f 948/378/453 947/377/452 786/351/338 +f 948/378/453 785/380/337 788/379/340 +f 950/384/455 939/367/444 951/383/456 +f 952/382/457 956/388/461 954/386/459 +f 945/373/450 944/374/449 954/386/459 +f 827/347/379 819/397/371 937/365/442 +f 951/383/456 939/367/444 827/347/379 +f 951/383/456 827/347/379 959/364/464 +f 826/344/378 956/388/461 952/382/457 +f 826/344/378 945/373/450 956/388/461 +f 946/375/451 945/373/450 826/344/378 +f 942/376/447 946/375/451 817/398/369 +f 957/389/462 943/372/448 942/376/447 +f 833/390/385 942/376/447 816/393/368 +f 958/392/463 832/399/384 831/400/383 +f 958/392/463 834/338/386 832/399/384 +f 936/363/441 959/364/464 937/365/442 +f 959/364/464 827/347/379 937/365/442 +f 952/382/457 951/383/456 959/364/464 +f 959/364/464 826/344/378 952/382/457 +f 817/398/369 946/375/451 826/344/378 +f 816/393/368 942/376/447 817/398/369 +f 833/390/385 957/389/462 942/376/447 +f 831/400/383 833/390/385 816/393/368 +f 816/393/368 958/392/463 831/400/383 +f 960/401/465 961/404/466 780/391/332 +f 962/403/467 963/406/468 961/404/466 +f 824/405/376 781/706/333 961/404/466 +f 964/407/469 818/396/370 820/408/372 +f 825/341/377 965/801/470 966/407/471 +f 967/799/472 938/395/443 818/396/370 +f 968/800/473 967/799/472 964/407/469 +f 968/800/473 793/707/345 821/719/373 +f 792/366/344 938/395/443 967/799/472 +f 808/402/360 807/713/359 960/401/465 +f 969/802/474 806/360/358 829/359/381 +f 969/802/474 970/803/475 807/713/359 +f 807/713/359 970/803/475 962/403/467 +f 828/352/380 935/355/440 823/720/375 +f 824/405/376 784/342/336 781/706/333 +f 817/398/369 795/345/347 798/708/350 +f 819/397/371 827/347/379 820/408/372 +f 781/706/333 780/391/332 961/404/466 +f 971/661/476 777/659/329 776/704/328 +f 972/804/477 708/636/297 707/635/296 +f 646/573/33 663/590/33 973/805/33 +f 643/570/269 629/557/263 683/611/280 +f 835/721/387 707/635/296 748/676/310 +f 974/806/33 973/805/33 181/110/59 +f 835/721/387 630/558/264 643/570/269 +f 760/689/317 975/807/478 976/808/314 +f 977/809/254 978/810/479 759/688/316 +f 975/807/478 979/811/480 980/812/295 +f 628/556/262 630/558/264 977/809/254 +f 978/810/479 760/689/317 759/688/316 +f 979/811/480 981/813/481 982/814/294 +f 981/813/481 983/815/482 984/816/483 +f 984/816/483 983/815/482 770/700/322 +f 771/701/323 770/700/322 983/815/482 +f 985/817/484 984/816/483 770/700/322 +f 682/610/253 628/556/262 977/809/254 +f 986/818/485 987/819/486 988/820/487 +f 989/821/23 652/579/23 990/822/23 +f 676/604/39 880/763/39 991/823/39 +f 989/821/23 653/580/23 652/579/23 +f 651/578/23 992/824/23 652/579/23 +f 993/825/488 994/826/489 995/827/490 +f 664/594/39 738/666/39 764/828/39 +f 996/829/491 997/830/492 998/831/493 +f 999/832/23 1000/833/23 997/834/492 +f 1001/835/33 1002/606/33 1003/836/33 +f 752/681/313 867/750/400 613/541/249 +f 1004/607/33 1002/606/33 1001/835/33 +f 1005/837/33 757/686/33 756/685/33 +f 1006/838/39 1007/839/39 1008/840/39 +f 1009/840/33 1010/839/33 1011/841/33 +f 1012/842/494 1013/843/494 1014/844/494 +f 1015/838/495 1016/845/496 1017/846/495 +f 1018/847/497 1019/848/498 1020/849/499 +f 1021/850/500 1020/849/499 1019/848/498 +f 1022/851/501 656/583/274 1023/852/502 +f 1024/853/18 1025/854/18 1026/855/18 +f 1020/849/499 1027/856/503 1018/847/497 +f 837/723/39 666/593/39 665/592/39 +f 1028/857/504 1029/858/33 1030/576/271 +f 636/563/33 1031/859/33 637/564/33 +f 1032/860/395 1033/861/39 1034/862/39 +f 1035/863/33 1031/859/33 179/108/33 +f 1036/864/33 179/108/33 1037/865/505 +f 1038/866/33 1037/865/505 1039/867/56 +f 1040/868/33 1039/867/56 691/619/55 +f 1041/869/506 1042/870/507 1043/871/508 +f 638/565/33 636/563/33 1044/872/33 +f 637/564/33 1031/859/33 1045/873/33 +f 1045/873/33 1031/859/33 1035/863/33 +f 1036/864/33 1035/863/33 179/108/33 +f 1038/866/33 1036/864/33 1037/865/505 +f 1037/865/505 179/108/33 178/107/33 +f 1040/868/33 1038/866/33 1039/867/56 +f 1046/874/509 1040/868/33 691/619/55 +f 1046/874/509 691/619/55 690/618/286 +f 177/106/58 176/105/33 1047/875/33 +f 686/614/282 177/106/58 1047/875/33 +f 1048/876/33 636/563/33 638/565/33 +f 639/566/33 638/565/33 1044/872/33 +f 1044/872/33 636/563/33 635/562/33 +f 1049/877/510 1050/878/511 987/819/486 +f 1051/879/41 186/115/41 185/114/41 +f 184/113/41 183/112/41 186/115/41 +f 1052/880/51 766/696/51 867/750/400 +f 1053/881/512 768/698/320 767/697/51 +f 768/698/320 1053/881/512 1054/882/403 +f 1055/883/513 761/690/318 616/544/252 +f 745/673/307 740/668/304 1056/884/514 +f 693/621/288 1057/885/515 694/622/58 +f 1058/886/516 1059/887/517 739/667/303 +f 1060/888/518 1061/889/58 1062/890/519 +f 740/668/304 739/667/303 1059/887/517 +f 745/673/307 1057/885/515 693/621/288 +f 974/806/33 181/110/59 1029/858/33 +f 612/540/248 881/764/404 613/541/249 +f 864/747/397 1055/883/513 616/544/252 +f 1063/891/33 1064/892/33 1065/893/33 +f 763/692/316 754/683/315 706/634/33 +f 706/634/33 695/623/289 174/103/57 +f 973/805/33 663/590/33 181/110/59 +f 181/110/59 1030/576/271 1029/858/33 +f 174/103/57 181/110/59 663/590/33 +f 630/558/264 978/810/479 977/809/254 +f 1066/894/41 1051/895/41 185/896/41 +f 187/116/41 186/115/41 183/112/41 +f 676/604/39 675/603/39 880/763/39 +f 1067/897/520 1068/898/39 1069/899/39 +f 1070/900/521 645/572/271 644/571/270 +f 1028/857/504 1030/576/271 1071/577/521 +f 1072/901/51 1073/902/51 1074/903/51 +f 1075/904/51 1072/901/51 1076/905/51 +f 1074/903/51 1077/906/51 1076/905/51 +f 1072/901/51 1074/903/51 1076/905/51 +f 1075/904/51 1078/907/51 1072/901/51 +f 1079/908/39 1080/909/522 1081/910/523 +f 1082/911/33 1083/912/33 1084/913/524 +f 1085/914/41 1086/915/41 1087/916/41 +f 1088/917/51 1089/918/51 1090/919/51 +f 1091/920/41 1092/921/41 1087/916/41 +f 1084/913/524 1081/910/523 1080/909/522 +f 1093/922/525 1094/923/33 1095/924/33 +f 1093/922/525 1096/925/525 1097/926/526 +f 1098/927/527 1099/928/528 1100/929/529 +f 1101/930/51 1102/931/51 1103/932/51 +f 1103/932/51 1102/931/51 1076/905/51 +f 1104/933/23 1105/929/23 1106/928/23 +f 1107/934/39 1108/935/530 1109/936/531 +f 1110/937/23 1111/938/532 1112/939/533 +f 1113/940/41 1114/941/41 1115/942/41 +f 1092/921/41 1091/920/41 1116/943/41 +f 1116/943/41 1117/944/41 1115/942/41 +f 1112/939/533 1111/938/532 1118/945/534 +f 1119/946/535 1120/947/535 1121/948/23 +f 1109/936/531 1108/935/530 1122/949/527 +f 1090/919/51 1078/907/51 1075/904/51 +f 1123/950/33 1124/951/33 1125/927/33 +f 1119/946/535 1126/952/536 1127/953/536 +f 1128/954/537 1097/926/526 1127/953/536 +f 1073/902/51 1129/955/51 1074/903/51 +f 1130/956/33 94/32/33 96/34/33 +f 1131/17/34 97/35/34 99/23/34 +f 1132/12/23 100/36/23 102/38/23 +f 1133/957/35 103/39/35 105/40/37 +f 1134/958/33 1135/959/33 1130/956/33 +f 1136/960/538 105/40/37 1137/961/539 +f 96/34/33 1134/958/33 1130/956/33 +f 1135/959/33 1138/962/33 1130/956/33 +f 1131/17/34 99/23/34 1139/18/34 +f 102/38/23 1140/13/23 1132/12/23 +f 105/40/37 104/31/36 1137/961/539 +f 1141/37/540 1142/36/540 1143/28/540 +f 1144/963/541 177/106/58 686/614/282 +f 883/766/406 1145/964/542 698/626/291 +f 883/766/406 698/626/291 700/628/293 +f 699/627/292 1043/871/508 700/628/293 +f 705/633/33 696/624/290 695/623/289 +f 1146/965/543 1147/966/544 1148/967/545 +f 1149/968/546 1150/969/547 1151/970/548 +f 1152/971/549 1153/972/550 1154/973/551 +f 1153/972/550 1155/974/552 1154/973/551 +f 1042/870/507 700/628/293 1043/871/508 +f 1151/970/548 1150/969/547 1156/975/39 +f 1157/976/23 1158/977/553 1159/978/23 +f 1160/979/552 1145/964/542 883/766/406 +f 1152/971/549 1161/980/23 1153/972/550 +f 1162/981/554 1163/982/292 1164/983/555 +f 1165/984/18 1166/985/18 1167/986/556 +f 1168/987/557 1152/971/549 1169/988/558 +f 1161/980/23 1170/989/23 1153/972/550 +f 714/642/33 734/662/33 715/643/300 +f 711/639/23 719/647/301 712/640/299 +f 1171/990/18 1172/991/18 1173/992/559 +f 1174/993/560 1175/994/561 1176/995/41 +f 1175/996/561 1174/997/560 1177/998/39 +f 1178/999/51 1179/1000/51 1180/1001/562 +f 1181/1002/494 1182/1003/494 1183/1004/494 +f 1184/1005/563 655/582/273 654/581/272 +f 1182/1003/494 1185/1006/494 1183/1004/494 +f 1186/1007/494 1181/1002/494 1187/1008/494 +f 618/546/254 763/692/316 659/586/33 +f 1188/1009/41 1189/1010/41 1190/1011/41 +f 1191/1012/41 1192/1013/41 1189/1010/41 +f 993/825/488 1193/1014/564 994/826/489 +f 701/629/294 745/673/307 693/621/288 +f 747/675/309 744/672/33 745/673/307 +f 1182/1003/494 1012/842/494 1014/844/494 +f 1194/1015/494 1014/844/494 1013/843/494 +f 742/670/33 740/668/304 745/673/307 +f 1187/1008/494 1181/1002/494 1183/1004/494 +f 743/671/306 741/669/305 740/668/304 +f 675/603/39 879/762/39 880/763/39 +f 1050/878/511 988/820/487 987/819/486 +f 908/795/414 1195/1016/565 998/831/493 +f 1196/1017/566 993/825/488 995/827/490 +f 1176/995/41 1197/1018/559 1173/992/559 +f 1178/999/51 1198/1019/567 1199/1020/568 +f 1180/1001/562 1200/1021/39 1177/1022/39 +f 1201/1023/18 1199/1020/568 1198/1019/567 +f 1202/1024/277 1203/1025/569 1204/1026/277 +f 677/605/276 679/607/277 1204/1026/277 +f 1205/1027/41 1206/1028/41 1207/1029/41 +f 1208/1030/41 1209/1031/41 1207/1029/41 +f 1210/1032/41 1211/1033/41 1209/1031/41 +f 1212/1034/39 662/589/39 664/594/39 +f 888/771/23 1213/1035/411 895/780/23 +f 900/785/39 1214/1036/39 901/786/39 +f 1215/1037/258 622/550/23 894/779/23 +f 1216/1038/274 1217/1039/502 1218/1040/570 +f 1219/1041/51 1220/822/51 1221/1042/51 +f 1222/1043/33 1223/1044/33 1224/1045/33 +f 1225/774/18 1226/1046/18 1227/1047/18 +f 1228/1048/18 1229/773/18 1225/774/18 +f 1213/1035/411 1230/1049/571 895/780/23 +f 1231/1050/572 1232/1051/572 1233/1052/573 +f 1234/1053/574 658/585/275 1218/1040/570 +f 1235/1054/23 1236/1055/23 1237/1056/23 +f 1238/1057/33 1239/1058/33 1240/1059/33 +f 1241/1060/575 1242/1061/575 1243/981/576 +f 1167/986/556 1244/1062/577 1245/1063/578 +f 1246/1064/23 1247/1065/23 1248/1066/23 +f 1249/1067/18 1250/1068/18 1251/1069/18 +f 1252/1070/579 1253/1071/580 1254/1068/581 +f 1255/1072/582 1256/1073/583 1257/1074/584 +f 1258/1075/585 1257/1074/584 1253/1071/580 +f 1259/1076/586 1260/1077/587 1261/1078/587 +f 1262/1079/23 1263/1080/23 1259/1076/586 +f 1264/1081/41 1265/1082/41 1266/1083/41 +f 1267/1084/41 1268/1085/41 1269/1086/41 +f 1244/1062/577 1270/968/588 1271/1087/588 +f 890/776/410 1272/1088/589 1273/1089/590 +f 1274/1090/23 1275/1091/23 1276/1092/23 +f 1277/1093/575 1278/1094/575 1279/1095/591 +f 1236/1055/23 1235/1054/23 1158/977/553 +f 1158/977/553 1168/987/557 1159/978/23 +f 1280/1096/592 883/766/406 887/770/409 +f 1281/1097/571 1282/1098/593 1283/1046/593 +f 1284/1099/593 1285/1100/593 1230/1049/571 +f 1256/1073/583 1255/1072/582 1286/1101/39 +f 1051/895/41 1066/894/41 1287/1102/41 +f 1288/1103/41 1266/1083/41 1267/1084/41 +f 1289/1104/41 1287/1102/41 1264/1105/41 +f 1290/1106/594 1291/1107/594 1292/1108/594 +f 1280/1096/592 1160/979/552 883/766/406 +f 695/623/289 706/634/33 705/633/33 +f 1293/1109/291 1148/967/545 1147/966/544 +f 1294/1108/18 1295/1107/18 1296/1110/18 +f 1152/971/549 1154/973/551 1169/988/558 +f 1297/1111/595 1298/1106/596 1299/1112/596 +f 1233/1052/573 1297/1111/595 1300/1113/597 +f 1301/1114/18 1232/1051/572 1231/1050/572 +f 1302/893/598 1303/1115/598 1304/1116/598 +f 1305/892/599 1306/1117/599 1307/1115/599 +f 1308/1118/23 1309/1119/23 1310/1115/23 +f 1311/1120/600 1312/1121/600 1313/1117/600 +f 1314/1122/601 1061/889/58 1060/888/518 +f 1315/1123/602 1316/1124/603 700/628/293 +f 1317/1125/604 1318/1126/605 1319/1127/606 +f 1320/1128/607 1321/1129/608 1322/1130/602 +f 1323/1131/609 1324/1132/610 1325/1133/611 +f 1315/1123/602 700/628/293 1042/870/507 +f 1316/1124/603 1315/1123/602 1318/1126/605 +f 1326/1134/605 1327/1135/514 1328/1136/612 +f 1327/1135/514 1326/1134/605 1322/1130/602 +f 1321/1129/608 1329/1137/613 1062/890/519 +f 1330/1138/516 1331/1139/614 1332/1140/615 +f 1267/1084/41 1269/1086/41 1288/1103/41 +f 1288/1103/41 1289/1141/41 1264/1081/41 +f 1333/1142/39 676/604/39 991/823/39 +f 1246/1064/23 1334/1143/23 1247/1065/23 +f 1235/1054/23 1237/1056/23 1334/1143/23 +f 1246/1064/23 1335/1144/23 1235/1054/23 +f 1144/963/541 686/614/282 688/616/284 +f 688/616/284 1239/1058/33 1238/1057/33 +f 1155/974/552 1336/1145/592 1337/1146/616 +f 1159/978/23 1168/987/557 1169/988/558 +f 1338/1147/617 1154/973/551 1155/974/552 +f 1336/1145/592 1339/1148/618 1337/1146/616 +f 1340/1149/23 1339/1148/618 1336/1145/592 +f 1341/1150/23 1340/1149/23 1342/1151/590 +f 1274/1090/23 1343/1152/589 1275/1091/23 +f 1344/1153/23 1341/1150/23 1343/1152/589 +f 1345/1154/23 1344/1153/23 1274/1090/23 +f 1346/1155/23 1347/1156/23 1345/1154/23 +f 1346/1155/23 1248/1066/23 1347/1156/23 +f 1246/1064/23 1235/1054/23 1334/1143/23 +f 1163/982/292 1293/1109/291 1348/1157/619 +f 1342/1151/590 1340/1149/23 1336/1145/592 +f 1343/1152/589 1341/1150/23 1342/1151/590 +f 1274/1090/23 1344/1153/23 1343/1152/589 +f 1346/1155/23 1345/1154/23 1274/1090/23 +f 1349/1158/620 1350/1159/621 1351/1160/622 +f 1346/1155/23 1246/1064/23 1248/1066/23 +f 892/775/23 1281/1097/571 891/774/411 +f 899/784/39 902/788/39 897/782/39 +f 1352/1161/623 1353/1162/624 1354/1163/625 +f 1018/847/497 1027/856/503 1352/1161/623 +f 1355/1164/501 1356/1165/626 1217/1039/502 +f 1356/1165/626 1355/1164/501 1357/1166/627 +f 1357/1166/627 1354/1163/625 1353/1162/624 +f 1358/1167/628 1359/1168/629 1360/1169/630 +f 1359/1168/629 1361/1170/631 1362/1171/632 +f 1363/1172/633 1358/1167/628 1364/1173/634 +f 1361/1170/631 1365/1174/635 1366/1175/636 +f 1367/1176/637 1363/1172/633 1368/1177/638 +f 1365/1174/635 1369/1178/639 1370/1179/640 +f 1371/1180/641 1367/1176/637 1372/1181/642 +f 1369/1178/639 1373/1182/643 1374/1183/644 +f 1375/1184/645 1371/1180/641 1376/1185/646 +f 1373/1182/643 1234/1053/574 1377/1186/647 +f 1350/1159/621 1375/1184/645 1378/1187/648 +f 1379/1043/41 1380/579/41 1381/1188/649 +f 1382/1189/33 1223/1044/33 1222/1043/33 +f 1224/1045/33 1383/1190/33 1222/1043/33 +f 1384/1042/18 1385/822/18 1386/579/18 +f 1383/1190/33 1387/1191/33 1388/1042/33 +f 657/584/18 1389/1192/18 1218/1040/570 +f 620/548/255 622/550/23 1215/1037/258 +f 1390/1193/650 1391/1194/651 1392/1195/652 +f 1392/1195/652 1393/1196/653 1394/1197/654 +f 1394/1197/654 1390/1193/650 1392/1195/652 +f 1395/1198/655 1396/1199/656 1390/1193/650 +f 1397/1200/657 1398/1201/405 1396/1199/656 +f 1399/1202/658 843/729/392 1400/1203/408 +f 625/553/259 685/613/281 623/551/257 +f 1401/1204/659 1402/1205/412 1398/1201/405 +f 843/729/392 624/552/258 1400/1203/408 +f 1399/1202/658 1403/1206/407 1402/1205/412 +f 625/553/259 840/726/390 838/724/388 +f 749/677/311 839/725/389 748/676/310 +f 839/725/389 840/726/390 748/676/310 +f 838/724/388 1404/1207/660 1405/1208/265 +f 749/677/311 709/637/298 1406/1209/661 +f 1404/1207/660 838/724/388 839/725/389 +f 1407/652/662 1408/1210/663 1409/1211/664 +f 1408/1210/663 1407/652/662 1410/650/665 +f 1411/1212/666 1412/644/667 1413/646/668 +f 1410/650/665 1414/640/669 1415/1213/670 +f 1392/1195/652 1416/1214/671 1393/1196/653 +f 771/701/323 983/815/482 1394/1197/654 +f 983/815/482 981/813/481 1395/1198/655 +f 979/811/480 975/807/478 1401/1204/659 +f 1395/1198/655 981/813/481 979/811/480 +f 975/807/478 760/689/317 1399/1202/658 +f 1400/1203/408 1403/1206/407 1399/1202/658 +f 1417/1215/23 1418/1216/23 844/730/23 +f 684/612/255 624/552/258 623/551/257 +f 835/721/387 748/676/310 840/726/390 +f 1399/1202/658 760/689/317 978/810/479 +f 835/721/387 840/726/390 625/553/259 +f 843/729/392 978/810/479 630/558/264 +f 1419/1217/656 882/765/405 700/628/293 +f 1420/1218/672 1419/1217/656 1316/1124/603 +f 1421/1219/23 1422/1220/673 1420/1218/672 +f 1423/1221/23 1421/1219/23 1316/1124/603 +f 1424/1222/674 1423/1221/23 1317/1125/604 +f 1317/1125/604 1325/1133/611 1324/1132/610 +f 905/791/39 869/752/39 868/751/39 +f 1316/1124/603 1419/1217/656 700/628/293 +f 1421/1219/23 1420/1218/672 1316/1124/603 +f 1317/1125/604 1423/1221/23 1316/1124/603 +f 1324/1132/610 1424/1222/674 1317/1125/604 +f 885/768/408 1215/1037/258 894/779/23 +f 1425/1223/494 1426/1224/494 1427/1225/494 +f 1428/1226/494 1429/1227/494 1430/1228/494 +f 1428/1226/494 1430/1228/494 1427/1225/494 +f 1426/1224/494 1428/1226/494 1427/1225/494 +f 1426/1224/494 1425/1223/494 1431/1229/494 +f 1431/1229/494 1432/1230/494 1433/1231/494 +f 1194/1015/494 1013/843/494 1433/1231/494 +f 1434/1232/675 1435/1233/676 1436/1234/677 +f 1436/1234/677 1437/1235/678 1438/1236/679 +f 1439/1237/680 1440/1238/681 1441/1239/682 +f 1442/1240/683 1440/1238/681 1439/1237/680 +f 1184/1005/563 1443/1241/684 1435/1233/676 +f 1181/1002/494 1186/1007/494 1429/1227/494 +f 1433/1231/494 1444/1242/494 1431/1229/494 +f 750/1243/39 666/593/39 899/784/39 +f 1445/1244/41 1446/1245/41 1447/1246/41 +f 1448/1024/23 1449/1026/23 1450/1247/23 +f 1451/835/39 1452/1247/39 1453/1026/39 +f 1450/1248/23 1454/1249/23 1455/1250/23 +f 1456/1251/22 70/12/22 72/14/22 +f 1457/1251/23 73/14/23 75/16/23 +f 87/27/31 76/17/24 78/19/26 +f 1458/1252/28 79/20/27 81/22/28 +f 1459/9/29 82/21/29 84/24/29 +f 78/19/26 85/25/30 87/27/31 +f 1460/1253/23 88/28/23 90/30/23 +f 1461/39/32 91/25/32 93/31/32 +f 144/79/50 135/70/42 137/72/44 +f 114/49/38 138/73/45 117/52/40 +f 139/74/45 138/73/45 141/76/47 +f 141/76/47 140/75/46 143/78/49 +f 143/78/49 142/77/48 136/71/43 +f 1462/3/51 146/7/51 148/82/51 +f 1463/1254/51 149/83/51 151/85/51 +f 1464/88/39 152/86/39 154/54/39 +f 1465/1255/23 155/87/23 157/88/23 +f 1466/92/23 158/89/23 160/91/23 +f 1467/69/51 161/92/51 163/61/51 +f 311/246/90 169/98/52 171/100/54 +f 695/623/289 172/101/55 174/103/57 +f 638/565/33 175/104/33 177/106/58 +f 1468/574/505 181/110/59 173/102/56 +f 1469/1256/41 185/114/41 187/116/41 +f 312/247/41 188/117/41 190/119/41 +f 313/248/89 191/120/60 193/122/62 +f 314/249/51 194/123/51 196/125/51 +f 171/100/54 170/99/53 198/127/64 +f 190/119/41 189/118/41 200/1257/41 +f 193/122/62 192/121/61 202/132/66 +f 196/125/51 195/124/51 204/134/51 +f 198/127/64 197/126/63 206/136/68 +f 200/1257/41 199/137/41 208/139/41 +f 202/132/66 201/131/65 210/141/70 +f 204/134/51 203/133/51 212/143/51 +f 206/1258/68 205/1259/67 214/1260/72 +f 208/139/41 207/138/41 216/147/41 +f 210/1261/70 209/1262/69 218/1263/74 +f 212/143/51 211/142/51 220/152/51 +f 1470/1264/95 221/1265/75 223/1266/77 +f 216/147/41 215/146/41 225/157/41 +f 1471/1267/94 226/158/78 228/160/80 +f 220/152/51 219/151/51 230/162/51 +f 223/1266/77 222/163/76 232/165/82 +f 225/157/41 224/156/41 234/167/41 +f 228/160/80 227/159/79 236/169/84 +f 230/162/51 229/161/51 238/171/51 +f 232/165/82 231/164/81 240/173/86 +f 234/167/41 233/166/41 242/175/41 +f 236/169/84 235/168/83 244/177/88 +f 238/171/51 237/170/51 246/179/51 +f 240/173/86 239/172/85 248/1268/89 +f 242/175/41 241/174/41 250/184/41 +f 244/177/88 243/176/87 252/186/90 +f 246/179/51 245/178/51 254/188/51 +f 248/1268/89 247/1269/60 256/1270/62 +f 250/184/41 249/183/41 258/192/41 +f 252/186/90 251/185/52 260/194/54 +f 254/188/51 253/187/51 262/196/51 +f 256/1270/62 255/1271/91 264/1272/66 +f 258/192/41 257/191/41 266/200/41 +f 260/194/54 259/193/53 268/202/64 +f 262/196/51 261/195/51 270/204/51 +f 264/1272/66 263/1273/65 272/1274/70 +f 266/200/41 265/199/41 274/208/41 +f 268/202/64 267/201/63 276/210/93 +f 270/204/51 269/203/51 278/212/51 +f 272/206/70 271/205/69 280/214/94 +f 274/208/41 273/207/41 282/216/41 +f 276/210/93 275/209/92 284/218/95 +f 278/212/51 277/211/51 286/220/51 +f 280/214/94 279/213/73 288/222/97 +f 282/216/41 281/215/41 290/224/41 +f 284/1275/95 283/225/71 292/227/77 +f 286/220/51 285/219/51 294/229/51 +f 288/222/97 287/221/96 296/231/84 +f 290/224/41 289/223/41 298/233/41 +f 292/227/77 291/226/76 300/235/82 +f 294/229/51 293/228/51 302/237/51 +f 296/231/84 295/230/83 304/239/88 +f 298/233/41 297/232/41 306/241/41 +f 300/235/82 299/234/81 308/243/98 +f 302/237/51 301/236/51 310/245/51 +f 304/239/88 303/238/87 311/246/90 +f 306/241/41 305/240/41 312/247/41 +f 308/243/98 307/242/85 313/248/89 +f 310/245/51 309/244/51 314/249/51 +f 338/273/23 315/250/23 317/252/23 +f 317/252/23 316/251/23 319/254/23 +f 319/254/23 318/253/23 321/256/23 +f 321/256/23 320/255/23 323/258/23 +f 323/258/23 322/257/23 325/260/23 +f 325/260/23 324/259/23 327/262/23 +f 327/262/23 326/261/23 329/264/23 +f 329/264/23 328/263/23 331/266/23 +f 331/266/23 330/265/23 333/268/23 +f 333/268/23 332/267/23 335/270/23 +f 335/270/23 334/269/23 337/272/23 +f 337/272/23 336/271/23 338/273/23 +f 349/284/106 339/274/99 341/276/101 +f 401/336/137 342/277/102 344/279/104 +f 354/289/110 348/283/105 349/284/106 +f 344/279/104 343/278/103 351/286/108 +f 1472/1276/214 353/288/109 354/289/110 +f 351/286/108 350/285/107 356/291/112 +f 365/300/119 358/293/113 360/295/115 +f 356/291/112 355/290/111 362/297/117 +f 370/305/123 364/299/118 365/300/119 +f 362/297/117 361/296/116 367/302/121 +f 375/310/126 369/304/122 370/305/123 +f 367/302/121 366/301/120 372/307/125 +f 380/315/129 374/309/120 375/310/126 +f 372/307/125 371/306/124 377/312/123 +f 385/320/117 379/314/128 380/315/129 +f 377/312/123 376/311/127 382/317/130 +f 390/325/132 384/319/131 385/320/117 +f 382/317/130 381/316/113 387/322/115 +f 396/331/135 389/324/107 390/325/132 +f 1473/1277/214 391/326/109 393/328/110 +f 400/335/104 395/330/134 396/331/135 +f 393/328/110 392/327/133 398/333/136 +f 341/276/101 340/275/100 400/335/104 +f 398/333/136 397/332/99 401/336/137 +f 419/354/155 408/343/144 417/352/153 +f 431/366/167 428/363/164 419/354/155 +f 460/395/196 430/365/166 431/366/167 +f 441/376/177 436/371/172 437/372/173 +f 436/371/172 441/376/177 439/374/175 +f 449/384/185 432/367/168 446/381/182 +f 439/374/175 451/386/187 436/371/172 +f 436/371/172 452/387/188 434/369/170 +f 449/384/185 446/381/182 451/386/187 +f 443/378/179 450/385/186 446/381/182 +f 456/391/192 454/389/190 435/370/171 +f 467/402/203 455/390/191 456/391/192 +f 459/394/195 457/392/193 402/337/138 +f 922/708/427 458/393/194 459/394/195 +f 419/354/155 429/364/165 408/343/144 +f 430/365/166 460/395/196 462/397/198 +f 469/404/205 466/401/202 456/391/192 +f 471/406/207 468/403/204 469/404/205 +f 921/706/426 470/405/206 469/404/205 +f 461/396/197 472/407/208 473/408/209 +f 481/416/120 477/412/121 479/414/210 +f 485/420/124 480/415/125 481/416/120 +f 479/414/210 478/413/117 483/418/111 +f 487/422/212 484/419/123 485/420/124 +f 491/426/113 486/421/211 487/422/212 +f 483/418/111 482/417/112 489/424/107 +f 493/428/114 490/425/214 491/426/113 +f 497/432/133 492/427/110 493/428/114 +f 489/424/107 488/423/213 495/430/103 +f 499/434/99 496/431/136 497/432/133 +f 500/435/102 498/433/137 499/434/99 +f 495/430/103 494/429/104 500/435/102 +f 505/412/33 501/436/33 503/413/33 +f 509/415/33 504/438/33 505/412/33 +f 503/413/33 502/437/33 507/417/33 +f 511/419/33 508/440/33 509/415/33 +f 514/421/33 510/441/33 511/419/33 +f 507/417/33 506/439/33 513/423/33 +f 516/425/33 474/443/33 514/421/33 +f 520/427/33 515/444/33 516/425/33 +f 513/423/33 512/442/33 518/429/33 +f 522/431/33 519/446/33 520/427/33 +f 523/433/33 521/447/33 522/431/33 +f 518/429/33 517/445/33 523/433/33 +f 531/455/117 527/451/116 529/453/121 +f 540/464/112 530/454/111 531/455/117 +f 529/453/121 528/452/120 534/458/125 +f 534/458/125 533/457/124 538/462/123 +f 550/474/108 539/463/107 540/464/112 +f 538/462/123 537/461/127 543/467/215 +f 563/487/220 546/470/216 548/472/217 +f 560/484/104 549/473/103 550/474/108 +f 1474/1278/218 552/476/218 554/478/219 +f 547/471/216 546/470/216 558/482/136 +f 562/486/137 559/483/102 560/484/104 +f 558/482/136 557/481/99 562/486/137 +f 553/477/219 563/487/220 554/478/219 +f 1475/1279/222 543/467/215 564/489/221 +f 1474/1278/218 565/490/222 552/476/218 +f 1476/1280/33 476/492/33 567/494/33 +f 611/539/247 571/499/224 573/501/226 +f 573/501/226 572/500/225 579/507/228 +f 579/507/228 578/506/227 583/511/230 +f 1477/1281/685 586/514/231 588/516/233 +f 588/516/233 587/515/232 592/520/235 +f 592/520/235 591/519/234 596/524/237 +f 1478/1282/33 597/525/33 599/527/238 +f 1479/1283/239 599/527/238 602/530/239 +f 596/524/237 595/523/236 604/532/241 +f 610/538/246 606/534/242 608/536/244 +f 1067/897/520 609/537/245 610/538/246 +f 604/532/241 603/531/240 611/539/247 +f 866/749/399 615/543/251 612/540/248 +f 608/536/244 607/535/243 627/555/261 +f 1480/555/18 632/554/18 634/561/18 +f 1442/1240/683 640/567/266 642/569/268 +f 1481/110/18 647/574/18 649/576/18 +f 641/568/267 654/581/272 642/569/268 +f 1023/852/502 656/583/274 658/585/275 +f 1482/1284/41 667/595/41 669/597/41 +f 669/597/41 668/596/41 671/599/41 +f 670/598/41 672/600/41 671/599/41 +f 629/557/263 628/556/262 683/611/280 +f 1405/1208/265 684/612/255 685/613/281 +f 1483/1285/541 692/620/287 694/622/58 +f 172/101/55 695/623/289 697/625/284 +f 749/677/311 707/635/296 709/637/298 +f 764/828/39 738/666/39 674/602/39 +f 1484/1286/33 755/684/33 757/686/33 +f 867/750/400 766/696/51 768/698/320 +f 1485/654/686 775/703/327 777/659/329 +f 971/661/476 778/705/330 773/662/325 +f 799/709/351 795/345/347 797/357/349 +f 1486/1287/39 847/733/39 849/735/39 +f 1487/1287/23 850/735/23 852/737/23 +f 1488/1288/687 853/738/393 855/740/393 +f 1489/1289/18 856/740/18 858/741/18 +f 1490/1290/39 859/742/395 861/744/39 +f 841/727/391 614/542/250 867/750/400 +f 876/759/51 871/754/51 872/755/401 +f 871/754/51 873/756/51 841/727/391 +f 872/755/401 874/757/402 876/759/51 +f 874/757/402 872/755/401 878/761/403 +f 612/540/248 616/544/252 881/764/404 +f 901/786/39 906/792/39 898/787/39 +f 911/798/416 907/794/413 909/796/415 +f 1491/1291/33 910/797/33 911/798/416 +f 1492/801/688 406/341/142 912/407/417 +f 460/395/196 913/799/418 461/396/197 +f 913/799/418 914/800/419 472/407/208 +f 923/707/428 914/800/419 916/719/421 +f 460/395/196 431/366/167 913/799/418 +f 425/360/161 918/802/423 424/359/160 +f 1493/803/689 918/802/423 917/713/422 +f 1493/803/689 917/713/422 468/403/204 +f 420/355/156 417/352/153 920/720/425 +f 408/343/144 410/345/146 422/357/158 +f 797/357/349 796/343/348 828/352/380 +f 959/364/464 936/363/441 791/354/343 +f 936/363/441 937/365/442 792/366/344 +f 940/369/445 941/371/446 943/372/448 +f 946/375/451 942/376/447 944/374/449 +f 933/346/438 939/367/444 949/381/454 +f 955/387/460 954/386/459 941/371/446 +f 953/385/458 955/387/460 940/369/445 +f 955/387/460 949/381/454 954/386/459 +f 955/387/460 953/385/458 949/381/454 +f 943/372/448 957/389/462 779/370/331 +f 957/389/462 833/390/385 780/391/332 +f 834/338/386 958/392/463 802/337/354 +f 958/392/463 816/393/368 800/394/352 +f 826/344/378 959/364/464 796/343/348 +f 818/396/370 938/395/443 819/397/371 +f 808/402/360 960/401/465 780/391/332 +f 960/401/465 962/403/467 961/404/466 +f 963/406/468 824/405/376 961/404/466 +f 787/340/339 964/407/469 820/408/372 +f 787/340/339 825/341/377 966/407/471 +f 964/407/469 967/799/472 818/396/370 +f 1494/801/690 968/800/473 964/407/469 +f 967/799/472 968/800/473 821/719/373 +f 821/719/373 792/366/344 967/799/472 +f 830/361/382 969/802/474 829/359/381 +f 806/360/358 969/802/474 807/713/359 +f 960/401/465 807/713/359 962/403/467 +f 815/357/367 828/352/380 823/720/375 +f 778/705/330 971/661/476 776/704/328 +f 643/570/269 972/804/477 707/635/296 +f 972/804/477 643/570/269 683/611/280 +f 758/687/315 760/689/317 976/808/314 +f 976/808/314 975/807/478 980/812/295 +f 980/812/295 979/811/480 982/814/294 +f 982/814/294 981/813/481 984/816/483 +f 1495/1292/23 989/821/23 990/822/23 +f 1195/1016/565 996/829/491 998/831/493 +f 996/829/491 999/1293/23 997/830/492 +f 1496/1294/33 1001/1295/33 1003/1296/33 +f 1497/845/39 1006/838/39 1008/840/39 +f 1498/1297/33 1009/840/33 1011/841/33 +f 1499/1298/691 1015/838/495 1017/846/495 +f 1022/851/501 1021/850/500 1019/848/498 +f 1021/850/500 1022/851/501 1023/852/502 +f 1500/1299/18 1024/853/18 1026/855/18 +f 1501/1300/395 1032/860/395 1034/862/39 +f 752/681/313 1052/880/51 867/750/400 +f 1502/1301/51 1053/881/512 767/697/51 +f 1503/1302/403 768/698/320 1054/882/403 +f 1057/885/515 745/673/307 1056/884/514 +f 741/669/305 1058/886/516 739/667/303 +f 1329/1137/613 1060/888/518 1062/890/519 +f 1056/884/514 740/668/304 1059/887/517 +f 1504/1303/33 1063/891/33 1065/893/33 +f 609/537/245 1067/897/520 1069/899/39 +f 1505/1304/521 1070/900/521 644/571/270 +f 1506/1305/521 1028/857/504 1071/577/521 +f 1122/949/527 1079/908/39 1081/910/523 +f 1507/1306/692 1082/911/33 1084/913/524 +f 1508/1307/41 1085/914/41 1087/916/41 +f 1509/1308/51 1088/917/51 1090/919/51 +f 1086/915/41 1091/920/41 1087/916/41 +f 1507/1306/692 1084/913/524 1080/909/522 +f 1096/925/525 1093/922/525 1095/924/33 +f 1128/954/537 1093/922/525 1097/926/526 +f 1510/950/529 1098/927/527 1100/929/529 +f 1511/1309/51 1101/930/51 1103/932/51 +f 1077/906/51 1103/932/51 1076/905/51 +f 1118/945/534 1107/934/39 1109/936/531 +f 1512/1310/23 1110/937/23 1112/939/533 +f 1117/944/41 1113/940/41 1115/942/41 +f 1513/1311/41 1092/921/41 1116/943/41 +f 1513/1311/41 1116/943/41 1115/942/41 +f 1109/936/531 1112/939/533 1118/945/534 +f 1514/1312/23 1119/946/535 1121/948/23 +f 1081/910/523 1109/936/531 1122/949/527 +f 1509/1308/51 1090/919/51 1075/904/51 +f 1120/947/535 1119/946/535 1127/953/536 +f 1126/952/536 1128/954/537 1127/953/536 +f 1515/1253/540 1141/37/540 1143/28/540 +f 1516/1087/693 1149/968/546 1151/970/548 +f 1517/1313/694 1162/981/554 1164/983/555 +f 1518/1314/695 1165/984/18 1167/986/556 +f 1197/1018/559 1171/990/18 1173/992/559 +f 1519/1315/41 1174/993/560 1176/995/41 +f 1200/1316/39 1175/996/561 1177/998/39 +f 1520/1317/562 1178/999/51 1180/1001/562 +f 1443/1241/684 1184/1005/563 654/581/272 +f 1521/1318/41 1188/1009/41 1190/1011/41 +f 1188/1009/41 1191/1012/41 1189/1010/41 +f 1185/1006/494 1182/1003/494 1014/844/494 +f 909/796/415 908/795/414 998/831/493 +f 1519/1315/41 1176/995/41 1173/992/559 +f 1179/1000/51 1178/999/51 1199/1020/568 +f 1520/1317/562 1180/1001/562 1177/1022/39 +f 1522/1319/18 1201/1320/18 1198/1321/567 +f 1203/1025/569 677/605/276 1204/1026/277 +f 1523/1322/41 1205/1027/41 1207/1029/41 +f 1206/1028/41 1208/1030/41 1207/1029/41 +f 1208/1030/41 1210/1032/41 1209/1031/41 +f 750/678/39 1212/1034/39 664/594/39 +f 1389/1192/18 1216/1038/274 1218/1040/570 +f 1524/1323/51 1219/1041/51 1221/1042/51 +f 1227/1047/18 1228/1048/18 1225/774/18 +f 1525/1324/573 1231/1050/572 1233/1052/573 +f 1377/1186/647 1234/1053/574 1218/1040/570 +f 1526/1325/33 1238/1057/33 1240/1059/33 +f 1517/1313/694 1527/1060/696 1162/981/554 +f 1518/1314/695 1167/986/556 1245/1063/578 +f 1528/1326/18 1249/1067/18 1251/1069/18 +f 1529/1067/697 1252/1070/579 1254/1068/581 +f 1258/1075/585 1255/1072/582 1257/1074/584 +f 1252/1070/579 1258/1075/585 1253/1071/580 +f 1530/1327/586 1259/1076/586 1261/1078/587 +f 1530/1327/586 1262/1079/23 1259/1076/586 +f 1288/1103/41 1264/1081/41 1266/1083/41 +f 1245/1063/578 1244/1062/577 1271/1087/588 +f 887/770/409 890/776/410 1273/1089/590 +f 1157/976/23 1236/1055/23 1158/977/553 +f 1273/1089/590 1280/1096/592 887/770/409 +f 891/774/411 1281/1097/571 1283/1046/593 +f 1213/1035/411 1284/1099/593 1230/1049/571 +f 1531/1328/39 1256/1073/583 1286/1101/39 +f 1289/1104/41 1051/895/41 1287/1102/41 +f 1532/1112/594 1290/1106/594 1292/1108/594 +f 1348/1157/619 1293/1109/291 1147/966/544 +f 1533/1329/18 1294/1108/18 1296/1110/18 +f 1300/1113/597 1297/1111/595 1299/1112/596 +f 1525/1324/573 1233/1052/573 1300/1113/597 +f 1534/1330/18 1301/1114/18 1231/1050/572 +f 1535/1331/598 1302/893/598 1304/1116/598 +f 1536/893/599 1305/892/599 1307/1115/599 +f 1537/1117/23 1308/1118/23 1310/1115/23 +f 1538/892/600 1311/1120/600 1313/1117/600 +f 1320/1128/607 1314/1122/601 1060/888/518 +f 1325/1133/611 1317/1125/604 1319/1127/606 +f 1314/1122/601 1320/1128/607 1322/1130/602 +f 1319/1127/606 1323/1131/609 1325/1133/611 +f 1317/1125/604 1316/1124/603 1318/1126/605 +f 1332/1140/615 1326/1134/605 1328/1136/612 +f 1062/890/519 1327/1135/514 1322/1130/602 +f 1322/1130/602 1321/1129/608 1062/890/519 +f 1328/1136/612 1330/1138/516 1332/1140/615 +f 1144/963/541 688/616/284 1238/1057/33 +f 1337/1146/616 1338/1147/617 1155/974/552 +f 1164/983/555 1163/982/292 1348/1157/619 +f 1539/1332/698 1349/1158/620 1351/1160/622 +f 1354/1163/625 1018/847/497 1352/1161/623 +f 1216/1038/274 1355/1164/501 1217/1039/502 +f 1353/1162/624 1356/1165/626 1357/1166/627 +f 1364/1173/634 1358/1167/628 1360/1169/630 +f 1360/1169/630 1359/1168/629 1362/1171/632 +f 1368/1177/638 1363/1172/633 1364/1173/634 +f 1362/1171/632 1361/1170/631 1366/1175/636 +f 1372/1181/642 1367/1176/637 1368/1177/638 +f 1366/1175/636 1365/1174/635 1370/1179/640 +f 1376/1185/646 1371/1180/641 1372/1181/642 +f 1370/1179/640 1369/1178/639 1374/1183/644 +f 1378/1187/648 1375/1184/645 1376/1185/646 +f 1374/1183/644 1373/1182/643 1377/1186/647 +f 1351/1160/622 1350/1159/621 1378/1187/648 +f 1540/1333/625 1379/1043/41 1381/1188/649 +f 1541/1043/18 1384/1042/18 1386/579/18 +f 1222/1043/33 1383/1190/33 1388/1042/33 +f 658/585/275 657/584/18 1218/1040/570 +f 1394/1197/654 1395/1198/655 1390/1193/650 +f 1395/1198/655 1397/1200/657 1396/1199/656 +f 1397/1200/657 1401/1204/659 1398/1201/405 +f 1401/1204/659 1399/1202/658 1402/1205/412 +f 685/613/281 838/724/388 1405/1208/265 +f 839/725/389 749/677/311 1406/1209/661 +f 1406/1209/661 1404/1207/660 839/725/389 +f 1413/646/668 1407/652/662 1409/1211/664 +f 1415/1213/670 1408/1210/663 1410/650/665 +f 1409/1211/664 1411/1212/666 1413/646/668 +f 1393/1196/653 771/701/323 1394/1197/654 +f 1394/1197/654 983/815/482 1395/1198/655 +f 1397/1200/657 979/811/480 1401/1204/659 +f 1397/1200/657 1395/1198/655 979/811/480 +f 1401/1204/659 975/807/478 1399/1202/658 +f 846/732/23 1417/1215/23 844/730/23 +f 843/729/392 1399/1202/658 978/810/479 +f 630/558/264 835/721/387 625/553/259 +f 625/553/259 843/729/392 630/558/264 +f 879/762/39 905/791/39 868/751/39 +f 1444/1242/494 1426/1224/494 1431/1229/494 +f 1432/1230/494 1194/1015/494 1433/1231/494 +f 1542/1334/699 1434/1232/675 1436/1234/677 +f 1542/1334/699 1436/1234/677 1438/1236/679 +f 1543/1335/678 1439/1237/680 1441/1239/682 +f 640/567/266 1442/1240/683 1439/1237/680 +f 1434/1232/675 1184/1005/563 1435/1233/676 +f 1428/1226/494 1181/1002/494 1429/1227/494 +f 904/790/39 750/1243/39 899/784/39 +f 1544/1336/41 1445/1244/41 1447/1246/41 +f 1545/607/39 1451/835/39 1453/1026/39 +f 1448/1024/23 1450/1247/23 1455/1337/23 +f 61/3/18 63/5/18 1546/1338/18 +f 61/3/18 66/8/18 65/7/18 +f 66/8/18 61/3/18 1546/1338/18 +f 144/79/50 64/6/19 66/8/18 +o mag_pistol_0 +v -1.109136 1.854146 1.546994 +v -1.109136 6.483851 2.313159 +v -1.109136 1.746315 1.309461 +v 1.109136 6.483851 2.313159 +v 1.109136 6.193875 2.563060 +v 1.109136 1.854146 1.546994 +v 1.109136 1.746315 1.309461 +v -1.109136 6.193875 2.563060 +v -1.109136 7.455005 0.432839 +v -0.855096 7.454038 0.681170 +v -0.637953 7.455005 0.432839 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.645065 7.456246 0.114418 +v -0.808240 7.456246 0.114418 +v -0.882817 -7.449296 -6.242331 +v -1.332151 -7.578506 -5.806304 +v -1.109136 -7.583717 -5.788713 +v -1.260158 -8.694220 -2.041335 +v -1.109136 -8.686133 -2.068619 +v -0.818644 -8.777006 -1.761972 +v -0.549908 -9.201518 -0.329462 +v 0.549908 -9.201518 -0.329462 +v 0.855096 7.454038 0.681170 +v 1.109136 7.455005 0.432839 +v 0.637953 7.455005 0.432839 +v 0.645065 7.456246 0.114418 +v 0.808240 7.456246 0.114418 +v -0.413784 6.208827 -0.016872 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.851242 7.447666 2.316916 +v -0.791829 -7.487275 -6.114170 +v 0.791829 -7.487275 -6.114170 +v 0.882817 -7.449296 -6.242331 +v 1.109136 -7.583717 -5.788713 +v 1.332151 -7.578506 -5.806304 +v 1.109136 -8.686133 -2.068619 +v -0.527911 -9.865828 -0.558221 +v 0.527911 -9.865828 -0.558221 +v 0.549908 -9.201518 -0.329462 +v 0.527911 -9.865828 -0.558221 +v -0.527911 -9.865828 -0.558221 +v -1.263812 -9.320386 -2.284039 +v -0.889556 -7.991921 -6.487401 +v 0.889556 -7.991921 -6.487401 +v 1.326758 -8.130615 -6.048564 +v 1.263812 -9.320386 -2.284039 +v -1.326758 -8.130615 -6.048564 +v 1.260158 -8.694220 -2.041335 +v 0.818644 -8.777006 -1.761972 +v -0.440888 6.323021 -0.358271 +v 1.109136 7.447666 2.316916 +v -0.549908 -9.201518 -0.329462 +v -0.330292 5.643600 3.823889 +v 0.330292 5.643600 3.823889 +v -0.639183 4.693711 3.350439 +v -0.784649 4.758710 3.184808 +v -0.823423 6.188931 3.832170 +v -0.613250 5.916150 3.869261 +v 0.639183 4.693711 3.350439 +v 0.613250 5.916150 3.869261 +v -0.791829 -7.487275 -6.114170 +v -0.440888 6.323021 -0.358271 +v 0.791829 -7.487275 -6.114170 +v 1.109136 6.187973 4.078713 +v 1.109136 1.608211 2.157616 +v 1.109136 7.455005 0.432839 +v 1.109136 -7.583717 -5.788713 +v 1.109136 1.421237 1.150594 +v 1.109136 1.152737 1.225781 +v 0.613250 6.186937 4.344059 +v 0.613250 5.905007 4.230341 +v 0.807799 6.186931 4.345726 +v -0.367306 5.610397 4.110494 +v -0.804550 1.432484 2.382775 +v 0.367306 5.610397 4.110494 +v -0.613250 6.186937 4.344059 +v -0.807799 6.186931 4.345726 +v -0.613250 5.905007 4.230341 +v -0.818644 -8.777006 -1.761972 +v 0.818644 -8.777006 -1.761972 +v -0.775337 0.764493 2.107609 +v -1.109136 1.608211 2.157616 +v -1.109136 7.455005 0.432839 +v -1.109136 1.421237 1.150594 +v -1.109136 -7.583717 -5.788713 +v -1.109136 1.152737 1.225781 +v -0.629678 6.747400 -0.181056 +v 0.440888 6.323021 -0.358271 +v 0.629678 6.747400 -0.181056 +v -0.784480 5.973367 0.123958 +v -0.784649 4.758710 3.184808 +v 0.784480 5.973367 0.123958 +v 1.109136 7.447666 2.316916 +v 1.109136 -8.686133 -2.068619 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v -1.109136 0.828570 1.868721 +v -1.109136 -8.686133 -2.068619 +v -1.109136 6.187973 4.078713 +v -0.613250 6.189570 3.985306 +v -1.109136 6.193875 2.563060 +v -1.109136 6.187973 4.078713 +v -0.823423 6.188931 3.832170 +v -0.808240 7.456246 0.114418 +v -1.109136 7.447666 2.316916 +v -1.109136 6.483851 2.313159 +v -0.839998 6.483851 2.313159 +v -0.855295 6.193875 2.563060 +v -0.855096 7.454038 0.681170 +v -0.851242 7.447666 2.316916 +v -0.839998 6.483851 2.313159 +v -0.613250 5.916150 3.869261 +v -0.613250 5.905007 4.230341 +v -0.367306 5.610397 4.110494 +v -0.613250 6.189570 3.985306 +v -0.613250 6.186937 4.344059 +v -0.804550 1.432484 2.382775 +v -0.804550 1.432484 2.382775 +v -0.836434 1.761413 1.534160 +v -0.864811 1.209287 1.297543 +v -0.866598 1.383340 1.228519 +v -1.109136 1.608211 2.157616 +v -1.109136 1.854146 1.546994 +v -0.836434 1.761413 1.534160 +v -1.109136 1.746315 1.309461 +v -0.853872 1.693580 1.365606 +v -1.109136 1.421237 1.150594 +v -0.866598 1.383340 1.228519 +v -1.109136 1.152737 1.225781 +v -0.864811 1.209287 1.297543 +v -1.109136 0.828570 1.868721 +v -0.775337 0.764493 2.107609 +v -0.818644 -8.777006 -1.761972 +v -1.326758 -8.130615 -6.048564 +v -1.332151 -7.578506 -5.806304 +v -0.882817 -7.449296 -6.242331 +v -1.263812 -9.320386 -2.284039 +v -1.260158 -8.694220 -2.041335 +v -0.527911 -9.865828 -0.558221 +v -0.549908 -9.201518 -0.329462 +v -0.855295 6.193875 2.563060 +v -0.637953 7.455005 0.432839 +v -0.610240 6.670014 0.107511 +v -0.586664 6.044359 -0.058251 +v -0.413784 6.208827 -0.016872 +v -0.629678 6.747400 -0.181056 +v -0.645065 7.456246 0.114418 +v -0.610240 6.670014 0.107511 +v -0.784480 5.973367 0.123958 +v -0.637953 7.455005 0.432839 +v -0.413784 6.208827 -0.016872 +v -0.440888 6.323021 -0.358271 +v -0.807799 6.186931 4.345726 +v -0.613250 6.189570 3.985306 +v 0.586664 6.044359 -0.058251 +v 0.889556 -7.991921 -6.487401 +v -0.889556 -7.991921 -6.487401 +v 0.784480 5.973367 0.123958 +v 0.855096 7.454038 0.681170 +v 0.610240 6.670014 0.107511 +v 0.637953 7.455005 0.432839 +v 0.645065 7.456246 0.114418 +v 0.610240 6.670014 0.107511 +v 1.109136 6.187973 4.078713 +v 1.109136 6.193875 2.563060 +v 0.823423 6.188931 3.832170 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313159 +v 0.855295 6.193875 2.563060 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.413784 6.208827 -0.016872 +v 0.629678 6.747400 -0.181056 +v 0.807799 6.186931 4.345726 +v 0.613250 6.189570 3.985306 +v 0.784649 4.758710 3.184808 +v 0.586664 6.044359 -0.058251 +v 0.613250 6.186937 4.344059 +v 0.613250 6.189570 3.985306 +v 0.823423 6.188931 3.832170 +v 0.808240 7.456246 0.114418 +v 1.109136 7.447666 2.316916 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313159 +v 1.109136 6.483851 2.313159 +v 0.855295 6.193875 2.563060 +v -0.330292 5.643600 3.823889 +v 0.367306 5.610397 4.110494 +v 0.613250 5.916150 3.869261 +v 0.330292 5.643600 3.823889 +v 0.613250 5.905007 4.230341 +v 0.613250 6.186937 4.344059 +v 0.807799 6.186931 4.345726 +v 0.804550 1.432484 2.382775 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v 0.864811 1.209287 1.297543 +v 0.866598 1.383340 1.228519 +v 0.853872 1.693580 1.365606 +v 0.836434 1.761413 1.534160 +v 1.109136 1.608211 2.157616 +v 0.804550 1.432484 2.382775 +v 0.836434 1.761413 1.534160 +v 1.109136 1.854146 1.546994 +v 0.853872 1.693580 1.365606 +v 1.109136 1.746315 1.309461 +v 0.866598 1.383340 1.228519 +v 1.109136 1.421237 1.150594 +v 0.864811 1.209287 1.297543 +v 1.109136 1.152737 1.225781 +v 0.775337 0.764493 2.107609 +v 1.109136 0.828570 1.868721 +v 0.775337 0.764493 2.107609 +v 0.818644 -8.777006 -1.761972 +v -0.613250 6.186937 4.344059 +v 1.326758 -8.130615 -6.048564 +v 0.882817 -7.449296 -6.242331 +v 1.332151 -7.578506 -5.806304 +v 1.260158 -8.694220 -2.041335 +v 1.263812 -9.320386 -2.284039 +v 0.549908 -9.201518 -0.329462 +v 0.637953 7.455005 0.432839 +v 0.610240 6.670014 0.107511 +v 0.586664 6.044359 -0.058251 +v -0.586664 6.044359 -0.058251 +v -0.639183 4.693711 3.350439 +v 0.639183 4.693711 3.350439 +v 0.784649 4.758710 3.184808 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.807799 6.186931 4.345726 +v -0.775337 0.764493 2.107609 +v -0.853872 1.693580 1.365606 +v -0.804550 1.432484 2.382775 +v -0.775337 0.764493 2.107609 +v 0.613250 6.189570 3.985306 +v 1.109136 0.828570 1.868721 +v 0.527911 -9.865828 -0.558221 +v 0.645065 7.456246 0.114418 +v -0.645065 7.456246 0.114418 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 0.0039 +vn -0.0000 0.9588 0.2841 +vn -0.0000 0.9484 0.3172 +vn -0.0000 -0.3256 0.9455 +vn -0.0000 -0.9535 -0.3014 +vn 0.1103 0.4144 -0.9034 +vn -0.0735 0.4256 -0.9019 +vn 0.3275 0.3966 -0.8576 +vn 0.9708 0.1320 -0.2001 +vn 0.7758 0.2586 -0.5755 +vn 0.4477 0.3447 -0.8251 +vn -0.3560 0.3788 -0.8543 +vn -0.5482 0.3301 -0.7685 +vn -0.1944 0.3772 -0.9055 +vn -0.0010 0.3847 -0.9230 +vn 0.1540 0.3797 -0.9122 +vn 0.8357 -0.2111 0.5070 +vn 0.9636 -0.1035 0.2467 +vn 0.9886 0.0575 -0.1389 +vn 0.9535 0.1154 -0.2784 +vn -0.0080 -0.3741 0.9274 +vn 0.0012 -0.3791 0.9254 +vn 0.2219 -0.3696 0.9023 +vn -0.0036 -0.3819 0.9242 +vn -0.1726 -0.3764 0.9102 +vn 0.0022 -0.3819 0.9242 +vn 0.0080 -0.3741 0.9274 +vn -0.2219 -0.3696 0.9023 +vn -0.0011 -0.3791 0.9254 +vn -0.4729 -0.3319 0.8162 +vn 0.3572 -0.3516 0.8653 +vn -0.1539 -0.3721 0.9154 +vn -0.9636 -0.1035 0.2467 +vn -0.9886 0.0575 -0.1389 +vn -0.9535 0.1154 -0.2784 +vn 0.0010 0.3847 -0.9230 +vn -0.0000 0.9310 0.3651 +vn -0.0000 0.9300 0.3676 +vn -0.0000 0.9302 0.3669 +vn 0.9710 -0.0914 0.2209 +vn 0.2322 -0.3719 0.8988 +vn 0.1539 -0.3734 0.9148 +vn -0.8442 -0.2022 0.4964 +vn -0.9710 -0.0914 0.2209 +vn -0.8357 -0.2111 0.5070 +vn 0.5563 0.3246 -0.7649 +vn 0.0001 0.9608 0.2772 +vn -0.0015 1.0000 0.0040 +vn -0.0014 1.0000 0.0023 +vn -0.5115 0.3297 -0.7935 +vn -0.0000 -0.0039 1.0000 +vn 0.0001 0.4597 0.8881 +vn -0.0000 0.2278 0.9737 +vn -0.0000 0.8351 0.5501 +vn 0.9387 -0.0984 0.3305 +vn 0.9999 0.0117 -0.0023 +vn 0.9998 0.0092 0.0149 +vn 0.9323 0.3580 0.0512 +vn 0.9411 0.3379 0.0104 +vn 0.5309 0.8401 0.1116 +vn -0.9980 -0.0211 0.0598 +vn -0.9970 0.0146 0.0763 +vn -0.9979 -0.0076 0.0647 +vn -0.9959 0.0068 0.0899 +vn -0.2927 -0.8910 -0.3470 +vn -0.3083 -0.9391 0.1520 +vn -0.3077 -0.9451 -0.1103 +vn -0.3087 -0.5872 0.7483 +vn -0.2906 -0.7546 0.5883 +vn -0.3189 0.0702 0.9452 +vn -0.3014 -0.1559 0.9407 +vn -0.2877 0.6969 0.6569 +vn -0.3131 0.5002 0.8073 +vn -0.1491 0.8829 0.4452 +vn -0.2405 0.8515 0.4659 +vn -0.9295 0.1497 -0.3372 +vn -0.9281 0.1420 -0.3443 +vn -0.3883 0.3779 -0.8405 +vn -0.9660 -0.0947 0.2406 +vn -0.9906 -0.0493 0.1279 +vn -0.9257 -0.1502 0.3472 +vn -0.9273 -0.1397 0.3472 +vn 0.9997 0.0240 0.0100 +vn 0.9368 -0.1053 0.3338 +vn 0.8731 -0.0619 0.4836 +vn 0.2534 -0.2345 0.9385 +vn 0.0038 -0.2478 0.9688 +vn 0.9613 0.2751 0.0139 +vn 0.9983 0.0446 -0.0387 +vn 0.8731 -0.0618 0.4836 +vn 0.9557 -0.0568 0.2888 +vn 0.9367 -0.1053 0.3338 +vn 0.9220 0.3843 0.0481 +vn 0.9207 0.3862 0.0561 +vn -0.0011 1.0000 0.0067 +vn -0.0020 1.0000 0.0042 +vn -0.1880 -0.2385 0.9528 +vn 0.2591 0.4017 -0.8784 +vn -0.3925 0.3826 -0.8364 +vn -0.9557 -0.0568 0.2888 +vn -0.9387 -0.0984 0.3305 +vn -0.8731 -0.0618 0.4836 +vn -0.9367 -0.1053 0.3338 +vn -0.9983 0.0446 -0.0387 +vn 0.0015 1.0000 0.0040 +vn -0.0000 0.9608 0.2772 +vn 0.0014 1.0000 0.0023 +vn -0.9999 0.0117 -0.0023 +vn -0.9998 0.0092 0.0149 +vn -0.9997 0.0240 0.0100 +vn -0.0056 -0.2495 0.9684 +vn -0.9207 0.3862 0.0561 +vn -0.9220 0.3843 0.0482 +vn -0.9613 0.2751 0.0139 +vn 0.0011 1.0000 0.0067 +vn 0.0020 1.0000 0.0042 +vn -0.9140 0.1852 -0.3611 +vn -0.0000 1.0000 0.0073 +vn -0.5563 0.3246 -0.7649 +vn -0.7857 0.2615 -0.5606 +vn 0.5115 0.3297 -0.7935 +vn -0.0000 0.4597 0.8881 +vn 0.2491 0.9578 0.1431 +vn -0.4021 0.9083 0.1151 +vn -0.9323 0.3580 0.0512 +vn -0.3771 0.9132 0.1545 +vn -0.9411 0.3379 0.0104 +vn 0.9980 -0.0211 0.0598 +vn 0.9949 -0.0724 0.0701 +vn 0.9979 -0.0076 0.0647 +vn 0.9959 0.0068 0.0899 +vn 0.9944 -0.0057 0.1052 +vn 0.9970 0.0146 0.0763 +vn 0.2927 -0.8910 -0.3470 +vn 0.2692 -0.9013 -0.3393 +vn 0.3091 -0.9446 -0.1104 +vn 0.3083 -0.9391 0.1520 +vn 0.2906 -0.7546 0.5883 +vn 0.3087 -0.5872 0.7483 +vn 0.3014 -0.1559 0.9407 +vn 0.3189 0.0702 0.9452 +vn 0.3131 0.5002 0.8073 +vn 0.2877 0.6969 0.6569 +vn 0.2405 0.8515 0.4659 +vn 0.8442 -0.2022 0.4964 +vn 0.1539 -0.3733 0.9148 +vn 0.9294 0.1498 -0.3372 +vn 0.5126 0.3515 -0.7834 +vn 0.9281 0.1420 -0.3443 +vn 0.9906 -0.0493 0.1279 +vn 0.9660 -0.0947 0.2406 +vn 0.9273 -0.1397 0.3472 +vn -0.9368 -0.1053 0.3338 +vn -0.8731 -0.0619 0.4836 +vn -0.0000 0.9318 0.3630 +vn -0.0000 0.9309 0.3653 +vn -0.0000 0.9302 0.3671 +vn -0.9949 -0.0724 0.0701 +vn -0.9944 -0.0057 0.1052 +vn -0.2692 -0.9013 -0.3393 +vn -0.1539 -0.3720 0.9154 +vn 0.1491 0.8829 0.4452 +vn 0.9257 -0.1502 0.3472 +vn -0.0000 0.3847 -0.9230 +vt 0.318637 0.836460 +vt 0.322686 0.835525 +vt 0.318469 0.836302 +vt 0.322662 0.829447 +vt 0.322506 0.829146 +vt 0.318606 0.828545 +vt 0.318439 0.828704 +vt 0.322533 0.835828 +vt 0.335540 0.815841 +vt 0.335689 0.816068 +vt 0.335880 0.815923 +vt 0.335363 0.817407 +vt 0.335570 0.817415 +vt 0.335928 0.815727 +vt 0.335827 0.815658 +vt 0.338110 0.834998 +vt 0.338521 0.834581 +vt 0.338361 0.834565 +vt 0.338450 0.830987 +vt 0.338327 0.831013 +vt 0.338045 0.830721 +vt 0.337797 0.829353 +vt 0.336791 0.829355 +vt 0.338509 0.816056 +vt 0.338639 0.815806 +vt 0.338293 0.815922 +vt 0.338229 0.815719 +vt 0.338328 0.815642 +vt 0.336756 0.815704 +vt 0.337372 0.815710 +vt 0.337407 0.815436 +vt 0.338796 0.817419 +vt 0.338027 0.834876 +vt 0.336577 0.834878 +vt 0.336494 0.835000 +vt 0.336242 0.834568 +vt 0.336082 0.834585 +vt 0.336266 0.831016 +vt 0.351326 0.453820 +vt 0.352262 0.453765 +vt 0.352318 0.454386 +vt 0.365837 0.453882 +vt 0.365836 0.454819 +vt 0.367442 0.455473 +vt 0.371353 0.455145 +vt 0.371355 0.453566 +vt 0.370947 0.453178 +vt 0.367444 0.453230 +vt 0.370945 0.455532 +vt 0.336143 0.830990 +vt 0.336546 0.830723 +vt 0.336722 0.815432 +vt 0.339004 0.817387 +vt 0.351343 0.454443 +vt 0.336608 0.810165 +vt 0.336600 0.809579 +vt 0.335671 0.810452 +vt 0.335670 0.810656 +vt 0.337063 0.810641 +vt 0.336849 0.810420 +vt 0.335654 0.809318 +vt 0.336833 0.809316 +vt 0.308406 0.833228 +vt 0.321347 0.832873 +vt 0.308400 0.831858 +vt 0.323003 0.827899 +vt 0.318606 0.827962 +vt 0.322837 0.831313 +vt 0.308428 0.831448 +vt 0.318119 0.828727 +vt 0.317924 0.828577 +vt 0.334726 0.805815 +vt 0.334724 0.806084 +vt 0.334898 0.805815 +vt 0.333853 0.806363 +vt 0.333448 0.810373 +vt 0.334505 0.806366 +vt 0.333637 0.805810 +vt 0.333465 0.805809 +vt 0.333636 0.806080 +vt 0.333393 0.820149 +vt 0.334845 0.820155 +vt 0.333471 0.811014 +vt 0.318642 0.837043 +vt 0.322847 0.833658 +vt 0.318149 0.836281 +vt 0.308437 0.833638 +vt 0.317955 0.836433 +vt 0.321830 0.833071 +vt 0.321344 0.832110 +vt 0.321826 0.831909 +vt 0.338990 0.829527 +vt 0.338986 0.832448 +vt 0.340382 0.829528 +vt 0.323455 0.829763 +vt 0.308753 0.828027 +vt 0.334875 0.810379 +vt 0.334847 0.811020 +vt 0.317906 0.837069 +vt 0.308789 0.837056 +vt 0.323039 0.837070 +vt 0.337112 0.810416 +vt 0.335399 0.818676 +vt 0.335644 0.820232 +vt 0.335864 0.819933 +vt 0.322740 0.833285 +vt 0.335368 0.818297 +vt 0.335604 0.818285 +vt 0.335628 0.818648 +vt 0.336965 0.813654 +vt 0.337545 0.812323 +vt 0.336761 0.811981 +vt 0.336450 0.819974 +vt 0.336387 0.820399 +vt 0.336865 0.820333 +vt 0.336109 0.820051 +vt 0.336132 0.820332 +vt 0.318573 0.837406 +vt 0.297273 0.862936 +vt 0.296468 0.862987 +vt 0.296450 0.863484 +vt 0.296375 0.863361 +vt 0.296982 0.862655 +vt 0.296349 0.862774 +vt 0.296171 0.863007 +vt 0.296386 0.863086 +vt 0.296139 0.863393 +vt 0.296301 0.863656 +vt 0.296981 0.863857 +vt 0.297271 0.863612 +vt 0.308818 0.837437 +vt 0.360171 0.453244 +vt 0.360165 0.453779 +vt 0.359601 0.453718 +vt 0.363650 0.453662 +vt 0.363616 0.454257 +vt 0.365371 0.453864 +vt 0.365306 0.454484 +vt 0.336615 0.811674 +vt 0.336865 0.813929 +vt 0.336111 0.813900 +vt 0.335542 0.813822 +vt 0.335664 0.813999 +vt 0.336339 0.815514 +vt 0.336384 0.815738 +vt 0.335562 0.813576 +vt 0.335975 0.820462 +vt 0.335363 0.814848 +vt 0.358032 0.453178 +vt 0.359611 0.453190 +vt 0.335454 0.806199 +vt 0.336854 0.806081 +vt 0.335993 0.805859 +vt 0.337754 0.815749 +vt 0.338970 0.820225 +vt 0.339108 0.818663 +vt 0.338736 0.819939 +vt 0.337473 0.807394 +vt 0.336699 0.807758 +vt 0.336562 0.808069 +vt 0.335538 0.814723 +vt 0.337796 0.815517 +vt 0.338647 0.820469 +vt 0.338501 0.820063 +vt 0.335647 0.809115 +vt 0.335427 0.805954 +vt 0.338482 0.820342 +vt 0.337096 0.809313 +vt 0.337040 0.809089 +vt 0.322734 0.831687 +vt 0.338866 0.818294 +vt 0.339103 0.818281 +vt 0.338879 0.818655 +vt 0.336917 0.819991 +vt 0.337747 0.820341 +vt 0.338164 0.819987 +vt 0.337700 0.819998 +vt 0.338225 0.820410 +vt 0.323089 0.827553 +vt 0.318534 0.827599 +vt 0.299359 0.862966 +vt 0.299357 0.863640 +vt 0.300188 0.863503 +vt 0.300265 0.863381 +vt 0.300257 0.863103 +vt 0.300174 0.863004 +vt 0.299646 0.862698 +vt 0.300297 0.862779 +vt 0.300477 0.863024 +vt 0.300502 0.863417 +vt 0.300332 0.863678 +vt 0.317870 0.827942 +vt 0.317895 0.827574 +vt 0.308779 0.827646 +vt 0.357471 0.453223 +vt 0.358034 0.453706 +vt 0.357469 0.453758 +vt 0.354011 0.454184 +vt 0.353986 0.453589 +vt 0.336746 0.805809 +vt 0.335925 0.814967 +vt 0.340207 0.829355 +vt 0.339165 0.829353 +vt 0.339115 0.832606 +vt 0.340249 0.832608 +vt 0.340379 0.832450 +vt 0.323476 0.835203 +vt 0.323128 0.837416 +vt 0.317935 0.837436 +vt 0.299652 0.863857 +vt 0.322736 0.831880 +vt 0.322741 0.833092 +s 0 +f 1547/1339/700 1548/1340/700 1549/1341/700 +f 1550/1342/701 1551/1343/701 1552/1344/701 +f 1550/1342/701 1552/1344/701 1553/1345/701 +f 1547/1339/700 1554/1346/700 1548/1340/700 +f 1555/1347/702 1556/1348/702 1557/1349/702 +f 1555/1347/702 1558/1350/702 1559/1351/702 +f 1557/1349/702 1560/1352/702 1561/1353/702 +f 1562/1354/703 1563/1355/703 1564/1356/703 +f 1563/1355/703 1565/1357/703 1566/1358/703 +f 1561/1353/702 1555/1347/702 1557/1349/702 +f 1567/1359/703 1568/1360/703 1569/1361/703 +f 1570/1362/702 1571/1363/702 1572/1364/702 +f 1573/1365/702 1572/1364/702 1574/1366/702 +f 1575/1367/704 1576/1368/704 1577/1369/704 +f 1571/1363/702 1570/1362/702 1578/1370/702 +f 1562/1354/703 1579/1371/703 1580/1372/703 +f 1581/1373/703 1580/1372/703 1582/1374/703 +f 1583/1375/703 1582/1374/703 1584/1376/703 +f 1585/1377/705 1586/1378/705 1587/1379/705 +f 1571/1363/702 1574/1366/702 1572/1364/702 +f 1588/1380/706 1589/1381/706 1590/1382/706 +f 1591/1383/706 1592/1384/706 1593/1385/706 +f 1594/1386/706 1590/1382/706 1595/1387/706 +f 1596/1388/703 1584/1376/703 1597/1389/703 +f 1556/1348/702 1555/1347/702 1559/1351/702 +f 1579/1371/703 1562/1354/703 1564/1356/703 +f 1564/1356/703 1563/1355/703 1566/1358/703 +f 1597/1389/703 1567/1359/703 1569/1361/703 +f 1598/1390/704 1575/1367/704 1577/1369/704 +f 1599/1391/702 1571/1363/702 1578/1370/702 +f 1581/1373/703 1562/1354/703 1580/1372/703 +f 1583/1375/703 1581/1373/703 1582/1374/703 +f 1596/1388/703 1583/1375/703 1584/1376/703 +f 1600/1392/705 1585/1377/705 1587/1379/705 +f 1594/1386/706 1588/1380/706 1590/1382/706 +f 1595/1387/706 1591/1383/706 1593/1385/706 +f 1593/1385/706 1594/1386/706 1595/1387/706 +f 1569/1361/703 1596/1388/703 1597/1389/703 +f 1567/1359/703 1566/1358/703 1568/1360/703 +s 1 +f 1601/1393/707 1602/1394/708 1603/1395/709 +f 1603/1395/709 1604/1396/710 1605/1397/711 +f 1603/1395/709 1606/1398/712 1601/1393/707 +f 1602/1394/708 1607/1399/713 1603/1395/709 +f 1602/1394/708 1608/1400/714 1607/1399/713 +f 1609/1401/715 1610/1402/716 1611/1403/717 +f 1612/1404/718 1613/1405/719 1551/1343/701 +f 1614/1406/720 1550/1342/701 1553/1345/701 +f 1615/1407/721 1614/1406/720 1616/1408/701 +f 1616/1408/701 1617/1409/701 1615/1407/721 +f 1618/1410/722 1619/1411/723 1620/1412/724 +f 1621/1413/725 1622/1414/726 1623/1415/727 +f 1624/1416/728 1625/1417/729 1626/1418/730 +f 1627/1419/731 1628/1420/732 1629/1421/733 +f 1547/1339/700 1630/1422/734 1554/1346/700 +f 1549/1341/700 1631/1423/735 1632/1424/700 +f 1632/1424/700 1633/1425/736 1634/1426/700 +f 1609/1401/715 1635/1427/716 1610/1402/716 +f 1610/1402/716 1636/1428/737 1611/1403/717 +f 1611/1403/717 1636/1428/737 1637/1429/737 +f 1638/1430/738 1639/1431/739 1640/1432/740 +f 1614/1406/720 1641/1433/701 1550/1342/701 +f 1613/1405/719 1552/1344/701 1551/1343/701 +f 1614/1406/720 1553/1345/701 1616/1408/701 +f 1617/1409/701 1642/1434/741 1615/1407/721 +f 1619/1411/723 1643/1435/742 1620/1412/724 +f 1619/1411/723 1623/1415/727 1643/1435/742 +f 1622/1414/726 1643/1435/742 1623/1415/727 +f 1621/1413/725 1626/1418/730 1622/1414/726 +f 1625/1417/729 1622/1414/726 1626/1418/730 +f 1628/1420/732 1644/1436/743 1629/1421/733 +f 1645/1437/744 1634/1426/700 1646/1438/745 +f 1548/1340/700 1631/1423/735 1549/1341/700 +f 1630/1422/734 1647/1439/746 1554/1346/700 +f 1631/1423/735 1633/1425/736 1632/1424/700 +f 1633/1425/736 1646/1438/745 1634/1426/700 +f 1605/1397/711 1648/1440/747 1606/1398/712 +f 1649/1441/748 1650/1442/749 1651/1443/750 +f 1652/1444/751 1609/1401/715 1633/1425/736 +f 1653/1350/752 1654/1445/753 1655/1446/754 +f 1654/1445/753 1649/1441/748 1656/1447/755 +f 1657/1448/756 1658/1449/757 1659/1450/758 +f 1660/1451/759 1661/1452/760 1662/1453/761 +f 1660/1451/759 1663/1454/701 1664/1455/701 +f 1647/1439/746 1630/1422/734 1665/1456/726 +f 1666/1457/762 1667/1458/763 1668/1459/764 +f 1669/1460/765 1668/1459/764 1667/1458/763 +f 1670/1461/766 1671/1462/767 1672/1458/768 +f 1671/1462/767 1673/1463/769 1674/1464/770 +f 1673/1463/769 1675/1465/771 1676/1460/772 +f 1675/1465/771 1677/1466/773 1678/1459/774 +f 1677/1466/773 1679/1467/775 1680/1468/776 +f 1645/1437/744 1646/1438/745 1681/1469/731 +f 1682/1470/777 1683/1471/778 1684/1472/779 +f 1682/1470/777 1685/1473/780 1686/1474/781 +f 1685/1473/780 1687/1475/782 1688/1476/783 +f 1604/1396/710 1689/1477/784 1605/1397/711 +f 1690/1478/785 1657/1448/756 1691/1479/786 +f 1691/1479/786 1692/1480/787 1693/1481/788 +f 1694/1482/789 1695/1352/790 1696/1483/791 +f 1657/1448/756 1697/1484/792 1691/1479/786 +f 1695/1352/790 1698/1349/793 1696/1483/791 +f 1697/1484/792 1659/1450/758 1689/1477/784 +f 1699/1367/794 1700/1390/795 1694/1482/789 +f 1650/1442/749 1701/1485/796 1702/1454/797 +f 1697/1484/792 1657/1448/756 1659/1450/758 +f 1656/1447/755 1649/1441/748 1651/1443/750 +f 1604/1396/710 1697/1484/792 1689/1477/784 +f 1691/1479/786 1697/1484/792 1692/1480/787 +f 1692/1480/787 1703/1486/798 1693/1481/788 +f 1696/1483/791 1699/1367/794 1694/1482/789 +f 1704/1487/799 1705/1488/800 1684/1472/779 +f 1706/1489/801 1707/1490/802 1708/1491/803 +f 1709/1364/804 1710/1365/805 1711/1492/803 +f 1712/1493/806 1713/1494/807 1714/1495/808 +f 1715/1496/809 1707/1490/802 1716/1497/810 +f 1716/1497/810 1706/1489/801 1717/1498/811 +f 1693/1481/788 1703/1486/798 1718/1499/812 +f 1719/1369/813 1720/1368/814 1721/1500/815 +f 1722/1501/816 1712/1493/806 1723/1502/817 +f 1707/1490/802 1706/1489/801 1716/1497/810 +f 1706/1489/801 1724/1503/818 1717/1498/811 +f 1706/1489/801 1708/1491/803 1725/1504/798 +f 1720/1368/814 1711/1492/803 1721/1500/815 +f 1712/1493/806 1714/1495/808 1723/1502/817 +f 1722/1501/816 1723/1502/817 1726/1505/819 +f 1608/1400/714 1727/1506/820 1728/1507/821 +f 1651/1443/750 1650/1442/749 1702/1454/797 +f 1729/1508/822 1614/1406/720 1615/1407/721 +f 1730/1391/752 1731/1370/752 1732/1509/754 +f 1733/1510/823 1732/1509/754 1734/1511/755 +f 1735/1512/824 1662/1453/761 1736/1513/825 +f 1737/1514/826 1738/1515/827 1736/1513/825 +f 1737/1514/826 1739/1516/828 1740/1505/700 +f 1612/1404/718 1741/1517/724 1742/1518/742 +f 1743/1519/829 1744/1520/830 1745/1521/831 +f 1746/1522/832 1747/1523/833 1748/1524/834 +f 1749/1525/835 1750/1519/836 1751/1524/837 +f 1752/1526/838 1751/1524/837 1753/1523/839 +f 1754/1527/840 1753/1523/839 1755/1522/841 +f 1756/1528/842 1755/1522/841 1757/1521/843 +f 1758/1529/844 1757/1521/843 1759/1520/845 +f 1760/1530/846 1761/1531/847 1762/1532/732 +f 1702/1454/797 1701/1485/796 1763/1455/819 +f 1764/1533/848 1704/1487/799 1765/1534/849 +f 1764/1533/848 1766/1535/850 1767/1536/851 +f 1768/1537/852 1767/1536/851 1769/1379/853 +f 1717/1498/811 1724/1503/818 1728/1507/821 +f 1707/1490/802 1770/1538/854 1708/1491/803 +f 1703/1486/798 1771/1539/855 1718/1499/812 +f 1710/1365/805 1721/1500/815 1711/1492/803 +f 1713/1494/807 1734/1511/755 1714/1495/808 +f 1566/1358/703 1565/1357/703 1568/1360/703 +f 1629/1421/733 1644/1436/743 1622/1414/726 +f 1772/1540/856 1773/1541/856 1638/1430/738 +f 1774/1542/857 1775/1543/857 1776/1544/858 +f 1639/1431/739 1776/1544/858 1640/1432/740 +f 1728/1507/821 1724/1503/818 1608/1400/714 +f 1617/1409/701 1760/1530/846 1642/1434/741 +f 1644/1436/743 1643/1435/742 1622/1414/726 +f 1548/1340/700 1777/1545/700 1631/1423/735 +f 1724/1503/818 1607/1399/713 1608/1400/714 +f 1606/1398/712 1603/1395/709 1605/1397/711 +f 1631/1423/735 1652/1444/751 1633/1425/736 +f 1778/1351/752 1653/1350/752 1655/1446/754 +f 1655/1446/754 1654/1445/753 1656/1447/755 +f 1735/1512/824 1660/1451/759 1662/1453/761 +f 1661/1452/760 1660/1451/759 1664/1455/701 +f 1779/1546/729 1647/1439/746 1665/1456/726 +f 1780/1468/859 1666/1457/762 1668/1459/764 +f 1781/1464/860 1669/1460/765 1667/1458/763 +f 1782/1457/861 1670/1461/766 1672/1458/768 +f 1672/1458/768 1671/1462/767 1674/1464/770 +f 1674/1464/770 1673/1463/769 1676/1460/772 +f 1676/1460/772 1675/1465/771 1678/1459/774 +f 1678/1459/774 1677/1466/773 1680/1468/776 +f 1783/1547/862 1645/1437/744 1681/1469/731 +f 1705/1488/800 1682/1470/777 1684/1472/779 +f 1683/1471/778 1682/1470/777 1686/1474/781 +f 1686/1474/781 1685/1473/780 1688/1476/783 +f 1765/1534/849 1704/1487/799 1684/1472/779 +f 1611/1403/717 1729/1508/822 1615/1407/721 +f 1733/1510/823 1730/1391/752 1732/1509/754 +f 1713/1494/807 1733/1510/823 1734/1511/755 +f 1738/1515/827 1735/1512/824 1736/1513/825 +f 1739/1516/828 1737/1514/826 1736/1513/825 +f 1784/1502/700 1737/1514/826 1740/1505/700 +f 1613/1405/719 1612/1404/718 1742/1518/742 +f 1748/1524/834 1743/1519/829 1745/1521/831 +f 1745/1521/831 1746/1522/832 1748/1524/834 +f 1752/1526/838 1749/1525/835 1751/1524/837 +f 1754/1527/840 1752/1526/838 1753/1523/839 +f 1756/1528/842 1754/1527/840 1755/1522/841 +f 1758/1529/844 1756/1528/842 1757/1521/843 +f 1785/1548/863 1758/1529/844 1759/1520/845 +f 1642/1434/741 1760/1530/846 1762/1532/732 +f 1766/1535/850 1764/1533/848 1765/1534/849 +f 1768/1537/852 1764/1533/848 1767/1536/851 +f 1786/1378/864 1768/1537/852 1769/1379/853 +f 1640/1432/740 1772/1540/856 1638/1430/738 +f 1639/1431/739 1774/1542/857 1776/1544/858 +f 1611/1403/717 1637/1429/737 1787/1549/865 +f 1611/1403/717 1787/1549/865 1729/1508/822 +f 1609/1401/715 1652/1444/751 1788/1550/865 +f 1609/1401/715 1788/1550/865 1635/1427/716 +o slide_pistol_0 +v 1.014517 11.207904 -2.625851 +v 1.014517 11.207904 -2.300617 +v 1.014517 10.723700 -1.978916 +v -1.014517 10.157009 -2.625851 +v -1.014517 11.207904 -2.625851 +v -0.335502 10.613042 -2.625851 +v -1.526129 9.326169 3.920664 +v -1.526129 9.326169 3.413726 +v -1.526129 8.752565 3.413726 +v -1.705540 8.752565 3.920664 +v -1.705540 7.184847 3.920666 +v -1.705540 8.402290 6.532843 +v -1.526129 8.752565 3.920664 +v -1.705540 8.752565 3.920664 +v -1.705540 8.752759 6.288157 +v -1.526129 8.752565 3.920664 +v -1.524936 8.752759 6.288157 +v 1.705540 7.247200 -1.820038 +v 1.526129 7.247200 -1.820038 +v 1.526043 7.614016 -2.276283 +v 1.321148 7.184847 12.021433 +v -1.171832 7.184847 11.897295 +v 1.156401 7.184847 11.897295 +v 1.526043 7.614016 -2.276283 +v 1.526129 7.247200 -1.820038 +v 1.526043 7.184847 -2.765843 +v 1.321148 7.184847 11.214214 +v -1.705540 7.184847 2.105287 +v -1.705540 8.757562 2.105287 +v -1.705540 8.927025 1.935822 +v 1.526129 7.247200 -1.820038 +v 1.526129 7.184847 -1.313099 +v 1.526043 7.184847 -2.765843 +v -1.524936 9.326169 6.288157 +v -1.326382 10.025589 6.288155 +v -1.705540 9.660696 6.288155 +v -1.705540 9.326169 6.288157 +v 0.813732 7.184847 16.849926 +v 1.705540 7.184847 12.021433 +v 1.705540 7.184847 18.319260 +v 1.326382 7.184847 19.492821 +v -1.705540 7.967402 7.346314 +v -1.705540 8.055083 6.892087 +v 1.705540 7.637858 11.214214 +v 1.705540 7.184847 11.214214 +v 1.705540 7.967402 7.346314 +v -1.705540 7.184847 3.920666 +v -1.526129 7.184847 3.920666 +v -1.171832 7.184845 5.830760 +v 1.705540 7.184847 3.920666 +v 1.705540 7.184847 11.214214 +v 1.156401 7.184845 5.830760 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.184845 -4.842924 +v 1.705540 8.782389 -4.842924 +v 1.705540 7.614016 -2.276283 +v 1.231429 7.184845 -4.842924 +v 1.526129 7.184847 -1.313099 +v 1.231024 7.184847 1.879622 +v -1.526129 7.184847 2.105287 +v -1.526129 7.184847 2.612226 +v -1.526129 8.752565 2.612224 +v 1.705540 7.184847 3.920666 +v 1.321148 7.184847 11.214214 +v 1.705540 7.184847 11.214214 +v 1.705540 7.637858 11.214214 +v -0.813732 7.184847 16.849926 +v 1.526129 7.184847 3.920666 +v 0.000000 9.832475 21.944122 +v 0.947015 10.390599 21.944122 +v -0.947015 10.390599 21.944122 +v 1.705540 8.055083 6.892087 +v -1.171832 7.184847 11.897295 +v -1.171832 8.402287 11.660702 +v -1.171832 8.578353 11.777044 +v 0.167762 11.355712 20.190464 +v -0.167762 11.355712 20.190464 +v -0.167762 10.787160 20.190464 +v 0.814306 10.492235 20.190464 +v 0.814306 10.492235 19.285318 +v 0.359371 10.492235 19.285318 +v 0.893030 10.492235 20.116810 +v 0.893030 10.492235 19.372772 +v -1.526129 7.184847 3.413727 +v 1.526129 7.184847 3.413727 +v -0.393269 7.184847 1.879622 +v 0.393269 7.184847 1.879622 +v -1.333642 8.402290 6.532843 +v -1.333642 8.055083 6.892087 +v -1.333642 7.967402 7.346314 +v -1.016029 10.321228 11.777044 +v -0.947015 10.390597 11.777044 +v -0.654714 10.019367 11.777044 +v -0.813732 7.184847 16.849926 +v 0.813732 7.184847 16.849926 +v 0.813732 5.420444 16.849926 +v 0.471660 5.087640 16.849926 +v -0.471660 5.087640 16.849926 +v -0.813732 5.420444 16.849926 +v -1.333642 7.184847 21.944122 +v -1.333642 7.184847 19.492821 +v -0.813732 7.184847 21.944122 +v -1.526129 7.184847 0.796844 +v -1.705540 7.184847 0.796844 +v -1.705540 7.184847 -0.004658 +v -0.728164 8.051682 1.879622 +v -0.393269 9.417000 1.879622 +v -0.393269 7.184847 1.879622 +v -0.728164 7.586768 1.879622 +v -1.238688 7.184847 1.879622 +v 1.231024 9.417000 1.879622 +v 1.231024 8.051682 1.879622 +v 0.728164 8.051682 1.879622 +v 1.526129 7.184847 2.105287 +v 1.526129 7.184847 2.612226 +v 1.705540 7.184847 -1.313099 +v 1.705540 7.184847 -0.511597 +v 1.526129 7.184847 -0.511597 +v 1.705540 7.184847 2.612226 +v 1.705540 7.184847 3.413727 +v 1.526129 7.184847 3.920666 +v 1.526129 9.833411 3.920664 +v 1.705540 9.660696 3.920664 +v 0.408756 10.107763 -3.259712 +v -0.409408 10.107763 -3.259712 +v -0.409408 10.390597 -3.172267 +v 1.705540 9.660696 3.413726 +v 1.526129 9.833411 3.413726 +v 1.526129 7.184847 3.413727 +v -0.392768 7.184845 -4.842924 +v 0.393269 9.417000 1.879622 +v 0.393269 7.184847 1.879622 +v 0.392768 7.184845 -4.842924 +v 1.705540 7.184847 2.612226 +v 1.526129 7.184847 2.612226 +v 1.526129 9.833411 2.612224 +v 1.526129 7.184847 2.105287 +v 1.705540 7.184847 2.105287 +v 1.705540 9.660696 2.105287 +v 0.392768 8.782389 -4.842924 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.184847 1.879622 +v 1.231024 7.586768 1.879622 +v 1.231429 7.587345 -4.842924 +v 0.408756 10.390597 -3.531360 +v 0.408756 10.107763 -3.763228 +v 0.408756 10.107763 -3.259712 +v 1.526129 9.833411 1.303783 +v 1.705540 9.660696 1.303783 +v 1.705540 7.184847 1.303783 +v 0.728571 7.587345 -4.842924 +v 0.728571 8.051105 -4.842924 +v 1.231429 8.051105 -4.842924 +v 1.705540 9.660696 0.796844 +v 1.526129 9.833411 0.796844 +v 1.526129 7.184847 0.796844 +v 0.813732 7.184847 21.944122 +v 1.231024 9.417000 1.879622 +v 0.393269 9.417000 1.879622 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.586768 1.879622 +v 0.728164 7.586768 1.879622 +v 0.728571 7.587345 -4.842924 +v 1.526129 9.833411 -0.004658 +v 1.705540 9.660696 -0.004658 +v 1.705540 7.184847 -0.004658 +v 1.705540 7.184845 -4.842924 +v 1.231429 7.184845 -4.842924 +v 1.231429 7.587345 -4.842924 +v 1.526129 7.184847 -0.511597 +v 1.705540 7.184847 -0.511597 +v 1.705540 9.660696 -0.511597 +v 1.231429 9.417337 -4.333549 +v 1.231429 8.782389 -4.842924 +v 1.231024 9.417000 1.879622 +v 0.728164 7.586768 1.879622 +v 0.728164 8.051682 1.879622 +v 0.728571 8.051105 -4.842924 +v 1.526129 9.833411 -1.313099 +v 1.705540 9.660696 -1.313099 +v 1.705540 7.184847 -1.313099 +v 1.231024 8.051682 1.879622 +v 0.728164 8.051682 1.879622 +v 1.231024 8.051682 1.879622 +v 1.231429 8.051105 -4.842924 +v 0.947015 10.390597 -2.821982 +v -0.947015 10.390597 -2.821982 +v -1.132077 10.212755 -2.753816 +v 1.526129 7.247200 -1.820038 +v 1.705540 7.247200 -1.820038 +v 1.705540 9.660696 -1.820038 +v 1.705540 8.752767 6.288157 +v 1.705540 8.402290 6.532843 +v -1.132077 10.212755 0.576709 +v -0.947015 10.390597 0.637663 +v 0.947015 10.390597 0.637663 +v 1.326382 7.184847 21.944122 +v 1.526129 7.184847 -0.004658 +v -1.526129 7.184847 2.612226 +v -1.238688 7.184847 1.879622 +v 1.705540 7.184847 2.105287 +v 1.526129 7.184847 1.303783 +v 1.705540 7.184847 1.303783 +v 1.526129 7.184847 0.796844 +v 1.705540 7.184847 -0.004658 +v 0.728164 7.586768 1.879622 +v 1.231024 7.586768 1.879622 +v 1.231024 7.184847 1.879622 +v 0.393269 7.184847 1.879622 +v -1.238688 9.417000 1.879622 +v -1.526129 7.184847 2.105287 +v -1.705540 7.184847 -1.313099 +v -1.526129 7.184847 -1.313099 +v -1.526129 7.184847 -0.511597 +v -1.705540 7.184847 2.612226 +v -1.526129 9.326169 3.920664 +v -1.705540 9.326169 3.920664 +v -1.705540 9.660696 3.920664 +v -1.526129 7.184847 3.920666 +v -1.705540 7.184847 3.920666 +v -1.705540 8.752565 3.920664 +v -1.705540 7.184847 3.413727 +v -1.526129 7.184847 3.413727 +v -1.526129 8.752565 3.413726 +v -1.705540 9.326169 3.413726 +v -1.526129 9.326169 3.413726 +v -1.526129 9.833411 3.413726 +v -1.705540 7.184847 2.612226 +v -1.705540 7.184847 3.413727 +v -1.705540 8.752565 3.413726 +v -0.393269 9.417000 1.879622 +v -0.392768 8.782389 -4.842924 +v -0.392768 7.184845 -4.842924 +v -1.526129 9.326169 2.612224 +v -1.705540 9.326169 2.612224 +v -1.705540 9.660696 2.612224 +v -1.526129 7.184847 2.612226 +v -1.705540 7.184847 2.612226 +v -1.705540 8.752565 2.612224 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.184847 1.879622 +v -1.238688 7.184845 -4.842924 +v -1.238688 7.587345 -4.842924 +v -0.409408 10.390597 -3.531360 +v -0.409408 10.390597 -3.172267 +v -0.409408 10.107763 -3.259712 +v -1.526129 9.833411 1.303783 +v -1.526129 7.184847 1.303783 +v -1.705540 7.184847 1.303783 +v -0.728571 7.587345 -4.842924 +v -1.238688 7.587345 -4.842924 +v -1.238688 8.051105 -4.842924 +v -1.705540 9.660696 0.796844 +v -1.705540 7.184847 0.796844 +v -1.526129 7.184847 0.796844 +v -1.238688 9.417000 1.879622 +v -1.238688 9.417337 -4.333549 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.586768 1.879622 +v -1.238688 7.587345 -4.842924 +v -0.728571 7.587345 -4.842924 +v -1.526129 9.833411 -0.004658 +v -1.526129 7.184847 -0.004658 +v -1.705540 7.184847 -0.004658 +v -1.238688 7.184845 -4.842924 +v -1.705540 7.184845 -4.842924 +v -1.526129 7.184847 -0.511597 +v -1.526129 9.833411 -0.511597 +v -1.705540 9.660696 -0.511597 +v -1.238688 8.782389 -4.842924 +v -1.238688 9.417337 -4.333549 +v -1.238688 9.417000 1.879622 +v -0.728164 7.586768 1.879622 +v -0.728571 7.587345 -4.842924 +v -0.728571 8.051105 -4.842924 +v -1.526129 7.184847 -0.004658 +v -1.238688 7.184845 -4.842924 +v -1.526129 9.833411 -1.313099 +v -1.526129 7.184847 -1.313099 +v -1.705540 7.184847 -1.313099 +v -1.238688 8.051682 1.879622 +v -1.238688 8.051105 -4.842924 +v -0.728164 8.051682 1.879622 +v -0.728571 8.051105 -4.842924 +v -1.238688 8.051105 -4.842924 +v -1.705540 7.184845 -4.842924 +v -1.526129 7.184847 -1.820038 +v -1.705540 7.184847 2.105287 +v -1.705540 7.184847 1.303783 +v -1.526129 7.184847 -1.820038 +v -1.526129 9.833411 -1.820038 +v -1.705540 9.660696 -1.820038 +v -1.526129 7.184847 1.303783 +v -1.526129 7.184847 3.413727 +v -1.526129 7.184847 3.920666 +v -1.526129 8.752565 3.920664 +v -0.947015 10.390597 6.288155 +v -0.654714 10.019367 6.288155 +v -0.409408 10.390597 6.288155 +v -1.171832 9.475291 6.288155 +v -0.409408 10.019367 5.830758 +v -0.409408 10.390597 5.830758 +v -0.409408 10.390597 6.288155 +v 0.408756 10.019367 5.830758 +v 0.408756 10.019367 6.288155 +v 0.408756 10.390597 6.288155 +v 0.408756 10.019367 5.830758 +v 0.408756 10.390597 5.830758 +v -0.409408 10.390597 5.830758 +v 0.408756 10.019367 6.288155 +v 0.632517 10.019367 6.288155 +v 0.408756 10.390597 6.288155 +v 0.958007 9.683089 6.288155 +v 1.018419 10.321527 6.288155 +v -1.171832 9.475291 11.777044 +v -1.171832 7.184845 5.830760 +v -1.171832 8.752774 6.288157 +v -1.171832 8.402290 6.532843 +v -0.409408 10.019367 6.288155 +v -1.333642 8.402287 11.660702 +v -1.171832 8.402287 11.660702 +v -1.171832 8.402290 6.532843 +v -0.409408 10.019367 5.830758 +v -0.654714 10.019367 5.830758 +v -1.171832 9.475291 5.830758 +v -1.171832 7.184845 5.830760 +v 1.156401 7.184845 5.830760 +v 1.156401 9.475291 5.830758 +v 1.014517 11.207904 -2.625851 +v 0.335502 10.613042 -2.625851 +v 0.335502 11.207904 -2.625851 +v -0.167762 11.355712 20.190464 +v 0.167762 11.355712 20.190464 +v 0.167762 11.355712 19.816681 +v 0.143185 11.207904 -2.300617 +v 0.143185 11.269897 -2.300617 +v 0.143185 11.269897 -2.690544 +v 1.014517 11.207904 -2.625851 +v 0.335502 11.207904 -2.625851 +v 0.335502 11.207904 -2.300617 +v 1.014517 11.207904 -2.300617 +v 0.335502 11.207904 -2.625851 +v 0.335502 11.269897 -2.690544 +v 0.335502 11.269897 -2.300617 +v 0.335502 10.613042 -2.625851 +v 0.335502 10.613042 -2.690544 +v 0.335502 11.269897 -2.690544 +v 0.143185 11.269897 -2.300617 +v 0.335502 11.269897 -2.300617 +v 0.335502 11.269897 -2.690544 +v -0.720340 8.093419 11.897295 +v -0.389845 7.872592 11.897295 +v -1.171832 7.184847 11.897295 +v -0.941169 8.423914 11.897295 +v -1.018714 8.813759 11.897295 +v 0.000000 7.795045 11.897295 +v 0.471660 5.087640 21.944122 +v 0.813732 5.420444 21.944122 +v -0.813732 5.420444 21.944122 +v 0.813732 7.184847 21.944122 +v -1.333642 7.184847 21.944122 +v -0.813732 7.184847 21.944122 +v -0.720340 8.093421 21.944122 +v -1.018714 8.813761 21.944122 +v -1.326382 10.025591 21.944122 +v -0.720340 9.534101 21.944122 +v 0.720340 9.534101 21.944122 +v 1.326382 10.025591 21.944122 +v 1.018714 8.813761 21.944122 +v 1.326382 7.184847 21.944122 +v 0.720340 8.093421 21.944122 +v 0.941169 9.203606 21.944122 +v 0.389845 9.754930 21.944122 +v -0.941169 9.203606 21.944122 +v -0.941169 8.423916 21.944122 +v -0.389845 7.872591 21.944122 +v 0.000000 7.795045 21.944122 +v 0.389845 7.872591 21.944122 +v 0.941169 8.423916 21.944122 +v -0.471660 5.087640 21.944122 +v -0.389845 9.754930 21.944122 +v 1.321148 7.637858 11.214214 +v 1.321148 7.444347 12.021433 +v 1.321148 7.184847 12.021433 +v 1.705540 7.184847 12.021433 +v 1.321148 7.184847 12.021433 +v 1.321148 7.444347 12.021433 +v 1.705540 7.637858 11.214214 +v 1.705540 7.444347 12.021433 +v 1.321148 7.444347 12.021433 +v -1.526129 9.326169 3.413726 +v -1.705540 9.326169 3.413726 +v -1.705540 9.326169 2.612224 +v -1.524936 9.326169 6.288157 +v -1.705540 9.326169 6.288157 +v -1.705540 9.326169 3.920664 +v -1.526129 8.752565 2.612224 +v -1.705540 8.752565 2.612224 +v -1.705540 8.752565 3.413726 +v -1.526129 8.752565 2.612224 +v 0.632517 10.019367 5.830758 +v 0.335502 10.613042 -2.690544 +v 0.143185 10.723700 -2.690544 +v 0.143185 11.269897 -2.690544 +v -0.335502 10.613042 -2.690544 +v -0.143185 10.723700 -2.690544 +v -0.335502 10.613042 -2.625851 +v -0.335502 10.613042 -2.690544 +v 0.335502 10.613042 -2.690544 +v 0.143185 10.723700 -2.690544 +v 0.143185 10.723700 -1.978916 +v -0.814306 10.492235 20.190464 +v -0.359371 10.492235 20.190464 +v -0.359371 10.492235 19.285318 +v -0.893030 10.492235 20.116810 +v -0.814306 10.492235 19.285318 +v -0.335502 11.207904 -2.625851 +v -0.335502 10.613042 -2.625851 +v -0.335502 11.207904 -2.625851 +v -0.335502 11.269897 -2.690544 +v -0.335502 11.269897 -2.690544 +v -0.143185 11.269897 -2.690544 +v -0.143185 10.723700 -2.690544 +v -0.143185 11.269897 -2.690544 +v -0.143185 11.207904 -2.300617 +v -0.335502 11.207904 -2.625851 +v -0.335502 11.207904 -2.300617 +v -0.335502 11.269897 -2.300617 +v -0.143185 11.269897 -2.300617 +v -0.143185 11.269897 -2.690544 +v -0.335502 11.269897 -2.690544 +v -0.143185 11.269897 -2.300617 +v -0.335502 11.207904 -2.625851 +v -1.014517 11.207904 -2.625851 +v -0.335502 11.207904 -2.300617 +v -1.014517 11.207904 -2.300617 +v 1.014517 10.157009 -2.625851 +v 1.014517 10.606321 -1.825949 +v 1.014517 10.491154 -1.431076 +v 1.014517 10.157009 -2.625851 +v 0.167762 10.787160 20.190464 +v -0.359371 10.492235 20.190464 +v -1.014517 11.207904 -2.625851 +v -1.014517 10.157009 -2.625851 +v -1.014517 10.723700 -1.978916 +v -1.014517 10.606321 -1.825949 +v -1.014517 10.491154 -1.431076 +v 0.359371 10.492235 20.190464 +v -1.014517 11.207904 -2.300617 +v -0.451145 8.974197 5.975873 +v 0.000000 8.787328 5.975873 +v -0.345291 9.132619 5.975873 +v 0.186870 8.336183 5.975873 +v 0.000000 8.299012 5.975873 +v -0.186870 9.238472 5.975873 +v 0.000000 9.275643 5.975873 +v 0.345291 8.442036 5.975873 +v 0.186870 9.238472 5.975873 +v 0.345291 9.132619 5.975873 +v 0.451145 8.600457 5.975873 +v 0.451145 8.974197 5.975873 +v 0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.975873 +v -0.186870 8.336183 5.975873 +v -0.451145 8.600457 5.975873 +v -0.345291 8.442036 5.975873 +v -1.659889 9.270180 6.250484 +v -1.659889 9.270180 2.190354 +v -1.659889 8.796173 2.190354 +v -1.659889 9.139336 2.059509 +v -1.659889 8.927017 2.059509 +v -1.360494 9.270180 6.250484 +v -1.659889 9.270180 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 8.752759 6.288157 +v -1.524936 8.752759 6.288157 +v -1.524936 9.326169 6.288157 +v 1.705540 7.614016 -2.276283 +v -1.705540 7.184847 1.303783 +v -1.705540 9.151711 1.935822 +v 1.321148 7.637858 11.214214 +v 0.359371 10.492235 20.190464 +v -1.238688 7.586768 1.879622 +v 0.393269 9.417000 1.879622 +v 1.705540 7.184847 3.920666 +v 0.408756 10.390597 -3.172267 +v 1.705540 7.184847 3.413727 +v 0.392768 7.184845 -4.842924 +v 1.705540 9.660696 2.612224 +v 1.526129 9.833411 2.105287 +v 1.231429 7.184845 -4.842924 +v 0.408756 10.390597 -3.172267 +v 1.526129 7.184847 1.303783 +v 1.705540 7.184847 0.796844 +v 1.231429 9.417337 -4.333549 +v 1.231429 7.587345 -4.842924 +v 1.526129 7.184847 -0.004658 +v 1.526129 9.833411 -0.511597 +v 0.728571 7.587345 -4.842924 +v 1.526129 7.184847 -1.313099 +v 1.231429 8.051105 -4.842924 +v 0.728571 8.051105 -4.842924 +v 1.132077 10.212755 -2.753816 +v 1.526129 9.833411 -1.820038 +v 1.132077 10.212755 0.576709 +v 1.705540 7.184847 0.796844 +v -1.238688 8.051682 1.879622 +v -1.705540 7.184847 -0.511597 +v -1.705540 7.184847 3.413727 +v -1.526129 9.833411 3.920664 +v -1.526129 8.752565 3.920664 +v -1.705540 8.752565 3.413726 +v -1.705540 9.660696 3.413726 +v -1.705540 8.752565 2.612224 +v -0.393269 7.184847 1.879622 +v -1.526129 9.833411 2.612224 +v -1.526129 8.752565 2.612224 +v -1.705540 7.184847 18.319260 +v -1.238688 7.586768 1.879622 +v -0.409408 10.107763 -3.763228 +v -1.705540 9.660696 1.303783 +v -0.728571 8.051105 -4.842924 +v -1.526129 9.833411 0.796844 +v -0.393269 9.417000 1.879622 +v -0.728164 7.586768 1.879622 +v -1.705540 9.660696 -0.004658 +v -1.705540 7.184847 -0.511597 +v -0.728164 8.051682 1.879622 +v -1.705540 9.660696 -1.313099 +v -1.238688 8.051682 1.879622 +v -1.705540 7.184847 -1.820038 +v -1.705540 7.184847 -1.820038 +v -1.705540 7.184845 -4.842924 +v -1.705540 7.184847 -1.820038 +v -1.705540 8.782389 -4.842924 +v -1.526129 8.752565 3.413726 +v -0.409408 10.019367 6.288155 +v 0.408756 10.390597 5.830758 +v -1.326382 10.025589 11.777044 +v -1.333642 8.402290 6.532843 +v -0.167762 11.355712 19.816681 +v 0.335502 11.207904 -2.300617 +v 0.335502 11.207904 -2.625851 +v 0.143185 11.269897 -2.690544 +v 1.321148 7.184847 11.214214 +v 1.705540 7.444347 12.021433 +v 1.321148 7.637858 11.214214 +v -1.526129 9.326169 2.612224 +v -1.526129 9.326169 3.920664 +v -1.526129 8.752565 3.413726 +v -1.526129 9.326169 2.612224 +v 0.335502 11.269897 -2.690544 +v 0.335502 10.613042 -2.625851 +v -0.893030 10.492235 19.372772 +v -0.335502 10.613042 -2.690544 +v -0.143185 10.723700 -1.978916 +v -0.335502 11.269897 -2.690544 +v -0.335502 11.269897 -2.300617 +v -1.659889 8.796173 6.250484 +v -1.360494 8.796173 6.250484 +v -1.705540 8.402290 6.532843 +v -1.333642 8.402290 6.532843 +v -1.524936 8.752759 6.288157 +v -1.171832 8.752774 6.288157 +v -0.654714 10.019367 11.897295 +v -0.654714 10.019367 11.777044 +v 0.632517 10.019367 11.777044 +v 0.632517 10.019367 11.777044 +v -1.705540 9.660696 6.288155 +v -1.705540 9.660696 3.920664 +v -1.705540 9.326169 3.920664 +v -1.526129 8.752565 2.110280 +v -1.526129 9.321173 2.105287 +v -1.524936 9.151711 1.935822 +v -1.526129 7.184847 1.303783 +v -1.526129 9.833411 1.303783 +v -1.526129 9.833411 0.796844 +v -1.705540 9.660696 1.303783 +v 1.526129 9.833411 -1.820038 +v 1.526129 9.833411 -1.313099 +v -1.171832 9.475291 11.777044 +v 1.705540 7.184847 18.319260 +v 1.705540 7.184847 12.021433 +v 1.705540 7.444347 12.021433 +v 1.705540 9.660696 -1.820038 +v 1.705540 7.247200 -1.820038 +v 1.705540 7.967403 18.319260 +v 1.526043 7.184847 -2.765843 +v 1.705540 7.184845 -4.842924 +v 1.705540 7.184847 -2.765843 +v -1.526129 9.321173 2.105287 +v -1.705540 9.321173 2.105287 +v -1.705540 9.151711 1.935822 +v -1.705540 8.927025 1.935822 +v -1.705540 8.757562 2.105287 +v -1.526129 8.752565 2.110280 +v 1.018714 8.813759 11.876556 +v 1.156401 9.475291 11.866869 +v 1.156401 7.184847 11.897295 +v -1.014517 10.157009 0.196239 +v -1.014517 10.369081 0.196239 +v 0.167762 10.787160 19.556133 +v 0.167762 11.355712 19.816681 +v 0.167762 11.355712 20.190464 +v 0.359371 10.492235 20.190464 +v 0.359371 10.492235 19.285318 +v 0.872165 9.770430 11.711021 +v 1.156401 9.475291 11.866869 +v 0.632517 10.019367 11.897295 +v 1.018419 10.321527 11.521419 +v 1.019789 10.321230 19.320282 +v 1.326382 10.025591 21.944122 +v 0.872165 9.770430 11.711021 +v 0.947015 10.390597 11.752499 +v 1.018419 10.321527 11.521419 +v 1.018419 10.321527 6.288155 +v 0.958007 9.683089 6.288155 +v 0.958007 9.683130 11.555178 +v 0.632517 10.019367 5.830758 +v 1.156401 9.475291 5.830758 +v 0.958007 9.683089 6.288155 +v 1.326382 7.967403 19.492821 +v 1.326382 7.967402 7.346314 +v 1.326382 8.055083 6.892087 +v 1.326382 8.402290 6.532843 +v 1.326382 10.025589 6.288155 +v -1.333642 7.967403 19.492821 +v -1.333642 8.578353 11.777044 +v -1.333642 8.402287 11.660702 +v -1.326382 10.025591 21.944122 +v -1.326382 10.025589 11.777044 +v 0.947015 10.390599 19.208494 +v 0.947015 10.390597 11.752499 +v 0.869641 10.390597 11.777044 +v -0.409408 10.390597 -3.531360 +v -0.409408 10.107763 -3.763228 +v -0.947015 10.390597 -3.531360 +v 0.869641 10.390597 11.777044 +v -1.238688 8.782389 -4.842924 +v -1.333642 8.578353 11.777044 +v -1.526129 7.184847 -0.004658 +v -1.526129 9.833411 -0.004658 +v -1.526129 9.833411 -0.511597 +v -0.947015 10.390597 0.637663 +v -0.947015 10.390597 6.288155 +v -0.409408 10.390597 5.830758 +v 0.408756 10.390597 5.830758 +v 0.947015 10.390597 0.637663 +v 0.408756 10.390597 6.288155 +v 1.018419 10.321527 6.288155 +v -1.171832 9.475291 5.830758 +v -1.171832 9.475291 6.288155 +v 1.018419 10.321527 6.288155 +v 1.326382 10.025589 6.288155 +v 1.132077 10.212755 0.576709 +v -0.409408 10.390597 6.288155 +v -1.526129 9.833411 2.105287 +v -1.526129 9.833411 2.612224 +v -1.132077 10.212755 0.576709 +v -1.526129 9.833411 3.920664 +v -1.326382 10.025589 6.288155 +v -1.526129 9.833411 3.413726 +v 0.947015 10.390597 -3.531360 +v 0.947015 10.390597 -2.821982 +v 1.132077 10.212755 -2.753816 +v 0.947015 10.390599 19.208494 +v -0.947015 10.390599 19.208494 +v -1.016029 10.321230 19.320282 +v 0.947015 10.390599 20.281315 +v -0.947015 10.390599 20.281315 +v -0.947015 10.390599 21.944122 +v 1.705540 7.184847 2.612226 +v 1.705540 9.660696 2.612224 +v 1.705540 9.660696 3.413726 +v 1.019789 10.321230 20.144449 +v -1.016029 10.321230 20.144449 +v 1.326382 7.967403 19.492821 +v 1.326382 7.184847 19.492821 +v 0.471660 5.087640 16.849926 +v 0.813732 5.420444 16.849926 +v 0.813732 5.420444 21.944122 +v 0.408756 10.390597 -3.531360 +v 0.408756 10.390597 -3.172267 +v 1.019789 10.321230 20.144449 +v -0.409408 10.107763 -3.763228 +v -0.409408 10.107763 -3.259712 +v 0.408756 10.107763 -3.259712 +v 1.705540 7.967402 7.346314 +v 1.326382 7.967402 7.346314 +v 1.326382 7.967403 19.492821 +v 1.326382 7.184847 21.944122 +v 1.326382 7.184847 19.492821 +v 1.526129 7.184847 1.303783 +v 1.526129 7.184847 0.796844 +v 1.526129 9.833411 0.796844 +v 1.705540 8.402290 6.532843 +v 1.326382 8.402290 6.532843 +v 1.326382 8.055083 6.892087 +v 1.705540 8.055083 6.892087 +v 1.705540 9.660696 6.288155 +v 1.326382 10.025589 6.288155 +v 1.326382 8.752767 6.288157 +v 1.705540 9.660696 -4.131682 +v 1.231429 9.417337 -4.333549 +v 0.408756 10.107763 -3.763228 +v -0.392768 9.417337 -4.333549 +v -0.409408 10.390597 -3.172267 +v -0.947015 10.390597 -2.821982 +v 0.392768 9.417337 -4.333549 +v 0.392768 8.782389 -4.842924 +v 1.231429 8.782389 -4.842924 +v 1.705540 8.782389 -4.842924 +v 1.705540 9.660696 -4.131682 +v 0.947015 10.390597 -3.531360 +v 1.526129 9.833411 2.612224 +v 1.705540 9.660696 6.288155 +v 1.705540 9.660696 3.920664 +v 1.526129 9.833411 3.920664 +v -1.132077 10.212755 0.576709 +v 1.132077 10.212755 0.576709 +v 1.132077 10.212755 -2.753816 +v 1.705540 9.660696 -1.313099 +v 1.705540 9.660696 -0.511597 +v 1.705540 7.184847 -0.511597 +v 1.705540 9.660696 -0.004658 +v 1.705540 9.660696 0.796844 +v 1.705540 7.184847 0.796844 +v 1.526129 7.184847 2.612226 +v 1.526129 7.184847 2.105287 +v 1.526129 9.833411 2.105287 +v 1.705540 9.660696 3.920664 +v 1.705540 9.660696 6.288155 +v 1.019789 10.321230 19.320282 +v -0.471660 5.087640 16.849926 +v 0.471660 5.087640 21.944122 +v 0.813732 7.184847 16.849926 +v 0.813732 7.184847 21.944122 +v 0.947015 10.390599 20.281315 +v 0.947015 10.390599 21.944122 +v 1.705540 8.752767 6.288157 +v 1.526129 7.184847 3.920666 +v 1.526129 7.184847 3.413727 +v 1.526129 9.833411 3.413726 +v 0.392768 7.184845 -4.842924 +v -0.392768 7.184845 -4.842924 +v -0.392768 8.782389 -4.842924 +v 0.408756 10.390597 -3.531360 +v 1.526129 7.184847 -0.004658 +v 1.526129 7.184847 -0.511597 +v 1.526129 9.833411 -0.511597 +v 1.705540 7.184847 1.303783 +v 1.705540 9.660696 1.303783 +v 1.705540 9.660696 2.105287 +v 1.526129 9.833411 3.413726 +v 1.526129 9.833411 -0.511597 +v 1.526129 9.833411 -1.313099 +v 1.526129 9.833411 -1.820038 +v 1.526129 9.833411 -0.004658 +v 1.526129 9.833411 2.105287 +v 1.526129 9.833411 1.303783 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.614016 -2.276283 +v 1.526043 7.614016 -2.276283 +v -0.947015 10.390597 -3.531360 +v -1.705540 9.660696 -4.131682 +v -1.132077 10.212755 -2.753816 +v -1.705540 7.184847 18.319260 +v -1.705540 7.967403 18.319260 +v -1.526129 9.833411 -1.313099 +v -1.526129 9.833411 -0.511597 +v -1.705540 9.660696 -1.820038 +v -1.526129 9.833411 -1.820038 +v -1.705540 9.660696 3.413726 +v -1.705540 9.660696 2.612224 +v -1.705540 9.326169 2.612224 +v -1.333642 7.184847 19.492821 +v -0.471660 5.087640 21.944122 +v -0.813732 5.420444 21.944122 +v -0.409408 10.390597 -3.531360 +v -1.705540 7.184847 2.105287 +v -1.526129 7.184847 2.105287 +v -1.526129 9.833411 2.105287 +v -1.705540 7.967402 7.346314 +v -1.705540 7.967403 18.319260 +v -1.333642 7.967403 19.492821 +v -1.333642 7.184847 19.492821 +v -1.705540 9.321173 2.105287 +v -1.705540 9.660696 2.105287 +v -1.705540 8.055083 6.892087 +v -1.333642 8.055083 6.892087 +v -1.333642 7.967402 7.346314 +v -1.705540 9.660696 -0.511597 +v -1.238688 9.417337 -4.333549 +v -1.705540 9.660696 -4.131682 +v -1.526129 9.833411 1.303783 +v -1.705540 8.782389 -4.842924 +v -1.705540 9.660696 -1.313099 +v -1.705540 7.184847 -1.313099 +v -1.705540 7.184847 -0.511597 +v -1.705540 9.660696 -0.004658 +v -1.705540 7.184847 -0.004658 +v -1.705540 7.184847 0.796844 +v -1.526129 9.833411 -0.004658 +v -1.705540 9.660696 0.796844 +v -1.526129 9.833411 0.796844 +v -0.813732 5.420444 16.849926 +v -0.813732 7.184847 21.944122 +v -1.526129 7.184847 -1.313099 +v -1.526129 9.833411 -1.313099 +v -1.526129 9.833411 -1.820038 +v -0.947015 10.390597 11.777044 +v -1.016029 10.321228 11.777044 +v -1.705540 8.752759 6.288157 +v -1.526129 9.833411 3.920664 +v -1.526129 9.833411 3.413726 +v -1.526129 9.326169 3.413726 +v 1.326382 8.752767 6.288157 +v -1.171832 8.402290 6.532843 +v -1.171832 8.578353 11.777044 +v -1.171832 8.402287 11.660702 +v 0.632517 10.019367 5.830758 +v 0.632517 10.019367 6.288155 +v 0.408756 10.019367 6.288155 +v -0.654714 10.019367 5.830758 +v -0.409408 10.019367 5.830758 +v -0.409408 10.019367 6.288155 +v 0.632517 10.019367 6.288155 +v 0.958007 9.683130 11.555178 +v 1.156401 7.184845 5.830760 +v 1.156401 7.184847 11.897295 +v 0.941169 9.203604 11.872110 +v 1.018714 8.813759 11.876556 +v 1.018714 8.813761 21.944122 +v 0.720340 9.534099 11.876594 +v 0.941169 9.203606 21.944122 +v 0.389845 9.754928 11.891424 +v 0.720340 9.534101 21.944122 +v 0.000000 9.832473 11.897295 +v 0.389845 9.754930 21.944122 +v 0.814306 10.296816 20.190464 +v 0.814306 10.492235 20.190464 +v 0.000000 9.832475 21.944122 +v -0.389845 9.754930 21.944122 +v -0.389845 9.754928 11.897295 +v -0.720340 9.534101 21.944122 +v -0.720340 9.534099 11.896715 +v 0.893030 10.296816 20.116810 +v 0.893030 10.492235 20.116810 +v 0.893030 10.296816 19.372772 +v 0.893030 10.492235 19.372772 +v -0.941169 9.203604 11.897295 +v -0.941169 9.203606 21.944122 +v -1.018714 8.813761 21.944122 +v -1.018714 8.813759 11.897295 +v -0.941169 8.423916 21.944122 +v -0.941169 8.423914 11.897295 +v -0.720340 8.093421 21.944122 +v -0.720340 8.093419 11.897295 +v -0.389845 7.872591 21.944122 +v -0.389845 7.872592 11.897295 +v 0.000000 7.795045 21.944122 +v 0.000000 7.795045 11.897295 +v 0.000000 7.795045 21.944122 +v 0.389845 7.872591 21.944122 +v 0.389845 7.872592 11.897295 +v 0.720340 8.093421 21.944122 +v 0.720340 8.093419 11.890940 +v 0.814306 10.296816 19.285318 +v 0.814306 10.492235 19.285318 +v 0.893030 10.492235 19.372772 +v 0.941169 8.423914 11.883168 +v 0.941169 8.423916 21.944122 +v 0.359371 10.492235 19.285318 +v -0.814306 10.296816 19.285318 +v -0.359371 10.492235 19.285318 +v -0.167762 10.787160 19.556133 +v 0.167762 10.787160 19.556133 +v -0.167762 11.355712 19.816681 +v 0.167762 11.355712 19.816681 +v -0.814306 10.157009 0.372429 +v 0.814306 10.157009 0.372429 +v 0.814306 10.357646 0.372429 +v 1.014517 10.157009 0.196239 +v 1.014517 10.369081 0.196239 +v -0.143185 10.723700 -1.978916 +v 0.143185 10.723700 -1.978916 +v 0.143185 10.723700 -2.690544 +v 0.143185 11.207904 -2.300617 +v 0.143185 10.723700 -1.978916 +v 0.335502 11.207904 -2.300617 +v 1.014517 10.723700 -1.978916 +v 1.014517 11.207904 -2.300617 +v 1.014517 10.606321 -1.825949 +v -1.014517 10.606321 -1.825949 +v -1.014517 10.491154 -1.431076 +v 1.014517 10.491154 -1.431076 +v -0.814306 10.357646 0.372429 +v 0.814306 10.357646 0.372429 +v 1.014517 10.369081 0.196239 +v -1.014517 10.369081 0.196239 +v -1.171832 9.475291 11.897295 +v 0.632517 10.019367 11.897295 +v 0.720340 9.534099 11.876594 +v 0.000000 9.832473 11.897295 +v -0.654714 10.019367 11.897295 +v -0.720340 9.534099 11.896715 +v -1.171832 9.475291 11.897295 +v 0.941169 8.423914 11.883168 +v 0.720340 8.093419 11.890940 +v 0.389845 7.872592 11.897295 +v -0.941169 9.203604 11.897295 +v -0.389845 9.754928 11.897295 +v 0.389845 9.754928 11.891424 +v 0.941169 9.203604 11.872110 +v -1.524936 8.927025 1.935822 +v -1.526129 9.833411 2.105287 +v -1.526129 9.321173 2.105287 +v -1.526129 9.326169 2.612224 +v 0.335502 11.269897 -2.300617 +v 0.143185 11.269897 -2.300617 +v -0.167762 10.787160 19.556133 +v -0.167762 10.787160 20.190464 +v -0.167762 11.355712 20.190464 +v -0.359371 10.492235 20.190464 +v -0.814306 10.492235 20.190464 +v -0.814306 10.296816 20.190464 +v -0.893030 10.296816 20.116810 +v -0.893030 10.296816 19.372772 +v -0.893030 10.492235 20.116810 +v -0.893030 10.296816 19.372772 +v -0.893030 10.492235 19.372772 +v -0.814306 10.492235 19.285318 +v -0.143185 10.723700 -1.978916 +v -1.014517 10.723700 -1.978916 +v -0.814306 10.357646 0.372429 +v -0.335502 11.269897 -2.300617 +v -0.335502 11.207904 -2.300617 +v -0.143185 11.207904 -2.300617 +v 1.526129 9.833411 0.796844 +v -0.451145 8.974197 5.975873 +v -0.345291 9.132619 5.975873 +v -0.345291 9.132619 5.773399 +v -0.186870 9.238472 5.975873 +v -0.186870 9.238472 5.773399 +v 0.345291 8.442036 5.975873 +v 0.186870 8.336183 5.975873 +v 0.186870 8.336183 5.773399 +v 0.000000 9.275643 5.975873 +v 0.000000 9.275643 5.773399 +v 0.186870 9.238472 5.975873 +v 0.186870 9.238472 5.773399 +v 0.451145 8.600457 5.975873 +v 0.345291 8.442036 5.773399 +v 0.345291 9.132619 5.975873 +v 0.345291 9.132619 5.773399 +v 0.451145 8.974197 5.975873 +v 0.451145 8.974197 5.773399 +v 0.488316 8.787328 5.975873 +v 0.451145 8.600457 5.773399 +v 0.488316 8.787328 5.773399 +v -0.186870 8.336183 5.975873 +v -0.345291 8.442036 5.975873 +v -0.345291 8.442036 5.773399 +v -0.451145 8.600457 5.975873 +v -0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.773399 +v 0.000000 8.299012 5.975873 +v -0.186870 8.336183 5.773399 +v 0.000000 8.299012 5.773399 +v -0.451145 8.974197 5.773399 +v -0.451145 8.600457 5.773399 +v -1.360494 8.796173 2.190354 +v -1.659889 8.796173 2.190354 +v -1.659889 8.927017 2.059509 +v -1.659889 9.139336 2.059509 +v -1.360494 9.139336 2.059509 +v -1.360494 8.927017 2.059509 +v -1.360494 9.270180 2.190354 +v -1.659889 9.270180 2.190354 +v -1.659889 9.270180 6.250484 +v -1.360494 8.796173 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 9.326169 6.288157 +v -1.524936 8.927025 1.935822 +v -1.526129 7.184847 0.796844 +v -1.526129 8.752565 2.110280 +v -1.524936 9.151711 1.935822 +v 0.167762 10.787160 20.190464 +v -1.526129 7.184847 -0.511597 +v 0.947015 10.390599 21.944122 +v 1.705540 7.184847 3.413727 +v 0.408756 10.107763 -3.763228 +v 1.705540 7.967403 18.319260 +v 1.526129 9.833411 1.303783 +v -1.132077 10.212755 -2.753816 +v 1.705540 7.184847 -1.313099 +v 1.705540 7.184847 -0.004658 +v 1.526129 9.833411 2.612224 +v 1.526129 9.833411 3.920664 +v 1.526129 9.833411 -0.004658 +v 1.705540 7.184847 2.105287 +v 1.526043 7.184847 -2.765843 +v -1.705540 9.326169 3.413726 +v -1.333642 7.967403 19.492821 +v -1.705540 9.660696 2.105287 +v -1.333642 7.184847 21.944122 +v -0.813732 7.184847 16.849926 +v -1.526129 7.184847 -1.820038 +v -1.526129 9.326169 3.920664 +v -1.333642 8.402287 11.660702 +v 0.408756 10.019367 5.830758 +v -0.654714 10.019367 6.288155 +v 0.869641 10.390597 11.777044 +v 0.000000 7.795045 11.897295 +v 0.893030 10.296816 19.372772 +v -0.143185 10.723700 -2.690544 +v -1.526129 9.833411 2.612224 +v -0.167762 11.355712 19.816681 +v -0.359371 10.492235 19.285318 +v -0.893030 10.492235 19.372772 +v -0.143185 11.269897 -2.300617 +v -1.014517 11.207904 -2.300617 +v -1.360494 9.270180 6.250484 +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.0001 +vn -1.0000 -0.0000 0.0005 +vn -0.0000 -0.7793 -0.6266 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 0.0001 -0.0001 +vn 1.0000 -0.0005 -0.0001 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 0.2954 -0.9554 +vn 1.0000 -0.0000 -0.0001 +vn -1.0000 -0.0000 -0.0001 +vn -0.0000 -1.0000 -0.0001 +vn -1.0000 0.0001 -0.0001 +vn -0.0000 0.3579 0.9338 +vn -0.0000 0.3242 -0.9460 +vn -0.0000 -0.9724 -0.2331 +vn -0.0000 0.6488 0.7610 +vn -0.0000 0.6112 0.7915 +vn -0.0000 0.3594 0.9332 +vn -0.0000 0.3979 0.9174 +vn 0.3944 -0.9189 -0.0000 +vn -0.2584 -0.9660 -0.0000 +vn -0.0544 0.0347 -0.9979 +vn -0.9202 0.3915 -0.0000 +vn -0.9202 0.3914 -0.0000 +vn -1.0000 -0.0000 -0.0023 +vn -1.0000 -0.0001 -0.0070 +vn -0.7948 0.6069 -0.0000 +vn -0.8837 0.4681 -0.0000 +vn -0.9815 0.1914 -0.0000 +vn 0.9202 0.3914 -0.0000 +vn 0.7785 0.6277 -0.0000 +vn 0.8716 -0.4902 0.0001 +vn 0.9946 -0.0000 0.1036 +vn 0.9501 0.3120 -0.0000 +vn 0.9922 -0.0000 0.1244 +vn -0.0000 -0.9849 0.1730 +vn -0.0000 -0.8848 0.4659 +vn -0.0000 -0.5054 0.8629 +vn 0.0001 -0.2527 0.9675 +vn -0.0000 -0.3827 0.9239 +vn -0.0001 0.5055 0.8628 +vn -0.0151 0.3827 0.9237 +vn -0.0075 0.3820 0.9241 +vn -0.0098 -0.0134 -0.9999 +vn -0.0135 0.0030 -0.9999 +vn -0.0078 -0.0088 -0.9999 +vn -0.9112 -0.0000 0.4119 +vn 0.9588 0.2841 -0.0000 +vn 0.8386 0.5448 -0.0000 +vn -0.8061 -0.3082 -0.5053 +vn -0.8143 -0.5805 -0.0013 +vn -0.5167 -0.8561 -0.0000 +vn 0.6940 0.7200 -0.0000 +vn 0.4341 0.8971 0.0825 +vn 0.9006 0.4347 0.0001 +vn -0.6892 0.1308 -0.7126 +vn -0.9536 0.0970 -0.2850 +vn -0.9956 0.0942 -0.0000 +vn -0.8233 -0.5676 0.0006 +vn -0.9600 -0.2555 -0.1143 +vn -0.3908 -0.9205 0.0012 +vn -0.9277 -0.3732 0.0009 +vn -0.8233 -0.5676 0.0008 +vn 0.8835 0.4684 -0.0000 +vn -0.9987 0.0005 0.0512 +vn -1.0000 0.0021 -0.0000 +vn -0.9198 0.3925 -0.0002 +vn -0.8535 0.5212 0.0001 +vn 0.1239 0.9740 0.1894 +vn 0.4932 0.8699 -0.0000 +vn -0.0000 0.9039 -0.4278 +vn -0.0000 0.8020 -0.5974 +vn -0.2691 0.9151 -0.3004 +vn -0.1559 0.0685 -0.9854 +vn -0.0000 0.2196 -0.9756 +vn -0.0000 0.2883 -0.9575 +vn -0.8561 0.5167 -0.0000 +vn -0.2979 0.9546 -0.0000 +vn -0.2469 0.9690 -0.0000 +vn 0.0544 0.9985 0.0027 +vn 0.3979 0.9174 0.0029 +vn 0.1126 0.9936 -0.0000 +vn 0.4235 0.9059 0.0029 +vn 0.9695 -0.2451 -0.0000 +vn 0.8716 -0.4902 -0.0000 +vn 0.4233 0.9060 0.0029 +vn 0.6497 0.7602 -0.0000 +vn -0.8837 0.4680 -0.0000 +vn -0.6017 0.7987 -0.0000 +vn -0.8561 0.5168 -0.0000 +vn -0.6934 0.7206 -0.0000 +vn -0.8186 0.5743 -0.0000 +vn 0.2692 0.9150 -0.3004 +vn 0.1831 0.9831 -0.0000 +vn 0.5496 0.8354 -0.0000 +vn -0.2622 0.9451 0.1950 +vn -0.4802 0.8651 0.1452 +vn 0.3027 0.9480 -0.0986 +vn -0.3083 0.9299 -0.2006 +vn -0.2470 0.9690 -0.0000 +vn 0.3052 0.9313 -0.1990 +vn -0.3051 0.9470 -0.1000 +vn 0.9878 -0.0000 0.1556 +vn 0.4972 -0.8676 -0.0000 +vn 0.9665 -0.2568 -0.0000 +vn 0.8580 -0.5136 -0.0000 +vn -0.0000 0.9980 0.0635 +vn -0.0000 0.9919 0.1269 +vn 0.8837 0.4681 -0.0000 +vn -0.0000 0.6730 0.7397 +vn -0.0000 0.6239 0.7815 +vn -0.0000 0.8374 0.5466 +vn -0.0000 0.9284 0.3717 +vn -0.0000 0.1989 0.9800 +vn 0.0033 0.6337 -0.7736 +vn 0.0022 0.6324 -0.7747 +vn -0.0001 0.7210 -0.6930 +vn -0.0000 0.6324 -0.7746 +vn -0.2468 0.9691 -0.0000 +vn -0.0000 0.6332 -0.7740 +vn -0.0001 0.4392 -0.8984 +vn 0.0028 0.4406 -0.8977 +vn 0.8561 0.5169 -0.0001 +vn 0.2691 0.9151 -0.3004 +vn 0.7948 0.6069 -0.0000 +vn 0.8561 0.5168 -0.0000 +vn 0.9660 0.2584 -0.0000 +vn 0.9660 0.2584 0.0001 +vn 0.8561 0.5168 -0.0002 +vn 0.8561 0.5168 -0.0001 +vn -0.3763 -0.9265 -0.0000 +vn 0.2486 -0.9686 -0.0000 +vn 0.3737 0.9275 -0.0000 +vn -0.0001 0.2196 -0.9756 +vn 0.8837 0.4680 -0.0000 +vn 0.7785 0.6276 -0.0000 +vn 0.9202 0.3915 -0.0000 +vn -0.0000 -0.7520 0.6592 +vn -0.8561 0.5169 -0.0001 +vn -0.6262 0.7797 -0.0000 +vn -0.9883 -0.0000 0.1528 +vn -0.9881 0.0006 0.1536 +vn -0.8580 -0.5136 -0.0000 +vn -0.0139 -0.0016 0.9999 +vn -0.0000 -0.0032 1.0000 +vn -0.9881 0.0014 0.1536 +vn -0.0000 0.9284 0.3716 +vn -0.0000 0.8374 0.5465 +vn -0.0022 0.6324 -0.7746 +vn -0.0027 0.6339 -0.7734 +vn -0.0015 0.4406 -0.8977 +vn -0.9660 0.2584 -0.0000 +vn -0.9665 -0.2568 -0.0000 +vn -0.3839 0.9234 -0.0000 +vn -0.6994 0.7147 -0.0000 +vn -0.0000 0.5725 0.8199 +vn -0.0000 0.5724 0.8199 +vn -0.0000 0.2878 -0.9577 +vn -0.0000 0.5513 -0.8343 +vn -0.3908 -0.9205 0.0007 +vn -0.3902 -0.9207 -0.0000 +vn -0.9601 -0.2554 -0.1143 +vn -0.9472 -0.3207 -0.0000 +vn -0.9978 0.0661 -0.0000 +vn -0.9978 -0.0662 -0.0000 +vn -0.7523 -0.6588 -0.0000 +vn -0.8965 -0.4430 -0.0000 +vn -0.4430 -0.8965 -0.0000 +vn -0.6588 -0.7523 -0.0000 +vn -0.0661 -0.9978 -0.0000 +vn -0.3207 -0.9472 -0.0000 +vn 0.1802 -0.0001 0.9836 +vn 0.4855 -0.0001 0.8742 +vn 0.0662 -0.9978 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.3828 -0.9238 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.8510 -0.0001 0.5252 +vn 0.9649 -0.0001 0.2626 +vn 0.9715 -0.0000 -0.2369 +vn 0.8806 -0.0000 -0.4739 +vn 0.8965 -0.4430 -0.0000 +vn 0.9472 -0.3207 -0.0000 +vn 0.9978 0.0662 -0.0000 +vn 0.9978 -0.0662 -0.0000 +vn 0.8965 0.4430 -0.0000 +vn 0.9472 0.3207 -0.0000 +vn 0.6588 0.7523 -0.0000 +vn 0.7523 0.6588 0.0001 +vn 0.3207 0.9472 -0.0000 +vn 0.4430 0.8965 -0.0000 +vn -0.0662 0.9978 -0.0000 +vn 0.0661 0.9978 -0.0000 +vn -0.0661 0.9978 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.3831 0.9237 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.4068 -0.0000 -0.9135 +vn -0.8965 0.4430 -0.0000 +vn -0.9472 0.3207 -0.0000 +vn -0.0000 0.2895 -0.9572 +vn -0.3241 -0.0000 -0.9460 +vn -0.0000 0.2399 -0.9708 +vn -0.0000 0.5962 -0.8028 +vn -0.0000 0.5087 -0.8609 +vn -0.0000 0.4166 -0.9091 +vn -0.2336 -0.0000 0.9723 +vn 0.3531 -0.0000 0.9356 +vn 0.9112 -0.0000 0.4119 +vn -0.0000 0.8520 0.5235 +vn -0.0003 0.7892 0.6142 +vn -0.0000 0.1917 0.9814 +vn -0.0000 0.7892 0.6142 +vn -0.0000 0.4287 0.9035 +vn -0.0000 0.6411 0.7674 +vn -0.0000 0.5534 0.8329 +vn -0.0000 0.8920 0.4521 +vn -0.0000 0.8459 0.5334 +vn -0.0000 0.9771 0.2126 +vn -0.0000 0.9896 0.1439 +vn -0.0000 0.9979 0.0648 +vn -0.0000 0.9977 0.0682 +vn -0.0000 0.9974 0.0716 +vn 0.9695 -0.2451 -0.0001 +vn -0.0111 0.0273 -0.9996 +vn -0.0194 0.0258 -0.9995 +vn -0.0030 0.0101 -0.9999 +vn -0.0000 0.0008 -1.0000 +vn -0.0005 0.0005 -1.0000 +vn -0.0009 -0.0000 -1.0000 +vn -0.0148 -0.0140 -0.9998 +vn -0.0126 -0.0131 -0.9998 +vn -0.0055 -0.0061 -1.0000 +vn -0.0004 -0.0004 -1.0000 +vn 0.0004 0.0004 -1.0000 +vn -0.0138 0.0348 -0.9993 +vn -0.0152 -0.0072 -0.9999 +vn -0.0000 0.2527 0.9675 +vn -0.9588 0.2841 -0.0000 +vn -0.8386 0.5448 -0.0000 +vn -0.4855 -0.0000 0.8742 +vn -0.2428 -0.0000 0.9701 +vn -0.8510 -0.0000 0.5252 +vn -0.9715 0.0001 -0.2369 +vn -0.9649 -0.0000 0.2626 +vn -0.9715 -0.0000 -0.2370 +vn -0.8806 -0.0000 -0.4739 +vn -0.4068 -0.0000 -0.9135 +vn -0.0000 0.8521 0.5234 +vn -0.4670 -0.0000 0.8842 +vn -0.6588 0.7523 -0.0000 +vn -0.7523 0.6588 -0.0000 +vn -0.3207 0.9472 -0.0000 +vn -0.4430 0.8965 -0.0000 +vn 0.6588 -0.7523 -0.0000 +vn 0.3207 -0.9472 -0.0000 +vn 0.4430 -0.8965 -0.0000 +vn 0.7523 -0.6588 -0.0000 +vn 0.7523 0.6588 -0.0000 +vn 0.9978 -0.0661 -0.0000 +vn 0.9978 0.0661 -0.0000 +vn -0.9978 -0.0661 -0.0000 +vn 0.0661 -0.9978 -0.0000 +vn -0.0001 -0.8629 -0.5054 +vn -0.0000 -0.9675 -0.2527 +vn -0.0001 -0.5054 -0.8629 +vn -0.0000 0.2527 -0.9675 +vn -0.0000 0.5054 -0.8629 +vn -0.0000 -0.2527 -0.9675 +vn -0.0000 0.9675 -0.2527 +vn 0.0001 0.8629 -0.5054 +vn -1.0000 -0.0000 -0.0068 +vn -1.0000 -0.0000 -0.0028 +vn -0.0000 -0.3821 0.9241 +vn 0.3738 0.9275 -0.0000 +vn 0.0001 0.7210 -0.6930 +vn 0.7948 0.6069 -0.0002 +vn -0.6262 0.7797 -0.0001 +vn 0.7948 0.6069 0.0002 +vn -0.0000 -0.9849 0.1731 +vn -0.9987 -0.0000 0.0512 +vn -1.0000 0.0026 -0.0000 +vn 0.0662 0.9978 -0.0000 +vn 0.9715 -0.0000 -0.2370 +vt 0.665882 0.347767 +vt 0.666023 0.347766 +vt 0.666162 0.347974 +vt 0.668422 0.348903 +vt 0.668420 0.348450 +vt 0.668128 0.348707 +vt 0.670331 0.347891 +vt 0.670113 0.347891 +vt 0.670112 0.348138 +vt 0.648961 0.347035 +vt 0.648963 0.347711 +vt 0.650088 0.347182 +vt 0.670330 0.348139 +vt 0.670330 0.348216 +vt 0.671351 0.348220 +vt 0.671351 0.348142 +vt 0.655673 0.344315 +vt 0.655725 0.344372 +vt 0.655911 0.344201 +vt 0.649593 0.340884 +vt 0.649645 0.341960 +vt 0.649646 0.340955 +vt 0.656134 0.344371 +vt 0.649941 0.340885 +vt 0.655073 0.340475 +vt 0.655070 0.339797 +vt 0.654996 0.339724 +vt 0.671575 0.327451 +vt 0.671356 0.327477 +vt 0.671982 0.327480 +vt 0.644693 0.340192 +vt 0.644385 0.340134 +vt 0.644557 0.340283 +vt 0.644700 0.340269 +vt 0.647509 0.341099 +vt 0.649593 0.340718 +vt 0.646875 0.340713 +vt 0.646368 0.340876 +vt 0.650439 0.347369 +vt 0.650243 0.347332 +vt 0.648903 0.346602 +vt 0.648902 0.346797 +vt 0.650571 0.346464 +vt 0.653087 0.342196 +vt 0.653087 0.342119 +vt 0.652263 0.341965 +vt 0.653089 0.340724 +vt 0.649942 0.340719 +vt 0.652265 0.340960 +vt 0.652957 0.336625 +vt 0.652061 0.336628 +vt 0.652064 0.337317 +vt 0.653168 0.336809 +vt 0.656866 0.340895 +vt 0.655346 0.340806 +vt 0.653970 0.340890 +vt 0.671253 0.338233 +vt 0.671472 0.338233 +vt 0.671470 0.337557 +vt 0.652046 0.346806 +vt 0.665497 0.338599 +vt 0.665663 0.338599 +vt 0.665663 0.338404 +vt 0.647507 0.341802 +vt 0.653089 0.340802 +vt 0.669772 0.341914 +vt 0.669364 0.341701 +vt 0.670181 0.341704 +vt 0.650766 0.346427 +vt 0.652276 0.346675 +vt 0.652808 0.346599 +vt 0.652882 0.346653 +vt 0.666531 0.348446 +vt 0.666675 0.348446 +vt 0.666674 0.348692 +vt 0.671544 0.335436 +vt 0.671154 0.335438 +vt 0.671154 0.335634 +vt 0.671512 0.335403 +vt 0.671191 0.335404 +vt 0.653306 0.342119 +vt 0.653308 0.340802 +vt 0.653969 0.341610 +vt 0.653969 0.341314 +vt 0.657096 0.340687 +vt 0.657251 0.340835 +vt 0.657446 0.340872 +vt 0.666338 0.341178 +vt 0.666344 0.341136 +vt 0.666141 0.341132 +vt 0.671982 0.327709 +vt 0.671281 0.327706 +vt 0.671277 0.328466 +vt 0.671424 0.328610 +vt 0.671831 0.328612 +vt 0.671979 0.328470 +vt 0.645308 0.342022 +vt 0.646366 0.342024 +vt 0.645309 0.341798 +vt 0.654435 0.342121 +vt 0.654435 0.342199 +vt 0.654781 0.342199 +vt 0.671983 0.325746 +vt 0.671796 0.325132 +vt 0.671793 0.326094 +vt 0.671982 0.325897 +vt 0.672220 0.326096 +vt 0.671777 0.334214 +vt 0.671776 0.334827 +vt 0.672010 0.334827 +vt 0.653873 0.340803 +vt 0.653654 0.340803 +vt 0.655346 0.340729 +vt 0.655001 0.340728 +vt 0.655001 0.340805 +vt 0.653654 0.340725 +vt 0.653308 0.340725 +vt 0.671788 0.332239 +vt 0.671789 0.331098 +vt 0.671711 0.331172 +vt 0.652553 0.348753 +vt 0.652553 0.349106 +vt 0.652681 0.349106 +vt 0.672085 0.331172 +vt 0.672007 0.331098 +vt 0.672006 0.332240 +vt 0.656870 0.341615 +vt 0.668193 0.332067 +vt 0.669156 0.332072 +vt 0.669169 0.329174 +vt 0.671795 0.322170 +vt 0.671872 0.322170 +vt 0.671867 0.321028 +vt 0.672090 0.322169 +vt 0.672168 0.322168 +vt 0.672163 0.321101 +vt 0.668481 0.329171 +vt 0.668206 0.329389 +vt 0.666338 0.332059 +vt 0.666535 0.332060 +vt 0.666549 0.329162 +vt 0.652436 0.348631 +vt 0.652336 0.348753 +vt 0.671870 0.322396 +vt 0.671793 0.322471 +vt 0.671795 0.323538 +vt 0.670269 0.345604 +vt 0.670270 0.345453 +vt 0.670505 0.345454 +vt 0.672166 0.322470 +vt 0.672088 0.322396 +vt 0.672090 0.323538 +vt 0.645310 0.341095 +vt 0.667770 0.332065 +vt 0.666770 0.332061 +vt 0.666784 0.329163 +vt 0.671056 0.346443 +vt 0.670979 0.346517 +vt 0.670974 0.347585 +vt 0.670666 0.345804 +vt 0.670503 0.345803 +vt 0.670504 0.345605 +vt 0.671270 0.347586 +vt 0.671347 0.347586 +vt 0.671352 0.346519 +vt 0.667782 0.329387 +vt 0.667509 0.329166 +vt 0.666922 0.332062 +vt 0.666935 0.329164 +vt 0.671361 0.326336 +vt 0.671283 0.326410 +vt 0.671279 0.327477 +vt 0.667157 0.332063 +vt 0.667170 0.329165 +vt 0.657272 0.345497 +vt 0.657273 0.344680 +vt 0.657191 0.344600 +vt 0.671652 0.327452 +vt 0.671656 0.326411 +vt 0.651028 0.346127 +vt 0.650922 0.346278 +vt 0.655755 0.344598 +vt 0.655674 0.344677 +vt 0.655673 0.345494 +vt 0.645310 0.340874 +vt 0.654782 0.340805 +vt 0.653652 0.342120 +vt 0.653968 0.342037 +vt 0.653873 0.340726 +vt 0.654218 0.340804 +vt 0.654219 0.340726 +vt 0.654437 0.340804 +vt 0.654782 0.340727 +vt 0.672010 0.334979 +vt 0.671775 0.334978 +vt 0.671775 0.335176 +vt 0.672199 0.335177 +vt 0.672223 0.325134 +vt 0.653871 0.342120 +vt 0.655345 0.342200 +vt 0.655345 0.342122 +vt 0.655000 0.342122 +vt 0.653652 0.342197 +vt 0.656756 0.344189 +vt 0.656833 0.344189 +vt 0.656833 0.344045 +vt 0.671877 0.347120 +vt 0.671954 0.347119 +vt 0.671951 0.346443 +vt 0.671581 0.347121 +vt 0.671659 0.347121 +vt 0.671655 0.346445 +vt 0.656460 0.344190 +vt 0.656538 0.344190 +vt 0.656537 0.343971 +vt 0.671606 0.348023 +vt 0.671952 0.348024 +vt 0.671954 0.347348 +vt 0.667304 0.332303 +vt 0.667016 0.335199 +vt 0.666328 0.335196 +vt 0.671469 0.337246 +vt 0.671546 0.337245 +vt 0.671544 0.337101 +vt 0.671549 0.338232 +vt 0.671547 0.337557 +vt 0.667291 0.334981 +vt 0.669169 0.332311 +vt 0.669156 0.335209 +vt 0.668958 0.335208 +vt 0.652436 0.349228 +vt 0.652591 0.349228 +vt 0.672007 0.329730 +vt 0.672007 0.330872 +vt 0.672084 0.330872 +vt 0.669596 0.345601 +vt 0.669357 0.345600 +vt 0.669358 0.345449 +vt 0.671711 0.329804 +vt 0.671711 0.330872 +vt 0.671788 0.330872 +vt 0.667731 0.332305 +vt 0.667718 0.334983 +vt 0.668972 0.332310 +vt 0.668720 0.335207 +vt 0.672007 0.332466 +vt 0.672006 0.333607 +vt 0.672083 0.333608 +vt 0.669356 0.345798 +vt 0.669196 0.345797 +vt 0.671787 0.333607 +vt 0.671789 0.332465 +vt 0.671711 0.332540 +vt 0.667991 0.335204 +vt 0.668734 0.332309 +vt 0.668569 0.335206 +vt 0.654781 0.342122 +vt 0.656868 0.342041 +vt 0.672089 0.323764 +vt 0.672090 0.324906 +vt 0.672168 0.324906 +vt 0.668344 0.332307 +vt 0.668331 0.335205 +vt 0.668582 0.332308 +vt 0.656869 0.342187 +vt 0.655687 0.342123 +vt 0.653870 0.342198 +vt 0.654216 0.342198 +vt 0.671872 0.324906 +vt 0.671870 0.323765 +vt 0.671793 0.323839 +vt 0.654216 0.342121 +vt 0.671874 0.346444 +vt 0.644214 0.339986 +vt 0.644362 0.339846 +vt 0.644193 0.339756 +vt 0.644615 0.340046 +vt 0.644334 0.339545 +vt 0.644175 0.339559 +vt 0.661765 0.343274 +vt 0.661774 0.343476 +vt 0.661938 0.343468 +vt 0.644761 0.345897 +vt 0.644761 0.345737 +vt 0.644408 0.345736 +vt 0.661779 0.343575 +vt 0.661664 0.343724 +vt 0.661914 0.343724 +vt 0.666088 0.341451 +vt 0.652408 0.344048 +vt 0.653077 0.344280 +vt 0.652920 0.344378 +vt 0.644352 0.339741 +vt 0.665748 0.341793 +vt 0.665706 0.341738 +vt 0.663936 0.343063 +vt 0.644408 0.345896 +vt 0.644302 0.345896 +vt 0.644079 0.346130 +vt 0.644077 0.347117 +vt 0.645080 0.347119 +vt 0.645082 0.346132 +vt 0.667545 0.348453 +vt 0.667839 0.348708 +vt 0.667838 0.348452 +vt 0.671547 0.336174 +vt 0.671546 0.336029 +vt 0.671385 0.336030 +vt 0.645949 0.348760 +vt 0.645922 0.348760 +vt 0.645922 0.348928 +vt 0.645519 0.348898 +vt 0.645812 0.348899 +vt 0.645813 0.348759 +vt 0.645520 0.348758 +vt 0.645839 0.348927 +vt 0.645839 0.348759 +vt 0.665999 0.338618 +vt 0.666027 0.338619 +vt 0.666027 0.338335 +vt 0.671398 0.339640 +vt 0.671245 0.339741 +vt 0.671571 0.340011 +vt 0.671500 0.339488 +vt 0.671536 0.339308 +vt 0.671066 0.339776 +vt 0.669561 0.343988 +vt 0.669414 0.343844 +vt 0.670116 0.343846 +vt 0.669417 0.343083 +vt 0.670343 0.343087 +vt 0.670119 0.343086 +vt 0.670101 0.342715 +vt 0.670239 0.342384 +vt 0.670344 0.341862 +vt 0.670103 0.342052 +vt 0.669440 0.342050 +vt 0.669200 0.341858 +vt 0.669301 0.342381 +vt 0.669196 0.343083 +vt 0.669438 0.342713 +vt 0.669338 0.342202 +vt 0.669592 0.341949 +vt 0.670204 0.342205 +vt 0.670203 0.342563 +vt 0.669948 0.342816 +vt 0.669769 0.342851 +vt 0.669589 0.342815 +vt 0.669336 0.342560 +vt 0.669968 0.343989 +vt 0.669951 0.341950 +vt 0.665497 0.338404 +vt 0.665149 0.338488 +vt 0.665150 0.338600 +vt 0.664984 0.338600 +vt 0.665458 0.338243 +vt 0.665110 0.338327 +vt 0.670113 0.347813 +vt 0.669767 0.347812 +vt 0.671352 0.347895 +vt 0.671352 0.347817 +vt 0.670331 0.347814 +vt 0.669766 0.348137 +vt 0.669766 0.348214 +vt 0.670112 0.348215 +vt 0.644857 0.345897 +vt 0.666110 0.338571 +vt 0.666110 0.338335 +vt 0.666316 0.338619 +vt 0.666233 0.338571 +vt 0.666316 0.338647 +vt 0.646157 0.348929 +vt 0.646158 0.348622 +vt 0.671549 0.336766 +vt 0.671548 0.336570 +vt 0.671158 0.336572 +vt 0.671517 0.336801 +vt 0.671159 0.336768 +vt 0.668127 0.348451 +vt 0.666344 0.338619 +vt 0.666344 0.338363 +vt 0.666317 0.338336 +vt 0.666234 0.338336 +vt 0.646280 0.348929 +vt 0.646516 0.348930 +vt 0.646490 0.348762 +vt 0.646626 0.348903 +vt 0.646626 0.348763 +vt 0.646599 0.348763 +vt 0.646517 0.348762 +vt 0.646599 0.348931 +vt 0.646918 0.348904 +vt 0.646919 0.348764 +vt 0.665884 0.348220 +vt 0.666228 0.348025 +vt 0.666399 0.348073 +vt 0.667547 0.348906 +vt 0.666529 0.348691 +vt 0.666756 0.348819 +vt 0.669247 0.347752 +vt 0.669249 0.348205 +vt 0.668969 0.347962 +vt 0.668904 0.348013 +vt 0.668734 0.348063 +vt 0.666446 0.348817 +vt 0.669107 0.347753 +vt 0.651009 0.348764 +vt 0.651047 0.348947 +vt 0.651082 0.348764 +vt 0.650945 0.349104 +vt 0.650893 0.349053 +vt 0.651150 0.348791 +vt 0.651202 0.348842 +vt 0.651013 0.349131 +vt 0.651231 0.348909 +vt 0.651231 0.348982 +vt 0.651086 0.349131 +vt 0.651204 0.349050 +vt 0.651153 0.349102 +vt 0.650942 0.348793 +vt 0.650864 0.348986 +vt 0.650891 0.348845 +vt 0.650864 0.348913 +vt 0.672001 0.336533 +vt 0.671992 0.338283 +vt 0.672197 0.338284 +vt 0.672049 0.338339 +vt 0.672140 0.338340 +vt 0.665496 0.328592 +vt 0.665496 0.328721 +vt 0.665700 0.328722 +vt 0.649982 0.347032 +vt 0.655858 0.344144 +vt 0.654727 0.340476 +vt 0.654996 0.339627 +vt 0.671545 0.335632 +vt 0.672221 0.325898 +vt 0.672200 0.334214 +vt 0.671711 0.332239 +vt 0.652681 0.348753 +vt 0.672084 0.332240 +vt 0.656871 0.341319 +vt 0.671790 0.321103 +vt 0.672085 0.321027 +vt 0.666351 0.329161 +vt 0.652591 0.348631 +vt 0.671872 0.323538 +vt 0.672168 0.323538 +vt 0.671051 0.347585 +vt 0.671275 0.346444 +vt 0.657189 0.345576 +vt 0.671579 0.326337 +vt 0.655754 0.345574 +vt 0.654437 0.340727 +vt 0.672221 0.325747 +vt 0.654999 0.342199 +vt 0.653306 0.342197 +vt 0.656755 0.343970 +vt 0.671578 0.346445 +vt 0.656460 0.344046 +vt 0.671609 0.347347 +vt 0.666342 0.332298 +vt 0.671466 0.337028 +vt 0.646872 0.342185 +vt 0.652336 0.349106 +vt 0.672085 0.329805 +vt 0.669596 0.345450 +vt 0.671789 0.329730 +vt 0.672085 0.332540 +vt 0.671710 0.333607 +vt 0.672166 0.323838 +vt 0.655687 0.342193 +vt 0.671795 0.324906 +vt 0.652075 0.340487 +vt 0.653379 0.340482 +vt 0.652073 0.339798 +vt 0.661929 0.343266 +vt 0.666317 0.341361 +vt 0.663978 0.343119 +vt 0.671386 0.336174 +vt 0.665999 0.338362 +vt 0.664984 0.338489 +vt 0.669767 0.347890 +vt 0.666027 0.338646 +vt 0.671197 0.336802 +vt 0.646282 0.348623 +vt 0.672205 0.336534 +vt 0.665701 0.328592 +vt 0.645130 0.340230 +vt 0.645115 0.340070 +vt 0.644939 0.340169 +vt 0.644925 0.340018 +vt 0.653589 0.346722 +vt 0.653589 0.346671 +vt 0.654138 0.346662 +vt 0.665807 0.340688 +vt 0.656870 0.339398 +vt 0.655850 0.339403 +vt 0.655851 0.339547 +vt 0.669550 0.348136 +vt 0.669549 0.347891 +vt 0.669475 0.347964 +vt 0.654722 0.339409 +vt 0.653268 0.346667 +vt 0.645840 0.346789 +vt 0.648555 0.346796 +vt 0.648555 0.346685 +vt 0.653368 0.337690 +vt 0.653364 0.336650 +vt 0.645841 0.346452 +vt 0.655971 0.340807 +vt 0.656866 0.340731 +vt 0.655971 0.340730 +vt 0.671250 0.337251 +vt 0.671173 0.337252 +vt 0.671174 0.337355 +vt 0.671175 0.337452 +vt 0.671176 0.337555 +vt 0.671254 0.337557 +vt 0.670598 0.339307 +vt 0.670569 0.339021 +vt 0.670567 0.340009 +vt 0.668033 0.348210 +vt 0.668032 0.348119 +vt 0.671272 0.335785 +vt 0.654284 0.346628 +vt 0.654463 0.346686 +vt 0.654139 0.346714 +vt 0.653167 0.344749 +vt 0.668714 0.344925 +vt 0.673954 0.344135 +vt 0.665656 0.340670 +vt 0.665851 0.340483 +vt 0.665756 0.340431 +vt 0.664125 0.338873 +vt 0.663934 0.339073 +vt 0.665576 0.340641 +vt 0.654003 0.344111 +vt 0.654328 0.344094 +vt 0.654215 0.344297 +vt 0.669114 0.339976 +vt 0.644900 0.339700 +vt 0.651779 0.345198 +vt 0.651935 0.345050 +vt 0.652048 0.344354 +vt 0.651583 0.345233 +vt 0.662656 0.340850 +vt 0.659345 0.340602 +vt 0.659296 0.340678 +vt 0.674047 0.345242 +vt 0.653814 0.345328 +vt 0.653827 0.348209 +vt 0.646508 0.344057 +vt 0.649684 0.344093 +vt 0.649669 0.344043 +vt 0.669763 0.344216 +vt 0.669762 0.344374 +vt 0.669531 0.344215 +vt 0.665873 0.340511 +vt 0.669360 0.345109 +vt 0.665821 0.341739 +vt 0.654433 0.338957 +vt 0.656867 0.338944 +vt 0.656669 0.338713 +vt 0.656667 0.338361 +vt 0.654429 0.338141 +vt 0.656864 0.338360 +vt 0.656863 0.338096 +vt 0.653400 0.344098 +vt 0.653390 0.344296 +vt 0.652050 0.344171 +vt 0.649802 0.344145 +vt 0.656863 0.337912 +vt 0.654402 0.338030 +vt 0.656866 0.338712 +vt 0.655067 0.339300 +vt 0.655286 0.339299 +vt 0.654407 0.339067 +vt 0.655849 0.339296 +vt 0.656869 0.339171 +vt 0.655631 0.339297 +vt 0.652632 0.338147 +vt 0.652938 0.338146 +vt 0.652967 0.338035 +vt 0.662503 0.338903 +vt 0.662477 0.339733 +vt 0.662538 0.339781 +vt 0.670633 0.340349 +vt 0.670698 0.344205 +vt 0.674042 0.344163 +vt 0.655278 0.336619 +vt 0.655279 0.337686 +vt 0.655624 0.337686 +vt 0.662902 0.338878 +vt 0.662914 0.339780 +vt 0.662981 0.339739 +vt 0.645309 0.346450 +vt 0.645308 0.346788 +vt 0.666773 0.346076 +vt 0.666773 0.346282 +vt 0.668969 0.346283 +vt 0.652633 0.338379 +vt 0.652788 0.338378 +vt 0.642744 0.343779 +vt 0.670357 0.344943 +vt 0.661163 0.348102 +vt 0.661163 0.347939 +vt 0.655926 0.347949 +vt 0.674018 0.338472 +vt 0.669132 0.338416 +vt 0.661578 0.348101 +vt 0.661577 0.347938 +vt 0.661362 0.347939 +vt 0.661362 0.348102 +vt 0.662153 0.348100 +vt 0.662310 0.347937 +vt 0.661761 0.347938 +vt 0.670672 0.344629 +vt 0.670508 0.344764 +vt 0.670115 0.344376 +vt 0.669789 0.344760 +vt 0.652789 0.338731 +vt 0.652941 0.338962 +vt 0.670084 0.344762 +vt 0.670082 0.345113 +vt 0.670506 0.345115 +vt 0.670670 0.345116 +vt 0.652372 0.337694 +vt 0.670348 0.344219 +vt 0.655279 0.337793 +vt 0.656863 0.337685 +vt 0.655843 0.337686 +vt 0.655843 0.337793 +vt 0.653587 0.337690 +vt 0.653932 0.337689 +vt 0.653928 0.336621 +vt 0.654151 0.337688 +vt 0.654496 0.337687 +vt 0.654493 0.336620 +vt 0.652049 0.345739 +vt 0.651029 0.345736 +vt 0.662560 0.338873 +vt 0.666774 0.345670 +vt 0.668969 0.346078 +vt 0.666773 0.347043 +vt 0.668969 0.347044 +vt 0.670627 0.345147 +vt 0.673942 0.345184 +vt 0.646451 0.344107 +vt 0.661762 0.348101 +vt 0.670079 0.345801 +vt 0.669784 0.345800 +vt 0.669787 0.345111 +vt 0.670116 0.344218 +vt 0.654713 0.336619 +vt 0.654715 0.337686 +vt 0.655060 0.337686 +vt 0.655624 0.337793 +vt 0.653933 0.337796 +vt 0.653587 0.337797 +vt 0.653369 0.337798 +vt 0.654151 0.337795 +vt 0.655060 0.337793 +vt 0.654715 0.337794 +vt 0.656181 0.344310 +vt 0.655958 0.344139 +vt 0.652635 0.338964 +vt 0.652378 0.339418 +vt 0.652971 0.339073 +vt 0.655170 0.347691 +vt 0.655169 0.347353 +vt 0.653593 0.339306 +vt 0.653939 0.339305 +vt 0.653375 0.339415 +vt 0.653374 0.339307 +vt 0.655631 0.339404 +vt 0.655286 0.339406 +vt 0.655287 0.339550 +vt 0.655701 0.347689 +vt 0.668970 0.345671 +vt 0.668970 0.345465 +vt 0.652634 0.338732 +vt 0.668641 0.344399 +vt 0.670385 0.344396 +vt 0.671176 0.338233 +vt 0.671248 0.337030 +vt 0.645543 0.340191 +vt 0.650254 0.339752 +vt 0.650742 0.339545 +vt 0.669187 0.349359 +vt 0.669193 0.350916 +vt 0.655068 0.339554 +vt 0.655068 0.339408 +vt 0.645344 0.340210 +vt 0.645329 0.340050 +vt 0.645528 0.340032 +vt 0.653939 0.339413 +vt 0.669362 0.344758 +vt 0.669202 0.344621 +vt 0.654722 0.339302 +vt 0.669200 0.345108 +vt 0.653593 0.339414 +vt 0.653597 0.340482 +vt 0.653943 0.340480 +vt 0.654158 0.339412 +vt 0.654162 0.340479 +vt 0.654508 0.340478 +vt 0.654157 0.339304 +vt 0.654504 0.339410 +vt 0.654503 0.339303 +vt 0.666774 0.345464 +vt 0.668970 0.344705 +vt 0.659341 0.339758 +vt 0.659342 0.339807 +vt 0.644946 0.340247 +vt 0.652042 0.344901 +vt 0.645109 0.340001 +vt 0.665779 0.341683 +vt 0.661666 0.343279 +vt 0.661676 0.343481 +vt 0.653725 0.344114 +vt 0.653832 0.344119 +vt 0.653822 0.344318 +vt 0.654014 0.344308 +vt 0.654333 0.346558 +vt 0.655311 0.344043 +vt 0.655447 0.346648 +vt 0.661438 0.342326 +vt 0.661436 0.342143 +vt 0.657096 0.342143 +vt 0.661436 0.342509 +vt 0.657096 0.342326 +vt 0.661430 0.342692 +vt 0.657096 0.342509 +vt 0.661427 0.342875 +vt 0.657096 0.342692 +vt 0.666250 0.348901 +vt 0.666250 0.348816 +vt 0.657096 0.342875 +vt 0.657096 0.343058 +vt 0.661427 0.343058 +vt 0.657096 0.343240 +vt 0.661427 0.343240 +vt 0.666203 0.348900 +vt 0.666204 0.348816 +vt 0.665882 0.348899 +vt 0.665883 0.348814 +vt 0.661427 0.343423 +vt 0.657096 0.343423 +vt 0.657096 0.343606 +vt 0.661427 0.343606 +vt 0.657096 0.343789 +vt 0.661427 0.343789 +vt 0.657096 0.343972 +vt 0.661427 0.343972 +vt 0.657096 0.344155 +vt 0.661427 0.344155 +vt 0.657096 0.344338 +vt 0.661427 0.344338 +vt 0.657096 0.341411 +vt 0.657096 0.341594 +vt 0.661427 0.341594 +vt 0.657096 0.341777 +vt 0.661430 0.341777 +vt 0.649012 0.349171 +vt 0.649012 0.349086 +vt 0.648961 0.349086 +vt 0.661433 0.341960 +vt 0.657096 0.341960 +vt 0.649208 0.349086 +vt 0.649714 0.349170 +vt 0.649518 0.349086 +vt 0.649435 0.348914 +vt 0.649290 0.348914 +vt 0.649435 0.348644 +vt 0.649290 0.348644 +vt 0.667918 0.348211 +vt 0.667216 0.348214 +vt 0.667216 0.348127 +vt 0.667101 0.348214 +vt 0.667100 0.348123 +vt 0.656458 0.342453 +vt 0.656457 0.342704 +vt 0.656541 0.342453 +vt 0.656833 0.342705 +vt 0.656833 0.342454 +vt 0.656832 0.342788 +vt 0.655958 0.342785 +vt 0.655957 0.342962 +vt 0.656832 0.342965 +vt 0.656041 0.343742 +vt 0.656743 0.343745 +vt 0.656829 0.343669 +vt 0.655955 0.343666 +vt 0.653267 0.346719 +vt 0.670795 0.338787 +vt 0.670736 0.338975 +vt 0.671068 0.338839 +vt 0.671350 0.338788 +vt 0.671399 0.338977 +vt 0.671573 0.339023 +vt 0.670633 0.339486 +vt 0.670735 0.339638 +vt 0.670887 0.339740 +vt 0.671500 0.339129 +vt 0.671247 0.338875 +vt 0.670888 0.338874 +vt 0.670634 0.339127 +vt 0.671253 0.337451 +vt 0.656541 0.342427 +vt 0.656458 0.342426 +vt 0.671274 0.336420 +vt 0.671548 0.336419 +vt 0.666952 0.348820 +vt 0.666952 0.348904 +vt 0.666998 0.348905 +vt 0.667319 0.348906 +vt 0.666998 0.348820 +vt 0.649765 0.349170 +vt 0.649765 0.349086 +vt 0.649714 0.349086 +vt 0.656334 0.342703 +vt 0.655958 0.342702 +vt 0.667918 0.348124 +vt 0.656252 0.342426 +vt 0.656251 0.342452 +vt 0.656334 0.342453 +vt 0.654496 0.337794 +vt 0.651103 0.348667 +vt 0.651206 0.348710 +vt 0.650889 0.349185 +vt 0.651285 0.348789 +vt 0.651328 0.348892 +vt 0.650992 0.349228 +vt 0.651328 0.349003 +vt 0.651285 0.349106 +vt 0.651103 0.349228 +vt 0.651206 0.349185 +vt 0.650767 0.348892 +vt 0.650889 0.348710 +vt 0.650767 0.349003 +vt 0.650810 0.349106 +vt 0.650992 0.348667 +vt 0.650810 0.348789 +vt 0.663495 0.328582 +vt 0.663495 0.328711 +vt 0.663575 0.328712 +vt 0.663666 0.328712 +vt 0.663667 0.328583 +vt 0.663575 0.328583 +vt 0.663746 0.328583 +vt 0.663746 0.328713 +vt 0.661745 0.328574 +vt 0.661745 0.328703 +vt 0.656871 0.339542 +vt 0.669475 0.348061 +vt 0.671252 0.337354 +vt 0.671545 0.335784 +vt 0.674011 0.340319 +vt 0.655624 0.336619 +vt 0.662967 0.338908 +vt 0.656433 0.348111 +vt 0.653583 0.336623 +vt 0.654148 0.336621 +vt 0.655059 0.336619 +vt 0.655632 0.339548 +vt 0.655699 0.347352 +vt 0.659343 0.339981 +vt 0.671171 0.337105 +vt 0.674072 0.350895 +vt 0.666774 0.344703 +vt 0.653715 0.344312 +vt 0.659330 0.338958 +vt 0.661427 0.341411 +vt 0.648961 0.349171 +vt 0.667319 0.348822 +vt 0.656334 0.342426 +vt 0.655959 0.342451 +s 0 +f 1789/1551/866 1790/1552/866 1791/1553/866 +f 1792/1554/867 1793/1555/867 1794/1556/867 +f 1795/1557/868 1796/1558/868 1797/1559/868 +f 1798/1560/868 1799/1561/868 1800/1562/868 +f 1801/1563/869 1802/1564/869 1803/1565/869 +f 1795/1557/870 1804/1563/870 1805/1566/870 +f 1806/1567/871 1807/1568/871 1808/1569/871 +f 1809/1570/872 1810/1571/872 1811/1572/872 +f 1812/1569/873 1813/1568/873 1814/1573/873 +f 1809/1570/872 1811/1572/872 1815/1574/872 +f 1816/1575/868 1817/1576/868 1818/1577/868 +f 1819/1578/874 1820/1579/874 1821/1580/874 +f 1822/1581/875 1823/1582/875 1824/1583/875 +f 1824/1583/875 1825/1584/875 1822/1581/875 +f 1826/1585/872 1809/1570/872 1827/1586/872 +f 1828/1587/872 1829/1588/872 1826/1585/872 +f 1799/1561/868 1830/1589/868 1831/1590/868 +f 1832/1591/866 1833/1592/866 1834/1593/866 +f 1835/1594/872 1836/1595/872 1837/1596/872 +f 1838/1597/872 1839/1598/872 1840/1599/872 +f 1828/1587/872 1826/1585/872 1827/1586/872 +f 1841/1600/866 1842/1601/866 1843/1602/866 +f 1843/1602/866 1844/1603/866 1841/1600/866 +f 1845/1604/872 1846/1605/872 1847/1606/872 +f 1848/1607/868 1849/1608/868 1850/1609/868 +f 1833/1592/866 1851/1610/866 1834/1593/866 +f 1852/1611/875 1853/1612/875 1854/1613/875 +f 1839/1598/872 1815/1574/872 1840/1599/872 +f 1811/1572/872 1840/1599/872 1815/1574/872 +f 1826/1585/872 1855/1614/872 1809/1570/872 +f 1840/1599/872 1856/1615/872 1838/1597/872 +f 1857/1616/875 1858/1617/875 1859/1618/875 +f 1860/1619/866 1834/1593/866 1851/1610/866 +f 1861/1620/866 1862/1621/866 1863/1622/866 +f 1864/1623/875 1865/1624/875 1866/1625/875 +f 1867/1626/876 1868/1627/876 1869/1628/876 +f 1870/1629/876 1871/1630/876 1868/1627/876 +f 1840/1599/872 1837/1596/872 1836/1595/872 +f 1872/1631/872 1873/1632/872 1856/1615/872 +f 1874/1633/872 1875/1634/872 1873/1632/872 +f 1876/1635/868 1877/1636/868 1878/1637/868 +f 1879/1638/867 1880/1639/867 1881/1640/867 +f 1882/1641/867 1883/1642/867 1884/1643/867 +f 1885/1644/867 1886/1645/867 1887/1646/867 +f 1888/1647/872 1889/1648/872 1890/1649/872 +f 1891/1650/872 1892/1651/872 1893/1652/872 +f 1894/1653/867 1895/1654/867 1896/1655/867 +f 1897/1656/867 1896/1655/867 1898/1657/867 +f 1899/1658/867 1900/1659/867 1901/1660/867 +f 1902/1661/872 1903/1662/872 1847/1606/872 +f 1904/1663/872 1905/1664/872 1906/1665/872 +f 1907/1666/872 1908/1667/872 1873/1632/872 +f 1909/1668/867 1910/1669/867 1911/1670/867 +f 1912/1671/877 1913/1672/877 1914/1673/877 +f 1915/1674/875 1916/1675/875 1917/1676/875 +f 1875/1634/872 1874/1633/872 1918/1677/872 +f 1919/1678/878 1920/1679/878 1921/1680/878 +f 1922/1681/867 1923/1682/867 1924/1683/867 +f 1925/1684/875 1926/1685/875 1927/1686/875 +f 1928/1687/873 1929/1688/873 1919/1678/873 +f 1930/1689/879 1931/1690/879 1932/1691/879 +f 1933/1692/868 1934/1693/868 1935/1671/868 +f 1936/1694/867 1937/1695/867 1938/1696/867 +f 1939/1697/867 1940/1698/867 1941/1699/867 +f 1942/1700/875 1943/1701/875 1944/1702/875 +f 1829/1588/872 1945/1703/872 1826/1585/872 +f 1946/1704/880 1947/1678/880 1948/1688/880 +f 1949/1690/880 1950/1705/880 1951/1706/880 +f 1952/1707/867 1953/1708/867 1954/1709/867 +f 1955/1710/867 1956/1711/867 1957/1712/867 +f 1958/1713/875 1959/1714/875 1960/1715/875 +f 1957/1712/867 1941/1699/867 1955/1710/867 +f 1961/1716/881 1962/1717/881 1963/1704/881 +f 1964/1705/879 1965/1718/879 1966/1719/879 +f 1967/1720/867 1968/1721/867 1969/1722/867 +f 1970/1723/879 1963/1704/879 1962/1717/879 +f 1971/1718/869 1972/1723/869 1973/1724/869 +f 1974/1725/882 1975/1726/882 1976/1727/882 +f 1977/1578/875 1978/1728/875 1979/1729/875 +f 1980/1730/866 1981/1731/866 1851/1610/866 +f 1982/1732/883 1983/1733/883 1984/1734/883 +f 1829/1588/872 1985/1735/872 1945/1703/872 +f 1906/1665/872 1986/1736/872 1847/1606/872 +f 1873/1632/872 1875/1634/872 1847/1606/872 +f 1872/1631/872 1987/1737/872 1988/1738/872 +f 1989/1739/872 1902/1661/872 1847/1606/872 +f 1847/1606/872 1990/1740/872 1991/1741/872 +f 1992/1742/872 1990/1740/872 1847/1606/872 +f 1992/1742/872 1986/1736/872 1993/1743/872 +f 1994/1744/867 1995/1745/867 1996/1746/867 +f 1901/1660/867 1994/1744/867 1997/1747/867 +f 1998/1748/867 1895/1654/867 1894/1653/867 +f 1987/1737/872 1999/1749/872 1988/1738/872 +f 2000/1750/872 2001/1751/872 2002/1752/872 +f 2003/1753/872 1987/1737/872 1872/1631/872 +f 2004/1754/867 2005/1755/867 2006/1756/867 +f 2007/1757/867 2008/1758/867 2009/1759/867 +f 2010/1760/875 2011/1761/875 2012/1762/875 +f 2013/1763/875 2014/1764/875 2015/1765/875 +f 2016/1766/868 2017/1767/868 2018/1768/868 +f 2019/1769/879 2020/1770/879 2021/1771/879 +f 2022/1772/867 2023/1773/867 2024/1774/867 +f 2025/1608/867 2026/1775/867 2027/1776/867 +f 1835/1594/872 1810/1571/872 1889/1648/872 +f 2028/1777/881 2020/1770/881 2019/1769/881 +f 2029/1778/866 2030/1779/866 2031/1780/866 +f 2032/1781/866 2033/1782/866 2034/1672/866 +f 2035/1783/867 2036/1784/867 2037/1785/867 +f 1855/1614/872 1889/1648/872 1810/1571/872 +f 2038/1786/867 2039/1787/867 2040/1788/867 +f 2041/1789/875 2042/1790/875 2043/1791/875 +f 1890/1649/872 1889/1648/872 1855/1614/872 +f 2044/1792/880 2045/1793/880 2046/1777/880 +f 2047/1794/880 2048/1780/880 2049/1795/880 +f 2050/1796/867 2051/1797/867 2052/1798/867 +f 2053/1799/867 2054/1800/867 2039/1787/867 +f 2055/1801/875 2056/1802/875 2057/1803/875 +f 2040/1788/867 2039/1787/867 2054/1800/867 +f 2058/1804/866 2059/1793/866 2060/1792/866 +f 2061/1805/878 2062/1795/878 2063/1806/878 +f 1988/1738/872 2064/1807/872 2002/1752/872 +f 2065/1808/872 1988/1738/872 2001/1751/872 +f 2066/1809/867 2067/1810/867 2068/1811/867 +f 2069/1812/866 2070/1813/866 2058/1804/866 +f 2071/1814/869 2072/1806/869 2073/1813/869 +f 2074/1815/872 2065/1808/872 2075/1816/872 +f 2076/1817/872 2077/1818/872 1988/1738/872 +f 2078/1819/875 2079/1820/875 2080/1821/875 +f 2081/1822/872 1988/1738/872 2077/1818/872 +f 2082/1761/868 2083/1757/868 2084/1823/868 +f 1891/1650/872 2064/1807/872 1988/1738/872 +f 2085/1824/875 2086/1825/875 2087/1826/875 +f 1823/1582/875 2088/1827/875 2086/1825/875 +f 1823/1582/875 1822/1581/875 2088/1827/875 +f 2089/1828/866 2090/1829/866 2091/1826/866 +f 2092/1830/868 2093/1831/868 2094/1832/868 +f 2095/1833/875 2096/1834/875 2097/1835/875 +f 2098/1831/875 2099/1836/875 2100/1832/875 +f 2101/1837/875 2102/1838/875 2100/1832/875 +f 1879/1638/867 1881/1640/867 2103/1839/867 +f 2104/1840/866 2105/1841/866 2106/1842/866 +f 2086/1825/875 2107/1843/875 2087/1826/875 +f 2108/1844/876 2109/1845/876 2110/1846/876 +f 2111/1847/875 2112/1848/875 2113/1849/875 +f 2114/1850/875 2115/1851/875 2116/1852/875 +f 2117/1853/867 2118/1854/867 2119/1855/867 +f 2120/1856/876 2121/1857/876 2122/1858/876 +f 2123/1859/868 2124/1860/868 2125/1861/868 +f 2126/1862/876 2127/1863/876 2128/1864/876 +f 2128/1864/876 2129/1865/876 2126/1862/876 +f 2130/1863/866 2131/1866/866 2132/1867/866 +f 2133/1868/866 2134/1869/866 2135/1870/866 +f 2136/1860/876 2137/1867/876 2138/1866/876 +f 2106/1842/866 1862/1621/866 1861/1620/866 +f 1837/1596/872 1810/1571/872 1835/1594/872 +f 2139/1871/867 2140/1872/867 2141/1873/867 +f 2142/1874/867 2139/1871/867 2141/1873/867 +f 2143/1875/867 2142/1874/867 2141/1873/867 +f 2104/1840/866 2106/1842/866 1861/1620/866 +f 2140/1872/867 2144/1876/867 2141/1873/867 +f 2145/1877/875 2146/1878/875 2147/1879/875 +f 2147/1879/875 2146/1878/875 2148/1880/875 +f 2149/1881/875 2150/1882/875 2151/1883/875 +f 2152/1884/875 2153/1885/875 2149/1881/875 +f 1859/1618/875 2153/1885/875 2154/1886/875 +f 2155/1887/875 2156/1888/875 1858/1617/875 +f 2157/1889/875 2158/1890/875 2156/1888/875 +f 2159/1891/875 2148/1880/875 2158/1890/875 +f 2160/1892/875 2157/1889/875 2156/1888/875 +f 2155/1887/875 2160/1892/875 2156/1888/875 +f 1857/1616/875 2161/1893/875 1858/1617/875 +f 2162/1894/875 2154/1886/875 2153/1885/875 +f 2152/1884/875 2162/1894/875 2153/1885/875 +f 2163/1895/875 2152/1884/875 2149/1881/875 +f 2164/1896/875 2151/1883/875 2150/1882/875 +f 2165/1897/875 2164/1896/875 2150/1882/875 +f 2165/1897/875 2150/1882/875 2148/1880/875 +f 2159/1891/875 2166/1898/875 2148/1880/875 +f 2157/1889/875 2167/1899/875 2158/1890/875 +f 2168/1900/875 2145/1877/875 2147/1879/875 +f 2150/1882/875 2147/1879/875 2148/1880/875 +f 2163/1895/875 2149/1881/875 2151/1883/875 +f 2169/1901/875 1859/1618/875 2154/1886/875 +f 2161/1893/875 2155/1887/875 1858/1617/875 +f 2167/1899/875 2159/1891/875 2158/1890/875 +f 2166/1898/875 2165/1897/875 2148/1880/875 +f 2169/1901/875 1857/1616/875 1859/1618/875 +f 2170/1902/866 2171/1903/866 2172/1904/866 +f 1855/1614/872 1810/1571/872 1809/1570/872 +f 2173/1905/867 2174/1904/867 2175/1903/867 +f 2176/1906/884 2177/1907/884 2178/1903/884 +f 2179/1558/872 2180/1908/872 2181/1909/872 +f 2182/1910/872 2183/1911/872 2184/1912/872 +f 2185/1913/876 2186/1914/876 2187/1915/876 +f 2188/1913/868 1797/1559/868 1796/1558/868 +f 2116/1852/875 2189/1916/875 2095/1833/875 +f 2111/1847/875 2113/1849/875 2116/1852/875 +f 2190/1869/867 2191/1917/867 2192/1918/867 +f 2190/1869/867 2193/1919/867 2194/1920/867 +f 2195/1921/872 2196/1919/872 2197/1869/872 +f 2198/1922/868 2199/1923/868 2123/1859/868 +f 2200/1924/876 2201/1925/876 2202/1926/876 +f 2203/1927/876 2200/1924/876 2204/1928/876 +f 1794/1556/867 1793/1555/867 2205/1929/867 +f 2206/1930/868 2207/1931/868 2208/1932/868 +f 2193/1919/867 2209/1932/867 2210/1933/867 +f 2211/1934/866 2212/1935/866 2213/1936/866 +f 2214/1937/868 2215/1938/868 2216/1939/868 +f 2217/1940/876 2218/1935/876 2219/1941/876 +f 2220/1940/866 2213/1936/866 2212/1935/866 +f 2221/1937/876 2222/1942/876 2223/1938/876 +f 2224/1943/876 2223/1938/876 2222/1942/876 +f 2225/1944/866 2226/1945/866 2227/1946/866 +f 2225/1944/866 1791/1553/866 2226/1945/866 +f 1794/1556/867 2118/1854/867 2228/1947/867 +f 2118/1854/867 2117/1853/867 2228/1947/867 +f 2229/1948/875 1866/1625/875 2230/1949/875 +f 2231/1950/868 2232/1951/868 2233/1952/868 +f 2234/1953/868 2233/1952/868 2232/1951/868 +f 2235/1954/868 2234/1953/868 2232/1951/868 +f 1792/1554/867 1794/1556/867 2228/1947/867 +f 2236/1955/875 2229/1948/875 2230/1949/875 +f 2237/1956/868 2231/1950/868 2233/1952/868 +f 2225/1944/866 1789/1551/866 1791/1553/866 +f 2229/1948/875 1864/1623/875 1866/1625/875 +f 2238/1957/875 2239/1958/875 2240/1959/875 +f 2241/1960/875 2239/1958/875 2242/1961/875 +f 2240/1959/875 2239/1958/875 2243/1962/875 +f 2243/1962/875 2239/1958/875 2244/1963/875 +f 2245/1964/875 2239/1958/875 2241/1960/875 +f 2244/1963/875 2239/1958/875 2246/1965/875 +f 2246/1965/875 2239/1958/875 2247/1966/875 +f 2248/1967/875 2239/1958/875 2245/1964/875 +f 2247/1966/875 2239/1958/875 2249/1968/875 +f 2249/1968/875 2239/1958/875 2250/1969/875 +f 2250/1969/875 2239/1958/875 2248/1967/875 +f 2251/1970/875 2239/1958/875 2238/1957/875 +f 2242/1961/875 2239/1958/875 2252/1971/875 +f 2253/1972/875 2239/1958/875 2251/1970/875 +f 2252/1971/875 2239/1958/875 2254/1973/875 +f 2254/1973/875 2239/1958/875 2253/1972/875 +f 2255/1974/868 2256/1975/868 2257/1976/868 +f 2258/1977/868 2259/1978/868 2257/1976/868 +f 2260/1979/875 2261/1980/875 2262/1981/875 +f 1804/1563/868 1795/1557/868 1797/1559/868 +f 2263/1982/868 1798/1560/868 1800/1562/868 +f 2264/1566/869 1801/1563/869 1803/1565/869 +f 2265/1910/870 1795/1557/870 1805/1566/870 +f 2266/1983/871 1806/1567/871 1808/1569/871 +f 2267/1984/868 1816/1575/868 1818/1577/868 +f 1818/1577/868 2268/1985/868 2267/1984/868 +f 1800/1562/868 1799/1561/868 1831/1590/868 +f 2269/1902/875 1852/1611/875 1854/1613/875 +f 1981/1731/866 1860/1619/866 1851/1610/866 +f 2270/1986/876 1867/1626/876 1869/1628/876 +f 1867/1626/876 1870/1629/876 1868/1627/876 +f 1856/1615/872 1840/1599/872 1836/1595/872 +f 1836/1595/872 1872/1631/872 1856/1615/872 +f 1872/1631/872 1874/1633/872 1873/1632/872 +f 1887/1646/867 1882/1641/867 1884/1643/867 +f 1884/1643/867 1885/1644/867 1887/1646/867 +f 2064/1807/872 1891/1650/872 1893/1652/872 +f 1897/1656/867 1894/1653/867 1896/1655/867 +f 2271/1987/867 1897/1656/867 1898/1657/867 +f 2272/1988/867 1899/1658/867 1901/1660/867 +f 1846/1605/872 1904/1663/872 1906/1665/872 +f 1903/1662/872 1907/1666/872 1873/1632/872 +f 2273/1989/867 1909/1668/867 1911/1670/867 +f 2274/1990/877 1912/1671/877 1914/1673/877 +f 2275/1991/875 1915/1674/875 1917/1676/875 +f 2276/1992/872 1875/1634/872 1918/1677/872 +f 1928/1687/878 1919/1678/878 1921/1680/878 +f 2277/1993/867 1922/1681/867 1924/1683/867 +f 2278/1994/875 1925/1684/875 1927/1686/875 +f 2279/1995/879 1930/1689/879 1932/1691/879 +f 2280/1996/868 1933/1692/868 1935/1671/868 +f 2281/1997/867 1936/1694/867 1938/1696/867 +f 1957/1712/867 1939/1697/867 1941/1699/867 +f 2282/1998/875 1942/1700/875 1944/1702/875 +f 2283/1716/880 1946/1704/880 1948/1688/880 +f 2284/1691/880 1949/1690/880 1951/1706/880 +f 2285/1999/867 1952/1707/867 1954/1709/867 +f 2286/2000/875 1958/1713/875 1960/1715/875 +f 2287/1706/879 1964/1705/879 1966/1719/879 +f 2288/1579/867 1967/1720/867 1969/1722/867 +f 2289/1724/879 1970/1723/879 1962/1717/879 +f 2290/1719/869 1971/1718/869 1973/1724/869 +f 2291/2001/882 1974/1725/882 1976/1727/882 +f 2292/2002/875 1977/1578/875 1979/1729/875 +f 2293/2003/883 1982/1732/883 1984/1734/883 +f 1846/1605/872 1906/1665/872 1847/1606/872 +f 1903/1662/872 1873/1632/872 1847/1606/872 +f 1874/1633/872 1872/1631/872 1988/1738/872 +f 1991/1741/872 1989/1739/872 1847/1606/872 +f 1986/1736/872 1992/1742/872 1847/1606/872 +f 2294/2004/872 1992/1742/872 1993/1743/872 +f 1997/1747/867 1994/1744/867 1996/1746/867 +f 2272/1988/867 1901/1660/867 1997/1747/867 +f 2295/2005/867 1998/1748/867 1894/1653/867 +f 2296/2006/872 2000/1750/872 2002/1752/872 +f 2297/2007/872 2003/1753/872 1872/1631/872 +f 2298/2008/867 2004/1754/867 2006/1756/867 +f 2299/1823/867 2007/1757/867 2009/1759/867 +f 2300/2009/875 2010/1760/875 2012/1762/875 +f 2301/2010/875 2013/1763/875 2015/1765/875 +f 2302/2011/868 2016/1766/868 2018/1768/868 +f 2303/2012/879 2019/1769/879 2021/1771/879 +f 2304/2013/867 2022/1772/867 2024/1774/867 +f 2305/1609/867 2025/1608/867 2027/1776/867 +f 2306/2014/872 1835/1594/872 1889/1648/872 +f 2307/1794/866 2029/1778/866 2031/1780/866 +f 2308/2015/866 2032/1781/866 2034/1672/866 +f 2309/2016/867 2035/1783/867 2037/1785/867 +f 2310/2017/867 2038/1786/867 2040/1788/867 +f 2311/2018/875 2041/1789/875 2043/1791/875 +f 2312/1769/880 2044/1792/880 2046/1777/880 +f 2313/1805/880 2047/1794/880 2049/1795/880 +f 2314/2019/867 2050/1796/867 2052/1798/867 +f 2315/2020/875 2055/1801/875 2057/1803/875 +f 2316/1814/878 2061/1805/878 2063/1806/878 +f 2001/1751/872 1988/1738/872 2002/1752/872 +f 2075/1816/872 2065/1808/872 2001/1751/872 +f 2317/2021/867 2066/1809/867 2068/1811/867 +f 2060/1792/866 2069/1812/866 2058/1804/866 +f 2318/1812/869 2071/1814/869 2073/1813/869 +f 2319/2022/872 2074/1815/872 2075/1816/872 +f 1999/1749/872 2076/1817/872 1988/1738/872 +f 2320/2023/875 2078/1819/875 2080/1821/875 +f 2321/2024/868 2322/2025/868 2323/2026/868 +f 2324/1762/868 2082/1761/868 2084/1823/868 +f 2081/1822/872 1891/1650/872 1988/1738/872 +f 2085/1824/875 1823/1582/875 2086/1825/875 +f 2325/1843/866 2089/1828/866 2091/1826/866 +f 2326/2027/868 2092/1830/868 2094/1832/868 +f 2111/1847/875 2095/1833/875 2097/1835/875 +f 2099/1836/875 2101/1837/875 2100/1832/875 +f 2327/2028/867 1879/1638/867 2103/1839/867 +f 2328/2029/876 2108/1844/876 2110/1846/876 +f 2113/1849/875 2114/1850/875 2116/1852/875 +f 2329/2030/876 2120/1856/876 2122/1858/876 +f 2330/1864/866 2130/1863/866 2132/1867/866 +f 2331/2031/866 2133/1868/866 2135/1870/866 +f 2332/1861/876 2136/1860/876 2138/1866/876 +f 2333/1611/866 2170/1902/866 2172/1904/866 +f 2334/2032/867 2173/1905/867 2175/1903/867 +f 2335/1902/884 2176/1906/884 2178/1903/884 +f 2336/2033/872 2179/1558/872 2181/1909/872 +f 2337/1557/872 2182/1910/872 2184/1912/872 +f 2338/1559/876 2185/1913/876 2187/1915/876 +f 2339/2033/868 2188/1913/868 1796/1558/868 +f 2095/1833/875 2111/1847/875 2116/1852/875 +f 2340/1870/867 2190/1869/867 2192/1918/867 +f 2191/1917/867 2190/1869/867 2194/1920/867 +f 2341/2034/872 2195/1921/872 2197/1869/872 +f 2125/1861/868 2198/1922/868 2123/1859/868 +f 2204/1928/876 2200/1924/876 2202/1926/876 +f 2342/2035/876 2203/1927/876 2204/1928/876 +f 2343/1919/868 2206/1930/868 2208/1932/868 +f 2194/1920/867 2193/1919/867 2210/1933/867 +f 2344/2036/866 2211/1934/866 2213/1936/866 +f 2345/1941/868 2214/1937/868 2216/1939/868 +f 2346/1939/876 2217/1940/876 2219/1941/876 +f 2347/2037/868 2255/1974/868 2257/1976/868 +f 2256/1975/868 2258/1977/868 2257/1976/868 +f 2348/2038/875 2260/1979/875 2262/1981/875 +s 1 +f 2349/2039/885 2350/2040/886 2351/2041/887 +f 2351/2041/887 2352/2042/888 2088/1827/875 +f 2353/2043/889 2354/2044/889 2355/2045/890 +f 2356/2046/891 1881/1640/867 1880/1639/867 +f 2357/2047/892 2358/2048/893 2359/2049/868 +f 2360/2050/894 2361/2051/894 2362/2052/895 +f 2363/1784/868 2364/1783/896 2365/2018/897 +f 2268/1985/868 2366/2053/898 2267/1984/868 +f 2367/2002/899 2368/1720/900 1820/1579/866 +f 2369/2054/901 2354/2044/889 2353/2043/889 +f 2370/2055/902 2371/2056/866 2372/2057/866 +f 1844/1603/866 1843/1602/866 2373/2058/903 +f 2373/2058/903 2374/2059/866 1844/1603/866 +f 2372/2057/866 1832/1591/866 2375/2060/904 +f 1832/1591/866 1834/1593/866 2375/2060/904 +f 1846/1605/872 1845/1604/872 2376/2061/905 +f 2377/2062/872 2378/2063/906 2376/2061/905 +f 2370/2055/902 2372/2057/866 2375/2060/904 +f 2379/2064/907 2380/2065/908 2381/2066/909 +f 2382/2067/910 2383/2068/911 2384/2069/912 +f 2385/2070/913 2386/2071/914 2387/2072/915 +f 2388/2073/916 2389/2074/916 2235/1954/868 +f 2390/2075/917 2391/1858/866 2392/1857/866 +f 2393/1986/918 2394/1628/918 2390/2075/917 +f 2395/2076/919 2396/2077/920 2397/2078/921 +f 2398/2079/922 2399/2080/923 2400/2081/924 +f 2401/2082/919 2402/2083/925 2403/2084/926 +f 2404/2085/927 2405/2086/928 2406/2087/929 +f 2407/2088/930 2408/2089/931 2409/2090/932 +f 2400/2081/924 2410/2091/902 2411/2092/866 +f 2412/2093/866 2413/2094/866 2414/2095/933 +f 2411/2096/866 2412/2093/866 2414/2095/933 +f 2415/2097/934 2416/2098/935 2417/2099/868 +f 2418/2100/936 2419/2101/937 2416/2102/935 +f 2415/2097/934 2417/2099/868 1876/1635/868 +f 2420/2103/938 2421/2104/939 2422/2105/876 +f 2423/2106/940 2424/2107/941 2425/2108/942 +f 2356/2046/891 2426/2109/943 2401/2082/919 +f 2427/2110/944 2040/1788/867 2054/1800/867 +f 2103/1839/867 2428/2111/945 2327/2028/867 +f 2429/1797/868 2430/1796/896 2431/1802/946 +f 2432/2112/947 2433/2113/948 2434/2114/876 +f 2435/2115/949 2436/2116/950 2432/2112/947 +f 2435/2115/949 2437/2117/951 2438/2118/952 +f 2439/2119/953 2440/2120/954 2105/1841/866 +f 2414/2095/933 2441/2121/955 2398/2122/922 +f 2442/2123/933 2443/2124/956 2436/2116/950 +f 2444/2125/876 2434/2114/876 2433/2113/948 +f 2445/2126/957 2446/2127/896 2447/2128/958 +f 2448/2129/959 2449/2130/960 2447/2128/958 +f 2432/2112/947 2447/2128/958 2449/2130/960 +f 2450/2131/961 2448/2129/959 2447/2128/958 +f 2451/2132/962 2452/2133/963 2453/2134/964 +f 2454/2135/938 2455/2136/965 2456/2137/966 +f 2457/2138/967 2458/2139/968 2459/2140/969 +f 2460/2141/866 2461/2142/899 2462/2143/899 +f 2463/2144/970 2464/2145/971 2458/2146/968 +f 2375/2060/904 2465/2147/902 2466/2148/972 +f 2467/2149/973 2468/2150/974 2469/2151/975 +f 2451/2132/962 2470/2152/940 2471/2153/876 +f 2400/2081/924 2414/2154/933 2398/2079/922 +f 2400/2081/924 2399/2080/923 2472/2155/970 +f 2473/2015/941 2474/1672/876 2475/1671/876 +f 2476/2156/976 2477/2157/977 2478/2158/876 +f 2400/2081/924 2479/2159/866 2480/2160/972 +f 2481/1997/866 2482/1702/866 2483/1701/978 +f 2484/2161/979 2485/2162/980 2486/2163/981 +f 2487/2164/982 2486/2163/981 2477/2157/977 +f 2488/2165/875 2489/2166/875 2490/2167/983 +f 2491/2168/984 2492/2169/985 2493/2170/986 +f 2494/2171/987 2424/2107/941 2493/2170/986 +f 2495/2172/876 2496/2173/988 2452/2133/963 +f 2494/2171/987 2497/2174/989 2498/2175/990 +f 2499/2176/944 2492/2169/985 2500/2177/991 +f 2492/2169/985 2497/2174/989 2493/2170/986 +f 2501/2178/992 2373/2058/903 1843/1602/866 +f 2493/2170/986 2502/2179/993 2491/2168/984 +f 2471/2153/876 2452/2133/963 2451/2132/962 +f 2462/2143/899 2461/2142/899 2503/2180/994 +f 2504/2181/995 2505/2182/996 2506/2183/994 +f 2507/1732/958 2508/2003/956 2509/2001/964 +f 2510/2184/997 2511/2185/998 2512/2186/866 +f 2492/2169/985 2491/2168/984 2500/2177/991 +f 2513/2187/996 2514/2188/999 2515/2189/866 +f 2516/1682/866 2517/1684/866 2518/1994/978 +f 2519/2190/996 2520/2191/995 1980/1730/866 +f 2521/2192/923 2456/2137/966 2464/2145/971 +f 2522/2193/1000 2467/2149/973 2523/2194/1001 +f 2468/2150/974 2524/2195/866 2525/2196/866 +f 2526/2197/967 2527/2198/1002 2400/2081/924 +f 2398/2122/922 2421/2104/939 2399/2199/923 +f 2485/2162/980 2484/2161/979 2528/2200/888 +f 2529/1668/866 2530/1676/866 2531/1675/978 +f 2532/2201/867 2533/2202/867 2534/2203/1003 +f 2493/2170/986 2535/2204/940 2502/2179/993 +f 2499/2176/944 2500/2177/991 1955/1710/867 +f 2536/1999/866 2537/1713/866 2538/2000/978 +f 2539/2205/866 2540/2206/899 2541/2207/899 +f 1980/1730/866 1851/1610/866 2519/2190/996 +f 2542/2208/1004 2503/2180/994 2443/2124/956 +f 2543/2209/1004 2544/2210/1005 2443/2124/956 +f 2373/2058/903 2501/2178/992 2453/2134/964 +f 2544/2210/1005 2545/2211/1006 2453/2134/964 +f 2511/2185/998 2510/2184/997 2544/2210/1005 +f 2546/2212/994 2543/2209/1004 2443/2124/956 +f 2514/2188/999 2513/2187/996 2546/2212/994 +f 2547/2213/1004 2548/2214/994 2443/2124/956 +f 2541/2207/899 2540/2206/899 2548/2214/994 +f 2503/2180/994 2547/2213/1004 2443/2124/956 +f 2442/2123/933 2506/2183/994 2443/2124/956 +f 2549/2215/906 2550/2216/1007 2551/1569/1007 +f 2552/2217/942 2553/2218/1008 2554/2219/1009 +f 1799/1561/868 2555/2220/1010 2556/2221/1010 +f 2554/2219/1009 2557/2222/896 2558/2223/959 +f 2559/2224/893 2560/2225/892 2554/2219/1009 +f 2561/2226/893 2562/2227/893 2563/2228/868 +f 2560/2225/892 2557/2222/896 2554/2219/1009 +f 2556/2221/1010 2555/2220/1010 2564/2229/1011 +f 2522/2193/1000 2565/2230/1000 2566/2231/1012 +f 2567/2232/940 2552/2217/942 2495/2172/876 +f 2419/2101/937 2418/2100/936 2456/2233/966 +f 2456/2233/966 2418/2100/936 2464/2234/971 +f 2568/2235/1013 2569/1607/1014 2384/2069/912 +f 2380/2065/908 2379/2064/907 2570/2236/875 +f 2438/2118/952 2436/2116/950 2435/2115/949 +f 2571/2237/976 2572/2238/876 2573/2239/876 +f 2418/2100/936 2415/2240/934 2574/2241/1015 +f 2575/2242/868 2576/2243/959 2366/2053/898 +f 2349/2039/885 2577/2244/1016 2578/2245/1017 +f 2577/2244/1016 2571/2237/976 2579/2246/977 +f 2580/2247/959 2558/2223/959 2557/2222/896 +f 2581/2248/1018 2582/2249/1019 2424/2107/941 +f 2576/2243/959 2445/2126/957 2583/2250/896 +f 2581/2248/1018 2427/2110/944 2584/2251/1020 +f 2494/2171/987 2581/2248/1018 2424/2107/941 +f 2559/2224/893 2553/2218/1008 2323/2026/868 +f 2425/2108/942 2424/2107/941 2582/2249/1019 +f 2496/2173/988 2495/2172/876 2552/2217/942 +f 2561/2226/893 2450/2131/961 2446/2127/896 +f 2357/2047/892 2449/2130/960 2448/2129/959 +f 2585/2252/1021 2586/2253/868 2587/2254/868 +f 2582/2249/1019 2581/2248/1018 2584/2251/1020 +f 2588/2255/1021 2589/2256/868 2590/2257/868 +f 2322/2025/868 2559/2224/893 2323/2026/868 +f 2558/2223/959 2591/2258/896 2447/2128/958 +f 2592/2259/959 2593/2260/957 2591/2258/896 +f 2594/2261/1022 2566/2231/1012 2595/2262/868 +f 2458/2139/968 2464/2234/971 2418/2100/936 +f 2596/1810/868 2597/1809/896 2598/1820/893 +f 2599/2263/1023 2600/2264/1024 2456/2137/966 +f 2349/2039/885 2351/2041/887 2601/2265/1025 +f 2602/2008/959 2603/1765/961 2604/1764/868 +f 2583/2250/896 2445/2126/957 2447/2128/958 +f 2413/2094/866 2605/2266/866 2414/2095/933 +f 2426/2109/943 2402/2083/925 2401/2082/919 +f 2105/1841/866 2104/1840/866 2439/2119/953 +f 2350/2040/886 2606/2267/1026 2352/2042/888 +f 2428/2111/945 2607/2268/1027 2608/1845/1028 +f 2428/2111/945 2103/1839/867 2607/2268/1027 +f 2609/2269/1029 2610/2270/1030 2611/1831/872 +f 2612/2271/889 2613/2272/872 2614/2273/872 +f 2440/2120/954 2439/2119/953 2612/2271/889 +f 2407/2088/930 2409/2090/932 2615/2274/1030 +f 2599/2263/1023 2455/2136/965 2454/2135/938 +f 2416/2102/935 2415/2240/934 2418/2100/936 +f 2421/2104/939 2420/2103/938 2399/2199/923 +f 2396/2077/920 2616/2275/1031 2409/2090/932 +f 2408/2089/931 2617/2276/868 2618/2277/868 +f 2396/2077/920 2395/2076/919 2616/2275/1031 +f 2397/2078/921 2355/2045/890 2395/2076/919 +f 2619/2278/1032 2620/2279/1033 2621/2280/1034 +f 2622/2281/1035 2619/2278/1032 2623/2282/1036 +f 2624/2283/1037 2622/2281/1035 2625/2284/1038 +f 2626/2285/1039 2624/2283/1037 2627/2286/1040 +f 2628/2287/1041 2629/2288/1042 2236/1955/875 +f 2630/2289/1043 2631/2290/1044 2632/2291/1045 +f 2633/2292/1046 2634/2293/1046 2632/2291/1045 +f 2635/2294/1047 2636/2295/1048 2629/2288/1042 +f 2637/2296/1049 2638/2297/1050 2636/2295/1048 +f 2639/2298/1051 2634/2293/1046 2633/2292/1046 +f 2640/2299/1052 2641/2300/1053 2642/2301/1054 +f 2641/2300/1053 2643/2302/1055 2644/2303/1056 +f 2643/2302/1055 2645/2304/1057 2646/2305/1058 +f 2645/2304/1057 2647/2306/1059 2648/2307/1060 +f 2647/2306/1059 2649/2308/1061 2650/2309/1062 +f 2651/2310/1063 2652/2311/1064 2653/2312/1065 +f 2654/2313/1066 2655/2314/1066 2653/2312/1065 +f 2656/2315/1067 2657/2316/1067 2658/2317/1050 +f 2659/2318/1068 2655/2314/1066 2654/2313/1066 +f 2620/2279/1033 2659/2318/1068 2660/2319/1069 +f 2656/2315/1067 2661/2320/1070 2657/2316/1067 +f 2662/2321/1071 2663/2322/1072 2661/2320/1070 +f 2664/2323/1073 2665/2324/1074 2661/2320/1070 +f 2666/2325/1075 2667/2326/1075 2665/2324/1074 +f 2668/2327/1076 2669/2328/1077 2670/2329/1077 +f 2671/2330/1078 2672/2331/1078 2670/2329/1077 +f 2673/2036/1079 2674/1923/1080 2675/1922/876 +f 2676/2332/1081 2677/2333/1082 2678/2334/1083 +f 2679/2335/1084 2680/2336/1085 2678/2334/1083 +f 2677/2333/1082 2681/2337/1086 2679/2335/1084 +f 2682/2338/1087 2681/2337/1086 2677/2333/1082 +f 2683/2339/1088 2684/2340/1089 2681/2337/1086 +f 2685/2341/1090 2686/2342/1090 2687/2343/1091 +f 2688/2344/1092 2687/2343/1091 2684/2340/1089 +f 1863/1622/866 2369/2054/901 2689/2345/1093 +f 2690/2346/1094 2386/2071/914 2691/2347/1095 +f 2692/2348/1096 2693/2349/1097 2690/2346/1094 +f 2694/2350/1098 2695/2351/1099 2693/2349/1097 +f 2143/1875/867 2141/1873/867 2695/2351/1099 +f 2144/1876/867 2387/2072/915 2141/1873/867 +f 2696/2352/1100 2385/2070/913 2387/2072/915 +f 2697/2353/1101 2696/2352/1100 2387/2072/915 +f 2698/2354/1102 2697/2353/1101 2387/2072/915 +f 2144/1876/867 2698/2354/1102 2387/2072/915 +f 2699/2355/1103 2143/1875/867 2695/2351/1099 +f 2694/2350/1098 2699/2355/1103 2695/2351/1099 +f 2692/2348/1096 2700/2356/1104 2693/2349/1097 +f 2701/2357/1105 2692/2348/1096 2690/2346/1094 +f 2702/2358/1106 2691/2347/1095 2386/2071/914 +f 2385/2070/913 2702/2358/1106 2386/2071/914 +f 1861/1620/866 1863/1622/866 2689/2345/1093 +f 2701/2357/1105 2690/2346/1094 2691/2347/1095 +f 2700/2356/1104 2694/2350/1098 2693/2349/1097 +f 2381/2066/909 2382/2067/910 2703/2359/1107 +f 2360/2050/894 2188/1913/868 2339/2033/868 +f 2704/2236/897 2705/2064/894 2706/1772/868 +f 2707/2360/875 2708/2361/875 2676/2332/1081 +f 2709/2362/1108 2710/2363/1108 2711/1856/868 +f 2712/1925/1109 2710/2363/1108 2709/2362/1108 +f 2713/2364/1110 2714/2365/1111 2230/1949/875 +f 2715/2366/1112 2714/2365/1111 2713/2364/1110 +f 2716/2367/1113 2715/2366/1112 2717/2368/1114 +f 2662/2321/1071 2718/2369/1115 2719/2370/1116 +f 2663/2322/1072 2662/2321/1071 2720/2371/1117 +f 2682/2338/1087 2721/2372/1118 2722/2373/1084 +f 2388/2073/916 2668/2327/1076 2723/2374/1119 +f 2724/2375/875 2725/2376/1083 2726/2377/1081 +f 2721/2372/1118 2726/2377/1081 2725/2376/1083 +f 2722/2373/1084 2721/2372/1118 2725/2376/1083 +f 2227/1946/866 2672/2331/1078 2671/2330/1078 +f 2230/1949/875 2714/2365/1111 2628/2287/1041 +f 2225/1944/866 2227/1946/866 2671/2330/1078 +f 2236/1955/875 2230/1949/875 2628/2287/1041 +f 2232/1951/868 2388/2073/916 2235/1954/868 +f 2548/2214/994 2727/2378/1004 2443/2124/956 +f 2544/2210/1005 2453/2134/964 2443/2124/956 +f 2591/2258/896 2593/2260/957 2447/2128/958 +f 2558/2223/959 2447/2128/958 2554/2219/1009 +f 2728/1957/1068 2729/1959/1120 2730/2379/1121 +f 2729/1959/1120 2731/1962/1122 2732/2380/1123 +f 2733/1964/1124 2734/1960/1125 2735/2381/1126 +f 2731/1962/1122 2736/1963/1062 2737/2382/1063 +f 2736/1963/1062 2738/1965/1060 2739/2383/1059 +f 2740/1967/1051 2733/1964/1124 2741/2384/1127 +f 2738/1965/1060 2742/1966/1128 2743/2385/1057 +f 2742/1966/1128 2744/1968/1056 2745/2386/1055 +f 2746/1969/1129 2740/1967/1051 2747/2387/1052 +f 2744/1968/1056 2746/1969/1129 2748/2388/1130 +f 2749/1971/1037 2750/1973/1035 2751/2389/1038 +f 2752/1972/1032 2753/1970/1033 2754/2390/1131 +f 2755/1961/1039 2749/1971/1037 2756/2391/1040 +f 2734/1960/1125 2755/1961/1039 2757/2392/1132 +f 2753/1970/1033 2728/1957/1068 2758/2393/1069 +f 2750/1973/1035 2752/1972/1032 2759/2394/1036 +f 2760/2395/1133 2761/2396/1134 2762/2397/1135 +f 2763/2398/1136 2764/2399/1137 2765/2400/1138 +f 2766/2401/1139 2767/2402/1140 2768/1980/876 +f 2769/2403/872 2770/2404/872 2761/2396/1134 +f 2764/2399/1137 2763/2398/1136 2767/2402/1140 +f 1822/1581/875 2351/2041/887 2088/1827/875 +f 2397/2078/921 2353/2043/889 2355/2045/890 +f 2426/2109/943 2356/2046/891 1880/1639/867 +f 2771/2405/868 2357/2047/892 2359/2049/868 +f 2772/2406/1141 2360/2050/894 2362/2052/895 +f 2773/1791/868 2363/1784/868 2365/2018/897 +f 1819/1578/866 2367/2002/899 1820/1579/866 +f 2689/2345/1093 2369/2054/901 2353/2043/889 +f 1845/1604/872 2377/2062/872 2376/2061/905 +f 2774/2069/1142 1848/1607/868 1850/1609/868 +f 2775/2407/1143 2379/2064/907 2381/2066/909 +f 2703/2359/1107 2382/2067/910 2384/2069/912 +f 2776/2408/917 2390/2075/917 2392/1857/866 +f 2776/2408/917 2393/1986/918 2390/2075/917 +f 2406/2087/929 2401/2082/919 2403/2084/926 +f 2403/2084/926 2404/2085/927 2406/2087/929 +f 2414/2154/933 2400/2081/924 2411/2092/866 +f 1878/1637/868 2415/2097/934 1876/1635/868 +f 2584/2251/1020 2427/2110/944 2054/1800/867 +f 2777/1801/868 2429/1797/868 2431/1802/946 +f 2434/2114/876 2435/2115/949 2432/2112/947 +f 2438/2118/952 2442/2123/933 2436/2116/950 +f 2433/2113/948 2432/2112/947 2449/2130/960 +f 2446/2127/896 2450/2131/961 2447/2128/958 +f 2501/2178/992 2451/2132/962 2453/2134/964 +f 2521/2192/923 2454/2135/938 2456/2137/966 +f 2778/2409/1144 2457/2138/967 2459/2140/969 +f 2779/2410/866 2460/2141/866 2462/2143/899 +f 2457/2411/967 2463/2144/970 2458/2146/968 +f 2370/2055/902 2375/2060/904 2466/2148/972 +f 2523/2194/1001 2467/2149/973 2469/2151/975 +f 2780/1693/1145 2473/2015/941 2475/1671/876 +f 2781/2412/876 2476/2156/976 2478/2158/876 +f 2410/2091/902 2400/2081/924 2480/2160/972 +f 2782/1694/1146 2481/1997/866 2483/1701/978 +f 2487/2164/982 2484/2161/979 2486/2163/981 +f 2476/2156/976 2487/2164/982 2477/2157/977 +f 2528/2200/888 2488/2165/875 2490/2167/983 +f 2497/2174/989 2494/2171/987 2493/2170/986 +f 2471/2153/876 2495/2172/876 2452/2133/963 +f 2534/2203/1003 2494/2171/987 2498/2175/990 +f 2542/2208/1004 2462/2143/899 2503/2180/994 +f 2442/2123/933 2504/2181/995 2506/2183/994 +f 2783/1727/1147 2507/1732/958 2509/2001/964 +f 2784/2413/866 2510/2184/997 2512/2186/866 +f 2785/2414/866 2513/2187/996 2515/2189/866 +f 2786/1683/1146 2516/1682/866 2518/1994/978 +f 2463/2144/970 2521/2192/923 2464/2145/971 +f 2565/2230/1000 2522/2193/1000 2523/2194/1001 +f 2469/2151/975 2468/2150/974 2525/2196/866 +f 2472/2155/970 2526/2197/967 2400/2081/924 +f 2490/2167/983 2485/2162/980 2528/2200/888 +f 2787/1669/1148 2529/1668/866 2531/1675/978 +f 2498/2175/990 2532/2201/867 2534/2203/1003 +f 1941/1699/867 2499/2176/944 1955/1710/867 +f 2788/1707/1146 2536/1999/866 2538/2000/978 +f 2789/2415/866 2539/2205/866 2541/2207/899 +f 2506/2183/994 2542/2208/1004 2443/2124/956 +f 2545/2211/1006 2373/2058/903 2453/2134/964 +f 2543/2209/1004 2511/2185/998 2544/2210/1005 +f 2727/2378/1004 2546/2212/994 2443/2124/956 +f 2727/2378/1004 2514/2188/999 2546/2212/994 +f 2547/2213/1004 2541/2207/899 2548/2214/994 +f 2790/1573/1149 2549/2215/906 2551/1569/1007 +f 2496/2173/988 2552/2217/942 2554/2219/1009 +f 1830/1589/868 1799/1561/868 2556/2221/1010 +f 2553/2218/1008 2559/2224/893 2554/2219/1009 +f 2791/2416/868 2561/2226/893 2563/2228/868 +f 2792/2417/1150 2556/2221/1010 2564/2229/1011 +f 2594/2261/1022 2522/2193/1000 2566/2231/1012 +f 2600/2264/1024 2419/2418/937 2456/2137/966 +f 2383/2068/911 2568/2235/1013 2384/2069/912 +f 2793/2419/875 2380/2065/908 2570/2236/875 +f 2579/2246/977 2571/2237/976 2573/2239/876 +f 2794/2420/1151 2418/2100/936 2574/2241/1015 +f 2268/1985/868 2575/2242/868 2366/2053/898 +f 2350/2040/886 2349/2039/885 2578/2245/1017 +f 2578/2245/1017 2577/2244/1016 2579/2246/977 +f 2585/2252/1021 2580/2247/959 2557/2222/896 +f 2366/2053/898 2576/2243/959 2583/2250/896 +f 2562/2227/893 2561/2226/893 2446/2127/896 +f 2358/2048/893 2357/2047/892 2448/2129/959 +f 2580/2247/959 2585/2252/1021 2587/2254/868 +f 2592/2259/959 2588/2255/1021 2590/2257/868 +f 2588/2255/1021 2592/2259/959 2591/2258/896 +f 2795/2421/868 2594/2261/1022 2595/2262/868 +f 2459/2140/969 2458/2139/968 2418/2100/936 +f 2796/1819/868 2596/1810/868 2598/1820/893 +f 2455/2136/965 2599/2263/1023 2456/2137/966 +f 2797/1754/868 2602/2008/959 2604/1764/868 +f 2593/2260/957 2583/2250/896 2447/2128/958 +f 2351/2041/887 2350/2040/886 2352/2042/888 +f 2798/1844/1028 2428/2111/945 2608/1845/1028 +f 2799/1830/872 2609/2269/1029 2611/1831/872 +f 2800/2422/889 2612/2271/889 2614/2273/872 +f 2800/2422/889 2440/2120/954 2612/2271/889 +f 2801/2423/876 2599/2263/1023 2454/2135/938 +f 2408/2089/931 2396/2077/920 2409/2090/932 +f 2396/2077/920 2408/2089/931 2618/2277/868 +f 2623/2282/1036 2619/2278/1032 2621/2280/1034 +f 2625/2284/1038 2622/2281/1035 2623/2282/1036 +f 2627/2286/1040 2624/2283/1037 2625/2284/1038 +f 2630/2289/1043 2626/2285/1039 2627/2286/1040 +f 2626/2285/1039 2630/2289/1043 2632/2291/1045 +f 2631/2290/1044 2633/2292/1046 2632/2291/1045 +f 2628/2287/1041 2635/2294/1047 2629/2288/1042 +f 2635/2294/1047 2637/2296/1049 2636/2295/1048 +f 2640/2299/1052 2639/2298/1051 2633/2292/1046 +f 2639/2298/1051 2640/2299/1052 2642/2301/1054 +f 2642/2301/1054 2641/2300/1053 2644/2303/1056 +f 2644/2303/1056 2643/2302/1055 2646/2305/1058 +f 2646/2305/1058 2645/2304/1057 2648/2307/1060 +f 2648/2307/1060 2647/2306/1059 2650/2309/1062 +f 2802/2424/1152 2651/2310/1063 2653/2312/1065 +f 2652/2311/1064 2654/2313/1066 2653/2312/1065 +f 2803/2425/1153 2656/2315/1067 2658/2317/1050 +f 2660/2319/1069 2659/2318/1068 2654/2313/1066 +f 2621/2280/1034 2620/2279/1033 2660/2319/1069 +f 2656/2315/1067 2662/2321/1071 2661/2320/1070 +f 2663/2322/1072 2664/2323/1073 2661/2320/1070 +f 2664/2323/1073 2666/2325/1075 2665/2324/1074 +f 2723/2374/1119 2668/2327/1076 2670/2329/1077 +f 2669/2328/1077 2671/2330/1078 2670/2329/1077 +f 2804/1934/876 2673/2036/1079 2675/1922/876 +f 2677/2333/1082 2679/2335/1084 2678/2334/1083 +f 2721/2372/1118 2682/2338/1087 2677/2333/1082 +f 2682/2338/1087 2683/2339/1088 2681/2337/1086 +f 2688/2344/1092 2685/2341/1090 2687/2343/1091 +f 2683/2339/1088 2688/2344/1092 2684/2340/1089 +f 2775/2407/1143 2381/2066/909 2703/2359/1107 +f 2361/2051/894 2360/2050/894 2339/2033/868 +f 2805/2013/896 2704/2236/897 2706/1772/868 +f 2678/2334/1083 2707/2360/875 2676/2332/1081 +f 2806/2030/868 2709/2362/1108 2711/1856/868 +f 2807/1926/1109 2712/1925/1109 2709/2362/1108 +f 2717/2368/1114 2715/2366/1112 2713/2364/1110 +f 2808/2426/1116 2716/2367/1113 2717/2368/1114 +f 2720/2371/1117 2662/2321/1071 2719/2370/1116 +f 2389/2074/916 2388/2073/916 2723/2374/1119 +f 2809/2427/875 2724/2375/875 2726/2377/1081 +f 2810/2428/1085 2722/2373/1084 2725/2376/1083 +f 2758/2393/1069 2728/1957/1068 2730/2379/1121 +f 2730/2379/1121 2729/1959/1120 2732/2380/1123 +f 2741/2384/1127 2733/1964/1124 2735/2381/1126 +f 2732/2380/1123 2731/1962/1122 2737/2382/1063 +f 2737/2382/1063 2736/1963/1062 2739/2383/1059 +f 2747/2387/1052 2740/1967/1051 2741/2384/1127 +f 2739/2383/1059 2738/1965/1060 2743/2385/1057 +f 2743/2385/1057 2742/1966/1128 2745/2386/1055 +f 2748/2388/1130 2746/1969/1129 2747/2387/1052 +f 2745/2386/1055 2744/1968/1056 2748/2388/1130 +f 2756/2391/1040 2749/1971/1037 2751/2389/1038 +f 2759/2394/1036 2752/1972/1032 2754/2390/1131 +f 2757/2392/1132 2755/1961/1039 2756/2391/1040 +f 2735/2381/1126 2734/1960/1125 2757/2392/1132 +f 2754/2390/1131 2753/1970/1033 2758/2393/1069 +f 2751/2389/1038 2750/1973/1035 2759/2394/1036 +f 2765/2400/1138 2760/2395/1133 2762/2397/1135 +f 2762/2397/1135 2763/2398/1136 2765/2400/1138 +f 2811/1979/876 2766/2401/1139 2768/1980/876 +f 2760/2395/1133 2769/2403/872 2761/2396/1134 +f 2766/2401/1139 2764/2399/1137 2767/2402/1140 +o trigger_pistol_0 +v 0.255916 1.582615 6.859656 +v 0.255916 1.449703 6.660409 +v 0.255916 1.810704 6.457509 +v 0.255916 2.466018 6.344805 +v 0.255916 1.892926 6.633237 +v 0.577175 1.435799 6.186546 +v 0.577175 1.810704 6.457509 +v 0.577175 1.449703 6.660409 +v 0.577175 3.484048 5.722968 +v 0.577175 3.243770 6.479858 +v 0.577175 2.895700 6.381779 +v 0.577175 1.924940 5.885275 +v 0.577175 2.439333 5.691723 +v 0.577175 2.466018 6.344805 +v 0.577175 3.484048 5.722968 +v 0.401255 3.484048 5.722968 +v 0.401255 3.243770 6.479858 +v 0.401255 3.588840 6.684443 +v 0.401255 3.243770 6.479858 +v 0.401255 3.484048 5.722968 +v 0.401255 4.331120 5.796535 +v 0.401255 4.331120 7.553139 +v 0.401255 3.911054 6.978125 +v 0.401255 4.776393 4.607953 +v 0.401255 5.500355 4.607955 +v 0.401255 5.500353 7.553141 +v -0.401255 4.331120 5.796535 +v -0.401255 4.776393 4.607953 +v 0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607955 +v 0.401255 5.500355 4.607955 +v 0.401255 4.776393 4.607953 +v 0.577175 2.851677 5.639833 +v -0.577175 3.484048 5.722968 +v -0.577175 3.243770 6.479858 +v -0.401255 3.243770 6.479858 +v -0.255916 1.582615 6.859656 +v -0.255916 1.892926 6.633237 +v -0.255916 1.810704 6.457509 +v -0.401255 3.243770 6.479858 +v -0.401255 3.588840 6.684443 +v -0.401255 3.484048 5.722968 +v -0.401255 4.331120 7.553139 +v -0.401255 4.331120 5.796535 +v -0.401255 3.911054 6.978125 +v -0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607955 +v -0.401255 5.500353 7.553141 +v -0.255916 2.466018 6.344805 +v -0.577175 2.466018 6.344805 +v -0.577175 2.895700 6.381779 +v -0.577175 2.851677 5.639833 +v -0.577175 1.810704 6.457509 +v -0.577175 1.435799 6.186546 +v -0.577175 1.449703 6.660409 +v -0.577175 3.484048 5.722968 +v -0.577175 1.924940 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 3.243770 6.479858 +v 0.401255 4.331120 5.796535 +v -0.401255 4.776393 4.607953 +v -0.401255 3.484048 5.722968 +v -0.255916 1.449703 6.660409 +v -0.577175 3.243770 6.479858 +v -0.255916 1.892926 6.633237 +v 0.255916 1.892926 6.633237 +v 0.255916 2.466018 6.344805 +v 0.577175 2.895700 6.381779 +v 0.577175 3.243770 6.479858 +v 0.401255 3.243770 6.479858 +v -0.401255 3.243770 6.479858 +v -0.577175 2.895700 6.381779 +v -0.136434 1.170199 7.267153 +v 0.136434 1.170199 7.267153 +v 0.255916 1.274902 7.159120 +v -0.255916 1.274902 7.159120 +v 0.255916 1.582615 6.859656 +v -0.255916 1.582615 6.859656 +v -0.136434 1.170199 7.267153 +v -0.140214 0.908800 7.158844 +v 0.140214 0.908800 7.158844 +v 0.255916 1.049089 7.041913 +v 0.255916 1.274902 7.159120 +v 0.136434 1.170199 7.267153 +v 0.255916 2.466018 6.344805 +v 0.577175 2.466018 6.344805 +v 0.577175 1.049089 7.041913 +v 0.255916 1.049089 7.041913 +v 0.140214 0.908800 7.158844 +v -0.140214 0.908800 7.158844 +v -0.238265 0.780517 7.270253 +v 0.238265 0.780517 7.270253 +v 0.577175 1.810704 6.457509 +v 0.255916 1.810704 6.457509 +v 0.255916 1.449703 6.660409 +v 0.577175 1.449703 6.660409 +v -0.242153 0.574700 7.190140 +v 0.242153 0.574700 7.190140 +v 0.238265 0.780517 7.270253 +v 0.557295 0.748790 6.906375 +v 0.577175 1.049089 7.041913 +v 0.577175 1.022907 6.562050 +v -0.255916 2.466018 6.344805 +v -0.401255 4.331120 5.796535 +v 0.401255 4.331120 5.796535 +v 0.401255 3.484048 5.722968 +v 0.401255 3.588840 6.684443 +v -0.401255 3.588840 6.684443 +v 0.401255 3.911054 6.978125 +v 0.401255 4.331120 7.553139 +v -0.401255 4.331120 7.553139 +v -0.401255 3.911054 6.978125 +v 0.401255 5.500353 7.553141 +v -0.401255 5.500353 7.553141 +v 0.577175 2.851677 5.639833 +v 0.577175 3.484048 5.722968 +v -0.577175 2.851677 5.639833 +v -0.401255 3.484048 5.722968 +v 0.577175 1.022907 6.562050 +v -0.577175 1.022907 6.562050 +v -0.577175 1.435799 6.186546 +v 0.577175 1.435799 6.186546 +v -0.577175 1.924940 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 2.439333 5.691723 +v 0.577175 1.924940 5.885275 +v 0.242153 0.574700 7.190140 +v -0.242153 0.574700 7.190140 +v -0.557295 0.748790 6.906375 +v 0.557295 0.748790 6.906375 +v -0.577175 3.243770 6.479858 +v -0.255916 1.049089 7.041913 +v -0.577175 2.466018 6.344805 +v -0.255916 1.274902 7.159120 +v -0.577175 1.049089 7.041913 +v -0.577175 3.484048 5.722968 +v -0.577175 1.810704 6.457509 +v -0.577175 1.449703 6.660409 +v -0.255916 1.449703 6.660409 +v -0.255916 1.810704 6.457509 +v -0.255916 1.049089 7.041913 +v -0.557295 0.748790 6.906375 +v -0.238265 0.780517 7.270253 +v -0.577175 1.022907 6.562050 +v -0.577175 1.049089 7.041913 +v -0.255916 2.466018 6.344805 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.9531 0.3026 +vn -0.0000 -0.9364 -0.3508 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.4977 0.8674 +vn -0.0000 0.5444 0.8388 +vn -0.0000 0.1395 0.9902 +vn -0.0000 -0.1979 0.9802 +vn -0.0000 -0.2712 0.9625 +vn -0.0000 -0.3535 0.9354 +vn -0.0000 -0.3697 0.9291 +vn -0.0000 -0.1606 0.9870 +vn -0.0000 0.7181 0.6960 +vn -0.0000 0.7113 0.7029 +vn -0.0000 0.7044 0.7098 +vn -0.0000 0.6629 0.7487 +vn -0.0000 0.6268 0.7792 +vn -0.4404 -0.3550 0.8247 +vn -0.4552 -0.3352 0.8249 +vn 0.2991 -0.3616 0.8831 +vn 0.9038 -0.1780 0.3893 +vn 0.9745 -0.1034 0.1993 +vn 0.5796 -0.3268 0.7465 +vn 0.0001 0.1395 0.9902 +vn -0.0000 0.0850 0.9964 +vn -0.0023 0.6611 0.7503 +vn -0.0000 0.6735 0.7392 +vn -0.0023 0.6496 0.7603 +vn 0.0017 0.6512 0.7589 +vn 0.0038 0.6541 0.7564 +vn -0.0023 0.6547 0.7559 +vn -0.0000 0.3882 0.9216 +vn -0.0000 0.2799 0.9600 +vn -0.0000 0.5604 0.8282 +vn -0.0000 0.6274 0.7787 +vn -0.2580 -0.3462 0.9020 +vn 0.3908 -0.3275 0.8603 +vn 0.3829 -0.3520 0.8541 +vn 0.8580 -0.2283 0.4601 +vn 0.9627 -0.1436 0.2294 +vn 0.9997 -0.0226 0.0012 +vn -0.0000 0.1148 0.9934 +vn -0.0000 0.0865 -0.9963 +vn -0.0000 0.1129 -0.9936 +vn -0.0000 -0.5671 0.8236 +vn -0.0000 -0.6219 0.7831 +vn -0.0000 -0.7215 0.6924 +vn -0.0001 -0.5953 0.8035 +vn 0.0001 -0.2977 0.9547 +vn -0.0000 -0.7663 0.6425 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.0456 -0.9990 +vn -0.0000 0.1303 -0.9915 +vn -0.0000 0.0285 -0.9996 +vn -0.0000 0.1158 -0.9933 +vn -0.0000 -0.7114 -0.7028 +vn -0.0000 -0.7480 -0.6637 +vn -0.0000 -0.6258 -0.7800 +vn -0.0000 -0.5761 -0.8174 +vn -0.0000 -0.4689 -0.8832 +vn -0.0000 -0.2781 -0.9606 +vn -0.0000 -0.2019 -0.9794 +vn -0.0000 -0.4113 -0.9115 +vn -0.0000 -0.8524 -0.5229 +vn -0.0000 -0.8304 -0.5572 +vn -0.0000 -0.8071 -0.5904 +vn -0.9038 -0.1780 0.3893 +vn -0.9745 -0.1034 0.1993 +vn 0.0023 0.6611 0.7503 +vn -0.8580 -0.2283 0.4601 +vn -0.5059 -0.3351 0.7948 +vn -0.9997 -0.0226 0.0012 +vn -0.9627 -0.1436 0.2294 +vn -0.0000 0.1149 0.9934 +vt 0.482997 0.972676 +vt 0.483169 0.972693 +vt 0.483177 0.972380 +vt 0.483034 0.971858 +vt 0.483023 0.972386 +vt 0.471310 0.981774 +vt 0.471246 0.981454 +vt 0.471009 0.981626 +vt 0.472210 0.980596 +vt 0.471654 0.980527 +vt 0.471614 0.980779 +vt 0.471647 0.981549 +vt 0.471923 0.981275 +vt 0.471511 0.981066 +vt 0.472225 0.980472 +vt 0.471669 0.980404 +vt 0.471639 0.980122 +vt 0.472428 0.979907 +vt 0.471300 0.979390 +vt 0.471545 0.979829 +vt 0.473322 0.979971 +vt 0.473535 0.979507 +vt 0.471644 0.978639 +vt 0.480249 0.946278 +vt 0.480249 0.945382 +vt 0.480816 0.945382 +vt 0.480249 0.944870 +vt 0.480816 0.944870 +vt 0.472077 0.981026 +vt 0.468113 0.980573 +vt 0.468670 0.980511 +vt 0.468657 0.980387 +vt 0.482644 0.972678 +vt 0.482622 0.972386 +vt 0.482468 0.972377 +vt 0.468690 0.980106 +vt 0.468100 0.980449 +vt 0.469037 0.979378 +vt 0.467904 0.979882 +vt 0.468786 0.979814 +vt 0.467009 0.979936 +vt 0.466802 0.979469 +vt 0.468701 0.978624 +vt 0.482618 0.971864 +vt 0.468807 0.981051 +vt 0.468707 0.980763 +vt 0.468241 0.981005 +vt 0.469067 0.981441 +vt 0.469000 0.981761 +vt 0.469302 0.981616 +vt 0.468666 0.981532 +vt 0.468393 0.981256 +vt 0.480816 0.946278 +vt 0.482469 0.972694 +vt 0.480078 0.973332 +vt 0.480077 0.973077 +vt 0.479953 0.973077 +vt 0.479387 0.973079 +vt 0.479263 0.973334 +vt 0.482753 0.972998 +vt 0.482894 0.972996 +vt 0.482958 0.972932 +vt 0.482686 0.972938 +vt 0.482726 0.973162 +vt 0.482929 0.973155 +vt 0.483051 0.973046 +vt 0.479852 0.973637 +vt 0.480079 0.973637 +vt 0.480081 0.974789 +vt 0.479855 0.974790 +vt 0.479773 0.974919 +vt 0.479575 0.974919 +vt 0.479506 0.975040 +vt 0.479843 0.975039 +vt 0.480080 0.974106 +vt 0.479853 0.974107 +vt 0.479854 0.974399 +vt 0.480081 0.974399 +vt 0.469982 0.982043 +vt 0.470324 0.982045 +vt 0.470322 0.981889 +vt 0.470645 0.982004 +vt 0.470647 0.981771 +vt 0.470947 0.981928 +vt 0.479491 0.973638 +vt 0.480816 0.946878 +vt 0.479953 0.972794 +vt 0.479386 0.972795 +vt 0.479952 0.972486 +vt 0.479951 0.971983 +vt 0.479384 0.971985 +vt 0.479385 0.972488 +vt 0.479949 0.971158 +vt 0.479382 0.971159 +vt 0.480940 0.947328 +vt 0.480940 0.946878 +vt 0.480125 0.947328 +vt 0.480249 0.946878 +vt 0.480940 0.948810 +vt 0.480125 0.948810 +vt 0.480125 0.948416 +vt 0.480940 0.948415 +vt 0.480125 0.948010 +vt 0.480125 0.947622 +vt 0.480940 0.947622 +vt 0.480940 0.948010 +vt 0.480704 0.949355 +vt 0.480362 0.949355 +vt 0.480139 0.949120 +vt 0.480926 0.949120 +vt 0.479262 0.973079 +vt 0.482592 0.973062 +vt 0.479264 0.973639 +vt 0.479266 0.974791 +vt 0.480125 0.946878 +vt 0.479265 0.974108 +vt 0.479265 0.974401 +vt 0.479492 0.974400 +vt 0.479492 0.974108 +vt 0.479493 0.974791 +vt 0.469662 0.981998 +vt 0.469986 0.981887 +vt 0.469361 0.981919 +vt 0.469663 0.981765 +s 0 +f 2812/2429/1154 2813/2430/1154 2814/2431/1154 +f 2814/2431/1154 2815/2432/1154 2816/2433/1154 +f 2817/2434/1154 2818/2435/1154 2819/2436/1154 +f 2820/2437/1154 2821/2438/1154 2822/2439/1154 +f 2817/2434/1154 2823/2440/1154 2818/2435/1154 +f 2824/2441/1154 2825/2442/1154 2818/2435/1154 +f 2826/2437/1155 2827/2443/1155 2828/2444/1155 +f 2829/2445/1154 2830/2444/1154 2831/2443/1154 +f 2832/2446/1154 2833/2447/1154 2834/2448/1154 +f 2829/2445/1154 2831/2443/1154 2832/2446/1154 +f 2832/2446/1154 2835/2449/1154 2836/2450/1154 +f 2837/2451/1154 2833/2447/1154 2832/2446/1154 +f 2838/2452/1156 2839/2453/1156 2840/2454/1156 +f 2841/2455/1157 2842/2456/1157 2843/2454/1157 +f 2825/2442/1154 2824/2441/1154 2844/2457/1154 +f 2845/2458/1155 2846/2459/1155 2847/2460/1155 +f 2848/2461/1158 2849/2462/1158 2850/2463/1158 +f 2851/2460/1158 2852/2464/1158 2853/2465/1158 +f 2854/2466/1158 2855/2467/1158 2856/2468/1158 +f 2852/2464/1158 2856/2468/1158 2855/2467/1158 +f 2857/2469/1158 2855/2467/1158 2858/2470/1158 +f 2859/2471/1158 2858/2470/1158 2855/2467/1158 +f 2860/2472/1158 2850/2463/1158 2849/2462/1158 +f 2861/2473/1158 2862/2474/1158 2863/2475/1158 +f 2864/2476/1158 2865/2477/1158 2866/2478/1158 +f 2867/2458/1158 2863/2475/1158 2862/2474/1158 +f 2868/2479/1158 2865/2477/1158 2864/2476/1158 +f 2869/2480/1158 2868/2479/1158 2864/2476/1158 +f 2816/2433/1154 2812/2429/1154 2814/2431/1154 +f 2844/2457/1154 2820/2437/1154 2822/2439/1154 +f 2823/2440/1154 2824/2441/1154 2818/2435/1154 +f 2870/2438/1155 2826/2437/1155 2828/2444/1155 +f 2834/2448/1154 2829/2445/1154 2832/2446/1154 +f 2836/2450/1154 2837/2451/1154 2832/2446/1154 +f 2871/2481/1156 2838/2452/1156 2840/2454/1156 +f 2872/2453/1157 2841/2455/1157 2843/2454/1157 +f 2822/2439/1154 2825/2442/1154 2844/2457/1154 +f 2873/2465/1155 2845/2458/1155 2847/2460/1155 +f 2874/2482/1158 2848/2461/1158 2850/2463/1158 +f 2853/2465/1158 2852/2464/1158 2855/2467/1158 +f 2854/2466/1158 2859/2471/1158 2855/2467/1158 +f 2869/2480/1158 2861/2473/1158 2863/2475/1158 +f 2875/2459/1158 2867/2458/1158 2862/2474/1158 +f 2861/2473/1158 2869/2480/1158 2864/2476/1158 +s 1 +f 2876/2462/1159 2877/2433/1160 2878/2432/1161 +f 2879/2483/1162 2880/2484/1163 2881/2485/1164 +f 2882/2486/1165 2883/2487/1166 2879/2483/1162 +f 2884/2488/1167 2885/2489/1167 2886/2490/1168 +f 2887/2491/1169 2886/2490/1168 2888/2429/1170 +f 2877/2433/1160 2876/2462/1159 2889/2461/1171 +f 2890/2488/1172 2891/2492/1173 2892/2493/1174 +f 2893/2494/1175 2894/2490/1176 2895/2489/1177 +f 2896/2495/1178 2897/2496/1179 2879/2483/1162 +f 2813/2430/1154 2812/2429/1154 2894/2490/1176 +f 2898/2497/1180 2899/2498/1181 2900/2499/1182 +f 2901/2500/1183 2902/2501/1184 2903/2502/1185 +f 2904/2503/1186 2905/2504/1187 2906/2505/1188 +f 2897/2496/1179 2896/2495/1178 2905/2504/1187 +f 2899/2498/1181 2898/2497/1180 2907/2506/1189 +f 2908/2507/1190 2909/2508/1191 2910/2509/1192 +f 2911/2510/1193 2912/2511/1194 2910/2509/1192 +f 2913/2512/1195 2819/2436/1154 2912/2511/1194 +f 2913/2512/1195 2817/2434/1154 2819/2436/1154 +f 2883/2487/1166 2914/2513/1196 2896/2495/1178 +f 2915/2452/1197 2916/2481/1197 2917/2514/1198 +f 2918/2515/1199 2919/2516/1200 2882/2486/1165 +f 2919/2516/1200 2918/2515/1199 2920/2517/1201 +f 2921/2518/1202 2922/2519/1203 2923/2520/1204 +f 2924/2521/1205 2925/2522/1205 2922/2519/1203 +f 2926/2523/1206 2917/2514/1198 2927/2524/1207 +f 2928/2525/1208 2929/2526/1209 2917/2514/1198 +f 2930/2527/1210 2931/2528/1211 2932/2529/1212 +f 2933/2530/1213 2932/2529/1212 2934/2531/1214 +f 2935/2532/1215 2936/2533/1216 2937/2534/1217 +f 2928/2525/1208 2926/2523/1206 2936/2533/1216 +f 2938/2535/1218 2939/2536/1218 2940/2537/1219 +f 2931/2528/1211 2930/2527/1210 2941/2538/1220 +f 2942/2539/1163 2883/2487/1166 2882/2486/1165 +f 2943/2540/1221 2891/2492/1173 2890/2488/1172 +f 2944/2541/1179 2914/2513/1196 2883/2487/1166 +f 2874/2482/1158 2943/2540/1221 2945/2491/1222 +f 2946/2542/1223 2902/2501/1184 2901/2500/1183 +f 2929/2526/1209 2928/2525/1208 2947/2543/1207 +f 2948/2544/1186 2949/2545/1189 2950/2546/1188 +f 2944/2541/1179 2948/2544/1186 2951/2547/1187 +f 2952/2548/1181 2950/2546/1188 2949/2545/1189 +f 2953/2549/1224 2908/2507/1190 2954/2550/1225 +f 2955/2551/1226 2953/2549/1224 2956/2552/1227 +f 2865/2477/1158 2955/2551/1226 2866/2478/1158 +f 2957/2472/1228 2876/2462/1159 2878/2432/1161 +f 2881/2485/1164 2882/2486/1165 2879/2483/1162 +f 2887/2491/1169 2884/2488/1167 2886/2490/1168 +f 2889/2461/1171 2887/2491/1169 2888/2429/1170 +f 2888/2429/1170 2877/2433/1160 2889/2461/1171 +f 2895/2489/1177 2890/2488/1172 2892/2493/1174 +f 2892/2493/1174 2893/2494/1175 2895/2489/1177 +f 2893/2494/1175 2813/2430/1154 2894/2490/1176 +f 2903/2502/1185 2898/2497/1180 2900/2499/1182 +f 2900/2499/1182 2901/2500/1183 2903/2502/1185 +f 2907/2506/1189 2904/2503/1186 2906/2505/1188 +f 2904/2503/1186 2897/2496/1179 2905/2504/1187 +f 2906/2505/1188 2899/2498/1181 2907/2506/1189 +f 2954/2550/1225 2908/2507/1190 2910/2509/1192 +f 2909/2508/1191 2911/2510/1193 2910/2509/1192 +f 2911/2510/1193 2913/2512/1195 2912/2511/1194 +f 2879/2483/1162 2883/2487/1166 2896/2495/1178 +f 2929/2526/1209 2915/2452/1197 2917/2514/1198 +f 2881/2485/1164 2918/2515/1199 2882/2486/1165 +f 2923/2520/1204 2919/2516/1200 2920/2517/1201 +f 2920/2517/1201 2921/2518/1202 2923/2520/1204 +f 2921/2518/1202 2924/2521/1205 2922/2519/1203 +f 2926/2523/1206 2928/2525/1208 2917/2514/1198 +f 2933/2530/1213 2930/2527/1210 2932/2529/1212 +f 2937/2534/1217 2933/2530/1213 2934/2531/1214 +f 2934/2531/1214 2935/2532/1215 2937/2534/1217 +f 2935/2532/1215 2928/2525/1208 2936/2533/1216 +f 2941/2538/1220 2938/2535/1218 2940/2537/1219 +f 2940/2537/1219 2931/2528/1211 2941/2538/1220 +f 2945/2491/1222 2943/2540/1221 2890/2488/1172 +f 2848/2461/1158 2874/2482/1158 2945/2491/1222 +f 2952/2548/1181 2946/2542/1223 2901/2500/1183 +f 2951/2547/1187 2948/2544/1186 2950/2546/1188 +f 2914/2513/1196 2944/2541/1179 2951/2547/1187 +f 2946/2542/1223 2952/2548/1181 2949/2545/1189 +f 2956/2552/1227 2953/2549/1224 2954/2550/1225 +f 2866/2478/1158 2955/2551/1226 2956/2552/1227 diff --git a/src/main/resources/assets/hbm/models/weapons/_blacksand.obj b/src/main/resources/assets/hbm/models/weapons/_blacksand.obj new file mode 100644 index 000000000..118fd9227 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/_blacksand.obj @@ -0,0 +1,3402 @@ +# Blender v2.79 (sub 0) OBJ File: 'aberrator.blend' +# www.blender.org +o Cylinder +v 0.000000 3.000000 -1.000000 +v 0.000000 3.000000 4.000000 +v 0.500000 2.866025 -1.000000 +v 0.500000 2.866025 4.000000 +v 0.866025 2.500000 -1.000000 +v 0.866025 2.500000 4.000000 +v 1.000000 2.000000 -1.000000 +v 1.000000 2.000000 4.000000 +v 0.866025 1.500000 -1.000000 +v 0.866025 1.500000 4.000000 +v 0.500000 1.133975 -1.000000 +v 0.500000 1.133975 4.000000 +v 0.000000 1.000000 -1.000000 +v 0.000000 1.000000 4.000000 +v -0.500000 1.133975 -1.000000 +v -0.500000 1.133975 4.000000 +v -0.866025 1.500000 -1.000000 +v -0.866025 1.500000 4.000000 +v -1.000000 2.000000 -1.000000 +v -1.000000 2.000000 4.000000 +v -0.866026 2.500000 -1.000000 +v -0.866026 2.500000 4.000000 +v -0.500000 2.866025 -1.000000 +v -0.500000 2.866025 4.000000 +v 0.000000 2.500000 4.500000 +v 0.000000 2.500000 7.500000 +v 0.250000 2.433013 4.500000 +v 0.250000 2.433012 7.500000 +v 0.433013 2.250000 4.500000 +v 0.433013 2.250000 7.500000 +v 0.500000 2.000000 4.500000 +v 0.500000 2.000000 7.500000 +v 0.433013 1.750000 4.500000 +v 0.433013 1.750000 7.500000 +v 0.250000 1.566987 4.500000 +v 0.250000 1.566987 7.500000 +v 0.000000 1.500000 4.500000 +v 0.000000 1.500000 7.500000 +v -0.250000 1.566987 4.500000 +v -0.250000 1.566987 7.500000 +v -0.433013 1.750000 4.500000 +v -0.433013 1.750000 7.500000 +v -0.500000 2.000000 4.500000 +v -0.500000 2.000000 7.500000 +v -0.433013 2.250000 4.500000 +v -0.433013 2.250000 7.500000 +v -0.250000 2.433012 4.500000 +v -0.250000 2.433012 7.500000 +v 0.000000 2.933013 4.250000 +v 0.000000 2.750000 4.433012 +v 0.000000 1.066987 4.250000 +v 0.000000 1.250000 4.433012 +v 0.933013 2.000000 4.250000 +v 0.750000 2.000000 4.433012 +v -0.933013 2.000000 4.250000 +v -0.750000 2.000000 4.433012 +v 0.466506 2.808013 4.250000 +v 0.375000 2.649519 4.433012 +v -0.466506 1.191987 4.250000 +v -0.375000 1.350481 4.433012 +v 0.808013 1.533494 4.250000 +v 0.649519 1.625000 4.433012 +v -0.808013 2.466506 4.250000 +v -0.649519 2.375000 4.433012 +v 0.808013 2.466506 4.250000 +v 0.649519 2.375000 4.433012 +v -0.808013 1.533494 4.250000 +v -0.649519 1.625000 4.433012 +v 0.466506 1.191987 4.250000 +v 0.375000 1.350481 4.433012 +v -0.466506 2.808013 4.250000 +v -0.375000 2.649519 4.433012 +v 0.000000 2.750000 7.500000 +v -0.375000 2.649519 7.500000 +v -0.649519 2.375000 7.500000 +v -0.750000 2.000000 7.500000 +v -0.649519 1.625000 7.500000 +v -0.375000 1.350481 7.500000 +v 0.000000 1.250000 7.500000 +v 0.375000 1.350481 7.500000 +v 0.649519 1.625000 7.500000 +v 0.750000 1.999999 7.500000 +v 0.649519 2.374999 7.500000 +v 0.375000 2.649519 7.500000 +v 0.000000 2.750000 7.875000 +v -0.375000 2.649519 7.875000 +v -0.649519 2.375000 7.875000 +v -0.750000 2.000000 7.875000 +v -0.649519 1.625000 7.875000 +v -0.375000 1.350481 7.875000 +v 0.000000 1.250000 7.875000 +v 0.375000 1.350481 7.875000 +v 0.649519 1.625000 7.875000 +v 0.750000 1.999999 7.875000 +v 0.649519 2.374999 7.875000 +v 0.375000 2.649519 7.875000 +v 0.000000 2.750000 8.375000 +v -0.375000 2.649519 8.375000 +v -0.649519 2.375000 8.375000 +v -0.750000 2.000000 8.375000 +v -0.649519 1.625000 8.375000 +v -0.375000 1.350481 8.375000 +v 0.000000 1.250000 8.375000 +v 0.375000 1.350481 8.375000 +v 0.649519 1.625000 8.375000 +v 0.750000 1.999999 8.375000 +v 0.649519 2.374999 8.375000 +v 0.375000 2.649519 8.375000 +v 0.000000 2.750000 8.750000 +v -0.375000 2.649519 8.750000 +v -0.649519 2.375000 8.750000 +v -0.750000 2.000000 8.750000 +v -0.649519 1.625000 8.750000 +v -0.375000 1.350481 8.750000 +v 0.000000 1.250000 8.750000 +v 0.375000 1.350481 8.750000 +v 0.649519 1.625000 8.750000 +v 0.750000 1.999999 8.750000 +v 0.649519 2.374999 8.750000 +v 0.375000 2.649519 8.750000 +v 0.000000 2.999999 7.875000 +v -0.500000 2.866025 7.875000 +v -0.866025 2.499999 7.875000 +v -1.000000 1.999999 7.875000 +v -0.866025 1.499999 7.875000 +v -0.500000 1.133974 7.875000 +v 0.000000 0.999999 7.875000 +v 0.500000 1.133973 7.875000 +v 0.866025 1.499999 7.875000 +v 1.000000 1.999999 7.875000 +v 0.866025 2.499999 7.875000 +v 0.500000 2.866024 7.875000 +v 0.000000 2.999999 8.375000 +v -0.500000 2.866025 8.375000 +v -0.866025 2.499999 8.375000 +v -1.000000 1.999999 8.375000 +v -0.866025 1.499999 8.375000 +v -0.500000 1.133974 8.375000 +v 0.000000 0.999999 8.375000 +v 0.500000 1.133973 8.375000 +v 0.866025 1.499999 8.375000 +v 1.000000 1.999999 8.375000 +v 0.866025 2.499999 8.375000 +v 0.500000 2.866024 8.375000 +v 0.000000 2.375000 8.750000 +v -0.187500 2.324759 8.750000 +v -0.324759 2.187500 8.750000 +v -0.375000 2.000000 8.750000 +v -0.324759 1.812500 8.750000 +v -0.187500 1.675241 8.750000 +v 0.000000 1.625000 8.750000 +v 0.187500 1.675241 8.750000 +v 0.324759 1.812500 8.750000 +v 0.375000 2.000000 8.750000 +v 0.324759 2.187500 8.750000 +v 0.187500 2.324759 8.750000 +v 0.000000 2.375000 8.250000 +v -0.187500 2.324759 8.250000 +v -0.324759 2.187500 8.250000 +v -0.375000 2.000000 8.250000 +v -0.324759 1.812500 8.250000 +v -0.187500 1.675241 8.250000 +v 0.000000 1.625000 8.250000 +v 0.187500 1.675241 8.250000 +v 0.324759 1.812500 8.250000 +v 0.375000 2.000000 8.250000 +v 0.324759 2.187500 8.250000 +v 0.187500 2.324759 8.250000 +v 0.000000 2.500000 -1.000000 +v 0.250000 2.433013 -1.000000 +v 0.433013 2.250000 -1.000000 +v 0.500000 2.000000 -1.000000 +v 0.433013 1.750000 -1.000000 +v 0.250000 1.566988 -1.000000 +v 0.000000 1.500000 -1.000000 +v -0.250000 1.566987 -1.000000 +v -0.433013 1.750000 -1.000000 +v -0.500000 2.000000 -1.000000 +v -0.433013 2.250000 -1.000000 +v -0.250000 2.433012 -1.000000 +v 0.000000 2.500000 2.000000 +v 0.250000 2.433013 2.000000 +v 0.433012 2.250000 2.000000 +v 0.500000 2.000000 2.000000 +v 0.433012 1.750000 2.000000 +v 0.250000 1.566988 2.000000 +v 0.000000 1.500000 2.000000 +v -0.250000 1.566988 2.000000 +v -0.433013 1.750000 2.000000 +v -0.500000 2.000000 2.000000 +v -0.433013 2.250000 2.000000 +v -0.250000 2.433013 2.000000 +v 0.000000 3.000000 -2.000000 +v 0.000000 2.500000 -2.649519 +v -0.250000 2.433012 1.500000 +v -0.250000 2.433012 -1.000000 +v 0.500000 2.866025 -2.000000 +v 0.433012 2.750000 -2.375000 +v 0.250000 2.433013 -2.649519 +v -0.187500 2.324759 2.000000 +v -0.433013 2.250000 -1.000000 +v -0.500000 2.000000 -1.000000 +v -0.433013 1.750000 -1.000000 +v 0.866025 2.500000 -2.000000 +v 0.750000 2.433013 -2.375000 +v 0.433012 2.250000 -2.649519 +v -0.324759 2.187500 2.000000 +v -0.375000 2.000000 2.000000 +v -0.250000 1.566987 -1.000000 +v 0.000000 1.500000 -1.000000 +v 1.000000 2.000000 -2.000000 +v 0.866025 2.000000 -2.375000 +v 0.500000 2.000000 -2.649519 +v -0.324759 1.812500 2.000000 +v -0.187500 1.675241 2.000000 +v 0.250000 1.566988 -1.000000 +v 0.433013 1.750000 -1.000000 +v 0.866025 1.500000 -2.000000 +v 0.750000 1.566988 -2.375000 +v 0.433012 1.750000 -2.649519 +v 0.000000 1.625000 2.000000 +v 0.187500 1.675241 2.000000 +v 0.500000 2.000000 -1.000000 +v 0.433013 2.250000 -1.000000 +v 0.500000 1.133975 -2.000000 +v 0.433012 1.250000 -2.375000 +v 0.250000 1.566988 -2.649519 +v 0.324759 1.812500 2.000000 +v 0.375000 2.000000 2.000000 +v 0.250000 2.433013 -1.000000 +v 0.000000 2.500000 -1.000000 +v 0.000000 1.000000 -2.000000 +v 0.000000 1.133975 -2.375000 +v 0.000000 1.500000 -2.649519 +v 0.000000 2.000000 -2.750000 +v 0.324759 2.187500 2.000000 +v -0.500000 2.866025 -1.000000 +v -0.866025 2.500000 -1.000000 +v -0.500000 1.133975 -2.000000 +v -0.433013 1.250000 -2.375000 +v -0.250000 1.566988 -2.649519 +v 0.187500 2.324759 2.000000 +v 0.000000 2.375000 2.000000 +v -1.000000 2.000000 -1.000000 +v -0.866025 1.500000 -1.000000 +v -0.866025 1.500000 -2.000000 +v -0.750000 1.566988 -2.375000 +v -0.433013 1.750000 -2.649519 +v 0.250000 2.433013 1.500000 +v 0.433012 2.250000 1.500000 +v -0.500000 1.133975 -1.000000 +v 0.000000 1.000000 -1.000000 +v -1.000000 2.000000 -2.000000 +v -0.866025 2.000000 -2.375000 +v -0.500000 2.000000 -2.649519 +v 0.500000 2.000000 1.500000 +v 0.433012 1.750000 1.500000 +v 0.500000 1.133975 -1.000000 +v 0.866025 1.500000 -1.000000 +v -0.866025 2.500000 -2.000000 +v -0.750000 2.433013 -2.375000 +v -0.433013 2.250000 -2.649519 +v 0.250000 1.566988 1.500000 +v 0.000000 1.500000 1.500000 +v 1.000000 2.000000 -1.000000 +v 0.866025 2.500000 -1.000000 +v -0.500000 2.866025 -2.000000 +v -0.433013 2.750000 -2.375000 +v -0.250000 2.433013 -2.649519 +v -0.250000 1.566987 1.500000 +v -0.433013 1.750000 1.500000 +v 0.500000 2.866025 -1.000000 +v 0.000000 3.000000 -1.000000 +v -0.500000 2.000000 1.500000 +v 0.000000 2.866025 -2.375000 +v -0.433013 2.250000 1.500000 +v 0.000000 2.500000 1.500000 +v -0.250000 1.000000 -1.125000 +v 0.250000 1.000000 -1.125000 +v -0.250000 1.000000 -2.500000 +v 0.250000 1.000000 -2.500000 +v -0.250000 -1.500000 -3.000000 +v -0.250000 -1.500000 -1.625000 +v 0.250000 -1.500000 -1.625000 +v 0.250000 -1.500000 -3.000000 +v -0.250000 1.375000 -2.500000 +v -0.250000 1.375000 -1.125000 +v 0.250000 1.375000 -1.125000 +v 0.250000 1.375000 -2.500000 +v 0.500000 1.000000 -1.375000 +v 0.500000 1.000000 -2.250000 +v 0.500000 -1.500000 -1.875000 +v 0.500000 -1.500000 -2.750000 +v 0.500000 1.375000 -1.375000 +v 0.500000 1.375000 -2.250000 +v -0.500000 1.000000 -2.250000 +v -0.500000 1.000000 -1.375000 +v -0.500000 -1.500000 -2.750000 +v -0.500000 -1.500000 -1.875000 +v -0.500000 1.375000 -2.250000 +v -0.500000 1.375000 -1.375000 +v -0.125000 2.937500 -0.750000 +v 0.125000 2.937500 -0.750000 +v -0.125000 2.937500 -1.000000 +v 0.125000 2.937500 -1.000000 +v -0.125000 3.062500 -0.750000 +v 0.125000 3.062500 -0.750000 +v -0.125000 3.062500 -1.250000 +v 0.125000 3.062500 -1.250000 +v -0.125000 0.250000 -1.375000 +v 0.125000 0.250000 -1.375000 +v -0.125000 0.250000 -0.875000 +v 0.125000 0.250000 -0.875000 +v -0.125000 1.125000 -1.125000 +v 0.125000 1.125000 -1.125000 +v -0.812500 2.500000 3.500000 +v -0.812500 1.500000 3.500000 +v -0.812500 2.500000 0.500000 +v -0.812500 1.500000 0.500000 +v -1.312500 2.500000 0.500000 +v -1.312500 2.500000 3.500000 +v -1.312500 1.500000 3.500000 +v -1.312500 1.500000 0.500000 +v -1.125000 2.375000 3.500000 +v -1.213388 2.338388 3.500000 +v -1.250000 2.250000 3.500000 +v -1.213388 2.161612 3.500000 +v -1.125000 2.125000 3.500000 +v -1.036612 2.161612 3.500000 +v -1.000000 2.250000 3.500000 +v -1.036612 2.338388 3.500000 +v -1.125000 2.375000 4.250000 +v -1.213388 2.338388 4.250000 +v -1.250000 2.250000 4.250000 +v -1.213388 2.161612 4.250000 +v -1.125000 2.125000 4.250000 +v -1.036612 2.161612 4.250000 +v -1.000000 2.250000 4.250000 +v -1.036612 2.338388 4.250000 +v -0.750000 2.375000 5.125000 +v -0.838388 2.338388 5.125000 +v -0.875000 2.250000 5.125000 +v -0.838388 2.161612 5.125000 +v -0.750000 2.125000 5.125000 +v -0.661612 2.161612 5.125000 +v -0.625000 2.250000 5.125000 +v -0.661612 2.338388 5.125000 +v -0.750000 2.375000 7.875000 +v -0.838388 2.338388 7.875000 +v -0.875000 2.250000 7.875000 +v -0.838388 2.161612 7.875000 +v -0.750000 2.125000 7.875000 +v -0.661612 2.161612 7.875000 +v -0.625000 2.250000 7.875000 +v -0.661612 2.338388 7.875000 +v -1.125000 1.875000 3.500000 +v -1.213388 1.838388 3.500000 +v -1.250000 1.750000 3.500000 +v -1.213388 1.661612 3.500000 +v -1.125000 1.625000 3.500000 +v -1.036612 1.661612 3.500000 +v -1.000000 1.750000 3.500000 +v -1.036612 1.838388 3.500000 +v -1.125000 1.875000 4.250000 +v -1.213388 1.838388 4.250000 +v -1.250000 1.750000 4.250000 +v -1.213388 1.661612 4.250000 +v -1.125000 1.625000 4.250000 +v -1.036612 1.661612 4.250000 +v -1.000000 1.750000 4.250000 +v -1.036612 1.838388 4.250000 +v -0.750000 1.875000 5.125000 +v -0.838388 1.838388 5.125000 +v -0.875000 1.750000 5.125000 +v -0.838388 1.661612 5.125000 +v -0.750000 1.625000 5.125000 +v -0.661612 1.661612 5.125000 +v -0.625000 1.750000 5.125000 +v -0.661612 1.838388 5.125000 +v -0.750000 1.875000 7.875000 +v -0.838388 1.838388 7.875000 +v -0.875000 1.750000 7.875000 +v -0.838388 1.661612 7.875000 +v -0.750000 1.625000 7.875000 +v -0.661612 1.661612 7.875000 +v -0.625000 1.750000 7.875000 +v -0.661612 1.838388 7.875000 +v 1.312500 2.500000 2.750000 +v 1.312500 1.500000 2.750000 +v 0.812500 2.500000 2.750000 +v 0.812500 1.500000 2.750000 +v 1.312500 2.500000 1.750000 +v 1.312500 1.500000 1.750000 +v 0.812500 2.500000 1.750000 +v 0.812500 1.500000 1.750000 +v 1.312500 2.375000 2.625000 +v 1.312500 1.625000 2.625000 +v 1.312500 2.375000 1.875000 +v 1.312500 1.625000 1.875000 +v 1.562500 2.250000 2.500000 +v 1.562500 1.750000 2.500000 +v 1.562500 2.250000 2.000000 +v 1.562500 1.750000 2.000000 +v 0.750000 2.974112 2.411612 +v 0.750000 2.937500 2.500000 +v 0.750000 2.974112 2.588388 +v 0.750000 3.062500 2.625000 +v 0.750000 3.062500 2.375000 +v 0.750000 3.150888 2.411612 +v 0.750000 3.187500 2.500000 +v 0.750000 3.150888 2.588388 +v -0.750000 3.150888 2.411612 +v -0.750000 3.187500 2.500000 +v -0.750000 3.150888 2.588388 +v -0.750000 3.062500 2.625000 +v -0.750000 3.062500 2.375000 +v -0.750000 2.974112 2.411612 +v -0.750000 2.937500 2.500000 +v -0.750000 2.974112 2.588388 +v 0.974112 2.500000 2.088388 +v 0.937500 2.500000 2.000000 +v 0.974112 2.500000 1.911612 +v 1.062500 2.500000 1.875000 +v 1.062500 2.500000 2.125000 +v 1.150888 2.500000 2.088388 +v 1.187500 2.500000 2.000000 +v 1.150888 2.500000 1.911612 +v 0.974112 2.750000 2.088388 +v 0.937500 2.750000 2.000000 +v 0.974112 2.750000 1.911612 +v 1.062500 2.750000 1.875000 +v 1.062500 2.750000 2.125000 +v 1.150888 2.750000 2.088388 +v 1.187500 2.750000 2.000000 +v 1.150888 2.750000 1.911612 +v -0.974112 2.750000 2.411612 +v -0.937500 2.750000 2.500000 +v -0.974112 2.750000 2.588388 +v -1.062500 2.750000 2.625000 +v -1.062500 2.750000 2.375000 +v -1.150888 2.750000 2.411612 +v -1.187500 2.750000 2.500000 +v -1.150888 2.750000 2.588388 +v -0.974112 2.500000 2.411612 +v -0.937500 2.500000 2.500000 +v -0.974112 2.500000 2.588388 +v -1.062500 2.500000 2.625000 +v -1.062500 2.500000 2.375000 +v -1.150888 2.500000 2.411612 +v -1.187500 2.500000 2.500000 +v -1.150888 2.500000 2.588388 +v -1.150888 2.500000 2.088388 +v -1.187500 2.500000 2.000000 +v -1.150888 2.500000 1.911612 +v -1.062500 2.500000 1.875000 +v -1.062500 2.500000 2.125000 +v -0.974112 2.500000 2.088388 +v -0.937500 2.500000 2.000000 +v -0.974112 2.500000 1.911612 +v -1.150888 2.750000 2.088388 +v -1.187500 2.750000 2.000000 +v -1.150888 2.750000 1.911612 +v -1.062500 2.750000 1.875000 +v -1.062500 2.750000 2.125000 +v -0.974112 2.750000 2.088388 +v -0.937500 2.750000 2.000000 +v -0.974112 2.750000 1.911612 +v 1.150888 2.750000 2.411612 +v 1.187500 2.750000 2.500000 +v 1.150888 2.750000 2.588388 +v 1.062500 2.750000 2.625000 +v 1.062500 2.750000 2.375000 +v 0.974112 2.750000 2.411612 +v 0.937500 2.750000 2.500000 +v 0.974112 2.750000 2.588388 +v -0.750000 2.974112 2.088388 +v -0.750000 2.937500 2.000000 +v -0.750000 2.974112 1.911612 +v -0.750000 3.062500 1.875000 +v -0.750000 3.062500 2.125000 +v -0.750000 3.150888 2.088388 +v -0.750000 3.187500 2.000000 +v -0.750000 3.150888 1.911612 +v 1.150888 2.500000 2.411612 +v 1.187500 2.500000 2.500000 +v 1.150888 2.500000 2.588388 +v 1.062500 2.500000 2.625000 +v 1.062500 2.500000 2.375000 +v 0.974112 2.500000 2.411612 +v 0.937500 2.500000 2.500000 +v 0.974112 2.500000 2.588388 +v 0.750000 3.150888 2.088388 +v 0.750000 3.187500 2.000000 +v 0.750000 3.150888 1.911612 +v 0.750000 3.062500 1.875000 +v 0.750000 3.062500 2.125000 +v 0.750000 2.974112 2.088388 +v 0.750000 2.937500 2.000000 +v 0.750000 2.974112 1.911612 +v 0.530330 1.646447 4.375000 +v 0.353553 1.469670 4.375000 +v 0.176776 1.646447 4.375000 +v 0.353553 1.823223 4.375000 +v 0.176776 1.646447 7.500000 +v 0.353553 1.823223 7.500000 +v 0.353553 1.469670 7.500000 +v 0.530330 1.646447 7.500000 +v -0.530330 2.353554 4.375000 +v -0.353553 2.530330 4.375000 +v -0.176777 2.353554 4.375000 +v -0.353553 2.176777 4.375000 +v -0.176777 2.353554 7.500000 +v -0.353553 2.176777 7.500000 +v -0.353553 2.530330 7.500000 +v -0.530330 2.353554 7.500000 +v -0.353554 1.469670 4.375000 +v -0.530330 1.646447 4.375000 +v -0.353554 1.823224 4.375000 +v -0.176777 1.646447 4.375000 +v -0.353554 1.823224 7.500000 +v -0.176777 1.646447 7.500000 +v -0.530330 1.646447 7.500000 +v -0.353554 1.469670 7.500000 +v 0.353554 2.530330 4.375000 +v 0.530330 2.353554 4.375000 +v 0.353554 2.176777 4.375000 +v 0.176777 2.353553 4.375000 +v 0.353554 2.176777 7.500000 +v 0.176777 2.353553 7.500000 +v 0.530330 2.353554 7.500000 +v 0.353554 2.530330 7.500000 +v -1.062500 2.500000 0.690000 +v -1.193315 2.500000 0.744185 +v -1.247500 2.500000 0.875000 +v -1.193315 2.500000 1.005815 +v -1.062500 2.500000 1.060000 +v -0.931685 2.500000 1.005815 +v -0.877500 2.500000 0.875000 +v -0.931685 2.500000 0.744185 +v -1.062500 3.250000 0.690000 +v -1.193315 3.250000 0.744185 +v -1.247500 3.250000 0.875000 +v -1.193315 3.250000 1.005815 +v -1.062500 3.250000 1.060000 +v -0.931685 3.250000 1.005815 +v -0.877500 3.250000 0.875000 +v -0.931685 3.250000 0.744185 +v -0.931685 3.250000 1.244185 +v -0.877500 3.250000 1.375000 +v -0.931685 3.250000 1.505815 +v -1.062500 3.250000 1.560000 +v -1.193315 3.250000 1.505815 +v -1.247500 3.250000 1.375000 +v -1.193315 3.250000 1.244185 +v -1.062500 3.250000 1.190000 +v -0.931685 2.500000 1.244185 +v -0.877500 2.500000 1.375000 +v -0.931685 2.500000 1.505815 +v -1.062500 2.500000 1.560000 +v -1.193315 2.500000 1.505815 +v -1.247500 2.500000 1.375000 +v -1.193315 2.500000 1.244185 +v -1.062500 2.500000 1.190000 +v -1.062500 2.500000 2.940000 +v -1.193315 2.500000 2.994185 +v -1.247500 2.500000 3.125000 +v -1.193315 2.500000 3.255815 +v -1.062500 2.500000 3.310000 +v -0.931685 2.500000 3.255815 +v -0.877500 2.500000 3.125000 +v -0.931685 2.500000 2.994185 +v -1.062500 3.250000 2.940000 +v -1.193315 3.250000 2.994185 +v -1.247500 3.250000 3.125000 +v -1.193315 3.250000 3.255815 +v -1.062500 3.250000 3.310000 +v -0.931685 3.250000 3.255815 +v -0.877500 3.250000 3.125000 +v -0.931685 3.250000 2.994185 +v -1.437500 2.375000 1.000000 +v -1.570083 2.320082 1.000000 +v -1.625000 2.187500 1.000000 +v -1.570083 2.054917 1.000000 +v -1.437500 2.000000 1.000000 +v -1.304917 2.054917 1.000000 +v -1.250000 2.187500 1.000000 +v -1.304917 2.320082 1.000000 +v -1.437500 2.375000 2.000000 +v -1.570083 2.320082 2.000000 +v -1.625000 2.187500 2.000000 +v -1.570083 2.054917 2.000000 +v -1.437500 2.000000 2.000000 +v -1.304917 2.054917 2.000000 +v -1.250000 2.187500 2.000000 +v -1.304917 2.320082 2.000000 +v -1.304917 1.945082 2.000000 +v -1.250000 1.812500 2.000000 +v -1.304917 1.679917 2.000000 +v -1.437500 1.625000 2.000000 +v -1.570083 1.679917 2.000000 +v -1.625000 1.812500 2.000000 +v -1.570083 1.945082 2.000000 +v -1.437500 2.000000 2.000000 +v -1.304917 1.945082 1.000000 +v -1.250000 1.812500 1.000000 +v -1.304917 1.679917 1.000000 +v -1.437500 1.625000 1.000000 +v -1.570083 1.679917 1.000000 +v -1.625000 1.812500 1.000000 +v -1.570083 1.945082 1.000000 +v -1.437500 2.000000 1.000000 +v -1.312500 2.437500 1.000000 +v -1.312500 1.562500 1.000000 +v -1.312500 2.437500 0.750000 +v -1.312500 1.562500 0.750000 +v -1.687500 2.437500 0.875000 +v -1.687500 2.437500 1.000000 +v -1.687500 1.562500 1.000000 +v -1.687500 1.562500 0.875000 +v -1.312500 2.437500 2.250000 +v -1.312500 1.562500 2.250000 +v -1.312500 2.437500 2.000000 +v -1.312500 1.562500 2.000000 +v -1.687500 2.437500 2.000000 +v -1.687500 2.437500 2.125000 +v -1.687500 1.562500 2.125000 +v -1.687500 1.562500 2.000000 +v 0.000000 2.375000 -2.625000 +v -0.187500 2.324760 -2.625000 +v -0.324759 2.187500 -2.625000 +v -0.375000 2.000000 -2.625000 +v -0.324759 1.812500 -2.625000 +v -0.187500 1.675241 -2.625000 +v 0.000000 1.625000 -2.625000 +v 0.187500 1.675241 -2.625000 +v 0.324759 1.812500 -2.625000 +v 0.375000 2.000000 -2.625000 +v 0.324759 2.187500 -2.625000 +v 0.187500 2.324760 -2.625000 +v 0.000000 2.375000 -3.000000 +v -0.187500 2.324760 -3.000000 +v -0.324759 2.187500 -3.000000 +v -0.375000 2.000000 -3.000000 +v -0.324759 1.812500 -3.000000 +v -0.187500 1.675241 -3.000000 +v 0.000000 1.625000 -3.000000 +v 0.187500 1.675241 -3.000000 +v 0.324759 1.812500 -3.000000 +v 0.375000 2.000000 -3.000000 +v 0.324759 2.187500 -3.000000 +v 0.187500 2.324760 -3.000000 +v -1.312500 2.250000 3.250000 +v -1.312500 1.750000 3.250000 +v -1.312500 2.250000 2.125000 +v -1.312500 1.750000 2.125000 +v -1.562500 2.250000 2.125000 +v -1.562500 2.250000 3.250000 +v -1.562500 1.750000 3.250000 +v -1.562500 1.750000 2.125000 +v -0.093750 2.162380 -2.875000 +v 0.000000 2.187500 -2.875000 +v -0.162380 2.093750 -2.875000 +v -0.187500 2.000000 -2.875000 +v -0.162380 1.906250 -2.875000 +v -0.093750 1.837620 -2.875000 +v 0.000000 1.812500 -2.875000 +v 0.093750 1.837620 -2.875000 +v 0.162380 1.906250 -2.875000 +v 0.187500 2.000000 -2.875000 +v 0.162380 2.093750 -2.875000 +v 0.093750 2.162380 -2.875000 +v 1.250000 0.875000 -0.125000 +v -1.250000 0.875000 -0.125000 +v 1.250000 0.963389 -0.088388 +v -1.250000 0.963389 -0.088388 +v 1.250000 1.000000 0.000000 +v -1.250000 1.000000 0.000000 +v 1.250000 0.963389 0.088388 +v -1.250000 0.963389 0.088388 +v 1.250000 0.875000 0.125000 +v -1.250000 0.875000 0.125000 +v 1.250000 0.786612 0.088388 +v -1.250000 0.786612 0.088388 +v 1.250000 0.750000 0.000000 +v -1.250000 0.750000 0.000000 +v 1.250000 0.786612 -0.088388 +v -1.250000 0.786612 -0.088388 +v 0.812500 1.750000 -1.750000 +v 0.812500 2.250000 -1.750000 +v 0.812500 2.250000 -1.125000 +v 0.812500 1.750000 -1.125000 +v 1.062500 1.750000 -1.750000 +v 1.062500 2.250000 -1.125000 +v 1.062500 2.250000 -1.750000 +v 1.062500 1.750000 -1.125000 +v 1.187500 1.750000 -1.625000 +v 1.187500 2.250000 -1.625000 +v 1.062500 1.750000 -0.187500 +v 1.187500 1.750000 -0.187500 +v 1.062500 0.687500 -0.062500 +v 1.062500 0.812500 -0.187500 +v 1.187500 0.812500 -0.187500 +v 1.187500 0.687500 -0.062500 +v 1.062500 0.812500 0.187500 +v 1.062500 0.687500 0.062500 +v 1.187500 0.687500 0.062500 +v 1.187500 0.812500 0.187500 +v 1.062500 2.250000 -0.062500 +v 1.062500 2.000000 0.187500 +v 1.187500 2.000000 0.187500 +v 1.187500 2.250000 -0.062500 +v -0.562500 0.687500 -0.062500 +v -0.562500 0.812500 -0.187500 +v -0.562500 0.812500 0.187500 +v -0.562500 0.687500 0.062500 +v 0.562500 0.687500 -0.062500 +v 0.562500 0.812500 -0.187500 +v 0.562500 0.812500 0.187500 +v 0.562500 0.687500 0.062500 +v -0.562500 1.312500 -0.187500 +v -0.562500 1.312500 0.187500 +v 0.562500 1.312500 -0.187500 +v 0.562500 1.312500 0.187500 +v -0.812500 1.750000 -1.750000 +v -0.812500 2.250000 -1.750000 +v -0.812500 2.250000 -1.125000 +v -0.812500 1.750000 -1.125000 +v -1.062500 1.750000 -1.750000 +v -1.062500 2.250000 -1.125000 +v -1.062500 2.250000 -1.750000 +v -1.062500 1.750000 -1.125000 +v -1.187500 1.750000 -1.625000 +v -1.187500 2.250000 -1.625000 +v -1.062500 1.750000 -0.187500 +v -1.187500 1.750000 -0.187500 +v -1.062500 0.687500 -0.062500 +v -1.062500 0.812500 -0.187500 +v -1.187500 0.812500 -0.187500 +v -1.187500 0.687500 -0.062500 +v -1.062500 0.812500 0.187500 +v -1.062500 0.687500 0.062500 +v -1.187500 0.687500 0.062500 +v -1.187500 0.812500 0.187500 +v -1.062500 2.250000 -0.062500 +v -1.062500 2.000000 0.187500 +v -1.187500 2.000000 0.187500 +v -1.187500 2.250000 -0.062500 +vt 0.460000 0.266667 +vt 0.486667 0.226667 +vt 0.486667 0.253333 +vt 0.153333 0.546667 +vt 0.140000 0.580000 +vt 0.140000 0.540000 +vt 0.153333 0.493333 +vt 0.140000 0.526667 +vt 0.140000 0.486667 +vt 0.153333 0.440000 +vt 0.140000 0.473333 +vt 0.140000 0.433333 +vt 0.153333 0.386667 +vt 0.140000 0.420000 +vt 0.140000 0.380000 +vt 0.153333 0.333333 +vt 0.140000 0.366667 +vt 0.140000 0.326667 +vt 0.153333 0.280000 +vt 0.140000 0.313333 +vt 0.140000 0.273333 +vt 0.153333 0.226667 +vt 0.140000 0.260000 +vt 0.140000 0.220000 +vt 0.153333 0.173333 +vt 0.140000 0.206667 +vt 0.140000 0.166667 +vt 0.153333 0.120000 +vt 0.140000 0.153333 +vt 0.140000 0.113333 +vt 0.153333 0.066667 +vt 0.140000 0.100000 +vt 0.140000 0.060000 +vt 0.153333 0.040000 +vt 0.140000 0.006667 +vt 0.153333 0.013333 +vt 0.153333 0.600000 +vt 0.140000 0.633333 +vt 0.140000 0.593333 +vt 0.120000 0.273333 +vt 0.106667 0.320000 +vt 0.106667 0.266667 +vt 0.120000 0.220000 +vt 0.106667 0.213333 +vt 0.120000 0.206667 +vt 0.106667 0.160000 +vt 0.120000 0.166667 +vt 0.120000 0.113333 +vt 0.106667 0.106667 +vt 0.120000 0.060000 +vt 0.106667 0.053333 +vt 0.120000 0.006667 +vt 0.106667 0.000000 +vt 0.120000 0.633333 +vt 0.106667 0.586667 +vt 0.120000 0.593333 +vt 0.120000 0.580000 +vt 0.106667 0.533333 +vt 0.120000 0.540000 +vt 0.120000 0.526667 +vt 0.106667 0.480000 +vt 0.120000 0.486667 +vt 0.120000 0.473333 +vt 0.106667 0.426667 +vt 0.120000 0.433333 +vt 0.120000 0.420000 +vt 0.106667 0.373333 +vt 0.120000 0.380000 +vt 0.120000 0.366667 +vt 0.120000 0.326667 +vt 0.080000 0.160000 +vt 0.066667 0.206667 +vt 0.066667 0.166667 +vt 0.080000 0.213333 +vt 0.066667 0.260000 +vt 0.066667 0.220000 +vt 0.066667 0.273333 +vt 0.080000 0.320000 +vt 0.066667 0.313333 +vt 0.066667 0.366667 +vt 0.066667 0.326667 +vt 0.080000 0.373333 +vt 0.066667 0.420000 +vt 0.066667 0.380000 +vt 0.080000 0.426667 +vt 0.066667 0.473333 +vt 0.066667 0.433333 +vt 0.080000 0.480000 +vt 0.066667 0.526667 +vt 0.066667 0.486667 +vt 0.080000 0.533333 +vt 0.066667 0.580000 +vt 0.066667 0.540000 +vt 0.080000 0.586667 +vt 0.066667 0.633333 +vt 0.066667 0.593333 +vt 0.066667 0.006667 +vt 0.080000 0.053333 +vt 0.066667 0.046667 +vt 0.066667 0.060000 +vt 0.080000 0.106667 +vt 0.066667 0.100000 +vt 0.066667 0.113333 +vt 0.066667 0.153333 +vt 0.046667 0.046667 +vt 0.026667 0.013333 +vt 0.046667 0.006667 +vt 0.046667 0.526667 +vt 0.026667 0.493333 +vt 0.046667 0.486667 +vt 0.046667 0.220000 +vt 0.026667 0.246667 +vt 0.026667 0.226667 +vt 0.046667 0.366667 +vt 0.026667 0.333333 +vt 0.046667 0.326667 +vt 0.046667 0.100000 +vt 0.026667 0.066667 +vt 0.046667 0.060000 +vt 0.046667 0.580000 +vt 0.026667 0.546667 +vt 0.046667 0.540000 +vt 0.046667 0.313333 +vt 0.026667 0.280000 +vt 0.046667 0.273333 +vt 0.046667 0.420000 +vt 0.026667 0.386667 +vt 0.046667 0.380000 +vt 0.046667 0.113333 +vt 0.026667 0.140000 +vt 0.026667 0.120000 +vt 0.046667 0.633333 +vt 0.026667 0.600000 +vt 0.046667 0.593333 +vt 0.046667 0.473333 +vt 0.026667 0.440000 +vt 0.046667 0.433333 +vt 0.046667 0.206667 +vt 0.026667 0.173333 +vt 0.046667 0.166667 +vt 0.197303 0.699979 +vt 0.180000 0.719959 +vt 0.162697 0.660021 +vt 0.460000 0.480000 +vt 0.486667 0.440000 +vt 0.486667 0.466667 +vt 0.486667 0.520000 +vt 0.460000 0.533333 +vt 0.486667 0.573333 +vt 0.460000 0.586667 +vt 0.460000 0.640000 +vt 0.486667 0.600000 +vt 0.486667 0.626667 +vt 0.460000 0.053333 +vt 0.486667 0.013333 +vt 0.486667 0.040000 +vt 0.486667 0.093333 +vt 0.460000 0.106667 +vt 0.460000 0.160000 +vt 0.486667 0.120000 +vt 0.486667 0.146667 +vt 0.460000 0.373333 +vt 0.486667 0.333333 +vt 0.486667 0.360000 +vt 0.460000 0.320000 +vt 0.486667 0.280000 +vt 0.486667 0.306667 +vt 0.486667 0.200000 +vt 0.460000 0.213333 +vt 0.486667 0.413333 +vt 0.460000 0.426667 +vt 0.159989 0.693333 +vt 0.146661 0.739503 +vt 0.106677 0.693333 +vt 0.732697 0.846687 +vt 0.767303 0.846687 +vt 0.750000 0.906626 +vt 0.773468 0.906787 +vt 0.796667 0.826426 +vt 0.819865 0.906787 +vt 0.099472 0.693390 +vt 0.099472 0.799943 +vt 0.053333 0.853219 +vt 0.840000 0.106667 +vt 0.826667 0.080000 +vt 0.840000 0.000000 +vt 0.153333 0.840000 +vt 0.180000 0.813333 +vt 0.180000 0.840000 +vt 0.973333 0.493333 +vt 0.986667 0.440000 +vt 0.986667 0.493333 +vt 0.986667 0.413333 +vt 0.973333 0.440000 +vt 0.973333 0.413333 +vt 0.973333 0.506667 +vt 0.986667 0.506667 +vt 0.966667 0.466667 +vt 0.966667 0.493333 +vt 0.993333 0.466667 +vt 0.106667 0.840000 +vt 0.153333 0.813333 +vt 0.166667 0.720000 +vt 0.166667 0.933333 +vt 0.226667 0.800000 +vt 0.386667 0.693333 +vt 0.386667 0.800000 +vt 0.386667 0.640000 +vt 0.226667 0.693333 +vt 0.226667 0.640000 +vt 0.226667 0.853333 +vt 0.386667 0.853333 +vt 0.200000 0.693333 +vt 0.200000 0.800000 +vt 0.413333 0.800000 +vt 0.413333 0.693333 +vt 0.873333 0.586667 +vt 0.846667 0.480000 +vt 0.873333 0.480000 +vt 0.966667 0.480000 +vt 0.940000 0.586667 +vt 0.940000 0.480000 +vt 0.880000 0.600000 +vt 0.933333 0.653333 +vt 0.880000 0.653333 +vt 0.893333 0.506667 +vt 0.926667 0.480000 +vt 0.920000 0.506667 +vt 0.880000 0.413333 +vt 0.933333 0.466667 +vt 0.880000 0.466667 +vt 0.926667 0.586667 +vt 0.933333 0.600000 +vt 0.933333 0.493333 +vt 0.880000 0.573333 +vt 0.886667 0.480000 +vt 0.920000 0.560000 +vt 0.893333 0.560000 +vt 0.933333 0.573333 +vt 0.886667 0.586667 +vt 0.880000 0.493333 +vt 0.560000 0.666667 +vt 0.726667 0.693333 +vt 0.560000 0.693333 +vt 0.726667 0.640000 +vt 0.560000 0.666667 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.720000 +vt 0.726667 0.640000 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.693333 +vt 0.726667 0.720000 +vt 0.560000 0.693333 +vt 0.560000 0.666667 +vt 0.726667 0.693333 +vt 0.560000 0.693333 +vt 0.726667 0.640000 +vt 0.560000 0.666667 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.720000 +vt 0.726667 0.640000 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.693333 +vt 0.726667 0.720000 +vt 0.560000 0.693333 +vt 0.000156 0.953333 +vt 0.010000 0.933646 +vt 0.019844 0.953333 +vt 0.053490 0.953333 +vt 0.063333 0.933646 +vt 0.073177 0.953333 +vt 0.000156 0.953333 +vt 0.010000 0.933646 +vt 0.019844 0.953333 +vt 0.480000 0.773333 +vt 0.486667 0.680000 +vt 0.486667 0.773333 +vt 0.433333 0.773333 +vt 0.440000 0.680000 +vt 0.440000 0.773333 +vt 0.440000 0.813333 +vt 0.413333 0.680000 +vt 0.413333 0.773333 +vt 0.460000 0.773333 +vt 0.460000 0.680000 +vt 0.440000 0.640000 +vt 0.433333 0.680000 +vt 0.426667 0.640000 +vt 0.480000 0.813333 +vt 0.493333 0.813333 +vt 0.460000 0.680000 +vt 0.460000 0.773333 +vt 0.506667 0.773333 +vt 0.506667 0.680000 +vt 0.480000 0.640000 +vt 0.480000 0.680000 +vt 0.773333 0.493333 +vt 0.833333 0.440000 +vt 0.833333 0.493333 +vt 0.833333 0.413333 +vt 0.773333 0.440000 +vt 0.773333 0.413333 +vt 0.773333 0.520000 +vt 0.833333 0.520000 +vt 0.791947 0.530054 +vt 0.791947 0.549945 +vt 0.774720 0.549945 +vt 0.846667 0.493333 +vt 0.846667 0.440000 +vt 0.793333 0.800031 +vt 0.799985 0.813334 +vt 0.793333 0.826636 +vt 0.788646 0.777292 +vt 0.793333 0.773409 +vt 0.798021 0.777292 +vt 0.556667 0.993333 +vt 0.556667 0.966667 +vt 0.550000 0.953333 +vt 0.550000 0.953333 +vt 0.556667 0.900000 +vt 0.556667 0.953333 +vt 0.523333 0.993333 +vt 0.523333 0.966667 +vt 0.570000 0.900000 +vt 0.570000 0.953333 +vt 0.556667 0.900000 +vt 0.570000 0.953333 +vt 0.556667 0.953333 +vt 0.453333 0.800000 +vt 0.446667 0.926667 +vt 0.446667 0.800000 +vt 0.480000 0.953333 +vt 0.523333 0.966667 +vt 0.473333 0.900000 +vt 0.466667 0.953333 +vt 0.523333 0.953333 +vt 0.473333 0.900000 +vt 0.466667 0.953333 +vt 0.473333 0.800000 +vt 0.460000 0.786667 +vt 0.453333 0.800000 +vt 0.473333 0.800000 +vt 0.460000 0.786667 +vt 0.466667 0.773333 +vt 0.466667 0.786667 +vt 0.473333 0.773333 +vt 0.460000 0.773333 +vt 0.453333 0.786667 +vt 0.453333 0.773333 +vt 0.480000 0.900000 +vt 0.453333 0.953333 +vt 0.453333 0.926667 +vt 0.453333 0.926667 +vt 0.206667 0.920000 +vt 0.266667 0.933333 +vt 0.206667 0.933333 +vt 0.266667 0.946667 +vt 0.206667 0.946667 +vt 0.206667 0.906667 +vt 0.266667 0.920000 +vt 0.266667 0.853333 +vt 0.266667 0.906667 +vt 0.206667 1.000000 +vt 0.173333 0.946667 +vt 0.173333 0.906667 +vt 0.200000 0.906667 +vt 0.273333 0.946667 +vt 0.550000 0.953333 +vt 0.556667 0.993333 +vt 0.523333 0.993333 +vt 0.556667 0.900000 +vt 0.550000 0.953333 +vt 0.556667 0.953333 +vt 0.523333 0.993333 +vt 0.556667 0.993333 +vt 0.570000 0.900000 +vt 0.570000 0.953333 +vt 0.570000 0.953333 +vt 0.556667 0.900000 +vt 0.556667 0.953333 +vt 0.446667 0.926667 +vt 0.453333 0.800000 +vt 0.446667 0.800000 +vt 0.523333 0.966667 +vt 0.480000 0.953333 +vt 0.473333 0.900000 +vt 0.550000 0.900000 +vt 0.473333 0.900000 +vt 0.523333 0.953333 +vt 0.466667 0.953333 +vt 0.466667 0.786667 +vt 0.460000 0.786667 +vt 0.523333 0.966667 +vt 0.466667 0.953333 +vt 0.466667 0.966667 +vt 0.460000 0.786667 +vt 0.466667 0.786667 +vt 0.473333 0.800000 +vt 0.466667 0.773333 +vt 0.473333 0.773333 +vt 0.453333 0.786667 +vt 0.460000 0.773333 +vt 0.453333 0.773333 +vt 0.480000 0.900000 +vt 0.473333 0.800000 +vt 0.453333 0.953333 +vt 0.453333 0.926667 +vt 0.453333 0.926667 +vt 0.153333 0.573333 +vt 0.153333 0.520000 +vt 0.153333 0.466667 +vt 0.153333 0.413333 +vt 0.153333 0.360000 +vt 0.153333 0.306667 +vt 0.153333 0.253333 +vt 0.153333 0.200000 +vt 0.153333 0.146667 +vt 0.153333 0.093333 +vt 0.140000 0.046667 +vt 0.153333 0.626667 +vt 0.120000 0.313333 +vt 0.120000 0.260000 +vt 0.120000 0.153333 +vt 0.120000 0.100000 +vt 0.120000 0.046667 +vt 0.106667 0.640000 +vt 0.080000 0.266667 +vt 0.080000 0.640000 +vt 0.080000 0.000000 +vt 0.026667 0.033333 +vt 0.026667 0.513333 +vt 0.046667 0.260000 +vt 0.026667 0.353333 +vt 0.026667 0.086667 +vt 0.026667 0.566667 +vt 0.026667 0.300000 +vt 0.026667 0.406667 +vt 0.046667 0.153333 +vt 0.026667 0.620000 +vt 0.026667 0.460000 +vt 0.026667 0.193333 +vt 0.170010 0.714606 +vt 0.162697 0.699979 +vt 0.160021 0.680000 +vt 0.170010 0.645395 +vt 0.180000 0.640041 +vt 0.189990 0.645395 +vt 0.197303 0.660021 +vt 0.199979 0.680000 +vt 0.189990 0.714606 +vt 0.486667 0.493333 +vt 0.486667 0.546667 +vt 0.460000 -0.000000 +vt 0.486667 0.066667 +vt 0.486667 0.173333 +vt 0.486667 0.386667 +vt 0.133333 0.746646 +vt 0.120005 0.739503 +vt 0.110248 0.719989 +vt 0.110248 0.666677 +vt 0.146661 0.647164 +vt 0.120005 0.647164 +vt 0.133333 0.640021 +vt 0.156418 0.666677 +vt 0.156418 0.719989 +vt 0.740010 0.901272 +vt 0.732697 0.886646 +vt 0.730020 0.866667 +vt 0.740010 0.832061 +vt 0.750000 0.826708 +vt 0.759990 0.832061 +vt 0.769980 0.866667 +vt 0.767303 0.886646 +vt 0.759990 0.901272 +vt 0.810060 0.926396 +vt 0.796667 0.933574 +vt 0.783273 0.926396 +vt 0.769880 0.880000 +vt 0.773468 0.853213 +vt 0.783273 0.833603 +vt 0.810060 0.833603 +vt 0.819865 0.853213 +vt 0.823454 0.880000 +vt 0.026695 0.838944 +vt 0.007195 0.799943 +vt 0.000057 0.746667 +vt 0.007195 0.693390 +vt 0.026695 0.654390 +vt 0.053333 0.640114 +vt 0.079972 0.654390 +vt 0.106610 0.746667 +vt 0.079971 0.838944 +vt 0.826667 0.026667 +vt 0.886667 0.000000 +vt 0.886667 0.106667 +vt 0.900000 0.026667 +vt 0.900000 0.080000 +vt 0.993333 0.493333 +vt 0.106667 0.813333 +vt 0.846667 0.586667 +vt 0.966667 0.586667 +vt 0.933333 0.413333 +vt 0.726667 0.666667 +vt 0.726667 0.666667 +vt 0.726667 0.666667 +vt 0.726667 0.666667 +vt 0.003040 0.939412 +vt 0.016961 0.939412 +vt 0.016961 0.967254 +vt 0.010000 0.973020 +vt 0.003040 0.967254 +vt 0.056373 0.939412 +vt 0.070294 0.939412 +vt 0.070294 0.967254 +vt 0.063333 0.973020 +vt 0.056373 0.967254 +vt 0.003040 0.939412 +vt 0.016961 0.939412 +vt 0.016961 0.967254 +vt 0.010000 0.973020 +vt 0.003040 0.967254 +vt 0.426667 0.813333 +vt 0.493333 0.640000 +vt 0.788306 0.557226 +vt 0.783333 0.559891 +vt 0.778361 0.557226 +vt 0.773388 0.540000 +vt 0.774720 0.530054 +vt 0.778361 0.522774 +vt 0.783333 0.520109 +vt 0.788306 0.522773 +vt 0.793279 0.540000 +vt 0.788630 0.822740 +vt 0.786682 0.813334 +vt 0.788630 0.803927 +vt 0.798037 0.803927 +vt 0.798037 0.822740 +vt 0.799962 0.786667 +vt 0.798021 0.796041 +vt 0.793333 0.799924 +vt 0.788646 0.796041 +vt 0.786704 0.786667 +vt 0.523333 0.993333 +vt 0.550000 0.900000 +vt 0.556667 0.966667 +vt 0.556667 0.993333 +vt 0.570000 0.900000 +vt 0.480000 0.966667 +vt 0.523333 0.900000 +vt 0.466667 0.966667 +vt 0.466667 0.786667 +vt 0.473333 0.786667 +vt 0.480000 0.800000 +vt 0.446667 0.953333 +vt 0.206667 0.853333 +vt 0.266667 1.000000 +vt 0.200000 0.946667 +vt 0.273333 0.906667 +vt 0.300000 0.906667 +vt 0.300000 0.946667 +vt 0.556667 0.966667 +vt 0.556667 0.966667 +vt 0.570000 0.900000 +vt 0.480000 0.966667 +vt 0.523333 0.900000 +vt 0.453333 0.800000 +vt 0.473333 0.786667 +vt 0.480000 0.800000 +vt 0.446667 0.953333 +vt 0.193333 0.320000 +vt 0.193333 0.266667 +vt 0.193333 0.213333 +vt 0.193333 0.160000 +vt 0.193333 0.106667 +vt 0.193333 0.053333 +vt 0.193333 0.640000 +vt 0.193333 0.586667 +vt 0.193333 0.533333 +vt 0.193333 0.480000 +vt 0.193333 0.426667 +vt 0.193333 0.373333 +vt 0.486667 0.480000 +vt 0.646667 0.453333 +vt 0.646667 0.480000 +vt 0.486667 0.453333 +vt 0.646667 0.426667 +vt 0.486667 0.426667 +vt 0.646667 0.400000 +vt 0.486667 0.400000 +vt 0.646667 0.373333 +vt 0.486667 0.373333 +vt 0.646667 0.346667 +vt 0.486667 0.346667 +vt 0.646667 0.320000 +vt 0.486667 0.640000 +vt 0.646667 0.613333 +vt 0.646667 0.640000 +vt 0.486667 0.613333 +vt 0.646667 0.586667 +vt 0.486667 0.586667 +vt 0.646667 0.560000 +vt 0.486667 0.560000 +vt 0.646667 0.533333 +vt 0.486667 0.533333 +vt 0.646667 0.506667 +vt 0.486667 0.506667 +vt 0.166667 0.313333 +vt 0.180000 0.266667 +vt 0.180000 0.320000 +vt 0.166667 0.220000 +vt 0.180000 0.213333 +vt 0.166667 0.166667 +vt 0.180000 0.160000 +vt 0.166667 0.113333 +vt 0.180000 0.106667 +vt 0.166667 0.100000 +vt 0.180000 0.053333 +vt 0.180000 0.373333 +vt 0.166667 0.326667 +vt 0.180000 0.426667 +vt 0.166667 0.380000 +vt 0.166667 0.473333 +vt 0.180000 0.480000 +vt 0.166667 0.526667 +vt 0.166667 0.486667 +vt 0.166667 0.580000 +vt 0.180000 0.533333 +vt 0.180000 0.586667 +vt 0.180000 0.640000 +vt 0.166667 0.593333 +vt 0.166667 0.006667 +vt 0.180000 -0.000000 +vt 0.153333 0.200000 +vt 0.166667 0.206667 +vt 0.153333 0.253333 +vt 0.153333 0.226667 +vt 0.153333 0.280000 +vt 0.153333 0.306667 +vt 0.153333 0.333333 +vt 0.166667 0.366667 +vt 0.153333 0.360000 +vt 0.153333 0.386667 +vt 0.166667 0.420000 +vt 0.153333 0.413333 +vt 0.153333 0.440000 +vt 0.153333 0.466667 +vt 0.153333 0.520000 +vt 0.153333 0.546667 +vt 0.153333 0.573333 +vt 0.153333 0.600000 +vt 0.166667 0.633333 +vt 0.153333 0.626667 +vt 0.153333 0.040000 +vt 0.166667 0.046667 +vt 0.153333 0.066667 +vt 0.153333 0.093333 +vt 0.153333 0.120000 +vt 0.166667 0.153333 +vt 0.153333 0.146667 +vt 0.193333 -0.000000 +vt 0.000000 0.333333 +vt 0.000000 0.066667 +vt 0.000000 0.546667 +vt 0.000000 0.280000 +vt 0.000000 0.386667 +vt 0.000000 0.120000 +vt 0.000000 0.600000 +vt 0.000000 0.440000 +vt 0.000000 0.173333 +vt 0.000000 0.013333 +vt 0.000000 0.493333 +vt 0.000000 0.226667 +vt 0.646667 0.266667 +vt 0.486667 0.240000 +vt 0.646667 0.240000 +vt 0.646667 0.133333 +vt 0.486667 0.106667 +vt 0.646667 0.106667 +vt 0.646667 0.186667 +vt 0.486667 0.160000 +vt 0.646667 0.160000 +vt 0.646667 0.053333 +vt 0.486667 0.026667 +vt 0.646667 0.026667 +vt 0.646667 0.293333 +vt 0.486667 0.266667 +vt 0.486667 0.133333 +vt 0.646667 0.213333 +vt 0.486667 0.186667 +vt 0.646667 0.080000 +vt 0.486667 0.053333 +vt 0.646667 0.320000 +vt 0.486667 0.293333 +vt 0.486667 0.213333 +vt 0.486667 0.080000 +vt 0.486667 -0.000000 +vt 0.646667 0.000000 +vt 0.746667 0.306667 +vt 0.720000 0.266667 +vt 0.746667 0.280000 +vt 0.850000 0.973333 +vt 0.823333 0.946667 +vt 0.850000 0.946667 +vt 0.823333 0.920000 +vt 0.850000 0.920000 +vt 0.773333 0.293333 +vt 0.700000 0.320000 +vt 0.720000 0.320000 +vt 0.850000 0.760000 +vt 0.823333 0.780000 +vt 0.823333 0.760000 +vt 0.850000 0.840000 +vt 0.823333 0.860000 +vt 0.823333 0.840000 +vt 0.850000 0.680000 +vt 0.823333 0.653333 +vt 0.850000 0.653333 +vt 0.773333 0.240000 +vt 0.746667 0.253333 +vt 0.746667 0.226667 +vt 0.700000 0.266667 +vt 0.720000 0.213333 +vt 0.850000 0.813333 +vt 0.823333 0.833333 +vt 0.823333 0.813333 +vt 0.850000 0.786667 +vt 0.823333 0.806667 +vt 0.823333 0.786667 +vt 0.773333 0.186667 +vt 0.746667 0.200000 +vt 0.746667 0.173333 +vt 0.700000 0.213333 +vt 0.720000 0.160000 +vt 0.850000 0.893333 +vt 0.823333 0.866667 +vt 0.850000 0.866667 +vt 0.773333 0.133333 +vt 0.746667 0.146667 +vt 0.746667 0.120000 +vt 0.700000 0.106667 +vt 0.720000 0.106667 +vt 0.983333 0.680000 +vt 0.983333 0.653333 +vt 0.983333 0.813333 +vt 0.983333 0.786667 +vt 0.983333 0.893333 +vt 0.983333 0.866667 +vt 0.773333 0.080000 +vt 0.746667 0.093333 +vt 0.746667 0.066667 +vt 0.720000 0.053333 +vt 0.983333 0.973333 +vt 0.983333 0.946667 +vt 0.983333 0.840000 +vt 0.983333 0.760000 +vt 0.773333 0.026667 +vt 0.746667 0.040000 +vt 0.746667 0.013333 +vt 0.700000 0.000000 +vt 0.720000 0.000000 +vt 0.983333 0.920000 +vt 0.850000 0.733333 +vt 0.983333 0.733333 +vt 0.700000 0.640000 +vt 0.720000 0.586667 +vt 0.720000 0.640000 +vt 0.850000 0.706667 +vt 0.983333 0.706667 +vt 0.746667 0.600000 +vt 0.746667 0.626667 +vt 0.773333 0.613333 +vt 0.823333 0.700000 +vt 0.823333 0.680000 +vt 0.746667 0.546667 +vt 0.746667 0.573333 +vt 0.773333 0.560000 +vt 0.700000 0.533333 +vt 0.720000 0.533333 +vt 0.746667 0.520000 +vt 0.720000 0.480000 +vt 0.746667 0.493333 +vt 0.700000 0.053333 +vt 0.646667 0.000000 +vt 0.700000 0.480000 +vt 0.646667 0.426667 +vt 0.700000 0.426667 +vt 0.773333 0.506667 +vt 0.700000 0.586667 +vt 0.646667 0.533333 +vt 0.746667 0.440000 +vt 0.746667 0.466667 +vt 0.646667 0.213333 +vt 0.646667 0.373333 +vt 0.700000 0.373333 +vt 0.773333 0.453333 +vt 0.720000 0.426667 +vt 0.646667 0.320000 +vt 0.746667 0.413333 +vt 0.720000 0.373333 +vt 0.746667 0.386667 +vt 0.646667 0.266667 +vt 0.700000 0.160000 +vt 0.646667 0.106667 +vt 0.773333 0.400000 +vt 0.646667 0.586667 +vt 0.746667 0.360000 +vt 0.746667 0.333333 +vt 0.646667 0.480000 +vt 0.646667 0.053333 +vt 0.773333 0.346667 +vt 0.646667 0.160000 +vt 0.823333 0.706667 +vt 0.823333 0.733333 +vt 0.823333 0.913333 +vt 0.823333 0.893333 +vt 0.820000 0.373333 +vt 0.840000 0.413333 +vt 0.820000 0.413333 +vt 0.793333 0.106667 +vt 0.773333 0.373333 +vt 0.773333 0.106667 +vt 0.906667 0.373333 +vt 0.933333 0.106667 +vt 0.933333 0.373333 +vt 0.793333 0.373333 +vt 0.820000 0.106667 +vt 0.886667 0.373333 +vt 0.840000 0.373333 +vt 0.906667 0.413333 +vt 0.793333 0.413333 +vt 0.906667 0.106667 +vt 0.953333 0.373333 +vt 1.000000 0.106667 +vt 1.000000 0.373333 +vt 0.953333 0.413333 +vt 0.953333 0.106667 +vt 0.933333 0.413333 +vt 0.560000 0.760000 +vt 0.600000 0.766667 +vt 0.560000 0.766667 +vt 0.560000 0.720000 +vt 0.600000 0.726667 +vt 0.560000 0.726667 +vt 0.560000 0.733333 +vt 0.600000 0.740000 +vt 0.560000 0.740000 +vt 0.560000 0.746667 +vt 0.600000 0.753333 +vt 0.560000 0.753333 +vt 0.600000 0.773333 +vt 0.560000 0.773333 +vt 0.600000 0.733333 +vt 0.600000 0.746667 +vt 0.600000 0.760000 +vt 0.646667 0.746667 +vt 0.646667 0.753333 +vt 0.646667 0.766667 +vt 0.646667 0.773333 +vt 0.646667 0.733333 +vt 0.646667 0.760000 +vt 0.600000 0.720000 +vt 0.646667 0.726667 +vt 0.646667 0.740000 +vt 0.793333 0.766667 +vt 0.646667 0.720000 +vt 0.793333 0.726667 +vt 0.793333 0.740000 +vt 0.793333 0.753333 +vt 0.793333 0.773333 +vt 0.793333 0.733333 +vt 0.793333 0.746667 +vt 0.793333 0.760000 +vt 0.560000 0.760000 +vt 0.600000 0.766667 +vt 0.560000 0.766667 +vt 0.560000 0.720000 +vt 0.600000 0.726667 +vt 0.560000 0.726667 +vt 0.560000 0.733333 +vt 0.600000 0.740000 +vt 0.560000 0.740000 +vt 0.560000 0.746667 +vt 0.600000 0.753333 +vt 0.560000 0.753333 +vt 0.600000 0.773333 +vt 0.560000 0.773333 +vt 0.600000 0.733333 +vt 0.600000 0.746667 +vt 0.600000 0.760000 +vt 0.646667 0.746667 +vt 0.646667 0.753333 +vt 0.646667 0.766667 +vt 0.646667 0.773333 +vt 0.646667 0.733333 +vt 0.646667 0.760000 +vt 0.600000 0.720000 +vt 0.646667 0.726667 +vt 0.646667 0.740000 +vt 0.793333 0.766667 +vt 0.646667 0.720000 +vt 0.793333 0.726667 +vt 0.793333 0.740000 +vt 0.793333 0.753333 +vt 0.793333 0.773333 +vt 0.793333 0.733333 +vt 0.793333 0.746667 +vt 0.793333 0.760000 +vt 0.506667 0.820000 +vt 0.533333 0.826667 +vt 0.506667 0.826667 +vt 0.506667 0.813333 +vt 0.533333 0.820000 +vt 0.506667 0.806667 +vt 0.533333 0.813333 +vt 0.506667 0.800000 +vt 0.533333 0.806667 +vt 0.533333 0.793333 +vt 0.506667 0.793333 +vt 0.533333 0.786667 +vt 0.506667 0.786667 +vt 0.533333 0.780000 +vt 0.506667 0.780000 +vt 0.613333 0.826667 +vt 0.653333 0.820000 +vt 0.640000 0.813333 +vt 0.653333 0.813333 +vt 0.653333 0.780000 +vt 0.640000 0.773333 +vt 0.653333 0.773333 +vt 0.653333 0.806667 +vt 0.640000 0.800000 +vt 0.653333 0.800000 +vt 0.653333 0.793333 +vt 0.640000 0.786667 +vt 0.653333 0.786667 +vt 0.653333 0.826667 +vt 0.640000 0.820000 +vt 0.640000 0.780000 +vt 0.640000 0.793333 +vt 0.640000 0.806667 +vt 0.613333 0.820000 +vt 0.613333 0.813333 +vt 0.533333 0.800000 +vt 0.613333 0.806667 +vt 0.613333 0.800000 +vt 0.613333 0.793333 +vt 0.613333 0.786667 +vt 0.640000 0.780000 +vt 0.640000 0.786667 +vt 0.640000 0.793333 +vt 0.493333 0.806667 +vt 0.506667 0.813333 +vt 0.493333 0.813333 +vt 0.493333 0.793333 +vt 0.506667 0.800000 +vt 0.493333 0.800000 +vt 0.493333 0.820000 +vt 0.506667 0.826667 +vt 0.493333 0.826667 +vt 0.493333 0.780000 +vt 0.506667 0.786667 +vt 0.493333 0.786667 +vt 0.506667 0.806667 +vt 0.506667 0.793333 +vt 0.493333 0.773333 +vt 0.506667 0.780000 +vt 0.506667 0.820000 +vt 0.640000 0.800000 +vt 0.640000 0.806667 +vt 0.640000 0.813333 +vt 0.640000 0.820000 +vt 0.640000 0.826667 +vt 0.613333 0.773333 +vt 0.640000 0.773333 +vt 0.533333 0.773333 +vt 0.613333 0.780000 +vt 0.506667 0.773333 +vt 0.493333 0.813333 +vt 0.493333 0.820000 +vt 0.493333 0.773333 +vt 0.493333 0.780000 +vt 0.493333 0.786667 +vt 0.493333 0.793333 +vt 0.493333 0.800000 +vt 0.493333 0.806667 +vt 0.493333 0.826667 +vt 0.653333 0.813333 +vt 0.653333 0.806667 +vt 0.653333 0.800000 +vt 0.653333 0.793333 +vt 0.653333 0.786667 +vt 0.653333 0.780000 +vt 0.653333 0.826667 +vt 0.653333 0.820000 +vt 0.653333 0.773333 +vt 0.533333 0.773333 +vt 0.506667 0.773333 +vt 0.613333 0.780000 +vt 0.533333 0.780000 +vt 0.613333 0.773333 +vt 0.613333 0.826667 +vt 0.640000 0.826667 +vt 0.613333 0.820000 +vt 0.613333 0.806667 +vt 0.613333 0.793333 +vt 0.613333 0.786667 +vt 0.533333 0.786667 +vt 0.533333 0.793333 +vt 0.613333 0.800000 +vt 0.533333 0.800000 +vt 0.533333 0.806667 +vt 0.613333 0.813333 +vt 0.533333 0.813333 +vt 0.533333 0.820000 +vt 0.533333 0.826667 +vt 0.026667 0.853333 +vt 0.020000 0.933333 +vt 0.020000 0.853333 +vt 0.013333 0.853333 +vt 0.006667 0.933333 +vt 0.006667 0.853333 +vt 0.053333 0.853333 +vt 0.046667 0.933333 +vt 0.046667 0.853333 +vt 0.033333 0.853333 +vt 0.026667 0.933333 +vt 0.013333 0.933333 +vt 0.000000 0.933333 +vt 0.000000 0.853333 +vt 0.040000 0.933333 +vt 0.040000 0.853333 +vt 0.033333 0.933333 +vt 0.093333 0.853333 +vt 0.086667 0.933333 +vt 0.086667 0.853333 +vt 0.100000 0.853333 +vt 0.093333 0.933333 +vt 0.060000 0.853333 +vt 0.053333 0.933333 +vt 0.053333 0.853333 +vt 0.073333 0.853333 +vt 0.066667 0.933333 +vt 0.066667 0.853333 +vt 0.080000 0.933333 +vt 0.080000 0.853333 +vt 0.106667 0.853333 +vt 0.100000 0.933333 +vt 0.060000 0.933333 +vt 0.073333 0.933333 +vt 0.026667 0.853333 +vt 0.020000 0.933333 +vt 0.020000 0.853333 +vt 0.013333 0.853333 +vt 0.006667 0.933333 +vt 0.006667 0.853333 +vt 0.053333 0.853333 +vt 0.046667 0.933333 +vt 0.046667 0.853333 +vt 0.033333 0.853333 +vt 0.026667 0.933333 +vt 0.013333 0.933333 +vt 0.000000 0.933333 +vt 0.000000 0.853333 +vt 0.040000 0.933333 +vt 0.040000 0.853333 +vt 0.033333 0.933333 +vt 0.506667 0.733333 +vt 0.560000 0.746667 +vt 0.506667 0.746667 +vt 0.506667 0.653333 +vt 0.560000 0.666667 +vt 0.506667 0.666667 +vt 0.506667 0.680000 +vt 0.560000 0.693333 +vt 0.506667 0.693333 +vt 0.506667 0.706667 +vt 0.560000 0.720000 +vt 0.506667 0.720000 +vt 0.560000 0.733333 +vt 0.506667 0.640000 +vt 0.560000 0.653333 +vt 0.560000 0.680000 +vt 0.560000 0.706667 +vt 0.506667 0.693333 +vt 0.560000 0.706667 +vt 0.506667 0.706667 +vt 0.506667 0.666667 +vt 0.560000 0.680000 +vt 0.506667 0.680000 +vt 0.506667 0.640000 +vt 0.560000 0.653333 +vt 0.506667 0.653333 +vt 0.506667 0.720000 +vt 0.560000 0.733333 +vt 0.506667 0.733333 +vt 0.560000 0.720000 +vt 0.560000 0.693333 +vt 0.560000 0.666667 +vt 0.560000 0.746667 +vt 0.506667 0.746667 +vt 0.793333 0.700000 +vt 0.813333 0.720000 +vt 0.793333 0.720000 +vt 0.793333 0.600000 +vt 0.813333 0.620000 +vt 0.793333 0.620000 +vt 0.793333 0.640000 +vt 0.813333 0.660000 +vt 0.793333 0.660000 +vt 0.793333 0.540000 +vt 0.813333 0.560000 +vt 0.793333 0.560000 +vt 0.813333 0.740000 +vt 0.793333 0.740000 +vt 0.813333 0.640000 +vt 0.813333 0.680000 +vt 0.793333 0.680000 +vt 0.813333 0.580000 +vt 0.793333 0.580000 +vt 0.813333 0.760000 +vt 0.793333 0.760000 +vt 0.813333 0.700000 +vt 0.813333 0.600000 +vt 0.793333 0.520000 +vt 0.813333 0.540000 +vt 0.823333 0.673333 +vt 0.823333 0.573333 +vt 0.823333 0.753333 +vt 0.823333 0.680000 +vt 0.823333 0.693333 +vt 0.823333 0.580000 +vt 0.823333 0.593333 +vt 0.813333 0.520000 +vt 0.823333 0.533333 +vt 0.823333 0.700000 +vt 0.823333 0.713333 +vt 0.823333 0.613333 +vt 0.823333 0.640000 +vt 0.823333 0.653333 +vt 0.823333 0.553333 +vt 0.823333 0.720000 +vt 0.823333 0.733333 +vt 0.823333 0.633333 +vt 0.653333 0.813333 +vt 0.786667 0.806667 +vt 0.786667 0.813333 +vt 0.653333 0.806667 +vt 0.786667 0.800000 +vt 0.653333 0.800000 +vt 0.786667 0.793333 +vt 0.653333 0.793333 +vt 0.653333 0.786667 +vt 0.786667 0.780000 +vt 0.653333 0.780000 +vt 0.786667 0.773333 +vt 0.653333 0.826667 +vt 0.786667 0.820000 +vt 0.786667 0.826667 +vt 0.653333 0.820000 +vt 0.486667 0.320000 +vt 0.166667 0.273333 +vt 0.166667 0.260000 +vt 0.166667 0.060000 +vt 0.166667 0.433333 +vt 0.166667 0.540000 +vt 0.153333 0.173333 +vt 0.153333 0.493333 +vt 0.153333 0.013333 +vt 0.000000 0.353333 +vt 0.000000 0.086667 +vt 0.000000 0.566667 +vt 0.000000 0.300000 +vt 0.000000 0.406667 +vt 0.000000 0.140000 +vt 0.000000 0.620000 +vt 0.000000 0.460000 +vt 0.000000 0.193333 +vt 0.000000 0.033333 +vt 0.000000 0.513333 +vt 0.000000 0.246667 +vt 0.486667 0.320000 +vt 0.823333 0.966667 +vt 0.823333 0.940000 +vt 0.823333 0.673333 +vt 0.823333 0.886667 +vt 0.646667 0.640000 +vt 0.823333 0.726667 +vt 0.823333 0.753333 +vt 0.886667 0.413333 +vt 1.000000 0.413333 +vt 0.773333 0.413333 +vt 0.793333 0.720000 +vt 0.793333 0.720000 +vt 0.053333 0.933333 +vt 0.106667 0.933333 +vt 0.053333 0.933333 +vt 0.560000 0.640000 +vt 0.560000 0.640000 +vt 0.823333 0.660000 +vt 0.823333 0.560000 +vt 0.823333 0.740000 +vt 0.823333 0.520000 +vt 0.823333 0.600000 +vt 0.823333 0.540000 +vt 0.823333 0.620000 +vt 0.653333 0.773333 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.8944 -0.4472 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.2747 0.9615 +vn 0.4472 -0.8944 0.0000 +vn 0.4472 0.0000 -0.8944 +vn 0.4472 0.8944 0.0000 +vn 0.4472 0.0000 0.8944 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3162 0.0000 -0.9487 +vn -0.3162 0.0000 0.9487 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 0.9918 0.1278 +vn 0.5000 0.8660 0.0000 +vn 0.4959 0.8589 0.1278 +vn 0.8660 0.5000 0.0000 +vn 0.8589 0.4959 0.1278 +vn 0.9918 -0.0000 0.1278 +vn 0.8660 -0.5000 0.0000 +vn 0.8589 -0.4959 0.1278 +vn 0.5000 -0.8660 -0.0000 +vn 0.4959 -0.8589 0.1278 +vn 0.0000 -0.9918 0.1278 +vn -0.5000 -0.8660 0.0000 +vn -0.4959 -0.8589 0.1278 +vn -0.8660 -0.5000 0.0000 +vn -0.8589 -0.4959 0.1278 +vn -0.9918 -0.0000 0.1278 +vn -0.8660 0.5000 0.0000 +vn -0.8589 0.4959 0.1278 +vn -0.5000 0.8660 0.0000 +vn -0.4959 0.8589 0.1278 +vn 0.0000 0.5309 0.8474 +vn 0.4380 0.7586 0.4823 +vn -0.0000 0.8760 0.4823 +vn 0.4598 0.2654 0.8474 +vn 0.7586 0.4380 0.4823 +vn 0.5309 0.0000 0.8474 +vn 0.8760 0.0000 0.4823 +vn 0.4598 -0.2655 0.8474 +vn 0.7586 -0.4380 0.4823 +vn 0.4380 -0.7586 0.4823 +vn -0.4380 0.7586 0.4823 +vn -0.7586 0.4380 0.4823 +vn -0.2654 0.4598 0.8474 +vn -0.5309 0.0000 0.8474 +vn -0.8760 -0.0000 0.4823 +vn -0.4598 -0.2654 0.8474 +vn -0.2654 -0.4598 0.8474 +vn -0.7586 -0.4380 0.4823 +vn -0.4380 -0.7586 0.4823 +vn 0.0000 -0.8760 0.4823 +vn -0.0000 -0.5309 0.8474 +vn 0.2241 0.1294 0.9659 +vn 0.1294 0.2241 0.9659 +vn -0.0000 0.2588 0.9659 +vn -0.1294 0.2241 0.9659 +vn -0.4598 0.2654 0.8474 +vn -0.2241 0.1294 0.9659 +vn -0.2588 0.0000 0.9659 +vn -0.2241 -0.1294 0.9659 +vn -0.1294 -0.2241 0.9659 +vn 0.0000 -0.2588 0.9659 +vn 0.1294 -0.2241 0.9659 +vn 0.2655 -0.4598 0.8474 +vn 0.2241 -0.1294 0.9659 +vn 0.2588 0.0000 0.9659 +vn 0.0000 0.4383 -0.8988 +vn 0.4103 0.7106 -0.5716 +vn 0.2191 0.3796 -0.8988 +vn 0.0000 -0.9701 0.2425 +vn -0.4851 -0.8402 0.2425 +vn -0.8402 -0.4851 0.2425 +vn 0.0000 0.9861 -0.1662 +vn 0.0000 0.8205 -0.5716 +vn 0.8402 0.4851 0.2425 +vn 0.4851 0.8402 0.2425 +vn -0.4851 0.8402 0.2425 +vn -0.8402 0.4851 0.2425 +vn 0.4851 -0.8402 0.2425 +vn 0.3796 0.2191 -0.8988 +vn 0.4930 0.8540 -0.1662 +vn 0.7106 0.4103 -0.5716 +vn -0.0000 0.9701 0.2425 +vn 0.4383 0.0000 -0.8988 +vn 0.8540 0.4930 -0.1662 +vn 0.8205 0.0000 -0.5716 +vn -0.9701 -0.0000 0.2425 +vn 0.3796 -0.2191 -0.8988 +vn 0.8540 -0.4930 -0.1662 +vn 0.7106 -0.4103 -0.5716 +vn 0.2191 -0.3796 -0.8988 +vn 0.4103 -0.7106 -0.5716 +vn -0.0000 -0.4383 -0.8988 +vn 0.0000 -0.9861 -0.1662 +vn 0.0000 -0.8205 -0.5716 +vn -0.4103 -0.7106 -0.5716 +vn -0.2191 -0.3796 -0.8988 +vn 0.8402 -0.4851 0.2425 +vn -0.3796 -0.2191 -0.8988 +vn -0.8540 -0.4930 -0.1662 +vn -0.7106 -0.4103 -0.5716 +vn -0.8205 0.0000 -0.5716 +vn -0.4383 0.0000 -0.8988 +vn 0.4930 -0.8540 -0.1662 +vn -0.9861 0.0000 -0.1662 +vn -0.8540 0.4930 -0.1662 +vn -0.4930 -0.8540 -0.1662 +vn -0.3796 0.2191 -0.8988 +vn -0.4930 0.8540 -0.1662 +vn -0.7106 0.4103 -0.5716 +vn -0.4103 0.7106 -0.5716 +vn -0.2191 0.3796 -0.8988 +vn 0.9861 0.0000 -0.1662 +vn 0.9701 -0.0000 0.2425 +vn 0.3735 -0.0899 0.9233 +vn 0.9239 0.0000 0.3827 +vn 0.3827 0.0000 0.9239 +vn -0.3941 -0.1802 0.9012 +vn -0.9147 -0.0417 0.4019 +vn -0.9382 -0.0679 0.3394 +vn 0.3902 0.0926 -0.9161 +vn -0.3606 0.1829 -0.9146 +vn -0.3902 0.0926 -0.9161 +vn -0.3735 -0.0899 0.9233 +vn 0.3941 -0.1802 0.9012 +vn 0.9319 0.0343 -0.3612 +vn 0.9147 -0.0417 0.4019 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn 0.9382 -0.0679 0.3394 +vn 0.9033 0.0841 -0.4207 +vn 0.3606 0.1829 -0.9146 +vn -0.9319 0.0343 -0.3612 +vn -0.9239 0.0000 -0.3827 +vn -0.9033 0.0841 -0.4207 +vn -0.3827 0.0000 -0.9239 +vn 0.6724 0.7267 -0.1405 +vn 0.6724 -0.7267 -0.1405 +vn -0.7193 -0.6784 0.1495 +vn -0.7193 0.6784 0.1495 +vn 0.9774 0.0000 -0.2114 +vn -0.0487 -0.9986 0.0209 +vn -0.9814 -0.0000 0.1920 +vn -0.0487 0.9986 0.0209 +vn -0.9774 0.0000 0.2114 +vn -0.6724 0.7267 0.1405 +vn 0.7193 0.6784 -0.1495 +vn 0.9814 -0.0000 -0.1920 +vn 0.0487 -0.9986 -0.0209 +vn 0.0487 0.9986 -0.0209 +vn 0.7193 -0.6784 -0.1495 +vn -0.6724 -0.7267 0.1405 +vn 0.6233 -0.2820 -0.7294 +vn 0.4202 -0.9074 -0.0000 +vn 0.9074 -0.4202 0.0000 +vn -0.0899 0.0899 -0.9919 +vn 0.2820 -0.6233 -0.7294 +vn -0.7023 0.3032 -0.6441 +vn -0.9356 0.3532 0.0000 +vn -0.3032 0.7023 -0.6441 +vn -0.3032 0.7023 0.6441 +vn -0.7023 0.3032 0.6441 +vn -0.0899 0.0899 0.9919 +vn 0.2820 -0.6233 0.7294 +vn 0.6233 -0.2820 0.7294 +vn -0.4202 -0.9074 0.0000 +vn 0.0899 0.0899 -0.9919 +vn -0.7071 0.0000 0.7071 +vn -0.9074 -0.4202 -0.0000 +vn 0.9356 0.3532 -0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0899 0.0899 0.9919 +vn -0.6233 -0.2820 -0.7294 +vn -0.6233 -0.2820 0.7294 +vn 0.7023 0.3032 0.6441 +vn 0.7023 0.3032 -0.6441 +vn -0.2820 -0.6233 -0.7294 +vn -0.3532 0.9356 -0.0000 +vn 0.3032 0.7023 -0.6441 +vn 0.3532 0.9356 0.0000 +vn 0.3032 0.7023 0.6441 +vn -0.2820 -0.6233 0.7294 +vn 0.2774 -0.4804 -0.8321 +vn 0.4804 -0.2774 -0.8321 +vn -0.4804 0.2774 -0.8321 +vn -0.5547 0.0000 -0.8321 +vn 0.2774 0.4804 -0.8321 +vn -0.0000 0.5547 -0.8321 +vn 0.5547 0.0000 -0.8321 +vn 0.5547 -0.0000 -0.8320 +vn -0.4804 -0.2774 -0.8321 +vn -0.4804 -0.2773 -0.8321 +vn -0.2774 0.4804 -0.8321 +vn -0.2773 0.4804 -0.8321 +vn 0.4804 0.2774 -0.8321 +vn -0.2774 -0.4804 -0.8321 +vn -0.2774 -0.4804 -0.8320 +vn -0.0000 -0.5547 -0.8321 +vn 0.0000 0.7071 -0.7071 +vn 0.2655 0.4598 0.8474 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +s off +f 3/1/1 171/2/1 170/3/1 +f 42/4/1 78/5/1 77/6/1 +f 44/7/1 77/8/1 76/9/1 +f 46/10/1 76/11/1 75/12/1 +f 48/13/1 75/14/1 74/15/1 +f 26/16/1 74/17/1 73/18/1 +f 28/19/1 73/20/1 84/21/1 +f 30/22/1 84/23/1 83/24/1 +f 32/25/1 83/26/1 82/27/1 +f 34/28/1 82/29/1 81/30/1 +f 36/31/1 81/32/1 80/33/1 +f 36/34/1 79/35/1 38/36/1 +f 40/37/1 79/38/1 78/39/1 +f 96/40/1 121/41/1 132/42/1 +f 95/43/1 132/42/1 131/44/1 +f 95/45/1 130/46/1 94/47/1 +f 93/48/1 130/46/1 129/49/1 +f 92/50/1 129/49/1 128/51/1 +f 91/52/1 128/51/1 127/53/1 +f 91/54/1 126/55/1 90/56/1 +f 90/57/1 125/58/1 89/59/1 +f 89/60/1 124/61/1 88/62/1 +f 88/63/1 123/64/1 87/65/1 +f 87/66/1 122/67/1 86/68/1 +f 86/69/1 121/41/1 85/70/1 +f 142/71/2 107/72/2 106/73/2 +f 143/74/2 108/75/2 107/76/2 +f 108/77/2 133/78/2 97/79/2 +f 133/78/2 98/80/2 97/81/2 +f 134/82/2 99/83/2 98/84/2 +f 135/85/2 100/86/2 99/87/2 +f 136/88/2 101/89/2 100/90/2 +f 137/91/2 102/92/2 101/93/2 +f 138/94/2 103/95/2 102/96/2 +f 103/97/2 140/98/2 104/99/2 +f 104/100/2 141/101/2 105/102/2 +f 105/103/2 142/71/2 106/104/2 +f 116/105/2 151/106/2 115/107/2 +f 113/108/2 148/109/2 112/110/2 +f 119/111/2 156/112/2 155/113/2 +f 110/114/2 145/115/2 109/116/2 +f 117/117/2 152/118/2 116/119/2 +f 114/120/2 149/121/2 113/122/2 +f 109/123/2 156/124/2 120/125/2 +f 111/126/2 146/127/2 110/128/2 +f 117/129/2 154/130/2 153/131/2 +f 115/132/2 150/133/2 114/134/2 +f 112/135/2 147/136/2 111/137/2 +f 119/138/2 154/139/2 118/140/2 +f 167/141/2 157/142/2 161/143/2 +f 19/144/1 179/145/1 178/146/1 +f 19/144/1 177/147/1 17/148/1 +f 17/148/1 176/149/1 15/150/1 +f 13/151/1 176/152/1 175/153/1 +f 11/154/1 175/155/1 174/156/1 +f 11/154/1 173/157/1 9/158/1 +f 7/159/1 173/160/1 172/161/1 +f 23/162/1 169/163/1 180/164/1 +f 1/165/1 170/166/1 169/167/1 +f 7/159/1 171/168/1 5/169/1 +f 23/162/1 179/170/1 21/171/1 +f 190/172/1 192/173/1 184/174/1 +f 214/175/2 228/176/2 243/177/2 +f 224/178/1 210/179/1 201/180/1 +f 259/181/2 266/182/2 273/183/2 +f 292/184/3 284/185/3 299/186/3 +f 313/187/3 310/188/3 311/189/3 +f 307/190/4 308/191/4 306/192/4 +f 304/193/5 309/194/5 305/195/5 +f 303/196/2 306/192/2 302/197/2 +f 305/198/6 307/190/6 303/199/6 +f 304/200/7 306/192/7 308/191/7 +f 315/201/8 312/202/8 313/187/8 +f 312/202/7 314/203/7 310/188/7 +f 313/187/6 311/189/6 315/204/6 +f 320/205/7 322/206/7 321/207/7 +f 317/208/3 323/209/3 319/210/3 +f 318/211/4 321/207/4 316/212/4 +f 319/213/1 320/205/1 318/214/1 +f 316/215/2 322/206/2 317/216/2 +f 388/217/2 391/218/2 389/219/2 +f 395/220/1 392/221/1 393/222/1 +f 388/223/4 394/224/4 390/225/4 +f 401/226/9 399/227/9 403/228/9 +f 391/229/3 393/230/3 389/231/3 +f 388/223/6 398/232/6 392/233/6 +f 392/221/6 399/234/6 393/222/6 +f 389/219/6 396/235/6 388/217/6 +f 393/230/6 397/236/6 389/231/6 +f 401/226/6 402/237/6 400/238/6 +f 403/228/10 398/239/10 402/237/10 +f 402/237/11 396/240/11 400/238/11 +f 400/238/12 397/241/12 401/226/12 +f 506/242/13 500/243/13 507/244/13 +f 510/245/14 514/246/14 512/247/14 +f 505/248/14 500/243/14 503/249/14 +f 502/250/15 506/242/15 504/251/15 +f 513/252/15 508/253/15 511/254/15 +f 514/246/16 508/253/16 515/255/16 +f 522/256/15 516/257/15 523/258/15 +f 526/259/13 530/260/13 528/261/13 +f 521/262/13 516/257/13 519/263/13 +f 518/264/16 522/256/16 520/265/16 +f 529/266/16 524/267/16 527/268/16 +f 530/260/14 524/267/14 531/269/14 +f 540/270/4 542/271/4 544/272/4 +f 555/273/4 553/274/4 551/275/4 +f 572/276/4 574/277/4 576/278/4 +f 624/279/7 626/280/7 625/281/7 +f 616/282/7 618/283/7 617/284/7 +f 612/285/4 616/282/4 617/284/4 +f 615/286/17 616/282/17 614/287/17 +f 612/288/2 618/283/2 613/289/2 +f 613/290/3 619/291/3 615/292/3 +f 622/293/4 625/281/4 620/294/4 +f 623/295/1 624/279/1 622/296/1 +f 620/297/18 626/280/18 621/298/18 +f 623/299/3 626/280/3 627/300/3 +f 656/301/7 658/302/7 657/303/7 +f 653/304/3 659/305/3 655/306/3 +f 654/307/4 657/303/4 652/308/4 +f 664/309/1 662/310/1 670/311/1 +f 652/312/2 658/302/2 653/313/2 +f 685/314/7 681/315/7 677/316/7 +f 682/317/6 684/318/6 686/319/6 +f 688/320/3 692/321/3 696/322/3 +f 697/323/19 692/324/19 694/325/19 +f 690/326/4 693/327/4 697/323/4 +f 694/325/1 688/328/1 689/329/1 +f 691/330/2 693/331/2 690/332/2 +f 707/333/2 709/334/2 704/335/2 +f 699/336/3 695/337/3 696/322/3 +f 699/338/6 697/323/6 711/339/6 +f 693/340/7 698/341/7 708/342/7 +f 702/343/6 699/338/6 707/333/6 +f 693/327/4 711/339/4 697/323/4 +f 705/344/7 704/345/7 701/346/7 +f 706/347/3 700/348/3 703/349/3 +f 701/350/20 703/349/20 700/348/20 +f 705/351/21 707/352/21 704/353/21 +f 702/343/1 698/354/1 699/338/1 +f 711/355/22 709/334/22 710/356/22 +f 711/339/6 710/356/6 699/338/6 +f 709/357/7 708/342/7 698/341/7 +f 712/358/3 719/359/3 715/360/3 +f 715/360/21 718/361/21 714/362/21 +f 713/363/20 716/364/20 712/358/20 +f 713/363/1 722/365/1 717/366/1 +f 718/361/2 721/367/2 714/362/2 +f 721/368/7 720/369/7 713/370/7 +f 718/371/6 719/359/6 716/364/6 +f 732/372/3 724/373/3 727/374/3 +f 728/375/23 733/376/23 730/377/23 +f 733/376/4 726/378/4 725/379/4 +f 724/380/1 730/377/1 725/381/1 +f 729/382/2 727/383/2 726/384/2 +f 745/385/2 743/386/2 740/387/2 +f 731/388/3 735/389/3 732/372/3 +f 735/390/7 733/376/7 732/391/7 +f 734/392/6 729/393/6 744/394/6 +f 739/395/7 742/396/7 743/386/7 +f 729/397/4 747/398/4 744/399/4 +f 741/400/6 736/401/6 737/402/6 +f 736/403/3 742/396/3 739/395/3 +f 739/395/20 737/404/20 736/403/20 +f 743/405/21 741/406/21 740/407/21 +f 734/408/1 738/409/1 735/390/1 +f 745/385/22 747/410/22 746/411/22 +f 747/398/7 735/390/7 746/411/7 +f 745/412/6 734/392/6 744/394/6 +f 3/1/1 5/169/1 171/2/1 +f 42/4/1 40/413/1 78/5/1 +f 44/7/1 42/414/1 77/8/1 +f 46/10/1 44/415/1 76/11/1 +f 48/13/1 46/416/1 75/14/1 +f 26/16/1 48/417/1 74/17/1 +f 28/19/1 26/418/1 73/20/1 +f 30/22/1 28/419/1 84/23/1 +f 32/25/1 30/420/1 83/26/1 +f 34/28/1 32/421/1 82/29/1 +f 36/31/1 34/422/1 81/32/1 +f 36/34/1 80/423/1 79/35/1 +f 40/37/1 38/424/1 79/38/1 +f 96/40/1 85/425/1 121/41/1 +f 95/43/1 96/426/1 132/42/1 +f 95/45/1 131/44/1 130/46/1 +f 93/48/1 94/427/1 130/46/1 +f 92/50/1 93/428/1 129/49/1 +f 91/52/1 92/429/1 128/51/1 +f 91/54/1 127/430/1 126/55/1 +f 90/57/1 126/55/1 125/58/1 +f 89/60/1 125/58/1 124/61/1 +f 88/63/1 124/61/1 123/64/1 +f 87/66/1 123/64/1 122/67/1 +f 86/69/1 122/67/1 121/41/1 +f 142/71/2 143/74/2 107/72/2 +f 143/74/2 144/431/2 108/75/2 +f 108/77/2 144/431/2 133/78/2 +f 133/78/2 134/82/2 98/80/2 +f 134/82/2 135/85/2 99/83/2 +f 135/85/2 136/88/2 100/86/2 +f 136/88/2 137/91/2 101/89/2 +f 137/91/2 138/94/2 102/92/2 +f 138/94/2 139/432/2 103/95/2 +f 103/97/2 139/433/2 140/98/2 +f 104/100/2 140/98/2 141/101/2 +f 105/103/2 141/101/2 142/71/2 +f 116/105/2 152/434/2 151/106/2 +f 113/108/2 149/435/2 148/109/2 +f 119/111/2 120/436/2 156/112/2 +f 110/114/2 146/437/2 145/115/2 +f 117/117/2 153/438/2 152/118/2 +f 114/120/2 150/439/2 149/121/2 +f 109/123/2 145/440/2 156/124/2 +f 111/126/2 147/441/2 146/127/2 +f 117/129/2 118/442/2 154/130/2 +f 115/132/2 151/443/2 150/133/2 +f 112/135/2 148/444/2 147/136/2 +f 119/138/2 155/445/2 154/139/2 +f 157/142/2 158/446/2 161/143/2 +f 158/446/2 159/447/2 161/143/2 +f 159/447/2 160/448/2 161/143/2 +f 161/143/2 162/449/2 163/450/2 +f 163/450/2 164/451/2 161/143/2 +f 164/451/2 165/452/2 161/143/2 +f 165/452/2 166/453/2 167/141/2 +f 167/141/2 168/454/2 157/142/2 +f 165/452/2 167/141/2 161/143/2 +f 19/144/1 21/171/1 179/145/1 +f 19/144/1 178/455/1 177/147/1 +f 17/148/1 177/456/1 176/149/1 +f 13/151/1 15/150/1 176/152/1 +f 11/154/1 13/457/1 175/155/1 +f 11/154/1 174/458/1 173/157/1 +f 7/159/1 9/158/1 173/160/1 +f 23/162/1 1/165/1 169/163/1 +f 1/165/1 3/1/1 170/166/1 +f 7/159/1 172/459/1 171/168/1 +f 23/162/1 180/460/1 179/170/1 +f 192/173/1 181/461/1 184/174/1 +f 181/461/1 182/462/1 184/174/1 +f 182/462/1 183/463/1 184/174/1 +f 184/174/1 185/464/1 188/465/1 +f 185/464/1 186/466/1 188/465/1 +f 186/466/1 187/467/1 188/465/1 +f 188/465/1 189/468/1 190/172/1 +f 190/172/1 191/469/1 192/173/1 +f 188/465/1 190/172/1 184/174/1 +f 243/177/2 200/470/2 207/471/2 +f 207/471/2 208/472/2 214/175/2 +f 214/175/2 215/473/2 221/474/2 +f 221/474/2 222/475/2 214/175/2 +f 222/475/2 228/176/2 214/175/2 +f 228/176/2 229/476/2 236/477/2 +f 236/477/2 242/478/2 243/177/2 +f 243/177/2 207/471/2 214/175/2 +f 228/176/2 236/477/2 243/177/2 +f 201/180/1 196/479/1 224/178/1 +f 196/479/1 231/480/1 224/178/1 +f 231/480/1 230/481/1 224/178/1 +f 224/178/1 223/482/1 217/483/1 +f 217/483/1 216/484/1 224/178/1 +f 216/484/1 210/179/1 224/178/1 +f 210/179/1 209/485/1 203/486/1 +f 203/486/1 202/487/1 210/179/1 +f 202/487/1 201/180/1 210/179/1 +f 273/183/2 237/488/2 238/489/2 +f 238/489/2 244/490/2 245/491/2 +f 245/491/2 251/492/2 259/181/2 +f 251/492/2 252/493/2 259/181/2 +f 252/493/2 258/494/2 259/181/2 +f 259/181/2 265/495/2 266/182/2 +f 266/182/2 272/496/2 273/183/2 +f 273/183/2 238/489/2 259/181/2 +f 238/489/2 245/491/2 259/181/2 +f 284/185/3 283/497/3 299/186/3 +f 299/186/3 298/498/3 293/499/3 +f 298/498/3 282/500/3 293/499/3 +f 282/500/3 285/501/3 293/499/3 +f 293/499/3 292/184/3 299/186/3 +f 313/187/3 312/202/3 310/188/3 +f 307/190/4 309/194/4 308/191/4 +f 304/193/5 308/191/5 309/194/5 +f 303/196/2 307/190/2 306/192/2 +f 305/198/6 309/194/6 307/190/6 +f 304/200/7 302/502/7 306/192/7 +f 315/201/8 314/503/8 312/202/8 +f 320/205/7 323/209/7 322/206/7 +f 317/208/3 322/206/3 323/209/3 +f 318/211/4 320/205/4 321/207/4 +f 319/213/1 323/209/1 320/205/1 +f 316/215/2 321/207/2 322/206/2 +f 388/217/2 390/504/2 391/218/2 +f 395/220/1 394/505/1 392/221/1 +f 388/223/4 392/233/4 394/224/4 +f 401/226/9 397/236/9 399/227/9 +f 391/229/3 395/506/3 393/230/3 +f 388/223/6 396/240/6 398/232/6 +f 392/221/6 398/239/6 399/234/6 +f 389/219/6 397/241/6 396/235/6 +f 393/230/6 399/227/6 397/236/6 +f 401/226/6 403/228/6 402/237/6 +f 403/228/10 399/234/10 398/239/10 +f 402/237/11 398/232/11 396/240/11 +f 400/238/12 396/235/12 397/241/12 +f 506/242/13 501/507/13 500/243/13 +f 510/245/14 509/508/14 514/246/14 +f 505/248/14 507/244/14 500/243/14 +f 502/250/15 501/507/15 506/242/15 +f 513/252/15 515/255/15 508/253/15 +f 514/246/16 509/508/16 508/253/16 +f 522/256/15 517/509/15 516/257/15 +f 526/259/13 525/510/13 530/260/13 +f 521/262/13 523/258/13 516/257/13 +f 518/264/16 517/509/16 522/256/16 +f 529/266/16 531/269/16 524/267/16 +f 530/260/14 525/510/14 524/267/14 +f 540/270/4 541/511/4 542/271/4 +f 542/271/4 543/512/4 544/272/4 +f 544/272/4 545/513/4 546/514/4 +f 546/514/4 547/515/4 544/272/4 +f 547/515/4 540/270/4 544/272/4 +f 555/273/4 554/516/4 553/274/4 +f 553/274/4 552/517/4 551/275/4 +f 551/275/4 550/518/4 549/519/4 +f 549/519/4 548/520/4 551/275/4 +f 548/520/4 555/273/4 551/275/4 +f 572/276/4 573/521/4 574/277/4 +f 574/277/4 575/522/4 576/278/4 +f 576/278/4 577/523/4 578/524/4 +f 578/524/4 579/525/4 576/278/4 +f 579/525/4 572/276/4 576/278/4 +f 624/279/7 627/300/7 626/280/7 +f 616/282/7 619/291/7 618/283/7 +f 612/285/4 614/526/4 616/282/4 +f 615/286/17 619/291/17 616/282/17 +f 612/288/2 617/284/2 618/283/2 +f 613/290/3 618/283/3 619/291/3 +f 622/293/4 624/279/4 625/281/4 +f 623/295/1 627/300/1 624/279/1 +f 620/297/18 625/281/18 626/280/18 +f 623/299/3 621/527/3 626/280/3 +f 656/301/7 659/305/7 658/302/7 +f 653/304/3 658/302/3 659/305/3 +f 654/307/4 656/301/4 657/303/4 +f 662/310/1 660/528/1 670/311/1 +f 660/528/1 661/529/1 670/311/1 +f 661/529/1 671/530/1 670/311/1 +f 670/311/1 669/531/1 668/532/1 +f 668/532/1 667/533/1 670/311/1 +f 667/533/1 666/534/1 670/311/1 +f 666/534/1 665/535/1 664/309/1 +f 664/309/1 663/536/1 662/310/1 +f 666/534/1 664/309/1 670/311/1 +f 652/312/2 657/303/2 658/302/2 +f 677/316/7 675/537/7 673/538/7 +f 673/538/7 687/539/7 685/314/7 +f 685/314/7 683/540/7 681/315/7 +f 681/315/7 679/541/7 677/316/7 +f 677/316/7 673/538/7 685/314/7 +f 686/319/6 672/542/6 674/543/6 +f 674/543/6 676/544/6 686/319/6 +f 676/544/6 678/545/6 686/319/6 +f 678/545/6 680/546/6 686/319/6 +f 680/546/6 682/317/6 686/319/6 +f 696/322/3 695/337/3 691/547/3 +f 691/547/3 688/320/3 696/322/3 +f 697/323/19 696/548/19 692/324/19 +f 697/323/4 694/549/4 689/550/4 +f 689/550/4 690/326/4 697/323/4 +f 694/325/1 692/324/1 688/328/1 +f 691/330/2 695/551/2 693/331/2 +f 707/333/2 710/356/2 709/334/2 +f 699/336/3 698/552/3 695/337/3 +f 699/338/6 696/548/6 697/323/6 +f 693/340/7 695/553/7 698/341/7 +f 699/338/6 710/356/6 707/333/6 +f 707/333/6 706/347/6 703/349/6 +f 703/349/6 702/343/6 707/333/6 +f 693/327/4 708/554/4 711/339/4 +f 709/357/7 698/341/7 704/345/7 +f 698/341/7 701/346/7 704/345/7 +f 701/346/7 700/555/7 705/344/7 +f 706/347/3 705/351/3 700/348/3 +f 701/350/20 702/556/20 703/349/20 +f 705/351/21 706/347/21 707/352/21 +f 702/343/1 701/557/1 698/354/1 +f 711/355/22 708/558/22 709/334/22 +f 712/358/3 716/364/3 719/359/3 +f 715/360/21 719/359/21 718/361/21 +f 713/363/20 717/366/20 716/364/20 +f 713/363/1 720/559/1 722/365/1 +f 718/361/2 723/560/2 721/367/2 +f 713/370/7 712/358/7 715/360/7 +f 715/360/7 714/561/7 713/370/7 +f 714/561/7 721/368/7 713/370/7 +f 716/364/6 717/562/6 718/371/6 +f 717/562/6 722/563/6 718/371/6 +f 722/563/6 723/564/6 718/371/6 +f 727/374/3 731/388/3 732/372/3 +f 732/372/3 728/565/3 724/373/3 +f 728/375/23 732/391/23 733/376/23 +f 725/379/4 730/566/4 733/376/4 +f 733/376/4 729/397/4 726/378/4 +f 724/380/1 728/375/1 730/377/1 +f 729/382/2 731/567/2 727/383/2 +f 745/385/2 746/411/2 743/386/2 +f 731/388/3 734/568/3 735/389/3 +f 735/390/7 747/398/7 733/376/7 +f 734/392/6 731/569/6 729/393/6 +f 743/386/7 746/411/7 735/390/7 +f 735/390/7 738/409/7 743/386/7 +f 738/409/7 739/395/7 743/386/7 +f 729/397/4 733/376/4 747/398/4 +f 737/402/6 734/392/6 740/570/6 +f 734/392/6 745/412/6 740/570/6 +f 740/570/6 741/400/6 737/402/6 +f 736/403/3 741/406/3 742/396/3 +f 739/395/20 738/571/20 737/404/20 +f 743/405/21 742/396/21 741/406/21 +f 734/408/1 737/572/1 738/409/1 +f 745/385/22 744/573/22 747/410/22 +s 1 +f 2/574/24 3/1/25 1/165/4 +f 4/575/26 5/169/27 3/1/25 +f 6/576/28 7/159/6 5/169/27 +f 8/577/29 9/158/30 7/159/6 +f 10/578/31 11/154/32 9/158/30 +f 12/579/33 13/457/3 11/154/32 +f 14/580/34 15/150/35 13/151/3 +f 16/581/36 17/148/37 15/150/35 +f 18/582/38 19/144/7 17/148/37 +f 20/583/39 21/171/40 19/144/7 +f 22/584/41 23/162/42 21/171/40 +f 24/585/43 1/165/4 23/162/42 +f 26/586/4 27/587/25 25/588/4 +f 28/589/25 29/590/27 27/587/25 +f 30/591/27 31/592/6 29/590/27 +f 32/593/6 33/594/30 31/592/6 +f 34/595/30 35/596/32 33/594/30 +f 36/597/32 37/598/3 35/596/32 +f 38/599/3 39/600/35 37/601/3 +f 40/602/35 41/603/37 39/600/35 +f 42/604/37 43/605/7 41/603/37 +f 44/606/7 45/607/40 43/605/7 +f 46/608/40 47/609/42 45/607/40 +f 48/610/42 25/588/4 47/609/42 +f 50/611/44 57/612/45 49/613/46 +f 57/612/45 66/614/47 65/615/48 +f 65/615/48 54/616/49 53/617/50 +f 53/617/50 62/618/51 61/619/52 +f 62/620/51 69/621/53 61/619/52 +f 71/622/54 50/623/44 49/613/46 +f 63/624/55 72/625/56 71/622/54 +f 56/626/57 63/624/55 55/627/58 +f 55/627/58 68/628/59 56/629/57 +f 60/630/60 67/631/61 59/632/62 +f 51/633/63 60/634/60 59/632/62 +f 69/621/53 52/635/64 51/636/63 +f 29/637/65 54/616/49 66/638/47 +f 66/614/47 27/639/66 29/640/65 +f 27/641/66 50/611/44 25/642/67 +f 25/643/67 72/644/56 47/645/68 +f 47/646/68 64/647/69 45/648/70 +f 45/649/70 56/626/57 43/650/71 +f 41/651/72 56/629/57 68/628/59 +f 41/652/72 60/630/60 39/653/73 +f 39/654/73 52/655/64 37/656/74 +f 35/657/75 52/635/64 70/658/76 +f 35/659/75 62/620/51 33/660/77 +f 33/661/77 54/662/49 31/663/78 +f 65/615/48 8/577/29 6/576/28 +f 6/576/28 57/612/45 65/615/48 +f 2/574/24 57/612/45 4/575/26 +f 71/622/54 2/574/24 24/585/43 +f 24/585/43 63/624/55 71/622/54 +f 22/584/41 55/627/58 63/624/55 +f 67/631/61 20/583/39 18/582/38 +f 18/582/38 59/632/62 67/631/61 +f 14/580/34 59/632/62 16/581/36 +f 69/621/53 14/664/34 12/579/33 +f 12/579/33 61/619/52 69/621/53 +f 8/577/29 61/619/52 10/578/31 +f 82/29/6 93/48/30 81/30/30 +f 79/38/3 90/56/35 78/39/35 +f 76/11/7 87/65/40 75/12/40 +f 83/26/27 94/47/6 82/27/6 +f 80/423/32 91/52/3 79/35/3 +f 77/8/37 88/62/7 76/9/7 +f 84/23/25 95/43/27 83/24/27 +f 74/17/42 85/70/4 73/18/4 +f 81/32/30 92/50/32 80/33/32 +f 78/5/35 89/59/37 77/6/37 +f 73/20/4 96/40/25 84/21/25 +f 75/14/40 86/68/42 74/15/42 +f 97/79/4 120/125/25 108/77/25 +f 99/83/40 110/128/42 98/84/42 +f 106/104/6 117/129/30 105/103/30 +f 103/95/3 114/134/35 102/96/35 +f 100/86/7 111/137/40 99/87/40 +f 107/72/27 118/140/6 106/73/6 +f 104/99/32 115/107/3 103/97/3 +f 101/89/37 112/110/7 100/90/7 +f 108/75/25 119/111/27 107/76/27 +f 98/80/42 109/116/4 97/81/4 +f 105/102/30 116/119/32 104/100/32 +f 102/92/35 113/122/37 101/93/37 +f 131/44/27 142/71/6 130/46/6 +f 128/51/32 139/433/3 127/53/3 +f 125/58/37 136/88/7 124/61/7 +f 132/42/25 143/74/27 131/44/27 +f 122/67/42 133/78/4 121/41/4 +f 129/49/30 140/98/32 128/51/32 +f 126/55/35 137/91/37 125/58/37 +f 121/41/4 144/431/25 132/42/25 +f 123/64/40 134/82/42 122/67/42 +f 130/46/6 141/101/30 129/49/30 +f 127/430/3 138/94/35 126/55/35 +f 124/61/7 135/85/40 123/64/40 +f 146/437/32 157/665/3 145/115/3 +f 153/438/40 164/666/42 152/118/42 +f 150/439/25 161/667/27 149/121/27 +f 145/440/3 168/668/35 156/124/35 +f 147/441/30 158/669/32 146/127/32 +f 154/130/7 165/670/40 153/131/40 +f 151/443/4 162/671/25 150/133/25 +f 148/444/6 159/672/30 147/136/30 +f 155/445/37 166/673/7 154/139/7 +f 152/434/42 163/674/4 151/106/4 +f 149/435/27 160/675/6 148/109/6 +f 156/112/35 167/676/37 155/113/37 +f 173/677/40 184/678/7 172/679/7 +f 180/680/32 191/681/30 179/682/30 +f 170/683/35 181/684/3 169/685/3 +f 177/686/27 188/687/25 176/688/25 +f 174/689/42 185/690/40 173/677/40 +f 169/685/3 192/691/32 180/680/32 +f 171/692/37 182/693/35 170/683/35 +f 178/694/6 189/695/27 177/686/27 +f 175/696/4 186/697/42 174/689/42 +f 172/679/7 183/698/37 171/692/37 +f 179/682/30 190/699/6 178/694/6 +f 176/688/25 187/700/4 175/701/4 +f 194/702/79 198/703/80 199/704/81 +f 264/705/82 215/706/83 270/707/83 +f 270/707/83 214/708/84 271/709/84 +f 235/710/1 194/702/79 199/704/81 +f 193/711/85 198/703/80 275/712/86 +f 250/713/87 242/714/88 236/715/87 +f 195/716/89 207/717/90 200/718/89 +f 263/719/91 221/720/82 264/721/82 +f 235/722/1 199/723/81 206/724/92 +f 197/725/93 205/726/94 198/703/80 +f 277/727/95 200/728/89 243/729/95 +f 198/703/80 206/724/92 199/723/81 +f 249/730/88 243/731/95 242/732/88 +f 235/733/1 206/734/92 213/735/96 +f 204/736/97 212/737/98 205/726/94 +f 274/738/99 207/739/90 276/740/90 +f 205/726/94 213/735/96 206/734/92 +f 235/741/1 213/742/96 220/743/100 +f 212/737/98 218/744/101 219/745/102 +f 216/746/32 264/721/3 210/747/3 +f 213/742/96 219/745/102 220/743/100 +f 231/748/4 249/730/25 230/749/25 +f 202/750/7 276/740/40 201/751/40 +f 235/752/1 220/753/100 227/754/103 +f 218/744/101 226/755/104 219/745/102 +f 210/756/3 270/707/35 209/757/35 +f 220/753/100 226/755/104 227/754/103 +f 196/758/42 277/727/4 231/748/4 +f 224/759/27 249/730/25 250/713/27 +f 235/760/1 227/761/103 234/762/105 +f 226/755/104 232/763/106 233/764/107 +f 209/757/35 271/709/37 203/765/37 +f 226/755/104 234/762/105 227/761/103 +f 201/751/40 195/716/42 196/758/42 +f 224/759/27 256/766/6 223/767/6 +f 232/768/106 240/769/108 233/770/107 +f 223/767/6 257/771/30 217/772/30 +f 233/770/107 241/773/109 234/774/105 +f 203/765/37 274/738/7 202/750/7 +f 216/746/32 257/771/30 263/719/32 +f 235/775/1 234/774/105 241/773/109 +f 263/719/91 228/776/110 222/777/91 +f 240/769/108 248/778/111 241/779/109 +f 235/780/1 241/779/109 248/778/111 +f 240/769/108 246/781/112 247/782/113 +f 248/783/111 254/784/114 255/785/115 +f 225/786/116 252/787/3 232/763/106 +f 253/788/117 238/789/40 260/790/118 +f 235/791/1 248/783/111 255/785/115 +f 246/781/112 254/784/114 247/782/113 +f 239/792/119 245/793/37 246/781/112 +f 254/784/114 262/794/120 255/795/115 +f 197/725/93 266/796/27 204/736/97 +f 260/790/118 237/797/42 267/798/121 +f 235/799/1 255/795/115 262/794/120 +f 254/784/114 260/790/118 261/800/122 +f 267/798/121 273/801/4 193/711/85 +f 262/802/120 268/803/123 269/804/124 +f 193/711/85 272/805/25 197/725/93 +f 211/806/125 259/807/30 218/744/101 +f 235/808/1 262/802/120 269/804/124 +f 260/790/118 268/803/123 261/800/122 +f 232/768/106 251/809/35 239/792/119 +f 269/810/124 275/712/86 194/811/79 +f 246/781/112 244/812/7 253/788/117 +f 218/744/101 258/813/32 225/786/116 +f 235/814/1 269/810/124 194/811/79 +f 267/798/121 275/712/86 268/803/123 +f 204/736/97 265/815/6 211/806/125 +f 256/766/126 228/816/110 257/771/110 +f 250/713/87 229/817/126 256/766/126 +f 274/738/99 214/818/84 208/819/99 +f 279/820/127 294/821/128 288/822/129 +f 283/823/130 297/824/131 299/825/132 +f 281/826/133 282/827/134 280/828/135 +f 278/829/136 284/830/137 279/820/127 +f 291/831/138 294/821/128 290/832/139 +f 280/828/135 289/833/140 281/826/133 +f 279/820/127 287/834/141 278/829/136 +f 291/831/138 292/184/142 293/499/143 +f 281/826/133 293/499/143 285/835/144 +f 289/833/140 291/831/138 281/826/133 +f 284/830/137 290/832/139 279/820/127 +f 296/836/145 299/837/132 297/838/131 +f 297/838/131 300/839/146 296/836/145 +f 287/834/141 297/824/131 278/829/136 +f 280/828/135 298/840/147 296/836/145 +f 280/828/135 300/839/146 286/841/148 +f 324/842/4 339/843/149 331/844/14 +f 330/845/6 337/846/150 329/847/13 +f 328/848/3 335/849/151 327/850/15 +f 326/851/7 333/852/152 325/853/16 +f 331/844/14 338/854/153 330/855/6 +f 329/847/13 336/856/154 328/848/3 +f 327/850/15 334/857/155 326/851/7 +f 325/853/16 332/858/156 324/842/4 +f 333/852/152 342/859/157 341/860/158 +f 338/854/153 347/861/159 346/862/160 +f 337/846/150 344/863/161 336/856/154 +f 335/849/151 342/859/157 334/857/155 +f 332/858/156 341/860/158 340/864/162 +f 339/843/149 340/864/162 347/861/159 +f 338/865/153 345/866/163 337/846/150 +f 336/856/154 343/867/164 335/849/151 +f 340/864/162 355/868/14 347/861/159 +f 346/869/160 353/870/13 345/866/163 +f 344/863/161 351/871/15 343/867/164 +f 342/859/157 349/872/16 341/860/158 +f 347/861/159 354/873/6 346/862/160 +f 345/866/163 352/874/3 344/863/161 +f 343/867/164 350/875/7 342/859/157 +f 341/860/158 348/876/4 340/864/162 +f 356/877/4 371/878/149 363/879/14 +f 362/880/6 369/881/150 361/882/13 +f 360/883/3 367/884/151 359/885/15 +f 358/886/7 365/887/152 357/888/16 +f 363/879/14 370/889/153 362/890/6 +f 361/882/13 368/891/154 360/883/3 +f 359/885/15 366/892/155 358/886/7 +f 357/888/16 364/893/156 356/877/4 +f 365/887/152 374/894/157 373/895/158 +f 370/889/153 379/896/159 378/897/160 +f 369/881/150 376/898/161 368/891/154 +f 367/884/151 374/894/157 366/892/155 +f 364/893/156 373/895/158 372/899/162 +f 371/878/149 372/899/162 379/896/159 +f 370/900/153 377/901/163 369/881/150 +f 368/891/154 375/902/164 367/884/151 +f 372/899/162 387/903/14 379/896/159 +f 378/904/160 385/905/13 377/901/163 +f 376/898/161 383/906/15 375/902/164 +f 374/894/157 381/907/16 373/895/158 +f 379/896/159 386/908/6 378/897/160 +f 377/901/163 384/909/3 376/898/161 +f 375/902/164 382/910/7 374/894/157 +f 373/895/158 380/911/4 372/899/162 +f 436/912/165 418/913/166 437/914/167 +f 440/915/168 417/916/169 436/912/165 +f 441/917/170 416/918/168 440/915/168 +f 442/919/171 412/920/172 441/917/170 +f 414/921/173 442/919/171 443/922/174 +f 415/923/175 443/922/174 439/924/175 +f 419/925/176 439/924/175 438/926/177 +f 417/916/169 405/927/178 418/913/166 +f 422/928/23 431/929/179 423/930/1 +f 420/931/180 429/932/181 421/933/7 +f 427/934/19 434/935/182 426/936/6 +f 425/937/183 432/938/184 424/939/2 +f 421/940/7 430/941/185 422/928/23 +f 424/939/2 428/942/186 420/931/180 +f 426/936/6 433/943/187 425/937/183 +f 423/930/1 435/944/188 427/934/19 +f 416/918/168 404/945/189 417/916/169 +f 412/920/172 408/946/179 416/918/168 +f 413/947/190 409/948/191 412/920/172 +f 414/921/173 410/949/192 413/947/190 +f 415/923/175 411/950/193 414/921/173 +f 419/925/176 407/951/184 415/923/175 +f 407/951/184 475/952/186 471/953/184 +f 411/950/193 471/953/184 470/954/187 +f 454/955/23 463/956/168 455/957/1 +f 452/958/180 461/959/171 453/960/7 +f 459/961/19 466/962/167 458/963/6 +f 457/964/183 464/965/175 456/966/2 +f 453/960/7 462/967/170 454/955/23 +f 456/966/2 460/968/174 452/958/180 +f 458/969/6 465/970/177 457/964/183 +f 455/957/1 467/971/165 459/961/19 +f 469/972/182 411/950/193 470/954/187 +f 409/948/191 469/972/182 468/973/188 +f 472/974/179 409/948/191 468/973/188 +f 404/945/189 472/974/179 473/975/185 +f 405/927/178 473/975/185 474/976/181 +f 475/952/186 405/977/178 474/978/181 +f 418/979/166 406/980/194 419/925/176 +f 418/979/166 438/926/177 437/981/167 +f 448/982/1 436/912/165 444/983/19 +f 445/984/6 438/926/177 446/985/183 +f 447/986/2 443/922/174 451/987/180 +f 450/988/7 441/917/170 449/989/23 +f 446/985/183 439/924/175 447/986/2 +f 444/983/19 437/914/167 445/990/6 +f 451/987/180 442/919/171 450/988/7 +f 449/989/23 440/915/168 448/982/1 +f 488/991/1 468/973/188 484/992/19 +f 485/993/6 470/954/187 486/994/183 +f 487/995/2 475/952/186 491/996/180 +f 490/997/7 473/975/185 489/998/23 +f 486/994/183 471/953/184 487/995/2 +f 484/992/19 469/972/182 485/993/6 +f 491/996/180 474/978/181 490/999/7 +f 489/998/23 472/974/179 488/991/1 +f 477/1000/166 465/970/177 466/1001/167 +f 477/1000/166 497/1002/194 476/1003/176 +f 428/942/186 498/1004/178 429/932/181 +f 498/1005/178 430/941/185 429/1006/181 +f 499/1007/189 431/929/179 430/941/185 +f 431/929/179 494/1008/191 435/944/188 +f 494/1008/191 434/935/182 435/944/188 +f 434/935/182 492/1009/193 433/943/187 +f 492/1009/193 432/938/184 433/943/187 +f 432/938/184 497/1002/194 428/942/186 +f 476/1003/176 496/1010/184 480/1011/175 +f 480/1011/175 492/1009/193 481/1012/173 +f 481/1012/173 493/1013/192 482/1014/190 +f 482/1014/190 494/1008/191 483/1015/172 +f 483/1015/172 495/1016/179 479/1017/168 +f 479/1017/168 499/1007/189 478/1018/169 +f 478/1018/169 498/1005/178 477/1019/166 +f 476/1003/176 464/965/175 465/970/177 +f 464/965/175 481/1012/173 460/968/174 +f 481/1012/173 461/959/171 460/968/174 +f 461/959/171 483/1015/172 462/967/170 +f 483/1015/172 463/956/168 462/967/170 +f 463/956/168 478/1018/169 467/971/165 +f 467/971/165 477/1019/166 466/962/167 +f 538/1020/6 545/1021/183 537/1022/183 +f 536/1023/2 543/1024/180 535/1025/180 +f 534/1026/7 541/1027/23 533/1028/23 +f 539/1029/19 546/1030/6 538/1020/6 +f 537/1022/183 544/1031/2 536/1023/2 +f 535/1025/180 542/1032/7 534/1033/7 +f 533/1028/23 540/1034/1 532/1035/1 +f 532/1035/1 547/1036/19 539/1029/19 +f 563/1037/1 548/1038/19 556/1039/19 +f 562/1040/23 555/1041/1 563/1037/1 +f 560/1042/180 553/1043/7 561/1044/7 +f 558/1045/183 551/1046/2 559/1047/2 +f 556/1039/19 549/1048/6 557/1049/6 +f 561/1050/7 554/1051/23 562/1040/23 +f 559/1047/2 552/1052/180 560/1042/180 +f 557/1049/6 550/1053/183 558/1045/183 +f 570/1054/6 577/1055/183 569/1056/183 +f 568/1057/2 575/1058/180 567/1059/180 +f 566/1060/7 573/1061/23 565/1062/23 +f 571/1063/19 578/1064/6 570/1054/6 +f 569/1056/183 576/1065/2 568/1057/2 +f 567/1059/180 574/1066/7 566/1067/7 +f 565/1062/23 572/1068/1 564/1069/1 +f 564/1069/1 579/1070/19 571/1063/19 +f 587/1071/14 594/1072/6 586/1073/6 +f 585/1074/13 592/1075/3 584/1076/3 +f 583/1077/15 590/1078/7 582/1079/7 +f 581/1080/16 588/1081/4 580/1082/4 +f 580/1082/4 595/1083/14 587/1071/14 +f 586/1084/6 593/1085/13 585/1074/13 +f 584/1076/3 591/1086/15 583/1077/15 +f 582/1079/7 589/1087/16 581/1080/16 +f 609/1088/7 602/1089/16 610/1090/16 +f 607/1091/3 600/1092/15 608/1093/15 +f 605/1094/6 598/1095/13 606/1096/13 +f 611/1097/4 596/1098/14 604/1099/14 +f 610/1090/16 603/1100/4 611/1097/4 +f 608/1093/15 601/1101/7 609/1088/7 +f 606/1096/13 599/1102/3 607/1091/3 +f 604/1099/14 597/1103/6 605/1104/6 +f 631/1105/7 644/1106/37 632/1107/37 +f 638/1108/27 651/1109/25 639/1110/25 +f 628/1111/4 641/1112/42 629/1113/42 +f 635/1114/32 648/1115/30 636/1116/30 +f 632/1107/37 645/1117/35 633/1118/35 +f 639/1110/25 640/1119/4 628/1111/4 +f 629/1113/42 642/1120/40 630/1121/40 +f 636/1116/30 649/1122/6 637/1123/6 +f 633/1118/35 646/1124/3 634/1125/3 +f 630/1121/40 643/1126/7 631/1105/7 +f 637/1123/6 650/1127/27 638/1108/27 +f 634/1128/3 647/1129/32 635/1114/32 +f 641/1112/195 662/1130/196 642/1120/196 +f 648/1115/197 669/1131/198 649/1122/198 +f 645/1117/199 666/1132/200 646/1124/200 +f 643/1126/201 662/1133/196 663/1134/202 +f 650/1127/203 669/1135/198 670/1136/204 +f 646/1137/200 667/1138/205 647/1129/206 +f 644/1106/207 663/1139/202 664/1140/207 +f 650/1127/203 671/1141/208 651/1109/209 +f 641/1112/195 661/1142/210 660/1143/195 +f 647/1129/206 668/1144/197 648/1115/197 +f 645/1117/199 664/1145/207 665/1146/199 +f 651/1109/209 661/1147/210 640/1119/210 +f 673/1148/1 674/1149/211 672/1150/1 +f 675/1151/211 676/1152/4 674/1149/211 +f 677/1153/4 678/1154/22 676/1152/4 +f 679/1155/22 680/546/2 678/1154/22 +f 681/1156/2 682/1157/21 680/546/2 +f 683/1158/21 684/1159/3 682/1157/21 +f 685/1160/3 686/1161/20 684/1162/3 +f 687/1163/20 672/1150/1 686/1161/20 +f 2/574/24 4/575/26 3/1/25 +f 4/575/26 6/576/28 5/169/27 +f 6/576/28 8/577/29 7/159/6 +f 8/577/29 10/578/31 9/158/30 +f 10/578/31 12/579/33 11/154/32 +f 12/579/33 14/664/34 13/457/3 +f 14/580/34 16/581/36 15/150/35 +f 16/581/36 18/582/38 17/148/37 +f 18/582/38 20/583/39 19/144/7 +f 20/583/39 22/584/41 21/171/40 +f 22/584/41 24/585/43 23/162/42 +f 24/585/43 2/574/24 1/165/4 +f 26/586/4 28/589/25 27/587/25 +f 28/589/25 30/591/27 29/590/27 +f 30/591/27 32/593/6 31/592/6 +f 32/593/6 34/595/30 33/594/30 +f 34/595/30 36/597/32 35/596/32 +f 36/597/32 38/1164/3 37/598/3 +f 38/599/3 40/602/35 39/600/35 +f 40/602/35 42/604/37 41/603/37 +f 42/604/37 44/606/7 43/605/7 +f 44/606/7 46/608/40 45/607/40 +f 46/608/40 48/610/42 47/609/42 +f 48/610/42 26/586/4 25/588/4 +f 50/611/44 58/1165/212 57/612/45 +f 57/612/45 58/1166/212 66/614/47 +f 65/615/48 66/638/47 54/616/49 +f 53/617/50 54/662/49 62/618/51 +f 62/620/51 70/1167/76 69/621/53 +f 71/622/54 72/644/56 50/623/44 +f 63/624/55 64/647/69 72/625/56 +f 56/626/57 64/1168/69 63/624/55 +f 55/627/58 67/631/61 68/628/59 +f 60/630/60 68/1169/59 67/631/61 +f 51/633/63 52/655/64 60/634/60 +f 69/621/53 70/658/76 52/635/64 +f 29/637/65 31/1170/78 54/616/49 +f 66/614/47 58/1166/212 27/639/66 +f 27/641/66 58/1165/212 50/611/44 +f 25/643/67 50/623/44 72/644/56 +f 47/646/68 72/625/56 64/647/69 +f 45/649/70 64/1168/69 56/626/57 +f 41/651/72 43/1171/71 56/629/57 +f 41/652/72 68/1169/59 60/630/60 +f 39/654/73 60/634/60 52/655/64 +f 35/657/75 37/1172/74 52/635/64 +f 35/659/75 70/1167/76 62/620/51 +f 33/661/77 62/618/51 54/662/49 +f 65/615/48 53/617/50 8/577/29 +f 6/576/28 4/575/26 57/612/45 +f 2/574/24 49/613/46 57/612/45 +f 71/622/54 49/613/46 2/574/24 +f 24/585/43 22/584/41 63/624/55 +f 22/584/41 20/583/39 55/627/58 +f 67/631/61 55/627/58 20/583/39 +f 18/582/38 16/581/36 59/632/62 +f 14/580/34 51/633/63 59/632/62 +f 69/621/53 51/636/63 14/664/34 +f 12/579/33 10/578/31 61/619/52 +f 8/577/29 53/617/50 61/619/52 +f 82/29/6 94/427/6 93/48/30 +f 79/38/3 91/54/3 90/56/35 +f 76/11/7 88/63/7 87/65/40 +f 83/26/27 95/45/27 94/47/6 +f 80/423/32 92/429/32 91/52/3 +f 77/8/37 89/60/37 88/62/7 +f 84/23/25 96/426/25 95/43/27 +f 74/17/42 86/69/42 85/70/4 +f 81/32/30 93/428/30 92/50/32 +f 78/5/35 90/57/35 89/59/37 +f 73/20/4 85/425/4 96/40/25 +f 75/14/40 87/66/40 86/68/42 +f 97/79/4 109/123/4 120/125/25 +f 99/83/40 111/126/40 110/128/42 +f 106/104/6 118/442/6 117/129/30 +f 103/95/3 115/132/3 114/134/35 +f 100/86/7 112/135/7 111/137/40 +f 107/72/27 119/138/27 118/140/6 +f 104/99/32 116/105/32 115/107/3 +f 101/89/37 113/108/37 112/110/7 +f 108/75/25 120/436/25 119/111/27 +f 98/80/42 110/114/42 109/116/4 +f 105/102/30 117/117/30 116/119/32 +f 102/92/35 114/120/35 113/122/37 +f 131/44/27 143/74/27 142/71/6 +f 128/51/32 140/98/32 139/433/3 +f 125/58/37 137/91/37 136/88/7 +f 132/42/25 144/431/25 143/74/27 +f 122/67/42 134/82/42 133/78/4 +f 129/49/30 141/101/30 140/98/32 +f 126/55/35 138/94/35 137/91/37 +f 121/41/4 133/78/4 144/431/25 +f 123/64/40 135/85/40 134/82/42 +f 130/46/6 142/71/6 141/101/30 +f 127/430/3 139/432/3 138/94/35 +f 124/61/7 136/88/7 135/85/40 +f 146/437/32 158/1173/32 157/665/3 +f 153/438/40 165/1174/40 164/666/42 +f 150/439/25 162/1175/25 161/667/27 +f 145/440/3 157/1176/3 168/668/35 +f 147/441/30 159/1177/30 158/669/32 +f 154/130/7 166/1178/7 165/670/40 +f 151/443/4 163/1179/4 162/671/25 +f 148/444/6 160/1180/6 159/672/30 +f 155/445/37 167/1181/37 166/673/7 +f 152/434/42 164/1182/42 163/674/4 +f 149/435/27 161/1183/27 160/675/6 +f 156/112/35 168/1184/35 167/676/37 +f 173/677/40 185/690/40 184/678/7 +f 180/680/32 192/691/32 191/681/30 +f 170/683/35 182/693/35 181/684/3 +f 177/686/27 189/695/27 188/687/25 +f 174/689/42 186/697/42 185/690/40 +f 169/685/3 181/684/3 192/691/32 +f 171/692/37 183/698/37 182/693/35 +f 178/694/6 190/699/6 189/695/27 +f 175/696/4 187/1185/4 186/697/42 +f 172/679/7 184/678/7 183/698/37 +f 179/682/30 191/681/30 190/699/6 +f 176/688/25 188/687/25 187/700/4 +f 194/702/79 275/712/86 198/703/80 +f 264/705/82 221/1186/82 215/706/83 +f 270/707/83 215/1187/83 214/708/84 +f 193/711/85 197/725/93 198/703/80 +f 250/713/87 249/730/88 242/714/88 +f 195/716/89 276/740/90 207/717/90 +f 263/719/91 222/1188/91 221/720/82 +f 197/725/93 204/736/97 205/726/94 +f 277/727/95 195/716/89 200/728/89 +f 198/703/80 205/726/94 206/724/92 +f 249/730/88 277/727/95 243/731/95 +f 204/736/97 211/806/125 212/737/98 +f 274/738/99 208/1189/99 207/739/90 +f 205/726/94 212/737/98 213/735/96 +f 212/737/98 211/806/125 218/744/101 +f 216/746/32 263/719/32 264/721/3 +f 213/742/96 212/737/98 219/745/102 +f 231/748/4 277/727/4 249/730/25 +f 202/750/7 274/738/7 276/740/40 +f 218/744/101 225/786/116 226/755/104 +f 210/756/3 264/705/3 270/707/35 +f 220/753/100 219/745/102 226/755/104 +f 196/758/42 195/716/42 277/727/4 +f 224/759/27 230/749/25 249/730/25 +f 226/755/104 225/786/116 232/763/106 +f 209/757/35 270/707/35 271/709/37 +f 226/755/104 233/764/107 234/762/105 +f 201/751/40 276/740/40 195/716/42 +f 224/759/27 250/713/27 256/766/6 +f 232/768/106 239/792/119 240/769/108 +f 223/767/6 256/766/6 257/771/30 +f 233/770/107 240/769/108 241/773/109 +f 203/765/37 271/709/37 274/738/7 +f 216/746/32 217/772/30 257/771/30 +f 263/719/91 257/771/110 228/776/110 +f 240/769/108 247/782/113 248/778/111 +f 240/769/108 239/792/119 246/781/112 +f 248/783/111 247/782/113 254/784/114 +f 225/786/116 258/813/32 252/787/3 +f 253/788/117 244/812/7 238/789/40 +f 246/781/112 253/788/117 254/784/114 +f 239/792/119 251/809/35 245/793/37 +f 254/784/114 261/800/122 262/794/120 +f 197/725/93 272/805/25 266/796/27 +f 260/790/118 238/789/40 237/797/42 +f 254/784/114 253/788/117 260/790/118 +f 267/798/121 237/797/42 273/801/4 +f 262/802/120 261/800/122 268/803/123 +f 193/711/85 273/801/4 272/805/25 +f 211/806/125 265/815/6 259/807/30 +f 260/790/118 267/798/121 268/803/123 +f 232/768/106 252/1190/3 251/809/35 +f 269/810/124 268/803/123 275/712/86 +f 246/781/112 245/793/37 244/812/7 +f 218/744/101 259/807/30 258/813/32 +f 267/798/121 193/711/85 275/712/86 +f 204/736/97 266/796/27 265/815/6 +f 256/766/126 229/1191/126 228/816/110 +f 250/713/87 236/1192/87 229/817/126 +f 274/738/99 271/709/84 214/818/84 +f 279/820/127 290/832/139 294/821/128 +f 283/823/130 278/829/136 297/824/131 +f 281/826/133 285/835/144 282/827/134 +f 278/829/136 283/823/130 284/830/137 +f 291/831/138 295/1193/213 294/821/128 +f 280/828/135 286/841/148 289/833/140 +f 279/820/127 288/822/129 287/834/141 +f 291/831/138 290/832/139 292/184/142 +f 281/826/133 291/831/138 293/499/143 +f 289/833/140 295/1193/213 291/831/138 +f 284/830/137 292/184/142 290/832/139 +f 296/836/145 298/840/147 299/837/132 +f 297/838/131 301/1194/214 300/839/146 +f 287/834/141 301/1195/214 297/824/131 +f 280/828/135 282/827/134 298/840/147 +f 280/828/135 296/836/145 300/839/146 +f 324/842/4 332/858/156 339/843/149 +f 330/845/6 338/865/153 337/846/150 +f 328/848/3 336/856/154 335/849/151 +f 326/851/7 334/857/155 333/852/152 +f 331/844/14 339/843/149 338/854/153 +f 329/847/13 337/846/150 336/856/154 +f 327/850/15 335/849/151 334/857/155 +f 325/853/16 333/852/152 332/858/156 +f 333/852/152 334/857/155 342/859/157 +f 338/854/153 339/843/149 347/861/159 +f 337/846/150 345/866/163 344/863/161 +f 335/849/151 343/867/164 342/859/157 +f 332/858/156 333/852/152 341/860/158 +f 339/843/149 332/858/156 340/864/162 +f 338/865/153 346/869/160 345/866/163 +f 336/856/154 344/863/161 343/867/164 +f 340/864/162 348/876/4 355/868/14 +f 346/869/160 354/1196/6 353/870/13 +f 344/863/161 352/874/3 351/871/15 +f 342/859/157 350/875/7 349/872/16 +f 347/861/159 355/868/14 354/873/6 +f 345/866/163 353/870/13 352/874/3 +f 343/867/164 351/871/15 350/875/7 +f 341/860/158 349/872/16 348/876/4 +f 356/877/4 364/893/156 371/878/149 +f 362/880/6 370/900/153 369/881/150 +f 360/883/3 368/891/154 367/884/151 +f 358/886/7 366/892/155 365/887/152 +f 363/879/14 371/878/149 370/889/153 +f 361/882/13 369/881/150 368/891/154 +f 359/885/15 367/884/151 366/892/155 +f 357/888/16 365/887/152 364/893/156 +f 365/887/152 366/892/155 374/894/157 +f 370/889/153 371/878/149 379/896/159 +f 369/881/150 377/901/163 376/898/161 +f 367/884/151 375/902/164 374/894/157 +f 364/893/156 365/887/152 373/895/158 +f 371/878/149 364/893/156 372/899/162 +f 370/900/153 378/904/160 377/901/163 +f 368/891/154 376/898/161 375/902/164 +f 372/899/162 380/911/4 387/903/14 +f 378/904/160 386/1197/6 385/905/13 +f 376/898/161 384/909/3 383/906/15 +f 374/894/157 382/910/7 381/907/16 +f 379/896/159 387/903/14 386/908/6 +f 377/901/163 385/905/13 384/909/3 +f 375/902/164 383/906/15 382/910/7 +f 373/895/158 381/907/16 380/911/4 +f 436/912/165 417/916/169 418/913/166 +f 440/915/168 416/918/168 417/916/169 +f 441/917/170 412/920/172 416/918/168 +f 442/919/171 413/947/190 412/920/172 +f 414/921/173 413/947/190 442/919/171 +f 415/923/175 414/921/173 443/922/174 +f 419/925/176 415/923/175 439/924/175 +f 417/916/169 404/945/189 405/927/178 +f 422/928/23 430/941/185 431/929/179 +f 420/931/180 428/942/186 429/932/181 +f 427/934/19 435/944/188 434/935/182 +f 425/937/183 433/943/187 432/938/184 +f 421/940/7 429/1006/181 430/941/185 +f 424/939/2 432/938/184 428/942/186 +f 426/936/6 434/935/182 433/943/187 +f 423/930/1 431/929/179 435/944/188 +f 416/918/168 408/946/179 404/945/189 +f 412/920/172 409/948/191 408/946/179 +f 413/947/190 410/949/192 409/948/191 +f 414/921/173 411/950/193 410/949/192 +f 415/923/175 407/951/184 411/950/193 +f 419/925/176 406/980/194 407/951/184 +f 407/951/184 406/980/194 475/952/186 +f 411/950/193 407/951/184 471/953/184 +f 454/955/23 462/967/170 463/956/168 +f 452/958/180 460/968/174 461/959/171 +f 459/961/19 467/971/165 466/962/167 +f 457/964/183 465/970/177 464/965/175 +f 453/960/7 461/959/171 462/967/170 +f 456/966/2 464/965/175 460/968/174 +f 458/969/6 466/1001/167 465/970/177 +f 455/957/1 463/956/168 467/971/165 +f 469/972/182 410/949/192 411/950/193 +f 409/948/191 410/949/192 469/972/182 +f 472/974/179 408/946/179 409/948/191 +f 404/945/189 408/946/179 472/974/179 +f 405/927/178 404/945/189 473/975/185 +f 475/952/186 406/980/194 405/977/178 +f 418/979/166 405/977/178 406/980/194 +f 418/979/166 419/925/176 438/926/177 +f 448/982/1 440/915/168 436/912/165 +f 445/984/6 437/981/167 438/926/177 +f 447/986/2 439/924/175 443/922/174 +f 450/988/7 442/919/171 441/917/170 +f 446/985/183 438/926/177 439/924/175 +f 444/983/19 436/912/165 437/914/167 +f 451/987/180 443/922/174 442/919/171 +f 449/989/23 441/917/170 440/915/168 +f 488/991/1 472/974/179 468/973/188 +f 485/993/6 469/972/182 470/954/187 +f 487/995/2 471/953/184 475/952/186 +f 490/997/7 474/976/181 473/975/185 +f 486/994/183 470/954/187 471/953/184 +f 484/992/19 468/973/188 469/972/182 +f 491/996/180 475/952/186 474/978/181 +f 489/998/23 473/975/185 472/974/179 +f 477/1000/166 476/1003/176 465/970/177 +f 477/1000/166 498/1004/178 497/1002/194 +f 428/942/186 497/1002/194 498/1004/178 +f 498/1005/178 499/1007/189 430/941/185 +f 499/1007/189 495/1016/179 431/929/179 +f 431/929/179 495/1016/179 494/1008/191 +f 494/1008/191 493/1013/192 434/935/182 +f 434/935/182 493/1013/192 492/1009/193 +f 492/1009/193 496/1010/184 432/938/184 +f 432/938/184 496/1010/184 497/1002/194 +f 476/1003/176 497/1002/194 496/1010/184 +f 480/1011/175 496/1010/184 492/1009/193 +f 481/1012/173 492/1009/193 493/1013/192 +f 482/1014/190 493/1013/192 494/1008/191 +f 483/1015/172 494/1008/191 495/1016/179 +f 479/1017/168 495/1016/179 499/1007/189 +f 478/1018/169 499/1007/189 498/1005/178 +f 476/1003/176 480/1011/175 464/965/175 +f 464/965/175 480/1011/175 481/1012/173 +f 481/1012/173 482/1014/190 461/959/171 +f 461/959/171 482/1014/190 483/1015/172 +f 483/1015/172 479/1017/168 463/956/168 +f 463/956/168 479/1017/168 478/1018/169 +f 467/971/165 478/1018/169 477/1019/166 +f 538/1020/6 546/1030/6 545/1021/183 +f 536/1023/2 544/1031/2 543/1024/180 +f 534/1026/7 542/1198/7 541/1027/23 +f 539/1029/19 547/1036/19 546/1030/6 +f 537/1022/183 545/1021/183 544/1031/2 +f 535/1025/180 543/1024/180 542/1032/7 +f 533/1028/23 541/1027/23 540/1034/1 +f 532/1035/1 540/1034/1 547/1036/19 +f 563/1037/1 555/1041/1 548/1038/19 +f 562/1040/23 554/1051/23 555/1041/1 +f 560/1042/180 552/1052/180 553/1043/7 +f 558/1045/183 550/1053/183 551/1046/2 +f 556/1039/19 548/1038/19 549/1048/6 +f 561/1050/7 553/1199/7 554/1051/23 +f 559/1047/2 551/1046/2 552/1052/180 +f 557/1049/6 549/1048/6 550/1053/183 +f 570/1054/6 578/1064/6 577/1055/183 +f 568/1057/2 576/1065/2 575/1058/180 +f 566/1060/7 574/1200/7 573/1061/23 +f 571/1063/19 579/1070/19 578/1064/6 +f 569/1056/183 577/1055/183 576/1065/2 +f 567/1059/180 575/1058/180 574/1066/7 +f 565/1062/23 573/1061/23 572/1068/1 +f 564/1069/1 572/1068/1 579/1070/19 +f 587/1071/14 595/1083/14 594/1072/6 +f 585/1074/13 593/1085/13 592/1075/3 +f 583/1077/15 591/1086/15 590/1078/7 +f 581/1080/16 589/1087/16 588/1081/4 +f 580/1082/4 588/1081/4 595/1083/14 +f 586/1084/6 594/1201/6 593/1085/13 +f 584/1076/3 592/1075/3 591/1086/15 +f 582/1079/7 590/1078/7 589/1087/16 +f 609/1088/7 601/1101/7 602/1089/16 +f 607/1091/3 599/1102/3 600/1092/15 +f 605/1094/6 597/1202/6 598/1095/13 +f 611/1097/4 603/1100/4 596/1098/14 +f 610/1090/16 602/1089/16 603/1100/4 +f 608/1093/15 600/1092/15 601/1101/7 +f 606/1096/13 598/1095/13 599/1102/3 +f 604/1099/14 596/1098/14 597/1103/6 +f 631/1105/7 643/1126/7 644/1106/37 +f 638/1108/27 650/1127/27 651/1109/25 +f 628/1111/4 640/1119/4 641/1112/42 +f 635/1114/32 647/1129/32 648/1115/30 +f 632/1107/37 644/1106/37 645/1117/35 +f 639/1110/25 651/1109/25 640/1119/4 +f 629/1113/42 641/1112/42 642/1120/40 +f 636/1116/30 648/1115/30 649/1122/6 +f 633/1118/35 645/1117/35 646/1124/3 +f 630/1121/40 642/1120/40 643/1126/7 +f 637/1123/6 649/1122/6 650/1127/27 +f 634/1128/3 646/1137/3 647/1129/32 +f 641/1112/195 660/1203/195 662/1130/196 +f 648/1115/197 668/1204/197 669/1131/198 +f 645/1117/199 665/1205/199 666/1132/200 +f 643/1126/201 642/1120/196 662/1133/196 +f 650/1127/203 649/1122/198 669/1135/198 +f 646/1137/200 666/1206/200 667/1138/205 +f 644/1106/207 643/1126/201 663/1139/202 +f 650/1127/203 670/1207/204 671/1141/208 +f 641/1112/195 640/1119/210 661/1142/210 +f 647/1129/206 667/1208/205 668/1144/197 +f 645/1117/199 644/1106/207 664/1145/207 +f 651/1109/209 671/1209/208 661/1147/210 +f 673/1148/1 675/1151/211 674/1149/211 +f 675/1151/211 677/1153/4 676/1152/4 +f 677/1153/4 679/1155/22 678/1154/22 +f 679/1155/22 681/1156/2 680/546/2 +f 681/1156/2 683/1158/21 682/1157/21 +f 683/1158/21 685/1210/3 684/1159/3 +f 685/1160/3 687/1163/20 686/1161/20 +f 687/1163/20 673/1148/1 672/1150/1 diff --git a/src/main/resources/assets/hbm/models/weapons/am180.obj b/src/main/resources/assets/hbm/models/weapons/am180.obj new file mode 100644 index 000000000..ed63feb9a --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/am180.obj @@ -0,0 +1,4369 @@ +# Blender v2.79 (sub 0) OBJ File: 'am180.blend' +# www.blender.org +o Mag +v 0.574255 2.611670 3.643148 +v 0.000000 2.611670 2.937500 +v 0.000000 2.611670 3.718750 +v 0.718750 2.611670 2.744912 +v 0.372052 2.611670 2.888518 +v 1.568893 2.611670 3.068893 +v 1.109375 2.611670 3.421494 +v 1.921494 2.611670 2.609375 +v 1.016466 2.611670 2.516466 +v 2.143148 2.611670 2.074255 +v 1.244912 2.611670 2.218750 +v 2.218750 2.611670 1.500000 +v 1.388518 2.611670 1.872052 +v 1.388518 2.611670 1.127948 +v 1.437500 2.611670 1.500000 +v 2.143148 2.611670 0.925745 +v 1.244912 2.611670 0.781250 +v 1.568893 2.611670 -0.068893 +v 1.921494 2.611670 0.390625 +v 1.109375 2.611670 -0.421494 +v 1.016466 2.611670 0.483534 +v 0.574255 2.611670 -0.643148 +v 0.718750 2.611670 0.255088 +v 0.000000 2.611670 -0.718750 +v 0.372052 2.611670 0.111482 +v -0.574255 2.611670 -0.643148 +v 0.000000 2.611670 0.062500 +v -1.109375 2.611670 -0.421494 +v -0.372052 2.611670 0.111482 +v -1.568893 2.611670 -0.068893 +v -0.718750 2.611670 0.255088 +v -1.921494 2.611670 0.390625 +v -1.016466 2.611670 0.483534 +v -2.143148 2.611670 0.925746 +v -1.244911 2.611670 0.781250 +v -2.218750 2.611670 1.500000 +v -1.388518 2.611670 1.127948 +v -2.143148 2.611670 2.074255 +v -1.437500 2.611670 1.500000 +v -1.921494 2.611670 2.609375 +v -1.388518 2.611670 1.872052 +v -1.568893 2.611670 3.068893 +v -1.244912 2.611670 2.218750 +v -1.109375 2.611670 3.421494 +v -1.016466 2.611670 2.516466 +v -0.372052 2.611670 2.888518 +v -0.718750 2.611670 2.744912 +v -0.574255 2.611670 3.643148 +v 1.016466 2.111670 0.483534 +v 0.718750 2.111670 0.255088 +v 1.149048 2.486670 0.616117 +v 0.815595 2.111670 0.949570 +v 1.149048 2.111670 0.616117 +v 0.550430 2.486670 0.684405 +v 0.883884 2.486670 0.350952 +v -0.815595 2.486670 2.050431 +v -1.149048 2.111670 2.383884 +v -1.149048 2.486670 2.383884 +v -0.883883 2.486670 2.649049 +v -0.500000 2.424170 0.633975 +v -0.156677 2.424170 0.684405 +v 0.000000 2.424170 0.500000 +v 0.550430 2.424170 0.684405 +v 0.500000 2.424170 0.633975 +v 0.326286 2.424170 0.813814 +v 0.067467 2.424170 0.813814 +v 0.500000 2.424170 2.366026 +v 0.156677 2.424170 2.315596 +v 0.000000 2.424170 2.500000 +v -0.067467 2.424170 2.186186 +v -0.550430 2.424170 2.315596 +v -0.500000 2.424170 2.366026 +v -0.326286 2.424170 2.186186 +v 0.326286 2.486670 0.813814 +v 0.067467 2.486670 0.813814 +v -0.067467 2.486670 2.186186 +v 0.062500 2.549170 1.391747 +v 0.125000 2.486670 1.500000 +v 0.062500 2.486670 1.391747 +v 0.062500 2.549170 1.608253 +v -0.062500 2.486670 1.608253 +v 0.062500 2.486670 1.608253 +v -0.062500 2.549170 1.391747 +v -0.062500 2.486670 1.391747 +v 0.125000 2.549170 1.500000 +v -0.062500 2.549170 1.608253 +v -0.125000 2.486670 1.500000 +v -0.125000 2.549170 1.500000 +v 0.437500 2.549170 1.016747 +v 0.500000 2.486670 1.125000 +v 0.437500 2.486670 1.016747 +v 0.437500 2.549170 1.233253 +v 0.312500 2.486670 1.233253 +v 0.437500 2.486670 1.233253 +v 0.312500 2.549170 1.016747 +v 0.312500 2.486670 1.016747 +v 0.500000 2.549170 1.125000 +v 0.312500 2.549170 1.233253 +v 0.250000 2.486670 1.125000 +v 0.250000 2.549170 1.125000 +v -0.312500 2.549170 1.766747 +v -0.250000 2.486670 1.875000 +v -0.312500 2.486670 1.766747 +v -0.312500 2.549170 1.983253 +v -0.437500 2.486670 1.983253 +v -0.312500 2.486670 1.983253 +v -0.437500 2.549170 1.766747 +v -0.437500 2.486670 1.766747 +v -0.250000 2.549170 1.875000 +v -0.437500 2.549170 1.983253 +v -0.500000 2.486670 1.875000 +v -0.500000 2.549170 1.875000 +v 1.244912 2.111670 0.781250 +v 0.815595 2.486670 0.949570 +v -0.815595 2.111670 2.050431 +v -0.550430 2.486670 2.315596 +v -1.000000 2.486670 1.500000 +v -0.866025 2.486670 2.000000 +v -0.326286 2.486670 2.186186 +v 0.156677 2.486670 2.315596 +v 0.866025 2.486670 2.000000 +v 0.500000 2.486670 2.366026 +v -0.866025 2.486670 1.000000 +v -0.156677 2.486670 0.684405 +v -0.500000 2.486670 0.633975 +v 1.000000 2.486670 1.500000 +v 0.866025 2.486670 1.000000 +v 0.574255 2.111670 3.643148 +v 0.000000 2.111670 3.718750 +v 1.921494 2.111670 0.390625 +v 2.143148 2.111670 0.925745 +v -1.568893 2.111670 -0.068893 +v -1.109375 2.111670 -0.421494 +v -0.574255 2.111670 3.643148 +v 2.218750 2.111670 1.500000 +v -0.574255 2.111670 -0.643148 +v -1.109375 2.111670 3.421494 +v 2.143148 2.111670 2.074255 +v 0.000000 2.111670 -0.718750 +v -1.568893 2.111670 3.068893 +v 1.921494 2.111670 2.609375 +v 0.574255 2.111670 -0.643148 +v -1.921494 2.111670 2.609375 +v 1.568893 2.111670 3.068893 +v 1.109375 2.111670 -0.421494 +v -2.143148 2.111670 2.074255 +v -2.218750 2.111670 1.500000 +v -2.143148 2.111670 0.925746 +v 1.109375 2.111670 3.421494 +v 1.568893 2.111670 -0.068893 +v -1.921494 2.111670 0.390625 +v -0.372052 2.111670 0.111482 +v 1.437500 2.111670 1.500000 +v -0.372052 2.111670 2.888518 +v -0.718750 2.111670 0.255088 +v 1.388518 2.111670 1.127948 +v 0.000000 2.111670 2.937500 +v -1.016466 2.111670 0.483534 +v 0.372052 2.111670 2.888518 +v -1.244911 2.111670 0.781250 +v -1.437500 2.111670 1.500000 +v 0.718750 2.111670 2.744912 +v -1.388518 2.111670 1.127948 +v -1.388518 2.111670 1.872052 +v 1.016466 2.111670 2.516466 +v 0.372052 2.111670 0.111482 +v 1.244912 2.111670 2.218750 +v 0.000000 2.111670 0.062500 +v 1.388518 2.111670 1.872052 +v -0.718750 2.111670 2.744912 +v 1.000000 2.111670 1.500000 +v 0.866025 2.111670 2.000000 +v 0.866025 2.111670 1.000000 +v -0.883883 2.111670 2.649049 +v 0.000000 2.111670 0.500000 +v -0.500000 2.111670 0.633975 +v -0.866025 2.111670 2.000000 +v -1.000000 2.111670 1.500000 +v 0.500000 2.111670 2.366026 +v -0.866025 2.111670 1.000000 +v 0.500000 2.111670 0.633975 +v 0.550430 2.111670 0.684405 +v 0.883884 2.111670 0.350952 +v -0.500000 2.111670 2.366026 +v -1.016466 2.111670 2.516466 +v -0.550430 2.111670 2.315596 +v 0.031250 2.611670 1.445874 +v 0.062500 2.611670 1.500000 +v -0.062500 2.611670 1.500000 +v -0.031250 2.611670 1.554127 +v -0.031250 2.611670 1.445874 +v 0.031250 2.611670 1.554127 +v -1.244912 2.111670 2.218750 +v 0.000000 2.111670 2.500000 +vt 0.033582 0.955224 +vt 0.005597 1.000000 +vt 0.000000 0.955224 +vt 0.061567 1.000000 +vt 0.039179 1.000000 +vt 0.100746 0.955224 +vt 0.072761 1.000000 +vt 0.067164 0.955224 +vt 0.134328 0.955224 +vt 0.106343 1.000000 +vt 0.167910 0.955224 +vt 0.139925 1.000000 +vt 0.201493 0.955224 +vt 0.173507 1.000000 +vt 0.229478 1.000000 +vt 0.207089 1.000000 +vt 0.235075 0.955224 +vt 0.263060 1.000000 +vt 0.240672 1.000000 +vt 0.302239 0.955224 +vt 0.274254 1.000000 +vt 0.268657 0.955224 +vt 0.335821 0.955224 +vt 0.307836 1.000000 +vt 0.369403 0.955224 +vt 0.341418 1.000000 +vt 0.402985 0.955224 +vt 0.375000 1.000000 +vt 0.436567 0.955224 +vt 0.408582 1.000000 +vt 0.470149 0.955224 +vt 0.442164 1.000000 +vt 0.503731 0.955224 +vt 0.475746 1.000000 +vt 0.537313 0.955224 +vt 0.509328 1.000000 +vt 0.570895 0.955224 +vt 0.542910 1.000000 +vt 0.604478 0.955224 +vt 0.576492 1.000000 +vt 0.638060 0.955224 +vt 0.610075 1.000000 +vt 0.671642 0.955224 +vt 0.643657 1.000000 +vt 0.705224 0.955224 +vt 0.677239 1.000000 +vt 0.738806 0.955224 +vt 0.710821 1.000000 +vt 0.766791 1.000000 +vt 0.744403 1.000000 +vt 0.805970 0.955224 +vt 0.777986 1.000000 +vt 0.772388 0.955224 +vt 0.201493 0.895522 +vt 0.179104 0.925373 +vt 0.201493 0.925373 +vt 0.223881 0.895522 +vt 0.223881 0.925373 +vt 0.567164 0.902985 +vt 0.597015 0.925373 +vt 0.567164 0.925373 +vt 0.597015 0.880597 +vt 0.567164 0.880597 +vt 0.567164 0.902985 +vt 0.537313 0.925373 +vt 0.537313 0.902985 +vt 0.537313 0.880597 +vt 0.566630 0.343284 +vt 0.563619 0.322787 +vt 0.574627 0.313433 +vt 0.563619 0.280571 +vt 0.566630 0.283582 +vt 0.555892 0.293953 +vt 0.555892 0.309405 +vt 0.545310 0.283582 +vt 0.548321 0.304079 +vt 0.537312 0.313433 +vt 0.556049 0.317459 +vt 0.548321 0.346295 +vt 0.545310 0.343284 +vt 0.556047 0.332913 +vt 0.637981 0.779028 +vt 0.637981 0.794480 +vt 0.556049 0.802535 +vt 0.619403 0.876866 +vt 0.611940 0.880597 +vt 0.619403 0.880597 +vt 0.604478 0.876866 +vt 0.597015 0.880597 +vt 0.604478 0.880597 +vt 0.626866 0.876866 +vt 0.626866 0.880597 +vt 0.611940 0.876866 +vt 0.641791 0.876866 +vt 0.634328 0.880597 +vt 0.641791 0.880597 +vt 0.634328 0.876866 +vt 0.619403 0.876866 +vt 0.611940 0.880597 +vt 0.619403 0.880597 +vt 0.604478 0.876866 +vt 0.597015 0.880597 +vt 0.604478 0.880597 +vt 0.626866 0.876866 +vt 0.626866 0.880597 +vt 0.611940 0.876866 +vt 0.641791 0.876866 +vt 0.634328 0.880597 +vt 0.641791 0.880597 +vt 0.634328 0.876866 +vt 0.600746 0.872135 +vt 0.600746 0.859209 +vt 0.611940 0.865672 +vt 0.619403 0.876866 +vt 0.611940 0.880597 +vt 0.619403 0.880597 +vt 0.604478 0.876866 +vt 0.597015 0.880597 +vt 0.604478 0.880597 +vt 0.626866 0.876866 +vt 0.626866 0.880597 +vt 0.611940 0.876866 +vt 0.641791 0.876866 +vt 0.634328 0.880597 +vt 0.641791 0.880597 +vt 0.634328 0.876866 +vt 0.600746 0.872135 +vt 0.600746 0.859209 +vt 0.611940 0.865672 +vt 0.027985 1.000000 +vt 0.095149 1.000000 +vt 0.128731 1.000000 +vt 0.162313 1.000000 +vt 0.195895 1.000000 +vt 0.296642 1.000000 +vt 0.330224 1.000000 +vt 0.363807 1.000000 +vt 0.397388 1.000000 +vt 0.430970 1.000000 +vt 0.464552 1.000000 +vt 0.498134 1.000000 +vt 0.531716 1.000000 +vt 0.565298 1.000000 +vt 0.598881 1.000000 +vt 0.632463 1.000000 +vt 0.666045 1.000000 +vt 0.699627 1.000000 +vt 0.733209 1.000000 +vt 0.800373 1.000000 +vt 0.179104 0.895522 +vt 0.597015 0.902985 +vt 0.567164 0.925373 +vt 0.567164 0.880597 +vt 0.597015 0.858209 +vt 0.567164 0.850210 +vt 0.556049 0.817987 +vt 0.564153 0.847200 +vt 0.548323 0.831369 +vt 0.548323 0.789154 +vt 0.567164 0.746804 +vt 0.545312 0.768657 +vt 0.626866 0.850210 +vt 0.645707 0.807861 +vt 0.648718 0.828358 +vt 0.597015 0.738806 +vt 0.626866 0.746804 +vt 0.629876 0.749815 +vt 0.645707 0.765646 +vt 0.597015 0.876866 +vt 0.597015 0.876866 +vt 0.608209 0.872135 +vt 0.597015 0.865672 +vt 0.608209 0.859209 +vt 0.597015 0.876866 +vt 0.608209 0.872135 +vt 0.597015 0.865672 +vt 0.608209 0.859209 +vt 0.033582 0.925373 +vt 0.000000 0.925373 +vt 0.268657 0.925373 +vt 0.235075 0.925373 +vt 0.503731 0.925373 +vt 0.470149 0.925373 +vt 0.805970 0.925373 +vt 0.772388 0.925373 +vt 0.201493 0.925373 +vt 0.436567 0.925373 +vt 0.738806 0.925373 +vt 0.167910 0.925373 +vt 0.402985 0.925373 +vt 0.705224 0.925373 +vt 0.134328 0.925373 +vt 0.369403 0.925373 +vt 0.671642 0.925373 +vt 0.100746 0.925373 +vt 0.335821 0.925373 +vt 0.638060 0.925373 +vt 0.604478 0.925373 +vt 0.570895 0.925373 +vt 0.067164 0.925373 +vt 0.302239 0.925373 +vt 0.537313 0.925373 +vt 0.313433 0.925373 +vt 0.291045 0.895522 +vt 0.291045 0.925373 +vt 0.156716 0.925373 +vt 0.134328 0.895522 +vt 0.134328 0.925373 +vt 0.537313 0.925373 +vt 0.514925 0.895522 +vt 0.514925 0.925373 +vt 0.335821 0.925373 +vt 0.313433 0.895522 +vt 0.156716 0.895522 +vt 0.022388 0.925373 +vt 0.000000 0.895522 +vt 0.000000 0.925373 +vt 0.358209 0.925373 +vt 0.335821 0.895522 +vt 0.044776 0.925373 +vt 0.022388 0.895522 +vt 0.380597 0.925373 +vt 0.358209 0.895522 +vt 0.425373 0.925373 +vt 0.402985 0.895522 +vt 0.402985 0.925373 +vt 0.067164 0.925373 +vt 0.044776 0.895522 +vt 0.380597 0.895522 +vt 0.447761 0.925373 +vt 0.425373 0.895522 +vt 0.246269 0.925373 +vt 0.089552 0.925373 +vt 0.067164 0.895522 +vt 0.268657 0.925373 +vt 0.246269 0.895522 +vt 0.111940 0.925373 +vt 0.089552 0.895522 +vt 0.268657 0.895522 +vt 0.111940 0.895522 +vt 0.492537 0.895522 +vt 0.492537 0.925373 +vt 0.720149 0.902985 +vt 0.690298 0.925373 +vt 0.690298 0.902985 +vt 0.660448 0.925373 +vt 0.660448 0.921642 +vt 0.690298 0.902985 +vt 0.660448 0.902985 +vt 0.660448 0.899254 +vt 0.750000 0.902985 +vt 0.720149 0.925373 +vt 0.567164 0.876866 +vt 0.537313 0.858209 +vt 0.630597 0.880597 +vt 0.660448 0.880597 +vt 0.750000 0.880597 +vt 0.720149 0.902985 +vt 0.720149 0.880597 +vt 0.630597 0.921642 +vt 0.660448 0.902985 +vt 0.690298 0.880597 +vt 0.600746 0.899254 +vt 0.600746 0.880597 +vt 0.597015 0.880597 +vt 0.597015 0.899254 +vt 0.567164 0.858209 +vt 0.597015 0.858209 +vt 0.597015 0.876866 +vt 0.753731 0.902985 +vt 0.750000 0.902985 +vt 0.600746 0.902985 +vt 0.600746 0.921642 +vt 0.470149 0.925373 +vt 0.470149 0.895522 +vt 0.597015 0.921642 +vt 0.597015 0.902985 +vt 0.750000 0.925373 +vt 0.753731 0.902985 +vt 0.753731 0.925373 +vt 0.597015 0.902985 +vt 0.611940 0.899254 +vt 0.611940 0.902985 +vt 0.626866 0.902985 +vt 0.626866 0.899254 +vt 0.641791 0.902985 +vt 0.641791 0.899254 +vt 0.641791 0.925373 +vt 0.626866 0.925373 +vt 0.641791 0.921642 +vt 0.611940 0.925373 +vt 0.626866 0.921642 +vt 0.597015 0.925373 +vt 0.619403 0.873134 +vt 0.611940 0.873134 +vt 0.634328 0.873134 +vt 0.597015 0.873134 +vt 0.626866 0.873134 +vt 0.604478 0.873134 +vt 0.617537 0.858709 +vt 0.619403 0.861940 +vt 0.613806 0.865172 +vt 0.537313 0.895522 +vt 0.447761 0.895522 +vt 0.567164 0.858209 +vt 0.630597 0.899254 +vt 0.630597 0.902985 +vt 0.753731 0.880597 +vt 0.611940 0.921642 +vt 0.641791 0.873134 +vt 0.617537 0.865172 +vt 0.611940 0.861940 +vt 0.613806 0.858709 +vn 0.0000 1.0000 0.0000 +vn -0.7934 0.0000 0.6088 +vn -0.6088 0.0000 0.7934 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.8660 0.0000 -0.5000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.8660 0.0000 0.5000 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.2588 0.0000 0.9659 +vn 0.9659 0.0000 -0.2588 +vn -0.5000 0.0000 -0.8660 +vn -0.2588 0.0000 0.9659 +vn 1.0000 0.0000 -0.0000 +vn -0.2588 0.0000 -0.9659 +vn -0.5000 0.0000 0.8660 +vn 0.9659 0.0000 0.2588 +vn -0.7071 0.0000 0.7071 +vn 0.2588 0.0000 -0.9659 +vn 0.5000 0.0000 -0.8660 +vn -0.9659 0.0000 0.2588 +vn -1.0000 0.0000 -0.0000 +vn -0.9659 0.0000 -0.2588 +vn 0.5000 0.0000 0.8660 +vn 0.7071 0.0000 -0.7071 +vn -0.9239 0.0000 0.3827 +vn -0.3827 0.0000 0.9239 +vn 0.3144 0.0000 0.9493 +vn 0.4129 0.0000 0.9108 +vn -0.3144 0.0000 -0.9493 +vn -0.4129 0.0000 -0.9108 +vn 0.6430 0.0000 0.7659 +vn -0.6430 0.0000 -0.7659 +vn -0.6088 0.0000 -0.7934 +vn 0.3285 0.0000 -0.9445 +vn -0.3285 0.0000 0.9445 +vn 0.6088 0.0000 0.7934 +vn -0.3536 0.7071 -0.6124 +vn 0.2400 0.8773 -0.4156 +vn 0.3536 0.7071 -0.6124 +vn 0.4799 0.8773 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.3536 0.7071 0.6124 +vn -0.4799 0.8773 -0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.3536 0.7071 0.6124 +vn -0.2400 0.8773 0.4157 +vn -0.2400 0.8773 -0.4156 +vn 0.2400 0.8773 0.4157 +s off +f 1/1/1 2/2/1 3/3/1 +f 1/1/1 4/4/1 5/5/1 +f 6/6/1 4/7/1 7/8/1 +f 8/9/1 9/10/1 6/6/1 +f 10/11/1 11/12/1 8/9/1 +f 12/13/1 13/14/1 10/11/1 +f 12/13/1 14/15/1 15/16/1 +f 16/17/1 17/18/1 14/19/1 +f 18/20/1 17/21/1 19/22/1 +f 20/23/1 21/24/1 18/20/1 +f 22/25/1 23/26/1 20/23/1 +f 24/27/1 25/28/1 22/25/1 +f 26/29/1 27/30/1 24/27/1 +f 28/31/1 29/32/1 26/29/1 +f 30/33/1 31/34/1 28/31/1 +f 32/35/1 33/36/1 30/33/1 +f 34/37/1 35/38/1 32/35/1 +f 36/39/1 37/40/1 34/37/1 +f 38/41/1 39/42/1 36/39/1 +f 40/43/1 41/44/1 38/41/1 +f 42/45/1 43/46/1 40/43/1 +f 44/47/1 45/48/1 42/45/1 +f 44/47/1 46/49/1 47/50/1 +f 3/51/1 46/52/1 48/53/1 +f 49/54/2 17/55/2 21/56/2 +f 50/57/3 21/56/3 23/58/3 +f 51/59/4 52/60/4 53/61/4 +f 54/62/1 51/59/1 55/63/1 +f 56/64/5 57/65/5 58/66/5 +f 59/67/1 56/64/1 58/66/1 +f 60/68/1 61/69/1 62/70/1 +f 63/71/1 64/72/1 65/73/1 +f 62/70/1 65/73/1 64/72/1 +f 66/74/1 62/70/1 61/69/1 +f 67/75/1 68/76/1 69/77/1 +f 70/78/1 69/77/1 68/76/1 +f 71/79/1 72/80/1 73/81/1 +f 69/77/1 73/81/1 72/80/1 +f 74/82/1 75/83/1 76/84/1 +f 77/85/6 78/86/6 79/87/6 +f 80/88/7 81/89/7 82/90/7 +f 83/91/8 79/87/8 84/92/8 +f 85/93/9 82/90/9 78/86/9 +f 86/94/10 87/95/10 81/96/10 +f 88/97/11 84/92/11 87/95/11 +f 89/98/6 90/99/6 91/100/6 +f 92/101/7 93/102/7 94/103/7 +f 95/104/8 91/100/8 96/105/8 +f 97/106/9 94/103/9 90/99/9 +f 98/107/10 99/108/10 93/109/10 +f 100/110/11 96/105/11 99/108/11 +f 92/111/1 89/112/1 100/113/1 +f 101/114/6 102/115/6 103/116/6 +f 104/117/7 105/118/7 106/119/7 +f 107/120/8 103/116/8 108/121/8 +f 109/122/9 106/119/9 102/115/9 +f 110/123/10 111/124/10 105/125/10 +f 112/126/11 108/121/11 111/124/11 +f 104/127/1 101/128/1 112/129/1 +f 1/1/1 5/130/1 2/2/1 +f 1/1/1 7/8/1 4/4/1 +f 6/6/1 9/131/1 4/7/1 +f 8/9/1 11/132/1 9/10/1 +f 10/11/1 13/133/1 11/12/1 +f 12/13/1 15/134/1 13/14/1 +f 12/13/1 16/17/1 14/15/1 +f 16/17/1 19/22/1 17/18/1 +f 18/20/1 21/135/1 17/21/1 +f 20/23/1 23/136/1 21/24/1 +f 22/25/1 25/137/1 23/26/1 +f 24/27/1 27/138/1 25/28/1 +f 26/29/1 29/139/1 27/30/1 +f 28/31/1 31/140/1 29/32/1 +f 30/33/1 33/141/1 31/34/1 +f 32/35/1 35/142/1 33/36/1 +f 34/37/1 37/143/1 35/38/1 +f 36/39/1 39/144/1 37/40/1 +f 38/41/1 41/145/1 39/42/1 +f 40/43/1 43/146/1 41/44/1 +f 42/45/1 45/147/1 43/46/1 +f 44/47/1 47/148/1 45/48/1 +f 44/47/1 48/53/1 46/49/1 +f 3/51/1 2/149/1 46/52/1 +f 49/54/2 113/150/2 17/55/2 +f 50/57/3 49/54/3 21/56/3 +f 51/59/4 114/151/4 52/60/4 +f 54/62/1 114/151/1 51/59/1 +f 56/64/5 115/152/5 57/65/5 +f 59/67/1 116/153/1 56/64/1 +f 62/70/1 66/74/1 65/73/1 +f 69/77/1 70/78/1 73/81/1 +f 117/154/1 118/155/1 119/156/1 +f 118/155/1 56/157/1 119/156/1 +f 56/157/1 116/158/1 119/156/1 +f 76/84/1 120/159/1 121/160/1 +f 120/159/1 122/161/1 121/160/1 +f 119/156/1 76/84/1 75/83/1 +f 117/154/1 119/156/1 75/83/1 +f 123/162/1 117/154/1 75/83/1 +f 124/163/1 125/164/1 123/162/1 +f 75/83/1 124/163/1 123/162/1 +f 121/160/1 126/165/1 76/84/1 +f 126/165/1 127/166/1 74/82/1 +f 76/84/1 126/165/1 74/82/1 +f 127/166/1 114/167/1 74/82/1 +f 114/167/1 54/168/1 74/82/1 +f 77/85/6 85/93/6 78/86/6 +f 80/88/7 86/169/7 81/89/7 +f 83/91/8 77/85/8 79/87/8 +f 85/93/9 80/88/9 82/90/9 +f 86/94/10 88/97/10 87/95/10 +f 88/97/11 83/91/11 84/92/11 +f 89/98/6 97/106/6 90/99/6 +f 92/101/7 98/170/7 93/102/7 +f 95/104/8 89/98/8 91/100/8 +f 97/106/9 92/101/9 94/103/9 +f 98/107/10 100/110/10 99/108/10 +f 100/110/11 95/104/11 96/105/11 +f 100/113/1 98/171/1 92/111/1 +f 92/111/1 97/172/1 89/112/1 +f 89/112/1 95/173/1 100/113/1 +f 101/114/6 109/122/6 102/115/6 +f 104/117/7 110/174/7 105/118/7 +f 107/120/8 101/114/8 103/116/8 +f 109/122/9 104/117/9 106/119/9 +f 110/123/10 112/126/10 111/124/10 +f 112/126/11 107/120/11 108/121/11 +f 112/129/1 110/175/1 104/127/1 +f 104/127/1 109/176/1 101/128/1 +f 101/128/1 107/177/1 112/129/1 +s 1 +f 128/178/12 3/3/7 129/179/7 +f 130/180/6 16/17/13 131/181/13 +f 132/182/5 28/31/14 133/183/14 +f 129/184/7 48/53/15 134/185/15 +f 131/181/13 12/13/16 135/186/16 +f 133/183/14 26/29/17 136/187/17 +f 134/185/15 44/47/18 137/188/18 +f 135/186/16 10/11/19 138/189/19 +f 136/187/17 24/27/8 139/190/8 +f 137/188/18 42/45/20 140/191/20 +f 138/189/19 8/9/9 141/192/9 +f 139/190/8 22/25/21 142/193/21 +f 140/191/20 40/43/10 143/194/10 +f 141/192/9 6/6/4 144/195/4 +f 142/193/21 20/23/22 145/196/22 +f 143/194/10 38/41/23 146/197/23 +f 147/198/24 34/37/25 148/199/25 +f 144/195/4 7/8/26 149/200/26 +f 145/196/22 18/20/27 150/201/27 +f 146/197/23 36/39/24 147/198/24 +f 148/199/25 32/35/11 151/202/11 +f 149/200/26 1/1/12 128/178/12 +f 150/201/27 19/22/6 130/180/6 +f 151/202/11 30/33/5 132/182/5 +f 31/203/26 152/204/12 29/205/12 +f 14/206/23 153/207/24 15/208/24 +f 2/209/8 154/210/21 46/211/21 +f 33/212/4 155/213/26 31/203/26 +f 17/55/28 156/214/23 14/206/23 +f 5/215/17 157/216/8 2/217/8 +f 35/218/9 158/219/4 33/212/4 +f 4/220/14 159/221/17 5/215/17 +f 37/222/19 160/223/9 35/218/9 +f 41/224/13 161/225/16 39/226/16 +f 9/227/5 162/228/14 4/220/14 +f 39/226/16 163/229/19 37/222/19 +f 43/230/6 164/231/13 41/224/13 +f 25/232/15 50/57/29 23/58/29 +f 11/233/11 165/234/5 9/227/5 +f 27/235/7 166/236/15 25/232/15 +f 13/237/25 167/238/11 11/233/11 +f 29/205/12 168/239/7 27/235/7 +f 15/208/24 169/240/25 13/237/25 +f 46/211/21 170/241/22 47/242/22 +f 171/243/16 121/244/9 172/245/9 +f 121/244/9 122/246/30 67/247/31 +f 123/248/11 125/249/32 60/250/33 +f 173/251/6 126/252/16 171/243/16 +f 71/253/34 59/67/4 174/254/4 +f 60/250/33 175/255/8 176/256/14 +f 177/257/10 117/258/24 178/259/24 +f 69/260/7 179/261/26 67/247/31 +f 178/259/24 123/248/11 180/262/11 +f 175/255/8 64/263/22 181/264/22 +f 182/265/27 64/263/22 63/266/27 +f 183/267/5 182/268/5 63/269/35 +f 177/257/10 56/270/20 118/271/10 +f 184/272/18 69/260/7 72/273/18 +f 45/274/27 170/241/22 185/275/27 +f 185/275/27 43/230/6 45/274/27 +f 184/272/18 71/276/20 186/277/20 +f 127/278/6 52/279/27 114/280/27 +f 54/281/36 65/282/17 74/283/17 +f 75/284/21 65/282/17 66/285/21 +f 124/286/37 66/285/21 61/287/37 +f 124/286/37 60/250/33 125/249/32 +f 120/288/38 67/247/31 122/246/30 +f 76/289/15 68/290/38 120/288/38 +f 119/291/12 70/292/15 76/289/15 +f 71/276/34 119/291/12 116/293/39 +f 83/91/40 187/294/41 77/85/42 +f 77/85/42 188/295/43 85/93/44 +f 86/94/45 189/296/46 88/97/47 +f 80/88/48 190/297/49 86/169/45 +f 83/91/40 189/296/46 191/298/50 +f 85/93/44 192/299/51 80/88/48 +f 191/300/50 189/301/46 192/302/51 +f 128/178/12 1/1/12 3/3/7 +f 130/180/6 19/22/6 16/17/13 +f 132/182/5 30/33/5 28/31/14 +f 129/184/7 3/51/7 48/53/15 +f 131/181/13 16/17/13 12/13/16 +f 133/183/14 28/31/14 26/29/17 +f 134/185/15 48/53/15 44/47/18 +f 135/186/16 12/13/16 10/11/19 +f 136/187/17 26/29/17 24/27/8 +f 137/188/18 44/47/18 42/45/20 +f 138/189/19 10/11/19 8/9/9 +f 139/190/8 24/27/8 22/25/21 +f 140/191/20 42/45/20 40/43/10 +f 141/192/9 8/9/9 6/6/4 +f 142/193/21 22/25/21 20/23/22 +f 143/194/10 40/43/10 38/41/23 +f 147/198/24 36/39/24 34/37/25 +f 144/195/4 6/6/4 7/8/26 +f 145/196/22 20/23/22 18/20/27 +f 146/197/23 38/41/23 36/39/24 +f 148/199/25 34/37/25 32/35/11 +f 149/200/26 7/8/26 1/1/12 +f 150/201/27 18/20/27 19/22/6 +f 151/202/11 32/35/11 30/33/5 +f 31/203/26 155/213/26 152/204/12 +f 14/206/23 156/214/23 153/207/24 +f 2/209/8 157/303/8 154/210/21 +f 33/212/4 158/219/4 155/213/26 +f 17/55/28 113/150/28 156/214/23 +f 5/215/17 159/221/17 157/216/8 +f 35/218/9 160/223/9 158/219/4 +f 4/220/14 162/228/14 159/221/17 +f 37/222/19 163/229/19 160/223/9 +f 41/224/13 164/231/13 161/225/16 +f 9/227/5 165/234/5 162/228/14 +f 39/226/16 161/225/16 163/229/19 +f 43/230/6 193/304/6 164/231/13 +f 25/232/15 166/236/15 50/57/29 +f 11/233/11 167/238/11 165/234/5 +f 27/235/7 168/239/7 166/236/15 +f 13/237/25 169/240/25 167/238/11 +f 29/205/12 152/204/12 168/239/7 +f 15/208/24 153/207/24 169/240/25 +f 46/211/21 154/210/21 170/241/22 +f 171/243/16 126/252/16 121/244/9 +f 179/261/26 172/245/9 67/247/31 +f 172/245/9 121/244/9 67/247/31 +f 60/250/33 176/256/14 180/262/11 +f 180/262/11 123/248/11 60/250/33 +f 173/251/6 127/278/6 126/252/16 +f 174/254/4 186/305/4 71/253/34 +f 71/253/34 116/153/39 59/67/4 +f 60/250/33 62/306/8 175/255/8 +f 177/257/10 118/271/10 117/258/24 +f 69/260/7 194/307/7 179/261/26 +f 178/259/24 117/258/24 123/248/11 +f 175/255/8 62/306/8 64/263/22 +f 182/265/27 181/264/22 64/263/22 +f 63/269/35 54/62/36 55/63/5 +f 55/63/5 183/267/5 63/269/35 +f 177/257/10 115/308/20 56/270/20 +f 184/272/18 194/307/7 69/260/7 +f 45/274/27 47/242/22 170/241/22 +f 185/275/27 193/304/6 43/230/6 +f 184/272/18 72/273/18 71/276/20 +f 127/278/6 173/251/6 52/279/27 +f 54/281/36 63/266/35 65/282/17 +f 75/284/21 74/283/17 65/282/17 +f 124/286/37 75/284/21 66/285/21 +f 124/286/37 61/287/37 60/250/33 +f 120/288/38 68/290/38 67/247/31 +f 76/289/15 70/292/15 68/290/38 +f 119/291/12 73/309/12 70/292/15 +f 71/276/34 73/309/12 119/291/12 +f 83/91/40 191/298/50 187/294/41 +f 77/85/42 187/294/41 188/295/43 +f 86/94/45 190/310/49 189/296/46 +f 80/88/48 192/299/51 190/297/49 +f 83/91/40 88/97/47 189/296/46 +f 85/93/44 188/295/43 192/299/51 +f 189/301/46 190/311/49 192/302/51 +f 192/302/51 188/312/43 187/313/41 +f 187/313/41 191/300/50 192/302/51 +o MagPlate +v -0.239382 2.111670 3.718485 +v -0.239382 2.111670 3.780985 +v 0.239382 2.111670 3.718485 +v -1.590990 2.049170 3.090990 +v -1.948557 2.049170 2.625000 +v -0.239382 2.049170 3.718485 +v 0.239382 2.049170 3.780985 +v 0.239382 2.049170 3.718485 +v 0.239382 2.111670 3.780985 +v -0.239382 2.049170 3.780985 +v 0.582343 2.111670 3.673333 +v 1.125000 2.111670 3.448557 +v 1.590990 2.111670 3.090990 +v 1.948557 2.111670 2.625000 +v 2.173333 2.111670 2.082343 +v 2.250000 2.111670 1.500000 +v 2.173333 2.111670 0.917657 +v 1.948557 2.111670 0.375000 +v 1.590990 2.111670 -0.090990 +v 1.125000 2.111670 -0.448557 +v 0.582343 2.111670 -0.673333 +v 0.000000 2.111670 -0.750000 +v -0.582343 2.111670 -0.673333 +v -1.125000 2.111670 -0.448557 +v -1.590990 2.111670 -0.090991 +v -1.948557 2.111670 0.375000 +v -2.173333 2.111670 0.917658 +v -2.250000 2.111670 1.500000 +v -2.173333 2.111670 2.082343 +v -1.948557 2.111670 2.625000 +v -1.590990 2.111670 3.090990 +v -1.125000 2.111670 3.448557 +v -0.582343 2.111670 3.673333 +v -0.582343 2.049170 3.673333 +v -1.125000 2.049170 3.448557 +v 1.125000 2.049170 3.448557 +v 0.582343 2.049170 3.673333 +v 1.948557 2.049170 2.625000 +v 1.590990 2.049170 3.090990 +v 2.250000 2.049170 1.500000 +v 2.173333 2.049170 2.082343 +v 1.948557 2.049170 0.375000 +v 2.173333 2.049170 0.917657 +v 1.125000 2.049170 -0.448557 +v 1.590990 2.049170 -0.090990 +v 0.000000 2.049170 -0.750000 +v 0.582343 2.049170 -0.673333 +v -1.125000 2.049170 -0.448557 +v -0.582343 2.049170 -0.673333 +v -1.948557 2.049170 0.375000 +v -1.590990 2.049170 -0.090991 +v -2.250000 2.049170 1.500000 +v -2.173333 2.049170 0.917658 +v -2.173333 2.049170 2.082343 +vt 0.148620 0.891768 +vt 0.148620 0.895526 +vt 0.120037 0.891768 +vt 0.308001 0.854042 +vt 0.286653 0.826028 +vt 0.388694 0.891765 +vt 0.022388 0.619403 +vt 0.018657 0.623134 +vt 0.022388 0.623134 +vt 0.018657 0.619403 +vt 0.000000 0.623134 +vt 0.391791 0.615672 +vt 0.388060 0.619403 +vt 0.391791 0.619403 +vt 0.120037 0.895526 +vt 0.099562 0.889054 +vt 0.067164 0.875541 +vt 0.039344 0.854046 +vt 0.017997 0.826032 +vt 0.004577 0.793409 +vt 0.000000 0.758400 +vt 0.004577 0.723392 +vt 0.017997 0.690770 +vt 0.039344 0.662756 +vt 0.067164 0.641260 +vt 0.099562 0.627747 +vt 0.134328 0.623138 +vt 0.169095 0.627747 +vt 0.201493 0.641260 +vt 0.229313 0.662756 +vt 0.250660 0.690770 +vt 0.264080 0.723392 +vt 0.268657 0.758403 +vt 0.264080 0.793409 +vt 0.250660 0.826032 +vt 0.229313 0.854046 +vt 0.201493 0.875541 +vt 0.169095 0.889054 +vt 0.417277 0.891765 +vt 0.417276 0.895522 +vt 0.388694 0.895522 +vt 0.368218 0.889050 +vt 0.335821 0.875538 +vt 0.470149 0.875538 +vt 0.437752 0.889050 +vt 0.519317 0.826028 +vt 0.497970 0.854042 +vt 0.537313 0.758398 +vt 0.532736 0.793405 +vt 0.519317 0.690766 +vt 0.532736 0.723389 +vt 0.470149 0.641256 +vt 0.497970 0.662752 +vt 0.402985 0.623134 +vt 0.437752 0.627744 +vt 0.335821 0.641256 +vt 0.368218 0.627744 +vt 0.286653 0.690766 +vt 0.308001 0.662752 +vt 0.268657 0.758395 +vt 0.273234 0.723389 +vt 0.273234 0.793405 +vt 0.000000 0.619403 +vt 0.388060 0.615672 +vt 0.302239 0.615672 +vt 0.268657 0.619403 +vt 0.302239 0.619403 +vt 0.410448 0.619403 +vt 0.376866 0.623134 +vt 0.410448 0.623134 +vt 0.175373 0.619403 +vt 0.141791 0.623134 +vt 0.175373 0.623134 +vt 0.335821 0.615672 +vt 0.335821 0.619403 +vt 0.033582 0.615672 +vt -0.000000 0.619403 +vt 0.033582 0.619403 +vt 0.208955 0.619403 +vt 0.208955 0.623134 +vt 0.369403 0.615672 +vt 0.369403 0.619403 +vt 0.067164 0.615672 +vt 0.067164 0.619403 +vt 0.242537 0.619403 +vt 0.242537 0.623134 +vt 0.100746 0.615672 +vt 0.100746 0.619403 +vt 0.276119 0.619403 +vt 0.276119 0.623134 +vt 0.041045 0.619403 +vt 0.041045 0.623134 +vt 0.134328 0.615672 +vt 0.134328 0.619403 +vt 0.309702 0.619403 +vt 0.309702 0.623134 +vt 0.074627 0.619403 +vt 0.074627 0.623134 +vt 0.167910 0.615672 +vt 0.167910 0.619403 +vt 0.235075 0.615672 +vt 0.201493 0.619403 +vt 0.235075 0.619403 +vt 0.343284 0.619403 +vt 0.343284 0.623134 +vt 0.108209 0.619403 +vt 0.108209 0.623134 +vt 0.201493 0.615672 +vt 0.268657 0.615672 +vt 0.376866 0.619403 +vt 0.141791 0.619403 +vt 0.000000 0.615672 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.8660 0.0000 0.5000 +vn -0.0000 0.0000 -1.0000 +vn 0.2588 0.0000 -0.9659 +vn 0.9659 0.0000 0.2588 +vn 0.8660 0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn -0.2588 0.0000 -0.9659 +vn -0.2588 0.0000 0.9659 +vn -0.5000 0.0000 -0.8660 +vn 0.9659 0.0000 -0.2588 +vn -0.7071 0.0000 -0.7071 +vn 0.8660 0.0000 -0.5000 +vn 0.2588 0.0000 0.9659 +vn 0.1305 0.0000 0.9914 +vn -0.8660 0.0000 -0.5000 +vn 0.7071 0.0000 -0.7071 +vn 0.5000 0.0000 0.8660 +vn -0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 0.2588 +vn 0.5000 0.0000 -0.8660 +vn -0.1305 0.0000 0.9914 +vn 0.7071 0.0000 0.7071 +s off +f 195/314/52 196/315/52 197/316/52 +f 198/317/53 199/318/53 200/319/53 +f 197/320/54 201/321/54 202/322/54 +f 203/323/55 204/324/55 201/321/55 +f 196/325/56 200/326/56 204/327/56 +f 196/315/52 203/328/52 197/316/52 +f 197/316/52 205/329/52 206/330/52 +f 206/330/52 207/331/52 197/316/52 +f 207/331/52 208/332/52 197/316/52 +f 208/332/52 209/333/52 197/316/52 +f 209/333/52 210/334/52 197/316/52 +f 210/334/52 211/335/52 197/316/52 +f 211/335/52 212/336/52 197/316/52 +f 212/336/52 213/337/52 197/316/52 +f 213/337/52 214/338/52 197/316/52 +f 214/338/52 215/339/52 197/316/52 +f 215/339/52 216/340/52 197/316/52 +f 197/316/52 216/340/52 195/314/52 +f 216/340/52 217/341/52 195/314/52 +f 217/341/52 218/342/52 195/314/52 +f 218/342/52 219/343/52 195/314/52 +f 219/343/52 220/344/52 195/314/52 +f 220/344/52 221/345/52 195/314/52 +f 221/345/52 222/346/52 195/314/52 +f 222/346/52 223/347/52 195/314/52 +f 223/347/52 224/348/52 195/314/52 +f 224/348/52 225/349/52 195/314/52 +f 225/349/52 226/350/52 195/314/52 +f 226/350/52 227/351/52 195/314/52 +f 202/352/53 201/353/53 204/354/53 +f 200/319/53 228/355/53 229/356/53 +f 202/352/53 204/354/53 200/319/53 +f 230/357/53 231/358/53 202/352/53 +f 232/359/53 233/360/53 202/352/53 +f 233/360/53 230/357/53 202/352/53 +f 234/361/53 235/362/53 202/352/53 +f 235/362/53 232/359/53 202/352/53 +f 236/363/53 237/364/53 202/352/53 +f 237/364/53 234/361/53 202/352/53 +f 238/365/53 239/366/53 202/352/53 +f 239/366/53 236/363/53 202/352/53 +f 240/367/53 241/368/53 202/352/53 +f 241/368/53 238/365/53 202/352/53 +f 242/369/53 243/370/53 200/319/53 +f 243/370/53 240/367/53 200/319/53 +f 200/319/53 240/367/53 202/352/53 +f 244/371/53 245/372/53 200/319/53 +f 245/372/53 242/369/53 200/319/53 +f 246/373/53 247/374/53 200/319/53 +f 247/374/53 244/371/53 200/319/53 +f 199/318/53 248/375/53 200/319/53 +f 248/375/53 246/373/53 200/319/53 +f 229/356/53 198/317/53 200/319/53 +f 197/320/54 203/323/54 201/321/54 +f 203/323/55 196/376/55 204/324/55 +f 196/325/56 195/377/56 200/326/56 +s 1 +f 225/378/57 199/379/58 198/380/57 +f 216/381/59 241/382/60 240/383/59 +f 209/384/61 232/385/62 235/386/61 +f 226/387/63 198/380/57 229/388/63 +f 217/389/64 240/390/59 243/391/64 +f 210/392/54 235/386/61 234/393/54 +f 227/394/65 229/388/63 228/395/65 +f 218/396/66 243/391/64 242/397/66 +f 211/398/67 234/393/54 237/399/67 +f 219/400/68 242/397/66 245/401/68 +f 212/402/69 237/399/67 236/403/69 +f 205/404/70 202/322/71 231/405/70 +f 220/406/72 245/401/68 244/407/72 +f 213/408/73 236/403/69 239/409/73 +f 206/410/74 231/405/70 230/411/74 +f 221/412/75 244/407/72 247/413/75 +f 223/414/76 246/415/56 248/416/76 +f 214/417/77 239/409/73 238/418/77 +f 195/377/78 228/395/65 200/326/78 +f 207/419/79 230/411/74 233/420/79 +f 222/421/56 247/413/75 246/415/56 +f 224/422/58 248/416/76 199/379/58 +f 215/423/60 238/418/77 241/382/60 +f 208/424/62 233/420/79 232/385/62 +f 225/378/57 224/422/58 199/379/58 +f 216/381/59 215/423/60 241/382/60 +f 209/384/61 208/424/62 232/385/62 +f 226/387/63 225/378/57 198/380/57 +f 217/389/64 216/425/59 240/390/59 +f 210/392/54 209/384/61 235/386/61 +f 227/394/65 226/387/63 229/388/63 +f 218/396/66 217/389/64 243/391/64 +f 211/398/67 210/392/54 234/393/54 +f 219/400/68 218/396/66 242/397/66 +f 212/402/69 211/398/67 237/399/67 +f 205/404/70 197/320/71 202/322/71 +f 220/406/72 219/400/68 245/401/68 +f 213/408/73 212/402/69 236/403/69 +f 206/410/74 205/404/70 231/405/70 +f 221/412/75 220/406/72 244/407/72 +f 223/414/76 222/421/56 246/415/56 +f 214/417/77 213/408/73 239/409/73 +f 195/377/78 227/394/65 228/395/65 +f 207/419/79 206/410/74 230/411/74 +f 222/421/56 221/412/75 247/413/75 +f 224/422/58 223/414/76 248/416/76 +f 215/423/60 214/417/77 238/418/77 +f 208/424/62 207/419/79 233/420/79 +o Silencer +v 0.000000 1.736670 16.750000 +v -0.088388 1.773282 11.875000 +v -0.088388 1.773282 16.750000 +v 0.125000 1.861670 16.750000 +v 0.088388 1.773282 11.875000 +v 0.088388 1.773282 16.750000 +v 0.000000 1.986670 16.750000 +v 0.088388 1.950058 11.875000 +v 0.088388 1.950058 16.750000 +v -0.125000 1.861670 16.750000 +v -0.088388 1.950058 11.875000 +v -0.088388 1.950058 16.750000 +v -0.125000 1.861670 11.875000 +v 0.000000 1.736670 11.875000 +v 0.125000 1.861670 11.875000 +v 0.000000 1.986670 11.875000 +v -0.281250 2.348809 16.750000 +v -0.487139 2.142920 16.750000 +v -0.281250 1.374531 16.750000 +v 0.281250 1.374531 16.750000 +v 0.487139 1.580420 16.750000 +v 0.000000 1.299170 16.750000 +v 0.562500 1.861670 16.750000 +v 0.281250 2.348809 16.750000 +v 0.000000 2.424170 16.750000 +v -0.487139 1.580420 16.750000 +v -0.562500 1.861670 16.750000 +v 0.000000 2.424170 11.875000 +v 0.281250 2.348809 11.875000 +v -0.487139 1.580420 11.875000 +v -0.562500 1.861670 11.875000 +v -0.487139 2.142920 11.875000 +v 0.487139 1.580420 11.875000 +v 0.281250 1.374531 11.875000 +v 0.487139 2.142920 16.750000 +v 0.487139 2.142920 11.875000 +v -0.281250 2.348809 11.875000 +v 0.000000 1.299170 11.875000 +v 0.562500 1.861670 11.875000 +v -0.281250 1.374531 11.875000 +vt 0.287313 0.361940 +vt -0.000000 0.354478 +vt 0.287313 0.354478 +vt 0.287313 0.376866 +vt -0.000000 0.369403 +vt 0.287313 0.369403 +vt 0.287313 0.391791 +vt -0.000000 0.384328 +vt 0.287313 0.384328 +vt 0.287313 0.347015 +vt -0.000000 0.339552 +vt 0.287313 0.339552 +vt -0.000000 0.347015 +vt -0.000000 0.361940 +vt -0.000000 0.376866 +vt -0.000000 0.332090 +vt 0.287313 0.332090 +vt 0.026119 0.410448 +vt 0.026119 0.429104 +vt -0.000000 0.421642 +vt 0.026119 0.485075 +vt -0.000000 0.500000 +vt -0.000000 0.492537 +vt 0.026119 0.522388 +vt 0.026119 0.541045 +vt 0.000000 0.533582 +vt 0.000000 0.511194 +vt 0.026119 0.503731 +vt 0.000000 0.555970 +vt 0.026119 0.559702 +vt -0.000000 0.611940 +vt 0.026119 0.597015 +vt 0.026119 0.615672 +vt 0.000000 0.444030 +vt 0.000000 0.436567 +vt 0.000000 0.399254 +vt 0.026119 0.391791 +vt 0.026119 0.466418 +vt -0.000000 0.455224 +vt 0.026119 0.447761 +vt 0.313433 0.615672 +vt 0.313433 0.597015 +vt 0.313433 0.466418 +vt 0.313433 0.447761 +vt 0.313433 0.429104 +vt 0.313433 0.541045 +vt 0.313433 0.522388 +vt 0.026119 0.578358 +vt 0.313433 0.578358 +vt 0.313433 0.410448 +vt 0.313433 0.503731 +vt 0.313433 0.559702 +vt 0.313433 0.391791 +vt 0.313433 0.485075 +vt 0.376007 0.565419 +vt 0.376007 0.598760 +vt 0.347015 0.615672 +vt 0.000000 0.477612 +vt -0.000000 0.589552 +vt -0.000000 0.567164 +vt -0.000000 0.574627 +vt -0.000000 0.391791 +vt -0.000000 0.518657 +vt 0.000000 0.548507 +vt 0.000000 0.604478 +vt 0.000000 0.406716 +vt 0.000000 0.462687 +vt 0.330345 0.611081 +vt 0.318023 0.598760 +vt 0.313433 0.582090 +vt 0.318023 0.565419 +vt 0.330345 0.553098 +vt 0.347015 0.548507 +vt 0.363685 0.553098 +vt 0.380597 0.582090 +vt 0.363685 0.611081 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 0.0000 -1.0000 +s 1 +f 249/426/80 250/427/81 251/428/81 +f 252/429/82 253/430/83 254/431/83 +f 255/432/84 256/433/85 257/434/85 +f 258/435/86 259/436/87 260/437/87 +f 258/435/86 250/427/81 261/438/86 +f 254/431/83 262/439/80 249/426/80 +f 252/429/82 256/433/85 263/440/82 +f 260/437/87 264/441/84 255/442/84 +f 265/443/88 266/444/88 260/445/88 +f 267/446/88 249/447/88 251/448/88 +f 268/449/88 269/450/88 254/451/88 +f 268/449/88 249/452/88 270/453/88 +f 252/454/88 269/450/88 271/455/88 +f 255/456/88 272/457/88 273/458/88 +f 266/444/88 258/459/88 260/460/88 +f 265/443/88 255/461/88 273/462/88 +f 274/463/88 258/464/88 275/465/88 +f 276/466/80 272/457/89 277/467/89 +f 278/468/90 267/446/91 274/463/90 +f 279/469/82 266/444/92 280/470/92 +f 281/471/93 268/449/94 282/472/94 +f 277/467/89 283/473/95 284/474/95 +f 278/468/90 275/465/82 279/469/82 +f 280/470/92 265/443/96 285/475/96 +f 282/472/94 270/453/84 286/476/84 +f 284/474/95 271/455/86 287/477/86 +f 276/478/80 265/443/96 273/462/80 +f 286/476/84 267/446/91 288/479/91 +f 287/477/86 269/450/93 281/471/93 +f 282/480/97 288/481/97 279/482/97 +f 274/463/88 267/446/88 251/483/88 +f 283/473/88 272/457/88 257/484/88 +f 252/485/88 283/473/88 257/486/88 +f 249/426/80 262/439/80 250/427/81 +f 252/429/82 263/440/82 253/430/83 +f 255/432/84 264/487/84 256/433/85 +f 258/435/86 261/438/86 259/436/87 +f 258/435/86 251/428/81 250/427/81 +f 254/431/83 253/430/83 262/439/80 +f 252/429/82 257/434/85 256/433/85 +f 260/437/87 259/436/87 264/441/84 +f 267/446/88 270/453/88 249/447/88 +f 268/449/88 254/488/88 249/452/88 +f 252/454/88 254/489/88 269/450/88 +f 255/456/88 257/490/88 272/457/88 +f 266/444/88 275/465/88 258/459/88 +f 265/443/88 260/491/88 255/461/88 +f 274/463/88 251/492/88 258/464/88 +f 276/466/80 273/458/80 272/457/89 +f 278/468/90 288/479/91 267/446/91 +f 279/469/82 275/465/82 266/444/92 +f 281/471/93 269/450/93 268/449/94 +f 277/467/89 272/457/89 283/473/95 +f 278/468/90 274/463/90 275/465/82 +f 280/470/92 266/444/92 265/443/96 +f 282/472/94 268/449/94 270/453/84 +f 284/474/95 283/473/95 271/455/86 +f 276/478/80 285/475/96 265/443/96 +f 286/476/84 270/453/84 267/446/91 +f 287/477/86 271/455/86 269/450/93 +f 279/482/97 280/493/97 285/494/97 +f 285/494/97 276/495/97 277/496/97 +f 277/496/97 284/497/97 287/498/97 +f 287/498/97 281/499/97 277/496/97 +f 281/499/97 282/480/97 277/496/97 +f 282/480/97 286/500/97 288/481/97 +f 288/481/97 278/501/97 279/482/97 +f 279/482/97 285/494/97 282/480/97 +f 285/494/97 277/496/97 282/480/97 +f 252/485/88 271/455/88 283/473/88 +o Bolt +v 0.625000 1.745043 -1.673765 +v 0.625000 1.861670 -1.705015 +v 0.625000 1.947047 -1.619638 +v 0.375000 1.947047 -1.619638 +v 0.375000 1.915797 -1.503012 +v 0.375000 1.947047 -1.557138 +v 0.375000 1.745044 -1.503012 +v 0.375000 1.713794 -1.619638 +v 0.375000 1.713794 -1.557138 +v 0.625000 1.947047 -1.557138 +v 0.625000 1.915797 -1.503012 +v 0.625000 1.861670 -1.471762 +v 0.625000 1.799170 -1.471762 +v 0.625000 1.745043 -1.503012 +v 0.625000 1.713793 -1.557138 +v 0.625000 1.713793 -1.619638 +v 0.625000 1.799170 -1.705015 +v 0.625000 1.915797 -1.673765 +v 0.375000 1.915797 -1.673765 +v 0.375000 1.745044 -1.673765 +v 0.343750 1.986670 -3.250000 +v 0.375000 1.869253 -3.279029 +v 0.343750 1.895141 -3.341529 +v 0.343750 1.765699 -3.341529 +v 0.375000 1.791587 -3.279029 +v 0.343750 1.674170 -3.250000 +v 0.343750 1.674170 -1.312500 +v 0.375000 1.791587 -1.283471 +v 0.343750 1.765699 -1.220971 +v 0.375000 1.869253 -1.283471 +v 0.343750 1.895141 -1.220971 +v 0.343750 1.986670 -1.312500 +v 0.375000 1.924170 -1.338388 +v 0.375000 1.736670 -3.224112 +v 0.375000 1.736670 -1.338388 +v 0.375000 1.861670 -1.471762 +v 0.375000 1.799170 -1.705015 +v 0.375000 1.861670 -1.705015 +v 0.375000 1.799170 -1.471762 +v 0.375000 1.924170 -3.224112 +vt 0.595015 0.509462 +vt 0.587553 0.507463 +vt 0.582090 0.512926 +vt 0.597015 0.500000 +vt 0.593284 0.507463 +vt 0.597015 0.503731 +vt 0.593284 0.507463 +vt 0.589552 0.500000 +vt 0.589552 0.503731 +vt 0.582090 0.516925 +vt 0.584089 0.520388 +vt 0.587553 0.522388 +vt 0.591552 0.522388 +vt 0.595015 0.520388 +vt 0.597015 0.516925 +vt 0.597015 0.512926 +vt 0.591552 0.507463 +vt 0.584089 0.509462 +vt 0.593284 0.496269 +vt 0.593284 0.496269 +vt 0.570895 0.507463 +vt 0.567164 0.500000 +vt 0.570895 0.500000 +vt 0.570895 0.492537 +vt 0.567164 0.492537 +vt 0.570895 0.485075 +vt 0.570895 0.369403 +vt 0.567164 0.361940 +vt 0.570895 0.361940 +vt 0.567164 0.354478 +vt 0.570895 0.354478 +vt 0.570895 0.347015 +vt 0.567164 0.623134 +vt 0.570895 0.623134 +vt 0.567164 0.485075 +vt 0.574627 0.567164 +vt 0.582090 0.563433 +vt 0.570895 0.563433 +vt 0.597015 0.529851 +vt 0.582090 0.526119 +vt 0.582090 0.529851 +vt 0.597015 0.555970 +vt 0.582090 0.552239 +vt 0.582090 0.555970 +vt 0.597015 0.544776 +vt 0.582090 0.541045 +vt 0.582090 0.544776 +vt 0.597015 0.533582 +vt 0.582090 0.533582 +vt 0.597015 0.559702 +vt 0.582090 0.559702 +vt 0.597015 0.567164 +vt 0.582090 0.563433 +vt 0.582090 0.567164 +vt 0.597015 0.548507 +vt 0.582090 0.548507 +vt 0.597015 0.537313 +vt 0.582090 0.537313 +vt 0.597015 0.563433 +vt 0.597015 0.526119 +vt 0.582090 0.522388 +vt 0.597015 0.552239 +vt 0.597015 0.541045 +vt 0.582090 0.451493 +vt 0.574627 0.447761 +vt 0.578358 0.447761 +vt 0.567164 0.507463 +vt 0.567164 0.369403 +vt 0.567164 0.347015 +vt 0.578358 0.567164 +vt 0.597015 0.522388 +vt 0.570895 0.451493 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.9078 0.3874 -0.1605 +vn 0.9644 0.1012 -0.2444 +vn 0.9078 0.1605 -0.3874 +vn 0.9078 -0.1605 -0.3874 +vn 0.9644 -0.1012 -0.2444 +vn 0.9078 -0.3874 -0.1605 +vn 0.9078 -0.3874 0.1605 +vn 0.9644 -0.1012 0.2444 +vn 0.9078 -0.1605 0.3874 +vn 0.9644 0.1012 0.2444 +vn 0.9078 0.1605 0.3874 +vn 0.9078 0.3874 0.1605 +vn 0.9644 0.2444 0.1012 +vn 0.9644 -0.2444 -0.1012 +vn 0.9644 -0.2444 0.1012 +vn 0.0000 0.2588 0.9659 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.2588 -0.9659 +vn -0.0000 -0.9659 -0.2588 +vn -0.0000 -0.9659 0.2588 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9659 0.2588 +vn 0.0000 0.9659 -0.2588 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 -0.7071 0.7071 +vn 0.9644 0.2444 -0.1012 +s off +f 289/502/98 290/503/98 291/504/98 +f 292/505/99 293/506/99 294/507/99 +f 295/508/99 296/509/99 297/510/99 +f 291/504/98 298/511/98 299/512/98 +f 299/512/98 300/513/98 301/514/98 +f 301/514/98 302/515/98 289/502/98 +f 302/515/98 303/516/98 289/502/98 +f 303/516/98 304/517/98 289/502/98 +f 289/502/98 305/518/98 290/503/98 +f 290/503/98 306/519/98 291/504/98 +f 291/504/98 299/512/98 289/502/98 +f 299/512/98 301/514/98 289/502/98 +f 292/505/99 307/520/99 293/506/99 +f 295/508/99 308/521/99 296/509/99 +s 1 +f 309/522/100 310/523/101 311/524/102 +f 312/525/103 310/523/101 313/526/104 +f 313/526/104 314/527/105 312/525/103 +f 315/528/106 316/529/107 317/530/108 +f 317/530/108 318/531/109 319/532/110 +f 318/531/109 320/533/111 319/532/110 +f 321/534/112 309/522/100 320/535/111 +f 322/536/113 315/528/106 314/527/105 +f 318/537/109 323/538/114 321/539/112 +f 300/540/115 293/541/116 324/542/115 +f 290/543/117 325/544/118 326/545/117 +f 304/546/119 297/547/120 296/548/119 +f 301/549/121 324/542/115 327/550/121 +f 306/551/122 326/545/117 307/552/122 +f 298/553/123 292/554/124 294/555/123 +f 289/556/125 296/548/119 308/557/125 +f 302/558/126 327/550/121 295/559/126 +f 291/560/124 307/552/122 292/554/124 +f 299/561/116 294/562/123 293/541/116 +f 305/563/118 308/557/125 325/544/118 +f 303/564/120 295/559/126 297/547/120 +f 322/565/113 321/539/112 323/538/114 +f 310/566/101 322/565/113 313/567/104 +f 309/522/100 328/568/127 310/523/101 +f 312/525/103 311/524/102 310/523/101 +f 313/526/104 322/536/113 314/527/105 +f 315/528/106 323/569/114 316/529/107 +f 317/530/108 316/529/107 318/531/109 +f 318/531/109 321/570/112 320/533/111 +f 321/534/112 328/568/127 309/522/100 +f 322/536/113 323/569/114 315/528/106 +f 318/537/109 316/571/107 323/538/114 +f 300/540/115 299/561/116 293/541/116 +f 290/543/117 305/563/118 325/544/118 +f 304/546/119 303/564/120 297/547/120 +f 301/549/121 300/540/115 324/542/115 +f 306/551/122 290/543/117 326/545/117 +f 298/553/123 291/560/124 292/554/124 +f 289/556/125 304/546/119 296/548/119 +f 302/558/126 301/549/121 327/550/121 +f 291/560/124 306/551/122 307/552/122 +f 299/561/116 298/572/123 294/562/123 +f 305/563/118 289/556/125 308/557/125 +f 303/564/120 302/558/126 295/559/126 +f 322/565/113 328/573/127 321/539/112 +f 310/566/101 328/573/127 322/565/113 +o Trigger +v 0.125000 0.528950 -1.431801 +v 0.125000 0.562727 -1.589303 +v 0.125000 0.600647 -1.534195 +v 0.125000 0.754238 -1.641741 +v -0.125000 0.600647 -1.534195 +v -0.125000 0.562727 -1.589303 +v -0.125000 0.528950 -1.431801 +v -0.125000 0.754238 -1.641741 +v 0.125000 0.754238 -1.750000 +v 0.125000 0.941738 -1.641741 +v 0.125000 0.861670 -1.812500 +v 0.125000 1.111670 -1.562500 +v -0.125000 0.941738 -1.641741 +v -0.125000 0.754238 -1.750000 +v -0.125000 0.861670 -1.812500 +v -0.125000 1.111670 -1.562500 +vt 0.582090 0.358209 +vt 0.578358 0.365672 +vt 0.582090 0.365672 +vt 0.582090 0.376866 +vt 0.597015 0.365672 +vt 0.600746 0.365672 +vt 0.597015 0.358209 +vt 0.597015 0.376866 +vt 0.574627 0.380597 +vt 0.582090 0.391791 +vt 0.582090 0.380597 +vt 0.574627 0.391791 +vt 0.582090 0.410448 +vt 0.582090 0.399254 +vt 0.597015 0.391791 +vt 0.604478 0.380597 +vt 0.597015 0.380597 +vt 0.604478 0.391791 +vt 0.597015 0.399254 +vt 0.597015 0.410448 +vt 0.570895 0.391791 +vt 0.608209 0.391791 +vt 0.582090 0.324627 +vt 0.597015 0.332090 +vt 0.597015 0.324627 +vt 0.582090 0.347015 +vt 0.597015 0.347015 +vt 0.582090 0.332090 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.2164 0.9763 +vn 0.0000 -0.4226 0.9063 +vn 0.0000 0.3007 0.9537 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.8192 0.5736 +vn 0.0000 -0.5029 -0.8644 +vn 0.0000 -0.5749 -0.8182 +vn 0.0000 -0.8567 -0.5158 +vn 0.0000 -0.9778 -0.2097 +s off +f 329/574/128 330/575/128 331/576/128 +f 330/575/128 332/577/128 331/576/128 +f 333/578/129 334/579/129 335/580/129 +f 336/581/129 334/579/129 333/578/129 +f 337/582/128 338/583/128 332/584/128 +f 339/585/128 340/586/128 338/587/128 +f 341/588/129 342/589/129 336/590/129 +f 343/591/129 341/592/129 344/593/129 +f 330/575/128 337/582/128 332/577/128 +f 336/581/129 342/589/129 334/579/129 +f 337/582/128 339/594/128 338/583/128 +f 341/588/129 343/595/129 342/589/129 +s 1 +f 341/592/130 340/586/131 344/593/131 +f 336/590/132 338/583/130 341/588/130 +f 333/578/133 332/577/132 336/581/132 +f 335/580/134 331/576/133 333/578/133 +f 339/596/135 342/597/136 343/598/135 +f 342/597/136 330/599/137 334/600/137 +f 335/580/138 330/599/137 329/574/138 +f 341/592/130 338/587/130 340/586/131 +f 336/590/132 332/584/132 338/583/130 +f 333/578/133 331/576/133 332/577/132 +f 335/580/134 329/574/134 331/576/133 +f 339/596/135 337/601/136 342/597/136 +f 342/597/136 337/601/136 330/599/137 +f 335/580/138 334/600/137 330/599/137 +o Gun +v 0.343750 1.299170 2.437500 +v -0.343750 1.299170 -2.062500 +v 0.343750 1.299170 -2.062500 +v 0.125000 2.424170 -0.750000 +v 0.343750 2.049170 -0.750000 +v 0.343750 2.424170 -0.750000 +v -0.343750 2.424170 -0.750000 +v -0.125000 2.049170 -0.750000 +v -0.125000 2.424170 -0.750000 +v 0.125000 2.236670 -0.812500 +v 0.125000 2.424170 -0.812500 +v -0.125000 2.236670 -0.812500 +v -0.125000 2.424170 -0.812500 +v 0.343750 2.299170 -1.187500 +v 0.218750 2.424170 -1.187500 +v 0.343750 2.424170 -1.125000 +v -0.343750 2.424170 -1.125000 +v -0.218750 2.424170 -1.187500 +v -0.343750 2.299170 -1.187500 +v 0.218750 2.424170 -5.375000 +v -0.218750 2.424170 -5.375000 +v 0.343750 2.299170 -5.562500 +v 0.125000 2.049170 -0.750000 +v 0.125000 1.861670 11.875000 +v 0.220971 2.082641 11.875000 +v 0.088388 1.950058 11.875000 +v 0.220971 1.640699 11.875000 +v 0.312500 1.861670 11.875000 +v 0.000000 1.736670 11.875000 +v 0.088388 1.773282 11.875000 +v -0.220971 1.640699 11.875000 +v 0.000000 1.549170 11.875000 +v -0.088388 1.950058 11.875000 +v -0.312500 1.861670 11.875000 +v -0.125000 1.861670 11.875000 +v -0.088388 1.773282 11.875000 +v 0.218750 1.799170 2.250000 +v 0.218750 2.049170 2.062500 +v 0.218750 1.861670 2.363165 +v -0.218750 1.861670 2.363165 +v -0.218750 2.049170 2.437500 +v -0.218750 2.049170 2.062500 +v 0.239382 2.049170 3.750000 +v -0.239382 2.049170 2.437500 +v -0.239382 2.049170 3.750000 +v 0.343750 2.049170 1.625000 +v -0.343750 1.799170 1.625000 +v 0.343750 1.799170 1.625000 +v 0.093750 2.517920 -5.031250 +v 0.156250 2.486670 -5.031250 +v 0.156250 2.424170 -5.031250 +v -0.093750 2.517920 -2.406250 +v -0.156250 2.486670 -2.406250 +v -0.156250 2.424170 -2.406250 +v 0.093750 2.517920 -2.406250 +v -0.093750 2.517920 -5.031250 +v 0.343750 1.299170 -5.562500 +v 0.343750 1.799170 2.437500 +v -0.343750 2.049170 -0.750000 +v -0.343750 2.299170 -5.562500 +v -0.343750 2.049170 1.625000 +v -0.343750 1.299170 2.437500 +v -0.218750 2.486670 -4.093750 +v 0.218750 2.486670 -4.968750 +v 0.218750 2.486670 -4.093750 +v -0.156250 2.549170 -4.093750 +v -0.218750 2.486670 -4.968750 +v -0.218750 2.611670 -4.093750 +v -0.218750 2.799170 -4.968750 +v -0.156250 2.799170 -4.968750 +v -0.156250 2.611670 -4.093750 +v 0.218750 2.611670 -4.093750 +v 0.156250 2.799170 -4.968750 +v 0.156250 2.611670 -4.093750 +v 0.093750 2.549170 -4.968750 +v -0.093750 2.736670 -4.968750 +v 0.093750 2.736670 -4.968750 +v -0.156250 2.549170 -4.968750 +v 0.156250 2.549170 -4.968750 +v 0.156250 2.549170 -4.093750 +v 0.093750 2.861670 -4.468750 +v -0.093750 2.861670 -4.406250 +v 0.093750 2.861670 -4.406250 +v -0.093750 2.674170 -4.468750 +v -0.093750 2.861670 -4.468750 +v 0.000000 2.830420 -4.468750 +v -0.022097 2.821268 -4.468750 +v 0.022097 2.821268 -4.468750 +v 0.093750 2.674170 -4.468750 +v 0.031250 2.799170 -4.468750 +v -0.031250 2.799170 -4.468750 +v -0.022097 2.777073 -4.468750 +v 0.022097 2.777073 -4.468750 +v 0.000000 2.767920 -4.468750 +v 0.000000 2.830420 -4.406250 +v 0.022097 2.821268 -4.406250 +v -0.022097 2.821268 -4.406250 +v -0.031250 2.799170 -4.406250 +v -0.156250 2.665242 -4.343750 +v 0.156250 2.549170 -4.343750 +v 0.156250 2.665242 -4.343750 +v -0.156250 2.678635 -4.406250 +v -0.093750 2.549170 -4.406250 +v -0.156250 2.549170 -4.406250 +v 0.093750 2.549170 -4.406250 +v 0.156250 2.678635 -4.406250 +v 0.156250 2.549170 -4.406250 +v -0.093750 2.678635 -4.406250 +v 0.022097 2.777073 -4.406250 +v 0.093750 2.678635 -4.406250 +v 0.031250 2.799170 -4.406250 +v 0.250000 2.580420 -4.781250 +v 0.250000 2.642920 -4.843750 +v 0.250000 2.705420 -4.781250 +v -0.343750 2.642920 -4.906250 +v -0.343750 2.517920 -4.781250 +v -0.343750 2.642920 -4.656250 +v 0.281250 0.924170 0.812500 +v 0.140625 0.924170 1.056070 +v -0.140625 0.924170 1.056070 +v 0.187500 1.174170 0.812500 +v 0.243570 1.174170 0.671875 +v 0.132583 1.174170 0.679918 +v 0.243570 1.174170 0.953125 +v 0.132583 1.174170 0.945082 +v 0.140625 1.174170 1.056070 +v 0.140625 1.174170 0.568930 +v 0.000000 1.174170 1.000000 +v 0.000000 1.174170 0.625000 +v -0.140625 1.174170 0.568930 +v -0.132583 1.174170 0.679917 +v -0.243570 1.174170 0.671875 +v -0.187500 1.174170 0.812500 +v -0.243570 1.174170 0.953125 +v -0.132583 1.174170 0.945082 +v -0.140625 1.174170 1.056070 +v 0.218750 0.394023 -1.004259 +v 0.218750 0.565917 -0.875000 +v 0.218750 0.565917 -0.812500 +v 0.218750 0.674170 -0.812500 +v 0.218750 0.674170 -0.750000 +v 0.218750 0.424170 -1.125000 +v 0.218750 0.456523 -1.004259 +v -0.156250 1.916588 1.934359 +v -0.156250 2.049170 1.625000 +v -0.156250 1.861670 1.625000 +v 0.156250 2.049170 1.625000 +v 0.156250 1.916588 1.934359 +v 0.156250 1.861670 1.625000 +v -0.156250 2.049170 2.062500 +v 0.156250 2.049170 2.062500 +v -0.218750 0.394023 -1.004259 +v -0.218750 0.424170 -1.125000 +v -0.218750 0.361670 -1.125000 +v -0.218750 0.565917 -0.875000 +v -0.218750 0.565917 -0.812500 +v -0.218750 0.674170 -0.812500 +v 0.281250 1.299170 -0.750000 +v 0.218750 1.236670 -1.937500 +v 0.281250 1.299170 -2.062500 +v 0.218750 0.361670 -1.125000 +v 0.218750 0.424170 -1.562500 +v 0.218750 0.503411 -1.732433 +v 0.218750 0.361670 -1.937500 +v 0.218750 0.674170 -1.812500 +v 0.218750 0.861670 -1.812500 +v 0.218750 1.111670 -1.562500 +v 0.218750 0.861670 -0.812500 +v 0.218750 1.236670 -0.750000 +v 0.218750 1.111670 -1.062500 +v -0.218750 0.424170 -1.562500 +v -0.218750 0.361670 -1.937500 +v -0.218750 0.503411 -1.732433 +v -0.218750 0.674170 -1.812500 +v -0.218750 0.861670 -0.812500 +v -0.218750 0.674170 -0.750000 +v -0.218750 1.236670 -0.750000 +v -0.218750 1.111670 -1.562500 +v -0.218750 1.111670 -1.062500 +v -0.218750 1.236670 -1.937500 +v -0.218750 0.861670 -1.812500 +v -0.281250 1.299170 -0.750000 +v -0.281250 1.299170 -2.062500 +v -0.343750 1.299170 -5.562500 +v 0.156250 2.109449 11.875000 +v -0.220971 2.082641 11.875000 +v -0.156250 2.109449 11.875000 +v 0.093750 2.421949 11.000000 +v 0.156250 2.421949 11.000000 +v 0.156250 2.109449 11.000000 +v -0.093750 2.421949 11.000000 +v 0.093750 2.421949 11.875000 +v 0.170671 2.863656 11.312500 +v -0.170671 2.863656 11.812500 +v -0.159818 2.802105 11.875000 +v -0.093750 2.421949 11.875000 +v -0.031250 2.421949 11.437500 +v 0.015625 2.796949 11.437500 +v 0.031250 2.421949 11.437500 +v -0.015625 2.796949 11.437500 +v 0.015625 2.796949 11.625000 +v -0.015625 2.796949 11.625000 +v -0.031250 2.421949 11.875000 +v 0.031250 2.421949 11.875000 +v 0.088388 1.950058 11.000000 +v 0.000000 1.986670 11.000000 +v 0.000000 1.736670 11.000000 +v 0.000000 2.174170 3.750000 +v -0.022097 2.777073 -4.406250 +v 0.000000 2.767920 -4.406250 +v 0.371209 1.780864 2.702665 +v 0.218750 1.799170 1.625000 +v 0.218750 1.916588 1.934359 +v 0.218750 1.861670 1.625000 +v 0.218750 2.049170 2.437500 +v -0.218750 1.916588 1.934359 +v -0.218750 1.861670 1.625000 +v -0.218750 1.799170 1.625000 +v -0.218750 1.799170 2.250000 +v 0.239382 2.049170 2.437500 +v -0.156250 2.424170 -5.031250 +v -0.156250 2.486670 -5.031250 +v 0.156250 2.424170 -2.406250 +v 0.156250 2.486670 -2.406250 +v -0.343750 1.799170 2.437500 +v 0.218750 2.799170 -4.968750 +v -0.093750 2.549170 -4.968750 +v -0.156250 2.549170 -4.343750 +v 0.250000 2.687115 -4.737056 +v 0.250000 2.642920 -4.718750 +v 0.250000 2.598726 -4.737056 +v 0.250000 2.598726 -4.825444 +v 0.250000 2.687115 -4.825444 +v -0.343750 2.731309 -4.692862 +v -0.343750 2.767920 -4.781250 +v -0.343750 2.731309 -4.869638 +v -0.343750 2.554532 -4.869638 +v -0.343750 2.554532 -4.692862 +v -0.243570 0.924170 0.953125 +v -0.281250 0.924170 0.812500 +v -0.243570 0.924170 0.671875 +v -0.140625 0.924170 0.568930 +v 0.000000 0.924170 0.531250 +v 0.140625 0.924170 0.568930 +v 0.243570 0.924170 0.671875 +v 0.243570 0.924170 0.953125 +v 0.000000 0.924170 1.093750 +v 0.281250 1.174170 0.812500 +v 0.000000 1.174170 1.093750 +v 0.000000 1.174170 0.531250 +v -0.281250 1.174170 0.812500 +v -0.218750 0.456523 -1.004259 +v -0.156250 2.109449 11.000000 +v -0.156250 2.421949 11.000000 +v 0.159818 2.802105 11.875000 +v 0.170671 2.863656 11.812500 +v -0.170671 2.863656 11.312500 +v -0.088388 1.950058 11.000000 +v -0.125000 1.861670 11.000000 +v -0.088388 1.773282 11.000000 +v 0.088388 1.773282 11.000000 +v 0.125000 1.861670 11.000000 +v -0.156250 2.132303 3.750000 +v 0.156250 2.132303 3.750000 +v 0.220971 1.640699 11.000000 +v 0.220971 2.082641 11.000000 +v 0.000000 1.549170 11.000000 +v 0.312500 1.861670 11.000000 +v -0.312500 1.861670 11.000000 +v -0.220971 1.640699 11.000000 +v 0.000000 2.174170 4.062500 +v 0.156250 2.132303 4.062500 +v -0.156250 2.132303 4.062500 +v 0.295753 1.799170 4.062500 +v 0.312500 1.861670 2.363165 +v 0.312500 1.861670 4.062500 +v 0.270633 2.017920 2.427792 +v 0.270633 2.017920 4.062500 +v -0.270633 2.017920 2.437500 +v -0.312500 1.861670 4.062500 +v -0.270633 2.017920 4.062500 +v 0.295753 1.799170 2.250000 +v -0.295753 1.799170 4.062500 +v -0.312500 1.861670 2.363165 +v -0.295753 1.799170 2.250000 +v 0.000000 2.049170 7.625000 +v -0.132583 1.994253 7.625000 +v 0.187500 1.861670 7.625000 +v 0.437500 1.736670 2.812500 +v 0.343750 1.799170 2.812500 +v -0.343750 1.799170 2.812500 +v -0.371209 1.780864 2.702665 +v 0.437500 1.111670 2.812500 +v 0.312500 1.299170 8.000000 +v 0.312500 1.049170 2.812500 +v -0.437500 1.361670 8.000000 +v -0.437500 1.736670 2.812500 +v -0.437500 1.111670 2.812500 +v -0.312500 1.799170 7.875000 +v -0.312500 1.299170 8.000000 +v -0.312500 1.049170 2.812500 +v 0.437500 1.361670 8.000000 +v 0.312500 1.799170 7.875000 +v 0.132583 1.994253 10.812500 +v 0.000000 2.174170 11.000000 +v -0.132583 1.994253 10.812500 +v -0.220971 2.082641 11.000000 +v -0.132583 1.729087 10.812500 +v 0.132583 1.729087 10.812500 +v 0.187500 1.861670 10.812500 +v 0.000000 2.049170 10.812500 +v -0.187500 1.861670 10.812500 +v 0.000000 1.674170 10.812500 +v -0.187500 1.861670 7.625000 +v -0.132583 1.729087 7.625000 +v 0.000000 1.674170 8.000000 +v 0.132583 1.994253 7.625000 +v 0.132583 1.729087 7.625000 +v 0.218750 2.598726 -4.737056 +v 0.218750 2.580420 -4.781250 +v 0.218750 2.687115 -4.737056 +v 0.218750 2.642920 -4.718750 +v 0.218750 2.642920 -4.843750 +v 0.218750 2.687115 -4.825444 +v 0.218750 2.598726 -4.825444 +v 0.218750 2.705420 -4.781250 +v -0.218750 2.709212 -4.847541 +v -0.281250 2.767920 -4.781250 +v -0.218750 2.736670 -4.781250 +v -0.281250 2.554532 -4.869638 +v -0.218750 2.642920 -4.875000 +v -0.218750 2.576629 -4.847541 +v -0.218750 2.576629 -4.714959 +v -0.281250 2.517920 -4.781250 +v -0.218750 2.549170 -4.781250 +v -0.281250 2.731309 -4.692862 +v -0.218750 2.642920 -4.687500 +v -0.218750 2.709212 -4.714959 +v -0.281250 2.731309 -4.869638 +v -0.281250 2.554532 -4.692862 +v -0.281250 2.642920 -4.906250 +v -0.281250 2.642920 -4.656250 +v 0.000000 1.299170 0.625000 +v -0.132583 1.299170 0.679917 +v 0.187500 1.299170 0.812500 +v 0.132583 1.299170 0.679918 +v 0.000000 1.299170 1.000000 +v 0.132583 1.299170 0.945082 +v -0.187500 1.299170 0.812500 +v -0.132583 1.299170 0.945082 +v -0.218750 0.969924 -0.875000 +v 0.218750 0.969924 -0.875000 +v 0.156250 0.799411 -3.472389 +v -0.218750 1.017962 -3.851390 +v 0.218750 1.017962 -3.851390 +v 0.156250 1.706500 -6.971929 +v -0.156250 1.749912 -6.725727 +v 0.156250 1.749912 -6.725727 +v 0.156250 -0.261926 -2.410389 +v -0.093750 -0.394406 -2.622401 +v 0.093750 -0.394406 -2.622401 +v 0.156250 0.572834 -3.366735 +v -0.156250 0.799411 -3.472389 +v 0.093750 1.812155 -7.198505 +v -0.156250 1.706500 -6.971929 +v 0.093750 -0.074426 -2.410389 +v -0.156250 -0.261926 -2.410389 +v 0.218750 0.262663 -3.404819 +v -0.156250 0.572834 -3.366735 +v 0.031250 1.892503 -7.294261 +v -0.093750 1.812155 -7.198505 +v 0.093750 0.152151 -2.304735 +v -0.093750 -0.074426 -2.410389 +v 0.218750 -0.607686 -4.014244 +v -0.218750 0.262663 -3.404819 +v -0.156250 1.100554 -12.294434 +v 0.156250 1.100554 -12.294434 +v -0.218750 0.272674 -2.161101 +v -0.093750 0.152151 -2.304735 +v 0.218750 -0.848001 -4.083153 +v -0.218750 -0.607686 -4.014244 +v 0.218750 0.730171 -12.235770 +v 0.343750 0.730171 -12.110770 +v 0.343750 0.361670 -1.937500 +v 0.218750 0.272674 -2.161101 +v 0.218750 -1.259117 -3.933519 +v -0.218750 -0.848001 -4.083153 +v 0.218750 -0.894829 -12.235770 +v -0.218750 0.730171 -12.235770 +v 0.218750 -1.474552 -3.552739 +v -0.218750 -1.259117 -3.933519 +v 0.218750 -1.445037 -12.118820 +v -0.218750 -0.894829 -12.235770 +v 0.218750 -1.441887 -3.241951 +v -0.218750 -1.474552 -3.552739 +v 0.093750 -1.752219 -11.903729 +v -0.218750 -1.445037 -12.118820 +v 0.156250 -1.289697 -3.043612 +v -0.218750 -1.441887 -3.241951 +v 0.093750 -1.428696 -10.696322 +v -0.093750 -1.752219 -11.903729 +v 0.093750 -1.102197 -3.043612 +v -0.156250 -1.289697 -3.043612 +v 0.218750 0.301005 -7.510611 +v -0.093750 -1.428696 -10.696322 +v 0.093750 -0.897409 -2.900218 +v -0.093750 -1.102197 -3.043612 +v 0.218750 0.585548 -6.749564 +v -0.218750 0.301005 -7.510611 +v 0.218750 2.174170 -5.687500 +v -0.343750 2.174170 -5.562500 +v 0.343750 2.174170 -5.562500 +v 0.156250 -0.803659 -2.737838 +v -0.093750 -0.897409 -2.900218 +v 0.218750 0.795839 -5.964749 +v -0.218750 0.585548 -6.749564 +v 0.218750 2.093290 -5.989352 +v -0.218750 2.174170 -5.687500 +v 0.093750 -0.616159 -2.737838 +v -0.156250 -0.803659 -2.737838 +v -0.218750 0.795839 -5.964749 +v -0.218750 2.093290 -5.989352 +v -0.093750 -0.616159 -2.737838 +v 0.343750 -0.848001 -3.895653 +v 0.343750 -1.071617 -3.746019 +v 0.343750 -0.769829 -12.110770 +v 0.343750 -1.191887 -3.241951 +v 0.343750 -1.164697 -3.168612 +v 0.343750 -1.502219 -12.028729 +v 0.343750 -1.053696 -10.696322 +v 0.343750 -0.977197 -3.168612 +v 0.343750 0.551005 -7.573111 +v 0.343750 -0.772409 -3.025218 +v 0.343750 0.835548 -6.874564 +v 0.343750 -0.741159 -2.862838 +v 0.343750 1.045839 -6.089749 +v 0.343750 2.049170 -5.687500 +v 0.343750 1.968290 -5.926852 +v 0.343750 -0.491159 -2.862838 +v -0.343750 1.045839 -6.089749 +v -0.343750 1.142962 -3.851390 +v 0.343750 1.562412 -6.725727 +v 0.343750 -0.331906 -2.747401 +v 0.343750 1.142962 -3.851390 +v 0.343750 0.799411 -3.222389 +v 0.343750 1.456500 -6.971929 +v 0.343750 -0.199426 -2.535389 +v 0.343750 0.510334 -3.179235 +v 0.343750 1.374655 -7.198505 +v 0.343750 0.050574 -2.535389 +v -0.343750 0.137663 -3.279819 +v 0.343750 0.277151 -2.429735 +v 0.343750 -0.607686 -3.889244 +v 0.343750 0.137663 -3.279819 +v 0.343750 0.397674 -2.161101 +v -0.343750 0.361670 -1.937500 +v 0.343750 1.236670 -1.937500 +v -0.343750 1.236670 -1.937500 +v -0.343750 -1.502219 -12.028729 +v -0.343750 -0.769829 -12.110770 +v 0.343750 -1.224552 -3.552739 +v -0.343750 0.730171 -12.110770 +v -0.343750 -1.053696 -10.696322 +v -0.343750 0.551005 -7.573111 +v -0.343750 0.835548 -6.874564 +v -0.343750 1.374655 -7.198505 +v -0.343750 1.456500 -6.971929 +v -0.343750 1.562412 -6.725727 +v -0.343750 1.968290 -5.926852 +v -0.343750 -0.848001 -3.895653 +v -0.343750 -0.977197 -3.168612 +v -0.343750 -0.607686 -3.889244 +v -0.343750 -0.772409 -3.025218 +v -0.343750 -0.741159 -2.862838 +v -0.343750 -0.491159 -2.862838 +v -0.343750 0.050574 -2.535389 +v -0.343750 0.277151 -2.429735 +v -0.343750 0.510334 -3.179235 +v -0.343750 -0.199426 -2.535389 +v -0.343750 -0.331906 -2.747401 +v -0.343750 0.397674 -2.161101 +v -0.343750 0.799411 -3.222389 +v -0.031250 1.892503 -7.294261 +v -0.343750 2.049170 -5.687500 +v -0.343750 -1.071617 -3.746019 +v -0.343750 -1.191887 -3.241951 +v -0.343750 -1.164697 -3.168612 +v -0.343750 -1.224552 -3.552739 +v 0.000000 1.986670 11.875000 +v 0.156250 2.421949 11.875000 +v -0.156250 2.421949 11.875000 +v 0.232221 2.852803 11.812500 +v 0.221368 2.791252 11.875000 +v -0.221368 2.791252 11.875000 +v -0.232221 2.852803 11.812500 +v -0.232221 2.852803 11.312500 +v 0.232221 2.852803 11.312500 +v 0.371209 1.225947 2.702665 +v -0.371209 1.225947 2.702665 +v -0.437500 1.736670 8.000000 +v 0.437500 1.736670 8.000000 +vt 0.742537 0.847015 +vt 0.701493 0.578358 +vt 0.742537 0.578358 +vt 0.615672 0.432836 +vt 0.630597 0.410448 +vt 0.630597 0.432836 +vt 0.589552 0.432836 +vt 0.604478 0.410448 +vt 0.604478 0.432836 +vt 0.611940 0.421642 +vt 0.611940 0.432836 +vt 0.608209 0.421642 +vt 0.608209 0.708955 +vt 0.619403 0.723881 +vt 0.608209 0.723881 +vt 0.828358 0.992537 +vt 0.839552 0.992537 +vt 0.833955 1.000000 +vt 0.835821 0.421642 +vt 0.839552 0.429104 +vt 0.828358 0.429104 +vt 0.839552 0.742537 +vt 0.839552 0.679105 +vt 0.828358 0.731343 +vt 0.839552 0.697761 +vt 0.839552 0.723881 +vt 0.597015 0.708955 +vt 0.488806 0.466418 +vt 0.500000 0.477612 +vt 0.488806 0.473881 +vt 0.488806 0.458955 +vt 0.500000 0.447761 +vt 0.500000 0.462687 +vt 0.488806 0.436567 +vt 0.488806 0.444030 +vt 0.488806 0.429104 +vt 0.500000 0.417910 +vt 0.500000 0.432836 +vt 0.488806 0.391791 +vt 0.500000 0.402985 +vt 0.488806 0.399254 +vt 0.488806 0.406716 +vt 0.488806 0.414179 +vt 0.764925 0.880597 +vt 0.776119 0.895522 +vt 0.757463 0.884328 +vt 0.757463 0.906716 +vt 0.753731 0.895522 +vt 0.776119 0.895522 +vt 0.664179 0.850746 +vt 0.742537 0.880597 +vt 0.664179 0.880597 +vt 0.787313 0.798507 +vt 0.828358 0.813433 +vt 0.787313 0.813433 +vt 0.630597 0.455224 +vt 0.623134 0.458955 +vt 0.615672 0.436567 +vt 0.604478 0.436567 +vt 0.597015 0.458955 +vt 0.634328 0.238806 +vt 0.636194 0.235075 +vt 0.641791 0.235075 +vt 0.634328 0.414179 +vt 0.636194 0.410448 +vt 0.641791 0.410448 +vt 0.623134 0.410448 +vt 0.634328 0.253731 +vt 0.634328 0.410448 +vt 0.802239 0.369403 +vt 0.742537 0.369403 +vt 0.802239 0.630597 +vt 0.809702 0.656716 +vt 0.787313 0.656716 +vt 0.772388 0.798507 +vt 0.772388 0.847015 +vt 0.634328 0.656716 +vt 0.641791 0.630597 +vt 0.656716 0.656716 +vt 0.641791 0.369403 +vt 0.671642 0.798507 +vt 0.656716 0.798507 +vt 0.701493 0.847015 +vt 0.828358 0.656716 +vt 0.828358 0.798507 +vt 0.514925 0.574627 +vt 0.567164 0.600746 +vt 0.514925 0.600746 +vt 0.488806 0.600746 +vt 0.492537 0.604478 +vt 0.436567 0.600746 +vt 0.488806 0.608209 +vt 0.436567 0.619403 +vt 0.462687 0.597015 +vt 0.410448 0.600746 +vt 0.410448 0.597015 +vt 0.410448 0.544776 +vt 0.462687 0.548507 +vt 0.410448 0.548507 +vt 0.514925 0.608209 +vt 0.552239 0.574627 +vt 0.541045 0.563433 +vt 0.552239 0.563433 +vt 0.462687 0.582090 +vt 0.410448 0.585821 +vt 0.410448 0.582090 +vt 0.410448 0.559702 +vt 0.462687 0.563433 +vt 0.410448 0.563433 +vt 0.507463 0.555970 +vt 0.496269 0.552239 +vt 0.507463 0.552239 +vt 0.410448 0.600746 +vt 0.414179 0.604478 +vt 0.511194 0.563433 +vt 0.541045 0.552239 +vt 0.496269 0.555970 +vt 0.501866 0.557836 +vt 0.500546 0.558382 +vt 0.503185 0.558382 +vt 0.507463 0.567164 +vt 0.503731 0.559702 +vt 0.500000 0.559702 +vt 0.496269 0.567164 +vt 0.500546 0.561021 +vt 0.503185 0.561021 +vt 0.501866 0.561567 +vt 0.496269 0.541045 +vt 0.501866 0.543044 +vt 0.507463 0.541045 +vt 0.503185 0.543590 +vt 0.500546 0.543590 +vt 0.500000 0.544909 +vt 0.473881 0.582090 +vt 0.481343 0.600746 +vt 0.473881 0.600746 +vt 0.470149 0.582090 +vt 0.462687 0.585821 +vt 0.462687 0.582090 +vt 0.462687 0.597015 +vt 0.470149 0.600746 +vt 0.462687 0.600746 +vt 0.470149 0.585821 +vt 0.503185 0.546229 +vt 0.507463 0.552239 +vt 0.503731 0.544909 +vt 0.496269 0.552239 +vt 0.507463 0.567164 +vt 0.511194 0.555970 +vt 0.511194 0.567164 +vt 0.492537 0.555970 +vt 0.496269 0.555970 +vt 0.496269 0.567164 +vt 0.511194 0.589552 +vt 0.514925 0.593284 +vt 0.511194 0.597015 +vt 0.477612 0.552239 +vt 0.470149 0.544776 +vt 0.462687 0.552239 +vt 0.313433 0.531716 +vt 0.321828 0.546258 +vt 0.338619 0.546258 +vt 0.320896 0.447761 +vt 0.324627 0.455224 +vt 0.320896 0.455224 +vt 0.324627 0.440298 +vt 0.320896 0.440298 +vt 0.320896 0.436567 +vt 0.324627 0.432836 +vt 0.324627 0.462687 +vt 0.320896 0.458955 +vt 0.320896 0.425373 +vt 0.320896 0.432836 +vt 0.320896 0.470149 +vt 0.320896 0.462687 +vt 0.324627 0.477612 +vt 0.320896 0.477612 +vt 0.324627 0.485075 +vt 0.320896 0.481343 +vt 0.320896 0.492537 +vt 0.320896 0.485075 +vt 0.324627 0.500000 +vt 0.320896 0.500000 +vt 0.324627 0.507463 +vt 0.320896 0.503731 +vt 0.320896 0.514925 +vt 0.320896 0.507463 +vt 0.541045 0.679105 +vt 0.537313 0.690298 +vt 0.541045 0.694030 +vt 0.537313 0.701493 +vt 0.541045 0.701493 +vt 0.537313 0.671642 +vt 0.537313 0.679105 +vt 0.779851 0.850746 +vt 0.798507 0.843284 +vt 0.798507 0.854478 +vt 0.798507 0.843284 +vt 0.779851 0.835821 +vt 0.798507 0.832090 +vt 0.764925 0.876866 +vt 0.742537 0.880597 +vt 0.764925 0.858209 +vt 0.567164 0.679105 +vt 0.570895 0.671642 +vt 0.567164 0.671642 +vt 0.570895 0.690298 +vt 0.567164 0.694030 +vt 0.570895 0.701493 +vt 0.570895 0.694030 +vt 0.496269 0.537313 +vt 0.429104 0.533582 +vt 0.421642 0.537313 +vt 0.541045 0.671642 +vt 0.537313 0.645522 +vt 0.402581 0.489807 +vt 0.392969 0.485076 +vt 0.414179 0.481343 +vt 0.407109 0.500000 +vt 0.407109 0.511194 +vt 0.414179 0.533582 +vt 0.392969 0.526118 +vt 0.537313 0.712687 +vt 0.541045 0.735075 +vt 0.347015 0.533580 +vt 0.364690 0.526118 +vt 0.570895 0.645522 +vt 0.567164 0.623134 +vt 0.450314 0.485075 +vt 0.440703 0.489807 +vt 0.429104 0.481343 +vt 0.436174 0.500000 +vt 0.570895 0.712687 +vt 0.567164 0.701493 +vt 0.567164 0.735075 +vt 0.496269 0.533580 +vt 0.450314 0.526118 +vt 0.478594 0.526118 +vt 0.429104 0.533580 +vt 0.436174 0.511194 +vt 0.414179 0.533582 +vt 0.347015 0.537313 +vt 0.421642 0.537313 +vt 0.742537 0.328358 +vt 0.802239 0.328358 +vt 0.500000 0.481343 +vt 0.488806 0.481343 +vt 0.500000 0.388060 +vt 0.488806 0.384328 +vt 0.500000 0.384328 +vt 0.369403 0.507463 +vt 0.369403 0.511194 +vt 0.350746 0.511194 +vt 0.451493 0.481343 +vt 0.462687 0.429104 +vt 0.462687 0.481343 +vt 0.488806 0.462687 +vt 0.425373 0.432836 +vt 0.429104 0.429104 +vt 0.451493 0.429104 +vt 0.514925 0.384328 +vt 0.518657 0.365672 +vt 0.518657 0.384328 +vt 0.488806 0.361940 +vt 0.500000 0.365672 +vt 0.488806 0.365672 +vt 0.503731 0.365672 +vt 0.488806 0.384328 +vt 0.526119 0.365672 +vt 0.500000 0.361940 +vt 0.526119 0.361940 +vt 0.529851 0.365672 +vt 0.544776 0.384328 +vt 0.476066 0.374680 +vt 0.481343 0.376866 +vt 0.481343 0.361940 +vt 0.656716 0.865672 +vt 0.500546 0.546229 +vt 0.501866 0.546775 +vt 0.623134 0.708955 +vt 0.597015 0.458955 +vt 0.597015 0.708955 +vt 0.858209 0.421642 +vt 0.858209 0.406716 +vt 0.888060 0.421642 +vt 0.615672 0.410448 +vt 0.589552 0.410448 +vt 0.608209 0.432836 +vt 0.619403 0.708955 +vt 0.828358 0.690298 +vt 0.597015 0.723881 +vt 0.488806 0.451493 +vt 0.488806 0.421642 +vt 0.802239 0.880597 +vt 0.783582 0.888060 +vt 0.802239 0.884328 +vt 0.753731 0.895522 +vt 0.783582 0.902985 +vt 0.802239 0.906716 +vt 0.802239 0.910448 +vt 0.764925 0.910448 +vt 0.742537 0.850746 +vt 0.589552 0.455224 +vt 0.641791 0.253731 +vt 0.636194 0.253731 +vt 0.634328 0.250000 +vt 0.641791 0.429104 +vt 0.636194 0.429104 +vt 0.634328 0.425373 +vt 0.623134 0.253731 +vt 0.809702 0.634328 +vt 0.634328 0.634328 +vt 0.701493 0.369403 +vt 0.671642 0.847015 +vt 0.567164 0.574627 +vt 0.492537 0.608209 +vt 0.511194 0.604478 +vt 0.511194 0.608209 +vt 0.462687 0.600746 +vt 0.462687 0.544776 +vt 0.567164 0.619403 +vt 0.541045 0.574627 +vt 0.432836 0.604478 +vt 0.432836 0.619403 +vt 0.414179 0.619403 +vt 0.410448 0.619403 +vt 0.511194 0.552239 +vt 0.481343 0.582090 +vt 0.470149 0.597015 +vt 0.507463 0.574627 +vt 0.507463 0.555970 +vt 0.496269 0.574627 +vt 0.492537 0.567164 +vt 0.462687 0.574627 +vt 0.462687 0.563433 +vt 0.508556 0.595922 +vt 0.507463 0.593284 +vt 0.508556 0.590645 +vt 0.513832 0.590645 +vt 0.513832 0.595922 +vt 0.464872 0.557516 +vt 0.470149 0.559702 +vt 0.475426 0.557516 +vt 0.475426 0.546962 +vt 0.464872 0.546962 +vt 0.344765 0.540112 +vt 0.347015 0.531716 +vt 0.344765 0.523321 +vt 0.338619 0.517175 +vt 0.330224 0.514925 +vt 0.321828 0.517175 +vt 0.315682 0.523321 +vt 0.315682 0.540112 +vt 0.330224 0.548507 +vt 0.324627 0.447761 +vt 0.324627 0.425373 +vt 0.324627 0.470149 +vt 0.324627 0.492537 +vt 0.324627 0.514925 +vt 0.537313 0.682836 +vt 0.537313 0.694030 +vt 0.772388 0.843284 +vt 0.772388 0.843284 +vt 0.791045 0.858209 +vt 0.791045 0.876866 +vt 0.764925 0.880597 +vt 0.742537 0.854478 +vt 0.764925 0.854478 +vt 0.570895 0.679105 +vt 0.570895 0.682836 +vt 0.496269 0.533582 +vt 0.541045 0.623134 +vt 0.347015 0.533582 +vt 0.350746 0.492537 +vt 0.369403 0.496269 +vt 0.369403 0.492537 +vt 0.485075 0.429104 +vt 0.488806 0.432836 +vt 0.425373 0.462687 +vt 0.514925 0.365672 +vt 0.486620 0.374680 +vt 0.488806 0.369403 +vt 0.486620 0.364126 +vt 0.476066 0.364126 +vt 0.473881 0.369403 +vt 0.660448 0.876866 +vt 0.660448 0.854478 +vt 0.623134 0.458955 +vt 0.776119 0.876866 +vt 0.794776 0.880597 +vt 0.776119 0.880597 +vt 0.552239 0.447761 +vt 0.552239 0.477612 +vt 0.552239 0.432836 +vt 0.552239 0.462687 +vt 0.552239 0.481343 +vt 0.552239 0.402985 +vt 0.552239 0.417910 +vt 0.552239 0.384328 +vt 0.231343 0.279851 +vt 0.212687 0.291045 +vt 0.212687 0.279851 +vt 0.231343 0.291045 +vt 0.212687 0.302239 +vt 0.212687 0.253731 +vt 0.313433 0.257463 +vt 0.212687 0.257463 +vt 0.309702 0.268657 +vt 0.212687 0.268657 +vt 0.309702 0.313433 +vt 0.212687 0.324627 +vt 0.212687 0.313433 +vt 0.649251 0.864581 +vt 0.656716 0.860243 +vt 0.656716 0.864583 +vt 0.639900 0.861656 +vt 0.638062 0.864582 +vt 0.638060 0.863421 +vt 0.212687 0.328358 +vt 0.313433 0.324627 +vt 0.320896 0.328358 +vt 0.656716 0.871099 +vt 0.649259 0.866761 +vt 0.656716 0.866761 +vt 0.639900 0.869687 +vt 0.649252 0.872045 +vt 0.000000 0.291045 +vt 0.000000 0.302239 +vt 0.000000 0.263060 +vt 0.858209 0.350746 +vt 0.854478 0.358209 +vt 0.850746 0.350746 +vt 0.809702 0.350746 +vt 0.809702 0.373134 +vt 0.805970 0.358209 +vt 0.899254 0.399254 +vt 0.906716 0.089552 +vt 0.906716 0.399254 +vt 0.966418 0.089552 +vt 0.988806 0.399254 +vt 0.951493 0.399254 +vt 0.802239 0.350746 +vt 0.809702 0.055970 +vt 0.944030 0.089552 +vt 0.944030 0.399254 +vt 0.861940 0.399254 +vt 0.884328 0.089552 +vt 0.850746 0.055970 +vt 0.567164 0.473881 +vt 0.552239 0.373134 +vt 0.567164 0.384328 +vt 0.552239 0.388060 +vt 0.567164 0.414179 +vt 0.567164 0.444030 +vt 0.567164 0.451493 +vt 0.567164 0.458955 +vt 0.552239 0.492537 +vt 0.567164 0.481343 +vt 0.567164 0.488806 +vt 0.567164 0.391791 +vt 0.567164 0.399254 +vt 0.567164 0.429104 +vt 0.511194 0.291045 +vt 0.320896 0.283582 +vt 0.511194 0.283582 +vt 0.511194 0.298507 +vt 0.320896 0.291045 +vt 0.492537 0.305970 +vt 0.320896 0.313433 +vt 0.320896 0.305970 +vt 0.511194 0.328358 +vt 0.320896 0.320896 +vt 0.511194 0.320896 +vt 0.320896 0.276119 +vt 0.511194 0.276119 +vt 0.320896 0.298507 +vt 0.511194 0.313433 +vt 0.511194 0.335821 +vt 0.320896 0.328358 +vt 0.638060 0.253731 +vt 0.641791 0.585821 +vt 0.638060 0.429104 +vt 0.638060 0.410448 +vt 0.638060 0.585821 +vt 0.634328 0.429104 +vt 0.000000 0.319030 +vt 0.850746 0.373134 +vt 0.850746 0.421642 +vt 0.000000 0.257463 +vt 0.000000 0.250000 +vt 0.492537 0.582090 +vt 0.488806 0.578358 +vt 0.492537 0.578358 +vt 0.481343 0.582090 +vt 0.477612 0.578358 +vt 0.481343 0.578358 +vt 0.473881 0.582090 +vt 0.470149 0.578358 +vt 0.473881 0.578358 +vt 0.466418 0.582090 +vt 0.462687 0.578358 +vt 0.466418 0.578358 +vt 0.488806 0.582090 +vt 0.485075 0.578358 +vt 0.485075 0.582090 +vt 0.477612 0.582090 +vt 0.470149 0.582090 +vt 0.500000 0.597015 +vt 0.503731 0.600746 +vt 0.500000 0.600746 +vt 0.507463 0.597015 +vt 0.511194 0.600746 +vt 0.507463 0.600746 +vt 0.488806 0.597015 +vt 0.492537 0.600746 +vt 0.488806 0.600746 +vt 0.496269 0.597015 +vt 0.496269 0.600746 +vt 0.503731 0.597015 +vt 0.511194 0.597015 +vt 0.514925 0.600746 +vt 0.485075 0.597015 +vt 0.485075 0.600746 +vt 0.492537 0.597015 +vt 0.417910 0.537313 +vt 0.410448 0.541045 +vt 0.410448 0.537313 +vt 0.432836 0.541045 +vt 0.425373 0.537313 +vt 0.432836 0.537313 +vt 0.447761 0.537313 +vt 0.440298 0.541045 +vt 0.440298 0.537313 +vt 0.462687 0.541045 +vt 0.455224 0.537313 +vt 0.462687 0.537313 +vt 0.470149 0.541045 +vt 0.470149 0.537313 +vt 0.417910 0.541045 +vt 0.447761 0.541045 +vt 0.462687 0.544776 +vt 0.410448 0.544776 +vt 0.425373 0.544776 +vt 0.425373 0.541045 +vt 0.440298 0.544776 +vt 0.455224 0.544776 +vt 0.455224 0.541045 +vt 0.417910 0.544776 +vt 0.432836 0.544776 +vt 0.447761 0.544776 +vt 0.320896 0.485075 +vt 0.313433 0.477612 +vt 0.320896 0.477612 +vt 0.320896 0.500000 +vt 0.313433 0.492537 +vt 0.320896 0.492537 +vt 0.320896 0.514925 +vt 0.313433 0.507463 +vt 0.320896 0.507463 +vt 0.320896 0.470149 +vt 0.313433 0.462687 +vt 0.320896 0.462687 +vt 0.313433 0.470149 +vt 0.313433 0.485075 +vt 0.313433 0.500000 +vt 0.313433 0.455224 +vt 0.320896 0.455224 +vt 0.339552 0.440298 +vt 0.339552 0.492537 +vt 0.339552 0.507463 +vt 0.339552 0.470149 +vt 0.339552 0.447761 +vt 0.339552 0.514925 +vt 0.339552 0.477612 +vt 0.339552 0.455224 +vt 0.339552 0.432836 +vt 0.339552 0.485075 +vt 0.339552 0.500000 +vt 0.339552 0.462687 +vt 0.794776 0.854478 +vt 0.776119 0.858209 +vt 0.776119 0.854478 +vt 0.570895 0.656716 +vt 0.597015 0.649254 +vt 0.570895 0.649254 +vt 0.597015 0.656716 +vt 0.570895 0.667910 +vt 0.597015 0.667910 +vt 0.597015 0.675373 +vt 0.570895 0.675373 +vt 0.489199 0.517656 +vt 0.570895 0.686567 +vt 0.597015 0.686567 +vt 0.570895 0.694030 +vt 0.597015 0.694030 +vt 0.597015 0.708955 +vt 0.570895 0.708955 +vt 0.597015 0.738806 +vt 0.570895 0.738806 +vt 0.597015 0.567164 +vt 0.570895 0.589552 +vt 0.597015 0.589552 +vt 0.597015 0.600746 +vt 0.570895 0.600746 +vt 0.597015 0.611940 +vt 0.570895 0.611940 +vt 0.597015 0.623134 +vt 0.570895 0.623134 +vt 0.492734 0.511194 +vt 0.000000 0.324627 +vt -0.000000 0.332090 +vt 0.858209 0.970149 +vt 0.880597 0.996269 +vt 0.854478 0.996269 +vt 0.970149 0.910448 +vt 0.988806 0.925373 +vt 0.970149 0.925373 +vt 0.858209 0.679105 +vt 0.873134 0.694030 +vt 0.861940 0.694030 +vt 0.858209 0.940298 +vt 0.876866 0.955224 +vt 0.858209 0.955224 +vt 0.973881 0.895522 +vt 0.988806 0.910448 +vt 0.861940 0.667910 +vt 0.876866 0.679105 +vt 0.854478 0.921642 +vt 0.876866 0.940298 +vt 0.977612 0.888060 +vt 0.985075 0.895522 +vt 0.861940 0.652985 +vt 0.873134 0.667910 +vt 0.854478 0.858209 +vt 0.880597 0.921642 +vt 0.988806 0.585821 +vt 0.970149 0.585821 +vt 0.880597 0.641791 +vt 0.873134 0.652985 +vt 0.854478 0.843284 +vt 0.880597 0.858209 +vt 0.902985 0.977612 +vt 0.906716 1.000000 +vt 0.891791 0.977612 +vt 0.847015 0.626866 +vt 0.854478 0.641791 +vt 0.854478 0.817164 +vt 0.880597 0.843284 +vt 0.902985 0.880597 +vt 0.929105 0.977612 +vt 0.854478 0.791045 +vt 0.880597 0.817164 +vt 0.902985 0.847015 +vt 0.929105 0.880597 +vt 0.854478 0.772388 +vt 0.880597 0.791045 +vt 0.910448 0.824627 +vt 0.929105 0.847015 +vt 0.858209 0.757463 +vt 0.880597 0.772388 +vt 0.947761 0.899254 +vt 0.958955 0.973881 +vt 0.947761 0.973881 +vt 0.861940 0.746269 +vt 0.876866 0.757463 +vt 0.940298 0.682836 +vt 0.958955 0.899254 +vt 0.861940 0.731343 +vt 0.873134 0.746269 +vt 0.940298 0.634328 +vt 0.966418 0.682836 +vt 0.966418 0.992537 +vt 1.000000 1.000000 +vt 0.958955 1.000000 +vt 0.858209 0.720149 +vt 0.873134 0.731343 +vt 0.940298 0.585821 +vt 0.966418 0.634328 +vt 0.966418 0.973881 +vt 0.992537 0.992537 +vt 0.861940 0.708955 +vt 0.876866 0.720149 +vt 0.940298 0.458955 +vt 0.966418 0.585821 +vt 0.992537 0.973881 +vt 0.873134 0.708955 +vt 0.843284 0.843284 +vt 0.925373 1.000000 +vt 0.839552 0.817164 +vt 0.891791 0.884328 +vt 0.839552 0.772388 +vt 0.854478 0.757463 +vt 0.839552 0.764925 +vt 0.839552 0.757463 +vt 0.679105 0.022388 +vt 0.761194 0.022388 +vt 0.682836 0.048507 +vt 0.858209 0.746269 +vt 0.847015 0.757463 +vt 0.843284 0.746269 +vt 0.492537 0.130597 +vt 0.500000 0.149254 +vt 0.858209 0.731343 +vt 0.843284 0.731343 +vt 0.447761 0.149254 +vt 0.451493 0.167910 +vt 0.847015 0.720149 +vt 0.406716 0.179104 +vt 0.399254 0.160448 +vt 0.402985 0.246269 +vt 0.384328 0.238806 +vt 0.399254 0.235075 +vt 0.858209 0.708955 +vt 0.843284 0.708955 +vt 0.406716 0.179104 +vt 0.399254 0.160448 +vt 0.276119 0.182836 +vt 0.447761 0.208955 +vt 0.858209 0.694030 +vt 0.843284 0.694030 +vt 0.843284 1.000000 +vt 0.843284 0.955224 +vt 0.462687 0.223881 +vt 0.462687 0.201493 +vt 0.847015 0.679105 +vt 0.843284 0.940298 +vt 0.477612 0.197761 +vt 0.477612 0.231343 +vt 0.858209 0.667910 +vt 0.843284 0.667910 +vt 0.891791 0.921642 +vt 0.485075 0.235075 +vt 0.858209 0.652985 +vt 0.843284 0.652985 +vt 0.843284 0.858209 +vt 0.843284 0.921642 +vt 0.779851 0.182836 +vt 0.768657 0.156716 +vt 0.384328 0.250000 +vt 0.376866 0.246269 +vt 0.847015 0.638060 +vt 0.895522 0.764925 +vt 0.936567 0.817164 +vt 0.895522 0.817164 +vt 0.936567 0.824627 +vt 0.895522 0.824627 +vt 0.447761 0.227612 +vt 0.895522 0.847015 +vt 0.902985 0.824627 +vt 0.936567 0.847015 +vt 0.940298 0.884328 +vt 0.768657 0.067164 +vt 0.376866 0.194030 +vt 0.167910 0.194030 +vt 0.276119 0.182836 +vt 0.839552 0.791045 +vt 0.839552 0.802239 +vt 0.276119 0.063433 +vt 0.235075 0.059701 +vt 0.268657 0.052239 +vt 0.227612 0.070896 +vt 0.276119 0.078358 +vt 0.242537 0.123134 +vt 0.216418 0.070896 +vt 0.216418 0.085821 +vt 0.197761 0.119403 +vt 0.235075 0.145522 +vt 0.190299 0.134328 +vt 0.197761 0.104478 +vt 0.208955 0.097015 +vt 0.175373 0.141791 +vt 0.160448 0.190299 +vt 0.160448 0.138060 +vt 0.238806 0.164179 +vt 0.768657 0.067164 +vt 0.761194 0.022388 +vt 0.768657 0.156716 +vt 0.682836 0.048507 +vt 0.500000 0.149254 +vt 0.451493 0.167910 +vt 0.477612 0.197761 +vt 0.462687 0.201493 +vt 0.447761 0.208955 +vt 0.399254 0.235075 +vt 0.276119 0.063433 +vt 0.235075 0.059701 +vt 0.276119 0.078358 +vt 0.227612 0.070896 +vt 0.242537 0.123134 +vt 0.216418 0.070896 +vt 0.216418 0.085821 +vt 0.197761 0.119403 +vt 0.190299 0.134328 +vt 0.235075 0.145522 +vt 0.197761 0.104478 +vt 0.208955 0.097015 +vt 0.175373 0.141791 +vt 0.238806 0.164179 +vt 0.940298 0.977612 +vt 0.779851 0.182836 +vt 0.485075 0.235075 +vt 0.477612 0.231343 +vt 0.462687 0.223881 +vt 0.447761 0.227612 +vt 0.402985 0.246269 +vt 0.384328 0.238806 +vt 0.384328 0.250000 +vt 0.376866 0.246269 +vt 0.929105 0.824627 +vt 0.679105 0.022388 +vt 0.750000 0.003731 +vt 0.492537 0.130597 +vt 0.447761 0.149254 +vt 0.966418 0.458955 +vt 0.977612 0.458955 +vt 0.376866 0.194030 +vt 0.167910 0.194030 +vt 0.876866 0.970149 +vt 0.891791 1.000000 +vt 0.891791 0.955224 +vt 0.891791 0.940298 +vt 0.891791 0.858209 +vt 0.891791 0.843284 +vt 0.895522 0.817164 +vt 0.895522 0.772388 +vt 0.880597 0.757463 +vt 0.895522 0.764925 +vt 0.876866 0.746269 +vt 0.888060 0.757463 +vt 0.876866 0.731343 +vt 0.891791 0.746269 +vt 0.888060 0.720149 +vt 0.876866 0.708955 +vt 0.876866 0.694030 +vt 0.891791 0.708955 +vt 0.888060 0.679105 +vt 0.876866 0.667910 +vt 0.876866 0.652985 +vt 0.891791 0.667910 +vt 0.888060 0.638060 +vt 0.891791 0.652985 +vt 0.888060 0.626866 +vt 0.160448 0.190299 +vt 0.160448 0.138060 +vt 0.235075 0.048507 +vt 0.238806 0.044776 +vt 0.257463 0.041045 +vt 0.895522 0.791045 +vt 0.895522 0.802239 +vt 0.257463 0.041045 +vt 0.238806 0.044776 +vt 0.268657 0.052239 +vt 0.235075 0.048507 +vt 0.339552 0.436567 +vt 0.343284 0.430970 +vt 0.350746 0.440298 +vt 0.350746 0.369403 +vt 0.369403 0.421642 +vt 0.350746 0.421642 +vt 0.429104 0.354478 +vt 0.451493 0.358209 +vt 0.429104 0.358209 +vt 0.369403 0.436567 +vt 0.369403 0.440298 +vt 0.455224 0.354478 +vt 0.485075 0.358209 +vt 0.455224 0.358209 +vt 0.395523 0.417910 +vt 0.391791 0.421642 +vt 0.429104 0.361940 +vt 0.451493 0.358209 +vt 0.451493 0.361940 +vt 0.455224 0.361940 +vt 0.455224 0.358209 +vt 0.485075 0.361940 +vt 0.395523 0.473881 +vt 0.395523 0.444030 +vt 0.485075 0.354478 +vt 0.514925 0.358209 +vt 0.514925 0.354478 +vt 0.485075 0.358209 +vt 0.514925 0.358209 +vt 0.514925 0.361940 +vt 0.451493 0.429104 +vt 0.458955 0.376866 +vt 0.458955 0.429104 +vt 0.436567 0.429104 +vt 0.444030 0.376866 +vt 0.444030 0.429104 +vt 0.481343 0.429104 +vt 0.488806 0.376866 +vt 0.488806 0.429104 +vt 0.466418 0.376866 +vt 0.466418 0.429104 +vt 0.451493 0.376866 +vt 0.429104 0.429104 +vt 0.436567 0.376866 +vt 0.473881 0.429104 +vt 0.481343 0.376866 +vt 0.473881 0.376866 +vt 0.309702 0.272388 +vt 0.231343 0.272388 +vt 0.231343 0.309702 +vt 0.902985 0.414179 +vt 0.899254 0.402985 +vt 0.891791 0.406716 +vt 0.962687 0.421642 +vt 0.958955 0.406716 +vt 0.992537 0.406716 +vt 0.951493 0.402985 +vt 0.947761 0.414179 +vt 0.904851 0.429104 +vt 0.906716 0.055970 +vt 0.951493 0.063433 +vt 0.899254 0.063433 +vt 0.354085 0.517656 +vt 0.350550 0.511194 +vt 0.929105 0.458955 +vt 0.339552 0.425373 +vt 0.638060 0.866761 +vt 0.649252 0.859298 +vt 0.000000 0.313433 +vt 0.000000 0.279851 +vt 0.000000 0.268657 +vt 0.992537 0.421642 +vt 0.794776 0.876866 +vt 0.231343 0.302239 +vt 0.320896 0.253731 +vt 0.899254 0.089552 +vt 0.988806 0.089552 +vt 0.802239 0.048507 +vt 0.861940 0.089552 +vt 0.951493 0.089552 +vt 0.858209 0.048507 +vt 0.567164 0.466418 +vt 0.567164 0.376866 +vt 0.567164 0.406716 +vt 0.567164 0.436567 +vt 0.567164 0.421642 +vt 0.320896 0.335821 +vt 0.634328 0.585821 +vt 0.809702 0.421642 +vt 0.462687 0.582090 +vt 0.514925 0.597015 +vt 0.470149 0.544776 +vt 0.313433 0.514925 +vt 0.339552 0.425373 +vt 0.794776 0.858209 +vt 0.537313 0.738806 +vt 0.570895 0.738806 +vt 0.570895 0.567164 +vt 0.981343 0.888060 +vt 0.921642 0.824627 +vt 0.750000 0.003731 +vt 0.936567 0.764925 +vt 0.895522 0.757463 +vt 0.891791 0.731343 +vt 0.891791 0.694030 +vt 0.369403 0.369403 +vt 0.451493 0.354478 +vt 0.369403 0.425373 +vt 0.395523 0.388060 +vt 0.429104 0.358209 +vt 0.391791 0.440298 +vt 0.429104 0.376866 +vt 0.309702 0.309702 +vt 0.945896 0.429104 +vt 0.944030 0.055970 +vt 0.899254 0.085821 +vt 0.951493 0.085821 +vt 0.638060 0.867922 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.4082 0.4082 -0.8165 +vn -0.4082 0.4082 -0.8165 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.8320 -0.5547 +vn 0.0000 0.3162 0.9487 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.9778 0.2095 +vn 0.0000 0.9923 0.1240 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.9852 0.1716 0.0000 +vn 0.9852 0.1712 -0.0025 +vn -0.9991 0.0416 0.0000 +vn 0.0000 0.5547 0.8321 +vn 0.9991 0.0416 0.0000 +vn 0.9947 0.0000 -0.1030 +vn 0.0000 0.8321 -0.5547 +vn -0.9852 0.1712 -0.0025 +vn 0.9852 0.1716 0.0000 +vn 0.0000 0.8828 -0.4698 +vn 0.0000 0.9846 -0.1748 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.0000 0.9998 0.0175 +vn 0.4997 0.8660 0.0171 +vn -0.4997 0.8660 0.0171 +vn 0.9654 -0.2604 0.0171 +vn 0.9950 -0.1001 0.0000 +vn 0.9998 -0.0000 0.0175 +vn 0.8892 0.4576 0.0000 +vn 0.8660 0.4997 0.0171 +vn -0.8817 0.4718 0.0000 +vn -0.9998 -0.0000 0.0175 +vn -0.8660 0.4997 0.0171 +vn 0.0048 0.6652 -0.7466 +vn 0.0000 0.8754 -0.4835 +vn 0.0336 0.3645 -0.9306 +vn 0.0308 0.3429 -0.9389 +vn 0.0000 0.2967 -0.9550 +vn -0.9654 -0.2604 0.0171 +vn -0.9945 -0.1050 0.0000 +vn -0.9659 -0.2588 0.0000 +vn -0.0217 0.6807 -0.7322 +vn -0.1528 0.3440 -0.9265 +vn 0.0000 0.6945 -0.7195 +vn 0.0000 0.9998 0.0207 +vn -0.7070 0.7070 0.0208 +vn 0.9998 -0.0006 0.0198 +vn 0.8932 0.4073 -0.1902 +vn 0.5547 0.8321 0.0000 +vn 0.2903 0.9569 0.0009 +vn -0.2903 0.9569 0.0009 +vn -0.0212 0.9998 0.0000 +vn -0.5547 0.8321 0.0000 +vn 0.4468 -0.8936 0.0431 +vn 0.2311 -0.9718 0.0468 +vn 0.2279 -0.9725 0.0469 +vn -0.8932 0.4073 -0.1902 +vn -0.9817 0.0000 -0.1905 +vn -0.1753 0.9688 0.1753 +vn -0.2311 -0.9718 0.0468 +vn -0.2279 -0.9725 0.0469 +vn 0.9817 0.0000 -0.1905 +vn -0.4468 -0.8936 0.0431 +vn 0.1753 0.9688 0.1753 +vn 0.8321 -0.0000 -0.5547 +vn 0.5883 0.5883 -0.5547 +vn -0.5883 0.5883 -0.5547 +vn -0.8321 -0.0000 -0.5547 +vn -0.5883 -0.5883 -0.5547 +vn 0.0000 -0.8321 -0.5547 +vn 0.5883 -0.5883 -0.5547 +vn 0.8320 0.0000 -0.5547 +vn -0.8320 0.0000 -0.5547 +vn -0.9998 -0.0006 0.0198 +vn -0.8917 -0.4523 0.0158 +vn 0.7070 0.7070 0.0208 +vn 0.8917 -0.4523 0.0158 +vn -0.8507 0.5257 0.0000 +vn 0.8507 0.5257 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.4472 0.8944 0.0000 +vn 0.0212 0.9998 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.4472 0.6325 -0.6325 +vn 0.4472 -0.6325 -0.6325 +vn 0.4472 -0.0000 -0.8944 +vn 0.4472 -0.6325 0.6325 +vn 0.4472 -0.8944 -0.0000 +vn 0.4472 0.6325 0.6325 +vn 0.4472 -0.0000 0.8944 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.5000 0.0000 0.8660 +vn 0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn -0.8660 0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 -0.5000 +vn 0.0000 -0.9914 0.1305 +vn 0.0000 -0.8793 0.4762 +vn 0.0000 -0.6302 0.7764 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 0.6950 -0.7190 +vn 0.0000 0.8860 -0.4636 +vn 0.0000 0.9914 -0.1305 +vn 0.0000 0.6412 -0.7674 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 -0.6620 -0.7495 +vn 0.0000 -0.7977 -0.6030 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.7079 0.7064 +vn 0.0000 0.4245 0.9054 +vn 0.0000 0.9763 0.2164 +vn 0.3617 -0.6800 -0.6378 +vn -0.4283 -0.8116 -0.3974 +vn 0.4283 -0.8116 -0.3974 +vn 0.0000 0.9946 0.1041 +vn 0.0000 0.9528 -0.3037 +vn 0.2707 -0.8502 0.4515 +vn -0.2581 -0.6859 0.6804 +vn 0.2581 -0.6859 0.6804 +vn 0.4210 -0.1018 -0.9013 +vn -0.3617 -0.6800 -0.6378 +vn 0.0000 0.8601 0.5101 +vn 0.2571 -0.1631 0.9525 +vn -0.2939 0.0980 0.9508 +vn 0.2939 0.0980 0.9508 +vn 0.4989 0.3637 -0.7867 +vn -0.4210 -0.1018 -0.9013 +vn 0.0000 0.7660 0.6428 +vn 0.2599 -0.6377 0.7251 +vn -0.2571 -0.1631 0.9525 +vn 0.3812 0.3641 -0.8498 +vn -0.4989 0.3637 -0.7867 +vn 0.0000 0.9877 -0.1564 +vn -0.3656 -0.8719 0.3258 +vn -0.2599 -0.6377 0.7251 +vn 0.4369 -0.0300 -0.8990 +vn -0.3812 0.3641 -0.8498 +vn 0.4071 -0.0353 -0.9127 +vn 0.1358 -0.1326 -0.9818 +vn 0.7071 0.0028 -0.7071 +vn 0.3053 -0.9310 0.1999 +vn 0.3656 -0.8719 0.3258 +vn 0.4786 -0.5779 -0.6610 +vn -0.4369 -0.0300 -0.8990 +vn 0.3801 -0.0892 -0.9206 +vn -0.4071 -0.0353 -0.9127 +vn 0.4872 -0.8552 -0.1771 +vn -0.4786 -0.5779 -0.6610 +vn 0.2373 -0.3758 -0.8958 +vn -0.3801 -0.0892 -0.9206 +vn 0.4942 -0.7969 0.3475 +vn -0.4872 -0.8552 -0.1771 +vn 0.0464 -0.5855 -0.8093 +vn -0.2373 -0.3758 -0.8958 +vn 0.3436 -0.7133 0.6108 +vn -0.4942 -0.7969 0.3475 +vn 0.0000 -0.9283 0.3718 +vn 0.0000 -0.9659 0.2588 +vn 0.2689 -0.2349 0.9341 +vn -0.2532 0.0844 0.9637 +vn 0.2532 0.0844 0.9637 +vn 0.5452 -0.7653 0.3421 +vn 0.2726 -0.7450 0.6088 +vn -0.2689 -0.2349 0.9341 +vn 0.5496 -0.7960 0.2536 +vn -0.5452 -0.7653 0.3421 +vn 0.0000 0.9945 -0.1044 +vn 0.2686 -0.8754 0.4020 +vn -0.2726 -0.7450 0.6088 +vn 0.5439 -0.8274 0.1401 +vn -0.5496 -0.7960 0.2536 +vn 0.0000 0.9404 -0.3400 +vn 0.2611 -0.1819 0.9480 +vn 0.3902 -0.9157 0.0962 +vn -0.5439 -0.8274 0.1401 +vn -0.2611 -0.1819 0.9480 +vn 0.8328 -0.0769 -0.5481 +vn -0.1358 -0.1326 -0.9818 +vn 0.8962 -0.3180 -0.3092 +vn 0.7188 -0.0240 -0.6948 +vn 0.8128 -0.5252 0.2521 +vn 0.6507 -0.7120 0.2640 +vn 0.8077 -0.5485 0.2161 +vn 0.9322 -0.3484 0.0980 +vn 0.9464 -0.2954 0.1306 +vn 0.4576 0.0558 0.8874 +vn 0.5398 -0.2890 0.7906 +vn 0.9747 -0.2052 0.0886 +vn 0.5706 -0.6782 0.4631 +vn 0.9789 -0.1943 0.0638 +vn 0.4954 -0.8429 0.2102 +vn 0.9793 -0.1994 0.0343 +vn 0.7293 0.6317 -0.2627 +vn 0.9364 0.3106 -0.1634 +vn 0.9284 0.3428 -0.1432 +vn 0.4718 0.0643 0.8793 +vn 0.5046 -0.2779 0.8174 +vn -0.9793 -0.1994 0.0343 +vn -0.7249 -0.6853 0.0697 +vn 0.9300 0.3408 -0.1376 +vn 0.4666 -0.6348 0.6159 +vn 0.6337 -0.7027 -0.3235 +vn 0.7008 -0.3789 -0.6044 +vn 0.8048 0.5815 -0.1191 +vn 0.9451 0.3045 -0.1184 +vn 0.4634 -0.7810 0.4187 +vn 0.7152 0.0555 -0.6967 +vn 0.9654 0.2563 -0.0474 +vn 0.8634 0.4934 -0.1052 +vn 0.5213 -0.2174 0.8252 +vn -0.7979 0.3019 -0.5218 +vn 0.8618 0.4995 -0.0885 +vn 0.6057 -0.5861 0.5382 +vn 0.6936 0.2622 -0.6709 +vn 0.7979 0.3019 -0.5218 +vn 0.9003 0.4329 -0.0461 +vn 0.9716 0.2354 -0.0255 +vn 0.6590 0.6590 -0.3626 +vn 0.8518 0.3705 -0.3705 +vn 0.7047 -0.7047 0.0827 +vn 0.0000 0.5257 0.8507 +vn 0.0000 0.8944 0.4472 +vn 0.6830 0.6830 -0.2589 +vn 0.4122 -0.4345 -0.8008 +vn -0.4122 -0.4345 -0.8008 +vn -0.7188 -0.0240 -0.6948 +vn 0.8812 -0.4406 -0.1711 +vn -0.9322 -0.3484 0.0980 +vn -0.9716 0.2354 -0.0255 +vn -0.9464 -0.2954 0.1306 +vn -0.9747 -0.2052 0.0886 +vn -0.9789 -0.1943 0.0638 +vn -0.9654 0.2563 -0.0474 +vn -0.9451 0.3045 -0.1184 +vn -0.9291 0.3446 -0.1345 +vn -0.9266 0.3439 -0.1522 +vn -0.7071 0.0028 -0.7071 +vn -0.9003 0.4329 -0.0461 +vn -0.8618 0.4995 -0.0885 +vn -0.8634 0.4934 -0.1052 +vn -0.8048 0.5815 -0.1191 +vn -0.6914 0.6800 -0.2443 +vn -0.7374 0.6175 -0.2737 +vn -0.9364 0.3106 -0.1634 +vn -0.6590 0.6590 -0.3626 +vn -0.8517 0.3705 -0.3705 +vn -0.0464 -0.5855 -0.8093 +vn -0.8077 -0.5485 0.2161 +vn -0.7385 -0.6513 0.1745 +vn -0.3902 -0.9157 0.0962 +vn -0.6337 -0.7027 -0.3235 +vn -0.7008 -0.3789 -0.6044 +vn -0.7152 0.0555 -0.6967 +vn -0.6936 0.2622 -0.6709 +vn -0.8328 -0.0769 -0.5481 +vn -0.8962 -0.3180 -0.3092 +vn -0.8128 -0.5252 0.2521 +vn -0.3436 -0.7133 0.6108 +vn -0.4576 0.0558 0.8874 +vn -0.5398 -0.2890 0.7906 +vn -0.4954 -0.8429 0.2102 +vn -0.2686 -0.8754 0.4020 +vn -0.4718 0.0643 0.8793 +vn -0.5046 -0.2779 0.8174 +vn -0.4634 -0.7810 0.4187 +vn -0.2707 -0.8502 0.4515 +vn -0.5213 -0.2174 0.8252 +vn -0.7047 -0.7047 0.0827 +vn -0.6057 -0.5861 0.5382 +vn -0.3053 -0.9310 0.1999 +vn -0.8812 -0.4406 -0.1711 +vn -0.9978 -0.0657 0.0000 +vn 0.9962 -0.0872 0.0000 +vn 0.0665 0.3772 0.9238 +vn 0.1604 0.9098 0.3827 +vn 0.1540 0.8732 -0.4625 +vn 0.9848 -0.1736 -0.0000 +vn 0.9848 -0.1737 -0.0000 +vn -0.0665 0.3772 0.9238 +vn -0.0665 0.3769 0.9239 +vn -0.1604 0.9098 0.3827 +vn -0.1499 0.8739 -0.4623 +vn -0.9848 -0.1736 0.0000 +vn -0.9962 -0.0872 -0.0000 +vn 0.1499 0.8739 -0.4623 +vn 0.0079 0.5854 -0.8107 +vn 0.0000 0.5871 -0.8095 +vn -0.1540 0.8732 -0.4625 +vn -0.0079 0.5854 -0.8107 +vn 0.0960 -0.5481 -0.8309 +vn 0.0622 -0.7750 -0.6288 +vn 0.2862 -0.5725 -0.7684 +vn 0.9144 -0.0000 -0.4049 +vn 0.9269 0.0000 -0.3754 +vn -0.9947 0.0000 -0.1030 +vn -0.9269 0.0000 -0.3754 +vn -0.9577 0.0000 -0.2879 +vn -0.0960 -0.5481 -0.8309 +vn -0.2862 -0.5725 -0.7684 +vn -0.0622 -0.7750 -0.6288 +vn 0.0000 -0.9639 -0.2662 +vn 0.0000 0.3604 0.9328 +vn 0.7249 -0.6853 0.0697 +vn -0.1469 0.2439 -0.9586 +vn 0.0000 0.6769 -0.7360 +vn -0.5000 0.8660 0.0000 +vn 0.9659 -0.2588 0.0000 +vn -0.9328 0.3604 0.0000 +vn 0.9328 0.3604 0.0000 +vn 0.7385 -0.6513 0.1745 +vn -0.6507 -0.7120 0.2640 +vn -0.5706 -0.6782 0.4631 +vn -0.4666 -0.6348 0.6159 +vn 0.9978 -0.0657 -0.0000 +vn 0.0665 0.3769 0.9239 +vn -0.9848 -0.1737 -0.0000 +vn -0.0622 -0.7751 -0.6288 +s off +f 345/602/139 346/603/139 347/604/139 +f 348/605/140 349/606/140 350/607/140 +f 351/608/140 352/609/140 353/610/140 +f 354/611/141 348/605/141 355/612/141 +f 356/613/142 353/610/142 352/609/142 +f 354/614/140 357/615/140 356/616/140 +f 358/617/143 359/618/143 360/619/143 +f 361/620/144 362/621/144 363/622/144 +f 358/617/145 364/623/145 359/618/145 +f 365/624/146 363/622/146 362/621/146 +f 366/625/147 365/626/147 364/627/147 +f 356/616/148 367/628/148 354/614/148 +f 368/629/140 369/630/140 370/631/140 +f 368/632/140 371/633/140 372/634/140 +f 373/635/140 371/633/140 374/636/140 +f 373/637/140 375/638/140 376/639/140 +f 377/640/140 378/641/140 379/642/140 +f 379/643/140 375/638/140 380/644/140 +f 381/645/142 382/646/142 383/647/142 +f 384/648/141 385/649/141 386/650/141 +f 387/651/149 388/652/149 389/653/149 +f 390/654/140 391/655/140 392/656/140 +f 360/657/149 359/658/149 355/659/149 +f 351/608/149 353/610/149 357/660/149 +f 355/659/149 362/661/149 357/660/149 +f 393/662/150 394/663/150 395/664/150 +f 396/665/140 397/666/140 398/667/140 +f 399/668/149 400/669/149 396/670/149 +f 366/671/142 347/604/142 401/672/142 +f 358/673/142 350/674/142 349/675/142 +f 358/673/142 349/675/142 347/604/142 +f 349/675/142 392/676/142 347/604/142 +f 345/602/142 392/676/142 402/677/142 +f 351/678/141 363/679/141 403/680/141 +f 404/681/141 346/603/141 363/679/141 +f 363/679/141 346/603/141 403/680/141 +f 403/680/141 391/682/141 405/683/141 +f 406/684/141 391/682/141 346/603/141 +f 390/654/149 403/685/149 405/686/149 +f 407/687/139 408/688/139 409/689/139 +f 407/690/140 409/689/140 410/691/140 +f 411/692/141 412/693/141 413/694/141 +f 414/695/151 412/696/151 415/697/151 +f 416/698/151 417/699/151 418/700/151 +f 408/688/142 416/701/142 409/689/142 +f 419/702/150 420/703/150 421/704/150 +f 422/705/142 415/706/142 410/707/142 +f 418/708/141 423/709/141 424/710/141 +f 425/711/149 426/712/149 427/713/149 +f 423/709/149 410/707/149 424/710/149 +f 408/714/150 411/692/150 423/715/150 +f 428/716/152 421/717/152 420/703/152 +f 429/718/150 425/711/150 430/719/150 +f 431/720/150 429/718/150 430/719/150 +f 425/711/150 432/721/150 430/719/150 +f 425/711/150 433/722/150 434/723/150 +f 429/718/150 435/724/150 428/725/150 +f 436/726/150 428/725/150 435/724/150 +f 433/722/150 437/727/150 434/723/150 +f 433/722/150 428/725/150 438/728/150 +f 426/729/140 439/730/140 427/731/140 +f 440/732/140 427/731/140 439/730/140 +f 441/733/140 426/729/140 442/734/140 +f 443/735/140 444/736/140 445/737/140 +f 446/738/150 447/739/150 448/740/150 +f 449/741/150 450/742/150 451/743/150 +f 452/744/151 446/738/151 443/735/151 +f 453/745/140 454/746/140 455/747/140 +f 427/731/140 455/747/140 454/746/140 +f 426/729/140 452/748/140 442/734/140 +f 452/749/141 429/750/141 428/751/141 +f 425/752/142 427/753/142 454/754/142 +f 456/755/142 457/756/142 458/757/142 +f 459/758/141 460/759/141 461/760/141 +f 462/761/139 463/762/139 464/763/139 +f 465/764/149 466/765/149 467/766/149 +f 468/767/149 465/764/149 469/768/149 +f 468/767/149 469/769/149 470/770/149 +f 466/765/149 471/771/149 467/772/149 +f 472/773/149 470/770/149 469/774/149 +f 471/771/149 473/775/149 467/776/149 +f 473/775/149 474/777/149 475/778/149 +f 474/777/149 476/779/149 475/780/149 +f 476/779/149 477/781/149 475/782/149 +f 477/781/149 478/783/149 479/784/149 +f 478/783/149 480/785/149 479/786/149 +f 480/785/149 472/787/149 479/788/149 +f 481/789/142 482/790/142 483/791/142 +f 483/791/142 484/792/142 485/793/142 +f 481/789/142 486/794/142 487/795/142 +f 488/796/141 489/797/141 490/798/141 +f 491/799/142 492/800/142 493/801/142 +f 494/802/149 385/803/149 495/804/149 +f 496/805/141 497/806/141 498/807/141 +f 499/808/141 496/805/141 500/809/141 +f 500/809/141 501/810/141 499/811/141 +f 502/812/153 503/813/153 504/814/153 +f 505/815/142 506/816/142 486/794/142 +f 507/817/142 506/818/142 508/819/142 +f 509/820/142 507/817/142 508/819/142 +f 510/821/142 508/819/142 503/822/142 +f 510/821/142 503/822/142 511/823/142 +f 485/793/142 512/824/142 513/825/142 +f 511/823/142 513/826/142 514/827/142 +f 498/807/141 515/828/141 516/829/141 +f 515/830/141 517/831/141 516/832/141 +f 517/831/141 518/833/141 516/832/141 +f 519/834/141 520/835/141 521/836/141 +f 521/837/141 522/838/141 523/839/141 +f 522/838/141 524/840/141 525/841/141 +f 525/841/141 516/832/141 518/833/141 +f 524/842/154 526/843/154 527/844/154 +f 366/671/150 528/845/150 404/846/150 +f 369/630/140 529/847/140 370/848/140 +f 530/849/140 377/850/140 531/851/140 +f 532/852/150 533/853/150 534/854/150 +f 535/855/149 536/856/149 532/857/149 +f 537/858/155 532/857/155 536/856/155 +f 538/859/156 539/860/156 540/861/156 +f 541/862/150 542/863/150 543/864/150 +f 544/865/149 545/866/149 542/867/149 +f 546/868/157 541/862/157 547/869/157 +f 548/870/158 546/871/158 547/872/158 +f 543/864/159 545/873/159 548/874/159 +f 549/875/140 550/876/140 551/877/140 +f 389/653/150 552/878/150 387/651/150 +f 553/879/140 452/748/140 554/880/140 +f 452/748/140 454/746/140 554/880/140 +f 365/881/149 359/882/149 364/883/149 +f 402/884/160 555/885/160 345/886/160 +f 345/602/139 406/684/139 346/603/139 +f 348/605/140 367/887/140 349/606/140 +f 351/608/140 403/888/140 352/609/140 +f 354/611/141 367/887/141 348/605/141 +f 356/613/142 357/889/142 353/610/142 +f 354/614/140 355/890/140 357/615/140 +f 358/617/145 366/625/145 364/623/145 +f 365/624/146 404/891/146 363/622/146 +f 366/625/161 404/891/161 365/626/161 +f 356/616/148 352/892/148 367/628/148 +f 368/629/140 372/634/140 369/630/140 +f 368/632/140 374/893/140 371/633/140 +f 373/635/140 376/639/140 371/633/140 +f 373/637/140 380/894/140 375/638/140 +f 377/640/140 530/849/140 378/641/140 +f 379/643/140 378/641/140 375/638/140 +f 381/645/142 556/895/142 557/896/142 +f 556/895/142 558/897/142 557/896/142 +f 557/896/142 382/646/142 381/645/142 +f 382/646/142 559/898/142 383/647/142 +f 560/899/141 561/900/141 562/901/141 +f 562/901/141 563/902/141 560/899/141 +f 563/902/141 384/648/141 386/650/141 +f 560/899/141 563/902/141 386/650/141 +f 387/651/149 564/903/149 388/652/149 +f 390/654/140 405/686/140 391/655/140 +f 348/605/149 350/607/149 355/659/149 +f 350/607/149 360/657/149 355/659/149 +f 362/661/149 361/904/149 357/660/149 +f 361/904/149 351/608/149 357/660/149 +f 355/659/149 359/658/149 362/661/149 +f 395/664/150 565/905/150 393/662/150 +f 565/905/150 566/906/150 400/907/150 +f 393/662/150 565/905/150 400/907/150 +f 398/667/140 567/908/140 396/665/140 +f 567/908/140 568/909/140 399/910/140 +f 396/665/140 567/908/140 399/910/140 +f 399/668/149 393/911/149 400/669/149 +f 366/671/142 358/673/142 347/604/142 +f 358/673/142 360/912/142 350/674/142 +f 349/675/142 390/654/142 392/676/142 +f 345/602/142 347/604/142 392/676/142 +f 351/678/141 361/913/141 363/679/141 +f 404/681/141 528/914/141 346/603/141 +f 403/680/141 346/603/141 391/682/141 +f 406/684/141 569/915/141 391/682/141 +f 390/654/149 349/675/149 403/685/149 +f 407/687/139 411/916/139 408/688/139 +f 415/917/140 412/693/140 410/691/140 +f 412/693/140 407/690/140 410/691/140 +f 409/689/140 416/701/140 424/918/140 +f 416/701/140 418/919/140 424/918/140 +f 409/689/140 424/918/140 410/691/140 +f 411/692/141 407/690/141 412/693/141 +f 414/695/151 413/920/151 412/696/151 +f 416/698/151 570/921/151 417/699/151 +f 408/688/142 570/922/142 416/701/142 +f 419/702/150 571/923/150 420/703/150 +f 422/705/142 414/695/142 415/706/142 +f 418/708/141 417/699/141 423/709/141 +f 425/711/149 429/718/149 426/712/149 +f 423/709/149 422/705/149 410/707/149 +f 411/692/150 413/694/150 422/924/150 +f 413/694/150 414/925/150 422/924/150 +f 417/926/150 570/927/150 423/715/150 +f 570/927/150 408/714/150 423/715/150 +f 411/692/150 422/924/150 423/715/150 +f 428/716/152 433/928/152 421/717/152 +f 431/720/150 435/724/150 429/718/150 +f 425/711/150 434/723/150 432/721/150 +f 436/726/150 438/728/150 428/725/150 +f 433/722/150 438/728/150 437/727/150 +f 440/732/140 455/747/140 427/731/140 +f 441/733/140 439/730/140 426/729/140 +f 443/735/140 572/929/140 444/736/140 +f 446/738/150 452/744/150 447/739/150 +f 449/741/150 454/930/150 450/742/150 +f 443/735/151 445/737/151 454/930/151 +f 445/737/151 450/742/151 454/930/151 +f 454/930/151 452/744/151 443/735/151 +f 453/745/140 554/880/140 454/746/140 +f 428/751/141 420/703/141 571/923/141 +f 571/923/141 447/931/141 428/751/141 +f 447/931/141 452/749/141 428/751/141 +f 452/749/141 426/932/141 429/750/141 +f 454/754/142 449/933/142 433/934/142 +f 449/933/142 419/935/142 433/934/142 +f 419/935/142 421/936/142 433/934/142 +f 433/934/142 425/752/142 454/754/142 +f 458/757/142 573/937/142 574/938/142 +f 574/938/142 575/939/142 456/755/142 +f 456/755/142 576/940/142 457/756/142 +f 457/756/142 577/941/142 458/757/142 +f 458/757/142 574/938/142 456/755/142 +f 461/760/141 578/942/141 579/943/141 +f 579/943/141 580/944/141 459/758/141 +f 459/758/141 581/945/141 460/759/141 +f 460/759/141 582/946/141 461/760/141 +f 461/760/141 579/943/141 459/758/141 +f 464/763/139 583/947/139 584/948/139 +f 584/948/139 585/949/139 586/950/139 +f 586/950/139 587/951/139 588/952/139 +f 588/952/139 589/953/139 462/761/139 +f 462/761/139 590/954/139 463/762/139 +f 463/762/139 591/955/139 464/763/139 +f 464/763/139 584/948/139 462/761/139 +f 584/948/139 586/950/139 462/761/139 +f 586/950/139 588/952/139 462/761/139 +f 465/764/149 592/956/149 466/765/149 +f 468/767/149 592/956/149 465/764/149 +f 472/773/149 593/957/149 470/770/149 +f 471/771/149 594/958/149 473/775/149 +f 473/775/149 594/958/149 474/777/149 +f 476/779/149 595/959/149 477/781/149 +f 477/781/149 595/959/149 478/783/149 +f 480/785/149 593/960/149 472/787/149 +f 481/789/142 487/961/142 482/790/142 +f 483/791/142 482/962/142 484/792/142 +f 481/789/142 505/815/142 486/794/142 +f 488/796/141 494/963/141 489/797/141 +f 491/799/142 495/964/142 492/800/142 +f 491/965/149 489/966/149 494/802/149 +f 494/802/149 386/967/149 385/803/149 +f 385/803/149 559/968/149 495/804/149 +f 559/968/149 382/969/149 495/804/149 +f 495/804/149 491/965/149 494/802/149 +f 496/805/141 596/970/141 497/806/141 +f 499/808/141 596/971/141 496/805/141 +f 500/809/141 520/835/141 501/810/141 +f 502/812/153 513/972/153 503/813/153 +f 505/815/142 508/973/142 506/816/142 +f 510/821/142 509/820/142 508/819/142 +f 485/793/142 484/792/142 512/824/142 +f 511/823/142 503/822/142 513/826/142 +f 498/807/141 497/806/141 515/828/141 +f 519/834/141 501/810/141 520/835/141 +f 521/837/141 524/840/141 522/838/141 +f 525/841/141 524/840/141 516/832/141 +f 524/842/154 521/974/154 526/843/154 +f 366/671/150 401/672/150 528/845/150 +f 534/854/150 597/975/150 535/976/150 +f 597/975/150 598/977/150 535/976/150 +f 535/976/150 532/852/150 534/854/150 +f 535/855/149 540/861/149 536/856/149 +f 536/856/162 599/978/162 600/979/162 +f 600/979/155 537/858/155 536/856/155 +f 540/861/163 535/855/163 601/980/163 +f 601/980/163 538/859/163 540/861/163 +f 541/862/150 544/981/150 542/863/150 +f 544/865/149 546/871/149 545/866/149 +f 546/868/157 544/981/157 541/862/157 +f 548/870/158 545/866/158 546/871/158 +f 543/864/159 542/863/159 545/873/159 +f 550/876/140 602/982/140 603/983/140 +f 603/983/140 604/984/140 550/876/140 +f 604/984/140 551/877/140 550/876/140 +f 551/877/140 605/985/140 606/986/140 +f 606/986/140 549/875/140 551/877/140 +f 607/987/150 552/878/150 389/653/150 +f 552/878/150 608/988/150 387/651/150 +f 553/879/140 442/734/140 452/748/140 +f 365/881/149 362/989/149 359/882/149 +s 1 +f 488/990/164 561/991/165 560/992/164 +f 376/639/139 609/993/153 371/633/153 +f 372/634/142 610/994/145 369/630/145 +f 375/638/154 611/995/139 376/639/139 +f 371/633/153 612/996/142 372/634/142 +f 534/997/166 369/630/145 610/994/145 +f 530/849/146 613/998/141 378/641/141 +f 378/641/141 614/999/154 375/638/154 +f 597/1000/167 530/849/146 531/851/167 +f 608/1001/168 615/1002/169 616/1003/170 +f 552/1004/149 617/1005/171 615/1002/169 +f 618/1006/172 619/1007/173 620/1008/174 +f 620/1008/174 621/1009/175 622/1010/176 +f 623/1011/177 624/1012/178 625/1013/179 +f 383/1014/180 626/1015/181 381/1016/181 +f 621/1017/182 559/1018/183 564/1019/184 +f 627/1020/185 628/1021/186 629/1022/187 +f 629/1023/181 384/1024/188 563/1025/181 +f 623/1026/189 384/1024/188 628/1027/190 +f 615/1002/169 617/1005/171 630/1028/191 +f 631/1029/192 630/1028/191 617/1005/171 +f 622/1010/176 632/1030/193 620/1008/174 +f 633/1031/194 555/1032/195 634/1033/196 +f 635/1034/197 569/1035/198 636/1036/199 +f 637/1037/200 638/1038/201 639/1039/202 +f 640/1040/141 641/1041/203 642/1042/204 +f 641/1043/203 643/1044/205 635/1034/197 +f 639/1039/202 644/1045/206 645/1046/207 +f 633/1047/194 646/1048/142 637/1037/208 +f 644/1045/206 642/1042/209 645/1046/207 +f 647/1049/210 633/1031/194 634/1033/196 +f 612/996/211 648/1050/212 610/994/212 +f 649/1051/161 650/1052/213 651/1053/213 +f 613/998/214 652/1054/215 614/999/215 +f 611/995/216 653/1055/217 609/993/217 +f 612/996/211 653/1056/217 654/1057/218 +f 649/1058/161 648/1059/212 655/1060/161 +f 613/998/214 650/1061/213 656/1062/219 +f 614/999/215 657/1063/216 611/995/216 +f 658/1064/220 650/1065/146 631/1066/192 +f 659/1067/221 656/1068/141 658/1064/220 +f 660/1069/139 653/1070/153 657/1071/139 +f 661/1072/222 654/1073/142 632/1074/193 +f 631/1066/192 655/1075/149 630/1076/191 +f 660/1069/139 652/1077/154 659/1067/221 +f 632/1074/193 653/1070/153 662/1078/223 +f 630/1079/191 648/1080/145 661/1072/222 +f 398/667/141 566/1081/224 565/905/141 +f 395/1082/142 568/1083/225 567/908/142 +f 397/1084/224 400/669/226 566/1081/224 +f 394/1085/225 399/1086/227 568/1083/225 +f 625/1013/179 624/1012/178 658/1087/220 +f 402/1088/228 392/1089/149 569/1035/198 +f 618/1006/172 632/1090/193 662/1091/223 +f 439/1092/139 431/1093/153 430/1094/139 +f 553/1095/145 438/1096/149 436/1097/145 +f 453/1098/146 434/1099/141 437/1100/146 +f 440/1101/154 430/1102/139 432/1103/154 +f 441/1104/153 435/1105/142 431/1093/153 +f 442/1106/142 436/1097/145 435/1105/142 +f 554/1107/149 437/1100/146 438/1096/149 +f 455/1108/141 432/1103/154 434/1099/141 +f 456/1109/139 663/1110/229 664/1111/139 +f 574/1112/140 665/1113/230 666/1114/140 +f 577/1115/231 667/1116/150 668/1117/231 +f 576/1118/232 664/1111/139 669/1119/232 +f 575/1120/229 666/1114/140 663/1110/229 +f 573/1121/230 670/1122/149 665/1113/230 +f 458/1123/149 668/1117/231 670/1124/149 +f 457/1125/150 669/1119/232 667/1116/150 +f 671/1126/233 672/1127/227 673/1128/227 +f 674/1129/234 675/1130/235 676/1131/234 +f 677/1132/236 678/1133/237 679/1134/237 +f 680/1135/238 681/1136/239 682/1137/238 +f 672/1138/227 682/1137/238 673/1139/227 +f 675/1130/235 683/1140/233 671/1126/233 +f 678/1133/237 676/1131/234 679/1134/237 +f 681/1136/239 684/1141/236 677/1132/236 +f 672/1138/149 578/1142/230 680/1135/230 +f 683/1140/231 579/1143/149 672/1127/149 +f 674/1129/232 459/1144/150 685/1145/150 +f 684/1141/229 460/1146/139 678/1133/139 +f 680/1135/230 461/1147/140 686/1148/140 +f 685/1145/150 580/1149/231 683/1140/231 +f 678/1133/139 581/1150/232 674/1129/232 +f 686/1148/140 582/1151/229 684/1141/229 +f 687/1152/150 475/1153/240 688/1154/240 +f 689/1155/142 467/1156/241 690/1157/241 +f 691/1158/140 469/1159/242 692/1160/242 +f 693/1161/141 479/1162/243 694/1163/243 +f 688/1154/240 477/1164/141 693/1161/141 +f 690/1157/241 473/1165/150 687/1152/150 +f 692/1160/242 465/1166/142 689/1155/142 +f 694/1163/243 472/1167/140 691/1168/140 +f 470/770/244 590/1169/245 468/767/245 +f 476/779/246 584/1170/141 595/959/141 +f 478/783/247 464/1171/248 480/785/248 +f 471/771/249 587/1172/150 594/958/150 +f 468/767/245 462/1173/142 592/956/142 +f 480/785/248 591/1174/140 593/960/140 +f 594/958/150 586/1175/250 474/777/250 +f 592/956/142 589/1176/251 466/765/251 +f 593/957/140 463/1177/244 470/770/244 +f 474/777/250 585/1178/246 476/779/246 +f 595/959/141 583/1179/247 478/783/247 +f 466/765/251 588/1180/249 471/771/249 +f 498/807/252 481/789/253 496/805/253 +f 481/789/253 500/809/254 496/805/253 +f 500/809/254 485/793/255 520/835/255 +f 488/990/164 386/967/256 494/802/256 +f 558/1181/165 492/1182/164 557/1183/164 +f 382/969/256 492/1182/164 495/804/256 +f 596/1184/257 486/1185/258 497/1186/258 +f 487/1187/257 499/1188/259 482/1189/259 +f 484/1190/260 499/1188/259 501/1191/260 +f 521/836/140 485/793/255 513/825/140 +f 523/839/141 695/1192/141 521/837/141 +f 519/1193/261 484/1190/260 501/1191/260 +f 512/1194/261 695/1195/262 696/1196/262 +f 514/1197/263 695/1195/262 523/1198/263 +f 511/1199/264 523/1198/139 522/1200/264 +f 511/1201/264 525/1202/265 510/1203/265 +f 509/1204/140 525/1202/265 518/1205/140 +f 507/1206/266 518/1205/267 517/1207/266 +f 506/1208/268 517/1207/266 515/1209/268 +f 486/1185/258 515/1209/268 497/1186/258 +f 516/829/139 505/815/252 498/807/252 +f 519/1210/141 521/837/141 695/1192/141 +f 658/1211/220 627/1020/185 659/1212/221 +f 697/1213/269 698/1214/270 699/1215/271 +f 700/1216/272 701/1217/273 702/1218/273 +f 703/1219/274 704/1220/275 705/1221/276 +f 706/1222/277 707/1223/278 697/1224/269 +f 708/1225/279 709/1226/272 700/1216/272 +f 710/1227/280 711/1228/281 703/1219/282 +f 712/1229/283 713/1230/284 706/1222/277 +f 714/1231/285 715/1232/279 708/1225/279 +f 716/1233/286 717/1234/287 710/1227/280 +f 718/1235/288 719/1236/289 712/1229/283 +f 720/1237/290 714/1231/290 721/1238/290 +f 716/1233/286 722/1239/291 723/1240/292 +f 724/1241/293 725/1242/294 718/1235/288 +f 726/1243/295 721/1244/296 727/1245/297 +f 728/1246/298 722/1239/291 729/1247/299 +f 730/1248/300 731/1249/301 724/1241/293 +f 732/1250/302 733/1251/303 726/1243/295 +f 734/1252/304 735/1253/305 730/1248/300 +f 736/1254/306 737/1255/307 732/1250/302 +f 738/1256/308 739/1257/309 734/1252/304 +f 740/1258/310 741/1259/311 736/1254/306 +f 742/1260/312 743/1261/313 738/1256/308 +f 744/1262/314 745/1263/315 740/1264/315 +f 746/1265/316 747/1266/317 742/1260/318 +f 748/1267/319 749/1268/314 744/1262/314 +f 750/1269/320 751/1270/321 746/1265/316 +f 752/1271/322 753/1272/323 748/1267/319 +f 754/1273/324 755/1274/149 756/1275/149 +f 757/1276/325 758/1277/326 750/1269/320 +f 759/1278/327 760/1279/328 752/1271/322 +f 761/1280/329 762/1281/324 754/1273/324 +f 763/1282/330 764/1283/281 757/1276/282 +f 699/1284/331 765/1285/332 759/1278/327 +f 702/1218/273 766/1286/329 761/1280/329 +f 705/1221/276 767/1287/333 763/1282/330 +f 718/1235/288 768/1288/334 724/1241/293 +f 721/1244/296 733/1251/303 720/1289/335 +f 730/1248/300 768/1288/334 769/1290/336 +f 726/1243/295 770/1291/337 732/1250/302 +f 738/1256/308 734/1252/304 771/1292/338 +f 742/1293/312 771/1294/338 772/1295/339 +f 744/1296/340 773/1297/341 774/1298/342 +f 746/1299/316 772/1300/343 775/1301/344 +f 748/1302/319 744/1296/340 776/1303/345 +f 750/1304/320 775/1301/344 777/1305/346 +f 752/1306/322 748/1302/319 778/1307/347 +f 750/1304/320 779/1308/348 757/1276/325 +f 752/1306/322 780/1309/349 759/1310/327 +f 761/1311/350 781/1312/351 782/1313/352 +f 763/1314/330 779/1308/353 783/1315/354 +f 784/1316/355 765/1317/332 785/1318/356 +f 786/1319/357 761/1311/350 782/1313/352 +f 705/1320/276 783/1315/354 787/1321/358 +f 697/1213/269 788/1322/359 789/1323/360 +f 700/1324/361 786/1319/357 790/1325/362 +f 705/1320/276 791/1326/363 703/1219/274 +f 792/1327/364 706/1222/277 789/1323/360 +f 700/1324/361 793/1328/365 708/1329/366 +f 710/1330/280 791/1326/353 794/1331/367 +f 719/1236/289 795/1332/368 713/1230/284 +f 708/1329/366 793/1328/365 714/1333/369 +f 716/1334/286 794/1331/367 796/1335/370 +f 797/1336/371 712/1229/283 798/1337/372 +f 721/1338/373 714/1333/369 727/1339/374 +f 754/1340/375 756/1341/376 781/1312/351 +f 729/1247/299 799/1342/377 728/1246/298 +f 800/1343/140 801/1344/378 802/1345/378 +f 802/1345/378 347/1346/379 346/1347/379 +f 727/1339/374 714/1333/369 793/1328/365 +f 761/1311/350 786/1319/357 702/1348/380 +f 736/1254/306 773/1349/381 740/1350/310 +f 741/1259/311 803/1351/382 737/1255/307 +f 803/1351/382 804/1352/383 737/1255/307 +f 770/1353/142 727/1339/374 773/1297/341 +f 697/1224/269 789/1323/360 706/1222/277 +f 712/1229/283 797/1336/371 718/1235/288 +f 778/1307/347 748/1302/319 776/1303/345 +f 773/1297/341 727/1339/374 774/1298/342 +f 727/1339/374 776/1303/345 774/1298/342 +f 778/1307/347 776/1303/345 793/1328/365 +f 793/1328/365 790/1325/362 778/1307/347 +f 786/1319/357 778/1307/347 790/1325/362 +f 786/1319/357 782/1313/352 780/1309/349 +f 756/1341/376 401/1354/142 781/1312/351 +f 401/1354/142 782/1313/352 781/1312/351 +f 401/1354/142 347/1355/142 788/1356/142 +f 730/1248/300 769/1290/336 734/1252/304 +f 771/1292/338 734/1252/304 805/1357/384 +f 734/1252/304 769/1290/336 805/1358/384 +f 768/1359/142 775/1360/142 769/1361/142 +f 777/1362/142 797/1363/142 798/1364/142 +f 779/1365/142 777/1362/142 783/1366/142 +f 777/1362/142 798/1364/142 783/1366/142 +f 794/1367/142 792/1368/142 796/1369/142 +f 791/1370/142 787/1371/142 794/1367/142 +f 783/1366/142 798/1364/142 787/1371/142 +f 794/1367/142 787/1371/142 798/1364/142 +f 798/1364/142 792/1368/142 794/1367/142 +f 799/1372/142 796/1369/142 792/1368/142 +f 799/1372/142 801/1373/142 728/1374/142 +f 799/1372/142 789/1375/142 347/1355/142 +f 788/1356/142 347/1355/142 789/1375/142 +f 792/1368/142 789/1375/142 799/1372/142 +f 788/1356/142 780/1309/349 401/1354/142 +f 776/1303/345 744/1296/340 774/1298/342 +f 804/1376/141 803/1377/385 806/1378/386 +f 803/1377/385 807/1379/387 806/1378/386 +f 808/1380/388 806/1378/386 807/1379/387 +f 809/1381/389 810/1382/390 808/1380/388 +f 810/1382/390 809/1381/389 811/1383/391 +f 812/1384/392 809/1381/389 784/1316/355 +f 812/1384/392 784/1316/355 813/1385/393 +f 814/1386/141 815/1387/141 816/1388/141 +f 816/1388/141 817/1389/141 795/1390/141 +f 818/1391/141 819/1392/141 817/1389/141 +f 817/1389/141 819/1392/141 795/1390/141 +f 820/1393/141 821/1394/141 822/1395/141 +f 823/1396/141 820/1393/141 824/1397/141 +f 819/1392/141 824/1397/141 795/1390/141 +f 820/1393/141 795/1390/141 824/1397/141 +f 795/1390/141 820/1393/141 822/1395/141 +f 825/1398/141 822/1395/141 821/1394/141 +f 822/1395/141 825/1398/141 826/1399/141 +f 806/1400/394 720/1289/335 733/1251/303 +f 720/1401/395 806/1378/386 827/1402/396 +f 806/1378/386 810/1382/390 827/1402/396 +f 827/1402/396 810/1382/390 715/1403/397 +f 810/1382/390 709/1404/398 715/1403/397 +f 709/1404/398 812/1384/392 701/1405/399 +f 701/1405/399 813/1385/393 766/1406/400 +f 828/1407/401 766/1406/400 813/1385/393 +f 762/1408/402 828/1407/401 755/1409/403 +f 804/1352/383 733/1251/303 737/1255/307 +f 736/1254/306 732/1250/302 773/1349/381 +f 732/1250/302 770/1291/337 773/1349/381 +f 741/1259/311 745/1410/404 803/1351/382 +f 749/1411/405 803/1377/385 745/1412/406 +f 807/1379/387 749/1411/405 808/1380/388 +f 749/1411/405 753/1413/323 808/1380/388 +f 808/1380/388 753/1413/323 809/1381/389 +f 753/1413/323 760/1414/328 809/1381/389 +f 784/1316/355 760/1414/328 765/1317/332 +f 698/1415/407 785/1416/356 765/1285/332 +f 528/1417/141 755/1409/403 828/1407/401 +f 813/1385/393 528/1417/141 828/1407/401 +f 785/1318/141 528/1417/141 784/1316/355 +f 528/1417/141 785/1318/141 346/1418/141 +f 707/1419/278 785/1420/408 698/1214/270 +f 713/1230/284 826/1421/409 707/1223/278 +f 826/1421/409 713/1230/284 822/1422/410 +f 712/1229/283 706/1222/277 798/1337/372 +f 795/1332/368 719/1236/289 816/1423/411 +f 719/1236/289 725/1242/294 816/1423/411 +f 814/1424/412 725/1242/294 731/1249/301 +f 735/1253/305 814/1424/412 731/1249/301 +f 739/1257/309 829/1425/413 735/1253/305 +f 739/1257/309 743/1261/313 830/1426/414 +f 747/1427/415 830/1428/414 743/1261/313 +f 751/1429/321 831/1430/416 747/1266/317 +f 758/1431/326 815/1432/417 751/1429/321 +f 818/1433/418 758/1431/326 764/1283/419 +f 767/1434/333 818/1433/420 764/1283/281 +f 704/1435/275 819/1436/421 767/1434/333 +f 823/1437/422 704/1435/275 711/1228/423 +f 717/1438/287 823/1437/420 711/1228/281 +f 723/1439/292 820/1440/424 717/1438/287 +f 825/1441/425 821/1442/426 722/1239/291 +f 722/1239/291 800/1443/427 825/1441/425 +f 802/1444/141 825/1398/141 800/1445/141 +f 825/1398/141 346/1418/141 826/1399/141 +f 785/1318/141 826/1399/141 346/1418/141 +f 772/1446/142 771/1447/142 775/1360/142 +f 775/1360/142 771/1447/142 769/1361/142 +f 771/1447/142 805/1448/142 769/1361/142 +f 830/1426/414 832/1449/428 739/1257/309 +f 829/1425/413 739/1257/309 832/1450/428 +f 832/1451/141 830/1452/141 829/1453/141 +f 831/1454/141 815/1387/141 830/1452/141 +f 815/1387/141 829/1453/141 830/1452/141 +f 795/1332/368 822/1422/410 713/1230/284 +f 798/1337/372 706/1222/277 792/1327/364 +f 377/1455/140 833/1456/140 531/1457/140 +f 531/1457/141 598/977/429 597/975/141 +f 534/1458/142 834/1459/430 529/1460/142 +f 834/1461/140 599/1462/431 536/1463/140 +f 540/1464/140 835/1465/140 531/1457/140 +f 836/1466/432 537/1467/433 600/1468/432 +f 599/1462/431 836/1466/432 600/1468/432 +f 836/1469/434 837/1470/435 834/1459/430 +f 835/1471/140 539/1472/436 838/1473/437 +f 539/1472/436 839/1474/438 838/1473/437 +f 538/1475/438 840/1476/439 839/1474/438 +f 840/1477/440 835/1465/441 839/1478/440 +f 537/1467/433 841/1479/442 532/1480/443 +f 532/1480/443 841/1479/442 533/1481/444 +f 601/1482/445 535/1483/446 840/1476/439 +f 535/1483/446 598/1484/444 840/1476/439 +f 374/1485/146 551/1486/149 373/1487/149 +f 370/1488/154 606/1489/141 368/1490/141 +f 377/1491/153 550/1492/139 833/1493/139 +f 373/1487/149 604/1494/145 380/1495/145 +f 368/1490/141 605/1496/146 374/1485/146 +f 833/1497/139 549/1498/154 370/1488/154 +f 379/1499/142 602/1500/153 377/1491/153 +f 380/1495/145 603/1501/142 379/1499/142 +f 621/1009/175 564/1502/145 387/1503/145 +f 625/1013/179 389/1504/146 623/1011/177 +f 555/1032/195 402/1088/228 634/1033/196 +f 639/1039/447 842/1505/448 637/1506/449 +f 555/885/450 633/1047/194 842/1507/451 +f 555/885/450 842/1507/451 345/886/160 +f 641/1043/203 635/1034/197 636/1036/199 +f 406/1508/452 843/1509/453 636/1510/454 +f 636/1510/454 843/1509/453 641/1041/203 +f 645/1046/455 642/1511/456 843/1512/457 +f 843/1512/457 639/1039/447 645/1046/455 +f 843/1512/457 345/1513/458 842/1505/448 +f 637/1037/208 842/1507/451 633/1047/194 +f 642/1042/204 641/1041/203 843/1509/453 +f 647/1514/210 844/1515/459 845/1516/459 +f 644/1045/140 638/1038/140 845/1516/459 +f 696/1517/142 513/826/142 512/1518/142 +f 696/1517/142 514/827/142 513/826/142 +f 699/1284/331 759/1278/327 788/1519/460 +f 788/1356/460 759/1310/327 780/1309/349 +f 370/1520/140 529/1460/140 833/1456/140 +f 531/1457/140 833/1456/140 529/1460/140 +f 623/1026/189 385/1521/461 384/1024/188 +f 383/1014/180 621/1017/182 619/1522/462 +f 658/1523/220 631/1029/192 625/1013/179 +f 617/1005/171 625/1013/179 631/1029/192 +f 616/1003/170 661/1524/222 622/1010/176 +f 661/1524/222 632/1525/193 622/1010/176 +f 615/1002/169 630/1028/191 616/1003/170 +f 630/1028/191 661/1524/222 616/1003/170 +f 799/1342/377 729/1247/299 796/1335/370 +f 716/1334/286 796/1335/370 729/1247/299 +f 722/1239/291 821/1442/426 723/1439/292 +f 636/1510/454 569/1526/452 406/1508/452 +f 488/990/164 490/1527/165 561/991/165 +f 376/639/139 611/995/139 609/993/153 +f 372/634/142 612/996/142 610/994/145 +f 375/638/154 614/999/154 611/995/139 +f 371/633/153 609/993/153 612/996/142 +f 534/997/166 529/847/166 369/630/145 +f 530/849/146 651/1053/146 613/998/141 +f 378/641/141 613/998/141 614/999/154 +f 597/1000/167 651/1053/146 530/849/146 +f 608/1001/168 552/1004/149 615/1002/169 +f 552/1004/149 607/1528/463 617/1005/171 +f 618/1006/172 626/1529/464 619/1007/173 +f 620/1008/174 619/1007/173 621/1009/175 +f 623/1011/177 628/1021/186 624/1012/178 +f 383/1014/180 619/1522/462 626/1015/181 +f 621/1017/182 383/1014/180 559/1018/183 +f 627/1020/185 624/1012/178 628/1021/186 +f 629/1023/181 628/1027/190 384/1024/188 +f 637/1037/200 646/1530/200 638/1038/201 +f 640/1040/141 844/1531/465 641/1041/203 +f 641/1043/203 844/1532/465 643/1044/205 +f 639/1039/202 638/1038/201 644/1045/206 +f 633/1047/194 845/1533/466 646/1048/142 +f 644/1045/206 640/1534/209 642/1042/209 +f 647/1049/210 845/1535/466 633/1031/194 +f 612/996/211 654/1536/218 648/1050/212 +f 649/1051/161 655/1537/161 650/1052/213 +f 613/998/214 656/1538/219 652/1054/215 +f 611/995/216 657/1539/216 653/1055/217 +f 612/996/211 609/993/217 653/1056/217 +f 649/1058/161 610/994/212 648/1059/212 +f 613/998/214 651/1053/213 650/1061/213 +f 614/999/215 652/1540/215 657/1063/216 +f 658/1064/220 656/1068/141 650/1065/146 +f 659/1067/221 652/1077/154 656/1068/141 +f 660/1069/139 662/1078/223 653/1070/153 +f 661/1072/222 648/1080/145 654/1073/142 +f 631/1066/192 650/1065/146 655/1075/149 +f 660/1069/139 657/1071/139 652/1077/154 +f 632/1074/193 654/1073/142 653/1070/153 +f 630/1079/191 655/1541/149 648/1080/145 +f 398/667/141 397/1084/224 566/1081/224 +f 395/1082/142 394/1085/225 568/1083/225 +f 397/1084/224 396/670/226 400/669/226 +f 394/1085/225 393/1542/227 399/1086/227 +f 392/1089/149 391/1543/149 569/1035/198 +f 569/1035/198 635/1034/197 402/1088/228 +f 635/1034/197 643/1044/205 634/1033/196 +f 402/1088/228 635/1034/197 634/1033/196 +f 643/1044/205 647/1049/210 634/1033/196 +f 618/1006/172 620/1008/174 632/1090/193 +f 439/1092/139 441/1104/153 431/1093/153 +f 553/1095/145 554/1107/149 438/1096/149 +f 453/1098/146 455/1108/141 434/1099/141 +f 440/1101/154 439/1544/139 430/1102/139 +f 441/1104/153 442/1106/142 435/1105/142 +f 442/1106/142 553/1095/145 436/1097/145 +f 554/1107/149 453/1098/146 437/1100/146 +f 455/1108/141 440/1101/154 432/1103/154 +f 456/1109/139 575/1120/229 663/1110/229 +f 574/1112/140 573/1121/230 665/1113/230 +f 577/1115/231 457/1125/150 667/1116/150 +f 576/1118/232 456/1109/139 664/1111/139 +f 575/1120/229 574/1112/140 666/1114/140 +f 573/1121/230 458/1545/149 670/1122/149 +f 458/1123/149 577/1115/231 668/1117/231 +f 457/1125/150 576/1118/232 669/1119/232 +f 671/1126/233 683/1140/233 672/1127/227 +f 674/1129/234 685/1145/235 675/1130/235 +f 677/1132/236 684/1141/236 678/1133/237 +f 680/1135/238 686/1148/239 681/1136/239 +f 672/1138/227 680/1135/238 682/1137/238 +f 675/1130/235 685/1145/235 683/1140/233 +f 678/1133/237 674/1129/234 676/1131/234 +f 681/1136/239 686/1148/239 684/1141/236 +f 672/1138/149 579/1546/149 578/1142/230 +f 683/1140/231 580/1149/231 579/1143/149 +f 674/1129/232 581/1150/232 459/1144/150 +f 684/1141/229 582/1151/229 460/1146/139 +f 680/1135/230 578/1142/230 461/1147/140 +f 685/1145/150 459/1144/150 580/1149/231 +f 678/1133/139 460/1146/139 581/1150/232 +f 686/1148/140 461/1147/140 582/1151/229 +f 687/1152/150 473/1165/150 475/1153/240 +f 689/1155/142 465/1166/142 467/1156/241 +f 691/1158/140 472/1547/140 469/1159/242 +f 693/1161/141 477/1164/141 479/1162/243 +f 688/1154/240 475/1153/240 477/1164/141 +f 690/1157/241 467/1156/241 473/1165/150 +f 692/1160/242 469/1159/242 465/1166/142 +f 694/1163/243 479/1162/243 472/1167/140 +f 470/770/244 463/1177/244 590/1169/245 +f 476/779/246 585/1178/246 584/1170/141 +f 478/783/247 583/1179/247 464/1171/248 +f 471/771/249 588/1180/249 587/1172/150 +f 468/767/245 590/1169/245 462/1173/142 +f 480/785/248 464/1171/248 591/1174/140 +f 594/958/150 587/1172/150 586/1175/250 +f 592/956/142 462/1173/142 589/1176/251 +f 593/957/140 591/1548/140 463/1177/244 +f 474/777/250 586/1175/250 585/1178/246 +f 595/959/141 584/1170/141 583/1179/247 +f 466/765/251 589/1176/251 588/1180/249 +f 498/807/252 505/815/252 481/789/253 +f 481/789/253 483/791/254 500/809/254 +f 500/809/254 483/791/254 485/793/255 +f 488/990/164 560/992/164 386/967/256 +f 558/1181/165 493/1549/165 492/1182/164 +f 382/969/256 557/1183/164 492/1182/164 +f 596/1184/257 487/1187/257 486/1185/258 +f 487/1187/257 596/1184/257 499/1188/259 +f 484/1190/260 482/1189/259 499/1188/259 +f 513/825/140 502/1550/140 526/1551/140 +f 521/836/140 520/835/255 485/793/255 +f 513/825/140 526/1551/140 521/836/140 +f 519/1193/261 512/1194/261 484/1190/260 +f 512/1194/261 519/1193/261 695/1195/262 +f 514/1197/263 696/1196/262 695/1195/262 +f 511/1199/264 514/1197/139 523/1198/139 +f 511/1201/264 522/1552/264 525/1202/265 +f 509/1204/140 510/1203/265 525/1202/265 +f 507/1206/266 509/1204/267 518/1205/267 +f 506/1208/268 507/1206/266 517/1207/266 +f 486/1185/258 506/1208/268 515/1209/268 +f 516/829/139 508/973/139 505/815/252 +f 658/1211/220 624/1012/178 627/1020/185 +f 697/1213/269 707/1419/278 698/1214/270 +f 700/1216/272 709/1226/272 701/1217/273 +f 703/1219/274 711/1228/423 704/1220/275 +f 706/1222/277 713/1230/284 707/1223/278 +f 708/1225/279 715/1232/279 709/1226/272 +f 710/1227/280 717/1234/287 711/1228/281 +f 712/1229/283 719/1236/289 713/1230/284 +f 714/1231/285 827/1553/285 715/1232/279 +f 716/1233/286 723/1240/292 717/1234/287 +f 718/1235/288 725/1242/294 719/1236/289 +f 720/1237/290 827/1553/290 714/1231/290 +f 716/1233/286 729/1247/299 722/1239/291 +f 724/1241/293 731/1249/301 725/1242/294 +f 728/1246/298 800/1443/427 722/1239/291 +f 730/1248/300 735/1253/305 731/1249/301 +f 732/1250/302 737/1255/307 733/1251/303 +f 734/1252/304 739/1257/309 735/1253/305 +f 736/1254/306 741/1259/311 737/1255/307 +f 738/1256/308 743/1261/313 739/1257/309 +f 740/1258/310 745/1554/404 741/1259/311 +f 742/1260/312 747/1266/415 743/1261/313 +f 744/1262/314 749/1268/314 745/1263/315 +f 746/1265/316 751/1270/321 747/1266/317 +f 748/1267/319 753/1272/323 749/1268/314 +f 750/1269/320 758/1277/326 751/1270/321 +f 752/1271/322 760/1279/328 753/1272/323 +f 754/1273/324 762/1281/324 755/1274/149 +f 757/1276/325 764/1283/419 758/1277/326 +f 759/1278/327 765/1285/332 760/1279/328 +f 761/1280/329 766/1286/329 762/1281/324 +f 763/1282/330 767/1287/333 764/1283/281 +f 699/1284/331 698/1415/407 765/1285/332 +f 702/1218/273 701/1217/273 766/1286/329 +f 705/1221/276 704/1220/275 767/1287/333 +f 718/1235/288 797/1336/371 768/1288/334 +f 721/1244/296 726/1243/295 733/1251/303 +f 730/1248/300 724/1241/293 768/1288/334 +f 726/1243/295 727/1245/297 770/1291/337 +f 742/1293/312 738/1256/308 771/1294/338 +f 744/1296/340 740/1555/467 773/1297/341 +f 746/1299/316 742/1260/318 772/1300/343 +f 750/1304/320 746/1299/316 775/1301/344 +f 750/1304/320 777/1305/346 779/1308/348 +f 752/1306/322 778/1307/347 780/1309/349 +f 761/1311/350 754/1340/375 781/1312/351 +f 763/1314/330 757/1276/282 779/1308/353 +f 705/1320/276 763/1314/330 783/1315/354 +f 697/1213/269 699/1215/271 788/1322/359 +f 700/1324/361 702/1348/380 786/1319/357 +f 705/1320/276 787/1321/358 791/1326/363 +f 700/1324/361 790/1325/362 793/1328/365 +f 710/1330/280 703/1219/282 791/1326/353 +f 716/1334/286 710/1330/280 794/1331/367 +f 800/1343/140 728/1556/140 801/1344/378 +f 802/1345/378 801/1344/378 347/1346/379 +f 727/1339/374 793/1328/365 776/1303/345 +f 786/1319/357 780/1309/349 778/1307/347 +f 401/1354/142 780/1309/349 782/1313/352 +f 768/1359/142 797/1363/142 775/1360/142 +f 777/1362/142 775/1360/142 797/1363/142 +f 799/1372/142 347/1355/142 801/1373/142 +f 808/1380/388 810/1382/390 806/1378/386 +f 812/1384/392 811/1383/391 809/1381/389 +f 814/1386/141 829/1453/141 815/1387/141 +f 816/1388/141 815/1387/141 817/1389/141 +f 810/1382/390 811/1383/391 709/1404/398 +f 709/1404/398 811/1383/391 812/1384/392 +f 701/1405/399 812/1384/392 813/1385/393 +f 828/1407/401 762/1408/402 766/1406/400 +f 804/1352/383 806/1400/394 733/1251/303 +f 749/1411/405 807/1379/387 803/1377/385 +f 784/1316/355 809/1381/389 760/1414/328 +f 813/1385/393 784/1316/355 528/1417/141 +f 707/1419/278 826/1421/409 785/1420/408 +f 814/1424/412 816/1423/411 725/1242/294 +f 735/1253/305 829/1425/413 814/1424/412 +f 747/1427/415 831/1557/468 830/1428/414 +f 751/1429/321 815/1432/417 831/1430/416 +f 758/1431/326 817/1558/469 815/1432/417 +f 818/1433/418 817/1558/469 758/1431/326 +f 767/1434/333 819/1436/421 818/1433/420 +f 704/1435/275 824/1559/470 819/1436/421 +f 823/1437/422 824/1559/470 704/1435/275 +f 717/1438/287 820/1440/424 823/1437/420 +f 723/1439/292 821/1442/426 820/1440/424 +f 802/1444/141 346/1418/141 825/1398/141 +f 531/1457/141 835/1465/441 598/977/429 +f 534/1458/142 533/1560/471 834/1459/430 +f 834/1461/140 837/1561/472 599/1462/431 +f 531/1457/140 529/1460/140 536/1562/140 +f 529/1460/140 834/1459/140 536/1562/140 +f 536/1562/140 540/1464/140 531/1457/140 +f 836/1466/432 841/1479/442 537/1467/433 +f 599/1462/431 837/1561/472 836/1466/432 +f 834/1459/430 533/1560/471 841/1563/434 +f 841/1563/434 836/1469/434 834/1459/430 +f 835/1471/140 540/1564/140 539/1472/436 +f 539/1472/436 538/1475/438 839/1474/438 +f 538/1475/438 601/1482/445 840/1476/439 +f 598/977/429 835/1465/441 840/1477/440 +f 835/1465/441 838/1565/473 839/1478/440 +f 374/1485/146 605/1496/146 551/1486/149 +f 370/1488/154 549/1498/154 606/1489/141 +f 377/1491/153 602/1500/153 550/1492/139 +f 373/1487/149 551/1486/149 604/1494/145 +f 368/1490/141 606/1489/141 605/1496/146 +f 833/1497/139 550/1566/139 549/1498/154 +f 379/1499/142 603/1501/142 602/1500/153 +f 380/1495/145 604/1494/145 603/1501/142 +f 608/1001/168 616/1003/170 387/1503/145 +f 616/1003/170 622/1010/176 387/1503/145 +f 622/1010/176 621/1009/175 387/1503/145 +f 625/1013/179 617/1005/171 389/1504/146 +f 617/1005/171 607/1528/463 389/1504/146 +f 389/1504/146 388/1567/146 623/1011/177 +f 843/1512/457 842/1505/448 639/1039/447 +f 843/1512/474 406/1568/458 345/1513/458 +f 647/1514/210 643/1569/205 844/1515/459 +f 638/1038/140 646/1570/140 845/1516/459 +f 845/1516/459 844/1515/459 644/1045/140 +f 844/1515/459 640/1571/140 644/1045/140 +f 623/1026/189 388/1572/150 385/1521/461 +l 716 799 diff --git a/src/main/resources/assets/hbm/models/weapons/animations/am180.json b/src/main/resources/assets/hbm/models/weapons/animations/am180.json new file mode 100644 index 000000000..696b981a7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/am180.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.049645546823740005, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 0.049645546823740005, "AUTO_CLAMPED", 61.111108462015785, 0.049645546823740005, "AUTO_CLAMPED"], [-0.0984705239534378, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, -0.0984705239534378, "AUTO_CLAMPED", 155.5555502573649, -0.0984705239534378, "AUTO_CLAMPED"], [0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [-0.11763561517000198, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, -0.06207846477627754, "AUTO_CLAMPED", 61.111108462015785, -0.25652849674224854, "AUTO_CLAMPED"], [-0.35466307401657104, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, -0.35466307401657104, "AUTO_CLAMPED", 155.5555502573649, -0.35466307401657104, "AUTO_CLAMPED"], [-0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, -0.0, "AUTO_CLAMPED", 272.2222328186035, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.137577086687088, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 0.137577086687088, "AUTO_CLAMPED", 61.111108462015785, 0.137577086687088, "AUTO_CLAMPED"], [0.027738595381379128, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, 0.04755187779664993, "AUTO_CLAMPED", 155.5555502573649, 0.0, "AUTO_CLAMPED"], [0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [-1.5968555392666686, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, -1.5968555392666686, "AUTO_CLAMPED", 61.111108462015785, -1.5968555392666686, "AUTO_CLAMPED"], [-0.2641522033845276, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, -0.4528323639051482, "AUTO_CLAMPED", 155.5555502573649, 0.0, "AUTO_CLAMPED"], [0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [0.8132398352613003, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 0.8132398352613003, "AUTO_CLAMPED", 61.111108462015785, 0.8132398352613003, "AUTO_CLAMPED"], [-2.1020325519800904, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, -2.1020325519800904, "AUTO_CLAMPED", 155.5555502573649, -2.1020325519800904, "AUTO_CLAMPED"], [-0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, -0.0, "AUTO_CLAMPED", 272.2222328186035, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.11745385395824333, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 0.11745385395824333, "AUTO_CLAMPED", 61.111108462015785, 0.11745385395824333, "AUTO_CLAMPED"], [0.07823202625797401, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, 0.10131339657798917, "AUTO_CLAMPED", 155.5555502573649, 0.045918111145006095, "AUTO_CLAMPED"], [0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]]}}, "Trigger": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[-1.5625001192092896, 0.0, "BEZIER", "AUTO", 16.666666666666668, -1.5625001192092896, "AUTO_CLAMPED"]], "y": [[1.111669898033142, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.111669898033142, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [29.4423193041891, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 29.4423193041891, "AUTO_CLAMPED", 38.888891537984215, 29.4423193041891, "AUTO_CLAMPED"], [29.4423193041891, 66.66666666666666, "BEZIER", "AUTO", 61.111108462015785, 29.4423193041891, "AUTO_CLAMPED", 133.33333333333334, 29.4423193041891, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 183.33333333333331, 0.0, "AUTO_CLAMPED", 283.3333333333333, 0.0, "AUTO_CLAMPED"]]}}}, "FireDry": {"Bolt": {"location": {"x": [[0.4437499940395355, 0.0, "BEZIER", "AUTO", 933.3333333333334, 0.4437499940395355, "AUTO_CLAMPED"]], "z": [[-1.8655332326889038, 0.0, "BEZIER", "AUTO", 122.22222487131755, -1.8655332326889038, "AUTO_CLAMPED"], [-1.8655332326889038, 366.66666666666663, "BEZIER", "EASE_IN", 244.44443384806314, -1.8655332326889038, "AUTO_CLAMPED", 405.55556615193683, -1.8655332326889038, "AUTO_CLAMPED"], [-3.3269410133361816, 116.66666666666669, "BEZIER", "AUTO", 444.44443384806317, -3.3269410133361816, "AUTO_CLAMPED", 516.6666666666666, -3.3269410133361816, "AUTO_CLAMPED"], [-3.3269410133361816, 100.00000000000006, "EXPO", "EASE_IN", 550.0, -3.3269410133361816, "AUTO_CLAMPED"], [-1.8655332326889038, 83.33333333333326, "BEZIER", "AUTO", 694.444465637207, -1.8655332326889038, "AUTO_CLAMPED"]], "y": [[1.8304203748703003, 0.0, "BEZIER", "AUTO", 933.3333333333334, 1.8304203748703003, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, 0.0, "AUTO_CLAMPED", 177.77776718139648, 0.0, "AUTO_CLAMPED"], [0.378823459148407, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, 0.378823459148407, "AUTO_CLAMPED", 377.7777671813965, 0.378823459148407, "AUTO_CLAMPED"], [0.3284962773323059, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 0.378823459148407, "AUTO_CLAMPED", 505.5555661519369, 0.28446000814437866, "AUTO_CLAMPED"], [0.0780496671795845, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 0.12340082228183746, "AUTO_CLAMPED", 605.555534362793, 0.052134718745946884, "AUTO_CLAMPED"], [0.052134718745946884, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, 0.052134718745946884, "AUTO_CLAMPED", 677.7777989705404, 0.052134718745946884, "AUTO_CLAMPED"], [0.06624312698841095, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.06624312698841095, "AUTO_CLAMPED", 794.444465637207, 0.06624312698841095, "AUTO_CLAMPED"], [0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, 0.0, "AUTO_CLAMPED", 977.7777989705404, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, -0.0, "AUTO_CLAMPED"], [-0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, -0.0, "AUTO_CLAMPED", 177.77776718139648, -0.0, "AUTO_CLAMPED"], [0.3215503692626953, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, 0.3215503692626953, "AUTO_CLAMPED", 377.7777671813965, 0.3215503692626953, "AUTO_CLAMPED"], [0.27883198857307434, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 0.3215503692626953, "AUTO_CLAMPED", 505.5555661519369, 0.2414534091949463, "AUTO_CLAMPED"], [-0.044656865298748016, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, -0.010165050625801086, "AUTO_CLAMPED", 605.555534362793, -0.06436647474765778, "AUTO_CLAMPED"], [-0.06436647474765778, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, -0.06436647474765778, "AUTO_CLAMPED", 677.7777989705404, -0.06436647474765778, "AUTO_CLAMPED"], [0.21741850674152374, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.21741850674152374, "AUTO_CLAMPED", 794.444465637207, 0.21741850674152374, "AUTO_CLAMPED"], [-0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, -0.0, "AUTO_CLAMPED", 977.7777989705404, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, 0.0, "AUTO_CLAMPED", 177.77776718139648, 0.0, "AUTO_CLAMPED"], [-0.03033590316772461, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, -0.03033590316772461, "AUTO_CLAMPED", 377.7777671813965, -0.03033590316772461, "AUTO_CLAMPED"], [-0.013926569372415543, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, -0.022176561877131462, "AUTO_CLAMPED", 505.5555661519369, -0.006707826163619757, "AUTO_CLAMPED"], [0.000580325722694397, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 0.000580325722694397, "AUTO_CLAMPED", 605.555534362793, 0.000580325722694397, "AUTO_CLAMPED"], [-0.08202043920755386, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, -0.08202043920755386, "AUTO_CLAMPED", 677.7777989705404, -0.08202043920755386, "AUTO_CLAMPED"], [0.007577709853649139, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.007577709853649139, "AUTO_CLAMPED", 794.444465637207, 0.007577709853649139, "AUTO_CLAMPED"], [0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, 0.0, "AUTO_CLAMPED", 977.7777989705404, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 200.0, 0.0, "AUTO_CLAMPED"], [-9.762812852427766, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, -9.762812852427766, "AUTO_CLAMPED", 377.7777671813965, -9.762812852427766, "AUTO_CLAMPED"], [-8.46581115546112, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, -8.46581115546112, "AUTO_CLAMPED", 505.5555661519369, -8.46581115546112, "AUTO_CLAMPED"], [-9.922516335601005, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, -9.922516335601005, "AUTO_CLAMPED", 605.555534362793, -9.922516335601005, "AUTO_CLAMPED"], [-5.976405705364225, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, -7.419544849151995, "AUTO_CLAMPED", 677.7777989705404, -4.172482309238042, "AUTO_CLAMPED"], [-3.5616000082690333, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, -4.02454510757062, "AUTO_CLAMPED", 794.444465637207, -2.5431206190508133, "AUTO_CLAMPED"], [0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, 0.0, "AUTO_CLAMPED", 977.7777989705404, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -0.0, "AUTO_CLAMPED", 200.0, -0.0, "AUTO_CLAMPED"], [12.070624489948354, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 12.070624489948354, "AUTO_CLAMPED", 377.7777671813965, 12.070624489948354, "AUTO_CLAMPED"], [10.467026700197236, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 11.083953291694883, "AUTO_CLAMPED", 505.5555661519369, 9.927215505749972, "AUTO_CLAMPED"], [8.542568821353722, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 9.67049003919035, "AUTO_CLAMPED", 605.555534362793, 7.8980422891937, "AUTO_CLAMPED"], [6.156128899881594, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, 6.969043500744525, "AUTO_CLAMPED", 677.7777989705404, 5.139985862246341, "AUTO_CLAMPED"], [3.4902371246036825, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 4.305224474436301, "AUTO_CLAMPED", 794.444465637207, 1.6972648695945567, "AUTO_CLAMPED"], [-0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, -0.0, "AUTO_CLAMPED", 977.7777989705404, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 200.0, 0.0, "AUTO_CLAMPED"], [6.133171353420711, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 6.133171353420711, "AUTO_CLAMPED", 377.7777671813965, 6.133171353420711, "AUTO_CLAMPED"], [5.3183716203468565, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 6.133171353420711, "AUTO_CLAMPED", 505.5555661519369, 4.60542196062894, "AUTO_CLAMPED"], [2.264997877368833, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 2.684597955867284, "AUTO_CLAMPED", 605.555534362793, 2.0252264344330624, "AUTO_CLAMPED"], [2.0252264344330624, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, 2.147129516305334, "AUTO_CLAMPED", 677.7777989705404, 1.8728476888144283, "AUTO_CLAMPED"], [0.9566294649628159, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 1.339521972427503, "AUTO_CLAMPED", 794.444465637207, 0.11426602324569855, "AUTO_CLAMPED"], [0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, 0.0, "AUTO_CLAMPED", 977.7777989705404, 0.0, "AUTO_CLAMPED"]]}}, "Trigger": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[-1.5625001192092896, 0.0, "BEZIER", "AUTO", 16.666666666666668, -1.5625001192092896, "AUTO_CLAMPED"]], "y": [[1.111669898033142, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.111669898033142, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [29.4423193041891, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 29.4423193041891, "AUTO_CLAMPED", 38.888891537984215, 29.4423193041891, "AUTO_CLAMPED"], [29.4423193041891, 66.66666666666666, "BEZIER", "AUTO", 61.111108462015785, 29.4423193041891, "AUTO_CLAMPED", 133.33333333333334, 29.4423193041891, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 183.33333333333331, 0.0, "AUTO_CLAMPED", 283.3333333333333, 0.0, "AUTO_CLAMPED"]]}}}, "Inspect": {"Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.07114996761083603, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.07114996761083603, "AUTO_CLAMPED", 211.11111640930176, 0.07114996761083603, "AUTO_CLAMPED"], [0.06900998950004578, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, 0.07114996761083603, "AUTO_CLAMPED", 355.55556615193683, 0.06633501499891281, "AUTO_CLAMPED"], [0.04820222035050392, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, 0.04820222035050392, "AUTO_CLAMPED", 527.7777671813965, 0.04820222035050392, "AUTO_CLAMPED"], [0.05328037589788437, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.05328037589788437, "AUTO_CLAMPED", 1138.888931274414, 0.05328037589788437, "AUTO_CLAMPED"], [0.05328037589788437, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, 0.05328037589788437, "AUTO_CLAMPED", 2166.6666666666665, 0.05328037589788437, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 2216.666666666667, 0.0, "AUTO_CLAMPED", 2400.0, 0.0, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "AUTO", 2533.333333333333, 0.0, "AUTO_CLAMPED", 2694.4445292154946, 0.0, "AUTO_CLAMPED"], [-0.005077464040368795, 83.33333333333348, "BEZIER", "AUTO", 2722.222137451172, -0.005077464040368795, "AUTO_CLAMPED", 2811.1111958821616, -0.005077464040368795, "AUTO_CLAMPED"], [0.03527374938130379, 183.33333333333303, "BEZIER", "AUTO", 2872.222137451172, 0.03527374938130379, "AUTO_CLAMPED", 2977.777862548828, 0.03527374938130379, "AUTO_CLAMPED"], [-0.020133668556809425, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, -0.020133668556809425, "AUTO_CLAMPED", 3166.6666666666665, -0.020133668556809425, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, 0.0, "AUTO_CLAMPED", 3466.666666666667, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [0.10114581137895584, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.10114581137895584, "AUTO_CLAMPED", 211.11111640930176, 0.10114581137895584, "AUTO_CLAMPED"], [-0.1629212200641632, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, -0.1629212200641632, "AUTO_CLAMPED", 355.55556615193683, -0.1629212200641632, "AUTO_CLAMPED"], [-0.004916742444038391, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, -0.027451736852526665, "AUTO_CLAMPED", 527.7777671813965, 0.019871752709150314, "AUTO_CLAMPED"], [0.019871752709150314, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.019871752709150314, "AUTO_CLAMPED", 1138.888931274414, 0.019871752709150314, "AUTO_CLAMPED"], [0.019871752709150314, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, 0.019871752709150314, "AUTO_CLAMPED", 2166.6666666666665, 0.019871752709150314, "AUTO_CLAMPED"], [-0.0, 150.0, "BEZIER", "AUTO", 2216.666666666667, -0.0, "AUTO_CLAMPED", 2400.0, -0.0, "AUTO_CLAMPED"], [-0.0, 400.0, "BEZIER", "AUTO", 2533.333333333333, -0.0, "AUTO_CLAMPED", 2694.4445292154946, -0.0, "AUTO_CLAMPED"], [0.01262839324772358, 83.33333333333348, "BEZIER", "AUTO", 2722.222137451172, 0.0035094833001494408, "AUTO_CLAMPED", 2811.1111958821616, 0.03268999606370926, "AUTO_CLAMPED"], [0.07990105450153351, 183.33333333333303, "BEZIER", "AUTO", 2872.222137451172, 0.07990105450153351, "AUTO_CLAMPED", 2977.777862548828, 0.07990105450153351, "AUTO_CLAMPED"], [0.07229746878147125, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, 0.07987289875745773, "AUTO_CLAMPED", 3166.6666666666665, 0.05525274574756622, "AUTO_CLAMPED"], [-0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, -0.0, "AUTO_CLAMPED", 3466.666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [-0.29975396394729614, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.12830781936645508, "AUTO_CLAMPED", 211.11111640930176, -0.43691086769104004, "AUTO_CLAMPED"], [-0.6016762852668762, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, -0.6016762852668762, "AUTO_CLAMPED", 355.55556615193683, -0.6016762852668762, "AUTO_CLAMPED"], [-0.2427852749824524, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, -0.2427852749824524, "AUTO_CLAMPED", 527.7777671813965, -0.2427852749824524, "AUTO_CLAMPED"], [-0.5669558644294739, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, -0.5669558644294739, "AUTO_CLAMPED", 1138.888931274414, -0.5669558644294739, "AUTO_CLAMPED"], [-0.5669558644294739, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, -0.5669558644294739, "AUTO_CLAMPED", 2227.777862548828, -0.5669558644294739, "AUTO_CLAMPED"], [0.0, 333.3333333333335, "BEZIER", "AUTO", 2338.8888041178384, 0.0, "AUTO_CLAMPED", 2522.222137451172, 0.0, "AUTO_CLAMPED"], [0.0, 216.66666666666652, "BEZIER", "AUTO", 2594.4445292154946, 0.0, "AUTO_CLAMPED", 2694.4445292154946, 0.0, "AUTO_CLAMPED"], [0.13483214378356934, 83.33333333333348, "BEZIER", "AUTO", 2722.222137451172, 0.0764673575758934, "AUTO_CLAMPED", 2811.1111958821616, 0.2632346749305725, "AUTO_CLAMPED"], [0.3040197491645813, 183.33333333333303, "BEZIER", "AUTO", 2872.222137451172, 0.3040197491645813, "AUTO_CLAMPED", 2977.777862548828, 0.3040197491645813, "AUTO_CLAMPED"], [-0.47273141145706177, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, -0.47273141145706177, "AUTO_CLAMPED", 3166.6666666666665, -0.47273141145706177, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, 0.0, "AUTO_CLAMPED", 3466.666666666667, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [2.9641926033154022, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.9641926033154022, "AUTO_CLAMPED", 211.11111640930176, 2.9641926033154022, "AUTO_CLAMPED"], [2.9641926033154022, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, 2.9641926033154022, "AUTO_CLAMPED", 355.55556615193683, 2.9641926033154022, "AUTO_CLAMPED"], [-1.8676834254716639, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, -1.8676834254716639, "AUTO_CLAMPED", 527.7777671813965, -1.8676834254716639, "AUTO_CLAMPED"], [0.692141648494032, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.692141648494032, "AUTO_CLAMPED", 1138.888931274414, 0.692141648494032, "AUTO_CLAMPED"], [0.692141648494032, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, 0.692141648494032, "AUTO_CLAMPED", 2183.333333333333, 0.692141648494032, "AUTO_CLAMPED"], [0.0, 200.0, "BEZIER", "AUTO", 2250.0, 0.692141648494032, "AUTO_CLAMPED", 2433.333333333333, -1.2112479248851957, "AUTO_CLAMPED"], [-7.739051707015083, 350.0, "BEZIER", "AUTO", 2550.0, -7.739051707015083, "AUTO_CLAMPED", 2722.222137451172, -7.739051707015083, "AUTO_CLAMPED"], [-7.646921846621719, 166.66666666666697, "BEZIER", "AUTO", 2777.777862548828, -7.646921846621719, "AUTO_CLAMPED", 2866.6666666666665, -7.646921846621719, "AUTO_CLAMPED"], [-7.646921846621719, 99.99999999999955, "BEZIER", "AUTO", 2900.0, -7.646921846621719, "AUTO_CLAMPED", 2977.777862548828, -7.646921846621719, "AUTO_CLAMPED"], [-7.646921846621719, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, -7.646921846621719, "AUTO_CLAMPED", 3166.6666666666665, -7.646921846621719, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, 0.0, "AUTO_CLAMPED", 3466.666666666667, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [-0.97928136045834, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.97928136045834, "AUTO_CLAMPED", 211.11111640930176, -0.97928136045834, "AUTO_CLAMPED"], [-0.97928136045834, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, -0.97928136045834, "AUTO_CLAMPED", 355.55556615193683, -0.97928136045834, "AUTO_CLAMPED"], [-0.8304706416290971, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, -0.8304706416290971, "AUTO_CLAMPED", 527.7777671813965, -0.8304706416290971, "AUTO_CLAMPED"], [-0.8304706416290971, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, -0.8304706416290971, "AUTO_CLAMPED", 1138.888931274414, -0.8304706416290971, "AUTO_CLAMPED"], [-0.8304706416290971, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, -0.8304706416290971, "AUTO_CLAMPED", 2250.0, -0.8304706416290971, "AUTO_CLAMPED"], [-0.0, 400.0, "BEZIER", "AUTO", 2383.3333333333335, -0.0, "AUTO_CLAMPED", 2622.222137451172, -0.0, "AUTO_CLAMPED"], [-8.823071883961452, 316.66666666666697, "BEZIER", "AUTO", 2727.777862548828, -8.823071883961452, "AUTO_CLAMPED", 2866.6666666666665, -8.823071883961452, "AUTO_CLAMPED"], [-8.823071883961452, 99.99999999999955, "BEZIER", "AUTO", 2900.0, -8.823071883961452, "AUTO_CLAMPED", 2977.777862548828, -8.823071883961452, "AUTO_CLAMPED"], [-8.823071883961452, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, -8.823071883961452, "AUTO_CLAMPED", 3166.6666666666665, -8.823071883961452, "AUTO_CLAMPED"], [-0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, -0.0, "AUTO_CLAMPED", 3466.666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.35034732308023736, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.35034732308023736, "AUTO_CLAMPED", 211.11111640930176, 0.35034732308023736, "AUTO_CLAMPED"], [0.35034732308023736, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, 0.35034732308023736, "AUTO_CLAMPED", 355.55556615193683, 0.35034732308023736, "AUTO_CLAMPED"], [0.007649265755435478, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, 0.007649265755435478, "AUTO_CLAMPED", 527.7777671813965, 0.007649265755435478, "AUTO_CLAMPED"], [0.007649265755435478, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.007649265755435478, "AUTO_CLAMPED", 1138.888931274414, 0.007649265755435478, "AUTO_CLAMPED"], [0.007649265755435478, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, 0.007649265755435478, "AUTO_CLAMPED", 2250.0, 0.007649265755435478, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "AUTO", 2383.3333333333335, 0.0, "AUTO_CLAMPED", 2622.222137451172, 0.0, "AUTO_CLAMPED"], [1.1941439572647203, 316.66666666666697, "BEZIER", "AUTO", 2727.777862548828, 1.1941439572647203, "AUTO_CLAMPED", 2866.6666666666665, 1.1941439572647203, "AUTO_CLAMPED"], [1.1941439572647203, 99.99999999999955, "BEZIER", "AUTO", 2900.0, 1.1941439572647203, "AUTO_CLAMPED", 2977.777862548828, 1.1941439572647203, "AUTO_CLAMPED"], [1.1941439572647203, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, 1.1941439572647203, "AUTO_CLAMPED", 3166.6666666666665, 1.1941439572647203, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, 0.0, "AUTO_CLAMPED", 3466.666666666667, 0.0, "AUTO_CLAMPED"]]}}, "Mag": {"location": {"x": [[1.6590982809816524e-08, 0.0, "BEZIER", "AUTO", 55.555554231007896, 1.6590982809816524e-08, "AUTO_CLAMPED"], [1.6590982809816524e-08, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 1.6590982809816524e-08, "AUTO_CLAMPED", 277.7777671813965, 1.6590982809816524e-08, "AUTO_CLAMPED"], [-0.00021278602071106434, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 1.658918336033821e-08, "AUTO_CLAMPED", 555.555534362793, -0.0003191873256582767, "AUTO_CLAMPED"], [-0.11996961385011673, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, -0.11996961385011673, "AUTO_CLAMPED", 794.444465637207, -0.11996961385011673, "AUTO_CLAMPED"], [5.424437999725342, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 5.351675987243652, "AUTO_CLAMPED", 1083.3333333333333, 5.443419456481934, "AUTO_CLAMPED"], [5.443419456481934, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 5.43773889541626, "AUTO_CLAMPED", 1266.6666666666665, 5.463301658630371, "AUTO_CLAMPED"], [5.622357368469238, 350.0, "BEZIER", "AUTO", 1383.3333333333333, 5.622357368469238, "AUTO_CLAMPED", 1594.4444020589192, 5.622357368469238, "AUTO_CLAMPED"], [5.575819969177246, 283.33333333333326, "BACK", "AUTO", 1688.888931274414, 5.588100433349609, "AUTO_CLAMPED", 14.701579093933105], [5.515981674194336, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, 5.412052154541016, "AUTO_CLAMPED"], [-0.003756664227694273, 550.0, "BEZIER", "AUTO", 2466.666666666667, -0.0037566630635410547, "AUTO_CLAMPED", 2688.8888041178384, -0.0037566644605249166, "AUTO_CLAMPED"], [-0.0037566644605249166, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, -0.0037566644605249166, "AUTO_CLAMPED", 2838.8888041178384, -0.0037566644605249166, "AUTO_CLAMPED"], [1.6590982809816524e-08, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, 1.6590982809816524e-08, "AUTO_CLAMPED", 3055.5554707845054, 1.6590982809816524e-08, "AUTO_CLAMPED"]], "z": [[1.5, 0.0, "BEZIER", "AUTO", 55.555554231007896, 1.5, "AUTO_CLAMPED"], [1.5, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 1.5, "AUTO_CLAMPED", 277.7777671813965, 1.5, "AUTO_CLAMPED"], [1.6245688199996948, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 1.6245688199996948, "AUTO_CLAMPED", 555.555534362793, 1.6245688199996948, "AUTO_CLAMPED"], [1.6012111902236938, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 1.6012111902236938, "AUTO_CLAMPED", 794.444465637207, 1.6012111902236938, "AUTO_CLAMPED"], [2.137399435043335, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 2.016054153442383, "AUTO_CLAMPED", 1083.3333333333333, 2.1690547466278076, "AUTO_CLAMPED"], [2.213783025741577, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 2.180736780166626, "AUTO_CLAMPED", 1266.6666666666665, 2.3294453620910645, "AUTO_CLAMPED"], [2.7068216800689697, 350.0, "BEZIER", "AUTO", 1383.3333333333333, 2.7068216800689697, "AUTO_CLAMPED", 1594.4444020589192, 2.7068216800689697, "AUTO_CLAMPED"], [2.5465469360351562, 283.33333333333326, "BACK", "AUTO", 1688.888931274414, 2.596926212310791, "AUTO_CLAMPED", 6.601579666137695], [2.3682148456573486, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, 2.124948024749756, "AUTO_CLAMPED"], [1.4047539234161377, 550.0, "BEZIER", "AUTO", 2466.666666666667, 1.4047539234161377, "AUTO_CLAMPED", 2688.8888041178384, 1.4047539234161377, "AUTO_CLAMPED"], [1.634982943534851, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, 1.634982943534851, "AUTO_CLAMPED", 2838.8888041178384, 1.634982943534851, "AUTO_CLAMPED"], [1.5, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, 1.5, "AUTO_CLAMPED", 3055.5554707845054, 1.5, "AUTO_CLAMPED"]], "y": [[2.3913047313690186, 0.0, "BEZIER", "AUTO", 55.555554231007896, 2.3913047313690186, "AUTO_CLAMPED"], [2.3913047313690186, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.3913047313690186, "AUTO_CLAMPED", 277.7777671813965, 2.3913047313690186, "AUTO_CLAMPED"], [3.190911054611206, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 2.6377265453338623, "AUTO_CLAMPED", 555.555534362793, 3.467503309249878, "AUTO_CLAMPED"], [3.820786476135254, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 3.820786476135254, "AUTO_CLAMPED", 794.444465637207, 3.820786476135254, "AUTO_CLAMPED"], [2.135780096054077, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 3.0386812686920166, "AUTO_CLAMPED", 1083.3333333333333, 1.9002406597137451, "AUTO_CLAMPED"], [1.6564807891845703, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 1.6564807891845703, "AUTO_CLAMPED", 1266.6666666666665, 1.6564807891845703, "AUTO_CLAMPED"], [9.165933609008789, 350.0, "BEZIER", "AUTO", 1383.3333333333333, 9.165933609008789, "AUTO_CLAMPED", 1594.4444020589192, 9.165933609008789, "AUTO_CLAMPED"], [2.7490081787109375, 283.33333333333326, "BACK", "AUTO", 1688.888931274414, 3.3798696994781494, "AUTO_CLAMPED", 9.001579284667969], [1.6357232332229614, 499.9999999999998, "BEZIER", "AUTO", 2405.5554707845054, 1.6357232332229614, "AUTO_CLAMPED"], [3.1212010383605957, 366.66666666666697, "BEZIER", "AUTO", 2527.777862548828, 3.1212010383605957, "AUTO_CLAMPED", 2688.8888041178384, 3.1212010383605957, "AUTO_CLAMPED"], [2.9346296787261963, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, 3.0464632511138916, "AUTO_CLAMPED", 2838.8888041178384, 2.7269389629364014, "AUTO_CLAMPED"], [2.3913047313690186, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, 2.3913047313690186, "AUTO_CLAMPED", 3055.5554707845054, 2.3913047313690186, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.0, "AUTO_CLAMPED", 277.7777671813965, 0.0, "AUTO_CLAMPED"], [19.9088334682391, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 19.9088334682391, "AUTO_CLAMPED", 555.555534362793, 19.9088334682391, "AUTO_CLAMPED"], [19.9088334682391, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 19.9088334682391, "AUTO_CLAMPED", 794.444465637207, 19.9088334682391, "AUTO_CLAMPED"], [17.756861134368812, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 17.756861134368812, "AUTO_CLAMPED", 1083.3333333333333, 17.756861134368812, "AUTO_CLAMPED"], [27.787557421139063, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 27.787557421139063, "AUTO_CLAMPED", 1361.111068725586, 27.787557421139063, "AUTO_CLAMPED"], [-346.42714006153335, 633.3333333333333, "BACK", "AUTO", 1572.2222646077473, -337.1036586368992, "AUTO_CLAMPED", 1.7015800476074219], [-351.08888077385046, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, -351.08888077385046, "AUTO_CLAMPED"], [-344.7845342076587, 550.0, "BEZIER", "AUTO", 2466.666666666667, -344.7845342076587, "AUTO_CLAMPED", 2688.8888041178384, -344.7845342076587, "AUTO_CLAMPED"], [-344.7845342076587, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, -344.7845342076587, "AUTO_CLAMPED", 2838.8888041178384, -344.7845342076587, "AUTO_CLAMPED"], [-360.00001001791264, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, -360.00001001791264, "AUTO_CLAMPED", 3055.5554707845054, -360.00001001791264, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [-0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.0, "AUTO_CLAMPED", 277.7777671813965, -0.0, "AUTO_CLAMPED"], [0.06078959074761263, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 0.06078959074761263, "AUTO_CLAMPED", 555.555534362793, 0.06078959074761263, "AUTO_CLAMPED"], [0.06078959074761263, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 0.06078959074761263, "AUTO_CLAMPED", 794.444465637207, 0.06078959074761263, "AUTO_CLAMPED"], [12.226716510597948, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 12.226716510597948, "AUTO_CLAMPED", 1083.3333333333333, 12.226716510597948, "AUTO_CLAMPED"], [7.483050240507481, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 9.542523029995575, "AUTO_CLAMPED", 1361.111068725586, -5.560278564615314, "AUTO_CLAMPED"], [-5.560278991502137, 633.3333333333333, "BACK", "AUTO", 1572.2222646077473, -5.560278991502137, "AUTO_CLAMPED", 9.001579284667969], [1.8954325630787217, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, 1.8954325630787217, "AUTO_CLAMPED"], [1.877165435586934, 550.0, "BEZIER", "AUTO", 2466.666666666667, 1.877165435586934, "AUTO_CLAMPED", 2688.8888041178384, 1.877165435586934, "AUTO_CLAMPED"], [1.877165435586934, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, 1.877165435586934, "AUTO_CLAMPED", 2838.8888041178384, 1.877165435586934, "AUTO_CLAMPED"], [-0.0, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, -0.0, "AUTO_CLAMPED", 3055.5554707845054, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.0, "AUTO_CLAMPED", 277.7777671813965, 0.0, "AUTO_CLAMPED"], [0.35444556998437726, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 0.35444556998437726, "AUTO_CLAMPED", 555.555534362793, 0.35444556998437726, "AUTO_CLAMPED"], [0.35444556998437726, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 0.35444556998437726, "AUTO_CLAMPED", 794.444465637207, 0.35444556998437726, "AUTO_CLAMPED"], [1.9508375635219841, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 1.9508375635219841, "AUTO_CLAMPED", 1083.3333333333333, 1.9508375635219841, "AUTO_CLAMPED"], [-0.5366209624963392, 100.0, "BEZIER", "AUTO", 1116.6666666666667, -0.12644982674495836, "AUTO_CLAMPED", 1361.111068725586, -3.134371675684736, "AUTO_CLAMPED"], [-3.134371462241324, 633.3333333333333, "BACK", "AUTO", 1572.2222646077473, -3.134371462241324, "AUTO_CLAMPED", 6.901579856872559], [-0.4163264435344581, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, -0.3268274065907398, "AUTO_CLAMPED"], [-0.3268274065907398, 550.0, "BEZIER", "AUTO", 2466.666666666667, -0.3268274065907398, "AUTO_CLAMPED", 2688.8888041178384, -0.3268274065907398, "AUTO_CLAMPED"], [-0.3268274065907398, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, -0.3268274065907398, "AUTO_CLAMPED", 2838.8888041178384, -0.3268274065907398, "AUTO_CLAMPED"], [0.0, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, 0.0, "AUTO_CLAMPED", 3055.5554707845054, 0.0, "AUTO_CLAMPED"]]}}}, "Jammed": {"Bolt": {"location": {"x": [[0.4437499940395355, 0.0, "BEZIER", "AUTO", 305.55556615193683, 0.4437499940395355, "AUTO_CLAMPED"]], "z": [[-1.8655332326889038, 0.0, "BEZIER", "AUTO", 122.22222487131755, -1.8655332326889038, "AUTO_CLAMPED"], [-1.8655332326889038, 366.66666666666663, "BEZIER", "EASE_IN", 244.44443384806314, -1.8655332326889038, "AUTO_CLAMPED", 405.55556615193683, -1.8655332326889038, "AUTO_CLAMPED"], [-3.3269410133361816, 116.66666666666669, "BEZIER", "AUTO", 444.44443384806317, -3.3269410133361816, "AUTO_CLAMPED", 516.6666666666666, -3.3269410133361816, "AUTO_CLAMPED"], [-3.3269410133361816, 100.00000000000006, "EXPO", "EASE_IN", 550.0, -3.3269410133361816, "AUTO_CLAMPED"], [-2.962660312652588, 49.999999999999886, "EXPO", "AUTO"], [-3.3269410133361816, 466.66666666666674, "EXPO", "EASE_IN"], [-1.8655332326889038, 83.33333333333326, "BEZIER", "AUTO", 1211.111068725586, -1.8655332326889038, "AUTO_CLAMPED"]], "y": [[1.8304203748703003, 0.0, "BEZIER", "AUTO", 305.55556615193683, 1.8304203748703003, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, 0.0, "AUTO_CLAMPED", 177.77776718139648, 0.0, "AUTO_CLAMPED"], [0.378823459148407, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, 0.378823459148407, "AUTO_CLAMPED", 377.7777671813965, 0.378823459148407, "AUTO_CLAMPED"], [0.3284962773323059, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 0.378823459148407, "AUTO_CLAMPED", 505.5555661519369, 0.28446000814437866, "AUTO_CLAMPED"], [0.0780496671795845, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 0.09820573776960373, "AUTO_CLAMPED", 633.3333333333333, 0.052134718745946884, "AUTO_CLAMPED"], [0.052134718745946884, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, 0.052134718745946884, "AUTO_CLAMPED", 866.6666666666667, 0.052134718745946884, "AUTO_CLAMPED"], [0.0780496671795845, 400.0, "BEZIER", "AUTO", 1000.0, 0.0780496671795845, "AUTO_CLAMPED", 1161.111068725586, 0.0780496671795845, "AUTO_CLAMPED"], [-0.02280152216553688, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, -0.02280152216553688, "AUTO_CLAMPED", 1244.4444020589192, -0.02280152216553688, "AUTO_CLAMPED"], [0.06624312698841095, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 0.06624312698841095, "AUTO_CLAMPED", 1355.5555979410808, 0.06624312698841095, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, 0.0, "AUTO_CLAMPED", 1522.2222646077475, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, -0.0, "AUTO_CLAMPED"], [-0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, -0.0, "AUTO_CLAMPED", 177.77776718139648, -0.0, "AUTO_CLAMPED"], [0.3215503692626953, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, 0.3215503692626953, "AUTO_CLAMPED", 377.7777671813965, 0.3215503692626953, "AUTO_CLAMPED"], [0.27883198857307434, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 0.3215503692626953, "AUTO_CLAMPED", 505.5555661519369, 0.2414534091949463, "AUTO_CLAMPED"], [-0.044656865298748016, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, -0.029327169060707092, "AUTO_CLAMPED", 633.3333333333333, -0.06436647474765778, "AUTO_CLAMPED"], [-0.06436647474765778, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, -0.06436647474765778, "AUTO_CLAMPED", 866.6666666666667, -0.06436647474765778, "AUTO_CLAMPED"], [-0.044656865298748016, 400.0, "BEZIER", "AUTO", 1000.0, -0.06436647474765778, "AUTO_CLAMPED", 1161.111068725586, -0.04055069759488106, "AUTO_CLAMPED"], [0.3886209726333618, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, 0.3886209726333618, "AUTO_CLAMPED", 1244.4444020589192, 0.3886209726333618, "AUTO_CLAMPED"], [0.21741850674152374, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 0.2926041781902313, "AUTO_CLAMPED", 1355.5555979410808, 0.06704716384410858, "AUTO_CLAMPED"], [-0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, -0.0, "AUTO_CLAMPED", 1522.2222646077475, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, 0.0, "AUTO_CLAMPED", 177.77776718139648, 0.0, "AUTO_CLAMPED"], [-0.03033590316772461, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, -0.03033590316772461, "AUTO_CLAMPED", 377.7777671813965, -0.03033590316772461, "AUTO_CLAMPED"], [-0.013926569372415543, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, -0.022176561877131462, "AUTO_CLAMPED", 505.5555661519369, -0.006707826163619757, "AUTO_CLAMPED"], [0.000580325722694397, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 0.000580325722694397, "AUTO_CLAMPED", 633.3333333333333, 0.000580325722694397, "AUTO_CLAMPED"], [-0.08202043920755386, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, -0.08202043920755386, "AUTO_CLAMPED", 866.6666666666667, -0.08202043920755386, "AUTO_CLAMPED"], [0.000580325722694397, 400.0, "BEZIER", "AUTO", 1000.0, 0.000580325722694397, "AUTO_CLAMPED", 1161.111068725586, 0.000580325722694397, "AUTO_CLAMPED"], [-0.027275841683149338, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, -0.027275841683149338, "AUTO_CLAMPED", 1244.4444020589192, -0.027275841683149338, "AUTO_CLAMPED"], [0.007577709853649139, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 0.007577709853649139, "AUTO_CLAMPED", 1355.5555979410808, 0.007577709853649139, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, 0.0, "AUTO_CLAMPED", 1522.2222646077475, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 200.0, 0.0, "AUTO_CLAMPED"], [-9.762812852427766, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, -9.762812852427766, "AUTO_CLAMPED", 377.7777671813965, -9.762812852427766, "AUTO_CLAMPED"], [-8.46581115546112, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, -8.46581115546112, "AUTO_CLAMPED", 505.5555661519369, -8.46581115546112, "AUTO_CLAMPED"], [-9.922516335601005, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, -9.922516335601005, "AUTO_CLAMPED", 633.3333333333333, -9.922516335601005, "AUTO_CLAMPED"], [-5.976405705364225, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, -5.976405705364225, "AUTO_CLAMPED", 866.6666666666667, -5.976405705364225, "AUTO_CLAMPED"], [-9.922516335601005, 400.0, "BEZIER", "AUTO", 1000.0, -9.922516335601005, "AUTO_CLAMPED", 1161.111068725586, -9.922516335601005, "AUTO_CLAMPED"], [-1.247449955198673, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, -1.247449955198673, "AUTO_CLAMPED", 1244.4444020589192, -1.247449955198673, "AUTO_CLAMPED"], [-3.5616000082690333, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, -3.5616000082690333, "AUTO_CLAMPED", 1355.5555979410808, -3.5616000082690333, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, 0.0, "AUTO_CLAMPED", 1522.2222646077475, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -0.0, "AUTO_CLAMPED", 200.0, -0.0, "AUTO_CLAMPED"], [12.070624489948354, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 12.070624489948354, "AUTO_CLAMPED", 377.7777671813965, 12.070624489948354, "AUTO_CLAMPED"], [10.467026700197236, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 11.19349074296167, "AUTO_CLAMPED", 505.5555661519369, 9.831370876221769, "AUTO_CLAMPED"], [8.542568821353722, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 9.311070970912292, "AUTO_CLAMPED", 633.3333333333333, 7.55449487299946, "AUTO_CLAMPED"], [6.156128899881594, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, 6.156128899881594, "AUTO_CLAMPED", 866.6666666666667, 6.156128899881594, "AUTO_CLAMPED"], [8.542568821353722, 400.0, "BEZIER", "AUTO", 1000.0, 8.542568821353722, "AUTO_CLAMPED", 1161.111068725586, 8.542568821353722, "AUTO_CLAMPED"], [6.806507196613024, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, 7.8036123625973355, "AUTO_CLAMPED", 1244.4444020589192, 5.80940160374189, "AUTO_CLAMPED"], [3.4902371246036825, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 4.554145169208715, "AUTO_CLAMPED", 1355.5555979410808, 1.3624208219502054, "AUTO_CLAMPED"], [-0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, -0.0, "AUTO_CLAMPED", 1522.2222646077475, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 200.0, 0.0, "AUTO_CLAMPED"], [6.133171353420711, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 6.133171353420711, "AUTO_CLAMPED", 377.7777671813965, 6.133171353420711, "AUTO_CLAMPED"], [5.3183716203468565, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 6.133171353420711, "AUTO_CLAMPED", 505.5555661519369, 4.60542196062894, "AUTO_CLAMPED"], [2.264997877368833, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 2.451486801145922, "AUTO_CLAMPED", 633.3333333333333, 2.0252264344330624, "AUTO_CLAMPED"], [2.0252264344330624, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, 2.0252264344330624, "AUTO_CLAMPED", 866.6666666666667, 2.0252264344330624, "AUTO_CLAMPED"], [2.264997877368833, 400.0, "BEZIER", "AUTO", 1000.0, 2.0252264344330624, "AUTO_CLAMPED", 1161.111068725586, 2.3149502524203096, "AUTO_CLAMPED"], [4.3664396179857174, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, 4.3664396179857174, "AUTO_CLAMPED", 1244.4444020589192, 4.3664396179857174, "AUTO_CLAMPED"], [0.9566294649628159, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 1.4349441974442239, "AUTO_CLAMPED", 1355.5555979410808, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, 0.0, "AUTO_CLAMPED", 1522.2222646077475, 0.0, "AUTO_CLAMPED"]]}}}, "Reload": {"Bolt": {"location": {"x": [[0.4437499940395355, 0.0, "BEZIER", "AUTO", 933.3333333333334, 0.4437499940395355, "AUTO_CLAMPED"]], "z": [[-1.8655332326889038, 0.0, "BEZIER", "AUTO", 916.6666666666666, -1.8655332326889038, "AUTO_CLAMPED"], [-1.8655332326889038, 2750.0, "BEZIER", "EASE_IN", 1833.3333333333333, -1.8655332326889038, "AUTO_CLAMPED", 2788.8888041178384, -1.8655332326889038, "AUTO_CLAMPED"], [-3.3269410133361816, 116.66666666666652, "BEZIER", "AUTO", 2827.777862548828, -3.3269410133361816, "AUTO_CLAMPED", 2900.0, -3.3269410133361816, "AUTO_CLAMPED"], [-3.3269410133361816, 100.00000000000045, "EXPO", "EASE_IN", 2933.333333333333, -3.3269410133361816, "AUTO_CLAMPED"], [-1.8655332326889038, 83.33333333333303, "BEZIER", "AUTO", 3077.777862548828, -1.8655332326889038, "AUTO_CLAMPED"]], "y": [[1.8304203748703003, 0.0, "BEZIER", "AUTO", 933.3333333333334, 1.8304203748703003, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.07114996761083603, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.07114996761083603, "AUTO_CLAMPED", 205.5555502573649, 0.07114996761083603, "AUTO_CLAMPED"], [0.06900998950004578, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, 0.07114996761083603, "AUTO_CLAMPED", 344.44443384806317, 0.0656471699476242, "AUTO_CLAMPED"], [0.04820222035050392, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, 0.04820222035050392, "AUTO_CLAMPED", 561.1111323038737, 0.04820222035050392, "AUTO_CLAMPED"], [0.05328037589788437, 283.3333333333333, "BEZIER", "AUTO", 655.555534362793, 0.05328037589788437, "AUTO_CLAMPED", 894.444465637207, 0.05328037589788437, "AUTO_CLAMPED"], [-0.06346340477466583, 433.33333333333326, "BEZIER", "AUTO", 1038.8888676961262, -0.06346340477466583, "AUTO_CLAMPED", 1538.888931274414, -0.06346340477466583, "AUTO_CLAMPED"], [0.17794586718082428, 1066.6666666666667, "BEZIER", "AUTO", 1894.4444020589192, -0.06346340477466583, "AUTO_CLAMPED", 2305.5554707845054, 0.21566607058048248, "AUTO_CLAMPED"], [0.3289692997932434, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, 0.3043280839920044, "AUTO_CLAMPED", 2461.1111958821616, 0.3486822843551636, "AUTO_CLAMPED"], [0.3486822843551636, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, 0.34406736493110657, "AUTO_CLAMPED", 2611.111195882161, 0.35502779483795166, "AUTO_CLAMPED"], [0.378823459148407, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, 0.378823459148407, "AUTO_CLAMPED", 2777.777862548828, 0.378823459148407, "AUTO_CLAMPED"], [0.3284962773323059, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, 0.378823459148407, "AUTO_CLAMPED", 2905.5554707845054, 0.28446000814437866, "AUTO_CLAMPED"], [0.0780496671795845, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, 0.12340082228183746, "AUTO_CLAMPED", 3005.5554707845054, 0.052134718745946884, "AUTO_CLAMPED"], [0.052134718745946884, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, 0.052134718745946884, "AUTO_CLAMPED", 3077.777862548828, 0.052134718745946884, "AUTO_CLAMPED"], [0.06624312698841095, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 0.06624312698841095, "AUTO_CLAMPED", 3194.4445292154946, 0.06624312698841095, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, 0.0, "AUTO_CLAMPED", 3377.777862548828, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [0.10114581137895584, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.10114581137895584, "AUTO_CLAMPED", 205.5555502573649, 0.10114581137895584, "AUTO_CLAMPED"], [-0.1629212200641632, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, -0.1629212200641632, "AUTO_CLAMPED", 344.44443384806317, -0.1629212200641632, "AUTO_CLAMPED"], [-0.004916742444038391, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -0.020956357941031456, "AUTO_CLAMPED", 561.1111323038737, 0.019871752709150314, "AUTO_CLAMPED"], [0.019871752709150314, 283.3333333333333, "BEZIER", "AUTO", 655.555534362793, 0.019871752709150314, "AUTO_CLAMPED", 894.444465637207, 0.019871752709150314, "AUTO_CLAMPED"], [-0.05724658444523811, 433.33333333333326, "BEZIER", "AUTO", 1038.8888676961262, -0.05724658444523811, "AUTO_CLAMPED", 1538.888931274414, -0.05724658444523811, "AUTO_CLAMPED"], [0.06616419553756714, 1066.6666666666667, "BEZIER", "AUTO", 1894.4444020589192, -0.057246580719947815, "AUTO_CLAMPED", 2305.5554707845054, 0.08544713258743286, "AUTO_CLAMPED"], [0.35016486048698425, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, 0.35016486048698425, "AUTO_CLAMPED", 2461.1111958821616, 0.35016486048698425, "AUTO_CLAMPED"], [0.22380617260932922, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, 0.22380617260932922, "AUTO_CLAMPED", 2611.111195882161, 0.22380617260932922, "AUTO_CLAMPED"], [0.3215503692626953, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, 0.3215503692626953, "AUTO_CLAMPED", 2777.777862548828, 0.3215503692626953, "AUTO_CLAMPED"], [0.27883198857307434, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, 0.3215503692626953, "AUTO_CLAMPED", 2905.5554707845054, 0.2414534091949463, "AUTO_CLAMPED"], [-0.044656865298748016, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, -0.010165050625801086, "AUTO_CLAMPED", 3005.5554707845054, -0.06436647474765778, "AUTO_CLAMPED"], [-0.06436647474765778, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, -0.06436647474765778, "AUTO_CLAMPED", 3077.777862548828, -0.06436647474765778, "AUTO_CLAMPED"], [0.21741850674152374, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 0.21741850674152374, "AUTO_CLAMPED", 3194.4445292154946, 0.21741850674152374, "AUTO_CLAMPED"], [-0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, -0.0, "AUTO_CLAMPED", 3377.777862548828, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [-0.29975396394729614, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.11118181049823761, "AUTO_CLAMPED", 205.5555502573649, -0.431754469871521, "AUTO_CLAMPED"], [-0.6016762852668762, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, -0.6016762852668762, "AUTO_CLAMPED", 344.44443384806317, -0.6016762852668762, "AUTO_CLAMPED"], [-0.2427852749824524, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -0.2427852749824524, "AUTO_CLAMPED", 561.1111323038737, -0.2427852749824524, "AUTO_CLAMPED"], [-0.5669558644294739, 283.3333333333333, "BEZIER", "AUTO", 655.555534362793, -0.4411567151546478, "AUTO_CLAMPED", 894.444465637207, -0.7593545913696289, "AUTO_CLAMPED"], [-0.7819992303848267, 433.33333333333326, "BEZIER", "AUTO", 1038.8888676961262, -0.7819992303848267, "AUTO_CLAMPED", 1538.888931274414, -0.7819992303848267, "AUTO_CLAMPED"], [-0.31888678669929504, 1066.6666666666667, "BEZIER", "AUTO", 1894.4444020589192, -0.4946317672729492, "AUTO_CLAMPED", 2305.5554707845054, -0.2914266288280487, "AUTO_CLAMPED"], [-0.2666915953159332, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, -0.2666915953159332, "AUTO_CLAMPED", 2461.1111958821616, -0.2666915953159332, "AUTO_CLAMPED"], [-1.1831088066101074, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, -1.1831088066101074, "AUTO_CLAMPED", 2611.111195882161, -1.1831088066101074, "AUTO_CLAMPED"], [-0.03033590316772461, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, -0.05289873480796814, "AUTO_CLAMPED", 2777.777862548828, -0.013926569372415543, "AUTO_CLAMPED"], [-0.013926569372415543, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, -0.018347715958952904, "AUTO_CLAMPED", 2905.5554707845054, -0.010058065876364708, "AUTO_CLAMPED"], [0.000580325722694397, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, 0.000580325722694397, "AUTO_CLAMPED", 3005.5554707845054, 0.000580325722694397, "AUTO_CLAMPED"], [-0.08202043920755386, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, -0.08202043920755386, "AUTO_CLAMPED", 3077.777862548828, -0.08202043920755386, "AUTO_CLAMPED"], [0.007577709853649139, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 0.007577709853649139, "AUTO_CLAMPED", 3194.4445292154946, 0.007577709853649139, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, 0.0, "AUTO_CLAMPED", 3377.777862548828, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [2.9641926033154022, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.9641926033154022, "AUTO_CLAMPED", 205.5555502573649, 2.9641926033154022, "AUTO_CLAMPED"], [2.9641926033154022, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, 2.9641926033154022, "AUTO_CLAMPED", 344.44443384806317, 2.9641926033154022, "AUTO_CLAMPED"], [-1.8676834254716639, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -1.8676834254716639, "AUTO_CLAMPED", 527.7777671813965, -1.8676834254716639, "AUTO_CLAMPED"], [0.692141648494032, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, -0.02622915371246545, "AUTO_CLAMPED", 877.7777989705403, 3.3697056300941135, "AUTO_CLAMPED"], [3.3697056300941135, 683.3333333333333, "BEZIER", "AUTO", 1105.5555979410808, 3.3697056300941135, "AUTO_CLAMPED", 1638.8889312744138, 3.3697056300941135, "AUTO_CLAMPED"], [-4.827653264332706, 916.6666666666667, "BEZIER", "AUTO", 1944.4444020589194, 3.3697058435375253, "AUTO_CLAMPED", 2305.5554707845054, -6.318082076612705, "AUTO_CLAMPED"], [-9.225060960015261, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, -9.225060960015261, "AUTO_CLAMPED", 2461.1111958821616, -9.225060960015261, "AUTO_CLAMPED"], [-5.332826008177896, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, -5.332826008177896, "AUTO_CLAMPED", 2611.111195882161, -5.332826008177896, "AUTO_CLAMPED"], [-9.762812852427766, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, -9.762812852427766, "AUTO_CLAMPED", 2777.777862548828, -9.762812852427766, "AUTO_CLAMPED"], [-8.46581115546112, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, -8.46581115546112, "AUTO_CLAMPED", 2905.5554707845054, -8.46581115546112, "AUTO_CLAMPED"], [-9.922516335601005, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, -9.922516335601005, "AUTO_CLAMPED", 3005.5554707845054, -9.922516335601005, "AUTO_CLAMPED"], [-5.976405705364225, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, -7.419543141604702, "AUTO_CLAMPED", 3077.777862548828, -4.172483589898511, "AUTO_CLAMPED"], [-3.5616000082690333, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, -4.024545961344266, "AUTO_CLAMPED", 3194.4445292154946, -2.543118911503521, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, 0.0, "AUTO_CLAMPED", 3377.777862548828, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [-0.97928136045834, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.97928136045834, "AUTO_CLAMPED", 205.5555502573649, -0.97928136045834, "AUTO_CLAMPED"], [-0.97928136045834, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, -0.97928136045834, "AUTO_CLAMPED", 344.44443384806317, -0.97928136045834, "AUTO_CLAMPED"], [-0.8304706416290971, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -0.8304706416290971, "AUTO_CLAMPED", 527.7777671813965, -0.8304706416290971, "AUTO_CLAMPED"], [-0.8304706416290971, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, -0.8304706416290971, "AUTO_CLAMPED", 877.7777989705403, -0.8304706416290971, "AUTO_CLAMPED"], [13.812658261344582, 683.3333333333333, "BEZIER", "AUTO", 1105.5555979410808, 13.812658261344582, "AUTO_CLAMPED", 1638.8889312744138, 13.812658261344582, "AUTO_CLAMPED"], [3.3376227374586827, 916.6666666666667, "BEZIER", "AUTO", 1944.4444020589194, 3.3376227374586827, "AUTO_CLAMPED", 2305.5554707845054, 3.3376227374586827, "AUTO_CLAMPED"], [5.674417428948574, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, 5.674417428948574, "AUTO_CLAMPED", 2461.1111958821616, 5.674417428948574, "AUTO_CLAMPED"], [3.6080137050002086, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, 3.6080137050002086, "AUTO_CLAMPED", 2611.111195882161, 3.6080137050002086, "AUTO_CLAMPED"], [12.070624489948354, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, 12.070624489948354, "AUTO_CLAMPED", 2777.777862548828, 12.070624489948354, "AUTO_CLAMPED"], [10.467026700197236, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, 11.08395414546853, "AUTO_CLAMPED", 2905.5554707845054, 9.927215505749972, "AUTO_CLAMPED"], [8.542568821353722, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, 9.67049003919035, "AUTO_CLAMPED", 3005.5554707845054, 7.8980422891937, "AUTO_CLAMPED"], [6.156128899881594, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, 6.969043500744525, "AUTO_CLAMPED", 3077.777862548828, 5.139985862246341, "AUTO_CLAMPED"], [3.4902371246036825, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 4.305224474436301, "AUTO_CLAMPED", 3194.4445292154946, 1.697264656151145, "AUTO_CLAMPED"], [-0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, -0.0, "AUTO_CLAMPED", 3377.777862548828, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.35034732308023736, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.35034732308023736, "AUTO_CLAMPED", 205.5555502573649, 0.35034732308023736, "AUTO_CLAMPED"], [0.35034732308023736, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, 0.35034732308023736, "AUTO_CLAMPED", 344.44443384806317, 0.35034732308023736, "AUTO_CLAMPED"], [0.007649265755435478, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, 0.007649265755435478, "AUTO_CLAMPED", 527.7777671813965, 0.007649265755435478, "AUTO_CLAMPED"], [0.007649265755435478, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.007649265755435478, "AUTO_CLAMPED", 877.7777989705403, 0.007649265755435478, "AUTO_CLAMPED"], [0.22848543578639705, 683.3333333333333, "BEZIER", "AUTO", 1105.5555979410808, 0.0800165065601324, "AUTO_CLAMPED", 1638.8889312744138, 0.42765108394132434, "AUTO_CLAMPED"], [0.7637636524610204, 916.6666666666667, "BEZIER", "AUTO", 1944.4444020589194, 0.7637636524610204, "AUTO_CLAMPED", 2305.5554707845054, 0.7637636524610204, "AUTO_CLAMPED"], [0.04634753594369751, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, 0.04634753594369751, "AUTO_CLAMPED", 2461.1111958821616, 0.04634753594369751, "AUTO_CLAMPED"], [0.6907170204435554, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, 0.0463475292735909, "AUTO_CLAMPED", 2611.111195882161, 1.576725050791937, "AUTO_CLAMPED"], [6.133171353420711, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, 6.133171353420711, "AUTO_CLAMPED", 2777.777862548828, 6.133171353420711, "AUTO_CLAMPED"], [5.3183716203468565, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, 6.133171353420711, "AUTO_CLAMPED", 2905.5554707845054, 4.60542196062894, "AUTO_CLAMPED"], [2.264997877368833, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, 2.684597955867284, "AUTO_CLAMPED", 3005.5554707845054, 2.0252264344330624, "AUTO_CLAMPED"], [2.0252264344330624, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, 2.147129516305334, "AUTO_CLAMPED", 3077.777862548828, 1.8728476888144283, "AUTO_CLAMPED"], [0.9566294649628159, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 1.339521972427503, "AUTO_CLAMPED", 3194.4445292154946, 0.11426586316313989, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, 0.0, "AUTO_CLAMPED", 3377.777862548828, 0.0, "AUTO_CLAMPED"]]}}, "Mag": {"location": {"x": [[1.6590982809816524e-08, 0.0, "BEZIER", "AUTO", 55.555554231007896, 1.6590982809816524e-08, "AUTO_CLAMPED"], [1.6590982809816524e-08, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 1.6590982809816524e-08, "AUTO_CLAMPED", 250.0, 1.6590982809816524e-08, "AUTO_CLAMPED"], [-0.00021278602071106434, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 1.658918336033821e-08, "AUTO_CLAMPED", 461.1111005147298, -0.00032628074404783547, "AUTO_CLAMPED"], [-0.08896885067224503, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, -0.08896885067224503, "AUTO_CLAMPED", 594.444465637207, -0.08896885067224503, "AUTO_CLAMPED"], [0.49737149477005005, 133.33333333333337, "BEZIER", "AUTO", 638.8888676961263, -0.07979017496109009, "AUTO_CLAMPED", 744.444465637207, 1.2909687757492065, "AUTO_CLAMPED"], [4.048333168029785, 183.33333333333337, "BEZIER", "AUTO", 805.555534362793, 3.1584081649780273, "AUTO_CLAMPED", 911.1111323038737, 4.69555139541626, "AUTO_CLAMPED"], [6.1233038902282715, 133.33333333333326, "BEZIER", "EASE_IN", 955.555534362793, 4.825736999511719, "AUTO_CLAMPED", 1100.0, 9.042829513549805, "AUTO_CLAMPED"], [17.87222671508789, 300.0, "CONSTANT", "AUTO", 1200.0, 17.87222671508789, "AUTO_CLAMPED"], [4.58225154876709, 216.66666666666652, "BEZIER", "AUTO", 1650.0, 2.1092658042907715, "AUTO_CLAMPED"], [2.1092658042907715, 400.0000000000002, "BEZIER", "AUTO", 1783.3333333333333, 2.669361114501953, "AUTO_CLAMPED", 2000.0, 1.7592062950134277, "AUTO_CLAMPED"], [0.5067520141601562, 249.99999999999977, "BEZIER", "AUTO", 2083.3333333333335, 0.9715721607208252, "AUTO_CLAMPED", 2227.777862548828, 0.165883868932724, "AUTO_CLAMPED"], [-0.001381576294079423, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, -0.001381576294079423, "AUTO_CLAMPED", 2400.0, -0.001381576294079423, "AUTO_CLAMPED"], [1.6590982809816524e-08, 150.0, "BEZIER", "AUTO", 2450.0, 1.6590982809816524e-08, "AUTO_CLAMPED", 2550.0, 1.6590982809816524e-08, "AUTO_CLAMPED"]], "z": [[1.5, 0.0, "BEZIER", "AUTO", 55.555554231007896, 1.5, "AUTO_CLAMPED"], [1.5, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 1.5, "AUTO_CLAMPED", 250.0, 1.5, "AUTO_CLAMPED"], [1.6245688199996948, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 1.6245688199996948, "AUTO_CLAMPED", 461.1111005147298, 1.6245688199996948, "AUTO_CLAMPED"], [1.6176480054855347, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 1.6193782091140747, "AUTO_CLAMPED", 594.444465637207, 1.6159178018569946, "AUTO_CLAMPED"], [1.6000792980194092, 133.33333333333337, "BEZIER", "AUTO", 638.8888676961263, 1.6176480054855347, "AUTO_CLAMPED", 744.444465637207, 1.5759223699569702, "AUTO_CLAMPED"], [-1.4766695499420166, 183.33333333333337, "BEZIER", "AUTO", 805.555534362793, -1.4766695499420166, "AUTO_CLAMPED", 911.1111323038737, -1.4766695499420166, "AUTO_CLAMPED"], [-1.1554278135299683, 133.33333333333326, "BEZIER", "EASE_IN", 955.555534362793, -1.4023916721343994, "AUTO_CLAMPED", 1100.0, -0.5997589826583862, "AUTO_CLAMPED"], [0.8301324844360352, 300.0, "CONSTANT", "AUTO", 1200.0, 0.8301324844360352, "AUTO_CLAMPED"], [-2.845935821533203, 216.66666666666652, "BEZIER", "AUTO", 1650.0, -2.845935821533203, "AUTO_CLAMPED"], [-2.06758451461792, 400.0000000000002, "BEZIER", "AUTO", 1783.3333333333333, -2.845935821533203, "AUTO_CLAMPED", 2000.0, -1.5811150074005127, "AUTO_CLAMPED"], [1.2230087518692017, 249.99999999999977, "BEZIER", "AUTO", 2083.3333333333335, 0.7558850049972534, "AUTO_CLAMPED", 2227.777862548828, 1.5655661821365356, "AUTO_CLAMPED"], [1.5655661821365356, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, 1.5655661821365356, "AUTO_CLAMPED", 2400.0, 1.5655661821365356, "AUTO_CLAMPED"], [1.5, 150.0, "BEZIER", "AUTO", 2450.0, 1.5, "AUTO_CLAMPED", 2550.0, 1.5, "AUTO_CLAMPED"]], "y": [[2.3913047313690186, 0.0, "BEZIER", "AUTO", 55.555554231007896, 2.3913047313690186, "AUTO_CLAMPED"], [2.3913047313690186, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.3913047313690186, "AUTO_CLAMPED", 250.0, 2.3913047313690186, "AUTO_CLAMPED"], [3.190911054611206, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 2.795443058013916, "AUTO_CLAMPED", 461.1111005147298, 3.401827335357666, "AUTO_CLAMPED"], [3.736901044845581, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 3.6102774143218994, "AUTO_CLAMPED", 594.444465637207, 3.8635246753692627, "AUTO_CLAMPED"], [3.9083218574523926, 133.33333333333337, "BEZIER", "AUTO", 638.8888676961263, 3.9083218574523926, "AUTO_CLAMPED", 777.7777989705403, 3.9083218574523926, "AUTO_CLAMPED"], [2.154109477996826, 283.33333333333326, "BEZIER", "AUTO", 938.4711583455404, 0.7801735401153564, "ALIGNED", 1088.4118398030598, 8.086616516113281, "ALIGNED"], [-8.979971885681152, 333.33333333333337, "CONSTANT", "AUTO", 1262.9019419352214, -4.779057025909424, "ALIGNED"], [-4.248352527618408, 216.66666666666652, "BEZIER", "AUTO", 1650.0, 0.3588838577270508, "AUTO_CLAMPED"], [2.7332305908203125, 400.0000000000002, "BEZIER", "AUTO", 1783.3333333333333, 2.5646088123321533, "AUTO_CLAMPED", 2000.0, 2.8386192321777344, "AUTO_CLAMPED"], [2.8386192321777344, 249.99999999999977, "BEZIER", "AUTO", 2083.3333333333335, 2.8386192321777344, "AUTO_CLAMPED", 2227.777862548828, 2.8386192321777344, "AUTO_CLAMPED"], [2.8217806816101074, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, 2.8386192321777344, "AUTO_CLAMPED", 2400.0, 2.8080036640167236, "AUTO_CLAMPED"], [2.3913047313690186, 150.0, "BEZIER", "AUTO", 2450.0, 2.3913047313690186, "AUTO_CLAMPED", 2550.0, 2.3913047313690186, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.0, "AUTO_CLAMPED", 250.0, 0.0, "AUTO_CLAMPED"], [19.9088334682391, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 19.9088334682391, "AUTO_CLAMPED", 450.0, 19.9088334682391, "AUTO_CLAMPED"], [19.9088334682391, 99.99999999999994, "BEZIER", "AUTO", 483.3333333333333, 19.9088334682391, "AUTO_CLAMPED", 588.8888676961262, 19.9088334682391, "AUTO_CLAMPED"], [19.65956571447948, 216.66666666666663, "BEZIER", "AUTO", 661.1111323038737, 19.9088334682391, "AUTO_CLAMPED", 822.2222010294596, 19.352774107530017, "AUTO_CLAMPED"], [6.8487506359690835, 266.66666666666674, "BEZIER", "EASE_IN", 911.1111323038737, 6.8487506359690835, "AUTO_CLAMPED", 1100.0, 6.8487506359690835, "AUTO_CLAMPED"], [18.430997390354484, 300.0, "CONSTANT", "AUTO", 1203.1758626302083, 16.18389759681885, "ALIGNED"], [3.7309174095858877, 216.66666666666652, "BEZIER", "AUTO", 1622.2222646077473, 3.7309174095858877, "AUTO_CLAMPED"], [6.951205607953391, 316.66666666666674, "BEZIER", "AUTO", 1727.7777353922525, 5.1776103861761795, "AUTO_CLAMPED", 1944.4444020589194, 8.81814817134352, "AUTO_CLAMPED"], [11.202414385112291, 333.33333333333326, "BEZIER", "AUTO", 2055.5555979410806, 11.047306765476826, "AUTO_CLAMPED", 2227.777862548828, 11.287723447845751, "AUTO_CLAMPED"], [11.287723447845751, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, 11.287723447845751, "AUTO_CLAMPED", 2400.0, 11.287723447845751, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 2450.0, 0.0, "AUTO_CLAMPED", 2550.0, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [-0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.0, "AUTO_CLAMPED", 250.0, -0.0, "AUTO_CLAMPED"], [0.06078959074761263, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 0.06078959074761263, "AUTO_CLAMPED", 450.0, 0.06078959074761263, "AUTO_CLAMPED"], [0.06078959074761263, 99.99999999999994, "BEZIER", "AUTO", 483.3333333333333, 0.06078959074761263, "AUTO_CLAMPED", 588.8888676961262, 0.06078959074761263, "AUTO_CLAMPED"], [7.811642957513978, 216.66666666666663, "BEZIER", "AUTO", 661.1111323038737, 7.811642957513978, "AUTO_CLAMPED", 822.2222010294596, 7.811642957513978, "AUTO_CLAMPED"], [-38.30911379034874, 266.66666666666674, "BEZIER", "EASE_IN", 911.3918304443359, 13.807524520409672, "ALIGNED", 1077.3877461751301, -83.82624232502783, "ALIGNED"], [-352.32899724031466, 300.0, "CONSTANT", "AUTO", 1261.3759358723958, -321.9006410916913, "ALIGNED"], [-69.20970580309225, 216.66666666666652, "BEZIER", "AUTO", 1622.2222646077473, -43.611167661881616, "AUTO_CLAMPED"], [-43.611167661881616, 316.66666666666674, "BEZIER", "AUTO", 1727.7777353922525, -51.158690619285785, "AUTO_CLAMPED", 1944.4444020589194, -35.66640773253867, "AUTO_CLAMPED"], [-3.7350402825236366, 333.33333333333326, "BEZIER", "AUTO", 2055.5555979410806, -10.995832752344318, "AUTO_CLAMPED", 2227.777862548828, 0.25839587469851427, "AUTO_CLAMPED"], [0.2583960614614994, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, 0.2583960614614994, "AUTO_CLAMPED", 2400.0, 0.2583960614614994, "AUTO_CLAMPED"], [-0.0, 150.0, "BEZIER", "AUTO", 2450.0, -0.0, "AUTO_CLAMPED", 2550.0, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.0, "AUTO_CLAMPED", 250.0, 0.0, "AUTO_CLAMPED"], [0.35444556998437726, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 0.35444556998437726, "AUTO_CLAMPED", 450.0, 0.35444556998437726, "AUTO_CLAMPED"], [0.35444556998437726, 99.99999999999994, "BEZIER", "AUTO", 483.3333333333333, 0.35444556998437726, "AUTO_CLAMPED", 588.8888676961262, 0.35444556998437726, "AUTO_CLAMPED"], [3.2815099586626775, 216.66666666666663, "BEZIER", "AUTO", 661.1111323038737, 3.2815099586626775, "AUTO_CLAMPED", 822.2222010294596, 3.2815099586626775, "AUTO_CLAMPED"], [-16.578976228979897, 266.66666666666674, "BEZIER", "EASE_IN", 911.1111323038737, -16.578976228979897, "AUTO_CLAMPED", 1100.0, -16.578976228979897, "AUTO_CLAMPED"], [-8.980774975481523, 300.0, "CONSTANT", "AUTO", 1200.0, -8.980774975481523, "AUTO_CLAMPED"], [-10.256062647303052, 216.66666666666652, "BEZIER", "AUTO", 1622.2222646077473, -10.955330584339789, "AUTO_CLAMPED"], [-11.29071421692857, 316.66666666666674, "BEZIER", "AUTO", 1727.7777353922525, -10.97447645835698, "AUTO_CLAMPED", 1944.4444020589194, -11.623596292733836, "AUTO_CLAMPED"], [-12.285666165777036, 333.33333333333326, "BEZIER", "AUTO", 2055.5555979410806, -12.285666165777036, "AUTO_CLAMPED", 2183.333333333333, -12.285666165777036, "AUTO_CLAMPED"], [-1.6670543025653557, 50.000000000000455, "BEZIER", "AUTO", 2200.0, -1.9612403685147366, "AUTO_CLAMPED", 2311.1111958821616, 0.0, "AUTO_CLAMPED"], [0.0, 283.33333333333303, "BEZIER", "AUTO", 2405.5554707845054, 0.0, "AUTO_CLAMPED", 2594.4445292154946, 0.0, "AUTO_CLAMPED"]]}}}}, "offset": {"Bolt": [0.4437499940395355, 1.8304203748703003, -1.8655332326889038], "Mag": [1.6590982809816524e-08, 2.3913047313690186, 1.5], "MagPlate": [8.392404104995421e-09, 2.080420970916748, 1.7499605417251587], "Silencer": [2.45330426196233e-07, 1.8616708517074585, 11.875], "Trigger": [2.9753691066503052e-08, 1.111669898033142, -1.562500238418579]}, "hierarchy": {"Bolt": "Gun", "Mag": "Gun", "MagPlate": "Mag", "Silencer": "Gun", "Trigger": "Gun"}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/benelli.json b/src/main/resources/assets/hbm/models/weapons/animations/benelli.json new file mode 100644 index 000000000..0e37a1ce0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/benelli.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Body": {"location": {"x": [[0.0, 0.0], [0.0, 33.333333333333336], [0.0, 66.66666666666666], [0.0, 66.66666666666666], [0.0, 83.33333333333334], [0.0, 100.0]], "z": [[-0.0, 0.0], [1.2799978256225586, 33.333333333333336], [3.300405740737915, 66.66666666666666], [3.3889946937561035, 66.66666666666666], [2.0333967208862305, 83.33333333333334], [-0.0, 100.0]], "y": [[0.0, 0.0], [0.9528294205665588, 33.333333333333336], [1.7167738676071167, 66.66666666666666], [0.5139352083206177, 66.66666666666666], [0.30836111307144165, 83.33333333333334], [0.0, 100.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [-5.1962657672336, 16.666666666666668], [6.746534720605728, 100.0], [1.678380570478235, 49.999999999999986], [1.0070283636312822, 83.33333333333334], [0.0, 100.0]], "z": [[-0.0, 0.0], [-0.0, 16.666666666666668], [-0.0, 100.0], [0.0, 49.999999999999986], [0.0, 83.33333333333334], [-0.0, 100.0]], "y": [[0.0, 0.0], [0.0, 16.666666666666668], [0.0, 100.0], [0.0, 49.999999999999986], [0.0, 83.33333333333334], [0.0, 100.0]]}}, "Bolt": {"location": {"z": [[-0.0, 0.0], [4.257456302642822, 66.66666666666667], [4.257456302642822, 33.33333333333333], [2.882056713104248, 66.66666666666666], [-0.0, 83.33333333333334]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.5007915496826172, 83.33333333333333], [0.46001285314559937, 83.33333333333333], [0.15397095680236816, 100.00000000000003], [0.03881697356700897, 116.66666666666663], [0.03881697356700897, 116.66666666666669], [0.6601351499557495, 383.33333333333326], [0.4018043577671051, 133.33333333333337], [0.8223400712013245, 83.33333333333337], [0.6317735910415649, 83.33333333333326], [0.15794339776039124, 116.66666666666674], [0.0, 66.66666666666674]], "z": [[-0.0, 0.0], [0.4146515130996704, 83.33333333333333], [0.3180652856826782, 83.33333333333333], [-0.12122371792793274, 100.00000000000003], [-0.2061876803636551, 116.66666666666663], [-0.2061876803636551, 116.66666666666669], [-0.6247760653495789, 383.33333333333326], [-1.290284276008606, 133.33333333333337], [-1.3669732809066772, 83.33333333333337], [-1.4020495414733887, 83.33333333333326], [-0.35051238536834717, 116.66666666666674], [-0.0, 66.66666666666674]], "y": [[0.0, 0.0], [1.4644715785980225, 83.33333333333333], [1.9239956140518188, 83.33333333333333], [-0.3446009159088135, 100.00000000000003], [-0.7123041152954102, 116.66666666666663], [-0.7123041152954102, 116.66666666666669], [0.6297056674957275, 383.33333333333326], [0.5360619425773621, 133.33333333333337], [1.523516058921814, 83.33333333333337], [0.8995347023010254, 83.33333333333326], [0.22488367557525635, 116.66666666666674], [0.0, 66.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [8.444355823730817, 116.66666666666667], [10.09434425832466, 83.33333333333333], [10.670753313892146, 33.33333333333334], [4.141512097107088, 116.66666666666666], [1.1253919134096066, 150.0], [-4.873045847782964, 350.0], [-4.873045847782964, 166.66666666666663], [-1.8423141819035325, 50.000000000000114], [-0.5846049624063828, 116.66666666666652], [-0.1461512406015957, 116.66666666666674], [0.0, 66.66666666666674]], "z": [[-0.0, 0.0], [-9.164495111323818, 116.66666666666667], [-10.54833497962436, 83.33333333333333], [-10.991167733141198, 33.33333333333334], [-9.358875464913211, 116.66666666666666], [-10.721522963766496, 150.0], [-22.99460365222414, 350.0], [-22.99460365222414, 166.66666666666663], [-24.61038393813362, 50.000000000000114], [-19.906907354893153, 116.66666666666652], [-4.976726838723288, 116.66666666666674], [-0.0, 66.66666666666674]], "y": [[-0.0, 0.0], [-1.7598609920167847, 116.66666666666667], [-2.1381843163701446, 83.33333333333333], [-2.2967894197474803, 33.33333333333334], [-2.016966814735813, 116.66666666666666], [-2.2765310786692226, 150.0], [0.2646153489071927, 350.0], [0.2646153489071927, 166.66666666666663], [-1.4523905282968463, 50.000000000000114], [-0.7688532106097378, 116.66666666666652], [-0.19221331599264765, 116.66666666666674], [0.0, 66.66666666666674]]}}, "Drum": {"location": {"x": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [-7.078051567077637e-08, 183.33333333333337], [-7.078051567077637e-08, 66.66666666666663], [-7.078051567077637e-08, 83.33333333333326]], "z": [[-0.0, 0.0], [-0.0, 266.6666666666667], [-0.0, 99.99999999999994], [-0.0, 316.66666666666674], [-0.16810643672943115, 183.33333333333337], [-0.16810643672943115, 66.66666666666663], [-0.0, 83.33333333333326]], "y": [[0.0, 0.0], [0.0, 266.6666666666667], [-3.731025218963623, 99.99999999999994], [-3.731025218963623, 316.66666666666674], [-0.9465155601501465, 183.33333333333337], [-0.9465155601501465, 66.66666666666663], [0.0, 83.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [18.37620219773806, 183.33333333333337], [18.37620219773806, 66.66666666666663], [0.0, 83.33333333333326]], "z": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [3.379190651762519e-06, 183.33333333333337], [3.379190651762519e-06, 66.66666666666663], [-0.0, 83.33333333333326]], "y": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [-3.3751875801959914e-07, 183.33333333333337], [-3.3751875801959914e-07, 66.66666666666663], [-3.3751875801959914e-07, 83.33333333333326]]}}}, "ReloadEmpty": {"Body": {"location": {"x": [[0.0, 0.0], [0.5007915496826172, 83.33333333333333], [0.46001285314559937, 83.33333333333333], [0.15397095680236816, 100.00000000000003], [0.03881697356700897, 116.66666666666663], [0.03881697356700897, 116.66666666666669], [0.6601351499557495, 383.33333333333326], [0.4018043577671051, 133.33333333333337], [0.8223400712013245, 83.33333333333337], [0.6317735910415649, 133.33333333333348], [-1.6643010377883911, 99.99999999999977], [-2.1745400428771973, 83.33333333333348], [-1.930220603942871, 233.33333333333326], [-2.2005791664123535, 100.0], [0.0, 233.33333333333348]], "z": [[-0.0, 0.0], [0.4146515130996704, 83.33333333333333], [0.3180652856826782, 83.33333333333333], [-0.12122371792793274, 100.00000000000003], [-0.2061876803636551, 116.66666666666663], [-0.2061876803636551, 116.66666666666669], [-0.6247760653495789, 383.33333333333326], [-1.290284276008606, 133.33333333333337], [-1.3669732809066772, 83.33333333333337], [-1.4020495414733887, 133.33333333333348], [-1.1939475536346436, 99.99999999999977], [-1.147702693939209, 83.33333333333348], [-0.7498241662979126, 233.33333333333326], [-1.5017924308776855, 100.0], [-0.0, 233.33333333333348]], "y": [[0.0, 0.0], [1.4644715785980225, 83.33333333333333], [1.9239956140518188, 83.33333333333333], [-0.3446009159088135, 100.00000000000003], [-0.7123041152954102, 116.66666666666663], [-0.7123041152954102, 116.66666666666669], [0.6297056674957275, 383.33333333333326], [0.5360619425773621, 133.33333333333337], [1.523516058921814, 83.33333333333337], [0.8995347023010254, 133.33333333333348], [0.7137325406074524, 99.99999999999977], [0.672443151473999, 83.33333333333348], [0.7088958621025085, 233.33333333333326], [0.8606953024864197, 100.0], [0.0, 233.33333333333348]]}, "rotation_euler": {"x": [[0.0, 0.0], [8.444355823730817, 116.66666666666667], [10.09434425832466, 83.33333333333333], [10.670753313892146, 33.33333333333334], [4.141512097107088, 116.66666666666666], [1.1253919134096066, 150.0], [-4.873045847782964, 350.0], [-4.873045847782964, 166.66666666666663], [-1.8423141819035325, 50.000000000000114], [-0.5846049624063828, 100.0], [4.828984724334035, 166.66666666666652], [5.661844758233873, 83.33333333333348], [9.69551499853563, 233.33333333333326], [3.8410456722158806, 133.33333333333326], [0.0, 200.00000000000023]], "z": [[-0.0, 0.0], [-9.164495111323818, 116.66666666666667], [-10.54833497962436, 83.33333333333333], [-10.991167733141198, 33.33333333333334], [-9.358875464913211, 116.66666666666666], [-10.721522963766496, 150.0], [-22.99460365222414, 350.0], [-22.99460365222414, 166.66666666666663], [-24.61038393813362, 50.000000000000114], [-19.906907354893153, 100.0], [48.29071467736494, 166.66666666666652], [58.78265705388074, 83.33333333333348], [56.59382389660719, 233.33333333333326], [58.250277959024096, 133.33333333333326], [-0.0, 200.00000000000023]], "y": [[-0.0, 0.0], [-1.7598609920167847, 116.66666666666667], [-2.1381843163701446, 83.33333333333333], [-2.2967894197474803, 33.33333333333334], [-2.016966814735813, 116.66666666666666], [-2.2765310786692226, 150.0], [0.2646153489071927, 350.0], [0.2646153489071927, 166.66666666666663], [-1.4523905282968463, 50.000000000000114], [-0.7688532106097378, 100.0], [18.290462833086888, 166.66666666666652], [21.222664751320654, 83.33333333333348], [22.87163463395452, 233.33333333333326], [21.677345321726527, 133.33333333333326], [0.0, 200.00000000000023]]}}, "Bolt": {"location": {"z": [[-0.0, 0.0], [-0.0, 1416.6666666666667], [4.2012176513671875, 150.0], [4.2012176513671875, 50.0], [2.4794747829437256, 50.0], [-0.0, 49.99999999999977]]}}, "Drum": {"location": {"x": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [-7.078051567077637e-08, 183.33333333333337], [-7.078051567077637e-08, 66.66666666666663], [-7.078051567077637e-08, 83.33333333333326]], "z": [[-0.0, 0.0], [-0.0, 266.6666666666667], [-0.0, 99.99999999999994], [-0.0, 316.66666666666674], [-0.16810643672943115, 183.33333333333337], [-0.16810643672943115, 66.66666666666663], [-0.0, 83.33333333333326]], "y": [[0.0, 0.0], [0.0, 266.6666666666667], [-3.731025218963623, 99.99999999999994], [-3.731025218963623, 316.66666666666674], [-0.9465155601501465, 183.33333333333337], [-0.9465155601501465, 66.66666666666663], [0.0, 83.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [18.37620219773806, 183.33333333333337], [18.37620219773806, 66.66666666666663], [0.0, 83.33333333333326]], "z": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [3.379190651762519e-06, 183.33333333333337], [3.379190651762519e-06, 66.66666666666663], [-0.0, 83.33333333333326]], "y": [[0.0, 0.0], [0.0, 266.6666666666667], [0.0, 99.99999999999994], [0.0, 316.66666666666674], [-3.3751875801959914e-07, 183.33333333333337], [-3.3751875801959914e-07, 66.66666666666663], [-3.3751875801959914e-07, 83.33333333333326]]}}}}, "offset": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/congolake.json b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json new file mode 100644 index 000000000..192bd4f63 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/congolake.json @@ -0,0 +1 @@ +{"anim": {"Equip": {"Gun": {"location": {"x": [[-0.23637241125106812, 0.0, "BACK", "AUTO", 1.7015800476074219], [0.0, 716.6666666666666, "BEZIER", "AUTO", 955.555534362793, 0.0, "AUTO_CLAMPED"]], "z": [[-2.670673370361328, 0.0, "BACK", "AUTO", 1.7015800476074219], [-0.0, 716.6666666666666, "BEZIER", "AUTO", 955.555534362793, -0.0, "AUTO_CLAMPED"]], "y": [[-4.068621635437012, 0.0, "BACK", "AUTO", 1.7015800476074219], [0.0, 716.6666666666666, "BEZIER", "AUTO", 955.555534362793, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[88.63504384036447, 0.0, "BACK", "AUTO", 1.7015800476074219], [-3.8488709345706, 516.6666666666666, "BEZIER", "EASE_OUT", 611.1111323038737, -3.8488709345706, "AUTO_CLAMPED"], [0.0, 283.33333333333337, "BEZIER", "AUTO", 705.555534362793, 0.0, "AUTO_CLAMPED", 894.444465637207, 0.0, "AUTO_CLAMPED"]], "z": [[1.9343983654068213, 0.0, "BACK", "AUTO", 1.7015800476074219], [6.406567604197043, 516.6666666666666, "BEZIER", "EASE_OUT", 611.1111323038737, 6.406567604197043, "AUTO_CLAMPED"], [-0.0, 283.33333333333337, "BEZIER", "AUTO", 705.555534362793, -0.0, "AUTO_CLAMPED", 894.444465637207, -0.0, "AUTO_CLAMPED"]], "y": [[-3.580704901151205, 0.0, "BACK", "AUTO", 1.7015800476074219], [-0.8266392790306901, 516.6666666666666, "BEZIER", "EASE_OUT", 611.1111323038737, -0.2922556837352062, "AUTO_CLAMPED"], [0.0, 283.33333333333337, "BEZIER", "AUTO", 705.555534362793, 0.0, "AUTO_CLAMPED", 894.444465637207, 0.0, "AUTO_CLAMPED"]]}}, "Loop": {"rotation_euler": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 72.22222487131755, -0.0, "AUTO_CLAMPED"], [-0.0, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, -0.0, "AUTO_CLAMPED", 277.7777671813965, -0.0, "AUTO_CLAMPED"], [40.12815367576864, 183.33333333333331, "BOUNCE", "AUTO", 338.8888994852702, 40.12815367576864, "AUTO_CLAMPED"], [-0.0, 450.0, "BEZIER", "AUTO", 1000.0, -0.0, "AUTO_CLAMPED"]]}, "location": {"x": [[0.2532634139060974, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.2532634139060974, "AUTO_CLAMPED"]], "z": [[3.4837722778320312, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.4837722778320312, "AUTO_CLAMPED"]], "y": [[1.4936577081680298, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.4936577081680298, "AUTO_CLAMPED"]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 166.66666666666666, 0.0, "AUTO_CLAMPED", 300.0, 0.0, "AUTO_CLAMPED"], [-23.23367222600563, 150.0, "BOUNCE", "AUTO", 350.0, -23.23367222600563, "AUTO_CLAMPED"], [0.0, 383.33333333333337, "BEZIER", "AUTO", 911.1111323038737, 0.0, "AUTO_CLAMPED"]]}, "location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[2.990000009536743, 0.0, "BEZIER", "AUTO", 16.666666666666668, 2.990000009536743, "AUTO_CLAMPED"]], "y": [[2.104297161102295, 0.0, "BEZIER", "AUTO", 16.666666666666668, 2.104297161102295, "AUTO_CLAMPED"]]}}}, "Fire": {"Gun": {"location": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 50.0, "LINEAR", "AUTO"], [-0.015234995633363724, 133.33333333333331, "LINEAR", "AUTO"], [-0.0032073669135570526, 166.66666666666669, "LINEAR", "AUTO"], [0.0, 150.0, "LINEAR", "AUTO"], [0.1729116439819336, 183.33333333333337, "LINEAR", "AUTO"], [0.13706907629966736, 83.33333333333326, "LINEAR", "AUTO"], [0.13706907629966736, 200.0, "LINEAR", "AUTO"], [0.08123889565467834, 166.66666666666663, "LINEAR", "AUTO"], [0.0, 116.66666666666674, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [-0.7130982875823975, 50.0, "LINEAR", "AUTO"], [-0.8931010961532593, 133.33333333333331, "LINEAR", "AUTO"], [-0.1880212426185608, 166.66666666666669, "LINEAR", "AUTO"], [-0.0, 150.0, "LINEAR", "AUTO"], [0.07001475989818573, 183.33333333333337, "LINEAR", "AUTO"], [0.3594728708267212, 83.33333333333326, "LINEAR", "AUTO"], [0.3594728708267212, 200.0, "LINEAR", "AUTO"], [0.052131712436676025, 166.66666666666663, "LINEAR", "AUTO"], [-0.0, 116.66666666666674, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [-0.05462139472365379, 50.0, "LINEAR", "AUTO"], [0.33006909489631653, 133.33333333333331, "LINEAR", "AUTO"], [0.06948822736740112, 166.66666666666669, "LINEAR", "AUTO"], [0.0, 150.0, "LINEAR", "AUTO"], [0.1356278508901596, 183.33333333333337, "LINEAR", "AUTO"], [0.16076654195785522, 83.33333333333326, "LINEAR", "AUTO"], [0.16076654195785522, 200.0, "LINEAR", "AUTO"], [0.13280370831489563, 166.66666666666663, "LINEAR", "AUTO"], [0.0, 116.66666666666674, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [5.533829083941263, 83.33333333333333, "LINEAR", "AUTO"], [-6.777895961066664, 133.33333333333337, "LINEAR", "AUTO"], [-1.4269255553586289, 166.66666666666663, "LINEAR", "AUTO"], [0.0, 116.66666666666669, "LINEAR", "AUTO"], [-1.6187724423744758, 216.66666666666663, "LINEAR", "AUTO"], [-3.0496036919995886, 100.0, "LINEAR", "AUTO"], [-1.5771150119048625, 216.66666666666663, "LINEAR", "AUTO"], [-1.3797563756722266, 133.33333333333348, "LINEAR", "AUTO"], [0.0, 116.66666666666652, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [0.20789931232904474, 83.33333333333333, "LINEAR", "AUTO"], [-0.2137078679498249, 133.33333333333337, "LINEAR", "AUTO"], [-0.04499113641374835, 166.66666666666663, "LINEAR", "AUTO"], [-0.0, 116.66666666666669, "LINEAR", "AUTO"], [6.481160527009576, 216.66666666666663, "LINEAR", "AUTO"], [6.3670886839075465, 100.0, "LINEAR", "AUTO"], [2.910396325865089, 216.66666666666663, "LINEAR", "AUTO"], [2.9018462096847024, 133.33333333333348, "LINEAR", "AUTO"], [-0.0, 116.66666666666652, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.299797573280649, 83.33333333333333, "LINEAR", "AUTO"], [-0.3922261210480681, 133.33333333333337, "LINEAR", "AUTO"], [-0.08257391881641295, 166.66666666666663, "LINEAR", "AUTO"], [0.0, 116.66666666666669, "LINEAR", "AUTO"], [-1.7981676810899783, 216.66666666666663, "LINEAR", "AUTO"], [-1.8284025806680975, 100.0, "LINEAR", "AUTO"], [4.424185025436767, 216.66666666666663, "LINEAR", "AUTO"], [0.5393851613977845, 133.33333333333348, "LINEAR", "AUTO"], [0.0, 116.66666666666652, "LINEAR", "AUTO"]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0, "LINEAR", "AUTO"], [28.83552188323058, 50.0, "LINEAR", "AUTO"], [-11.070683087911195, 50.0, "LINEAR", "AUTO"], [-2.56723823045354, 33.33333333333334, "LINEAR", "AUTO"], [7.0765451287518255, 49.99999999999997, "LINEAR", "AUTO"], [80.15762477840892, 116.66666666666669, "LINEAR", "AUTO"], [60.820607917294126, 50.0, "LINEAR", "AUTO"], [-0.0, 83.33333333333337, "LINEAR", "AUTO"]]}, "location": {"x": [[0.2532634139060974, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.2532634139060974, "AUTO_CLAMPED"]], "z": [[3.4837722778320312, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.4837722778320312, "AUTO_CLAMPED"]], "y": [[1.4936577081680298, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.4936577081680298, "AUTO_CLAMPED"]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334, "LINEAR", "AUTO"], [-0.10627399384975433, 49.999999999999886, "LINEAR", "AUTO"], [-0.7439179420471191, 66.66666666666674, "LINEAR", "AUTO"], [-0.7439179420471191, 200.0, "LINEAR", "AUTO"], [-0.18597948551177979, 66.66666666666674, "LINEAR", "AUTO"], [-0.0, 66.66666666666652, "LINEAR", "AUTO"]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0, "CONSTANT", "AUTO"], [-2.204763704938273e-09, 683.3333333333334, "LINEAR", "AUTO"], [-2.204763704938273e-09, 66.66666666666663, "LINEAR", "AUTO"], [1.5205265935236412e-09, 116.66666666666674, "LINEAR", "AUTO"], [-0.01397116482257843, 66.66666666666663, "LINEAR", "AUTO"], [-0.01397116482257843, 49.999999999999886, "LINEAR", "AUTO"], [1.5205265935236412e-09, 150.0, "BEZIER", "AUTO", 1183.3333333333333, 1.5205265935236412e-09, "AUTO_CLAMPED"]], "z": [[1.2549771070480347, 0.0, "CONSTANT", "AUTO"], [1.2549771070480347, 683.3333333333334, "LINEAR", "AUTO"], [0.4066495895385742, 66.66666666666663, "LINEAR", "AUTO"], [0.4066495895385742, 116.66666666666674, "LINEAR", "AUTO"], [0.4519183039665222, 66.66666666666663, "LINEAR", "AUTO"], [0.4519183039665222, 49.999999999999886, "LINEAR", "AUTO"], [1.2549771070480347, 150.0, "BEZIER", "AUTO", 1183.3333333333333, 1.2549771070480347, "AUTO_CLAMPED"]], "y": [[1.7459099292755127, 0.0, "CONSTANT", "AUTO"], [1.199751853942871, 683.3333333333334, "LINEAR", "AUTO"], [1.199751853942871, 66.66666666666663, "LINEAR", "AUTO"], [1.5027252435684204, 116.66666666666674, "LINEAR", "AUTO"], [1.5814520120620728, 66.66666666666663, "LINEAR", "AUTO"], [1.5814520120620728, 49.999999999999886, "LINEAR", "AUTO"], [1.7459099292755127, 150.0, "BEZIER", "AUTO", 1183.3333333333333, 1.7459099292755127, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT", "AUTO"], [0.0, 683.3333333333334, "LINEAR", "AUTO"], [0.0, 66.66666666666663, "LINEAR", "AUTO"], [-24.580495030325643, 116.66666666666674, "LINEAR", "AUTO"], [-15.192167789711336, 66.66666666666663, "LINEAR", "AUTO"], [-15.192167789711336, 49.999999999999886, "LINEAR", "AUTO"], [0.0, 150.0, "BEZIER", "AUTO", 1183.3333333333333, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "CONSTANT", "AUTO"], [0.0, 683.3333333333334, "LINEAR", "AUTO"], [0.0, 66.66666666666663, "LINEAR", "AUTO"], [0.0, 116.66666666666674, "LINEAR", "AUTO"], [-9.025331207124422e-09, 66.66666666666663, "LINEAR", "AUTO"], [-9.025331207124422e-09, 49.999999999999886, "LINEAR", "AUTO"], [0.0, 150.0, "BEZIER", "AUTO", 1183.3333333333333, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "CONSTANT", "AUTO"], [0.0, 683.3333333333334, "LINEAR", "AUTO"], [0.0, 66.66666666666663, "LINEAR", "AUTO"], [8.004127933608693e-08, 116.66666666666674, "LINEAR", "AUTO"], [1.31019960381489e-07, 66.66666666666663, "LINEAR", "AUTO"], [1.31019960381489e-07, 49.999999999999886, "LINEAR", "AUTO"], [0.0, 150.0, "BEZIER", "AUTO", 1183.3333333333333, 0.0, "AUTO_CLAMPED"]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [-10.132303034637006, 50.0, "LINEAR", "AUTO"], [0.0, 33.33333333333333, "LINEAR", "AUTO"], [0.0, 99.99999999999999, "LINEAR", "AUTO"], [-7.955241708397972, 83.33333333333337, "LINEAR", "AUTO"], [-10.701222787779573, 99.99999999999994, "LINEAR", "AUTO"], [0.0, 116.66666666666669, "LINEAR", "AUTO"]]}, "location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[2.990000009536743, 0.0, "BEZIER", "AUTO", 16.666666666666668, 2.990000009536743, "AUTO_CLAMPED"]], "y": [[2.104297161102295, 0.0, "BEZIER", "AUTO", 16.666666666666668, 2.104297161102295, "AUTO_CLAMPED"]]}}}, "FireEmpty": {"Gun": {"location": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 50.0, "LINEAR", "AUTO"], [-0.015234995633363724, 133.33333333333331, "LINEAR", "AUTO"], [-0.0032073669135570526, 166.66666666666669, "LINEAR", "AUTO"], [0.0, 150.0, "LINEAR", "AUTO"], [0.1729116439819336, 183.33333333333337, "LINEAR", "AUTO"], [0.13706907629966736, 83.33333333333326, "LINEAR", "AUTO"], [0.13706907629966736, 200.0, "LINEAR", "AUTO"], [0.08123889565467834, 166.66666666666663, "LINEAR", "AUTO"], [0.0, 116.66666666666674, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [-0.7130982875823975, 50.0, "LINEAR", "AUTO"], [-0.8931010961532593, 133.33333333333331, "LINEAR", "AUTO"], [-0.1880212426185608, 166.66666666666669, "LINEAR", "AUTO"], [-0.0, 150.0, "LINEAR", "AUTO"], [0.07001475989818573, 183.33333333333337, "LINEAR", "AUTO"], [0.3594728708267212, 83.33333333333326, "LINEAR", "AUTO"], [0.3594728708267212, 200.0, "LINEAR", "AUTO"], [0.052131712436676025, 166.66666666666663, "LINEAR", "AUTO"], [-0.0, 116.66666666666674, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [-0.05462139472365379, 50.0, "LINEAR", "AUTO"], [0.33006909489631653, 133.33333333333331, "LINEAR", "AUTO"], [0.06948822736740112, 166.66666666666669, "LINEAR", "AUTO"], [0.0, 150.0, "LINEAR", "AUTO"], [0.1356278508901596, 183.33333333333337, "LINEAR", "AUTO"], [0.16076654195785522, 83.33333333333326, "LINEAR", "AUTO"], [0.16076654195785522, 200.0, "LINEAR", "AUTO"], [0.13280370831489563, 166.66666666666663, "LINEAR", "AUTO"], [0.0, 116.66666666666674, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [5.533829083941263, 83.33333333333333, "LINEAR", "AUTO"], [-6.777895961066664, 133.33333333333337, "LINEAR", "AUTO"], [-1.4269255553586289, 166.66666666666663, "LINEAR", "AUTO"], [0.0, 116.66666666666669, "LINEAR", "AUTO"], [-1.6187724423744758, 216.66666666666663, "LINEAR", "AUTO"], [-3.0496036919995886, 100.0, "LINEAR", "AUTO"], [-1.5771150119048625, 216.66666666666663, "LINEAR", "AUTO"], [-1.3797563756722266, 133.33333333333348, "LINEAR", "AUTO"], [0.0, 116.66666666666652, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [0.20789931232904474, 83.33333333333333, "LINEAR", "AUTO"], [-0.2137078679498249, 133.33333333333337, "LINEAR", "AUTO"], [-0.04499113641374835, 166.66666666666663, "LINEAR", "AUTO"], [-0.0, 116.66666666666669, "LINEAR", "AUTO"], [6.481160527009576, 216.66666666666663, "LINEAR", "AUTO"], [6.3670886839075465, 100.0, "LINEAR", "AUTO"], [2.910396325865089, 216.66666666666663, "LINEAR", "AUTO"], [2.9018462096847024, 133.33333333333348, "LINEAR", "AUTO"], [-0.0, 116.66666666666652, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.299797573280649, 83.33333333333333, "LINEAR", "AUTO"], [-0.3922261210480681, 133.33333333333337, "LINEAR", "AUTO"], [-0.08257391881641295, 166.66666666666663, "LINEAR", "AUTO"], [0.0, 116.66666666666669, "LINEAR", "AUTO"], [-1.7981676810899783, 216.66666666666663, "LINEAR", "AUTO"], [-1.8284025806680975, 100.0, "LINEAR", "AUTO"], [4.424185025436767, 216.66666666666663, "LINEAR", "AUTO"], [0.5393851613977845, 133.33333333333348, "LINEAR", "AUTO"], [0.0, 116.66666666666652, "LINEAR", "AUTO"]]}}, "Loop": {"rotation_euler": {"z": [[0.0, 0.0, "LINEAR", "AUTO"], [28.83552188323058, 50.0, "LINEAR", "AUTO"], [-11.070683087911195, 50.0, "LINEAR", "AUTO"], [-2.56723823045354, 33.33333333333334, "LINEAR", "AUTO"], [7.0765451287518255, 49.99999999999997, "LINEAR", "AUTO"], [80.15762477840892, 116.66666666666669, "LINEAR", "AUTO"], [60.820607917294126, 50.0, "LINEAR", "AUTO"], [-0.0, 83.33333333333337, "LINEAR", "AUTO"]]}, "location": {"x": [[0.2532634139060974, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.2532634139060974, "AUTO_CLAMPED"]], "z": [[3.4837722778320312, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.4837722778320312, "AUTO_CLAMPED"]], "y": [[1.4936577081680298, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.4936577081680298, "AUTO_CLAMPED"]]}}, "Pump": {"location": {"z": [[-0.0, 683.3333333333334, "LINEAR", "AUTO"], [-0.10627399384975433, 49.999999999999886, "LINEAR", "AUTO"], [-0.7439179420471191, 66.66666666666674, "LINEAR", "AUTO"], [-0.7439179420471191, 200.0, "LINEAR", "AUTO"], [-0.18597948551177979, 66.66666666666674, "LINEAR", "AUTO"], [-0.0, 66.66666666666652, "LINEAR", "AUTO"]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.5205265935236412e-09, "AUTO_CLAMPED"]], "z": [[1.2549771070480347, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.2549771070480347, "AUTO_CLAMPED"]], "y": [[-4.465472221374512, 0.0, "BEZIER", "AUTO", 16.666666666666668, -4.465472221374512, "AUTO_CLAMPED"]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [-10.132303034637006, 50.0, "LINEAR", "AUTO"], [0.0, 33.33333333333333, "LINEAR", "AUTO"], [0.0, 99.99999999999999, "LINEAR", "AUTO"], [-7.955241708397972, 83.33333333333337, "LINEAR", "AUTO"], [-10.701222787779573, 99.99999999999994, "LINEAR", "AUTO"], [0.0, 116.66666666666669, "LINEAR", "AUTO"]]}, "location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[2.990000009536743, 0.0, "BEZIER", "AUTO", 16.666666666666668, 2.990000009536743, "AUTO_CLAMPED"]], "y": [[2.104297161102295, 0.0, "BEZIER", "AUTO", 16.666666666666668, 2.104297161102295, "AUTO_CLAMPED"]]}}}, "Inspect": {"Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [-0.12323401868343353, 150.0, "BEZIER", "AUTO", 100.0, -0.12323401868343353, "AUTO_CLAMPED", 244.44443384806314, -0.12323401868343353, "AUTO_CLAMPED"], [0.6714629530906677, 283.33333333333337, "BEZIER", "AUTO", 338.8888994852702, 0.6316179633140564, "AUTO_CLAMPED", 550.0, 0.720683217048645, "AUTO_CLAMPED"], [0.720683217048645, 350.0, "BEZIER", "AUTO", 666.6666666666666, 0.6878942847251892, "AUTO_CLAMPED", 822.2222010294596, 0.7316128611564636, "AUTO_CLAMPED"], [0.7498289346694946, 116.66666666666663, "BEZIER", "AUTO", 861.1111323038737, 0.7498289346694946, "AUTO_CLAMPED", 938.8888676961263, 0.7498289346694946, "AUTO_CLAMPED"], [-0.2174956500530243, 116.66666666666663, "BEZIER", "AUTO", 977.7777989705404, -0.2174956500530243, "AUTO_CLAMPED", 1055.555534362793, -0.2174956500530243, "AUTO_CLAMPED"], [0.6381056308746338, 116.66666666666663, "BEZIER", "AUTO", 1094.4444020589192, 0.25491249561309814, "AUTO_CLAMPED", 1177.7777353922525, 1.0760406255722046, "AUTO_CLAMPED"], [1.39745032787323, 133.33333333333326, "BEZIER", "AUTO", 1222.2222646077473, 1.39745032787323, "AUTO_CLAMPED", 1305.5555979410806, 1.39745032787323, "AUTO_CLAMPED"], [0.7498289346694946, 116.66666666666674, "BEZIER", "AUTO", 1344.4444020589192, 0.7582998871803284, "AUTO_CLAMPED", 1416.6666666666667, 0.7425681352615356, "AUTO_CLAMPED"], [0.7425681352615356, 100.00000000000023, "BEZIER", "AUTO", 1450.0, 0.7498289346694946, "AUTO_CLAMPED", 1572.2222646077473, 0.7232059836387634, "AUTO_CLAMPED"], [0.0, 266.6666666666665, "BEZIER", "AUTO", 1661.111068725586, 0.0, "AUTO_CLAMPED", 1838.888931274414, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 50.0, -0.0, "AUTO_CLAMPED"], [0.004470236599445343, 150.0, "BEZIER", "AUTO", 100.0, 0.004470236599445343, "AUTO_CLAMPED", 244.44443384806314, 0.004470236599445343, "AUTO_CLAMPED"], [-0.7847118377685547, 283.33333333333337, "BEZIER", "AUTO", 338.8888994852702, -0.7847118377685547, "AUTO_CLAMPED", 550.0, -0.7847118377685547, "AUTO_CLAMPED"], [-0.7614920139312744, 350.0, "BEZIER", "AUTO", 666.6666666666666, -0.7614920139312744, "AUTO_CLAMPED", 822.2222010294596, -0.7614920139312744, "AUTO_CLAMPED"], [-0.8043150305747986, 116.66666666666663, "BEZIER", "AUTO", 861.1111323038737, -0.8043150305747986, "AUTO_CLAMPED", 938.8888676961263, -0.8043150305747986, "AUTO_CLAMPED"], [0.2914704382419586, 116.66666666666663, "BEZIER", "AUTO", 977.7777989705404, 0.2914704382419586, "AUTO_CLAMPED", 1055.555534362793, 0.2914704382419586, "AUTO_CLAMPED"], [-1.007084608078003, 116.66666666666663, "BEZIER", "AUTO", 1094.4444020589192, -0.7027649879455566, "AUTO_CLAMPED", 1177.7777353922525, -1.3548784255981445, "AUTO_CLAMPED"], [-1.3548784255981445, 133.33333333333326, "BEZIER", "AUTO", 1222.2222646077473, -1.3548784255981445, "AUTO_CLAMPED", 1305.5555979410806, -1.3548784255981445, "AUTO_CLAMPED"], [-0.8043150305747986, 116.66666666666674, "BEZIER", "AUTO", 1344.4444020589192, -0.9178578853607178, "AUTO_CLAMPED", 1416.6666666666667, -0.7069925665855408, "AUTO_CLAMPED"], [-0.7069925665855408, 100.00000000000023, "BEZIER", "AUTO", 1450.0, -0.7431455850601196, "AUTO_CLAMPED", 1572.2222646077473, -0.6105844974517822, "AUTO_CLAMPED"], [-0.0, 266.6666666666665, "BEZIER", "AUTO", 1661.111068725586, -0.0, "AUTO_CLAMPED", 1838.888931274414, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [-0.8819321990013123, 150.0, "BEZIER", "AUTO", 100.0, -0.8819321990013123, "AUTO_CLAMPED", 244.44443384806314, -0.8819321990013123, "AUTO_CLAMPED"], [0.7901571393013, 283.33333333333337, "BEZIER", "AUTO", 338.8888994852702, 0.7901571393013, "AUTO_CLAMPED", 550.0, 0.7901571393013, "AUTO_CLAMPED"], [0.597180962562561, 350.0, "BEZIER", "AUTO", 666.6666666666666, 0.7901571393013, "AUTO_CLAMPED", 822.2222010294596, 0.5328555703163147, "AUTO_CLAMPED"], [0.0791918933391571, 116.66666666666663, "BEZIER", "AUTO", 861.1111323038737, 0.0791918933391571, "AUTO_CLAMPED", 938.8888676961263, 0.0791918933391571, "AUTO_CLAMPED"], [2.510791063308716, 116.66666666666663, "BEZIER", "AUTO", 977.7777989705404, 0.9371596574783325, "AUTO_CLAMPED", 1055.555534362793, 4.084422588348389, "AUTO_CLAMPED"], [5.609644889831543, 116.66666666666663, "BEZIER", "AUTO", 1077.044932047526, 5.669650554656982, "ALIGNED", 1188.8394673665364, 5.550473213195801, "ALIGNED"], [1.905346393585205, 133.33333333333326, "BEZIER", "AUTO", 1222.2222646077473, 3.3027164936065674, "AUTO_CLAMPED", 1305.5555979410806, 0.6826475858688354, "AUTO_CLAMPED"], [0.0791918933391571, 116.66666666666674, "BEZIER", "AUTO", 1344.4444020589192, 0.37730181217193604, "AUTO_CLAMPED", 1416.6666666666667, -0.17633089423179626, "AUTO_CLAMPED"], [-0.42653748393058777, 100.00000000000023, "BEZIER", "AUTO", 1450.0, -0.42653748393058777, "AUTO_CLAMPED", 1572.2222646077473, -0.42653748393058777, "AUTO_CLAMPED"], [0.0, 266.6666666666665, "BEZIER", "AUTO", 1661.111068725586, 0.0, "AUTO_CLAMPED", 1838.888931274414, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [-4.633752304645683, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -4.633752304645683, "AUTO_CLAMPED", 166.66666666666666, -4.633752304645683, "AUTO_CLAMPED"], [5.477748961987227, 100.0, "BEZIER", "AUTO", 200.0, 5.477748961987227, "AUTO_CLAMPED", 344.44443384806317, 5.477748961987227, "AUTO_CLAMPED"], [-30.605503934936856, 333.33333333333326, "BEZIER", "AUTO", 455.55556615193683, -29.397615716071368, "AUTO_CLAMPED", 638.8888676961263, -31.390630764935235, "AUTO_CLAMPED"], [-31.390630764935235, 216.66666666666674, "BEZIER", "AUTO", 711.1111323038737, -31.390630764935235, "AUTO_CLAMPED", 822.2222010294596, -31.390630764935235, "AUTO_CLAMPED"], [-17.61978265282124, 116.66666666666663, "BEZIER", "EASE_IN_OUT", 861.1111323038737, -19.94842124466849, "AUTO_CLAMPED", 1066.6666666666667, -7.639905534796823, "AUTO_CLAMPED"], [-7.639905534796823, 500.0, "BEZIER", "AUTO", 1233.3333333333335, -17.248046192148713, "AUTO_CLAMPED", 1427.7777353922525, -6.0385489008671165, "AUTO_CLAMPED"], [-2.2699262857418203, 83.33333333333348, "BEZIER", "AUTO", 1455.5555979410808, -3.903406153111743, "AUTO_CLAMPED", 1555.5555979410806, 1.977121198665251, "AUTO_CLAMPED"], [2.8329244783173966, 216.66666666666652, "BEZIER", "AUTO", 1627.7777353922527, 2.8329244783173966, "AUTO_CLAMPED", 1750.0, 2.8329244783173966, "AUTO_CLAMPED"], [0.0, 149.99999999999977, "BEZIER", "AUTO", 1800.0, 0.0, "AUTO_CLAMPED", 1900.0, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-3.1105595018039556, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -1.7627949851521283, "AUTO_CLAMPED", 177.77778307596842, -4.458324018455783, "AUTO_CLAMPED"], [-6.432775040042382, 133.33333333333334, "BEZIER", "AUTO", 222.22221692403158, -5.391058066607309, "AUTO_CLAMPED", 366.66666666666663, -8.776637696662767, "AUTO_CLAMPED"], [-11.67222638585068, 299.99999999999994, "BEZIER", "AUTO", 466.6666666666667, -11.67222638585068, "AUTO_CLAMPED", 638.8888676961263, -11.67222638585068, "AUTO_CLAMPED"], [-4.456549023045226, 216.66666666666674, "BEZIER", "AUTO", 711.1111323038737, -4.456549023045226, "AUTO_CLAMPED", 822.2222010294596, -4.456549023045226, "AUTO_CLAMPED"], [-13.314149220808385, 116.66666666666663, "BEZIER", "EASE_IN_OUT", 861.1111323038737, -4.456549023045226, "AUTO_CLAMPED", 1066.6666666666667, -51.27529219370166, "AUTO_CLAMPED"], [-361.35626702102377, 500.0, "BEZIER", "AUTO", 1233.3333333333335, -361.35626702102377, "AUTO_CLAMPED", 1427.7777353922525, -361.35626702102377, "AUTO_CLAMPED"], [-355.8403428511049, 83.33333333333348, "BEZIER", "AUTO", 1455.5555979410808, -357.0212279170867, "AUTO_CLAMPED", 1555.5555979410806, -352.7700635361574, "AUTO_CLAMPED"], [-352.7700635361574, 216.66666666666652, "BEZIER", "AUTO", 1627.7777353922527, -352.7700635361574, "AUTO_CLAMPED", 1750.0, -352.7700635361574, "AUTO_CLAMPED"], [-360.00001001791264, 149.99999999999977, "BEZIER", "AUTO", 1800.0, -360.00001001791264, "AUTO_CLAMPED", 1900.0, -360.00001001791264, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.33971415928555554, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.33971415928555554, "AUTO_CLAMPED", 177.77778307596842, 0.33971415928555554, "AUTO_CLAMPED"], [-0.41244006589672083, 133.33333333333334, "BEZIER", "AUTO", 222.22221692403158, -0.41244006589672083, "AUTO_CLAMPED", 366.66666666666663, -0.41244006589672083, "AUTO_CLAMPED"], [44.46649859126397, 299.99999999999994, "BEZIER", "AUTO", 466.6666666666667, 44.46649859126397, "AUTO_CLAMPED", 638.8888676961263, 44.46649859126397, "AUTO_CLAMPED"], [44.02138882343258, 216.66666666666674, "BEZIER", "AUTO", 711.1111323038737, 44.02138882343258, "AUTO_CLAMPED", 822.2222010294596, 44.02138882343258, "AUTO_CLAMPED"], [47.94823533200216, 116.66666666666663, "BEZIER", "EASE_IN_OUT", 861.1111323038737, 47.88392910096649, "AUTO_CLAMPED", 1066.6666666666667, 48.223830049917595, "AUTO_CLAMPED"], [48.223830049917595, 500.0, "BEZIER", "AUTO", 1233.3333333333335, 47.94823533200216, "AUTO_CLAMPED", 1427.7777353922525, 48.26976307208593, "AUTO_CLAMPED"], [48.38842053344197, 83.33333333333348, "BEZIER", "AUTO", 1455.5555979410808, 48.38842053344197, "AUTO_CLAMPED", 1555.5555979410806, 48.38842053344197, "AUTO_CLAMPED"], [5.144987695152906, 216.66666666666652, "BEZIER", "AUTO", 1627.7777353922527, 12.57663649328781, "AUTO_CLAMPED", 1750.0, 0.0, "AUTO_CLAMPED"], [0.0, 149.99999999999977, "BEZIER", "AUTO", 1800.0, 0.0, "AUTO_CLAMPED", 1900.0, 0.0, "AUTO_CLAMPED"]]}}, "Loop": {"rotation_euler": {"z": [[-0.0, 516.6666666666666, "BEZIER", "AUTO", 544.444465637207, -0.0, "AUTO_CLAMPED"], [46.517741002802204, 83.33333333333337, "BOUNCE", "AUTO", 572.2222010294596, 46.517741002802204, "AUTO_CLAMPED"], [-0.0, 250.0, "BEZIER", "AUTO", 866.6666666666667, -0.0, "AUTO_CLAMPED"], [-0.0, 50.0, "BEZIER", "EASE_IN", 883.3333333333333, -0.0, "AUTO_CLAMPED", 983.3333333333333, -0.0, "AUTO_CLAMPED"], [142.2283622194905, 250.0, "BEZIER", "AUTO", 1066.6666666666667, 142.2283622194905, "AUTO_CLAMPED", 1216.6666666666665, 142.2283622194905, "AUTO_CLAMPED"], [142.2283622194905, 200.0, "BOUNCE", "AUTO", 1283.3333333333333, 142.2283622194905, "AUTO_CLAMPED"], [-0.0, 300.0, "BEZIER", "AUTO", 1750.0, -0.0, "AUTO_CLAMPED"]]}, "location": {"x": [[0.2532634139060974, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.2532634139060974, "AUTO_CLAMPED"]], "z": [[3.4837722778320312, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.4837722778320312, "AUTO_CLAMPED"]], "y": [[1.4936577081680298, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.4936577081680298, "AUTO_CLAMPED"]]}}, "Pump": {"location": {"z": [[-0.0, 483.3333333333333, "BEZIER", "AUTO", 533.3333333333334, -0.0, "AUTO_CLAMPED"], [-0.5437495112419128, 149.99999999999994, "BEZIER", "AUTO", 583.3333333333334, -0.5437495112419128, "AUTO_CLAMPED", 894.444465637207, -0.5437495112419128, "AUTO_CLAMPED"], [-0.5437495112419128, 783.3333333333335, "BEZIER", "AUTO", 1155.5555979410808, -0.5437495112419128, "AUTO_CLAMPED", 1461.111068725586, -0.5437495112419128, "AUTO_CLAMPED"], [-0.0, 133.33333333333326, "BEZIER", "AUTO", 1505.5555979410806, -0.0, "AUTO_CLAMPED", 1594.4444020589192, -0.0, "AUTO_CLAMPED"]]}}, "Shell": {"location": {"z": [[1.2549771070480347, 0.0, "BEZIER", "AUTO", 161.11111640930176, 1.2549771070480347, "AUTO_CLAMPED"], [1.2549771070480347, 483.3333333333333, "BEZIER", "AUTO", 322.22220102945965, 1.2549771070480347, "AUTO_CLAMPED", 533.3333333333334, 1.2549771070480347, "AUTO_CLAMPED"], [0.6961657404899597, 149.99999999999994, "BEZIER", "AUTO", 583.3333333333334, 0.6961657404899597, "AUTO_CLAMPED", 894.444465637207, 0.6961657404899597, "AUTO_CLAMPED"], [0.6961657404899597, 783.3333333333335, "BEZIER", "AUTO", 1155.5555979410808, 0.6961657404899597, "AUTO_CLAMPED", 1461.111068725586, 0.6961657404899597, "AUTO_CLAMPED"], [1.2549771070480347, 133.33333333333326, "BEZIER", "AUTO", 1505.5555979410806, 1.2549771070480347, "AUTO_CLAMPED", 1594.4444020589192, 1.2549771070480347, "AUTO_CLAMPED"]], "x": [[1.5205265935236412e-09, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.5205265935236412e-09, "AUTO_CLAMPED"]], "y": [[1.7459099292755127, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.7459099292755127, "AUTO_CLAMPED"]]}}, "Sight": {"rotation_euler": {"x": [[0.0, 1083.3333333333333, "BEZIER", "AUTO", 1161.111068725586, 0.0, "AUTO_CLAMPED"], [-59.84361082822633, 233.33333333333348, "BOUNCE", "AUTO", 1238.888931274414, -59.84361082822633, "AUTO_CLAMPED"], [0.0, 350.0, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED"]]}, "location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[2.990000009536743, 0.0, "BEZIER", "AUTO", 16.666666666666668, 2.990000009536743, "AUTO_CLAMPED"]], "y": [[2.104297161102295, 0.0, "BEZIER", "AUTO", 16.666666666666668, 2.104297161102295, "AUTO_CLAMPED"]]}}}, "Jammed": {"Gun": {"location": {"x": [[1.7611019611358643, 0.0, "BEZIER", "AUTO", 72.22222487131755, 1.7611019611358643, "AUTO_CLAMPED"], [0.4335063397884369, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.4335063397884369, "AUTO_CLAMPED", 261.11111640930176, 0.4335063397884369, "AUTO_CLAMPED"], [0.5203688144683838, 133.33333333333331, "BEZIER", "AUTO", 305.55556615193683, 0.5203688144683838, "AUTO_CLAMPED", 394.44443384806317, 0.5203688144683838, "AUTO_CLAMPED"], [0.5093004703521729, 133.33333333333331, "BEZIER", "AUTO", 438.88889948527014, 0.5203688144683838, "AUTO_CLAMPED", 516.6666666666666, 0.5009992122650146, "AUTO_CLAMPED"], [0.46423017978668213, 100.00000000000006, "BEZIER", "AUTO", 550.0, 0.46423017978668213, "AUTO_CLAMPED", 611.1111323038737, 0.46423017978668213, "AUTO_CLAMPED"], [0.5423690676689148, 83.33333333333326, "BEZIER", "AUTO", 638.8888676961263, 0.5423690676689148, "AUTO_CLAMPED", 716.6666666666666, 0.5423690676689148, "AUTO_CLAMPED"], [0.46423017978668213, 150.0, "BEZIER", "AUTO", 766.6666666666666, 0.483991414308548, "AUTO_CLAMPED", 877.7777989705403, 0.4400775730609894, "AUTO_CLAMPED"], [0.4400775730609894, 183.33333333333337, "BEZIER", "AUTO", 938.8888676961263, 0.46423017978668213, "AUTO_CLAMPED", 1072.2222646077473, 0.4115335941314697, "AUTO_CLAMPED"], [0.0, 216.66666666666652, "BEZIER", "AUTO", 1144.4444020589192, 0.0, "AUTO_CLAMPED", 1288.888931274414, 0.0, "AUTO_CLAMPED"]], "z": [[0.31467199325561523, 0.0, "BEZIER", "AUTO", 72.22222487131755, 0.31467199325561523, "AUTO_CLAMPED"], [0.1592063307762146, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.1592063307762146, "AUTO_CLAMPED", 261.11111640930176, 0.1592063307762146, "AUTO_CLAMPED"], [0.6345540285110474, 133.33333333333331, "BEZIER", "AUTO", 305.55556615193683, 0.6345540285110474, "AUTO_CLAMPED", 394.44443384806317, 0.6345540285110474, "AUTO_CLAMPED"], [0.5526263117790222, 133.33333333333331, "BEZIER", "AUTO", 438.88889948527014, 0.6345540285110474, "AUTO_CLAMPED", 516.6666666666666, 0.49118053913116455, "AUTO_CLAMPED"], [0.21367275714874268, 100.00000000000006, "BEZIER", "AUTO", 550.0, 0.3746391534805298, "AUTO_CLAMPED", 611.1111323038737, 0.07953411340713501, "AUTO_CLAMPED"], [-0.08545513451099396, 83.33333333333326, "BEZIER", "AUTO", 638.8888676961263, -0.08545513451099396, "AUTO_CLAMPED", 716.6666666666666, -0.08545513451099396, "AUTO_CLAMPED"], [0.21367275714874268, 150.0, "BEZIER", "AUTO", 766.6666666666666, 0.21367275714874268, "AUTO_CLAMPED", 877.7777989705403, 0.21367275714874268, "AUTO_CLAMPED"], [-0.23178784549236298, 183.33333333333337, "BEZIER", "AUTO", 938.8888676961263, -0.23178784549236298, "AUTO_CLAMPED", 1072.2222646077473, -0.23178784549236298, "AUTO_CLAMPED"], [-0.0, 216.66666666666652, "BEZIER", "AUTO", 1144.4444020589192, -0.0, "AUTO_CLAMPED", 1288.888931274414, -0.0, "AUTO_CLAMPED"]], "y": [[0.8750439286231995, 0.0, "BEZIER", "AUTO", 72.22222487131755, 0.8750439286231995, "AUTO_CLAMPED"], [0.8282241821289062, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.8282241821289062, "AUTO_CLAMPED", 261.11111640930176, 0.8282241821289062, "AUTO_CLAMPED"], [0.8524319529533386, 133.33333333333331, "BEZIER", "AUTO", 305.55556615193683, 0.8524319529533386, "AUTO_CLAMPED", 394.44443384806317, 0.8524319529533386, "AUTO_CLAMPED"], [0.694107174873352, 133.33333333333331, "BEZIER", "AUTO", 438.88889948527014, 0.7370265126228333, "AUTO_CLAMPED", 516.6666666666666, 0.6619176864624023, "AUTO_CLAMPED"], [0.5792746543884277, 100.00000000000006, "BEZIER", "AUTO", 550.0, 0.6705016493797302, "AUTO_CLAMPED", 611.1111323038737, 0.5032521486282349, "AUTO_CLAMPED"], [0.3579166531562805, 83.33333333333326, "BEZIER", "AUTO", 638.8888676961263, 0.3579166531562805, "AUTO_CLAMPED", 716.6666666666666, 0.3579166531562805, "AUTO_CLAMPED"], [0.5792746543884277, 150.0, "BEZIER", "AUTO", 766.6666666666666, 0.5792746543884277, "AUTO_CLAMPED", 877.7777989705403, 0.5792746543884277, "AUTO_CLAMPED"], [0.12604567408561707, 183.33333333333337, "BEZIER", "AUTO", 938.8888676961263, 0.23269972205162048, "AUTO_CLAMPED", 1072.2222646077473, 0.0, "AUTO_CLAMPED"], [0.0, 216.66666666666652, "BEZIER", "AUTO", 1144.4444020589192, 0.0, "AUTO_CLAMPED", 1288.888931274414, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0, "BEZIER", "AUTO", 88.88889153798421, -18.983153297952903, "AUTO_CLAMPED"], [-19.09516157015194, 266.6666666666667, "BEZIER", "AUTO", 177.77776718139648, -18.983153297952903, "AUTO_CLAMPED", 300.0, -19.137165526000228, "AUTO_CLAMPED"], [-22.28346484640992, 99.99999999999994, "BEZIER", "AUTO", 333.3333333333333, -22.28346484640992, "AUTO_CLAMPED", 405.55556615193683, -22.28346484640992, "AUTO_CLAMPED"], [-17.511022135572542, 116.66666666666669, "BEZIER", "AUTO", 444.44443384806317, -18.973317825548083, "AUTO_CLAMPED", 516.6666666666666, -16.25762607381455, "AUTO_CLAMPED"], [-14.249356651213104, 100.00000000000006, "BEZIER", "AUTO", 550.0, -16.361834269981436, "AUTO_CLAMPED", 611.1111323038737, -12.488958208686002, "AUTO_CLAMPED"], [-9.18919392913623, 83.33333333333326, "BEZIER", "AUTO", 638.8888676961263, -9.18919392913623, "AUTO_CLAMPED", 716.6666666666666, -9.18919392913623, "AUTO_CLAMPED"], [-14.249356651213104, 150.0, "BEZIER", "AUTO", 766.6666666666666, -14.249356651213104, "AUTO_CLAMPED", 877.7777989705403, -14.249356651213104, "AUTO_CLAMPED"], [-4.831175507510316, 183.33333333333337, "BEZIER", "AUTO", 938.8888676961263, -7.957230147220092, "AUTO_CLAMPED", 1094.4444020589192, 0.0, "AUTO_CLAMPED"], [0.0, 283.33333333333326, "BEZIER", "AUTO", 1188.888931274414, 0.0, "AUTO_CLAMPED", 1377.7777353922527, 0.0, "AUTO_CLAMPED"]], "z": [[86.04810969222216, 0.0, "BEZIER", "AUTO", 88.88889153798421, 86.04810969222216, "AUTO_CLAMPED"], [12.109782818233683, 266.6666666666667, "BEZIER", "AUTO", 177.77776718139648, 12.109782818233683, "AUTO_CLAMPED", 300.0, 12.109782818233683, "AUTO_CLAMPED"], [14.211438856035777, 99.99999999999994, "BEZIER", "AUTO", 333.3333333333333, 14.211438856035777, "AUTO_CLAMPED", 405.55556615193683, 14.211438856035777, "AUTO_CLAMPED"], [11.62535165135053, 116.66666666666669, "BEZIER", "AUTO", 444.44443384806317, 12.759742765878451, "AUTO_CLAMPED", 516.6666666666666, 10.65301616639127, "AUTO_CLAMPED"], [9.913802721767361, 100.00000000000006, "BEZIER", "AUTO", 550.0, 9.913802721767361, "AUTO_CLAMPED", 611.1111323038737, 9.913802721767361, "AUTO_CLAMPED"], [14.555850291160024, 83.33333333333326, "BEZIER", "AUTO", 638.8888676961263, 14.555850291160024, "AUTO_CLAMPED", 716.6666666666666, 14.555850291160024, "AUTO_CLAMPED"], [9.913802721767361, 150.0, "BEZIER", "AUTO", 766.6666666666666, 9.913802721767361, "AUTO_CLAMPED", 877.7777989705403, 9.913802721767361, "AUTO_CLAMPED"], [10.868919299829018, 183.33333333333337, "BEZIER", "AUTO", 938.8888676961263, 10.868919299829018, "AUTO_CLAMPED", 1094.4444020589192, 10.868919299829018, "AUTO_CLAMPED"], [-0.0, 283.33333333333326, "BEZIER", "AUTO", 1188.888931274414, -0.0, "AUTO_CLAMPED", 1377.7777353922527, -0.0, "AUTO_CLAMPED"]], "y": [[29.613753637261834, 0.0, "BEZIER", "AUTO", 88.88889153798421, 29.613753637261834, "AUTO_CLAMPED"], [14.500921909854782, 266.6666666666667, "BEZIER", "AUTO", 177.77776718139648, 14.500921909854782, "AUTO_CLAMPED", 300.0, 14.500921909854782, "AUTO_CLAMPED"], [14.956577489764673, 99.99999999999994, "BEZIER", "AUTO", 333.3333333333333, 14.956577489764673, "AUTO_CLAMPED", 405.55556615193683, 14.956577489764673, "AUTO_CLAMPED"], [12.810625967647754, 116.66666666666669, "BEZIER", "AUTO", 444.44443384806317, 13.804464595661505, "AUTO_CLAMPED", 516.6666666666666, 11.958763920590117, "AUTO_CLAMPED"], [8.863413542520487, 100.00000000000006, "BEZIER", "AUTO", 550.0, 11.223185844151947, "AUTO_CLAMPED", 611.1111323038737, 6.896936339903054, "AUTO_CLAMPED"], [3.8025490185063964, 83.33333333333326, "BEZIER", "AUTO", 638.8888676961263, 3.8025490185063964, "AUTO_CLAMPED", 716.6666666666666, 3.8025490185063964, "AUTO_CLAMPED"], [8.863413542520487, 150.0, "BEZIER", "AUTO", 766.6666666666666, 8.863413542520487, "AUTO_CLAMPED", 877.7777989705403, 8.863413542520487, "AUTO_CLAMPED"], [4.843448503675183, 183.33333333333337, "BEZIER", "AUTO", 938.8888676961263, 6.679401645027318, "AUTO_CLAMPED", 1094.4444020589192, 2.0060666865941186, "AUTO_CLAMPED"], [0.0, 283.33333333333326, "BEZIER", "AUTO", 1188.888931274414, 0.0, "AUTO_CLAMPED", 1377.7777353922527, 0.0, "AUTO_CLAMPED"]]}}, "Pump": {"location": {"z": [[-0.0, 250.0, "BEZIER", "AUTO", 294.4444338480631, -0.0, "AUTO_CLAMPED"], [-0.7347903847694397, 133.33333333333331, "BEZIER", "AUTO", 338.8888994852702, -0.7347903847694397, "AUTO_CLAMPED", 438.88889948527014, -0.7347903847694397, "AUTO_CLAMPED"], [-0.7347903847694397, 166.66666666666669, "BEZIER", "EASE_OUT", 494.4444338480631, -0.7347903847694397, "AUTO_CLAMPED", 561.1111323038737, -0.7347903847694397, "AUTO_CLAMPED"], [-0.5442891716957092, 33.33333333333337, "BEZIER", "AUTO", 572.2222010294596, -0.5442891716957092, "AUTO_CLAMPED", 627.7777989705403, -0.5442891716957092, "AUTO_CLAMPED"], [-0.5442891716957092, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, -0.5442891716957092, "AUTO_CLAMPED", 733.3333333333333, -0.5442891716957092, "AUTO_CLAMPED"], [-0.7347903847694397, 50.0, "BEZIER", "EASE_OUT", 750.0, -0.7347903847694397, "AUTO_CLAMPED", 805.555534362793, -0.7347903847694397, "AUTO_CLAMPED"], [-0.7347903847694397, 116.66666666666663, "BEZIER", "EASE_OUT", 844.444465637207, -0.7347903847694397, "AUTO_CLAMPED", 916.6666666666666, -0.7347903847694397, "AUTO_CLAMPED"], [-0.0, 100.0, "BEZIER", "AUTO", 950.0, -0.0, "AUTO_CLAMPED", 1016.6666666666666, -0.0, "AUTO_CLAMPED"]]}}, "Shell": {"location": {"x": [[-0.0016984597314149141, 0.0, "BEZIER", "AUTO", 83.33333333333333, -0.0016984597314149141, "AUTO_CLAMPED"], [-0.0016984597314149141, 250.0, "BEZIER", "AUTO", 166.66666666666666, -0.0016984597314149141, "AUTO_CLAMPED", 294.4444338480631, -0.0016984597314149141, "AUTO_CLAMPED"], [-0.007186012342572212, 133.33333333333331, "BEZIER", "AUTO", 338.8888994852702, -0.007186012342572212, "AUTO_CLAMPED", 438.88889948527014, -0.007186012342572212, "AUTO_CLAMPED"], [-0.007186012342572212, 166.66666666666669, "BEZIER", "AUTO", 494.4444338480631, -0.007186012342572212, "AUTO_CLAMPED", 561.1111323038737, -0.007186012342572212, "AUTO_CLAMPED"], [-0.005604023113846779, 33.33333333333337, "BEZIER", "AUTO", 572.2222010294596, -0.005604023113846779, "AUTO_CLAMPED", 627.7777989705403, -0.005604023113846779, "AUTO_CLAMPED"], [-0.005604023113846779, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, -0.005604023113846779, "AUTO_CLAMPED", 733.3333333333333, -0.005604023113846779, "AUTO_CLAMPED"], [-0.00728671345859766, 50.0, "BEZIER", "AUTO", 750.0, -0.00728671345859766, "AUTO_CLAMPED", 805.555534362793, -0.00728671345859766, "AUTO_CLAMPED"], [-0.00728671345859766, 116.66666666666663, "BEZIER", "AUTO", 844.444465637207, -0.00728671345859766, "AUTO_CLAMPED", 916.6666666666666, -0.00728671345859766, "AUTO_CLAMPED"], [1.5205265935236412e-09, 100.0, "CONSTANT", "AUTO", 950.0, 1.5205265935236412e-09, "AUTO_CLAMPED"], [-0.00728671345859766, 33.33333333333337, "BEZIER", "AUTO", 1027.7777989705403, -0.00728671345859766, "AUTO_CLAMPED"]], "z": [[1.2552038431167603, 0.0, "BEZIER", "AUTO", 83.33333333333333, 1.2552038431167603, "AUTO_CLAMPED"], [1.2552038431167603, 250.0, "BEZIER", "AUTO", 166.66666666666666, 1.2552038431167603, "AUTO_CLAMPED", 294.4444338480631, 1.2552038431167603, "AUTO_CLAMPED"], [0.5118296146392822, 133.33333333333331, "BEZIER", "AUTO", 338.8888994852702, 0.5118296146392822, "AUTO_CLAMPED", 438.88889948527014, 0.5118296146392822, "AUTO_CLAMPED"], [0.5118296146392822, 166.66666666666669, "BEZIER", "AUTO", 494.4444338480631, 0.5118296146392822, "AUTO_CLAMPED", 561.1111323038737, 0.5118296146392822, "AUTO_CLAMPED"], [0.7032749652862549, 33.33333333333337, "BEZIER", "AUTO", 572.2222010294596, 0.7032749652862549, "AUTO_CLAMPED", 627.7777989705403, 0.7032749652862549, "AUTO_CLAMPED"], [0.7032749652862549, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 0.7032749652862549, "AUTO_CLAMPED", 733.3333333333333, 0.7032749652862549, "AUTO_CLAMPED"], [0.5241438150405884, 50.0, "BEZIER", "AUTO", 750.0, 0.5241438150405884, "AUTO_CLAMPED", 805.555534362793, 0.5241438150405884, "AUTO_CLAMPED"], [0.5241438150405884, 116.66666666666663, "BEZIER", "AUTO", 844.444465637207, 0.5241438150405884, "AUTO_CLAMPED", 916.6666666666666, 0.5241438150405884, "AUTO_CLAMPED"], [1.2549771070480347, 100.0, "CONSTANT", "AUTO", 950.0, 1.2549771070480347, "AUTO_CLAMPED"], [0.5241438150405884, 33.33333333333337, "BEZIER", "AUTO", 1027.7777989705403, 0.5241438150405884, "AUTO_CLAMPED"]], "y": [[1.7186778783798218, 0.0, "BEZIER", "AUTO", 83.33333333333333, 1.7186778783798218, "AUTO_CLAMPED"], [1.7186778783798218, 250.0, "BEZIER", "AUTO", 166.66666666666666, 1.7186778783798218, "AUTO_CLAMPED", 294.4444338480631, 1.7186778783798218, "AUTO_CLAMPED"], [1.6501657962799072, 133.33333333333331, "BEZIER", "AUTO", 338.8888994852702, 1.6501657962799072, "AUTO_CLAMPED", 438.88889948527014, 1.6501657962799072, "AUTO_CLAMPED"], [1.6501657962799072, 166.66666666666669, "BEZIER", "AUTO", 494.4444338480631, 1.6501657962799072, "AUTO_CLAMPED", 561.1111323038737, 1.6501657962799072, "AUTO_CLAMPED"], [1.6572562456130981, 33.33333333333337, "BEZIER", "AUTO", 572.2222010294596, 1.6572562456130981, "AUTO_CLAMPED", 627.7777989705403, 1.6572562456130981, "AUTO_CLAMPED"], [1.6572562456130981, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 1.6572562456130981, "AUTO_CLAMPED", 733.3333333333333, 1.6572562456130981, "AUTO_CLAMPED"], [1.6632939577102661, 50.0, "BEZIER", "AUTO", 750.0, 1.6632939577102661, "AUTO_CLAMPED", 805.555534362793, 1.6632939577102661, "AUTO_CLAMPED"], [1.6632939577102661, 116.66666666666663, "BEZIER", "AUTO", 844.444465637207, 1.6632939577102661, "AUTO_CLAMPED", 916.6666666666666, 1.6632939577102661, "AUTO_CLAMPED"], [1.7459099292755127, 100.0, "CONSTANT", "AUTO", 950.0, 1.7459099292755127, "AUTO_CLAMPED"], [1.6632939577102661, 33.33333333333337, "BEZIER", "AUTO", 1027.7777989705403, 1.6632939577102661, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[-7.092402266683656, 0.0, "BEZIER", "AUTO", 83.33333333333333, -7.092402266683656, "AUTO_CLAMPED"], [-7.092402266683656, 250.0, "BEZIER", "AUTO", 166.66666666666666, -7.092402266683656, "AUTO_CLAMPED", 294.4444338480631, -7.092402266683656, "AUTO_CLAMPED"], [-7.092402266683656, 133.33333333333331, "BEZIER", "AUTO", 338.8888994852702, -7.092402266683656, "AUTO_CLAMPED", 438.88889948527014, -7.092402266683656, "AUTO_CLAMPED"], [-7.092402266683656, 166.66666666666669, "BEZIER", "AUTO", 494.4444338480631, -7.092402266683656, "AUTO_CLAMPED", 561.1111323038737, -7.092402266683656, "AUTO_CLAMPED"], [-15.248571491877302, 33.33333333333337, "BEZIER", "AUTO", 572.2222010294596, -15.248571491877302, "AUTO_CLAMPED", 627.7777989705403, -15.248571491877302, "AUTO_CLAMPED"], [-15.248571491877302, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, -15.248571491877302, "AUTO_CLAMPED", 733.3333333333333, -15.248571491877302, "AUTO_CLAMPED"], [-7.092402266683656, 50.0, "BEZIER", "AUTO", 750.0, -7.092402266683656, "AUTO_CLAMPED", 805.555534362793, -7.092402266683656, "AUTO_CLAMPED"], [-7.092402266683656, 116.66666666666663, "BEZIER", "AUTO", 844.444465637207, -7.092402266683656, "AUTO_CLAMPED", 916.6666666666666, -7.092402266683656, "AUTO_CLAMPED"], [0.0, 100.0, "CONSTANT", "AUTO", 950.0, 0.0, "AUTO_CLAMPED"], [-7.092402266683656, 33.33333333333337, "BEZIER", "AUTO", 1027.7777989705403, -7.092402266683656, "AUTO_CLAMPED"]], "z": [[0.9713454276947256, 0.0, "BEZIER", "AUTO", 83.33333333333333, 0.9713454276947256, "AUTO_CLAMPED"], [0.9713454276947256, 250.0, "BEZIER", "AUTO", 166.66666666666666, 0.9713454276947256, "AUTO_CLAMPED", 294.4444338480631, 0.9713454276947256, "AUTO_CLAMPED"], [0.9713454276947256, 133.33333333333331, "BEZIER", "AUTO", 338.8888994852702, 0.9713454276947256, "AUTO_CLAMPED", 438.88889948527014, 0.9713454276947256, "AUTO_CLAMPED"], [0.9713454276947256, 166.66666666666669, "BEZIER", "AUTO", 494.4444338480631, 0.9713454276947256, "AUTO_CLAMPED", 561.1111323038737, 0.9713454276947256, "AUTO_CLAMPED"], [1.0169068448835306, 33.33333333333337, "BEZIER", "AUTO", 572.2222010294596, 1.0169068448835306, "AUTO_CLAMPED", 627.7777989705403, 1.0169068448835306, "AUTO_CLAMPED"], [1.0169068448835306, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 1.0169068448835306, "AUTO_CLAMPED", 733.3333333333333, 1.0169068448835306, "AUTO_CLAMPED"], [0.9713454276947256, 50.0, "BEZIER", "AUTO", 750.0, 0.9713454276947256, "AUTO_CLAMPED", 805.555534362793, 0.9713454276947256, "AUTO_CLAMPED"], [0.9713454276947256, 116.66666666666663, "BEZIER", "AUTO", 844.444465637207, 0.9713454276947256, "AUTO_CLAMPED", 916.6666666666666, 0.9713454276947256, "AUTO_CLAMPED"], [-0.0, 100.0, "CONSTANT", "AUTO", 950.0, -0.0, "AUTO_CLAMPED"], [0.9713454276947256, 33.33333333333337, "BEZIER", "AUTO", 1027.7777989705403, 0.9713454276947256, "AUTO_CLAMPED"]], "y": [[0.39039896540381036, 0.0, "BEZIER", "AUTO", 83.33333333333333, 0.39039896540381036, "AUTO_CLAMPED"], [0.39039896540381036, 250.0, "BEZIER", "AUTO", 166.66666666666666, 0.39039896540381036, "AUTO_CLAMPED", 294.4444338480631, 0.39039896540381036, "AUTO_CLAMPED"], [0.39039896540381036, 133.33333333333331, "BEZIER", "AUTO", 338.8888994852702, 0.39039896540381036, "AUTO_CLAMPED", 438.88889948527014, 0.39039896540381036, "AUTO_CLAMPED"], [0.39039896540381036, 166.66666666666669, "BEZIER", "AUTO", 494.4444338480631, 0.39039896540381036, "AUTO_CLAMPED", 561.1111323038737, 0.39039896540381036, "AUTO_CLAMPED"], [0.24863083861951166, 33.33333333333337, "BEZIER", "AUTO", 572.2222010294596, 0.24863083861951166, "AUTO_CLAMPED", 627.7777989705403, 0.24863083861951166, "AUTO_CLAMPED"], [0.24863083861951166, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 0.24863083861951166, "AUTO_CLAMPED", 733.3333333333333, 0.24863083861951166, "AUTO_CLAMPED"], [0.39039896540381036, 50.0, "BEZIER", "AUTO", 750.0, 0.39039896540381036, "AUTO_CLAMPED", 805.555534362793, 0.39039896540381036, "AUTO_CLAMPED"], [0.39039896540381036, 116.66666666666663, "BEZIER", "AUTO", 844.444465637207, 0.39039896540381036, "AUTO_CLAMPED", 916.6666666666666, 0.39039896540381036, "AUTO_CLAMPED"], [0.0, 100.0, "CONSTANT", "AUTO", 950.0, 0.0, "AUTO_CLAMPED"], [0.39039896540381036, 33.33333333333337, "BEZIER", "AUTO", 1027.7777989705403, 0.39039896540381036, "AUTO_CLAMPED"]]}}}, "Reload": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0, "LINEAR", "AUTO"]], "z": [[0.8854429721832275, 0.0, "LINEAR", "AUTO"]], "y": [[0.8707519173622131, 0.0, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 350.0, "LINEAR", "AUTO"], [16.02038116054145, 83.33333333333337, "LINEAR", "AUTO"], [23.71116221314476, 83.33333333333326, "LINEAR", "AUTO"], [23.71116221314476, 66.66666666666674, "LINEAR", "AUTO"], [0.0, 83.33333333333326, "LINEAR", "AUTO"]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[-0.07262593507766724, 0.0, "BEZIER", "AUTO", 16.666666666666668, -0.07262593507766724, "AUTO_CLAMPED"]], "y": [[0.8707519173622131, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.8707519173622131, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 350.0, "BEZIER", "AUTO", 377.7777671813965, 0.0, "AUTO_CLAMPED"], [-17.139458137176558, 83.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -9.800624779672956, "AUTO_CLAMPED", 461.1111005147298, -24.478291494680157, "AUTO_CLAMPED"], [-29.355340260203572, 83.33333333333326, "BEZIER", "AUTO", 488.8888994852702, -29.355340260203572, "AUTO_CLAMPED", 550.0, -29.355340260203572, "AUTO_CLAMPED"], [-29.355340260203572, 100.00000000000011, "BEZIER", "AUTO", 583.3333333333334, -29.355340260203572, "AUTO_CLAMPED", 650.0, -29.355340260203572, "AUTO_CLAMPED"], [0.0, 99.99999999999989, "BEZIER", "AUTO", 683.3333333333334, 0.0, "AUTO_CLAMPED", 750.0, 0.0, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[1.7611019611358643, 0.0, "LINEAR", "AUTO"], [1.7662079334259033, 150.0, "LINEAR", "AUTO"], [1.7611019611358643, 250.0, "LINEAR", "AUTO"], [1.613909363746643, 100.0, "LINEAR", "AUTO"], [1.7571532726287842, 116.66666666666674, "LINEAR", "AUTO"], [1.7611019611358643, 99.99999999999989, "LINEAR", "AUTO"]], "z": [[0.31467199325561523, 0.0, "LINEAR", "AUTO"], [0.30754023790359497, 150.0, "LINEAR", "AUTO"], [0.31467199325561523, 250.0, "LINEAR", "AUTO"], [0.4306454658508301, 100.0, "LINEAR", "AUTO"], [0.3806498050689697, 116.66666666666674, "LINEAR", "AUTO"], [0.31467199325561523, 99.99999999999989, "LINEAR", "AUTO"]], "y": [[0.8750439286231995, 0.0, "LINEAR", "AUTO"], [0.8376463055610657, 150.0, "LINEAR", "AUTO"], [0.8750439286231995, 250.0, "LINEAR", "AUTO"], [1.1308174133300781, 100.0, "LINEAR", "AUTO"], [1.108587384223938, 116.66666666666674, "LINEAR", "AUTO"], [0.8750439286231995, 99.99999999999989, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0, "LINEAR", "AUTO"], [-20.857867762844858, 250.0, "LINEAR", "AUTO"], [-18.983153297952903, 100.0, "LINEAR", "AUTO"], [-20.627756982159838, 116.66666666666669, "LINEAR", "AUTO"], [-20.258341078257818, 116.66666666666669, "LINEAR", "AUTO"], [-18.983153297952903, 133.33333333333326, "LINEAR", "AUTO"]], "z": [[86.04810969222216, 0.0, "LINEAR", "AUTO"], [87.57263523572567, 250.0, "LINEAR", "AUTO"], [86.04810969222216, 100.0, "LINEAR", "AUTO"], [89.15816119870658, 116.66666666666669, "LINEAR", "AUTO"], [86.00693048171614, 116.66666666666669, "LINEAR", "AUTO"], [86.04810969222216, 133.33333333333326, "LINEAR", "AUTO"]], "y": [[29.613753637261834, 0.0, "LINEAR", "AUTO"], [28.64577410544575, 250.0, "LINEAR", "AUTO"], [29.613753637261834, 100.0, "LINEAR", "AUTO"], [25.730953311102372, 116.66666666666669, "LINEAR", "AUTO"], [27.311677651096765, 116.66666666666669, "LINEAR", "AUTO"], [29.613753637261834, 133.33333333333326, "LINEAR", "AUTO"]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0, "LINEAR", "AUTO"], [1.5205265935236412e-09, 216.66666666666669, "LINEAR", "AUTO"], [3.600797242597764e-07, 133.33333333333331, "LINEAR", "AUTO"], [1.9156854591528827e-07, 83.33333333333337, "LINEAR", "AUTO"], [2.418599649445241e-07, 83.33333333333326, "LINEAR", "AUTO"], [2.3999731979529315e-07, 100.00000000000011, "LINEAR", "AUTO"]], "z": [[-2.2731080055236816, 0.0, "LINEAR", "AUTO"], [-2.2731080055236816, 216.66666666666669, "LINEAR", "AUTO"], [0.2386959344148636, 133.33333333333331, "LINEAR", "AUTO"], [0.33605021238327026, 83.33333333333337, "LINEAR", "AUTO"], [0.4338737428188324, 83.33333333333326, "LINEAR", "AUTO"], [1.2500436305999756, 100.00000000000011, "LINEAR", "AUTO"]], "y": [[-1.4170563220977783, 0.0, "LINEAR", "AUTO"], [-1.4170563220977783, 216.66666666666669, "LINEAR", "AUTO"], [0.5333303213119507, 133.33333333333331, "LINEAR", "AUTO"], [0.8954256176948547, 83.33333333333337, "LINEAR", "AUTO"], [1.1207358837127686, 83.33333333333326, "LINEAR", "AUTO"], [1.2056175470352173, 100.00000000000011, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 216.66666666666669, "LINEAR", "AUTO"], [-23.121160227355304, 133.33333333333331, "LINEAR", "AUTO"], [-14.526026270149163, 83.33333333333337, "LINEAR", "AUTO"], [-5.042295800981765, 83.33333333333326, "LINEAR", "AUTO"], [0.0, 100.00000000000011, "LINEAR", "AUTO"]], "z": [[0.0, 0.0, "LINEAR", "AUTO"], [-0.0, 216.66666666666669, "LINEAR", "AUTO"], [-0.0, 133.33333333333331, "LINEAR", "AUTO"], [2.551953161995936e-07, 83.33333333333337, "LINEAR", "AUTO"], [7.134593799244011e-07, 83.33333333333326, "LINEAR", "AUTO"], [-0.0, 100.00000000000011, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 216.66666666666669, "LINEAR", "AUTO"], [1.7075472925031877e-06, 133.33333333333331, "LINEAR", "AUTO"], [1.688370023551335e-06, 83.33333333333337, "LINEAR", "AUTO"], [1.6331417525071545e-06, 83.33333333333326, "LINEAR", "AUTO"], [0.0, 100.00000000000011, "LINEAR", "AUTO"]]}}}, "ReloadEmpty": {"Gun": {"location": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [1.2511006593704224, 183.33333333333331, "LINEAR", "AUTO"], [1.6423077583312988, 216.66666666666669, "LINEAR", "AUTO"], [1.6554410457611084, 150.0, "LINEAR", "AUTO"], [1.7105761766433716, 66.66666666666674, "LINEAR", "AUTO"], [1.7476284503936768, 116.66666666666652, "LINEAR", "AUTO"], [1.7611019611358643, 133.33333333333348, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [0.26347818970680237, 183.33333333333331, "LINEAR", "AUTO"], [0.32502928376197815, 216.66666666666669, "LINEAR", "AUTO"], [0.30153536796569824, 150.0, "LINEAR", "AUTO"], [0.3000105023384094, 66.66666666666674, "LINEAR", "AUTO"], [0.3107622563838959, 116.66666666666652, "LINEAR", "AUTO"], [0.31467199325561523, 133.33333333333348, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.42658743262290955, 183.33333333333331, "LINEAR", "AUTO"], [-0.009814918041229248, 216.66666666666669, "LINEAR", "AUTO"], [-0.1131410151720047, 150.0, "LINEAR", "AUTO"], [-0.20051059126853943, 66.66666666666674, "LINEAR", "AUTO"], [0.5882294178009033, 116.66666666666652, "LINEAR", "AUTO"], [0.8750439286231995, 133.33333333333348, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [-14.617513238986898, 116.66666666666667, "LINEAR", "AUTO"], [-37.38541266737456, 233.33333333333331, "LINEAR", "AUTO"], [-36.45018560017598, 166.66666666666663, "LINEAR", "AUTO"], [-30.74254485044399, 66.66666666666674, "LINEAR", "AUTO"], [-21.750068053366945, 149.9999999999999, "LINEAR", "AUTO"], [-18.983153297952903, 133.33333333333348, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [32.06710636071164, 116.66666666666667, "LINEAR", "AUTO"], [40.97562647251089, 233.33333333333331, "LINEAR", "AUTO"], [38.71689657436601, 166.66666666666663, "LINEAR", "AUTO"], [32.11341504328433, 66.66666666666674, "LINEAR", "AUTO"], [73.35759772377095, 149.9999999999999, "LINEAR", "AUTO"], [86.04810969222216, 133.33333333333348, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [21.50487279989995, 116.66666666666667, "LINEAR", "AUTO"], [44.292741993873435, 233.33333333333331, "LINEAR", "AUTO"], [46.044774308440914, 166.66666666666663, "LINEAR", "AUTO"], [49.72028010083778, 66.66666666666674, "LINEAR", "AUTO"], [34.34470124134409, 149.9999999999999, "LINEAR", "AUTO"], [29.613753637261834, 133.33333333333348, "LINEAR", "AUTO"]]}}, "Pump": {"location": {"z": [[-0.0, 83.33333333333333, "LINEAR", "AUTO"], [-0.10627399384975433, 50.000000000000014, "LINEAR", "AUTO"], [-0.7439179420471191, 66.66666666666666, "LINEAR", "AUTO"], [-0.7439179420471191, 483.33333333333337, "LINEAR", "AUTO"], [-0.18597948551177979, 66.66666666666663, "LINEAR", "AUTO"], [-0.0, 66.66666666666663, "LINEAR", "AUTO"]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0, "LINEAR", "AUTO"], [1.8807575702667236, 216.66666666666669, "LINEAR", "AUTO"], [0.1613924205303192, 216.66666666666669, "LINEAR", "AUTO"], [0.010319530963897705, 100.0, "LINEAR", "AUTO"], [2.558298035637563e-07, 83.33333333333337, "LINEAR", "AUTO"]], "z": [[-2.2731080055236816, 0.0, "LINEAR", "AUTO"], [-1.77922523021698, 216.66666666666669, "LINEAR", "AUTO"], [0.5386117100715637, 216.66666666666669, "LINEAR", "AUTO"], [0.9011819362640381, 100.0, "LINEAR", "AUTO"], [1.2500436305999756, 83.33333333333337, "LINEAR", "AUTO"]], "y": [[-1.4170563220977783, 0.0, "LINEAR", "AUTO"], [-0.7542737126350403, 216.66666666666669, "LINEAR", "AUTO"], [1.8265879154205322, 216.66666666666669, "LINEAR", "AUTO"], [1.7011022567749023, 100.0, "LINEAR", "AUTO"], [1.7520724534988403, 83.33333333333337, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 166.66666666666666, "LINEAR", "AUTO"], [17.895010248068782, 216.66666666666666, "LINEAR", "AUTO"], [3.92045772037468, 116.66666666666669, "LINEAR", "AUTO"], [0.0, 116.66666666666674, "LINEAR", "AUTO"]], "z": [[0.0, 0.0, "LINEAR", "AUTO"], [-0.0, 166.66666666666666, "LINEAR", "AUTO"], [-7.282242678909106, 216.66666666666666, "LINEAR", "AUTO"], [-2.104055355191472, 116.66666666666669, "LINEAR", "AUTO"], [-0.0, 116.66666666666674, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 166.66666666666666, "LINEAR", "AUTO"], [-21.433229238148392, 216.66666666666666, "LINEAR", "AUTO"], [-7.3901921111938655, 116.66666666666669, "LINEAR", "AUTO"], [0.0, 116.66666666666674, "LINEAR", "AUTO"]]}}}, "ReloadEnd": {"Gun": {"location": {"x": [[1.7611019611358643, 0.0, "LINEAR", "AUTO"], [-0.31797051429748535, 216.66666666666669, "LINEAR", "AUTO"], [0.0, 83.33333333333331, "LINEAR", "AUTO"]], "z": [[0.31467199325561523, 0.0, "LINEAR", "AUTO"], [0.010336088016629219, 216.66666666666669, "LINEAR", "AUTO"], [-0.0, 83.33333333333331, "LINEAR", "AUTO"]], "y": [[0.8750439286231995, 0.0, "LINEAR", "AUTO"], [0.0250311940908432, 216.66666666666669, "LINEAR", "AUTO"], [0.0, 83.33333333333331, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[-18.983153297952903, 0.0, "LINEAR", "AUTO"], [0.09662330444411844, 216.66666666666669, "LINEAR", "AUTO"], [0.0, 83.33333333333331, "LINEAR", "AUTO"]], "z": [[86.04810969222216, 0.0, "LINEAR", "AUTO"], [-9.502314560125358, 216.66666666666669, "LINEAR", "AUTO"], [-0.0, 83.33333333333331, "LINEAR", "AUTO"]], "y": [[29.613753637261834, 0.0, "LINEAR", "AUTO"], [-0.24104249845162748, 216.66666666666669, "LINEAR", "AUTO"], [0.0, 83.33333333333331, "LINEAR", "AUTO"]]}}}, "ReloadStart": {"GuardInner": {"location": {"x": [[3.725290298461914e-09, 0.0, "LINEAR", "AUTO"]], "z": [[0.8854429721832275, 0.0, "LINEAR", "AUTO"]], "y": [[0.8707519173622131, 0.0, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 350.0, "LINEAR", "AUTO"], [16.02038116054145, 83.33333333333337, "LINEAR", "AUTO"], [23.71116221314476, 83.33333333333326, "LINEAR", "AUTO"], [23.71116221314476, 66.66666666666674, "LINEAR", "AUTO"], [0.0, 83.33333333333326, "LINEAR", "AUTO"]]}}, "GuardOuter": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[-0.07262593507766724, 0.0, "BEZIER", "AUTO", 16.666666666666668, -0.07262593507766724, "AUTO_CLAMPED"]], "y": [[0.8707519173622131, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.8707519173622131, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 350.0, "BEZIER", "AUTO", 377.7777671813965, 0.0, "AUTO_CLAMPED"], [-17.139458137176558, 83.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -9.800624779672956, "AUTO_CLAMPED", 461.1111005147298, -24.478291494680157, "AUTO_CLAMPED"], [-29.355340260203572, 83.33333333333326, "BEZIER", "AUTO", 488.8888994852702, -29.355340260203572, "AUTO_CLAMPED", 550.0, -29.355340260203572, "AUTO_CLAMPED"], [-29.355340260203572, 100.00000000000011, "BEZIER", "AUTO", 583.3333333333334, -29.355340260203572, "AUTO_CLAMPED", 650.0, -29.355340260203572, "AUTO_CLAMPED"], [0.0, 99.99999999999989, "BEZIER", "AUTO", 683.3333333333334, 0.0, "AUTO_CLAMPED", 750.0, 0.0, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [1.2318342924118042, 183.33333333333331, "LINEAR", "AUTO"], [1.642445683479309, 83.33333333333337, "LINEAR", "AUTO"], [1.7611019611358643, 133.33333333333331, "LINEAR", "AUTO"], [1.613909363746643, 100.0, "LINEAR", "AUTO"], [1.7571532726287842, 116.66666666666674, "LINEAR", "AUTO"], [1.7611019611358643, 66.66666666666663, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [0.2732446491718292, 183.33333333333331, "LINEAR", "AUTO"], [0.36432620882987976, 83.33333333333337, "LINEAR", "AUTO"], [0.31467199325561523, 133.33333333333331, "LINEAR", "AUTO"], [0.4306454658508301, 100.0, "LINEAR", "AUTO"], [0.3806498050689697, 116.66666666666674, "LINEAR", "AUTO"], [0.31467199325561523, 66.66666666666663, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.7328978776931763, 183.33333333333331, "LINEAR", "AUTO"], [0.9771971702575684, 83.33333333333337, "LINEAR", "AUTO"], [0.8750439286231995, 133.33333333333331, "LINEAR", "AUTO"], [1.1308174133300781, 100.0, "LINEAR", "AUTO"], [1.108587384223938, 116.66666666666674, "LINEAR", "AUTO"], [0.8750439286231995, 66.66666666666663, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [-14.617513238986898, 150.0, "LINEAR", "AUTO"], [-19.490018221164963, 83.33333333333334, "LINEAR", "AUTO"], [-18.983153297952903, 116.66666666666666, "LINEAR", "AUTO"], [-20.627756982159838, 133.33333333333331, "LINEAR", "AUTO"], [-20.258341078257818, 100.00000000000006, "LINEAR", "AUTO"], [-18.983153297952903, 100.0, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [65.44332775888294, 150.0, "LINEAR", "AUTO"], [87.25777034517726, 83.33333333333334, "LINEAR", "AUTO"], [86.04810969222216, 116.66666666666666, "LINEAR", "AUTO"], [89.15816119870658, 133.33333333333331, "LINEAR", "AUTO"], [86.00693048171614, 100.00000000000006, "LINEAR", "AUTO"], [86.04810969222216, 100.0, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [21.504871092352655, 150.0, "LINEAR", "AUTO"], [28.673161456470208, 83.33333333333334, "LINEAR", "AUTO"], [29.613753637261834, 116.66666666666666, "LINEAR", "AUTO"], [25.730953311102372, 133.33333333333331, "LINEAR", "AUTO"], [27.311677651096765, 100.00000000000006, "LINEAR", "AUTO"], [29.613753637261834, 100.0, "LINEAR", "AUTO"]]}}, "Shell": {"location": {"x": [[1.5205265935236412e-09, 0.0, "LINEAR", "AUTO"], [1.5205265935236412e-09, 216.66666666666669, "LINEAR", "AUTO"], [3.600797242597764e-07, 133.33333333333331, "LINEAR", "AUTO"], [1.9156854591528827e-07, 83.33333333333337, "LINEAR", "AUTO"], [2.418599649445241e-07, 83.33333333333326, "LINEAR", "AUTO"], [2.3999731979529315e-07, 100.00000000000011, "LINEAR", "AUTO"]], "z": [[-2.2731080055236816, 0.0, "LINEAR", "AUTO"], [-2.2731080055236816, 216.66666666666669, "LINEAR", "AUTO"], [0.2386959344148636, 133.33333333333331, "LINEAR", "AUTO"], [0.33605021238327026, 83.33333333333337, "LINEAR", "AUTO"], [0.4338737428188324, 83.33333333333326, "LINEAR", "AUTO"], [1.2500436305999756, 100.00000000000011, "LINEAR", "AUTO"]], "y": [[-1.4170563220977783, 0.0, "LINEAR", "AUTO"], [-1.4170563220977783, 216.66666666666669, "LINEAR", "AUTO"], [0.5333303213119507, 133.33333333333331, "LINEAR", "AUTO"], [0.8954256176948547, 83.33333333333337, "LINEAR", "AUTO"], [1.1207358837127686, 83.33333333333326, "LINEAR", "AUTO"], [1.2056175470352173, 100.00000000000011, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 216.66666666666669, "LINEAR", "AUTO"], [-23.121160227355304, 133.33333333333331, "LINEAR", "AUTO"], [-14.526026270149163, 83.33333333333337, "LINEAR", "AUTO"], [-5.042295800981765, 83.33333333333326, "LINEAR", "AUTO"], [0.0, 100.00000000000011, "LINEAR", "AUTO"]], "z": [[0.0, 0.0, "LINEAR", "AUTO"], [-0.0, 216.66666666666669, "LINEAR", "AUTO"], [-0.0, 133.33333333333331, "LINEAR", "AUTO"], [2.551953161995936e-07, 83.33333333333337, "LINEAR", "AUTO"], [7.134593799244011e-07, 83.33333333333326, "LINEAR", "AUTO"], [-0.0, 100.00000000000011, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 216.66666666666669, "LINEAR", "AUTO"], [1.7075472925031877e-06, 133.33333333333331, "LINEAR", "AUTO"], [1.688370023551335e-06, 83.33333333333337, "LINEAR", "AUTO"], [1.6331417525071545e-06, 83.33333333333326, "LINEAR", "AUTO"], [0.0, 100.00000000000011, "LINEAR", "AUTO"]]}}}}, "offset": {"GuardInner": [3.725290298461914e-09, 0.8707519173622131, 0.8854429721832275], "GuardOuter": [0.0, 0.8707519173622131, -0.07262593507766724], "Loop": [0.2532634139060974, 1.4936577081680298, 3.4837722778320312], "Pump": [1.6174453776329756e-08, 1.1175870895385742e-08, -0.0], "Shell": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "ShellFore": [1.5205265935236412e-09, 1.7459099292755127, 1.2549771070480347], "Sight": [0.0, 2.104297161102295, 2.990000009536743]}, "hierarchy": {"GuardInner": "GuardOuter", "GuardOuter": "Gun", "Loop": "Gun", "Pump": "Gun", "Shell": "Gun", "ShellFore": "Shell", "Sight": "Gun"}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/cursed.json b/src/main/resources/assets/hbm/models/weapons/animations/cursed.json new file mode 100644 index 000000000..62c3a6aef --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/cursed.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [-0.0, 16.666666666666668], [0.1901400089263916, 50.0], [-0.0, 183.33333333333331]], "y": [[0.0, 0.0], [0.0, 16.666666666666668], [0.040800124406814575, 50.0], [0.0, 183.33333333333331]]}, "rotation_euler": {"x": [[0.0, 33.333333333333336], [38.989947046815615, 66.66666666666666], [0.0, 250.0]]}}, "Slide": {"location": {"z": [[-0.0, 0.0], [0.12989415228366852, 16.666666666666668], [0.12989415228366852, 50.0], [0.09892651438713074, 83.33333333333333], [-0.0, 83.33333333333334]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.0, 100.0], [0.017018239945173264, 116.66666666666669], [-0.09787648171186447, 83.33333333333331], [-0.12292511016130447, 266.66666666666663], [-0.10135655850172043, 133.33333333333337], [-0.1491556018590927, 150.0], [-0.13177432119846344, 400.0], [0.0, 283.33333333333326]], "z": [[-0.0, 0.0], [0.08164123445749283, 100.0], [-0.08178003877401352, 116.66666666666669], [-0.09053938835859299, 83.33333333333331], [-0.05708351731300354, 233.33333333333337], [-0.03883926570415497, 166.66666666666663], [0.0013935839524492621, 150.0], [0.006992057431489229, 400.0], [-0.0, 283.33333333333326]], "y": [[0.0, 0.0], [0.18025973439216614, 100.0], [0.44325628876686096, 116.66666666666669], [0.21647267043590546, 83.33333333333331], [0.27539756894111633, 200.0], [0.10282676666975021, 200.0], [0.16902926564216614, 150.0], [-0.034092918038368225, 400.0], [0.0, 283.33333333333326]]}, "rotation_euler": {"x": [[0.0, 0.0], [14.347078728989414, 66.66666666666667], [22.703222659589517, 99.99999999999999], [15.15270124913971, 83.33333333333334], [1.8531396048511795, 100.0], [-18.417429219568255, 266.66666666666674], [-18.417429219568255, 99.99999999999989], [59.33201599901403, 200.0], [72.57186642203102, 216.66666666666663], [62.294070966562636, 116.66666666666674], [54.952785571147, 83.33333333333326], [0.0, 200.0]], "z": [[0.0, 0.0], [-10.592385430902713, 66.66666666666667], [-15.994342771878069, 99.99999999999999], [-11.103182835529408, 83.33333333333334], [-9.371659871492183, 100.0], [-9.698956560103671, 266.66666666666674], [-9.698956560103671, 149.9999999999999], [-50.8729052591287, 150.0], [-75.4402931564371, 216.66666666666663], [-52.8528848919616, 116.66666666666674], [-36.719021845907676, 83.33333333333326], [-0.0, 200.0]], "y": [[0.0, 0.0], [-3.154393948349805, 66.66666666666667], [-4.726022183917031, 99.99999999999999], [-3.3394954899517355, 83.33333333333334], [-2.877424441420499, 100.0], [-5.679812424619238, 266.66666666666674], [-5.679812424619238, 183.33333333333326], [-0.6765985391814631, 116.66666666666663], [21.457408107810238, 216.66666666666663], [34.27835619884117, 116.66666666666674], [43.4361748002513, 83.33333333333326], [0.0, 200.0]]}}, "Magazine": {"location": {"z": [[-0.0, 0.0], [-0.0, 300.0], [0.14596298336982727, 183.33333333333331], [0.41417545080184937, 249.99999999999994], [0.11441206932067871, 200.0000000000001], [-0.0, 133.33333333333337]], "y": [[0.0, 0.0], [0.0, 300.0], [-0.6360859274864197, 183.33333333333331], [-0.6360859274864197, 249.99999999999994], [-0.4159921109676361, 200.0000000000001], [0.0, 133.33333333333337]]}}, "Slide": {"location": {"z": [[-0.0, 0.0], [0.13051199913024902, 16.666666666666668], [0.13051199913024902, 1133.3333333333333], [0.0854932963848114, 66.66666666666652], [-0.0, 50.0]]}}}}, "offset": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/flamethrower.json b/src/main/resources/assets/hbm/models/weapons/animations/flamethrower.json new file mode 100644 index 000000000..334a5ca74 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/flamethrower.json @@ -0,0 +1 @@ +{"anim": {"Reload": {"Gauge": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [-1.0132989883422852, 750.0, "BEZIER", "AUTO", 457.1913719177246, -1.0132989883422852, "AUTO_CLAMPED", 1238.0144119262698, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, -1.0132989883422852, "AUTO_CLAMPED", 2195.2056884765625, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -1.0132989883422852, "AUTO_CLAMPED", 2988.0144119262695, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -1.0132989883422852, "AUTO_CLAMPED"], [-0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [2.400388240814209, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 2.400388240814209, "AUTO_CLAMPED", 2988.0144119262695, 2.400388240814209, "AUTO_CLAMPED"], [2.400388240814209, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 2.400388240814209, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [31.53669436033596, 750.0, "BEZIER", "AUTO", 457.1913719177246, 31.53669436033596, "AUTO_CLAMPED", 1238.0144119262698, 31.53669436033596, "AUTO_CLAMPED"], [31.53669436033596, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 31.53669436033596, "AUTO_CLAMPED", 2195.2056884765625, 31.53669436033596, "AUTO_CLAMPED"], [-23.37867031189583, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -23.37867031189583, "AUTO_CLAMPED", 2988.0144119262695, -23.37867031189583, "AUTO_CLAMPED"], [-23.37867031189583, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -23.37867031189583, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [-0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -0.0, "AUTO_CLAMPED"], [-0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [-1.0132989883422852, 750.0, "BEZIER", "AUTO", 457.1913719177246, -1.0132989883422852, "AUTO_CLAMPED", 1238.0144119262698, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, -1.0132989883422852, "AUTO_CLAMPED", 2195.2056884765625, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -1.0132989883422852, "AUTO_CLAMPED", 2988.0144119262695, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -1.0132989883422852, "AUTO_CLAMPED"], [-0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [2.400388240814209, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 2.400388240814209, "AUTO_CLAMPED", 2988.0144119262695, 2.400388240814209, "AUTO_CLAMPED"], [2.400388240814209, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 2.400388240814209, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [31.53669436033596, 750.0, "BEZIER", "AUTO", 457.1913719177246, 31.53669436033596, "AUTO_CLAMPED", 1238.0144119262698, 31.53669436033596, "AUTO_CLAMPED"], [31.53669436033596, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 31.53669436033596, "AUTO_CLAMPED", 2195.2056884765625, 31.53669436033596, "AUTO_CLAMPED"], [-23.37867031189583, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -23.37867031189583, "AUTO_CLAMPED", 2988.0144119262695, -23.37867031189583, "AUTO_CLAMPED"], [-23.37867031189583, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -23.37867031189583, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}}, "Tank": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "LINEAR", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED"], [-0.044564783573150635, 400.0000000000002, "LINEAR", "AUTO"], [-0.044564783573150635, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 500.0, "BEZIER", "AUTO", 1804.7943115234375, -0.044564783573150635, "AUTO_CLAMPED", 2195.2056884765625, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -0.044564783573150635, "AUTO_CLAMPED", 2695.2056884765625, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 500.0, "BEZIER", "AUTO", 2804.7943115234375, -0.044564783573150635, "AUTO_CLAMPED", 3097.6028442382812, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 250.0, "BEZIER", "AUTO", 3152.3971557617188, -0.044564783573150635, "AUTO_CLAMPED", 3347.6028442382812, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 250.0, "LINEAR", "AUTO", 3402.3971557617188, -0.044564783573150635, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [-1.0132989883422852, 750.0, "LINEAR", "AUTO", 457.1913719177246, -1.0132989883422852, "AUTO_CLAMPED"], [2.5499136447906494, 400.0000000000002, "LINEAR", "AUTO"], [1.4521247148513794, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, 1.4521247148513794, "AUTO_CLAMPED"], [3.9383955001831055, 500.0, "BEZIER", "AUTO", 1804.7943115234375, 3.9383955001831055, "AUTO_CLAMPED", 2195.2056884765625, 3.9383955001831055, "AUTO_CLAMPED"], [3.9383955001831055, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 3.9383955001831055, "AUTO_CLAMPED", 2695.2056884765625, 3.9383955001831055, "AUTO_CLAMPED"], [4.342286586761475, 500.0, "BEZIER", "AUTO", 2804.7943115234375, 3.9470109939575195, "AUTO_CLAMPED", 3097.6028442382812, 4.539924621582031, "AUTO_CLAMPED"], [5.1528000831604, 250.0, "BEZIER", "AUTO", 3152.3971557617188, 5.1528000831604, "AUTO_CLAMPED", 3347.6028442382812, 5.1528000831604, "AUTO_CLAMPED"], [2.7643589973449707, 250.0, "LINEAR", "AUTO", 3402.3971557617188, 3.9673728942871094, "AUTO_CLAMPED"], [-1.0099999904632568, 250.0, "LINEAR", "AUTO"], [-0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "LINEAR", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED"], [-2.2834606170654297, 400.0000000000002, "LINEAR", "AUTO"], [-5.361827373504639, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, -7.615589141845703, "AUTO_CLAMPED"], [-12.509732246398926, 500.0, "BEZIER", "AUTO", 1804.7943115234375, -12.509732246398926, "AUTO_CLAMPED", 2195.2056884765625, -12.509732246398926, "AUTO_CLAMPED"], [-12.509732246398926, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -12.509732246398926, "AUTO_CLAMPED", 2695.2056884765625, -12.509732246398926, "AUTO_CLAMPED"], [-4.52110481262207, 500.0, "BEZIER", "AUTO", 2804.7943115234375, -7.63911247253418, "AUTO_CLAMPED", 3097.6028442382812, -2.9621009826660156, "AUTO_CLAMPED"], [-0.5289543867111206, 250.0, "BEZIER", "AUTO", 3152.3971557617188, -2.206026554107666, "AUTO_CLAMPED", 3347.6028442382812, 1.1481177806854248, "AUTO_CLAMPED"], [4.070199966430664, 250.0, "LINEAR", "AUTO", 3402.3971557617188, 4.070199966430664, "AUTO_CLAMPED"], [2.4000000953674316, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [31.53669436033596, 750.0, "LINEAR", "AUTO", 457.1913719177246, 31.53669436033596, "AUTO_CLAMPED"], [31.53669436033596, 400.0000000000002, "LINEAR", "AUTO"], [60.02500016201436, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, 60.02500016201436, "AUTO_CLAMPED"], [60.02500016201436, 500.0, "BEZIER", "AUTO", 1804.7943115234375, 60.02500016201436, "AUTO_CLAMPED", 2195.2056884765625, 60.02500016201436, "AUTO_CLAMPED"], [60.02500016201436, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 60.02500016201436, "AUTO_CLAMPED", 2695.2056884765625, 60.02500016201436, "AUTO_CLAMPED"], [60.02500016201436, 500.0, "BEZIER", "AUTO", 2804.7943115234375, 60.02500016201436, "AUTO_CLAMPED", 3097.6028442382812, 60.02500016201436, "AUTO_CLAMPED"], [23.514188095218056, 250.0, "BEZIER", "AUTO", 3152.3971557617188, 39.881238922178085, "AUTO_CLAMPED", 3347.6028442382812, 7.147137268258023, "AUTO_CLAMPED"], [-23.820132758710436, 250.0, "LINEAR", "AUTO", 3402.3971557617188, -23.820132758710436, "AUTO_CLAMPED"], [-23.820132758710436, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [0.0, 750.0, "LINEAR", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED"], [0.0, 400.0000000000002, "LINEAR", "AUTO"], [0.0, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 1804.7943115234375, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2695.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2804.7943115234375, 0.0, "AUTO_CLAMPED", 3097.6028442382812, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 3152.3971557617188, 0.0, "AUTO_CLAMPED", 3347.6028442382812, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO", 3402.3971557617188, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "LINEAR", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED"], [0.0, 400.0000000000002, "LINEAR", "AUTO"], [0.0, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 1804.7943115234375, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2695.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2804.7943115234375, 0.0, "AUTO_CLAMPED", 3097.6028442382812, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 3152.3971557617188, 0.0, "AUTO_CLAMPED", 3347.6028442382812, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO", 3402.3971557617188, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}}}}, "offset": {}, "hierarchy": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/ks23.json b/src/main/resources/assets/hbm/models/weapons/animations/ks23.json new file mode 100644 index 000000000..fb0675f87 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/ks23.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Body": {"location": {"z": [[-0.0, 0.0], [0.34807687997817993, 33.333333333333336], [0.13398613035678864, 200.0], [-0.08360463380813599, 83.33333333333329], [-0.34655845165252686, 100.00000000000006], [-0.4278261363506317, 66.66666666666663], [-0.0, 216.66666666666669]], "y": [[0.0, 0.0], [0.3529239892959595, 50.0], [0.14532163739204407, 183.33333333333334], [0.2893771231174469, 83.33333333333329], [0.6147624254226685, 100.00000000000006], [0.5851793885231018, 66.66666666666663], [0.0, 216.66666666666669]], "x": [[0.0, 0.0], [0.0, 233.33333333333334], [-0.11603647470474243, 83.33333333333329], [-0.2742908000946045, 100.00000000000006], [-0.3180012106895447, 66.66666666666663], [0.0, 216.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 16.666666666666668], [15.266058483699828, 83.33333333333333], [6.633028929431163, 133.33333333333334], [21.336039061353695, 83.33333333333329], [62.11162978364242, 100.00000000000006], [56.06470621707923, 99.99999999999994], [0.0, 150.0]], "z": [[-0.0, 0.0], [-0.0, 233.33333333333334], [-17.404254326014197, 83.33333333333329], [-37.01021671588742, 100.00000000000006], [-35.68124290341594, 99.99999999999994], [-0.0, 150.0]], "y": [[0.0, 0.0], [0.0, 233.33333333333334], [1.3580200456906015, 83.33333333333329], [12.396626003938477, 100.00000000000006], [15.095872367697911, 99.99999999999994], [0.0, 150.0]]}}, "Bolt": {"location": {"z": [[-0.0, 0.0], [-0.0, 266.6666666666667], [0.7143759727478027, 83.33333333333331], [0.7143759727478027, 100.0], [-0.0, 100.0]]}}}, "Reload": {"Body": {"location": {"x": [[-0.7295733690261841, 0.0], [-0.6248612403869629, 266.6666666666667], [-0.7295733690261841, 266.6666666666667]], "z": [[-0.29214829206466675, 0.0], [-0.3179074227809906, 266.6666666666667], [-0.29214829206466675, 266.6666666666667]], "y": [[0.2915276288986206, 0.0], [0.745927095413208, 266.6666666666667], [0.2915276288986206, 266.6666666666667]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [11.92072318200773, 266.6666666666667], [2.2122143889063857, 266.6666666666667]], "z": [[-48.21786729477217, 0.0], [-58.83050935920585, 266.6666666666667], [-48.21786729477217, 266.6666666666667]], "y": [[27.10300512666912, 0.0], [24.162893849376477, 266.6666666666667], [27.10300512666912, 266.6666666666667]]}}, "Guard": {"location": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-0.009601704776287079, 33.333333333333314], [-0.009601704776287079, 66.66666666666663], [0.0, 83.33333333333337]], "z": [[-0.0, 0.0], [-0.0, 216.66666666666669], [-0.01663617603480816, 33.333333333333314], [-0.01663617603480816, 66.66666666666663], [-0.0, 83.33333333333337]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [0.20640075206756592, 33.333333333333314], [0.20640075206756592, 66.66666666666663], [0.0, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [13.692764535748763, 33.333333333333314], [13.692764535748763, 66.66666666666663], [0.0, 83.33333333333337]], "z": [[0.0, 0.0], [0.0, 216.66666666666669], [-1.7075472925031877e-06, 33.333333333333314], [-1.7075472925031877e-06, 66.66666666666663], [-0.0, 83.33333333333337]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [-8.537736462515939e-07, 33.333333333333314], [-8.537736462515939e-07, 66.66666666666663], [0.0, 83.33333333333337]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [9.313225746154785e-09, 133.33333333333334], [0.0043092877604067326, 83.33333333333334], [0.004309257958084345, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[-0.0, 0.0], [0.30239760875701904, 133.33333333333334], [0.5154579877853394, 83.33333333333334], [0.11890840530395508, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.0212161540985107, 0.0], [-1.4118856191635132, 133.33333333333334], [-0.4431022107601166, 83.33333333333334], [-0.2641807496547699, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}, "ReloadEmptyStart": {"Body": {"location": {"x": [[0.0, 0.0], [-0.8907862305641174, 216.66666666666669], [-0.912574291229248, 83.33333333333331], [-0.8907862305641174, 183.33333333333331], [-0.7295733690261841, 316.6666666666667]], "z": [[-0.0, 0.0], [-0.10736510902643204, 216.66666666666669], [-0.1299014389514923, 83.33333333333331], [-0.10736510902643204, 183.33333333333331], [-0.29214829206466675, 316.6666666666667]], "y": [[0.0, 0.0], [0.1955999732017517, 216.66666666666669], [0.07320505380630493, 83.33333333333331], [0.1955999732017517, 183.33333333333331], [0.2915276288986206, 316.6666666666667]]}, "rotation_euler": {"x": [[0.0, 0.0], [14.341662388977594, 216.66666666666669], [10.053024175167023, 83.33333333333331], [14.341662388977594, 183.33333333333331], [2.2122143889063857, 316.6666666666667]], "z": [[-0.0, 0.0], [47.39059819759481, 216.66666666666669], [51.027851515545024, 83.33333333333331], [47.39059819759481, 183.33333333333331], [-48.21786729477217, 316.6666666666667]], "y": [[0.0, 0.0], [-9.334892963190004, 216.66666666666669], [-8.375116488567105, 83.33333333333331], [-9.334892963190004, 183.33333333333331], [27.10300512666912, 316.6666666666667]]}}, "Bolt": {"location": {"z": [[-0.0, 0.0], [-0.0, 183.33333333333331], [0.5467166900634766, 66.66666666666669], [0.5467166900634766, 133.33333333333331], [-0.0, 150.00000000000006]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [0.0, 183.33333333333331], [0.4347861707210541, 66.66666666666669], [0.12760140001773834, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[-0.0, 0.0], [-0.0, 183.33333333333331], [0.34638845920562744, 66.66666666666669], [0.43973004817962646, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[-2.0212161540985107, 0.0], [-2.0212161540985107, 183.33333333333331], [-0.5793730020523071, 66.66666666666669], [-0.010208487510681152, 33.333333333333314], [0.0, 66.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 183.33333333333331], [0.0, 66.66666666666669], [1.2806606729328905e-06, 33.333333333333314], [0.0, 66.66666666666669]], "z": [[0.0, 0.0], [0.0, 183.33333333333331], [0.0, 66.66666666666669], [0.0, 33.333333333333314], [-0.0, 66.66666666666669]], "y": [[0.0, 0.0], [0.0, 183.33333333333331], [19.145008290714692, 66.66666666666669], [25.845758545766532, 33.333333333333314], [0.0, 66.66666666666669]]}}}, "ReloadEnd": {"Body": {"location": {"x": [[-0.7295733690261841, 0.0], [0.0, 400.0]], "z": [[-0.29214829206466675, 0.0], [-0.0, 400.0]], "y": [[0.2915276288986206, 0.0], [0.0, 400.0]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0], [0.0, 400.0]], "z": [[-48.21786729477217, 0.0], [-0.0, 400.0]], "y": [[27.10300512666912, 0.0], [0.0, 400.0]]}}}, "ReloadStart": {"Body": {"location": {"x": [[0.0, 0.0], [-0.7295733690261841, 133.33333333333334], [-0.7095879912376404, 116.66666666666666], [-0.7295733690261841, 150.0]], "z": [[-0.0, 0.0], [-0.29214829206466675, 133.33333333333334], [-0.28021347522735596, 116.66666666666666], [-0.29214829206466675, 150.0]], "y": [[0.0, 0.0], [0.2915276288986206, 133.33333333333334], [0.4674150049686432, 116.66666666666666], [0.2915276288986206, 150.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [2.2122143889063857, 133.33333333333334], [6.795230554293333, 116.66666666666666], [2.2122143889063857, 150.0]], "z": [[-0.0, 0.0], [-48.21786729477217, 133.33333333333334], [-51.976428187476394, 116.66666666666666], [-48.21786729477217, 150.0]], "y": [[0.0, 0.0], [27.10300512666912, 133.33333333333334], [26.74002155341796, 116.66666666666666], [27.10300512666912, 150.0]]}}, "Guard": {"location": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [-0.009601704776287079, 33.333333333333314], [-0.009601704776287079, 66.66666666666663], [0.0, 83.33333333333337]], "z": [[-0.0, 0.0], [-0.0, 216.66666666666669], [-0.01663617603480816, 33.333333333333314], [-0.01663617603480816, 66.66666666666663], [-0.0, 83.33333333333337]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [0.20640075206756592, 33.333333333333314], [0.20640075206756592, 66.66666666666663], [0.0, 83.33333333333337]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 216.66666666666669], [13.692764535748763, 33.333333333333314], [13.692764535748763, 66.66666666666663], [0.0, 83.33333333333337]], "z": [[0.0, 0.0], [0.0, 216.66666666666669], [-1.7075472925031877e-06, 33.333333333333314], [-1.7075472925031877e-06, 66.66666666666663], [-0.0, 83.33333333333337]], "y": [[0.0, 0.0], [0.0, 216.66666666666669], [-8.537736462515939e-07, 33.333333333333314], [-8.537736462515939e-07, 66.66666666666663], [0.0, 83.33333333333337]]}}, "Shell": {"location": {"x": [[0.0, 0.0], [9.313225746154785e-09, 133.33333333333334], [0.0043092877604067326, 83.33333333333334], [0.004309257958084345, 83.33333333333331], [0.004309284035116434, 50.0]], "z": [[-0.0, 0.0], [0.30239760875701904, 133.33333333333334], [0.5154579877853394, 83.33333333333334], [0.11890840530395508, 83.33333333333331], [-0.12080879509449005, 50.0]], "y": [[-2.0212161540985107, 0.0], [-1.4118856191635132, 133.33333333333334], [-0.4431022107601166, 83.33333333333334], [-0.2641807496547699, 83.33333333333331], [-0.2624862790107727, 50.0]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 133.33333333333334], [21.14787588745631, 83.33333333333334], [0.40499606683590605, 83.33333333333331], [0.40499606683590605, 50.0]], "z": [[-0.0, 0.0], [-0.0, 133.33333333333334], [0.0, 83.33333333333334], [-1.0271807443729786e-06, 83.33333333333331], [-1.0271807443729786e-06, 50.0]], "y": [[0.0, 0.0], [0.0, 133.33333333333334], [-1.9209907040660864e-06, 83.33333333333334], [-4.784677867278997e-06, 83.33333333333331], [-4.784677867278997e-06, 50.0]]}}}}, "offset": {"Bolt": [-2.9802322387695312e-08, -7.450580596923828e-09, -0.0]}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/lag.json b/src/main/resources/assets/hbm/models/weapons/animations/lag.json new file mode 100644 index 000000000..dbb5b84c6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/lag.json @@ -0,0 +1 @@ +{"anim": {"Dryfire": {"Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 0.0, "AUTO_CLAMPED", 644.444465637207, 0.0, "AUTO_CLAMPED"], [0.07023310661315918, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.07023310661315918, "AUTO_CLAMPED", 777.7777989705403, 0.07023310661315918, "AUTO_CLAMPED"], [0.07023310661315918, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, 0.07023310661315918, "AUTO_CLAMPED", 850.0, 0.07023310661315918, "AUTO_CLAMPED"], [-0.005564689636230469, 150.0, "BEZIER", "AUTO", 900.0, -0.005564689636230469, "AUTO_CLAMPED", 977.7777989705404, -0.005564689636230469, "AUTO_CLAMPED"], [0.0, 83.33333333333326, "BEZIER", "AUTO", 1005.5555343627929, 0.0, "AUTO_CLAMPED", 1061.1111323038738, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, -0.0, "AUTO_CLAMPED"], [-0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, -0.0, "AUTO_CLAMPED", 644.444465637207, -0.0, "AUTO_CLAMPED"], [-0.0, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, -0.0, "AUTO_CLAMPED", 777.7777989705403, -0.0, "AUTO_CLAMPED"], [-0.0, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, -0.0, "AUTO_CLAMPED", 850.0, -0.0, "AUTO_CLAMPED"], [-0.0, 150.0, "BEZIER", "AUTO", 900.0, -0.0, "AUTO_CLAMPED", 977.7777989705404, -0.0, "AUTO_CLAMPED"], [-0.0, 83.33333333333326, "BEZIER", "AUTO", 1005.5555343627929, -0.0, "AUTO_CLAMPED", 1061.1111323038738, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 0.0, "AUTO_CLAMPED", 644.444465637207, 0.0, "AUTO_CLAMPED"], [0.17485475540161133, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.17485475540161133, "AUTO_CLAMPED", 777.7777989705403, 0.17485475540161133, "AUTO_CLAMPED"], [0.17485475540161133, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, 0.17485475540161133, "AUTO_CLAMPED", 850.0, 0.17485475540161133, "AUTO_CLAMPED"], [-0.016497015953063965, 150.0, "BEZIER", "AUTO", 900.0, -0.016497015953063965, "AUTO_CLAMPED", 977.7777989705404, -0.016497015953063965, "AUTO_CLAMPED"], [0.0, 83.33333333333326, "BEZIER", "AUTO", 1005.5555343627929, 0.0, "AUTO_CLAMPED", 1061.1111323038738, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 172.22221692403158, 0.0, "AUTO_CLAMPED"], [0.0, 516.6666666666666, "BEZIER", "AUTO", 344.44446563720703, 0.0, "AUTO_CLAMPED", 583.3333333333334, 0.0, "AUTO_CLAMPED"], [-2.1999998762362876, 200.0, "BEZIER", "AUTO", 650.0, -2.1999998762362876, "AUTO_CLAMPED", 744.444465637207, -2.1999998762362876, "AUTO_CLAMPED"], [-2.1999998762362876, 83.33333333333337, "BEZIER", "AUTO", 772.2222010294596, -2.1999998762362876, "AUTO_CLAMPED", 877.7777989705403, -2.1999998762362876, "AUTO_CLAMPED"], [0.0, 233.33333333333326, "BEZIER", "AUTO", 955.555534362793, 0.0, "AUTO_CLAMPED", 1111.111068725586, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 0.0, "AUTO_CLAMPED", 644.444465637207, 0.0, "AUTO_CLAMPED"], [-2.575079927950949, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, -2.575079927950949, "AUTO_CLAMPED", 777.7777989705403, -2.575079927950949, "AUTO_CLAMPED"], [-2.575079927950949, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, -2.575079927950949, "AUTO_CLAMPED", 850.0, -2.575079927950949, "AUTO_CLAMPED"], [0.2377203317919303, 150.0, "BEZIER", "AUTO", 900.0, 0.2377203317919303, "AUTO_CLAMPED", 977.7777989705404, 0.2377203317919303, "AUTO_CLAMPED"], [-0.0, 83.33333333333326, "BEZIER", "AUTO", 1005.5555343627929, -0.0, "AUTO_CLAMPED", 1061.1111323038738, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 0.0, "AUTO_CLAMPED", 644.444465637207, 0.0, "AUTO_CLAMPED"], [0.0, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.0, "AUTO_CLAMPED", 777.7777989705403, 0.0, "AUTO_CLAMPED"], [0.0, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, 0.0, "AUTO_CLAMPED", 877.7777989705403, 0.0, "AUTO_CLAMPED"], [0.0, 233.33333333333326, "BEZIER", "AUTO", 955.555534362793, 0.0, "AUTO_CLAMPED", 1111.111068725586, 0.0, "AUTO_CLAMPED"]]}}, "Hammer": {"location": {"x": [[3.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.125, "AUTO_CLAMPED"]], "z": [[1.862645149230957e-08, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.862645149230957e-08, "AUTO_CLAMPED"]], "y": [[0.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.125, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [25.00000012650595, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 25.00000012650595, "AUTO_CLAMPED", 216.66666666666669, 25.00000012650595, "AUTO_CLAMPED"], [25.00000012650595, 550.0, "BEZIER", "AUTO", 400.0, 25.00000012650595, "AUTO_CLAMPED", 627.7777989705403, 25.00000012650595, "AUTO_CLAMPED"], [-60.000001669652114, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, -60.000001669652114, "AUTO_CLAMPED", 733.3333333333333, -60.000001669652114, "AUTO_CLAMPED"], [-60.000001669652114, 50.0, "BEZIER", "AUTO", 750.0, -60.000001669652114, "AUTO_CLAMPED", 783.3333333333334, -60.000001669652114, "AUTO_CLAMPED"], [-0.0, 50.0, "BEZIER", "AUTO", 800.0, -0.0, "AUTO_CLAMPED", 833.3333333333334, -0.0, "AUTO_CLAMPED"]], "x": [[0.0, 583.3333333333334, "BEZIER", "AUTO", 627.7777989705403, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 0.0, "AUTO_CLAMPED", 733.3333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "BEZIER", "AUTO", 750.0, 0.0, "AUTO_CLAMPED", 783.3333333333334, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 583.3333333333334, "BEZIER", "AUTO", 627.7777989705403, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 0.0, "AUTO_CLAMPED", 733.3333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "BEZIER", "AUTO", 750.0, 0.0, "AUTO_CLAMPED", 783.3333333333334, 0.0, "AUTO_CLAMPED"]]}}}, "Firing": {"Bullet": {"location": {"x": [[1.59375, 0.0, "BEZIER", "AUTO", 11.111111442248026, 1.59375, "AUTO_CLAMPED"], [1.59375, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 1.59375, "AUTO_CLAMPED"], [0.90625, 66.66666666666666, "SINE", "EASE_IN"], [-0.5937501192092896, 100.0, "BEZIER", "AUTO", 233.33333333333334, -0.5937501192092896, "AUTO_CLAMPED"]], "y": [[0.5625, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.5625, "AUTO_CLAMPED"], [0.5625, 33.333333333333336, "QUAD", "AUTO", 22.22222089767456, 0.5625, "AUTO_CLAMPED"], [0.875, 66.66666666666666, "SINE", "AUTO"], [0.9999978542327881, 66.66666666666666, "BEZIER", "AUTO", 188.88888359069824, 0.9999978542327881, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[-19.99999941818584, 0.0, "BEZIER", "AUTO", 11.111111442248026, -19.99999941818584, "AUTO_CLAMPED"], [-19.99999941818584, 33.333333333333336, "QUAD", "AUTO", 22.22222089767456, -19.99999941818584, "AUTO_CLAMPED"], [-7.500000208706514, 66.66666666666666, "SINE", "AUTO"], [-0.0, 66.66666666666666, "BEZIER", "AUTO", 188.88888359069824, -0.0, "AUTO_CLAMPED"]]}}, "Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED"], [0.5237600207328796, 49.99999999999999, "BEZIER", "AUTO", 108.33333333333334, 0.5237600207328796, "ALIGNED"], [0.3084455132484436, 50.000000000000014, "BEZIER", "AUTO", 116.66666666666667, 0.43553054332733154, "AUTO_CLAMPED", 161.11111640930176, 0.09663715958595276, "AUTO_CLAMPED"], [-0.04659605026245117, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -0.04659605026245117, "AUTO_CLAMPED", 233.33333333333334, -0.04659605026245117, "AUTO_CLAMPED"], [0.0, 50.0, "BEZIER", "AUTO", 250.0, 0.0, "AUTO_CLAMPED", 283.3333333333333, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [-0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, -0.0, "AUTO_CLAMPED"], [6.210800052031118e-08, 49.99999999999999, "BEZIER", "AUTO", 100.0, 6.210800052031118e-08, "AUTO_CLAMPED"], [6.210800052031118e-08, 50.000000000000014, "BEZIER", "AUTO", 116.66666666666667, 6.210800052031118e-08, "AUTO_CLAMPED", 161.11111640930176, 6.210800052031118e-08, "AUTO_CLAMPED"], [-1.2910305713376147e-08, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -1.2910305713376147e-08, "AUTO_CLAMPED", 233.33333333333334, -1.2910305713376147e-08, "AUTO_CLAMPED"], [-1.063667554035419e-08, 50.0, "BEZIER", "AUTO", 250.0, -1.063667554035419e-08, "AUTO_CLAMPED", 283.3333333333333, -1.063667554035419e-08, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED"], [0.431023508310318, 49.99999999999999, "BEZIER", "AUTO", 108.33333333333334, 0.431023508310318, "ALIGNED"], [0.2511425018310547, 50.000000000000014, "BEZIER", "AUTO", 116.66666666666667, 0.3581860363483429, "AUTO_CLAMPED", 161.11111640930176, 0.07273662090301514, "AUTO_CLAMPED"], [-0.05201435089111328, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -0.05201435089111328, "AUTO_CLAMPED", 233.33333333333334, -0.05201435089111328, "AUTO_CLAMPED"], [0.0, 50.0, "BEZIER", "AUTO", 250.0, 0.0, "AUTO_CLAMPED", 283.3333333333333, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED"], [-2.49999992727323, 49.99999999999999, "BEZIER", "AUTO", 100.0, -2.49999992727323, "AUTO_CLAMPED"], [-1.2580600137440534, 50.000000000000014, "BEZIER", "AUTO", 116.67113304138184, -4.465294226503781, "ALIGNED", 161.0812822977702, 4.083021345262861, "ALIGNED"], [1.3109028394749147, 83.33333333333334, "BACK", "EASE_OUT", 188.88888359069824, 1.3109028394749147, "ALIGNED", 3.6015799045562744], [-0.0, 216.66666666666669, "BEZIER", "AUTO", 505.5555661519369, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED"], [0.6000007957649733, 49.99999999999999, "BEZIER", "AUTO", 100.0, 0.6000007957649733, "AUTO_CLAMPED"], [-0.4999999961268166, 50.000000000000014, "BEZIER", "AUTO", 116.66666666666667, -0.4999999961268166, "AUTO_CLAMPED", 233.33333333333334, -0.4999999961268166, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 333.3333333333333, 0.0, "AUTO_CLAMPED", 533.3333333333334, 0.0, "AUTO_CLAMPED"]]}}, "Hammer": {"rotation_euler": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "ALIGNED"], [25.00000012650595, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 25.00000012650595, "AUTO_CLAMPED", 55.55555820465088, 25.00000012650595, "AUTO_CLAMPED"], [-45.00000125223908, 66.66666666666666, "BEZIER", "AUTO", 77.77777512868245, -45.00000125223908, "AUTO_CLAMPED", 133.33333333333334, -45.00000125223908, "AUTO_CLAMPED"], [-0.0, 100.0, "BEZIER", "AUTO", 166.66666666666666, -0.0, "AUTO_CLAMPED", 233.33333333333334, -0.0, "AUTO_CLAMPED"]]}, "location": {"x": [[3.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.125, "AUTO_CLAMPED"]], "z": [[1.862645149230957e-08, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.862645149230957e-08, "AUTO_CLAMPED"]], "y": [[0.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.125, "AUTO_CLAMPED"]]}}, "Slide": {"location": {"x": [[-3.25, 0.0, "SINE", "EASE_OUT"], [-3.25, 33.333333333333336, "QUAD", "EASE_OUT"], [-1.75, 66.66666666666666, "SINE", "EASE_IN"], [-3.25, 100.0, "SINE", "EASE_OUT"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, -0.0, "AUTO_CLAMPED"]], "y": [[0.75, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.75, "AUTO_CLAMPED"]]}}}, "Inspect": {"Bullet": {"location": {"x": [[1.59375, 0.0, "CONSTANT", "AUTO"], [-0.59375, 16.666666666666668, "BEZIER", "AUTO", 944.4444656372069, -0.59375, "AUTO_CLAMPED"], [-0.59375, 2783.3333333333335, "BEZIER", "AUTO", 1872.2221374511719, -0.59375, "AUTO_CLAMPED", 3727.777862548828, -0.59375, "AUTO_CLAMPED"]], "y": [[0.5625, 0.0, "CONSTANT", "AUTO"], [1.0, 16.666666666666668, "BEZIER", "AUTO", 944.4444656372069, 1.0, "AUTO_CLAMPED"], [1.0, 2783.3333333333335, "BEZIER", "AUTO", 1872.2221374511719, 1.0, "AUTO_CLAMPED", 3727.777862548828, 1.0, "AUTO_CLAMPED"]]}}, "Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN", 22.22222089767456, 0.0, "AUTO_CLAMPED", 116.66666666666667, 0.0, "AUTO_CLAMPED"], [-1.71687650680542, 249.99999999999997, "BEZIER", "AUTO", 200.0, -1.71687650680542, "AUTO_CLAMPED", 383.3333333333333, -1.71687650680542, "AUTO_CLAMPED"], [0.5513148307800293, 300.00000000000006, "BEZIER", "AUTO", 483.3333333333333, -0.29949963092803955, "AUTO_CLAMPED", 683.3333333333334, 1.4021292924880981, "AUTO_CLAMPED"], [1.6863813400268555, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 1.6863813400268555, "AUTO_CLAMPED", 1322.2222646077473, 1.6863813400268555, "AUTO_CLAMPED"], [1.0514655113220215, 1316.6666666666667, "BEZIER", "AUTO", 1761.111068725586, 1.6863813400268555, "AUTO_CLAMPED", 2344.4445292154946, 0.8425058722496033, "AUTO_CLAMPED"], [-1.970992922782898, 433.3333333333335, "BEZIER", "AUTO", 2488.8888041178384, -1.970992922782898, "AUTO_CLAMPED", 2688.8888041178384, -1.970992922782898, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "EASE_IN", 2744.4445292154946, 0.0, "AUTO_CLAMPED", 2855.555470784505, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [-0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, -0.0, "AUTO_CLAMPED", 116.66666666666667, -0.0, "AUTO_CLAMPED"], [2.112370729446411, 249.99999999999997, "BEZIER", "AUTO", 200.0, 1.0917030572891235, "AUTO_CLAMPED", 361.11110051472986, 3.0649938583374023, "AUTO_CLAMPED"], [3.955737590789795, 233.33333333333331, "BEZIER", "AUTO", 438.88889948527014, 3.955737590789795, "AUTO_CLAMPED", 538.8888676961263, 3.955737590789795, "AUTO_CLAMPED"], [3.7618730068206787, 66.66666666666674, "BEZIER", "AUTO", 561.1111323038737, 3.8623299598693848, "AUTO_CLAMPED", 683.3333333333334, 3.309816360473633, "AUTO_CLAMPED"], [2.715005397796631, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 2.715005397796631, "AUTO_CLAMPED", 1322.2222646077473, 2.715005397796631, "AUTO_CLAMPED"], [4.174439907073975, 1316.6666666666667, "BEZIER", "AUTO", 1761.111068725586, 2.715005397796631, "AUTO_CLAMPED", 2277.777862548828, 4.433073997497559, "AUTO_CLAMPED"], [5.207278251647949, 233.33333333333303, "BEZIER", "AUTO", 2355.555470784505, 5.207278251647949, "AUTO_CLAMPED", 2555.5554707845054, 5.207278251647949, "AUTO_CLAMPED"], [-0.0, 366.66666666666697, "BEZIER", "EASE_IN_OUT", 2677.777862548828, -0.0, "AUTO_CLAMPED", 2922.222137451172, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED", 216.66666666666669, 0.0, "AUTO_CLAMPED"], [0.9560011625289917, 550.0, "BEZIER", "AUTO", 400.0, 0.6512281894683838, "AUTO_CLAMPED", 683.3333333333334, 1.1222410202026367, "AUTO_CLAMPED"], [1.235924243927002, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 1.1854032278060913, "AUTO_CLAMPED", 1072.2222646077473, 1.331352949142456, "AUTO_CLAMPED"], [1.3816792964935303, 566.6666666666667, "BEZIER", "AUTO", 1261.111068725586, 1.3816792964935303, "AUTO_CLAMPED", 1700.0, 1.3816792964935303, "AUTO_CLAMPED"], [0.991679310798645, 750.0, "BEZIER", "AUTO", 1950.0, 0.991679310798645, "AUTO_CLAMPED", 2277.777862548828, 0.991679310798645, "AUTO_CLAMPED"], [0.991679310798645, 233.33333333333303, "BEZIER", "AUTO", 2355.555470784505, 0.991679310798645, "AUTO_CLAMPED", 2555.5554707845054, 0.991679310798645, "AUTO_CLAMPED"], [0.0, 366.66666666666697, "BEZIER", "EASE_IN_OUT", 2677.777862548828, 0.0, "AUTO_CLAMPED", 2922.222137451172, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED", 216.66666666666669, 0.0, "AUTO_CLAMPED"], [5.020503228661193, 550.0, "BEZIER", "AUTO", 400.0, 3.059422302374893, "AUTO_CLAMPED", 683.3333333333334, 6.090183850331944, "AUTO_CLAMPED"], [7.589897451014929, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 6.833084743334013, "AUTO_CLAMPED", 1322.2222646077473, 10.911463694395382, "AUTO_CLAMPED"], [14.500997041935651, 1316.6666666666667, "BEZIER", "AUTO", 1761.111068725586, 14.500997041935651, "AUTO_CLAMPED", 2238.8888041178384, 14.500997041935651, "AUTO_CLAMPED"], [14.500997041935651, 116.66666666666652, "BEZIER", "AUTO", 2277.777862548828, 14.500997041935651, "AUTO_CLAMPED", 2477.777862548828, 14.500997041935651, "AUTO_CLAMPED"], [0.0, 483.3333333333335, "BEZIER", "EASE_IN_OUT", 2638.888804117839, 0.0, "AUTO_CLAMPED", 2961.1111958821616, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED", 216.66666666666669, 0.0, "AUTO_CLAMPED"], [-2.5185520017194545, 550.0, "BEZIER", "AUTO", 400.0, -1.7974633178318207, "AUTO_CLAMPED", 683.3333333333334, -2.9118731408296927, "AUTO_CLAMPED"], [-2.9849506154201286, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, -2.9849506154201286, "AUTO_CLAMPED", 1322.2222646077473, -2.9849506154201286, "AUTO_CLAMPED"], [-2.6852116056755273, 1316.6666666666667, "BEZIER", "AUTO", 1761.111068725586, -2.6852116056755273, "AUTO_CLAMPED", 2238.8888041178384, -2.6852116056755273, "AUTO_CLAMPED"], [-2.6852116056755273, 116.66666666666652, "BEZIER", "AUTO", 2277.777862548828, -2.6852116056755273, "AUTO_CLAMPED", 2477.777862548828, -2.6852116056755273, "AUTO_CLAMPED"], [0.0, 483.3333333333335, "BEZIER", "EASE_IN_OUT", 2638.888804117839, 0.0, "AUTO_CLAMPED", 2961.1111958821616, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED", 216.66666666666669, 0.0, "AUTO_CLAMPED"], [133.86457701475643, 550.0, "BEZIER", "AUTO", 400.0, 95.5376944872819, "AUTO_CLAMPED", 683.3333333333334, 154.77014681876466, "AUTO_CLAMPED"], [158.65432513558918, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 158.65432513558918, "AUTO_CLAMPED", 983.3333333333333, 158.65432513558918, "AUTO_CLAMPED"], [157.74876499505052, 300.0, "BEZIER", "AUTO", 1083.3333333333333, 158.02887105291276, "AUTO_CLAMPED", 1333.3333333333333, 157.32859907806804, "AUTO_CLAMPED"], [157.32859907806804, 450.0, "BEZIER", "AUTO", 1483.3333333333335, 157.32859907806804, "AUTO_CLAMPED", 1822.2222646077473, 157.32859907806804, "AUTO_CLAMPED"], [155.08037401086662, 566.6666666666667, "BEZIER", "AUTO", 2011.1110687255857, 157.32859907806804, "AUTO_CLAMPED", 2277.777862548828, 154.1546374915198, "AUTO_CLAMPED"], [108.19301732112919, 233.33333333333303, "BEZIER", "AUTO", 2355.555470784505, 135.62436159403188, "AUTO_CLAMPED", 2555.5554707845054, 65.08662112947903, "AUTO_CLAMPED"], [0.0, 366.66666666666697, "BEZIER", "EASE_IN_OUT", 2677.777862548828, 0.0, "AUTO_CLAMPED", 2922.222137451172, 0.0, "AUTO_CLAMPED"]]}}}, "Jam": {"Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.7684813737869263, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [-0.07987856864929199, 300.0, "SINE", "AUTO"], [-0.07659769058227539, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, -0.07659769058227539, "AUTO_CLAMPED"], [-0.07659769058227539, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, -0.07659769058227539, "AUTO_CLAMPED"], [0.34417805075645447, 200.0, "QUAD", "EASE_IN"], [0.27417799830436707, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, 0.27417799830436707, "AUTO_CLAMPED"], [0.27417805790901184, 50.0, "QUAD", "EASE_IN", 1750.0, 0.27417805790901184, "AUTO_CLAMPED"], [-0.016215801239013672, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, -0.0, "AUTO_CLAMPED"], [-0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, -0.0, "AUTO_CLAMPED"], [-0.172386035323143, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [-0.04781261831521988, 183.33333333333331, "BEZIER", "AUTO", 522.2222328186035, -0.04781261831521988, "AUTO_CLAMPED"], [-0.04781261831521988, 116.66666666666669, "SINE", "AUTO", 561.1111323038737, -0.04781261831521988, "AUTO_CLAMPED"], [-0.25952833890914917, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, -0.25952833890914917, "AUTO_CLAMPED"], [-0.25952833890914917, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, -0.25952833890914917, "AUTO_CLAMPED"], [-1.6563783884048462, 200.0, "QUAD", "EASE_IN"], [-0.9063783884048462, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, -0.9063783884048462, "AUTO_CLAMPED"], [-0.9063783884048462, 50.0, "QUAD", "EASE_IN", 1750.0, -0.9063783884048462, "AUTO_CLAMPED"], [-0.19053393602371216, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [-0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [1.9825199842453003, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [0.699442982673645, 300.0, "SINE", "AUTO"], [0.6867120265960693, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, 0.6867120265960693, "AUTO_CLAMPED"], [0.6867120265960693, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, 0.6867120265960693, "AUTO_CLAMPED"], [0.8148880004882812, 200.0, "QUAD", "EASE_IN"], [1.2448880672454834, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, 1.2448880672454834, "AUTO_CLAMPED"], [1.2448880672454834, 50.0, "QUAD", "EASE_IN", 1750.0, 1.2448880672454834, "AUTO_CLAMPED"], [0.44753724336624146, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [-2.9187993795349088, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [-0.4350010878597721, 183.33333333333331, "BEZIER", "AUTO", 522.2222328186035, -0.4350010878597721, "AUTO_CLAMPED"], [-0.4350010878597721, 116.66666666666669, "SINE", "AUTO", 561.1111323038737, -0.4350010878597721, "AUTO_CLAMPED"], [-2.977798553585479, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, -2.977798553585479, "AUTO_CLAMPED"], [-2.977798553585479, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, -2.977798553585479, "AUTO_CLAMPED"], [-3.8259987654743424, 200.0, "QUAD", "EASE_IN"], [-2.426001230918489, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, -2.426001230918489, "AUTO_CLAMPED"], [-2.426001230918489, 50.0, "QUAD", "EASE_IN", 1750.0, -2.426001230918489, "AUTO_CLAMPED"], [-0.46099678784084064, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [-9.06172296242993, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [0.7263285595589442, 300.0, "SINE", "AUTO"], [0.9408103199582433, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, 0.9408103199582433, "AUTO_CLAMPED"], [0.9408103199582433, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, 0.9408103199582433, "AUTO_CLAMPED"], [-1.024439796486114, 200.0, "QUAD", "EASE_IN"], [-7.224439641736934, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, -7.224439641736934, "AUTO_CLAMPED"], [-7.224439641736934, 50.0, "QUAD", "EASE_IN", 1750.0, -7.224439641736934, "AUTO_CLAMPED"], [-0.6818431639686808, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [-0.3186239491911578, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [-0.04786912399892983, 183.33333333333331, "BEZIER", "AUTO", 522.2222328186035, -0.04786912399892983, "AUTO_CLAMPED"], [-0.04786912399892983, 116.66666666666669, "SINE", "AUTO", 561.1111323038737, -0.04786912399892983, "AUTO_CLAMPED"], [-3.0794514052291326, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, -3.0794514052291326, "AUTO_CLAMPED"], [-3.0794514052291326, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, -3.0794514052291326, "AUTO_CLAMPED"], [-6.585746518014926, 200.0, "QUAD", "EASE_IN"], [-3.3857467562467116, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, -3.3857467562467116, "AUTO_CLAMPED"], [-3.3857467562467116, 50.0, "QUAD", "EASE_IN", 1750.0, -3.3857467562467116, "AUTO_CLAMPED"], [-0.7094660497977991, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]]}}, "Magazine": {"location": {"x": [[2.125, 0.0, "BEZIER", "AUTO", 111.11110846201579, 2.125, "AUTO_CLAMPED"], [2.125, 333.3333333333333, "BEZIER", "EASE_OUT", 222.22223281860352, 2.125, "AUTO_CLAMPED", 400.0, 2.125, "AUTO_CLAMPED"], [3.215369939804077, 200.00000000000006, "BEZIER", "AUTO", 466.6666666666667, 3.0801353454589844, "AUTO_CLAMPED", 588.8888676961262, 3.3280653953552246, "AUTO_CLAMPED"], [3.3280653953552246, 166.66666666666663, "BEZIER", "EASE_IN_OUT", 655.555534362793, 3.3280653953552246, "ALIGNED", 811.1111323038737, 3.3280653953552246, "ALIGNED"], [2.663938045501709, 300.0, "CUBIC", "EASE_IN", 900.0, 2.8518593311309814, "AUTO_CLAMPED"], [2.5386571884155273, 200.0, "QUAD", "EASE_IN_OUT"], [3.517561435699463, 500.0, "QUAD", "AUTO"], [3.215369939804077, 116.66666666666674, "BEZIER", "EASE_IN", 1861.111068725586, 2.8700082302093506, "AUTO_CLAMPED"], [2.125, 133.33333333333326, "BEZIER", "AUTO", 1905.5555979410808, 2.125, "AUTO_CLAMPED", 1994.4444020589192, 2.125, "AUTO_CLAMPED"]], "z": [[-2.443810274144198e-07, 0.0, "BEZIER", "AUTO", 194.44444974263507, -2.443810274144198e-07, "AUTO_CLAMPED"], [-2.443810274144198e-07, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, -2.443810274144198e-07, "AUTO_CLAMPED", 722.2222010294597, -2.443810274144198e-07, "AUTO_CLAMPED"], [4.639456748962402, 416.66666666666663, "CUBIC", "EASE_IN", 861.1111323038737, 4.639456748962402, "AUTO_CLAMPED"], [1.1628408432006836, 200.0, "QUAD", "EASE_IN_OUT"], [1.921958327293396, 200.0, "QUAD", "AUTO"], [-0.0, 300.0, "QUAD", "EASE_IN_OUT"], [-2.443810274144198e-07, 116.66666666666674, "BEZIER", "AUTO", 1861.111068725586, -2.443810274144198e-07, "AUTO_CLAMPED"], [-2.443810274144198e-07, 133.33333333333326, "BEZIER", "AUTO", 1905.5555979410808, -2.443810274144198e-07, "AUTO_CLAMPED", 1994.4444020589192, -2.443810274144198e-07, "AUTO_CLAMPED"]], "y": [[-1.5, 0.0, "BEZIER", "AUTO", 111.11110846201579, -1.5, "AUTO_CLAMPED"], [-1.5, 333.3333333333333, "BEZIER", "EASE_OUT", 222.22223281860352, -1.5, "AUTO_CLAMPED", 400.0, -1.5, "AUTO_CLAMPED"], [-5.614299774169922, 200.00000000000006, "BEZIER", "AUTO", 466.6666666666667, -5.13734769821167, "AUTO_CLAMPED", 588.8888676961262, -6.0117597579956055, "AUTO_CLAMPED"], [-6.0117597579956055, 166.66666666666663, "BEZIER", "EASE_IN_OUT", 655.555534362793, -6.0117597579956055, "ALIGNED", 811.1111323038737, -6.0117597579956055, "ALIGNED"], [-2.2079570293426514, 300.0, "CUBIC", "EASE_IN", 900.0, -2.2079570293426514, "AUTO_CLAMPED"], [-3.1993041038513184, 200.0, "QUAD", "EASE_IN_OUT"], [-6.543550491333008, 500.0, "QUAD", "AUTO"], [-5.614299774169922, 116.66666666666674, "BEZIER", "EASE_IN", 1861.111068725586, -4.5522990226745605, "AUTO_CLAMPED"], [-1.5, 133.33333333333326, "BEZIER", "AUTO", 1905.5555979410808, -1.5, "AUTO_CLAMPED", 1994.4444020589192, -1.5, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 177.77778307596842, 0.0, "AUTO_CLAMPED"], [0.0, 533.3333333333334, "BEZIER", "AUTO", 366.6665395100911, 0.0, "ALIGNED", 616.6666666666667, 0.0, "ALIGNED"], [7.889100717796508, 216.66666666666663, "BEZIER", "EASE_IN", 677.7777989705404, 7.889100717796508, "AUTO_CLAMPED", 833.3333333333334, 7.889100717796508, "AUTO_CLAMPED"], [7.889100717796508, 250.0, "CUBIC", "EASE_IN", 916.6666666666666, 7.889100717796508, "AUTO_CLAMPED"], [-9.461601510030203, 200.0, "QUAD", "EASE_IN_OUT"], [0.09899676183016481, 166.66666666666674, "QUAD", "AUTO"], [0.0, 333.33333333333326, "QUAD", "AUTO"], [0.0, 116.66666666666674, "BEZIER", "AUTO", 1861.111068725586, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333326, "BEZIER", "AUTO", 1905.5555979410808, 0.0, "AUTO_CLAMPED", 1994.4444020589192, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 177.77778307596842, 0.0, "AUTO_CLAMPED"], [-0.0, 533.3333333333334, "BEZIER", "AUTO", 355.55553436279297, -0.0, "AUTO_CLAMPED", 588.8888676961262, -0.0, "AUTO_CLAMPED"], [-0.051977426088786305, 166.66666666666663, "BEZIER", "EASE_IN_OUT", 655.555534362793, -0.015593215153433329, "ALIGNED", 811.1111323038737, -0.1429379300817956, "ALIGNED"], [-3.0519773961795793, 300.0, "CUBIC", "EASE_IN", 900.0, -3.0519773961795793, "AUTO_CLAMPED"], [-2.346791954000674, 200.0, "QUAD", "EASE_IN_OUT"], [-3.453324221007995, 166.66666666666674, "QUAD", "AUTO"], [-0.0, 333.33333333333326, "BEZIER", "AUTO", 1783.3333333333333, -0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 1866.6666666666667, 0.0, "AUTO_CLAMPED", 2033.3333333333333, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 177.77778307596842, 0.0, "AUTO_CLAMPED"], [0.0, 533.3333333333334, "BEZIER", "AUTO", 355.55553436279297, 0.0, "AUTO_CLAMPED", 588.8888676961262, 0.0, "AUTO_CLAMPED"], [-0.0825022485208741, 166.66666666666663, "BEZIER", "EASE_IN_OUT", 655.555534362793, -0.0825022485208741, "ALIGNED", 811.1111323038737, -0.0825022485208741, "ALIGNED"], [-0.0825022485208741, 300.0, "CUBIC", "EASE_IN", 900.0, -0.0825022485208741, "AUTO_CLAMPED"], [-1.7667953415716402, 200.0, "QUAD", "EASE_IN_OUT"], [-1.1941604991291164, 166.66666666666674, "QUAD", "AUTO"], [0.0, 333.33333333333326, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 1866.6666666666667, 0.0, "AUTO_CLAMPED", 2033.3333333333333, 0.0, "AUTO_CLAMPED"]]}}}, "Reload": {"Bullet": {"location": {"x": [[1.59375, 0.0, "BEZIER", "AUTO", 666.6666666666666, 1.59375, "AUTO_CLAMPED"], [1.59375, 2000.0, "BEZIER", "AUTO", 1333.3333333333333, 1.59375, "AUTO_CLAMPED", 2066.6666666666665, 1.59375, "AUTO_CLAMPED"], [0.90625, 200.0, "LINEAR", "AUTO", 2133.3333333333335, 0.90625, "AUTO_CLAMPED"], [0.90625, 133.33333333333348, "LINEAR", "AUTO"], [-0.5937501192092896, 99.99999999999955, "BEZIER", "AUTO", 2466.666666666667, -0.5937501192092896, "AUTO_CLAMPED"]], "y": [[0.5625, 0.0, "BEZIER", "AUTO", 666.6666666666666, 0.5625, "AUTO_CLAMPED"], [0.5625, 2000.0, "BEZIER", "AUTO", 1333.3333333333333, 0.5625, "AUTO_CLAMPED", 2066.6666666666665, 0.5625, "AUTO_CLAMPED"], [0.875, 200.0, "BEZIER", "AUTO", 2133.3333333333335, 0.875, "AUTO_CLAMPED", 2244.4445292154946, 0.875, "AUTO_CLAMPED"], [0.875, 133.33333333333348, "SINE", "EASE_OUT", 2288.8888041178384, 0.875, "AUTO_CLAMPED"], [0.9999978542327881, 33.33333333333303, "BEZIER", "AUTO", 2377.777862548828, 0.9999978542327881, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[0.0, 0.0, "CONSTANT", "AUTO"], [-19.99999941818584, 2000.0, "BEZIER", "AUTO", 2066.6666666666665, -19.99999941818584, "AUTO_CLAMPED"], [-7.500000208706514, 200.0, "BEZIER", "AUTO", 2133.3333333333335, -7.500000208706514, "AUTO_CLAMPED", 2244.4445292154946, -7.500000208706514, "AUTO_CLAMPED"], [-7.500000208706514, 133.33333333333348, "SINE", "EASE_OUT", 2288.8888041178384, -7.500000208706514, "AUTO_CLAMPED"], [-0.0, 33.33333333333303, "BEZIER", "AUTO", 2377.777862548828, -0.0, "AUTO_CLAMPED"]]}}, "Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [-0.5098327398300171, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [0.23206636309623718, 233.33333333333337, "BEZIER", "EASE_IN_OUT", 733.3333333333333, 0.23206636309623718, "AUTO_CLAMPED"], [0.23206636309623718, 599.9999999999999, "BEZIER", "EASE_IN", 933.3333333333334, 0.23206636309623718, "AUTO_CLAMPED", 1266.6666666666665, 0.23206636309623718, "AUTO_CLAMPED"], [0.38155651092529297, 400.0, "BACK", "AUTO", 1483.3333333333335, 0.38155651092529297, "ALIGNED", 1.7015800476074219], [0.3984723687171936, 266.66666666666674, "LINEAR", "AUTO"], [0.3984723687171936, 166.66666666666652, "BEZIER", "AUTO", 2011.1111958821612, 0.3984723687171936, "ALIGNED"], [0.0, 633.3333333333335, "QUAD", "EASE_IN_OUT", 2388.888804117839, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, -0.0, "AUTO_CLAMPED"], [-0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, -0.0, "AUTO_CLAMPED"], [-1.590022325515747, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [-0.16680538654327393, 233.33333333333337, "BEZIER", "EASE_IN_OUT", 733.3333333333333, -0.16680538654327393, "AUTO_CLAMPED"], [-0.16680538654327393, 599.9999999999999, "BEZIER", "EASE_IN", 933.3333333333334, -0.16680538654327393, "AUTO_CLAMPED", 1266.6666666666665, -0.16680538654327393, "AUTO_CLAMPED"], [-0.13560596108436584, 400.0, "BACK", "AUTO", 1466.6666666666665, -0.13560596108436584, "ALIGNED", 1.7015800476074219], [-0.29175129532814026, 266.66666666666674, "LINEAR", "AUTO"], [-0.29175129532814026, 166.66666666666652, "BEZIER", "AUTO", 2011.1111958821612, -0.29175129532814026, "ALIGNED"], [-0.0, 633.3333333333335, "QUAD", "EASE_IN_OUT", 2388.888804117839, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [3.8397903442382812, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [0.3740246295928955, 533.3333333333334, "BEZIER", "EASE_IN_OUT", 933.3333333333334, 0.3740246295928955, "AUTO_CLAMPED"], [0.3740246295928955, 299.9999999999999, "BEZIER", "EASE_IN", 1033.3333333333333, 0.3740246295928955, "AUTO_CLAMPED", 1266.6666666666665, 0.3740246295928955, "AUTO_CLAMPED"], [0.5059270858764648, 400.0, "BACK", "AUTO", 1466.6666666666665, 0.5059270858764648, "ALIGNED", 3.9015798568725586], [1.2094907760620117, 266.66666666666674, "LINEAR", "AUTO"], [1.2094907760620117, 166.66666666666652, "BEZIER", "AUTO", 2011.1111958821612, 1.2094907760620117, "ALIGNED"], [0.0, 633.3333333333335, "QUAD", "EASE_IN_OUT", 2388.888804117839, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [-16.158301462904227, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [-10.301796740211811, 233.33333333333337, "BEZIER", "EASE_IN_OUT", 733.3333333333333, -10.301796740211811, "AUTO_CLAMPED"], [-10.301796740211811, 599.9999999999999, "BEZIER", "EASE_IN", 933.3333333333334, -10.301796740211811, "AUTO_CLAMPED", 1266.6666666666665, -10.301796740211811, "AUTO_CLAMPED"], [-19.784100553616323, 400.0, "BACK", "AUTO", 1400.0, -19.784100553616323, "AUTO_CLAMPED", 1.7015800476074219], [-16.903297516434197, 266.66666666666674, "LINEAR", "AUTO"], [-16.903297516434197, 100.0, "BEZIER", "AUTO", 1944.4445292154949, -8.062240890614454, "ALIGNED"], [0.0, 766.6666666666665, "QUAD", "EASE_IN_OUT", 2411.1111958821616, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [-16.899083289716298, 283.3333333333333, "BACK", "EASE_OUT", 2.5], [-5.380695815862754, 533.3333333333334, "BEZIER", "EASE_IN_OUT", 1066.6666666666667, -5.380695815862754, "AUTO_CLAMPED"], [-11.906051935670543, 699.9999999999999, "BACK", "AUTO", 1300.0, -6.886808876911218, "AUTO_CLAMPED", 6.0], [-20.04334209111145, 266.66666666666674, "LINEAR", "AUTO"], [-20.04334209111145, 166.66666666666652, "BEZIER", "AUTO", 2177.777862548828, -30.043338385109788, "ALIGNED"], [0.0, 700.0, "QUAD", "EASE_IN_OUT", 2433.333333333333, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [-1.7823402117923546, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [6.773653132931616, 233.33333333333337, "BEZIER", "EASE_IN_OUT", 733.3333333333333, 6.773653132931616, "AUTO_CLAMPED"], [6.773653132931616, 599.9999999999999, "BEZIER", "EASE_IN", 933.3333333333334, 6.773653132931616, "AUTO_CLAMPED", 1266.6666666666665, 6.773653132931616, "AUTO_CLAMPED"], [18.416894757265702, 400.0, "BACK", "AUTO", 1400.0, 17.224420567809638, "AUTO_CLAMPED", 1.7015800476074219], [19.211877550236412, 266.66666666666674, "BEZIER", "AUTO", 1844.4445292154946, 19.211877550236412, "ALIGNED"], [19.211877550236412, 100.0, "BEZIER", "AUTO", 1866.6666666666667, 19.211877550236412, "ALIGNED", 1944.4445292154949, 19.211877550236412, "ALIGNED"], [0.0, 266.6666666666665, "QUAD", "EASE_IN_OUT", 2077.7777353922525, 0.0, "AUTO_CLAMPED"]]}}, "Hammer": {"rotation_euler": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 666.6666666666666, -0.0, "AUTO_CLAMPED"], [-0.0, 2000.0, "BEZIER", "AUTO", 1333.3333333333333, -0.0, "AUTO_CLAMPED", 2066.6666666666665, -0.0, "AUTO_CLAMPED"], [-45.00000125223908, 200.0, "BEZIER", "AUTO", 2133.3333333333335, -45.00000125223908, "AUTO_CLAMPED", 2244.4445292154946, -45.00000125223908, "AUTO_CLAMPED"], [-45.00000125223908, 133.33333333333348, "LINEAR", "AUTO", 2288.8888041178384, -45.00000125223908, "AUTO_CLAMPED"], [-0.0, 133.33333333333348, "BEZIER", "AUTO", 2511.111195882161, -0.0, "AUTO_CLAMPED"]]}, "location": {"x": [[3.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.125, "AUTO_CLAMPED"]], "z": [[1.862645149230957e-08, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.862645149230957e-08, "AUTO_CLAMPED"]], "y": [[0.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.125, "AUTO_CLAMPED"]]}}, "Magazine": {"location": {"x": [[2.125, 0.0, "LINEAR", "AUTO"], [2.125, 366.66666666666663, "LINEAR", "AUTO"], [3.215367555618286, 133.33333333333337, "LINEAR", "EASE_IN"], [6.216582298278809, 266.66666666666663, "CONSTANT", "AUTO"], [1.6932545900344849, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, 1.6932545900344849, "AUTO_CLAMPED"], [3.215367555618286, 400.0, "LINEAR", "EASE_IN", 1266.6666666666665, 3.215367555618286, "AUTO_CLAMPED"], [2.125, 166.66666666666674, "BEZIER", "AUTO", 1622.2222646077473, 2.125, "AUTO_CLAMPED"]], "z": [[-2.443810274144198e-07, 0.0, "LINEAR", "AUTO"], [-2.443810274144198e-07, 366.66666666666663, "LINEAR", "AUTO"], [-0.0, 133.33333333333337, "BEZIER", "EASE_IN", 522.2222010294596, -0.020347656682133675, "ALIGNED"], [-0.0, 266.66666666666663, "CONSTANT", "AUTO", 761.1110687255859, -7.450580596923828e-09, "ALIGNED"], [15.77025318145752, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, 15.77025318145752, "AUTO_CLAMPED"], [-0.0, 400.0, "BEZIER", "EASE_IN", 1266.6666666666665, 5.865144885319751e-07, "AUTO_CLAMPED", 1455.5555979410808, -2.443810274144198e-07, "AUTO_CLAMPED"], [-2.443810274144198e-07, 166.66666666666674, "BEZIER", "AUTO", 1511.111068725586, -2.443810274144198e-07, "AUTO_CLAMPED", 1622.2222646077473, -2.443810274144198e-07, "AUTO_CLAMPED"]], "y": [[-1.5, 0.0, "LINEAR", "AUTO"], [-1.5, 366.66666666666663, "LINEAR", "AUTO"], [-5.614295482635498, 133.33333333333337, "LINEAR", "EASE_IN"], [-16.93880844116211, 266.66666666666663, "CONSTANT", "AUTO"], [-21.048290252685547, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, -21.048290252685547, "AUTO_CLAMPED"], [-5.614295482635498, 400.0, "LINEAR", "EASE_IN", 1266.6666666666665, -11.369051933288574, "AUTO_CLAMPED"], [-1.5, 166.66666666666674, "BEZIER", "AUTO", 1622.2222646077473, -1.5, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 366.66666666666663, "LINEAR", "AUTO"], [0.0, 133.33333333333337, "BEZIER", "EASE_IN", 555.555534362793, 0.0, "ALIGNED"], [0.0, 266.66666666666663, "CONSTANT", "AUTO", 677.7777989705404, 0.0, "AUTO_CLAMPED"], [-15.976201789442515, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, -15.976201789442515, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "EASE_IN", 1266.6666666666665, 0.0, "AUTO_CLAMPED", 1455.5555979410808, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666674, "BEZIER", "AUTO", 1511.111068725586, 0.0, "AUTO_CLAMPED", 1622.2222646077473, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 366.66666666666663, "LINEAR", "AUTO"], [0.0, 133.33333333333337, "BEZIER", "EASE_IN", 555.555534362793, 0.0, "ALIGNED"], [0.0, 266.66666666666663, "CONSTANT", "AUTO", 677.7777989705404, 0.0, "AUTO_CLAMPED"], [-7.264861555018716, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, -7.264861555018716, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "EASE_IN", 1266.6666666666665, 0.0, "AUTO_CLAMPED", 1455.5555979410808, 0.0, "AUTO_CLAMPED"], [-0.0, 166.66666666666674, "BEZIER", "AUTO", 1511.111068725586, -0.0, "AUTO_CLAMPED", 1622.2222646077473, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 366.66666666666663, "LINEAR", "AUTO"], [0.0, 133.33333333333337, "BEZIER", "EASE_IN", 555.555534362793, 0.0, "ALIGNED"], [0.0, 266.66666666666663, "CONSTANT", "AUTO", 677.7777989705404, 0.0, "AUTO_CLAMPED"], [-3.817224960598638, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, -3.817224960598638, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "EASE_IN", 1266.6666666666665, 0.0, "AUTO_CLAMPED", 1455.5555979410808, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666674, "BEZIER", "AUTO", 1511.111068725586, 0.0, "AUTO_CLAMPED", 1622.2222646077473, 0.0, "AUTO_CLAMPED"]]}}, "Slide": {"location": {"x": [[-3.25, 0.0, "BEZIER", "AUTO", 666.6666666666666, -3.25, "AUTO_CLAMPED"], [-3.25, 2000.0, "BEZIER", "AUTO", 1766.6666666666665, -3.25, "ALIGNED", 2022.2221374511719, -3.25, "ALIGNED"], [-1.75, 200.0, "LINEAR", "AUTO", 2161.1111958821616, -1.75, "ALIGNED"], [-1.75, 133.33333333333348, "LINEAR", "AUTO"], [-3.25, 99.99999999999955, "BEZIER", "AUTO", 2433.333333333333, -3.25, "ALIGNED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, -0.0, "AUTO_CLAMPED"]], "y": [[0.75, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.75, "AUTO_CLAMPED"]]}}}}, "offset": {"Bullet": [1.59375, 0.5625, -2.443810274144198e-07], "Decal": [-2.3125, 0.6875, 0.3850004971027374], "DecalM": [0.0, 0.0, -10.609639167785645], "GripM": [0.0, 0.0, -10.609639167785645], "Hammer": [3.125, 0.125, 1.862645149230957e-08], "Magazine": [2.125, -1.5, -2.443810274144198e-07], "Slide": [-3.25, 0.75, -0.0], "SlideM": [0.0, 0.0, -10.609639167785645], "Text": [-6.25, 0.6875, 0.3850004971027374], "TextM": [0.0, 0.0, -10.609639167785645]}, "hierarchy": {"Bullet": "Magazine", "Decal": "Slide", "DecalM": "SlideM", "Hammer": "Grip", "Magazine": "Grip", "Slide": "Grip", "SlideM": "GripM", "Text": "Slide", "TextM": "SlideM"}, "rotmode": {"Bullet": "XYZ", "Decal": "XYZ", "DecalM": "XYZ", "GripM": "XYZ", "Hammer": "XYZ", "Magazine": "XYZ", "Slide": "XYZ", "SlideM": "XYZ", "Text": "XYZ", "TextM": "XYZ"}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/novac.json b/src/main/resources/assets/hbm/models/weapons/animations/novac.json new file mode 100644 index 000000000..126e29cb0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/novac.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Body": {"rotation_euler": {"x": [[0.0, 0.0], [29.145301697941925, 66.66666666666667], [0.0, 566.6666666666666]]}, "location": {"z": [[-0.0, 0.0], [0.7235583066940308, 33.333333333333336], [-0.0, 599.9999999999999]], "y": [[0.0, 0.0], [0.7866886854171753, 33.333333333333336], [0.0, 599.9999999999999]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0], [-42.84400081430579, 16.666666666666668], [-42.84400081430579, 250.00000000000003], [0.0, 200.0]]}, "location": {"x": [[0.0, 0.0]], "z": [[1.1140995025634766, 0.0]], "y": [[0.48292604088783264, 0.0]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0], [0.04879806935787201, 166.66666666666666], [-0.1566363126039505, 133.33333333333334], [0.0, 166.66666666666669]], "z": [[-0.0, 0.0], [-0.7191624641418457, 166.66666666666666], [-1.058491826057434, 133.33333333333334], [-0.0, 166.66666666666669]], "y": [[0.0, 0.0], [0.7507638931274414, 166.66666666666666], [0.9907249212265015, 133.33333333333334], [0.0, 166.66666666666669]]}, "rotation_euler": {"x": [[0.0, 0.0], [-19.391663497116777, 166.66666666666666], [45.102665825653546, 133.33333333333334], [0.0, 166.66666666666669]], "z": [[-0.0, 0.0], [0.5174686318159474, 166.66666666666666], [3.009666081818643, 133.33333333333334], [-0.0, 166.66666666666669]], "y": [[-0.0, 0.0], [1.4431158784559095, 166.66666666666666], [-0.8437833740125396, 133.33333333333334], [0.0, 166.66666666666669]]}}}}, "offset": {"Cylinder": [3.725290298461914e-09, 0.5323800444602966, 0.4562000334262848], "Hammer": [0.0, 0.48292604088783264, 1.1140995025634766], "Trigger": [0.0, 0.12013805657625198, 0.7557680010795593]}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/python.json b/src/main/resources/assets/hbm/models/weapons/animations/python.json new file mode 100644 index 000000000..2a65e9774 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/python.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Body": {"location": {"z": [[-0.0, 0.0, "LINEAR", "AUTO"], [0.1901400089263916, 50.0, "LINEAR", "AUTO"], [-0.0, 283.3333333333333, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.22623062133789062, 50.0, "LINEAR", "AUTO"], [0.0, 283.3333333333333, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 16.666666666666668, "LINEAR", "AUTO"], [50.512076610560676, 66.66666666666666, "LINEAR", "AUTO"], [0.0, 250.0, "LINEAR", "AUTO"]]}}, "Hammer": {"rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [-44.61753114928588, 16.666666666666668, "LINEAR", "AUTO"], [-44.61753114928588, 183.33333333333334, "LINEAR", "AUTO"], [0.0, 300.0, "LINEAR", "AUTO"]]}, "location": {"x": [[0.00012800097465515137, 0.0, "LINEAR", "AUTO"]], "z": [[0.1478099822998047, 0.0, "LINEAR", "AUTO"]], "y": [[0.1151699647307396, 0.0, "LINEAR", "AUTO"]]}}}, "Reload": {"Body": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 72.22222487131755, 0.0, "AUTO_CLAMPED"], [0.1266033947467804, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.1266033947467804, "AUTO_CLAMPED", 238.88888359069824, 0.1266033947467804, "AUTO_CLAMPED"], [-0.1256844699382782, 66.66666666666663, "BEZIER", "AUTO", 261.11111640930176, -0.1256844699382782, "AUTO_CLAMPED", 316.66666666666663, -0.1256844699382782, "AUTO_CLAMPED"], [-0.10699314624071121, 100.0, "BEZIER", "AUTO", 350.0, -0.11716071516275406, "AUTO_CLAMPED", 444.44443384806317, -0.08835260570049286, "AUTO_CLAMPED"], [-0.05540347099304199, 183.33333333333331, "BEZIER", "AUTO", 505.5555661519369, -0.06418702006340027, "AUTO_CLAMPED", 594.444465637207, -0.05141094699501991, "AUTO_CLAMPED"], [-0.04984791576862335, 83.33333333333337, "BEZIER", "AUTO", 622.2222010294596, -0.05059652775526047, "AUTO_CLAMPED", 683.3333333333334, -0.048949580639600754, "AUTO_CLAMPED"], [-0.04814600944519043, 100.0, "BEZIER", "AUTO", 716.6666666666666, -0.04814600944519043, "AUTO_CLAMPED", 766.6666666666666, -0.04814600944519043, "AUTO_CLAMPED"], [-0.0495946928858757, 50.0, "BEZIER", "AUTO", 783.3333333333334, -0.04814600944519043, "AUTO_CLAMPED", 872.2222010294596, -0.055872321128845215, "AUTO_CLAMPED"], [-0.1901838481426239, 216.66666666666663, "BEZIER", "AUTO", 944.4444656372069, -0.17864137887954712, "AUTO_CLAMPED", 1138.888931274414, -0.209717258810997, "AUTO_CLAMPED"], [-0.209717258810997, 366.66666666666663, "BEZIER", "AUTO", 1261.111068725586, -0.1901838481426239, "AUTO_CLAMPED", 1411.111068725586, -0.21415667235851288, "AUTO_CLAMPED"], [-0.2682616710662842, 83.33333333333326, "BEZIER", "AUTO", 1438.888931274414, -0.2682616710662842, "AUTO_CLAMPED", 1500.0, -0.2682616710662842, "AUTO_CLAMPED"], [0.06351689994335175, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, 0.06351689994335175, "AUTO_CLAMPED", 1594.4444020589192, 0.06351689994335175, "AUTO_CLAMPED"], [0.059162016957998276, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, 0.06351689994335175, "AUTO_CLAMPED", 1716.6666666666665, 0.04871029779314995, "AUTO_CLAMPED"], [0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED", 1916.6666666666667, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 72.22222487131755, -0.0, "AUTO_CLAMPED"], [0.018239933997392654, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.018239933997392654, "AUTO_CLAMPED", 238.88888359069824, 0.018239933997392654, "AUTO_CLAMPED"], [-0.003715081140398979, 66.66666666666663, "BEZIER", "AUTO", 261.11111640930176, -0.003715081140398979, "AUTO_CLAMPED", 316.66666666666663, -0.003715081140398979, "AUTO_CLAMPED"], [0.003378540277481079, 100.0, "BEZIER", "AUTO", 350.0, 0.0009166612289845943, "AUTO_CLAMPED", 444.44443384806317, 0.007891984656453133, "AUTO_CLAMPED"], [0.06673367321491241, 183.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 0.0051122792065143585, "AUTO_CLAMPED", 594.444465637207, 0.09474340081214905, "AUTO_CLAMPED"], [0.13605912029743195, 83.33333333333337, "BEZIER", "AUTO", 622.2222010294596, 0.13605912029743195, "AUTO_CLAMPED", 683.3333333333334, 0.13605912029743195, "AUTO_CLAMPED"], [0.11836071312427521, 100.0, "BEZIER", "AUTO", 716.6666666666666, 0.11836071312427521, "AUTO_CLAMPED", 766.6666666666666, 0.11836071312427521, "AUTO_CLAMPED"], [0.13753235340118408, 50.0, "BEZIER", "AUTO", 783.3333333333334, 0.12769433856010437, "AUTO_CLAMPED", 872.2222010294596, 0.18016371130943298, "AUTO_CLAMPED"], [0.2322661280632019, 216.66666666666663, "BEZIER", "AUTO", 944.4444656372069, 0.2322661280632019, "AUTO_CLAMPED", 1138.888931274414, 0.2322661280632019, "AUTO_CLAMPED"], [0.20868675410747528, 366.66666666666663, "BEZIER", "AUTO", 1261.111068725586, 0.2322661280632019, "AUTO_CLAMPED", 1411.111068725586, 0.20332780480384827, "AUTO_CLAMPED"], [0.15863937139511108, 83.33333333333326, "BEZIER", "AUTO", 1438.888931274414, 0.15863937139511108, "AUTO_CLAMPED", 1500.0, 0.15863937139511108, "AUTO_CLAMPED"], [0.2003980427980423, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, 0.2003980427980423, "AUTO_CLAMPED", 1594.4444020589192, 0.2003980427980423, "AUTO_CLAMPED"], [0.09448619186878204, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, 0.1338554322719574, "AUTO_CLAMPED", 1716.6666666666665, -0.0, "AUTO_CLAMPED"], [-0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, -0.0, "AUTO_CLAMPED", 1916.6666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 72.22222487131755, 0.0, "AUTO_CLAMPED"], [0.04348362237215042, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.04348362237215042, "AUTO_CLAMPED", 238.88888359069824, 0.04348362237215042, "AUTO_CLAMPED"], [0.04043026641011238, 66.66666666666663, "BEZIER", "AUTO", 261.11111640930176, 0.04043026641011238, "AUTO_CLAMPED", 316.66666666666663, 0.04043026641011238, "AUTO_CLAMPED"], [0.0498494915664196, 100.0, "BEZIER", "AUTO", 350.0, 0.04043026641011238, "AUTO_CLAMPED", 444.44443384806317, 0.0671180710196495, "AUTO_CLAMPED"], [0.21255171298980713, 183.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 0.21255171298980713, "AUTO_CLAMPED", 594.444465637207, 0.21255171298980713, "AUTO_CLAMPED"], [0.027551360428333282, 83.33333333333337, "BEZIER", "AUTO", 622.2222010294596, 0.027551360428333282, "AUTO_CLAMPED", 683.3333333333334, 0.027551360428333282, "AUTO_CLAMPED"], [0.09703753143548965, 100.0, "BEZIER", "AUTO", 716.6666666666666, 0.09703753143548965, "AUTO_CLAMPED", 766.6666666666666, 0.09703753143548965, "AUTO_CLAMPED"], [0.024584002792835236, 50.0, "BEZIER", "AUTO", 783.3333333333334, 0.06167126074433327, "AUTO_CLAMPED", 872.2222010294596, -0.13612744212150574, "AUTO_CLAMPED"], [-0.3309659957885742, 216.66666666666663, "BEZIER", "AUTO", 944.4444656372069, -0.3291552662849426, "AUTO_CLAMPED", 1138.888931274414, -0.3340303301811218, "AUTO_CLAMPED"], [-0.3340303301811218, 366.66666666666663, "BEZIER", "AUTO", 1261.111068725586, -0.3340303301811218, "AUTO_CLAMPED", 1411.111068725586, -0.3340303301811218, "AUTO_CLAMPED"], [-0.1700890064239502, 83.33333333333326, "BEZIER", "AUTO", 1438.888931274414, -0.2501014769077301, "AUTO_CLAMPED", 1500.0, -0.07407404482364655, "AUTO_CLAMPED"], [0.016301512718200684, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, 0.016301512718200684, "AUTO_CLAMPED", 1594.4444020589192, 0.016301512718200684, "AUTO_CLAMPED"], [-0.015913818031549454, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, -0.015913818031549454, "AUTO_CLAMPED", 1716.6666666666665, -0.015913818031549454, "AUTO_CLAMPED"], [0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED", 1916.6666666666667, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [3.3686347844983024, 150.0, "BEZIER", "AUTO", 100.0, 3.3686347844983024, "AUTO_CLAMPED", 205.5555502573649, 3.3686347844983024, "AUTO_CLAMPED"], [0.02222707974050119, 166.66666666666663, "BEZIER", "AUTO", 261.11111640930176, 0.02222707974050119, "AUTO_CLAMPED", 350.0, 0.02222707974050119, "AUTO_CLAMPED"], [4.537149524119608, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, 0.022227143106513993, "AUTO_CLAMPED", 494.4444338480631, 15.07196841315016, "AUTO_CLAMPED"], [61.414745582626026, 233.33333333333331, "BEZIER", "AUTO", 572.2222010294596, 61.414745582626026, "AUTO_CLAMPED", 694.444465637207, 61.414745582626026, "AUTO_CLAMPED"], [52.280518454609116, 133.33333333333337, "BEZIER", "AUTO", 738.8888676961262, 61.414745582626026, "AUTO_CLAMPED", 850.0, 38.57917605503646, "AUTO_CLAMPED"], [-71.68136001842309, 199.9999999999999, "BEZIER", "AUTO", 916.6666666666666, -71.68136001842309, "AUTO_CLAMPED", 1105.5555979410808, -71.68136001842309, "AUTO_CLAMPED"], [-67.29034068404862, 366.66666666666674, "BEZIER", "AUTO", 1227.7777353922525, -67.82028823156074, "AUTO_CLAMPED", 1388.888931274414, -67.12171697381935, "AUTO_CLAMPED"], [-53.072130549224426, 116.66666666666652, "BEZIER", "AUTO", 1427.7777353922525, -67.29034068404862, "AUTO_CLAMPED", 1500.0, -40.88509231506237, "AUTO_CLAMPED"], [-7.130840436898373, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, -12.328117499015958, "AUTO_CLAMPED", 1594.4444020589192, -2.7997765030582666, "AUTO_CLAMPED"], [-2.7997762896148553, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, -2.971331431658535, "AUTO_CLAMPED", 1716.6666666666665, -2.388044162153436, "AUTO_CLAMPED"], [0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED", 1916.6666666666667, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [-17.712562234959403, 150.0, "BEZIER", "AUTO", 100.0, -17.712562234959403, "AUTO_CLAMPED", 205.5555502573649, -17.712562234959403, "AUTO_CLAMPED"], [13.30397138517142, 166.66666666666663, "BEZIER", "AUTO", 261.11111640930176, 13.30397138517142, "AUTO_CLAMPED", 350.0, 13.30397138517142, "AUTO_CLAMPED"], [5.758366003376731, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, 5.82466195389499, "AUTO_CLAMPED", 494.4444338480631, 5.603675025280636, "AUTO_CLAMPED"], [5.603675025280636, 233.33333333333331, "BEZIER", "AUTO", 572.2222010294596, 5.603675025280636, "AUTO_CLAMPED", 694.444465637207, 5.603675025280636, "AUTO_CLAMPED"], [6.040763589705493, 133.33333333333337, "BEZIER", "AUTO", 738.8888676961262, 6.040763589705493, "AUTO_CLAMPED", 850.0, 6.040763589705493, "AUTO_CLAMPED"], [-1.4811513876747122, 199.9999999999999, "BEZIER", "AUTO", 916.6666666666666, -1.4811513876747122, "AUTO_CLAMPED", 1105.5555979410808, -1.4811513876747122, "AUTO_CLAMPED"], [-0.9937320130296772, 366.66666666666674, "BEZIER", "AUTO", 1227.7777353922525, -1.4811513876747122, "AUTO_CLAMPED", 1388.888931274414, -0.8386440301880752, "AUTO_CLAMPED"], [5.75973417564485, 116.66666666666652, "BEZIER", "AUTO", 1427.7777353922525, 5.75973417564485, "AUTO_CLAMPED", 1500.0, 5.75973417564485, "AUTO_CLAMPED"], [-7.87355264592462, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, -7.87355264592462, "AUTO_CLAMPED", 1594.4444020589192, -7.87355264592462, "AUTO_CLAMPED"], [-5.935155631645579, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, -6.982968975801712, "AUTO_CLAMPED", 1716.6666666666665, -3.4204037764255912, "AUTO_CLAMPED"], [-0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, -0.0, "AUTO_CLAMPED", 1916.6666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [-3.362418245136533, 150.0, "BEZIER", "AUTO", 100.0, -3.362418245136533, "AUTO_CLAMPED", 205.5555502573649, -3.362418245136533, "AUTO_CLAMPED"], [5.488280686800564, 166.66666666666663, "BEZIER", "AUTO", 261.11111640930176, 5.488280686800564, "AUTO_CLAMPED", 350.0, 5.488280686800564, "AUTO_CLAMPED"], [2.9251945710321565, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, 4.216823897329765, "AUTO_CLAMPED", 494.4444338480631, -0.08860740377234073, "AUTO_CLAMPED"], [-3.2122371128833507, 233.33333333333331, "BEZIER", "AUTO", 572.2222010294596, -3.2122371128833507, "AUTO_CLAMPED", 694.444465637207, -3.2122371128833507, "AUTO_CLAMPED"], [-2.2836878362589266, 133.33333333333337, "BEZIER", "AUTO", 738.8888676961262, -3.2122371128833507, "AUTO_CLAMPED", 850.0, -0.8908639213222903, "AUTO_CLAMPED"], [6.285038902068653, 199.9999999999999, "BEZIER", "AUTO", 916.6666666666666, 6.233289120048405, "AUTO_CLAMPED", 1105.5555979410808, 6.379913644734715, "AUTO_CLAMPED"], [6.379913644734715, 366.66666666666674, "BEZIER", "AUTO", 1227.7777353922525, 6.285038902068653, "AUTO_CLAMPED", 1388.888931274414, 6.410100946432055, "AUTO_CLAMPED"], [24.273973215848397, 116.66666666666652, "BEZIER", "AUTO", 1427.7777353922525, 24.273973215848397, "AUTO_CLAMPED", 1500.0, 24.273973215848397, "AUTO_CLAMPED"], [-30.381999654726528, 100.00000000000023, "BEZIER", "AUTO", 1533.3333333333333, -30.381999654726528, "AUTO_CLAMPED", 1594.4444020589192, -30.381999654726528, "AUTO_CLAMPED"], [-9.056688259237983, 83.33333333333326, "BEZIER", "AUTO", 1622.2222646077473, -12.830308011514791, "AUTO_CLAMPED", 1716.6666666666665, 0.0, "AUTO_CLAMPED"], [0.0, 199.99999999999977, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED", 1916.6666666666667, 0.0, "AUTO_CLAMPED"]]}}, "Cylinder": {"location": {"x": [[-0.0010489225387573242, 0.0, "LINEAR", "AUTO"], [-0.0010489225387573242, 283.3333333333333, "LINEAR", "AUTO"], [-0.07956840097904205, 83.33333333333331, "LINEAR", "AUTO"], [-0.07956840097904205, 1200.0, "LINEAR", "AUTO"], [-0.0010489225387573242, 83.33333333333326, "LINEAR", "AUTO"]], "z": [[0.07426249980926514, 0.0, "LINEAR", "AUTO"], [0.07426249980926514, 283.3333333333333, "LINEAR", "AUTO"], [0.07129553705453873, 83.33333333333331, "LINEAR", "AUTO"], [0.07129553705453873, 1200.0, "LINEAR", "AUTO"], [0.07426249980926514, 83.33333333333326, "LINEAR", "AUTO"]], "y": [[0.10388392210006714, 0.0, "LINEAR", "AUTO"], [0.10388392210006714, 283.3333333333333, "LINEAR", "AUTO"], [0.07195358723402023, 83.33333333333331, "LINEAR", "AUTO"], [0.07195358723402023, 1200.0, "LINEAR", "AUTO"], [0.10388392210006714, 83.33333333333326, "LINEAR", "AUTO"]]}}}}, "offset": {"Cylinder": [-0.0010489225387573242, 0.10388392210006714, 0.07426249980926514], "Grip": [0.0, -1.8214237229585706e-08, -0.0], "Hammer": [0.00012800097465515137, 0.1151699647307396, 0.1478099822998047]}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/spas12.json b/src/main/resources/assets/hbm/models/weapons/animations/spas12.json new file mode 100644 index 000000000..2545eff3c --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/spas12.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"MainBody": {"location": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, -0.0, "AUTO_CLAMPED"], [0.7581773996353149, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 0.7126919627189636, "AUTO_CLAMPED", 33.333333333333336, 0.8946337699890137, "AUTO_CLAMPED"], [0.8946337699890137, 50.0, "BEZIER", "AUTO", 50.0, 0.7581773996353149, "AUTO_CLAMPED", 83.33333333333333, 1.0310901403427124, "AUTO_CLAMPED"], [1.6292921304702759, 50.0, "BEZIER", "AUTO", 100.0, 1.6292921304702759, "AUTO_CLAMPED", 244.44443384806314, 1.6292921304702759, "AUTO_CLAMPED"], [0.27919262647628784, 383.3333333333333, "BEZIER", "AUTO", 372.2222328186035, 0.8619835376739502, "AUTO_CLAMPED", 511.11110051472986, 0.2285151481628418, "AUTO_CLAMPED"], [0.13398613035678864, 33.33333333333337, "BEZIER", "AUTO", 522.2222328186035, 0.1792329102754593, "AUTO_CLAMPED", 555.555534362793, 0.043492577970027924, "AUTO_CLAMPED"], [-0.08360463380813599, 66.66666666666663, "BEZIER", "AUTO", 577.7777989705404, -0.030859101563692093, "AUTO_CLAMPED", 638.8888676961263, -0.17590931057929993, "AUTO_CLAMPED"], [-0.28197288513183594, 116.66666666666663, "BEZIER", "AUTO", 677.7777989705404, -0.20204517245292664, "AUTO_CLAMPED", 750.0, -0.35048234462738037, "AUTO_CLAMPED"], [-0.4585123360157013, 100.0, "BEZIER", "AUTO", 783.3333333333334, -0.4585123360157013, "AUTO_CLAMPED", 905.5555343627929, -0.4585123360157013, "AUTO_CLAMPED"], [-0.0, 266.66666666666663, "BEZIER", "AUTO", 994.444465637207, -0.0, "AUTO_CLAMPED", 1172.2222646077473, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [-0.055255696177482605, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, -0.055255696177482605, "AUTO_CLAMPED", 33.333333333333336, -0.055255696177482605, "AUTO_CLAMPED"], [0.06926095485687256, 50.0, "BEZIER", "AUTO", 50.0, 0.06926095485687256, "AUTO_CLAMPED", 83.33333333333333, 0.06926095485687256, "AUTO_CLAMPED"], [-0.035571567714214325, 50.0, "BEZIER", "AUTO", 100.0, -0.035571567714214325, "AUTO_CLAMPED", 244.44443384806314, -0.035571567714214325, "AUTO_CLAMPED"], [0.14532151818275452, 383.3333333333333, "BEZIER", "AUTO", 372.2222328186035, 0.14532014727592468, "AUTO_CLAMPED", 511.11110051472986, 0.14532163739204407, "AUTO_CLAMPED"], [0.14532163739204407, 33.33333333333337, "BEZIER", "AUTO", 522.2222328186035, 0.14532151818275452, "AUTO_CLAMPED", 555.555534362793, 0.14532187581062317, "AUTO_CLAMPED"], [0.2893771231174469, 66.66666666666663, "BEZIER", "AUTO", 577.7777989705404, 0.2893771231174469, "AUTO_CLAMPED", 638.8888676961263, 0.2893771231174469, "AUTO_CLAMPED"], [0.059010088443756104, 116.66666666666663, "BEZIER", "AUTO", 677.7777989705404, 0.059010088443756104, "AUTO_CLAMPED", 750.0, 0.059010088443756104, "AUTO_CLAMPED"], [0.3883959650993347, 100.0, "BEZIER", "AUTO", 783.3333333333334, 0.3883959650993347, "AUTO_CLAMPED", 905.5555343627929, 0.3883959650993347, "AUTO_CLAMPED"], [0.0, 266.66666666666663, "BEZIER", "AUTO", 994.444465637207, 0.0, "AUTO_CLAMPED", 1172.2222646077473, 0.0, "AUTO_CLAMPED"]], "x": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.09942026436328888, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 0.09942026436328888, "AUTO_CLAMPED", 33.333333333333336, 0.09942026436328888, "AUTO_CLAMPED"], [-0.04042813181877136, 50.0, "BEZIER", "AUTO", 50.0, -0.04042813181877136, "AUTO_CLAMPED", 83.33333333333333, -0.04042813181877136, "AUTO_CLAMPED"], [0.13011114299297333, 50.0, "BEZIER", "AUTO", 100.0, 0.13011114299297333, "AUTO_CLAMPED", 244.44443384806314, 0.13011114299297333, "AUTO_CLAMPED"], [0.026651103049516678, 383.3333333333333, "BEZIER", "AUTO", 372.2222328186035, 0.11272260546684265, "AUTO_CLAMPED", 511.11110051472986, 0.019166624173521996, "AUTO_CLAMPED"], [0.0, 33.33333333333337, "BEZIER", "AUTO", 522.2222328186035, 0.011162804439663887, "AUTO_CLAMPED", 555.555534362793, -0.022325608879327774, "AUTO_CLAMPED"], [-0.11603647470474243, 66.66666666666663, "BEZIER", "AUTO", 577.7777989705404, -0.05728715658187866, "AUTO_CLAMPED", 638.8888676961263, -0.21884778141975403, "AUTO_CLAMPED"], [-0.3945091962814331, 116.66666666666663, "BEZIER", "AUTO", 677.7777989705404, -0.3945091962814331, "AUTO_CLAMPED", 750.0, -0.3945091962814331, "AUTO_CLAMPED"], [-0.30177658796310425, 100.0, "BEZIER", "AUTO", 783.3333333333334, -0.35092929005622864, "AUTO_CLAMPED", 905.5555343627929, -0.1707027107477188, "AUTO_CLAMPED"], [0.0, 266.66666666666663, "BEZIER", "AUTO", 994.444465637207, 0.0, "AUTO_CLAMPED", 1172.2222646077473, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [-8.462898079780109, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, -8.462898079780109, "AUTO_CLAMPED", 44.44444179534912, -8.462898079780109, "AUTO_CLAMPED"], [11.626710005221716, 83.33333333333333, "BEZIER", "AUTO", 72.22222487131755, 11.626710005221716, "AUTO_CLAMPED", 177.77776718139648, 11.626710005221716, "AUTO_CLAMPED"], [1.500494163239071, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, 1.500494163239071, "AUTO_CLAMPED", 405.55556615193683, 1.500494163239071, "AUTO_CLAMPED"], [6.633028929431163, 216.66666666666669, "BEZIER", "AUTO", 477.7777671813965, 4.961353790448882, "AUTO_CLAMPED", 577.7777989705404, 7.275981102987497, "AUTO_CLAMPED"], [8.391754829385256, 83.33333333333326, "BEZIER", "AUTO", 605.555534362793, 7.6542608848848985, "AUTO_CLAMPED", 683.3333333333334, 9.719244783259548, "AUTO_CLAMPED"], [12.210589580193902, 150.0000000000001, "BEZIER", "AUTO", 733.3333333333333, 12.210589580193902, "AUTO_CLAMPED", 805.555534362793, 12.210589580193902, "AUTO_CLAMPED"], [7.617799627548077, 66.66666666666663, "BEZIER", "AUTO", 827.7777989705404, 9.69863554121268, "AUTO_CLAMPED", 888.8888676961263, 3.976336778635024, "AUTO_CLAMPED"], [0.539266273417544, 116.66666666666663, "BEZIER", "AUTO", 927.7777989705404, 1.6551651843761848, "AUTO_CLAMPED", 977.7777989705404, 0.22043800552066753, "AUTO_CLAMPED"], [0.0, 33.33333333333337, "BEZIER", "AUTO", 988.8888676961262, 0.0, "AUTO_CLAMPED", 1011.1111323038738, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, -0.0, "AUTO_CLAMPED"], [-2.3773901342652737, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, -2.3773901342652737, "AUTO_CLAMPED", 122.22222487131755, -2.3773901342652737, "AUTO_CLAMPED"], [-0.0, 316.66666666666663, "BEZIER", "AUTO", 227.77776718139648, -0.0, "AUTO_CLAMPED", 405.55556615193683, -0.0, "AUTO_CLAMPED"], [-0.0, 216.66666666666669, "BEZIER", "AUTO", 477.7777671813965, -0.0, "AUTO_CLAMPED", 577.7777989705404, -0.0, "AUTO_CLAMPED"], [-2.549341854167637, 83.33333333333326, "BEZIER", "AUTO", 605.555534362793, -1.2295183607498625, "AUTO_CLAMPED", 683.3333333333334, -4.925024014253585, "AUTO_CLAMPED"], [-8.612766944322175, 150.0000000000001, "BEZIER", "AUTO", 733.3333333333333, -7.593291201258779, "AUTO_CLAMPED", 805.555534362793, -9.065867179708835, "AUTO_CLAMPED"], [-9.193280943580838, 66.66666666666663, "BEZIER", "AUTO", 827.7777989705404, -9.193280943580838, "AUTO_CLAMPED", 888.8888676961263, -9.193280943580838, "AUTO_CLAMPED"], [-1.0644272457036594, 116.66666666666663, "BEZIER", "AUTO", 927.7777989705404, -3.4164384247255755, "AUTO_CLAMPED", 977.7777989705404, -0.3924239830905869, "AUTO_CLAMPED"], [-0.0, 33.33333333333337, "BEZIER", "AUTO", 988.8888676961262, -0.0, "AUTO_CLAMPED", 1011.1111323038738, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [-2.661507434160998, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, -2.661507434160998, "AUTO_CLAMPED", 122.22222487131755, -2.661507434160998, "AUTO_CLAMPED"], [-0.0, 316.66666666666663, "BEZIER", "AUTO", 227.77776718139648, -0.0, "AUTO_CLAMPED", 405.55556615193683, -0.0, "AUTO_CLAMPED"], [0.0, 216.66666666666669, "BEZIER", "AUTO", 477.7777671813965, 0.0, "AUTO_CLAMPED", 577.7777989705404, 0.0, "AUTO_CLAMPED"], [2.434119977964107, 83.33333333333326, "BEZIER", "AUTO", 605.555534362793, 2.434119977964107, "AUTO_CLAMPED", 683.3333333333334, 2.434119977964107, "AUTO_CLAMPED"], [-1.813550761204728, 150.0000000000001, "BEZIER", "AUTO", 733.3333333333333, 1.9640603828683056, "AUTO_CLAMPED", 805.555534362793, -3.4924891660390824, "AUTO_CLAMPED"], [-5.824772090695357, 66.66666666666663, "BEZIER", "AUTO", 827.7777989705404, -5.824772090695357, "AUTO_CLAMPED", 888.8888676961263, -5.824772090695357, "AUTO_CLAMPED"], [-0.9415905623492115, 116.66666666666663, "BEZIER", "AUTO", 927.7777989705404, -2.7657766751435897, "AUTO_CLAMPED", 977.7777989705404, -0.42039451487628826, "AUTO_CLAMPED"], [0.0, 33.33333333333337, "BEZIER", "AUTO", 988.8888676961262, 0.0, "AUTO_CLAMPED", 1011.1111323038738, 0.0, "AUTO_CLAMPED"]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0, "LINEAR", "AUTO"], [-0.0, 550.0, "BEZIER", "AUTO", 583.3333333333334, -0.0, "AUTO_CLAMPED"], [1.3243759870529175, 100.0, "BEZIER", "AUTO", 616.6666666666667, 1.3243759870529175, "AUTO_CLAMPED", 722.2222010294597, 1.3243759870529175, "AUTO_CLAMPED"], [1.0643759965896606, 216.66666666666674, "BEZIER", "AUTO", 794.444465637207, 1.3243759870529175, "AUTO_CLAMPED", 888.8888676961263, 0.9843760132789612, "AUTO_CLAMPED"], [-0.0, 66.66666666666663, "BEZIER", "AUTO", 911.1111323038737, -0.0, "AUTO_CLAMPED", 955.555534362793, -0.0, "AUTO_CLAMPED"]]}}}, "FireAlt": {"MainBody": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 72.22222487131755, 0.0, "AUTO_CLAMPED"], [0.0, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.0, "AUTO_CLAMPED", 383.3333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 499.99999999999994, "BEZIER", "AUTO", 550.0, 0.0, "AUTO_CLAMPED", 738.8888676961262, 0.0, "AUTO_CLAMPED"], [-0.11603647470474243, 66.66666666666674, "BEZIER", "AUTO", 761.1111323038738, -0.03429786115884781, "AUTO_CLAMPED", 811.1111323038737, -0.21820974349975586, "AUTO_CLAMPED"], [-0.3945091962814331, 83.33333333333337, "BEZIER", "AUTO", 838.8888676961262, -0.3945091962814331, "AUTO_CLAMPED", 894.444465637207, -0.3945091962814331, "AUTO_CLAMPED"], [-0.30177658796310425, 83.33333333333326, "BEZIER", "AUTO", 922.2222010294596, -0.34912535548210144, "AUTO_CLAMPED", 1033.3333333333333, -0.15973030030727386, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 1116.6666666666667, 0.0, "AUTO_CLAMPED", 1283.3333333333333, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [1.8780767917633057, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 1.8780767917633057, "AUTO_CLAMPED", 94.44444974263509, 1.8780767917633057, "AUTO_CLAMPED"], [0.46677228808403015, 183.33333333333334, "BEZIER", "AUTO", 155.5555502573649, 0.5887938737869263, "AUTO_CLAMPED", 383.3333333333333, 0.13398614525794983, "AUTO_CLAMPED"], [0.13398613035678864, 499.99999999999994, "BEZIER", "AUTO", 550.0, 0.46677225828170776, "AUTO_CLAMPED", 738.8888676961262, 0.08961464464664459, "AUTO_CLAMPED"], [-0.08360463380813599, 66.66666666666674, "BEZIER", "AUTO", 761.1111323038738, -0.01296059787273407, "AUTO_CLAMPED", 811.1111323038737, -0.17190967500209808, "AUTO_CLAMPED"], [-0.28197288513183594, 83.33333333333337, "BEZIER", "AUTO", 838.8888676961262, -0.21032220125198364, "AUTO_CLAMPED", 894.444465637207, -0.35362356901168823, "AUTO_CLAMPED"], [-0.4585123360157013, 83.33333333333326, "BEZIER", "AUTO", 922.2222010294596, -0.4585123360157013, "AUTO_CLAMPED", 1033.3333333333333, -0.4585123360157013, "AUTO_CLAMPED"], [-0.0, 250.0, "BEZIER", "AUTO", 1116.6666666666667, -0.0, "AUTO_CLAMPED", 1283.3333333333333, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.7429239749908447, 50.0, "BEZIER", "AUTO", 33.333333333333336, 0.6434348821640015, "AUTO_CLAMPED", 105.5555502573649, 1.0745543241500854, "AUTO_CLAMPED"], [1.0745543241500854, 166.66666666666669, "BEZIER", "AUTO", 161.11111640930176, 1.0745543241500854, "AUTO_CLAMPED", 383.3333333333333, 1.0745543241500854, "AUTO_CLAMPED"], [0.14532163739204407, 499.99999999999994, "BEZIER", "AUTO", 550.0, 0.14532163739204407, "AUTO_CLAMPED", 738.8888676961262, 0.14532163739204407, "AUTO_CLAMPED"], [0.2893771231174469, 66.66666666666674, "BEZIER", "AUTO", 761.1111323038738, 0.2893771231174469, "AUTO_CLAMPED", 811.1111323038737, 0.2893771231174469, "AUTO_CLAMPED"], [0.059010088443756104, 83.33333333333337, "BEZIER", "AUTO", 838.8888676961262, 0.059010088443756104, "AUTO_CLAMPED", 894.444465637207, 0.059010088443756104, "AUTO_CLAMPED"], [0.3883959650993347, 83.33333333333326, "BEZIER", "AUTO", 922.2222010294596, 0.3883959650993347, "AUTO_CLAMPED", 1033.3333333333333, 0.3883959650993347, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 1116.6666666666667, 0.0, "AUTO_CLAMPED", 1283.3333333333333, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 0.0, "AUTO_CLAMPED", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [17.70531540425002, 116.66666666666667, "BEZIER", "AUTO", 94.44444974263509, 17.70531540425002, "AUTO_CLAMPED", 150.0, 17.70531540425002, "AUTO_CLAMPED"], [13.903672239582296, 49.99999999999997, "BEZIER", "AUTO", 166.66666666666666, 15.701645260280928, "AUTO_CLAMPED", 222.22221692403158, 9.70840015040486, "AUTO_CLAMPED"], [6.633028929431163, 116.66666666666669, "BEZIER", "AUTO", 261.11111640930176, 6.633028929431163, "AUTO_CLAMPED", 472.2222010294596, 6.633028929431163, "AUTO_CLAMPED"], [8.546770241466927, 516.6666666666666, "BEZIER", "AUTO", 644.444465637207, 6.633028929431163, "AUTO_CLAMPED", 850.0, 8.917171400156718, "AUTO_CLAMPED"], [12.210589580193902, 100.0, "BEZIER", "AUTO", 883.3333333333333, 12.210589580193902, "AUTO_CLAMPED", 938.8888676961263, 12.210589580193902, "AUTO_CLAMPED"], [7.269988465764457, 66.66666666666663, "BEZIER", "AUTO", 961.1111323038737, 9.449915910133958, "AUTO_CLAMPED", 1038.8888676961262, 1.8201694279538818, "AUTO_CLAMPED"], [0.0, 166.66666666666674, "BEZIER", "AUTO", 1094.4444020589192, 0.0, "AUTO_CLAMPED", 1205.5555979410808, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-11.299828250602307, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -11.299828250602307, "AUTO_CLAMPED", 188.88888359069824, -11.299828250602307, "AUTO_CLAMPED"], [-0.0, 166.66666666666666, "BEZIER", "AUTO", 244.4444497426351, -0.0, "AUTO_CLAMPED", 472.2222010294596, -0.0, "AUTO_CLAMPED"], [-2.5606105990811003, 516.6666666666666, "BEZIER", "AUTO", 644.444465637207, -0.0, "AUTO_CLAMPED", 850.0, -3.0562125403518103, "AUTO_CLAMPED"], [-8.612766944322175, 100.0, "BEZIER", "AUTO", 883.3333333333333, -5.840664660233507, "AUTO_CLAMPED", 938.8888676961263, -10.46083513371462, "AUTO_CLAMPED"], [-12.303416119882606, 66.66666666666663, "BEZIER", "AUTO", 961.1111323038737, -12.303416119882606, "AUTO_CLAMPED", 1038.8888676961262, -12.303416119882606, "AUTO_CLAMPED"], [-0.0, 166.66666666666674, "BEZIER", "AUTO", 1094.4444020589192, -0.0, "AUTO_CLAMPED", 1205.5555979410808, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [-1.977470392086568, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -1.977470392086568, "AUTO_CLAMPED", 188.88888359069824, -1.977470392086568, "AUTO_CLAMPED"], [0.0, 166.66666666666666, "BEZIER", "AUTO", 244.4444497426351, -0.9796583015231601, "AUTO_CLAMPED", 472.2222010294596, 3.0369407347217963, "AUTO_CLAMPED"], [5.899426058323597, 516.6666666666666, "BEZIER", "AUTO", 644.444465637207, 5.899426058323597, "AUTO_CLAMPED", 850.0, 5.899426058323597, "AUTO_CLAMPED"], [-1.813550761204728, 100.0, "BEZIER", "AUTO", 883.3333333333333, 1.7061153006550123, "AUTO_CLAMPED", 938.8888676961263, -4.159995015887966, "AUTO_CLAMPED"], [-6.207043691275808, 66.66666666666663, "BEZIER", "AUTO", 961.1111323038737, -6.207043691275808, "AUTO_CLAMPED", 1038.8888676961262, -6.207043691275808, "AUTO_CLAMPED"], [0.0, 166.66666666666674, "BEZIER", "AUTO", 1094.4444020589192, 0.0, "AUTO_CLAMPED", 1205.5555979410808, 0.0, "AUTO_CLAMPED"]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0, "LINEAR", "AUTO"], [-0.0, 816.6666666666666, "BEZIER", "AUTO", 850.0, -0.0, "AUTO_CLAMPED"], [1.3243759870529175, 100.0, "BEZIER", "AUTO", 883.3333333333333, 1.3243759870529175, "AUTO_CLAMPED", 988.8888676961262, 1.3243759870529175, "AUTO_CLAMPED"], [1.0643759965896606, 216.66666666666663, "BEZIER", "AUTO", 1061.1111323038738, 1.3243759870529175, "AUTO_CLAMPED", 1155.5555979410808, 0.9843760132789612, "AUTO_CLAMPED"], [-0.0, 66.66666666666674, "LINEAR", "AUTO", 1177.7777353922525, -0.0, "AUTO_CLAMPED"]]}}}, "FireDry": {"MainBody": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 166.66666666666666, 0.0, "AUTO_CLAMPED", 327.7777671813965, 0.0, "AUTO_CLAMPED"], [-0.14821384847164154, 233.33333333333331, "BEZIER", "AUTO", 405.55556615193683, -0.10107992589473724, "AUTO_CLAMPED", 533.3333333333334, -0.17851422727108002, "AUTO_CLAMPED"], [-0.18652059137821198, 149.99999999999994, "BEZIER", "AUTO", 583.3333333333334, -0.18652059137821198, "AUTO_CLAMPED", 694.444465637207, -0.18652059137821198, "AUTO_CLAMPED"], [-0.1720721423625946, 183.33333333333337, "BEZIER", "AUTO", 755.555534362793, -0.1720721423625946, "AUTO_CLAMPED", 850.0, -0.1720721423625946, "AUTO_CLAMPED"], [-0.21047449111938477, 100.0, "BEZIER", "AUTO", 883.3333333333333, -0.21047449111938477, "AUTO_CLAMPED", 961.1111323038737, -0.21047449111938477, "AUTO_CLAMPED"], [-0.16133126616477966, 133.33333333333337, "BEZIER", "AUTO", 1005.5555343627929, -0.1923203021287918, "AUTO_CLAMPED", 1133.3333333333333, -0.10322683304548264, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 1216.6666666666665, 0.0, "AUTO_CLAMPED", 1383.3333333333333, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, -0.0, "AUTO_CLAMPED"], [-0.0, 250.0, "BEZIER", "AUTO", 166.66666666666666, -0.0, "AUTO_CLAMPED", 327.7777671813965, -0.0, "AUTO_CLAMPED"], [-0.1766490787267685, 233.33333333333331, "BEZIER", "AUTO", 405.55556615193683, -0.08031249046325684, "AUTO_CLAMPED", 533.3333333333334, -0.23857975006103516, "AUTO_CLAMPED"], [-0.3071326017379761, 149.99999999999994, "BEZIER", "AUTO", 583.3333333333334, -0.3071326017379761, "AUTO_CLAMPED", 694.444465637207, -0.3071326017379761, "AUTO_CLAMPED"], [0.25795137882232666, 183.33333333333337, "BEZIER", "AUTO", 755.555534362793, 0.25795137882232666, "AUTO_CLAMPED", 850.0, 0.25795137882232666, "AUTO_CLAMPED"], [0.08236825466156006, 100.0, "BEZIER", "AUTO", 883.3333333333333, 0.15054117143154144, "AUTO_CLAMPED", 961.1111323038737, -0.008528970181941986, "AUTO_CLAMPED"], [-0.02967098355293274, 133.33333333333337, "BEZIER", "AUTO", 1005.5555343627929, -0.02967098355293274, "AUTO_CLAMPED", 1133.3333333333333, -0.02967098355293274, "AUTO_CLAMPED"], [-0.0, 250.0, "BEZIER", "AUTO", 1216.6666666666665, -0.0, "AUTO_CLAMPED", 1383.3333333333333, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 166.66666666666666, 0.0, "AUTO_CLAMPED", 327.7777671813965, 0.0, "AUTO_CLAMPED"], [0.30453160405158997, 233.33333333333331, "BEZIER", "AUTO", 405.55556615193683, 0.30453160405158997, "AUTO_CLAMPED", 533.3333333333334, 0.30453160405158997, "AUTO_CLAMPED"], [-0.02473139762878418, 149.99999999999994, "BEZIER", "AUTO", 583.3333333333334, 0.09544896334409714, "AUTO_CLAMPED", 694.444465637207, -0.1716185063123703, "AUTO_CLAMPED"], [-0.185700923204422, 183.33333333333337, "BEZIER", "AUTO", 755.555534362793, -0.185700923204422, "AUTO_CLAMPED", 850.0, -0.185700923204422, "AUTO_CLAMPED"], [-0.015024490654468536, 100.0, "BEZIER", "AUTO", 883.3333333333333, -0.08966775238513947, "AUTO_CLAMPED", 961.1111323038737, 0.08449985831975937, "AUTO_CLAMPED"], [0.14599764347076416, 133.33333333333337, "BEZIER", "AUTO", 1005.5555343627929, 0.14599764347076416, "AUTO_CLAMPED", 1133.3333333333333, 0.14599764347076416, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 1216.6666666666665, 0.0, "AUTO_CLAMPED", 1383.3333333333333, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 166.66666666666666, 0.0, "AUTO_CLAMPED", 327.7777671813965, 0.0, "AUTO_CLAMPED"], [10.013142700603318, 233.33333333333331, "BEZIER", "AUTO", 405.55556615193683, 10.013142700603318, "AUTO_CLAMPED", 533.3333333333334, 10.013142700603318, "AUTO_CLAMPED"], [8.468210259407087, 149.99999999999994, "BEZIER", "AUTO", 583.3333333333334, 9.67957333701282, "AUTO_CLAMPED", 683.3333333333334, 7.256847181801352, "AUTO_CLAMPED"], [3.8440996205485227, 150.0000000000001, "BEZIER", "AUTO", 733.3333333333333, 5.167689536406736, "AUTO_CLAMPED", 838.8888676961262, 2.3734442059157104, "AUTO_CLAMPED"], [1.3950524775967643, 166.66666666666663, "BEZIER", "AUTO", 894.444465637207, 1.8479337200431605, "AUTO_CLAMPED", 1050.0, 0.5798664653088336, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 1150.0, 0.0, "AUTO_CLAMPED", 1350.0, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, -0.0, "AUTO_CLAMPED"], [-0.0, 250.0, "BEZIER", "AUTO", 166.66666666666666, -0.0, "AUTO_CLAMPED", 327.7777671813965, -0.0, "AUTO_CLAMPED"], [-1.0905663796572982, 233.33333333333331, "BEZIER", "AUTO", 405.55556615193683, -1.0905663796572982, "AUTO_CLAMPED", 533.3333333333334, -1.0905663796572982, "AUTO_CLAMPED"], [-0.9023532600016038, 149.99999999999994, "BEZIER", "AUTO", 583.3333333333334, -1.0494438383770615, "AUTO_CLAMPED", 683.3333333333334, -0.7552627349869991, "AUTO_CLAMPED"], [-0.31931371825604976, 150.0000000000001, "BEZIER", "AUTO", 733.3333333333333, -0.5022042795988796, "AUTO_CLAMPED", 838.8888676961262, -0.1161019967708965, "AUTO_CLAMPED"], [0.0004827262459451294, 166.66666666666663, "BEZIER", "AUTO", 894.444465637207, 0.0004827262459451294, "AUTO_CLAMPED", 1050.0, 0.0004827262459451294, "AUTO_CLAMPED"], [-0.0, 300.0, "BEZIER", "AUTO", 1150.0, -0.0, "AUTO_CLAMPED", 1350.0, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 166.66666666666666, 0.0, "AUTO_CLAMPED", 327.7777671813965, 0.0, "AUTO_CLAMPED"], [-1.2307371226298867, 233.33333333333331, "BEZIER", "AUTO", 405.55556615193683, -1.2307371226298867, "AUTO_CLAMPED", 533.3333333333334, -1.2307371226298867, "AUTO_CLAMPED"], [-1.1005413373315729, 149.99999999999994, "BEZIER", "AUTO", 583.3333333333334, -1.2009474660082877, "AUTO_CLAMPED", 683.3333333333334, -1.0001352086548583, "AUTO_CLAMPED"], [-0.741974762039298, 150.0000000000001, "BEZIER", "AUTO", 733.3333333333333, -0.8291126079230281, "AUTO_CLAMPED", 838.8888676961262, -0.6451549095636632, "AUTO_CLAMPED"], [-0.5715324072218015, 166.66666666666663, "BEZIER", "AUTO", 894.444465637207, -0.6518964129961715, "AUTO_CLAMPED", 1050.0, -0.42687716481142374, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 1150.0, 0.0, "AUTO_CLAMPED", 1350.0, 0.0, "AUTO_CLAMPED"]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0, "LINEAR", "AUTO"], [-0.0, 550.0, "BEZIER", "AUTO", 583.3333333333334, -0.0, "AUTO_CLAMPED"], [1.3243759870529175, 100.0, "BEZIER", "AUTO", 616.6666666666667, 1.3243759870529175, "AUTO_CLAMPED", 722.2222010294597, 1.3243759870529175, "AUTO_CLAMPED"], [1.0643759965896606, 216.66666666666674, "BEZIER", "AUTO", 794.444465637207, 1.3243759870529175, "AUTO_CLAMPED", 888.8888676961263, 0.9843760132789612, "AUTO_CLAMPED"], [-0.0, 66.66666666666663, "BEZIER", "AUTO", 911.1111323038737, -0.0, "AUTO_CLAMPED", 955.555534362793, -0.0, "AUTO_CLAMPED"]]}}}, "Inspect": {"MainBody": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 105.55555820465088, 0.0, "AUTO_CLAMPED"], [-0.26629936695098877, 316.66666666666663, "BEZIER", "AUTO", 211.1111005147298, -0.26629936695098877, "AUTO_CLAMPED", 338.8888994852702, -0.26629936695098877, "AUTO_CLAMPED"], [-0.017356067895889282, 66.66666666666669, "BEZIER", "AUTO", 361.11110051472986, -0.1009325236082077, "AUTO_CLAMPED", 405.55556615193683, 0.06622038781642914, "AUTO_CLAMPED"], [0.11843034625053406, 66.66666666666669, "BEZIER", "AUTO", 427.7777671813965, 0.06800641119480133, "AUTO_CLAMPED", 483.3333333333333, 0.19406625628471375, "AUTO_CLAMPED"], [0.5941287279129028, 100.0, "BEZIER", "AUTO", 516.6666666666666, 0.37913745641708374, "AUTO_CLAMPED", 611.1111323038737, 0.9882794618606567, "AUTO_CLAMPED"], [1.6117087602615356, 183.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 1.4829950332641602, "AUTO_CLAMPED", 766.6666666666666, 1.6819162368774414, "AUTO_CLAMPED"], [1.6819162368774414, 100.00000000000011, "BEZIER", "AUTO", 800.0, 1.6819162368774414, "AUTO_CLAMPED", 866.6666666666667, 1.6819162368774414, "AUTO_CLAMPED"], [1.6105526685714722, 100.0, "BEZIER", "AUTO", 900.0, 1.6105526685714722, "AUTO_CLAMPED", 983.3333333333333, 1.6105526685714722, "AUTO_CLAMPED"], [1.7710378170013428, 149.9999999999999, "BEZIER", "AUTO", 1033.3333333333333, 1.7710378170013428, "AUTO_CLAMPED", 1116.6666666666667, 1.7710378170013428, "AUTO_CLAMPED"], [1.6593616008758545, 100.0, "BEZIER", "AUTO", 1150.0, 1.7710378170013428, "AUTO_CLAMPED", 1255.5555979410806, 1.4173964262008667, "AUTO_CLAMPED"], [0.0, 216.66666666666674, "BEZIER", "AUTO", 1327.7777353922527, 0.0, "AUTO_CLAMPED", 1472.2222646077473, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 105.55555820465088, -0.0, "AUTO_CLAMPED"], [-2.5266575813293457, 316.66666666666663, "BEZIER", "AUTO", 211.1111005147298, -2.5266575813293457, "AUTO_CLAMPED", 338.8888994852702, -2.5266575813293457, "AUTO_CLAMPED"], [-2.423205614089966, 66.66666666666669, "BEZIER", "AUTO", 361.11110051472986, -2.4301905632019043, "AUTO_CLAMPED", 405.55556615193683, -2.4162206649780273, "AUTO_CLAMPED"], [-2.4162206649780273, 66.66666666666669, "BEZIER", "AUTO", 427.7777671813965, -2.4162206649780273, "AUTO_CLAMPED", 483.3333333333333, -2.4162206649780273, "AUTO_CLAMPED"], [-2.464684247970581, 100.0, "BEZIER", "AUTO", 516.6666666666666, -2.4381086826324463, "AUTO_CLAMPED", 611.1111323038737, -2.513406276702881, "AUTO_CLAMPED"], [-2.631500720977783, 183.33333333333326, "BEZIER", "AUTO", 672.2222010294596, -2.5778839588165283, "AUTO_CLAMPED", 766.6666666666666, -2.6607463359832764, "AUTO_CLAMPED"], [-2.686760425567627, 100.00000000000011, "BEZIER", "AUTO", 800.0, -2.686760425567627, "AUTO_CLAMPED", 866.6666666666667, -2.686760425567627, "AUTO_CLAMPED"], [-2.6478917598724365, 100.0, "BEZIER", "AUTO", 900.0, -2.679433584213257, "AUTO_CLAMPED", 983.3333333333333, -2.600579023361206, "AUTO_CLAMPED"], [-2.4987831115722656, 149.9999999999999, "BEZIER", "AUTO", 1033.3333333333333, -2.4987831115722656, "AUTO_CLAMPED", 1116.6666666666667, -2.4987831115722656, "AUTO_CLAMPED"], [-2.541956901550293, 100.0, "BEZIER", "AUTO", 1150.0, -2.541956901550293, "AUTO_CLAMPED", 1255.5555979410806, -2.541956901550293, "AUTO_CLAMPED"], [-0.0, 216.66666666666674, "BEZIER", "AUTO", 1327.7777353922527, -0.0, "AUTO_CLAMPED", 1472.2222646077473, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 105.55555820465088, 0.0, "AUTO_CLAMPED"], [1.279327630996704, 316.66666666666663, "BEZIER", "AUTO", 211.1111005147298, 1.018487572669983, "AUTO_CLAMPED", 338.8888994852702, 1.334241271018982, "AUTO_CLAMPED"], [1.3850702047348022, 66.66666666666669, "BEZIER", "AUTO", 361.11110051472986, 1.3555750846862793, "AUTO_CLAMPED", 405.55556615193683, 1.4145653247833252, "AUTO_CLAMPED"], [1.5013269186019897, 66.66666666666669, "BEZIER", "AUTO", 427.7777671813965, 1.4522218704223633, "AUTO_CLAMPED", 483.3333333333333, 1.5749845504760742, "AUTO_CLAMPED"], [1.6744012832641602, 100.0, "BEZIER", "AUTO", 516.6666666666666, 1.6744012832641602, "AUTO_CLAMPED", 611.1111323038737, 1.6744012832641602, "AUTO_CLAMPED"], [1.6744012832641602, 183.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 1.6744012832641602, "AUTO_CLAMPED", 766.6666666666666, 1.6744012832641602, "AUTO_CLAMPED"], [1.9445902109146118, 100.00000000000011, "BEZIER", "AUTO", 800.0, 1.9445902109146118, "AUTO_CLAMPED", 866.6666666666667, 1.9445902109146118, "AUTO_CLAMPED"], [1.8480366468429565, 100.0, "BEZIER", "AUTO", 900.0, 1.8963457345962524, "AUTO_CLAMPED", 983.3333333333333, 1.7755730152130127, "AUTO_CLAMPED"], [1.702963948249817, 149.9999999999999, "BEZIER", "AUTO", 1033.3333333333333, 1.702963948249817, "AUTO_CLAMPED", 1116.6666666666667, 1.702963948249817, "AUTO_CLAMPED"], [1.7295565605163574, 100.0, "BEZIER", "AUTO", 1150.0, 1.7295565605163574, "AUTO_CLAMPED", 1255.5555979410806, 1.7295565605163574, "AUTO_CLAMPED"], [0.0, 216.66666666666674, "BEZIER", "AUTO", 1327.7777353922527, 0.0, "AUTO_CLAMPED", 1472.2222646077473, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, 0.0, "AUTO_CLAMPED"], [45.21538785262085, 250.0, "BEZIER", "AUTO", 166.66666666666666, 45.21538785262085, "AUTO_CLAMPED", 350.0, 45.21538785262085, "AUTO_CLAMPED"], [24.574402501585993, 300.0, "BEZIER", "AUTO", 450.0, 33.5531540335259, "AUTO_CLAMPED", 644.444465637207, 16.094471637563164, "AUTO_CLAMPED"], [10.008142148357223, 283.33333333333337, "BEZIER", "AUTO", 738.8888676961262, 10.008142148357223, "AUTO_CLAMPED", 866.6666666666667, 10.008142148357223, "AUTO_CLAMPED"], [17.11625256947144, 100.0, "BEZIER", "AUTO", 900.0, 17.11625256947144, "AUTO_CLAMPED", 983.3333333333333, 17.11625256947144, "AUTO_CLAMPED"], [13.858683491066714, 149.9999999999999, "BEZIER", "AUTO", 1033.3333333333333, 14.0008146050528, "AUTO_CLAMPED", 1127.7777353922527, 13.73234462821534, "AUTO_CLAMPED"], [13.73234462821534, 133.33333333333326, "BEZIER", "AUTO", 1172.2222646077473, 13.858683491066714, "AUTO_CLAMPED", 1322.2222646077473, 13.43229014910845, "AUTO_CLAMPED"], [0.0, 316.66666666666674, "BEZIER", "AUTO", 1427.7777353922525, 0.0, "AUTO_CLAMPED", 1638.8889312744138, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, -0.0, "AUTO_CLAMPED"], [64.57814769671742, 250.0, "BEZIER", "AUTO", 166.66666666666666, 50.78887685686462, "AUTO_CLAMPED", 350.0, 81.12527133850297, "AUTO_CLAMPED"], [81.12527133850297, 300.0, "BEZIER", "AUTO", 450.0, 78.5323334540802, "AUTO_CLAMPED", 644.444465637207, 83.57416053333017, "AUTO_CLAMPED"], [90.64872021146763, 283.33333333333337, "BEZIER", "AUTO", 738.8888676961262, 90.64872021146763, "AUTO_CLAMPED", 866.6666666666667, 90.64872021146763, "AUTO_CLAMPED"], [89.44265906820513, 100.0, "BEZIER", "AUTO", 900.0, 89.44265906820513, "AUTO_CLAMPED", 983.3333333333333, 89.44265906820513, "AUTO_CLAMPED"], [92.26923723356653, 149.9999999999999, "BEZIER", "AUTO", 1033.3333333333333, 92.26923723356653, "AUTO_CLAMPED", 1127.7777353922527, 92.26923723356653, "AUTO_CLAMPED"], [90.42948479948856, 133.33333333333326, "BEZIER", "AUTO", 1172.2222646077473, 92.26923723356653, "AUTO_CLAMPED", 1322.2222646077473, 86.06006935345884, "AUTO_CLAMPED"], [-0.0, 316.66666666666674, "BEZIER", "AUTO", 1427.7777353922525, -0.0, "AUTO_CLAMPED", 1638.8889312744138, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, 0.0, "AUTO_CLAMPED"], [51.0063774007945, 250.0, "BEZIER", "AUTO", 166.66666666666666, 47.77261409296821, "AUTO_CLAMPED", 350.0, 54.88689473622389, "AUTO_CLAMPED"], [54.88689473622389, 300.0, "BEZIER", "AUTO", 450.0, 53.85283141664063, "AUTO_CLAMPED", 644.444465637207, 55.86351274979275, "AUTO_CLAMPED"], [58.68484874496615, 283.33333333333337, "BEZIER", "AUTO", 738.8888676961262, 58.68484874496615, "AUTO_CLAMPED", 866.6666666666667, 58.68484874496615, "AUTO_CLAMPED"], [58.346330909321985, 100.0, "BEZIER", "AUTO", 900.0, 58.346330909321985, "AUTO_CLAMPED", 983.3333333333333, 58.346330909321985, "AUTO_CLAMPED"], [59.502880011291076, 149.9999999999999, "BEZIER", "AUTO", 1033.3333333333333, 59.502880011291076, "AUTO_CLAMPED", 1127.7777353922527, 59.502880011291076, "AUTO_CLAMPED"], [57.137930426268746, 133.33333333333326, "BEZIER", "AUTO", 1172.2222646077473, 59.502880011291076, "AUTO_CLAMPED", 1322.2222646077473, 51.52117558872753, "AUTO_CLAMPED"], [0.0, 316.66666666666674, "BEZIER", "AUTO", 1427.7777353922525, 0.0, "AUTO_CLAMPED", 1638.8889312744138, 0.0, "AUTO_CLAMPED"]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 77.77777512868245, -0.0, "AUTO_CLAMPED"], [-0.0, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, -0.0, "AUTO_CLAMPED", 272.2222328186035, -0.0, "AUTO_CLAMPED"], [1.0609124898910522, 116.66666666666666, "BEZIER", "AUTO", 311.1111005147298, 1.0609124898910522, "AUTO_CLAMPED", 550.0, 1.0609124898910522, "AUTO_CLAMPED"], [1.0609124898910522, 600.0, "QUAD", "EASE_IN", 750.0, 1.0609124898910522, "AUTO_CLAMPED"], [-0.0, 133.33333333333326, "BEZIER", "AUTO", 1127.7777353922527, -0.0, "AUTO_CLAMPED"]]}}, "Shell": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 77.77776718139648, 0.0, "AUTO_CLAMPED"], [0.09711318463087082, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, 0.09711318463087082, "AUTO_CLAMPED", 266.6666666666667, 0.09711318463087082, "AUTO_CLAMPED"], [0.09711318463087082, 99.99999999999997, "BEZIER", "AUTO", 300.0, 0.09711318463087082, "AUTO_CLAMPED", 338.8888994852702, 0.09711318463087082, "AUTO_CLAMPED"], [0.1717265248298645, 16.666666666666686, "QUAD", "EASE_OUT", 344.44443384806317, 0.12953773140907288, "AUTO_CLAMPED"], [3.2667922973632812, 233.33333333333337, "QUAD", "EASE_IN_OUT"], [0.23389390110969543, 233.33333333333326, "QUAD", "EASE_OUT"], [0.3322022557258606, 50.000000000000114, "QUAD", "EASE_IN_OUT"], [0.09610268473625183, 83.33333333333326, "QUAD", "EASE_IN"], [0.0961027443408966, 133.33333333333326, "BEZIER", "AUTO", 1127.7777353922527, 0.0961027443408966, "AUTO_CLAMPED"]], "z": [[-2.9000000953674316, 0.0, "BEZIER", "AUTO", 77.77776718139648, -2.9000000953674316, "AUTO_CLAMPED"], [-2.731125831604004, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, -2.9000000953674316, "AUTO_CLAMPED", 266.6666666666667, -2.6587512493133545, "AUTO_CLAMPED"], [-1.736064076423645, 99.99999999999997, "BEZIER", "AUTO", 300.0, -1.9049280881881714, "AUTO_CLAMPED", 338.8888994852702, -1.7079200744628906, "AUTO_CLAMPED"], [-1.696025013923645, 16.666666666666686, "QUAD", "EASE_OUT", 344.44443384806317, -1.696025013923645, "AUTO_CLAMPED"], [-2.1708288192749023, 233.33333333333337, "QUAD", "EASE_IN_OUT"], [-1.8607081174850464, 233.33333333333326, "QUAD", "EASE_OUT"], [-1.8212902545928955, 50.000000000000114, "QUAD", "EASE_IN_OUT"], [-1.7331995964050293, 83.33333333333326, "QUAD", "EASE_IN"], [-2.7515883445739746, 133.33333333333326, "BEZIER", "AUTO", 1127.7777353922527, -2.7515883445739746, "AUTO_CLAMPED"]], "y": [[1.600000023841858, 0.0, "BEZIER", "AUTO", 77.77776718139648, 1.600000023841858, "AUTO_CLAMPED"], [1.6872104406356812, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, 1.6872104406356812, "AUTO_CLAMPED", 266.6666666666667, 1.6872104406356812, "AUTO_CLAMPED"], [1.6872104406356812, 99.99999999999997, "BEZIER", "AUTO", 300.0, 1.6872104406356812, "AUTO_CLAMPED", 338.8888994852702, 1.6872104406356812, "AUTO_CLAMPED"], [1.6872103214263916, 16.666666666666686, "QUAD", "EASE_OUT", 344.44443384806317, 1.6872104406356812, "AUTO_CLAMPED"], [0.6765189170837402, 233.33333333333337, "QUAD", "EASE_IN_OUT"], [1.718790054321289, 233.33333333333326, "QUAD", "EASE_OUT"], [1.718790054321289, 50.000000000000114, "QUAD", "EASE_IN_OUT"], [1.6789368391036987, 83.33333333333326, "QUAD", "EASE_IN"], [1.6789368391036987, 133.33333333333326, "BEZIER", "AUTO", 1127.7777353922527, 1.6789368391036987, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 77.77776718139648, 0.0, "AUTO_CLAMPED"], [0.0, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, 0.0, "AUTO_CLAMPED", 266.6666666666667, 0.0, "AUTO_CLAMPED"], [0.0, 99.99999999999997, "BEZIER", "AUTO", 300.0, 0.0, "AUTO_CLAMPED", 338.8888994852702, 0.0, "AUTO_CLAMPED"], [-2.68231656683564e-06, 16.666666666666686, "QUAD", "EASE_OUT", 344.44443384806317, -2.5741321112339668e-06, "AUTO_CLAMPED"], [-5.711481934348984e-06, 466.66666666666663, "QUAD", "EASE_OUT"], [-5.711481934348984e-06, 50.000000000000114, "QUAD", "EASE_IN_OUT"], [0.0, 83.33333333333326, "QUAD", "EASE_IN"], [0.0, 133.33333333333326, "BEZIER", "AUTO", 1127.7777353922527, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 77.77776718139648, -0.0, "AUTO_CLAMPED"], [-0.0, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, -0.0, "AUTO_CLAMPED", 266.6666666666667, -0.0, "AUTO_CLAMPED"], [-0.0, 99.99999999999997, "BEZIER", "AUTO", 300.0, -0.0, "AUTO_CLAMPED", 338.8888994852702, -0.0, "AUTO_CLAMPED"], [-1.7882108410015936e-06, 16.666666666666686, "QUAD", "EASE_OUT", 344.44443384806317, -1.7713721194070523e-06, "AUTO_CLAMPED"], [-2.2596944349822487e-06, 466.66666666666663, "QUAD", "EASE_OUT"], [-2.2596944349822487e-06, 50.000000000000114, "QUAD", "EASE_IN_OUT"], [-0.0, 83.33333333333326, "QUAD", "EASE_IN"], [-0.0, 133.33333333333326, "BEZIER", "AUTO", 1127.7777353922527, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 77.77776718139648, 0.0, "AUTO_CLAMPED"], [0.0, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, 0.0, "AUTO_CLAMPED", 266.6666666666667, 0.0, "AUTO_CLAMPED"], [0.0, 99.99999999999997, "BEZIER", "AUTO", 300.0, 0.0, "AUTO_CLAMPED", 338.8888994852702, 0.0, "AUTO_CLAMPED"], [-17.27483248652621, 16.666666666666686, "QUAD", "EASE_OUT", 344.44443384806317, -8.28723500583749, "AUTO_CLAMPED"], [-1069.6500258383642, 466.66666666666663, "QUAD", "EASE_OUT"], [-1069.6500258383642, 50.000000000000114, "QUAD", "EASE_IN_OUT"], [-1080.0000027329813, 83.33333333333326, "QUAD", "EASE_IN"], [-1080.0000027329813, 133.33333333333326, "BEZIER", "AUTO", 1127.7777353922527, -1080.0000027329813, "AUTO_CLAMPED"]]}}}, "Jammed": {"MainBody": {"location": {"x": [[-0.7295733690261841, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.7295733690261841, "AUTO_CLAMPED"], [-0.1906633973121643, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.3445723056793213, "AUTO_CLAMPED", 200.0, -0.09831805527210236, "AUTO_CLAMPED"], [-0.04989950358867645, 100.00000000000003, "BEZIER", "AUTO", 233.33333333333334, -0.08916591107845306, "AUTO_CLAMPED", 333.3333333333333, 0.028633318841457367, "AUTO_CLAMPED"], [0.2286735624074936, 200.0, "BEZIER", "AUTO", 400.0, 0.22762319445610046, "AUTO_CLAMPED", 616.6666666666667, 0.23103690147399902, "AUTO_CLAMPED"], [0.23103690147399902, 449.99999999999994, "BEZIER", "AUTO", 766.6666666666666, 0.23103690147399902, "AUTO_CLAMPED", 927.7777989705404, 0.23103690147399902, "AUTO_CLAMPED"], [0.18799884617328644, 33.33333333333337, "BEZIER", "AUTO", 938.8888676961263, 0.18799884617328644, "AUTO_CLAMPED", 1000.0, 0.18799884617328644, "AUTO_CLAMPED"], [0.23103690147399902, 150.0, "BEZIER", "AUTO", 1050.0, 0.23103690147399902, "AUTO_CLAMPED", 1150.0, 0.23103690147399902, "AUTO_CLAMPED"], [0.03553652763366699, 150.0, "BEZIER", "AUTO", 1200.0, 0.08990925550460815, "AUTO_CLAMPED", 1261.111068725586, 0.02345369942486286, "AUTO_CLAMPED"], [0.015655018389225006, 33.33333333333326, "BEZIER", "AUTO", 1272.2222646077475, 0.015655018389225006, "AUTO_CLAMPED", 1366.6666666666667, 0.015655018389225006, "AUTO_CLAMPED"], [0.23103690147399902, 250.0, "BEZIER", "AUTO", 1450.0, 0.23103690147399902, "AUTO_CLAMPED", 1605.5555979410808, 0.23103690147399902, "AUTO_CLAMPED"], [0.0, 216.66666666666674, "BEZIER", "AUTO", 1677.7777353922525, 0.0, "AUTO_CLAMPED", 1822.2222646077473, 0.0, "AUTO_CLAMPED"]], "z": [[-0.29214829206466675, 0.0, "BEZIER", "AUTO", 61.111112435658775, -0.29214829206466675, "AUTO_CLAMPED"], [-0.7353980541229248, 183.33333333333331, "BEZIER", "AUTO", 122.22221692403157, -0.7353980541229248, "AUTO_CLAMPED", 216.66666666666669, -0.7353980541229248, "AUTO_CLAMPED"], [-0.6644507646560669, 100.0, "BEZIER", "AUTO", 250.0, -0.6644507646560669, "AUTO_CLAMPED", 350.0, -0.6644507646560669, "AUTO_CLAMPED"], [-1.0157172679901123, 200.0, "BEZIER", "AUTO", 416.6666666666667, -0.9963687062263489, "AUTO_CLAMPED", 633.3333333333333, -1.0592515468597412, "AUTO_CLAMPED"], [-1.0592515468597412, 450.00000000000006, "BEZIER", "AUTO", 783.3333333333334, -1.0157172679901123, "AUTO_CLAMPED", 944.4444656372069, -1.0624762773513794, "AUTO_CLAMPED"], [-1.0901333093643188, 33.33333333333326, "BEZIER", "AUTO", 955.555534362793, -1.0901333093643188, "AUTO_CLAMPED", 1016.6666666666666, -1.0901333093643188, "AUTO_CLAMPED"], [-1.0592515468597412, 150.0000000000001, "BEZIER", "AUTO", 1066.6666666666667, -1.0592515468597412, "AUTO_CLAMPED", 1166.6666666666667, -1.0592515468597412, "AUTO_CLAMPED"], [-1.1155942678451538, 149.99999999999977, "BEZIER", "AUTO", 1216.6666666666665, -1.0592515468597412, "AUTO_CLAMPED", 1277.7777353922527, -1.1281148195266724, "AUTO_CLAMPED"], [-1.1526213884353638, 33.333333333333485, "BEZIER", "AUTO", 1288.888931274414, -1.1526213884353638, "AUTO_CLAMPED", 1383.3333333333333, -1.1526213884353638, "AUTO_CLAMPED"], [-1.0592515468597412, 250.0, "BEZIER", "AUTO", 1466.6666666666665, -1.1526213884353638, "AUTO_CLAMPED", 1616.6666666666667, -0.9845556616783142, "AUTO_CLAMPED"], [-0.0, 200.0, "BEZIER", "AUTO", 1683.3333333333333, -0.0, "AUTO_CLAMPED", 1816.6666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.2915276288986206, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.2915276288986206, "AUTO_CLAMPED"], [0.22574126720428467, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.22574126720428467, "AUTO_CLAMPED", 200.0, 0.22574126720428467, "AUTO_CLAMPED"], [0.517949640750885, 100.00000000000003, "BEZIER", "AUTO", 233.39649836222333, 0.3859146237373352, "ALIGNED", 329.8230489095052, 0.7685902118682861, "ALIGNED"], [0.7685902118682861, 200.0, "BEZIER", "AUTO", 400.0, 0.7576487064361572, "AUTO_CLAMPED", 616.6666666666667, 0.793208658695221, "AUTO_CLAMPED"], [0.9315266609191895, 449.99999999999994, "BEZIER", "AUTO", 766.6666666666666, 0.9315266609191895, "AUTO_CLAMPED", 927.7777989705404, 0.9315266609191895, "AUTO_CLAMPED"], [0.7277153134346008, 33.33333333333337, "BEZIER", "AUTO", 938.8888676961263, 0.7277153134346008, "AUTO_CLAMPED", 1000.0, 0.7277153134346008, "AUTO_CLAMPED"], [0.9315266609191895, 150.0, "BEZIER", "AUTO", 1050.0, 0.8033905625343323, "AUTO_CLAMPED", 1150.0, 1.0596626996994019, "AUTO_CLAMPED"], [1.2402596473693848, 150.0, "BEZIER", "AUTO", 1200.0, 1.2402596473693848, "AUTO_CLAMPED", 1261.111068725586, 1.2402596473693848, "AUTO_CLAMPED"], [0.5438048839569092, 33.33333333333326, "BEZIER", "AUTO", 1272.2222646077475, 0.5438048839569092, "AUTO_CLAMPED", 1366.6666666666667, 0.5438048839569092, "AUTO_CLAMPED"], [0.9315266609191895, 250.0, "BEZIER", "AUTO", 1450.0, 0.9315266609191895, "AUTO_CLAMPED", 1605.5555979410808, 0.9315266609191895, "AUTO_CLAMPED"], [0.0, 216.66666666666674, "BEZIER", "AUTO", 1677.7777353922525, 0.0, "AUTO_CLAMPED", 1822.2222646077473, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0, "BEZIER", "AUTO", 116.66666666666667, 2.2122143889063857, "AUTO_CLAMPED"], [-11.605778036736565, 350.0, "BEZIER", "AUTO", 233.33333333333334, -11.605778036736565, "AUTO_CLAMPED", 416.6666666666667, -11.605778036736565, "AUTO_CLAMPED"], [13.54058109085171, 200.0, "BEZIER", "AUTO", 483.3333333333333, 12.773715625373004, "AUTO_CLAMPED", 672.2222010294596, 14.946501253191611, "AUTO_CLAMPED"], [14.946501253191611, 366.66666666666663, "BEZIER", "AUTO", 794.444465637207, 14.946501253191611, "AUTO_CLAMPED", 938.8888676961263, 14.946501253191611, "AUTO_CLAMPED"], [8.062115385888454, 66.66666666666663, "BEZIER", "AUTO", 961.1111323038737, 8.062115385888454, "AUTO_CLAMPED", 1022.2222010294597, 8.062115385888454, "AUTO_CLAMPED"], [14.946501253191611, 116.66666666666674, "BEZIER", "AUTO", 1061.1111323038738, 14.946501253191611, "AUTO_CLAMPED", 1150.0, 14.946501253191611, "AUTO_CLAMPED"], [11.862608517454676, 150.0, "BEZIER", "AUTO", 1200.0, 14.946501253191611, "AUTO_CLAMPED", 1272.2222646077475, 10.491989334066341, "AUTO_CLAMPED"], [6.561224004460465, 66.66666666666674, "BEZIER", "AUTO", 1294.4444020589192, 6.561224004460465, "AUTO_CLAMPED", 1355.5555979410808, 6.561224004460465, "AUTO_CLAMPED"], [14.946501253191611, 116.66666666666652, "BEZIER", "AUTO", 1394.4444020589192, 14.946501253191611, "AUTO_CLAMPED", 1461.111068725586, 14.946501253191611, "AUTO_CLAMPED"], [14.006491346026728, 83.33333333333326, "BEZIER", "AUTO", 1488.888931274414, 14.750078673040385, "AUTO_CLAMPED", 1550.0, 13.114186041346153, "AUTO_CLAMPED"], [9.6433169853511, 100.00000000000023, "BEZIER", "AUTO", 1583.3333333333333, 11.433959505523017, "AUTO_CLAMPED", 1700.0, 5.1667102580344855, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED", 1950.0, 0.0, "AUTO_CLAMPED"]], "z": [[-48.21786729477217, 0.0, "BEZIER", "AUTO", 116.66666666666667, -48.21786729477217, "AUTO_CLAMPED"], [10.971158693967647, 350.0, "BEZIER", "AUTO", 233.33333333333334, -18.476973101205132, "AUTO_CLAMPED", 472.22223281860346, 41.821582967257406, "AUTO_CLAMPED"], [75.12389147332541, 366.66666666666663, "BEZIER", "AUTO", 594.444465637207, 72.35069123632766, "AUTO_CLAMPED", 783.3333333333334, 76.63654614805147, "AUTO_CLAMPED"], [76.63654614805147, 200.0, "BEZIER", "AUTO", 850.0, 75.12389147332541, "AUTO_CLAMPED", 938.8888676961263, 77.14076437296013, "AUTO_CLAMPED"], [81.97817755072997, 66.66666666666663, "BEZIER", "AUTO", 961.1111323038737, 81.97817755072997, "AUTO_CLAMPED", 1022.2222010294597, 81.97817755072997, "AUTO_CLAMPED"], [76.63654614805147, 116.66666666666674, "BEZIER", "AUTO", 1061.1111323038738, 76.63654614805147, "AUTO_CLAMPED", 1150.0, 76.63654614805147, "AUTO_CLAMPED"], [81.10338058221308, 150.0, "BEZIER", "AUTO", 1200.0, 76.63654614805147, "AUTO_CLAMPED", 1272.2222646077475, 83.08864336636898, "AUTO_CLAMPED"], [86.807483293955, 66.66666666666674, "BEZIER", "AUTO", 1294.4444020589192, 86.807483293955, "AUTO_CLAMPED", 1355.5555979410808, 86.807483293955, "AUTO_CLAMPED"], [76.63654614805147, 116.66666666666652, "BEZIER", "AUTO", 1394.4444020589192, 76.63654614805147, "AUTO_CLAMPED", 1461.111068725586, 76.63654614805147, "AUTO_CLAMPED"], [77.04931497016284, 83.33333333333326, "BEZIER", "AUTO", 1488.888931274414, 77.04931497016284, "AUTO_CLAMPED", 1550.0, 77.04931497016284, "AUTO_CLAMPED"], [73.88012768584443, 100.00000000000023, "BEZIER", "AUTO", 1583.3333333333333, 77.04931497016284, "AUTO_CLAMPED", 1733.3333333333335, 62.7879756058246, "AUTO_CLAMPED"], [-0.0, 349.9999999999998, "BEZIER", "AUTO", 1849.9999999999998, -0.0, "AUTO_CLAMPED", 2083.3333333333335, -0.0, "AUTO_CLAMPED"]], "y": [[27.10300512666912, 0.0, "BEZIER", "AUTO", 116.66666666666667, 27.10300512666912, "AUTO_CLAMPED"], [-0.509413544267828, 350.0, "BEZIER", "AUTO", 233.33333333333334, -0.509413544267828, "AUTO_CLAMPED", 450.0, -0.509413544267828, "AUTO_CLAMPED"], [23.16085216416954, 300.0, "BEZIER", "AUTO", 550.0, 17.89713102180607, "AUTO_CLAMPED", 738.8888676961262, 27.839716160735865, "AUTO_CLAMPED"], [27.839716160735865, 266.66666666666663, "BEZIER", "AUTO", 827.7777989705404, 24.69888782185135, "AUTO_CLAMPED", 938.8888676961263, 28.624923245456994, "AUTO_CLAMPED"], [29.802734726312334, 66.66666666666663, "BEZIER", "AUTO", 961.1111323038737, 29.802734726312334, "AUTO_CLAMPED", 1022.2222010294597, 29.802734726312334, "AUTO_CLAMPED"], [27.839716160735865, 116.66666666666674, "BEZIER", "AUTO", 1061.1111323038738, 27.839716160735865, "AUTO_CLAMPED", 1150.0, 27.839716160735865, "AUTO_CLAMPED"], [29.329365050790013, 150.0, "BEZIER", "AUTO", 1200.0, 28.62709866070764, "AUTO_CLAMPED", 1272.2222646077475, 29.641484205292087, "AUTO_CLAMPED"], [29.93678743405759, 66.66666666666674, "BEZIER", "AUTO", 1294.4444020589192, 29.93678743405759, "AUTO_CLAMPED", 1355.5555979410808, 29.93678743405759, "AUTO_CLAMPED"], [27.839716160735865, 116.66666666666652, "BEZIER", "AUTO", 1394.4444020589192, 29.75232110004847, "AUTO_CLAMPED", 1461.111068725586, 26.473570751253888, "AUTO_CLAMPED"], [24.22572134445684, 83.33333333333326, "BEZIER", "AUTO", 1488.888931274414, 24.22572134445684, "AUTO_CLAMPED", 1550.0, 24.22572134445684, "AUTO_CLAMPED"], [29.605232976272244, 100.00000000000023, "BEZIER", "AUTO", 1583.3333333333333, 29.605232976272244, "AUTO_CLAMPED", 1716.6666666666665, 29.605232976272244, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 1816.6666666666667, 0.0, "AUTO_CLAMPED", 2016.6666666666665, 0.0, "AUTO_CLAMPED"]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 77.77777512868245, -0.0, "AUTO_CLAMPED"], [-0.0, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, -0.0, "AUTO_CLAMPED", 266.6666666666667, -0.0, "AUTO_CLAMPED"], [0.7575316429138184, 99.99999999999997, "BEZIER", "AUTO", 300.0, 0.7575316429138184, "AUTO_CLAMPED", 694.4444020589192, 0.7575316429138184, "AUTO_CLAMPED"], [0.7575316429138184, 1083.3333333333335, "BEZIER", "AUTO", 1055.5555979410806, 0.7575316429138184, "AUTO_CLAMPED", 1455.5555979410808, 0.7575316429138184, "AUTO_CLAMPED"], [-0.0, 116.66666666666652, "BEZIER", "AUTO", 1494.4444020589192, -0.0, "AUTO_CLAMPED", 1572.2222646077473, -0.0, "AUTO_CLAMPED"]]}}, "Shell": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 77.77777512868245, 0.0, "AUTO_CLAMPED"], [0.10088974982500076, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, 0.0, "AUTO_CLAMPED", 266.6666666666667, 0.14412821829319, "AUTO_CLAMPED"], [0.21595029532909393, 99.99999999999997, "BEZIER", "AUTO", 300.0, 0.21595029532909393, "AUTO_CLAMPED", 527.7777989705403, 0.21595029532909393, "AUTO_CLAMPED"], [0.21595029532909393, 583.3333333333333, "BEZIER", "AUTO", 722.2222010294597, 0.21595029532909393, "AUTO_CLAMPED", 922.2222010294596, 0.21595029532909393, "AUTO_CLAMPED"], [0.17595839500427246, 16.666666666666742, "BEZIER", "AUTO", 927.7777989705404, 0.17595839500427246, "AUTO_CLAMPED", 1038.8888676961262, 0.17595839500427246, "AUTO_CLAMPED"], [0.17595839500427246, 316.66666666666663, "BEZIER", "AUTO", 1144.4444020589192, 0.17595839500427246, "AUTO_CLAMPED", 1261.111068725586, 0.17595839500427246, "AUTO_CLAMPED"], [0.09587424248456955, 33.33333333333326, "BEZIER", "AUTO", 1272.2222646077475, 0.09587424248456955, "AUTO_CLAMPED", 1338.888931274414, 0.09587424248456955, "AUTO_CLAMPED"], [0.09587424248456955, 166.66666666666674, "BEZIER", "AUTO", 1394.4444020589192, 0.09587424248456955, "AUTO_CLAMPED", 1477.7777353922525, 0.09587424248456955, "AUTO_CLAMPED"], [0.09587424248456955, 83.33333333333326, "BEZIER", "AUTO", 1505.5555979410806, 0.09587424248456955, "AUTO_CLAMPED", 1561.111068725586, 0.09587424248456955, "AUTO_CLAMPED"]], "z": [[-2.9000000953674316, 0.0, "BEZIER", "AUTO", 77.77777512868245, -2.9000000953674316, "AUTO_CLAMPED"], [-2.7272896766662598, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, -2.9000000953674316, "AUTO_CLAMPED", 266.6666666666667, -2.653270959854126, "AUTO_CLAMPED"], [-2.0865931510925293, 99.99999999999997, "BEZIER", "AUTO", 300.0, -2.0865931510925293, "AUTO_CLAMPED", 527.7777989705403, -2.0865931510925293, "AUTO_CLAMPED"], [-2.0865931510925293, 583.3333333333333, "BEZIER", "AUTO", 722.2222010294597, -2.0865931510925293, "AUTO_CLAMPED", 922.2222010294596, -2.0865931510925293, "AUTO_CLAMPED"], [-2.091643810272217, 16.666666666666742, "BEZIER", "AUTO", 927.7777989705404, -2.091643810272217, "AUTO_CLAMPED", 1038.8888676961262, -2.091643810272217, "AUTO_CLAMPED"], [-2.091643810272217, 316.66666666666663, "BEZIER", "AUTO", 1144.4444020589192, -2.091643810272217, "AUTO_CLAMPED", 1261.111068725586, -2.091643810272217, "AUTO_CLAMPED"], [-2.091643810272217, 33.33333333333326, "BEZIER", "AUTO", 1272.2222646077475, -2.091643810272217, "AUTO_CLAMPED", 1338.888931274414, -2.091643810272217, "AUTO_CLAMPED"], [-2.091643810272217, 166.66666666666674, "BEZIER", "AUTO", 1394.4444020589192, -2.091643810272217, "AUTO_CLAMPED", 1477.7777353922525, -2.091643810272217, "AUTO_CLAMPED"], [-2.7139627933502197, 83.33333333333326, "BEZIER", "AUTO", 1505.5555979410806, -2.7139627933502197, "AUTO_CLAMPED", 1561.111068725586, -2.7139627933502197, "AUTO_CLAMPED"]], "y": [[1.600000023841858, 0.0, "BEZIER", "AUTO", 77.77777512868245, 1.600000023841858, "AUTO_CLAMPED"], [1.6788396835327148, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, 1.620819330215454, "AUTO_CLAMPED", 266.6666666666667, 1.7037055492401123, "AUTO_CLAMPED"], [1.7354042530059814, 99.99999999999997, "BEZIER", "AUTO", 300.0, 1.7354042530059814, "AUTO_CLAMPED", 527.7777989705403, 1.7354042530059814, "AUTO_CLAMPED"], [1.7354042530059814, 583.3333333333333, "BEZIER", "AUTO", 722.2222010294597, 1.7354042530059814, "AUTO_CLAMPED", 922.2222010294596, 1.7354042530059814, "AUTO_CLAMPED"], [1.713067889213562, 16.666666666666742, "BEZIER", "AUTO", 927.7777989705404, 1.713067889213562, "AUTO_CLAMPED", 1038.8888676961262, 1.713067889213562, "AUTO_CLAMPED"], [1.713067889213562, 316.66666666666663, "BEZIER", "AUTO", 1144.4444020589192, 1.713067889213562, "AUTO_CLAMPED", 1261.111068725586, 1.713067889213562, "AUTO_CLAMPED"], [1.6614195108413696, 33.33333333333326, "BEZIER", "AUTO", 1272.2222646077475, 1.6614195108413696, "AUTO_CLAMPED", 1338.888931274414, 1.6614195108413696, "AUTO_CLAMPED"], [1.6614195108413696, 166.66666666666674, "BEZIER", "AUTO", 1394.4444020589192, 1.6614195108413696, "AUTO_CLAMPED", 1477.7777353922525, 1.6614195108413696, "AUTO_CLAMPED"], [1.6614195108413696, 83.33333333333326, "BEZIER", "AUTO", 1505.5555979410806, 1.6614195108413696, "AUTO_CLAMPED", 1561.111068725586, 1.6614195108413696, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 77.77777512868245, 0.0, "AUTO_CLAMPED"], [0.0, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, 0.0, "AUTO_CLAMPED", 266.6666666666667, 0.0, "AUTO_CLAMPED"], [-13.527462858777055, 99.99999999999997, "BEZIER", "AUTO", 300.0, -13.527462858777055, "AUTO_CLAMPED", 527.7777989705403, -13.527462858777055, "AUTO_CLAMPED"], [-13.527462858777055, 583.3333333333333, "BEZIER", "AUTO", 722.2222010294597, -13.527462858777055, "AUTO_CLAMPED", 922.2222010294596, -13.527462858777055, "AUTO_CLAMPED"], [-7.794041560022856, 16.666666666666742, "BEZIER", "AUTO", 927.7777989705404, -7.794041560022856, "AUTO_CLAMPED", 1038.8888676961262, -7.794041560022856, "AUTO_CLAMPED"], [-7.794041560022856, 316.66666666666663, "BEZIER", "AUTO", 1144.4444020589192, -7.794041560022856, "AUTO_CLAMPED", 1261.111068725586, -7.794041560022856, "AUTO_CLAMPED"], [0.0, 33.33333333333326, "BEZIER", "AUTO", 1272.2222646077475, 0.0, "AUTO_CLAMPED", 1338.888931274414, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666674, "BEZIER", "AUTO", 1394.4444020589192, 0.0, "AUTO_CLAMPED", 1477.7777353922525, 0.0, "AUTO_CLAMPED"], [0.0, 83.33333333333326, "BEZIER", "AUTO", 1505.5555979410806, 0.0, "AUTO_CLAMPED", 1561.111068725586, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 77.77777512868245, -0.0, "AUTO_CLAMPED"], [-0.0, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, -0.0, "AUTO_CLAMPED", 266.6666666666667, -0.0, "AUTO_CLAMPED"], [19.831365462672814, 99.99999999999997, "BEZIER", "AUTO", 300.0, 19.831365462672814, "AUTO_CLAMPED", 527.7777989705403, 19.831365462672814, "AUTO_CLAMPED"], [19.831365462672814, 583.3333333333333, "BEZIER", "AUTO", 722.2222010294597, 19.831365462672814, "AUTO_CLAMPED", 922.2222010294596, 19.831365462672814, "AUTO_CLAMPED"], [16.99874599499054, 16.666666666666742, "BEZIER", "AUTO", 927.7777989705404, 16.99874599499054, "AUTO_CLAMPED", 1038.8888676961262, 16.99874599499054, "AUTO_CLAMPED"], [16.99874599499054, 316.66666666666663, "BEZIER", "AUTO", 1144.4444020589192, 16.99874599499054, "AUTO_CLAMPED", 1261.111068725586, 16.99874599499054, "AUTO_CLAMPED"], [-0.0, 33.33333333333326, "BEZIER", "AUTO", 1272.2222646077475, -0.0, "AUTO_CLAMPED", 1338.888931274414, -0.0, "AUTO_CLAMPED"], [-0.0, 166.66666666666674, "BEZIER", "AUTO", 1394.4444020589192, -0.0, "AUTO_CLAMPED", 1477.7777353922525, -0.0, "AUTO_CLAMPED"], [-0.0, 83.33333333333326, "BEZIER", "AUTO", 1505.5555979410806, -0.0, "AUTO_CLAMPED", 1561.111068725586, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 77.77777512868245, 0.0, "AUTO_CLAMPED"], [0.0, 233.33333333333334, "BEZIER", "AUTO", 155.55556615193686, 0.0, "AUTO_CLAMPED", 266.6666666666667, 0.0, "AUTO_CLAMPED"], [36.84236140193977, 99.99999999999997, "BEZIER", "AUTO", 300.0, 36.84236140193977, "AUTO_CLAMPED", 527.7777989705403, 36.84236140193977, "AUTO_CLAMPED"], [36.84236140193977, 583.3333333333333, "BEZIER", "AUTO", 722.2222010294597, 36.84236140193977, "AUTO_CLAMPED", 922.2222010294596, 36.84236140193977, "AUTO_CLAMPED"], [21.77011978122281, 16.666666666666742, "BEZIER", "AUTO", 927.7777989705404, 21.77011978122281, "AUTO_CLAMPED", 1038.8888676961262, 21.77011978122281, "AUTO_CLAMPED"], [21.77011978122281, 316.66666666666663, "BEZIER", "AUTO", 1144.4444020589192, 21.77011978122281, "AUTO_CLAMPED", 1261.111068725586, 21.77011978122281, "AUTO_CLAMPED"], [0.0, 33.33333333333326, "BEZIER", "AUTO", 1272.2222646077475, 0.0, "AUTO_CLAMPED", 1338.888931274414, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666674, "BEZIER", "AUTO", 1394.4444020589192, 0.0, "AUTO_CLAMPED", 1477.7777353922525, 0.0, "AUTO_CLAMPED"], [0.0, 83.33333333333326, "BEZIER", "AUTO", 1505.5555979410806, 0.0, "AUTO_CLAMPED", 1561.111068725586, 0.0, "AUTO_CLAMPED"]]}}}, "Reload": {"MainBody": {"location": {"x": [[-0.7295733690261841, 0.0, "LINEAR", "AUTO"], [-0.7295733690261841, 83.33333333333333, "LINEAR", "AUTO"], [-0.7295733690261841, 99.99999999999999, "LINEAR", "AUTO"], [-0.5556169748306274, 133.33333333333331, "LINEAR", "AUTO"], [-0.6492857933044434, 116.66666666666674, "LINEAR", "AUTO"], [-0.7295733690261841, 100.0, "LINEAR", "AUTO"]], "z": [[-0.29214829206466675, 0.0, "LINEAR", "AUTO"], [-0.29214829206466675, 83.33333333333333, "LINEAR", "AUTO"], [-0.29214829206466675, 99.99999999999999, "LINEAR", "AUTO"], [-0.30703651905059814, 133.33333333333331, "LINEAR", "AUTO"], [-0.29901978373527527, 116.66666666666674, "LINEAR", "AUTO"], [-0.29214829206466675, 100.0, "LINEAR", "AUTO"]], "y": [[0.2915276288986206, 0.0, "LINEAR", "AUTO"], [0.2915276288986206, 83.33333333333333, "LINEAR", "AUTO"], [0.2915276288986206, 99.99999999999999, "LINEAR", "AUTO"], [0.4859994053840637, 133.33333333333331, "LINEAR", "AUTO"], [0.38128381967544556, 116.66666666666674, "LINEAR", "AUTO"], [0.2915276288986206, 100.0, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0, "LINEAR", "AUTO"], [1.6652197564429725, 83.33333333333333, "LINEAR", "AUTO"], [2.2122143889063857, 133.33333333333337, "LINEAR", "AUTO"], [9.618481563755287, 116.66666666666663, "LINEAR", "AUTO"], [5.616534990827301, 100.00000000000006, "LINEAR", "AUTO"], [2.2122143889063857, 100.0, "LINEAR", "AUTO"]], "z": [[-48.21786729477217, 0.0, "LINEAR", "AUTO"], [-45.59814140842461, 83.33333333333333, "LINEAR", "AUTO"], [-48.21786729477217, 133.33333333333337, "LINEAR", "AUTO"], [-53.60401787046082, 116.66666666666663, "LINEAR", "AUTO"], [-50.637738430910574, 100.00000000000006, "LINEAR", "AUTO"], [-48.21786729477217, 100.0, "LINEAR", "AUTO"]], "y": [[27.10300512666912, 0.0, "LINEAR", "AUTO"], [27.402903365198746, 83.33333333333333, "LINEAR", "AUTO"], [27.10300512666912, 133.33333333333337, "LINEAR", "AUTO"], [28.044826741511347, 116.66666666666663, "LINEAR", "AUTO"], [27.549100149288286, 100.00000000000006, "LINEAR", "AUTO"], [27.10300512666912, 100.0, "LINEAR", "AUTO"]]}}, "Shell": {"location": {"x": [[-5.960464477539063e-08, 0.0, "BEZIER", "AUTO", 44.444445768992104, -5.960464477539063e-08, "AUTO_CLAMPED"], [1.2852251529693604e-07, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -5.960464477539063e-08, "AUTO_CLAMPED", 161.11111640930176, 2.461019903421402e-07, "AUTO_CLAMPED"], [0.0043095857836306095, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, 0.004309445153921843, "AUTO_CLAMPED", 244.4444497426351, 0.0043097264133393764, "AUTO_CLAMPED"], [0.0043097264133393764, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, 0.0043097264133393764, "AUTO_CLAMPED", 316.66666666666663, 0.0043097264133393764, "AUTO_CLAMPED"], [0.004309403244405985, 50.0, "BEZIER", "AUTO", 333.3333333333333, 0.004309403244405985, "AUTO_CLAMPED", 366.66666666666663, 0.004309403244405985, "AUTO_CLAMPED"]], "z": [[-1.3408751487731934, 0.0, "BEZIER", "AUTO", 44.444445768992104, -1.3408751487731934, "AUTO_CLAMPED"], [-1.88205885887146, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -1.7226817607879639, "AUTO_CLAMPED", 161.11111640930176, -1.981669545173645, "AUTO_CLAMPED"], [-2.250572919845581, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -1.9943935871124268, "AUTO_CLAMPED", 244.4444497426351, -2.5067522525787354, "AUTO_CLAMPED"], [-3.008287191390991, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, -3.0063869953155518, "AUTO_CLAMPED", 316.66666666666663, -3.009427309036255, "AUTO_CLAMPED"], [-3.009427309036255, 50.0, "BEZIER", "AUTO", 333.3333333333333, -3.009427309036255, "AUTO_CLAMPED", 366.66666666666663, -3.009427309036255, "AUTO_CLAMPED"]], "y": [[-1.0872026681900024, 0.0, "BEZIER", "AUTO", 44.444445768992104, -1.0872026681900024, "AUTO_CLAMPED"], [-0.7433216571807861, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -1.0872026681900024, "AUTO_CLAMPED", 161.11111640930176, -0.5283960103988647, "AUTO_CLAMPED"], [0.8109492063522339, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, 0.385259211063385, "AUTO_CLAMPED", 244.4444497426351, 1.2366392612457275, "AUTO_CLAMPED"], [1.2373285293579102, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, 1.1743639707565308, "AUTO_CLAMPED", 316.66666666666663, 1.2751072645187378, "AUTO_CLAMPED"], [1.3579723834991455, 50.0, "BEZIER", "AUTO", 333.3333333333333, 1.3579723834991455, "AUTO_CLAMPED", 366.66666666666663, 1.3579723834991455, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 161.11111640930176, 0.0, "AUTO_CLAMPED"], [21.14787588745631, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, 21.14787588745631, "AUTO_CLAMPED", 244.4444497426351, 21.14787588745631, "AUTO_CLAMPED"], [0.40499606683590605, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, 0.40499606683590605, "AUTO_CLAMPED", 316.66666666666663, 0.40499606683590605, "AUTO_CLAMPED"], [0.40499606683590605, 50.0, "BEZIER", "AUTO", 333.3333333333333, 0.40499606683590605, "AUTO_CLAMPED", 366.66666666666663, 0.40499606683590605, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -0.0, "AUTO_CLAMPED", 161.11111640930176, -0.0, "AUTO_CLAMPED"], [-0.0, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -0.0, "AUTO_CLAMPED", 244.4444497426351, -0.0, "AUTO_CLAMPED"], [-1.0271807443729786e-06, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, -1.0271807443729786e-06, "AUTO_CLAMPED", 316.66666666666663, -1.0271807443729786e-06, "AUTO_CLAMPED"], [-1.0271807443729786e-06, 50.0, "BEZIER", "AUTO", 333.3333333333333, -1.0271807443729786e-06, "AUTO_CLAMPED", 366.66666666666663, -1.0271807443729786e-06, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 161.11111640930176, 0.0, "AUTO_CLAMPED"], [-1.9209907040660864e-06, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -7.248212372463371e-07, "AUTO_CLAMPED", 244.4444497426351, -3.1171601708858352e-06, "AUTO_CLAMPED"], [-4.784677867278997e-06, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, -4.784677867278997e-06, "AUTO_CLAMPED", 316.66666666666663, -4.784677867278997e-06, "AUTO_CLAMPED"], [-4.784677867278997e-06, 50.0, "BEZIER", "AUTO", 333.3333333333333, -4.784677867278997e-06, "AUTO_CLAMPED", 366.66666666666663, -4.784677867278997e-06, "AUTO_CLAMPED"]]}}}, "ReloadEmptyStart": {"MainBody": {"location": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [-0.3959049880504608, 100.0, "LINEAR", "AUTO"], [-0.8907862305641174, 50.0, "LINEAR", "AUTO"], [-0.912574291229248, 133.33333333333331, "LINEAR", "AUTO"], [-0.8907862305641174, 183.33333333333337, "LINEAR", "AUTO"], [-0.7295733690261841, 333.3333333333333, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [-0.04771782457828522, 100.0, "LINEAR", "AUTO"], [-0.10736510902643204, 50.0, "LINEAR", "AUTO"], [-0.1299014389514923, 133.33333333333331, "LINEAR", "AUTO"], [-0.10736510902643204, 183.33333333333337, "LINEAR", "AUTO"], [-0.29214829206466675, 333.3333333333333, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.08693332225084305, 100.0, "LINEAR", "AUTO"], [0.1955999732017517, 50.0, "LINEAR", "AUTO"], [0.07320505380630493, 133.33333333333331, "LINEAR", "AUTO"], [0.1955999732017517, 183.33333333333337, "LINEAR", "AUTO"], [0.2915276288986206, 333.3333333333333, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [5.215149959628216, 116.66666666666667, "LINEAR", "AUTO"], [14.341662388977594, 66.66666666666664, "LINEAR", "AUTO"], [10.053024175167023, 150.0, "LINEAR", "AUTO"], [14.341662388977594, 183.33333333333331, "LINEAR", "AUTO"], [9.347183888601442, 83.33333333333337, "LINEAR", "AUTO"], [3.4013761500584048, 133.33333333333326, "LINEAR", "AUTO"], [2.2122143889063857, 66.66666666666674, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [17.232944643893813, 116.66666666666667, "LINEAR", "AUTO"], [47.39059819759481, 66.66666666666664, "LINEAR", "AUTO"], [51.027851515545024, 150.0, "LINEAR", "AUTO"], [47.39059819759481, 183.33333333333331, "LINEAR", "AUTO"], [8.022402104733061, 83.33333333333337, "LINEAR", "AUTO"], [-38.844487923156436, 133.33333333333326, "LINEAR", "AUTO"], [-48.21786729477217, 66.66666666666674, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [-3.394506473857253, 116.66666666666667, "LINEAR", "AUTO"], [-9.334892963190004, 66.66666666666664, "LINEAR", "AUTO"], [-8.375116488567105, 150.0, "LINEAR", "AUTO"], [-9.334892963190004, 183.33333333333331, "LINEAR", "AUTO"], [5.668946020536571, 83.33333333333337, "LINEAR", "AUTO"], [23.530662511496125, 133.33333333333326, "LINEAR", "AUTO"], [27.10300512666912, 66.66666666666674, "LINEAR", "AUTO"]]}}, "PumpGrip": {"location": {"z": [[-0.0, 0.0, "LINEAR", "AUTO"], [-0.0, 183.33333333333331, "LINEAR", "AUTO"], [1.0550689697265625, 66.66666666666669, "LINEAR", "AUTO"], [1.0550689697265625, 166.66666666666669, "LINEAR", "AUTO"], [-0.0, 99.99999999999994, "LINEAR", "AUTO"]]}}, "Shell": {"location": {"x": [[1.089231252670288, 0.0, "LINEAR", "AUTO"], [0.8341608047485352, 150.0, "LINEAR", "AUTO"], [0.5637267231941223, 100.0, "LINEAR", "AUTO"], [0.27297717332839966, 33.333333333333314, "LINEAR", "AUTO"], [1.1920928955078125e-07, 66.66666666666669, "LINEAR", "AUTO"]], "z": [[-1.6620994806289673, 0.0, "LINEAR", "AUTO"], [-1.8606443405151367, 150.0, "LINEAR", "AUTO"], [-1.7523975372314453, 100.0, "LINEAR", "AUTO"], [-2.0263478755950928, 33.333333333333314, "LINEAR", "AUTO"], [-2.9000000953674316, 66.66666666666669, "LINEAR", "AUTO"]], "y": [[-0.7190526723861694, 0.0, "LINEAR", "AUTO"], [-1.443679928779602, 150.0, "LINEAR", "AUTO"], [1.7873222827911377, 100.0, "LINEAR", "AUTO"], [1.7349900007247925, 33.333333333333314, "LINEAR", "AUTO"], [1.5999999046325684, 66.66666666666669, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 100.0, 0.0, "AUTO_CLAMPED", 183.33333333333331, 0.0, "AUTO_CLAMPED"], [-4.686586806083493, 100.0, "BEZIER", "AUTO", 216.66666666666669, -4.686586806083493, "AUTO_CLAMPED", 261.11111640930176, -4.686586806083493, "AUTO_CLAMPED"], [-4.686586806083493, 33.333333333333314, "BEZIER", "AUTO", 272.2222328186035, -4.686586806083493, "AUTO_CLAMPED", 305.55556615193683, -4.686586806083493, "AUTO_CLAMPED"], [0.0, 66.66666666666669, "BEZIER", "AUTO", 327.7777671813965, 0.0, "AUTO_CLAMPED", 372.2222328186035, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 50.0, -0.0, "AUTO_CLAMPED"], [-0.0, 150.0, "BEZIER", "AUTO", 100.0, -0.0, "AUTO_CLAMPED", 183.33333333333331, -0.0, "AUTO_CLAMPED"], [-0.5807879005165506, 100.0, "BEZIER", "AUTO", 216.66666666666669, -0.5807879005165506, "AUTO_CLAMPED", 261.11111640930176, -0.5807879005165506, "AUTO_CLAMPED"], [-0.5807879005165506, 33.333333333333314, "BEZIER", "AUTO", 272.2222328186035, -0.5807879005165506, "AUTO_CLAMPED", 305.55556615193683, -0.5807879005165506, "AUTO_CLAMPED"], [-0.0, 66.66666666666669, "BEZIER", "AUTO", 327.7777671813965, -0.0, "AUTO_CLAMPED", 372.2222328186035, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 100.0, 0.0, "AUTO_CLAMPED", 183.33333333333331, 0.0, "AUTO_CLAMPED"], [15.393064143768921, 100.0, "BEZIER", "AUTO", 216.66666666666669, 15.393064143768921, "AUTO_CLAMPED", 261.11111640930176, 15.393064143768921, "AUTO_CLAMPED"], [15.393064143768921, 33.333333333333314, "BEZIER", "AUTO", 272.2222328186035, 15.393064143768921, "AUTO_CLAMPED", 305.55556615193683, 15.393064143768921, "AUTO_CLAMPED"], [0.0, 66.66666666666669, "BEZIER", "AUTO", 327.7777671813965, 0.0, "AUTO_CLAMPED", 372.2222328186035, 0.0, "AUTO_CLAMPED"]]}}}, "ReloadEnd": {"MainBody": {"location": {"x": [[-0.7295733690261841, 0.0, "LINEAR", "AUTO"], [-0.5471799969673157, 166.66666666666666, "LINEAR", "AUTO"], [-0.15633714199066162, 100.00000000000003, "LINEAR", "AUTO"], [0.0, 150.0, "LINEAR", "AUTO"]], "z": [[-0.29214829206466675, 0.0, "LINEAR", "AUTO"], [-0.21911121904850006, 166.66666666666666, "LINEAR", "AUTO"], [-0.06260320544242859, 100.00000000000003, "LINEAR", "AUTO"], [-0.0, 150.0, "LINEAR", "AUTO"]], "y": [[0.2915276288986206, 0.0, "LINEAR", "AUTO"], [0.21864572167396545, 166.66666666666666, "LINEAR", "AUTO"], [0.0624702125787735, 100.00000000000003, "LINEAR", "AUTO"], [0.0, 150.0, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[2.2122143889063857, 0.0, "LINEAR", "AUTO"], [1.6591607383189364, 166.66666666666666, "LINEAR", "AUTO"], [0.47404597097185575, 100.00000000000003, "LINEAR", "AUTO"], [0.0, 150.0, "LINEAR", "AUTO"]], "z": [[-48.21786729477217, 0.0, "LINEAR", "AUTO"], [-36.16339961730548, 166.66666666666666, "LINEAR", "AUTO"], [-10.332401110335347, 100.00000000000003, "LINEAR", "AUTO"], [-0.0, 150.0, "LINEAR", "AUTO"]], "y": [[27.10300512666912, 0.0, "LINEAR", "AUTO"], [20.327254271888663, 166.66666666666666, "LINEAR", "AUTO"], [5.807786690890005, 100.00000000000003, "LINEAR", "AUTO"], [0.0, 150.0, "LINEAR", "AUTO"]]}}}, "ReloadStart": {"MainBody": {"location": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [-0.7295733690261841, 166.66666666666666, "LINEAR", "AUTO"], [-0.7152981162071228, 50.00000000000003, "LINEAR", "AUTO"], [-0.7095879912376404, 66.66666666666663, "LINEAR", "AUTO"], [-0.7295733690261841, 116.66666666666669, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [-0.29214829206466675, 166.66666666666666, "LINEAR", "AUTO"], [-0.28362342715263367, 50.00000000000003, "LINEAR", "AUTO"], [-0.28021347522735596, 66.66666666666663, "LINEAR", "AUTO"], [-0.29214829206466675, 116.66666666666669, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.2915276288986206, 166.66666666666666, "LINEAR", "AUTO"], [0.4171614646911621, 50.00000000000003, "LINEAR", "AUTO"], [0.4674150049686432, 66.66666666666663, "LINEAR", "AUTO"], [0.2915276288986206, 116.66666666666669, "LINEAR", "AUTO"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [2.2122143889063857, 166.66666666666666, "LINEAR", "AUTO"], [5.485797059263618, 50.00000000000003, "LINEAR", "AUTO"], [6.795230554293333, 66.66666666666663, "LINEAR", "AUTO"], [2.2122143889063857, 116.66666666666669, "LINEAR", "AUTO"]], "z": [[-0.0, 0.0, "LINEAR", "AUTO"], [-48.21786729477217, 166.66666666666666, "LINEAR", "AUTO"], [-50.902555110315724, 50.00000000000003, "LINEAR", "AUTO"], [-51.976428187476394, 66.66666666666663, "LINEAR", "AUTO"], [-48.21786729477217, 116.66666666666669, "LINEAR", "AUTO"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [27.10300512666912, 166.66666666666666, "LINEAR", "AUTO"], [26.843731145775436, 50.00000000000003, "LINEAR", "AUTO"], [26.74002155341796, 66.66666666666663, "LINEAR", "AUTO"], [27.10300512666912, 116.66666666666669, "LINEAR", "AUTO"]]}}, "Shell": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [1.8812716007232666e-07, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 1.5194885349956166e-07, "AUTO_CLAMPED", 161.11111640930176, 2.1073859102216375e-07, "AUTO_CLAMPED"], [2.384185791015625e-07, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, 1.8812716007232666e-07, "AUTO_CLAMPED", 244.4444497426351, 2.8870999813079834e-07, "AUTO_CLAMPED"], [0.004309164825826883, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, 0.004308667965233326, "AUTO_CLAMPED", 316.66666666666663, 0.00430946284905076, "AUTO_CLAMPED"], [0.00430946284905076, 50.0, "BEZIER", "AUTO", 333.3333333333333, 0.00430946284905076, "AUTO_CLAMPED", 366.66666666666663, 0.00430946284905076, "AUTO_CLAMPED"]], "z": [[-2.9000000953674316, 0.0, "BEZIER", "AUTO", 44.444445768992104, -2.9000000953674316, "AUTO_CLAMPED"], [-2.0142228603363037, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -2.0142228603363037, "AUTO_CLAMPED", 161.11111640930176, -2.0142228603363037, "AUTO_CLAMPED"], [-2.2258617877960205, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -2.0142228603363037, "AUTO_CLAMPED", 244.4444497426351, -2.4375007152557373, "AUTO_CLAMPED"], [-3.127822160720825, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, -3.127822160720825, "AUTO_CLAMPED", 316.66666666666663, -3.127822160720825, "AUTO_CLAMPED"], [-3.009427070617676, 50.0, "BEZIER", "AUTO", 333.3333333333333, -3.009427070617676, "AUTO_CLAMPED", 366.66666666666663, -3.009427070617676, "AUTO_CLAMPED"]], "y": [[-1.2060743570327759, 0.0, "BEZIER", "AUTO", 44.444445768992104, -1.2060743570327759, "AUTO_CLAMPED"], [-0.690565824508667, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -1.2060743570327759, "AUTO_CLAMPED", 161.11111640930176, -0.36837297677993774, "AUTO_CLAMPED"], [0.8053045272827148, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, 0.4213707149028778, "AUTO_CLAMPED", 244.4444497426351, 1.1892383098602295, "AUTO_CLAMPED"], [1.2387430667877197, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, 1.1673623323440552, "AUTO_CLAMPED", 316.66666666666663, 1.2815715074539185, "AUTO_CLAMPED"], [1.3579723834991455, 50.0, "BEZIER", "AUTO", 333.3333333333333, 1.3579723834991455, "AUTO_CLAMPED", 366.66666666666663, 1.3579723834991455, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 161.11111640930176, 0.0, "AUTO_CLAMPED"], [21.14787588745631, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, 21.14787588745631, "AUTO_CLAMPED", 244.4444497426351, 21.14787588745631, "AUTO_CLAMPED"], [0.40499606683590605, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, 0.40499606683590605, "AUTO_CLAMPED", 316.66666666666663, 0.40499606683590605, "AUTO_CLAMPED"], [0.40499606683590605, 50.0, "BEZIER", "AUTO", 333.3333333333333, 0.40499606683590605, "AUTO_CLAMPED", 366.66666666666663, 0.40499606683590605, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -0.0, "AUTO_CLAMPED", 161.11111640930176, -0.0, "AUTO_CLAMPED"], [-0.0, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -0.0, "AUTO_CLAMPED", 244.4444497426351, -0.0, "AUTO_CLAMPED"], [-1.0271807443729786e-06, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, -1.0271807443729786e-06, "AUTO_CLAMPED", 316.66666666666663, -1.0271807443729786e-06, "AUTO_CLAMPED"], [-1.0271807443729786e-06, 50.0, "BEZIER", "AUTO", 333.3333333333333, -1.0271807443729786e-06, "AUTO_CLAMPED", 366.66666666666663, -1.0271807443729786e-06, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 161.11111640930176, 0.0, "AUTO_CLAMPED"], [-1.9209907040660864e-06, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -7.248212372463371e-07, "AUTO_CLAMPED", 244.4444497426351, -3.1171601708858352e-06, "AUTO_CLAMPED"], [-4.784677867278997e-06, 83.33333333333331, "BEZIER", "AUTO", 272.2222328186035, -4.784677867278997e-06, "AUTO_CLAMPED", 316.66666666666663, -4.784677867278997e-06, "AUTO_CLAMPED"], [-4.784677867278997e-06, 50.0, "BEZIER", "AUTO", 333.3333333333333, -4.784677867278997e-06, "AUTO_CLAMPED", 366.66666666666663, -4.784677867278997e-06, "AUTO_CLAMPED"]]}}}}, "offset": {"PumpGrip": [-3.073364496231079e-08, 2.8870999813079834e-08, -0.0], "Shell": [0.0, 1.600000023841858, -2.9000000953674316], "ShellFore": [0.0, 1.600260615348816, -2.8731613159179688]}, "hierarchy": {"PumpGrip": "MainBody", "Shell": "MainBody", "ShellFore": "Shell"}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/stg77.json b/src/main/resources/assets/hbm/models/weapons/animations/stg77.json new file mode 100644 index 000000000..4681ba0f0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/stg77.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [7.314687019273744e-18, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 1.8286713412281298e-18, "AUTO_CLAMPED", 27.77777910232544, 1.8286718375364973e-17, "AUTO_CLAMPED"], [4.3888125424364915e-17, 33.33333333333333, "BEZIER", "AUTO", 38.888887564341225, 4.3888125424364915e-17, "AUTO_CLAMPED", 105.5555502573649, 4.3888125424364915e-17, "AUTO_CLAMPED"], [0.0, 166.66666666666669, "BEZIER", "AUTO", 161.11111640930176, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, -0.0, "AUTO_CLAMPED"], [-0.3074626326560974, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, -0.2629571557044983, "AUTO_CLAMPED", 27.77777910232544, -0.39647355675697327, "AUTO_CLAMPED"], [-0.39647355675697327, 33.33333333333333, "BEZIER", "AUTO", 38.888887564341225, -0.39647355675697327, "AUTO_CLAMPED", 105.5555502573649, -0.39647355675697327, "AUTO_CLAMPED"], [-0.0, 166.66666666666669, "BEZIER", "AUTO", 161.11111640930176, -0.0, "AUTO_CLAMPED", 272.2222328186035, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.03294242173433304, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 0.00823560357093811, "AUTO_CLAMPED", 27.77777910232544, 0.0823560580611229, "AUTO_CLAMPED"], [0.19765454530715942, 33.33333333333333, "BEZIER", "AUTO", 38.888887564341225, 0.19765454530715942, "AUTO_CLAMPED", 105.5555502573649, 0.19765454530715942, "AUTO_CLAMPED"], [0.0, 166.66666666666669, "BEZIER", "AUTO", 161.11111640930176, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [1.0804245092351814, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 1.0804245092351814, "AUTO_CLAMPED", 44.44444179534912, 1.0804245092351814, "AUTO_CLAMPED"], [-1.8890702418668548, 83.33333333333333, "BEZIER", "AUTO", 72.22222487131755, -1.8890702418668548, "AUTO_CLAMPED", 138.88888359069824, -1.8890702418668548, "AUTO_CLAMPED"], [-6.830189170012751e-06, 116.66666666666669, "BEZIER", "AUTO", 177.77778307596842, -6.830189170012751e-06, "AUTO_CLAMPED", 255.55555025736493, -6.830189170012751e-06, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [-6.286747389742679e-16, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, -6.286747389742679e-16, "AUTO_CLAMPED", 44.44444179534912, -6.286747389742679e-16, "AUTO_CLAMPED"], [4.294603873921931e-18, 83.33333333333333, "BEZIER", "AUTO", 72.22222487131755, 4.294603873921931e-18, "AUTO_CLAMPED", 138.88888359069824, 4.294603873921931e-18, "AUTO_CLAMPED"], [-0.0, 116.66666666666669, "BEZIER", "AUTO", 177.77778307596842, -0.0, "AUTO_CLAMPED", 255.55555025736493, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [1.2765992093518362e-18, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 1.2765992093518362e-18, "AUTO_CLAMPED", 44.44444179534912, 1.2765992093518362e-18, "AUTO_CLAMPED"], [-3.3053638735980754e-16, 83.33333333333333, "BEZIER", "AUTO", 72.22222487131755, -3.3053638735980754e-16, "AUTO_CLAMPED", 138.88888359069824, -3.3053638735980754e-16, "AUTO_CLAMPED"], [0.0, 116.66666666666669, "BEZIER", "AUTO", 177.77778307596842, 0.0, "AUTO_CLAMPED", 255.55555025736493, 0.0, "AUTO_CLAMPED"]]}}, "Safety": {"location": {"x": [[-1.485612965979044e-08, 0.0, "BEZIER", "AUTO", 5.555555721124013, -1.485612965979044e-08, "AUTO_CLAMPED"], [0.25, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 0.25, "AUTO_CLAMPED", 677.7777989705404, 0.25, "AUTO_CLAMPED"], [0.25, 1983.3333333333333, "BEZIER", "AUTO", 1338.8888041178386, 0.25, "AUTO_CLAMPED", 2027.7777353922525, 0.25, "AUTO_CLAMPED"], [0.0, 83.33333333333348, "BEZIER", "AUTO", 2055.5555979410806, 0.0, "AUTO_CLAMPED", 2111.111068725586, 0.0, "AUTO_CLAMPED"]]}}}, "FireDry": {"Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [-0.1619010716676712, 183.3333333333333, "BEZIER", "AUTO", 255.55555025736493, -0.1049237996339798, "AUTO_CLAMPED", 350.0, -0.1929795891046524, "AUTO_CLAMPED"], [-0.23081070184707642, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, -0.20979301631450653, "AUTO_CLAMPED", 461.1111005147298, -0.25883427262306213, "AUTO_CLAMPED"], [-0.2943320870399475, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, -0.2943320870399475, "AUTO_CLAMPED", 572.2222010294596, -0.2943320870399475, "AUTO_CLAMPED"], [-0.21849314868450165, 66.66666666666674, "BEZIER", "AUTO", 594.444465637207, -0.25429102778434753, "AUTO_CLAMPED", 705.555534362793, -0.07530158758163452, "AUTO_CLAMPED"], [0.0, 266.6666666666665, "BEZIER", "AUTO", 794.444465637207, 0.0, "AUTO_CLAMPED", 972.2222010294597, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -0.0, "AUTO_CLAMPED", 194.44444974263507, -0.0, "AUTO_CLAMPED"], [0.0017719045281410217, 183.3333333333333, "BEZIER", "AUTO", 255.55555025736493, 0.0017719045281410217, "AUTO_CLAMPED", 350.0, 0.0017719045281410217, "AUTO_CLAMPED"], [-0.30075472593307495, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, -0.23500275611877441, "AUTO_CLAMPED", 461.1111005147298, -0.38842400908470154, "AUTO_CLAMPED"], [-0.38842400908470154, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, -0.38842400908470154, "AUTO_CLAMPED", 572.2222010294596, -0.38842400908470154, "AUTO_CLAMPED"], [-0.08043090999126434, 66.66666666666674, "BEZIER", "AUTO", 594.444465637207, -0.10053864121437073, "AUTO_CLAMPED", 705.555534362793, -0.0, "AUTO_CLAMPED"], [-0.0, 266.6666666666665, "BEZIER", "AUTO", 794.444465637207, -0.0, "AUTO_CLAMPED", 972.2222010294597, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.8948926329612732, 183.3333333333333, "BEZIER", "AUTO", 255.55555025736493, 0.8948926329612732, "AUTO_CLAMPED", 350.0, 0.8948926329612732, "AUTO_CLAMPED"], [0.8227108120918274, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, 0.8227108120918274, "AUTO_CLAMPED", 461.1111005147298, 0.8227108120918274, "AUTO_CLAMPED"], [0.9215061664581299, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 0.9215061664581299, "AUTO_CLAMPED", 572.2222010294596, 0.9215061664581299, "AUTO_CLAMPED"], [0.8227109313011169, 66.66666666666674, "BEZIER", "AUTO", 594.444465637207, 0.8827967643737793, "AUTO_CLAMPED", 705.555534362793, 0.5823675394058228, "AUTO_CLAMPED"], [0.0, 266.6666666666665, "BEZIER", "AUTO", 794.444465637207, 0.0, "AUTO_CLAMPED", 972.2222010294597, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [-8.03014668547821, 183.3333333333333, "BEZIER", "AUTO", 255.55555025736493, -5.0853387993575385, "AUTO_CLAMPED", 350.0, -9.636405687684693, "AUTO_CLAMPED"], [-11.123879162488192, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, -10.605811875263665, "AUTO_CLAMPED", 461.1111005147298, -11.8146349762718, "AUTO_CLAMPED"], [-11.8146349762718, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, -11.8146349762718, "AUTO_CLAMPED", 572.2222010294596, -11.8146349762718, "AUTO_CLAMPED"], [-7.397934984391721, 66.66666666666674, "BEZIER", "AUTO", 594.444465637207, -9.24741873048965, "AUTO_CLAMPED", 705.555534362793, 0.0, "AUTO_CLAMPED"], [0.0, 266.6666666666665, "BEZIER", "AUTO", 794.444465637207, 0.0, "AUTO_CLAMPED", 972.2222010294597, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -0.0, "AUTO_CLAMPED", 194.44444974263507, -0.0, "AUTO_CLAMPED"], [4.904490331174411, 183.3333333333333, "BEZIER", "AUTO", 255.55555025736493, 3.6124584506025945, "AUTO_CLAMPED", 350.0, 5.60923522615185, "AUTO_CLAMPED"], [5.641247895904876, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, 5.62360509039191, "AUTO_CLAMPED", 461.1111005147298, 5.664771494293223, "AUTO_CLAMPED"], [5.694113986967598, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 5.694113986967598, "AUTO_CLAMPED", 572.2222010294596, 5.694113986967598, "AUTO_CLAMPED"], [5.0084014141124, 66.66666666666674, "BEZIER", "AUTO", 594.444465637207, 5.4078961904586835, "AUTO_CLAMPED", 705.555534362793, 3.4104218818404406, "AUTO_CLAMPED"], [-0.0, 266.6666666666665, "BEZIER", "AUTO", 794.444465637207, -0.0, "AUTO_CLAMPED", 972.2222010294597, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [-2.5315146335470806, 183.3333333333333, "BEZIER", "AUTO", 255.55555025736493, -1.7923157030751582, "AUTO_CLAMPED", 350.0, -2.934714147187862, "AUTO_CLAMPED"], [-3.140443713856877, 100.00000000000006, "BEZIER", "AUTO", 383.3333333333333, -3.0245894048248863, "AUTO_CLAMPED", 461.1111005147298, -3.2949163393429433, "AUTO_CLAMPED"], [-3.495574063666401, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, -3.495574063666401, "AUTO_CLAMPED", 572.2222010294596, -3.495574063666401, "AUTO_CLAMPED"], [-1.197574526497065, 66.66666666666674, "BEZIER", "AUTO", 594.444465637207, -1.4969681848017575, "AUTO_CLAMPED", 705.555534362793, 0.0, "AUTO_CLAMPED"], [0.0, 266.6666666666665, "BEZIER", "AUTO", 794.444465637207, 0.0, "AUTO_CLAMPED", 972.2222010294597, 0.0, "AUTO_CLAMPED"]]}}, "Handle": {"location": {"x": [[0.375, 0.0, "BEZIER", "AUTO", 72.22222487131755, 0.375, "AUTO_CLAMPED"], [0.375, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 0.375, "AUTO_CLAMPED", 266.6666666666667, 0.375, "AUTO_CLAMPED"], [0.29343682527542114, 149.99999999999994, "BEZIER", "EASE_IN", 316.66666666666663, 0.29343682527542114, "AUTO_CLAMPED", 405.55556615193683, 0.29343682527542114, "AUTO_CLAMPED"], [0.29343682527542114, 116.66666666666669, "QUAD", "EASE_IN", 444.44443384806317, 0.29343682527542114, "AUTO_CLAMPED"], [0.375, 50.00000000000006, "BEZIER", "AUTO", 550.0, 0.375, "AUTO_CLAMPED"]], "z": [[2.375, 0.0, "BEZIER", "AUTO", 72.22222487131755, 2.375, "AUTO_CLAMPED"], [2.375, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, 2.375, "AUTO_CLAMPED", 266.6666666666667, 2.375, "AUTO_CLAMPED"], [0.3861556053161621, 149.99999999999994, "BEZIER", "EASE_IN", 316.66666666666663, 0.3861556053161621, "AUTO_CLAMPED", 405.55556615193683, 0.3861556053161621, "AUTO_CLAMPED"], [0.3861556053161621, 116.66666666666669, "QUAD", "EASE_IN", 444.44443384806317, 0.3861556053161621, "AUTO_CLAMPED"], [2.375, 50.00000000000006, "BEZIER", "AUTO", 550.0, 2.375, "AUTO_CLAMPED"]], "y": [[-0.062499821186065674, 0.0, "BEZIER", "AUTO", 72.22222487131755, -0.062499821186065674, "AUTO_CLAMPED"], [-0.062499821186065674, 216.66666666666669, "BEZIER", "AUTO", 144.44443384806317, -0.062499821186065674, "AUTO_CLAMPED", 266.6666666666667, -0.062499821186065674, "AUTO_CLAMPED"], [-0.10900178551673889, 149.99999999999994, "BEZIER", "EASE_IN", 316.66666666666663, -0.10900178551673889, "AUTO_CLAMPED", 405.55556615193683, -0.10900178551673889, "AUTO_CLAMPED"], [-0.10900178551673889, 116.66666666666669, "QUAD", "EASE_IN", 444.44443384806317, -0.10900178551673889, "AUTO_CLAMPED"], [-0.062499821186065674, 50.00000000000006, "BEZIER", "AUTO", 550.0, -0.062499821186065674, "AUTO_CLAMPED"]]}}, "Safety": {"location": {"x": [[-1.485612965979044e-08, 0.0, "BEZIER", "AUTO", 5.555555721124013, -1.485612965979044e-08, "AUTO_CLAMPED"], [0.25, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 0.25, "AUTO_CLAMPED", 677.7777989705404, 0.25, "AUTO_CLAMPED"], [0.25, 1983.3333333333333, "BEZIER", "AUTO", 1338.8888041178386, 0.25, "AUTO_CLAMPED", 2027.7777353922525, 0.25, "AUTO_CLAMPED"], [0.0, 83.33333333333348, "BEZIER", "AUTO", 2055.5555979410806, 0.0, "AUTO_CLAMPED", 2111.111068725586, 0.0, "AUTO_CLAMPED"]]}}}, "Inspect": {"Barrel": {"location": {"x": [[-3.4825498573809455e-07, 0.0, "BEZIER", "AUTO", 194.44444974263507, -3.4825498573809455e-07, "AUTO_CLAMPED"], [-3.4825498573809455e-07, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, -3.4825498573809455e-07, "AUTO_CLAMPED", 661.1111323038737, -3.4825498573809455e-07, "AUTO_CLAMPED"], [-3.476189931461704e-07, 233.33333333333326, "BEZIER", "AUTO", 738.8888676961262, -3.478257042388577e-07, "AUTO_CLAMPED", 961.1111323038737, -3.4723512953860336e-07, "AUTO_CLAMPED"], [-3.2426760299131274e-07, 433.33333333333337, "BEZIER", "AUTO", 1105.5555979410808, -3.476189931461704e-07, "AUTO_CLAMPED", 1277.7777353922527, -3.197769444795995e-07, "AUTO_CLAMPED"], [1.0077298879623413, 83.33333333333326, "BEZIER", "AUTO", 1305.5555979410806, 0.5834590196609497, "AUTO_CLAMPED", 1416.6666666666667, 2.2805423736572266, "AUTO_CLAMPED"], [2.2805423736572266, 250.0, "BEZIER", "AUTO", 1500.0, 2.219541549682617, "AUTO_CLAMPED", 1638.8889312744138, 2.321209669113159, "AUTO_CLAMPED"], [2.416100025177002, 166.66666666666674, "BEZIER", "AUTO", 1694.4444020589194, 2.416100025177002, "AUTO_CLAMPED", 1827.7777353922527, 2.416100025177002, "AUTO_CLAMPED"], [0.6327074766159058, 233.33333333333348, "BEZIER", "AUTO", 1905.5555979410808, 0.8426411747932434, "AUTO_CLAMPED", 2266.6666666666665, -0.13205105066299438, "AUTO_CLAMPED"], [-0.13205105066299438, 850.0, "BEZIER", "AUTO", 2550.0, -0.13205105066299438, "AUTO_CLAMPED", 2944.4445292154946, -0.13205105066299438, "AUTO_CLAMPED"], [1.7186524868011475, 333.33333333333303, "BEZIER", "AUTO", 3055.5554707845054, 0.9271268844604492, "AUTO_CLAMPED", 3222.222137451172, 2.114415168762207, "AUTO_CLAMPED"], [2.443265438079834, 166.66666666666697, "BEZIER", "AUTO", 3277.7778625488277, 2.443265438079834, "AUTO_CLAMPED", 3461.1111958821616, 2.443265438079834, "AUTO_CLAMPED"], [-3.2426760299131274e-07, 383.3333333333335, "BEZIER", "AUTO", 3588.8888041178384, -2.8295360721131146e-07, "AUTO_CLAMPED", 3788.8888041178384, -3.476189931461704e-07, "AUTO_CLAMPED"], [-3.476189931461704e-07, 216.66666666666606, "BEZIER", "AUTO", 3861.111195882161, -3.4734756582111004e-07, "AUTO_CLAMPED", 3983.3333333333335, -3.478068890672148e-07, "AUTO_CLAMPED"], [-3.4825498573809455e-07, 150.0, "BEZIER", "AUTO", 4033.333333333333, -3.4825498573809455e-07, "AUTO_CLAMPED", 4133.333333333333, -3.4825498573809455e-07, "AUTO_CLAMPED"]], "z": [[2.999999761581421, 0.0, "BEZIER", "AUTO", 194.44444974263507, 2.999999761581421, "AUTO_CLAMPED"], [2.999999761581421, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 2.999999761581421, "AUTO_CLAMPED", 661.1111323038737, 2.999999761581421, "AUTO_CLAMPED"], [3.153888702392578, 233.33333333333326, "BEZIER", "AUTO", 738.8888676961262, 2.999999761581421, "AUTO_CLAMPED", 961.1111323038737, 3.4396824836730957, "AUTO_CLAMPED"], [8.80422592163086, 433.33333333333337, "BEZIER", "AUTO", 1105.5555979410808, 7.72268009185791, "AUTO_CLAMPED", 1277.7777353922527, 9.012215614318848, "AUTO_CLAMPED"], [9.101808547973633, 83.33333333333326, "BEZIER", "AUTO", 1305.5555979410806, 9.101808547973633, "AUTO_CLAMPED", 1416.6666666666667, 9.101808547973633, "AUTO_CLAMPED"], [9.039411544799805, 250.0, "BEZIER", "AUTO", 1500.0, 9.101808547973633, "AUTO_CLAMPED", 1638.8889312744138, 8.99781322479248, "AUTO_CLAMPED"], [4.012010097503662, 166.66666666666674, "BEZIER", "AUTO", 1694.4444020589194, 4.076910972595215, "AUTO_CLAMPED", 1827.7777353922527, 3.9211485385894775, "AUTO_CLAMPED"], [3.9211485385894775, 233.33333333333348, "BEZIER", "AUTO", 1905.5555979410808, 3.926347017288208, "AUTO_CLAMPED", 2266.6666666666665, 3.9022114276885986, "AUTO_CLAMPED"], [3.7453043460845947, 850.0, "BEZIER", "AUTO", 2550.0, 3.7453043460845947, "AUTO_CLAMPED", 2944.4445292154946, 3.7453043460845947, "AUTO_CLAMPED"], [4.118513107299805, 333.33333333333303, "BEZIER", "AUTO", 3055.5554707845054, 3.7453043460845947, "AUTO_CLAMPED", 3222.222137451172, 4.305117607116699, "AUTO_CLAMPED"], [5.457437992095947, 166.66666666666697, "BEZIER", "AUTO", 3277.7778625488277, 4.835398197174072, "AUTO_CLAMPED", 3461.1111958821616, 6.888129711151123, "AUTO_CLAMPED"], [8.80422592163086, 383.3333333333335, "BEZIER", "AUTO", 3588.8888041178384, 8.80422592163086, "AUTO_CLAMPED", 3788.8888041178384, 8.80422592163086, "AUTO_CLAMPED"], [3.153888702392578, 216.66666666666606, "BEZIER", "AUTO", 3861.111195882161, 3.3761727809906006, "AUTO_CLAMPED", 3983.3333333333335, 2.999999761581421, "AUTO_CLAMPED"], [2.999999761581421, 150.0, "BEZIER", "AUTO", 4033.333333333333, 2.999999761581421, "AUTO_CLAMPED", 4133.333333333333, 2.999999761581421, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 0.0, "AUTO_CLAMPED", 661.1111323038737, 0.0, "AUTO_CLAMPED"], [-1.14656162342186e-09, 233.33333333333326, "BEZIER", "AUTO", 738.8888676961262, 0.0, "AUTO_CLAMPED", 961.1111323038737, -3.2758902257512545e-09, "AUTO_CLAMPED"], [-4.3244856584578883e-08, 433.33333333333337, "BEZIER", "AUTO", 1105.5555979410808, -4.3244856584578883e-08, "AUTO_CLAMPED", 1277.7777353922527, -4.3244856584578883e-08, "AUTO_CLAMPED"], [0.451265811920166, 83.33333333333326, "BEZIER", "AUTO", 1305.5555979410806, 0.451265811920166, "AUTO_CLAMPED", 1416.6666666666667, 0.451265811920166, "AUTO_CLAMPED"], [0.202208012342453, 250.0, "BEZIER", "AUTO", 1500.0, 0.202208012342453, "AUTO_CLAMPED", 1638.8889312744138, 0.202208012342453, "AUTO_CLAMPED"], [1.4557093381881714, 166.66666666666674, "BEZIER", "AUTO", 1694.4444020589194, 0.9137952327728271, "AUTO_CLAMPED", 1827.7777353922527, 2.2143890857696533, "AUTO_CLAMPED"], [2.640509605407715, 233.33333333333348, "BEZIER", "AUTO", 1905.5555979410808, 2.640509605407715, "AUTO_CLAMPED", 2266.6666666666665, 2.640509605407715, "AUTO_CLAMPED"], [2.3980705738067627, 850.0, "BEZIER", "AUTO", 2550.0, 2.5700769424438477, "AUTO_CLAMPED", 2944.4445292154946, 2.3306171894073486, "AUTO_CLAMPED"], [2.0349507331848145, 333.33333333333303, "BEZIER", "AUTO", 3055.5554707845054, 2.2475428581237793, "AUTO_CLAMPED", 3222.222137451172, 1.928654670715332, "AUTO_CLAMPED"], [1.5582460165023804, 166.66666666666697, "BEZIER", "AUTO", 3277.7778625488277, 1.789979100227356, "AUTO_CLAMPED", 3461.1111958821616, 1.0252599716186523, "AUTO_CLAMPED"], [-4.3244856584578883e-08, 383.3333333333335, "BEZIER", "AUTO", 3588.8888041178384, -4.3244856584578883e-08, "AUTO_CLAMPED", 3788.8888041178384, -4.3244856584578883e-08, "AUTO_CLAMPED"], [-1.14656162342186e-09, 216.66666666666606, "BEZIER", "AUTO", 3861.111195882161, -2.8027060672286552e-09, "AUTO_CLAMPED", 3983.3333333333335, 0.0, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 4033.333333333333, 0.0, "AUTO_CLAMPED", 4133.333333333333, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[4.2688682312579694e-07, 0.0, "BEZIER", "AUTO", 194.44444974263507, 4.2688682312579694e-07, "AUTO_CLAMPED"], [4.2688682312579694e-07, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 4.2688682312579694e-07, "AUTO_CLAMPED", 683.3333333333334, 4.2688682312579694e-07, "AUTO_CLAMPED"], [4.2688682312579694e-07, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 4.2688682312579694e-07, "AUTO_CLAMPED", 972.2222010294597, 4.2688682312579694e-07, "AUTO_CLAMPED"], [4.2688682312579694e-07, 266.66666666666674, "BEZIER", "AUTO", 1061.1111323038738, 4.2688682312579694e-07, "AUTO_CLAMPED", 1166.6666666666667, 4.2688682312579694e-07, "AUTO_CLAMPED"], [4.2688682312579694e-07, 50.0, "BEZIER", "AUTO", 1183.3333333333333, 4.2688682312579694e-07, "AUTO_CLAMPED", 1244.4444020589192, 4.2688682312579694e-07, "AUTO_CLAMPED"], [-4.966584861579466, 133.33333333333326, "BEZIER", "AUTO", 1288.888931274414, -4.966584861579466, "AUTO_CLAMPED", 1394.4444020589192, -4.966584861579466, "AUTO_CLAMPED"], [1.9358982322598737, 183.33333333333326, "BEZIER", "AUTO", 1455.5555979410808, 1.9358982322598737, "AUTO_CLAMPED", 1688.888931274414, 1.9358982322598737, "AUTO_CLAMPED"], [-6.827979603816252, 516.6666666666667, "BEZIER", "AUTO", 1861.111068725586, -5.420612722032778, "AUTO_CLAMPED", 2300.0, -9.007128406620371, "AUTO_CLAMPED"], [-9.007128406620371, 800.0000000000002, "BEZIER", "AUTO", 2566.6666666666665, -9.007128406620371, "AUTO_CLAMPED", 2922.222137451172, -9.007128406620371, "AUTO_CLAMPED"], [2.9107004827265666, 266.6666666666665, "BEZIER", "AUTO", 3011.111195882161, 2.9107004827265666, "AUTO_CLAMPED", 3244.4445292154946, 2.9107004827265666, "AUTO_CLAMPED"], [0.48410032959523186, 433.33333333333303, "BEZIER", "AUTO", 3388.888804117839, 1.3711487364924237, "AUTO_CLAMPED", 3577.777862548828, 0.21116234182352578, "AUTO_CLAMPED"], [4.2688682312579694e-07, 133.33333333333348, "BEZIER", "AUTO", 3622.2221374511714, 4.2688682312579694e-07, "AUTO_CLAMPED", 3755.5554707845054, 4.2688682312579694e-07, "AUTO_CLAMPED"], [4.2688682312579694e-07, 266.6666666666665, "BEZIER", "AUTO", 3844.4445292154946, 4.2688682312579694e-07, "AUTO_CLAMPED", 3983.3333333333335, 4.2688682312579694e-07, "AUTO_CLAMPED"], [4.2688682312579694e-07, 150.0, "BEZIER", "AUTO", 4033.333333333333, 4.2688682312579694e-07, "AUTO_CLAMPED", 4133.333333333333, 4.2688682312579694e-07, "AUTO_CLAMPED"]], "z": [[5.336085289072462e-08, 0.0, "BEZIER", "AUTO", 194.44444974263507, 5.336085289072462e-08, "AUTO_CLAMPED"], [5.336085289072462e-08, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 5.336085289072462e-08, "AUTO_CLAMPED", 683.3333333333334, 5.336085289072462e-08, "AUTO_CLAMPED"], [21.229704968807646, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 21.229704968807646, "AUTO_CLAMPED", 972.2222010294597, 21.229704968807646, "AUTO_CLAMPED"], [-0.0, 266.66666666666674, "BEZIER", "AUTO", 1061.1111323038738, -0.0, "AUTO_CLAMPED", 1166.6666666666667, -0.0, "AUTO_CLAMPED"], [-0.0, 50.0, "BEZIER", "AUTO", 1183.3333333333333, -0.0, "AUTO_CLAMPED", 1244.4444020589192, -0.0, "AUTO_CLAMPED"], [-2.0298756588237254, 133.33333333333326, "BEZIER", "AUTO", 1288.888931274414, -2.0298756588237254, "AUTO_CLAMPED", 1394.4444020589192, -2.0298756588237254, "AUTO_CLAMPED"], [-0.5952278809173096, 183.33333333333326, "BEZIER", "AUTO", 1455.5555979410808, -2.0298756588237254, "AUTO_CLAMPED", 1688.888931274414, 3.447870101512328, "AUTO_CLAMPED"], [106.08308992424222, 516.6666666666667, "BEZIER", "AUTO", 1861.111068725586, 106.08308992424222, "AUTO_CLAMPED", 2300.0, 106.08308992424222, "AUTO_CLAMPED"], [105.00005414830997, 800.0000000000002, "BEZIER", "AUTO", 2566.6666666666665, 106.08308992424222, "AUTO_CLAMPED", 2922.222137451172, 104.63904449972894, "AUTO_CLAMPED"], [64.47990225569596, 266.6666666666665, "BEZIER", "AUTO", 3011.111195882161, 81.97973483386073, "AUTO_CLAMPED", 3244.4445292154946, 36.042676023725505, "AUTO_CLAMPED"], [21.229704968807646, 433.33333333333303, "BEZIER", "AUTO", 3388.888804117839, 21.229704968807646, "AUTO_CLAMPED", 3666.6666666666665, 21.229704968807646, "AUTO_CLAMPED"], [21.229704968807646, 400.0, "BEZIER", "AUTO", 3800.0, 21.229704968807646, "AUTO_CLAMPED", 3983.3333333333335, 21.229704968807646, "AUTO_CLAMPED"], [5.336085289072462e-08, 150.0, "BEZIER", "AUTO", 4033.333333333333, 5.336085289072462e-08, "AUTO_CLAMPED", 4133.333333333333, 5.336085289072462e-08, "AUTO_CLAMPED"]], "y": [[2.3678878470259048e-07, 0.0, "BEZIER", "AUTO", 194.44444974263507, 2.3678878470259048e-07, "AUTO_CLAMPED"], [2.3678878470259048e-07, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 2.3678878470259048e-07, "AUTO_CLAMPED", 683.3333333333334, 2.3678878470259048e-07, "AUTO_CLAMPED"], [2.3678878470259048e-07, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 2.3678878470259048e-07, "AUTO_CLAMPED", 972.2222010294597, 2.3678878470259048e-07, "AUTO_CLAMPED"], [2.3678878470259048e-07, 266.66666666666674, "BEZIER", "AUTO", 1061.1111323038738, 2.3678878470259048e-07, "AUTO_CLAMPED", 1166.6666666666667, 2.3678878470259048e-07, "AUTO_CLAMPED"], [2.3678878470259048e-07, 50.0, "BEZIER", "AUTO", 1183.3333333333333, 2.3678878470259048e-07, "AUTO_CLAMPED", 1244.4444020589192, 2.3678878470259048e-07, "AUTO_CLAMPED"], [1.115360179787856, 133.33333333333326, "BEZIER", "AUTO", 1288.888931274414, 1.115360179787856, "AUTO_CLAMPED", 1394.4444020589192, 1.115360179787856, "AUTO_CLAMPED"], [-4.12851638155067, 183.33333333333326, "BEZIER", "AUTO", 1455.5555979410808, -4.12851638155067, "AUTO_CLAMPED", 1688.888931274414, -4.12851638155067, "AUTO_CLAMPED"], [9.113779249189182, 516.6666666666667, "BEZIER", "AUTO", 1861.111068725586, 9.113779249189182, "AUTO_CLAMPED", 2300.0, 9.113779249189182, "AUTO_CLAMPED"], [7.091429391613753, 800.0000000000002, "BEZIER", "AUTO", 2566.6666666666665, 9.113779249189182, "AUTO_CLAMPED", 2922.222137451172, 6.417312772421942, "AUTO_CLAMPED"], [3.5139701109787724, 266.6666666666665, "BEZIER", "AUTO", 3011.111195882161, 3.5139701109787724, "AUTO_CLAMPED", 3244.4445292154946, 3.5139701109787724, "AUTO_CLAMPED"], [5.187581608590752, 433.33333333333303, "BEZIER", "AUTO", 3388.888804117839, 5.187581608590752, "AUTO_CLAMPED", 3577.777862548828, 5.187581608590752, "AUTO_CLAMPED"], [2.3678878470259048e-07, 133.33333333333348, "BEZIER", "AUTO", 3622.2221374511714, 2.3678878470259048e-07, "AUTO_CLAMPED", 3755.5554707845054, 2.3678878470259048e-07, "AUTO_CLAMPED"], [2.3678878470259048e-07, 266.6666666666665, "BEZIER", "AUTO", 3844.4445292154946, 2.3678878470259048e-07, "AUTO_CLAMPED", 3983.3333333333335, 2.3678878470259048e-07, "AUTO_CLAMPED"], [2.3678878470259048e-07, 150.0, "BEZIER", "AUTO", 4033.333333333333, 2.3678878470259048e-07, "AUTO_CLAMPED", 4133.333333333333, 2.3678878470259048e-07, "AUTO_CLAMPED"]]}}, "Breech": {"location": {"x": [[-1.485612965979044e-08, 0.0, "BEZIER", "AUTO", 55.555554231007896, -1.485612965979044e-08, "AUTO_CLAMPED"], [-1.485612965979044e-08, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -1.485612965979044e-08, "AUTO_CLAMPED", 194.44444974263507, -1.485612965979044e-08, "AUTO_CLAMPED"], [-1.2877069188732548e-08, 83.33333333333334, "BEZIER", "AUTO", 222.22221692403158, -1.2877069188732548e-08, "AUTO_CLAMPED", 1605.5555979410808, -1.2877069188732548e-08, "AUTO_CLAMPED"], [-1.2877069188732548e-08, 4066.666666666666, "QUAD", "EASE_IN", 2961.1109415690103, -1.2877069188732548e-08, "AUTO_CLAMPED"], [-1.2877069188732548e-08, 83.33333333333394, "BEZIER", "AUTO", 4427.777608235677, -1.2877069188732548e-08, "AUTO_CLAMPED"]], "z": [[-8.634078341174245e-08, 0.0, "BEZIER", "AUTO", 55.555554231007896, -8.634078341174245e-08, "AUTO_CLAMPED"], [-8.634078341174245e-08, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -8.634078341174245e-08, "AUTO_CLAMPED", 194.44444974263507, -8.634078341174245e-08, "AUTO_CLAMPED"], [-1.5, 83.33333333333334, "BEZIER", "AUTO", 222.22221692403158, -1.5, "AUTO_CLAMPED", 1605.5555979410808, -1.5, "AUTO_CLAMPED"], [-1.5, 4066.666666666666, "QUAD", "EASE_IN", 2961.1109415690103, -1.5, "AUTO_CLAMPED"], [-0.0, 83.33333333333394, "BEZIER", "AUTO", 4427.777608235677, -0.0, "AUTO_CLAMPED"]], "y": [[2.3298342421984586e-11, 0.0, "BEZIER", "AUTO", 55.555554231007896, 2.3298342421984586e-11, "AUTO_CLAMPED"], [2.3298342421984586e-11, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.3298342421984586e-11, "AUTO_CLAMPED", 194.44444974263507, 2.3298342421984586e-11, "AUTO_CLAMPED"], [2.3298342421984586e-11, 83.33333333333334, "BEZIER", "AUTO", 222.22221692403158, 2.3298342421984586e-11, "AUTO_CLAMPED", 1605.5555979410808, 2.3298342421984586e-11, "AUTO_CLAMPED"], [2.3298342421984586e-11, 4066.666666666666, "QUAD", "EASE_IN", 2961.1109415690103, 2.3298342421984586e-11, "AUTO_CLAMPED"], [2.3298342421984586e-11, 83.33333333333394, "BEZIER", "AUTO", 4427.777608235677, 2.3298342421984586e-11, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [-0.02083667740225792, 150.0, "BEZIER", "AUTO", 100.0, -0.02083667740225792, "AUTO_CLAMPED", 177.77778307596842, -0.02083667740225792, "AUTO_CLAMPED"], [0.0423724502325058, 83.33333333333334, "BEZIER", "AUTO", 205.5555502573649, 0.03780621662735939, "AUTO_CLAMPED", 272.2222328186035, 0.04876517504453659, "AUTO_CLAMPED"], [0.04876517504453659, 116.66666666666666, "BEZIER", "AUTO", 311.1111005147298, 0.04459141194820404, "AUTO_CLAMPED", 427.7777671813965, 0.05711269751191139, "AUTO_CLAMPED"], [0.15443837642669678, 233.33333333333337, "BEZIER", "AUTO", 505.5555661519369, 0.098850317299366, "AUTO_CLAMPED", 638.8888676961263, 0.1941441297531128, "AUTO_CLAMPED"], [0.27173158526420593, 166.66666666666663, "BEZIER", "AUTO", 694.444465637207, 0.2409164309501648, "AUTO_CLAMPED", 777.7777989705403, 0.2871391475200653, "AUTO_CLAMPED"], [0.29855743050575256, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, 0.29855743050575256, "AUTO_CLAMPED", 961.1111323038737, 0.29855743050575256, "AUTO_CLAMPED"], [0.2740669250488281, 383.33333333333314, "BEZIER", "AUTO", 1088.888931274414, 0.2740669250488281, "AUTO_CLAMPED", 1255.5555979410806, 0.2740669250488281, "AUTO_CLAMPED"], [0.2740669250488281, 116.66666666666674, "BEZIER", "AUTO", 1294.4444020589192, 0.2740669250488281, "AUTO_CLAMPED", 1472.2222646077473, 0.2740669250488281, "AUTO_CLAMPED"], [0.4802725315093994, 416.66666666666674, "BEZIER", "AUTO", 1611.111068725586, 0.2740669250488281, "AUTO_CLAMPED", 1827.7777353922527, 0.5957476496696472, "AUTO_CLAMPED"], [1.9431005716323853, 233.33333333333348, "BEZIER", "AUTO", 1905.5555979410808, 1.9431005716323853, "AUTO_CLAMPED", 2266.6666666666665, 1.9431005716323853, "AUTO_CLAMPED"], [1.907791018486023, 850.0, "BEZIER", "AUTO", 2550.0, 1.9431005716323853, "AUTO_CLAMPED", 3000.0, 1.8870207071304321, "AUTO_CLAMPED"], [0.3691011667251587, 500.0, "BEZIER", "AUTO", 3166.6666666666665, 1.1041052341461182, "AUTO_CLAMPED", 3388.888804117839, 0.12409980595111847, "AUTO_CLAMPED"], [-0.11557845771312714, 166.66666666666652, "BEZIER", "AUTO", 3444.4445292154946, -0.11557845771312714, "AUTO_CLAMPED", 3611.111195882161, -0.11557845771312714, "AUTO_CLAMPED"], [-0.020050223916769028, 333.3333333333335, "BEZIER", "AUTO", 3722.222137451172, -0.08285386860370636, "AUTO_CLAMPED", 3894.4445292154946, 0.014491777867078781, "AUTO_CLAMPED"], [0.05813262239098549, 183.33333333333303, "BEZIER", "AUTO", 3955.555470784505, 0.05813262239098549, "AUTO_CLAMPED", 4038.888804117838, 0.05813262239098549, "AUTO_CLAMPED"], [-0.02910347655415535, 66.66666666666652, "BEZIER", "AUTO", 4061.1111958821616, -0.020191330462694168, "AUTO_CLAMPED", 4144.444529215494, -0.0536118783056736, "AUTO_CLAMPED"], [-0.0536118783056736, 183.33333333333394, "BEZIER", "AUTO", 4205.555470784505, -0.0536118783056736, "AUTO_CLAMPED", 4311.110941569011, -0.0536118783056736, "AUTO_CLAMPED"], [-0.06167206913232803, 133.33333333333303, "BEZIER", "AUTO", 4355.555725097656, -0.0536118783056736, "AUTO_CLAMPED", 4433.333333333334, -0.06771720945835114, "AUTO_CLAMPED"], [-0.1415620893239975, 100.0, "BEZIER", "AUTO", 4466.666666666667, -0.1415620893239975, "AUTO_CLAMPED", 4550.0, -0.1415620893239975, "AUTO_CLAMPED"], [-0.08136281371116638, 150.0, "BEZIER", "AUTO", 4600.0, -0.11289574205875397, "AUTO_CLAMPED", 4711.11094156901, -0.04282256215810776, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 4772.222391764322, 0.0, "AUTO_CLAMPED", 4894.444274902344, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 50.0, -0.0, "AUTO_CLAMPED"], [0.06308488547801971, 150.0, "BEZIER", "AUTO", 100.0, 0.050379302352666855, "AUTO_CLAMPED", 177.77778307596842, 0.07014354318380356, "AUTO_CLAMPED"], [0.07014354318380356, 83.33333333333334, "BEZIER", "AUTO", 205.5555502573649, 0.07014354318380356, "AUTO_CLAMPED", 272.2222328186035, 0.07014354318380356, "AUTO_CLAMPED"], [-0.2970268726348877, 116.66666666666666, "BEZIER", "AUTO", 311.1111005147298, -0.2970268726348877, "AUTO_CLAMPED", 427.7777671813965, -0.2970268726348877, "AUTO_CLAMPED"], [0.48283126950263977, 233.33333333333337, "BEZIER", "AUTO", 505.5555661519369, 0.4784080684185028, "AUTO_CLAMPED", 638.8888676961263, 0.4859907031059265, "AUTO_CLAMPED"], [0.4859907031059265, 166.66666666666663, "BEZIER", "AUTO", 694.444465637207, 0.4859907031059265, "AUTO_CLAMPED", 777.7777989705403, 0.4859907031059265, "AUTO_CLAMPED"], [0.48505380749702454, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, 0.4859907031059265, "AUTO_CLAMPED", 961.1111323038737, 0.4807440936565399, "AUTO_CLAMPED"], [-0.9854410886764526, 383.33333333333314, "BEZIER", "AUTO", 1088.888931274414, -0.9854410886764526, "AUTO_CLAMPED", 1255.5555979410806, -0.9854410886764526, "AUTO_CLAMPED"], [-0.9854410886764526, 116.66666666666674, "BEZIER", "AUTO", 1294.4444020589192, -0.9854410886764526, "AUTO_CLAMPED", 1472.2222646077473, -0.9854410886764526, "AUTO_CLAMPED"], [-0.260303258895874, 416.66666666666674, "BEZIER", "AUTO", 1611.111068725586, -0.5004230737686157, "AUTO_CLAMPED", 1827.7777353922527, -0.12583616375923157, "AUTO_CLAMPED"], [-0.059579282999038696, 233.33333333333348, "BEZIER", "AUTO", 1905.5555979410808, -0.06816916912794113, "AUTO_CLAMPED", 2266.6666666666665, -0.02828754484653473, "AUTO_CLAMPED"], [-0.02828754484653473, 850.0, "BEZIER", "AUTO", 2550.0, -0.02828754484653473, "AUTO_CLAMPED", 3000.0, -0.02828754484653473, "AUTO_CLAMPED"], [-0.7562031745910645, 500.0, "BEZIER", "AUTO", 3166.6666666666665, -0.028287529945373535, "AUTO_CLAMPED", 3388.888804117839, -0.9988417625427246, "AUTO_CLAMPED"], [-1.45088529586792, 166.66666666666652, "BEZIER", "AUTO", 3444.4445292154946, -1.45088529586792, "AUTO_CLAMPED", 3611.111195882161, -1.45088529586792, "AUTO_CLAMPED"], [-0.34966766834259033, 333.3333333333335, "BEZIER", "AUTO", 3722.222137451172, -1.0736470222473145, "AUTO_CLAMPED", 3894.4445292154946, 0.04852098226547241, "AUTO_CLAMPED"], [0.551598072052002, 183.33333333333303, "BEZIER", "AUTO", 3955.555470784505, 0.551598072052002, "AUTO_CLAMPED", 4038.888804117838, 0.551598072052002, "AUTO_CLAMPED"], [0.21308356523513794, 66.66666666666652, "BEZIER", "AUTO", 4061.1111958821616, 0.21308356523513794, "AUTO_CLAMPED", 4144.444529215494, 0.21308356523513794, "AUTO_CLAMPED"], [0.28127816319465637, 183.33333333333394, "BEZIER", "AUTO", 4205.555470784505, 0.2418711632490158, "AUTO_CLAMPED", 4311.110941569011, 0.30993780493736267, "AUTO_CLAMPED"], [0.5588431358337402, 133.33333333333303, "BEZIER", "AUTO", 4355.555725097656, 0.3442142605781555, "AUTO_CLAMPED", 4433.333333333334, 0.7198147773742676, "AUTO_CLAMPED"], [0.9822345972061157, 100.0, "BEZIER", "AUTO", 4466.666666666667, 0.9822345972061157, "AUTO_CLAMPED", 4550.0, 0.9822345972061157, "AUTO_CLAMPED"], [0.5645393133163452, 150.0, "BEZIER", "AUTO", 4600.0, 0.7833319306373596, "AUTO_CLAMPED", 4711.11094156901, 0.2971261441707611, "AUTO_CLAMPED"], [-0.0, 183.33333333333303, "BEZIER", "AUTO", 4772.222391764322, -0.0, "AUTO_CLAMPED", 4894.444274902344, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [0.29495516419410706, 150.0, "BEZIER", "AUTO", 100.0, 0.012983113527297974, "AUTO_CLAMPED", 177.77778307596842, 0.45160630345344543, "AUTO_CLAMPED"], [0.6912786960601807, 83.33333333333334, "BEZIER", "AUTO", 205.5555502573649, 0.6912786960601807, "AUTO_CLAMPED", 272.2222328186035, 0.6912786960601807, "AUTO_CLAMPED"], [0.65456223487854, 116.66666666666666, "BEZIER", "AUTO", 311.1111005147298, 0.6773354411125183, "AUTO_CLAMPED", 427.7777671813965, 0.6090157628059387, "AUTO_CLAMPED"], [0.5281488299369812, 233.33333333333337, "BEZIER", "AUTO", 505.5555661519369, 0.5281493067741394, "AUTO_CLAMPED", 638.8888676961263, 0.5281484723091125, "AUTO_CLAMPED"], [0.5281484723091125, 166.66666666666663, "BEZIER", "AUTO", 694.444465637207, 0.5281488299369812, "AUTO_CLAMPED", 777.7777989705403, 0.5281482934951782, "AUTO_CLAMPED"], [0.4392372965812683, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, 0.4585650563240051, "AUTO_CLAMPED", 961.1111323038737, 0.35032957792282104, "AUTO_CLAMPED"], [0.35032957792282104, 383.33333333333314, "BEZIER", "AUTO", 1088.888931274414, 0.35032957792282104, "AUTO_CLAMPED", 1255.5555979410806, 0.35032957792282104, "AUTO_CLAMPED"], [0.35032957792282104, 116.66666666666674, "BEZIER", "AUTO", 1294.4444020589192, 0.35032957792282104, "AUTO_CLAMPED", 1472.2222646077473, 0.35032957792282104, "AUTO_CLAMPED"], [-0.15319062769412994, 416.66666666666674, "BEZIER", "AUTO", 1611.111068725586, -0.15319062769412994, "AUTO_CLAMPED", 1827.7777353922527, -0.15319062769412994, "AUTO_CLAMPED"], [-0.0010606944561004639, 233.33333333333348, "BEZIER", "AUTO", 1905.5555979410808, -0.03289319574832916, "AUTO_CLAMPED", 2266.6666666666665, 0.11490055918693542, "AUTO_CLAMPED"], [0.11490055918693542, 850.0, "BEZIER", "AUTO", 2550.0, 0.11490055918693542, "AUTO_CLAMPED", 3000.0, 0.11490055918693542, "AUTO_CLAMPED"], [-0.09989842027425766, 500.0, "BEZIER", "AUTO", 3166.6666666666665, -0.09989842027425766, "AUTO_CLAMPED", 3388.888804117839, -0.09989842027425766, "AUTO_CLAMPED"], [-0.08923035115003586, 166.66666666666652, "BEZIER", "AUTO", 3444.4445292154946, -0.09767797589302063, "AUTO_CLAMPED", 3611.111195882161, -0.07233510911464691, "AUTO_CLAMPED"], [0.008636273443698883, 333.3333333333335, "BEZIER", "AUTO", 3722.222137451172, -0.03053111955523491, "AUTO_CLAMPED", 3894.4445292154946, 0.030178340151906013, "AUTO_CLAMPED"], [0.06862585991621017, 183.33333333333303, "BEZIER", "AUTO", 3955.555470784505, 0.050922829657793045, "AUTO_CLAMPED", 4038.888804117838, 0.0750633254647255, "AUTO_CLAMPED"], [0.10057792067527771, 66.66666666666652, "BEZIER", "AUTO", 4061.1111958821616, 0.08109861612319946, "AUTO_CLAMPED", 4144.444529215494, 0.1541460007429123, "AUTO_CLAMPED"], [0.3093843460083008, 183.33333333333394, "BEZIER", "AUTO", 4205.555470784505, 0.3093843460083008, "AUTO_CLAMPED", 4311.110941569011, 0.3093843460083008, "AUTO_CLAMPED"], [0.26554036140441895, 133.33333333333303, "BEZIER", "AUTO", 4355.555725097656, 0.26554036140441895, "AUTO_CLAMPED", 4433.333333333334, 0.26554036140441895, "AUTO_CLAMPED"], [0.29273808002471924, 100.0, "BEZIER", "AUTO", 4466.666666666667, 0.29273808002471924, "AUTO_CLAMPED", 4550.0, 0.29273808002471924, "AUTO_CLAMPED"], [0.16825121641159058, 150.0, "BEZIER", "AUTO", 4600.0, 0.23345857858657837, "AUTO_CLAMPED", 4711.11094156901, 0.08855333179235458, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 4772.222391764322, 0.0, "AUTO_CLAMPED", 4894.444274902344, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [-2.9534568266006116, 150.0, "BEZIER", "AUTO", 100.0, -1.3133897753847399, "AUTO_CLAMPED", 177.77778307596842, -3.86460512909737, "AUTO_CLAMPED"], [-5.710508148522921, 83.33333333333334, "BEZIER", "AUTO", 205.5555502573649, -4.876580470678446, "AUTO_CLAMPED", 272.2222328186035, -6.87800732439201, "AUTO_CLAMPED"], [-7.696533779431753, 116.66666666666666, "BEZIER", "AUTO", 311.1111005147298, -7.696533779431753, "AUTO_CLAMPED", 427.7777671813965, -7.696533779431753, "AUTO_CLAMPED"], [-5.8089520919171385, 233.33333333333337, "BEZIER", "AUTO", 505.5555661519369, -6.371148377595473, "AUTO_CLAMPED", 638.8888676961263, -5.4073834993841094, "AUTO_CLAMPED"], [-4.539861962993749, 166.66666666666663, "BEZIER", "AUTO", 694.444465637207, -5.3951971612443375, "AUTO_CLAMPED", 777.7777989705403, -4.112194363868455, "AUTO_CLAMPED"], [-3.127623662228175, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, -3.473739656437163, "AUTO_CLAMPED", 961.1111323038737, -1.535489704668689, "AUTO_CLAMPED"], [-1.535489704668689, 383.33333333333314, "BEZIER", "AUTO", 1088.888931274414, -3.127623662228175, "AUTO_CLAMPED", 1255.5555979410806, -1.0509272700874235, "AUTO_CLAMPED"], [2.7294481796087613, 116.66666666666674, "BEZIER", "AUTO", 1294.4444020589192, 0.9161917568685786, "AUTO_CLAMPED", 1394.4444020589192, 5.578851129629048, "AUTO_CLAMPED"], [8.048309866028566, 183.33333333333326, "BEZIER", "AUTO", 1455.5555979410808, 8.048309866028566, "AUTO_CLAMPED", 1716.6666666666665, 8.048309866028566, "AUTO_CLAMPED"], [-1.0452921505787514, 600.0, "BEZIER", "AUTO", 1916.6666666666667, -1.0452921505787514, "AUTO_CLAMPED", 2355.555470784505, -1.0452921505787514, "AUTO_CLAMPED"], [0.4828017398792832, 716.666666666667, "BEZIER", "AUTO", 2594.4445292154946, -1.0452921505787514, "AUTO_CLAMPED", 2955.555470784505, 1.264617208790677, "AUTO_CLAMPED"], [8.048309866028566, 366.6666666666665, "BEZIER", "AUTO", 3077.777862548828, 8.048309866028566, "AUTO_CLAMPED", 3300.0, 8.048309866028566, "AUTO_CLAMPED"], [2.595919902325716, 300.0, "BEZIER", "AUTO", 3400.0, 4.856025443258115, "AUTO_CLAMPED", 3611.111195882161, 0.08469114405698466, "AUTO_CLAMPED"], [-1.5691175007170122, 333.3333333333335, "BEZIER", "AUTO", 3722.222137451172, -1.2756998310492575, "AUTO_CLAMPED", 3894.4445292154946, -1.7304971550012538, "AUTO_CLAMPED"], [-2.1712955793624857, 183.33333333333303, "BEZIER", "AUTO", 3955.555470784505, -1.5691175007170122, "AUTO_CLAMPED", 4100.0, -2.992447601807864, "AUTO_CLAMPED"], [-11.065961719647424, 250.00000000000045, "BEZIER", "AUTO", 4183.333333333334, -11.065961719647424, "AUTO_CLAMPED", 4311.110941569011, -11.065961719647424, "AUTO_CLAMPED"], [-9.540283581721457, 133.33333333333303, "BEZIER", "AUTO", 4355.555725097656, -11.065961719647424, "AUTO_CLAMPED", 4433.333333333334, -8.396025405163806, "AUTO_CLAMPED"], [-4.054896760694865, 100.0, "BEZIER", "AUTO", 4466.666666666667, -4.523611662297819, "AUTO_CLAMPED", 4550.0, -3.35182419484702, "AUTO_CLAMPED"], [-3.35182419484702, 150.0, "BEZIER", "AUTO", 4600.0, -3.9688641247962066, "AUTO_CLAMPED", 4711.11094156901, -2.597664161885008, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 4772.222391764322, 0.0, "AUTO_CLAMPED", 4894.444274902344, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 50.0, -0.0, "AUTO_CLAMPED"], [2.436934656232387, 150.0, "BEZIER", "AUTO", 100.0, -0.0, "AUTO_CLAMPED", 177.77778307596842, 3.7907874327556343, "AUTO_CLAMPED"], [8.29600667627908, 83.33333333333334, "BEZIER", "AUTO", 205.5555502573649, 7.150087909979468, "AUTO_CLAMPED", 272.2222328186035, 9.900292607589074, "AUTO_CLAMPED"], [9.900292607589074, 116.66666666666666, "BEZIER", "AUTO", 311.1111005147298, 9.900292607589074, "AUTO_CLAMPED", 427.7777671813965, 9.900292607589074, "AUTO_CLAMPED"], [9.537960463630007, 233.33333333333337, "BEZIER", "AUTO", 505.5555661519369, 9.900292607589074, "AUTO_CLAMPED", 638.8888676961263, 9.27915178937353, "AUTO_CLAMPED"], [3.2866599212968675, 166.66666666666663, "BEZIER", "AUTO", 694.444465637207, 3.3280098865321244, "AUTO_CLAMPED", 777.7777989705403, 3.265984938679239, "AUTO_CLAMPED"], [3.265984938679239, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, 3.265984938679239, "AUTO_CLAMPED", 961.1111323038737, 3.265984938679239, "AUTO_CLAMPED"], [3.2300122533114854, 383.33333333333314, "BEZIER", "AUTO", 1088.888931274414, 3.265984938679239, "AUTO_CLAMPED", 1255.5555979410806, 3.21906410040219, "AUTO_CLAMPED"], [2.471013671652754, 116.66666666666674, "BEZIER", "AUTO", 1294.4444020589192, 2.699584671566761, "AUTO_CLAMPED", 1394.4444020589192, 2.111830885231297, "AUTO_CLAMPED"], [1.7888114958658243, 183.33333333333326, "BEZIER", "AUTO", 1455.5555979410808, 2.471013671652754, "AUTO_CLAMPED", 1716.6666666666665, -0.44385013153805253, "AUTO_CLAMPED"], [-53.90040026911519, 600.0, "BEZIER", "AUTO", 1916.6666666666667, -53.75442205107909, "AUTO_CLAMPED", 2355.555470784505, -54.07476475334186, "AUTO_CLAMPED"], [-54.07476475334186, 716.666666666667, "BEZIER", "AUTO", 2594.4445292154946, -54.07476475334186, "AUTO_CLAMPED", 2955.555470784505, -54.07476475334186, "AUTO_CLAMPED"], [1.7888114958658243, 366.6666666666665, "BEZIER", "AUTO", 3077.777862548828, 1.7888114958658243, "AUTO_CLAMPED", 3300.0, 1.7888114958658243, "AUTO_CLAMPED"], [1.7386759863672265, 300.0, "BEZIER", "AUTO", 3400.0, 1.770021752180825, "AUTO_CLAMPED", 3611.111195882161, 1.7038473576854507, "AUTO_CLAMPED"], [1.1032046842210548, 333.3333333333335, "BEZIER", "AUTO", 3722.222137451172, 1.653517507960625, "AUTO_CLAMPED", 3894.4445292154946, 0.8005326418364618, "AUTO_CLAMPED"], [0.3466162255244121, 183.33333333333303, "BEZIER", "AUTO", 3955.555470784505, 0.3466162255244121, "AUTO_CLAMPED", 4100.0, 0.3466162255244121, "AUTO_CLAMPED"], [3.3507091664650157, 250.00000000000045, "BEZIER", "AUTO", 4183.333333333334, 3.275644106826106, "AUTO_CLAMPED", 4311.110941569011, 3.390743893398222, "AUTO_CLAMPED"], [3.390743893398222, 133.33333333333303, "BEZIER", "AUTO", 4355.555725097656, 3.390743893398222, "AUTO_CLAMPED", 4433.333333333334, 3.390743893398222, "AUTO_CLAMPED"], [2.507234591708155, 100.0, "BEZIER", "AUTO", 4466.666666666667, 2.9874869634797308, "AUTO_CLAMPED", 4550.0, 1.786855927329085, "AUTO_CLAMPED"], [0.49128061932106065, 150.0, "BEZIER", "AUTO", 4600.0, 0.8932375187805756, "AUTO_CLAMPED", 4711.11094156901, -0.0, "AUTO_CLAMPED"], [-0.0, 183.33333333333303, "BEZIER", "AUTO", 4772.222391764322, -0.0, "AUTO_CLAMPED", 4894.444274902344, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 50.0, 0.0, "AUTO_CLAMPED"], [-0.7983665113742158, 150.0, "BEZIER", "AUTO", 100.0, -0.6190833838106369, "AUTO_CLAMPED", 177.77778307596842, -0.8979682785544556, "AUTO_CLAMPED"], [-0.992514745253534, 83.33333333333334, "BEZIER", "AUTO", 205.5555502573649, -0.8618291606865364, "AUTO_CLAMPED", 272.2222328186035, -1.1754745956638424, "AUTO_CLAMPED"], [-1.6854107561248821, 116.66666666666666, "BEZIER", "AUTO", 311.1111005147298, -1.6854107561248821, "AUTO_CLAMPED", 427.7777671813965, -1.6854107561248821, "AUTO_CLAMPED"], [-1.1982608537869455, 233.33333333333337, "BEZIER", "AUTO", 505.5555661519369, -1.5772293108517543, "AUTO_CLAMPED", 638.8888676961263, -0.9275690377568215, "AUTO_CLAMPED"], [-0.1777374637585329, 166.66666666666663, "BEZIER", "AUTO", 694.444465637207, -0.5187205841464696, "AUTO_CLAMPED", 777.7777989705403, -0.007245896894457941, "AUTO_CLAMPED"], [0.2512206008928572, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, 0.14627936000938632, "AUTO_CLAMPED", 961.1111323038737, 0.7339503036207379, "AUTO_CLAMPED"], [0.7339503036207379, 383.33333333333314, "BEZIER", "AUTO", 1088.888931274414, 0.2512206008928572, "AUTO_CLAMPED", 1255.5555979410806, 0.8808680461936824, "AUTO_CLAMPED"], [1.674447235289954, 116.66666666666674, "BEZIER", "AUTO", 1294.4444020589192, 1.270214335372091, "AUTO_CLAMPED", 1394.4444020589192, 2.309670302748478, "AUTO_CLAMPED"], [2.9816544088153627, 183.33333333333326, "BEZIER", "AUTO", 1455.5555979410808, 2.9816544088153627, "AUTO_CLAMPED", 1716.6666666666665, 2.9816544088153627, "AUTO_CLAMPED"], [-9.653015000198872, 600.0, "BEZIER", "AUTO", 1916.6666666666667, -9.653015000198872, "AUTO_CLAMPED", 2355.555470784505, -9.653015000198872, "AUTO_CLAMPED"], [-9.131150981569462, 716.666666666667, "BEZIER", "AUTO", 2594.4445292154946, -9.653015000198872, "AUTO_CLAMPED", 2955.555470784505, -8.864151202950849, "AUTO_CLAMPED"], [2.9816544088153627, 366.6666666666665, "BEZIER", "AUTO", 3077.777862548828, 2.9816544088153627, "AUTO_CLAMPED", 3300.0, 2.9816544088153627, "AUTO_CLAMPED"], [2.453467982892049, 300.0, "BEZIER", "AUTO", 3400.0, 2.9324793946687984, "AUTO_CLAMPED", 3611.111195882161, 1.92123296233821, "AUTO_CLAMPED"], [0.15764028579621828, 333.3333333333335, "BEZIER", "AUTO", 3722.222137451172, 0.8583350386783988, "AUTO_CLAMPED", 3894.4445292154946, -0.22774182562093837, "AUTO_CLAMPED"], [-1.1207623258128072, 183.33333333333303, "BEZIER", "AUTO", 3955.555470784505, -0.5035574574673355, "AUTO_CLAMPED", 4100.0, -1.962405342655047, "AUTO_CLAMPED"], [-3.472777026651014, 250.00000000000045, "BEZIER", "AUTO", 4183.333333333334, -3.4388632164311965, "AUTO_CLAMPED", 4311.110941569011, -3.4908644347902658, "AUTO_CLAMPED"], [-3.4908644347902658, 133.33333333333303, "BEZIER", "AUTO", 4355.555725097656, -3.4908644347902658, "AUTO_CLAMPED", 4433.333333333334, -3.4908644347902658, "AUTO_CLAMPED"], [-2.2245484298869593, 100.0, "BEZIER", "AUTO", 4466.666666666667, -2.7440901841985643, "AUTO_CLAMPED", 4550.0, -1.445235798419552, "AUTO_CLAMPED"], [-0.8577322211232923, 150.0, "BEZIER", "AUTO", 4600.0, -1.1771962302215087, "AUTO_CLAMPED", 4711.11094156901, -0.4672762396481682, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 4772.222391764322, 0.0, "AUTO_CLAMPED", 4894.444274902344, 0.0, "AUTO_CLAMPED"]]}}, "Handle": {"location": {"x": [[0.375, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.375, "AUTO_CLAMPED"], [0.375, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.375, "AUTO_CLAMPED", 194.44444974263507, 0.375, "AUTO_CLAMPED"], [0.375, 83.33333333333334, "BEZIER", "AUTO", 222.22221692403158, 0.375, "AUTO_CLAMPED", 272.2222328186035, 0.375, "AUTO_CLAMPED"], [0.375, 66.66666666666663, "BEZIER", "AUTO", 294.4444338480631, 0.375, "AUTO_CLAMPED", 1650.0, 0.375, "AUTO_CLAMPED"], [0.375, 3999.9999999999995, "QUAD", "EASE_IN", 2983.3333333333335, 0.375, "AUTO_CLAMPED"], [0.375, 83.33333333333394, "BEZIER", "AUTO", 4427.777608235677, 0.375, "AUTO_CLAMPED"]], "z": [[2.375, 0.0, "BEZIER", "AUTO", 55.555554231007896, 2.375, "AUTO_CLAMPED"], [2.375, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.375, "AUTO_CLAMPED", 194.44444974263507, 2.375, "AUTO_CLAMPED"], [0.3762938976287842, 83.33333333333334, "BEZIER", "AUTO", 222.22221692403158, 0.3762938976287842, "AUTO_CLAMPED", 272.2222328186035, 0.3762938976287842, "AUTO_CLAMPED"], [0.3762938976287842, 66.66666666666663, "BEZIER", "AUTO", 294.4444338480631, 0.3762938976287842, "AUTO_CLAMPED", 1650.0, 0.3762938976287842, "AUTO_CLAMPED"], [0.3762938976287842, 3999.9999999999995, "QUAD", "EASE_IN", 2983.3333333333335, 0.3762938976287842, "AUTO_CLAMPED"], [2.375, 83.33333333333394, "BEZIER", "AUTO", 4427.777608235677, 2.375, "AUTO_CLAMPED"]], "y": [[-0.062499821186065674, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.062499821186065674, "AUTO_CLAMPED"], [-0.062499821186065674, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.062499821186065674, "AUTO_CLAMPED", 194.44444974263507, -0.062499821186065674, "AUTO_CLAMPED"], [-0.062499821186065674, 83.33333333333334, "BEZIER", "AUTO", 222.22221692403158, -0.062499821186065674, "AUTO_CLAMPED", 272.2222328186035, -0.062499821186065674, "AUTO_CLAMPED"], [-0.062499821186065674, 66.66666666666663, "BEZIER", "AUTO", 294.4444338480631, -0.062499821186065674, "AUTO_CLAMPED", 1650.0, -0.062499821186065674, "AUTO_CLAMPED"], [-0.062499821186065674, 3999.9999999999995, "QUAD", "EASE_IN", 2983.3333333333335, -0.062499821186065674, "AUTO_CLAMPED"], [-0.062499821186065674, 83.33333333333394, "BEZIER", "AUTO", 4427.777608235677, -0.062499821186065674, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 83.33333333333333, -0.0, "AUTO_CLAMPED"], [-0.0, 250.0, "BEZIER", "AUTO", 166.66666666666666, -0.0, "AUTO_CLAMPED", 272.2222328186035, -0.0, "AUTO_CLAMPED"], [-0.0, 66.66666666666663, "BEZIER", "AUTO", 294.4444338480631, -0.0, "AUTO_CLAMPED", 344.44443384806317, -0.0, "AUTO_CLAMPED"], [33.709797591950974, 83.33333333333337, "BEZIER", "AUTO", 372.2222328186035, 33.709797591950974, "AUTO_CLAMPED", 1683.3333333333333, 33.709797591950974, "AUTO_CLAMPED"], [33.709797591950974, 3850.0, "BEZIER", "AUTO", 2966.666666666667, 33.709797591950974, "AUTO_CLAMPED", 4283.333333333333, 33.709797591950974, "AUTO_CLAMPED"], [-0.0, 100.0, "BEZIER", "AUTO", 4316.666666666666, -0.0, "AUTO_CLAMPED", 4383.333333333333, -0.0, "AUTO_CLAMPED"]]}}, "Lever": {"location": {"x": [[-1.485612965979044e-08, 0.0, "BEZIER", "AUTO", 16.666666666666668, -1.485612965979044e-08, "AUTO_CLAMPED"]], "z": [[-8.634078341174245e-08, 0.0, "BEZIER", "AUTO", 16.666666666666668, -8.634078341174245e-08, "AUTO_CLAMPED"]], "y": [[2.3298342421984586e-11, 0.0, "BEZIER", "AUTO", 16.666666666666668, 2.3298342421984586e-11, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[-0.0, 500.0, "BEZIER", "AUTO", 527.7777671813965, -0.0, "AUTO_CLAMPED"], [-9.99999970909292, 83.33333333333337, "BEZIER", "AUTO", 555.555534362793, -9.99999970909292, "AUTO_CLAMPED", 638.8888676961263, -9.99999970909292, "AUTO_CLAMPED"], [-9.99999970909292, 166.66666666666663, "BEZIER", "AUTO", 694.444465637207, -9.99999970909292, "AUTO_CLAMPED", 777.7777989705403, -9.99999970909292, "AUTO_CLAMPED"], [-0.0, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, -0.0, "AUTO_CLAMPED", 861.1111323038737, -0.0, "AUTO_CLAMPED"]]}}}, "Reload": {"Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [-0.06027263402938843, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.031955964863300323, "AUTO_CLAMPED", 216.66666666666669, -0.08575763553380966, "AUTO_CLAMPED"], [-0.10829480737447739, 149.99999999999997, "BEZIER", "AUTO", 266.6666666666667, -0.10829480737447739, "AUTO_CLAMPED", 377.7777671813965, -0.10829480737447739, "AUTO_CLAMPED"], [-0.044792406260967255, 183.33333333333337, "BEZIER", "AUTO", 438.88889948527014, -0.044792406260967255, "AUTO_CLAMPED", 611.1111323038737, -0.044792406260967255, "AUTO_CLAMPED"], [-0.9130013585090637, 333.33333333333337, "BEZIER", "AUTO", 722.2222010294597, -0.9130013585090637, "AUTO_CLAMPED", 955.555534362793, -0.9130013585090637, "AUTO_CLAMPED"], [-0.8715896010398865, 366.66666666666663, "BEZIER", "AUTO", 1077.7777353922527, -0.8715896010398865, "AUTO_CLAMPED", 1405.5555979410808, -0.8715896010398865, "AUTO_CLAMPED"], [-1.1114810705184937, 616.6666666666667, "BEZIER", "AUTO", 1611.111068725586, -1.1114810705184937, "AUTO_CLAMPED", 1872.2222646077473, -1.1114810705184937, "AUTO_CLAMPED"], [-1.1057782173156738, 166.66666666666674, "BEZIER", "AUTO", 1927.7777353922525, -1.1057782173156738, "AUTO_CLAMPED", 2016.6666666666665, -1.1057782173156738, "AUTO_CLAMPED"], [-1.2333530187606812, 100.0, "BEZIER", "AUTO", 2050.0, -1.2333530187606812, "AUTO_CLAMPED", 2138.888804117839, -1.2333530187606812, "AUTO_CLAMPED"], [-1.1345771551132202, 166.66666666666652, "BEZIER", "AUTO", 2194.4445292154946, -1.195904016494751, "AUTO_CLAMPED", 2311.1111958821616, -1.067117691040039, "AUTO_CLAMPED"], [-0.9707659482955933, 183.33333333333303, "BEZIER", "AUTO", 2372.222137451172, -0.9707659482955933, "AUTO_CLAMPED", 2461.1111958821616, -0.9707659482955933, "AUTO_CLAMPED"], [-0.9749962091445923, 83.33333333333348, "BEZIER", "AUTO", 2488.8888041178384, -0.9749962091445923, "AUTO_CLAMPED", 2555.5554707845054, -0.9749962091445923, "AUTO_CLAMPED"], [-0.9614148139953613, 116.66666666666697, "BEZIER", "AUTO", 2594.4445292154946, -0.9749962091445923, "AUTO_CLAMPED", 2716.666666666667, -0.9323118329048157, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 2800.0, 0.0, "AUTO_CLAMPED", 2966.666666666667, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [-0.039887718856334686, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.0, "AUTO_CLAMPED", 216.66666666666669, -0.07578666508197784, "AUTO_CLAMPED"], [-0.5982881784439087, 149.99999999999997, "BEZIER", "AUTO", 266.6666666666667, -0.5982881784439087, "AUTO_CLAMPED", 377.7777671813965, -0.5982881784439087, "AUTO_CLAMPED"], [0.1292285919189453, 183.33333333333337, "BEZIER", "AUTO", 438.88889948527014, 0.1192409098148346, "AUTO_CLAMPED", 611.1111323038737, 0.1473880112171173, "AUTO_CLAMPED"], [0.1473880112171173, 333.33333333333337, "BEZIER", "AUTO", 722.2222010294597, 0.1292285919189453, "AUTO_CLAMPED", 955.555534362793, 0.16736337542533875, "AUTO_CLAMPED"], [0.30984991788864136, 366.66666666666663, "BEZIER", "AUTO", 1077.7777353922527, 0.26116254925727844, "AUTO_CLAMPED", 1405.5555979410808, 0.39173322916030884, "AUTO_CLAMPED"], [0.39173322916030884, 616.6666666666667, "BEZIER", "AUTO", 1611.111068725586, 0.39173322916030884, "AUTO_CLAMPED", 1872.2222646077473, 0.39173322916030884, "AUTO_CLAMPED"], [-0.06899482011795044, 166.66666666666674, "BEZIER", "AUTO", 1927.7777353922525, 0.07043655216693878, "AUTO_CLAMPED", 2016.6666666666665, -0.15265364944934845, "AUTO_CLAMPED"], [-0.17084091901779175, 100.0, "BEZIER", "AUTO", 2050.0, -0.17084091901779175, "AUTO_CLAMPED", 2138.888804117839, -0.17084091901779175, "AUTO_CLAMPED"], [0.2747926712036133, 166.66666666666652, "BEZIER", "AUTO", 2194.4445292154946, 0.1940881907939911, "AUTO_CLAMPED", 2311.1111958821616, 0.363567590713501, "AUTO_CLAMPED"], [0.363567590713501, 183.33333333333303, "BEZIER", "AUTO", 2372.222137451172, 0.2747926712036133, "AUTO_CLAMPED", 2461.1111958821616, 0.4039198160171509, "AUTO_CLAMPED"], [0.8713808059692383, 83.33333333333348, "BEZIER", "AUTO", 2488.8888041178384, 0.8713808059692383, "AUTO_CLAMPED", 2555.5554707845054, 0.8713808059692383, "AUTO_CLAMPED"], [0.3006858229637146, 116.66666666666697, "BEZIER", "AUTO", 2594.4445292154946, 0.4410058856010437, "AUTO_CLAMPED", 2716.666666666667, -0.0, "AUTO_CLAMPED"], [-0.0, 250.0, "BEZIER", "AUTO", 2800.0, -0.0, "AUTO_CLAMPED", 2966.666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.4887576997280121, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.3054804801940918, "AUTO_CLAMPED", 216.66666666666669, 0.6537071466445923, "AUTO_CLAMPED"], [0.7476427555084229, 149.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 0.7196719646453857, "AUTO_CLAMPED", 377.7777671813965, 0.781829297542572, "AUTO_CLAMPED"], [0.9780957698822021, 183.33333333333337, "BEZIER", "AUTO", 438.88889948527014, 0.7592593431472778, "AUTO_CLAMPED", 611.1111323038737, 1.375980257987976, "AUTO_CLAMPED"], [2.5719027519226074, 333.33333333333337, "BEZIER", "AUTO", 722.2222010294597, 2.5719027519226074, "AUTO_CLAMPED", 955.555534362793, 2.5719027519226074, "AUTO_CLAMPED"], [1.7368642091751099, 366.66666666666663, "BEZIER", "AUTO", 1077.7777353922527, 1.7368642091751099, "AUTO_CLAMPED", 1405.5555979410808, 1.7368642091751099, "AUTO_CLAMPED"], [2.4045543670654297, 616.6666666666667, "BEZIER", "AUTO", 1611.111068725586, 2.4045543670654297, "AUTO_CLAMPED", 1872.2222646077473, 2.4045543670654297, "AUTO_CLAMPED"], [2.0934579372406006, 166.66666666666674, "BEZIER", "AUTO", 1927.7777353922525, 2.1594762802124023, "AUTO_CLAMPED", 2016.6666666666665, 2.053846836090088, "AUTO_CLAMPED"], [1.9846371412277222, 100.0, "BEZIER", "AUTO", 2050.0, 2.078697443008423, "AUTO_CLAMPED", 2138.888804117839, 1.8278698921203613, "AUTO_CLAMPED"], [1.3036167621612549, 166.66666666666652, "BEZIER", "AUTO", 2194.4445292154946, 1.340794563293457, "AUTO_CLAMPED", 2311.1111958821616, 1.2627211809158325, "AUTO_CLAMPED"], [1.2627211809158325, 183.33333333333303, "BEZIER", "AUTO", 2372.222137451172, 1.2627211809158325, "AUTO_CLAMPED", 2461.1111958821616, 1.2627211809158325, "AUTO_CLAMPED"], [1.5373237133026123, 83.33333333333348, "BEZIER", "AUTO", 2488.8888041178384, 1.5373237133026123, "AUTO_CLAMPED", 2555.5554707845054, 1.5373237133026123, "AUTO_CLAMPED"], [1.2078009843826294, 116.66666666666697, "BEZIER", "AUTO", 2594.4445292154946, 1.4098081588745117, "AUTO_CLAMPED", 2716.666666666667, 0.7749283313751221, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 2800.0, 0.0, "AUTO_CLAMPED", 2966.666666666667, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [-7.947998292783174, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -7.947998292783174, "AUTO_CLAMPED", 200.0, -7.947998292783174, "AUTO_CLAMPED"], [-7.806066108056663, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, -7.806066108056663, "AUTO_CLAMPED", 411.1111005147298, -7.806066108056663, "AUTO_CLAMPED"], [-12.494120977924887, 233.33333333333331, "BEZIER", "AUTO", 488.8888994852702, -7.806066108056663, "AUTO_CLAMPED", 633.3333333333333, -16.512453601558555, "AUTO_CLAMPED"], [-34.233983874898186, 200.0, "BEZIER", "AUTO", 700.0, -34.233983874898186, "AUTO_CLAMPED", 900.0, -34.233983874898186, "AUTO_CLAMPED"], [-30.0797330481022, 400.0000000000001, "BEZIER", "AUTO", 1033.3333333333333, -30.0797330481022, "AUTO_CLAMPED", 1383.3333333333333, -30.0797330481022, "AUTO_CLAMPED"], [-39.29156478546879, 650.0, "BEZIER", "AUTO", 1600.0, -37.85145354991745, "AUTO_CLAMPED", 1872.2222646077473, -39.66082530256719, "AUTO_CLAMPED"], [-41.294691929398866, 166.66666666666674, "BEZIER", "AUTO", 1927.7777353922525, -39.61380286522624, "AUTO_CLAMPED", 2016.6666666666665, -42.303224001864606, "AUTO_CLAMPED"], [-43.933805307705505, 100.0, "BEZIER", "AUTO", 2050.0, -43.933805307705505, "AUTO_CLAMPED", 2138.888804117839, -43.933805307705505, "AUTO_CLAMPED"], [-32.51975324229214, 166.66666666666652, "BEZIER", "AUTO", 2194.4445292154946, -35.980196868292815, "AUTO_CLAMPED", 2305.5554707845054, -29.059309616291465, "AUTO_CLAMPED"], [-27.806946620645437, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, -30.092023973513637, "AUTO_CLAMPED", 2450.0, -26.435900550433974, "AUTO_CLAMPED"], [-22.543387695274756, 100.0, "BEZIER", "AUTO", 2483.3333333333335, -23.870447347231334, "AUTO_CLAMPED", 2572.222137451172, -20.331622177862887, "AUTO_CLAMPED"], [-19.089285899918437, 166.66666666666652, "BEZIER", "AUTO", 2627.777862548828, -21.559835332151042, "AUTO_CLAMPED", 2777.777862548828, -14.88935135285882, "AUTO_CLAMPED"], [0.0, 283.33333333333394, "BEZIER", "AUTO", 2872.222137451172, 0.0, "AUTO_CLAMPED", 3061.1111958821616, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [11.053427468746804, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 11.053427468746804, "AUTO_CLAMPED", 200.0, 11.053427468746804, "AUTO_CLAMPED"], [7.8228555668102, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 7.8228555668102, "AUTO_CLAMPED", 411.1111005147298, 7.8228555668102, "AUTO_CLAMPED"], [17.08093707636789, 233.33333333333331, "BEZIER", "AUTO", 488.8888994852702, 10.958562971364497, "AUTO_CLAMPED", 633.3333333333333, 22.328685821357283, "AUTO_CLAMPED"], [29.770721629672483, 200.0, "BEZIER", "AUTO", 700.0, 29.770721629672483, "AUTO_CLAMPED", 900.0, 29.770721629672483, "AUTO_CLAMPED"], [20.79820776799209, 400.0000000000001, "BEZIER", "AUTO", 1033.3333333333333, 20.79820776799209, "AUTO_CLAMPED", 1383.3333333333333, 20.79820776799209, "AUTO_CLAMPED"], [31.411958030618603, 650.0, "BEZIER", "AUTO", 1600.0, 30.32892225468636, "AUTO_CLAMPED", 1872.2222646077473, 31.68965986189298, "AUTO_CLAMPED"], [33.02801493918947, 166.66666666666674, "BEZIER", "AUTO", 1927.7777353922525, 31.411958030618603, "AUTO_CLAMPED", 2016.6666666666665, 33.99764908433199, "AUTO_CLAMPED"], [36.74340562124463, 100.0, "BEZIER", "AUTO", 2050.0, 36.74340562124463, "AUTO_CLAMPED", 2138.888804117839, 36.74340562124463, "AUTO_CLAMPED"], [23.01222724783006, 166.66666666666652, "BEZIER", "AUTO", 2194.4445292154946, 26.45975157101566, "AUTO_CLAMPED", 2305.5554707845054, 19.564702924644468, "AUTO_CLAMPED"], [17.208031528896193, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, 22.953306620954947, "AUTO_CLAMPED", 2450.0, 13.760866644415668, "AUTO_CLAMPED"], [7.025505686405259, 100.0, "BEZIER", "AUTO", 2483.3333333333335, 7.025505686405259, "AUTO_CLAMPED", 2572.222137451172, 7.025505686405259, "AUTO_CLAMPED"], [7.114583306013272, 166.66666666666652, "BEZIER", "AUTO", 2627.777862548828, 7.114583306013272, "AUTO_CLAMPED", 2777.777862548828, 7.114583306013272, "AUTO_CLAMPED"], [-0.0, 283.33333333333394, "BEZIER", "AUTO", 2872.222137451172, -0.0, "AUTO_CLAMPED", 3061.1111958821616, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [-0.5836962804425067, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -0.5836962804425067, "AUTO_CLAMPED", 200.0, -0.5836962804425067, "AUTO_CLAMPED"], [0.9077218954109396, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 0.9077218954109396, "AUTO_CLAMPED", 411.1111005147298, 0.9077218954109396, "AUTO_CLAMPED"], [-0.11387248695562946, 233.33333333333331, "BEZIER", "AUTO", 488.8888994852702, 0.9077218954109396, "AUTO_CLAMPED", 633.3333333333333, -0.9895248299443609, "AUTO_CLAMPED"], [-3.443730153101654, 200.0, "BEZIER", "AUTO", 700.0, -2.733326873283682, "AUTO_CLAMPED", 900.0, -4.864536712737598, "AUTO_CLAMPED"], [-4.864536712737598, 400.0000000000001, "BEZIER", "AUTO", 1033.3333333333333, -4.864536712737598, "AUTO_CLAMPED", 1383.3333333333333, -4.864536712737598, "AUTO_CLAMPED"], [-2.6581730211855623, 650.0, "BEZIER", "AUTO", 1600.0, -2.6581730211855623, "AUTO_CLAMPED", 1872.2222646077473, -2.6581730211855623, "AUTO_CLAMPED"], [-6.302553641534681, 166.66666666666674, "BEZIER", "AUTO", 1927.7777353922525, -6.302553641534681, "AUTO_CLAMPED", 2016.6666666666665, -6.302553641534681, "AUTO_CLAMPED"], [-2.311909751022596, 100.0, "BEZIER", "AUTO", 2050.0, -2.311909751022596, "AUTO_CLAMPED", 2138.888804117839, -2.311909751022596, "AUTO_CLAMPED"], [-6.151943274580845, 166.66666666666652, "BEZIER", "AUTO", 2194.4445292154946, -4.8060570599507715, "AUTO_CLAMPED", 2305.5554707845054, -7.497829062324096, "AUTO_CLAMPED"], [-7.695458024637476, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, -7.695458024637476, "AUTO_CLAMPED", 2450.0, -7.695458024637476, "AUTO_CLAMPED"], [-7.258249078128498, 100.0, "BEZIER", "AUTO", 2483.3333333333335, -7.258249078128498, "AUTO_CLAMPED", 2572.222137451172, -7.258249078128498, "AUTO_CLAMPED"], [-9.170077937196657, 166.66666666666652, "BEZIER", "AUTO", 2627.777862548828, -9.170077937196657, "AUTO_CLAMPED", 2777.777862548828, -9.170077937196657, "AUTO_CLAMPED"], [0.0, 283.33333333333394, "BEZIER", "AUTO", 2872.222137451172, 0.0, "AUTO_CLAMPED", 3061.1111958821616, 0.0, "AUTO_CLAMPED"]]}}, "Handle": {"location": {"x": [[0.375, 0.0, "BEZIER", "AUTO", 61.111112435658775, 0.375, "AUTO_CLAMPED"], [0.375, 183.33333333333331, "QUAD", "EASE_OUT", 122.22221692403157, 0.375, "AUTO_CLAMPED"], [0.375, 150.0, "BEZIER", "AUTO", 366.66666666666663, 0.375, "AUTO_CLAMPED"], [0.375, 100.00000000000006, "BEZIER", "AUTO", 400.0, 0.375, "AUTO_CLAMPED", 1038.8888676961262, 0.375, "AUTO_CLAMPED"], [0.375, 1816.6666666666665, "BEZIER", "AUTO", 1644.4445292154949, 0.375, "AUTO_CLAMPED", 2277.777862548828, 0.375, "AUTO_CLAMPED"], [0.375, 83.33333333333348, "QUAD", "EASE_IN", 2305.5554707845054, 0.375, "AUTO_CLAMPED"], [0.375, 83.33333333333303, "BEZIER", "AUTO", 2444.4445292154946, 0.375, "AUTO_CLAMPED"]], "z": [[2.375, 0.0, "BEZIER", "AUTO", 61.111112435658775, 2.375, "AUTO_CLAMPED"], [2.375, 183.33333333333331, "QUAD", "EASE_OUT", 122.22221692403157, 2.375, "AUTO_CLAMPED"], [0.3507676124572754, 150.0, "BEZIER", "AUTO", 366.66666666666663, 0.3507676124572754, "AUTO_CLAMPED"], [0.3507676124572754, 100.00000000000006, "BEZIER", "AUTO", 400.0, 0.3507676124572754, "AUTO_CLAMPED", 1038.8888676961262, 0.3507676124572754, "AUTO_CLAMPED"], [0.3507676124572754, 1816.6666666666665, "BEZIER", "AUTO", 1644.4445292154949, 0.3507676124572754, "AUTO_CLAMPED", 2277.777862548828, 0.3507676124572754, "AUTO_CLAMPED"], [0.3507676124572754, 83.33333333333348, "QUAD", "EASE_IN", 2305.5554707845054, 0.3507676124572754, "AUTO_CLAMPED"], [2.375, 83.33333333333303, "BEZIER", "AUTO", 2444.4445292154946, 2.375, "AUTO_CLAMPED"]], "y": [[-0.062499821186065674, 0.0, "BEZIER", "AUTO", 61.111112435658775, -0.062499821186065674, "AUTO_CLAMPED"], [-0.062499821186065674, 183.33333333333331, "QUAD", "EASE_OUT", 122.22221692403157, -0.062499821186065674, "AUTO_CLAMPED"], [-0.06249997019767761, 150.0, "BEZIER", "AUTO", 366.66666666666663, -0.06249997019767761, "AUTO_CLAMPED"], [-0.06249997019767761, 100.00000000000006, "BEZIER", "AUTO", 400.0, -0.06249997019767761, "AUTO_CLAMPED", 1038.8888676961262, -0.06249997019767761, "AUTO_CLAMPED"], [-0.06249997019767761, 1816.6666666666665, "BEZIER", "AUTO", 1644.4445292154949, -0.06249997019767761, "AUTO_CLAMPED", 2277.777862548828, -0.06249997019767761, "AUTO_CLAMPED"], [-0.06249997019767761, 83.33333333333348, "QUAD", "EASE_IN", 2305.5554707845054, -0.06249997019767761, "AUTO_CLAMPED"], [-0.062499821186065674, 83.33333333333303, "BEZIER", "AUTO", 2444.4445292154946, -0.062499821186065674, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[0.0, 0.0, "BEZIER", "AUTO", 61.111112435658775, 0.0, "AUTO_CLAMPED"], [0.0, 183.33333333333331, "QUAD", "EASE_OUT", 122.22221692403157, 0.0, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 366.66666666666663, 0.0, "AUTO_CLAMPED"], [35.69566826294301, 100.00000000000006, "BEZIER", "AUTO", 400.0, 35.69566826294301, "AUTO_CLAMPED", 1038.8888676961262, 35.69566826294301, "AUTO_CLAMPED"], [35.69566826294301, 1816.6666666666665, "BEZIER", "AUTO", 1644.4445292154949, 35.69566826294301, "AUTO_CLAMPED", 2288.8888041178384, 35.69566826294301, "AUTO_CLAMPED"], [-0.0, 116.66666666666652, "QUAD", "EASE_IN", 2327.777862548828, -0.0, "AUTO_CLAMPED"], [-0.0, 50.0, "BEZIER", "AUTO", 2433.333333333333, -0.0, "AUTO_CLAMPED"]]}}, "Magazine": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 250.0, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 500.0, 0.0, "AUTO_CLAMPED", 777.7777989705403, 0.0, "AUTO_CLAMPED"], [3.725290298461914e-09, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, 3.725290298461914e-09, "AUTO_CLAMPED", 888.8888676961263, 3.725290298461914e-09, "AUTO_CLAMPED"], [3.725290298461914e-09, 166.66666666666663, "BEZIER", "AUTO", 944.4444656372069, 3.725290298461914e-09, "AUTO_CLAMPED", 1061.1111323038738, 3.725290298461914e-09, "AUTO_CLAMPED"], [2.275148391723633, 183.33333333333326, "BEZIER", "EASE_IN", 1122.4605560302734, 1.95159113407135, "ALIGNED", 1279.7747294108074, 2.7877635955810547, "ALIGNED"], [1.1207209825515747, 266.66666666666674, "CONSTANT", "AUTO", 1386.2855275472007, 2.162842035293579, "ALIGNED"], [1.1920928955078125e-07, 183.33333333333326, "BEZIER", "AUTO", 1744.4444020589192, -7.450580596923828e-09, "AUTO_CLAMPED"], [-7.450580596923828e-09, 333.33333333333326, "BEZIER", "AUTO", 1855.5555979410808, -7.450580596923828e-09, "AUTO_CLAMPED", 1988.888931274414, -7.450580596923828e-09, "AUTO_CLAMPED"], [0.0, 66.66666666666674, "BEZIER", "AUTO", 2011.1110687255857, 0.0, "AUTO_CLAMPED", 2055.5555979410806, 0.0, "AUTO_CLAMPED"]], "z": [[-3.7083332538604736, 0.0, "BEZIER", "AUTO", 250.0, -3.7083332538604736, "AUTO_CLAMPED"], [-3.7083332538604736, 750.0, "BEZIER", "AUTO", 500.0, -3.7083332538604736, "AUTO_CLAMPED", 777.7777989705403, -3.7083332538604736, "AUTO_CLAMPED"], [-3.7083332538604736, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, -3.7083332538604736, "AUTO_CLAMPED", 888.8888676961263, -3.7083332538604736, "AUTO_CLAMPED"], [-3.586667060852051, 166.66666666666663, "BEZIER", "AUTO", 944.4444656372069, -3.7083332538604736, "AUTO_CLAMPED", 1061.1111323038738, -3.452834129333496, "AUTO_CLAMPED"], [0.1384201943874359, 183.33333333333326, "BEZIER", "EASE_IN", 1122.2222646077473, 0.1384201943874359, "AUTO_CLAMPED", 1272.2222646077475, 0.1384201943874359, "AUTO_CLAMPED"], [-0.4952211380004883, 266.66666666666674, "CONSTANT", "AUTO", 1361.111068725586, 0.1384202241897583, "AUTO_CLAMPED"], [-3.7083330154418945, 183.33333333333326, "BEZIER", "AUTO", 1744.4444020589192, -3.7083330154418945, "AUTO_CLAMPED"], [-3.7083330154418945, 333.33333333333326, "BEZIER", "AUTO", 1855.5555979410808, -3.7083330154418945, "AUTO_CLAMPED", 1988.888931274414, -3.7083330154418945, "AUTO_CLAMPED"], [-3.7083332538604736, 66.66666666666674, "BEZIER", "AUTO", 2011.1110687255857, -3.7083332538604736, "AUTO_CLAMPED", 2055.5555979410806, -3.7083332538604736, "AUTO_CLAMPED"]], "y": [[-0.8715280890464783, 0.0, "BEZIER", "AUTO", 250.0, -0.8715280890464783, "AUTO_CLAMPED"], [-0.8715280890464783, 750.0, "BEZIER", "AUTO", 500.0, -0.8715280890464783, "AUTO_CLAMPED", 777.7777989705403, -0.8715280890464783, "AUTO_CLAMPED"], [-0.9779874682426453, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, -0.8715280890464783, "AUTO_CLAMPED", 888.8888676961263, -1.190906286239624, "AUTO_CLAMPED"], [-2.6450467109680176, 166.66666666666663, "BEZIER", "AUTO", 944.4444656372069, -2.288226842880249, "AUTO_CLAMPED", 1061.1111323038738, -3.037548542022705, "AUTO_CLAMPED"], [-3.938255786895752, 183.33333333333326, "BEZIER", "EASE_IN", 1082.1139017740886, -2.2764382362365723, "ALIGNED", 1409.4801584879558, -7.651127338409424, "ALIGNED"], [-18.826751708984375, 266.66666666666674, "CONSTANT", "AUTO", 1402.2291819254558, -17.237646102905273, "ALIGNED"], [-5.262813568115234, 183.33333333333326, "BEZIER", "AUTO", 1744.4444020589192, -1.393867015838623, "AUTO_CLAMPED"], [-1.393867015838623, 333.33333333333326, "BEZIER", "AUTO", 1855.5555979410808, -2.4820737838745117, "AUTO_CLAMPED", 1988.888931274414, -1.1762256622314453, "AUTO_CLAMPED"], [-0.8715280890464783, 66.66666666666674, "BEZIER", "AUTO", 2011.1110687255857, -0.8715280890464783, "AUTO_CLAMPED", 2055.5555979410806, -0.8715280890464783, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 250.0, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 500.0, 0.0, "AUTO_CLAMPED", 777.7777989705403, 0.0, "AUTO_CLAMPED"], [-4.174188148983252, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, -4.1741847338886675, "AUTO_CLAMPED", 888.8888676961263, -4.174194979172422, "AUTO_CLAMPED"], [-4.174194979172422, 166.66666666666663, "BEZIER", "AUTO", 944.4444656372069, -4.174188148983252, "AUTO_CLAMPED", 1044.444465637207, -4.174200528701124, "AUTO_CLAMPED"], [-33.8234246189833, 133.33333333333326, "BEZIER", "EASE_IN", 1088.888931274414, -33.07182377252593, "AUTO_CLAMPED", 1238.888931274414, -35.60847748309321, "AUTO_CLAMPED"], [-35.60847748309321, 316.66666666666674, "CONSTANT", "EASE_IN", 1344.4444020589192, -35.60847748309321, "AUTO_CLAMPED"], [0.0, 183.33333333333326, "BEZIER", "AUTO", 1744.4444020589192, 0.0, "AUTO_CLAMPED"], [-12.942791835634793, 333.33333333333326, "BEZIER", "AUTO", 1855.5555979410808, -12.942791835634793, "AUTO_CLAMPED", 1988.888931274414, -12.942791835634793, "AUTO_CLAMPED"], [0.0, 66.66666666666674, "BEZIER", "AUTO", 2011.1110687255857, 0.0, "AUTO_CLAMPED", 2055.5555979410806, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 250.0, 0.0, "AUTO_CLAMPED"], [3.415094992117375e-06, 750.0, "BEZIER", "AUTO", 500.0, 3.415094992117375e-06, "AUTO_CLAMPED", 777.7777989705403, 3.415094992117375e-06, "AUTO_CLAMPED"], [1.8849241299780381e-06, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, 1.8849241299780381e-06, "AUTO_CLAMPED", 888.8888676961263, 1.8849241299780381e-06, "AUTO_CLAMPED"], [2.257795465726353e-06, 166.66666666666663, "BEZIER", "AUTO", 944.4444656372069, 1.8849241299780381e-06, "AUTO_CLAMPED", 1044.444465637207, 2.5560926157472046e-06, "AUTO_CLAMPED"], [37.2502910350242, 133.33333333333326, "BEZIER", "EASE_IN", 1088.888931274414, 19.088867550831775, "AUTO_CLAMPED", 1238.888931274414, 80.3836698889905, "AUTO_CLAMPED"], [152.35956815499205, 316.66666666666674, "CONSTANT", "EASE_IN", 1421.4354197184246, 149.74669294838202, "ALIGNED"], [-0.0, 183.33333333333326, "BEZIER", "AUTO", 1744.4444020589192, -0.0, "AUTO_CLAMPED"], [2.1809719917281588e-06, 333.33333333333326, "BEZIER", "AUTO", 1855.5555979410808, 2.1809719917281588e-06, "AUTO_CLAMPED", 1988.888931274414, 2.1809719917281588e-06, "AUTO_CLAMPED"], [-0.0, 66.66666666666674, "BEZIER", "AUTO", 2011.1110687255857, -0.0, "AUTO_CLAMPED", 2055.5555979410806, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 250.0, 0.0, "AUTO_CLAMPED"], [-2.988207965436078e-06, 750.0, "BEZIER", "AUTO", 500.0, -2.988207965436078e-06, "AUTO_CLAMPED", 777.7777989705403, -2.988207965436078e-06, "AUTO_CLAMPED"], [1.4521725675751222e-06, 83.33333333333337, "BEZIER", "AUTO", 805.555534362793, -2.7954582095194046e-08, "AUTO_CLAMPED", 888.8888676961263, 4.412426968693505e-06, "AUTO_CLAMPED"], [6.561225588819226e-06, 166.66666666666663, "BEZIER", "AUTO", 944.4444656372069, 1.4521722622418728e-06, "AUTO_CLAMPED", 1044.444465637207, 1.0648468575769908e-05, "AUTO_CLAMPED"], [0.704543404396924, 133.33333333333326, "BEZIER", "EASE_IN", 1088.888931274414, 0.704543404396924, "AUTO_CLAMPED", 1238.888931274414, 0.704543404396924, "AUTO_CLAMPED"], [-2.4474770532163017, 316.66666666666674, "CONSTANT", "EASE_IN", 1344.4444020589192, -2.4474770532163017, "AUTO_CLAMPED"], [0.0, 183.33333333333326, "BEZIER", "AUTO", 1744.4444020589192, 0.0, "AUTO_CLAMPED"], [-5.757404055061827e-06, 333.33333333333326, "BEZIER", "AUTO", 1855.5555979410808, -5.757404055061827e-06, "AUTO_CLAMPED", 1988.888931274414, -5.757404055061827e-06, "AUTO_CLAMPED"], [0.0, 66.66666666666674, "BEZIER", "AUTO", 2011.1110687255857, 0.0, "AUTO_CLAMPED", 2055.5555979410806, 0.0, "AUTO_CLAMPED"]]}}}}, "offset": {"Barrel": [-3.4825498573809455e-07, 0.0, 2.999999761581421], "Breech": [-1.485612965979044e-08, 2.3298342421984586e-11, -8.634078341174245e-08], "Bullets": [-2.2280778111394284e-08, -3.766064543553327e-11, 1.7626307080575998e-09], "Handle": [0.375, -0.062499821186065674, 2.375], "Lever": [-1.485612965979044e-08, 2.3298342421984586e-11, -8.634078341174245e-08], "Magazine": [0.0, -0.8715280890464783, -3.7083332538604736], "Safety": [-1.485612965979044e-08, 2.3298342421984586e-11, -0.0]}, "hierarchy": {"Barrel": "Gun", "Breech": "Gun", "Bullets": "Magazine", "Handle": "Gun", "Lever": "Gun", "Magazine": "Gun", "Safety": "Gun"}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json b/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json new file mode 100644 index 000000000..fc1287ec3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/supershotty.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Barrel": {"rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [0.0, 466.6666666666667, "CONSTANT"], [-19.363289183757253, 49.99999999999994, "CONSTANT"], [-60.019016916301425, 66.66666666666674, "CONSTANT"], [-60.019016916301425, 683.3333333333331, "CONSTANT"], [-38.91348307905732, 83.33333333333348, "CONSTANT"], [0.0, 50.0, "CONSTANT"]]}}, "BarrelLame": {"rotation_euler": {"x": [[0.0, 0.0], [0.0, 466.6666666666667], [-19.363289183757253, 49.99999999999994], [-60.019016916301425, 66.66666666666674], [-60.019016916301425, 683.3333333333331], [-38.91348307905732, 83.33333333333348], [0.0, 50.0]]}}, "Body": {"location": {"x": [[0.0, 0.0], [-0.03072790987789631, 66.66666666666667], [-0.015153210610151291, 50.0], [0.022971127182245255, 49.999999999999986], [0.0, 133.33333333333334], [-0.07112908363342285, 283.33333333333337], [-0.21566513180732727, 166.66666666666663], [-0.30311062932014465, 166.66666666666663], [0.09931233525276184, 200.0000000000001], [0.09931233525276184, 99.99999999999977], [0.1618872582912445, 33.333333333333485], [0.16223274171352386, 33.33333333333326], [0.08028656989336014, 183.33333333333326], [0.0, 150.00000000000023]], "z": [[-0.0, 0.0], [0.6719817519187927, 66.66666666666667], [0.7913707494735718, 50.0], [0.4098809063434601, 49.999999999999986], [-0.0, 133.33333333333334], [-0.0558139905333519, 283.33333333333337], [-0.33660149574279785, 166.66666666666663], [-0.3699745833873749, 166.66666666666663], [-0.27975839376449585, 200.0000000000001], [-0.27975839376449585, 99.99999999999977], [-0.3401995301246643, 33.333333333333485], [-0.3562721014022827, 33.33333333333326], [-0.2893483638763428, 183.33333333333326], [-0.0, 150.00000000000023]], "y": [[0.0, 0.0], [0.04576312005519867, 66.66666666666667], [-0.05352889001369476, 50.0], [0.05586424842476845, 49.999999999999986], [0.0, 133.33333333333334], [-0.19011610746383667, 283.33333333333337], [-0.17373046278953552, 166.66666666666663], [-0.2395477145910263, 166.66666666666663], [-0.318528413772583, 200.0000000000001], [-0.318528413772583, 99.99999999999977], [-0.5854879021644592, 33.333333333333485], [-0.6872552037239075, 33.33333333333326], [-0.08996553719043732, 183.33333333333326], [0.0, 150.00000000000023]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [18.96056586236767, 33.333333333333336, "CONSTANT"], [9.480282931183835, 100.0, "CONSTANT"], [0.0, 100.0, "CONSTANT"], [3.672435622364946, 300.0, "CONSTANT"], [4.2845085106836525, 50.0, "CONSTANT"], [1.1277323204173937, 266.66666666666663, "CONSTANT"], [-4.00202896208485, 433.33333333333326, "CONSTANT"], [29.908722186758006, 116.66666666666674, "CONSTANT"], [16.10469643075067, 100.0, "CONSTANT"], [0.0, 116.66666666666674, "CONSTANT"]], "z": [[-0.0, 0.0, "CONSTANT"], [-8.923772777989535, 33.333333333333336, "CONSTANT"], [-4.461886388994768, 100.0, "CONSTANT"], [-0.0, 100.0, "CONSTANT"], [1.4097740965790806, 300.0, "CONSTANT"], [1.6447364460089273, 50.0, "CONSTANT"], [0.7402799146297828, 266.66666666666663, "CONSTANT"], [-0.729462122284099, 433.33333333333326, "CONSTANT"], [-10.496272716449585, 116.66666666666674, "CONSTANT"], [-5.6518389579866275, 100.0, "CONSTANT"], [-0.0, 116.66666666666674, "CONSTANT"]], "y": [[0.0, 0.0, "CONSTANT"], [1.9835915222433687, 33.333333333333336, "CONSTANT"], [0.9917957611216843, 100.0, "CONSTANT"], [0.0, 100.0, "CONSTANT"], [22.84436339614595, 300.0, "CONSTANT"], [26.651758433868473, 50.0, "CONSTANT"], [23.325744883564695, 266.66666666666663, "CONSTANT"], [17.920975212198584, 433.33333333333326, "CONSTANT"], [19.204354096865643, 116.66666666666674, "CONSTANT"], [10.340805658109048, 100.0, "CONSTANT"], [0.0, 116.66666666666674, "CONSTANT"]]}}, "BodyLame": {"location": {"x": [[0.0, 0.0], [-0.03072790987789631, 66.66666666666667], [-0.015153210610151291, 50.0], [0.022971127182245255, 49.999999999999986], [0.0, 133.33333333333334], [-0.07112908363342285, 283.33333333333337], [-0.21566513180732727, 166.66666666666663], [-0.30311062932014465, 166.66666666666663], [0.09931233525276184, 200.0000000000001], [0.09931233525276184, 99.99999999999977], [0.1618872582912445, 33.333333333333485], [0.16223274171352386, 33.33333333333326], [0.08028656989336014, 183.33333333333326], [0.0, 150.00000000000023]], "z": [[-0.0, 0.0], [0.6719817519187927, 66.66666666666667], [0.7913707494735718, 50.0], [0.4098809063434601, 49.999999999999986], [-0.0, 133.33333333333334], [-0.0558139905333519, 283.33333333333337], [-0.33660149574279785, 166.66666666666663], [-0.3699745833873749, 166.66666666666663], [-0.27975839376449585, 200.0000000000001], [-0.27975839376449585, 99.99999999999977], [-0.3401995301246643, 33.333333333333485], [-0.3562721014022827, 33.33333333333326], [-0.2893483638763428, 183.33333333333326], [-0.0, 150.00000000000023]], "y": [[0.0, 0.0], [0.04576312005519867, 66.66666666666667], [-0.05352889001369476, 50.0], [0.05586424842476845, 49.999999999999986], [0.0, 133.33333333333334], [-0.19011610746383667, 283.33333333333337], [-0.17373046278953552, 166.66666666666663], [-0.2395477145910263, 166.66666666666663], [-0.318528413772583, 200.0000000000001], [-0.318528413772583, 99.99999999999977], [-0.5854879021644592, 33.333333333333485], [-0.6872552037239075, 33.33333333333326], [-0.08996553719043732, 183.33333333333326], [0.0, 150.00000000000023]]}, "rotation_euler": {"x": [[0.0, 0.0], [18.96056586236767, 33.333333333333336], [9.480282931183835, 100.0], [0.0, 100.0], [3.672435622364946, 300.0], [4.2845085106836525, 50.0], [1.1277323204173937, 266.66666666666663], [-4.00202896208485, 433.33333333333326], [29.908722186758006, 116.66666666666674], [16.10469643075067, 100.0], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-8.923772777989535, 33.333333333333336], [-4.461886388994768, 100.0], [-0.0, 100.0], [1.4097740965790806, 300.0], [1.6447364460089273, 50.0], [0.7402799146297828, 266.66666666666663], [-0.729462122284099, 433.33333333333326], [-10.496272716449585, 116.66666666666674], [-5.6518389579866275, 100.0], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [1.9835915222433687, 33.333333333333336], [0.9917957611216843, 100.0], [0.0, 100.0], [22.84436339614595, 300.0], [26.651758433868473, 50.0], [23.325744883564695, 266.66666666666663], [17.920975212198584, 433.33333333333326], [19.204354096865643, 116.66666666666674], [10.340805658109048, 100.0], [0.0, 116.66666666666674]]}}, "ShellL": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.09376272559165955, 49.999999999999886], [0.1621313840150833, 83.33333333333337], [0.17189833521842957, 33.33333333333337], [0.17189833521842957, 50.0], [-0.25194650888442993, 66.66666666666674], [-0.7040476202964783, 149.9999999999999, "CONSTANT"], [-1.641493320465088, 16.66666666666663], [-0.48360228538513184, 66.66666666666674], [-0.0976385846734047, 66.66666666666674], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [1.188506007194519, 49.999999999999886], [2.0551249980926514, 83.33333333333337], [2.1789276599884033, 33.33333333333337], [2.1789276599884033, 50.0], [0.6366069316864014, 66.66666666666674], [-1.0085352659225464, 149.9999999999999, "CONSTANT"], [-1.0141838788986206, 16.66666666666663], [0.6391998529434204, 66.66666666666674], [1.1903276443481445, 66.66666666666674], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.6720442175865173, 49.999999999999886], [1.162076473236084, 83.33333333333337], [1.2320810556411743, 33.33333333333337], [1.2320810556411743, 50.0], [0.4826660752296448, 66.66666666666674], [-0.3167097568511963, 149.9999999999999, "CONSTANT"], [-1.3532683849334717, 16.66666666666663], [-0.3891531825065613, 66.66666666666674], [-0.0677814781665802, 66.66666666666674], [0.0, 116.66666666666652]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [-5.534420749078115, 166.66666666666663, "CONSTANT"], [7.606445291826578, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663, "CONSTANT"]], "z": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [28.371060481933252, 166.66666666666663, "CONSTANT"], [59.14797655182804, 166.66666666666663, "CONSTANT"], [-0.0, 116.66666666666663, "CONSTANT"]], "y": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [-42.628757647896585, 166.66666666666663, "CONSTANT"], [-85.51808701262917, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663, "CONSTANT"]]}}, "ShellLLame": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.09376272559165955, 49.999999999999886], [0.1621313840150833, 83.33333333333337], [0.17189833521842957, 33.33333333333337], [0.17189833521842957, 50.0], [-0.25194650888442993, 66.66666666666674], [-0.7040476202964783, 149.9999999999999, "CONSTANT"], [-1.641493320465088, 16.66666666666663], [-0.48360228538513184, 66.66666666666674], [-0.0976385846734047, 66.66666666666674], [0.0, 116.66666666666652]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [1.188506007194519, 49.999999999999886], [2.0551249980926514, 83.33333333333337], [2.1789276599884033, 33.33333333333337], [2.1789276599884033, 50.0], [0.6366069316864014, 66.66666666666674], [-1.0085352659225464, 149.9999999999999, "CONSTANT"], [-1.0141838788986206, 16.66666666666663], [0.6391998529434204, 66.66666666666674], [1.1903276443481445, 66.66666666666674], [-0.0, 116.66666666666652]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.6720442175865173, 49.999999999999886], [1.162076473236084, 83.33333333333337], [1.2320810556411743, 33.33333333333337], [1.2320810556411743, 50.0], [0.4826660752296448, 66.66666666666674], [-0.3167097568511963, 149.9999999999999, "CONSTANT"], [-1.3532683849334717, 16.66666666666663], [-0.3891531825065613, 66.66666666666674], [-0.0677814781665802, 66.66666666666674], [0.0, 116.66666666666652]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [-5.534420749078115, 166.66666666666663], [7.606445291826578, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663]], "z": [[0.0, 0.0], [0.0, 583.3333333333334], [28.371060481933252, 166.66666666666663], [59.14797655182804, 166.66666666666663, "CONSTANT"], [-0.0, 116.66666666666663]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [-42.628757647896585, 166.66666666666663], [-85.51808701262917, 166.66666666666663, "CONSTANT"], [0.0, 116.66666666666663]]}}, "ShellR": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.16738982498645782, 33.33333333333337], [0.3459389805793762, 66.66666666666663], [0.368257611989975, 33.33333333333326], [0.368257611989975, 66.66666666666674], [0.37765786051750183, 66.66666666666663], [0.3922804296016693, 116.66666666666663, "CONSTANT"], [-1.7031582593917847, 16.66666666666663], [-0.576391339302063, 66.66666666666674], [-0.20080244541168213, 66.66666666666674], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [0.7584316730499268, 33.33333333333337], [1.5674254894256592, 66.66666666666663], [1.668549656867981, 33.33333333333326], [1.668549656867981, 66.66666666666674], [0.5923407077789307, 66.66666666666663], [-1.0817619562149048, 116.66666666666663, "CONSTANT"], [-1.004889726638794, 16.66666666666663], [0.6418739557266235, 66.66666666666674], [1.1907953023910522, 66.66666666666674], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.45365622639656067, 33.33333333333337], [0.9375561475753784, 66.66666666666663], [0.9980437159538269, 33.33333333333326], [0.9980437159538269, 66.66666666666674], [0.2533489465713501, 66.66666666666663], [-0.9050651788711548, 116.66666666666663, "CONSTANT"], [-1.431460976600647, 16.66666666666663], [-0.5393484830856323, 66.66666666666674], [-0.24197767674922943, 66.66666666666674], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [7.528320734326326, 133.33333333333326, "CONSTANT"], [45.55883366975119, 166.66666666666663, "CONSTANT"], [0.0, 100.0, "CONSTANT"]], "z": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [-10.561780207005532, 133.33333333333326, "CONSTANT"], [-11.69752028389453, 166.66666666666663, "CONSTANT"], [-0.0, 100.0, "CONSTANT"]], "y": [[0.0, 0.0, "CONSTANT"], [0.0, 583.3333333333334, "CONSTANT"], [18.100727008133102, 133.33333333333326, "CONSTANT"], [65.2065046097911, 166.66666666666663, "CONSTANT"], [0.0, 100.0, "CONSTANT"]]}}, "ShellRLame": {"location": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [0.16738982498645782, 33.33333333333337], [0.3459389805793762, 66.66666666666663], [0.368257611989975, 33.33333333333326], [0.368257611989975, 66.66666666666674], [0.37765786051750183, 66.66666666666663], [0.3922804296016693, 116.66666666666663, "CONSTANT"], [-1.7031582593917847, 16.66666666666663], [-0.576391339302063, 66.66666666666674], [-0.20080244541168213, 66.66666666666674], [0.0, 116.66666666666674]], "z": [[-0.0, 0.0], [-0.0, 583.3333333333334], [0.7584316730499268, 33.33333333333337], [1.5674254894256592, 66.66666666666663], [1.668549656867981, 33.33333333333326], [1.668549656867981, 66.66666666666674], [0.5923407077789307, 66.66666666666663], [-1.0817619562149048, 116.66666666666663, "CONSTANT"], [-1.004889726638794, 16.66666666666663], [0.6418739557266235, 66.66666666666674], [1.1907953023910522, 66.66666666666674], [-0.0, 116.66666666666674]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [0.45365622639656067, 33.33333333333337], [0.9375561475753784, 66.66666666666663], [0.9980437159538269, 33.33333333333326], [0.9980437159538269, 66.66666666666674], [0.2533489465713501, 66.66666666666663], [-0.9050651788711548, 116.66666666666663, "CONSTANT"], [-1.431460976600647, 16.66666666666663], [-0.5393484830856323, 66.66666666666674], [-0.24197767674922943, 66.66666666666674], [0.0, 116.66666666666674]]}, "rotation_euler": {"x": [[0.0, 0.0], [0.0, 583.3333333333334], [7.528320734326326, 133.33333333333326], [45.55883366975119, 166.66666666666663, "CONSTANT"], [0.0, 100.0]], "z": [[0.0, 0.0], [0.0, 583.3333333333334], [-10.561780207005532, 133.33333333333326], [-11.69752028389453, 166.66666666666663, "CONSTANT"], [-0.0, 100.0]], "y": [[0.0, 0.0], [0.0, 583.3333333333334], [18.100727008133102, 133.33333333333326], [65.2065046097911, 166.66666666666663, "CONSTANT"], [0.0, 100.0]]}}}}, "offset": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/ar15.obj b/src/main/resources/assets/hbm/models/weapons/ar15.obj index ccb6ad550..091d07aee 100644 --- a/src/main/resources/assets/hbm/models/weapons/ar15.obj +++ b/src/main/resources/assets/hbm/models/weapons/ar15.obj @@ -1,1794 +1,1707 @@ -# Blender v2.79 (sub 0) OBJ File: 'ar15.blend' +# Blender 3.6.1 # www.blender.org -o Mag -v -0.130136 2.873658 -1.302511 -v -0.130136 2.838598 -1.273999 -v -0.118132 2.826593 -1.273941 -v -0.082933 2.826456 -1.302281 -v -0.130136 2.814589 -1.273882 -v -0.130136 2.779253 -1.302052 -v -0.142140 2.826593 -1.273941 -v -0.177340 2.826456 -1.302281 -v -0.130136 2.909554 -2.720071 -v -0.040136 2.819556 -2.719633 -v -0.130136 2.729557 -2.719195 -v -0.220136 2.819556 -2.719633 -v -0.220136 2.824332 -1.738555 -v -0.130136 2.914331 -1.738993 -v -0.130136 2.734333 -1.738117 -v -0.040136 2.824332 -1.738555 -v 0.070075 2.964277 -1.293117 -v 0.070075 2.918879 -1.265522 -v 0.085603 2.903351 -1.265447 -v 0.131135 2.903217 -1.292820 -v 0.070075 2.887822 -1.265371 -v 0.070075 2.842158 -1.292523 -v 0.054546 2.903351 -1.265447 -v 0.009014 2.903218 -1.292820 -v 0.070075 3.012795 -2.698728 -v 0.186495 2.896376 -2.698161 -v 0.070075 2.779957 -2.697594 -v -0.046346 2.896376 -2.698161 -v -0.046346 2.901113 -1.725164 -v 0.070075 3.017532 -1.725731 -v 0.070075 2.784694 -1.724598 -v 0.186495 2.901113 -1.725164 -v 0.215413 2.799175 -2.697022 -v 0.215413 1.412339 -2.717431 -v 0.215413 1.413240 -2.778677 -v 0.215413 2.800076 -2.758268 -v 0.215413 1.395214 -1.553753 -v 0.215413 1.390708 -1.247522 -v 0.200031 0.789030 -1.253212 -v 0.200031 0.741453 -1.544326 -v 0.207611 0.254733 -1.182100 -v 0.207611 0.171899 -1.466945 -v 0.215413 -0.149166 -1.083426 -v 0.215413 -0.264245 -1.368191 -v 0.215413 -1.168349 -1.026934 -v 0.215413 -1.053270 -0.742170 -v 0.215413 -1.100854 -0.724209 -v 0.215413 -1.215933 -1.008973 -v -0.267178 2.799175 -2.697022 -v -0.267178 2.800076 -2.758268 -v -0.267178 1.413240 -2.778677 -v -0.267178 1.412339 -2.717431 -v -0.267178 1.395214 -1.553753 -v -0.252014 0.741454 -1.544326 -v -0.252014 0.789030 -1.253212 -v -0.267178 1.390708 -1.247522 -v -0.259486 0.171899 -1.466945 -v -0.259486 0.254733 -1.182100 -v -0.267178 -0.264245 -1.368191 -v -0.267178 -0.149166 -1.083426 -v -0.267178 -1.168349 -1.026934 -v -0.267178 -1.215933 -1.008973 -v -0.267178 -1.100854 -0.724209 -v -0.267178 -1.053270 -0.742170 -v 0.215413 2.777544 -1.227113 -v -0.267178 2.777544 -1.227113 -v 0.215413 -1.628665 -2.165990 -v -0.267178 -1.628665 -2.165990 -v -0.267178 -0.724561 -2.507246 -v 0.215413 -0.724561 -2.507246 -v -0.259486 -0.159440 -2.606327 -v 0.207611 -0.159440 -2.606327 -v -0.252014 0.551146 -2.708783 -v 0.200031 0.551146 -2.708783 -v 0.215413 -1.653234 -2.091076 -v -0.267178 -1.653234 -2.091076 -v -0.267178 -1.676250 -2.148029 -v 0.215413 -1.676250 -2.148029 -v 0.215413 -1.571169 -1.888006 -v 0.215413 -1.605717 -2.110279 -v 0.215413 -1.523651 -1.907209 -v 0.215413 -1.296767 -1.208995 -v -0.267178 -1.296767 -1.208995 -v -0.267178 -1.398925 -1.461787 -v 0.215413 -1.398925 -1.461787 -v -0.267178 -1.571169 -1.888006 -v -0.267178 -1.523651 -1.907209 -v -0.267178 -1.605650 -2.109037 -v -0.267178 -1.351341 -1.479748 -v -0.267178 -1.249182 -1.226956 -v -0.217019 -1.249182 -1.226956 -v -0.217019 -0.345078 -1.568213 -v -0.267178 -0.345078 -1.568213 -v -0.267178 -0.701545 -2.450294 -v -0.259486 -0.142873 -2.549358 -v -0.259486 0.040180 -1.919889 -v -0.267178 -0.447236 -1.821005 -v -0.259486 0.113714 -1.667024 -v -0.210937 0.113714 -1.667024 -v -0.252014 0.560662 -2.650560 -v -0.252014 0.665800 -2.007238 -v -0.252014 0.708035 -1.748809 -v -0.205029 0.708035 -1.748809 -v -0.267178 1.402380 -2.040703 -v -0.267178 1.398380 -1.768854 -v -0.217019 1.398380 -1.768854 -v -0.267178 2.782051 -1.533345 -v -0.217019 2.785216 -1.748445 -v -0.267178 2.785216 -1.748445 -v -0.267178 2.789217 -2.020294 -v 0.215413 -1.605650 -2.109037 -v 0.159762 -1.605650 -2.109037 -v 0.159762 -1.653234 -2.091076 -v 0.159762 -1.571169 -1.888006 -v 0.159762 -1.523585 -1.905967 -v 0.215413 -1.351341 -1.479748 -v 0.215413 -1.249182 -1.226956 -v 0.207611 -0.142873 -2.549358 -v 0.215413 -0.701545 -2.450294 -v 0.153746 -0.142873 -2.549358 -v 0.153746 -0.083803 -2.346230 -v 0.159762 -0.619481 -2.247224 -v 0.159762 -0.701545 -2.450294 -v 0.207611 0.040180 -1.919889 -v 0.207611 0.113714 -1.667024 -v 0.215413 -0.345078 -1.568213 -v 0.215413 -0.447236 -1.821005 -v 0.200031 0.560662 -2.650560 -v 0.147902 0.560662 -2.650560 -v 0.147902 0.594589 -2.442962 -v 0.200031 0.665800 -2.007238 -v 0.200031 0.708035 -1.748809 -v 0.159762 1.412339 -2.717431 -v 0.159762 1.409125 -2.499052 -v 0.215413 1.402380 -2.040703 -v 0.215413 1.398380 -1.768854 -v 0.215413 2.782051 -1.533345 -v 0.215413 2.785216 -1.748445 -v 0.215413 2.789217 -2.020294 -v 0.159761 2.795962 -2.478644 -v 0.159761 2.799175 -2.697022 -v 0.215413 2.791796 -2.195606 -v 0.215413 1.404960 -2.216014 -v 0.215413 1.409125 -2.499052 -v 0.215413 2.795962 -2.478644 -v 0.200031 0.638563 -2.173895 -v 0.200031 0.594589 -2.442962 -v 0.207611 -0.007241 -2.082958 -v 0.207611 -0.083803 -2.346230 -v 0.215413 -0.513117 -1.984027 -v 0.215413 -0.619481 -2.247224 -v 0.215413 -1.523585 -1.905967 -v 0.215413 -1.417221 -1.642770 -v 0.215413 -1.464806 -1.624809 -v -0.267178 2.791796 -2.195606 -v -0.267178 2.795962 -2.478644 -v -0.267178 1.409125 -2.499052 -v -0.267178 1.404960 -2.216014 -v -0.252014 0.594589 -2.442962 -v -0.252014 0.638563 -2.173895 -v -0.259486 -0.083803 -2.346230 -v -0.259486 -0.007241 -2.082958 -v -0.267178 -0.619481 -2.247224 -v -0.267178 -0.513117 -1.984027 -v -0.267178 -1.523585 -1.905967 -v -0.267178 -1.464806 -1.624809 -v -0.267178 -1.417221 -1.642770 -v -0.267178 -1.605717 -2.110279 -v -0.267178 2.936115 -2.193482 -v -0.267178 2.940280 -2.476520 -v -0.267178 2.933535 -2.018171 -v 0.215413 2.936115 -2.193482 -v 0.215413 2.940280 -2.476520 -v 0.215413 2.933535 -2.018171 -v 0.215413 2.943494 -2.694898 -v 0.215413 2.929535 -1.746321 -v 0.215413 2.926369 -1.531221 -v 0.215413 2.921863 -1.224990 -v -0.267178 2.943494 -2.694898 -v -0.267178 2.929535 -1.746321 -v -0.267178 2.926369 -1.531221 -v -0.267178 2.921863 -1.224990 -v -0.267178 2.944395 -2.756145 -v 0.215413 2.944395 -2.756145 -v -0.219901 2.795962 -2.478644 -v -0.219901 2.799175 -2.697022 -v -0.219901 1.412339 -2.717431 -v -0.219901 1.409125 -2.499052 -v -0.207729 0.560662 -2.650560 -v -0.207729 0.594589 -2.442962 -v -0.213727 -0.142873 -2.549358 -v -0.213727 -0.083803 -2.346230 -v -0.219901 -0.701545 -2.450294 -v -0.219901 -0.619481 -2.247224 -v -0.219901 -1.605650 -2.109037 -v -0.219901 -1.523585 -1.905967 -v -0.219901 -1.571169 -1.888006 -v -0.219901 -1.653234 -2.091076 -v -0.221792 -1.417221 -1.642770 -v -0.221792 -1.351341 -1.479748 -v -0.221792 -1.398925 -1.461787 -v -0.221792 -1.464806 -1.624809 -v -0.215557 -0.007241 -2.082958 -v -0.221792 -0.513117 -1.984027 -v -0.221792 -0.447236 -1.821005 -v -0.215557 0.040180 -1.919889 -v -0.209500 0.638563 -2.173895 -v -0.209500 0.665800 -2.007238 -v -0.221792 1.404960 -2.216014 -v -0.221792 1.402380 -2.040703 -v -0.221792 2.789217 -2.020294 -v -0.221792 2.791796 -2.195606 -v -0.217019 -1.168349 -1.026934 -v -0.217019 -1.215933 -1.008973 -v -0.217019 -1.296767 -1.208995 -v -0.217019 -0.264245 -1.368191 -v -0.210937 0.171899 -1.466945 -v -0.205029 0.741454 -1.544326 -v -0.217019 1.395214 -1.553753 -v -0.217019 2.782051 -1.533345 -v 0.159762 -1.249182 -1.226956 -v 0.159762 -1.296767 -1.208995 -v 0.159762 -1.215933 -1.008973 -v 0.159762 -1.168349 -1.026934 -v 0.153746 0.113714 -1.667024 -v 0.153746 0.171899 -1.466945 -v 0.159762 -0.264245 -1.368191 -v 0.159762 -0.345078 -1.568213 -v 0.147902 0.708035 -1.748809 -v 0.147902 0.741453 -1.544326 -v 0.159762 1.398380 -1.768854 -v 0.159762 1.395214 -1.553753 -v 0.159761 2.782051 -1.533345 -v 0.159761 2.785216 -1.748445 -v 0.159762 -1.417221 -1.642770 -v 0.159762 -1.464806 -1.624809 -v 0.159762 -1.398925 -1.461787 -v 0.159762 -1.351341 -1.479748 -v 0.153746 -0.007241 -2.082958 -v 0.153746 0.040180 -1.919889 -v 0.159762 -0.447236 -1.821005 -v 0.159762 -0.513117 -1.984027 -v 0.147902 0.638563 -2.173895 -v 0.147902 0.665800 -2.007238 -v 0.159762 1.404960 -2.216014 -v 0.159762 1.402380 -2.040703 -v 0.159761 2.789217 -2.020294 -v 0.159761 2.791796 -2.195606 -v 0.215413 -1.168416 -1.028176 -v -0.267178 -1.168416 -1.028176 -v -0.267178 -1.249248 -1.228198 -v 0.215413 -1.249248 -1.228198 -v 0.215413 -1.351407 -1.480990 -v -0.267178 -1.351407 -1.480990 -v -0.267178 -1.417288 -1.644012 -v 0.215413 -1.417288 -1.644012 -v 0.215413 2.800076 -2.758268 -v -0.267178 2.800076 -2.758268 -v -0.267178 2.944395 -2.756145 -v 0.215413 2.944395 -2.756145 -v 0.184787 2.799175 -2.697022 -v 0.189682 2.799606 -2.726298 -v 0.184787 1.412789 -2.748054 -v 0.184787 1.412339 -2.717431 -v -0.236552 2.799175 -2.697022 -v -0.236551 1.412339 -2.717431 -v -0.236551 1.412789 -2.748054 -v -0.241447 2.799606 -2.726298 -v 0.184787 2.777995 -1.257736 -v 0.184787 1.391158 -1.278145 -v -0.236551 1.391158 -1.278145 -v -0.236552 2.777995 -1.257736 -v -0.236551 1.395214 -1.553753 -v -0.236552 2.782051 -1.533345 -v -0.236552 2.785216 -1.748445 -v -0.236551 1.398380 -1.768854 -v -0.236551 1.402380 -2.040703 -v -0.236552 2.789217 -2.020294 -v 0.184787 2.782051 -1.533345 -v 0.184787 1.395214 -1.553753 -v 0.184787 2.785216 -1.748445 -v 0.184787 2.789217 -2.020294 -v 0.184787 1.402380 -2.040703 -v 0.184787 1.398380 -1.768854 -v 0.184787 2.791796 -2.195606 -v 0.184787 2.795962 -2.478644 -v 0.184787 1.409125 -2.499052 -v 0.184787 1.404960 -2.216014 -v -0.236552 2.791796 -2.195606 -v -0.236551 1.404960 -2.216014 -v -0.236551 1.409125 -2.499052 -v -0.236552 2.795962 -2.478644 -v -0.236552 2.936115 -2.193482 -v -0.236552 2.940280 -2.476520 -v -0.236552 2.933535 -2.018171 -v 0.184787 2.936115 -2.193482 -v 0.184787 2.940280 -2.476520 -v 0.184787 2.933535 -2.018171 -v 0.184787 2.943494 -2.694898 -v 0.184787 2.929535 -1.746321 -v 0.184787 2.926369 -1.531221 -v 0.184787 2.922313 -1.255613 -v -0.236552 2.943494 -2.694898 -v -0.236552 2.929535 -1.746321 -v -0.236552 2.926369 -1.531221 -v -0.236552 2.922313 -1.255613 -v -0.236552 2.944395 -2.756145 -v 0.184787 2.944395 -2.756145 -v 0.215413 2.799626 -2.727645 -v 0.215413 2.943944 -2.725522 -v -0.267178 2.943945 -2.725522 -v -0.267178 2.799626 -2.727645 -v -0.156794 3.000995 -2.500587 -v -0.156794 2.998746 -2.254960 -v -0.156794 3.002730 -2.690100 -v -0.175825 3.000995 -2.500587 -v -0.175825 3.002730 -2.690100 -v -0.156794 2.997354 -2.102820 -v -0.175825 2.997354 -2.102820 -v 0.105029 3.000995 -2.500587 -v 0.105029 3.002730 -2.690100 -v -0.175825 2.998746 -2.254960 -v 0.124060 3.002730 -2.690100 -v 0.124060 3.000995 -2.500587 -v 0.105029 2.998746 -2.254960 -v 0.124060 2.998746 -2.254960 -v 0.105029 2.997354 -2.102820 -v 0.124060 2.997354 -2.102820 -v 0.215413 2.799175 -2.697022 -v 0.215413 1.412339 -2.717431 -v 0.215413 1.413240 -2.778677 -v 0.215413 2.800076 -2.758268 -v 0.215413 1.395214 -1.553753 -v 0.215413 1.390708 -1.247522 -v 0.200031 0.789030 -1.253212 -v 0.200031 0.741453 -1.544326 -v 0.207611 0.254733 -1.182100 -v 0.207611 0.171899 -1.466945 -v 0.215413 -0.149166 -1.083426 -v 0.215413 -0.264245 -1.368191 -v 0.215413 -1.168349 -1.026934 -v 0.215413 -1.053270 -0.742170 -v -0.267178 2.799175 -2.697022 -v -0.267178 2.800076 -2.758268 -v -0.267178 1.413240 -2.778677 -v -0.267178 1.412339 -2.717431 -v -0.267178 1.395214 -1.553753 -v -0.252014 0.741454 -1.544326 -v -0.252014 0.789030 -1.253212 -v -0.267178 1.390708 -1.247522 -v -0.259486 0.171899 -1.466945 -v -0.259486 0.254733 -1.182100 -v -0.267178 -0.264245 -1.368191 -v -0.267178 -0.149166 -1.083426 -v -0.267178 -1.168349 -1.026934 -v -0.267178 -1.053270 -0.742170 -v 0.215413 2.777544 -1.227113 -v -0.267178 2.777544 -1.227113 -v 0.215413 -1.628665 -2.165990 -v -0.267178 -1.628665 -2.165990 -v -0.267178 -0.724561 -2.507246 -v 0.215413 -0.724561 -2.507246 -v -0.259486 -0.159440 -2.606327 -v 0.207611 -0.159440 -2.606327 -v -0.252014 0.551146 -2.708783 -v 0.200031 0.551146 -2.708783 -v -0.267178 -1.605650 -2.109037 -v -0.267178 -1.351341 -1.479748 -v -0.267178 -1.249182 -1.226956 -v -0.217019 -1.249182 -1.226956 -v -0.217019 -0.345078 -1.568213 -v -0.267178 -0.345078 -1.568213 -v -0.267178 -0.701545 -2.450294 -v -0.259486 -0.142873 -2.549358 -v -0.259486 0.040180 -1.919889 -v -0.267178 -0.447236 -1.821005 -v -0.259486 0.113714 -1.667024 -v -0.210937 0.113714 -1.667024 -v -0.252014 0.560662 -2.650560 -v -0.252014 0.665800 -2.007238 -v -0.252014 0.708035 -1.748809 -v -0.205029 0.708035 -1.748809 -v -0.267178 1.402380 -2.040703 -v -0.267178 1.398380 -1.768854 -v -0.217019 1.398380 -1.768854 -v -0.267178 2.782051 -1.533345 -v -0.217019 2.785216 -1.748445 -v -0.267178 2.785216 -1.748445 -v -0.267178 2.789217 -2.020294 -v 0.215413 -1.605650 -2.109037 -v 0.159762 -1.605650 -2.109037 -v 0.159762 -1.523585 -1.905967 -v 0.215413 -1.351341 -1.479748 -v 0.215413 -1.249182 -1.226956 -v 0.207611 -0.142873 -2.549358 -v 0.215413 -0.701545 -2.450294 -v 0.153746 -0.142873 -2.549358 -v 0.153746 -0.083803 -2.346230 -v 0.159762 -0.619481 -2.247224 -v 0.159762 -0.701545 -2.450294 -v 0.207611 0.040180 -1.919889 -v 0.207611 0.113714 -1.667024 -v 0.215413 -0.345078 -1.568213 -v 0.215413 -0.447236 -1.821005 -v 0.200031 0.560662 -2.650560 -v 0.147902 0.560662 -2.650560 -v 0.147902 0.594589 -2.442962 -v 0.200031 0.665800 -2.007238 -v 0.200031 0.708035 -1.748809 -v 0.159762 1.412339 -2.717431 -v 0.159762 1.409125 -2.499052 -v 0.215413 1.402380 -2.040703 -v 0.215413 1.398380 -1.768854 -v 0.215413 2.782051 -1.533345 -v 0.215413 2.785216 -1.748445 -v 0.215413 2.789217 -2.020294 -v 0.159761 2.795962 -2.478644 -v 0.159761 2.799175 -2.697022 -v 0.215413 2.791796 -2.195606 -v 0.215413 1.404960 -2.216014 -v 0.215413 1.409125 -2.499052 -v 0.215413 2.795962 -2.478644 -v 0.200031 0.638563 -2.173895 -v 0.200031 0.594589 -2.442962 -v 0.207611 -0.007241 -2.082958 -v 0.207611 -0.083803 -2.346230 -v 0.215413 -0.513117 -1.984027 -v 0.215413 -0.619481 -2.247224 -v 0.215413 -1.523585 -1.905967 -v 0.215413 -1.417221 -1.642770 -v -0.267178 2.791796 -2.195606 -v -0.267178 2.795962 -2.478644 -v -0.267178 1.409125 -2.499052 -v -0.267178 1.404960 -2.216014 -v -0.252014 0.594589 -2.442962 -v -0.252014 0.638563 -2.173895 -v -0.259486 -0.083803 -2.346230 -v -0.259486 -0.007241 -2.082958 -v -0.267178 -0.619481 -2.247224 -v -0.267178 -0.513117 -1.984027 -v -0.267178 -1.523585 -1.905967 -v -0.267178 -1.417221 -1.642770 -v 0.215413 2.921863 -1.224990 -v -0.267178 2.921863 -1.224990 -v -0.219901 2.795962 -2.478644 -v -0.219901 2.799175 -2.697022 -v -0.219901 1.412339 -2.717431 -v -0.219901 1.409125 -2.499052 -v -0.207729 0.560662 -2.650560 -v -0.207729 0.594589 -2.442962 -v -0.213727 -0.142873 -2.549358 -v -0.213727 -0.083803 -2.346230 -v -0.219901 -0.701545 -2.450294 -v -0.219901 -0.619481 -2.247224 -v -0.219901 -1.605650 -2.109037 -v -0.219901 -1.523585 -1.905967 -v -0.221792 -1.417221 -1.642770 -v -0.221792 -1.351341 -1.479748 -v -0.215557 -0.007241 -2.082958 -v -0.221792 -0.513117 -1.984027 -v -0.221792 -0.447236 -1.821005 -v -0.215557 0.040180 -1.919889 -v -0.209500 0.638563 -2.173895 -v -0.209500 0.665800 -2.007238 -v -0.221792 1.404960 -2.216014 -v -0.221792 1.402380 -2.040703 -v -0.221792 2.789217 -2.020294 -v -0.221792 2.791796 -2.195606 -v -0.217019 -1.168349 -1.026934 -v -0.217019 -0.264245 -1.368191 -v -0.210937 0.171899 -1.466945 -v -0.205029 0.741454 -1.544326 -v -0.217019 1.395214 -1.553753 -v -0.217019 2.782051 -1.533345 -v 0.159762 -1.249182 -1.226956 -v 0.159762 -1.168349 -1.026934 -v 0.153746 0.113714 -1.667024 -v 0.153746 0.171899 -1.466945 -v 0.159762 -0.264245 -1.368191 -v 0.159762 -0.345078 -1.568213 -v 0.147902 0.708035 -1.748809 -v 0.147902 0.741453 -1.544326 -v 0.159762 1.398380 -1.768854 -v 0.159762 1.395214 -1.553753 -v 0.159761 2.782051 -1.533345 -v 0.159761 2.785216 -1.748445 -v 0.159762 -1.417221 -1.642770 -v 0.159762 -1.351341 -1.479748 -v 0.153746 -0.007241 -2.082958 -v 0.153746 0.040180 -1.919889 -v 0.159762 -0.447236 -1.821005 -v 0.159762 -0.513117 -1.984027 -v 0.147902 0.638563 -2.173895 -v 0.147902 0.665800 -2.007238 -v 0.159762 1.404960 -2.216014 -v 0.159762 1.402380 -2.040703 -v 0.159761 2.789217 -2.020294 -v 0.159761 2.791796 -2.195606 -vt 0.008879 0.261663 -vt 0.020745 0.024611 -vt 0.026244 0.025163 -vt 0.113358 0.272155 -vt 0.133590 0.377540 -vt 0.106872 0.383764 -vt 0.134010 0.469169 -vt 0.107462 0.481450 -vt 0.138370 0.538729 -vt 0.111468 0.556512 -vt 0.132039 0.712997 -vt 0.160025 0.703450 -vt 0.133122 0.721233 -vt 0.180770 0.767756 -vt 0.168904 0.530703 -vt 0.186269 0.767203 -vt 0.273383 0.520211 -vt 0.293615 0.414826 -vt 0.300878 0.517451 -vt 0.266897 0.408602 -vt 0.294035 0.323197 -vt 0.267486 0.310916 -vt 0.298395 0.253638 -vt 0.292064 0.079369 -vt 0.320050 0.088917 -vt 0.318967 0.097153 -vt 0.485092 0.681372 -vt 0.402571 0.689617 -vt 0.402571 0.681372 -vt 0.402571 0.850275 -vt 0.397572 0.767754 -vt 0.402571 0.767754 -vt 0.372674 0.850275 -vt 0.347683 0.767754 -vt 0.372674 0.767754 -vt 0.152917 0.818907 -vt 0.145390 0.792366 -vt 0.152917 0.795909 -vt 0.619140 0.695924 -vt 0.596954 0.613403 -vt 0.619140 0.613403 -vt 0.484540 0.689617 -vt 0.476292 0.772139 -vt 0.476292 0.689617 -vt 0.184453 0.008236 -vt 0.190917 0.003557 -vt 0.189834 0.011793 -vt 0.249285 0.051091 -vt 0.274250 0.058642 -vt 0.273167 0.066878 -vt 0.161290 0.261792 -vt 0.169262 0.168278 -vt 0.166600 0.264248 -vt 0.225270 0.291388 -vt 0.252596 0.223363 -vt 0.248838 0.302289 -vt 0.160025 0.383705 -vt 0.165368 0.384950 -vt 0.224412 0.398705 -vt 0.248130 0.404230 -vt 0.163405 0.531255 -vt 0.229663 0.524602 -vt 0.254071 0.522151 -vt 0.290748 0.756711 -vt 0.318242 0.753951 -vt 0.247028 0.761102 -vt 0.271435 0.758651 -vt 0.024429 0.784130 -vt 0.030892 0.788810 -vt 0.025511 0.792366 -vt 0.160385 0.796005 -vt 0.167853 0.815364 -vt 0.160385 0.819002 -vt 0.089260 0.741275 -vt 0.114225 0.733724 -vt 0.090343 0.749511 -vt 0.001266 0.530574 -vt 0.009237 0.624088 -vt 0.003857 0.627645 -vt 0.663280 0.502867 -vt 0.684772 0.586248 -vt 0.665533 0.598848 -vt 0.065245 0.500979 -vt 0.092571 0.569003 -vt 0.068689 0.584790 -vt 0.000000 0.408661 -vt 0.006576 0.528118 -vt 0.662562 0.382162 -vt 0.682250 0.494190 -vt 0.064387 0.393662 -vt 0.088813 0.490077 -vt 0.003380 0.261111 -vt 0.666713 0.236424 -vt 0.681634 0.377804 -vt 0.069638 0.267765 -vt 0.088105 0.388136 -vt 0.140853 0.274916 -vt 0.130723 0.035655 -vt 0.158218 0.038416 -vt 0.094046 0.270216 -vt 0.087003 0.031264 -vt 0.111411 0.033715 -vt 0.686311 0.238476 -vt 0.685081 0.000000 -vt 0.704679 0.002052 -vt 0.071263 0.029684 -vt 0.028486 0.263632 -vt 0.045851 0.027132 -vt 0.049091 0.397225 -vt 0.024397 0.402978 -vt 0.050046 0.508009 -vt 0.025508 0.519360 -vt 0.053287 0.594970 -vt 0.028422 0.611407 -vt 0.048994 0.767892 -vt 0.074942 0.759692 -vt 0.050077 0.776128 -vt 0.231288 0.762682 -vt 0.188511 0.528734 -vt 0.213923 0.526182 -vt 0.209116 0.395141 -vt 0.184422 0.389389 -vt 0.210071 0.284357 -vt 0.185533 0.273006 -vt 0.213312 0.197396 -vt 0.209019 0.024474 -vt 0.234967 0.032675 -vt 0.233884 0.040911 -vt 0.145390 0.792366 -vt 0.137863 0.818907 -vt 0.137863 0.795909 -vt 0.620053 0.613403 -vt 0.596954 0.530882 -vt 0.620053 0.530882 -vt 0.233095 0.787293 -vt 0.205875 0.765234 -vt 0.248835 0.785713 -vt 0.073070 0.005073 -vt 0.047658 0.002521 -vt 0.088810 0.006654 -vt 0.028051 0.000552 -vt 0.113218 0.009104 -vt 0.132530 0.011044 -vt 0.160025 0.013805 -vt 0.188076 0.791814 -vt 0.207682 0.789845 -vt 0.273242 0.783262 -vt 0.292555 0.781322 -vt 0.320050 0.778562 -vt 0.182577 0.792366 -vt 0.022552 0.000000 -vt 0.642964 0.755419 -vt 0.644194 0.516943 -vt 0.662562 0.753367 -vt 0.624595 0.518994 -vt 0.639516 0.377615 -vt 0.620444 0.373257 -vt 0.640132 0.261229 -vt 0.621163 0.252552 -vt 0.642654 0.169171 -vt 0.152917 0.815364 -vt 0.160385 0.796005 -vt 0.160385 0.819002 -vt 0.274474 0.796005 -vt 0.267006 0.810828 -vt 0.267006 0.792366 -vt 0.791881 0.243520 -vt 0.810278 0.166681 -vt 0.807102 0.250503 -vt 0.791279 0.354307 -vt 0.806586 0.357822 -vt 0.796500 0.485332 -vt 0.812235 0.483702 -vt 0.814617 0.721776 -vt 0.830352 0.720146 -vt 0.190375 0.815018 -vt 0.197842 0.796005 -vt 0.197842 0.818657 -vt 0.705188 0.235458 -vt 0.727712 0.168979 -vt 0.723853 0.244048 -vt 0.704679 0.337400 -vt 0.723455 0.341735 -vt 0.710846 0.455309 -vt 0.730155 0.453332 -vt 0.747979 0.689798 -vt 0.244484 0.811776 -vt 0.235907 0.792366 -vt 0.244484 0.792366 -vt 0.182907 0.796005 -vt 0.190375 0.815018 -vt 0.182907 0.818657 -vt 0.748488 0.456317 -vt 0.771012 0.522795 -vt 0.752091 0.535250 -vt 0.747979 0.354375 -vt 0.767153 0.447727 -vt 0.754146 0.236466 -vt 0.766755 0.350040 -vt 0.773455 0.238443 -vt 0.771971 0.000000 -vt 0.791279 0.001977 -vt 0.259538 0.796005 -vt 0.267006 0.810828 -vt 0.259538 0.814467 -vt 0.830953 0.478256 -vt 0.849350 0.555095 -vt 0.833916 0.565226 -vt 0.830352 0.367469 -vt 0.846174 0.471274 -vt 0.835572 0.236444 -vt 0.845659 0.363955 -vt 0.851307 0.238074 -vt 0.853689 0.000000 -vt 0.869424 0.001631 -vt 0.938689 0.685553 -vt 0.929173 0.677304 -vt 0.938689 0.677304 -vt 0.917629 0.008245 -vt 0.927145 0.000000 -vt 0.927145 0.008245 -vt 0.207358 0.811776 -vt 0.216875 0.792366 -vt 0.216875 0.811776 -vt 0.915601 0.718231 -vt 0.906084 0.709982 -vt 0.915601 0.709982 -vt 0.283051 0.808186 -vt 0.292567 0.792366 -vt 0.292567 0.808186 -vt 0.894540 0.008245 -vt 0.904056 0.000000 -vt 0.904056 0.008245 -vt 0.892512 0.748989 -vt 0.882996 0.740740 -vt 0.892512 0.740740 -vt 0.871452 0.008245 -vt 0.880968 0.000000 -vt 0.880968 0.008245 -vt 0.197842 0.812072 -vt 0.207358 0.792366 -vt 0.207358 0.812072 -vt 0.614509 0.860967 -vt 0.596954 0.778446 -vt 0.614509 0.778446 -vt 0.614776 0.778446 -vt 0.596954 0.695924 -vt 0.614776 0.695924 -vt 0.581725 0.784464 -vt 0.596033 0.866985 -vt 0.581725 0.866985 -vt 0.869324 0.721776 -vt 0.861081 0.804298 -vt 0.861081 0.721776 -vt 0.484540 0.772139 -vt 0.476292 0.854660 -vt 0.476292 0.772139 -vt 0.259538 0.795909 -vt 0.252011 0.810828 -vt 0.252011 0.792366 -vt 0.175380 0.792366 -vt 0.167853 0.818561 -vt 0.167853 0.795909 -vt 0.182907 0.818561 -vt 0.175380 0.792366 -vt 0.182907 0.795909 -vt 0.852838 0.804298 -vt 0.861081 0.721776 -vt 0.861081 0.804298 -vt 0.252011 0.810828 -vt 0.244484 0.795909 -vt 0.252011 0.792366 -vt 0.093140 0.874888 -vt 0.101383 0.792366 -vt 0.101383 0.874888 -vt 0.700265 0.755419 -vt 0.692018 0.837940 -vt 0.692018 0.755419 -vt 0.581725 0.866985 -vt 0.557139 0.784464 -vt 0.581725 0.784464 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.557139 0.555468 -vt 0.485092 0.791728 -vt 0.485092 0.555468 -vt 0.620444 0.502578 -vt 0.595584 0.266107 -vt 0.620444 0.265441 -vt 0.535846 0.001360 -vt 0.510315 0.025353 -vt 0.510315 0.000676 -vt 0.551659 0.026461 -vt 0.551659 0.001784 -vt 0.535846 0.529522 -vt 0.510315 0.505529 -vt 0.535846 0.504845 -vt 0.551660 0.504421 -vt 0.551660 0.529098 -vt 0.490617 0.530734 -vt 0.510315 0.530206 -vt 0.576181 0.528441 -vt 0.576181 0.503764 -vt 0.595584 0.503244 -vt 0.595584 0.527921 -vt 0.620444 0.527255 -vt 0.490617 0.000148 -vt 0.576181 0.002441 -vt 0.595584 0.027638 -vt 0.595584 0.002961 -vt 0.620444 0.003627 -vt 0.476292 0.925939 -vt 0.403408 0.689618 -vt 0.475455 0.689618 -vt 0.485092 0.530882 -vt 0.557139 0.530882 -vt 0.487972 0.024754 -vt 0.485092 0.000000 -vt 0.487972 0.506128 -vt 0.490617 0.506057 -vt 0.397268 0.767754 -vt 0.372674 0.850275 -vt 0.372674 0.767754 -vt 0.305887 0.807001 -vt 0.301411 0.831587 -vt 0.300651 0.806674 -vt 0.704679 0.755419 -vt 0.701916 0.832703 -vt 0.701916 0.760656 -vt 0.618985 0.828899 -vt 0.614509 0.804313 -vt 0.619745 0.803986 -vt 0.704679 0.827177 -vt 0.709079 0.824292 -vt 0.704679 0.827177 -vt 0.910364 0.236260 -vt 0.915601 0.000000 -vt 0.915601 0.236260 -vt 0.065027 0.833726 -vt 0.051389 0.814098 -vt 0.065027 0.808186 -vt 0.620303 0.695924 -vt 0.617540 0.701161 -vt 0.614776 0.695924 -vt 0.222112 0.810188 -vt 0.216875 0.829894 -vt 0.216875 0.810188 -vt 0.689255 0.760656 -vt 0.664385 0.755419 -vt 0.692018 0.755419 -vt 0.617540 0.773209 -vt 0.614776 0.778446 -vt 0.065027 0.853432 -vt 0.051389 0.836254 -vt 0.003254 0.809576 -vt 0.018875 0.792366 -vt 0.018875 0.812072 -vt 0.212595 0.811776 -vt 0.207358 0.817303 -vt 0.207358 0.811776 -vt 0.619746 0.778446 -vt 0.614509 0.803986 -vt 0.614509 0.778446 -vt 0.241144 0.792366 -vt 0.235907 0.811776 -vt 0.787200 0.792098 -vt 0.790305 0.776917 -vt 0.790305 0.796315 -vt 0.620303 0.778446 -vt 0.037751 0.809544 -vt 0.051389 0.792366 -vt 0.051389 0.812072 -vt 0.689255 0.832703 -vt 0.692018 0.837940 -vt 0.620444 0.832703 -vt 0.644975 0.837940 -vt 0.620444 0.837940 -vt 0.485092 0.530882 -vt 0.290177 0.815715 -vt 0.295414 0.810188 -vt 0.295414 0.815715 -vt 0.787200 0.827177 -vt 0.310167 0.817907 -vt 0.315404 0.792366 -vt 0.315404 0.817907 -vt 0.644975 0.832703 -vt 0.664385 0.837940 -vt 0.003254 0.845457 -vt 0.018875 0.837612 -vt 0.018875 0.853432 -vt 0.344919 0.772991 -vt 0.320049 0.767754 -vt 0.347683 0.767754 -vt 0.644975 0.760656 -vt 0.620444 0.755419 -vt 0.644975 0.755419 -vt 0.300651 0.810188 -vt 0.295414 0.826008 -vt 0.295414 0.810188 -vt 0.226391 0.834451 -vt 0.231628 0.809921 -vt 0.231628 0.834451 -vt 0.664385 0.760656 -vt 0.344919 0.845038 -vt 0.347683 0.850275 -vt 0.320049 0.850275 -vt 0.789964 0.691775 -vt 0.787200 0.774296 -vt 0.787200 0.691775 -vt 0.287330 0.808186 -vt 0.887275 0.236260 -vt 0.892512 0.000000 -vt 0.892512 0.236260 -vt 0.202121 0.812072 -vt 0.288288 0.808186 -vt 0.283051 0.832716 -vt 0.283051 0.808186 -vt 0.787200 0.824414 -vt 0.787200 0.827177 -vt 0.933452 0.236260 -vt 0.938689 0.000000 -vt 0.938689 0.236260 -vt 0.211638 0.811776 -vt 0.000000 0.809576 -vt 0.003254 0.792481 -vt 0.000000 0.831733 -vt 0.003254 0.831733 -vt 0.018875 0.853317 -vt 0.022130 0.836222 -vt 0.022130 0.853317 -vt 0.018875 0.836222 -vt 0.022130 0.814065 -vt 0.018875 0.814065 -vt 0.022130 0.800341 -vt 0.000000 0.845457 -vt 0.790305 0.814896 -vt 0.787470 0.800718 -vt 0.790305 0.796315 -vt 0.037751 0.831700 -vt 0.051389 0.837612 -vt 0.037751 0.853432 -vt 0.037751 0.833726 -vt 0.051389 0.800375 -vt 0.065027 0.792366 -vt 0.037751 0.808186 -vt 0.037751 0.845424 -vt 0.051389 0.853432 -vt 0.307332 0.823587 -vt 0.310167 0.809409 -vt 0.310167 0.827990 -vt 0.037751 0.792366 -vt 0.318509 0.811765 -vt 0.315404 0.796584 -vt 0.318509 0.792366 -vt 0.283051 0.792366 -vt 0.274474 0.809921 -vt 0.274474 0.792366 -vt 0.282234 0.809921 -vt 0.274474 0.824228 -vt 0.274474 0.809921 -vt 0.310167 0.806674 -vt 0.300651 0.792366 -vt 0.310167 0.792366 -vt 0.300651 0.792366 -vt 0.292567 0.810188 -vt 0.292567 0.792366 -vt 0.216875 0.792366 -vt 0.226391 0.810188 -vt 0.216875 0.810188 -vt 0.869424 0.711645 -vt 0.853990 0.721776 -vt 0.791279 0.679320 -vt 0.772358 0.691775 -vt 0.940771 0.763658 -vt 0.948855 0.755412 -vt 0.948855 0.763658 -vt 0.959020 0.008249 -vt 0.950936 0.000000 -vt 0.959020 0.000000 -vt 0.982377 0.730012 -vt 0.990137 0.721766 -vt 0.990137 0.730012 -vt 1.000000 0.008249 -vt 0.992239 0.000000 -vt 1.000000 0.000000 -vt 0.980275 0.008249 -vt 0.971698 0.000000 -vt 0.980275 0.000000 -vt 0.708791 0.156525 -vt 0.747979 0.012455 -vt 0.794844 0.156550 -vt 0.830352 0.010131 -vt 0.623416 0.156571 -vt 0.662562 0.012600 -vt 0.188447 0.180960 -vt 0.073859 0.751456 -vt 0.113143 0.725488 -vt 0.704679 0.742819 -vt 0.685441 0.755419 -vt 0.029809 0.780574 -vt 0.961070 0.700006 -vt 0.969648 0.691761 -vt 0.969648 0.700006 -vt 0.228713 0.207577 -vt 0.163882 0.164721 -vt 0.402571 0.000000 -vt 0.320050 0.008249 -vt 0.320050 0.000000 -vt 0.271492 0.235855 -vt 0.158942 0.695214 -vt 0.226391 0.792366 -vt 0.235907 0.809921 -vt 0.226391 0.809921 -vt 0.782801 0.824292 -vt 0.709916 0.691775 -vt 0.781963 0.691775 -vt 0.293147 0.071133 -vt 0.485092 0.689617 -vt 0.397572 0.850275 -vt 0.347683 0.850275 -vt 0.145390 0.815364 -vt 0.596954 0.695924 -vt 0.484540 0.772139 -vt 0.185536 0.000000 -vt 0.250368 0.042855 -vt 0.167853 0.792366 -vt 0.005344 0.407416 -vt 0.053898 0.266184 -vt 0.210101 0.016238 -vt 0.145391 0.815364 -vt 0.596954 0.613403 -vt 0.152917 0.792366 -vt 0.274474 0.814467 -vt 0.190375 0.792366 -vt 0.728671 0.691775 -vt 0.190375 0.792366 -vt 0.267006 0.792366 -vt 0.929173 0.685553 -vt 0.917629 0.000000 -vt 0.207358 0.792366 -vt 0.906084 0.718231 -vt 0.283051 0.792366 -vt 0.894540 0.000000 -vt 0.882996 0.748989 -vt 0.871452 0.000000 -vt 0.197842 0.792366 -vt 0.596954 0.860967 -vt 0.596954 0.778446 -vt 0.596033 0.784464 -vt 0.869324 0.804298 -vt 0.484540 0.854660 -vt 0.259538 0.814371 -vt 0.175380 0.815018 -vt 0.175380 0.815018 -vt 0.852838 0.721776 -vt 0.244484 0.814371 -vt 0.093140 0.792366 -vt 0.700265 0.837940 -vt 0.557139 0.866985 -vt 0.557139 0.791728 -vt 0.535846 0.026037 -vt 0.490617 0.024825 -vt 0.576181 0.027118 -vt 0.620444 0.028304 -vt 0.402571 0.925939 -vt 0.397268 0.850275 -vt 0.305811 0.831587 -vt 0.704679 0.837940 -vt 0.614585 0.828899 -vt 0.704679 0.824414 -vt 0.910364 0.000000 -vt 0.620303 0.701161 -vt 0.222112 0.829894 -vt 0.051389 0.853349 -vt 0.212595 0.817303 -vt 0.619746 0.803986 -vt 0.241144 0.811776 -vt 0.788376 0.774296 -vt 0.620303 0.773209 -vt 0.037751 0.792449 -vt 0.485092 0.530882 -vt 0.290177 0.810188 -vt 0.310167 0.792366 -vt 0.664385 0.832703 -vt 0.320049 0.772991 -vt 0.620444 0.760656 -vt 0.300651 0.826008 -vt 0.226391 0.809921 -vt 0.320049 0.845038 -vt 0.789964 0.774296 -vt 0.287330 0.792366 -vt 0.887275 0.000000 -vt 0.202121 0.792366 -vt 0.288288 0.832716 -vt 0.933452 0.000000 -vt 0.211638 0.792366 -vt 0.000000 0.792481 -vt 0.018875 0.800341 -vt 0.788543 0.817632 -vt 0.308405 0.806674 -vt 0.316580 0.814385 -vt 0.283051 0.809921 -vt 0.282234 0.824228 -vt 0.300651 0.806674 -vt 0.300651 0.810188 -vt 0.226391 0.792366 -vt 0.940771 0.755412 -vt 0.950936 0.008249 -vt 0.982377 0.721766 -vt 0.992239 0.008249 -vt 0.971698 0.008249 -vt 0.729058 0.000000 -vt 0.814918 0.000000 -vt 0.643324 0.000000 -vt 0.961070 0.691761 -vt 0.402571 0.008249 -vt 0.235907 0.792366 -vt 0.127497 0.811550 -vt 0.123116 0.818581 -vt 0.123116 0.807181 -vt 0.127497 0.814449 -vt 0.134517 0.818552 -vt 0.130396 0.811543 -vt 0.130396 0.814442 -vt 0.134517 0.807151 -vt 0.101383 0.814099 -vt 0.123116 0.792429 -vt 0.123116 0.814162 -vt 0.837444 0.761082 -vt 0.852838 0.849638 -vt 0.837444 0.849557 -vt 0.822059 0.761163 -vt 0.822059 0.849638 -vt 0.806673 0.761082 -vt 0.806673 0.849557 -vt 0.791279 0.849638 -vt 0.555515 0.792251 -vt 0.540125 0.831298 -vt 0.540125 0.791728 -vt 0.829377 0.721819 -vt 0.814741 0.721819 -vt 0.524736 0.792251 -vt 0.123116 0.807113 -vt 0.132491 0.801514 -vt 0.137863 0.807151 -vt 0.132491 0.797763 -vt 0.137863 0.792404 -vt 0.128740 0.797754 -vt 0.123116 0.792366 -vt 0.065027 0.820479 -vt 0.093140 0.792447 -vt 0.093140 0.820560 -vt 0.577041 0.657568 -vt 0.596954 0.569926 -vt 0.596954 0.657673 -vt 0.557139 0.569926 -vt 0.557139 0.657673 -vt 0.577053 0.784359 -vt 0.596954 0.696717 -vt 0.596954 0.784464 -vt 0.557139 0.696717 -vt 0.557139 0.784464 -vt 0.524736 0.801194 -vt 0.485092 0.811635 -vt 0.485768 0.791728 -vt 0.566606 0.530937 -vt 0.577041 0.569822 -vt 0.577053 0.696612 -vt 0.587488 0.657728 -vt 0.524381 0.811635 -vt 0.485768 0.831543 -vt 0.403905 0.455114 -vt 0.485092 0.524709 -vt 0.402571 0.524709 -vt 0.485092 0.024594 -vt 0.402571 0.260929 -vt 0.402571 0.024594 -vt 0.405201 0.363486 -vt 0.483777 0.455114 -vt 0.402571 0.008249 -vt 0.320050 0.164983 -vt 0.320050 0.008249 -vt 0.485092 0.260929 -vt 0.402571 0.164983 -vt 0.321384 0.262078 -vt 0.401256 0.262078 -vt 0.322680 0.383997 -vt 0.402571 0.531494 -vt 0.320050 0.531494 -vt 0.961070 0.691761 -vt 0.969648 0.535097 -vt 0.969648 0.691761 -vt 0.968332 0.456142 -vt 0.961070 0.535097 -vt 0.960031 0.456142 -vt 0.967054 0.354200 -vt 0.961070 0.236335 -vt 0.959020 0.354200 -vt 0.969647 0.000000 -vt 0.961070 0.000000 -vt 0.320050 0.767754 -vt 0.485092 0.000000 -vt 0.402571 0.000000 -vt 0.980275 0.164984 -vt 0.971698 0.008249 -vt 0.980275 0.008249 -vt 0.978959 0.240089 -vt 0.971698 0.164984 -vt 0.977682 0.337774 -vt 0.970658 0.240089 -vt 0.971698 0.449293 -vt 0.969647 0.337774 -vt 0.971698 0.685554 -vt 0.980275 0.449293 -vt 0.980275 0.685554 -vt 0.990137 0.236335 -vt 0.982376 0.000000 -vt 0.990137 0.000000 -vt 0.992239 0.718231 -vt 1.000000 0.481971 -vt 1.000000 0.718231 -vt 0.997407 0.356149 -vt 0.992239 0.481971 -vt 0.990137 0.356149 -vt 0.987544 0.367330 -vt 0.982376 0.236335 -vt 0.981310 0.478117 -vt 0.988822 0.478117 -vt 0.991173 0.248831 -vt 0.998685 0.248831 -vt 0.982377 0.565103 -vt 0.990137 0.565103 -vt 0.992239 0.164983 -vt 1.000000 0.164983 -vt 0.992239 0.008249 -vt 1.000000 0.008249 -vt 0.982377 0.721766 -vt 0.990137 0.721766 -vt 0.959020 0.164983 -vt 0.950936 0.008249 -vt 0.959020 0.008249 -vt 0.957705 0.257059 -vt 0.950936 0.164983 -vt 0.956427 0.373445 -vt 0.949880 0.257059 -vt 0.950936 0.512729 -vt 0.948855 0.373445 -vt 0.950936 0.748989 -vt 0.959020 0.512729 -vt 0.959020 0.748989 -vt 0.948855 0.236335 -vt 0.940770 0.000000 -vt 0.948855 0.000000 -vt 0.946262 0.382053 -vt 0.940770 0.236335 -vt 0.939715 0.502760 -vt 0.947539 0.502760 -vt 0.940770 0.598749 -vt 0.948855 0.598749 -vt 0.940771 0.755412 -vt 0.948855 0.755412 -vt 0.936059 0.347780 -vt 0.929173 0.236260 -vt 0.938689 0.236260 -vt 0.938689 0.000000 -vt 0.928144 0.445465 -vt 0.927145 0.347780 -vt 0.937355 0.445465 -vt 0.929173 0.520570 -vt 0.925811 0.243865 -vt 0.917629 0.164909 -vt 0.927145 0.164909 -vt 0.927145 0.700006 -vt 0.917629 0.463671 -vt 0.927145 0.463671 -vt 0.924515 0.345806 -vt 0.916600 0.243865 -vt 0.912970 0.362082 -vt 0.905056 0.469401 -vt 0.904056 0.362082 -vt 0.906084 0.236260 -vt 0.915601 0.236260 -vt 0.915601 0.000000 -vt 0.914266 0.469401 -vt 0.906084 0.553248 -vt 0.904056 0.730011 -vt 0.894540 0.493676 -vt 0.904056 0.493676 -vt 0.901426 0.362682 -vt 0.893512 0.251894 -vt 0.902722 0.251894 -vt 0.894540 0.164908 -vt 0.904056 0.164908 -vt 0.882996 0.236260 -vt 0.892512 0.000000 -vt 0.892512 0.236260 -vt 0.889882 0.375544 -vt 0.881967 0.491931 -vt 0.880968 0.375544 -vt 0.891178 0.491931 -vt 0.882996 0.584006 -vt 0.879634 0.260898 -vt 0.871452 0.164909 -vt 0.880968 0.164909 -vt 0.878338 0.381605 -vt 0.870423 0.260898 -vt 0.871452 0.527323 -vt 0.880968 0.527323 -vt 0.880968 0.763658 -vt 0.880968 0.008245 -vt 0.892512 0.740740 -vt 0.892512 0.584006 -vt 0.904056 0.008245 -vt 0.915601 0.709982 -vt 0.915601 0.553248 -vt 0.927145 0.008245 -vt 0.938689 0.677304 -vt 0.938689 0.520570 -vt 0.402571 0.681372 -vt 0.101383 0.792366 -vt 0.852838 0.761163 -vt 0.791279 0.761163 -vt 0.548197 0.831572 -vt 0.837446 0.721776 -vt 0.806671 0.721776 -vt 0.532054 0.831572 -vt 0.128740 0.801504 -vt 0.065027 0.792366 -vt 0.577044 0.530882 -vt 0.577050 0.657673 -vt 0.524736 0.822076 -vt 0.482499 0.363486 -vt 0.399978 0.383997 -vt 0.969647 0.236335 -vt 0.402571 0.767754 -vt 0.980275 0.367330 -vt 0.938689 0.382053 -vt 0.929173 0.000000 -vt 0.917629 0.700006 -vt 0.915601 0.345806 -vt 0.906084 0.000000 -vt 0.894540 0.730011 -vt 0.892512 0.362682 -vt 0.882996 0.000000 -vt 0.869424 0.381605 -vt 0.871452 0.763658 -vt 0.871452 0.008245 -vt 0.882996 0.740740 -vt 0.894540 0.008245 -vt 0.906084 0.709982 -vt 0.917629 0.008245 -vt 0.929173 0.677304 -vt 0.485092 0.681372 -vn 1.0000 0.0000 0.0000 -vn 0.9997 -0.0235 0.0038 -vn 0.9999 0.0128 -0.0037 -vn 0.9999 0.0131 -0.0049 -vn 0.9999 0.0139 -0.0032 -vn 0.9999 0.0154 -0.0060 -vn 0.9998 0.0164 -0.0066 -vn -1.0000 -0.0000 0.0000 -vn -0.9997 -0.0252 -0.0004 -vn -0.9999 0.0137 -0.0022 -vn -0.9999 0.0149 -0.0025 -vn -0.9998 0.0171 -0.0043 -vn -0.9998 0.0178 -0.0052 -vn -0.9998 0.0172 -0.0062 -vn 0.0000 0.3531 0.9356 -vn 0.0000 -0.9272 0.3747 -vn 0.0000 -0.3747 -0.9272 -vn -0.9999 0.0123 -0.0035 -vn -0.9999 0.0164 -0.0046 -vn -0.9999 0.0131 -0.0038 -vn -0.9999 0.0158 -0.0046 -vn -0.9999 0.0154 -0.0056 -vn -0.9999 0.0104 -0.0017 -vn -0.9999 0.0123 -0.0020 -vn -0.9999 0.0133 -0.0022 -vn -0.9998 -0.0176 -0.0003 -vn -0.9998 -0.0220 -0.0003 -vn 0.9999 0.0129 -0.0052 -vn 0.9999 0.0115 -0.0084 -vn 0.9998 0.0162 -0.0061 -vn 0.9999 0.0094 -0.0038 -vn 0.9999 0.0091 -0.0066 -vn 0.9999 0.0126 -0.0049 -vn 0.9999 0.0138 -0.0054 -vn 0.9999 0.0148 -0.0060 -vn 0.9999 0.0102 -0.0030 -vn 0.9999 0.0106 -0.0037 -vn 1.0000 0.0080 -0.0023 -vn 1.0000 0.0086 -0.0020 -vn 0.9999 0.0116 -0.0034 -vn 0.9999 0.0120 -0.0044 -vn 0.9999 0.0126 -0.0029 -vn 0.9998 -0.0179 -0.0003 -vn 0.9999 -0.0137 0.0022 -vn 0.9998 -0.0207 0.0034 -vn 0.9998 -0.0187 0.0031 -vn 0.9999 0.0107 -0.0031 -vn 0.9999 0.0110 -0.0040 -vn 0.9999 0.0136 -0.0055 -vn -0.9998 -0.0198 -0.0003 -vn -0.9999 0.0113 -0.0018 -vn -0.9999 0.0137 -0.0035 -vn -0.9999 0.0144 -0.0042 -vn -0.9999 0.0140 -0.0051 -vn -1.0000 -0.0015 -0.0017 -vn -1.0000 -0.0012 0.0020 -vn 1.0000 -0.0008 -0.0022 -vn 1.0000 -0.0010 0.0023 -vn 1.0000 -0.0004 0.0023 -vn 1.0000 -0.0023 -0.0010 -vn -1.0000 -0.0009 -0.0023 -vn -0.9999 -0.0150 -0.0002 -vn -1.0000 0.0086 -0.0014 -vn -0.9999 0.0109 -0.0032 -vn -0.9999 0.0135 -0.0042 -vn -0.9999 0.0114 -0.0031 -vn -0.9999 0.0149 -0.0046 -vn -0.9999 0.0121 -0.0035 -vn -1.0000 0.0095 -0.0015 -vn -0.9999 -0.0167 -0.0002 -vn -0.9999 0.0124 -0.0032 -vn -0.9999 0.0161 -0.0052 -vn -0.9999 0.0101 -0.0017 -vn -0.9998 -0.0183 -0.0003 -vn 0.0000 -0.9999 -0.0147 -vn 0.9999 0.0113 -0.0045 -vn 0.9999 0.0108 -0.0079 -vn 0.9999 0.0153 -0.0057 -vn 1.0000 0.0095 -0.0027 -vn 0.9999 0.0102 -0.0024 -vn 0.9998 -0.0171 0.0028 -vn 0.9999 0.0103 -0.0042 -vn 0.9999 0.0099 -0.0072 -vn 0.9999 0.0139 -0.0053 -vn 1.0000 0.0087 -0.0025 -vn 1.0000 0.0094 -0.0022 -vn 0.9999 -0.0153 0.0025 -vn 0.0000 -0.3531 -0.9356 -vn 0.0000 0.3747 0.9271 -vn 0.0000 0.3747 0.9272 -vn 0.0000 0.0147 -0.9999 -vn 0.0000 0.0000 1.0000 -vn 1.0000 -0.0023 0.0008 -vn 1.0000 0.0024 0.0010 -vn 1.0000 0.0024 0.0005 -vn -1.0000 0.0018 -0.0016 -vn -1.0000 -0.0021 -0.0012 +mtllib ar15.mtl +o mag +v 0.065068 1.436829 0.651256 +v 0.065068 1.419299 0.637000 +v 0.059066 1.413296 0.636971 +v 0.041467 1.413228 0.651141 +v 0.065068 1.407295 0.636941 +v 0.065068 1.389627 0.651026 +v 0.071070 1.413296 0.636971 +v 0.088670 1.413228 0.651141 +v 0.065068 1.454777 1.360036 +v 0.020068 1.409778 1.359817 +v 0.065068 1.364778 1.359598 +v 0.110068 1.409778 1.359817 +v 0.110068 1.412166 0.869278 +v 0.065068 1.457165 0.869497 +v 0.065068 1.367166 0.869059 +v 0.020068 1.412166 0.869278 +v -0.035037 1.482139 0.646559 +v -0.035037 1.459440 0.632761 +v -0.042801 1.451676 0.632724 +v -0.065567 1.451609 0.646410 +v -0.035037 1.443911 0.632686 +v -0.035037 1.421079 0.646262 +v -0.027273 1.451676 0.632724 +v -0.004507 1.451609 0.646410 +v -0.035037 1.506397 1.349364 +v -0.093247 1.448188 1.349081 +v -0.035037 1.389978 1.348797 +v 0.023173 1.448188 1.349081 +v 0.023173 1.450556 0.862582 +v -0.035037 1.508766 0.862866 +v -0.035037 1.392347 0.862299 +v -0.093247 1.450556 0.862582 +v -0.107706 1.399587 1.348511 +v -0.107706 0.706169 1.358716 +v -0.107706 0.706620 1.389339 +v -0.107706 1.400038 1.379134 +v -0.107706 0.697607 0.776877 +v -0.107706 0.695354 0.623761 +v -0.100015 0.394515 0.626606 +v -0.100015 0.370726 0.772163 +v -0.103805 0.127366 0.591050 +v -0.103805 0.085949 0.733473 +v -0.107706 -0.074583 0.541713 +v -0.107706 -0.132123 0.684096 +v -0.107706 -0.584175 0.513467 +v -0.107706 -0.526635 0.371085 +v -0.107706 -0.550427 0.362104 +v -0.107706 -0.607967 0.504486 +v 0.133589 1.399587 1.348511 +v 0.133589 1.400038 1.379134 +v 0.133589 0.706620 1.389338 +v 0.133589 0.706169 1.358716 +v 0.133589 0.697607 0.776877 +v 0.126007 0.370727 0.772163 +v 0.126007 0.394515 0.626606 +v 0.133589 0.695354 0.623761 +v 0.129743 0.085949 0.733473 +v 0.129743 0.127366 0.591050 +v 0.133589 -0.132123 0.684096 +v 0.133589 -0.074583 0.541713 +v 0.133589 -0.584175 0.513467 +v 0.133589 -0.607967 0.504486 +v 0.133589 -0.550427 0.362104 +v 0.133589 -0.526635 0.371085 +v -0.107706 1.388772 0.613557 +v 0.133589 1.388772 0.613557 +v -0.107706 -0.814333 1.082995 +v 0.133589 -0.814333 1.082995 +v 0.133589 -0.362281 1.253623 +v -0.107706 -0.362281 1.253623 +v 0.129743 -0.079720 1.303164 +v -0.103805 -0.079720 1.303164 +v 0.126007 0.275573 1.354391 +v -0.100015 0.275573 1.354391 +v -0.107706 -0.826617 1.045538 +v 0.133589 -0.826617 1.045538 +v 0.133589 -0.838125 1.074014 +v -0.107706 -0.838125 1.074015 +v -0.107706 -0.785585 0.944003 +v -0.107706 -0.802859 1.055140 +v -0.107706 -0.761826 0.953604 +v -0.107706 -0.648384 0.604497 +v 0.133589 -0.648384 0.604497 +v 0.133589 -0.699463 0.730893 +v -0.107706 -0.699463 0.730893 +v 0.133589 -0.785585 0.944003 +v 0.133589 -0.761826 0.953604 +v 0.133589 -0.802825 1.054518 +v 0.133589 -0.675671 0.739874 +v 0.133589 -0.624591 0.613478 +v 0.108510 -0.624591 0.613478 +v 0.108510 -0.172539 0.784106 +v 0.133589 -0.172539 0.784106 +v 0.133589 -0.350773 1.225147 +v 0.129743 -0.071437 1.274679 +v 0.129743 0.020090 0.959944 +v 0.133589 -0.223618 0.910502 +v 0.129743 0.056857 0.833512 +v 0.105469 0.056857 0.833512 +v 0.126007 0.280331 1.325280 +v 0.126007 0.332900 1.003619 +v 0.126007 0.354017 0.874404 +v 0.102515 0.354017 0.874404 +v 0.133589 0.701190 1.020352 +v 0.133589 0.699190 0.884427 +v 0.108510 0.699190 0.884427 +v 0.133589 1.391026 0.766673 +v 0.108510 1.392608 0.874223 +v 0.133589 1.392608 0.874223 +v 0.133589 1.394608 1.010147 +v -0.107706 -0.802825 1.054518 +v -0.079881 -0.802825 1.054518 +v -0.079881 -0.826617 1.045538 +v -0.079881 -0.785585 0.944003 +v -0.079881 -0.761793 0.952983 +v -0.107706 -0.675671 0.739874 +v -0.107706 -0.624591 0.613478 +v -0.103805 -0.071437 1.274679 +v -0.107706 -0.350773 1.225147 +v -0.076873 -0.071437 1.274679 +v -0.076873 -0.041902 1.173115 +v -0.079881 -0.309741 1.123612 +v -0.079881 -0.350773 1.225147 +v -0.103805 0.020090 0.959944 +v -0.103805 0.056857 0.833512 +v -0.107706 -0.172539 0.784106 +v -0.107706 -0.223618 0.910502 +v -0.100015 0.280331 1.325280 +v -0.073951 0.280331 1.325280 +v -0.073951 0.297294 1.221481 +v -0.100015 0.332900 1.003619 +v -0.100015 0.354017 0.874405 +v -0.079881 0.706169 1.358716 +v -0.079881 0.704562 1.249526 +v -0.107706 0.701190 1.020352 +v -0.107706 0.699190 0.884427 +v -0.107706 1.391026 0.766673 +v -0.107706 1.392608 0.874223 +v -0.107706 1.394608 1.010147 +v -0.079880 1.397981 1.239322 +v -0.079880 1.399587 1.348511 +v -0.107706 1.395898 1.097803 +v -0.107706 0.702480 1.108007 +v -0.107706 0.704562 1.249526 +v -0.107706 1.397981 1.239322 +v -0.100015 0.319281 1.086947 +v -0.100015 0.297294 1.221481 +v -0.103805 -0.003621 1.041479 +v -0.103805 -0.041902 1.173115 +v -0.107706 -0.256559 0.992014 +v -0.107706 -0.309741 1.123612 +v -0.107706 -0.761793 0.952983 +v -0.107706 -0.708611 0.821385 +v -0.107706 -0.732403 0.812404 +v 0.133589 1.395898 1.097803 +v 0.133589 1.397981 1.239322 +v 0.133589 0.704562 1.249526 +v 0.133589 0.702480 1.108007 +v 0.126007 0.297294 1.221481 +v 0.126007 0.319281 1.086947 +v 0.129743 -0.041902 1.173115 +v 0.129743 -0.003621 1.041479 +v 0.133589 -0.309741 1.123612 +v 0.133589 -0.256559 0.992013 +v 0.133589 -0.761793 0.952983 +v 0.133589 -0.732403 0.812404 +v 0.133589 -0.708611 0.821385 +v 0.133589 -0.802859 1.055139 +v 0.133589 1.468057 1.096741 +v 0.133589 1.470140 1.238260 +v 0.133589 1.466767 1.009086 +v -0.107706 1.468057 1.096741 +v -0.107706 1.470140 1.238260 +v -0.107706 1.466767 1.009086 +v -0.107706 1.471747 1.347449 +v -0.107706 1.464767 0.873161 +v -0.107706 1.463184 0.765611 +v -0.107706 1.460932 0.612495 +v 0.133589 1.471747 1.347449 +v 0.133589 1.464767 0.873161 +v 0.133589 1.463184 0.765611 +v 0.133589 1.460932 0.612495 +v 0.133589 1.472197 1.378073 +v -0.107706 1.472197 1.378073 +v 0.109951 1.397981 1.239322 +v 0.109951 1.399587 1.348511 +v 0.109951 0.706169 1.358716 +v 0.109951 0.704562 1.249526 +v 0.103865 0.280331 1.325280 +v 0.103865 0.297294 1.221481 +v 0.106864 -0.071437 1.274679 +v 0.106864 -0.041902 1.173115 +v 0.109951 -0.350773 1.225147 +v 0.109951 -0.309741 1.123612 +v 0.109951 -0.802825 1.054518 +v 0.109951 -0.761793 0.952983 +v 0.109951 -0.785585 0.944003 +v 0.109951 -0.826617 1.045538 +v 0.110896 -0.708611 0.821385 +v 0.110896 -0.675671 0.739874 +v 0.110896 -0.699463 0.730893 +v 0.110896 -0.732403 0.812404 +v 0.107779 -0.003621 1.041479 +v 0.110896 -0.256559 0.992014 +v 0.110896 -0.223618 0.910502 +v 0.107779 0.020090 0.959944 +v 0.104750 0.319281 1.086947 +v 0.104750 0.332900 1.003619 +v 0.110896 0.702480 1.108007 +v 0.110896 0.701190 1.020352 +v 0.110896 1.394608 1.010147 +v 0.110896 1.395898 1.097803 +v 0.108510 -0.584175 0.513467 +v 0.108510 -0.607967 0.504486 +v 0.108510 -0.648384 0.604497 +v 0.108510 -0.132123 0.684096 +v 0.105469 0.085949 0.733473 +v 0.102515 0.370727 0.772163 +v 0.108510 0.697607 0.776877 +v 0.108510 1.391026 0.766673 +v -0.079881 -0.624591 0.613478 +v -0.079881 -0.648384 0.604497 +v -0.079881 -0.607967 0.504486 +v -0.079881 -0.584175 0.513467 +v -0.076873 0.056857 0.833512 +v -0.076873 0.085949 0.733473 +v -0.079881 -0.132123 0.684096 +v -0.079881 -0.172539 0.784106 +v -0.073951 0.354017 0.874405 +v -0.073951 0.370726 0.772163 +v -0.079881 0.699190 0.884427 +v -0.079881 0.697607 0.776877 +v -0.079880 1.391026 0.766673 +v -0.079880 1.392608 0.874223 +v -0.079881 -0.708611 0.821385 +v -0.079881 -0.732403 0.812404 +v -0.079881 -0.699463 0.730893 +v -0.079881 -0.675671 0.739874 +v -0.076873 -0.003621 1.041479 +v -0.076873 0.020090 0.959944 +v -0.079881 -0.223618 0.910502 +v -0.079881 -0.256559 0.992014 +v -0.073951 0.319281 1.086947 +v -0.073951 0.332900 1.003619 +v -0.079881 0.702480 1.108007 +v -0.079881 0.701190 1.020352 +v -0.079880 1.394608 1.010147 +v -0.079880 1.395898 1.097803 +v -0.107706 -0.584208 0.514088 +v 0.133589 -0.584208 0.514088 +v 0.133589 -0.624624 0.614099 +v -0.107706 -0.624624 0.614099 +v -0.107706 -0.675704 0.740495 +v 0.133589 -0.675704 0.740495 +v 0.133589 -0.708644 0.822006 +v -0.107706 -0.708644 0.822006 +v -0.107706 1.400038 1.379134 +v 0.133589 1.400038 1.379134 +v 0.133589 1.472197 1.378073 +v -0.107706 1.472197 1.378073 +v -0.092393 1.399587 1.348511 +v -0.094841 1.399803 1.363149 +v -0.092393 0.706394 1.374027 +v -0.092393 0.706169 1.358716 +v 0.118276 1.399587 1.348511 +v 0.118276 0.706169 1.358716 +v 0.118276 0.706394 1.374027 +v 0.120724 1.399803 1.363149 +v -0.092393 1.388998 0.628868 +v -0.092393 0.695579 0.639073 +v 0.118276 0.695579 0.639073 +v 0.118276 1.388998 0.628868 +v 0.118276 0.697607 0.776877 +v 0.118276 1.391026 0.766673 +v 0.118276 1.392608 0.874223 +v 0.118276 0.699190 0.884427 +v 0.118276 0.701190 1.020352 +v 0.118276 1.394608 1.010147 +v -0.092393 1.391026 0.766673 +v -0.092393 0.697607 0.776877 +v -0.092393 1.392608 0.874223 +v -0.092393 1.394608 1.010147 +v -0.092393 0.701190 1.020352 +v -0.092393 0.699190 0.884427 +v -0.092393 1.395898 1.097803 +v -0.092393 1.397981 1.239322 +v -0.092393 0.704562 1.249526 +v -0.092393 0.702480 1.108007 +v 0.118276 1.395898 1.097803 +v 0.118276 0.702480 1.108007 +v 0.118276 0.704562 1.249526 +v 0.118276 1.397981 1.239322 +v 0.118276 1.468057 1.096741 +v 0.118276 1.470140 1.238260 +v 0.118276 1.466767 1.009086 +v -0.092393 1.468057 1.096741 +v -0.092393 1.470140 1.238260 +v -0.092393 1.466767 1.009086 +v -0.092393 1.471747 1.347449 +v -0.092393 1.464767 0.873161 +v -0.092393 1.463184 0.765611 +v -0.092393 1.461156 0.627807 +v 0.118276 1.471747 1.347449 +v 0.118276 1.464767 0.873161 +v 0.118276 1.463184 0.765611 +v 0.118276 1.461156 0.627807 +v 0.118276 1.472197 1.378073 +v -0.092393 1.472197 1.378073 +v -0.107706 1.399813 1.363823 +v -0.107706 1.471972 1.362761 +v 0.133589 1.471972 1.362761 +v 0.133589 1.399813 1.363823 +v 0.078397 1.500497 1.250294 +v 0.078397 1.499373 1.127480 +v 0.078397 1.501365 1.345050 +v 0.087913 1.500497 1.250294 +v 0.087913 1.501365 1.345050 +v 0.078397 1.498677 1.051410 +v 0.087913 1.498677 1.051410 +v -0.052514 1.500497 1.250294 +v -0.052514 1.501365 1.345050 +v 0.087913 1.499373 1.127480 +v -0.062030 1.501365 1.345050 +v -0.062030 1.500497 1.250294 +v -0.052514 1.499373 1.127480 +v -0.062030 1.499373 1.127480 +v -0.052514 1.498677 1.051410 +v -0.062030 1.498677 1.051410 +v -0.107706 1.399587 1.348511 +v -0.107706 0.706169 1.358716 +v -0.107706 0.706620 1.389339 +v -0.107706 1.400038 1.379134 +v -0.107706 0.697607 0.776877 +v -0.107706 0.695354 0.623761 +v -0.100015 0.394515 0.626606 +v -0.100015 0.370726 0.772163 +v -0.103805 0.127366 0.591050 +v -0.103805 0.085949 0.733473 +v -0.107706 -0.074583 0.541713 +v -0.107706 -0.132123 0.684096 +v -0.107706 -0.584175 0.513467 +v -0.107706 -0.526635 0.371085 +v 0.133589 1.399587 1.348511 +v 0.133589 1.400038 1.379134 +v 0.133589 0.706620 1.389338 +v 0.133589 0.706169 1.358716 +v 0.133589 0.697607 0.776877 +v 0.126007 0.370727 0.772163 +v 0.126007 0.394515 0.626606 +v 0.133589 0.695354 0.623761 +v 0.129743 0.085949 0.733473 +v 0.129743 0.127366 0.591050 +v 0.133589 -0.132123 0.684096 +v 0.133589 -0.074583 0.541713 +v 0.133589 -0.584175 0.513467 +v 0.133589 -0.526635 0.371085 +v -0.107706 1.388772 0.613557 +v 0.133589 1.388772 0.613557 +v -0.107706 -0.814333 1.082995 +v 0.133589 -0.814333 1.082995 +v 0.133589 -0.362281 1.253623 +v -0.107706 -0.362281 1.253623 +v 0.129743 -0.079720 1.303164 +v -0.103805 -0.079720 1.303164 +v 0.126007 0.275573 1.354391 +v -0.100015 0.275573 1.354391 +v 0.133589 -0.802825 1.054518 +v 0.133589 -0.675671 0.739874 +v 0.133589 -0.624591 0.613478 +v 0.108510 -0.624591 0.613478 +v 0.108510 -0.172539 0.784106 +v 0.133589 -0.172539 0.784106 +v 0.133589 -0.350773 1.225147 +v 0.129743 -0.071437 1.274679 +v 0.129743 0.020090 0.959944 +v 0.133589 -0.223618 0.910502 +v 0.129743 0.056857 0.833512 +v 0.105469 0.056857 0.833512 +v 0.126007 0.280331 1.325280 +v 0.126007 0.332900 1.003619 +v 0.126007 0.354017 0.874404 +v 0.102515 0.354017 0.874404 +v 0.133589 0.701190 1.020352 +v 0.133589 0.699190 0.884427 +v 0.108510 0.699190 0.884427 +v 0.133589 1.391026 0.766673 +v 0.108510 1.392608 0.874223 +v 0.133589 1.392608 0.874223 +v 0.133589 1.394608 1.010147 +v -0.107706 -0.802825 1.054518 +v -0.079881 -0.802825 1.054518 +v -0.079881 -0.761793 0.952983 +v -0.107706 -0.675671 0.739874 +v -0.107706 -0.624591 0.613478 +v -0.103805 -0.071437 1.274679 +v -0.107706 -0.350773 1.225147 +v -0.076873 -0.071437 1.274679 +v -0.076873 -0.041902 1.173115 +v -0.079881 -0.309741 1.123612 +v -0.079881 -0.350773 1.225147 +v -0.103805 0.020090 0.959944 +v -0.103805 0.056857 0.833512 +v -0.107706 -0.172539 0.784106 +v -0.107706 -0.223618 0.910502 +v -0.100015 0.280331 1.325280 +v -0.073951 0.280331 1.325280 +v -0.073951 0.297294 1.221481 +v -0.100015 0.332900 1.003619 +v -0.100015 0.354017 0.874405 +v -0.079881 0.706169 1.358716 +v -0.079881 0.704562 1.249526 +v -0.107706 0.701190 1.020352 +v -0.107706 0.699190 0.884427 +v -0.107706 1.391026 0.766673 +v -0.107706 1.392608 0.874223 +v -0.107706 1.394608 1.010147 +v -0.079880 1.397981 1.239322 +v -0.079880 1.399587 1.348511 +v -0.107706 1.395898 1.097803 +v -0.107706 0.702480 1.108007 +v -0.107706 0.704562 1.249526 +v -0.107706 1.397981 1.239322 +v -0.100015 0.319281 1.086947 +v -0.100015 0.297294 1.221481 +v -0.103805 -0.003621 1.041479 +v -0.103805 -0.041902 1.173115 +v -0.107706 -0.256559 0.992014 +v -0.107706 -0.309741 1.123612 +v -0.107706 -0.761793 0.952983 +v -0.107706 -0.708611 0.821385 +v 0.133589 1.395898 1.097803 +v 0.133589 1.397981 1.239322 +v 0.133589 0.704562 1.249526 +v 0.133589 0.702480 1.108007 +v 0.126007 0.297294 1.221481 +v 0.126007 0.319281 1.086947 +v 0.129743 -0.041902 1.173115 +v 0.129743 -0.003621 1.041479 +v 0.133589 -0.309741 1.123612 +v 0.133589 -0.256559 0.992013 +v 0.133589 -0.761793 0.952983 +v 0.133589 -0.708611 0.821385 +v -0.107706 1.460932 0.612495 +v 0.133589 1.460932 0.612495 +v 0.109951 1.397981 1.239322 +v 0.109951 1.399587 1.348511 +v 0.109951 0.706169 1.358716 +v 0.109951 0.704562 1.249526 +v 0.103865 0.280331 1.325280 +v 0.103865 0.297294 1.221481 +v 0.106864 -0.071437 1.274679 +v 0.106864 -0.041902 1.173115 +v 0.109951 -0.350773 1.225147 +v 0.109951 -0.309741 1.123612 +v 0.109951 -0.802825 1.054518 +v 0.109951 -0.761793 0.952983 +v 0.110896 -0.708611 0.821385 +v 0.110896 -0.675671 0.739874 +v 0.107779 -0.003621 1.041479 +v 0.110896 -0.256559 0.992014 +v 0.110896 -0.223618 0.910502 +v 0.107779 0.020090 0.959944 +v 0.104750 0.319281 1.086947 +v 0.104750 0.332900 1.003619 +v 0.110896 0.702480 1.108007 +v 0.110896 0.701190 1.020352 +v 0.110896 1.394608 1.010147 +v 0.110896 1.395898 1.097803 +v 0.108510 -0.584175 0.513467 +v 0.108510 -0.132123 0.684096 +v 0.105469 0.085949 0.733473 +v 0.102515 0.370727 0.772163 +v 0.108510 0.697607 0.776877 +v 0.108510 1.391026 0.766673 +v -0.079881 -0.624591 0.613478 +v -0.079881 -0.584175 0.513467 +v -0.076873 0.056857 0.833512 +v -0.076873 0.085949 0.733473 +v -0.079881 -0.132123 0.684096 +v -0.079881 -0.172539 0.784106 +v -0.073951 0.354017 0.874405 +v -0.073951 0.370726 0.772163 +v -0.079881 0.699190 0.884427 +v -0.079881 0.697607 0.776877 +v -0.079880 1.391026 0.766673 +v -0.079880 1.392608 0.874223 +v -0.079881 -0.708611 0.821385 +v -0.079881 -0.675671 0.739874 +v -0.076873 -0.003621 1.041479 +v -0.076873 0.020090 0.959944 +v -0.079881 -0.223618 0.910502 +v -0.079881 -0.256559 0.992014 +v -0.073951 0.319281 1.086947 +v -0.073951 0.332900 1.003619 +v -0.079881 0.702480 1.108007 +v -0.079881 0.701190 1.020352 +v -0.079880 1.394608 1.010147 +v -0.079880 1.395898 1.097803 +vn -1.0000 -0.0000 -0.0000 +vn -0.9997 -0.0235 -0.0038 +vn -0.9999 0.0128 0.0037 +vn -0.9999 0.0131 0.0047 +vn -0.9999 0.0139 0.0032 +vn -0.9999 0.0156 0.0062 +vn -0.9998 0.0164 0.0066 +vn 1.0000 -0.0000 -0.0000 +vn 0.9997 -0.0252 0.0004 +vn 0.9999 0.0137 0.0022 +vn 0.9999 0.0148 0.0025 +vn 0.9998 0.0171 0.0043 +vn 0.9998 0.0178 0.0052 +vn 0.9998 0.0172 0.0062 +vn -0.0000 0.3532 -0.9356 +vn -0.0000 -0.9272 -0.3747 +vn -0.0000 -0.3747 0.9272 +vn 0.9999 0.0126 0.0036 +vn 0.9999 0.0164 0.0046 +vn 0.9999 0.0131 0.0038 +vn 0.9999 0.0158 0.0046 +vn 0.9999 0.0154 0.0056 +vn 0.9999 0.0104 0.0017 +vn 0.9999 0.0123 0.0020 +vn 0.9999 0.0131 0.0022 +vn 0.9998 -0.0176 0.0003 +vn 0.9998 -0.0220 0.0003 +vn -0.9999 0.0129 0.0052 +vn -0.9999 0.0115 0.0084 +vn -0.9998 0.0162 0.0061 +vn -0.9999 0.0094 0.0038 +vn -0.9999 0.0091 0.0066 +vn -0.9999 0.0126 0.0049 +vn -0.9999 0.0139 0.0054 +vn -0.9999 0.0148 0.0060 +vn -0.9999 0.0102 0.0030 +vn -0.9999 0.0104 0.0033 +vn -1.0000 0.0080 0.0023 +vn -1.0000 0.0088 0.0020 +vn -0.9999 0.0116 0.0034 +vn -0.9999 0.0120 0.0044 +vn -0.9999 0.0126 0.0029 +vn -0.9998 -0.0179 0.0003 +vn -0.9999 -0.0137 -0.0022 +vn -0.9998 -0.0207 -0.0034 +vn -0.9998 -0.0187 -0.0031 +vn -0.9999 0.0107 0.0031 +vn -0.9999 0.0110 0.0038 +vn -0.9999 0.0136 0.0055 +vn 0.9998 -0.0198 0.0003 +vn 0.9999 0.0113 0.0018 +vn 0.9999 0.0122 0.0020 +vn 0.9999 0.0139 0.0037 +vn 0.9999 0.0144 0.0042 +vn 0.9999 0.0140 0.0050 +vn 1.0000 -0.0015 0.0017 +vn 1.0000 -0.0012 -0.0020 +vn -1.0000 -0.0008 0.0022 +vn -1.0000 -0.0010 -0.0023 +vn -1.0000 -0.0004 -0.0023 +vn -1.0000 -0.0023 0.0010 +vn 1.0000 -0.0009 0.0023 +vn 0.9999 -0.0150 0.0002 +vn 1.0000 0.0086 0.0014 +vn 0.9999 0.0109 0.0032 +vn 0.9999 0.0135 0.0042 +vn 0.9999 0.0115 0.0032 +vn 0.9999 0.0149 0.0046 +vn 0.9999 0.0121 0.0035 +vn 1.0000 0.0095 0.0015 +vn 0.9999 -0.0167 0.0002 +vn 0.9999 0.0125 0.0033 +vn 0.9999 0.0160 0.0052 +vn 0.9999 0.0101 0.0017 +vn 0.9998 -0.0183 0.0003 +vn -0.0000 -0.9999 0.0147 +vn -0.9999 0.0114 0.0045 +vn -0.9999 0.0108 0.0079 +vn -0.9999 0.0153 0.0057 +vn -1.0000 0.0095 0.0027 +vn -0.9999 0.0102 0.0025 +vn -0.9999 -0.0171 -0.0028 +vn -0.9999 0.0102 0.0042 +vn -0.9999 0.0099 0.0072 +vn -0.9999 0.0139 0.0053 +vn -1.0000 0.0087 0.0025 +vn -1.0000 0.0094 0.0022 +vn -0.9999 -0.0153 -0.0025 +vn -0.0000 -0.3532 0.9356 +vn -0.0000 0.3531 -0.9356 +vn -0.0000 -0.3531 0.9356 +vn -0.0000 0.3747 -0.9271 +vn -0.0000 -0.3747 0.9271 +vn -0.0000 0.3747 -0.9272 +vn -0.0000 0.0147 0.9999 +vn 0.0001 -0.0000 -1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0023 -0.0008 vn -1.0000 0.0024 -0.0010 -vn 1.0000 -0.0010 0.0024 -vn 0.0000 -0.0157 0.9999 -vn 0.9994 -0.0339 -0.0005 -vn 0.8112 0.0604 -0.5816 -vn -0.9863 0.0024 -0.1649 -vn 0.0000 -0.0147 0.9999 -vn 0.7010 -0.1212 -0.7028 -vn 0.1631 -0.0109 -0.9865 -vn 0.0000 0.9999 0.0147 -vn 0.5878 0.8090 0.0079 -vn 0.3071 0.8163 -0.4892 -vn -0.7010 -0.1212 -0.7028 -vn -0.4897 0.4583 -0.7417 -vn 0.6139 -0.7893 -0.0125 -vn 0.6122 -0.7906 -0.0092 -vn 0.6101 -0.7922 -0.0123 -vn 0.6034 -0.7973 -0.0117 -vn 0.6032 -0.7975 -0.0092 -vn 0.6015 -0.7988 -0.0126 -vn -0.5528 0.8333 0.0106 -vn -0.5512 0.8343 0.0123 -vn -0.5495 0.8354 0.0110 -vn -0.3193 0.8162 -0.4815 -vn 0.0000 0.7985 0.6020 -vn -0.6049 -0.7962 -0.0136 -vn -0.6034 -0.7973 -0.0117 -vn -0.6046 -0.7965 -0.0096 -vn 0.0000 0.0000 -1.0000 -vn -0.5590 0.1816 -0.8090 -vn -0.5651 0.8250 0.0121 -vn -0.5646 0.8252 0.0144 -vn 0.0023 1.0000 0.0079 -vn 0.0000 1.0000 0.0092 -vn 0.0023 1.0000 0.0082 -vn 0.0022 1.0000 0.0081 -vn 0.0000 0.9999 0.0116 -vn 0.0021 1.0000 0.0083 -vn -0.0001 1.0000 0.0067 -vn -0.0023 0.9999 0.0102 -vn -0.0000 1.0000 0.0069 -vn -0.0023 0.9999 0.0101 -vn -0.0022 0.9999 0.0103 -vn 0.0000 1.0000 0.0091 -vn -0.0021 0.9999 0.0100 -vn 0.0001 0.9999 0.0114 -vn 0.0000 0.0807 -0.9967 -vn -0.6133 -0.7898 -0.0135 -vn -0.6100 -0.7923 -0.0113 -vn -0.6134 -0.7897 -0.0099 -vn -0.5613 0.8276 0.0107 -vn -0.5596 0.8286 0.0147 -vn -0.5585 0.8295 0.0106 -vn 0.5512 0.8343 0.0123 -vn 0.5533 0.8329 0.0120 -vn 0.5506 0.8347 0.0099 -vn 0.6188 -0.7855 -0.0130 -vn 0.6172 -0.7867 -0.0116 -vn 0.5591 0.8290 0.0145 -vn 0.5617 0.8272 0.0124 -vn 0.5593 0.8289 0.0100 -vn -0.6172 -0.7867 -0.0116 -vn -0.6153 -0.7882 -0.0111 -vn 0.5639 0.8257 0.0140 -vn 0.5651 0.8250 0.0121 -vn 1.0000 -0.0024 0.0018 -vn 1.0000 -0.0026 0.0020 -vn -1.0000 0.0006 -0.0032 -vn -1.0000 -0.0030 -0.0014 -vn -1.0000 0.0006 -0.0030 -vn -1.0000 -0.0028 -0.0013 -vn -1.0000 0.0005 -0.0027 -vn -1.0000 -0.0025 -0.0011 -vn 1.0000 -0.0020 0.0019 -vn 1.0000 -0.0030 0.0018 -vn -1.0000 0.0009 -0.0033 -vn -1.0000 -0.0031 -0.0014 -vn 0.9997 -0.0256 -0.0004 -vn 0.9999 0.0139 -0.0023 -vn 0.9999 0.0150 -0.0028 -vn 0.9998 0.0179 -0.0041 -vn 0.9998 0.0169 -0.0057 -vn 0.9998 0.0180 -0.0052 -vn -0.9997 -0.0231 0.0038 -vn -0.9999 0.0126 -0.0037 -vn -0.9999 0.0130 -0.0026 -vn -0.9999 0.0135 -0.0045 -vn -0.9999 0.0150 -0.0062 -vn -0.9998 0.0162 -0.0065 -vn -0.9999 0.0119 -0.0050 -vn -0.9999 0.0095 -0.0064 -vn -0.9999 0.0142 -0.0082 -vn -0.9999 0.0146 -0.0059 -vn -0.9999 0.0101 -0.0029 -vn -0.9999 0.0104 -0.0022 -vn -0.9999 0.0115 -0.0033 -vn -0.9999 0.0123 -0.0040 -vn -0.9998 -0.0176 0.0029 -vn -0.9998 -0.0204 0.0033 -vn 0.9999 0.0133 -0.0039 -vn 0.9999 0.0125 -0.0042 -vn 0.9999 0.0166 -0.0049 -vn 0.9999 0.0104 -0.0025 -vn 0.9999 0.0130 -0.0046 -vn 0.9999 0.0158 -0.0036 -vn 0.9999 0.0151 -0.0051 -vn 0.9999 0.0160 -0.0047 -vn 0.9999 0.0105 -0.0017 -vn 0.9999 0.0113 -0.0019 -vn 1.0000 0.0084 -0.0014 -vn 0.9999 0.0125 -0.0020 -vn 0.9999 0.0135 -0.0024 -vn 0.9998 -0.0178 0.0029 -vn 0.9999 -0.0146 -0.0002 -vn 0.9998 -0.0223 -0.0003 -vn 0.9998 -0.0201 -0.0003 -vn 0.9999 0.0115 -0.0019 -vn 0.9999 0.0124 -0.0022 -vn 0.9999 0.0146 -0.0042 -vn 0.9999 0.0137 -0.0047 -vn -0.9998 -0.0184 0.0030 -vn -0.9999 0.0106 -0.0031 -vn -0.9999 0.0109 -0.0022 -vn -0.9999 0.0113 -0.0037 -vn -0.9999 0.0125 -0.0052 -vn -0.9999 0.0134 -0.0054 -vn -1.0000 -0.0002 -0.0023 -vn -1.0000 -0.0023 0.0009 -vn -1.0000 -0.0023 0.0005 -vn 1.0000 -0.0022 -0.0007 -vn 1.0000 -0.0018 0.0014 -vn -0.9999 -0.0141 0.0023 -vn -1.0000 0.0082 -0.0024 -vn -0.9999 0.0103 -0.0042 -vn -1.0000 0.0077 -0.0052 -vn -0.9999 0.0112 -0.0068 -vn -0.9999 0.0107 -0.0045 -vn -0.9999 0.0086 -0.0057 -vn -0.9999 0.0124 -0.0075 -vn -1.0000 0.0090 -0.0026 -vn -1.0000 0.0093 -0.0019 -vn -0.9999 -0.0159 0.0026 -vn -0.9999 0.0114 -0.0047 -vn -0.9999 0.0091 -0.0061 -vn -0.9999 0.0131 -0.0081 -vn -1.0000 0.0096 -0.0028 -vn -0.9999 0.0099 -0.0020 -vn -0.9998 -0.0173 0.0028 -vn 0.9999 0.0128 -0.0029 -vn 0.9999 0.0129 -0.0038 -vn 0.9999 0.0154 -0.0059 -vn 0.9999 0.0100 -0.0016 -vn 0.9998 -0.0181 -0.0003 -vn 0.9999 0.0115 -0.0026 -vn 0.9999 0.0117 -0.0034 -vn 0.9999 0.0142 -0.0049 -vn 1.0000 0.0091 -0.0015 -vn 0.9999 -0.0161 -0.0002 -vn 1.0000 -0.0007 0.0023 -vn 1.0000 0.0015 0.0020 -vn -1.0000 0.0024 -0.0002 +vn -1.0000 0.0024 -0.0005 +vn 1.0000 0.0018 0.0016 +vn 1.0000 -0.0021 0.0012 +vn 1.0000 0.0024 0.0010 vn -1.0000 -0.0010 -0.0024 -vn -1.0000 -0.0005 -0.0024 -vn 0.9863 0.0024 -0.1649 -vn -0.9994 -0.0339 -0.0005 -vn -0.8272 0.5267 -0.1956 -vn -0.0523 0.0147 -0.9985 -vn 0.5622 0.8115 -0.1598 -vn 0.0523 0.0147 -0.9985 -vn 0.6045 -0.7966 -0.0099 -vn 0.6062 -0.7953 -0.0064 -vn 0.6024 -0.7981 -0.0065 -vn 0.5965 -0.8026 -0.0073 -vn 0.5945 -0.8040 -0.0065 -vn -0.5446 0.8387 0.0052 -vn -0.5443 0.8388 0.0077 -vn -0.0272 0.8176 -0.5752 -vn -0.5986 -0.8010 -0.0076 -vn -0.5965 -0.8026 -0.0073 -vn -0.5590 -0.1816 0.8090 -vn 0.4756 0.3454 0.8090 -vn 0.5806 0.8103 -0.0800 -vn -0.5620 0.8271 0.0076 -vn -0.5633 0.8262 0.0092 -vn -0.5602 0.8283 0.0084 -vn 0.0026 1.0000 0.0090 -vn 0.0024 1.0000 0.0091 -vn -0.0010 1.0000 0.0068 -vn 0.0011 0.9999 0.0114 -vn 0.0010 0.9999 0.0116 -vn -0.0011 1.0000 0.0069 -vn -0.0026 1.0000 0.0091 -vn 0.0009 0.9999 0.0114 -vn -0.0010 1.0000 0.0071 -vn -0.0024 1.0000 0.0092 -vn -0.0009 1.0000 0.0069 -vn 0.0011 0.9999 0.0112 -vn -0.6062 -0.7953 -0.0075 -vn -0.6032 -0.7975 -0.0095 -vn -0.6028 -0.7978 -0.0055 -vn -0.5523 0.8336 0.0053 -vn -0.5539 0.8326 0.0089 -vn -0.5506 0.8347 0.0094 -vn 0.5443 0.8388 0.0077 -vn 0.5451 0.8383 0.0054 -vn 0.6137 -0.7895 -0.0096 -vn 0.6160 -0.7877 -0.0066 -vn 0.6141 -0.7892 -0.0072 -vn 0.5500 0.8351 0.0079 -vn 0.5528 0.8333 0.0100 -vn 0.5528 0.8333 0.0055 -vn -0.6141 -0.7892 -0.0072 -vn -0.6127 -0.7902 -0.0089 -vn -0.6134 -0.7898 -0.0050 -vn 0.5601 0.8284 0.0071 -vn 0.5625 0.8268 0.0098 -vn 0.5620 0.8271 0.0076 -vn 1.0000 0.0013 0.0027 -vn 1.0000 -0.0028 0.0010 -vn 1.0000 0.0014 0.0030 -vn 1.0000 -0.0030 0.0012 -vn -1.0000 0.0027 -0.0019 -vn -1.0000 0.0025 -0.0018 -vn -1.0000 0.0022 -0.0016 -vn 1.0000 0.0014 0.0024 -vn 1.0000 -0.0026 0.0009 -vn 1.0000 0.0016 0.0031 -vn 1.0000 -0.0032 0.0013 -vn -1.0000 0.0029 -0.0018 -vn -0.0000 0.4647 0.8855 -vn 0.9102 0.0020 0.4142 -vn 0.0000 0.9122 0.4097 -vn 0.4604 0.0043 0.8877 -vn 0.0000 -0.9082 0.4186 -vn -0.4604 0.0043 0.8877 -vn 0.0000 -0.4560 0.8900 -vn -0.9102 0.0020 0.4142 -vn -0.0000 0.8137 -0.5813 -vn -0.0000 -0.8193 -0.5734 -vn -0.8165 -0.0028 -0.5773 -vn -0.9989 0.0002 0.0478 -vn -0.0000 -0.9986 0.0527 -vn 0.9989 0.0002 0.0478 -vn 0.8165 -0.0028 -0.5773 -vn -0.0000 0.9991 0.0430 -vn 0.0000 0.8842 0.4672 -vn 0.3799 0.0045 0.9250 -vn 0.8819 0.0023 0.4715 -vn -0.0000 -0.3754 0.9269 -vn 0.0000 -0.8796 0.4758 -vn -0.3799 0.0045 0.9250 -vn -0.8819 0.0023 0.4715 -vn 0.0000 0.9984 0.0570 -vn 0.0000 -0.9978 0.0667 -vn -0.9981 0.0003 0.0619 -vn 0.9981 0.0003 0.0619 -vn -0.0011 0.1857 0.9826 -vn 0.0000 0.2961 0.9552 -vn 0.0000 -0.0121 0.9999 -vn 0.0000 0.0611 0.9981 -vn 0.0004 0.1844 0.9829 -vn 0.0002 -0.2679 -0.9634 -vn -0.0035 -0.2641 -0.9645 -vn 0.0000 -0.1578 -0.9875 -vn 0.0002 -0.1570 -0.9876 -vn 0.0000 -0.1117 -0.9937 -vn 0.0000 -0.0328 -0.9995 -vn 0.0000 0.2830 0.9591 -vn 0.0002 0.1729 0.9849 -vn 0.0032 0.2825 0.9593 -vn -0.0001 0.1741 0.9847 -vn 0.0000 0.0826 0.9966 -vn 0.0000 0.0073 1.0000 -vn 0.0000 0.0829 0.9966 -vn 0.0000 -0.2880 -0.9576 -vn 0.0001 -0.1772 -0.9842 -vn -0.0034 -0.2874 -0.9578 -vn 0.0000 -0.0745 -0.9972 -vn 0.0000 -0.1776 -0.9841 -vn 0.0000 0.0001 -1.0000 -vn 0.0000 -0.0748 -0.9972 -vn 0.0000 0.0003 -1.0000 -vn 0.0000 0.0199 0.9998 -vn 0.0000 -0.0151 -0.9999 -vn 0.0000 -0.0918 -0.9958 -vn 0.0000 -0.0155 -0.9999 -vn 0.0000 -0.0920 -0.9958 -vn 0.0000 0.0971 0.9953 -vn 0.0000 0.0203 0.9998 -vn -0.0001 0.1663 0.9861 -vn 0.0002 0.1651 0.9863 -vn 0.0000 -0.1684 -0.9857 -vn 0.0000 -0.1689 -0.9856 -vn 0.0029 0.2734 0.9619 -vn 0.0000 0.2739 0.9618 -vn -0.0032 -0.2766 -0.9610 -vn 0.0000 -0.2773 -0.9608 -vn 0.0000 -0.2689 -0.9632 -vn 0.0002 -0.1608 -0.9870 -vn -0.0029 -0.2682 -0.9633 -vn 0.0000 -0.1049 -0.9945 -vn 0.0000 -0.1614 -0.9869 -vn 0.0000 -0.0272 -0.9996 -vn 0.0000 -0.1051 -0.9945 -vn 0.0000 -0.0268 -0.9996 -vn 0.0000 0.0316 0.9995 -vn 0.0000 0.1103 0.9939 -vn 0.0000 0.0320 0.9995 -vn 0.0000 0.1584 0.9874 -vn 0.0000 0.1586 0.9873 -vn 0.0026 0.2649 0.9643 -vn 0.0033 0.2653 0.9642 -vn -0.0012 -0.1786 -0.9839 -vn -0.0001 -0.2842 -0.9588 -vn -0.0010 0.1741 0.9847 -vn -0.0001 0.2793 0.9602 -vn 0.0000 0.0070 1.0000 -vn 0.0008 0.1731 0.9849 -vn -0.0011 -0.1692 -0.9856 -vn -0.0000 -0.2736 -0.9618 -vn 0.0007 0.1654 0.9862 -vn -0.0009 0.1662 0.9861 -vn -0.0001 0.2705 0.9627 -vn 0.0000 -0.1617 -0.9868 -vn 0.0000 -0.2655 -0.9641 -vn -0.0008 0.1588 0.9873 -vn -0.0002 0.2622 0.9650 -vn -0.0000 0.2686 0.9633 -vn 0.0007 0.1583 0.9874 -vn 0.0000 0.0315 0.9995 -vn 0.0000 0.3844 0.9232 -vn 0.0000 0.0973 0.9953 -vn 0.0000 0.1104 0.9939 -s off +vn -0.0000 -0.0157 -0.9999 +vn -0.9994 -0.0339 0.0005 +vn -0.8112 0.0604 0.5816 +vn 0.9863 0.0024 0.1649 +vn -0.0000 -0.0147 -0.9999 +vn -0.7010 -0.1212 0.7028 +vn -0.1631 -0.0109 0.9866 +vn -0.0000 0.9999 -0.0147 +vn -0.5878 0.8090 -0.0079 +vn -0.3071 0.8163 0.4892 +vn 0.7010 -0.1212 0.7028 +vn 0.4897 0.4583 0.7417 +vn -0.0000 -0.0001 -1.0000 +vn -0.6139 -0.7893 0.0125 +vn -0.6122 -0.7906 0.0092 +vn -0.6101 -0.7922 0.0123 +vn -0.0001 0.9999 -0.0147 +vn -0.0000 -0.9999 0.0148 +vn -0.6034 -0.7973 0.0117 +vn -0.6032 -0.7975 0.0092 +vn -0.6015 -0.7988 0.0126 +vn 0.5527 0.8333 -0.0106 +vn 0.5512 0.8343 -0.0123 +vn 0.5496 0.8354 -0.0110 +vn 0.3193 0.8162 0.4815 +vn -0.0000 0.7985 -0.6020 +vn 0.6049 -0.7962 0.0136 +vn 0.6034 -0.7973 0.0117 +vn 0.6046 -0.7965 0.0096 +vn -0.0000 0.9999 -0.0146 +vn -0.0000 -0.0000 1.0000 +vn 0.5590 0.1816 0.8090 +vn 0.5651 0.8249 -0.0121 +vn 0.5646 0.8252 -0.0142 +vn 0.0001 0.9999 -0.0147 +vn -0.0023 1.0000 -0.0079 +vn -0.0000 1.0000 -0.0092 +vn -0.0023 1.0000 -0.0082 +vn -0.0022 1.0000 -0.0081 +vn -0.0000 0.9999 -0.0115 +vn -0.0021 1.0000 -0.0083 +vn 0.0001 1.0000 -0.0068 +vn 0.0023 0.9999 -0.0102 +vn -0.0000 1.0000 -0.0070 +vn 0.0023 0.9999 -0.0101 +vn 0.0022 0.9999 -0.0103 +vn -0.0000 1.0000 -0.0091 +vn 0.0021 0.9999 -0.0100 +vn -0.0001 0.9999 -0.0114 +vn -0.0000 0.0807 0.9967 +vn 0.6133 -0.7897 0.0135 +vn 0.6100 -0.7923 0.0113 +vn 0.6134 -0.7897 0.0099 +vn 0.5612 0.8276 -0.0107 +vn 0.5596 0.8286 -0.0146 +vn 0.5585 0.8295 -0.0106 +vn -0.5512 0.8343 -0.0123 +vn -0.5533 0.8329 -0.0120 +vn -0.5506 0.8347 -0.0099 +vn -0.6188 -0.7855 0.0130 +vn -0.6172 -0.7867 0.0116 +vn -0.5591 0.8290 -0.0146 +vn -0.5617 0.8272 -0.0124 +vn -0.5593 0.8289 -0.0099 +vn 0.6172 -0.7867 0.0116 +vn 0.6154 -0.7882 0.0111 +vn -0.5639 0.8257 -0.0139 +vn -0.5651 0.8250 -0.0121 +vn -1.0000 -0.0024 -0.0018 +vn -1.0000 -0.0026 -0.0020 +vn 1.0000 0.0006 0.0032 +vn 1.0000 -0.0030 0.0014 +vn 1.0000 0.0006 0.0030 +vn 1.0000 -0.0028 0.0013 +vn 1.0000 0.0005 0.0027 +vn 1.0000 -0.0025 0.0011 +vn -1.0000 -0.0020 -0.0019 +vn -1.0000 -0.0030 -0.0018 +vn 1.0000 0.0009 0.0033 +vn 1.0000 -0.0031 0.0014 +vn -0.9997 -0.0256 0.0004 +vn -0.9999 0.0139 0.0023 +vn -0.9999 0.0149 0.0027 +vn -0.9998 0.0179 0.0041 +vn -0.9998 0.0169 0.0057 +vn -0.9998 0.0180 0.0052 +vn 0.9997 -0.0231 -0.0038 +vn 0.9999 0.0126 0.0037 +vn 0.9999 0.0130 0.0025 +vn 0.9999 0.0135 0.0045 +vn 0.9999 0.0151 0.0062 +vn 0.9998 0.0162 0.0065 +vn 0.9999 0.0124 0.0051 +vn 0.9999 0.0095 0.0064 +vn 0.9999 0.0142 0.0082 +vn 0.9999 0.0146 0.0059 +vn 0.9999 0.0101 0.0029 +vn 0.9999 0.0104 0.0022 +vn 0.9999 0.0115 0.0033 +vn 0.9999 0.0122 0.0039 +vn 0.9998 -0.0176 -0.0029 +vn 0.9998 -0.0204 -0.0033 +vn -0.9999 0.0133 0.0039 +vn -0.9999 0.0124 0.0042 +vn -0.9998 0.0166 0.0049 +vn -0.9999 0.0104 0.0027 +vn -0.9999 0.0130 0.0046 +vn -0.9999 0.0158 0.0037 +vn -0.9999 0.0152 0.0051 +vn -0.9999 0.0160 0.0047 +vn -0.9999 0.0105 0.0017 +vn -0.9999 0.0109 0.0018 +vn -1.0000 0.0084 0.0014 +vn -0.9999 0.0125 0.0020 +vn -0.9999 0.0135 0.0024 +vn -0.9998 -0.0178 -0.0029 +vn -0.9999 -0.0146 0.0002 +vn -0.9998 -0.0223 0.0003 +vn -0.9998 -0.0201 0.0003 +vn -0.9999 0.0115 0.0019 +vn -0.9999 0.0125 0.0022 +vn -0.9999 0.0146 0.0042 +vn -0.9999 0.0137 0.0047 +vn 0.9998 -0.0184 -0.0030 +vn 0.9999 0.0106 0.0031 +vn 0.9999 0.0108 0.0025 +vn 0.9999 0.0113 0.0037 +vn 0.9999 0.0128 0.0053 +vn 0.9999 0.0134 0.0054 +vn 1.0000 -0.0002 0.0023 +vn 1.0000 -0.0023 -0.0009 +vn 1.0000 -0.0023 -0.0005 +vn -1.0000 -0.0022 0.0007 +vn -1.0000 -0.0018 -0.0014 +vn 0.9999 -0.0141 -0.0023 +vn 1.0000 0.0082 0.0024 +vn 0.9999 0.0103 0.0042 +vn 1.0000 0.0077 0.0052 +vn 0.9999 0.0112 0.0068 +vn 0.9999 0.0108 0.0045 +vn 0.9999 0.0086 0.0057 +vn 0.9999 0.0124 0.0075 +vn 1.0000 0.0090 0.0026 +vn 1.0000 0.0093 0.0019 +vn 0.9999 -0.0159 -0.0026 +vn 0.9999 0.0115 0.0048 +vn 0.9999 0.0091 0.0061 +vn 0.9999 0.0131 0.0081 +vn 1.0000 0.0096 0.0028 +vn 1.0000 0.0097 0.0025 +vn 0.9998 -0.0173 -0.0028 +vn -0.9999 0.0128 0.0029 +vn -0.9999 0.0129 0.0038 +vn -0.9999 0.0154 0.0059 +vn -0.9999 0.0100 0.0016 +vn -0.9998 -0.0181 0.0003 +vn -0.9999 0.0115 0.0026 +vn -0.9999 0.0117 0.0034 +vn -0.9999 0.0142 0.0049 +vn -1.0000 0.0091 0.0015 +vn -0.9999 -0.0161 0.0002 +vn -1.0000 -0.0007 -0.0023 +vn -1.0000 0.0015 -0.0020 +vn 1.0000 0.0024 0.0002 +vn 1.0000 -0.0010 0.0024 +vn 1.0000 -0.0005 0.0024 +vn -0.9863 0.0024 0.1649 +vn 0.9994 -0.0339 0.0005 +vn 0.8272 0.5267 0.1956 +vn 0.0523 0.0147 0.9985 +vn -0.5622 0.8114 0.1598 +vn -0.0523 0.0147 0.9985 +vn -0.6045 -0.7966 0.0099 +vn -0.6062 -0.7953 0.0064 +vn -0.6024 -0.7982 0.0065 +vn -0.5965 -0.8026 0.0074 +vn -0.5945 -0.8041 0.0065 +vn 0.5446 0.8387 -0.0052 +vn 0.5443 0.8388 -0.0077 +vn 0.0272 0.8176 0.5752 +vn 0.5986 -0.8010 0.0076 +vn 0.5965 -0.8026 0.0074 +vn 0.5591 -0.1816 -0.8090 +vn -0.4756 0.3454 -0.8090 +vn -0.5806 0.8103 0.0800 +vn 0.5620 0.8271 -0.0076 +vn 0.5633 0.8262 -0.0092 +vn 0.5602 0.8283 -0.0084 +vn -0.0026 1.0000 -0.0090 +vn -0.0023 1.0000 -0.0091 +vn 0.0010 1.0000 -0.0068 +vn -0.0011 0.9999 -0.0114 +vn -0.0010 0.9999 -0.0116 +vn 0.0011 1.0000 -0.0070 +vn 0.0026 1.0000 -0.0091 +vn -0.0009 0.9999 -0.0114 +vn 0.0010 1.0000 -0.0071 +vn 0.0023 1.0000 -0.0092 +vn 0.0009 1.0000 -0.0069 +vn -0.0011 0.9999 -0.0112 +vn 0.6062 -0.7953 0.0075 +vn 0.6032 -0.7975 0.0095 +vn 0.6028 -0.7979 0.0055 +vn 0.5523 0.8336 -0.0053 +vn 0.5538 0.8326 -0.0089 +vn 0.5506 0.8347 -0.0094 +vn -0.5443 0.8388 -0.0077 +vn -0.5451 0.8383 -0.0054 +vn -0.6137 -0.7895 0.0096 +vn -0.6160 -0.7877 0.0066 +vn -0.6141 -0.7892 0.0072 +vn -0.5500 0.8351 -0.0079 +vn -0.5528 0.8333 -0.0100 +vn -0.5528 0.8333 -0.0055 +vn 0.6141 -0.7892 0.0072 +vn 0.6127 -0.7902 0.0089 +vn 0.6134 -0.7898 0.0051 +vn -0.5601 0.8284 -0.0071 +vn -0.5625 0.8268 -0.0098 +vn -0.5620 0.8271 -0.0076 +vn -1.0000 0.0013 -0.0027 +vn -1.0000 -0.0028 -0.0010 +vn -1.0000 0.0014 -0.0030 +vn -1.0000 -0.0030 -0.0012 +vn 1.0000 0.0027 0.0019 +vn 1.0000 0.0025 0.0018 +vn 1.0000 0.0022 0.0016 +vn -1.0000 0.0014 -0.0024 +vn -1.0000 -0.0026 -0.0009 +vn -1.0000 0.0016 -0.0031 +vn -1.0000 -0.0032 -0.0013 +vn 1.0000 0.0029 0.0018 +vn -0.0000 0.4647 -0.8855 +vn -0.9102 0.0020 -0.4142 +vn -0.0000 0.9122 -0.4097 +vn -0.4604 0.0043 -0.8877 +vn -0.0000 -0.9082 -0.4186 +vn 0.4604 0.0043 -0.8877 +vn -0.0000 -0.4560 -0.8900 +vn 0.9102 0.0020 -0.4142 +vn -0.0000 0.8137 0.5813 +vn -0.0000 -0.8193 0.5734 +vn 0.8165 -0.0028 0.5773 +vn 0.9989 0.0002 -0.0478 +vn -0.0000 -0.9986 -0.0527 +vn -0.9989 0.0002 -0.0478 +vn -0.8165 -0.0028 0.5773 +vn -0.0000 0.9991 -0.0430 +vn -0.0000 0.8842 -0.4672 +vn -0.3799 0.0045 -0.9250 +vn -0.8819 0.0023 -0.4715 +vn -0.0000 -0.3754 -0.9269 +vn -0.0000 -0.8796 -0.4758 +vn 0.3799 0.0045 -0.9250 +vn 0.8819 0.0023 -0.4715 +vn -0.0000 0.9984 -0.0570 +vn -0.0000 -0.9978 -0.0667 +vn 0.9981 0.0003 -0.0619 +vn -0.9981 0.0003 -0.0619 +vn 0.0010 0.1857 -0.9826 +vn -0.0000 0.2961 -0.9552 +vn -0.0000 -0.0121 -0.9999 +vn -0.0000 0.0611 -0.9981 +vn -0.0004 0.1846 -0.9828 +vn -0.0002 -0.2679 0.9635 +vn 0.0035 -0.2641 0.9645 +vn -0.0000 -0.1578 0.9875 +vn -0.0002 -0.1570 0.9876 +vn -0.0000 -0.1117 0.9937 +vn -0.0000 -0.0328 0.9995 +vn -0.0000 0.2830 -0.9591 +vn -0.0002 0.1732 -0.9849 +vn -0.0032 0.2825 -0.9593 +vn 0.0001 0.1740 -0.9847 +vn -0.0000 0.0826 -0.9966 +vn -0.0000 0.0073 -1.0000 +vn -0.0000 0.0829 -0.9966 +vn -0.0000 -0.2880 0.9576 +vn -0.0001 -0.1775 0.9841 +vn 0.0034 -0.2874 0.9578 +vn -0.0000 -0.0745 0.9972 +vn -0.0000 -0.1776 0.9841 +vn -0.0000 0.0001 1.0000 +vn -0.0000 -0.0748 0.9972 +vn -0.0000 0.0003 1.0000 +vn -0.0000 0.0199 -0.9998 +vn -0.0000 -0.0151 0.9999 +vn -0.0000 -0.0918 0.9958 +vn -0.0000 -0.0155 0.9999 +vn -0.0000 -0.0920 0.9958 +vn -0.0000 0.0971 -0.9953 +vn -0.0000 0.0203 -0.9998 +vn 0.0001 0.1660 -0.9861 +vn -0.0002 0.1651 -0.9863 +vn -0.0000 -0.1684 0.9857 +vn -0.0000 -0.1689 0.9856 +vn -0.0029 0.2734 -0.9619 +vn -0.0000 0.2739 -0.9618 +vn 0.0032 -0.2766 0.9610 +vn -0.0000 -0.2773 0.9608 +vn -0.0000 -0.2689 0.9632 +vn -0.0002 -0.1611 0.9869 +vn 0.0028 -0.2682 0.9634 +vn -0.0000 -0.1049 0.9945 +vn -0.0000 -0.1614 0.9869 +vn -0.0000 -0.0272 0.9996 +vn -0.0000 -0.1051 0.9945 +vn -0.0000 -0.0268 0.9996 +vn -0.0000 0.0316 -0.9995 +vn -0.0000 0.1103 -0.9939 +vn -0.0000 0.0320 -0.9995 +vn -0.0000 0.1584 -0.9874 +vn -0.0000 0.1586 -0.9873 +vn -0.0026 0.2649 -0.9643 +vn -0.0033 0.2653 -0.9642 +vn 0.0011 -0.1786 0.9839 +vn 0.0001 -0.2843 0.9587 +vn 0.0010 0.1741 -0.9847 +vn 0.0001 0.2793 -0.9602 +vn -0.0000 0.0070 -1.0000 +vn -0.0005 0.1732 -0.9849 +vn 0.0012 -0.1692 0.9856 +vn -0.0000 -0.2736 0.9618 +vn -0.0007 0.1654 -0.9862 +vn 0.0008 0.1662 -0.9861 +vn 0.0001 0.2705 -0.9627 +vn -0.0000 -0.1617 0.9868 +vn -0.0000 -0.2655 0.9641 +vn 0.0006 0.1588 -0.9873 +vn 0.0002 0.2622 -0.9650 +vn -0.0000 0.2686 -0.9633 +vn -0.0005 0.1583 -0.9874 +vn -0.0000 0.0315 -0.9995 +vn -0.0000 0.3844 -0.9232 +vn -0.0000 0.0973 -0.9953 +vn -0.0000 0.1104 -0.9939 +vt 0.293178 0.253940 +vt 0.294447 0.228588 +vt 0.295035 0.228647 +vt 0.304352 0.255062 +vt 0.306516 0.266333 +vt 0.303659 0.266999 +vt 0.306561 0.276133 +vt 0.303722 0.277446 +vt 0.307027 0.283572 +vt 0.304150 0.285474 +vt 0.306350 0.302210 +vt 0.309343 0.301189 +vt 0.306466 0.303091 +vt 0.311562 0.308066 +vt 0.310293 0.282714 +vt 0.312150 0.308007 +vt 0.321467 0.281591 +vt 0.323630 0.270321 +vt 0.324407 0.281296 +vt 0.320773 0.269655 +vt 0.323675 0.260521 +vt 0.320836 0.259208 +vt 0.324142 0.253082 +vt 0.323465 0.234444 +vt 0.326458 0.235465 +vt 0.326342 0.236346 +vt 0.344109 0.298827 +vt 0.335283 0.299709 +vt 0.335283 0.298827 +vt 0.335283 0.316891 +vt 0.334749 0.308066 +vt 0.335283 0.308066 +vt 0.332086 0.316891 +vt 0.329413 0.308066 +vt 0.332086 0.308066 +vt 0.308583 0.313537 +vt 0.307778 0.310698 +vt 0.308583 0.311077 +vt 0.358445 0.300384 +vt 0.356072 0.291558 +vt 0.358445 0.291558 +vt 0.344050 0.299709 +vt 0.343168 0.308535 +vt 0.343168 0.299709 +vt 0.311956 0.226836 +vt 0.312647 0.226336 +vt 0.312531 0.227217 +vt 0.318889 0.231420 +vt 0.321559 0.232227 +vt 0.321444 0.233108 +vt 0.309478 0.253954 +vt 0.310331 0.243953 +vt 0.310046 0.254216 +vt 0.316321 0.257119 +vt 0.319244 0.249844 +vt 0.318842 0.258285 +vt 0.309343 0.266992 +vt 0.309915 0.267125 +vt 0.316229 0.268597 +vt 0.318766 0.269187 +vt 0.309705 0.282773 +vt 0.316791 0.282061 +vt 0.319401 0.281799 +vt 0.323324 0.306885 +vt 0.326264 0.306590 +vt 0.318648 0.307354 +vt 0.321258 0.307092 +vt 0.294841 0.309817 +vt 0.295533 0.310318 +vt 0.294957 0.310698 +vt 0.309382 0.311087 +vt 0.310180 0.313158 +vt 0.309382 0.313547 +vt 0.301775 0.305234 +vt 0.304445 0.304426 +vt 0.301891 0.306115 +vt 0.292364 0.282700 +vt 0.293217 0.292701 +vt 0.292641 0.293081 +vt 0.363166 0.279737 +vt 0.365464 0.288654 +vt 0.363407 0.290002 +vt 0.299207 0.279535 +vt 0.302129 0.286810 +vt 0.299575 0.288498 +vt 0.292229 0.269661 +vt 0.292932 0.282437 +vt 0.363089 0.266827 +vt 0.365195 0.278809 +vt 0.299115 0.268057 +vt 0.301727 0.278369 +vt 0.292590 0.253881 +vt 0.363533 0.251241 +vt 0.365129 0.266361 +vt 0.299676 0.254593 +vt 0.301651 0.267466 +vt 0.307293 0.255357 +vt 0.306209 0.229769 +vt 0.309150 0.230064 +vt 0.302287 0.254855 +vt 0.301534 0.229299 +vt 0.304144 0.229561 +vt 0.365629 0.251460 +vt 0.365497 0.225955 +vt 0.367593 0.226175 +vt 0.299850 0.229130 +vt 0.295275 0.254151 +vt 0.297132 0.228857 +vt 0.297479 0.268438 +vt 0.294838 0.269054 +vt 0.297581 0.280286 +vt 0.294957 0.281500 +vt 0.297928 0.289587 +vt 0.295268 0.291345 +vt 0.297469 0.308081 +vt 0.300244 0.307204 +vt 0.297584 0.308962 +vt 0.316965 0.307523 +vt 0.312390 0.282503 +vt 0.315107 0.282230 +vt 0.314593 0.268215 +vt 0.311952 0.267600 +vt 0.314696 0.256367 +vt 0.312071 0.255153 +vt 0.315042 0.247067 +vt 0.314583 0.228573 +vt 0.317358 0.229450 +vt 0.317242 0.230331 +vt 0.306973 0.313537 +vt 0.306973 0.311077 +vt 0.358543 0.291558 +vt 0.356072 0.282733 +vt 0.358543 0.282733 +vt 0.317158 0.310156 +vt 0.314247 0.307796 +vt 0.318841 0.309987 +vt 0.300043 0.226498 +vt 0.297326 0.226225 +vt 0.301727 0.226667 +vt 0.295229 0.226014 +vt 0.304337 0.226929 +vt 0.306403 0.227137 +vt 0.309343 0.227432 +vt 0.312343 0.310639 +vt 0.314440 0.310429 +vt 0.321452 0.309724 +vt 0.323517 0.309517 +vt 0.326458 0.309222 +vt 0.311755 0.310698 +vt 0.294641 0.225955 +vt 0.360993 0.306747 +vt 0.361125 0.281242 +vt 0.363089 0.306527 +vt 0.359028 0.281461 +vt 0.360624 0.266341 +vt 0.358584 0.265875 +vt 0.360690 0.253894 +vt 0.358661 0.252966 +vt 0.360960 0.244048 +vt 0.308583 0.313158 +vt 0.321583 0.311087 +vt 0.320785 0.312673 +vt 0.320785 0.310698 +vt 0.376920 0.252000 +vt 0.378887 0.243782 +vt 0.378547 0.252746 +vt 0.376855 0.263848 +vt 0.378492 0.264224 +vt 0.377413 0.277861 +vt 0.379096 0.277687 +vt 0.379351 0.303149 +vt 0.381034 0.302974 +vt 0.312589 0.313121 +vt 0.313388 0.311087 +vt 0.313388 0.313510 +vt 0.367648 0.251137 +vt 0.370057 0.244028 +vt 0.369644 0.252056 +vt 0.367593 0.262040 +vt 0.369601 0.262504 +vt 0.368253 0.274650 +vt 0.370318 0.274439 +vt 0.372224 0.299729 +vt 0.318376 0.312774 +vt 0.317459 0.310698 +vt 0.318376 0.310698 +vt 0.311790 0.311087 +vt 0.311790 0.313510 +vt 0.372279 0.274758 +vt 0.374688 0.281868 +vt 0.372664 0.283200 +vt 0.372224 0.263855 +vt 0.374275 0.273839 +vt 0.372884 0.251245 +vt 0.374232 0.263392 +vt 0.374949 0.251457 +vt 0.374790 0.225955 +vt 0.376855 0.226167 +vt 0.319986 0.311087 +vt 0.319986 0.313062 +vt 0.381098 0.277104 +vt 0.383066 0.285322 +vt 0.381415 0.286406 +vt 0.381034 0.265256 +vt 0.382726 0.276358 +vt 0.381592 0.251243 +vt 0.382671 0.264880 +vt 0.383275 0.251417 +vt 0.383530 0.225955 +vt 0.385213 0.226130 +vt 0.392620 0.299275 +vt 0.391603 0.298392 +vt 0.392620 0.298392 +vt 0.390368 0.226837 +vt 0.391386 0.225955 +vt 0.391386 0.226837 +vt 0.314405 0.312774 +vt 0.315423 0.310698 +vt 0.315423 0.312774 +vt 0.390151 0.302769 +vt 0.389133 0.301887 +vt 0.390151 0.301887 +vt 0.322501 0.312390 +vt 0.323518 0.310698 +vt 0.323518 0.312390 +vt 0.387899 0.226837 +vt 0.388916 0.225955 +vt 0.388916 0.226837 +vt 0.387682 0.306059 +vt 0.386664 0.305177 +vt 0.387682 0.305177 +vt 0.385430 0.226837 +vt 0.386447 0.225955 +vt 0.386447 0.226837 +vt 0.313388 0.312806 +vt 0.314405 0.310698 +vt 0.314405 0.312806 +vt 0.357950 0.318035 +vt 0.356072 0.309209 +vt 0.357950 0.309209 +vt 0.357978 0.309209 +vt 0.356072 0.300384 +vt 0.357978 0.300384 +vt 0.354444 0.309853 +vt 0.355974 0.318679 +vt 0.354444 0.318679 +vt 0.385202 0.303149 +vt 0.384320 0.311974 +vt 0.384320 0.303149 +vt 0.344050 0.308535 +vt 0.343168 0.317360 +vt 0.319986 0.311077 +vt 0.319181 0.312673 +vt 0.319181 0.310698 +vt 0.310985 0.310698 +vt 0.310180 0.313500 +vt 0.310180 0.311077 +vt 0.311790 0.313500 +vt 0.311790 0.311077 +vt 0.383439 0.311974 +vt 0.318376 0.311077 +vt 0.302190 0.319524 +vt 0.303071 0.310698 +vt 0.303071 0.319524 +vt 0.367121 0.306747 +vt 0.366239 0.315572 +vt 0.366239 0.306747 +vt 0.351814 0.309853 +vt 0.344109 0.282733 +vt 0.351814 0.285362 +vt 0.344109 0.310630 +vt 0.344109 0.285362 +vt 0.358584 0.279706 +vt 0.355926 0.254415 +vt 0.358584 0.254344 +vt 0.349537 0.226101 +vt 0.346806 0.228667 +vt 0.346806 0.226028 +vt 0.351228 0.228785 +vt 0.351228 0.226146 +vt 0.349537 0.282587 +vt 0.346806 0.280021 +vt 0.349537 0.279948 +vt 0.351228 0.279903 +vt 0.351228 0.282542 +vt 0.344700 0.282717 +vt 0.346806 0.282660 +vt 0.353851 0.282472 +vt 0.353851 0.279832 +vt 0.355926 0.279777 +vt 0.355926 0.282416 +vt 0.358584 0.282345 +vt 0.344700 0.225971 +vt 0.353851 0.226217 +vt 0.355926 0.228911 +vt 0.355926 0.226272 +vt 0.358584 0.226343 +vt 0.343168 0.324984 +vt 0.335373 0.299709 +vt 0.343078 0.299709 +vt 0.351814 0.282733 +vt 0.344417 0.228603 +vt 0.344109 0.225955 +vt 0.344417 0.280085 +vt 0.344700 0.280078 +vt 0.334716 0.308066 +vt 0.324943 0.312263 +vt 0.324464 0.314893 +vt 0.324383 0.312228 +vt 0.367593 0.306747 +vt 0.367298 0.315012 +vt 0.367298 0.307307 +vt 0.358428 0.314605 +vt 0.357950 0.311976 +vt 0.358510 0.311941 +vt 0.367593 0.314421 +vt 0.368064 0.314113 +vt 0.389591 0.251223 +vt 0.390151 0.225955 +vt 0.390151 0.251223 +vt 0.299183 0.315122 +vt 0.297725 0.313022 +vt 0.299183 0.312390 +vt 0.358569 0.300384 +vt 0.358274 0.300944 +vt 0.315983 0.312604 +vt 0.315423 0.314712 +vt 0.315423 0.312604 +vt 0.365944 0.307307 +vt 0.363284 0.306747 +vt 0.358274 0.308649 +vt 0.299183 0.317229 +vt 0.297725 0.315392 +vt 0.292577 0.312539 +vt 0.294247 0.310698 +vt 0.294247 0.312806 +vt 0.314965 0.312774 +vt 0.314405 0.313365 +vt 0.358510 0.309209 +vt 0.357950 0.311941 +vt 0.318019 0.310698 +vt 0.317459 0.312774 +vt 0.376419 0.310669 +vt 0.376751 0.309046 +vt 0.376751 0.311120 +vt 0.358569 0.309209 +vt 0.296266 0.312535 +vt 0.297725 0.310698 +vt 0.297725 0.312806 +vt 0.365944 0.315012 +vt 0.358584 0.315012 +vt 0.361208 0.315572 +vt 0.358584 0.315572 +vt 0.323263 0.313195 +vt 0.323823 0.312604 +vt 0.323823 0.313195 +vt 0.376419 0.314421 +vt 0.325401 0.313430 +vt 0.325961 0.310698 +vt 0.325961 0.313430 +vt 0.361208 0.315012 +vt 0.363284 0.315572 +vt 0.292577 0.316376 +vt 0.294247 0.315537 +vt 0.294247 0.317229 +vt 0.329117 0.308626 +vt 0.326458 0.308066 +vt 0.361208 0.307307 +vt 0.358584 0.306747 +vt 0.361208 0.306747 +vt 0.324383 0.312604 +vt 0.323823 0.314296 +vt 0.316441 0.315199 +vt 0.317001 0.312576 +vt 0.317001 0.315199 +vt 0.363284 0.307307 +vt 0.329117 0.316331 +vt 0.329413 0.316891 +vt 0.326458 0.316891 +vt 0.376714 0.299940 +vt 0.376419 0.308766 +vt 0.376419 0.299940 +vt 0.322958 0.312390 +vt 0.387122 0.251223 +vt 0.387682 0.225955 +vt 0.387682 0.251223 +vt 0.313845 0.312806 +vt 0.323061 0.312390 +vt 0.322501 0.315013 +vt 0.376419 0.314126 +vt 0.392060 0.251223 +vt 0.392620 0.225955 +vt 0.392620 0.251223 +vt 0.314863 0.312774 +vt 0.292229 0.312539 +vt 0.292577 0.310710 +vt 0.292229 0.314908 +vt 0.292577 0.314908 +vt 0.294247 0.317217 +vt 0.294595 0.315388 +vt 0.294595 0.317217 +vt 0.294247 0.315388 +vt 0.294595 0.313019 +vt 0.294247 0.313019 +vt 0.294595 0.311551 +vt 0.292229 0.316376 +vt 0.376751 0.313108 +vt 0.376448 0.311591 +vt 0.296266 0.314905 +vt 0.297725 0.315537 +vt 0.296266 0.317229 +vt 0.296266 0.315122 +vt 0.297725 0.311555 +vt 0.299183 0.310698 +vt 0.296266 0.312390 +vt 0.296266 0.316373 +vt 0.297725 0.317229 +vt 0.325098 0.314037 +vt 0.325401 0.312521 +vt 0.325401 0.314508 +vt 0.296266 0.310698 +vt 0.326293 0.312773 +vt 0.325961 0.311149 +vt 0.326293 0.310698 +vt 0.322501 0.310698 +vt 0.321583 0.312576 +vt 0.321583 0.310698 +vt 0.322413 0.312576 +vt 0.321583 0.314106 +vt 0.325401 0.312228 +vt 0.324383 0.310698 +vt 0.325401 0.310698 +vt 0.323518 0.312604 +vt 0.316441 0.312604 +vt 0.385213 0.302065 +vt 0.383562 0.303149 +vt 0.376855 0.298608 +vt 0.374831 0.299940 +vt 0.392843 0.307628 +vt 0.393708 0.306746 +vt 0.393708 0.307628 +vt 0.394795 0.226838 +vt 0.393930 0.225955 +vt 0.394795 0.225955 +vt 0.397293 0.304029 +vt 0.398123 0.303148 +vt 0.398123 0.304029 +vt 0.399178 0.226838 +vt 0.398348 0.225955 +vt 0.399178 0.225955 +vt 0.397068 0.226838 +vt 0.396151 0.225955 +vt 0.397068 0.225955 +vt 0.368033 0.242696 +vt 0.372224 0.227288 +vt 0.377236 0.242698 +vt 0.381034 0.227039 +vt 0.358902 0.242701 +vt 0.363089 0.227303 +vt 0.312383 0.245309 +vt 0.300128 0.306323 +vt 0.304329 0.303546 +vt 0.367593 0.305399 +vt 0.365536 0.306747 +vt 0.295417 0.309437 +vt 0.395014 0.300820 +vt 0.395931 0.299939 +vt 0.395931 0.300820 +vt 0.316689 0.248156 +vt 0.309756 0.243572 +vt 0.335283 0.225955 +vt 0.326458 0.226838 +vt 0.326458 0.225955 +vt 0.321264 0.251180 +vt 0.309227 0.300308 +vt 0.316441 0.310698 +vt 0.317459 0.312576 +vt 0.316441 0.312576 +vt 0.375948 0.314113 +vt 0.368153 0.299940 +vt 0.375859 0.299940 +vt 0.323580 0.233563 +vt 0.344109 0.299709 +vt 0.334749 0.316891 +vt 0.307778 0.313158 +vt 0.312072 0.225955 +vt 0.319005 0.230539 +vt 0.310180 0.310698 +vt 0.292800 0.269528 +vt 0.297993 0.254424 +vt 0.314699 0.227692 +vt 0.307778 0.313158 +vt 0.308583 0.310698 +vt 0.321583 0.313062 +vt 0.312589 0.310698 +vt 0.370159 0.299940 +vt 0.391603 0.299275 +vt 0.390368 0.225955 +vt 0.389133 0.302769 +vt 0.387899 0.225955 +vt 0.386664 0.306059 +vt 0.385430 0.225955 +vt 0.313388 0.310698 +vt 0.356072 0.318035 +vt 0.355974 0.309853 +vt 0.385202 0.311974 +vt 0.344050 0.317360 +vt 0.319986 0.313052 +vt 0.310985 0.313121 +vt 0.383439 0.303149 +vt 0.318376 0.313052 +vt 0.302190 0.310698 +vt 0.367121 0.315572 +vt 0.351814 0.318679 +vt 0.351814 0.310630 +vt 0.349537 0.228740 +vt 0.344700 0.228610 +vt 0.353851 0.228856 +vt 0.358584 0.228983 +vt 0.335283 0.324984 +vt 0.334716 0.316891 +vt 0.324935 0.314893 +vt 0.367593 0.315572 +vt 0.357958 0.314605 +vt 0.367593 0.314126 +vt 0.389591 0.225955 +vt 0.358569 0.300944 +vt 0.315983 0.314712 +vt 0.297725 0.317220 +vt 0.314965 0.313365 +vt 0.358510 0.311941 +vt 0.318019 0.312774 +vt 0.376545 0.308766 +vt 0.358569 0.308649 +vt 0.296266 0.310707 +vt 0.323263 0.312604 +vt 0.363284 0.315012 +vt 0.326458 0.308626 +vt 0.358584 0.307307 +vt 0.324383 0.314296 +vt 0.326458 0.316331 +vt 0.376714 0.308766 +vt 0.322958 0.310698 +vt 0.387122 0.225955 +vt 0.313845 0.310698 +vt 0.323061 0.315013 +vt 0.392060 0.225955 +vt 0.314863 0.310698 +vt 0.292229 0.310710 +vt 0.294247 0.311551 +vt 0.376562 0.313400 +vt 0.325212 0.312228 +vt 0.326087 0.313053 +vt 0.322501 0.312576 +vt 0.322413 0.314106 +vt 0.392843 0.306746 +vt 0.393930 0.226838 +vt 0.397293 0.303148 +vt 0.398348 0.226838 +vt 0.396151 0.226838 +vt 0.370201 0.225955 +vt 0.379383 0.225955 +vt 0.361031 0.225955 +vt 0.395014 0.299939 +vt 0.335283 0.226838 +vt 0.305864 0.312750 +vt 0.305396 0.313502 +vt 0.305396 0.312283 +vt 0.305864 0.313060 +vt 0.306615 0.313499 +vt 0.306174 0.312749 +vt 0.306174 0.313059 +vt 0.306615 0.312279 +vt 0.303071 0.313022 +vt 0.305396 0.310705 +vt 0.305396 0.313029 +vt 0.381792 0.307352 +vt 0.383439 0.316823 +vt 0.381792 0.316815 +vt 0.380147 0.307361 +vt 0.380147 0.316823 +vt 0.378501 0.307352 +vt 0.378501 0.316815 +vt 0.376855 0.316823 +vt 0.351640 0.310686 +vt 0.349994 0.314862 +vt 0.349994 0.310630 +vt 0.380930 0.303153 +vt 0.379364 0.303153 +vt 0.348349 0.310686 +vt 0.305396 0.312275 +vt 0.306398 0.311677 +vt 0.306973 0.312279 +vt 0.306398 0.311275 +vt 0.306973 0.310702 +vt 0.305997 0.311274 +vt 0.305396 0.310698 +vt 0.299183 0.313705 +vt 0.302190 0.310707 +vt 0.302190 0.313713 +vt 0.353943 0.296282 +vt 0.356072 0.286908 +vt 0.356072 0.296293 +vt 0.351814 0.286908 +vt 0.351814 0.296293 +vt 0.353944 0.309842 +vt 0.356072 0.300469 +vt 0.356072 0.309853 +vt 0.351814 0.300469 +vt 0.348349 0.311642 +vt 0.344109 0.312759 +vt 0.344181 0.310630 +vt 0.352827 0.282739 +vt 0.353943 0.286897 +vt 0.353944 0.300457 +vt 0.355060 0.296299 +vt 0.348311 0.312759 +vt 0.344181 0.314888 +vt 0.335426 0.274629 +vt 0.344109 0.282073 +vt 0.335283 0.282073 +vt 0.344109 0.228586 +vt 0.335283 0.253862 +vt 0.335283 0.228586 +vt 0.335564 0.264830 +vt 0.343968 0.274629 +vt 0.326458 0.243600 +vt 0.344109 0.253862 +vt 0.335283 0.243600 +vt 0.326600 0.253984 +vt 0.335143 0.253984 +vt 0.326739 0.267024 +vt 0.335283 0.282798 +vt 0.326458 0.282798 +vt 0.395931 0.283183 +vt 0.395791 0.274739 +vt 0.395014 0.283183 +vt 0.394903 0.274739 +vt 0.395654 0.263837 +vt 0.395014 0.251231 +vt 0.394795 0.263837 +vt 0.395931 0.225955 +vt 0.395014 0.225955 +vt 0.326458 0.308066 +vt 0.397068 0.243600 +vt 0.396927 0.251633 +vt 0.396151 0.243600 +vt 0.396791 0.262080 +vt 0.396039 0.251633 +vt 0.396151 0.274007 +vt 0.395931 0.262080 +vt 0.396151 0.299275 +vt 0.397068 0.274007 +vt 0.397068 0.299275 +vt 0.398123 0.251231 +vt 0.397293 0.225955 +vt 0.398123 0.225955 +vt 0.398348 0.302769 +vt 0.399178 0.277502 +vt 0.399178 0.302769 +vt 0.398900 0.264045 +vt 0.398348 0.277502 +vt 0.398123 0.264045 +vt 0.397845 0.265241 +vt 0.397293 0.251231 +vt 0.397179 0.277090 +vt 0.397982 0.277090 +vt 0.398234 0.252568 +vt 0.399037 0.252568 +vt 0.397293 0.286393 +vt 0.398123 0.286393 +vt 0.398348 0.243600 +vt 0.399178 0.243600 +vt 0.394795 0.243600 +vt 0.394654 0.253448 +vt 0.393930 0.243600 +vt 0.394517 0.265895 +vt 0.393817 0.253448 +vt 0.393930 0.280791 +vt 0.393708 0.265895 +vt 0.393930 0.306059 +vt 0.394795 0.280791 +vt 0.394795 0.306059 +vt 0.393708 0.251231 +vt 0.392843 0.225955 +vt 0.393708 0.225955 +vt 0.393430 0.266816 +vt 0.392843 0.251231 +vt 0.392730 0.279725 +vt 0.393567 0.279725 +vt 0.392843 0.289991 +vt 0.393708 0.289991 +vt 0.392339 0.263150 +vt 0.391603 0.251223 +vt 0.391493 0.273597 +vt 0.391386 0.263150 +vt 0.392478 0.273597 +vt 0.391603 0.281630 +vt 0.391243 0.252037 +vt 0.390368 0.243592 +vt 0.391386 0.243592 +vt 0.391386 0.300820 +vt 0.390368 0.275545 +vt 0.391386 0.275545 +vt 0.391105 0.262939 +vt 0.390258 0.252037 +vt 0.389870 0.264680 +vt 0.389023 0.276157 +vt 0.388916 0.264680 +vt 0.389133 0.251223 +vt 0.390008 0.276157 +vt 0.389133 0.285125 +vt 0.388916 0.304029 +vt 0.387899 0.278754 +vt 0.388916 0.278754 +vt 0.388635 0.264744 +vt 0.387789 0.252895 +vt 0.388774 0.252895 +vt 0.387899 0.243592 +vt 0.388916 0.243592 +vt 0.386664 0.251223 +vt 0.387401 0.266119 +vt 0.386554 0.278567 +vt 0.386447 0.266119 +vt 0.387539 0.278567 +vt 0.386664 0.288414 +vt 0.386305 0.253858 +vt 0.385430 0.243592 +vt 0.386447 0.243592 +vt 0.386166 0.266768 +vt 0.385319 0.253858 +vt 0.385430 0.282352 +vt 0.386447 0.282352 +vt 0.386447 0.307628 +vt 0.387682 0.288414 +vt 0.390151 0.285125 +vt 0.392620 0.281630 +vt 0.383439 0.307361 +vt 0.376855 0.307361 +vt 0.350858 0.314891 +vt 0.381793 0.303149 +vt 0.378501 0.303149 +vt 0.349131 0.314891 +vt 0.305997 0.311675 +vt 0.353943 0.282733 +vt 0.353944 0.296293 +vt 0.348349 0.313876 +vt 0.343831 0.264830 +vt 0.335006 0.267024 +vt 0.395931 0.251231 +vt 0.397068 0.265241 +vt 0.392620 0.266816 +vt 0.391603 0.225955 +vt 0.390368 0.300820 +vt 0.390151 0.262939 +vt 0.389133 0.225955 +vt 0.387899 0.304029 +vt 0.387682 0.264744 +vt 0.386664 0.225955 +vt 0.385213 0.266768 +vt 0.385430 0.307628 +s 0 f 34/1/1 36/2/1 33/3/1 f 37/4/2 39/5/2 40/6/2 f 40/6/3 41/7/4 42/8/5 @@ -1837,2372 +1750,3647 @@ f 149/112/49 150/113/49 151/114/49 f 152/115/1 154/116/1 79/117/1 f 155/118/8 157/119/8 158/120/8 f 157/119/50 160/121/50 158/120/50 -f 159/122/51 162/123/24 160/121/51 -f 161/124/52 164/125/53 162/123/54 +f 159/122/51 162/123/52 160/121/51 +f 161/124/53 164/125/54 162/123/55 f 165/126/8 166/127/8 167/128/8 -f 76/129/8 87/130/8 168/131/8 -f 166/132/16 79/133/16 154/134/16 -f 169/135/55 156/136/8 155/118/8 -f 169/135/56 110/66/8 171/137/8 -f 172/138/57 145/108/1 173/139/58 -f 139/101/1 172/138/59 174/140/1 -f 145/108/1 175/141/1 173/139/60 -f 176/142/1 139/101/1 174/140/1 -f 137/98/1 176/142/1 177/143/1 -f 178/144/1 137/98/1 177/143/1 -f 179/145/8 156/136/8 170/146/61 -f 180/147/8 110/66/8 109/67/8 -f 180/147/8 107/64/8 181/148/8 -f 182/149/8 107/64/8 66/65/8 -f 183/150/8 49/16/8 179/145/8 -f 33/3/1 184/151/1 175/141/1 -f 186/152/8 188/153/8 185/154/8 -f 187/155/62 190/156/62 188/153/62 -f 189/157/63 192/158/63 190/156/63 -f 191/159/64 194/160/65 192/158/64 -f 195/161/1 197/162/1 198/163/1 -f 199/164/1 201/165/1 202/166/1 -f 203/167/66 205/168/67 206/169/68 -f 207/170/69 206/169/69 208/171/69 -f 209/172/70 208/171/70 210/173/70 -f 212/174/8 210/173/8 211/175/8 -f 91/176/1 214/177/1 215/178/1 -f 99/179/71 216/180/72 217/181/20 -f 103/182/73 217/181/73 218/183/73 -f 106/184/74 218/183/74 219/185/74 -f 220/186/8 106/184/8 219/185/8 -f 220/187/75 109/188/75 108/189/75 -f 221/190/8 223/191/8 224/192/8 -f 225/193/76 227/194/77 228/195/78 -f 229/196/79 226/197/79 225/193/80 -f 231/198/81 230/199/81 229/196/81 -f 232/200/1 234/201/1 233/202/1 -f 235/203/8 237/204/8 238/205/8 -f 239/206/82 241/207/83 242/208/84 -f 243/209/85 240/210/85 239/206/86 -f 245/211/87 244/212/87 243/209/87 -f 246/213/1 248/214/1 247/215/1 -f 48/216/88 224/217/88 45/218/88 -f 221/219/15 82/220/15 117/221/15 -f 233/222/75 138/223/75 137/224/75 -f 85/225/88 238/226/88 116/227/88 -f 247/228/75 142/229/75 139/230/75 -f 235/231/15 154/232/15 153/233/15 -f 79/234/88 115/235/88 152/236/88 -f 112/237/15 75/238/15 111/239/15 -f 140/240/75 33/241/75 145/242/75 -f 250/243/16 252/244/16 249/245/16 -f 87/246/16 80/247/16 81/248/16 -f 254/249/16 256/250/16 253/251/16 -f 80/252/89 76/253/89 75/254/89 -f 250/255/17 48/256/17 62/257/17 -f 85/258/1 256/259/1 253/260/1 -f 83/261/8 250/262/8 251/263/8 -f 82/264/1 249/265/1 48/266/1 -f 252/267/90 83/268/90 82/269/90 -f 84/270/8 255/271/8 166/272/8 -f 256/273/90 166/274/90 154/275/90 -f 254/276/17 85/277/17 84/278/17 -f 258/279/91 260/280/91 257/281/91 -f 184/282/92 257/283/92 260/284/92 -f 183/285/92 260/284/92 259/286/92 -f 50/287/92 259/286/92 258/288/92 -f 36/289/92 258/288/92 50/287/92 -f 269/290/91 271/291/91 272/292/91 -f 269/293/8 280/294/8 270/295/8 -f 293/296/93 292/297/1 294/298/94 -f 278/299/1 293/296/95 295/300/1 -f 296/301/96 286/302/8 285/303/8 -f 296/301/97 282/304/8 298/305/8 -f 299/306/8 286/302/8 297/307/98 -f 300/308/8 282/304/8 281/309/8 -f 300/308/8 279/310/8 301/311/8 -f 302/312/8 279/310/8 269/293/8 -f 292/297/1 303/313/1 294/298/99 -f 304/314/1 278/299/1 295/300/1 -f 274/315/1 304/314/1 305/316/1 -f 306/317/1 274/315/1 305/316/1 -f 262/318/100 267/319/100 263/320/100 -f 269/290/91 306/321/91 302/322/91 -f 303/313/101 268/323/101 307/324/102 -f 299/306/103 262/325/103 261/326/103 -f 310/327/104 312/328/104 309/329/104 -f 310/330/105 262/331/105 308/332/106 -f 311/333/107 308/334/108 307/335/109 -f 268/336/110 311/337/110 307/338/111 -f 258/339/92 268/340/92 50/341/92 -f 283/342/91 139/343/91 135/344/91 -f 294/345/112 314/346/113 293/347/114 -f 34/348/75 263/349/75 35/350/75 -f 265/351/75 156/352/75 49/353/75 -f 306/354/107 181/355/107 182/356/107 -f 35/350/75 267/357/75 51/358/75 -f 303/359/115 313/360/116 294/345/117 -f 316/361/118 179/362/119 170/363/120 -f 308/364/121 175/365/107 184/366/107 -f 291/367/75 158/368/75 157/369/75 -f 275/370/75 107/371/75 109/188/75 -f 295/372/122 319/373/122 171/374/122 -f 267/357/75 52/375/75 51/358/75 -f 320/376/123 299/377/124 297/378/125 -f 302/379/107 182/356/107 178/380/107 -f 298/381/107 176/382/107 174/383/107 -f 183/285/126 308/384/127 184/282/126 -f 303/385/107 183/386/107 179/387/107 -f 268/340/107 36/388/107 50/341/107 -f 288/389/75 144/390/75 143/391/75 -f 300/392/107 177/393/107 176/382/107 -f 319/394/128 169/395/129 171/396/128 -f 270/397/75 37/398/75 38/399/75 -f 304/400/107 171/401/107 180/402/107 -f 289/403/75 110/404/75 155/405/75 -f 284/406/75 135/407/75 136/408/75 -f 305/409/107 180/402/107 181/355/107 -f 271/410/75 38/399/75 56/411/75 -f 53/412/75 271/410/75 56/411/75 -f 309/413/75 258/414/75 257/415/75 -f 282/416/75 142/229/75 139/230/75 -f 287/417/91 145/418/91 144/419/91 -f 286/420/75 33/241/75 145/242/75 -f 277/421/75 105/422/75 104/423/75 -f 36/388/92 309/424/92 257/425/92 -f 280/426/91 137/427/91 37/428/91 -f 177/393/107 302/379/107 178/380/107 -f 279/429/75 138/223/75 137/224/75 -f 313/430/130 317/431/131 316/361/132 -f 314/432/133 316/361/134 322/433/135 -f 321/434/131 324/435/136 323/436/131 -f 320/437/137 326/438/138 324/435/139 -f 325/439/140 328/440/141 326/438/142 -f 318/441/141 322/433/143 319/394/141 -f 317/442/144 303/443/144 179/444/144 -f 325/445/145 297/378/146 296/446/147 -f 322/433/148 170/363/149 169/395/150 -f 175/447/151 324/435/152 173/448/153 -f 293/347/154 318/449/155 295/450/155 -f 173/448/156 326/438/157 172/451/158 -f 327/452/159 296/446/160 298/453/159 -f 299/454/144 323/455/144 175/456/144 -f 172/451/161 328/440/162 174/457/162 -f 328/458/122 298/459/122 174/460/122 -f 215/461/16 62/462/16 83/463/16 -f 202/464/16 84/465/16 166/466/16 -f 85/467/16 236/468/16 154/469/16 -f 198/470/16 86/471/16 76/472/16 -f 79/473/16 113/474/16 75/475/16 -f 242/208/163 238/476/1 235/477/1 -f 228/195/164 224/478/1 221/479/1 -f 198/480/15 88/481/15 76/482/15 -f 165/483/88 197/484/88 86/485/88 -f 202/486/15 167/487/15 166/488/15 -f 89/489/88 201/490/88 84/491/88 -f 61/492/88 214/493/88 62/494/88 -f 92/495/165 213/496/8 216/180/166 -f 204/497/167 200/498/8 205/168/168 -f 193/499/169 196/500/8 194/160/170 -f 163/501/8 167/128/8 164/125/8 -f 151/114/1 153/502/1 152/115/1 -f 127/85/1 117/503/1 116/74/1 -f 123/82/171 115/504/1 112/505/1 -f 70/79/172 111/506/1 67/68/1 -f 215/507/15 90/508/15 83/509/15 -f 97/510/8 90/50/8 93/55/8 -f 69/511/173 88/47/8 94/52/174 -f 77/512/88 67/513/88 78/514/88 -f 59/515/8 64/26/8 60/23/8 -f 44/10/1 46/516/1 45/11/1 -f 48/517/16 222/518/16 82/519/16 -f 262/520/107 272/521/107 269/522/107 +f 76/37/8 87/129/8 168/130/8 +f 166/131/16 79/132/16 154/133/16 +f 169/134/56 156/135/8 155/118/8 +f 169/134/57 110/66/8 171/136/8 +f 172/137/58 145/108/1 173/138/59 +f 139/101/1 172/137/60 174/139/1 +f 145/108/1 175/140/1 173/138/61 +f 176/141/1 139/101/1 174/139/1 +f 137/98/1 176/141/1 177/142/1 +f 178/143/1 137/98/1 177/142/1 +f 179/144/8 156/135/8 170/145/62 +f 180/146/8 110/66/8 109/67/8 +f 180/146/8 107/64/8 181/147/8 +f 182/148/8 107/64/8 66/65/8 +f 183/149/8 49/16/8 179/144/8 +f 33/3/1 184/150/1 175/140/1 +f 186/151/8 188/152/8 185/153/8 +f 187/154/63 190/155/63 188/152/63 +f 189/156/64 192/157/64 190/155/64 +f 191/158/65 194/159/66 192/157/65 +f 195/160/1 197/71/1 198/73/1 +f 199/161/1 201/162/1 202/163/1 +f 203/164/67 205/165/68 206/166/69 +f 207/167/70 206/166/70 208/168/70 +f 209/169/71 208/168/71 210/170/71 +f 212/171/8 210/170/8 211/172/8 +f 91/173/1 214/174/1 215/175/1 +f 99/176/72 216/177/73 217/178/20 +f 103/179/74 217/178/74 218/180/74 +f 106/181/75 218/180/75 219/182/75 +f 220/183/8 106/181/8 219/182/8 +f 220/184/76 109/185/76 108/186/76 +f 221/187/8 223/173/8 224/188/8 +f 225/189/77 227/190/78 228/191/79 +f 229/192/80 226/193/80 225/189/81 +f 231/194/82 230/195/82 229/192/82 +f 232/196/1 234/197/1 233/198/1 +f 235/199/8 237/162/8 238/200/8 +f 239/201/83 241/202/84 242/203/85 +f 243/204/86 240/205/86 239/201/87 +f 245/206/88 244/207/88 243/204/88 +f 246/208/1 248/209/1 247/210/1 +f 48/211/89 224/212/89 45/213/89 +f 221/214/90 82/215/90 117/216/90 +f 233/217/76 138/218/76 137/219/76 +f 85/220/89 238/221/89 116/222/89 +f 247/223/76 142/224/76 139/225/76 +f 235/226/15 154/227/15 153/228/15 +f 79/229/91 115/230/91 152/231/91 +f 112/232/90 75/233/90 111/234/90 +f 140/235/76 33/236/76 145/237/76 +f 250/238/16 252/239/16 249/240/16 +f 87/241/16 80/242/16 81/243/16 +f 254/244/16 256/245/16 253/246/16 +f 80/247/92 76/248/92 75/249/92 +f 250/250/93 48/251/93 62/43/93 +f 85/252/1 256/253/1 253/254/1 +f 83/255/8 250/256/8 251/257/8 +f 82/258/1 249/255/1 48/259/1 +f 252/260/94 83/249/94 82/248/94 +f 84/253/8 255/261/8 166/254/8 +f 256/262/92 166/263/92 154/264/92 +f 254/265/93 85/266/93 84/267/93 +f 258/246/95 260/268/95 257/244/95 +f 184/269/96 257/269/97 260/269/97 +f 183/269/97 260/269/97 259/269/97 +f 50/269/97 259/269/97 258/269/97 +f 36/269/97 258/269/97 50/269/97 +f 269/270/95 271/271/95 272/272/95 +f 269/273/8 280/274/8 270/275/8 +f 293/276/98 292/277/1 294/278/99 +f 278/279/1 293/276/100 295/280/1 +f 296/281/101 286/282/8 285/283/8 +f 296/281/102 282/284/8 298/285/8 +f 299/286/8 286/282/8 297/287/103 +f 300/288/8 282/284/8 281/289/8 +f 300/288/8 279/290/8 301/291/8 +f 302/292/8 279/290/8 269/273/8 +f 292/277/1 303/293/1 294/278/104 +f 304/294/1 278/279/1 295/280/1 +f 274/295/1 304/294/1 305/296/1 +f 306/297/1 274/295/1 305/296/1 +f 262/298/105 267/299/105 263/300/105 +f 269/270/95 306/269/95 302/301/95 +f 303/293/106 268/302/106 307/303/107 +f 299/286/108 262/304/108 261/305/108 +f 310/306/109 312/33/109 309/35/109 +f 310/307/110 262/308/110 308/309/111 +f 311/310/112 308/311/113 307/312/114 +f 268/313/115 311/314/115 307/315/116 +f 258/316/97 268/317/117 50/316/97 +f 283/318/95 139/319/95 135/320/95 +f 294/321/118 314/322/119 293/323/120 +f 34/324/76 263/325/76 35/243/76 +f 265/326/76 156/327/76 49/328/76 +f 306/329/121 181/330/121 182/267/121 +f 35/243/122 267/331/122 51/241/122 +f 303/332/123 313/333/124 294/321/125 +f 316/334/126 179/335/127 170/336/128 +f 308/337/129 175/338/112 184/217/112 +f 291/339/76 158/340/76 157/240/76 +f 275/341/76 107/342/76 109/185/76 +f 295/343/130 319/344/130 171/345/130 +f 267/331/76 52/346/76 51/241/76 +f 320/347/131 299/348/132 297/349/133 +f 302/350/134 182/267/134 178/266/134 +f 298/351/112 176/352/112 174/353/112 +f 183/269/135 308/269/136 184/269/135 +f 303/354/112 183/355/112 179/356/112 +f 268/317/112 36/357/112 50/316/112 +f 288/358/76 144/359/76 143/360/76 +f 300/361/112 177/362/112 176/352/112 +f 319/363/137 169/364/138 171/365/137 +f 270/366/76 37/367/76 38/34/76 +f 304/368/112 171/369/112 180/370/112 +f 289/371/76 110/372/76 155/355/76 +f 284/373/76 135/374/76 136/375/76 +f 305/376/112 180/370/112 181/330/112 +f 271/377/76 38/34/76 56/378/76 +f 53/379/76 271/377/76 56/378/76 +f 309/380/76 258/381/76 257/382/76 +f 282/383/76 142/224/76 139/225/76 +f 287/384/95 145/385/95 144/386/95 +f 286/387/76 33/236/76 145/237/76 +f 277/388/76 105/389/76 104/223/76 +f 36/357/97 309/390/97 257/357/97 +f 280/391/95 137/392/95 37/393/95 +f 177/362/139 302/350/139 178/266/139 +f 279/394/76 138/218/76 137/219/76 +f 313/395/140 317/396/141 316/334/142 +f 314/397/143 316/334/144 322/398/145 +f 321/399/141 324/400/146 323/401/141 +f 320/402/147 326/403/148 324/400/149 +f 325/404/150 328/405/151 326/403/152 +f 318/406/151 322/398/153 319/363/151 +f 317/407/154 303/408/154 179/345/154 +f 325/409/155 297/349/156 296/410/157 +f 322/398/158 170/336/159 169/364/160 +f 175/411/161 324/400/162 173/412/163 +f 293/323/164 318/413/165 295/414/165 +f 173/412/166 326/403/167 172/415/168 +f 327/416/169 296/410/170 298/417/169 +f 299/418/154 323/419/154 175/420/154 +f 172/415/171 328/405/172 174/421/172 +f 328/422/130 298/423/130 174/424/130 +f 215/425/16 62/426/16 83/427/16 +f 202/428/16 84/429/16 166/426/16 +f 85/430/16 236/431/16 154/432/16 +f 198/431/16 86/433/16 76/224/16 +f 79/218/16 113/434/16 75/328/16 +f 242/203/173 238/435/1 235/436/1 +f 228/191/174 224/437/1 221/438/1 +f 198/439/90 88/440/90 76/441/90 +f 165/442/91 197/443/91 86/444/91 +f 202/445/15 167/446/15 166/447/15 +f 89/448/89 201/449/89 84/450/89 +f 61/451/89 214/452/89 62/453/89 +f 92/454/175 213/455/8 216/177/176 +f 204/456/177 200/457/8 205/165/178 +f 193/458/179 196/459/8 194/159/180 +f 163/460/8 167/128/8 164/125/8 +f 151/114/1 153/461/1 152/115/1 +f 127/85/1 117/462/1 116/74/1 +f 123/82/181 115/463/1 112/464/1 +f 70/79/182 111/465/1 67/68/1 +f 215/466/90 90/467/90 83/468/90 +f 97/469/8 90/50/8 93/55/8 +f 69/470/183 88/47/8 94/52/184 +f 77/471/91 67/472/91 78/473/91 +f 59/474/8 64/26/8 60/23/8 +f 44/10/1 46/475/1 45/11/1 +f 48/476/16 222/477/16 82/478/16 +f 262/479/112 272/480/112 269/481/112 f 34/1/1 35/92/1 36/2/1 -f 37/4/175 38/97/175 39/5/175 -f 40/6/176 39/5/176 41/7/177 -f 42/8/178 41/7/179 43/9/180 -f 45/11/1 46/516/1 47/12/1 +f 37/4/185 38/97/185 39/5/185 +f 40/6/186 39/5/186 41/7/187 +f 42/8/188 41/7/189 43/9/190 +f 45/11/1 46/475/1 47/12/1 f 50/14/8 51/61/8 52/15/8 -f 53/17/181 54/20/181 55/18/181 -f 54/20/182 57/22/183 58/21/184 -f 57/22/185 59/515/186 60/23/186 -f 61/24/8 62/523/8 63/25/8 -f 64/27/15 63/524/15 47/28/15 -f 76/30/16 77/525/16 78/31/16 -f 63/33/16 62/526/16 48/34/16 -f 75/36/1 80/527/1 81/37/1 -f 83/39/16 84/528/16 85/40/16 -f 87/42/17 81/529/17 79/43/17 -f 68/45/8 77/530/8 76/46/8 -f 89/48/8 84/531/8 83/49/8 -f 71/51/187 69/511/188 94/52/189 -f 96/54/190 97/510/190 93/55/190 -f 73/57/191 71/51/192 95/53/191 -f 101/59/193 96/54/193 98/56/194 -f 73/57/195 100/58/195 52/15/195 -f 104/62/196 101/59/196 102/60/196 +f 53/17/191 54/20/191 55/18/191 +f 54/20/192 57/22/193 58/21/194 +f 57/22/195 59/474/196 60/23/196 +f 61/24/8 62/482/8 63/25/8 +f 64/27/15 63/483/15 47/28/15 +f 76/30/16 77/484/16 78/31/16 +f 63/33/16 62/378/16 48/34/16 +f 75/36/1 80/485/1 81/37/1 +f 83/39/16 84/242/16 85/40/16 +f 87/42/17 81/250/17 79/43/17 +f 68/45/8 77/486/8 76/46/8 +f 89/48/8 84/487/8 83/49/8 +f 71/51/197 69/470/198 94/52/199 +f 96/54/200 97/469/200 93/55/200 +f 73/57/201 71/51/202 95/53/201 +f 101/59/203 96/54/203 98/56/204 +f 73/57/205 100/58/205 52/15/205 +f 104/62/206 101/59/206 102/60/206 f 107/64/8 53/17/8 56/19/8 f 110/66/8 104/62/8 105/63/8 -f 67/68/1 111/506/1 75/69/1 -f 112/71/8 113/532/8 114/72/8 -f 116/74/1 117/503/1 82/75/1 -f 72/77/197 118/87/198 119/78/199 -f 120/80/200 121/89/47 122/81/201 -f 124/83/202 125/91/203 126/84/204 -f 74/86/205 128/533/205 118/87/206 -f 129/88/207 130/94/207 121/89/207 -f 131/90/208 132/96/208 125/91/209 -f 34/1/210 128/533/210 74/86/210 -f 133/93/211 134/103/211 130/94/211 -f 135/95/212 136/100/212 132/96/212 +f 67/68/1 111/465/1 75/69/1 +f 112/71/8 113/488/8 114/72/8 +f 116/74/1 117/462/1 82/75/1 +f 72/77/207 118/87/208 119/78/209 +f 120/80/210 121/89/47 122/81/211 +f 124/83/212 125/91/213 126/84/214 +f 74/86/215 128/489/215 118/87/216 +f 129/88/217 130/94/217 121/89/217 +f 131/90/218 132/96/218 125/91/219 +f 34/1/220 128/489/220 74/86/220 +f 133/93/221 134/103/221 130/94/221 +f 135/95/222 136/100/222 132/96/222 f 38/97/1 37/4/1 137/98/1 f 136/100/1 135/95/1 139/101/1 f 134/103/1 133/93/1 141/104/1 -f 142/106/1 143/534/1 144/107/1 -f 144/107/213 143/534/213 146/109/213 -f 147/110/214 146/109/214 148/111/215 -f 149/112/216 148/111/217 150/113/216 -f 152/115/1 153/502/1 154/116/1 -f 155/118/8 156/136/8 157/119/8 -f 157/119/218 159/122/218 160/121/218 -f 159/122/219 161/124/220 162/123/221 -f 161/124/222 163/501/223 164/125/223 -f 165/126/8 86/535/8 166/127/8 -f 76/129/8 86/536/8 87/130/8 -f 166/132/16 86/537/16 79/133/16 -f 169/135/224 170/146/225 156/136/8 -f 169/135/226 155/118/8 110/66/8 -f 172/138/227 142/106/1 145/108/1 -f 139/101/1 142/106/1 172/138/228 -f 145/108/1 33/3/1 175/141/1 -f 176/142/1 138/102/1 139/101/1 -f 137/98/1 138/102/1 176/142/1 -f 178/144/1 65/99/1 137/98/1 -f 179/145/8 49/16/8 156/136/8 -f 180/147/8 171/137/8 110/66/8 -f 180/147/8 109/67/8 107/64/8 -f 182/149/8 181/148/8 107/64/8 -f 183/150/8 50/14/8 49/16/8 -f 33/3/1 36/2/1 184/151/1 -f 186/152/8 187/155/8 188/153/8 -f 187/155/229 189/157/229 190/156/229 -f 189/157/230 191/159/230 192/158/230 -f 191/159/231 193/499/232 194/160/233 -f 195/161/1 196/538/1 197/162/1 -f 199/164/1 200/539/1 201/165/1 -f 203/167/234 204/497/235 205/168/236 -f 207/170/237 203/167/238 206/169/237 -f 209/172/239 207/170/239 208/171/239 -f 212/174/8 209/172/8 210/173/8 -f 91/176/1 213/540/1 214/177/1 -f 99/179/240 92/495/241 216/180/242 -f 103/182/243 99/179/244 217/181/243 -f 106/184/245 103/182/245 218/183/245 -f 220/186/8 108/541/8 106/184/8 -f 220/187/75 107/371/75 109/188/75 -f 221/190/8 222/542/8 223/191/8 -f 225/193/246 226/197/247 227/194/248 -f 229/196/249 230/199/249 226/197/249 -f 231/198/250 232/200/250 230/199/250 -f 232/200/1 231/198/1 234/201/1 -f 235/203/8 236/543/8 237/204/8 -f 239/206/251 240/210/252 241/207/253 -f 243/209/254 244/212/254 240/210/254 -f 245/211/255 246/213/255 244/212/255 -f 246/213/1 245/211/1 248/214/1 -f 48/216/88 223/544/88 224/217/88 -f 221/219/15 222/545/15 82/220/15 -f 233/222/75 234/546/75 138/223/75 -f 85/225/88 237/547/88 238/226/88 -f 247/228/75 248/548/75 142/229/75 -f 235/231/15 236/549/15 154/232/15 -f 79/234/88 114/550/88 115/235/88 -f 112/237/15 113/551/15 75/238/15 -f 140/240/75 141/552/75 33/241/75 -f 250/243/16 251/553/16 252/244/16 -f 87/246/16 168/554/16 80/247/16 -f 254/249/16 255/555/16 256/250/16 -f 80/252/89 168/556/89 76/253/89 -f 250/255/17 249/557/17 48/256/17 -f 85/258/1 154/558/1 256/259/1 -f 83/261/8 62/559/8 250/262/8 -f 82/264/1 252/560/1 249/265/1 -f 252/267/90 251/561/90 83/268/90 -f 84/270/8 254/562/8 255/271/8 -f 256/273/90 255/563/90 166/274/90 -f 254/276/17 253/564/17 85/277/17 -f 258/279/91 259/565/91 260/280/91 -f 184/282/92 36/289/92 257/283/92 -f 183/285/92 184/282/92 260/284/92 -f 50/287/92 183/285/92 259/286/92 -f 36/289/92 257/283/92 258/288/92 -f 269/290/91 270/566/91 271/291/91 -f 269/293/8 279/310/8 280/294/8 -f 293/296/256 289/567/1 292/297/1 -f 278/299/1 289/567/1 293/296/257 -f 296/301/258 297/307/259 286/302/8 -f 296/301/260 285/303/8 282/304/8 -f 299/306/8 261/326/8 286/302/8 -f 300/308/8 298/305/8 282/304/8 -f 300/308/8 281/309/8 279/310/8 -f 302/312/8 301/311/8 279/310/8 -f 292/297/1 265/568/1 303/313/1 -f 304/314/1 275/569/1 278/299/1 -f 274/315/1 275/569/1 304/314/1 -f 306/317/1 272/570/1 274/315/1 -f 262/318/100 268/571/100 267/319/100 -f 269/290/91 272/292/91 306/321/91 -f 303/313/261 265/568/261 268/323/261 -f 299/306/262 308/384/263 262/325/262 -f 310/327/104 311/572/104 312/328/104 -f 310/330/264 309/573/264 262/331/264 -f 311/333/107 310/574/107 308/334/265 -f 268/336/266 312/575/266 311/337/266 -f 258/339/107 312/576/107 268/340/107 -f 283/342/91 282/577/91 139/343/91 -f 294/345/267 313/360/268 314/346/269 -f 34/348/75 264/578/75 263/349/75 -f 265/351/75 292/579/75 156/352/75 -f 306/354/107 305/409/107 181/355/107 -f 35/350/75 263/349/75 267/357/75 -f 303/359/270 315/580/270 313/360/271 -f 316/361/272 317/431/273 179/362/273 -f 308/364/274 299/581/107 175/365/107 -f 291/367/75 290/582/75 158/368/75 -f 275/370/75 274/583/75 107/371/75 -f 295/372/122 318/584/122 319/373/122 -f 267/357/75 266/585/75 52/375/75 -f 320/376/275 321/586/276 299/377/276 -f 302/379/107 306/354/107 182/356/107 -f 298/381/107 300/392/107 176/382/107 -f 183/285/92 307/587/277 308/384/278 -f 303/385/107 307/588/279 183/386/107 -f 268/340/107 262/520/107 36/388/107 -f 288/389/75 287/589/75 144/390/75 -f 300/392/107 301/590/107 177/393/107 -f 319/394/280 322/433/281 169/395/282 -f 270/397/75 280/591/75 37/398/75 -f 304/400/107 295/592/107 171/401/107 -f 289/403/75 278/593/75 110/404/75 -f 284/406/75 283/594/75 135/407/75 -f 305/409/107 304/400/107 180/402/107 -f 271/410/75 270/397/75 38/399/75 -f 53/412/75 273/595/75 271/410/75 -f 309/413/75 312/596/75 258/414/75 -f 282/416/75 285/597/75 142/229/75 -f 287/417/91 286/598/91 145/418/91 -f 286/420/75 261/599/75 33/241/75 -f 277/421/75 276/600/75 105/422/75 -f 36/388/107 262/520/107 309/424/107 -f 280/426/91 279/601/91 137/427/91 -f 177/393/107 301/590/107 302/379/107 -f 279/429/75 281/602/75 138/223/75 -f 313/430/283 315/603/131 317/431/131 -f 314/432/284 313/430/285 316/361/286 -f 321/434/131 320/437/287 324/435/288 -f 320/437/289 325/439/290 326/438/291 -f 325/439/292 327/604/141 328/440/141 -f 318/441/141 314/432/293 322/433/294 -f 317/442/144 315/605/144 303/443/144 -f 325/445/295 320/376/296 297/378/297 -f 322/433/298 316/361/299 170/363/300 -f 175/447/301 323/436/301 324/435/302 -f 293/347/303 314/346/304 318/449/305 -f 173/448/306 324/435/307 326/438/308 -f 327/452/309 325/445/310 296/446/311 -f 299/454/144 321/606/144 323/455/144 -f 172/451/312 326/438/313 328/440/314 -f 328/458/122 327/607/122 298/459/122 -f 215/461/16 214/608/16 62/462/16 -f 202/464/16 201/609/16 84/465/16 -f 85/467/16 237/610/16 236/468/16 -f 198/470/16 197/611/16 86/471/16 -f 79/473/16 114/612/16 113/474/16 -f 242/208/315 241/207/316 238/476/1 -f 228/195/317 227/194/318 224/478/1 -f 198/480/15 195/613/15 88/481/15 -f 165/483/88 196/614/88 197/484/88 -f 202/486/15 199/615/15 167/487/15 -f 89/489/88 200/616/88 201/490/88 -f 61/492/88 213/617/88 214/493/88 -f 92/495/319 91/618/8 213/496/8 -f 204/497/320 199/619/8 200/498/8 -f 193/499/321 195/620/8 196/500/8 -f 163/501/8 165/126/8 167/128/8 -f 151/114/1 150/113/1 153/502/1 -f 127/85/1 126/84/1 117/503/1 -f 123/82/322 122/81/323 115/504/1 -f 70/79/324 119/78/325 111/506/1 -f 215/507/15 91/621/15 90/508/15 -f 97/510/8 89/48/8 90/50/8 -f 69/511/326 68/45/8 88/47/8 -f 77/512/88 68/622/88 67/513/88 -f 59/515/8 61/24/8 64/26/8 -f 44/10/1 43/9/1 46/516/1 -f 48/517/16 223/623/16 222/518/16 -f 262/520/107 268/340/107 272/521/107 +f 142/106/1 143/490/1 144/107/1 +f 144/107/223 143/490/223 146/109/223 +f 147/110/224 146/109/224 148/111/225 +f 149/112/226 148/111/227 150/113/226 +f 152/115/1 153/461/1 154/116/1 +f 155/118/8 156/135/8 157/119/8 +f 157/119/228 159/122/228 160/121/228 +f 159/122/229 161/124/230 162/123/231 +f 161/124/232 163/460/233 164/125/233 +f 165/126/8 86/491/8 166/127/8 +f 76/37/8 86/492/8 87/129/8 +f 166/131/16 86/40/16 79/132/16 +f 169/134/234 170/145/235 156/135/8 +f 169/134/236 155/118/8 110/66/8 +f 172/137/237 142/106/1 145/108/1 +f 139/101/1 142/106/1 172/137/238 +f 145/108/1 33/3/1 175/140/1 +f 176/141/1 138/102/1 139/101/1 +f 137/98/1 138/102/1 176/141/1 +f 178/143/1 65/99/1 137/98/1 +f 179/144/8 49/16/8 156/135/8 +f 180/146/8 171/136/8 110/66/8 +f 180/146/8 109/67/8 107/64/8 +f 182/148/8 181/147/8 107/64/8 +f 183/149/8 50/14/8 49/16/8 +f 33/3/1 36/2/1 184/150/1 +f 186/151/8 187/154/8 188/152/8 +f 187/154/239 189/156/239 190/155/239 +f 189/156/240 191/158/240 192/157/240 +f 191/158/241 193/458/242 194/159/243 +f 195/160/1 196/493/1 197/71/1 +f 199/161/1 200/494/1 201/162/1 +f 203/164/244 204/456/245 205/165/246 +f 207/167/247 203/164/248 206/166/247 +f 209/169/249 207/167/249 208/168/249 +f 212/171/8 209/169/8 210/170/8 +f 91/173/1 213/495/1 214/174/1 +f 99/176/250 92/454/251 216/177/252 +f 103/179/253 99/176/254 217/178/253 +f 106/181/255 103/179/255 218/180/255 +f 220/183/8 108/496/8 106/181/8 +f 220/184/76 107/342/76 109/185/76 +f 221/187/8 222/495/8 223/173/8 +f 225/189/256 226/193/257 227/190/258 +f 229/192/259 230/195/259 226/193/259 +f 231/194/260 232/196/260 230/195/260 +f 232/196/1 231/194/1 234/197/1 +f 235/199/8 236/163/8 237/162/8 +f 239/201/261 240/205/262 241/202/263 +f 243/204/264 244/207/264 240/205/264 +f 245/206/265 246/208/265 244/207/265 +f 246/208/1 245/206/1 248/209/1 +f 48/211/89 223/497/89 224/212/89 +f 221/214/90 222/498/90 82/215/90 +f 233/217/76 234/236/76 138/218/76 +f 85/220/89 237/499/89 238/221/89 +f 247/223/76 248/425/76 142/224/76 +f 235/226/15 236/500/15 154/227/15 +f 79/229/91 114/501/91 115/230/91 +f 112/232/90 113/502/90 75/233/90 +f 140/235/76 141/503/76 33/236/76 +f 250/238/16 251/504/16 252/239/16 +f 87/241/16 168/239/16 80/242/16 +f 254/244/16 255/505/16 256/245/16 +f 80/247/94 168/506/94 76/248/94 +f 250/250/93 249/507/93 48/251/93 +f 85/252/1 154/508/1 256/253/1 +f 83/255/8 62/509/8 250/256/8 +f 82/258/1 252/509/1 249/255/1 +f 252/260/94 251/510/94 83/249/94 +f 84/253/8 254/511/8 255/261/8 +f 256/262/92 255/512/92 166/263/92 +f 254/265/93 253/513/93 85/266/93 +f 258/246/95 259/514/95 260/268/95 +f 184/269/97 36/269/97 257/269/97 +f 183/269/97 184/269/97 260/269/97 +f 50/269/97 183/269/97 259/269/96 +f 36/269/97 257/269/97 258/269/97 +f 269/270/95 270/515/95 271/271/95 +f 269/273/8 279/290/8 280/274/8 +f 293/276/266 289/516/1 292/277/1 +f 278/279/1 289/516/1 293/276/267 +f 296/281/268 297/287/269 286/282/8 +f 296/281/270 285/283/8 282/284/8 +f 299/286/8 261/305/8 286/282/8 +f 300/288/8 298/285/8 282/284/8 +f 300/288/8 281/289/8 279/290/8 +f 302/292/8 301/291/8 279/290/8 +f 292/277/1 265/517/1 303/293/1 +f 304/294/1 275/518/1 278/279/1 +f 274/295/1 275/518/1 304/294/1 +f 306/297/1 272/519/1 274/295/1 +f 262/298/105 268/520/105 267/299/105 +f 269/270/95 272/272/95 306/269/95 +f 303/293/271 265/517/271 268/302/271 +f 299/286/272 308/269/273 262/304/272 +f 310/306/109 311/521/109 312/33/109 +f 310/307/274 309/522/274 262/308/274 +f 311/310/112 310/523/112 308/311/275 +f 268/313/276 312/524/276 311/314/276 +f 258/316/112 312/525/112 268/317/112 +f 283/318/95 282/526/95 139/319/95 +f 294/321/277 313/333/278 314/322/279 +f 34/324/76 264/527/76 263/325/76 +f 265/326/76 292/528/76 156/327/76 +f 306/329/112 305/376/112 181/330/112 +f 35/243/122 263/325/122 267/331/122 +f 303/332/280 315/529/280 313/333/281 +f 316/334/282 317/396/283 179/335/283 +f 308/337/284 299/530/112 175/338/112 +f 291/339/76 290/531/76 158/340/76 +f 275/341/76 274/532/76 107/342/76 +f 295/343/130 318/533/130 319/344/130 +f 267/331/76 266/534/76 52/346/76 +f 320/347/285 321/535/286 299/348/286 +f 302/350/134 306/329/134 182/267/134 +f 298/351/112 300/361/112 176/352/112 +f 183/269/97 307/269/287 308/269/288 +f 303/354/112 307/536/289 183/355/112 +f 268/317/112 262/479/112 36/357/112 +f 288/358/76 287/432/76 144/359/76 +f 300/361/112 301/537/112 177/362/112 +f 319/363/290 322/398/291 169/364/292 +f 270/366/76 280/538/76 37/367/76 +f 304/368/112 295/539/112 171/369/112 +f 289/371/76 278/540/76 110/372/76 +f 284/373/76 283/478/76 135/374/76 +f 305/376/112 304/368/112 180/370/112 +f 271/377/76 270/366/76 38/34/76 +f 53/379/76 273/541/76 271/377/76 +f 309/380/76 312/542/76 258/381/76 +f 282/383/76 285/543/76 142/224/76 +f 287/384/95 286/544/95 145/385/95 +f 286/387/76 261/545/76 33/236/76 +f 277/388/76 276/546/76 105/389/76 +f 36/357/112 262/479/112 309/390/112 +f 280/391/95 279/547/95 137/392/95 +f 177/362/112 301/537/112 302/350/112 +f 279/394/76 281/548/76 138/218/76 +f 313/395/293 315/549/141 317/396/141 +f 314/397/294 313/395/295 316/334/296 +f 321/399/141 320/402/297 324/400/298 +f 320/402/299 325/404/300 326/403/301 +f 325/404/302 327/550/151 328/405/151 +f 318/406/151 314/397/303 322/398/304 +f 317/407/154 315/551/154 303/408/154 +f 325/409/305 320/347/306 297/349/307 +f 322/398/308 316/334/309 170/336/310 +f 175/411/311 323/401/311 324/400/312 +f 293/323/313 314/322/314 318/413/315 +f 173/412/316 324/400/317 326/403/318 +f 327/416/319 325/409/320 296/410/321 +f 299/418/154 321/552/154 323/419/154 +f 172/415/322 326/403/323 328/405/324 +f 328/422/130 327/553/130 298/423/130 +f 215/425/16 214/554/16 62/426/16 +f 202/428/16 201/555/16 84/429/16 +f 85/430/16 237/309/16 236/431/16 +f 198/431/16 197/371/16 86/433/16 +f 79/218/16 114/476/16 113/434/16 +f 242/203/325 241/202/326 238/435/1 +f 228/191/327 227/190/328 224/437/1 +f 198/439/90 195/556/90 88/440/90 +f 165/442/91 196/557/91 197/443/91 +f 202/445/15 199/558/15 167/446/15 +f 89/448/89 200/559/89 201/449/89 +f 61/451/89 213/560/89 214/452/89 +f 92/454/329 91/561/8 213/455/8 +f 204/456/330 199/562/8 200/457/8 +f 193/458/331 195/563/8 196/459/8 +f 163/460/8 165/126/8 167/128/8 +f 151/114/1 150/113/1 153/461/1 +f 127/85/1 126/84/1 117/462/1 +f 123/82/332 122/81/333 115/463/1 +f 70/79/334 119/78/335 111/465/1 +f 215/466/90 91/564/90 90/467/90 +f 97/469/8 89/48/8 90/50/8 +f 69/470/336 68/45/8 88/47/8 +f 77/471/89 68/565/89 67/472/89 +f 59/474/8 61/24/8 64/26/8 +f 44/10/1 43/9/1 46/475/1 +f 48/476/16 223/185/16 222/477/16 +f 262/479/112 268/317/112 272/480/112 s 1 -f 2/624/327 4/625/328 1/626/329 -f 3/627/330 6/628/331 4/625/328 -f 3/627/330 7/629/332 5/630/333 -f 6/628/331 7/629/332 8/631/334 -f 7/629/332 1/626/329 8/631/334 -f 9/632/335 11/633/336 12/634/337 -f 13/635/338 9/636/335 12/637/337 -f 15/638/339 12/637/337 11/639/336 -f 16/640/340 11/639/336 10/641/341 -f 9/642/335 16/640/340 10/641/341 -f 13/643/338 1/644/329 14/645/342 -f 6/646/331 13/635/338 15/638/339 -f 16/640/340 6/647/331 15/638/339 -f 1/644/329 16/648/340 14/645/342 -f 17/649/343 19/650/344 20/651/345 -f 20/651/345 21/652/346 22/653/347 -f 19/650/344 23/654/348 21/652/346 -f 22/653/347 23/654/348 24/655/349 -f 23/654/348 17/649/343 24/655/349 -f 25/656/335 27/657/336 28/658/337 -f 28/659/337 30/660/350 25/661/335 -f 31/662/351 28/659/337 27/663/336 -f 26/664/341 31/665/351 27/666/336 -f 30/667/350 26/664/341 25/668/335 -f 24/669/349 30/670/350 29/671/352 -f 22/672/347 29/673/352 31/662/351 -f 32/674/353 22/675/347 31/665/351 -f 17/676/343 32/677/353 30/670/350 -f 337/678/354 354/679/355 339/680/355 -f 358/681/104 334/682/356 357/683/104 -f 335/684/357 352/685/358 337/678/354 -f 360/686/88 362/687/359 359/688/88 -f 350/689/356 335/684/357 334/682/356 -f 361/690/360 364/691/361 362/687/359 -f 363/692/362 366/693/363 364/691/361 -f 366/693/363 345/694/364 331/695/364 -f 370/696/15 372/697/365 369/698/15 -f 377/699/366 371/700/367 378/701/368 -f 378/701/368 381/702/369 377/699/366 -f 385/703/370 381/702/369 382/704/371 -f 388/705/104 385/703/370 387/706/104 -f 345/694/364 332/707/91 331/695/364 -f 444/708/104 357/683/104 443/709/104 -f 353/710/372 469/711/88 355/712/88 -f 351/713/373 470/714/374 353/710/372 -f 348/715/375 471/716/376 351/713/373 -f 348/715/375 473/717/377 472/718/378 -f 474/719/91 347/720/379 386/721/91 -f 434/722/380 468/723/104 431/724/104 -f 467/725/91 383/726/381 389/727/91 -f 380/728/382 466/729/383 464/730/384 -f 436/731/385 465/732/386 434/722/380 -f 459/733/387 436/731/385 438/734/388 -f 380/728/382 462/735/389 375/736/390 -f 460/737/391 438/734/388 440/738/392 -f 375/736/390 461/739/393 376/740/394 -f 376/740/394 458/741/88 368/742/88 -f 457/743/15 440/738/392 442/744/15 -f 439/745/395 456/746/88 441/747/88 -f 437/748/396 454/749/397 439/745/395 -f 435/750/398 452/751/399 437/748/396 -f 435/750/398 448/752/400 450/753/401 -f 445/754/91 433/755/402 432/756/91 -f 346/757/403 446/758/104 343/759/104 -f 379/760/404 447/761/405 346/757/403 -f 451/762/406 379/760/404 374/763/407 -f 453/764/408 374/763/407 373/765/409 -f 455/766/15 373/765/409 367/767/15 -f 336/768/375 484/769/377 333/770/379 -f 484/769/377 414/771/91 333/770/379 -f 336/768/375 478/772/376 482/773/378 -f 338/774/410 479/775/411 478/772/376 -f 402/776/412 480/777/413 403/778/365 -f 415/779/104 483/780/370 413/781/414 -f 483/780/370 409/782/369 413/781/414 -f 409/782/369 477/783/415 402/776/412 -f 408/784/382 490/785/389 494/786/384 -f 408/784/382 496/787/383 412/788/381 -f 496/787/383 416/789/91 412/788/381 -f 401/790/416 491/791/417 490/785/389 -f 419/792/104 495/793/386 420/794/380 -f 495/793/386 423/795/385 420/794/380 -f 423/795/385 489/796/418 425/797/419 -f 425/797/419 492/798/420 427/799/392 -f 411/800/400 422/801/91 421/802/402 -f 424/803/398 411/800/400 421/802/402 -f 424/803/398 398/804/399 407/805/401 -f 426/806/421 399/807/422 398/804/399 -f 395/808/423 400/809/424 396/810/425 -f 405/811/404 397/812/426 395/808/423 -f 410/813/405 405/811/404 330/814/427 -f 329/815/104 410/813/405 330/814/427 -f 400/809/424 390/816/15 396/810/425 -f 429/817/88 399/807/422 428/818/395 -f 492/798/420 430/819/15 427/799/392 -f 393/820/88 491/791/417 404/821/394 -f 480/777/413 394/822/15 403/778/365 -f 341/823/88 479/775/411 340/824/372 -f 354/679/355 342/825/15 339/680/355 -f 2/624/327 3/627/330 4/625/328 -f 3/627/330 5/630/333 6/628/331 -f 3/627/330 2/624/327 7/629/332 -f 6/628/331 5/630/333 7/629/332 -f 7/629/332 2/624/327 1/626/329 -f 9/632/335 10/826/341 11/633/336 -f 13/635/338 14/827/342 9/636/335 -f 15/638/339 13/635/338 12/637/337 -f 16/640/340 15/638/339 11/639/336 -f 9/642/335 14/828/342 16/640/340 -f 13/643/338 8/829/334 1/644/329 -f 6/646/331 8/830/334 13/635/338 -f 16/640/340 4/831/328 6/647/331 -f 1/644/329 4/832/328 16/648/340 -f 17/649/343 18/833/428 19/650/344 -f 20/651/345 19/650/344 21/652/346 -f 19/650/344 18/833/428 23/654/348 -f 22/653/347 21/652/346 23/654/348 -f 23/654/348 18/833/428 17/649/343 -f 25/656/335 26/834/341 27/657/336 -f 28/659/337 29/673/352 30/660/350 -f 31/662/351 29/673/352 28/659/337 -f 26/664/341 32/674/353 31/665/351 -f 30/667/350 32/674/353 26/664/341 -f 24/669/349 17/676/343 30/670/350 -f 22/672/347 24/835/349 29/673/352 -f 32/674/353 20/836/345 22/675/347 -f 17/676/343 20/837/345 32/677/353 -f 337/678/354 352/685/358 354/679/355 -f 358/681/104 350/689/356 334/682/356 -f 335/684/357 349/838/357 352/685/358 -f 360/686/88 361/690/360 362/687/359 -f 350/689/356 349/838/357 335/684/357 -f 361/690/360 363/692/362 364/691/361 -f 363/692/362 365/839/363 366/693/363 -f 366/693/363 365/839/363 345/694/364 -f 370/696/15 371/700/367 372/697/365 -f 377/699/366 372/697/365 371/700/367 -f 378/701/368 382/704/371 381/702/369 -f 385/703/370 384/840/414 381/702/369 -f 388/705/104 384/840/414 385/703/370 -f 345/694/364 344/841/91 332/707/91 -f 444/708/104 358/681/104 357/683/104 -f 353/710/372 470/714/374 469/711/88 -f 351/713/373 471/716/376 470/714/374 -f 348/715/375 472/718/378 471/716/376 -f 348/715/375 347/720/379 473/717/377 -f 474/719/91 473/717/377 347/720/379 -f 434/722/380 465/732/386 468/723/104 -f 467/725/91 466/729/383 383/726/381 -f 380/728/382 383/726/381 466/729/383 -f 436/731/385 463/842/429 465/732/386 -f 459/733/387 463/842/429 436/731/385 -f 380/728/382 464/730/384 462/735/389 -f 460/737/391 459/733/387 438/734/388 -f 375/736/390 462/735/389 461/739/393 -f 376/740/394 461/739/393 458/741/88 -f 457/743/15 460/737/391 440/738/392 -f 439/745/395 454/749/397 456/746/88 -f 437/748/396 452/751/399 454/749/397 -f 435/750/398 450/753/401 452/751/399 -f 435/750/398 433/755/402 448/752/400 -f 445/754/91 448/752/400 433/755/402 -f 346/757/403 447/761/405 446/758/104 -f 379/760/404 449/843/430 447/761/405 -f 451/762/406 449/843/430 379/760/404 -f 453/764/408 451/762/406 374/763/407 -f 455/766/15 453/764/408 373/765/409 -f 336/768/375 482/773/378 484/769/377 -f 484/769/377 485/844/91 414/771/91 -f 336/768/375 338/774/410 478/772/376 -f 338/774/410 340/824/372 479/775/411 -f 402/776/412 477/783/415 480/777/413 -f 415/779/104 486/845/104 483/780/370 -f 483/780/370 481/846/371 409/782/369 -f 409/782/369 481/846/371 477/783/415 -f 408/784/382 401/790/416 490/785/389 -f 408/784/382 494/786/384 496/787/383 -f 496/787/383 497/847/91 416/789/91 -f 401/790/416 404/821/394 491/791/417 -f 419/792/104 498/848/104 495/793/386 -f 495/793/386 493/849/429 423/795/385 -f 423/795/385 493/849/429 489/796/418 -f 425/797/419 489/796/418 492/798/420 -f 411/800/400 417/850/91 422/801/91 -f 424/803/398 407/805/401 411/800/400 -f 424/803/398 426/806/421 398/804/399 -f 426/806/421 428/818/395 399/807/422 -f 395/808/423 397/812/426 400/809/424 -f 405/811/404 406/851/430 397/812/426 -f 410/813/405 406/851/430 405/811/404 -f 329/815/104 418/852/104 410/813/405 -f 400/809/424 391/853/15 390/816/15 -f 429/817/88 392/854/88 399/807/422 -f 492/798/420 487/855/15 430/819/15 -f 393/820/88 488/856/88 491/791/417 -f 480/777/413 475/857/15 394/822/15 -f 341/823/88 476/858/88 479/775/411 -f 354/679/355 356/859/15 342/825/15 -o Main -v 0.404348 2.344625 -0.169240 -v -0.025414 2.229476 -0.168127 -v -0.025414 2.447085 -0.235523 -v 0.295223 2.532996 -0.236354 -v 0.161965 3.479305 11.476994 -v 0.026115 3.515703 11.476642 -v 0.026115 3.520083 12.578159 -v 0.158830 3.484524 12.578503 -v 0.360992 2.553488 7.419190 -v 0.026117 2.463763 7.420058 -v -0.856289 3.221189 -0.177715 -v -0.806233 2.871109 -0.174330 -v -0.581955 2.963729 7.415224 -v -0.620958 3.236514 7.412587 -v 0.718957 3.518703 -0.180592 -v 0.404349 3.833296 -0.183633 -v 0.360992 3.713472 7.407975 -v 0.606137 3.468339 7.410346 -v -0.025414 3.948445 -0.184746 -v -0.455176 3.833296 -0.183633 -v -0.308757 3.713473 7.407975 -v 0.026117 3.803198 7.407108 -v 0.718957 2.659218 -0.172282 -v 0.606137 2.798622 7.416821 -v -0.785146 2.848658 -0.174113 -v -0.455177 2.344625 -0.169240 -v -0.308757 2.553488 7.419190 -v -0.565872 2.946235 7.415394 -v -0.769785 3.518703 -0.180592 -v -0.553902 3.468339 7.410346 -v 0.791086 3.249524 -0.177989 -v 0.791023 3.004963 -0.175625 -v 0.579132 3.025661 -0.241117 -v 0.583760 3.208122 -0.242881 -v 0.425803 3.342331 -0.916230 -v 0.469526 3.179162 -0.914652 -v 0.300966 3.184552 -0.543207 -v 0.271888 3.293070 -0.544256 -v 0.662341 3.258592 7.412374 -v 0.261414 3.108174 11.480582 -v 0.281334 3.212642 11.479572 -v 0.284214 3.294771 11.478778 -v 0.261414 3.379859 11.477955 -v -0.109735 3.479305 11.476994 -v -0.209184 3.379859 11.477955 -v -0.234384 3.285815 11.478865 -v -0.218685 3.175153 11.479935 -v -0.109735 3.008729 11.481544 -v 0.026115 2.972330 11.481895 -v 0.161965 3.008729 11.481544 -v -0.203755 3.387375 12.579442 -v -0.106601 3.484524 12.578503 -v 0.026115 2.989248 12.583291 -v -0.106601 3.024806 12.582948 -v 0.255984 3.387375 12.579442 -v 0.278259 3.304250 12.580246 -v 0.158830 3.024806 12.582948 -v -0.213038 3.187391 12.581376 -v -0.228374 3.295500 12.580331 -v 0.255984 3.121957 12.582008 -v 0.226939 3.190377 8.484865 -v 0.229205 3.255001 8.484241 -v 0.221033 3.253622 8.507836 -v 0.218858 3.191598 8.508436 -v 0.128710 3.037602 8.509925 -v 0.203814 3.112703 8.509199 -v 0.225277 3.128225 11.396477 -v 0.141101 3.044054 11.397291 -v 0.026117 3.420470 8.506223 -v -0.076477 3.392981 8.506489 -v -0.088871 3.442358 11.393440 -v 0.026115 3.473166 11.393142 -v 0.203814 3.317881 8.507215 -v 0.128710 3.392981 8.506489 -v 0.141101 3.442358 11.393440 -v 0.225277 3.358186 11.394254 -v -0.170612 3.246857 8.507902 -v -0.158757 3.163285 8.508710 -v -0.181089 3.184917 11.395928 -v -0.194377 3.278584 11.395023 -v 0.026117 3.010113 8.510191 -v 0.026115 3.013243 11.397589 -v 0.244576 3.286165 11.394950 -v -0.076477 3.037602 8.509925 -v -0.088871 3.044054 11.397291 -v -0.151581 3.317881 8.507215 -v -0.173046 3.358186 11.394254 -v 0.133012 3.400203 8.482837 -v 0.026117 3.428843 8.482559 -v -0.080779 3.400203 8.482837 -v -0.159031 3.321954 8.483593 -v -0.080779 3.029925 8.486416 -v 0.026117 3.001283 8.486693 -v 0.211264 3.321954 8.483593 -v 0.133012 3.029925 8.486416 -v -0.178861 3.247952 8.484308 -v -0.166508 3.160877 8.485150 -v 0.211264 3.108174 8.485660 -v 0.130800 3.031615 8.264970 -v 0.207433 3.108244 8.264229 -v 0.026117 3.422280 8.261192 -v -0.078566 3.394231 8.261463 -v 0.207433 3.317600 8.262204 -v 0.130800 3.394231 8.261463 -v -0.174619 3.245131 8.262905 -v -0.162522 3.159858 8.263730 -v 0.026117 3.003567 8.265241 -v 0.225003 3.252033 8.262838 -v -0.078566 3.031615 8.264970 -v -0.155200 3.317600 8.262204 -v 0.125120 3.384223 8.243902 -v 0.026117 3.410749 8.243646 -v -0.072887 3.384223 8.243902 -v -0.145362 3.311750 8.244603 -v -0.072887 3.041281 8.247218 -v 0.026117 3.014755 8.247475 -v 0.214212 3.249741 8.245203 -v 0.197596 3.311750 8.244603 -v 0.125120 3.041281 8.247218 -v -0.163728 3.243213 8.245266 -v -0.152287 3.162566 8.246045 -v 0.197596 3.113754 8.246517 -v 0.126247 3.033054 7.598080 -v 0.199547 3.106351 7.597371 -v 0.026117 3.406727 7.594467 -v -0.074013 3.379899 7.594727 -v 0.199547 3.306602 7.595435 -v 0.126247 3.379899 7.594727 -v -0.165888 3.237284 7.596105 -v -0.154317 3.155719 7.596893 -v 0.026117 3.006226 7.598339 -v 0.216353 3.243886 7.596042 -v -0.074013 3.033054 7.598080 -v -0.147313 3.306602 7.595435 -v 0.214230 3.183352 7.596626 -v 0.655241 3.056143 7.414330 -v 0.662640 3.068029 7.414216 -v -0.150892 3.150488 7.596944 -v -0.025414 2.339091 -0.673720 -v 0.347100 2.438901 -0.674685 -v -0.640253 3.186982 -0.242677 -v -0.603200 2.925795 -0.240152 -v 0.529946 3.408951 -0.244823 -v 0.295223 3.643663 -0.247092 -v -0.025414 3.729573 -0.247923 -v -0.346051 3.643663 -0.247092 -v 0.529946 2.767707 -0.238623 -v -0.592235 2.909045 -0.239990 -v -0.580774 3.408952 -0.244823 -v -0.346051 2.532996 -0.236354 -v 0.676943 3.011275 -0.680219 -v 0.688901 3.198697 -0.682031 -v 0.682320 3.223258 -0.682268 -v 0.474129 3.163835 -0.723243 -v 0.469526 3.181010 -0.723409 -v -0.739729 3.198697 -0.682031 -v -0.696682 2.895252 -0.679097 -v 0.619799 3.456579 -0.684524 -v 0.347100 3.729265 -0.687160 -v -0.025414 3.829076 -0.688125 -v -0.397928 3.729265 -0.687160 -v 0.619799 2.711587 -0.677321 -v -0.683942 2.875792 -0.678909 -v -0.670627 3.456579 -0.684524 -v -0.397928 2.438901 -0.674685 -v 0.465767 3.032764 -0.721976 -v 0.465767 3.030915 -0.913219 -v 0.474129 3.161986 -0.914486 -v -0.025414 2.562685 -0.717431 -v 0.235096 2.632485 -0.718106 -v -0.524957 3.163835 -0.723243 -v -0.494852 2.951626 -0.721192 -v 0.425803 3.344180 -0.724987 -v 0.235097 3.534878 -0.726831 -v -0.025414 3.604678 -0.727505 -v -0.285924 3.534878 -0.726831 -v 0.425803 2.823183 -0.719950 -v -0.485943 2.938017 -0.721060 -v -0.476631 3.344180 -0.724987 -v 0.674422 2.998053 -0.680091 -v 0.464004 3.023518 -0.721887 -v -0.285924 2.632485 -0.718106 -v -0.488505 3.299868 -0.724558 -v -0.476631 3.342331 -0.916230 -v -0.488505 3.298019 -0.915802 -v 0.235096 2.630636 -0.909349 -v -0.025414 2.560836 -0.908674 -v -0.028200 2.773328 -0.539231 -v 0.145056 2.819749 -0.539680 -v -0.524957 3.161986 -0.914486 -v -0.494852 2.949777 -0.912435 -v 0.235097 3.533029 -0.918074 -v -0.025414 3.602829 -0.918749 -v -0.285924 3.533029 -0.918074 -v 0.425803 2.821334 -0.911193 -v -0.485943 2.936168 -0.912303 -v -0.285924 2.630636 -0.909349 -v 0.300966 3.137746 -5.384423 -v 0.304027 3.126323 -5.384313 -v 0.180622 3.105078 -5.752636 -v 0.178769 3.111992 -5.752703 -v -0.360427 3.173130 -0.543097 -v -0.340405 3.031997 -0.541732 -v 0.145056 3.419896 -0.545482 -v -0.028200 3.466318 -0.545931 -v -0.201455 3.419896 -0.545482 -v 0.271888 2.946575 -0.540906 -v -0.334480 3.022947 -0.541645 -v -0.328287 3.293070 -0.544256 -v 0.464004 3.021669 -0.913130 -v 0.297293 3.079810 -0.542194 -v -0.201455 2.819749 -0.539680 -v -0.687605 3.393217 -0.683911 -v 0.304027 3.173130 -0.543097 -v -0.125370 3.254456 -5.754081 -v -0.202147 3.177683 -5.753338 -v -0.206927 3.159843 -5.753165 -v -0.210469 3.146626 -5.753037 -v -0.214011 3.133408 -5.752910 -v -0.217553 3.120190 -5.752782 -v -0.220761 3.108217 -5.752666 -v -0.221602 3.105078 -5.752636 -v -0.209482 3.019644 -5.751810 -v -0.205896 3.014165 -5.751757 -v -0.125370 2.891161 -5.750567 -v -0.020490 2.863060 -5.750297 -v 0.084389 2.891161 -5.750567 -v 0.161166 2.967934 -5.751310 -v 0.176545 3.048587 -5.752090 -v 0.177255 3.052310 -5.752126 -v 0.161166 3.177683 -5.753338 -v 0.084389 3.254456 -5.754081 -v -0.020490 3.282557 -5.754352 -v 0.145056 2.772943 -5.380897 -v -0.028200 2.726521 -5.380447 -v -0.340405 2.985191 -5.382949 -v -0.360427 3.126323 -5.384313 -v 0.145056 3.373090 -5.386699 -v 0.271888 3.246264 -5.385472 -v -0.201455 3.373090 -5.386699 -v -0.028200 3.419511 -5.387148 -v 0.271888 2.899769 -5.382123 -v -0.334480 2.976140 -5.382861 -v -0.328287 3.246264 -5.385472 -v 0.297293 3.033004 -5.383410 -v -0.201455 2.772943 -5.380897 -v -0.336184 3.263600 -0.543971 -v 0.298466 3.039153 -5.383471 -v 0.298466 3.085960 -0.542254 -v 0.212113 3.189888 8.245781 -v 0.222783 3.188746 8.263451 -v 0.242138 3.216650 11.395622 -v 0.275445 3.224015 12.581021 -v -0.359037 3.131510 -5.384363 -v -0.336184 3.216794 -5.385188 -v -0.522867 3.169785 -0.914562 -v -0.359037 3.178316 -0.543147 -v -0.736741 3.209849 -0.682138 -v -0.522867 3.171633 -0.723319 -v -0.201455 2.788822 -3.738577 -v -0.334480 2.992019 -3.740541 -v -0.334500 3.252076 -3.741569 -v -0.328287 3.262142 -3.743153 -v 0.300966 3.153625 -3.742104 -v 0.300966 3.166108 -2.450925 -v 0.297293 3.061366 -2.449912 -v 0.297293 3.048883 -3.741091 -v 0.271888 3.262142 -3.743153 -v -0.028200 2.742400 -3.738128 -v 0.271888 2.915648 -3.739803 -v -0.201455 3.388968 -3.744379 -v -0.028200 3.435390 -3.744828 -v 0.145056 3.388968 -3.744379 -v -0.340405 3.001070 -3.740629 -v 0.145056 2.788822 -3.738577 -v 0.145056 2.801305 -2.447398 -v -0.028200 2.754883 -2.446949 -v 0.145056 3.401452 -2.453200 -v 0.271888 3.274626 -2.451974 -v -0.201455 3.401452 -2.453200 -v -0.028200 3.447873 -2.453649 -v 0.271888 2.928131 -2.448624 -v -0.334480 3.004502 -2.449363 -v -0.340405 3.013553 -2.449450 -v -0.328287 3.274626 -2.451974 -v -0.201455 2.801305 -2.447398 -v -0.334500 3.264560 -2.450390 -v -0.359037 3.147388 -3.742043 -v -0.347886 3.172076 -3.771701 -v -0.347886 3.156482 -5.384604 -v -0.353737 3.151288 -5.384554 -v -0.342035 3.241765 -0.543760 -v -0.342035 3.223584 -2.424222 -v -0.342035 3.210553 -3.772073 -v -0.342035 3.194958 -5.384976 -v -0.497303 3.265187 -0.915484 -v -0.700186 3.346269 -0.683457 -v -0.497303 3.267036 -0.724241 -v -0.514898 3.201372 -0.723606 -v -0.514898 3.199523 -0.914849 -v -0.725346 3.252373 -0.682550 -v -0.353737 3.198094 -0.543338 -v -0.359037 3.159872 -2.450865 -v -0.712766 3.299321 -0.683003 -v -0.506101 3.234204 -0.723924 -v -0.506101 3.232355 -0.915167 -v -0.347886 3.203671 -0.543392 -v -0.347886 3.185490 -2.423854 -v -0.330283 3.239839 -4.036386 -v -0.330283 3.455639 -4.038473 -v -0.330283 3.442577 -5.389550 -v -0.330283 3.226777 -5.387465 -v 0.190607 2.026066 -5.584056 -v -0.246987 2.026066 -5.584056 -v -0.232000 2.105978 -6.077040 -v 0.175621 2.105978 -6.077040 -v 0.273904 3.226777 -5.387465 -v 0.273904 3.442577 -5.389550 -v 0.273904 3.455639 -4.038473 -v 0.273904 3.239839 -4.036386 -v -0.321697 3.575348 -1.209314 -v -0.143134 3.576650 -0.930052 -v -0.143134 3.637300 -0.930267 -v -0.321697 3.635997 -1.209528 -v -0.330283 1.706711 -4.021564 -v -0.330283 1.693649 -5.372642 -v -0.330283 1.408763 -5.369888 -v -0.330283 1.454738 -4.298106 -v -0.321697 3.563178 -3.730762 -v -0.321697 3.570713 -2.951427 -v -0.321697 3.631362 -2.951642 -v -0.321697 3.623828 -3.730978 -v 0.273904 3.252129 -2.441601 -v 0.273904 3.467488 -2.443747 -v 0.273904 3.470904 -1.159974 -v 0.273904 3.256656 -1.157677 -v 0.273904 3.242578 -3.753104 -v 0.273904 3.458378 -3.755191 -v 0.273904 3.466133 -2.953055 -v 0.273904 3.250333 -2.950969 -v -0.330283 3.144529 -3.752156 -v -0.330283 1.709450 -3.738282 -v -0.330283 1.717205 -2.936146 -v -0.330283 3.152284 -2.950021 -v 0.273904 1.709450 -3.738282 -v 0.273904 1.717205 -2.936146 -v -0.330283 1.734557 -1.141361 -v 0.273904 1.734557 -1.141361 -v 0.090118 2.663733 -0.868376 -v -0.146497 2.663733 -0.868376 -v 0.298165 1.329196 -1.082963 -v -0.354544 1.329196 -1.082963 -v -0.354544 1.269344 -1.084694 -v 0.298165 1.269344 -1.084694 -v -0.330283 3.154280 -2.440626 -v -0.330283 1.722134 -2.426354 -v -0.330283 3.159312 -1.156634 -v -0.321697 3.608476 -5.318881 -v -0.321697 3.621167 -4.006207 -v -0.330283 3.695073 -4.039322 -v -0.330283 3.682011 -5.390399 -v -0.354544 0.976347 -2.441677 -v 0.298165 0.976347 -2.441677 -v -0.354544 0.965281 -2.983357 -v 0.298165 0.965281 -2.983357 -v 0.298165 0.860108 -2.980030 -v -0.354544 0.860108 -2.980030 -v 0.298165 1.068648 -2.443568 -v -0.354544 1.068648 -2.443568 -v 0.151434 -0.563161 -5.307450 -v -0.387438 -0.380119 -6.075793 -v 0.082453 -0.903583 -5.396180 -v 0.193095 -0.803404 -5.819082 -v 0.234464 1.611982 -4.534523 -v 0.234464 1.612759 -4.454083 -v 0.273904 1.444370 -4.539809 -v 0.273904 1.442717 -4.578357 -v 0.273904 1.706711 -4.021564 -v 0.273904 1.454738 -4.298106 -v 0.273904 1.693649 -5.372642 -v 0.273904 1.408763 -5.369888 -v 0.045572 -0.803404 -5.819082 -v 0.008691 -0.903583 -5.396180 -v -0.243738 -0.288598 -6.459964 -v -0.246513 -0.451829 -6.564517 -v -0.249474 -0.603046 -6.664886 -v -0.249474 -0.703225 -6.241984 -v -0.284789 0.951510 -3.091764 -v -0.207814 -0.563161 -5.307450 -v -0.138832 -0.903583 -5.396180 -v -0.065070 -0.903583 -5.396180 -v 0.044585 -0.451829 -6.564517 -v 0.190134 -0.451829 -6.564517 -v 0.193095 -0.603046 -6.664886 -v 0.045572 -0.603046 -6.664886 -v -0.232000 3.262850 -6.088224 -v -0.232000 3.425689 -6.089799 -v 0.175621 3.425689 -6.089799 -v 0.175621 3.262850 -6.088224 -v -0.246987 3.442819 -5.597754 -v 0.190607 3.442819 -5.597754 -v -0.246987 3.268006 -5.596064 -v 0.190607 3.188580 -5.595296 -v 0.175621 3.188864 -6.087509 -v 0.273904 3.128728 -5.386516 -v 0.090118 3.372483 -0.872028 -v 0.090118 3.472245 -0.872542 -v -0.146497 3.472245 -0.872542 -v -0.146497 3.372483 -0.872028 -v -0.146497 3.327156 -0.871794 -v 0.265317 3.608476 -5.318881 -v 0.273904 3.682011 -5.390399 -v 0.032229 1.408763 -5.369888 -v 0.153067 1.408763 -5.369888 -v 0.169948 0.735733 -5.803853 -v 0.037856 0.735733 -5.803853 -v 0.187359 -0.288598 -6.459964 -v -0.179237 1.454738 -4.298106 -v 0.308184 0.328695 -5.216453 -v 0.139997 0.233605 -4.853300 -v -0.330283 1.424088 -5.012627 -v -0.209446 1.408763 -5.369888 -v -0.226328 0.735733 -5.803853 -v -0.364563 0.423784 -5.579605 -v 0.273904 1.439413 -4.655366 -v 0.122857 1.454738 -4.298106 -v -0.230014 0.518873 -5.942758 -v -0.114424 0.980412 -3.109781 -v 0.171927 0.619351 -5.878399 -v 0.038516 0.619351 -5.878399 -v -0.196376 0.233605 -4.853300 -v 0.173634 0.518873 -5.942758 -v -0.228306 0.619351 -5.878399 -v 0.305337 0.408198 -5.059734 -v 0.138574 0.302622 -4.650402 -v -0.361716 0.513774 -5.469066 -v 0.173634 0.518873 -5.942758 -v 0.039085 0.518873 -5.942758 -v -0.228306 0.619351 -5.878399 -v -0.284789 1.135689 -2.992763 -v -0.230014 0.518873 -5.942758 -v -0.194953 0.302622 -4.650402 -v 0.171927 0.619351 -5.878399 -v 0.302040 0.560031 -5.096963 -v 0.187359 -0.288598 -6.459964 -v 0.043660 -0.288598 -6.459964 -v 0.136925 0.472180 -4.743518 -v -0.358420 0.647882 -5.450408 -v -0.243738 -0.288598 -6.459964 -v -0.226328 0.735733 -5.803853 -v -0.115506 1.151276 -3.032256 -v -0.193305 0.472180 -4.743518 -v 0.265317 3.621167 -4.006207 -v 0.273904 3.695073 -4.039322 -v 0.265317 3.632679 -2.456811 -v 0.265317 3.631362 -2.951642 -v 0.273904 3.705567 -2.953904 -v 0.273904 3.706922 -2.444596 -v 0.086755 3.637300 -0.930267 -v 0.265317 3.635997 -1.209528 -v 0.273904 3.710337 -1.160822 -v 0.090118 3.711678 -0.873391 -v 0.265317 3.623828 -3.730978 -v 0.273904 3.697812 -3.756040 -v -0.321697 3.632679 -2.456811 -v -0.330283 3.710337 -1.160822 -v -0.330283 3.706922 -2.444596 -v -0.146497 3.711678 -0.873391 -v -0.330283 3.705567 -2.953904 -v -0.330283 3.697812 -3.756040 -v 0.273904 3.779082 -4.039882 -v 0.273904 3.781820 -3.756600 -v -0.330283 3.794346 -1.161382 -v -0.330283 3.790930 -2.445156 -v 0.273904 3.766019 -5.390960 -v 0.273904 3.794346 -1.161382 -v 0.090118 3.795687 -0.873952 -v -0.330283 3.789575 -2.954464 -v -0.330283 3.781820 -3.756600 -v 0.273904 3.789575 -2.954464 -v 0.273904 3.790930 -2.445156 -v -0.330283 3.766019 -5.390960 -v -0.146497 3.795687 -0.873952 -v -0.330283 3.779082 -4.039882 -v 0.086755 3.576650 -0.930052 -v -0.321697 3.572029 -2.456596 -v 0.265317 3.563178 -3.730762 -v 0.265317 3.560517 -4.005992 -v 0.265317 3.575348 -1.209314 -v 0.265317 3.572029 -2.456596 -v 0.265317 3.570713 -2.951427 -v 0.265317 3.547827 -5.318666 -v -0.321697 3.547827 -5.318666 -v -0.321697 3.560517 -4.005992 -v -0.330283 3.467488 -2.443747 -v -0.330283 3.470904 -1.159974 -v -0.330283 3.458378 -3.755191 -v -0.330283 3.466133 -2.953055 -v 0.273904 3.789575 -2.954464 -v 0.273904 3.790930 -2.445156 -v 0.273904 3.779082 -4.039882 -v 0.273904 3.781820 -3.756600 -v 0.273904 3.766019 -5.390960 -v -0.330283 3.781820 -3.756600 -v -0.330283 3.789575 -2.954464 -v -0.330283 3.766019 -5.390960 -v -0.330283 3.779082 -4.039882 -v -0.330283 3.790930 -2.445156 -v -0.330283 3.794346 -1.161382 -v 0.273904 3.794346 -1.161382 -v -0.330283 0.979098 -2.912797 -v -0.330283 1.074369 -2.413089 -v 0.273904 1.722134 -2.426354 -v 0.273904 1.314513 -1.153514 -v 0.273904 1.074369 -2.413089 -v 0.273904 0.979098 -2.912797 -v -0.330283 1.314513 -1.153514 -v 0.169948 0.735733 -5.803853 -v 0.193095 -0.603046 -6.664886 -v 0.190134 -0.451829 -6.564517 -v -0.284789 1.330151 -2.942667 -v -0.138832 -0.903583 -5.396180 -v -0.210126 -0.762632 -5.266933 -v -0.117756 1.329624 -3.000926 -v -0.249474 -0.703225 -6.241984 -v -0.249474 -0.603046 -6.664886 -v -0.246513 -0.451829 -6.564517 -v 0.273904 1.424088 -5.012627 -v -0.330283 1.439413 -4.655366 -v -0.249474 -0.803404 -5.819082 -v 0.193095 -0.703225 -6.241984 -v 0.045572 -0.703225 -6.241984 -v -0.101951 -0.703225 -6.241984 -v -0.101951 -0.803404 -5.819082 -v -0.101951 -0.603046 -6.664886 -v -0.392062 -0.555430 -6.131989 -v -0.284789 1.523609 -2.996514 -v -0.100039 -0.288598 -6.459964 -v -0.100964 -0.451829 -6.564517 -v 0.193095 -0.803404 -5.819082 -v -0.095464 0.518873 -5.942758 -v 0.082453 -0.903583 -5.396180 -v -0.094895 0.619351 -5.878399 -v 0.153746 -0.762632 -5.266933 -v -0.094236 0.735733 -5.803853 -v 0.335683 -0.659031 -5.699462 -v -0.088608 1.408763 -5.369888 -v 0.273904 3.159313 -1.156634 -v 0.090118 3.327156 -0.871794 -v -0.330283 3.256656 -1.157677 -v -0.330283 3.128728 -5.386516 -v -0.246987 3.188580 -5.595296 -v 0.190607 3.268006 -5.596064 -v -0.232000 3.188864 -6.087509 -v -0.330283 3.252129 -2.441601 -v -0.330283 3.242578 -3.753104 -v -0.330283 3.250333 -2.950969 -v 0.273904 3.144529 -3.752156 -v 0.273904 3.152284 -2.950021 -v 0.273904 3.154280 -2.440626 -v 0.273904 3.141790 -4.035439 -v -0.330283 3.141790 -4.035439 -v 0.233100 1.888631 -4.550890 -v 0.273904 3.136409 -4.592074 -v 0.273904 3.136791 -4.552498 -v 0.234464 1.886212 -4.456727 -v 0.273904 1.706711 -4.021564 -v 0.273904 1.454738 -4.298106 -v 0.273904 3.141790 -4.035439 -v 0.273904 1.841250 -4.022865 -v 0.273904 1.828188 -5.373942 -v 0.273904 3.128728 -5.386516 -v 0.273904 3.135626 -4.673046 -v 0.234464 1.883843 -4.701743 -v 0.273904 1.693649 -5.372642 -v 0.234464 1.610391 -4.699099 -v 0.273904 1.439333 -4.657226 -v 0.273904 1.408763 -5.369888 -v 0.273904 1.742807 -5.373117 -v 0.234464 1.710306 -4.700065 -v 0.234464 1.712675 -4.455049 -v 0.273904 1.755870 -4.022039 -v 0.331254 1.883843 -4.701743 -v 0.331254 1.710306 -4.700065 -v 0.331254 1.711897 -4.535489 -v 0.329314 1.891838 -4.545410 -v 0.331254 1.886212 -4.456727 -v 0.331254 1.712675 -4.455049 -v 0.234464 1.611019 -4.634068 -v 0.331254 1.610391 -4.699099 -v 0.331254 1.611019 -4.634068 -v 0.331254 1.612759 -4.454083 -v 0.294289 1.971530 -4.579909 -v 0.235999 1.975935 -4.584616 -v 0.331254 1.611982 -4.534523 -v 0.331254 1.710935 -4.635034 -v 0.330367 1.891374 -4.629972 -v 0.234464 1.889147 -4.633514 -v 0.273904 3.135935 -4.641050 -v 0.273904 1.440670 -4.626060 -v 0.422689 1.611982 -4.534523 -v 0.331254 1.300388 -4.531510 -v 0.422689 1.300388 -4.531510 -v 0.422689 1.711897 -4.535489 -v 0.422689 1.611019 -4.634068 -v 0.422689 1.710935 -4.635034 -v 0.331254 1.299426 -4.631055 -v 0.234464 1.299426 -4.631055 -v 0.234464 1.300388 -4.531510 -v 0.422689 1.299426 -4.631055 -v 0.292923 1.970817 -4.597499 -v 0.234464 1.973841 -4.593580 -v 0.304490 2.087529 -6.086900 -v 0.304490 3.424876 -6.092767 -v -0.385685 3.424876 -6.092767 -v -0.385685 2.087529 -6.086900 -v -0.385685 1.875774 -7.043372 -v 0.304490 1.875774 -7.043372 -v 0.304490 3.299155 -13.055437 -v -0.385685 3.299155 -13.055437 -v -0.385685 0.051586 -12.420024 -v -0.385685 0.019905 -12.750216 -v 0.304490 0.019905 -12.750216 -v 0.304490 0.051586 -12.420024 -v 0.304490 0.470741 -11.143966 -v 0.304490 0.911194 -9.875237 -v -0.385685 0.911194 -9.875237 -v -0.385685 0.470741 -11.143966 -v -0.385685 3.361983 -9.577537 -v 0.304490 3.361983 -9.577537 -v -0.385685 3.424876 -6.092767 -v 0.304490 3.424876 -6.092767 -v 0.304490 1.308804 -8.801523 -v 0.304490 1.642280 -7.761399 -v -0.385685 1.642280 -7.761399 -v -0.385685 1.308804 -8.801523 -v 0.577935 1.794459 -12.737568 -v 0.577935 0.846547 -12.590424 -v -0.585645 1.646944 -8.028779 -v -0.585645 1.349062 -8.957884 -v -0.585645 2.044671 -6.533008 -v -0.585645 3.239276 -6.538247 -v -0.585645 3.183095 -9.651071 -v -0.585645 3.126972 -12.757756 -v -0.585645 2.512112 -12.820806 -v -0.585645 1.796385 -12.781429 -v -0.585645 0.831648 -12.631672 -v -0.585645 0.197734 -12.485114 -v -0.585645 0.226034 -12.190164 -v -0.585645 0.600450 -11.050306 -v -0.585645 0.993891 -9.916996 -v -0.585645 1.855517 -7.387390 -v 0.577935 1.852561 -7.437602 -v 0.577935 1.647625 -8.067804 -v 0.577935 1.354939 -8.980706 -v 0.577935 1.005961 -9.923091 -v 0.577935 0.619383 -11.036636 -v 0.577935 0.251496 -12.156615 -v 0.577935 0.223689 -12.446421 -v 0.577935 2.497705 -12.776258 -v 0.577935 3.101842 -12.714309 -v 0.577935 3.156986 -9.661803 -v 0.577935 3.212186 -6.603268 -v 0.577935 2.038415 -6.598119 -v -0.032053 1.094781 -3.724003 -v -0.038611 1.122167 -3.698678 -v -0.284789 1.515775 -4.233112 -v -0.284789 1.321313 -4.283208 -v 0.014587 1.095661 -3.723721 -v -0.284789 1.700950 -4.031070 -v -0.116041 1.658715 -3.772054 -v 0.008028 1.123047 -3.698396 -v -0.284789 1.707290 -3.635175 -v -0.284789 1.705085 -3.772867 -v -0.032053 1.094781 -3.724003 -v -0.284789 1.712767 -3.235150 -v -0.038611 1.122167 -3.698678 -v -0.284789 1.523609 -2.996514 -v -0.040570 1.152858 -3.878815 -v -0.284789 1.330151 -2.942667 -v -0.042336 1.278494 -3.947056 -v -0.284789 1.135689 -2.992763 -v -0.042443 1.187165 -3.770670 -v -0.284789 0.951510 -3.091764 -v -0.044210 1.312802 -3.838912 -v -0.284789 0.931451 -3.627675 -v -0.043276 1.492857 -3.839123 -v -0.284789 0.934137 -4.036023 -v -0.043276 1.491040 -3.952579 -v -0.284789 1.127856 -4.229362 -v 0.234423 1.314280 -4.470789 -v -0.285355 1.314280 -4.470789 -v -0.285355 1.634126 -4.471505 -v 0.234423 1.634126 -4.471505 -v -0.285355 1.752750 -4.467820 -v 0.234423 1.752750 -4.467820 -v -0.285355 1.763648 -3.638703 -v 0.234423 1.763648 -3.638703 -v -0.285355 1.772588 -2.905027 -v 0.234423 1.772588 -2.905027 -v -0.285355 1.667477 -2.901424 -v 0.234423 1.667477 -2.901424 -v -0.285355 1.333338 -2.898680 -v 0.234423 1.333338 -2.898680 -v -0.285355 0.896085 -2.902554 -v 0.234423 0.896085 -2.902554 -v -0.285355 0.896631 -3.015312 -v 0.234423 0.896631 -3.015312 -v -0.285355 0.873620 -3.630098 -v 0.234423 0.873620 -3.630098 -v -0.285355 0.876701 -4.098548 -v 0.234423 0.876701 -4.098548 -v -0.285355 0.847201 -4.575191 -v 0.234423 0.847200 -4.575191 -v 0.233857 1.712767 -3.235150 -v 0.233857 1.707290 -3.635175 -v 0.233857 1.330151 -2.942667 -v 0.233857 1.523608 -2.996514 -v 0.233857 1.515775 -4.233112 -v 0.233857 1.321313 -4.283208 -v 0.233857 1.705085 -3.772867 -v 0.233857 1.702504 -3.934052 -v 0.233857 1.700950 -4.031070 -v 0.233857 0.934137 -4.036023 -v 0.233857 0.931451 -3.627675 -v 0.233857 1.127856 -4.229362 -v 0.233857 1.135689 -2.992763 -v 0.233857 0.951510 -3.091764 -v -0.284789 1.702504 -3.934052 -v -0.116041 1.656134 -3.933240 -v 0.065110 1.658714 -3.772054 -v 0.065110 1.656132 -3.933240 -v -0.058661 1.651579 -3.933167 -v -0.058661 1.654160 -3.771982 -v -0.058661 1.654160 -3.771982 -v -0.058661 1.651579 -3.933167 -v 0.014587 1.095661 -3.723721 -v 0.008028 1.123047 -3.698396 -v 0.006151 1.153709 -3.878275 -v 0.004278 1.188017 -3.770131 -v 0.004385 1.279346 -3.946517 -v 0.002511 1.313654 -3.838373 -v 0.003456 1.491040 -3.952579 -v 0.003456 1.492857 -3.839123 -v 0.007729 1.654159 -3.771982 -v 0.007729 1.651578 -3.933167 -v 0.007729 1.651578 -3.933167 -v 0.007729 1.654159 -3.771982 -v 0.003456 1.492857 -3.839123 -v 0.003456 1.491040 -3.952579 -v 0.002511 1.313654 -3.838373 -v 0.004385 1.279346 -3.946517 -v -0.043276 1.491040 -3.952579 -v -0.043276 1.492857 -3.839123 -v -0.044210 1.312802 -3.838912 -v -0.042443 1.187165 -3.770670 -v 0.004278 1.188017 -3.770131 -v -0.042336 1.278494 -3.947056 -v 0.006151 1.153709 -3.878275 -v 0.008028 1.123047 -3.698396 -v 0.014587 1.095661 -3.723721 -v -0.040570 1.152858 -3.878815 -v -0.038611 1.122167 -3.698678 -v -0.032053 1.094781 -3.724003 -v -0.103188 3.357830 8.539176 -v -0.103188 3.672956 8.536129 -v -0.103188 3.669909 8.221003 -v -0.103188 3.354783 8.224050 -v 0.107425 3.669909 8.221003 -v 0.107425 3.354783 8.224050 -v 0.107425 3.672956 8.536129 -v 0.107425 3.357830 8.539176 -v -0.032984 3.357830 8.539176 -v -0.032984 3.672956 8.536129 -v 0.037220 3.357830 8.539176 -v 0.121946 3.708827 8.298789 -v 0.121946 3.708827 8.298789 -v 0.083971 4.069171 8.313674 -v 0.108349 4.069171 8.313674 -v -0.103665 3.711009 8.524389 -v -0.103665 3.711009 8.524389 -v -0.090068 4.071090 8.512082 -v -0.090068 4.071090 8.512082 -v -0.103665 3.708827 8.298789 -v -0.090068 4.069171 8.313674 -v 0.037220 3.672956 8.536129 -v 0.121946 3.711009 8.524389 -v 0.046743 3.711009 8.524389 -v -0.090068 4.405278 8.288956 -v -0.023929 4.405278 8.288956 -v 0.042210 4.405278 8.288956 -v 0.083971 4.405278 8.288956 -v 0.042210 4.071090 8.512082 -v 0.108349 4.071090 8.512082 -v 0.108349 4.407197 8.487363 -v 0.042210 4.407197 8.487363 -v 0.108349 4.071090 8.512082 -v 0.108349 4.405278 8.288956 -v 0.108349 4.407197 8.487363 -v -0.103665 3.708827 8.298789 -v -0.059739 4.069171 8.313674 -v 0.121946 3.711009 8.524389 -v 0.108349 4.812802 8.249234 -v 0.108349 4.814721 8.447641 -v 0.108349 4.610959 8.467504 -v 0.108349 4.610959 8.467504 -v 0.108349 4.814721 8.447641 -v -0.059739 4.405278 8.288956 -v -0.090068 4.812802 8.249234 -v -0.090068 4.812802 8.249234 -v -0.090068 4.407197 8.487363 -v -0.090068 4.407197 8.487363 -v -0.023929 4.812802 8.249234 -v -0.090068 4.814721 8.447641 -v -0.023929 4.814721 8.447641 -v 0.108349 4.812802 8.249234 -v -0.090068 4.814721 8.447641 -v 0.042210 4.664865 8.473516 -v 0.042210 4.814721 8.447641 -v -0.090068 4.610959 8.467504 -v -0.090068 4.610959 8.467504 -v -0.059739 4.418322 8.157631 -v -0.059739 4.082213 8.182349 -v 0.083971 4.082213 8.182349 -v 0.083971 4.418322 8.157631 -v -0.090068 4.793198 8.155925 -v -0.090068 4.782697 8.105946 -v -0.090068 4.463150 7.849932 -v -0.090068 4.442965 8.003063 -v 0.108349 4.463150 7.849932 -v 0.108349 4.712172 8.049443 -v 0.108349 4.782697 8.105946 -v 0.108349 4.442004 8.010345 -v 0.108349 4.463150 7.849932 -v 0.108349 4.782697 8.105946 -v 0.108349 4.793696 8.158301 -v -0.090068 4.782697 8.105946 -v -0.090068 4.712172 8.049443 -v -0.090068 4.463150 7.849932 -v 0.108349 4.405278 8.288956 -v 0.108349 4.463150 7.849932 -v -0.090068 4.463150 7.849932 -v -0.090068 4.442965 8.003063 -v 0.042210 4.658266 8.043429 -v 0.042210 4.782697 8.105946 -v -0.023929 4.782697 8.105946 -v -0.023929 4.812802 8.249234 -v -0.090068 4.463150 7.849932 -v -0.090068 4.442965 8.003063 -v 0.108349 4.442004 8.010345 -v 0.108349 4.463150 7.849932 -v -0.090068 4.463150 7.849932 -v -0.090068 4.405278 8.288956 -v -0.065027 3.757016 7.321871 -v -0.060844 3.766371 7.510190 -v 0.088251 3.766989 7.521697 -v 0.092221 3.756975 7.324428 -v 0.083737 3.522897 8.173863 -v 0.083737 3.672082 8.172421 -v -0.065455 3.672082 8.172421 -v -0.065455 3.522897 8.173863 -v 0.083737 3.517609 7.626964 -v 0.088711 3.661251 7.628131 -v -0.066596 3.661242 7.625576 -v -0.065455 3.517609 7.626964 -v 0.083737 3.514731 7.329237 -v 0.088711 3.658372 7.330404 -v -0.066596 3.658364 7.327848 -v -0.065455 3.514731 7.329237 -v 0.083737 3.385996 7.628237 -v 0.083737 3.383117 7.330510 -v -0.065455 3.371527 7.330622 -v -0.065455 3.374406 7.628348 -v 0.042210 4.812802 8.249234 -v -0.023929 4.658266 8.043429 -v 0.042210 4.812802 8.249234 -v -0.023929 4.407197 8.487363 -v -0.023929 4.664865 8.473516 -v -0.028461 3.711009 8.524389 -v -0.023929 4.071090 8.512082 -v -0.023929 4.463150 7.849932 -v 0.042210 4.463150 7.849932 -v -0.090068 4.069731 8.308047 -v -0.090068 4.405837 8.283328 -v 0.108349 4.069801 8.307324 -v 0.108349 4.405909 8.282606 -v -0.128788 3.939337 -4.286372 -v -0.128788 3.725225 -4.284302 -v -0.339690 3.725225 -4.284302 -v -0.339690 3.939337 -4.286372 -v 0.085334 3.939337 -4.286372 -v 0.085334 3.725225 -4.284302 -v 0.085334 3.715957 -5.242964 -v 0.085334 3.930068 -5.245033 -v 0.085334 3.941407 -4.072260 -v 0.274737 3.941407 -4.072260 -v 0.274737 3.939337 -4.286372 -v -0.128788 3.941407 -4.072260 -v -0.128788 3.727295 -4.070190 -v -0.128788 3.752047 -1.509983 -v -0.128788 3.966159 -1.512053 -v 0.013960 3.725225 -4.284302 -v 0.085334 3.727295 -4.070190 -v 0.013960 3.727295 -4.070190 -v -0.087317 3.939388 -4.275171 -v -0.057414 3.941407 -4.072260 -v -0.128788 3.968520 -1.267860 -v -0.293372 3.966159 -1.512053 -v -0.293372 3.968520 -1.267860 -v 0.085334 3.752047 -1.509983 -v 0.013960 3.752047 -1.509983 -v -0.057414 3.966159 -1.512053 -v 0.085334 3.966159 -1.512053 -v -0.057414 3.754408 -1.265790 -v -0.057414 3.968520 -1.267860 -v -0.128788 3.754408 -1.265790 -v 0.013960 3.968520 -1.267860 -v 0.085334 3.968520 -1.267860 -v 0.085334 4.334809 -1.271402 -v 0.013960 4.334809 -1.271402 -v 0.085334 3.754408 -1.265790 -v 0.334377 3.754408 -1.265790 -v 0.334377 3.968520 -1.267860 -v 0.013960 3.754408 -1.265790 -v -0.128788 4.490870 -1.497192 -v -0.128788 4.389227 -1.297727 -v -0.128788 4.537484 -1.491777 -v -0.128788 4.332448 -1.515594 -v -0.057414 4.332448 -1.515594 -v 0.085334 4.332448 -1.515594 -v -0.128788 4.334809 -1.271402 -v -0.057414 4.537484 -1.491777 -v -0.057414 4.376855 -1.291742 -v -0.098593 4.547485 -1.579802 -v -0.098593 4.514018 -1.583690 -v 0.085334 4.376855 -1.291742 -v 0.085334 4.490870 -1.497192 -v 0.085334 4.537484 -1.491777 -v 0.003895 4.547485 -1.579802 -v 0.055139 4.547485 -1.579802 -v 0.175042 4.762084 -4.264839 -v 0.043863 4.762084 -4.264839 -v -0.098593 4.400275 -1.596903 -v -0.047349 4.400275 -1.596903 -v 0.055139 4.400275 -1.596903 -v 0.055139 4.514018 -1.583690 -v 0.013960 4.537484 -1.491777 -v 0.175042 4.284624 -4.842155 -v 0.175042 4.293411 -4.398141 -v 0.175042 4.036338 -4.393054 -v 0.175042 4.027551 -4.837068 -v -0.218496 4.762084 -4.264839 -v -0.218496 4.676412 -4.274791 -v -0.218496 4.385243 -4.308614 -v -0.087317 4.385243 -4.308614 -v 0.175042 4.385243 -4.308614 -v 0.175042 4.676412 -4.274791 -v -0.087317 3.929435 -4.839783 -v -0.218496 3.929435 -4.839783 -v -0.218496 3.918185 -5.516152 -v -0.087317 3.918185 -5.516152 -v -0.218496 4.293411 -4.398141 -v -0.218496 4.284624 -4.842155 -v -0.218496 4.027551 -4.837068 -v -0.218496 4.036338 -4.393054 -v -0.218496 3.939388 -4.275171 -v -0.218496 4.365192 -4.846815 -v -0.087317 4.293411 -4.398141 -v -0.218496 4.016302 -5.513437 -v 0.175042 4.016302 -5.513437 -v -0.087317 4.036338 -4.393054 -v -0.218496 4.734344 -5.370099 -v -0.218496 4.842429 -5.370595 -v -0.218496 4.663689 -5.549295 -v -0.218496 4.599157 -5.547852 -v 0.043863 4.842429 -5.370595 -v 0.175042 4.842429 -5.370595 -v 0.175042 4.663689 -5.549295 -v 0.043863 4.663689 -5.549295 -v 0.175042 4.734344 -5.370099 -v 0.175042 4.367011 -5.368414 -v 0.175042 4.379847 -5.542946 -v 0.175042 4.599157 -5.547852 -v 0.043863 4.599157 -5.547852 -v 0.175042 4.736579 -4.882914 -v 0.175042 4.365105 -4.867969 -v 0.043863 4.844664 -4.883410 -v 0.175042 4.844664 -4.883410 -v -0.218496 4.736579 -4.882914 -v -0.218496 4.844664 -4.883410 -v -0.087317 4.367011 -5.368414 -v -0.218496 4.367011 -5.368414 -v -0.218496 4.379847 -5.542946 -v -0.087317 4.379847 -5.542946 -v 0.043863 4.801307 -4.848616 -v 0.175042 4.801307 -4.848616 -v 0.175042 4.702158 -4.848207 -v -0.087317 4.365192 -4.846815 -v -0.218496 4.369246 -4.881228 -v -0.087317 4.369246 -4.881228 -v -0.218496 4.702158 -4.848207 -v -0.218496 4.801307 -4.848616 -v -0.057414 3.725225 -4.284302 -v -0.128788 3.715957 -5.242964 -v -0.057414 3.715957 -5.242964 -v 0.043863 3.939388 -4.275171 -v 0.013960 3.930068 -5.245033 -v -0.128788 3.930068 -5.245033 -v 0.013960 3.709850 -5.865262 -v 0.013960 3.912128 -5.795037 -v 0.085334 3.912128 -5.795037 -v 0.085334 3.709850 -5.865262 -v 0.175042 3.929435 -4.839783 -v 0.175042 3.918185 -5.516152 -v -0.128788 3.912128 -5.795037 -v -0.128788 3.709850 -5.865262 -v -0.057414 3.709850 -5.865262 -v 0.043863 4.365105 -4.867969 -v 0.175042 4.353942 -5.523185 -v 0.043863 4.353942 -5.523185 -v -0.218496 4.353942 -5.523185 -v -0.218496 4.273375 -5.518525 -v -0.218496 3.912346 -5.794299 -v -0.057414 3.912128 -5.795037 -v 0.175042 4.273375 -5.518525 -v 0.043863 4.273375 -5.518525 -v 0.175042 4.294797 -5.661301 -v 0.043863 4.294797 -5.661301 -v 0.175042 3.939388 -4.275171 -v 0.043863 4.016843 -5.754391 -v 0.175042 4.016843 -5.754391 -v 0.175042 3.912346 -5.794299 -v -0.218496 4.016843 -5.754391 -v -0.218496 4.294797 -5.661301 -v -0.087317 4.294797 -5.661301 -v -0.087317 4.016843 -5.754391 -v 0.043863 4.036338 -4.393054 -v -0.087317 4.273375 -5.518525 -v -0.087317 4.353942 -5.523185 -v 0.043863 3.918185 -5.516152 -v 0.013960 3.715957 -5.242964 -v -0.057414 3.930068 -5.245033 -v 0.043863 3.929435 -4.839783 -v -0.087317 4.762084 -4.264839 -v -0.087317 4.801220 -4.869769 -v 0.043863 4.367011 -5.368414 -v -0.087317 4.844664 -4.883410 -v 0.043863 4.379847 -5.542946 -v -0.087317 4.842429 -5.370595 -v -0.087317 4.663689 -5.549295 -v -0.087317 4.599157 -5.547852 -v 0.043863 4.293411 -4.398141 -v 0.043863 4.385243 -4.308614 -v 0.003895 4.400275 -1.596903 -v -0.047349 4.547485 -1.579802 -v 0.013960 4.332448 -1.515594 -v 0.042011 4.595339 -5.296710 -v -0.085465 4.595339 -5.296710 -v 0.013960 4.376855 -1.291742 -v 0.013960 3.966159 -1.512053 -v -0.057414 3.752047 -1.509983 -v -0.057414 4.334809 -1.271402 -v 0.013960 3.941407 -4.072260 -v -0.057414 3.727295 -4.070190 -v -0.086140 4.596731 -5.388300 -v 0.274737 3.725225 -4.284302 -v 0.274737 3.727295 -4.070190 -v -0.339690 3.727295 -4.070190 -v -0.339690 3.941407 -4.072260 -v -0.293372 3.752047 -1.509983 -v -0.293372 3.754408 -1.265790 -v 0.334377 3.752047 -1.509983 -v 0.334377 3.966159 -1.512053 -v -0.020524 4.043039 -5.178573 -v -0.020524 4.040238 -5.468335 -v 0.184378 4.041059 -5.383466 -v -0.020524 4.263888 -5.180708 -v 0.184378 4.261907 -5.385601 -v -0.020524 4.261086 -5.470470 -v 0.269252 4.043039 -5.178573 -v 0.269252 4.263888 -5.180708 -v 0.184378 4.045021 -4.973680 -v 0.184378 4.265869 -4.975815 -v -0.020524 4.045841 -4.888810 -v -0.020524 4.266689 -4.890945 -v -0.225427 4.045021 -4.973680 -v -0.225427 4.265869 -4.975815 -v -0.310300 4.043039 -5.178573 -v -0.310300 4.263888 -5.180708 -v -0.225427 4.041059 -5.383466 -v -0.225427 4.261907 -5.385601 -v 0.042687 4.596731 -5.388300 -v -0.074426 4.640141 -5.380030 -v 0.030972 4.640141 -5.380030 -v -0.073873 4.639002 -5.305097 -v 0.029752 4.654943 -5.320924 -v -0.021181 4.633978 -5.323280 -v 0.024096 4.664785 -5.357850 -v -0.021181 4.638448 -5.363047 -v 0.042850 4.705805 -5.317441 -v 0.042850 4.709779 -5.352792 -v 0.024096 4.754773 -5.347733 -v 0.024096 4.750798 -5.312383 -v -0.021181 4.773410 -5.345638 -v -0.021181 4.777135 -5.307187 -v -0.072114 4.760641 -5.349310 -v -0.066458 4.750798 -5.312383 -v -0.085213 4.709779 -5.352792 -v -0.093211 4.705556 -5.315233 -v -0.066458 4.664785 -5.357850 -v -0.214659 4.417867 -5.192763 -v -0.214119 4.436285 -5.115522 -v -0.274848 4.436007 -5.144247 -v -0.213685 4.486393 -5.053922 -v -0.213445 4.558267 -5.020162 -v -0.349903 4.557643 -5.084703 -v -0.323116 4.485892 -5.105680 -v -0.213445 4.637671 -5.020929 -v -0.213685 4.708880 -5.056073 -v -0.323116 4.708379 -5.107832 -v -0.349903 4.637048 -5.085471 -v -0.214119 4.757788 -5.118630 -v -0.214659 4.774708 -5.196214 -v -0.274848 4.757510 -5.147355 -v -0.384519 4.635627 -5.232394 -v -0.384519 4.556222 -5.231627 -v -0.290254 4.756878 -5.212741 -v -0.350876 4.707240 -5.225655 -v -0.290254 4.435375 -5.209634 -v -0.350876 4.484754 -5.223503 -v -0.248736 4.434864 -5.262445 -v -0.291228 4.555075 -5.350295 -v -0.276063 4.483833 -5.318668 -v -0.276063 4.706320 -5.320819 -v -0.291228 4.634480 -5.351063 -v -0.248736 4.756367 -5.265553 -v -0.181557 4.434860 -5.262915 -v -0.140279 4.555065 -5.351349 -v -0.155011 4.483825 -5.319513 -v -0.155011 4.706312 -5.321664 -v -0.140279 4.634470 -5.352117 -v -0.181557 4.756362 -5.266023 -v -0.576565 3.014771 -5.569995 -v -0.604169 3.016425 -5.679888 -v -0.460427 3.032423 -5.715754 -v -0.432823 3.030769 -5.605861 -v -0.382525 3.158213 -5.733428 -v -0.354921 3.156559 -5.623536 -v -0.429126 3.299072 -5.719602 -v -0.401522 3.297418 -5.609710 -v -0.565138 3.348930 -5.684687 -v -0.537534 3.347276 -5.574795 -v -0.688141 3.270244 -5.654974 -v -0.660537 3.268590 -5.545082 -v -0.705511 3.122265 -5.652839 -v -0.677907 3.120611 -5.542946 -v -0.055919 2.973660 -3.634294 -v 0.087823 2.989658 -3.670160 -v 0.165724 3.115448 -3.687835 -v 0.119123 3.256307 -3.674009 -v -0.016889 3.306165 -3.639094 -v -0.139891 3.227479 -3.609381 -v -0.157262 3.079500 -3.607245 -v -0.601651 3.136804 -5.555968 -v -0.538175 3.070511 -5.572911 -v -0.590771 3.229491 -5.557307 -v -0.513728 3.278776 -5.575917 -v -0.428538 3.247547 -5.597787 -v -0.399349 3.159320 -5.606446 -v -0.448143 3.080532 -5.595376 -v -0.482560 2.999224 -5.332764 -v -0.338818 3.015222 -5.368630 -v -0.260917 3.141012 -5.386305 -v -0.307518 3.281871 -5.372479 -v -0.443529 3.331730 -5.337564 -v -0.566532 3.253043 -5.307851 -v -0.583902 3.105064 -5.305715 -v -0.479087 3.064332 -5.340877 -v -0.389054 3.074353 -5.363341 -v -0.340261 3.153141 -5.374412 -v -0.369449 3.241368 -5.365751 -v -0.454640 3.272597 -5.343883 -v -0.531682 3.223312 -5.325272 -v -0.542562 3.130625 -5.323935 -v -0.363587 3.145624 -3.764716 -v -0.355013 3.102182 -3.763593 -v -0.355013 3.101992 -3.783260 -v -0.363587 3.145434 -3.784383 -v -0.363587 3.150487 -3.261750 -v -0.355013 3.107044 -3.260627 -v -0.355013 3.103132 -3.665258 -v -0.363587 3.146575 -3.666381 -v -0.363587 3.158700 -2.412168 -v -0.355013 3.115258 -2.411045 -v -0.355013 3.114258 -2.514499 -v -0.363587 3.157700 -2.515622 -v -0.353813 3.282961 -2.413369 -v -0.357413 3.255744 -2.413106 -v -0.357413 3.254744 -2.516561 -v -0.353813 3.281961 -2.516824 -v -0.353813 3.274748 -3.262952 -v -0.357413 3.247530 -3.262689 -v -0.357413 3.243618 -3.667320 -v -0.353813 3.270836 -3.667583 -v -0.353813 3.269885 -3.765918 -v -0.357413 3.242667 -3.765655 -v -0.357413 3.242477 -3.785322 -v -0.353813 3.269695 -3.785585 -v -0.353813 3.278354 -2.889888 -v -0.357413 3.251137 -2.889625 -v -0.355013 3.110651 -2.887563 -v -0.363587 3.154094 -2.888686 -v -0.357413 3.255977 -2.389014 -v -0.363587 3.158933 -2.388076 -v -0.353813 3.283194 -2.389277 -v -0.355013 3.115491 -2.386953 -v -0.351350 3.289458 -3.667763 -v -0.351350 3.288507 -3.766098 -v -0.351350 3.300584 -2.517004 -v -0.351350 3.296977 -2.890068 -v -0.351350 3.293370 -3.263132 -v -0.351350 3.301584 -2.413549 -v -0.373501 3.146935 -3.764729 -v -0.373501 3.146745 -3.784396 -v -0.362845 3.095773 -3.783200 -v -0.362845 3.095964 -3.763533 -v -0.373501 3.151798 -3.261763 -v -0.373501 3.147886 -3.666394 -v -0.362845 3.096914 -3.665198 -v -0.362845 3.100826 -3.260567 -v -0.373501 3.160012 -2.412180 -v -0.373501 3.159012 -2.515635 -v -0.362845 3.108040 -2.514439 -v -0.362845 3.109040 -2.410985 -v -0.363727 3.284273 -2.413382 -v -0.363727 3.283272 -2.516836 -v -0.367327 3.256055 -2.516573 -v -0.367327 3.257055 -2.413119 -v -0.363727 3.276059 -3.262964 -v -0.363727 3.272147 -3.667595 -v -0.367327 3.244929 -3.667332 -v -0.367327 3.248841 -3.262701 -v -0.363727 3.271196 -3.765930 -v -0.363727 3.271006 -3.785597 -v -0.367327 3.243788 -3.785334 -v -0.367327 3.243979 -3.765667 -v -0.363727 3.279666 -2.889900 -v -0.367327 3.252448 -2.889637 -v -0.373501 3.155405 -2.888699 -v -0.362845 3.104433 -2.887503 -v -0.367327 3.257288 -2.389027 -v -0.373501 3.160245 -2.388088 -v -0.363727 3.284506 -2.389290 -v -0.362845 3.109273 -2.386893 -v -0.361263 3.290770 -3.667776 -v -0.361263 3.289819 -3.766110 -v -0.361263 3.301895 -2.517016 -v -0.361263 3.298288 -2.890080 -v -0.361263 3.294681 -3.263144 -v -0.361263 3.302895 -2.413562 -v 0.026115 3.520083 12.578159 -v 0.158830 3.484524 12.578503 -v -0.203755 3.387375 12.579442 -v -0.106601 3.484524 12.578503 -v 0.026115 2.989248 12.583291 -v -0.106601 3.024806 12.582948 -v 0.255984 3.387375 12.579442 -v 0.278259 3.304250 12.580246 -v 0.158830 3.024806 12.582948 -v -0.213038 3.187391 12.581376 -v -0.228374 3.295500 12.580331 -v 0.255984 3.121957 12.582008 -v 0.275445 3.224015 12.581021 -v -0.089518 3.454937 12.578789 -v 0.026115 3.485919 12.578489 -v -0.174167 3.370292 12.579607 -v -0.181397 3.199310 12.581261 -v -0.194754 3.293464 12.580350 -v 0.026115 3.023412 12.582961 -v -0.085890 3.053421 12.582671 -v 0.141747 3.054394 12.582662 -v 0.225469 3.138112 12.581852 -v 0.242553 3.227706 12.580986 -v 0.141747 3.454937 12.578789 -v 0.226396 3.370292 12.579607 -v 0.245105 3.300474 12.580282 -v 0.132682 3.422947 11.477539 -v 0.030794 3.450246 11.477275 -v 0.207268 3.144599 11.480230 -v 0.222208 3.222950 11.479473 -v 0.224368 3.284547 11.478877 -v 0.207268 3.348363 11.478260 -v -0.071093 3.422947 11.477539 -v -0.145680 3.348363 11.478260 -v -0.164580 3.277830 11.478942 -v -0.152806 3.194833 11.479744 -v -0.071093 3.070015 11.480951 -v 0.030794 3.042716 11.481215 -v 0.132682 3.070015 11.480951 -v -0.089518 3.454937 12.578789 -v 0.026115 3.485919 12.578489 -v -0.174167 3.370292 12.579607 -v -0.181397 3.199310 12.581261 -v -0.194754 3.293464 12.580350 -v 0.026115 3.023411 12.582961 -v -0.085890 3.053421 12.582671 -v 0.141747 3.054393 12.582662 -v 0.225469 3.138112 12.581852 -v 0.242553 3.227706 12.580986 -v 0.141747 3.454937 12.578789 -v 0.226396 3.370292 12.579607 -v 0.245105 3.300475 12.580282 -v 0.132682 3.422947 11.477539 -v 0.030794 3.450246 11.477275 -v 0.207268 3.144599 11.480230 -v 0.222208 3.222950 11.479473 -v 0.224368 3.284547 11.478877 -v 0.207268 3.348363 11.478260 -v -0.071093 3.422947 11.477539 -v -0.145680 3.348363 11.478260 -v -0.164580 3.277830 11.478942 -v -0.152806 3.194833 11.479744 -v -0.071093 3.070015 11.480951 -v 0.030794 3.042716 11.481215 -v 0.132682 3.070015 11.480951 -v 0.161965 3.479305 11.476994 -v 0.026115 3.515703 11.476642 -v 0.261414 3.108174 11.480582 -v 0.281334 3.212642 11.479572 -v 0.284214 3.294771 11.478778 -v 0.261414 3.379859 11.477955 -v -0.109735 3.479305 11.476994 -v -0.209184 3.379859 11.477955 -v -0.234384 3.285815 11.478865 -v -0.218685 3.175153 11.479935 -v -0.109735 3.008729 11.481544 -v 0.026115 2.972330 11.481895 -v 0.161965 3.008729 11.481544 -v 0.225277 3.128225 11.396477 -v 0.141101 3.044054 11.397291 -v -0.088871 3.442358 11.393440 -v 0.026115 3.473166 11.393142 -v 0.141101 3.442358 11.393440 -v 0.225277 3.358186 11.394254 -v -0.181089 3.184917 11.395928 -v -0.194377 3.278584 11.395023 -v 0.026115 3.013243 11.397589 -v 0.244576 3.286165 11.394950 -v -0.088871 3.044054 11.397291 -v -0.173046 3.358186 11.394254 -v 0.242138 3.216650 11.395622 -v 0.226939 3.190377 8.484865 -v 0.229205 3.255001 8.484241 -v 0.221033 3.253622 8.507836 -v 0.218858 3.191598 8.508436 -v 0.128710 3.037602 8.509925 -v 0.203814 3.112703 8.509199 -v 0.026117 3.420470 8.506223 -v -0.076477 3.392981 8.506489 -v 0.203814 3.317881 8.507215 -v 0.128710 3.392981 8.506489 -v -0.170612 3.246857 8.507902 -v -0.158757 3.163285 8.508710 -v 0.026117 3.010113 8.510191 -v -0.076477 3.037602 8.509925 -v -0.151581 3.317881 8.507215 -v 0.133012 3.400203 8.482837 -v 0.026117 3.428843 8.482559 -v -0.080779 3.400203 8.482837 -v -0.159031 3.321954 8.483593 -v -0.080779 3.029925 8.486416 -v 0.026117 3.001283 8.486693 -v 0.211264 3.321954 8.483593 -v 0.133012 3.029925 8.486416 -v -0.178861 3.247952 8.484308 -v -0.166508 3.160877 8.485150 -v 0.211264 3.108174 8.485660 -v 0.130800 3.031615 8.264970 -v 0.207433 3.108244 8.264229 -v 0.026117 3.422280 8.261192 -v -0.078566 3.394231 8.261463 -v 0.207433 3.317600 8.262204 -v 0.130800 3.394231 8.261463 -v -0.174619 3.245131 8.262905 -v -0.162522 3.159858 8.263730 -v 0.026117 3.003567 8.265241 -v 0.225003 3.252033 8.262838 -v -0.078566 3.031615 8.264970 -v -0.155200 3.317600 8.262204 -v 0.125120 3.384223 8.243902 -v 0.026117 3.410749 8.243646 -v -0.072887 3.384223 8.243902 -v -0.145362 3.311750 8.244603 -v -0.072887 3.041281 8.247218 -v 0.026117 3.014755 8.247475 -v 0.214212 3.249741 8.245203 -v 0.197596 3.311750 8.244603 -v 0.125120 3.041281 8.247218 -v -0.163728 3.243213 8.245266 -v -0.152287 3.162566 8.246045 -v 0.197596 3.113754 8.246517 -v 0.212113 3.189888 8.245781 -v 0.222783 3.188746 8.263451 -v 0.360992 2.553488 7.419190 -v 0.026117 2.463763 7.420058 -v -0.581955 2.963729 7.415224 -v -0.620958 3.236514 7.412587 -v 0.360992 3.713472 7.407975 -v 0.606137 3.468339 7.410346 -v -0.308757 3.713473 7.407975 -v 0.026117 3.803198 7.407108 -v 0.606137 2.798622 7.416821 -v -0.308757 2.553488 7.419190 -v -0.565872 2.946235 7.415394 -v -0.553902 3.468339 7.410346 -v 0.662341 3.258592 7.412374 -v 0.126247 3.033054 7.598080 -v 0.199547 3.106351 7.597371 -v 0.026117 3.406727 7.594467 -v -0.074013 3.379899 7.594727 -v 0.199547 3.306602 7.595435 -v 0.126247 3.379899 7.594727 -v -0.165888 3.237284 7.596105 -v -0.154317 3.155719 7.596893 -v 0.026117 3.006226 7.598339 -v 0.216353 3.243886 7.596042 -v -0.074013 3.033054 7.598080 -v -0.147313 3.306602 7.595435 -v 0.214230 3.183352 7.596626 -v 0.655241 3.056143 7.414330 -v 0.662640 3.068029 7.414216 -v -0.150892 3.150488 7.596944 -v 0.404348 2.344625 -0.169240 -v -0.025414 2.229476 -0.168127 -v -0.025414 2.447085 -0.235523 -v 0.295223 2.532996 -0.236354 -v -0.856289 3.221189 -0.177715 -v -0.806233 2.871109 -0.174330 -v 0.718957 3.518703 -0.180592 -v 0.404349 3.833296 -0.183633 -v -0.025414 3.948445 -0.184746 -v -0.455176 3.833296 -0.183633 -v 0.718957 2.659218 -0.172282 -v -0.785146 2.848658 -0.174113 -v -0.455177 2.344625 -0.169240 -v -0.769785 3.518703 -0.180592 -v 0.791086 3.249524 -0.177989 -v 0.791023 3.004963 -0.175625 -v 0.579132 3.025661 -0.241117 -v 0.583760 3.208122 -0.242881 -v -0.640253 3.186982 -0.242677 -v -0.603200 2.925795 -0.240152 -v 0.529946 3.408951 -0.244823 -v 0.295223 3.643663 -0.247092 -v -0.025414 3.729573 -0.247923 -v -0.346051 3.643663 -0.247092 -v 0.529946 2.767707 -0.238623 -v -0.592235 2.909045 -0.239990 -v -0.580774 3.408952 -0.244823 -v -0.346051 2.532996 -0.236354 -v -0.025414 2.339091 -0.673720 -v 0.347100 2.438901 -0.674685 -v 0.676943 3.011275 -0.680219 -v 0.688901 3.198697 -0.682031 -v 0.682320 3.223258 -0.682268 -v 0.474129 3.163835 -0.723243 -v 0.469526 3.181010 -0.723409 -v -0.739729 3.198697 -0.682031 -v -0.696682 2.895252 -0.679097 -v 0.619799 3.456579 -0.684524 -v 0.347100 3.729265 -0.687160 -v -0.025414 3.829076 -0.688125 -v -0.397928 3.729265 -0.687160 -v 0.619799 2.711587 -0.677321 -v -0.683942 2.875792 -0.678909 -v -0.670627 3.456579 -0.684524 -v -0.397928 2.438901 -0.674685 -v 0.465767 3.032764 -0.721976 -v -0.025414 2.562685 -0.717431 -v 0.235096 2.632485 -0.718106 -v -0.524957 3.163835 -0.723243 -v -0.494852 2.951626 -0.721192 -v 0.425803 3.344180 -0.724987 -v 0.235097 3.534878 -0.726831 -v -0.025414 3.604678 -0.727505 -v -0.285924 3.534878 -0.726831 -v 0.425803 2.823183 -0.719950 -v -0.485943 2.938017 -0.721060 -v -0.476631 3.344180 -0.724987 -v 0.674422 2.998053 -0.680091 -v 0.464004 3.023518 -0.721887 -v -0.285924 2.632485 -0.718106 -v -0.488505 3.299868 -0.724558 -v -0.687605 3.393217 -0.683911 -v -0.736741 3.209849 -0.682138 -v -0.522867 3.171633 -0.723319 -v -0.700186 3.346269 -0.683457 -v -0.497303 3.267036 -0.724241 -v -0.514898 3.201372 -0.723606 -v -0.725346 3.252373 -0.682550 -v -0.712766 3.299321 -0.683003 -v -0.506101 3.234204 -0.723924 -v 0.425803 3.342331 -0.916230 -v 0.469526 3.179162 -0.914652 -v 0.300966 3.184552 -0.543207 -v 0.271888 3.293070 -0.544256 -v 0.465767 3.030915 -0.913219 -v 0.474129 3.161986 -0.914486 -v -0.476631 3.342331 -0.916230 -v -0.488505 3.298019 -0.915802 -v 0.235096 2.630636 -0.909349 -v -0.025414 2.560836 -0.908674 -v -0.028200 2.773328 -0.539231 -v 0.145056 2.819749 -0.539680 -v -0.524957 3.161986 -0.914486 -v -0.494852 2.949777 -0.912435 -v 0.235097 3.533029 -0.918074 -v -0.025414 3.602829 -0.918749 -v -0.285924 3.533029 -0.918074 -v 0.425803 2.821334 -0.911193 -v -0.485943 2.936168 -0.912303 -v -0.285924 2.630636 -0.909349 -v -0.360427 3.173130 -0.543097 -v -0.340405 3.031997 -0.541732 -v 0.145056 3.419896 -0.545482 -v -0.028200 3.466318 -0.545931 -v -0.201455 3.419896 -0.545482 -v 0.271888 2.946575 -0.540906 -v -0.334480 3.022947 -0.541645 -v -0.328287 3.293070 -0.544256 -v 0.464004 3.021669 -0.913130 -v 0.297293 3.079810 -0.542194 -v -0.201455 2.819749 -0.539680 -v 0.304027 3.173130 -0.543097 -v -0.336184 3.263600 -0.543971 -v 0.298466 3.085960 -0.542254 -v -0.522867 3.169785 -0.914562 -v -0.359037 3.178316 -0.543147 -v -0.342035 3.241765 -0.543760 -v -0.497303 3.265187 -0.915484 -v -0.514898 3.199523 -0.914849 -v -0.353737 3.198094 -0.543338 -v -0.506101 3.232355 -0.915167 -v -0.347886 3.203671 -0.543392 -v -0.088064 -0.563161 -5.307450 -v -0.207814 -0.563161 -5.307450 -v 0.139997 0.233605 -4.853300 -v -0.084252 0.233605 -4.853300 -v -0.196376 0.233605 -4.853300 -v 0.136925 0.472180 -4.743518 -v 0.122857 1.454738 -4.298106 -v -0.083228 0.472180 -4.743518 -v -0.193305 0.472180 -4.743518 -v -0.179237 1.454738 -4.298106 -v -0.078539 1.454738 -4.298106 -v 0.153746 -0.762632 -5.266933 -v 0.082453 -0.903583 -5.396180 -v 0.008691 -0.903583 -5.396180 -v -0.088835 -0.762632 -5.266933 -v 0.153067 1.408763 -5.369888 -v 0.169948 0.735733 -5.803853 -v -0.114885 1.502682 -3.027913 -v -0.179237 1.454738 -4.298106 -v -0.193305 0.472180 -4.743518 -v -0.284789 1.712767 -3.235150 -v -0.330283 1.424088 -5.012627 -v -0.209446 1.408763 -5.369888 -v -0.226328 0.735733 -5.803853 -v -0.358420 0.647882 -5.450408 -v 0.273904 1.439413 -4.655366 -v 0.122857 1.454738 -4.298106 -v 0.136925 0.472180 -4.743518 -v 0.302040 0.560031 -5.096963 -v -0.210126 -0.762632 -5.266933 -v -0.138832 -0.903583 -5.396180 -v -0.065070 -0.903583 -5.396180 -v -0.193305 0.472180 -4.743518 -v -0.083228 0.472180 -4.743518 -v 0.136925 0.472180 -4.743518 -v -0.194953 0.302622 -4.650402 -v 0.173634 0.518873 -5.942758 -v -0.196376 0.233605 -4.853300 -v -0.114812 1.677601 -3.247157 -v -0.230014 0.518873 -5.942758 -v -0.364563 0.423784 -5.579605 -v 0.139997 0.233605 -4.853300 -v 0.308184 0.328695 -5.216453 -v 0.187359 -0.288598 -6.459964 -v -0.207814 -0.563161 -5.307450 -v -0.284789 1.705085 -3.772867 -v -0.243738 -0.288598 -6.459964 -v -0.387438 -0.380119 -6.075793 -v 0.151434 -0.563161 -5.307450 -v 0.331058 -0.471640 -5.691622 -v 0.331058 -0.380119 -6.075793 -v -0.083777 0.302622 -4.650402 -v -0.387438 -0.471640 -5.691622 -v 0.138574 0.302622 -4.650402 -v 0.308184 0.423784 -5.579605 -v -0.364563 0.328694 -5.216453 -v -0.196376 0.233605 -4.853300 -v -0.084252 0.233605 -4.853300 -v 0.302040 0.647882 -5.450408 -v -0.358420 0.560031 -5.096963 -v 0.273904 1.424088 -5.012627 -v -0.330283 1.439413 -4.655366 -v 0.139997 0.233605 -4.853300 -v -0.207814 -0.563161 -5.307450 -v -0.284789 1.707290 -3.635175 -v -0.088064 -0.563161 -5.307450 -v -0.116042 1.660913 -3.634511 -v 0.151434 -0.563161 -5.307450 -v -0.116041 1.658715 -3.772054 -v -0.284789 1.700950 -4.031070 -v 0.331058 -0.471640 -5.691622 -v 0.331058 -0.380119 -6.075793 -v 0.335683 -0.555430 -6.131989 -v -0.387438 -0.471640 -5.691622 -v -0.392062 -0.659031 -5.699462 -v 0.308184 0.423784 -5.579605 -v -0.364563 0.328694 -5.216453 -v 0.305337 0.513775 -5.469066 -v -0.361716 0.408198 -5.059734 -v 0.302040 0.647882 -5.450408 -v -0.358420 0.560031 -5.096963 -v -0.249474 -0.803404 -5.819082 -v 0.193095 -0.703225 -6.241984 -v -0.114767 1.666757 -4.017442 -v -0.284789 1.321313 -4.283208 -v -0.284789 1.515775 -4.233112 -v -0.114964 1.495999 -4.200259 -v -0.117773 1.321858 -4.224834 -v 0.151434 -0.563161 -5.307450 -v 0.031685 -0.563161 -5.307450 -v 0.027873 0.233605 -4.853300 -v 0.026849 0.472180 -4.743518 -v 0.022159 1.454738 -4.298106 -v 0.031685 -0.563161 -5.307450 -v 0.032456 -0.762632 -5.266933 -v 0.027873 0.233605 -4.853300 -v 0.027398 0.302622 -4.650402 -v 0.026849 0.472180 -4.743518 -v -0.116145 0.978564 -3.628443 -v -0.284789 0.931451 -3.627675 -v -0.114705 0.967637 -4.021990 -v -0.284789 0.934137 -4.036023 -v -0.115059 1.147580 -4.195626 -v -0.284789 1.127856 -4.229362 -v 0.233857 1.712767 -3.235150 -v 0.233857 1.707290 -3.635175 -v 0.233857 1.330151 -2.942667 -v 0.233857 1.523608 -2.996514 -v 0.233857 1.515775 -4.233112 -v 0.233857 1.321313 -4.283208 -v 0.233857 1.705085 -3.772867 -v 0.233857 1.702504 -3.934052 -v 0.233857 1.700950 -4.031070 -v 0.233857 0.934137 -4.036023 -v 0.233857 0.931451 -3.627675 -v 0.233857 1.127856 -4.229362 -v 0.233857 1.135689 -2.992763 -v 0.233857 0.951510 -3.091764 -v -0.284789 1.702504 -3.934052 -v -0.116041 1.656134 -3.933240 -v 0.065110 1.658714 -3.772054 -v 0.065110 1.656132 -3.933240 -v -0.058661 1.651579 -3.933167 -v -0.058661 1.654160 -3.771982 -v 0.063835 1.666756 -4.017442 -v 0.066841 1.321858 -4.224834 -v 0.064127 1.147580 -4.195626 -v 0.063773 0.967636 -4.021990 -v 0.065213 0.978564 -3.628443 -v 0.063492 0.980412 -3.109781 -v 0.064574 1.151276 -3.032256 -v 0.066824 1.329624 -3.000926 -v 0.063953 1.502682 -3.027913 -v 0.063880 1.677601 -3.247157 -v 0.065110 1.660913 -3.634511 -v 0.064032 1.495999 -4.200259 -v 0.007729 1.651578 -3.933167 -v 0.007729 1.654159 -3.771982 -v -0.576565 3.014771 -5.569995 -v -0.604169 3.016425 -5.679888 -v -0.460427 3.032423 -5.715754 -v -0.432823 3.030769 -5.605861 -v -0.382525 3.158213 -5.733428 -v -0.354921 3.156559 -5.623536 -v -0.429126 3.299072 -5.719602 -v -0.401522 3.297418 -5.609710 -v -0.565138 3.348930 -5.684687 -v -0.537534 3.347276 -5.574795 -v -0.688141 3.270244 -5.654974 -v -0.660537 3.268590 -5.545082 -v -0.705511 3.122265 -5.652839 -v -0.677907 3.120611 -5.542946 -v -0.055919 2.973660 -3.634294 -v 0.087823 2.989658 -3.670160 -v 0.165724 3.115448 -3.687835 -v 0.119123 3.256307 -3.674009 -v -0.016889 3.306165 -3.639094 -v -0.139891 3.227479 -3.609381 -v -0.157262 3.079500 -3.607245 -v -0.601651 3.136804 -5.555968 -v -0.538175 3.070511 -5.572911 -v -0.590771 3.229491 -5.557307 -v -0.513728 3.278776 -5.575917 -v -0.428538 3.247547 -5.597787 -v -0.399349 3.159320 -5.606446 -v -0.448143 3.080532 -5.595376 -v -0.482560 2.999224 -5.332764 -v -0.338818 3.015222 -5.368630 -v -0.260917 3.141012 -5.386305 -v -0.307518 3.281871 -5.372479 -v -0.443529 3.331730 -5.337564 -v -0.566532 3.253043 -5.307851 -v -0.583902 3.105064 -5.305715 -v -0.479087 3.064332 -5.340877 -v -0.389054 3.074353 -5.363341 -v -0.340261 3.153141 -5.374412 -v -0.369449 3.241368 -5.365751 -v -0.454640 3.272597 -5.343883 -v -0.531682 3.223312 -5.325272 -v -0.542562 3.130625 -5.323935 -v -0.020524 4.040238 -5.468335 -v 0.184378 4.041059 -5.383466 -v 0.184378 4.261907 -5.385601 -v -0.020524 4.261086 -5.470470 -v 0.269252 4.043039 -5.178573 -v 0.269252 4.263888 -5.180708 -v 0.184378 4.045021 -4.973680 -v 0.184378 4.265869 -4.975815 -v -0.020524 4.045841 -4.888810 -v -0.020524 4.266689 -4.890945 -v -0.225427 4.045021 -4.973680 -v -0.225427 4.265869 -4.975815 -v -0.310300 4.043039 -5.178573 -v -0.310300 4.263888 -5.180708 -v -0.225427 4.041059 -5.383466 -v -0.225427 4.261907 -5.385601 -v -0.385685 2.610826 -13.126019 -v -0.385685 3.299155 -13.055437 -v 0.304490 3.299155 -13.055437 -v 0.304490 2.610826 -13.126019 -v -0.385685 0.019905 -12.750216 -v 0.304490 0.019905 -12.750216 -v -0.385685 0.729564 -12.914287 -v -0.385685 1.809576 -13.081938 -v 0.304490 1.809576 -13.081938 -v 0.304490 0.729564 -12.914287 -v 0.577935 1.794459 -12.737568 -v 0.577935 0.846547 -12.590424 -v -0.585645 3.126972 -12.757756 -v -0.585645 2.512112 -12.820806 -v -0.585645 1.796385 -12.781429 -v -0.585645 0.831648 -12.631672 -v -0.585645 0.197734 -12.485114 -v 0.577935 0.223689 -12.446421 -v 0.577935 2.497705 -12.776258 -v 0.577935 3.101842 -12.714309 -v -0.585645 3.239276 -6.538247 -v -0.585645 3.183095 -9.651071 -v -0.585645 3.126972 -12.757756 -v 0.577935 3.101842 -12.714309 -v 0.577935 3.156986 -9.661803 -v 0.577935 3.212186 -6.603268 +f 2/566/337 4/567/338 1/568/339 +f 3/569/340 6/570/341 4/567/338 +f 3/569/340 7/571/342 5/572/343 +f 6/570/341 7/571/342 8/573/344 +f 7/571/342 1/568/339 8/573/344 +f 9/574/345 11/575/346 12/576/347 +f 13/577/348 9/578/345 12/579/347 +f 15/580/349 12/579/347 11/581/346 +f 16/582/350 11/581/346 10/583/351 +f 9/584/345 16/582/350 10/583/351 +f 13/585/348 1/586/339 14/587/352 +f 6/588/341 13/577/348 15/580/349 +f 16/582/350 6/589/341 15/580/349 +f 1/586/339 16/590/350 14/587/352 +f 17/591/353 19/592/354 20/593/355 +f 20/593/355 21/594/356 22/595/357 +f 19/592/354 23/596/358 21/594/356 +f 22/595/357 23/596/358 24/597/359 +f 23/596/358 17/591/353 24/597/359 +f 25/598/345 27/599/346 28/600/347 +f 28/601/347 30/602/360 25/603/345 +f 31/604/361 28/601/347 27/605/346 +f 26/606/351 31/607/361 27/608/346 +f 30/609/360 26/606/351 25/268/345 +f 24/610/359 30/611/360 29/612/362 +f 22/613/357 29/614/362 31/604/361 +f 32/615/363 22/616/357 31/607/361 +f 17/617/353 32/618/363 30/611/360 +f 337/619/364 354/620/365 339/621/365 +f 358/622/109 334/623/366 357/624/109 +f 335/625/367 352/626/368 337/619/364 +f 360/565/91 362/627/369 359/472/91 +f 350/628/366 335/625/367 334/623/366 +f 361/629/370 364/630/371 362/627/369 +f 363/631/372 366/632/373 364/630/371 +f 366/632/373 345/633/374 331/634/374 +f 370/564/90 372/635/375 369/467/90 +f 377/636/376 371/637/377 378/638/378 +f 378/638/378 381/639/379 377/636/376 +f 385/640/380 381/639/379 382/641/381 +f 388/642/109 385/640/380 387/643/109 +f 345/633/374 332/644/95 331/634/374 +f 444/303/109 357/624/109 443/471/109 +f 353/645/382 469/560/91 355/451/91 +f 351/646/383 470/647/384 353/645/382 +f 348/648/385 471/649/386 351/646/383 +f 348/648/385 473/650/387 472/651/388 +f 474/652/95 347/653/389 386/654/95 +f 434/655/390 468/656/109 431/657/109 +f 467/658/95 383/659/391 389/660/95 +f 380/661/392 466/662/393 464/663/394 +f 436/664/395 465/665/396 434/655/390 +f 459/666/397 436/664/395 438/667/398 +f 380/661/392 462/668/399 375/669/400 +f 460/670/401 438/667/398 440/671/402 +f 375/669/400 461/672/403 376/673/404 +f 376/673/404 458/559/91 368/448/91 +f 457/558/90 440/671/402 442/446/90 +f 439/674/405 456/557/91 441/442/91 +f 437/675/406 454/676/407 439/674/405 +f 435/677/408 452/678/409 437/675/406 +f 435/677/408 448/679/410 450/680/411 +f 445/681/95 433/682/412 432/683/95 +f 346/684/413 446/685/109 343/686/109 +f 379/687/414 447/688/415 346/684/413 +f 451/689/416 379/687/414 374/690/417 +f 453/691/418 374/690/417 373/692/419 +f 455/556/90 373/692/419 367/440/90 +f 336/693/385 484/694/387 333/393/389 +f 484/694/387 414/392/95 333/393/389 +f 336/693/385 478/695/386 482/696/388 +f 338/697/420 479/698/421 478/695/386 +f 402/699/422 480/700/423 403/701/375 +f 415/702/109 483/703/380 413/704/424 +f 483/703/380 409/705/379 413/704/424 +f 409/705/379 477/706/425 402/699/422 +f 408/707/392 490/708/399 494/709/394 +f 408/707/392 496/710/393 412/320/391 +f 496/710/393 416/319/95 412/320/391 +f 401/711/426 491/712/427 490/708/399 +f 419/713/109 495/714/396 420/715/390 +f 495/714/396 423/716/395 420/715/390 +f 423/716/395 489/717/428 425/718/429 +f 425/718/429 492/719/430 427/720/402 +f 411/721/410 422/385/95 421/386/412 +f 424/722/408 411/721/410 421/386/412 +f 424/722/408 398/723/409 407/724/411 +f 426/725/431 399/726/432 398/723/409 +f 395/727/433 400/728/434 396/729/435 +f 405/730/414 397/731/436 395/727/433 +f 410/732/415 405/730/414 330/733/437 +f 329/734/109 410/732/415 330/733/437 +f 400/728/434 390/234/90 396/729/435 +f 429/231/91 399/726/432 428/735/405 +f 492/719/430 430/228/90 427/720/402 +f 393/222/91 491/712/427 404/736/404 +f 480/700/423 394/216/90 403/701/375 +f 341/213/91 479/698/421 340/737/382 +f 354/620/365 342/29/90 339/621/365 +f 2/566/337 3/569/340 4/567/338 +f 3/569/340 5/572/343 6/570/341 +f 3/569/340 2/566/337 7/571/342 +f 6/570/341 5/572/343 7/571/342 +f 7/571/342 2/566/337 1/568/339 +f 9/574/345 10/263/351 11/575/346 +f 13/577/348 14/738/352 9/578/345 +f 15/580/349 13/577/348 12/579/347 +f 16/582/350 15/580/349 11/581/346 +f 9/584/345 14/739/352 16/582/350 +f 13/585/348 8/740/344 1/586/339 +f 6/588/341 8/741/344 13/577/348 +f 16/582/350 4/742/338 6/589/341 +f 1/586/339 4/743/338 16/590/350 +f 17/591/353 18/744/438 19/592/354 +f 20/593/355 19/592/354 21/594/356 +f 19/592/354 18/744/438 23/596/358 +f 22/595/357 21/594/356 23/596/358 +f 23/596/358 18/744/438 17/591/353 +f 25/598/345 26/414/351 27/599/346 +f 28/601/347 29/614/362 30/602/360 +f 31/604/361 29/614/362 28/601/347 +f 26/606/351 32/615/363 31/607/361 +f 30/609/360 32/615/363 26/606/351 +f 24/610/359 17/617/353 30/611/360 +f 22/613/357 24/745/359 29/614/362 +f 32/615/363 20/746/355 22/616/357 +f 17/617/353 20/747/355 32/618/363 +f 337/619/364 352/626/368 354/620/365 +f 358/622/109 350/628/366 334/623/366 +f 335/625/367 349/748/367 352/626/368 +f 360/565/91 361/629/370 362/627/369 +f 350/628/366 349/748/367 335/625/367 +f 361/629/370 363/631/372 364/630/371 +f 363/631/372 365/749/373 366/632/373 +f 366/632/373 365/749/373 345/633/374 +f 370/564/90 371/637/377 372/635/375 +f 377/636/376 372/635/375 371/637/377 +f 378/638/378 382/641/381 381/639/379 +f 385/640/380 384/750/424 381/639/379 +f 388/642/109 384/750/424 385/640/380 +f 345/633/374 344/32/95 332/644/95 +f 444/303/109 358/622/109 357/624/109 +f 353/645/382 470/647/384 469/560/91 +f 351/646/383 471/649/386 470/647/384 +f 348/648/385 472/651/388 471/649/386 +f 348/648/385 347/653/389 473/650/387 +f 474/652/95 473/650/387 347/653/389 +f 434/655/390 465/665/396 468/656/109 +f 467/658/95 466/662/393 383/659/391 +f 380/661/392 383/659/391 466/662/393 +f 436/664/395 463/751/439 465/665/396 +f 459/666/397 463/751/439 436/664/395 +f 380/661/392 464/663/394 462/668/399 +f 460/670/401 459/666/397 438/667/398 +f 375/669/400 462/668/399 461/672/403 +f 376/673/404 461/672/403 458/559/91 +f 457/558/90 460/670/401 440/671/402 +f 439/674/405 454/676/407 456/557/91 +f 437/675/406 452/678/409 454/676/407 +f 435/677/408 450/680/411 452/678/409 +f 435/677/408 433/682/412 448/679/410 +f 445/681/95 448/679/410 433/682/412 +f 346/684/413 447/688/415 446/685/109 +f 379/687/414 449/752/440 447/688/415 +f 451/689/416 449/752/440 379/687/414 +f 453/691/418 451/689/416 374/690/417 +f 455/556/90 453/691/418 373/692/419 +f 336/693/385 482/696/388 484/694/387 +f 484/694/387 485/753/95 414/392/95 +f 336/693/385 338/697/420 478/695/386 +f 338/697/420 340/737/382 479/698/421 +f 402/699/422 477/706/425 480/700/423 +f 415/702/109 486/754/109 483/703/380 +f 483/703/380 481/755/381 409/705/379 +f 409/705/379 481/755/381 477/706/425 +f 408/707/392 401/711/426 490/708/399 +f 408/707/392 494/709/394 496/710/393 +f 496/710/393 497/756/95 416/319/95 +f 401/711/426 404/736/404 491/712/427 +f 419/713/109 498/757/109 495/714/396 +f 495/714/396 493/758/439 423/716/395 +f 423/716/395 493/758/439 489/717/428 +f 425/718/429 489/717/428 492/719/430 +f 411/721/410 417/759/95 422/385/95 +f 424/722/408 407/724/411 411/721/410 +f 424/722/408 426/725/431 398/723/409 +f 426/725/431 428/735/405 399/726/432 +f 395/727/433 397/731/436 400/728/434 +f 405/730/414 406/760/440 397/731/436 +f 410/732/415 406/760/440 405/730/414 +f 329/734/109 418/761/109 410/732/415 +f 400/728/434 391/232/90 390/234/90 +f 429/231/91 392/230/91 399/726/432 +f 492/719/430 487/226/90 430/228/90 +f 393/222/91 488/221/91 491/712/427 +f 480/700/423 475/214/90 394/216/90 +f 341/213/91 476/212/91 479/698/421 +f 354/620/365 356/27/90 342/29/90 +o main +v -0.202174 1.172312 0.084620 +v 0.012707 1.114738 0.084064 +v 0.012707 1.223542 0.117762 +v -0.147611 1.266498 0.118177 +v -0.080983 1.739653 -5.738497 +v -0.013058 1.757851 -5.738321 +v -0.013058 1.760041 -6.289080 +v -0.079416 1.742262 -6.289251 +v -0.180496 1.276744 -3.709595 +v -0.013059 1.231882 -3.710029 +v 0.428145 1.610595 0.088858 +v 0.403116 1.435555 0.087165 +v 0.290977 1.481865 -3.707612 +v 0.310479 1.618257 -3.706294 +v -0.359479 1.759351 0.090296 +v -0.202174 1.916648 0.091817 +v -0.180496 1.856736 -3.703987 +v -0.303069 1.734170 -3.705173 +v 0.012707 1.974223 0.092373 +v 0.227588 1.916648 0.091817 +v 0.154378 1.856737 -3.703987 +v -0.013059 1.901599 -3.703554 +v -0.359479 1.329609 0.086141 +v -0.303069 1.399311 -3.708410 +v 0.392573 1.424329 0.087057 +v 0.227589 1.172312 0.084620 +v 0.154378 1.276744 -3.709595 +v 0.282936 1.473118 -3.707697 +v 0.384892 1.759351 0.090296 +v 0.276951 1.734170 -3.705173 +v -0.395543 1.624762 0.088995 +v -0.395512 1.502481 0.087813 +v -0.289566 1.512830 0.120559 +v -0.291880 1.604061 0.121441 +v -0.212901 1.671165 0.458115 +v -0.234763 1.589581 0.457326 +v -0.150483 1.592276 0.271604 +v -0.135944 1.646535 0.272128 +v -0.331171 1.629296 -3.706187 +v -0.130708 1.554088 -5.740291 +v -0.140668 1.606321 -5.739786 +v -0.142108 1.647385 -5.739389 +v -0.130708 1.689929 -5.738977 +v 0.054867 1.739653 -5.738497 +v 0.104592 1.689929 -5.738977 +v 0.117192 1.642908 -5.739432 +v 0.109342 1.587577 -5.739967 +v 0.054867 1.504364 -5.740772 +v -0.013058 1.486166 -5.740948 +v -0.080983 1.504364 -5.740772 +v 0.101877 1.693688 -6.289721 +v 0.053300 1.742262 -6.289251 +v -0.013058 1.494624 -6.291646 +v 0.053300 1.512403 -6.291474 +v -0.127993 1.693688 -6.289721 +v -0.139130 1.652125 -6.290123 +v -0.079416 1.512403 -6.291474 +v 0.106518 1.593696 -6.290688 +v 0.114186 1.647750 -6.290165 +v -0.127993 1.560979 -6.291004 +v -0.113470 1.595189 -4.242433 +v -0.114603 1.627501 -4.242120 +v -0.110517 1.626811 -4.253918 +v -0.109429 1.595799 -4.254218 +v -0.064355 1.518801 -4.254962 +v -0.101907 1.556352 -4.254600 +v -0.112639 1.564113 -5.698238 +v -0.070551 1.522027 -5.698646 +v -0.013059 1.710235 -4.253111 +v 0.038238 1.696491 -4.253244 +v 0.044435 1.721179 -5.696720 +v -0.013058 1.736583 -5.696571 +v -0.101907 1.658941 -4.253607 +v -0.064355 1.696491 -4.253244 +v -0.070551 1.721179 -5.696720 +v -0.112639 1.679093 -5.697127 +v 0.085306 1.623429 -4.253951 +v 0.079378 1.581643 -4.254355 +v 0.090544 1.592458 -5.697964 +v 0.097188 1.639292 -5.697512 +v -0.013059 1.505057 -4.255095 +v -0.013058 1.506621 -5.698794 +v -0.122289 1.643082 -5.697475 +v 0.038238 1.518801 -4.254962 +v 0.044435 1.522027 -5.698646 +v 0.075790 1.658941 -4.253607 +v 0.086522 1.679093 -5.697127 +v -0.066506 1.700102 -4.241418 +v -0.013059 1.714422 -4.241280 +v 0.040389 1.700102 -4.241418 +v 0.079515 1.660977 -4.241796 +v 0.040389 1.514963 -4.243208 +v -0.013059 1.500642 -4.243347 +v -0.105632 1.660977 -4.241796 +v -0.066506 1.514963 -4.243208 +v 0.089430 1.623976 -4.242154 +v 0.083254 1.580439 -4.242575 +v -0.105632 1.554087 -4.242830 +v -0.065400 1.515808 -4.132485 +v -0.103717 1.554122 -4.132114 +v -0.013059 1.711140 -4.130596 +v 0.039283 1.697116 -4.130732 +v -0.103717 1.658800 -4.131102 +v -0.065400 1.697116 -4.130732 +v 0.087309 1.622566 -4.131453 +v 0.081261 1.579929 -4.131865 +v -0.013059 1.501784 -4.132620 +v -0.112502 1.626017 -4.131419 +v 0.039283 1.515808 -4.132485 +v 0.077600 1.658800 -4.131102 +v -0.062560 1.692112 -4.121951 +v -0.013059 1.705375 -4.121823 +v 0.036443 1.692112 -4.121951 +v 0.072681 1.655875 -4.122302 +v 0.036443 1.520641 -4.123609 +v -0.013059 1.507378 -4.123737 +v -0.107106 1.624871 -4.122602 +v -0.098798 1.655875 -4.122302 +v -0.062560 1.520641 -4.123609 +v 0.081864 1.621607 -4.122633 +v 0.076143 1.581283 -4.123023 +v -0.098798 1.556877 -4.123259 +v -0.063124 1.516527 -3.799040 +v -0.099774 1.553176 -3.798685 +v -0.013059 1.703364 -3.797233 +v 0.037006 1.689950 -3.797363 +v -0.099774 1.653301 -3.797717 +v -0.063124 1.689950 -3.797363 +v 0.082944 1.618642 -3.798053 +v 0.077158 1.577860 -3.798446 +v -0.013059 1.503113 -3.799170 +v -0.108177 1.621943 -3.798021 +v 0.037006 1.516527 -3.799040 +v 0.073656 1.653301 -3.797718 +v -0.107115 1.591676 -3.798313 +v -0.327621 1.528072 -3.707165 +v -0.331320 1.534015 -3.707108 +v 0.075446 1.575244 -3.798472 +v 0.012707 1.169546 0.336860 +v -0.173550 1.219450 0.337343 +v 0.320127 1.593491 0.121339 +v 0.301600 1.462898 0.120076 +v -0.264973 1.704476 0.122412 +v -0.147611 1.821831 0.123546 +v 0.012707 1.864787 0.123962 +v 0.173026 1.821831 0.123546 +v -0.264973 1.383854 0.119312 +v 0.296118 1.454522 0.119995 +v 0.290387 1.704476 0.122412 +v 0.173026 1.266498 0.118177 +v -0.338471 1.505638 0.340110 +v -0.344450 1.599349 0.341016 +v -0.341160 1.611629 0.341134 +v -0.237064 1.581918 0.361622 +v -0.234763 1.590505 0.361705 +v 0.369865 1.599349 0.341016 +v 0.348341 1.447626 0.339549 +v -0.309899 1.728289 0.342262 +v -0.173550 1.864632 0.343580 +v 0.012707 1.914538 0.344063 +v 0.198964 1.864632 0.343580 +v -0.309899 1.355793 0.338661 +v 0.341971 1.437896 0.339455 +v 0.335314 1.728289 0.342262 +v 0.198964 1.219450 0.337343 +v -0.232883 1.516382 0.360988 +v -0.232883 1.515458 0.456610 +v -0.237064 1.580993 0.457243 +v 0.012707 1.281343 0.358716 +v -0.117548 1.316242 0.359053 +v 0.262479 1.581918 0.361622 +v 0.247426 1.475813 0.360596 +v -0.212901 1.672090 0.362494 +v -0.117548 1.767439 0.363416 +v 0.012707 1.802339 0.363753 +v 0.142962 1.767439 0.363416 +v -0.212901 1.411592 0.359975 +v 0.242972 1.469008 0.360530 +v 0.238316 1.672090 0.362494 +v -0.337211 1.499027 0.340046 +v -0.232002 1.511759 0.360944 +v 0.142962 1.316242 0.359053 +v 0.244253 1.649934 0.362279 +v 0.238316 1.671165 0.458115 +v 0.244253 1.649009 0.457901 +v -0.117548 1.315318 0.454675 +v 0.012707 1.280418 0.454337 +v 0.014100 1.386664 0.269616 +v -0.072528 1.409875 0.269840 +v 0.262479 1.580993 0.457243 +v 0.247426 1.474888 0.456218 +v -0.117548 1.766515 0.459037 +v 0.012707 1.801414 0.459375 +v 0.142962 1.766515 0.459037 +v -0.212901 1.410667 0.455597 +v 0.242972 1.468084 0.456152 +v 0.142962 1.315318 0.454675 +v -0.150483 1.568873 2.692212 +v -0.152013 1.563161 2.692157 +v -0.090311 1.552539 2.876318 +v -0.089384 1.555996 2.876352 +v 0.180214 1.586565 0.271549 +v 0.170203 1.515998 0.270866 +v -0.072528 1.709948 0.272741 +v 0.014100 1.733159 0.272966 +v 0.100728 1.709948 0.272741 +v -0.135944 1.473287 0.270453 +v 0.167240 1.511474 0.270823 +v 0.164144 1.646535 0.272128 +v -0.232002 1.510834 0.456565 +v -0.148646 1.539905 0.271097 +v 0.100728 1.409875 0.269840 +v 0.343803 1.696609 0.341956 +v -0.152013 1.586565 0.271549 +v 0.062685 1.627228 2.877040 +v 0.101074 1.588841 2.876669 +v 0.103464 1.579921 2.876582 +v 0.105235 1.573313 2.876518 +v 0.107006 1.566704 2.876455 +v 0.108777 1.560095 2.876391 +v 0.110381 1.554108 2.876333 +v 0.110801 1.552539 2.876318 +v 0.104741 1.509822 2.875905 +v 0.102948 1.507082 2.875879 +v 0.062685 1.445580 2.875283 +v 0.010245 1.431530 2.875149 +v -0.042194 1.445580 2.875283 +v -0.080583 1.483967 2.875655 +v -0.088272 1.524293 2.876045 +v -0.088627 1.526155 2.876063 +v -0.080583 1.588841 2.876669 +v -0.042194 1.627228 2.877041 +v 0.010245 1.641278 2.877176 +v -0.072528 1.386471 2.690449 +v 0.014100 1.363260 2.690223 +v 0.170203 1.492595 2.691474 +v 0.180214 1.563161 2.692157 +v -0.072528 1.686545 2.693350 +v -0.135944 1.623132 2.692736 +v 0.100728 1.686545 2.693350 +v 0.014100 1.709755 2.693574 +v -0.135944 1.449884 2.691062 +v 0.167240 1.488070 2.691431 +v 0.164144 1.623132 2.692736 +v -0.148646 1.516502 2.691705 +v 0.100728 1.386471 2.690449 +v 0.168092 1.631800 0.271986 +v -0.149233 1.519576 2.691736 +v -0.149233 1.542980 0.271127 +v -0.106057 1.594944 -4.122890 +v -0.111392 1.594373 -4.131725 +v -0.121069 1.608325 -5.697811 +v -0.137723 1.612007 -6.290511 +v 0.179519 1.565755 2.692182 +v 0.168092 1.608397 2.692594 +v 0.261434 1.584893 0.457281 +v 0.179519 1.589158 0.271574 +v 0.368371 1.604925 0.341069 +v 0.261434 1.585817 0.361660 +v 0.100728 1.394411 1.869289 +v 0.167240 1.496009 1.870271 +v 0.167250 1.626038 1.870785 +v 0.164144 1.631071 1.871577 +v -0.150483 1.576812 1.871052 +v -0.150483 1.583054 1.225463 +v -0.148646 1.530683 1.224956 +v -0.148646 1.524441 1.870546 +v -0.135944 1.631071 1.871577 +v 0.014100 1.371200 1.869064 +v -0.135944 1.457824 1.869902 +v 0.100728 1.694484 1.872190 +v 0.014100 1.717695 1.872414 +v -0.072528 1.694484 1.872190 +v 0.170203 1.500535 1.870315 +v -0.072528 1.394411 1.869289 +v -0.072528 1.400652 1.223699 +v 0.014100 1.377441 1.223475 +v -0.072528 1.700726 1.226600 +v -0.135944 1.637313 1.225987 +v 0.100728 1.700726 1.226600 +v 0.014100 1.723936 1.226825 +v -0.135944 1.464065 1.224312 +v 0.167240 1.502251 1.224682 +v 0.170203 1.506776 1.224725 +v 0.164144 1.637313 1.225987 +v 0.100728 1.400652 1.223699 +v 0.167250 1.632280 1.225195 +v 0.179519 1.573694 1.871022 +v 0.173943 1.586038 1.885851 +v 0.173943 1.578241 2.692302 +v 0.176869 1.575644 2.692277 +v 0.171018 1.620883 0.271880 +v 0.171018 1.611792 1.212111 +v 0.171018 1.605276 1.886037 +v 0.171018 1.597479 2.692488 +v 0.248652 1.632594 0.457742 +v 0.350093 1.673134 0.341729 +v 0.248652 1.633518 0.362121 +v 0.257449 1.600686 0.361803 +v 0.257449 1.599761 0.457425 +v 0.362673 1.626186 0.341275 +v 0.176869 1.599047 0.271669 +v 0.179519 1.579936 1.225433 +v 0.356383 1.649660 0.341502 +v 0.253051 1.617102 0.361962 +v 0.253051 1.616178 0.457584 +v 0.173943 1.601835 0.271696 +v 0.173943 1.592745 1.211927 +v 0.165142 1.619919 2.018193 +v 0.165142 1.727819 2.019237 +v 0.165142 1.721288 2.694775 +v 0.165142 1.613388 2.693733 +v -0.095303 1.013033 2.792028 +v 0.123494 1.013033 2.792028 +v 0.116000 1.052989 3.038520 +v -0.087810 1.052989 3.038520 +v -0.136952 1.613388 2.693733 +v -0.136952 1.721288 2.694775 +v -0.136952 1.727819 2.019237 +v -0.136952 1.619919 2.018193 +v 0.160849 1.787674 0.604657 +v 0.071567 1.788325 0.465026 +v 0.071567 1.818650 0.465134 +v 0.160849 1.817999 0.604764 +v 0.165142 0.853355 2.010782 +v 0.165142 0.846824 2.686321 +v 0.165142 0.704381 2.684944 +v 0.165142 0.727369 2.149053 +v 0.160849 1.781589 1.865381 +v 0.160849 1.785356 1.475714 +v 0.160849 1.815681 1.475821 +v 0.160849 1.811914 1.865489 +v -0.136952 1.626064 1.220801 +v -0.136952 1.733744 1.221874 +v -0.136952 1.735452 0.579987 +v -0.136952 1.628328 0.578839 +v -0.136952 1.621289 1.876552 +v -0.136952 1.729189 1.877596 +v -0.136952 1.733066 1.476528 +v -0.136952 1.625166 1.475485 +v 0.165142 1.572264 1.876078 +v 0.165142 0.854725 1.869141 +v 0.165142 0.858602 1.468073 +v 0.165142 1.576142 1.475011 +v -0.136952 0.854725 1.869141 +v -0.136952 0.858602 1.468073 +v 0.165142 0.867278 0.570681 +v -0.136952 0.867278 0.570681 +v -0.045059 1.331867 0.434188 +v 0.073249 1.331867 0.434188 +v -0.149082 0.664598 0.541482 +v 0.177272 0.664598 0.541482 +v 0.177272 0.634672 0.542347 +v -0.149082 0.634672 0.542347 +v 0.165142 1.577140 1.220313 +v 0.165142 0.861067 1.213177 +v 0.165142 1.579656 0.578317 +v 0.160849 1.804238 2.659441 +v 0.160849 1.810583 2.003104 +v 0.165142 1.847536 2.019661 +v 0.165142 1.841005 2.695200 +v 0.177272 0.488173 1.220839 +v -0.149082 0.488173 1.220839 +v 0.177272 0.482640 1.491678 +v -0.149082 0.482640 1.491678 +v -0.149082 0.430054 1.490015 +v 0.177272 0.430054 1.490015 +v -0.149082 0.534324 1.221784 +v 0.177272 0.534324 1.221784 +v -0.075717 -0.281581 2.653725 +v 0.193719 -0.190060 3.037896 +v -0.041226 -0.451792 2.698090 +v -0.096547 -0.401702 2.909541 +v -0.117232 0.805991 2.267262 +v -0.117232 0.806379 2.227041 +v -0.136952 0.722185 2.269905 +v -0.136952 0.721358 2.289179 +v -0.136952 0.853355 2.010782 +v -0.136952 0.727369 2.149053 +v -0.136952 0.846824 2.686321 +v -0.136952 0.704381 2.684944 +v -0.022786 -0.401702 2.909541 +v -0.004345 -0.451792 2.698090 +v 0.121869 -0.144299 3.229982 +v 0.123257 -0.225915 3.282259 +v 0.124737 -0.301523 3.332443 +v 0.124737 -0.351613 3.120992 +v 0.142395 0.475755 1.545882 +v 0.103907 -0.281581 2.653725 +v 0.069416 -0.451792 2.698090 +v 0.032535 -0.451792 2.698090 +v -0.022292 -0.225915 3.282259 +v -0.095067 -0.225915 3.282259 +v -0.096547 -0.301523 3.332443 +v -0.022786 -0.301523 3.332443 +v 0.116000 1.631425 3.044112 +v 0.116000 1.712844 3.044899 +v -0.087810 1.712844 3.044900 +v -0.087810 1.631425 3.044112 +v 0.123494 1.721409 2.798877 +v -0.095303 1.721409 2.798877 +v 0.123494 1.634003 2.798032 +v -0.095303 1.594290 2.797648 +v -0.087810 1.594432 3.043755 +v -0.136952 1.564364 2.693258 +v -0.045059 1.686242 0.436014 +v -0.045059 1.736122 0.436271 +v 0.073249 1.736122 0.436271 +v 0.073249 1.686242 0.436014 +v 0.073249 1.663578 0.435897 +v -0.132658 1.804238 2.659441 +v -0.136952 1.841005 2.695200 +v -0.016114 0.704381 2.684944 +v -0.076533 0.704381 2.684944 +v -0.084974 0.367866 2.901927 +v -0.018928 0.367866 2.901927 +v -0.093679 -0.144299 3.229982 +v 0.089619 0.727369 2.149053 +v -0.154092 0.164347 2.608227 +v -0.069998 0.116802 2.426650 +v 0.165142 0.712044 2.506314 +v 0.104723 0.704381 2.684944 +v 0.113164 0.367866 2.901927 +v 0.182282 0.211892 2.789803 +v -0.136952 0.719706 2.327683 +v -0.061428 0.727369 2.149053 +v 0.115007 0.259436 2.971379 +v 0.057212 0.490206 1.554891 +v -0.085963 0.309675 2.939199 +v -0.019258 0.309675 2.939199 +v 0.098188 0.116802 2.426650 +v -0.086817 0.259436 2.971379 +v 0.114153 0.309675 2.939199 +v -0.152668 0.204099 2.529867 +v -0.069287 0.151311 2.325201 +v 0.180858 0.256887 2.734533 +v -0.086817 0.259436 2.971379 +v -0.019542 0.259436 2.971379 +v 0.114153 0.309675 2.939199 +v 0.142395 0.567844 1.496382 +v 0.115007 0.259436 2.971379 +v 0.097477 0.151311 2.325201 +v -0.085963 0.309675 2.939199 +v -0.151020 0.280015 2.548481 +v -0.093679 -0.144299 3.229982 +v -0.021830 -0.144299 3.229982 +v -0.068462 0.236090 2.371759 +v 0.179210 0.323941 2.725204 +v 0.121869 -0.144299 3.229982 +v 0.113164 0.367866 2.901927 +v 0.057753 0.575638 1.516128 +v 0.096653 0.236090 2.371759 +v -0.132658 1.810583 2.003104 +v -0.136952 1.847536 2.019661 +v -0.132658 1.816339 1.228406 +v -0.132658 1.815681 1.475821 +v -0.136952 1.852783 1.476952 +v -0.136952 1.853461 1.222298 +v -0.043377 1.818650 0.465134 +v -0.132658 1.817999 0.604764 +v -0.136952 1.855168 0.580411 +v -0.045059 1.855839 0.436696 +v -0.132658 1.811914 1.865489 +v -0.136952 1.848906 1.878020 +v 0.160849 1.816339 1.228406 +v 0.165142 1.855168 0.580411 +v 0.165142 1.853461 1.222298 +v 0.073249 1.855839 0.436696 +v 0.165142 1.852783 1.476952 +v 0.165142 1.848906 1.878020 +v -0.136952 1.889541 2.019941 +v -0.136952 1.890910 1.878300 +v 0.165142 1.897173 0.580691 +v 0.165142 1.895465 1.222578 +v -0.136952 1.883009 2.695480 +v -0.136952 1.897173 0.580691 +v -0.045059 1.897843 0.436976 +v 0.165142 1.894787 1.477232 +v 0.165142 1.890910 1.878300 +v -0.136952 1.894787 1.477232 +v -0.136952 1.895465 1.222578 +v 0.165142 1.883009 2.695480 +v 0.073249 1.897843 0.436976 +v 0.165142 1.889541 2.019941 +v -0.043377 1.788325 0.465026 +v 0.160849 1.786014 1.228298 +v -0.132658 1.781589 1.865381 +v -0.132658 1.780258 2.002996 +v -0.132658 1.787674 0.604657 +v -0.132658 1.786014 1.228298 +v -0.132658 1.785356 1.475714 +v -0.132658 1.773913 2.659333 +v 0.160849 1.773913 2.659333 +v 0.160849 1.780258 2.002996 +v 0.165142 1.733744 1.221874 +v 0.165142 1.735452 0.579987 +v 0.165142 1.729189 1.877596 +v 0.165142 1.733066 1.476528 +v -0.136952 1.894787 1.477232 +v -0.136952 1.895465 1.222578 +v -0.136952 1.889541 2.019941 +v -0.136952 1.890910 1.878300 +v -0.136952 1.883009 2.695480 +v 0.165142 1.890910 1.878300 +v 0.165142 1.894787 1.477232 +v 0.165142 1.883009 2.695480 +v 0.165142 1.889541 2.019941 +v 0.165142 1.895465 1.222578 +v 0.165142 1.897173 0.580691 +v -0.136952 1.897173 0.580691 +v 0.165142 0.489549 1.456398 +v 0.165142 0.537184 1.206545 +v -0.136952 0.861067 1.213177 +v -0.136952 0.657256 0.576757 +v -0.136952 0.537184 1.206545 +v -0.136952 0.489549 1.456398 +v 0.165142 0.657256 0.576757 +v -0.084974 0.367866 2.901927 +v -0.096547 -0.301523 3.332443 +v -0.095067 -0.225915 3.282259 +v 0.142395 0.665075 1.471334 +v 0.069416 -0.451792 2.698090 +v 0.105063 -0.381316 2.633466 +v 0.058878 0.664812 1.500463 +v 0.124737 -0.351613 3.120992 +v 0.124737 -0.301523 3.332443 +v 0.123257 -0.225915 3.282259 +v -0.136952 0.712044 2.506314 +v 0.165142 0.719706 2.327683 +v 0.124737 -0.401702 2.909541 +v -0.096547 -0.351613 3.120992 +v -0.022786 -0.351613 3.120992 +v 0.050976 -0.351613 3.120992 +v 0.050976 -0.401702 2.909541 +v 0.050976 -0.301523 3.332443 +v 0.196031 -0.277715 3.065995 +v 0.142395 0.761804 1.498257 +v 0.050020 -0.144299 3.229982 +v 0.050482 -0.225915 3.282259 +v -0.096547 -0.401702 2.909541 +v 0.047732 0.259436 2.971379 +v -0.041226 -0.451792 2.698090 +v 0.047448 0.309675 2.939199 +v -0.076873 -0.381316 2.633466 +v 0.047118 0.367866 2.901927 +v -0.167841 -0.329516 2.849731 +v 0.044304 0.704381 2.684944 +v -0.136952 1.579656 0.578317 +v -0.045059 1.663578 0.435897 +v 0.165142 1.628328 0.578839 +v 0.165142 1.564364 2.693258 +v 0.123494 1.594290 2.797648 +v -0.095303 1.634003 2.798032 +v 0.116000 1.594432 3.043755 +v 0.165142 1.626064 1.220801 +v 0.165142 1.621289 1.876552 +v 0.165142 1.625166 1.475485 +v -0.136952 1.572264 1.876078 +v -0.136952 1.576142 1.475011 +v -0.136952 1.577140 1.220313 +v -0.136952 1.570895 2.017720 +v 0.165142 1.570895 2.017720 +v -0.116550 0.944315 2.275445 +v -0.136952 1.568204 2.296037 +v -0.136952 1.568395 2.276249 +v -0.117232 0.943106 2.228364 +v -0.136952 0.853355 2.010782 +v -0.136952 0.727369 2.149053 +v -0.136952 1.570895 2.017720 +v -0.136952 0.920625 2.011432 +v -0.136952 0.914094 2.686971 +v -0.136952 1.564364 2.693258 +v -0.136952 1.567813 2.336523 +v -0.117232 0.941921 2.350872 +v -0.136952 0.846824 2.686321 +v -0.117232 0.805195 2.349550 +v -0.136952 0.719666 2.328613 +v -0.136952 0.704381 2.684944 +v -0.136952 0.871403 2.686558 +v -0.117232 0.855153 2.350033 +v -0.117232 0.856337 2.227525 +v -0.136952 0.877935 2.011019 +v -0.165627 0.941921 2.350872 +v -0.165627 0.855153 2.350033 +v -0.165627 0.855948 2.267745 +v -0.164657 0.945919 2.272705 +v -0.165627 0.943106 2.228364 +v -0.165627 0.856337 2.227525 +v -0.117232 0.805509 2.317034 +v -0.165627 0.805195 2.349550 +v -0.165627 0.805509 2.317034 +v -0.165627 0.806379 2.227041 +v -0.147144 0.985765 2.289954 +v -0.117999 0.987967 2.292308 +v -0.165627 0.805991 2.267262 +v -0.165627 0.855467 2.317517 +v -0.165183 0.945687 2.314986 +v -0.117232 0.944573 2.316757 +v -0.136952 1.567967 2.320525 +v -0.136952 0.720335 2.313030 +v -0.211344 0.805991 2.267262 +v -0.165627 0.650194 2.265755 +v -0.211344 0.650194 2.265755 +v -0.211344 0.855948 2.267745 +v -0.211344 0.805509 2.317034 +v -0.211344 0.855467 2.317517 +v -0.165627 0.649713 2.315527 +v -0.117232 0.649713 2.315527 +v -0.117232 0.650194 2.265755 +v -0.211344 0.649713 2.315527 +v -0.146461 0.985408 2.298749 +v -0.117232 0.986920 2.296790 +v -0.152245 1.043764 3.043450 +v -0.152245 1.712438 3.046384 +v 0.192843 1.712438 3.046383 +v 0.192843 1.043764 3.043450 +v 0.192843 0.937887 3.521686 +v -0.152245 0.937887 3.521686 +v -0.152244 1.649577 6.527719 +v 0.192843 1.649577 6.527719 +v 0.192843 0.025793 6.210012 +v 0.192843 0.009952 6.375108 +v -0.152244 0.009952 6.375108 +v -0.152244 0.025793 6.210012 +v -0.152245 0.235370 5.571983 +v -0.152245 0.455597 4.937619 +v 0.192843 0.455597 4.937619 +v 0.192843 0.235370 5.571983 +v 0.192843 1.680991 4.788768 +v -0.152245 1.680991 4.788768 +v 0.192843 1.712438 3.046383 +v -0.152245 1.712438 3.046384 +v -0.152245 0.654402 4.400762 +v -0.152245 0.821140 3.880699 +v 0.192843 0.821140 3.880699 +v 0.192843 0.654402 4.400762 +v -0.288967 0.897229 6.368784 +v -0.288967 0.423273 6.295212 +v 0.292823 0.823472 4.014390 +v 0.292823 0.674531 4.478942 +v 0.292823 1.022335 3.266504 +v 0.292823 1.619638 3.269124 +v 0.292823 1.591547 4.825535 +v 0.292823 1.563486 6.378878 +v 0.292823 1.256055 6.410403 +v 0.292823 0.898192 6.390715 +v 0.292823 0.415824 6.315836 +v 0.292823 0.098867 6.242557 +v 0.292823 0.113017 6.095082 +v 0.292823 0.300225 5.525153 +v 0.292823 0.496945 4.958498 +v 0.292823 0.927758 3.693695 +v -0.288967 0.926280 3.718801 +v -0.288967 0.823812 4.033902 +v -0.288967 0.677469 4.490353 +v -0.288967 0.502980 4.961545 +v -0.288967 0.309691 5.518318 +v -0.288967 0.125748 6.078308 +v -0.288967 0.111844 6.223210 +v -0.288967 1.248852 6.388129 +v -0.288967 1.550920 6.357154 +v -0.288967 1.578493 4.830902 +v -0.288967 1.606093 3.301634 +v -0.288967 1.019207 3.299059 +v 0.016027 0.547390 1.862002 +v 0.019306 0.561083 1.849339 +v 0.142395 0.757887 2.116556 +v 0.142395 0.660656 2.141604 +v -0.007293 0.547830 1.861861 +v 0.142395 0.850475 2.015535 +v 0.058021 0.829357 1.886027 +v -0.004014 0.561523 1.849198 +v 0.142395 0.853645 1.817587 +v 0.142395 0.852542 1.886433 +v 0.016027 0.547390 1.862002 +v 0.142395 0.856383 1.617575 +v 0.019306 0.561083 1.849339 +v 0.142395 0.761804 1.498257 +v 0.020285 0.576429 1.939407 +v 0.142395 0.665075 1.471334 +v 0.021168 0.639247 1.973528 +v 0.142395 0.567844 1.496382 +v 0.021222 0.593582 1.885335 +v 0.142395 0.475755 1.545882 +v 0.022105 0.656401 1.919456 +v 0.142395 0.465725 1.813838 +v 0.021638 0.746428 1.919562 +v 0.142395 0.467068 2.018012 +v 0.021638 0.745520 1.976290 +v 0.142395 0.563928 2.114681 +v -0.117211 0.657140 2.235394 +v 0.142678 0.657140 2.235394 +v 0.142678 0.817063 2.235753 +v -0.117211 0.817063 2.235753 +v 0.142678 0.876375 2.233910 +v -0.117211 0.876375 2.233910 +v 0.142678 0.881824 1.819352 +v -0.117211 0.881824 1.819352 +v 0.142678 0.886294 1.452513 +v -0.117211 0.886294 1.452514 +v 0.142678 0.833738 1.450712 +v -0.117211 0.833738 1.450712 +v 0.142678 0.666669 1.449340 +v -0.117211 0.666669 1.449340 +v 0.142678 0.448042 1.451277 +v -0.117211 0.448042 1.451277 +v 0.142678 0.448315 1.507656 +v -0.117211 0.448315 1.507656 +v 0.142678 0.436810 1.815049 +v -0.117211 0.436810 1.815049 +v 0.142678 0.438350 2.049274 +v -0.117211 0.438350 2.049274 +v 0.142678 0.423600 2.287596 +v -0.117211 0.423600 2.287596 +v -0.116928 0.856383 1.617575 +v -0.116928 0.853645 1.817588 +v -0.116928 0.665075 1.471334 +v -0.116928 0.761804 1.498257 +v -0.116928 0.757887 2.116556 +v -0.116928 0.660656 2.141604 +v -0.116928 0.852542 1.886434 +v -0.116928 0.851252 1.967026 +v -0.116928 0.850475 2.015535 +v -0.116928 0.467068 2.018012 +v -0.116928 0.465725 1.813838 +v -0.116928 0.563928 2.114681 +v -0.116928 0.567844 1.496382 +v -0.116928 0.475755 1.545882 +v 0.142395 0.851252 1.967026 +v 0.058021 0.828067 1.966620 +v -0.032555 0.829357 1.886027 +v -0.032555 0.828066 1.966620 +v 0.029331 0.825789 1.966584 +v 0.029331 0.827080 1.885991 +v 0.029331 0.827080 1.885991 +v 0.029331 0.825789 1.966584 +v -0.007293 0.547830 1.861861 +v -0.004014 0.561523 1.849198 +v -0.003075 0.576854 1.939137 +v -0.002139 0.594008 1.885066 +v -0.002192 0.639673 1.973258 +v -0.001255 0.656827 1.919186 +v -0.001728 0.745520 1.976290 +v -0.001728 0.746428 1.919562 +v -0.003864 0.827079 1.885991 +v -0.003864 0.825789 1.966584 +v -0.003864 0.825789 1.966584 +v -0.003864 0.827079 1.885991 +v -0.001728 0.746428 1.919562 +v -0.001728 0.745520 1.976290 +v -0.001255 0.656827 1.919186 +v -0.002192 0.639673 1.973258 +v 0.021638 0.745520 1.976290 +v 0.021638 0.746428 1.919562 +v 0.022105 0.656401 1.919456 +v 0.021222 0.593582 1.885335 +v -0.002139 0.594008 1.885066 +v 0.021168 0.639247 1.973528 +v -0.003075 0.576854 1.939137 +v -0.004014 0.561523 1.849198 +v -0.007293 0.547830 1.861861 +v 0.020285 0.576429 1.939407 +v 0.019306 0.561083 1.849339 +v 0.016027 0.547390 1.862002 +v 0.051594 1.678915 -4.269588 +v 0.051594 1.836478 -4.268064 +v 0.051594 1.834955 -4.110501 +v 0.051594 1.677392 -4.112025 +v -0.053713 1.834955 -4.110501 +v -0.053713 1.677392 -4.112025 +v -0.053713 1.836478 -4.268064 +v -0.053713 1.678915 -4.269588 +v 0.016492 1.678915 -4.269588 +v 0.016492 1.836478 -4.268064 +v -0.018610 1.678915 -4.269588 +v -0.060973 1.854414 -4.149395 +v -0.060973 1.854414 -4.149395 +v -0.041986 2.034586 -4.156837 +v -0.054175 2.034586 -4.156837 +v 0.051832 1.855505 -4.262195 +v 0.051832 1.855505 -4.262195 +v 0.045034 2.035545 -4.256041 +v 0.045034 2.035545 -4.256041 +v 0.051832 1.854414 -4.149395 +v 0.045034 2.034586 -4.156837 +v -0.018610 1.836478 -4.268064 +v -0.060973 1.855505 -4.262195 +v -0.023372 1.855505 -4.262195 +v 0.045034 2.202639 -4.144478 +v 0.011964 2.202639 -4.144478 +v -0.021105 2.202639 -4.144478 +v -0.041986 2.202639 -4.144478 +v -0.021105 2.035545 -4.256041 +v -0.054175 2.035545 -4.256041 +v -0.054175 2.203599 -4.243681 +v -0.021105 2.203599 -4.243681 +v -0.054175 2.035545 -4.256041 +v -0.054175 2.202639 -4.144478 +v -0.054175 2.203599 -4.243681 +v 0.051832 1.854414 -4.149395 +v 0.029869 2.034586 -4.156837 +v -0.060973 1.855505 -4.262195 +v -0.054175 2.406401 -4.124617 +v -0.054175 2.407361 -4.223821 +v -0.054175 2.305480 -4.233752 +v -0.054175 2.305480 -4.233752 +v -0.054175 2.407361 -4.223821 +v 0.029869 2.202639 -4.144478 +v 0.045034 2.406401 -4.124617 +v 0.045034 2.406401 -4.124617 +v 0.045034 2.203599 -4.243681 +v 0.045034 2.203599 -4.243681 +v 0.011964 2.406401 -4.124617 +v 0.045034 2.407361 -4.223821 +v 0.011964 2.407361 -4.223821 +v -0.054175 2.406401 -4.124617 +v 0.045034 2.407361 -4.223821 +v -0.021105 2.332433 -4.236758 +v -0.021105 2.407361 -4.223821 +v 0.045034 2.305480 -4.233752 +v 0.045034 2.305480 -4.233752 +v 0.029869 2.209161 -4.078815 +v 0.029869 2.041107 -4.091175 +v -0.041986 2.041107 -4.091175 +v -0.041986 2.209161 -4.078815 +v 0.045034 2.396599 -4.077962 +v 0.045034 2.391349 -4.052973 +v 0.045034 2.231575 -3.924966 +v 0.045034 2.221483 -4.001532 +v -0.054175 2.231575 -3.924966 +v -0.054175 2.356086 -4.024722 +v -0.054175 2.391349 -4.052973 +v -0.054175 2.221002 -4.005173 +v -0.054175 2.231575 -3.924966 +v -0.054175 2.391349 -4.052973 +v -0.054175 2.396848 -4.079151 +v 0.045034 2.391349 -4.052973 +v 0.045034 2.356086 -4.024722 +v 0.045034 2.231575 -3.924966 +v -0.054175 2.202639 -4.144478 +v -0.054175 2.231575 -3.924966 +v 0.045034 2.231575 -3.924966 +v 0.045034 2.221483 -4.001532 +v -0.021105 2.329133 -4.021715 +v -0.021105 2.391349 -4.052973 +v 0.011964 2.391349 -4.052973 +v 0.011964 2.406401 -4.124617 +v 0.045034 2.231575 -3.924966 +v 0.045034 2.221483 -4.001532 +v -0.054175 2.221002 -4.005173 +v -0.054175 2.231575 -3.924966 +v 0.045034 2.231575 -3.924966 +v 0.045034 2.202639 -4.144478 +v 0.032513 1.878508 -3.660935 +v 0.030422 1.883186 -3.755095 +v -0.044126 1.883495 -3.760848 +v -0.046111 1.878488 -3.662214 +v -0.041869 1.761449 -4.086932 +v -0.041869 1.836041 -4.086211 +v 0.032727 1.836041 -4.086211 +v 0.032727 1.761449 -4.086932 +v -0.041869 1.758805 -3.813482 +v -0.044356 1.830626 -3.814065 +v 0.033298 1.830621 -3.812788 +v 0.032727 1.758805 -3.813482 +v -0.041869 1.757366 -3.664618 +v -0.044356 1.829186 -3.665202 +v 0.033298 1.829182 -3.663924 +v 0.032727 1.757366 -3.664618 +v -0.041869 1.692998 -3.814118 +v -0.041869 1.691559 -3.665255 +v 0.032727 1.685764 -3.665311 +v 0.032727 1.687203 -3.814174 +v -0.021105 2.406401 -4.124617 +v 0.011964 2.329133 -4.021715 +v -0.021105 2.406401 -4.124617 +v 0.011964 2.203599 -4.243681 +v 0.011964 2.332433 -4.236758 +v 0.014230 1.855505 -4.262195 +v 0.011964 2.035545 -4.256041 +v 0.011964 2.231575 -3.924966 +v -0.021105 2.231575 -3.924966 +v 0.045034 2.034866 -4.154024 +v 0.045034 2.202919 -4.141664 +v -0.054175 2.034901 -4.153662 +v -0.054175 2.202955 -4.141303 +v 0.064394 1.969668 2.143186 +v 0.064394 1.862612 2.142151 +v 0.169845 1.862612 2.142151 +v 0.169845 1.969668 2.143186 +v -0.042667 1.969668 2.143186 +v -0.042667 1.862612 2.142151 +v -0.042667 1.857978 2.621482 +v -0.042667 1.965034 2.622517 +v -0.042667 1.970703 2.036130 +v -0.137368 1.970703 2.036130 +v -0.137368 1.969668 2.143186 +v 0.064394 1.970703 2.036130 +v 0.064394 1.863647 2.035095 +v 0.064394 1.876024 0.754992 +v 0.064394 1.983080 0.756027 +v -0.006980 1.862612 2.142151 +v -0.042667 1.863647 2.035095 +v -0.006980 1.863647 2.035095 +v 0.043659 1.969694 2.137586 +v 0.028707 1.970703 2.036130 +v 0.064394 1.984260 0.633930 +v 0.146686 1.983080 0.756027 +v 0.146686 1.984260 0.633930 +v -0.042667 1.876024 0.754992 +v -0.006980 1.876024 0.754992 +v 0.028707 1.983080 0.756027 +v -0.042667 1.983080 0.756027 +v 0.028707 1.877204 0.632895 +v 0.028707 1.984260 0.633930 +v 0.064394 1.877204 0.632895 +v -0.006980 1.984260 0.633930 +v -0.042667 1.984260 0.633930 +v -0.042667 2.167404 0.635701 +v -0.006980 2.167404 0.635701 +v -0.042667 1.877204 0.632895 +v -0.167188 1.877204 0.632895 +v -0.167188 1.984260 0.633930 +v -0.006980 1.877204 0.632895 +v 0.064394 2.245435 0.748596 +v 0.064394 2.194613 0.648864 +v 0.064394 2.268742 0.745889 +v 0.064394 2.166224 0.757797 +v 0.028707 2.166224 0.757797 +v -0.042667 2.166224 0.757797 +v 0.064394 2.167404 0.635701 +v 0.028707 2.268742 0.745889 +v 0.028707 2.188427 0.645871 +v 0.049297 2.273742 0.789901 +v 0.049297 2.257009 0.791845 +v -0.042667 2.188427 0.645871 +v -0.042667 2.245435 0.748596 +v -0.042667 2.268742 0.745889 +v -0.001947 2.273742 0.789901 +v -0.027569 2.273742 0.789901 +v -0.087521 2.381042 2.132420 +v -0.021931 2.381042 2.132420 +v 0.049297 2.200138 0.798452 +v 0.023675 2.200138 0.798452 +v -0.027569 2.200138 0.798452 +v -0.027569 2.257009 0.791845 +v -0.006980 2.268742 0.745889 +v -0.087521 2.142312 2.421078 +v -0.087521 2.146705 2.199071 +v -0.087521 2.018169 2.196527 +v -0.087521 2.013775 2.418534 +v 0.109248 2.381042 2.132420 +v 0.109248 2.338206 2.137396 +v 0.109248 2.192621 2.154307 +v 0.043659 2.192621 2.154307 +v -0.087521 2.192621 2.154307 +v -0.087521 2.338206 2.137396 +v 0.043659 1.964717 2.419892 +v 0.109248 1.964717 2.419892 +v 0.109248 1.959092 2.758076 +v 0.043659 1.959092 2.758076 +v 0.109248 2.146705 2.199071 +v 0.109248 2.142312 2.421078 +v 0.109248 2.013775 2.418534 +v 0.109248 2.018169 2.196527 +v 0.109248 1.969694 2.137586 +v 0.109248 2.182596 2.423408 +v 0.043659 2.146705 2.199071 +v 0.109248 2.008151 2.756719 +v -0.087521 2.008151 2.756719 +v 0.043659 2.018169 2.196527 +v 0.109248 2.367172 2.685050 +v 0.109248 2.421214 2.685298 +v 0.109248 2.331844 2.774648 +v 0.109248 2.299578 2.773926 +v -0.021931 2.421214 2.685298 +v -0.087521 2.421214 2.685298 +v -0.087521 2.331844 2.774648 +v -0.021931 2.331844 2.774648 +v -0.087521 2.367172 2.685050 +v -0.087521 2.183505 2.684207 +v -0.087521 2.189923 2.771473 +v -0.087521 2.299578 2.773926 +v -0.021931 2.299578 2.773926 +v -0.087521 2.368289 2.441457 +v -0.087521 2.182552 2.433985 +v -0.021931 2.422332 2.441705 +v -0.087521 2.422332 2.441705 +v 0.109248 2.368289 2.441457 +v 0.109248 2.422332 2.441705 +v 0.043659 2.183505 2.684207 +v 0.109248 2.183505 2.684207 +v 0.109248 2.189923 2.771473 +v 0.043659 2.189923 2.771473 +v -0.021931 2.400653 2.424308 +v -0.087521 2.400653 2.424308 +v -0.087521 2.351079 2.424104 +v 0.043659 2.182596 2.423408 +v 0.109248 2.184623 2.440614 +v 0.043659 2.184623 2.440614 +v 0.109248 2.351079 2.424104 +v 0.109248 2.400653 2.424308 +v 0.028707 1.862612 2.142151 +v 0.064394 1.857978 2.621482 +v 0.028707 1.857978 2.621482 +v -0.021931 1.969694 2.137586 +v -0.006980 1.965034 2.622517 +v 0.064394 1.965034 2.622517 +v -0.006980 1.854925 2.932631 +v -0.006980 1.956064 2.897519 +v -0.042667 1.956064 2.897519 +v -0.042667 1.854925 2.932631 +v -0.087521 1.964717 2.419892 +v -0.087521 1.959092 2.758076 +v 0.064394 1.956064 2.897519 +v 0.064394 1.854925 2.932631 +v 0.028707 1.854925 2.932631 +v -0.021931 2.182552 2.433985 +v -0.087521 2.176971 2.761593 +v -0.021931 2.176971 2.761593 +v 0.109248 2.176971 2.761593 +v 0.109248 2.136687 2.759263 +v 0.109248 1.956173 2.897150 +v 0.028707 1.956064 2.897519 +v -0.087521 2.136687 2.759263 +v -0.021931 2.136687 2.759263 +v -0.087521 2.147398 2.830651 +v -0.021931 2.147398 2.830651 +v -0.087521 1.969694 2.137586 +v -0.021931 2.008421 2.877196 +v -0.087521 2.008421 2.877196 +v -0.087521 1.956173 2.897150 +v 0.109248 2.008421 2.877196 +v 0.109248 2.147398 2.830651 +v 0.043659 2.147398 2.830651 +v 0.043659 2.008421 2.877196 +v -0.021931 2.018169 2.196527 +v 0.043659 2.136687 2.759263 +v 0.043659 2.176971 2.761593 +v -0.021931 1.959092 2.758076 +v -0.006980 1.857978 2.621482 +v 0.028707 1.965034 2.622517 +v -0.021931 1.964717 2.419892 +v 0.043659 2.381042 2.132420 +v 0.043659 2.400610 2.434885 +v -0.021931 2.183505 2.684207 +v 0.043659 2.422332 2.441705 +v -0.021931 2.189923 2.771473 +v 0.043659 2.421214 2.685298 +v 0.043659 2.331844 2.774648 +v 0.043659 2.299578 2.773926 +v -0.021931 2.146705 2.199071 +v -0.021931 2.192621 2.154307 +v -0.001947 2.200138 0.798452 +v 0.023675 2.273742 0.789901 +v -0.006980 2.166224 0.757797 +v -0.021005 2.297669 2.648355 +v 0.042733 2.297669 2.648355 +v -0.006980 2.188427 0.645871 +v -0.006980 1.983080 0.756027 +v 0.028707 1.876024 0.754992 +v 0.028707 2.167404 0.635701 +v -0.006980 1.970703 2.036130 +v 0.028707 1.863647 2.035095 +v 0.043070 2.298365 2.694150 +v -0.137368 1.862612 2.142151 +v -0.137368 1.863647 2.035095 +v 0.169845 1.863647 2.035095 +v 0.169845 1.970703 2.036130 +v 0.146686 1.876024 0.754992 +v 0.146686 1.877204 0.632895 +v -0.167188 1.876024 0.754992 +v -0.167188 1.983080 0.756027 +v 0.010262 2.021519 2.589287 +v 0.010262 2.020119 2.734168 +v -0.092189 2.020529 2.691733 +v 0.010262 2.131944 2.590354 +v -0.092189 2.130953 2.692801 +v 0.010262 2.130543 2.735235 +v -0.134626 2.021519 2.589287 +v -0.134626 2.131944 2.590354 +v -0.092189 2.022510 2.486840 +v -0.092189 2.132934 2.487908 +v 0.010262 2.022920 2.444405 +v 0.010262 2.133344 2.445473 +v 0.112714 2.022510 2.486840 +v 0.112714 2.132934 2.487908 +v 0.155150 2.021519 2.589287 +v 0.155150 2.131944 2.590354 +v 0.112714 2.020529 2.691733 +v 0.112714 2.130953 2.692801 +v -0.021343 2.298365 2.694150 +v 0.037213 2.320070 2.690015 +v -0.015486 2.320070 2.690015 +v 0.036937 2.319501 2.652549 +v -0.014876 2.327471 2.660462 +v 0.010591 2.316989 2.661640 +v -0.012048 2.332392 2.678925 +v 0.010591 2.319224 2.681524 +v -0.021425 2.352902 2.658721 +v -0.021425 2.354889 2.676396 +v -0.012048 2.377386 2.673867 +v -0.012048 2.375399 2.656192 +v 0.010591 2.386705 2.672819 +v 0.010591 2.388567 2.653594 +v 0.036057 2.380320 2.674655 +v 0.033229 2.375399 2.656192 +v 0.042607 2.354889 2.676396 +v 0.046606 2.352778 2.657617 +v 0.033229 2.332392 2.678925 +v 0.107330 2.208933 2.596382 +v 0.107060 2.218142 2.557761 +v 0.137424 2.218003 2.572124 +v 0.106843 2.243196 2.526961 +v 0.106723 2.279133 2.510081 +v 0.174952 2.278821 2.542352 +v 0.161558 2.242946 2.552840 +v 0.106723 2.318835 2.510465 +v 0.106843 2.354440 2.528037 +v 0.161558 2.354189 2.553916 +v 0.174952 2.318524 2.542736 +v 0.107060 2.378894 2.559315 +v 0.107330 2.387354 2.598107 +v 0.137424 2.378755 2.573678 +v 0.192260 2.317813 2.616197 +v 0.192260 2.278111 2.615814 +v 0.145127 2.378439 2.606371 +v 0.175438 2.353620 2.612828 +v 0.145127 2.217687 2.604817 +v 0.175438 2.242377 2.611752 +v 0.124368 2.217432 2.631223 +v 0.145614 2.277537 2.675148 +v 0.138032 2.241916 2.659334 +v 0.138032 2.353160 2.660410 +v 0.145614 2.317240 2.675532 +v 0.124368 2.378183 2.632777 +v 0.090779 2.217430 2.631458 +v 0.070140 2.277532 2.675675 +v 0.077506 2.241912 2.659757 +v 0.077506 2.353156 2.660832 +v 0.070140 2.317235 2.676059 +v 0.090779 2.378181 2.633012 +v 0.288283 1.507385 2.784997 +v 0.302085 1.508212 2.839944 +v 0.230214 1.516211 2.857877 +v 0.216412 1.515384 2.802931 +v 0.191263 1.579106 2.866714 +v 0.177461 1.578279 2.811768 +v 0.214563 1.649536 2.859801 +v 0.200761 1.648709 2.804855 +v 0.282569 1.674465 2.842344 +v 0.268767 1.673638 2.787397 +v 0.344071 1.635122 2.827487 +v 0.330269 1.634295 2.772541 +v 0.352756 1.561132 2.826420 +v 0.338954 1.560305 2.771473 +v 0.027960 1.486830 1.817147 +v -0.043911 1.494829 1.835080 +v -0.082862 1.557724 1.843918 +v -0.059561 1.628153 1.837005 +v 0.008445 1.653082 1.819547 +v 0.069946 1.613739 1.804691 +v 0.078631 1.539750 1.803623 +v 0.300826 1.568402 2.777984 +v 0.269088 1.535255 2.786455 +v 0.295386 1.614745 2.778653 +v 0.256864 1.639388 2.787958 +v 0.214269 1.623773 2.798893 +v 0.199675 1.579660 2.803223 +v 0.224072 1.540266 2.797688 +v 0.241280 1.499612 2.666382 +v 0.169409 1.507611 2.684315 +v 0.130459 1.570506 2.693152 +v 0.153759 1.640935 2.686239 +v 0.221765 1.665865 2.668782 +v 0.283266 1.626521 2.653925 +v 0.291951 1.552532 2.652858 +v 0.239544 1.532166 2.670439 +v 0.194527 1.537176 2.681670 +v 0.170131 1.576570 2.687206 +v 0.184725 1.620684 2.682875 +v 0.227320 1.636298 2.671942 +v 0.265841 1.611656 2.662636 +v 0.271281 1.565312 2.661968 +v 0.181794 1.572812 1.882358 +v 0.177507 1.551091 1.881797 +v 0.177507 1.550996 1.891630 +v 0.181794 1.572717 1.892192 +v 0.181794 1.575243 1.630875 +v 0.177507 1.553522 1.630314 +v 0.177507 1.551566 1.832629 +v 0.181794 1.573287 1.833191 +v 0.181794 1.579350 1.206084 +v 0.177507 1.557629 1.205523 +v 0.177507 1.557129 1.257250 +v 0.181794 1.578850 1.257811 +v 0.176907 1.641480 1.206685 +v 0.178707 1.627872 1.206553 +v 0.178707 1.627372 1.258281 +v 0.176907 1.640980 1.258412 +v 0.176907 1.637374 1.631476 +v 0.178707 1.623765 1.631345 +v 0.178707 1.621809 1.833660 +v 0.176907 1.635418 1.833792 +v 0.176907 1.634942 1.882959 +v 0.178707 1.621333 1.882828 +v 0.178707 1.621238 1.892661 +v 0.176907 1.634847 1.892793 +v 0.176907 1.639177 1.444944 +v 0.178707 1.625568 1.444813 +v 0.177507 1.555325 1.443782 +v 0.181794 1.577047 1.444343 +v 0.178707 1.627988 1.194507 +v 0.181794 1.579466 1.194038 +v 0.176907 1.641597 1.194639 +v 0.177507 1.557745 1.193477 +v 0.175675 1.644729 1.833882 +v 0.175675 1.644253 1.883049 +v 0.175675 1.650292 1.258502 +v 0.175675 1.648488 1.445034 +v 0.175675 1.646685 1.631566 +v 0.175675 1.650792 1.206775 +v 0.186751 1.573467 1.882365 +v 0.186751 1.573372 1.892198 +v 0.181423 1.547886 1.891600 +v 0.181423 1.547982 1.881767 +v 0.186751 1.575899 1.630882 +v 0.186751 1.573943 1.833197 +v 0.181423 1.548457 1.832599 +v 0.181423 1.550413 1.630284 +v 0.186751 1.580006 1.206090 +v 0.186751 1.579506 1.257818 +v 0.181423 1.554020 1.257220 +v 0.181423 1.554520 1.205493 +v 0.181864 1.642136 1.206691 +v 0.181864 1.641636 1.258418 +v 0.183664 1.628027 1.258287 +v 0.183664 1.628527 1.206560 +v 0.181864 1.638029 1.631482 +v 0.181864 1.636073 1.833798 +v 0.183664 1.622464 1.833666 +v 0.183664 1.624420 1.631351 +v 0.181864 1.635598 1.882965 +v 0.181864 1.635503 1.892799 +v 0.183664 1.621894 1.892667 +v 0.183664 1.621989 1.882834 +v 0.181864 1.639833 1.444950 +v 0.183664 1.626224 1.444819 +v 0.186751 1.577702 1.444350 +v 0.181423 1.552216 1.443752 +v 0.183664 1.628644 1.194514 +v 0.186751 1.580122 1.194044 +v 0.181864 1.642253 1.194645 +v 0.181423 1.554636 1.193447 +v 0.180632 1.645385 1.833888 +v 0.180632 1.644909 1.883055 +v 0.180632 1.650947 1.258508 +v 0.180632 1.649144 1.445040 +v 0.180632 1.647340 1.631572 +v 0.180632 1.651447 1.206781 +v -0.013058 1.760041 -6.289080 +v -0.079416 1.742262 -6.289251 +v 0.101877 1.693688 -6.289721 +v 0.053300 1.742262 -6.289251 +v -0.013058 1.494624 -6.291646 +v 0.053300 1.512403 -6.291474 +v -0.127993 1.693688 -6.289721 +v -0.139130 1.652125 -6.290123 +v -0.079416 1.512403 -6.291474 +v 0.106518 1.593696 -6.290688 +v 0.114186 1.647750 -6.290165 +v -0.127993 1.560979 -6.291004 +v -0.137723 1.612007 -6.290511 +v 0.044758 1.727468 -6.289394 +v -0.013058 1.742959 -6.289245 +v 0.087083 1.685145 -6.289804 +v 0.090698 1.599656 -6.290630 +v 0.097376 1.646731 -6.290175 +v -0.013058 1.511706 -6.291481 +v 0.042944 1.526711 -6.291336 +v -0.070874 1.527197 -6.291331 +v -0.112735 1.569057 -6.290926 +v -0.121277 1.613853 -6.290493 +v -0.070874 1.727468 -6.289394 +v -0.113199 1.685145 -6.289804 +v -0.122553 1.650236 -6.290141 +v -0.066341 1.711473 -5.738770 +v -0.015398 1.725124 -5.738637 +v -0.103634 1.572299 -5.740115 +v -0.111104 1.611475 -5.739737 +v -0.112185 1.642274 -5.739439 +v -0.103634 1.674182 -5.739130 +v 0.035546 1.711473 -5.738770 +v 0.072839 1.674182 -5.739130 +v 0.082290 1.638914 -5.739471 +v 0.076403 1.597417 -5.739872 +v 0.035546 1.535007 -5.740476 +v -0.015398 1.521358 -5.740607 +v -0.066341 1.535007 -5.740476 +v 0.044758 1.727468 -6.289394 +v -0.013058 1.742959 -6.289245 +v 0.087083 1.685145 -6.289804 +v 0.090698 1.599656 -6.290630 +v 0.097376 1.646731 -6.290175 +v -0.013058 1.511706 -6.291481 +v 0.042944 1.526711 -6.291336 +v -0.070874 1.527197 -6.291331 +v -0.112735 1.569057 -6.290926 +v -0.121277 1.613853 -6.290493 +v -0.070874 1.727468 -6.289394 +v -0.113199 1.685145 -6.289804 +v -0.122553 1.650238 -6.290141 +v -0.066341 1.711473 -5.738770 +v -0.015398 1.725124 -5.738637 +v -0.103634 1.572299 -5.740115 +v -0.111104 1.611475 -5.739737 +v -0.112185 1.642274 -5.739439 +v -0.103634 1.674182 -5.739130 +v 0.035546 1.711473 -5.738770 +v 0.072839 1.674182 -5.739130 +v 0.082290 1.638914 -5.739471 +v 0.076403 1.597417 -5.739872 +v 0.035546 1.535007 -5.740476 +v -0.015398 1.521358 -5.740607 +v -0.066341 1.535007 -5.740476 +v -0.080983 1.739653 -5.738497 +v -0.013058 1.757851 -5.738321 +v -0.130708 1.554088 -5.740291 +v -0.140668 1.606321 -5.739786 +v -0.142108 1.647385 -5.739389 +v -0.130708 1.689929 -5.738977 +v 0.054867 1.739653 -5.738497 +v 0.104592 1.689929 -5.738977 +v 0.117192 1.642908 -5.739432 +v 0.109342 1.587577 -5.739967 +v 0.054867 1.504364 -5.740772 +v -0.013058 1.486166 -5.740948 +v -0.080983 1.504364 -5.740772 +v -0.112639 1.564113 -5.698238 +v -0.070551 1.522027 -5.698646 +v 0.044435 1.721179 -5.696720 +v -0.013058 1.736583 -5.696571 +v -0.070551 1.721179 -5.696720 +v -0.112639 1.679093 -5.697127 +v 0.090544 1.592458 -5.697964 +v 0.097188 1.639292 -5.697512 +v -0.013058 1.506621 -5.698794 +v -0.122289 1.643082 -5.697475 +v 0.044435 1.522027 -5.698646 +v 0.086522 1.679093 -5.697127 +v -0.121069 1.608325 -5.697811 +v -0.113470 1.595189 -4.242433 +v -0.114603 1.627501 -4.242120 +v -0.110517 1.626811 -4.253918 +v -0.109429 1.595799 -4.254218 +v -0.064355 1.518801 -4.254962 +v -0.101907 1.556352 -4.254600 +v -0.013059 1.710235 -4.253111 +v 0.038238 1.696491 -4.253244 +v -0.101907 1.658941 -4.253607 +v -0.064355 1.696491 -4.253244 +v 0.085306 1.623429 -4.253951 +v 0.079378 1.581643 -4.254355 +v -0.013059 1.505057 -4.255095 +v 0.038238 1.518801 -4.254962 +v 0.075790 1.658941 -4.253607 +v -0.066506 1.700102 -4.241418 +v -0.013059 1.714422 -4.241280 +v 0.040389 1.700102 -4.241418 +v 0.079515 1.660977 -4.241796 +v 0.040389 1.514963 -4.243208 +v -0.013059 1.500642 -4.243347 +v -0.105632 1.660977 -4.241796 +v -0.066506 1.514963 -4.243208 +v 0.089430 1.623976 -4.242154 +v 0.083254 1.580439 -4.242575 +v -0.105632 1.554087 -4.242830 +v -0.065400 1.515808 -4.132485 +v -0.103717 1.554122 -4.132114 +v -0.013059 1.711140 -4.130596 +v 0.039283 1.697116 -4.130732 +v -0.103717 1.658800 -4.131102 +v -0.065400 1.697116 -4.130732 +v 0.087309 1.622566 -4.131453 +v 0.081261 1.579929 -4.131865 +v -0.013059 1.501784 -4.132620 +v -0.112502 1.626017 -4.131419 +v 0.039283 1.515808 -4.132485 +v 0.077600 1.658800 -4.131102 +v -0.062560 1.692112 -4.121951 +v -0.013059 1.705375 -4.121823 +v 0.036443 1.692112 -4.121951 +v 0.072681 1.655875 -4.122302 +v 0.036443 1.520641 -4.123609 +v -0.013059 1.507378 -4.123737 +v -0.107106 1.624871 -4.122602 +v -0.098798 1.655875 -4.122302 +v -0.062560 1.520641 -4.123609 +v 0.081864 1.621607 -4.122633 +v 0.076143 1.581283 -4.123023 +v -0.098798 1.556877 -4.123259 +v -0.106057 1.594944 -4.122890 +v -0.111392 1.594373 -4.131725 +v -0.180496 1.276744 -3.709595 +v -0.013059 1.231882 -3.710029 +v 0.290977 1.481865 -3.707612 +v 0.310479 1.618257 -3.706294 +v -0.180496 1.856736 -3.703987 +v -0.303069 1.734170 -3.705173 +v 0.154378 1.856737 -3.703987 +v -0.013059 1.901599 -3.703554 +v -0.303069 1.399311 -3.708410 +v 0.154378 1.276744 -3.709595 +v 0.282936 1.473118 -3.707697 +v 0.276951 1.734170 -3.705173 +v -0.331171 1.629296 -3.706187 +v -0.063124 1.516527 -3.799040 +v -0.099774 1.553176 -3.798685 +v -0.013059 1.703364 -3.797233 +v 0.037006 1.689950 -3.797363 +v -0.099774 1.653301 -3.797717 +v -0.063124 1.689950 -3.797363 +v 0.082944 1.618642 -3.798053 +v 0.077158 1.577860 -3.798446 +v -0.013059 1.503113 -3.799170 +v -0.108177 1.621943 -3.798021 +v 0.037006 1.516527 -3.799040 +v 0.073656 1.653301 -3.797718 +v -0.107115 1.591676 -3.798313 +v -0.327621 1.528072 -3.707165 +v -0.331320 1.534015 -3.707108 +v 0.075446 1.575244 -3.798472 +v -0.202174 1.172312 0.084620 +v 0.012707 1.114738 0.084064 +v 0.012707 1.223542 0.117762 +v -0.147611 1.266498 0.118177 +v 0.428145 1.610595 0.088858 +v 0.403116 1.435555 0.087165 +v -0.359479 1.759351 0.090296 +v -0.202174 1.916648 0.091817 +v 0.012707 1.974223 0.092373 +v 0.227588 1.916648 0.091817 +v -0.359479 1.329609 0.086141 +v 0.392573 1.424329 0.087057 +v 0.227589 1.172312 0.084620 +v 0.384892 1.759351 0.090296 +v -0.395543 1.624762 0.088995 +v -0.395512 1.502481 0.087813 +v -0.289566 1.512830 0.120559 +v -0.291880 1.604061 0.121441 +v 0.320127 1.593491 0.121339 +v 0.301600 1.462898 0.120076 +v -0.264973 1.704476 0.122412 +v -0.147611 1.821831 0.123546 +v 0.012707 1.864787 0.123962 +v 0.173026 1.821831 0.123546 +v -0.264973 1.383854 0.119312 +v 0.296118 1.454522 0.119995 +v 0.290387 1.704476 0.122412 +v 0.173026 1.266498 0.118177 +v 0.012707 1.169546 0.336860 +v -0.173550 1.219450 0.337343 +v -0.338471 1.505638 0.340110 +v -0.344450 1.599349 0.341016 +v -0.341160 1.611629 0.341134 +v -0.237064 1.581918 0.361622 +v -0.234763 1.590505 0.361705 +v 0.369865 1.599349 0.341016 +v 0.348341 1.447626 0.339549 +v -0.309899 1.728289 0.342262 +v -0.173550 1.864632 0.343580 +v 0.012707 1.914538 0.344063 +v 0.198964 1.864632 0.343580 +v -0.309899 1.355793 0.338661 +v 0.341971 1.437896 0.339455 +v 0.335314 1.728289 0.342262 +v 0.198964 1.219450 0.337343 +v -0.232883 1.516382 0.360988 +v 0.012707 1.281343 0.358716 +v -0.117548 1.316242 0.359053 +v 0.262479 1.581918 0.361622 +v 0.247426 1.475813 0.360596 +v -0.212901 1.672090 0.362494 +v -0.117548 1.767439 0.363416 +v 0.012707 1.802339 0.363753 +v 0.142962 1.767439 0.363416 +v -0.212901 1.411592 0.359975 +v 0.242972 1.469008 0.360530 +v 0.238316 1.672090 0.362494 +v -0.337211 1.499027 0.340046 +v -0.232002 1.511759 0.360944 +v 0.142962 1.316242 0.359053 +v 0.244253 1.649934 0.362279 +v 0.343803 1.696609 0.341956 +v 0.368371 1.604925 0.341069 +v 0.261434 1.585817 0.361660 +v 0.350093 1.673134 0.341729 +v 0.248652 1.633518 0.362121 +v 0.257449 1.600686 0.361803 +v 0.362673 1.626186 0.341275 +v 0.356383 1.649660 0.341502 +v 0.253051 1.617102 0.361962 +v -0.212901 1.671165 0.458115 +v -0.234763 1.589581 0.457326 +v -0.150483 1.592276 0.271604 +v -0.135944 1.646535 0.272128 +v -0.232883 1.515458 0.456610 +v -0.237064 1.580993 0.457243 +v 0.238316 1.671165 0.458115 +v 0.244253 1.649009 0.457901 +v -0.117548 1.315318 0.454675 +v 0.012707 1.280418 0.454337 +v 0.014100 1.386664 0.269616 +v -0.072528 1.409875 0.269840 +v 0.262479 1.580993 0.457243 +v 0.247426 1.474888 0.456218 +v -0.117548 1.766515 0.459037 +v 0.012707 1.801414 0.459375 +v 0.142962 1.766515 0.459037 +v -0.212901 1.410667 0.455597 +v 0.242972 1.468084 0.456152 +v 0.142962 1.315318 0.454675 +v 0.180214 1.586565 0.271549 +v 0.170203 1.515998 0.270866 +v -0.072528 1.709948 0.272741 +v 0.014100 1.733159 0.272966 +v 0.100728 1.709948 0.272741 +v -0.135944 1.473287 0.270453 +v 0.167240 1.511474 0.270823 +v 0.164144 1.646535 0.272128 +v -0.232002 1.510834 0.456565 +v -0.148646 1.539905 0.271097 +v 0.100728 1.409875 0.269840 +v -0.152013 1.586565 0.271549 +v 0.168092 1.631800 0.271986 +v -0.149233 1.542980 0.271127 +v 0.261434 1.584893 0.457281 +v 0.179519 1.589158 0.271574 +v 0.171018 1.620883 0.271880 +v 0.248652 1.632594 0.457742 +v 0.257449 1.599761 0.457425 +v 0.176869 1.599047 0.271669 +v 0.253051 1.616178 0.457584 +v 0.173943 1.601835 0.271696 +v 0.044032 -0.281581 2.653725 +v 0.103907 -0.281581 2.653725 +v -0.069998 0.116802 2.426650 +v 0.042126 0.116802 2.426650 +v 0.098188 0.116802 2.426650 +v -0.068462 0.236090 2.371759 +v -0.061428 0.727369 2.149053 +v 0.041614 0.236090 2.371759 +v 0.096653 0.236090 2.371759 +v 0.089619 0.727369 2.149053 +v 0.039270 0.727369 2.149053 +v -0.076873 -0.381316 2.633466 +v -0.041226 -0.451792 2.698090 +v -0.004345 -0.451792 2.698090 +v 0.044418 -0.381316 2.633466 +v -0.076533 0.704381 2.684944 +v -0.084974 0.367866 2.901927 +v 0.057443 0.751341 1.513957 +v 0.089619 0.727369 2.149053 +v 0.096653 0.236090 2.371759 +v 0.142395 0.856383 1.617575 +v 0.165142 0.712044 2.506314 +v 0.104723 0.704381 2.684944 +v 0.113164 0.367866 2.901927 +v 0.179210 0.323941 2.725204 +v -0.136952 0.719706 2.327683 +v -0.061428 0.727369 2.149053 +v -0.068462 0.236090 2.371759 +v -0.151020 0.280015 2.548481 +v 0.105063 -0.381316 2.633466 +v 0.069416 -0.451792 2.698090 +v 0.032535 -0.451792 2.698090 +v 0.096653 0.236090 2.371759 +v 0.041614 0.236090 2.371759 +v -0.068462 0.236090 2.371759 +v 0.097477 0.151311 2.325201 +v -0.086817 0.259436 2.971379 +v 0.098188 0.116802 2.426650 +v 0.057406 0.838800 1.623579 +v 0.115007 0.259436 2.971379 +v 0.182282 0.211892 2.789803 +v -0.069998 0.116802 2.426650 +v -0.154092 0.164347 2.608227 +v -0.093679 -0.144299 3.229982 +v 0.103907 -0.281581 2.653725 +v 0.142395 0.852542 1.886433 +v 0.121869 -0.144299 3.229982 +v 0.193719 -0.190060 3.037896 +v -0.075717 -0.281581 2.653725 +v -0.165529 -0.235820 2.845811 +v -0.165529 -0.190060 3.037896 +v 0.041889 0.151311 2.325201 +v 0.193719 -0.235820 2.845811 +v -0.069287 0.151311 2.325201 +v -0.154092 0.211892 2.789803 +v 0.182282 0.164347 2.608227 +v 0.098188 0.116802 2.426650 +v 0.042126 0.116802 2.426650 +v -0.151020 0.323941 2.725204 +v 0.179210 0.280015 2.548481 +v -0.136952 0.712044 2.506314 +v 0.165142 0.719706 2.327683 +v -0.069998 0.116802 2.426650 +v 0.103907 -0.281581 2.653725 +v 0.142395 0.853645 1.817587 +v 0.044032 -0.281581 2.653725 +v 0.058021 0.830456 1.817255 +v -0.075717 -0.281581 2.653725 +v 0.058021 0.829357 1.886027 +v 0.142395 0.850475 2.015535 +v -0.165529 -0.235820 2.845811 +v -0.165529 -0.190060 3.037896 +v -0.167841 -0.277715 3.065995 +v 0.193719 -0.235820 2.845811 +v 0.196031 -0.329516 2.849731 +v -0.154092 0.211892 2.789803 +v 0.182282 0.164347 2.608227 +v -0.152668 0.256887 2.734533 +v 0.180858 0.204099 2.529867 +v -0.151020 0.323941 2.725204 +v 0.179210 0.280015 2.548481 +v 0.124737 -0.401702 2.909541 +v -0.096547 -0.351613 3.120992 +v 0.057384 0.833378 2.008721 +v 0.142395 0.660656 2.141604 +v 0.142395 0.757887 2.116556 +v 0.057482 0.747999 2.100130 +v 0.058887 0.660929 2.112417 +v -0.075717 -0.281581 2.653725 +v -0.015842 -0.281581 2.653725 +v -0.013936 0.116802 2.426650 +v -0.013424 0.236090 2.371759 +v -0.011079 0.727369 2.149053 +v -0.015842 -0.281581 2.653725 +v -0.016228 -0.381316 2.633466 +v -0.013936 0.116802 2.426650 +v -0.013699 0.151311 2.325201 +v -0.013424 0.236090 2.371759 +v 0.058073 0.489282 1.814222 +v 0.142395 0.465725 1.813838 +v 0.057353 0.483818 2.010995 +v 0.142395 0.467068 2.018012 +v 0.057530 0.573790 2.097813 +v 0.142395 0.563928 2.114681 +v -0.116928 0.856383 1.617575 +v -0.116928 0.853645 1.817588 +v -0.116928 0.665075 1.471334 +v -0.116928 0.761804 1.498257 +v -0.116928 0.757887 2.116556 +v -0.116928 0.660656 2.141604 +v -0.116928 0.852542 1.886434 +v -0.116928 0.851252 1.967026 +v -0.116928 0.850475 2.015535 +v -0.116928 0.467068 2.018012 +v -0.116928 0.465725 1.813838 +v -0.116928 0.563928 2.114681 +v -0.116928 0.567844 1.496382 +v -0.116928 0.475755 1.545882 +v 0.142395 0.851252 1.967026 +v 0.058021 0.828067 1.966620 +v -0.032555 0.829357 1.886027 +v -0.032555 0.828066 1.966620 +v 0.029331 0.825789 1.966584 +v 0.029331 0.827080 1.885991 +v -0.031917 0.833378 2.008721 +v -0.033420 0.660929 2.112417 +v -0.032063 0.573790 2.097813 +v -0.031886 0.483818 2.010995 +v -0.032606 0.489282 1.814222 +v -0.031746 0.490206 1.554891 +v -0.032287 0.575638 1.516128 +v -0.033412 0.664812 1.500463 +v -0.031976 0.751341 1.513957 +v -0.031940 0.838800 1.623579 +v -0.032555 0.830456 1.817256 +v -0.032016 0.747999 2.100130 +v -0.003864 0.825789 1.966584 +v -0.003864 0.827079 1.885991 +v 0.288283 1.507385 2.784997 +v 0.302085 1.508212 2.839944 +v 0.230214 1.516211 2.857877 +v 0.216412 1.515384 2.802931 +v 0.191263 1.579106 2.866714 +v 0.177461 1.578279 2.811768 +v 0.214563 1.649536 2.859801 +v 0.200761 1.648709 2.804855 +v 0.282569 1.674465 2.842344 +v 0.268767 1.673638 2.787397 +v 0.344071 1.635122 2.827487 +v 0.330269 1.634295 2.772541 +v 0.352756 1.561132 2.826420 +v 0.338954 1.560305 2.771473 +v 0.027960 1.486830 1.817147 +v -0.043911 1.494829 1.835080 +v -0.082862 1.557724 1.843918 +v -0.059561 1.628153 1.837005 +v 0.008445 1.653082 1.819547 +v 0.069946 1.613739 1.804691 +v 0.078631 1.539750 1.803623 +v 0.300826 1.568402 2.777984 +v 0.269088 1.535255 2.786455 +v 0.295386 1.614745 2.778653 +v 0.256864 1.639388 2.787958 +v 0.214269 1.623773 2.798893 +v 0.199675 1.579660 2.803223 +v 0.224072 1.540266 2.797688 +v 0.241280 1.499612 2.666382 +v 0.169409 1.507611 2.684315 +v 0.130459 1.570506 2.693152 +v 0.153759 1.640935 2.686239 +v 0.221765 1.665865 2.668782 +v 0.283266 1.626521 2.653925 +v 0.291951 1.552532 2.652858 +v 0.239544 1.532166 2.670439 +v 0.194527 1.537176 2.681670 +v 0.170131 1.576570 2.687206 +v 0.184725 1.620684 2.682875 +v 0.227320 1.636298 2.671942 +v 0.265841 1.611656 2.662636 +v 0.271281 1.565312 2.661968 +v 0.010262 2.020119 2.734168 +v -0.092189 2.020529 2.691733 +v -0.092189 2.130953 2.692801 +v 0.010262 2.130543 2.735235 +v -0.134626 2.021519 2.589287 +v -0.134626 2.131944 2.590354 +v -0.092189 2.022510 2.486840 +v -0.092189 2.132934 2.487908 +v 0.010262 2.022920 2.444405 +v 0.010262 2.133344 2.445473 +v 0.112714 2.022510 2.486840 +v 0.112714 2.132934 2.487908 +v 0.155150 2.021519 2.589287 +v 0.155150 2.131944 2.590354 +v 0.112714 2.020529 2.691733 +v 0.112714 2.130953 2.692801 +v 0.192843 1.305413 6.563009 +v 0.192843 1.649577 6.527719 +v -0.152244 1.649577 6.527719 +v -0.152244 1.305413 6.563009 +v 0.192843 0.009952 6.375108 +v -0.152244 0.009952 6.375108 +v 0.192843 0.364782 6.457143 +v 0.192843 0.904788 6.540969 +v -0.152244 0.904788 6.540969 +v -0.152244 0.364782 6.457143 +v -0.288967 0.897229 6.368784 +v -0.288967 0.423273 6.295212 +v 0.292823 1.563486 6.378878 +v 0.292823 1.256055 6.410403 +v 0.292823 0.898192 6.390715 +v 0.292823 0.415824 6.315836 +v 0.292823 0.098867 6.242557 +v -0.288967 0.111844 6.223210 +v -0.288967 1.248852 6.388129 +v -0.288967 1.550920 6.357154 +v 0.292823 1.619638 3.269124 +v 0.292823 1.591547 4.825535 +v 0.292823 1.563486 6.378878 +v -0.288967 1.550920 6.357154 +v -0.288967 1.578493 4.830902 +v -0.288967 1.606093 3.301634 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.9871 0.1600 +vn -1.0000 -0.0000 -0.0000 +vn 0.8425 0.0019 -0.5387 +vn -0.0000 -1.0000 -0.0097 +vn -0.0000 -0.2819 -0.9594 +vn -0.0000 -0.0289 -0.9996 +vn 0.9934 -0.1149 -0.0011 +vn -0.0000 -0.9775 -0.2111 +vn -0.0000 -0.0316 0.9995 +vn -0.9736 0.2281 0.0100 +vn -0.9733 0.2293 0.0098 +vn -0.9732 0.2300 0.0089 +vn -0.0000 -0.7392 -0.6735 +vn -0.0000 -0.0097 1.0000 +vn -0.0000 -0.9731 0.2305 +vn -0.0000 0.5530 0.8332 +vn -0.0000 0.9994 0.0348 +vn 0.9995 -0.0003 0.0304 +vn -0.9995 -0.0003 0.0304 +vn -0.9284 -0.0036 0.3715 +vn 0.9284 -0.0036 0.3714 +vn -0.0000 1.0000 -0.0012 +vn -0.0000 -0.5366 0.8438 +vn -0.0000 0.0052 -1.0000 +vn 0.8422 0.0034 -0.5392 +vn 0.8410 0.0028 -0.5410 +vn 0.8404 0.0047 -0.5420 +vn -0.0000 -0.6972 0.7169 +vn -0.8420 0.0058 -0.5394 +vn -0.0000 0.5419 0.8404 +vn -0.0000 0.5394 0.8421 +vn -0.9934 -0.1149 -0.0011 +vn -0.9934 -0.1150 -0.0003 +vn -0.7671 -0.4112 -0.4924 +vn 0.9934 -0.1149 -0.0003 +vn -0.0000 -0.6074 -0.7944 +vn 0.7671 -0.4112 -0.4924 +vn -0.8425 0.0036 -0.5387 +vn -0.0000 -0.0067 1.0000 +vn 0.8425 0.0036 -0.5387 +vn -0.0000 0.0067 -1.0000 +vn -0.0000 0.0036 -1.0000 +vn -0.8425 0.0019 -0.5387 +vn -0.0000 -0.0036 1.0000 +vn 0.9966 0.0818 0.0008 +vn -0.0000 0.5586 0.8294 +vn -0.9966 0.0819 0.0008 +vn -0.9966 0.0818 0.0002 +vn -0.8023 0.3076 -0.5116 +vn 0.9966 0.0818 0.0002 +vn -0.0000 0.4825 -0.8759 +vn 0.8023 0.3076 -0.5116 +vn 0.9987 -0.0000 -0.0512 +vn 1.0000 -0.0000 0.0027 +vn 0.7071 -0.0000 0.7071 +vn -0.0000 -0.0000 -0.0000 +vn 0.0025 -0.7128 -0.7013 +vn 0.0025 -0.7071 0.7071 +vn 0.0036 -1.0000 -0.0000 +vn -0.0000 1.0000 0.0047 +vn -0.0000 1.0000 0.0097 +vn -0.0000 1.0000 0.0027 +vn 0.9966 0.0096 -0.0815 +vn 0.7714 0.0075 0.6363 +vn 1.0000 0.0097 -0.0000 +vn 0.3994 0.5930 -0.6992 +vn 0.5573 0.8275 -0.0674 +vn 0.3950 0.5865 0.7071 +vn -0.3535 -0.1464 0.9239 +vn -0.3827 -0.0000 0.9239 +vn -0.0000 -0.0000 1.0000 +vn 0.9793 0.0026 0.2024 +vn 0.7096 0.0019 -0.7046 +vn 1.0000 0.0027 -0.0000 +vn 0.3535 0.1464 0.9239 +vn 0.3827 -0.0000 0.9239 +vn -0.0035 0.9829 0.1840 +vn -0.0037 0.9823 0.1873 +vn 0.0037 0.9823 0.1873 +vn -0.0030 0.9811 0.1935 +vn 0.0015 0.9820 0.1887 +vn 0.0019 0.9820 0.1890 +vn -0.0000 0.9790 0.2038 +vn -0.0000 0.9991 0.0429 +vn -0.0000 -0.9991 -0.0429 +vn -0.0000 -0.0000 -1.0000 +vn -0.8418 0.0058 -0.5397 +vn -0.8407 0.0065 -0.5414 +vn -0.8425 0.0039 -0.5387 +vn 0.8425 0.0028 -0.5387 +vn -0.0000 -0.0096 1.0000 +vn -0.9993 -0.0327 0.0153 +vn 0.9284 -0.0036 0.3715 +vn -0.8390 0.0080 -0.5441 +vn -0.8386 0.0058 -0.5447 +vn 0.8415 0.0028 -0.5403 +vn 0.8406 0.0014 -0.5417 +vn 0.8002 -0.0000 0.5997 +vn 0.7071 -0.0000 -0.7071 +vn 1.0000 -0.0000 -0.0097 +vn -0.0147 0.9816 0.1903 +vn -0.0124 0.9821 0.1881 +vn -0.0155 0.9824 0.1861 +vn -0.0475 0.9810 0.1879 +vn 0.9911 0.0096 0.1327 +vn 0.7072 0.0068 -0.7070 +vn -0.9641 -0.0000 0.2654 +vn -0.7071 -0.0000 -0.7071 +vn -1.0000 -0.0000 0.0097 +vn -0.9725 0.2329 0.0100 +vn -0.9959 -0.0009 0.0906 +vn -0.9983 0.0006 -0.0585 +vn 0.0348 0.9991 -0.0262 +vn -0.0000 0.0097 -1.0000 +vn 0.0479 0.3613 -0.9312 +vn -0.0000 -1.0000 -0.0096 +vn -0.9999 0.0108 0.0001 +vn -0.9993 -0.0321 -0.0206 +vn -0.9994 -0.0321 -0.0163 +vn -0.9743 0.2251 0.0097 +vn -0.9741 0.2258 0.0106 +vn -0.9745 0.2242 0.0022 +vn -0.9995 -0.0315 -0.0025 +vn -0.9996 -0.0272 -0.0022 +vn -0.0000 0.9970 0.0775 +vn -0.9140 0.4057 -0.0091 +vn -0.0250 0.3883 0.9212 +vn -0.0347 0.9719 0.2330 +vn 0.9998 0.0078 0.0165 +vn -0.0000 0.0044 -1.0000 +vn 0.9126 0.0018 -0.4089 +vn -0.8819 0.0021 -0.4715 +vn -0.0000 -0.0022 1.0000 +vn -0.0000 0.0311 0.9995 +vn -0.0000 0.9999 0.0131 +vn -0.0000 0.9999 0.0122 +vn -0.0000 0.0343 -0.9994 +vn -0.0000 0.0082 -1.0000 +vn -0.0000 -0.0089 -1.0000 +vn -0.0000 -1.0000 0.0048 +vn -0.0000 -0.9993 -0.0374 +vn -0.0000 -1.0000 0.0066 +vn -0.0000 -0.9981 -0.0618 +vn -0.0000 0.2181 0.9759 +vn -1.0000 -0.0026 0.0020 +vn -0.9999 -0.0100 -0.0002 +vn -1.0000 0.0047 -0.0047 +vn -1.0000 0.0029 0.0053 +vn 1.0000 0.0029 0.0053 +vn 1.0000 -0.0026 0.0020 +vn 0.9999 -0.0100 -0.0002 +vn 1.0000 0.0022 0.0001 +vn 1.0000 -0.0063 -0.0000 +vn -0.0000 0.0413 0.9991 +vn -0.0001 -0.0000 -1.0000 +vn -0.0000 0.2947 -0.9556 +vn -0.0000 0.8943 0.4474 +vn -0.0000 -0.0733 0.9973 +vn -0.0000 0.0734 -0.9973 +vn 0.9926 0.1211 0.0012 +vn -0.9993 0.0377 0.0004 +vn -0.0000 0.0342 -0.9994 +vn 0.0001 -0.0000 -1.0000 +vn -0.1592 0.3844 0.9093 +vn 0.9885 -0.0111 0.1510 +vn -0.0733 0.9973 -0.0000 +vn -0.0519 0.7052 -0.7071 +vn -0.0720 0.9793 0.1891 +vn 0.0720 -0.9793 0.1891 +vn 0.0734 -0.9973 -0.0000 +vn 0.0519 -0.7052 -0.7071 +vn -0.0000 0.1701 -0.9854 +vn -0.0000 -0.0970 0.9953 +vn -0.9979 -0.0402 -0.0501 +vn 0.2738 0.4318 0.8594 +vn -0.0000 0.9786 0.2056 +vn -0.0000 -0.9951 0.0988 +vn -0.0000 -0.0734 0.9973 +vn 0.4239 -0.9013 0.0895 +vn -0.1710 -0.9768 0.1288 +vn -0.0000 0.9914 -0.1307 +vn 0.9992 -0.0394 0.0052 +vn -0.9996 -0.0272 0.0036 +vn -0.8988 -0.0042 0.4384 +vn 0.7896 -0.0059 0.6136 +vn -1.0000 0.0001 -0.0091 +vn 1.0000 -0.0000 -0.0021 +vn -0.9994 -0.0346 -0.0003 +vn 1.0000 -0.0079 -0.0001 +vn 0.9985 0.0541 0.0005 +vn -0.9992 -0.0342 -0.0218 +vn -0.0132 0.5967 0.8023 +vn -0.0162 -0.0611 0.9980 +vn -0.0775 -0.9969 -0.0096 +vn -0.0000 -0.2860 0.9582 +vn 0.9999 -0.0126 0.0062 +vn 0.9999 -0.0125 -0.0001 +vn 0.9999 -0.0124 -0.0073 +vn -0.9346 -0.3556 -0.0034 +vn 0.0326 -0.5854 -0.8101 +vn 0.0116 0.7093 -0.7048 +vn -0.0000 -0.9914 0.1307 +vn -0.0000 0.9998 0.0199 +vn -0.2738 0.4318 0.8594 +vn -0.1333 0.0532 -0.9896 +vn -0.0000 0.0537 -0.9986 +vn 0.1672 0.0956 -0.9813 +vn -0.0000 0.9999 0.0153 +vn -0.0000 0.0970 -0.9953 +vn -0.0000 0.2948 -0.9556 +vn -0.0000 0.7042 0.7100 +vn -0.0000 1.0000 0.0099 +vn -0.0824 0.7771 -0.6240 +vn 0.9465 0.0372 0.3204 +vn -0.0000 0.9968 -0.0797 +vn -0.0000 -0.7679 0.6406 +vn -0.9465 0.0372 0.3205 +vn -0.0000 0.9936 -0.1129 +vn 0.9990 -0.0051 -0.0442 +vn -0.0000 -1.0000 -0.0055 +vn -0.9990 -0.0051 -0.0442 +vn -0.0000 -0.9999 -0.0166 +vn -0.0000 -0.6981 -0.7160 +vn -0.0000 0.9999 0.0166 +vn -0.0000 0.0198 -0.9998 +vn -0.0000 0.7070 0.7072 +vn -0.0000 -0.0224 0.9997 +vn -0.0000 1.0000 0.0046 +vn -0.0000 -0.9973 0.0734 +vn -0.0000 0.6259 -0.7799 +vn -0.0000 -0.9931 0.1170 +vn -0.0000 -1.0000 -0.0046 +vn -0.0000 0.9978 -0.0670 +vn -0.0000 -0.0198 0.9998 +vn -0.0000 -0.9998 -0.0176 +vn 0.0013 1.0000 0.0096 +vn -0.0000 0.3280 0.9447 +vn -0.0000 -1.0000 -0.0098 +vn -0.0000 0.9999 0.0170 +vn 0.0013 -0.9998 -0.0216 +vn -0.0000 -0.0577 0.9983 +vn -0.0000 0.9889 -0.1484 +vn -0.0000 0.7723 -0.6352 +vn -0.0023 0.3616 0.9323 +vn -0.0038 0.3609 0.9326 +vn -0.0042 0.3593 0.9332 +vn -0.0000 0.3176 0.9482 +vn -0.0016 0.3559 0.9345 +vn -0.0000 0.3568 0.9342 +vn -0.0005 0.3634 0.9316 +vn 0.0017 0.3617 0.9323 +vn 0.0002 0.3635 0.9316 +vn -0.0000 -0.9998 -0.0210 +vn -0.0000 -0.9998 -0.0217 +vn 0.0020 0.9999 0.0166 +vn -0.0000 1.0000 0.0096 +vn -0.0000 -1.0000 0.0038 +vn 0.0312 -0.9995 0.0038 +vn 0.0195 -0.9929 0.1170 +vn -0.1252 0.6209 -0.7738 +vn -0.0000 -0.9973 0.0733 +vn -0.0000 0.9999 -0.0152 +vn -0.0000 0.7797 -0.6261 +vn 0.0014 1.0000 0.0097 +vn -0.0000 0.4355 -0.9002 +vn -1.0000 0.0052 0.0052 +vn -0.0000 0.1871 0.9823 +vn -0.0000 0.9700 0.2429 +vn 0.9659 0.2586 -0.0110 +vn -0.9813 0.1906 0.0275 +vn -0.0000 0.1887 -0.9820 +vn 0.5087 0.8556 -0.0962 +vn 0.9507 0.2307 -0.2071 +vn -0.9239 0.3803 -0.0427 +vn -0.4938 0.8655 0.0838 +vn 0.4938 0.8655 0.0838 +vn 0.8507 0.5109 0.1237 +vn -0.9067 0.3518 -0.2326 +vn -0.2383 0.8589 -0.4533 +vn -0.3827 -0.9181 0.1032 +vn -0.9685 -0.2475 0.0278 +vn 0.9243 -0.3038 0.2310 +vn 0.0998 -0.9949 0.0144 +vn 0.2646 0.6033 0.7523 +vn 0.6990 0.3607 0.6175 +vn -0.6810 0.3558 0.6400 +vn -0.2608 0.5979 0.7580 +vn 0.2436 0.0146 0.9698 +vn -0.2436 -0.0146 -0.9698 +vn -0.1833 -0.0750 -0.9802 +vn -0.1695 -0.0057 -0.9855 +vn -0.2016 0.0541 -0.9780 +vn -0.2753 0.0800 -0.9580 +vn -0.3604 0.0277 -0.9324 +vn -0.3529 -0.0877 -0.9316 +vn -0.2532 -0.1242 -0.9594 +vn -0.9811 0.1936 0.0019 +vn -0.9914 -0.1311 -0.0013 +vn -0.9980 -0.0635 -0.0006 +vn -0.9914 -0.1312 -0.0013 +vn 0.9788 -0.2046 -0.0020 +vn 0.9914 0.1311 0.0013 +vn 0.9980 0.0635 0.0006 +vn 0.9914 0.1312 0.0013 +vn 0.0094 0.0215 -0.9997 +vn -0.6219 -0.7830 -0.0077 +vn -0.1312 0.9913 0.0096 +vn -0.6218 -0.7831 -0.0076 +vn -0.1310 0.9913 0.0096 +vn 0.0002 0.0097 -1.0000 +vn 0.0001 -0.0097 1.0000 +vn -0.0001 0.0097 -1.0000 +vn 0.0020 -0.0263 0.9997 +vn 0.0095 0.0215 -0.9997 +vn 0.0020 -0.0262 0.9997 +vn 0.1312 -0.9913 -0.0096 +vn -0.1034 0.7877 -0.6073 +vn -0.6218 -0.7831 -0.0075 +vn -0.0948 0.7102 0.6976 +vn 0.0001 0.0097 -1.0000 +vn -0.0000 0.0096 -1.0000 +vn -0.9736 0.2282 0.0013 +vn -0.9734 0.2291 0.0022 +vn 0.8390 0.0080 -0.5441 +vn 0.8386 0.0058 -0.5447 +vn -0.8425 0.0028 -0.5387 +vn -1.0000 -0.0000 0.0027 +vn -0.7071 -0.0000 0.7071 +vn -0.9987 -0.0000 -0.0512 +vn 0.9794 -0.0000 -0.2018 +vn 0.0025 -0.7071 -0.7071 +vn 0.0035 -1.0000 -0.0000 +vn 0.0025 -0.7128 0.7013 +vn 0.7240 0.0070 -0.6897 +vn 0.9966 0.0096 0.0815 +vn 0.3950 0.5865 -0.7071 +vn 0.3994 0.5930 0.6992 +vn 0.7072 0.0019 0.7070 +vn 0.9793 0.0026 -0.2024 +vn 0.0147 0.9816 0.1903 +vn 0.0156 0.9824 0.1861 +vn 0.0124 0.9821 0.1881 +vn 0.0475 0.9810 0.1879 +vn -0.0033 0.9814 0.1922 +vn 0.0030 0.9812 0.1932 +vn -0.0020 0.9820 0.1890 +vn 0.9701 0.2425 -0.0000 +vn -0.8415 0.0028 -0.5403 +vn -0.8405 0.0014 -0.5418 +vn 0.8420 0.0058 -0.5394 +vn -0.9995 -0.0327 -0.0003 +vn -0.8422 0.0034 -0.5392 +vn -0.8404 0.0047 -0.5420 +vn -0.8410 0.0028 -0.5410 +vn 0.8418 0.0058 -0.5397 +vn 0.8425 0.0039 -0.5387 +vn 0.8408 0.0065 -0.5414 +vn 1.0000 -0.0000 0.0097 +vn 0.8059 -0.0000 -0.5921 +vn -1.0000 -0.0000 -0.0039 +vn -0.8002 -0.0000 0.5997 +vn 0.0035 0.9829 0.1839 +vn 0.7171 0.0069 0.6969 +vn 0.9911 0.0096 -0.1327 +vn 0.9641 -0.0000 0.2654 +vn -0.9846 0.1294 0.1179 +vn -0.9995 -0.0315 -0.0003 +vn -0.9749 0.2224 0.0095 +vn -0.9997 0.0096 0.0213 +vn -0.0000 0.9980 -0.0633 +vn 0.0651 0.3722 -0.9259 +vn -0.9999 0.0046 -0.0124 +vn -0.9999 0.0027 -0.0144 +vn -0.9996 -0.0273 -0.0004 +vn -0.9995 -0.0316 -0.0003 +vn -0.9738 0.2275 0.0022 +vn -0.9740 0.2267 0.0031 +vn -0.9735 0.2285 0.0022 +vn -0.9996 -0.0274 -0.0003 +vn -0.9999 0.0046 -0.0119 +vn -0.9999 0.0025 -0.0101 +vn 0.0192 0.9943 0.1046 +vn -0.8869 0.4537 0.0873 +vn 0.0385 0.4262 0.9038 +vn -0.0790 0.9958 0.0465 +vn 0.9850 0.0897 -0.1476 +vn -0.9999 -0.0100 -0.0001 +vn -1.0000 -0.0001 0.0017 +vn -1.0000 -0.0000 0.0059 +vn -1.0000 0.0046 0.0060 +vn -0.9999 0.0005 0.0148 +vn -1.0000 -0.0025 0.0081 +vn -0.9999 -0.0035 0.0126 +vn -0.9999 -0.0101 -0.0001 +vn -1.0000 -0.0008 -0.0030 +vn -1.0000 -0.0005 -0.0056 +vn -1.0000 0.0019 -0.0042 +vn -1.0000 -0.0000 -0.0024 +vn -1.0000 -0.0001 -0.0023 +vn -1.0000 -0.0098 -0.0001 +vn -1.0000 -0.0013 -0.0011 +vn -1.0000 0.0098 -0.0001 +vn -1.0000 0.0022 0.0001 +vn -1.0000 -0.0004 -0.0020 +vn -1.0000 -0.0030 -0.0018 +vn -1.0000 -0.0006 -0.0052 +vn -1.0000 0.0008 -0.0030 +vn -0.9999 0.0034 0.0131 +vn -0.9999 -0.0012 0.0136 +vn -0.9998 0.0029 0.0177 +vn -1.0000 -0.0041 0.0081 +vn -1.0000 0.0001 0.0061 +vn -1.0000 0.0024 -0.0000 +vn -1.0000 0.0098 0.0004 +vn 0.9998 0.0029 0.0177 +vn 0.9999 -0.0012 0.0136 +vn 0.9999 0.0034 0.0131 +vn 1.0000 0.0098 0.0004 +vn 1.0000 0.0001 0.0061 +vn 1.0000 -0.0041 0.0081 +vn 1.0000 0.0024 -0.0000 +vn 0.9999 -0.0100 -0.0001 +vn 0.9999 -0.0035 0.0126 +vn 1.0000 -0.0025 0.0081 +vn 0.9999 0.0005 0.0148 +vn 0.9999 -0.0101 -0.0001 +vn 1.0000 -0.0000 0.0059 +vn 1.0000 0.0046 0.0060 +vn 1.0000 -0.0001 0.0017 +vn 1.0000 -0.0005 -0.0056 +vn 1.0000 -0.0008 -0.0030 +vn 1.0000 0.0018 -0.0041 +vn 1.0000 -0.0000 -0.0024 +vn 1.0000 -0.0013 -0.0011 +vn 1.0000 -0.0001 -0.0023 +vn 1.0000 -0.0098 -0.0001 +vn 1.0000 0.0098 -0.0001 +vn 1.0000 0.0008 -0.0030 +vn 1.0000 -0.0006 -0.0051 +vn 1.0000 0.0047 -0.0047 +vn 1.0000 -0.0004 -0.0020 +vn 1.0000 -0.0030 -0.0018 +vn 1.0000 -0.0045 0.0044 +vn 1.0000 -0.0071 -0.0001 +vn 0.9880 0.0321 0.1513 +vn -0.0000 -0.4489 0.8936 +vn 0.0519 -0.7052 0.7071 +vn 0.0720 -0.9793 -0.1891 +vn -0.1672 0.0956 -0.9813 +vn 0.9939 -0.0813 0.0752 +vn 0.9884 -0.0147 0.1510 +vn -0.9980 -0.0569 -0.0287 +vn 0.9968 -0.0499 -0.0623 +vn 0.9969 -0.0707 -0.0356 +vn -0.0000 0.6252 0.7804 +vn 0.9982 -0.0540 -0.0248 +vn -0.9990 -0.0393 -0.0221 +vn 0.9996 0.0172 -0.0213 +vn -1.0000 0.0043 -0.0000 +vn -0.0000 0.5989 0.8008 +vn -0.0164 -0.0607 0.9980 +vn -0.0165 0.0076 0.9998 +vn 0.9999 -0.0115 0.0061 +vn 0.0597 -0.5894 -0.8056 +vn 0.0548 0.7394 -0.6710 +vn -0.0003 0.9998 0.0198 +vn 0.1333 0.0532 -0.9896 +vn -0.4017 0.5726 0.7147 +vn 0.4017 0.5726 0.7147 +vn -0.0014 1.0000 0.0097 +vn -0.0000 0.7946 -0.6071 +vn 0.9465 0.0372 0.3205 +vn 0.0016 0.3559 0.9345 +vn 0.0022 0.3616 0.9323 +vn 0.0042 0.3593 0.9332 +vn 0.0038 0.3609 0.9326 +vn 0.0008 0.3633 0.9317 +vn -0.0018 0.3621 0.9321 +vn 0.0010 0.3630 0.9318 +vn -0.0013 -0.9998 -0.0216 +vn -0.0013 1.0000 0.0096 +vn -0.0111 0.9979 -0.0646 +vn -0.0000 0.2995 -0.9541 +vn -0.9976 0.0689 0.0093 +vn -0.6286 -0.7775 0.0165 +vn -1.0000 0.0053 0.0073 +vn -1.0000 -0.0002 0.0074 +vn -1.0000 0.0075 -0.0000 +vn -1.0000 0.0012 -0.0038 +vn -1.0000 0.0079 -0.0005 +vn 0.9974 0.0718 0.0091 +vn 0.1496 0.9886 -0.0161 +vn -0.9659 0.2585 -0.0111 +vn -0.0803 0.3893 -0.9176 +vn 0.3755 0.8796 -0.2919 +vn 0.9239 0.3803 -0.0427 +vn -0.9239 0.3803 -0.0428 +vn -0.3827 0.9181 -0.1032 +vn 0.2524 0.9247 -0.2851 +vn -0.9103 0.3068 -0.2779 +vn -0.5087 0.8556 -0.0962 +vn -0.1106 -0.9636 -0.2436 +vn -0.9786 -0.1938 -0.0687 +vn 0.9879 -0.1550 -0.0049 +vn -0.0041 -0.9937 0.1117 +vn -0.0023 0.0263 -0.9997 +vn -0.0095 -0.0215 0.9997 +vn -0.0021 0.0262 -0.9997 +vn -0.0094 -0.0215 0.9997 +vn 0.1310 -0.9913 -0.0096 +vn -0.1035 0.7877 -0.6073 +vn -0.1821 0.0393 0.9825 +vn -0.1579 0.0817 0.9841 +vn -0.0000 1.0000 0.0040 +vn -0.5000 0.8660 0.0027 +vn -0.4993 -0.8660 -0.0267 +vn -0.0011 -0.9995 -0.0309 +vn 0.0011 -0.9995 -0.0309 +vn 0.9018 -0.4309 -0.0319 +vn 0.9971 0.0692 -0.0308 +vn 0.9970 0.0714 -0.0307 +vn -0.8653 0.5010 -0.0162 +vn -0.5010 0.8653 -0.0165 +vn -0.8664 0.4991 -0.0162 +vn 0.0011 0.9998 -0.0191 +vn 0.4992 0.8662 -0.0233 +vn -0.0011 0.9998 -0.0191 +vn -0.8797 -0.4751 -0.0221 +vn -0.5005 -0.8653 -0.0267 +vn 0.5870 -0.8089 -0.0336 +vn 0.7893 -0.6132 -0.0307 +vn 0.7850 -0.6187 -0.0307 +vn -0.4987 0.8666 -0.0165 +vn 0.5003 0.8655 -0.0233 +vn 0.8605 0.5086 -0.0279 +vn -0.1906 -0.0335 0.9811 +vn -0.1872 0.0078 0.9823 +vn -0.1869 0.0101 0.9823 +vn 0.5851 -0.8102 -0.0336 +vn -0.9912 0.1311 -0.0167 +vn -0.9913 0.1309 -0.0166 +vn 0.5000 0.8660 0.0027 +vn 0.8660 0.5000 -0.0009 +vn -0.0000 -0.9999 -0.0154 +vn 0.5864 -0.8099 -0.0135 +vn 0.5862 -0.8101 -0.0135 +vn -0.9936 0.1132 -0.0044 +vn -0.8660 0.5000 -0.0009 +vn -0.9936 0.1131 -0.0044 +vn -0.5000 -0.8659 -0.0141 +vn 0.9358 -0.3524 -0.0087 +vn 0.9982 0.0604 -0.0049 +vn 0.9982 0.0605 -0.0049 +vn -0.8838 -0.4678 -0.0102 +vn 0.9358 -0.3525 -0.0087 +vn -0.8838 -0.4679 0.0041 +vn -0.5000 -0.8660 0.0002 +vn 0.5000 0.8659 0.0170 +vn -0.0000 0.9998 0.0183 +vn -0.5000 0.8659 0.0170 +vn -0.8660 0.4999 0.0134 +vn 0.9981 0.0602 0.0089 +vn 0.9358 -0.3525 0.0046 +vn 0.9981 0.0604 0.0089 +vn -0.0000 -1.0000 -0.0011 +vn -0.9935 0.1131 0.0094 +vn -0.9936 0.1130 0.0094 +vn 0.5864 -0.8100 0.0007 +vn 0.5861 -0.8102 0.0007 +vn 0.8660 0.4999 0.0134 +vn 0.9357 -0.3527 0.0046 +vn 0.6006 0.5955 0.5336 +vn 0.7283 0.4152 0.5451 +vn 0.2198 -0.8153 -0.5357 +vn -0.0000 -0.8357 -0.5492 +vn 0.8871 -0.3274 -0.3254 +vn 0.5581 -0.7533 -0.3481 +vn 0.8846 -0.3343 -0.3252 +vn -0.4697 -0.8102 -0.3505 +vn -0.8315 -0.4341 -0.3467 +vn -0.2441 -0.9142 0.3235 +vn -0.4697 0.8168 -0.3349 +vn -0.8136 0.4730 -0.3381 +vn 0.9417 0.0560 -0.3318 +vn 0.9411 0.0639 -0.3320 +vn -0.0000 -0.9361 -0.3518 +vn -0.9369 0.1122 -0.3310 +vn -0.9375 0.1074 -0.3310 +vn 0.1822 0.0393 0.9825 +vn 0.1821 0.0393 0.9825 +vn 0.1821 0.0394 0.9825 +vn 0.1702 -0.1209 0.9780 +vn 0.1130 -0.1548 0.9815 +vn 0.1047 -0.1596 0.9816 +vn 0.5456 -0.7620 -0.3487 +vn 0.1886 -0.0010 0.9821 +vn 0.1878 0.0039 0.9822 +vn -0.8837 -0.4679 0.0154 +vn -0.4999 -0.8660 0.0116 +vn -0.0000 -0.9996 -0.0296 +vn -0.2588 -0.9655 -0.0286 +vn -0.7070 0.7067 0.0261 +vn -0.8658 0.4997 0.0248 +vn -0.8659 0.4997 0.0248 +vn 0.9980 0.0600 0.0199 +vn 0.9357 -0.3524 0.0152 +vn 0.9980 0.0604 0.0199 +vn -0.0000 -0.9999 0.0103 +vn -0.9934 0.1131 0.0204 +vn -0.9934 0.1128 0.0204 +vn 0.5866 -0.8098 0.0120 +vn 0.5858 -0.8104 0.0120 +vn 0.8659 0.4997 0.0248 +vn 0.7070 0.7068 0.0261 +vn 0.7070 0.7067 0.0261 +vn 0.2588 -0.9655 -0.0286 +vn -0.1893 -0.0456 0.9809 +vn -0.1906 -0.0337 0.9811 +vn 0.3383 0.2001 -0.9195 +vn 0.3751 0.0362 -0.9263 +vn 0.3331 0.2137 -0.9184 +vn 0.2948 -0.2253 -0.9286 +vn 0.3442 -0.1181 -0.9314 +vn 0.3304 -0.1463 -0.9324 +vn -0.3207 -0.0291 -0.9467 +vn -0.3108 -0.1408 -0.9400 +vn -0.2987 -0.1576 -0.9412 +vn 0.2095 -0.2501 -0.9453 +vn 0.3112 -0.1946 -0.9302 +vn -0.1672 -0.2717 -0.9477 +vn -0.1608 -0.2749 -0.9479 +vn -0.0000 0.4273 -0.9041 +vn 0.1994 0.3681 -0.9082 +vn -0.2088 0.3617 -0.9086 +vn -0.3331 0.2137 -0.9184 +vn -0.3401 0.1973 -0.9195 +vn 0.3739 0.0324 -0.9269 +vn 0.9356 -0.3528 0.0152 +vn -0.0000 -0.3122 -0.9500 +vn -0.5000 -0.8659 -0.0118 +vn -0.8838 -0.4678 -0.0080 +vn 0.5000 0.8660 0.0049 +vn -0.0000 1.0000 0.0062 +vn -0.5000 0.8660 0.0049 +vn -0.8660 0.5000 0.0014 +vn 0.9358 -0.3524 -0.0066 +vn 0.9982 0.0604 -0.0028 +vn 0.9982 0.0605 -0.0028 +vn -0.0000 -0.9999 -0.0131 +vn -0.9936 0.1132 -0.0023 +vn -0.9936 0.1131 -0.0023 +vn 0.5862 -0.8101 -0.0113 +vn 0.5864 -0.8100 -0.0113 +vn 0.8660 0.5000 0.0014 +vn 0.2877 0.0123 0.9576 +vn 0.2456 0.1353 0.9599 +vn 0.2875 0.0040 0.9578 +vn 0.2520 -0.2136 0.9439 +vn 0.1771 -0.2377 0.9551 +vn 0.1646 -0.2450 0.9554 +vn -0.2930 0.0306 0.9556 +vn -0.2482 0.1340 0.9594 +vn -0.2944 -0.0398 0.9548 +vn -0.2524 -0.1425 0.9571 +vn -0.2914 -0.0406 0.9557 +vn -0.0000 -0.2958 0.9552 +vn 0.1433 0.2389 0.9604 +vn 0.2469 0.1363 0.9594 +vn -0.0000 0.2773 0.9608 +vn -0.1433 0.2389 0.9604 +vn 0.2797 -0.1228 0.9522 +vn 0.2659 -0.1832 0.9464 +vn -0.1433 -0.2575 0.9556 +vn -0.2517 -0.1465 0.9567 +vn -0.4866 -0.8406 -0.2380 +vn -0.0000 -0.9709 -0.2393 +vn 0.1579 0.0817 0.9841 +vn -0.0000 -0.1919 0.9814 +vn -0.1621 -0.0934 0.9823 +vn -0.1893 -0.0455 0.9809 +vn 0.0912 0.1484 0.9847 +vn -0.0912 0.1484 0.9847 +vn -0.0000 0.1729 0.9849 +vn 0.1818 -0.0810 0.9800 +vn -0.0912 -0.1674 0.9817 +vn -0.1608 -0.0957 0.9823 +vn -0.9946 -0.1025 -0.0180 +vn -0.9685 -0.1066 -0.2252 +vn -0.9681 -0.1203 -0.2196 +vn -0.9695 0.0996 -0.2239 +vn -0.8888 -0.2388 0.3913 +vn -0.8264 -0.4164 0.3790 +vn -0.8872 -0.2446 0.3912 +vn 0.9733 0.0582 -0.2219 +vn 0.9147 -0.3399 -0.2185 +vn 0.9130 -0.3446 -0.2184 +vn -0.8428 0.4888 -0.2252 +vn -0.4866 0.8450 -0.2217 +vn -0.0000 0.9754 -0.2205 +vn 0.4866 0.8450 -0.2217 +vn -0.8609 -0.4517 -0.2341 +vn -0.8595 -0.4544 -0.2342 +vn 0.8187 -0.5339 -0.2115 +vn 0.8428 0.4888 -0.2252 +vn 0.5753 -0.7831 -0.2362 +vn -0.9951 0.0989 0.0010 +vn -0.9659 0.2588 0.0025 +vn -0.7876 -0.4941 0.3683 +vn -0.8898 -0.2422 0.3869 +vn -0.8897 -0.2422 0.3869 +vn -0.9009 -0.1935 0.3885 +vn -0.7590 0.4928 0.4255 +vn -0.5352 0.6962 0.4784 +vn -0.5025 0.7178 0.4820 +vn -0.9131 -0.0646 0.4026 +vn -0.9135 -0.0545 0.4031 +vn 0.8994 0.1124 0.4223 +vn 0.8896 0.1656 0.4257 +vn 0.9003 0.1074 0.4219 +vn 0.9066 -0.0888 0.4126 +vn 0.9058 -0.1000 0.4119 +vn -0.7936 -0.4755 0.3795 +vn 0.8851 -0.2410 0.3982 +vn -0.0011 0.8668 0.4986 +vn 0.0008 0.8668 0.4986 +vn 0.8660 0.5000 0.0048 +vn 0.9659 0.2588 0.0025 +vn -0.5000 -0.8660 -0.0084 +vn 0.9358 -0.3525 -0.0034 +vn 0.9982 0.0604 0.0006 +vn -0.5000 0.8660 0.0084 +vn -0.8660 0.5000 0.0048 +vn 0.5000 0.8660 0.0084 +vn -0.8838 -0.4679 -0.0045 +vn 0.8367 -0.5477 -0.0053 +vn 0.8367 -0.5476 -0.0053 +vn -0.9587 -0.1806 -0.2195 +vn 0.5863 -0.8101 -0.0078 +vn -0.9533 0.2538 0.1638 +vn -0.9429 0.0892 0.3210 +vn -0.9156 0.2423 0.3208 +vn 0.8896 0.1654 0.4257 +vn 0.7923 0.3968 0.4635 +vn 0.0022 -0.6241 -0.7813 +vn 0.4237 0.8995 -0.1063 +vn 0.0022 0.6327 -0.7744 +vn -0.0014 0.9861 -0.1661 +vn 0.9234 -0.3460 0.1660 +vn 0.9336 0.0499 0.3548 +vn 0.8767 -0.3375 0.3427 +vn -0.8880 0.4032 0.2212 +vn -0.6700 0.6669 0.3260 +vn -0.1154 -0.4222 -0.8991 +vn -0.0014 -0.9841 -0.1777 +vn -0.4253 -0.8971 -0.1196 +vn -0.9058 -0.3635 0.2177 +vn -0.6674 -0.6706 0.3240 +vn -0.8352 -0.4389 0.3315 +vn 0.8246 -0.5415 0.1640 +vn 0.7888 -0.5195 0.3285 +vn 0.4239 -0.8980 -0.1183 +vn 0.6639 0.6605 0.3508 +vn 0.8069 0.4657 0.3635 +vn 0.8849 0.3985 0.2412 +vn -0.9697 -0.1866 0.1576 +vn -0.9324 -0.1808 0.3130 +vn -0.1202 0.4571 -0.8813 +vn -0.2550 0.9533 -0.1620 +vn -0.9795 -0.1258 0.1573 +vn -0.9823 0.0966 0.1604 +vn -0.4710 -0.8087 0.3523 +vn -0.8040 -0.4565 0.3811 +vn -0.9938 -0.1115 -0.0044 +vn -0.3787 0.0550 -0.9239 +vn -0.3745 0.0494 -0.9259 +vn -0.9936 -0.1117 0.0178 +vn 0.6669 0.6701 -0.3259 +vn 0.8136 0.4730 -0.3381 +vn -0.9937 -0.1116 0.0070 +vn -0.9937 -0.1114 -0.0065 +vn -0.9823 -0.1872 -0.0018 +vn -0.9921 -0.1256 -0.0012 +vn 0.9506 0.2530 0.1801 +vn 0.9831 0.0579 0.1735 +vn 0.1831 -0.0764 0.9801 +vn 0.0010 -0.9390 0.3438 +vn 0.4582 -0.8137 0.3578 +vn -0.0012 -0.9390 0.3438 +vn -0.9417 0.2544 -0.2200 +vn -0.8180 0.4686 0.3336 +vn -0.8837 -0.4680 0.0041 +vn -0.2441 0.9142 -0.3235 +vn 0.1853 -0.2625 -0.9470 +vn -0.8835 -0.4681 0.0154 +vn -0.3744 -0.0300 -0.9268 +vn 0.2733 -0.1317 0.9529 +vn -0.9415 -0.1222 0.3139 +vn -0.8513 0.3099 0.4234 +vn -0.7589 0.4929 0.4255 +vn 0.9503 0.2529 0.1815 +vn 0.9040 0.2388 0.3545 +vn 0.7780 0.4215 0.4659 +vn 0.4424 0.7501 0.4915 +vn 0.9659 0.2589 0.0025 +vn 0.7888 -0.5196 0.3285 +vn 0.8258 -0.5421 0.1553 +vn -0.4611 -0.8146 0.3519 +vn 0.5668 -0.7892 -0.2365 +vn -0.2920 0.0256 0.9561 +vn 0.9024 -0.4297 -0.0319 +vn 0.8533 0.5213 0.0103 +vn 0.9177 0.3972 0.0076 +vn -0.9935 0.1134 0.0016 +vn -0.9937 -0.1118 -0.0016 +vn -0.9935 0.1135 0.0006 +vn -0.2588 0.9659 0.0093 +vn -0.9823 -0.1873 -0.0018 +vn -0.7071 -0.7071 -0.0068 +vn -0.7570 -0.6534 -0.0063 +vn 0.5000 -0.8660 -0.0084 +vn 0.9444 -0.3286 0.0103 +vn 0.7071 0.7071 0.0068 +vn 0.7071 -0.7071 -0.0068 +vn 0.9445 -0.3282 -0.0167 +vn 0.8366 -0.5477 -0.0053 +vn -0.7873 -0.6165 -0.0060 +vn -0.9269 -0.3753 -0.0036 +vn -0.9937 -0.1118 -0.0006 +vn -0.9071 0.4210 0.0041 +vn -0.9951 0.0987 0.0012 +vn -0.8513 -0.5246 -0.0051 +vn 0.6839 -0.7296 -0.0071 +vn 0.8366 -0.5478 -0.0053 +vn 0.8657 0.5005 0.0039 +vn 0.9159 0.4015 0.0035 +vn 0.9661 0.2583 0.0016 +vn 0.9964 0.0177 0.0830 +vn -0.9823 -0.1874 -0.0018 +vn 0.7815 0.6238 0.0060 +vn 0.9857 0.1685 0.0011 +vn 0.9786 0.2056 0.0020 +vn 0.9857 0.1683 0.0023 +vn 0.9632 0.2006 0.1790 +vn 0.8367 -0.5476 -0.0084 +vn 0.9358 -0.3525 -0.0066 +vn 0.9065 0.2362 0.3498 +vn 0.4712 -0.8058 0.3586 +vn 0.7894 -0.4744 0.3895 +vn -0.8470 0.3207 0.4240 +vn 0.8444 0.5082 0.1695 +vn 0.9041 0.2387 0.3545 +vn 0.9579 -0.1245 0.2586 +vn 0.9524 -0.1186 -0.2810 +vn 0.2088 0.3617 -0.9086 +vn -0.1994 0.3681 -0.9082 +vn -0.9393 -0.1024 -0.3274 +vn -0.9394 -0.1021 -0.3274 +vn 0.8603 0.5091 -0.0278 +vn 0.9417 0.2545 -0.2200 +vn 0.4335 0.7551 0.4919 +vn 0.8006 -0.4537 0.3914 +vn 0.8866 0.4626 0.0045 +vn 0.9961 0.0214 -0.0862 +vn 0.8592 0.4785 0.1808 +vn 0.9050 0.2425 0.3496 +vn 0.9075 0.2399 0.3449 +vn 0.9369 -0.3497 0.0009 +vn 0.9983 0.0583 0.0063 +vn -0.9613 -0.2748 -0.0185 +vn -0.9316 -0.3630 -0.0187 +vn -0.1530 -0.9867 0.0547 +vn -0.0792 -0.9967 -0.0160 +vn -0.0791 -0.9967 -0.0160 +vn -0.1418 0.0120 -0.9898 +vn 0.1127 -0.4565 -0.8826 +vn 0.1418 0.0120 -0.9898 +vn -0.2462 -0.4736 -0.8456 +vn -0.3299 0.0091 -0.9440 +vn -0.1260 -0.9413 -0.3133 +vn -0.1127 -0.4565 -0.8826 +vn -0.1337 -0.9906 -0.0294 +vn 0.1533 -0.9880 -0.0158 +vn -0.1534 -0.9880 -0.0158 +vn -0.2650 -0.9641 -0.0154 +vn 0.1530 -0.9867 0.0547 +vn 0.1260 -0.9413 -0.3133 +vn -0.2413 -0.9704 0.0048 +vn -0.2116 -0.9080 -0.3616 +vn 0.0791 -0.9967 -0.0160 +vn 0.2650 -0.9641 -0.0154 +vn 0.2413 -0.9704 0.0048 +vn 0.2116 -0.9080 -0.3616 +vn 0.2464 0.4622 -0.8519 +vn 0.1146 0.4450 -0.8882 +vn 0.1164 0.9181 -0.3790 +vn 0.2088 0.9021 -0.3777 +vn -0.9445 -0.2527 0.2099 +vn -0.7423 -0.6651 0.0812 +vn -0.8371 -0.4874 0.2486 +vn -0.9854 0.0047 0.1703 +vn -0.9998 0.0169 -0.0040 +vn 0.9445 -0.2527 0.2099 +vn 0.7423 -0.6651 0.0812 +vn 0.9352 -0.3329 -0.1212 +vn 0.7729 -0.6171 -0.1477 +vn 0.9080 -0.2753 -0.3160 +vn 0.9843 0.0622 -0.1650 +vn 0.9908 0.0847 0.1058 +vn 0.9564 -0.1410 -0.2558 +vn 0.8789 0.2188 -0.4238 +vn 0.9300 -0.1110 -0.3503 +vn -0.9840 0.0600 -0.1677 +vn -0.9908 0.0847 0.1058 +vn -0.9832 0.0494 0.1759 +vn -0.9475 0.1641 0.2744 +vn -0.9396 0.2056 0.2735 +vn 0.9916 -0.1072 -0.0724 +vn 0.8195 -0.5358 -0.2033 +vn -0.9916 -0.1072 -0.0724 +vn -0.9636 0.2121 0.1629 +vn -0.9343 0.2035 0.2929 +vn 0.9804 0.0160 -0.1961 +vn 0.9094 0.0735 -0.4094 +vn -0.9804 0.0160 -0.1961 +vn -0.9855 0.0749 0.1525 +vn -0.9428 0.1762 0.2830 +vn -0.9094 0.0735 -0.4094 +vn -0.9352 -0.3329 -0.1212 +vn 0.9428 0.1762 0.2830 +vn 0.9855 0.0749 0.1525 +vn 0.2493 0.9683 0.0141 +vn 0.1360 0.9906 0.0155 +vn -0.9564 -0.1410 -0.2558 +vn -0.8195 -0.5358 -0.2033 +vn 0.9396 0.2056 0.2735 +vn 0.9636 0.2121 0.1629 +vn 0.1195 0.8349 0.5373 +vn 0.1960 0.8321 0.5188 +vn -0.8789 0.2188 -0.4238 +vn 0.9475 0.1641 0.2744 +vn 0.9826 0.0512 0.1786 +vn 0.2458 0.3187 0.9154 +vn 0.1231 0.2914 0.9486 +vn 0.1445 0.0045 0.9895 +vn 0.3293 -0.0091 0.9442 +vn 0.9854 0.0047 0.1703 +vn 0.8371 -0.4874 0.2486 +vn -0.7729 -0.6171 -0.1477 +vn -0.1256 -0.9608 -0.2472 +vn 0.0576 -0.9747 -0.2158 +vn 0.1467 -0.9583 -0.2454 +vn 0.2007 -0.9752 -0.0936 +vn -0.2533 -0.9513 -0.1759 +vn 0.2919 -0.9407 -0.1729 +vn -0.1826 -0.9254 -0.3321 +vn 0.2163 -0.9254 -0.3112 +vn -0.1850 -0.9314 -0.3134 +vn -0.1722 -0.9368 -0.3047 +vn 0.2012 -0.9320 -0.3015 +vn -0.1764 -0.9315 -0.3181 +vn 0.2135 -0.9195 -0.3300 +vn 0.2064 -0.9261 -0.3158 +vn 0.3986 -0.8724 -0.2829 +vn 0.4109 -0.8594 -0.3042 +vn -0.3144 0.9491 0.0171 +vn -0.5969 0.8022 0.0145 +vn -0.2092 0.9777 0.0177 +vn 0.4177 -0.8553 -0.3065 +vn 0.3763 -0.8860 -0.2709 +vn 0.4727 -0.8497 -0.2337 +vn 0.2633 -0.9419 -0.2085 +vn 0.3551 0.9347 0.0169 +vn 0.6639 0.7477 0.0135 +vn 0.6044 -0.7930 -0.0761 +vn 0.4200 -0.8590 -0.2929 +vn -0.5365 -0.8400 -0.0806 +vn -0.4144 -0.8788 -0.2367 +vn 0.1780 0.9839 0.0178 +vn -0.3529 -0.8823 -0.3114 +vn 0.2247 0.9743 0.0176 +vn -0.3196 -0.9068 -0.2750 +vn -0.3617 -0.8825 -0.3006 +vn -0.1688 0.9855 0.0178 +vn -0.2230 -0.9518 -0.2107 +vn -0.0543 -0.9749 -0.2158 +vn -0.3595 -0.8784 -0.3148 +vn -0.3423 -0.8938 -0.2899 +vn 0.9172 -0.3289 -0.2248 +vn 0.3319 -0.9414 -0.0595 +vn 0.3285 -0.9427 -0.0585 +vn 0.8159 0.5339 -0.2220 +vn 0.9192 -0.3228 -0.2255 +vn 0.0973 0.9939 -0.0512 +vn 0.8136 0.5375 -0.2215 +vn -0.6909 0.7057 0.1571 +vn -0.6947 0.7017 0.1582 +vn -0.9621 -0.1135 0.2480 +vn -0.9614 -0.1194 0.2480 +vn -0.5071 -0.8484 0.1517 +vn -0.5057 -0.8493 0.1514 +vn 0.9181 -0.3259 -0.2257 +vn 0.3279 -0.9422 -0.0682 +vn 0.8169 0.5359 -0.2133 +vn 0.1006 0.9941 -0.0402 +vn -0.9999 0.0106 -0.0110 +vn -0.9991 0.0430 -0.0037 +vn -0.9998 0.0127 -0.0133 +vn -0.9971 0.0758 -0.0061 +vn -0.9897 0.1348 -0.0485 +vn -0.9999 -0.0137 -0.0031 +vn 0.9971 -0.0762 0.0059 +vn 0.9896 -0.1356 0.0481 +vn 0.9841 -0.1548 0.0874 +vn -0.0000 0.0158 -0.9999 +vn -0.0000 -0.1169 -0.9931 +vn -0.0000 -0.1207 -0.9927 +vn -0.0000 -0.0158 0.9999 +vn -0.0000 0.0284 0.9996 +vn -0.9996 -0.0267 -0.0004 +vn -0.9999 -0.0172 -0.0003 +vn 0.9999 -0.0106 0.0110 +vn 0.9991 -0.0432 0.0036 +vn -0.0000 0.0298 0.9996 +vn -0.0008 0.0483 0.9988 +vn -0.6915 0.7038 0.1631 +vn 0.0009 -0.1992 -0.9800 +vn -0.0000 -0.1957 -0.9807 +vn 0.0147 0.2452 -0.9694 +vn 0.0203 0.6164 -0.7871 +vn 0.0199 0.6195 -0.7848 +vn -0.0150 -0.2579 0.9660 +vn -0.0159 -0.2595 0.9656 +vn -0.9628 -0.1165 0.2436 +vn 0.9990 -0.0449 0.0022 +vn 0.9987 -0.0513 -0.0008 +vn 0.9954 -0.0956 -0.0015 +vn -0.0213 -0.7492 0.6620 +vn -0.5092 -0.8491 0.1407 +vn -0.0212 -0.7581 0.6517 +vn -0.0200 -0.9356 0.3524 +vn -0.0083 -0.6779 -0.7352 +vn -0.0083 -0.6779 -0.7351 +vn 0.0189 0.7409 -0.6714 +vn 0.0180 0.7406 -0.6717 +vn 0.4678 0.0244 0.8835 +vn 0.8432 0.0548 0.5347 +vn 0.4172 0.0927 0.9041 +vn 0.4653 -0.1686 0.8689 +vn 0.8298 -0.0604 0.5548 +vn 0.4643 -0.0912 0.8810 +vn 0.8307 -0.1254 0.5424 +vn 0.8292 -0.1042 0.5491 +vn -0.4283 -0.1721 0.8871 +vn -0.7799 -0.0676 0.6222 +vn -0.7792 -0.1169 0.6157 +vn -0.4275 -0.0931 0.8992 +vn -0.3889 -0.2075 0.8976 +vn 0.4192 -0.2045 0.8845 +vn -0.4320 0.0249 0.9015 +vn 0.1376 -0.9903 0.0208 +vn 0.2230 -0.8487 -0.4796 +vn 0.3750 -0.8730 -0.3118 +vn 0.3558 -0.5474 -0.7575 +vn 0.7601 -0.2043 -0.6169 +vn 0.6250 -0.5899 -0.5113 +vn 0.3558 0.5619 -0.7468 +vn 0.7601 0.2162 -0.6128 +vn 0.4198 0.1988 -0.8856 +vn 0.2230 0.8578 -0.4631 +vn 0.1376 0.9897 0.0400 +vn 0.3750 0.8789 -0.2949 +vn 0.4198 -0.1816 -0.8893 +vn 0.6250 0.5997 -0.4998 +vn 0.9546 0.2082 0.2129 +vn 0.9546 -0.2123 0.2089 +vn 0.4710 0.8750 0.1125 +vn 0.7849 0.5931 0.1791 +vn 0.4710 -0.8770 0.0956 +vn 0.7849 -0.5965 0.1676 +vn 0.2123 -0.8801 0.4246 +vn 0.4303 -0.2187 0.8758 +vn 0.3538 -0.6018 0.7160 +vn 0.4303 0.2017 0.8798 +vn 0.2123 0.8718 0.4415 +vn 0.3538 0.5878 0.7275 +vn 0.0036 -0.8583 0.5132 +vn 0.0058 -0.5627 0.8266 +vn 0.0058 0.5466 0.8373 +vn 0.0069 0.1807 0.9835 +vn 0.0037 0.8482 0.5297 +vn 0.0069 -0.1997 0.9798 +vn -0.7889 0.0070 0.6145 +vn -0.7959 0.0618 0.6023 +vn -0.7809 -0.1407 0.6086 +vn 0.8373 0.0058 0.5467 +vn 0.7071 -0.0068 0.7071 +vn 0.7071 0.0068 -0.7071 +vn -0.7071 0.0068 -0.7071 +vn -0.7071 -0.0068 0.7071 +vn 0.3814 -0.0415 0.9235 +vn 0.2981 -0.1024 0.9490 +vn 0.2765 -0.1043 0.9553 +vn 0.3719 0.1045 0.9224 +vn 0.3905 -0.0244 0.9203 +vn 0.2717 0.1526 0.9502 +vn 0.2482 0.1489 0.9572 +vn 0.1720 0.1002 0.9800 +vn 0.1642 0.0879 0.9825 +vn 0.1476 0.0045 0.9890 +vn 0.1479 0.0025 0.9890 +vn 0.1873 -0.0715 0.9797 +vn 0.1949 -0.0781 0.9777 +vn -0.8654 -0.5001 -0.0323 +vn -0.5005 -0.8651 -0.0335 +vn -0.8660 -0.4989 -0.0323 +vn -0.4992 -0.8659 -0.0335 +vn -0.0007 -0.9995 -0.0324 +vn 0.0007 -0.9995 -0.0324 +vn 0.4995 -0.8658 -0.0293 +vn 0.5003 -0.8654 -0.0293 +vn 0.8658 -0.4997 -0.0250 +vn 0.8659 -0.4997 -0.0250 +vn 0.9934 -0.1132 -0.0203 +vn 0.9934 -0.1127 -0.0203 +vn 0.9936 0.1118 -0.0179 +vn 0.8841 0.4670 -0.0174 +vn 0.9936 0.1115 -0.0179 +vn 0.5005 0.8656 -0.0164 +vn 0.8831 0.4690 -0.0174 +vn 0.0007 0.9998 -0.0175 +vn 0.4992 0.8663 -0.0164 +vn -0.5867 0.8095 -0.0201 +vn -0.0007 0.9998 -0.0175 +vn -0.9357 0.3521 -0.0229 +vn -0.5854 0.8105 -0.0201 +vn -0.9978 -0.0598 -0.0282 +vn -0.9353 0.3532 -0.0228 +vn -0.9978 -0.0605 -0.0282 +vn -0.7929 -0.4205 0.4409 +vn -0.4477 -0.7797 0.4378 +vn 0.4477 0.7711 0.4528 +vn -0.0000 0.8910 0.4539 +vn -0.4477 0.7711 0.4528 +vn -0.7754 0.4434 0.4496 +vn 0.9001 0.0449 0.4334 +vn 0.8504 -0.3199 0.4178 +vn 0.8993 0.0548 0.4339 +vn -0.0000 -0.8997 0.4366 +vn -0.8954 0.1006 0.4337 +vn -0.8962 0.0947 0.4335 +vn 0.5345 -0.7241 0.4359 +vn 0.5188 -0.7350 0.4366 +vn 0.7754 0.4434 0.4496 +vn 0.8473 -0.3286 0.4174 +vn -0.8991 -0.1052 0.4248 +vn -0.8992 -0.1048 0.4248 +vn -0.7903 -0.4254 0.4410 +vn -0.0000 -0.8462 0.5329 +vn 0.4864 -0.6926 0.5327 +vn 0.5045 -0.6802 0.5318 +vn -0.7283 0.4152 0.5451 +vn -0.8437 0.0942 0.5286 +vn -0.8446 0.0874 0.5282 +vn -0.4205 -0.7335 0.5339 +vn 0.8483 0.0400 0.5280 +vn 0.8040 -0.3027 0.5117 +vn 0.8473 0.0513 0.5286 +vn -0.6006 0.5955 0.5336 +vn -0.2198 -0.8153 -0.5357 +vn -0.4205 -0.7335 0.5340 +vn -0.7421 -0.4012 0.5371 +vn 0.8005 -0.3128 0.5112 +vn -0.8488 -0.1005 0.5191 +vn -0.8489 -0.1000 0.5190 +vn -0.8294 -0.4381 -0.3468 +vn -0.7451 -0.3955 0.5370 +vn -0.1154 -0.9429 0.3126 +vn 0.1337 -0.9906 -0.0294 +vn -0.2566 -0.9662 -0.0250 +vn -0.1111 -0.4968 0.8607 +vn 0.1154 -0.9429 0.3126 +vn 0.2460 -0.5123 0.8228 +vn 0.1111 -0.4968 0.8607 +vn 0.9245 0.2144 0.3152 +vn 0.9750 0.1377 0.1746 +vn 0.9896 0.0945 0.1082 +vn -0.9601 -0.0989 -0.2615 +vn -0.9082 -0.1637 -0.3852 +vn -0.9837 -0.0512 -0.1726 +vn -0.2460 -0.5123 0.8228 +vn -0.2136 -0.9247 0.3150 +vn -0.1445 0.0045 0.9895 +vn -0.1231 0.2914 0.9486 +vn -0.2458 0.3187 0.9154 +vn -0.3293 -0.0091 0.9442 +vn 0.2136 -0.9247 0.3150 +vn 0.9333 0.2069 0.2936 +vn 0.9745 0.1360 0.1782 +vn 0.9879 0.1010 0.1179 +vn -0.9682 -0.1082 -0.2257 +vn -0.9060 -0.1974 -0.3744 +vn -0.9847 -0.0673 -0.1606 +vn -0.1195 0.8349 0.5373 +vn -0.1360 0.9906 0.0155 +vn -0.2493 0.9683 0.0141 +vn -0.1960 0.8321 0.5188 +vn -0.1164 0.9181 -0.3790 +vn -0.1146 0.4450 -0.8882 +vn -0.2464 0.4622 -0.8519 +vn -0.2088 0.9021 -0.3777 +vn -0.9333 0.2069 0.2936 +vn -0.9745 0.1360 0.1782 +vn -0.9314 0.2074 0.2990 +vn -0.9879 0.1010 0.1179 +vn 0.9682 -0.1082 -0.2257 +vn 0.9060 -0.1974 -0.3744 +vn 0.9083 -0.1973 -0.3690 +vn 0.9847 -0.0673 -0.1606 +vn -0.0000 -0.4129 -0.9108 +vn -0.0000 -0.4952 -0.8688 +vn -0.9245 0.2144 0.3152 +vn -0.9742 0.1397 0.1774 +vn -0.9313 0.2136 0.2950 +vn -0.9896 0.0945 0.1082 +vn 0.9601 -0.0989 -0.2615 +vn 0.9082 -0.1637 -0.3852 +vn 0.9061 -0.1639 -0.3901 +vn 0.9831 -0.0533 -0.1753 +vn -0.0000 -0.2676 -0.9635 +vn -0.0000 -0.6758 -0.7370 +vn -0.0000 0.4814 -0.8765 +vn -0.0000 -0.3619 -0.9322 +vn -0.0000 -0.3673 -0.9301 +vn -0.0000 -0.9467 -0.3220 +vn -0.0000 0.1991 -0.9800 +vn -0.0000 -0.2060 -0.9786 +vn 0.2566 -0.9662 -0.0250 +vn 0.2462 -0.4736 -0.8456 +vn 0.3299 0.0091 -0.9440 +vn -0.8837 -0.4675 -0.0217 +vn -0.9660 0.1205 -0.2287 +vn 0.9730 0.0636 -0.2220 +vn -0.9921 -0.1257 -0.0012 +vn -0.0001 0.0096 -1.0000 +vn -0.0000 0.0098 -1.0000 +vn -0.0003 0.0095 -1.0000 +vn 0.0001 0.0096 -1.0000 +vn 0.1145 -0.4185 -0.9010 +vn 0.0004 0.0097 -1.0000 +vn -0.0004 0.0096 -1.0000 +vn 0.0003 0.0097 -1.0000 +vn 0.1131 0.4306 -0.8954 +vn -0.9938 -0.1114 -0.0065 +vn -0.9921 -0.1257 -0.0010 +vn 0.9659 0.2588 0.0047 +vn 0.8603 0.5098 0.0061 +vn 0.0792 -0.9967 -0.0160 +vn -0.9080 -0.2753 -0.3160 +vn -0.9300 -0.1109 -0.3503 +vn 0.9343 0.2035 0.2929 +vn 0.9998 0.0169 -0.0040 +vn -0.1859 -0.9781 -0.0938 +vn 0.0983 0.9938 -0.0515 +vn -0.9841 0.1541 -0.0882 +vn 0.9998 -0.0127 0.0133 +vn -0.0000 0.0464 0.9989 +vn 0.0157 0.2484 -0.9685 +vn -0.0198 -0.9356 0.3525 +vn -0.3889 0.0940 0.9165 +vn 0.3783 0.0960 0.9207 +vn 0.9313 0.2136 0.2950 +vn -0.9061 -0.1639 -0.3901 +vn 0.9314 0.2074 0.2990 +vn -0.9083 -0.1973 -0.3690 vt 0.592751 0.548916 vt 0.578308 0.637378 vt 0.578622 0.548873 @@ -4295,7 +5483,6 @@ vt 0.306859 0.794688 vt 0.540070 0.341778 vt 0.583504 0.341714 vt 0.613965 0.683939 -vt 0.609285 0.722969 vt 0.609285 0.683388 vt 0.586312 0.341635 vt 0.202491 0.788236 @@ -4370,13 +5557,6 @@ vt 0.593003 0.477813 vt 0.592817 0.530359 vt 0.592597 0.360358 vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.918599 0.993142 vt 0.937429 0.965601 vt 0.937429 0.981102 @@ -4389,18 +5569,6 @@ vt 0.614296 0.497468 vt 0.653876 0.690444 vt 0.614296 0.774545 vt 0.614295 0.690444 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.478498 0.477464 vt 0.436204 0.443481 vt 0.478690 0.239539 @@ -4491,9 +5659,7 @@ vt 0.539880 0.341651 vt 0.578570 0.360301 vt 0.580771 0.000052 vt 0.478181 0.135049 -vt 0.116890 0.461562 vt 0.653877 0.585975 -vt 0.116890 0.461562 vt 0.603930 0.205721 vt 0.613926 0.548867 vt 0.614295 0.205596 @@ -4504,9 +5670,7 @@ vt 0.751117 0.799136 vt 0.430167 0.207444 vt 0.451421 0.360871 vt 0.478915 0.359892 -vt 0.116890 0.461562 vt 0.653876 0.657079 -vt 0.116890 0.461562 vt 0.599713 0.319824 vt 0.603840 0.477656 vt 0.614045 0.323042 @@ -4515,7 +5679,6 @@ vt 0.215017 0.716530 vt 0.211212 0.717469 vt 0.208242 0.588264 vt 0.215022 0.589505 -vt 0.380372 0.927363 vt 0.423132 0.927341 vt 0.490229 0.783288 vt 0.500394 0.793738 @@ -4594,7 +5757,6 @@ vt 0.683099 0.858255 vt 0.676578 0.864596 vt 0.676578 0.858255 vt 0.683099 0.864596 -vt 0.676578 0.870586 vt 0.994011 0.129824 vt 0.429652 0.823549 vt 0.423131 0.803145 @@ -4698,11 +5860,7 @@ vt 0.284111 0.975408 vt 0.992479 0.619180 vt 0.990020 0.595605 vt 0.991617 0.595605 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.977701 0.619180 -vt 0.992479 0.619180 vt 0.983993 0.364999 vt 0.980026 0.367478 vt 0.979394 0.364999 @@ -4722,41 +5880,22 @@ vt 0.293925 0.790098 vt 0.280321 0.813782 vt 0.279146 0.790098 vt 0.980607 0.595605 -vt 0.977701 0.619180 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.653151 0.846895 vt 0.635810 0.774545 vt 0.648806 0.774545 vt 0.649978 0.787906 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.326089 0.714280 vt 0.326057 0.687635 -vt 0.326057 0.687635 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.991690 0.573888 vt 0.291951 0.835730 vt 0.278926 0.835802 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.513905 0.809068 vt 0.518238 0.796070 vt 0.518238 0.809068 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.979776 0.429893 vt 0.984128 0.439677 vt 0.979796 0.439677 vt 0.983125 0.547624 -vt 0.116890 0.461562 -vt 0.991790 0.547624 vt 0.991790 0.547624 vt 0.290786 0.849082 vt 0.289621 0.862434 @@ -4781,10 +5920,6 @@ vt 0.026114 0.987759 vt 0.000000 0.981707 vt 0.325697 0.714280 vt 0.324102 0.743009 -vt 0.325697 0.714280 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.074665 0.997135 vt 0.070333 0.992094 vt 0.074706 0.988591 @@ -4800,14 +5935,8 @@ vt 0.328769 0.929860 vt 0.430167 0.495866 vt 0.430167 0.524692 vt 0.429573 0.504448 -vt 0.571940 0.770988 vt 0.573537 0.779591 vt 0.571941 0.789237 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.326089 0.658794 vt 0.326089 0.687635 vt 0.324107 0.658931 @@ -4816,7 +5945,6 @@ vt 0.227491 0.794465 vt 0.260253 0.838378 vt 0.587472 0.842593 vt 0.609435 0.797197 -vt 0.619928 0.798684 vt 0.630026 0.858997 vt 0.630026 0.849223 vt 0.274025 0.787601 @@ -4868,7 +5996,6 @@ vt 0.564398 0.885040 vt 0.339238 0.816319 vt 0.334905 0.825701 vt 0.334905 0.816320 -vt 0.116890 0.461562 vt 0.083329 0.992246 vt 0.078997 0.997186 vt 0.079038 0.988642 @@ -4881,9 +6008,7 @@ vt 0.971131 0.439677 vt 0.971114 0.426355 vt 0.334905 0.816319 vt 0.339238 0.788145 -vt 0.339238 0.816319 vt 0.513905 0.822065 -vt 0.518238 0.809068 vt 0.518238 0.822065 vt 0.971098 0.413033 vt 0.975100 0.367478 @@ -4897,7 +6022,6 @@ vt 0.074665 0.974521 vt 0.078997 0.974571 vt 0.083329 0.974622 vt 0.070333 0.974470 -vt 0.116890 0.461562 vt 0.216539 0.985698 vt 0.221661 0.969636 vt 0.239249 0.989889 @@ -4951,7 +6075,6 @@ vt 0.772369 0.497686 vt 0.143020 0.743452 vt 0.149846 0.756426 vt 0.139974 0.743848 -vt 0.070333 0.974470 vt 0.065658 0.998313 vt 0.065658 0.974480 vt 0.116846 0.477622 @@ -5141,7 +6264,6 @@ vt 0.118642 0.978350 vt 0.127236 0.978350 vt 0.214994 0.820151 vt 0.206401 0.852067 -vt 0.206401 0.820151 vt 0.574740 0.967422 vt 0.583322 0.971615 vt 0.574730 0.971615 @@ -5234,7 +6356,6 @@ vt 0.998748 0.239984 vt 0.987968 0.226077 vt 0.998748 0.226053 vt 0.792236 0.514013 -vt 0.751117 0.923555 vt 0.961047 0.440110 vt 0.975075 0.456106 vt 0.961047 0.456106 @@ -5318,7 +6439,6 @@ vt 0.331509 0.762352 vt 0.331509 0.765794 vt 0.329752 0.765305 vt 0.080261 0.845476 -vt 0.079009 0.840719 vt 0.339493 0.845390 vt 0.327922 0.765685 vt 0.328799 0.762352 @@ -5456,7 +6576,6 @@ vt 0.429472 0.613181 vt 0.430167 0.570250 vt 0.429517 0.594689 vt 0.429517 0.570249 -vt 0.429473 0.551821 vt 0.428663 0.550227 vt 0.429312 0.550227 vt 0.429655 0.526273 @@ -5532,7 +6651,6 @@ vt 0.513905 0.830416 vt 0.429301 0.876495 vt 0.423132 0.841456 vt 0.175808 0.883270 -vt 0.079009 0.828671 vt 0.478997 0.683388 vt 0.334905 0.825758 vt 0.214762 0.760239 @@ -5604,25 +6722,19 @@ vt 0.177412 0.997717 vt 0.288711 0.975408 vt 0.288711 0.996052 vt 0.274913 0.975408 -vt 0.116890 0.461562 vt 0.984953 0.367478 vt 0.079009 0.797630 vt 0.987357 0.573888 vt 0.984096 0.413033 vt 0.293346 0.813711 -vt 0.116890 0.461562 vt 0.324102 0.714280 vt 0.980680 0.573888 vt 0.513905 0.796070 -vt 0.116890 0.461562 vt 0.978793 0.547624 vt 0.270333 0.836739 -vt 0.206401 0.852067 vt 0.026114 0.958754 vt 0.029297 0.973844 vt 0.026114 0.964797 -vt 0.609435 0.797197 -vt 0.250236 0.839796 vt 0.325697 0.743098 vt 0.070333 0.997085 vt 0.083341 0.821764 @@ -5630,9 +6742,6 @@ vt 0.206401 0.902711 vt 0.215003 0.904696 vt 0.338182 0.951546 vt 0.573537 0.770988 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.326089 0.687635 vt 0.215154 0.793962 vt 0.594203 0.867619 vt 0.215470 0.768719 @@ -5648,7 +6757,6 @@ vt 0.339238 0.825699 vt 0.083329 0.997237 vt 0.975463 0.439677 vt 0.334905 0.788145 -vt 0.513905 0.809068 vt 0.215154 0.976682 vt 0.232180 0.962005 vt 0.751117 0.978285 @@ -5673,7 +6781,6 @@ vt 0.175604 0.966579 vt 0.116890 0.490144 vt 0.600517 0.967422 vt 0.086470 0.741176 -vt 0.214994 0.820151 vt 0.144423 0.978351 vt 0.513905 0.845374 vt 0.710468 0.730573 @@ -5728,7 +6835,6 @@ vt 0.676578 0.993443 vt 0.337791 0.832805 vt 0.206401 0.915149 vt 0.609285 0.772595 -vt 0.423131 0.870065 vt 0.646558 0.880433 vt 0.513905 0.829630 vt 0.749221 0.845709 @@ -5861,24 +6967,17 @@ vt 0.929730 0.437061 vt 0.923236 0.438182 vt 0.923240 0.437032 vt 0.665501 0.765850 -vt 0.657628 0.764388 -vt 0.665663 0.764313 vt 0.946951 0.724606 vt 0.942312 0.723150 -vt 0.947219 0.723063 vt 0.923202 0.452684 vt 0.916483 0.454234 vt 0.916204 0.452684 vt 0.969859 0.268470 vt 0.974506 0.266914 vt 0.974975 0.268469 -vt 0.671107 0.764301 vt 0.671173 0.765839 vt 0.953948 0.724525 -vt 0.953936 0.722986 vt 0.190207 0.729927 -vt 0.186103 0.728414 -vt 0.190313 0.728393 vt 0.171617 0.830018 vt 0.158550 0.824066 vt 0.159660 0.822151 @@ -5891,32 +6990,21 @@ vt 0.157439 0.825981 vt 0.176934 0.802917 vt 0.155869 0.780630 vt 0.166196 0.770646 -vt 0.960661 0.722939 vt 0.960956 0.724478 vt 0.162041 0.818046 vt 0.175020 0.824148 vt 0.199682 0.744456 vt 0.204955 0.730046 vt 0.204704 0.744552 -vt 0.923202 0.452684 vt 0.916382 0.438182 -vt 0.923236 0.438182 vt 0.180948 0.744552 vt 0.185821 0.729949 vt 0.185966 0.744456 vt 0.671131 0.780347 -vt 0.665501 0.765850 -vt 0.671173 0.765839 vt 0.954082 0.739033 -vt 0.946951 0.724606 -vt 0.953948 0.724525 -vt 0.190207 0.729927 vt 0.190261 0.744434 vt 0.960944 0.738985 -vt 0.960956 0.724478 -vt 0.675922 0.780365 vt 0.681372 0.765929 -vt 0.681119 0.780436 vt 0.930098 0.438213 vt 0.088889 0.787728 vt 0.101539 0.793128 @@ -5964,7 +7052,6 @@ vt 0.190401 0.745605 vt 0.961047 0.782675 vt 0.960584 0.740150 vt 0.675620 0.824054 -vt 0.680488 0.781597 vt 0.680592 0.824121 vt 0.365901 0.951373 vt 0.365974 0.993900 @@ -6137,9 +7224,6 @@ vt 0.485370 0.842440 vt 0.513904 0.835563 vt 0.194441 0.729930 vt 0.194408 0.744437 -vt 0.681372 0.765929 -vt 0.675801 0.764319 -vt 0.680895 0.764388 vt 0.194565 0.539250 vt 0.194376 0.728395 vt 0.194879 0.533706 @@ -6160,7 +7244,6 @@ vt 0.392940 0.803050 vt 0.201519 0.461589 vt 0.200358 0.539271 vt 0.962861 0.268406 -vt 0.969596 0.266915 vt 0.440496 0.807421 vt 0.199827 0.729949 vt 0.484209 0.838647 @@ -6279,8 +7362,6 @@ vt 0.675572 0.781530 vt 0.460171 0.880794 vt 0.676065 0.765857 vt 0.481975 0.852570 -vt 0.194441 0.729930 -vt 0.194376 0.728395 vt 0.676658 0.575169 vt 0.677941 0.569638 vt 0.787951 0.497050 @@ -6435,7 +7516,6 @@ vt 0.176233 0.851937 vt 0.170142 0.866881 vt 0.170142 0.851735 vt 0.992872 0.129838 -vt 0.987671 0.145580 vt 0.987671 0.129893 vt 0.998628 0.145531 vt 0.998628 0.129844 @@ -6467,7 +7547,6 @@ vt 0.995852 0.843418 vt 0.999538 0.103036 vt 0.991430 0.102738 vt 0.995779 0.102738 -vt 0.985780 0.748635 vt 0.993888 0.748339 vt 0.997645 0.748635 vt 0.989169 0.344362 @@ -6506,22 +7585,15 @@ vt 0.325698 0.766766 vt 0.322648 0.762218 vt 0.325698 0.762047 vt 0.385194 0.461623 -vt 0.418071 0.436698 vt 0.430166 0.456164 vt 0.261800 0.450042 -vt 0.331002 0.439865 vt 0.332693 0.459710 -vt 0.226007 0.422400 -vt 0.267675 0.431229 vt 0.046677 0.011642 -vt 0.116223 0.024813 -vt 0.053960 0.033329 vt 0.563909 0.849501 vt 0.518666 0.797791 vt 0.563872 0.797623 vt 0.563954 0.728457 vt 0.518867 0.683556 -vt 0.564074 0.683388 vt 0.518748 0.728625 vt 0.564074 0.894829 vt 0.518703 0.849669 @@ -6531,7 +7603,6 @@ vt 0.124631 0.991251 vt 0.206136 0.942946 vt 0.215039 0.938320 vt 0.213269 0.943044 -vt 0.206136 0.928376 vt 0.215039 0.933120 vt 0.206144 0.932998 vt 0.965577 0.984105 @@ -6578,7 +7649,6 @@ vt 0.419690 0.653932 vt 0.429418 0.765000 vt 0.419690 0.764790 vt 0.161838 0.966526 -vt 0.170142 0.851735 vt 0.170142 0.966465 vt 0.152648 0.851757 vt 0.152648 0.966486 @@ -6590,12 +7660,8 @@ vt 0.292378 0.862434 vt 0.964537 0.897609 vt 0.964537 0.782884 vt 0.117617 0.001940 -vt 0.162332 0.023110 vt 0.170151 0.000000 -vt 0.201830 0.027882 -vt 0.012993 0.042023 vt 0.000000 0.021548 -vt 0.377898 0.441574 vt 0.981779 0.879791 vt 0.995498 0.893344 vt 0.981129 0.893313 @@ -6655,63 +7721,14 @@ vt 0.459084 0.953123 vt 0.475016 0.880794 vt 0.467766 0.880812 vt 0.474808 0.952991 -vt 0.200358 0.539271 -vt 0.208241 0.533854 -vt 0.205875 0.539375 vt 0.957756 0.077634 -vt 0.965368 0.072295 -vt 0.965292 0.077756 vt 0.179780 0.539375 -vt 0.183925 0.533731 -vt 0.185292 0.539271 -vt 0.671396 0.575149 -vt 0.664516 0.569630 -vt 0.671724 0.569615 vt 0.944672 0.533923 -vt 0.952142 0.528317 -vt 0.952199 0.533837 -vt 0.189499 0.533702 -vt 0.190010 0.539247 -vt 0.959737 0.533785 -vt 0.961047 0.528255 -vt 0.676658 0.575169 -vt 0.684687 0.569730 -vt 0.682367 0.575246 -vt 0.972821 0.077826 -vt 0.974262 0.072377 vt 0.656289 0.575246 -vt 0.665295 0.575161 -vt 0.194879 0.533706 -vt 0.194565 0.539250 -vt 0.201724 0.533731 -vt 0.677941 0.569638 -vt 0.954094 0.740195 -vt 0.960944 0.738985 -vt 0.960584 0.740150 -vt 0.186339 0.745625 -vt 0.190261 0.744434 -vt 0.190401 0.745605 vt 0.947229 0.739111 -vt 0.954082 0.739033 -vt 0.671042 0.781513 -vt 0.665577 0.780358 -vt 0.671131 0.780347 vt 0.181592 0.745715 -vt 0.185966 0.744456 -vt 0.916382 0.438182 vt 0.916759 0.437032 -vt 0.204060 0.745715 -vt 0.199682 0.744456 -vt 0.204704 0.744552 -vt 0.658035 0.781597 -vt 0.665789 0.781524 -vt 0.194408 0.744437 vt 0.194322 0.745607 -vt 0.199545 0.728414 -vt 0.199827 0.729949 -vt 0.199310 0.745625 -vt 0.675572 0.781530 -vt 0.676065 0.765857 vt 0.141488 0.916338 vt 0.129703 0.890961 vt 0.152618 0.890921 @@ -6720,11 +7737,8 @@ vt 0.129782 0.916338 vt 0.328679 0.967761 vt 0.317516 0.966177 vt 0.297681 0.502185 -vt 0.274879 0.547165 vt 0.278294 0.488857 vt 0.341908 0.645403 -vt 0.312646 0.588881 -vt 0.335063 0.581322 vt 0.152648 0.932747 vt 0.152618 0.917128 vt 0.305669 0.955095 @@ -6736,11 +7750,6 @@ vt 0.294797 0.955539 vt 0.118671 0.932747 vt 0.118641 0.917128 vt 0.297700 0.571531 -vt 0.272885 0.625991 -vt 0.274052 0.564095 -vt 0.333447 0.564346 -vt 0.307032 0.511863 -vt 0.331258 0.503428 vt 0.305802 0.931584 vt 0.263870 0.897599 vt 0.263756 0.863621 @@ -6752,14 +7761,6 @@ vt 0.734834 0.984075 vt 0.723142 0.984071 vt 0.711860 0.973826 vt 0.711991 0.986279 -vt 0.380341 0.549012 -vt 0.355668 0.494867 -vt 0.380224 0.486206 -vt 0.356825 0.556726 -vt 0.250681 0.556462 -vt 0.224450 0.608577 -vt 0.227657 0.548582 -vt 0.248483 0.617416 vt 0.984170 0.344362 vt 0.977558 0.279463 vt 0.984769 0.279463 @@ -6775,37 +7776,27 @@ vt 0.555518 0.917404 vt 0.970977 0.344362 vt 0.977574 0.344362 vt 0.380316 0.618326 -vt 0.357650 0.573647 -vt 0.380372 0.565879 vt 0.361050 0.631907 vt 0.259155 0.475351 -vt 0.230059 0.531546 vt 0.240328 0.461623 -vt 0.252299 0.539476 vt 0.555437 0.904387 vt 0.552249 0.894998 vt 0.557081 0.894998 vt 0.970347 0.279463 vt 0.977456 0.268470 -vt 0.977558 0.279463 vt 0.977701 0.694015 vt 0.990998 0.701278 vt 0.977701 0.701298 vt 0.547674 0.917404 -vt 0.555518 0.917404 -vt 0.571207 0.917404 vt 0.563383 0.904387 vt 0.571328 0.904387 -vt 0.563362 0.917404 vt 0.118641 0.890922 vt 0.977701 0.715865 vt 0.990998 0.708623 vt 0.990998 0.715969 vt 0.977701 0.708581 -vt 0.991980 0.279463 vt 0.984739 0.268470 vt 0.992022 0.268470 -vt 0.984769 0.279463 vt 0.118671 0.851736 vt 0.745835 0.948432 vt 0.745800 0.961230 @@ -6820,22 +7811,12 @@ vt 0.942794 0.456264 vt 0.177768 0.461709 vt 0.956464 0.072151 vt 0.653877 0.569730 -vt 0.957756 0.077634 -vt 0.179780 0.539375 -vt 0.944672 0.533923 -vt 0.656289 0.575246 -vt 0.930098 0.438213 vt 0.657130 0.765929 vt 0.941837 0.724697 vt 0.923200 0.454234 -vt 0.185821 0.729949 -vt 0.916204 0.452684 vt 0.180697 0.730046 -vt 0.947229 0.739111 vt 0.930209 0.452717 -vt 0.657130 0.765929 vt 0.378946 0.993900 -vt 0.181592 0.745715 vt 0.947929 0.782795 vt 0.177412 0.960627 vt 0.603229 0.905585 @@ -6872,9 +7853,7 @@ vt 0.419690 0.778932 vt 0.904258 0.000016 vt 0.743763 0.838827 vt 0.985780 0.723884 -vt 0.194322 0.745607 vt 0.194833 0.461565 -vt 0.962879 0.266853 vt 0.510690 0.823504 vt 0.487822 0.947429 vt 0.428663 0.461780 @@ -6896,7 +7875,6 @@ vt 0.133464 0.871395 vt 0.252085 0.934792 vt 0.297732 0.502307 vt 0.301507 0.582836 -vt 0.297700 0.571531 vt 0.328639 0.929828 vt 0.297731 0.658945 vt 0.867621 0.456105 @@ -6924,7 +7902,6 @@ vt 0.518867 0.894998 vt 0.213269 0.928474 vt 0.129813 0.996170 vt 0.916203 0.452545 -vt 0.129813 0.978351 vt 0.207904 0.977190 vt 0.981129 0.897520 vt 0.429418 0.654142 @@ -6933,7 +7910,6 @@ vt 0.274913 0.974696 vt 0.215153 0.005436 vt 0.996148 0.879822 vt 0.562151 0.996988 -vt 0.562151 0.970144 vt 0.241092 0.971372 vt 0.241092 0.998218 vt 0.255557 0.971368 @@ -6944,3704 +7920,2489 @@ vt 0.487695 0.880950 vt 0.990700 0.907841 vt 0.964358 0.980046 vt 0.976544 0.000026 -vt 0.956464 0.072151 -vt 0.177412 0.533854 -vt 0.943249 0.528419 -vt 0.653877 0.569730 -vt 0.947613 0.740270 -vt 0.180948 0.744552 -vt 0.657378 0.780436 vt 0.129804 0.930688 -vt 0.297731 0.554659 vt 0.322920 0.658794 -vt 0.297584 0.634355 -vt 0.310241 0.571848 -vt 0.294668 0.929828 vt 0.274913 0.924289 -vt 0.547674 0.917404 -vt 0.970347 0.279463 vt 0.547492 0.904387 -vt 0.970173 0.268470 vt 0.990998 0.693932 -vn -1.0000 0.0000 0.0000 -vn 0.0000 -0.9871 -0.1600 -vn 1.0000 0.0000 0.0000 -vn -0.8425 0.0019 0.5387 -vn 0.0000 -1.0000 0.0097 -vn 0.0000 -0.2819 0.9594 -vn 0.0000 -0.0289 0.9996 -vn -0.9934 -0.1149 0.0011 -vn 0.0000 -0.9775 0.2111 -vn 0.0000 -0.0316 -0.9995 -vn 0.9736 0.2281 -0.0100 -vn 0.9733 0.2293 -0.0098 -vn 0.9731 0.2300 -0.0089 -vn 0.0000 -0.7392 0.6735 -vn 0.0000 -0.0097 -1.0000 -vn 0.0000 -0.9731 -0.2305 -vn 0.0000 0.5530 -0.8332 -vn 0.0000 0.9994 -0.0348 -vn -0.9995 -0.0003 -0.0304 -vn 0.9995 -0.0003 -0.0304 -vn 0.9284 -0.0036 -0.3715 -vn -0.9284 -0.0036 -0.3714 -vn 0.0000 1.0000 0.0012 -vn 0.0000 -0.5367 -0.8438 -vn 0.0000 0.0052 1.0000 -vn -0.8422 0.0034 0.5392 -vn -0.8410 0.0028 0.5410 -vn -0.8404 0.0047 0.5420 -vn 0.0000 -0.6972 -0.7169 -vn 0.8420 0.0058 0.5394 -vn 0.0000 0.5419 -0.8404 -vn 0.0000 0.5394 -0.8421 -vn 0.9934 -0.1149 0.0011 -vn 0.9934 -0.1149 0.0003 -vn 0.7671 -0.4112 0.4924 -vn -0.9934 -0.1149 0.0003 -vn 0.0000 -0.6074 0.7944 -vn -0.7671 -0.4112 0.4924 -vn 0.8425 0.0036 0.5387 -vn 0.0000 -0.0067 -1.0000 -vn -0.8425 0.0036 0.5387 -vn 0.0000 0.0067 1.0000 -vn 0.0000 0.0035 1.0000 -vn 0.8425 0.0019 0.5387 -vn 0.0000 -0.0035 -1.0000 -vn -0.9966 0.0818 -0.0008 -vn 0.0000 0.5586 -0.8294 -vn 0.9966 0.0818 -0.0008 -vn 0.9966 0.0818 -0.0002 -vn 0.8023 0.3076 0.5116 -vn -0.9966 0.0818 -0.0002 -vn 0.0000 0.4825 0.8759 -vn -0.8023 0.3076 0.5116 -vn 0.0000 0.0000 0.0000 -vn 0.0000 1.0000 -0.0047 -vn 0.0000 1.0000 -0.0097 -vn 0.0000 1.0000 -0.0027 -vn 0.3535 -0.1464 -0.9239 -vn 0.3827 0.0000 -0.9239 -vn 0.0000 0.0000 -0.9239 -vn -0.3535 0.1464 -0.9239 -vn -0.3827 0.0000 -0.9239 -vn 0.0035 0.9829 -0.1840 -vn 0.0036 0.9823 -0.1873 -vn -0.0036 0.9823 -0.1873 -vn 0.0030 0.9811 -0.1935 -vn -0.0015 0.9820 -0.1887 -vn -0.0019 0.9820 -0.1890 -vn 0.0000 0.9790 -0.2038 -vn 0.0000 0.9991 -0.0429 -vn 0.0000 -0.9991 0.0429 -vn 0.0000 0.0000 1.0000 -vn 0.8418 0.0058 0.5397 -vn 0.8407 0.0065 0.5415 -vn 0.8425 0.0039 0.5387 -vn -0.8425 0.0028 0.5387 -vn 0.9993 -0.0327 -0.0153 -vn -0.9284 -0.0036 -0.3715 -vn 0.8390 0.0080 0.5441 -vn 0.8386 0.0058 0.5447 -vn -0.8415 0.0028 0.5403 -vn -0.8405 0.0014 0.5417 -vn 0.0147 0.9816 -0.1903 -vn 0.0124 0.9821 -0.1881 -vn 0.0156 0.9824 -0.1861 -vn 0.0474 0.9810 -0.1879 -vn 0.9725 0.2329 -0.0100 -vn 0.9959 -0.0009 -0.0906 -vn 0.9983 0.0006 0.0585 -vn -0.0348 0.9991 0.0262 -vn 0.0000 0.0097 1.0000 -vn -0.0479 0.3613 0.9312 -vn 0.9999 0.0108 -0.0001 -vn 0.9993 -0.0321 0.0206 -vn 0.9994 -0.0321 0.0163 -vn 0.9743 0.2251 -0.0097 -vn 0.9741 0.2258 -0.0106 -vn 0.9745 0.2242 -0.0022 -vn 0.9995 -0.0315 0.0025 -vn 0.9996 -0.0272 0.0022 -vn 0.0000 0.9970 -0.0775 -vn 0.9140 0.4057 0.0092 -vn 0.0250 0.3883 -0.9212 -vn 0.0346 0.9719 -0.2330 -vn -0.9998 0.0078 -0.0165 -vn 0.0000 0.0044 1.0000 -vn -0.9126 0.0018 0.4089 -vn 0.8819 0.0021 0.4715 -vn 0.0000 -0.0022 -1.0000 -vn 0.0000 0.0310 -0.9995 -vn 0.0000 0.9999 -0.0131 -vn 0.0000 0.9999 -0.0122 -vn 0.0000 0.0343 0.9994 -vn 0.0000 0.0082 1.0000 -vn 0.0000 -0.0089 1.0000 -vn 0.0000 -1.0000 -0.0048 -vn 0.0000 -0.9993 0.0374 -vn 0.0000 -1.0000 -0.0066 -vn 0.0000 -0.9981 0.0618 -vn -0.0000 0.2181 -0.9759 -vn 1.0000 -0.0026 -0.0020 -vn 0.9999 -0.0100 0.0002 -vn 1.0000 0.0047 0.0047 -vn 1.0000 0.0029 -0.0053 -vn -1.0000 0.0029 -0.0053 -vn -1.0000 -0.0026 -0.0020 -vn -0.9999 -0.0100 0.0002 -vn -1.0000 0.0022 -0.0001 -vn -1.0000 -0.0063 0.0000 -vn 0.0000 0.0413 -0.9991 -vn 0.0000 0.2948 0.9556 -vn 0.0000 0.8943 -0.4475 -vn 0.0000 -0.0733 -0.9973 -vn 0.0000 0.0733 0.9973 -vn -0.9926 0.1211 -0.0012 -vn 0.9993 0.0377 -0.0004 -vn 0.0000 0.0342 0.9994 -vn 0.0000 0.0000 -0.9093 -vn 0.1592 0.3844 -0.9093 -vn -0.9885 -0.0111 -0.1510 -vn 0.0000 0.1701 0.9854 -vn 0.0000 -0.0970 -0.9953 -vn 0.9979 -0.0402 0.0501 -vn -0.2738 0.4318 -0.8594 -vn 0.0000 0.9786 -0.2056 -vn 0.0000 -0.9951 -0.0988 -vn -0.4239 -0.9013 -0.0895 -vn 0.1710 -0.9768 -0.1288 -vn 0.0000 0.9914 0.1307 -vn -0.9992 -0.0394 -0.0052 -vn 0.9996 -0.0272 -0.0036 -vn 0.8988 -0.0042 -0.4384 -vn -0.7896 -0.0059 -0.6136 -vn 1.0000 0.0001 0.0091 -vn -1.0000 0.0000 0.0021 -vn 0.9994 -0.0346 0.0003 -vn -1.0000 -0.0079 0.0001 -vn -0.9985 0.0541 -0.0005 -vn 0.9992 -0.0342 0.0218 -vn 0.0132 0.5967 -0.8023 -vn 0.0162 -0.0611 -0.9980 -vn 0.0775 -0.9969 0.0096 -vn 0.0000 -0.2860 -0.9582 -vn -0.9999 -0.0126 -0.0062 -vn -0.9999 -0.0125 0.0001 -vn -0.9999 -0.0124 0.0073 -vn 0.9346 -0.3556 0.0034 -vn -0.0326 -0.5854 0.8101 -vn -0.0116 0.7094 0.7048 -vn 0.0000 -0.9914 -0.1307 -vn 0.0000 0.9998 -0.0199 -vn 0.2738 0.4318 -0.8594 -vn 0.1333 0.0532 0.9896 -vn 0.0000 0.0537 0.9986 -vn -0.1672 0.0957 0.9813 -vn 0.0000 0.9999 -0.0153 -vn 0.0000 0.0970 0.9953 -vn 0.0000 0.7042 -0.7100 -vn 0.0000 1.0000 -0.0099 -vn 0.0824 0.7771 0.6240 -vn -0.9465 0.0372 -0.3205 -vn 0.0000 0.9968 0.0797 -vn 0.0000 -0.7679 -0.6406 -vn 0.9465 0.0372 -0.3205 -vn 0.0000 0.9936 0.1129 -vn -0.9990 -0.0051 0.0442 -vn 0.0000 -1.0000 0.0055 -vn 0.9990 -0.0051 0.0442 -vn 0.0000 -0.9999 0.0166 -vn 0.0000 -0.6981 0.7160 -vn 0.0000 0.9999 -0.0166 -vn 0.0000 0.0198 0.9998 -vn 0.0000 0.7070 -0.7072 -vn 0.0000 -0.0224 -0.9998 -vn 0.0000 1.0000 -0.0046 -vn 0.0000 -0.9973 -0.0733 -vn 0.0000 0.6259 0.7799 -vn 0.0000 -0.9931 -0.1170 -vn 0.0000 -1.0000 0.0046 -vn 0.0000 0.9978 0.0670 -vn 0.0000 -0.0198 -0.9998 -vn 0.0000 -0.9998 0.0176 -vn -0.0014 1.0000 -0.0096 -vn 0.0000 0.3280 -0.9447 -vn 0.0000 -1.0000 0.0098 -vn 0.0000 0.9999 -0.0170 -vn -0.0013 -0.9998 0.0216 -vn 0.0000 -0.0577 -0.9983 -vn 0.0000 0.9889 0.1484 -vn 0.0000 0.7724 0.6352 -vn 0.0021 0.3616 -0.9323 -vn 0.0038 0.3609 -0.9326 -vn 0.0042 0.3592 -0.9332 -vn 0.0000 0.3176 -0.9482 -vn 0.0016 0.3559 -0.9345 -vn 0.0000 0.3568 -0.9342 -vn 0.0005 0.3635 -0.9316 -vn -0.0018 0.3617 -0.9323 -vn -0.0002 0.3636 -0.9316 -vn 0.0000 -0.9998 0.0210 -vn 0.0000 -0.9998 0.0217 -vn -0.0020 0.9999 -0.0166 -vn 0.0000 1.0000 -0.0096 -vn 0.0000 -1.0000 -0.0038 -vn -0.0312 -0.9995 -0.0038 -vn -0.0195 -0.9929 -0.1170 -vn 0.1252 0.6210 0.7738 -vn 0.0000 0.9999 0.0152 -vn 0.0000 0.7797 0.6261 -vn -0.0014 1.0000 -0.0097 -vn 0.0000 0.4355 0.9002 -vn 0.0000 -0.0224 -0.9997 -vn 0.9465 0.0372 -0.3204 -vn 1.0000 0.0052 -0.0052 -vn 0.0000 0.1871 -0.9823 -vn 0.0000 0.9700 -0.2429 -vn -0.9659 0.2585 0.0111 -vn 0.9813 0.1907 -0.0275 -vn 0.0000 0.1886 0.9820 -vn -0.5087 0.8556 0.0962 -vn -0.9507 0.2307 0.2071 -vn 0.9239 0.3803 0.0427 -vn 0.4938 0.8655 -0.0838 -vn -0.4938 0.8655 -0.0838 -vn -0.8507 0.5109 -0.1237 -vn 0.9067 0.3518 0.2326 -vn 0.2383 0.8589 0.4533 -vn 0.3827 -0.9181 -0.1032 -vn 0.9685 -0.2475 -0.0278 -vn -0.9243 -0.3038 -0.2310 -vn -0.0998 -0.9949 -0.0144 -vn -0.2646 0.6033 -0.7524 -vn -0.6990 0.3607 -0.6175 -vn 0.6810 0.3558 -0.6400 -vn 0.2608 0.5979 -0.7580 -vn -0.2436 0.0146 -0.9698 -vn 0.2436 -0.0146 0.9698 -vn 0.1833 -0.0750 0.9802 -vn 0.1695 -0.0057 0.9855 -vn 0.2016 0.0541 0.9780 -vn 0.2752 0.0799 0.9580 -vn 0.3604 0.0277 0.9324 -vn 0.3529 -0.0877 0.9316 -vn 0.2532 -0.1242 0.9594 -vn 0.9811 0.1936 -0.0019 -vn 0.9914 -0.1311 0.0013 -vn 0.9980 -0.0635 0.0006 -vn -0.9788 -0.2046 0.0020 -vn -0.9914 0.1311 -0.0013 -vn -0.9980 0.0635 -0.0006 -vn -0.9914 0.1312 -0.0013 -vn -0.0094 0.0215 0.9997 -vn 0.6219 -0.7831 0.0076 -vn 0.1312 0.9913 -0.0096 -vn 0.6218 -0.7831 0.0076 -vn 0.1311 0.9913 -0.0096 -vn 0.0001 0.0097 1.0000 -vn -0.0022 -0.0263 -0.9997 -vn -0.0021 -0.0263 -0.9997 -vn -0.1311 -0.9913 0.0096 -vn 0.1034 0.7877 0.6073 -vn -0.0001 -0.0097 -1.0000 -vn 0.0948 0.7102 -0.6976 -vn 0.9736 0.2282 -0.0013 -vn 0.9734 0.2291 -0.0022 -vn -0.8390 0.0080 0.5441 -vn -0.8386 0.0058 0.5447 -vn 0.8425 0.0028 0.5387 -vn -0.0147 0.9816 -0.1903 -vn -0.0156 0.9824 -0.1861 -vn -0.0124 0.9821 -0.1881 -vn -0.0474 0.9810 -0.1879 -vn 0.0033 0.9813 -0.1922 -vn -0.0031 0.9812 -0.1932 -vn 0.0020 0.9820 -0.1890 -vn -0.9701 0.2425 0.0000 -vn 0.8415 0.0028 0.5403 -vn 0.8405 0.0014 0.5418 -vn -0.8420 0.0058 0.5394 -vn 0.9995 -0.0327 0.0003 -vn 0.8422 0.0034 0.5392 -vn 0.8404 0.0047 0.5420 -vn 0.8410 0.0028 0.5410 -vn -0.8418 0.0058 0.5397 -vn -0.8425 0.0039 0.5387 -vn -0.8407 0.0065 0.5415 -vn -0.0035 0.9829 -0.1840 -vn 0.9846 0.1294 -0.1179 -vn 0.9995 -0.0315 0.0003 -vn 0.9749 0.2224 -0.0095 -vn 0.9997 0.0096 -0.0213 -vn 0.0000 0.9980 0.0633 -vn -0.0651 0.3722 0.9259 -vn 0.9999 0.0046 0.0124 -vn 0.9999 0.0027 0.0144 -vn 0.9996 -0.0273 0.0004 -vn 0.9995 -0.0316 0.0003 -vn 0.9738 0.2275 -0.0022 -vn 0.9740 0.2267 -0.0032 -vn 0.9735 0.2286 -0.0022 -vn 0.9996 -0.0273 0.0003 -vn 0.9999 0.0046 0.0119 -vn 0.9999 0.0025 0.0101 -vn -0.0192 0.9943 -0.1046 -vn 0.8869 0.4537 -0.0873 -vn -0.0385 0.4262 -0.9038 -vn 0.0790 0.9958 -0.0465 -vn -0.9850 0.0898 0.1477 -vn 0.9999 -0.0100 0.0001 -vn 1.0000 -0.0001 -0.0017 -vn 1.0000 -0.0000 -0.0059 -vn 1.0000 0.0046 -0.0060 -vn 0.9999 0.0005 -0.0148 -vn 1.0000 -0.0025 -0.0081 -vn 0.9999 -0.0035 -0.0126 -vn 0.9999 -0.0101 0.0001 -vn 1.0000 -0.0008 0.0030 -vn 1.0000 -0.0005 0.0056 -vn 1.0000 0.0019 0.0042 -vn 1.0000 0.0000 0.0024 -vn 1.0000 -0.0001 0.0023 -vn 1.0000 -0.0098 0.0001 -vn 1.0000 -0.0013 0.0011 -vn 1.0000 0.0098 0.0001 -vn 1.0000 0.0022 -0.0001 -vn 1.0000 -0.0004 0.0020 -vn 1.0000 -0.0030 0.0018 -vn 1.0000 -0.0006 0.0052 -vn 1.0000 0.0008 0.0030 -vn 0.9999 0.0034 -0.0131 -vn 0.9999 -0.0012 -0.0136 -vn 0.9998 0.0029 -0.0177 -vn 1.0000 -0.0041 -0.0081 -vn 1.0000 0.0001 -0.0061 -vn 1.0000 0.0024 0.0000 -vn 1.0000 0.0098 -0.0004 -vn -0.9998 0.0029 -0.0177 -vn -0.9999 -0.0012 -0.0136 -vn -0.9999 0.0034 -0.0131 -vn -1.0000 0.0098 -0.0004 -vn -1.0000 0.0001 -0.0061 -vn -1.0000 -0.0041 -0.0081 -vn -1.0000 0.0024 0.0000 -vn -0.9999 -0.0100 0.0001 -vn -0.9999 -0.0035 -0.0126 -vn -1.0000 -0.0025 -0.0081 -vn -0.9999 0.0005 -0.0148 -vn -0.9999 -0.0101 0.0001 -vn -1.0000 -0.0000 -0.0059 -vn -1.0000 0.0046 -0.0060 -vn -1.0000 -0.0001 -0.0017 -vn -1.0000 -0.0005 0.0056 -vn -1.0000 -0.0008 0.0030 -vn -1.0000 0.0018 0.0041 -vn -1.0000 0.0000 0.0024 -vn -1.0000 -0.0013 0.0011 -vn -1.0000 -0.0001 0.0023 -vn -1.0000 -0.0098 0.0001 -vn -1.0000 0.0098 0.0001 -vn -1.0000 0.0008 0.0030 -vn -1.0000 -0.0006 0.0051 -vn -1.0000 0.0047 0.0047 -vn -1.0000 -0.0004 0.0020 -vn -1.0000 -0.0030 0.0018 -vn -1.0000 -0.0045 -0.0044 -vn -1.0000 -0.0071 0.0001 -vn 0.0000 0.8943 -0.4474 -vn -0.9880 0.0321 -0.1513 -vn 0.0000 -0.4489 -0.8936 -vn 0.1672 0.0957 0.9813 -vn -0.9939 -0.0813 -0.0752 -vn -0.9884 -0.0147 -0.1510 -vn 0.9980 -0.0569 0.0287 -vn -0.9968 -0.0499 0.0623 -vn -0.9969 -0.0707 0.0356 -vn 0.0000 0.6252 -0.7804 -vn -0.9982 -0.0540 0.0249 -vn 0.9990 -0.0393 0.0221 -vn -0.9996 0.0172 0.0213 -vn 1.0000 0.0043 -0.0000 -vn 0.0000 0.5989 -0.8008 -vn 0.0164 -0.0607 -0.9980 -vn 0.0165 0.0076 -0.9998 -vn 0.0000 -0.2861 -0.9582 -vn -0.9999 -0.0115 -0.0061 -vn -0.0597 -0.5894 0.8056 -vn -0.0549 0.7394 0.6710 -vn 0.0003 0.9998 -0.0198 -vn -0.1333 0.0532 0.9896 -vn 0.4017 0.5726 -0.7147 -vn -0.4017 0.5726 -0.7147 -vn 0.0014 1.0000 -0.0097 -vn 0.0000 0.7946 0.6071 -vn -0.9465 0.0372 -0.3204 -vn -0.0016 0.3559 -0.9345 -vn -0.0021 0.3616 -0.9323 -vn -0.0042 0.3593 -0.9332 -vn -0.0038 0.3609 -0.9326 -vn -0.0008 0.3634 -0.9316 -vn 0.0019 0.3621 -0.9321 -vn -0.0012 0.3631 -0.9317 -vn 0.0013 -0.9998 0.0216 -vn 0.0014 1.0000 -0.0096 -vn 0.0111 0.9979 0.0646 -vn 0.0000 0.2996 0.9541 -vn 0.0000 1.0000 -0.0100 -vn 0.9976 0.0689 -0.0093 -vn 0.6286 -0.7775 -0.0165 -vn 1.0000 0.0053 -0.0073 -vn 1.0000 -0.0002 -0.0074 -vn 1.0000 0.0075 -0.0000 -vn 1.0000 0.0012 0.0038 -vn 1.0000 0.0079 0.0005 -vn -0.9974 0.0718 -0.0091 -vn -0.1496 0.9886 0.0161 -vn -0.9659 0.2586 0.0110 -vn 0.9659 0.2586 0.0111 -vn 0.0803 0.3893 0.9176 -vn -0.3756 0.8796 0.2920 -vn -0.9239 0.3803 0.0427 -vn 0.9239 0.3803 0.0428 -vn 0.3827 0.9181 0.1032 -vn -0.2524 0.9247 0.2851 -vn 0.9103 0.3068 0.2779 -vn 0.5087 0.8556 0.0962 -vn 0.1106 -0.9635 0.2436 -vn 0.9786 -0.1938 0.0687 -vn -0.9879 -0.1550 0.0049 -vn 0.0040 -0.9937 -0.1117 -vn 0.2017 0.0541 0.9780 -vn 0.2753 0.0800 0.9580 -vn 0.3529 -0.0876 0.9316 -vn 0.0023 0.0263 0.9997 -vn -0.0001 0.0097 1.0000 -vn 0.0094 -0.0215 -0.9997 -vn 0.0022 0.0263 0.9997 -vn 0.0093 -0.0215 -0.9997 -vn 0.1035 0.7877 0.6073 -vn 0.1821 0.0393 -0.9825 -vn 0.1579 0.0817 -0.9841 -vn 0.0000 1.0000 -0.0040 -vn 0.5000 0.8660 -0.0027 -vn 0.4994 -0.8660 0.0267 -vn 0.0011 -0.9995 0.0309 -vn -0.0011 -0.9995 0.0309 -vn -0.9018 -0.4309 0.0319 -vn -0.9971 0.0692 0.0308 -vn -0.9970 0.0714 0.0307 -vn 0.8653 0.5010 0.0162 -vn 0.5010 0.8653 0.0165 -vn 0.8664 0.4991 0.0162 -vn -0.0011 0.9998 0.0191 -vn -0.4992 0.8662 0.0233 -vn 0.0011 0.9998 0.0191 -vn 0.8797 -0.4751 0.0221 -vn 0.5005 -0.8653 0.0267 -vn -0.5870 -0.8089 0.0336 -vn -0.7893 -0.6132 0.0307 -vn -0.7850 -0.6187 0.0307 -vn 0.4987 0.8666 0.0165 -vn -0.5003 0.8655 0.0233 -vn -0.8605 0.5086 0.0279 -vn 0.1906 -0.0335 -0.9811 -vn 0.1872 0.0078 -0.9823 -vn 0.1869 0.0101 -0.9823 -vn -0.5852 -0.8102 0.0336 -vn 0.9912 0.1311 0.0167 -vn 0.9913 0.1309 0.0166 -vn -0.5000 0.8660 -0.0027 -vn -0.8660 0.5000 0.0009 -vn 0.0000 -0.9999 0.0154 -vn -0.5864 -0.8099 0.0135 -vn -0.5862 -0.8101 0.0135 -vn 0.9936 0.1132 0.0044 -vn 0.8660 0.5000 0.0009 -vn 0.9936 0.1131 0.0044 -vn 0.5000 -0.8659 0.0141 -vn -0.9358 -0.3524 0.0087 -vn -0.9982 0.0604 0.0049 -vn -0.9982 0.0605 0.0049 -vn 0.8838 -0.4678 0.0102 -vn -0.9358 -0.3525 0.0087 -vn 0.8838 -0.4679 -0.0041 -vn 0.5000 -0.8660 -0.0002 -vn -0.5000 0.8659 -0.0170 -vn -0.0000 0.9998 -0.0183 -vn 0.5000 0.8659 -0.0170 -vn 0.8660 0.4999 -0.0134 -vn -0.9981 0.0602 -0.0089 -vn -0.9358 -0.3525 -0.0046 -vn -0.9981 0.0604 -0.0089 -vn -0.0000 -1.0000 0.0011 -vn 0.9935 0.1131 -0.0094 -vn 0.9936 0.1130 -0.0094 -vn -0.5864 -0.8100 -0.0007 -vn -0.5861 -0.8102 -0.0007 -vn -0.8660 0.4999 -0.0134 -vn -0.9357 -0.3527 -0.0046 -vn -0.6006 0.5955 -0.5336 -vn -0.7283 0.4152 -0.5451 -vn -0.2198 -0.8153 0.5357 -vn 0.0000 -0.8357 0.5492 -vn -0.8871 -0.3274 0.3253 -vn -0.5580 -0.7533 0.3481 -vn -0.8846 -0.3343 0.3252 -vn 0.4697 -0.8102 0.3506 -vn 0.8315 -0.4341 0.3467 -vn 0.2441 -0.9142 -0.3235 -vn 0.4697 0.8169 0.3349 -vn 0.8136 0.4730 0.3382 -vn -0.9417 0.0560 0.3318 -vn -0.9411 0.0639 0.3320 -vn 0.0000 -0.9361 0.3518 -vn 0.9369 0.1122 0.3310 -vn 0.9375 0.1074 0.3310 -vn -0.1821 0.0393 -0.9825 -vn -0.1822 0.0393 -0.9825 -vn -0.1702 -0.1209 -0.9780 -vn -0.1130 -0.1548 -0.9815 -vn -0.1047 -0.1596 -0.9816 -vn -0.5456 -0.7620 0.3487 -vn -0.1886 -0.0010 -0.9821 -vn -0.1878 0.0039 -0.9822 -vn 0.8837 -0.4678 -0.0154 -vn 0.4999 -0.8660 -0.0116 -vn -0.0000 -0.9996 0.0296 -vn 0.2588 -0.9655 0.0286 -vn 0.7070 0.7068 -0.0261 -vn 0.8659 0.4997 -0.0248 -vn -0.9980 0.0600 -0.0199 -vn -0.9357 -0.3524 -0.0152 -vn -0.9980 0.0604 -0.0199 -vn 0.0000 -0.9999 -0.0103 -vn 0.9934 0.1131 -0.0204 -vn 0.9934 0.1128 -0.0204 -vn -0.5866 -0.8098 -0.0120 -vn -0.5858 -0.8104 -0.0120 -vn -0.8659 0.4997 -0.0248 -vn -0.7070 0.7068 -0.0261 -vn -0.2588 -0.9655 0.0286 -vn 0.1893 -0.0456 -0.9809 -vn 0.1906 -0.0338 -0.9811 -vn -0.3383 0.2001 0.9195 -vn -0.3751 0.0362 0.9263 -vn -0.3331 0.2137 0.9184 -vn -0.2948 -0.2253 0.9286 -vn -0.3441 -0.1182 0.9315 -vn -0.3304 -0.1463 0.9324 -vn 0.3207 -0.0291 0.9467 -vn 0.3108 -0.1408 0.9400 -vn 0.2987 -0.1576 0.9412 -vn -0.2095 -0.2501 0.9453 -vn -0.3111 -0.1947 0.9302 -vn 0.1672 -0.2717 0.9477 -vn 0.1608 -0.2749 0.9479 -vn -0.0000 0.4273 0.9041 -vn -0.1994 0.3681 0.9082 -vn 0.2088 0.3617 0.9086 -vn 0.3331 0.2137 0.9184 -vn 0.3401 0.1973 0.9195 -vn -0.3739 0.0324 0.9269 -vn -0.9356 -0.3528 -0.0152 -vn -0.0000 -0.3122 0.9500 -vn 0.5000 -0.8659 0.0118 -vn 0.8838 -0.4678 0.0080 -vn -0.5000 0.8660 -0.0049 -vn 0.0000 1.0000 -0.0062 -vn 0.5000 0.8660 -0.0049 -vn 0.8660 0.5000 -0.0014 -vn -0.9358 -0.3525 0.0066 -vn -0.9982 0.0604 0.0028 -vn -0.9982 0.0605 0.0028 -vn 0.0000 -0.9999 0.0131 -vn 0.9936 0.1132 0.0023 -vn 0.9936 0.1131 0.0023 -vn -0.5862 -0.8101 0.0113 -vn -0.5864 -0.8100 0.0113 -vn -0.8660 0.5000 -0.0014 -vn -0.2877 0.0123 -0.9576 -vn -0.2456 0.1353 -0.9599 -vn -0.2875 0.0040 -0.9578 -vn -0.2520 -0.2137 -0.9438 -vn -0.1771 -0.2377 -0.9551 -vn -0.1646 -0.2450 -0.9554 -vn 0.2930 0.0306 -0.9556 -vn 0.2482 0.1340 -0.9594 -vn 0.2944 -0.0398 -0.9548 -vn 0.2524 -0.1425 -0.9571 -vn 0.2914 -0.0406 -0.9557 -vn 0.0000 -0.2958 -0.9552 -vn -0.1433 0.2389 -0.9604 -vn -0.2469 0.1363 -0.9594 -vn 0.0000 0.2773 -0.9608 -vn 0.1433 0.2389 -0.9604 -vn -0.2797 -0.1228 -0.9522 -vn -0.2659 -0.1832 -0.9464 -vn 0.1433 -0.2575 -0.9556 -vn 0.2517 -0.1465 -0.9567 -vn 0.4866 -0.8406 0.2380 -vn -0.0000 -0.9709 0.2393 -vn -0.1579 0.0817 -0.9841 -vn -0.0000 -0.1919 -0.9814 -vn 0.1621 -0.0934 -0.9823 -vn -0.0912 0.1484 -0.9847 -vn 0.0912 0.1484 -0.9847 -vn 0.0000 0.1729 -0.9849 -vn -0.1818 -0.0810 -0.9800 -vn 0.0912 -0.1674 -0.9817 -vn 0.1608 -0.0957 -0.9823 -vn 0.9946 -0.1025 0.0180 -vn 0.9685 -0.1066 0.2252 -vn 0.9681 -0.1204 0.2196 -vn 0.9695 0.0996 0.2239 -vn 0.8888 -0.2388 -0.3913 -vn 0.8265 -0.4164 -0.3789 -vn 0.8872 -0.2447 -0.3912 -vn -0.9733 0.0582 0.2219 -vn -0.9147 -0.3399 0.2185 -vn -0.9130 -0.3446 0.2184 -vn 0.8428 0.4888 0.2252 -vn 0.4866 0.8450 0.2217 -vn -0.0000 0.9754 0.2205 -vn -0.4866 0.8450 0.2217 -vn 0.8609 -0.4517 0.2341 -vn 0.8595 -0.4544 0.2342 -vn -0.8187 -0.5339 0.2115 -vn -0.8428 0.4888 0.2252 -vn -0.5753 -0.7831 0.2362 -vn 0.9951 0.0989 -0.0010 -vn 0.9659 0.2588 -0.0025 -vn 0.7876 -0.4940 -0.3683 -vn 0.8898 -0.2422 -0.3869 -vn 0.8897 -0.2422 -0.3869 -vn 0.9009 -0.1935 -0.3885 -vn 0.7590 0.4928 -0.4255 -vn 0.5352 0.6962 -0.4784 -vn 0.5025 0.7178 -0.4820 -vn 0.9131 -0.0646 -0.4026 -vn 0.9135 -0.0545 -0.4031 -vn -0.8994 0.1125 -0.4223 -vn -0.8896 0.1655 -0.4257 -vn -0.9003 0.1073 -0.4219 -vn -0.9066 -0.0888 -0.4126 -vn -0.9058 -0.1000 -0.4118 -vn 0.7936 -0.4755 -0.3795 -vn -0.8851 -0.2410 -0.3981 -vn 0.0011 0.8668 -0.4986 -vn -0.0008 0.8668 -0.4986 -vn -0.8660 0.5000 -0.0048 -vn -0.9659 0.2588 -0.0025 -vn 0.5000 -0.8660 0.0084 -vn -0.9358 -0.3525 0.0034 -vn -0.9982 0.0604 -0.0006 -vn 0.5000 0.8660 -0.0084 -vn 0.8660 0.5000 -0.0048 -vn -0.5000 0.8660 -0.0084 -vn 0.8838 -0.4679 0.0045 -vn -0.8367 -0.5477 0.0053 -vn 0.9587 -0.1807 0.2195 -vn -0.5863 -0.8101 0.0078 -vn 0.9533 0.2539 -0.1638 -vn 0.9429 0.0892 -0.3211 -vn 0.9156 0.2423 -0.3208 -vn -0.7923 0.3968 -0.4635 -vn -0.0022 -0.6242 0.7813 -vn -0.4237 0.8995 0.1063 -vn -0.0022 0.6327 0.7744 -vn 0.0014 0.9861 0.1661 -vn -0.9235 -0.3459 -0.1660 -vn -0.9336 0.0501 -0.3548 -vn -0.8767 -0.3375 -0.3427 -vn 0.8880 0.4032 -0.2212 -vn 0.6700 0.6669 -0.3260 -vn 0.1154 -0.4222 0.8991 -vn 0.0014 -0.9841 0.1777 -vn 0.4253 -0.8971 0.1195 -vn 0.9058 -0.3635 -0.2177 -vn 0.6674 -0.6706 -0.3240 -vn 0.8352 -0.4389 -0.3315 -vn -0.8246 -0.5414 -0.1640 -vn -0.7888 -0.5195 -0.3285 -vn -0.4239 -0.8980 0.1183 -vn -0.6639 0.6605 -0.3508 -vn -0.8069 0.4657 -0.3635 -vn -0.8849 0.3985 -0.2412 -vn 0.9697 -0.1865 -0.1576 -vn 0.9324 -0.1808 -0.3130 -vn 0.1202 0.4570 0.8813 -vn 0.2550 0.9533 0.1620 -vn 0.9795 -0.1257 -0.1573 -vn 0.9823 0.0966 -0.1604 -vn 0.4710 -0.8087 -0.3523 -vn 0.8040 -0.4565 -0.3811 -vn 0.9938 -0.1115 0.0044 -vn 0.3787 0.0550 0.9239 -vn 0.3745 0.0494 0.9259 -vn 0.9936 -0.1117 -0.0178 -vn -0.6669 0.6701 0.3259 -vn -0.8136 0.4730 0.3382 -vn 0.9937 -0.1116 -0.0070 -vn 0.9937 -0.1114 0.0065 -vn 0.9823 -0.1873 0.0018 -vn 0.9921 -0.1257 0.0012 -vn -0.9506 0.2530 -0.1801 -vn -0.9831 0.0579 -0.1735 -vn -0.1831 -0.0764 -0.9801 -vn -0.0010 -0.9390 -0.3438 -vn -0.4582 -0.8137 -0.3578 -vn 0.0012 -0.9390 -0.3438 -vn 0.9417 0.2545 0.2200 -vn 0.8180 0.4686 -0.3336 -vn 0.8837 -0.4680 -0.0041 -vn 0.2441 0.9142 0.3235 -vn -0.1853 -0.2625 0.9470 -vn 0.8835 -0.4681 -0.0154 -vn 0.3744 -0.0300 0.9268 -vn 0.8838 -0.4679 0.0080 -vn -0.2733 -0.1317 -0.9529 -vn 0.9415 -0.1223 -0.3139 -vn 0.8513 0.3098 -0.4234 -vn -0.9503 0.2529 -0.1815 -vn -0.9040 0.2388 -0.3545 -vn -0.7780 0.4215 -0.4659 -vn -0.4424 0.7501 -0.4915 -vn -0.7888 -0.5196 -0.3285 -vn -0.8258 -0.5421 -0.1553 -vn 0.4611 -0.8146 -0.3519 -vn -0.5668 -0.7892 0.2365 -vn 0.2920 0.0256 -0.9561 -vn -0.9024 -0.4297 0.0319 -vn -0.8533 0.5214 -0.0103 -vn -0.9177 0.3972 -0.0076 -vn 0.9935 0.1134 -0.0016 -vn 0.9937 -0.1118 0.0016 -vn 0.9935 0.1135 -0.0006 -vn 0.2588 0.9659 -0.0093 -vn 0.7071 -0.7071 0.0068 -vn 0.7570 -0.6534 0.0063 -vn -0.5000 -0.8660 0.0084 -vn -0.9444 -0.3286 -0.0103 -vn -0.7071 0.7071 -0.0068 -vn -0.7071 -0.7071 0.0068 -vn -0.9445 -0.3282 0.0167 -vn 0.7873 -0.6165 0.0060 -vn 0.9269 -0.3753 0.0036 -vn 0.9937 -0.1118 0.0006 -vn 0.9071 0.4210 -0.0041 -vn 0.9951 0.0988 -0.0012 -vn 0.8513 -0.5246 0.0051 -vn -0.6839 -0.7296 0.0071 -vn -0.8657 0.5005 -0.0039 -vn -0.9158 0.4015 -0.0035 -vn -0.9661 0.2583 -0.0016 -vn -0.9964 0.0177 -0.0830 -vn -0.7815 0.6239 -0.0060 -vn -0.9857 0.1685 -0.0011 -vn -0.9786 0.2056 -0.0020 -vn -0.9857 0.1683 -0.0023 -vn -0.9632 0.2006 -0.1790 -vn -0.8367 -0.5477 0.0084 -vn -0.9066 0.2362 -0.3498 -vn -0.4712 -0.8058 -0.3586 -vn -0.7894 -0.4744 -0.3895 -vn 0.8470 0.3207 -0.4240 -vn -0.8444 0.5082 -0.1695 -vn -0.9579 -0.1245 -0.2586 -vn -0.9524 -0.1186 0.2809 -vn -0.2088 0.3617 0.9086 -vn 0.1994 0.3681 0.9082 -vn 0.9393 -0.1024 0.3273 -vn 0.9394 -0.1021 0.3273 -vn -0.8603 0.5091 0.0278 -vn -0.9417 0.2545 0.2200 -vn -0.4335 0.7551 -0.4919 -vn -0.8006 -0.4537 -0.3914 -vn -0.8866 0.4625 -0.0045 -vn -0.9961 0.0214 0.0862 -vn -0.8593 0.4785 -0.1808 -vn -0.9050 0.2425 -0.3497 -vn -0.9075 0.2398 -0.3449 -vn -0.9368 -0.3499 -0.0009 -vn -0.9983 0.0583 -0.0063 -vn 0.9613 -0.2749 0.0185 -vn 0.9316 -0.3631 0.0187 -vn 0.1530 -0.9867 -0.0547 -vn 0.0791 -0.9967 0.0160 -vn 0.1418 0.0120 0.9898 -vn -0.1127 -0.4565 0.8826 -vn -0.1418 0.0120 0.9898 -vn 0.2462 -0.4736 0.8456 -vn 0.3300 0.0091 0.9440 -vn 0.1260 -0.9413 0.3133 -vn 0.1127 -0.4565 0.8826 -vn 0.1337 -0.9906 0.0294 -vn -0.1533 -0.9880 0.0158 -vn 0.1534 -0.9880 0.0158 -vn 0.2650 -0.9641 0.0154 -vn -0.1530 -0.9867 -0.0547 -vn -0.1260 -0.9413 0.3133 -vn 0.2413 -0.9704 -0.0048 -vn 0.2116 -0.9080 0.3616 -vn -0.0791 -0.9967 0.0160 -vn -0.2650 -0.9641 0.0154 -vn -0.2413 -0.9704 -0.0048 -vn -0.2116 -0.9080 0.3616 -vn -0.2464 0.4622 0.8519 -vn -0.1146 0.4450 0.8882 -vn -0.1164 0.9181 0.3790 -vn -0.2088 0.9021 0.3777 -vn 0.9445 -0.2527 -0.2099 -vn 0.7423 -0.6651 -0.0812 -vn 0.8371 -0.4874 -0.2486 -vn 0.9854 0.0047 -0.1703 -vn 0.9998 0.0169 0.0040 -vn -0.9445 -0.2527 -0.2099 -vn -0.7423 -0.6651 -0.0812 -vn -0.9352 -0.3329 0.1212 -vn -0.7729 -0.6171 0.1477 -vn -0.9080 -0.2753 0.3160 -vn -0.9843 0.0622 0.1649 -vn -0.9908 0.0846 -0.1058 -vn -0.9564 -0.1410 0.2558 -vn -0.8789 0.2188 0.4238 -vn -0.9300 -0.1110 0.3503 -vn 0.9840 0.0600 0.1677 -vn 0.9908 0.0847 -0.1058 -vn 0.9832 0.0494 -0.1759 -vn 0.9475 0.1642 -0.2743 -vn 0.9396 0.2056 -0.2735 -vn -0.9916 -0.1072 0.0726 -vn -0.8195 -0.5358 0.2033 -vn 0.9916 -0.1071 0.0724 -vn 0.9635 0.2124 -0.1630 -vn 0.9343 0.2035 -0.2929 -vn -0.9804 0.0160 0.1961 -vn -0.9094 0.0735 0.4094 -vn 0.9804 0.0160 0.1961 -vn 0.9855 0.0749 -0.1525 -vn 0.9428 0.1762 -0.2830 -vn 0.9094 0.0735 0.4094 -vn 0.9352 -0.3329 0.1212 -vn -0.9428 0.1762 -0.2830 -vn -0.9855 0.0749 -0.1525 -vn -0.2493 0.9683 -0.0141 -vn -0.1360 0.9906 -0.0155 -vn 0.9564 -0.1410 0.2558 -vn 0.8195 -0.5358 0.2033 -vn -0.9396 0.2056 -0.2735 -vn -0.9636 0.2121 -0.1628 -vn -0.1195 0.8349 -0.5373 -vn -0.1960 0.8321 -0.5188 -vn 0.8789 0.2188 0.4238 -vn -0.9475 0.1641 -0.2744 -vn -0.9826 0.0514 -0.1786 -vn -0.2458 0.3187 -0.9154 -vn -0.1231 0.2914 -0.9486 -vn -0.1445 0.0045 -0.9895 -vn -0.3293 -0.0091 -0.9442 -vn -0.9854 0.0047 -0.1703 -vn -0.8371 -0.4874 -0.2486 -vn 0.7729 -0.6171 0.1477 -vn 0.1256 -0.9608 0.2472 -vn -0.0576 -0.9747 0.2158 -vn -0.1467 -0.9583 0.2454 -vn -0.2007 -0.9752 0.0936 -vn 0.2533 -0.9513 0.1759 -vn -0.2919 -0.9407 0.1729 -vn 0.1826 -0.9254 0.3321 -vn -0.2163 -0.9254 0.3112 -vn 0.1850 -0.9314 0.3134 -vn 0.1722 -0.9368 0.3047 -vn -0.2012 -0.9320 0.3015 -vn 0.1764 -0.9315 0.3181 -vn -0.2135 -0.9195 0.3300 -vn -0.2064 -0.9261 0.3159 -vn -0.3986 -0.8724 0.2829 -vn -0.4109 -0.8594 0.3042 -vn 0.3144 0.9491 -0.0171 -vn 0.5969 0.8022 -0.0145 -vn 0.2092 0.9777 -0.0177 -vn -0.4177 -0.8553 0.3065 -vn -0.3763 -0.8860 0.2709 -vn -0.4727 -0.8497 0.2337 -vn -0.2633 -0.9419 0.2085 -vn -0.3551 0.9347 -0.0169 -vn -0.6639 0.7477 -0.0135 -vn -0.6044 -0.7930 0.0761 -vn -0.4200 -0.8590 0.2929 -vn 0.5365 -0.8400 0.0806 -vn 0.4144 -0.8788 0.2367 -vn -0.1780 0.9839 -0.0178 -vn 0.3529 -0.8823 0.3114 -vn -0.2247 0.9743 -0.0176 -vn 0.3196 -0.9068 0.2750 -vn 0.3617 -0.8825 0.3006 -vn 0.1688 0.9855 -0.0178 -vn 0.2230 -0.9518 0.2107 -vn 0.0543 -0.9749 0.2158 -vn 0.3595 -0.8784 0.3148 -vn 0.3423 -0.8938 0.2899 -vn -0.9172 -0.3289 0.2248 -vn -0.3319 -0.9414 0.0595 -vn -0.3285 -0.9427 0.0585 -vn -0.8159 0.5339 0.2220 -vn -0.9192 -0.3228 0.2255 -vn -0.0973 0.9939 0.0512 -vn -0.8136 0.5375 0.2215 -vn 0.6909 0.7057 -0.1571 -vn 0.6947 0.7016 -0.1582 -vn 0.9621 -0.1135 -0.2480 -vn 0.9614 -0.1194 -0.2480 -vn 0.5071 -0.8484 -0.1517 -vn 0.5057 -0.8493 -0.1514 -vn -0.9181 -0.3259 0.2257 -vn -0.3279 -0.9422 0.0682 -vn -0.8169 0.5359 0.2133 -vn -0.1006 0.9941 0.0402 -vn 0.9999 0.0106 0.0110 -vn 0.9991 0.0430 0.0037 -vn 0.9998 0.0127 0.0133 -vn 0.9971 0.0758 0.0061 -vn 0.9897 0.1349 0.0486 -vn 0.9999 -0.0137 0.0031 -vn -0.9971 -0.0762 -0.0059 -vn -0.9896 -0.1356 -0.0481 -vn -0.9841 -0.1548 -0.0874 -vn 0.0000 0.0158 0.9999 -vn -0.0000 -0.1169 0.9931 -vn 0.0000 -0.1207 0.9927 -vn 0.0000 -0.0160 -0.9999 -vn 0.0000 0.0283 -0.9996 -vn 0.9996 -0.0267 0.0004 -vn 0.9999 -0.0172 0.0003 -vn -0.9999 -0.0106 -0.0110 -vn -0.9991 -0.0431 -0.0036 -vn 0.0000 0.0297 -0.9996 -vn 0.0008 0.0483 -0.9988 -vn 0.6915 0.7038 -0.1631 -vn -0.0009 -0.1992 0.9800 -vn 0.0000 -0.1958 0.9807 -vn -0.0147 0.2452 0.9694 -vn -0.0203 0.6164 0.7871 -vn -0.0199 0.6195 0.7848 -vn 0.0150 -0.2579 -0.9660 -vn 0.0159 -0.2595 -0.9656 -vn 0.9628 -0.1165 -0.2436 -vn -0.9990 -0.0449 -0.0022 -vn -0.9987 -0.0513 0.0008 -vn -0.9954 -0.0956 0.0015 -vn 0.0213 -0.7492 -0.6620 -vn 0.5092 -0.8491 -0.1407 -vn 0.0212 -0.7581 -0.6517 -vn 0.0200 -0.9356 -0.3524 -vn 0.0083 -0.6778 0.7352 -vn -0.0190 0.7409 0.6714 -vn -0.0180 0.7406 0.6717 -vn -0.4678 0.0244 -0.8835 -vn -0.8432 0.0548 -0.5347 -vn -0.4172 0.0927 -0.9041 -vn -0.4653 -0.1686 -0.8689 -vn -0.8298 -0.0604 -0.5548 -vn -0.4643 -0.0912 -0.8810 -vn -0.8307 -0.1254 -0.5424 -vn -0.8292 -0.1042 -0.5491 -vn 0.4283 -0.1721 -0.8871 -vn 0.7799 -0.0676 -0.6222 -vn 0.7793 -0.1169 -0.6157 -vn 0.4275 -0.0931 -0.8992 -vn 0.3889 -0.2075 -0.8976 -vn -0.4192 -0.2045 -0.8845 -vn 0.4320 0.0249 -0.9015 -vn -0.1376 -0.9903 -0.0208 -vn -0.2230 -0.8487 0.4796 -vn -0.3750 -0.8730 0.3118 -vn -0.3558 -0.5474 0.7575 -vn -0.7601 -0.2043 0.6169 -vn -0.6250 -0.5899 0.5113 -vn -0.3558 0.5620 0.7467 -vn -0.7601 0.2162 0.6128 -vn -0.4198 0.1988 0.8856 -vn -0.2230 0.8578 0.4631 -vn -0.1376 0.9897 -0.0400 -vn -0.3750 0.8789 0.2949 -vn -0.4198 -0.1816 0.8893 -vn -0.6250 0.5997 0.4998 -vn -0.9546 0.2082 -0.2129 -vn -0.9546 -0.2123 -0.2089 -vn -0.4710 0.8750 -0.1125 -vn -0.7849 0.5931 -0.1791 -vn -0.4710 -0.8770 -0.0956 -vn -0.7849 -0.5965 -0.1676 -vn -0.2123 -0.8801 -0.4246 -vn -0.4303 -0.2187 -0.8758 -vn -0.3538 -0.6018 -0.7160 -vn -0.4303 0.2017 -0.8798 -vn -0.2123 0.8718 -0.4415 -vn -0.3538 0.5878 -0.7275 -vn -0.0036 -0.8583 -0.5132 -vn -0.0058 -0.5627 -0.8266 -vn -0.0058 0.5466 -0.8373 -vn -0.0069 0.1807 -0.9835 -vn -0.0036 0.8482 -0.5297 -vn -0.0069 -0.1997 -0.9798 -vn 0.7889 0.0070 -0.6145 -vn 0.7959 0.0618 -0.6023 -vn 0.7809 -0.1407 -0.6085 -vn -0.8373 0.0058 -0.5467 -vn -0.7071 -0.0068 -0.7071 -vn -0.7071 0.0068 0.7071 -vn 0.7071 0.0068 0.7071 -vn 0.7071 -0.0068 -0.7071 -vn -0.3813 -0.0415 -0.9235 -vn -0.2981 -0.1024 -0.9490 -vn -0.2765 -0.1043 -0.9553 -vn -0.3719 0.1045 -0.9224 -vn -0.3905 -0.0244 -0.9203 -vn -0.2717 0.1526 -0.9502 -vn -0.2482 0.1489 -0.9572 -vn -0.1720 0.1002 -0.9800 -vn -0.1642 0.0879 -0.9825 -vn -0.1476 0.0045 -0.9890 -vn -0.1479 0.0024 -0.9890 -vn -0.1873 -0.0715 -0.9797 -vn -0.1949 -0.0781 -0.9777 -vn 0.8654 -0.5001 0.0323 -vn 0.5005 -0.8651 0.0335 -vn 0.8660 -0.4989 0.0323 -vn 0.4992 -0.8659 0.0335 -vn 0.0007 -0.9995 0.0324 -vn -0.0007 -0.9995 0.0324 -vn -0.4995 -0.8658 0.0293 -vn -0.5003 -0.8654 0.0293 -vn -0.8658 -0.4997 0.0250 -vn -0.8659 -0.4996 0.0250 -vn -0.9934 -0.1132 0.0203 -vn -0.9934 -0.1127 0.0203 -vn -0.9936 0.1118 0.0179 -vn -0.8841 0.4670 0.0174 -vn -0.9936 0.1115 0.0179 -vn -0.5005 0.8656 0.0164 -vn -0.8830 0.4690 0.0174 -vn -0.0007 0.9998 0.0175 -vn -0.4992 0.8664 0.0164 -vn 0.5867 0.8095 0.0201 -vn 0.0007 0.9998 0.0175 -vn 0.9357 0.3521 0.0229 -vn 0.5854 0.8105 0.0201 -vn 0.9978 -0.0597 0.0282 -vn 0.9353 0.3531 0.0228 -vn 0.9978 -0.0605 0.0282 -vn 0.7929 -0.4205 -0.4409 -vn 0.4477 -0.7797 -0.4378 -vn -0.4477 0.7711 -0.4528 -vn 0.0000 0.8910 -0.4539 -vn 0.4477 0.7711 -0.4528 -vn 0.7754 0.4434 -0.4496 -vn -0.9001 0.0449 -0.4334 -vn -0.8504 -0.3199 -0.4178 -vn -0.8993 0.0548 -0.4339 -vn -0.0000 -0.8997 -0.4366 -vn 0.8954 0.1006 -0.4337 -vn 0.8962 0.0947 -0.4335 -vn -0.5345 -0.7241 -0.4359 -vn -0.5188 -0.7350 -0.4366 -vn -0.7754 0.4434 -0.4496 -vn -0.8473 -0.3286 -0.4174 -vn 0.8991 -0.1052 -0.4248 -vn 0.8992 -0.1048 -0.4248 -vn 0.7903 -0.4254 -0.4410 -vn 0.0000 -0.8462 -0.5329 -vn -0.4863 -0.6926 -0.5327 -vn -0.5045 -0.6802 -0.5318 -vn 0.7283 0.4153 -0.5451 -vn 0.8437 0.0942 -0.5285 -vn 0.8446 0.0874 -0.5282 -vn 0.4205 -0.7335 -0.5340 -vn -0.8482 0.0400 -0.5281 -vn -0.8040 -0.3028 -0.5117 -vn -0.8472 0.0513 -0.5287 -vn 0.6005 0.5955 -0.5336 -vn 0.2198 -0.8153 0.5357 -vn 0.7421 -0.4012 -0.5370 -vn -0.8005 -0.3128 -0.5112 -vn 0.8488 -0.1005 -0.5190 -vn 0.8489 -0.1000 -0.5190 -vn 0.8294 -0.4381 0.3468 -vn 0.7452 -0.3955 -0.5369 -vn -0.8136 0.4730 0.3381 -vn 0.1154 -0.9429 -0.3126 -vn -0.1337 -0.9906 0.0294 -vn 0.2566 -0.9662 0.0250 -vn 0.1111 -0.4968 -0.8607 -vn -0.1154 -0.9429 -0.3126 -vn -0.2460 -0.5123 -0.8228 -vn -0.1111 -0.4968 -0.8607 -vn -0.9245 0.2144 -0.3152 -vn -0.9750 0.1377 -0.1746 -vn -0.9896 0.0945 -0.1082 -vn 0.9601 -0.0989 0.2615 -vn 0.9082 -0.1637 0.3852 -vn 0.9837 -0.0512 0.1726 -vn 0.2460 -0.5123 -0.8228 -vn 0.2136 -0.9247 -0.3150 -vn 0.1445 0.0045 -0.9895 -vn 0.1231 0.2914 -0.9486 -vn 0.2458 0.3187 -0.9154 -vn 0.3293 -0.0091 -0.9442 -vn -0.2136 -0.9247 -0.3150 -vn -0.9333 0.2069 -0.2936 -vn -0.9745 0.1360 -0.1782 -vn -0.9879 0.1010 -0.1180 -vn 0.9682 -0.1083 0.2257 -vn 0.9060 -0.1974 0.3744 -vn 0.9847 -0.0673 0.1606 -vn 0.1195 0.8349 -0.5373 -vn 0.1360 0.9906 -0.0155 -vn 0.2493 0.9683 -0.0141 -vn 0.1960 0.8321 -0.5188 -vn 0.1164 0.9181 0.3790 -vn 0.1146 0.4450 0.8882 -vn 0.2464 0.4622 0.8519 -vn 0.2088 0.9021 0.3777 -vn 0.9333 0.2069 -0.2936 -vn 0.9745 0.1360 -0.1782 -vn 0.9314 0.2074 -0.2990 -vn 0.9879 0.1007 -0.1179 -vn -0.9682 -0.1082 0.2255 -vn -0.9060 -0.1974 0.3744 -vn -0.9083 -0.1973 0.3690 -vn -0.9847 -0.0673 0.1606 -vn 0.0000 -0.4129 0.9108 -vn 0.0000 -0.4952 0.8688 -vn 0.9245 0.2144 -0.3152 -vn 0.9742 0.1397 -0.1774 -vn 0.9313 0.2136 -0.2950 -vn 0.9896 0.0945 -0.1082 -vn -0.9601 -0.0989 0.2615 -vn -0.9082 -0.1637 0.3852 -vn -0.9061 -0.1639 0.3901 -vn -0.9831 -0.0533 0.1753 -vn 0.0000 -0.2676 0.9635 -vn 0.0000 -0.6758 0.7370 -vn 0.0000 0.4814 0.8765 -vn 0.0000 -0.3619 0.9322 -vn 0.0000 -0.3673 0.9301 -vn 0.0000 -0.9467 0.3220 -vn 0.0000 0.1991 0.9800 -vn 0.0000 -0.2060 0.9786 -vn -0.2566 -0.9662 0.0250 -vn -0.2462 -0.4736 0.8456 -vn -0.3300 0.0091 0.9440 -vn 0.8837 -0.4675 0.0217 -vn 0.9660 0.1205 0.2287 -vn -0.9730 0.0636 0.2220 -vn 0.0000 0.0096 1.0000 -vn -0.1145 -0.4185 0.9010 -vn -0.0004 0.0097 1.0000 -vn 0.0002 0.0097 1.0000 -vn 0.0003 0.0096 1.0000 -vn -0.0002 0.0097 1.0000 -vn -0.1131 0.4306 0.8955 -vn 0.9921 -0.1256 0.0010 -vn -0.9659 0.2588 -0.0047 -vn -0.8603 0.5097 -0.0061 -vn 0.9080 -0.2753 0.3160 -vn 0.9300 -0.1110 0.3503 -vn -0.9343 0.2035 -0.2929 -vn -0.9998 0.0169 0.0040 -vn 0.1859 -0.9781 0.0938 -vn -0.0983 0.9938 0.0515 -vn 0.9841 0.1542 0.0882 -vn -0.9998 -0.0127 -0.0133 -vn 0.0000 0.0464 -0.9989 -vn -0.0157 0.2484 0.9685 -vn 0.0198 -0.9356 -0.3525 -vn 0.3889 0.0940 -0.9165 -vn -0.3783 0.0960 -0.9207 -vn -0.9313 0.2136 -0.2950 -vn 0.9061 -0.1639 0.3901 -vn -0.9314 0.2074 -0.2990 -vn 0.9083 -0.1973 0.3690 -s off -f 808/860/431 810/861/431 807/862/431 -f 811/863/432 813/864/432 814/865/432 -f 816/866/433 818/867/433 815/868/433 -f 820/869/434 822/870/434 819/871/434 -f 824/872/431 826/873/431 823/874/431 -f 828/875/431 830/876/431 827/877/431 -f 831/878/433 833/879/433 834/880/433 -f 835/881/433 837/882/433 838/883/433 -f 840/884/431 842/885/431 839/886/431 -f 843/887/435 841/888/435 840/889/435 -f 845/890/436 847/891/436 848/892/436 -f 850/893/437 852/894/437 849/895/437 -f 854/896/431 855/897/431 853/898/431 -f 856/899/438 858/900/438 859/901/438 -f 861/902/439 851/903/439 860/904/439 -f 863/905/440 865/906/440 862/907/440 -f 866/908/433 852/909/433 861/910/433 -f 862/911/431 860/912/431 867/913/431 -f 872/914/441 874/915/442 875/916/443 -f 823/917/444 877/918/444 876/919/444 -f 878/920/445 825/921/445 824/922/445 -f 880/923/446 870/924/446 881/925/446 -f 891/926/447 893/927/447 890/928/447 -f 895/929/445 897/930/445 894/931/445 -f 899/932/448 895/933/448 898/934/448 -f 900/935/449 895/936/449 894/937/449 -f 901/938/450 814/939/450 902/940/450 -f 903/941/451 811/942/451 901/938/451 -f 809/943/452 900/935/452 810/861/452 -f 809/944/453 899/932/453 898/934/453 -f 824/922/454 811/945/454 878/920/454 -f 905/946/455 907/947/455 904/948/455 -f 855/897/456 848/949/457 908/950/458 -f 909/951/459 859/952/459 910/953/459 -f 833/879/460 904/954/460 834/880/460 -f 912/955/461 914/956/461 911/957/461 -f 913/958/462 928/959/462 914/956/462 -f 927/960/462 936/961/462 928/959/462 -f 935/962/462 944/963/462 936/961/462 -f 943/964/462 890/928/462 944/963/462 -f 909/965/463 952/966/463 951/967/463 -f 953/968/464 955/969/464 956/970/464 -f 957/971/465 959/972/465 960/973/465 -f 951/967/463 962/974/463 961/975/463 -f 822/870/466 965/976/466 963/977/466 -f 957/978/467 966/979/467 821/980/467 -f 821/981/468 964/982/468 822/870/468 -f 830/876/438 967/983/438 968/984/438 -f 962/974/433 969/985/433 970/986/433 -f 965/976/431 971/987/431 972/988/431 -f 952/966/433 973/989/433 969/985/433 -f 959/972/469 975/990/469 960/973/469 -f 967/983/431 977/991/431 968/984/431 -f 955/969/433 979/992/433 956/970/433 -f 859/993/470 973/994/470 910/995/470 -f 964/982/471 981/996/471 971/987/471 -f 858/900/431 980/997/431 859/901/431 -f 960/998/472 981/999/472 966/979/472 -f 983/1000/473 821/980/473 820/1001/473 -f 984/1002/431 822/870/431 963/977/431 -f 985/1003/433 951/967/433 961/975/433 -f 983/1004/474 958/1005/474 957/971/474 -f 989/1006/433 953/968/433 988/1007/433 -f 986/1008/433 909/965/433 951/967/433 -f 991/1009/475 909/1010/475 990/1011/475 -f 992/1012/431 856/899/431 991/1013/431 -f 808/860/476 991/1013/476 809/943/476 -f 809/1014/477 990/1011/477 816/1015/477 -f 817/1016/478 990/1017/478 986/1008/478 -f 837/882/479 988/1007/479 832/1018/479 -f 833/879/480 983/1004/480 905/1019/480 -f 836/1020/478 986/1008/478 985/1003/478 -f 993/1021/481 819/871/481 984/1002/481 -f 905/946/482 820/1001/482 906/1022/482 -f 996/1023/476 827/877/476 995/1024/476 -f 994/1025/483 820/869/483 819/871/483 -f 979/1026/484 997/1027/484 998/1028/484 -f 970/1029/484 999/1030/484 1000/1031/484 -f 969/1032/484 1001/1033/484 999/1030/484 -f 974/1034/485 981/1035/485 975/1036/485 -f 1002/1037/486 997/1038/486 1000/1039/486 -f 1004/1040/486 999/1041/486 1001/1042/486 -f 1006/1043/487 1008/1044/487 998/1045/487 -f 980/1046/484 1005/1047/484 1004/1048/484 -f 972/1049/484 1007/1050/484 1006/1051/484 -f 973/1052/488 1004/1048/489 1001/1033/490 -f 977/1053/484 1003/1054/484 1002/1055/484 -f 971/1056/491 1008/1057/492 1007/1050/490 -f 841/1058/431 1010/1059/431 854/896/431 -f 1011/1060/433 1012/1061/433 1013/1062/433 -f 844/1063/440 1009/1064/440 841/1065/440 -f 845/890/437 1012/1066/437 846/1067/437 -f 1009/1068/493 867/1069/494 1010/1070/494 -f 1012/1071/495 866/1072/495 1013/1073/495 -f 1009/1068/496 863/1074/497 862/1075/498 -f 1015/1076/499 849/1077/499 1012/1071/499 -f 892/1078/446 1030/1079/446 893/1080/446 -f 1029/1081/446 880/923/446 1030/1079/446 -f 1031/1082/446 1028/1083/446 885/1084/446 -f 1030/1079/446 1032/1085/446 1031/1082/446 -f 1033/1086/446 885/1084/446 884/1087/446 -f 893/1080/446 1031/1082/446 1033/1086/446 -f 947/1088/462 1037/1089/462 883/1090/462 -f 944/963/462 1037/1089/462 1036/1091/462 -f 939/1092/462 1036/1091/462 947/1088/462 -f 936/961/462 1036/1091/462 1039/1093/462 -f 931/1094/462 1039/1093/462 939/1092/462 -f 928/959/462 1039/1093/462 1041/1095/462 -f 921/1096/462 1041/1095/462 931/1094/462 -f 914/956/462 1041/1095/462 1043/1097/462 -f 920/1098/461 1043/1097/461 921/1096/461 -f 1045/1099/461 914/956/461 1043/1097/461 -f 883/1090/447 1033/1100/447 884/1101/447 -f 890/928/447 1033/1100/447 1037/1089/447 -f 1032/1085/446 888/1102/446 1028/1083/446 -f 880/923/446 889/1103/446 1032/1085/446 -f 877/1104/500 1026/1105/500 912/1106/500 -f 825/1107/431 919/1108/431 826/1109/431 -f 877/918/501 924/1110/501 923/1111/501 -f 916/1112/502 924/1110/502 826/1109/502 -f 834/880/503 1047/1113/504 1046/1114/505 -f 994/1025/506 907/1115/506 906/1116/506 -f 904/948/455 908/1117/455 1047/1118/455 -f 810/861/452 1050/1119/452 1049/1120/452 -f 816/866/451 1051/1121/451 899/1122/451 -f 1051/1121/450 896/1123/450 899/1122/450 -f 900/935/449 1052/1124/449 1050/1119/449 -f 894/931/445 902/1125/445 1052/1126/445 -f 1053/1127/431 994/1025/431 993/1021/431 -f 1054/1128/431 996/1023/431 995/1024/431 -f 835/881/433 1057/1129/433 1056/1130/433 -f 1058/1131/433 834/880/433 1046/1114/433 -f 903/941/433 818/867/433 1059/1132/433 -f 807/862/431 1049/1120/431 1060/1133/431 -f 1060/1133/431 824/872/431 823/874/431 -f 1061/1134/507 1063/1135/507 1064/1136/507 -f 1011/1060/433 1046/1114/433 846/1137/433 -f 1056/1130/433 844/1138/433 843/1139/433 -f 1052/1126/445 814/1140/445 813/1141/445 -f 1050/1119/449 813/1142/449 812/1143/449 -f 1049/1120/508 812/1143/508 824/872/508 -f 1047/1118/455 848/892/455 847/891/455 -f 1046/1114/509 847/1144/510 846/1137/510 -f 1048/1145/511 908/950/512 907/1115/511 -f 815/868/451 901/938/451 1051/1121/451 -f 1051/1121/450 902/940/450 897/1146/450 -f 853/898/431 1048/1145/431 1053/1127/431 -f 807/862/431 839/886/431 1054/1128/431 -f 1059/1132/433 843/1139/433 876/1147/433 -f 818/867/433 1056/1130/433 1059/1132/433 -f 807/862/431 995/1024/431 808/860/431 -f 982/1148/484 1002/1055/484 1005/1047/484 -f 1005/1149/486 1000/1039/486 999/1041/486 -f 978/1150/484 1000/1031/484 997/1027/484 -f 995/1024/476 992/1012/476 808/860/476 -f 837/882/478 985/1003/478 989/1006/478 -f 989/1006/433 961/975/433 954/1151/433 -f 968/984/431 982/1152/431 858/900/431 -f 955/969/433 970/986/433 978/1153/433 -f 857/1154/438 968/984/438 858/900/438 -f 961/975/463 955/969/463 954/1151/463 -f 876/919/435 840/889/435 823/917/435 -f 1060/1133/431 840/884/431 839/886/431 -f 818/867/433 836/1020/433 835/881/433 -f 827/877/431 857/1154/431 992/1012/431 -f 844/1138/433 1058/1131/433 1011/1060/433 -f 1057/1129/433 831/878/433 1058/1131/433 -f 1055/1155/431 993/1021/431 996/1023/431 -f 1014/1156/513 866/1072/514 863/1074/515 -f 1015/1076/516 867/1069/516 850/1157/516 -f 844/1138/433 1013/1062/433 1014/1158/433 -f 854/896/431 1015/1159/431 845/1160/431 -f 976/1161/484 1006/1051/484 1003/1054/484 -f 1003/1162/487 998/1045/487 997/1038/487 -f 974/1163/484 998/1028/484 1008/1057/484 -f 996/1023/481 984/1002/481 828/875/481 -f 832/1018/479 987/1164/479 833/879/479 -f 988/1007/433 958/1005/433 987/1164/433 -f 828/875/431 963/977/431 829/1165/431 -f 956/970/433 974/1166/433 959/972/433 -f 967/983/431 972/988/431 976/1167/431 -f 963/977/466 967/983/466 829/1165/466 -f 958/1005/464 956/970/464 959/972/464 -f 867/913/431 851/1168/431 850/1169/431 -f 863/1170/433 861/910/433 864/1171/433 -f 864/1172/439 860/904/439 865/1173/439 -f 841/1058/431 853/898/431 842/885/431 -f 838/883/433 832/1018/433 831/878/433 -f 873/1174/517 1066/1175/517 874/915/517 -f 1064/1136/518 1067/1176/518 1068/1177/518 -f 1070/1178/519 1072/1179/519 1069/1180/519 -f 1074/1181/519 1076/1182/519 1073/1183/519 -f 1069/1180/519 1078/1184/519 1077/1185/519 -f 1079/1186/518 1068/1177/518 1080/1187/518 -f 1072/1188/445 1082/1189/445 1078/1190/445 -f 1083/1191/433 1085/1192/433 1086/1193/433 -f 1074/1194/435 1089/1195/435 1087/1196/435 -f 1064/1197/520 1084/1198/520 1061/1199/520 -f 873/1200/521 1086/1201/521 1079/1202/521 -f 1061/1203/522 1091/1204/522 1092/1205/522 -f 872/1206/435 1090/1207/435 873/1208/435 -f 1094/1209/523 1084/1210/523 1083/1191/523 -f 1096/1211/524 1062/1212/525 1061/1134/525 -f 1087/1213/526 875/916/527 1098/1214/526 -f 1087/1213/528 1075/1215/528 1074/1181/528 -f 1071/1216/529 1096/1211/530 1072/1179/529 -f 1081/1217/433 1094/1209/433 1082/1218/433 -f 1096/1219/531 1081/1220/531 1072/1221/531 -f 1093/1222/521 1101/1223/521 1099/1224/521 -f 1088/1225/433 1094/1209/433 1089/1226/433 -f 1093/1222/521 1102/1227/521 1083/1228/521 -f 1079/1202/521 1085/1229/521 1064/1230/521 -f 1093/1231/433 1086/1193/433 1090/1232/433 -f 1078/1190/445 1088/1233/445 1074/1234/445 -f 1079/1186/518 1065/1235/518 873/1174/518 -f 1073/1183/519 1078/1184/519 1074/1181/519 -f 1104/1236/433 1099/1237/433 1103/1238/433 -f 1094/1239/445 1103/1240/445 1089/1241/445 -f 1089/1241/445 1106/1242/445 1087/1243/445 -f 1083/1244/486 1104/1245/486 1094/1246/486 -f 1106/1247/435 1100/1248/435 1107/1249/435 -f 1105/1250/435 1101/1251/435 1100/1248/435 -f 1103/1240/445 1105/1252/445 1089/1241/445 -f 872/1253/431 1106/1254/431 1107/1255/431 -f 872/1256/521 1100/1257/521 1093/1222/521 -f 1099/1237/433 1108/1258/433 1103/1238/433 -f 1095/1259/532 1091/1260/532 1084/1210/532 -f 1096/1261/533 1109/1262/533 1095/1263/533 -f 1092/1264/534 1109/1265/534 1110/1266/534 -f 1061/1267/535 1110/1268/535 1096/1269/535 -f 1112/1270/536 1114/1271/536 1111/1272/536 -f 1143/1273/431 1148/1274/431 1141/1275/431 -f 1114/1276/537 1140/1277/537 1139/1278/537 -f 1158/1279/433 1160/1280/433 1155/1281/433 -f 1111/1282/538 1161/1283/538 1112/1284/538 -f 1190/1285/539 1192/1286/539 1189/1287/539 -f 1191/1288/540 1194/1289/540 1192/1286/540 -f 1193/1290/541 1196/1291/541 1194/1292/541 -f 1195/1293/542 1198/1294/542 1196/1291/542 -f 1197/1295/543 1200/1296/543 1198/1297/543 -f 1199/1298/544 1202/1299/544 1200/1296/544 -f 1201/1300/545 1204/1301/545 1202/1299/545 -f 1203/1302/546 1206/1303/546 1204/1304/546 -f 1205/1305/547 1208/1306/547 1206/1303/547 -f 1207/1307/548 1210/1308/548 1208/1306/548 -f 1209/1309/549 1212/1310/549 1210/1308/549 -f 1211/1311/550 1189/1287/550 1212/1312/550 -f 1200/1313/551 1216/1314/551 1213/1315/551 -f 1196/1316/552 1220/1317/552 1221/1318/552 -f 1224/1319/553 1222/1320/553 1210/1321/553 -f 1225/1322/554 1206/1323/554 1226/1324/554 -f 1180/1325/555 1182/1326/555 1205/1327/555 -f 1174/1328/556 1176/1329/556 1199/1330/556 -f 1227/1331/557 1172/1332/557 1195/1333/557 -f 1209/1334/558 1188/1335/558 1211/1336/558 -f 1264/1337/559 1266/1338/431 1263/1339/431 -f 1265/1340/445 1268/1341/445 1266/1342/445 -f 1267/1343/433 1270/1344/433 1268/1345/433 -f 1272/1346/521 1263/1347/521 1271/1348/521 -f 1268/1349/435 1273/1350/435 1271/1351/435 -f 1274/1352/560 1276/1353/560 1277/1354/560 -f 1278/1355/502 1280/1356/502 1281/1357/502 -f 1282/1358/560 1276/1353/560 1275/1359/560 -f 1269/1360/561 1286/1361/561 1284/1362/561 -f 1267/1363/562 1282/1364/562 1275/1365/562 -f 1283/1366/563 1287/1367/563 1288/1368/563 -f 1292/1369/564 1294/1370/564 1291/1371/564 -f 1277/1372/433 1297/1373/433 1295/1374/433 -f 1278/1375/565 1299/1376/565 1298/1377/565 -f 1282/1358/502 1299/1378/502 1298/1379/502 -f 1285/1380/502 1295/1381/502 1292/1382/502 -f 1300/1383/566 1277/1372/566 1295/1374/566 -f 1286/1361/567 1292/1369/567 1291/1371/567 -f 1301/1384/433 1302/1385/433 1303/1386/433 -f 1304/1387/502 1302/1388/568 1305/1389/569 -f 1287/1390/502 1307/1391/502 1308/1392/502 -f 1281/1357/502 1309/1393/502 1310/1394/502 -f 1276/1353/563 1296/1395/563 1277/1354/563 -f 1299/1376/570 1310/1396/570 1306/1397/570 -f 1287/1367/563 1299/1378/563 1283/1366/563 -f 1292/1382/502 1297/1398/502 1293/1399/502 -f 1308/1400/486 1313/1401/486 1311/1402/486 -f 1314/1403/484 1302/1388/484 1301/1404/484 -f 1312/1405/484 1307/1406/484 1315/1407/484 -f 1316/1408/571 1305/1409/571 1317/1410/571 -f 1287/1367/572 1311/1411/572 1288/1368/572 -f 1318/1412/502 1312/1405/568 1315/1407/569 -f 1296/1395/502 1314/1413/502 1301/1414/502 -f 1318/1415/431 1315/1416/431 1307/1417/431 -f 1306/1397/431 1321/1418/431 1299/1376/431 -f 1290/1419/433 1322/1420/433 1323/1421/433 -f 1325/1422/431 1327/1423/431 1324/1424/431 -f 1290/1425/573 1328/1426/573 1329/1427/573 -f 1331/1428/433 1333/1429/433 1334/1430/433 -f 1307/1417/431 1335/1431/431 1336/1432/431 -f 1296/1433/433 1334/1430/433 1301/1384/433 -f 1324/1424/431 1287/1434/431 1308/1435/431 -f 1328/1436/502 1338/1437/502 1339/1438/502 -f 1326/1439/502 1341/1440/502 1327/1441/502 -f 1343/1442/574 1329/1443/574 1342/1444/574 -f 1335/1445/575 1345/1446/575 1344/1447/575 -f 1299/1448/576 1322/1449/576 1276/1450/576 -f 1321/1451/563 1323/1452/563 1322/1453/563 -f 1306/1454/577 1337/1455/577 1320/1456/577 -f 1296/1457/578 1323/1458/578 1331/1459/578 -f 1340/1460/502 1347/1461/502 1341/1440/502 -f 1331/1462/502 1349/1463/502 1332/1464/502 -f 1306/1465/579 1350/1466/579 1351/1467/579 -f 1346/1468/580 1353/1469/580 1347/1470/580 -f 1354/1471/581 1349/1472/581 1348/1473/581 -f 1267/1343/582 1356/1474/582 1357/1475/582 -f 1265/1476/583 1359/1477/583 1266/1338/583 -f 1356/1474/584 1361/1478/584 1357/1475/584 -f 1362/1479/585 1359/1477/585 1358/1480/585 -f 1360/1481/586 1365/1482/586 1361/1478/586 -f 1362/1479/587 1367/1483/587 1363/1484/587 -f 1360/1481/433 1369/1485/433 1364/1486/433 -f 1367/1483/431 1371/1487/431 1363/1484/431 -f 1353/1469/588 1366/1488/588 1362/1479/588 -f 1354/1471/589 1365/1482/589 1355/1489/589 -f 1352/1490/590 1349/1491/590 1355/1492/590 -f 1365/1493/591 1352/1490/591 1355/1492/591 -f 1366/1494/445 1364/1495/445 1367/1496/445 -f 1369/1497/445 1367/1496/445 1364/1495/445 -f 1369/1498/592 1371/1499/592 1370/1500/592 -f 1368/1501/521 1363/1502/521 1371/1503/521 -f 1356/1504/435 1363/1505/435 1360/1506/435 -f 1268/1341/593 1359/1507/593 1356/1508/593 -f 1264/1337/594 1298/1377/595 1265/1476/596 -f 1269/1509/597 1274/1510/597 1300/1383/597 -f 1347/1511/598 1354/1512/598 1348/1513/598 -f 1354/1514/599 1362/1515/599 1361/1516/599 -f 1351/1517/600 1339/1518/600 1338/1519/600 -f 1361/1516/601 1358/1520/601 1357/1521/601 -f 1343/1522/575 1314/1523/575 1330/1524/575 -f 1310/1394/502 1319/1525/502 1318/1412/502 -f 1336/1526/602 1344/1527/602 1373/1528/602 -f 1294/1370/603 1304/1529/603 1316/1408/603 -f 1290/1530/572 1374/1531/572 1314/1413/572 -f 1294/1370/604 1376/1532/604 1375/1533/604 -f 1376/1532/605 1312/1534/605 1319/1535/605 -f 1316/1536/606 1373/1537/606 1376/1538/606 -f 1374/1539/486 1305/1540/486 1314/1541/486 -f 1375/1533/607 1319/1535/607 1309/1542/607 -f 1377/1543/567 1280/1544/567 1279/1545/567 -f 1377/1543/567 1291/1371/567 1378/1546/567 -f 1378/1546/564 1309/1542/564 1280/1544/564 -f 1291/1371/564 1375/1533/564 1378/1546/564 -f 1272/1346/561 1279/1545/561 1264/1547/561 -f 1284/1362/561 1377/1543/561 1272/1346/561 -f 1269/1360/521 1273/1548/521 1270/1549/521 -f 1284/1362/521 1271/1348/521 1273/1548/521 -f 1373/1528/608 1380/1550/608 1379/1551/608 -f 1337/1552/608 1373/1528/608 1379/1551/608 -f 1342/1444/608 1328/1553/608 1380/1550/608 -f 1293/1399/502 1303/1554/502 1304/1387/502 -f 1373/1555/433 1311/1556/433 1288/1557/433 -f 1311/1556/433 1376/1558/433 1288/1557/433 -f 1374/1559/431 1316/1560/431 1317/1561/431 -f 1374/1559/431 1342/1562/431 1289/1563/431 -f 1381/1564/433 1287/1565/433 1283/1566/433 -f 1383/1567/433 1296/1433/433 1277/1372/433 -f 1386/1568/445 1388/1569/445 1385/1570/445 -f 1390/1571/433 1392/1572/433 1389/1573/433 -f 1393/1574/486 1395/1575/486 1389/1576/486 -f 1396/1577/431 1398/1578/431 1399/1579/431 -f 1390/1580/435 1402/1581/435 1400/1582/435 -f 1403/1583/609 1396/1584/609 1404/1585/609 -f 1399/1586/486 1407/1587/486 1405/1588/486 -f 1401/1589/435 1409/1590/435 1402/1581/435 -f 1396/1584/486 1410/1591/486 1404/1585/486 -f 1393/1592/433 1408/1593/433 1401/1594/433 -f 1413/1595/521 1414/1596/521 1412/1597/521 -f 1416/1598/521 1418/1599/521 1415/1600/521 -f 1419/1601/521 1421/1602/521 1416/1598/521 -f 1408/1603/435 1422/1604/435 1409/1590/435 -f 1423/1605/431 1424/1606/431 1425/1607/431 -f 1399/1608/445 1427/1609/445 1410/1610/445 -f 1411/1611/433 1417/1612/433 1416/1613/433 -f 1399/1614/431 1429/1615/431 1426/1616/431 -f 1430/1617/610 1424/1618/610 1431/1619/610 -f 1425/1607/611 1433/1620/611 1423/1605/611 -f 1434/1621/433 1435/1622/433 1436/1623/433 -f 1438/1624/612 1440/1625/612 1437/1626/612 -f 1427/1627/613 1441/1628/613 1442/1629/613 -f 1435/1622/614 1443/1630/614 1444/1631/614 -f 1445/1632/615 1438/1624/615 1437/1626/615 -f 1446/1633/433 1448/1634/433 1449/1635/433 -f 1433/1620/616 1450/1636/616 1451/1637/616 -f 1441/1628/617 1453/1638/617 1442/1629/617 -f 1443/1630/618 1455/1639/618 1444/1631/618 -f 1457/1640/619 1459/1641/619 1456/1642/619 -f 1461/1643/431 1463/1644/431 1460/1645/431 -f 1463/1644/431 1457/1646/431 1464/1647/431 -f 1465/1648/431 1460/1645/431 1452/1649/431 -f 1452/1650/620 1466/1651/620 1453/1652/620 -f 1462/1653/621 1468/1654/621 1467/1655/621 -f 1460/1656/622 1469/1657/622 1466/1651/622 -f 1470/1658/431 1472/1659/431 1473/1660/431 -f 1475/1661/623 1477/1662/623 1474/1663/623 -f 1479/1664/433 1481/1665/433 1478/1666/433 -f 1477/1662/624 1481/1667/624 1482/1668/624 -f 1483/1669/433 1479/1664/433 1478/1666/433 -f 1486/1670/625 1474/1671/625 1485/1672/625 -f 1488/1673/431 1470/1658/431 1487/1674/431 -f 1490/1675/626 1492/1676/626 1489/1677/626 -f 1494/1678/627 1485/1679/627 1493/1680/627 -f 1495/1681/433 1484/1682/433 1483/1669/433 -f 1465/1683/628 1498/1684/628 1496/1685/628 -f 1497/1686/629 1489/1677/629 1498/1684/629 -f 1500/1687/431 1487/1674/431 1499/1688/431 -f 1484/1682/433 1447/1689/433 1446/1633/433 -f 1450/1636/431 1499/1688/431 1451/1637/431 -f 1439/1690/630 1493/1691/630 1440/1625/630 -f 1454/1692/433 1495/1681/433 1455/1639/433 -f 1462/1693/631 1446/1694/631 1449/1695/631 -f 1386/1696/435 1503/1697/435 1501/1698/435 -f 1464/1699/632 1456/1642/632 1403/1700/632 -f 1389/1576/633 1505/1701/633 1504/1702/633 -f 1386/1703/431 1506/1704/431 1502/1705/431 -f 1508/1706/634 1510/1707/634 1507/1708/634 -f 1511/1709/433 1468/1710/433 1449/1635/433 -f 1502/1705/431 1513/1711/431 1514/1712/431 -f 1391/1713/433 1509/1714/433 1392/1572/433 -f 1502/1715/635 1515/1716/635 1503/1697/635 -f 1484/1717/636 1518/1718/636 1516/1719/636 -f 1465/1648/431 1520/1720/431 1461/1643/431 -f 1459/1641/637 1521/1721/637 1522/1722/637 -f 1517/1723/638 1524/1724/638 1518/1725/638 -f 1523/1726/639 1526/1727/639 1524/1728/639 -f 1457/1646/431 1467/1729/431 1458/1730/431 -f 1448/1634/433 1511/1709/433 1449/1635/433 -f 1463/1731/640 1403/1583/640 1469/1732/640 -f 1484/1682/433 1523/1733/433 1517/1734/433 -f 1528/1735/641 1530/1736/642 1508/1706/643 -f 1525/1737/644 1528/1735/644 1526/1738/644 -f 1458/1730/431 1531/1739/431 1521/1740/431 -f 1468/1710/433 1525/1741/433 1523/1733/433 -f 1512/1742/433 1529/1743/433 1468/1710/433 -f 1467/1729/431 1532/1744/431 1531/1739/431 -f 1533/1745/644 1531/1746/644 1532/1747/644 -f 1526/1738/644 1534/1748/644 1533/1745/644 -f 1534/1748/645 1521/1749/646 1531/1746/646 -f 1528/1735/647 1522/1750/648 1534/1748/649 -f 1535/1751/640 1527/1752/640 1448/1753/640 -f 1469/1732/640 1504/1702/640 1535/1751/640 -f 1536/1754/639 1532/1755/639 1520/1756/639 -f 1524/1728/639 1533/1757/639 1536/1754/639 -f 1537/1758/638 1520/1759/638 1519/1760/638 -f 1518/1725/638 1536/1761/638 1537/1758/638 -f 1538/1762/650 1530/1763/650 1512/1764/650 -f 1459/1641/651 1508/1765/651 1538/1762/651 -f 1496/1766/621 1519/1767/621 1465/1768/621 -f 1516/1719/652 1537/1769/652 1496/1766/652 -f 1539/1770/635 1510/1771/635 1391/1772/635 -f 1503/1697/635 1507/1773/635 1539/1770/635 -f 1513/1774/634 1515/1775/634 1514/1776/634 -f 1522/1750/634 1507/1708/634 1515/1775/634 -f 1385/1777/486 1540/1778/486 1506/1779/486 -f 1504/1702/653 1540/1778/653 1403/1583/653 -f 1504/1780/632 1511/1781/632 1527/1782/632 -f 1403/1700/632 1541/1783/632 1504/1780/632 -f 1400/1582/435 1391/1772/435 1390/1580/435 -f 1501/1698/435 1539/1770/435 1400/1582/435 -f 1542/1784/630 1500/1785/630 1450/1786/630 -f 1516/1787/654 1479/1788/654 1484/1789/654 -f 1498/1684/655 1544/1790/655 1516/1787/655 -f 1516/1787/656 1496/1685/656 1498/1684/656 -f 1543/1791/657 1488/1792/657 1500/1793/657 -f 1544/1790/626 1480/1794/626 1479/1788/626 -f 1489/1677/626 1546/1795/626 1544/1790/626 -f 1545/1796/625 1471/1797/625 1488/1798/625 -f 1472/1799/624 1549/1800/624 1473/1801/624 -f 1547/1802/623 1472/1799/623 1471/1803/623 -f 1550/1804/622 1448/1805/622 1447/1806/622 -f 1466/1651/622 1535/1807/622 1550/1804/622 -f 1551/1808/620 1447/1806/620 1454/1809/620 -f 1453/1652/620 1550/1804/620 1551/1808/620 -f 1541/1783/619 1512/1764/619 1511/1781/619 -f 1456/1642/619 1538/1762/619 1541/1783/619 -f 1443/1810/617 1551/1811/617 1454/1812/617 -f 1442/1629/617 1551/1811/617 1552/1813/617 -f 1430/1617/615 1432/1814/615 1425/1815/615 -f 1445/1632/615 1553/1816/615 1430/1617/615 -f 1554/1817/613 1443/1810/613 1428/1818/613 -f 1427/1627/613 1552/1813/613 1554/1817/613 -f 1432/1814/612 1542/1784/612 1450/1786/612 -f 1556/1819/658 1445/1632/658 1555/1820/658 -f 1445/1632/659 1434/1821/659 1436/1822/659 -f 1430/1617/659 1557/1823/659 1445/1632/659 -f 1558/1824/445 1428/1825/445 1411/1826/445 -f 1410/1610/445 1554/1827/445 1558/1824/445 -f 1559/1828/435 1414/1829/435 1398/1830/435 -f 1409/1590/435 1412/1831/435 1559/1828/435 -f 1413/1595/521 1429/1832/521 1405/1833/521 -f 1415/1600/521 1560/1834/521 1413/1595/521 -f 1416/1598/521 1422/1835/521 1419/1601/521 -f 1415/1600/521 1412/1597/521 1422/1835/521 -f 1561/1836/486 1411/1837/486 1393/1574/486 -f 1404/1585/486 1558/1838/486 1561/1836/486 -f 1562/1839/435 1398/1830/435 1397/1840/435 -f 1402/1581/435 1559/1828/435 1562/1839/435 -f 1504/1702/660 1393/1574/660 1389/1576/660 -f 1403/1583/609 1561/1836/609 1504/1702/609 -f 1501/1698/435 1397/1840/435 1386/1696/435 -f 1400/1582/435 1562/1839/435 1501/1698/435 -f 1418/1599/661 1431/1841/661 1560/1834/661 -f 1429/1832/661 1431/1841/661 1424/1842/661 -f 1549/1800/662 1546/1843/662 1492/1844/662 -f 1473/1801/662 1492/1844/662 1491/1845/662 -f 1439/1846/433 1495/1681/433 1494/1847/433 -f 1452/1649/431 1499/1688/431 1465/1648/431 -f 1499/1688/431 1497/1848/431 1465/1648/431 -f 1494/1847/433 1483/1669/433 1486/1849/433 -f 1487/1674/431 1490/1850/431 1497/1848/431 -f 1486/1849/433 1478/1666/433 1475/1851/433 -f 1482/1668/662 1480/1852/662 1546/1843/662 -f 1478/1666/433 1476/1853/433 1475/1851/433 -f 1490/1850/431 1473/1660/431 1491/1854/431 -f 1444/1631/618 1439/1846/618 1438/1855/618 -f 1441/1856/616 1451/1637/616 1452/1649/616 -f 1436/1623/663 1444/1631/663 1438/1855/663 -f 1417/1857/661 1557/1858/661 1418/1599/661 -f 1428/1859/433 1434/1621/433 1417/1612/433 -f 1423/1605/611 1441/1856/611 1426/1616/611 -f 1426/1616/431 1424/1606/431 1423/1605/431 -f 1563/1860/664 1548/1861/664 1547/1862/664 -f 1493/1863/431 1474/1864/431 1482/1865/431 -f 1395/1866/433 1565/1867/433 1564/1868/433 -f 1389/1869/445 1564/1870/445 1390/1871/445 -f 1401/1872/521 1394/1873/521 1393/1874/521 -f 1390/1580/435 1565/1875/435 1401/1589/435 -f 1567/1876/431 1387/1877/431 1566/1878/431 -f 1396/1879/521 1566/1880/521 1397/1881/521 -f 1385/1777/486 1567/1882/486 1396/1584/486 -f 1397/1840/435 1387/1883/435 1386/1696/435 -f 1568/1884/431 1407/1885/431 1406/1886/431 -f 1398/1887/445 1406/1888/445 1399/1889/445 -f 1414/1829/435 1568/1890/435 1398/1830/435 -f 1405/1833/521 1569/1891/521 1414/1596/521 -f 1570/1892/433 1421/1893/433 1420/1894/433 -f 1416/1895/486 1571/1896/486 1411/1897/486 -f 1411/1898/445 1570/1899/445 1408/1900/445 -f 1408/1603/435 1420/1901/435 1419/1902/435 -f 1468/1903/622 1520/1904/622 1467/1905/622 -f 1461/1906/619 1523/1907/619 1446/1908/619 -f 1572/1909/435 1573/1910/435 1574/1911/435 -f 1575/1912/486 1576/1913/486 1577/1914/486 -f 1572/1909/435 1574/1911/435 1578/1915/435 -f 1575/1912/486 1579/1916/486 1576/1913/486 -f 1572/1909/435 1578/1915/435 1580/1917/435 -f 1575/1912/486 1581/1918/486 1579/1916/486 -f 1572/1909/435 1580/1917/435 1582/1919/435 -f 1575/1912/486 1583/1920/486 1581/1918/486 -f 1572/1909/435 1582/1919/435 1584/1921/435 -f 1575/1912/486 1585/1922/486 1583/1920/486 -f 1572/1909/435 1584/1921/435 1586/1923/435 -f 1575/1912/486 1587/1924/486 1585/1922/486 -f 1572/1909/435 1586/1923/435 1588/1925/435 -f 1575/1912/486 1589/1926/486 1587/1924/486 -f 1572/1909/435 1588/1925/435 1573/1910/435 -f 1575/1912/486 1577/1914/486 1589/1926/486 -f 1563/1927/665 1592/1928/665 1590/1929/665 -f 1482/1930/658 1563/1931/658 1590/1932/658 -f 1591/1933/666 1594/1934/666 1592/1935/666 -f 1563/1936/667 1593/1937/667 1591/1938/667 -f 1555/1939/668 1592/1940/668 1594/1941/668 -f 1555/1942/669 1593/1943/669 1556/1944/669 -f 1595/1945/670 1596/1946/670 1597/1947/670 -f 1598/1948/671 1596/1949/671 1594/1950/671 -f 1599/1951/672 1601/1952/672 1598/1953/672 -f 1601/1954/673 1602/1955/673 1603/1956/673 -f 1602/1955/674 1605/1957/674 1603/1956/674 -f 1605/1958/675 1606/1959/675 1607/1960/675 -f 1607/1961/676 1608/1962/676 1606/1963/676 -f 1595/1945/677 1608/1964/677 1593/1965/677 -f 1597/1966/678 1594/1967/678 1595/1968/678 -f 1594/1941/679 1599/1951/679 1598/1953/679 -f 1606/1959/680 1593/1937/680 1607/1960/680 -f 1591/1969/681 1595/1968/681 1593/1970/681 -f 1597/1971/682 1596/1972/682 1592/1973/682 -f 1596/1949/683 1599/1974/683 1592/1975/683 -f 1606/1963/684 1608/1962/684 1591/1976/684 -f 1608/1977/685 1597/1978/685 1591/1979/685 -f 1649/1980/686 1647/1981/686 1642/1982/686 -f 1659/1983/687 1660/1984/687 1656/1985/687 -f 1662/1986/688 1641/1987/688 1663/1988/688 -f 1664/1989/689 1654/1990/689 1662/1986/689 -f 1650/1991/690 1664/1989/690 1665/1992/690 -f 1648/1993/691 1665/1992/691 1666/1994/691 -f 1646/1995/692 1666/1994/692 1667/1996/692 -f 1668/1997/693 1646/1995/693 1667/1996/693 -f 1663/1988/694 1644/1998/694 1668/1997/694 -f 1683/1999/695 1685/2000/695 1686/2001/695 -f 1687/2002/695 1689/2003/695 1690/2004/695 -f 1691/2005/695 1693/2006/695 1694/2007/695 -f 1696/2008/696 1698/2009/696 1695/2010/696 -f 1700/2011/696 1702/2012/696 1699/2013/696 -f 1704/2014/696 1706/2015/696 1703/2016/696 -f 1708/2017/696 1699/2013/696 1707/2018/696 -f 1701/2019/697 1683/1999/697 1704/2014/697 -f 1694/2007/695 1709/2020/695 1710/2021/695 -f 1697/2022/696 1707/2018/696 1698/2009/696 -f 1697/2022/697 1710/2021/697 1708/2017/697 -f 1708/2017/697 1687/2002/697 1700/2011/697 -f 1696/2008/697 1694/2007/697 1697/2022/697 -f 1700/2011/697 1690/2004/697 1701/2019/697 -f 1704/2014/697 1686/2001/697 1705/2023/697 -f 1701/2019/696 1703/2016/696 1702/2012/696 -f 1690/2004/695 1684/2024/695 1683/1999/695 -f 1712/2025/697 1696/2008/697 1711/2026/697 -f 1711/2026/696 1695/2010/696 1713/2027/696 -f 1712/2025/695 1692/2028/695 1691/2005/695 -f 1702/2012/696 1716/2029/696 1715/2030/696 -f 1698/2009/696 1718/2031/696 1717/2032/696 -f 1707/2018/696 1719/2033/696 1718/2031/696 -f 1699/2013/696 1715/2030/696 1719/2033/696 -f 1695/2010/696 1717/2032/696 1720/2034/696 -f 1721/2035/698 1723/2036/698 1724/2037/698 -f 1725/2038/698 1727/2039/698 1728/2040/698 -f 1729/2041/698 1731/2042/698 1732/2043/698 -f 1734/2044/699 1736/2045/699 1733/2046/699 -f 1738/2047/699 1740/2048/699 1737/2049/699 -f 1742/2050/699 1744/2051/699 1741/2052/699 -f 1737/2049/699 1746/2053/699 1745/2054/699 -f 1744/2051/700 1726/2055/700 1739/2056/700 -f 1730/2057/698 1748/2058/698 1731/2042/698 -f 1745/2054/699 1735/2059/699 1734/2044/699 -f 1746/2053/700 1730/2057/700 1735/2059/700 -f 1740/2048/700 1747/2060/700 1746/2053/700 -f 1736/2045/700 1730/2057/700 1729/2041/700 -f 1739/2056/700 1725/2038/700 1740/2048/700 -f 1743/2061/700 1721/2035/700 1744/2051/700 -f 1741/2052/699 1739/2056/699 1738/2047/699 -f 1726/2055/698 1724/2037/698 1727/2039/698 -f 1749/2062/700 1729/2041/700 1750/2063/700 -f 1733/2046/699 1749/2062/699 1751/2064/699 -f 1750/2063/698 1732/2043/698 1752/2065/698 -f 1753/2066/701 1741/2052/701 1738/2047/701 -f 1756/2067/701 1734/2044/701 1755/2068/701 -f 1757/2069/701 1745/2054/701 1756/2067/701 -f 1757/2069/701 1738/2047/701 1737/2049/701 -f 1755/2068/701 1733/2046/701 1758/2070/701 -f 1714/2071/702 1750/2072/702 1752/2073/702 -f 1685/2074/703 1724/2075/703 1723/2076/703 -f 1715/2077/704 1754/2078/704 1753/2079/704 -f 1689/2080/705 1728/2081/705 1727/2082/705 -f 1717/2083/706 1756/2084/706 1755/2085/706 -f 1693/2086/705 1732/2087/705 1731/2088/705 -f 1713/2089/521 1749/2090/521 1711/2091/521 -f 1705/2092/445 1722/2093/445 1743/2094/445 -f 1684/2095/705 1727/2082/705 1724/2075/705 -f 1719/2096/706 1753/2079/706 1757/2097/706 -f 1718/2098/706 1757/2097/706 1756/2084/706 -f 1709/2099/705 1731/2088/705 1748/2100/705 -f 1711/2091/707 1750/2072/707 1712/2101/707 -f 1685/2102/708 1722/2093/708 1686/2103/708 -f 1688/2104/702 1725/2105/702 1728/2106/702 -f 1709/2107/709 1747/2108/709 1710/2109/709 -f 1687/2110/710 1747/2111/710 1725/2112/710 -f 1751/2113/711 1720/2114/711 1758/2115/711 -f 1720/2114/706 1755/2085/706 1758/2115/706 -f 1692/2116/705 1752/2117/705 1732/2087/705 -f 1706/2118/712 1743/2094/712 1742/2119/712 -f 1716/2120/713 1742/2119/713 1754/2121/713 -f 1716/2029/696 1703/2016/696 1706/2015/696 -f 1754/2122/701 1742/2050/701 1741/2052/701 -f 1695/2010/696 1720/2034/696 1713/2027/696 -f 1758/2070/701 1733/2046/701 1751/2064/701 -f 1772/2123/521 1759/2124/521 1762/2125/521 -f 1772/2123/521 1761/2126/521 1774/2127/521 -f 1775/2128/707 1769/2129/707 1768/2130/707 -f 1778/2131/521 1763/2132/521 1777/2133/521 -f 1779/2134/521 1763/2132/521 1767/2135/521 -f 1780/2136/521 1767/2135/521 1770/2137/521 -f 1780/2136/707 1771/2138/707 1781/2139/707 -f 1782/2140/521 1765/2141/521 1760/2142/521 -f 1782/2140/521 1759/2124/521 1773/2143/521 -f 1783/2144/707 1766/2145/707 1765/2141/707 -f 1784/2146/707 1771/2138/707 1766/2145/707 -f 1778/2131/521 1768/2130/521 1764/2147/521 -f 1774/2127/521 1769/2129/521 1776/2148/521 -f 1814/2149/521 1812/2150/521 1820/2151/521 -f 808/860/431 809/943/431 810/861/431 -f 811/863/432 812/2152/432 813/864/432 -f 816/866/433 817/1016/433 818/867/433 -f 820/869/434 821/981/434 822/870/434 -f 824/872/431 825/2153/431 826/873/431 -f 828/875/431 829/1165/431 830/876/431 -f 831/878/433 832/1018/433 833/879/433 -f 835/881/433 836/1020/433 837/882/433 -f 840/884/431 841/1058/431 842/885/431 -f 843/887/435 844/2154/435 841/888/435 -f 845/890/436 846/1067/436 847/891/436 -f 850/893/437 851/2155/437 852/894/437 -f 854/896/431 845/1160/431 855/897/431 -f 856/899/438 857/1154/438 858/900/438 -f 861/902/439 852/2156/439 851/903/439 -f 863/905/440 864/2157/440 865/906/440 -f 866/908/433 849/2158/433 852/909/433 -f 862/911/431 865/2159/431 860/912/431 -f 872/914/714 873/1174/715 874/915/715 -f 823/917/444 826/1109/444 877/918/444 -f 878/920/445 879/2160/445 825/921/445 -f 880/923/446 871/2161/446 870/924/446 -f 891/926/447 892/2162/447 893/927/447 -f 895/929/445 896/2163/445 897/930/445 -f 899/932/448 896/2164/448 895/933/448 -f 900/935/449 898/2165/449 895/936/449 -f 901/938/450 811/942/450 814/939/450 -f 903/941/451 878/2166/451 811/942/451 -f 809/943/452 898/2165/452 900/935/452 -f 809/944/453 816/2167/453 899/932/453 -f 824/922/454 812/2168/454 811/945/454 -f 905/946/455 906/1022/455 907/947/455 -f 855/897/716 845/1160/717 848/949/717 -f 909/951/459 856/2169/459 859/952/459 -f 833/879/718 905/1019/718 904/954/718 -f 912/955/461 913/958/461 914/956/461 -f 913/958/462 927/960/462 928/959/462 -f 927/960/462 935/962/462 936/961/462 -f 935/962/462 943/964/462 944/963/462 -f 943/964/462 891/926/462 890/928/462 -f 909/965/463 910/2170/463 952/966/463 -f 953/968/464 954/1151/464 955/969/464 -f 957/971/465 958/1005/465 959/972/465 -f 951/967/463 952/966/463 962/974/463 -f 822/870/466 964/982/466 965/976/466 -f 957/978/467 960/998/467 966/979/467 -f 821/981/468 966/2171/468 964/982/468 -f 830/876/438 829/1165/438 967/983/438 -f 962/974/433 952/966/433 969/985/433 -f 965/976/431 964/982/431 971/987/431 -f 952/966/433 910/2170/433 973/989/433 -f 959/972/469 974/1166/469 975/990/469 -f 967/983/431 976/1167/431 977/991/431 -f 955/969/433 978/1153/433 979/992/433 -f 859/993/470 980/2172/470 973/994/470 -f 964/982/471 966/2171/471 981/996/471 -f 858/900/431 982/1152/431 980/997/431 -f 960/998/472 975/2173/472 981/999/472 -f 983/1000/473 957/978/473 821/980/473 -f 984/1002/431 819/871/431 822/870/431 -f 985/1003/433 986/1008/433 951/967/433 -f 983/1004/474 987/1164/474 958/1005/474 -f 989/1006/433 954/1151/433 953/968/433 -f 986/1008/433 990/1017/433 909/965/433 -f 991/1009/475 856/2174/475 909/1010/475 -f 992/1012/431 857/1154/431 856/899/431 -f 808/860/476 992/1012/476 991/1013/476 -f 809/1014/477 991/1009/477 990/1011/477 -f 817/1016/478 816/866/478 990/1017/478 -f 837/882/479 989/1006/479 988/1007/479 -f 833/879/480 987/1164/480 983/1004/480 -f 836/1020/478 817/1016/478 986/1008/478 -f 993/1021/481 994/1025/481 819/871/481 -f 905/946/482 983/1000/482 820/1001/482 -f 996/1023/476 828/875/476 827/877/476 -f 994/1025/483 906/1116/483 820/869/483 -f 979/1026/484 978/1150/484 997/1027/484 -f 970/1029/484 969/1032/484 999/1030/484 -f 969/1032/484 973/1052/484 1001/1033/484 -f 974/1034/485 971/2175/485 981/1035/485 -f 1002/1037/486 1003/1162/486 997/1038/486 -f 1004/1040/486 1005/1149/486 999/1041/486 -f 1006/1043/487 1007/2176/487 1008/1044/487 -f 980/1046/484 982/1148/484 1005/1047/484 -f 972/1049/484 971/1056/484 1007/1050/484 -f 973/1052/492 980/1046/490 1004/1048/491 -f 977/1053/484 976/1161/484 1003/1054/484 -f 971/1056/489 974/1163/490 1008/1057/488 -f 841/1058/431 1009/2177/431 1010/1059/431 -f 1011/1060/433 846/1137/433 1012/1061/433 -f 844/1063/440 1014/2178/440 1009/1064/440 -f 845/890/437 1015/2179/437 1012/1066/437 -f 1009/1068/719 862/1075/720 867/1069/721 -f 1012/1071/722 849/1077/722 866/1072/722 -f 1009/1068/723 1014/1156/724 863/1074/725 -f 1015/1076/499 850/1157/499 849/1077/499 -f 892/1078/446 1029/1081/446 1030/1079/446 -f 1029/1081/446 871/2161/446 880/923/446 -f 1031/1082/446 1032/1085/446 1028/1083/446 -f 1030/1079/446 880/923/446 1032/1085/446 -f 1033/1086/446 1031/1082/446 885/1084/446 -f 893/1080/446 1030/1079/446 1031/1082/446 -f 947/1088/462 1036/1091/462 1037/1089/462 -f 944/963/462 890/928/462 1037/1089/462 -f 939/1092/462 1039/1093/462 1036/1091/462 -f 936/961/462 944/963/462 1036/1091/462 -f 931/1094/462 1041/1095/462 1039/1093/462 -f 928/959/462 936/961/462 1039/1093/462 -f 921/1096/462 1043/1097/462 1041/1095/462 -f 914/956/462 928/959/462 1041/1095/462 -f 920/1098/461 1045/1099/461 1043/1097/461 -f 1045/1099/461 911/957/461 914/956/461 -f 883/1090/447 1037/1089/447 1033/1100/447 -f 890/928/447 893/927/447 1033/1100/447 -f 1032/1085/446 889/1103/446 888/1102/446 -f 880/923/446 881/925/446 889/1103/446 -f 877/1104/431 879/2180/431 1026/1105/431 -f 825/1107/501 920/2181/501 919/1108/501 -f 877/918/502 826/1109/502 924/1110/502 -f 923/1111/433 879/2182/433 877/918/433 -f 826/1109/726 919/1108/726 1027/2183/726 -f 826/1109/501 1027/2183/501 916/1112/501 -f 834/880/727 904/954/727 1047/1113/728 -f 994/1025/729 1048/1145/729 907/1115/729 -f 904/948/455 907/947/455 908/1117/455 -f 810/861/452 900/935/452 1050/1119/452 -f 816/866/451 815/868/451 1051/1121/451 -f 1051/1121/450 897/1146/450 896/1123/450 -f 900/935/449 894/937/449 1052/1124/449 -f 894/931/445 897/930/445 902/1125/445 -f 1053/1127/431 1048/1145/431 994/1025/431 -f 1054/1128/431 1055/1155/431 996/1023/431 -f 835/881/433 838/883/433 1057/1129/433 -f 1058/1131/433 831/878/433 834/880/433 -f 903/941/433 815/868/433 818/867/433 -f 807/862/431 810/861/431 1049/1120/431 -f 1060/1133/431 1049/1120/431 824/872/431 -f 1061/1134/730 1062/1212/730 1063/1135/730 -f 1011/1060/433 1058/1131/433 1046/1114/433 -f 1056/1130/433 1057/1129/433 844/1138/433 -f 1052/1126/445 902/1125/445 814/1140/445 -f 1050/1119/449 1052/1124/449 813/1142/449 -f 1049/1120/452 1050/1119/452 812/1143/452 -f 1047/1118/455 908/1117/455 848/892/455 -f 1046/1114/731 1047/1113/732 847/1144/733 -f 1048/1145/734 855/897/735 908/950/736 -f 815/868/451 903/941/451 901/938/451 -f 1051/1121/450 901/938/450 902/940/450 -f 853/898/431 855/897/431 1048/1145/431 -f 807/862/431 1060/1133/431 839/886/431 -f 1059/1132/433 1056/1130/433 843/1139/433 -f 818/867/433 835/881/433 1056/1130/433 -f 807/862/431 1054/1128/431 995/1024/431 -f 982/1148/484 977/1053/484 1002/1055/484 -f 1005/1149/486 1002/1037/486 1000/1039/486 -f 978/1150/484 970/1029/484 1000/1031/484 -f 995/1024/476 827/877/476 992/1012/476 -f 837/882/478 836/1020/478 985/1003/478 -f 989/1006/433 985/1003/433 961/975/433 -f 968/984/431 977/991/431 982/1152/431 -f 955/969/433 962/974/433 970/986/433 -f 857/1154/438 830/876/438 968/984/438 -f 961/975/463 962/974/463 955/969/463 -f 876/919/435 843/887/435 840/889/435 -f 1060/1133/431 823/874/431 840/884/431 -f 818/867/433 817/1016/433 836/1020/433 -f 827/877/431 830/876/431 857/1154/431 -f 844/1138/433 1057/1129/433 1058/1131/433 -f 1057/1129/433 838/883/433 831/878/433 -f 1055/1155/431 1053/1127/431 993/1021/431 -f 1014/1156/737 1013/1073/495 866/1072/495 -f 1015/1076/494 1010/1070/494 867/1069/494 -f 844/1138/433 1011/1060/433 1013/1062/433 -f 854/896/431 1010/1059/431 1015/1159/431 -f 976/1161/484 972/1049/484 1006/1051/484 -f 1003/1162/487 1006/1043/487 998/1045/487 -f 974/1163/484 979/1026/484 998/1028/484 -f 996/1023/481 993/1021/481 984/1002/481 -f 832/1018/479 988/1007/479 987/1164/479 -f 988/1007/433 953/968/433 958/1005/433 -f 828/875/431 984/1002/431 963/977/431 -f 956/970/433 979/992/433 974/1166/433 -f 967/983/431 965/976/431 972/988/431 -f 963/977/466 965/976/466 967/983/466 -f 958/1005/464 953/968/464 956/970/464 -f 867/913/431 860/912/431 851/1168/431 -f 863/1170/433 866/908/433 861/910/433 -f 864/1172/439 861/902/439 860/904/439 -f 841/1058/431 854/896/431 853/898/431 -f 838/883/433 837/882/433 832/1018/433 -f 873/1174/738 1065/1235/738 1066/1175/738 -f 1064/1136/739 1063/1135/739 1067/1176/739 -f 1070/1178/739 1071/1216/739 1072/1179/739 -f 1074/1181/740 1075/1215/740 1076/1182/740 -f 1069/1180/519 1072/1179/519 1078/1184/519 -f 1079/1186/518 1064/1136/518 1068/1177/518 -f 1072/1188/445 1081/2184/445 1082/1189/445 -f 1083/1191/741 1084/1210/741 1085/1192/741 -f 1074/1194/435 1088/2185/435 1089/1195/435 -f 1064/1197/742 1085/2186/742 1084/1198/742 -f 873/1200/521 1090/2187/521 1086/1201/521 -f 1061/1203/743 1084/2188/743 1091/1204/743 -f 872/1206/435 1093/2189/435 1090/1207/435 -f 1094/1209/744 1095/1259/745 1084/1210/744 -f 1096/1211/746 1097/2190/747 1062/1212/747 -f 1087/1213/748 872/914/749 875/916/750 -f 1087/1213/526 1098/1214/526 1075/1215/526 -f 1071/1216/747 1097/2190/747 1096/1211/751 -f 1081/1217/752 1095/1259/753 1094/1209/752 -f 1096/1219/754 1095/2191/754 1081/1220/754 -f 1093/1222/521 1100/1257/521 1101/1223/521 -f 1088/1225/433 1082/1218/433 1094/1209/433 -f 1093/1222/521 1099/1224/521 1102/1227/521 -f 1079/1202/521 1086/1201/521 1085/1229/521 -f 1093/1231/433 1083/1191/433 1086/1193/433 -f 1078/1190/445 1082/1189/445 1088/1233/445 -f 1079/1186/518 1080/1187/518 1065/1235/518 -f 1073/1183/519 1077/1185/519 1078/1184/519 -f 1104/1236/433 1102/2192/433 1099/1237/433 -f 1094/1239/445 1104/2193/445 1103/1240/445 -f 1089/1241/445 1105/1252/445 1106/1242/445 -f 1083/1244/486 1102/2194/486 1104/1245/486 -f 1106/1247/435 1105/1250/435 1100/1248/435 -f 1105/1250/435 1108/2195/435 1101/1251/435 -f 1103/1240/445 1108/2196/445 1105/1252/445 -f 872/1253/431 1087/2197/431 1106/1254/431 -f 872/1256/521 1107/2198/521 1100/1257/521 -f 1099/1237/433 1101/2199/433 1108/1258/433 -f 1095/1259/755 1109/2200/755 1091/1260/755 -f 1096/1261/756 1110/2201/756 1109/1262/756 -f 1092/1264/757 1091/2202/757 1109/1265/757 -f 1061/1267/758 1092/2203/758 1110/1268/758 -f 1112/1270/536 1113/2204/536 1114/1271/536 -f 1150/2205/431 1139/1278/431 1140/1277/431 -f 1140/1277/431 1141/1275/431 1150/2205/431 -f 1141/1275/431 1142/2206/431 1143/1273/431 -f 1150/2205/431 1141/1275/431 1137/2207/431 -f 1143/1273/431 1144/2208/431 1148/1274/431 -f 1144/2208/431 1145/2209/431 1148/1274/431 -f 1145/2209/431 1146/2210/431 1147/2211/431 -f 1148/1274/431 1145/2209/431 1147/2211/431 -f 1148/1274/431 1149/2212/431 1141/1275/431 -f 1149/2212/431 1138/2213/431 1141/1275/431 -f 1138/2213/431 1137/2207/431 1141/1275/431 -f 1114/1276/537 1113/2214/537 1140/1277/537 -f 1151/2215/433 1152/2216/433 1160/1280/433 -f 1152/2216/433 1153/2217/433 1160/1280/433 -f 1153/2217/433 1154/2218/433 1160/1280/433 -f 1154/2218/433 1155/1281/433 1160/1280/433 -f 1155/1281/433 1156/2219/433 1136/2220/433 -f 1156/2219/433 1157/2221/433 1136/2220/433 -f 1136/2220/433 1135/2222/433 1155/1281/433 -f 1135/2222/433 1158/1279/433 1155/1281/433 -f 1158/1279/433 1159/2223/433 1160/1280/433 -f 1160/1280/433 1161/1283/433 1151/2215/433 -f 1161/1283/433 1162/2224/433 1151/2215/433 -f 1111/1282/538 1162/2224/538 1161/1283/538 -f 1190/1285/539 1191/1288/539 1192/1286/539 -f 1191/1288/540 1193/2225/540 1194/1289/540 -f 1193/1290/541 1195/1293/541 1196/1291/541 -f 1195/1293/542 1197/2226/542 1198/1294/542 -f 1197/1295/543 1199/1298/543 1200/1296/543 -f 1199/1298/544 1201/1300/544 1202/1299/544 -f 1201/1300/545 1203/2227/545 1204/1301/545 -f 1203/1302/546 1205/1305/546 1206/1303/546 -f 1205/1305/547 1207/1307/547 1208/1306/547 -f 1207/1307/548 1209/1309/548 1210/1308/548 -f 1209/1309/549 1211/2228/549 1212/1310/549 -f 1211/1311/550 1190/1285/550 1189/1287/550 -f 1213/1315/759 1214/2229/759 1196/1316/759 -f 1198/2230/760 1200/1313/760 1213/1315/760 -f 1200/1313/761 1202/2231/762 1216/1314/761 -f 1202/2231/763 1215/2232/764 1216/1314/765 -f 1213/1315/766 1196/1316/766 1198/2230/766 -f 1217/2233/767 1218/2234/767 1189/2235/768 -f 1189/2235/769 1192/2236/770 1217/2233/770 -f 1192/2236/771 1194/2237/771 1217/2233/771 -f 1194/2237/772 1196/1316/772 1221/1318/772 -f 1196/1316/552 1214/2229/552 1219/2238/552 -f 1220/1317/552 1196/1316/552 1219/2238/552 -f 1221/1318/773 1217/2233/773 1194/2237/773 -f 1222/1320/774 1223/2239/774 1208/2240/774 -f 1210/1321/775 1212/2241/775 1224/1319/775 -f 1212/2241/776 1189/2235/777 1224/1319/776 -f 1222/1320/774 1208/2240/774 1210/1321/774 -f 1189/2235/778 1218/2234/779 1224/1319/779 -f 1225/1322/780 1215/2232/781 1202/2231/782 -f 1202/2231/783 1204/2242/784 1225/1322/784 -f 1204/2242/785 1206/1323/785 1225/1322/785 -f 1206/1323/786 1208/2240/786 1226/1324/786 -f 1208/2240/786 1223/2239/786 1226/1324/786 -f 1201/2243/787 1178/2244/788 1180/1325/789 -f 1182/1326/790 1184/2245/790 1207/2246/790 -f 1203/2247/791 1201/2243/792 1180/1325/791 -f 1182/1326/790 1207/2246/790 1205/1327/790 -f 1203/2247/793 1180/1325/793 1205/1327/793 -f 1195/1333/794 1171/2248/794 1174/1328/794 -f 1176/1329/795 1178/2244/796 1201/2243/797 -f 1197/2249/798 1195/1333/798 1174/1328/798 -f 1176/1329/799 1201/2243/800 1199/1330/799 -f 1197/2249/801 1174/1328/801 1199/1330/801 -f 1190/2250/802 1166/2251/803 1165/2252/803 -f 1190/2250/804 1165/2252/805 1191/2253/805 -f 1165/2252/806 1168/2254/806 1193/2255/806 -f 1193/2255/807 1191/2253/807 1165/2252/807 -f 1171/2248/557 1195/1333/557 1172/1332/557 -f 1195/1333/808 1193/2255/808 1168/2254/808 -f 1227/1331/557 1195/1333/557 1168/2254/557 -f 1207/2246/809 1184/2245/809 1186/2256/809 -f 1188/1335/810 1166/2251/810 1190/2250/811 -f 1209/1334/809 1207/2246/809 1186/2256/809 -f 1186/2256/812 1188/1335/812 1209/1334/812 -f 1188/1335/813 1190/2250/814 1211/1336/813 -f 1264/1337/815 1265/1476/816 1266/1338/431 -f 1265/1340/445 1267/2257/445 1268/1341/445 -f 1267/1343/433 1269/1509/433 1270/1344/433 -f 1272/1346/521 1264/1547/521 1263/1347/521 -f 1263/2258/435 1266/2259/435 1271/1351/435 -f 1266/2259/435 1268/1349/435 1271/1351/435 -f 1268/1349/435 1270/2260/435 1273/1350/435 -f 1274/1352/502 1275/1359/502 1276/1353/502 -f 1278/1355/502 1279/2261/502 1280/1356/502 -f 1282/1358/560 1283/1366/560 1276/1353/560 -f 1269/1360/561 1285/2262/561 1286/1361/561 -f 1267/1363/817 1265/2263/817 1282/1364/817 -f 1290/1530/563 1276/1353/563 1289/2264/563 -f 1276/1353/563 1283/1366/563 1288/1368/563 -f 1289/2264/563 1276/1353/563 1288/1368/563 -f 1292/1369/564 1293/2265/564 1294/1370/564 -f 1277/1372/433 1296/1433/433 1297/1373/433 -f 1278/1375/818 1281/2266/818 1299/1376/818 -f 1282/1358/560 1283/1366/560 1299/1378/560 -f 1285/1380/502 1300/2267/502 1295/1381/502 -f 1300/1383/566 1274/1510/566 1277/1372/566 -f 1286/1361/567 1285/2262/567 1292/1369/567 -f 1303/1386/433 1297/1373/433 1296/1433/433 -f 1296/1433/433 1301/1384/433 1303/1386/433 -f 1304/1387/502 1303/1554/502 1302/1388/819 -f 1287/1390/607 1306/2268/607 1307/1391/607 -f 1281/1357/502 1280/1356/502 1309/1393/502 -f 1276/1353/563 1290/1530/563 1296/1395/563 -f 1299/1376/570 1281/2266/570 1310/1396/570 -f 1287/1367/563 1306/2269/563 1299/1378/563 -f 1292/1382/502 1295/1381/502 1297/1398/502 -f 1308/1400/486 1312/2270/486 1313/1401/486 -f 1314/1403/484 1305/1389/484 1302/1388/484 -f 1312/1405/484 1308/2271/484 1307/1406/484 -f 1316/1408/820 1304/1529/820 1305/1409/820 -f 1287/1367/572 1308/2272/572 1311/1411/572 -f 1318/1412/502 1319/1525/502 1312/1405/819 -f 1296/1395/572 1290/1530/572 1314/1413/572 -f 1307/1417/821 1306/1397/821 1318/1415/821 -f 1306/1397/822 1310/1396/822 1318/1415/822 -f 1306/1397/431 1320/2273/431 1321/1418/431 -f 1290/1419/433 1276/2274/433 1322/1420/433 -f 1325/1422/431 1326/2275/431 1327/1423/431 -f 1330/2276/433 1314/2277/433 1329/1427/433 -f 1314/2277/823 1290/1425/823 1329/1427/823 -f 1331/1428/433 1332/2278/433 1333/1429/433 -f 1337/2279/824 1306/1397/824 1336/1432/824 -f 1306/1397/825 1307/1417/825 1336/1432/825 -f 1296/1433/433 1331/1428/433 1334/1430/433 -f 1324/1424/431 1327/1423/431 1287/1434/431 -f 1328/1436/579 1290/2280/579 1338/1437/579 -f 1326/1439/502 1340/1460/502 1341/1440/502 -f 1343/1442/826 1330/2281/826 1329/1443/826 -f 1335/1445/575 1307/2282/575 1345/1446/575 -f 1299/1448/576 1321/2283/576 1322/1449/576 -f 1276/1450/502 1283/2284/502 1299/1448/502 -f 1321/1451/563 1320/2285/563 1323/1452/563 -f 1296/1457/576 1290/2286/576 1323/1458/576 -f 1340/1460/502 1346/2287/502 1347/1461/502 -f 1331/1462/502 1348/2288/502 1349/1463/502 -f 1306/1465/502 1337/2289/502 1350/1466/502 -f 1346/1468/827 1352/2290/827 1353/1469/827 -f 1354/1471/828 1355/1489/828 1349/1472/828 -f 1267/1343/582 1268/1345/582 1356/1474/582 -f 1265/1476/583 1358/1480/583 1359/1477/583 -f 1356/1474/586 1360/1481/586 1361/1478/586 -f 1362/1479/587 1363/1484/587 1359/1477/587 -f 1360/1481/586 1364/1486/586 1365/1482/586 -f 1362/1479/587 1366/1488/587 1367/1483/587 -f 1360/1481/433 1368/2291/433 1369/1485/433 -f 1367/1483/431 1370/2292/431 1371/1487/431 -f 1353/1469/829 1352/2290/829 1366/1488/829 -f 1354/1471/830 1361/1478/830 1365/1482/830 -f 1352/1490/831 1346/2293/831 1349/1491/831 -f 1365/1493/832 1366/1494/832 1352/1490/832 -f 1366/1494/833 1365/1493/833 1364/1495/833 -f 1369/1497/445 1370/2294/445 1367/1496/445 -f 1369/1498/592 1368/2295/592 1371/1499/592 -f 1368/1501/521 1360/2296/521 1363/1502/521 -f 1356/1504/435 1359/2297/435 1363/1505/435 -f 1268/1341/834 1266/1342/834 1359/1507/834 -f 1264/1337/835 1278/1375/595 1298/1377/595 -f 1269/1509/597 1267/1343/597 1274/1510/597 -f 1347/1511/836 1353/2298/836 1354/1512/836 -f 1354/1514/837 1353/2299/837 1362/1515/837 -f 1351/1517/600 1350/2300/600 1339/1518/600 -f 1361/1516/838 1362/1515/838 1358/1520/838 -f 1343/1522/575 1372/2301/575 1314/1523/575 -f 1310/1394/502 1309/1393/502 1319/1525/502 -f 1336/1526/826 1335/2302/826 1344/1527/826 -f 1294/1370/607 1293/2265/607 1304/1529/607 -f 1290/1530/572 1289/2264/572 1374/1531/572 -f 1294/1370/604 1316/1408/604 1376/1532/604 -f 1376/1532/571 1313/2303/571 1312/1534/571 -f 1316/1536/606 1342/2304/606 1373/1537/606 -f 1374/1539/486 1317/2305/486 1305/1540/486 -f 1375/1533/839 1376/1532/839 1319/1535/839 -f 1377/1543/567 1378/1546/567 1280/1544/567 -f 1377/1543/567 1286/1361/567 1291/1371/567 -f 1378/1546/564 1375/1533/564 1309/1542/564 -f 1291/1371/564 1294/1370/564 1375/1533/564 -f 1272/1346/561 1377/1543/561 1279/1545/561 -f 1284/1362/561 1286/1361/561 1377/1543/561 -f 1269/1360/521 1284/1362/521 1273/1548/521 -f 1284/1362/521 1272/1346/521 1271/1348/521 -f 1373/1528/608 1342/1444/608 1380/1550/608 -f 1337/1552/840 1336/1526/840 1373/1528/840 -f 1342/1444/841 1329/1443/841 1328/1553/841 -f 1293/1399/502 1297/1398/502 1303/1554/502 -f 1373/1555/433 1344/2306/433 1311/1556/433 -f 1311/1556/433 1313/2307/433 1376/1558/433 -f 1374/1559/431 1289/1563/431 1316/1560/431 -f 1374/1559/431 1343/2308/431 1342/1562/431 -f 1381/1564/433 1382/2309/433 1287/1565/433 -f 1383/1567/433 1384/2310/433 1296/1433/433 -f 1386/1568/445 1387/2311/445 1388/1569/445 -f 1390/1571/433 1391/1713/433 1392/1572/433 -f 1393/1574/486 1394/2312/486 1395/1575/486 -f 1396/1577/431 1397/2313/431 1398/1578/431 -f 1390/1580/435 1401/1589/435 1402/1581/435 -f 1403/1583/842 1385/1777/842 1396/1584/842 -f 1399/1586/486 1406/2314/486 1407/1587/486 -f 1401/1589/435 1408/1603/435 1409/1590/435 -f 1396/1584/486 1399/2315/486 1410/1591/486 -f 1393/1592/433 1411/2316/433 1408/1593/433 -f 1413/1595/521 1405/1833/521 1414/1596/521 -f 1416/1598/521 1417/1857/521 1418/1599/521 -f 1419/1601/521 1420/2317/521 1421/1602/521 -f 1408/1603/435 1419/1902/435 1422/1604/435 -f 1399/1608/445 1426/2318/445 1427/1609/445 -f 1411/1611/433 1428/1859/433 1417/1612/433 -f 1399/1614/431 1405/2319/431 1429/1615/431 -f 1430/1617/843 1425/1815/843 1424/1618/843 -f 1425/1607/844 1432/2320/844 1433/1620/844 -f 1438/1624/612 1439/1690/612 1440/1625/612 -f 1427/1627/613 1426/2321/613 1441/1628/613 -f 1435/1622/614 1428/1859/614 1443/1630/614 -f 1445/1632/615 1436/1822/615 1438/1624/615 -f 1446/1633/433 1447/1689/433 1448/1634/433 -f 1433/1620/616 1432/2320/616 1450/1636/616 -f 1441/1628/617 1452/2322/617 1453/1638/617 -f 1443/1630/618 1454/1692/618 1455/1639/618 -f 1457/1640/619 1458/2323/619 1459/1641/619 -f 1461/1643/431 1462/2324/431 1463/1644/431 -f 1463/1644/431 1462/2324/431 1457/1646/431 -f 1465/1648/431 1461/1643/431 1460/1645/431 -f 1452/1650/620 1460/1656/620 1466/1651/620 -f 1462/1653/621 1449/2325/621 1468/1654/621 -f 1460/1656/622 1463/2326/622 1469/1657/622 -f 1470/1658/431 1471/2327/431 1472/1659/431 -f 1475/1661/623 1476/2328/623 1477/1662/623 -f 1479/1664/433 1480/2329/433 1481/1665/433 -f 1477/1662/624 1476/2328/624 1481/1667/624 -f 1483/1669/433 1484/1682/433 1479/1664/433 -f 1486/1670/625 1475/2330/625 1474/1671/625 -f 1488/1673/431 1471/2327/431 1470/1658/431 -f 1490/1675/626 1491/2331/626 1492/1676/626 -f 1494/1678/627 1486/2332/627 1485/1679/627 -f 1465/1683/628 1497/1686/628 1498/1684/628 -f 1497/1686/629 1490/1675/629 1489/1677/629 -f 1500/1687/431 1488/1673/431 1487/1674/431 -f 1484/1682/433 1454/1692/433 1447/1689/433 -f 1450/1636/431 1500/1687/431 1499/1688/431 -f 1439/1690/630 1494/2333/630 1493/1691/630 -f 1454/1692/433 1484/1682/433 1495/1681/433 -f 1462/1693/631 1461/2334/631 1446/1694/631 -f 1386/1696/435 1502/1715/435 1503/1697/435 -f 1464/1699/632 1457/1640/632 1456/1642/632 -f 1389/1576/486 1392/2335/486 1505/1701/486 -f 1386/1703/431 1385/2336/431 1506/1704/431 -f 1508/1706/634 1509/2337/634 1510/1707/634 -f 1511/1709/433 1512/1742/433 1468/1710/433 -f 1502/1705/431 1506/1704/431 1513/1711/431 -f 1391/1713/433 1510/2338/433 1509/1714/433 -f 1502/1715/635 1514/2339/635 1515/1716/635 -f 1484/1717/636 1517/2340/636 1518/1718/636 -f 1465/1648/431 1519/2341/431 1520/1720/431 -f 1459/1641/650 1458/2323/650 1521/1721/650 -f 1517/1723/638 1523/2342/638 1524/1724/638 -f 1523/1726/639 1525/2343/639 1526/1727/639 -f 1457/1646/431 1462/2324/431 1467/1729/431 -f 1448/1634/433 1527/2344/433 1511/1709/433 -f 1463/1731/640 1464/2345/640 1403/1583/640 -f 1484/1682/433 1446/1633/433 1523/1733/433 -f 1528/1735/845 1529/2346/646 1530/1736/646 -f 1525/1737/644 1529/2346/644 1528/1735/644 -f 1458/1730/431 1467/1729/431 1531/1739/431 -f 1468/1710/433 1529/1743/433 1525/1741/433 -f 1512/1742/433 1530/2347/433 1529/1743/433 -f 1467/1729/431 1520/1720/431 1532/1744/431 -f 1533/1745/644 1534/1748/644 1531/1746/644 -f 1526/1738/644 1528/1735/644 1534/1748/644 -f 1534/1748/846 1522/1750/847 1521/1749/848 -f 1528/1735/849 1508/1706/850 1522/1750/851 -f 1535/1751/640 1504/1702/640 1527/1752/640 -f 1469/1732/640 1403/1583/640 1504/1702/640 -f 1536/1754/639 1533/1757/639 1532/1755/639 -f 1524/1728/639 1526/1727/639 1533/1757/639 -f 1537/1758/638 1536/1761/638 1520/1759/638 -f 1518/1725/638 1524/1724/638 1536/1761/638 -f 1538/1762/852 1508/1765/852 1530/1763/852 -f 1459/1641/651 1522/1722/651 1508/1765/651 -f 1496/1766/621 1537/1769/621 1519/1767/621 -f 1516/1719/636 1518/1718/636 1537/1769/636 -f 1539/1770/635 1507/1773/635 1510/1771/635 -f 1503/1697/635 1515/1716/635 1507/1773/635 -f 1513/1774/634 1522/1750/634 1515/1775/634 -f 1522/1750/634 1508/1706/634 1507/1708/634 -f 1385/1777/853 1403/1583/853 1540/1778/853 -f 1504/1702/653 1505/1701/653 1540/1778/653 -f 1504/1780/632 1541/1783/632 1511/1781/632 -f 1403/1700/632 1456/1642/632 1541/1783/632 -f 1400/1582/435 1539/1770/435 1391/1772/435 -f 1501/1698/435 1503/1697/435 1539/1770/435 -f 1542/1784/854 1543/2348/854 1500/1785/854 -f 1516/1787/654 1544/1790/654 1479/1788/654 -f 1498/1684/629 1489/1677/629 1544/1790/629 -f 1543/1791/855 1545/2349/855 1488/1792/855 -f 1544/1790/626 1546/1795/626 1480/1794/626 -f 1489/1677/626 1492/1676/626 1546/1795/626 -f 1545/1796/625 1547/2350/625 1471/1797/625 -f 1472/1799/624 1548/2351/624 1549/1800/624 -f 1547/1802/623 1548/2351/623 1472/1799/623 -f 1550/1804/622 1535/1807/622 1448/1805/622 -f 1466/1651/622 1469/1657/622 1535/1807/622 -f 1551/1808/620 1550/1804/620 1447/1806/620 -f 1453/1652/620 1466/1651/620 1550/1804/620 -f 1541/1783/619 1538/1762/619 1512/1764/619 -f 1456/1642/619 1459/1641/619 1538/1762/619 -f 1443/1810/617 1552/1813/617 1551/1811/617 -f 1442/1629/617 1453/1638/617 1551/1811/617 -f 1430/1617/615 1553/1816/615 1432/1814/615 -f 1445/1632/615 1437/1626/615 1553/1816/615 -f 1554/1817/613 1552/1813/613 1443/1810/613 -f 1427/1627/613 1442/1629/613 1552/1813/613 -f 1432/1814/612 1553/1816/612 1542/1784/612 -f 1556/1819/658 1430/1617/658 1445/1632/658 -f 1445/1632/659 1557/1823/659 1434/1821/659 -f 1430/1617/659 1431/1619/659 1557/1823/659 -f 1558/1824/445 1554/1827/445 1428/1825/445 -f 1410/1610/445 1427/1609/445 1554/1827/445 -f 1559/1828/435 1412/1831/435 1414/1829/435 -f 1409/1590/435 1422/1604/435 1412/1831/435 -f 1413/1595/521 1560/1834/521 1429/1832/521 -f 1415/1600/521 1418/1599/521 1560/1834/521 -f 1416/1598/521 1415/1600/521 1422/1835/521 -f 1415/1600/521 1413/1595/521 1412/1597/521 -f 1561/1836/486 1558/1838/486 1411/1837/486 -f 1404/1585/486 1410/1591/486 1558/1838/486 -f 1562/1839/435 1559/1828/435 1398/1830/435 -f 1402/1581/435 1409/1590/435 1559/1828/435 -f 1504/1702/609 1561/1836/609 1393/1574/609 -f 1403/1583/856 1404/1585/856 1561/1836/856 -f 1501/1698/435 1562/1839/435 1397/1840/435 -f 1400/1582/435 1402/1581/435 1562/1839/435 -f 1418/1599/661 1557/1858/661 1431/1841/661 -f 1429/1832/661 1560/1834/661 1431/1841/661 -f 1549/1800/662 1482/1668/662 1546/1843/662 -f 1473/1801/662 1549/1800/662 1492/1844/662 -f 1439/1846/433 1455/1639/433 1495/1681/433 -f 1452/1649/431 1451/1637/431 1499/1688/431 -f 1499/1688/431 1487/1674/431 1497/1848/431 -f 1494/1847/433 1495/1681/433 1483/1669/433 -f 1487/1674/431 1470/1658/431 1490/1850/431 -f 1486/1849/433 1483/1669/433 1478/1666/433 -f 1482/1668/662 1481/1667/662 1480/1852/662 -f 1478/1666/433 1481/1665/433 1476/1853/433 -f 1490/1850/431 1470/1658/431 1473/1660/431 -f 1444/1631/618 1455/1639/618 1439/1846/618 -f 1441/1856/616 1433/1620/616 1451/1637/616 -f 1436/1623/614 1435/1622/614 1444/1631/614 -f 1417/1857/661 1434/2352/661 1557/1858/661 -f 1428/1859/433 1435/1622/433 1434/1621/433 -f 1423/1605/611 1433/1620/611 1441/1856/611 -f 1426/1616/431 1429/1615/431 1424/1606/431 -f 1542/2353/857 1553/2354/857 1556/2355/857 -f 1553/2354/858 1430/2356/858 1556/2355/858 -f 1556/2355/859 1563/1860/859 1547/1862/859 -f 1563/1860/860 1549/2357/860 1548/1861/860 -f 1547/1862/861 1545/2358/861 1556/2355/861 -f 1545/2358/862 1543/2359/862 1556/2355/862 -f 1543/2359/863 1542/2353/863 1556/2355/863 -f 1437/2360/864 1440/2361/864 1482/1865/864 -f 1440/2361/431 1493/1863/431 1482/1865/431 -f 1493/1863/431 1485/2362/431 1474/1864/431 -f 1474/1864/431 1477/2363/431 1482/1865/431 -f 1395/1866/433 1394/2364/433 1565/1867/433 -f 1389/1869/445 1395/2365/445 1564/1870/445 -f 1401/1872/521 1565/2366/521 1394/1873/521 -f 1390/1580/435 1564/2367/435 1565/1875/435 -f 1567/1876/431 1388/2368/431 1387/1877/431 -f 1396/1879/521 1567/2369/521 1566/1880/521 -f 1385/1777/486 1388/2370/486 1567/1882/486 -f 1397/1840/435 1566/2371/435 1387/1883/435 -f 1568/1884/431 1569/2372/431 1407/1885/431 -f 1398/1887/445 1568/2373/445 1406/1888/445 -f 1414/1829/435 1569/2374/435 1568/1890/435 -f 1405/1833/521 1407/2375/521 1569/1891/521 -f 1570/1892/433 1571/2376/433 1421/1893/433 -f 1416/1895/486 1421/2377/486 1571/1896/486 -f 1411/1898/445 1571/2378/445 1570/1899/445 -f 1408/1603/435 1570/2379/435 1420/1901/435 -f 1468/1903/622 1523/2380/622 1520/1904/622 -f 1461/1906/619 1520/2381/619 1523/1907/619 -f 1563/1927/665 1591/2382/665 1592/1928/665 -f 1482/1930/658 1549/2383/658 1563/1931/658 -f 1591/1933/865 1593/2384/865 1594/1934/865 -f 1563/1936/866 1556/2385/866 1593/1937/866 -f 1555/1939/867 1590/2386/867 1592/1940/867 -f 1555/1942/868 1594/2387/868 1593/1943/868 -f 1595/1945/869 1594/2388/869 1596/1946/869 -f 1598/1948/870 1599/1974/870 1596/1949/870 -f 1599/1951/871 1600/2389/871 1601/1952/871 -f 1601/1954/872 1600/2390/872 1602/1955/872 -f 1602/1955/873 1604/2391/873 1605/1957/873 -f 1605/1958/671 1604/2392/671 1606/1959/671 -f 1607/1961/874 1593/2393/874 1608/1962/874 -f 1595/1945/875 1597/1947/875 1608/1964/875 -f 1597/1966/876 1592/2394/876 1594/1967/876 -f 1594/1941/877 1592/1940/877 1599/1951/877 -f 1606/1959/878 1591/1938/878 1593/1937/878 -f 1591/1969/879 1597/1966/879 1595/1968/879 -f 1645/2395/686 1643/2396/686 1647/1981/686 -f 1643/2396/686 1642/1982/686 1647/1981/686 -f 1642/1982/686 1653/2397/686 1651/2398/686 -f 1651/2398/686 1649/1980/686 1642/1982/686 -f 1661/2399/687 1655/2400/687 1660/1984/687 -f 1655/2400/687 1656/1985/687 1660/1984/687 -f 1656/1985/687 1657/2401/687 1658/2402/687 -f 1658/2402/687 1659/1983/687 1656/1985/687 -f 1662/1986/688 1654/1990/688 1641/1987/688 -f 1664/1989/689 1652/2403/689 1654/1990/689 -f 1650/1991/880 1652/2403/880 1664/1989/880 -f 1648/1993/881 1650/1991/881 1665/1992/881 -f 1646/1995/692 1648/1993/692 1666/1994/692 -f 1668/1997/882 1644/1998/882 1646/1995/882 -f 1663/1988/694 1641/1987/694 1644/1998/694 -f 1683/1999/695 1684/2024/695 1685/2000/695 -f 1687/2002/695 1688/2404/695 1689/2003/695 -f 1691/2005/695 1692/2028/695 1693/2006/695 -f 1696/2008/696 1697/2022/696 1698/2009/696 -f 1700/2011/696 1701/2019/696 1702/2012/696 -f 1704/2014/696 1705/2023/696 1706/2015/696 -f 1708/2017/696 1700/2011/696 1699/2013/696 -f 1701/2019/697 1690/2004/697 1683/1999/697 -f 1694/2007/695 1693/2006/695 1709/2020/695 -f 1697/2022/696 1708/2017/696 1707/2018/696 -f 1697/2022/697 1694/2007/697 1710/2021/697 -f 1708/2017/697 1710/2021/697 1687/2002/697 -f 1696/2008/697 1691/2005/697 1694/2007/697 -f 1700/2011/697 1687/2002/697 1690/2004/697 -f 1704/2014/697 1683/1999/697 1686/2001/697 -f 1701/2019/696 1704/2014/696 1703/2016/696 -f 1690/2004/695 1689/2003/695 1684/2024/695 -f 1712/2025/697 1691/2005/697 1696/2008/697 -f 1711/2026/696 1696/2008/696 1695/2010/696 -f 1712/2025/695 1714/2405/695 1692/2028/695 -f 1702/2012/696 1703/2016/696 1716/2029/696 -f 1698/2009/696 1707/2018/696 1718/2031/696 -f 1707/2018/696 1699/2013/696 1719/2033/696 -f 1699/2013/696 1702/2012/696 1715/2030/696 -f 1695/2010/696 1698/2009/696 1717/2032/696 -f 1721/2035/698 1722/2406/698 1723/2036/698 -f 1725/2038/698 1726/2055/698 1727/2039/698 -f 1729/2041/698 1730/2057/698 1731/2042/698 -f 1734/2044/699 1735/2059/699 1736/2045/699 -f 1738/2047/699 1739/2056/699 1740/2048/699 -f 1742/2050/699 1743/2061/699 1744/2051/699 -f 1737/2049/699 1740/2048/699 1746/2053/699 -f 1744/2051/700 1721/2035/700 1726/2055/700 -f 1730/2057/698 1747/2060/698 1748/2058/698 -f 1745/2054/699 1746/2053/699 1735/2059/699 -f 1746/2053/700 1747/2060/700 1730/2057/700 -f 1740/2048/700 1725/2038/700 1747/2060/700 -f 1736/2045/700 1735/2059/700 1730/2057/700 -f 1739/2056/700 1726/2055/700 1725/2038/700 -f 1743/2061/700 1722/2406/700 1721/2035/700 -f 1741/2052/699 1744/2051/699 1739/2056/699 -f 1726/2055/698 1721/2035/698 1724/2037/698 -f 1749/2062/700 1736/2045/700 1729/2041/700 -f 1733/2046/699 1736/2045/699 1749/2062/699 -f 1750/2063/698 1729/2041/698 1732/2043/698 -f 1753/2066/701 1754/2122/701 1741/2052/701 -f 1756/2067/701 1745/2054/701 1734/2044/701 -f 1757/2069/701 1737/2049/701 1745/2054/701 -f 1757/2069/701 1753/2066/701 1738/2047/701 -f 1755/2068/701 1734/2044/701 1733/2046/701 -f 1714/2071/883 1712/2101/883 1750/2072/883 -f 1685/2074/705 1684/2095/705 1724/2075/705 -f 1715/2077/704 1716/2407/704 1754/2078/704 -f 1689/2080/705 1688/2408/705 1728/2081/705 -f 1717/2083/706 1718/2098/706 1756/2084/706 -f 1693/2086/705 1692/2116/705 1732/2087/705 -f 1713/2089/521 1751/2409/521 1749/2090/521 -f 1705/2092/445 1686/2103/445 1722/2093/445 -f 1684/2095/705 1689/2080/705 1727/2082/705 -f 1719/2096/704 1715/2077/704 1753/2079/704 -f 1718/2098/706 1719/2096/706 1757/2097/706 -f 1709/2099/705 1693/2086/705 1731/2088/705 -f 1711/2091/884 1749/2090/884 1750/2072/884 -f 1685/2102/885 1723/2410/885 1722/2093/885 -f 1688/2104/886 1687/2411/886 1725/2105/886 -f 1709/2107/887 1748/2412/887 1747/2108/887 -f 1687/2110/710 1710/2413/710 1747/2111/710 -f 1751/2113/888 1713/2414/888 1720/2114/888 -f 1720/2114/706 1717/2083/706 1755/2085/706 -f 1692/2116/705 1714/2415/705 1752/2117/705 -f 1706/2118/712 1705/2092/712 1743/2094/712 -f 1716/2120/713 1706/2118/713 1742/2119/713 -f 1772/2123/521 1773/2143/521 1759/2124/521 -f 1772/2123/521 1762/2125/521 1761/2126/521 -f 1775/2128/521 1776/2148/521 1769/2129/521 -f 1778/2131/521 1764/2147/521 1763/2132/521 -f 1779/2134/521 1777/2133/521 1763/2132/521 -f 1780/2136/521 1779/2134/521 1767/2135/521 -f 1780/2136/521 1770/2137/521 1771/2138/521 -f 1782/2140/521 1783/2144/521 1765/2141/521 -f 1782/2140/521 1760/2142/521 1759/2124/521 -f 1783/2144/521 1784/2146/521 1766/2145/521 -f 1784/2146/521 1781/2139/521 1771/2138/521 -f 1778/2131/521 1775/2128/521 1768/2130/521 -f 1774/2127/521 1761/2126/521 1769/2129/521 -f 1823/2416/521 1813/2417/521 1814/2149/521 -f 1814/2149/884 1815/2418/884 1811/2419/884 -f 1815/2418/521 1816/2420/521 1811/2419/521 -f 1811/2419/521 1812/2150/521 1814/2149/521 -f 1812/2150/521 1817/2421/521 1820/2151/521 -f 1817/2421/521 1818/2422/521 1819/2423/521 -f 1820/2151/521 1817/2421/521 1819/2423/521 -f 1820/2151/521 1821/2424/521 1822/2425/521 -f 1822/2425/521 1823/2416/521 1814/2149/521 -f 1820/2151/521 1822/2425/521 1814/2149/521 +s 0 +f 808/762/441 810/763/441 807/764/441 +f 811/765/442 813/766/442 814/767/442 +f 816/768/443 818/769/443 815/770/443 +f 820/771/444 822/772/444 819/773/444 +f 824/774/441 826/775/441 823/776/441 +f 828/777/441 830/778/441 827/779/441 +f 831/780/443 833/781/443 834/782/443 +f 835/783/443 837/784/443 838/785/443 +f 840/786/441 842/787/441 839/788/441 +f 843/789/445 841/790/445 840/791/445 +f 845/792/446 847/793/446 848/794/446 +f 850/795/447 852/796/447 849/797/447 +f 854/798/441 855/799/441 853/800/441 +f 856/801/448 858/802/448 859/803/448 +f 861/804/449 851/805/449 860/806/449 +f 863/807/450 865/808/450 862/809/450 +f 866/810/443 852/811/443 861/812/443 +f 862/813/441 860/814/441 867/815/441 +f 872/816/451 874/817/452 875/818/453 +f 823/819/454 877/820/454 876/821/454 +f 878/822/455 825/823/455 824/824/455 +f 880/825/456 870/826/456 881/827/456 +f 891/828/457 893/829/457 890/830/457 +f 895/831/455 897/832/455 894/833/455 +f 899/834/458 895/835/458 898/836/458 +f 900/837/459 895/838/459 894/839/459 +f 901/840/460 814/841/460 902/842/460 +f 903/843/461 811/844/461 901/840/461 +f 809/845/462 900/837/462 810/763/462 +f 809/846/463 899/834/463 898/836/463 +f 824/824/464 811/847/464 878/822/464 +f 905/848/465 907/849/465 904/850/465 +f 855/799/466 848/851/467 908/852/468 +f 909/853/469 859/795/469 910/854/469 +f 833/781/470 904/855/470 834/782/470 +f 912/856/471 914/857/471 911/858/471 +f 913/859/472 928/860/472 914/857/472 +f 927/861/472 936/862/472 928/860/472 +f 935/863/472 944/864/472 936/862/472 +f 943/865/472 890/830/472 944/864/472 +f 909/866/473 952/867/473 951/868/473 +f 953/869/474 955/870/474 956/871/474 +f 957/872/475 959/873/475 960/874/475 +f 951/868/473 962/875/473 961/876/473 +f 822/772/476 965/877/476 963/878/476 +f 957/879/477 966/880/477 821/881/477 +f 821/882/478 964/883/478 822/772/478 +f 830/778/448 967/884/448 968/885/448 +f 962/875/443 969/886/443 970/887/443 +f 965/877/441 971/888/441 972/889/441 +f 952/867/443 973/890/443 969/886/443 +f 959/873/479 975/891/479 960/874/479 +f 967/884/441 977/892/441 968/885/441 +f 955/870/443 979/893/443 956/871/443 +f 859/894/480 973/895/480 910/896/480 +f 964/883/481 981/897/481 971/888/481 +f 858/802/441 980/898/441 859/803/441 +f 960/899/482 981/900/482 966/880/482 +f 983/901/483 821/881/483 820/902/483 +f 984/903/441 822/772/441 963/878/441 +f 985/904/443 951/868/443 961/876/443 +f 983/905/484 958/906/484 957/872/484 +f 989/907/443 953/869/443 988/908/443 +f 986/909/443 909/866/443 951/868/443 +f 991/910/485 909/911/485 990/912/485 +f 992/913/441 856/801/441 991/914/441 +f 808/762/486 991/914/486 809/845/486 +f 809/915/487 990/912/487 816/916/487 +f 817/917/488 990/918/488 986/909/488 +f 837/784/489 988/908/489 832/919/489 +f 833/781/490 983/905/490 905/920/490 +f 836/921/488 986/909/488 985/904/488 +f 993/922/491 819/773/491 984/903/491 +f 905/848/492 820/902/492 906/923/492 +f 996/924/486 827/779/486 995/925/486 +f 994/926/493 820/771/493 819/773/493 +f 979/927/494 997/927/495 998/927/496 +f 970/927/497 999/927/497 1000/927/497 +f 969/927/498 1001/927/499 999/927/500 +f 974/928/501 981/929/501 975/930/501 +f 1002/931/502 997/932/502 1000/933/502 +f 1004/934/502 999/935/502 1001/936/502 +f 1006/937/503 1008/938/503 998/939/503 +f 980/927/504 1005/927/505 1004/927/506 +f 972/927/507 1007/927/508 1006/927/509 +f 973/927/510 1004/927/511 1001/927/512 +f 977/927/513 1003/927/514 1002/927/515 +f 971/927/516 1008/927/517 1007/927/512 +f 841/940/441 1010/941/441 854/798/441 +f 1011/942/443 1012/943/443 1013/944/443 +f 844/945/450 1009/946/450 841/947/450 +f 845/792/447 1012/948/447 846/949/447 +f 1009/950/518 867/951/519 1010/952/519 +f 1012/953/520 866/954/520 1013/955/520 +f 1009/950/521 863/956/522 862/957/523 +f 1015/958/524 849/959/524 1012/953/524 +f 892/960/456 1030/961/456 893/962/456 +f 1029/963/456 880/825/456 1030/961/456 +f 1031/964/456 1028/965/456 885/966/456 +f 1030/961/456 1032/967/456 1031/964/456 +f 1033/968/456 885/966/456 884/969/456 +f 893/962/456 1031/964/456 1033/968/456 +f 947/970/472 1037/971/472 883/972/472 +f 944/864/472 1037/971/472 1036/973/472 +f 939/974/472 1036/973/472 947/970/472 +f 936/862/472 1036/973/472 1039/975/472 +f 931/976/472 1039/975/472 939/974/472 +f 928/860/472 1039/975/472 1041/977/472 +f 921/978/472 1041/977/472 931/976/472 +f 914/857/472 1041/977/472 1043/979/472 +f 920/980/471 1043/979/471 921/978/471 +f 1045/981/471 914/857/471 1043/979/471 +f 883/972/457 1033/982/457 884/983/457 +f 890/830/457 1033/982/457 1037/971/457 +f 1032/967/456 888/984/456 1028/965/456 +f 880/825/456 889/985/456 1032/967/456 +f 877/986/525 1026/987/525 912/988/525 +f 825/989/441 919/990/441 826/991/441 +f 877/820/526 924/992/526 923/993/526 +f 916/994/527 924/992/527 826/991/527 +f 834/782/528 1047/995/529 1046/996/530 +f 994/926/531 907/997/531 906/998/531 +f 904/850/465 908/999/465 1047/1000/465 +f 810/763/462 1050/1001/462 1049/1002/462 +f 816/768/461 1051/1003/461 899/1004/461 +f 1051/1003/460 896/1005/460 899/1004/460 +f 900/837/459 1052/1006/459 1050/1001/459 +f 894/833/532 902/1007/532 1052/1008/532 +f 1053/1009/441 994/926/441 993/922/441 +f 1054/1010/441 996/924/441 995/925/441 +f 835/783/443 1057/1011/443 1056/1012/443 +f 1058/1013/443 834/782/443 1046/996/443 +f 903/843/443 818/769/443 1059/1014/443 +f 807/764/441 1049/1002/441 1060/1015/441 +f 1060/1015/441 824/774/441 823/776/441 +f 1061/1016/533 1063/1017/533 1064/1018/533 +f 1011/942/443 1046/996/443 846/1019/443 +f 1056/1012/443 844/1020/443 843/1021/443 +f 1052/1008/455 814/1022/455 813/1023/455 +f 1050/1001/459 813/1024/459 812/1025/459 +f 1049/1002/534 812/1025/534 824/774/534 +f 1047/1000/465 848/794/465 847/793/465 +f 1046/996/535 847/1026/536 846/1019/536 +f 1048/1027/537 908/852/538 907/997/537 +f 815/770/461 901/840/461 1051/1003/461 +f 1051/1003/460 902/842/460 897/1028/460 +f 853/800/441 1048/1027/441 1053/1009/441 +f 807/764/441 839/788/441 1054/1010/441 +f 1059/1014/443 843/1021/443 876/1029/443 +f 818/769/443 1056/1012/443 1059/1014/443 +f 807/764/441 995/925/441 808/762/441 +f 982/927/497 1002/927/497 1005/927/497 +f 1005/1030/502 1000/933/502 999/935/502 +f 978/927/539 1000/927/540 997/927/541 +f 995/925/486 992/913/486 808/762/486 +f 837/784/488 985/904/488 989/907/488 +f 989/907/443 961/876/443 954/1031/443 +f 968/885/441 982/1032/441 858/802/441 +f 955/870/443 970/887/443 978/1033/443 +f 857/1034/448 968/885/448 858/802/448 +f 961/876/473 955/870/473 954/1031/473 +f 876/821/445 840/791/445 823/819/445 +f 1060/1015/441 840/786/441 839/788/441 +f 818/769/443 836/921/443 835/783/443 +f 827/779/441 857/1034/441 992/913/441 +f 844/1020/443 1058/1013/443 1011/942/443 +f 1057/1011/443 831/780/443 1058/1013/443 +f 1055/1035/441 993/922/441 996/924/441 +f 1014/1036/542 866/954/543 863/956/544 +f 1015/958/545 867/951/545 850/1037/545 +f 844/1020/443 1013/944/443 1014/1038/443 +f 854/798/441 1015/1039/441 845/1040/441 +f 976/927/546 1006/927/506 1003/927/547 +f 1003/1041/503 998/939/503 997/932/503 +f 974/927/548 998/927/549 1008/927/550 +f 996/924/491 984/903/491 828/777/491 +f 832/919/489 987/1042/489 833/781/489 +f 988/908/443 958/906/443 987/1042/443 +f 828/777/441 963/878/441 829/1043/441 +f 956/871/443 974/1044/443 959/873/443 +f 967/884/441 972/889/441 976/1045/441 +f 963/878/476 967/884/476 829/1043/476 +f 958/906/474 956/871/474 959/873/474 +f 867/815/441 851/1046/441 850/1047/441 +f 863/1048/443 861/812/443 864/1049/443 +f 864/823/449 860/806/449 865/1050/449 +f 841/940/441 853/800/441 842/787/441 +f 838/785/443 832/919/443 831/780/443 +f 873/1051/551 1066/1052/551 874/817/551 +f 1064/1018/552 1067/1053/552 1068/1054/552 +f 1070/1055/553 1072/1056/553 1069/1057/553 +f 1074/1058/553 1076/1059/553 1073/1060/553 +f 1069/1057/553 1078/1061/553 1077/1062/553 +f 1079/1063/552 1068/1054/552 1080/1064/552 +f 1072/1065/455 1082/1066/455 1078/1067/455 +f 1083/1068/443 1085/1069/443 1086/1070/443 +f 1074/1071/445 1089/1072/445 1087/1073/445 +f 1064/1074/554 1084/1075/554 1061/1076/554 +f 873/1077/555 1086/1078/555 1079/1079/555 +f 1061/1080/556 1091/1081/556 1092/1082/556 +f 872/1083/557 1090/1084/557 873/1085/557 +f 1094/1086/558 1084/1087/558 1083/1068/558 +f 1096/1088/559 1062/1089/560 1061/1016/560 +f 1087/1090/561 875/818/562 1098/1091/561 +f 1087/1090/563 1075/1092/563 1074/1058/563 +f 1071/1093/564 1096/1088/565 1072/1056/564 +f 1081/1094/443 1094/1086/443 1082/1095/443 +f 1096/1096/566 1081/1097/566 1072/1098/566 +f 1093/1099/555 1101/1100/555 1099/1101/555 +f 1088/1102/443 1094/1086/443 1089/1103/443 +f 1093/1099/555 1102/1104/555 1083/1105/555 +f 1079/1079/555 1085/1106/555 1064/1107/555 +f 1093/1108/443 1086/1070/443 1090/1109/443 +f 1078/1067/455 1088/1110/455 1074/1111/455 +f 1079/1063/552 1065/1112/552 873/1051/552 +f 1073/1060/553 1078/1061/553 1074/1058/553 +f 1104/1113/443 1099/1114/443 1103/1115/443 +f 1094/1116/455 1103/1117/455 1089/1118/455 +f 1089/1118/455 1106/1119/455 1087/1120/455 +f 1083/1121/502 1104/1122/502 1094/1123/502 +f 1106/1124/445 1100/1125/445 1107/1126/445 +f 1105/1127/445 1101/1121/445 1100/1125/445 +f 1103/1117/455 1105/1128/455 1089/1118/455 +f 872/1129/441 1106/1130/441 1107/1131/441 +f 872/1132/555 1100/1133/555 1093/1099/555 +f 1099/1114/443 1108/1134/443 1103/1115/443 +f 1095/1135/567 1091/1136/567 1084/1087/567 +f 1096/1137/568 1109/1138/568 1095/1139/568 +f 1092/1140/569 1109/1141/569 1110/1142/569 +f 1061/1143/570 1110/1144/570 1096/1145/570 +f 1112/1146/571 1114/1147/571 1111/1148/571 +f 1143/1149/441 1148/1150/441 1141/1151/441 +f 1114/1152/572 1140/1153/572 1139/1154/572 +f 1158/1155/443 1160/1156/443 1155/1157/443 +f 1111/1158/573 1161/1159/573 1112/1160/573 +f 1190/1161/574 1192/1162/574 1189/1163/574 +f 1191/1164/575 1194/1165/575 1192/1162/575 +f 1193/1166/576 1196/1167/576 1194/1168/576 +f 1195/1169/577 1198/1170/577 1196/1167/577 +f 1197/1171/578 1200/1172/578 1198/1173/578 +f 1199/1174/579 1202/1175/579 1200/1172/579 +f 1201/1176/580 1204/1177/580 1202/1175/580 +f 1203/1178/581 1206/1179/581 1204/1180/581 +f 1205/1181/582 1208/1182/582 1206/1179/582 +f 1207/1183/583 1210/1184/583 1208/1182/583 +f 1209/1185/584 1212/1186/584 1210/1184/584 +f 1211/1187/585 1189/1163/585 1212/1188/585 +f 1200/1189/586 1216/1190/586 1213/1191/586 +f 1196/1192/587 1220/1193/587 1221/1194/587 +f 1224/1195/588 1222/1196/588 1210/1197/588 +f 1225/1198/589 1206/1199/589 1226/1200/589 +f 1180/1201/590 1182/1202/590 1205/1203/590 +f 1174/1204/591 1176/1205/591 1199/1206/591 +f 1227/1207/592 1172/1208/592 1195/1209/592 +f 1209/1210/593 1188/1211/593 1211/1212/593 +f 1264/1213/594 1266/1214/441 1263/1215/441 +f 1265/1216/455 1268/1217/455 1266/1218/455 +f 1267/1219/443 1270/1220/443 1268/1221/443 +f 1272/1222/555 1263/1223/555 1271/1224/555 +f 1268/1225/445 1273/1226/445 1271/1227/445 +f 1274/1228/595 1276/1229/595 1277/1230/595 +f 1278/927/596 1280/927/527 1281/927/527 +f 1282/1231/595 1276/1229/595 1275/1228/595 +f 1269/1232/597 1286/1233/597 1284/1234/597 +f 1267/1235/598 1282/1236/598 1275/1237/598 +f 1283/1238/599 1287/1239/599 1288/1240/599 +f 1292/1241/600 1294/1242/600 1291/1243/600 +f 1277/1244/443 1297/1245/443 1295/1246/443 +f 1278/1247/601 1299/1248/601 1298/1249/601 +f 1282/1231/527 1299/1250/527 1298/1231/527 +f 1285/927/596 1295/927/527 1292/927/527 +f 1300/1251/602 1277/1244/602 1295/1246/602 +f 1286/1233/603 1292/1241/603 1291/1243/603 +f 1301/1252/443 1302/1253/443 1303/1254/443 +f 1304/927/604 1302/927/512 1305/927/605 +f 1287/1255/604 1307/1256/527 1308/1256/527 +f 1281/927/596 1309/927/527 1310/927/527 +f 1276/1229/599 1296/1257/599 1277/1230/599 +f 1299/1248/606 1310/1258/606 1306/1259/606 +f 1287/1239/599 1299/1250/599 1283/1238/599 +f 1292/927/596 1297/927/527 1293/927/527 +f 1308/1260/502 1313/1261/502 1311/1262/502 +f 1314/927/607 1302/927/608 1301/927/609 +f 1312/927/610 1307/927/611 1315/927/612 +f 1316/1263/613 1305/1264/613 1317/1265/613 +f 1287/1239/614 1311/1266/614 1288/1240/614 +f 1318/927/604 1312/927/512 1315/927/605 +f 1296/1257/604 1314/1267/527 1301/1267/527 +f 1318/1268/441 1315/1269/441 1307/1270/441 +f 1306/1259/441 1321/1271/441 1299/1248/441 +f 1290/1272/443 1322/1273/443 1323/1274/443 +f 1325/1275/441 1327/1276/441 1324/1277/441 +f 1290/1278/615 1328/1279/615 1329/1280/615 +f 1331/1281/443 1333/1282/443 1334/1283/443 +f 1307/1270/441 1335/1284/441 1336/1285/441 +f 1296/1286/443 1334/1283/443 1301/1252/443 +f 1324/1277/441 1287/1287/441 1308/1288/441 +f 1328/1289/527 1338/1290/596 1339/1289/527 +f 1326/927/527 1341/927/527 1327/927/527 +f 1343/1291/616 1329/1292/616 1342/1293/616 +f 1335/1294/617 1345/1295/617 1344/1296/617 +f 1299/1297/618 1322/1298/618 1276/1299/618 +f 1321/1300/619 1323/1301/619 1322/1302/619 +f 1306/1303/620 1337/1304/620 1320/1305/620 +f 1296/988/621 1323/1306/621 1331/1307/621 +f 1340/927/527 1347/927/527 1341/927/527 +f 1331/927/596 1349/927/527 1332/927/527 +f 1306/1308/622 1350/1309/622 1351/1310/622 +f 1346/1311/623 1353/1312/623 1347/1313/623 +f 1354/1314/624 1349/1315/624 1348/1281/624 +f 1267/1219/625 1356/1316/625 1357/1317/625 +f 1265/1318/626 1359/1319/626 1266/1214/626 +f 1356/1316/627 1361/1320/627 1357/1317/627 +f 1362/1321/628 1359/1319/628 1358/1322/628 +f 1360/1323/629 1365/1324/629 1361/1320/629 +f 1362/1321/630 1367/1325/630 1363/1326/630 +f 1360/1323/443 1369/1327/443 1364/1328/443 +f 1367/1325/441 1371/1329/441 1363/1326/441 +f 1353/1312/631 1366/1330/631 1362/1321/631 +f 1354/1314/632 1365/1324/632 1355/1331/632 +f 1352/1332/633 1349/1333/633 1355/1334/633 +f 1365/1335/634 1352/1332/634 1355/1334/634 +f 1366/1336/455 1364/1337/455 1367/1338/455 +f 1369/1339/455 1367/1338/455 1364/1337/455 +f 1369/1340/635 1371/1341/635 1370/1342/635 +f 1368/1343/555 1363/1344/555 1371/1345/555 +f 1356/1346/445 1363/1347/445 1360/1348/445 +f 1268/1217/636 1359/1349/636 1356/1350/636 +f 1264/1213/637 1298/1249/638 1265/1318/639 +f 1269/1351/640 1274/1352/640 1300/1251/640 +f 1347/1353/641 1354/1354/641 1348/1355/641 +f 1354/1356/642 1362/1357/642 1361/1358/642 +f 1351/1359/643 1339/1360/643 1338/1361/643 +f 1361/1358/644 1358/1362/644 1357/1363/644 +f 1343/1364/617 1314/1365/617 1330/1366/617 +f 1310/927/604 1319/927/527 1318/927/527 +f 1336/1367/645 1344/1368/645 1373/1369/645 +f 1294/1242/646 1304/1370/646 1316/1263/646 +f 1290/1371/614 1374/1372/614 1314/1267/614 +f 1294/1242/647 1376/1373/647 1375/1374/647 +f 1376/1373/648 1312/1375/648 1319/1376/648 +f 1316/1377/649 1373/1378/649 1376/1364/649 +f 1374/1379/502 1305/1262/502 1314/1380/502 +f 1375/1374/650 1319/1376/650 1309/1381/650 +f 1377/1382/603 1280/1383/603 1279/1384/603 +f 1377/1382/603 1291/1243/603 1378/1385/603 +f 1378/1385/600 1309/1381/600 1280/1383/600 +f 1291/1243/600 1375/1374/600 1378/1385/600 +f 1272/1222/651 1279/1384/651 1264/1386/651 +f 1284/1234/651 1377/1382/651 1272/1222/651 +f 1269/1232/555 1273/1387/555 1270/1388/555 +f 1284/1234/555 1271/1224/555 1273/1387/555 +f 1373/1369/652 1380/1389/652 1379/1390/652 +f 1337/1391/652 1373/1369/652 1379/1390/652 +f 1342/1293/652 1328/1392/652 1380/1389/652 +f 1293/927/604 1303/927/527 1304/927/527 +f 1373/1393/443 1311/1394/443 1288/1395/443 +f 1311/1394/443 1376/1396/443 1288/1395/443 +f 1374/1397/441 1316/1398/441 1317/1399/441 +f 1374/1397/441 1342/1400/441 1289/1401/441 +f 1381/1402/443 1287/1403/443 1283/1404/443 +f 1383/1405/443 1296/1286/443 1277/1244/443 +f 1386/1406/455 1388/1407/455 1385/1408/455 +f 1390/1409/443 1392/1410/443 1389/1411/443 +f 1393/1412/502 1395/1413/502 1389/1414/502 +f 1396/1415/441 1398/1416/441 1399/1417/441 +f 1390/1418/445 1402/1419/445 1400/1420/445 +f 1403/1421/653 1396/1422/653 1404/1423/653 +f 1399/1424/502 1407/1425/502 1405/1426/502 +f 1401/1427/445 1409/1428/445 1402/1419/445 +f 1396/1422/502 1410/1429/502 1404/1423/502 +f 1393/1430/443 1408/1431/443 1401/1432/443 +f 1413/1433/555 1414/1434/555 1412/1435/555 +f 1416/1436/555 1418/1437/555 1415/1438/555 +f 1419/1439/555 1421/1440/555 1416/1436/555 +f 1408/1441/445 1422/1442/445 1409/1428/445 +f 1423/1443/441 1424/1444/441 1425/1445/441 +f 1399/1392/455 1427/1446/455 1410/1447/455 +f 1411/1448/443 1417/1449/443 1416/1450/443 +f 1399/1451/441 1429/1452/441 1426/1453/441 +f 1430/1454/654 1424/1455/654 1431/1456/654 +f 1425/1445/655 1433/1457/655 1423/1443/655 +f 1434/1458/443 1435/1459/443 1436/1460/443 +f 1438/1461/656 1440/1462/656 1437/1463/656 +f 1427/1464/657 1441/1465/657 1442/1466/657 +f 1435/1459/658 1443/1467/658 1444/1468/658 +f 1445/1469/659 1438/1461/659 1437/1463/659 +f 1446/1470/443 1448/1471/443 1449/1472/443 +f 1433/1457/660 1450/1473/660 1451/1474/660 +f 1441/1465/661 1453/1475/661 1442/1466/661 +f 1443/1467/662 1455/1476/662 1444/1468/662 +f 1457/1477/663 1459/1478/663 1456/1479/663 +f 1461/1480/441 1463/1481/441 1460/1482/441 +f 1463/1481/441 1457/1483/441 1464/1484/441 +f 1465/1485/441 1460/1482/441 1452/1486/441 +f 1452/1487/664 1466/1488/664 1453/1489/664 +f 1462/1490/665 1468/1491/665 1467/1492/665 +f 1460/1493/666 1469/1494/666 1466/1488/666 +f 1470/1495/441 1472/1496/441 1473/1497/441 +f 1475/1498/667 1477/1499/667 1474/1500/667 +f 1479/1501/443 1481/1502/443 1478/1503/443 +f 1477/1499/668 1481/1504/668 1482/1505/668 +f 1483/1506/443 1479/1501/443 1478/1503/443 +f 1486/1507/669 1474/1508/669 1485/1509/669 +f 1488/1510/441 1470/1495/441 1487/1511/441 +f 1490/1512/670 1492/1513/670 1489/1514/670 +f 1494/1515/671 1485/1516/671 1493/1517/671 +f 1495/1518/443 1484/1519/443 1483/1506/443 +f 1465/1520/672 1498/1521/672 1496/1522/672 +f 1497/1523/673 1489/1514/673 1498/1521/673 +f 1500/1524/441 1487/1511/441 1499/1525/441 +f 1484/1519/443 1447/1526/443 1446/1470/443 +f 1450/1473/441 1499/1525/441 1451/1474/441 +f 1439/1527/674 1493/1528/674 1440/1462/674 +f 1454/1529/443 1495/1518/443 1455/1476/443 +f 1462/1530/675 1446/1531/675 1449/1532/675 +f 1386/1533/445 1503/1534/445 1501/1535/445 +f 1464/1536/676 1456/1479/676 1403/1537/676 +f 1389/1414/677 1505/1538/677 1504/1539/677 +f 1386/1540/441 1506/1541/441 1502/1542/441 +f 1508/1543/678 1510/1544/678 1507/1545/678 +f 1511/1546/443 1468/1547/443 1449/1472/443 +f 1502/1542/441 1513/1548/441 1514/1549/441 +f 1391/1550/443 1509/1551/443 1392/1410/443 +f 1502/1552/679 1515/1553/679 1503/1534/679 +f 1484/1554/680 1518/1555/680 1516/1556/680 +f 1465/1485/441 1520/1557/441 1461/1480/441 +f 1459/1478/681 1521/1558/681 1522/1559/681 +f 1517/1560/682 1524/1561/682 1518/1562/682 +f 1523/1563/683 1526/1564/683 1524/1565/683 +f 1457/1483/441 1467/1566/441 1458/1567/441 +f 1448/1471/443 1511/1546/443 1449/1472/443 +f 1463/1568/684 1403/1421/684 1469/1569/684 +f 1484/1519/443 1523/1570/443 1517/1571/443 +f 1528/1572/685 1530/1573/686 1508/1543/687 +f 1525/1574/688 1528/1572/688 1526/1575/688 +f 1458/1567/441 1531/1576/441 1521/1577/441 +f 1468/1547/443 1525/1578/443 1523/1570/443 +f 1512/1579/443 1529/1580/443 1468/1547/443 +f 1467/1566/441 1532/1581/441 1531/1576/441 +f 1533/1582/688 1531/1583/688 1532/1584/688 +f 1526/1575/688 1534/1585/688 1533/1582/688 +f 1534/1585/689 1521/1586/690 1531/1583/690 +f 1528/1572/691 1522/1587/692 1534/1585/693 +f 1535/1588/684 1527/1589/684 1448/1590/684 +f 1469/1569/684 1504/1539/684 1535/1588/684 +f 1536/1591/683 1532/1592/683 1520/1593/683 +f 1524/1565/683 1533/1594/683 1536/1591/683 +f 1537/1595/682 1520/1596/682 1519/1597/682 +f 1518/1562/682 1536/1598/682 1537/1595/682 +f 1538/1599/694 1530/1600/694 1512/1601/694 +f 1459/1478/695 1508/1602/695 1538/1599/695 +f 1496/1603/665 1519/1604/665 1465/1605/665 +f 1516/1556/696 1537/1606/696 1496/1603/696 +f 1539/1607/679 1510/1608/679 1391/1609/679 +f 1503/1534/679 1507/1610/679 1539/1607/679 +f 1513/1611/678 1515/1612/678 1514/1613/678 +f 1522/1587/678 1507/1545/678 1515/1612/678 +f 1385/1614/502 1540/1615/502 1506/1616/502 +f 1504/1539/697 1540/1615/697 1403/1421/697 +f 1504/1617/676 1511/1618/676 1527/1619/676 +f 1403/1537/676 1541/1620/676 1504/1617/676 +f 1400/1420/445 1391/1609/445 1390/1418/445 +f 1501/1535/445 1539/1607/445 1400/1420/445 +f 1542/1621/674 1500/1622/674 1450/1623/674 +f 1516/1624/698 1479/1625/698 1484/1626/698 +f 1498/1521/699 1544/1627/699 1516/1624/699 +f 1516/1624/700 1496/1522/700 1498/1521/700 +f 1543/1628/701 1488/1629/701 1500/1630/701 +f 1544/1627/702 1480/1631/702 1479/1625/702 +f 1489/1514/702 1546/1632/702 1544/1627/702 +f 1545/1633/669 1471/1634/669 1488/1508/669 +f 1472/1635/668 1549/1636/668 1473/1637/668 +f 1547/1638/667 1472/1635/667 1471/1639/667 +f 1550/1640/666 1448/1641/666 1447/1642/666 +f 1466/1488/666 1535/1643/666 1550/1640/666 +f 1551/1644/664 1447/1642/664 1454/1645/664 +f 1453/1489/664 1550/1640/664 1551/1644/664 +f 1541/1620/663 1512/1601/663 1511/1618/663 +f 1456/1479/663 1538/1599/663 1541/1620/663 +f 1443/1646/661 1551/1647/661 1454/1648/661 +f 1442/1466/661 1551/1647/661 1552/1649/661 +f 1430/1454/659 1432/1650/659 1425/1651/659 +f 1445/1469/659 1553/1652/659 1430/1454/659 +f 1554/1653/657 1443/1646/657 1428/1654/657 +f 1427/1464/657 1552/1649/657 1554/1653/657 +f 1432/1650/656 1542/1621/656 1450/1623/656 +f 1556/1655/703 1445/1469/703 1555/1656/703 +f 1445/1469/704 1434/1657/704 1436/1658/704 +f 1430/1454/704 1557/1659/704 1445/1469/704 +f 1558/1660/455 1428/1661/455 1411/1662/455 +f 1410/1447/455 1554/1663/455 1558/1660/455 +f 1559/1664/445 1414/1665/445 1398/1666/445 +f 1409/1428/445 1412/1667/445 1559/1664/445 +f 1413/1433/555 1429/1668/555 1405/1669/555 +f 1415/1438/555 1560/1670/555 1413/1433/555 +f 1416/1436/555 1422/1671/555 1419/1439/555 +f 1415/1438/555 1412/1435/555 1422/1671/555 +f 1561/1672/502 1411/1673/502 1393/1412/502 +f 1404/1423/502 1558/1674/502 1561/1672/502 +f 1562/1675/445 1398/1666/445 1397/1676/445 +f 1402/1419/445 1559/1664/445 1562/1675/445 +f 1504/1539/705 1393/1412/705 1389/1414/705 +f 1403/1421/653 1561/1672/653 1504/1539/653 +f 1501/1535/445 1397/1676/445 1386/1533/445 +f 1400/1420/445 1562/1675/445 1501/1535/445 +f 1418/1437/706 1431/1677/706 1560/1670/706 +f 1429/1668/706 1431/1677/706 1424/1678/706 +f 1549/1636/668 1546/1679/668 1492/1680/668 +f 1473/1637/668 1492/1680/668 1491/1681/668 +f 1439/1682/443 1495/1518/443 1494/1683/443 +f 1452/1486/441 1499/1525/441 1465/1485/441 +f 1499/1525/441 1497/1684/441 1465/1485/441 +f 1494/1683/443 1483/1506/443 1486/1685/443 +f 1487/1511/441 1490/1686/441 1497/1684/441 +f 1486/1685/443 1478/1503/443 1475/1687/443 +f 1482/1505/668 1480/1688/668 1546/1679/668 +f 1478/1503/443 1476/1689/443 1475/1687/443 +f 1490/1686/441 1473/1497/441 1491/1690/441 +f 1444/1468/662 1439/1682/662 1438/1691/662 +f 1441/1692/660 1451/1474/660 1452/1486/660 +f 1436/1460/658 1444/1468/658 1438/1691/658 +f 1417/1693/706 1557/1694/706 1418/1437/706 +f 1428/1695/443 1434/1458/443 1417/1449/443 +f 1423/1443/655 1441/1692/655 1426/1453/655 +f 1426/1453/441 1424/1444/441 1423/1443/441 +f 1563/1696/707 1548/1697/707 1547/1698/707 +f 1493/1699/441 1474/1700/441 1482/1701/441 +f 1395/1702/443 1565/1703/443 1564/1704/443 +f 1389/1705/455 1564/1706/455 1390/1707/455 +f 1401/1708/555 1394/1709/555 1393/1710/555 +f 1390/1418/445 1565/1711/445 1401/1427/445 +f 1567/1712/441 1387/1713/441 1566/1714/441 +f 1396/1715/555 1566/1716/555 1397/1717/555 +f 1385/1614/502 1567/1718/502 1396/1422/502 +f 1397/1676/445 1387/1719/445 1386/1533/445 +f 1568/1720/441 1407/1721/441 1406/1722/441 +f 1398/1723/455 1406/1724/455 1399/1725/455 +f 1414/1665/445 1568/1726/445 1398/1666/445 +f 1405/1669/555 1569/957/555 1414/1434/555 +f 1570/1727/443 1421/1728/443 1420/1729/443 +f 1416/1730/502 1571/1731/502 1411/1732/502 +f 1411/1733/455 1570/1734/455 1408/1735/455 +f 1408/1441/445 1420/1736/445 1419/1737/445 +f 1468/1738/666 1520/1739/666 1467/1740/666 +f 1461/1741/663 1523/1742/663 1446/1743/663 +f 1572/1744/445 1573/1745/445 1574/1746/445 +f 1575/1747/502 1576/1748/502 1577/1749/502 +f 1572/1744/445 1574/1746/445 1578/1750/445 +f 1575/1747/502 1579/1751/502 1576/1748/502 +f 1572/1744/445 1578/1750/445 1580/1752/445 +f 1575/1747/502 1581/1753/502 1579/1751/502 +f 1572/1744/445 1580/1752/445 1582/1754/445 +f 1575/1747/502 1583/1755/502 1581/1753/502 +f 1572/1744/445 1582/1754/445 1584/1756/445 +f 1575/1747/502 1585/1757/502 1583/1755/502 +f 1572/1744/445 1584/1756/445 1586/1758/445 +f 1575/1747/502 1587/1759/502 1585/1757/502 +f 1572/1744/445 1586/1758/445 1588/1760/445 +f 1575/1747/502 1589/1761/502 1587/1759/502 +f 1572/1744/445 1588/1760/445 1573/1745/445 +f 1575/1747/502 1577/1749/502 1589/1761/502 +f 1563/1762/708 1592/1763/708 1590/1764/708 +f 1482/1765/703 1563/1766/703 1590/1767/703 +f 1591/1768/709 1594/1769/709 1592/1770/709 +f 1563/1771/710 1593/1772/710 1591/1773/710 +f 1555/1774/711 1592/1775/711 1594/1776/711 +f 1555/1777/712 1593/1778/712 1556/1779/712 +f 1595/1780/713 1596/1781/713 1597/1782/713 +f 1598/1783/714 1596/1784/714 1594/1785/714 +f 1599/1786/715 1601/1787/715 1598/1788/715 +f 1601/1789/716 1602/1790/716 1603/1791/716 +f 1602/1790/717 1605/1792/717 1603/1791/717 +f 1605/1793/718 1606/1794/718 1607/1795/718 +f 1607/1796/719 1608/1797/719 1606/1798/719 +f 1595/1780/720 1608/1799/720 1593/1800/720 +f 1597/1801/721 1594/1802/721 1595/1803/721 +f 1594/1776/722 1599/1786/722 1598/1788/722 +f 1606/1794/723 1593/1772/723 1607/1795/723 +f 1591/1804/724 1595/1803/724 1593/1805/724 +f 1597/1806/725 1596/1807/725 1592/1808/725 +f 1596/1784/726 1599/1809/726 1592/1143/726 +f 1606/1798/727 1608/1797/727 1591/1810/727 +f 1608/1811/728 1597/1812/728 1591/1813/728 +f 1649/1814/729 1647/1815/729 1642/1816/729 +f 1659/1817/730 1660/1818/730 1656/1819/730 +f 1662/1820/731 1641/1821/731 1663/1822/731 +f 1664/1823/732 1654/1824/732 1662/1820/732 +f 1650/1825/733 1664/1823/733 1665/1826/733 +f 1648/1827/734 1665/1826/734 1666/1828/734 +f 1646/1829/735 1666/1828/735 1667/1830/735 +f 1668/1831/736 1646/1829/736 1667/1830/736 +f 1663/1822/737 1644/1832/737 1668/1831/737 +f 1683/1833/738 1685/1834/738 1686/1835/738 +f 1687/1836/738 1689/1837/738 1690/1838/738 +f 1691/1839/738 1693/1840/738 1694/1841/738 +f 1696/1842/739 1698/1843/739 1695/1844/739 +f 1700/1845/739 1702/1846/739 1699/1847/739 +f 1704/1848/739 1706/1849/739 1703/1850/739 +f 1708/1851/739 1699/1847/739 1707/1852/739 +f 1701/1853/740 1683/1833/740 1704/1848/740 +f 1694/1841/738 1709/1854/738 1710/1855/738 +f 1697/1856/739 1707/1852/739 1698/1843/739 +f 1697/1856/740 1710/1855/740 1708/1851/740 +f 1708/1851/740 1687/1836/740 1700/1845/740 +f 1696/1842/740 1694/1841/740 1697/1856/740 +f 1700/1845/740 1690/1838/740 1701/1853/740 +f 1704/1848/740 1686/1835/740 1705/1857/740 +f 1701/1853/739 1703/1850/739 1702/1846/739 +f 1690/1838/738 1684/1858/738 1683/1833/738 +f 1712/1859/740 1696/1842/740 1711/1860/740 +f 1711/1860/739 1695/1844/739 1713/1861/739 +f 1712/1859/738 1692/1862/738 1691/1839/738 +f 1702/1846/741 1716/1863/741 1715/1864/741 +f 1698/1843/739 1718/1865/739 1717/1866/739 +f 1707/1852/741 1719/1867/741 1718/1865/741 +f 1699/1847/741 1715/1864/741 1719/1867/741 +f 1695/1844/739 1717/1866/739 1720/1868/739 +f 1721/1869/742 1723/1870/742 1724/1871/742 +f 1725/1872/742 1727/1873/742 1728/1874/742 +f 1729/1875/742 1731/1876/742 1732/1877/742 +f 1734/1878/743 1736/1879/743 1733/1880/743 +f 1738/1881/743 1740/1882/743 1737/1883/743 +f 1742/1884/743 1744/1885/743 1741/1886/743 +f 1737/1883/743 1746/1887/743 1745/1888/743 +f 1744/1885/744 1726/1889/744 1739/1890/744 +f 1730/1891/742 1748/1892/742 1731/1876/742 +f 1745/1888/743 1735/1893/743 1734/1878/743 +f 1746/1887/744 1730/1891/744 1735/1893/744 +f 1740/1882/744 1747/1894/744 1746/1887/744 +f 1736/1879/744 1730/1891/744 1729/1875/744 +f 1739/1890/744 1725/1872/744 1740/1882/744 +f 1743/1895/744 1721/1869/744 1744/1885/744 +f 1741/1886/743 1739/1890/743 1738/1881/743 +f 1726/1889/742 1724/1871/742 1727/1873/742 +f 1749/1896/744 1729/1875/744 1750/1897/744 +f 1733/1880/743 1749/1896/743 1751/1898/743 +f 1750/1897/742 1732/1877/742 1752/1899/742 +f 1753/1900/743 1741/1886/743 1738/1881/743 +f 1756/1901/745 1734/1878/745 1755/1902/745 +f 1757/1903/745 1745/1888/745 1756/1901/745 +f 1757/1903/745 1738/1881/745 1737/1883/745 +f 1755/1902/745 1733/1880/745 1758/1904/745 +f 1714/1905/746 1750/1906/746 1752/1907/746 +f 1685/1908/747 1724/1909/747 1723/1910/747 +f 1715/1911/748 1754/1912/748 1753/1913/748 +f 1689/1914/749 1728/1915/749 1727/1916/749 +f 1717/1917/750 1756/1918/750 1755/1919/750 +f 1693/1920/749 1732/1921/749 1731/1922/749 +f 1713/1923/751 1749/1924/751 1711/1925/751 +f 1705/1926/752 1722/1927/752 1743/1928/752 +f 1684/1929/749 1727/1916/749 1724/1909/749 +f 1719/1930/750 1753/1913/750 1757/1931/750 +f 1718/1932/748 1757/1931/748 1756/1918/748 +f 1709/1933/749 1731/1922/749 1748/1934/749 +f 1711/1925/753 1750/1906/753 1712/1935/753 +f 1685/1936/754 1722/1927/754 1686/1937/754 +f 1688/1938/755 1725/1939/755 1728/1940/755 +f 1709/1941/756 1747/1942/756 1710/1943/756 +f 1687/1944/757 1747/1945/757 1725/1946/757 +f 1751/1939/758 1720/1947/758 1758/1948/758 +f 1720/1947/750 1755/1919/750 1758/1948/750 +f 1692/1949/759 1752/1950/759 1732/1921/759 +f 1706/1951/752 1743/1928/752 1742/1952/752 +f 1716/1953/760 1742/1952/760 1754/1954/760 +f 1716/1863/741 1703/1850/741 1706/1849/741 +f 1754/1955/745 1742/1884/745 1741/1886/745 +f 1695/1844/739 1720/1868/739 1713/1861/739 +f 1758/1904/745 1733/1880/745 1751/1898/745 +f 1772/1956/555 1759/1957/555 1762/1958/555 +f 1772/1956/555 1761/1959/555 1774/1960/555 +f 1775/1961/555 1769/1962/555 1768/1963/555 +f 1778/1964/555 1763/1965/555 1777/1966/555 +f 1779/1967/555 1763/1965/555 1767/1968/555 +f 1780/1969/761 1767/1968/761 1770/1970/761 +f 1780/1969/555 1771/1971/555 1781/1972/555 +f 1782/1973/555 1765/1974/555 1760/1975/555 +f 1782/1973/555 1759/1957/555 1773/1976/555 +f 1783/1977/753 1766/1978/753 1765/1974/753 +f 1784/1979/555 1771/1971/555 1766/1978/555 +f 1778/1964/762 1768/1963/762 1764/1980/762 +f 1774/1960/555 1769/1962/555 1776/1981/555 +f 1814/1982/555 1812/1983/555 1820/1984/555 +f 808/762/441 809/845/441 810/763/441 +f 811/765/442 812/1985/442 813/766/442 +f 816/768/443 817/917/443 818/769/443 +f 820/771/444 821/882/444 822/772/444 +f 824/774/441 825/1986/441 826/775/441 +f 828/777/441 829/1043/441 830/778/441 +f 831/780/443 832/919/443 833/781/443 +f 835/783/443 836/921/443 837/784/443 +f 840/786/441 841/940/441 842/787/441 +f 843/789/445 844/1987/445 841/790/445 +f 845/792/446 846/949/446 847/793/446 +f 850/795/447 851/1988/447 852/796/447 +f 854/798/441 845/1040/441 855/799/441 +f 856/801/448 857/1034/448 858/802/448 +f 861/804/449 852/1989/449 851/805/449 +f 863/807/450 864/1990/450 865/808/450 +f 866/810/443 849/1991/443 852/811/443 +f 862/813/441 865/1992/441 860/814/441 +f 872/816/763 873/1051/764 874/817/764 +f 823/819/454 826/991/454 877/820/454 +f 878/822/455 879/1993/455 825/823/455 +f 880/825/456 871/1994/456 870/826/456 +f 891/828/457 892/1995/457 893/829/457 +f 895/831/455 896/1996/455 897/832/455 +f 899/834/458 896/1997/458 895/835/458 +f 900/837/459 898/1998/459 895/838/459 +f 901/840/460 811/844/460 814/841/460 +f 903/843/461 878/1999/461 811/844/461 +f 809/845/462 898/1998/462 900/837/462 +f 809/846/463 816/2000/463 899/834/463 +f 824/824/464 812/2001/464 811/847/464 +f 905/848/465 906/923/465 907/849/465 +f 855/799/765 845/1040/766 848/851/766 +f 909/853/469 856/2002/469 859/795/469 +f 833/781/767 905/920/767 904/855/767 +f 912/856/471 913/859/471 914/857/471 +f 913/859/472 927/861/472 928/860/472 +f 927/861/472 935/863/472 936/862/472 +f 935/863/472 943/865/472 944/864/472 +f 943/865/472 891/828/472 890/830/472 +f 909/866/473 910/2003/473 952/867/473 +f 953/869/474 954/1031/474 955/870/474 +f 957/872/475 958/906/475 959/873/475 +f 951/868/473 952/867/473 962/875/473 +f 822/772/476 964/883/476 965/877/476 +f 957/879/477 960/899/477 966/880/477 +f 821/882/478 966/2004/478 964/883/478 +f 830/778/448 829/1043/448 967/884/448 +f 962/875/443 952/867/443 969/886/443 +f 965/877/441 964/883/441 971/888/441 +f 952/867/443 910/2003/443 973/890/443 +f 959/873/479 974/1044/479 975/891/479 +f 967/884/441 976/1045/441 977/892/441 +f 955/870/443 978/1033/443 979/893/443 +f 859/894/480 980/2005/480 973/895/480 +f 964/883/481 966/2004/481 981/897/481 +f 858/802/441 982/1032/441 980/898/441 +f 960/899/482 975/2006/482 981/900/482 +f 983/901/483 957/879/483 821/881/483 +f 984/903/441 819/773/441 822/772/441 +f 985/904/443 986/909/443 951/868/443 +f 983/905/484 987/1042/484 958/906/484 +f 989/907/443 954/1031/443 953/869/443 +f 986/909/443 990/918/443 909/866/443 +f 991/910/485 856/2007/485 909/911/485 +f 992/913/441 857/1034/441 856/801/441 +f 808/762/486 992/913/486 991/914/486 +f 809/915/487 991/910/487 990/912/487 +f 817/917/488 816/768/488 990/918/488 +f 837/784/489 989/907/489 988/908/489 +f 833/781/490 987/1042/490 983/905/490 +f 836/921/488 817/917/488 986/909/488 +f 993/922/491 994/926/491 819/773/491 +f 905/848/492 983/901/492 820/902/492 +f 996/924/486 828/777/486 827/779/486 +f 994/926/493 906/998/493 820/771/493 +f 979/927/768 978/927/769 997/927/770 +f 970/927/541 969/927/496 999/927/771 +f 969/927/772 973/927/773 1001/927/774 +f 974/928/501 971/2008/501 981/929/501 +f 1002/931/502 1003/1041/502 997/932/502 +f 1004/934/502 1005/1030/502 999/935/502 +f 1006/937/503 1007/2009/503 1008/938/503 +f 980/927/775 982/927/506 1005/927/776 +f 972/927/508 971/927/777 1007/927/778 +f 973/927/517 980/927/512 1004/927/516 +f 977/927/779 976/927/515 1003/927/780 +f 971/927/511 974/927/512 1008/927/510 +f 841/940/441 1009/2010/441 1010/941/441 +f 1011/942/443 846/1019/443 1012/943/443 +f 844/945/450 1014/2011/450 1009/946/450 +f 845/792/447 1015/2012/447 1012/948/447 +f 1009/950/781 862/957/782 867/951/783 +f 1012/953/784 849/959/784 866/954/784 +f 1009/950/785 1014/1036/786 863/956/787 +f 1015/958/524 850/1037/524 849/959/524 +f 892/960/456 1029/963/456 1030/961/456 +f 1029/963/456 871/1994/456 880/825/456 +f 1031/964/456 1032/967/456 1028/965/456 +f 1030/961/456 880/825/456 1032/967/456 +f 1033/968/456 1031/964/456 885/966/456 +f 893/962/456 1030/961/456 1031/964/456 +f 947/970/472 1036/973/472 1037/971/472 +f 944/864/472 890/830/472 1037/971/472 +f 939/974/472 1039/975/472 1036/973/472 +f 936/862/472 944/864/472 1036/973/472 +f 931/976/472 1041/977/472 1039/975/472 +f 928/860/472 936/862/472 1039/975/472 +f 921/978/472 1043/979/472 1041/977/472 +f 914/857/472 928/860/472 1041/977/472 +f 920/980/471 1045/981/471 1043/979/471 +f 1045/981/471 911/858/471 914/857/471 +f 883/972/457 1037/971/457 1033/982/457 +f 890/830/457 893/829/457 1033/982/457 +f 1032/967/456 889/985/456 888/984/456 +f 880/825/456 881/827/456 889/985/456 +f 877/986/441 879/2013/441 1026/987/441 +f 825/989/526 920/2014/526 919/990/526 +f 877/820/527 826/991/527 924/992/527 +f 923/993/443 879/2015/443 877/820/443 +f 826/991/788 919/990/788 1027/2016/788 +f 826/991/526 1027/2016/526 916/994/526 +f 834/782/789 904/855/789 1047/995/790 +f 994/926/791 1048/1027/791 907/997/791 +f 904/850/465 907/849/465 908/999/465 +f 810/763/462 900/837/462 1050/1001/462 +f 816/768/461 815/770/461 1051/1003/461 +f 1051/1003/460 897/1028/460 896/1005/460 +f 900/837/459 894/839/459 1052/1006/459 +f 894/833/532 897/832/532 902/1007/532 +f 1053/1009/441 1048/1027/441 994/926/441 +f 1054/1010/441 1055/1035/441 996/924/441 +f 835/783/443 838/785/443 1057/1011/443 +f 1058/1013/443 831/780/443 834/782/443 +f 903/843/443 815/770/443 818/769/443 +f 807/764/441 810/763/441 1049/1002/441 +f 1060/1015/441 1049/1002/441 824/774/441 +f 1061/1016/792 1062/1089/792 1063/1017/792 +f 1011/942/443 1058/1013/443 1046/996/443 +f 1056/1012/443 1057/1011/443 844/1020/443 +f 1052/1008/455 902/1007/455 814/1022/455 +f 1050/1001/459 1052/1006/459 813/1024/459 +f 1049/1002/462 1050/1001/462 812/1025/462 +f 1047/1000/465 908/999/465 848/794/465 +f 1046/996/793 1047/995/794 847/1026/795 +f 1048/1027/796 855/799/797 908/852/798 +f 815/770/461 903/843/461 901/840/461 +f 1051/1003/460 901/840/460 902/842/460 +f 853/800/441 855/799/441 1048/1027/441 +f 807/764/441 1060/1015/441 839/788/441 +f 1059/1014/443 1056/1012/443 843/1021/443 +f 818/769/443 835/783/443 1056/1012/443 +f 807/764/441 1054/1010/441 995/925/441 +f 982/927/799 977/927/496 1002/927/800 +f 1005/1030/502 1002/931/502 1000/933/502 +f 978/927/549 970/927/801 1000/927/802 +f 995/925/486 827/779/486 992/913/486 +f 837/784/488 836/921/488 985/904/488 +f 989/907/443 985/904/443 961/876/443 +f 968/885/441 977/892/441 982/1032/441 +f 955/870/443 962/875/443 970/887/443 +f 857/1034/448 830/778/448 968/885/448 +f 961/876/473 962/875/473 955/870/473 +f 876/821/445 843/789/445 840/791/445 +f 1060/1015/441 823/776/441 840/786/441 +f 818/769/443 817/917/443 836/921/443 +f 827/779/441 830/778/441 857/1034/441 +f 844/1020/443 1057/1011/443 1058/1013/443 +f 1057/1011/443 838/785/443 831/780/443 +f 1055/1035/441 1053/1009/441 993/922/441 +f 1014/1036/803 1013/955/520 866/954/520 +f 1015/958/519 1010/952/519 867/951/519 +f 844/1020/443 1011/942/443 1013/944/443 +f 854/798/441 1010/941/441 1015/1039/441 +f 976/927/506 972/927/804 1006/927/805 +f 1003/1041/503 1006/937/503 998/939/503 +f 974/927/540 979/927/799 998/927/806 +f 996/924/491 993/922/491 984/903/491 +f 832/919/489 988/908/489 987/1042/489 +f 988/908/443 953/869/443 958/906/443 +f 828/777/441 984/903/441 963/878/441 +f 956/871/443 979/893/443 974/1044/443 +f 967/884/441 965/877/441 972/889/441 +f 963/878/476 965/877/476 967/884/476 +f 958/906/474 953/869/474 956/871/474 +f 867/815/441 860/814/441 851/1046/441 +f 863/1048/443 866/810/443 861/812/443 +f 864/823/449 861/804/449 860/806/449 +f 841/940/441 854/798/441 853/800/441 +f 838/785/443 837/784/443 832/919/443 +f 873/1051/807 1065/1112/807 1066/1052/807 +f 1064/1018/808 1063/1017/808 1067/1053/808 +f 1070/1055/808 1071/1093/808 1072/1056/808 +f 1074/1058/809 1075/1092/809 1076/1059/809 +f 1069/1057/553 1072/1056/553 1078/1061/553 +f 1079/1063/552 1064/1018/552 1068/1054/552 +f 1072/1065/455 1081/2017/455 1082/1066/455 +f 1083/1068/810 1084/1087/810 1085/1069/810 +f 1074/1071/445 1088/2018/445 1089/1072/445 +f 1064/1074/811 1085/2019/811 1084/1075/811 +f 873/1077/555 1090/2020/555 1086/1078/555 +f 1061/1080/812 1084/2021/812 1091/1081/812 +f 872/1083/557 1093/1804/557 1090/1084/557 +f 1094/1086/813 1095/1135/814 1084/1087/813 +f 1096/1088/815 1097/2022/816 1062/1089/816 +f 1087/1090/817 872/816/818 875/818/819 +f 1087/1090/561 1098/1091/561 1075/1092/561 +f 1071/1093/816 1097/2022/816 1096/1088/820 +f 1081/1094/821 1095/1135/822 1094/1086/821 +f 1096/1096/823 1095/2023/823 1081/1097/823 +f 1093/1099/555 1100/1133/555 1101/1100/555 +f 1088/1102/443 1082/1095/443 1094/1086/443 +f 1093/1099/555 1099/1101/555 1102/1104/555 +f 1079/1079/555 1086/1078/555 1085/1106/555 +f 1093/1108/443 1083/1068/443 1086/1070/443 +f 1078/1067/455 1082/1066/455 1088/1110/455 +f 1079/1063/552 1080/1064/552 1065/1112/552 +f 1073/1060/553 1077/1062/553 1078/1061/553 +f 1104/1113/443 1102/2024/443 1099/1114/443 +f 1094/1116/455 1104/2025/455 1103/1117/455 +f 1089/1118/455 1105/1128/455 1106/1119/455 +f 1083/1121/502 1102/2026/502 1104/1122/502 +f 1106/1124/445 1105/1127/445 1100/1125/445 +f 1105/1127/445 1108/2027/445 1101/1121/445 +f 1103/1117/455 1108/2028/455 1105/1128/455 +f 872/1129/441 1087/2029/441 1106/1130/441 +f 872/1132/555 1107/2030/555 1100/1133/555 +f 1099/1114/443 1101/2031/443 1108/1134/443 +f 1095/1135/824 1109/2032/824 1091/1136/824 +f 1096/1137/825 1110/2033/825 1109/1138/825 +f 1092/1140/826 1091/2034/826 1109/1141/826 +f 1061/1143/827 1092/2035/827 1110/1144/827 +f 1112/1146/571 1113/2036/571 1114/1147/571 +f 1150/2037/441 1139/1154/441 1140/1153/441 +f 1140/1153/441 1141/1151/441 1150/2037/441 +f 1141/1151/441 1142/2038/441 1143/1149/441 +f 1150/2037/441 1141/1151/441 1137/2039/441 +f 1143/1149/441 1144/2040/441 1148/1150/441 +f 1144/2040/441 1145/2041/441 1148/1150/441 +f 1145/2041/441 1146/2042/441 1147/2043/441 +f 1148/1150/441 1145/2041/441 1147/2043/441 +f 1148/1150/441 1149/2044/441 1141/1151/441 +f 1149/2044/441 1138/2045/441 1141/1151/441 +f 1138/2045/441 1137/2039/441 1141/1151/441 +f 1114/1152/572 1113/2046/572 1140/1153/572 +f 1151/2047/443 1152/2048/443 1160/1156/443 +f 1152/2048/443 1153/2049/443 1160/1156/443 +f 1153/2049/443 1154/2050/443 1160/1156/443 +f 1154/2050/443 1155/1157/443 1160/1156/443 +f 1155/1157/443 1156/2051/443 1136/2052/443 +f 1156/2051/443 1157/2053/443 1136/2052/443 +f 1136/2052/443 1135/2054/443 1155/1157/443 +f 1135/2054/443 1158/1155/443 1155/1157/443 +f 1158/1155/443 1159/2055/443 1160/1156/443 +f 1160/1156/443 1161/1159/443 1151/2047/443 +f 1161/1159/443 1162/2056/443 1151/2047/443 +f 1111/1158/573 1162/2056/573 1161/1159/573 +f 1190/1161/574 1191/1164/574 1192/1162/574 +f 1191/1164/575 1193/2057/575 1194/1165/575 +f 1193/1166/576 1195/1169/576 1196/1167/576 +f 1195/1169/577 1197/2058/577 1198/1170/577 +f 1197/1171/603 1199/1174/603 1200/1172/603 +f 1199/1174/579 1201/1176/579 1202/1175/579 +f 1201/1176/580 1203/2059/580 1204/1177/580 +f 1203/1178/581 1205/1181/581 1206/1179/581 +f 1205/1181/582 1207/1183/582 1208/1182/582 +f 1207/1183/583 1209/1185/583 1210/1184/583 +f 1209/1185/584 1211/2060/584 1212/1186/584 +f 1211/1187/585 1190/1161/585 1189/1163/585 +f 1213/1191/828 1214/2061/828 1196/1192/828 +f 1198/2062/829 1200/1189/829 1213/1191/829 +f 1200/1189/830 1202/2063/831 1216/1190/830 +f 1202/2063/832 1215/2064/833 1216/1190/834 +f 1213/1191/835 1196/1192/835 1198/2062/835 +f 1217/2065/836 1218/2066/836 1189/2067/837 +f 1189/2067/838 1192/2068/839 1217/2065/839 +f 1192/2068/840 1194/2069/840 1217/2065/840 +f 1194/2069/841 1196/1192/841 1221/1194/841 +f 1196/1192/587 1214/2061/587 1219/2070/587 +f 1220/1193/587 1196/1192/587 1219/2070/587 +f 1221/1194/842 1217/2065/842 1194/2069/842 +f 1222/1196/843 1223/2071/843 1208/2072/843 +f 1210/1197/844 1212/2073/844 1224/1195/844 +f 1212/2073/845 1189/2067/846 1224/1195/845 +f 1222/1196/843 1208/2072/843 1210/1197/843 +f 1189/2067/847 1218/2066/848 1224/1195/848 +f 1225/1198/849 1215/2064/850 1202/2063/851 +f 1202/2063/852 1204/2074/853 1225/1198/853 +f 1204/2074/854 1206/1199/854 1225/1198/854 +f 1206/1199/855 1208/2072/855 1226/1200/855 +f 1208/2072/855 1223/2071/855 1226/1200/855 +f 1201/2075/856 1178/2076/857 1180/1201/858 +f 1182/1202/859 1184/2077/859 1207/2078/859 +f 1203/2079/860 1201/2075/861 1180/1201/860 +f 1182/1202/859 1207/2078/859 1205/1203/859 +f 1203/2079/862 1180/1201/862 1205/1203/862 +f 1195/1209/863 1171/2080/863 1174/1204/863 +f 1176/1205/864 1178/2076/865 1201/2075/866 +f 1197/2081/867 1195/1209/867 1174/1204/867 +f 1176/1205/868 1201/2075/869 1199/1206/868 +f 1197/2081/870 1174/1204/870 1199/1206/870 +f 1190/2082/871 1166/2083/872 1165/2084/872 +f 1190/2082/873 1165/2084/874 1191/2085/874 +f 1165/2084/875 1168/2086/875 1193/2087/875 +f 1193/2087/876 1191/2085/876 1165/2084/876 +f 1171/2080/592 1195/1209/592 1172/1208/592 +f 1195/1209/877 1193/2087/877 1168/2086/877 +f 1227/1207/592 1195/1209/592 1168/2086/592 +f 1207/2078/878 1184/2077/878 1186/2088/878 +f 1188/1211/879 1166/2083/879 1190/2082/880 +f 1209/1210/878 1207/2078/878 1186/2088/878 +f 1186/2088/881 1188/1211/881 1209/1210/881 +f 1188/1211/882 1190/2082/883 1211/1212/882 +f 1264/1213/884 1265/1318/885 1266/1214/441 +f 1265/1216/455 1267/2089/455 1268/1217/455 +f 1267/1219/443 1269/1351/443 1270/1220/443 +f 1272/1222/555 1264/1386/555 1263/1223/555 +f 1263/2090/445 1266/2091/445 1271/1227/445 +f 1266/2091/445 1268/1225/445 1271/1227/445 +f 1268/1225/445 1270/2092/445 1273/1226/445 +f 1274/1228/527 1275/1228/527 1276/1229/527 +f 1278/927/527 1279/927/527 1280/927/527 +f 1282/1231/595 1283/1238/595 1276/1229/595 +f 1269/1232/597 1285/2093/597 1286/1233/597 +f 1267/1235/598 1265/2094/598 1282/1236/598 +f 1290/1371/599 1276/1229/599 1289/2095/599 +f 1276/1229/599 1283/1238/599 1288/1240/599 +f 1289/2095/599 1276/1229/599 1288/1240/599 +f 1292/1241/600 1293/2096/600 1294/1242/600 +f 1277/1244/443 1296/1286/443 1297/1245/443 +f 1278/1247/886 1281/2097/886 1299/1248/886 +f 1282/1231/595 1283/1238/595 1299/1250/595 +f 1285/927/527 1300/927/527 1295/927/527 +f 1300/1251/602 1274/1352/602 1277/1244/602 +f 1286/1233/603 1285/2093/603 1292/1241/603 +f 1303/1254/443 1297/1245/443 1296/1286/443 +f 1296/1286/443 1301/1252/443 1303/1254/443 +f 1304/927/527 1303/927/527 1302/927/887 +f 1287/1255/650 1306/2098/650 1307/1256/650 +f 1281/927/527 1280/927/527 1309/927/596 +f 1276/1229/599 1290/1371/599 1296/1257/599 +f 1299/1248/606 1281/2097/606 1310/1258/606 +f 1287/1239/599 1306/2099/599 1299/1250/599 +f 1292/927/527 1295/927/527 1297/927/596 +f 1308/1260/502 1312/2100/502 1313/1261/502 +f 1314/927/611 1305/927/888 1302/927/889 +f 1312/927/497 1308/927/497 1307/927/497 +f 1316/1263/890 1304/1370/890 1305/1264/890 +f 1287/1239/614 1308/2101/614 1311/1266/614 +f 1318/927/527 1319/927/527 1312/927/887 +f 1296/1257/614 1290/1371/614 1314/1267/614 +f 1307/1270/891 1306/1259/891 1318/1268/891 +f 1306/1259/892 1310/1258/892 1318/1268/892 +f 1306/1259/441 1320/2102/441 1321/1271/441 +f 1290/1272/443 1276/1634/443 1322/1273/443 +f 1325/1275/441 1326/2103/441 1327/1276/441 +f 1330/2104/443 1314/2105/443 1329/1280/443 +f 1314/2105/893 1290/1278/893 1329/1280/893 +f 1331/1281/443 1332/1315/443 1333/1282/443 +f 1337/1311/894 1306/1259/894 1336/1285/894 +f 1306/1259/895 1307/1270/895 1336/1285/895 +f 1296/1286/443 1331/1281/443 1334/1283/443 +f 1324/1277/441 1327/1276/441 1287/1287/441 +f 1328/1289/622 1290/2106/622 1338/1290/622 +f 1326/927/527 1340/927/527 1341/927/596 +f 1343/1291/896 1330/2107/896 1329/1292/896 +f 1335/1294/617 1307/2108/617 1345/1295/617 +f 1299/1297/618 1321/2109/618 1322/1298/618 +f 1276/1299/527 1283/2110/527 1299/1297/527 +f 1321/1300/619 1320/2111/619 1323/1301/619 +f 1296/988/618 1290/2112/618 1323/1306/618 +f 1340/927/527 1346/927/527 1347/927/596 +f 1331/927/527 1348/927/527 1349/927/527 +f 1306/1308/527 1337/1309/527 1350/1309/527 +f 1346/1311/897 1352/2113/897 1353/1312/897 +f 1354/1314/898 1355/1331/898 1349/1315/898 +f 1267/1219/625 1268/1221/625 1356/1316/625 +f 1265/1318/626 1358/1322/626 1359/1319/626 +f 1356/1316/629 1360/1323/629 1361/1320/629 +f 1362/1321/630 1363/1326/630 1359/1319/630 +f 1360/1323/629 1364/1328/629 1365/1324/629 +f 1362/1321/630 1366/1330/630 1367/1325/630 +f 1360/1323/443 1368/2114/443 1369/1327/443 +f 1367/1325/441 1370/2115/441 1371/1329/441 +f 1353/1312/899 1352/2113/899 1366/1330/899 +f 1354/1314/900 1361/1320/900 1365/1324/900 +f 1352/1332/901 1346/2116/901 1349/1333/901 +f 1365/1335/902 1366/1336/902 1352/1332/902 +f 1366/1336/903 1365/1335/903 1364/1337/903 +f 1369/1339/455 1370/2117/455 1367/1338/455 +f 1369/1340/635 1368/2118/635 1371/1341/635 +f 1368/1343/555 1360/2119/555 1363/1344/555 +f 1356/1346/445 1359/2120/445 1363/1347/445 +f 1268/1217/636 1266/1218/636 1359/1349/636 +f 1264/1213/904 1278/1247/638 1298/1249/638 +f 1269/1351/640 1267/1219/640 1274/1352/640 +f 1347/1353/905 1353/2121/905 1354/1354/905 +f 1354/1356/906 1353/2122/906 1362/1357/906 +f 1351/1359/643 1350/2123/643 1339/1360/643 +f 1361/1358/907 1362/1357/907 1358/1362/907 +f 1343/1364/617 1372/2124/617 1314/1365/617 +f 1310/927/527 1309/927/527 1319/927/604 +f 1336/1367/896 1335/2125/896 1344/1368/896 +f 1294/1242/650 1293/2096/650 1304/1370/650 +f 1290/1371/614 1289/2095/614 1374/1372/614 +f 1294/1242/647 1316/1263/647 1376/1373/647 +f 1376/1373/613 1313/2126/613 1312/1375/613 +f 1316/1377/649 1342/2127/649 1373/1378/649 +f 1374/1379/502 1317/1260/502 1305/1262/502 +f 1375/1374/908 1376/1373/908 1319/1376/908 +f 1377/1382/603 1378/1385/603 1280/1383/603 +f 1377/1382/603 1286/1233/603 1291/1243/603 +f 1378/1385/600 1375/1374/600 1309/1381/600 +f 1291/1243/600 1294/1242/600 1375/1374/600 +f 1272/1222/651 1377/1382/651 1279/1384/651 +f 1284/1234/597 1286/1233/597 1377/1382/597 +f 1269/1232/555 1284/1234/555 1273/1387/555 +f 1284/1234/555 1272/1222/555 1271/1224/555 +f 1373/1369/652 1342/1293/652 1380/1389/652 +f 1337/1391/909 1336/1367/909 1373/1369/909 +f 1342/1293/910 1329/1292/910 1328/1392/910 +f 1293/927/527 1297/927/527 1303/927/604 +f 1373/1393/443 1344/2128/443 1311/1394/443 +f 1311/1394/443 1313/2129/443 1376/1396/443 +f 1374/1397/441 1289/1401/441 1316/1398/441 +f 1374/1397/441 1343/2130/441 1342/1400/441 +f 1381/1402/443 1382/2131/443 1287/1403/443 +f 1383/1405/443 1384/2132/443 1296/1286/443 +f 1386/1406/455 1387/2133/455 1388/1407/455 +f 1390/1409/443 1391/1550/443 1392/1410/443 +f 1393/1412/502 1394/2134/502 1395/1413/502 +f 1396/1415/441 1397/2135/441 1398/1416/441 +f 1390/1418/445 1401/1427/445 1402/1419/445 +f 1403/1421/911 1385/1614/911 1396/1422/911 +f 1399/1424/502 1406/2136/502 1407/1425/502 +f 1401/1427/445 1408/1441/445 1409/1428/445 +f 1396/1422/502 1399/2137/502 1410/1429/502 +f 1393/1430/443 1411/2138/443 1408/1431/443 +f 1413/1433/555 1405/1669/555 1414/1434/555 +f 1416/1436/555 1417/1693/555 1418/1437/555 +f 1419/1439/555 1420/2139/555 1421/1440/555 +f 1408/1441/445 1419/1737/445 1422/1442/445 +f 1399/1392/455 1426/2140/455 1427/1446/455 +f 1411/1448/443 1428/1695/443 1417/1449/443 +f 1399/1451/441 1405/2141/441 1429/1452/441 +f 1430/1454/912 1425/1651/912 1424/1455/912 +f 1425/1445/913 1432/2142/913 1433/1457/913 +f 1438/1461/656 1439/1527/656 1440/1462/656 +f 1427/1464/657 1426/2143/657 1441/1465/657 +f 1435/1459/658 1428/1695/658 1443/1467/658 +f 1445/1469/659 1436/1658/659 1438/1461/659 +f 1446/1470/443 1447/1526/443 1448/1471/443 +f 1433/1457/660 1432/2142/660 1450/1473/660 +f 1441/1465/661 1452/2144/661 1453/1475/661 +f 1443/1467/662 1454/1529/662 1455/1476/662 +f 1457/1477/663 1458/2145/663 1459/1478/663 +f 1461/1480/441 1462/2146/441 1463/1481/441 +f 1463/1481/441 1462/2146/441 1457/1483/441 +f 1465/1485/441 1461/1480/441 1460/1482/441 +f 1452/1487/664 1460/1493/664 1466/1488/664 +f 1462/1490/665 1449/2147/665 1468/1491/665 +f 1460/1493/666 1463/2148/666 1469/1494/666 +f 1470/1495/441 1471/2149/441 1472/1496/441 +f 1475/1498/667 1476/2150/667 1477/1499/667 +f 1479/1501/443 1480/2151/443 1481/1502/443 +f 1477/1499/668 1476/2150/668 1481/1504/668 +f 1483/1506/443 1484/1519/443 1479/1501/443 +f 1486/1507/669 1475/1633/669 1474/1508/669 +f 1488/1510/441 1471/2149/441 1470/1495/441 +f 1490/1512/702 1491/2152/702 1492/1513/702 +f 1494/1515/671 1486/2153/671 1485/1516/671 +f 1465/1520/672 1497/1523/672 1498/1521/672 +f 1497/1523/673 1490/1512/673 1489/1514/673 +f 1500/1524/441 1488/1510/441 1487/1511/441 +f 1484/1519/443 1454/1529/443 1447/1526/443 +f 1450/1473/441 1500/1524/441 1499/1525/441 +f 1439/1527/674 1494/2154/674 1493/1528/674 +f 1454/1529/443 1484/1519/443 1495/1518/443 +f 1462/1530/675 1461/2155/675 1446/1531/675 +f 1386/1533/445 1502/1552/445 1503/1534/445 +f 1464/1536/676 1457/1477/676 1456/1479/676 +f 1389/1414/502 1392/2156/502 1505/1538/502 +f 1386/1540/441 1385/2157/441 1506/1541/441 +f 1508/1543/678 1509/2158/678 1510/1544/678 +f 1511/1546/443 1512/1579/443 1468/1547/443 +f 1502/1542/441 1506/1541/441 1513/1548/441 +f 1391/1550/443 1510/2159/443 1509/1551/443 +f 1502/1552/679 1514/2160/679 1515/1553/679 +f 1484/1554/680 1517/2161/680 1518/1555/680 +f 1465/1485/441 1519/2162/441 1520/1557/441 +f 1459/1478/694 1458/2145/694 1521/1558/694 +f 1517/1560/682 1523/2163/682 1524/1561/682 +f 1523/1563/683 1525/2164/683 1526/1564/683 +f 1457/1483/441 1462/2146/441 1467/1566/441 +f 1448/1471/443 1527/2165/443 1511/1546/443 +f 1463/1568/684 1464/2166/684 1403/1421/684 +f 1484/1519/443 1446/1470/443 1523/1570/443 +f 1528/1572/914 1529/2167/690 1530/1573/690 +f 1525/1574/688 1529/2167/688 1528/1572/688 +f 1458/1567/441 1467/1566/441 1531/1576/441 +f 1468/1547/443 1529/1580/443 1525/1578/443 +f 1512/1579/443 1530/2168/443 1529/1580/443 +f 1467/1566/441 1520/1557/441 1532/1581/441 +f 1533/1582/688 1534/1585/688 1531/1583/688 +f 1526/1575/688 1528/1572/688 1534/1585/688 +f 1534/1585/915 1522/1587/916 1521/1586/917 +f 1528/1572/918 1508/1543/919 1522/1587/920 +f 1535/1588/684 1504/1539/684 1527/1589/684 +f 1469/1569/684 1403/1421/684 1504/1539/684 +f 1536/1591/683 1533/1594/683 1532/1592/683 +f 1524/1565/683 1526/1564/683 1533/1594/683 +f 1537/1595/682 1536/1598/682 1520/1596/682 +f 1518/1562/682 1524/1561/682 1536/1598/682 +f 1538/1599/921 1508/1602/921 1530/1600/921 +f 1459/1478/695 1522/1559/695 1508/1602/695 +f 1496/1603/665 1537/1606/665 1519/1604/665 +f 1516/1556/680 1518/1555/680 1537/1606/680 +f 1539/1607/679 1507/1610/679 1510/1608/679 +f 1503/1534/679 1515/1553/679 1507/1610/679 +f 1513/1611/678 1522/1587/678 1515/1612/678 +f 1522/1587/678 1508/1543/678 1507/1545/678 +f 1385/1614/922 1403/1421/922 1540/1615/922 +f 1504/1539/697 1505/1538/697 1540/1615/697 +f 1504/1617/676 1541/1620/676 1511/1618/676 +f 1403/1537/676 1456/1479/676 1541/1620/676 +f 1400/1420/445 1539/1607/445 1391/1609/445 +f 1501/1535/445 1503/1534/445 1539/1607/445 +f 1542/1621/923 1543/2169/923 1500/1622/923 +f 1516/1624/698 1544/1627/698 1479/1625/698 +f 1498/1521/673 1489/1514/673 1544/1627/673 +f 1543/1628/924 1545/2170/924 1488/1629/924 +f 1544/1627/702 1546/1632/702 1480/1631/702 +f 1489/1514/702 1492/1513/702 1546/1632/702 +f 1545/1633/669 1547/2171/669 1471/1634/669 +f 1472/1635/668 1548/2172/668 1549/1636/668 +f 1547/1638/667 1548/2172/667 1472/1635/667 +f 1550/1640/666 1535/1643/666 1448/1641/666 +f 1466/1488/666 1469/1494/666 1535/1643/666 +f 1551/1644/664 1550/1640/664 1447/1642/664 +f 1453/1489/664 1466/1488/664 1550/1640/664 +f 1541/1620/663 1538/1599/663 1512/1601/663 +f 1456/1479/663 1459/1478/663 1538/1599/663 +f 1443/1646/661 1552/1649/661 1551/1647/661 +f 1442/1466/661 1453/1475/661 1551/1647/661 +f 1430/1454/659 1553/1652/659 1432/1650/659 +f 1445/1469/659 1437/1463/659 1553/1652/659 +f 1554/1653/657 1552/1649/657 1443/1646/657 +f 1427/1464/657 1442/1466/657 1552/1649/657 +f 1432/1650/656 1553/1652/656 1542/1621/656 +f 1556/1655/703 1430/1454/703 1445/1469/703 +f 1445/1469/704 1557/1659/704 1434/1657/704 +f 1430/1454/704 1431/1456/704 1557/1659/704 +f 1558/1660/455 1554/1663/455 1428/1661/455 +f 1410/1447/455 1427/1446/455 1554/1663/455 +f 1559/1664/445 1412/1667/445 1414/1665/445 +f 1409/1428/445 1422/1442/445 1412/1667/445 +f 1413/1433/555 1560/1670/555 1429/1668/555 +f 1415/1438/555 1418/1437/555 1560/1670/555 +f 1416/1436/555 1415/1438/555 1422/1671/555 +f 1415/1438/555 1413/1433/555 1412/1435/555 +f 1561/1672/502 1558/1674/502 1411/1673/502 +f 1404/1423/502 1410/1429/502 1558/1674/502 +f 1562/1675/445 1559/1664/445 1398/1666/445 +f 1402/1419/445 1409/1428/445 1559/1664/445 +f 1504/1539/653 1561/1672/653 1393/1412/653 +f 1403/1421/653 1404/1423/653 1561/1672/653 +f 1501/1535/445 1562/1675/445 1397/1676/445 +f 1400/1420/445 1402/1419/445 1562/1675/445 +f 1418/1437/706 1557/1694/706 1431/1677/706 +f 1429/1668/706 1560/1670/706 1431/1677/706 +f 1549/1636/668 1482/1505/668 1546/1679/668 +f 1473/1637/668 1549/1636/668 1492/1680/668 +f 1439/1682/443 1455/1476/443 1495/1518/443 +f 1452/1486/441 1451/1474/441 1499/1525/441 +f 1499/1525/441 1487/1511/441 1497/1684/441 +f 1494/1683/443 1495/1518/443 1483/1506/443 +f 1487/1511/441 1470/1495/441 1490/1686/441 +f 1486/1685/443 1483/1506/443 1478/1503/443 +f 1482/1505/668 1481/1504/668 1480/1688/668 +f 1478/1503/443 1481/1502/443 1476/1689/443 +f 1490/1686/441 1470/1495/441 1473/1497/441 +f 1444/1468/662 1455/1476/662 1439/1682/662 +f 1441/1692/660 1433/1457/660 1451/1474/660 +f 1436/1460/658 1435/1459/658 1444/1468/658 +f 1417/1693/706 1434/2173/706 1557/1694/706 +f 1428/1695/443 1435/1459/443 1434/1458/443 +f 1423/1443/655 1433/1457/655 1441/1692/655 +f 1426/1453/441 1429/1452/441 1424/1444/441 +f 1542/2174/925 1553/2175/925 1556/2176/925 +f 1553/2175/926 1430/2177/926 1556/2176/926 +f 1556/2176/927 1563/1696/927 1547/1698/927 +f 1563/1696/928 1549/2178/928 1548/1697/928 +f 1547/1698/929 1545/2179/929 1556/2176/929 +f 1545/2179/930 1543/2180/930 1556/2176/930 +f 1543/2180/931 1542/2174/931 1556/2176/931 +f 1437/2181/932 1440/2182/932 1482/1701/932 +f 1440/2182/441 1493/1699/441 1482/1701/441 +f 1493/1699/441 1485/2183/441 1474/1700/441 +f 1474/1700/441 1477/2184/441 1482/1701/441 +f 1395/1702/443 1394/2185/443 1565/1703/443 +f 1389/1705/455 1395/2186/455 1564/1706/455 +f 1401/1708/555 1565/2187/555 1394/1709/555 +f 1390/1418/445 1564/2188/445 1565/1711/445 +f 1567/1712/441 1388/2189/441 1387/1713/441 +f 1396/1715/555 1567/2190/555 1566/1716/555 +f 1385/1614/502 1388/2191/502 1567/1718/502 +f 1397/1676/445 1566/2192/445 1387/1719/445 +f 1568/1720/441 1569/2193/441 1407/1721/441 +f 1398/1723/455 1568/2194/455 1406/1724/455 +f 1414/1665/445 1569/2195/445 1568/1726/445 +f 1405/1669/555 1407/2196/555 1569/957/555 +f 1570/1727/443 1571/2197/443 1421/1728/443 +f 1416/1730/502 1421/2198/502 1571/1731/502 +f 1411/1733/455 1571/2199/455 1570/1734/455 +f 1408/1441/445 1570/2200/445 1420/1736/445 +f 1468/1738/666 1523/2201/666 1520/1739/666 +f 1461/1741/663 1520/2202/663 1523/1742/663 +f 1563/1762/708 1591/2203/708 1592/1763/708 +f 1482/1765/703 1549/2204/703 1563/1766/703 +f 1591/1768/933 1593/2205/933 1594/1769/933 +f 1563/1771/710 1556/1076/710 1593/1772/710 +f 1555/1774/934 1590/2206/934 1592/1775/934 +f 1555/1777/935 1594/2207/935 1593/1778/935 +f 1595/1780/936 1594/2208/936 1596/1781/936 +f 1598/1783/937 1599/1809/937 1596/1784/937 +f 1599/1786/938 1600/2209/938 1601/1787/938 +f 1601/1789/939 1600/2210/939 1602/1790/939 +f 1602/1790/940 1604/2211/940 1605/1792/940 +f 1605/1793/714 1604/2212/714 1606/1794/714 +f 1607/1796/941 1593/2213/941 1608/1797/941 +f 1595/1780/942 1597/1782/942 1608/1799/942 +f 1597/1801/943 1592/2214/943 1594/1802/943 +f 1594/1776/944 1592/1775/944 1599/1786/944 +f 1606/1794/945 1591/1773/945 1593/1772/945 +f 1591/1804/946 1597/1801/946 1595/1803/946 +f 1645/2215/729 1643/2216/729 1647/1815/729 +f 1643/2216/729 1642/1816/729 1647/1815/729 +f 1642/1816/729 1653/2217/729 1651/2218/729 +f 1651/2218/729 1649/1814/729 1642/1816/729 +f 1661/2219/730 1655/2220/730 1660/1818/730 +f 1655/2220/730 1656/1819/730 1660/1818/730 +f 1656/1819/730 1657/2221/730 1658/2222/730 +f 1658/2222/730 1659/1817/730 1656/1819/730 +f 1662/1820/731 1654/1824/731 1641/1821/731 +f 1664/1823/732 1652/2223/732 1654/1824/732 +f 1650/1825/733 1652/2223/733 1664/1823/733 +f 1648/1827/734 1650/1825/734 1665/1826/734 +f 1646/1829/735 1648/1827/735 1666/1828/735 +f 1668/1831/736 1644/1832/736 1646/1829/736 +f 1663/1822/737 1641/1821/737 1644/1832/737 +f 1683/1833/738 1684/1858/738 1685/1834/738 +f 1687/1836/738 1688/2224/738 1689/1837/738 +f 1691/1839/738 1692/1862/738 1693/1840/738 +f 1696/1842/739 1697/1856/739 1698/1843/739 +f 1700/1845/739 1701/1853/739 1702/1846/739 +f 1704/1848/739 1705/1857/739 1706/1849/739 +f 1708/1851/739 1700/1845/739 1699/1847/739 +f 1701/1853/740 1690/1838/740 1683/1833/740 +f 1694/1841/738 1693/1840/738 1709/1854/738 +f 1697/1856/739 1708/1851/739 1707/1852/739 +f 1697/1856/740 1694/1841/740 1710/1855/740 +f 1708/1851/740 1710/1855/740 1687/1836/740 +f 1696/1842/740 1691/1839/740 1694/1841/740 +f 1700/1845/740 1687/1836/740 1690/1838/740 +f 1704/1848/740 1683/1833/740 1686/1835/740 +f 1701/1853/739 1704/1848/739 1703/1850/739 +f 1690/1838/738 1689/1837/738 1684/1858/738 +f 1712/1859/740 1691/1839/740 1696/1842/740 +f 1711/1860/739 1696/1842/739 1695/1844/739 +f 1712/1859/738 1714/2225/738 1692/1862/738 +f 1702/1846/741 1703/1850/741 1716/1863/741 +f 1698/1843/741 1707/1852/741 1718/1865/741 +f 1707/1852/741 1699/1847/741 1719/1867/741 +f 1699/1847/741 1702/1846/741 1715/1864/741 +f 1695/1844/739 1698/1843/739 1717/1866/739 +f 1721/1869/742 1722/2226/742 1723/1870/742 +f 1725/1872/742 1726/1889/742 1727/1873/742 +f 1729/1875/742 1730/1891/742 1731/1876/742 +f 1734/1878/743 1735/1893/743 1736/1879/743 +f 1738/1881/743 1739/1890/743 1740/1882/743 +f 1742/1884/743 1743/1895/743 1744/1885/743 +f 1737/1883/743 1740/1882/743 1746/1887/743 +f 1744/1885/744 1721/1869/744 1726/1889/744 +f 1730/1891/742 1747/1894/742 1748/1892/742 +f 1745/1888/743 1746/1887/743 1735/1893/743 +f 1746/1887/744 1747/1894/744 1730/1891/744 +f 1740/1882/744 1725/1872/744 1747/1894/744 +f 1736/1879/744 1735/1893/744 1730/1891/744 +f 1739/1890/744 1726/1889/744 1725/1872/744 +f 1743/1895/744 1722/2226/744 1721/1869/744 +f 1741/1886/743 1744/1885/743 1739/1890/743 +f 1726/1889/742 1721/1869/742 1724/1871/742 +f 1749/1896/744 1736/1879/744 1729/1875/744 +f 1733/1880/743 1736/1879/743 1749/1896/743 +f 1750/1897/742 1729/1875/742 1732/1877/742 +f 1753/1900/745 1754/1955/745 1741/1886/745 +f 1756/1901/745 1745/1888/745 1734/1878/745 +f 1757/1903/745 1737/1883/745 1745/1888/745 +f 1757/1903/743 1753/1900/743 1738/1881/743 +f 1755/1902/745 1734/1878/745 1733/1880/745 +f 1714/1905/947 1712/1935/947 1750/1906/947 +f 1685/1908/749 1684/1929/749 1724/1909/749 +f 1715/1911/748 1716/2227/748 1754/1912/748 +f 1689/1914/749 1688/2228/749 1728/1915/749 +f 1717/1917/748 1718/1932/748 1756/1918/748 +f 1693/1920/749 1692/1949/749 1732/1921/749 +f 1713/1923/762 1751/2229/762 1749/1924/762 +f 1705/1926/752 1686/1937/752 1722/1927/752 +f 1684/1929/749 1689/1914/749 1727/1916/749 +f 1719/1930/748 1715/1911/748 1753/1913/748 +f 1718/1932/750 1719/1930/750 1757/1931/750 +f 1709/1933/749 1693/1920/749 1731/1922/749 +f 1711/1925/761 1749/1924/761 1750/1906/761 +f 1685/1936/948 1723/2230/948 1722/1927/948 +f 1688/1938/949 1687/2231/949 1725/1939/949 +f 1709/1941/950 1748/2232/950 1747/1942/950 +f 1687/1944/951 1710/2233/951 1747/1945/951 +f 1751/1939/952 1713/2234/952 1720/1947/952 +f 1720/1947/750 1717/1917/750 1755/1919/750 +f 1692/1949/759 1714/2235/759 1752/1950/759 +f 1706/1951/752 1705/1926/752 1743/1928/752 +f 1716/1953/760 1706/1951/760 1742/1952/760 +f 1772/1956/555 1773/1976/555 1759/1957/555 +f 1772/1956/555 1762/1958/555 1761/1959/555 +f 1775/1961/555 1776/1981/555 1769/1962/555 +f 1778/1964/762 1764/1980/762 1763/1965/762 +f 1779/1967/555 1777/1966/555 1763/1965/555 +f 1780/1969/555 1779/1967/555 1767/1968/555 +f 1780/1969/555 1770/1970/555 1771/1971/555 +f 1782/1973/555 1783/1977/555 1765/1974/555 +f 1782/1973/555 1760/1975/555 1759/1957/555 +f 1783/1977/761 1784/1979/761 1766/1978/761 +f 1784/1979/555 1781/1972/555 1771/1971/555 +f 1778/1964/555 1775/1961/555 1768/1963/555 +f 1774/1960/761 1761/1959/761 1769/1962/761 +f 1823/2236/762 1813/2237/762 1814/1982/762 +f 1814/1982/753 1815/2238/753 1811/2239/753 +f 1815/2238/555 1816/2240/555 1811/2239/555 +f 1811/2239/555 1812/1983/555 1814/1982/555 +f 1812/1983/555 1817/2241/555 1820/1984/555 +f 1817/2241/555 1818/2242/555 1819/2243/555 +f 1820/1984/555 1817/2241/555 1819/2243/555 +f 1820/1984/753 1821/2244/753 1822/2245/753 +f 1822/2245/555 1823/2236/555 1814/1982/555 +f 1820/1984/555 1822/2245/555 1814/1982/555 s 1 -f 1963/2426/889 1981/2427/890 1968/2428/890 -f 504/2429/891 506/2430/892 503/2431/892 -f 499/2432/893 508/2433/894 500/2434/895 -f 510/2435/896 512/2436/897 509/2437/898 -f 513/2438/899 515/2439/900 516/2440/901 -f 517/2441/902 519/2442/903 520/2443/904 -f 521/2444/905 507/2445/906 499/2446/893 -f 524/2447/907 526/2448/908 523/2449/909 -f 514/2450/910 520/2443/904 515/2451/900 -f 518/2452/911 528/2453/912 519/2454/903 -f 1961/2455/913 1964/2456/914 1962/2457/915 -f 500/2434/895 525/2458/916 524/2459/907 -f 529/2460/917 516/2440/901 537/2461/918 -f 542/2462/919 549/2463/920 550/2464/919 -f 547/2465/921 552/2466/922 546/2467/923 -f 540/2468/924 553/2469/925 554/2470/926 -f 548/2471/927 551/2472/921 547/2465/921 -f 545/2473/928 557/2474/929 544/2475/930 -f 503/2476/892 553/2469/925 541/2477/925 -f 504/2429/891 550/2478/919 505/2479/891 -f 538/2480/931 555/2481/927 548/2482/927 -f 545/2473/928 552/2483/922 556/2484/932 -f 564/2485/933 566/2486/934 563/2487/934 -f 568/2488/935 570/2489/936 567/2490/936 -f 572/2491/937 574/2492/938 571/2493/938 -f 575/2494/939 577/2495/940 578/2496/941 -f 563/2497/934 580/2498/942 579/2499/942 -f 571/2493/938 581/2500/943 561/2501/944 -f 582/2502/945 580/2498/942 583/2503/946 -f 584/2504/947 569/2505/935 568/2506/935 -f 572/2507/937 570/2489/936 573/2508/937 -f 582/2509/945 577/2495/940 576/2510/948 -f 1890/2511/949 1887/2512/950 1879/2513/949 -f 1888/2514/951 1878/2515/952 1889/2516/952 -f 1874/2517/953 1863/2518/954 1861/2519/955 -f 1872/2520/956 1855/2521/957 1854/2522/956 -f 1866/2523/958 1857/2524/958 1867/2525/958 -f 1865/2526/959 1858/2527/960 1871/2528/960 -f 1874/2517/953 1860/2529/961 1873/2530/962 -f 1870/2531/963 1854/2522/956 1862/2532/963 -f 1851/2533/964 1858/2534/960 1852/2535/965 -f 1999/2536/966 1996/2537/966 2000/2538/966 -f 1998/2539/966 2000/2538/966 1997/2540/966 -f 1998/2539/966 1994/2541/967 1993/2542/966 -f 1995/2543/966 1991/2544/966 1996/2537/966 -f 1973/2545/968 1990/2546/969 1975/2547/970 -f 1870/2531/963 1863/2548/954 1869/2549/971 -f 1993/2542/966 1979/2550/972 1966/2551/973 -f 598/2552/974 593/2553/975 597/2554/975 -f 587/2555/976 600/2556/977 599/2557/976 -f 602/2558/978 592/2559/979 601/2560/979 -f 603/2561/980 595/2562/981 594/2563/982 -f 605/2564/983 593/2565/975 591/2566/983 -f 601/2560/979 560/2567/984 606/2568/985 -f 607/2569/986 591/2566/983 590/2570/987 -f 608/2571/988 588/2572/989 600/2573/989 -f 602/2574/990 587/2555/976 599/2557/976 -f 1988/2575/991 1976/2576/992 1961/2455/913 -f 1913/2577/993 1921/2578/994 1926/2579/995 -f 1912/2580/996 1922/2581/997 1904/2582/998 -f 1928/2583/999 1916/2584/1000 1910/2585/1001 -f 1912/2580/996 1925/2586/1002 1930/2587/1003 -f 1910/2585/1001 1915/2588/1004 1902/2589/1005 -f 1909/2590/1006 1918/2591/1007 1917/2592/1006 -f 1906/2593/1008 1919/2594/1009 1907/2595/1010 -f 1905/2596/1011 1922/2581/997 1921/2578/994 -f 607/2597/986 595/2562/981 604/2598/1012 -f 1902/2589/1005 1923/2599/1013 1903/2600/1013 -f 621/2601/1014 620/2602/1015 617/2603/1014 -f 624/2604/1016 610/2605/1017 623/2606/1017 -f 626/2607/1018 616/2608/1019 625/2609/1019 -f 628/2610/1020 618/2611/1021 627/2612/1022 -f 629/2613/1023 617/2614/1014 614/2615/1023 -f 630/2616/1024 616/2608/1019 615/2617/1025 -f 631/2618/1026 614/2615/1023 613/2619/1027 -f 632/2620/1028 611/2621/1016 624/2622/1016 -f 626/2623/1018 610/2605/1017 609/2624/1018 -f 1935/2625/1029 1957/2626/1030 1949/2627/1031 -f 1942/2628/1032 1958/2629/1033 1943/2630/1034 -f 1945/2631/1035 1951/2632/1036 1937/2633/1036 -f 1946/2634/1037 1955/2635/1038 1947/2636/1039 -f 1932/2637/1040 1958/2629/1033 1933/2638/1040 -f 1940/2639/1041 1957/2626/1030 1944/2640/1042 -f 1939/2641/1043 1952/2642/1044 1953/2643/1043 -f 1942/2628/1032 1950/2644/1045 1956/2645/1046 -f 1931/2646/1047 1955/2635/1038 1941/2647/1048 -f 1940/2639/1041 1953/2643/1043 1954/2648/1041 -f 1938/2649/1044 1951/2632/1036 1952/2642/1044 -f 502/2650/1049 637/2651/1050 638/2652/1049 -f 1992/2653/966 1987/2654/1051 1991/2544/966 -f 1959/2655/1052 1990/2546/969 1977/2656/1052 -f 1988/2575/991 1985/2657/1053 1989/2658/991 -f 1971/2659/1054 1987/2654/1051 1974/2660/1051 -f 1969/2661/1055 1983/2662/1056 1970/2663/1056 -f 1973/2545/968 1980/2664/1057 1986/2665/968 -f 1960/2666/1058 1985/2657/1053 1972/2667/1059 -f 537/2461/918 530/2668/1060 529/2460/917 -f 1970/2663/1056 1984/2669/1054 1971/2659/1054 -f 531/2670/1061 649/2671/1062 650/2672/1063 -f 2038/2673/1064 2042/2674/1065 2041/2675/1066 -f 639/2676/1067 655/2677/1068 640/2678/1069 -f 641/2679/1070 657/2680/1071 642/2681/1071 -f 643/2682/1072 659/2683/1073 644/2684/1073 -f 645/2685/1074 638/2652/1049 660/2686/1075 -f 640/2678/1069 661/2687/1076 646/2688/1076 -f 643/2682/1072 657/2680/1071 658/2689/1072 -f 647/2690/1077 659/2691/1073 662/2692/1077 -f 1969/2661/1055 1981/2427/890 1982/2693/1055 -f 648/2694/1078 637/2651/1050 501/2695/1050 -f 666/2696/1079 534/2697/1080 653/2698/1080 -f 2041/2675/1066 2040/2699/1081 2039/2700/1082 -f 2039/2700/1082 2036/2701/1083 2035/2702/1082 -f 2008/2703/1082 2037/2704/1084 2038/2673/1064 -f 2019/2705/1085 2031/2706/1086 2020/2707/1087 -f 2035/2702/1082 2021/2708/1088 2013/2709/1089 -f 2005/2710/1090 2030/2711/1091 2034/2712/1092 -f 2006/2713/1093 2034/2712/1092 2032/2714/1094 -f 2008/2703/1082 2028/2715/1095 2033/2716/1082 -f 2002/2717/1096 2032/2714/1094 2003/2718/1096 -f 2020/2719/1087 2011/2720/1097 2010/2721/1098 -f 677/2722/1099 683/2723/1100 681/2724/1100 -f 668/2725/1101 685/2726/435 684/2727/1101 -f 670/2728/1102 688/2729/1103 689/2730/1102 -f 672/2731/1104 533/2732/1105 690/2733/1104 -f 674/2734/1106 691/2735/486 692/2736/1106 -f 675/2737/1107 684/2738/1101 693/2739/1107 -f 670/2728/1102 694/2740/1108 676/2741/1108 -f 672/2742/1104 691/2735/486 673/2743/486 -f 674/2744/1106 682/2745/1099 677/2722/1099 -f 645/2746/1074 660/2747/1075 678/2748/1109 -f 680/2749/1110 685/2726/435 667/2750/435 -f 696/2751/1111 698/2752/1112 699/2753/1113 -f 2029/2754/1091 2026/2755/1114 2030/2711/1091 -f 727/2756/521 731/2757/1115 722/2758/521 -f 732/2759/1116 724/2760/1117 733/2761/1118 -f 734/2762/1119 720/2763/1120 721/2764/1121 -f 737/2765/1122 730/2766/1123 736/2767/1123 -f 713/2768/1124 739/2769/1125 738/2770/1126 -f 740/2771/1127 725/2772/1128 726/2773/1129 -f 741/2774/1130 721/2764/1121 722/2775/1131 -f 731/2776/1115 736/2777/1132 739/2769/1125 -f 738/2778/1133 714/2779/1134 742/2780/1135 -f 743/2781/1136 726/2773/1129 727/2782/1137 -f 733/2761/1118 723/2783/1138 744/2784/1139 -f 746/2785/1140 698/2752/1112 697/2786/1141 -f 2017/2787/1142 2028/2715/1095 2007/2788/1143 -f 615/2617/1025 633/2789/1144 630/2616/1024 -f 1907/2595/1010 1924/2790/1145 1914/2791/1146 -f 606/2568/985 559/2792/1147 749/2793/1147 -f 1867/2794/1148 1864/2795/1149 1857/2796/1148 -f 561/2501/944 750/2797/1150 562/2798/1150 -f 554/2470/926 539/2799/1151 540/2468/924 -f 708/2800/1152 665/2801/1153 679/2802/1152 -f 752/2803/1154 720/2763/1120 735/2804/1155 -f 1967/2805/1156 1979/2550/972 1980/2664/1057 -f 2016/2806/1157 2023/2807/1158 2024/2808/1159 -f 641/2809/1070 651/2810/1160 656/2811/1070 -f 671/2812/1105 534/2697/1080 533/2732/1105 -f 696/2751/1111 729/2813/1161 737/2765/1122 -f 539/2799/1151 558/2814/931 538/2480/931 -f 564/2485/933 750/2797/1150 565/2815/1162 -f 1866/2816/1163 1859/2817/959 1865/2526/959 -f 1911/2818/1164 1923/2599/1013 1925/2586/1002 -f 598/2552/974 559/2792/1147 596/2819/1165 -f 1928/2583/999 1914/2791/1146 1927/2820/1166 -f 633/2789/1144 620/2602/1015 622/2821/1167 -f 1936/2822/1168 1949/2627/1031 1950/2644/1045 -f 743/2781/1136 728/2823/1169 746/2785/1140 -f 2019/2705/1085 2022/2824/1170 2027/2825/1085 -f 753/2826/1171 714/2779/1134 715/2827/1172 -f 2018/2828/1173 2012/2829/1174 2026/2755/1114 -f 757/2830/1100 688/2729/1103 669/2831/1103 -f 741/2774/1130 723/2832/1175 744/2833/1176 -f 676/2741/1108 695/2834/1110 680/2835/1110 -f 2016/2806/1157 2025/2836/1177 2017/2837/1142 -f 648/2838/1078 661/2687/1076 663/2839/1178 -f 1959/2655/1052 1978/2840/1058 1960/2666/1058 -f 1946/2634/1037 1948/2841/1179 1945/2631/1035 -f 523/2449/909 511/2842/1180 510/2435/896 -f 758/2843/1108 741/2774/1130 744/2833/1176 -f 761/2844/1181 753/2826/1171 760/2845/1182 -f 763/2846/1183 765/2847/1184 762/2848/1185 -f 762/2848/1185 737/2765/1122 766/2849/1080 -f 733/2761/1118 758/2850/1186 767/2851/486 -f 768/2852/1152 743/2781/1136 765/2847/1184 -f 742/2853/1187 769/2854/1101 761/2855/1188 -f 739/2769/1125 771/2856/1189 770/2857/435 -f 772/2858/1190 741/2774/1130 759/2859/1108 -f 740/2860/1191 773/2861/1106 768/2862/1191 -f 738/2770/1126 770/2857/435 769/2863/1101 -f 771/2856/1189 737/2864/1192 766/2865/1192 -f 773/2866/1106 733/2761/1118 767/2851/486 -f 774/2867/1106 767/2851/486 775/2868/486 -f 771/2856/1189 777/2869/1192 776/2870/1189 -f 769/2863/1101 779/2871/435 778/2872/1101 -f 768/2862/1191 774/2873/1106 780/2874/1191 -f 782/2875/1193 759/2859/1108 781/2876/1108 -f 770/2857/435 776/2870/1189 779/2871/435 -f 761/2855/1188 778/2877/1101 783/2878/1194 -f 780/2879/1195 765/2847/1184 764/2880/1196 -f 767/2851/486 784/2881/1186 775/2868/486 -f 763/2846/1183 766/2849/1080 777/2882/1197 -f 712/2883/1198 764/2880/1196 763/2846/1183 -f 760/2884/1199 783/2878/1194 785/2885/1199 -f 781/2876/1108 758/2843/1108 784/2886/1200 -f 706/2887/1108 784/2886/1200 710/2888/1110 -f 707/2889/1201 785/2890/1202 745/2891/1203 -f 535/2892/1080 777/2882/1197 536/2893/1105 -f 734/2762/1119 772/2858/1190 787/2894/1204 -f 746/2785/1140 697/2786/1141 765/2847/1184 -f 710/2895/1110 775/2896/435 686/2897/435 -f 705/2898/1107 764/2880/1196 709/2899/1152 -f 707/2889/1201 778/2900/1106 783/2901/1205 -f 703/2902/486 776/2903/1104 779/2904/486 -f 706/2887/1108 782/2875/1193 781/2876/1108 -f 687/2905/1101 780/2879/1195 705/2898/1107 -f 703/2902/486 778/2906/1106 704/2907/1106 -f 536/2893/1105 776/2908/1104 702/2909/1104 -f 687/2910/1101 775/2896/435 774/2911/1101 -f 745/2891/1203 791/2912/1206 790/2913/1207 -f 792/2914/1208 753/2826/1171 793/2915/1209 -f 636/2916/1210 613/2917/1027 619/2918/1020 -f 793/2915/1209 715/2827/1172 716/2919/1211 -f 2015/2920/1212 2004/2921/1213 2023/2807/1158 -f 681/2724/1100 794/2922/1100 796/2923/1100 -f 757/2830/1100 798/2924/1100 754/2925/1100 -f 2013/2709/1089 2022/2824/1170 2014/2926/1214 -f 789/2927/1215 719/2928/1172 752/2803/1154 -f 786/2929/1216 782/2875/1193 801/2930/1217 -f 1931/2646/1047 1933/2638/1040 1934/2931/1047 -f 627/2612/1022 612/2932/1028 632/2620/1028 -f 1908/2933/1218 1926/2579/995 1918/2591/1007 -f 608/2571/988 594/2563/982 589/2934/988 -f 1909/2590/1006 1920/2935/1219 1906/2593/1008 -f 1850/2936/1220 1852/2535/965 1853/2937/1221 -f 584/2504/947 578/2496/941 585/2938/947 -f 544/2475/930 549/2463/920 543/2939/920 -f 509/2437/898 528/2453/912 527/2940/1222 -f 1963/2426/889 1964/2456/914 1965/2941/889 -f 802/2942/1223 799/2943/1223 639/2676/1067 -f 803/2944/1100 798/2924/1100 797/2945/1100 -f 803/2944/1100 794/2922/1100 804/2946/1100 -f 2009/2947/1224 2011/2720/1097 2012/2948/1174 -f 2001/2949/1225 2003/2718/1096 2004/2950/1213 -f 805/2951/1226 791/2912/1206 806/2952/1227 -f 788/2953/1228 718/2954/1229 789/2927/1215 -f 788/2953/1228 716/2919/1211 717/2955/1230 -f 787/2894/1204 793/2915/1209 788/2953/1228 -f 701/2956/1231 700/2957/1232 806/2952/1227 -f 530/2668/1060 635/2958/1233 634/2959/1234 -f 2164/2960/1235 2180/2961/1236 2179/2962/1236 -f 2168/2963/1237 2129/2964/1238 2130/2965/1239 -f 2151/2966/1240 2168/2963/1237 2152/2967/1241 -f 2167/2968/1242 2129/2969/1238 2178/2970/1243 -f 2151/2971/1240 2167/2968/1242 2178/2970/1243 -f 2177/2972/1244 2111/2973/1245 2163/2974/1246 -f 2153/2975/1247 2177/2972/1244 2163/2974/1246 -f 2167/2968/1242 2162/2976/1248 2126/2977/1249 -f 2154/2978/1250 2167/2968/1242 2155/2979/1251 -f 2162/2976/1248 2166/2980/1252 2111/2973/1245 -f 2153/2975/1247 2164/2960/1235 2154/2978/1250 -f 2162/2976/1248 2088/2981/1253 2161/2982/1254 -f 2126/2977/1249 2161/2982/1254 2112/2983/1255 -f 2130/2965/1239 2146/2984/1256 2145/2985/1257 -f 2143/2986/1258 2146/2987/1256 2144/2988/1259 -f 2115/2989/1260 1038/2990/1261 2125/2991/1262 -f 1018/2992/1263 2125/2991/1262 1017/2993/1264 -f 1034/2994/1265 2124/2995/1266 2117/2996/1267 -f 2117/2996/1267 1020/2997/1268 1021/2998/1269 -f 2123/2999/1270 934/3000/1271 2121/3001/1272 -f 950/3002/1273 2121/3001/1272 940/3003/1274 -f 942/3004/1275 2120/3005/1276 2122/3006/1277 -f 1016/3007/1278 2120/3005/1276 941/3008/1279 -f 934/3000/1271 2119/3009/1280 2121/3001/1272 -f 2121/3001/1272 929/3010/1281 940/3003/1274 -f 2120/3005/1276 917/3011/1282 2118/3012/1283 -f 941/3008/1279 2118/3012/1283 930/3013/1284 -f 2116/3014/1285 1034/2994/1265 2117/2996/1267 -f 887/3015/1286 2117/2996/1267 1021/2998/1269 -f 2113/3016/1287 2115/2989/1260 2114/3017/1288 -f 915/3018/1289 2115/2989/1260 1018/2992/1263 -f 868/3019/1290 1044/3020/1291 2113/3016/1287 -f 882/3021/1292 1034/2994/1265 869/3022/1293 -f 2143/2986/1258 2142/3023/1294 2141/3024/1295 -f 932/3025/1296 918/3026/1297 917/3011/1282 -f 937/3027/1298 922/3028/1299 934/3000/1271 -f 926/3029/1300 2142/3023/1294 886/3030/1301 -f 945/3031/1302 932/3025/1296 942/3004/1275 -f 948/3032/1303 934/3000/1271 946/3033/1304 -f 926/3034/1300 938/3035/1305 949/3036/1306 -f 1022/3037/1307 938/3035/1305 1019/3038/1308 -f 1025/3039/1309 1023/3040/1310 1034/2994/1265 -f 1044/3020/1291 1040/3041/1311 1038/2990/1261 -f 1116/3042/1312 1114/3043/1313 1115/3044/1314 -f 1120/3045/1315 1122/3046/1316 1119/3047/1317 -f 1124/3048/1318 1126/3049/1319 1123/3050/1320 -f 1123/3050/1320 1119/3047/1317 1122/3046/1316 -f 1132/3051/1321 1115/3044/1314 1133/3052/1322 -f 1131/3053/1323 1125/3054/1324 1124/3048/1318 -f 1134/3055/1325 1137/3056/1326 1138/3057/1327 -f 1128/3058/1328 2262/3059/1329 1117/3060/1330 -f 1125/3054/1324 1138/3057/1327 1149/3061/1331 -f 1133/3052/1322 1150/3062/1332 1137/3056/1326 -f 1128/3058/1328 2264/3063/1329 2263/3064/1329 -f 1126/3049/1319 1147/3065/1333 1119/3047/1317 -f 1115/3044/1314 1139/3066/1334 1150/3062/1332 -f 1127/3067/1335 2261/3068/1336 2260/3069/1336 -f 1119/3047/1317 1146/3070/1337 1120/3045/1315 -f 1125/3054/1324 1148/3071/1338 1126/3049/1319 -f 1122/3046/1316 1157/3072/1339 1156/3073/1340 -f 1127/3067/1335 2259/3074/1336 1129/3075/1341 -f 1124/3048/1318 1153/3076/1342 1131/3053/1323 -f 1118/3077/1343 1128/3058/1328 1117/3060/1330 -f 1132/3051/1321 1151/3078/1344 1116/3042/1312 -f 1123/3050/1320 1156/3073/1340 1155/3079/1345 -f 1127/3067/1335 1130/3080/1346 1128/3058/1328 -f 1116/3042/1312 1162/3081/1347 1111/3082/1348 -f 1124/3048/1318 1155/3079/1345 1154/3083/1349 -f 1131/3053/1323 1152/3084/1350 1132/3051/1321 -f 2222/3085/1351 2203/3086/1352 2216/3087/1353 -f 2221/3088/1354 2202/3089/1355 2222/3090/1351 -f 2220/3091/1356 2204/3092/1357 2221/3093/1354 -f 2206/3094/1358 2220/3091/1356 2219/3095/1359 -f 2207/3096/1360 2219/3097/1359 2218/3098/1361 -f 2208/3099/1362 2218/3098/1361 2217/3100/1363 -f 2216/3087/1353 2208/3101/1362 2217/3102/1363 -f 2193/3103/1364 2181/3104/1365 2194/3105/1364 -f 2191/3106/1366 2194/3107/1364 2192/3108/1366 -f 2189/3109/1367 2192/3110/1366 2190/3111/1367 -f 1240/3112/1368 1237/3113/1369 1239/3114/1370 -f 1238/3115/1371 1235/3116/1372 1237/3113/1369 -f 1241/3117/1373 1240/3112/1368 1239/3114/1370 -f 1181/3118/1374 1173/3119/1375 1175/3120/1376 -f 1229/3121/1377 1232/3122/1378 1246/3123/1379 -f 1230/3124/1380 1231/3125/1381 1228/3126/1380 -f 1244/3127/1382 1242/3128/1383 1241/3117/1373 -f 1183/3129/1384 1177/3130/1385 1181/3118/1374 -f 1245/3131/1386 1251/3132/1387 1231/3125/1381 -f 2187/3133/1388 2190/3111/1367 2188/3134/1388 -f 1246/3123/1379 1252/3135/1389 1247/3136/1390 -f 1249/3137/1391 1254/3138/1392 1255/3139/1393 -f 1251/3132/1387 1250/3140/1394 1256/3141/1395 -f 2185/3142/1396 2188/3143/1388 2186/3144/1396 -f 1252/3135/1389 1249/3137/1391 1247/3136/1390 -f 1187/3145/1397 1183/3129/1384 1185/3146/1398 -f 1234/3147/1399 1185/3146/1398 1233/3148/1399 -f 1250/3140/1394 1260/3149/1400 1256/3141/1395 -f 2184/3150/1401 2185/3142/1396 2186/3144/1396 -f 2182/3151/1365 2184/3152/1401 2181/3104/1365 -f 1257/3153/1402 1262/3154/1403 1260/3155/1400 -f 1170/3156/1404 1163/3157/1404 1167/3158/1404 -f 1255/3159/1393 1261/3160/1405 1258/3161/1406 -f 2239/3162/1407 2251/3163/1408 2240/3164/1409 -f 2245/3165/1410 2253/3166/1411 2246/3167/1412 -f 2245/3165/1410 2255/3168/1413 2254/3169/1414 -f 2248/3170/1415 2249/3171/1416 2250/3172/1417 -f 2239/3173/1407 2247/3174/1418 2246/3175/1412 -f 2245/3176/1410 2244/3177/1419 2243/3178/1420 -f 2246/3175/1412 2248/3179/1415 2245/3176/1410 -f 2240/3180/1409 2242/3181/1421 2239/3173/1407 -f 1609/3182/1422 1610/3183/1423 1611/3184/1424 -f 1612/3185/1425 1614/3186/1426 1615/3187/1427 -f 1617/3188/1428 1619/3189/1429 1616/3190/1430 -f 1620/3191/1431 1621/3192/1432 1622/3193/1433 -f 1610/3183/1423 1615/3194/1427 1611/3184/1424 -f 1616/3190/1430 1614/3186/1426 1613/3195/1434 -f 1620/3191/1431 1618/3196/1435 1617/3197/1428 -f 1614/3198/1426 1623/3199/1436 1624/3200/1437 -f 1618/3196/1435 1625/3201/1438 1626/3202/1439 -f 1609/3182/1422 1611/3184/1424 1627/3203/1440 -f 1614/3198/1426 1628/3204/1441 1615/3205/1427 -f 1618/3206/1435 1623/3199/1436 1619/3207/1429 -f 1622/3193/1433 1621/3192/1432 1625/3201/1438 -f 1611/3184/1424 1628/3208/1441 1627/3203/1440 -f 1609/3182/1422 1627/3203/1440 1629/3209/1442 -f 1628/3204/1441 1630/3210/1443 1631/3211/1444 -f 1626/3212/1439 1633/3213/1445 1623/3199/1436 -f 1625/3201/1438 1621/3192/1432 1634/3214/1446 -f 1627/3203/1440 1631/3215/1444 1629/3209/1442 -f 1623/3199/1436 1630/3210/1443 1624/3200/1437 -f 1626/3202/1439 1634/3214/1446 1632/3216/1447 -f 1609/3182/1422 1629/3209/1442 1635/3217/1448 -f 1630/3218/1443 1637/3219/1449 1631/3220/1444 -f 1633/3221/1445 1638/3222/1450 1639/3223/1451 -f 1634/3214/1446 1621/3192/1432 1640/3224/1452 -f 1631/3215/1444 1635/3217/1448 1629/3209/1442 -f 1633/3221/1445 1636/3225/1453 1630/3218/1443 -f 1632/3226/1447 1640/3227/1452 1638/3222/1450 -f 2201/3228/1364 2209/3229/1365 2195/3230/1365 -f 2214/3231/1366 2201/3232/1364 2200/3233/1366 -f 2199/3234/1367 2214/3235/1366 2200/3236/1366 -f 2212/3237/1388 2199/3234/1367 2198/3238/1388 -f 2211/3239/1396 2198/3240/1388 2197/3241/1396 -f 2210/3242/1401 2197/3241/1396 2196/3243/1401 -f 2195/3230/1365 2210/3244/1401 2196/3245/1401 -f 2247/3246/1418 2257/3247/1454 2249/3171/1416 -f 2242/3248/1421 2258/3249/1455 2257/3247/1454 -f 2248/3170/1415 2256/3250/1456 2244/3251/1419 -f 2246/3167/1412 2252/3252/1457 2239/3162/1407 -f 2237/3253/1458 2226/3254/445 2223/3255/445 -f 2236/3256/431 2237/3257/1458 2235/3258/431 -f 2233/3259/1459 2236/3256/431 2235/3258/431 -f 2232/3260/521 2233/3261/1459 2231/3262/521 -f 2229/3263/1460 2232/3260/521 2231/3262/521 -f 2228/3264/433 2229/3265/1460 2227/3266/433 -f 2224/3267/1461 2228/3264/433 2227/3266/433 -f 2226/3254/445 2224/3268/1461 2223/3255/445 -f 1675/3269/1462 1676/3270/1463 1669/3271/1464 -f 1674/3272/1465 1682/3273/1466 1675/3269/1462 -f 1680/3274/1467 1674/3272/1465 1673/3275/1468 -f 1679/3276/1469 1673/3275/1468 1672/3277/1470 -f 1678/3278/1471 1672/3277/1470 1671/3279/1472 -f 1670/3280/1473 1678/3278/1471 1671/3279/1472 -f 1669/3271/1464 1677/3281/1474 1670/3280/1473 -f 1792/3282/1475 1798/3283/1476 1800/3284/1477 -f 1791/3285/1478 1799/3286/1479 1798/3287/1476 -f 1786/3288/1480 1808/3289/1481 1799/3286/1479 -f 1785/3290/1482 1809/3291/1483 1808/3289/1481 -f 1790/3292/1484 1810/3293/1485 1809/3294/1483 -f 1789/3295/1486 1807/3296/1487 1810/3293/1485 -f 1787/3297/1488 1807/3296/1487 1788/3298/1489 -f 1797/3299/1490 1806/3300/1491 1787/3297/1488 -f 1796/3301/1492 1805/3302/1493 1797/3303/1490 -f 1795/3304/1494 1803/3305/1495 1796/3301/1492 -f 1795/3306/1494 1801/3307/1496 1804/3308/1497 -f 1793/3309/1498 1801/3307/1496 1794/3310/1499 -f 1792/3282/1475 1802/3311/1500 1793/3309/1498 -f 1837/3312/1501 1836/3313/1502 1838/3314/1502 -f 1839/3315/1503 1825/3316/1504 1840/3317/1504 -f 1841/3318/1505 1829/3319/1506 1842/3320/1506 -f 1844/3321/1507 1833/3322/1508 1832/3323/1509 -f 1838/3324/1502 1835/3325/1510 1845/3326/1510 -f 1842/3320/1506 1828/3327/1511 1846/3328/1512 -f 1847/3329/1513 1835/3325/1510 1834/3330/1514 -f 1848/3331/1515 1830/3332/1503 1839/3333/1503 -f 1841/3334/1505 1825/3316/1504 1824/3335/1505 -f 1847/3336/1513 1833/3322/1508 1843/3337/1516 -f 1846/3328/1512 1827/3338/1517 1849/3339/1518 -f 1837/3312/1501 1827/3338/1517 1826/3340/1519 -f 1848/3331/1515 1832/3323/1509 1831/3341/1515 -f 1893/3342/1520 1886/3343/1521 1892/3344/1522 -f 1895/3345/1523 1885/3346/1524 1894/3347/1525 -f 1893/3342/1520 1876/3348/1526 1884/3349/1520 -f 1897/3350/1527 1883/3351/1528 1882/3352/1529 -f 1888/3353/1530 1880/3354/1523 1895/3345/1523 -f 1889/2516/952 1879/3355/1531 1890/3356/1531 -f 1896/3357/1526 1877/3358/1532 1876/3359/1526 -f 1892/3360/1522 1883/3351/1528 1898/3361/1533 -f 1894/3347/1525 1901/3362/1534 1900/3363/1535 -f 1850/2936/1220 1855/3364/957 1875/3365/1536 -f 1899/3366/1537 1901/3362/1534 1877/3358/1532 -f 1891/3367/950 1882/3352/1529 1887/2512/950 -f 1873/2530/962 1864/2795/1149 1868/3368/1538 -f 2176/3369/1539 2109/3370/1540 2177/2972/1244 -f 2148/3371/1541 2176/3369/1539 2177/2972/1244 -f 2175/3372/1542 2081/3373/1543 2176/3369/1539 -f 1022/3037/1307 1035/3374/1544 2060/3375/1545 -f 2065/3376/1546 2067/3377/1547 2064/3378/1548 -f 2068/3379/1549 2070/3380/1550 2071/3381/1551 -f 2150/3382/1552 2176/3369/1539 2147/3383/1553 -f 2174/3384/1554 2060/3375/1545 2175/3385/1542 -f 2150/3386/1552 2174/3384/1554 2175/3385/1542 -f 2173/3387/1555 1022/3037/1307 2174/3384/1554 -f 2159/3388/1556 2174/3384/1554 2149/3389/1557 -f 2173/3387/1555 926/3034/1300 949/3036/1306 -f 2081/3373/1543 1035/3390/1544 2063/3391/1558 -f 2082/3392/1559 2090/3393/1560 2083/3394/1561 -f 2085/3395/1562 2091/3396/1563 2092/3397/1564 -f 2159/3388/1556 2172/3398/1565 2173/3387/1555 -f 2171/3399/1566 926/3029/1300 2172/3400/1565 -f 2157/3401/1567 2172/3400/1565 2160/3402/1568 -f 2170/3403/1569 2141/3024/1295 2171/3399/1566 -f 2157/3401/1567 2170/3403/1569 2171/3399/1566 -f 2169/3404/1570 2143/3405/1258 2170/3406/1569 -f 2158/3407/1571 2170/3406/1569 2156/3408/1572 -f 2079/3409/1573 2093/3410/1574 2086/3411/1575 -f 2097/3412/1576 2092/3397/1564 2093/3410/1574 -f 2098/3413/1577 2087/3414/1578 2080/3415/1579 -f 2083/3394/1561 2095/3416/1580 2098/3413/1577 -f 2168/2963/1237 2145/2985/1257 2169/3404/1570 -f 2158/3407/1571 2168/2963/1237 2169/3404/1570 -f 2135/3417/1581 2050/3418/1581 2134/3419/1581 -f 2049/3420/1581 2134/3419/1581 2048/3421/1581 -f 2046/3422/1582 2132/3423/1582 2133/3424/1582 -f 2045/3425/1582 2132/3423/1582 2131/3426/1582 -f 2047/3427/1582 2043/3428/1582 2046/3422/1582 -f 2052/3429/1581 2050/3418/1581 2053/3430/1581 -f 2058/3431/1583 2101/3432/1584 2059/3433/1585 -f 2103/3434/1586 2071/3381/1551 2101/3432/1584 -f 2104/3435/1587 2062/3436/1588 2061/3437/1589 -f 2064/3378/1548 2102/3438/1590 2104/3435/1587 -f 2057/3439/1591 2073/3440/1592 2074/3441/1592 -f 2075/3442/1593 2094/3443/1594 2076/3444/1593 -f 2078/3445/1595 2100/3446/1596 2094/3447/1594 -f 2106/3448/1597 2057/3439/1591 2108/3449/1597 -f 2110/3450/1597 2137/3451/1591 2054/3452/1598 -f 2108/3449/1597 2137/3451/1591 2136/3453/1597 -f 2081/3373/1543 2107/3454/1599 2109/3370/1540 -f 2109/3370/1540 2088/2981/1253 2111/2973/1245 -f 2096/3455/1595 2138/3456/1596 2105/3457/1596 -f 2094/3447/1594 2138/3456/1596 2139/3458/1594 -f 2077/3459/1593 2139/3460/1594 2096/3461/1595 -f 2076/3444/1593 2139/3460/1594 2140/3462/1593 -f 2126/2977/1249 2128/3463/1600 2129/2969/1238 -f 2130/2965/1239 2128/3464/1600 2127/3465/1601 -f 2137/3451/1591 2055/3466/1592 2054/3452/1598 -f 2057/3439/1591 2056/3467/1592 2137/3451/1591 -f 1963/2426/889 1965/2941/889 1981/2427/890 -f 504/2429/891 505/2479/891 506/2430/892 -f 499/2432/893 507/3468/906 508/2433/894 -f 510/2435/896 511/2842/1180 512/2436/897 -f 513/2438/899 514/3469/910 515/2439/900 -f 517/2441/902 518/3470/911 519/2442/903 -f 521/2444/905 522/3471/1602 507/2445/906 -f 524/2447/907 525/3472/916 526/2448/908 -f 514/2450/910 517/2441/902 520/2443/904 -f 518/2452/911 527/2940/1222 528/2453/912 -f 1961/2455/913 1976/2576/992 1964/2456/914 -f 500/2434/895 508/2433/894 525/2458/916 -f 529/2460/917 513/2438/899 516/2440/901 -f 542/2462/919 543/2939/920 549/2463/920 -f 547/2465/921 551/2472/921 552/2466/922 -f 540/2468/924 541/2477/925 553/2469/925 -f 548/2471/927 555/3473/927 551/2472/921 -f 545/2473/928 556/2484/932 557/2474/929 -f 503/2476/892 506/3474/892 553/2469/925 -f 504/2429/891 542/3475/919 550/2478/919 -f 538/2480/931 558/2814/931 555/2481/927 -f 545/2473/928 546/3476/923 552/2483/922 -f 564/2485/933 565/2815/1162 566/2486/934 -f 568/2488/935 569/3477/935 570/2489/936 -f 572/2491/937 573/3478/937 574/2492/938 -f 575/2494/939 576/2510/948 577/2495/940 -f 563/2497/934 566/3479/934 580/2498/942 -f 571/2493/938 574/2492/938 581/2500/943 -f 582/2502/945 579/2499/942 580/2498/942 -f 584/2504/947 585/2938/947 569/2505/935 -f 572/2507/937 567/2490/936 570/2489/936 -f 582/2509/945 583/3480/946 577/2495/940 -f 1890/2511/949 1891/3367/950 1887/2512/950 -f 1888/2514/951 1881/3481/951 1878/2515/952 -f 1874/2517/953 1869/3482/971 1863/2518/954 -f 1872/2520/956 1875/3483/1536 1855/2521/957 -f 1866/2523/958 1856/3484/958 1857/2524/958 -f 1865/2526/959 1859/2817/959 1858/2527/960 -f 1874/2517/953 1861/2519/955 1860/2529/961 -f 1870/2531/963 1872/2520/956 1854/2522/956 -f 1851/2533/964 1871/3485/960 1858/2534/960 -f 1999/2536/966 1995/2543/966 1996/2537/966 -f 1998/2539/966 1999/2536/966 2000/2538/966 -f 1998/2539/966 1997/2540/966 1994/2541/967 -f 1995/2543/966 1992/2653/966 1991/2544/966 -f 1973/2545/968 1986/2665/968 1990/2546/969 -f 1870/2531/963 1862/2532/963 1863/2548/954 -f 1993/2542/966 1994/2541/967 1979/2550/972 -f 598/2552/974 596/2819/1165 593/2553/975 -f 587/2555/976 588/3486/977 600/2556/977 -f 602/2558/978 586/3487/978 592/2559/979 -f 603/2561/980 604/2598/1012 595/2562/981 -f 605/2564/983 597/3488/975 593/2565/975 -f 601/2560/979 592/2559/979 560/2567/984 -f 607/2569/986 605/2564/983 591/2566/983 -f 608/2571/988 589/2934/988 588/2572/989 -f 602/2574/990 586/3489/990 587/2555/976 -f 1988/2575/991 1989/2658/991 1976/2576/992 -f 1913/2577/993 1905/2596/1011 1921/2578/994 -f 1912/2580/996 1930/2587/1003 1922/2581/997 -f 1928/2583/999 1927/2820/1166 1916/2584/1000 -f 1912/2580/996 1911/2818/1164 1925/2586/1002 -f 1910/2585/1001 1916/2584/1000 1915/2588/1004 -f 1909/2590/1006 1908/2933/1218 1918/2591/1007 -f 1906/2593/1008 1920/2935/1219 1919/2594/1009 -f 1905/2596/1011 1904/2582/998 1922/2581/997 -f 607/2597/986 590/3490/987 595/2562/981 -f 1902/2589/1005 1915/2588/1004 1923/2599/1013 -f 621/2601/1014 622/2821/1167 620/2602/1015 -f 624/2604/1016 611/3491/1016 610/2605/1017 -f 626/2607/1018 609/3492/1018 616/2608/1019 -f 628/2610/1020 619/2918/1020 618/2611/1021 -f 629/2613/1023 621/3493/1014 617/2614/1014 -f 630/2616/1024 625/2609/1019 616/2608/1019 -f 631/2618/1026 629/2613/1023 614/2615/1023 -f 632/2620/1028 612/2932/1028 611/2621/1016 -f 626/2623/1018 623/2606/1017 610/2605/1017 -f 1935/2625/1029 1944/2640/1042 1957/2626/1030 -f 1942/2628/1032 1956/2645/1046 1958/2629/1033 -f 1945/2631/1035 1948/2841/1179 1951/2632/1036 -f 1946/2634/1037 1941/2647/1048 1955/2635/1038 -f 1932/2637/1040 1943/2630/1034 1958/2629/1033 -f 1940/2639/1041 1954/2648/1041 1957/2626/1030 -f 1939/2641/1043 1938/2649/1044 1952/2642/1044 -f 1942/2628/1032 1936/2822/1168 1950/2644/1045 -f 1931/2646/1047 1934/2931/1047 1955/2635/1038 -f 1940/2639/1041 1939/2641/1043 1953/2643/1043 -f 1938/2649/1044 1937/2633/1036 1951/2632/1036 -f 502/2650/1049 501/2695/1050 637/2651/1050 -f 1992/2653/966 1974/2660/1051 1987/2654/1051 -f 1959/2655/1052 1975/2547/970 1990/2546/969 -f 1988/2575/991 1972/2667/1059 1985/2657/1053 -f 1971/2659/1054 1984/2669/1054 1987/2654/1051 -f 1969/2661/1055 1982/2693/1055 1983/2662/1056 -f 1973/2545/968 1967/2805/1156 1980/2664/1057 -f 1960/2666/1058 1978/2840/1058 1985/2657/1053 -f 537/2461/918 635/2958/1233 530/2668/1060 -f 1970/2663/1056 1983/2662/1056 1984/2669/1054 -f 651/2810/1160 532/3494/1603 650/2672/1063 -f 532/3494/1603 531/2670/1061 650/2672/1063 -f 2038/2673/1064 2037/2704/1084 2042/2674/1065 -f 639/2676/1067 654/3495/1604 655/2677/1068 -f 641/2679/1070 656/3496/1070 657/2680/1071 -f 643/2682/1072 658/2689/1072 659/2683/1073 -f 645/2685/1074 502/2650/1049 638/2652/1049 -f 640/2678/1069 655/2677/1068 661/2687/1076 -f 643/2682/1072 642/2681/1071 657/2680/1071 -f 647/2690/1077 644/3497/1073 659/2691/1073 -f 1969/2661/1055 1968/2428/890 1981/2427/890 -f 648/2694/1078 663/3498/1178 637/2651/1050 -f 653/2698/1080 652/3499/1079 666/2696/1079 -f 652/3499/1079 664/3500/1153 666/2696/1079 -f 664/3500/1153 665/2801/1153 666/2696/1079 -f 2041/2675/1066 2042/2674/1065 2040/2699/1081 -f 2039/2700/1082 2040/2699/1081 2036/2701/1083 -f 2008/2703/1082 2033/2716/1082 2037/2704/1084 -f 2019/2705/1085 2027/2825/1085 2031/2706/1086 -f 2035/2702/1082 2036/2701/1083 2021/2708/1088 -f 2005/2710/1090 2029/2754/1091 2030/2711/1091 -f 2006/2713/1093 2005/2710/1090 2034/2712/1092 -f 2008/2703/1082 2007/2788/1143 2028/2715/1095 -f 2002/2717/1096 2006/2713/1093 2032/2714/1094 -f 2020/2719/1087 2031/3501/1086 2011/2720/1097 -f 677/2722/1099 682/2745/1099 683/2723/1100 -f 668/2725/1101 667/2750/435 685/2726/435 -f 670/2728/1102 669/2831/1103 688/2729/1103 -f 672/2731/1104 671/2812/1105 533/2732/1105 -f 674/2734/1106 673/2743/486 691/2735/486 -f 675/2737/1107 668/3502/1101 684/2738/1101 -f 670/2728/1102 689/2730/1102 694/2740/1108 -f 672/2742/1104 690/3503/1104 691/2735/486 -f 674/2744/1106 692/3504/1106 682/2745/1099 -f 649/2671/1062 531/2670/1061 678/2748/1109 -f 531/2670/1061 645/2746/1074 678/2748/1109 -f 680/2749/1110 695/3505/1110 685/2726/435 -f 696/2751/1111 697/2786/1141 698/2752/1112 -f 2029/2754/1091 2018/2828/1173 2026/2755/1114 -f 731/2757/1115 713/3506/1124 717/3507/521 -f 713/3506/1124 714/3508/521 715/3509/521 -f 715/3509/521 716/3510/1605 713/3506/1124 -f 716/3510/1605 717/3507/521 713/3506/1124 -f 729/3511/884 730/3512/1606 699/3513/521 -f 730/3512/1606 731/2757/1115 727/2756/521 -f 699/3513/521 730/3512/1606 728/3514/521 -f 728/3514/521 698/3515/1607 699/3513/521 -f 717/3507/521 718/3516/1608 722/2758/521 -f 718/3516/1608 719/3517/521 722/2758/521 -f 722/2758/521 719/3517/521 720/3518/1609 -f 720/3518/1609 721/3519/1610 722/2758/521 -f 722/2758/521 723/3520/1138 724/3521/1117 -f 724/3521/1117 725/3522/1611 727/2756/521 -f 724/3521/1117 727/2756/521 722/2758/521 -f 725/3522/1611 726/3523/521 727/2756/521 -f 727/2756/521 728/3514/521 730/3512/1606 -f 731/2757/1115 717/3507/521 722/2758/521 -f 732/2759/1116 725/3524/1611 724/2760/1117 -f 734/2762/1119 735/2804/1155 720/2763/1120 -f 737/2765/1122 729/2813/1161 730/2766/1123 -f 713/2768/1124 731/2776/1115 739/2769/1125 -f 740/2771/1127 732/3525/1128 725/2772/1128 -f 741/2774/1130 734/2762/1119 721/2764/1121 -f 731/2776/1115 730/3526/1606 736/2777/1132 -f 738/2778/1133 713/3527/1133 714/2779/1134 -f 743/2781/1136 740/2771/1127 726/2773/1129 -f 733/2761/1118 724/2760/1117 723/2783/1138 -f 746/2785/1140 728/2823/1169 698/2752/1112 -f 2017/2787/1142 2025/3528/1177 2028/2715/1095 -f 615/2617/1025 748/3529/1144 633/2789/1144 -f 1907/2595/1010 1919/2594/1009 1924/2790/1145 -f 606/2568/985 560/2567/984 559/2792/1147 -f 1867/2794/1148 1868/3368/1538 1864/2795/1149 -f 561/2501/944 581/2500/943 750/2797/1150 -f 554/2470/926 751/3530/1151 539/2799/1151 -f 665/2801/1153 664/3500/1153 679/2802/1152 -f 679/2802/1152 675/2737/1107 693/2739/1107 -f 693/2739/1107 708/2800/1152 679/2802/1152 -f 752/2803/1154 719/2928/1172 720/2763/1120 -f 1967/2805/1156 1966/2551/973 1979/2550/972 -f 2016/2806/1157 2015/2920/1212 2023/2807/1158 -f 641/2809/1070 532/3494/1603 651/2810/1160 -f 671/2812/1105 653/2698/1080 534/2697/1080 -f 696/2751/1111 699/2753/1113 729/2813/1161 -f 539/2799/1151 751/3530/1151 558/2814/931 -f 564/2485/933 562/2798/1150 750/2797/1150 -f 1866/2816/1163 1856/3531/1163 1859/2817/959 -f 1911/2818/1164 1903/2600/1013 1923/2599/1013 -f 598/2552/974 749/2793/1147 559/2792/1147 -f 1929/3532/1610 1914/2791/1146 1928/2583/999 -f 1914/2791/1146 1924/2790/1145 1927/2820/1166 -f 633/2789/1144 748/3529/1144 620/2602/1015 -f 1936/2822/1168 1935/2625/1029 1949/2627/1031 -f 743/2781/1136 727/2782/1137 728/2823/1169 -f 2019/2705/1085 2014/2926/1214 2022/2824/1170 -f 753/2826/1171 742/2780/1135 714/2779/1134 -f 2018/2828/1173 2009/3533/1224 2012/2829/1174 -f 757/2830/1100 754/2925/1100 688/2729/1103 -f 741/2774/1130 722/2775/1131 723/2832/1175 -f 676/2741/1108 694/2740/1108 695/2834/1110 -f 2016/2806/1157 2024/2808/1159 2025/2836/1177 -f 648/2838/1078 646/2688/1076 661/2687/1076 -f 1959/2655/1052 1977/2656/1052 1978/2840/1058 -f 1946/2634/1037 1947/2636/1039 1948/2841/1179 -f 523/2449/909 526/2448/908 511/2842/1180 -f 758/2843/1108 759/2859/1108 741/2774/1130 -f 761/2844/1181 742/2780/1135 753/2826/1171 -f 763/2846/1183 764/2880/1196 765/2847/1184 -f 762/2848/1185 696/2751/1111 737/2765/1122 -f 733/2761/1118 744/2784/1139 758/2850/1186 -f 768/2852/1152 740/2771/1127 743/2781/1136 -f 742/2853/1187 738/3534/1126 769/2854/1101 -f 739/2769/1125 736/2777/1132 771/2856/1189 -f 772/2858/1190 734/2762/1119 741/2774/1130 -f 740/2860/1191 732/3535/1116 773/2861/1106 -f 738/2770/1126 739/2769/1125 770/2857/435 -f 771/2856/1189 736/2777/1132 737/2864/1192 -f 773/2866/1106 732/2759/1116 733/2761/1118 -f 774/2867/1106 773/2866/1106 767/2851/486 -f 771/2856/1189 766/2865/1192 777/2869/1192 -f 769/2863/1101 770/2857/435 779/2871/435 -f 768/2862/1191 773/2861/1106 774/2873/1106 -f 782/2875/1193 772/2858/1190 759/2859/1108 -f 770/2857/435 771/2856/1189 776/2870/1189 -f 761/2855/1188 769/2854/1101 778/2877/1101 -f 780/2879/1195 768/2852/1152 765/2847/1184 -f 767/2851/486 758/2850/1186 784/2881/1186 -f 763/2846/1183 762/2848/1185 766/2849/1080 -f 763/2846/1183 535/2892/1080 712/2883/1198 -f 712/2883/1198 747/3536/1612 764/2880/1196 -f 747/3536/1612 709/2899/1152 764/2880/1196 -f 760/2884/1199 761/2855/1188 783/2878/1194 -f 781/2876/1108 759/2859/1108 758/2843/1108 -f 706/2887/1108 781/2876/1108 784/2886/1200 -f 707/2889/1201 783/2901/1205 785/2890/1202 -f 535/2892/1080 763/2846/1183 777/2882/1197 -f 772/2858/1190 786/2929/1216 787/2894/1204 -f 787/2894/1204 788/2953/1228 789/2927/1215 -f 752/2803/1154 735/2804/1155 787/2894/1204 -f 735/2804/1155 734/2762/1119 787/2894/1204 -f 787/2894/1204 789/2927/1215 752/2803/1154 -f 696/2751/1111 762/2848/1185 697/2786/1141 -f 762/2848/1185 765/2847/1184 697/2786/1141 -f 765/2847/1184 743/2781/1136 746/2785/1140 -f 710/2895/1110 784/3537/1200 775/2896/435 -f 705/2898/1107 780/2879/1195 764/2880/1196 -f 707/2889/1201 704/3538/1106 778/2900/1106 -f 703/2902/486 702/3539/1104 776/2903/1104 -f 706/2887/1108 701/2956/1231 782/2875/1193 -f 687/2905/1101 774/3540/1101 780/2879/1195 -f 703/2902/486 779/2904/486 778/2906/1106 -f 536/2893/1105 777/2882/1197 776/2908/1104 -f 687/2910/1101 686/2897/435 775/2896/435 -f 745/2891/1203 785/2890/1202 791/2912/1206 -f 792/2914/1208 760/2845/1182 753/2826/1171 -f 619/2918/1020 628/2610/1020 636/2916/1210 -f 636/2916/1210 631/3541/1026 613/2917/1027 -f 793/2915/1209 753/2826/1171 715/2827/1172 -f 2015/2920/1212 2001/3542/1225 2004/2921/1213 -f 681/2724/1100 683/2723/1100 794/2922/1100 -f 757/2830/1100 797/2945/1100 798/2924/1100 -f 2013/2709/1089 2021/2708/1088 2022/2824/1170 -f 789/2927/1215 718/2954/1229 719/2928/1172 -f 786/2929/1216 772/2858/1190 782/2875/1193 -f 1931/2646/1047 1932/2637/1040 1933/2638/1040 -f 627/2612/1022 618/2611/1021 612/2932/1028 -f 1908/2933/1218 1913/2577/993 1926/2579/995 -f 608/2571/988 603/2561/980 594/2563/982 -f 1909/2590/1006 1917/2592/1006 1920/2935/1219 -f 1850/2936/1220 1851/2533/964 1852/2535/965 -f 584/2504/947 575/2494/939 578/2496/941 -f 544/2475/930 557/2474/929 549/2463/920 -f 509/2437/898 512/2436/897 528/2453/912 -f 1963/2426/889 1962/2457/915 1964/2456/914 -f 654/3495/1604 639/2676/1067 756/3543/1223 -f 639/2676/1067 647/2690/1077 802/2942/1223 -f 756/3543/1223 639/2676/1067 799/2943/1223 -f 647/2690/1077 662/2692/1077 711/3544/1223 -f 711/3544/1223 795/3545/1223 647/2690/1077 -f 795/3545/1223 802/2942/1223 647/2690/1077 -f 803/2944/1100 804/2946/1100 798/2924/1100 -f 803/2944/1100 796/2923/1100 794/2922/1100 -f 2009/2947/1224 2010/2721/1098 2011/2720/1097 -f 2001/2949/1225 2002/2717/1096 2003/2718/1096 -f 805/2951/1226 790/2913/1207 791/2912/1206 -f 788/2953/1228 717/2955/1230 718/2954/1229 -f 788/2953/1228 793/2915/1209 716/2919/1211 -f 787/2894/1204 792/2914/1208 793/2915/1209 -f 755/3546/1613 800/3547/1614 806/2952/1227 -f 800/3547/1614 805/2951/1226 806/2952/1227 -f 806/2952/1227 801/2930/1217 782/2875/1193 -f 755/3546/1613 806/2952/1227 700/2957/1232 -f 782/2875/1193 701/2956/1231 806/2952/1227 -f 522/3471/1602 521/2444/905 634/2959/1234 -f 521/2444/905 530/2668/1060 634/2959/1234 -f 2164/2960/1235 2163/2974/1246 2180/2961/1236 -f 2168/2963/1237 2178/3548/1243 2129/2964/1238 -f 2151/2966/1240 2178/3548/1243 2168/2963/1237 -f 2167/2968/1242 2126/2977/1249 2129/2969/1238 -f 2151/2971/1240 2155/2979/1251 2167/2968/1242 -f 2177/2972/1244 2109/3370/1540 2111/2973/1245 -f 2153/2975/1247 2148/3371/1541 2177/2972/1244 -f 2167/2968/1242 2164/2960/1235 2162/2976/1248 -f 2154/2978/1250 2164/2960/1235 2167/2968/1242 -f 2162/2976/1248 2165/3549/1252 2166/2980/1252 -f 2153/2975/1247 2163/2974/1246 2164/2960/1235 -f 2162/2976/1248 2111/2973/1245 2088/2981/1253 -f 2126/2977/1249 2162/2976/1248 2161/2982/1254 -f 2130/2965/1239 2127/3465/1601 2146/2984/1256 -f 2143/2986/1258 2145/3550/1257 2146/2987/1256 -f 2115/2989/1260 1044/3020/1291 1038/2990/1261 -f 1018/2992/1263 2115/2989/1260 2125/2991/1262 -f 1034/2994/1265 1023/3040/1310 2124/2995/1266 -f 2117/2996/1267 2124/2995/1266 1020/2997/1268 -f 2123/2999/1270 946/3033/1304 934/3000/1271 -f 950/3002/1273 2123/2999/1270 2121/3001/1272 -f 942/3004/1275 932/3025/1296 2120/3005/1276 -f 1016/3007/1278 2122/3006/1277 2120/3005/1276 -f 934/3000/1271 922/3028/1299 2119/3009/1280 -f 2121/3001/1272 2119/3009/1280 929/3010/1281 -f 2120/3005/1276 932/3025/1296 917/3011/1282 -f 941/3008/1279 2120/3005/1276 2118/3012/1283 -f 2116/3014/1285 869/3022/1293 1034/2994/1265 -f 887/3015/1286 2116/3014/1285 2117/2996/1267 -f 2113/3016/1287 1044/3020/1291 2115/2989/1260 -f 915/3018/1289 2114/3017/1288 2115/2989/1260 -f 868/3019/1290 1042/3551/1615 1044/3020/1291 -f 882/3021/1292 1025/3039/1309 1034/2994/1265 -f 2143/2986/1258 2144/2988/1259 2142/3023/1294 -f 932/3025/1296 933/3552/1616 918/3026/1297 -f 937/3027/1298 925/3553/1617 922/3028/1299 -f 926/3029/1300 2141/3024/1295 2142/3023/1294 -f 945/3031/1302 933/3552/1616 932/3025/1296 -f 948/3032/1303 937/3027/1298 934/3000/1271 -f 926/3034/1300 886/3554/1301 938/3035/1305 -f 1022/3037/1307 949/3036/1306 938/3035/1305 -f 1025/3039/1309 1024/3555/1618 1023/3040/1310 -f 1044/3020/1291 1042/3551/1615 1040/3041/1311 -f 1116/3042/1312 1111/3082/1348 1114/3043/1313 -f 1120/3045/1315 1121/3556/1619 1122/3046/1316 -f 1124/3048/1318 1125/3054/1324 1126/3049/1319 -f 1123/3050/1320 1126/3049/1319 1119/3047/1317 -f 1134/3055/1325 1131/3053/1323 1132/3051/1321 -f 1132/3051/1321 1116/3042/1312 1115/3044/1314 -f 1133/3052/1322 1134/3055/1325 1132/3051/1321 -f 1131/3053/1323 1134/3055/1325 1125/3054/1324 -f 1134/3055/1325 1133/3052/1322 1137/3056/1326 -f 1128/3058/1328 2263/3064/1329 2262/3059/1329 -f 1125/3054/1324 1134/3055/1325 1138/3057/1327 -f 1133/3052/1322 1115/3044/1314 1150/3062/1332 -f 1128/3058/1328 1130/3080/1346 2264/3063/1329 -f 1126/3049/1319 1148/3071/1338 1147/3065/1333 -f 1115/3044/1314 1114/3043/1313 1139/3066/1334 -f 1127/3067/1335 1118/3077/1343 2261/3068/1336 -f 1119/3047/1317 1147/3065/1333 1146/3070/1337 -f 1125/3054/1324 1149/3061/1331 1148/3071/1338 -f 1122/3046/1316 1121/3556/1619 1157/3072/1339 -f 1127/3067/1335 2260/3069/1336 2259/3074/1336 -f 1124/3048/1318 1154/3083/1349 1153/3076/1342 -f 1118/3077/1343 1127/3067/1335 1128/3058/1328 -f 1132/3051/1321 1152/3084/1350 1151/3078/1344 -f 1123/3050/1320 1122/3046/1316 1156/3073/1340 -f 1127/3067/1335 1129/3075/1341 1130/3080/1346 -f 1116/3042/1312 1151/3078/1344 1162/3081/1347 -f 1124/3048/1318 1123/3050/1320 1155/3079/1345 -f 1131/3053/1323 1153/3076/1342 1152/3084/1350 -f 2222/3085/1351 2202/3557/1355 2203/3086/1352 -f 2221/3088/1354 2204/3558/1357 2202/3089/1355 -f 2220/3091/1356 2205/3559/1620 2204/3092/1357 -f 2206/3094/1358 2205/3559/1620 2220/3091/1356 -f 2207/3096/1360 2206/3560/1358 2219/3097/1359 -f 2208/3099/1362 2207/3096/1360 2218/3098/1361 -f 2216/3087/1353 2203/3086/1352 2208/3101/1362 -f 2193/3103/1364 2182/3151/1365 2181/3104/1365 -f 2191/3106/1366 2193/3561/1364 2194/3107/1364 -f 2189/3109/1367 2191/3562/1366 2192/3110/1366 -f 1240/3112/1368 1238/3115/1371 1237/3113/1369 -f 1238/3115/1371 1236/3563/1621 1235/3116/1372 -f 1241/3117/1373 1242/3128/1383 1240/3112/1368 -f 1181/3118/1374 1177/3130/1385 1173/3119/1375 -f 1229/3121/1377 1169/3564/1377 1232/3122/1378 -f 1230/3124/1380 1245/3131/1386 1231/3125/1381 -f 1244/3127/1382 1243/3565/1382 1242/3128/1383 -f 1183/3129/1384 1179/3566/1622 1177/3130/1385 -f 1245/3131/1386 1248/3567/1623 1251/3132/1387 -f 2187/3133/1388 2189/3109/1367 2190/3111/1367 -f 1246/3123/1379 1232/3122/1378 1252/3135/1389 -f 1249/3137/1391 1253/3568/1624 1254/3138/1392 -f 1251/3132/1387 1248/3567/1623 1250/3140/1394 -f 2185/3142/1396 2187/3569/1388 2188/3143/1388 -f 1252/3135/1389 1253/3568/1624 1249/3137/1391 -f 1187/3145/1397 1179/3566/1622 1183/3129/1384 -f 1234/3147/1399 1187/3145/1397 1185/3146/1398 -f 1250/3140/1394 1257/3570/1402 1260/3149/1400 -f 2184/3150/1401 2183/3571/1401 2185/3142/1396 -f 2182/3151/1365 2183/3572/1401 2184/3152/1401 -f 1257/3153/1402 1259/3573/1625 1262/3154/1403 -f 1170/3156/1404 1164/3574/1404 1163/3157/1404 -f 1255/3159/1393 1254/3575/1392 1261/3160/1405 -f 2239/3162/1407 2252/3252/1457 2251/3163/1408 -f 2245/3165/1410 2254/3169/1414 2253/3166/1411 -f 2245/3165/1410 2243/3576/1420 2255/3168/1413 -f 2248/3170/1415 2247/3246/1418 2249/3171/1416 -f 2239/3173/1407 2242/3181/1421 2247/3174/1418 -f 2245/3176/1410 2248/3179/1415 2244/3177/1419 -f 2246/3175/1412 2247/3174/1418 2248/3179/1415 -f 2240/3180/1409 2241/3577/1626 2242/3181/1421 -f 1612/3185/1425 1613/3195/1434 1614/3186/1426 -f 1617/3188/1428 1618/3578/1435 1619/3189/1429 -f 1610/3183/1423 1612/3579/1425 1615/3194/1427 -f 1616/3190/1430 1619/3189/1429 1614/3186/1426 -f 1620/3191/1431 1622/3193/1433 1618/3196/1435 -f 1614/3198/1426 1619/3207/1429 1623/3199/1436 -f 1618/3196/1435 1622/3193/1433 1625/3201/1438 -f 1614/3198/1426 1624/3200/1437 1628/3204/1441 -f 1618/3206/1435 1626/3212/1439 1623/3199/1436 -f 1611/3184/1424 1615/3194/1427 1628/3208/1441 -f 1628/3204/1441 1624/3200/1437 1630/3210/1443 -f 1626/3212/1439 1632/3580/1447 1633/3213/1445 -f 1627/3203/1440 1628/3208/1441 1631/3215/1444 -f 1623/3199/1436 1633/3213/1445 1630/3210/1443 -f 1626/3202/1439 1625/3201/1438 1634/3214/1446 -f 1630/3218/1443 1636/3225/1453 1637/3219/1449 -f 1633/3221/1445 1632/3226/1447 1638/3222/1450 -f 1631/3215/1444 1637/3581/1449 1635/3217/1448 -f 1633/3221/1445 1639/3223/1451 1636/3225/1453 -f 1632/3226/1447 1634/3582/1446 1640/3227/1452 -f 2201/3228/1364 2215/3583/1364 2209/3229/1365 -f 2214/3231/1366 2215/3584/1364 2201/3232/1364 -f 2199/3234/1367 2213/3585/1367 2214/3235/1366 -f 2212/3237/1388 2213/3585/1367 2199/3234/1367 -f 2211/3239/1396 2212/3586/1388 2198/3240/1388 -f 2210/3242/1401 2211/3239/1396 2197/3241/1396 -f 2195/3230/1365 2209/3229/1365 2210/3244/1401 -f 2247/3246/1418 2242/3248/1421 2257/3247/1454 -f 2242/3248/1421 2241/3587/1626 2258/3249/1455 -f 2248/3170/1415 2250/3172/1417 2256/3250/1456 -f 2246/3167/1412 2253/3166/1411 2252/3252/1457 -f 2237/3253/1458 2238/3588/1458 2226/3254/445 -f 2236/3256/431 2238/3589/1458 2237/3257/1458 -f 2233/3259/1459 2234/3590/1459 2236/3256/431 -f 2232/3260/521 2234/3591/1459 2233/3261/1459 -f 2229/3263/1460 2230/3592/1460 2232/3260/521 -f 2228/3264/433 2230/3593/1460 2229/3265/1460 -f 2224/3267/1461 2225/3594/1461 2228/3264/433 -f 2226/3254/445 2225/3595/1461 2224/3268/1461 -f 1675/3269/1462 1682/3273/1466 1676/3270/1463 -f 1674/3272/1465 1681/3596/1627 1682/3273/1466 -f 1680/3274/1467 1681/3596/1627 1674/3272/1465 -f 1679/3276/1469 1680/3274/1467 1673/3275/1468 -f 1678/3278/1471 1679/3276/1469 1672/3277/1470 -f 1670/3280/1473 1677/3281/1474 1678/3278/1471 -f 1669/3271/1464 1676/3270/1463 1677/3281/1474 -f 1792/3282/1475 1791/3597/1478 1798/3283/1476 -f 1791/3285/1478 1786/3288/1480 1799/3286/1479 -f 1786/3288/1480 1785/3290/1482 1808/3289/1481 -f 1785/3290/1482 1790/3598/1484 1809/3291/1483 -f 1790/3292/1484 1789/3295/1486 1810/3293/1485 -f 1789/3295/1486 1788/3298/1489 1807/3296/1487 -f 1787/3297/1488 1806/3300/1491 1807/3296/1487 -f 1797/3299/1490 1805/3599/1493 1806/3300/1491 -f 1796/3301/1492 1803/3305/1495 1805/3302/1493 -f 1795/3304/1494 1804/3600/1497 1803/3305/1495 -f 1795/3306/1494 1794/3310/1499 1801/3307/1496 -f 1793/3309/1498 1802/3311/1500 1801/3307/1496 -f 1792/3282/1475 1800/3284/1477 1802/3311/1500 -f 1837/3312/1501 1826/3340/1519 1836/3313/1502 -f 1839/3315/1503 1830/3601/1503 1825/3316/1504 -f 1841/3318/1505 1824/3602/1505 1829/3319/1506 -f 1844/3321/1507 1843/3337/1516 1833/3322/1508 -f 1838/3324/1502 1836/3603/1502 1835/3325/1510 -f 1842/3320/1506 1829/3319/1506 1828/3327/1511 -f 1847/3329/1513 1845/3326/1510 1835/3325/1510 -f 1848/3331/1515 1831/3341/1515 1830/3332/1503 -f 1841/3334/1505 1840/3317/1504 1825/3316/1504 -f 1847/3336/1513 1834/3604/1514 1833/3322/1508 -f 1846/3328/1512 1828/3327/1511 1827/3338/1517 -f 1837/3312/1501 1849/3339/1518 1827/3338/1517 -f 1848/3331/1515 1844/3321/1507 1832/3323/1509 -f 1893/3342/1520 1884/3349/1520 1886/3343/1521 -f 1895/3345/1523 1880/3354/1523 1885/3346/1524 -f 1893/3342/1520 1896/3605/1526 1876/3348/1526 -f 1897/3350/1527 1898/3361/1533 1883/3351/1528 -f 1888/3353/1530 1881/3606/1530 1880/3354/1523 -f 1889/2516/952 1878/2515/952 1879/3355/1531 -f 1896/3357/1526 1899/3366/1537 1877/3358/1532 -f 1892/3360/1522 1886/3607/1521 1883/3351/1528 -f 1894/3347/1525 1885/3346/1524 1901/3362/1534 -f 1850/2936/1220 1853/2937/1221 1855/3364/957 -f 1899/3366/1537 1900/3363/1535 1901/3362/1534 -f 1891/3367/950 1897/3350/1527 1882/3352/1529 -f 1873/2530/962 1860/2529/961 1864/2795/1149 -f 2176/3369/1539 2081/3373/1543 2109/3370/1540 -f 2148/3371/1541 2147/3383/1553 2176/3369/1539 -f 2175/3372/1542 2060/3608/1545 2081/3373/1543 -f 1022/3037/1307 1019/3038/1308 1035/3374/1544 -f 2065/3376/1546 2066/3609/1628 2067/3377/1547 -f 2068/3379/1549 2069/3610/1629 2070/3380/1550 -f 2150/3382/1552 2175/3372/1542 2176/3369/1539 -f 2174/3384/1554 1022/3037/1307 2060/3375/1545 -f 2150/3386/1552 2149/3389/1557 2174/3384/1554 -f 2173/3387/1555 949/3036/1306 1022/3037/1307 -f 2159/3388/1556 2173/3387/1555 2174/3384/1554 -f 2173/3387/1555 2172/3398/1565 926/3034/1300 -f 2081/3373/1543 2060/3608/1545 1035/3390/1544 -f 2082/3392/1559 2089/3611/1630 2090/3393/1560 -f 2085/3395/1562 2084/3612/1631 2091/3396/1563 -f 2159/3388/1556 2160/3613/1568 2172/3398/1565 -f 2171/3399/1566 2141/3024/1295 926/3029/1300 -f 2157/3401/1567 2171/3399/1566 2172/3400/1565 -f 2170/3403/1569 2143/2986/1258 2141/3024/1295 -f 2157/3401/1567 2156/3614/1572 2170/3403/1569 -f 2169/3404/1570 2145/2985/1257 2143/3405/1258 -f 2158/3407/1571 2169/3404/1570 2170/3406/1569 -f 2079/3409/1573 2097/3412/1576 2093/3410/1574 -f 2097/3412/1576 2085/3395/1562 2092/3397/1564 -f 2098/3413/1577 2095/3416/1580 2087/3414/1578 -f 2083/3394/1561 2090/3393/1560 2095/3416/1580 -f 2168/2963/1237 2130/2965/1239 2145/2985/1257 -f 2158/3407/1571 2152/2967/1241 2168/2963/1237 -f 2135/3417/1581 2053/3430/1581 2050/3418/1581 -f 2049/3420/1581 2135/3417/1581 2134/3419/1581 -f 2046/3422/1582 2043/3428/1582 2132/3423/1582 -f 2045/3425/1582 2133/3424/1582 2132/3423/1582 -f 2047/3427/1582 2044/3615/1582 2043/3428/1582 -f 2052/3429/1581 2051/3616/1581 2050/3418/1581 -f 2058/3431/1583 2103/3434/1586 2101/3432/1584 -f 2103/3434/1586 2068/3379/1549 2071/3381/1551 -f 2104/3435/1587 2102/3438/1590 2062/3436/1588 -f 2064/3378/1548 2067/3377/1547 2102/3438/1590 -f 2057/3439/1591 2072/3617/1598 2073/3440/1592 -f 2075/3442/1593 2078/3618/1595 2094/3443/1594 -f 2078/3445/1595 2099/3619/1596 2100/3446/1596 -f 2106/3448/1597 2072/3617/1598 2057/3439/1591 -f 2110/3450/1597 2136/3453/1597 2137/3451/1591 -f 2108/3449/1597 2057/3439/1591 2137/3451/1591 -f 2081/3373/1543 2063/3391/1558 2107/3454/1599 -f 2109/3370/1540 2107/3454/1599 2088/2981/1253 -f 2096/3455/1595 2139/3458/1594 2138/3456/1596 -f 2094/3447/1594 2100/3446/1596 2138/3456/1596 -f 2077/3459/1593 2140/3462/1593 2139/3460/1594 -f 2076/3444/1593 2094/3443/1594 2139/3460/1594 -f 2126/2977/1249 2112/2983/1255 2128/3463/1600 -f 2130/2965/1239 2129/2964/1238 2128/3464/1600 -f 2137/3451/1591 2056/3467/1592 2055/3466/1592 -f 2057/3439/1591 2074/3441/1592 2056/3467/1592 +f 1963/2246/953 1981/2247/954 1968/2248/954 +f 504/2249/955 506/2250/956 503/2251/956 +f 499/2252/957 508/2253/958 500/2254/959 +f 510/2255/960 512/2256/961 509/2257/962 +f 513/2258/963 515/2259/964 516/2260/965 +f 517/2261/966 519/2262/967 520/2263/968 +f 521/2264/969 507/2265/970 499/2266/957 +f 524/2267/971 526/2268/972 523/2269/973 +f 514/2270/974 520/2263/968 515/2271/964 +f 518/2272/975 528/2273/976 519/2274/967 +f 1961/2275/977 1964/2276/978 1962/2277/979 +f 500/2254/959 525/2278/980 524/2279/971 +f 529/2280/981 516/2260/965 537/2281/982 +f 542/2282/983 549/2283/984 550/2284/983 +f 547/2285/985 552/2286/986 546/2287/987 +f 540/2288/988 553/2289/989 554/2290/990 +f 548/2291/991 551/2292/985 547/2285/985 +f 545/2293/992 557/2294/993 544/2295/994 +f 503/2296/956 553/2289/989 541/2297/989 +f 504/2249/955 550/2298/983 505/2299/955 +f 538/2300/995 555/2301/991 548/2302/991 +f 545/2293/992 552/2303/986 556/2304/996 +f 564/2305/997 566/2306/998 563/2307/998 +f 568/2308/999 570/2309/1000 567/2310/1000 +f 572/2311/1001 574/2312/1002 571/2313/1002 +f 575/2314/1003 577/2315/1004 578/2316/1005 +f 563/2317/998 580/2318/1006 579/2319/1006 +f 571/2313/1002 581/2320/1007 561/2321/1008 +f 582/2322/1009 580/2318/1006 583/2323/1010 +f 584/2324/1011 569/2325/999 568/2326/999 +f 572/2327/1001 570/2309/1000 573/2328/1001 +f 582/2329/1009 577/2315/1004 576/2330/1012 +f 1890/2331/1013 1887/2332/1014 1879/2333/1013 +f 1888/2334/1015 1878/2335/1016 1889/2336/1016 +f 1874/2337/1017 1863/2329/1018 1861/2330/1019 +f 1872/2338/1020 1855/2339/1021 1854/2317/1020 +f 1866/2340/1022 1857/2341/1022 1867/2342/1022 +f 1865/2343/1023 1858/2344/1024 1871/2345/1024 +f 1874/2337/1017 1860/2314/1025 1873/2346/1026 +f 1870/2347/1027 1854/2317/1020 1862/2319/1027 +f 1851/2348/1028 1858/2313/1024 1852/2321/1029 +f 1999/2349/1030 1996/2350/1031 2000/2351/1030 +f 1998/2352/1030 2000/2351/1030 1997/2353/1031 +f 1998/2352/1030 1994/2354/1031 1993/2355/1032 +f 1995/2356/1031 1991/2357/1031 1996/2350/1031 +f 1973/2358/1033 1990/2359/1034 1975/2360/1035 +f 1870/2347/1027 1863/2322/1018 1869/2361/1036 +f 1993/2355/1032 1979/2362/1037 1966/2363/1038 +f 598/2364/1039 593/2365/1040 597/2366/1040 +f 587/2340/1041 600/2367/1042 599/2335/1041 +f 602/2368/1043 592/2369/1044 601/2370/1045 +f 603/2371/1046 595/2337/1047 594/2346/1048 +f 605/2372/1049 593/2338/1040 591/2347/1049 +f 601/2370/1045 560/2348/1050 606/2373/1051 +f 607/2374/1052 591/2347/1049 590/2361/1053 +f 608/2332/1054 588/2375/1055 600/2333/1056 +f 602/2376/1057 587/2340/1041 599/2335/1041 +f 1988/2377/1058 1976/2378/1059 1961/2275/977 +f 1913/2379/1060 1921/2380/1061 1926/2381/1062 +f 1912/2382/1063 1922/2383/1064 1904/2384/1065 +f 1928/2385/1066 1916/2386/1067 1910/2387/1068 +f 1912/2382/1063 1925/2388/1069 1930/2389/1070 +f 1910/2387/1068 1915/2390/1071 1902/2391/1072 +f 1909/2392/1073 1918/2393/1074 1917/2394/1073 +f 1906/2395/1075 1919/2396/1076 1907/2397/1077 +f 1905/2398/1078 1922/2383/1064 1921/2380/1061 +f 607/2399/1052 595/2337/1047 604/2400/1079 +f 1902/2391/1072 1923/2401/1080 1903/2402/1080 +f 621/2403/1081 620/2404/1082 617/2405/1081 +f 624/2406/1083 610/2407/1084 623/2408/1084 +f 626/2409/1085 616/2410/1086 625/2411/1086 +f 628/2412/1087 618/2413/1088 627/2414/1089 +f 629/2415/1090 617/2416/1081 614/2417/1090 +f 630/2418/1091 616/2410/1086 615/2419/1092 +f 631/2420/1093 614/2417/1090 613/2421/1094 +f 632/2422/1095 611/2331/1083 624/2423/1083 +f 626/2424/1085 610/2407/1084 609/2425/1085 +f 1935/2426/1096 1957/2427/1097 1949/2428/1098 +f 1942/2429/1099 1958/2430/1100 1943/2431/1101 +f 1945/2432/1102 1951/2433/1103 1937/2434/1103 +f 1946/2435/1104 1955/2436/1105 1947/2437/1106 +f 1932/2438/1107 1958/2430/1100 1933/2439/1107 +f 1940/2440/1108 1957/2427/1097 1944/2441/1109 +f 1939/2442/1110 1952/2443/1111 1953/2444/1110 +f 1942/2429/1099 1950/2445/1112 1956/2446/1113 +f 1931/2447/1114 1955/2436/1105 1941/2448/1115 +f 1940/2440/1108 1953/2444/1110 1954/2449/1108 +f 1938/2450/1111 1951/2433/1103 1952/2443/1111 +f 502/2451/1116 637/2452/1117 638/2453/1116 +f 1992/2454/1031 1987/2455/1118 1991/2357/1031 +f 1959/2456/1119 1990/2359/1034 1977/2457/1119 +f 1988/2377/1058 1985/2458/1120 1989/2459/1121 +f 1971/2460/1122 1987/2455/1118 1974/2461/1118 +f 1969/2462/1123 1983/2463/1124 1970/2464/1124 +f 1973/2358/1033 1980/2465/1125 1986/2466/1033 +f 1960/2467/1126 1985/2458/1120 1972/2468/1127 +f 537/2281/982 530/2469/1128 529/2280/981 +f 1970/2464/1124 1984/2470/1122 1971/2460/1122 +f 531/2471/1129 649/2472/1130 650/2473/1131 +f 2038/2474/1132 2042/2475/1133 2041/2476/1134 +f 639/2477/1135 655/2478/1136 640/2479/1137 +f 641/2480/1138 657/2481/1139 642/2482/1139 +f 643/2483/1140 659/2484/1141 644/2485/1141 +f 645/2486/1142 638/2453/1116 660/2487/1143 +f 640/2479/1137 661/2488/1144 646/2489/1144 +f 643/2483/1140 657/2481/1139 658/2490/1140 +f 647/2491/1145 659/2492/1141 662/2493/1145 +f 1969/2462/1123 1981/2247/954 1982/2494/1123 +f 648/2495/1146 637/2452/1117 501/2496/1117 +f 666/2497/1147 534/2498/1148 653/2499/1148 +f 2041/2476/1134 2040/2500/1149 2039/2501/1150 +f 2039/2501/1150 2036/2502/1151 2035/2503/1150 +f 2008/2504/1150 2037/2505/1152 2038/2474/1132 +f 2019/2506/1153 2031/2507/1154 2020/2508/1155 +f 2035/2503/1150 2021/2509/1156 2013/2510/1157 +f 2005/2511/1158 2030/2512/1159 2034/2513/1160 +f 2006/2514/1161 2034/2513/1160 2032/2515/1162 +f 2008/2504/1150 2028/2516/1163 2033/2517/1150 +f 2002/2518/1164 2032/2515/1162 2003/2519/1164 +f 2020/2520/1155 2011/2521/1165 2010/2522/1166 +f 677/2523/1167 683/2524/1168 681/2525/1168 +f 668/2526/1169 685/2527/445 684/2528/1169 +f 670/2529/1170 688/2530/1171 689/2531/1170 +f 672/2532/1172 533/2533/1173 690/2534/1172 +f 674/2535/1174 691/2536/502 692/2537/1174 +f 675/2538/1175 684/2539/1169 693/2540/1175 +f 670/2529/1170 694/2541/1176 676/2542/1177 +f 672/2543/1172 691/2536/502 673/2544/502 +f 674/2545/1174 682/2546/1167 677/2523/1167 +f 645/2547/1142 660/2548/1143 678/2549/1178 +f 680/2550/1179 685/2527/445 667/2551/445 +f 696/2552/1180 698/2553/1181 699/2554/1182 +f 2029/2555/1183 2026/2556/1184 2030/2512/1159 +f 727/2557/555 731/2558/1185 722/2559/555 +f 732/2560/1186 724/2561/1187 733/2562/1188 +f 734/2563/1189 720/2564/1190 721/2565/1191 +f 737/2566/1192 730/2567/1193 736/2568/1193 +f 713/2569/1194 739/2570/1195 738/2571/1196 +f 740/2572/1197 725/2573/1198 726/2574/1199 +f 741/2575/1200 721/2565/1191 722/2576/1201 +f 731/2577/1185 736/2578/1202 739/2570/1195 +f 738/2579/1203 714/2580/1204 742/2581/1205 +f 743/2582/1206 726/2574/1199 727/2583/1207 +f 733/2562/1188 723/2584/1208 744/2585/1209 +f 746/2586/1210 698/2553/1181 697/2587/1211 +f 2017/2588/1212 2028/2516/1163 2007/2589/1213 +f 615/2419/1092 633/2590/1214 630/2418/1091 +f 1907/2397/1077 1924/2591/1215 1914/2592/1216 +f 606/2373/1051 559/2593/1217 749/2594/1217 +f 1867/2375/1218 1864/2324/1219 1857/2326/1218 +f 561/2321/1008 750/2595/1220 562/2596/1220 +f 554/2290/990 539/2597/1221 540/2288/988 +f 708/2598/1222 665/2599/1223 679/2600/1222 +f 752/2601/1224 720/2564/1190 735/2602/1225 +f 1967/2603/1226 1979/2362/1037 1980/2465/1125 +f 2016/2604/1227 2023/2605/1228 2024/2606/1229 +f 641/2607/1138 651/2608/1230 656/2609/1138 +f 671/2610/1173 534/2498/1148 533/2533/1173 +f 696/2552/1180 729/2611/1231 737/2566/1192 +f 539/2597/1221 558/2612/995 538/2300/995 +f 564/2305/997 750/2595/1220 565/2613/1232 +f 1866/2614/1233 1859/2327/1023 1865/2343/1023 +f 1911/2615/1234 1923/2401/1080 1925/2388/1069 +f 598/2364/1039 559/2593/1217 596/2616/1235 +f 1928/2385/1066 1914/2592/1216 1927/2617/1236 +f 633/2590/1214 620/2404/1082 622/2618/1082 +f 1936/2619/1237 1949/2428/1098 1950/2445/1112 +f 743/2582/1206 728/2620/1238 746/2586/1210 +f 2019/2506/1153 2022/2621/1239 2027/2622/1240 +f 753/2623/1241 714/2580/1204 715/2624/1242 +f 2018/2625/1243 2012/2626/1244 2026/2556/1184 +f 757/2627/1245 688/2530/1171 669/2628/1171 +f 741/2575/1200 723/2629/1246 744/2630/1247 +f 676/2542/1177 695/2631/1179 680/2632/1179 +f 2016/2604/1227 2025/2633/1248 2017/2634/1212 +f 648/2635/1146 661/2488/1144 663/2636/1249 +f 1959/2456/1119 1978/2637/1126 1960/2467/1126 +f 1946/2435/1104 1948/2638/1250 1945/2432/1102 +f 523/2269/973 511/2639/1251 510/2255/960 +f 758/2640/1176 741/2575/1200 744/2630/1247 +f 761/2641/1252 753/2623/1241 760/2642/1253 +f 763/2643/1254 765/2644/1255 762/2645/1256 +f 762/2645/1256 737/2566/1192 766/2646/1148 +f 733/2562/1188 758/2647/1257 767/2648/502 +f 768/2649/1258 743/2582/1206 765/2644/1255 +f 742/2650/1259 769/2651/1169 761/2652/1260 +f 739/2570/1195 771/2653/1261 770/2654/445 +f 772/2655/1262 741/2575/1200 759/2656/1176 +f 740/2657/1263 773/2658/1174 768/2659/1263 +f 738/2571/1196 770/2654/445 769/2660/1169 +f 771/2653/1261 737/2661/1264 766/2662/1264 +f 773/2663/1174 733/2562/1188 767/2648/502 +f 774/2664/1174 767/2648/502 775/2665/502 +f 771/2653/1261 777/2666/1264 776/2667/1261 +f 769/2660/1169 779/2668/445 778/2669/1169 +f 768/2659/1263 774/2670/1174 780/2671/1263 +f 782/2672/1265 759/2656/1176 781/2673/1266 +f 770/2654/445 776/2667/1261 779/2668/445 +f 761/2652/1260 778/2674/1169 783/2675/1267 +f 780/2676/1268 765/2644/1255 764/2677/1269 +f 767/2648/502 784/2678/1257 775/2665/502 +f 763/2643/1254 766/2646/1148 777/2679/1270 +f 712/2680/1271 764/2677/1269 763/2643/1254 +f 760/2681/1272 783/2675/1267 785/2682/1272 +f 781/2673/1266 758/2640/1176 784/2683/1273 +f 706/2684/1274 784/2683/1273 710/2685/1179 +f 707/2686/1275 785/2687/1276 745/2688/1277 +f 535/2689/1148 777/2679/1270 536/2690/1173 +f 734/2563/1189 772/2655/1262 787/2691/1278 +f 746/2586/1210 697/2587/1211 765/2644/1255 +f 710/2692/1179 775/2693/445 686/2694/445 +f 705/2695/1175 764/2677/1269 709/2696/1279 +f 707/2686/1275 778/2697/1174 783/2698/1280 +f 703/2699/502 776/2700/1172 779/2701/502 +f 706/2684/1274 782/2672/1265 781/2673/1266 +f 687/2702/1169 780/2676/1268 705/2695/1175 +f 703/2699/502 778/2703/1174 704/2704/1174 +f 536/2690/1173 776/2705/1172 702/2706/1172 +f 687/2707/1169 775/2693/445 774/2708/1169 +f 745/2688/1277 791/2709/1281 790/2710/1282 +f 792/2711/1283 753/2623/1241 793/2712/1284 +f 636/2713/1285 613/2714/1094 619/2715/1286 +f 793/2712/1284 715/2624/1242 716/2716/1287 +f 2015/2717/1288 2004/2718/1289 2023/2605/1228 +f 681/2525/1168 794/2719/1168 796/2720/1168 +f 757/2627/1245 798/2721/1168 754/2722/1168 +f 2013/2510/1157 2022/2621/1239 2014/2723/1290 +f 789/2724/1291 719/2725/1292 752/2601/1224 +f 786/2726/1293 782/2672/1265 801/2727/1294 +f 1931/2447/1114 1933/2439/1107 1934/2728/1114 +f 627/2414/1089 612/2729/1095 632/2422/1095 +f 1908/2730/1295 1926/2381/1062 1918/2393/1074 +f 608/2332/1054 594/2346/1048 589/2731/1054 +f 1909/2392/1073 1920/2732/1296 1906/2395/1075 +f 1850/2593/1297 1852/2321/1029 1853/2596/1298 +f 584/2324/1011 578/2316/1005 585/2733/1011 +f 544/2295/994 549/2283/984 543/2734/984 +f 509/2257/962 528/2273/976 527/2735/1299 +f 1963/2246/953 1964/2276/978 1965/2736/953 +f 802/2737/1300 799/2738/1300 639/2477/1135 +f 803/2739/1168 798/2721/1168 797/2740/1168 +f 803/2739/1168 794/2719/1168 804/2741/1168 +f 2009/2742/1301 2011/2521/1165 2012/2743/1244 +f 2001/2744/1302 2003/2519/1164 2004/2745/1289 +f 805/2746/1303 791/2709/1281 806/2747/1304 +f 788/2748/1305 718/2749/1306 789/2724/1291 +f 788/2748/1305 716/2716/1287 717/2750/1307 +f 787/2691/1278 793/2712/1284 788/2748/1305 +f 701/2751/1308 700/2752/1309 806/2747/1304 +f 530/2469/1128 635/2753/1310 634/2754/1311 +f 2164/2755/1312 2180/2756/1313 2179/2757/1314 +f 2168/2758/1315 2129/2759/1316 2130/2760/1317 +f 2151/2761/1318 2168/2758/1315 2152/2762/1319 +f 2167/2763/1320 2129/2764/1316 2178/2765/1321 +f 2151/2766/1318 2167/2763/1320 2178/2765/1321 +f 2177/2767/1322 2111/2768/1323 2163/2769/1324 +f 2153/2770/1325 2177/2767/1322 2163/2769/1324 +f 2167/2763/1320 2162/2771/1326 2126/2772/1327 +f 2154/2773/1328 2167/2763/1320 2155/2774/1329 +f 2162/2771/1326 2166/2775/1330 2111/2768/1323 +f 2153/2770/1325 2164/2755/1312 2154/2773/1328 +f 2162/2771/1326 2088/2776/1331 2161/2777/1332 +f 2126/2772/1327 2161/2777/1332 2112/2778/1333 +f 2130/2760/1317 2146/2779/1334 2145/2780/1335 +f 2143/2781/1336 2146/2782/1334 2144/2783/1337 +f 2115/2784/1338 1038/2785/1339 2125/2786/1340 +f 1018/2787/1341 2125/2786/1340 1017/2788/1342 +f 1034/2789/1343 2124/2790/1344 2117/2791/1345 +f 2117/2791/1345 1020/2792/1346 1021/2793/1347 +f 2123/2794/1348 934/2795/1349 2121/2796/1350 +f 950/2797/1351 2121/2796/1350 940/2798/1352 +f 942/2799/1353 2120/2800/1354 2122/2801/1355 +f 1016/2802/1356 2120/2800/1354 941/2803/1357 +f 934/2795/1349 2119/2804/1358 2121/2796/1350 +f 2121/2796/1350 929/2805/1359 940/2798/1352 +f 2120/2800/1354 917/2806/1360 2118/2807/1361 +f 941/2803/1357 2118/2807/1361 930/2808/1362 +f 2116/2809/1363 1034/2789/1343 2117/2791/1345 +f 887/2810/1364 2117/2791/1345 1021/2793/1347 +f 2113/2811/1365 2115/2784/1338 2114/2812/1366 +f 915/2813/1367 2115/2784/1338 1018/2787/1341 +f 868/2814/1368 1044/2815/1369 2113/2811/1365 +f 882/2816/1370 1034/2789/1343 869/2817/1371 +f 2143/2781/1336 2142/2818/1372 2141/2819/1373 +f 932/2820/1374 918/2821/1375 917/2806/1360 +f 937/2822/1376 922/2823/1377 934/2795/1349 +f 926/2824/1378 2142/2818/1372 886/2825/1379 +f 945/2826/1380 932/2820/1374 942/2799/1353 +f 948/2827/1381 934/2795/1349 946/2828/1382 +f 926/2829/1378 938/2830/1383 949/2831/1384 +f 1022/2832/1385 938/2830/1383 1019/2833/1386 +f 1025/2834/1387 1023/2835/1388 1034/2789/1343 +f 1044/2815/1369 1040/2836/1389 1038/2785/1339 +f 1116/2837/1390 1114/2838/1391 1115/2839/1392 +f 1120/2840/1393 1122/2841/1394 1119/2842/1395 +f 1124/2843/1396 1126/2844/1397 1123/2845/1398 +f 1123/2845/1398 1119/2842/1395 1122/2841/1394 +f 1132/2846/1399 1115/2839/1392 1133/2847/1400 +f 1131/2848/1401 1125/2849/1402 1124/2843/1396 +f 1134/2850/1403 1137/2851/1404 1138/2852/1405 +f 1128/2853/1406 2262/2854/1407 1117/2855/1408 +f 1125/2849/1402 1138/2852/1405 1149/2856/1409 +f 1133/2847/1400 1150/2857/1410 1137/2851/1404 +f 1128/2853/1406 2264/2858/1407 2263/2859/1407 +f 1126/2844/1397 1147/2860/1411 1119/2842/1395 +f 1115/2839/1392 1139/2861/1412 1150/2857/1410 +f 1127/2862/1413 2261/2863/1414 2260/2864/1414 +f 1119/2842/1395 1146/2865/1415 1120/2840/1393 +f 1125/2849/1402 1148/2866/1416 1126/2844/1397 +f 1122/2841/1394 1157/2867/1417 1156/2868/1418 +f 1127/2862/1413 2259/2869/1414 1129/2870/1419 +f 1124/2843/1396 1153/2871/1420 1131/2848/1401 +f 1118/2872/1421 1128/2853/1406 1117/2855/1408 +f 1132/2846/1399 1151/2873/1422 1116/2837/1390 +f 1123/2845/1398 1156/2868/1418 1155/2874/1423 +f 1127/2862/1413 1130/2875/1424 1128/2853/1406 +f 1116/2837/1390 1162/2876/1425 1111/2877/1426 +f 1124/2843/1396 1155/2874/1423 1154/2878/1427 +f 1131/2848/1401 1152/2879/1428 1132/2846/1399 +f 2222/2880/1429 2203/2881/1430 2216/2882/1431 +f 2221/2883/1432 2202/2884/1433 2222/2885/1429 +f 2220/2886/1434 2204/1425/1435 2221/2887/1432 +f 2206/2888/1436 2220/2886/1434 2219/2889/1437 +f 2207/2890/1438 2219/2891/1437 2218/2892/1439 +f 2208/2893/1440 2218/2892/1439 2217/2894/1441 +f 2216/2882/1431 2208/2895/1440 2217/2896/1441 +f 2193/2897/1442 2181/2898/1443 2194/2899/1442 +f 2191/2900/1444 2194/2901/1442 2192/2902/1444 +f 2189/2903/1445 2192/2904/1444 2190/2905/1445 +f 1240/2906/1446 1237/2907/1447 1239/2908/1448 +f 1238/2909/1449 1235/2910/1450 1237/2907/1447 +f 1241/2911/1451 1240/2906/1446 1239/2908/1448 +f 1181/2912/1452 1173/2913/1453 1175/2914/1454 +f 1229/2915/1455 1232/2916/1456 1246/2917/1457 +f 1230/1361/1458 1231/2918/1459 1228/2919/1458 +f 1244/2920/1460 1242/2921/1461 1241/2911/1451 +f 1183/2922/1462 1177/2923/1463 1181/2912/1452 +f 1245/2924/1464 1251/2925/1465 1231/2918/1459 +f 2187/2926/1466 2190/2905/1445 2188/2927/1466 +f 1246/2917/1457 1252/2928/1467 1247/2929/1468 +f 1249/2930/1469 1254/2931/1470 1255/2932/1471 +f 1251/2925/1465 1250/2933/1472 1256/2934/1473 +f 2185/2935/1474 2188/2936/1466 2186/2937/1474 +f 1252/2928/1467 1249/2930/1469 1247/2929/1468 +f 1187/2938/1475 1183/2922/1462 1185/2939/1476 +f 1234/2940/1477 1185/2939/1476 1233/2941/1477 +f 1250/2933/1472 1260/2942/1478 1256/2934/1473 +f 2184/2943/1479 2185/2935/1474 2186/2937/1474 +f 2182/2944/1443 2184/2945/1479 2181/2898/1443 +f 1257/2946/1480 1262/2947/1481 1260/2948/1478 +f 1170/2949/1482 1163/2950/1482 1167/2951/1483 +f 1255/2952/1471 1261/2953/1484 1258/2954/1485 +f 2239/2955/1486 2251/2038/1487 2240/2956/1488 +f 2245/2957/1489 2253/2040/1490 2246/2958/1491 +f 2245/2957/1489 2255/2042/1492 2254/2041/1493 +f 2248/2959/1494 2249/2054/1495 2250/2052/1496 +f 2239/2960/1486 2247/2961/1497 2246/2962/1491 +f 2245/2963/1489 2244/2964/1498 2243/1146/1499 +f 2246/2962/1491 2248/2965/1494 2245/2963/1489 +f 2240/2966/1488 2242/2967/1500 2239/2960/1486 +f 1609/2968/1501 1610/2969/1502 1611/2970/1503 +f 1612/2971/1504 1614/2972/1505 1615/2973/1506 +f 1617/2548/1507 1619/2974/1508 1616/2975/1509 +f 1620/2976/1510 1621/2977/1511 1622/2978/1512 +f 1610/2969/1502 1615/2979/1506 1611/2970/1503 +f 1616/2975/1509 1614/2972/1505 1613/2980/1513 +f 1620/2976/1510 1618/2981/1514 1617/2982/1507 +f 1614/2983/1505 1623/2984/1515 1624/2985/1516 +f 1618/2981/1514 1625/2986/1517 1626/2987/1518 +f 1609/2968/1501 1611/2970/1503 1627/2988/1519 +f 1614/2983/1505 1628/2989/1520 1615/2990/1506 +f 1618/2991/1514 1623/2984/1515 1619/2992/1508 +f 1622/2978/1512 1621/2977/1511 1625/2986/1517 +f 1611/2970/1503 1628/2993/1520 1627/2988/1519 +f 1609/2968/1501 1627/2988/1519 1629/2994/1521 +f 1628/2989/1520 1630/2995/1522 1631/2996/1523 +f 1626/2997/1518 1633/2998/1524 1623/2984/1515 +f 1625/2986/1517 1621/2977/1511 1634/2999/1525 +f 1627/2988/1519 1631/3000/1523 1629/2994/1521 +f 1623/2984/1515 1630/2995/1522 1624/2985/1516 +f 1626/2987/1518 1634/2999/1525 1632/3001/1526 +f 1609/2968/1501 1629/2994/1521 1635/3002/1527 +f 1630/3003/1522 1637/3004/1528 1631/3005/1523 +f 1633/3006/1524 1638/3007/1529 1639/3008/1530 +f 1634/2999/1525 1621/2977/1511 1640/3009/1531 +f 1631/3000/1523 1635/3002/1527 1629/2994/1521 +f 1633/3006/1524 1636/3010/1532 1630/3003/1522 +f 1632/3011/1526 1640/3012/1531 1638/3007/1529 +f 2201/3013/1442 2209/3014/1443 2195/3015/1443 +f 2214/3016/1444 2201/3017/1442 2200/3018/1444 +f 2199/3019/1445 2214/2885/1444 2200/3020/1444 +f 2212/3021/1466 2199/3019/1445 2198/3022/1466 +f 2211/3023/1474 2198/3024/1466 2197/3025/1474 +f 2210/3026/1479 2197/3025/1474 2196/3027/1479 +f 2195/3015/1443 2210/3028/1479 2196/3029/1479 +f 2247/3030/1497 2257/1155/1533 2249/2054/1495 +f 2242/3031/1500 2258/2055/1534 2257/1155/1533 +f 2248/2959/1494 2256/2053/1535 2244/3032/1498 +f 2246/2958/1491 2252/1149/1536 2239/2955/1486 +f 2237/3033/1537 2226/3034/455 2223/3035/455 +f 2236/3036/441 2237/3037/1537 2235/3038/441 +f 2233/3039/1538 2236/3036/441 2235/3038/441 +f 2232/3040/555 2233/3041/1538 2231/3042/555 +f 2229/3043/1539 2232/3040/555 2231/3042/555 +f 2228/3044/443 2229/3045/1539 2227/3046/443 +f 2224/3047/1540 2228/3044/443 2227/3046/443 +f 2226/3034/455 2224/3048/1540 2223/3035/455 +f 1675/3049/1541 1676/3050/1542 1669/3051/1543 +f 1674/3052/1544 1682/3053/1545 1675/3049/1541 +f 1680/3054/1546 1674/3052/1544 1673/3055/1547 +f 1679/3056/1548 1673/3055/1547 1672/3057/1549 +f 1678/3058/1550 1672/3057/1549 1671/3059/1551 +f 1670/3060/1552 1678/3058/1550 1671/3059/1551 +f 1669/3051/1543 1677/3061/1553 1670/3060/1552 +f 1792/3062/1554 1798/3063/1555 1800/3064/1556 +f 1791/3065/1557 1799/3066/1558 1798/3067/1555 +f 1786/3068/1559 1808/3069/1560 1799/3066/1558 +f 1785/3070/1561 1809/3071/1562 1808/3069/1560 +f 1790/3072/1563 1810/3073/1564 1809/3074/1562 +f 1789/3075/1565 1807/3076/1566 1810/3073/1564 +f 1787/3077/1567 1807/3076/1566 1788/3078/1568 +f 1797/3079/1569 1806/3080/1570 1787/3077/1567 +f 1796/3081/1571 1805/3082/1572 1797/3083/1569 +f 1795/3084/1573 1803/3085/1574 1796/3081/1571 +f 1795/3086/1573 1801/3087/1575 1804/3088/1576 +f 1793/3089/1577 1801/3087/1575 1794/3090/1578 +f 1792/3062/1554 1802/3091/1579 1793/3089/1577 +f 1837/2613/1580 1836/2302/1581 1838/2306/1581 +f 1839/3092/1582 1825/2249/1583 1840/2309/1583 +f 1841/3093/1584 1829/2297/1585 1842/2312/1585 +f 1844/2316/1586 1833/2293/1587 1832/2295/1588 +f 1838/3094/1581 1835/2285/1589 1845/2318/1589 +f 1842/2312/1585 1828/2288/1590 1846/2320/1591 +f 1847/2323/1592 1835/2285/1589 1834/2287/1593 +f 1848/2733/1594 1830/2282/1582 1839/2325/1582 +f 1841/2328/1584 1825/2249/1583 1824/2251/1584 +f 1847/3095/1592 1833/2293/1587 1843/2315/1595 +f 1846/2320/1591 1827/2597/1596 1849/2595/1597 +f 1837/2613/1580 1827/2597/1596 1826/2300/1598 +f 1848/2733/1594 1832/2295/1588 1831/2734/1594 +f 1893/2417/1599 1886/2374/1600 1892/2421/1601 +f 1895/2410/1602 1885/2373/1603 1894/2419/1604 +f 1893/2417/1599 1876/3096/1605 1884/2372/1599 +f 1897/2413/1606 1883/2400/1607 1882/2371/1608 +f 1888/3097/1609 1880/2370/1602 1895/2410/1602 +f 1889/2336/1016 1879/2367/1610 1890/3098/1610 +f 1896/2405/1611 1877/2364/1612 1876/2366/1605 +f 1892/2714/1601 1883/2400/1607 1898/2715/1613 +f 1894/2419/1604 1901/2594/1614 1900/3099/1615 +f 1850/2593/1297 1855/2305/1021 1875/2616/1616 +f 1899/2404/1617 1901/2594/1614 1877/2364/1612 +f 1891/2729/1014 1882/2371/1608 1887/2332/1014 +f 1873/2346/1026 1864/2324/1219 1868/2731/1219 +f 2176/3100/1618 2109/3101/1619 2177/2767/1322 +f 2148/3102/1620 2176/3100/1618 2177/2767/1322 +f 2175/3103/1621 2081/3104/1622 2176/3100/1618 +f 1022/2832/1385 1035/3105/1623 2060/3106/1624 +f 2065/3107/1625 2067/2828/1626 2064/3108/1627 +f 2068/3109/1628 2070/2826/1629 2071/2799/1630 +f 2150/3110/1631 2176/3100/1618 2147/3111/1632 +f 2174/3112/1633 2060/3106/1624 2175/3113/1621 +f 2150/3114/1631 2174/3112/1633 2175/3113/1621 +f 2173/3115/1634 1022/2832/1385 2174/3112/1633 +f 2159/3116/1635 2174/3112/1633 2149/3117/1636 +f 2173/3115/1634 926/2829/1378 949/2831/1384 +f 2081/3104/1622 1035/3118/1623 2063/3119/1637 +f 2082/3120/1638 2090/2817/1639 2083/2823/1640 +f 2085/2806/1641 2091/2814/1642 2092/2811/1643 +f 2159/3116/1635 2172/3121/1644 2173/3115/1634 +f 2171/3122/1645 926/2824/1378 2172/3123/1644 +f 2157/3124/1646 2172/3123/1644 2160/3125/1647 +f 2170/3126/1648 2141/2819/1373 2171/3122/1645 +f 2157/3124/1646 2170/3126/1648 2171/3122/1645 +f 2169/3127/1649 2143/3128/1336 2170/3129/1648 +f 2158/3130/1650 2170/3129/1648 2156/3131/1651 +f 2079/2808/1652 2093/2812/1653 2086/2813/1654 +f 2097/2807/1655 2092/2811/1643 2093/2812/1653 +f 2098/2804/1656 2087/2810/1657 2080/2805/1658 +f 2083/2823/1640 2095/2809/1659 2098/2804/1656 +f 2168/2758/1315 2145/2780/1335 2169/3127/1649 +f 2158/3130/1650 2168/2758/1315 2169/3127/1649 +f 2135/3132/1660 2050/3133/1660 2134/3134/1660 +f 2049/3135/1660 2134/3134/1660 2048/3136/1660 +f 2046/3137/1661 2132/3138/1661 2133/3139/1661 +f 2045/3140/1661 2132/3138/1661 2131/3141/1661 +f 2047/3142/1661 2043/3143/1661 2046/3137/1661 +f 2052/3144/1660 2050/3133/1660 2053/3145/1660 +f 2058/3146/1662 2101/2801/1663 2059/2802/1664 +f 2103/3147/1665 2071/2799/1630 2101/2801/1663 +f 2104/3148/1666 2062/2797/1667 2061/3149/1668 +f 2064/3108/1627 2102/2794/1669 2104/3148/1666 +f 2057/3150/1670 2073/3151/1671 2074/3152/1671 +f 2075/3153/1672 2094/3154/1673 2076/3133/1672 +f 2078/3155/1674 2100/3156/1675 2094/3157/1673 +f 2106/3158/1676 2057/3150/1670 2108/3143/1676 +f 2110/3141/1676 2137/3159/1670 2054/3160/1677 +f 2108/3143/1676 2137/3159/1670 2136/3138/1676 +f 2081/3104/1622 2107/3161/1678 2109/3101/1619 +f 2109/3101/1619 2088/2776/1331 2111/2768/1323 +f 2096/3162/1674 2138/3163/1675 2105/3164/1675 +f 2094/3157/1673 2138/3163/1675 2139/3165/1673 +f 2077/3136/1672 2139/3166/1673 2096/3167/1674 +f 2076/3133/1672 2139/3166/1673 2140/3134/1672 +f 2126/2772/1327 2128/3168/1679 2129/2764/1316 +f 2130/2760/1317 2128/3169/1679 2127/3170/1680 +f 2137/3159/1670 2055/3171/1671 2054/3160/1677 +f 2057/3150/1670 2056/3172/1671 2137/3159/1670 +f 1963/2246/953 1965/2736/953 1981/2247/954 +f 504/2249/955 505/2299/955 506/2250/956 +f 499/2252/957 507/3173/970 508/2253/958 +f 510/2255/960 511/2639/1251 512/2256/961 +f 513/2258/963 514/3174/974 515/2259/964 +f 517/2261/966 518/3175/975 519/2262/967 +f 521/2264/969 522/3176/1681 507/2265/970 +f 524/2267/971 525/3177/980 526/2268/972 +f 514/2270/974 517/2261/966 520/2263/968 +f 518/2272/975 527/2735/1299 528/2273/976 +f 1961/2275/977 1976/2378/1059 1964/2276/978 +f 500/2254/959 508/2253/958 525/2278/980 +f 529/2280/981 513/2258/963 516/2260/965 +f 542/2282/983 543/2734/984 549/2283/984 +f 547/2285/985 551/2292/985 552/2286/986 +f 540/2288/988 541/2297/989 553/2289/989 +f 548/2291/991 555/3178/991 551/2292/985 +f 545/2293/992 556/2304/996 557/2294/993 +f 503/2296/956 506/3179/956 553/2289/989 +f 504/2249/955 542/3180/983 550/2298/983 +f 538/2300/995 558/2612/995 555/2301/991 +f 545/2293/992 546/3181/987 552/2303/986 +f 564/2305/997 565/2613/1232 566/2306/998 +f 568/2308/999 569/3092/999 570/2309/1000 +f 572/2311/1001 573/3093/1001 574/2312/1002 +f 575/2314/1003 576/2330/1012 577/2315/1004 +f 563/2317/998 566/3094/998 580/2318/1006 +f 571/2313/1002 574/2312/1002 581/2320/1007 +f 582/2322/1009 579/2319/1006 580/2318/1006 +f 584/2324/1011 585/2733/1011 569/2325/999 +f 572/2327/1001 567/2310/1000 570/2309/1000 +f 582/2329/1009 583/3095/1010 577/2315/1004 +f 1890/2331/1013 1891/2729/1014 1887/2332/1014 +f 1888/2334/1015 1881/2376/1015 1878/2335/1016 +f 1874/2337/1017 1869/3182/1036 1863/2329/1018 +f 1872/2338/1020 1875/3183/1616 1855/2339/1021 +f 1866/2340/1022 1856/3184/1022 1857/2341/1022 +f 1865/2343/1023 1859/2327/1023 1858/2344/1024 +f 1874/2337/1017 1861/2330/1019 1860/2314/1025 +f 1870/2347/1027 1872/2338/1020 1854/2317/1020 +f 1851/2348/1028 1871/2369/1024 1858/2313/1024 +f 1999/2349/1030 1995/2356/1031 1996/2350/1031 +f 1998/2352/1030 1999/2349/1030 2000/2351/1030 +f 1998/2352/1030 1997/2353/1031 1994/2354/1031 +f 1995/2356/1031 1992/2454/1031 1991/2357/1031 +f 1973/2358/1033 1986/2466/1033 1990/2359/1034 +f 1870/2347/1027 1862/2319/1027 1863/2322/1018 +f 1993/2355/1032 1994/2354/1031 1979/2362/1037 +f 598/2364/1039 596/2616/1235 593/2365/1040 +f 587/2340/1041 588/2342/1042 600/2367/1042 +f 602/2368/1043 586/3185/1043 592/2369/1044 +f 603/2371/1046 604/2400/1079 595/2337/1047 +f 605/2372/1049 597/3096/1040 593/2338/1040 +f 601/2370/1045 592/2369/1044 560/2348/1050 +f 607/2374/1052 605/2372/1049 591/2347/1049 +f 608/2332/1054 589/2731/1054 588/2375/1055 +f 602/2376/1057 586/3186/1057 587/2340/1041 +f 1988/2377/1058 1989/2459/1121 1976/2378/1059 +f 1913/2379/1060 1905/2398/1078 1921/2380/1061 +f 1912/2382/1063 1930/2389/1070 1922/2383/1064 +f 1928/2385/1066 1927/2617/1236 1916/2386/1067 +f 1912/2382/1063 1911/2615/1234 1925/2388/1069 +f 1910/2387/1068 1916/2386/1067 1915/2390/1071 +f 1909/2392/1073 1908/2730/1295 1918/2393/1074 +f 1906/2395/1075 1920/2732/1296 1919/2396/1076 +f 1905/2398/1078 1904/2384/1065 1922/2383/1064 +f 607/2399/1052 590/3182/1053 595/2337/1047 +f 1902/2391/1072 1915/2390/1071 1923/2401/1080 +f 621/2403/1081 622/2618/1082 620/2404/1082 +f 624/2406/1083 611/3187/1083 610/2407/1084 +f 626/2409/1085 609/3097/1085 616/2410/1086 +f 628/2412/1087 619/2715/1286 618/2413/1088 +f 629/2415/1090 621/3188/1081 617/2416/1081 +f 630/2418/1091 625/2411/1086 616/2410/1086 +f 631/2420/1093 629/2415/1090 614/2417/1090 +f 632/2422/1095 612/2729/1095 611/2331/1083 +f 626/2424/1085 623/2408/1084 610/2407/1084 +f 1935/2426/1096 1944/2441/1109 1957/2427/1097 +f 1942/2429/1099 1956/2446/1113 1958/2430/1100 +f 1945/2432/1102 1948/2638/1250 1951/2433/1103 +f 1946/2435/1104 1941/2448/1115 1955/2436/1105 +f 1932/2438/1107 1943/2431/1101 1958/2430/1100 +f 1940/2440/1108 1954/2449/1108 1957/2427/1097 +f 1939/2442/1110 1938/2450/1111 1952/2443/1111 +f 1942/2429/1099 1936/2619/1237 1950/2445/1112 +f 1931/2447/1114 1934/2728/1114 1955/2436/1105 +f 1940/2440/1108 1939/2442/1110 1953/2444/1110 +f 1938/2450/1111 1937/2434/1103 1951/2433/1103 +f 502/2451/1116 501/2496/1117 637/2452/1117 +f 1992/2454/1031 1974/2461/1118 1987/2455/1118 +f 1959/2456/1119 1975/2360/1035 1990/2359/1034 +f 1988/2377/1058 1972/2468/1127 1985/2458/1120 +f 1971/2460/1122 1984/2470/1122 1987/2455/1118 +f 1969/2462/1123 1982/2494/1123 1983/2463/1124 +f 1973/2358/1033 1967/2603/1226 1980/2465/1125 +f 1960/2467/1126 1978/2637/1126 1985/2458/1120 +f 537/2281/982 635/2753/1310 530/2469/1128 +f 1970/2464/1124 1983/2463/1124 1984/2470/1122 +f 651/2608/1230 532/3189/1682 650/2473/1131 +f 532/3189/1682 531/2471/1129 650/2473/1131 +f 2038/2474/1132 2037/2505/1152 2042/2475/1133 +f 639/2477/1135 654/3190/1683 655/2478/1136 +f 641/2480/1138 656/3191/1138 657/2481/1139 +f 643/2483/1140 658/2490/1140 659/2484/1141 +f 645/2486/1142 502/2451/1116 638/2453/1116 +f 640/2479/1137 655/2478/1136 661/2488/1144 +f 643/2483/1140 642/2482/1139 657/2481/1139 +f 647/2491/1145 644/3192/1141 659/2492/1141 +f 1969/2462/1123 1968/2248/954 1981/2247/954 +f 648/2495/1146 663/3193/1249 637/2452/1117 +f 653/2499/1148 652/3194/1147 666/2497/1147 +f 652/3194/1147 664/3195/1684 666/2497/1147 +f 664/3195/1684 665/2599/1223 666/2497/1147 +f 2041/2476/1134 2042/2475/1133 2040/2500/1149 +f 2039/2501/1150 2040/2500/1149 2036/2502/1151 +f 2008/2504/1150 2033/2517/1150 2037/2505/1152 +f 2019/2506/1153 2027/2622/1240 2031/2507/1154 +f 2035/2503/1150 2036/2502/1151 2021/2509/1156 +f 2005/2511/1158 2029/2555/1183 2030/2512/1159 +f 2006/2514/1161 2005/2511/1158 2034/2513/1160 +f 2008/2504/1150 2007/2589/1213 2028/2516/1163 +f 2002/2518/1164 2006/2514/1161 2032/2515/1162 +f 2020/2520/1155 2031/3196/1154 2011/2521/1165 +f 677/2523/1167 682/2546/1167 683/2524/1168 +f 668/2526/1169 667/2551/445 685/2527/445 +f 670/2529/1170 669/2628/1171 688/2530/1171 +f 672/2532/1172 671/2610/1173 533/2533/1173 +f 674/2535/1174 673/2544/502 691/2536/502 +f 675/2538/1175 668/3197/1169 684/2539/1169 +f 670/2529/1170 689/2531/1170 694/2541/1176 +f 672/2543/1172 690/3198/1172 691/2536/502 +f 674/2545/1174 692/3199/1174 682/2546/1167 +f 649/2472/1130 531/2471/1129 678/2549/1178 +f 531/2471/1129 645/2547/1142 678/2549/1178 +f 680/2550/1179 695/3200/1179 685/2527/445 +f 696/2552/1180 697/2587/1211 698/2553/1181 +f 2029/2555/1183 2018/2625/1243 2026/2556/1184 +f 731/2558/1185 713/3201/1194 717/3202/1685 +f 713/3201/1194 714/3203/1686 715/3204/555 +f 715/3204/555 716/3205/1687 713/3201/1194 +f 716/3205/1687 717/3202/1685 713/3201/1194 +f 729/3206/1688 730/3207/1689 699/3208/761 +f 730/3207/1689 731/2558/1185 727/2557/555 +f 699/3208/761 730/3207/1689 728/3209/555 +f 728/3209/555 698/3210/1690 699/3208/761 +f 717/3202/1685 718/3211/753 722/2559/555 +f 718/3211/753 719/3212/761 722/2559/555 +f 722/2559/555 719/3212/761 720/3213/1691 +f 720/3213/1691 721/3214/1692 722/2559/555 +f 722/2559/555 723/3215/1208 724/3216/1187 +f 724/3216/1187 725/3217/1693 727/2557/555 +f 724/3216/1187 727/2557/555 722/2559/555 +f 725/3217/1693 726/3218/555 727/2557/555 +f 727/2557/555 728/3209/555 730/3207/1689 +f 731/2558/1185 717/3202/1685 722/2559/555 +f 732/2560/1186 725/3219/1693 724/2561/1187 +f 734/2563/1189 735/2602/1225 720/2564/1190 +f 737/2566/1192 729/2611/1231 730/2567/1193 +f 713/2569/1194 731/2577/1185 739/2570/1195 +f 740/2572/1197 732/3220/1198 725/2573/1198 +f 741/2575/1200 734/2563/1189 721/2565/1191 +f 731/2577/1185 730/3221/1689 736/2578/1202 +f 738/2579/1203 713/3222/1203 714/2580/1204 +f 743/2582/1206 740/2572/1197 726/2574/1199 +f 733/2562/1188 724/2561/1187 723/2584/1208 +f 746/2586/1210 728/2620/1238 698/2553/1181 +f 2017/2588/1212 2025/3223/1248 2028/2516/1163 +f 615/2419/1092 748/3099/1214 633/2590/1214 +f 1907/2397/1077 1919/2396/1076 1924/2591/1215 +f 606/2373/1051 560/2348/1050 559/2593/1217 +f 1867/2375/1218 1868/2731/1219 1864/2324/1219 +f 561/2321/1008 581/2320/1007 750/2595/1220 +f 554/2290/990 751/3224/1694 539/2597/1221 +f 665/2599/1223 664/3195/1684 679/2600/1222 +f 679/2600/1222 675/2538/1175 693/2540/1175 +f 693/2540/1175 708/2598/1222 679/2600/1222 +f 752/2601/1224 719/2725/1292 720/2564/1190 +f 1967/2603/1226 1966/2363/1038 1979/2362/1037 +f 2016/2604/1227 2015/2717/1288 2023/2605/1228 +f 641/2607/1138 532/3189/1682 651/2608/1230 +f 671/2610/1173 653/2499/1148 534/2498/1148 +f 696/2552/1180 699/2554/1182 729/2611/1231 +f 539/2597/1221 751/3224/1694 558/2612/995 +f 564/2305/997 562/2596/1220 750/2595/1220 +f 1866/2614/1233 1856/2310/1233 1859/2327/1023 +f 1911/2615/1234 1903/2402/1080 1923/2401/1080 +f 598/2364/1039 749/2594/1217 559/2593/1217 +f 1929/3225/555 1914/2592/1216 1928/2385/1066 +f 1914/2592/1216 1924/2591/1215 1927/2617/1236 +f 633/2590/1214 748/3099/1214 620/2404/1082 +f 1936/2619/1237 1935/2426/1096 1949/2428/1098 +f 743/2582/1206 727/2583/1207 728/2620/1238 +f 2019/2506/1153 2014/2723/1290 2022/2621/1239 +f 753/2623/1241 742/2581/1205 714/2580/1204 +f 2018/2625/1243 2009/3226/1301 2012/2626/1244 +f 757/2627/1245 754/2722/1168 688/2530/1171 +f 741/2575/1200 722/2576/1201 723/2629/1246 +f 676/2542/1177 694/2541/1176 695/2631/1179 +f 2016/2604/1227 2024/2606/1229 2025/2633/1248 +f 648/2635/1146 646/2489/1144 661/2488/1144 +f 1959/2456/1119 1977/2457/1119 1978/2637/1126 +f 1946/2435/1104 1947/2437/1106 1948/2638/1250 +f 523/2269/973 526/2268/972 511/2639/1251 +f 758/2640/1176 759/2656/1176 741/2575/1200 +f 761/2641/1252 742/2581/1205 753/2623/1241 +f 763/2643/1254 764/2677/1269 765/2644/1255 +f 762/2645/1256 696/2552/1180 737/2566/1192 +f 733/2562/1188 744/2585/1209 758/2647/1257 +f 768/2649/1258 740/2572/1197 743/2582/1206 +f 742/2650/1259 738/3227/1196 769/2651/1169 +f 739/2570/1195 736/2578/1202 771/2653/1261 +f 772/2655/1262 734/2563/1189 741/2575/1200 +f 740/2657/1263 732/3228/1186 773/2658/1174 +f 738/2571/1196 739/2570/1195 770/2654/445 +f 771/2653/1261 736/2578/1202 737/2661/1264 +f 773/2663/1174 732/2560/1186 733/2562/1188 +f 774/2664/1174 773/2663/1174 767/2648/502 +f 771/2653/1261 766/2662/1264 777/2666/1264 +f 769/2660/1169 770/2654/445 779/2668/445 +f 768/2659/1263 773/2658/1174 774/2670/1174 +f 782/2672/1265 772/2655/1262 759/2656/1176 +f 770/2654/445 771/2653/1261 776/2667/1261 +f 761/2652/1260 769/2651/1169 778/2674/1169 +f 780/2676/1268 768/2649/1258 765/2644/1255 +f 767/2648/502 758/2647/1257 784/2678/1257 +f 763/2643/1254 762/2645/1256 766/2646/1148 +f 763/2643/1254 535/2689/1148 712/2680/1271 +f 712/2680/1271 747/3229/1695 764/2677/1269 +f 747/3229/1695 709/2696/1279 764/2677/1269 +f 760/2681/1272 761/2652/1260 783/2675/1267 +f 781/2673/1266 759/2656/1176 758/2640/1176 +f 706/2684/1274 781/2673/1266 784/2683/1273 +f 707/2686/1275 783/2698/1280 785/2687/1276 +f 535/2689/1148 763/2643/1254 777/2679/1270 +f 772/2655/1262 786/2726/1293 787/2691/1278 +f 787/2691/1278 788/2748/1305 789/2724/1291 +f 752/2601/1224 735/2602/1225 787/2691/1278 +f 735/2602/1225 734/2563/1189 787/2691/1278 +f 787/2691/1278 789/2724/1291 752/2601/1224 +f 696/2552/1180 762/2645/1256 697/2587/1211 +f 762/2645/1256 765/2644/1255 697/2587/1211 +f 765/2644/1255 743/2582/1206 746/2586/1210 +f 710/2692/1179 784/3230/1273 775/2693/445 +f 705/2695/1175 780/2676/1268 764/2677/1269 +f 707/2686/1275 704/3231/1174 778/2697/1174 +f 703/2699/502 702/3232/1172 776/2700/1172 +f 706/2684/1274 701/2751/1308 782/2672/1265 +f 687/2702/1169 774/3233/1169 780/2676/1268 +f 703/2699/502 779/2701/502 778/2703/1174 +f 536/2690/1173 777/2679/1270 776/2705/1172 +f 687/2707/1169 686/2694/445 775/2693/445 +f 745/2688/1277 785/2687/1276 791/2709/1281 +f 792/2711/1283 760/2642/1253 753/2623/1241 +f 619/2715/1286 628/2412/1087 636/2713/1285 +f 636/2713/1285 631/3234/1093 613/2714/1094 +f 793/2712/1284 753/2623/1241 715/2624/1242 +f 2015/2717/1288 2001/3235/1302 2004/2718/1289 +f 681/2525/1168 683/2524/1168 794/2719/1168 +f 757/2627/1245 797/2740/1168 798/2721/1168 +f 2013/2510/1157 2021/2509/1156 2022/2621/1239 +f 789/2724/1291 718/2749/1306 719/2725/1292 +f 786/2726/1293 772/2655/1262 782/2672/1265 +f 1931/2447/1114 1932/2438/1107 1933/2439/1107 +f 627/2414/1089 618/2413/1088 612/2729/1095 +f 1908/2730/1295 1913/2379/1060 1926/2381/1062 +f 608/2332/1054 603/2371/1046 594/2346/1048 +f 1909/2392/1073 1917/2394/1073 1920/2732/1296 +f 1850/2593/1297 1851/2348/1028 1852/2321/1029 +f 584/2324/1011 575/2314/1003 578/2316/1005 +f 544/2295/994 557/2294/993 549/2283/984 +f 509/2257/962 512/2256/961 528/2273/976 +f 1963/2246/953 1962/2277/979 1964/2276/978 +f 654/3190/1683 639/2477/1135 756/3236/1300 +f 639/2477/1135 647/2491/1145 802/2737/1300 +f 756/3236/1300 639/2477/1135 799/2738/1300 +f 647/2491/1145 662/2493/1145 711/3237/1300 +f 711/3237/1300 795/3238/1300 647/2491/1145 +f 795/3238/1300 802/2737/1300 647/2491/1145 +f 803/2739/1168 804/2741/1168 798/2721/1168 +f 803/2739/1168 796/2720/1168 794/2719/1168 +f 2009/2742/1301 2010/2522/1166 2011/2521/1165 +f 2001/2744/1302 2002/2518/1164 2003/2519/1164 +f 805/2746/1303 790/2710/1282 791/2709/1281 +f 788/2748/1305 717/2750/1307 718/2749/1306 +f 788/2748/1305 793/2712/1284 716/2716/1287 +f 787/2691/1278 792/2711/1283 793/2712/1284 +f 755/3239/1696 800/3240/1697 806/2747/1304 +f 800/3240/1697 805/2746/1303 806/2747/1304 +f 806/2747/1304 801/2727/1294 782/2672/1265 +f 755/3239/1696 806/2747/1304 700/2752/1309 +f 782/2672/1265 701/2751/1308 806/2747/1304 +f 522/3176/1681 521/2264/969 634/2754/1311 +f 521/2264/969 530/2469/1128 634/2754/1311 +f 2164/2755/1312 2163/2769/1324 2180/2756/1313 +f 2168/2758/1315 2178/3241/1321 2129/2759/1316 +f 2151/2761/1318 2178/3241/1321 2168/2758/1315 +f 2167/2763/1320 2126/2772/1327 2129/2764/1316 +f 2151/2766/1318 2155/2774/1329 2167/2763/1320 +f 2177/2767/1322 2109/3101/1619 2111/2768/1323 +f 2153/2770/1325 2148/3102/1620 2177/2767/1322 +f 2167/2763/1320 2164/2755/1312 2162/2771/1326 +f 2154/2773/1328 2164/2755/1312 2167/2763/1320 +f 2162/2771/1326 2165/3242/1698 2166/2775/1330 +f 2153/2770/1325 2163/2769/1324 2164/2755/1312 +f 2162/2771/1326 2111/2768/1323 2088/2776/1331 +f 2126/2772/1327 2162/2771/1326 2161/2777/1332 +f 2130/2760/1317 2127/3170/1680 2146/2779/1334 +f 2143/2781/1336 2145/3243/1335 2146/2782/1334 +f 2115/2784/1338 1044/2815/1369 1038/2785/1339 +f 1018/2787/1341 2115/2784/1338 2125/2786/1340 +f 1034/2789/1343 1023/2835/1388 2124/2790/1344 +f 2117/2791/1345 2124/2790/1344 1020/2792/1346 +f 2123/2794/1348 946/2828/1382 934/2795/1349 +f 950/2797/1351 2123/2794/1348 2121/2796/1350 +f 942/2799/1353 932/2820/1374 2120/2800/1354 +f 1016/2802/1356 2122/2801/1355 2120/2800/1354 +f 934/2795/1349 922/2823/1377 2119/2804/1358 +f 2121/2796/1350 2119/2804/1358 929/2805/1359 +f 2120/2800/1354 932/2820/1374 917/2806/1360 +f 941/2803/1357 2120/2800/1354 2118/2807/1361 +f 2116/2809/1363 869/2817/1371 1034/2789/1343 +f 887/2810/1364 2116/2809/1363 2117/2791/1345 +f 2113/2811/1365 1044/2815/1369 2115/2784/1338 +f 915/2813/1367 2114/2812/1366 2115/2784/1338 +f 868/2814/1368 1042/3244/1699 1044/2815/1369 +f 882/2816/1370 1025/2834/1387 1034/2789/1343 +f 2143/2781/1336 2144/2783/1337 2142/2818/1372 +f 932/2820/1374 933/3245/1700 918/2821/1375 +f 937/2822/1376 925/3120/1701 922/2823/1377 +f 926/2824/1378 2141/2819/1373 2142/2818/1372 +f 945/2826/1380 933/3245/1700 932/2820/1374 +f 948/2827/1381 937/2822/1376 934/2795/1349 +f 926/2829/1378 886/3246/1379 938/2830/1383 +f 1022/2832/1385 949/2831/1384 938/2830/1383 +f 1025/2834/1387 1024/3247/1702 1023/2835/1388 +f 1044/2815/1369 1042/3244/1699 1040/2836/1389 +f 1116/2837/1390 1111/2877/1426 1114/2838/1391 +f 1120/2840/1393 1121/3248/1703 1122/2841/1394 +f 1124/2843/1396 1125/2849/1402 1126/2844/1397 +f 1123/2845/1398 1126/2844/1397 1119/2842/1395 +f 1134/2850/1403 1131/2848/1401 1132/2846/1399 +f 1132/2846/1399 1116/2837/1390 1115/2839/1392 +f 1133/2847/1400 1134/2850/1403 1132/2846/1399 +f 1131/2848/1401 1134/2850/1403 1125/2849/1402 +f 1134/2850/1403 1133/2847/1400 1137/2851/1404 +f 1128/2853/1406 2263/2859/1407 2262/2854/1407 +f 1125/2849/1402 1134/2850/1403 1138/2852/1405 +f 1133/2847/1400 1115/2839/1392 1150/2857/1410 +f 1128/2853/1406 1130/2875/1424 2264/2858/1407 +f 1126/2844/1397 1148/2866/1416 1147/2860/1411 +f 1115/2839/1392 1114/2838/1391 1139/2861/1412 +f 1127/2862/1413 1118/2872/1421 2261/2863/1414 +f 1119/2842/1395 1147/2860/1411 1146/2865/1415 +f 1125/2849/1402 1149/2856/1409 1148/2866/1416 +f 1122/2841/1394 1121/3248/1703 1157/2867/1417 +f 1127/2862/1413 2260/2864/1414 2259/2869/1414 +f 1124/2843/1396 1154/2878/1427 1153/2871/1420 +f 1118/2872/1421 1127/2862/1413 1128/2853/1406 +f 1132/2846/1399 1152/2879/1428 1151/2873/1422 +f 1123/2845/1398 1122/2841/1394 1156/2868/1418 +f 1127/2862/1413 1129/2870/1419 1130/2875/1424 +f 1116/2837/1390 1151/2873/1422 1162/2876/1425 +f 1124/2843/1396 1123/2845/1398 1155/2874/1423 +f 1131/2848/1401 1153/2871/1420 1152/2879/1428 +f 2222/2880/1429 2202/3249/1433 2203/2881/1430 +f 2221/2883/1432 2204/3250/1435 2202/2884/1433 +f 2220/2886/1434 2205/3251/1704 2204/1425/1435 +f 2206/2888/1436 2205/3251/1704 2220/2886/1434 +f 2207/2890/1438 2206/3252/1436 2219/2891/1437 +f 2208/2893/1440 2207/2890/1438 2218/2892/1439 +f 2216/2882/1431 2203/2881/1430 2208/2895/1440 +f 2193/2897/1442 2182/2944/1443 2181/2898/1443 +f 2191/2900/1444 2193/3253/1442 2194/2901/1442 +f 2189/2903/1445 2191/3254/1444 2192/2904/1444 +f 1240/2906/1446 1238/2909/1449 1237/2907/1447 +f 1238/2909/1449 1236/3255/1705 1235/2910/1450 +f 1241/2911/1451 1242/2921/1461 1240/2906/1446 +f 1181/2912/1452 1177/2923/1463 1173/2913/1453 +f 1229/2915/1455 1169/3256/1455 1232/2916/1456 +f 1230/1361/1458 1245/2924/1464 1231/2918/1459 +f 1244/2920/1460 1243/3257/1460 1242/2921/1461 +f 1183/2922/1462 1179/3258/1706 1177/2923/1463 +f 1245/2924/1464 1248/3259/1707 1251/2925/1465 +f 2187/2926/1466 2189/2903/1445 2190/2905/1445 +f 1246/2917/1457 1232/2916/1456 1252/2928/1467 +f 1249/2930/1469 1253/3260/1708 1254/2931/1470 +f 1251/2925/1465 1248/3259/1707 1250/2933/1472 +f 2185/2935/1474 2187/3261/1466 2188/2936/1466 +f 1252/2928/1467 1253/3260/1708 1249/2930/1469 +f 1187/2938/1475 1179/3258/1706 1183/2922/1462 +f 1234/2940/1477 1187/2938/1475 1185/2939/1476 +f 1250/2933/1472 1257/3262/1480 1260/2942/1478 +f 2184/2943/1479 2183/3263/1479 2185/2935/1474 +f 2182/2944/1443 2183/3264/1479 2184/2945/1479 +f 1257/2946/1480 1259/3265/1709 1262/2947/1481 +f 1170/2949/1482 1164/3266/1482 1163/2950/1482 +f 1255/2952/1471 1254/3267/1470 1261/2953/1484 +f 2239/2955/1486 2252/1149/1536 2251/2038/1487 +f 2245/2957/1489 2254/2041/1493 2253/2040/1490 +f 2245/2957/1489 2243/3268/1499 2255/2042/1492 +f 2248/2959/1494 2247/3030/1497 2249/2054/1495 +f 2239/2960/1486 2242/2967/1500 2247/2961/1497 +f 2245/2963/1489 2248/2965/1494 2244/2964/1498 +f 2246/2962/1491 2247/2961/1497 2248/2965/1494 +f 2240/2966/1488 2241/3269/1710 2242/2967/1500 +f 1612/2971/1504 1613/2980/1513 1614/2972/1505 +f 1617/2548/1507 1618/3270/1514 1619/2974/1508 +f 1610/2969/1502 1612/3271/1504 1615/2979/1506 +f 1616/2975/1509 1619/2974/1508 1614/2972/1505 +f 1620/2976/1510 1622/2978/1512 1618/2981/1514 +f 1614/2983/1505 1619/2992/1508 1623/2984/1515 +f 1618/2981/1514 1622/2978/1512 1625/2986/1517 +f 1614/2983/1505 1624/2985/1516 1628/2989/1520 +f 1618/2991/1514 1626/2997/1518 1623/2984/1515 +f 1611/2970/1503 1615/2979/1506 1628/2993/1520 +f 1628/2989/1520 1624/2985/1516 1630/2995/1522 +f 1626/2997/1518 1632/3272/1526 1633/2998/1524 +f 1627/2988/1519 1628/2993/1520 1631/3000/1523 +f 1623/2984/1515 1633/2998/1524 1630/2995/1522 +f 1626/2987/1518 1625/2986/1517 1634/2999/1525 +f 1630/3003/1522 1636/3010/1532 1637/3004/1528 +f 1633/3006/1524 1632/3011/1526 1638/3007/1529 +f 1631/3000/1523 1637/1702/1528 1635/3002/1527 +f 1633/3006/1524 1639/3008/1530 1636/3010/1532 +f 1632/3011/1526 1634/3273/1525 1640/3012/1531 +f 2201/3013/1442 2215/3274/1442 2209/3014/1443 +f 2214/3016/1444 2215/3275/1442 2201/3017/1442 +f 2199/3019/1445 2213/3276/1445 2214/2885/1444 +f 2212/3021/1466 2213/3276/1445 2199/3019/1445 +f 2211/3023/1474 2212/3277/1466 2198/3024/1466 +f 2210/3026/1479 2211/3023/1474 2197/3025/1474 +f 2195/3015/1443 2209/3014/1443 2210/3028/1479 +f 2247/3030/1497 2242/3031/1500 2257/1155/1533 +f 2242/3031/1500 2241/3278/1710 2258/2055/1534 +f 2248/2959/1494 2250/2052/1496 2256/2053/1535 +f 2246/2958/1491 2253/2040/1490 2252/1149/1536 +f 2237/3033/1537 2238/3279/1537 2226/3034/455 +f 2236/3036/441 2238/3280/1537 2237/3037/1537 +f 2233/3039/1538 2234/1104/1538 2236/3036/441 +f 2232/3040/555 2234/3281/1538 2233/3041/1538 +f 2229/3043/1539 2230/3282/1539 2232/3040/555 +f 2228/3044/443 2230/3283/1539 2229/3045/1539 +f 2224/3047/1540 2225/3284/1540 2228/3044/443 +f 2226/3034/455 2225/3285/1540 2224/3048/1540 +f 1675/3049/1541 1682/3053/1545 1676/3050/1542 +f 1674/3052/1544 1681/3286/1711 1682/3053/1545 +f 1680/3054/1546 1681/3286/1711 1674/3052/1544 +f 1679/3056/1548 1680/3054/1546 1673/3055/1547 +f 1678/3058/1550 1679/3056/1548 1672/3057/1549 +f 1670/3060/1552 1677/3061/1553 1678/3058/1550 +f 1669/3051/1543 1676/3050/1542 1677/3061/1553 +f 1792/3062/1554 1791/3287/1557 1798/3063/1555 +f 1791/3065/1557 1786/3068/1559 1799/3066/1558 +f 1786/3068/1559 1785/3070/1561 1808/3069/1560 +f 1785/3070/1561 1790/3288/1563 1809/3071/1562 +f 1790/3072/1563 1789/3075/1565 1810/3073/1564 +f 1789/3075/1565 1788/3078/1568 1807/3076/1566 +f 1787/3077/1567 1806/3080/1570 1807/3076/1566 +f 1797/3079/1569 1805/3289/1572 1806/3080/1570 +f 1796/3081/1571 1803/3085/1574 1805/3082/1572 +f 1795/3084/1573 1804/3290/1576 1803/3085/1574 +f 1795/3086/1573 1794/3090/1578 1801/3087/1575 +f 1793/3089/1577 1802/3091/1579 1801/3087/1575 +f 1792/3062/1554 1800/3064/1556 1802/3091/1579 +f 1837/2613/1580 1826/2300/1598 1836/2302/1581 +f 1839/3092/1582 1830/3180/1582 1825/2249/1583 +f 1841/3093/1584 1824/2296/1584 1829/2297/1585 +f 1844/2316/1586 1843/2315/1595 1833/2293/1587 +f 1838/3094/1581 1836/2291/1581 1835/2285/1589 +f 1842/2312/1585 1829/2297/1585 1828/2288/1590 +f 1847/2323/1592 1845/2318/1589 1835/2285/1589 +f 1848/2733/1594 1831/2734/1594 1830/2282/1582 +f 1841/2328/1584 1840/2309/1583 1825/2249/1583 +f 1847/3095/1592 1834/3181/1593 1833/2293/1587 +f 1846/2320/1591 1828/2288/1590 1827/2597/1596 +f 1837/2613/1580 1849/2595/1597 1827/2597/1596 +f 1848/2733/1594 1844/2316/1586 1832/2295/1588 +f 1893/2417/1599 1884/2372/1599 1886/2374/1600 +f 1895/2410/1602 1880/2370/1602 1885/2373/1603 +f 1893/2417/1599 1896/2416/1611 1876/3096/1605 +f 1897/2413/1606 1898/2715/1613 1883/2400/1607 +f 1888/3097/1609 1881/2368/1609 1880/2370/1602 +f 1889/2336/1016 1878/2335/1016 1879/2367/1610 +f 1896/2405/1611 1899/2404/1617 1877/2364/1612 +f 1892/2714/1601 1886/2399/1600 1883/2400/1607 +f 1894/2419/1604 1885/2373/1603 1901/2594/1614 +f 1850/2593/1297 1853/2596/1298 1855/2305/1021 +f 1899/2404/1617 1900/3099/1615 1901/2594/1614 +f 1891/2729/1014 1897/2413/1606 1882/2371/1608 +f 1873/2346/1026 1860/2314/1025 1864/2324/1219 +f 2176/3100/1618 2081/3104/1622 2109/3101/1619 +f 2148/3102/1620 2147/3111/1632 2176/3100/1618 +f 2175/3103/1621 2060/3291/1624 2081/3104/1622 +f 1022/2832/1385 1019/2833/1386 1035/3105/1623 +f 2065/3107/1625 2066/2827/1712 2067/2828/1626 +f 2068/3109/1628 2069/3292/1713 2070/2826/1629 +f 2150/3110/1631 2175/3103/1621 2176/3100/1618 +f 2174/3112/1633 1022/2832/1385 2060/3106/1624 +f 2150/3114/1631 2149/3117/1636 2174/3112/1633 +f 2173/3115/1634 949/2831/1384 1022/2832/1385 +f 2159/3116/1635 2173/3115/1634 2174/3112/1633 +f 2173/3115/1634 2172/3121/1644 926/2829/1378 +f 2081/3104/1622 2060/3291/1624 1035/3118/1623 +f 2082/3120/1638 2089/2816/1714 2090/2817/1639 +f 2085/2806/1641 2084/2821/1715 2091/2814/1642 +f 2159/3116/1635 2160/948/1647 2172/3121/1644 +f 2171/3122/1645 2141/2819/1373 926/2824/1378 +f 2157/3124/1646 2171/3122/1645 2172/3123/1644 +f 2170/3126/1648 2143/2781/1336 2141/2819/1373 +f 2157/3124/1646 2156/3293/1651 2170/3126/1648 +f 2169/3127/1649 2145/2780/1335 2143/3128/1336 +f 2158/3130/1650 2169/3127/1649 2170/3129/1648 +f 2079/2808/1652 2097/2807/1655 2093/2812/1653 +f 2097/2807/1655 2085/2806/1641 2092/2811/1643 +f 2098/2804/1656 2095/2809/1659 2087/2810/1657 +f 2083/2823/1640 2090/2817/1639 2095/2809/1659 +f 2168/2758/1315 2130/2760/1317 2145/2780/1335 +f 2158/3130/1650 2152/2762/1319 2168/2758/1315 +f 2135/3132/1660 2053/3145/1660 2050/3133/1660 +f 2049/3135/1660 2135/3132/1660 2134/3134/1660 +f 2046/3137/1661 2043/3143/1661 2132/3138/1661 +f 2045/3140/1661 2133/3139/1661 2132/3138/1661 +f 2047/3142/1661 2044/3158/1661 2043/3143/1661 +f 2052/3144/1660 2051/3153/1660 2050/3133/1660 +f 2058/3146/1662 2103/3147/1665 2101/2801/1663 +f 2103/3147/1665 2068/3109/1628 2071/2799/1630 +f 2104/3148/1666 2102/2794/1669 2062/2797/1667 +f 2064/3108/1627 2067/2828/1626 2102/2794/1669 +f 2057/3150/1670 2072/3294/1677 2073/3151/1671 +f 2075/3153/1672 2078/1417/1674 2094/3154/1673 +f 2078/3155/1674 2099/3295/1675 2100/3156/1675 +f 2106/3158/1676 2072/3294/1677 2057/3150/1670 +f 2110/3141/1676 2136/3138/1676 2137/3159/1670 +f 2108/3143/1676 2057/3150/1670 2137/3159/1670 +f 2081/3104/1622 2063/3119/1637 2107/3161/1678 +f 2109/3101/1619 2107/3161/1678 2088/2776/1331 +f 2096/3162/1674 2139/3165/1673 2138/3163/1675 +f 2094/3157/1673 2100/3156/1675 2138/3163/1675 +f 2077/3136/1672 2140/3134/1672 2139/3166/1673 +f 2076/3133/1672 2094/3154/1673 2139/3166/1673 +f 2126/2772/1327 2112/2778/1333 2128/3168/1679 +f 2130/2760/1317 2129/2759/1316 2128/3169/1679 +f 2137/3159/1670 2056/3172/1671 2055/3171/1671 +f 2057/3150/1670 2074/3152/1671 2056/3172/1671 diff --git a/src/main/resources/assets/hbm/models/weapons/benelli_new.obj b/src/main/resources/assets/hbm/models/weapons/benelli_new.obj new file mode 100644 index 000000000..a2d8c70b3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/benelli_new.obj @@ -0,0 +1,5180 @@ +# Blender 4.0.1 +# www.blender.org +o Body +v -0.557795 3.198776 0.999861 +v -0.689504 3.198776 0.999861 +v -0.557795 3.375046 0.999861 +v -0.689504 3.198776 1.249144 +v 0.561645 3.197617 0.999051 +v 0.561645 3.373887 0.999051 +v 0.693354 3.197617 0.999051 +v 0.693354 3.197617 1.248335 +v 0.561645 3.373887 1.248335 +v 0.561645 3.197617 1.248335 +v -0.557795 3.375046 1.249144 +v -0.558324 3.200001 1.250000 +v -0.557795 3.198776 1.249144 +v 0.561633 3.197661 -1.749421 +v 0.693341 3.197661 -1.749422 +v 0.561632 3.021391 -1.749422 +v 0.561633 3.021390 3.750661 +v 0.693342 3.197660 3.750661 +v 0.561633 3.197660 3.750661 +v -0.557717 3.199502 -1.749413 +v -0.557717 3.023233 -1.749413 +v -0.689426 3.199503 -1.749413 +v -0.689425 3.199502 3.750652 +v -0.557716 3.023232 3.750652 +v -0.557716 3.199502 3.750652 +v -0.557795 3.198776 3.499861 +v -0.689504 3.198776 3.499861 +v -0.557795 3.375046 3.499861 +v -0.689504 3.198776 3.749144 +v 0.561645 3.197617 3.499051 +v 0.561645 3.373887 3.499051 +v 0.693354 3.197617 3.499051 +v 0.693354 3.197617 3.748335 +v 0.561645 3.373887 3.748335 +v 0.561645 3.197617 3.748335 +v -0.557795 3.375046 3.749144 +v -0.558324 3.200001 3.750000 +v -0.557795 3.198776 3.749144 +v -0.557795 3.198776 2.999861 +v -0.689504 3.198776 2.999861 +v -0.557795 3.375046 2.999861 +v -0.689504 3.198776 3.249144 +v 0.561645 3.197617 2.999051 +v 0.561645 3.373887 2.999051 +v 0.693354 3.197617 2.999051 +v 0.693354 3.197617 3.248334 +v 0.561645 3.373887 3.248334 +v 0.561645 3.197617 3.248334 +v -0.557795 3.375046 3.249144 +v -0.558324 3.200001 3.250000 +v -0.557795 3.198776 3.249144 +v -0.557795 3.198776 2.499861 +v -0.689504 3.198776 2.499861 +v -0.557795 3.375046 2.499861 +v -0.689504 3.198776 2.749144 +v 0.561645 3.197617 2.499051 +v 0.561645 3.373887 2.499051 +v 0.693354 3.197617 2.499051 +v 0.693354 3.197617 2.748335 +v 0.561645 3.373887 2.748335 +v 0.561645 3.197617 2.748335 +v -0.557795 3.375046 2.749144 +v -0.558324 3.200001 2.750000 +v -0.557795 3.198776 2.749144 +v -0.557795 3.198776 1.999861 +v -0.689504 3.198776 1.999861 +v -0.557795 3.375046 1.999861 +v -0.689504 3.198776 2.249144 +v 0.561645 3.197617 1.999051 +v 0.561645 3.373887 1.999051 +v 0.693354 3.197617 1.999051 +v 0.693354 3.197617 2.248335 +v 0.561645 3.373887 2.248335 +v 0.561645 3.197617 2.248335 +v -0.557795 3.375046 2.249144 +v -0.558324 3.200001 2.250000 +v -0.557795 3.198776 2.249144 +v -0.557795 3.198776 1.499861 +v -0.689504 3.198776 1.499861 +v -0.557795 3.375046 1.499861 +v -0.689504 3.198776 1.749144 +v 0.561645 3.197617 1.499051 +v 0.561645 3.373887 1.499051 +v 0.693354 3.197617 1.499051 +v 0.693354 3.197617 1.748335 +v 0.561645 3.373887 1.748335 +v 0.561645 3.197617 1.748335 +v -0.557795 3.375046 1.749144 +v -0.558324 3.200001 1.750000 +v -0.557795 3.198776 1.749144 +v -0.557795 3.198776 0.499861 +v -0.689504 3.198776 0.499861 +v -0.557795 3.375046 0.499861 +v -0.689504 3.198776 0.749144 +v 0.561645 3.197617 0.499051 +v 0.561645 3.373887 0.499051 +v 0.693354 3.197617 0.499051 +v 0.693354 3.197617 0.748335 +v 0.561645 3.373887 0.748335 +v 0.561645 3.197617 0.748335 +v -0.557795 3.375046 0.749144 +v -0.558324 3.200001 0.750000 +v -0.557795 3.198776 0.749144 +v -0.557795 3.198776 -0.000139 +v -0.689504 3.198776 -0.000139 +v -0.557795 3.375046 -0.000139 +v -0.689504 3.198776 0.249144 +v 0.561645 3.197617 -0.000949 +v 0.561645 3.373887 -0.000949 +v 0.693354 3.197617 -0.000949 +v 0.693354 3.197617 0.248335 +v 0.561645 3.373887 0.248335 +v 0.561645 3.197617 0.248335 +v -0.557795 3.375046 0.249144 +v -0.558324 3.200001 0.250000 +v -0.557795 3.198776 0.249144 +v -0.557795 3.198776 -0.500139 +v -0.689504 3.198776 -0.500139 +v -0.557795 3.375046 -0.500139 +v -0.689504 3.198776 -0.250856 +v 0.561645 3.197617 -0.500949 +v 0.561645 3.373887 -0.500949 +v 0.693354 3.197617 -0.500949 +v 0.693354 3.197617 -0.251665 +v 0.561645 3.373887 -0.251665 +v 0.561645 3.197617 -0.251665 +v -0.557795 3.375046 -0.250856 +v -0.558324 3.200001 -0.250000 +v -0.557795 3.198776 -0.250856 +v -0.557795 3.198776 -1.000139 +v -0.689504 3.198776 -1.000139 +v -0.557795 3.375046 -1.000139 +v -0.689504 3.198776 -0.750855 +v 0.561645 3.197617 -1.000948 +v 0.561645 3.373887 -1.000948 +v 0.693354 3.197617 -1.000948 +v 0.693354 3.197617 -0.751665 +v 0.561645 3.373887 -0.751665 +v 0.561645 3.197617 -0.751665 +v -0.557795 3.375046 -0.750855 +v -0.558324 3.200001 -0.749999 +v -0.557795 3.198776 -0.750855 +v -0.557795 3.198776 -1.500139 +v -0.689504 3.198776 -1.500139 +v -0.557795 3.375046 -1.500139 +v -0.689504 3.198776 -1.250856 +v 0.561645 3.197617 -1.500949 +v 0.561645 3.373887 -1.500949 +v 0.693354 3.197617 -1.500949 +v 0.693354 3.197617 -1.251665 +v 0.561645 3.373887 -1.251665 +v 0.561645 3.197617 -1.251665 +v -0.557795 3.375046 -1.250856 +v -0.558324 3.200001 -1.250000 +v -0.557795 3.198776 -1.250856 +v -0.557795 3.198776 -1.751088 +v -0.689504 3.198776 -1.751088 +v -0.557795 3.375046 -1.751088 +v -0.689504 3.198776 -1.501805 +v 0.561645 3.197617 -1.751898 +v 0.561645 3.373887 -1.751898 +v 0.693354 3.197617 -1.751898 +v 0.693354 3.197617 -1.502614 +v 0.561645 3.373887 -1.502614 +v 0.561645 3.197617 -1.502614 +v -0.557795 3.375046 -1.501805 +v -0.558324 3.200001 -1.500949 +v -0.557795 3.198776 -1.501805 +v -0.750000 1.350000 -10.700001 +v -0.692910 1.994415 -10.700001 +v 0.750000 1.350000 -10.700001 +v 0.692910 1.994415 -1.700001 +v 0.692910 1.994415 -10.700001 +v 0.750000 1.350000 -1.700001 +v 0.692910 1.005584 -10.700001 +v 0.692910 1.005584 -1.700001 +v 0.530330 0.713603 -10.700001 +v 0.530330 0.713604 -1.700001 +v 0.287013 0.518508 -10.700001 +v 0.287013 0.518508 -1.700001 +v 0.000000 0.449999 -10.700001 +v 0.000000 0.450000 -1.700001 +v -0.287012 0.518507 -10.700001 +v -0.287012 0.518508 -1.700001 +v -0.530330 0.713603 -10.700001 +v -0.530330 0.713603 -1.700001 +v -0.692910 1.005584 -10.700001 +v -0.692910 1.005584 -1.700001 +v -0.750000 1.350000 -1.700001 +v -0.692910 1.994415 -1.700001 +v 0.000000 3.000000 -1.700000 +v 0.129410 2.982965 -19.500000 +v 0.000000 3.000002 -19.500000 +v 0.129410 2.982962 -1.700000 +v 0.250000 2.933015 -19.500000 +v 0.250000 2.933012 -1.700000 +v 0.353553 2.853556 -19.500000 +v 0.353553 2.853553 -1.700000 +v 0.433013 2.750003 -19.500000 +v 0.433013 2.750000 -1.700000 +v 0.482963 2.629411 -19.500000 +v 0.482963 2.629409 -1.700000 +v 0.500000 2.500002 -19.500000 +v 0.500000 2.500000 -1.700000 +v 0.482963 2.370593 -19.500000 +v 0.482963 2.370590 -1.700000 +v 0.433013 2.250002 -19.500000 +v 0.433013 2.250000 -1.700000 +v 0.353554 2.146449 -19.500000 +v 0.353554 2.146446 -1.700000 +v 0.250000 2.066990 -19.500000 +v 0.250000 2.066987 -1.700000 +v 0.129410 2.017039 -19.500000 +v 0.129410 2.017036 -1.700000 +v 0.000000 2.000002 -19.500000 +v 0.000000 2.000000 -1.700000 +v -0.129409 2.017039 -19.500000 +v -0.129409 2.017036 -1.700000 +v -0.250000 2.066990 -19.500000 +v -0.250000 2.066987 -1.700000 +v -0.353553 2.146449 -19.500000 +v -0.353553 2.146446 -1.700000 +v -0.433013 2.250002 -19.500000 +v -0.433013 2.250000 -1.700000 +v -0.482963 2.370593 -19.500000 +v -0.482963 2.370590 -1.700000 +v -0.500000 2.500002 -19.500000 +v -0.500000 2.500000 -1.700000 +v -0.482963 2.629411 -19.500000 +v -0.482963 2.629409 -1.700000 +v -0.433013 2.750002 -19.500000 +v -0.433013 2.749999 -1.700000 +v -0.353554 2.853556 -19.500000 +v -0.353554 2.853553 -1.700000 +v -0.250000 2.933015 -19.500000 +v -0.250000 2.933012 -1.700000 +v -0.129410 2.982965 -19.500000 +v -0.129410 2.982962 -1.700000 +v 0.217114 2.822435 -19.500000 +v 0.113208 2.865444 -4.500000 +v 0.113208 2.865474 -19.500000 +v 0.000000 2.050002 -17.850000 +v 0.494975 1.844977 -18.550001 +v 0.000000 2.050002 -18.550001 +v 0.494975 1.844977 -17.850000 +v 0.700000 1.350002 -18.550001 +v 0.700000 1.350002 -17.850000 +v 0.494975 0.855028 -18.550001 +v 0.494975 0.855027 -17.850000 +v 0.000000 0.650002 -18.550001 +v 0.000000 0.650002 -17.850000 +v -0.494975 0.855028 -18.550001 +v -0.494975 0.855028 -17.850000 +v -0.700000 1.350002 -18.550001 +v -0.700000 1.350002 -17.850000 +v -0.494975 1.844977 -18.550001 +v -0.494975 1.844977 -17.850000 +v 0.247487 1.102514 -19.300001 +v 0.350000 1.350002 -19.300001 +v 0.247487 1.597489 -19.300001 +v 0.000000 1.700002 -19.300001 +v -0.247487 1.597489 -19.300001 +v -0.350000 1.350002 -19.300001 +v -0.247487 1.102514 -19.300001 +v 0.247487 1.102514 -19.187502 +v 0.000000 1.000002 -19.187502 +v 0.000000 1.000002 -19.300001 +v 0.000000 1.700002 -19.187502 +v 0.247487 1.597489 -19.187502 +v 0.350000 1.350002 -19.187502 +v -0.247487 1.102514 -19.187502 +v 0.000000 1.750000 -1.199998 +v 0.103528 1.736373 -18.200001 +v 0.000000 1.750002 -18.200001 +v 0.103528 1.736370 -1.199998 +v 0.200000 1.696412 -18.200001 +v 0.200000 1.696410 -1.199998 +v 0.282843 1.632845 -18.200001 +v 0.282843 1.632842 -1.199998 +v 0.346410 1.550002 -18.200001 +v 0.346410 1.549999 -1.199998 +v 0.386370 1.453530 -18.200001 +v 0.386370 1.453527 -1.199998 +v 0.400000 1.350002 -18.200001 +v 0.400000 1.349999 -1.199998 +v 0.386370 1.246475 -18.200001 +v 0.386370 1.246472 -1.199998 +v 0.346410 1.150002 -18.200001 +v 0.346410 1.150000 -1.199998 +v 0.282843 1.067160 -18.200001 +v 0.282843 1.067157 -1.199998 +v 0.200000 1.003592 -18.200001 +v 0.200000 1.003590 -1.199998 +v 0.103528 0.963632 -18.200001 +v 0.103528 0.963629 -1.199998 +v 0.000000 0.950002 -18.200001 +v 0.000000 0.950000 -1.199998 +v -0.103527 0.963632 -18.200001 +v -0.103527 0.963629 -1.199998 +v -0.200000 1.003592 -18.200001 +v -0.200000 1.003589 -1.199998 +v -0.282843 1.067160 -18.200001 +v -0.282843 1.067157 -1.199998 +v -0.346410 1.150002 -18.200001 +v -0.346410 1.150000 -1.199998 +v -0.386370 1.246474 -18.200001 +v -0.386370 1.246472 -1.199998 +v -0.400000 1.350002 -18.200001 +v -0.400000 1.349999 -1.199998 +v -0.386370 1.453530 -18.200001 +v -0.386370 1.453527 -1.199998 +v -0.346410 1.550002 -18.200001 +v -0.346410 1.549999 -1.199998 +v -0.282843 1.632845 -18.200001 +v -0.282843 1.632842 -1.199998 +v -0.200000 1.696412 -18.200001 +v -0.200000 1.696410 -1.199998 +v -0.103528 1.736373 -18.200001 +v -0.103528 1.736370 -1.199998 +v 0.000000 1.850002 -15.850002 +v 0.129410 1.832965 -17.850002 +v 0.000000 1.850002 -17.850002 +v 0.129410 1.832965 -15.850002 +v 0.250000 1.783014 -17.850002 +v 0.250000 1.783014 -15.850002 +v 0.353553 1.703555 -17.850002 +v 0.353553 1.703555 -15.850002 +v 0.433013 1.600002 -17.850002 +v 0.433013 1.600002 -15.850002 +v 0.482963 1.479411 -17.850002 +v 0.482963 1.479411 -15.850002 +v 0.500000 1.350002 -17.850002 +v 0.500000 1.350002 -15.850002 +v 0.482963 1.220593 -17.850002 +v 0.482963 1.220593 -15.850002 +v 0.433013 1.100002 -17.850002 +v 0.433013 1.100002 -15.850002 +v 0.353554 0.996449 -17.850002 +v 0.353554 0.996449 -15.850002 +v 0.250000 0.916989 -17.850002 +v 0.250000 0.916989 -15.850002 +v 0.129410 0.867039 -17.850002 +v 0.129410 0.867039 -15.850002 +v 0.000000 0.850002 -17.850002 +v 0.000000 0.850002 -15.850002 +v -0.129409 0.867039 -17.850002 +v -0.129409 0.867039 -15.850002 +v -0.250000 0.916989 -17.850002 +v -0.250000 0.916989 -15.850002 +v -0.353553 0.996449 -17.850002 +v -0.353553 0.996448 -15.850002 +v -0.433013 1.100002 -17.850002 +v -0.433013 1.100002 -15.850002 +v -0.482963 1.220592 -17.850002 +v -0.482963 1.220592 -15.850002 +v -0.500000 1.350002 -17.850002 +v -0.500000 1.350001 -15.850002 +v -0.482963 1.479411 -17.850002 +v -0.482963 1.479411 -15.850002 +v -0.433013 1.600002 -17.850002 +v -0.433013 1.600002 -15.850002 +v -0.353554 1.703555 -17.850002 +v -0.353554 1.703555 -15.850002 +v -0.250000 1.783014 -17.850002 +v -0.250000 1.783014 -15.850002 +v -0.129410 1.832965 -17.850002 +v -0.129410 1.832965 -15.850002 +v 0.000000 1.850002 -15.400005 +v 0.129410 1.832965 -15.600006 +v 0.000000 1.850002 -15.600006 +v 0.129410 1.832965 -15.400005 +v 0.250000 1.783014 -15.600006 +v 0.250000 1.783014 -15.400005 +v 0.353553 1.703555 -15.600006 +v 0.353553 1.703555 -15.400005 +v 0.433013 1.600002 -15.600006 +v 0.433013 1.600002 -15.400005 +v 0.482963 1.479411 -15.600006 +v 0.482963 1.479411 -15.400005 +v 0.500000 1.350002 -15.600006 +v 0.500000 1.350002 -15.400005 +v 0.482963 1.220593 -15.600006 +v 0.482963 1.220593 -15.400005 +v 0.433013 1.100002 -15.600006 +v 0.433013 1.100002 -15.400005 +v 0.353554 0.996449 -15.600006 +v 0.353554 0.996449 -15.400005 +v 0.250000 0.916989 -15.600006 +v 0.250000 0.916989 -15.400005 +v 0.129410 0.867039 -15.600006 +v 0.129410 0.867039 -15.400005 +v 0.000000 0.850002 -15.600006 +v 0.000000 0.850002 -15.400005 +v -0.129409 0.867039 -15.600006 +v -0.129409 0.867039 -15.400005 +v -0.250000 0.916989 -15.600006 +v -0.250000 0.916989 -15.400005 +v -0.353553 0.996448 -15.600006 +v -0.353553 0.996448 -15.400005 +v -0.433013 1.100002 -15.600006 +v -0.433013 1.100002 -15.400005 +v -0.482963 1.220592 -15.600006 +v -0.482963 1.220592 -15.400005 +v -0.500000 1.350002 -15.600006 +v -0.500000 1.350002 -15.400005 +v -0.482963 1.479411 -15.600006 +v -0.482963 1.479411 -15.400005 +v -0.433013 1.600002 -15.600006 +v -0.433013 1.600002 -15.400005 +v -0.353554 1.703555 -15.600006 +v -0.353554 1.703555 -15.400005 +v -0.250000 1.783014 -15.600006 +v -0.250000 1.783014 -15.400005 +v -0.129410 1.832965 -15.600006 +v -0.129410 1.832965 -15.400005 +v 0.000000 1.850002 -15.050005 +v 0.129410 1.832965 -15.250006 +v 0.000000 1.850002 -15.250006 +v 0.129410 1.832965 -15.050005 +v 0.250000 1.783014 -15.250006 +v 0.250000 1.783014 -15.050005 +v 0.353553 1.703555 -15.250006 +v 0.353553 1.703555 -15.050005 +v 0.433013 1.600002 -15.250006 +v 0.433013 1.600002 -15.050005 +v 0.482963 1.479411 -15.250006 +v 0.482963 1.479411 -15.050005 +v 0.500000 1.350002 -15.250006 +v 0.500000 1.350002 -15.050005 +v 0.482963 1.220593 -15.250006 +v 0.482963 1.220593 -15.050005 +v 0.433013 1.100002 -15.250006 +v 0.433013 1.100002 -15.050005 +v 0.353554 0.996449 -15.250006 +v 0.353554 0.996449 -15.050005 +v 0.250000 0.916989 -15.250006 +v 0.250000 0.916989 -15.050005 +v 0.129410 0.867039 -15.250006 +v 0.129410 0.867039 -15.050005 +v 0.000000 0.850002 -15.250006 +v 0.000000 0.850002 -15.050005 +v -0.129409 0.867039 -15.250006 +v -0.129409 0.867039 -15.050005 +v -0.250000 0.916989 -15.250006 +v -0.250000 0.916989 -15.050005 +v -0.353553 0.996449 -15.250006 +v -0.353553 0.996449 -15.050005 +v -0.433013 1.100002 -15.250006 +v -0.433013 1.100002 -15.050005 +v -0.482963 1.220592 -15.250006 +v -0.482963 1.220592 -15.050005 +v -0.500000 1.350002 -15.250006 +v -0.500000 1.350002 -15.050005 +v -0.482963 1.479411 -15.250006 +v -0.482963 1.479411 -15.050005 +v -0.433013 1.600002 -15.250006 +v -0.433013 1.600002 -15.050005 +v -0.353554 1.703555 -15.250006 +v -0.353554 1.703555 -15.050005 +v -0.250000 1.783014 -15.250006 +v -0.250000 1.783014 -15.050005 +v -0.129410 1.832965 -15.250006 +v -0.129410 1.832965 -15.050005 +v 0.000000 1.850000 -10.700005 +v 0.129410 1.832965 -14.900005 +v 0.000000 1.850002 -14.900005 +v 0.129410 1.832962 -10.700005 +v 0.250000 1.783014 -14.900005 +v 0.250000 1.783012 -10.700005 +v 0.353553 1.703555 -14.900005 +v 0.353553 1.703552 -10.700005 +v 0.433013 1.600002 -14.900005 +v 0.433013 1.600000 -10.700005 +v 0.482963 1.479411 -14.900005 +v 0.482963 1.479408 -10.700005 +v 0.500000 1.350002 -14.900005 +v 0.500000 1.350000 -10.700005 +v 0.482963 1.220593 -14.900005 +v 0.482963 1.220590 -10.700005 +v 0.433013 1.100002 -14.900005 +v 0.433013 1.100000 -10.700005 +v 0.353554 0.996449 -14.900005 +v 0.353554 0.996447 -10.700005 +v 0.250000 0.916989 -14.900005 +v 0.250000 0.916986 -10.700005 +v 0.129410 0.867039 -14.900005 +v 0.129410 0.867036 -10.700005 +v 0.000000 0.850002 -14.900005 +v 0.000000 0.850000 -10.700005 +v -0.129409 0.867039 -14.900005 +v -0.129409 0.867036 -10.700005 +v -0.250000 0.916989 -14.900005 +v -0.250000 0.916986 -10.700005 +v -0.353553 0.996449 -14.900005 +v -0.353553 0.996445 -10.700005 +v -0.433013 1.100002 -14.900005 +v -0.433013 1.100000 -10.700005 +v -0.482963 1.220592 -14.900005 +v -0.482963 1.220589 -10.700005 +v -0.500000 1.350002 -14.900005 +v -0.500000 1.349998 -10.700005 +v -0.482963 1.479411 -14.900005 +v -0.482963 1.479408 -10.700005 +v -0.433013 1.600002 -14.900005 +v -0.433013 1.600000 -10.700005 +v -0.353554 1.703555 -14.900005 +v -0.353554 1.703552 -10.700005 +v -0.250000 1.783014 -14.900005 +v -0.250000 1.783012 -10.700005 +v -0.129410 1.832965 -14.900005 +v -0.129410 1.832962 -10.700005 +v 0.000000 2.880378 -19.500000 +v 0.303359 2.756257 -19.500000 +v 0.365776 2.674912 -19.500000 +v 0.401974 2.587523 -19.500000 +v 0.413496 2.500002 -19.500000 +v 0.401974 2.412481 -19.500000 +v 0.365776 2.325092 -19.500000 +v 0.303359 2.243747 -19.500000 +v 0.217114 2.177570 -19.500000 +v 0.113208 2.134531 -19.500000 +v 0.000000 2.119626 -19.500000 +v -0.113207 2.134531 -19.500000 +v -0.217114 2.177570 -19.500000 +v -0.303358 2.243747 -19.500000 +v -0.365776 2.325092 -19.500000 +v -0.401974 2.412481 -19.500000 +v -0.413496 2.500002 -19.500000 +v -0.401974 2.587523 -19.500000 +v -0.365776 2.674912 -19.500000 +v -0.303359 2.756257 -19.500000 +v -0.217115 2.822433 -19.500000 +v -0.113208 2.865474 -19.500000 +v -0.303359 2.756227 -4.500000 +v -0.217115 2.822405 -4.500000 +v -0.303358 2.243718 -4.500000 +v -0.365776 2.325062 -4.500000 +v 0.303359 2.243718 -4.500000 +v 0.217114 2.822405 -4.500000 +v -0.401974 2.412452 -4.500000 +v 0.217114 2.177541 -4.500000 +v 0.303359 2.756227 -4.500000 +v -0.413496 2.499972 -4.500000 +v 0.113208 2.134501 -4.500000 +v 0.365776 2.674883 -4.500000 +v -0.401974 2.587493 -4.500000 +v 0.000000 2.119597 -4.500000 +v 0.401974 2.587494 -4.500000 +v -0.365776 2.674883 -4.500000 +v -0.113207 2.134501 -4.500000 +v 0.413496 2.499973 -4.500000 +v -0.217114 2.177540 -4.500000 +v 0.401974 2.412452 -4.500000 +v 0.000000 2.880348 -4.500000 +v 0.365776 2.325063 -4.500000 +v -0.113208 2.865444 -4.500000 +v -0.247487 1.597489 -19.187502 +v -0.562597 0.647394 5.837500 +v 0.566750 -2.527643 7.135499 +v -0.562597 -2.527643 7.135499 +v -0.562597 -0.180466 8.289835 +v -0.640103 -0.780915 8.274623 +v -0.562597 -0.780915 8.274623 +v -0.562597 -3.377862 7.013357 +v 0.566750 -3.377862 7.013357 +v -0.562597 -2.987606 8.437500 +v 0.566750 -2.987606 8.437500 +v 0.566750 -2.817605 9.400000 +v 0.566750 -2.464953 7.305608 +v 0.645014 -3.026299 7.224965 +v 0.566750 -3.026299 7.224965 +v -0.562597 -0.688222 8.418876 +v 0.566750 -0.688222 8.418876 +v 0.566750 0.185425 9.259533 +v -0.562597 0.582395 8.302500 +v -0.562597 0.185425 9.259533 +v -0.562597 -0.369987 8.426938 +v 0.566750 -0.369987 8.426938 +v 0.566750 0.582395 8.302500 +v -0.745125 2.933334 -1.071110 +v -0.745125 0.800000 -1.699999 +v -0.745125 0.780398 -0.913832 +v 0.749278 0.800000 -1.699999 +v 0.749278 2.933334 -1.699999 +v 0.749278 1.698309 -0.676977 +v 0.749278 2.933304 -1.071133 +v -0.745125 2.933334 -1.699999 +v 0.749278 0.650225 4.306945 +v -0.745125 0.550647 8.300697 +v -0.745125 0.650225 4.306945 +v 0.749278 0.550647 8.300697 +v -0.745125 -3.878246 18.970343 +v 0.749278 2.932952 6.299709 +v 0.749278 -3.878246 18.970343 +v -0.745125 0.817816 19.398920 +v 0.749278 1.917568 8.277368 +v 0.865644 2.325624 6.986647 +v 0.749278 2.325624 6.986647 +v -0.745125 2.237243 7.108925 +v -0.884064 2.308129 6.984412 +v -0.745125 2.308129 6.984412 +v 0.749278 2.123853 8.290171 +v -0.745125 2.123853 8.290171 +v -0.745125 2.933335 6.300001 +v 0.749278 2.527876 7.012211 +v -0.558324 3.200001 3.750000 +v -0.558324 2.900000 -1.750000 +v -0.558324 2.900000 3.750000 +v 0.562478 3.200001 -1.750000 +v 0.562478 2.900000 3.750000 +v 0.562478 2.900000 -1.750000 +v 0.562478 3.200001 3.750000 +v -0.558324 3.200001 -1.750000 +v -0.184724 0.652645 5.427117 +v 0.188877 0.640000 5.690244 +v 0.188877 0.652645 5.427117 +v -0.184724 0.256794 5.586637 +v 0.188877 -0.181354 5.410000 +v -0.184724 -0.181354 5.410000 +v -0.184724 -0.031450 5.624102 +v 0.188877 0.160424 5.735405 +v 0.188877 -0.031450 5.624102 +v 0.188877 0.405741 5.904014 +v 0.188877 0.256794 5.586637 +v -0.184724 0.640000 5.690244 +v 0.188877 0.606441 5.842027 +v -0.184724 0.405741 5.904014 +v -0.184724 0.160424 5.735405 +v -0.184724 0.606441 5.842027 +v -0.371524 0.660000 2.970000 +v 0.375677 0.660000 4.294731 +v 0.375677 0.660000 2.970000 +v 0.375677 0.324113 3.675095 +v -0.371524 0.324113 3.675095 +v -0.371524 0.660000 4.294731 +v 0.375677 0.509328 4.170000 +v -0.371524 -0.124560 4.074054 +v 0.375677 -0.124560 4.074054 +v -0.371524 0.346295 4.124543 +v 0.375677 0.346295 4.124543 +v 0.375677 0.069553 4.199328 +v -0.371524 0.069553 4.199328 +v -0.371524 -0.236114 4.310554 +v 0.375677 -0.146776 4.438249 +v -0.371524 -0.351705 5.529659 +v 0.375677 -0.322895 4.675695 +v 0.375677 -0.351705 5.529659 +v -0.371524 -0.322895 4.675695 +v 0.375677 -0.236114 4.310554 +v 0.375677 -0.262769 5.520746 +v -0.371524 -0.146776 4.438249 +v -0.371524 -0.262769 5.520746 +v -0.371524 -0.202867 5.844228 +v 0.375677 -0.202867 5.844228 +v 0.375677 -0.157875 5.763871 +v -0.371524 0.158226 6.022319 +v 0.375677 0.158226 6.022319 +v -0.371524 0.239107 5.983576 +v 0.375677 0.239107 5.983576 +v -0.371524 -0.157875 5.763871 +v -0.558324 2.930001 6.000000 +v -0.371524 3.441714 5.759016 +v -0.558324 3.441714 5.759016 +v 0.562478 3.441714 5.759016 +v 0.562478 2.930001 6.000000 +v 0.562478 3.523953 4.644015 +v 0.562478 2.930000 3.800829 +v 0.375677 2.930001 6.000000 +v 0.375677 2.930000 3.800829 +v 0.375677 3.427887 3.897640 +v -0.558324 3.830230 5.170968 +v -0.371524 3.823139 5.393547 +v -0.371524 3.830230 5.170968 +v 0.375677 3.523953 4.644015 +v -0.558324 3.523953 4.644015 +v 0.375677 3.823139 5.393547 +v 0.562478 3.823139 5.393547 +v 0.375677 3.830230 5.170968 +v 0.562478 3.830230 5.170968 +v -0.371524 3.523953 4.644015 +v -0.369034 3.427887 3.897640 +v -0.371524 3.427887 3.897640 +v -0.558324 3.427887 3.897640 +v -0.371524 2.930000 3.800829 +v -0.558324 2.930000 3.800829 +v -0.371524 2.930001 6.000000 +v 0.373187 2.930000 3.800829 +v -0.558324 3.823139 5.393547 +v 0.375677 3.441714 5.759016 +v -0.369034 2.930000 3.800829 +v -0.369034 3.523953 4.644015 +v -0.745125 -3.606866 18.872658 +v -0.745125 0.608681 19.257383 +v -0.745125 1.899715 8.276260 +v -0.745125 0.761977 8.347678 +v -0.745125 2.527876 7.012211 +v -0.884064 1.899715 8.276260 +v -0.884064 2.237243 7.108925 +v -0.884064 0.761977 8.347678 +v -0.884064 0.608681 19.257383 +v -0.884064 -3.606866 18.872658 +v 0.749278 2.293221 7.043643 +v 0.749278 -3.628482 18.880440 +v 0.749278 0.817816 19.398920 +v 0.749278 0.745148 8.343928 +v 0.749278 0.625338 19.268656 +v 0.865644 0.745148 8.343928 +v 0.865644 2.293221 7.043643 +v 0.865644 1.917568 8.277368 +v 0.865644 -3.628482 18.880440 +v 0.865644 0.625338 19.268656 +v -0.562597 0.375139 6.127107 +v -0.562597 -2.470536 7.290457 +v -0.562597 -3.057612 7.206118 +v -0.562597 -2.724832 8.420519 +v -0.562597 -2.602371 9.113867 +v -0.562597 -2.817605 9.400000 +v -0.562597 0.126026 8.749284 +v -0.562597 0.318212 8.285953 +v -0.640103 0.375139 6.127107 +v -0.640103 -2.470536 7.290457 +v -0.640103 -2.724832 8.420519 +v -0.640103 0.318212 8.285953 +v -0.640103 -0.180466 8.289835 +v -0.640103 -2.602371 9.113867 +v -0.640103 0.126026 8.749284 +v -0.640103 -3.057612 7.206118 +v 0.566750 0.348518 6.155423 +v 0.566750 0.292381 8.284335 +v 0.566750 0.647394 5.837500 +v 0.566750 -2.581325 9.085890 +v 0.566750 -2.699137 8.418859 +v 0.566750 0.120218 8.699394 +v 0.566750 -0.789978 8.260518 +v 0.566750 -0.161935 8.276430 +v 0.645014 -0.789978 8.260518 +v 0.645014 -2.699137 8.418859 +v 0.645014 -2.464953 7.305608 +v 0.645014 0.292381 8.284335 +v 0.645014 -0.161935 8.276430 +v 0.645014 -2.581325 9.085890 +v 0.645014 0.348518 6.155423 +v 0.645014 0.120218 8.699394 +v 0.749278 2.933104 3.105046 +v -0.745125 2.933334 3.105221 +v 0.749278 0.780398 -0.913832 +v 0.749278 1.335998 -0.650505 +v 0.591463 1.270460 2.786515 +v 0.749278 1.270460 2.787845 +v 0.749278 2.371172 -0.726139 +v 0.749278 2.370995 2.838365 +v 0.591463 1.698309 -0.676977 +v 0.591463 2.370995 2.838365 +v 0.591463 1.666737 2.786487 +v 0.740693 1.668191 5.137841 +v 0.582879 1.668191 5.136976 +v 0.591463 2.371172 -0.726139 +v 0.591463 1.335998 -0.650505 +v 0.749278 1.666737 2.787352 +v 0.582879 1.271914 5.137004 +v 0.740693 1.271914 5.138335 +v -0.371524 0.509328 4.170000 +v 0.562478 3.427887 3.897640 +v -0.369034 3.823139 5.393547 +v -0.369034 3.830230 5.170968 +v 0.212415 3.387585 5.190104 +v 0.249773 3.433107 5.409895 +v 0.212415 3.387585 5.409895 +v 0.249773 3.433107 5.190104 +v 0.277533 3.485043 5.409895 +v 0.277533 3.485043 5.190104 +v 0.294628 3.541395 5.409895 +v 0.294628 3.541395 5.190104 +v 0.300400 3.600000 5.409895 +v 0.300400 3.600000 5.190104 +v 0.294628 3.658606 5.409895 +v 0.294628 3.658606 5.190104 +v 0.277533 3.714958 5.409895 +v 0.277533 3.714958 5.190104 +v 0.249773 3.766893 5.409895 +v 0.249773 3.766893 5.190104 +v 0.212415 3.812415 5.409895 +v 0.212415 3.812415 5.190104 +v 0.166893 3.849773 5.409895 +v 0.166893 3.849773 5.190104 +v 0.114958 3.877533 5.409895 +v 0.114958 3.877533 5.190104 +v 0.058605 3.894629 5.409895 +v 0.058605 3.894629 5.190104 +v 0.000000 3.900400 5.409895 +v 0.000000 3.900400 5.190104 +v -0.058605 3.894629 5.409895 +v -0.058605 3.894629 5.190104 +v -0.114958 3.877533 5.409895 +v -0.114958 3.877533 5.190104 +v -0.166893 3.849773 5.409895 +v -0.166893 3.849773 5.190104 +v -0.212415 3.812415 5.409895 +v -0.212415 3.812415 5.190104 +v -0.249773 3.766893 5.409895 +v -0.249773 3.766893 5.190104 +v -0.277533 3.714958 5.409895 +v -0.277533 3.714958 5.190104 +v -0.294628 3.658606 5.409895 +v -0.294628 3.658606 5.190104 +v -0.300400 3.600000 5.409895 +v -0.300400 3.600000 5.190104 +v -0.294628 3.541395 5.409895 +v -0.294628 3.541395 5.190104 +v -0.277533 3.485043 5.409895 +v -0.277533 3.485043 5.190104 +v -0.249773 3.433107 5.409895 +v -0.249773 3.433107 5.190104 +v -0.212414 3.387585 5.409895 +v 0.146217 3.453784 5.190104 +v 0.171933 3.485118 5.410769 +v 0.171933 3.485118 5.190104 +v 0.202808 3.559659 5.190104 +v 0.191041 3.520869 5.190104 +v 0.206782 3.600000 5.190104 +v 0.202808 3.640342 5.190104 +v 0.171933 3.714882 5.190104 +v 0.191041 3.679132 5.190104 +v 0.146217 3.746217 5.190104 +v 0.114882 3.771934 5.190104 +v 0.040341 3.802809 5.190104 +v 0.079132 3.791041 5.190104 +v 0.000000 3.806782 5.190104 +v -0.040341 3.802809 5.190104 +v -0.114882 3.771934 5.190104 +v -0.079132 3.791041 5.190104 +v -0.146217 3.746217 5.190104 +v -0.171933 3.714881 5.190104 +v -0.202808 3.640342 5.190104 +v -0.191041 3.679132 5.190104 +v -0.206782 3.600000 5.190104 +v -0.202808 3.559659 5.190104 +v -0.191041 3.520869 5.190104 +v -0.171932 3.485118 5.190104 +v -0.212414 3.387585 5.190104 +v -0.040341 3.397192 5.190104 +v 0.000000 3.393219 5.410769 +v 0.000000 3.393219 5.190104 +v -0.114882 3.771934 5.410769 +v 0.191041 3.520869 5.410769 +v -0.146217 3.746217 5.410769 +v 0.202808 3.559659 5.410769 +v -0.171933 3.714881 5.410769 +v 0.206782 3.600000 5.410769 +v -0.191041 3.679132 5.410769 +v 0.202808 3.640342 5.410769 +v -0.202808 3.640342 5.410769 +v 0.191041 3.679132 5.410769 +v -0.206781 3.600000 5.410769 +v 0.171933 3.714882 5.410769 +v -0.202808 3.559659 5.410769 +v 0.146217 3.746217 5.410769 +v -0.191041 3.520869 5.410769 +v 0.114882 3.771934 5.410769 +v -0.171932 3.485118 5.410769 +v 0.079132 3.791041 5.410769 +v 0.040341 3.397192 5.410769 +v 0.040341 3.397192 5.190104 +v -0.146216 3.453784 5.410769 +v -0.146216 3.453784 5.190104 +v 0.040341 3.802809 5.410769 +v 0.079132 3.408959 5.410769 +v 0.079132 3.408959 5.190104 +v -0.114881 3.428067 5.410769 +v -0.114881 3.428067 5.190104 +v 0.000000 3.806782 5.410769 +v 0.114882 3.428067 5.410769 +v 0.114882 3.428067 5.190104 +v -0.079132 3.408959 5.410769 +v -0.079132 3.408959 5.190104 +v -0.040341 3.802809 5.410769 +v 0.146217 3.453784 5.410769 +v -0.040341 3.397192 5.410769 +v -0.079132 3.791041 5.410769 +v 0.169977 3.486425 5.409895 +v 0.188868 3.521769 5.409895 +v 0.200501 3.560118 5.409895 +v 0.204429 3.600000 5.409895 +v 0.200501 3.639883 5.409895 +v 0.188868 3.678232 5.409895 +v 0.169977 3.713575 5.409895 +v 0.144553 3.744554 5.409895 +v 0.113575 3.769978 5.409895 +v 0.078232 3.788868 5.409895 +v 0.039882 3.800502 5.409895 +v 0.000000 3.804430 5.409895 +v -0.039882 3.800502 5.409895 +v -0.078232 3.788868 5.409895 +v -0.113575 3.769978 5.409895 +v -0.144553 3.744554 5.409895 +v -0.169977 3.713575 5.409895 +v -0.188868 3.678231 5.409895 +v -0.200501 3.639883 5.409895 +v -0.204429 3.600000 5.409895 +v -0.200501 3.560118 5.409895 +v -0.188868 3.521769 5.409895 +v -0.169977 3.486425 5.409895 +v -0.144553 3.455447 5.409895 +v -0.371415 3.387367 5.661842 +v -0.371415 2.912633 4.938158 +v -0.371415 2.912633 5.661843 +v -0.371415 3.387367 4.938158 +v 0.390512 2.912633 4.938158 +v 0.390512 3.387367 4.938158 +v 0.390512 2.912633 5.661843 +v 0.390512 3.387367 5.661842 +v 0.212149 3.387367 5.409895 +v 0.212149 3.387367 5.190104 +v -0.212149 3.387367 5.190104 +v -0.212149 3.387367 5.409895 +v 0.000000 3.387367 5.190104 +v 0.042295 3.387367 5.190104 +v 0.088076 3.387367 5.190104 +v 0.142077 3.387367 5.190104 +v -0.142076 3.387367 5.190104 +v -0.088075 3.387367 5.190104 +v -0.042295 3.387367 5.190104 +v 0.039882 3.399499 5.409895 +v 0.000000 3.387367 5.409895 +v 0.042295 3.387367 5.409895 +v 0.078232 3.411133 5.409895 +v 0.088076 3.387367 5.409895 +v 0.113575 3.430023 5.409895 +v 0.142077 3.387367 5.409895 +v 0.144553 3.455447 5.409895 +v -0.088075 3.387367 5.409895 +v -0.113575 3.430023 5.409895 +v -0.142076 3.387367 5.409895 +v -0.042295 3.387367 5.409895 +v -0.078231 3.411133 5.409895 +v -0.039882 3.399499 5.409895 +v 0.000000 3.395571 5.409895 +v -0.285753 2.876173 -17.583353 +v -0.206993 3.392600 -18.284744 +v -0.285753 2.876173 -18.899897 +v 0.285753 2.876173 -18.899897 +v 0.206993 3.392600 -18.284744 +v 0.285753 2.876173 -17.583353 +v 0.206993 3.392600 -17.955841 +v -0.052052 3.504858 -18.120081 +v -0.045935 3.600578 -18.259661 +v -0.052052 3.504858 -18.269205 +v 0.052052 3.504858 -18.269205 +v 0.045935 3.600578 -18.259661 +v 0.052052 3.504858 -18.120081 +v 0.045935 3.600578 -18.122107 +v 0.063413 3.327093 -18.286932 +v -0.063413 3.327093 -18.116322 +v -0.063413 3.327093 -18.286932 +v 0.063413 3.327093 -18.116322 +v -0.197447 3.270683 -17.965662 +v -0.287607 3.625363 -18.247025 +v -0.197447 3.270683 -18.300558 +v -0.199752 3.652223 -18.247025 +v -0.076163 3.307763 -18.300558 +v -0.076163 3.307763 -17.965662 +v -0.199752 3.652223 -17.977015 +v 0.076163 3.307763 -17.965847 +v 0.199752 3.652223 -18.246998 +v 0.076163 3.307763 -18.300491 +v 0.197447 3.270683 -18.300491 +v 0.287607 3.625363 -18.246998 +v 0.197447 3.270683 -17.965847 +v 0.287607 3.625363 -17.977190 +v -0.206993 3.392600 -17.955841 +v -0.045935 3.600578 -18.122107 +v -0.287607 3.625363 -17.977015 +v 0.199752 3.652223 -17.977190 +vn -0.0004 -0.0000 -1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0005 -0.0000 -1.0000 +vn 0.0029 -1.0000 0.0015 +vn 0.0064 -1.0000 0.0034 +vn -0.0000 -1.0000 -0.0000 +vn 0.8011 0.5986 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.0008 0.0005 1.0000 +vn 0.0014 0.0044 1.0000 +vn 0.0015 0.0049 1.0000 +vn 0.0010 1.0000 -0.0000 +vn -0.8011 0.5986 -0.0000 +vn -0.0066 0.0049 1.0000 +vn -0.9179 -0.3969 -0.0000 +vn -0.0007 -0.0000 -1.0000 +vn -0.0009 -1.0000 0.0003 +vn -0.0000 -0.5728 0.8197 +vn -0.0005 -0.8620 0.5069 +vn 0.8506 0.0005 0.5258 +vn 0.8501 -0.0003 0.5266 +vn 0.8501 -0.0000 0.5267 +vn 0.8011 -0.5986 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.8011 -0.5986 -0.0000 +vn -0.0000 -0.5727 0.8197 +vn -0.0005 -0.8619 0.5070 +vn 0.8500 -0.0007 0.5267 +vn 0.8510 0.0008 0.5252 +vn 0.8511 -0.0000 0.5250 +vn -0.0009 -1.0000 0.0004 +vn -0.0001 -0.5735 0.8192 +vn 0.8503 -0.0000 0.5263 +vn 0.8505 0.0002 0.5259 +vn 0.8505 -0.0000 0.5259 +vn -0.9178 -0.3970 -0.0000 +vn 0.8504 -0.0000 0.5262 +vn 0.8505 0.0005 0.5259 +vn 0.8500 -0.0003 0.5267 +vn 0.8500 -0.0000 0.5268 +vn -0.0005 -0.8620 0.5070 +vn -0.8503 -0.0000 -0.5263 +vn -0.0000 -0.5729 0.8196 +vn -0.8504 -0.0000 -0.5261 +vn -0.0000 -0.5731 0.8195 +vn -0.0005 -0.8621 0.5068 +vn -0.8502 -0.0000 -0.5265 +vn -0.9179 -0.3968 -0.0000 +vn 0.0093 -0.9999 0.0049 +vn 0.0007 -0.0000 1.0000 +vn -0.0010 -1.0000 -0.0000 +vn -0.0011 -1.0000 0.0005 +vn -0.0011 -1.0000 0.0003 +vn 0.9961 0.0882 -0.0000 +vn 0.9865 -0.1635 -0.0000 +vn 0.8737 -0.4865 -0.0000 +vn 0.6256 -0.7802 -0.0000 +vn 0.2322 -0.9727 -0.0000 +vn -0.2322 -0.9727 -0.0000 +vn -0.6256 -0.7802 -0.0000 +vn -0.8737 -0.4865 -0.0000 +vn -0.9865 -0.1635 -0.0000 +vn -0.9961 0.0882 -0.0000 +vn 0.1305 0.9914 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn 0.6088 0.7934 -0.0000 +vn 0.7934 0.6088 -0.0000 +vn 0.7933 0.6088 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.9914 0.1305 -0.0000 +vn 0.9914 -0.1305 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.7934 -0.6088 -0.0000 +vn 0.6088 -0.7934 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.1305 -0.9914 -0.0000 +vn -0.1305 -0.9914 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.6088 -0.7934 -0.0000 +vn -0.7934 -0.6088 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9914 -0.1305 -0.0000 +vn -0.9914 0.1305 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.7934 0.6088 -0.0000 +vn -0.6088 0.7934 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.1305 0.9914 -0.0000 +vn 0.3514 -0.8484 -0.3959 +vn 0.8484 -0.3514 -0.3959 +vn 0.8484 0.3514 -0.3959 +vn 0.3514 0.8484 -0.3959 +vn -0.3514 0.8484 -0.3959 +vn -0.8484 0.3514 -0.3959 +vn -0.8484 -0.3514 -0.3959 +vn -0.3514 -0.8484 -0.3959 +vn -0.6088 -0.7933 -0.0000 +vn -0.7933 -0.6088 -0.0000 +vn 0.6088 0.7933 -0.0000 +vn 0.6088 -0.7933 -0.0000 +vn 0.5314 0.1600 -0.8319 +vn 0.8527 -0.0000 -0.5224 +vn 0.5314 -0.1600 -0.8319 +vn -0.0000 -0.0001 -1.0000 +vn -0.0000 0.0002 -1.0000 +vn -0.0000 0.0001 1.0000 +vn -0.0000 -0.0001 1.0000 +vn -0.0000 0.0001 -1.0000 +vn 0.7933 -0.6088 -0.0000 +vn -0.0000 -0.3784 -0.9256 +vn -0.0000 -0.0253 0.9997 +vn -0.0000 0.1422 -0.9898 +vn -0.0000 -0.9644 0.2643 +vn -0.0000 -0.9848 0.1739 +vn -0.0000 0.4185 0.9082 +vn -0.0000 0.9237 0.3831 +vn -0.0000 -0.8319 0.5549 +vn -0.0000 0.9997 0.0264 +vn -0.0000 -0.9997 -0.0249 +vn -0.0000 -0.9236 -0.3834 +vn 0.0001 0.6431 0.7658 +vn -0.0000 0.6432 0.7657 +vn 0.0002 0.6431 0.7658 +vn -0.0000 -0.0909 0.9959 +vn -0.0000 0.9535 0.3014 +vn -0.0000 -0.8690 -0.4947 +vn -0.0000 0.9932 0.1168 +vn 0.0001 0.8691 0.4946 +vn 0.0002 0.8692 0.4944 +vn 0.0003 0.8693 0.4942 +vn -0.0000 0.9988 0.0480 +vn -0.0000 0.3739 -0.9275 +vn -0.0000 -0.8192 0.5735 +vn -0.0000 -0.5018 0.8650 +vn -0.0000 -0.3738 -0.9275 +vn -0.0000 0.9764 0.2159 +vn -0.0000 -0.5664 0.8241 +vn -0.0000 0.2951 0.9555 +vn -0.0000 -0.9028 -0.4301 +vn -0.0000 -0.6377 0.7703 +vn -0.0000 -0.6645 -0.7473 +vn -0.0000 -0.2686 0.9633 +vn -0.0000 0.2609 0.9654 +vn -0.0000 -0.9044 -0.4266 +vn -0.0000 0.7413 0.6712 +vn -0.0000 -0.9994 -0.0337 +vn -0.0000 -0.9729 -0.2312 +vn -0.0000 0.9943 0.1065 +vn -0.0000 -0.9039 0.4277 +vn -0.0000 0.9182 -0.3961 +vn -0.0000 -0.4423 0.8969 +vn -0.0000 0.4320 0.9019 +vn -0.0000 0.4842 -0.8749 +vn -0.0000 0.4261 0.9047 +vn -0.0000 0.1909 -0.9816 +vn -0.0000 0.9995 0.0318 +vn -0.0000 0.9918 -0.1277 +vn -0.0000 0.6918 0.7220 +vn -0.0000 0.8646 -0.5025 +vn 1.0000 -0.0007 0.0005 +vn 1.0000 -0.0014 0.0012 +vn -0.0000 -0.6430 -0.7658 +vn -0.0000 -0.6432 -0.7657 +vn -0.0000 -0.8693 -0.4942 +vn -0.6596 -0.0683 0.7485 +vn -0.8378 -0.5043 -0.2093 +vn -0.8500 0.5231 0.0615 +vn -0.8432 0.5126 0.1621 +vn -0.8274 0.4880 0.2778 +vn -0.7765 -0.4066 -0.4813 +vn -0.9847 -0.1471 -0.0934 +vn -0.6634 -0.4810 -0.5732 +vn 0.8711 0.4878 0.0574 +vn 0.8649 0.4785 0.1513 +vn 0.8509 0.4567 0.2597 +vn 0.6244 -0.6823 -0.3803 +vn 0.9324 -0.3053 -0.1935 +vn 0.4276 -0.5944 -0.6811 +vn 0.8498 -0.4812 -0.2153 +vn 0.8540 -0.4746 -0.2131 +vn 0.5116 -0.7935 -0.3296 +vn 0.6942 -0.0654 0.7168 +vn 0.9639 -0.2569 0.0704 +vn 0.9639 -0.2570 0.0704 +vn 0.9648 -0.2588 0.0457 +vn 0.9220 0.1620 0.3516 +vn 0.8935 -0.0114 0.4489 +vn 0.9565 -0.2427 0.1619 +vn 0.9618 0.2530 0.1049 +vn 0.9655 0.2601 0.0069 +vn 0.9180 -0.1501 -0.3671 +vn 0.8977 0.0627 -0.4361 +vn -0.9588 -0.2796 0.0494 +vn -0.9577 -0.2776 0.0761 +vn -0.8823 0.0669 -0.4660 +vn -0.9052 -0.1609 -0.3935 +vn -0.9597 0.2811 0.0074 +vn -0.9553 0.2732 0.1133 +vn -0.9492 -0.2618 0.1747 +vn -0.8776 -0.0121 0.4793 +vn -0.9097 0.1738 0.3771 +vn 0.0001 1.0000 -0.0000 +vn 0.0002 1.0000 -0.0000 +vn 0.0003 1.0000 -0.0000 +vn -0.0000 0.9998 0.0191 +vn -0.0002 0.9998 0.0191 +vn 1.0000 0.0011 0.0004 +vn 1.0000 -0.0019 0.0015 +vn 1.0000 -0.0005 0.0020 +vn 1.0000 -0.0000 0.0012 +vn -0.0000 -1.0000 0.0006 +vn -0.0000 0.0729 0.9973 +vn 0.0047 0.0733 -0.9973 +vn 0.0008 0.0724 -0.9974 +vn -0.0000 0.0722 -0.9974 +vn 1.0000 -0.0000 0.0018 +vn 0.0062 -0.0004 -1.0000 +vn 0.0077 -0.0010 -1.0000 +vn 0.0055 -0.0001 -1.0000 +vn -0.0000 1.0000 -0.0006 +vn 1.0000 -0.0000 0.0037 +vn 1.0000 -0.0026 -0.0033 +vn 0.0003 0.6430 0.7658 +vn -0.0000 0.8690 0.4947 +vn -0.0000 0.6918 0.7221 +vn 1.0000 -0.0041 0.0015 +vn 1.0000 -0.0003 0.0021 +vn 1.0000 -0.0067 -0.0002 +vn 1.0000 0.0001 0.0019 +vn -0.7777 -0.4043 -0.4814 +vn -0.7745 -0.4066 -0.4846 +vn -0.7289 -0.4483 -0.5175 +vn -0.6601 -0.4830 -0.5753 +vn 0.6040 -0.5435 -0.5829 +vn 0.5342 -0.5890 -0.6064 +vn 0.4630 -0.6025 -0.6501 +vn 0.4152 -0.5851 -0.6966 +vn 0.8373 -0.4982 -0.2250 +vn 0.4917 -0.8041 -0.3342 +vn 0.4860 -0.8072 -0.3351 +vn 1.0000 0.0088 0.0025 +vn 0.0055 0.0735 -0.9973 +vn 0.0084 -0.0012 -1.0000 +vn 1.0000 -0.0032 -0.0034 +vn 1.0000 0.0052 -0.0019 +vn 1.0000 -0.0041 -0.0024 +vn 1.0000 0.0022 -0.0022 +vn 1.0000 0.0099 0.0001 +vn 1.0000 -0.0003 0.0037 +vn 0.7730 -0.6344 -0.0000 +vn 0.8819 -0.4714 -0.0000 +vn 0.9569 -0.2903 -0.0000 +vn 0.9952 -0.0980 -0.0000 +vn 0.9952 0.0980 -0.0000 +vn 0.9569 0.2903 -0.0000 +vn 0.8819 0.4714 -0.0000 +vn 0.7730 0.6344 -0.0000 +vn 0.6344 0.7730 -0.0000 +vn 0.4714 0.8819 -0.0000 +vn 0.2903 0.9569 -0.0000 +vn 0.0980 0.9952 -0.0000 +vn -0.0980 0.9952 -0.0000 +vn -0.2903 0.9569 -0.0000 +vn -0.4714 0.8819 -0.0000 +vn -0.6344 0.7730 -0.0000 +vn -0.7730 0.6344 -0.0000 +vn -0.8819 0.4714 -0.0000 +vn -0.9569 0.2903 -0.0000 +vn -0.9952 0.0980 -0.0000 +vn -0.9952 -0.0980 -0.0000 +vn -0.9569 -0.2903 -0.0000 +vn -0.8819 -0.4714 -0.0000 +vn -0.7730 -0.6344 -0.0000 +vn -0.0000 -0.0002 -1.0000 +vn -0.0000 0.0009 -1.0000 +vn 0.4714 -0.8819 -0.0000 +vn 0.6344 -0.7730 -0.0000 +vn -0.6344 -0.7730 -0.0000 +vn -0.4714 -0.8819 -0.0000 +vn -0.2903 -0.9569 -0.0000 +vn -0.0980 -0.9952 -0.0000 +vn 0.0980 -0.9952 -0.0000 +vn 0.2903 -0.9569 -0.0000 +vn -0.0000 -0.0002 1.0000 +vn 0.6339 -0.7734 -0.0000 +vn -0.6348 -0.7726 -0.0000 +vn -0.6346 -0.7728 -0.0000 +vn -0.0000 -0.0003 -1.0000 +vn -0.0000 0.0013 -1.0000 +vn -0.0000 -0.0003 1.0000 +vn -0.9886 0.1508 -0.0000 +vn -0.0000 0.7659 -0.6430 +vn 0.9886 0.1508 -0.0000 +vn -0.0000 0.5850 0.8110 +vn -0.9980 0.0638 -0.0000 +vn -0.0000 0.0992 -0.9951 +vn 0.9980 0.0638 -0.0000 +vn -0.0000 0.0212 0.9998 +vn -0.0000 0.0211 0.9998 +vn -0.9692 -0.2464 -0.0000 +vn -0.0424 0.1386 -0.9894 +vn 0.9412 0.3377 -0.0000 +vn -0.0091 0.0297 0.9995 +vn 0.2924 -0.9563 -0.0000 +vn -0.2924 0.9563 -0.0000 +vn -0.9413 0.3377 -0.0000 +vn -0.9412 0.3377 -0.0000 +vn 0.0423 0.1385 -0.9895 +vn 0.9692 -0.2464 -0.0000 +vn 0.0091 0.0297 0.9995 +vn -0.2924 -0.9563 -0.0000 +vn 0.2924 0.9563 -0.0000 +vn 0.9413 0.3377 -0.0000 +vn 0.0091 0.0296 0.9995 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.443281 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.470782 0.996769 +vt 0.415970 0.982469 +vt 0.443281 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.939568 +vt 0.498282 0.982469 +vt 0.435064 0.853152 +vt 0.419806 0.853152 +vt 0.557124 0.853152 +vt 0.572381 0.891623 +vt 0.557124 0.828152 +vt 0.572381 0.828152 +vt 0.557124 0.891623 +vt 0.541866 0.828152 +vt 0.541866 0.891623 +vt 0.526609 0.828152 +vt 0.526609 0.891623 +vt 0.511351 0.828152 +vt 0.511351 0.891623 +vt 0.496094 0.828152 +vt 0.496094 0.891623 +vt 0.480836 0.828152 +vt 0.480836 0.891623 +vt 0.465579 0.828152 +vt 0.465579 0.891623 +vt 0.450321 0.828152 +vt 0.450321 0.891623 +vt 0.435064 0.828152 +vt 0.435064 0.891623 +vt 0.419806 0.828152 +vt 0.572381 0.916623 +vt 0.572381 0.853152 +vt 0.526609 0.916623 +vt 0.541866 0.916623 +vt 0.465579 0.916623 +vt 0.541866 0.853152 +vt 0.450321 0.853152 +vt 0.526609 0.853152 +vt 0.465579 0.853152 +vt 0.511351 0.853152 +vt 0.496094 0.853152 +vt 0.480836 0.853152 +vt 0.419806 0.891623 +vt 0.419806 0.916623 +vt 0.557124 0.916623 +vt 0.435064 0.916623 +vt 0.450321 0.916623 +vt 0.480836 0.916623 +vt 0.496094 0.916623 +vt 0.511351 0.916623 +vt 0.603611 0.962891 +vt 0.600511 0.943544 +vt 0.603611 0.943544 +vt 0.600511 0.962891 +vt 0.597411 0.943544 +vt 0.597411 0.962891 +vt 0.594310 0.943544 +vt 0.594310 0.962891 +vt 0.591210 0.943544 +vt 0.591210 0.962891 +vt 0.588109 0.943544 +vt 0.588109 0.962891 +vt 0.585009 0.943544 +vt 0.585009 0.962891 +vt 0.581908 0.943544 +vt 0.581908 0.962891 +vt 0.578808 0.943544 +vt 0.578808 0.962891 +vt 0.575707 0.943544 +vt 0.575707 0.962891 +vt 0.572607 0.943544 +vt 0.572607 0.962891 +vt 0.569507 0.943544 +vt 0.569507 0.962891 +vt 0.566406 0.943544 +vt 0.566406 0.962891 +vt 0.563306 0.943544 +vt 0.563306 0.962891 +vt 0.560205 0.943544 +vt 0.560205 0.962891 +vt 0.557105 0.943544 +vt 0.557105 0.962891 +vt 0.554004 0.943544 +vt 0.554004 0.962891 +vt 0.550904 0.943544 +vt 0.550904 0.962891 +vt 0.547804 0.943544 +vt 0.547804 0.962891 +vt 0.544703 0.943544 +vt 0.544703 0.962891 +vt 0.541603 0.943544 +vt 0.541603 0.962891 +vt 0.538502 0.943544 +vt 0.538502 0.962891 +vt 0.535402 0.943544 +vt 0.556733 0.950828 +vt 0.565662 0.958871 +vt 0.556733 0.966913 +vt 0.535402 0.962891 +vt 0.532301 0.943544 +vt 0.532301 0.962891 +vt 0.529201 0.943544 +vt 0.592763 0.964859 +vt 0.589052 0.965659 +vt 0.603611 0.987891 +vt 0.594310 0.968544 +vt 0.603611 0.968544 +vt 0.594310 0.987891 +vt 0.585009 0.968544 +vt 0.585009 0.987891 +vt 0.575707 0.968544 +vt 0.575707 0.987891 +vt 0.566406 0.968544 +vt 0.566406 0.987891 +vt 0.557105 0.968544 +vt 0.557105 0.987891 +vt 0.547804 0.968544 +vt 0.547804 0.968157 +vt 0.529945 0.958871 +vt 0.547804 0.987891 +vt 0.538502 0.968544 +vt 0.538502 0.987891 +vt 0.529201 0.968544 +vt 0.597637 0.952304 +vt 0.572381 0.952304 +vt 0.572381 0.965437 +vt 0.554118 0.962154 +vt 0.560431 0.965437 +vt 0.556733 0.958871 +vt 0.554118 0.955587 +vt 0.560431 0.952304 +vt 0.547804 0.949584 +vt 0.547804 0.954228 +vt 0.535176 0.952304 +vt 0.541490 0.955587 +vt 0.538874 0.958871 +vt 0.535176 0.965437 +vt 0.541490 0.962154 +vt 0.585009 0.983745 +vt 0.575707 0.983745 +vt 0.566406 0.983745 +vt 0.529201 0.987891 +vt 0.538502 0.983745 +vt 0.529201 0.983745 +vt 0.603611 0.983745 +vt 0.594310 0.983745 +vt 0.557105 0.983745 +vt 0.600511 0.968544 +vt 0.600511 0.987891 +vt 0.597411 0.968544 +vt 0.597411 0.987891 +vt 0.591210 0.968544 +vt 0.591210 0.987891 +vt 0.588109 0.968544 +vt 0.588109 0.987891 +vt 0.581908 0.968544 +vt 0.581908 0.987891 +vt 0.578808 0.968544 +vt 0.578808 0.987891 +vt 0.572607 0.968544 +vt 0.572607 0.987891 +vt 0.569507 0.968544 +vt 0.569507 0.987891 +vt 0.563306 0.968544 +vt 0.563306 0.987891 +vt 0.560205 0.968544 +vt 0.560205 0.987891 +vt 0.554004 0.968544 +vt 0.554004 0.987891 +vt 0.550904 0.968544 +vt 0.550904 0.987891 +vt 0.544703 0.968544 +vt 0.544703 0.987891 +vt 0.541603 0.968544 +vt 0.541603 0.987891 +vt 0.535402 0.968544 +vt 0.535402 0.987891 +vt 0.532301 0.968544 +vt 0.532301 0.987891 +vt 0.567759 0.961274 +vt 0.580387 0.967841 +vt 0.602259 0.956467 +vt 0.585009 0.965935 +vt 0.589631 0.967841 +vt 0.593938 0.966913 +vt 0.597637 0.965437 +vt 0.595844 0.963630 +vt 0.600475 0.963514 +vt 0.598073 0.962119 +vt 0.602259 0.961274 +vt 0.599366 0.960496 +vt 0.602867 0.958871 +vt 0.599778 0.958871 +vt 0.599366 0.957245 +vt 0.598073 0.955622 +vt 0.600475 0.954228 +vt 0.595844 0.954111 +vt 0.592763 0.952882 +vt 0.593938 0.950828 +vt 0.589052 0.952082 +vt 0.589631 0.949901 +vt 0.585009 0.951806 +vt 0.585009 0.949584 +vt 0.580387 0.949901 +vt 0.580965 0.952082 +vt 0.576080 0.950828 +vt 0.577254 0.952882 +vt 0.574174 0.954111 +vt 0.569543 0.954228 +vt 0.571944 0.955622 +vt 0.567759 0.956467 +vt 0.570651 0.957245 +vt 0.567150 0.958871 +vt 0.570240 0.958871 +vt 0.570651 0.960496 +vt 0.571944 0.962119 +vt 0.569543 0.963514 +vt 0.574174 0.963630 +vt 0.577254 0.964859 +vt 0.576079 0.966913 +vt 0.580965 0.965659 +vt 0.585009 0.968157 +vt 0.552426 0.967841 +vt 0.543181 0.967841 +vt 0.538874 0.966913 +vt 0.532338 0.963514 +vt 0.530554 0.961274 +vt 0.530554 0.956467 +vt 0.532338 0.954228 +vt 0.538874 0.950828 +vt 0.543181 0.949901 +vt 0.552426 0.949901 +vt 0.563269 0.954228 +vt 0.565054 0.956467 +vt 0.565054 0.961274 +vt 0.563269 0.963514 +vt 0.529201 0.962891 +vt 0.547804 0.963514 +vt 0.396481 0.835451 +vt 0.459833 0.866080 +vt 0.396481 0.866080 +vt 0.545719 0.522092 +vt 0.497611 0.526046 +vt 0.462657 0.901337 +vt 0.459833 0.868394 +vt 0.462657 0.868394 +vt 0.467752 0.901337 +vt 0.467752 0.868394 +vt 0.523185 0.868394 +vt 0.388562 0.868394 +vt 0.411544 0.779875 +vt 0.390770 0.774974 +vt 0.333129 0.853963 +vt 0.523185 0.853963 +vt 0.564336 0.894415 +vt 0.384270 0.884437 +vt 0.384270 0.894415 +vt 0.333129 0.850928 +vt 0.523185 0.850928 +vt 0.333129 0.845982 +vt 0.625000 0.895044 +vt 0.625000 0.635044 +vt 0.625000 0.505044 +vt 0.563252 0.666138 +vt 0.539872 0.667093 +vt 0.539872 0.666138 +vt 0.360235 0.662320 +vt 0.610235 0.662320 +vt 0.467262 0.676993 +vt 0.389035 0.657551 +vt 0.654591 0.681900 +vt 0.673945 0.683675 +vt 0.539872 0.686553 +vt 0.516493 0.691408 +vt 0.516493 0.686553 +vt 0.371179 0.824396 +vt 0.224012 0.900923 +vt 0.224012 0.824396 +vt 0.504838 0.868908 +vt 0.504838 0.907383 +vt 0.578829 0.907383 +vt 0.371179 0.900923 +vt 0.665512 0.900923 +vt 0.589593 0.872960 +vt 0.579928 0.818991 +vt 0.720909 0.823249 +vt 0.728444 0.813188 +vt 0.518346 0.900923 +vt 0.403568 0.865893 +vt 0.634882 0.842860 +vt 0.875000 0.895044 +vt 0.622404 0.844210 +vt 0.554773 0.879378 +vt 0.554773 0.844210 +vt 0.579328 0.848935 +vt 0.460045 0.910962 +vt 0.460045 0.848935 +vt 0.594184 0.857324 +vt 0.479639 0.916888 +vt 0.479639 0.857324 +vt 0.316829 0.865671 +vt 0.232387 0.909581 +vt 0.232387 0.865671 +vt 0.755432 0.845134 +vt 0.631372 0.909645 +vt 0.631372 0.845134 +vt 0.875000 0.780375 +vt 0.625000 0.886482 +vt 0.625000 0.780375 +vt 0.527665 0.671526 +vt 0.434557 0.728562 +vt 0.434557 0.671526 +vt 0.478702 0.654816 +vt 0.405181 0.693047 +vt 0.405181 0.654816 +vt 0.578288 0.668871 +vt 0.504989 0.711222 +vt 0.504989 0.668871 +vt 0.369079 0.703598 +vt 0.619079 0.688267 +vt 0.619079 0.703598 +vt 0.545910 0.694020 +vt 0.542943 0.694166 +vt 0.538713 0.651138 +vt 0.875000 0.886482 +vt 0.625000 0.894248 +vt 0.348638 0.674242 +vt 0.598638 0.670022 +vt 0.598638 0.674242 +vt 0.862696 0.694629 +vt 0.612696 0.694960 +vt 0.612696 0.694629 +vt 0.528140 0.639470 +vt 0.528140 0.682157 +vt 0.512942 0.688324 +vt 0.875000 0.765044 +vt 0.625000 0.875456 +vt 0.625000 0.765044 +vt 0.560300 0.670191 +vt 0.450392 0.729897 +vt 0.450392 0.670191 +vt 0.737196 0.697591 +vt 0.487196 0.717178 +vt 0.487196 0.697591 +vt 0.252961 0.688828 +vt 0.502961 0.675471 +vt 0.502961 0.688828 +vt 0.585624 0.678619 +vt 0.528884 0.716829 +vt 0.528884 0.678619 +vt 0.571863 0.680723 +vt 0.321863 0.681349 +vt 0.321863 0.680723 +vt 0.424216 0.682430 +vt 0.174216 0.683030 +vt 0.174216 0.682430 +vt 0.324323 0.676884 +vt 0.574323 0.676770 +vt 0.574323 0.676884 +vt 0.216049 0.682677 +vt 0.466049 0.663982 +vt 0.466049 0.682677 +vt 0.216049 0.652466 +vt 0.466049 0.652320 +vt 0.466049 0.652466 +vt 0.601392 0.694569 +vt 0.351392 0.694684 +vt 0.351392 0.694569 +vt 0.485420 0.656087 +vt 0.486296 0.699330 +vt 0.485205 0.699287 +vt 0.181598 0.675854 +vt 0.431598 0.674999 +vt 0.431598 0.675854 +vt 0.456422 0.681871 +vt 0.456979 0.681849 +vt 0.456531 0.703932 +vt 0.410451 0.676654 +vt 0.660451 0.676023 +vt 0.660451 0.676654 +vt 0.532490 0.669456 +vt 0.282490 0.715181 +vt 0.282490 0.669456 +vt 0.375000 0.844421 +vt 0.125000 0.852193 +vt 0.125000 0.844421 +vt 0.626000 0.660251 +vt 0.376000 0.701615 +vt 0.376000 0.660251 +vt 0.593750 0.793481 +vt 0.218750 0.793481 +vt 0.819522 0.793481 +vt 0.604291 0.804188 +vt 0.510661 0.804188 +vt 0.614339 0.751259 +vt 0.375000 0.765044 +vt 0.291667 0.895044 +vt 0.291667 0.765044 +vt 0.625695 0.758273 +vt 0.378906 0.801606 +vt 0.378906 0.758273 +vt 0.664062 0.761468 +vt 0.580729 0.765166 +vt 0.580729 0.761468 +vt 0.625000 0.767416 +vt 0.708333 0.765044 +vt 0.708333 0.767416 +vt 0.677121 0.760761 +vt 0.684017 0.765248 +vt 0.684017 0.797089 +vt 0.677083 0.809854 +vt 0.593750 0.821919 +vt 0.593750 0.809854 +vt 0.630208 0.781780 +vt 0.546875 0.785479 +vt 0.546875 0.781780 +vt 0.109638 0.753166 +vt 0.809234 0.800535 +vt 0.629601 0.752856 +vt 0.382812 0.796190 +vt 0.382812 0.752856 +vt 0.375000 0.635044 +vt 0.375000 0.678377 +vt 0.000000 0.505044 +vt 0.263889 0.765044 +vt 0.263889 0.895044 +vt 0.573022 0.757181 +vt 0.705624 0.783892 +vt 0.573022 0.783892 +vt 0.226495 0.821409 +vt 0.627179 0.805925 +vt 0.648505 0.794114 +vt 0.280702 0.812445 +vt 0.496130 0.766499 +vt 0.444553 0.738474 +vt 0.421875 0.760981 +vt 0.355469 0.819888 +vt 0.581240 0.819888 +vt 0.320312 0.775200 +vt 0.341584 0.755253 +vt 0.894527 0.754523 +vt 0.502440 0.838252 +vt 0.335149 0.925244 +vt 0.335149 0.838252 +vt 0.556540 0.854906 +vt 0.463146 0.903471 +vt 0.463146 0.854906 +vt 0.245835 0.915308 +vt 0.224012 0.839396 +vt 0.224012 0.915923 +vt 0.665512 0.915923 +vt 0.643647 0.915691 +vt 0.597620 0.901828 +vt 0.125000 0.765044 +vt 0.228633 0.780745 +vt 0.574804 0.873659 +vt 0.285018 0.848638 +vt 0.759668 0.871099 +vt 0.578887 0.824122 +vt 0.377872 0.915356 +vt 0.518346 0.915923 +vt 0.371179 0.915923 +vt 0.377872 0.900356 +vt 0.389892 0.832881 +vt 0.511639 0.915711 +vt 0.389892 0.847881 +vt 0.491200 0.874173 +vt 0.497503 0.902923 +vt 0.406788 0.779458 +vt 0.643647 0.900691 +vt 0.245835 0.900308 +vt 0.150429 0.671343 +vt 0.221470 0.868452 +vt 0.251000 0.856936 +vt 0.361735 0.900442 +vt 0.511639 0.900711 +vt 0.236235 0.851817 +vt 0.164872 0.847978 +vt 0.209167 0.860775 +vt 0.150429 0.686343 +vt 0.605366 0.625582 +vt 0.392556 0.635044 +vt 0.410506 0.621173 +vt 0.389781 0.625623 +vt 0.375000 0.618794 +vt 0.390712 0.598254 +vt 0.388734 0.524179 +vt 0.375000 0.505044 +vt 0.382120 0.629248 +vt 0.556923 0.509307 +vt 0.597602 0.514746 +vt 0.507545 0.505044 +vt 0.545076 0.505044 +vt 0.484510 0.505044 +vt 0.391870 0.838038 +vt 0.389721 0.863715 +vt 0.343364 0.852237 +vt 0.603447 0.775430 +vt 0.594972 0.884555 +vt 0.392556 0.765044 +vt 0.375000 0.781294 +vt 0.382120 0.770840 +vt 0.390113 0.874091 +vt 0.392214 0.803595 +vt 0.558295 0.890122 +vt 0.545076 0.895044 +vt 0.498333 0.872319 +vt 0.507545 0.895044 +vt 0.484510 0.895044 +vt 0.548567 0.877213 +vt 0.375000 0.895044 +vt 0.512111 0.852142 +vt 0.478620 0.866125 +vt 0.467060 0.863579 +vt 0.464672 0.866316 +vt 0.333129 0.917808 +vt 0.243618 0.881248 +vt 0.333129 0.868394 +vt 0.342454 0.866584 +vt 0.539872 0.679250 +vt 0.516493 0.680206 +vt 0.516493 0.679250 +vt 0.718065 0.674451 +vt 0.298249 0.674451 +vt 0.167739 0.674451 +vt 0.563252 0.659791 +vt 0.539872 0.659791 +vt 0.563252 0.654936 +vt 0.539872 0.654936 +vt 0.666833 0.705488 +vt 0.666833 0.669427 +vt 0.666833 0.663889 +vt 0.539872 0.680206 +vt 0.440044 0.779617 +vt 0.437493 0.837443 +vt 0.422729 0.709719 +vt 0.360235 0.647539 +vt 0.425280 0.651893 +vt 0.545228 0.642180 +vt 0.610235 0.705405 +vt 0.547899 0.699410 +vt 0.489409 0.751566 +vt 0.570046 0.808982 +vt 0.488685 0.809183 +vt 0.481303 0.837335 +vt 0.559993 0.779904 +vt 0.482026 0.779717 +vt 0.562664 0.837133 +vt 0.432662 0.733550 +vt 0.473921 0.791269 +vt 0.430111 0.791377 +vt 0.415872 0.665231 +vt 0.459833 0.835451 +vt 0.459833 0.901337 +vt 0.564336 0.884437 +vt 0.523185 0.845982 +vt 0.563252 0.667093 +vt 0.610235 0.657539 +vt 0.545228 0.662180 +vt 0.610235 0.647320 +vt 0.467262 0.661993 +vt 0.425280 0.661893 +vt 0.360235 0.647320 +vt 0.360235 0.657539 +vt 0.408389 0.659326 +vt 0.539872 0.691408 +vt 0.578829 0.868908 +vt 0.622404 0.879378 +vt 0.579328 0.910962 +vt 0.594184 0.916888 +vt 0.316829 0.909581 +vt 0.755432 0.909645 +vt 0.527665 0.728562 +vt 0.478702 0.693047 +vt 0.578288 0.711222 +vt 0.369079 0.688267 +vt 0.468469 0.694166 +vt 0.468469 0.651138 +vt 0.551217 0.656212 +vt 0.551217 0.691333 +vt 0.546274 0.693903 +vt 0.875000 0.894248 +vt 0.348638 0.670022 +vt 0.862696 0.694960 +vt 0.427566 0.688324 +vt 0.427566 0.636026 +vt 0.518084 0.636026 +vt 0.521690 0.636204 +vt 0.522133 0.636346 +vt 0.875000 0.875456 +vt 0.560300 0.729897 +vt 0.737196 0.717178 +vt 0.252961 0.675471 +vt 0.585624 0.716829 +vt 0.571863 0.681349 +vt 0.424216 0.683030 +vt 0.324323 0.676770 +vt 0.216049 0.663982 +vt 0.216049 0.652320 +vt 0.601392 0.694684 +vt 0.485158 0.663146 +vt 0.485415 0.656142 +vt 0.485157 0.699244 +vt 0.485525 0.655862 +vt 0.489162 0.650857 +vt 0.578824 0.650857 +vt 0.578824 0.692226 +vt 0.564711 0.699565 +vt 0.485156 0.683510 +vt 0.485156 0.680598 +vt 0.485157 0.699007 +vt 0.485156 0.663466 +vt 0.492385 0.699565 +vt 0.181598 0.674999 +vt 0.456397 0.700163 +vt 0.456397 0.691415 +vt 0.456397 0.682013 +vt 0.456397 0.689928 +vt 0.456529 0.703904 +vt 0.456398 0.700327 +vt 0.456397 0.681893 +vt 0.458443 0.706603 +vt 0.456585 0.704047 +vt 0.504231 0.685476 +vt 0.504231 0.706603 +vt 0.497023 0.681729 +vt 0.460088 0.681729 +vt 0.410451 0.676023 +vt 0.532490 0.715181 +vt 0.375000 0.852193 +vt 0.626000 0.701615 +vt 0.510661 0.750275 +vt 0.613008 0.750275 +vt 0.614339 0.797650 +vt 0.613913 0.799184 +vt 0.625695 0.801606 +vt 0.664062 0.765166 +vt 0.612858 0.797764 +vt 0.612858 0.760761 +vt 0.683725 0.764195 +vt 0.683103 0.797764 +vt 0.677083 0.821919 +vt 0.630208 0.785479 +vt 0.779674 0.760019 +vt 0.781057 0.757208 +vt 0.629601 0.796190 +vt 0.236111 0.765044 +vt 0.705624 0.757181 +vt 0.380237 0.736263 +vt 0.651589 0.807504 +vt 0.272135 0.819888 +vt 0.502440 0.925244 +vt 0.556540 0.903471 +vt 0.285018 0.833638 +vt 0.579240 0.867737 +vt 0.597620 0.886828 +vt 0.491813 0.871153 +vt 0.497503 0.887923 +vt 0.378552 0.866324 +vt 0.341437 0.845898 +vt 0.335206 0.844421 +vt 0.337857 0.839061 +vt 0.391890 0.866446 +vt 0.464894 0.838291 +vt 0.518073 0.839407 +vt 0.514496 0.845523 +vt 0.520786 0.844241 +vt 0.512974 0.866402 +vt 0.587555 0.674451 +vt 0.666833 0.699950 +vt 0.422729 0.699719 +vt 0.360235 0.705405 +vt 0.360235 0.637539 +vt 0.545228 0.652180 +vt 0.610235 0.647539 +vt 0.610235 0.715405 +vt 0.567375 0.751753 +vt 0.474644 0.733651 +vt 0.617682 0.716042 +vt 0.616961 0.710037 +vt 0.617682 0.710037 +vt 0.616961 0.716042 +vt 0.616239 0.710037 +vt 0.616239 0.716042 +vt 0.615517 0.710037 +vt 0.615517 0.716042 +vt 0.614795 0.710037 +vt 0.614795 0.716042 +vt 0.614073 0.710037 +vt 0.614073 0.716042 +vt 0.613352 0.710037 +vt 0.613352 0.716042 +vt 0.612630 0.710037 +vt 0.612630 0.716042 +vt 0.611908 0.710037 +vt 0.611908 0.716042 +vt 0.611186 0.710037 +vt 0.611186 0.716042 +vt 0.610464 0.710037 +vt 0.610464 0.716042 +vt 0.609743 0.710037 +vt 0.609743 0.716042 +vt 0.609021 0.710037 +vt 0.609021 0.716042 +vt 0.608299 0.710037 +vt 0.608299 0.716042 +vt 0.607577 0.710037 +vt 0.607577 0.716042 +vt 0.606855 0.710037 +vt 0.606855 0.716042 +vt 0.606134 0.710037 +vt 0.606134 0.716042 +vt 0.605412 0.710037 +vt 0.605412 0.716042 +vt 0.604690 0.710037 +vt 0.604690 0.716042 +vt 0.603968 0.710037 +vt 0.603968 0.716042 +vt 0.603247 0.710037 +vt 0.603247 0.716042 +vt 0.602525 0.710037 +vt 0.602525 0.716042 +vt 0.601803 0.710037 +vt 0.601803 0.716042 +vt 0.601081 0.710037 +vt 0.601081 0.716042 +vt 0.600359 0.710037 +vt 0.605945 0.708437 +vt 0.606419 0.708136 +vt 0.607856 0.708635 +vt 0.607166 0.709072 +vt 0.608368 0.708137 +vt 0.606989 0.707421 +vt 0.606772 0.707793 +vt 0.607062 0.707034 +vt 0.608683 0.707596 +vt 0.608683 0.706471 +vt 0.608790 0.707034 +vt 0.606989 0.706647 +vt 0.608368 0.705931 +vt 0.606419 0.705932 +vt 0.606772 0.706274 +vt 0.605945 0.705631 +vt 0.607856 0.705432 +vt 0.606326 0.704637 +vt 0.607166 0.704996 +vt 0.605366 0.705384 +vt 0.605368 0.704371 +vt 0.603991 0.705088 +vt 0.604707 0.705201 +vt 0.603247 0.705050 +vt 0.604328 0.704207 +vt 0.602165 0.704207 +vt 0.603247 0.704151 +vt 0.602502 0.705088 +vt 0.601125 0.704371 +vt 0.601127 0.705384 +vt 0.601786 0.705201 +vt 0.600548 0.705631 +vt 0.600167 0.704637 +vt 0.598637 0.705432 +vt 0.599327 0.704996 +vt 0.600074 0.705932 +vt 0.598125 0.705931 +vt 0.599504 0.706647 +vt 0.599721 0.706274 +vt 0.599431 0.707034 +vt 0.597810 0.706471 +vt 0.597810 0.707596 +vt 0.597703 0.707034 +vt 0.599504 0.707421 +vt 0.598125 0.708137 +vt 0.599721 0.707793 +vt 0.598637 0.708635 +vt 0.600074 0.708136 +vt 0.599327 0.709072 +vt 0.602502 0.708980 +vt 0.603247 0.709018 +vt 0.603991 0.708980 +vt 0.600548 0.708437 +vt 0.604707 0.708867 +vt 0.601127 0.708683 +vt 0.605366 0.708683 +vt 0.601786 0.708867 +vt 0.617932 0.708123 +vt 0.618715 0.709072 +vt 0.619404 0.708635 +vt 0.619917 0.708137 +vt 0.618280 0.707784 +vt 0.618495 0.707416 +vt 0.620232 0.707596 +vt 0.620339 0.707034 +vt 0.618568 0.707034 +vt 0.618495 0.706651 +vt 0.620232 0.706471 +vt 0.619917 0.705931 +vt 0.618280 0.706283 +vt 0.619404 0.705432 +vt 0.617932 0.705944 +vt 0.618715 0.704996 +vt 0.617463 0.705647 +vt 0.616891 0.705403 +vt 0.617875 0.704637 +vt 0.616917 0.704371 +vt 0.616239 0.705221 +vt 0.615531 0.705110 +vt 0.615877 0.704207 +vt 0.614795 0.704151 +vt 0.614795 0.705072 +vt 0.614059 0.705110 +vt 0.613714 0.704207 +vt 0.612674 0.704371 +vt 0.613352 0.705221 +vt 0.612699 0.705403 +vt 0.611715 0.704637 +vt 0.610875 0.704996 +vt 0.612128 0.705647 +vt 0.611659 0.705944 +vt 0.610186 0.705432 +vt 0.609674 0.705931 +vt 0.611310 0.706283 +vt 0.611095 0.706651 +vt 0.609358 0.706471 +vt 0.609252 0.707034 +vt 0.611023 0.707034 +vt 0.611095 0.707416 +vt 0.609358 0.707596 +vt 0.609674 0.708137 +vt 0.611310 0.707784 +vt 0.611659 0.708123 +vt 0.610186 0.708635 +vt 0.610875 0.709072 +vt 0.612128 0.708421 +vt 0.618610 0.646303 +vt 0.584515 0.664033 +vt 0.584515 0.646303 +vt 0.618610 0.664033 +vt 0.584515 0.681763 +vt 0.618610 0.681763 +vt 0.584515 0.699492 +vt 0.618610 0.699492 +vt 0.584515 0.717221 +vt 0.550420 0.699492 +vt 0.550420 0.681763 +vt 0.617687 0.710037 +vt 0.617687 0.716042 +vt 0.600355 0.716042 +vt 0.600355 0.710037 +vt 0.603247 0.709074 +vt 0.604027 0.709074 +vt 0.604872 0.709074 +vt 0.607161 0.709074 +vt 0.605868 0.709074 +vt 0.600625 0.709074 +vt 0.599332 0.709074 +vt 0.601621 0.709074 +vt 0.602466 0.709074 +vt 0.615531 0.708958 +vt 0.614795 0.709074 +vt 0.615576 0.709074 +vt 0.616239 0.708846 +vt 0.616420 0.709074 +vt 0.616891 0.708665 +vt 0.617417 0.709074 +vt 0.617463 0.708421 +vt 0.610880 0.709074 +vt 0.613170 0.709074 +vt 0.612699 0.708665 +vt 0.612173 0.709074 +vt 0.614015 0.709074 +vt 0.613352 0.708846 +vt 0.614059 0.708958 +vt 0.628899 0.693320 +vt 0.652705 0.681763 +vt 0.643086 0.693320 +vt 0.643086 0.687935 +vt 0.600359 0.716042 +vt 0.618610 0.717221 +vt 0.614795 0.708996 +vt 0.618710 0.709074 +vt 0.640743 0.693320 +vt 0.652705 0.699492 +vt 0.635992 0.687935 +vt 0.640743 0.687935 +vt 0.638937 0.687935 +vt 0.637406 0.687935 +vt 0.638937 0.693320 +vt 0.635992 0.693320 +vt 0.637406 0.693320 +vt 0.634578 0.687935 +vt 0.633047 0.687935 +vt 0.631242 0.693320 +vt 0.633047 0.693320 +vt 0.634578 0.693320 +vt 0.631242 0.687935 +vt 0.628899 0.687935 +vt 0.543609 0.932938 +vt 0.565766 0.944459 +vt 0.543609 0.944459 +vt 0.543609 0.955981 +vt 0.565766 0.955981 +vt 0.543609 0.967503 +vt 0.565766 0.967503 +vt 0.543609 0.979025 +vt 0.521451 0.967503 +vt 0.521451 0.955981 +vt 0.587924 0.955981 +vt 0.558011 0.932938 +vt 0.558011 0.944459 +vt 0.558011 0.955981 +vt 0.558011 0.967503 +vt 0.542329 0.614065 +vt 0.534574 0.625587 +vt 0.534574 0.614065 +vt 0.565766 0.932938 +vt 0.565766 0.979025 +vt 0.587924 0.967503 +vt 0.542329 0.625587 +vt 0.558011 0.979025 +s 1 +f 1/1/1 2/2/2 3/3/3 +f 1/4/4 4/5/5 2/2/6 +f 5/1/2 6/2/2 7/3/2 +f 6/2/7 8/6/7 7/3/7 +f 8/6/8 9/5/8 10/7/8 +f 7/3/6 10/8/6 5/9/6 +f 5/4/9 6/2/9 9/5/9 +f 10/6/10 11/10/11 12/7/12 +f 3/4/13 9/5/13 6/2/13 +f 2/2/14 11/6/14 3/3/14 +f 12/7/15 11/6/15 4/5/15 +f 13/11/16 12/8/16 1/9/16 +f 6/2/17 1/12/1 3/1/3 +f 10/6/18 12/8/19 13/13/20 +f 12/14/21 13/15/22 11/16/23 +f 14/1/2 15/2/2 16/3/2 +f 15/2/24 17/6/24 16/3/24 +f 17/6/8 18/5/8 19/7/8 +f 14/9/25 17/6/25 19/8/25 +f 14/4/26 18/5/26 15/2/26 +f 20/1/2 21/2/2 22/3/2 +f 21/2/27 23/6/27 22/3/27 +f 23/6/8 24/5/8 25/7/8 +f 22/3/26 25/8/26 20/9/26 +f 20/4/9 24/5/9 21/2/9 +f 26/1/1 27/2/2 28/3/3 +f 26/4/4 29/5/5 27/2/6 +f 30/1/2 31/2/2 32/3/2 +f 31/2/7 33/6/7 32/3/7 +f 33/6/8 34/5/8 35/7/8 +f 32/3/6 35/8/6 30/9/6 +f 30/4/9 31/2/9 34/5/9 +f 35/6/10 36/10/11 37/7/12 +f 28/4/13 34/5/13 31/2/13 +f 27/2/14 36/6/14 28/3/14 +f 37/7/15 36/6/15 29/5/15 +f 38/11/16 37/8/16 26/9/16 +f 31/2/17 26/12/1 28/1/3 +f 35/6/18 37/8/28 38/13/29 +f 37/14/30 38/15/31 36/16/32 +f 39/1/1 40/2/2 41/3/3 +f 39/4/4 42/5/5 40/2/6 +f 43/1/2 44/2/2 45/3/2 +f 44/2/7 46/6/7 45/3/7 +f 46/6/8 47/5/8 48/7/8 +f 45/3/6 48/8/6 43/9/6 +f 43/4/9 44/2/9 47/5/9 +f 48/6/10 49/10/11 50/7/12 +f 41/4/13 47/5/13 44/2/13 +f 40/2/14 49/6/14 41/3/14 +f 50/7/15 49/6/15 42/5/15 +f 51/11/16 50/8/16 39/9/16 +f 44/2/17 39/12/1 41/1/3 +f 48/6/33 50/8/34 51/13/29 +f 50/14/30 51/15/31 49/16/32 +f 52/1/1 53/2/2 54/3/3 +f 52/4/4 55/5/5 53/2/6 +f 56/1/2 57/2/2 58/3/2 +f 57/2/7 59/6/7 58/3/7 +f 59/6/8 60/5/8 61/7/8 +f 58/3/6 61/8/6 56/9/6 +f 56/4/9 57/2/9 60/5/9 +f 61/6/10 62/10/11 63/7/12 +f 54/4/13 60/5/13 57/2/13 +f 53/2/14 62/6/14 54/3/14 +f 63/7/15 62/6/15 55/5/15 +f 64/11/16 63/8/16 52/9/16 +f 57/2/17 52/12/1 54/1/3 +f 61/6/18 63/8/28 64/13/29 +f 63/14/35 64/15/36 62/16/37 +f 65/1/1 66/2/2 67/3/3 +f 65/4/4 68/5/5 66/2/6 +f 69/1/2 70/2/2 71/3/2 +f 70/2/7 72/6/7 71/3/7 +f 72/6/8 73/5/8 74/7/8 +f 71/3/6 74/8/6 69/9/6 +f 69/4/9 70/2/9 73/5/9 +f 74/6/10 75/10/11 76/7/12 +f 67/4/13 73/5/13 70/2/13 +f 66/2/14 75/6/14 67/3/14 +f 76/7/15 75/6/15 68/5/15 +f 77/11/16 76/8/16 65/9/16 +f 70/2/17 65/12/1 67/1/3 +f 74/6/18 76/8/28 77/13/29 +f 76/14/35 77/15/36 75/16/37 +f 78/1/1 79/2/2 80/3/3 +f 78/4/4 81/5/5 79/2/6 +f 82/1/2 83/2/2 84/3/2 +f 83/2/7 85/6/7 84/3/7 +f 85/6/8 86/5/8 87/7/8 +f 84/3/6 87/8/6 82/9/6 +f 82/4/9 83/2/9 86/5/9 +f 87/6/10 88/10/11 89/7/12 +f 80/4/13 86/5/13 83/2/13 +f 79/2/14 88/6/14 80/3/14 +f 89/7/15 88/6/15 81/5/15 +f 90/11/38 89/8/38 78/9/38 +f 83/2/17 78/12/1 80/1/3 +f 87/6/18 89/8/19 90/13/20 +f 89/14/39 90/15/39 88/16/39 +f 91/1/1 92/2/2 93/3/3 +f 91/4/4 94/5/5 92/2/6 +f 95/1/2 96/2/2 97/3/2 +f 96/2/7 98/6/7 97/3/7 +f 98/6/8 99/5/8 100/7/8 +f 97/3/6 100/8/6 95/9/6 +f 95/4/9 96/2/9 99/5/9 +f 100/6/10 101/10/11 102/7/12 +f 93/4/13 99/5/13 96/2/13 +f 92/2/14 101/6/14 93/3/14 +f 102/7/15 101/6/15 94/5/15 +f 103/11/16 102/8/16 91/9/16 +f 96/2/17 91/12/1 93/1/3 +f 100/6/18 102/8/28 103/13/29 +f 102/14/40 103/15/41 101/16/42 +f 104/1/1 105/2/2 106/3/3 +f 104/4/4 107/5/5 105/2/6 +f 108/1/2 109/2/2 110/3/2 +f 109/2/7 111/6/7 110/3/7 +f 111/6/8 112/5/8 113/7/8 +f 110/3/6 113/8/6 108/9/6 +f 108/4/9 109/2/9 112/5/9 +f 113/6/10 114/10/11 115/7/12 +f 106/4/13 112/5/13 109/2/13 +f 105/2/14 114/6/14 106/3/14 +f 115/7/15 114/6/15 107/5/15 +f 116/11/16 115/8/16 104/9/16 +f 109/2/17 104/12/1 106/1/3 +f 113/6/33 115/8/28 116/13/29 +f 115/14/35 116/15/35 114/16/35 +f 117/1/1 118/2/2 119/3/3 +f 117/4/4 120/5/5 118/2/6 +f 121/1/2 122/2/2 123/3/2 +f 122/2/7 124/6/7 123/3/7 +f 124/6/8 125/5/8 126/7/8 +f 123/3/6 126/8/6 121/9/6 +f 121/4/9 122/2/9 125/5/9 +f 126/6/10 127/10/11 128/7/12 +f 119/4/13 125/5/13 122/2/13 +f 118/2/14 127/6/14 119/3/14 +f 128/7/15 127/6/15 120/5/15 +f 129/11/16 128/8/16 117/9/16 +f 122/2/17 117/12/1 119/1/3 +f 126/6/18 128/8/19 129/13/43 +f 128/14/44 127/16/44 129/15/44 +f 130/1/1 131/2/2 132/3/3 +f 130/4/4 133/5/5 131/2/6 +f 134/1/2 135/2/2 136/3/2 +f 135/2/7 137/6/7 136/3/7 +f 137/6/8 138/5/8 139/7/8 +f 136/3/6 139/8/6 134/9/6 +f 134/4/9 135/2/9 138/5/9 +f 139/6/10 140/10/11 141/7/12 +f 132/4/13 138/5/13 135/2/13 +f 131/2/14 140/6/14 132/3/14 +f 141/7/15 140/6/15 133/5/15 +f 142/11/38 141/8/38 130/9/38 +f 135/2/17 130/12/1 132/1/3 +f 139/6/18 141/8/45 142/13/20 +f 141/14/46 140/16/46 142/15/46 +f 143/1/1 144/2/2 145/3/3 +f 143/4/4 146/5/5 144/2/6 +f 147/1/2 148/2/2 149/3/2 +f 148/2/7 150/6/7 149/3/7 +f 150/6/8 151/5/8 152/7/8 +f 149/3/6 152/8/6 147/9/6 +f 147/4/9 148/2/9 151/5/9 +f 152/6/10 153/10/11 154/7/12 +f 145/4/13 151/5/13 148/2/13 +f 144/2/14 153/6/14 145/3/14 +f 154/7/15 153/6/15 146/5/15 +f 155/11/16 154/8/16 143/9/16 +f 148/2/17 143/12/1 145/1/3 +f 152/6/18 154/8/47 155/13/48 +f 154/14/49 153/16/49 155/15/49 +f 156/1/1 157/2/2 158/3/3 +f 156/4/4 159/5/5 157/2/6 +f 160/1/2 161/2/2 162/3/2 +f 161/2/7 163/6/7 162/3/7 +f 163/6/8 164/5/8 165/7/8 +f 162/3/6 165/8/6 160/9/6 +f 160/4/9 161/2/9 164/5/9 +f 165/6/10 166/10/11 167/7/12 +f 158/4/13 164/5/13 161/2/13 +f 157/2/14 166/6/14 158/3/14 +f 167/7/15 166/6/15 159/5/15 +f 168/11/50 167/8/50 156/9/50 +f 161/2/17 156/12/1 158/1/3 +f 165/6/33 167/8/19 168/13/29 +f 167/14/44 166/16/44 168/15/44 +f 1/4/4 12/17/51 4/5/5 +f 6/2/7 9/5/7 8/6/7 +f 7/3/6 8/6/6 10/8/6 +f 5/4/9 9/5/9 10/17/9 +f 10/6/10 9/5/52 11/10/11 +f 3/4/13 11/17/13 9/5/13 +f 2/2/14 4/5/14 11/6/14 +f 6/2/17 5/3/17 1/12/1 +f 13/13/20 1/9/53 10/6/18 +f 1/9/53 5/3/53 10/6/54 +f 15/2/24 18/5/24 17/6/24 +f 14/9/25 16/3/25 17/6/25 +f 14/4/26 19/17/26 18/5/26 +f 21/2/27 24/5/27 23/6/27 +f 22/3/26 23/6/26 25/8/26 +f 20/4/9 25/17/9 24/5/9 +f 26/4/4 37/17/51 29/5/5 +f 31/2/7 34/5/7 33/6/7 +f 32/3/6 33/6/6 35/8/6 +f 30/4/9 34/5/9 35/17/9 +f 35/6/10 34/5/52 36/10/11 +f 28/4/13 36/17/13 34/5/13 +f 27/2/14 29/5/14 36/6/14 +f 31/2/17 30/3/17 26/12/1 +f 38/13/29 26/9/53 35/6/18 +f 26/9/53 30/3/53 35/6/54 +f 39/4/4 50/17/51 42/5/5 +f 44/2/7 47/5/7 46/6/7 +f 45/3/6 46/6/6 48/8/6 +f 43/4/9 47/5/9 48/17/9 +f 48/6/10 47/5/52 49/10/11 +f 41/4/13 49/17/13 47/5/13 +f 40/2/14 42/5/14 49/6/14 +f 44/2/17 43/3/17 39/12/1 +f 51/13/29 39/9/53 48/6/33 +f 39/9/53 43/3/53 48/6/54 +f 52/4/4 63/17/51 55/5/5 +f 57/2/7 60/5/7 59/6/7 +f 58/3/6 59/6/6 61/8/6 +f 56/4/9 60/5/9 61/17/9 +f 61/6/10 60/5/52 62/10/11 +f 54/4/13 62/17/13 60/5/13 +f 53/2/14 55/5/14 62/6/14 +f 57/2/17 56/3/17 52/12/1 +f 64/13/29 52/9/53 61/6/18 +f 52/9/53 56/3/53 61/6/54 +f 65/4/4 76/17/51 68/5/5 +f 70/2/7 73/5/7 72/6/7 +f 71/3/6 72/6/6 74/8/6 +f 69/4/9 73/5/9 74/17/9 +f 74/6/10 73/5/52 75/10/11 +f 67/4/13 75/17/13 73/5/13 +f 66/2/14 68/5/14 75/6/14 +f 70/2/17 69/3/17 65/12/1 +f 77/13/29 65/9/53 74/6/18 +f 65/9/53 69/3/53 74/6/55 +f 78/4/4 89/17/51 81/5/5 +f 83/2/7 86/5/7 85/6/7 +f 84/3/6 85/6/6 87/8/6 +f 82/4/9 86/5/9 87/17/9 +f 87/6/10 86/5/52 88/10/11 +f 80/4/13 88/17/13 86/5/13 +f 79/2/14 81/5/14 88/6/14 +f 83/2/17 82/3/17 78/12/1 +f 90/13/20 78/9/53 87/6/18 +f 78/9/53 82/3/53 87/6/54 +f 91/4/4 102/17/51 94/5/5 +f 96/2/7 99/5/7 98/6/7 +f 97/3/6 98/6/6 100/8/6 +f 95/4/9 99/5/9 100/17/9 +f 100/6/10 99/5/52 101/10/11 +f 93/4/13 101/17/13 99/5/13 +f 92/2/14 94/5/14 101/6/14 +f 96/2/17 95/3/17 91/12/1 +f 103/13/29 91/9/53 100/6/18 +f 91/9/53 95/3/53 100/6/54 +f 104/4/4 115/17/51 107/5/5 +f 109/2/7 112/5/7 111/6/7 +f 110/3/6 111/6/6 113/8/6 +f 108/4/9 112/5/9 113/17/9 +f 113/6/10 112/5/52 114/10/11 +f 106/4/13 114/17/13 112/5/13 +f 105/2/14 107/5/14 114/6/14 +f 109/2/17 108/3/17 104/12/1 +f 116/13/29 104/9/53 113/6/33 +f 104/9/53 108/3/53 113/6/54 +f 117/4/4 128/17/51 120/5/5 +f 122/2/7 125/5/7 124/6/7 +f 123/3/6 124/6/6 126/8/6 +f 121/4/9 125/5/9 126/17/9 +f 126/6/10 125/5/52 127/10/11 +f 119/4/13 127/17/13 125/5/13 +f 118/2/14 120/5/14 127/6/14 +f 122/2/17 121/3/17 117/12/1 +f 129/13/43 117/9/53 126/6/18 +f 117/9/53 121/3/53 126/6/54 +f 130/4/4 141/17/51 133/5/5 +f 135/2/7 138/5/7 137/6/7 +f 136/3/6 137/6/6 139/8/6 +f 134/4/9 138/5/9 139/17/9 +f 139/6/10 138/5/52 140/10/11 +f 132/4/13 140/17/13 138/5/13 +f 131/2/14 133/5/14 140/6/14 +f 135/2/17 134/3/17 130/12/1 +f 142/13/20 130/9/53 139/6/18 +f 130/9/53 134/3/53 139/6/55 +f 143/4/4 154/17/51 146/5/5 +f 148/2/7 151/5/7 150/6/7 +f 149/3/6 150/6/6 152/8/6 +f 147/4/9 151/5/9 152/17/9 +f 152/6/10 151/5/52 153/10/11 +f 145/4/13 153/17/13 151/5/13 +f 144/2/14 146/5/14 153/6/14 +f 148/2/17 147/3/17 143/12/1 +f 155/13/48 143/9/53 152/6/18 +f 143/9/53 147/3/53 152/6/54 +f 156/4/4 167/17/51 159/5/5 +f 161/2/7 164/5/7 163/6/7 +f 162/3/6 163/6/6 165/8/6 +f 160/4/9 164/5/9 165/17/9 +f 165/6/10 164/5/52 166/10/11 +f 158/4/13 166/17/13 164/5/13 +f 157/2/14 159/5/14 166/6/14 +f 161/2/17 160/3/17 156/12/1 +f 168/13/29 156/9/53 165/6/33 +f 156/9/53 160/3/53 165/6/54 +f 169/18/2 170/19/2 171/20/2 +f 172/21/56 171/22/56 173/23/56 +f 174/24/57 175/25/57 171/22/57 +f 176/26/58 177/27/58 175/25/58 +f 178/28/59 179/29/59 177/27/59 +f 180/30/60 181/31/60 179/29/60 +f 182/32/61 183/33/61 181/31/61 +f 184/34/62 185/35/62 183/33/62 +f 186/36/63 187/37/63 185/35/63 +f 188/38/64 169/39/64 187/37/64 +f 189/40/65 170/41/65 169/39/65 +f 170/19/26 172/42/26 173/43/26 +f 178/44/8 176/45/8 186/46/8 +f 170/19/2 173/43/2 171/20/2 +f 171/20/2 175/47/2 187/48/2 +f 175/47/2 177/49/2 185/50/2 +f 177/49/2 179/51/2 185/50/2 +f 179/51/2 181/52/2 183/53/2 +f 185/50/2 179/51/2 183/53/2 +f 185/50/2 187/48/2 175/47/2 +f 187/48/2 169/18/2 171/20/2 +f 172/21/56 174/24/56 171/22/56 +f 174/24/57 176/26/57 175/25/57 +f 176/26/58 178/28/58 177/27/58 +f 178/28/59 180/30/59 179/29/59 +f 180/30/60 182/32/60 181/31/60 +f 182/32/61 184/34/61 183/33/61 +f 184/34/62 186/36/62 185/35/62 +f 186/36/63 188/38/63 187/37/63 +f 188/38/64 189/40/64 169/39/64 +f 189/40/65 190/54/65 170/41/65 +f 170/19/26 190/55/26 172/42/26 +f 176/45/8 174/56/8 189/57/8 +f 174/56/8 172/42/8 189/57/8 +f 172/42/8 190/55/8 189/57/8 +f 189/57/8 188/58/8 176/45/8 +f 188/58/8 186/46/8 176/45/8 +f 186/46/8 184/59/8 178/44/8 +f 184/59/8 182/60/8 180/61/8 +f 178/44/8 184/59/8 180/61/8 +f 191/62/66 192/63/66 193/64/66 +f 194/65/67 195/66/67 192/63/67 +f 196/67/68 197/68/68 195/66/68 +f 198/69/69 199/70/70 197/68/70 +f 200/71/71 201/72/71 199/70/71 +f 202/73/72 203/74/72 201/72/72 +f 204/75/73 205/76/73 203/74/73 +f 206/77/74 207/78/74 205/76/74 +f 208/79/75 209/80/75 207/78/75 +f 210/81/76 211/82/76 209/80/76 +f 212/83/77 213/84/77 211/82/77 +f 214/85/78 215/86/78 213/84/78 +f 216/87/79 217/88/79 215/86/79 +f 218/89/80 219/90/80 217/88/80 +f 220/91/81 221/92/81 219/90/81 +f 222/93/82 223/94/82 221/92/82 +f 224/95/83 225/96/83 223/94/83 +f 226/97/84 227/98/84 225/96/84 +f 228/99/85 229/100/85 227/98/85 +f 230/101/86 231/102/86 229/100/86 +f 232/103/87 233/104/87 231/102/87 +f 234/105/88 235/106/88 233/104/88 +f 212/107/8 204/108/8 196/109/8 +f 236/110/89 237/111/89 235/106/89 +f 238/112/90 193/113/90 237/111/90 +f 239/114/80 240/115/80 241/115/80 +f 242/116/67 243/117/67 244/118/67 +f 245/119/71 246/120/71 243/117/71 +f 247/121/74 248/122/74 246/120/74 +f 249/123/77 250/124/77 248/122/77 +f 251/125/80 252/126/80 250/124/80 +f 253/127/83 254/128/83 252/126/83 +f 247/108/8 242/129/8 255/130/8 +f 255/131/86 256/132/86 254/128/86 +f 257/133/89 244/134/89 256/132/89 +f 248/135/2 252/136/2 256/137/2 +f 250/129/91 258/138/91 248/139/91 +f 248/139/92 259/140/92 246/108/92 +f 246/108/93 260/141/93 243/142/93 +f 260/141/94 244/143/94 243/142/94 +f 261/144/95 256/145/95 244/143/95 +f 262/146/96 254/130/96 256/145/96 +f 263/147/97 252/148/97 254/130/97 +f 264/149/98 250/129/98 252/148/98 +f 265/123/86 259/150/86 258/151/86 +f 266/125/89 258/151/89 267/152/89 +f 268/153/77 262/154/77 261/155/77 +f 269/119/80 261/156/80 260/157/80 +f 270/121/83 260/157/83 259/150/83 +f 271/127/67 267/152/67 264/158/67 +f 272/116/66 273/159/66 274/118/66 +f 275/160/67 276/161/67 273/159/67 +f 277/162/68 278/117/68 276/161/68 +f 279/119/69 280/163/69 278/117/69 +f 281/164/71 282/165/71 280/163/71 +f 283/166/72 284/120/72 282/165/72 +f 285/121/73 286/167/73 284/120/73 +f 287/168/74 288/169/74 286/167/74 +f 289/170/75 290/122/75 288/169/75 +f 291/123/76 292/171/76 290/122/76 +f 293/172/77 294/173/77 292/171/77 +f 295/174/78 296/124/78 294/173/78 +f 297/125/79 298/175/79 296/124/79 +f 299/176/80 300/177/80 298/175/80 +f 301/178/81 302/126/81 300/177/81 +f 303/127/82 304/179/82 302/126/82 +f 305/180/83 306/181/83 304/179/83 +f 307/182/84 308/128/84 306/181/84 +f 309/131/85 310/183/85 308/128/85 +f 311/184/86 312/185/86 310/183/86 +f 313/186/87 314/132/87 312/185/87 +f 315/133/88 316/187/88 314/132/88 +f 309/130/8 293/107/8 277/109/8 +f 317/188/89 318/189/89 316/187/89 +f 319/190/90 274/134/90 318/189/90 +f 310/191/2 318/192/2 286/193/2 +f 320/62/66 321/63/66 322/64/66 +f 323/65/67 324/66/67 321/63/67 +f 325/67/68 326/68/68 324/66/68 +f 327/69/70 328/70/70 326/68/70 +f 329/71/71 330/72/71 328/70/71 +f 331/73/72 332/74/72 330/72/72 +f 333/75/73 334/76/73 332/74/73 +f 335/77/74 336/78/74 334/76/74 +f 337/79/75 338/80/75 336/78/75 +f 339/81/76 340/82/76 338/80/76 +f 341/83/77 342/84/77 340/82/77 +f 343/85/78 344/86/78 342/84/78 +f 345/87/79 346/88/79 344/86/79 +f 347/89/80 348/90/80 346/88/80 +f 349/91/81 350/92/81 348/90/99 +f 351/93/82 352/94/100 350/92/100 +f 353/95/83 354/96/83 352/94/83 +f 355/97/84 356/98/84 354/96/84 +f 357/99/85 358/100/85 356/98/85 +f 359/101/86 360/102/86 358/100/86 +f 361/103/87 362/104/87 360/102/87 +f 363/105/88 364/106/88 362/104/88 +f 341/107/8 333/108/8 325/109/8 +f 365/110/89 366/111/89 364/106/89 +f 367/112/90 322/113/90 366/111/90 +f 350/136/2 358/191/2 366/192/2 +f 368/116/66 369/159/66 370/118/66 +f 371/160/67 372/161/67 369/159/67 +f 373/162/68 374/117/68 372/161/68 +f 375/119/70 376/163/70 374/117/70 +f 377/164/71 378/165/71 376/163/71 +f 379/166/72 380/120/72 378/165/72 +f 381/121/73 382/167/73 380/120/73 +f 383/168/74 384/169/74 382/167/74 +f 385/170/75 386/122/75 384/169/75 +f 387/123/76 388/171/76 386/122/76 +f 389/172/77 390/173/77 388/171/77 +f 391/174/78 392/124/78 390/173/78 +f 393/125/79 394/175/79 392/124/79 +f 395/176/80 396/177/80 394/175/80 +f 397/178/81 398/126/81 396/177/81 +f 399/127/82 400/179/82 398/126/100 +f 401/180/83 402/181/83 400/179/83 +f 403/182/84 404/128/84 402/181/84 +f 405/131/85 406/183/85 404/128/85 +f 407/184/86 408/185/86 406/183/86 +f 409/186/87 410/132/87 408/185/87 +f 411/133/88 412/187/88 410/132/88 +f 389/107/8 381/108/8 373/109/8 +f 413/188/89 414/189/89 412/187/89 +f 415/190/90 370/134/90 414/189/90 +f 398/136/2 406/191/2 414/192/2 +f 416/116/66 417/159/66 418/118/66 +f 419/160/67 420/161/67 417/159/67 +f 421/162/68 422/117/68 420/161/68 +f 423/119/70 424/163/70 422/117/69 +f 425/164/71 426/165/71 424/163/71 +f 427/166/72 428/120/72 426/165/72 +f 429/121/73 430/167/73 428/120/73 +f 431/168/74 432/169/74 430/167/74 +f 433/170/75 434/122/75 432/169/75 +f 435/123/76 436/171/76 434/122/76 +f 437/172/77 438/173/77 436/171/77 +f 439/174/78 440/124/78 438/173/78 +f 441/125/79 442/175/79 440/124/79 +f 443/176/80 444/177/80 442/175/80 +f 445/178/81 446/126/81 444/177/81 +f 447/127/100 448/179/100 446/126/82 +f 449/180/83 450/181/83 448/179/83 +f 451/182/84 452/128/84 450/181/84 +f 453/131/85 454/183/85 452/128/85 +f 455/184/86 456/185/86 454/183/86 +f 457/186/87 458/132/87 456/185/87 +f 459/133/88 460/187/88 458/132/88 +f 437/107/8 429/108/8 421/109/8 +f 461/188/89 462/189/89 460/187/89 +f 463/190/90 418/134/90 462/189/90 +f 446/136/2 454/191/2 462/192/2 +f 464/62/66 465/63/66 466/64/66 +f 467/65/67 468/66/67 465/63/67 +f 469/67/101 470/68/68 468/66/68 +f 471/69/70 472/70/70 470/68/70 +f 473/71/71 474/72/71 472/70/71 +f 475/73/72 476/74/72 474/72/72 +f 477/75/73 478/76/73 476/74/73 +f 479/77/74 480/78/74 478/76/74 +f 481/79/75 482/80/75 480/78/75 +f 483/81/102 484/82/76 482/80/76 +f 485/83/77 486/84/77 484/82/77 +f 487/85/78 488/86/78 486/84/78 +f 489/87/79 490/88/79 488/86/79 +f 491/89/80 492/90/80 490/88/80 +f 493/91/81 494/92/81 492/90/81 +f 495/93/82 496/94/100 494/92/100 +f 497/95/83 498/96/83 496/94/83 +f 499/97/84 500/98/84 498/96/84 +f 501/99/85 502/100/85 500/98/85 +f 503/101/86 504/102/86 502/100/86 +f 505/103/87 506/104/87 504/102/87 +f 507/105/88 508/106/88 506/104/88 +f 485/107/8 477/108/8 469/109/8 +f 509/110/89 510/111/89 508/106/89 +f 511/112/90 466/113/90 510/111/90 +f 494/136/2 502/191/2 510/192/2 +f 512/194/2 192/195/2 241/115/2 +f 241/115/2 195/196/2 239/114/2 +f 239/114/2 197/197/2 513/198/2 +f 513/198/2 199/199/2 514/200/2 +f 514/200/2 201/201/2 515/202/2 +f 515/202/2 203/203/2 516/204/2 +f 517/205/2 203/203/2 205/193/2 +f 518/206/2 205/193/2 207/207/2 +f 519/208/2 207/207/2 209/135/2 +f 520/209/2 209/135/2 211/210/2 +f 521/211/2 211/210/2 213/212/2 +f 522/213/2 213/212/2 215/214/2 +f 522/213/2 217/215/2 523/216/2 +f 523/216/2 219/217/2 524/218/2 +f 524/218/2 221/136/2 525/219/2 +f 525/219/2 223/220/2 526/221/2 +f 526/221/2 225/222/2 527/223/2 +f 527/223/2 227/224/2 528/225/2 +f 529/226/2 227/224/2 229/191/2 +f 530/227/2 229/191/2 231/228/2 +f 531/229/2 231/228/2 233/137/2 +f 532/230/2 233/137/2 235/231/2 +f 533/232/2 235/231/2 237/192/2 +f 512/194/2 237/192/2 193/233/2 +f 534/229/2 535/230/2 536/219/2 +f 527/223/71 537/221/71 526/221/71 +f 520/209/88 538/208/88 519/208/88 +f 513/198/81 539/114/81 239/114/81 +f 528/225/72 540/223/72 527/223/72 +f 521/211/89 541/209/89 520/209/89 +f 514/200/82 542/198/82 513/198/82 +f 529/226/73 543/225/73 528/225/73 +f 522/213/90 544/211/90 521/211/90 +f 515/202/83 545/200/83 514/200/83 +f 530/227/74 546/226/74 529/226/74 +f 523/216/66 547/213/66 522/213/66 +f 516/204/84 548/202/84 515/202/84 +f 531/229/75 549/227/75 530/227/75 +f 524/218/67 550/216/67 523/216/67 +f 517/205/85 551/204/85 516/204/85 +f 532/230/76 534/229/102 531/229/76 +f 525/219/101 552/218/68 524/218/101 +f 518/206/86 553/205/86 517/205/86 +f 533/232/77 535/230/77 532/230/77 +f 241/115/79 554/194/79 512/194/79 +f 526/221/69 536/219/70 525/219/69 +f 519/208/87 555/206/87 518/206/87 +f 512/194/78 556/232/78 533/232/78 +f 271/127/103 263/147/104 557/133/105 +f 191/62/66 194/65/66 192/63/66 +f 194/65/67 196/67/67 195/66/67 +f 196/67/68 198/69/68 197/68/68 +f 198/69/69 200/71/69 199/70/70 +f 200/71/71 202/73/71 201/72/71 +f 202/73/72 204/75/72 203/74/72 +f 204/75/73 206/77/73 205/76/73 +f 206/77/74 208/79/74 207/78/74 +f 208/79/75 210/81/75 209/80/75 +f 210/81/76 212/83/76 211/82/76 +f 212/83/77 214/85/77 213/84/77 +f 214/85/78 216/87/78 215/86/78 +f 216/87/79 218/89/79 217/88/79 +f 218/89/80 220/91/80 219/90/80 +f 220/91/81 222/93/81 221/92/81 +f 222/93/82 224/95/82 223/94/82 +f 224/95/83 226/97/83 225/96/83 +f 226/97/84 228/99/84 227/98/84 +f 228/99/85 230/101/85 229/100/85 +f 230/101/86 232/103/86 231/102/86 +f 232/103/87 234/105/87 233/104/87 +f 234/105/88 236/110/88 235/106/88 +f 196/109/8 194/234/8 191/129/8 +f 191/129/8 238/235/8 196/109/8 +f 238/235/8 236/236/8 196/109/8 +f 236/236/8 234/148/8 232/237/8 +f 232/237/8 230/238/8 228/130/8 +f 228/130/8 226/239/8 224/240/8 +f 224/240/8 222/145/8 228/130/8 +f 222/145/8 220/241/8 228/130/8 +f 220/241/8 218/242/8 216/143/8 +f 216/143/8 214/243/8 212/107/8 +f 212/107/8 210/142/8 208/244/8 +f 208/244/8 206/245/8 204/108/8 +f 204/108/8 202/246/8 200/247/8 +f 200/247/8 198/139/8 204/108/8 +f 198/139/8 196/109/8 204/108/8 +f 236/236/8 232/237/8 228/130/8 +f 220/241/8 216/143/8 228/130/8 +f 216/143/8 212/107/8 228/130/8 +f 212/107/8 208/244/8 204/108/8 +f 196/109/8 236/236/8 212/107/8 +f 236/236/8 228/130/8 212/107/8 +f 236/110/89 238/112/89 237/111/89 +f 238/112/90 191/248/90 193/113/90 +f 239/114/80 539/114/80 240/115/80 +f 242/116/67 245/119/67 243/117/67 +f 245/119/71 247/121/71 246/120/71 +f 247/121/74 249/123/74 248/122/74 +f 249/123/77 251/125/77 250/124/77 +f 251/125/80 253/127/80 252/126/80 +f 253/127/83 255/131/83 254/128/83 +f 247/108/8 245/139/8 242/129/8 +f 242/129/8 257/148/8 255/130/8 +f 255/130/8 253/145/8 247/108/8 +f 253/145/8 251/143/8 247/108/8 +f 251/143/8 249/142/8 247/108/8 +f 255/131/86 257/133/86 256/132/86 +f 257/133/89 242/153/89 244/134/89 +f 256/137/2 244/233/2 248/135/2 +f 244/233/2 243/197/2 248/135/2 +f 243/197/2 246/203/2 248/135/2 +f 248/135/2 250/214/2 252/136/2 +f 252/136/2 254/224/2 256/137/2 +f 250/129/91 267/249/91 258/138/91 +f 248/139/92 258/138/92 259/140/92 +f 246/108/93 259/140/93 260/141/93 +f 260/141/94 261/144/94 244/143/94 +f 261/144/95 262/146/95 256/145/95 +f 262/146/96 263/147/96 254/130/96 +f 263/147/97 264/149/97 252/148/97 +f 264/149/98 267/249/98 250/129/98 +f 265/123/86 270/121/86 259/150/86 +f 266/125/89 265/123/89 258/151/89 +f 268/153/77 557/133/77 262/154/77 +f 269/119/80 268/116/80 261/156/80 +f 270/121/83 269/119/83 260/157/83 +f 271/127/67 266/125/67 267/152/67 +f 272/116/66 275/160/66 273/159/66 +f 275/160/67 277/162/67 276/161/67 +f 277/162/68 279/119/68 278/117/68 +f 279/119/69 281/164/69 280/163/69 +f 281/164/71 283/166/71 282/165/71 +f 283/166/72 285/121/72 284/120/72 +f 285/121/73 287/168/73 286/167/73 +f 287/168/74 289/170/74 288/169/74 +f 289/170/75 291/123/75 290/122/75 +f 291/123/76 293/172/76 292/171/76 +f 293/172/77 295/174/77 294/173/77 +f 295/174/78 297/125/78 296/124/78 +f 297/125/79 299/176/79 298/175/79 +f 299/176/80 301/178/80 300/177/80 +f 301/178/81 303/127/81 302/126/81 +f 303/127/82 305/180/82 304/179/82 +f 305/180/83 307/182/83 306/181/83 +f 307/182/84 309/131/84 308/128/84 +f 309/131/85 311/184/85 310/183/85 +f 311/184/86 313/186/86 312/185/86 +f 313/186/87 315/133/87 314/132/87 +f 315/133/88 317/188/88 316/187/88 +f 277/109/8 275/234/8 317/236/8 +f 275/234/8 272/129/8 317/236/8 +f 272/129/8 319/235/8 317/236/8 +f 317/236/8 315/148/8 313/237/8 +f 313/237/8 311/238/8 309/130/8 +f 309/130/8 307/239/8 305/240/8 +f 305/240/8 303/145/8 301/241/8 +f 301/241/8 299/242/8 297/143/8 +f 297/143/8 295/243/8 293/107/8 +f 293/107/8 291/142/8 289/244/8 +f 289/244/8 287/245/8 293/107/8 +f 287/245/8 285/108/8 293/107/8 +f 285/108/8 283/246/8 281/247/8 +f 281/247/8 279/139/8 277/109/8 +f 317/236/8 313/237/8 277/109/8 +f 313/237/8 309/130/8 277/109/8 +f 309/130/8 305/240/8 293/107/8 +f 305/240/8 301/241/8 293/107/8 +f 301/241/8 297/143/8 293/107/8 +f 285/108/8 281/247/8 293/107/8 +f 281/247/8 277/109/8 293/107/8 +f 317/188/89 319/190/89 318/189/89 +f 319/190/90 272/153/90 274/134/90 +f 318/192/2 274/233/2 273/195/2 +f 273/195/2 276/196/2 318/192/2 +f 276/196/2 278/197/2 318/192/2 +f 278/197/2 280/199/2 286/193/2 +f 280/199/2 282/201/2 286/193/2 +f 282/201/2 284/203/2 286/193/2 +f 286/193/2 288/207/2 290/135/2 +f 290/135/2 292/210/106 294/212/2 +f 294/212/2 296/214/2 298/215/2 +f 298/215/2 300/217/107 302/136/2 +f 302/136/2 304/220/2 306/222/2 +f 306/222/2 308/224/2 310/191/2 +f 310/191/2 312/228/2 314/137/2 +f 314/137/2 316/231/2 310/191/2 +f 316/231/2 318/192/2 310/191/2 +f 286/193/2 290/135/2 294/212/2 +f 294/212/2 298/215/2 286/193/2 +f 298/215/2 302/136/2 286/193/2 +f 302/136/2 306/222/2 310/191/2 +f 318/192/2 278/197/2 286/193/2 +f 302/136/2 310/191/2 286/193/2 +f 320/62/66 323/65/66 321/63/66 +f 323/65/67 325/67/67 324/66/67 +f 325/67/68 327/69/68 326/68/68 +f 327/69/70 329/71/70 328/70/70 +f 329/71/71 331/73/71 330/72/71 +f 331/73/72 333/75/72 332/74/72 +f 333/75/73 335/77/73 334/76/73 +f 335/77/74 337/79/74 336/78/74 +f 337/79/75 339/81/75 338/80/75 +f 339/81/76 341/83/76 340/82/76 +f 341/83/77 343/85/77 342/84/77 +f 343/85/78 345/87/78 344/86/78 +f 345/87/79 347/89/79 346/88/79 +f 347/89/80 349/91/80 348/90/80 +f 349/91/81 351/93/81 350/92/81 +f 351/93/82 353/95/82 352/94/100 +f 353/95/83 355/97/83 354/96/83 +f 355/97/84 357/99/84 356/98/84 +f 357/99/85 359/101/85 358/100/85 +f 359/101/86 361/103/86 360/102/86 +f 361/103/87 363/105/87 362/104/87 +f 363/105/88 365/110/88 364/106/88 +f 325/109/8 323/234/8 320/129/8 +f 320/129/8 367/235/108 365/236/8 +f 365/236/8 363/148/8 361/237/8 +f 361/237/8 359/238/8 365/236/8 +f 359/238/8 357/130/8 365/236/8 +f 357/130/8 355/239/8 353/240/8 +f 353/240/8 351/145/8 357/130/8 +f 351/145/8 349/241/8 357/130/8 +f 349/241/8 347/242/8 345/143/8 +f 345/143/8 343/243/109 341/107/8 +f 341/107/8 339/142/8 337/244/8 +f 337/244/8 335/245/8 341/107/8 +f 335/245/8 333/108/8 341/107/8 +f 333/108/8 331/246/8 329/247/8 +f 329/247/8 327/139/8 333/108/8 +f 327/139/8 325/109/8 333/108/8 +f 325/109/8 320/129/8 365/236/8 +f 349/241/8 345/143/8 357/130/8 +f 345/143/8 341/107/8 357/130/8 +f 325/109/8 365/236/8 341/107/8 +f 365/236/8 357/130/8 341/107/8 +f 365/110/89 367/112/89 366/111/89 +f 367/112/90 320/248/90 322/113/90 +f 366/192/2 322/233/2 321/195/2 +f 321/195/2 324/196/2 366/192/2 +f 324/196/2 326/197/2 366/192/2 +f 326/197/2 328/199/2 330/201/2 +f 330/201/2 332/203/2 326/197/2 +f 332/203/2 334/193/2 326/197/2 +f 334/193/2 336/207/110 338/135/2 +f 338/135/2 340/210/106 342/212/2 +f 342/212/2 344/214/2 350/136/2 +f 344/214/2 346/215/2 350/136/2 +f 346/215/2 348/217/106 350/136/2 +f 350/136/2 352/220/2 354/222/2 +f 354/222/2 356/224/2 350/136/2 +f 356/224/2 358/191/2 350/136/2 +f 358/191/2 360/228/106 362/137/2 +f 362/137/2 364/231/2 358/191/2 +f 364/231/2 366/192/2 358/191/2 +f 334/193/2 338/135/2 350/136/2 +f 338/135/2 342/212/2 350/136/2 +f 366/192/2 326/197/2 350/136/2 +f 326/197/2 334/193/2 350/136/2 +f 368/116/66 371/160/66 369/159/66 +f 371/160/67 373/162/67 372/161/67 +f 373/162/68 375/119/68 374/117/68 +f 375/119/70 377/164/70 376/163/70 +f 377/164/71 379/166/71 378/165/71 +f 379/166/72 381/121/72 380/120/72 +f 381/121/73 383/168/73 382/167/73 +f 383/168/74 385/170/74 384/169/74 +f 385/170/75 387/123/111 386/122/75 +f 387/123/76 389/172/76 388/171/76 +f 389/172/77 391/174/77 390/173/77 +f 391/174/78 393/125/78 392/124/78 +f 393/125/79 395/176/79 394/175/79 +f 395/176/80 397/178/80 396/177/80 +f 397/178/81 399/127/81 398/126/81 +f 399/127/82 401/180/82 400/179/82 +f 401/180/83 403/182/83 402/181/83 +f 403/182/84 405/131/84 404/128/84 +f 405/131/85 407/184/85 406/183/85 +f 407/184/86 409/186/86 408/185/86 +f 409/186/87 411/133/87 410/132/87 +f 411/133/88 413/188/88 412/187/88 +f 373/109/8 371/234/8 368/129/8 +f 368/129/8 415/235/8 413/236/8 +f 413/236/8 411/148/109 409/237/8 +f 409/237/8 407/238/8 413/236/8 +f 407/238/8 405/130/8 413/236/8 +f 405/130/8 403/239/8 401/240/8 +f 401/240/8 399/145/8 405/130/8 +f 399/145/8 397/241/8 405/130/8 +f 397/241/8 395/242/8 393/143/8 +f 393/143/8 391/243/8 389/107/8 +f 389/107/8 387/142/108 385/244/8 +f 385/244/8 383/245/8 389/107/8 +f 383/245/8 381/108/8 389/107/8 +f 381/108/8 379/246/8 377/247/8 +f 377/247/8 375/139/8 381/108/8 +f 375/139/8 373/109/8 381/108/8 +f 373/109/8 368/129/8 413/236/8 +f 397/241/8 393/143/8 405/130/8 +f 393/143/8 389/107/8 405/130/8 +f 373/109/8 413/236/8 389/107/8 +f 413/236/8 405/130/8 389/107/8 +f 413/188/89 415/190/89 414/189/89 +f 415/190/90 368/153/90 370/134/90 +f 414/192/2 370/233/2 369/195/110 +f 369/195/110 372/196/2 414/192/2 +f 372/196/2 374/197/2 414/192/2 +f 374/197/2 376/199/106 378/201/2 +f 378/201/2 380/203/2 374/197/2 +f 380/203/2 382/193/2 374/197/2 +f 382/193/2 384/207/2 386/135/2 +f 386/135/2 388/210/110 390/212/2 +f 390/212/2 392/214/110 394/215/2 +f 394/215/2 396/217/106 398/136/2 +f 398/136/2 400/220/110 402/222/2 +f 402/222/2 404/224/2 398/136/2 +f 404/224/2 406/191/2 398/136/2 +f 406/191/2 408/228/2 410/137/2 +f 410/137/2 412/231/2 406/191/2 +f 412/231/2 414/192/2 406/191/2 +f 382/193/2 386/135/2 390/212/2 +f 390/212/2 394/215/2 382/193/2 +f 394/215/2 398/136/2 382/193/2 +f 414/192/2 374/197/2 398/136/2 +f 374/197/2 382/193/2 398/136/2 +f 416/116/66 419/160/66 417/159/66 +f 419/160/67 421/162/67 420/161/67 +f 421/162/68 423/119/68 422/117/68 +f 423/119/70 425/164/70 424/163/70 +f 425/164/71 427/166/71 426/165/71 +f 427/166/72 429/121/72 428/120/72 +f 429/121/73 431/168/73 430/167/73 +f 431/168/74 433/170/74 432/169/74 +f 433/170/75 435/123/75 434/122/75 +f 435/123/76 437/172/76 436/171/76 +f 437/172/77 439/174/77 438/173/77 +f 439/174/78 441/125/78 440/124/78 +f 441/125/79 443/176/79 442/175/79 +f 443/176/80 445/178/80 444/177/80 +f 445/178/81 447/127/81 446/126/81 +f 447/127/100 449/180/100 448/179/100 +f 449/180/83 451/182/83 450/181/83 +f 451/182/84 453/131/84 452/128/84 +f 453/131/85 455/184/85 454/183/85 +f 455/184/86 457/186/86 456/185/86 +f 457/186/87 459/133/87 458/132/87 +f 459/133/88 461/188/88 460/187/88 +f 421/109/8 419/234/8 416/129/8 +f 416/129/8 463/235/8 461/236/8 +f 461/236/8 459/148/108 457/237/8 +f 457/237/8 455/238/8 461/236/8 +f 455/238/8 453/130/8 461/236/8 +f 453/130/8 451/239/8 449/240/8 +f 449/240/8 447/145/8 453/130/8 +f 447/145/8 445/241/8 453/130/8 +f 445/241/8 443/242/8 441/143/8 +f 441/143/8 439/243/8 437/107/8 +f 437/107/8 435/142/109 433/244/8 +f 433/244/8 431/245/8 437/107/8 +f 431/245/8 429/108/8 437/107/8 +f 429/108/8 427/246/8 425/247/8 +f 425/247/8 423/139/8 429/108/8 +f 423/139/8 421/109/8 429/108/8 +f 421/109/8 416/129/8 461/236/8 +f 445/241/8 441/143/8 453/130/8 +f 441/143/8 437/107/8 453/130/8 +f 421/109/8 461/236/8 437/107/8 +f 461/236/8 453/130/8 437/107/8 +f 461/188/89 463/190/89 462/189/89 +f 463/190/90 416/153/90 418/134/90 +f 462/192/2 418/233/2 417/195/2 +f 417/195/2 420/196/2 462/192/2 +f 420/196/2 422/197/2 462/192/2 +f 422/197/2 424/199/2 426/201/2 +f 426/201/2 428/203/2 422/197/2 +f 428/203/2 430/193/2 422/197/2 +f 430/193/2 432/207/2 434/135/2 +f 434/135/2 436/210/2 438/212/2 +f 438/212/2 440/214/2 446/136/2 +f 440/214/2 442/215/2 446/136/2 +f 442/215/2 444/217/110 446/136/2 +f 446/136/2 448/220/2 450/222/2 +f 450/222/2 452/224/2 446/136/2 +f 452/224/2 454/191/2 446/136/2 +f 454/191/2 456/228/2 458/137/2 +f 458/137/2 460/231/2 454/191/2 +f 460/231/2 462/192/2 454/191/2 +f 430/193/2 434/135/2 446/136/2 +f 434/135/2 438/212/2 446/136/2 +f 462/192/2 422/197/2 446/136/2 +f 422/197/2 430/193/2 446/136/2 +f 464/62/66 467/65/66 465/63/66 +f 467/65/67 469/67/67 468/66/67 +f 469/67/101 471/69/101 470/68/68 +f 471/69/70 473/71/70 472/70/70 +f 473/71/71 475/73/71 474/72/71 +f 475/73/72 477/75/72 476/74/72 +f 477/75/73 479/77/73 478/76/73 +f 479/77/74 481/79/74 480/78/74 +f 481/79/75 483/81/75 482/80/75 +f 483/81/102 485/83/102 484/82/76 +f 485/83/77 487/85/77 486/84/77 +f 487/85/78 489/87/78 488/86/78 +f 489/87/79 491/89/79 490/88/79 +f 491/89/80 493/91/80 492/90/80 +f 493/91/81 495/93/81 494/92/81 +f 495/93/82 497/95/82 496/94/100 +f 497/95/83 499/97/83 498/96/83 +f 499/97/84 501/99/84 500/98/84 +f 501/99/85 503/101/85 502/100/85 +f 503/101/86 505/103/86 504/102/86 +f 505/103/87 507/105/87 506/104/87 +f 507/105/88 509/110/88 508/106/88 +f 469/109/8 467/234/8 464/129/8 +f 464/129/8 511/235/8 469/109/8 +f 511/235/8 509/236/8 469/109/8 +f 509/236/8 507/148/8 505/237/8 +f 505/237/8 503/238/8 509/236/8 +f 503/238/8 501/130/8 509/236/8 +f 501/130/8 499/239/8 497/240/8 +f 497/240/8 495/145/8 501/130/8 +f 495/145/8 493/241/8 501/130/8 +f 493/241/8 491/242/8 489/143/8 +f 489/143/8 487/243/8 485/107/8 +f 485/107/8 483/142/8 481/244/8 +f 481/244/8 479/245/8 485/107/8 +f 479/245/8 477/108/8 485/107/8 +f 477/108/8 475/246/8 473/247/8 +f 473/247/8 471/139/8 477/108/8 +f 471/139/8 469/109/8 477/108/8 +f 493/241/8 489/143/8 501/130/8 +f 489/143/8 485/107/8 501/130/8 +f 469/109/8 509/236/8 485/107/8 +f 509/236/8 501/130/8 485/107/8 +f 509/110/89 511/112/89 510/111/89 +f 511/112/90 464/248/90 466/113/90 +f 510/192/2 466/233/2 465/195/2 +f 465/195/2 468/196/2 510/192/2 +f 468/196/2 470/197/2 510/192/2 +f 470/197/2 472/199/2 474/201/2 +f 474/201/2 476/203/2 470/197/2 +f 476/203/2 478/193/2 470/197/2 +f 478/193/2 480/207/2 482/135/2 +f 482/135/2 484/210/2 486/212/2 +f 486/212/2 488/214/2 494/136/2 +f 488/214/2 490/215/2 494/136/2 +f 490/215/2 492/217/110 494/136/2 +f 494/136/2 496/220/2 498/222/2 +f 498/222/2 500/224/2 494/136/2 +f 500/224/2 502/191/2 494/136/2 +f 502/191/2 504/228/2 506/137/2 +f 506/137/2 508/231/2 502/191/2 +f 508/231/2 510/192/2 502/191/2 +f 478/193/2 482/135/2 494/136/2 +f 482/135/2 486/212/2 494/136/2 +f 510/192/2 470/197/2 494/136/2 +f 470/197/2 478/193/2 494/136/2 +f 512/194/2 193/233/2 192/195/2 +f 241/115/2 192/195/2 195/196/2 +f 239/114/2 195/196/2 197/197/2 +f 513/198/2 197/197/2 199/199/2 +f 514/200/2 199/199/2 201/201/2 +f 515/202/2 201/201/2 203/203/2 +f 517/205/2 516/204/2 203/203/2 +f 518/206/2 517/205/2 205/193/2 +f 519/208/2 518/206/2 207/207/2 +f 520/209/2 519/208/2 209/135/2 +f 521/211/2 520/209/2 211/210/2 +f 522/213/2 521/211/2 213/212/2 +f 522/213/2 215/214/2 217/215/2 +f 523/216/2 217/215/2 219/217/2 +f 524/218/2 219/217/2 221/136/2 +f 525/219/2 221/136/2 223/220/2 +f 526/221/2 223/220/2 225/222/2 +f 527/223/2 225/222/2 227/224/2 +f 529/226/2 528/225/2 227/224/2 +f 530/227/2 529/226/2 229/191/2 +f 531/229/2 530/227/2 231/228/2 +f 532/230/2 531/229/2 233/137/2 +f 533/232/2 532/230/2 235/231/2 +f 512/194/2 533/232/2 237/192/2 +f 556/232/2 554/194/2 547/213/2 +f 554/194/2 240/115/2 544/211/2 +f 240/115/2 539/114/2 544/211/2 +f 539/114/2 542/198/2 541/209/2 +f 544/211/2 539/114/2 541/209/2 +f 542/198/2 545/200/2 555/206/2 +f 545/200/2 548/202/2 553/205/2 +f 548/202/2 551/204/2 553/205/2 +f 553/205/2 555/206/2 545/200/2 +f 555/206/2 538/208/2 542/198/2 +f 538/208/2 541/209/2 542/198/2 +f 544/211/2 547/213/2 554/194/2 +f 547/213/2 550/216/2 556/232/2 +f 550/216/2 552/218/2 556/232/2 +f 552/218/2 536/219/2 535/230/2 +f 556/232/2 552/218/2 535/230/2 +f 536/219/2 537/221/2 549/227/2 +f 537/221/2 540/223/2 546/226/2 +f 540/223/2 543/225/2 546/226/2 +f 546/226/2 549/227/2 537/221/2 +f 549/227/2 534/229/2 536/219/2 +f 527/223/71 540/223/71 537/221/71 +f 520/209/88 541/209/88 538/208/88 +f 513/198/81 542/198/81 539/114/81 +f 528/225/72 543/225/72 540/223/72 +f 521/211/89 544/211/89 541/209/89 +f 514/200/82 545/200/82 542/198/82 +f 529/226/73 546/226/73 543/225/73 +f 522/213/90 547/213/90 544/211/90 +f 515/202/83 548/202/83 545/200/83 +f 530/227/74 549/227/74 546/226/74 +f 523/216/66 550/216/66 547/213/66 +f 516/204/84 551/204/84 548/202/84 +f 531/229/75 534/229/75 549/227/75 +f 524/218/67 552/218/67 550/216/67 +f 517/205/85 553/205/85 551/204/85 +f 532/230/76 535/230/102 534/229/102 +f 525/219/101 536/219/68 552/218/68 +f 518/206/86 555/206/86 553/205/86 +f 533/232/77 556/232/77 535/230/77 +f 241/115/79 240/115/79 554/194/79 +f 526/221/69 537/221/70 536/219/70 +f 519/208/87 538/208/87 555/206/87 +f 512/194/78 554/194/78 556/232/78 +f 557/133/105 268/153/2 269/119/2 +f 269/119/2 270/121/2 557/133/105 +f 270/121/2 265/123/2 271/127/103 +f 557/133/105 270/121/2 271/127/103 +f 265/123/2 266/125/2 271/127/103 +f 271/127/103 264/149/71 263/147/104 +f 263/147/104 262/154/74 557/133/105 +f 558/250/112 559/251/112 560/252/112 +f 561/253/113 562/254/113 563/254/113 +f 564/255/114 559/256/114 565/257/114 +f 566/258/115 565/257/115 567/259/115 +f 568/260/116 566/261/116 567/259/116 +f 569/262/114 570/263/114 571/263/114 +f 572/264/117 568/260/117 573/265/117 +f 574/266/118 575/267/118 576/268/118 +f 573/265/113 577/269/113 572/264/113 +f 578/270/119 576/271/119 577/269/119 +f 579/272/120 558/273/120 575/274/120 +f 580/275/25 581/276/25 582/277/25 +f 583/278/9 584/279/9 585/280/9 +f 586/281/26 587/282/26 580/283/26 +f 588/284/121 589/285/121 590/286/121 +f 591/287/122 592/288/122 589/289/122 +f 589/290/123 591/291/124 593/292/125 +f 594/293/126 595/294/126 592/288/126 +f 596/295/127 597/296/127 598/296/127 +f 599/297/128 600/298/128 601/298/128 +f 595/294/129 602/299/129 603/294/129 +f 604/300/130 605/300/131 593/300/132 +f 605/301/127 603/302/127 602/272/127 +f 606/303/25 607/304/25 608/305/25 +f 609/306/9 610/307/9 611/308/9 +f 612/309/8 608/310/8 610/311/8 +f 611/312/6 608/313/6 607/314/6 +f 613/315/26 612/316/26 609/317/26 +f 614/318/133 615/319/133 616/320/133 +f 617/321/134 618/322/134 619/323/134 +f 618/324/135 620/325/135 619/326/135 +f 621/327/136 620/328/136 622/329/136 +f 616/330/137 617/331/137 614/332/137 +f 623/333/9 621/334/9 624/335/9 +f 625/336/138 626/337/138 615/319/138 +f 621/338/139 627/339/139 628/340/139 +f 629/341/140 623/342/140 626/343/140 +f 625/344/25 614/345/25 617/346/25 +f 630/347/26 631/348/26 632/349/26 +f 630/350/141 633/351/141 634/352/141 +f 635/353/142 636/354/142 631/355/142 +f 637/356/143 633/357/143 638/358/143 +f 636/359/144 639/360/144 640/361/144 +f 641/362/145 639/363/145 642/364/145 +f 638/365/146 643/366/146 637/367/146 +f 642/368/147 644/369/147 641/370/147 +f 645/371/148 646/372/148 647/373/148 +f 648/374/149 649/375/149 646/376/149 +f 650/377/150 651/378/150 652/379/150 +f 649/380/9 641/381/9 644/382/9 +f 653/383/151 647/384/151 654/385/151 +f 651/386/25 642/387/25 643/388/25 +f 652/389/152 655/390/152 650/391/152 +f 654/392/153 656/393/153 653/394/153 +f 657/395/154 658/396/154 656/397/154 +f 659/398/155 660/399/155 658/400/155 +f 661/401/156 662/402/156 663/403/156 +f 664/404/9 665/405/9 666/406/9 +f 667/407/6 668/408/6 669/409/6 +f 670/410/157 667/411/157 669/412/157 +f 671/413/158 672/414/158 673/415/158 +f 666/416/159 670/417/159 674/418/159 +f 663/419/25 671/420/25 675/421/25 +f 676/422/160 664/423/160 677/424/160 +f 678/425/158 677/426/158 679/427/158 +f 680/428/159 681/428/159 682/429/159 +f 683/430/157 684/431/157 685/432/157 +f 685/433/6 684/434/6 686/435/6 +f 687/436/6 669/409/6 668/437/6 +f 674/438/161 679/439/161 666/440/161 +f 662/441/160 672/442/160 688/443/160 +f 680/444/161 675/445/161 671/446/161 +f 689/447/156 665/448/156 664/449/156 +f 689/450/25 678/450/25 674/450/25 +f 690/451/162 681/452/9 691/452/163 +f 587/453/2 583/454/2 581/455/2 +f 613/456/2 611/457/2 607/458/2 +f 692/459/25 589/460/25 592/461/25 +f 692/459/25 595/462/25 693/463/25 +f 693/463/25 603/462/25 694/464/25 +f 599/297/25 589/465/25 695/466/25 +f 599/297/25 696/302/25 604/347/25 +f 601/298/9 603/302/25 696/302/25 +f 697/464/25 698/467/25 699/468/25 +f 694/464/129 700/463/129 693/463/129 +f 692/459/122 699/468/122 695/468/122 +f 601/298/127 697/469/127 694/469/127 +f 695/466/164 698/297/164 599/297/164 +f 693/463/126 701/459/126 692/459/126 +f 702/470/9 591/407/9 593/349/9 +f 703/471/9 704/472/9 594/473/9 +f 703/474/9 591/287/9 705/475/9 +f 598/296/25 593/349/9 605/272/9 +f 598/296/25 602/272/9 596/295/9 +f 706/476/9 602/472/9 704/472/9 +f 707/477/9 708/478/9 709/479/9 +f 705/477/122 710/471/122 703/471/122 +f 702/470/165 707/480/165 705/480/165 +f 706/476/129 709/479/129 596/479/129 +f 598/296/166 708/470/166 702/470/166 +f 703/471/126 711/476/126 706/476/126 +f 595/294/167 700/481/167 701/482/167 +f 589/483/168 592/483/168 701/483/168 +f 603/483/169 697/483/169 700/483/169 +f 600/484/170 697/484/170 603/484/170 +f 604/485/171 600/485/171 696/485/171 +f 589/486/172 698/486/173 600/486/174 +f 602/299/175 704/299/175 711/487/175 +f 602/488/176 709/488/176 597/488/176 +f 593/489/177 605/489/177 597/489/177 +f 597/490/178 708/490/179 579/490/180 +f 710/483/181 594/483/182 579/483/183 +f 710/491/184 711/491/184 704/491/184 +f 712/492/25 575/274/25 558/273/25 +f 712/492/25 560/493/25 713/494/25 +f 714/495/25 566/496/25 715/497/25 +f 716/498/25 566/496/25 717/499/25 +f 714/495/25 560/493/25 564/500/25 +f 718/501/25 575/274/25 719/502/25 +f 563/254/25 577/503/25 561/253/25 +f 718/501/25 577/503/25 576/504/25 +f 716/498/25 572/505/25 563/254/25 +f 720/506/25 721/507/25 562/508/25 +f 716/498/116 722/497/116 715/497/116 +f 712/492/120 723/502/120 719/502/120 +f 718/501/119 724/253/119 561/253/119 +f 714/495/114 721/494/114 713/494/114 +f 713/494/112 720/492/112 712/492/112 +f 563/254/117 725/498/117 716/498/117 +f 719/502/118 726/501/118 718/501/118 +f 715/497/115 727/495/115 714/495/115 +f 728/509/9 579/272/9 729/510/9 +f 728/509/9 559/511/9 730/349/9 +f 571/263/9 567/512/9 565/513/9 +f 731/514/9 567/512/9 732/515/9 +f 571/263/9 559/511/9 569/262/9 +f 733/516/9 579/272/9 574/517/9 +f 734/518/9 578/519/9 573/520/9 +f 733/516/9 578/519/9 735/521/9 +f 731/514/9 573/520/9 568/522/9 +f 736/523/9 737/524/9 738/525/9 +f 728/509/112 738/262/112 569/262/112 +f 731/514/117 736/518/117 734/518/117 +f 733/516/118 739/510/118 729/510/118 +f 571/263/115 737/515/115 732/515/115 +f 734/518/113 740/521/113 735/521/113 +f 732/515/116 741/514/116 731/514/116 +f 729/510/120 742/509/120 728/509/120 +f 735/521/119 743/516/119 733/516/119 +f 567/259/185 565/257/186 570/526/186 +f 567/527/187 737/527/187 741/527/187 +f 741/528/188 736/528/188 573/528/188 +f 736/527/189 740/527/189 578/527/189 +f 578/527/190 740/527/190 743/527/190 +f 743/527/191 739/527/191 579/527/191 +f 742/527/192 730/527/192 579/527/192 +f 742/527/193 738/527/193 559/527/193 +f 559/527/194 738/527/194 570/527/194 +f 566/261/195 717/529/195 725/530/195 +f 566/527/196 722/527/196 727/527/196 +f 727/527/197 721/527/197 560/527/197 +f 720/527/198 558/527/198 560/527/198 +f 575/527/199 558/527/199 720/527/199 +f 575/527/200 723/527/200 726/527/200 +f 726/527/201 724/527/201 577/527/201 +f 577/527/202 724/527/202 562/527/202 +f 572/527/203 562/527/203 725/527/203 +f 583/531/121 582/532/121 581/533/121 +f 744/534/204 580/535/26 745/536/205 +f 745/537/25 582/277/25 590/538/25 +f 604/539/25 590/538/25 589/540/25 +f 593/541/206 745/542/206 604/543/206 +f 746/544/121 590/286/121 582/532/121 +f 747/545/207 748/546/208 749/546/208 +f 749/547/209 746/548/9 747/549/9 +f 750/550/9 744/551/210 751/552/211 +f 752/553/9 753/554/9 754/555/212 +f 754/556/213 755/556/213 756/556/213 +f 750/557/214 752/558/214 585/558/214 +f 751/559/6 757/557/6 750/557/6 +f 585/558/214 758/545/214 747/545/214 +f 759/556/215 753/559/216 751/559/217 +f 758/560/9 754/561/212 748/562/218 +f 755/556/219 760/546/220 756/556/221 +f 749/546/222 760/546/222 761/546/222 +f 754/556/212 760/546/223 748/546/218 +f 751/563/211 744/563/210 755/563/224 +f 558/250/112 730/564/112 559/251/112 +f 561/253/113 724/253/113 562/254/113 +f 564/255/114 560/565/114 559/256/114 +f 566/258/115 564/255/115 565/257/115 +f 568/260/116 717/529/116 566/261/116 +f 569/262/114 738/262/114 570/263/114 +f 572/264/117 717/529/117 568/260/117 +f 574/266/118 579/566/118 575/267/118 +f 573/265/113 578/270/113 577/269/113 +f 578/270/119 574/567/119 576/271/119 +f 579/272/120 730/349/120 558/273/120 +f 580/275/25 587/568/25 581/276/25 +f 586/569/9 750/570/9 584/571/9 +f 750/570/9 585/572/9 584/571/9 +f 585/572/9 747/573/9 583/574/9 +f 747/573/9 746/575/9 583/574/9 +f 586/281/26 584/576/26 587/282/26 +f 588/284/121 591/577/121 589/285/121 +f 591/287/122 594/293/122 592/288/122 +f 589/290/123 593/292/125 604/578/225 +f 594/293/126 704/299/126 595/294/126 +f 596/295/127 709/295/127 597/296/127 +f 599/297/128 698/297/128 600/298/128 +f 595/294/129 704/299/129 602/299/129 +f 604/300/130 696/300/226 605/300/131 +f 605/301/127 696/302/127 603/302/127 +f 606/303/25 613/579/25 607/304/25 +f 609/306/9 612/580/9 610/307/9 +f 612/309/8 606/581/8 608/310/8 +f 611/312/6 610/582/6 608/313/6 +f 613/315/26 606/583/26 612/316/26 +f 614/318/133 625/336/133 615/319/133 +f 617/321/134 624/584/134 618/322/134 +f 618/324/135 622/585/135 620/325/135 +f 621/327/136 628/586/136 620/328/136 +f 616/330/137 624/587/137 617/331/137 +f 622/588/9 618/589/9 624/335/9 +f 624/335/9 616/590/9 615/591/9 +f 615/591/9 626/592/9 623/333/9 +f 621/334/9 622/588/9 624/335/9 +f 615/591/9 623/333/9 624/335/9 +f 625/336/138 629/593/138 626/337/138 +f 621/338/139 623/594/139 627/339/139 +f 629/341/140 627/595/140 623/342/140 +f 619/596/25 620/597/25 617/346/25 +f 620/597/25 628/598/25 617/346/25 +f 628/598/25 627/599/25 617/346/25 +f 627/599/25 629/600/25 625/344/25 +f 617/346/25 627/599/25 625/344/25 +f 630/347/26 635/601/26 631/348/26 +f 630/350/141 632/602/141 633/351/141 +f 635/353/142 762/603/142 636/354/142 +f 637/356/143 634/604/143 633/357/143 +f 636/359/144 762/605/144 639/360/144 +f 641/362/145 640/606/145 639/363/145 +f 638/365/146 649/607/146 643/366/146 +f 642/368/147 651/608/147 644/369/147 +f 645/371/148 648/609/148 646/372/148 +f 648/374/149 643/610/149 649/375/149 +f 650/377/150 644/611/150 651/378/150 +f 647/612/9 646/613/9 650/614/9 +f 646/613/9 649/380/9 644/382/9 +f 649/380/9 638/615/9 641/381/9 +f 638/615/9 633/616/9 641/381/9 +f 633/616/9 632/617/9 631/618/9 +f 633/616/9 631/618/9 636/619/9 +f 659/620/9 657/621/9 655/622/9 +f 657/621/9 654/623/9 655/622/9 +f 633/616/9 636/619/9 640/624/9 +f 633/616/9 640/624/9 641/381/9 +f 655/622/9 654/623/9 647/612/9 +f 650/614/9 655/622/9 647/612/9 +f 644/382/9 650/614/9 646/613/9 +f 653/383/151 645/625/151 647/384/151 +f 653/626/25 656/627/25 660/628/25 +f 656/627/25 658/629/25 660/628/25 +f 643/388/25 648/630/25 651/386/25 +f 648/630/25 645/631/25 652/632/25 +f 634/633/25 637/634/25 642/387/25 +f 637/634/25 643/388/25 642/387/25 +f 635/635/25 630/636/25 634/633/25 +f 762/637/25 635/635/25 634/633/25 +f 645/631/25 653/626/25 660/628/25 +f 645/631/25 660/628/25 652/632/25 +f 639/638/25 762/637/25 634/633/25 +f 642/387/25 639/638/25 634/633/25 +f 648/630/25 652/632/25 651/386/25 +f 652/389/152 660/639/152 655/390/152 +f 654/392/153 657/640/153 656/393/153 +f 657/395/154 659/641/154 658/396/154 +f 659/398/155 655/642/155 660/399/155 +f 661/401/156 686/402/156 662/402/156 +f 665/405/9 667/643/9 666/406/9 +f 667/643/9 763/644/9 666/406/9 +f 666/406/9 679/645/9 664/404/9 +f 679/645/9 677/646/9 664/404/9 +f 667/407/6 665/522/6 668/408/6 +f 670/410/157 763/647/157 667/411/157 +f 671/413/158 688/648/158 672/414/158 +f 666/416/159 763/349/159 670/417/159 +f 685/649/25 661/650/25 675/421/25 +f 661/650/25 663/419/25 675/421/25 +f 663/419/25 688/651/25 671/420/25 +f 675/421/25 683/652/25 685/649/25 +f 676/422/160 689/653/160 664/423/160 +f 678/425/158 676/654/158 677/426/158 +f 682/429/159 683/655/159 675/656/159 +f 680/428/159 691/428/159 681/428/159 +f 682/429/159 675/656/159 680/428/159 +f 683/430/157 682/657/157 684/431/157 +f 686/435/6 661/499/6 685/433/6 +f 684/434/6 690/658/6 686/435/6 +f 674/438/161 678/659/161 679/439/161 +f 688/443/160 663/660/160 662/441/160 +f 662/441/227 764/441/227 672/442/227 +f 671/446/161 673/661/161 680/444/161 +f 673/661/161 765/444/161 680/444/161 +f 765/444/161 691/444/161 680/444/161 +f 689/447/156 668/662/156 665/448/156 +f 669/450/25 668/450/25 674/450/25 +f 668/450/25 689/450/25 674/450/25 +f 689/450/25 676/450/25 678/450/25 +f 674/450/25 670/450/25 669/450/25 +f 691/452/163 765/452/228 662/452/229 +f 765/452/228 764/452/230 662/452/229 +f 662/452/229 686/452/231 691/452/163 +f 686/452/231 690/451/162 691/452/163 +f 587/453/2 584/663/2 583/454/2 +f 613/456/2 609/664/2 611/457/2 +f 692/459/25 695/468/25 589/460/25 +f 692/482/25 592/288/25 595/294/25 +f 693/463/25 595/462/25 603/462/25 +f 599/297/25 604/347/25 589/465/25 +f 599/297/25 601/298/9 696/302/25 +f 601/298/9 694/469/25 603/302/25 +f 699/665/25 701/482/25 700/481/25 +f 697/464/25 600/666/25 698/467/25 +f 699/665/25 700/481/25 697/667/25 +f 694/464/129 697/464/129 700/463/129 +f 692/459/122 701/459/122 699/468/122 +f 601/298/127 600/298/127 697/469/127 +f 695/466/164 699/466/164 698/297/164 +f 693/481/126 700/481/126 701/482/126 +f 702/470/9 705/480/9 591/407/9 +f 703/471/9 706/476/9 704/472/9 +f 703/474/9 594/293/9 591/287/9 +f 598/296/25 702/470/9 593/349/9 +f 598/296/25 605/272/9 602/272/9 +f 706/476/9 596/479/9 602/472/9 +f 708/478/9 597/668/9 709/479/9 +f 709/669/9 711/487/9 707/475/9 +f 711/487/9 710/474/9 707/475/9 +f 705/475/122 707/475/122 710/474/122 +f 702/470/165 708/470/165 707/480/165 +f 706/476/129 711/476/129 709/479/129 +f 598/296/166 597/296/166 708/470/166 +f 703/471/126 710/471/126 711/476/126 +f 595/294/167 701/482/167 592/288/167 +f 589/483/168 701/483/168 699/483/168 +f 603/483/169 700/483/169 595/483/169 +f 600/484/170 603/484/170 696/484/170 +f 698/486/173 589/486/172 699/486/232 +f 589/486/233 600/486/234 604/486/235 +f 602/299/175 711/487/175 709/669/175 +f 602/488/176 597/488/176 605/488/176 +f 593/490/236 597/490/237 579/490/238 +f 579/490/180 708/490/179 707/490/239 +f 710/483/240 579/483/241 707/483/242 +f 710/483/184 704/483/184 594/483/184 +f 712/492/25 719/502/25 575/274/25 +f 712/492/25 558/273/25 560/493/25 +f 714/495/25 564/500/25 566/496/25 +f 716/498/25 715/497/25 566/496/25 +f 714/495/25 713/494/25 560/493/25 +f 718/501/25 576/504/25 575/274/25 +f 563/254/25 572/505/25 577/503/25 +f 718/501/25 561/253/25 577/503/25 +f 716/498/25 717/499/25 572/505/25 +f 722/670/25 725/530/25 562/508/25 +f 724/671/25 726/672/25 723/673/25 +f 727/674/25 722/670/25 721/507/25 +f 722/670/25 562/508/25 721/507/25 +f 562/508/25 724/671/25 720/506/25 +f 724/671/25 723/673/25 720/506/25 +f 716/498/116 725/498/116 722/497/116 +f 712/492/120 720/492/120 723/502/120 +f 718/501/119 726/501/119 724/253/119 +f 714/495/114 727/495/114 721/494/114 +f 713/494/112 721/494/112 720/492/112 +f 563/254/117 562/254/117 725/498/117 +f 719/502/118 723/502/118 726/501/118 +f 715/497/115 722/497/115 727/495/115 +f 728/509/9 730/349/9 579/272/9 +f 728/509/9 569/262/9 559/511/9 +f 571/263/9 732/515/9 567/512/9 +f 731/514/9 568/522/9 567/512/9 +f 571/263/9 565/513/9 559/511/9 +f 733/516/9 729/510/9 579/272/9 +f 734/518/9 735/521/9 578/519/9 +f 733/516/9 574/517/9 578/519/9 +f 731/514/9 734/518/9 573/520/9 +f 737/524/9 570/526/9 738/525/9 +f 738/525/9 742/675/9 736/523/9 +f 742/675/9 739/676/9 740/677/9 +f 736/523/9 742/675/9 740/677/9 +f 739/676/9 743/678/9 740/677/9 +f 736/523/9 741/679/9 737/524/9 +f 728/509/112 742/509/112 738/262/112 +f 731/514/117 741/514/117 736/518/117 +f 733/516/118 743/516/118 739/510/118 +f 571/263/115 570/263/115 737/515/115 +f 734/518/113 736/518/113 740/521/113 +f 732/515/116 737/515/116 741/514/116 +f 729/510/120 739/510/120 742/509/120 +f 735/521/119 740/521/119 743/516/119 +f 567/259/185 570/526/186 737/524/185 +f 567/527/187 741/527/187 568/527/187 +f 741/528/188 573/528/188 568/528/188 +f 736/527/189 578/527/189 573/527/189 +f 578/527/190 743/527/190 574/527/190 +f 743/527/191 579/527/191 574/527/191 +f 742/527/192 579/527/192 739/527/192 +f 742/527/193 559/527/193 730/527/193 +f 559/527/194 570/527/194 565/527/194 +f 566/261/195 725/530/195 722/670/195 +f 566/527/196 727/527/196 564/527/196 +f 727/527/197 560/527/197 564/527/197 +f 720/527/198 560/527/198 721/527/198 +f 575/527/199 720/527/199 723/527/199 +f 575/527/200 726/527/200 576/527/200 +f 726/527/201 577/527/201 576/527/201 +f 577/527/202 562/527/202 572/527/202 +f 572/527/203 725/527/203 717/527/203 +f 583/531/121 746/544/121 582/532/121 +f 744/534/204 586/680/26 580/535/26 +f 745/537/25 580/275/25 582/277/25 +f 604/539/25 745/537/25 590/538/25 +f 593/541/205 744/681/204 745/542/205 +f 746/544/121 588/284/121 590/286/121 +f 747/545/207 758/545/207 748/546/208 +f 749/682/209 588/683/243 746/684/9 +f 750/685/9 586/686/9 744/687/210 +f 752/553/9 757/688/9 753/554/9 +f 754/556/213 759/556/213 755/556/213 +f 750/557/214 757/557/214 752/558/214 +f 751/559/6 753/559/6 757/557/6 +f 585/558/214 752/558/214 758/545/214 +f 759/556/215 754/556/244 753/559/216 +f 758/560/9 752/689/9 754/561/212 +f 755/556/219 761/546/245 760/546/220 +f 749/546/222 748/546/222 760/546/222 +f 754/556/212 756/556/223 760/546/223 +f 591/563/246 588/563/243 761/563/247 +f 588/563/243 749/563/209 761/563/247 +f 744/563/210 593/563/248 755/563/224 +f 593/563/248 591/563/249 761/563/250 +f 755/563/224 593/563/248 761/563/250 +f 759/563/251 751/563/211 755/563/224 +f 766/690/252 767/691/252 768/692/252 +f 769/693/253 770/694/253 767/691/253 +f 771/695/254 772/696/254 770/694/254 +f 773/697/255 774/698/255 772/696/255 +f 775/699/256 776/700/256 774/698/256 +f 777/701/257 778/702/257 776/700/257 +f 779/703/258 780/704/258 778/702/258 +f 781/705/259 782/706/259 780/704/259 +f 783/707/260 784/708/260 782/706/260 +f 785/709/261 786/710/261 784/708/261 +f 787/711/262 788/712/262 786/710/262 +f 789/713/263 790/714/263 788/712/263 +f 791/715/264 792/716/264 790/714/264 +f 793/717/265 794/718/265 792/716/265 +f 795/719/266 796/720/266 794/718/266 +f 797/721/267 798/722/267 796/720/267 +f 799/723/268 800/724/268 798/722/268 +f 801/725/269 802/726/269 800/724/269 +f 803/727/270 804/728/270 802/726/270 +f 805/729/271 806/730/271 804/728/271 +f 807/731/272 808/732/272 806/730/272 +f 809/733/273 810/734/273 808/732/273 +f 811/735/274 812/736/274 810/734/274 +f 813/737/275 814/738/275 812/736/275 +f 815/739/268 816/740/268 817/740/268 +f 815/739/2 769/741/2 766/742/276 +f 817/740/2 771/743/2 769/741/2 +f 818/744/2 771/743/2 819/745/2 +f 820/746/2 773/747/2 818/744/2 +f 820/746/2 777/748/2 775/749/2 +f 821/750/2 779/751/2 777/748/2 +f 822/752/2 779/751/2 823/753/2 +f 824/754/2 781/755/2 822/752/2 +f 824/754/2 785/756/2 783/757/2 +f 825/758/2 787/759/2 785/756/2 +f 826/760/2 787/759/2 827/761/2 +f 828/762/2 789/763/2 826/760/2 +f 828/762/2 793/764/2 791/765/2 +f 829/766/2 795/767/2 793/764/2 +f 830/768/2 795/767/2 831/769/2 +f 832/770/2 797/771/2 830/768/2 +f 832/770/2 801/772/2 799/773/2 +f 833/774/2 803/775/2 801/772/2 +f 834/776/2 803/775/2 835/777/2 +f 836/778/2 805/779/2 834/776/2 +f 836/778/2 809/780/2 807/781/2 +f 837/782/2 811/783/2 809/780/2 +f 838/784/2 813/785/2 811/783/2 +f 839/786/2 840/787/277 813/785/2 +f 841/788/263 842/789/263 843/789/263 +f 831/769/278 844/768/278 830/768/278 +f 817/740/269 845/745/269 819/745/269 +f 830/768/279 846/770/279 832/770/279 +f 819/745/270 847/744/270 818/744/270 +f 832/770/252 848/774/252 833/774/252 +f 818/744/271 849/746/271 820/746/271 +f 833/774/253 850/777/253 835/777/253 +f 820/746/272 851/750/272 821/750/272 +f 835/777/254 852/776/254 834/776/254 +f 821/750/273 853/753/273 823/753/273 +f 834/776/255 854/778/255 836/778/255 +f 823/753/274 855/752/274 822/752/274 +f 836/778/256 856/782/256 837/782/256 +f 822/752/275 857/754/275 824/754/275 +f 837/782/257 858/784/257 838/784/257 +f 824/754/280 859/758/280 825/758/280 +f 838/784/258 860/786/258 839/786/258 +f 825/758/281 861/761/281 827/761/281 +f 843/789/264 862/790/264 863/790/264 +f 839/786/259 864/791/259 865/791/259 +f 827/761/282 866/760/282 826/760/282 +f 863/790/265 867/792/265 868/792/265 +f 865/791/260 869/793/260 870/793/260 +f 826/760/283 871/762/283 828/762/283 +f 868/792/266 872/794/266 873/794/266 +f 870/793/261 874/795/261 875/795/261 +f 828/762/284 876/766/284 829/766/284 +f 873/794/267 877/739/267 815/739/267 +f 875/795/262 878/788/262 841/788/262 +f 829/766/285 879/769/285 831/769/285 +f 880/796/8 768/797/8 767/798/8 +f 880/796/8 770/799/8 881/800/8 +f 882/801/8 770/799/8 772/802/8 +f 882/801/8 774/803/8 883/804/8 +f 884/805/8 774/803/8 776/806/8 +f 884/805/8 778/807/8 885/808/8 +f 885/808/8 780/809/8 886/810/8 +f 886/810/8 782/811/8 887/812/8 +f 888/813/8 782/811/8 784/814/8 +f 888/813/8 786/815/8 889/816/8 +f 890/817/8 786/815/8 788/818/8 +f 890/817/8 790/819/8 891/820/8 +f 892/821/8 790/819/8 792/822/8 +f 892/821/8 794/823/8 893/824/8 +f 894/825/8 794/823/8 796/826/8 +f 894/825/8 798/827/8 895/828/8 +f 896/829/8 798/827/8 800/830/8 +f 896/829/8 802/831/8 897/832/8 +f 898/833/8 802/831/8 804/834/8 +f 898/833/8 806/835/8 899/836/8 +f 900/837/8 806/835/8 808/838/8 +f 900/837/8 810/839/8 901/840/8 +f 902/841/8 810/839/8 812/842/8 +f 902/841/8 814/843/286 903/844/8 +f 904/845/25 905/846/25 906/847/25 +f 907/848/2 908/849/2 905/846/2 +f 909/850/9 910/851/9 908/849/9 +f 911/852/8 906/853/8 910/851/8 +f 908/849/6 906/854/6 905/855/6 +f 766/690/279 912/856/287 913/857/279 +f 814/738/288 914/858/289 915/859/289 +f 863/790/2 916/860/2 843/789/2 +f 868/792/2 917/861/2 863/790/2 +f 873/794/2 918/862/2 868/792/2 +f 815/739/2 913/863/290 919/864/2 +f 865/791/2 920/865/2 914/866/291 +f 870/793/2 921/867/2 920/865/2 +f 875/795/2 922/868/2 921/867/2 +f 841/788/2 916/860/2 922/868/2 +f 923/869/8 924/870/8 925/871/8 +f 926/872/8 925/871/8 927/873/8 +f 928/874/8 927/873/8 929/875/8 +f 930/876/8 928/874/8 929/875/8 +f 903/844/8 814/843/286 915/877/292 +f 931/878/8 932/879/8 933/880/8 +f 934/881/8 935/882/8 931/878/8 +f 924/870/8 936/883/8 934/881/8 +f 912/884/26 911/852/26 909/850/26 +f 907/885/26 915/886/26 914/887/26 +f 766/690/252 769/693/252 767/691/252 +f 769/693/253 771/695/253 770/694/253 +f 771/695/254 773/697/254 772/696/254 +f 773/697/255 775/699/255 774/698/255 +f 775/699/256 777/701/256 776/700/256 +f 777/701/257 779/703/257 778/702/257 +f 779/703/258 781/705/258 780/704/258 +f 781/705/259 783/707/259 782/706/259 +f 783/707/260 785/709/260 784/708/260 +f 785/709/261 787/711/261 786/710/261 +f 787/711/262 789/713/262 788/712/262 +f 789/713/263 791/715/263 790/714/263 +f 791/715/264 793/717/264 792/716/264 +f 793/717/265 795/719/265 794/718/265 +f 795/719/266 797/721/266 796/720/266 +f 797/721/267 799/723/267 798/722/267 +f 799/723/268 801/725/268 800/724/268 +f 801/725/269 803/727/269 802/726/269 +f 803/727/270 805/729/270 804/728/270 +f 805/729/271 807/731/271 806/730/271 +f 807/731/272 809/733/272 808/732/272 +f 809/733/273 811/735/273 810/734/273 +f 811/735/274 813/737/274 812/736/274 +f 813/737/275 840/888/275 814/738/275 +f 815/739/268 877/739/268 816/740/268 +f 815/739/2 817/740/2 769/741/2 +f 817/740/2 819/745/2 771/743/2 +f 818/744/2 773/747/2 771/743/2 +f 820/746/2 775/749/2 773/747/2 +f 820/746/2 821/750/2 777/748/2 +f 821/750/2 823/753/2 779/751/2 +f 822/752/2 781/755/2 779/751/2 +f 824/754/2 783/757/2 781/755/2 +f 824/754/2 825/758/2 785/756/2 +f 825/758/2 827/761/2 787/759/2 +f 826/760/2 789/763/2 787/759/2 +f 828/762/2 791/765/2 789/763/2 +f 828/762/2 829/766/2 793/764/2 +f 829/766/2 831/769/2 795/767/2 +f 830/768/2 797/771/2 795/767/2 +f 832/770/2 799/773/2 797/771/2 +f 832/770/2 833/774/2 801/772/2 +f 833/774/2 835/777/2 803/775/2 +f 834/776/2 805/779/2 803/775/2 +f 836/778/2 807/781/2 805/779/2 +f 836/778/2 837/782/2 809/780/2 +f 837/782/2 838/784/2 811/783/2 +f 838/784/2 839/786/2 813/785/2 +f 839/786/2 865/791/2 840/787/277 +f 841/788/263 878/788/263 842/789/263 +f 831/769/278 879/769/278 844/768/278 +f 817/740/269 816/740/269 845/745/269 +f 830/768/279 844/768/279 846/770/279 +f 819/745/270 845/745/270 847/744/270 +f 832/770/252 846/770/252 848/774/252 +f 818/744/271 847/744/271 849/746/271 +f 833/774/253 848/774/253 850/777/253 +f 820/746/272 849/746/272 851/750/272 +f 835/777/254 850/777/254 852/776/254 +f 821/750/273 851/750/273 853/753/273 +f 834/776/255 852/776/255 854/778/255 +f 823/753/274 853/753/274 855/752/274 +f 836/778/256 854/778/256 856/782/256 +f 822/752/275 855/752/275 857/754/275 +f 837/782/257 856/782/257 858/784/257 +f 824/754/280 857/754/280 859/758/280 +f 838/784/258 858/784/258 860/786/258 +f 825/758/281 859/758/281 861/761/281 +f 843/789/264 842/789/264 862/790/264 +f 839/786/259 860/786/259 864/791/259 +f 827/761/282 861/761/282 866/760/282 +f 863/790/265 862/790/265 867/792/265 +f 865/791/260 864/791/260 869/793/260 +f 826/760/283 866/760/283 871/762/283 +f 868/792/266 867/792/266 872/794/266 +f 870/793/261 869/793/261 874/795/261 +f 828/762/284 871/762/284 876/766/284 +f 873/794/267 872/794/267 877/739/267 +f 875/795/262 874/795/262 878/788/262 +f 829/766/285 876/766/285 879/769/285 +f 880/796/8 930/876/8 768/797/8 +f 880/796/8 767/798/8 770/799/8 +f 882/801/8 881/800/8 770/799/8 +f 882/801/8 772/802/8 774/803/8 +f 884/805/8 883/804/8 774/803/8 +f 884/805/8 776/806/8 778/807/8 +f 885/808/8 778/807/8 780/809/8 +f 886/810/8 780/809/8 782/811/8 +f 888/813/8 887/812/8 782/811/8 +f 888/813/8 784/814/8 786/815/8 +f 890/817/8 889/816/8 786/815/8 +f 890/817/8 788/818/8 790/819/8 +f 892/821/8 891/820/8 790/819/8 +f 892/821/8 792/822/8 794/823/8 +f 894/825/8 893/824/8 794/823/8 +f 894/825/8 796/826/8 798/827/8 +f 896/829/8 895/828/8 798/827/8 +f 896/829/8 800/830/8 802/831/8 +f 898/833/8 897/832/8 802/831/8 +f 898/833/8 804/834/8 806/835/8 +f 900/837/8 899/836/8 806/835/8 +f 900/837/8 808/838/8 810/839/8 +f 902/841/8 901/840/8 810/839/8 +f 902/841/8 812/842/8 814/843/286 +f 904/845/25 907/848/25 905/846/25 +f 907/848/2 909/850/2 908/849/2 +f 909/850/9 911/852/9 910/851/9 +f 911/852/8 904/889/8 906/853/8 +f 908/849/6 910/851/6 906/854/6 +f 766/690/279 768/692/287 912/856/287 +f 814/738/288 840/888/289 914/858/289 +f 863/790/2 917/861/2 916/860/2 +f 868/792/2 918/862/2 917/861/2 +f 873/794/2 919/864/2 918/862/2 +f 919/864/2 873/794/2 815/739/2 +f 815/739/2 766/742/276 913/863/290 +f 914/866/291 840/787/277 865/791/2 +f 865/791/2 870/793/2 920/865/2 +f 870/793/2 875/795/2 921/867/2 +f 875/795/2 841/788/2 922/868/2 +f 841/788/2 843/789/2 916/860/2 +f 923/869/8 937/890/8 924/870/8 +f 926/872/8 923/869/8 925/871/8 +f 928/874/8 926/872/8 927/873/8 +f 929/875/8 912/891/8 930/876/8 +f 912/891/8 768/797/8 930/876/8 +f 915/877/292 933/880/8 903/844/8 +f 933/880/8 932/879/8 903/844/8 +f 931/878/8 935/882/8 932/879/8 +f 934/881/8 936/883/8 935/882/8 +f 924/870/8 937/890/8 936/883/8 +f 933/892/26 915/886/26 904/893/26 +f 909/850/26 907/885/26 916/894/26 +f 907/885/26 914/887/26 920/895/26 +f 920/895/26 921/896/26 907/885/26 +f 921/896/26 922/897/26 907/885/26 +f 907/885/26 922/897/26 916/894/26 +f 933/892/26 904/893/26 931/898/26 +f 904/893/26 911/852/26 924/899/26 +f 931/898/26 904/893/26 934/900/26 +f 924/899/26 934/900/26 904/893/26 +f 916/894/26 917/901/26 909/850/26 +f 917/901/26 918/902/26 909/850/26 +f 929/903/26 927/904/26 911/852/26 +f 927/904/26 925/905/26 911/852/26 +f 925/905/26 924/899/26 911/852/26 +f 918/902/26 919/906/26 909/850/26 +f 919/906/26 913/907/26 909/850/26 +f 912/884/26 929/903/26 911/852/26 +f 913/907/26 912/884/26 909/850/26 +f 907/885/26 904/893/26 915/886/26 +f 938/908/293 939/909/293 940/910/293 +f 939/909/294 941/911/294 940/910/294 +f 942/912/295 943/913/295 941/911/295 +f 944/914/296 938/915/296 943/913/296 +f 941/911/6 938/916/6 940/917/6 +f 939/918/26 944/914/26 942/912/26 +f 945/919/297 946/909/297 947/920/297 +f 946/909/298 948/921/298 947/920/298 +f 949/912/299 950/922/299 948/921/299 +f 951/923/300 945/924/301 950/925/301 +f 952/911/6 953/916/6 954/917/6 +f 946/918/26 951/914/26 949/912/26 +f 950/922/301 953/915/301 955/913/301 +f 948/921/299 955/913/299 952/911/299 +f 947/920/298 952/911/298 954/910/298 +f 953/908/297 947/920/297 954/910/297 +f 956/908/302 957/909/302 958/910/302 +f 958/910/303 959/912/303 960/911/303 +f 959/912/304 961/913/304 960/911/304 +f 962/914/305 956/915/305 961/913/305 +f 960/911/306 956/916/306 958/917/306 +f 957/918/307 962/914/307 959/912/307 +f 963/908/308 964/909/308 965/910/309 +f 964/909/310 966/911/310 965/910/310 +f 967/912/311 968/913/311 966/911/311 +f 969/914/312 963/915/312 968/913/312 +f 966/911/313 963/916/313 965/917/313 +f 964/918/314 969/914/314 967/912/314 +f 938/908/293 970/926/293 939/909/293 +f 939/909/294 942/912/294 941/911/294 +f 942/912/295 944/914/295 943/913/295 +f 944/914/296 970/927/296 938/915/296 +f 941/911/6 943/913/6 938/916/6 +f 939/918/26 970/928/26 944/914/26 +f 945/919/297 971/926/297 946/909/297 +f 946/909/298 949/912/298 948/921/298 +f 949/912/299 951/914/299 950/922/299 +f 951/923/300 971/929/300 945/924/301 +f 952/911/6 955/913/6 953/916/6 +f 946/918/26 971/928/26 951/914/26 +f 950/922/301 945/930/301 953/915/301 +f 948/921/299 950/922/299 955/913/299 +f 947/920/298 948/921/298 952/911/298 +f 953/908/297 945/919/297 947/920/297 +f 956/908/302 972/926/302 957/909/302 +f 958/910/303 957/909/303 959/912/303 +f 959/912/304 962/914/315 961/913/304 +f 962/914/305 972/927/305 956/915/305 +f 960/911/306 961/913/306 956/916/306 +f 957/918/307 972/928/307 962/914/307 +f 963/908/308 973/926/308 964/909/308 +f 964/909/310 967/912/310 966/911/310 +f 967/912/311 969/914/311 968/913/311 +f 969/914/312 973/927/316 963/915/312 +f 966/911/313 968/913/313 963/916/313 +f 964/918/314 973/928/314 969/914/314 +o Shell +v -0.317579 2.171942 1.847565 +v 0.000000 2.303487 -0.098938 +v -0.317579 2.171942 -0.098938 +v 0.449124 1.854363 1.847565 +v 0.317579 1.536785 -0.098938 +v 0.449124 1.854363 -0.098938 +v 0.317579 1.536785 1.847565 +v 0.000000 1.405240 -0.098938 +v 0.000000 1.405239 1.847565 +v -0.317579 1.536785 -0.098938 +v -0.317579 1.536785 1.847565 +v -0.449124 1.854363 -0.098938 +v -0.449124 1.854363 1.847565 +v 0.000000 2.303487 1.847565 +v 0.317579 2.171942 -0.098938 +v 0.317579 2.171942 1.847565 +v 0.353356 2.207720 1.877207 +v 0.499721 1.854363 1.877207 +v 0.353356 1.501007 1.877207 +v 0.000000 1.354642 1.877207 +v -0.353356 1.501007 1.877207 +v -0.499721 1.854363 1.877207 +v -0.353356 2.207720 1.877207 +v 0.000000 2.354084 1.877207 +vn -0.3827 0.9239 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.2049 0.4948 -0.8445 +vn 0.4948 0.2049 -0.8445 +vn 0.4948 -0.2049 -0.8445 +vn 0.2049 -0.4948 -0.8445 +vn -0.2049 -0.4948 -0.8445 +vn -0.4948 -0.2049 -0.8445 +vn -0.4948 0.2049 -0.8445 +vn -0.2049 0.4948 -0.8445 +vn -0.0000 -0.0000 1.0000 +vt 0.125000 0.577656 +vt 0.000000 0.516094 +vt 0.125000 0.516094 +vt 0.750000 0.577656 +vt 0.625000 0.516094 +vt 0.750000 0.516094 +vt 0.625000 0.577656 +vt 0.500000 0.516094 +vt 0.500000 0.577656 +vt 0.375000 0.516094 +vt 0.375000 0.577656 +vt 0.250000 0.516094 +vt 0.250000 0.577656 +vt 1.000000 0.577656 +vt 0.875000 0.516094 +vt 1.000000 0.516094 +vt 0.875000 0.577656 +vt 0.707574 0.516599 +vt 0.690000 0.537812 +vt 0.707574 0.559026 +vt 0.218750 0.446250 +vt 0.195693 0.450000 +vt 0.195312 0.446250 +vt 0.172255 0.450000 +vt 0.171875 0.446250 +vt 0.148438 0.446250 +vt 0.171494 0.450000 +vt 0.148818 0.450000 +vt 0.125000 0.446250 +vt 0.148057 0.450000 +vt 0.125380 0.450000 +vt 0.101943 0.450000 +vt 0.101562 0.446250 +vt 0.078505 0.450000 +vt 0.078125 0.446250 +vt 0.054688 0.446250 +vt 0.077745 0.450000 +vt 0.055068 0.450000 +vt 0.031250 0.446250 +vt 0.054307 0.450000 +vt 0.031630 0.450000 +vt 0.013897 0.440000 +vt 0.130000 0.381948 +vt 0.246103 0.440000 +vt 0.000000 0.577656 +vt 0.750000 0.567813 +vt 0.792426 0.516599 +vt 0.792426 0.559026 +vt 0.810000 0.537812 +vt 0.750000 0.507812 +vt 0.218369 0.450000 +vt 0.194932 0.450000 +vt 0.124620 0.450000 +vt 0.101182 0.450000 +vt 0.212097 0.481049 +vt 0.130000 0.498052 +vt 0.047903 0.481049 +vt 0.047903 0.398951 +vt 0.212097 0.398951 +s 1 +f 974/931/317 975/932/317 976/933/317 +f 977/934/318 978/935/318 979/936/318 +f 980/937/319 981/938/319 978/935/319 +f 982/939/320 983/940/320 981/938/320 +f 984/941/321 985/942/321 983/940/321 +f 986/943/322 976/933/322 985/942/322 +f 987/944/323 988/945/323 975/946/323 +f 989/947/324 979/936/324 988/945/324 +f 983/948/325 985/949/325 976/950/325 +f 987/951/326 990/952/326 989/953/326 +f 989/953/327 991/954/327 977/955/327 +f 980/956/328 991/957/328 992/958/328 +f 982/959/329 992/960/329 993/961/329 +f 982/959/330 994/962/330 984/963/330 +f 984/963/331 995/964/331 986/965/331 +f 974/966/332 995/967/332 996/968/332 +f 987/969/333 996/970/333 997/971/333 +f 995/972/334 993/973/334 991/974/334 +f 974/931/317 987/975/317 975/932/317 +f 977/934/318 980/937/318 978/935/318 +f 980/937/319 982/939/319 981/938/319 +f 982/939/320 984/941/320 983/940/320 +f 984/941/321 986/943/321 985/942/321 +f 986/943/322 974/931/322 976/933/322 +f 987/944/323 989/947/323 988/945/323 +f 989/947/324 977/934/324 979/936/324 +f 976/950/325 975/976/325 978/977/325 +f 975/976/325 988/978/325 978/977/325 +f 988/978/325 979/979/325 978/977/325 +f 978/977/325 981/980/325 976/950/325 +f 981/980/325 983/948/325 976/950/325 +f 987/951/326 997/981/326 990/952/326 +f 989/953/327 990/982/327 991/954/327 +f 980/956/328 977/955/328 991/957/328 +f 982/959/329 980/956/329 992/960/329 +f 982/959/330 993/983/330 994/962/330 +f 984/963/331 994/984/331 995/964/331 +f 974/966/332 986/965/332 995/967/332 +f 987/969/333 974/966/333 996/970/333 +f 991/974/334 990/985/334 997/986/334 +f 997/986/334 996/987/334 995/972/334 +f 995/972/334 994/988/334 993/973/334 +f 993/973/334 992/989/334 991/974/334 +f 991/974/334 997/986/334 995/972/334 +o Bolt +v 1.237626 1.558533 -0.244676 +v 1.237626 1.347644 -0.338365 +v 1.237626 1.434997 -0.564550 +v 0.258755 0.970245 -0.742828 +v 0.364785 1.014616 5.211916 +v 0.258755 0.970245 5.211916 +v 0.364785 1.014616 -0.742828 +v 0.462503 1.086671 5.211916 +v 0.462503 1.086670 -0.742828 +v 0.548153 1.183639 5.211916 +v 0.548153 1.183639 -0.742828 +v 0.618444 1.301795 5.211916 +v 0.713701 1.734985 -0.742828 +v 0.702840 1.870972 2.886101 +v 0.713701 1.734986 3.385809 +v 0.702840 1.887102 -0.742828 +v 0.670676 2.017243 2.886101 +v 0.670676 2.033372 -0.742828 +v 0.618444 2.152046 2.886101 +v 0.618444 2.168175 -0.742828 +v 0.548153 2.270203 2.886101 +v 0.548153 2.286332 -0.742828 +v 0.462503 2.367172 2.886101 +v 0.462503 2.383301 -0.742828 +v 0.364785 2.439226 2.886101 +v 0.364785 2.455355 -0.742828 +v 0.258755 2.483597 2.886101 +v 0.685123 1.502331 -0.577728 +v 1.237626 1.465275 -0.574402 +v 0.678109 1.472589 -0.574402 +v 0.671364 1.443991 -0.564550 +v 1.237626 1.407092 -0.548553 +v 0.660936 1.417635 -0.548553 +v 0.670676 1.441072 -0.562778 +v 1.237626 1.382633 -0.527024 +v 0.651336 1.394533 -0.527024 +v 1.237626 1.362560 -0.500791 +v 0.643457 1.375574 -0.500791 +v 1.237626 1.347644 -0.470861 +v 0.637602 1.361486 -0.470861 +v 1.237626 1.338459 -0.438386 +v 0.633997 1.352811 -0.438386 +v 1.237626 1.335358 -0.404613 +v 0.632780 1.349882 -0.404613 +v 0.633997 1.352811 -0.370840 +v 1.237626 1.338459 -0.370840 +v 0.637602 1.361486 -0.338365 +v 0.643457 1.375574 -0.308436 +v 1.237626 1.362560 -0.308436 +v 0.651336 1.394533 -0.282203 +v 1.237626 1.382633 -0.282203 +v 0.660936 1.417635 -0.260674 +v 1.237626 1.407092 -0.260674 +v 0.671364 1.443991 -0.244676 +v 0.670676 1.441072 -0.246449 +v 1.237626 1.434997 -0.244676 +v 0.678109 1.472590 -0.234825 +v 1.237626 1.465276 -0.234825 +v 0.685123 1.502331 -0.231499 +v 1.237626 1.496765 -0.231499 +v 0.692138 1.532073 -0.234825 +v 1.237626 1.528254 -0.234825 +v 0.698882 1.560671 -0.244676 +v 1.237626 1.586437 -0.260674 +v 0.703573 1.587027 -0.260674 +v 0.702840 1.577450 -0.254860 +v 0.705341 1.610129 -0.282203 +v 1.237626 1.610896 -0.282203 +v 0.706793 1.629088 -0.308436 +v 1.237626 1.630969 -0.308436 +v 0.707873 1.643176 -0.338366 +v 1.237626 1.645885 -0.338366 +v 0.708536 1.651851 -0.370841 +v 1.237626 1.655070 -0.370841 +v 0.708760 1.654780 -0.404613 +v 1.237626 1.655070 -0.438387 +v 0.708536 1.651851 -0.438387 +v 1.237626 1.645884 -0.470862 +v 0.707873 1.643175 -0.470862 +v 1.237626 1.630969 -0.500791 +v 0.706793 1.629088 -0.500791 +v 1.237626 1.610896 -0.527024 +v 0.705341 1.610129 -0.527024 +v 1.237626 1.586437 -0.548553 +v 0.703573 1.587027 -0.548553 +v 1.237626 1.558532 -0.564551 +v 0.698882 1.560670 -0.564551 +v 0.702840 1.577450 -0.554366 +v 1.237626 1.528253 -0.574402 +v 0.692138 1.532072 -0.574402 +v 1.237626 1.496765 -0.577728 +v 0.618444 1.301795 -0.742828 +v 0.670676 1.436599 5.211916 +v 0.702840 1.582869 -0.742828 +v 1.237626 1.658171 -0.404613 +v 0.258755 2.499726 -0.742828 +v 0.670676 1.436599 -0.742828 +v 0.702840 1.582870 5.211916 +v 0.329833 0.917553 -0.742828 +vn 1.0000 -0.0000 -0.0000 +vn 0.3860 -0.9225 -0.0000 +vn 0.5935 -0.8049 -0.0000 +vn 0.7495 -0.6620 -0.0000 +vn 0.8594 -0.5113 -0.0000 +vn 0.9974 0.0714 0.0003 +vn 0.9968 0.0795 -0.0000 +vn 0.9968 0.0796 -0.0000 +vn 0.9767 0.2148 0.0010 +vn 0.9325 0.3613 0.0016 +vn 0.8594 0.5113 0.0023 +vn 0.7495 0.6620 0.0029 +vn 0.5935 0.8048 0.0036 +vn 0.3860 0.9225 0.0041 +vn -0.0014 -0.1106 -0.9939 +vn -0.0011 -0.1052 -0.9944 +vn -0.0014 -0.1108 -0.9938 +vn -0.0051 -0.3241 -0.9460 +vn -0.0041 -0.3099 -0.9507 +vn -0.0052 -0.3246 -0.9458 +vn -0.0080 -0.4980 -0.8671 +vn -0.0094 -0.5160 -0.8566 +vn -0.0095 -0.5165 -0.8562 +vn -0.0137 -0.6781 -0.7348 +vn -0.0121 -0.6613 -0.7500 +vn -0.0138 -0.6786 -0.7343 +vn -0.0176 -0.8074 -0.5897 +vn -0.0162 -0.7946 -0.6070 +vn -0.0177 -0.8078 -0.5892 +vn -0.0208 -0.9027 -0.4297 +vn -0.0196 -0.8951 -0.4454 +vn -0.0208 -0.9030 -0.4291 +vn -0.0229 -0.9651 -0.2608 +vn -0.0222 -0.9621 -0.2717 +vn -0.0229 -0.9652 -0.2604 +vn -0.0239 -0.9959 -0.0874 +vn -0.0237 -0.9955 -0.0913 +vn -0.0239 -0.9959 -0.0872 +vn -0.0237 -0.9955 0.0913 +vn -0.0239 -0.9959 0.0874 +vn -0.0239 -0.9959 0.0872 +vn -0.0222 -0.9621 0.2717 +vn -0.0229 -0.9651 0.2608 +vn -0.0229 -0.9652 0.2604 +vn -0.0196 -0.8951 0.4454 +vn -0.0208 -0.9027 0.4297 +vn -0.0208 -0.9030 0.4291 +vn -0.0162 -0.7946 0.6070 +vn -0.0176 -0.8074 0.5897 +vn -0.0177 -0.8078 0.5891 +vn -0.0121 -0.6613 0.7500 +vn -0.0137 -0.6781 0.7348 +vn -0.0138 -0.6786 0.7343 +vn -0.0080 -0.4980 0.8671 +vn -0.0095 -0.5168 0.8561 +vn -0.0095 -0.5166 0.8562 +vn -0.0041 -0.3099 0.9508 +vn -0.0051 -0.3241 0.9460 +vn -0.0052 -0.3246 0.9458 +vn -0.0011 -0.1052 0.9944 +vn -0.0014 -0.1106 0.9939 +vn -0.0014 -0.1108 0.9938 +vn 0.0007 0.1052 0.9944 +vn 0.0011 0.1107 0.9939 +vn 0.0011 0.1109 0.9938 +vn 0.0013 0.3099 0.9508 +vn 0.0022 0.3247 0.9458 +vn 0.0023 0.3252 0.9456 +vn 0.0011 0.4977 0.8674 +vn 0.0006 0.5189 0.8548 +vn 0.0014 0.5183 0.8552 +vn -0.0009 0.6615 0.7499 +vn 0.0007 0.6810 0.7323 +vn 0.0008 0.6817 0.7316 +vn -0.0028 0.7948 0.6068 +vn -0.0012 0.8099 0.5866 +vn -0.0012 0.8105 0.5857 +vn -0.0045 0.8954 0.4452 +vn -0.0033 0.9044 0.4266 +vn -0.0032 0.9048 0.4258 +vn -0.0058 0.9624 0.2716 +vn -0.0050 0.9660 0.2585 +vn -0.0049 0.9661 0.2580 +vn -0.0064 0.9958 0.0912 +vn -0.0061 0.9962 0.0866 +vn -0.0061 0.9962 0.0864 +vn -0.0061 0.9962 -0.0866 +vn -0.0064 0.9958 -0.0912 +vn -0.0061 0.9962 -0.0864 +vn -0.0050 0.9660 -0.2586 +vn -0.0058 0.9624 -0.2716 +vn -0.0049 0.9661 -0.2580 +vn -0.0033 0.9044 -0.4266 +vn -0.0045 0.8954 -0.4452 +vn -0.0032 0.9048 -0.4258 +vn -0.0012 0.8099 -0.5866 +vn -0.0028 0.7948 -0.6068 +vn -0.0012 0.8105 -0.5857 +vn 0.0007 0.6810 -0.7323 +vn -0.0009 0.6615 -0.7499 +vn 0.0008 0.6817 -0.7316 +vn 0.0011 0.4979 -0.8673 +vn 0.0021 0.5185 -0.8551 +vn 0.0014 0.5183 -0.8552 +vn 0.0022 0.3247 -0.9458 +vn 0.0013 0.3100 -0.9508 +vn 0.0023 0.3252 -0.9456 +vn 0.0011 0.1107 -0.9939 +vn 0.0007 0.1052 -0.9944 +vn 0.0011 0.1109 -0.9938 +vn 0.9351 -0.3543 0.0111 +vn 0.9914 -0.1289 -0.0237 +vn 0.9549 -0.2969 -0.0005 +vn 0.9733 -0.2295 -0.0002 +vn 0.9737 -0.2276 -0.0068 +vn 0.9736 -0.2281 -0.0069 +vn 0.9734 -0.2288 -0.0072 +vn 0.9977 -0.0677 -0.0018 +vn 0.9985 -0.0542 0.0017 +vn 0.9978 -0.0660 -0.0011 +vn 1.0000 -0.0000 -0.0001 +vn 1.0000 -0.0000 0.0001 +vn 0.9975 0.0712 0.0003 +vn -0.0011 -0.1050 -0.9945 +vn -0.0040 -0.3094 -0.9509 +vn -0.0095 -0.5166 -0.8562 +vn -0.0079 -0.4973 -0.8675 +vn -0.0121 -0.6607 -0.7506 +vn -0.0161 -0.7941 -0.6076 +vn -0.0196 -0.8948 -0.4460 +vn -0.0222 -0.9620 -0.2721 +vn -0.0237 -0.9955 -0.0914 +vn -0.0237 -0.9955 0.0914 +vn -0.0222 -0.9620 0.2721 +vn -0.0196 -0.8948 0.4460 +vn -0.0161 -0.7941 0.6076 +vn -0.0121 -0.6607 0.7506 +vn -0.0094 -0.5160 0.8566 +vn -0.0079 -0.4974 0.8675 +vn -0.0040 -0.3094 0.9509 +vn -0.0011 -0.1050 0.9945 +vn 0.0007 0.1050 0.9945 +vn 0.0012 0.3094 0.9509 +vn 0.0021 0.5185 0.8551 +vn 0.0011 0.4979 0.8673 +vn -0.0010 0.6607 0.7506 +vn -0.0028 0.7942 0.6077 +vn -0.0046 0.8950 0.4460 +vn -0.0059 0.9622 0.2721 +vn -0.0064 0.9958 0.0914 +vn -0.0064 0.9958 -0.0914 +vn -0.0059 0.9622 -0.2722 +vn -0.0046 0.8950 -0.4460 +vn -0.0028 0.7942 -0.6077 +vn -0.0010 0.6607 -0.7506 +vn 0.0006 0.5188 -0.8549 +vn 0.0011 0.4976 -0.8674 +vn 0.0012 0.3094 -0.9509 +vn 0.0007 0.1050 -0.9945 +vn 0.9237 -0.3831 -0.0009 +vn 0.9236 -0.3833 -0.0009 +vn 0.9363 -0.3512 -0.0006 +vn 0.9325 -0.3613 -0.0003 +vn 0.9324 -0.3613 0.0115 +vn 0.9299 -0.3674 0.0157 +vn 0.9254 -0.3788 0.0094 +vn 0.9238 -0.3828 -0.0009 +vn 0.9241 -0.3822 -0.0009 +vn 0.9300 -0.3673 0.0161 +vn 0.9323 -0.3614 0.0138 +vn 0.9246 -0.3810 -0.0009 +vn 0.9361 -0.3515 0.0112 +vn 0.9448 -0.3276 0.0066 +vn 0.9733 -0.2295 0.0002 +vn 0.9766 -0.2149 -0.0000 +vn 0.9767 -0.2148 -0.0000 +vn 0.9734 -0.2293 0.0002 +vn 0.9733 -0.2294 -0.0002 +vn 0.9739 -0.2268 0.0056 +vn 0.9740 -0.2263 0.0056 +vn 0.9760 -0.2179 0.0014 +vn 0.9747 -0.2233 0.0036 +vn 0.9741 -0.2258 -0.0065 +vn 0.9740 -0.2264 -0.0066 +vn 0.9736 -0.2283 0.0058 +vn 0.9973 -0.0735 -0.0022 +vn 0.9972 -0.0750 -0.0022 +vn 0.9974 -0.0713 -0.0022 +vn 0.9975 -0.0704 0.0001 +vn 0.9980 -0.0628 0.0001 +vn 0.9971 -0.0760 0.0003 +vn 0.9971 -0.0761 0.0003 +vn 0.9971 -0.0759 0.0003 +vn 0.9975 -0.0712 -0.0022 +vn 0.9974 -0.0725 -0.0033 +vn 0.9973 -0.0730 -0.0036 +vn 0.9971 -0.0758 0.0003 +vn 0.9972 -0.0753 0.0003 +vn 0.9974 -0.0713 -0.0027 +vn 0.9976 -0.0695 -0.0021 +vt 0.601212 0.686463 +vt 0.607212 0.688948 +vt 0.604727 0.694949 +vt 0.562350 0.784943 +vt 0.743961 0.782105 +vt 0.743961 0.784943 +vt 0.562350 0.782105 +vt 0.743961 0.779268 +vt 0.562350 0.779268 +vt 0.743961 0.776430 +vt 0.562350 0.776430 +vt 0.743961 0.773592 +vt 0.562350 0.765080 +vt 0.743961 0.762242 +vt 0.743961 0.765080 +vt 0.562350 0.762242 +vt 0.743961 0.759404 +vt 0.562350 0.759404 +vt 0.743961 0.756567 +vt 0.562350 0.756567 +vt 0.743961 0.753729 +vt 0.562350 0.753729 +vt 0.743961 0.750891 +vt 0.562350 0.750891 +vt 0.743961 0.748054 +vt 0.562350 0.748054 +vt 0.743961 0.745216 +vt 0.617321 0.697653 +vt 0.616723 0.705057 +vt 0.616723 0.697568 +vt 0.616125 0.705057 +vt 0.616125 0.697486 +vt 0.615527 0.705057 +vt 0.615527 0.697359 +vt 0.616059 0.697478 +vt 0.614929 0.705057 +vt 0.614929 0.697243 +vt 0.614331 0.705057 +vt 0.614331 0.697147 +vt 0.613733 0.705057 +vt 0.613733 0.697076 +vt 0.613135 0.705057 +vt 0.613135 0.697032 +vt 0.612537 0.705057 +vt 0.612537 0.697017 +vt 0.611939 0.697032 +vt 0.611939 0.705057 +vt 0.611341 0.697076 +vt 0.611341 0.705057 +vt 0.610743 0.697147 +vt 0.610743 0.705057 +vt 0.610145 0.697243 +vt 0.610145 0.705057 +vt 0.609547 0.697359 +vt 0.609547 0.705057 +vt 0.608949 0.697486 +vt 0.609015 0.697478 +vt 0.608949 0.705057 +vt 0.608351 0.697568 +vt 0.608351 0.705057 +vt 0.607753 0.697653 +vt 0.607753 0.705057 +vt 0.607155 0.697738 +vt 0.607155 0.705057 +vt 0.606557 0.697820 +vt 0.605959 0.705057 +vt 0.605959 0.697877 +vt 0.606177 0.697868 +vt 0.605361 0.697899 +vt 0.605361 0.705057 +vt 0.604763 0.697916 +vt 0.604763 0.705057 +vt 0.604165 0.697930 +vt 0.604165 0.705057 +vt 0.603567 0.697938 +vt 0.603567 0.705057 +vt 0.602969 0.697940 +vt 0.602372 0.705057 +vt 0.602372 0.697938 +vt 0.601774 0.705057 +vt 0.601774 0.697930 +vt 0.601176 0.705057 +vt 0.601176 0.697916 +vt 0.600578 0.705057 +vt 0.600578 0.697899 +vt 0.599980 0.705057 +vt 0.599980 0.697877 +vt 0.599382 0.705057 +vt 0.599382 0.697820 +vt 0.599762 0.697868 +vt 0.598784 0.705057 +vt 0.598784 0.697738 +vt 0.598186 0.705057 +vt 0.598186 0.697653 +vt 0.562350 0.773592 +vt 0.572667 0.772814 +vt 0.573697 0.772747 +vt 0.743961 0.770755 +vt 0.577845 0.770099 +vt 0.577947 0.769480 +vt 0.562350 0.767917 +vt 0.567489 0.768861 +vt 0.567387 0.769480 +vt 0.572667 0.766370 +vt 0.571637 0.766429 +vt 0.603865 0.695210 +vt 0.602969 0.695298 +vt 0.602074 0.695210 +vt 0.601212 0.694949 +vt 0.600418 0.694524 +vt 0.598727 0.692463 +vt 0.599722 0.693953 +vt 0.599151 0.693257 +vt 0.598465 0.691602 +vt 0.598377 0.690706 +vt 0.598465 0.689810 +vt 0.598727 0.688948 +vt 0.599151 0.688154 +vt 0.599722 0.687459 +vt 0.600418 0.686887 +vt 0.602074 0.686202 +vt 0.602969 0.686113 +vt 0.603865 0.686202 +vt 0.604727 0.686463 +vt 0.605521 0.686887 +vt 0.606217 0.687459 +vt 0.606788 0.688154 +vt 0.607474 0.689810 +vt 0.607562 0.690706 +vt 0.607474 0.691602 +vt 0.607212 0.692463 +vt 0.606788 0.693257 +vt 0.606217 0.693953 +vt 0.605521 0.694524 +vt 0.562350 0.745216 +vt 0.617321 0.705057 +vt 0.606557 0.705057 +vt 0.602969 0.705057 +vt 0.577057 0.771284 +vt 0.577491 0.770755 +vt 0.562350 0.770755 +vt 0.568277 0.771284 +vt 0.567842 0.770755 +vt 0.576399 0.771805 +vt 0.575599 0.772234 +vt 0.568932 0.771805 +vt 0.569733 0.772234 +vt 0.574686 0.772552 +vt 0.570646 0.772552 +vt 0.571637 0.772747 +vt 0.577545 0.768266 +vt 0.577233 0.767917 +vt 0.743961 0.767917 +vt 0.577545 0.770694 +vt 0.577845 0.768861 +vt 0.567789 0.770694 +vt 0.568098 0.767917 +vt 0.567789 0.768266 +vt 0.567489 0.770099 +vt 0.568277 0.767726 +vt 0.573697 0.766429 +vt 0.577057 0.767726 +vt 0.576399 0.767263 +vt 0.568932 0.767263 +vt 0.575599 0.766884 +vt 0.574686 0.766602 +vt 0.569733 0.766884 +vt 0.570646 0.766602 +s 1 +f 998/990/335 999/991/335 1000/992/335 +f 1001/993/336 1002/994/336 1003/995/336 +f 1004/996/337 1005/997/337 1002/994/337 +f 1006/998/338 1007/999/338 1005/997/338 +f 1008/1000/339 1009/1001/339 1007/999/339 +f 1010/1002/340 1011/1003/341 1012/1004/342 +f 1013/1005/343 1014/1006/343 1011/1003/343 +f 1015/1007/344 1016/1008/344 1014/1006/344 +f 1017/1009/345 1018/1010/345 1016/1008/345 +f 1019/1011/346 1020/1012/346 1018/1010/346 +f 1021/1013/347 1022/1014/347 1020/1012/347 +f 1023/1015/348 1024/1016/348 1022/1014/348 +f 1025/1017/349 1026/1018/350 1027/1019/351 +f 1027/1019/352 1000/1020/353 1028/1021/354 +f 1029/1022/355 1030/1023/356 1031/1024/357 +f 1030/1023/358 1032/1025/359 1033/1026/360 +f 1033/1026/361 1034/1027/362 1035/1028/363 +f 1035/1028/364 1036/1029/365 1037/1030/366 +f 1037/1030/367 1038/1031/368 1039/1032/369 +f 1039/1032/370 1040/1033/371 1041/1034/372 +f 1040/1033/373 1042/1035/374 1041/1034/375 +f 1043/1036/376 1044/1037/377 1042/1035/378 +f 999/1038/379 1045/1039/380 1044/1037/381 +f 1046/1040/382 1047/1041/383 1045/1039/384 +f 1048/1042/385 1049/1043/386 1047/1041/387 +f 1050/1044/388 1051/1045/389 1052/1046/390 +f 1053/1047/391 1054/1048/392 1051/1045/393 +f 1055/1049/394 1056/1050/395 1054/1048/396 +f 1057/1051/397 1058/1052/398 1056/1050/399 +f 1059/1053/400 1060/1054/401 1058/1052/402 +f 1061/1055/403 1062/1056/404 1063/1057/405 +f 1061/1055/406 1064/1058/407 1062/1056/408 +f 1065/1059/409 1066/1060/410 1064/1058/411 +f 1067/1061/412 1068/1062/413 1066/1060/414 +f 1069/1063/415 1070/1064/416 1068/1062/417 +f 1071/1065/418 1072/1066/419 1070/1064/420 +f 1072/1066/421 1073/1067/422 1074/1068/423 +f 1074/1068/424 1075/1069/425 1076/1070/426 +f 1076/1070/427 1077/1071/428 1078/1072/429 +f 1078/1072/430 1079/1073/431 1080/1074/432 +f 1080/1074/433 1081/1075/434 1082/1076/435 +f 1083/1077/436 1084/1078/437 1085/1079/438 +f 1084/1078/439 1086/1080/440 1087/1081/441 +f 1087/1081/442 1088/1082/443 1025/1083/444 +f 1089/1084/445 1041/1085/446 1042/1086/447 +f 1090/1087/448 1054/1088/448 1056/1089/448 +f 1091/1090/449 1087/1091/450 1025/1092/451 +f 1010/1002/452 1072/1093/453 1074/1094/454 +f 1000/992/335 1026/1095/335 1088/1096/335 +f 1088/1096/335 1086/1097/335 1083/1098/335 +f 1083/1098/335 1081/1099/335 1075/1100/335 +f 1081/1099/335 1079/1101/335 1075/1100/335 +f 1079/1101/335 1077/1102/335 1075/1100/335 +f 1075/1100/335 1073/1103/335 1092/1104/335 +f 1092/1104/335 1071/1105/335 1069/1106/335 +f 1069/1106/335 1067/1107/335 1065/1108/335 +f 1065/1108/335 1061/1109/455 998/990/335 +f 998/990/335 1059/1110/335 1057/1111/335 +f 1057/1111/335 1055/1112/335 1053/1113/335 +f 1053/1113/335 1050/1114/335 999/991/335 +f 1050/1114/335 1048/1115/335 999/991/335 +f 1048/1115/335 1046/1116/335 999/991/335 +f 999/991/335 1043/1117/335 1040/1118/335 +f 1040/1118/335 1038/1119/335 1036/1120/335 +f 1036/1120/335 1034/1121/335 1000/992/335 +f 1034/1121/335 1032/1122/335 1000/992/335 +f 1032/1122/335 1029/1123/456 1000/992/335 +f 1000/992/335 1088/1096/335 1075/1100/335 +f 1088/1096/335 1083/1098/335 1075/1100/335 +f 1075/1100/335 1092/1104/335 1069/1106/335 +f 1069/1106/335 1065/1108/335 1075/1100/335 +f 1065/1108/335 998/990/335 1075/1100/335 +f 998/990/335 1057/1111/335 999/991/335 +f 1057/1111/335 1053/1113/335 999/991/335 +f 999/991/335 1040/1118/335 1000/992/335 +f 1040/1118/335 1036/1120/335 1000/992/335 +f 1000/992/335 1075/1100/335 998/990/335 +f 1001/993/336 1004/996/336 1002/994/336 +f 1004/996/337 1006/998/337 1005/997/337 +f 1006/998/338 1008/1000/338 1007/999/338 +f 1008/1000/339 1089/1084/339 1009/1001/339 +f 1010/1002/340 1013/1005/457 1011/1003/341 +f 1013/1005/343 1015/1007/343 1014/1006/343 +f 1015/1007/344 1017/1009/344 1016/1008/344 +f 1017/1009/345 1019/1011/345 1018/1010/345 +f 1019/1011/346 1021/1013/346 1020/1012/346 +f 1021/1013/347 1023/1015/347 1022/1014/347 +f 1023/1015/348 1093/1124/348 1024/1016/348 +f 1025/1017/349 1088/1125/458 1026/1018/350 +f 1027/1019/352 1026/1018/459 1000/1020/353 +f 1031/1024/357 1028/1021/460 1029/1022/355 +f 1028/1021/460 1000/1020/461 1029/1022/355 +f 1030/1023/358 1029/1022/462 1032/1025/359 +f 1033/1026/361 1032/1025/463 1034/1027/362 +f 1035/1028/364 1034/1027/464 1036/1029/365 +f 1037/1030/367 1036/1029/465 1038/1031/368 +f 1039/1032/370 1038/1031/466 1040/1033/371 +f 1040/1033/373 1043/1036/467 1042/1035/374 +f 1043/1036/376 999/1038/468 1044/1037/377 +f 999/1038/379 1046/1040/469 1045/1039/380 +f 1046/1040/382 1048/1042/470 1047/1041/383 +f 1048/1042/385 1050/1044/471 1049/1043/386 +f 1052/1046/390 1049/1043/472 1050/1044/388 +f 1050/1044/388 1053/1047/473 1051/1045/389 +f 1053/1047/391 1055/1049/474 1054/1048/392 +f 1055/1049/394 1057/1051/475 1056/1050/395 +f 1057/1051/397 1059/1053/476 1058/1052/398 +f 1059/1053/400 998/1126/477 1060/1054/401 +f 1063/1057/405 1060/1054/478 998/1126/479 +f 998/1126/479 1061/1055/403 1063/1057/405 +f 1061/1055/406 1065/1059/480 1064/1058/407 +f 1065/1059/409 1067/1061/481 1066/1060/410 +f 1067/1061/412 1069/1063/482 1068/1062/413 +f 1069/1063/415 1071/1065/483 1070/1064/416 +f 1071/1065/418 1092/1127/484 1072/1066/419 +f 1072/1066/421 1092/1127/485 1073/1067/422 +f 1074/1068/424 1073/1067/486 1075/1069/425 +f 1076/1070/427 1075/1069/487 1077/1071/428 +f 1078/1072/430 1077/1071/488 1079/1073/431 +f 1080/1074/433 1079/1073/489 1081/1075/434 +f 1085/1079/438 1082/1076/490 1081/1075/491 +f 1081/1075/491 1083/1077/436 1085/1079/438 +f 1084/1078/439 1083/1077/492 1086/1080/440 +f 1087/1081/442 1086/1080/493 1088/1082/443 +f 1049/1128/494 1052/1129/495 1009/1001/496 +f 1052/1129/497 1090/1087/497 1009/1001/497 +f 1009/1001/496 1089/1084/445 1042/1086/447 +f 1089/1084/445 1094/1130/498 1030/1131/499 +f 1094/1130/500 1031/1132/500 1030/1131/500 +f 1047/1133/501 1049/1128/494 1009/1001/496 +f 1045/1134/502 1047/1133/501 1009/1001/496 +f 1089/1084/445 1030/1131/499 1033/1135/503 +f 1089/1084/445 1033/1135/503 1035/1136/504 +f 1044/1137/505 1045/1134/502 1009/1001/496 +f 1042/1086/447 1044/1137/505 1009/1001/496 +f 1089/1084/445 1035/1136/504 1037/1138/506 +f 1089/1084/445 1037/1138/506 1039/1139/507 +f 1089/1084/445 1039/1139/507 1041/1085/446 +f 1060/1140/508 1063/1141/508 1095/1142/509 +f 1095/1142/509 1090/1087/510 1056/1089/511 +f 1090/1087/448 1052/1129/512 1051/1143/512 +f 1090/1087/448 1051/1143/512 1054/1088/448 +f 1058/1144/508 1060/1140/508 1095/1142/509 +f 1056/1089/511 1058/1144/508 1095/1142/509 +f 1028/1145/513 1031/1132/514 1094/1130/515 +f 1094/1130/515 1091/1090/510 1025/1092/516 +f 1091/1090/449 1085/1146/517 1084/1147/518 +f 1091/1090/449 1084/1147/518 1087/1091/450 +f 1027/1148/519 1028/1145/513 1094/1130/515 +f 1025/1092/516 1027/1148/519 1094/1130/515 +f 1082/1149/520 1085/1146/521 1091/1090/522 +f 1010/1002/452 1012/1004/523 1070/1150/524 +f 1012/1004/523 1095/1142/523 1063/1141/525 +f 1010/1002/452 1070/1150/524 1072/1093/453 +f 1063/1141/525 1062/1151/526 1012/1004/523 +f 1062/1151/526 1064/1152/527 1012/1004/523 +f 1082/1149/520 1091/1090/522 1010/1002/528 +f 1080/1153/529 1082/1149/530 1010/1002/452 +f 1064/1152/527 1066/1154/531 1012/1004/523 +f 1066/1154/531 1068/1155/532 1012/1004/523 +f 1078/1156/533 1080/1153/529 1010/1002/452 +f 1076/1157/534 1078/1156/533 1010/1002/452 +f 1068/1155/532 1070/1150/524 1012/1004/523 +f 1074/1094/454 1076/1157/534 1010/1002/452 +l 1001 1096 +o Drum +v -0.685426 -7.905577 2.210387 +v -0.799941 -8.555026 0.065820 +v 0.831222 -7.872484 2.210387 +v 0.973957 -8.516319 0.065820 +v 2.219756 -7.261513 2.210387 +v 2.598012 -7.801718 0.065820 +v 3.268788 -6.165681 2.210387 +v 3.824977 -6.520013 0.065820 +v 3.818609 -4.751818 2.210387 +v 4.468058 -4.866333 0.065820 +v 3.785516 -3.235170 2.210387 +v 4.429352 -3.092435 0.065821 +v 3.174545 -1.846635 2.210387 +v 3.714751 -1.468380 0.065821 +v 2.078714 -0.797604 2.210387 +v 2.433046 -0.241414 0.065821 +v 0.664850 -0.247783 2.210387 +v 0.304407 0.461593 0.065821 +v -0.851797 -0.280876 2.210387 +v -0.388448 0.446475 0.065821 +v -2.240333 -0.891846 2.210387 +v -2.618588 -0.351641 0.065821 +v -3.289364 -1.987678 2.210387 +v -3.845553 -1.633346 0.065821 +v -3.839185 -3.401542 2.210387 +v -4.488634 -3.287026 0.065821 +v -3.806092 -4.918190 2.210387 +v -4.449928 -5.060923 0.065820 +v -3.195122 -6.306724 2.210387 +v -3.735327 -6.684979 0.065820 +v -2.099290 -7.355755 2.210387 +v -2.453621 -7.911944 0.065820 +v 0.841415 -7.918458 -0.801292 +v -0.693603 -7.951953 -0.801292 +v 2.246768 -7.300088 -0.801292 +v 3.308505 -6.190983 -0.801292 +v 3.864985 -4.759995 -0.801292 +v 3.831492 -3.224977 -0.801292 +v 3.213122 -1.819624 -0.801292 +v 2.104017 -0.757886 -0.801292 +v 0.673028 -0.201405 -0.801292 +v -0.861990 -0.234899 -0.801292 +v -2.267343 -0.853270 -0.801292 +v -3.329081 -1.962375 -0.801292 +v -3.885562 -3.393364 -0.801292 +v -3.852067 -4.928381 -0.801292 +v -3.233697 -6.333735 -0.801292 +v -2.124592 -7.395471 -0.801292 +v -0.869009 -8.946727 2.210387 +v 1.060044 -8.904634 2.210387 +v 2.826147 -8.127530 2.210387 +v 4.160430 -6.733721 2.210387 +v 4.859760 -4.935401 2.210387 +v 4.817667 -3.006348 2.210387 +v 4.040561 -1.240244 2.210387 +v 2.646753 0.094039 2.210387 +v 0.331383 0.614584 2.210387 +v -0.422072 0.598144 2.210387 +v -2.846724 -0.025830 2.210387 +v -4.181007 -1.419639 2.210387 +v -4.880335 -3.217959 2.210387 +v -4.838243 -5.147012 2.210387 +v -4.061139 -6.913116 2.210387 +v -2.667329 -8.247398 2.210387 +v -0.592565 -7.378938 2.511454 +v 0.715478 -7.350397 2.511454 +v 1.913029 -6.823462 2.511454 +v 2.817774 -5.878354 2.511454 +v 3.291972 -4.658957 2.511454 +v 3.263430 -3.350914 2.511454 +v 2.736494 -2.153362 2.511454 +v 1.791387 -1.248617 2.511454 +v 0.571989 -0.774420 2.511454 +v -0.736054 -0.802961 2.511454 +v -1.933606 -1.329897 2.511454 +v -2.838351 -2.275005 2.511454 +v -3.312548 -3.494402 2.511454 +v -3.284007 -4.802446 2.511454 +v -2.757071 -5.999998 2.511454 +v -1.811962 -6.904742 2.511454 +v 0.288104 1.947729 0.012726 +v 0.315081 1.999833 2.157292 +v -0.438374 1.983392 2.157292 +v -0.404750 1.932611 0.012726 +vn -0.1707 -0.9683 -0.1824 +vn 0.2128 -0.9599 -0.1824 +vn 0.5640 -0.8054 -0.1824 +vn 0.8292 -0.5283 -0.1824 +vn 0.8293 -0.5283 -0.1824 +vn 0.9683 -0.1707 -0.1824 +vn 0.9599 0.2128 -0.1824 +vn 0.8054 0.5640 -0.1824 +vn 0.6803 0.7107 -0.1790 +vn 0.2621 0.9569 -0.1251 +vn 0.2660 0.9563 -0.1210 +vn 0.2161 0.9611 -0.1719 +vn -0.9998 -0.0120 -0.0152 +vn -0.9998 -0.0118 -0.0151 +vn -0.9998 -0.0115 -0.0149 +vn -0.2939 0.9484 -0.1190 +vn -0.2871 0.9495 -0.1265 +vn -0.2456 0.9542 -0.1711 +vn -0.7107 0.6803 -0.1790 +vn -0.8293 0.5283 -0.1824 +vn -0.8292 0.5283 -0.1824 +vn -0.9683 0.1707 -0.1824 +vn -0.9599 -0.2128 -0.1824 +vn -0.8054 -0.5640 -0.1824 +vn 0.6691 0.4685 -0.5769 +vn 0.7975 0.1768 -0.5769 +vn -0.5283 -0.8293 -0.1824 +vn -0.5283 -0.8292 -0.1824 +vn 0.4790 0.1062 0.8714 +vn 0.4019 0.2814 0.8714 +vn -0.0000 -0.0000 -1.0000 +vn -0.4649 0.6832 -0.5631 +vn -0.6889 0.4389 -0.5769 +vn -0.4389 -0.6889 -0.5769 +vn -0.1418 -0.8044 -0.5769 +vn 0.8044 -0.1418 -0.5769 +vn 0.6889 -0.4389 -0.5769 +vn -0.1094 0.8097 -0.5765 +vn 0.1691 0.8078 -0.5646 +vn -0.2080 0.8092 -0.5495 +vn -0.7975 -0.1768 -0.5769 +vn -0.6691 -0.4685 -0.5769 +vn 0.4685 -0.6691 -0.5769 +vn 0.1768 -0.7975 -0.5769 +vn 0.4389 0.6889 -0.5769 +vn 0.4358 0.6991 -0.5668 +vn -0.8044 0.1418 -0.5769 +vn -0.4685 0.6691 -0.5769 +vn 0.0874 0.8089 -0.5814 +vn -0.0000 -0.0000 1.0000 +vn -0.0003 0.0135 0.9999 +vn -0.0003 0.0134 0.9999 +vn -0.4019 -0.2814 0.8714 +vn -0.4790 -0.1062 0.8714 +vn 0.2636 0.4138 0.8714 +vn -0.2636 -0.4138 0.8714 +vn 0.0852 0.4831 0.8714 +vn -0.0852 -0.4831 0.8714 +vn 0.1062 -0.4790 0.8714 +vn -0.1062 0.4790 0.8714 +vn 0.2814 -0.4019 0.8714 +vn -0.2814 0.4019 0.8714 +vn 0.4138 -0.2636 0.8714 +vn -0.4138 0.2636 0.8714 +vn 0.4831 -0.0852 0.8714 +vn -0.4831 0.0852 0.8714 +vn -0.0218 0.9995 -0.0240 +vn -0.0008 0.0383 0.9993 +vn 0.0008 -0.0357 -0.9994 +vn 0.9999 0.0110 -0.0130 +vn 0.9999 0.0108 -0.0132 +vn 0.9999 0.0113 -0.0129 +vn 0.3128 0.9471 -0.0715 +vn -0.9998 -0.0124 -0.0154 +vn -0.3361 0.9391 -0.0717 +vn 0.9999 0.0105 -0.0133 +vt 0.524803 0.666220 +s 1 +f 1098/1158/535 1146/1158/536 1145/1158/535 +f 1100/1158/536 1147/1158/537 1146/1158/536 +f 1102/1158/537 1148/1158/538 1147/1158/537 +f 1104/1158/539 1149/1158/540 1148/1158/538 +f 1106/1158/540 1150/1158/541 1149/1158/540 +f 1108/1158/541 1151/1158/542 1150/1158/541 +f 1151/1158/542 1112/1158/543 1152/1158/543 +f 1112/1158/544 1153/1158/545 1152/1158/546 +f 1154/1158/547 1180/1158/548 1116/1158/549 +f 1154/1158/550 1118/1158/551 1155/1158/552 +f 1155/1158/553 1120/1158/554 1156/1158/555 +f 1120/1158/554 1157/1158/556 1156/1158/555 +f 1157/1158/556 1124/1158/557 1158/1158/557 +f 1158/1158/557 1126/1158/558 1159/1158/558 +f 1110/1158/559 1134/1158/560 1135/1158/559 +f 1126/1158/558 1160/1158/561 1159/1158/558 +f 1128/1158/562 1145/1158/535 1160/1158/561 +f 1107/1158/563 1167/1158/564 1166/1158/563 +f 1139/1158/565 1135/1158/565 1131/1158/565 +f 1118/1158/566 1140/1158/567 1120/1158/567 +f 1128/1158/568 1130/1158/569 1098/1158/569 +f 1106/1158/570 1132/1158/571 1133/1158/570 +f 1116/1158/572 1137/1158/573 1138/1158/574 +f 1124/1158/575 1143/1158/576 1126/1158/576 +f 1102/1158/577 1129/1158/578 1131/1158/577 +f 1110/1158/559 1136/1158/579 1112/1158/580 +f 1120/1158/567 1141/1158/581 1122/1158/581 +f 1106/1158/570 1134/1158/560 1108/1158/560 +f 1118/1158/566 1138/1158/574 1139/1158/582 +f 1126/1158/576 1144/1158/568 1128/1158/568 +f 1104/1158/571 1131/1158/577 1132/1158/571 +f 1112/1158/580 1137/1158/573 1114/1158/583 +f 1100/1158/578 1130/1158/569 1129/1158/578 +f 1122/1158/581 1142/1158/575 1124/1158/575 +f 1099/1158/584 1145/1158/584 1146/1158/584 +f 1099/1158/584 1147/1158/584 1101/1158/584 +f 1101/1158/584 1148/1158/584 1103/1158/584 +f 1103/1158/584 1149/1158/584 1105/1158/584 +f 1105/1158/584 1150/1158/584 1107/1158/584 +f 1107/1158/584 1151/1158/584 1109/1158/584 +f 1111/1158/584 1151/1158/584 1152/1158/584 +f 1113/1158/584 1152/1158/584 1153/1158/585 +f 1113/1158/584 1154/1158/586 1115/1158/584 +f 1115/1158/584 1155/1158/584 1117/1158/584 +f 1117/1158/584 1156/1158/584 1119/1158/584 +f 1119/1158/584 1157/1158/584 1121/1158/584 +f 1121/1158/584 1158/1158/584 1123/1158/584 +f 1123/1158/584 1159/1158/584 1125/1158/584 +f 1127/1158/584 1159/1158/584 1160/1158/584 +f 1097/1158/584 1160/1158/584 1145/1158/584 +f 1168/1158/584 1172/1158/584 1176/1158/584 +f 1125/1158/587 1174/1158/588 1123/1158/588 +f 1109/1158/564 1168/1158/589 1167/1158/564 +f 1127/1158/590 1175/1158/587 1125/1158/587 +f 1113/1158/591 1168/1158/589 1111/1158/589 +f 1097/1158/592 1162/1158/593 1161/1158/592 +f 1097/1158/592 1176/1158/590 1127/1158/590 +f 1113/1158/591 1170/1158/594 1169/1158/591 +f 1099/1158/593 1163/1158/595 1162/1158/593 +f 1117/1158/596 1170/1158/594 1115/1158/594 +f 1101/1158/595 1164/1158/597 1163/1158/595 +f 1119/1158/598 1171/1158/596 1117/1158/596 +f 1105/1158/599 1164/1158/597 1103/1158/597 +f 1121/1158/600 1172/1158/598 1119/1158/598 +f 1107/1158/563 1165/1158/599 1105/1158/599 +f 1121/1158/600 1174/1158/588 1173/1158/600 +f 1178/1158/601 1180/1158/601 1179/1158/601 +f 1153/1158/585 1179/1158/602 1154/1158/586 +f 1114/1158/603 1180/1158/603 1177/1158/603 +f 1153/1158/604 1177/1158/605 1178/1158/606 +f 1098/1158/535 1100/1158/536 1146/1158/536 +f 1100/1158/536 1102/1158/537 1147/1158/537 +f 1102/1158/537 1104/1158/539 1148/1158/538 +f 1104/1158/539 1106/1158/540 1149/1158/540 +f 1106/1158/540 1108/1158/541 1150/1158/541 +f 1108/1158/541 1110/1158/542 1151/1158/542 +f 1151/1158/542 1110/1158/542 1112/1158/543 +f 1112/1158/544 1114/1158/607 1153/1158/545 +f 1154/1158/547 1179/1158/608 1180/1158/548 +f 1154/1158/550 1116/1158/609 1118/1158/551 +f 1155/1158/553 1118/1158/553 1120/1158/554 +f 1120/1158/554 1122/1158/556 1157/1158/556 +f 1157/1158/556 1122/1158/556 1124/1158/557 +f 1158/1158/557 1124/1158/557 1126/1158/558 +f 1110/1158/559 1108/1158/560 1134/1158/560 +f 1126/1158/558 1128/1158/562 1160/1158/561 +f 1128/1158/562 1098/1158/535 1145/1158/535 +f 1107/1158/563 1109/1158/564 1167/1158/564 +f 1131/1158/565 1129/1158/565 1130/1158/565 +f 1130/1158/565 1144/1158/565 1143/1158/565 +f 1143/1158/565 1142/1158/565 1141/1158/565 +f 1141/1158/565 1140/1158/565 1139/1158/565 +f 1139/1158/565 1138/1158/565 1137/1158/565 +f 1137/1158/565 1136/1158/565 1135/1158/565 +f 1135/1158/565 1134/1158/565 1133/1158/565 +f 1133/1158/565 1132/1158/565 1131/1158/565 +f 1131/1158/565 1130/1158/565 1143/1158/565 +f 1143/1158/565 1141/1158/565 1139/1158/565 +f 1139/1158/565 1137/1158/565 1135/1158/565 +f 1135/1158/565 1133/1158/565 1131/1158/565 +f 1131/1158/565 1143/1158/565 1139/1158/565 +f 1118/1158/566 1139/1158/582 1140/1158/567 +f 1128/1158/568 1144/1158/568 1130/1158/569 +f 1106/1158/570 1104/1158/571 1132/1158/571 +f 1116/1158/572 1114/1158/583 1137/1158/573 +f 1124/1158/575 1142/1158/575 1143/1158/576 +f 1102/1158/577 1100/1158/578 1129/1158/578 +f 1110/1158/559 1135/1158/559 1136/1158/579 +f 1120/1158/567 1140/1158/567 1141/1158/581 +f 1106/1158/570 1133/1158/570 1134/1158/560 +f 1118/1158/566 1116/1158/572 1138/1158/574 +f 1126/1158/576 1143/1158/576 1144/1158/568 +f 1104/1158/571 1102/1158/577 1131/1158/577 +f 1112/1158/580 1136/1158/579 1137/1158/573 +f 1100/1158/578 1098/1158/569 1130/1158/569 +f 1122/1158/581 1141/1158/581 1142/1158/575 +f 1099/1158/584 1097/1158/584 1145/1158/584 +f 1099/1158/584 1146/1158/584 1147/1158/584 +f 1101/1158/584 1147/1158/584 1148/1158/584 +f 1103/1158/584 1148/1158/584 1149/1158/584 +f 1105/1158/584 1149/1158/584 1150/1158/584 +f 1107/1158/584 1150/1158/584 1151/1158/584 +f 1111/1158/584 1109/1158/584 1151/1158/584 +f 1113/1158/584 1111/1158/584 1152/1158/584 +f 1113/1158/584 1153/1158/585 1154/1158/586 +f 1115/1158/584 1154/1158/586 1155/1158/584 +f 1117/1158/584 1155/1158/584 1156/1158/584 +f 1119/1158/584 1156/1158/584 1157/1158/584 +f 1121/1158/584 1157/1158/584 1158/1158/584 +f 1123/1158/584 1158/1158/584 1159/1158/584 +f 1127/1158/584 1125/1158/584 1159/1158/584 +f 1097/1158/584 1127/1158/584 1160/1158/584 +f 1176/1158/584 1161/1158/584 1162/1158/584 +f 1162/1158/584 1163/1158/584 1164/1158/584 +f 1164/1158/584 1165/1158/584 1166/1158/584 +f 1166/1158/584 1167/1158/584 1168/1158/584 +f 1168/1158/584 1169/1158/584 1170/1158/584 +f 1170/1158/584 1171/1158/584 1172/1158/584 +f 1172/1158/584 1173/1158/584 1174/1158/584 +f 1174/1158/584 1175/1158/584 1176/1158/584 +f 1176/1158/584 1162/1158/584 1164/1158/584 +f 1164/1158/584 1166/1158/584 1168/1158/584 +f 1168/1158/584 1170/1158/584 1172/1158/584 +f 1172/1158/584 1174/1158/584 1176/1158/584 +f 1176/1158/584 1164/1158/584 1168/1158/584 +f 1125/1158/587 1175/1158/587 1174/1158/588 +f 1109/1158/564 1111/1158/589 1168/1158/589 +f 1127/1158/590 1176/1158/590 1175/1158/587 +f 1113/1158/591 1169/1158/591 1168/1158/589 +f 1097/1158/592 1099/1158/593 1162/1158/593 +f 1097/1158/592 1161/1158/592 1176/1158/590 +f 1113/1158/591 1115/1158/594 1170/1158/594 +f 1099/1158/593 1101/1158/595 1163/1158/595 +f 1117/1158/596 1171/1158/596 1170/1158/594 +f 1101/1158/595 1103/1158/597 1164/1158/597 +f 1119/1158/598 1172/1158/598 1171/1158/596 +f 1105/1158/599 1165/1158/599 1164/1158/597 +f 1121/1158/600 1173/1158/600 1172/1158/598 +f 1107/1158/563 1166/1158/563 1165/1158/599 +f 1121/1158/600 1123/1158/588 1174/1158/588 +f 1178/1158/601 1177/1158/601 1180/1158/601 +f 1153/1158/585 1178/1158/602 1179/1158/602 +f 1114/1158/603 1116/1158/603 1180/1158/603 +f 1153/1158/604 1114/1158/610 1177/1158/605 diff --git a/src/main/resources/assets/hbm/models/weapons/bio_revolver.obj b/src/main/resources/assets/hbm/models/weapons/bio_revolver.obj index 08d9f49ba..c19fd8ec5 100644 --- a/src/main/resources/assets/hbm/models/weapons/bio_revolver.obj +++ b/src/main/resources/assets/hbm/models/weapons/bio_revolver.obj @@ -384,7 +384,7 @@ vn 0.0000 0.7071 0.7071 vn 0.3827 -0.9239 0.0000 vn -0.3827 -0.9239 0.0000 vn -0.9239 0.3827 0.0000 -vn -0.9239 -0.3827 0.0000 +vn -0.3827 0.9239 0.0000 vn 0.9239 -0.3827 0.0000 vn 0.0000 -0.7071 -0.7071 vn 0.0000 -0.7071 0.7071 @@ -393,6 +393,8 @@ vn 0.0000 -0.5847 0.8112 vn 0.0000 -0.8112 0.5847 vn 0.0000 -0.4472 0.8944 vn 0.0000 -0.8944 0.4472 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 0.9239 0.0000 vn 0.9239 0.3827 0.0000 s off f 2/1/1 16/2/1 4/3/1 @@ -548,11 +550,11 @@ f 82/183/15 75/175/7 74/177/15 f 121/184/30 124/185/31 123/186/31 f 122/187/30 117/188/32 118/189/32 f 123/186/31 120/190/33 119/191/33 -f 128/192/25 134/193/24 126/145/24 -f 131/194/26 133/195/34 125/196/34 -f 131/194/26 140/197/25 132/198/25 -f 130/144/23 136/199/25 128/192/25 -f 125/196/34 135/200/26 127/148/26 +f 128/192/34 134/193/24 126/145/24 +f 131/194/35 133/195/36 125/196/36 +f 140/197/25 131/194/35 132/198/25 +f 130/144/23 136/199/34 128/192/34 +f 125/196/36 135/200/26 127/148/26 f 129/142/22 137/149/22 138/143/23 f 126/145/24 134/193/24 140/146/25 f 127/148/26 135/200/26 137/149/22 @@ -575,11 +577,11 @@ f 82/183/15 83/173/7 75/175/7 f 121/184/30 122/187/30 124/185/31 f 122/187/30 121/184/30 117/188/32 f 123/186/31 124/185/31 120/190/33 -f 128/192/25 136/199/25 134/193/24 -f 131/194/26 139/203/26 133/195/34 -f 131/194/26 139/203/26 140/197/25 -f 130/144/23 138/143/23 136/199/25 -f 125/196/34 133/195/34 135/200/26 +f 128/192/34 136/199/34 134/193/24 +f 131/194/35 139/203/35 133/195/36 +f 140/197/25 139/203/35 131/194/35 +f 130/144/23 138/143/23 136/199/34 +f 125/196/36 133/195/36 135/200/26 o Latch v -0.500000 2.500400 -0.875000 v 0.500000 2.500400 -0.875000 @@ -665,54 +667,54 @@ vn 0.0000 0.0000 -1.0000 vn 0.0000 -0.9487 0.3162 vn 0.0000 0.7071 -0.7071 s off -f 158/204/35 159/205/35 157/206/35 -f 164/207/36 161/208/36 162/209/36 -f 159/205/37 162/210/37 157/206/37 -f 157/206/38 161/208/38 158/204/38 -f 158/204/39 163/211/39 160/212/39 -f 163/211/39 165/213/39 160/212/39 -f 179/214/38 171/215/38 167/216/38 -f 160/212/40 166/217/40 159/205/40 -f 164/218/37 166/217/37 168/219/37 -f 180/220/36 181/221/36 182/222/36 -f 169/223/39 165/224/39 167/216/39 -f 173/225/37 168/226/37 170/227/37 -f 171/228/36 176/229/36 172/230/36 -f 174/231/36 177/232/36 173/233/36 -f 178/234/39 181/235/39 177/232/39 -f 175/236/37 180/237/37 176/229/37 -f 177/238/38 168/226/38 173/225/38 -f 182/239/41 174/240/41 170/227/41 -f 176/229/41 169/223/41 172/241/41 -f 179/242/42 167/243/42 163/244/42 -f 165/213/43 169/223/43 180/237/43 -f 158/204/35 160/212/35 159/205/35 -f 164/207/36 163/244/36 161/208/36 -f 159/205/37 164/218/37 162/210/37 -f 157/206/38 162/209/38 161/208/38 -f 158/204/39 161/245/39 163/211/39 -f 163/211/39 167/246/39 165/213/39 -f 179/214/38 175/247/38 171/215/38 -f 160/212/40 165/213/40 166/217/40 -f 164/218/37 159/205/37 166/217/37 -f 180/220/36 179/242/36 181/221/36 -f 167/216/39 171/215/39 172/241/39 -f 172/241/39 169/223/39 167/216/39 -f 170/227/37 174/240/37 173/225/37 -f 168/226/37 166/248/37 170/227/37 -f 171/228/36 175/236/36 176/229/36 -f 174/231/36 178/234/36 177/232/36 -f 178/234/39 182/239/39 181/235/39 -f 175/236/37 179/249/37 180/237/37 -f 177/238/38 181/250/38 168/226/38 -f 182/239/41 178/234/41 174/240/41 -f 176/229/41 180/237/41 169/223/41 -f 163/244/42 164/207/42 181/221/42 -f 164/207/42 168/251/42 181/221/42 -f 181/221/42 179/242/42 163/244/42 -f 180/237/43 182/239/43 165/213/43 -f 182/239/43 170/227/43 166/217/43 -f 165/213/43 182/239/43 166/217/43 +f 158/204/37 159/205/37 157/206/37 +f 164/207/38 161/208/38 162/209/38 +f 159/205/39 162/210/39 157/206/39 +f 157/206/40 161/208/40 158/204/40 +f 158/204/41 163/211/41 160/212/41 +f 163/211/41 165/213/41 160/212/41 +f 179/214/40 171/215/40 167/216/40 +f 160/212/42 166/217/42 159/205/42 +f 164/218/39 166/217/39 168/219/39 +f 180/220/38 181/221/38 182/222/38 +f 169/223/41 165/224/41 167/216/41 +f 173/225/39 168/226/39 170/227/39 +f 171/228/38 176/229/38 172/230/38 +f 174/231/38 177/232/38 173/233/38 +f 178/234/41 181/235/41 177/232/41 +f 175/236/39 180/237/39 176/229/39 +f 177/238/40 168/226/40 173/225/40 +f 182/239/43 174/240/43 170/227/43 +f 176/229/43 169/223/43 172/241/43 +f 179/242/44 167/243/44 163/244/44 +f 165/213/45 169/223/45 180/237/45 +f 158/204/37 160/212/37 159/205/37 +f 164/207/38 163/244/38 161/208/38 +f 159/205/39 164/218/39 162/210/39 +f 157/206/40 162/209/40 161/208/40 +f 158/204/41 161/245/41 163/211/41 +f 163/211/41 167/246/41 165/213/41 +f 179/214/40 175/247/40 171/215/40 +f 160/212/42 165/213/42 166/217/42 +f 164/218/39 159/205/39 166/217/39 +f 180/220/38 179/242/38 181/221/38 +f 167/216/41 171/215/41 172/241/41 +f 172/241/41 169/223/41 167/216/41 +f 170/227/39 174/240/39 173/225/39 +f 168/226/39 166/248/39 170/227/39 +f 171/228/38 175/236/38 176/229/38 +f 174/231/38 178/234/38 177/232/38 +f 178/234/41 182/239/41 181/235/41 +f 175/236/39 179/249/39 180/237/39 +f 177/238/40 181/250/40 168/226/40 +f 182/239/43 178/234/43 174/240/43 +f 176/229/43 180/237/43 169/223/43 +f 163/244/44 164/207/44 181/221/44 +f 164/207/44 168/251/44 181/221/44 +f 181/221/44 179/242/44 163/244/44 +f 180/237/45 182/239/45 165/213/45 +f 182/239/45 170/227/45 166/217/45 +f 165/213/45 182/239/45 166/217/45 o Hammer v 0.125000 1.750400 -4.125000 v -0.125000 1.750400 -4.125000 @@ -788,42 +790,42 @@ vn 1.0000 0.0000 0.0000 vn 0.0000 -1.0000 0.0000 vn 0.0000 0.0000 1.0000 s off -f 185/252/44 184/253/44 183/254/44 -f 187/255/45 186/256/45 185/252/45 -f 189/257/46 188/258/46 187/259/46 -f 191/260/47 190/261/47 189/262/47 -f 193/263/48 192/264/48 191/260/48 -f 203/265/49 184/266/49 186/267/49 -f 190/268/49 194/269/49 188/270/49 -f 206/271/50 187/259/50 185/272/50 -f 206/271/51 194/273/51 193/263/51 -f 202/274/49 196/275/49 198/276/49 -f 201/277/47 198/276/47 197/278/47 -f 199/279/50 197/278/50 195/280/50 -f 196/275/52 199/281/52 195/282/52 -f 205/283/52 204/284/52 203/265/52 -f 184/253/46 204/284/46 183/254/46 -f 193/263/50 191/285/50 189/257/50 -f 185/252/44 186/256/44 184/253/44 -f 187/255/45 188/286/45 186/256/45 -f 189/257/46 190/287/46 188/258/46 -f 191/260/47 192/264/47 190/261/47 -f 193/263/48 194/273/48 192/264/48 -f 186/267/49 188/270/49 205/283/49 -f 205/283/49 203/265/49 186/267/49 -f 192/288/49 194/269/49 190/268/49 -f 194/269/49 205/283/49 188/270/49 -f 185/272/50 183/289/50 204/284/50 -f 204/284/50 206/271/50 185/272/50 -f 206/271/51 205/290/51 194/273/51 -f 202/274/49 200/291/49 196/275/49 -f 201/277/47 202/274/47 198/276/47 -f 199/279/50 201/277/50 197/278/50 -f 196/275/52 200/291/52 199/281/52 -f 205/283/52 206/271/52 204/284/52 -f 184/253/46 203/265/46 204/284/46 -f 189/257/50 187/259/50 193/263/50 -f 187/259/50 206/271/50 193/263/50 +f 185/252/46 184/253/46 183/254/46 +f 187/255/47 186/256/47 185/252/47 +f 189/257/48 188/258/48 187/259/48 +f 191/260/49 190/261/49 189/262/49 +f 193/263/50 192/264/50 191/260/50 +f 203/265/51 184/266/51 186/267/51 +f 190/268/51 194/269/51 188/270/51 +f 206/271/52 187/259/52 185/272/52 +f 206/271/53 194/273/53 193/263/53 +f 202/274/51 196/275/51 198/276/51 +f 201/277/49 198/276/49 197/278/49 +f 199/279/52 197/278/52 195/280/52 +f 196/275/54 199/281/54 195/282/54 +f 205/283/54 204/284/54 203/265/54 +f 184/253/48 204/284/48 183/254/48 +f 193/263/52 191/285/52 189/257/52 +f 185/252/46 186/256/46 184/253/46 +f 187/255/47 188/286/47 186/256/47 +f 189/257/48 190/287/48 188/258/48 +f 191/260/49 192/264/49 190/261/49 +f 193/263/50 194/273/50 192/264/50 +f 186/267/51 188/270/51 205/283/51 +f 205/283/51 203/265/51 186/267/51 +f 192/288/51 194/269/51 190/268/51 +f 194/269/51 205/283/51 188/270/51 +f 185/272/52 183/289/52 204/284/52 +f 204/284/52 206/271/52 185/272/52 +f 206/271/53 205/290/53 194/273/53 +f 202/274/51 200/291/51 196/275/51 +f 201/277/49 202/274/49 198/276/49 +f 199/279/52 201/277/52 197/278/52 +f 196/275/54 200/291/54 199/281/54 +f 205/283/54 206/271/54 204/284/54 +f 184/253/48 203/265/48 204/284/48 +f 189/257/52 187/259/52 193/263/52 +f 187/259/52 206/271/52 193/263/52 o Drum v 0.000000 2.250000 -0.875000 v -0.625000 2.082532 -0.875000 @@ -1538,339 +1540,339 @@ vn 0.2588 -0.9659 0.0000 vn -0.9659 -0.2588 0.0000 vn -0.2588 0.9659 0.0000 s off -f 245/292/53 274/293/53 244/294/53 -f 244/294/53 275/295/53 243/296/53 -f 246/297/53 273/298/53 245/292/53 -f 241/299/53 326/300/53 240/301/53 -f 324/302/53 241/299/53 242/303/53 -f 323/304/53 242/303/53 243/296/53 -f 294/305/53 321/306/53 293/307/53 -f 293/307/53 322/308/53 292/309/53 -f 322/308/53 291/310/53 292/309/53 -f 288/311/53 261/312/53 262/313/53 -f 289/314/53 260/315/53 261/312/53 -f 290/316/53 259/317/53 260/315/53 -f 278/318/53 305/319/53 277/320/53 -f 257/321/53 310/322/53 256/323/53 -f 258/324/53 309/325/53 257/321/53 -f 259/317/53 308/326/53 258/324/53 -f 277/320/53 306/327/53 276/328/53 -f 306/327/53 275/295/53 276/328/53 -f 275/295/53 259/317/53 323/304/53 -f 230/329/53 272/330/53 246/297/53 -f 220/331/53 240/301/53 326/300/53 -f 222/332/53 320/333/53 294/305/53 -f 224/334/53 288/311/53 262/313/53 -f 226/335/53 256/323/53 310/322/53 -f 228/336/53 304/337/53 278/318/53 -f 233/338/54 318/339/54 317/340/54 -f 238/341/54 265/342/54 264/343/54 -f 270/344/54 297/345/54 296/346/54 -f 249/347/54 302/348/54 301/349/54 -f 253/350/54 280/351/54 254/352/54 -f 286/353/54 313/354/54 312/355/54 -f 284/356/54 313/354/54 285/357/54 -f 283/358/54 314/359/54 284/356/54 -f 233/338/54 316/360/54 234/361/54 -f 234/361/54 315/362/54 235/363/54 -f 237/364/54 266/365/54 265/342/54 -f 236/366/54 267/367/54 266/365/54 -f 269/368/54 298/369/54 297/345/54 -f 267/367/54 298/369/54 268/370/54 -f 250/371/54 301/349/54 300/372/54 -f 251/373/54 300/372/54 299/374/54 -f 252/375/54 281/376/54 253/350/54 -f 251/373/54 282/377/54 252/375/54 -f 251/373/54 267/367/54 315/362/54 -f 208/378/54 318/339/54 232/379/54 -f 218/380/54 238/341/54 264/343/54 -f 216/381/54 270/344/54 296/346/54 -f 214/382/54 302/348/54 248/383/54 -f 212/384/54 254/352/54 280/351/54 -f 210/385/54 286/353/54 312/355/54 -f 333/386/53 331/387/53 329/388/53 -f 341/389/53 339/390/53 337/391/53 -f 349/392/53 347/393/53 345/394/53 -f 357/395/53 355/396/53 353/397/53 -f 365/398/53 363/399/53 361/400/53 -f 373/401/53 371/402/53 369/403/53 -f 379/404/54 381/405/54 375/406/54 -f 387/407/54 389/408/54 383/409/54 -f 393/410/54 395/411/54 397/412/54 -f 403/413/54 405/414/54 399/415/54 -f 409/416/54 411/417/54 413/418/54 -f 417/419/54 419/420/54 421/421/54 -f 245/292/53 273/298/53 274/293/53 -f 244/294/53 274/293/53 275/295/53 -f 246/297/53 272/330/53 273/298/53 -f 241/299/53 325/422/53 326/300/53 -f 324/302/53 325/422/53 241/299/53 -f 323/304/53 324/302/53 242/303/53 -f 294/305/53 320/333/53 321/306/53 -f 293/307/53 321/306/53 322/308/53 -f 322/308/53 323/304/53 291/310/53 -f 288/311/53 289/314/53 261/312/53 -f 289/314/53 290/316/53 260/315/53 -f 290/316/53 291/310/53 259/317/53 -f 278/318/53 304/337/53 305/319/53 -f 257/321/53 309/325/53 310/322/53 -f 258/324/53 308/326/53 309/325/53 -f 259/317/53 307/423/53 308/326/53 -f 277/320/53 305/319/53 306/327/53 -f 306/327/53 307/423/53 275/295/53 -f 323/304/53 243/296/53 275/295/53 -f 275/295/53 307/423/53 259/317/53 -f 259/317/53 291/310/53 323/304/53 -f 230/329/53 229/424/53 272/330/53 -f 229/424/53 271/425/53 272/330/53 -f 239/426/53 219/427/53 246/297/53 -f 219/427/53 230/329/53 246/297/53 -f 220/331/53 219/427/53 240/301/53 -f 219/427/53 239/426/53 240/301/53 -f 319/428/53 221/429/53 326/300/53 -f 221/429/53 220/331/53 326/300/53 -f 222/332/53 221/429/53 320/333/53 -f 221/429/53 319/428/53 320/333/53 -f 287/430/53 223/431/53 294/305/53 -f 223/431/53 222/332/53 294/305/53 -f 224/334/53 223/431/53 288/311/53 -f 223/431/53 287/430/53 288/311/53 -f 255/432/53 225/433/53 262/313/53 -f 225/433/53 224/334/53 262/313/53 -f 226/335/53 225/433/53 256/323/53 -f 225/433/53 255/432/53 256/323/53 -f 303/434/53 227/435/53 310/322/53 -f 227/435/53 226/335/53 310/322/53 -f 228/336/53 227/435/53 304/337/53 -f 227/435/53 303/434/53 304/337/53 -f 271/425/53 229/424/53 278/318/53 -f 229/424/53 228/336/53 278/318/53 -f 233/338/54 232/379/54 318/339/54 -f 238/341/54 237/364/54 265/342/54 -f 270/344/54 269/368/54 297/345/54 -f 249/347/54 248/383/54 302/348/54 -f 253/350/54 281/376/54 280/351/54 -f 286/353/54 285/357/54 313/354/54 -f 284/356/54 314/359/54 313/354/54 -f 283/358/54 315/362/54 314/359/54 -f 233/338/54 317/340/54 316/360/54 -f 234/361/54 316/360/54 315/362/54 -f 237/364/54 236/366/54 266/365/54 -f 236/366/54 235/363/54 267/367/54 -f 269/368/54 268/370/54 298/369/54 -f 267/367/54 299/374/54 298/369/54 -f 250/371/54 249/347/54 301/349/54 -f 251/373/54 250/371/54 300/372/54 -f 252/375/54 282/377/54 281/376/54 -f 251/373/54 283/358/54 282/377/54 -f 315/362/54 283/358/54 251/373/54 -f 251/373/54 299/374/54 267/367/54 -f 267/367/54 235/363/54 315/362/54 -f 231/436/54 207/437/54 232/379/54 -f 207/437/54 208/378/54 232/379/54 -f 208/378/54 209/438/54 318/339/54 -f 209/438/54 311/439/54 318/339/54 -f 263/440/54 217/441/54 264/343/54 -f 217/441/54 218/380/54 264/343/54 -f 218/380/54 207/437/54 238/341/54 -f 207/437/54 231/436/54 238/341/54 -f 295/442/54 215/443/54 296/346/54 -f 215/443/54 216/381/54 296/346/54 -f 216/381/54 217/441/54 270/344/54 -f 217/441/54 263/440/54 270/344/54 -f 247/444/54 213/445/54 248/383/54 -f 213/445/54 214/382/54 248/383/54 -f 214/382/54 215/443/54 302/348/54 -f 215/443/54 295/442/54 302/348/54 -f 279/446/54 211/447/54 280/351/54 -f 211/447/54 212/384/54 280/351/54 -f 212/384/54 213/445/54 254/352/54 -f 213/445/54 247/444/54 254/352/54 -f 311/439/54 209/438/54 312/355/54 -f 209/438/54 210/385/54 312/355/54 -f 210/385/54 211/447/54 286/353/54 -f 211/447/54 279/446/54 286/353/54 -f 329/388/53 328/448/53 327/449/53 -f 327/449/53 334/450/53 333/386/53 -f 333/386/53 332/451/53 331/387/53 -f 331/387/53 330/452/53 329/388/53 -f 329/388/53 327/449/53 333/386/53 -f 337/391/53 336/453/53 335/454/53 -f 335/454/53 342/455/53 341/389/53 -f 341/389/53 340/456/53 339/390/53 -f 339/390/53 338/457/53 337/391/53 -f 337/391/53 335/454/53 341/389/53 -f 345/394/53 344/458/53 343/459/53 -f 343/459/53 350/460/53 345/394/53 -f 350/460/53 349/392/53 345/394/53 -f 349/392/53 348/461/53 347/393/53 -f 347/393/53 346/462/53 345/394/53 -f 353/397/53 352/463/53 351/464/53 -f 351/464/53 358/465/53 357/395/53 -f 357/395/53 356/466/53 355/396/53 -f 355/396/53 354/467/53 353/397/53 -f 353/397/53 351/464/53 357/395/53 -f 361/400/53 360/468/53 359/469/53 -f 359/469/53 366/470/53 361/400/53 -f 366/470/53 365/398/53 361/400/53 -f 365/398/53 364/471/53 363/399/53 -f 363/399/53 362/472/53 361/400/53 -f 369/403/53 368/473/53 367/474/53 -f 367/474/53 374/475/53 369/403/53 -f 374/475/53 373/401/53 369/403/53 -f 373/401/53 372/476/53 371/402/53 -f 371/402/53 370/477/53 369/403/53 -f 375/406/54 376/478/54 377/479/54 -f 377/479/54 378/480/54 379/404/54 -f 379/404/54 380/481/54 381/405/54 -f 381/405/54 382/482/54 375/406/54 -f 375/406/54 377/479/54 379/404/54 -f 383/409/54 384/483/54 385/484/54 -f 385/484/54 386/485/54 387/407/54 -f 387/407/54 388/486/54 389/408/54 -f 389/408/54 390/487/54 383/409/54 -f 383/409/54 385/484/54 387/407/54 -f 391/488/54 392/489/54 393/410/54 -f 393/410/54 394/490/54 395/411/54 -f 395/411/54 396/491/54 397/412/54 -f 397/412/54 398/492/54 391/488/54 -f 391/488/54 393/410/54 397/412/54 -f 399/415/54 400/493/54 401/494/54 -f 401/494/54 402/495/54 403/413/54 -f 403/413/54 404/496/54 405/414/54 -f 405/414/54 406/497/54 399/415/54 -f 399/415/54 401/494/54 403/413/54 -f 407/498/54 408/499/54 409/416/54 -f 409/416/54 410/500/54 411/417/54 -f 411/417/54 412/501/54 413/418/54 -f 413/418/54 414/502/54 407/498/54 -f 407/498/54 409/416/54 413/418/54 -f 415/503/54 416/504/54 417/419/54 -f 417/419/54 418/505/54 419/420/54 -f 419/420/54 420/506/54 421/421/54 -f 421/421/54 422/507/54 415/503/54 -f 415/503/54 417/419/54 421/421/54 +f 245/292/55 274/293/55 244/294/55 +f 244/294/55 275/295/55 243/296/55 +f 246/297/55 273/298/55 245/292/55 +f 241/299/55 326/300/55 240/301/55 +f 324/302/55 241/299/55 242/303/55 +f 323/304/55 242/303/55 243/296/55 +f 294/305/55 321/306/55 293/307/55 +f 293/307/55 322/308/55 292/309/55 +f 322/308/55 291/310/55 292/309/55 +f 288/311/55 261/312/55 262/313/55 +f 289/314/55 260/315/55 261/312/55 +f 290/316/55 259/317/55 260/315/55 +f 278/318/55 305/319/55 277/320/55 +f 257/321/55 310/322/55 256/323/55 +f 258/324/55 309/325/55 257/321/55 +f 259/317/55 308/326/55 258/324/55 +f 277/320/55 306/327/55 276/328/55 +f 306/327/55 275/295/55 276/328/55 +f 275/295/55 259/317/55 323/304/55 +f 230/329/55 272/330/55 246/297/55 +f 220/331/55 240/301/55 326/300/55 +f 222/332/55 320/333/55 294/305/55 +f 224/334/55 288/311/55 262/313/55 +f 226/335/55 256/323/55 310/322/55 +f 228/336/55 304/337/55 278/318/55 +f 233/338/56 318/339/56 317/340/56 +f 238/341/56 265/342/56 264/343/56 +f 270/344/56 297/345/56 296/346/56 +f 249/347/56 302/348/56 301/349/56 +f 253/350/56 280/351/56 254/352/56 +f 286/353/56 313/354/56 312/355/56 +f 284/356/56 313/354/56 285/357/56 +f 283/358/56 314/359/56 284/356/56 +f 233/338/56 316/360/56 234/361/56 +f 234/361/56 315/362/56 235/363/56 +f 237/364/56 266/365/56 265/342/56 +f 236/366/56 267/367/56 266/365/56 +f 269/368/56 298/369/56 297/345/56 +f 267/367/56 298/369/56 268/370/56 +f 250/371/56 301/349/56 300/372/56 +f 251/373/56 300/372/56 299/374/56 +f 252/375/56 281/376/56 253/350/56 +f 251/373/56 282/377/56 252/375/56 +f 251/373/56 267/367/56 315/362/56 +f 208/378/56 318/339/56 232/379/56 +f 218/380/56 238/341/56 264/343/56 +f 216/381/56 270/344/56 296/346/56 +f 214/382/56 302/348/56 248/383/56 +f 212/384/56 254/352/56 280/351/56 +f 210/385/56 286/353/56 312/355/56 +f 333/386/55 331/387/55 329/388/55 +f 341/389/55 339/390/55 337/391/55 +f 349/392/55 347/393/55 345/394/55 +f 357/395/55 355/396/55 353/397/55 +f 365/398/55 363/399/55 361/400/55 +f 373/401/55 371/402/55 369/403/55 +f 379/404/56 381/405/56 375/406/56 +f 387/407/56 389/408/56 383/409/56 +f 393/410/56 395/411/56 397/412/56 +f 403/413/56 405/414/56 399/415/56 +f 409/416/56 411/417/56 413/418/56 +f 417/419/56 419/420/56 421/421/56 +f 245/292/55 273/298/55 274/293/55 +f 244/294/55 274/293/55 275/295/55 +f 246/297/55 272/330/55 273/298/55 +f 241/299/55 325/422/55 326/300/55 +f 324/302/55 325/422/55 241/299/55 +f 323/304/55 324/302/55 242/303/55 +f 294/305/55 320/333/55 321/306/55 +f 293/307/55 321/306/55 322/308/55 +f 322/308/55 323/304/55 291/310/55 +f 288/311/55 289/314/55 261/312/55 +f 289/314/55 290/316/55 260/315/55 +f 290/316/55 291/310/55 259/317/55 +f 278/318/55 304/337/55 305/319/55 +f 257/321/55 309/325/55 310/322/55 +f 258/324/55 308/326/55 309/325/55 +f 259/317/55 307/423/55 308/326/55 +f 277/320/55 305/319/55 306/327/55 +f 306/327/55 307/423/55 275/295/55 +f 323/304/55 243/296/55 275/295/55 +f 275/295/55 307/423/55 259/317/55 +f 259/317/55 291/310/55 323/304/55 +f 230/329/55 229/424/55 272/330/55 +f 229/424/55 271/425/55 272/330/55 +f 239/426/55 219/427/55 246/297/55 +f 219/427/55 230/329/55 246/297/55 +f 220/331/55 219/427/55 240/301/55 +f 219/427/55 239/426/55 240/301/55 +f 319/428/55 221/429/55 326/300/55 +f 221/429/55 220/331/55 326/300/55 +f 222/332/55 221/429/55 320/333/55 +f 221/429/55 319/428/55 320/333/55 +f 287/430/55 223/431/55 294/305/55 +f 223/431/55 222/332/55 294/305/55 +f 224/334/55 223/431/55 288/311/55 +f 223/431/55 287/430/55 288/311/55 +f 255/432/55 225/433/55 262/313/55 +f 225/433/55 224/334/55 262/313/55 +f 226/335/55 225/433/55 256/323/55 +f 225/433/55 255/432/55 256/323/55 +f 303/434/55 227/435/55 310/322/55 +f 227/435/55 226/335/55 310/322/55 +f 228/336/55 227/435/55 304/337/55 +f 227/435/55 303/434/55 304/337/55 +f 271/425/55 229/424/55 278/318/55 +f 229/424/55 228/336/55 278/318/55 +f 233/338/56 232/379/56 318/339/56 +f 238/341/56 237/364/56 265/342/56 +f 270/344/56 269/368/56 297/345/56 +f 249/347/56 248/383/56 302/348/56 +f 253/350/56 281/376/56 280/351/56 +f 286/353/56 285/357/56 313/354/56 +f 284/356/56 314/359/56 313/354/56 +f 283/358/56 315/362/56 314/359/56 +f 233/338/56 317/340/56 316/360/56 +f 234/361/56 316/360/56 315/362/56 +f 237/364/56 236/366/56 266/365/56 +f 236/366/56 235/363/56 267/367/56 +f 269/368/56 268/370/56 298/369/56 +f 267/367/56 299/374/56 298/369/56 +f 250/371/56 249/347/56 301/349/56 +f 251/373/56 250/371/56 300/372/56 +f 252/375/56 282/377/56 281/376/56 +f 251/373/56 283/358/56 282/377/56 +f 315/362/56 283/358/56 251/373/56 +f 251/373/56 299/374/56 267/367/56 +f 267/367/56 235/363/56 315/362/56 +f 231/436/56 207/437/56 232/379/56 +f 207/437/56 208/378/56 232/379/56 +f 208/378/56 209/438/56 318/339/56 +f 209/438/56 311/439/56 318/339/56 +f 263/440/56 217/441/56 264/343/56 +f 217/441/56 218/380/56 264/343/56 +f 218/380/56 207/437/56 238/341/56 +f 207/437/56 231/436/56 238/341/56 +f 295/442/56 215/443/56 296/346/56 +f 215/443/56 216/381/56 296/346/56 +f 216/381/56 217/441/56 270/344/56 +f 217/441/56 263/440/56 270/344/56 +f 247/444/56 213/445/56 248/383/56 +f 213/445/56 214/382/56 248/383/56 +f 214/382/56 215/443/56 302/348/56 +f 215/443/56 295/442/56 302/348/56 +f 279/446/56 211/447/56 280/351/56 +f 211/447/56 212/384/56 280/351/56 +f 212/384/56 213/445/56 254/352/56 +f 213/445/56 247/444/56 254/352/56 +f 311/439/56 209/438/56 312/355/56 +f 209/438/56 210/385/56 312/355/56 +f 210/385/56 211/447/56 286/353/56 +f 211/447/56 279/446/56 286/353/56 +f 329/388/55 328/448/55 327/449/55 +f 327/449/55 334/450/55 333/386/55 +f 333/386/55 332/451/55 331/387/55 +f 331/387/55 330/452/55 329/388/55 +f 329/388/55 327/449/55 333/386/55 +f 337/391/55 336/453/55 335/454/55 +f 335/454/55 342/455/55 341/389/55 +f 341/389/55 340/456/55 339/390/55 +f 339/390/55 338/457/55 337/391/55 +f 337/391/55 335/454/55 341/389/55 +f 345/394/55 344/458/55 343/459/55 +f 343/459/55 350/460/55 345/394/55 +f 350/460/55 349/392/55 345/394/55 +f 349/392/55 348/461/55 347/393/55 +f 347/393/55 346/462/55 345/394/55 +f 353/397/55 352/463/55 351/464/55 +f 351/464/55 358/465/55 357/395/55 +f 357/395/55 356/466/55 355/396/55 +f 355/396/55 354/467/55 353/397/55 +f 353/397/55 351/464/55 357/395/55 +f 361/400/55 360/468/55 359/469/55 +f 359/469/55 366/470/55 361/400/55 +f 366/470/55 365/398/55 361/400/55 +f 365/398/55 364/471/55 363/399/55 +f 363/399/55 362/472/55 361/400/55 +f 369/403/55 368/473/55 367/474/55 +f 367/474/55 374/475/55 369/403/55 +f 374/475/55 373/401/55 369/403/55 +f 373/401/55 372/476/55 371/402/55 +f 371/402/55 370/477/55 369/403/55 +f 375/406/56 376/478/56 377/479/56 +f 377/479/56 378/480/56 379/404/56 +f 379/404/56 380/481/56 381/405/56 +f 381/405/56 382/482/56 375/406/56 +f 375/406/56 377/479/56 379/404/56 +f 383/409/56 384/483/56 385/484/56 +f 385/484/56 386/485/56 387/407/56 +f 387/407/56 388/486/56 389/408/56 +f 389/408/56 390/487/56 383/409/56 +f 383/409/56 385/484/56 387/407/56 +f 391/488/56 392/489/56 393/410/56 +f 393/410/56 394/490/56 395/411/56 +f 395/411/56 396/491/56 397/412/56 +f 397/412/56 398/492/56 391/488/56 +f 391/488/56 393/410/56 397/412/56 +f 399/415/56 400/493/56 401/494/56 +f 401/494/56 402/495/56 403/413/56 +f 403/413/56 404/496/56 405/414/56 +f 405/414/56 406/497/56 399/415/56 +f 399/415/56 401/494/56 403/413/56 +f 407/498/56 408/499/56 409/416/56 +f 409/416/56 410/500/56 411/417/56 +f 411/417/56 412/501/56 413/418/56 +f 413/418/56 414/502/56 407/498/56 +f 407/498/56 409/416/56 413/418/56 +f 415/503/56 416/504/56 417/419/56 +f 417/419/56 418/505/56 419/420/56 +f 419/420/56 420/506/56 421/421/56 +f 421/421/56 422/507/56 415/503/56 +f 415/503/56 417/419/56 421/421/56 s 1 -f 437/508/55 426/509/56 425/510/55 -f 444/511/57 433/512/58 432/513/57 -f 441/514/59 430/515/60 429/516/59 -f 438/517/56 427/518/61 426/509/56 -f 445/519/58 434/520/62 433/512/58 -f 435/521/63 424/522/64 423/523/63 -f 442/524/60 431/525/65 430/515/60 -f 439/526/61 428/527/66 427/518/61 -f 446/528/62 423/523/63 434/520/62 -f 436/529/64 425/510/55 424/522/64 -f 443/530/65 432/513/57 431/525/65 -f 440/531/66 429/532/59 428/527/66 -f 453/533/56 460/534/67 452/535/67 -f 451/536/63 458/537/68 450/538/68 -f 449/539/57 456/540/69 448/541/69 -f 454/542/70 461/543/56 453/533/56 -f 452/535/67 459/544/63 451/545/63 -f 450/538/68 457/546/57 449/539/57 -f 448/541/69 455/547/59 447/548/59 -f 447/548/59 462/549/70 454/542/70 -f 469/550/57 476/551/69 468/552/69 -f 467/553/59 474/554/70 466/555/70 -f 465/556/56 472/557/67 464/558/67 -f 470/559/68 477/560/57 469/550/57 -f 468/552/69 475/561/59 467/562/59 -f 466/555/70 473/563/56 465/556/56 -f 464/558/67 471/564/63 463/565/63 -f 463/565/63 478/566/68 470/559/68 -f 485/567/64 492/568/71 484/569/71 -f 483/570/58 490/571/72 482/572/72 -f 481/573/60 488/574/73 480/575/73 -f 486/576/74 493/577/64 485/567/64 -f 484/569/71 491/578/58 483/579/58 -f 482/572/72 489/580/60 481/573/60 -f 480/575/73 487/581/61 479/582/61 -f 479/582/61 494/583/74 486/576/74 -f 501/584/60 508/585/73 500/586/73 -f 499/587/61 506/588/74 498/589/74 -f 497/590/64 504/591/71 496/592/71 -f 502/593/72 509/594/60 501/584/60 -f 500/586/73 507/595/61 499/596/61 -f 498/589/74 505/597/64 497/590/64 -f 496/592/71 503/598/58 495/599/58 -f 495/599/58 510/600/72 502/593/72 -f 517/601/62 524/602/75 516/603/75 -f 515/604/65 522/605/76 514/606/76 -f 513/607/66 520/608/77 512/609/77 -f 518/610/78 525/611/62 517/601/62 -f 516/603/75 523/612/65 515/613/65 -f 514/606/76 521/614/66 513/607/66 -f 512/609/77 519/615/55 511/616/55 -f 511/616/55 526/617/78 518/610/78 -f 533/618/66 540/619/77 532/620/77 -f 531/621/55 538/622/78 530/623/78 -f 529/624/62 536/625/75 528/626/75 -f 534/627/76 541/628/66 533/618/66 -f 532/620/77 539/629/55 531/630/55 -f 530/623/78 537/631/62 529/624/62 -f 528/626/75 535/632/65 527/633/65 -f 527/633/65 542/634/76 534/627/76 -f 437/508/55 438/517/56 426/509/56 -f 444/511/57 445/519/58 433/512/58 -f 441/514/59 442/524/60 430/515/60 -f 438/517/56 439/526/61 427/518/61 -f 445/519/58 446/528/62 434/520/62 -f 435/521/63 436/529/64 424/522/64 -f 442/524/60 443/530/65 431/525/65 -f 439/526/61 440/531/66 428/527/66 -f 446/528/62 435/521/63 423/523/63 -f 436/529/64 437/508/55 425/510/55 -f 443/530/65 444/511/57 432/513/57 -f 440/531/66 441/635/59 429/532/59 -f 453/533/56 461/543/56 460/534/67 -f 451/536/63 459/636/63 458/537/68 -f 449/539/57 457/546/57 456/540/69 -f 454/542/70 462/549/70 461/543/56 -f 452/535/67 460/534/67 459/544/63 -f 450/538/68 458/537/68 457/546/57 -f 448/541/69 456/540/69 455/547/59 -f 447/548/59 455/547/59 462/549/70 -f 469/550/57 477/560/57 476/551/69 -f 467/553/59 475/637/59 474/554/70 -f 465/556/56 473/563/56 472/557/67 -f 470/559/68 478/566/68 477/560/57 -f 468/552/69 476/551/69 475/561/59 -f 466/555/70 474/554/70 473/563/56 -f 464/558/67 472/557/67 471/564/63 -f 463/565/63 471/564/63 478/566/68 -f 485/567/64 493/577/64 492/568/71 -f 483/570/58 491/638/58 490/571/72 -f 481/573/60 489/580/60 488/574/73 -f 486/576/74 494/583/74 493/577/64 -f 484/569/71 492/568/71 491/578/58 -f 482/572/72 490/571/72 489/580/60 -f 480/575/73 488/574/73 487/581/61 -f 479/582/61 487/581/61 494/583/74 -f 501/584/60 509/594/60 508/585/73 -f 499/587/61 507/639/61 506/588/74 -f 497/590/64 505/597/64 504/591/71 -f 502/593/72 510/600/72 509/594/60 -f 500/586/73 508/585/73 507/595/61 -f 498/589/74 506/588/74 505/597/64 -f 496/592/71 504/591/71 503/598/58 -f 495/599/58 503/598/58 510/600/72 -f 517/601/62 525/611/62 524/602/75 -f 515/604/65 523/640/65 522/605/76 -f 513/607/66 521/614/66 520/608/77 -f 518/610/78 526/617/78 525/611/62 -f 516/603/75 524/602/75 523/612/65 -f 514/606/76 522/605/76 521/614/66 -f 512/609/77 520/608/77 519/615/55 -f 511/616/55 519/615/55 526/617/78 -f 533/618/66 541/628/66 540/619/77 -f 531/621/55 539/641/55 538/622/78 -f 529/624/62 537/631/62 536/625/75 -f 534/627/76 542/634/76 541/628/66 -f 532/620/77 540/619/77 539/629/55 -f 530/623/78 538/622/78 537/631/62 -f 528/626/75 536/625/75 535/632/65 -f 527/633/65 535/632/65 542/634/76 +f 437/508/57 426/509/58 425/510/57 +f 444/511/59 433/512/60 432/513/59 +f 441/514/61 430/515/62 429/516/61 +f 438/517/58 427/518/63 426/509/58 +f 445/519/60 434/520/64 433/512/60 +f 435/521/65 424/522/66 423/523/65 +f 442/524/62 431/525/67 430/515/62 +f 439/526/63 428/527/68 427/518/63 +f 446/528/64 423/523/65 434/520/64 +f 436/529/66 425/510/57 424/522/66 +f 443/530/67 432/513/59 431/525/67 +f 440/531/68 429/532/61 428/527/68 +f 453/533/58 460/534/69 452/535/69 +f 451/536/65 458/537/70 450/538/70 +f 449/539/59 456/540/71 448/541/71 +f 454/542/72 461/543/58 453/533/58 +f 452/535/69 459/544/65 451/545/65 +f 450/538/70 457/546/59 449/539/59 +f 448/541/71 455/547/61 447/548/61 +f 447/548/61 462/549/72 454/542/72 +f 469/550/59 476/551/71 468/552/71 +f 467/553/61 474/554/72 466/555/72 +f 465/556/58 472/557/69 464/558/69 +f 470/559/70 477/560/59 469/550/59 +f 468/552/71 475/561/61 467/562/61 +f 466/555/72 473/563/58 465/556/58 +f 464/558/69 471/564/65 463/565/65 +f 463/565/65 478/566/70 470/559/70 +f 485/567/66 492/568/73 484/569/73 +f 483/570/60 490/571/74 482/572/74 +f 481/573/62 488/574/75 480/575/75 +f 486/576/76 493/577/66 485/567/66 +f 484/569/73 491/578/60 483/579/60 +f 482/572/74 489/580/62 481/573/62 +f 480/575/75 487/581/63 479/582/63 +f 479/582/63 494/583/76 486/576/76 +f 501/584/62 508/585/75 500/586/75 +f 499/587/63 506/588/76 498/589/76 +f 497/590/66 504/591/73 496/592/73 +f 502/593/74 509/594/62 501/584/62 +f 500/586/75 507/595/63 499/596/63 +f 498/589/76 505/597/66 497/590/66 +f 496/592/73 503/598/60 495/599/60 +f 495/599/60 510/600/74 502/593/74 +f 517/601/64 524/602/77 516/603/77 +f 515/604/67 522/605/78 514/606/78 +f 513/607/68 520/608/79 512/609/79 +f 518/610/80 525/611/64 517/601/64 +f 516/603/77 523/612/67 515/613/67 +f 514/606/78 521/614/68 513/607/68 +f 512/609/79 519/615/57 511/616/57 +f 511/616/57 526/617/80 518/610/80 +f 533/618/68 540/619/79 532/620/79 +f 531/621/57 538/622/80 530/623/80 +f 529/624/64 536/625/77 528/626/77 +f 534/627/78 541/628/68 533/618/68 +f 532/620/79 539/629/57 531/630/57 +f 530/623/80 537/631/64 529/624/64 +f 528/626/77 535/632/67 527/633/67 +f 527/633/67 542/634/78 534/627/78 +f 437/508/57 438/517/58 426/509/58 +f 444/511/59 445/519/60 433/512/60 +f 441/514/61 442/524/62 430/515/62 +f 438/517/58 439/526/63 427/518/63 +f 445/519/60 446/528/64 434/520/64 +f 435/521/65 436/529/66 424/522/66 +f 442/524/62 443/530/67 431/525/67 +f 439/526/63 440/531/68 428/527/68 +f 446/528/64 435/521/65 423/523/65 +f 436/529/66 437/508/57 425/510/57 +f 443/530/67 444/511/59 432/513/59 +f 440/531/68 441/635/61 429/532/61 +f 453/533/58 461/543/58 460/534/69 +f 451/536/65 459/636/65 458/537/70 +f 449/539/59 457/546/59 456/540/71 +f 454/542/72 462/549/72 461/543/58 +f 452/535/69 460/534/69 459/544/65 +f 450/538/70 458/537/70 457/546/59 +f 448/541/71 456/540/71 455/547/61 +f 447/548/61 455/547/61 462/549/72 +f 469/550/59 477/560/59 476/551/71 +f 467/553/61 475/637/61 474/554/72 +f 465/556/58 473/563/58 472/557/69 +f 470/559/70 478/566/70 477/560/59 +f 468/552/71 476/551/71 475/561/61 +f 466/555/72 474/554/72 473/563/58 +f 464/558/69 472/557/69 471/564/65 +f 463/565/65 471/564/65 478/566/70 +f 485/567/66 493/577/66 492/568/73 +f 483/570/60 491/638/60 490/571/74 +f 481/573/62 489/580/62 488/574/75 +f 486/576/76 494/583/76 493/577/66 +f 484/569/73 492/568/73 491/578/60 +f 482/572/74 490/571/74 489/580/62 +f 480/575/75 488/574/75 487/581/63 +f 479/582/63 487/581/63 494/583/76 +f 501/584/62 509/594/62 508/585/75 +f 499/587/63 507/639/63 506/588/76 +f 497/590/66 505/597/66 504/591/73 +f 502/593/74 510/600/74 509/594/62 +f 500/586/75 508/585/75 507/595/63 +f 498/589/76 506/588/76 505/597/66 +f 496/592/73 504/591/73 503/598/60 +f 495/599/60 503/598/60 510/600/74 +f 517/601/64 525/611/64 524/602/77 +f 515/604/67 523/640/67 522/605/78 +f 513/607/68 521/614/68 520/608/79 +f 518/610/80 526/617/80 525/611/64 +f 516/603/77 524/602/77 523/612/67 +f 514/606/78 522/605/78 521/614/68 +f 512/609/79 520/608/79 519/615/57 +f 511/616/57 519/615/57 526/617/80 +f 533/618/68 541/628/68 540/619/79 +f 531/621/57 539/641/57 538/622/80 +f 529/624/64 537/631/64 536/625/77 +f 534/627/78 542/634/78 541/628/68 +f 532/620/79 540/619/79 539/629/57 +f 530/623/80 538/622/80 537/631/64 +f 528/626/77 536/625/77 535/632/67 +f 527/633/67 535/632/67 542/634/78 o Grip v 0.000000 2.250000 -3.375000 v -0.625000 2.082532 -3.375000 @@ -2945,540 +2947,540 @@ vn 0.0000 -0.2898 -0.9571 vn 0.0000 -0.8816 -0.4718 vn 0.0000 0.1305 -0.9914 s off -f 948/642/79 946/643/79 944/644/79 -f 553/645/80 543/646/80 547/647/80 -f 582/648/81 576/649/81 574/650/81 -f 576/649/82 585/651/82 577/652/82 -f 572/653/82 582/648/82 574/650/82 -f 585/654/83 575/655/83 577/656/83 -f 575/655/82 581/657/82 573/658/82 -f 579/659/80 574/660/80 575/661/80 -f 579/662/82 586/663/82 578/664/82 -f 597/665/79 594/666/79 595/667/79 -f 607/668/81 605/669/81 601/670/81 -f 618/671/83 598/672/83 600/673/83 -f 594/666/80 602/674/80 595/667/80 -f 620/675/84 625/676/84 621/677/84 -f 597/665/85 624/678/85 596/679/85 -f 600/680/83 587/681/83 602/682/83 -f 578/664/81 590/683/81 592/684/81 -f 761/685/83 747/686/83 745/687/83 -f 763/688/83 751/689/83 747/686/83 -f 765/690/83 749/691/83 751/689/83 -f 767/692/83 753/693/83 749/691/83 -f 769/694/83 757/695/83 753/693/83 -f 771/696/83 755/697/83 757/695/83 -f 755/697/83 775/698/83 759/699/83 -f 779/700/83 775/698/83 777/701/83 -f 746/702/81 760/703/81 744/704/81 -f 774/705/81 754/706/81 758/707/81 -f 774/705/81 778/708/81 776/709/81 -f 785/710/83 783/711/83 781/712/83 -f 787/713/83 791/714/83 783/711/83 -f 789/715/83 795/716/83 791/714/83 -f 793/717/83 799/718/83 795/716/83 -f 799/718/83 801/719/83 803/720/83 -f 800/721/81 798/722/81 802/723/81 -f 796/724/81 794/725/81 798/722/81 -f 794/725/81 788/726/81 790/727/81 -f 786/728/81 790/727/81 788/726/81 -f 782/729/81 784/730/81 780/731/81 -f 809/732/79 812/733/79 808/734/79 -f 807/735/83 813/736/83 809/737/83 -f 808/738/81 810/739/81 805/740/81 -f 819/741/83 814/742/83 806/743/83 -f 816/744/81 815/745/81 818/746/81 -f 816/747/80 817/748/80 819/749/80 -f 805/740/81 815/745/81 804/750/81 -f 814/742/83 807/735/83 806/743/83 -f 579/751/83 593/752/83 591/753/83 -f 578/664/81 586/663/81 596/754/81 -f 916/755/79 919/756/79 917/757/79 -f 944/644/79 943/758/79 942/759/79 -f 942/759/79 949/760/79 948/642/79 -f 948/642/79 947/761/79 946/643/79 -f 946/643/79 945/762/79 944/644/79 -f 944/644/79 942/759/79 948/642/79 -f 543/646/80 544/763/80 545/764/80 -f 545/764/80 546/765/80 543/646/80 -f 546/765/80 547/647/80 543/646/80 -f 547/647/80 548/766/80 549/767/80 -f 549/767/80 550/768/80 551/769/80 -f 551/769/80 552/770/80 553/645/80 -f 553/645/80 554/771/80 543/646/80 -f 547/647/80 549/767/80 551/769/80 -f 551/769/80 553/645/80 547/647/80 -f 582/648/81 584/772/81 576/649/81 -f 576/649/82 584/772/82 585/651/82 -f 572/653/82 580/773/82 582/648/82 -f 585/654/83 583/774/83 575/655/83 -f 575/655/82 583/774/82 581/657/82 -f 575/661/80 573/775/80 579/659/80 -f 579/659/80 578/776/80 574/660/80 -f 578/776/80 572/777/80 574/660/80 -f 574/660/80 576/649/80 577/652/80 -f 574/660/80 577/652/80 575/661/80 -f 579/662/82 587/778/82 586/663/82 -f 597/665/79 596/679/79 594/666/79 -f 605/669/81 603/779/81 601/670/81 -f 601/670/81 586/780/81 599/781/81 -f 599/781/81 619/782/81 601/670/81 -f 619/782/81 617/783/81 601/670/81 -f 617/783/81 615/784/81 601/670/81 -f 615/784/81 613/785/81 601/670/81 -f 613/785/81 611/786/81 601/670/81 -f 611/786/81 609/787/81 601/670/81 -f 609/787/81 607/668/81 601/670/81 -f 598/672/83 587/788/83 600/673/83 -f 600/673/83 602/789/83 604/790/83 -f 604/790/83 606/791/83 600/673/83 -f 606/791/83 608/792/83 600/673/83 -f 608/792/83 610/793/83 600/673/83 -f 610/793/83 612/794/83 600/673/83 -f 612/794/83 614/795/83 600/673/83 -f 614/795/83 616/796/83 600/673/83 -f 616/796/83 618/671/83 600/673/83 -f 594/666/80 603/797/80 602/674/80 -f 620/675/84 624/678/84 625/676/84 -f 597/665/85 625/676/85 624/678/85 -f 587/681/83 579/751/83 597/798/83 -f 579/751/83 623/799/83 625/800/83 -f 597/798/83 579/751/83 625/800/83 -f 623/799/83 621/801/83 625/800/83 -f 597/798/83 595/802/83 587/681/83 -f 595/802/83 602/682/83 587/681/83 -f 580/773/81 572/653/81 592/684/81 -f 572/653/81 578/664/81 592/684/81 -f 578/664/81 622/803/81 590/683/81 -f 622/803/81 588/804/81 590/683/81 -f 761/685/83 763/688/83 747/686/83 -f 763/688/83 765/690/83 751/689/83 -f 765/690/83 767/692/83 749/691/83 -f 767/692/83 769/694/83 753/693/83 -f 769/694/83 771/696/83 757/695/83 -f 771/696/83 773/805/83 755/697/83 -f 755/697/83 773/805/83 775/698/83 -f 779/700/83 759/699/83 775/698/83 -f 746/702/81 762/806/81 760/703/81 -f 774/705/81 772/807/81 754/706/81 -f 774/705/81 758/707/81 778/708/81 -f 785/710/83 787/713/83 783/711/83 -f 787/713/83 789/715/83 791/714/83 -f 789/715/83 793/717/83 795/716/83 -f 793/717/83 797/808/83 799/718/83 -f 799/718/83 797/808/83 801/719/83 -f 800/721/81 796/724/81 798/722/81 -f 796/724/81 792/809/81 794/725/81 -f 794/725/81 792/809/81 788/726/81 -f 786/728/81 782/729/81 790/727/81 -f 782/729/81 786/728/81 784/730/81 -f 809/732/79 813/736/79 812/733/79 -f 807/735/83 811/810/83 813/736/83 -f 808/738/81 812/733/81 810/739/81 -f 819/741/83 817/748/83 814/742/83 -f 816/744/81 804/750/81 815/745/81 -f 816/747/80 818/746/80 817/748/80 -f 805/740/81 810/739/81 815/745/81 -f 814/742/83 811/810/83 807/735/83 -f 589/811/83 623/799/83 591/753/83 -f 623/799/83 579/751/83 591/753/83 -f 579/751/83 573/658/83 593/752/83 -f 573/658/83 581/657/83 593/752/83 -f 620/675/81 622/803/81 624/812/81 -f 622/803/81 578/664/81 624/812/81 -f 586/663/81 601/813/81 603/814/81 -f 603/814/81 594/815/81 586/663/81 -f 594/815/81 596/754/81 586/663/81 -f 596/754/81 624/812/81 578/664/81 -f 916/755/79 918/816/79 919/756/79 +f 948/642/81 946/643/81 944/644/81 +f 553/645/82 543/646/82 547/647/82 +f 582/648/83 576/649/83 574/650/83 +f 576/649/84 585/651/84 577/652/84 +f 572/653/84 582/648/84 574/650/84 +f 585/654/85 575/655/85 577/656/85 +f 575/655/84 581/657/84 573/658/84 +f 579/659/82 574/660/82 575/661/82 +f 579/662/84 586/663/84 578/664/84 +f 597/665/81 594/666/81 595/667/81 +f 607/668/83 605/669/83 601/670/83 +f 618/671/85 598/672/85 600/673/85 +f 594/666/82 602/674/82 595/667/82 +f 620/675/86 625/676/86 621/677/86 +f 597/665/87 624/678/87 596/679/87 +f 600/680/85 587/681/85 602/682/85 +f 578/664/83 590/683/83 592/684/83 +f 761/685/85 747/686/85 745/687/85 +f 763/688/85 751/689/85 747/686/85 +f 765/690/85 749/691/85 751/689/85 +f 767/692/85 753/693/85 749/691/85 +f 769/694/85 757/695/85 753/693/85 +f 771/696/85 755/697/85 757/695/85 +f 755/697/85 775/698/85 759/699/85 +f 779/700/85 775/698/85 777/701/85 +f 746/702/83 760/703/83 744/704/83 +f 774/705/83 754/706/83 758/707/83 +f 774/705/83 778/708/83 776/709/83 +f 785/710/85 783/711/85 781/712/85 +f 787/713/85 791/714/85 783/711/85 +f 789/715/85 795/716/85 791/714/85 +f 793/717/85 799/718/85 795/716/85 +f 799/718/85 801/719/85 803/720/85 +f 800/721/83 798/722/83 802/723/83 +f 796/724/83 794/725/83 798/722/83 +f 794/725/83 788/726/83 790/727/83 +f 786/728/83 790/727/83 788/726/83 +f 782/729/83 784/730/83 780/731/83 +f 809/732/81 812/733/81 808/734/81 +f 807/735/85 813/736/85 809/737/85 +f 808/738/83 810/739/83 805/740/83 +f 819/741/85 814/742/85 806/743/85 +f 816/744/83 815/745/83 818/746/83 +f 816/747/82 817/748/82 819/749/82 +f 805/740/83 815/745/83 804/750/83 +f 814/742/85 807/735/85 806/743/85 +f 579/751/85 593/752/85 591/753/85 +f 578/664/83 586/663/83 596/754/83 +f 916/755/81 919/756/81 917/757/81 +f 944/644/81 943/758/81 942/759/81 +f 942/759/81 949/760/81 948/642/81 +f 948/642/81 947/761/81 946/643/81 +f 946/643/81 945/762/81 944/644/81 +f 944/644/81 942/759/81 948/642/81 +f 543/646/82 544/763/82 545/764/82 +f 545/764/82 546/765/82 543/646/82 +f 546/765/82 547/647/82 543/646/82 +f 547/647/82 548/766/82 549/767/82 +f 549/767/82 550/768/82 551/769/82 +f 551/769/82 552/770/82 553/645/82 +f 553/645/82 554/771/82 543/646/82 +f 547/647/82 549/767/82 551/769/82 +f 551/769/82 553/645/82 547/647/82 +f 582/648/83 584/772/83 576/649/83 +f 576/649/84 584/772/84 585/651/84 +f 572/653/84 580/773/84 582/648/84 +f 585/654/85 583/774/85 575/655/85 +f 575/655/84 583/774/84 581/657/84 +f 575/661/82 573/775/82 579/659/82 +f 579/659/82 578/776/82 574/660/82 +f 578/776/82 572/777/82 574/660/82 +f 574/660/82 576/649/82 577/652/82 +f 574/660/82 577/652/82 575/661/82 +f 579/662/84 587/778/84 586/663/84 +f 597/665/81 596/679/81 594/666/81 +f 605/669/83 603/779/83 601/670/83 +f 601/670/83 586/780/83 599/781/83 +f 599/781/83 619/782/83 601/670/83 +f 619/782/83 617/783/83 601/670/83 +f 617/783/83 615/784/83 601/670/83 +f 615/784/83 613/785/83 601/670/83 +f 613/785/83 611/786/83 601/670/83 +f 611/786/83 609/787/83 601/670/83 +f 609/787/83 607/668/83 601/670/83 +f 598/672/85 587/788/85 600/673/85 +f 600/673/85 602/789/85 604/790/85 +f 604/790/85 606/791/85 600/673/85 +f 606/791/85 608/792/85 600/673/85 +f 608/792/85 610/793/85 600/673/85 +f 610/793/85 612/794/85 600/673/85 +f 612/794/85 614/795/85 600/673/85 +f 614/795/85 616/796/85 600/673/85 +f 616/796/85 618/671/85 600/673/85 +f 594/666/82 603/797/82 602/674/82 +f 620/675/86 624/678/86 625/676/86 +f 597/665/87 625/676/87 624/678/87 +f 587/681/85 579/751/85 597/798/85 +f 579/751/85 623/799/85 625/800/85 +f 597/798/85 579/751/85 625/800/85 +f 623/799/85 621/801/85 625/800/85 +f 597/798/85 595/802/85 587/681/85 +f 595/802/85 602/682/85 587/681/85 +f 580/773/83 572/653/83 592/684/83 +f 572/653/83 578/664/83 592/684/83 +f 578/664/83 622/803/83 590/683/83 +f 622/803/83 588/804/83 590/683/83 +f 761/685/85 763/688/85 747/686/85 +f 763/688/85 765/690/85 751/689/85 +f 765/690/85 767/692/85 749/691/85 +f 767/692/85 769/694/85 753/693/85 +f 769/694/85 771/696/85 757/695/85 +f 771/696/85 773/805/85 755/697/85 +f 755/697/85 773/805/85 775/698/85 +f 779/700/85 759/699/85 775/698/85 +f 746/702/83 762/806/83 760/703/83 +f 774/705/83 772/807/83 754/706/83 +f 774/705/83 758/707/83 778/708/83 +f 785/710/85 787/713/85 783/711/85 +f 787/713/85 789/715/85 791/714/85 +f 789/715/85 793/717/85 795/716/85 +f 793/717/85 797/808/85 799/718/85 +f 799/718/85 797/808/85 801/719/85 +f 800/721/83 796/724/83 798/722/83 +f 796/724/83 792/809/83 794/725/83 +f 794/725/83 792/809/83 788/726/83 +f 786/728/83 782/729/83 790/727/83 +f 782/729/83 786/728/83 784/730/83 +f 809/732/81 813/736/81 812/733/81 +f 807/735/85 811/810/85 813/736/85 +f 808/738/83 812/733/83 810/739/83 +f 819/741/85 817/748/85 814/742/85 +f 816/744/83 804/750/83 815/745/83 +f 816/747/82 818/746/82 817/748/82 +f 805/740/83 810/739/83 815/745/83 +f 814/742/85 811/810/85 807/735/85 +f 589/811/85 623/799/85 591/753/85 +f 623/799/85 579/751/85 591/753/85 +f 579/751/85 573/658/85 593/752/85 +f 573/658/85 581/657/85 593/752/85 +f 620/675/83 622/803/83 624/812/83 +f 622/803/83 578/664/83 624/812/83 +f 586/663/83 601/813/83 603/814/83 +f 603/814/83 594/815/83 586/663/83 +f 594/815/83 596/754/83 586/663/83 +f 596/754/83 624/812/83 578/664/83 +f 916/755/81 918/816/81 919/756/81 s 1 -f 563/817/86 556/818/87 561/819/87 -f 838/820/88 837/821/89 854/822/90 -f 832/823/91 838/820/88 854/822/90 -f 842/824/92 838/820/88 832/823/91 -f 849/825/93 838/820/88 842/824/92 -f 847/826/94 838/820/88 849/825/93 -f 839/827/95 855/828/96 838/820/88 -f 844/829/97 838/820/88 855/828/96 -f 841/830/98 838/820/88 844/829/97 -f 852/831/99 838/820/88 841/830/98 -f 846/832/100 838/820/88 852/831/99 -f 837/821/89 838/820/88 846/832/100 -f 839/827/95 838/820/88 847/826/94 -f 831/833/101 848/834/102 850/835/103 -f 840/836/104 830/837/105 829/838/106 -f 829/838/106 856/839/107 840/836/104 -f 845/840/108 828/841/109 827/842/110 -f 826/843/111 845/840/108 827/842/110 -f 825/844/112 835/845/113 826/843/111 -f 824/846/114 853/847/115 825/844/112 -f 823/848/116 834/849/117 824/846/114 -f 822/850/118 836/851/119 823/848/116 -f 821/852/120 851/853/121 822/850/118 -f 820/854/122 833/855/123 821/852/120 -f 850/835/103 820/854/122 831/833/101 -f 847/826/94 850/835/103 848/834/102 -f 840/836/104 847/826/94 848/834/102 -f 840/836/104 855/828/96 839/827/95 -f 845/840/108 855/828/96 856/839/107 -f 845/840/108 841/830/98 844/829/97 -f 835/845/113 852/831/99 841/830/98 -f 846/832/100 853/847/115 834/849/117 -f 834/849/117 837/821/89 846/832/100 -f 836/851/119 854/822/90 837/821/89 -f 851/853/121 832/823/91 854/822/90 -f 843/856/124 832/823/91 833/855/123 -f 843/856/124 849/825/93 842/824/92 -f 858/857/125 562/858/86 559/859/86 -f 859/860/125 563/817/86 565/861/125 -f 564/862/125 859/860/125 565/861/125 -f 568/863/88 569/864/88 555/865/88 -f 555/865/88 560/866/87 570/867/88 -f 560/866/87 559/859/86 562/858/86 -f 561/819/87 857/868/88 571/869/88 -f 874/870/126 877/871/84 875/872/126 -f 872/873/127 875/872/126 873/874/127 -f 870/875/128 873/874/127 871/876/128 -f 626/877/129 629/878/130 627/879/131 -f 588/880/132 627/879/131 589/881/133 -f 628/882/134 631/883/135 629/878/130 -f 630/884/136 633/885/137 631/883/135 -f 632/886/138 635/887/139 633/888/137 -f 634/889/140 637/890/141 635/891/139 -f 637/890/141 620/892/142 621/893/143 -f 622/894/144 649/895/145 588/896/132 -f 637/897/141 645/898/146 635/899/139 -f 646/900/147 639/901/148 642/902/149 -f 635/899/139 644/903/150 633/904/137 -f 631/905/135 644/903/150 643/906/151 -f 629/907/130 643/906/151 642/902/149 -f 623/908/152 640/909/153 638/910/154 -f 627/911/131 642/902/149 641/912/155 -f 623/908/152 639/901/148 621/913/143 -f 627/911/131 640/909/153 589/914/133 -f 637/897/141 639/901/148 646/900/147 -f 650/915/156 649/895/145 648/916/157 -f 636/917/158 654/918/159 655/919/160 -f 632/886/138 654/918/159 634/920/140 -f 630/884/136 653/921/161 632/886/138 -f 636/917/158 647/922/162 620/892/142 -f 628/923/134 652/924/163 630/884/136 -f 626/925/129 651/926/164 628/923/134 -f 622/894/144 647/922/162 648/916/157 -f 588/896/132 650/915/156 626/925/129 -f 667/927/165 660/928/80 659/929/165 -f 665/930/166 658/931/83 657/932/166 -f 670/933/81 663/934/167 662/935/81 -f 668/936/80 661/937/168 660/928/80 -f 666/938/83 659/929/165 658/931/83 -f 664/939/88 657/932/166 656/940/88 -f 671/941/167 656/940/88 663/934/167 -f 669/942/168 662/935/81 661/943/168 -f 672/944/79 679/945/169 673/946/170 -f 673/946/170 680/947/171 674/948/172 -f 674/948/172 681/949/173 675/950/82 -f 675/951/82 682/952/174 676/953/175 -f 682/952/174 677/954/176 676/953/175 -f 677/954/176 678/955/177 672/956/79 -f 684/957/178 679/945/169 678/958/177 -f 685/959/179 680/947/171 679/945/169 -f 680/947/171 687/960/180 681/949/173 -f 687/961/180 682/952/174 681/962/173 -f 688/963/181 683/964/182 682/952/174 -f 689/965/183 678/955/177 683/964/182 -f 690/966/88 685/959/179 684/957/178 -f 691/967/184 686/968/185 685/959/179 -f 692/969/186 687/960/180 686/968/185 -f 687/961/180 694/970/187 688/963/181 -f 688/963/181 695/971/188 689/965/183 -f 695/971/188 684/972/178 689/965/183 -f 696/973/189 691/967/184 690/966/88 -f 691/967/184 698/974/190 692/969/186 -f 692/969/186 699/975/191 693/976/80 -f 693/977/80 700/978/192 694/970/187 -f 700/978/192 695/971/188 694/970/187 -f 695/971/188 696/979/189 690/980/88 -f 696/973/189 703/981/193 697/982/194 -f 703/981/193 698/974/190 697/982/194 -f 704/983/195 699/975/191 698/974/190 -f 705/984/196 700/978/192 699/985/191 -f 706/986/197 701/987/198 700/978/192 -f 707/988/199 696/979/189 701/987/198 -f 708/989/82 703/981/193 702/990/200 -f 709/991/201 704/983/195 703/981/193 -f 710/992/202 705/993/196 704/983/195 -f 711/994/79 706/986/197 705/984/196 -f 706/986/197 713/995/203 707/988/199 -f 713/995/203 702/996/200 707/988/199 -f 708/989/82 715/997/204 709/991/201 -f 709/991/201 716/998/205 710/992/202 -f 710/992/202 717/999/177 711/1000/79 -f 711/994/79 718/1001/206 712/1002/207 -f 718/1001/206 713/995/203 712/1002/207 -f 713/995/203 714/1003/173 708/1004/82 -f 720/1005/180 715/997/204 714/1006/173 -f 721/1007/208 716/998/205 715/997/204 -f 716/998/205 723/1008/178 717/999/177 -f 723/1009/178 718/1001/206 717/1010/177 -f 724/1011/209 719/1012/210 718/1001/206 -f 725/1013/211 714/1003/173 719/1012/210 -f 726/1014/80 721/1007/208 720/1005/180 -f 727/1015/212 722/1016/213 721/1007/208 -f 728/1017/214 723/1008/178 722/1016/213 -f 723/1009/178 730/1018/215 724/1011/209 -f 724/1011/209 731/1019/216 725/1013/211 -f 731/1019/216 720/1020/180 725/1013/211 -f 732/1021/191 727/1015/212 726/1014/80 -f 727/1015/212 734/1022/217 728/1017/214 -f 734/1022/217 729/1023/88 728/1017/214 -f 729/1024/88 736/1025/218 730/1018/215 -f 736/1025/218 731/1019/216 730/1018/215 -f 731/1019/216 732/1026/191 726/1027/80 -f 732/1021/191 739/1028/219 733/1029/220 -f 739/1028/219 734/1022/217 733/1029/220 -f 740/1030/221 735/1031/189 734/1022/217 -f 735/1032/189 742/1033/222 736/1025/218 -f 742/1033/222 737/1034/223 736/1025/218 -f 743/1035/224 732/1026/191 737/1034/223 -f 672/944/79 739/1028/219 738/1036/196 -f 673/946/170 740/1030/221 739/1028/219 -f 674/948/172 741/1037/200 740/1030/221 -f 675/951/82 742/1033/222 741/1038/200 -f 742/1033/222 677/954/176 743/1035/224 -f 677/954/176 738/1039/196 743/1035/224 -f 905/1040/225 902/1041/226 903/1042/226 -f 903/1042/226 900/1043/227 901/1044/227 -f 901/1044/227 898/1045/228 899/1046/228 -f 899/1046/228 896/1047/229 897/1048/229 -f 897/1048/229 894/1049/80 895/1050/80 -f 889/1051/230 892/1052/231 888/1053/230 -f 888/1053/230 891/1054/232 889/1051/230 -f 887/1055/233 890/1056/232 886/1057/233 -f 883/1058/234 886/1057/233 882/1059/234 -f 885/1060/229 880/1061/235 881/1062/235 -f 882/1059/234 885/1060/229 883/1058/234 -f 881/1062/235 878/1063/236 879/1064/236 -f 750/1065/81 762/806/81 746/702/81 -f 766/1066/81 750/1065/81 748/1067/81 -f 768/1068/81 748/1067/81 752/1069/81 -f 756/1070/81 768/1068/81 752/1069/81 -f 754/706/81 770/1071/81 756/1070/81 -f 935/1072/173 936/1073/82 934/1074/173 -f 933/1075/180 934/1074/173 932/1076/180 -f 930/1077/80 933/1075/180 932/1076/180 -f 929/1078/191 930/1077/80 928/1079/191 -f 927/1080/196 928/1079/191 926/1081/196 -f 925/1082/237 926/1081/196 924/1083/237 -f 868/1084/238 871/876/128 869/1085/238 -f 866/1086/239 869/1085/238 867/1087/239 -f 813/736/240 810/739/241 812/733/242 -f 864/1088/243 867/1087/239 865/1089/243 -f 862/1090/244 865/1089/243 863/1091/244 -f 860/1092/245 863/1091/244 861/1093/245 -f 818/746/246 814/742/247 817/748/248 -f 811/810/249 815/745/250 810/739/241 -f 906/1094/88 909/1095/251 907/1096/88 -f 908/1097/251 911/1098/252 909/1095/251 -f 910/1099/252 913/1100/253 911/1098/252 -f 912/1101/253 915/1102/254 913/1100/253 -f 914/1103/254 917/1104/255 915/1102/254 -f 937/1105/82 938/1106/200 936/1073/82 -f 939/1107/200 940/1108/189 938/1106/200 -f 941/1109/189 922/1110/256 940/1108/189 -f 921/1111/88 923/1112/256 920/1113/88 -f 563/817/86 557/1114/86 556/818/87 -f 831/833/101 830/837/105 848/834/102 -f 840/836/104 848/834/102 830/837/105 -f 829/838/106 828/841/109 856/839/107 -f 845/840/108 856/839/107 828/841/109 -f 826/843/111 835/845/113 845/840/108 -f 825/844/112 853/847/115 835/845/113 -f 824/846/114 834/849/117 853/847/115 -f 823/848/116 836/851/119 834/849/117 -f 822/850/118 851/853/121 836/851/119 -f 821/852/120 833/855/123 851/853/121 -f 820/854/122 843/856/124 833/855/123 -f 850/835/103 843/856/124 820/854/122 -f 847/826/94 849/825/93 850/835/103 -f 840/836/104 839/827/95 847/826/94 -f 840/836/104 856/839/107 855/828/96 -f 845/840/108 844/829/97 855/828/96 -f 845/840/108 835/845/113 841/830/98 -f 835/845/113 853/847/115 852/831/99 -f 846/832/100 852/831/99 853/847/115 -f 834/849/117 836/851/119 837/821/89 -f 836/851/119 851/853/121 854/822/90 -f 851/853/121 833/855/123 832/823/91 -f 843/856/124 842/824/92 832/823/91 -f 843/856/124 850/835/103 849/825/93 -f 858/857/125 564/862/125 562/858/86 -f 859/860/125 557/1114/86 563/817/86 -f 564/862/125 858/857/125 859/860/125 -f 568/863/88 566/1115/88 567/1116/88 -f 569/864/88 571/869/88 857/868/88 -f 568/863/88 567/1116/88 569/864/88 -f 555/865/88 570/867/88 568/863/88 -f 569/864/88 857/868/88 555/865/88 -f 555/865/88 558/1117/87 560/866/87 -f 560/866/87 558/1117/87 559/859/86 -f 561/819/87 556/818/87 857/868/88 -f 874/870/126 876/1118/84 877/871/84 -f 872/873/127 874/870/126 875/872/126 -f 870/875/128 872/873/127 873/874/127 -f 626/877/129 628/882/134 629/878/130 -f 588/880/132 626/877/129 627/879/131 -f 628/882/134 630/884/136 631/883/135 -f 630/884/136 632/886/138 633/885/137 -f 632/886/138 634/920/140 635/887/139 -f 634/889/140 636/1119/158 637/890/141 -f 637/890/141 636/1119/158 620/892/142 -f 622/894/144 648/916/157 649/895/145 -f 637/897/141 646/900/147 645/898/146 -f 639/901/148 638/910/154 642/902/149 -f 638/910/154 640/909/153 641/912/155 -f 641/912/155 642/902/149 638/910/154 -f 642/902/149 643/906/151 646/900/147 -f 643/906/151 644/903/150 645/898/146 -f 646/900/147 643/906/151 645/898/146 -f 635/899/139 645/898/146 644/903/150 -f 631/905/135 633/904/137 644/903/150 -f 629/907/130 631/905/135 643/906/151 -f 623/908/152 589/914/133 640/909/153 -f 627/911/131 629/907/130 642/902/149 -f 623/908/152 638/910/154 639/901/148 -f 627/911/131 641/912/155 640/909/153 -f 637/897/141 621/913/143 639/901/148 -f 648/916/157 647/922/162 651/926/164 -f 647/922/162 655/919/160 651/926/164 -f 655/919/160 654/918/159 652/924/163 -f 654/918/159 653/921/161 652/924/163 -f 652/924/163 651/926/164 655/919/160 -f 651/926/164 650/915/156 648/916/157 -f 636/917/158 634/920/140 654/918/159 -f 632/886/138 653/921/161 654/918/159 -f 630/884/136 652/924/163 653/921/161 -f 636/917/158 655/919/160 647/922/162 -f 628/923/134 651/926/164 652/924/163 -f 626/925/129 650/915/156 651/926/164 -f 622/894/144 620/892/142 647/922/162 -f 588/896/132 649/895/145 650/915/156 -f 667/927/165 668/936/80 660/928/80 -f 665/930/166 666/938/83 658/931/83 -f 670/933/81 671/941/167 663/934/167 -f 668/936/80 669/1120/168 661/937/168 -f 666/938/83 667/927/165 659/929/165 -f 664/939/88 665/930/166 657/932/166 -f 671/941/167 664/939/88 656/940/88 -f 669/942/168 670/933/81 662/935/81 -f 672/944/79 678/958/177 679/945/169 -f 673/946/170 679/945/169 680/947/171 -f 674/948/172 680/947/171 681/949/173 -f 675/951/82 681/962/173 682/952/174 -f 682/952/174 683/964/182 677/954/176 -f 677/954/176 683/964/182 678/955/177 -f 684/957/178 685/959/179 679/945/169 -f 685/959/179 686/968/185 680/947/171 -f 680/947/171 686/968/185 687/960/180 -f 687/961/180 688/963/181 682/952/174 -f 688/963/181 689/965/183 683/964/182 -f 689/965/183 684/972/178 678/955/177 -f 690/966/88 691/967/184 685/959/179 -f 691/967/184 692/969/186 686/968/185 -f 692/969/186 693/976/80 687/960/180 -f 687/961/180 693/977/80 694/970/187 -f 688/963/181 694/970/187 695/971/188 -f 695/971/188 690/980/88 684/972/178 -f 696/973/189 697/982/194 691/967/184 -f 691/967/184 697/982/194 698/974/190 -f 692/969/186 698/974/190 699/975/191 -f 693/977/80 699/985/191 700/978/192 -f 700/978/192 701/987/198 695/971/188 -f 695/971/188 701/987/198 696/979/189 -f 696/973/189 702/990/200 703/981/193 -f 703/981/193 704/983/195 698/974/190 -f 704/983/195 705/993/196 699/975/191 -f 705/984/196 706/986/197 700/978/192 -f 706/986/197 707/988/199 701/987/198 -f 707/988/199 702/996/200 696/979/189 -f 708/989/82 709/991/201 703/981/193 -f 709/991/201 710/992/202 704/983/195 -f 710/992/202 711/1000/79 705/993/196 -f 711/994/79 712/1002/207 706/986/197 -f 706/986/197 712/1002/207 713/995/203 -f 713/995/203 708/1004/82 702/996/200 -f 708/989/82 714/1006/173 715/997/204 -f 709/991/201 715/997/204 716/998/205 -f 710/992/202 716/998/205 717/999/177 -f 711/994/79 717/1010/177 718/1001/206 -f 718/1001/206 719/1012/210 713/995/203 -f 713/995/203 719/1012/210 714/1003/173 -f 720/1005/180 721/1007/208 715/997/204 -f 721/1007/208 722/1016/213 716/998/205 -f 716/998/205 722/1016/213 723/1008/178 -f 723/1009/178 724/1011/209 718/1001/206 -f 724/1011/209 725/1013/211 719/1012/210 -f 725/1013/211 720/1020/180 714/1003/173 -f 726/1014/80 727/1015/212 721/1007/208 -f 727/1015/212 728/1017/214 722/1016/213 -f 728/1017/214 729/1023/88 723/1008/178 -f 723/1009/178 729/1024/88 730/1018/215 -f 724/1011/209 730/1018/215 731/1019/216 -f 731/1019/216 726/1027/80 720/1020/180 -f 732/1021/191 733/1029/220 727/1015/212 -f 727/1015/212 733/1029/220 734/1022/217 -f 734/1022/217 735/1031/189 729/1023/88 -f 729/1024/88 735/1032/189 736/1025/218 -f 736/1025/218 737/1034/223 731/1019/216 -f 731/1019/216 737/1034/223 732/1026/191 -f 732/1021/191 738/1036/196 739/1028/219 -f 739/1028/219 740/1030/221 734/1022/217 -f 740/1030/221 741/1037/200 735/1031/189 -f 735/1032/189 741/1038/200 742/1033/222 -f 742/1033/222 743/1035/224 737/1034/223 -f 743/1035/224 738/1039/196 732/1026/191 -f 672/944/79 673/946/170 739/1028/219 -f 673/946/170 674/948/172 740/1030/221 -f 674/948/172 675/950/82 741/1037/200 -f 675/951/82 676/953/175 742/1033/222 -f 742/1033/222 676/953/175 677/954/176 -f 677/954/176 672/956/79 738/1039/196 -f 905/1040/225 904/1121/225 902/1041/226 -f 903/1042/226 902/1041/226 900/1043/227 -f 901/1044/227 900/1043/227 898/1045/228 -f 899/1046/228 898/1045/228 896/1047/229 -f 897/1048/229 896/1047/229 894/1049/80 -f 889/1051/230 893/1122/231 892/1052/231 -f 888/1053/230 890/1056/232 891/1054/232 -f 887/1055/233 891/1054/232 890/1056/232 -f 883/1058/234 887/1055/233 886/1057/233 -f 885/1060/229 884/1123/229 880/1061/235 -f 882/1059/234 884/1123/229 885/1060/229 -f 881/1062/235 880/1061/235 878/1063/236 -f 750/1065/81 764/1124/81 762/806/81 -f 766/1066/81 764/1124/81 750/1065/81 -f 768/1068/81 766/1066/81 748/1067/81 -f 756/1070/81 770/1071/81 768/1068/81 -f 754/706/81 772/807/81 770/1071/81 -f 935/1072/173 937/1105/82 936/1073/82 -f 933/1075/180 935/1072/173 934/1074/173 -f 930/1077/80 931/1125/80 933/1075/180 -f 929/1078/191 931/1125/80 930/1077/80 -f 927/1080/196 929/1078/191 928/1079/191 -f 925/1082/237 927/1080/196 926/1081/196 -f 868/1084/238 870/875/128 871/876/128 -f 866/1086/239 868/1084/238 869/1085/238 -f 813/736/240 811/810/249 810/739/241 -f 864/1088/243 866/1086/239 867/1087/239 -f 862/1090/244 864/1088/243 865/1089/243 -f 860/1092/245 862/1090/244 863/1091/244 -f 818/746/246 815/745/250 814/742/247 -f 811/810/249 814/742/247 815/745/250 -f 906/1094/88 908/1097/251 909/1095/251 -f 908/1097/251 910/1099/252 911/1098/252 -f 910/1099/252 912/1101/253 913/1100/253 -f 912/1101/253 914/1103/254 915/1102/254 -f 914/1103/254 916/1126/255 917/1104/255 -f 937/1105/82 939/1107/200 938/1106/200 -f 939/1107/200 941/1109/189 940/1108/189 -f 941/1109/189 923/1127/256 922/1110/256 -f 921/1111/88 922/1128/256 923/1112/256 +f 563/817/88 556/818/89 561/819/89 +f 838/820/90 837/821/91 854/822/92 +f 832/823/93 838/820/90 854/822/92 +f 842/824/94 838/820/90 832/823/93 +f 849/825/95 838/820/90 842/824/94 +f 847/826/96 838/820/90 849/825/95 +f 839/827/97 855/828/98 838/820/90 +f 844/829/99 838/820/90 855/828/98 +f 841/830/100 838/820/90 844/829/99 +f 852/831/101 838/820/90 841/830/100 +f 846/832/102 838/820/90 852/831/101 +f 837/821/91 838/820/90 846/832/102 +f 839/827/97 838/820/90 847/826/96 +f 831/833/103 848/834/104 850/835/105 +f 840/836/106 830/837/107 829/838/108 +f 829/838/108 856/839/109 840/836/106 +f 845/840/110 828/841/111 827/842/112 +f 826/843/113 845/840/110 827/842/112 +f 825/844/114 835/845/115 826/843/113 +f 824/846/116 853/847/117 825/844/114 +f 823/848/118 834/849/119 824/846/116 +f 822/850/120 836/851/121 823/848/118 +f 821/852/122 851/853/123 822/850/120 +f 820/854/124 833/855/125 821/852/122 +f 850/835/105 820/854/124 831/833/103 +f 847/826/96 850/835/105 848/834/104 +f 840/836/106 847/826/96 848/834/104 +f 840/836/106 855/828/98 839/827/97 +f 845/840/110 855/828/98 856/839/109 +f 845/840/110 841/830/100 844/829/99 +f 835/845/115 852/831/101 841/830/100 +f 846/832/102 853/847/117 834/849/119 +f 834/849/119 837/821/91 846/832/102 +f 836/851/121 854/822/92 837/821/91 +f 851/853/123 832/823/93 854/822/92 +f 843/856/126 832/823/93 833/855/125 +f 843/856/126 849/825/95 842/824/94 +f 858/857/127 562/858/88 559/859/88 +f 859/860/127 563/817/88 565/861/127 +f 564/862/127 859/860/127 565/861/127 +f 568/863/90 569/864/90 555/865/90 +f 555/865/90 560/866/89 570/867/90 +f 560/866/89 559/859/88 562/858/88 +f 561/819/89 857/868/90 571/869/90 +f 874/870/128 877/871/86 875/872/128 +f 872/873/129 875/872/128 873/874/129 +f 870/875/130 873/874/129 871/876/130 +f 626/877/131 629/878/132 627/879/133 +f 588/880/134 627/879/133 589/881/135 +f 628/882/136 631/883/137 629/878/132 +f 630/884/138 633/885/139 631/883/137 +f 632/886/140 635/887/141 633/888/139 +f 634/889/142 637/890/143 635/891/141 +f 637/890/143 620/892/144 621/893/145 +f 622/894/146 649/895/147 588/896/134 +f 637/897/143 645/898/148 635/899/141 +f 646/900/149 639/901/150 642/902/151 +f 635/899/141 644/903/152 633/904/139 +f 631/905/137 644/903/152 643/906/153 +f 629/907/132 643/906/153 642/902/151 +f 623/908/154 640/909/155 638/910/156 +f 627/911/133 642/902/151 641/912/157 +f 623/908/154 639/901/150 621/913/145 +f 627/911/133 640/909/155 589/914/135 +f 637/897/143 639/901/150 646/900/149 +f 650/915/158 649/895/147 648/916/159 +f 636/917/160 654/918/161 655/919/162 +f 632/886/140 654/918/161 634/920/142 +f 630/884/138 653/921/163 632/886/140 +f 636/917/160 647/922/164 620/892/144 +f 628/923/136 652/924/165 630/884/138 +f 626/925/131 651/926/166 628/923/136 +f 622/894/146 647/922/164 648/916/159 +f 588/896/134 650/915/158 626/925/131 +f 667/927/167 660/928/82 659/929/167 +f 665/930/168 658/931/85 657/932/168 +f 670/933/83 663/934/169 662/935/83 +f 668/936/82 661/937/170 660/928/82 +f 666/938/85 659/929/167 658/931/85 +f 664/939/90 657/932/168 656/940/90 +f 671/941/169 656/940/90 663/934/169 +f 669/942/170 662/935/83 661/943/170 +f 672/944/81 679/945/171 673/946/172 +f 673/946/172 680/947/173 674/948/174 +f 674/948/174 681/949/175 675/950/84 +f 675/951/84 682/952/176 676/953/177 +f 682/952/176 677/954/178 676/953/177 +f 677/954/178 678/955/179 672/956/81 +f 684/957/180 679/945/171 678/958/179 +f 685/959/181 680/947/173 679/945/171 +f 680/947/173 687/960/182 681/949/175 +f 687/961/182 682/952/176 681/962/175 +f 688/963/183 683/964/184 682/952/176 +f 689/965/185 678/955/179 683/964/184 +f 690/966/90 685/959/181 684/957/180 +f 691/967/186 686/968/187 685/959/181 +f 692/969/188 687/960/182 686/968/187 +f 687/961/182 694/970/189 688/963/183 +f 688/963/183 695/971/190 689/965/185 +f 695/971/190 684/972/180 689/965/185 +f 696/973/191 691/967/186 690/966/90 +f 691/967/186 698/974/192 692/969/188 +f 692/969/188 699/975/193 693/976/82 +f 693/977/82 700/978/194 694/970/189 +f 700/978/194 695/971/190 694/970/189 +f 695/971/190 696/979/191 690/980/90 +f 696/973/191 703/981/195 697/982/196 +f 703/981/195 698/974/192 697/982/196 +f 704/983/197 699/975/193 698/974/192 +f 705/984/198 700/978/194 699/985/193 +f 706/986/199 701/987/200 700/978/194 +f 707/988/201 696/979/191 701/987/200 +f 708/989/84 703/981/195 702/990/202 +f 709/991/203 704/983/197 703/981/195 +f 710/992/204 705/993/198 704/983/197 +f 711/994/81 706/986/199 705/984/198 +f 706/986/199 713/995/205 707/988/201 +f 713/995/205 702/996/202 707/988/201 +f 708/989/84 715/997/206 709/991/203 +f 709/991/203 716/998/207 710/992/204 +f 710/992/204 717/999/179 711/1000/81 +f 711/994/81 718/1001/208 712/1002/209 +f 718/1001/208 713/995/205 712/1002/209 +f 713/995/205 714/1003/175 708/1004/84 +f 720/1005/182 715/997/206 714/1006/175 +f 721/1007/210 716/998/207 715/997/206 +f 716/998/207 723/1008/180 717/999/179 +f 723/1009/180 718/1001/208 717/1010/179 +f 724/1011/211 719/1012/212 718/1001/208 +f 725/1013/213 714/1003/175 719/1012/212 +f 726/1014/82 721/1007/210 720/1005/182 +f 727/1015/214 722/1016/215 721/1007/210 +f 728/1017/216 723/1008/180 722/1016/215 +f 723/1009/180 730/1018/217 724/1011/211 +f 724/1011/211 731/1019/218 725/1013/213 +f 731/1019/218 720/1020/182 725/1013/213 +f 732/1021/193 727/1015/214 726/1014/82 +f 727/1015/214 734/1022/219 728/1017/216 +f 734/1022/219 729/1023/90 728/1017/216 +f 729/1024/90 736/1025/220 730/1018/217 +f 736/1025/220 731/1019/218 730/1018/217 +f 731/1019/218 732/1026/193 726/1027/82 +f 732/1021/193 739/1028/221 733/1029/222 +f 739/1028/221 734/1022/219 733/1029/222 +f 740/1030/223 735/1031/191 734/1022/219 +f 735/1032/191 742/1033/224 736/1025/220 +f 742/1033/224 737/1034/225 736/1025/220 +f 743/1035/226 732/1026/193 737/1034/225 +f 672/944/81 739/1028/221 738/1036/198 +f 673/946/172 740/1030/223 739/1028/221 +f 674/948/174 741/1037/202 740/1030/223 +f 675/951/84 742/1033/224 741/1038/202 +f 742/1033/224 677/954/178 743/1035/226 +f 677/954/178 738/1039/198 743/1035/226 +f 905/1040/227 902/1041/228 903/1042/228 +f 903/1042/228 900/1043/229 901/1044/229 +f 901/1044/229 898/1045/230 899/1046/230 +f 899/1046/230 896/1047/231 897/1048/231 +f 897/1048/231 894/1049/82 895/1050/82 +f 889/1051/232 892/1052/233 888/1053/232 +f 888/1053/232 891/1054/234 889/1051/232 +f 887/1055/235 890/1056/234 886/1057/235 +f 883/1058/236 886/1057/235 882/1059/236 +f 885/1060/231 880/1061/237 881/1062/237 +f 882/1059/236 885/1060/231 883/1058/236 +f 881/1062/237 878/1063/238 879/1064/238 +f 750/1065/83 762/806/83 746/702/83 +f 766/1066/83 750/1065/83 748/1067/83 +f 768/1068/83 748/1067/83 752/1069/83 +f 756/1070/83 768/1068/83 752/1069/83 +f 754/706/83 770/1071/83 756/1070/83 +f 935/1072/175 936/1073/84 934/1074/175 +f 933/1075/182 934/1074/175 932/1076/182 +f 930/1077/82 933/1075/182 932/1076/182 +f 929/1078/193 930/1077/82 928/1079/193 +f 927/1080/198 928/1079/193 926/1081/198 +f 925/1082/239 926/1081/198 924/1083/239 +f 868/1084/240 871/876/130 869/1085/240 +f 866/1086/241 869/1085/240 867/1087/241 +f 813/736/242 810/739/243 812/733/244 +f 864/1088/245 867/1087/241 865/1089/245 +f 862/1090/246 865/1089/245 863/1091/246 +f 860/1092/247 863/1091/246 861/1093/247 +f 818/746/248 814/742/249 817/748/250 +f 811/810/251 815/745/252 810/739/243 +f 906/1094/90 909/1095/253 907/1096/90 +f 908/1097/253 911/1098/254 909/1095/253 +f 910/1099/254 913/1100/255 911/1098/254 +f 912/1101/255 915/1102/256 913/1100/255 +f 914/1103/256 917/1104/257 915/1102/256 +f 937/1105/84 938/1106/202 936/1073/84 +f 939/1107/202 940/1108/191 938/1106/202 +f 941/1109/191 922/1110/258 940/1108/191 +f 921/1111/90 923/1112/258 920/1113/90 +f 563/817/88 557/1114/88 556/818/89 +f 831/833/103 830/837/107 848/834/104 +f 840/836/106 848/834/104 830/837/107 +f 829/838/108 828/841/111 856/839/109 +f 845/840/110 856/839/109 828/841/111 +f 826/843/113 835/845/115 845/840/110 +f 825/844/114 853/847/117 835/845/115 +f 824/846/116 834/849/119 853/847/117 +f 823/848/118 836/851/121 834/849/119 +f 822/850/120 851/853/123 836/851/121 +f 821/852/122 833/855/125 851/853/123 +f 820/854/124 843/856/126 833/855/125 +f 850/835/105 843/856/126 820/854/124 +f 847/826/96 849/825/95 850/835/105 +f 840/836/106 839/827/97 847/826/96 +f 840/836/106 856/839/109 855/828/98 +f 845/840/110 844/829/99 855/828/98 +f 845/840/110 835/845/115 841/830/100 +f 835/845/115 853/847/117 852/831/101 +f 846/832/102 852/831/101 853/847/117 +f 834/849/119 836/851/121 837/821/91 +f 836/851/121 851/853/123 854/822/92 +f 851/853/123 833/855/125 832/823/93 +f 843/856/126 842/824/94 832/823/93 +f 843/856/126 850/835/105 849/825/95 +f 858/857/127 564/862/127 562/858/88 +f 859/860/127 557/1114/88 563/817/88 +f 564/862/127 858/857/127 859/860/127 +f 568/863/90 566/1115/90 567/1116/90 +f 569/864/90 571/869/90 857/868/90 +f 568/863/90 567/1116/90 569/864/90 +f 555/865/90 570/867/90 568/863/90 +f 569/864/90 857/868/90 555/865/90 +f 555/865/90 558/1117/89 560/866/89 +f 560/866/89 558/1117/89 559/859/88 +f 561/819/89 556/818/89 857/868/90 +f 874/870/128 876/1118/86 877/871/86 +f 872/873/129 874/870/128 875/872/128 +f 870/875/130 872/873/129 873/874/129 +f 626/877/131 628/882/136 629/878/132 +f 588/880/134 626/877/131 627/879/133 +f 628/882/136 630/884/138 631/883/137 +f 630/884/138 632/886/140 633/885/139 +f 632/886/140 634/920/142 635/887/141 +f 634/889/142 636/1119/160 637/890/143 +f 637/890/143 636/1119/160 620/892/144 +f 622/894/146 648/916/159 649/895/147 +f 637/897/143 646/900/149 645/898/148 +f 639/901/150 638/910/156 642/902/151 +f 638/910/156 640/909/155 641/912/157 +f 641/912/157 642/902/151 638/910/156 +f 642/902/151 643/906/153 646/900/149 +f 643/906/153 644/903/152 645/898/148 +f 646/900/149 643/906/153 645/898/148 +f 635/899/141 645/898/148 644/903/152 +f 631/905/137 633/904/139 644/903/152 +f 629/907/132 631/905/137 643/906/153 +f 623/908/154 589/914/135 640/909/155 +f 627/911/133 629/907/132 642/902/151 +f 623/908/154 638/910/156 639/901/150 +f 627/911/133 641/912/157 640/909/155 +f 637/897/143 621/913/145 639/901/150 +f 648/916/159 647/922/164 651/926/166 +f 647/922/164 655/919/162 651/926/166 +f 655/919/162 654/918/161 652/924/165 +f 654/918/161 653/921/163 652/924/165 +f 652/924/165 651/926/166 655/919/162 +f 651/926/166 650/915/158 648/916/159 +f 636/917/160 634/920/142 654/918/161 +f 632/886/140 653/921/163 654/918/161 +f 630/884/138 652/924/165 653/921/163 +f 636/917/160 655/919/162 647/922/164 +f 628/923/136 651/926/166 652/924/165 +f 626/925/131 650/915/158 651/926/166 +f 622/894/146 620/892/144 647/922/164 +f 588/896/134 649/895/147 650/915/158 +f 667/927/167 668/936/82 660/928/82 +f 665/930/168 666/938/85 658/931/85 +f 670/933/83 671/941/169 663/934/169 +f 668/936/82 669/1120/170 661/937/170 +f 666/938/85 667/927/167 659/929/167 +f 664/939/90 665/930/168 657/932/168 +f 671/941/169 664/939/90 656/940/90 +f 669/942/170 670/933/83 662/935/83 +f 672/944/81 678/958/179 679/945/171 +f 673/946/172 679/945/171 680/947/173 +f 674/948/174 680/947/173 681/949/175 +f 675/951/84 681/962/175 682/952/176 +f 682/952/176 683/964/184 677/954/178 +f 677/954/178 683/964/184 678/955/179 +f 684/957/180 685/959/181 679/945/171 +f 685/959/181 686/968/187 680/947/173 +f 680/947/173 686/968/187 687/960/182 +f 687/961/182 688/963/183 682/952/176 +f 688/963/183 689/965/185 683/964/184 +f 689/965/185 684/972/180 678/955/179 +f 690/966/90 691/967/186 685/959/181 +f 691/967/186 692/969/188 686/968/187 +f 692/969/188 693/976/82 687/960/182 +f 687/961/182 693/977/82 694/970/189 +f 688/963/183 694/970/189 695/971/190 +f 695/971/190 690/980/90 684/972/180 +f 696/973/191 697/982/196 691/967/186 +f 691/967/186 697/982/196 698/974/192 +f 692/969/188 698/974/192 699/975/193 +f 693/977/82 699/985/193 700/978/194 +f 700/978/194 701/987/200 695/971/190 +f 695/971/190 701/987/200 696/979/191 +f 696/973/191 702/990/202 703/981/195 +f 703/981/195 704/983/197 698/974/192 +f 704/983/197 705/993/198 699/975/193 +f 705/984/198 706/986/199 700/978/194 +f 706/986/199 707/988/201 701/987/200 +f 707/988/201 702/996/202 696/979/191 +f 708/989/84 709/991/203 703/981/195 +f 709/991/203 710/992/204 704/983/197 +f 710/992/204 711/1000/81 705/993/198 +f 711/994/81 712/1002/209 706/986/199 +f 706/986/199 712/1002/209 713/995/205 +f 713/995/205 708/1004/84 702/996/202 +f 708/989/84 714/1006/175 715/997/206 +f 709/991/203 715/997/206 716/998/207 +f 710/992/204 716/998/207 717/999/179 +f 711/994/81 717/1010/179 718/1001/208 +f 718/1001/208 719/1012/212 713/995/205 +f 713/995/205 719/1012/212 714/1003/175 +f 720/1005/182 721/1007/210 715/997/206 +f 721/1007/210 722/1016/215 716/998/207 +f 716/998/207 722/1016/215 723/1008/180 +f 723/1009/180 724/1011/211 718/1001/208 +f 724/1011/211 725/1013/213 719/1012/212 +f 725/1013/213 720/1020/182 714/1003/175 +f 726/1014/82 727/1015/214 721/1007/210 +f 727/1015/214 728/1017/216 722/1016/215 +f 728/1017/216 729/1023/90 723/1008/180 +f 723/1009/180 729/1024/90 730/1018/217 +f 724/1011/211 730/1018/217 731/1019/218 +f 731/1019/218 726/1027/82 720/1020/182 +f 732/1021/193 733/1029/222 727/1015/214 +f 727/1015/214 733/1029/222 734/1022/219 +f 734/1022/219 735/1031/191 729/1023/90 +f 729/1024/90 735/1032/191 736/1025/220 +f 736/1025/220 737/1034/225 731/1019/218 +f 731/1019/218 737/1034/225 732/1026/193 +f 732/1021/193 738/1036/198 739/1028/221 +f 739/1028/221 740/1030/223 734/1022/219 +f 740/1030/223 741/1037/202 735/1031/191 +f 735/1032/191 741/1038/202 742/1033/224 +f 742/1033/224 743/1035/226 737/1034/225 +f 743/1035/226 738/1039/198 732/1026/193 +f 672/944/81 673/946/172 739/1028/221 +f 673/946/172 674/948/174 740/1030/223 +f 674/948/174 675/950/84 741/1037/202 +f 675/951/84 676/953/177 742/1033/224 +f 742/1033/224 676/953/177 677/954/178 +f 677/954/178 672/956/81 738/1039/198 +f 905/1040/227 904/1121/227 902/1041/228 +f 903/1042/228 902/1041/228 900/1043/229 +f 901/1044/229 900/1043/229 898/1045/230 +f 899/1046/230 898/1045/230 896/1047/231 +f 897/1048/231 896/1047/231 894/1049/82 +f 889/1051/232 893/1122/233 892/1052/233 +f 888/1053/232 890/1056/234 891/1054/234 +f 887/1055/235 891/1054/234 890/1056/234 +f 883/1058/236 887/1055/235 886/1057/235 +f 885/1060/231 884/1123/231 880/1061/237 +f 882/1059/236 884/1123/231 885/1060/231 +f 881/1062/237 880/1061/237 878/1063/238 +f 750/1065/83 764/1124/83 762/806/83 +f 766/1066/83 764/1124/83 750/1065/83 +f 768/1068/83 766/1066/83 748/1067/83 +f 756/1070/83 770/1071/83 768/1068/83 +f 754/706/83 772/807/83 770/1071/83 +f 935/1072/175 937/1105/84 936/1073/84 +f 933/1075/182 935/1072/175 934/1074/175 +f 930/1077/82 931/1125/82 933/1075/182 +f 929/1078/193 931/1125/82 930/1077/82 +f 927/1080/198 929/1078/193 928/1079/193 +f 925/1082/239 927/1080/198 926/1081/198 +f 868/1084/240 870/875/130 871/876/130 +f 866/1086/241 868/1084/240 869/1085/240 +f 813/736/242 811/810/251 810/739/243 +f 864/1088/245 866/1086/241 867/1087/241 +f 862/1090/246 864/1088/245 865/1089/245 +f 860/1092/247 862/1090/246 863/1091/246 +f 818/746/248 815/745/252 814/742/249 +f 811/810/251 814/742/249 815/745/252 +f 906/1094/90 908/1097/253 909/1095/253 +f 908/1097/253 910/1099/254 911/1098/254 +f 910/1099/254 912/1101/255 913/1100/255 +f 912/1101/255 914/1103/256 915/1102/256 +f 914/1103/256 916/1126/257 917/1104/257 +f 937/1105/84 939/1107/202 938/1106/202 +f 939/1107/202 941/1109/191 940/1108/191 +f 941/1109/191 923/1127/258 922/1110/258 +f 921/1111/90 922/1128/258 923/1112/258 diff --git a/src/main/resources/assets/hbm/models/weapons/c130.obj b/src/main/resources/assets/hbm/models/weapons/c130.obj new file mode 100644 index 000000000..062ea4ab5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/c130.obj @@ -0,0 +1,3946 @@ +# Blender v2.79 (sub 0) OBJ File: 'c130.blend' +# www.blender.org +o Prop4 +v 8.876309 4.210099 19.990316 +v 9.975476 4.210099 20.539900 +v 8.876309 3.821485 20.151285 +v 8.876309 3.660516 20.539900 +v 8.876309 3.821485 20.928514 +v 8.876309 4.210099 21.089483 +v 8.876309 4.598713 20.928514 +v 8.876309 4.759683 20.539900 +v 8.876309 4.598713 20.151285 +v 9.092196 4.022467 23.179798 +v 9.092196 4.397732 23.179798 +v 9.092196 4.397732 20.800001 +v 9.092196 4.022467 20.800001 +v 9.259592 4.022467 20.800001 +v 9.259592 4.397732 20.800001 +v 9.259592 4.397732 23.179798 +v 9.259592 4.022467 23.179798 +v 9.092196 4.022467 20.279799 +v 9.092196 4.397732 20.279799 +v 9.092196 4.397732 17.900002 +v 9.092196 4.022467 17.900002 +v 9.259590 4.397732 17.900002 +v 9.259590 4.022467 17.900002 +v 9.259590 4.397732 20.279799 +v 9.259590 4.022467 20.279799 +v 9.092196 1.570201 20.352268 +v 9.092196 1.570201 20.727533 +v 9.092196 3.949998 20.727533 +v 9.092196 3.949998 20.352268 +v 9.259590 3.949998 20.352268 +v 9.259590 3.949998 20.727533 +v 9.259590 1.570201 20.727533 +v 9.259590 1.570201 20.352268 +v 9.092196 4.470201 20.352268 +v 9.092196 4.470201 20.727533 +v 9.092196 6.849997 20.727533 +v 9.092196 6.849997 20.352268 +v 9.259590 6.849997 20.727533 +v 9.259590 6.849997 20.352268 +v 9.259590 4.470201 20.727533 +v 9.259590 4.470201 20.352268 +vt 0.057500 0.876667 +vt 0.055000 0.893333 +vt 0.053750 0.876667 +vt 0.061250 0.876667 +vt 0.058750 0.893333 +vt 0.057500 0.876667 +vt 0.065000 0.876667 +vt 0.062500 0.893333 +vt 0.061250 0.876667 +vt 0.068750 0.876667 +vt 0.066250 0.893333 +vt 0.065000 0.876667 +vt 0.072500 0.876667 +vt 0.070000 0.893333 +vt 0.068750 0.876667 +vt 0.076250 0.876667 +vt 0.073750 0.893333 +vt 0.072500 0.876667 +vt 0.080000 0.876667 +vt 0.077500 0.893333 +vt 0.076250 0.876667 +vt 0.053750 0.876667 +vt 0.051250 0.893333 +vt 0.050000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vn 0.4194 -0.3474 -0.8387 +vn 0.4194 -0.8387 -0.3474 +vn 0.4194 -0.8387 0.3474 +vn 0.4194 -0.3474 0.8387 +vn 0.4194 0.3474 0.8387 +vn 0.4194 0.8387 0.3474 +vn 0.4194 0.8387 -0.3474 +vn 0.4194 0.3474 -0.8387 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 3/4/2 2/5/2 4/6/2 +f 4/7/3 2/8/3 5/9/3 +f 5/10/4 2/11/4 6/12/4 +f 6/13/5 2/14/5 7/15/5 +f 7/16/6 2/17/6 8/18/6 +f 8/19/7 2/20/7 9/21/7 +f 9/22/8 2/23/8 1/24/8 +f 11/25/9 13/26/9 10/27/9 +f 15/28/10 17/29/10 14/30/10 +f 16/31/11 10/32/11 17/29/11 +f 14/30/12 10/33/12 13/34/12 +f 12/35/13 16/31/13 15/28/13 +f 19/36/9 21/37/9 18/38/9 +f 20/39/14 23/40/14 21/41/14 +f 22/42/10 25/43/10 23/40/10 +f 23/40/12 18/38/12 21/37/12 +f 20/44/13 24/45/13 22/42/13 +f 27/46/9 29/47/9 26/48/9 +f 31/49/10 33/50/10 30/51/10 +f 32/52/12 26/53/12 33/50/12 +f 30/51/14 26/54/14 29/55/14 +f 28/56/11 32/52/11 31/49/11 +f 35/57/9 37/58/9 34/59/9 +f 36/60/13 39/61/13 37/62/13 +f 38/63/10 41/64/10 39/61/10 +f 39/61/14 34/59/14 37/58/14 +f 36/65/11 40/66/11 38/63/11 +f 11/25/9 12/35/9 13/26/9 +f 15/28/10 16/31/10 17/29/10 +f 16/31/11 11/67/11 10/32/11 +f 14/30/12 17/29/12 10/33/12 +f 12/35/13 11/25/13 16/31/13 +f 19/36/9 20/68/9 21/37/9 +f 20/39/14 22/42/14 23/40/14 +f 22/42/10 24/45/10 25/43/10 +f 23/40/12 25/43/12 18/38/12 +f 20/44/13 19/69/13 24/45/13 +f 27/46/9 28/56/9 29/47/9 +f 31/49/10 32/52/10 33/50/10 +f 32/52/12 27/70/12 26/53/12 +f 30/51/14 33/50/14 26/54/14 +f 28/56/11 27/46/11 32/52/11 +f 35/57/9 36/71/9 37/58/9 +f 36/60/13 38/63/13 39/61/13 +f 38/63/10 40/66/10 41/64/10 +f 39/61/14 41/64/14 34/59/14 +f 36/65/11 35/72/11 40/66/11 +o Prop3 +v 8.876309 4.210100 10.612316 +v 9.975476 4.210100 11.161900 +v 8.876309 3.821486 10.773286 +v 8.876309 3.660517 11.161900 +v 8.876309 3.821486 11.550513 +v 8.876309 4.210100 11.711483 +v 8.876309 4.598713 11.550513 +v 8.876309 4.759684 11.161900 +v 8.876309 4.598713 10.773286 +v 9.092196 4.022468 13.801797 +v 9.092196 4.397733 13.801797 +v 9.092196 4.397733 11.422001 +v 9.092196 4.022468 11.422001 +v 9.259592 4.022468 11.422001 +v 9.259592 4.397733 11.422001 +v 9.259592 4.397733 13.801797 +v 9.259592 4.022468 13.801797 +v 9.092196 4.022468 10.901798 +v 9.092196 4.397733 10.901798 +v 9.092196 4.397733 8.522002 +v 9.092196 4.022468 8.522002 +v 9.259590 4.397733 8.522002 +v 9.259590 4.022468 8.522002 +v 9.259590 4.397733 10.901798 +v 9.259590 4.022468 10.901798 +v 9.092196 1.570202 10.974267 +v 9.092196 1.570202 11.349533 +v 9.092196 3.949999 11.349533 +v 9.092196 3.949999 10.974267 +v 9.259590 3.949999 10.974267 +v 9.259590 3.949999 11.349533 +v 9.259590 1.570202 11.349533 +v 9.259590 1.570202 10.974267 +v 9.092196 4.470201 10.974267 +v 9.092196 4.470201 11.349533 +v 9.092196 6.849998 11.349533 +v 9.092196 6.849998 10.974267 +v 9.259590 6.849998 11.349533 +v 9.259590 6.849998 10.974267 +v 9.259590 4.470201 11.349533 +v 9.259590 4.470201 10.974267 +vt 0.057500 0.876667 +vt 0.055000 0.893333 +vt 0.053750 0.876667 +vt 0.061250 0.876667 +vt 0.058750 0.893333 +vt 0.057500 0.876667 +vt 0.065000 0.876667 +vt 0.062500 0.893333 +vt 0.061250 0.876667 +vt 0.068750 0.876667 +vt 0.066250 0.893333 +vt 0.065000 0.876667 +vt 0.072500 0.876667 +vt 0.070000 0.893333 +vt 0.068750 0.876667 +vt 0.076250 0.876667 +vt 0.073750 0.893333 +vt 0.072500 0.876667 +vt 0.080000 0.876667 +vt 0.077500 0.893333 +vt 0.076250 0.876667 +vt 0.053750 0.876667 +vt 0.051250 0.893333 +vt 0.050000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vn 0.4194 -0.3474 -0.8387 +vn 0.4194 -0.8387 -0.3474 +vn 0.4194 -0.8387 0.3474 +vn 0.4194 -0.3474 0.8387 +vn 0.4194 0.3474 0.8387 +vn 0.4194 0.8387 0.3474 +vn 0.4194 0.8387 -0.3474 +vn 0.4194 0.3474 -0.8387 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s 1 +f 42/73/15 43/74/15 44/75/15 +f 44/76/16 43/77/16 45/78/16 +f 45/79/17 43/80/17 46/81/17 +f 46/82/18 43/83/18 47/84/18 +f 47/85/19 43/86/19 48/87/19 +f 48/88/20 43/89/20 49/90/20 +f 49/91/21 43/92/21 50/93/21 +f 50/94/22 43/95/22 42/96/22 +f 52/97/23 54/98/23 51/99/23 +f 56/100/24 58/101/24 55/102/24 +f 57/103/25 51/104/25 58/101/25 +f 55/102/26 51/105/26 54/106/26 +f 53/107/27 57/103/27 56/100/27 +f 60/108/23 62/109/23 59/110/23 +f 61/111/28 64/112/28 62/113/28 +f 63/114/24 66/115/24 64/112/24 +f 64/112/26 59/110/26 62/109/26 +f 61/116/27 65/117/27 63/114/27 +f 68/118/23 70/119/23 67/120/23 +f 72/121/24 74/122/24 71/123/24 +f 73/124/26 67/125/26 74/122/26 +f 71/123/28 67/126/28 70/127/28 +f 69/128/25 73/124/25 72/121/25 +f 76/129/23 78/130/23 75/131/23 +f 77/132/27 80/133/27 78/134/27 +f 79/135/24 82/136/24 80/133/24 +f 80/133/28 75/131/28 78/130/28 +f 77/137/25 81/138/25 79/135/25 +f 52/97/23 53/107/23 54/98/23 +f 56/100/24 57/103/24 58/101/24 +f 57/103/25 52/139/25 51/104/25 +f 55/102/26 58/101/26 51/105/26 +f 53/107/27 52/97/27 57/103/27 +f 60/108/23 61/140/23 62/109/23 +f 61/111/28 63/114/28 64/112/28 +f 63/114/24 65/117/24 66/115/24 +f 64/112/26 66/115/26 59/110/26 +f 61/116/27 60/141/27 65/117/27 +f 68/118/23 69/128/23 70/119/23 +f 72/121/24 73/124/24 74/122/24 +f 73/124/26 68/142/26 67/125/26 +f 71/123/28 74/122/28 67/126/28 +f 69/128/25 68/118/25 73/124/25 +f 76/129/23 77/143/23 78/130/23 +f 77/132/27 79/135/27 80/133/27 +f 79/135/24 81/138/24 82/136/24 +f 80/133/28 82/136/28 75/131/28 +f 77/137/25 76/144/25 81/138/25 +o Prop2 +v 8.876309 4.210101 -11.711483 +v 9.975476 4.210101 -11.161900 +v 8.876309 3.821486 -11.550513 +v 8.876309 3.660517 -11.161900 +v 8.876309 3.821486 -10.773286 +v 8.876309 4.210101 -10.612316 +v 8.876309 4.598714 -10.773286 +v 8.876309 4.759685 -11.161900 +v 8.876309 4.598714 -11.550513 +v 9.092196 4.022469 -8.522002 +v 9.092196 4.397734 -8.522002 +v 9.092196 4.397734 -10.901798 +v 9.092196 4.022469 -10.901798 +v 9.259592 4.022469 -10.901798 +v 9.259592 4.397734 -10.901798 +v 9.259592 4.397734 -8.522002 +v 9.259592 4.022469 -8.522002 +v 9.092196 4.022469 -11.422001 +v 9.092196 4.397734 -11.422001 +v 9.092196 4.397734 -13.801797 +v 9.092196 4.022469 -13.801797 +v 9.259590 4.397734 -13.801797 +v 9.259590 4.022469 -13.801797 +v 9.259590 4.397734 -11.422001 +v 9.259590 4.022469 -11.422001 +v 9.092196 1.570202 -11.349532 +v 9.092196 1.570202 -10.974266 +v 9.092196 3.950000 -10.974266 +v 9.092196 3.950000 -11.349532 +v 9.259590 3.950000 -11.349532 +v 9.259590 3.950000 -10.974266 +v 9.259590 1.570202 -10.974266 +v 9.259590 1.570202 -11.349532 +v 9.092196 4.470202 -11.349532 +v 9.092196 4.470202 -10.974266 +v 9.092196 6.849998 -10.974266 +v 9.092196 6.849998 -11.349532 +v 9.259590 6.849998 -10.974266 +v 9.259590 6.849998 -11.349532 +v 9.259590 4.470202 -10.974266 +v 9.259590 4.470202 -11.349532 +vt 0.057500 0.876667 +vt 0.055000 0.893333 +vt 0.053750 0.876667 +vt 0.061250 0.876667 +vt 0.058750 0.893333 +vt 0.057500 0.876667 +vt 0.065000 0.876667 +vt 0.062500 0.893333 +vt 0.061250 0.876667 +vt 0.068750 0.876667 +vt 0.066250 0.893333 +vt 0.065000 0.876667 +vt 0.072500 0.876667 +vt 0.070000 0.893333 +vt 0.068750 0.876667 +vt 0.076250 0.876667 +vt 0.073750 0.893333 +vt 0.072500 0.876667 +vt 0.080000 0.876667 +vt 0.077500 0.893333 +vt 0.076250 0.876667 +vt 0.053750 0.876667 +vt 0.051250 0.893333 +vt 0.050000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vn 0.4194 -0.3474 -0.8387 +vn 0.4194 -0.8387 -0.3474 +vn 0.4194 -0.8387 0.3474 +vn 0.4194 -0.3474 0.8387 +vn 0.4194 0.3474 0.8387 +vn 0.4194 0.8387 0.3474 +vn 0.4194 0.8387 -0.3474 +vn 0.4194 0.3474 -0.8387 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s 1 +f 83/145/29 84/146/29 85/147/29 +f 85/148/30 84/149/30 86/150/30 +f 86/151/31 84/152/31 87/153/31 +f 87/154/32 84/155/32 88/156/32 +f 88/157/33 84/158/33 89/159/33 +f 89/160/34 84/161/34 90/162/34 +f 90/163/35 84/164/35 91/165/35 +f 91/166/36 84/167/36 83/168/36 +f 93/169/37 95/170/37 92/171/37 +f 97/172/38 99/173/38 96/174/38 +f 98/175/39 92/176/39 99/173/39 +f 96/174/40 92/177/40 95/178/40 +f 94/179/41 98/175/41 97/172/41 +f 101/180/37 103/181/37 100/182/37 +f 102/183/42 105/184/42 103/185/42 +f 104/186/38 107/187/38 105/184/38 +f 105/184/40 100/182/40 103/181/40 +f 102/188/41 106/189/41 104/186/41 +f 109/190/37 111/191/37 108/192/37 +f 113/193/38 115/194/38 112/195/38 +f 114/196/40 108/197/40 115/194/40 +f 112/195/42 108/198/42 111/199/42 +f 110/200/39 114/196/39 113/193/39 +f 117/201/37 119/202/37 116/203/37 +f 118/204/41 121/205/41 119/206/41 +f 120/207/38 123/208/38 121/205/38 +f 121/205/42 116/203/42 119/202/42 +f 118/209/39 122/210/39 120/207/39 +f 93/169/37 94/179/37 95/170/37 +f 97/172/38 98/175/38 99/173/38 +f 98/175/39 93/211/39 92/176/39 +f 96/174/40 99/173/40 92/177/40 +f 94/179/41 93/169/41 98/175/41 +f 101/180/37 102/212/37 103/181/37 +f 102/183/42 104/186/42 105/184/42 +f 104/186/38 106/189/38 107/187/38 +f 105/184/40 107/187/40 100/182/40 +f 102/188/41 101/213/41 106/189/41 +f 109/190/37 110/200/37 111/191/37 +f 113/193/38 114/196/38 115/194/38 +f 114/196/40 109/214/40 108/197/40 +f 112/195/42 115/194/42 108/198/42 +f 110/200/39 109/190/39 114/196/39 +f 117/201/37 118/215/37 119/202/37 +f 118/204/41 120/207/41 121/205/41 +f 120/207/38 122/210/38 123/208/38 +f 121/205/42 123/208/42 116/203/42 +f 118/209/39 117/216/39 122/210/39 +o Prop1 +v 8.876309 4.210101 -21.089483 +v 9.975476 4.210101 -20.539900 +v 8.876309 3.821487 -20.928514 +v 8.876309 3.660518 -20.539900 +v 8.876309 3.821487 -20.151285 +v 8.876309 4.210101 -19.990316 +v 8.876309 4.598715 -20.151285 +v 8.876309 4.759685 -20.539900 +v 8.876309 4.598715 -20.928514 +v 9.092196 4.022469 -17.900002 +v 9.092196 4.397734 -17.900002 +v 9.092196 4.397734 -20.279799 +v 9.092196 4.022469 -20.279799 +v 9.259592 4.022469 -20.279799 +v 9.259592 4.397734 -20.279799 +v 9.259592 4.397734 -17.900002 +v 9.259592 4.022469 -17.900002 +v 9.092196 4.022469 -20.800001 +v 9.092196 4.397734 -20.800001 +v 9.092196 4.397734 -23.179798 +v 9.092196 4.022469 -23.179798 +v 9.259590 4.397734 -23.179798 +v 9.259590 4.022469 -23.179798 +v 9.259590 4.397734 -20.800001 +v 9.259590 4.022469 -20.800001 +v 9.092196 1.570203 -20.727531 +v 9.092196 1.570203 -20.352266 +v 9.092196 3.950000 -20.352266 +v 9.092196 3.950000 -20.727531 +v 9.259590 3.950000 -20.727531 +v 9.259590 3.950000 -20.352266 +v 9.259590 1.570203 -20.352266 +v 9.259590 1.570203 -20.727531 +v 9.092196 4.470203 -20.727531 +v 9.092196 4.470203 -20.352266 +v 9.092196 6.849999 -20.352266 +v 9.092196 6.849999 -20.727531 +v 9.259590 6.849999 -20.352266 +v 9.259590 6.849999 -20.727531 +v 9.259590 4.470203 -20.352266 +v 9.259590 4.470203 -20.727531 +vt 0.076250 0.876667 +vt 0.073750 0.893333 +vt 0.072500 0.876667 +vt 0.070000 0.893333 +vt 0.068750 0.876667 +vt 0.066250 0.893333 +vt 0.065000 0.876667 +vt 0.062500 0.893333 +vt 0.061250 0.876667 +vt 0.057500 0.876667 +vt 0.055000 0.893333 +vt 0.053750 0.876667 +vt 0.051250 0.893333 +vt 0.050000 0.876667 +vt 0.061250 0.876667 +vt 0.058750 0.893333 +vt 0.057500 0.876667 +vt 0.080000 0.876667 +vt 0.077500 0.893333 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vn 0.4194 -0.3474 -0.8387 +vn 0.4194 -0.8387 -0.3474 +vn 0.4194 -0.8387 0.3474 +vn 0.4194 -0.3474 0.8387 +vn 0.4194 0.3474 0.8387 +vn 0.4194 0.8387 0.3474 +vn 0.4194 0.8387 -0.3474 +vn 0.4194 0.3474 -0.8387 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s 1 +f 124/217/43 125/218/43 126/219/43 +f 126/219/44 125/220/44 127/221/44 +f 127/221/45 125/222/45 128/223/45 +f 128/223/46 125/224/46 129/225/46 +f 129/226/47 125/227/47 130/228/47 +f 130/228/48 125/229/48 131/230/48 +f 131/231/49 125/232/49 132/233/49 +f 132/234/50 125/235/50 124/217/50 +f 134/236/51 136/237/51 133/238/51 +f 138/239/52 140/240/52 137/241/52 +f 139/242/53 133/243/53 140/240/53 +f 137/241/54 133/244/54 136/245/54 +f 135/246/55 139/242/55 138/239/55 +f 142/247/51 144/248/51 141/249/51 +f 143/250/56 146/251/56 144/252/56 +f 145/253/52 148/254/52 146/251/52 +f 146/251/54 141/249/54 144/248/54 +f 143/255/55 147/256/55 145/253/55 +f 150/257/51 152/258/51 149/259/51 +f 154/260/52 156/261/52 153/262/52 +f 155/263/54 149/264/54 156/261/54 +f 153/262/56 149/265/56 152/266/56 +f 151/267/53 155/263/53 154/260/53 +f 158/268/51 160/269/51 157/270/51 +f 159/271/55 162/272/55 160/273/55 +f 161/274/52 164/275/52 162/272/52 +f 162/272/56 157/270/56 160/269/56 +f 159/276/53 163/277/53 161/274/53 +f 134/236/51 135/246/51 136/237/51 +f 138/239/52 139/242/52 140/240/52 +f 139/242/53 134/278/53 133/243/53 +f 137/241/54 140/240/54 133/244/54 +f 135/246/55 134/236/55 139/242/55 +f 142/247/51 143/279/51 144/248/51 +f 143/250/56 145/253/56 146/251/56 +f 145/253/52 147/256/52 148/254/52 +f 146/251/54 148/254/54 141/249/54 +f 143/255/55 142/280/55 147/256/55 +f 150/257/51 151/267/51 152/258/51 +f 154/260/52 155/263/52 156/261/52 +f 155/263/54 150/281/54 149/264/54 +f 153/262/56 156/261/56 149/265/56 +f 151/267/53 150/257/53 155/263/53 +f 158/268/51 159/282/51 160/269/51 +f 159/271/55 161/274/55 162/272/55 +f 161/274/52 163/277/52 164/275/52 +f 162/272/56 164/275/56 157/270/56 +f 159/276/53 158/283/53 163/277/53 +o Plane +v -8.648877 2.337463 -3.828772 +v 17.109543 2.337462 -3.828772 +v 17.109543 0.872254 -3.537324 +v -8.648877 0.872255 -3.537324 +v 17.109543 -0.369889 -2.707351 +v -8.648877 -0.369888 -2.707351 +v 17.109543 -1.199862 -1.465208 +v -8.648877 -1.199861 -1.465208 +v 17.109543 -1.491310 -0.000000 +v -8.648877 -1.491309 -0.000000 +v 17.109543 -1.199862 1.465208 +v -8.648877 -1.199861 1.465208 +v 17.109543 -0.369889 2.707351 +v -8.648877 -0.369888 2.707351 +v 17.109543 0.872254 3.537324 +v -8.648877 0.872255 3.537324 +v 17.109543 2.337462 3.828772 +v -8.648877 2.337463 3.828772 +v 17.109543 3.802669 3.537324 +v -8.648877 3.802670 3.537324 +v 17.109543 5.044812 2.707351 +v -8.648877 5.044813 2.707351 +v 17.109543 5.874785 1.465208 +v -8.648877 5.874786 1.465208 +v 17.109543 6.166234 0.000000 +v -8.648877 6.166231 0.000000 +v 17.109543 5.874785 -1.465208 +v -8.648877 5.874786 -1.465208 +v 17.109543 5.044812 -2.707351 +v -8.648877 5.044813 -2.707351 +v 18.622576 0.819016 -3.307737 +v 18.622576 -0.342507 -2.531632 +v 17.109543 3.802669 -3.537324 +v -8.648877 3.802670 -3.537324 +v -22.527349 6.033054 -0.479178 +v -22.527349 5.863158 -0.885406 +v -24.803490 5.347558 0.000000 +v -17.322922 2.833023 -1.568635 +v -17.322922 2.415598 -0.848939 +v -22.527349 4.584874 -0.479178 +v -22.527349 4.754769 -0.885406 +v -17.322922 3.457743 2.049520 +v -17.322922 4.194651 2.218385 +v -22.527349 5.308964 1.252153 +v -22.527349 5.009036 1.156838 +v -17.322922 4.194651 -2.218385 +v -17.322922 3.457743 -2.049520 +v -22.527349 5.009036 -1.156838 +v -22.527349 5.308964 -1.252153 +v -17.322922 6.120280 0.000000 +v -17.322922 5.973704 -0.848939 +v -22.527349 6.092710 0.000000 +v -17.322922 2.415598 0.848939 +v -17.322922 2.833023 1.568635 +v -22.527349 4.754769 0.885406 +v -22.527349 4.584874 0.479178 +v -17.322922 5.556279 1.568635 +v -17.322922 5.973704 0.848939 +v -22.527349 6.033054 0.479178 +v -22.527349 5.863158 0.885406 +v -17.322922 4.931559 -2.049520 +v -22.527349 5.608891 -1.156838 +v -17.322922 2.269018 0.000000 +v -22.527349 4.525215 0.000000 +v -17.322922 4.931559 2.049520 +v -22.527349 5.608891 1.156838 +v -17.322922 5.556279 -1.568635 +v 18.622576 3.559235 -3.307737 +v 18.622576 4.720757 -2.531632 +v 20.313610 3.625209 -1.918521 +v 20.313610 2.744985 -2.506668 +v 18.622576 -0.342507 2.531632 +v 18.622576 0.819016 3.307737 +v 18.622576 5.496862 1.370110 +v 18.622576 5.769394 0.000000 +v 18.622576 -1.391143 -0.000000 +v 18.622576 -1.118612 1.370110 +v 18.622576 3.559235 3.307737 +v 18.622576 4.720757 2.531632 +v 18.622576 -1.118612 -1.370110 +v 18.622576 2.189125 3.580269 +v 18.622576 2.189125 -3.580269 +v 18.622576 5.496862 -1.370110 +v 20.313610 -0.799979 1.038296 +v 20.313610 -1.006509 -0.000000 +v 21.630833 -0.630115 -0.000000 +v 21.630833 -0.488594 0.711476 +v 20.313610 0.668393 2.506668 +v 20.313610 1.706689 2.713198 +v 20.313610 1.706689 -2.713198 +v 20.313610 0.668393 -2.506668 +v 20.313610 2.744985 2.506668 +v 20.313610 -0.211831 -1.918521 +v 20.313610 3.625209 1.918521 +v 20.313610 -0.799979 -1.038296 +v 20.313610 4.213357 1.038296 +v 20.313610 4.419887 0.000000 +v 20.313610 4.213357 -1.038296 +v 20.313610 -0.211831 1.918521 +v 21.630833 2.543696 1.314636 +v 21.630833 1.940536 1.717654 +v 23.161669 1.704029 1.096937 +v 23.161669 2.089221 0.839559 +v 21.630833 3.088236 0.000000 +v 21.630833 2.946714 -0.711476 +v 21.630833 -0.085575 1.314636 +v 21.630833 2.543696 -1.314635 +v 21.630833 0.517585 1.717654 +v 21.630833 1.940536 -1.717654 +v 21.630833 1.229060 1.859176 +v 21.630833 1.229060 -1.859176 +v 21.630833 0.517585 -1.717654 +v 21.630833 -0.085575 -1.314635 +v 21.630833 -0.488594 -0.711476 +v 21.630833 2.946714 0.711476 +v 23.161669 1.704029 -1.096937 +v 23.161669 2.089221 -0.839559 +v 23.950235 1.751938 -0.467252 +v 23.950235 1.537561 -0.610494 +v 23.161669 0.410103 -0.839559 +v 23.161669 0.152726 -0.454366 +v 23.161669 2.346599 0.454366 +v 23.161669 0.062347 0.000000 +v 23.161669 2.436978 0.000000 +v 23.161669 0.152726 0.454366 +v 23.161669 2.346599 -0.454366 +v 23.161669 0.410103 0.839559 +v 23.161669 0.795296 1.096937 +v 23.161669 1.249662 1.187316 +v 23.161669 1.249662 -1.187316 +v 23.161669 0.795296 -1.096937 +v 23.950235 1.031812 -0.610494 +v 23.950235 1.284687 -0.660794 +v 23.950235 1.895180 -0.252875 +v 23.950235 1.945480 0.000000 +v 23.950235 1.895180 0.252875 +v 23.950235 1.751938 0.467252 +v 23.950235 1.537561 0.610494 +v 23.950235 1.284687 0.660794 +v 23.950235 1.031812 0.610494 +v 23.950235 0.817435 0.467252 +v 23.950235 0.674193 0.252875 +v 23.950235 0.623893 0.000000 +v 23.950235 0.674193 -0.252875 +v 23.950235 0.817435 -0.467252 +v -23.618507 18.840416 -0.394288 +v -23.811937 6.847831 -0.394289 +v -29.203978 8.049699 0.000000 +v -18.412893 8.049699 0.000000 +v -23.272705 18.840416 0.000001 +v -23.618507 18.840416 0.394290 +v -18.758696 8.049699 0.404003 +v -23.811937 6.847831 0.394289 +v -16.836498 7.231033 0.394289 +v -26.797274 19.118101 0.000001 +v -29.365820 6.847831 0.000000 +v -23.435175 6.224818 -0.513844 +v -29.125296 6.008132 0.000000 +v -16.490694 7.231033 0.000000 +v -10.014664 5.966194 0.451128 +v -23.435175 6.224818 0.513844 +v -22.237053 5.198684 1.199751 +v -16.683172 5.198684 1.199751 +v -26.535391 5.330534 1.007645 +v -7.680647 5.966194 0.000000 +v -16.836498 7.231033 -0.394289 +v -10.014664 5.966194 -0.451128 +v -27.328730 4.765311 0.844866 +v -22.237053 5.198684 -1.199751 +v -26.535391 5.330534 -1.007645 +v -16.683172 5.198684 -1.199751 +v -27.328730 4.765311 -0.844866 +v -18.758696 8.049699 -0.404003 +v -21.774847 4.765311 -0.844866 +v -21.774847 4.765311 0.000000 +v -21.774847 4.765311 0.844866 +v -27.797274 18.840416 0.000001 +v -20.182421 5.820175 -13.388203 +v -17.837469 5.820174 -0.207668 +v -17.837469 5.519457 -0.207668 +v -20.182421 5.519457 -13.388203 +v -21.592556 6.009354 -13.388203 +v -23.479408 6.009353 -0.207668 +v -18.044111 6.009353 -0.207668 +v -20.374386 6.009354 -13.388203 +v -20.374386 5.330279 -13.388203 +v -18.044111 5.330279 -0.207668 +v -23.479408 5.330279 -0.207668 +v -21.592556 5.330279 -13.388203 +v -23.225643 5.669816 -13.388203 +v -25.237371 5.669816 -0.207668 +v -20.182421 5.519456 13.388203 +v -17.837469 5.519459 0.207668 +v -17.837469 5.820175 0.207668 +v -20.182421 5.820174 13.388203 +v -21.592556 5.330278 13.388203 +v -23.479408 5.330280 0.207668 +v -18.044111 5.330279 0.207668 +v -20.374386 5.330278 13.388203 +v -20.374386 6.009353 13.388203 +v -18.044111 6.009354 0.207668 +v -23.479408 6.009354 0.207668 +v -21.592556 6.009353 13.388203 +v -23.225643 5.669816 13.388203 +v -25.237371 5.669816 0.207668 +v -14.045300 3.096631 0.848939 +v -14.045300 3.514056 1.568635 +v -14.045300 3.096631 -0.848939 +v -14.045300 2.950051 0.000000 +v -14.045300 3.514056 -1.568635 +v -5.371254 0.311145 -2.707351 +v -5.371254 -0.518828 -1.465208 +v -5.371254 -0.518828 1.465208 +v -5.371254 0.311145 2.707351 +v -5.371254 -0.810276 -0.000000 +v 2.656979 -0.906801 -1.548738 +v 4.656979 -0.906801 -1.548738 +v 4.656979 -1.282411 -2.455540 +v 2.656979 -1.282411 -2.455540 +v 4.656979 -0.906801 -3.362341 +v 2.656979 -0.906801 -3.362341 +v 4.656979 0.000000 -3.737951 +v 2.656979 0.000000 -3.737951 +v 4.656979 0.906801 -3.362341 +v 2.656979 0.906801 -3.362341 +v 1.209754 0.906801 -3.362341 +v 1.209754 0.000000 -3.737951 +v 1.209754 -1.282411 -2.455540 +v 1.209754 -0.906801 -3.362341 +v 0.003049 -0.392748 -2.648372 +v 0.003049 -0.768357 -1.741571 +v 6.104204 0.000000 -3.737951 +v 6.104204 0.906802 -3.362341 +v 6.104204 -1.282411 -2.455540 +v 6.104204 -0.906801 -3.362341 +v 1.209754 -0.906801 -1.548738 +v 6.104204 -0.906801 -1.548738 +v 7.310909 -0.768357 -1.741571 +v 7.310909 -0.392747 -2.648372 +v 0.003049 0.514054 -3.023982 +v 7.310909 0.514054 -3.023982 +v 0.003048 1.420855 -2.648372 +v 7.310909 1.420856 -2.648372 +v 0.003049 -0.392748 -0.834769 +v 7.310909 -0.392747 -0.834769 +v 2.656979 -0.906801 1.548734 +v 4.656979 -0.906801 1.548734 +v 4.656979 -1.282411 2.455535 +v 2.656979 -1.282411 2.455535 +v 4.656979 -0.906801 3.362337 +v 2.656979 -0.906801 3.362337 +v 4.656979 -0.000000 3.737946 +v 2.656979 -0.000000 3.737946 +v 4.656979 0.906801 3.362337 +v 2.656979 0.906802 3.362337 +v 1.209754 0.906802 3.362337 +v 1.209754 -0.000000 3.737946 +v 1.209754 -1.282411 2.455535 +v 1.209754 -0.906801 3.362337 +v 0.003049 -0.392747 2.648367 +v 0.003049 -0.768357 1.741566 +v 6.104204 -0.000000 3.737946 +v 6.104204 0.906801 3.362337 +v 6.104204 -1.282411 2.455535 +v 6.104204 -0.906801 3.362337 +v 1.209754 -0.906801 1.548734 +v 6.104204 -0.906801 1.548734 +v 7.310909 -0.768357 1.741566 +v 7.310909 -0.392748 2.648367 +v 0.003049 0.514054 3.023977 +v 7.310909 0.514054 3.023977 +v 0.003049 1.420856 2.648367 +v 7.310909 1.420855 2.648367 +v 0.003049 -0.392747 0.834765 +v 7.310909 -0.392748 0.834765 +v 1.500305 3.122780 -17.418180 +v 2.907010 3.122780 -17.418180 +v 2.907010 2.581584 -16.876984 +v 1.500305 2.581584 -16.876984 +v 2.907010 2.581584 -16.111618 +v 1.500305 2.581584 -16.111618 +v 2.907010 3.122780 -15.570421 +v 1.500305 3.122781 -15.570421 +v 2.907010 3.888147 -15.570421 +v 1.500305 3.888147 -15.570421 +v 2.907010 4.429342 -16.111618 +v 1.500305 4.429342 -16.111618 +v 2.907010 4.429343 -16.876984 +v 2.907010 5.216080 -16.876984 +v 2.907010 5.216080 -16.111618 +v 2.907010 3.888147 -17.418180 +v 5.008881 4.429343 -16.876984 +v 5.008881 3.888147 -17.418180 +v 1.500305 4.429343 -16.876984 +v 1.500305 3.888147 -17.418180 +v 5.008881 2.581584 -16.876984 +v 5.008881 2.581584 -16.111618 +v -0.285478 4.429344 -16.111618 +v -0.285478 3.888148 -15.570421 +v 5.008881 3.888147 -15.570421 +v 5.008881 4.429342 -16.111618 +v -0.285478 3.122781 -15.570421 +v -0.285478 2.581584 -16.111618 +v -0.285478 3.122781 -17.418180 +v -0.285478 3.888147 -17.418180 +v -0.285478 2.581584 -16.876984 +v 5.008881 3.122780 -15.570421 +v 5.008881 3.122780 -17.418180 +v -0.285478 4.429343 -16.876984 +v -6.039415 3.505464 -16.494301 +v 7.367077 3.369535 -16.822462 +v 7.367077 3.177303 -16.630230 +v 7.367077 3.641392 -16.822462 +v 7.367077 3.833624 -16.630230 +v 7.367077 3.833624 -16.358374 +v 7.367077 3.641392 -16.166142 +v 7.367077 3.369535 -16.166142 +v 7.367077 3.177303 -16.358374 +v 1.500305 5.216080 -16.111618 +v 1.500305 5.216080 -16.876984 +v 4.805163 4.210103 -12.231182 +v 7.559474 4.239601 -11.989785 +v 7.559474 3.025841 -11.747283 +v 4.805163 2.904310 -11.917976 +v 7.559474 2.783338 -11.161830 +v 4.805163 2.591105 -11.161829 +v 7.559474 3.025841 -10.576376 +v 4.805163 2.904310 -10.405683 +v 7.559474 4.239601 -10.333874 +v 4.805163 4.210103 -10.092476 +v 7.559474 4.825054 -10.576376 +v 4.805163 4.966249 -10.405683 +v 7.559474 5.067556 -11.161829 +v 4.805163 5.279455 -11.161829 +v 8.887003 3.803822 -11.568155 +v 8.887003 3.635535 -11.161875 +v 7.559474 4.825054 -11.747282 +v 4.805163 4.966249 -11.917976 +v 8.887003 4.210102 -11.736441 +v 8.887003 4.616381 -11.568155 +v 8.887003 4.784667 -11.161875 +v 8.887003 4.616381 -10.755596 +v 8.887003 4.210102 -10.587309 +v 8.887003 3.803822 -10.755596 +v 2.193453 4.210103 -12.231182 +v 2.193453 2.904310 -11.917976 +v -0.516882 3.711920 -11.527017 +v -0.516882 4.254626 -11.678282 +v 2.193453 4.210103 -10.092476 +v 2.193453 2.904310 -10.405683 +v 2.193453 2.591105 -11.161829 +v 2.193453 4.966249 -10.405683 +v 2.193453 4.966249 -11.917976 +v -0.516882 3.560654 -11.161829 +v -0.516882 3.711920 -10.796642 +v -0.516882 4.254626 -10.645377 +v -0.516882 4.619813 -10.796642 +v -0.516882 4.771080 -11.161829 +v -0.516882 4.619813 -11.527017 +v 2.193454 5.279455 -11.161829 +v 4.354962 5.543211 -34.577400 +v 4.464384 5.455995 -34.388062 +v 4.464384 5.200350 -34.388062 +v 4.365958 5.151175 -34.558372 +v 3.854457 5.349201 -35.443459 +v 3.854457 5.543211 -35.443459 +v 4.245422 5.113065 -34.399647 +v 4.746218 4.829812 -10.770060 +v -3.556738 5.186512 -10.723449 +v -0.380831 5.328140 -34.644386 +v 4.245421 5.543215 -34.399647 +v 1.347604 5.543211 -35.483459 +v 4.964909 4.917097 -10.771288 +v 4.964909 5.455994 -10.771288 +v 4.999471 5.455992 -4.836422 +v 4.999471 4.779428 -4.836423 +v 1.347604 5.349200 -35.483459 +v 4.746218 5.543214 -10.770059 +v -3.470909 4.692151 -4.788582 +v -3.470909 5.543211 -4.788580 +v -5.886427 4.692151 -2.723212 +v -5.886427 5.543211 -1.772059 +v 4.780781 4.692149 -4.835188 +v 4.780781 5.543209 -4.835186 +v 4.999470 5.455994 -2.717648 +v 4.999470 4.779427 -2.717649 +v 4.780781 4.692150 -2.717762 +v 4.780781 5.543210 -2.717758 +v 4.780214 5.543206 -1.608046 +v 4.998903 5.455990 -1.607934 +v 4.805163 4.210103 -21.609173 +v 7.559474 4.239601 -21.367777 +v 7.559474 3.025841 -21.125275 +v 4.805162 2.904311 -21.295967 +v 7.559474 2.783338 -20.539822 +v 4.805162 2.591105 -20.539822 +v 7.559474 3.025841 -19.954369 +v 4.805162 2.904311 -19.783674 +v 7.559474 4.239601 -19.711866 +v 4.805163 4.210102 -19.470469 +v 7.559474 4.825054 -19.954369 +v 4.805163 4.966249 -19.783674 +v 7.559474 5.067557 -20.539822 +v 4.805163 5.279455 -20.539822 +v 8.887003 3.803822 -20.946146 +v 8.887003 3.635536 -20.539867 +v 7.559474 4.825054 -21.125275 +v 4.805163 4.966250 -21.295967 +v 2.193454 5.279455 -20.539822 +v 2.193453 4.966249 -19.783674 +v 8.887003 4.210102 -21.114433 +v 8.887003 4.616381 -20.946148 +v 8.887003 4.784668 -20.539867 +v 8.887003 4.616381 -20.133587 +v 8.887003 4.210101 -19.965302 +v 8.887003 3.803822 -20.133587 +v 2.193453 4.210103 -21.609173 +v 2.193453 2.904311 -21.295967 +v -0.516882 3.711920 -20.905008 +v -0.516882 4.254626 -21.056274 +v 2.193453 4.210102 -19.470469 +v 2.193453 2.904311 -19.783674 +v 2.193453 4.966249 -21.295967 +v 2.193453 2.591105 -20.539822 +v -0.516882 3.560655 -20.539822 +v -0.516882 3.711921 -20.174635 +v -0.516882 4.254626 -20.023371 +v -0.516882 4.619814 -20.174635 +v -0.516882 4.771080 -20.539822 +v -0.516882 4.619813 -20.905008 +v 4.998903 4.779424 -1.607935 +v -5.886994 5.543206 -1.613495 +v 1.500305 3.122778 17.418180 +v 2.907010 3.122778 17.418180 +v 2.907010 2.581582 16.876984 +v 1.500305 2.581582 16.876984 +v 2.907010 2.581582 16.111618 +v 1.500305 2.581582 16.111618 +v 2.907010 3.122779 15.570421 +v 1.500305 3.122779 15.570421 +v 2.907010 3.888145 15.570421 +v 1.500305 3.888145 15.570421 +v 2.907010 4.429341 16.111618 +v 1.500305 4.429341 16.111618 +v 2.907010 4.429341 16.876984 +v 2.907010 5.216078 16.876984 +v 2.907010 5.216079 16.111618 +v 2.907010 3.888145 17.418180 +v 5.008881 4.429341 16.876984 +v 5.008881 3.888145 17.418180 +v 1.500305 4.429341 16.876984 +v 1.500305 3.888145 17.418180 +v 5.008881 2.581582 16.876984 +v 5.008881 2.581582 16.111618 +v -0.285478 4.429343 16.111618 +v -0.285478 3.888146 15.570421 +v 5.008881 3.888145 15.570421 +v 5.008881 4.429341 16.111618 +v -0.285478 3.122779 15.570421 +v -0.285478 2.581582 16.111618 +v -0.285478 3.122778 17.418180 +v -0.285478 3.888145 17.418180 +v -0.285478 2.581582 16.876984 +v 5.008881 3.122778 15.570421 +v 5.008881 3.122778 17.418180 +v -0.285478 4.429341 16.876984 +v -6.039415 3.505462 16.494301 +v 7.367077 3.369533 16.822462 +v 7.367077 3.177301 16.630230 +v 7.367077 3.641390 16.822462 +v 7.367077 3.833622 16.630230 +v 7.367077 3.833622 16.358374 +v 7.367077 3.641390 16.166142 +v 7.367077 3.369533 16.166142 +v 7.367077 3.177301 16.358374 +v 1.500305 5.216079 16.111618 +v 1.500305 5.216078 16.876984 +v 4.805163 4.210102 12.231182 +v 7.559474 4.239600 11.989785 +v 7.559474 3.025840 11.747282 +v 4.805163 2.904310 11.917976 +v 7.559474 2.783338 11.161830 +v 4.805163 2.591104 11.161829 +v 7.559474 3.025840 10.576376 +v 4.805163 2.904310 10.405683 +v 7.559474 4.239600 10.333874 +v 4.805163 4.210102 10.092476 +v 7.559474 4.825053 10.576376 +v 4.805163 4.966249 10.405683 +v 7.559474 5.067555 11.161829 +v 4.805163 5.279455 11.161829 +v 8.887003 3.803821 11.568155 +v 8.887003 3.635535 11.161875 +v 7.559474 4.825053 11.747282 +v 4.805163 4.966249 11.917976 +v 8.887003 4.210101 11.736441 +v 8.887003 4.616380 11.568155 +v 8.887003 4.784667 11.161875 +v 8.887003 4.616381 10.755596 +v 8.887003 4.210101 10.587309 +v 8.887003 3.803821 10.755596 +v 2.193453 4.210102 12.231182 +v 2.193453 2.904310 11.917976 +v -0.516882 3.711920 11.527017 +v -0.516882 4.254625 11.678282 +v 2.193453 4.210102 10.092476 +v 2.193453 2.904310 10.405683 +v 2.193453 2.591104 11.161829 +v 2.193453 4.966249 10.405683 +v 2.193453 4.966249 11.917976 +v -0.516882 3.560653 11.161829 +v -0.516882 3.711920 10.796642 +v -0.516882 4.254625 10.645377 +v -0.516882 4.619812 10.796642 +v -0.516882 4.771079 11.161829 +v -0.516882 4.619812 11.527017 +v 2.193454 5.279454 11.161829 +v 4.354962 5.543208 34.577400 +v 4.464384 5.455991 34.388062 +v 4.464384 5.200346 34.388062 +v 4.365958 5.151172 34.558372 +v 3.854456 5.349198 35.443459 +v 3.854457 5.543209 35.443459 +v 4.245422 5.113067 34.399647 +v 4.746218 4.829815 10.770060 +v -3.556738 5.186512 10.723449 +v -0.380831 5.328137 34.644386 +v 4.245421 5.543208 34.399647 +v 1.347604 5.543208 35.483459 +v 4.964909 4.917096 10.771288 +v 4.964909 5.455994 10.771288 +v 4.999471 5.455993 4.836423 +v 4.999471 4.779428 4.836423 +v 1.347604 5.349197 35.483459 +v 4.746218 5.543210 10.770059 +v -3.470909 4.692152 4.788581 +v -3.470909 5.543211 4.788581 +v -5.886427 4.692151 2.723212 +v -5.886427 5.543211 1.772059 +v 4.780781 4.692150 4.835188 +v 4.780781 5.543209 4.835187 +v 4.999470 5.455994 2.717648 +v 4.999470 4.779428 2.717649 +v 4.780781 4.692151 2.717762 +v 4.780781 5.543211 2.717758 +v 4.780214 5.543207 1.608046 +v 4.998903 5.455990 1.607934 +v 4.805163 4.210100 21.609173 +v 7.559474 4.239599 21.367777 +v 7.559474 3.025839 21.125275 +v 4.805162 2.904309 21.295967 +v 7.559474 2.783336 20.539822 +v 4.805162 2.591103 20.539822 +v 7.559474 3.025839 19.954369 +v 4.805162 2.904309 19.783674 +v 7.559474 4.239599 19.711866 +v 4.805163 4.210100 19.470469 +v 7.559474 4.825052 19.954369 +v 4.805163 4.966247 19.783674 +v 7.559474 5.067555 20.539822 +v 4.805163 5.279453 20.539822 +v 8.887003 3.803820 20.946146 +v 8.887003 3.635534 20.539867 +v 7.559474 4.825052 21.125275 +v 4.805163 4.966248 21.295967 +v 2.193454 5.279453 20.539822 +v 2.193453 4.966247 19.783674 +v 8.887003 4.210099 21.114433 +v 8.887003 4.616379 20.946148 +v 8.887003 4.784666 20.539867 +v 8.887003 4.616379 20.133587 +v 8.887003 4.210099 19.965302 +v 8.887003 3.803820 20.133587 +v 2.193453 4.210101 21.609173 +v 2.193453 2.904309 21.295967 +v -0.516882 3.711918 20.905008 +v -0.516882 4.254624 21.056274 +v 2.193453 4.210100 19.470469 +v 2.193453 2.904309 19.783674 +v 2.193453 4.966247 21.295967 +v 2.193453 2.591103 20.539822 +v -0.516882 3.560653 20.539822 +v -0.516882 3.711918 20.174635 +v -0.516882 4.254624 20.023371 +v -0.516882 4.619812 20.174635 +v -0.516882 4.771078 20.539822 +v -0.516882 4.619811 20.905008 +v 4.998903 4.779424 1.607935 +v -5.886994 5.543207 1.613495 +v 1.683473 5.441774 -10.576500 +v 4.056783 5.531373 -10.576500 +v 4.056783 5.531373 -18.701500 +v 1.683473 5.441775 -18.701500 +v 1.683473 5.441773 18.701500 +v 4.056783 5.531371 18.701500 +v 4.056783 5.531372 10.576500 +v 1.683473 5.441773 10.576500 +v 1.176675 5.141184 -25.716265 +v 3.549040 5.029347 -25.716265 +v 3.552980 5.112920 -33.840836 +v 1.180615 5.224756 -33.840836 +v 1.176675 5.141182 25.716253 +v 3.549040 5.029345 25.716253 +v 3.552980 5.112917 33.840820 +v 1.180615 5.224753 33.840820 +vt 0.181250 0.853333 +vt 0.188750 0.858333 +vt 0.185000 0.868333 +vt 0.101250 0.863333 +vt 0.097500 0.865000 +vt 0.093750 0.863333 +vt 0.177500 0.858333 +vt 0.185000 0.853333 +vt 0.188750 0.863333 +vt 0.101250 0.863333 +vt 0.097500 0.865000 +vt 0.093750 0.863333 +vt 0.181250 0.868333 +vt 0.185000 0.868333 +vt 0.188750 0.863333 +vt 0.101250 0.851667 +vt 0.097500 0.850000 +vt 0.093750 0.851667 +vt 0.627500 0.311667 +vt 0.625000 0.311667 +vt 0.625000 0.315000 +vt 0.671250 0.191667 +vt 0.902500 0.131667 +vt 0.673750 0.131667 +vt 0.643750 0.138333 +vt 0.636250 0.131667 +vt 0.633750 0.133333 +vt 0.387500 0.311667 +vt 0.330000 0.318333 +vt 0.387500 0.318333 +vt 0.638750 0.311667 +vt 0.663750 0.315000 +vt 0.663750 0.311667 +vt 0.620000 0.315000 +vt 0.620000 0.318333 +vt 0.636250 0.193333 +vt 0.398750 0.133333 +vt 0.398750 0.241667 +vt 0.682500 0.311667 +vt 0.825000 0.295000 +vt 0.765000 0.295000 +vt 0.765000 0.306667 +vt 0.732500 0.310000 +vt 0.960000 0.238333 +vt 0.902500 0.238333 +vt 0.340000 0.241667 +vt 0.308750 0.310000 +vt 0.330000 0.310000 +vt 0.980000 0.131667 +vt 0.960000 0.131667 +vt 0.318750 0.133333 +vt 0.340000 0.133333 +vt 0.307500 0.130000 +vt 0.318750 0.130000 +vt 0.673750 0.128333 +vt 0.671250 0.130000 +vt 0.633750 0.130000 +vt 0.398750 0.130000 +vt 0.340000 0.130000 +vt 0.960000 0.128333 +vt 0.980000 0.128333 +vt 0.662500 0.168333 +vt 0.181250 0.853333 +vt 0.177500 0.863333 +vt 0.185000 0.868333 +vt 0.101250 0.851667 +vt 0.097500 0.850000 +vt 0.093750 0.851667 +vt 0.297500 0.318333 +vt 0.308750 0.318333 +vt 0.307500 0.133333 +vt 0.310000 0.273333 +vt 0.411250 0.090000 +vt 0.330000 0.058333 +vt 0.411250 0.058333 +vt 0.411250 0.090000 +vt 0.330000 0.058333 +vt 0.411250 0.058333 +vt 0.411250 0.058333 +vt 0.330000 0.090000 +vt 0.330000 0.058333 +vt 0.411250 0.090000 +vt 0.330000 0.058333 +vt 0.411250 0.058333 +vt 0.185000 0.853333 +vt 0.188750 0.863333 +vt 0.181250 0.868333 +vt 0.177500 0.863333 +vt 0.177500 0.858333 +vt 0.092500 0.858333 +vt 0.102500 0.858333 +vt 0.093750 0.851667 +vt 0.101250 0.851667 +vt 0.097500 0.850000 +vt 0.185000 0.868333 +vt 0.181250 0.868333 +vt 0.177500 0.863333 +vt 0.181250 0.853333 +vt 0.188750 0.858333 +vt 0.092500 0.858333 +vt 0.102500 0.858333 +vt 0.093750 0.851667 +vt 0.101250 0.851667 +vt 0.097500 0.850000 +vt 0.188750 0.858333 +vt 0.185000 0.853333 +vt 0.181250 0.853333 +vt 0.177500 0.858333 +vt 0.177500 0.863333 +vt 0.092500 0.858333 +vt 0.102500 0.858333 +vt 0.093750 0.863333 +vt 0.101250 0.863333 +vt 0.097500 0.865000 +vt 0.627500 0.316667 +vt 0.637500 0.316667 +vt 0.637500 0.313333 +vt 0.645000 0.171667 +vt 0.638750 0.315000 +vt 0.726250 0.295000 +vt 0.980000 0.268333 +vt 0.902500 0.128333 +vt 0.662500 0.136667 +vt 0.188750 0.863333 +vt 0.188750 0.858333 +vt 0.185000 0.853333 +vt 0.177500 0.858333 +vt 0.181250 0.868333 +vt 0.092500 0.858333 +vt 0.102500 0.858333 +vt 0.093750 0.863333 +vt 0.101250 0.863333 +vt 0.097500 0.865000 +vt 0.297500 0.310000 +vt 0.307500 0.273333 +vt 0.330000 0.090000 +vt 0.330000 0.090000 +vt 0.411250 0.090000 +vt 0.330000 0.090000 +vt 0.620000 0.603333 +vt 0.362500 0.623333 +vt 0.362500 0.603333 +vt 0.620000 0.623333 +vt 0.362500 0.643333 +vt 0.620000 0.643333 +vt 0.362500 0.663333 +vt 0.620000 0.663333 +vt 0.362500 0.683333 +vt 0.620000 0.683333 +vt 0.362500 0.703333 +vt 0.620000 0.703333 +vt 0.362500 0.723333 +vt 0.620000 0.723333 +vt 0.362500 0.743333 +vt 0.620000 0.743333 +vt 0.362500 0.763333 +vt 0.620000 0.763333 +vt 0.362500 0.783333 +vt 0.620000 0.783333 +vt 0.362500 0.803333 +vt 0.620000 0.803333 +vt 0.362500 0.823333 +vt 0.620000 0.823333 +vt 0.362500 0.843333 +vt 0.620000 0.523333 +vt 0.362500 0.543333 +vt 0.362500 0.523333 +vt 0.620000 0.543333 +vt 0.362500 0.563333 +vt 0.635000 0.623333 +vt 0.635000 0.643333 +vt 0.620000 0.563333 +vt 0.362500 0.583333 +vt 0.620000 0.583333 +vt 0.222500 0.551667 +vt 0.222500 0.558333 +vt 0.197500 0.555000 +vt 0.273750 0.665000 +vt 0.217500 0.676667 +vt 0.217500 0.665000 +vt 0.271250 0.758333 +vt 0.216250 0.750000 +vt 0.271250 0.748333 +vt 0.271250 0.608333 +vt 0.215000 0.616667 +vt 0.215000 0.611667 +vt 0.275000 0.528333 +vt 0.222500 0.538333 +vt 0.222500 0.531667 +vt 0.273750 0.711667 +vt 0.217500 0.700000 +vt 0.273750 0.700000 +vt 0.275000 0.820000 +vt 0.222500 0.810000 +vt 0.275000 0.808333 +vt 0.272500 0.588333 +vt 0.218750 0.596667 +vt 0.218750 0.591667 +vt 0.273750 0.676667 +vt 0.217500 0.688333 +vt 0.272500 0.778333 +vt 0.218750 0.770000 +vt 0.272500 0.768333 +vt 0.275000 0.548333 +vt 0.268750 0.628333 +vt 0.212500 0.636667 +vt 0.212500 0.631667 +vt 0.268750 0.738333 +vt 0.212500 0.730000 +vt 0.268750 0.728333 +vt 0.275000 0.838333 +vt 0.222500 0.828333 +vt 0.275000 0.826667 +vt 0.273750 0.688333 +vt 0.273750 0.798333 +vt 0.220000 0.790000 +vt 0.273750 0.788333 +vt 0.635000 0.583333 +vt 0.656250 0.563333 +vt 0.656250 0.583333 +vt 0.635000 0.743333 +vt 0.635000 0.843333 +vt 0.620000 0.843333 +vt 0.635000 0.703333 +vt 0.635000 0.803333 +vt 0.635000 0.563333 +vt 0.635000 0.663333 +vt 0.635000 0.763333 +vt 0.635000 0.603333 +vt 0.635000 0.523333 +vt 0.635000 0.543333 +vt 0.635000 0.723333 +vt 0.635000 0.823333 +vt 0.635000 0.683333 +vt 0.635000 0.783333 +vt 0.656250 0.686667 +vt 0.670000 0.698333 +vt 0.656250 0.701667 +vt 0.656250 0.763333 +vt 0.656250 0.603333 +vt 0.656250 0.623333 +vt 0.656250 0.783333 +vt 0.656250 0.643333 +vt 0.656250 0.803333 +vt 0.656250 0.663333 +vt 0.656250 0.823333 +vt 0.656250 0.683333 +vt 0.656250 0.843333 +vt 0.656250 0.703333 +vt 0.656250 0.523333 +vt 0.656250 0.543333 +vt 0.656250 0.723333 +vt 0.656250 0.743333 +vt 0.673750 0.798333 +vt 0.690000 0.790000 +vt 0.690000 0.796667 +vt 0.656250 0.541667 +vt 0.675000 0.530000 +vt 0.675000 0.540000 +vt 0.656250 0.705000 +vt 0.670000 0.716667 +vt 0.656250 0.720000 +vt 0.656250 0.561667 +vt 0.673750 0.550000 +vt 0.673750 0.560000 +vt 0.656250 0.725000 +vt 0.671250 0.736667 +vt 0.656250 0.740000 +vt 0.656250 0.581667 +vt 0.673750 0.570000 +vt 0.673750 0.580000 +vt 0.656250 0.746667 +vt 0.671250 0.758333 +vt 0.656250 0.761667 +vt 0.656250 0.620000 +vt 0.671250 0.608333 +vt 0.671250 0.618333 +vt 0.656250 0.601667 +vt 0.672500 0.590000 +vt 0.672500 0.600000 +vt 0.656250 0.768333 +vt 0.672500 0.780000 +vt 0.656250 0.781667 +vt 0.656250 0.641667 +vt 0.671250 0.630000 +vt 0.671250 0.640000 +vt 0.656250 0.786667 +vt 0.656250 0.801667 +vt 0.656250 0.661667 +vt 0.670000 0.650000 +vt 0.670000 0.660000 +vt 0.656250 0.806667 +vt 0.673750 0.816667 +vt 0.656250 0.820000 +vt 0.656250 0.681667 +vt 0.670000 0.670000 +vt 0.670000 0.680000 +vt 0.656250 0.826667 +vt 0.675000 0.836667 +vt 0.656250 0.840000 +vt 0.690000 0.571667 +vt 0.700000 0.576667 +vt 0.690000 0.578333 +vt 0.686250 0.658333 +vt 0.690000 0.808333 +vt 0.690000 0.815000 +vt 0.686206 0.678333 +vt 0.691250 0.828333 +vt 0.691250 0.835000 +vt 0.686250 0.690000 +vt 0.686250 0.696667 +vt 0.691250 0.538333 +vt 0.686250 0.708333 +vt 0.686250 0.715000 +vt 0.690000 0.558333 +vt 0.687500 0.728333 +vt 0.687500 0.735000 +vt 0.687500 0.750000 +vt 0.687500 0.756667 +vt 0.687500 0.616667 +vt 0.688750 0.598333 +vt 0.688750 0.771667 +vt 0.688750 0.778333 +vt 0.687500 0.638333 +vt 0.717500 0.551667 +vt 0.721250 0.555000 +vt 0.711250 0.565000 +vt 0.697500 0.751667 +vt 0.697500 0.755000 +vt 0.687500 0.610000 +vt 0.697500 0.615000 +vt 0.688750 0.591667 +vt 0.698750 0.596667 +vt 0.698750 0.773333 +vt 0.698750 0.776667 +vt 0.687500 0.631667 +vt 0.697500 0.636667 +vt 0.700000 0.791667 +vt 0.700000 0.795000 +vt 0.686250 0.651667 +vt 0.696250 0.656667 +vt 0.701250 0.810000 +vt 0.701250 0.813333 +vt 0.686250 0.671667 +vt 0.696250 0.676667 +vt 0.701250 0.830000 +vt 0.701250 0.833333 +vt 0.696250 0.691667 +vt 0.696250 0.695000 +vt 0.691250 0.531667 +vt 0.701250 0.536667 +vt 0.696250 0.710000 +vt 0.696250 0.713333 +vt 0.690000 0.551667 +vt 0.700000 0.556667 +vt 0.697500 0.730000 +vt 0.697500 0.733333 +vt 0.212500 0.735000 +vt 0.186250 0.731667 +vt 0.220000 0.571667 +vt 0.220000 0.576667 +vt 0.193750 0.575000 +vt 0.216250 0.755000 +vt 0.190000 0.753333 +vt 0.188750 0.613333 +vt 0.192500 0.595000 +vt 0.218750 0.775000 +vt 0.192500 0.773333 +vt 0.186250 0.635000 +vt 0.220000 0.795000 +vt 0.193750 0.791667 +vt 0.217500 0.668333 +vt 0.217500 0.675000 +vt 0.192500 0.671667 +vt 0.222500 0.816667 +vt 0.197500 0.813333 +vt 0.217500 0.680000 +vt 0.217500 0.686667 +vt 0.192500 0.683333 +vt 0.222500 0.835000 +vt 0.198750 0.831667 +vt 0.217500 0.690000 +vt 0.217500 0.696667 +vt 0.192500 0.693333 +vt 0.198750 0.535000 +vt 0.217500 0.701667 +vt 0.217500 0.708333 +vt 0.192500 0.705000 +vt 0.083750 0.290000 +vt 0.082500 0.125000 +vt 0.027500 0.141667 +vt 0.083750 0.290000 +vt 0.132500 0.141667 +vt 0.132500 0.141667 +vt 0.082500 0.125000 +vt 0.152500 0.130000 +vt 0.246250 0.413333 +vt 0.211250 0.413333 +vt 0.243750 0.406667 +vt 0.026250 0.111667 +vt 0.026250 0.125000 +vt 0.155000 0.130000 +vt 0.118750 0.101667 +vt 0.185000 0.078333 +vt 0.252500 0.101667 +vt 0.087500 0.081667 +vt 0.118750 0.078333 +vt 0.221250 0.111667 +vt 0.242500 0.111667 +vt 0.086250 0.111667 +vt 0.152500 0.130000 +vt 0.086250 0.111667 +vt 0.272500 0.440000 +vt 0.301250 0.440000 +vt 0.272500 0.453333 +vt 0.118750 0.101667 +vt 0.087500 0.081667 +vt 0.061250 0.101667 +vt 0.185000 0.078333 +vt 0.118750 0.078333 +vt 0.301250 0.490000 +vt 0.272500 0.490000 +vt 0.272500 0.476667 +vt 0.221250 0.111667 +vt 0.243750 0.420000 +vt 0.132500 0.141667 +vt 0.217500 0.465000 +vt 0.217500 0.453333 +vt 0.217500 0.476667 +vt 0.217500 0.440000 +vt 0.083750 0.290000 +vt 0.052500 0.295000 +vt 0.042500 0.290000 +vt 0.296250 0.465000 +vt 0.103750 0.321667 +vt 0.106250 0.498333 +vt 0.103750 0.498333 +vt 0.048750 0.321667 +vt 0.101250 0.498333 +vt 0.047500 0.498333 +vt 0.108750 0.498333 +vt 0.162500 0.321667 +vt 0.162500 0.498333 +vt 0.101250 0.321667 +vt 0.108750 0.321667 +vt 0.106250 0.321667 +vt 0.101250 0.500000 +vt 0.030000 0.498333 +vt 0.180000 0.498333 +vt 0.103750 0.321667 +vt 0.106250 0.498333 +vt 0.103750 0.498333 +vt 0.047500 0.321667 +vt 0.101250 0.498333 +vt 0.047500 0.498333 +vt 0.108297 0.498333 +vt 0.162500 0.321667 +vt 0.162500 0.498333 +vt 0.101250 0.321667 +vt 0.108750 0.321667 +vt 0.106250 0.321667 +vt 0.101250 0.500000 +vt 0.030000 0.498333 +vt 0.180000 0.498333 +vt 0.273750 0.568333 +vt 0.230000 0.885000 +vt 0.238750 0.930000 +vt 0.230000 0.930000 +vt 0.271250 0.743333 +vt 0.271250 0.623333 +vt 0.271250 0.603333 +vt 0.275000 0.543333 +vt 0.275000 0.523333 +vt 0.256250 0.885000 +vt 0.247500 0.930000 +vt 0.247500 0.885000 +vt 0.275000 0.803333 +vt 0.272500 0.603333 +vt 0.272500 0.583333 +vt 0.265000 0.885000 +vt 0.256250 0.930000 +vt 0.272500 0.763333 +vt 0.275000 0.563333 +vt 0.268750 0.643333 +vt 0.268750 0.623333 +vt 0.268750 0.723333 +vt 0.275000 0.823333 +vt 0.238750 0.885000 +vt 0.273750 0.783333 +vt 0.273750 0.583333 +vt 0.273750 0.563333 +vt 0.122500 0.990000 +vt 0.216250 0.971667 +vt 0.216250 0.990000 +vt 0.122500 0.916667 +vt 0.216250 0.935000 +vt 0.122500 0.935000 +vt 0.122500 0.971667 +vt 0.216250 0.953333 +vt 0.122500 0.953333 +vt 0.333750 0.885000 +vt 0.318750 0.928333 +vt 0.318750 0.885000 +vt 0.303750 0.928333 +vt 0.303750 0.885000 +vt 0.288750 0.885000 +vt 0.288750 0.928333 +vt 0.333750 0.986667 +vt 0.240000 0.941667 +vt 0.333750 0.941667 +vt 0.333750 0.941667 +vt 0.240000 0.986667 +vt 0.240000 0.941667 +vt 0.273750 0.885000 +vt 0.273750 0.928333 +vt 0.435000 0.963333 +vt 0.415000 0.976667 +vt 0.435000 0.976667 +vt 0.435000 0.950000 +vt 0.415000 0.963333 +vt 0.435000 0.936667 +vt 0.415000 0.950000 +vt 0.435000 0.923333 +vt 0.415000 0.936667 +vt 0.450000 0.936667 +vt 0.450000 0.963333 +vt 0.465000 0.950000 +vt 0.450000 0.950000 +vt 0.415000 0.923333 +vt 0.400000 0.936667 +vt 0.400000 0.950000 +vt 0.450000 0.976667 +vt 0.400000 0.963333 +vt 0.385000 0.950000 +vt 0.462500 0.936667 +vt 0.450000 0.923333 +vt 0.400000 0.923333 +vt 0.387500 0.936667 +vt 0.462500 0.963333 +vt 0.387500 0.963333 +vt 0.400000 0.976667 +vt 0.435000 0.923333 +vt 0.415000 0.936667 +vt 0.415000 0.923333 +vt 0.435000 0.936667 +vt 0.415000 0.950000 +vt 0.435000 0.950000 +vt 0.415000 0.963333 +vt 0.435000 0.963333 +vt 0.415000 0.976667 +vt 0.400000 0.963333 +vt 0.400000 0.936667 +vt 0.385000 0.950000 +vt 0.385000 0.936667 +vt 0.450000 0.976667 +vt 0.435000 0.976667 +vt 0.450000 0.950000 +vt 0.400000 0.950000 +vt 0.450000 0.963333 +vt 0.400000 0.923333 +vt 0.450000 0.936667 +vt 0.465000 0.950000 +vt 0.465000 0.963333 +vt 0.400000 0.976667 +vt 0.387500 0.963333 +vt 0.462500 0.963333 +vt 0.462500 0.976667 +vt 0.387500 0.936667 +vt 0.387500 0.923333 +vt 0.450000 0.923333 +vt 0.462500 0.936667 +vt 0.143750 0.846667 +vt 0.136250 0.828333 +vt 0.143750 0.828333 +vt 0.136250 0.846667 +vt 0.128750 0.828333 +vt 0.121250 0.846667 +vt 0.121250 0.828333 +vt 0.113750 0.846667 +vt 0.113750 0.828333 +vt 0.106250 0.828333 +vt 0.076250 0.898333 +vt 0.068750 0.908333 +vt 0.068750 0.898333 +vt 0.158750 0.846667 +vt 0.151250 0.875000 +vt 0.151250 0.846667 +vt 0.151250 0.828333 +vt 0.158750 0.828333 +vt 0.128750 0.875000 +vt 0.128750 0.846667 +vt 0.113750 0.805000 +vt 0.106250 0.875000 +vt 0.106250 0.846667 +vt 0.128750 0.805000 +vt 0.151250 0.805000 +vt 0.143750 0.805000 +vt 0.121250 0.875000 +vt 0.143750 0.875000 +vt 0.136250 0.875000 +vt 0.166250 0.805000 +vt 0.166250 0.828333 +vt 0.166250 0.846667 +vt 0.158750 0.875000 +vt 0.121250 0.805000 +vt 0.113750 0.875000 +vt 0.136250 0.805000 +vt 0.158750 0.805000 +vt 0.125000 0.726667 +vt 0.155000 0.726667 +vt 0.141250 0.908333 +vt 0.138750 0.908333 +vt 0.117500 0.726667 +vt 0.147500 0.726667 +vt 0.140000 0.726667 +vt 0.106250 0.805000 +vt 0.110000 0.726667 +vt 0.102500 0.871667 +vt 0.101250 0.878333 +vt 0.096250 0.876667 +vt 0.132500 0.726667 +vt 0.162500 0.726667 +vt 0.131250 0.908333 +vt 0.123750 0.908333 +vt 0.116250 0.908333 +vt 0.108750 0.908333 +vt 0.166250 0.875000 +vt 0.161250 0.908333 +vt 0.153750 0.908333 +vt 0.146250 0.908333 +vt 0.055000 0.908333 +vt 0.055000 0.898333 +vt 0.090000 0.898333 +vt 0.076250 0.908333 +vt 0.097500 0.898333 +vt 0.090000 0.908333 +vt 0.075000 0.626667 +vt 0.047500 0.610000 +vt 0.075000 0.608333 +vt 0.047500 0.606667 +vt 0.075000 0.596667 +vt 0.047500 0.586667 +vt 0.075000 0.585000 +vt 0.047500 0.583333 +vt 0.075000 0.566667 +vt 0.047500 0.565000 +vt 0.075000 0.555000 +vt 0.047500 0.553333 +vt 0.075000 0.543333 +vt 0.031250 0.600000 +vt 0.047500 0.598333 +vt 0.075000 0.650000 +vt 0.047500 0.640000 +vt 0.075000 0.638333 +vt 0.047500 0.628333 +vt 0.033750 0.558333 +vt 0.047500 0.556667 +vt 0.033750 0.635000 +vt 0.033750 0.630000 +vt 0.047500 0.626667 +vt 0.033750 0.621667 +vt 0.031250 0.593333 +vt 0.031250 0.586667 +vt 0.033750 0.546667 +vt 0.047500 0.545000 +vt 0.047500 0.566667 +vt 0.033750 0.571667 +vt 0.033750 0.566667 +vt 0.033750 0.646667 +vt 0.033750 0.640000 +vt 0.101250 0.626667 +vt 0.128750 0.618333 +vt 0.128750 0.625000 +vt 0.101250 0.585000 +vt 0.101250 0.608333 +vt 0.101250 0.566667 +vt 0.101250 0.638333 +vt 0.101250 0.596667 +vt 0.128750 0.630000 +vt 0.128750 0.636667 +vt 0.101250 0.543333 +vt 0.128750 0.551667 +vt 0.101250 0.555000 +vt 0.128750 0.575000 +vt 0.128750 0.601667 +vt 0.128750 0.606667 +vt 0.101250 0.650000 +vt 0.128750 0.641667 +vt 0.128750 0.646667 +vt 0.128750 0.563333 +vt 0.128750 0.591667 +vt 0.627500 0.311667 +vt 0.637500 0.313333 +vt 0.627500 0.316667 +vt 0.902500 0.131667 +vt 0.671250 0.191667 +vt 0.673750 0.131667 +vt 0.633750 0.133333 +vt 0.643750 0.138333 +vt 0.645000 0.171667 +vt 0.387500 0.311667 +vt 0.330000 0.318333 +vt 0.330000 0.310000 +vt 0.663750 0.315000 +vt 0.638750 0.311667 +vt 0.663750 0.311667 +vt 0.387500 0.318333 +vt 0.620000 0.315000 +vt 0.620000 0.318333 +vt 0.636250 0.193333 +vt 0.398750 0.133333 +vt 0.682500 0.311667 +vt 0.825000 0.295000 +vt 0.765000 0.306667 +vt 0.765000 0.295000 +vt 0.732500 0.310000 +vt 0.726250 0.295000 +vt 0.960000 0.238333 +vt 0.902500 0.238333 +vt 0.340000 0.241667 +vt 0.340000 0.133333 +vt 0.308750 0.310000 +vt 0.980000 0.131667 +vt 0.980000 0.268333 +vt 0.318750 0.133333 +vt 0.307500 0.130000 +vt 0.318750 0.130000 +vt 0.673750 0.128333 +vt 0.671250 0.130000 +vt 0.633750 0.130000 +vt 0.636250 0.131667 +vt 0.902500 0.128333 +vt 0.398750 0.130000 +vt 0.340000 0.130000 +vt 0.960000 0.128333 +vt 0.960000 0.131667 +vt 0.980000 0.128333 +vt 0.662500 0.168333 +vt 0.662500 0.136667 +vt 0.075000 0.626667 +vt 0.047500 0.610000 +vt 0.075000 0.608333 +vt 0.047500 0.606667 +vt 0.075000 0.596667 +vt 0.047500 0.586667 +vt 0.075000 0.585000 +vt 0.047500 0.583333 +vt 0.075000 0.566667 +vt 0.047500 0.565000 +vt 0.075000 0.555000 +vt 0.047500 0.553333 +vt 0.075000 0.543333 +vt 0.031250 0.600000 +vt 0.047500 0.598333 +vt 0.075000 0.650000 +vt 0.047500 0.640000 +vt 0.075000 0.638333 +vt 0.047500 0.628333 +vt 0.101250 0.543333 +vt 0.101250 0.555000 +vt 0.033750 0.558333 +vt 0.047500 0.556667 +vt 0.033750 0.635000 +vt 0.033750 0.630000 +vt 0.047500 0.626667 +vt 0.033750 0.621667 +vt 0.031250 0.593333 +vt 0.031250 0.586667 +vt 0.033750 0.546667 +vt 0.047500 0.545000 +vt 0.047500 0.566667 +vt 0.033750 0.571667 +vt 0.033750 0.566667 +vt 0.033750 0.646667 +vt 0.033750 0.640000 +vt 0.101250 0.626667 +vt 0.128750 0.618333 +vt 0.128750 0.625000 +vt 0.101250 0.585000 +vt 0.101250 0.650000 +vt 0.101250 0.608333 +vt 0.101250 0.566667 +vt 0.101250 0.638333 +vt 0.101250 0.596667 +vt 0.128750 0.630000 +vt 0.128750 0.636667 +vt 0.128750 0.551667 +vt 0.128750 0.575000 +vt 0.128750 0.601667 +vt 0.128750 0.606667 +vt 0.128750 0.641667 +vt 0.128750 0.646667 +vt 0.128750 0.563333 +vt 0.128750 0.591667 +vt 0.297500 0.318333 +vt 0.297500 0.310000 +vt 0.310000 0.273333 +vt 0.307500 0.133333 +vt 0.136250 0.828333 +vt 0.143750 0.846667 +vt 0.143750 0.828333 +vt 0.128750 0.828333 +vt 0.136250 0.846667 +vt 0.121250 0.828333 +vt 0.128750 0.846667 +vt 0.113750 0.828333 +vt 0.121250 0.846667 +vt 0.106250 0.828333 +vt 0.113750 0.846667 +vt 0.068750 0.908333 +vt 0.076250 0.898333 +vt 0.068750 0.898333 +vt 0.151250 0.875000 +vt 0.158750 0.846667 +vt 0.151250 0.846667 +vt 0.151250 0.828333 +vt 0.158750 0.828333 +vt 0.128750 0.875000 +vt 0.113750 0.805000 +vt 0.106250 0.875000 +vt 0.106250 0.846667 +vt 0.128750 0.805000 +vt 0.151250 0.805000 +vt 0.143750 0.805000 +vt 0.121250 0.875000 +vt 0.143750 0.875000 +vt 0.136250 0.875000 +vt 0.166250 0.805000 +vt 0.166250 0.828333 +vt 0.158750 0.875000 +vt 0.166250 0.846667 +vt 0.121250 0.805000 +vt 0.113750 0.875000 +vt 0.136250 0.805000 +vt 0.158750 0.805000 +vt 0.125000 0.726667 +vt 0.155000 0.726667 +vt 0.141250 0.908333 +vt 0.117500 0.726667 +vt 0.147500 0.726667 +vt 0.140000 0.726667 +vt 0.110000 0.726667 +vt 0.106250 0.805000 +vt 0.097500 0.878333 +vt 0.101250 0.878333 +vt 0.102500 0.876667 +vt 0.132500 0.726667 +vt 0.162500 0.726667 +vt 0.131250 0.908333 +vt 0.123750 0.908333 +vt 0.116250 0.908333 +vt 0.111250 0.908333 +vt 0.161250 0.908333 +vt 0.166250 0.875000 +vt 0.156250 0.908333 +vt 0.146250 0.908333 +vt 0.055000 0.908333 +vt 0.055000 0.898333 +vt 0.076250 0.908333 +vt 0.090000 0.898333 +vt 0.090000 0.908333 +vt 0.097500 0.898333 +vt 0.075000 0.626667 +vt 0.047500 0.610000 +vt 0.047500 0.626667 +vt 0.075000 0.596667 +vt 0.047500 0.606667 +vt 0.075000 0.608333 +vt 0.047500 0.586667 +vt 0.047500 0.595000 +vt 0.075000 0.566667 +vt 0.047500 0.583333 +vt 0.075000 0.585000 +vt 0.075000 0.555000 +vt 0.047500 0.565000 +vt 0.075000 0.543333 +vt 0.047500 0.553333 +vt 0.031250 0.600000 +vt 0.047500 0.598333 +vt 0.075000 0.650000 +vt 0.047500 0.640000 +vt 0.047500 0.648333 +vt 0.075000 0.638333 +vt 0.047500 0.628333 +vt 0.047500 0.636667 +vt 0.033750 0.558333 +vt 0.047500 0.556667 +vt 0.033750 0.635000 +vt 0.033750 0.621667 +vt 0.031250 0.593333 +vt 0.033750 0.546667 +vt 0.047500 0.545000 +vt 0.047500 0.566667 +vt 0.033750 0.571667 +vt 0.033750 0.646667 +vt 0.101250 0.626667 +vt 0.128750 0.618333 +vt 0.101250 0.608333 +vt 0.101250 0.585000 +vt 0.101250 0.566667 +vt 0.101250 0.638333 +vt 0.101250 0.596667 +vt 0.128750 0.630000 +vt 0.128750 0.551667 +vt 0.101250 0.543333 +vt 0.101250 0.555000 +vt 0.128750 0.575000 +vt 0.128750 0.601667 +vt 0.101250 0.650000 +vt 0.128750 0.641667 +vt 0.128750 0.563333 +vt 0.128750 0.591667 +vt 0.075000 0.626667 +vt 0.047500 0.610000 +vt 0.047500 0.626667 +vt 0.075000 0.596667 +vt 0.047500 0.606667 +vt 0.075000 0.608333 +vt 0.047500 0.586667 +vt 0.047500 0.595000 +vt 0.075000 0.566667 +vt 0.047500 0.583333 +vt 0.075000 0.585000 +vt 0.075000 0.555000 +vt 0.047500 0.565000 +vt 0.075000 0.543333 +vt 0.047500 0.553333 +vt 0.031250 0.600000 +vt 0.047500 0.598333 +vt 0.075000 0.650000 +vt 0.047500 0.640000 +vt 0.047500 0.648333 +vt 0.075000 0.638333 +vt 0.047500 0.628333 +vt 0.047500 0.636667 +vt 0.101250 0.543333 +vt 0.033750 0.558333 +vt 0.047500 0.556667 +vt 0.033750 0.635000 +vt 0.033750 0.621667 +vt 0.031250 0.593333 +vt 0.033750 0.546667 +vt 0.047500 0.545000 +vt 0.047500 0.566667 +vt 0.033750 0.571667 +vt 0.033750 0.646667 +vt 0.101250 0.626667 +vt 0.128750 0.618333 +vt 0.101250 0.608333 +vt 0.101250 0.585000 +vt 0.101250 0.650000 +vt 0.101250 0.566667 +vt 0.101250 0.596667 +vt 0.101250 0.638333 +vt 0.128750 0.630000 +vt 0.128750 0.551667 +vt 0.101250 0.555000 +vt 0.128750 0.575000 +vt 0.128750 0.601667 +vt 0.128750 0.641667 +vt 0.128750 0.563333 +vt 0.128750 0.591667 +vt 0.271250 0.618333 +vt 0.275000 0.540000 +vt 0.217500 0.711667 +vt 0.272500 0.598333 +vt 0.275000 0.560000 +vt 0.268750 0.638333 +vt 0.670000 0.688333 +vt 0.673750 0.788333 +vt 0.656250 0.526667 +vt 0.670000 0.706667 +vt 0.656250 0.546667 +vt 0.671250 0.726667 +vt 0.656250 0.566667 +vt 0.671250 0.748333 +vt 0.656250 0.605000 +vt 0.656250 0.586667 +vt 0.672500 0.770000 +vt 0.656250 0.626667 +vt 0.656250 0.646667 +vt 0.673750 0.806667 +vt 0.656250 0.666667 +vt 0.675000 0.826667 +vt 0.700000 0.573333 +vt 0.722500 0.558333 +vt 0.722500 0.561667 +vt 0.721250 0.565000 +vt 0.720000 0.566667 +vt 0.717500 0.568333 +vt 0.715000 0.568333 +vt 0.712500 0.566667 +vt 0.710000 0.561667 +vt 0.712500 0.553333 +vt 0.710000 0.558333 +vt 0.711250 0.555000 +vt 0.715000 0.551667 +vt 0.720000 0.553333 +vt 0.697500 0.611667 +vt 0.698750 0.593333 +vt 0.697500 0.633333 +vt 0.696250 0.653333 +vt 0.696250 0.673333 +vt 0.701250 0.533333 +vt 0.700000 0.553333 +vt 0.061250 0.101610 +vt 0.252500 0.101667 +vt 0.217500 0.490000 +vt 0.108750 0.500000 +vt 0.108750 0.516667 +vt 0.101250 0.516667 +vt 0.105000 0.538333 +vt 0.030000 0.321667 +vt 0.180000 0.321667 +vt 0.108750 0.500000 +vt 0.108750 0.516667 +vt 0.101250 0.516667 +vt 0.105000 0.538333 +vt 0.030000 0.321667 +vt 0.180000 0.321667 +vt 0.273750 0.578333 +vt 0.271250 0.763333 +vt 0.265000 0.930000 +vt 0.272500 0.783333 +vt 0.268750 0.743333 +vt 0.275000 0.843333 +vt 0.273750 0.803333 +vt 0.216250 0.916667 +vt 0.333750 0.928333 +vt 0.240000 0.986667 +vt 0.333750 0.986667 +vt 0.465000 0.963333 +vt 0.385000 0.963333 +vt 0.465000 0.936667 +vt 0.385000 0.936667 +vt 0.462500 0.923333 +vt 0.387500 0.923333 +vt 0.462500 0.976667 +vt 0.387500 0.976667 +vt 0.465000 0.936667 +vt 0.385000 0.963333 +vt 0.387500 0.976667 +vt 0.462500 0.923333 +vt 0.097500 0.870000 +vt 0.101250 0.870000 +vt 0.102500 0.876667 +vt 0.097500 0.878333 +vt 0.096250 0.871667 +vt 0.133750 0.908333 +vt 0.126250 0.908333 +vt 0.118750 0.908333 +vt 0.111250 0.908333 +vt 0.163750 0.908333 +vt 0.156250 0.908333 +vt 0.148750 0.908333 +vt 0.097500 0.908333 +vt 0.047500 0.595000 +vt 0.031250 0.606667 +vt 0.047500 0.648333 +vt 0.047500 0.636667 +vt 0.033750 0.563333 +vt 0.033750 0.626667 +vt 0.033750 0.553333 +vt 0.128750 0.546667 +vt 0.128750 0.568333 +vt 0.128750 0.558333 +vt 0.128750 0.586667 +vt 0.637500 0.316667 +vt 0.625000 0.315000 +vt 0.625000 0.311667 +vt 0.638750 0.315000 +vt 0.398750 0.241667 +vt 0.308750 0.318333 +vt 0.047500 0.595000 +vt 0.031250 0.606667 +vt 0.047500 0.648333 +vt 0.047500 0.636667 +vt 0.033750 0.563333 +vt 0.033750 0.626667 +vt 0.033750 0.553333 +vt 0.128750 0.546667 +vt 0.128750 0.568333 +vt 0.128750 0.558333 +vt 0.128750 0.586667 +vt 0.307500 0.273333 +vt 0.138750 0.908333 +vt 0.102500 0.871667 +vt 0.101250 0.870000 +vt 0.097500 0.870000 +vt 0.096250 0.871667 +vt 0.096250 0.876667 +vt 0.133750 0.908333 +vt 0.126250 0.908333 +vt 0.118750 0.908333 +vt 0.108750 0.908333 +vt 0.163750 0.908333 +vt 0.153750 0.908333 +vt 0.148750 0.908333 +vt 0.097500 0.908333 +vt 0.031250 0.606667 +vt 0.033750 0.563333 +vt 0.033750 0.630000 +vt 0.033750 0.626667 +vt 0.031250 0.586667 +vt 0.033750 0.553333 +vt 0.033750 0.566667 +vt 0.033750 0.640000 +vt 0.128750 0.625000 +vt 0.128750 0.636667 +vt 0.128750 0.546667 +vt 0.128750 0.568333 +vt 0.128750 0.606667 +vt 0.128750 0.646667 +vt 0.128750 0.558333 +vt 0.128750 0.586667 +vt 0.031250 0.606667 +vt 0.033750 0.563333 +vt 0.033750 0.630000 +vt 0.033750 0.626667 +vt 0.031250 0.586667 +vt 0.033750 0.553333 +vt 0.033750 0.566667 +vt 0.033750 0.640000 +vt 0.128750 0.625000 +vt 0.128750 0.636667 +vt 0.128750 0.546667 +vt 0.128750 0.568333 +vt 0.128750 0.606667 +vt 0.128750 0.646667 +vt 0.128750 0.558333 +vt 0.128750 0.586667 +vn 1.0000 0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.8658 0.0000 0.5004 +vn -0.0459 -0.9989 0.0110 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0058 +vn 0.0160 0.0000 0.9999 +vn 0.9998 0.0000 0.0212 +vn -0.0429 0.9991 -0.0002 +vn -0.4367 0.0000 0.8996 +vn -0.9999 0.0000 -0.0145 +vn -0.6499 0.0000 0.7600 +vn -0.0432 -0.9957 0.0823 +vn -0.0432 0.9973 0.0593 +vn -0.0000 -1.0000 -0.0000 +vn 0.3704 0.9289 -0.0002 +vn 0.3671 -0.9285 -0.0559 +vn 0.3514 0.9109 -0.2165 +vn 0.3704 0.9288 0.0078 +vn 0.3711 -0.9284 0.0190 +vn 0.3704 0.9289 0.0022 +vn 0.3704 -0.9286 0.0237 +vn 0.3704 0.9289 0.0000 +vn 0.3707 -0.9288 0.0000 +vn -0.0405 -0.9933 0.1083 +vn 1.0000 0.0000 -0.0005 +vn -0.0377 0.9993 0.0000 +vn -0.0471 -0.9988 -0.0103 +vn -0.0471 -0.9988 0.0103 +vn -0.0430 -0.9990 0.0116 +vn -0.0535 0.9883 -0.1431 +vn -0.0465 0.9989 -0.0010 +vn -0.6399 0.5727 0.5124 +vn -0.0001 -0.9997 0.0232 +vn 0.3705 -0.9286 0.0190 +vn 0.3705 -0.9285 0.0237 +vn 0.0119 -0.9743 0.2249 +vn 0.0035 -0.9751 0.2219 +vn 0.0810 0.0057 -0.9967 +vn -0.1343 -0.3904 -0.9108 +vn -0.0938 -0.0125 -0.9955 +vn 0.0630 -0.3770 -0.9241 +vn -0.0927 -0.6622 -0.7436 +vn 0.0473 -0.7034 -0.7093 +vn -0.0000 -0.9239 -0.3827 +vn 0.0367 -0.9224 -0.3845 +vn 0.0329 -0.9995 -0.0000 +vn -0.0000 -0.9239 0.3827 +vn 0.0367 -0.9224 0.3845 +vn -0.0927 -0.6622 0.7436 +vn 0.0473 -0.7034 0.7093 +vn -0.1343 -0.3904 0.9108 +vn 0.0630 -0.3770 0.9241 +vn -0.0938 -0.0125 0.9955 +vn 0.0810 0.0057 0.9967 +vn -0.0550 0.3723 0.9265 +vn 0.0986 0.3856 0.9174 +vn -0.0249 0.7017 0.7120 +vn 0.1131 0.7053 0.6998 +vn -0.0070 0.9226 0.3858 +vn 0.1226 0.9177 0.3779 +vn -0.0014 1.0000 0.0000 +vn 0.1259 0.9920 0.0000 +vn -0.0070 0.9226 -0.3858 +vn 0.1226 0.9177 -0.3779 +vn -0.0249 0.7017 -0.7120 +vn 0.2507 -0.3642 -0.8969 +vn 0.1960 -0.6891 -0.6976 +vn 0.1131 0.7053 -0.6998 +vn -0.0550 0.3723 -0.9265 +vn 0.0986 0.3856 -0.9174 +vn -0.1689 0.9518 -0.2560 +vn -0.2026 0.8198 -0.5356 +vn -0.9999 0.0152 -0.0000 +vn -0.3334 -0.6673 -0.6660 +vn -0.3677 -0.8964 -0.2474 +vn -0.3703 -0.7707 -0.5186 +vn -0.1850 0.0004 0.9827 +vn -0.3649 -0.4770 0.7996 +vn -0.2728 -0.4089 0.8708 +vn -0.1850 0.0004 -0.9827 +vn -0.3649 -0.4770 -0.7996 +vn -0.3264 0.0192 -0.9450 +vn -0.0032 1.0000 0.0000 +vn -0.1583 0.9874 0.0000 +vn -0.3334 -0.6673 0.6660 +vn -0.3677 -0.8964 0.2474 +vn -0.3863 -0.8696 0.3074 +vn -0.0117 0.9403 0.3403 +vn -0.2026 0.8198 0.5356 +vn -0.0419 0.7512 0.6588 +vn -0.1008 0.4241 -0.9000 +vn -0.2608 0.5178 -0.8148 +vn -0.3863 -0.8696 -0.3074 +vn -0.3669 -0.9303 -0.0000 +vn -0.1008 0.4241 0.9000 +vn -0.3264 0.0192 0.9450 +vn -0.0117 0.9403 -0.3403 +vn -0.2728 -0.4089 -0.8708 +vn -0.3703 -0.7707 0.5186 +vn -0.1689 0.9518 0.2560 +vn -0.3977 -0.9175 -0.0000 +vn -0.2608 0.5178 0.8148 +vn 0.3630 0.3606 -0.8592 +vn 0.6235 0.5508 -0.5548 +vn 0.5707 0.3111 -0.7599 +vn 0.2507 -0.3642 0.8969 +vn 0.4384 0.8988 0.0000 +vn 0.1571 -0.9110 0.3812 +vn 0.4042 0.6486 0.6449 +vn 0.4042 0.6486 -0.6449 +vn 0.1571 -0.9110 -0.3812 +vn 0.3097 0.0059 0.9508 +vn 0.3097 0.0059 -0.9508 +vn 0.4298 0.8347 -0.3444 +vn 0.1960 -0.6891 0.6976 +vn 0.4298 0.8347 0.3444 +vn 0.1430 -0.9897 -0.0000 +vn 0.3630 0.3606 0.8592 +vn 0.2476 -0.9689 0.0000 +vn 0.3523 -0.8680 0.3499 +vn 0.2698 -0.8895 0.3687 +vn 0.4980 -0.0029 0.8672 +vn 0.4980 -0.0029 -0.8672 +vn 0.4128 -0.3500 -0.8409 +vn 0.5707 0.3111 0.7599 +vn 0.3303 -0.6676 -0.6672 +vn 0.6235 0.5508 0.5548 +vn 0.2698 -0.8895 -0.3687 +vn 0.6547 0.6978 0.2907 +vn 0.6649 0.7469 -0.0000 +vn 0.6547 0.6978 -0.2907 +vn 0.3303 -0.6676 0.6672 +vn 0.4128 -0.3500 0.8409 +vn 0.5478 0.5836 0.5994 +vn 0.4691 0.3372 0.8162 +vn 0.4631 0.6263 0.6271 +vn 0.5732 0.8194 0.0000 +vn 0.5669 0.7589 -0.3205 +vn 0.3827 -0.6643 0.6421 +vn 0.5478 0.5836 -0.5994 +vn 0.4269 -0.3638 0.8279 +vn 0.5161 0.3131 -0.7973 +vn 0.4737 -0.0189 0.8805 +vn 0.4737 -0.0189 -0.8805 +vn 0.4257 -0.3636 -0.8286 +vn 0.5161 0.3131 0.7973 +vn 0.3827 -0.6643 -0.6421 +vn 0.3523 -0.8680 -0.3499 +vn 0.5669 0.7589 0.3205 +vn 0.3415 -0.9399 0.0000 +vn 0.4631 0.6263 -0.6271 +vn 0.8540 0.2014 -0.4797 +vn 0.4691 0.3372 -0.8162 +vn 0.4920 -0.8044 -0.3329 +vn 0.4591 0.8206 0.3403 +vn 0.4933 -0.8699 -0.0000 +vn 0.4577 0.8891 0.0000 +vn 0.4920 -0.8044 0.3329 +vn 0.4591 0.8206 -0.3403 +vn 0.4883 -0.6175 0.6167 +vn 0.4827 -0.3358 0.8088 +vn 0.4759 -0.0008 0.8795 +vn 0.4827 -0.3358 -0.8088 +vn 0.4759 -0.0008 -0.8795 +vn 0.4883 -0.6175 -0.6167 +vn 0.8654 -0.5011 0.0000 +vn 0.8631 -0.3559 -0.3584 +vn 0.8512 0.3725 0.3698 +vn 0.8604 -0.1928 0.4717 +vn 0.8572 0.0026 0.5149 +vn 0.8604 -0.1928 -0.4717 +vn 0.8572 0.0026 -0.5149 +vn 0.8540 0.2014 0.4797 +vn 0.8648 -0.4635 -0.1931 +vn 0.8493 0.4881 0.2010 +vn 0.8486 0.5290 -0.0000 +vn 0.8648 -0.4635 0.1931 +vn 0.8493 0.4881 -0.2010 +vn 0.8631 -0.3559 0.3584 +vn 0.8512 0.3725 -0.3698 +vn 0.2304 0.6351 -0.7372 +vn -0.0556 0.0738 -0.9957 +vn -0.0764 0.0081 -0.9970 +vn 0.6917 0.7222 -0.0000 +vn 0.2932 0.2402 0.9254 +vn 0.5995 0.8004 0.0000 +vn -0.0477 0.0732 0.9962 +vn 0.1893 0.5721 0.7980 +vn -0.2282 0.9736 0.0000 +vn 0.2304 0.6351 0.7372 +vn -0.9997 0.0243 0.0000 +vn -0.0708 -0.0046 -0.9975 +vn 0.2401 0.9707 -0.0000 +vn -0.0307 0.3710 0.9281 +vn 0.0147 0.6209 0.7838 +vn 0.1072 0.7709 0.6279 +vn -0.0940 0.2428 0.9655 +vn -0.0321 0.0475 0.9984 +vn 0.1421 0.9899 0.0000 +vn 0.1893 0.5721 -0.7980 +vn -0.0307 0.3710 -0.9281 +vn -0.3565 -0.6551 0.6661 +vn -0.0940 0.2428 -0.9655 +vn 0.0147 0.6209 -0.7838 +vn -0.0321 0.0475 -0.9984 +vn -0.3565 -0.6551 -0.6661 +vn 0.1072 0.7709 -0.6279 +vn 0.2892 0.2425 -0.9260 +vn -0.0185 -0.9506 0.3099 +vn -0.0185 -0.9506 -0.3099 +vn -0.0938 0.0570 0.9940 +vn -0.0768 0.0053 0.9970 +vn -0.0708 -0.0046 0.9975 +vn -0.0938 0.0570 -0.9940 +vn 0.9098 0.3822 -0.1619 +vn 0.9036 -0.3973 -0.1603 +vn 0.9036 0.3973 -0.1603 +vn -0.1043 0.9944 -0.0158 +vn 0.3414 0.9380 -0.0604 +vn -0.0931 0.9956 -0.0133 +vn 0.3414 -0.9380 -0.0604 +vn -0.1043 -0.9944 -0.0158 +vn -0.0931 -0.9956 -0.0133 +vn 0.3955 0.9158 -0.0703 +vn 0.3955 -0.9158 -0.0703 +vn 0.9098 -0.3822 -0.1619 +vn 0.0000 0.0000 -1.0000 +vn -0.2024 0.9789 -0.0291 +vn -0.2024 -0.9789 -0.0291 +vn 0.9098 -0.3822 0.1619 +vn 0.9036 0.3973 0.1603 +vn 0.9036 -0.3973 0.1603 +vn -0.1043 -0.9944 0.0158 +vn 0.3414 -0.9380 0.0604 +vn -0.0931 -0.9956 0.0133 +vn 0.3414 0.9380 0.0604 +vn -0.1043 0.9944 0.0158 +vn -0.0931 0.9956 0.0133 +vn 0.3955 -0.9158 0.0704 +vn 0.3955 0.9158 0.0703 +vn 0.9098 0.3822 0.1619 +vn -0.0000 0.0000 1.0000 +vn -0.2024 -0.9789 0.0291 +vn -0.2024 0.9789 0.0291 +vn -0.0419 0.7512 -0.6588 +vn 0.1769 -0.8514 0.4938 +vn 0.1911 -0.9199 0.3424 +vn 0.1922 -0.9249 -0.3279 +vn 0.2034 -0.9791 0.0000 +vn 0.1769 -0.8514 -0.4938 +vn 0.1911 -0.9199 -0.3424 +vn 0.1922 -0.9249 0.3279 +vn -0.3601 -0.7774 -0.5156 +vn -0.3792 -0.8660 -0.3260 +vn -0.3595 -0.8072 -0.4682 +vn -0.3601 -0.7774 0.5156 +vn -0.3792 -0.8660 0.3260 +vn -0.3829 -0.8572 0.3443 +vn -0.3829 -0.8572 -0.3443 +vn -0.3946 -0.9188 0.0000 +vn -0.0478 0.2298 -0.9721 +vn -0.1878 0.9036 -0.3850 +vn -0.1892 0.9107 -0.3673 +vn -0.2034 0.9791 0.0000 +vn -0.1892 0.9107 0.3673 +vn -0.1878 0.9036 0.3850 +vn 0.0460 -0.2216 -0.9740 +vn -0.1276 0.6143 -0.7787 +vn -0.0478 0.2298 0.9721 +vn 0.0460 -0.2216 0.9740 +vn -0.1276 0.6143 0.7787 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.3827 -0.9239 +vn -0.2584 -0.0301 -0.9656 +vn -0.2138 -0.9758 -0.0466 +vn -0.5821 -0.5915 -0.5579 +vn -0.2876 -0.6718 -0.6826 +vn 0.2584 -0.0301 -0.9656 +vn 0.2876 -0.6718 -0.6826 +vn -0.0962 -0.9196 0.3809 +vn 0.2138 -0.9758 -0.0466 +vn 0.5821 -0.5915 -0.5579 +vn -0.4781 0.0910 -0.8736 +vn -0.2081 0.3743 -0.9036 +vn 0.2081 0.3743 -0.9036 +vn 0.4781 0.0910 -0.8736 +vn -0.3220 -0.9376 0.1309 +vn 0.3220 -0.9376 0.1309 +vn 0.0962 -0.9196 0.3809 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.3827 0.9239 +vn -0.2584 -0.0301 0.9656 +vn -0.2138 -0.9758 0.0466 +vn -0.5821 -0.5915 0.5579 +vn -0.3220 -0.9376 -0.1309 +vn 0.2081 0.3743 0.9036 +vn 0.2876 -0.6718 0.6826 +vn -0.2876 -0.6718 0.6826 +vn 0.2584 -0.0301 0.9656 +vn -0.0962 -0.9196 -0.3809 +vn 0.2138 -0.9758 0.0466 +vn 0.5821 -0.5915 0.5579 +vn 0.4781 0.0910 0.8736 +vn -0.2081 0.3743 0.9037 +vn -0.4781 0.0910 0.8736 +vn 0.3582 0.3573 0.8626 +vn -0.1649 -0.9112 -0.3774 +vn 0.0962 -0.9196 -0.3809 +vn 0.3220 -0.9376 -0.1309 +vn 0.0000 -0.3827 -0.9239 +vn -0.0000 -0.3827 0.9239 +vn -0.2811 0.6786 0.6786 +vn 0.2811 0.6786 -0.6786 +vn 0.7071 0.0000 0.7071 +vn 0.2811 0.6786 0.6786 +vn 0.1290 0.3795 -0.9162 +vn -0.2811 0.6786 -0.6786 +vn 0.1290 -0.9162 0.3795 +vn -0.0842 0.3813 0.9206 +vn 0.1290 0.9162 0.3795 +vn -0.0842 -0.9206 0.3813 +vn -0.0842 0.3813 -0.9206 +vn -0.0842 -0.3813 -0.9206 +vn 0.1290 -0.3795 0.9162 +vn 0.1290 -0.3795 -0.9162 +vn 0.1290 -0.9162 -0.3795 +vn -0.0842 0.9206 0.3813 +vn 0.1290 0.9162 -0.3795 +vn -0.0842 -0.3813 0.9206 +vn 0.1290 0.3795 0.9162 +vn -0.0842 -0.9206 -0.3813 +vn -0.0842 0.9206 -0.3813 +vn 0.7274 -0.2626 -0.6340 +vn 0.7274 -0.6340 -0.2626 +vn 0.7274 0.6340 -0.2626 +vn 0.7274 0.2626 0.6340 +vn 0.7274 -0.6340 0.2626 +vn 0.7274 -0.2626 0.6340 +vn 0.7274 0.6340 0.2626 +vn 0.7274 0.2626 -0.6340 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0395 0.0793 -0.9961 +vn 0.2579 -0.6421 -0.7219 +vn 0.0374 -0.6482 -0.7605 +vn 0.0345 -0.9994 0.0000 +vn 0.2580 -0.6421 0.7219 +vn 0.0374 -0.6482 0.7605 +vn 0.0395 0.0793 0.9961 +vn 0.1484 0.0900 0.9848 +vn 0.0396 0.7059 0.7072 +vn 0.1393 0.7021 0.6983 +vn 0.0380 0.9993 0.0000 +vn 0.5402 -0.8415 -0.0000 +vn 0.2980 -0.9546 0.0000 +vn 0.1393 0.7021 -0.6983 +vn 0.0396 0.7059 -0.7072 +vn 0.1483 0.0900 -0.9848 +vn 0.2023 0.6897 0.6953 +vn 0.2022 0.6897 -0.6953 +vn 0.1873 -0.0056 -0.9823 +vn 0.3633 -0.5613 -0.7436 +vn 0.3633 -0.5613 0.7436 +vn 0.2084 0.9780 -0.0000 +vn 0.1406 0.9901 0.0000 +vn 0.1874 -0.0056 0.9823 +vn -0.0994 0.0743 -0.9923 +vn -0.2799 -0.6041 -0.7461 +vn -0.1984 0.0653 -0.9779 +vn -0.1426 -0.6541 0.7428 +vn -0.1426 -0.6541 -0.7428 +vn -0.0994 0.0743 0.9923 +vn -0.0928 0.7032 -0.7049 +vn -0.1643 -0.9864 0.0000 +vn -0.1889 0.6964 -0.6923 +vn -0.0906 0.9959 0.0000 +vn -0.1889 0.6964 0.6923 +vn -0.0928 0.7032 0.7049 +vn -0.2799 -0.6041 0.7461 +vn -0.3368 -0.9416 0.0000 +vn -0.1844 0.9829 0.0000 +vn -0.1984 0.0653 0.9779 +vn 0.6227 -0.6827 -0.3822 +vn 0.4008 -0.5261 -0.7501 +vn 0.6464 0.7155 -0.2650 +vn 0.1749 -0.9843 -0.0258 +vn -0.9373 -0.0099 -0.3483 +vn 0.1369 -0.9880 -0.0719 +vn 0.1380 0.9894 0.0443 +vn 0.4011 0.6112 -0.6824 +vn -0.1967 0.7052 -0.6812 +vn 0.8295 -0.5582 -0.0210 +vn 0.8281 0.5606 -0.0024 +vn 0.8262 -0.5633 -0.0090 +vn -0.1756 -0.6143 -0.7693 +vn 0.8286 0.5598 -0.0112 +vn 0.8478 -0.4952 -0.1898 +vn 0.8588 0.4836 -0.1688 +vn 0.1747 0.9846 -0.0085 +vn -0.9999 -0.0000 0.0145 +vn -0.9059 0.0000 -0.4234 +vn -0.9123 0.0653 -0.4043 +vn -0.6550 0.5133 -0.5545 +vn -0.6399 0.5727 -0.5124 +vn -0.0103 -0.9997 -0.0232 +vn -0.0431 -0.9979 -0.0485 +vn -0.0108 0.9998 -0.0148 +vn 0.1889 0.9820 -0.0005 +vn 0.9311 -0.3647 0.0002 +vn 0.1888 -0.9820 0.0000 +vn 0.1886 0.9820 0.0000 +vn 0.8278 0.5611 0.0004 +vn 0.8278 0.5610 0.0002 +vn 0.1887 -0.9820 -0.0119 +vn 1.0000 -0.0000 0.0005 +vn 0.1886 0.9821 0.0001 +vn 0.2579 -0.6421 0.7219 +vn 0.1483 0.0900 0.9848 +vn 0.2580 -0.6421 -0.7219 +vn 0.1484 0.0900 -0.9848 +vn 0.2023 0.6897 -0.6953 +vn 0.2022 0.6897 0.6953 +vn -0.1896 0.9814 -0.0289 +vn -0.1896 -0.9814 -0.0289 +vn -0.1896 -0.9814 0.0289 +vn -0.1896 0.9814 0.0289 +vn -0.3595 -0.8072 0.4682 +vn -0.3582 0.3573 -0.8626 +vn 0.3582 0.3573 -0.8626 +vn -0.1649 -0.9112 0.3774 +vn 0.1649 -0.9112 0.3774 +vn -0.3582 0.3573 0.8626 +vn 0.1649 -0.9112 -0.3774 +vn -0.0431 0.9986 -0.0308 +vn 0.1874 -0.0056 -0.9823 +vn 0.1873 -0.0056 0.9823 +s off +f 500/284/57 503/285/57 505/286/57 +f 521/287/58 522/288/58 523/289/58 +f 577/290/57 579/291/57 570/292/57 +f 592/293/58 593/294/58 594/295/58 +f 662/296/57 661/297/57 660/298/57 +f 676/299/58 675/300/58 668/301/58 +f 685/302/59 684/303/59 683/304/59 +f 691/305/60 689/306/60 688/307/60 +f 687/308/61 682/309/61 692/310/61 +f 694/311/62 696/312/62 695/313/62 +f 686/314/63 693/315/63 698/316/63 +f 684/317/64 695/313/64 683/318/64 +f 691/319/65 699/320/65 690/321/65 +f 691/322/66 698/316/66 693/315/66 +f 690/323/67 701/324/67 700/325/67 +f 701/324/68 702/326/68 700/325/68 +f 700/327/69 689/306/69 690/328/69 +f 699/320/70 701/329/70 690/321/70 +f 707/330/57 696/312/57 697/331/57 +f 700/327/71 708/332/71 704/333/71 +f 709/334/61 701/329/61 705/335/61 +f 711/336/72 709/334/72 706/337/72 +f 684/338/73 685/339/73 688/307/73 +f 692/310/74 682/309/74 683/340/74 +f 683/340/75 699/320/75 692/310/75 +f 689/306/76 684/338/76 688/307/76 +f 705/335/77 695/341/77 696/342/77 +f 697/343/78 689/306/78 704/333/78 +f 706/337/79 705/335/79 696/342/79 +f 707/344/80 704/333/80 708/332/80 +f 698/345/81 691/305/81 688/307/81 +f 736/346/57 734/347/57 732/348/57 +f 747/349/58 746/350/58 740/351/58 +f 707/330/82 711/352/82 706/353/82 +f 710/354/61 703/355/61 709/334/61 +f 755/356/83 757/357/83 754/358/83 +f 759/359/83 761/360/83 758/361/83 +f 765/362/84 763/363/84 762/364/84 +f 767/365/85 769/366/85 766/367/85 +f 500/284/57 499/368/57 503/285/57 +f 503/285/57 504/369/57 505/286/57 +f 505/286/57 506/370/57 500/284/57 +f 506/370/57 507/371/57 500/284/57 +f 507/371/57 508/372/57 500/284/57 +f 523/289/58 512/373/58 520/374/58 +f 512/373/58 511/375/58 519/376/58 +f 511/375/58 518/377/58 519/376/58 +f 519/376/58 520/374/58 512/373/58 +f 520/374/58 521/287/58 523/289/58 +f 570/292/57 569/378/57 577/290/57 +f 569/378/57 575/379/57 577/290/57 +f 575/379/57 576/380/57 577/290/57 +f 577/290/57 578/381/57 579/291/57 +f 579/291/57 580/382/57 570/292/57 +f 594/295/58 584/383/58 591/384/58 +f 584/383/58 583/385/58 590/386/58 +f 583/385/58 589/387/58 590/386/58 +f 590/386/58 591/384/58 584/383/58 +f 591/384/58 592/293/58 594/295/58 +f 660/298/57 656/388/57 657/389/57 +f 657/389/57 665/390/57 660/298/57 +f 665/390/57 664/391/57 660/298/57 +f 664/391/57 663/392/57 660/298/57 +f 663/392/57 662/296/57 660/298/57 +f 668/301/58 669/393/58 677/394/58 +f 669/393/58 680/395/58 678/396/58 +f 680/395/58 679/397/58 678/396/58 +f 678/396/58 677/394/58 669/393/58 +f 677/394/58 676/299/58 668/301/58 +f 683/304/59 682/398/59 685/302/59 +f 682/398/59 687/399/59 686/400/59 +f 685/302/59 682/398/59 686/400/59 +f 691/305/86 690/328/86 689/306/86 +f 692/310/87 691/319/87 693/401/87 +f 693/401/61 687/308/61 692/310/61 +f 694/311/62 697/331/62 696/312/62 +f 686/314/63 687/402/63 693/315/63 +f 684/317/64 694/311/64 695/313/64 +f 691/319/88 692/310/88 699/320/88 +f 701/324/89 703/403/89 702/326/89 +f 700/327/90 704/333/90 689/306/90 +f 699/320/61 705/335/61 701/329/61 +f 707/330/57 706/353/57 696/312/57 +f 700/327/71 702/404/71 708/332/71 +f 709/334/61 703/355/61 701/329/61 +f 711/336/72 710/354/72 709/334/72 +f 683/340/75 695/341/75 699/320/75 +f 689/306/91 694/405/91 684/338/91 +f 705/335/77 699/320/77 695/341/77 +f 697/343/92 694/405/92 689/306/92 +f 706/337/79 709/334/79 705/335/79 +f 707/344/80 697/343/80 704/333/80 +f 688/307/93 685/339/93 686/406/93 +f 686/406/94 698/345/94 688/307/94 +f 732/348/57 726/407/57 736/346/57 +f 726/407/57 727/408/57 736/346/57 +f 727/408/57 737/409/57 736/346/57 +f 736/346/57 735/410/57 734/347/57 +f 734/347/57 733/411/57 732/348/57 +f 740/351/58 741/412/58 748/413/58 +f 741/412/58 751/414/58 749/415/58 +f 751/414/58 750/416/58 749/415/58 +f 749/415/58 748/413/58 741/412/58 +f 748/413/58 747/349/58 740/351/58 +f 707/330/82 752/417/82 711/352/82 +f 710/354/61 753/418/61 703/355/61 +f 755/356/83 756/419/83 757/357/83 +f 759/359/83 760/420/83 761/360/83 +f 765/362/84 764/421/84 763/363/84 +f 767/365/85 768/422/85 769/366/85 +s 1 +f 166/423/95 168/424/96 165/425/97 +f 167/426/98 170/427/99 168/424/96 +f 169/428/100 172/429/101 170/427/99 +f 171/430/102 174/431/71 172/429/101 +f 173/432/103 176/433/104 174/431/71 +f 175/434/105 178/435/106 176/433/104 +f 177/436/107 180/437/108 178/435/106 +f 179/438/109 182/439/110 180/437/108 +f 181/440/111 184/441/112 182/439/110 +f 183/442/113 186/443/114 184/441/112 +f 185/444/115 188/445/116 186/443/114 +f 187/446/117 190/447/118 188/445/116 +f 189/448/119 192/449/120 190/450/118 +f 191/451/121 194/452/122 192/449/120 +f 169/428/100 195/453/123 196/454/124 +f 193/455/125 198/456/126 194/452/122 +f 197/457/127 165/425/97 198/456/126 +f 199/458/128 200/459/129 201/460/130 +f 202/461/131 204/462/132 205/463/133 +f 207/464/134 209/465/135 206/466/136 +f 210/467/137 212/468/138 213/469/139 +f 214/470/140 199/471/128 216/472/141 +f 218/473/142 220/474/143 217/475/144 +f 222/476/145 224/477/146 221/478/147 +f 225/479/148 213/480/139 226/481/149 +f 203/482/150 228/483/151 204/462/132 +f 229/484/152 208/485/153 207/486/134 +f 215/487/154 200/459/129 199/458/128 +f 211/488/155 205/489/133 212/490/138 +f 206/491/136 219/492/156 218/493/142 +f 214/494/140 223/495/157 222/496/145 +f 217/475/144 228/483/151 227/497/158 +f 221/498/147 230/499/159 229/500/152 +f 232/501/160 234/502/161 235/503/162 +f 177/436/107 237/504/163 179/438/109 +f 187/446/117 239/505/164 189/506/119 +f 173/432/103 241/507/165 175/434/105 +f 183/442/113 243/508/166 185/444/115 +f 197/457/127 233/509/167 232/501/160 +f 171/430/102 196/454/124 244/510/168 +f 179/438/109 245/511/169 181/440/111 +f 167/426/98 246/512/170 195/453/123 +f 191/451/121 239/513/164 247/514/171 +f 175/434/105 236/515/172 177/436/107 +f 185/444/115 238/516/173 187/446/117 +f 166/423/95 232/501/160 246/512/170 +f 173/432/103 244/510/168 240/517/174 +f 181/440/111 242/518/175 183/442/113 +f 193/455/125 247/514/171 233/509/167 +f 249/519/176 251/520/177 248/521/178 +f 237/504/163 253/522/179 245/511/169 +f 195/453/123 254/523/180 255/524/181 +f 246/512/170 235/503/162 254/523/180 +f 245/511/169 256/525/182 242/518/175 +f 196/454/124 255/524/181 257/526/183 +f 242/518/175 258/527/184 243/508/166 +f 244/510/168 257/526/183 259/528/185 +f 243/508/166 260/529/186 238/516/173 +f 240/517/174 259/528/185 249/530/176 +f 238/516/173 261/531/187 239/505/164 +f 240/517/174 248/532/178 241/507/165 +f 247/514/171 261/533/187 262/534/188 +f 241/507/165 263/535/189 236/515/172 +f 233/509/167 262/534/188 234/502/161 +f 236/515/172 252/536/190 237/504/163 +f 264/537/191 266/538/192 267/539/193 +f 262/540/188 268/541/194 269/542/195 +f 248/543/178 270/544/196 263/545/189 +f 234/546/161 269/547/195 271/548/197 +f 263/549/189 272/550/198 252/551/190 +f 235/552/162 271/553/197 273/554/199 +f 252/555/190 274/556/200 253/557/179 +f 255/558/181 275/559/201 276/560/202 +f 254/561/180 273/562/199 275/563/201 +f 253/564/179 265/565/203 256/566/182 +f 257/567/183 276/568/202 277/569/204 +f 256/570/182 264/537/191 258/571/184 +f 259/572/185 277/573/204 278/574/205 +f 258/575/184 279/576/206 260/577/186 +f 249/578/176 278/579/205 250/580/207 +f 260/581/186 268/582/194 261/583/187 +f 281/584/208 283/585/209 280/586/210 +f 277/573/204 285/587/211 278/574/205 +f 279/576/206 267/588/193 286/589/212 +f 278/579/205 287/590/213 250/580/207 +f 268/582/194 286/591/212 288/592/214 +f 251/520/177 287/593/213 289/594/215 +f 268/541/194 290/595/216 269/542/195 +f 270/544/196 289/596/215 291/597/217 +f 269/547/195 281/598/208 271/548/197 +f 272/550/198 291/599/217 292/600/218 +f 271/553/197 280/586/210 273/554/199 +f 274/556/200 292/601/218 293/602/219 +f 275/559/201 295/603/220 276/560/202 +f 273/562/199 294/604/221 275/563/201 +f 265/565/203 293/605/219 266/606/192 +f 276/568/202 284/607/222 277/569/204 +f 307/608/223 309/609/224 301/610/225 +f 293/602/219 304/611/226 303/612/227 +f 294/613/221 296/614/228 295/603/220 +f 280/615/210 297/616/229 294/604/221 +f 266/606/192 303/617/227 302/618/230 +f 295/619/220 309/620/224 284/607/222 +f 267/539/193 302/621/230 301/622/225 +f 284/623/222 308/624/231 285/587/211 +f 286/589/212 301/625/225 300/626/232 +f 285/627/211 307/628/223 287/590/213 +f 288/592/214 300/629/232 299/630/233 +f 289/594/215 307/631/223 306/632/234 +f 288/633/214 298/634/235 290/595/216 +f 291/597/217 306/635/234 305/636/236 +f 290/637/216 282/638/237 281/598/208 +f 292/600/218 305/639/236 304/640/226 +f 219/492/156 209/641/135 201/642/130 +f 200/643/129 226/644/149 201/645/130 +f 209/465/135 208/646/153 201/647/130 +f 213/469/139 212/468/138 201/648/130 +f 226/481/149 213/480/139 201/649/130 +f 208/485/153 230/650/159 201/651/130 +f 212/490/138 205/489/133 201/652/130 +f 230/499/159 224/653/146 201/654/130 +f 205/655/133 204/656/132 201/657/130 +f 224/477/146 223/658/157 201/659/130 +f 204/660/132 228/661/151 201/662/130 +f 223/495/157 216/663/141 201/664/130 +f 228/665/151 220/666/143 201/667/130 +f 216/472/141 199/471/128 201/668/130 +f 220/669/143 219/670/156 201/671/130 +f 310/672/238 311/673/239 312/674/240 +f 314/675/241 316/676/242 313/677/243 +f 317/678/244 318/679/245 316/676/242 +f 314/680/241 319/681/246 315/682/247 +f 311/673/239 322/683/248 320/684/249 +f 313/677/243 318/679/245 323/685/250 +f 325/686/251 327/687/252 324/688/253 +f 325/686/251 328/689/254 326/690/255 +f 323/685/250 324/691/253 329/692/256 +f 317/678/244 322/683/248 325/693/251 +f 330/694/257 321/695/258 311/673/239 +f 318/679/245 325/693/251 324/691/253 +f 328/696/254 322/697/248 332/698/259 +f 321/699/258 334/700/260 322/701/248 +f 321/699/258 335/702/261 333/703/262 +f 322/704/248 334/705/260 336/706/263 +f 323/685/250 331/707/264 330/694/257 +f 330/694/257 313/677/243 323/685/250 +f 310/708/238 319/681/246 314/680/241 +f 337/709/265 314/675/241 313/677/243 +f 339/710/71 340/711/266 332/698/259 +f 334/705/260 338/712/267 336/706/263 +f 328/696/254 340/711/266 326/713/255 +f 316/676/242 315/714/247 317/678/244 +f 315/714/247 319/715/246 341/716/268 +f 317/678/244 315/714/247 312/674/269 +f 341/716/268 312/674/269 315/714/247 +f 312/674/269 320/684/270 317/678/244 +f 312/674/240 341/716/271 310/672/238 +f 341/716/271 319/715/246 310/672/238 +f 310/672/238 337/709/265 311/673/239 +f 337/709/265 330/694/257 311/673/239 +f 311/673/239 320/684/249 312/674/240 +f 322/717/248 336/706/263 332/698/259 +f 343/718/272 345/719/273 342/720/274 +f 347/721/275 349/722/276 346/723/277 +f 350/724/278 352/725/279 353/726/280 +f 342/720/274 348/727/281 343/718/272 +f 351/728/282 345/719/273 344/729/283 +f 349/730/284 342/720/284 345/719/284 +f 354/731/285 347/721/275 346/723/277 +f 352/725/279 354/732/286 353/726/280 +f 357/733/287 359/734/288 356/735/289 +f 361/736/290 363/737/291 360/738/292 +f 364/739/293 366/740/294 367/741/295 +f 356/735/289 362/742/296 357/733/287 +f 365/743/297 359/734/288 358/744/298 +f 363/745/299 356/735/299 359/734/299 +f 368/746/300 361/736/290 360/738/292 +f 366/740/294 368/747/301 367/741/295 +f 231/748/302 226/644/149 200/643/129 +f 218/749/303 370/750/304 371/751/303 +f 182/439/110 206/752/136 180/437/108 +f 165/425/97 211/753/155 210/754/137 +f 190/450/118 215/755/154 214/756/140 +f 203/757/305 373/758/306 227/759/306 +f 188/445/116 221/760/147 186/443/114 +f 198/456/126 210/761/137 225/762/148 +f 202/763/307 372/764/308 203/757/305 +f 184/441/112 207/765/134 182/439/110 +f 192/449/120 231/766/302 215/755/154 +f 168/424/96 202/767/131 211/768/155 +f 180/437/108 218/769/142 178/435/106 +f 190/447/118 222/770/145 188/445/116 +f 217/771/309 373/758/306 370/750/304 +f 186/443/114 229/772/152 184/441/112 +f 194/452/122 225/773/148 231/774/302 +f 375/775/310 372/776/311 374/777/312 +f 378/778/313 370/779/314 377/780/315 +f 376/781/316 373/782/317 372/776/311 +f 377/780/315 373/782/317 379/783/158 +f 178/784/318 377/785/319 176/786/320 +f 176/786/320 379/787/321 174/788/321 +f 172/789/322 379/787/321 376/790/323 +f 178/791/318 371/792/324 378/793/325 +f 170/794/326 374/795/327 202/796/327 +f 170/797/326 376/790/323 375/798/328 +f 383/799/71 381/800/104 380/801/104 +f 385/802/329 382/803/71 383/799/71 +f 387/804/284 384/805/329 385/802/329 +f 389/806/330 386/807/284 387/804/284 +f 391/808/331 389/806/330 387/804/284 +f 392/809/332 394/810/333 393/811/334 +f 388/812/330 396/813/335 386/807/284 +f 392/809/332 385/802/329 383/799/71 +f 399/814/336 382/803/71 384/805/329 +f 393/811/334 387/804/284 385/802/329 +f 396/813/335 384/805/329 386/807/284 +f 400/815/337 383/799/71 380/801/104 +f 398/816/338 381/800/104 382/803/71 +f 403/817/339 398/816/338 399/814/336 +f 394/810/333 391/808/331 393/811/334 +f 396/813/335 403/817/339 399/814/336 +f 404/818/340 390/819/341 391/808/331 +f 397/820/342 405/821/343 396/813/335 +f 400/815/337 395/822/344 392/809/332 +f 402/823/345 401/824/346 398/816/338 +f 411/825/101 413/826/71 410/827/101 +f 412/828/71 415/829/347 413/826/71 +f 414/830/347 417/831/299 415/829/347 +f 416/832/299 419/833/348 417/831/299 +f 419/833/348 421/834/349 417/831/299 +f 422/835/350 424/836/351 425/837/352 +f 416/832/299 427/838/353 418/839/348 +f 415/829/347 422/835/350 413/826/71 +f 412/828/71 429/840/354 414/830/347 +f 417/831/299 423/841/355 415/829/347 +f 414/830/347 426/842/356 416/832/299 +f 413/826/71 430/843/357 410/827/101 +f 411/825/101 428/844/358 412/828/71 +f 428/844/358 433/845/359 429/840/354 +f 421/834/349 424/836/351 423/841/355 +f 426/842/356 433/845/359 435/846/360 +f 420/847/361 434/848/362 421/834/349 +f 427/838/353 435/849/360 437/850/363 +f 430/843/357 425/851/352 438/852/364 +f 431/853/365 432/854/366 428/844/358 +f 441/855/367 443/856/101 440/857/367 +f 442/858/101 445/859/104 443/856/101 +f 445/859/104 446/860/368 447/861/368 +f 447/861/368 448/862/348 449/863/348 +f 448/862/348 451/864/369 449/863/348 +f 452/865/370 454/866/371 450/867/372 +f 452/868/370 457/869/373 455/870/330 +f 452/868/370 459/871/330 458/872/374 +f 455/870/330 440/857/367 459/871/330 +f 442/858/101 461/873/375 444/874/104 +f 451/864/369 463/875/376 449/863/348 +f 448/862/348 465/876/377 450/877/372 +f 447/861/368 467/878/378 445/859/104 +f 440/857/367 469/879/379 459/871/330 +f 443/856/101 468/880/380 440/857/367 +f 444/874/104 471/881/381 446/860/368 +f 455/870/330 472/882/382 441/855/367 +f 441/855/367 460/883/383 442/858/101 +f 458/872/374 462/884/384 451/885/369 +f 450/886/372 456/887/385 452/868/370 +f 449/863/348 466/888/386 447/861/368 +f 446/860/368 464/889/387 448/862/348 +f 445/859/104 470/890/388 443/856/101 +f 459/871/330 473/891/389 458/872/374 +f 467/878/378 466/888/386 474/892/58 +f 473/891/389 469/879/379 474/893/58 +f 460/883/383 475/894/390 476/895/391 +f 466/888/386 463/875/376 474/896/58 +f 469/879/379 468/880/380 474/897/58 +f 468/880/380 470/890/388 474/898/58 +f 463/875/376 462/899/384 474/900/58 +f 475/901/390 478/902/392 480/903/393 +f 470/890/388 467/878/378 474/904/58 +f 462/884/384 473/891/389 474/905/58 +f 460/883/383 482/906/394 461/873/375 +f 461/873/375 481/907/395 471/881/381 +f 471/881/381 480/908/393 464/889/387 +f 464/889/387 479/909/396 465/876/377 +f 465/910/377 478/911/392 456/887/385 +f 456/887/385 477/912/397 457/869/373 +f 457/869/373 475/913/390 472/882/382 +f 450/867/372 483/914/398 451/915/369 +f 458/916/374 453/917/399 452/865/370 +f 451/918/369 484/919/400 458/916/374 +f 485/920/401 487/921/402 488/922/403 +f 487/923/402 490/924/404 488/922/403 +f 490/924/404 491/925/405 492/926/406 +f 491/927/405 494/928/407 492/926/406 +f 493/929/408 496/930/409 494/928/407 +f 495/931/410 498/932/411 496/930/409 +f 487/923/402 500/933/412 489/934/413 +f 498/935/411 501/936/414 502/937/415 +f 502/937/415 486/938/416 485/920/401 +f 493/929/408 506/939/417 495/940/410 +f 486/938/416 504/941/418 503/942/419 +f 486/943/416 499/944/420 487/921/402 +f 491/925/405 500/945/412 508/946/421 +f 495/931/410 505/947/422 497/948/423 +f 493/949/408 508/950/421 507/951/424 +f 501/936/414 505/952/422 504/953/418 +f 509/954/425 511/955/426 512/956/427 +f 494/928/407 514/957/428 492/926/406 +f 490/924/404 510/958/429 488/922/403 +f 496/930/409 513/959/430 494/928/407 +f 485/920/401 517/960/431 502/937/415 +f 488/922/403 509/954/425 485/920/401 +f 492/926/406 515/961/432 490/924/404 +f 517/960/431 512/962/427 523/963/433 +f 524/964/434 521/965/435 516/966/436 +f 513/959/430 519/967/437 514/957/428 +f 510/958/429 518/968/438 511/969/426 +f 524/970/434 523/971/433 522/972/439 +f 516/966/436 520/973/440 513/959/430 +f 514/957/428 518/974/438 515/961/432 +f 528/975/441 529/976/442 525/977/443 +f 532/978/444 534/979/445 531/980/446 +f 535/981/447 530/982/448 536/983/449 +f 537/984/450 539/985/451 540/986/452 +f 536/987/449 529/988/442 541/989/453 +f 538/990/454 527/991/455 526/992/456 +f 534/993/445 542/994/457 535/981/447 +f 534/995/445 536/987/449 541/989/453 +f 533/996/458 543/997/459 544/998/460 +f 544/998/460 545/999/461 546/1000/462 +f 532/978/444 543/1001/463 533/1002/464 +f 542/994/457 544/1003/465 548/1004/466 +f 539/985/451 550/1005/467 540/986/452 +f 543/1001/463 551/1006/468 545/1007/71 +f 544/1003/465 552/1008/469 548/1004/466 +f 552/1008/469 554/1009/470 549/1010/471 +f 527/1011/455 531/980/446 528/1012/441 +f 535/981/447 526/1013/456 525/1014/443 +f 542/994/457 526/1013/456 535/981/447 +f 532/978/444 527/1011/455 537/1015/450 +f 538/1016/454 548/1004/466 539/1017/451 +f 532/978/444 540/1018/452 547/1019/472 +f 549/1010/471 548/1004/466 552/1008/469 +f 547/1019/472 550/1020/467 551/1006/468 +f 531/980/446 541/1021/453 529/1022/442 +f 555/1023/401 557/1024/402 558/1025/403 +f 557/1026/402 560/1027/404 558/1025/403 +f 560/1027/404 561/1028/405 562/1029/406 +f 561/1030/405 564/1031/407 562/1029/406 +f 563/1032/408 566/1033/409 564/1031/407 +f 565/1034/410 568/1035/411 566/1033/409 +f 557/1026/402 570/1036/412 559/1037/413 +f 568/1038/411 571/1039/414 572/1040/415 +f 572/1040/415 556/1041/416 555/1023/401 +f 566/1033/409 573/1042/434 574/1043/436 +f 563/1032/408 578/1044/417 565/1045/410 +f 556/1041/416 576/1046/418 575/1047/419 +f 556/1048/416 569/1049/420 557/1024/402 +f 561/1028/405 570/1050/412 580/1051/421 +f 565/1034/410 577/1052/422 567/1053/423 +f 563/1054/408 580/1055/421 579/1056/424 +f 571/1039/414 577/1057/422 576/1058/418 +f 581/1059/425 583/1060/426 584/1061/427 +f 564/1031/407 586/1062/428 562/1029/406 +f 572/1040/415 573/1063/434 568/1038/411 +f 560/1027/404 582/1064/429 558/1025/403 +f 566/1033/409 585/1065/430 564/1031/407 +f 555/1023/401 587/1066/431 572/1040/415 +f 558/1025/403 581/1059/425 555/1023/401 +f 562/1029/406 588/1067/432 560/1027/404 +f 587/1066/431 584/1068/427 594/1069/433 +f 573/1042/434 592/1070/435 574/1043/436 +f 585/1065/430 590/1071/437 586/1062/428 +f 582/1064/429 589/1072/438 583/1073/426 +f 573/1063/434 594/1074/433 593/1075/439 +f 574/1043/436 591/1076/440 585/1065/430 +f 586/1062/428 589/1077/438 588/1067/432 +f 550/1005/467 554/1078/470 595/1079/473 +f 546/1080/61 553/1081/474 552/1008/469 +f 600/1082/104 598/1083/368 597/1084/368 +f 602/1085/101 599/1086/104 600/1082/104 +f 604/1087/367 601/1088/101 602/1085/101 +f 606/1089/330 603/1090/367 604/1087/367 +f 608/1091/374 605/1092/330 606/1089/330 +f 611/1093/399 609/1094/372 607/1095/370 +f 614/1096/387 609/1097/372 612/1098/348 +f 616/1099/348 609/1097/372 615/1100/369 +f 597/1084/368 612/1098/348 616/1099/348 +f 618/1101/383 599/1086/104 601/1088/101 +f 620/1102/379 608/1091/374 606/1089/330 +f 622/1103/385 605/1092/330 607/1104/370 +f 624/1105/388 604/1087/367 602/1085/101 +f 626/1106/376 597/1084/368 616/1099/348 +f 625/1107/386 600/1082/104 597/1084/368 +f 628/1108/382 601/1088/101 603/1090/367 +f 629/1109/381 612/1098/348 598/1083/368 +f 617/1110/375 598/1083/368 599/1086/104 +f 619/1111/389 615/1100/369 608/1112/374 +f 613/1113/377 607/1114/370 609/1097/372 +f 623/1115/380 606/1089/330 604/1087/367 +f 621/1116/373 603/1090/367 605/1092/330 +f 627/1117/378 602/1085/101 600/1082/104 +f 630/1118/384 616/1099/348 615/1100/369 +f 624/1105/388 631/1119/58 623/1115/380 +f 630/1118/384 631/1120/58 626/1106/376 +f 617/1110/375 632/1121/395 629/1109/381 +f 623/1115/380 631/1122/58 620/1102/379 +f 626/1106/376 631/1123/58 625/1107/386 +f 625/1107/386 631/1124/58 627/1117/378 +f 620/1102/379 631/1125/58 619/1126/389 +f 635/1127/396 634/1128/393 632/1129/395 +f 627/1117/378 631/1130/58 624/1105/388 +f 619/1111/389 631/1131/58 630/1118/384 +f 639/1132/391 617/1110/375 618/1101/383 +f 638/1133/390 618/1101/383 628/1108/382 +f 637/1134/397 628/1108/382 621/1116/373 +f 622/1103/385 637/1135/397 621/1116/373 +f 635/1136/396 622/1137/385 613/1113/377 +f 614/1096/387 635/1138/396 613/1113/377 +f 632/1139/395 614/1096/387 629/1109/381 +f 640/1140/400 607/1095/370 608/1141/374 +f 610/1142/371 615/1143/369 609/1094/372 +f 641/1144/398 608/1145/374 615/1143/369 +f 642/1146/407 644/1147/475 643/1148/476 +f 647/1149/404 644/1150/475 645/1151/406 +f 647/1149/404 648/1152/477 646/1153/413 +f 651/1154/401 648/1155/477 649/1156/403 +f 653/1157/415 650/1158/478 651/1154/401 +f 655/1159/411 652/1160/414 653/1157/415 +f 657/1161/412 644/1150/475 646/1162/413 +f 655/1163/411 658/1164/410 654/1165/423 +f 659/1166/409 643/1167/476 658/1168/410 +f 663/1169/479 650/1158/478 652/1170/414 +f 643/1167/476 661/1171/480 658/1168/410 +f 656/1172/421 643/1148/476 644/1147/475 +f 648/1152/477 657/1173/412 646/1153/413 +f 662/1174/422 652/1160/414 654/1175/423 +f 650/1176/478 665/1177/420 648/1155/477 +f 658/1164/410 662/1178/422 654/1165/423 +f 666/1179/430 668/1180/437 667/1181/428 +f 671/1182/429 651/1154/401 649/1156/403 +f 667/1181/428 647/1149/404 645/1151/406 +f 670/1183/425 653/1157/415 651/1154/401 +f 674/1184/436 642/1146/407 659/1166/409 +f 666/1179/430 645/1151/406 642/1146/407 +f 672/1185/432 649/1156/403 647/1149/404 +f 674/1184/436 669/1186/440 666/1179/430 +f 678/1187/433 681/1188/434 673/1189/431 +f 676/1190/426 670/1183/425 671/1182/429 +f 667/1181/428 675/1191/438 672/1185/432 +f 681/1192/434 680/1193/435 674/1184/436 +f 677/1194/427 673/1189/431 670/1183/425 +f 675/1195/438 671/1182/429 672/1185/432 +f 712/1196/407 714/1197/475 713/1198/476 +f 717/1199/404 714/1200/475 715/1201/406 +f 717/1199/404 718/1202/477 716/1203/413 +f 721/1204/401 718/1205/477 719/1206/403 +f 723/1207/415 720/1208/478 721/1204/401 +f 725/1209/411 722/1210/414 723/1207/415 +f 727/1211/412 714/1200/475 716/1212/413 +f 725/1213/411 728/1214/410 724/1215/423 +f 729/1216/409 713/1217/476 728/1218/410 +f 723/1207/415 730/1219/434 725/1209/411 +f 735/1220/479 720/1208/478 722/1221/414 +f 713/1217/476 733/1222/480 728/1218/410 +f 726/1223/421 713/1198/476 714/1197/475 +f 718/1202/477 727/1224/412 716/1203/413 +f 734/1225/422 722/1210/414 724/1226/423 +f 720/1227/478 737/1228/420 718/1205/477 +f 728/1214/410 734/1229/422 724/1215/423 +f 738/1230/430 740/1231/437 739/1232/428 +f 743/1233/429 721/1204/401 719/1206/403 +f 730/1234/434 729/1216/409 725/1213/411 +f 739/1232/428 717/1199/404 715/1201/406 +f 742/1235/425 723/1207/415 721/1204/401 +f 729/1216/409 738/1230/430 712/1196/407 +f 738/1230/430 715/1201/406 712/1196/407 +f 745/1236/432 719/1206/403 717/1199/404 +f 744/1237/436 741/1238/440 738/1230/430 +f 749/1239/433 730/1219/434 731/1240/431 +f 747/1241/426 742/1235/425 743/1233/429 +f 739/1232/428 746/1242/438 745/1236/432 +f 730/1234/434 751/1243/435 744/1237/436 +f 748/1244/427 731/1240/431 742/1235/425 +f 746/1245/438 743/1233/429 745/1236/432 +f 524/964/434 496/930/409 498/932/411 +f 502/937/415 524/970/434 498/935/411 +f 659/1166/409 681/1192/434 674/1184/436 +f 653/1157/415 681/1188/434 655/1159/411 +f 166/423/95 167/426/98 168/424/96 +f 167/426/98 169/428/100 170/427/99 +f 169/428/100 171/430/102 172/429/101 +f 171/430/102 173/432/103 174/431/71 +f 173/432/103 175/434/105 176/433/104 +f 175/434/105 177/436/107 178/435/106 +f 177/436/107 179/438/109 180/437/108 +f 179/438/109 181/440/111 182/439/110 +f 181/440/111 183/442/113 184/441/112 +f 183/442/113 185/444/115 186/443/114 +f 185/444/115 187/446/117 188/445/116 +f 187/446/117 189/506/119 190/447/118 +f 189/448/119 191/451/121 192/449/120 +f 191/451/121 193/455/125 194/452/122 +f 169/428/100 167/426/98 195/453/123 +f 193/455/125 197/457/127 198/456/126 +f 197/457/127 166/423/95 165/425/97 +f 202/461/131 203/482/150 204/462/132 +f 207/464/134 208/646/153 209/465/135 +f 210/467/137 211/1246/155 212/468/138 +f 214/470/140 215/1247/154 199/471/128 +f 218/473/142 219/1248/156 220/474/143 +f 222/476/145 223/658/157 224/477/146 +f 225/479/148 210/1249/137 213/480/139 +f 203/482/150 227/497/158 228/483/151 +f 229/484/152 230/650/159 208/485/153 +f 215/487/154 231/1250/302 200/459/129 +f 211/488/155 202/1251/131 205/489/133 +f 206/491/136 209/641/135 219/492/156 +f 214/494/140 216/663/141 223/495/157 +f 217/475/144 220/474/143 228/483/151 +f 221/498/147 224/653/146 230/499/159 +f 232/501/160 233/509/167 234/502/161 +f 177/436/107 236/515/172 237/504/163 +f 187/446/117 238/516/173 239/505/164 +f 173/432/103 240/517/174 241/507/165 +f 183/442/113 242/518/175 243/508/166 +f 197/457/127 193/455/125 233/509/167 +f 171/430/102 169/428/100 196/454/124 +f 179/438/109 237/504/163 245/511/169 +f 167/426/98 166/423/95 246/512/170 +f 191/451/121 189/448/119 239/513/164 +f 175/434/105 241/507/165 236/515/172 +f 185/444/115 243/508/166 238/516/173 +f 166/423/95 197/457/127 232/501/160 +f 173/432/103 171/430/102 244/510/168 +f 181/440/111 245/511/169 242/518/175 +f 193/455/125 191/451/121 247/514/171 +f 249/519/176 250/1252/207 251/520/177 +f 237/504/163 252/536/190 253/522/179 +f 195/453/123 246/512/170 254/523/180 +f 246/512/170 232/501/160 235/503/162 +f 245/511/169 253/522/179 256/525/182 +f 196/454/124 195/453/123 255/524/181 +f 242/518/175 256/525/182 258/527/184 +f 244/510/168 196/454/124 257/526/183 +f 243/508/166 258/527/184 260/529/186 +f 240/517/174 244/510/168 259/528/185 +f 238/516/173 260/529/186 261/531/187 +f 240/517/174 249/530/176 248/532/178 +f 247/514/171 239/513/164 261/533/187 +f 241/507/165 248/532/178 263/535/189 +f 233/509/167 247/514/171 262/534/188 +f 236/515/172 263/535/189 252/536/190 +f 264/537/191 265/1253/203 266/538/192 +f 262/540/188 261/1254/187 268/541/194 +f 248/543/178 251/1255/177 270/544/196 +f 234/546/161 262/1256/188 269/547/195 +f 263/549/189 270/1257/196 272/550/198 +f 235/552/162 234/1258/161 271/553/197 +f 252/555/190 272/1259/198 274/556/200 +f 255/558/181 254/1260/180 275/559/201 +f 254/561/180 235/1261/162 273/562/199 +f 253/564/179 274/1262/200 265/565/203 +f 257/567/183 255/1263/181 276/568/202 +f 256/570/182 265/1253/203 264/537/191 +f 259/572/185 257/1264/183 277/573/204 +f 258/575/184 264/1265/191 279/576/206 +f 249/578/176 259/1266/185 278/579/205 +f 260/581/186 279/1267/206 268/582/194 +f 281/584/208 282/1268/237 283/585/209 +f 277/573/204 284/623/222 285/587/211 +f 279/576/206 264/1265/191 267/588/193 +f 278/579/205 285/627/211 287/590/213 +f 268/582/194 279/1267/206 286/591/212 +f 251/520/177 250/1252/207 287/593/213 +f 268/541/194 288/633/214 290/595/216 +f 270/544/196 251/1255/177 289/596/215 +f 269/547/195 290/637/216 281/598/208 +f 272/550/198 270/1257/196 291/599/217 +f 271/553/197 281/584/208 280/586/210 +f 274/556/200 272/1259/198 292/601/218 +f 275/559/201 294/613/221 295/603/220 +f 273/562/199 280/615/210 294/604/221 +f 265/565/203 274/1262/200 293/605/219 +f 276/568/202 295/619/220 284/607/222 +f 309/609/224 296/1269/228 297/1270/229 +f 297/1270/229 283/1271/209 309/609/224 +f 283/1271/209 282/1272/237 309/609/224 +f 282/1272/237 298/1273/235 299/1274/233 +f 299/1274/233 300/1275/232 301/610/225 +f 301/610/225 302/1276/230 305/1277/236 +f 302/1276/230 303/1278/227 305/1277/236 +f 303/1278/227 304/1279/226 305/1277/236 +f 305/1277/236 306/1280/234 307/608/223 +f 307/608/223 308/1281/231 309/609/224 +f 282/1272/237 299/1274/233 309/609/224 +f 299/1274/233 301/610/225 309/609/224 +f 305/1277/236 307/608/223 301/610/225 +f 293/602/219 292/601/218 304/611/226 +f 294/613/221 297/1282/229 296/614/228 +f 280/615/210 283/1283/209 297/616/229 +f 266/606/192 293/605/219 303/617/227 +f 295/619/220 296/1284/228 309/620/224 +f 267/539/193 266/538/192 302/621/230 +f 284/623/222 309/1285/224 308/624/231 +f 286/589/212 267/588/193 301/625/225 +f 285/627/211 308/1286/231 307/628/223 +f 288/592/214 286/591/212 300/629/232 +f 289/594/215 287/593/213 307/631/223 +f 288/633/214 299/1287/233 298/634/235 +f 291/597/217 289/596/215 306/635/234 +f 290/637/216 298/1288/235 282/638/237 +f 292/600/218 291/599/217 305/639/236 +f 314/675/241 315/714/247 316/676/242 +f 311/673/239 321/695/258 322/683/248 +f 313/677/243 316/676/242 318/679/245 +f 325/686/251 326/690/255 327/687/252 +f 325/686/251 322/1289/248 328/689/254 +f 323/685/250 318/679/245 324/691/253 +f 317/678/244 320/684/270 322/683/248 +f 330/694/257 331/707/264 321/695/258 +f 318/679/245 317/678/244 325/693/251 +f 321/699/258 333/703/262 334/700/260 +f 321/699/258 331/1290/264 335/702/261 +f 323/685/250 329/692/256 331/707/264 +f 330/694/257 337/709/265 313/677/243 +f 337/709/265 310/672/238 314/675/241 +f 332/698/259 336/706/263 339/710/71 +f 336/706/263 338/712/267 339/710/71 +f 334/705/260 333/1291/262 338/712/267 +f 328/696/254 332/698/259 340/711/266 +f 343/718/272 344/729/283 345/719/273 +f 347/721/275 348/727/281 349/722/276 +f 350/724/278 351/728/282 352/725/279 +f 342/720/274 349/722/276 348/727/281 +f 351/728/282 350/724/278 345/719/273 +f 350/1292/284 353/1293/284 346/1294/284 +f 353/1293/284 354/1295/284 346/1294/284 +f 346/1294/284 349/730/284 350/1292/284 +f 350/1292/284 349/730/284 345/719/284 +f 354/731/285 355/1296/481 347/721/275 +f 352/725/279 355/1297/482 354/732/286 +f 357/733/287 358/744/298 359/734/288 +f 361/736/290 362/742/296 363/737/291 +f 364/739/293 365/743/297 366/740/294 +f 356/735/289 363/737/291 362/742/296 +f 365/743/297 364/739/293 359/734/288 +f 364/1298/299 367/1299/299 360/1300/299 +f 367/1299/299 368/1301/299 360/1300/299 +f 360/1300/299 363/745/299 364/1298/299 +f 364/1298/299 363/745/299 359/734/299 +f 368/746/300 369/1302/483 361/736/290 +f 366/740/294 369/1303/484 368/747/301 +f 231/748/302 225/1304/148 226/644/149 +f 218/749/303 217/771/309 370/750/304 +f 182/439/110 207/1305/134 206/752/136 +f 165/425/97 168/424/96 211/753/155 +f 190/450/118 192/449/120 215/755/154 +f 203/757/305 372/764/308 373/758/306 +f 188/445/116 222/770/145 221/760/147 +f 198/456/126 165/425/97 210/761/137 +f 202/763/307 374/1306/307 372/764/308 +f 184/441/112 229/1307/152 207/765/134 +f 192/449/120 194/452/122 231/766/302 +f 168/424/96 170/427/99 202/767/131 +f 180/437/108 206/1308/136 218/769/142 +f 190/447/118 214/1309/140 222/770/145 +f 217/771/309 227/759/306 373/758/306 +f 186/443/114 221/1310/147 229/772/152 +f 194/452/122 198/456/126 225/773/148 +f 375/775/310 376/781/316 372/776/311 +f 378/778/313 371/1311/485 370/779/314 +f 376/781/316 379/783/158 373/782/317 +f 377/780/315 370/779/314 373/782/317 +f 178/784/318 378/1312/325 377/785/319 +f 176/786/320 377/785/319 379/787/321 +f 172/789/322 174/788/321 379/787/321 +f 178/791/318 218/1313/324 371/792/324 +f 170/794/326 375/1314/328 374/795/327 +f 170/797/326 172/789/322 376/790/323 +f 383/799/71 382/803/71 381/800/104 +f 385/802/329 384/805/329 382/803/71 +f 387/804/284 386/807/284 384/805/329 +f 389/806/330 388/812/330 386/807/284 +f 391/808/331 390/819/341 389/806/330 +f 392/809/332 395/1315/344 394/810/333 +f 388/812/330 397/820/342 396/813/335 +f 392/809/332 393/811/334 385/802/329 +f 399/814/336 398/816/338 382/803/71 +f 393/811/334 391/808/331 387/804/284 +f 396/813/335 399/814/336 384/805/329 +f 400/815/337 392/809/332 383/799/71 +f 398/816/338 401/824/346 381/800/104 +f 403/817/339 402/1316/345 398/816/338 +f 394/810/333 404/1317/340 391/808/331 +f 396/813/335 405/1318/343 403/817/339 +f 404/818/340 406/1319/486 390/819/341 +f 397/820/342 407/1320/487 405/821/343 +f 400/815/337 408/1321/488 395/822/344 +f 402/823/345 409/1322/489 401/824/346 +f 411/825/101 412/828/71 413/826/71 +f 412/828/71 414/830/347 415/829/347 +f 414/830/347 416/832/299 417/831/299 +f 416/832/299 418/839/348 419/833/348 +f 419/833/348 420/847/361 421/834/349 +f 422/835/350 423/841/355 424/836/351 +f 416/832/299 426/842/356 427/838/353 +f 415/829/347 423/841/355 422/835/350 +f 412/828/71 428/844/358 429/840/354 +f 417/831/299 421/834/349 423/841/355 +f 414/830/347 429/840/354 426/842/356 +f 413/826/71 422/835/350 430/843/357 +f 411/825/101 431/853/365 428/844/358 +f 428/844/358 432/1323/366 433/845/359 +f 421/834/349 434/1324/362 424/836/351 +f 426/842/356 429/840/354 433/845/359 +f 420/847/361 436/1325/490 434/848/362 +f 427/838/353 426/842/356 435/849/360 +f 430/843/357 422/835/350 425/851/352 +f 431/853/365 439/1326/491 432/854/366 +f 441/855/367 442/858/101 443/856/101 +f 442/858/101 444/874/104 445/859/104 +f 445/859/104 444/874/104 446/860/368 +f 447/861/368 446/860/368 448/862/348 +f 448/862/348 450/877/372 451/864/369 +f 452/865/370 453/917/399 454/866/371 +f 452/868/370 456/887/385 457/869/373 +f 452/868/370 455/870/330 459/871/330 +f 455/870/330 441/855/367 440/857/367 +f 442/858/101 460/883/383 461/873/375 +f 451/864/369 462/899/384 463/875/376 +f 448/862/348 464/889/387 465/876/377 +f 447/861/368 466/888/386 467/878/378 +f 440/857/367 468/880/380 469/879/379 +f 443/856/101 470/890/388 468/880/380 +f 444/874/104 461/873/375 471/881/381 +f 455/870/330 457/869/373 472/882/382 +f 441/855/367 472/882/382 460/883/383 +f 458/872/374 473/891/389 462/884/384 +f 450/886/372 465/910/377 456/887/385 +f 449/863/348 463/875/376 466/888/386 +f 446/860/368 471/881/381 464/889/387 +f 445/859/104 467/878/378 470/890/388 +f 459/871/330 469/879/379 473/891/389 +f 460/883/383 472/882/382 475/894/390 +f 482/1327/394 476/1328/391 475/901/390 +f 475/901/390 477/1329/397 478/902/392 +f 478/902/392 479/1330/396 480/903/393 +f 480/903/393 481/1331/395 482/1327/394 +f 482/1327/394 475/901/390 480/903/393 +f 460/883/383 476/1332/391 482/906/394 +f 461/873/375 482/1333/394 481/907/395 +f 471/881/381 481/1334/395 480/908/393 +f 464/889/387 480/1335/393 479/909/396 +f 465/910/377 479/1336/396 478/911/392 +f 456/887/385 478/1337/392 477/912/397 +f 457/869/373 477/1338/397 475/913/390 +f 450/867/372 454/866/371 483/914/398 +f 458/916/374 484/919/400 453/917/399 +f 451/918/369 483/1339/398 484/919/400 +f 485/920/401 486/943/416 487/921/402 +f 487/923/402 489/934/413 490/924/404 +f 490/924/404 489/1340/413 491/925/405 +f 491/927/405 493/949/408 494/928/407 +f 493/929/408 495/940/410 496/930/409 +f 495/931/410 497/948/423 498/932/411 +f 487/923/402 499/1341/420 500/933/412 +f 498/935/411 497/1342/423 501/936/414 +f 502/937/415 501/1343/414 486/938/416 +f 493/929/408 507/1344/424 506/939/417 +f 486/938/416 501/1343/414 504/941/418 +f 486/943/416 503/1345/419 499/944/420 +f 491/925/405 489/1340/413 500/945/412 +f 495/931/410 506/1346/417 505/947/422 +f 493/949/408 491/927/405 508/950/421 +f 501/936/414 497/1342/423 505/952/422 +f 509/954/425 510/958/429 511/955/426 +f 494/928/407 513/959/430 514/957/428 +f 490/924/404 515/961/432 510/958/429 +f 496/930/409 516/966/436 513/959/430 +f 485/920/401 509/954/425 517/960/431 +f 488/922/403 510/958/429 509/954/425 +f 492/926/406 514/957/428 515/961/432 +f 517/960/431 509/954/425 512/962/427 +f 524/964/434 522/1347/439 521/965/435 +f 513/959/430 520/1348/440 519/967/437 +f 510/958/429 515/961/432 518/968/438 +f 524/970/434 517/960/431 523/971/433 +f 516/966/436 521/1349/435 520/973/440 +f 514/957/428 519/1350/437 518/974/438 +f 530/1351/448 525/977/443 529/976/442 +f 525/977/443 526/1352/456 528/975/441 +f 526/1352/456 527/1353/455 528/975/441 +f 532/978/444 533/1002/464 534/979/445 +f 536/983/449 534/993/445 535/981/447 +f 535/981/447 525/1014/443 530/982/448 +f 537/984/450 538/990/454 539/985/451 +f 536/987/449 530/1354/448 529/988/442 +f 538/990/454 537/984/450 527/991/455 +f 534/993/445 533/1355/492 542/994/457 +f 544/998/460 543/997/459 545/999/461 +f 532/978/444 547/1019/472 543/1001/463 +f 542/994/457 533/1355/492 544/1003/465 +f 539/985/451 549/1356/471 550/1005/467 +f 543/1001/463 547/1019/472 551/1006/468 +f 544/1003/465 546/1080/61 552/1008/469 +f 552/1008/469 553/1081/474 554/1009/470 +f 542/994/457 538/1016/454 526/1013/456 +f 532/978/444 531/980/446 527/1011/455 +f 538/1016/454 542/994/457 548/1004/466 +f 532/978/444 537/1015/450 540/1018/452 +f 549/1010/471 539/1017/451 548/1004/466 +f 547/1019/472 540/1018/452 550/1020/467 +f 529/1022/442 528/1012/441 531/980/446 +f 531/980/446 534/979/445 541/1021/453 +f 555/1023/401 556/1048/416 557/1024/402 +f 557/1026/402 559/1037/413 560/1027/404 +f 560/1027/404 559/1357/413 561/1028/405 +f 561/1030/405 563/1054/408 564/1031/407 +f 563/1032/408 565/1045/410 566/1033/409 +f 565/1034/410 567/1053/423 568/1035/411 +f 557/1026/402 569/1358/420 570/1036/412 +f 568/1038/411 567/1359/423 571/1039/414 +f 572/1040/415 571/1360/414 556/1041/416 +f 566/1033/409 568/1035/411 573/1042/434 +f 563/1032/408 579/1361/424 578/1044/417 +f 556/1041/416 571/1360/414 576/1046/418 +f 556/1048/416 575/1362/419 569/1049/420 +f 561/1028/405 559/1357/413 570/1050/412 +f 565/1034/410 578/1363/417 577/1052/422 +f 563/1054/408 561/1030/405 580/1055/421 +f 571/1039/414 567/1359/423 577/1057/422 +f 581/1059/425 582/1064/429 583/1060/426 +f 564/1031/407 585/1065/430 586/1062/428 +f 572/1040/415 587/1066/431 573/1063/434 +f 560/1027/404 588/1067/432 582/1064/429 +f 566/1033/409 574/1043/436 585/1065/430 +f 555/1023/401 581/1059/425 587/1066/431 +f 558/1025/403 582/1064/429 581/1059/425 +f 562/1029/406 586/1062/428 588/1067/432 +f 587/1066/431 581/1059/425 584/1068/427 +f 573/1042/434 593/1364/439 592/1070/435 +f 585/1065/430 591/1365/440 590/1071/437 +f 582/1064/429 588/1067/432 589/1072/438 +f 573/1063/434 587/1066/431 594/1074/433 +f 574/1043/436 592/1366/435 591/1076/440 +f 586/1062/428 590/1367/437 589/1077/438 +f 550/1005/467 549/1356/471 554/1078/470 +f 546/1080/61 596/1368/61 553/1081/474 +f 600/1082/104 599/1086/104 598/1083/368 +f 602/1085/101 601/1088/101 599/1086/104 +f 604/1087/367 603/1090/367 601/1088/101 +f 606/1089/330 605/1092/330 603/1090/367 +f 608/1091/374 607/1104/370 605/1092/330 +f 611/1093/399 610/1142/371 609/1094/372 +f 614/1096/387 613/1113/377 609/1097/372 +f 616/1099/348 612/1098/348 609/1097/372 +f 597/1084/368 598/1083/368 612/1098/348 +f 618/1101/383 617/1110/375 599/1086/104 +f 620/1102/379 619/1126/389 608/1091/374 +f 622/1103/385 621/1116/373 605/1092/330 +f 624/1105/388 623/1115/380 604/1087/367 +f 626/1106/376 625/1107/386 597/1084/368 +f 625/1107/386 627/1117/378 600/1082/104 +f 628/1108/382 618/1101/383 601/1088/101 +f 629/1109/381 614/1096/387 612/1098/348 +f 617/1110/375 629/1109/381 598/1083/368 +f 619/1111/389 630/1118/384 615/1100/369 +f 613/1113/377 622/1137/385 607/1114/370 +f 623/1115/380 620/1102/379 606/1089/330 +f 621/1116/373 628/1108/382 603/1090/367 +f 627/1117/378 624/1105/388 602/1085/101 +f 630/1118/384 626/1106/376 616/1099/348 +f 617/1110/375 633/1369/394 632/1121/395 +f 632/1129/395 633/1370/394 639/1371/391 +f 639/1371/391 638/1372/390 632/1129/395 +f 638/1372/390 637/1373/397 632/1129/395 +f 637/1373/397 636/1374/392 632/1129/395 +f 636/1374/392 635/1127/396 632/1129/395 +f 639/1132/391 633/1375/394 617/1110/375 +f 638/1133/390 639/1376/391 618/1101/383 +f 637/1134/397 638/1377/390 628/1108/382 +f 622/1103/385 636/1378/392 637/1135/397 +f 635/1136/396 636/1379/392 622/1137/385 +f 614/1096/387 634/1380/393 635/1138/396 +f 632/1139/395 634/1381/393 614/1096/387 +f 640/1140/400 611/1093/399 607/1095/370 +f 610/1142/371 641/1144/398 615/1143/369 +f 641/1144/398 640/1382/400 608/1145/374 +f 642/1146/407 645/1151/406 644/1147/475 +f 647/1149/404 646/1162/413 644/1150/475 +f 647/1149/404 649/1156/403 648/1152/477 +f 651/1154/401 650/1176/478 648/1155/477 +f 653/1157/415 652/1170/414 650/1158/478 +f 655/1159/411 654/1175/423 652/1160/414 +f 657/1161/412 656/1383/421 644/1150/475 +f 655/1163/411 659/1166/409 658/1164/410 +f 659/1166/409 642/1146/407 643/1167/476 +f 663/1169/479 664/1384/493 650/1158/478 +f 643/1167/476 660/1385/494 661/1171/480 +f 656/1172/421 660/1386/494 643/1148/476 +f 648/1152/477 665/1387/420 657/1173/412 +f 662/1174/422 663/1388/479 652/1160/414 +f 650/1176/478 664/1389/493 665/1177/420 +f 658/1164/410 661/1390/480 662/1178/422 +f 666/1179/430 669/1391/440 668/1180/437 +f 671/1182/429 670/1183/425 651/1154/401 +f 667/1181/428 672/1185/432 647/1149/404 +f 670/1183/425 673/1189/431 653/1157/415 +f 674/1184/436 666/1179/430 642/1146/407 +f 666/1179/430 667/1181/428 645/1151/406 +f 672/1185/432 671/1182/429 649/1156/403 +f 674/1184/436 680/1392/435 669/1186/440 +f 678/1187/433 679/1393/439 681/1188/434 +f 676/1190/426 677/1394/427 670/1183/425 +f 667/1181/428 668/1395/437 675/1191/438 +f 681/1192/434 679/1396/439 680/1193/435 +f 677/1194/427 678/1397/433 673/1189/431 +f 675/1195/438 676/1398/426 671/1182/429 +f 712/1196/407 715/1201/406 714/1197/475 +f 717/1199/404 716/1212/413 714/1200/475 +f 717/1199/404 719/1206/403 718/1202/477 +f 721/1204/401 720/1227/478 718/1205/477 +f 723/1207/415 722/1221/414 720/1208/478 +f 725/1209/411 724/1226/423 722/1210/414 +f 727/1211/412 726/1399/421 714/1200/475 +f 725/1213/411 729/1216/409 728/1214/410 +f 729/1216/409 712/1196/407 713/1217/476 +f 723/1207/415 731/1240/431 730/1219/434 +f 735/1220/479 736/1400/493 720/1208/478 +f 713/1217/476 732/1401/494 733/1222/480 +f 726/1223/421 732/1402/494 713/1198/476 +f 718/1202/477 737/1403/420 727/1224/412 +f 734/1225/422 735/1404/479 722/1210/414 +f 720/1227/478 736/1405/493 737/1228/420 +f 728/1214/410 733/1406/480 734/1229/422 +f 738/1230/430 741/1407/440 740/1231/437 +f 743/1233/429 742/1235/425 721/1204/401 +f 730/1234/434 744/1237/436 729/1216/409 +f 739/1232/428 745/1236/432 717/1199/404 +f 742/1235/425 731/1240/431 723/1207/415 +f 729/1216/409 744/1237/436 738/1230/430 +f 738/1230/430 739/1232/428 715/1201/406 +f 745/1236/432 743/1233/429 719/1206/403 +f 744/1237/436 751/1408/435 741/1238/440 +f 749/1239/433 750/1409/439 730/1219/434 +f 747/1241/426 748/1410/427 742/1235/425 +f 739/1232/428 740/1411/437 746/1242/438 +f 730/1234/434 750/1412/439 751/1243/435 +f 748/1244/427 749/1413/433 731/1240/431 +f 746/1245/438 747/1414/426 743/1233/429 +f 524/964/434 516/966/436 496/930/409 +f 502/937/415 517/960/431 524/970/434 +f 659/1166/409 655/1163/411 681/1192/434 +f 653/1157/415 673/1189/431 681/1188/434 diff --git a/src/main/resources/assets/hbm/models/weapons/carbine.obj b/src/main/resources/assets/hbm/models/weapons/carbine.obj new file mode 100644 index 000000000..6b8176493 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/carbine.obj @@ -0,0 +1,4194 @@ +# Blender v2.79 (sub 0) OBJ File: 'carbine.blend' +# www.blender.org +o Bullet +v 0.000000 1.000000 0.187500 +v -0.062500 0.983253 0.187500 +v -0.108253 0.937500 0.187500 +v -0.125000 0.875000 0.187500 +v -0.108253 0.812500 0.187500 +v -0.062500 0.766747 0.187500 +v 0.000000 0.750000 0.187500 +v 0.062500 0.766747 0.187500 +v 0.108253 0.812500 0.187500 +v 0.125000 0.875000 0.187500 +v 0.108253 0.937500 0.187500 +v 0.062500 0.983253 0.187500 +v 0.000000 1.000000 0.812500 +v -0.062500 0.983253 0.812500 +v -0.108253 0.937500 0.812500 +v -0.125000 0.875000 0.812500 +v -0.108253 0.812500 0.812500 +v -0.062500 0.766747 0.812500 +v 0.000000 0.750000 0.812500 +v 0.062500 0.766747 0.812500 +v 0.108253 0.812500 0.812500 +v 0.125000 0.875000 0.812500 +v 0.108253 0.937500 0.812500 +v 0.062500 0.983253 0.812500 +v 0.000000 0.968750 1.000000 +v -0.046875 0.956190 1.000000 +v -0.081190 0.921875 1.000000 +v -0.093750 0.875000 1.000000 +v -0.081190 0.828125 1.000000 +v -0.046875 0.793810 1.000000 +v 0.000000 0.781250 1.000000 +v 0.046875 0.793810 1.000000 +v 0.081190 0.828125 1.000000 +v 0.093750 0.875000 1.000000 +v 0.081190 0.921875 1.000000 +v 0.046875 0.956190 1.000000 +v 0.000000 0.906250 1.062500 +v -0.015625 0.902063 1.062500 +v -0.027063 0.890625 1.062500 +v -0.031250 0.875000 1.062500 +v -0.027063 0.859375 1.062500 +v -0.015625 0.847937 1.062500 +v 0.000000 0.843750 1.062500 +v 0.015625 0.847937 1.062500 +v 0.027063 0.859375 1.062500 +v 0.031250 0.875000 1.062500 +v 0.027063 0.890625 1.062500 +v 0.015625 0.902063 1.062500 +vt 0.107288 0.837093 +vt 0.113553 0.826359 +vt 0.119818 0.858560 +vt 0.117170 0.866417 +vt 0.107288 0.858560 +vt 0.113553 0.869293 +vt 0.109936 0.866417 +vt 0.106319 0.847826 +vt 0.109936 0.829235 +vt 0.117170 0.829235 +vt 0.119818 0.837092 +vt 0.120788 0.847826 +vt 0.106227 0.836957 +vt 0.069597 0.826087 +vt 0.106227 0.826087 +vt 0.106227 0.934783 +vt 0.069597 0.923913 +vt 0.106227 0.923913 +vt 0.106227 0.880435 +vt 0.069597 0.869565 +vt 0.106227 0.869565 +vt 0.106227 0.902174 +vt 0.069597 0.891304 +vt 0.106227 0.891304 +vt 0.106227 0.847826 +vt 0.069597 0.836957 +vt 0.106227 0.945652 +vt 0.069597 0.934783 +vt 0.069597 0.880435 +vt 0.106227 0.913043 +vt 0.069597 0.902174 +vt 0.106227 0.858696 +vt 0.069597 0.847826 +vt 0.106227 0.956522 +vt 0.069597 0.945652 +vt 0.069597 0.913043 +vt 0.069597 0.858696 +vt 0.058608 0.945652 +vt 0.058608 0.934783 +vt 0.058608 0.891304 +vt 0.058608 0.880435 +vt 0.058608 0.913043 +vt 0.058608 0.902174 +vt 0.058608 0.858696 +vt 0.058608 0.847826 +vt 0.069597 0.956522 +vt 0.058608 0.923913 +vt 0.058608 0.836957 +vt 0.058608 0.826087 +vt 0.058608 0.869565 +vt 0.054945 0.945652 +vt 0.054945 0.934783 +vt 0.054945 0.891304 +vt 0.054945 0.880435 +vt 0.054945 0.913043 +vt 0.054945 0.902174 +vt 0.054945 0.847826 +vt 0.058608 0.956522 +vt 0.054945 0.869565 +vt 0.054945 0.858696 +vt 0.054945 0.836957 +vt 0.054945 0.826087 +vt 0.054945 0.923913 +vt 0.053164 0.826561 +vt 0.054593 0.829009 +vt 0.053164 0.836354 +vt 0.054945 0.956522 +vt 0.052339 0.835698 +vt 0.051735 0.829009 +vt 0.051735 0.833906 +vt 0.051514 0.831457 +vt 0.052339 0.827217 +vt 0.053989 0.827217 +vt 0.054814 0.831457 +vt 0.054593 0.833906 +vt 0.053989 0.835698 +vn 0.0000 0.0000 -1.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.0000 -0.9967 0.0814 +vn 0.0000 -1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.9967 0.0000 0.0814 +vn -1.0000 -0.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8632 0.4983 0.0814 +vn 0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 0.9967 0.0814 +vn -0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.4983 -0.8632 0.0814 +vn -0.5000 -0.8660 0.0000 +vn -0.8632 -0.4983 0.0814 +vn 0.4983 0.8632 0.0814 +vn -0.8660 0.5000 0.0000 +vn -0.4983 0.8632 0.0814 +vn 1.0000 -0.0000 0.0000 +vn 0.8632 -0.4983 0.0814 +vn -0.4983 -0.8632 0.0814 +vn -0.8632 0.4983 0.0814 +vn 0.9967 -0.0000 0.0814 +vn -0.4494 -0.7784 0.4382 +vn -0.7784 -0.4494 0.4382 +vn 0.0000 0.8989 0.4382 +vn 0.4494 0.7784 0.4382 +vn -0.7784 0.4494 0.4382 +vn -0.4494 0.7784 0.4382 +vn 0.8989 -0.0000 0.4382 +vn 0.7784 -0.4494 0.4382 +vn -0.8989 0.0000 0.4382 +vn 0.4494 -0.7784 0.4382 +vn 0.0000 -0.8989 0.4382 +vn 0.7784 0.4494 0.4382 +vn -0.2172 -0.3762 0.9007 +vn -0.3762 -0.2172 0.9007 +vn 0.0000 0.4344 0.9007 +vn 0.2172 0.3762 0.9007 +vn -0.3762 0.2172 0.9007 +vn -0.2172 0.3762 0.9007 +vn 0.3762 -0.2172 0.9007 +vn 0.3762 0.2172 0.9007 +vn 0.4344 0.0000 0.9007 +vn 0.2172 -0.3762 0.9007 +vn 0.0000 -0.4344 0.9007 +vn -0.4344 0.0000 0.9007 +s off +f 9/1/1 7/2/1 3/3/1 +f 3/3/1 2/4/1 11/5/1 +f 2/4/1 1/6/1 11/5/1 +f 1/6/1 12/7/1 11/5/1 +f 11/5/1 10/8/1 9/1/1 +f 9/1/1 8/9/1 7/2/1 +f 7/2/1 6/10/1 5/11/1 +f 5/11/1 4/12/1 7/2/1 +f 4/12/1 3/3/1 7/2/1 +f 11/5/1 9/1/1 3/3/1 +s 1 +f 8/13/2 19/14/3 7/15/4 +f 5/16/5 16/17/6 4/18/7 +f 12/19/8 23/20/9 11/21/10 +f 2/22/11 13/23/12 1/24/13 +f 9/25/14 20/26/15 8/13/2 +f 6/27/16 17/28/17 5/16/5 +f 1/24/13 24/29/18 12/19/8 +f 3/30/19 14/31/20 2/22/11 +f 10/32/21 21/33/22 9/25/14 +f 7/34/4 18/35/23 6/27/16 +f 4/18/7 15/36/24 3/30/19 +f 11/21/10 22/37/25 10/32/21 +f 17/28/17 30/38/26 29/39/27 +f 24/29/18 25/40/28 36/41/29 +f 14/31/20 27/42/30 26/43/31 +f 21/33/22 34/44/32 33/45/33 +f 19/46/3 30/38/26 18/35/23 +f 15/36/24 28/47/34 27/42/30 +f 23/20/9 34/44/32 22/37/25 +f 19/14/3 32/48/35 31/49/36 +f 17/28/17 28/47/34 16/17/6 +f 24/29/18 35/50/37 23/20/9 +f 14/31/20 25/40/28 13/23/12 +f 21/33/22 32/48/35 20/26/15 +f 29/39/27 42/51/38 41/52/39 +f 36/41/29 37/53/40 48/54/41 +f 26/43/31 39/55/42 38/56/43 +f 34/44/32 45/57/44 33/45/33 +f 31/58/36 42/51/38 30/38/26 +f 28/47/34 39/55/42 27/42/30 +f 34/44/32 47/59/45 46/60/46 +f 31/49/36 44/61/47 43/62/48 +f 28/47/34 41/52/39 40/63/49 +f 36/41/29 47/59/45 35/50/37 +f 26/43/31 37/53/40 25/40/28 +f 33/45/33 44/61/47 32/48/35 +f 43/64/48 45/65/44 37/66/40 +f 8/13/2 20/26/15 19/14/3 +f 5/16/5 17/28/17 16/17/6 +f 12/19/8 24/29/18 23/20/9 +f 2/22/11 14/31/20 13/23/12 +f 9/25/14 21/33/22 20/26/15 +f 6/27/16 18/35/23 17/28/17 +f 1/24/13 13/23/12 24/29/18 +f 3/30/19 15/36/24 14/31/20 +f 10/32/21 22/37/25 21/33/22 +f 7/34/4 19/46/3 18/35/23 +f 4/18/7 16/17/6 15/36/24 +f 11/21/10 23/20/9 22/37/25 +f 17/28/17 18/35/23 30/38/26 +f 24/29/18 13/23/12 25/40/28 +f 14/31/20 15/36/24 27/42/30 +f 21/33/22 22/37/25 34/44/32 +f 19/46/3 31/58/36 30/38/26 +f 15/36/24 16/17/6 28/47/34 +f 23/20/9 35/50/37 34/44/32 +f 19/14/3 20/26/15 32/48/35 +f 17/28/17 29/39/27 28/47/34 +f 24/29/18 36/41/29 35/50/37 +f 14/31/20 26/43/31 25/40/28 +f 21/33/22 33/45/33 32/48/35 +f 29/39/27 30/38/26 42/51/38 +f 36/41/29 25/40/28 37/53/40 +f 26/43/31 27/42/30 39/55/42 +f 34/44/32 46/60/46 45/57/44 +f 31/58/36 43/67/48 42/51/38 +f 28/47/34 40/63/49 39/55/42 +f 34/44/32 35/50/37 47/59/45 +f 31/49/36 32/48/35 44/61/47 +f 28/47/34 29/39/27 41/52/39 +f 36/41/29 48/54/41 47/59/45 +f 26/43/31 38/56/43 37/53/40 +f 33/45/33 45/57/44 44/61/47 +f 37/66/40 38/68/43 41/69/39 +f 38/68/43 39/70/42 41/69/39 +f 39/70/42 40/71/49 41/69/39 +f 41/69/39 42/72/38 43/64/48 +f 43/64/48 44/73/47 45/65/44 +f 45/65/44 46/74/46 47/75/45 +f 47/75/45 48/76/41 45/65/44 +f 48/76/41 37/66/40 45/65/44 +f 41/69/39 43/64/48 37/66/40 +o Magazine +v 0.187500 0.875000 1.125000 +v -0.187500 0.875000 1.125000 +v 0.187500 0.875000 0.125000 +v -0.187500 0.875000 0.125000 +v -0.187500 -1.375000 1.125000 +v 0.187500 -1.375000 1.125000 +v -0.187500 -1.375000 0.125000 +v 0.187500 -1.375000 0.125000 +v -0.125000 0.875000 1.125000 +v -0.062500 0.750000 1.125000 +v 0.062500 0.750000 1.125000 +v 0.125000 0.875000 1.125000 +v -0.125000 0.875000 0.125000 +v -0.062500 0.750000 0.125000 +v 0.062500 0.750000 0.125000 +v 0.125000 0.875000 0.125000 +vt 0.450549 0.989130 +vt 0.391941 1.000000 +vt 0.391941 0.989130 +vt 0.391941 0.456522 +vt 0.450549 0.521739 +vt 0.391941 0.521739 +vt 0.391941 0.913043 +vt 0.450549 0.913043 +vt 0.384615 0.891304 +vt 0.377289 0.891304 +vt 0.472527 0.913043 +vt 0.531136 0.521739 +vt 0.531136 0.913043 +vt 0.472527 0.521739 +vt 0.465201 0.891304 +vt 0.457875 0.891304 +vt 0.391941 0.923913 +vt 0.450549 0.923913 +vt 0.391941 0.945652 +vt 0.450549 0.967391 +vt 0.391941 0.967391 +vt 0.450549 0.945652 +vt 0.450549 1.000000 +vt 0.450549 0.456522 +vt 0.388278 0.913043 +vt 0.369963 0.913043 +vt 0.369963 0.521739 +vt 0.373626 0.913043 +vt 0.468864 0.913043 +vt 0.454212 0.913043 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.8944 0.4472 0.0000 +vn 0.8944 0.4472 0.0000 +s off +f 61/77/50 50/78/50 57/79/50 +f 53/80/51 56/81/51 54/82/51 +f 49/83/52 56/81/52 51/84/52 +f 54/82/53 59/85/53 58/86/53 +f 52/87/54 53/88/54 50/89/54 +f 55/90/55 62/91/55 63/92/55 +f 51/84/50 60/93/50 49/83/50 +f 64/94/56 59/95/56 60/93/56 +f 62/96/57 57/79/57 58/97/57 +f 63/98/50 58/97/50 59/95/50 +f 61/77/50 52/99/50 50/78/50 +f 53/80/51 55/100/51 56/81/51 +f 49/83/52 54/82/52 56/81/52 +f 54/82/53 49/83/53 59/85/53 +f 49/83/53 60/101/53 59/85/53 +f 50/102/53 53/103/53 58/86/53 +f 53/103/53 54/82/53 58/86/53 +f 58/86/53 57/104/53 50/102/53 +f 52/87/54 55/90/54 53/88/54 +f 55/90/55 52/87/55 62/91/55 +f 52/87/55 61/105/55 62/91/55 +f 51/84/55 56/81/55 63/92/55 +f 56/81/55 55/90/55 63/92/55 +f 63/92/55 64/106/55 51/84/55 +f 51/84/50 64/94/50 60/93/50 +f 64/94/56 63/98/56 59/95/56 +f 62/96/57 61/77/57 57/79/57 +f 63/98/50 62/96/50 58/97/50 +o Slide +v -0.093750 1.162380 1.125000 +v -0.162380 1.093750 1.125000 +v -0.187500 1.000000 1.125000 +v 0.187500 1.000000 1.125000 +v 0.162380 1.093750 1.125000 +v 0.093750 1.162380 1.125000 +v 0.000000 1.187500 1.125000 +v -0.093750 1.162380 0.125000 +v -0.162380 1.093750 0.125000 +v -0.187500 1.000000 0.125000 +v 0.187500 1.000000 0.125000 +v 0.162380 1.093750 0.125000 +v 0.093750 1.162380 0.125000 +v 0.000000 1.187500 0.125000 +v 0.093750 0.837620 1.375000 +v 0.000000 0.812500 1.375000 +v -0.093750 0.837620 1.375000 +v -0.162380 0.906250 1.375000 +v -0.187500 1.000000 1.375000 +v 0.162380 0.906250 1.375000 +v 0.187500 1.000000 1.375000 +v 0.000000 1.312500 1.375000 +v -0.156250 1.270633 1.375000 +v -0.270633 1.156250 1.375000 +v -0.312500 1.000000 1.375000 +v -0.093750 0.837620 1.125000 +v 0.000000 0.812500 1.125000 +v 0.093750 0.837620 1.125000 +v 0.162380 0.906250 1.125000 +v 0.187500 1.000000 1.125000 +v 0.312500 1.000000 1.375000 +v 0.270633 1.156250 1.375000 +v 0.156250 1.270633 1.375000 +v -0.162380 0.906250 1.125000 +v -0.187500 1.000000 1.125000 +v -0.156250 1.270633 1.125000 +v 0.000000 1.312500 1.125000 +v -0.270633 1.156250 1.125000 +v -0.312500 1.000000 1.125000 +v 0.312500 1.000000 1.125000 +v 0.270633 1.156250 1.125000 +v 0.156250 1.270633 1.125000 +v -0.093750 1.162380 1.437500 +v -0.162380 1.093750 1.437500 +v -0.187500 1.000000 1.437500 +v -0.162380 0.906250 1.437500 +v -0.093750 0.837620 1.437500 +v 0.000000 0.812500 1.437500 +v 0.093750 0.837620 1.437500 +v 0.162380 0.906250 1.437500 +v 0.187500 1.000000 1.437500 +v 0.162380 1.093750 1.437500 +v 0.093750 1.162380 1.437500 +v 0.000000 1.187500 1.437500 +v -0.093750 1.162380 1.375000 +v -0.162380 1.093750 1.375000 +v -0.187500 1.000000 1.375000 +v -0.162380 0.906250 1.375000 +v -0.093750 0.837620 1.375000 +v 0.000000 0.812500 1.375000 +v 0.093750 0.837620 1.375000 +v 0.162380 0.906250 1.375000 +v 0.187500 1.000000 1.375000 +v 0.162380 1.093750 1.375000 +v 0.093750 1.162380 1.375000 +v 0.000000 1.187500 1.375000 +v 0.125000 1.000000 1.125000 +v 0.500000 1.000000 1.125000 +v 0.125000 1.000000 1.000000 +v 0.500000 1.000000 1.000000 +v 0.125000 1.062500 1.125000 +v 0.500000 1.062500 1.125000 +v 0.125000 1.062500 1.000000 +v 0.500000 1.062500 1.000000 +v 0.500000 0.906250 1.125000 +v 0.500000 1.156250 1.125000 +v 0.500000 0.906250 1.000000 +v 0.500000 1.156250 1.000000 +v 0.750000 0.968750 1.125000 +v 0.750000 1.093750 1.125000 +v 0.750000 0.968750 1.000000 +v 0.750000 1.093750 1.000000 +v 0.625000 0.906250 1.000000 +v 0.625000 1.156250 1.000000 +v 0.625000 0.906250 1.125000 +v 0.625000 1.156250 1.125000 +v 0.250000 1.000000 3.500000 +v -0.250000 1.000000 3.500000 +v 0.250000 1.125000 3.500000 +v -0.250000 1.125000 3.500000 +v -0.187500 1.125000 3.500000 +v -0.187500 1.000000 3.500000 +v 0.187500 1.125000 3.500000 +v 0.187500 1.000000 3.500000 +v 0.250000 1.000000 1.375000 +v 0.250000 1.125000 1.375000 +v -0.250000 1.125000 1.375000 +v -0.250000 1.000000 1.375000 +v -0.187500 1.125000 1.375000 +v -0.187500 1.000000 1.375000 +v 0.187500 1.000000 1.375000 +v 0.187500 1.125000 1.375000 +v -0.125000 1.000000 1.125000 +v -0.500000 1.000000 1.125000 +v -0.125000 1.000000 1.000000 +v -0.500000 1.000000 1.000000 +v -0.125000 1.062500 1.125000 +v -0.500000 1.062500 1.125000 +v -0.125000 1.062500 1.000000 +v -0.500000 1.062500 1.000000 +v -0.500000 0.906250 1.125000 +v -0.500000 1.156250 1.125000 +v -0.500000 0.906250 1.000000 +v -0.500000 1.156250 1.000000 +v -0.750000 0.968750 1.125000 +v -0.750000 1.093750 1.125000 +v -0.750000 0.968750 1.000000 +v -0.750000 1.093750 1.000000 +v -0.625000 0.906250 1.000000 +v -0.625000 1.156250 1.000000 +v -0.625000 0.906250 1.125000 +v -0.625000 1.156250 1.125000 +vt 0.022092 0.858808 +vt 0.043842 0.858808 +vt 0.032967 0.912594 +vt 0.043736 0.945870 +vt 0.032967 0.999130 +vt 0.022198 0.945870 +vt 0.690786 0.755520 +vt 0.690786 0.787959 +vt 0.681319 0.804179 +vt 0.886447 0.673913 +vt 0.864469 0.695652 +vt 0.864469 0.673913 +vt 0.864469 0.706522 +vt 0.886447 0.728261 +vt 0.864469 0.728261 +vt 0.886447 0.706522 +vt 0.930403 0.750000 +vt 0.923077 0.706522 +vt 0.930403 0.706522 +vt 0.864469 0.739130 +vt 0.886447 0.739130 +vt 0.908425 0.739130 +vt 0.908425 0.717391 +vt 0.915751 0.706522 +vt 0.886447 0.750000 +vt 0.886447 0.706522 +vt 0.893773 0.706522 +vt 0.000000 0.815217 +vt 0.003663 0.793478 +vt 0.003663 0.815217 +vt 0.000000 0.728261 +vt 0.003663 0.706522 +vt 0.003663 0.728261 +vt 0.128205 0.728261 +vt 0.003663 0.695652 +vt 0.128205 0.706522 +vt 0.003663 0.739130 +vt 0.128205 0.760870 +vt 0.003663 0.760870 +vt 0.128205 0.826087 +vt 0.003663 0.826087 +vt 0.128205 0.815217 +vt 0.128205 0.739130 +vt 0.003663 0.782609 +vt 0.128205 0.793478 +vt 0.003663 0.760870 +vt 0.128205 0.782609 +vt 0.864469 0.695652 +vt 0.886447 0.673913 +vt 0.864469 0.673913 +vt 0.886447 0.728261 +vt 0.864469 0.706522 +vt 0.864469 0.728261 +vt 0.886447 0.706522 +vt 0.886447 0.695652 +vt 0.923077 0.706522 +vt 0.930403 0.750000 +vt 0.930403 0.706522 +vt 0.864469 0.739130 +vt 0.886447 0.739130 +vt 0.915751 0.750000 +vt 0.923077 0.750000 +vt 0.915751 0.706522 +vt 0.893773 0.750000 +vt 0.901099 0.739130 +vt 0.893773 0.706522 +vt 0.038405 0.830860 +vt 0.042385 0.842672 +vt 0.051093 0.858808 +vt 0.048664 0.885701 +vt 0.042030 0.905388 +vt 0.023904 0.905388 +vt 0.017270 0.885701 +vt 0.014841 0.858808 +vt 0.023549 0.842672 +vt 0.027529 0.830860 +vt 0.032967 0.826536 +vt 0.023641 0.929891 +vt 0.027582 0.918194 +vt 0.032967 0.913913 +vt 0.038352 0.918194 +vt 0.042293 0.929891 +vt 0.050916 0.945870 +vt 0.048511 0.972500 +vt 0.041941 0.991995 +vt 0.023993 0.991995 +vt 0.017423 0.972500 +vt 0.015018 0.945870 +vt 0.675853 0.799833 +vt 0.671852 0.787959 +vt 0.670387 0.771739 +vt 0.671852 0.755520 +vt 0.675853 0.743646 +vt 0.681319 0.739300 +vt 0.686785 0.743646 +vt 0.692251 0.771739 +vt 0.686785 0.799833 +vt 0.886447 0.695652 +vt 0.923077 0.750000 +vt 0.915751 0.750000 +vt 0.901099 0.717391 +vt 0.901099 0.739130 +vt 0.893773 0.750000 +vt -0.000000 0.793478 +vt 0.000000 0.706522 +vt 0.128205 0.695652 +vt 0.128205 0.760870 +vt 0.908425 0.717391 +vt 0.908425 0.739130 +vt 0.901099 0.717391 +vt 0.886447 0.706522 +vt 0.886447 0.750000 +vt 0.263736 0.804348 +vt 0.205128 0.826087 +vt 0.205128 0.804348 +vt 0.263736 0.695652 +vt 0.205128 0.717391 +vt 0.205128 0.695652 +vt 0.263736 0.717391 +vt 0.205128 0.739130 +vt 0.263736 0.760870 +vt 0.205128 0.782609 +vt 0.205128 0.760870 +vt 0.263736 0.739130 +vt 0.263736 0.782609 +vt -0.000000 0.913043 +vt 0.014652 0.934783 +vt -0.000000 0.934783 +vt -0.000000 0.826087 +vt 0.014652 0.847826 +vt -0.000000 0.847826 +vt 0.014652 0.956522 +vt -0.000000 0.956522 +vt 0.014652 0.869565 +vt -0.000000 0.869565 +vt 0.014652 0.891304 +vt -0.000000 0.891304 +vt 0.014652 0.913043 +vt 0.670330 0.934783 +vt 0.666667 0.956522 +vt 0.666667 0.934783 +vt 0.670330 0.826087 +vt 0.666667 0.847826 +vt 0.666667 0.826087 +vt 0.670330 0.869565 +vt 0.666667 0.891304 +vt 0.666667 0.869565 +vt 0.670330 0.760870 +vt 0.666667 0.782609 +vt 0.666667 0.760870 +vt 0.670330 0.956522 +vt 0.666667 0.978261 +vt 0.670330 0.847826 +vt 0.670330 0.891304 +vt 0.666667 0.913043 +vt 0.670330 0.782609 +vt 0.666667 0.804348 +vt 0.670330 0.978261 +vt 0.666667 1.000000 +vt 0.670330 0.913043 +vt 0.670330 0.804348 +vt 0.670330 0.739130 +vt 0.666667 0.739130 +vt 0.901099 0.695652 +vt 0.908425 0.695652 +vt 0.908425 0.782609 +vt 0.901099 0.760870 +vt 0.908425 0.760870 +vt 0.901099 0.673913 +vt 0.908425 0.673913 +vt 0.901099 0.695652 +vt 0.908425 0.695652 +vt 0.901099 0.760870 +vt 0.908425 0.782609 +vt 0.908425 0.760870 +vt 0.901099 0.673913 +vt 0.908425 0.673913 +vt 0.263736 0.826087 +vt 0.014652 0.826087 +vt 0.670330 1.000000 +vt 0.901099 0.782609 +vt 0.901099 0.782609 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.9659 0.2588 0.0000 +vn 0.9659 0.2588 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.8507 0.5257 0.0000 +vn 0.8507 -0.5257 0.0000 +vn 0.2298 -0.9732 0.0000 +vn 0.2298 0.9732 0.0000 +vn -0.8507 -0.5257 0.0000 +vn -0.8507 0.5257 0.0000 +vn -0.2298 -0.9732 0.0000 +vn -0.2298 0.9732 0.0000 +s off +f 83/107/58 85/108/58 86/109/58 +f 99/110/59 101/111/59 94/112/59 +f 114/113/58 116/114/58 118/115/58 +f 131/116/60 134/117/60 132/118/60 +f 138/119/61 135/120/61 136/121/61 +f 134/117/59 137/122/59 138/119/59 +f 140/123/62 141/124/62 139/125/62 +f 132/126/58 135/120/58 131/127/58 +f 146/128/59 145/129/59 147/130/59 +f 140/131/58 139/132/58 149/133/58 +f 156/134/58 154/135/58 152/136/58 +f 157/137/58 151/138/58 153/139/58 +f 151/138/63 160/140/63 153/139/63 +f 158/141/60 159/142/60 151/138/60 +f 157/143/62 165/144/62 158/145/62 +f 152/136/60 164/146/60 156/147/60 +f 154/135/62 162/148/62 152/136/62 +f 153/139/61 166/149/61 157/143/61 +f 155/150/61 161/151/61 154/135/61 +f 156/152/63 163/153/63 155/150/63 +f 170/154/60 167/155/60 168/156/60 +f 171/157/61 174/158/61 172/159/61 +f 170/154/59 173/160/59 169/161/59 +f 177/162/63 176/163/63 175/164/63 +f 171/157/58 168/165/58 167/166/58 +f 184/167/59 178/168/59 183/169/59 +f 186/170/58 180/171/58 185/172/58 +f 79/173/58 84/174/58 85/108/58 +f 85/108/58 95/175/58 96/176/58 +f 96/176/58 97/177/58 85/108/58 +f 97/177/58 86/109/58 85/108/58 +f 86/109/58 87/178/58 83/107/58 +f 87/178/58 88/179/58 83/107/58 +f 88/179/58 89/180/58 83/107/58 +f 83/107/58 82/181/58 81/182/58 +f 81/182/58 80/183/58 79/173/58 +f 79/173/58 85/108/58 81/182/58 +f 81/182/58 85/108/58 83/107/58 +f 94/112/59 93/184/59 92/185/59 +f 92/185/59 91/186/59 94/112/59 +f 91/186/59 90/187/59 94/112/59 +f 90/187/59 98/188/59 99/110/59 +f 99/110/59 103/189/59 102/190/59 +f 102/190/59 100/191/59 99/110/59 +f 100/191/59 101/111/59 99/110/59 +f 101/111/59 106/192/59 94/112/59 +f 106/192/59 105/193/59 94/112/59 +f 105/193/59 104/194/59 94/112/59 +f 90/187/59 99/110/59 94/112/59 +f 118/115/58 107/195/58 108/196/58 +f 108/196/58 109/197/58 110/198/58 +f 110/198/58 111/199/58 112/200/58 +f 112/200/58 113/201/58 110/198/58 +f 113/201/58 114/113/58 110/198/58 +f 114/113/58 115/202/58 116/114/58 +f 116/114/58 117/203/58 118/115/58 +f 118/115/58 108/196/58 114/113/58 +f 108/196/58 110/198/58 114/113/58 +f 131/116/60 133/204/60 134/117/60 +f 138/119/61 137/122/61 135/120/61 +f 134/117/59 133/204/59 137/122/59 +f 140/123/62 142/205/62 141/124/62 +f 132/126/58 136/121/58 135/120/58 +f 147/130/59 141/124/59 142/205/59 +f 142/205/59 148/206/59 147/130/59 +f 148/206/59 146/128/59 147/130/59 +f 149/133/58 143/207/58 144/208/58 +f 144/208/58 150/209/58 149/133/58 +f 150/209/58 140/131/58 149/133/58 +f 156/134/58 155/210/58 154/135/58 +f 157/137/58 158/211/58 151/138/58 +f 151/138/63 159/142/63 160/140/63 +f 158/141/60 165/212/60 159/142/60 +f 157/143/62 166/149/62 165/144/62 +f 152/136/60 162/148/60 164/146/60 +f 154/135/62 161/151/62 162/148/62 +f 153/139/61 160/140/61 166/149/61 +f 155/150/61 163/153/61 161/151/61 +f 156/152/63 164/213/63 163/153/63 +f 170/154/60 169/161/60 167/155/60 +f 171/157/61 173/160/61 174/158/61 +f 170/154/59 174/158/59 173/160/59 +f 177/162/63 178/168/63 176/163/63 +f 171/157/58 172/159/58 168/165/58 +f 178/168/59 177/162/59 183/169/59 +f 183/169/59 181/214/59 182/215/59 +f 182/215/59 184/167/59 183/169/59 +f 180/171/58 179/216/58 185/172/58 +f 185/172/58 175/217/58 176/218/58 +f 176/218/58 186/170/58 185/172/58 +s 1 +f 73/219/64 67/220/65 66/221/64 +f 75/222/66 69/223/67 68/224/66 +f 76/225/67 70/226/68 69/223/67 +f 78/227/61 65/228/69 71/229/61 +f 77/230/68 71/229/61 70/226/68 +f 72/231/69 66/221/64 65/228/69 +f 87/232/69 102/233/64 88/234/64 +f 95/235/66 105/236/67 96/237/67 +f 88/234/64 103/238/65 89/239/65 +f 96/237/67 106/240/68 97/241/68 +f 97/241/68 101/242/61 86/243/61 +f 86/243/61 100/244/69 87/232/69 +f 121/245/62 110/246/70 109/247/62 +f 128/248/67 117/249/68 116/250/67 +f 130/251/61 107/252/69 118/253/61 +f 125/254/71 114/255/72 113/256/71 +f 122/257/70 111/258/73 110/246/70 +f 129/259/68 118/253/61 117/249/68 +f 119/260/69 108/261/64 107/252/69 +f 126/262/72 115/263/63 114/255/72 +f 123/264/73 112/265/60 111/258/73 +f 120/266/64 109/247/62 108/261/64 +f 127/267/63 116/250/67 115/263/63 +f 124/268/60 113/256/71 112/269/60 +f 146/128/74 143/207/75 145/129/75 +f 145/129/75 149/270/76 147/271/76 +f 142/272/61 150/273/77 148/274/77 +f 148/274/77 144/208/74 146/128/74 +f 147/271/76 139/275/60 141/276/60 +f 179/216/78 182/215/79 181/214/78 +f 185/277/80 181/214/78 183/278/80 +f 186/279/81 178/280/61 184/281/81 +f 180/171/79 184/281/81 182/215/79 +f 175/282/60 183/278/80 177/283/60 +f 73/219/64 74/284/65 67/220/65 +f 75/222/66 76/225/67 69/223/67 +f 76/225/67 77/230/68 70/226/68 +f 78/227/61 72/231/69 65/228/69 +f 77/230/68 78/227/61 71/229/61 +f 72/231/69 73/219/64 66/221/64 +f 87/232/69 100/244/69 102/233/64 +f 95/235/66 104/285/66 105/236/67 +f 88/234/64 102/233/64 103/238/65 +f 96/237/67 105/236/67 106/240/68 +f 97/241/68 106/240/68 101/242/61 +f 86/243/61 101/242/61 100/244/69 +f 121/245/62 122/257/70 110/246/70 +f 128/248/67 129/259/68 117/249/68 +f 130/251/61 119/260/69 107/252/69 +f 125/254/71 126/262/72 114/255/72 +f 122/257/70 123/264/73 111/258/73 +f 129/259/68 130/251/61 118/253/61 +f 119/260/69 120/266/64 108/261/64 +f 126/262/72 127/267/63 115/263/63 +f 123/264/73 124/286/60 112/265/60 +f 120/266/64 121/245/62 109/247/62 +f 127/267/63 128/248/67 116/250/67 +f 124/268/60 125/254/71 113/256/71 +f 146/128/74 144/208/74 143/207/75 +f 145/129/75 143/207/75 149/270/76 +f 142/272/61 140/287/61 150/273/77 +f 148/274/77 150/273/77 144/208/74 +f 147/271/76 149/270/76 139/275/60 +f 179/216/78 180/171/79 182/215/79 +f 185/277/80 179/216/78 181/214/78 +f 186/279/81 176/288/61 178/280/61 +f 180/171/79 186/279/81 184/281/81 +f 175/282/60 185/277/80 183/278/80 +o Gun +v 0.000000 1.187500 4.375000 +v 0.000000 1.187500 8.000000 +v 0.093750 1.162380 4.375000 +v 0.093750 1.162380 8.000000 +v 0.162380 1.093750 4.375000 +v 0.162380 1.093750 8.000000 +v 0.187500 1.000000 4.375000 +v 0.187500 1.000000 8.000000 +v 0.162380 0.906250 4.375000 +v 0.162380 0.906250 8.000000 +v 0.093750 0.837620 4.375000 +v 0.093750 0.837620 8.000000 +v 0.000000 0.812500 4.375000 +v 0.000000 0.812500 8.000000 +v -0.093750 0.837620 4.375000 +v -0.093750 0.837620 8.000000 +v -0.162380 0.906250 4.375000 +v -0.162380 0.906250 8.000000 +v -0.187500 1.000000 4.375000 +v -0.187500 1.000000 8.000000 +v -0.162380 1.093750 4.375000 +v -0.162380 1.093750 8.000000 +v -0.093750 1.162380 4.375000 +v -0.093750 1.162380 8.000000 +v 0.000000 1.125000 8.000000 +v -0.062500 1.108253 8.000000 +v -0.108253 1.062500 8.000000 +v -0.125000 1.000000 8.000000 +v -0.108253 0.937500 8.000000 +v -0.062500 0.891747 8.000000 +v 0.000000 0.875000 8.000000 +v 0.062500 0.891747 8.000000 +v 0.108253 0.937500 8.000000 +v 0.125000 1.000000 8.000000 +v 0.108253 1.062500 8.000000 +v 0.062500 1.108253 8.000000 +v -0.062500 1.108253 7.000000 +v 0.000000 1.125000 7.000000 +v -0.108253 1.062500 7.000000 +v -0.125000 1.000000 7.000000 +v -0.108253 0.937500 7.000000 +v -0.062500 0.891747 7.000000 +v 0.000000 0.875000 7.000000 +v 0.062500 0.891747 7.000000 +v 0.108253 0.937500 7.000000 +v 0.125000 1.000000 7.000000 +v 0.108253 1.062500 7.000000 +v 0.062500 1.108253 7.000000 +v -0.125000 0.250000 3.375000 +v -0.125000 0.250000 3.625000 +v 0.125000 0.250000 3.375000 +v 0.125000 0.250000 3.625000 +v 0.125000 0.375000 3.625000 +v 0.125000 0.312500 3.375000 +v -0.125000 0.375000 3.625000 +v -0.125000 0.312500 3.375000 +v -0.312500 1.125000 3.375000 +v -0.312500 0.437500 3.375000 +v -0.312500 1.125000 3.625000 +v -0.312500 0.437500 3.625000 +v -0.062500 1.375000 3.375000 +v 0.062500 1.375000 3.375000 +v -0.125000 1.437500 3.375000 +v 0.125000 1.437500 3.375000 +v -0.062500 1.375000 3.625000 +v 0.062500 1.375000 3.625000 +v -0.125000 1.437500 3.625000 +v 0.125000 1.437500 3.625000 +v 0.312500 1.125000 3.375000 +v 0.312500 0.437500 3.375000 +v 0.312500 1.125000 3.625000 +v 0.312500 0.437500 3.625000 +v -0.062500 1.312500 3.375000 +v 0.062500 1.312500 3.375000 +v -0.125000 1.375000 3.375000 +v -0.250000 1.125000 3.375000 +v -0.250000 0.437500 3.375000 +v 0.250000 1.125000 3.375000 +v 0.125000 1.375000 3.375000 +v -0.062500 1.312500 3.625000 +v 0.250000 0.437500 3.375000 +v 0.062500 1.312500 3.625000 +v -0.125000 1.375000 3.625000 +v -0.250000 1.125000 3.625000 +v 0.250000 0.437500 2.375000 +v 0.125000 1.375000 2.375000 +v 0.250000 1.125000 2.375000 +v -0.250000 0.437500 2.375000 +v -0.250000 1.125000 2.375000 +v -0.125000 1.375000 2.375000 +v 0.062500 1.312500 2.375000 +v 0.250000 0.437500 1.875000 +v -0.062500 1.312500 2.375000 +v 0.125000 1.375000 1.875000 +v 0.250000 1.125000 1.875000 +v -0.250000 0.437500 1.875000 +v -0.250000 1.125000 1.875000 +v -0.125000 1.375000 1.875000 +v 0.062500 1.312500 1.875000 +v -0.062500 1.312500 1.875000 +v 0.312500 0.437500 2.375000 +v 0.312500 1.125000 2.375000 +v 0.312500 0.437500 1.875000 +v 0.312500 1.125000 1.875000 +v 0.125000 1.437500 2.375000 +v -0.125000 1.437500 2.375000 +v 0.062500 1.375000 2.375000 +v -0.062500 1.375000 2.375000 +v 0.125000 1.437500 1.875000 +v -0.125000 1.437500 1.875000 +v 0.062500 1.375000 1.875000 +v -0.062500 1.375000 1.875000 +v -0.312500 0.437500 2.375000 +v -0.312500 1.125000 2.375000 +v -0.312500 0.437500 1.875000 +v -0.312500 1.125000 1.875000 +v -0.250000 0.437500 -0.500000 +v -0.125000 0.312500 -0.500000 +v 0.125000 0.312500 -0.500000 +v 0.250000 0.437500 -0.500000 +v -0.125000 1.062500 -1.000000 +v -0.250000 0.937500 -1.000000 +v 0.250000 0.937500 -1.000000 +v 0.125000 1.062500 -1.000000 +v -0.125000 0.312500 -1.750000 +v -0.250000 0.437500 -1.750000 +v 0.250000 0.437500 -1.750000 +v 0.125000 0.312500 -1.750000 +v -0.250000 0.937500 -1.750000 +v -0.125000 1.062500 -1.750000 +v 0.125000 1.062500 -1.750000 +v 0.250000 0.937500 -1.750000 +v 0.000000 1.125000 1.437500 +v -0.062500 1.108253 1.437500 +v -0.108253 1.062500 1.437500 +v -0.125000 1.000000 1.437500 +v -0.108253 0.937500 1.437500 +v -0.062500 0.891747 1.437500 +v 0.000000 0.875000 1.437500 +v 0.062500 0.891747 1.437500 +v 0.108253 0.937500 1.437500 +v 0.125000 1.000000 1.437500 +v 0.108253 1.062500 1.437500 +v 0.062500 1.108253 1.437500 +v -0.093750 1.162380 1.437500 +v -0.162380 1.093750 1.437500 +v -0.187500 1.000000 1.437500 +v -0.162380 0.906250 1.437500 +v -0.093750 0.837620 1.437500 +v 0.000000 0.812500 1.437500 +v 0.093750 0.837620 1.437500 +v 0.162380 0.906250 1.437500 +v 0.187500 1.000000 1.437500 +v 0.162380 1.093750 1.437500 +v 0.093750 1.162380 1.437500 +v 0.000000 1.187500 1.437500 +v 0.000000 1.125000 1.937500 +v -0.062500 1.108253 1.937500 +v -0.108253 1.062500 1.937500 +v -0.125000 1.000000 1.937500 +v -0.108253 0.937500 1.937500 +v -0.062500 0.891747 1.937500 +v 0.000000 0.875000 1.937500 +v 0.062500 0.891747 1.937500 +v 0.108253 0.937500 1.937500 +v 0.125000 1.000000 1.937500 +v 0.108253 1.062500 1.937500 +v 0.062500 1.108253 1.937500 +v -0.093750 1.162380 1.562500 +v -0.162380 1.093750 1.562500 +v -0.187500 1.000000 1.562500 +v -0.162380 0.906250 1.562500 +v -0.093750 0.837620 1.562500 +v 0.000000 0.812500 1.562500 +v 0.093750 0.837620 1.562500 +v 0.162380 0.906250 1.562500 +v 0.187500 1.000000 1.562500 +v 0.162380 1.093750 1.562500 +v 0.093750 1.162380 1.562500 +v 0.000000 1.187500 1.562500 +v -0.250000 0.500000 3.625000 +v 0.250000 1.125000 3.625000 +v 0.125000 1.375000 3.625000 +v 0.250000 0.500000 3.625000 +v 0.312500 1.000000 1.625000 +v 0.312500 1.000000 -1.000000 +v 0.312500 0.875000 1.625000 +v 0.312500 0.625000 1.375000 +v 0.312500 0.375000 1.375000 +v 0.187500 0.250000 1.375000 +v -0.187500 0.250000 1.375000 +v -0.312500 0.375000 1.375000 +v -0.312500 0.625000 1.375000 +v -0.312500 0.875000 1.625000 +v -0.312500 1.000000 1.625000 +v -0.312500 1.000000 -1.000000 +v 0.312500 0.625000 -0.750000 +v 0.312500 0.375000 -0.750000 +v 0.187500 0.250000 -0.750000 +v -0.187500 0.250000 -0.750000 +v -0.312500 0.375000 -0.750000 +v -0.312500 0.625000 -0.750000 +v 0.250000 1.000000 1.625000 +v 0.250000 0.875000 1.625000 +v 0.250000 0.625000 1.375000 +v 0.250000 0.437500 1.375000 +v -0.250000 0.437500 1.375000 +v -0.250000 0.625000 1.375000 +v -0.250000 0.875000 1.625000 +v -0.250000 1.000000 1.625000 +v 0.125000 0.312500 1.375000 +v -0.125000 0.312500 1.375000 +v 0.187500 1.000000 1.625000 +v -0.187500 1.000000 1.625000 +v 0.187500 1.000000 0.125000 +v -0.187500 1.000000 0.125000 +v 0.000000 1.250000 0.125000 +v -0.125000 1.216506 0.125000 +v -0.216506 1.125000 0.125000 +v -0.250000 1.000000 0.125000 +v -0.216506 0.875000 0.125000 +v -0.125000 0.783494 0.125000 +v 0.000000 0.750000 0.125000 +v 0.125000 0.783494 0.125000 +v 0.216506 0.875000 0.125000 +v 0.250000 1.000000 0.125000 +v 0.216506 1.125000 0.125000 +v 0.125000 1.216506 0.125000 +v -0.125000 1.216506 -0.125000 +v 0.000000 1.250000 -0.125000 +v -0.216506 1.125000 -0.125000 +v -0.250000 1.000000 -0.125000 +v 0.250000 1.000000 -0.125000 +v 0.216506 1.125000 -0.125000 +v 0.125000 1.216506 -0.125000 +v -0.187500 1.000000 1.437500 +v -0.162380 0.906250 1.437500 +v -0.093750 0.837620 1.437500 +v 0.000000 0.812500 1.437500 +v 0.093750 0.837620 1.437500 +v 0.162380 0.906250 1.437500 +v 0.187500 1.000000 1.437500 +v -0.187500 1.000000 0.125000 +v -0.162380 0.906250 0.125000 +v -0.093750 0.837620 0.125000 +v 0.000000 0.812500 0.125000 +v 0.093750 0.837620 0.125000 +v 0.162380 0.906250 0.125000 +v 0.187500 1.000000 0.125000 +v -0.250000 1.000000 7.875000 +v -0.216506 0.875000 7.875000 +v -0.125000 0.783494 7.875000 +v 0.000000 0.750000 7.875000 +v 0.125000 0.783494 7.875000 +v 0.216506 0.875000 7.875000 +v 0.250000 1.000000 7.875000 +v 0.000000 1.250000 6.125000 +v -0.125000 1.216506 6.125000 +v -0.216506 1.125000 6.125000 +v -0.250000 1.000000 6.125000 +v -0.216506 0.875000 6.125000 +v -0.125000 0.783494 6.125000 +v 0.000000 0.750000 6.125000 +v 0.125000 0.783494 6.125000 +v 0.216506 0.875000 6.125000 +v 0.250000 1.000000 6.125000 +v 0.216506 1.125000 6.125000 +v 0.125000 1.216506 6.125000 +v -0.250000 1.000000 7.500000 +v -0.216506 0.875000 7.500000 +v -0.125000 0.783494 7.500000 +v 0.000000 0.750000 7.500000 +v 0.125000 0.783494 7.500000 +v 0.216506 0.875000 7.500000 +v 0.250000 1.000000 7.500000 +v 0.216506 1.125000 5.250000 +v 0.250000 1.000000 5.375000 +v 0.216506 0.875000 5.500000 +v -0.125000 1.375000 7.500000 +v 0.125000 1.375000 7.500000 +v 0.125000 1.375000 7.875000 +v -0.125000 1.375000 7.875000 +v 0.187500 1.375000 7.875000 +v 0.187500 1.375000 7.500000 +v -0.187500 1.375000 7.875000 +v -0.187500 1.375000 7.500000 +v 0.187500 1.000000 7.875000 +v 0.162380 0.906250 7.875000 +v 0.093750 0.837620 7.875000 +v 0.000000 0.812500 7.875000 +v -0.093750 0.837620 7.875000 +v -0.162380 0.906250 7.875000 +v -0.187500 1.000000 7.875000 +v 0.187500 1.000000 7.500000 +v 0.162380 0.906250 7.500000 +v 0.093750 0.837620 7.500000 +v 0.000000 0.812500 7.500000 +v -0.093750 0.837620 7.500000 +v -0.162380 0.906250 7.500000 +v -0.187500 1.000000 7.500000 +v 0.125000 0.783494 5.500000 +v 0.000000 0.750000 5.500000 +v -0.125000 0.783494 5.500000 +v -0.216506 0.875000 5.500000 +v -0.250000 1.000000 5.375000 +v -0.216506 1.125000 5.250000 +v -0.312500 1.691561 7.881433 +v -0.312500 1.691561 7.506433 +v 0.250000 1.687500 7.875000 +v 0.312500 1.687500 7.875000 +v 0.312500 1.687500 7.500000 +v 0.250000 1.687500 7.500000 +v -0.250000 1.691561 7.506433 +v -0.250000 1.691561 7.881433 +v 0.062500 1.125000 7.500000 +v 0.062500 1.125000 7.875000 +v 0.062500 1.375000 7.875000 +v 0.062500 1.375000 7.500000 +v -0.062500 1.375000 7.875000 +v -0.062500 1.125000 7.875000 +v -0.062500 1.125000 7.500000 +v -0.062500 1.375000 7.500000 +v 0.062500 1.250000 7.875000 +v 0.062500 1.250000 7.500000 +v -0.062500 1.250000 7.875000 +v -0.062500 1.250000 7.500000 +v 0.062500 1.250000 7.812500 +v 0.062500 1.250000 7.562500 +v -0.062500 1.250000 7.812500 +v -0.062500 1.250000 7.562500 +v 0.062500 1.437500 7.562500 +v -0.062500 1.437500 7.562500 +v -0.062500 1.437500 7.812500 +v 0.062500 1.437500 7.812500 +v 0.031250 1.562500 7.625000 +v -0.031250 1.562500 7.625000 +v -0.031250 1.562500 7.750000 +v 0.031250 1.562500 7.750000 +v 0.162380 1.093750 5.250000 +v 0.187500 1.000000 5.375000 +v 0.162380 0.906250 5.500000 +v 0.093750 0.837620 5.500000 +v 0.000000 0.812500 5.500000 +v -0.093750 0.837620 5.500000 +v -0.162380 0.906250 5.500000 +v -0.187500 1.000000 5.375000 +v -0.162380 1.093750 5.250000 +v 0.000000 1.187500 6.125000 +v 0.093750 1.162380 6.125000 +v 0.162380 1.093750 6.125000 +v 0.187500 1.000000 6.125000 +v 0.162380 0.906250 6.125000 +v 0.093750 0.837620 6.125000 +v 0.000000 0.812500 6.125000 +v -0.093750 0.837620 6.125000 +v -0.162380 0.906250 6.125000 +v -0.187500 1.000000 6.125000 +v -0.162380 1.093750 6.125000 +v -0.093750 1.162380 6.125000 +v 0.000000 1.250000 4.875000 +v 0.125000 1.216506 4.875000 +v 0.216506 1.125000 4.875000 +v -0.216506 1.125000 4.875000 +v -0.125000 1.216506 4.875000 +v 0.093750 1.162380 4.875000 +v 0.000000 1.187500 4.875000 +v 0.162380 1.093750 4.875000 +v -0.093750 1.162380 4.875000 +v -0.162380 1.093750 4.875000 +v 0.000000 1.250000 4.437500 +v -0.125000 1.216506 4.437500 +v -0.216506 1.125000 4.437500 +v -0.250000 1.000000 4.437500 +v 0.250000 1.000000 4.437500 +v 0.216506 1.125000 4.437500 +v 0.125000 1.216506 4.437500 +v 0.000000 1.187500 4.437500 +v 0.093750 1.162380 4.437500 +v 0.162380 1.093750 4.437500 +v 0.187500 1.000000 4.437500 +v -0.187500 1.000000 4.437500 +v -0.162380 1.093750 4.437500 +v -0.093750 1.162380 4.437500 +v -0.125000 1.216506 4.812500 +v 0.000000 1.250000 4.812500 +v -0.216506 1.125000 4.812500 +v -0.250000 1.000000 4.812500 +v 0.250000 1.000000 4.812500 +v 0.216506 1.125000 4.812500 +v 0.125000 1.216506 4.812500 +v 0.093750 1.162380 4.812500 +v 0.000000 1.187500 4.812500 +v 0.162380 1.093750 4.812500 +v 0.187500 1.000000 4.812500 +v -0.187500 1.000000 4.812500 +v -0.162380 1.093750 4.812500 +v -0.093750 1.162380 4.812500 +v 0.187500 0.500100 4.750000 +v 0.187500 0.500100 4.500000 +v 0.125000 0.437600 4.750000 +v 0.125000 0.437600 4.500000 +v 0.187500 0.187600 4.750000 +v 0.187500 0.187600 4.500000 +v 0.125000 0.187600 4.750000 +v 0.125000 0.187600 4.500000 +v 0.187500 0.062600 4.687500 +v 0.187500 0.062600 4.562500 +v 0.125000 0.062600 4.687500 +v 0.125000 0.062600 4.562500 +v -0.125000 0.437600 4.750000 +v -0.125000 0.437600 4.500000 +v -0.187500 0.500100 4.750000 +v -0.187500 0.500100 4.500000 +v -0.125000 0.187600 4.750000 +v -0.125000 0.187600 4.500000 +v -0.187500 0.187600 4.750000 +v -0.187500 0.187600 4.500000 +v -0.125000 0.062600 4.687500 +v -0.125000 0.062600 4.562500 +v -0.187500 0.062600 4.687500 +v -0.187500 0.062600 4.562500 +v -0.250000 0.156350 4.656250 +v -0.250000 0.218850 4.656250 +v -0.250000 0.156350 4.593750 +v -0.250000 0.218850 4.593750 +v 0.250000 0.156350 4.656250 +v 0.250000 0.218850 4.656250 +v 0.250000 0.156350 4.593750 +v 0.250000 0.218850 4.593750 +v 0.312500 1.000000 1.250000 +v 0.312500 0.875000 1.250000 +v 0.312500 1.000000 -0.875000 +v 0.312500 0.875000 -0.875000 +v 0.437500 0.875000 1.250000 +v 0.437500 1.000000 1.250000 +v 0.437500 0.875000 0.000000 +v 0.437500 1.000000 0.000000 +v 0.687500 0.875000 0.000000 +v 0.687500 1.000000 0.000000 +v 0.562500 0.875000 -0.500000 +v 0.562500 1.000000 -0.500000 +v 0.687500 1.000000 0.000000 +v 0.562500 1.000000 0.000000 +v 0.687500 1.062500 0.000000 +v 0.562500 1.062500 0.000000 +v 0.625000 1.000000 -0.062500 +v 0.562500 1.000000 -0.062500 +v 0.625000 1.062500 -0.062500 +v 0.562500 1.062500 -0.062500 +v -0.687500 1.000000 0.000000 +v -0.562500 1.000000 0.000000 +v -0.687500 1.062500 0.000000 +v -0.562500 1.062500 0.000000 +v -0.625000 1.000000 -0.062500 +v -0.562500 1.000000 -0.062500 +v -0.625000 1.062500 -0.062500 +v -0.562500 1.062500 -0.062500 +v 0.125000 0.187500 -2.000000 +v 0.250000 0.312500 -2.000000 +v 0.250000 0.812500 -2.000000 +v 0.125000 0.937500 -2.000000 +v -0.250000 0.312500 -2.000000 +v -0.125000 0.187500 -2.000000 +v -0.125000 0.937500 -2.000000 +v -0.250000 0.812500 -2.000000 +v 0.125000 -0.062500 -2.500000 +v 0.250000 0.062500 -2.500000 +v 0.250000 0.562500 -2.750000 +v 0.125000 0.687500 -2.750000 +v -0.250000 0.062500 -2.500000 +v -0.125000 -0.062500 -2.500000 +v -0.125000 0.687500 -2.750000 +v -0.250000 0.562500 -2.750000 +v 0.250000 0.687500 -3.000000 +v 0.125000 0.812500 -3.000000 +v -0.125000 0.812500 -3.000000 +v -0.250000 0.687500 -3.000000 +v 0.250000 0.812500 -3.500000 +v 0.125000 0.937500 -3.500000 +v -0.125000 0.937500 -3.500000 +v -0.250000 0.812500 -3.500000 +v 0.250000 0.812500 -7.750000 +v 0.125000 0.937500 -7.750000 +v -0.125000 0.937500 -7.750000 +v -0.250000 0.812500 -7.750000 +v 0.125000 -0.937500 -3.125000 +v 0.250000 -0.812500 -3.125000 +v -0.250000 -0.812500 -3.125000 +v -0.125000 -0.937500 -3.125000 +v 0.125000 -0.687500 -4.000000 +v 0.250000 -0.562500 -4.000000 +v -0.250000 -0.562500 -4.000000 +v -0.125000 -0.687500 -4.000000 +v 0.125000 -0.812500 -5.000000 +v 0.250000 -0.687500 -5.000000 +v -0.250000 -0.687500 -5.000000 +v -0.125000 -0.812500 -5.000000 +v 0.125000 -1.687500 -7.375000 +v 0.250000 -1.562500 -7.375000 +v -0.250000 -1.562500 -7.375000 +v -0.125000 -1.687500 -7.375000 +v 0.125000 -1.687500 -7.875000 +v 0.250000 -1.562500 -7.875000 +v -0.250000 -1.562500 -7.875000 +v -0.125000 -1.687500 -7.875000 +v 0.125000 -1.437500 -8.125000 +v 0.250000 -1.437500 -8.000000 +v -0.250000 -1.437500 -8.000000 +v -0.125000 -1.437500 -8.125000 +v 0.125000 0.562500 -8.125000 +v 0.250000 0.562500 -8.000000 +v -0.250000 0.562500 -8.000000 +v -0.125000 0.562500 -8.125000 +v 0.312500 0.875000 -1.000000 +v -0.312500 0.875000 -1.000000 +v 0.312500 1.000000 -1.000000 +v -0.312500 1.000000 -1.000000 +v 0.312500 1.000000 -0.125000 +v -0.312500 1.000000 -0.125000 +v 0.312500 1.125000 -1.000000 +v -0.312500 1.125000 -1.000000 +v 0.312500 1.125000 -0.125000 +v -0.312500 1.125000 -0.125000 +v 0.187500 1.250000 -0.875000 +v -0.187500 1.250000 -0.875000 +v 0.187500 1.250000 -0.125000 +v -0.187500 1.250000 -0.125000 +v 0.187500 1.375000 -0.125000 +v -0.187500 1.375000 -0.125000 +v 0.187500 1.375000 -0.625000 +v -0.187500 1.375000 -0.625000 +v 0.187500 1.437500 -0.125000 +v -0.187500 1.437500 -0.125000 +v -0.125000 1.437500 -0.125000 +v -0.125000 1.437500 -0.625000 +v 0.125000 1.437500 -0.125000 +v 0.125000 1.437500 -0.625000 +v 0.187500 1.562500 -0.625000 +v -0.187500 1.562500 -0.625000 +v -0.125000 1.562500 -0.625000 +v 0.125000 1.562500 -0.625000 +v 0.000000 1.687500 -0.250000 +v -0.088388 1.650888 -0.250000 +v -0.125000 1.562500 -0.250000 +v 0.000000 1.437500 -0.312500 +v 0.000000 1.437500 -0.250000 +v 0.125000 1.562500 -0.250000 +v 0.088388 1.650888 -0.250000 +v 0.000000 1.656250 -0.250000 +v -0.066291 1.628791 -0.250000 +v -0.093750 1.562500 -0.250000 +v -0.066291 1.496209 -0.250000 +v 0.000000 1.468750 -0.250000 +v 0.066291 1.496209 -0.250000 +v 0.093750 1.562500 -0.250000 +v 0.066291 1.628791 -0.250000 +v -0.125000 1.437500 -0.250000 +v 0.125000 1.437500 -0.250000 +v 0.000000 1.687500 -0.312500 +v -0.088388 1.650888 -0.312500 +v -0.125000 1.562500 -0.312500 +v 0.125000 1.562500 -0.312500 +v 0.088388 1.650888 -0.312500 +v 0.000000 1.656250 -0.312500 +v -0.066291 1.628791 -0.312500 +v -0.093750 1.562500 -0.312500 +v -0.066291 1.496209 -0.312500 +v 0.000000 1.468750 -0.312500 +v 0.066291 1.496209 -0.312500 +v 0.093750 1.562500 -0.312500 +v 0.066291 1.628791 -0.312500 +v -0.125000 1.437500 -0.312500 +v 0.125000 1.437500 -0.312500 +v 0.187500 1.250000 -0.125000 +v -0.187500 1.250000 -0.125000 +v 0.187500 1.250000 -0.750000 +v -0.187500 1.250000 -0.750000 +v 0.125000 1.375000 -0.187500 +v -0.125000 1.375000 -0.187500 +v 0.125000 1.375000 -0.562500 +v -0.125000 1.375000 -0.562500 +v 0.187500 1.525888 -0.411612 +v 0.187500 1.562500 -0.500000 +v 0.187500 1.525888 -0.588388 +v 0.187500 1.437500 -0.625000 +v 0.187500 1.437500 -0.375000 +v 0.187500 1.349112 -0.411612 +v 0.187500 1.312500 -0.500000 +v 0.187500 1.349112 -0.588388 +v 0.250000 1.437500 -0.625000 +v 0.250000 1.349112 -0.588388 +v 0.250000 1.312500 -0.500000 +v 0.250000 1.349112 -0.411612 +v 0.250000 1.437500 -0.375000 +v 0.250000 1.562500 -0.500000 +v 0.250000 1.525888 -0.588388 +v 0.250000 1.525888 -0.411612 +v -0.187500 1.525888 -0.411612 +v -0.187500 1.525888 -0.588388 +v -0.187500 1.562500 -0.500000 +v -0.187500 1.437500 -0.375000 +v -0.187500 1.349112 -0.411612 +v -0.187500 1.312500 -0.500000 +v -0.187500 1.349112 -0.588388 +v -0.187500 1.437500 -0.625000 +v -0.250000 1.349112 -0.588388 +v -0.250000 1.312500 -0.500000 +v -0.250000 1.349112 -0.411612 +v -0.250000 1.437500 -0.375000 +v -0.250000 1.437500 -0.625000 +v -0.250000 1.525888 -0.588388 +v -0.250000 1.562500 -0.500000 +v -0.250000 1.525888 -0.411612 +v -0.125000 0.250000 0.000000 +v 0.125000 0.250000 0.000000 +v -0.125000 0.250000 -0.750000 +v 0.125000 0.250000 -0.750000 +v -0.125000 0.000000 -0.750000 +v -0.125000 0.000000 0.000000 +v 0.125000 0.000000 0.000000 +v 0.125000 0.000000 -0.750000 +v -0.062500 0.312500 -1.750000 +v 0.062500 0.312500 -1.750000 +v -0.062500 -0.062500 -1.750000 +v 0.062500 -0.062500 -1.750000 +v -0.062500 -0.312500 -1.500000 +v 0.062500 -0.312500 -1.500000 +v -0.062500 -0.312500 -0.875000 +v 0.062500 -0.312500 -0.875000 +v -0.062500 -0.125000 -0.687500 +v 0.062500 -0.125000 -0.687500 +v -0.062500 0.000000 -0.625000 +v 0.062500 0.000000 -0.625000 +v -0.062500 0.312500 -1.687500 +v 0.062500 0.312500 -1.687500 +v -0.062500 -0.062500 -1.687500 +v 0.062500 -0.062500 -1.687500 +v -0.062500 -0.250000 -1.500000 +v 0.062500 -0.250000 -1.500000 +v -0.062500 -0.250000 -0.875000 +v 0.062500 -0.250000 -0.875000 +v -0.062500 -0.125000 -0.750000 +v 0.062500 -0.125000 -0.750000 +v -0.062500 0.000000 -0.687500 +v 0.062500 0.000000 -0.687500 +v -0.062500 0.312500 -1.562500 +v 0.062500 0.312500 -1.562500 +v -0.062500 0.312500 -1.312500 +v 0.062500 0.312500 -1.312500 +v -0.062500 0.187500 -1.500000 +v 0.062500 0.187500 -1.500000 +v -0.062500 0.187500 -1.375000 +v 0.062500 0.187500 -1.375000 +v -0.062500 0.000000 -1.500000 +v 0.062500 0.000000 -1.500000 +v -0.062500 0.000000 -1.375000 +v 0.062500 0.000000 -1.375000 +v -0.062500 -0.187500 -1.312500 +v 0.062500 -0.187500 -1.312500 +v -0.250000 1.000000 4.375000 +v 0.250000 1.000000 4.375000 +v -0.125000 1.375000 4.375000 +v 0.125000 1.375000 4.375000 +v -0.250000 1.000000 5.000000 +v 0.250000 1.000000 5.000000 +v -0.250000 0.750000 5.250000 +v 0.250000 0.750000 5.250000 +v -0.125000 0.500000 5.000000 +v 0.125000 0.500000 5.000000 +v -0.125000 0.500000 4.125000 +v 0.125000 0.500000 4.125000 +v -0.125000 0.312500 3.500000 +v 0.125000 0.312500 3.500000 +v 0.250000 1.000000 3.500000 +v -0.250000 1.000000 3.500000 +v -0.125000 0.312500 1.375000 +v 0.125000 0.312500 1.375000 +v -0.250000 1.125000 4.375000 +v 0.250000 1.125000 4.375000 +v -0.125000 1.375000 1.500000 +v 0.125000 1.375000 1.500000 +v -0.250000 1.125000 1.500000 +v 0.250000 1.125000 1.500000 +v 0.250000 1.125000 3.500000 +v -0.250000 1.125000 3.500000 +v 0.250000 1.000000 1.500000 +v -0.250000 1.000000 1.500000 +v -0.250000 0.625000 5.125000 +v 0.250000 0.625000 5.125000 +v 0.062500 1.312500 4.375000 +v -0.187500 1.125000 3.500000 +v -0.062500 1.312500 4.375000 +v 0.062500 1.312500 1.500000 +v -0.187500 1.125000 1.500000 +v -0.062500 1.312500 1.500000 +v -0.187500 1.000000 3.500000 +v -0.187500 1.000000 1.500000 +v 0.187500 1.125000 3.500000 +v 0.187500 1.125000 1.500000 +v 0.187500 1.000000 3.500000 +v 0.187500 1.000000 1.500000 +v 0.125000 1.000000 1.500000 +v 0.125000 1.125000 1.500000 +v -0.125000 1.125000 1.500000 +v -0.125000 1.000000 1.500000 +v -0.250000 0.625000 4.125000 +v 0.250000 0.625000 4.125000 +v -0.250000 0.437500 3.500000 +v 0.250000 0.437500 3.500000 +v -0.250000 0.437500 1.375000 +v 0.250000 0.437500 1.375000 +v -0.250000 0.625000 1.375000 +v 0.250000 0.625000 1.375000 +v -0.125000 0.312500 1.875000 +v -0.125000 0.312500 2.375000 +v 0.125000 0.312500 1.875000 +v 0.125000 0.312500 2.375000 +v 0.125000 0.250000 2.375000 +v 0.125000 0.250000 1.875000 +v -0.125000 0.250000 2.375000 +v -0.125000 0.250000 1.875000 +v -0.250000 1.000000 4.750000 +v 0.250000 1.000000 4.750000 +v -0.250000 1.000000 4.500000 +v 0.250000 1.000000 4.500000 +v -0.312500 1.000000 4.750000 +v -0.312500 1.000000 4.500000 +v 0.312500 1.000000 4.750000 +v 0.312500 1.000000 4.500000 +v -0.312500 0.625000 4.750000 +v -0.312500 0.625000 4.500000 +v 0.312500 0.625000 4.750000 +v 0.312500 0.625000 4.500000 +v -0.125000 0.437500 4.750000 +v -0.125000 0.437500 4.500000 +v 0.125000 0.437500 4.750000 +v 0.125000 0.437500 4.500000 +v -0.125000 0.500000 4.750000 +v -0.125000 0.500000 4.500000 +v 0.125000 0.500000 4.750000 +v 0.125000 0.500000 4.500000 +v -0.250000 0.625000 4.750000 +v 0.250000 0.625000 4.750000 +v -0.250000 0.625000 4.500000 +v 0.250000 0.625000 4.500000 +v -0.312500 1.000000 1.250000 +v -0.312500 0.875000 1.250000 +v -0.312500 1.000000 -0.875000 +v -0.312500 0.875000 -0.875000 +v -0.437500 0.875000 1.250000 +v -0.437500 1.000000 1.250000 +v -0.437500 0.875000 0.000000 +v -0.437500 1.000000 0.000000 +v -0.687500 0.875000 0.000000 +v -0.687500 1.000000 0.000000 +v -0.562500 0.875000 -0.500000 +v -0.562500 1.000000 -0.500000 +vt 0.062271 0.065217 +vt 0.058608 0.043478 +vt 0.062271 0.043478 +vt 0.058608 0.076087 +vt 0.058608 0.065217 +vt 0.062271 0.108696 +vt 0.058608 0.086957 +vt 0.062271 0.086957 +vt 0.058608 0.119565 +vt 0.058608 0.108696 +vt 0.062271 0.152174 +vt 0.058608 0.130435 +vt 0.062271 0.130435 +vt 0.058608 0.163043 +vt 0.058608 0.152174 +vt 0.062271 0.173913 +vt 0.058608 0.184783 +vt 0.058608 0.173913 +vt 0.062271 0.195652 +vt 0.058608 0.206522 +vt 0.058608 0.195652 +vt 0.062271 0.217391 +vt 0.058608 0.228261 +vt 0.058608 0.217391 +vt 0.062271 0.260870 +vt 0.058608 0.239130 +vt 0.062271 0.239130 +vt 0.062271 -0.000000 +vt 0.058608 0.010870 +vt 0.058608 -0.000000 +vt 0.058608 0.021739 +vt 0.062271 0.021739 +vt 0.007326 0.260986 +vt 0.013637 0.271797 +vt 0.007326 0.304232 +vt 0.315018 0.923913 +vt 0.307692 0.956522 +vt 0.307692 0.934783 +vt 0.307692 0.478261 +vt 0.315018 0.510870 +vt 0.307692 0.500000 +vt 0.315018 0.467391 +vt 0.307692 0.423913 +vt 0.315018 0.423913 +vt 0.333333 0.684783 +vt 0.329670 0.630435 +vt 0.333333 0.630435 +vt 0.329670 0.467391 +vt 0.333333 0.500000 +vt 0.329670 0.510870 +vt 0.333333 0.956522 +vt 0.329670 0.923913 +vt 0.333333 0.934783 +vt 0.366300 0.630435 +vt 0.369963 0.510870 +vt 0.369963 0.630435 +vt 0.329670 0.423913 +vt 0.333333 0.467391 +vt 0.311355 0.684783 +vt 0.315018 0.630435 +vt 0.315018 0.695652 +vt 0.311355 0.739130 +vt 0.315018 0.728261 +vt 0.315018 0.739130 +vt 0.329670 0.728261 +vt 0.333333 0.706522 +vt 0.333333 0.728261 +vt 0.311355 0.695652 +vt 0.315018 0.706522 +vt 0.311355 0.706522 +vt 0.333333 0.804348 +vt 0.333333 0.913043 +vt 0.329670 0.804348 +vt 0.333333 0.750000 +vt 0.311355 0.521739 +vt 0.311355 0.630435 +vt 0.311355 0.750000 +vt 0.315018 0.804348 +vt 0.311355 0.804348 +vt 0.329670 0.706522 +vt 0.333333 0.695652 +vt 0.311355 0.913043 +vt 0.333333 0.510870 +vt 0.336996 0.630435 +vt 0.333333 0.630435 +vt 0.333333 0.706522 +vt 0.336996 0.728261 +vt 0.333333 0.728261 +vt 0.333333 0.695652 +vt 0.336996 0.706522 +vt 0.366300 0.728261 +vt 0.369963 0.706522 +vt 0.369963 0.728261 +vt 0.369963 0.739130 +vt 0.333333 0.739130 +vt 0.336996 0.739130 +vt 0.366300 0.706522 +vt 0.369963 0.695652 +vt 0.366300 0.923913 +vt 0.369963 0.804348 +vt 0.369963 0.923913 +vt 0.333333 0.804348 +vt 0.336996 0.923913 +vt 0.333333 0.923913 +vt 0.366300 0.804348 +vt 0.369963 0.750000 +vt 0.333333 0.750000 +vt 0.336996 0.804348 +vt 0.369963 0.684783 +vt 0.333333 0.684783 +vt 0.336996 0.695652 +vt 0.336996 0.467391 +vt 0.333333 0.423913 +vt 0.336996 0.423913 +vt 0.622711 0.826087 +vt 0.619048 0.847826 +vt 0.619048 0.826087 +vt 0.622711 0.858696 +vt 0.622711 0.847826 +vt 0.622711 0.869565 +vt 0.619048 0.891304 +vt 0.619048 0.869565 +vt 0.622711 0.902174 +vt 0.622711 0.891304 +vt 0.622711 0.923913 +vt 0.619048 0.913043 +vt 0.622711 0.913043 +vt 0.622711 0.945652 +vt 0.619048 0.934783 +vt 0.622711 0.934783 +vt 0.622711 0.967391 +vt 0.619048 0.956522 +vt 0.622711 0.956522 +vt 0.622711 0.978261 +vt 0.619048 1.000000 +vt 0.619048 0.978261 +vt 0.622711 0.750000 +vt 0.619048 0.739130 +vt 0.622711 0.739130 +vt 0.622711 0.760870 +vt 0.619048 0.782609 +vt 0.619048 0.760870 +vt 0.622711 0.782609 +vt 0.619048 0.804348 +vt 0.622711 0.815217 +vt 0.622711 0.804348 +vt 0.333333 0.521739 +vt 0.311355 0.728261 +vt 0.333333 0.739130 +vt 0.653009 0.771718 +vt 0.659341 0.739173 +vt 0.665673 0.771718 +vt 0.058608 0.630435 +vt 0.183150 0.673913 +vt 0.058608 0.673913 +vt 0.058608 0.260870 +vt 0.183150 0.326087 +vt 0.058608 0.326087 +vt 0.058608 0.347826 +vt 0.183150 0.391304 +vt 0.058608 0.391304 +vt 0.183150 0.695652 +vt 0.058608 0.695652 +vt 0.183150 0.347826 +vt 0.219780 0.565217 +vt 0.219780 0.456522 +vt 0.241758 0.478261 +vt 0.205128 0.565217 +vt 0.205128 0.456522 +vt 0.197802 0.565217 +vt 0.197802 0.456522 +vt 0.021978 0.456522 +vt 0.010989 0.467391 +vt 0.007326 0.456522 +vt 0.036630 0.456522 +vt 0.021978 0.467391 +vt 0.043956 0.456522 +vt 0.036630 0.467391 +vt 0.036630 0.565217 +vt 0.043956 0.554348 +vt 0.043956 0.565217 +vt 0.021978 0.565217 +vt 0.036630 0.554348 +vt 0.010989 0.554348 +vt 0.021978 0.554348 +vt 0.000000 0.478261 +vt 0.003663 0.532609 +vt 0.000000 0.543478 +vt 0.007326 0.565217 +vt 0.003663 0.489130 +vt 0.131868 0.478261 +vt 0.131868 0.543478 +vt 0.723636 0.674017 +vt 0.748892 0.674017 +vt 0.736264 0.738921 +vt 0.886447 0.858696 +vt 0.879121 0.869565 +vt 0.879121 0.858696 +vt 0.893773 0.858696 +vt 0.886447 0.869565 +vt 0.901099 0.858696 +vt 0.893773 0.869565 +vt 0.908425 0.869565 +vt 0.901099 0.869565 +vt 0.908425 0.858696 +vt 0.915751 0.869565 +vt 0.915751 0.858696 +vt 0.923077 0.869565 +vt 0.915751 0.793478 +vt 0.923077 0.782609 +vt 0.923077 0.793478 +vt 0.908425 0.793478 +vt 0.915751 0.782609 +vt 0.901099 0.793478 +vt 0.908425 0.782609 +vt 0.893773 0.782609 +vt 0.893773 0.793478 +vt 0.886447 0.782609 +vt 0.886447 0.793478 +vt 0.879121 0.782609 +vt 0.879121 0.793478 +vt 0.857143 0.793478 +vt 0.857143 0.782609 +vt 0.816850 0.793478 +vt 0.835165 0.858696 +vt 0.816850 0.858696 +vt 0.857143 0.858696 +vt 0.857143 0.869565 +vt 0.945055 0.793478 +vt 0.963370 0.858696 +vt 0.945055 0.858696 +vt 0.945055 0.869565 +vt 0.945055 0.782609 +vt 0.267399 0.913043 +vt 0.260073 0.934783 +vt 0.260073 0.913043 +vt 0.838828 0.858696 +vt 0.835165 0.793478 +vt 0.838828 0.793478 +vt 0.967033 0.858696 +vt 0.963370 0.793478 +vt 0.967033 0.793478 +vt 0.838828 0.869565 +vt 0.985348 0.793478 +vt 0.963370 0.782609 +vt 0.963370 0.869565 +vt 0.838828 0.782609 +vt 0.805861 0.793478 +vt 0.813187 0.858696 +vt 0.805861 0.858696 +vt 0.267399 0.847826 +vt 0.260073 0.847826 +vt 0.864469 0.771739 +vt 0.871795 0.771739 +vt 0.864469 0.880435 +vt 0.857143 0.880435 +vt 0.267399 0.826087 +vt 0.260073 0.826087 +vt 0.937729 0.771739 +vt 0.945055 0.771739 +vt 0.996337 0.793478 +vt 0.989011 0.858696 +vt 0.989011 0.793478 +vt 0.937729 0.880435 +vt 0.930403 0.880435 +vt 0.985348 0.858696 +vt 0.289377 0.880435 +vt 0.278388 0.902174 +vt 0.274725 0.880435 +vt 0.311355 0.847826 +vt 0.296703 0.880435 +vt 0.296703 0.847826 +vt 0.289377 0.847826 +vt 0.274725 0.847826 +vt 0.267399 0.880435 +vt 0.267399 0.847826 +vt 0.285714 0.913043 +vt 0.285714 0.902174 +vt 0.289377 0.902174 +vt 0.271062 0.902174 +vt 0.311355 0.880435 +vt 0.300366 0.902174 +vt 0.608059 0.847826 +vt 0.611722 0.826087 +vt 0.611722 0.847826 +vt 0.608059 0.869565 +vt 0.611722 0.869565 +vt 0.608059 0.608696 +vt 0.611722 0.630435 +vt 0.608059 0.630435 +vt 0.611722 0.652174 +vt 0.608059 0.652174 +vt 0.534799 0.695652 +vt 0.531136 0.673913 +vt 0.534799 0.673913 +vt 0.531136 0.717391 +vt 0.534799 0.717391 +vt 0.531136 0.739130 +vt 0.534799 0.739130 +vt 0.534799 0.760870 +vt 0.534799 0.782609 +vt 0.531136 0.760870 +vt 0.534799 0.804348 +vt 0.531136 0.782609 +vt 0.534799 0.826087 +vt 0.531136 0.804348 +vt 0.534799 0.847826 +vt 0.531136 0.826087 +vt 0.534799 0.869565 +vt 0.531136 0.847826 +vt 0.531136 0.630435 +vt 0.534799 0.608696 +vt 0.534799 0.630435 +vt 0.531136 0.652174 +vt 0.534799 0.652174 +vt 0.608059 0.695652 +vt 0.611722 0.717391 +vt 0.608059 0.717391 +vt 0.611722 0.739130 +vt 0.608059 0.739130 +vt 0.608059 0.760870 +vt 0.611722 0.760870 +vt 0.608059 0.782609 +vt 0.611722 0.782609 +vt 0.586081 0.782609 +vt 0.608059 0.793478 +vt 0.586081 0.793478 +vt 0.586081 0.684783 +vt 0.586081 0.695652 +vt 0.223443 0.586957 +vt 0.227106 0.565217 +vt 0.227106 0.586957 +vt 0.227106 0.608696 +vt 0.223443 0.608696 +vt 0.227106 0.630435 +vt 0.223443 0.630435 +vt 0.223443 0.652174 +vt 0.227106 0.652174 +vt 0.223443 0.673913 +vt 0.227106 0.673913 +vt 0.223443 0.695652 +vt 0.227106 0.695652 +vt 0.201465 0.586957 +vt 0.197802 0.565217 +vt 0.201465 0.565217 +vt 0.197802 0.608696 +vt 0.201465 0.608696 +vt 0.197802 0.630435 +vt 0.201465 0.630435 +vt 0.201465 0.652174 +vt 0.201465 0.673913 +vt 0.197802 0.652174 +vt 0.201465 0.695652 +vt 0.197802 0.673913 +vt 0.278388 0.750000 +vt 0.274725 0.728261 +vt 0.274725 0.750000 +vt 0.274725 0.750000 +vt 0.278388 0.728261 +vt 0.278388 0.750000 +vt 0.296703 0.793478 +vt 0.293040 0.750000 +vt 0.296703 0.750000 +vt 0.278388 0.804348 +vt 0.293040 0.804348 +vt 0.274725 0.793478 +vt 0.311355 0.750000 +vt 0.311355 0.793478 +vt 0.282051 0.728261 +vt 0.289377 0.717391 +vt 0.289377 0.728261 +vt 0.307692 0.728261 +vt 0.296703 0.728261 +vt 0.296703 0.793478 +vt 0.293040 0.750000 +vt 0.293040 0.804348 +vt 0.311355 0.793478 +vt 0.296703 0.750000 +vt 0.274725 0.793478 +vt 0.278388 0.804348 +vt 0.282051 0.717391 +vt 0.289377 0.728261 +vt 0.289377 0.717391 +vt 0.282051 0.728261 +vt 0.293040 0.728261 +vt 0.311355 0.750000 +vt 0.300366 0.728261 +vt 0.278388 0.815217 +vt 0.274725 0.804348 +vt 0.278388 0.804348 +vt 0.278388 0.826087 +vt 0.307692 0.836957 +vt 0.278388 0.836957 +vt 0.311355 0.815217 +vt 0.307692 0.804348 +vt 0.311355 0.804348 +vt 0.307692 0.815217 +vt 0.278388 0.847826 +vt 0.307692 0.826087 +vt 0.197802 0.434783 +vt 0.842491 0.630435 +vt 0.915751 0.652174 +vt 0.842491 0.652174 +vt 0.842491 0.673913 +vt 0.967033 0.673913 +vt 0.835165 0.673913 +vt 0.842491 0.673913 +vt 0.915751 0.652174 +vt 0.842491 0.652174 +vt 0.901099 0.586957 +vt 0.915751 0.608696 +vt 0.901099 0.608696 +vt 0.945055 0.630435 +vt 0.967033 0.673913 +vt 0.945055 0.630435 +vt 0.842491 0.706522 +vt 0.849817 0.695652 +vt 0.849817 0.706522 +vt 0.849817 0.684783 +vt 0.846154 0.673913 +vt 0.849817 0.673913 +vt 0.853480 0.684783 +vt 0.853480 0.695652 +vt 0.842491 0.673913 +vt 0.846154 0.684783 +vt 0.842491 0.684783 +vt 0.857143 0.695652 +vt 0.864469 0.706522 +vt 0.857143 0.706522 +vt 0.860806 0.673913 +vt 0.857143 0.684783 +vt 0.857143 0.673913 +vt 0.853480 0.684783 +vt 0.853480 0.695652 +vt 0.860806 0.684783 +vt 0.864469 0.673913 +vt 0.864469 0.684783 +vt 0.864469 0.695652 +vt 0.183150 0.630435 +vt 0.216117 0.282609 +vt 0.260073 0.304348 +vt 0.216117 0.304348 +vt 0.267399 0.260870 +vt 0.216117 0.260870 +vt 0.805861 0.771739 +vt 0.783883 0.684783 +vt 0.805861 0.684783 +vt 0.216117 0.413043 +vt 0.267399 0.391304 +vt 0.267399 0.413043 +vt 0.274725 0.391304 +vt 0.267399 0.282609 +vt 0.274725 0.282609 +vt 0.216117 0.369565 +vt 0.260073 0.369565 +vt 0.216117 0.391304 +vt 0.201465 0.391304 +vt 0.201465 0.282609 +vt 0.802198 0.673913 +vt 0.787546 0.586957 +vt 0.802198 0.586957 +vt 0.783883 0.771739 +vt 0.780220 0.684783 +vt 0.787546 0.782609 +vt 0.783883 0.804348 +vt 0.805861 0.673913 +vt 0.802198 0.782609 +vt 0.809524 0.684783 +vt 0.802198 0.891304 +vt 0.805861 0.804348 +vt 0.805861 0.891304 +vt 0.809524 0.586957 +vt 0.783883 0.891304 +vt 0.787546 0.804348 +vt 0.787546 0.891304 +vt 0.787546 0.673913 +vt 0.780220 0.586957 +vt 0.871795 0.608696 +vt 0.868132 0.619565 +vt 0.868132 0.608696 +vt 0.857143 0.630435 +vt 0.860806 0.619565 +vt 0.860806 0.630435 +vt 0.871795 0.630435 +vt 0.871795 0.619565 +vt 0.871795 0.586957 +vt 0.868132 0.597826 +vt 0.864469 0.586957 +vt 0.857143 0.586957 +vt 0.860806 0.597826 +vt 0.857143 0.608696 +vt 0.857143 0.619565 +vt 0.842491 0.597826 +vt 0.838828 0.608696 +vt 0.838828 0.586957 +vt 0.853480 0.608696 +vt 0.849817 0.608696 +vt 0.849817 0.597826 +vt 0.842491 0.619565 +vt 0.842491 0.608696 +vt 0.838828 0.630435 +vt 0.838828 0.619565 +vt 0.853480 0.630435 +vt 0.849817 0.619565 +vt 0.853480 0.619565 +vt 0.832911 0.637123 +vt 0.832911 0.667225 +vt 0.822767 0.667225 +vt 0.822767 0.623747 +vt 0.822767 0.593645 +vt 0.832911 0.593645 +vt 0.289377 0.434783 +vt 0.263736 0.413043 +vt 0.267399 0.434783 +vt 0.289377 0.434783 +vt 0.263736 0.413043 +vt 0.300366 0.413043 +vt 0.245421 0.434783 +vt 0.263736 0.413043 +vt 0.260073 0.434783 +vt 0.260073 0.434783 +vt 0.241758 0.413043 +vt 0.245421 0.434783 +vt 0.822767 0.623747 +vt 0.822767 0.593645 +vt 0.832911 0.593645 +vt 0.832911 0.637123 +vt 0.832911 0.667225 +vt 0.822767 0.667225 +vt 0.670330 0.652174 +vt 0.626374 0.695652 +vt 0.626374 0.652174 +vt 0.626374 0.739130 +vt 0.670330 0.695652 +vt 0.670330 0.739130 +vt 0.670330 0.608696 +vt 0.626374 0.608696 +vt 0.684982 0.695652 +vt 0.684982 0.652174 +vt 0.611722 0.652174 +vt 0.611722 0.695652 +vt 0.750916 0.586957 +vt 0.772894 0.597826 +vt 0.750916 0.597826 +vt 0.772894 0.630435 +vt 0.750916 0.619565 +vt 0.772894 0.619565 +vt 0.692308 0.586957 +vt 0.728938 0.597826 +vt 0.692308 0.597826 +vt 0.728938 0.630435 +vt 0.692308 0.619565 +vt 0.728938 0.619565 +vt 0.732601 0.586957 +vt 0.732601 0.630435 +vt 0.670330 0.586957 +vt 0.677656 0.597826 +vt 0.670330 0.597826 +vt 0.677656 0.619565 +vt 0.670330 0.630435 +vt 0.670330 0.619565 +vt 0.677656 0.586957 +vt 0.677656 0.630435 +vt 0.688645 0.717391 +vt 0.699634 0.739130 +vt 0.684982 0.739130 +vt 0.688645 0.717391 +vt 0.699634 0.739130 +vt 0.684982 0.739130 +vt 0.688645 0.684783 +vt 0.695971 0.717391 +vt 0.688645 0.684783 +vt 0.695971 0.717391 +vt 0.695971 0.684783 +vt 0.692308 0.652174 +vt 0.695971 0.684783 +vt 0.692308 0.652174 +vt 0.304029 0.195652 +vt 0.274725 0.217391 +vt 0.274725 0.195652 +vt 0.304029 0.217391 +vt 0.285714 0.250000 +vt 0.278388 0.282609 +vt 0.282051 0.326087 +vt 0.274725 0.282609 +vt 0.534799 0.260870 +vt 0.652015 0.250000 +vt 0.652015 0.260870 +vt 0.534799 0.228261 +vt 0.652015 0.228261 +vt 0.531136 0.228261 +vt 0.534799 0.250000 +vt 0.531136 0.250000 +vt 0.652015 0.217391 +vt 0.534799 0.217391 +vt 0.534799 0.206522 +vt 0.652015 0.184783 +vt 0.652015 0.206522 +vt 0.534799 0.217391 +vt 0.652015 0.217391 +vt 0.652015 0.173913 +vt 0.534799 0.184783 +vt 0.534799 0.173913 +vt 0.531136 0.184783 +vt 0.531136 0.206522 +vt 0.300366 0.282609 +vt 0.296703 0.326087 +vt 0.293040 0.315217 +vt 0.282051 0.260870 +vt 0.282051 0.282609 +vt 0.296703 0.260870 +vt 0.300366 0.260870 +vt 0.296703 0.282609 +vt 0.285714 0.315217 +vt 0.366300 0.423913 +vt 0.369963 0.467391 +vt 0.366300 0.467391 +vt 0.333333 0.478261 +vt 0.336996 0.510870 +vt 0.333333 0.500000 +vt 0.369963 0.500000 +vt 0.366300 0.510870 +vt 0.336996 0.967391 +vt 0.333333 0.934783 +vt 0.369963 0.956522 +vt 0.369963 0.934783 +vt 0.304029 0.445652 +vt 0.289377 0.434783 +vt 0.304029 0.434783 +vt 0.289377 0.706522 +vt 0.304029 0.717391 +vt 0.289377 0.717391 +vt 0.285714 0.597826 +vt 0.289377 0.554348 +vt 0.289377 0.597826 +vt 0.307692 0.554348 +vt 0.304029 0.597826 +vt 0.304029 0.554348 +vt 0.307692 0.510870 +vt 0.307692 0.445652 +vt 0.289377 0.445652 +vt 0.285714 0.510870 +vt 0.285714 0.445652 +vt 0.304029 0.706522 +vt 0.307692 0.641304 +vt 0.307692 0.706522 +vt 0.285714 0.641304 +vt 0.285714 0.706522 +vt 0.307692 0.630435 +vt 0.304029 0.641304 +vt 0.285714 0.630435 +vt 0.289377 0.641304 +vt 0.307692 0.521739 +vt 0.304029 0.510870 +vt 0.285714 0.521739 +vt 0.289377 0.510870 +vt 0.915751 0.652174 +vt 0.842491 0.630435 +vt 0.842491 0.652174 +vt 0.842491 0.673913 +vt 0.967033 0.673913 +vt 0.835165 0.673913 +vt 0.842491 0.673913 +vt 0.915751 0.652174 +vt 0.967033 0.673913 +vt 0.915751 0.608696 +vt 0.901099 0.586957 +vt 0.901099 0.608696 +vt 0.945055 0.630435 +vt 0.945055 0.630435 +vt 0.058608 0.054348 +vt 0.058608 0.097826 +vt 0.058608 0.141304 +vt 0.058608 0.250000 +vt 0.058608 0.032609 +vt 0.003683 0.301335 +vt 0.001015 0.271797 +vt 0.001015 0.293420 +vt 0.000039 0.282609 +vt 0.003683 0.263883 +vt 0.010969 0.263883 +vt 0.014613 0.282609 +vt 0.013637 0.293420 +vt 0.010969 0.301335 +vt 0.315018 0.967391 +vt 0.307692 0.467391 +vt 0.329670 0.695652 +vt 0.333333 0.478261 +vt 0.329670 0.967391 +vt 0.333333 0.423913 +vt 0.329670 0.739130 +vt 0.366300 0.739130 +vt 0.366300 0.695652 +vt 0.333333 0.467391 +vt 0.622711 0.836957 +vt 0.622711 0.880435 +vt 0.622711 0.989130 +vt 0.622711 0.771739 +vt 0.622711 0.793478 +vt 0.662997 0.779660 +vt 0.659341 0.782566 +vt 0.655685 0.779660 +vt 0.652029 0.760870 +vt 0.653009 0.750021 +vt 0.655685 0.742080 +vt 0.662997 0.742080 +vt 0.665673 0.750021 +vt 0.666652 0.760870 +vt 0.183150 0.260870 +vt 0.234432 0.456522 +vt 0.241758 0.543478 +vt 0.234432 0.565217 +vt 0.043956 0.467391 +vt 0.043956 0.478261 +vt 0.728973 0.733124 +vt 0.723636 0.717287 +vt 0.721682 0.695652 +vt 0.728973 0.658180 +vt 0.736264 0.652383 +vt 0.743554 0.658180 +vt 0.750845 0.695652 +vt 0.748892 0.717287 +vt 0.743554 0.733124 +vt 0.923077 0.858696 +vt 0.901099 0.782609 +vt 0.267399 0.934783 +vt 0.813187 0.793478 +vt 0.857143 0.771739 +vt 0.871795 0.880435 +vt 0.930403 0.771739 +vt 0.996337 0.858696 +vt 0.945055 0.880435 +vt 0.278388 0.913043 +vt 0.293040 0.902174 +vt 0.274725 0.902174 +vt 0.307692 0.902174 +vt 0.608059 0.826087 +vt 0.611722 0.608696 +vt 0.531136 0.695652 +vt 0.531136 0.869565 +vt 0.531136 0.608696 +vt 0.611722 0.695652 +vt 0.608059 0.684783 +vt 0.223443 0.565217 +vt 0.197802 0.586957 +vt 0.197802 0.695652 +vt 0.278388 0.728261 +vt 0.274725 0.728261 +vt 0.282051 0.717391 +vt 0.300366 0.728261 +vt 0.293040 0.728261 +vt 0.296703 0.728261 +vt 0.307692 0.728261 +vt 0.274725 0.815217 +vt 0.307692 0.847826 +vt 0.043956 0.434783 +vt 0.915751 0.630435 +vt 0.835165 0.652174 +vt 0.915751 0.586957 +vt 0.915751 0.608696 +vt 0.842491 0.695652 +vt 0.043956 0.586957 +vt 0.197802 0.586957 +vt 0.043956 0.543478 +vt 0.208791 0.282609 +vt 0.208791 0.391304 +vt 0.772894 0.771739 +vt 0.783883 0.673913 +vt 0.816850 0.771739 +vt 0.802198 0.804348 +vt 0.868132 0.630435 +vt 0.864469 0.597826 +vt 0.860806 0.608696 +vt 0.846154 0.586957 +vt 0.846154 0.597826 +vt 0.853480 0.586957 +vt 0.842491 0.630435 +vt 0.849817 0.630435 +vt 0.820666 0.652174 +vt 0.822767 0.637123 +vt 0.827839 0.630889 +vt 0.835012 0.652174 +vt 0.827839 0.673459 +vt 0.835012 0.608696 +vt 0.832911 0.623747 +vt 0.827839 0.629981 +vt 0.820666 0.608696 +vt 0.827839 0.587410 +vt 0.300366 0.413043 +vt 0.267399 0.434783 +vt 0.241758 0.413043 +vt 0.835012 0.608696 +vt 0.832911 0.623747 +vt 0.827839 0.629981 +vt 0.820666 0.608696 +vt 0.827839 0.587410 +vt 0.820666 0.652174 +vt 0.822767 0.637123 +vt 0.827839 0.630889 +vt 0.835012 0.652174 +vt 0.827839 0.673459 +vt 0.772894 0.586957 +vt 0.750916 0.630435 +vt 0.728938 0.586957 +vt 0.692308 0.630435 +vt 0.747253 0.586957 +vt 0.747253 0.630435 +vt 0.688645 0.586957 +vt 0.688645 0.630435 +vt 0.296703 0.260870 +vt 0.293040 0.250000 +vt 0.282051 0.260870 +vt 0.304029 0.282609 +vt 0.278388 0.260870 +vt 0.369963 0.423913 +vt 0.369963 0.478261 +vt 0.333333 0.956522 +vt 0.366300 0.967391 +vt 0.285714 0.554348 +vt 0.307692 0.597826 +vt 0.307692 0.608696 +vt 0.285714 0.608696 +vt 0.307692 0.543478 +vt 0.285714 0.543478 +vt 0.915751 0.630435 +vt 0.835165 0.652174 +vt 0.842491 0.652174 +vt 0.915751 0.586957 +vt 0.915751 0.608696 +vt 0.274725 0.108696 +vt 0.274725 0.130435 +vt 0.274725 0.086957 +vt 0.274725 0.043478 +vt 0.274725 0.065217 +vt 0.274725 0.021739 +vt 0.274725 0.000000 +vt 0.274725 0.239130 +vt 0.274725 0.260870 +vt 0.274725 0.217391 +vt 0.274725 0.195652 +vt 0.274725 0.173913 +vt 0.274725 0.152174 +vt -0.000000 0.195652 +vt 0.000000 0.086957 +vt -0.000000 0.130435 +vt 0.000000 0.021739 +vt 0.000000 0.217391 +vt -0.000000 0.108696 +vt 0.000000 0.152174 +vt -0.000000 0.043478 +vt -0.000000 0.239130 +vt 0.000000 0.173913 +vt 0.000000 0.065217 +vt -0.000000 -0.000000 +vt 0.274725 0.021739 +vt 0.296703 0.000000 +vt 0.304029 0.021739 +vt 0.560440 0.521739 +vt 0.604396 0.434783 +vt 0.531136 0.434783 +vt 0.560440 0.543478 +vt 0.604396 0.586957 +vt 0.560440 0.586957 +vt 0.560440 0.521739 +vt 0.604396 0.434783 +vt 0.604396 0.521739 +vt 0.619048 0.500000 +vt 0.622711 0.413043 +vt 0.604396 0.152174 +vt 0.531136 0.173913 +vt 0.531136 0.152174 +vt 0.604396 0.543478 +vt 0.604396 0.086957 +vt 0.531136 0.108696 +vt 0.531136 0.086957 +vt 0.560440 0.608696 +vt 0.652015 0.858696 +vt 0.652015 0.902174 +vt 0.652015 0.793478 +vt 0.652015 0.989130 +vt 0.652015 0.923913 +vt 0.652015 0.815217 +vt 0.652015 0.750000 +vt 0.652015 0.945652 +vt 0.652015 0.836957 +vt 0.652015 0.880435 +vt 0.652015 0.771739 +vt 0.652015 0.967391 +vt 0.611722 0.739130 +vt 0.611722 0.934783 +vt 0.611722 0.826087 +vt 0.611722 0.869565 +vt 0.611722 0.760870 +vt 0.611722 0.956522 +vt 0.611722 0.847826 +vt 0.611722 0.891304 +vt 0.611722 0.782609 +vt 0.611722 0.978261 +vt 0.611722 0.913043 +vt 0.611722 0.804348 +vt 0.706960 0.760870 +vt 0.721612 0.782609 +vt 0.706960 0.782609 +vt 0.706960 0.673913 +vt 0.721612 0.652174 +vt 0.721612 0.673913 +vt 0.706960 0.695652 +vt 0.721612 0.695652 +vt 0.706960 0.717391 +vt 0.721612 0.739130 +vt 0.706960 0.739130 +vt 0.721612 0.717391 +vt 0.721612 0.760870 +vt 0.128205 0.739130 +vt 0.205128 0.760870 +vt 0.128205 0.760870 +vt 0.128205 0.782609 +vt 0.205128 0.804348 +vt 0.128205 0.804348 +vt 0.128205 0.717391 +vt 0.205128 0.739130 +vt 0.205128 0.782609 +vt 0.205128 0.826087 +vt 0.128205 0.826087 +vt 0.128205 0.695652 +vt 0.205128 0.717391 +vt 0.571429 0.869565 +vt 0.571429 0.847826 +vt 0.578755 0.804348 +vt 0.578755 0.673913 +vt 0.571429 0.630435 +vt 0.571429 0.608696 +vt 0.571429 0.826087 +vt 0.571429 0.652174 +vt 0.608059 0.673913 +vt 0.611722 0.695652 +vt 0.608059 0.695652 +vt 0.608059 0.804348 +vt 0.611722 0.782609 +vt 0.611722 0.804348 +vt 0.611722 0.673913 +vt 0.945055 0.608696 +vt 0.945055 0.586957 +vt 0.967033 0.608696 +vt 0.619048 0.608696 +vt 0.663004 0.586957 +vt 0.663004 0.608696 +vt 0.604396 0.108696 +vt 0.619048 0.086957 +vt 0.619048 0.108696 +vt 0.619048 0.152174 +vt 0.619048 0.543478 +vt 0.619048 0.173913 +vt 0.604396 0.173913 +vt 0.619048 0.500000 +vt 0.604396 0.608696 +vt 0.619048 0.586957 +vt 0.663004 0.521739 +vt 0.677656 0.565217 +vt 0.663004 0.565217 +vt 0.619048 0.521739 +vt 0.663004 0.543478 +vt 0.619048 0.413043 +vt 0.663004 0.456522 +vt 0.648352 0.152174 +vt 0.648352 0.086957 +vt 0.648352 0.108696 +vt 0.648352 0.173913 +vt 0.663004 0.456522 +vt 0.648352 0.369565 +vt 0.677656 0.586957 +vt 0.663004 0.586957 +vt 0.677656 0.500000 +vt 0.677656 0.521739 +vt 0.706960 0.565217 +vt 0.706960 0.586957 +vt 0.706960 0.500000 +vt 0.706960 0.521739 +vt 0.956044 0.565217 +vt 0.956044 0.586957 +vt 0.956044 0.521739 +vt 0.699634 0.152174 +vt 0.699634 0.086957 +vt 0.699634 0.108696 +vt 0.699634 0.173913 +vt 0.684982 0.021739 +vt 0.736264 0.065217 +vt 0.684982 0.065217 +vt 0.684982 -0.000000 +vt 0.736264 0.021739 +vt 0.684982 0.086957 +vt 0.736264 0.086957 +vt 0.794872 0.065217 +vt 0.794872 0.000000 +vt 0.794872 0.021739 +vt 0.794872 0.086957 +vt 0.934066 0.065217 +vt 0.934066 -0.000000 +vt 0.934066 0.021739 +vt 0.934066 0.086957 +vt 0.963370 0.065217 +vt 0.963370 0.021739 +vt 0.963370 0.086957 +vt 0.992674 0.065217 +vt 0.978022 0.108696 +vt 0.978022 0.065217 +vt 1.000000 0.097826 +vt 0.992674 0.108696 +vt 0.970696 0.097826 +vt 0.970696 0.076087 +vt 0.978022 0.456522 +vt 1.000000 0.108696 +vt 0.992674 0.456522 +vt 0.970696 0.456522 +vt 0.970696 0.108696 +vt 0.677656 0.478261 +vt 0.736264 0.260870 +vt 0.684982 0.217391 +vt 0.648352 0.369565 +vt 0.970696 0.467391 +vt 0.978022 0.521739 +vt 0.970696 0.510870 +vt 0.992674 0.521739 +vt 1.000000 0.467391 +vt 1.000000 0.510870 +vt 0.956044 0.500000 +vt 0.736264 0.260870 +vt 0.677656 0.478261 +vt 0.794872 0.239130 +vt 0.970696 0.108696 +vt 0.956044 0.500000 +vt 0.970696 0.456522 +vt 0.706960 0.500000 +vt 0.794872 0.239130 +vt 0.934066 0.086957 +vt 0.684982 0.217391 +vt 0.820513 0.739130 +vt 0.824176 0.750000 +vt 0.820513 0.750000 +vt 0.820513 0.728261 +vt 0.824176 0.739130 +vt 0.835165 0.586957 +vt 0.835165 0.608696 +vt 0.820513 0.717391 +vt 0.824176 0.728261 +vt 0.820513 0.706522 +vt 0.824176 0.717391 +vt 0.820513 0.695652 +vt 0.824176 0.706522 +vt 0.835165 0.619565 +vt 0.820513 0.684783 +vt 0.824176 0.695652 +vt 0.835165 0.630435 +vt 0.820513 0.673913 +vt 0.824176 0.684783 +vt 0.824176 0.760870 +vt 0.820513 0.760870 +vt 0.820513 0.739130 +vt 0.816850 0.717391 +vt 0.820513 0.717391 +vt 0.820513 0.760870 +vt 0.816850 0.739130 +vt 0.820513 0.673913 +vt 0.816850 0.652174 +vt 0.820513 0.652174 +vt 0.816850 0.630435 +vt 0.820513 0.630435 +vt 0.820513 0.608696 +vt 0.816850 0.586957 +vt 0.820513 0.586957 +vt 0.816850 0.608696 +vt 0.820513 0.695652 +vt 0.816850 0.673913 +vt 0.816850 0.695652 +vt 0.820513 0.717391 +vt 0.816850 0.695652 +vt 0.820513 0.695652 +vt 0.816850 0.673913 +vt 0.820513 0.673913 +vt 0.820513 0.630435 +vt 0.816850 0.608696 +vt 0.820513 0.608696 +vt 0.816850 0.586957 +vt 0.820513 0.586957 +vt 0.820513 0.652174 +vt 0.816850 0.630435 +vt 0.816850 0.652174 +vt 0.820513 0.760870 +vt 0.816850 0.739130 +vt 0.820513 0.739130 +vt 0.816850 0.717391 +vt 0.750916 0.652174 +vt 0.692308 0.652174 +vt 0.688645 0.652174 +vt 0.670330 0.652174 +vt 0.732601 0.652174 +vt 0.747253 0.652174 +vt 0.699634 0.717391 +vt 0.706960 0.739130 +vt 0.706960 0.717391 +vt 0.706960 0.739130 +vt 0.699634 0.717391 +vt 0.706960 0.684783 +vt 0.699634 0.684783 +vt 0.706960 0.717391 +vt 0.706960 0.652174 +vt 0.699634 0.652174 +vt 0.699634 0.652174 +vt 0.699634 0.684783 +vt 0.304029 0.086957 +vt 0.274725 0.086957 +vt 0.304029 0.043478 +vt 0.531136 0.065217 +vt 0.406593 0.086957 +vt 0.406593 0.065217 +vt 0.318681 0.021739 +vt 0.369963 0.065217 +vt 0.318681 0.065217 +vt 0.369963 0.021739 +vt 0.355311 0.250000 +vt 0.523810 0.260870 +vt 0.355311 0.260870 +vt 0.406593 0.021739 +vt 0.406593 0.206522 +vt 0.523810 0.206522 +vt 0.523810 0.250000 +vt 0.523810 0.293478 +vt 0.523810 0.336957 +vt 0.406593 0.336957 +vt 0.355311 0.184783 +vt 0.406593 0.184783 +vt 0.355311 0.336957 +vt 0.406593 0.358696 +vt 0.355311 0.358696 +vt 0.369963 0.000000 +vt 0.369963 0.086957 +vt 0.355311 0.282609 +vt 0.355311 0.293478 +vt 0.523810 0.282609 +vt 0.531136 -0.000000 +vt 0.531136 0.021739 +vt 0.406593 -0.000000 +vt 0.311355 0.086957 +vt 0.523810 0.184783 +vt 0.406593 0.456522 +vt 0.369963 0.423913 +vt 0.318681 0.184783 +vt 0.304029 0.141304 +vt 0.274725 0.043478 +vt 0.311355 0.423913 +vt 0.311355 0.119565 +vt 0.369963 0.119565 +vt 0.304029 0.402174 +vt 0.318681 0.358696 +vt 0.945055 0.608696 +vt 0.967033 0.608696 +vt 0.945055 0.586957 +vt -0.000000 0.206522 +vt 0.000000 0.097826 +vt -0.000000 0.141304 +vt 0.000000 0.032609 +vt 0.000000 0.228261 +vt -0.000000 0.119565 +vt 0.000000 0.163043 +vt -0.000000 0.054348 +vt -0.000000 0.250000 +vt 0.000000 0.184783 +vt 0.000000 0.076087 +vt -0.000000 0.010870 +vt 0.282051 0.000000 +vt 0.604396 0.521739 +vt 0.531136 0.434783 +vt 0.652015 0.847826 +vt 0.652015 0.891304 +vt 0.652015 0.782609 +vt 0.652015 0.978261 +vt 0.652015 0.913043 +vt 0.652015 0.804348 +vt 0.652015 0.739130 +vt 0.652015 0.934783 +vt 0.652015 0.826087 +vt 0.652015 0.869565 +vt 0.652015 0.760870 +vt 0.652015 0.956522 +vt 0.611722 1.000000 +vt 0.706960 0.652174 +vt 0.205128 0.695652 +vt 0.608059 0.782609 +vt 0.967033 0.586957 +vt 0.663004 0.521739 +vt 0.663004 0.500000 +vt 0.736264 -0.000000 +vt 0.963370 -0.000000 +vt 1.000000 0.076087 +vt 1.000000 0.456522 +vt 0.963370 0.086957 +vt 0.824176 0.673913 +vt 0.816850 0.760870 +vt 0.816850 0.760870 +vt 0.772894 0.652174 +vt 0.728938 0.652174 +vt 0.677656 0.652174 +vt 0.706960 0.684783 +vt 0.706960 0.652174 +vt 0.531136 0.086957 +vt 0.355311 0.206522 +vt 0.311355 -0.000000 +vt 0.531136 0.119565 +vt 0.523810 0.358696 +vt 0.531136 0.423913 +vt 0.531136 0.456522 +vt 0.967033 0.586957 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 1.0000 0.0000 +vn -0.9285 0.3714 0.0000 +vn -0.9301 -0.3673 0.0000 +vn 0.9301 0.3673 0.0000 +vn 0.9285 -0.3714 0.0000 +vn 0.0000 -0.0203 0.9998 +vn 0.0000 0.0203 -0.9998 +vn 0.9701 0.2425 0.0000 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 0.4472 0.8944 +vn -0.9701 0.2425 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 -0.4472 -0.8944 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9701 0.2425 +vn -0.8944 0.4472 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.0000 0.8321 -0.5547 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.9637 0.2669 0.0000 +vn -0.8575 0.5145 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9637 0.2669 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.8575 0.5145 0.0000 +vn -0.9523 0.3051 0.0000 +vn -0.9414 -0.3297 0.0706 +vn -0.8629 -0.5054 0.0000 +vn -0.3595 0.9099 -0.2070 +vn 0.9523 0.3051 0.0000 +vn 0.9414 -0.3297 0.0706 +vn 0.8994 0.4225 -0.1123 +vn -0.9232 0.3569 -0.1429 +vn -0.9129 -0.3651 0.1826 +vn 0.3954 -0.8912 0.2222 +vn 0.8629 -0.5054 0.0000 +vn 0.3595 0.9099 -0.2070 +vn -0.9659 0.2588 0.0000 +vn 0.9659 0.2588 0.0000 +vn 0.9988 -0.0483 0.0000 +vn -0.9988 -0.0483 0.0000 +vn 0.9864 0.1644 0.0000 +vn -0.9915 0.1299 0.0000 +vn -0.7768 0.6297 0.0000 +vn 0.9915 0.1299 0.0000 +vn -0.8911 -0.4538 0.0000 +vn 0.8911 -0.4538 0.0000 +vn -0.9864 0.1644 0.0000 +vn 0.0447 -0.7380 -0.6733 +vn 0.2869 -0.6590 -0.6953 +vn 0.3536 -0.6124 -0.7071 +vn -0.0000 -0.7689 -0.6394 +vn -0.2869 -0.6590 -0.6953 +vn -0.0000 -0.8000 -0.6000 +vn 0.3535 -0.6124 -0.7071 +vn -0.3057 -0.7078 -0.6369 +vn -0.0407 -0.7592 -0.6496 +vn 0.7768 0.6297 0.0000 +vn 0.9701 0.0000 -0.2425 +vn 0.9145 0.0000 -0.4046 +vn 0.8321 0.0000 -0.5547 +vn -0.3952 0.8715 -0.2905 +vn -0.9552 0.2954 0.0181 +vn -0.3954 -0.8912 0.2222 +vn -0.3568 -0.8355 0.4178 +vn 0.3568 -0.8355 0.4178 +vn 0.3688 0.8568 -0.3605 +vn 0.9129 -0.3651 0.1826 +vn 0.9232 0.3569 -0.1429 +vn -0.8994 0.4225 -0.1123 +vn -0.3688 0.8568 -0.3605 +vn 0.3897 0.8237 0.4119 +vn -0.3607 0.8769 0.3178 +vn -0.3897 0.8237 0.4119 +vn 0.3952 0.8715 -0.2905 +vn 0.9552 0.2954 0.0181 +vn 0.3163 -0.6961 0.6445 +vn -0.9268 -0.3007 0.2251 +vn -0.3163 -0.6961 0.6445 +vn 0.9268 -0.3007 0.2251 +vn -0.9066 0.3929 0.1537 +vn 0.9066 0.3929 0.1537 +vn 0.3607 0.8769 0.3178 +vn -0.3711 0.9219 0.1112 +vn -0.9123 0.4062 0.0530 +vn 0.9123 0.4062 0.0530 +vn 0.3711 0.9219 0.1112 +vn -0.3416 0.8756 -0.3416 +vn -0.8727 0.4330 -0.2257 +vn 0.3416 0.8756 -0.3416 +vn 0.1967 -0.5699 0.7978 +vn -0.8515 -0.4669 0.2386 +vn -0.1967 -0.5699 0.7978 +vn 0.8515 -0.4669 0.2386 +vn -0.3487 -0.9012 -0.2575 +vn 0.4002 -0.9135 -0.0737 +vn 0.3487 -0.9012 -0.2575 +vn -0.4002 -0.9135 -0.0737 +vn 0.9405 -0.3390 -0.0241 +vn 0.3851 -0.8955 0.2233 +vn -0.9313 -0.3548 0.0821 +vn -0.3851 -0.8955 0.2233 +vn 0.9313 -0.3548 0.0821 +vn 0.3654 -0.9172 0.1589 +vn -0.9063 -0.4149 0.0807 +vn -0.3654 -0.9172 0.1589 +vn 0.9063 -0.4149 0.0807 +vn 0.3416 -0.8756 -0.3416 +vn -0.3416 -0.8756 -0.3416 +vn 0.8727 -0.4330 -0.2257 +vn 0.3416 -0.3416 -0.8756 +vn -0.8727 -0.2257 -0.4330 +vn -0.3416 -0.3416 -0.8756 +vn 0.8727 -0.2257 -0.4330 +vn 0.3416 0.3416 -0.8756 +vn -0.3416 0.3416 -0.8756 +vn 0.8727 0.2257 -0.4330 +vn -0.9405 -0.3390 -0.0241 +vn 0.8727 0.4330 -0.2257 +vn -0.8727 0.2257 -0.4330 +vn -0.9808 0.1951 0.0000 +vn 0.9808 0.1951 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.5847 0.8112 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.5847 -0.8112 +vn 0.0000 -0.2298 0.9732 +vn 0.0000 -0.2298 -0.9732 +vn 0.0000 0.1602 0.9871 +vn 0.0000 -0.8507 0.5257 +vn 0.9098 -0.4101 0.0646 +vn 0.3687 -0.9202 0.1318 +vn -0.4444 -0.8959 0.0000 +vn 0.3928 -0.9093 0.1377 +vn 0.4444 -0.8959 0.0000 +vn -0.3928 -0.9093 0.1377 +vn -0.3687 -0.9202 0.1318 +vn 0.9522 0.3054 0.0000 +vn -0.9522 0.3054 0.0000 +vn -0.9732 0.2298 0.0000 +vn -0.9354 -0.3503 0.0483 +vn 0.9354 -0.3503 0.0483 +vn -0.9098 -0.4101 0.0646 +vn 0.9761 -0.2175 0.0000 +vn -0.9761 -0.2175 0.0000 +vn -0.9145 0.0000 -0.4046 +vn -0.9701 0.0000 -0.2425 +vn -0.8321 0.0000 -0.5547 +vn -0.3536 -0.6124 -0.7071 +vn -0.4000 -0.6928 -0.6000 +vn -0.8727 -0.4330 -0.2257 +vn 0.9732 0.2298 0.0000 +s off +f 194/289/82 219/290/82 196/291/82 +f 194/289/82 221/292/82 220/293/82 +f 190/294/82 221/295/82 192/296/82 +f 190/294/82 211/297/82 222/298/82 +f 210/299/82 211/300/82 188/301/82 +f 210/299/82 213/302/82 212/303/82 +f 208/304/82 214/305/82 213/306/82 +f 206/307/82 215/308/82 214/309/82 +f 204/310/82 216/311/82 215/312/82 +f 200/313/82 216/314/82 202/315/82 +f 200/316/82 218/317/82 217/318/82 +f 196/291/82 218/319/82 198/320/82 +f 229/321/82 231/322/82 224/323/82 +f 246/324/82 241/325/82 367/326/82 +f 239/327/82 258/328/82 370/329/82 +f 238/330/82 241/331/82 236/332/82 +f 265/333/83 255/334/83 264/335/83 +f 237/336/83 267/337/83 256/338/83 +f 242/339/83 244/340/83 263/341/83 +f 290/342/83 278/343/83 281/344/83 +f 235/345/83 240/346/83 237/336/83 +f 369/347/82 257/348/82 254/349/82 +f 269/350/82 251/351/82 253/352/82 +f 247/353/83 260/354/83 259/355/83 +f 369/356/82 252/357/82 268/358/82 +f 244/340/83 262/359/83 263/360/83 +f 243/361/83 261/362/83 262/359/83 +f 370/363/82 257/348/82 368/364/82 +f 269/365/82 245/366/82 270/367/82 +f 248/368/83 265/369/83 260/354/83 +f 367/370/82 245/366/82 246/324/82 +f 271/371/82 288/372/82 273/373/82 +f 277/374/82 294/375/82 279/376/82 +f 272/377/82 293/378/82 277/374/82 +f 298/379/83 285/380/83 286/381/83 +f 284/382/83 298/379/83 286/381/83 +f 276/383/82 294/375/82 292/384/82 +f 297/385/83 280/386/83 285/380/83 +f 301/387/83 283/388/83 282/389/83 +f 275/390/82 299/391/82 274/392/82 +f 302/393/83 284/394/83 283/388/83 +f 276/395/82 300/396/82 275/390/82 +f 280/397/83 290/342/83 281/344/83 +f 272/398/82 288/372/82 291/399/82 +f 904/400/82 901/401/82 906/402/82 +f 329/403/83 341/404/83 340/405/83 +f 319/406/83 341/404/83 330/407/83 +f 319/408/83 331/409/83 342/410/83 +f 321/411/83 331/409/83 320/412/83 +f 322/413/83 332/414/83 321/415/83 +f 323/416/83 333/417/83 322/418/83 +f 324/419/83 334/420/83 323/421/83 +f 324/422/83 336/423/83 335/424/83 +f 326/425/83 336/426/83 325/427/83 +f 326/428/83 338/429/83 337/430/83 +f 327/431/83 339/432/83 338/429/83 +f 329/433/83 339/432/83 328/434/83 +f 255/334/83 267/435/83 264/335/83 +f 268/358/82 251/351/82 266/436/82 +f 261/437/83 247/353/83 259/355/83 +f 353/438/83 349/439/83 345/440/83 +f 379/441/84 387/442/84 378/443/84 +f 377/444/85 385/445/85 376/446/85 +f 375/447/86 383/448/86 374/449/86 +f 378/443/87 386/450/87 377/451/87 +f 376/446/88 384/452/88 375/447/88 +f 388/453/83 383/454/83 385/455/83 +f 383/454/89 701/456/89 700/457/89 +f 700/457/83 382/458/83 372/459/83 +f 374/460/82 392/461/82 375/462/82 +f 373/463/90 391/464/90 374/460/90 +f 371/465/82 390/466/82 373/463/82 +f 380/467/82 396/468/82 381/469/82 +f 379/470/90 395/471/90 380/467/90 +f 379/470/82 393/472/82 394/473/82 +f 376/474/82 398/475/82 377/476/82 +f 398/475/82 378/477/82 377/476/82 +f 375/462/82 397/478/82 376/474/82 +f 371/465/91 372/459/91 401/479/91 +f 372/459/91 402/480/91 401/479/91 +f 407/481/82 411/482/82 403/483/82 +f 460/484/83 480/485/83 461/486/83 +f 459/487/83 481/488/83 460/484/83 +f 458/489/83 482/490/83 459/487/83 +f 458/489/83 484/491/83 483/492/83 +f 457/493/83 485/494/83 484/491/83 +f 456/495/83 486/496/83 485/494/83 +f 437/497/82 479/498/82 436/499/82 +f 438/500/82 478/501/82 437/497/82 +f 439/502/82 477/503/82 438/500/82 +f 475/504/82 439/502/82 440/505/82 +f 474/506/82 440/505/82 441/507/82 +f 473/508/82 441/507/82 442/509/82 +f 473/508/82 469/510/82 467/511/82 +f 467/512/92 498/513/92 466/514/92 +f 470/515/83 480/485/83 466/516/83 +f 471/517/93 494/518/93 472/519/93 +f 486/496/83 472/519/83 465/520/83 +f 471/517/82 479/498/82 468/521/82 +f 511/522/82 502/523/82 509/524/82 +f 497/525/91 495/526/91 496/527/91 +f 499/528/91 493/529/91 500/530/91 +f 470/515/83 498/531/83 497/525/83 +f 468/532/94 499/528/94 500/530/94 +f 470/515/95 496/527/95 469/510/95 +f 471/517/96 500/533/96 493/529/96 +f 472/519/97 499/534/97 465/520/97 +f 469/510/82 495/535/82 467/511/82 +f 509/536/84 504/537/84 510/538/84 +f 512/539/91 509/524/91 510/540/91 +f 509/541/82 502/542/82 473/508/82 +f 504/537/91 467/512/91 466/514/91 +f 510/543/83 504/544/83 466/516/83 +f 507/545/83 510/540/83 501/546/83 +f 511/547/82 505/548/82 468/521/82 +f 511/549/86 508/550/86 505/551/86 +f 512/552/83 507/553/83 486/496/83 +f 505/551/91 465/554/91 468/532/91 +f 517/555/98 524/556/98 520/557/98 +f 515/558/84 518/559/84 516/560/84 +f 514/561/86 520/557/86 513/562/86 +f 516/560/83 517/555/83 514/561/83 +f 513/562/82 519/563/82 515/564/82 +f 522/565/91 524/556/91 521/566/91 +f 518/559/99 521/567/99 517/555/99 +f 520/557/100 523/568/100 519/563/100 +f 519/569/101 522/570/101 518/559/101 +f 489/571/83 531/572/83 530/573/83 +f 488/574/83 530/573/83 529/575/83 +f 488/576/83 528/577/83 487/578/83 +f 487/578/83 527/579/83 464/580/83 +f 453/581/82 537/582/82 452/583/82 +f 535/584/82 453/581/82 454/585/82 +f 534/586/82 454/585/82 443/587/82 +f 444/588/82 534/586/82 443/587/82 +f 445/589/82 545/590/82 444/588/82 +f 446/591/82 544/592/82 445/589/82 +f 447/593/82 543/594/82 446/591/82 +f 448/595/82 542/596/82 447/593/82 +f 449/597/82 541/598/82 448/595/82 +f 539/599/82 449/600/82 450/601/82 +f 538/602/82 450/601/82 451/603/82 +f 537/582/82 451/603/82 452/583/82 +f 548/604/83 551/605/83 547/606/83 +f 547/606/83 552/607/83 546/608/83 +f 550/609/83 552/607/83 554/610/83 +f 549/611/83 554/610/83 555/612/83 +f 492/613/102 555/614/102 533/615/102 +f 525/616/103 548/604/103 462/617/103 +f 561/618/83 566/619/83 565/620/83 +f 561/618/83 564/621/83 562/622/83 +f 562/622/83 563/623/83 556/624/83 +f 557/625/83 563/623/83 569/626/83 +f 558/627/83 569/626/83 568/628/83 +f 559/629/83 568/628/83 567/630/83 +f 575/631/82 580/632/82 574/633/82 +f 577/634/82 575/631/82 576/635/82 +f 578/636/82 576/635/82 571/637/82 +f 570/638/82 578/636/82 571/637/82 +f 572/639/82 583/640/82 570/638/82 +f 573/641/82 582/642/82 572/639/82 +f 602/643/104 604/644/104 600/645/104 +f 590/646/104 592/647/104 588/648/104 +f 587/649/83 589/650/83 591/651/83 +f 584/652/86 589/650/86 585/653/86 +f 586/654/82 588/648/82 584/652/82 +f 587/649/84 590/655/84 586/656/84 +f 592/657/85 595/658/85 593/659/85 +f 591/651/84 594/660/84 590/655/84 +f 589/650/105 595/661/105 591/651/105 +f 588/648/86 593/659/86 589/650/86 +f 597/662/83 603/663/83 599/664/83 +f 596/665/86 601/666/86 597/662/86 +f 596/667/82 602/643/82 600/645/82 +f 599/664/84 602/643/84 598/668/84 +f 604/669/85 607/670/85 605/671/85 +f 603/663/84 606/672/84 602/643/84 +f 601/666/105 607/673/105 603/663/105 +f 600/674/86 605/675/86 601/666/86 +f 609/676/84 610/677/84 608/678/84 +f 611/679/83 614/680/83 610/681/83 +f 615/682/86 612/683/86 614/684/86 +f 613/685/82 608/678/82 612/683/82 +f 614/680/85 608/686/85 610/681/85 +f 611/679/91 613/685/91 615/687/91 +f 383/448/86 700/688/86 372/459/86 +f 620/689/86 623/690/86 621/691/86 +f 616/692/91 623/690/91 618/693/91 +f 617/694/82 621/691/82 616/692/82 +f 617/695/85 622/696/85 620/697/85 +f 622/698/82 625/699/82 623/700/82 +f 626/701/85 622/696/85 619/702/85 +f 623/690/91 627/703/91 618/693/91 +f 628/704/82 631/705/82 629/706/82 +f 635/707/83 632/708/83 633/709/83 +f 631/705/84 633/710/84 629/711/84 +f 628/712/106 634/713/106 630/714/106 +f 631/705/91 634/713/91 635/707/91 +f 639/715/82 636/716/82 637/717/82 +f 640/718/83 643/719/83 641/720/83 +f 641/721/86 639/715/86 637/722/86 +f 642/723/107 636/724/107 638/725/107 +f 639/715/91 642/723/91 638/726/91 +f 379/441/84 382/458/84 388/727/84 +f 396/468/91 402/480/91 381/469/91 +f 708/728/108 710/729/108 712/730/108 +f 702/731/86 708/728/86 704/732/86 +f 717/733/85 714/734/85 715/735/85 +f 705/736/84 707/737/84 703/738/84 +f 703/739/83 706/740/83 702/741/83 +f 713/742/91 710/729/91 711/743/91 +f 709/744/109 711/743/109 707/737/109 +f 707/737/110 710/729/110 706/740/110 +f 705/745/82 704/746/82 712/730/82 +f 720/747/91 723/748/91 721/749/91 +f 716/750/86 718/751/86 714/734/86 +f 723/752/83 724/753/83 716/750/83 +f 720/747/82 719/754/82 715/735/82 +f 716/750/83 721/755/83 723/752/83 +f 719/756/84 717/733/84 715/735/84 +f 720/757/111 725/758/111 719/759/111 +f 721/749/86 726/760/86 720/747/86 +f 718/761/111 727/762/111 722/763/111 +f 723/748/84 722/764/84 727/765/84 +f 725/758/83 721/755/83 717/733/83 +f 733/766/82 742/767/82 741/768/82 +f 728/769/82 736/770/82 735/771/82 +f 728/772/82 742/767/82 734/773/82 +f 744/774/82 740/775/82 732/776/82 +f 743/777/82 738/778/82 730/779/82 +f 730/779/82 736/770/82 729/780/82 +f 755/781/83 748/782/83 759/783/83 +f 747/784/83 752/785/83 753/786/83 +f 757/787/83 748/782/83 756/788/83 +f 757/787/83 745/789/83 749/790/83 +f 745/791/83 751/792/83 746/793/83 +f 751/792/83 747/784/83 746/793/83 +f 773/794/84 768/795/84 770/796/84 +f 783/797/86 779/798/86 777/799/86 +f 767/800/112 761/801/112 765/802/112 +f 766/803/113 760/804/113 762/805/113 +f 766/806/114 763/807/114 767/808/114 +f 765/809/100 760/810/100 764/811/100 +f 784/812/86 788/813/86 790/814/86 +f 794/815/84 799/816/84 797/817/84 +f 804/818/85 806/819/85 805/820/85 +f 801/821/86 807/822/86 803/823/86 +f 802/824/84 805/820/84 800/825/84 +f 803/826/83 804/818/83 802/827/83 +f 800/828/82 806/819/82 801/829/82 +f 822/830/84 808/831/84 810/832/84 +f 821/833/86 811/834/86 809/835/86 +f 826/836/84 812/837/84 814/838/84 +f 825/839/86 815/840/86 813/841/86 +f 824/842/84 810/832/84 812/837/84 +f 811/834/86 825/843/86 813/841/86 +f 830/844/84 816/845/84 818/846/84 +f 817/847/86 831/848/86 819/849/86 +f 828/850/84 814/838/84 816/845/84 +f 815/840/86 829/851/86 817/847/86 +f 839/852/86 833/853/86 835/854/86 +f 836/855/84 834/856/84 832/857/84 +f 840/858/84 838/859/84 836/855/84 +f 843/860/86 837/861/86 839/852/86 +f 841/862/86 843/860/86 845/863/86 +f 842/864/84 840/858/84 844/865/84 +f 847/866/82 864/867/82 846/868/82 +f 864/867/82 865/869/82 878/870/82 +f 885/871/83 867/872/83 869/873/83 +f 861/874/91 883/875/91 873/876/91 +f 883/875/84 877/877/84 880/878/84 +f 871/879/83 882/880/83 861/881/83 +f 868/882/85 877/877/85 871/883/85 +f 884/884/86 887/885/86 885/886/86 +f 870/887/85 885/886/85 869/888/85 +f 872/889/91 886/890/91 860/891/91 +f 860/892/83 884/884/83 870/893/83 +f 880/894/83 866/895/83 881/896/83 +f 885/871/83 888/897/83 889/898/83 +f 880/894/83 891/899/83 883/900/83 +f 890/901/83 881/896/83 879/902/83 +f 907/903/83 902/904/83 905/905/83 +f 903/906/82 287/907/82 271/908/82 +f 905/905/83 278/909/83 289/910/83 +f 906/911/82 274/912/82 299/391/82 +f 900/913/83 301/387/83 282/914/83 +f 913/915/91 908/916/91 910/917/91 +f 914/918/91 911/919/91 909/920/91 +f 926/921/82 920/922/82 922/923/82 +f 925/924/83 923/925/83 921/926/83 +f 930/927/83 913/915/83 910/928/83 +f 912/929/82 928/930/82 908/931/82 +f 915/932/83 931/933/83 911/934/83 +f 929/935/82 914/918/82 909/936/82 +f 923/925/83 931/937/83 919/938/83 +f 929/939/82 922/923/82 918/940/82 +f 930/941/83 921/926/83 917/942/83 +f 920/922/82 928/943/82 916/944/82 +f 939/945/84 936/946/84 937/947/84 +f 939/945/91 932/948/91 934/949/91 +f 937/947/82 933/950/82 932/948/82 +f 933/951/85 938/952/85 935/953/85 +f 941/954/82 938/955/82 939/956/82 +f 938/952/85 942/957/85 935/953/85 +f 939/945/91 943/958/91 941/954/91 +f 194/289/82 220/959/82 219/290/82 +f 194/289/82 192/296/82 221/292/82 +f 190/294/82 222/960/82 221/295/82 +f 190/294/82 188/301/82 211/297/82 +f 210/299/82 212/961/82 211/300/82 +f 210/299/82 208/304/82 213/302/82 +f 208/304/82 206/307/82 214/305/82 +f 206/307/82 204/310/82 215/308/82 +f 204/310/82 202/315/82 216/311/82 +f 200/313/82 217/962/82 216/314/82 +f 200/316/82 198/320/82 218/317/82 +f 196/291/82 219/963/82 218/319/82 +f 224/323/82 223/964/82 227/965/82 +f 223/964/82 225/966/82 227/965/82 +f 225/966/82 226/967/82 227/965/82 +f 227/965/82 228/968/82 229/321/82 +f 229/321/82 230/969/82 231/322/82 +f 231/322/82 232/970/82 233/971/82 +f 233/971/82 234/972/82 231/322/82 +f 234/972/82 224/323/82 231/322/82 +f 227/965/82 229/321/82 224/323/82 +f 246/324/82 236/973/82 241/325/82 +f 239/327/82 238/330/82 258/328/82 +f 238/330/82 239/974/82 241/331/82 +f 265/333/83 250/975/83 255/334/83 +f 237/336/83 240/976/83 267/337/83 +f 242/339/83 235/977/83 244/340/83 +f 290/342/83 289/910/83 278/343/83 +f 235/345/83 242/978/83 240/346/83 +f 369/347/82 368/364/82 257/348/82 +f 269/350/82 266/436/82 251/351/82 +f 247/353/83 248/368/83 260/354/83 +f 369/356/82 254/349/82 252/357/82 +f 244/340/83 243/361/83 262/359/83 +f 243/361/83 249/979/83 261/362/83 +f 370/363/82 258/328/82 257/348/82 +f 269/365/82 253/352/82 245/366/82 +f 248/368/83 250/975/83 265/369/83 +f 367/370/82 270/367/82 245/366/82 +f 271/371/82 287/907/82 288/372/82 +f 277/374/82 293/378/82 294/375/82 +f 272/377/82 291/399/82 293/378/82 +f 298/379/83 297/385/83 285/380/83 +f 284/382/83 296/980/83 298/379/83 +f 276/383/82 279/376/82 294/375/82 +f 297/385/83 295/981/83 280/386/83 +f 301/387/83 302/393/83 283/388/83 +f 275/390/82 300/396/82 299/391/82 +f 302/393/83 296/980/83 284/394/83 +f 276/395/82 292/384/82 300/396/82 +f 280/397/83 295/981/83 290/342/83 +f 272/398/82 273/373/82 288/372/82 +f 904/400/82 903/982/82 901/401/82 +f 329/403/83 330/983/83 341/404/83 +f 319/406/83 342/410/83 341/404/83 +f 319/408/83 320/984/83 331/409/83 +f 321/411/83 332/414/83 331/409/83 +f 322/413/83 333/417/83 332/414/83 +f 323/416/83 334/420/83 333/417/83 +f 324/419/83 335/424/83 334/420/83 +f 324/422/83 325/985/83 336/423/83 +f 326/425/83 337/430/83 336/426/83 +f 326/428/83 327/986/83 338/429/83 +f 327/431/83 328/987/83 339/432/83 +f 329/433/83 340/405/83 339/432/83 +f 255/334/83 256/338/83 267/435/83 +f 268/358/82 252/357/82 251/351/82 +f 261/437/83 249/979/83 247/353/83 +f 345/440/83 344/988/83 343/989/83 +f 343/989/83 354/990/83 345/440/83 +f 354/990/83 353/438/83 345/440/83 +f 353/438/83 352/991/83 349/439/83 +f 352/991/83 351/992/83 349/439/83 +f 351/992/83 350/993/83 349/439/83 +f 349/439/83 348/994/83 347/995/83 +f 347/995/83 346/996/83 349/439/83 +f 346/996/83 345/440/83 349/439/83 +f 379/441/84 388/727/84 387/442/84 +f 377/444/85 386/997/85 385/445/85 +f 375/447/86 384/452/86 383/448/86 +f 378/443/87 387/442/87 386/450/87 +f 376/446/88 385/445/88 384/452/88 +f 383/454/83 384/998/83 385/455/83 +f 385/455/83 386/999/83 388/453/83 +f 386/999/83 387/1000/83 388/453/83 +f 383/454/89 388/453/89 701/456/89 +f 700/457/83 701/456/83 382/458/83 +f 374/460/82 391/464/82 392/461/82 +f 373/463/90 390/466/90 391/464/90 +f 371/465/82 389/1001/82 390/466/82 +f 380/467/82 395/471/82 396/468/82 +f 379/470/90 394/473/90 395/471/90 +f 379/470/82 378/477/82 393/472/82 +f 376/474/82 397/478/82 398/475/82 +f 398/475/82 393/472/82 378/477/82 +f 375/462/82 392/461/82 397/478/82 +f 399/1002/91 389/1001/91 401/479/91 +f 389/1001/91 371/465/91 401/479/91 +f 372/459/91 382/458/91 402/480/91 +f 403/483/82 404/1003/82 407/481/82 +f 404/1003/82 405/1004/82 407/481/82 +f 405/1004/82 406/1005/82 407/481/82 +f 407/481/82 408/1006/82 409/1007/82 +f 409/1007/82 410/1008/82 411/482/82 +f 411/482/82 412/1009/82 413/1010/82 +f 413/1010/82 414/1011/82 411/482/82 +f 414/1011/82 403/483/82 411/482/82 +f 407/481/82 409/1007/82 411/482/82 +f 460/484/83 481/488/83 480/485/83 +f 459/487/83 482/490/83 481/488/83 +f 458/489/83 483/492/83 482/490/83 +f 458/489/83 457/493/83 484/491/83 +f 457/493/83 456/495/83 485/494/83 +f 456/495/83 455/1012/83 486/496/83 +f 437/497/82 478/501/82 479/498/82 +f 438/500/82 477/503/82 478/501/82 +f 439/502/82 476/1013/82 477/503/82 +f 475/504/82 476/1013/82 439/502/82 +f 474/506/82 475/504/82 440/505/82 +f 473/508/82 474/506/82 441/507/82 +f 473/508/82 442/509/82 469/510/82 +f 467/512/92 495/526/92 498/513/92 +f 470/515/83 461/486/83 480/485/83 +f 471/517/93 493/529/93 494/518/93 +f 486/496/83 455/1012/83 472/519/83 +f 471/517/82 436/499/82 479/498/82 +f 511/522/82 506/1014/82 502/523/82 +f 497/525/91 498/513/91 495/526/91 +f 499/528/91 494/518/91 493/529/91 +f 470/515/83 466/516/83 498/531/83 +f 468/532/94 465/554/94 499/528/94 +f 470/515/95 497/525/95 496/527/95 +f 471/517/96 468/521/96 500/533/96 +f 472/519/97 494/518/97 499/534/97 +f 469/510/82 496/527/82 495/535/82 +f 509/536/84 503/1015/84 504/537/84 +f 512/539/91 511/522/91 509/524/91 +f 473/508/82 467/511/82 509/541/82 +f 467/511/82 503/1016/82 509/541/82 +f 504/537/91 503/1015/91 467/512/91 +f 466/516/83 480/485/83 510/543/83 +f 480/485/83 501/1017/83 510/543/83 +f 507/545/83 512/539/83 510/540/83 +f 468/521/82 479/498/82 511/547/82 +f 479/498/82 506/1018/82 511/547/82 +f 511/549/86 512/1019/86 508/550/86 +f 486/496/83 465/520/83 512/552/83 +f 465/520/83 508/1020/83 512/552/83 +f 505/551/91 508/550/91 465/554/91 +f 517/555/98 521/566/98 524/556/98 +f 515/558/84 519/569/84 518/559/84 +f 514/561/86 517/555/86 520/557/86 +f 516/560/83 518/559/83 517/555/83 +f 513/562/82 520/557/82 519/563/82 +f 522/565/91 523/1021/91 524/556/91 +f 518/559/99 522/1022/99 521/567/99 +f 520/557/100 524/1023/100 523/568/100 +f 519/569/101 523/1024/101 522/570/101 +f 489/571/83 490/1025/83 531/572/83 +f 488/574/83 489/571/83 530/573/83 +f 488/576/83 529/1026/83 528/577/83 +f 487/578/83 528/577/83 527/579/83 +f 453/581/82 536/1027/82 537/582/82 +f 535/584/82 536/1027/82 453/581/82 +f 534/586/82 535/584/82 454/585/82 +f 444/588/82 545/590/82 534/586/82 +f 445/589/82 544/592/82 545/590/82 +f 446/591/82 543/594/82 544/592/82 +f 447/593/82 542/596/82 543/594/82 +f 448/595/82 541/598/82 542/596/82 +f 449/597/82 540/1028/82 541/598/82 +f 539/599/82 540/1029/82 449/600/82 +f 538/602/82 539/599/82 450/601/82 +f 537/582/82 538/602/82 451/603/82 +f 548/604/83 553/1030/83 551/605/83 +f 547/606/83 551/605/83 552/607/83 +f 550/609/83 546/608/83 552/607/83 +f 549/611/83 550/609/83 554/610/83 +f 492/613/102 549/611/102 555/614/102 +f 525/616/103 553/1031/103 548/604/103 +f 561/618/83 560/1032/83 566/619/83 +f 561/618/83 565/620/83 564/621/83 +f 562/622/83 564/621/83 563/623/83 +f 557/625/83 556/624/83 563/623/83 +f 558/627/83 557/625/83 569/626/83 +f 559/629/83 558/627/83 568/628/83 +f 575/631/82 579/1033/82 580/632/82 +f 577/634/82 579/1033/82 575/631/82 +f 578/636/82 577/634/82 576/635/82 +f 570/638/82 583/640/82 578/636/82 +f 572/639/82 582/642/82 583/640/82 +f 573/641/82 581/1034/82 582/642/82 +f 602/643/104 606/1035/104 604/644/104 +f 590/646/104 594/1036/104 592/647/104 +f 587/649/83 585/653/83 589/650/83 +f 584/652/86 588/648/86 589/650/86 +f 586/654/82 590/646/82 588/648/82 +f 587/649/84 591/651/84 590/655/84 +f 592/657/85 594/1037/85 595/658/85 +f 591/651/84 595/1038/84 594/660/84 +f 589/650/105 593/1039/105 595/661/105 +f 588/648/86 592/657/86 593/659/86 +f 597/662/83 601/666/83 603/663/83 +f 596/665/86 600/674/86 601/666/86 +f 596/667/82 598/668/82 602/643/82 +f 599/664/84 603/663/84 602/643/84 +f 604/669/85 606/672/85 607/670/85 +f 603/663/84 607/670/84 606/672/84 +f 601/666/105 605/1040/105 607/673/105 +f 600/674/86 604/1041/86 605/675/86 +f 609/676/84 611/1042/84 610/677/84 +f 611/679/83 615/687/83 614/680/83 +f 615/682/86 613/685/86 612/683/86 +f 613/685/82 609/676/82 608/678/82 +f 614/680/85 612/1043/85 608/686/85 +f 611/679/91 609/676/91 613/685/91 +f 372/459/86 371/465/86 383/448/86 +f 371/465/86 373/1044/86 374/449/86 +f 383/448/86 371/465/86 374/449/86 +f 620/689/86 622/1045/86 623/690/86 +f 616/692/91 621/691/91 623/690/91 +f 617/694/82 620/1046/82 621/691/82 +f 617/695/85 619/702/85 622/696/85 +f 622/698/82 624/1047/82 625/699/82 +f 626/701/85 624/1048/85 622/696/85 +f 623/690/91 625/699/91 627/703/91 +f 628/704/82 630/1049/82 631/705/82 +f 635/707/83 634/713/83 632/708/83 +f 631/705/84 635/707/84 633/710/84 +f 628/712/106 632/708/106 634/713/106 +f 631/705/91 630/1049/91 634/713/91 +f 639/715/82 638/726/82 636/716/82 +f 640/718/83 642/723/83 643/719/83 +f 641/721/86 643/719/86 639/715/86 +f 642/723/107 640/718/107 636/724/107 +f 639/715/91 643/719/91 642/723/91 +f 379/441/84 380/1050/84 381/469/84 +f 381/469/84 382/458/84 379/441/84 +f 382/458/84 701/1051/84 388/727/84 +f 400/1052/91 402/480/91 396/468/91 +f 402/480/91 382/458/91 381/469/91 +f 708/728/108 706/740/108 710/729/108 +f 702/731/86 706/740/86 708/728/86 +f 717/733/85 716/750/85 714/734/85 +f 705/736/84 709/744/84 707/737/84 +f 703/739/83 707/737/83 706/740/83 +f 713/742/91 712/730/91 710/729/91 +f 709/744/109 713/742/109 711/743/109 +f 707/737/110 711/743/110 710/729/110 +f 704/746/82 708/1053/82 712/730/82 +f 712/730/82 713/742/82 705/745/82 +f 713/742/82 709/1054/82 705/745/82 +f 720/747/91 722/764/91 723/748/91 +f 716/750/86 724/1055/86 718/751/86 +f 723/752/83 727/762/83 724/753/83 +f 715/735/82 714/734/82 722/764/82 +f 714/734/82 718/1056/82 722/764/82 +f 722/764/82 720/747/82 715/735/82 +f 716/750/83 717/733/83 721/755/83 +f 719/756/84 725/1057/84 717/733/84 +f 720/757/111 726/1058/111 725/758/111 +f 718/761/111 724/753/111 727/762/111 +f 725/758/83 726/1058/83 721/755/83 +f 733/766/82 734/773/82 742/767/82 +f 728/769/82 729/780/82 736/770/82 +f 728/772/82 735/1059/82 742/767/82 +f 744/774/82 733/766/82 740/775/82 +f 733/766/82 741/768/82 740/775/82 +f 740/775/82 739/1060/82 732/776/82 +f 743/777/82 732/776/82 738/778/82 +f 732/776/82 739/1060/82 738/778/82 +f 738/778/82 737/1061/82 730/779/82 +f 730/779/82 737/1061/82 736/770/82 +f 731/1062/83 754/1063/83 755/781/83 +f 755/781/83 756/788/83 748/782/83 +f 759/783/83 731/1062/83 755/781/83 +f 754/1063/83 731/1062/83 753/786/83 +f 731/1062/83 758/1064/83 753/786/83 +f 758/1064/83 747/784/83 753/786/83 +f 757/787/83 749/790/83 748/782/83 +f 757/787/83 750/1065/83 745/789/83 +f 745/791/83 750/1066/83 751/792/83 +f 751/792/83 752/785/83 747/784/83 +f 770/796/84 771/1067/84 775/1068/84 +f 775/1068/84 774/1069/84 773/794/84 +f 773/794/84 772/1070/84 768/795/84 +f 768/795/84 769/1071/84 770/796/84 +f 770/796/84 775/1068/84 773/794/84 +f 777/799/86 776/1072/86 782/1073/86 +f 782/1073/86 781/1074/86 783/797/86 +f 783/797/86 780/1075/86 779/798/86 +f 779/798/86 778/1076/86 777/799/86 +f 777/799/86 782/1073/86 783/797/86 +f 767/800/112 763/1077/112 761/801/112 +f 766/803/113 764/1078/113 760/804/113 +f 766/806/114 762/1079/114 763/807/114 +f 765/809/100 761/801/100 760/810/100 +f 790/814/86 791/1080/86 785/1081/86 +f 785/1081/86 786/1082/86 784/812/86 +f 784/812/86 787/1083/86 788/813/86 +f 788/813/86 789/1084/86 790/814/86 +f 790/814/86 785/1081/86 784/812/86 +f 797/817/84 796/1085/84 792/1086/84 +f 792/1086/84 793/1087/84 794/815/84 +f 794/815/84 795/1088/84 799/816/84 +f 799/816/84 798/1089/84 797/817/84 +f 797/817/84 792/1086/84 794/815/84 +f 804/818/85 807/822/85 806/819/85 +f 801/821/86 806/819/86 807/822/86 +f 802/824/84 804/818/84 805/820/84 +f 803/826/83 807/822/83 804/818/83 +f 800/828/82 805/820/82 806/819/82 +f 822/830/84 820/1090/84 808/831/84 +f 821/833/86 823/1091/86 811/834/86 +f 826/836/84 824/1092/84 812/837/84 +f 825/839/86 827/1093/86 815/840/86 +f 824/842/84 822/1094/84 810/832/84 +f 811/834/86 823/1095/86 825/843/86 +f 830/844/84 828/850/84 816/845/84 +f 817/847/86 829/851/86 831/848/86 +f 828/850/84 826/1096/84 814/838/84 +f 815/840/86 827/1097/86 829/851/86 +f 839/852/86 837/861/86 833/853/86 +f 836/855/84 838/859/84 834/856/84 +f 840/858/84 842/864/84 838/859/84 +f 843/860/86 841/862/86 837/861/86 +f 847/866/82 865/869/82 864/867/82 +f 865/869/82 849/1098/82 876/1099/82 +f 878/870/82 848/1100/82 864/867/82 +f 865/869/82 876/1099/82 878/870/82 +f 885/871/83 879/902/83 867/872/83 +f 861/874/91 882/880/91 883/875/91 +f 883/875/84 882/880/84 877/877/84 +f 871/879/83 877/877/83 882/880/83 +f 868/882/85 880/878/85 877/877/85 +f 884/884/86 886/890/86 887/885/86 +f 870/887/85 884/884/85 885/886/85 +f 872/889/91 887/885/91 886/890/91 +f 860/892/83 886/890/83 884/884/83 +f 880/894/83 868/1101/83 866/895/83 +f 885/871/83 887/1102/83 888/897/83 +f 880/894/83 890/901/83 891/899/83 +f 879/902/83 885/871/83 889/898/83 +f 890/901/83 880/894/83 881/896/83 +f 879/902/83 889/898/83 890/901/83 +f 907/903/83 900/1103/83 902/904/83 +f 903/906/82 904/400/82 287/907/82 +f 905/905/83 902/1104/83 278/909/83 +f 906/911/82 901/1105/82 274/912/82 +f 900/913/83 907/1106/83 301/387/83 +f 913/915/91 912/929/91 908/916/91 +f 914/918/91 915/932/91 911/919/91 +f 926/921/82 924/1107/82 920/922/82 +f 925/924/83 927/1108/83 923/925/83 +f 930/927/83 917/942/83 913/915/83 +f 912/929/82 916/944/82 928/930/82 +f 915/932/83 919/938/83 931/933/83 +f 929/935/82 918/940/82 914/918/82 +f 923/925/83 927/1109/83 931/937/83 +f 929/939/82 926/1110/82 922/923/82 +f 930/941/83 925/1111/83 921/926/83 +f 920/922/82 924/1112/82 928/943/82 +f 939/945/84 938/1113/84 936/946/84 +f 939/945/91 937/947/91 932/948/91 +f 937/947/82 936/1114/82 933/950/82 +f 933/951/85 936/1115/85 938/952/85 +f 941/954/82 940/1116/82 938/955/82 +f 938/952/85 940/1117/85 942/957/85 +f 939/945/91 934/949/91 943/958/91 +s 1 +f 188/301/91 189/1118/115 187/1119/91 +f 190/294/115 191/1120/116 189/1118/115 +f 194/289/86 195/1121/117 193/1122/86 +f 196/291/117 197/1123/103 195/1121/117 +f 198/320/103 199/1124/85 197/1123/103 +f 200/313/85 201/1125/102 199/1126/85 +f 202/315/102 203/1127/118 201/1125/102 +f 204/310/118 205/1128/84 203/1127/118 +f 206/307/84 207/1129/119 205/1128/84 +f 208/304/119 209/1130/120 207/1129/119 +f 210/299/120 187/1119/91 209/1130/120 +f 215/308/116 226/1131/86 214/309/86 +f 222/960/102 233/1132/118 221/295/118 +f 212/961/103 224/1133/85 211/300/85 +f 219/963/119 230/1134/120 218/319/120 +f 216/311/115 227/1135/116 215/312/116 +f 211/297/85 234/1136/102 222/298/102 +f 213/302/117 223/1137/103 212/303/103 +f 220/959/84 231/1138/119 219/290/119 +f 217/962/91 228/1139/115 216/314/115 +f 214/305/86 225/1140/117 213/306/117 +f 221/292/118 232/1141/84 220/293/84 +f 218/317/120 229/1142/91 217/318/91 +f 235/977/121 246/324/122 244/340/122 +f 245/366/123 244/340/122 246/324/122 +f 245/366/123 249/979/124 243/361/123 +f 251/351/125 249/979/108 253/352/108 +f 254/349/109 248/368/126 252/357/126 +f 258/328/127 255/334/128 257/348/128 +f 252/357/126 247/353/125 251/351/125 +f 238/330/129 235/345/121 237/336/129 +f 258/328/127 237/336/129 256/338/127 +f 874/1143/90 855/1144/90 875/1145/90 +f 287/907/127 290/342/128 288/372/128 +f 291/399/130 290/342/128 295/981/130 +f 291/399/109 297/385/126 293/378/126 +f 293/378/126 298/379/125 294/375/125 +f 294/375/125 296/980/108 292/384/108 +f 300/396/123 296/980/124 302/393/123 +f 300/396/123 301/387/122 299/391/122 +f 904/400/129 907/903/121 905/905/129 +f 308/1146/131 312/1147/132 303/1148/133 +f 310/1149/125 316/1150/134 307/1151/126 +f 309/1152/135 313/1153/136 318/1154/137 +f 312/1147/132 651/1155/138 648/1156/139 +f 314/1157/140 306/1158/141 305/1159/129 +f 310/1149/125 318/1154/137 317/1160/142 +f 312/1161/132 304/1162/121 303/1163/133 +f 316/1150/134 308/1164/131 307/1151/126 +f 304/1162/121 314/1157/140 305/1159/129 +f 254/349/130 255/334/128 250/975/130 +f 330/407/102 343/1165/85 319/406/85 +f 320/412/103 345/1166/117 321/411/117 +f 327/431/119 352/1167/84 328/987/84 +f 324/422/115 349/1168/91 325/985/91 +f 321/415/117 346/1169/86 322/413/86 +f 328/434/84 353/1170/118 329/433/118 +f 325/427/91 350/1171/120 326/425/120 +f 322/418/86 347/1172/116 323/416/116 +f 329/403/118 354/1173/102 330/983/102 +f 319/408/85 344/1174/103 320/984/103 +f 326/428/120 351/1175/119 327/986/119 +f 323/421/116 348/1176/115 324/419/115 +f 337/430/103 360/1177/85 336/426/85 +f 334/420/118 357/1178/84 333/417/84 +f 341/404/115 364/1179/116 340/405/116 +f 331/409/120 366/1180/91 342/410/91 +f 338/429/117 361/1181/103 337/430/103 +f 335/424/102 358/1182/118 334/420/118 +f 342/410/91 365/1183/115 341/404/115 +f 332/414/119 355/1184/120 331/409/120 +f 339/432/86 362/1185/117 338/429/117 +f 336/423/85 359/1186/102 335/424/102 +f 333/417/84 356/1187/119 332/414/119 +f 340/405/116 363/1188/86 339/432/86 +f 405/1189/119 418/1190/143 406/1191/143 +f 413/1192/116 419/1193/144 420/1194/116 +f 414/1195/115 420/1194/116 421/1196/115 +f 403/1197/91 415/1198/120 404/1199/120 +f 414/1195/115 416/1200/91 403/1197/91 +f 404/1199/120 417/1201/119 405/1189/119 +f 426/1202/120 432/1203/91 425/1204/91 +f 424/1205/115 430/1206/116 423/1207/116 +f 427/1208/119 433/1209/120 426/1202/120 +f 425/1204/91 431/1210/115 424/1205/115 +f 423/1207/116 429/1211/144 422/1212/144 +f 428/1213/143 434/1214/119 427/1208/119 +f 458/489/85 440/505/103 439/502/85 +f 459/487/103 441/507/117 440/505/103 +f 460/484/117 442/509/145 441/507/117 +f 455/1012/146 437/497/118 436/499/146 +f 456/495/118 438/500/102 437/497/118 +f 457/493/102 439/502/85 438/500/102 +f 461/486/145 469/510/147 442/509/145 +f 488/1215/85 448/595/102 489/1216/102 +f 491/1217/148 445/589/119 492/613/149 +f 463/1218/150 453/581/116 452/583/86 +f 487/1219/103 449/600/85 488/1220/85 +f 490/1221/151 446/591/84 491/1217/148 +f 464/1222/152 450/601/103 487/1219/103 +f 489/1216/102 447/593/118 490/1221/151 +f 492/613/149 445/589/119 444/588/120 +f 546/608/91 444/588/120 443/587/91 +f 464/1222/152 452/583/86 451/603/117 +f 455/1012/146 471/517/153 472/519/153 +f 463/1223/154 525/1224/155 462/1225/156 +f 491/1226/157 533/1227/158 532/1228/159 +f 491/1226/157 531/572/155 490/1025/160 +f 464/580/161 526/1229/162 463/1223/154 +f 547/606/115 443/587/91 454/585/115 +f 557/625/120 571/637/91 556/624/91 +f 558/627/119 570/638/120 557/625/120 +f 561/618/116 574/633/144 560/1032/144 +f 559/629/143 572/639/119 558/627/119 +f 562/622/115 575/631/116 561/618/116 +f 556/624/91 576/635/115 562/622/115 +f 454/585/115 453/581/116 462/617/163 +f 624/1047/164 627/1230/165 625/699/164 +f 626/1231/165 618/1232/166 627/1230/165 +f 651/1233/138 658/1234/167 659/1235/168 +f 311/1236/169 648/1237/139 649/1238/170 +f 311/1236/169 644/1239/171 314/1157/140 +f 318/1154/137 647/1240/172 317/1160/142 +f 314/1157/140 645/1241/173 313/1242/136 +f 313/1153/136 646/1243/174 318/1154/137 +f 315/1244/175 650/1245/176 651/1233/138 +f 317/1160/142 650/1245/176 316/1150/134 +f 655/1246/177 662/1247/178 658/1248/179 +f 646/1249/174 655/1250/180 647/1240/172 +f 645/1251/173 654/1252/181 646/1243/174 +f 649/1238/170 652/1253/182 644/1239/171 +f 649/1238/170 656/1254/183 657/1255/184 +f 644/1239/171 653/1256/185 645/1241/173 +f 647/1240/172 658/1234/167 650/1245/176 +f 648/1156/139 659/1257/168 656/1258/183 +f 658/1248/179 663/1259/186 659/1260/168 +f 655/1246/177 660/1261/187 661/1262/188 +f 661/1262/188 666/1263/189 662/1247/178 +f 662/1247/178 667/1264/190 663/1259/186 +f 661/1262/188 664/1265/191 665/1266/192 +f 665/1266/192 670/1267/193 666/1263/189 +f 666/1263/189 671/1268/194 667/1264/190 +f 664/1265/191 669/1269/195 665/1266/192 +f 657/1255/184 672/1270/196 652/1253/182 +f 657/1255/184 674/1271/197 675/1272/198 +f 652/1253/182 673/1273/199 653/1256/185 +f 675/1274/200 676/1275/201 672/1276/202 +f 674/1277/197 679/1278/203 675/1274/200 +f 673/1279/199 676/1275/201 677/1280/204 +f 679/1278/203 680/1281/205 676/1275/201 +f 679/1278/203 682/1282/206 683/1283/207 +f 676/1275/201 681/1284/208 677/1280/204 +f 683/1283/207 684/1285/209 680/1281/205 +f 683/1283/207 686/1286/210 687/1287/211 +f 680/1281/205 685/1288/212 681/1284/208 +f 687/1287/211 688/1289/213 684/1285/209 +f 686/1286/210 691/1290/214 687/1287/211 +f 684/1285/209 689/1291/215 685/1288/212 +f 691/1292/214 692/1293/216 688/1294/213 +f 691/1292/214 694/1295/217 695/1296/218 +f 688/1294/213 693/1297/219 689/1298/215 +f 695/1296/218 696/1299/220 692/1293/216 +f 694/1300/217 699/1301/221 695/1296/218 +f 692/1293/216 697/1302/222 693/1303/219 +f 663/1304/186 678/1305/223 659/1257/168 +f 673/1306/199 654/1252/181 653/1307/185 +f 697/1308/222 669/1309/195 668/1310/224 +f 670/1311/193 698/1312/225 671/1313/194 +f 696/1299/220 670/1311/193 669/1309/195 +f 664/1265/191 693/1303/219 668/1314/224 +f 677/1315/204 660/1316/187 654/1252/181 +f 681/1317/208 685/1288/212 693/1303/219 +f 668/1314/224 693/1303/219 697/1302/222 +f 694/1318/217 671/1319/194 698/1320/225 +f 694/1318/217 667/1321/190 671/1319/194 +f 682/1322/206 694/1318/217 686/1323/210 +f 674/1324/197 659/1257/168 678/1305/223 +f 729/780/109 747/784/226 730/779/226 +f 737/1325/86 751/1326/88 736/1327/88 +f 730/779/226 758/1064/84 743/777/84 +f 738/1328/108 752/1329/86 737/1325/86 +f 744/1330/86 748/782/227 733/1331/227 +f 739/1332/91 753/1333/108 738/1328/108 +f 740/1334/109 754/1335/91 739/1332/91 +f 741/1336/84 755/1337/109 740/1334/109 +f 733/1331/227 749/790/108 734/1338/108 +f 742/1339/87 756/1340/84 741/1336/84 +f 734/1338/108 745/789/91 728/1341/91 +f 728/769/91 746/793/109 729/780/109 +f 735/1342/85 757/1343/87 742/1339/87 +f 736/1327/88 750/1344/85 735/1345/85 +f 773/1346/90 780/1347/82 772/1348/82 +f 774/1349/85 779/1350/90 773/1346/90 +f 769/1351/91 782/1352/110 770/1353/110 +f 770/1353/110 776/1354/83 771/1355/83 +f 775/1356/89 778/1357/85 774/1358/85 +f 771/1355/83 777/1359/89 775/1356/89 +f 768/1360/228 781/1361/91 769/1351/91 +f 772/1348/82 783/1362/228 768/1360/228 +f 795/1363/82 784/1364/228 799/1365/228 +f 799/1365/228 786/1366/91 798/1367/91 +f 796/1368/83 790/1369/89 792/1370/89 +f 792/1370/89 789/1371/85 793/1372/85 +f 797/1373/110 791/1374/83 796/1368/83 +f 798/1367/91 785/1375/110 797/1373/110 +f 793/1376/85 788/1377/90 794/1378/90 +f 794/1378/90 787/1379/82 795/1363/82 +f 811/834/229 808/831/83 809/835/83 +f 813/841/230 810/832/229 811/834/229 +f 815/840/231 812/837/230 813/841/230 +f 817/847/232 814/838/231 815/840/231 +f 819/849/104 816/845/232 817/847/232 +f 821/833/82 822/1380/233 823/1091/233 +f 825/839/234 826/1381/235 827/1093/235 +f 826/1382/235 829/851/236 827/1097/235 +f 829/851/236 830/1383/99 831/848/99 +f 824/1384/234 823/1095/233 822/1385/233 +f 838/1386/237 835/1387/104 834/856/104 +f 833/853/105 836/1388/238 832/1389/105 +f 837/1390/238 840/1391/229 836/1388/238 +f 842/1392/239 839/1393/237 838/1386/237 +f 845/1394/240 842/1392/239 844/1395/240 +f 845/1396/240 840/1391/229 841/1397/229 +f 846/868/91 851/1398/234 847/866/91 +f 850/1399/234 853/1400/82 851/1398/234 +f 863/1401/129 895/1402/241 859/1403/242 +f 854/1404/243 857/1405/244 855/1406/245 +f 856/1407/246 859/1403/242 857/1405/244 +f 849/1408/109 879/1409/126 876/1410/126 +f 858/1411/247 863/1401/129 859/1403/242 +f 870/1412/248 869/1413/113 867/1414/113 +f 866/1415/112 868/1416/112 871/1417/249 +f 870/1412/248 847/1418/86 860/1419/86 +f 864/1420/250 861/1421/84 846/1422/84 +f 854/1404/243 892/1423/251 856/1407/246 +f 857/1405/244 895/1402/241 893/1424/252 +f 878/1425/125 866/1415/108 848/1426/108 +f 876/1410/126 881/1427/125 878/1425/125 +f 858/1411/247 896/1428/122 862/1429/121 +f 856/1407/246 894/1430/253 858/1411/247 +f 855/1406/245 893/1424/252 875/1431/254 +f 872/1432/86 860/1419/86 895/1402/241 +f 894/1433/253 892/1434/251 861/1421/84 +f 851/1435/86 853/1436/86 847/1418/86 +f 852/1437/82 875/1145/90 853/1400/82 +f 874/1438/255 846/1422/84 892/1434/251 +f 287/907/127 905/905/129 289/910/127 +f 907/1106/121 299/391/122 301/387/122 +f 847/1418/86 875/1439/254 893/1440/252 +f 846/1422/84 852/1441/84 850/1442/84 +f 922/923/129 919/938/127 918/940/127 +f 918/940/127 915/932/86 914/918/86 +f 917/942/122 912/929/84 913/915/84 +f 921/926/121 916/944/122 917/942/122 +f 922/923/129 921/926/121 923/925/129 +f 192/296/116 193/1122/86 191/1120/116 +f 943/1443/256 940/1116/257 941/954/257 +f 934/1444/258 942/1445/256 943/1443/256 +f 188/301/91 190/294/115 189/1118/115 +f 190/294/115 192/296/116 191/1120/116 +f 194/289/86 196/291/117 195/1121/117 +f 196/291/117 198/320/103 197/1123/103 +f 198/320/103 200/316/85 199/1124/85 +f 200/313/85 202/315/102 201/1125/102 +f 202/315/102 204/310/118 203/1127/118 +f 204/310/118 206/307/84 205/1128/84 +f 206/307/84 208/304/119 207/1129/119 +f 208/304/119 210/299/120 209/1130/120 +f 210/299/120 188/301/91 187/1119/91 +f 215/308/116 227/1446/116 226/1131/86 +f 222/960/102 234/1447/102 233/1132/118 +f 212/961/103 223/1448/103 224/1133/85 +f 219/963/119 231/1449/119 230/1134/120 +f 216/311/115 228/1450/115 227/1135/116 +f 211/297/85 224/1451/85 234/1136/102 +f 213/302/117 225/1452/117 223/1137/103 +f 220/959/84 232/1453/84 231/1138/119 +f 217/962/91 229/1454/91 228/1139/115 +f 214/305/86 226/1455/86 225/1140/117 +f 221/292/118 233/1456/118 232/1141/84 +f 218/317/120 230/1457/120 229/1142/91 +f 235/977/121 236/973/121 246/324/122 +f 245/366/123 243/361/123 244/340/122 +f 245/366/123 253/352/124 249/979/124 +f 251/351/125 247/353/125 249/979/108 +f 254/349/109 250/975/109 248/368/126 +f 258/328/127 256/338/127 255/334/128 +f 252/357/126 248/368/126 247/353/125 +f 238/330/129 236/332/121 235/345/121 +f 258/328/127 238/330/129 237/336/129 +f 874/1143/90 854/1458/90 855/1144/90 +f 287/907/127 289/910/127 290/342/128 +f 291/399/130 288/372/128 290/342/128 +f 291/399/109 295/981/109 297/385/126 +f 293/378/126 297/385/126 298/379/125 +f 294/375/125 298/379/125 296/980/108 +f 300/396/123 292/384/124 296/980/124 +f 300/396/123 302/393/123 301/387/122 +f 904/400/129 906/402/121 907/903/121 +f 308/1146/131 315/1459/175 312/1147/132 +f 310/1149/125 317/1160/142 316/1150/134 +f 309/1152/135 306/1460/141 313/1153/136 +f 312/1147/132 315/1459/175 651/1155/138 +f 314/1157/140 313/1242/136 306/1158/141 +f 310/1149/125 309/1152/135 318/1154/137 +f 312/1161/132 311/1236/169 304/1162/121 +f 316/1150/134 315/1244/175 308/1164/131 +f 304/1162/121 311/1236/169 314/1157/140 +f 254/349/130 257/348/128 255/334/128 +f 330/407/102 354/1461/102 343/1165/85 +f 320/412/103 344/1462/103 345/1166/117 +f 327/431/119 351/1463/119 352/1167/84 +f 324/422/115 348/1464/115 349/1168/91 +f 321/415/117 345/1465/117 346/1169/86 +f 328/434/84 352/1466/84 353/1170/118 +f 325/427/91 349/1467/91 350/1171/120 +f 322/418/86 346/1468/86 347/1172/116 +f 329/403/118 353/1469/118 354/1173/102 +f 319/408/85 343/1470/85 344/1174/103 +f 326/428/120 350/1471/120 351/1175/119 +f 323/421/116 347/1472/116 348/1176/115 +f 337/430/103 361/1181/103 360/1177/85 +f 334/420/118 358/1182/118 357/1178/84 +f 341/404/115 365/1183/115 364/1179/116 +f 331/409/120 355/1184/120 366/1180/91 +f 338/429/117 362/1185/117 361/1181/103 +f 335/424/102 359/1186/102 358/1182/118 +f 342/410/91 366/1180/91 365/1183/115 +f 332/414/119 356/1187/119 355/1184/120 +f 339/432/86 363/1188/86 362/1185/117 +f 336/423/85 360/1473/85 359/1186/102 +f 333/417/84 357/1178/84 356/1187/119 +f 340/405/116 364/1179/116 363/1188/86 +f 405/1189/119 417/1201/119 418/1190/143 +f 413/1192/116 412/1474/144 419/1193/144 +f 414/1195/115 413/1192/116 420/1194/116 +f 403/1197/91 416/1200/91 415/1198/120 +f 414/1195/115 421/1196/115 416/1200/91 +f 404/1199/120 415/1198/120 417/1201/119 +f 426/1202/120 433/1209/120 432/1203/91 +f 424/1205/115 431/1210/115 430/1206/116 +f 427/1208/119 434/1214/119 433/1209/120 +f 425/1204/91 432/1203/91 431/1210/115 +f 423/1207/116 430/1206/116 429/1211/144 +f 428/1213/143 435/1475/143 434/1214/119 +f 458/489/85 459/487/103 440/505/103 +f 459/487/103 460/484/117 441/507/117 +f 460/484/117 461/486/145 442/509/145 +f 455/1012/146 456/495/118 437/497/118 +f 456/495/118 457/493/102 438/500/102 +f 457/493/102 458/489/85 439/502/85 +f 461/486/145 470/515/147 469/510/147 +f 488/1215/85 449/597/85 448/595/102 +f 491/1217/148 446/591/84 445/589/119 +f 463/1218/150 462/617/163 453/581/116 +f 487/1219/103 450/601/103 449/600/85 +f 490/1221/151 447/593/118 446/591/84 +f 464/1222/152 451/603/117 450/601/103 +f 489/1216/102 448/595/102 447/593/118 +f 444/588/120 550/609/120 492/613/149 +f 550/609/120 549/611/109 492/613/149 +f 546/608/91 550/609/120 444/588/120 +f 464/1222/152 463/1218/150 452/583/86 +f 455/1012/146 436/499/146 471/517/153 +f 463/1223/154 526/1229/162 525/1224/155 +f 491/1226/157 492/1476/259 533/1227/158 +f 491/1226/157 532/1228/159 531/572/155 +f 464/580/161 527/579/260 526/1229/162 +f 547/606/115 546/608/91 443/587/91 +f 557/625/120 570/638/120 571/637/91 +f 558/627/119 572/639/119 570/638/120 +f 561/618/116 575/631/116 574/633/144 +f 559/629/143 573/641/143 572/639/119 +f 562/622/115 576/635/115 575/631/116 +f 556/624/91 571/637/91 576/635/115 +f 548/604/108 547/606/115 462/617/163 +f 547/606/115 454/585/115 462/617/163 +f 624/1047/164 626/1231/165 627/1230/165 +f 626/1231/165 619/1477/166 618/1232/166 +f 651/1233/138 650/1245/176 658/1234/167 +f 311/1236/169 312/1161/132 648/1237/139 +f 311/1236/169 649/1238/170 644/1239/171 +f 318/1154/137 646/1249/174 647/1240/172 +f 314/1157/140 644/1239/171 645/1241/173 +f 313/1153/136 645/1251/173 646/1243/174 +f 315/1244/175 316/1150/134 650/1245/176 +f 317/1160/142 647/1240/172 650/1245/176 +f 655/1246/177 661/1262/188 662/1247/178 +f 646/1249/174 654/1478/181 655/1250/180 +f 645/1251/173 653/1307/185 654/1252/181 +f 649/1238/170 657/1255/184 652/1253/182 +f 649/1238/170 648/1237/139 656/1254/183 +f 644/1239/171 652/1253/182 653/1256/185 +f 647/1240/172 655/1250/180 658/1234/167 +f 648/1156/139 651/1155/138 659/1257/168 +f 658/1248/179 662/1247/178 663/1259/186 +f 655/1246/177 654/1479/181 660/1261/187 +f 661/1262/188 665/1266/192 666/1263/189 +f 662/1247/178 666/1263/189 667/1264/190 +f 661/1262/188 660/1261/187 664/1265/191 +f 665/1266/192 669/1269/195 670/1267/193 +f 666/1263/189 670/1267/193 671/1268/194 +f 664/1265/191 668/1314/224 669/1269/195 +f 657/1255/184 675/1272/198 672/1270/196 +f 657/1255/184 656/1254/183 674/1271/197 +f 652/1253/182 672/1270/196 673/1273/199 +f 675/1274/200 679/1278/203 676/1275/201 +f 674/1277/197 678/1480/223 679/1278/203 +f 673/1279/199 672/1276/202 676/1275/201 +f 679/1278/203 683/1283/207 680/1281/205 +f 679/1278/203 678/1480/223 682/1282/206 +f 676/1275/201 680/1281/205 681/1284/208 +f 683/1283/207 687/1287/211 684/1285/209 +f 683/1283/207 682/1282/206 686/1286/210 +f 680/1281/205 684/1285/209 685/1288/212 +f 687/1287/211 691/1290/214 688/1289/213 +f 686/1286/210 690/1481/261 691/1290/214 +f 684/1285/209 688/1289/213 689/1291/215 +f 691/1292/214 695/1296/218 692/1293/216 +f 691/1292/214 690/1482/261 694/1295/217 +f 688/1294/213 692/1293/216 693/1297/219 +f 695/1296/218 699/1301/221 696/1299/220 +f 694/1300/217 698/1483/225 699/1301/221 +f 692/1293/216 696/1299/220 697/1302/222 +f 663/1304/186 667/1321/190 678/1305/223 +f 673/1306/199 677/1315/204 654/1252/181 +f 697/1308/222 696/1299/220 669/1309/195 +f 670/1311/193 699/1301/221 698/1312/225 +f 696/1299/220 699/1301/221 670/1311/193 +f 677/1315/204 664/1265/191 660/1316/187 +f 689/1291/215 693/1303/219 685/1288/212 +f 693/1303/219 664/1265/191 681/1317/208 +f 664/1265/191 677/1315/204 681/1317/208 +f 682/1322/206 678/1305/223 667/1321/190 +f 667/1321/190 694/1318/217 682/1322/206 +f 694/1318/217 690/1484/261 686/1323/210 +f 674/1324/197 656/1258/183 659/1257/168 +f 729/780/109 746/793/109 747/784/226 +f 737/1325/86 752/1329/86 751/1326/88 +f 730/779/226 747/784/226 758/1064/84 +f 738/1328/108 753/1333/108 752/1329/86 +f 744/1330/86 759/783/86 748/782/227 +f 739/1332/91 754/1335/91 753/1333/108 +f 740/1334/109 755/1337/109 754/1335/91 +f 741/1336/84 756/1340/84 755/1337/109 +f 733/1331/227 748/782/227 749/790/108 +f 742/1339/87 757/1343/87 756/1340/84 +f 734/1338/108 749/790/108 745/789/91 +f 728/769/91 745/791/91 746/793/109 +f 735/1342/85 750/1485/85 757/1343/87 +f 736/1327/88 751/1326/88 750/1344/85 +f 773/1346/90 779/1350/90 780/1347/82 +f 774/1349/85 778/1486/85 779/1350/90 +f 769/1351/91 781/1361/91 782/1352/110 +f 770/1353/110 782/1352/110 776/1354/83 +f 775/1356/89 777/1359/89 778/1357/85 +f 771/1355/83 776/1354/83 777/1359/89 +f 768/1360/228 783/1362/228 781/1361/91 +f 772/1348/82 780/1347/82 783/1362/228 +f 795/1363/82 787/1379/82 784/1364/228 +f 799/1365/228 784/1364/228 786/1366/91 +f 796/1368/83 791/1374/83 790/1369/89 +f 792/1370/89 790/1369/89 789/1371/85 +f 797/1373/110 785/1375/110 791/1374/83 +f 798/1367/91 786/1366/91 785/1375/110 +f 793/1376/85 789/1487/85 788/1377/90 +f 794/1378/90 788/1377/90 787/1379/82 +f 811/834/229 810/832/229 808/831/83 +f 813/841/230 812/837/230 810/832/229 +f 815/840/231 814/838/231 812/837/230 +f 817/847/232 816/845/232 814/838/231 +f 819/849/104 818/846/104 816/845/232 +f 821/833/82 820/1488/82 822/1380/233 +f 825/839/234 824/1489/234 826/1381/235 +f 826/1382/235 828/1490/236 829/851/236 +f 829/851/236 828/1490/236 830/1383/99 +f 824/1384/234 825/843/234 823/1095/233 +f 838/1386/237 839/1393/237 835/1387/104 +f 833/853/105 837/1390/238 836/1388/238 +f 837/1390/238 841/1397/229 840/1391/229 +f 842/1392/239 843/1491/239 839/1393/237 +f 845/1394/240 843/1491/239 842/1392/239 +f 845/1396/240 844/1492/240 840/1391/229 +f 846/868/91 850/1399/234 851/1398/234 +f 850/1399/234 852/1437/82 853/1400/82 +f 863/1401/129 897/1493/127 895/1402/241 +f 854/1404/243 856/1407/246 857/1405/244 +f 856/1407/246 858/1411/247 859/1403/242 +f 849/1408/109 867/1414/109 879/1409/126 +f 858/1411/247 862/1429/121 863/1401/129 +f 867/1414/113 849/1408/113 870/1412/248 +f 849/1408/113 865/1494/262 870/1412/248 +f 871/1417/249 864/1420/250 848/1426/112 +f 848/1426/112 866/1415/112 871/1417/249 +f 870/1412/248 865/1494/262 847/1418/86 +f 864/1420/250 871/1417/249 861/1421/84 +f 854/1404/243 874/1495/255 892/1423/251 +f 857/1405/244 859/1403/242 895/1402/241 +f 878/1425/125 881/1427/125 866/1415/108 +f 876/1410/126 879/1409/126 881/1427/125 +f 858/1411/247 894/1430/253 896/1428/122 +f 856/1407/246 892/1423/251 894/1430/253 +f 855/1406/245 857/1405/244 893/1424/252 +f 860/1419/86 847/1418/86 893/1440/252 +f 893/1440/252 895/1402/241 860/1419/86 +f 895/1402/241 897/1493/127 872/1432/86 +f 897/1493/127 899/1496/86 872/1432/86 +f 892/1434/251 846/1422/84 861/1421/84 +f 861/1421/84 873/1497/84 894/1433/253 +f 873/1497/84 898/1498/84 896/1499/122 +f 894/1433/253 873/1497/84 896/1499/122 +f 852/1437/82 874/1143/90 875/1145/90 +f 874/1438/255 852/1441/84 846/1422/84 +f 287/907/127 904/400/129 905/905/129 +f 907/1106/121 906/911/121 299/391/122 +f 847/1418/86 853/1436/86 875/1439/254 +f 922/923/129 923/925/129 919/938/127 +f 918/940/127 919/938/127 915/932/86 +f 917/942/122 916/944/122 912/929/84 +f 921/926/121 920/922/121 916/944/122 +f 922/923/129 920/922/121 921/926/121 +f 192/296/116 194/289/86 193/1122/86 +f 943/1443/256 942/1445/256 940/1116/257 +f 934/1444/258 935/1500/258 942/1445/256 diff --git a/src/main/resources/assets/hbm/models/weapons/coilgun.obj b/src/main/resources/assets/hbm/models/weapons/coilgun.obj index b24831496..849fa2f23 100644 --- a/src/main/resources/assets/hbm/models/weapons/coilgun.obj +++ b/src/main/resources/assets/hbm/models/weapons/coilgun.obj @@ -1,2935 +1,4917 @@ # Blender v2.79 (sub 0) OBJ File: 'coilgun.blend' # www.blender.org -o CanonBody_Cylinder.002 -v 1.103664 0.525584 2.500000 -v 1.292985 0.525584 2.500000 -v 1.292985 0.172030 2.646447 -v 1.103664 0.172030 2.646447 -v 1.103664 0.525584 3.500000 -v 1.292985 0.525584 3.500000 -v 1.292985 0.879137 3.353553 -v 1.103664 0.879137 3.353553 -v 1.292985 1.025584 3.000000 -v 1.103664 1.025584 3.000000 -v 1.503651 1.012795 3.000000 -v 1.503651 0.870094 2.655490 -v 1.509822 0.895986 2.629598 -v 1.509822 1.049411 3.000000 -v 1.080568 0.851567 3.325983 -v 1.080568 0.525584 3.461010 -v 1.292985 0.879137 2.646447 -v 1.286814 0.905708 2.619875 -v 1.286814 0.525584 2.462423 -v 1.286814 0.525584 3.537577 -v 1.286814 0.905708 3.380125 -v 1.503651 0.038372 3.000000 -v 1.503651 0.181073 3.344510 -v 1.509822 0.155181 3.370402 -v 1.509822 0.001756 3.000000 -v 1.503651 0.870094 3.344510 -v 1.509822 0.895986 3.370402 -v 1.503651 0.525584 3.487211 -v 1.669294 0.525584 3.401911 -v 1.669294 0.809777 3.284194 -v 1.503651 0.181073 2.655490 -v 1.503651 0.525584 2.512789 -v 1.669294 0.525584 2.598089 -v 1.669294 0.241390 2.715806 -v 1.669294 0.809777 2.715806 -v 1.669294 0.927494 3.000000 -v 1.669294 0.241390 3.284194 -v -0.603601 0.025584 3.000000 -v 1.044523 0.025584 3.000000 -v 1.044523 0.172030 3.353553 -v -0.603601 0.172030 3.353553 -v 0.951045 0.197436 3.364077 -v -0.460212 0.197436 3.364077 -v -0.476991 0.953734 3.173461 -v -0.388078 0.997935 3.101577 -v -0.603601 1.025584 3.000000 -v 1.044523 0.525584 3.500000 -v 1.068921 0.199748 3.325836 -v 1.068921 0.525584 3.460801 -v 0.810528 0.655494 2.553811 -v 1.044523 0.525584 2.500000 -v -0.603601 0.525584 2.500000 -v -0.388078 0.655494 2.553811 -v 1.068921 0.986385 3.000000 -v 1.068921 0.851420 2.674164 -v 1.044523 0.879137 2.646447 -v 1.044523 1.025584 3.000000 -v 0.969099 0.952228 2.898423 -v 0.899442 0.918248 2.838919 -v 0.985768 0.843292 2.683099 -v 1.068921 0.525584 2.539199 -v 1.044523 0.172030 2.646447 -v 1.068921 0.199748 2.674164 -v 1.068921 0.851420 3.325836 -v 1.044523 0.879137 3.353553 -v 1.103664 0.172030 3.353553 -v 1.080568 0.199600 3.325983 -v 1.080568 0.525584 2.538990 -v 1.080568 0.199600 2.674017 -v 1.080568 0.851567 2.674017 -v 1.080568 0.064574 3.000000 -v 1.068921 0.064782 3.000000 -v 0.899442 0.735289 2.586863 -v 0.810528 0.655494 3.378684 -v 0.899442 0.719760 3.368080 -v 0.984259 0.528318 3.436781 -v 0.899442 0.843292 3.316901 -v 0.985768 0.843292 3.316901 -v 0.899442 0.879137 2.646447 -v 1.286814 1.063161 3.000000 -v 1.320923 0.951339 3.425755 -v 1.320923 1.127692 3.000000 -v 1.286814 0.145459 2.619875 -v 1.320923 0.525584 2.397891 -v 1.320923 0.099829 2.574245 -v 1.509822 0.525584 2.476172 -v 1.475712 0.525584 2.413292 -v 1.475712 0.940449 2.585135 -v 1.286814 -0.011994 3.000000 -v 1.320923 -0.076525 3.000000 -v 1.509822 0.525584 3.523828 -v 1.475712 0.940449 3.414865 -v 1.475712 0.525584 3.586708 -v 1.509822 0.155181 2.629598 -v 1.320923 0.525584 3.602109 -v 1.320923 0.951339 2.574245 -v 1.475712 0.110718 2.585134 -v 1.475712 1.112292 3.000000 -v 1.475712 0.110718 3.414866 -v 1.669294 0.271118 2.745534 -v 1.669294 0.525584 2.640131 -v 1.423236 0.525584 2.699672 -v 1.423236 0.313220 2.787636 -v 1.669294 0.780049 2.745534 -v 1.669294 0.885452 3.000000 -v 1.669294 0.525584 3.359869 -v 1.669294 0.780049 3.254466 -v 1.669294 0.271118 3.254466 -v 1.423236 0.737947 2.787636 -v 1.423236 0.825911 3.000000 -v 1.657500 0.838523 3.000000 -v 1.657500 0.746865 2.778719 -v 1.423236 0.525584 3.300328 -v 1.423236 0.737947 3.212364 -v 1.657500 0.746865 3.221281 -v 1.657500 0.525584 3.312939 -v 1.657500 0.525584 3.252281 -v 1.657500 0.703973 3.178389 -v 1.657500 0.525584 2.687061 -v 1.657500 0.304302 2.778718 -v 1.423236 0.313220 3.212364 -v 1.657500 0.304302 3.221282 -v 1.657500 0.703973 2.821611 -v 1.657500 0.525584 2.747719 -v 1.657500 0.347194 2.821611 -v 1.657500 0.347194 3.178389 -v 1.432520 0.525584 2.830615 -v 1.432520 0.645357 2.880227 -v 1.651829 0.645357 2.880227 -v 1.651829 0.525584 2.830615 -v 1.657500 0.777864 3.000000 -v 1.432520 0.645357 3.119773 -v 1.432520 0.694968 3.000000 -v 1.432520 0.405810 2.880227 -v 1.432520 0.405810 3.119773 -v 1.432520 0.525584 3.169385 -v 1.657500 0.273303 3.000000 -v 1.432520 0.356199 3.000000 -v 1.651829 0.405810 2.880227 -v 1.651829 0.405810 3.119773 -v 1.651829 0.525584 3.169385 -v 1.651829 0.645357 3.119773 -v 1.651829 0.525394 2.905789 -v 1.127542 0.525394 2.905789 -v 1.127542 0.458777 2.933383 -v 1.651829 0.458777 2.933383 -v 1.127542 0.431184 3.000000 -v 1.651829 0.431184 3.000000 -v 1.127542 0.525394 3.094211 -v 1.127542 0.592011 3.066617 -v 1.651829 0.592011 3.066617 -v 1.651829 0.525394 3.094211 -v 1.651829 0.619605 3.000000 -v 1.127542 0.619605 3.000000 -v 1.127542 0.592011 2.933383 -v 1.651829 0.592011 2.933383 -v 1.127542 0.458777 3.066617 -v -0.476991 0.837264 2.708140 -v -0.476991 0.714942 2.642628 -v -0.476991 0.735289 2.586863 -v -0.476991 0.879137 2.646447 -v -0.388078 0.997935 2.898423 -v 0.810528 0.997935 2.898423 -v 0.899442 0.879137 3.353553 -v 0.899442 0.735289 3.413137 -v -0.603601 0.879137 3.353553 -v -0.724548 0.869896 3.337075 -v -0.724548 0.532825 3.476694 -v -0.603601 0.525584 3.500000 -v -0.603601 0.879137 2.646447 -v -0.724548 0.869896 2.662932 -v -0.724548 1.009515 3.000004 -v -0.476991 0.953734 2.826539 -v 1.651829 0.356199 3.000000 -v 1.651829 0.458777 3.066617 -v -0.476991 0.735289 3.413137 -v -0.388078 0.655494 3.446189 -v -0.388078 0.633076 3.392654 -v -0.476991 0.714942 3.357372 -v -0.476991 0.837264 3.291860 -v -0.476991 0.879137 3.353553 -v -0.388078 0.944133 3.101577 -v 0.810528 0.952228 3.101577 -v 0.810528 0.997935 3.101577 -v -0.388078 0.944133 2.898423 -v 0.810528 0.952228 2.898423 -v 1.657500 0.212644 3.000000 -v 1.651829 0.694968 3.000000 -v -0.476991 0.926475 3.173461 -v 0.899442 0.843292 2.683099 -v 0.899442 0.953734 2.826539 -v 1.080568 0.986594 3.000000 -v 0.899442 0.719760 2.631920 -v 0.810528 0.655494 2.621316 -v 0.899442 0.918248 3.161081 -v 0.899442 0.953734 3.173461 -v 0.810528 0.655494 3.446189 -v -0.388078 0.633076 2.607346 -v 1.669294 0.123673 3.000000 -v 1.669294 0.165715 3.000000 -v 0.810528 0.526819 3.419828 -v 0.984259 0.528318 2.563219 -v 1.475712 -0.061125 3.000000 -v 1.423236 0.225256 3.000000 -v 0.810528 0.526819 2.580172 -v 0.969099 0.952228 3.101577 -v 0.984259 0.228435 2.674968 -v 0.984259 0.095638 3.005025 -v 0.984259 0.228435 3.325032 -v 1.103664 0.025584 3.000000 -v -0.534084 0.903408 3.173461 -v -0.534084 0.903408 2.826539 -v -0.476991 0.926475 2.826539 -v -0.548068 0.837264 3.291860 -v -0.548068 0.837264 2.708140 -v -0.550334 0.529772 2.566407 -v -0.550334 0.529772 3.433593 -v 1.292985 0.025584 3.000000 -v -0.550334 0.236472 3.339820 -v -0.550334 0.062663 3.005342 -v -0.550334 0.236472 2.660180 -v -0.388078 0.540720 3.422003 -v -0.388078 0.540720 2.577997 -v -0.388078 0.088709 3.007100 -v -0.388078 0.229035 2.676650 -v -0.388078 0.229035 3.323350 -v 0.810528 0.240010 2.699891 -v 0.810528 0.100279 3.006216 -v 0.810528 0.240010 3.300109 -v 0.678557 0.155552 2.534805 -v 0.674639 0.187997 2.501820 -v 0.674369 0.138402 2.298282 -v 0.678212 0.092276 2.275122 -v 0.951045 0.500178 3.489476 -v -0.460212 0.500178 3.489476 -v 0.674042 0.500178 2.510524 -v 0.671101 0.458113 2.482789 -v 0.645644 0.458113 2.482789 -v 0.641563 0.500178 2.510524 -v 0.674638 0.458293 2.409405 -v 0.671568 0.425284 2.403533 -v 0.641987 0.458293 2.409405 -v 0.645976 0.425284 2.403533 -v 0.646934 0.318302 2.224795 -v 0.643209 0.321800 2.181364 -v 0.649846 0.155552 2.534805 -v 0.652136 0.187997 2.501820 -v 0.645678 0.092117 2.275140 -v 0.648869 0.138277 2.298296 -v 0.673140 0.318430 2.224781 -v 0.949896 0.093608 2.274977 -v 0.951045 0.155552 2.534805 -v 0.676644 0.321964 2.181346 -v 0.948697 0.323297 2.181201 -v -0.460212 0.458293 2.409405 -v -0.460212 0.500178 2.510524 -v 0.346589 0.320346 2.181522 -v 0.273733 0.319982 2.181562 -v 0.188876 0.319558 2.181608 -v 0.127999 0.319254 2.181641 -v 0.051715 0.318872 2.181683 -v -0.004015 0.318594 2.181713 -v -0.060217 0.318313 2.181744 -v 0.003776 0.311542 2.203961 -v 0.003785 0.107850 2.287122 -v -0.004002 0.088898 2.275490 -v 0.044163 0.311789 2.203934 -v 0.045414 0.108104 2.287094 -v 0.053442 0.089185 2.275459 -v 0.275455 0.090295 2.275338 -v 0.286340 0.110829 2.286325 -v 0.335441 0.111139 2.286292 -v 0.346592 0.090651 2.275299 -v 0.335438 0.311680 2.204418 -v 0.285150 0.311362 2.204452 -v 0.128016 0.089558 2.275418 -v 0.137117 0.111516 2.285824 -v 0.181234 0.111785 2.285795 -v 0.190590 0.089871 2.275384 -v 0.180025 0.309468 2.205085 -v 0.137105 0.309206 2.205114 -v -0.059018 0.088623 2.275520 -v -0.460212 0.155552 2.534805 -v 0.951045 0.500178 2.510524 -v 0.951045 0.458293 2.409405 -v -0.460212 0.197436 2.635923 -v 1.292985 0.172030 3.353553 -v 1.103664 0.879137 2.646447 -v -0.603601 0.172030 2.646447 -v -0.460212 0.197436 2.635923 -v 0.951045 0.197436 2.635923 -v 1.286814 0.145459 3.380125 -v 1.320923 0.099829 3.425755 -v 0.951045 0.500178 2.510524 -v -0.460212 0.500178 2.510524 -v 0.951045 0.197436 2.635923 -v -0.724548 0.532825 2.523313 -v -0.724548 0.195753 2.662932 -v -0.724548 0.056134 3.000004 -v -0.724548 0.195753 3.337075 -v 0.951045 0.155552 3.465195 -v 0.951045 0.197436 3.364077 -v 0.951045 0.500178 3.489476 -v 0.951045 0.458293 3.590595 -v -0.460212 0.500178 3.489476 -v -0.460212 0.197436 3.364077 -v -0.460212 0.155552 3.465195 -v -0.460212 0.458293 3.590595 -v 0.674638 0.458293 3.590595 -v 0.676644 0.321964 3.818654 -v 0.948697 0.323297 3.818799 -v 0.674042 0.500178 3.489476 -v 0.678557 0.155552 3.465195 -v 0.649846 0.155552 3.465195 -v -0.059018 0.088623 3.724480 -v -0.004002 0.088898 3.724510 -v -0.004015 0.318594 3.818287 -v -0.060217 0.318313 3.818256 -v 0.645678 0.092117 3.724860 -v 0.346592 0.090651 3.724701 -v 0.275455 0.090295 3.724662 -v 0.190590 0.089871 3.724616 -v 0.128016 0.089558 3.724582 -v 0.053442 0.089185 3.724541 -v 0.051715 0.318872 3.818317 -v 0.044163 0.311789 3.796066 -v 0.045414 0.108104 3.712906 -v 0.127999 0.319254 3.818359 -v 0.188876 0.319558 3.818392 -v 0.137105 0.309206 3.794886 -v 0.180025 0.309468 3.794915 -v 0.273733 0.319982 3.818438 -v 0.346589 0.320346 3.818478 -v 0.285150 0.311362 3.795548 -v 0.335438 0.311680 3.795582 -v 0.643209 0.321800 3.818636 -v 0.137117 0.111516 3.714176 -v 0.181234 0.111785 3.714205 -v 0.286340 0.110829 3.713675 -v 0.335441 0.111139 3.713708 -v 0.003776 0.311542 3.796039 -v 0.003785 0.107850 3.712878 -v 0.671568 0.425284 3.596467 -v 0.673140 0.318430 3.775219 -v 0.641987 0.458293 3.590595 -v 0.641563 0.500178 3.489476 -v 0.648869 0.138277 3.701704 -v 0.646934 0.318302 3.775205 -v 0.678212 0.092276 3.724878 -v 0.674369 0.138402 3.701718 -v 0.949896 0.093608 3.725023 -v 0.645976 0.425284 3.596467 -v 0.645644 0.458113 3.517211 -v 0.671101 0.458113 3.517211 -v 0.652136 0.187997 3.498180 -v 0.674639 0.187997 3.498180 -vt 0.444444 0.967260 -vt 0.444444 0.999701 -vt 0.378868 0.999701 -vt 0.378868 0.967260 -vt 0.706744 0.967259 -vt 0.706744 0.999701 -vt 0.641169 0.999701 -vt 0.641169 0.967260 -vt 0.575594 0.999701 -vt 0.575594 0.967260 -vt 0.250824 0.305563 -vt 0.248404 0.241712 -vt 0.254201 0.239089 -vt 0.256804 0.307740 -vt 0.643725 0.959927 -vt 0.704187 0.959927 -vt 0.301657 0.158688 -vt 0.309096 0.223840 -vt 0.303372 0.226973 -vt 0.295374 0.156925 -vt 0.309096 0.399006 -vt 0.301657 0.464157 -vt 0.295374 0.465920 -vt 0.303372 0.395872 -vt 0.207069 0.603722 -vt 0.223821 0.542059 -vt 0.230137 0.541287 -vt 0.212125 0.607583 -vt 0.248403 0.381134 -vt 0.250824 0.317282 -vt 0.256804 0.315106 -vt 0.254201 0.383756 -vt 0.247516 0.392819 -vt 0.240267 0.456304 -vt 0.209672 0.447180 -vt 0.215652 0.394810 -vt 0.226462 0.092204 -vt 0.238498 0.154958 -vt 0.206574 0.155385 -vt 0.196646 0.103618 -vt 0.240267 0.166542 -vt 0.247516 0.230027 -vt 0.215652 0.228035 -vt 0.209672 0.175665 -vt 0.217205 0.374353 -vt 0.219202 0.321681 -vt 0.238498 0.467888 -vt 0.226462 0.530642 -vt 0.196646 0.519228 -vt 0.206574 0.467461 -vt 0.313293 0.285661 -vt 0.315256 0.001710 -vt 0.381187 0.002166 -vt 0.379225 0.286117 -vt 0.385814 0.018304 -vt 0.384134 0.261443 -vt 0.541993 0.266641 -vt 0.555933 0.251561 -vt 0.573731 0.287890 -vt 0.706744 0.950449 -vt 0.772319 0.950449 -vt 0.769748 0.957931 -vt 0.709314 0.957931 -vt 0.675439 0.043014 -vt 0.700338 0.002620 -vt 0.702300 0.286572 -vt 0.678306 0.250613 -vt 0.573023 0.957932 -vt 0.512589 0.957931 -vt 0.510019 0.950449 -vt 0.575594 0.950449 -vt 0.579242 0.518640 -vt 0.567657 0.507006 -vt 0.582693 0.478078 -vt 0.507448 0.957932 -vt 0.447014 0.957931 -vt 0.444444 0.950449 -vt 0.378868 0.950449 -vt 0.441873 0.957932 -vt 0.381439 0.957932 -vt 0.638598 0.957931 -vt 0.578164 0.957931 -vt 0.641169 0.950449 -vt 0.772319 0.967259 -vt 0.709300 0.959927 -vt 0.769762 0.959927 -vt 0.441887 0.959927 -vt 0.381425 0.959928 -vt 0.447000 0.959927 -vt 0.507462 0.959927 -vt 0.643739 0.957931 -vt 0.704173 0.957931 -vt 0.315850 0.959928 -vt 0.315864 0.957932 -vt 0.376298 0.957932 -vt 0.376312 0.959928 -vt 0.662036 0.025151 -vt 0.553298 0.626937 -vt 0.568495 0.615996 -vt 0.583228 0.650081 -vt 0.568261 0.593570 -vt 0.582779 0.593348 -vt 0.637541 0.000299 -vt 0.638364 0.022418 -vt 0.306751 0.316097 -vt 0.304080 0.386550 -vt 0.292159 0.390332 -vt 0.295150 0.311423 -vt 0.280683 0.078442 -vt 0.293963 0.147683 -vt 0.283200 0.154056 -vt 0.268327 0.076503 -vt 0.253643 0.231744 -vt 0.245850 0.163488 -vt 0.256851 0.158081 -vt 0.265580 0.234531 -vt 0.260091 0.001297 -vt 0.278575 0.069334 -vt 0.247624 0.000299 -vt 0.245850 0.459358 -vt 0.253643 0.391101 -vt 0.265580 0.388314 -vt 0.256851 0.464764 -vt 0.231797 0.088736 -vt 0.244737 0.156206 -vt 0.312696 0.318788 -vt 0.310212 0.384316 -vt 0.244737 0.466639 -vt 0.231797 0.534110 -vt 0.287081 0.079724 -vt 0.299432 0.144125 -vt 0.283200 0.468789 -vt 0.292159 0.232513 -vt 0.242358 0.082512 -vt 0.268495 0.311423 -vt 0.242358 0.540334 -vt 0.190629 0.107579 -vt 0.199519 0.153931 -vt 0.156352 0.158234 -vt 0.148933 0.119551 -vt 0.208727 0.226051 -vt 0.203372 0.179159 -vt 0.217205 0.248492 -vt 0.219202 0.301165 -vt 0.212447 0.298662 -vt 0.210659 0.251499 -vt 0.203372 0.443686 -vt 0.208727 0.396794 -vt 0.190629 0.515267 -vt 0.199518 0.468915 -vt 0.167634 0.257037 -vt 0.169126 0.296397 -vt 0.128994 0.298746 -vt 0.127439 0.257734 -vt 0.160890 0.434906 -vt 0.165358 0.395772 -vt 0.212447 0.324183 -vt 0.210659 0.371346 -vt 0.167634 0.365808 -vt 0.169126 0.326448 -vt 0.165358 0.227073 -vt 0.160890 0.187940 -vt 0.125520 0.390391 -vt 0.120864 0.431168 -vt 0.111774 0.426126 -vt 0.115527 0.393253 -vt 0.127439 0.365112 -vt 0.128994 0.324099 -vt 0.125519 0.232455 -vt 0.120864 0.191677 -vt 0.117035 0.166617 -vt 0.109305 0.126309 -vt 0.156352 0.464612 -vt 0.148933 0.503295 -vt 0.109305 0.496537 -vt 0.117035 0.456229 -vt 0.115527 0.229592 -vt 0.111774 0.196719 -vt 0.106855 0.164519 -vt 0.100623 0.132025 -vt 0.100623 0.490821 -vt 0.106855 0.458327 -vt 0.071929 0.206740 -vt 0.074449 0.228811 -vt 0.037112 0.233074 -vt 0.034592 0.211003 -vt 0.119247 0.327710 -vt 0.117994 0.360773 -vt 0.077505 0.353798 -vt 0.078346 0.331599 -vt 0.065836 0.166851 -vt 0.061652 0.145034 -vt 0.061651 0.477812 -vt 0.065836 0.455995 -vt 0.093280 0.522558 -vt 0.084605 0.554487 -vt 0.046731 0.538565 -vt 0.052555 0.517127 -vt 0.071929 0.416106 -vt 0.074449 0.394034 -vt 0.028929 0.173930 -vt 0.024744 0.152113 -vt 0.024744 0.470733 -vt 0.028928 0.448916 -vt 0.034592 0.411843 -vt 0.037112 0.389771 -vt 0.673665 0.673462 -vt 0.583825 0.673463 -vt 0.583825 0.661107 -vt 0.673665 0.661107 -vt 0.583825 0.648751 -vt 0.673665 0.648751 -vt 0.583825 0.722886 -vt 0.583825 0.710530 -vt 0.673665 0.710530 -vt 0.673665 0.722885 -vt 0.673665 0.698174 -vt 0.583825 0.698174 -vt 0.583825 0.685818 -vt 0.673665 0.685818 -vt 0.674263 0.657488 -vt 0.683000 0.648751 -vt 0.695355 0.648751 -vt 0.704092 0.657488 -vt 0.704092 0.669844 -vt 0.695355 0.678581 -vt 0.682999 0.678581 -vt 0.674263 0.669844 -vt 0.003304 0.848715 -vt 0.026872 0.851863 -vt 0.026964 0.862035 -vt 0.000299 0.861133 -vt 0.591528 0.251561 -vt 0.573730 0.006258 -vt 0.592097 0.045324 -vt 0.447123 0.002620 -vt 0.509921 0.000299 -vt 0.509097 0.022418 -vt 0.485425 0.025151 -vt 0.509283 0.287766 -vt 0.508527 0.308267 -vt 0.447395 0.307129 -vt 0.445161 0.286572 -vt 0.638178 0.287766 -vt 0.636248 0.308292 -vt 0.574805 0.308410 -vt 0.664090 0.265938 -vt 0.605468 0.266641 -vt 0.637900 0.266577 -vt 0.003538 0.113914 -vt 0.000299 0.101991 -vt 0.010465 0.094133 -vt 0.016290 0.115571 -vt 0.673665 0.735241 -vt 0.583825 0.735241 -vt 0.026978 0.828506 -vt 0.048218 0.828557 -vt 0.048221 0.838503 -vt 0.026647 0.838672 -vt 0.003011 0.841266 -vt 0.000299 0.828780 -vt 0.051046 0.800371 -vt 0.050910 0.791153 -vt 0.256297 0.789503 -vt 0.256413 0.797334 -vt 0.552466 0.552854 -vt 0.344608 0.554207 -vt 0.343802 0.517193 -vt 0.552492 0.518459 -vt 0.092829 0.560843 -vt 0.103590 0.521237 -vt 0.039952 0.352375 -vt 0.040793 0.330176 -vt 0.031344 0.793088 -vt 0.031275 0.788417 -vt 0.307992 0.821098 -vt 0.302442 0.827908 -vt 0.274466 0.818149 -vt 0.275890 0.811868 -vt 0.512575 0.959927 -vt 0.573037 0.959927 -vt 0.300046 0.855841 -vt 0.274150 0.862262 -vt 0.272670 0.854230 -vt 0.294909 0.848715 -vt 0.304080 0.236296 -vt 0.306751 0.306748 -vt 0.046731 0.084281 -vt 0.052555 0.105719 -vt 0.253531 0.867360 -vt 0.253849 0.855797 -vt 0.256296 0.811837 -vt 0.256412 0.804005 -vt 0.274467 0.783191 -vt 0.275891 0.789471 -vt 0.302443 0.773432 -vt 0.307993 0.780242 -vt 0.272433 0.842081 -vt 0.274101 0.834087 -vt 0.299839 0.841114 -vt 0.294536 0.848117 -vt 0.253607 0.828505 -vt 0.253654 0.840073 -vt 0.048200 0.862482 -vt 0.048437 0.852539 -vt 0.178202 0.590083 -vt 0.172502 0.585678 -vt 0.184876 0.540132 -vt 0.192021 0.539216 -vt 0.553418 0.650133 -vt 0.568459 0.455510 -vt 0.553313 0.444607 -vt 0.583141 0.421546 -vt 0.222184 0.008257 -vt 0.184876 0.082714 -vt 0.142159 0.090273 -vt 0.131832 0.052263 -vt 0.172502 0.037168 -vt 0.010465 0.528712 -vt 0.016290 0.507275 -vt 0.553438 0.421486 -vt 0.579294 0.552649 -vt 0.207069 0.019124 -vt 0.212125 0.015262 -vt 0.230137 0.081559 -vt 0.223821 0.080787 -vt 0.192021 0.083630 -vt 0.178202 0.032763 -vt 0.835337 0.959927 -vt 0.774876 0.959927 -vt 0.774889 0.957931 -vt 0.835324 0.957931 -vt 0.119247 0.295135 -vt 0.117994 0.262072 -vt 0.073156 0.623144 -vt 0.124543 0.642293 -vt 0.147298 0.698850 -vt 0.124543 0.753685 -vt 0.073156 0.772834 -vt 0.019183 0.752292 -vt 0.000299 0.715395 -vt 0.000299 0.680584 -vt 0.019183 0.643686 -vt 0.837894 0.967259 -vt 0.131833 0.570583 -vt 0.142159 0.532572 -vt 0.578150 0.959927 -vt 0.638612 0.959927 -vt 0.316588 0.566360 -vt 0.316135 0.505151 -vt 0.327032 0.505997 -vt 0.327205 0.565445 -vt 0.325199 0.589422 -vt 0.313422 0.589890 -vt 0.325128 0.481936 -vt 0.313293 0.481323 -vt 0.328396 0.458075 -vt 0.318149 0.422764 -vt 0.344931 0.443095 -vt 0.317500 0.648537 -vt 0.328166 0.613272 -vt 0.313293 0.999701 -vt 0.313293 0.967260 -vt 0.266568 0.002090 -vt 0.283760 0.065372 -vt 0.222185 0.614589 -vt 0.103590 0.101609 -vt 0.092829 0.062002 -vt 0.093280 0.100288 -vt 0.084605 0.068358 -vt 0.313293 0.950449 -vt 0.310212 0.238529 -vt 0.312696 0.304057 -vt 0.003538 0.508931 -vt 0.000299 0.520855 -vt 0.280629 0.647431 -vt 0.292214 0.667720 -vt 0.292214 0.727167 -vt 0.280630 0.747455 -vt 0.227938 0.771742 -vt 0.177679 0.755673 -vt 0.147896 0.698358 -vt 0.177679 0.639213 -vt 0.227938 0.623144 -vt 0.344518 0.628436 -vt 0.344864 0.645367 -vt 0.567679 0.564328 -vt 0.345386 0.426160 -vt 0.321379 0.309007 -vt 0.348181 0.311072 -vt 0.346814 0.370598 -vt 0.319918 0.372352 -vt 0.319035 0.699253 -vt 0.346062 0.701099 -vt 0.578629 0.309007 -vt 0.582482 0.368090 -vt 0.552730 0.367902 -vt 0.550048 0.310686 -vt 0.578748 0.761487 -vt 0.550076 0.759426 -vt 0.552676 0.703908 -vt 0.582541 0.703747 -vt 0.347270 0.758738 -vt 0.558065 0.928960 -vt 0.550687 0.924347 -vt 0.550930 0.885091 -vt 0.558374 0.878875 -vt 0.442273 0.018695 -vt 0.440594 0.261833 -vt 0.719990 0.753760 -vt 0.711362 0.753164 -vt 0.711409 0.748802 -vt 0.720050 0.748194 -vt 0.558809 0.782594 -vt 0.553466 0.785950 -vt 0.553542 0.769874 -vt 0.558906 0.762085 -vt 0.523071 0.801651 -vt 0.527269 0.805192 -vt 0.527585 0.839077 -vt 0.523474 0.844882 -vt 0.583864 0.748194 -vt 0.591789 0.748650 -vt 0.591759 0.752506 -vt 0.583825 0.753114 -vt 0.523958 0.885237 -vt 0.530497 0.890536 -vt 0.531283 0.924612 -vt 0.524961 0.928713 -vt 0.627693 0.748375 -vt 0.627655 0.752744 -vt 0.696662 0.753087 -vt 0.696709 0.748702 -vt 0.660976 0.752977 -vt 0.661014 0.748487 -vt 0.522918 0.783847 -vt 0.527615 0.790596 -vt 0.527735 0.804551 -vt 0.609284 0.879288 -vt 0.609125 0.929342 -vt 0.558678 0.832385 -vt 0.609657 0.832799 -vt 0.551099 0.872461 -vt 0.551338 0.836023 -vt 0.529863 0.848009 -vt 0.530243 0.879639 -vt 0.343779 0.802494 -vt 0.343695 0.784690 -vt 0.475224 0.845209 -vt 0.463372 0.845290 -vt 0.449569 0.845385 -vt 0.439666 0.845452 -vt 0.427257 0.845537 -vt 0.418192 0.845599 -vt 0.409050 0.845661 -vt 0.553912 0.825721 -vt 0.554015 0.786696 -vt 0.748183 0.664506 -vt 0.743885 0.667670 -vt 0.709471 0.667342 -vt 0.704690 0.663671 -vt 0.748230 0.677708 -vt 0.743428 0.674541 -vt 0.708946 0.674384 -vt 0.704690 0.677993 -vt 0.674263 0.679178 -vt 0.678954 0.683000 -vt 0.678513 0.691305 -vt 0.674263 0.695158 -vt 0.713191 0.691406 -vt 0.717948 0.694885 -vt 0.717906 0.679285 -vt 0.713573 0.682833 -vt 0.674263 0.712333 -vt 0.679256 0.716024 -vt 0.678779 0.723450 -vt 0.674263 0.727142 -vt 0.712677 0.723401 -vt 0.717760 0.726648 -vt 0.717703 0.712821 -vt 0.713087 0.716118 -vt 0.475305 0.885568 -vt 0.463733 0.885647 -vt 0.449929 0.885741 -vt 0.439749 0.885811 -vt 0.427618 0.885894 -vt 0.331098 0.838796 -vt 0.409325 0.886018 -vt 0.331097 0.892100 -vt 0.344391 0.930068 -vt 0.418274 0.885957 -vt 0.568226 0.477860 -vt 0.610810 0.762612 -vt 0.610602 0.783121 -vt 0.313294 0.838795 -vt 0.313293 0.892100 -vt 0.772319 0.999701 -vt 0.510019 0.967260 -vt 0.510019 0.999701 -vt 0.834166 0.285661 -vt 0.768234 0.286116 -vt 0.766275 0.002164 -vt 0.832207 0.001709 -vt 0.763326 0.261444 -vt 0.761647 0.018304 -vt 0.280683 0.544403 -vt 0.268327 0.546342 -vt 0.293963 0.475162 -vt 0.260091 0.621549 -vt 0.247624 0.622547 -vt 0.278575 0.553512 -vt 0.287081 0.543122 -vt 0.299432 0.478720 -vt 0.078346 0.291246 -vt 0.077505 0.269047 -vt 0.673665 0.747597 -vt 0.583825 0.747597 -vt 0.000299 0.780763 -vt 0.010763 0.773432 -vt 0.031275 0.812923 -vt 0.010763 0.827908 -vt 0.000299 0.820577 -vt 0.031344 0.808252 -vt 0.051046 0.800969 -vt 0.050910 0.810187 -vt 0.040794 0.292669 -vt 0.039952 0.270471 -vt 0.837894 0.999701 -vt 0.266568 0.620755 -vt 0.283760 0.557474 -vt 0.837894 0.950449 -vt 0.320375 0.761358 -vt 0.705187 0.018693 -vt 0.706867 0.261833 -vt 0.658686 0.887344 -vt 0.658868 0.825939 -vt 0.679378 0.826000 -vt 0.679195 0.887405 -vt 0.690550 0.648153 -vt 0.628032 0.648153 -vt 0.583825 0.603947 -vt 0.583825 0.541429 -vt 0.628032 0.497222 -vt 0.690550 0.497222 -vt 0.734757 0.541428 -vt 0.734757 0.603946 -vt 0.832300 0.307073 -vt 0.769442 0.307507 -vt 0.606368 0.029512 -vt 0.378018 0.307507 -vt 0.315160 0.307073 -vt 0.572655 0.308410 -vt 0.511212 0.308292 -vt 0.765692 0.307390 -vt 0.702831 0.307825 -vt 0.444631 0.307825 -vt 0.381768 0.307391 -vt 0.700066 0.307129 -vt 0.638933 0.308268 -vt 0.028684 0.334662 -vt 0.028216 0.347009 -vt 0.028684 0.288183 -vt 0.028216 0.275836 -vt 0.024713 0.229498 -vt 0.023312 0.217222 -vt 0.016319 0.171298 -vt 0.013991 0.159164 -vt 0.016318 0.451548 -vt 0.013991 0.463682 -vt 0.023312 0.405623 -vt 0.024713 0.393347 -vt 0.929360 0.371663 -vt 0.949870 0.371663 -vt 0.949869 0.433068 -vt 0.929359 0.433068 -vt 0.541093 0.029512 -vt 0.555364 0.045324 -vt 0.472022 0.043014 -vt 0.469155 0.250613 -vt 0.483371 0.265938 -vt 0.509562 0.266577 -vt 0.583825 0.419180 -vt 0.583984 0.365876 -vt 0.601788 0.365929 -vt 0.601629 0.419233 -vt 0.880965 0.475742 -vt 0.829171 0.476114 -vt 0.829189 0.426323 -vt 0.880169 0.426061 -vt 0.881113 0.496251 -vt 0.829206 0.496624 -vt 0.615382 0.310197 -vt 0.879832 0.309007 -vt 0.879925 0.329517 -vt 0.828864 0.329746 -vt 0.795759 0.329895 -vt 0.615195 0.328000 -vt 0.679997 0.372243 -vt 0.688946 0.372331 -vt 0.688744 0.412689 -vt 0.679601 0.412599 -vt 0.794627 0.373366 -vt 0.745976 0.372890 -vt 0.734404 0.372777 -vt 0.720600 0.372642 -vt 0.710421 0.372542 -vt 0.698290 0.372423 -vt 0.704690 0.648751 -vt 0.748230 0.649035 -vt 0.743428 0.652203 -vt 0.708946 0.652359 -vt 0.697809 0.412778 -vt 0.710217 0.412900 -vt 0.717760 0.728233 -vt 0.717703 0.742060 -vt 0.713086 0.738763 -vt 0.712677 0.731480 -vt 0.720120 0.412997 -vt 0.733923 0.413133 -vt 0.717948 0.696029 -vt 0.717906 0.711629 -vt 0.713573 0.708081 -vt 0.713190 0.699508 -vt 0.745774 0.413249 -vt 0.794023 0.413720 -vt 0.679256 0.738857 -vt 0.678779 0.731431 -vt 0.674263 0.742548 -vt 0.674263 0.727739 -vt 0.678954 0.707914 -vt 0.678513 0.699609 -vt 0.674263 0.711736 -vt 0.674263 0.695756 -vt 0.743885 0.659074 -vt 0.709471 0.659401 -vt 0.704690 0.663073 -vt 0.748183 0.662238 -vt 0.824389 0.471998 -vt 0.824403 0.432972 -vt 0.793491 0.456950 -vt 0.614203 0.455572 -vt 0.793285 0.474753 -vt 0.614066 0.473375 -vt 0.800895 0.378983 -vt 0.800421 0.410612 -vt 0.829024 0.379832 -vt 0.821859 0.422664 -vt 0.821730 0.386224 -vt 0.879935 0.379571 -vt 0.798164 0.454064 -vt 0.798002 0.468018 -vt 0.660993 0.759351 -vt 0.627670 0.759305 -vt 0.627654 0.754935 -vt 0.660975 0.754860 -vt 0.696662 0.754919 -vt 0.696688 0.759304 -vt 0.711362 0.754912 -vt 0.711388 0.759274 -vt 0.591768 0.758859 -vt 0.591756 0.755003 -vt 0.802069 0.334014 -vt 0.801182 0.368087 -vt 0.583841 0.759277 -vt 0.583825 0.754357 -vt 0.798116 0.419538 -vt 0.797699 0.453421 -vt 0.823866 0.488818 -vt 0.823838 0.472743 -vt 0.719993 0.754357 -vt 0.720026 0.759923 -vt 0.821598 0.373594 -vt 0.821472 0.334337 -vt 0.608971 0.949851 -vt 0.344525 0.947871 +o Coils_Cylinder.012 +v -0.463562 0.524760 -0.428106 +v -0.237813 0.524760 -0.428106 +v -0.237813 0.222044 -0.302716 +v -0.463562 0.222044 -0.302716 +v -0.237813 0.096655 0.000000 +v -0.463562 0.096655 0.000000 +v -0.237813 0.222044 0.302716 +v -0.463562 0.222044 0.302716 +v -0.237813 0.524760 0.428106 +v -0.463562 0.524760 0.428106 +v -0.237813 0.827477 0.302716 +v -0.463562 0.827477 0.302716 +v -0.237813 0.952866 0.000000 +v -0.463562 0.952866 0.000000 +v -0.237813 0.827477 -0.302716 +v -0.463562 0.827477 -0.302716 +v -0.170088 0.524760 -0.428106 +v 0.055660 0.524760 -0.428106 +v 0.055660 0.222044 -0.302716 +v -0.170088 0.222044 -0.302716 +v 0.055660 0.096655 0.000000 +v -0.170088 0.096655 0.000000 +v 0.055660 0.222044 0.302716 +v -0.170088 0.222044 0.302716 +v 0.055660 0.524760 0.428106 +v -0.170088 0.524760 0.428106 +v 0.055660 0.827477 0.302716 +v -0.170088 0.827477 0.302716 +v 0.055660 0.952866 0.000000 +v -0.170088 0.952866 0.000000 +v 0.055660 0.827477 -0.302716 +v -0.170088 0.827477 -0.302716 +v 0.123385 0.524760 -0.428106 +v 0.349134 0.524760 -0.428106 +v 0.349134 0.222044 -0.302716 +v 0.123385 0.222044 -0.302716 +v 0.349134 0.096655 0.000000 +v 0.123385 0.096655 0.000000 +v 0.349134 0.222044 0.302716 +v 0.123385 0.222044 0.302716 +v 0.349134 0.524760 0.428106 +v 0.123385 0.524760 0.428106 +v 0.349134 0.827477 0.302716 +v 0.123385 0.827477 0.302716 +v 0.349134 0.952866 0.000000 +v 0.123385 0.952866 0.000000 +v 0.349134 0.827477 -0.302716 +v 0.123385 0.827477 -0.302716 +v 0.416858 0.524760 -0.428106 +v 0.642607 0.524760 -0.428106 +v 0.642607 0.222044 -0.302716 +v 0.416858 0.222044 -0.302716 +v 0.642607 0.096655 0.000000 +v 0.416858 0.096655 0.000000 +v 0.642607 0.222044 0.302716 +v 0.416858 0.222044 0.302716 +v 0.642607 0.524760 0.428106 +v 0.416858 0.524760 0.428106 +v 0.642607 0.827477 0.302716 +v 0.416858 0.827477 0.302716 +v 0.642607 0.952866 0.000000 +v 0.416858 0.952866 0.000000 +v 0.642607 0.827477 -0.302716 +v 0.416858 0.827477 -0.302716 +v 0.710331 0.524760 -0.428106 +v 0.936080 0.524760 -0.428106 +v 0.936080 0.222044 -0.302716 +v 0.710331 0.222044 -0.302716 +v 0.936080 0.096655 0.000000 +v 0.710331 0.096655 0.000000 +v 0.936080 0.222044 0.302716 +v 0.710331 0.222044 0.302716 +v 0.936080 0.524760 0.428106 +v 0.710331 0.524760 0.428106 +v 0.936080 0.827477 0.302716 +v 0.710331 0.827477 0.302716 +v 0.936080 0.952866 0.000000 +v 0.710331 0.952866 0.000000 +v 0.936080 0.827477 -0.302716 +v 0.710331 0.827477 -0.302716 +v -1.457017 0.997796 0.139627 +v -1.457017 1.110929 0.189700 +v -1.405270 1.098405 0.216824 +v -1.405270 0.985272 0.166751 +v -1.405270 1.073357 0.271072 +v -1.405270 0.960224 0.220999 +v -1.457017 1.060833 0.298196 +v -1.457017 0.947700 0.248123 +v -1.508763 1.073357 0.271072 +v -1.508763 0.960224 0.220999 +v -1.508763 1.098405 0.216824 +v -1.508763 0.985272 0.166751 +v -1.322476 0.997796 0.139627 +v -1.322476 1.110929 0.189700 +v -1.270730 1.098405 0.216824 +v -1.270730 0.985272 0.166751 +v -1.270730 1.073357 0.271072 +v -1.270730 0.960224 0.220999 +v -1.322476 1.060833 0.298196 +v -1.322476 0.947700 0.248123 +v -1.374223 1.073357 0.271072 +v -1.374223 0.960224 0.220999 +v -1.374223 1.098405 0.216824 +v -1.374223 0.985272 0.166751 +v -1.187935 0.997796 0.139627 +v -1.187935 1.110929 0.189700 +v -1.136189 1.098405 0.216824 +v -1.136189 0.985272 0.166751 +v -1.136189 1.073357 0.271072 +v -1.136189 0.960224 0.220999 +v -1.187935 1.060833 0.298196 +v -1.187935 0.947700 0.248123 +v -1.239682 1.073357 0.271072 +v -1.239682 0.960224 0.220999 +v -1.239682 1.098405 0.216824 +v -1.239682 0.985272 0.166751 +v -1.551588 0.824089 0.270719 +v -1.551588 0.906574 0.321562 +v -1.551588 1.018668 0.066710 +v -1.551588 0.936183 0.015867 +v -1.097206 1.018668 0.066710 +v -1.097206 0.936183 0.015867 +v -1.097206 0.906574 0.321562 +v -1.097206 0.824089 0.270719 +v -1.521210 0.950031 0.320343 +v -1.521210 1.047137 0.099566 +v -1.127583 1.047137 0.099566 +v -1.127583 0.950031 0.320343 +v -1.457017 0.997796 -0.139627 +v -1.405271 0.985272 -0.166751 +v -1.405271 1.098405 -0.216824 +v -1.457017 1.110929 -0.189700 +v -1.405271 0.960224 -0.220999 +v -1.405271 1.073357 -0.271072 +v -1.457017 0.947700 -0.248123 +v -1.457017 1.060833 -0.298196 +v -1.508764 0.960224 -0.220999 +v -1.508764 1.073357 -0.271072 +v -1.508764 1.098405 -0.216824 +v -1.508764 0.985272 -0.166751 +v -1.322476 0.997796 -0.139627 +v -1.270730 0.985272 -0.166751 +v -1.270730 1.098405 -0.216824 +v -1.322476 1.110929 -0.189700 +v -1.270730 0.960224 -0.220999 +v -1.270730 1.073357 -0.271072 +v -1.322476 0.947700 -0.248123 +v -1.322476 1.060833 -0.298196 +v -1.374223 0.960224 -0.220999 +v -1.374223 1.073357 -0.271072 +v -1.374223 1.098405 -0.216824 +v -1.374223 0.985272 -0.166751 +v -1.187936 0.997796 -0.139627 +v -1.136189 0.985272 -0.166751 +v -1.136189 1.098405 -0.216824 +v -1.187936 1.110929 -0.189700 +v -1.136189 0.960224 -0.220999 +v -1.136189 1.073357 -0.271072 +v -1.187936 0.947700 -0.248123 +v -1.187936 1.060833 -0.298196 +v -1.239682 0.960224 -0.220999 +v -1.239682 1.073357 -0.271072 +v -1.239682 1.098405 -0.216824 +v -1.239682 0.985272 -0.166751 +v -1.551588 0.824089 -0.270719 +v -1.551588 0.936183 -0.015867 +v -1.551588 1.018668 -0.066710 +v -1.551588 0.906574 -0.321562 +v -1.097206 0.936183 -0.015867 +v -1.097206 1.018668 -0.066710 +v -1.097206 0.824089 -0.270719 +v -1.097206 0.906574 -0.321562 +v -1.521211 1.047137 -0.099566 +v -1.521211 0.950031 -0.320343 +v -1.127584 1.047137 -0.099566 +v -1.127584 0.950031 -0.320343 +v -1.552216 0.766425 0.449060 +v -1.552216 0.766425 0.324053 +v -1.613245 0.699098 0.324053 +v -1.613245 0.699098 0.449060 +v -1.552216 0.456014 0.324053 +v -1.048308 0.766425 0.449060 +v -1.048308 0.766425 0.324053 +v -1.552216 0.456014 0.449060 +v -1.048308 0.456014 0.324053 +v -1.041527 0.788142 0.315308 +v -1.041527 0.434297 0.315308 +v -1.048308 0.456014 0.449060 +v -1.041527 0.788142 0.457806 +v -1.041527 0.434297 0.457806 +v -0.900483 0.434297 0.457806 +v -0.900483 0.788142 0.457806 +v -0.900483 0.788142 0.315308 +v -0.896414 0.768510 0.449899 +v -0.896414 0.768510 0.323214 +v -0.900483 0.434297 0.315308 +v -0.896414 0.453929 0.449899 +v -0.817755 0.457256 0.449106 +v -0.817755 0.767895 0.449106 +v -0.896414 0.453929 0.323214 +v -0.817755 0.457256 0.324007 +v -0.817755 0.767895 0.324007 +v -1.613245 0.523341 0.449060 +v -1.613245 0.523341 0.324053 +v -1.552216 0.766425 -0.449060 +v -1.613245 0.699098 -0.449060 +v -1.613245 0.699098 -0.324053 +v -1.552216 0.766425 -0.324053 +v -1.552216 0.456014 -0.324053 +v -1.048308 0.766425 -0.324053 +v -1.048308 0.766425 -0.449060 +v -1.552216 0.456014 -0.449060 +v -1.048308 0.456014 -0.324053 +v -1.041528 0.434297 -0.315308 +v -1.041528 0.788142 -0.315308 +v -1.048308 0.456014 -0.449060 +v -1.041528 0.788142 -0.457806 +v -0.900483 0.788142 -0.457806 +v -0.900483 0.434297 -0.457806 +v -1.041528 0.434297 -0.457806 +v -0.900483 0.788142 -0.315308 +v -0.896414 0.768510 -0.323214 +v -0.896414 0.768510 -0.449899 +v -0.900483 0.434297 -0.315308 +v -0.817755 0.767895 -0.449106 +v -0.817755 0.457256 -0.449106 +v -0.896414 0.453929 -0.449899 +v -0.896414 0.453929 -0.323214 +v -0.817755 0.457256 -0.324007 +v -0.817755 0.767895 -0.324007 +v -1.613245 0.523341 -0.449060 +v -1.613245 0.523341 -0.324053 +v -2.170566 0.644712 -0.108739 +v -2.102717 0.644712 -0.108739 +v -2.102717 0.567822 -0.076890 +v -2.170566 0.567822 -0.076890 +v -2.102717 0.535974 0.000000 +v -2.170566 0.535974 0.000000 +v -2.102717 0.567822 0.076890 +v -2.170566 0.567822 0.076890 +v -2.102717 0.644712 0.108739 +v -2.170566 0.644712 0.108739 +v -2.102717 0.721602 0.076890 +v -2.170566 0.721602 0.076890 +v -2.102717 0.753451 0.000000 +v -2.170566 0.753451 0.000000 +v -2.102717 0.721602 -0.076890 +v -2.170566 0.721602 -0.076890 +v -2.209619 0.644712 0.088337 +v -2.209619 0.582248 0.062464 +v -2.209619 0.644712 -0.088337 +v -2.209619 0.582248 -0.062464 +v -2.209619 0.556375 0.000000 +v -2.209619 0.707176 0.062464 +v -2.209619 0.733049 0.000000 +v -2.209619 0.707176 -0.062464 +v -0.166791 0.038391 -0.117032 +v -0.166791 0.038391 0.117032 +v -0.118438 0.018363 0.117032 +v -0.118438 0.018363 -0.117032 +v -0.098409 -0.029991 0.117032 +v -0.098409 -0.029991 -0.117032 +v -0.118438 -0.078344 0.117032 +v -0.118438 -0.078344 -0.117032 +v -0.166791 -0.098373 0.117032 +v -0.166791 -0.098373 -0.117032 +v -0.215145 -0.078344 0.117032 +v -0.215145 -0.078344 -0.117032 +v -0.235173 -0.029991 0.117032 +v -0.235173 -0.029991 -0.117032 +v -0.215145 0.018363 0.117032 +v -0.215145 0.018363 -0.117032 +v -0.033837 0.094104 -0.072767 +v -0.033837 -0.016338 -0.072767 +v -0.115306 -0.142061 -0.072767 +v -0.115306 0.094104 -0.072767 +v 0.797049 0.094104 -0.072767 +v 0.797049 -0.016338 -0.072767 +v 0.796577 -0.079782 0.048582 +v 0.796577 -0.079782 -0.048582 +v 0.886076 -0.258069 -0.048582 +v 0.886076 -0.258069 0.048582 +v 0.797049 -0.016338 0.072767 +v 0.797049 0.094104 0.072767 +v -0.033837 0.094104 0.072767 +v -0.033837 -0.016338 0.072767 +v -0.026079 -0.079782 -0.048582 +v -0.115306 0.094104 0.072767 +v -0.272459 0.094104 -0.072767 +v -0.272459 0.094104 0.072767 +v -0.115306 -0.142061 0.072767 +v -0.272459 -0.098487 0.072767 +v -0.264701 -0.161930 0.048582 +v -0.107548 -0.205505 0.048582 +v -0.272459 -0.098487 -0.072767 +v -0.026079 -0.079782 0.048582 +v -0.107548 -0.205505 -0.048582 +v -0.264701 -0.161930 -0.048582 +v 0.886547 -0.194626 0.072767 +v 0.888072 -0.069961 0.072767 +v 0.917361 0.000750 0.072767 +v 0.988072 0.030039 0.072767 +v 1.058783 0.000750 0.072767 +v 1.088072 -0.069961 0.072767 +v 1.088250 -0.195375 0.072767 +v 0.886547 -0.194626 -0.072767 +v 1.088250 -0.195375 -0.072767 +v 1.087778 -0.258818 -0.048582 +v 1.087778 -0.258818 0.048582 +v 1.152616 -0.153109 -0.048582 +v 1.152616 -0.153109 0.048582 +v 1.153087 -0.089666 0.072767 +v 0.888072 -0.069961 -0.072767 +v 0.917362 -0.140671 -0.072767 +v 0.988072 -0.169961 -0.072767 +v 1.058783 -0.140671 -0.072767 +v 1.088072 -0.069961 -0.072767 +v 1.153087 -0.089666 -0.072767 +v 1.153087 0.092782 -0.072767 +v 1.153087 0.092782 0.072767 +v 0.917361 0.000750 -0.072767 +v 1.058783 0.000750 -0.072767 +v 1.058783 -0.140671 0.072767 +v 0.988072 -0.169961 0.072767 +v 0.917362 -0.140671 0.072767 +v 0.988072 0.030039 -0.072767 +v -1.185225 0.299229 -0.228225 +v -1.185225 0.078919 -0.228225 +v -1.579320 0.146982 -0.228225 +v -1.579320 0.299229 -0.228225 +v -0.726389 0.070637 -0.201417 +v -0.726389 0.299229 -0.201417 +v -0.726389 0.299229 0.201417 +v -0.726389 0.070637 0.201417 +v -0.770558 0.343398 -0.201417 +v -1.096886 0.343398 -0.201417 +v -1.096886 0.343398 0.201417 +v -0.770558 0.343398 0.201417 +v -1.185225 0.078919 0.228225 +v -1.185225 0.299229 0.228225 +v -1.579320 0.299229 0.228225 +v -1.579320 0.146982 0.228225 +v -1.185225 0.343398 0.201417 +v -1.185225 0.343398 -0.201417 +v -1.579320 0.343398 -0.201417 +v -1.579320 0.343398 0.201417 +v -1.096886 0.026467 -0.201417 +v -0.770558 0.026467 -0.201417 +v -0.770558 0.026467 0.201417 +v -1.096886 0.026467 0.201417 +v -1.096886 0.070637 -0.228225 +v -1.096886 0.299229 -0.228225 +v -0.770558 0.299229 -0.228225 +v -0.770558 0.070637 -0.228225 +v -0.770558 0.070637 0.228225 +v -0.770558 0.299229 0.228225 +v -1.096886 0.299229 0.228225 +v -1.096886 0.070637 0.228225 +v -1.690351 0.200246 0.201417 +v -1.690351 0.287913 0.201417 +v -1.690351 0.287913 -0.201417 +v -1.690351 0.200246 -0.201417 +v -1.184581 0.033984 0.201417 +v -1.184581 0.033984 -0.201417 +v -1.659805 0.134929 0.201417 +v -1.579964 0.102270 0.201417 +v -1.667659 0.194088 0.228225 +v -1.667659 0.291126 0.228225 +v -1.646801 0.339453 0.201417 +v -1.659805 0.134929 -0.201417 +v -1.667659 0.194088 -0.228225 +v -1.579964 0.102270 -0.201417 +v -1.667040 0.336028 -0.201417 +v -1.667659 0.291126 -0.228225 +v -0.991593 0.009137 0.090896 +v -0.991593 0.050129 0.090896 +v -0.991593 0.050129 -0.090896 +v -0.991593 0.009137 -0.090896 +v -0.359255 0.050129 -0.090896 +v -0.359255 0.009137 -0.090896 +v -0.359255 0.050129 0.090896 +v -0.359255 0.009137 0.090896 +v -0.952793 -0.032302 0.079741 +v -0.475801 -0.032302 0.079741 +v -0.398056 -0.032302 0.079741 +v -0.952793 -0.032302 -0.079741 +v -0.477062 -0.032302 -0.079741 +v -0.398056 -0.032302 -0.079741 +v -0.547697 -0.243266 -0.079741 +v -0.468691 -0.243266 -0.079741 +v -0.417833 -0.308250 -0.079741 +v -0.496840 -0.308250 -0.079741 +v -0.468691 -0.243266 0.079741 +v -0.546437 -0.243266 0.079741 +v -0.495579 -0.308250 0.079741 +v -0.884730 -0.317360 -0.073714 +v -0.883469 -0.317360 0.085769 +v -0.417833 -0.308250 0.079741 +v -0.548320 -0.390292 0.079741 +v -0.549581 -0.390292 -0.079741 +v -0.470574 -0.390292 -0.079741 +v -0.470574 -0.390292 0.079741 +v -0.933383 -0.398929 -0.073714 +v -0.932122 -0.398929 0.085769 +v -1.071287 -0.315922 0.087949 +v -1.072548 -0.315922 -0.071533 +v -1.022634 -0.234353 0.087949 +v -1.023895 -0.234353 -0.071533 +v -0.906556 -0.031746 0.035327 +v -0.906556 -0.031746 -0.035327 +v -0.750972 -0.031746 -0.035327 +v -0.750972 -0.031746 0.035327 +v -0.891840 -0.172320 -0.035327 +v -0.891840 -0.172320 0.035327 +v -0.858049 -0.254618 0.035327 +v -0.773318 -0.237178 0.035327 +v -0.781494 -0.172320 0.035327 +v -0.781494 -0.172320 -0.035327 +v -0.752234 -0.268743 0.035327 +v -0.752234 -0.268743 -0.035327 +v -0.773318 -0.237178 -0.035327 +v -0.858049 -0.254618 -0.035327 +v -0.786277 -0.298175 0.035327 +v -0.786277 -0.298175 -0.035327 +v -0.654718 0.939467 0.338343 +v -0.745955 0.781575 0.338343 +v -0.745839 1.097427 0.338343 +v -0.757348 1.077508 0.380293 +v -0.677723 0.939476 0.380293 +v -1.019432 0.939601 0.338343 +v -0.928196 1.097493 0.338343 +v -0.928312 0.781642 0.338343 +v -0.916701 1.077567 0.380293 +v -0.996428 0.939592 0.380293 +v -0.949024 0.939575 0.380293 +v -0.893014 1.036505 0.380293 +v -0.916802 0.801560 0.380293 +v -0.757450 0.801501 0.380293 +v -0.781065 1.036464 0.380293 +v -0.884357 1.021497 0.419074 +v -0.789734 1.021463 0.419074 +v -0.781137 0.842563 0.380293 +v -0.893085 0.842604 0.380293 +v -0.725127 0.939493 0.380293 +v -0.931698 0.939569 0.419074 +v -0.877029 0.939549 0.419074 +v -0.857040 0.974142 0.419074 +v -0.884417 0.857606 0.419074 +v -0.742452 0.939499 0.419074 +v -0.789794 0.857571 0.419074 +v -0.817086 0.974128 0.419074 +v -0.857040 0.974142 0.317496 +v -0.817086 0.974128 0.317496 +v -0.817111 0.904926 0.419074 +v -0.857065 0.904940 0.419074 +v -0.797122 0.939519 0.419074 +v -0.797122 0.939519 0.317496 +v -0.877029 0.939549 0.317496 +v -0.857065 0.904940 0.317496 +v -0.817111 0.904926 0.317496 +v -0.745955 0.781575 -0.338343 +v -0.654718 0.939467 -0.338343 +v -0.677723 0.939476 -0.380293 +v -0.757348 1.077508 -0.380293 +v -0.745839 1.097427 -0.338343 +v -0.928196 1.097493 -0.338343 +v -1.019432 0.939601 -0.338343 +v -0.928312 0.781642 -0.338343 +v -0.916701 1.077567 -0.380293 +v -0.893014 1.036505 -0.380293 +v -0.949024 0.939575 -0.380293 +v -0.996428 0.939593 -0.380293 +v -0.916802 0.801560 -0.380293 +v -0.757450 0.801502 -0.380293 +v -0.781065 1.036464 -0.380293 +v -0.789734 1.021463 -0.419074 +v -0.884357 1.021497 -0.419074 +v -0.893085 0.842604 -0.380293 +v -0.781137 0.842563 -0.380293 +v -0.725127 0.939493 -0.380293 +v -0.857040 0.974142 -0.419074 +v -0.877029 0.939549 -0.419074 +v -0.931698 0.939569 -0.419074 +v -0.884417 0.857606 -0.419074 +v -0.789794 0.857571 -0.419074 +v -0.742452 0.939499 -0.419074 +v -0.817086 0.974128 -0.419074 +v -0.817086 0.974128 -0.317496 +v -0.857040 0.974142 -0.317496 +v -0.857065 0.904940 -0.419074 +v -0.817111 0.904926 -0.419074 +v -0.797122 0.939519 -0.419074 +v -0.797122 0.939519 -0.317496 +v -0.817111 0.904926 -0.317496 +v -0.857065 0.904940 -0.317496 +v -0.877029 0.939549 -0.317496 +v 0.990151 -0.648179 -0.190841 +v 0.990151 -0.321606 -0.374799 +v 1.068843 -0.322088 -0.329369 +v 1.068843 -0.609076 -0.167709 +v 1.068843 -0.323051 -0.238509 +v 1.068843 -0.530870 -0.121444 +v 0.990151 -0.323533 -0.193078 +v 0.990151 -0.491768 -0.098312 +v 0.911459 -0.323051 -0.238509 +v 0.911459 -0.530870 -0.121444 +v 0.911459 -0.322088 -0.329369 +v 0.911459 -0.609076 -0.167709 +v 0.990151 0.000993 -0.183958 +v 1.068843 -0.038592 -0.161660 +v 1.068843 -0.117761 -0.117064 +v 0.990151 -0.157346 -0.094766 +v 0.911459 -0.117761 -0.117064 +v 0.911459 -0.038592 -0.161660 +v 0.990151 -0.002981 0.190841 +v 1.068843 -0.042084 0.167709 +v 1.068843 -0.120290 0.121444 +v 0.990151 -0.159393 0.098312 +v 0.911459 -0.120290 0.121444 +v 0.911459 -0.042084 0.167709 +v 0.990151 -0.329554 0.374799 +v 1.068843 -0.329073 0.329369 +v 1.068843 -0.328109 0.238509 +v 0.990151 -0.327627 0.193079 +v 0.911459 -0.328109 0.238509 +v 0.911459 -0.329073 0.329369 +v 0.990151 -0.652153 0.183958 +v 1.068843 -0.612568 0.161660 +v 1.068843 -0.533399 0.117064 +v 0.990151 -0.493815 0.094766 +v 0.911459 -0.533399 0.117064 +v 0.911459 -0.612568 0.161660 +v -0.972691 1.166717 0.278124 +v -0.972691 1.166717 -0.278124 +v -0.987438 1.166717 -0.260322 +v -0.987438 1.166717 0.260322 +v -0.934937 1.102284 0.278124 +v -0.934937 1.102284 -0.278124 +v -0.971860 1.037372 0.278124 +v -0.971860 1.037372 -0.278124 +v -1.046537 1.036892 0.278124 +v -1.046537 1.036892 -0.278124 +v -1.047369 1.166237 0.278124 +v -1.084291 1.101324 0.278124 +v -1.084291 1.101324 -0.278124 +v -1.047368 1.166237 -0.278124 +v -1.032621 1.166237 -0.260322 +v -1.032621 1.166237 0.260322 +v -1.033084 1.202181 0.260322 +v -1.033084 1.202181 -0.260322 +v -0.987902 1.202661 0.260322 +v -0.987902 1.202661 -0.260322 +v -1.464091 -0.996279 -0.140051 +v -1.457375 -0.967729 -0.140051 +v -1.339310 -0.995504 -0.070026 +v -1.346026 -1.024054 -0.070026 +v -1.339310 -0.995504 0.070026 +v -1.346026 -1.024054 0.070026 +v -1.457375 -0.967729 0.140051 +v -1.464091 -0.996279 0.140051 +v -1.575440 -0.939954 0.070026 +v -1.582156 -0.968503 0.070026 +v -1.343945 -0.917630 -0.057125 +v -1.343945 -0.917630 0.057125 +v -1.575440 -0.939954 -0.070026 +v -1.582156 -0.968503 -0.070026 +v -1.482215 -1.073316 0.113549 +v -1.386492 -1.095835 0.056774 +v -1.440258 -0.894971 -0.114249 +v -1.536572 -0.872313 -0.057125 +v -1.536572 -0.872313 0.057125 +v -1.440258 -0.894971 0.114249 +v -1.577937 -1.050797 0.056774 +v -1.577937 -1.050797 -0.056774 +v -1.539716 -1.059789 -0.034105 +v -1.539716 -1.059789 0.034105 +v -1.482215 -1.073316 -0.113549 +v -1.386492 -1.095835 -0.056774 +v -1.482215 -1.073316 -0.068210 +v -1.487302 -1.094942 -0.059778 +v -1.537696 -1.083087 -0.029889 +v -1.482215 -1.073316 0.068210 +v -1.424713 -1.086844 0.034105 +v -1.424713 -1.086844 -0.034105 +v -1.436908 -1.106798 -0.029889 +v -1.436908 -1.106798 0.029889 +v -1.487302 -1.094942 0.059778 +v -1.537696 -1.083087 0.029889 +v -1.508359 -0.214874 0.108693 +v -1.504838 -0.215309 -0.106817 +v -1.564296 -0.274102 -0.089219 +v -1.567402 -0.273718 0.089973 +v -1.348484 -0.928894 -0.174279 +v -1.331423 -0.813343 -0.174279 +v -1.263873 -0.855085 -0.182453 +v -1.262042 -0.949106 -0.182453 +v -1.263873 -0.855085 0.182453 +v -1.207149 -0.865197 0.174081 +v -1.207149 -0.865197 -0.174081 +v -1.570189 -0.877055 0.143835 +v -1.435938 -0.379825 0.163084 +v -1.622805 -0.828855 0.096503 +v -1.262042 -0.949106 0.182453 +v -1.348484 -0.928894 0.174279 +v -1.435938 -0.379825 -0.163084 +v -1.112852 -0.829663 0.130793 +v -1.112852 -0.829663 -0.130793 +v -1.205319 -0.959218 -0.174081 +v -1.205319 -0.959218 0.174081 +v -1.111021 -0.923684 0.130793 +v -1.072210 -0.848373 0.087270 +v -1.073111 -0.802094 0.087270 +v -1.111021 -0.923684 -0.130793 +v -1.072210 -0.848373 -0.087270 +v -1.073111 -0.802094 -0.087270 +v -1.681696 -0.766817 -0.072169 +v -1.689936 -0.702839 -0.059605 +v -1.640119 -0.414721 -0.072179 +v -1.619700 -0.829239 -0.095954 +v -1.684682 -0.766448 0.071709 +v -1.643105 -0.414353 0.071698 +v -1.666879 -0.498637 -0.059615 +v -1.669865 -0.498268 0.058900 +v -1.692922 -0.702470 0.058910 +v -1.690559 -0.607421 0.054481 +v -1.687573 -0.607789 -0.055307 +v -1.331423 -0.813343 0.174279 +v -1.416650 -0.767127 -0.178303 +v -1.416650 -0.767127 0.178303 +v -1.469005 -0.685482 -0.171908 +v -1.469005 -0.685482 0.171908 +v -1.542909 -0.883434 -0.161182 +v -1.516768 -0.889546 -0.174389 +v -1.516768 -0.889546 0.174389 +v -1.542909 -0.883434 0.161182 +v -1.432626 -0.909220 -0.178303 +v -1.432626 -0.909220 0.178303 +v -1.484962 -0.656299 -0.158888 +v -1.570189 -0.877055 -0.143835 +v -1.484962 -0.656299 0.158888 +v -1.325666 -0.019640 0.170554 +v -1.325666 0.137146 0.170554 +v -1.472478 0.148884 0.071087 +v -1.472478 -0.007902 0.071087 +v -1.325666 -0.019640 -0.170554 +v -1.325666 0.137146 -0.170554 +v -1.062875 0.137146 -0.170554 +v -1.062875 -0.019640 -0.170554 +v -1.130714 -0.142396 -0.170554 +v -0.914155 -0.020276 -0.107189 +v -0.981994 -0.143031 -0.107189 +v -1.062875 -0.019640 0.170554 +v -1.062875 0.137146 0.170554 +v -0.914155 0.136510 -0.107189 +v -1.259746 -0.728734 -0.170554 +v -1.147611 -0.221161 -0.170554 +v -0.998891 -0.221796 -0.107189 +v -1.111026 -0.729370 -0.107189 +v -1.346664 -0.179545 0.170554 +v -1.130714 -0.142396 0.170554 +v -1.346664 -0.179545 -0.170554 +v -1.447785 -0.735647 0.170554 +v -1.363562 -0.258310 0.170554 +v -1.510373 -0.246572 0.071087 +v -1.594597 -0.723909 0.071087 +v -0.981994 -0.143031 0.107189 +v -0.914155 -0.020276 0.107189 +v -1.363562 -0.258310 -0.170554 +v -1.447785 -0.735647 -0.170554 +v -1.594597 -0.723909 -0.071087 +v -1.510373 -0.246572 -0.071087 +v -1.147611 -0.221161 0.170554 +v -1.259746 -0.728734 0.170554 +v -1.483874 -0.874924 0.170554 +v -1.219691 -0.868011 0.170554 +v -1.493475 -0.167807 0.071087 +v -1.219691 -0.868011 -0.170554 +v -0.914155 0.136510 0.107189 +v -1.472478 -0.007902 -0.071087 +v -1.472478 0.148884 -0.071087 +v -1.493475 -0.167807 -0.071087 +v -1.630686 -0.740134 -0.071087 +v -1.630686 -0.740134 0.071087 +v -0.998891 -0.221796 0.107189 +v -1.111026 -0.729370 0.107189 +v -1.100054 -0.868647 0.107189 +v -1.100054 -0.868647 -0.107189 +v -1.483874 -0.874924 -0.170554 +v -1.114931 0.645018 -0.394257 +v -0.705608 0.645018 -0.392564 +v -0.705608 0.367434 -0.277584 +v -1.115595 0.367434 -0.277584 +v -0.705608 0.252454 0.000000 +v -1.115595 0.252454 0.000000 +v -0.705608 0.367434 0.277584 +v -1.115595 0.367434 0.277584 +v -0.705608 0.645018 0.392564 +v -1.115595 0.645018 0.392564 +v -0.705608 0.922602 0.277584 +v -1.115595 0.922602 0.277584 +v -0.705608 1.037581 0.000000 +v -1.115595 1.037581 0.000000 +v -0.705608 0.922602 -0.277584 +v -1.115595 0.922602 -0.277584 +v -1.680468 0.367434 -0.277584 +v -1.680468 0.252454 0.000000 +v -1.696762 0.326183 0.000000 +v -1.696762 0.419567 -0.225451 +v -1.696762 0.645018 0.318835 +v -1.696762 0.870468 0.225451 +v -1.717499 0.922175 0.277157 +v -1.717499 0.645018 0.391959 +v -1.680468 0.645018 0.392564 +v -1.680468 0.922602 0.277584 +v -1.680468 0.922602 -0.277584 +v -1.680468 0.645018 -0.392564 +v -1.696762 0.645018 -0.318835 +v -1.696762 0.870469 -0.225450 +v -1.680468 0.367434 0.277584 +v -1.696762 0.419567 0.225451 +v -1.680468 1.037582 0.000000 +v -1.696762 0.963853 0.000000 +v -1.717499 1.036977 0.000000 +v -1.717499 0.922175 -0.277157 +v -1.807855 0.922175 -0.277157 +v -1.807855 1.036977 0.000000 +v -1.717499 0.367861 0.277157 +v -1.717499 0.253059 0.000000 +v -1.717499 0.367861 -0.277157 +v -1.717499 0.645018 -0.391959 +v -1.807855 0.922175 0.277157 +v -1.827112 0.964049 0.000000 +v -1.827112 0.870607 0.225589 +v -1.807856 0.645018 0.391959 +v -1.807856 0.367861 0.277157 +v -1.807856 0.253059 0.000000 +v -1.807856 0.367861 -0.277157 +v -1.807856 0.645018 -0.391959 +v -1.827112 0.645018 -0.319031 +v -1.827112 0.419429 -0.225589 +v -1.850272 0.367220 -0.277798 +v -1.850272 0.645018 -0.392866 +v -1.827112 0.645018 0.319031 +v -1.827112 0.419429 0.225589 +v -1.827112 0.325987 0.000000 +v -1.827112 0.870607 -0.225589 +v -1.850272 1.037884 0.000000 +v -1.850272 0.922816 -0.277798 +v -1.929992 0.922816 -0.277798 +v -1.929992 1.037884 0.000000 +v -1.850272 0.922816 0.277798 +v -1.850272 0.645018 0.392866 +v -1.850272 0.367220 0.277798 +v -1.850272 0.252152 0.000000 +v -1.929992 0.367220 -0.277798 +v -1.929992 0.252152 0.000000 +v -2.043752 0.321683 0.000000 +v -2.043752 0.416385 -0.228633 +v -1.929992 0.922816 0.277798 +v -1.929992 0.645018 0.392866 +v -1.929992 0.367220 0.277798 +v -1.929992 0.645018 -0.392866 +v -2.043752 0.873651 -0.228633 +v -2.043752 0.645018 -0.323335 +v -2.121962 0.645018 -0.225354 +v -2.121962 0.804367 -0.159349 +v -2.043752 0.968353 0.000000 +v -2.043752 0.873651 0.228633 +v -2.043752 0.645018 0.323335 +v -2.043752 0.416385 0.228633 +v -2.121962 0.870372 0.000000 +v -2.179800 0.787147 -0.142129 +v -2.179800 0.846019 0.000000 +v -2.121962 0.804367 0.159349 +v -2.121962 0.645018 0.225354 +v -2.121962 0.485669 0.159349 +v -2.121962 0.419664 0.000000 +v -2.121962 0.485669 -0.159349 +v -2.179800 0.787147 0.142129 +v -2.179800 0.817735 0.000000 +v -2.179800 0.767148 0.122130 +v -2.179800 0.645018 0.201001 +v -2.179800 0.502889 0.142129 +v -2.179800 0.444017 0.000000 +v -2.179800 0.502889 -0.142129 +v -2.179800 0.645018 -0.201001 +v -2.179800 0.645018 -0.172717 +v -2.179800 0.522888 -0.122130 +v -2.139229 0.522888 -0.122130 +v -2.139229 0.645018 -0.172717 +v -2.179800 0.645018 0.172717 +v -2.179800 0.522888 0.122130 +v -2.179800 0.472301 0.000000 +v -2.179800 0.767148 -0.122130 +v -2.139229 0.472301 0.000000 +v -2.139229 0.522888 0.122130 +v -2.139229 0.645018 0.172717 +v -2.139229 0.767148 0.122130 +v -2.139229 0.817735 0.000000 +v -2.139229 0.767148 -0.122130 +v -1.416219 0.923800 -0.278782 +v -1.416219 0.645018 -0.394257 +v -1.415588 1.037581 0.000000 +v -1.416219 0.923800 0.278782 +v -1.416219 0.645018 0.394257 +v -1.416219 0.366236 0.278782 +v -1.415589 0.252454 0.000000 +v -1.416219 0.366236 -0.278782 +v -1.161507 0.923800 -0.278782 +v -1.161507 0.645018 -0.394257 +v -1.161507 1.039275 0.000000 +v -1.161507 0.923800 0.278782 +v -1.161507 0.645018 0.394257 +v -1.161507 0.366236 0.278782 +v -1.161507 0.250761 0.000000 +v -1.161507 0.366236 -0.278782 +v -1.379544 0.645018 -0.394257 +v -1.379545 0.366236 -0.278782 +v -1.379545 1.039275 0.000000 +v -1.379545 0.923800 0.278782 +v -1.382795 0.953877 0.308859 +v -1.382795 1.081811 0.000000 +v -1.319287 0.645018 -0.409318 +v -1.221764 0.645018 -0.409318 +v -1.221764 0.355586 -0.289432 +v -1.319287 0.355586 -0.289432 +v -1.158621 0.950501 -0.305483 +v -1.158621 1.077036 0.000000 +v -1.379545 0.250761 0.000000 +v -1.319287 0.235700 0.000000 +v -1.316037 0.208225 0.000000 +v -1.316037 0.336159 -0.308859 +v -1.221764 0.235700 0.000000 +v -1.158621 0.950501 0.305483 +v -1.158621 0.645018 0.432019 +v -1.379545 0.366236 0.278782 +v -1.379545 0.645018 0.394257 +v -1.382795 0.336159 0.308859 +v -1.382795 0.645018 0.436793 +v -1.221764 0.355586 0.289432 +v -1.319287 0.355586 0.289432 +v -1.221764 0.934450 -0.289432 +v -1.221764 1.054336 0.000000 +v -1.224650 1.077036 0.000000 +v -1.224650 0.950501 -0.305483 +v -1.382795 0.336159 -0.308859 +v -1.382795 0.208225 0.000000 +v -1.221764 0.645018 0.409318 +v -1.319287 0.645018 0.409318 +v -1.158621 0.339535 0.305483 +v -1.158621 0.212999 0.000000 +v -1.319287 1.054336 0.000000 +v -1.319287 0.934450 -0.289432 +v -1.316037 0.953877 -0.308859 +v -1.316037 1.081811 0.000000 +v -1.221764 0.934450 0.289432 +v -1.319287 0.934450 0.289432 +v -1.224650 0.645018 0.432019 +v -1.224650 0.950501 0.305483 +v -1.316037 0.953877 0.308859 +v -1.316037 0.645018 0.436793 +v -1.158621 0.339535 -0.305483 +v -1.158621 0.645018 -0.432019 +v -1.379545 0.923800 -0.278782 +v -1.382795 0.953877 -0.308859 +v -1.224650 0.212999 0.000000 +v -1.224650 0.339535 0.305483 +v -1.316037 0.336159 0.308859 +v -1.224650 0.645018 -0.432019 +v -1.224650 0.339535 -0.305483 +v -1.382795 0.645018 -0.436793 +v -1.316036 0.645018 -0.436793 +v -0.419369 0.526526 -0.206986 +v 0.947632 0.526526 -0.206986 +v 0.947632 0.380164 -0.146361 +v -0.419369 0.380164 -0.146361 +v 0.947632 0.319540 0.000000 +v -0.419369 0.319540 0.000000 +v 0.947632 0.380164 0.146361 +v -0.419369 0.380164 0.146361 +v 0.947632 0.526526 0.206986 +v -0.419369 0.526526 0.206986 +v 0.947632 0.672887 0.146361 +v -0.419369 0.672887 0.146361 +v 0.947632 0.733512 0.000000 +v -0.419369 0.733512 0.000000 +v 0.947632 0.672887 -0.146361 +v -0.419369 0.672887 -0.146361 +v 1.384588 0.551670 0.654257 +v 1.384588 0.551670 0.449972 +v 1.139921 0.531994 0.449972 +v 1.139921 0.531994 0.558806 +v 1.384588 0.408111 0.449972 +v 1.504148 0.551670 0.449972 +v 1.504148 0.408111 0.449972 +v 1.504148 0.551670 0.654257 +v 1.577323 0.529883 0.613238 +v 1.577323 0.529883 0.449972 +v 1.504148 0.408111 0.654257 +v 1.384588 0.408111 0.654257 +v 1.577323 0.429898 0.449972 +v 1.577323 0.429898 0.613238 +v 1.139921 0.427787 0.558806 +v 1.139921 0.427787 0.449972 +v 1.384588 0.551670 -0.654257 +v 1.139921 0.531994 -0.558805 +v 1.139921 0.531994 -0.449972 +v 1.384588 0.551670 -0.449972 +v 1.384588 0.408111 -0.449972 +v 1.504148 0.408111 -0.449972 +v 1.504148 0.551670 -0.449972 +v 1.577323 0.529883 -0.449972 +v 1.577323 0.529883 -0.613238 +v 1.504148 0.551670 -0.654257 +v 1.504148 0.408111 -0.654257 +v 1.384588 0.408111 -0.654257 +v 1.577323 0.429898 -0.449972 +v 1.577323 0.429898 -0.613238 +v 1.139921 0.427787 -0.558805 +v 1.139921 0.427787 -0.449972 +v 1.310526 -0.082794 0.073582 +v 1.384588 0.101767 0.073582 +v 1.139921 0.101767 0.053905 +v 1.144858 -0.044123 0.053905 +v 1.384588 0.101767 -0.069977 +v 1.504148 0.101767 0.073582 +v 1.504148 0.101767 -0.069977 +v 1.430086 -0.082794 0.073582 +v 1.608182 -0.022025 0.051795 +v 1.577323 0.101767 0.051795 +v 1.430086 -0.082794 -0.069977 +v 1.310526 -0.082794 -0.069977 +v 1.577323 0.101767 -0.048191 +v 1.608182 -0.022025 -0.048191 +v 1.144858 -0.044123 -0.050301 +v 1.139921 0.101767 -0.050301 +v -1.606489 0.994589 0.070837 +v -1.606489 1.084445 0.070837 +v -1.606489 1.084277 -0.070837 +v -1.606489 0.994589 -0.070837 +v -0.511384 1.084480 -0.070837 +v -0.514357 1.052983 -0.070837 +v -0.549767 1.006668 -0.070837 +v -0.549767 0.994589 -0.070837 +v 1.313063 1.160981 0.058974 +v 1.498769 1.160981 0.058974 +v 1.498532 1.230366 0.031927 +v 1.312826 1.230366 0.031927 +v 1.225298 0.994589 0.070837 +v 1.225298 1.084445 0.070837 +v 0.962233 1.084445 0.070837 +v 0.964610 1.052983 0.070837 +v 1.000021 1.006668 0.070837 +v 1.000021 0.994589 0.070837 +v -0.197543 0.994589 -0.070837 +v 0.049014 0.994589 -0.070837 +v 0.049014 0.994589 0.070837 +v -0.197543 0.994589 0.070837 +v 0.401239 0.994589 -0.070837 +v 0.647796 0.994589 -0.070837 +v 0.647796 0.994589 0.070837 +v 0.401239 0.994589 0.070837 +v 1.000021 0.994589 -0.070837 +v 1.225298 0.994589 -0.070837 +v -0.549767 0.994589 0.070837 +v 1.225298 1.143051 -0.043128 +v -1.531817 1.143051 -0.043128 +v -1.531817 1.143051 0.043128 +v 1.225298 1.143051 0.043128 +v 1.313063 0.996053 0.070837 +v 1.498769 0.996053 0.070837 +v 1.313063 1.160981 -0.058974 +v 1.313063 0.996053 -0.070837 +v 1.225298 1.084802 -0.070837 +v 1.269521 1.219445 0.031927 +v 1.498769 0.996053 -0.070837 +v 1.498769 1.160981 -0.058974 +v 1.312826 1.230366 -0.031927 +v 1.498532 1.230366 -0.031927 +v 1.575087 0.954078 -0.070837 +v 1.575087 1.119006 -0.070837 +v 1.575087 1.119006 0.070837 +v 1.575087 0.954078 0.070837 +v 1.269521 1.219445 -0.031927 +v 1.554546 1.188392 0.031927 +v 1.554546 1.188392 -0.031927 +v -0.514597 1.084445 0.070837 +v -0.234129 1.084445 0.070837 +v 0.083877 1.084445 0.070837 +v 0.364860 1.084445 0.070837 +v 0.682044 1.084445 0.070837 +v 0.964998 1.084754 -0.070837 +v 0.683980 1.084702 -0.070837 +v 0.366670 1.084643 -0.070837 +v 0.084942 1.084590 -0.070837 +v -0.230760 1.084532 -0.070837 +v -0.232953 1.052983 -0.070837 +v -0.232953 1.052983 0.070837 +v -0.514357 1.052983 0.070837 +v -0.197543 1.006668 0.070837 +v -0.197543 1.006668 -0.070837 +v -0.549767 1.006668 0.070837 +v 0.084425 1.052983 -0.070837 +v 0.365828 1.052983 -0.070837 +v 0.365828 1.052983 0.070837 +v 0.084425 1.052983 0.070837 +v 0.401239 1.006668 0.070837 +v 0.401239 1.006668 -0.070837 +v 0.049014 1.006668 -0.070837 +v 0.049014 1.006668 0.070837 +v 0.683207 1.052983 -0.070837 +v 0.964610 1.052983 -0.070837 +v 0.683207 1.052983 0.070837 +v 1.000021 1.006668 -0.070837 +v 0.647796 1.006668 -0.070837 +v 0.647796 1.006668 0.070837 +v 1.103664 0.525584 -0.500000 +v 1.292985 0.525584 -0.500000 +v 1.292985 0.172030 -0.353553 +v 1.103664 0.172030 -0.353553 +v 1.103664 0.525584 0.500000 +v 1.292985 0.525584 0.500000 +v 1.292985 0.879137 0.353553 +v 1.103664 0.879137 0.353553 +v 1.292985 1.025584 0.000000 +v 1.103664 1.025584 0.000000 +v 1.503651 1.012795 0.000000 +v 1.503651 0.870094 -0.344510 +v 1.509822 0.895986 -0.370402 +v 1.509822 1.049411 0.000000 +v 1.080568 0.851567 0.325983 +v 1.080568 0.525584 0.461010 +v 1.292985 0.879137 -0.353553 +v 1.286814 0.905708 -0.380125 +v 1.286814 0.525584 -0.537577 +v 1.286814 0.525584 0.537577 +v 1.286814 0.905708 0.380125 +v 1.503651 0.038372 0.000000 +v 1.503651 0.181073 0.344510 +v 1.509822 0.155181 0.370402 +v 1.509822 0.001756 0.000000 +v 1.503651 0.870094 0.344510 +v 1.509822 0.895986 0.370402 +v 1.503651 0.525584 0.487211 +v 1.669294 0.525584 0.401911 +v 1.669294 0.809777 0.284194 +v 1.503651 0.181073 -0.344510 +v 1.503651 0.525584 -0.487211 +v 1.669294 0.525584 -0.401911 +v 1.669294 0.241390 -0.284194 +v 1.669294 0.809777 -0.284194 +v 1.669294 0.927494 0.000000 +v 1.669294 0.241390 0.284194 +v -0.603601 0.525584 -0.500000 +v 1.044523 0.525584 -0.500000 +v 1.044523 0.172030 -0.353553 +v -0.603601 0.172030 -0.353553 +v -0.603601 0.025584 0.000000 +v 1.044523 0.025584 0.000000 +v 1.044523 0.172030 0.353553 +v -0.603601 0.172030 0.353553 +v 0.951045 0.197436 0.364077 +v -0.460212 0.197436 0.364077 +v 1.044523 0.879137 0.353553 +v 0.899442 0.953734 0.173461 +v 0.899442 0.879137 0.353553 +v 1.044523 0.525584 0.500000 +v 1.068921 0.199748 0.325836 +v 1.068921 0.525584 0.460801 +v 1.044523 0.879137 -0.353553 +v 0.899442 0.735289 -0.413137 +v 0.899442 0.879137 -0.353553 +v 1.068921 0.986385 0.000000 +v 1.068921 0.851420 -0.325836 +v 1.044523 1.025584 0.000000 +v 0.985768 0.843292 0.316901 +v 0.899442 0.843292 0.316901 +v 0.899442 0.918248 0.161081 +v 1.068921 0.525584 -0.460801 +v 1.068921 0.199748 -0.325836 +v 1.068921 0.851420 0.325836 +v 1.080568 0.851567 -0.325983 +v 1.080568 0.525584 -0.461010 +v 1.080568 0.199600 -0.325983 +v 1.080568 0.064574 0.000000 +v 1.080568 0.199600 0.325983 +v 1.080568 0.986594 0.000000 +v 1.103664 0.172030 0.353553 +v 1.068921 0.064782 0.000000 +v -0.603601 1.025584 0.000000 +v 0.810528 0.997935 -0.101577 +v -0.388078 0.997935 -0.101577 +v 0.810528 0.952228 0.101577 +v 0.969099 0.952228 0.101577 +v 0.899442 0.719760 0.368080 +v 0.810528 0.997935 0.101577 +v -0.388078 0.997935 0.101577 +v 0.810528 0.655494 -0.446189 +v 1.286814 1.063161 0.000000 +v 1.320923 0.951339 0.425755 +v 1.320923 1.127692 0.000000 +v 1.286814 0.145459 -0.380125 +v 1.320923 0.525584 -0.602109 +v 1.320923 0.099829 -0.425755 +v 1.509822 0.525584 -0.523828 +v 1.475712 0.525584 -0.586708 +v 1.475712 0.940449 -0.414865 +v 1.286814 -0.011994 -0.000000 +v 1.320923 -0.076525 -0.000000 +v 1.509822 0.525584 0.523828 +v 1.475712 0.940449 0.414865 +v 1.475712 0.525584 0.586708 +v 1.509822 0.155181 -0.370402 +v 1.320923 0.525584 0.602109 +v 1.320923 0.951339 -0.425755 +v 1.475712 0.110718 -0.414866 +v 1.475712 1.112292 0.000000 +v 1.475712 0.110718 0.414866 +v 1.669294 0.271118 -0.254466 +v 1.669294 0.525584 -0.359869 +v 1.423236 0.525584 -0.300328 +v 1.423236 0.313220 -0.212364 +v 1.669294 0.780049 -0.254466 +v 1.669294 0.885452 0.000000 +v 1.669294 0.525584 0.359869 +v 1.669294 0.780049 0.254466 +v 1.669294 0.271118 0.254466 +v 1.423236 0.737947 -0.212364 +v 1.423236 0.825911 0.000000 +v 1.657500 0.838523 0.000000 +v 1.657500 0.746865 -0.221281 +v 1.423236 0.525584 0.300328 +v 1.423236 0.737947 0.212364 +v 1.657500 0.746865 0.221281 +v 1.657500 0.525584 0.312939 +v 1.657500 0.525584 0.252281 +v 1.657500 0.703973 0.178389 +v 1.657500 0.525584 -0.312939 +v 1.657500 0.304302 -0.221282 +v 1.423236 0.313220 0.212364 +v 1.657500 0.304302 0.221282 +v 1.657500 0.703973 -0.178389 +v 1.657500 0.525584 -0.252281 +v 1.657500 0.347194 -0.178389 +v 1.657500 0.347194 0.178389 +v 1.432520 0.525584 -0.169385 +v 1.432520 0.645357 -0.119773 +v 1.651829 0.645357 -0.119773 +v 1.651829 0.525584 -0.169385 +v 1.657500 0.777864 0.000000 +v 1.432520 0.645357 0.119773 +v 1.432520 0.694968 0.000000 +v 1.432520 0.405810 -0.119773 +v 1.432520 0.405810 0.119773 +v 1.432520 0.525584 0.169385 +v 1.657500 0.273303 0.000000 +v 1.432520 0.356199 0.000000 +v 1.651829 0.431184 0.000000 +v 1.651829 0.356199 0.000000 +v 1.651829 0.405810 -0.119773 +v 1.651829 0.525394 -0.094211 +v 1.651829 0.458777 -0.066617 +v 1.651829 0.405810 0.119773 +v 1.651829 0.525584 0.169385 +v 1.651829 0.645357 0.119773 +v 1.127542 0.525394 -0.094211 +v 1.127542 0.458777 -0.066617 +v 1.127542 0.431184 0.000000 +v 1.127542 0.525394 0.094211 +v 1.127542 0.592011 0.066617 +v 1.651829 0.592011 0.066617 +v 1.651829 0.525394 0.094211 +v 1.651829 0.619605 0.000000 +v 1.127542 0.619605 0.000000 +v 1.127542 0.592011 -0.066617 +v 1.651829 0.592011 -0.066617 +v 1.127542 0.458777 0.066617 +v -0.476991 0.837264 -0.291860 +v -0.476991 0.714942 -0.357372 +v -0.476991 0.735289 -0.413137 +v -0.476991 0.879137 -0.353553 +v -0.476991 0.879137 0.353553 +v -0.476991 0.953734 0.173461 +v -0.603601 0.879137 0.353553 +v 0.899442 0.735289 0.413137 +v -0.603601 0.879137 -0.353553 +v -0.724548 0.869896 -0.337068 +v -0.476991 0.953734 -0.173461 +v -0.476991 0.735289 0.413137 +v -0.388078 0.655494 0.446189 +v -0.388078 0.655494 -0.446189 +v 0.810528 0.655494 0.446189 +v -0.603601 0.525584 0.500000 +v 1.651829 0.458777 0.066617 +v -0.388078 0.633076 0.392654 +v -0.476991 0.714942 0.357372 +v -0.476991 0.837264 0.291860 +v -0.388078 0.944133 0.101577 +v -0.388078 0.944133 -0.101577 +v 0.810528 0.952228 -0.101577 +v 1.657500 0.212644 0.000000 +v 1.651829 0.694968 0.000000 +v -0.476991 0.926475 0.173461 +v 0.899442 0.843292 -0.316901 +v 0.899442 0.918248 -0.161081 +v 0.899442 0.953734 -0.173461 +v 0.899442 0.719760 -0.368080 +v 0.810528 0.655494 -0.378684 +v 0.810528 0.655494 0.378684 +v -0.388078 0.633076 -0.392654 +v 1.669294 0.123673 0.000000 +v 1.669294 0.165715 0.000000 +v 0.985768 0.843292 -0.316901 +v 0.969099 0.952228 -0.101577 +v 1.475712 -0.061125 -0.000000 +v 1.423236 0.225256 0.000000 +v 0.984259 0.528318 -0.436781 +v 0.984259 0.228435 -0.325032 +v 0.984259 0.095638 0.005025 +v 0.984259 0.228435 0.325032 +v 0.984259 0.528318 0.436781 +v 1.103664 0.025584 0.000000 +v -0.534084 0.903408 0.173461 +v -0.534084 0.903408 -0.173461 +v -0.476991 0.926475 -0.173461 +v -0.548068 0.837264 0.291860 +v -0.548068 0.837264 -0.291860 +v 1.292985 0.025584 0.000000 +v -0.550334 0.529772 0.433593 +v -0.550334 0.236472 0.339820 +v -0.550334 0.062663 0.005342 +v -0.550334 0.236472 -0.339820 +v -0.550334 0.529772 -0.433593 +v -0.388078 0.540720 0.422003 +v -0.388078 0.540720 -0.422003 +v 0.810528 0.526819 -0.419828 +v 0.810528 0.526819 0.419828 +v -0.388078 0.088709 0.007100 +v -0.388078 0.229035 -0.323350 +v -0.388078 0.229035 0.323350 +v 0.810528 0.240010 -0.300109 +v 0.810528 0.100279 0.006216 +v 0.810528 0.240010 0.300109 +v -0.460212 0.500178 0.489476 +v 0.678212 0.092276 -0.724878 +v 0.648869 0.138277 -0.701704 +v 0.951045 0.500178 0.489476 +v 0.646934 0.318302 -0.775205 +v 0.641987 0.458293 -0.590595 +v 0.671568 0.425284 -0.596467 +v 0.673140 0.318430 -0.775219 +v 0.003785 0.107850 -0.712878 +v 0.003776 0.311542 -0.796039 +v 0.286340 0.110829 -0.713675 +v 0.335441 0.111139 -0.713708 +v 0.137117 0.111516 -0.714176 +v 0.181234 0.111785 -0.714205 +v 0.643209 0.321800 -0.818636 +v 0.285150 0.311362 -0.795548 +v 0.335438 0.311680 -0.795582 +v 0.346589 0.320346 -0.818478 +v 0.273733 0.319982 -0.818438 +v 0.137105 0.309206 -0.794886 +v 0.180025 0.309468 -0.794915 +v 0.188876 0.319558 -0.818392 +v 0.127999 0.319254 -0.818359 +v 0.051715 0.318872 -0.818317 +v 0.044163 0.311789 -0.796066 +v 0.045414 0.108104 -0.712906 +v 0.949896 0.093608 -0.725023 +v 0.645678 0.092117 -0.724860 +v 0.346592 0.090651 -0.724701 +v 0.275455 0.090295 -0.724662 +v 0.190590 0.089871 -0.724616 +v 0.128016 0.089558 -0.724582 +v 0.053442 0.089185 -0.724541 +v -0.004002 0.088898 -0.724510 +v -0.004015 0.318594 -0.818287 +v -0.060217 0.318313 -0.818256 +v -0.059018 0.088623 -0.724480 +v 0.678557 0.155552 -0.465195 +v 0.649846 0.155552 -0.465195 +v 0.951045 0.155552 -0.465195 +v 0.674638 0.458293 -0.590595 +v 0.676644 0.321964 -0.818654 +v 0.948697 0.323297 -0.818799 +v 0.951045 0.458293 -0.590595 +v 0.641563 0.500178 -0.489476 +v 0.674042 0.500178 -0.489476 +v 0.951045 0.500178 -0.489476 +v -0.460212 0.155552 -0.465195 +v -0.460212 0.458293 -0.590595 +v -0.460212 0.500178 -0.489476 +v 0.951045 0.197436 -0.364077 +v -0.460212 0.197436 -0.364077 +v 1.292985 0.172030 0.353553 +v 1.103664 0.879137 -0.353553 +v -0.460212 0.197436 -0.364077 +v 0.951045 0.197436 -0.364077 +v 1.286814 0.145459 0.380125 +v 1.320923 0.099829 0.425755 +v -0.460212 0.500178 -0.489476 +v 0.951045 0.500178 -0.489476 +v -0.724548 0.532825 -0.476687 +v -0.724548 0.195753 -0.337068 +v -0.724548 0.056134 0.000004 +v -0.724548 0.195753 0.337075 +v -0.724548 0.532825 0.476694 +v -0.724548 0.869896 0.337075 +v -0.724548 1.009515 0.000004 +v 0.951045 0.197436 0.364077 +v -0.460212 0.197436 0.364077 +v -0.460212 0.500178 0.489476 +v -0.460212 0.155552 0.465195 +v -0.460212 0.458293 0.590595 +v 0.641563 0.500178 0.489476 +v 0.674042 0.500178 0.489476 +v 0.951045 0.500178 0.489476 +v 0.951045 0.458293 0.590595 +v 0.674638 0.458293 0.590595 +v 0.676644 0.321964 0.818654 +v 0.948697 0.323297 0.818799 +v 0.951045 0.155552 0.465195 +v 0.678557 0.155552 0.465195 +v 0.649846 0.155552 0.465195 +v -0.059018 0.088623 0.724480 +v -0.004002 0.088898 0.724510 +v -0.004015 0.318594 0.818287 +v -0.060217 0.318313 0.818256 +v 0.645678 0.092117 0.724860 +v 0.346592 0.090651 0.724701 +v 0.275455 0.090295 0.724662 +v 0.190590 0.089871 0.724616 +v 0.128016 0.089558 0.724582 +v 0.053442 0.089185 0.724541 +v 0.949896 0.093608 0.725023 +v 0.051715 0.318872 0.818317 +v 0.044163 0.311789 0.796066 +v 0.045414 0.108104 0.712906 +v 0.127999 0.319254 0.818359 +v 0.188876 0.319558 0.818392 +v 0.137105 0.309206 0.794886 +v 0.180025 0.309468 0.794915 +v 0.273733 0.319982 0.818438 +v 0.346589 0.320346 0.818478 +v 0.285150 0.311362 0.795548 +v 0.335438 0.311680 0.795582 +v 0.643209 0.321800 0.818636 +v 0.137117 0.111516 0.714176 +v 0.181234 0.111785 0.714205 +v 0.286340 0.110829 0.713675 +v 0.335441 0.111139 0.713708 +v 0.003776 0.311542 0.796039 +v 0.003785 0.107850 0.712878 +v 0.671568 0.425284 0.596467 +v 0.673140 0.318430 0.775219 +v 0.641987 0.458293 0.590595 +v 0.648869 0.138277 0.701704 +v 0.646934 0.318302 0.775205 +v 0.678212 0.092276 0.724878 +v 0.674369 0.138402 0.701718 +v 0.645976 0.425284 0.596467 +v 0.645644 0.458113 0.517211 +v 0.671101 0.458113 0.517211 +v 0.652136 0.187997 0.498180 +v 0.674639 0.187997 0.498180 +v 0.674369 0.138402 -0.701718 +v 0.645644 0.458113 -0.517211 +v 0.645976 0.425284 -0.596467 +v 0.671101 0.458113 -0.517211 +v 0.674639 0.187997 -0.498180 +v 0.652136 0.187997 -0.498180 +v -0.436383 0.265019 0.509254 +v 1.004741 0.265019 0.509254 +v 1.004741 0.179718 0.544586 +v -0.436383 0.179718 0.544586 +v 1.004741 0.144386 0.629887 +v -0.436383 0.144385 0.629887 +v 1.004741 0.179718 0.715187 +v -0.436383 0.179718 0.715187 +v 1.004741 0.265019 0.750520 +v -0.436383 0.265019 0.750520 +v 1.004741 0.350319 0.715187 +v -0.436383 0.350319 0.715187 +v 1.004741 0.385652 0.629887 +v -0.436383 0.385652 0.629887 +v 1.088061 0.265019 0.750520 +v 1.088061 0.350319 0.715187 +v 1.004741 0.350319 0.544586 +v -0.436383 0.350319 0.544586 +v -0.513171 0.364069 0.629887 +v -0.513171 0.335058 0.699926 +v -0.513171 0.265019 0.530836 +v -0.513171 0.194979 0.559848 +v -0.513171 0.165968 0.629887 +v -0.513171 0.194979 0.699926 +v -0.513171 0.265019 0.728937 +v -0.513171 0.335058 0.559848 +v 1.088061 0.265019 0.509254 +v 1.088061 0.350319 0.544586 +v 1.100404 0.336110 0.558795 +v 1.100404 0.265019 0.529348 +v 1.088061 0.179718 0.544586 +v 1.088061 0.144386 0.629887 +v 1.088061 0.179718 0.715187 +v 1.088061 0.385652 0.629887 +v 1.100404 0.336110 0.700979 +v 1.100404 0.365558 0.629887 +v 1.100404 0.193927 0.700979 +v 1.100404 0.265019 0.730426 +v 1.100404 0.193927 0.558795 +v 1.100404 0.164480 0.629887 +v 1.127149 0.181939 0.629887 +v 1.127149 0.206273 0.688633 +v 1.127149 0.206273 0.571141 +v 1.127149 0.265019 0.546807 +v 1.127149 0.323765 0.571141 +v 1.127149 0.348098 0.629887 +v 1.127149 0.323765 0.688633 +v 1.127149 0.265019 0.712966 +v -0.436384 0.265019 -0.509254 +v -0.436384 0.179718 -0.544586 +v 1.004741 0.179718 -0.544586 +v 1.004741 0.265019 -0.509254 +v -0.436384 0.144385 -0.629887 +v 1.004741 0.144386 -0.629887 +v -0.436384 0.179718 -0.715187 +v 1.004741 0.179718 -0.715187 +v -0.436384 0.265019 -0.750520 +v 1.004741 0.265019 -0.750520 +v -0.436384 0.350319 -0.715187 +v 1.004741 0.350319 -0.715187 +v -0.436384 0.385652 -0.629887 +v 1.004741 0.385652 -0.629887 +v 1.088061 0.350319 -0.715187 +v 1.088061 0.265019 -0.750520 +v -0.436384 0.350319 -0.544586 +v 1.004741 0.350319 -0.544586 +v -0.513171 0.335058 -0.699926 +v -0.513171 0.364069 -0.629887 +v -0.513171 0.265019 -0.530836 +v -0.513171 0.335058 -0.559848 +v -0.513171 0.265019 -0.728937 +v -0.513171 0.194979 -0.699926 +v -0.513171 0.165968 -0.629887 +v -0.513171 0.194979 -0.559848 +v 1.088061 0.265019 -0.509254 +v 1.100404 0.265019 -0.529348 +v 1.100404 0.336111 -0.558795 +v 1.088061 0.350319 -0.544586 +v 1.088061 0.179718 -0.544586 +v 1.088061 0.179718 -0.715187 +v 1.088061 0.144386 -0.629887 +v 1.088061 0.385652 -0.629887 +v 1.100404 0.365558 -0.629887 +v 1.100404 0.336110 -0.700979 +v 1.100404 0.265019 -0.730426 +v 1.100404 0.193927 -0.700979 +v 1.100404 0.164480 -0.629887 +v 1.100404 0.193927 -0.558795 +v 1.127149 0.206273 -0.688633 +v 1.127149 0.181939 -0.629887 +v 1.127149 0.206273 -0.571141 +v 1.127149 0.265019 -0.712966 +v 1.127149 0.323765 -0.688633 +v 1.127149 0.348098 -0.629887 +v 1.127149 0.323765 -0.571141 +v 1.127149 0.265019 -0.546807 +v -2.120991 0.943304 0.035550 +v -2.158085 0.862576 0.035550 +v -2.120991 0.943304 -0.035550 +v -2.158085 0.862576 -0.035550 +v -2.003111 1.008603 0.035550 +v -2.003111 1.008603 -0.035550 +v -1.938336 0.967051 0.035550 +v -1.938336 0.967051 -0.035550 +v -2.111712 0.819430 0.035550 +v -2.111712 0.819430 -0.035550 +v -2.120991 0.346120 -0.035550 +v -2.158085 0.426848 -0.035550 +v -2.120991 0.346120 0.035550 +v -2.158085 0.426848 0.035550 +v -2.003111 0.280821 -0.035550 +v -2.003111 0.280821 0.035550 +v -1.938336 0.322373 -0.035550 +v -1.938336 0.322373 0.035550 +v -2.111712 0.469994 -0.035550 +v -2.111712 0.469994 0.035550 +v -2.120991 0.609162 0.298592 +v -2.158085 0.609162 0.217864 +v -2.120991 0.680262 0.298592 +v -2.158085 0.680262 0.217864 +v -2.003111 0.609162 0.363891 +v -2.003111 0.680262 0.363891 +v -1.938336 0.609162 0.322339 +v -1.938336 0.680262 0.322339 +v -2.111712 0.609162 0.174718 +v -2.111712 0.680262 0.174718 +v -2.120991 0.680262 -0.298592 +v -2.158085 0.680262 -0.217864 +v -2.120991 0.609162 -0.298592 +v -2.158085 0.609162 -0.217864 +v -2.003111 0.680262 -0.363891 +v -2.003111 0.609162 -0.363891 +v -1.938336 0.680262 -0.322339 +v -1.938336 0.609162 -0.322339 +v -2.111712 0.680262 -0.174718 +v -2.111712 0.609162 -0.174718 +v -2.120991 0.830711 0.236274 +v -2.158085 0.773628 0.179191 +v -2.120991 0.880986 0.185999 +v -2.158085 0.823903 0.128916 +v -2.003111 0.876884 0.282447 +v -2.003111 0.927159 0.232172 +v -1.938336 0.847503 0.253066 +v -1.938336 0.897778 0.202791 +v -2.111712 0.743119 0.148682 +v -2.111712 0.793394 0.098407 +v -2.120991 0.458713 -0.236274 +v -2.158085 0.515796 -0.179191 +v -2.120991 0.408438 -0.185999 +v -2.158085 0.465521 -0.128916 +v -2.003111 0.412540 -0.282447 +v -2.003111 0.362265 -0.232172 +v -1.938336 0.441921 -0.253066 +v -1.938336 0.391646 -0.202791 +v -2.111712 0.546305 -0.148682 +v -2.111712 0.496030 -0.098407 +v -2.120991 0.408438 0.185999 +v -2.158085 0.465521 0.128916 +v -2.120991 0.458713 0.236274 +v -2.158085 0.515796 0.179191 +v -2.003111 0.362265 0.232172 +v -2.003111 0.412540 0.282447 +v -1.938336 0.391646 0.202791 +v -1.938336 0.441921 0.253066 +v -2.111712 0.496030 0.098407 +v -2.111712 0.546305 0.148682 +v -2.120991 0.880986 -0.185999 +v -2.158085 0.823903 -0.128916 +v -2.120991 0.830711 -0.236274 +v -2.158085 0.773628 -0.179191 +v -2.003111 0.927159 -0.232172 +v -2.003111 0.876884 -0.282447 +v -1.938336 0.897778 -0.202791 +v -1.938336 0.847503 -0.253066 +v -2.111712 0.793394 -0.098407 +v -2.111712 0.743119 -0.148682 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.822057 0.744753 +vt 0.801034 0.723730 +vt 0.872812 0.693998 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.944804 0.723730 +vt 0.894049 0.744753 +vt 0.873025 0.693998 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.750065 0.816745 +vt 0.729042 0.795722 +vt 0.800820 0.765990 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.872812 0.867713 +vt 0.822057 0.888737 +vt 0.801034 0.837982 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.678074 0.744753 +vt 0.657050 0.723730 +vt 0.728829 0.693998 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.728829 0.939705 +vt 0.678074 0.960729 +vt 0.657050 0.909974 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.750065 0.744753 +vt 0.729042 0.723730 +vt 0.800820 0.693998 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.728829 0.867713 +vt 0.678074 0.888737 +vt 0.657050 0.837982 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.678074 0.816745 +vt 0.657050 0.795722 +vt 0.728829 0.765990 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.872812 0.795722 +vt 0.822057 0.816745 +vt 0.801034 0.765990 +vt 0.792241 0.765292 +vt 0.806786 0.772343 +vt 0.792185 0.772343 +vt 0.806674 0.779394 +vt 0.792073 0.779394 +vt 0.806618 0.786445 +vt 0.792017 0.786445 +vt 0.792073 0.793497 +vt 0.710865 0.890954 +vt 0.707339 0.884848 +vt 0.717917 0.878741 +vt 0.806674 0.793497 +vt 0.792185 0.800547 +vt 0.806786 0.800547 +vt 0.792241 0.807599 +vt 0.792241 0.807743 +vt 0.806786 0.814794 +vt 0.792185 0.814794 +vt 0.806674 0.821845 +vt 0.792073 0.821845 +vt 0.806618 0.828896 +vt 0.792017 0.828896 +vt 0.792073 0.835947 +vt 0.602536 0.912132 +vt 0.596430 0.908607 +vt 0.602536 0.898029 +vt 0.806674 0.835947 +vt 0.792185 0.842998 +vt 0.806786 0.842998 +vt 0.792241 0.850049 +vt 0.797635 0.690671 +vt 0.812180 0.697723 +vt 0.797579 0.697723 +vt 0.812068 0.704773 +vt 0.797468 0.704773 +vt 0.812012 0.711825 +vt 0.797412 0.711825 +vt 0.797468 0.718876 +vt 0.713446 0.905202 +vt 0.707339 0.901676 +vt 0.713446 0.891099 +vt 0.812068 0.718876 +vt 0.797579 0.725927 +vt 0.812180 0.725927 +vt 0.797635 0.732978 +vt 0.725698 0.877553 +vt 0.737025 0.908837 +vt 0.725698 0.910410 +vt 0.739301 0.911771 +vt 0.792924 0.923206 +vt 0.739301 0.923206 +vt 0.795200 0.908837 +vt 0.806526 0.877554 +vt 0.806526 0.910410 +vt 0.792924 0.873046 +vt 0.739301 0.861611 +vt 0.792924 0.861611 +vt 0.737025 0.875980 +vt 0.742886 0.906641 +vt 0.789339 0.878177 +vt 0.789339 0.906641 +vt 0.742886 0.878177 +vt 0.739301 0.873046 +vt 0.792924 0.911771 +vt 0.795200 0.875980 +vt 0.692595 0.878597 +vt 0.707139 0.871545 +vt 0.707195 0.878597 +vt 0.692539 0.871545 +vt 0.707027 0.864495 +vt 0.692427 0.864495 +vt 0.706971 0.857444 +vt 0.692427 0.850392 +vt 0.692371 0.857444 +vt 0.809625 0.750895 +vt 0.809625 0.757947 +vt 0.803518 0.761472 +vt 0.692539 0.843341 +vt 0.707027 0.850392 +vt 0.692595 0.836290 +vt 0.707139 0.843341 +vt 0.677626 0.878597 +vt 0.692171 0.871545 +vt 0.692227 0.878597 +vt 0.677570 0.871545 +vt 0.692059 0.864495 +vt 0.677458 0.864495 +vt 0.692003 0.857443 +vt 0.677458 0.850392 +vt 0.677402 0.857443 +vt 0.809625 0.736648 +vt 0.809625 0.743699 +vt 0.803518 0.747225 +vt 0.677570 0.843341 +vt 0.692059 0.850392 +vt 0.677626 0.836290 +vt 0.692171 0.843341 +vt 0.707563 0.878597 +vt 0.722108 0.871545 +vt 0.722164 0.878597 +vt 0.707507 0.871545 +vt 0.721996 0.864495 +vt 0.707395 0.864495 +vt 0.721940 0.857443 +vt 0.707395 0.850392 +vt 0.707339 0.857443 +vt 0.790935 0.847539 +vt 0.790935 0.854590 +vt 0.784828 0.858116 +vt 0.707507 0.843341 +vt 0.721996 0.850392 +vt 0.707563 0.836290 +vt 0.722108 0.843341 +vt 0.596430 0.881943 +vt 0.607756 0.850659 +vt 0.607756 0.883516 +vt 0.663656 0.836290 +vt 0.610032 0.847725 +vt 0.610032 0.836290 +vt 0.677258 0.881943 +vt 0.665931 0.850659 +vt 0.677258 0.849086 +vt 0.610032 0.897885 +vt 0.663656 0.886450 +vt 0.663656 0.897885 +vt 0.613617 0.852856 +vt 0.660071 0.881319 +vt 0.660071 0.852856 +vt 0.610032 0.886450 +vt 0.663656 0.847725 +vt 0.665932 0.883516 +vt 0.815201 0.764122 +vt 0.805115 0.750247 +vt 0.815201 0.750247 +vt 0.817141 0.641039 +vt 0.870476 0.653777 +vt 0.814975 0.653777 +vt 0.609375 0.500000 +vt 0.667969 0.464844 +vt 0.667969 0.500000 +vt 0.871129 0.715795 +vt 0.815201 0.701921 +vt 0.871129 0.701921 +vt 0.871129 0.798574 +vt 0.871129 0.764122 +vt 0.854479 0.926427 +vt 0.891341 0.925198 +vt 0.888931 0.926427 +vt 0.796980 0.925198 +vt 0.836253 0.909544 +vt 0.836253 0.925198 +vt 0.799390 0.926427 +vt 0.833842 0.926427 +vt 0.796009 0.927723 +vt 0.781164 0.925198 +vt 0.837223 0.927723 +vt 0.852068 0.925198 +vt 0.851098 0.927723 +vt 0.852068 0.909544 +vt 0.837130 0.907319 +vt 0.851191 0.907319 +vt 0.796980 0.909544 +vt 0.891341 0.909544 +vt 0.634130 0.888554 +vt 0.669086 0.895466 +vt 0.634655 0.897270 +vt 0.854247 0.908557 +vt 0.889162 0.908557 +vt 0.834073 0.908557 +vt 0.781164 0.909544 +vt 0.796102 0.907319 +vt 0.682970 0.929943 +vt 0.682970 0.895466 +vt 0.683058 0.886728 +vt 0.668998 0.886728 +vt 0.620805 0.898244 +vt 0.620104 0.889541 +vt 0.586461 0.901279 +vt 0.585325 0.892614 +vt 0.785608 0.715795 +vt 0.805115 0.701921 +vt 0.805115 0.715795 +vt 0.815201 0.715795 +vt 0.815201 0.798574 +vt 0.808427 0.771594 +vt 0.808427 0.742775 +vt 0.808427 0.723268 +vt 0.804494 0.651062 +vt 0.870476 0.687966 +vt 0.814975 0.701735 +vt 0.814975 0.687966 +vt 0.866125 0.600252 +vt 0.807497 0.609109 +vt 0.667969 0.464844 +vt 0.609375 0.500000 +vt 0.609375 0.464844 +vt 0.783574 0.905836 +vt 0.820437 0.904607 +vt 0.818026 0.905836 +vt 0.836253 0.888953 +vt 0.875526 0.904607 +vt 0.836253 0.904607 +vt 0.873115 0.905836 +vt 0.838663 0.905836 +vt 0.876496 0.907133 +vt 0.891341 0.904607 +vt 0.890371 0.907133 +vt 0.835282 0.907133 +vt 0.821407 0.907133 +vt 0.820437 0.888953 +vt 0.835375 0.886728 +vt 0.875526 0.888953 +vt 0.781164 0.888953 +vt 0.781164 0.904607 +vt 0.732050 0.928117 +vt 0.767005 0.921205 +vt 0.766917 0.929943 +vt 0.818258 0.887966 +vt 0.838432 0.887966 +vt 0.876403 0.886728 +vt 0.891341 0.888953 +vt 0.780890 0.886728 +vt 0.780890 0.921205 +vt 0.780978 0.929943 +vt 0.718724 0.918427 +vt 0.718024 0.927130 +vt 0.684381 0.915392 +vt 0.683244 0.924057 +vt 0.804966 0.701735 +vt 0.785608 0.687966 +vt 0.804966 0.687966 +vt 0.808774 0.637292 +vt 0.808253 0.661193 +vt 0.871129 0.750247 +vt 0.791853 0.824225 +vt 0.783842 0.834044 +vt 0.783845 0.824223 +vt 0.791849 0.834047 +vt 0.783839 0.843866 +vt 0.791873 0.765295 +vt 0.783862 0.775114 +vt 0.783866 0.765292 +vt 0.791869 0.775116 +vt 0.783859 0.784935 +vt 0.791866 0.784938 +vt 0.783855 0.794757 +vt 0.791863 0.794760 +vt 0.783852 0.804579 +vt 0.791859 0.804582 +vt 0.783849 0.814401 +vt 0.791856 0.814404 +vt 0.778742 0.784012 +vt 0.778744 0.776033 +vt 0.677402 0.884383 +vt 0.683044 0.878741 +vt 0.691023 0.898004 +vt 0.778734 0.805499 +vt 0.778724 0.834964 +vt 0.778741 0.785855 +vt 0.778728 0.823299 +vt 0.778731 0.815320 +vt 0.778728 0.825142 +vt 0.778745 0.774191 +vt 0.778748 0.766212 +vt 0.778735 0.803656 +vt 0.778738 0.795677 +vt 0.271409 0.769029 +vt 0.265832 0.744085 +vt 0.271409 0.744085 +vt 0.265832 0.769029 +vt 0.260254 0.744085 +vt 0.260254 0.769029 +vt 0.254677 0.744085 +vt 0.254677 0.769029 +vt 0.249099 0.744085 +vt 0.249099 0.769029 +vt 0.243522 0.744085 +vt 0.243522 0.769029 +vt 0.237944 0.744085 +vt 0.261888 0.772973 +vt 0.275353 0.778551 +vt 0.237944 0.769029 +vt 0.232367 0.744085 +vt 0.232367 0.769029 +vt 0.226789 0.744085 +vt 0.275353 0.734564 +vt 0.275353 0.740142 +vt 0.261888 0.734564 +vt 0.712227 0.691554 +vt 0.724024 0.700800 +vt 0.715450 0.703178 +vt 0.507381 0.846904 +vt 0.598130 0.858967 +vt 0.507381 0.858967 +vt 0.569512 0.785553 +vt 0.590950 0.795995 +vt 0.569512 0.795995 +vt 0.598131 0.896473 +vt 0.507381 0.884411 +vt 0.598131 0.884410 +vt 0.508228 0.866382 +vt 0.678632 0.902783 +vt 0.769382 0.886888 +vt 0.769382 0.902783 +vt 0.669734 0.902783 +vt 0.652570 0.886888 +vt 0.669734 0.886888 +vt 0.712227 0.635780 +vt 0.724025 0.626533 +vt 0.717132 0.651390 +vt 0.678632 0.886888 +vt 0.732276 0.658361 +vt 0.714464 0.658361 +vt 0.760292 0.655719 +vt 0.739257 0.671614 +vt 0.739257 0.655719 +vt 0.708871 0.642447 +vt 0.734944 0.675944 +vt 0.740565 0.696214 +vt 0.734944 0.651390 +vt 0.598079 0.866382 +vt 0.508228 0.876995 +vt 0.698102 0.658361 +vt 0.714464 0.668973 +vt 0.698102 0.668973 +vt 0.732276 0.668973 +vt 0.808269 0.886888 +vt 0.717132 0.675944 +vt 0.708871 0.684886 +vt 0.713777 0.669277 +vt 0.598079 0.876995 +vt 0.591132 0.778095 +vt 0.612625 0.785553 +vt 0.590950 0.785553 +vt 0.578532 0.766460 +vt 0.578532 0.815089 +vt 0.591132 0.803454 +vt 0.578698 0.823250 +vt 0.625952 0.795995 +vt 0.612625 0.795995 +vt 0.612587 0.803625 +vt 0.621392 0.807294 +vt 0.621466 0.815543 +vt 0.594762 0.825013 +vt 0.579217 0.836399 +vt 0.652377 0.782955 +vt 0.632770 0.798594 +vt 0.632770 0.782955 +vt 0.625952 0.785554 +vt 0.601835 0.823468 +vt 0.620002 0.835136 +vt 0.612587 0.777924 +vt 0.621392 0.774255 +vt 0.739899 0.703371 +vt 0.748258 0.719266 +vt 0.739899 0.719266 +vt 0.714821 0.703371 +vt 0.723180 0.719266 +vt 0.714821 0.719266 +vt 0.748258 0.703371 +vt 0.756618 0.719266 +vt 0.706461 0.703371 +vt 0.706461 0.719266 +vt 0.698102 0.703371 +vt 0.698102 0.719266 +vt 0.731539 0.703371 +vt 0.731539 0.719266 +vt 0.723180 0.703371 +vt 0.756618 0.703371 +vt 0.764977 0.719266 +vt 0.601585 0.811408 +vt 0.588652 0.817689 +vt 0.609226 0.824945 +vt 0.609027 0.809728 +vt 0.615013 0.817143 +vt 0.601835 0.758080 +vt 0.579217 0.745150 +vt 0.620002 0.746413 +vt 0.621466 0.766005 +vt 0.609226 0.756604 +vt 0.609027 0.771821 +vt 0.615013 0.764406 +vt 0.594762 0.756536 +vt 0.578698 0.758299 +vt 0.588652 0.763859 +vt 0.594100 0.771488 +vt 0.601585 0.770141 +vt 0.167826 0.637345 +vt 0.114215 0.658256 +vt 0.114130 0.637792 +vt 0.232537 0.630625 +vt 0.263917 0.575325 +vt 0.263918 0.630625 +vt 0.179850 0.630269 +vt 0.223962 0.575325 +vt 0.223962 0.630625 +vt 0.167952 0.568476 +vt 0.114311 0.547378 +vt 0.168353 0.538018 +vt 0.167800 0.630285 +vt 0.113693 0.574921 +vt 0.167898 0.575574 +vt 0.272493 0.630625 +vt 0.317290 0.575325 +vt 0.317290 0.630625 +vt 0.179863 0.637263 +vt 0.223367 0.666831 +vt 0.180317 0.668668 +vt 0.223276 0.568399 +vt 0.180494 0.537066 +vt 0.224230 0.538894 +vt 0.094978 0.574829 +vt 0.081998 0.630460 +vt 0.082831 0.574648 +vt 0.168405 0.530773 +vt 0.180051 0.568560 +vt 0.168173 0.674993 +vt 0.180473 0.675838 +vt 0.225140 0.532000 +vt 0.231072 0.538436 +vt 0.230294 0.569140 +vt 0.224302 0.673691 +vt 0.230365 0.667318 +vt 0.230075 0.636801 +vt 0.223301 0.637495 +vt 0.102583 0.545262 +vt 0.103033 0.554042 +vt 0.114158 0.567779 +vt 0.104111 0.573586 +vt 0.102879 0.566036 +vt 0.102508 0.660379 +vt 0.113614 0.665427 +vt 0.101567 0.632630 +vt 0.102656 0.639463 +vt 0.098126 0.554394 +vt 0.098359 0.566372 +vt 0.098030 0.651303 +vt 0.102915 0.651612 +vt 0.098072 0.639307 +vt 0.329373 0.630625 +vt 0.180014 0.575685 +vt 0.168140 0.667731 +vt 0.272492 0.575325 +vt 0.180648 0.529997 +vt 0.060889 0.574321 +vt 0.072008 0.630311 +vt 0.060057 0.630133 +vt 0.113750 0.630739 +vt 0.104327 0.574930 +vt 0.113715 0.540194 +vt 0.072841 0.574499 +vt 0.101552 0.630752 +vt 0.005298 0.573491 +vt 0.004465 0.629303 +vt 0.423560 0.873494 +vt 0.420121 0.888745 +vt 0.420121 0.873494 +vt 0.341393 0.820409 +vt 0.338027 0.873463 +vt 0.337954 0.820414 +vt 0.405973 0.888777 +vt 0.402533 0.904028 +vt 0.402534 0.888777 +vt 0.356717 0.873437 +vt 0.360083 0.820384 +vt 0.360156 0.873433 +vt 0.363688 0.823634 +vt 0.363743 0.863650 +vt 0.341466 0.873458 +vt 0.375447 0.887810 +vt 0.415358 0.874430 +vt 0.415358 0.887810 +vt 0.334422 0.870213 +vt 0.334413 0.863585 +vt 0.397771 0.889712 +vt 0.676091 0.758842 +vt 0.670636 0.756488 +vt 0.676082 0.752214 +vt 0.757146 0.797623 +vt 0.738482 0.784243 +vt 0.757146 0.784243 +vt 0.723118 0.758182 +vt 0.740817 0.758754 +vt 0.723127 0.764704 +vt 0.734822 0.782341 +vt 0.716053 0.769156 +vt 0.734717 0.768961 +vt 0.693788 0.758116 +vt 0.709131 0.769177 +vt 0.676682 0.782565 +vt 0.676576 0.769186 +vt 0.738482 0.797622 +vt 0.731559 0.784242 +vt 0.709236 0.782556 +vt 0.746266 0.756491 +vt 0.746275 0.763013 +vt 0.716854 0.797621 +vt 0.723377 0.784242 +vt 0.723377 0.797622 +vt 0.753151 0.758579 +vt 0.663756 0.758701 +vt 0.663747 0.752073 +vt 0.731559 0.797622 +vt 0.684647 0.798126 +vt 0.670948 0.784944 +vt 0.684542 0.784746 +vt 0.669829 0.723944 +vt 0.753143 0.752057 +vt 0.746983 0.723944 +vt 0.753821 0.719853 +vt 0.716749 0.784242 +vt 0.662981 0.785039 +vt 0.671054 0.798323 +vt 0.663086 0.798418 +vt 0.669929 0.708186 +vt 0.676778 0.712259 +vt 0.663087 0.782582 +vt 0.662981 0.769203 +vt 0.740003 0.712277 +vt 0.746840 0.708186 +vt 0.742675 0.732079 +vt 0.725698 0.723741 +vt 0.742675 0.723741 +vt 0.750354 0.690671 +vt 0.750039 0.712874 +vt 0.736464 0.702680 +vt 0.750039 0.742945 +vt 0.750354 0.765148 +vt 0.736464 0.753139 +vt 0.763226 0.714312 +vt 0.759890 0.704357 +vt 0.754869 0.723741 +vt 0.750389 0.732079 +vt 0.750389 0.723741 +vt 0.763226 0.741507 +vt 0.759890 0.751462 +vt 0.770088 0.732079 +vt 0.780587 0.723741 +vt 0.780587 0.732079 +vt 0.760180 0.732079 +vt 0.754869 0.732079 +vt 0.770088 0.723741 +vt 0.760180 0.723741 +vt 0.754315 0.719295 +vt 0.754315 0.736524 +vt 0.797267 0.732079 +vt 0.660992 0.723479 +vt 0.639471 0.803338 +vt 0.639471 0.723479 +vt 0.617951 0.803338 +vt 0.617950 0.723479 +vt 0.638114 0.808819 +vt 0.619308 0.808819 +vt 0.704033 0.723479 +vt 0.682513 0.803338 +vt 0.682513 0.723479 +vt 0.725554 0.723479 +vt 0.704033 0.803338 +vt 0.662350 0.808819 +vt 0.678358 0.813663 +vt 0.665147 0.813663 +vt 0.659635 0.808819 +vt 0.640829 0.808819 +vt 0.683870 0.808819 +vt 0.596430 0.803338 +vt 0.616593 0.808819 +vt 0.597787 0.808819 +vt 0.660992 0.803338 +vt 0.725554 0.803338 +vt 0.705391 0.808819 +vt 0.656838 0.813663 +vt 0.644648 0.818571 +vt 0.643626 0.813663 +vt 0.724197 0.808819 +vt 0.708188 0.813663 +vt 0.635317 0.813663 +vt 0.622105 0.813664 +vt 0.702676 0.808819 +vt 0.686667 0.813663 +vt 0.613796 0.813663 +vt 0.600584 0.813664 +vt 0.677336 0.818571 +vt 0.669395 0.824158 +vt 0.666169 0.818571 +vt 0.698857 0.818571 +vt 0.687690 0.818571 +vt 0.601607 0.818571 +vt 0.720377 0.818571 +vt 0.709210 0.818571 +vt 0.623128 0.818571 +vt 0.652589 0.824158 +vt 0.647874 0.836146 +vt 0.647874 0.824158 +vt 0.712436 0.824158 +vt 0.631069 0.824158 +vt 0.626354 0.824158 +vt 0.655815 0.818571 +vt 0.695631 0.824158 +vt 0.690916 0.824158 +vt 0.612774 0.818571 +vt 0.604833 0.824158 +vt 0.792017 0.852551 +vt 0.796100 0.850193 +vt 0.800184 0.852551 +vt 0.690916 0.836146 +vt 0.609548 0.824158 +vt 0.604833 0.836146 +vt 0.674110 0.824158 +vt 0.669395 0.836146 +vt 0.717151 0.824158 +vt 0.712436 0.836146 +vt 0.626354 0.836146 +vt 0.638114 0.717999 +vt 0.596430 0.723479 +vt 0.665147 0.713154 +vt 0.681155 0.717999 +vt 0.662349 0.717999 +vt 0.659635 0.717999 +vt 0.702676 0.717999 +vt 0.597787 0.717999 +vt 0.705391 0.717999 +vt 0.644648 0.708247 +vt 0.656837 0.713154 +vt 0.643626 0.713154 +vt 0.721400 0.713154 +vt 0.724197 0.717999 +vt 0.619308 0.717999 +vt 0.635317 0.713154 +vt 0.640829 0.717999 +vt 0.686667 0.713154 +vt 0.683870 0.717999 +vt 0.613796 0.713154 +vt 0.616593 0.717999 +vt 0.669395 0.702659 +vt 0.677336 0.708246 +vt 0.666169 0.708246 +vt 0.698856 0.708246 +vt 0.699879 0.713154 +vt 0.601607 0.708247 +vt 0.600584 0.713154 +vt 0.678358 0.713154 +vt 0.708188 0.713154 +vt 0.720377 0.708246 +vt 0.623127 0.708247 +vt 0.622105 0.713154 +vt 0.647874 0.690671 +vt 0.652589 0.702659 +vt 0.647874 0.702659 +vt 0.712436 0.702659 +vt 0.709210 0.708246 +vt 0.631068 0.702659 +vt 0.634294 0.708247 +vt 0.655815 0.708246 +vt 0.687690 0.708246 +vt 0.695631 0.702659 +vt 0.609547 0.702659 +vt 0.612773 0.708247 +vt 0.696809 0.885813 +vt 0.696809 0.881098 +vt 0.700893 0.878741 +vt 0.690916 0.690671 +vt 0.690915 0.702659 +vt 0.604832 0.690672 +vt 0.604832 0.702659 +vt 0.669395 0.690672 +vt 0.674110 0.702659 +vt 0.712436 0.690672 +vt 0.717151 0.702659 +vt 0.626354 0.690671 +vt 0.626353 0.702659 +vt 0.539489 0.662552 +vt 0.530537 0.626566 +vt 0.541470 0.624156 +vt 0.521994 0.657280 +vt 0.522018 0.631474 +vt 0.512477 0.654813 +vt 0.512497 0.633922 +vt 0.567104 0.656501 +vt 0.559023 0.632614 +vt 0.568376 0.635647 +vt 0.557452 0.658376 +vt 0.550823 0.627189 +vt 0.548654 0.662764 +vt 0.527522 0.698874 +vt 0.530503 0.662204 +vt 0.521331 0.666550 +vt 0.519173 0.693104 +vt 0.511331 0.668282 +vt 0.567457 0.691304 +vt 0.557405 0.667647 +vt 0.567145 0.670010 +vt 0.549187 0.699089 +vt 0.537876 0.738665 +vt 0.538860 0.699091 +vt 0.518013 0.733188 +vt 0.518013 0.704364 +vt 0.507381 0.707109 +vt 0.569318 0.707322 +vt 0.558690 0.733388 +vt 0.558691 0.704578 +vt 0.537662 0.775156 +vt 0.527522 0.738678 +vt 0.519390 0.770224 +vt 0.518914 0.743857 +vt 0.509619 0.767888 +vt 0.509234 0.746544 +vt 0.565380 0.769400 +vt 0.557526 0.744628 +vt 0.567103 0.747937 +vt 0.555399 0.771140 +vt 0.549185 0.738876 +vt 0.536415 0.808349 +vt 0.528179 0.775090 +vt 0.519937 0.803468 +vt 0.520232 0.779548 +vt 0.511381 0.781718 +vt 0.562846 0.782540 +vt 0.553741 0.804033 +vt 0.554066 0.780145 +vt 0.546247 0.775488 +vt 0.534853 0.846711 +vt 0.527772 0.808121 +vt 0.517338 0.838217 +vt 0.518971 0.812483 +vt 0.509324 0.814332 +vt 0.563947 0.815884 +vt 0.554383 0.839383 +vt 0.554368 0.813416 +vt 0.545798 0.808475 +vt 0.743325 0.846202 +vt 0.734511 0.780557 +vt 0.743325 0.780557 +vt 0.734511 0.846202 +vt 0.725698 0.780557 +vt 0.778577 0.846202 +vt 0.769764 0.780557 +vt 0.778577 0.780557 +vt 0.752138 0.861467 +vt 0.743325 0.861467 +vt 0.738918 0.853835 +vt 0.769764 0.846202 +vt 0.760951 0.780557 +vt 0.760951 0.846202 +vt 0.752138 0.780557 +vt 0.743325 0.765292 +vt 0.752138 0.765292 +vt 0.756544 0.772924 +vt 0.598904 0.450451 +vt 0.597400 0.428674 +vt 0.598904 0.428674 +vt 0.752138 0.846202 +vt 0.597400 0.450451 +vt 0.595510 0.428674 +vt 0.597397 0.427170 +vt 0.595507 0.427170 +vt 0.594007 0.428674 +vt 0.595510 0.450451 +vt 0.594007 0.450451 +vt 0.597397 0.451954 +vt 0.172227 0.765938 +vt 0.166938 0.740681 +vt 0.172228 0.740681 +vt 0.172227 0.715424 +vt 0.166938 0.866966 +vt 0.172227 0.841709 +vt 0.172228 0.866966 +vt 0.166938 0.841709 +vt 0.172227 0.816452 +vt 0.152869 0.717751 +vt 0.166938 0.715424 +vt 0.166938 0.816452 +vt 0.172227 0.791195 +vt 0.166938 0.765938 +vt 0.187088 0.864576 +vt 0.216258 0.756632 +vt 0.198414 0.746330 +vt 0.216258 0.715424 +vt 0.166938 0.791195 +vt 0.152869 0.814126 +vt 0.152869 0.793522 +vt 0.152870 0.743008 +vt 0.152870 0.864640 +vt 0.152869 0.844036 +vt 0.152869 0.788868 +vt 0.152869 0.768265 +vt 0.152869 0.818779 +vt 0.187087 0.814062 +vt 0.194168 0.797673 +vt 0.194168 0.809974 +vt 0.187088 0.768328 +vt 0.187087 0.788806 +vt 0.187088 0.839319 +vt 0.187088 0.717814 +vt 0.187088 0.738291 +vt 0.187088 0.743071 +vt 0.187088 0.763549 +vt 0.708834 0.775416 +vt 0.713051 0.763876 +vt 0.713051 0.774656 +vt 0.187088 0.844099 +vt 0.194169 0.860488 +vt 0.194169 0.747160 +vt 0.194169 0.759461 +vt 0.194169 0.772417 +vt 0.194168 0.784717 +vt 0.187087 0.818842 +vt 0.194169 0.835231 +vt 0.194169 0.721902 +vt 0.194169 0.734203 +vt 0.722416 0.768920 +vt 0.713080 0.763529 +vt 0.713080 0.752749 +vt 0.708834 0.813629 +vt 0.713051 0.825169 +vt 0.708834 0.825930 +vt 0.708834 0.712601 +vt 0.713051 0.724142 +vt 0.708834 0.724902 +vt 0.708834 0.788372 +vt 0.713051 0.799913 +vt 0.708834 0.800673 +vt 0.708834 0.851187 +vt 0.713051 0.839646 +vt 0.713051 0.850427 +vt 0.708834 0.737858 +vt 0.713051 0.749399 +vt 0.708834 0.750159 +vt 0.294370 0.288682 +vt 0.282009 0.316260 +vt 0.282523 0.290958 +vt 0.111872 0.368366 +vt 0.117819 0.383109 +vt 0.105182 0.379030 +vt 0.244750 0.469833 +vt 0.236614 0.419488 +vt 0.244750 0.418305 +vt 0.291396 0.345771 +vt 0.296207 0.414923 +vt 0.284577 0.418229 +vt 0.142062 0.327911 +vt 0.154598 0.277537 +vt 0.154598 0.326756 +vt 0.352881 0.428986 +vt 0.327695 0.467098 +vt 0.327695 0.421040 +vt 0.236614 0.468651 +vt 0.222384 0.425600 +vt 0.113833 0.390300 +vt 0.101197 0.386221 +vt 0.239145 0.411717 +vt 0.236151 0.397828 +vt 0.244213 0.399443 +vt 0.142062 0.276383 +vt 0.133926 0.326728 +vt 0.133926 0.277565 +vt 0.224344 0.387806 +vt 0.215554 0.387155 +vt 0.218049 0.381113 +vt 0.101197 0.401708 +vt 0.219277 0.400080 +vt 0.119696 0.283678 +vt 0.101197 0.314470 +vt 0.107733 0.289824 +vt 0.107733 0.314470 +vt 0.119696 0.320616 +vt 0.222384 0.462538 +vt 0.215554 0.431746 +vt 0.113834 0.405787 +vt 0.108641 0.412910 +vt 0.151062 0.327987 +vt 0.195826 0.350407 +vt 0.210708 0.367530 +vt 0.196826 0.288518 +vt 0.208893 0.312342 +vt 0.196468 0.315696 +vt 0.139544 0.333726 +vt 0.215478 0.378614 +vt 0.316497 0.338796 +vt 0.308068 0.409865 +vt 0.259909 0.292936 +vt 0.247128 0.311195 +vt 0.247433 0.294457 +vt 0.319951 0.361232 +vt 0.312942 0.401961 +vt 0.259522 0.313253 +vt 0.209234 0.292024 +vt 0.218022 0.310674 +vt 0.231455 0.310275 +vt 0.231736 0.294769 +vt 0.218322 0.293936 +vt 0.160233 0.329406 +vt 0.186236 0.342290 +vt 0.319951 0.373800 +vt 0.317454 0.389300 +vt 0.255963 0.419460 +vt 0.269653 0.418891 +vt 0.255963 0.468679 +vt 0.283349 0.419794 +vt 0.269653 0.469247 +vt 0.179002 0.326772 +vt 0.182793 0.279386 +vt 0.182793 0.324907 +vt 0.166800 0.327325 +vt 0.179002 0.277522 +vt 0.166800 0.276969 +vt 0.251604 0.413517 +vt 0.255306 0.397444 +vt 0.263694 0.415262 +vt 0.268904 0.395754 +vt 0.275783 0.417007 +vt 0.127120 0.344105 +vt 0.149936 0.363391 +vt 0.124858 0.347674 +vt 0.136609 0.366672 +vt 0.118365 0.358020 +vt 0.126522 0.375945 +vt 0.189270 0.381869 +vt 0.129617 0.340179 +vt 0.154838 0.362201 +vt 0.186749 0.281836 +vt 0.186749 0.322457 +vt 0.288046 0.466506 +vt 0.283349 0.468344 +vt 0.288046 0.421633 +vt 0.280030 0.387717 +vt 0.279968 0.417592 +vt 0.284109 0.384750 +vt 0.736257 0.749904 +vt 0.720981 0.735530 +vt 0.737601 0.735936 +vt 0.692257 0.749976 +vt 0.667660 0.739250 +vt 0.690864 0.735991 +vt 0.656960 0.729484 +vt 0.671630 0.727494 +vt 0.759218 0.752722 +vt 0.760973 0.739048 +vt 0.655240 0.754127 +vt 0.654630 0.741140 +vt 0.699236 0.763166 +vt 0.729711 0.786304 +vt 0.699401 0.786517 +vt 0.672000 0.720136 +vt 0.659437 0.673315 +vt 0.674733 0.671568 +vt 0.756640 0.727337 +vt 0.690778 0.721089 +vt 0.737245 0.669306 +vt 0.720921 0.712637 +vt 0.721119 0.668222 +vt 0.770995 0.729067 +vt 0.775102 0.740741 +vt 0.691946 0.668674 +vt 0.707690 0.712575 +vt 0.691181 0.713632 +vt 0.737660 0.721120 +vt 0.756168 0.720079 +vt 0.759698 0.661123 +vt 0.754034 0.672902 +vt 0.737267 0.713753 +vt 0.721068 0.720172 +vt 0.708242 0.664474 +vt 0.730412 0.646622 +vt 0.721161 0.664626 +vt 0.693252 0.655628 +vt 0.708200 0.668070 +vt 0.773373 0.754463 +vt 0.707499 0.735519 +vt 0.707983 0.750017 +vt 0.720616 0.749928 +vt 0.276862 0.356559 +vt 0.290431 0.341211 +vt 0.290344 0.356570 +vt 0.707508 0.720200 +vt 0.307023 0.342159 +vt 0.730695 0.622609 +vt 0.699417 0.646258 +vt 0.699700 0.622244 +vt 0.729546 0.762953 +vt 0.260141 0.342128 +vt 0.260227 0.357030 +vt 0.669837 0.659434 +vt 0.736442 0.656278 +vt 0.718696 0.665604 +vt 0.637125 0.740104 +vt 0.638041 0.728257 +vt 0.657420 0.722230 +vt 0.638442 0.721194 +vt 0.639290 0.674330 +vt 0.657986 0.660330 +vt 0.768416 0.675386 +vt 0.770534 0.721953 +vt 0.705585 0.611441 +vt 0.725065 0.611670 +vt 0.705124 0.799693 +vt 0.468409 0.803653 +vt 0.432321 0.777944 +vt 0.468147 0.777333 +vt 0.467547 0.751090 +vt 0.431825 0.960571 +vt 0.468094 0.935326 +vt 0.467293 0.961486 +vt 0.432446 0.934600 +vt 0.468625 0.909056 +vt 0.432887 0.908590 +vt 0.468914 0.882722 +vt 0.433124 0.882534 +vt 0.469005 0.856330 +vt 0.252713 0.926008 +vt 0.234184 0.907479 +vt 0.297448 0.881274 +vt 0.433163 0.856431 +vt 0.468870 0.829966 +vt 0.433008 0.830309 +vt 0.402012 0.955428 +vt 0.397300 0.927800 +vt 0.404066 0.928173 +vt 0.687720 0.750985 +vt 0.680145 0.726425 +vt 0.686631 0.726623 +vt 0.405324 0.800871 +vt 0.399383 0.825394 +vt 0.398294 0.801032 +vt 0.405388 0.876012 +vt 0.397510 0.901583 +vt 0.399024 0.875931 +vt 0.397503 0.901726 +vt 0.405036 0.901915 +vt 0.403269 0.751934 +vt 0.398317 0.776869 +vt 0.397135 0.754788 +vt 0.405529 0.825455 +vt 0.398520 0.850403 +vt 0.399381 0.825522 +vt 0.404431 0.776697 +vt 0.398295 0.800898 +vt 0.398319 0.776992 +vt 0.405807 0.850546 +vt 0.399030 0.875799 +vt 0.398516 0.850542 +vt 0.680386 0.801069 +vt 0.672012 0.775951 +vt 0.680120 0.775770 +vt 0.686654 0.702459 +vt 0.680397 0.678377 +vt 0.685472 0.680379 +vt 0.685647 0.853251 +vt 0.678903 0.826776 +vt 0.685839 0.827317 +vt 0.685847 0.827174 +vt 0.687361 0.801521 +vt 0.686856 0.775994 +vt 0.680970 0.750833 +vt 0.687717 0.751113 +vt 0.686655 0.702582 +vt 0.680400 0.702433 +vt 0.685636 0.853391 +vt 0.676386 0.880012 +vt 0.678246 0.852673 +vt 0.687366 0.801389 +vt 0.686852 0.776133 +vt 0.666018 0.750825 +vt 0.672677 0.751098 +vt 0.672359 0.726775 +vt 0.672420 0.678157 +vt 0.670576 0.826799 +vt 0.671795 0.801161 +vt 0.672599 0.702801 +vt 0.669799 0.852532 +vt 0.375392 0.900738 +vt 0.367298 0.925768 +vt 0.368419 0.900106 +vt 0.665917 0.702651 +vt 0.667453 0.879204 +vt 0.663024 0.851996 +vt 0.664913 0.800603 +vt 0.665347 0.775609 +vt 0.666024 0.750692 +vt 0.665933 0.726588 +vt 0.665920 0.702524 +vt 0.666176 0.680584 +vt 0.663728 0.826328 +vt 0.664905 0.800741 +vt 0.369605 0.874566 +vt 0.363323 0.849412 +vt 0.370241 0.849510 +vt 0.375402 0.900600 +vt 0.376568 0.875150 +vt 0.377018 0.849885 +vt 0.370951 0.824801 +vt 0.377682 0.825235 +vt 0.377601 0.800869 +vt 0.371383 0.776907 +vt 0.377581 0.777061 +vt 0.373635 0.950910 +vt 0.374687 0.926405 +vt 0.377011 0.850018 +vt 0.377688 0.825102 +vt 0.371077 0.800659 +vt 0.377597 0.800998 +vt 0.377839 0.754993 +vt 0.371413 0.752320 +vt 0.360267 0.925582 +vt 0.347083 0.950103 +vt 0.348183 0.927438 +vt 0.364418 0.800713 +vt 0.364200 0.752350 +vt 0.361297 0.899912 +vt 0.362552 0.874407 +vt 0.364148 0.824770 +vt 0.364611 0.776997 +vt 0.366231 0.953475 +vt 0.350327 0.897110 +vt 0.341055 0.878800 +vt 0.351359 0.876119 +vt 0.352395 0.851288 +vt 0.353941 0.802724 +vt 0.353528 0.754710 +vt 0.350053 0.901736 +vt 0.353368 0.826592 +vt 0.354131 0.798530 +vt 0.354290 0.779011 +vt 0.341912 0.868436 +vt 0.337171 0.854714 +vt 0.342354 0.854099 +vt 0.352689 0.846873 +vt 0.343461 0.829337 +vt 0.344830 0.781891 +vt 0.337060 0.930341 +vt 0.344181 0.819416 +vt 0.344336 0.805617 +vt 0.344009 0.772085 +vt 0.343773 0.757947 +vt 0.339120 0.919252 +vt 0.339711 0.904527 +vt 0.337928 0.842538 +vt 0.336179 0.830746 +vt 0.338350 0.829930 +vt 0.339363 0.806307 +vt 0.338699 0.758796 +vt 0.334381 0.905110 +vt 0.335110 0.892381 +vt 0.335752 0.879332 +vt 0.339831 0.794720 +vt 0.339930 0.782587 +vt 0.330651 0.945008 +vt 0.331335 0.930918 +vt 0.331660 0.917230 +vt 0.328650 0.905805 +vt 0.332113 0.905944 +vt 0.337862 0.783423 +vt 0.328894 0.931793 +vt 0.334633 0.866535 +vt 0.334971 0.855547 +vt 0.337144 0.817725 +vt 0.337262 0.807149 +vt 0.336753 0.770554 +vt 0.336572 0.759719 +vt 0.333490 0.880141 +vt 0.941898 0.795080 +vt 0.941898 0.783551 +vt 0.969733 0.795080 +vt 0.332939 0.891354 +vt 0.330049 0.879972 +vt 0.335816 0.841579 +vt 0.332854 0.830634 +vt 0.337776 0.793850 +vt 0.334662 0.783397 +vt 0.328306 0.943900 +vt 0.325178 0.931613 +vt 0.331599 0.855443 +vt 0.334017 0.807113 +vt 0.333246 0.759774 +vt 0.428276 0.902463 +vt 0.428438 0.850443 +vt 0.427095 0.800329 +vt 0.425262 0.751105 +vt 0.426477 0.956538 +vt 0.673824 0.788881 +vt 0.671595 0.810654 +vt 0.670524 0.788997 +vt 0.673367 0.767296 +vt 0.670065 0.767319 +vt 0.670218 0.745637 +vt 0.670983 0.723967 +vt 0.673519 0.745706 +vt 0.675650 0.702584 +vt 0.672358 0.702328 +vt 0.674344 0.680736 +vt 0.675956 0.832101 +vt 0.674339 0.853928 +vt 0.672662 0.832310 +vt 0.678391 0.810766 +vt 0.680639 0.832492 +vt 0.678004 0.832445 +vt 0.661211 0.777994 +vt 0.658377 0.800847 +vt 0.658377 0.776825 +vt 0.796315 0.870850 +vt 0.818826 0.877857 +vt 0.796315 0.877857 +vt 0.661248 0.753053 +vt 0.663763 0.775775 +vt 0.661247 0.774736 +vt 0.677663 0.854079 +vt 0.651742 0.681492 +vt 0.653581 0.704758 +vt 0.651742 0.704003 +vt 0.818826 0.870850 +vt 0.841337 0.877858 +vt 0.661247 0.822256 +vt 0.663763 0.799534 +vt 0.663763 0.823294 +vt 0.677663 0.680829 +vt 0.680639 0.702416 +vt 0.678004 0.702463 +vt 0.661211 0.826039 +vt 0.658377 0.848891 +vt 0.658377 0.824869 +vt 0.661247 0.870850 +vt 0.683759 0.877858 +vt 0.661247 0.877858 +vt 0.670029 0.775151 +vt 0.668508 0.752015 +vt 0.670029 0.752639 +vt 0.678391 0.724142 +vt 0.661211 0.681906 +vt 0.658378 0.704758 +vt 0.658378 0.680736 +vt 0.683759 0.870850 +vt 0.706270 0.877857 +vt 0.661247 0.848092 +vt 0.663763 0.870813 +vt 0.661247 0.869775 +vt 0.681026 0.724095 +vt 0.678778 0.745822 +vt 0.651742 0.776069 +vt 0.653580 0.752802 +vt 0.653580 0.776825 +vt 0.706270 0.870850 +vt 0.728781 0.877857 +vt 0.670029 0.822670 +vt 0.668508 0.799534 +vt 0.670029 0.800159 +vt 0.681413 0.745775 +vt 0.679210 0.767454 +vt 0.651742 0.801602 +vt 0.653580 0.824869 +vt 0.651742 0.824113 +vt 0.728781 0.870850 +vt 0.751292 0.877857 +vt 0.661247 0.727217 +vt 0.663763 0.704496 +vt 0.663763 0.728256 +vt 0.681413 0.789133 +vt 0.678778 0.789086 +vt 0.661211 0.753972 +vt 0.658377 0.752802 +vt 0.751292 0.870850 +vt 0.773803 0.877857 +vt 0.670029 0.870189 +vt 0.668507 0.847054 +vt 0.670029 0.847678 +vt 0.651742 0.872158 +vt 0.653580 0.848891 +vt 0.653580 0.872914 +vt 0.773803 0.870850 +vt 0.670029 0.727631 +vt 0.668508 0.704496 +vt 0.670029 0.705120 +vt 0.668508 0.728256 +vt 0.668508 0.680736 +vt 0.668507 0.870813 +vt 0.663763 0.847054 +vt 0.668508 0.823294 +vt 0.668508 0.775775 +vt 0.663763 0.752015 +vt 0.670029 0.703872 +vt 0.670029 0.681360 +vt 0.670029 0.823918 +vt 0.661248 0.703457 +vt 0.663763 0.680736 +vt 0.670029 0.798910 +vt 0.670029 0.776399 +vt 0.661247 0.824332 +vt 0.661247 0.846015 +vt 0.670029 0.728880 +vt 0.661247 0.798496 +vt 0.661248 0.729294 +vt 0.661248 0.750977 +vt 0.658377 0.728780 +vt 0.658378 0.872914 +vt 0.653580 0.800847 +vt 0.651742 0.848136 +vt 0.661211 0.751633 +vt 0.661211 0.729950 +vt 0.651742 0.777580 +vt 0.651742 0.800091 +vt 0.651742 0.752047 +vt 0.653580 0.728780 +vt 0.661211 0.727611 +vt 0.661211 0.705928 +vt 0.661211 0.871744 +vt 0.661211 0.850061 +vt 0.651742 0.705514 +vt 0.651742 0.728025 +vt 0.661211 0.823699 +vt 0.661211 0.802016 +vt 0.593987 0.466928 +vt 0.536809 0.473554 +vt 0.536809 0.466928 +vt 0.593987 0.473554 +vt 0.536809 0.480180 +vt 0.593987 0.427170 +vt 0.536809 0.433796 +vt 0.536809 0.427170 +vt 0.593987 0.433796 +vt 0.536809 0.440423 +vt 0.593987 0.440423 +vt 0.536809 0.447049 +vt 0.593987 0.447049 +vt 0.536809 0.453675 +vt 0.564138 0.496197 +vt 0.557512 0.496197 +vt 0.552826 0.491512 +vt 0.593987 0.453675 +vt 0.536809 0.460302 +vt 0.593987 0.460302 +vt 0.548121 0.480200 +vt 0.552807 0.484886 +vt 0.552807 0.491512 +vt 0.657338 0.624156 +vt 0.684146 0.636043 +vt 0.657338 0.646468 +vt 0.596234 0.646468 +vt 0.609293 0.662148 +vt 0.596234 0.662148 +vt 0.644279 0.624156 +vt 0.635940 0.641988 +vt 0.635940 0.624156 +vt 0.644279 0.646468 +vt 0.657338 0.662148 +vt 0.644279 0.662148 +vt 0.644279 0.684460 +vt 0.657338 0.684460 +vt 0.617285 0.648848 +vt 0.635117 0.659768 +vt 0.617285 0.659768 +vt 0.609293 0.646468 +vt 0.635117 0.648848 +vt 0.635940 0.666628 +vt 0.686022 0.648617 +vt 0.697909 0.659999 +vt 0.686022 0.659999 +vt 0.684146 0.672573 +vt 0.684146 0.684460 +vt 0.569512 0.659999 +vt 0.569512 0.648617 +vt 0.684146 0.733070 +vt 0.657338 0.744957 +vt 0.657338 0.722645 +vt 0.609293 0.706965 +vt 0.596234 0.722645 +vt 0.596234 0.706965 +vt 0.644279 0.744957 +vt 0.635940 0.727125 +vt 0.644279 0.722645 +vt 0.657338 0.706965 +vt 0.644279 0.706965 +vt 0.644279 0.684653 +vt 0.657338 0.684653 +vt 0.635117 0.709345 +vt 0.617285 0.720265 +vt 0.617285 0.709345 +vt 0.609293 0.722645 +vt 0.635940 0.702485 +vt 0.697909 0.709114 +vt 0.686022 0.720496 +vt 0.686022 0.709114 +vt 0.684146 0.696540 +vt 0.569512 0.709114 +vt 0.687094 0.850835 +vt 0.668374 0.871028 +vt 0.668880 0.855092 +vt 0.755690 0.850835 +vt 0.742632 0.835156 +vt 0.755690 0.835156 +vt 0.708241 0.870993 +vt 0.719772 0.857405 +vt 0.716580 0.870969 +vt 0.700152 0.850835 +vt 0.687094 0.835156 +vt 0.700152 0.835156 +vt 0.695183 0.814998 +vt 0.695183 0.870993 +vt 0.734640 0.848456 +vt 0.720705 0.837535 +vt 0.734640 0.837535 +vt 0.720705 0.848456 +vt 0.708242 0.814998 +vt 0.719772 0.828586 +vt 0.668513 0.848686 +vt 0.652570 0.837305 +vt 0.668513 0.837305 +vt 0.668374 0.814963 +vt 0.782413 0.848686 +vt 0.507381 0.592589 +vt 0.517080 0.607896 +vt 0.507387 0.607900 +vt 0.650947 0.611955 +vt 0.650586 0.616094 +vt 0.646319 0.621727 +vt 0.666752 0.768747 +vt 0.686764 0.776291 +vt 0.667308 0.776511 +vt 0.803577 0.589880 +vt 0.803817 0.587267 +vt 0.806813 0.583472 +vt 0.841024 0.871221 +vt 0.814095 0.886695 +vt 0.814095 0.871221 +vt 0.914062 0.871221 +vt 0.887133 0.886695 +vt 0.887133 0.871221 +vt 0.984776 0.871221 +vt 0.960171 0.886695 +vt 0.960171 0.871221 +vt 0.652570 0.871221 +vt 0.767986 0.886695 +vt 0.652570 0.886695 +vt 0.527349 0.604901 +vt 0.825309 0.595589 +vt 0.825308 0.604911 +vt 0.665637 0.750916 +vt 0.686629 0.768163 +vt 0.665076 0.808360 +vt 0.655487 0.808168 +vt 0.655848 0.798318 +vt 0.656852 0.767886 +vt 0.656097 0.760783 +vt 0.760863 0.788053 +vt 0.751192 0.772277 +vt 0.760938 0.772323 +vt 0.662462 0.776147 +vt 0.751117 0.788007 +vt 0.730573 0.772179 +vt 0.666572 0.790660 +vt 0.686731 0.783381 +vt 0.686464 0.791526 +vt 0.685418 0.809662 +vt 0.702516 0.787776 +vt 0.720903 0.772133 +vt 0.720828 0.787863 +vt 0.694600 0.796708 +vt 0.693495 0.814770 +vt 0.685873 0.750109 +vt 0.694810 0.763131 +vt 0.730498 0.787909 +vt 0.667168 0.782974 +vt 0.662462 0.783303 +vt 0.694502 0.783418 +vt 0.693012 0.771912 +vt 0.694536 0.776328 +vt 0.702591 0.772046 +vt 0.652570 0.774891 +vt 0.652570 0.784558 +vt 0.692927 0.787866 +vt 0.753166 0.589107 +vt 0.780211 0.589523 +vt 0.517091 0.592585 +vt 0.780716 0.610920 +vt 0.753871 0.611342 +vt 0.806408 0.871221 +vt 0.775673 0.886695 +vt 0.775673 0.871221 +vt 0.812776 0.886695 +vt 0.769305 0.871221 +vt 0.767986 0.871221 +vt 0.769305 0.886695 +vt 0.806408 0.886695 +vt 0.879446 0.871221 +vt 0.848711 0.886695 +vt 0.848711 0.871221 +vt 0.885814 0.886695 +vt 0.842343 0.871221 +vt 0.841024 0.886695 +vt 0.842343 0.886695 +vt 0.885814 0.871221 +vt 0.952484 0.871221 +vt 0.921749 0.886695 +vt 0.921749 0.871221 +vt 0.958852 0.871221 +vt 0.958852 0.886695 +vt 0.915381 0.871221 +vt 0.914062 0.886695 +vt 0.915381 0.886695 +vt 0.952484 0.886695 +vt 0.727505 0.585511 +vt 0.753313 0.586332 +vt 0.756417 0.582443 +vt 0.777420 0.582866 +vt 0.780357 0.586873 +vt 0.727356 0.588687 +vt 0.695088 0.579087 +vt 0.723588 0.580023 +vt 0.690554 0.588399 +vt 0.648787 0.584252 +vt 0.690717 0.584368 +vt 0.518329 0.577020 +vt 0.644354 0.577019 +vt 0.645688 0.577706 +vt 0.825516 0.617637 +vt 0.806985 0.617940 +vt 0.806095 0.617494 +vt 0.803990 0.613178 +vt 0.780699 0.613575 +vt 0.777810 0.617541 +vt 0.756950 0.617979 +vt 0.728182 0.611771 +vt 0.753871 0.614124 +vt 0.728190 0.614946 +vt 0.691930 0.612062 +vt 0.724388 0.620358 +vt 0.695957 0.621276 +vt 0.691701 0.616067 +vt 0.074863 0.862419 +vt 0.041487 0.845907 +vt 0.074863 0.845907 +vt 0.208370 0.862419 +vt 0.174994 0.845907 +vt 0.208370 0.845907 +vt 0.174994 0.862419 +vt 0.141617 0.845907 +vt 0.759121 0.703643 +vt 0.763396 0.737251 +vt 0.760353 0.736143 +vt 0.207069 0.842175 +vt 0.786226 0.661385 +vt 0.787099 0.696141 +vt 0.783028 0.660488 +vt 0.786226 0.816865 +vt 0.787099 0.782109 +vt 0.790012 0.783704 +vt 0.738082 0.887901 +vt 0.749823 0.856123 +vt 0.740656 0.889867 +vt 0.760353 0.742107 +vt 0.762071 0.775942 +vt 0.759121 0.774607 +vt 0.130251 0.752410 +vt 0.117722 0.721111 +vt 0.133940 0.720097 +vt 0.129350 0.599029 +vt 0.108048 0.572898 +vt 0.123224 0.567088 +vt 0.130250 0.604925 +vt 0.117722 0.636224 +vt 0.114678 0.609569 +vt 0.134392 0.714149 +vt 0.119529 0.683889 +vt 0.135624 0.681650 +vt 0.129350 0.758306 +vt 0.108048 0.784437 +vt 0.113101 0.758089 +vt 0.323543 0.521306 +vt 0.178785 0.553868 +vt 0.179016 0.520310 +vt 0.323312 0.554864 +vt 0.191344 0.556367 +vt 0.188700 0.636714 +vt 0.196375 0.643810 +vt 0.177885 0.652869 +vt 0.208370 0.837350 +vt 0.240439 0.841159 +vt 0.209679 0.841159 +vt 0.302524 0.704634 +vt 0.178557 0.718309 +vt 0.196859 0.706096 +vt 0.109548 0.841159 +vt 0.141617 0.837350 +vt 0.140309 0.841159 +vt 0.459954 0.627010 +vt 0.454058 0.621089 +vt 0.461711 0.606364 +vt 0.076172 0.841159 +vt 0.108240 0.837350 +vt 0.106932 0.841159 +vt 0.074863 0.837350 +vt 0.042795 0.841159 +vt 0.041487 0.837350 +vt 0.173685 0.841159 +vt 0.174994 0.837350 +vt 0.241747 0.845907 +vt 0.209672 0.842175 +vt 0.240446 0.842175 +vt 0.073562 0.842175 +vt 0.073555 0.841159 +vt 0.106939 0.842175 +vt 0.076165 0.842175 +vt 0.176295 0.842175 +vt 0.207062 0.841159 +vt 0.009418 0.841159 +vt 0.040185 0.842175 +vt 0.009411 0.842175 +vt 0.311616 0.697812 +vt 0.323085 0.717307 +vt 0.446749 0.682132 +vt 0.454484 0.676563 +vt 0.461983 0.693911 +vt 0.454365 0.665148 +vt 0.461754 0.665035 +vt 0.324265 0.685344 +vt 0.313007 0.685763 +vt 0.788819 0.741504 +vt 0.781391 0.779289 +vt 0.782914 0.739125 +vt 0.782310 0.655784 +vt 0.769261 0.619554 +vt 0.775550 0.620541 +vt 0.757821 0.663828 +vt 0.767863 0.699988 +vt 0.761788 0.698570 +vt 0.765070 0.581275 +vt 0.758724 0.580767 +vt 0.757821 0.814422 +vt 0.767863 0.778262 +vt 0.763420 0.817174 +vt 0.747953 0.627546 +vt 0.757255 0.660122 +vt 0.754079 0.659487 +vt 0.790580 0.776227 +vt 0.791845 0.742874 +vt 0.758669 0.780554 +vt 0.754980 0.812868 +vt 0.758669 0.697696 +vt 0.747953 0.850704 +vt 0.757255 0.818128 +vt 0.750668 0.852470 +vt 0.785094 0.653973 +vt 0.778807 0.621194 +vt 0.776832 0.819223 +vt 0.781391 0.698961 +vt 0.763420 0.661076 +vt 0.776832 0.659028 +vt 0.756044 0.622613 +vt 0.769347 0.739125 +vt 0.756044 0.855638 +vt 0.109510 0.598506 +vt 0.083763 0.581008 +vt 0.104985 0.574914 +vt 0.111471 0.611347 +vt 0.113101 0.599246 +vt 0.119529 0.673446 +vt 0.115180 0.648167 +vt 0.118512 0.646637 +vt 0.114678 0.747766 +vt 0.114197 0.722120 +vt 0.104985 0.782421 +vt 0.109510 0.758829 +vt 0.718770 0.731477 +vt 0.697552 0.711798 +vt 0.718010 0.711444 +vt 0.111471 0.745988 +vt 0.092123 0.721600 +vt 0.116090 0.672172 +vt 0.093281 0.650986 +vt 0.116090 0.685162 +vt 0.093281 0.706349 +vt 0.094040 0.686315 +vt 0.114197 0.635214 +vt 0.089849 0.615816 +vt 0.696575 0.779319 +vt 0.689578 0.797508 +vt 0.691489 0.780776 +vt 0.718770 0.746773 +vt 0.697552 0.766452 +vt 0.698343 0.745577 +vt 0.716852 0.696192 +vt 0.694205 0.678176 +vt 0.714578 0.676274 +vt 0.708492 0.641465 +vt 0.692256 0.665421 +vt 0.688321 0.644905 +vt 0.708492 0.836785 +vt 0.692256 0.812829 +vt 0.712268 0.817096 +vt 0.716852 0.782058 +vt 0.694205 0.800074 +vt 0.696575 0.698931 +vt 0.689578 0.680743 +vt 0.687075 0.664353 +vt 0.683902 0.647814 +vt 0.688321 0.833345 +vt 0.687074 0.813897 +vt 0.670581 0.697077 +vt 0.650294 0.688013 +vt 0.669298 0.685843 +vt 0.693382 0.747415 +vt 0.672136 0.760694 +vt 0.672564 0.749395 +vt 0.666196 0.665540 +vt 0.664067 0.654436 +vt 0.683902 0.830436 +vt 0.666196 0.812710 +vt 0.675750 0.862842 +vt 0.659437 0.843826 +vt 0.680165 0.846590 +vt 0.669298 0.792407 +vt 0.670581 0.781173 +vt 0.645281 0.658038 +vt 0.664067 0.823815 +vt 0.647411 0.809107 +vt 0.651576 0.779003 +vt 0.792170 0.858787 +vt 0.837897 0.852498 +vt 0.837897 0.858787 +vt 0.792170 0.846209 +vt 0.792170 0.852498 +vt 0.792170 0.877654 +vt 0.837897 0.883942 +vt 0.792170 0.883942 +vt 0.792170 0.871365 +vt 0.837897 0.865076 +vt 0.837897 0.871365 +vt 0.792170 0.865076 +vt 0.881564 0.850656 +vt 0.877117 0.861392 +vt 0.866381 0.856945 +vt 0.314719 0.975612 +vt 0.326762 0.982391 +vt 0.313189 0.981932 +vt 0.301347 0.662214 +vt 0.196376 0.661927 +vt 0.324264 0.620387 +vt 0.311614 0.607920 +vt 0.323082 0.588424 +vt 0.177947 0.620066 +vt 0.168091 0.588566 +vt 0.178554 0.587429 +vt 0.176302 0.841159 +vt 0.167501 0.684689 +vt 0.167441 0.653416 +vt 0.189059 0.698860 +vt 0.188700 0.669022 +vt 0.177948 0.685671 +vt 0.634488 0.638596 +vt 0.638014 0.628528 +vt 0.640978 0.639439 +vt 0.837897 0.890231 +vt 0.173982 0.975612 +vt 0.184794 0.980700 +vt 0.173813 0.980786 +vt 0.161783 0.982106 +vt 0.186232 0.966456 +vt 0.290702 0.960924 +vt 0.290761 0.964910 +vt 0.340529 0.645113 +vt 0.446339 0.626918 +vt 0.446326 0.644424 +vt 0.679936 0.866077 +vt 0.685412 0.845918 +vt 0.653022 0.759969 +vt 0.176204 0.962749 +vt 0.186163 0.961764 +vt 0.314189 0.952419 +vt 0.300675 0.944255 +vt 0.317014 0.948953 +vt 0.109541 0.842175 +vt 0.140316 0.842175 +vt 0.452576 0.982507 +vt 0.463142 0.975612 +vt 0.465756 0.979239 +vt 0.788819 0.736746 +vt 0.787459 0.700886 +vt 0.659437 0.634425 +vt 0.656472 0.623513 +vt 0.442243 0.979216 +vt 0.442081 0.985101 +vt 0.290702 0.944238 +vt 0.299950 0.947451 +vt 0.300675 0.960908 +vt 0.299950 0.957711 +vt 0.314189 0.952744 +vt 0.299764 0.978453 +vt 0.310165 0.985594 +vt 0.298915 0.982521 +vt 0.289357 0.981499 +vt 0.289333 0.975612 +vt 0.337691 0.977558 +vt 0.098660 0.820501 +vt 0.102057 0.795077 +vt 0.105694 0.794611 +vt 0.446810 0.693938 +vt 0.454466 0.594878 +vt 0.446757 0.589328 +vt 0.461939 0.577590 +vt 0.745776 0.584818 +vt 0.080315 0.566105 +vt 0.095759 0.539076 +vt 0.102057 0.562258 +vt 0.691489 0.697474 +vt 0.638014 0.849722 +vt 0.656472 0.854737 +vt 0.446820 0.577560 +vt 0.738082 0.590349 +vt 0.749823 0.622128 +vt 0.746608 0.621735 +vt 0.121879 0.561277 +vt 0.098660 0.536834 +vt 0.113353 0.529892 +vt 0.243049 0.842175 +vt 0.273816 0.841159 +vt 0.273823 0.842175 +vt 0.740656 0.588383 +vt 0.083763 0.776327 +vt 0.693382 0.730835 +vt 0.692744 0.714006 +vt 0.337571 0.982619 +vt 0.160078 0.901277 +vt 0.122340 0.938934 +vt 0.085257 0.909698 +vt 0.275124 0.845907 +vt 0.705044 0.851687 +vt 0.699788 0.871034 +vt 0.142918 0.842175 +vt 0.326037 0.620144 +vt 0.331671 0.650833 +vt 0.326267 0.651299 +vt 0.330650 0.663037 +vt 0.324656 0.663275 +vt 0.330614 0.608328 +vt 0.324590 0.608016 +vt 0.332277 0.596183 +vt 0.327061 0.578210 +vt 0.340693 0.588559 +vt 0.331583 0.620575 +vt 0.326731 0.693126 +vt 0.332160 0.675176 +vt 0.041487 0.862419 +vt 0.008110 0.845907 +vt 0.777117 0.613889 +vt 0.768366 0.581679 +vt 0.121879 0.796058 +vt 0.134392 0.643185 +vt 0.745776 0.893432 +vt 0.705044 0.626563 +vt 0.679936 0.612173 +vt 0.699788 0.607216 +vt 0.680165 0.631660 +vt 0.675750 0.615409 +vt 0.008110 0.837350 +vt 0.790580 0.702023 +vt 0.634488 0.839654 +vt 0.632839 0.845723 +vt 0.233859 0.885432 +vt 0.175562 0.930199 +vt 0.175562 0.870923 +vt 0.340483 0.682895 +vt 0.340659 0.691513 +vt 0.454069 0.650265 +vt 0.328705 0.520310 +vt 0.341652 0.551659 +vt 0.327962 0.552552 +vt 0.340925 0.579939 +vt 0.327513 0.718940 +vt 0.341269 0.719879 +vt 0.459642 0.520310 +vt 0.446460 0.550286 +vt 0.445095 0.521164 +vt 0.459703 0.750615 +vt 0.446433 0.721309 +vt 0.461634 0.721227 +vt 0.341884 0.749217 +vt 0.445110 0.749566 +vt 0.342347 0.521361 +vt 0.672376 0.760954 +vt 0.666688 0.725988 +vt 0.672622 0.721033 +vt 0.315098 0.557219 +vt 0.191146 0.585104 +vt 0.404923 0.830258 +vt 0.398083 0.826306 +vt 0.404970 0.825822 +vt 0.672968 0.644290 +vt 0.668770 0.634152 +vt 0.673046 0.627943 +vt 0.171673 0.707536 +vt 0.175271 0.737367 +vt 0.171994 0.741994 +vt 0.296421 0.825822 +vt 0.302713 0.829258 +vt 0.296390 0.829743 +vt 0.177592 0.778384 +vt 0.173180 0.808813 +vt 0.172380 0.774160 +vt 0.331325 0.829448 +vt 0.302737 0.826185 +vt 0.331355 0.825966 +vt 0.386366 0.826227 +vt 0.398046 0.829783 +vt 0.386329 0.829722 +vt 0.357915 0.826055 +vt 0.357884 0.829634 +vt 0.175295 0.698725 +vt 0.171551 0.693345 +vt 0.713201 0.721362 +vt 0.713498 0.684307 +vt 0.672864 0.683977 +vt 0.666824 0.715921 +vt 0.177390 0.769698 +vt 0.028764 0.708208 +vt 0.124089 0.742320 +vt 0.113087 0.742395 +vt 0.669066 0.678666 +vt 0.327662 0.716011 +vt 0.296421 0.712823 +vt 0.331088 0.713489 +vt 0.331126 0.724012 +vt 0.299814 0.721363 +vt 0.296421 0.724239 +vt 0.300232 0.715750 +vt 0.296421 0.675999 +vt 0.299809 0.685664 +vt 0.296421 0.688736 +vt 0.327449 0.685745 +vt 0.331241 0.688518 +vt 0.327754 0.678912 +vt 0.331208 0.676084 +vt 0.300160 0.679045 +vt 0.296421 0.700860 +vt 0.300021 0.709721 +vt 0.296421 0.712663 +vt 0.327040 0.709681 +vt 0.331091 0.712270 +vt 0.327366 0.703877 +vt 0.331046 0.701249 +vt 0.300401 0.703801 +vt 0.133601 0.774424 +vt 0.133535 0.742255 +vt 0.113373 0.774562 +vt 0.095303 0.742516 +vt 0.105260 0.774617 +vt 0.095591 0.774683 +vt 0.327298 0.721488 +vt 0.080790 0.742616 +vt 0.018656 0.779631 +vt 0.018657 0.737143 +vt 0.124377 0.774487 +vt 0.088143 0.774734 +vt 0.081010 0.774783 +vt 0.454347 0.606253 +vt 0.714417 0.628363 +vt 0.714251 0.644710 +vt 0.004465 0.737143 +vt 0.004465 0.779631 +vt 0.108240 0.845907 +vt 0.108240 0.862419 +vt 0.178790 0.751868 +vt 0.323550 0.784426 +vt 0.179022 0.785426 +vt 0.191348 0.749370 +vt 0.323317 0.750868 +vt 0.769261 0.858696 +vt 0.782310 0.822466 +vt 0.775550 0.857709 +vt 0.765070 0.896975 +vt 0.774478 0.862345 +vt 0.785094 0.824277 +vt 0.778807 0.857057 +vt 0.763396 0.741000 +vt 0.115180 0.709168 +vt 0.118512 0.710698 +vt 0.672136 0.717557 +vt 0.792170 0.896520 +vt 0.792170 0.890231 +vt 0.837897 0.877654 +vt 0.176169 0.960371 +vt 0.160403 0.956475 +vt 0.165729 0.952744 +vt 0.176169 0.944787 +vt 0.160403 0.948683 +vt 0.176205 0.942410 +vt 0.186233 0.938703 +vt 0.186163 0.943395 +vt 0.672564 0.728855 +vt 0.653022 0.718281 +vt 0.173692 0.842175 +vt 0.142925 0.841159 +vt 0.095759 0.818259 +vt 0.080315 0.791229 +vt 0.340119 0.626273 +vt 0.241747 0.862419 +vt 0.777117 0.864362 +vt 0.768366 0.896571 +vt 0.241747 0.837350 +vt 0.243056 0.841159 +vt 0.328195 0.750550 +vt 0.461603 0.550382 +vt 0.191149 0.720633 +vt 0.315102 0.748513 +vt 0.752577 0.727783 +vt 0.769071 0.678888 +vt 0.768925 0.727831 +vt 0.008110 0.885244 +vt 0.062431 0.862744 +vt 0.084932 0.917065 +vt 0.168124 0.784477 +vt 0.167902 0.752483 +vt 0.321232 0.652866 +vt 0.309396 0.669478 +vt 0.168118 0.521260 +vt 0.167500 0.621048 +vt 0.167962 0.750574 +vt 0.167740 0.718579 +vt 0.167957 0.555163 +vt 0.168094 0.717172 +vt 0.647287 0.750954 +vt 0.647048 0.757238 +vt 0.647287 0.727296 +vt 0.653450 0.729580 +vt 0.645265 0.697427 +vt 0.651576 0.699247 +vt 0.640993 0.667804 +vt 0.647411 0.669143 +vt 0.640993 0.810447 +vt 0.645281 0.820212 +vt 0.639808 0.816623 +vt 0.650294 0.790237 +vt 0.645265 0.780824 +vt 0.752690 0.827705 +vt 0.769039 0.876649 +vt 0.752691 0.876650 +vt 0.752723 0.678839 +vt 0.188734 0.685530 +vt 0.309395 0.636254 +vt 0.301347 0.643518 +vt 0.302522 0.601098 +vt 0.196857 0.599641 +vt 0.189057 0.606877 +vt 0.004465 0.913646 +vt 0.018781 0.871200 +vt 0.018657 0.913687 +vt 0.672835 0.910963 +vt 0.713482 0.871066 +vt 0.714119 0.910665 +vt 0.714237 0.927013 +vt 0.240401 0.825822 +vt 0.199776 0.842354 +vt 0.173390 0.842473 +vt 0.088253 0.876301 +vt 0.080806 0.908398 +vt 0.081120 0.876231 +vt 0.095701 0.876374 +vt 0.029467 0.840968 +vt 0.105370 0.876468 +vt 0.296421 0.724400 +vt 0.327298 0.727151 +vt 0.299814 0.727276 +vt 0.095318 0.908540 +vt 0.105209 0.908637 +vt 0.331091 0.689289 +vt 0.327366 0.697682 +vt 0.327040 0.691878 +vt 0.113483 0.876547 +vt 0.124104 0.908821 +vt 0.113102 0.908714 +vt 0.331210 0.835232 +vt 0.327723 0.844838 +vt 0.327418 0.838005 +vt 0.133710 0.876745 +vt 0.172008 0.909288 +vt 0.133550 0.908914 +vt 0.300021 0.691838 +vt 0.296421 0.700699 +vt 0.331046 0.700311 +vt 0.296421 0.688896 +vt 0.300401 0.697758 +vt 0.299777 0.838086 +vt 0.296390 0.847752 +vt 0.331177 0.847666 +vt 0.296390 0.835015 +vt 0.300129 0.844706 +vt 0.327662 0.732627 +vt 0.296421 0.735815 +vt 0.300232 0.732889 +vt 0.331126 0.724626 +vt 0.331088 0.735149 +vt 0.669034 0.876576 +vt 0.672848 0.871276 +vt 0.171585 0.943745 +vt 0.171421 0.957935 +vt 0.028679 0.942652 +vt 0.177485 0.881600 +vt 0.177108 0.906811 +vt 0.666901 0.839315 +vt 0.672715 0.834220 +vt 0.672586 0.794298 +vt 0.713295 0.834010 +vt 0.175181 0.952567 +vt 0.331337 0.834362 +vt 0.357883 0.830819 +vt 0.357897 0.834398 +vt 0.386328 0.830866 +vt 0.398045 0.830860 +vt 0.386349 0.834361 +vt 0.302720 0.834007 +vt 0.331324 0.830879 +vt 0.177713 0.872915 +vt 0.172488 0.877123 +vt 0.296402 0.834340 +vt 0.302711 0.830933 +vt 0.175271 0.913925 +vt 0.174940 0.940932 +vt 0.668607 0.921090 +vt 0.668584 0.908276 +vt 0.404924 0.830418 +vt 0.398066 0.834337 +vt 0.666796 0.829248 +vt 0.666694 0.797957 +vt 0.240142 0.825662 +vt 0.029359 0.824084 +vt 0.459981 0.644320 +vt 0.938208 0.866046 +vt 0.778259 0.876294 +vt 0.778259 0.866046 +vt 0.938208 0.876294 +vt 0.778259 0.886541 +vt 0.938208 0.804562 +vt 0.778259 0.814809 +vt 0.778259 0.804562 +vt 0.938208 0.814809 +vt 0.778259 0.825057 +vt 0.938208 0.825057 +vt 0.778259 0.835304 +vt 0.938208 0.835304 +vt 0.778259 0.845551 +vt 0.947456 0.835304 +vt 0.938208 0.845551 +vt 0.778259 0.855799 +vt 0.938208 0.855799 +vt 0.769454 0.844635 +vt 0.769454 0.836221 +vt 0.890976 0.635115 +vt 0.876612 0.641065 +vt 0.870662 0.626701 +vt 0.769454 0.824140 +vt 0.769454 0.815726 +vt 0.769454 0.854882 +vt 0.769454 0.846468 +vt 0.769454 0.877211 +vt 0.769454 0.825973 +vt 0.769454 0.865130 +vt 0.769454 0.856716 +vt 0.769454 0.866963 +vt 0.769454 0.805478 +vt 0.947456 0.866046 +vt 0.949930 0.856652 +vt 0.949930 0.865193 +vt 0.947456 0.876294 +vt 0.947456 0.814809 +vt 0.947456 0.845551 +vt 0.947456 0.825057 +vt 0.947456 0.855799 +vt 0.947456 0.886541 +vt 0.938208 0.886541 +vt 0.949930 0.844698 +vt 0.949930 0.815663 +vt 0.949930 0.824203 +vt 0.949930 0.877147 +vt 0.949930 0.885688 +vt 0.949930 0.846405 +vt 0.949930 0.854946 +vt 0.949930 0.834450 +vt 0.949930 0.805415 +vt 0.949930 0.813956 +vt 0.949930 0.875440 +vt 0.953397 0.813214 +vt 0.875653 0.675513 +vt 0.870662 0.670523 +vt 0.887700 0.663466 +vt 0.949930 0.866900 +vt 0.953397 0.874699 +vt 0.953397 0.864451 +vt 0.953397 0.836899 +vt 0.953397 0.843956 +vt 0.953397 0.816404 +vt 0.953397 0.823462 +vt 0.953397 0.877889 +vt 0.953397 0.884946 +vt 0.953397 0.854204 +vt 0.953397 0.826652 +vt 0.953397 0.833709 +vt 0.594130 0.814809 +vt 0.754079 0.825057 +vt 0.594130 0.825057 +vt 0.754079 0.804562 +vt 0.754079 0.814809 +vt 0.594130 0.876294 +vt 0.754079 0.886541 +vt 0.594130 0.886541 +vt 0.594130 0.866046 +vt 0.754079 0.876294 +vt 0.594130 0.855799 +vt 0.754079 0.866046 +vt 0.594130 0.845552 +vt 0.754079 0.855799 +vt 0.763327 0.855799 +vt 0.594130 0.835304 +vt 0.754079 0.845552 +vt 0.754079 0.835304 +vt 0.585325 0.846468 +vt 0.870662 0.606202 +vt 0.885026 0.600252 +vt 0.890976 0.614616 +vt 0.585325 0.866963 +vt 0.585325 0.836221 +vt 0.585325 0.813892 +vt 0.594130 0.804562 +vt 0.585325 0.865130 +vt 0.585325 0.825973 +vt 0.585325 0.824140 +vt 0.585325 0.885625 +vt 0.765801 0.825910 +vt 0.763327 0.835304 +vt 0.763327 0.825057 +vt 0.763327 0.814809 +vt 0.763327 0.876294 +vt 0.763327 0.845551 +vt 0.763327 0.866046 +vt 0.763327 0.804562 +vt 0.765801 0.846405 +vt 0.765801 0.875440 +vt 0.765801 0.813956 +vt 0.765801 0.836158 +vt 0.765801 0.856652 +vt 0.765801 0.885688 +vt 0.763327 0.886541 +vt 0.765801 0.815663 +vt 0.769268 0.877889 +vt 0.765801 0.877147 +vt 0.887700 0.653299 +vt 0.882710 0.658289 +vt 0.875653 0.641251 +vt 0.769268 0.816404 +vt 0.765801 0.824203 +vt 0.769268 0.833709 +vt 0.765801 0.834451 +vt 0.769268 0.854204 +vt 0.765801 0.854946 +vt 0.765801 0.866900 +vt 0.769267 0.874699 +vt 0.765801 0.805415 +vt 0.769268 0.813214 +vt 0.769267 0.836899 +vt 0.765801 0.844698 +vt 0.769268 0.864451 +vt 0.765801 0.865193 +vt 0.683708 0.729337 +vt 0.660202 0.741608 +vt 0.680517 0.745595 +vt 0.711332 0.751643 +vt 0.728929 0.755097 +vt 0.714523 0.735385 +vt 0.666440 0.724518 +vt 0.669643 0.729946 +vt 0.652965 0.726115 +vt 0.695887 0.785671 +vt 0.701756 0.768726 +vt 0.803080 0.643478 +vt 0.790810 0.619972 +vt 0.786822 0.640287 +vt 0.780775 0.671102 +vt 0.777321 0.688699 +vt 0.797033 0.674292 +vt 0.802472 0.629412 +vt 0.806303 0.612735 +vt 0.807899 0.626210 +vt 0.746746 0.655656 +vt 0.763692 0.661526 +vt 0.604415 0.743826 +vt 0.580909 0.756097 +vt 0.601224 0.760084 +vt 0.632039 0.766132 +vt 0.649636 0.769586 +vt 0.635230 0.749874 +vt 0.587148 0.739007 +vt 0.590350 0.744435 +vt 0.573672 0.740604 +vt 0.616594 0.800160 +vt 0.622463 0.783215 +vt 0.706533 0.664337 +vt 0.690884 0.675212 +vt 0.702546 0.684653 +vt 0.712581 0.633523 +vt 0.690275 0.661147 +vt 0.716034 0.615926 +vt 0.696322 0.630332 +vt 0.685456 0.678415 +vt 0.687052 0.691890 +vt 0.746609 0.648968 +vt 0.729663 0.643099 +vt 0.759810 0.745595 +vt 0.748935 0.729946 +vt 0.739495 0.741608 +vt 0.790624 0.751643 +vt 0.763001 0.729337 +vt 0.808222 0.755097 +vt 0.793815 0.735385 +vt 0.732258 0.726115 +vt 0.745733 0.724518 +vt 0.775179 0.785671 +vt 0.781049 0.768726 +vt 0.785825 0.837412 +vt 0.770176 0.848286 +vt 0.781838 0.857727 +vt 0.791873 0.806597 +vt 0.769567 0.834221 +vt 0.779069 0.785809 +vt 0.775615 0.803406 +vt 0.764748 0.851489 +vt 0.766345 0.864964 +vt 0.825901 0.822042 +vt 0.808956 0.816173 +vt 0.683708 0.823119 +vt 0.660202 0.835390 +vt 0.680517 0.839377 +vt 0.714523 0.829166 +vt 0.711332 0.845425 +vt 0.732120 0.832620 +vt 0.669642 0.823728 +vt 0.652965 0.819896 +vt 0.666440 0.818300 +vt 0.695887 0.879453 +vt 0.701756 0.862507 +vt 0.604415 0.650045 +vt 0.580909 0.662315 +vt 0.601224 0.666303 +vt 0.635230 0.656092 +vt 0.632039 0.672350 +vt 0.652827 0.659546 +vt 0.587147 0.645226 +vt 0.590350 0.650653 +vt 0.573672 0.646822 +vt 0.616594 0.706379 +vt 0.622463 0.689433 +vt 0.500000 0.187500 +vt 0.801034 0.693998 +vt 0.822057 0.672975 +vt 0.851789 0.672975 +vt 0.872812 0.723730 +vt 0.851789 0.744753 +vt 0.894049 0.672975 +vt 0.923781 0.672975 +vt 0.944804 0.693998 +vt 0.923781 0.744753 +vt 0.873025 0.723730 +vt 0.500000 0.187500 +vt 0.729042 0.765990 +vt 0.750065 0.744967 +vt 0.779797 0.744967 +vt 0.800820 0.795722 +vt 0.779797 0.816745 +vt 0.822057 0.816958 +vt 0.851789 0.816958 +vt 0.872812 0.837982 +vt 0.851789 0.888737 +vt 0.801034 0.867713 +vt 0.500000 0.187500 +vt 0.657050 0.693998 +vt 0.678074 0.672975 +vt 0.707805 0.672975 +vt 0.728829 0.723730 +vt 0.707805 0.744753 +vt 0.678074 0.888950 +vt 0.707805 0.888950 +vt 0.728829 0.909974 +vt 0.707805 0.960729 +vt 0.657050 0.939705 +vt 0.500000 0.187500 +vt 0.729042 0.693998 +vt 0.750065 0.672975 +vt 0.779797 0.672975 +vt 0.800820 0.723730 +vt 0.779797 0.744753 +vt 0.678074 0.816958 +vt 0.707805 0.816958 +vt 0.728829 0.837982 +vt 0.707805 0.888737 +vt 0.657050 0.867713 +vt 0.500000 0.187500 +vt 0.657050 0.765990 +vt 0.678074 0.744967 +vt 0.707805 0.744967 +vt 0.728829 0.795722 +vt 0.707805 0.816745 +vt 0.822057 0.744967 +vt 0.851789 0.744967 +vt 0.872812 0.765990 +vt 0.851789 0.816745 +vt 0.801034 0.795722 +vt 0.806841 0.765292 +vt 0.710865 0.878741 +vt 0.721442 0.884848 +vt 0.717917 0.890954 +vt 0.806842 0.807599 +vt 0.806842 0.807743 +vt 0.596430 0.901555 +vt 0.608643 0.901555 +vt 0.608643 0.908607 +vt 0.806842 0.850049 +vt 0.812236 0.690671 +vt 0.707339 0.894624 +vt 0.719553 0.894624 +vt 0.719553 0.901676 +vt 0.812236 0.732978 +vt 0.797412 0.757947 +vt 0.797412 0.750895 +vt 0.803518 0.747369 +vt 0.707195 0.836290 +vt 0.797412 0.743699 +vt 0.797412 0.736648 +vt 0.803518 0.733122 +vt 0.692227 0.836290 +vt 0.778722 0.854590 +vt 0.778722 0.847539 +vt 0.784828 0.844013 +vt 0.722164 0.836290 +vt 0.596430 0.849086 +vt 0.613617 0.881319 +vt 0.805115 0.764122 +vt 0.870166 0.638468 +vt 0.609375 0.464844 +vt 0.782135 0.927723 +vt 0.799159 0.908557 +vt 0.782041 0.907319 +vt 0.669086 0.929943 +vt 0.785608 0.701921 +vt 0.808427 0.791102 +vt 0.870476 0.701735 +vt 0.667969 0.500000 +vt 0.821314 0.886728 +vt 0.732575 0.919401 +vt 0.783343 0.887966 +vt 0.873347 0.887966 +vt 0.890464 0.886728 +vt 0.767005 0.886728 +vt 0.785608 0.701735 +vt 0.803093 0.618341 +vt 0.808253 0.680551 +vt 0.791846 0.843869 +vt 0.691023 0.878741 +vt 0.696665 0.884383 +vt 0.696665 0.892362 +vt 0.683044 0.898004 +vt 0.677402 0.892362 +vt 0.778732 0.813478 +vt 0.778722 0.842943 +vt 0.778738 0.793834 +vt 0.778725 0.833121 +vt 0.275353 0.772973 +vt 0.271410 0.782495 +vt 0.265832 0.782495 +vt 0.261888 0.778551 +vt 0.226789 0.769029 +vt 0.261888 0.740142 +vt 0.265832 0.730620 +vt 0.271410 0.730620 +vt 0.598130 0.846904 +vt 0.507381 0.896473 +vt 0.652570 0.902783 +vt 0.715450 0.624156 +vt 0.760292 0.671614 +vt 0.713777 0.658057 +vt 0.740565 0.631120 +vt 0.808269 0.902783 +vt 0.652377 0.798594 +vt 0.764977 0.703371 +vt 0.594100 0.810061 +vt 0.232537 0.575325 +vt 0.094145 0.630642 +vt 0.329373 0.575325 +vt 0.423560 0.888745 +vt 0.405972 0.904028 +vt 0.356644 0.820388 +vt 0.363752 0.870173 +vt 0.375342 0.874430 +vt 0.334359 0.823674 +vt 0.397771 0.903092 +vt 0.670645 0.763117 +vt 0.740808 0.752231 +vt 0.716159 0.782535 +vt 0.693797 0.764744 +vt 0.662981 0.719872 +vt 0.725698 0.732079 +vt 0.797267 0.723741 +vt 0.681156 0.808819 +vt 0.721400 0.813663 +vt 0.699879 0.813663 +vt 0.634295 0.818571 +vt 0.652589 0.836146 +vt 0.800184 0.857266 +vt 0.796100 0.859624 +vt 0.792017 0.857266 +vt 0.695631 0.836146 +vt 0.609548 0.836146 +vt 0.674110 0.836146 +vt 0.717151 0.836146 +vt 0.631069 0.836146 +vt 0.652589 0.690671 +vt 0.704976 0.881099 +vt 0.704976 0.885814 +vt 0.700892 0.888171 +vt 0.695631 0.690671 +vt 0.609547 0.690672 +vt 0.674110 0.690672 +vt 0.717151 0.690671 +vt 0.631069 0.690672 +vt 0.509584 0.689778 +vt 0.557791 0.693952 +vt 0.507381 0.730443 +vt 0.569317 0.730645 +vt 0.511142 0.801081 +vt 0.562583 0.801877 +vt 0.525516 0.843657 +vt 0.508001 0.835164 +vt 0.563960 0.836904 +vt 0.545819 0.844334 +vt 0.725698 0.846202 +vt 0.756544 0.853835 +vt 0.738918 0.772924 +vt 0.595507 0.451954 +vt 0.152870 0.738355 +vt 0.198414 0.725726 +vt 0.234101 0.725726 +vt 0.234101 0.746330 +vt 0.152869 0.763611 +vt 0.152869 0.839383 +vt 0.187087 0.793585 +vt 0.708834 0.763115 +vt 0.194169 0.848187 +vt 0.194168 0.822930 +vt 0.722416 0.747359 +vt 0.731752 0.752749 +vt 0.731752 0.763529 +vt 0.713051 0.814389 +vt 0.713051 0.713361 +vt 0.713051 0.789132 +vt 0.708834 0.838886 +vt 0.713051 0.738618 +vt 0.293733 0.319111 +vt 0.311139 0.327987 +vt 0.353135 0.459421 +vt 0.231084 0.410102 +vt 0.101197 0.289824 +vt 0.215554 0.456392 +vt 0.114861 0.414917 +vt 0.172800 0.334169 +vt 0.669208 0.752748 +vt 0.710714 0.665515 +vt 0.276871 0.341239 +vt 0.306964 0.356975 +vt 0.636756 0.753622 +vt 0.638459 0.661605 +vt 0.771586 0.663320 +vt 0.724173 0.799559 +vt 0.432714 0.804124 +vt 0.431825 0.751766 +vt 0.234184 0.881274 +vt 0.252713 0.862744 +vt 0.278918 0.862744 +vt 0.297448 0.907478 +vt 0.278918 0.926008 +vt 0.395286 0.952106 +vt 0.397311 0.927660 +vt 0.686631 0.726489 +vt 0.683623 0.877696 +vt 0.665355 0.775475 +vt 0.374699 0.926265 +vt 0.665938 0.726460 +vt 0.661972 0.876500 +vt 0.663035 0.851856 +vt 0.663739 0.826191 +vt 0.376577 0.875013 +vt 0.377583 0.776933 +vt 0.358930 0.953121 +vt 0.340336 0.893430 +vt 0.351760 0.871860 +vt 0.353719 0.822524 +vt 0.353866 0.774995 +vt 0.349205 0.922863 +vt 0.336777 0.867502 +vt 0.342988 0.843472 +vt 0.344719 0.795495 +vt 0.336293 0.946137 +vt 0.339225 0.818615 +vt 0.338909 0.771406 +vt 0.333854 0.918244 +vt 0.328196 0.917091 +vt 0.950051 0.775398 +vt 0.961580 0.775398 +vt 0.969733 0.783551 +vt 0.961580 0.803233 +vt 0.950051 0.803233 +vt 0.329498 0.891185 +vt 0.332491 0.841468 +vt 0.334577 0.793824 +vt 0.324590 0.943720 +vt 0.331260 0.866431 +vt 0.333898 0.817689 +vt 0.333427 0.770610 +vt 0.428333 0.876211 +vt 0.427678 0.825096 +vt 0.426153 0.775763 +vt 0.427557 0.929224 +vt 0.674938 0.810489 +vt 0.674280 0.724130 +vt 0.677627 0.681085 +vt 0.677627 0.853626 +vt 0.681026 0.810813 +vt 0.661211 0.799677 +vt 0.680254 0.854172 +vt 0.653581 0.680736 +vt 0.841337 0.870850 +vt 0.661247 0.800573 +vt 0.680254 0.680736 +vt 0.661211 0.847722 +vt 0.661211 0.703589 +vt 0.651742 0.753558 +vt 0.681803 0.767454 +vt 0.661248 0.705534 +vt 0.661211 0.775655 +vt 0.651742 0.849647 +vt 0.670029 0.846430 +vt 0.661248 0.681775 +vt 0.670029 0.751391 +vt 0.661247 0.776813 +vt 0.651742 0.825625 +vt 0.651742 0.729536 +vt 0.593987 0.480180 +vt 0.552826 0.484886 +vt 0.557512 0.480200 +vt 0.564138 0.480200 +vt 0.568824 0.484886 +vt 0.568824 0.491512 +vt 0.548121 0.496197 +vt 0.541495 0.496197 +vt 0.536809 0.491512 +vt 0.536809 0.484886 +vt 0.541495 0.480200 +vt 0.684147 0.624156 +vt 0.635940 0.684460 +vt 0.697909 0.648617 +vt 0.684146 0.744957 +vt 0.635940 0.744957 +vt 0.635117 0.720265 +vt 0.635940 0.684653 +vt 0.697909 0.720496 +vt 0.684146 0.684653 +vt 0.569512 0.720496 +vt 0.742632 0.850835 +vt 0.716580 0.815022 +vt 0.652570 0.848686 +vt 0.668880 0.830898 +vt 0.782413 0.837305 +vt 0.646322 0.623963 +vt 0.518241 0.623753 +vt 0.518193 0.612882 +vt 0.806829 0.582470 +vt 0.825511 0.582762 +vt 0.825394 0.590214 +vt 0.984776 0.886695 +vt 0.527350 0.595580 +vt 0.656765 0.791330 +vt 0.655965 0.750883 +vt 0.693984 0.745150 +vt 0.518329 0.587736 +vt 0.648803 0.588527 +vt 0.825394 0.610216 +vt 0.803979 0.610554 +vt 0.812776 0.871221 +vt 0.879446 0.886695 +vt 0.756437 0.581414 +vt 0.777441 0.581837 +vt 0.695134 0.577691 +vt 0.723634 0.578627 +vt 0.777831 0.618563 +vt 0.756971 0.619001 +vt 0.724433 0.621751 +vt 0.696002 0.622669 +vt 0.141617 0.862419 +vt 0.762071 0.702308 +vt 0.790012 0.694547 +vt 0.783028 0.817762 +vt 0.746608 0.856516 +vt 0.133940 0.637238 +vt 0.123224 0.790247 +vt 0.042788 0.842175 +vt 0.040178 0.841159 +vt 0.787459 0.777364 +vt 0.774478 0.615905 +vt 0.761788 0.779680 +vt 0.750668 0.625780 +vt 0.754979 0.665383 +vt 0.754079 0.818764 +vt 0.087539 0.600697 +vt 0.698343 0.732673 +vt 0.089849 0.741519 +vt 0.094040 0.671020 +vt 0.092123 0.635735 +vt 0.718010 0.766806 +vt 0.712268 0.661154 +vt 0.714578 0.801976 +vt 0.692744 0.764244 +vt 0.837897 0.846209 +vt 0.866381 0.850656 +vt 0.870828 0.846209 +vt 0.877117 0.846209 +vt 0.881564 0.856945 +vt 0.870828 0.861392 +vt 0.326715 0.977214 +vt 0.313006 0.619968 +vt 0.167512 0.619681 +vt 0.632839 0.632527 +vt 0.184793 0.975638 +vt 0.160403 0.975751 +vt 0.653450 0.748670 +vt 0.451822 0.978419 +vt 0.290761 0.940252 +vt 0.317014 0.956210 +vt 0.312864 0.982029 +vt 0.075059 0.546759 +vt 0.640978 0.838811 +vt 0.105694 0.562724 +vt 0.087539 0.756638 +vt 0.094869 0.873199 +vt 0.122340 0.862744 +vt 0.085257 0.891980 +vt 0.148495 0.872490 +vt 0.148495 0.929187 +vt 0.094869 0.928478 +vt 0.008110 0.862419 +vt 0.113353 0.827443 +vt 0.135624 0.675685 +vt 0.685412 0.632333 +vt 0.791845 0.735376 +vt 0.201143 0.862744 +vt 0.227962 0.875106 +vt 0.233859 0.915690 +vt 0.227962 0.926016 +vt 0.201143 0.938378 +vt 0.160403 0.901027 +vt 0.666495 0.757277 +vt 0.314900 0.585956 +vt 0.668710 0.646965 +vt 0.175019 0.710358 +vt 0.178219 0.805544 +vt 0.175390 0.709847 +vt 0.713074 0.761258 +vt 0.667013 0.686876 +vt 0.177087 0.744486 +vt 0.028698 0.694017 +vt 0.088077 0.742566 +vt 0.105193 0.742449 +vt 0.669147 0.647559 +vt 0.029253 0.809894 +vt 0.758724 0.897483 +vt 0.837897 0.896520 +vt 0.165729 0.952414 +vt 0.075059 0.810576 +vt 0.275124 0.862419 +vt 0.275124 0.837350 +vt 0.314904 0.719775 +vt 0.062431 0.939566 +vt 0.030611 0.939566 +vt 0.008110 0.917065 +vt 0.030610 0.862744 +vt 0.084932 0.885244 +vt 0.167898 0.553254 +vt 0.167441 0.652321 +vt 0.167737 0.587159 +vt 0.167514 0.686056 +vt 0.647048 0.721012 +vt 0.644552 0.691178 +vt 0.639808 0.661627 +vt 0.644552 0.787072 +vt 0.769038 0.827705 +vt 0.188732 0.620207 +vt 0.004590 0.871159 +vt 0.672864 0.927311 +vt 0.029615 0.826778 +vt 0.240475 0.842169 +vt 0.088093 0.908469 +vt 0.124486 0.876655 +vt 0.669023 0.907683 +vt 0.028571 0.956843 +vt 0.667005 0.868360 +vt 0.713285 0.794113 +vt 0.175310 0.941445 +vt 0.178419 0.845756 +vt 0.296390 0.830418 +vt 0.404951 0.834854 +vt 0.199566 0.809010 +vt 0.240264 0.809314 +vt 0.885026 0.641065 +vt 0.870662 0.635115 +vt 0.876612 0.620751 +vt 0.885026 0.620751 +vt 0.890976 0.626701 +vt 0.769454 0.885625 +vt 0.769454 0.834387 +vt 0.769454 0.875377 +vt 0.769454 0.813893 +vt 0.947456 0.804562 +vt 0.949930 0.836157 +vt 0.949930 0.825910 +vt 0.953397 0.806157 +vt 0.870662 0.663466 +vt 0.875653 0.658475 +vt 0.882710 0.658475 +vt 0.887700 0.670523 +vt 0.882710 0.675513 +vt 0.953397 0.867641 +vt 0.953397 0.857394 +vt 0.953397 0.847147 +vt 0.585325 0.854882 +vt 0.876612 0.600252 +vt 0.890976 0.606202 +vt 0.885026 0.620565 +vt 0.876612 0.620565 +vt 0.870662 0.614616 +vt 0.585325 0.875377 +vt 0.585325 0.844635 +vt 0.585325 0.805478 +vt 0.585325 0.856716 +vt 0.585325 0.834387 +vt 0.585325 0.815726 +vt 0.585325 0.877211 +vt 0.769268 0.884946 +vt 0.875653 0.658289 +vt 0.870662 0.653299 +vt 0.870662 0.646241 +vt 0.882710 0.641251 +vt 0.887700 0.646241 +vt 0.769268 0.823462 +vt 0.769268 0.826652 +vt 0.769268 0.847147 +vt 0.769268 0.867642 +vt 0.769268 0.806157 +vt 0.769268 0.843956 +vt 0.769268 0.857394 +vt 0.732120 0.738839 +vt 0.694552 0.704387 +vt 0.682426 0.692028 +vt 0.652965 0.754472 +vt 0.793579 0.691890 +vt 0.828030 0.654322 +vt 0.840390 0.642196 +vt 0.777945 0.612735 +vt 0.652827 0.753327 +vt 0.615259 0.718876 +vt 0.603134 0.706516 +vt 0.573672 0.768961 +vt 0.699776 0.612735 +vt 0.665325 0.650303 +vt 0.652965 0.662428 +vt 0.715410 0.691890 +vt 0.811413 0.738839 +vt 0.773845 0.704387 +vt 0.761719 0.692028 +vt 0.732258 0.754472 +vt 0.795327 0.789000 +vt 0.744617 0.823377 +vt 0.732258 0.835503 +vt 0.794703 0.864964 +vt 0.728929 0.848878 +vt 0.694552 0.798169 +vt 0.682426 0.785809 +vt 0.652965 0.848254 +vt 0.649636 0.675804 +vt 0.615259 0.625094 +vt 0.603133 0.612735 +vt 0.573672 0.675180 vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.9838 -0.1658 0.0687 -vn -0.8418 0.2066 0.4987 -vn -0.9846 -0.0670 0.1617 -vn -0.9846 -0.0670 -0.1617 -vn 0.9838 0.1658 -0.0687 -vn 0.9838 -0.1658 -0.0687 -vn 0.4296 0.3456 0.8343 -vn 0.4296 -0.3456 -0.8343 -vn 0.4296 0.3456 -0.8343 -vn 0.4296 0.8343 0.3456 -vn 0.4296 -0.3456 0.8343 +vn 0.0000 -0.9239 -0.3827 vn 0.0000 -0.9239 0.3827 vn 0.0000 -0.3827 0.9239 -vn -0.0913 0.8947 0.4372 -vn 0.8293 -0.2138 0.5162 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 vn 0.0000 0.3827 -0.9239 -vn 0.8293 0.5162 -0.2138 -vn 0.0464 -0.8899 0.4538 -vn 0.8293 0.2138 -0.5162 -vn 0.8293 -0.2138 -0.5162 -vn 0.8293 0.5162 0.2138 -vn -0.8418 -0.2066 0.4987 -vn -0.0166 -0.3826 -0.9238 -vn -0.0165 0.3826 -0.9238 -vn -0.0165 0.3826 0.9238 -vn -0.0165 -0.9238 -0.3826 -vn 0.1008 -0.2962 -0.9498 -vn -0.8680 0.4588 0.1900 -vn -0.8680 -0.1900 -0.4588 -vn 0.8623 0.1938 -0.4678 -vn -0.8680 -0.4588 -0.1900 -vn 0.8623 0.1938 0.4678 -vn 0.9838 0.0687 0.1658 -vn -0.9846 -0.1617 -0.0670 -vn 0.9838 -0.0687 -0.1658 -vn 0.9838 -0.0687 0.1658 -vn 0.9838 0.0687 -0.1658 -vn -0.9846 0.0670 0.1617 -vn 0.0915 0.3811 0.9200 -vn 0.0915 0.3811 -0.9200 -vn 0.0915 -0.3811 -0.9200 -vn -0.8680 0.1900 -0.4588 -vn -0.8680 0.1900 0.4588 -vn 0.8623 0.4678 -0.1938 -vn 0.8623 -0.1938 0.4678 -vn 0.8623 -0.1938 -0.4678 -vn 0.2182 0.3735 0.9016 -vn 1.0000 -0.0000 0.0000 -vn -0.0497 0.9227 -0.3822 -vn 0.2182 -0.3735 -0.9016 -vn 0.2182 -0.9016 0.3735 -vn 0.2182 -0.9016 -0.3735 -vn 0.2182 -0.3735 0.9016 -vn -0.0497 0.9227 0.3822 -vn -0.0497 0.3822 -0.9227 -vn -0.0497 -0.3822 -0.9227 -vn -0.0497 -0.3822 0.9227 -vn -0.0497 0.3822 0.9227 -vn 0.3223 -0.8746 -0.3623 -vn 0.3223 0.3623 0.8746 -vn 0.3223 0.3623 -0.8746 -vn 0.3223 0.8746 -0.3623 -vn 0.3223 -0.3623 -0.8746 -vn 0.0000 0.9649 -0.2626 -vn -0.1533 0.3782 0.9130 -vn 0.8293 0.2138 0.5162 -vn -0.1218 0.9170 -0.3798 -vn -0.0000 0.9239 -0.3827 -vn 0.7023 0.6629 -0.2594 -vn 0.0000 0.0000 1.0000 -vn 0.0068 -1.0000 0.0000 -vn 0.6287 0.0000 0.7776 -vn -1.0000 0.0000 0.0000 -vn -0.0165 0.9238 -0.3826 -vn -0.8680 0.4588 -0.1900 -vn 0.0000 -0.9239 -0.3827 -vn -0.6414 0.7600 0.1048 -vn -0.6231 -0.1179 -0.7732 -vn -0.6231 -0.1179 0.7732 -vn -0.6414 0.7600 -0.1048 -vn -0.0103 0.9832 -0.1821 -vn -0.0103 0.9832 0.1821 -vn -0.0453 -0.3552 -0.9337 -vn 0.0951 -0.3032 -0.9482 -vn 0.1008 -0.2962 0.9498 -vn 0.0915 -0.9200 -0.3811 -vn 0.2182 0.9016 0.3735 -vn 0.3223 -0.3623 0.8746 -vn 0.0951 -0.3032 0.9482 -vn 0.0000 -1.0000 0.0000 -vn 0.9838 0.1658 0.0687 -vn 0.4296 -0.8343 -0.3456 -vn -0.0166 -0.3826 0.9238 -vn -0.0165 -0.9238 0.3826 -vn 0.8623 -0.4678 -0.1938 -vn 0.2182 0.3735 -0.9016 -vn 0.7023 0.6629 0.2594 -vn -0.9999 -0.0105 0.0000 -vn 0.0915 0.9200 -0.3811 -vn -0.0453 -0.3552 0.9337 -vn -0.8418 -0.4987 0.2066 -vn -0.0497 -0.9227 0.3822 -vn -0.8418 0.4987 0.2066 -vn 0.3746 -0.9272 0.0000 -vn 0.1495 -0.8307 -0.5362 -vn 0.0000 -0.4721 0.8815 -vn 0.0120 -0.3847 0.9230 -vn 0.1495 -0.8307 0.5362 -vn 0.1144 -0.4166 0.9019 -vn 0.1144 -0.4166 -0.9019 -vn -0.9846 0.1617 0.0670 -vn 0.4296 -0.8343 0.3456 -vn 0.0915 0.9200 0.3811 -vn 0.4296 0.8343 -0.3456 -vn 0.8623 -0.4678 0.1938 -vn -0.0497 -0.9227 -0.3822 -vn 0.3223 0.8746 0.3623 -vn 0.8293 -0.5162 -0.2138 -vn -0.9846 -0.1617 0.0670 -vn 0.9999 -0.0151 0.0000 -vn -0.0476 -0.3025 -0.9520 -vn 0.0120 -0.3847 -0.9230 -vn 0.0000 -0.9012 -0.4335 -vn 0.0000 -0.8684 0.4959 -vn -0.0053 -0.3038 0.9527 -vn -0.0053 -0.3038 -0.9527 -vn -0.0755 0.9042 0.4204 -vn -0.0854 0.3020 0.9495 -vn -0.0854 0.3020 -0.9495 -vn 0.0723 0.9168 0.3926 -vn 0.0702 0.9117 -0.4047 -vn 0.1218 0.3643 -0.9233 -vn -0.0095 0.3428 -0.9394 -vn -0.0127 0.9088 -0.4171 -vn -0.0124 0.9153 0.4026 -vn -0.0095 0.3428 0.9394 -vn -0.9952 -0.0952 0.0245 -vn 0.0000 0.5505 -0.8349 -vn -0.9938 0.1009 -0.0476 -vn 0.9884 0.1326 -0.0741 -vn 0.0000 -0.7129 -0.7012 -vn 0.9976 -0.0694 0.0010 -vn 0.0026 -0.9715 0.2370 -vn -0.0023 0.8582 -0.5133 -vn 0.0013 -0.3780 -0.9258 -vn 0.9905 0.1284 -0.0490 -vn 0.0024 -0.9722 0.2343 -vn 0.0014 -0.3780 -0.9258 -vn -0.9957 -0.0410 -0.0837 -vn 0.9959 -0.0250 -0.0874 -vn -0.0018 0.8543 -0.5198 -vn -0.9919 0.1050 -0.0715 -vn 0.9172 -0.1505 -0.3689 -vn 0.0050 -0.9531 -0.3028 -vn -0.0034 0.5235 -0.8520 -vn 0.0017 -0.3780 -0.9258 -vn -0.0031 0.4723 -0.8814 -vn -0.8491 -0.1997 -0.4891 -vn 0.8493 -0.1946 -0.4907 -vn 0.0018 -0.3780 -0.9258 -vn -0.0029 0.4287 -0.9035 -vn -0.8914 -0.1765 -0.4174 -vn 0.8917 -0.1710 -0.4191 -vn 0.0050 -0.9355 -0.3532 -vn 0.0048 -0.9190 -0.3942 -vn -0.9170 -0.1562 -0.3671 -vn -0.5510 -0.3187 -0.7712 -vn 0.0019 -0.9695 0.2450 -vn 0.0000 -0.9012 0.4335 -vn -0.0022 0.8595 -0.5111 -vn -0.8418 0.2066 -0.4987 -vn -0.8418 -0.2066 -0.4987 -vn -0.8680 -0.1900 0.4588 -vn -0.8680 -0.4588 0.1900 -vn -0.9846 0.0670 -0.1617 -vn 0.0915 -0.3811 0.9200 -vn 0.8623 0.4678 0.1938 -vn 0.3223 -0.8746 0.3623 -vn -0.0000 0.0000 -1.0000 -vn 0.6287 0.0000 -0.7776 -vn -0.0165 0.9238 0.3826 -vn 0.0915 -0.9200 0.3811 -vn 0.2182 0.9016 -0.3735 -vn 0.1948 -0.9808 0.0000 -vn -0.8418 -0.4987 -0.2066 -vn -0.8418 0.4987 -0.2066 -vn -0.9846 0.1617 -0.0670 -vn 0.8293 -0.5162 0.2138 -vn -0.0712 0.8983 -0.4336 -vn 0.1218 0.3643 0.9233 -vn -0.2273 -0.8997 -0.3727 -vn -0.0913 0.8947 -0.4372 -vn 0.0864 0.8928 -0.4421 -vn -0.2272 -0.8997 0.3727 -vn -0.1218 0.9170 0.3798 -vn -0.1970 -0.3752 -0.9058 -vn -0.1970 -0.3752 0.9058 -vn -0.1533 0.3782 -0.9130 -vn 1.0000 -0.0006 -0.0069 -vn 0.0864 0.8928 0.4421 -vn 0.0000 0.9649 0.2626 -vn -0.0022 0.8595 0.5111 -vn 0.0014 -0.3780 0.9258 -vn 0.0019 -0.9695 -0.2450 -vn -0.5510 -0.3187 0.7712 -vn -0.9170 -0.1562 0.3671 -vn 0.0048 -0.9190 0.3942 -vn 0.0050 -0.9355 0.3532 -vn 0.0017 -0.3780 0.9258 -vn 0.8917 -0.1710 0.4191 -vn -0.8914 -0.1765 0.4174 -vn -0.0029 0.4287 0.9035 -vn 0.0018 -0.3780 0.9258 -vn 0.8493 -0.1946 0.4907 -vn -0.8491 -0.1997 0.4891 -vn -0.0031 0.4723 0.8814 -vn -0.0034 0.5235 0.8520 -vn 0.0050 -0.9531 0.3028 -vn 0.9172 -0.1505 0.3689 -vn -0.9919 0.1050 0.0715 -vn -0.0018 0.8543 0.5198 -vn 0.9959 -0.0250 0.0874 -vn -0.9957 -0.0410 0.0837 -vn 0.0024 -0.9722 -0.2343 -vn 0.9905 0.1284 0.0490 -vn 0.0013 -0.3780 0.9258 -vn -0.0023 0.8582 0.5133 -vn 0.0026 -0.9715 -0.2370 -vn 0.9976 -0.0694 -0.0010 -vn 0.0000 -0.7129 0.7012 -vn 0.9884 0.1326 0.0741 -vn -0.9938 0.1009 0.0477 -vn 0.0000 0.5505 0.8349 -vn -0.9952 -0.0952 -0.0245 -vn 1.0000 -0.0006 0.0069 -vn 0.0464 -0.8899 -0.4538 -vn 0.0000 -0.8684 -0.4959 -vn -0.0476 -0.3025 0.9520 -vn 0.0000 -0.4721 -0.8815 -s off -f 1/1/1 2/2/1 3/3/1 4/4/1 -f 5/5/2 6/6/2 7/7/2 8/8/2 -f 8/8/3 7/7/3 9/9/3 10/10/3 -f 11/11/4 12/12/4 13/13/4 14/14/4 -f 5/5/5 8/8/5 15/15/5 16/16/5 -f 2/17/6 17/18/6 18/19/6 19/20/6 -f 7/21/7 6/22/7 20/23/7 21/24/7 -f 22/25/8 23/26/8 24/27/8 25/28/8 -f 26/29/9 11/30/9 14/31/9 27/32/9 -f 26/33/10 28/34/10 29/35/10 30/36/10 -f 31/37/11 32/38/11 33/39/11 34/40/11 -f 32/41/12 12/42/12 35/43/12 33/44/12 -f 11/30/13 26/29/13 30/45/13 36/46/13 -f 28/47/14 23/48/14 37/49/14 29/50/14 -f 38/51/15 39/52/15 40/53/15 41/54/15 -f 41/54/16 40/53/16 42/55/16 43/56/16 -f 44/57/17 45/58/17 46/59/17 -f 47/60/18 40/61/18 48/62/18 49/63/18 -f 50/64/19 51/65/19 52/66/19 53/67/19 -f 54/68/20 55/69/20 56/70/20 57/71/20 -f 58/72/21 59/73/21 60/74/21 -f 55/75/22 61/76/22 51/77/22 56/70/22 -f 62/78/23 51/77/23 61/79/23 63/80/23 -f 64/81/24 54/82/24 57/71/24 65/83/24 -f 66/84/25 5/5/25 16/85/25 67/86/25 -f 68/87/26 69/88/26 63/80/26 61/79/26 -f 68/89/27 61/76/27 55/75/27 70/90/27 -f 15/15/28 64/91/28 49/92/28 16/16/28 -f 71/93/29 72/94/29 63/95/29 69/96/29 -f 73/97/19 51/65/19 50/64/19 -f 74/98/30 75/99/30 76/100/30 -f 75/99/1 77/101/1 78/102/1 -f 56/103/19 51/65/19 73/97/19 79/104/19 -f 80/105/31 21/106/31 81/107/31 82/108/31 -f 83/109/32 19/110/32 84/111/32 85/112/32 -f 13/113/33 86/114/33 87/115/33 88/116/33 -f 89/117/34 83/118/34 85/112/34 90/119/34 -f 91/120/35 27/121/35 92/122/35 93/123/35 -f 32/38/36 31/37/36 94/124/36 86/125/36 -f 9/126/37 7/127/37 21/106/37 80/105/37 -f 28/34/38 26/33/38 27/121/38 91/120/38 -f 12/42/39 32/41/39 86/114/39 13/113/39 -f 23/48/40 28/47/40 91/128/40 24/129/40 -f 3/130/41 2/131/41 19/110/41 83/109/41 -f 81/107/42 95/132/42 93/123/42 92/122/42 -f 84/111/43 96/133/43 88/116/43 87/115/43 -f 85/112/44 84/111/44 87/115/44 97/134/44 -f 19/20/45 18/19/45 96/133/45 84/111/45 -f 21/24/46 20/23/46 95/132/46 81/107/46 -f 14/14/47 13/13/47 88/116/47 98/135/47 -f 24/129/48 91/128/48 93/123/48 99/136/48 -f 86/125/49 94/124/49 97/134/49 87/115/49 -f 100/137/50 101/138/50 102/139/50 103/140/50 -f 33/44/51 35/43/51 104/141/51 101/142/51 -f 34/40/51 33/39/51 101/138/51 100/137/51 -f 35/143/51 36/144/51 105/145/51 104/146/51 -f 30/36/51 29/35/51 106/147/51 107/148/51 -f 29/50/51 37/49/51 108/149/51 106/150/51 -f 109/151/52 110/152/52 111/153/52 112/154/52 -f 107/148/53 106/147/53 113/155/53 114/156/53 -f 104/146/54 105/145/54 110/152/54 109/151/54 -f 105/157/55 107/158/55 114/159/55 110/160/55 -f 101/142/56 104/141/56 109/161/56 102/162/56 -f 115/163/51 116/164/51 117/165/51 118/166/51 -f 110/160/57 114/159/57 115/167/57 111/168/57 -f 102/162/58 109/161/58 112/169/58 119/170/58 -f 103/140/59 102/139/59 119/171/59 120/172/59 -f 113/173/60 121/174/60 122/175/60 116/176/60 -f 114/156/61 113/155/61 116/164/61 115/163/61 -f 119/170/51 112/169/51 123/177/51 124/178/51 -f 120/172/51 119/171/51 124/179/51 125/180/51 -f 116/176/51 122/175/51 126/181/51 117/182/51 -f 127/183/19 128/184/19 129/185/19 130/186/19 -f 131/187/62 118/188/62 132/189/62 133/190/62 -f 125/180/63 124/179/63 127/191/63 134/192/63 -f 117/182/64 126/181/64 135/193/64 136/194/64 -f 126/195/65 137/196/65 138/197/65 135/198/65 -f 118/166/66 117/165/66 136/199/66 132/200/66 -f 134/192/1 127/191/1 130/201/1 139/202/1 -f 136/194/16 135/193/16 140/203/16 141/204/16 -f 132/200/2 136/199/2 141/205/2 142/206/2 -f 143/207/2 144/208/2 145/209/2 146/210/2 -f 145/209/3 147/211/3 148/212/3 146/210/3 -f 149/213/1 150/214/1 151/215/1 152/216/1 -f 153/217/15 154/218/15 155/219/15 156/220/15 -f 156/220/16 155/219/16 144/208/16 143/207/16 -f 147/221/51 145/222/51 144/223/51 155/224/51 154/225/51 150/226/51 149/227/51 157/228/51 -f 158/229/51 159/230/51 160/231/51 161/232/51 -f 162/233/67 46/59/67 57/234/67 163/235/67 -f 47/236/2 65/237/2 164/238/2 165/239/2 -f 166/240/68 167/241/68 168/242/68 169/243/68 -f 64/91/69 65/83/69 47/60/69 49/92/69 -f 46/59/70 170/244/70 171/245/70 172/246/70 -f 53/67/19 52/66/19 160/247/19 -f 173/248/71 161/249/71 170/244/71 46/59/71 -f 146/250/51 148/251/51 174/252/51 139/253/51 -f 152/216/19 175/254/19 157/255/19 149/213/19 -f 176/256/72 177/257/72 178/258/72 179/259/72 -f 180/260/51 181/261/51 176/256/51 179/259/51 -f 45/262/73 182/263/73 183/264/73 184/265/73 -f 183/266/74 182/267/74 185/268/74 186/269/74 -f 187/270/51 137/196/51 126/195/51 122/271/51 -f 132/189/3 142/272/3 188/273/3 133/190/3 -f 45/262/75 44/274/75 189/275/75 182/263/75 -f 79/276/76 190/277/76 59/278/76 191/279/76 -f 70/280/77 55/69/77 54/68/77 192/281/77 -f 79/282/76 73/283/76 193/284/76 190/285/76 -f 18/286/78 80/287/78 82/108/78 96/133/78 -f 138/288/79 134/289/79 139/253/79 174/252/79 -f 50/290/80 194/291/80 193/284/80 73/283/80 -f 186/292/81 163/293/81 191/279/81 59/278/81 -f 195/294/82 196/295/82 184/265/82 183/264/82 -f 195/294/76 77/296/76 164/297/76 196/295/76 -f 75/298/76 165/299/76 164/300/76 77/301/76 -f 197/302/83 165/299/83 75/298/83 74/303/83 -f 178/258/84 177/257/84 197/302/84 74/303/84 -f 50/290/85 53/304/85 198/305/85 194/291/85 -f 199/306/51 200/307/51 108/308/51 37/309/51 -f 78/102/86 76/100/86 75/99/86 -f 201/310/87 74/98/87 76/100/87 -f 193/311/88 194/312/88 202/313/88 -f 85/112/89 97/134/89 203/314/89 90/119/89 -f 100/315/90 103/316/90 204/317/90 200/318/90 -f 123/177/91 128/184/91 127/183/91 124/178/91 -f 138/197/15 174/319/15 140/320/15 135/198/15 -f 205/321/92 202/313/92 194/312/92 -f 186/269/93 58/72/93 206/322/93 183/266/93 -f 22/323/94 25/324/94 94/325/94 31/326/94 -f 31/326/95 34/327/95 199/328/95 22/323/95 -f 16/85/96 49/63/96 48/62/96 67/86/96 -f 71/329/97 67/330/97 48/331/97 72/332/97 -f 25/324/98 203/314/98 97/134/98 94/325/98 -f 108/149/99 121/174/99 113/173/99 106/150/99 -f 112/154/51 111/153/51 131/333/51 123/334/51 -f 160/231/100 159/230/100 198/305/100 53/304/100 -f 202/335/101 207/336/101 208/337/101 209/338/101 76/339/101 78/340/101 206/341/101 58/342/101 60/343/101 -f 199/328/51 34/327/51 100/315/51 200/318/51 -f 96/133/102 82/108/102 98/135/102 88/116/102 -f 202/313/103 60/74/103 193/311/103 -f 66/84/104 67/330/104 71/329/104 210/344/104 -f 204/345/105 187/270/105 122/271/105 121/346/105 -f 115/167/51 118/188/51 131/187/51 111/168/51 -f 10/10/106 192/347/106 15/348/106 8/8/106 -f 211/349/107 212/350/107 213/351/107 189/352/107 -f 211/349/108 189/352/108 180/353/108 214/354/108 -f 158/355/109 215/356/109 159/357/109 -f 216/358/110 198/359/110 159/357/110 -f 213/351/111 212/350/111 215/356/111 158/355/111 -f 215/356/112 216/358/112 159/357/112 -f 217/360/113 214/354/113 179/361/113 -f 4/4/79 3/3/79 218/362/79 210/363/79 -f 218/364/114 3/365/114 83/118/114 89/117/114 -f 23/26/115 22/25/115 199/306/115 37/309/115 -f 81/107/116 92/122/116 98/135/116 82/108/116 -f 12/12/117 11/11/117 36/144/117 35/143/117 -f 25/28/118 24/27/118 99/136/118 203/366/118 -f 204/317/119 103/316/119 120/367/119 187/368/119 -f 187/368/51 120/367/51 125/369/51 137/370/51 -f 137/370/120 125/369/120 134/289/120 138/288/120 -f 62/78/121 63/95/121 72/94/121 39/371/121 -f 17/372/122 9/373/122 80/287/122 18/286/122 -f 175/374/51 140/320/51 174/319/51 148/375/51 -f 215/376/123 212/377/123 211/378/123 214/379/123 217/380/123 219/381/123 220/382/123 221/383/123 216/384/123 -f 178/385/124 222/386/124 217/360/124 -f 179/361/125 178/385/125 217/360/125 -f 78/102/126 77/101/126 195/387/126 -f 58/72/127 186/269/127 59/73/127 -f 194/312/128 198/359/128 223/388/128 205/321/128 -f 74/98/129 201/310/129 222/386/129 178/385/129 -f 220/389/130 224/390/130 225/391/130 221/392/130 -f 221/392/131 225/391/131 223/388/131 216/358/131 -f 219/393/132 217/360/132 222/386/132 226/394/132 -f 208/395/133 207/396/133 227/397/133 228/398/133 -f 208/399/134 228/400/134 229/401/134 209/402/134 -f 209/402/135 229/401/135 201/310/135 76/100/135 -f 201/310/136 229/401/136 226/394/136 222/386/136 -f 224/403/137 226/394/137 229/401/137 228/400/137 -f 224/390/138 228/398/138 227/397/138 225/391/138 -f 205/321/139 223/388/139 225/391/139 227/397/139 -f 230/404/140 231/405/140 232/406/140 233/407/140 -f 40/53/16 47/236/16 234/408/16 42/55/16 -f 169/243/16 41/54/16 43/56/16 235/409/16 -f 236/410/141 237/411/141 238/412/141 239/413/141 -f 240/414/142 241/415/142 237/416/142 236/417/142 -f 242/418/143 243/419/143 244/420/143 245/421/143 -f 246/422/144 247/423/144 231/424/144 230/425/144 -f 248/426/145 249/427/145 247/428/145 246/429/145 -f 249/430/146 232/431/146 231/424/146 247/423/146 -f 241/432/71 243/433/71 238/412/71 237/411/71 -f 250/434/147 244/435/147 243/433/147 241/432/147 -f 244/435/148 250/434/148 232/431/148 249/430/148 -f 239/436/149 238/437/149 243/438/149 242/418/149 -f 233/407/150 251/439/150 252/440/150 230/404/150 -f 253/441/151 254/442/151 251/439/151 233/407/151 -f 233/407/152 232/443/152 250/444/152 253/441/152 -f 245/421/153 244/445/153 249/446/153 248/426/153 -f 242/418/71 255/447/71 256/448/71 239/436/71 -f 245/421/154 257/449/154 258/450/154 259/451/154 260/452/154 261/453/154 262/454/154 263/455/154 255/447/154 242/418/154 -f 253/441/155 250/456/155 241/457/155 240/414/155 -f 262/458/156 264/459/156 265/460/156 266/461/156 -f 261/462/157 267/463/157 264/459/157 262/458/157 -f 266/461/158 265/460/158 268/464/158 269/465/158 -f 264/459/159 267/463/159 268/464/159 265/460/159 -f 270/466/160 271/467/160 272/468/160 273/469/160 -f 273/469/161 272/468/161 274/470/161 257/471/161 -f 258/472/162 275/473/162 271/467/162 270/466/162 -f 275/473/163 274/470/163 272/468/163 271/467/163 -f 276/474/164 277/475/164 278/476/164 279/477/164 -f 279/477/165 278/476/165 280/478/165 259/479/165 -f 260/480/166 281/481/166 277/475/166 276/474/166 -f 281/481/159 280/478/159 278/476/159 277/475/159 -f 257/449/151 245/421/151 248/426/151 273/482/151 -f 257/471/167 274/470/167 275/473/167 258/472/167 -f 259/451/151 258/450/151 270/483/151 279/484/151 -f 259/479/168 280/478/168 281/481/168 260/480/168 -f 261/453/151 260/452/151 276/485/151 269/486/151 -f 269/465/169 268/464/169 267/463/169 261/462/169 -f 255/487/170 263/455/170 282/488/170 283/489/170 -f 283/490/171 282/488/171 266/491/171 269/486/171 276/485/171 279/484/171 270/483/171 273/482/171 248/426/171 246/429/171 -f 282/488/151 263/455/151 262/454/151 266/491/151 -f 59/73/172 190/492/172 60/74/172 -f 284/493/71 285/494/71 240/414/71 236/417/71 -f 285/494/173 254/442/173 253/441/173 240/414/173 -f 256/495/76 255/487/76 283/489/76 286/496/76 -f 5/5/16 66/84/16 287/497/16 6/6/16 -f 1/1/19 288/498/19 17/499/19 2/2/19 -f 288/498/71 10/10/71 9/9/71 17/499/71 -f 1/1/174 68/89/174 70/90/174 288/498/174 -f 38/500/79 289/501/79 62/502/79 39/503/79 -f 289/501/1 290/504/1 291/505/1 62/502/1 -f 4/4/175 69/88/175 68/87/175 1/1/175 -f 292/506/176 293/507/176 95/132/176 20/508/176 -f 89/509/177 90/510/177 293/507/177 292/511/177 -f 287/512/178 292/506/178 20/508/178 6/513/178 -f 293/507/179 99/136/179 93/123/179 95/132/179 -f 14/31/180 98/135/180 92/122/180 27/32/180 -f 30/45/51 107/158/51 105/157/51 36/46/51 -f 131/333/181 133/514/181 128/515/181 123/334/181 -f 157/255/71 175/254/71 148/516/71 147/517/71 -f 153/217/79 151/215/79 150/214/79 154/218/79 -f 189/275/51 44/274/51 181/518/51 180/519/51 -f 213/520/51 158/521/51 161/522/51 173/523/51 -f 162/524/182 163/293/182 186/292/182 185/525/182 -f 128/515/71 133/514/71 188/526/71 129/527/71 -f 162/524/183 185/525/183 213/520/183 173/523/183 -f 15/348/184 192/347/184 54/82/184 64/81/184 -f 293/507/185 90/510/185 203/366/185 99/136/185 -f 108/308/186 200/307/186 204/345/186 121/346/186 -f 185/268/187 182/267/187 189/352/187 213/351/187 -f 4/4/188 210/363/188 71/93/188 69/96/188 -f 10/10/189 288/498/189 70/280/189 192/281/189 -f 66/84/15 210/344/15 218/528/15 287/497/15 -f 218/529/190 89/509/190 292/511/190 287/530/190 -f 40/61/191 39/531/191 72/332/191 48/331/191 -f 220/532/192 219/393/192 226/394/192 224/403/192 -f 207/396/193 202/313/193 205/321/193 227/397/193 -f 51/65/1 294/533/1 295/534/1 52/66/1 -f 62/502/1 291/505/1 294/533/1 51/65/1 -f 52/66/1 295/534/1 290/504/1 289/501/1 -f 252/535/51 285/536/51 284/537/51 296/538/51 -f 171/539/76 297/540/76 298/541/76 299/542/76 300/543/76 168/544/76 167/545/76 172/546/76 -f 289/501/194 38/500/194 299/547/194 298/548/194 -f 46/59/195 162/233/195 173/248/195 -f 163/235/196 57/234/196 191/549/196 -f 38/51/197 41/54/197 300/550/197 299/551/197 -f 166/240/198 46/59/198 172/552/198 167/553/198 -f 52/66/199 289/501/199 298/554/199 297/555/199 -f 41/54/200 169/243/200 168/556/200 300/557/200 -f 52/66/201 297/558/201 171/559/201 170/244/201 -f 191/549/71 57/234/71 56/103/71 79/104/71 -f 153/560/51 188/273/51 142/272/51 151/561/51 -f 188/526/51 153/562/51 156/563/51 129/527/51 -f 129/185/51 156/564/51 143/565/51 130/186/51 -f 130/201/51 143/566/51 146/567/51 139/202/51 -f 152/568/51 141/204/51 140/203/51 175/569/51 -f 141/205/51 152/570/51 151/571/51 142/206/51 -f 301/572/51 302/573/51 303/574/51 304/575/51 -f 285/536/202 252/535/202 251/439/202 254/442/202 -f 160/247/19 52/66/19 170/244/19 161/249/19 -f 57/234/3 196/576/3 164/238/3 65/237/3 -f 196/576/203 57/234/203 184/577/203 -f 165/239/2 197/578/2 47/236/2 -f 197/578/2 177/579/2 169/243/2 47/236/2 -f 169/243/2 177/579/2 176/580/2 -f 176/580/2 181/581/2 166/240/2 169/243/2 -f 46/59/204 45/58/204 184/577/204 57/234/204 -f 46/59/3 166/240/3 181/581/3 44/57/3 -f 235/409/16 234/408/16 47/236/16 169/243/16 -f 305/582/76 306/583/76 307/584/76 308/585/76 -f 304/586/205 309/587/205 310/588/205 311/589/205 -f 303/590/3 312/591/3 309/587/3 304/586/3 -f 306/592/79 302/593/79 301/594/79 313/595/79 314/596/79 307/597/79 -f 315/598/206 316/599/206 317/600/206 318/601/206 -f 307/597/207 314/596/207 319/602/207 320/603/207 321/604/207 322/605/207 323/606/207 324/607/207 316/599/207 315/598/207 -f 308/585/208 307/584/208 315/598/208 318/601/208 -f 324/608/209 325/609/209 326/610/209 327/611/209 -f 325/612/206 324/607/206 323/606/206 328/613/206 -f 329/614/210 328/615/210 330/616/210 331/617/210 -f 329/618/206 322/605/206 321/604/206 332/619/206 -f 333/620/211 332/621/211 334/622/211 335/623/211 -f 333/624/206 320/603/206 319/602/206 336/625/206 -f 330/616/212 337/626/212 338/627/212 331/617/212 -f 328/615/213 323/628/213 337/626/213 330/616/213 -f 322/629/214 329/614/214 331/617/214 338/627/214 -f 323/628/215 322/629/215 338/627/215 337/626/215 -f 334/622/216 339/630/216 340/631/216 335/623/216 -f 332/621/217 321/632/217 339/630/217 334/622/217 -f 320/633/218 333/620/218 335/623/218 340/631/218 -f 321/632/219 320/633/219 340/631/219 339/630/219 -f 341/634/212 342/635/212 327/611/212 326/610/212 -f 316/636/220 324/608/220 327/611/220 342/635/220 -f 325/609/221 317/637/221 341/634/221 326/610/221 -f 317/637/222 316/636/222 342/635/222 341/634/222 -f 310/588/223 309/587/223 343/638/223 344/639/223 -f 336/625/224 345/640/224 308/641/224 318/601/224 317/600/224 325/612/224 328/613/224 329/618/224 332/619/224 333/624/224 -f 345/640/3 346/642/3 305/643/3 308/641/3 -f 336/625/225 319/602/225 347/644/225 348/645/225 -f 349/646/226 310/588/226 344/647/226 350/648/226 -f 310/588/206 349/646/206 351/649/206 311/589/206 -f 349/646/227 313/595/227 301/594/227 351/649/227 -f 346/642/228 345/640/228 352/650/228 353/651/228 -f 348/652/229 347/653/229 350/654/229 344/655/229 -f 344/655/230 343/656/230 352/657/230 348/652/230 -f 343/656/3 354/658/3 353/659/3 352/657/3 -f 347/653/231 355/660/231 356/661/231 350/654/231 -f 319/602/232 314/596/232 355/662/232 347/663/232 -f 314/664/233 313/665/233 356/661/233 355/660/233 -f 345/640/234 336/625/234 348/666/234 352/667/234 -f 309/587/235 312/591/235 354/668/235 343/669/235 -f 312/670/236 346/671/236 353/659/236 354/658/236 -f 313/595/237 349/646/237 350/672/237 356/673/237 -f 304/575/238 311/589/238 351/649/238 301/572/238 -f 60/74/16 190/492/16 193/311/16 -f 246/429/15 230/404/15 252/440/15 296/674/15 286/675/15 283/490/15 -f 206/322/239 78/102/239 195/387/239 -f 195/387/240 183/266/240 206/322/240 -f 216/358/241 223/388/241 198/359/241 -f 214/354/242 180/353/242 179/361/242 -o Rail_Cube -v -1.606489 0.994589 3.070837 -v -1.606489 1.084445 3.070837 -v -1.606489 1.084277 2.929163 -v -1.606489 0.994589 2.929163 -v -0.511384 1.084480 2.929163 -v -0.514357 1.052983 2.929163 -v -0.549767 1.006668 2.929163 -v -0.549767 0.994589 2.929163 -v 1.313063 1.160981 3.058974 -v 1.498769 1.160981 3.058974 -v 1.498532 1.230366 3.031927 -v 1.312826 1.230366 3.031927 -v 1.225298 0.994589 3.070837 -v 1.225298 1.084445 3.070837 -v 0.962233 1.084445 3.070837 -v 0.964610 1.052983 3.070837 -v 1.000021 1.006668 3.070837 -v 1.000021 0.994589 3.070837 -v -0.197543 0.994589 2.929163 -v 0.049014 0.994589 2.929163 -v 0.049014 0.994589 3.070837 -v -0.197543 0.994589 3.070837 -v 0.401239 0.994589 2.929163 -v 0.647796 0.994589 2.929163 -v 0.647796 0.994589 3.070837 -v 0.401239 0.994589 3.070837 -v 1.000021 0.994589 2.929163 -v 1.225298 0.994589 2.929163 -v -0.549767 0.994589 3.070837 -v 1.225298 1.143051 2.956872 -v -1.531817 1.143051 2.956872 -v -1.531817 1.143051 3.043128 -v 1.225298 1.143051 3.043128 -v 1.313063 0.996053 3.070837 -v 1.498769 0.996053 3.070837 -v 1.313063 1.160981 2.941026 -v 1.313063 0.996053 2.929163 -v 1.225298 1.084802 2.929163 -v 1.269521 1.219445 3.031927 -v 1.498769 0.996053 2.929163 -v 1.498769 1.160981 2.941026 -v 1.312826 1.230366 2.968073 -v 1.498532 1.230366 2.968073 -v 1.575087 0.954078 2.929163 -v 1.575087 1.119006 2.929163 -v 1.575087 1.119006 3.070837 -v 1.575087 0.954078 3.070837 -v 1.269521 1.219445 2.968073 -v 1.554546 1.188392 3.031927 -v 1.554546 1.188392 2.968073 -v -0.514597 1.084445 3.070837 -v -0.234129 1.084445 3.070837 -v 0.083877 1.084445 3.070837 -v 0.364860 1.084445 3.070837 -v 0.682044 1.084445 3.070837 -v 0.964998 1.084754 2.929163 -v 0.683980 1.084702 2.929163 -v 0.366670 1.084643 2.929163 -v 0.084942 1.084590 2.929163 -v -0.230760 1.084532 2.929163 -v -0.232953 1.052983 2.929163 -v -0.232953 1.052983 3.070837 -v -0.514357 1.052983 3.070837 -v -0.197543 1.006668 3.070837 -v -0.197543 1.006668 2.929163 -v -0.549767 1.006668 3.070837 -v 0.084425 1.052983 2.929163 -v 0.365828 1.052983 2.929163 -v 0.365828 1.052983 3.070837 -v 0.084425 1.052983 3.070837 -v 0.401239 1.006668 3.070837 -v 0.401239 1.006668 2.929163 -v 0.049014 1.006668 2.929163 -v 0.049014 1.006668 3.070837 -v 0.683207 1.052983 2.929163 -v 0.964610 1.052983 2.929163 -v 0.683207 1.052983 3.070837 -v 1.000021 1.006668 2.929163 -v 0.647796 1.006668 2.929163 -v 0.647796 1.006668 3.070837 -vt 0.000044 0.107430 -vt 0.024656 0.106940 -vt 0.025382 0.145745 -vt 0.000816 0.146234 -vt 0.030452 0.180549 -vt 0.030675 0.155877 -vt 0.331921 0.150233 -vt 0.331137 0.165014 -vt 0.321371 0.177755 -vt 0.321356 0.182832 -vt 0.841452 0.074598 -vt 0.898560 0.067293 -vt 0.901417 0.090204 -vt 0.844308 0.097509 -vt 0.805805 0.056957 -vt 0.805905 0.081576 -vt 0.733831 0.081869 -vt 0.734447 0.073247 -vt 0.744097 0.060518 -vt 0.744084 0.057208 -vt 0.418878 0.198936 -vt 0.488701 0.198936 -vt 0.488701 0.239057 -vt 0.418878 0.239057 -vt 0.608256 0.198936 -vt 0.678079 0.198936 -vt 0.678079 0.239057 -vt 0.608256 0.239057 -vt 0.797634 0.198936 -vt 0.861431 0.198936 -vt 0.861431 0.239057 -vt 0.797634 0.239057 -vt 0.000064 0.239057 -vt 0.000064 0.198936 -vt 0.299323 0.198936 -vt 0.299323 0.239057 -vt 0.806959 0.123674 -vt 0.051262 0.137650 -vt 0.050803 0.114024 -vt 0.805978 0.099337 -vt 0.834948 0.023749 -vt 0.892056 0.016444 -vt 0.848703 0.139669 -vt 0.848775 0.194135 -vt 0.819931 0.196127 -vt 0.818378 0.166453 -vt 0.819259 0.145224 -vt 0.808731 0.055009 -vt 0.805001 0.027402 -vt 0.832026 0.024208 -vt 0.813249 0.074592 -vt 0.886289 0.198936 -vt 0.886289 0.239057 -vt 0.830535 0.096090 -vt 0.938880 0.198936 -vt 0.938880 0.239057 -vt 0.907329 0.133247 -vt 0.846631 0.116524 -vt 0.903929 0.109840 -vt 0.854421 0.191870 -vt 0.913047 0.185448 -vt 0.999956 0.109718 -vt 0.949237 0.116206 -vt 0.943664 0.072638 -vt 0.994383 0.066151 -vt 0.916522 0.186846 -vt 0.934269 0.143004 -vt 0.943667 0.196128 -vt 0.890641 0.016645 -vt 0.911939 0.000044 -vt 0.920047 0.050529 -vt 0.963546 0.198936 -vt 0.963546 0.239057 -vt 0.833077 0.119378 -vt 0.831048 0.100155 -vt 0.922942 0.087450 -vt 0.925454 0.107087 -vt 0.917732 0.075896 -vt 0.923810 0.118972 -vt 0.030004 0.096674 -vt 0.329071 0.090840 -vt 0.405999 0.085274 -vt 0.493182 0.082863 -vt 0.570163 0.082535 -vt 0.657065 0.082182 -vt 0.807446 0.134947 -vt 0.761956 0.136920 -vt 0.712846 0.139052 -vt 0.657390 0.141473 -vt 0.607889 0.143639 -vt 0.517990 0.146718 -vt 0.319255 0.198936 -vt 0.398947 0.198936 -vt 0.398947 0.239057 -vt 0.319255 0.239057 -vt 0.415457 0.239057 -vt 0.415457 0.198936 -vt 0.302744 0.198936 -vt 0.302744 0.239057 -vt 0.508633 0.198936 -vt 0.588324 0.198936 -vt 0.588325 0.239057 -vt 0.508633 0.239057 -vt 0.604835 0.239057 -vt 0.604835 0.198936 -vt 0.492122 0.198936 -vt 0.492122 0.239057 -vt 0.698011 0.198936 -vt 0.777702 0.198936 -vt 0.777702 0.239057 -vt 0.698011 0.239057 -vt 0.794213 0.239057 -vt 0.794213 0.198936 -vt 0.681500 0.198936 -vt 0.681500 0.239057 -vt 0.570392 0.073909 -vt 0.493194 0.074229 -vt 0.657348 0.073560 -vt 0.580043 0.061180 -vt 0.580030 0.057871 -vt 0.647582 0.057600 -vt 0.647596 0.060910 -vt 0.405892 0.076638 -vt 0.415271 0.063632 -vt 0.415179 0.060309 -vt 0.483008 0.058434 -vt 0.483100 0.061757 -vt 0.328731 0.082202 -vt 0.029525 0.072069 -vt 0.318891 0.066437 -vt 0.321825 0.067919 -vt 0.762127 0.142476 -vt 0.808127 0.150713 -vt 0.768757 0.152413 -vt 0.766843 0.151519 -vt 0.712952 0.144596 -vt 0.657585 0.147020 -vt 0.707119 0.152950 -vt 0.707211 0.155057 -vt 0.664206 0.156936 -vt 0.664114 0.154829 -vt 0.608341 0.150969 -vt 0.517035 0.161727 -vt 0.599554 0.164923 -vt 0.599986 0.168387 -vt 0.529279 0.177207 -vt 0.528847 0.173743 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.3632 0.9317 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.4999 0.3505 -0.7920 +vn 0.4999 -0.3505 0.7920 +vn -0.5000 -0.3505 0.7919 +vn 0.0000 0.9079 0.4192 +vn -0.5000 0.3505 -0.7919 +vn 0.5000 0.3505 -0.7919 +vn 0.5000 -0.3505 0.7919 +vn -0.4999 -0.3505 0.7920 +vn -0.4999 0.3505 -0.7920 +vn 0.0000 0.5247 -0.8513 +vn 0.0000 -0.5247 0.8513 +vn -0.7911 0.5599 0.2463 +vn 0.0000 0.9154 0.4026 +vn 0.0000 0.0280 0.9996 +vn 0.0000 0.7558 -0.6548 +vn 0.7911 0.5599 0.2463 +vn 0.5000 0.3505 0.7919 +vn 0.5000 -0.3505 -0.7919 +vn -0.4999 -0.3505 -0.7920 +vn 0.0000 0.9079 -0.4192 +vn -0.4999 0.3505 0.7920 +vn 0.4999 0.3505 0.7920 +vn 0.5000 -0.3505 -0.7920 +vn -0.5000 -0.3505 -0.7919 +vn -0.5000 0.3505 0.7919 +vn 0.0000 0.5247 0.8513 +vn 0.0000 -0.5247 -0.8513 +vn -0.7911 0.5599 -0.2463 +vn 0.0000 0.9154 -0.4026 +vn 0.0000 0.0280 -0.9996 +vn 0.0000 0.7558 0.6548 +vn 0.7911 0.5599 -0.2463 +vn -0.7409 0.6716 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0717 0.9974 -vn -0.0132 0.1253 -0.9920 -vn -0.0136 0.1253 0.9920 -vn 0.0167 -0.9999 0.0000 -vn -0.1793 0.2999 0.9370 -vn 0.0000 0.3632 -0.9317 -vn 0.0000 0.0717 -0.9974 -vn 1.0000 0.0000 0.0000 -vn -0.0578 0.0359 -0.9977 -vn -0.0578 0.0359 0.9977 -vn -0.4819 -0.8762 0.0000 -vn -0.2445 0.9696 0.0000 -vn 0.5997 0.8003 0.0000 -vn 0.2041 0.4450 0.8720 -vn 0.9589 0.2839 0.0000 -vn -0.8655 0.5010 0.0000 -vn -0.1793 0.2999 -0.9370 -vn 0.2041 0.4450 -0.8720 -vn 0.0000 0.4274 0.9040 -vn -0.6179 0.7862 -0.0006 -vn -0.0000 0.4280 -0.9038 -vn 0.7944 -0.6074 0.0000 -vn -0.7944 -0.6074 0.0000 -s off -f 357/676/243 358/677/243 359/678/243 360/679/243 -f 360/680/244 359/681/244 361/682/244 362/683/244 363/684/244 364/685/244 -f 365/686/245 366/687/245 367/688/245 368/689/245 -f 369/690/246 370/691/246 371/692/246 372/693/246 373/694/246 374/695/246 -f 375/696/247 376/697/247 377/698/247 378/699/247 -f 379/700/247 380/701/247 381/702/247 382/703/247 -f 383/704/247 384/705/247 369/706/247 374/707/247 -f 357/708/247 360/709/247 364/710/247 385/711/247 -f 386/712/248 387/713/248 388/714/248 389/715/248 -f 365/686/249 390/716/249 391/717/249 366/687/249 -f 392/718/250 393/719/250 384/720/250 394/721/250 386/722/250 -f 370/723/251 369/724/251 390/725/251 365/686/251 389/726/251 -f 369/706/252 384/705/252 393/727/252 390/728/252 -f 389/726/253 365/686/253 368/689/253 395/729/253 -f 390/728/247 393/727/247 396/730/247 391/731/247 -f 397/732/254 392/718/254 398/733/254 399/734/254 -f 393/735/255 392/718/255 397/732/255 396/736/255 -f 400/737/256 401/738/256 402/739/256 403/740/256 -f 396/741/257 397/732/257 401/742/257 400/743/257 -f 366/687/258 391/744/258 403/745/258 402/746/258 -f 391/731/259 396/730/259 400/747/259 403/748/259 -f 404/749/260 395/750/260 368/689/260 398/733/260 -f 399/734/261 367/688/261 405/751/261 406/752/261 -f 398/733/248 368/689/248 367/688/248 399/734/248 -f 366/687/262 402/746/262 405/753/262 367/688/262 -f 402/739/263 401/738/263 406/752/263 405/751/263 -f 386/712/264 389/715/264 395/750/264 404/749/264 -f 392/718/265 386/722/265 404/749/265 398/733/265 -f 401/742/266 397/732/266 399/734/266 406/754/266 -f 358/755/267 407/756/267 408/757/267 409/758/267 410/759/267 411/760/267 371/692/267 370/691/267 389/715/267 388/714/267 -f 359/678/268 358/677/268 388/714/268 387/713/268 -f 394/761/269 412/762/269 413/763/269 414/764/269 415/765/269 416/766/269 361/682/269 359/681/269 387/713/269 386/712/269 -f 362/767/247 417/768/247 418/769/247 419/770/247 -f 378/699/243 420/771/243 421/772/243 375/696/243 -f 364/710/256 363/773/256 422/774/256 385/711/256 -f 363/773/270 362/767/270 419/770/270 422/774/270 -f 418/769/271 417/768/271 421/772/271 420/771/271 -f 423/775/247 424/776/247 425/777/247 426/778/247 -f 382/703/243 427/779/243 428/780/243 379/700/243 -f 376/697/256 429/781/256 430/782/256 377/698/256 -f 429/781/270 423/775/270 426/778/270 430/782/270 -f 428/780/271 427/779/271 425/777/271 424/776/271 -f 431/783/247 432/784/247 372/785/247 433/786/247 -f 373/787/243 434/788/243 383/704/243 374/707/243 -f 380/701/256 435/789/256 436/790/256 381/702/256 -f 436/790/270 435/789/270 431/783/270 433/786/270 -f 372/785/271 432/784/271 434/788/271 373/787/271 -f 425/791/246 410/759/246 409/758/246 426/792/246 -f 433/793/246 411/760/246 410/759/246 425/791/246 427/794/246 382/795/246 381/796/246 436/797/246 -f 372/693/246 371/692/246 411/760/246 433/793/246 -f 426/792/246 409/758/246 408/757/246 418/798/246 420/799/246 378/800/246 377/801/246 430/802/246 -f 418/798/246 408/757/246 407/756/246 419/803/246 -f 419/803/246 407/756/246 358/755/246 357/804/246 385/805/246 422/806/246 -f 432/807/244 412/762/244 394/761/244 384/808/244 383/809/244 434/810/244 -f 431/811/244 413/763/244 412/762/244 432/807/244 -f 424/812/244 414/764/244 413/763/244 431/811/244 435/813/244 380/814/244 379/815/244 428/816/244 -f 423/817/244 415/765/244 414/764/244 424/812/244 -f 417/818/244 416/766/244 415/765/244 423/817/244 429/819/244 376/820/244 375/821/244 421/822/244 -f 362/683/244 361/682/244 416/766/244 417/818/244 -o CoiCanon_Cylinder.004 -v -0.419369 0.526526 2.793014 -v 0.947632 0.526526 2.793014 -v 0.947632 0.380164 2.853639 -v -0.419369 0.380164 2.853639 -v 0.947632 0.319540 3.000000 -v -0.419369 0.319540 3.000000 -v 0.947632 0.380164 3.146361 -v -0.419369 0.380164 3.146361 -v 0.947632 0.526526 3.206986 -v -0.419369 0.526526 3.206986 -v 0.947632 0.672887 3.146361 -v -0.419369 0.672887 3.146361 -v 0.947632 0.733512 3.000000 -v -0.419369 0.733512 3.000000 -v 0.947632 0.672887 2.853639 -v -0.419369 0.672887 2.853639 -vt 0.000126 0.575971 -vt 0.828281 0.575971 -vt 0.828281 0.671946 -vt 0.000126 0.671946 -vt 0.828281 0.767920 -vt 0.000126 0.767920 -vt 0.000126 0.000126 -vt 0.828282 0.000127 -vt 0.828282 0.096101 -vt 0.000126 0.096100 -vt 0.828282 0.192075 -vt 0.000126 0.192075 -vt 0.828282 0.288049 -vt 0.000126 0.288049 -vt 0.828281 0.384023 -vt 0.000126 0.384023 -vt 0.232080 0.836036 -vt 0.299945 0.768172 -vt 0.395919 0.768172 -vt 0.463783 0.836036 -vt 0.463783 0.932010 -vt 0.395919 0.999874 -vt 0.299944 0.999874 -vt 0.232081 0.932010 -vt 0.828281 0.479997 -vt 0.000126 0.479997 -vt 0.163964 0.999874 -vt 0.067990 0.999874 -vt 0.000126 0.932010 -vt 0.000126 0.836036 -vt 0.067990 0.768172 -vt 0.163964 0.768172 -vt 0.231828 0.836036 -vt 0.231828 0.932010 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -1.0000 0.0000 0.0000 -s off -f 437/823/272 438/824/272 439/825/272 440/826/272 -f 440/826/273 439/825/273 441/827/273 442/828/273 -f 442/829/274 441/830/274 443/831/274 444/832/274 -f 444/832/275 443/831/275 445/833/275 446/834/275 -f 446/834/276 445/833/276 447/835/276 448/836/276 -f 448/836/277 447/835/277 449/837/277 450/838/277 -f 439/839/278 438/840/278 451/841/278 449/842/278 447/843/278 445/844/278 443/845/278 441/846/278 -f 450/838/279 449/837/279 451/847/279 452/848/279 -f 452/848/280 451/847/280 438/824/280 437/823/280 -f 437/849/281 440/850/281 442/851/281 444/852/281 446/853/281 448/854/281 450/855/281 452/856/281 -o SideScrews_Cylinder.005 -v -0.436383 0.265019 3.509254 -v 1.004741 0.265019 3.509254 -v 1.004741 0.179718 3.544586 -v -0.436383 0.179718 3.544586 -v 1.004741 0.144386 3.629887 -v -0.436383 0.144385 3.629887 -v 1.004741 0.179718 3.715187 -v -0.436383 0.179718 3.715187 -v 1.004741 0.265019 3.750520 -v -0.436383 0.265019 3.750520 -v 1.004741 0.350319 3.715187 -v -0.436383 0.350319 3.715187 -v 1.004741 0.385652 3.629887 -v -0.436383 0.385652 3.629887 -v 1.088061 0.265019 3.750520 -v 1.088061 0.350319 3.715187 -v 1.004741 0.350319 3.544586 -v -0.436383 0.350319 3.544586 -v -0.513171 0.364069 3.629887 -v -0.513171 0.335058 3.699926 -v -0.513171 0.265019 3.530836 -v -0.513171 0.194979 3.559848 -v -0.513171 0.165968 3.629887 -v -0.513171 0.194979 3.699926 -v -0.513171 0.265019 3.728937 -v -0.513171 0.335058 3.559848 -v 1.088061 0.265019 3.509254 -v 1.088061 0.350319 3.544586 -v 1.100404 0.336110 3.558795 -v 1.100404 0.265019 3.529348 -v 1.088061 0.179718 3.544586 -v 1.088061 0.144386 3.629887 -v 1.088061 0.179718 3.715187 -v 1.088061 0.385652 3.629887 -v 1.100404 0.336110 3.700979 -v 1.100404 0.365558 3.629887 -v 1.100404 0.193927 3.700979 -v 1.100404 0.265019 3.730426 -v 1.100404 0.193927 3.558795 -v 1.100404 0.164480 3.629887 -v 1.127149 0.181939 3.629887 -v 1.127149 0.206273 3.688633 -v 1.127149 0.206273 3.571141 -v 1.127149 0.265019 3.546807 -v 1.127149 0.323765 3.571141 -v 1.127149 0.348098 3.629887 -v 1.127149 0.323765 3.688633 -v 1.127149 0.265019 3.712966 -v -0.436384 0.265019 2.490746 -v -0.436384 0.179718 2.455414 -v 1.004741 0.179718 2.455414 -v 1.004741 0.265019 2.490746 -v -0.436384 0.144385 2.370113 -v 1.004741 0.144386 2.370113 -v -0.436384 0.179718 2.284813 -v 1.004741 0.179718 2.284813 -v -0.436384 0.265019 2.249480 -v 1.004741 0.265019 2.249480 -v -0.436384 0.350319 2.284813 -v 1.004741 0.350319 2.284813 -v -0.436384 0.385652 2.370113 -v 1.004741 0.385652 2.370113 -v 1.088061 0.350319 2.284813 -v 1.088061 0.265019 2.249480 -v -0.436384 0.350319 2.455414 -v 1.004741 0.350319 2.455414 -v -0.513171 0.335058 2.300074 -v -0.513171 0.364069 2.370113 -v -0.513171 0.265019 2.469164 -v -0.513171 0.335058 2.440152 -v -0.513171 0.265019 2.271063 -v -0.513171 0.194979 2.300074 -v -0.513171 0.165968 2.370113 -v -0.513171 0.194979 2.440152 -v 1.088061 0.265019 2.490746 -v 1.100404 0.265019 2.470652 -v 1.100404 0.336111 2.441205 -v 1.088061 0.350319 2.455414 -v 1.088061 0.179718 2.455414 -v 1.088061 0.179718 2.284813 -v 1.088061 0.144386 2.370113 -v 1.088061 0.385652 2.370113 -v 1.100404 0.365558 2.370113 -v 1.100404 0.336110 2.299021 -v 1.100404 0.265019 2.269574 -v 1.100404 0.193927 2.299021 -v 1.100404 0.164480 2.370113 -v 1.100404 0.193927 2.441205 -v 1.127149 0.206273 2.311367 -v 1.127149 0.181939 2.370113 -v 1.127149 0.206273 2.428859 -v 1.127149 0.265019 2.287034 -v 1.127149 0.323765 2.311367 -v 1.127149 0.348098 2.370113 -v 1.127149 0.323765 2.428859 -v 1.127149 0.265019 2.453193 -vt 0.047908 0.778254 -vt 0.915002 0.778254 -vt 0.915002 0.833806 -vt 0.047908 0.833806 -vt 0.915002 0.889359 -vt 0.047908 0.889358 -vt 0.047908 0.444941 -vt 0.915002 0.444941 -vt 0.915002 0.500493 -vt 0.047908 0.500493 -vt 0.915002 0.556045 -vt 0.047908 0.556045 -vt 0.915002 0.611597 -vt 0.047908 0.611598 -vt 0.915002 0.667149 -vt 0.047908 0.667150 -vt 0.965134 0.556045 -vt 0.965134 0.611597 -vt 0.915002 0.722702 -vt 0.047908 0.722702 -vt 0.000174 0.662180 -vt 0.000174 0.616567 -vt 0.188508 0.999826 -vt 0.142894 0.999826 -vt 0.110641 0.967572 -vt 0.110641 0.921959 -vt 0.142895 0.889706 -vt 0.188508 0.889706 -vt 0.220761 0.921959 -vt 0.220761 0.967572 -vt 0.000174 0.551076 -vt 0.000174 0.505463 -vt 0.000174 0.717732 -vt 0.000174 0.672119 -vt 0.000174 0.884388 -vt 0.000174 0.838776 -vt 0.000174 0.606628 -vt 0.000174 0.561015 -vt 0.000174 0.773284 -vt 0.000174 0.727671 -vt 0.000174 0.828837 -vt 0.000174 0.783223 -vt 0.000174 0.495524 -vt 0.000174 0.449911 -vt 0.965134 0.778254 -vt 0.965134 0.722702 -vt 0.978548 0.727329 -vt 0.978548 0.773627 -vt 0.965134 0.833806 -vt 0.965134 0.444941 -vt 0.965134 0.500493 -vt 0.965134 0.667149 -vt 0.965134 0.889359 -vt 0.978548 0.616224 -vt 0.978548 0.662523 -vt 0.978548 0.505120 -vt 0.978548 0.551419 -vt 0.978548 0.838433 -vt 0.978548 0.884732 -vt 0.978548 0.671776 -vt 0.978548 0.718075 -vt 0.978548 0.560672 -vt 0.978548 0.606970 -vt 0.978548 0.449567 -vt 0.978548 0.495866 -vt 0.978548 0.782880 -vt 0.978548 0.829179 -vt 0.997340 0.453587 -vt 0.997340 0.491846 -vt 0.313821 0.916759 -vt 0.340874 0.889706 -vt 0.379132 0.889706 -vt 0.406185 0.916760 -vt 0.406185 0.955018 -vt 0.379132 0.982071 -vt 0.340873 0.982071 -vt 0.313820 0.955018 -vt 0.997340 0.786900 -vt 0.997340 0.825159 -vt 0.997340 0.731349 -vt 0.997339 0.769607 -vt 0.997340 0.620244 -vt 0.997340 0.658502 -vt 0.997340 0.509140 -vt 0.997340 0.547398 -vt 0.997340 0.842454 -vt 0.997340 0.880712 -vt 0.997340 0.675796 -vt 0.997340 0.714055 -vt 0.997340 0.564692 -vt 0.997340 0.602951 -vt 0.047908 0.111279 -vt 0.047908 0.055726 -vt 0.915003 0.055729 -vt 0.915003 0.111281 -vt 0.047908 0.000174 -vt 0.915003 0.000177 -vt 0.047907 0.444592 -vt 0.047907 0.389040 -vt 0.915002 0.389041 -vt 0.915002 0.444593 -vt 0.047907 0.333487 -vt 0.915002 0.333489 -vt 0.047907 0.277935 -vt 0.915002 0.277937 -vt 0.047908 0.222383 -vt 0.915002 0.222385 -vt 0.965134 0.277937 -vt 0.965134 0.333489 -vt 0.047908 0.166830 -vt 0.915003 0.166833 -vt 0.000174 0.272966 -vt 0.000174 0.227352 -vt 0.032427 0.889706 -vt 0.078041 0.889706 -vt 0.110294 0.921960 -vt 0.110294 0.967573 -vt 0.078041 0.999826 -vt 0.032427 0.999826 -vt 0.000174 0.967573 -vt 0.000174 0.921960 -vt 0.000174 0.384070 -vt 0.000174 0.338457 -vt 0.000174 0.217413 -vt 0.000174 0.171800 -vt 0.000175 0.050756 -vt 0.000175 0.005143 -vt 0.000174 0.328517 -vt 0.000174 0.282904 -vt 0.000174 0.161861 -vt 0.000175 0.116248 -vt 0.000175 0.106309 -vt 0.000175 0.060695 -vt 0.000174 0.439622 -vt 0.000174 0.394009 -vt 0.965135 0.111281 -vt 0.978548 0.115908 -vt 0.978548 0.162207 -vt 0.965135 0.166833 -vt 0.965135 0.055729 -vt 0.965134 0.389041 -vt 0.965134 0.444593 -vt 0.965134 0.222385 -vt 0.965135 0.000177 -vt 0.978548 0.227012 -vt 0.978548 0.273311 -vt 0.978547 0.338116 -vt 0.978547 0.384414 -vt 0.978548 0.004803 -vt 0.978548 0.051102 -vt 0.978547 0.171460 -vt 0.978547 0.217759 -vt 0.978547 0.282564 -vt 0.978547 0.328863 -vt 0.978548 0.393668 -vt 0.978548 0.439967 -vt 0.978548 0.060356 -vt 0.978548 0.106654 -vt 0.997340 0.397688 -vt 0.997340 0.435947 -vt 0.248162 0.982070 -vt 0.221109 0.955017 -vt 0.221109 0.916758 -vt 0.248162 0.889706 -vt 0.286421 0.889706 -vt 0.313473 0.916759 -vt 0.313473 0.955017 -vt 0.286420 0.982071 -vt 0.997340 0.064376 -vt 0.997340 0.102635 -vt 0.997340 0.119928 -vt 0.997341 0.158187 -vt 0.997340 0.231032 -vt 0.997340 0.269291 -vt 0.997339 0.342136 -vt 0.997339 0.380394 -vt 0.997340 0.008823 -vt 0.997340 0.047082 -vt 0.997339 0.175480 -vt 0.997339 0.213738 -vt 0.997340 0.286584 -vt 0.997340 0.324842 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.2513 0.8942 0.3704 -vn -1.0000 0.0000 0.0000 -vn -0.2513 -0.3704 0.8942 -vn -0.2513 0.8942 -0.3704 -vn -0.2513 -0.8942 -0.3704 -vn -0.2513 0.3704 0.8942 -vn -0.2513 0.3704 -0.8942 -vn -0.2513 -0.3704 -0.8942 -vn -0.2513 -0.8942 0.3704 -vn 0.8327 0.2119 -0.5115 -vn 0.8327 0.5115 0.2119 -vn 0.8327 -0.2119 0.5115 -vn 0.8327 -0.5115 -0.2119 -vn 0.8327 0.5115 -0.2119 -vn 0.8327 0.2119 0.5115 -vn 0.8327 -0.5115 0.2119 -vn 0.8327 -0.2119 -0.5115 -vn 0.5165 -0.7911 0.3277 -vn 1.0000 0.0000 0.0000 -vn 0.5165 -0.3277 -0.7911 -vn 0.5165 0.3277 -0.7911 -vn 0.5165 0.7911 0.3277 -vn 0.5165 -0.3277 0.7911 -vn 0.5165 -0.7911 -0.3277 -vn 0.5165 0.7911 -0.3277 -vn 0.5165 0.3277 0.7911 -s off -f 453/857/282 454/858/282 455/859/282 456/860/282 -f 456/860/283 455/859/283 457/861/283 458/862/283 -f 458/863/284 457/864/284 459/865/284 460/866/284 -f 460/866/285 459/865/285 461/867/285 462/868/285 -f 462/868/286 461/867/286 463/869/286 464/870/286 -f 464/870/287 463/869/287 465/871/287 466/872/287 -f 463/869/286 461/867/286 467/873/286 468/874/286 -f 466/872/288 465/871/288 469/875/288 470/876/288 -f 470/876/289 469/875/289 454/858/289 453/857/289 -f 464/870/290 466/872/290 471/877/290 472/878/290 -f 473/879/291 474/880/291 475/881/291 476/882/291 477/883/291 472/884/291 471/885/291 478/886/291 -f 460/866/292 462/868/292 477/887/292 476/888/292 -f 466/872/293 470/876/293 478/889/293 471/890/293 -f 456/860/294 458/862/294 475/891/294 474/892/294 -f 462/868/295 464/870/295 472/893/295 477/894/295 -f 470/876/296 453/857/296 473/895/296 478/896/296 -f 453/857/297 456/860/297 474/897/297 473/898/297 -f 458/863/298 460/866/298 476/899/298 475/900/298 -f 479/901/299 480/902/299 481/903/299 482/904/299 -f 454/858/289 469/875/289 480/902/289 479/901/289 -f 455/859/282 454/858/282 479/901/282 483/905/282 -f 459/865/284 457/864/284 484/906/284 485/907/284 -f 465/871/287 463/869/287 468/874/287 486/908/287 -f 461/867/285 459/865/285 485/907/285 467/873/285 -f 469/875/288 465/871/288 486/908/288 480/902/288 -f 457/861/283 455/859/283 483/905/283 484/909/283 -f 486/908/300 468/874/300 487/910/300 488/911/300 -f 467/873/301 485/907/301 489/912/301 490/913/301 -f 484/909/302 483/905/302 491/914/302 492/915/302 -f 480/902/303 486/908/303 488/916/303 481/917/303 -f 468/874/304 467/873/304 490/918/304 487/919/304 -f 485/907/305 484/906/305 492/920/305 489/921/305 -f 483/905/306 479/901/306 482/922/306 491/923/306 -f 489/921/307 492/920/307 493/924/307 494/925/307 -f 495/926/308 496/927/308 497/928/308 498/929/308 499/930/308 500/931/308 494/932/308 493/933/308 -f 491/923/309 482/922/309 496/934/309 495/935/309 -f 482/904/310 481/903/310 497/936/310 496/937/310 -f 488/911/311 487/910/311 499/938/311 498/939/311 -f 490/913/312 489/912/312 494/940/312 500/941/312 -f 492/915/313 491/914/313 495/942/313 493/943/313 -f 481/917/314 488/916/314 498/944/314 497/945/314 -f 487/919/315 490/918/315 500/946/315 499/947/315 -f 501/948/285 502/949/285 503/950/285 504/951/285 -f 502/949/284 505/952/284 506/953/284 503/950/284 -f 505/954/283 507/955/283 508/956/283 506/957/283 -f 507/955/282 509/958/282 510/959/282 508/956/282 -f 509/958/289 511/960/289 512/961/289 510/959/289 -f 511/960/288 513/962/288 514/963/288 512/961/288 -f 512/961/289 515/964/289 516/965/289 510/959/289 -f 513/962/287 517/966/287 518/967/287 514/963/287 -f 517/966/286 501/948/286 504/951/286 518/967/286 -f 511/960/293 519/968/293 520/969/293 513/962/293 -f 521/970/291 522/971/291 520/972/291 519/973/291 523/974/291 524/975/291 525/976/291 526/977/291 -f 507/955/297 524/978/297 523/979/297 509/958/297 -f 513/962/290 520/980/290 522/981/290 517/966/290 -f 502/949/298 526/982/298 525/983/298 505/952/298 -f 509/958/296 523/984/296 519/985/296 511/960/296 -f 517/966/295 522/986/295 521/987/295 501/948/295 -f 501/948/292 521/988/292 526/989/292 502/949/292 -f 505/954/294 525/990/294 524/991/294 507/955/294 -f 527/992/304 528/993/304 529/994/304 530/995/304 -f 504/951/286 527/992/286 530/995/286 518/967/286 -f 503/950/285 531/996/285 527/992/285 504/951/285 -f 508/956/283 532/997/283 533/998/283 506/957/283 -f 514/963/288 534/999/288 515/964/288 512/961/288 -f 510/959/282 516/965/282 532/997/282 508/956/282 -f 518/967/287 530/995/287 534/999/287 514/963/287 -f 506/953/284 533/1000/284 531/996/284 503/950/284 -f 534/999/303 535/1001/303 536/1002/303 515/964/303 -f 516/965/306 537/1003/306 538/1004/306 532/997/306 -f 533/1000/305 539/1005/305 540/1006/305 531/996/305 -f 530/995/300 529/1007/300 535/1008/300 534/999/300 -f 515/964/299 536/1009/299 537/1010/299 516/965/299 -f 532/997/302 538/1011/302 539/1012/302 533/998/302 -f 531/996/301 540/1013/301 528/1014/301 527/992/301 -f 538/1011/313 541/1015/313 542/1016/313 539/1012/313 -f 543/1017/308 542/1018/308 541/1019/308 544/1020/308 545/1021/308 546/1022/308 547/1023/308 548/1024/308 -f 540/1013/312 543/1025/312 548/1026/312 528/1014/312 -f 528/993/315 548/1027/315 547/1028/315 529/994/315 -f 535/1001/314 546/1029/314 545/1030/314 536/1002/314 -f 537/1003/309 544/1031/309 541/1032/309 538/1004/309 -f 539/1005/307 542/1033/307 543/1034/307 540/1006/307 -f 529/1007/311 547/1035/311 546/1036/311 535/1008/311 -f 536/1009/310 545/1037/310 544/1038/310 537/1010/310 -o AmmunitionCan_Cylinder.007 -v -1.114931 0.645018 2.605743 -v -0.705608 0.645018 2.607436 -v -0.705608 0.367434 2.722416 -v -1.115595 0.367434 2.722416 -v -0.705608 0.252454 3.000000 -v -1.115595 0.252454 3.000000 -v -0.705608 0.367434 3.277584 -v -1.115595 0.367434 3.277584 -v -0.705608 0.645018 3.392564 -v -1.115595 0.645018 3.392564 -v -0.705608 0.922602 3.277584 -v -1.115595 0.922602 3.277584 -v -0.705608 1.037581 3.000000 -v -1.115595 1.037581 3.000000 -v -0.705608 0.922602 2.722416 -v -1.115595 0.922602 2.722416 -v -1.680468 0.367434 2.722416 -v -1.680468 0.252454 3.000000 -v -1.696762 0.326183 3.000000 -v -1.696762 0.419567 2.774549 -v -1.696762 0.645018 3.318835 -v -1.696762 0.870468 3.225451 -v -1.717499 0.922175 3.277157 -v -1.717499 0.645018 3.391959 -v -1.680468 0.645018 3.392564 -v -1.680468 0.922602 3.277584 -v -1.680468 0.922602 2.722416 -v -1.680468 0.645018 2.607436 -v -1.696762 0.645018 2.681165 -v -1.696762 0.870469 2.774550 -v -1.680468 0.367434 3.277584 -v -1.696762 0.419567 3.225451 -v -1.680468 1.037582 3.000000 -v -1.696762 0.963853 3.000000 -v -1.717499 1.036977 3.000000 -v -1.717499 0.922175 2.722843 -v -1.807855 0.922175 2.722843 -v -1.807855 1.036977 3.000000 -v -1.717499 0.367861 3.277157 -v -1.717499 0.253059 3.000000 -v -1.717499 0.367861 2.722843 -v -1.717499 0.645018 2.608041 -v -1.807855 0.922175 3.277157 -v -1.827112 0.964049 3.000000 -v -1.827112 0.870607 3.225589 -v -1.807856 0.645018 3.391959 -v -1.807856 0.367861 3.277157 -v -1.807856 0.253059 3.000000 -v -1.807856 0.367861 2.722843 -v -1.807856 0.645018 2.608041 -v -1.827112 0.645018 2.680969 -v -1.827112 0.419429 2.774411 -v -1.850272 0.367220 2.722202 -v -1.850272 0.645018 2.607134 -v -1.827112 0.645018 3.319031 -v -1.827112 0.419429 3.225589 -v -1.827112 0.325987 3.000000 -v -1.827112 0.870607 2.774411 -v -1.850272 1.037884 3.000000 -v -1.850272 0.922816 2.722202 -v -1.929992 0.922816 2.722202 -v -1.929992 1.037884 3.000000 -v -1.850272 0.922816 3.277798 -v -1.850272 0.645018 3.392866 -v -1.850272 0.367220 3.277798 -v -1.850272 0.252152 3.000000 -v -1.929992 0.367220 2.722202 -v -1.929992 0.252152 3.000000 -v -2.043752 0.321683 3.000000 -v -2.043752 0.416385 2.771367 -v -1.929992 0.922816 3.277798 -v -1.929992 0.645018 3.392866 -v -1.929992 0.367220 3.277798 -v -1.929992 0.645018 2.607134 -v -2.043752 0.873651 2.771367 -v -2.043752 0.645018 2.676665 -v -2.121962 0.645018 2.774646 -v -2.121962 0.804367 2.840651 -v -2.043752 0.968353 3.000000 -v -2.043752 0.873651 3.228633 -v -2.043752 0.645018 3.323335 -v -2.043752 0.416385 3.228633 -v -2.121962 0.870372 3.000000 -v -2.179800 0.787147 2.857871 -v -2.179800 0.846019 3.000000 -v -2.121962 0.804367 3.159349 -v -2.121962 0.645018 3.225354 -v -2.121962 0.485669 3.159349 -v -2.121962 0.419664 3.000000 -v -2.121962 0.485669 2.840651 -v -2.179800 0.787147 3.142129 -v -2.179800 0.817735 3.000000 -v -2.179800 0.767148 3.122130 -v -2.179800 0.645018 3.201001 -v -2.179800 0.502889 3.142129 -v -2.179800 0.444017 3.000000 -v -2.179800 0.502889 2.857871 -v -2.179800 0.645018 2.798999 -v -2.179800 0.645018 2.827283 -v -2.179800 0.522888 2.877870 -v -2.139229 0.522888 2.877870 -v -2.139229 0.645018 2.827283 -v -2.179800 0.645018 3.172717 -v -2.179800 0.522888 3.122130 -v -2.179800 0.472301 3.000000 -v -2.179800 0.767148 2.877870 -v -2.139229 0.472301 3.000000 -v -2.139229 0.522888 3.122130 -v -2.139229 0.645018 3.172717 -v -2.139229 0.767148 3.122130 -v -2.139229 0.817735 3.000000 -v -2.139229 0.767148 2.877870 -v -1.416219 0.923800 2.721218 -v -1.416219 0.645018 2.605743 -v -1.415588 1.037581 3.000000 -v -1.416219 0.923800 3.278782 -v -1.416219 0.645018 3.394257 -v -1.416219 0.366236 3.278782 -v -1.415589 0.252454 3.000000 -v -1.416219 0.366236 2.721218 -v -1.161507 0.923800 2.721218 -v -1.161507 0.645018 2.605743 -v -1.161507 1.039275 3.000000 -v -1.161507 0.923800 3.278782 -v -1.161507 0.645018 3.394257 -v -1.161507 0.366236 3.278782 -v -1.161507 0.250761 3.000000 -v -1.161507 0.366236 2.721218 -v -1.379544 0.645018 2.605743 -v -1.379545 0.366236 2.721218 -v -1.379545 1.039275 3.000000 -v -1.379545 0.923800 3.278782 -v -1.382795 0.953877 3.308859 -v -1.382795 1.081811 3.000000 -v -1.319287 0.645018 2.590682 -v -1.221764 0.645018 2.590682 -v -1.221764 0.355586 2.710568 -v -1.319287 0.355586 2.710568 -v -1.158621 0.950501 2.694517 -v -1.158621 1.077036 3.000000 -v -1.379545 0.250761 3.000000 -v -1.319287 0.235700 3.000000 -v -1.316037 0.208225 3.000000 -v -1.316037 0.336159 2.691141 -v -1.221764 0.235700 3.000000 -v -1.158621 0.950501 3.305483 -v -1.158621 0.645018 3.432019 -v -1.379545 0.366236 3.278782 -v -1.379545 0.645018 3.394257 -v -1.382795 0.336159 3.308859 -v -1.382795 0.645018 3.436793 -v -1.221764 0.355586 3.289432 -v -1.319287 0.355586 3.289432 -v -1.221764 0.934450 2.710568 -v -1.221764 1.054336 3.000000 -v -1.224650 1.077036 3.000000 -v -1.224650 0.950501 2.694517 -v -1.382795 0.336159 2.691141 -v -1.382795 0.208225 3.000000 -v -1.221764 0.645018 3.409318 -v -1.319287 0.645018 3.409318 -v -1.158621 0.339535 3.305483 -v -1.158621 0.212999 3.000000 -v -1.319287 1.054336 3.000000 -v -1.319287 0.934450 2.710568 -v -1.316037 0.953877 2.691141 -v -1.316037 1.081811 3.000000 -v -1.221764 0.934450 3.289432 -v -1.319287 0.934450 3.289432 -v -1.224650 0.645018 3.432019 -v -1.224650 0.950501 3.305483 -v -1.316037 0.953877 3.308859 -v -1.316037 0.645018 3.436793 -v -1.158621 0.339535 2.694517 -v -1.158621 0.645018 2.567981 -v -1.379545 0.923800 2.721218 -v -1.382795 0.953877 2.691141 -v -1.224650 0.212999 3.000000 -v -1.224650 0.339535 3.305483 -v -1.316037 0.336159 3.308859 -v -1.224650 0.645018 2.567981 -v -1.224650 0.339535 2.694517 -v -1.382795 0.645018 2.563207 -v -1.316036 0.645018 2.563207 -vt 0.333771 0.122601 -vt 0.250827 0.123696 -vt 0.249913 0.062860 -vt 0.333162 0.061441 -vt 0.248762 0.002028 -vt 0.331770 0.000458 -vt 0.331178 0.489363 -vt 0.248762 0.487236 -vt 0.250204 0.426885 -vt 0.333040 0.428574 -vt 0.251228 0.366447 -vt 0.334273 0.367529 -vt 0.251779 0.305898 -vt 0.334946 0.306336 -vt 0.251870 0.245242 -vt 0.335158 0.245008 -vt 0.387778 0.000111 -vt 0.448672 0.000111 -vt 0.491729 0.043169 -vt 0.491729 0.104062 -vt 0.448671 0.147120 -vt 0.387778 0.147120 -vt 0.344720 0.104062 -vt 0.344720 0.043169 -vt 0.251510 0.184543 -vt 0.334843 0.183746 -vt 0.184792 0.411952 -vt 0.180019 0.475285 -vt 0.164389 0.467565 -vt 0.169068 0.411085 -vt 0.171376 0.116511 -vt 0.173907 0.173123 -vt 0.158223 0.172770 -vt 0.156306 0.116051 -vt 0.187710 0.116136 -vt 0.188188 0.173263 -vt 0.187862 0.290744 -vt 0.187045 0.350935 -vt 0.169556 0.350164 -vt 0.173074 0.290555 -vt 0.169093 0.410760 -vt 0.169539 0.350497 -vt 0.182936 0.002420 -vt 0.185636 0.059963 -vt 0.171429 0.060361 -vt 0.168682 0.009053 -vt 0.188834 0.231566 -vt 0.171901 0.231236 -vt 0.173902 0.173419 -vt 0.171377 0.116200 -vt 0.171433 0.060647 -vt 0.173086 0.290248 -vt 0.171893 0.231559 -vt 0.156248 0.230716 -vt 0.156867 0.289505 -vt 0.136903 0.289718 -vt 0.137407 0.231137 -vt 0.156897 0.060302 -vt 0.156891 0.004402 -vt 0.151894 0.409417 -vt 0.153421 0.349240 -vt 0.147572 0.472946 -vt 0.138952 0.173384 -vt 0.121938 0.230032 -vt 0.123479 0.172751 -vt 0.138214 0.116866 -vt 0.138770 0.061156 -vt 0.138353 0.003891 -vt 0.132267 0.409089 -vt 0.134072 0.349295 -vt 0.126815 0.471069 -vt 0.118159 0.348200 -vt 0.116549 0.407518 -vt 0.099353 0.406365 -vt 0.101957 0.346731 -vt 0.123291 0.116133 -vt 0.123243 0.060809 -vt 0.114079 0.464786 -vt 0.116522 0.407844 -vt 0.120912 0.288422 -vt 0.121921 0.230342 -vt 0.123493 0.172442 -vt 0.123281 0.116431 -vt 0.123249 0.060512 -vt 0.123844 0.009530 -vt 0.118183 0.347881 -vt 0.120892 0.288742 -vt 0.106188 0.229161 -vt 0.104711 0.287384 -vt 0.088322 0.287014 -vt 0.090113 0.228932 -vt 0.107837 0.171744 -vt 0.108130 0.115645 -vt 0.108841 0.060451 -vt 0.096873 0.470749 -vt 0.108910 0.003319 -vt 0.083013 0.405933 -vt 0.079907 0.469925 -vt 0.052378 0.462912 -vt 0.054935 0.410246 -vt 0.092029 0.171671 -vt 0.092656 0.115769 -vt 0.093106 0.060660 -vt 0.092149 0.003387 -vt 0.085408 0.346282 -vt 0.062313 0.290993 -vt 0.059914 0.339771 -vt 0.036698 0.331221 -vt 0.038369 0.297224 -vt 0.063245 0.281096 -vt 0.064719 0.233294 -vt 0.067796 0.166452 -vt 0.068312 0.120444 -vt 0.068137 0.056008 -vt 0.067350 0.008871 -vt 0.057308 0.399614 -vt 0.059278 0.350520 -vt 0.065403 0.223033 -vt 0.066980 0.175906 -vt 0.068752 0.110697 -vt 0.069122 0.065341 -vt 0.041387 0.239824 -vt 0.040360 0.273141 -vt 0.028428 0.270971 -vt 0.029344 0.241254 -vt 0.042861 0.215130 -vt 0.043960 0.182284 -vt 0.046882 0.103646 -vt 0.047140 0.072034 -vt 0.027306 0.453697 -vt 0.029088 0.416990 -vt 0.045633 0.159231 -vt 0.045993 0.127165 -vt 0.045231 0.049246 -vt 0.044683 0.016394 -vt 0.033874 0.391223 -vt 0.035247 0.357006 -vt 0.032082 0.183664 -vt 0.031102 0.212960 -vt 0.026194 0.210732 -vt 0.027037 0.185558 -vt 0.034115 0.157369 -vt 0.034435 0.128769 -vt 0.033381 0.047668 -vt 0.032891 0.018366 -vt 0.021636 0.388880 -vt 0.022861 0.358361 -vt 0.024556 0.328782 -vt 0.026047 0.298459 -vt 0.035522 0.101845 -vt 0.035752 0.073650 -vt 0.014195 0.451072 -vt 0.015784 0.418332 -vt 0.017591 0.360300 -vt 0.016539 0.386525 -vt 0.008490 0.386202 -vt 0.009543 0.359977 -vt 0.030749 0.099822 -vt 0.030947 0.075594 -vt 0.008745 0.448499 -vt 0.010111 0.420366 -vt 0.023445 0.268724 -vt 0.024232 0.243190 -vt 0.029279 0.155303 -vt 0.029555 0.130726 -vt 0.028369 0.045690 -vt 0.027949 0.020511 -vt 0.019510 0.326396 -vt 0.020791 0.300340 -vt 0.363665 0.147342 -vt 0.390456 0.147342 -vt 0.409400 0.166287 -vt 0.409400 0.193078 -vt 0.390456 0.212022 -vt 0.363664 0.212022 -vt 0.344720 0.193078 -vt 0.344720 0.166286 -vt 0.011513 0.326003 -vt 0.012794 0.299946 -vt 0.018468 0.210474 -vt 0.019311 0.185300 -vt 0.023313 0.099761 -vt 0.023511 0.075533 -vt 0.000111 0.448080 -vt 0.001477 0.419947 -vt 0.015608 0.268483 -vt 0.016395 0.242948 -vt 0.021737 0.155218 -vt 0.022012 0.130642 -vt 0.020642 0.045819 -vt 0.020221 0.020640 -vt 0.241179 0.291205 -vt 0.241048 0.352210 -vt 0.241424 0.231328 -vt 0.239656 0.172428 -vt 0.238302 0.114877 -vt 0.236112 0.057792 -vt 0.234041 0.000494 -vt 0.239378 0.414394 -vt 0.236869 0.477863 -vt 0.344164 0.183645 -vt 0.343181 0.122473 -vt 0.344498 0.244994 -vt 0.344304 0.306406 -vt 0.343563 0.367674 -vt 0.342352 0.428813 -vt 0.340421 0.489783 -vt 0.342493 0.061278 -vt 0.341044 0.000111 -vt 0.248540 0.352310 -vt 0.247025 0.414653 -vt 0.518660 0.274425 -vt 0.518660 0.335581 -vt 0.510669 0.338880 -vt 0.510669 0.271126 -vt 0.618935 0.542365 -vt 0.618935 0.562130 -vt 0.555443 0.562130 -vt 0.555443 0.542365 -vt 0.518975 0.265234 -vt 0.518996 0.204078 -vt 0.526092 0.201151 -vt 0.526069 0.268165 -vt 0.244474 0.478305 -vt 0.491952 0.065734 -vt 0.491951 0.002242 -vt 0.497138 0.000111 -vt 0.497138 0.067865 -vt 0.491951 0.562130 -vt 0.491951 0.542365 -vt 0.518929 0.399261 -vt 0.518950 0.338104 -vt 0.526046 0.335178 -vt 0.526022 0.402192 -vt 0.240901 0.000111 -vt 0.243075 0.057522 -vt 0.518660 0.409933 -vt 0.518660 0.471090 -vt 0.510668 0.474388 -vt 0.510668 0.406634 -vt 0.999889 0.542365 -vt 0.999889 0.562130 -vt 0.936397 0.562130 -vt 0.936397 0.542365 -vt 0.543764 0.202918 -vt 0.543742 0.266410 -vt 0.539451 0.268169 -vt 0.539474 0.201156 -vt 0.245271 0.114659 -vt 0.518659 0.003410 -vt 0.518659 0.064565 -vt 0.510668 0.067865 -vt 0.510667 0.000111 -vt 0.872904 0.562130 -vt 0.872904 0.542365 -vt 0.518882 0.533287 -vt 0.518903 0.472131 -vt 0.525999 0.469205 -vt 0.525976 0.536218 -vt 0.246721 0.172240 -vt 0.491952 0.268995 -vt 0.491952 0.205503 -vt 0.497139 0.203372 -vt 0.497139 0.271126 -vt 0.809412 0.562130 -vt 0.809412 0.542365 -vt 0.543718 0.336945 -vt 0.543696 0.400437 -vt 0.539405 0.402196 -vt 0.539428 0.335183 -vt 0.248540 0.231225 -vt 0.491952 0.404503 -vt 0.491952 0.341011 -vt 0.497139 0.338880 -vt 0.497138 0.406634 -vt 0.745919 0.562130 -vt 0.745919 0.542365 -vt 0.519021 0.131207 -vt 0.519042 0.070051 -vt 0.526138 0.067125 -vt 0.526115 0.134138 -vt 0.248518 0.291219 -vt 0.518660 0.206671 -vt 0.518660 0.267827 -vt 0.510668 0.203372 -vt 0.682427 0.562130 -vt 0.682427 0.542365 -vt 0.543671 0.470972 -vt 0.543649 0.534464 -vt 0.539358 0.536223 -vt 0.539381 0.469210 -vt 0.491951 0.540012 -vt 0.491952 0.476519 -vt 0.497138 0.474388 -vt 0.497138 0.542143 -vt 0.543810 0.068891 -vt 0.543788 0.132383 -vt 0.539497 0.134142 -vt 0.539520 0.067129 -vt 0.526161 0.000111 -vt 0.539543 0.000116 -vt 0.543833 0.001878 -vt 0.543811 0.065370 -vt 0.543695 0.403959 -vt 0.543672 0.467451 -vt 0.519044 0.064193 -vt 0.519065 0.003037 -vt 0.543741 0.269931 -vt 0.543719 0.333424 -vt 0.518906 0.466274 -vt 0.518927 0.405118 -vt 0.543787 0.135905 -vt 0.543765 0.199397 -vt 0.518952 0.332247 -vt 0.518973 0.271091 -vt 0.518998 0.198220 -vt 0.519019 0.137064 -vt 0.510668 0.135618 -vt 0.497138 0.135618 -vt 0.510668 0.542143 -vt 0.491952 0.472258 -vt 0.491952 0.408765 -vt 0.518660 0.138917 -vt 0.518660 0.200073 -vt 0.491952 0.336749 -vt 0.491952 0.273257 -vt 0.491952 0.201241 -vt 0.491952 0.137749 -vt 0.518660 0.071163 -vt 0.518660 0.132319 -vt 0.518660 0.477687 -vt 0.518660 0.538844 -vt 0.491952 0.133487 -vt 0.491952 0.069996 -vt 0.518660 0.342179 -vt 0.518660 0.403335 -vn 0.0019 -0.3851 -0.9229 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0019 0.3851 -0.9229 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7903 0.0000 -0.6128 +vn 0.0000 0.0000 1.0000 +vn -0.7903 0.0000 0.6127 +vn -0.9545 -0.2981 -0.0000 +vn -0.9546 0.2980 0.0000 +vn 0.9792 0.2029 0.0000 +vn 0.0101 0.0000 0.9999 +vn 0.8891 0.0000 -0.4576 +vn 0.8892 0.0000 0.4576 +vn 0.9792 -0.2030 -0.0000 +vn 0.0423 -0.9991 0.0000 +vn 0.0078 1.0000 0.0000 +vn 0.0101 0.0000 -0.9999 +vn -0.7409 -0.6716 0.0000 +vn -0.7903 0.0000 -0.6127 +vn -0.9546 -0.2980 0.0000 +vn 0.9792 0.2030 0.0000 +vn 0.8891 0.0000 0.4576 +vn 0.8892 0.0000 -0.4576 +vn -0.4347 -0.3446 0.8320 +vn -0.4347 0.8320 -0.3446 +vn -0.4347 -0.8320 -0.3446 +vn -0.4347 0.3446 0.8320 +vn -0.4347 0.3446 -0.8320 +vn -0.4347 -0.3446 -0.8320 +vn -0.4347 -0.8320 0.3446 +vn -0.4347 0.8320 0.3446 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.8937 -0.4486 0.0000 +vn 0.0000 -0.3562 -0.9344 +vn -0.1012 -0.3652 0.9254 +vn 0.4263 -0.2762 0.8614 +vn 0.8392 -0.5438 0.0000 +vn -0.2672 -0.9636 0.0000 +vn -0.9926 -0.1214 0.0000 +vn 0.0037 1.0000 0.0000 +vn -0.1012 -0.3652 -0.9254 +vn 0.4263 -0.2762 -0.8614 +vn 0.0000 -0.3562 0.9344 +vn -0.0013 -0.3562 -0.9344 +vn -0.5737 -0.2880 -0.7667 +vn -0.5737 -0.2880 0.7667 +vn 0.8524 -0.5228 0.0000 +vn 0.5062 -0.3105 0.8046 +vn 0.5044 -0.3120 0.8051 +vn -0.0013 -0.3562 0.9344 +vn -0.0037 -1.0000 0.0000 +vn 1.0000 -0.0009 -0.0023 +vn 1.0000 -0.0023 -0.0008 +vn 1.0000 -0.0093 -0.0016 +vn 1.0000 -0.0074 0.0000 +vn 1.0000 -0.0072 -0.0024 +vn 0.5062 -0.3105 -0.8046 +vn 0.0009 0.0023 1.0000 +vn -0.0019 0.0015 1.0000 +vn 0.0020 -0.0014 -1.0000 +vn 0.0020 0.0015 -1.0000 +vn -0.0480 -0.5123 0.8575 +vn 0.0000 0.5189 0.8549 +vn -0.0444 -0.5183 -0.8540 +vn 0.0000 0.5189 -0.8549 +vn 0.4606 -0.4605 0.7588 +vn 0.4606 0.4606 0.7588 +vn 0.4606 -0.4605 -0.7588 +vn 0.4606 0.4606 -0.7588 +vn -0.2276 -0.4268 0.8752 +vn -0.0458 0.4996 0.8650 +vn -0.2050 -0.5011 -0.8407 +vn -0.0470 0.5125 -0.8574 +vn -0.7527 -0.3520 0.5563 +vn -0.6638 0.5609 0.4947 +vn -0.7527 -0.3520 -0.5563 +vn -0.7340 0.3556 -0.5787 +vn -0.0854 -0.9963 -0.0000 +vn 0.0000 -0.5188 -0.8549 +vn 0.5189 0.0000 -0.8549 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.5189 0.0000 0.8549 +vn 0.0000 -0.5188 0.8549 +vn -0.3786 -0.9256 -0.0000 +vn -0.0584 0.9983 0.0000 +vn -0.0883 -0.5113 0.8549 +vn -0.0883 -0.5113 -0.8549 +vn -0.9058 -0.4236 -0.0000 +vn -0.7633 0.0000 0.6461 +vn -0.7634 0.6451 0.0329 +vn -0.7633 0.0000 -0.6461 +vn -0.1702 -0.9854 -0.0000 +vn 0.0000 -0.2599 0.9656 +vn 0.0000 -0.2599 -0.9656 +vn -0.7300 -0.6835 -0.0000 +vn 0.7300 -0.6835 -0.0000 +vn 0.9483 -0.3175 0.0000 +vn -0.9482 0.3175 0.0075 +vn -0.0235 0.9997 0.0002 +vn -0.0233 0.9997 0.0014 +vn -0.0222 0.9998 0.0003 +vn 0.7875 0.6163 0.0000 +vn -0.7875 -0.6163 0.0062 +vn 0.8412 -0.5408 0.0000 +vn -0.5133 -0.8582 0.0037 +vn -0.5122 -0.8589 0.0040 +vn -0.5122 -0.8588 0.0053 +vn -0.0158 0.0101 -0.9998 +vn -0.0145 0.0101 -0.9998 +vn 0.0159 -0.0095 0.9998 +vn 0.0152 -0.0106 0.9998 +vn 0.0171 -0.0100 0.9998 +vn 0.0225 -0.9997 -0.0002 +vn 0.0238 -0.9997 -0.0002 +vn -0.8588 0.5123 0.0068 +vn -0.0128 0.0070 -0.9999 +vn -0.0116 0.0069 -0.9999 +vn 0.5115 0.8593 -0.0050 +vn 0.5122 0.8589 -0.0040 +vn 0.0115 -0.0056 0.9999 +vn 0.0116 -0.0069 0.9999 +vn 0.9772 -0.2122 0.0000 +vn 0.8316 0.5554 0.0000 +vn 0.9921 0.1251 0.0000 +vn -0.9251 -0.3798 0.0000 +vn 0.6540 -0.7565 0.0000 +vn -0.5188 -0.8549 0.0000 +vn -0.9946 -0.1041 0.0000 +vn 0.0004 1.0000 0.0000 +vn 0.8662 0.4997 0.0000 +vn 0.7825 0.4514 0.4290 +vn -0.8662 -0.4997 0.0000 +vn -0.0004 -1.0000 0.0000 +vn -0.8658 0.5003 0.0000 +vn 0.0003 0.9033 0.4290 +vn -0.7825 -0.4514 0.4290 +vn 0.7821 -0.4519 0.4290 +vn -0.7821 0.4519 0.4290 +vn -0.0003 -0.9033 0.4290 +vn 0.0003 0.9326 0.3608 +vn -0.8079 -0.4660 0.3608 +vn 0.8075 -0.4666 0.3608 +vn -0.8075 0.4666 0.3608 +vn -0.0003 -0.9326 0.3609 +vn 0.8079 0.4660 0.3608 +vn 0.8658 -0.5003 0.0000 +vn 0.7825 0.4514 -0.4290 +vn 0.0003 0.9033 -0.4290 +vn -0.7825 -0.4514 -0.4290 +vn 0.7821 -0.4519 -0.4290 +vn -0.7821 0.4519 -0.4290 +vn -0.0003 -0.9033 -0.4290 +vn 0.0003 0.9326 -0.3608 +vn -0.8079 -0.4660 -0.3608 +vn 0.8075 -0.4666 -0.3608 +vn -0.8075 0.4666 -0.3608 +vn -0.0003 -0.9326 -0.3608 +vn 0.8079 0.4660 -0.3608 +vn 0.4472 -0.4390 -0.7793 +vn 0.4472 0.4390 0.7793 +vn -0.4472 0.4390 0.7793 +vn -0.4472 -0.4390 -0.7793 +vn 0.4472 0.4554 -0.7698 +vn 0.4472 -0.4554 0.7698 +vn -0.4472 -0.4554 0.7698 +vn -0.4472 0.4554 -0.7698 +vn 0.4472 0.8944 0.0095 +vn 0.4472 -0.8944 -0.0095 +vn -0.4472 -0.8944 -0.0095 +vn -0.4472 0.8944 0.0095 +vn 0.8637 0.5040 -0.0008 +vn 0.8628 0.5055 0.0000 +vn 0.8618 0.5073 0.0000 +vn 0.8692 -0.4944 0.0000 +vn 0.0064 -1.0000 0.0000 +vn -0.8628 -0.5056 0.0000 +vn -0.8692 0.4944 0.0000 +vn -0.8700 0.4931 0.0013 +vn -0.9999 -0.0128 -0.0020 +vn -0.9999 -0.0129 0.0000 +vn -0.9999 -0.0119 0.0017 +vn -0.0052 1.0000 -0.0016 +vn -0.0063 1.0000 0.0020 +vn -0.0044 1.0000 0.0000 +vn -0.0106 0.9999 0.0000 +vn 0.0018 0.0009 -1.0000 +vn -0.0014 0.0014 -1.0000 +vn 0.9999 0.0130 0.0020 +vn 0.9999 0.0129 0.0000 +vn 0.9999 0.0129 -0.0020 +vn 0.0014 0.0015 1.0000 +vn 0.4867 -0.1145 -0.8660 +vn 0.9734 -0.2290 0.0000 +vn 0.4867 -0.1145 0.8660 +vn -0.4867 0.1145 0.8660 +vn 0.9982 0.0594 0.0000 +vn -0.9734 0.2290 0.0000 +vn -0.4867 0.1145 -0.8660 +vn 0.4037 -0.3811 0.8318 +vn 0.2290 0.9734 0.0000 +vn -0.8670 0.4982 0.0000 +vn 0.5319 0.1691 -0.8297 +vn 0.5319 0.1691 0.8297 +vn -0.4007 0.3885 -0.8297 +vn -0.4007 0.3885 0.8297 +vn -0.2290 -0.9734 0.0000 +vn -0.5312 -0.1612 -0.8317 +vn -0.5312 -0.1612 0.8318 +vn 0.8711 -0.4911 0.0000 +vn -0.9987 -0.0512 0.0000 +vn 0.4037 -0.3811 -0.8318 +vn -0.5339 -0.1952 -0.8227 +vn -0.5339 -0.1952 0.8227 +vn 0.8533 -0.5215 0.0000 +vn -0.9963 -0.0864 0.0000 +vn 0.3909 -0.4127 0.8227 +vn 0.3909 -0.4127 -0.8227 +vn -0.7037 0.7104 -0.0137 +vn -0.0946 -0.0018 -0.9955 +vn 0.1755 0.9845 0.0000 +vn -0.5947 0.1299 0.7934 +vn -0.2277 -0.9737 0.0000 +vn 0.9224 0.3863 0.0000 +vn -0.3526 0.9358 0.0000 +vn 0.1465 0.0029 -0.9892 +vn 0.1465 0.0029 0.9892 +vn -0.1755 -0.9845 0.0000 +vn 0.7339 0.0143 0.6791 +vn 0.4147 0.0081 -0.9099 +vn 0.4147 0.0081 0.9099 +vn 0.3526 -0.9358 0.0000 +vn 0.9998 0.0195 0.0000 +vn 0.8889 -0.4581 0.0000 +vn -0.5700 0.8216 0.0000 +vn 0.7339 0.0143 -0.6791 +vn -0.2763 0.0326 -0.9605 +vn -0.7114 -0.7027 -0.0101 +vn -0.3230 0.0437 -0.9454 +vn -0.3328 0.0443 0.9420 +vn -0.9513 0.3072 -0.0249 +vn -0.6278 0.0742 0.7748 +vn -0.8793 0.4759 -0.0195 +vn -0.9921 -0.1238 -0.0203 +vn -0.9819 0.1873 -0.0273 +vn -0.9993 0.0260 -0.0253 +vn -0.5866 0.0662 -0.8072 +vn -0.4667 0.0527 0.8828 +vn 0.5257 0.8507 0.0000 +vn 0.4767 0.8791 0.0000 +vn 0.8418 0.5398 0.0000 +vn -0.0946 -0.0018 0.9955 +vn 0.0462 -0.0068 0.9989 +vn -0.0453 0.0051 0.9990 +vn -0.4274 0.1109 -0.8972 +vn -0.0453 0.0051 -0.9990 +vn 0.0462 -0.0068 -0.9989 +vn -0.6173 0.1367 -0.7748 +vn -0.5082 0.1382 -0.8501 +vn -0.6709 -0.7415 -0.0093 +vn 0.8774 0.4798 0.0000 +vn 0.9846 -0.1746 0.0000 +vn -0.4274 0.1109 0.8972 +vn -0.5082 0.1382 0.8501 +vn -0.5609 0.0000 0.8279 +vn 0.3824 -0.2113 -0.8995 +vn -0.0010 -0.0003 1.0000 +vn 0.3920 0.0000 -0.9200 +vn 0.0003 1.0000 -0.0010 +vn 0.0005 1.0000 -0.0009 +vn 0.3904 -0.0867 -0.9166 +vn 0.3902 -0.0862 -0.9167 +vn -0.5529 0.0976 0.8275 +vn 0.3824 -0.2113 0.8995 +vn -0.5529 0.0976 -0.8275 +vn 0.0004 -0.0004 1.0000 +vn -0.0005 -0.0002 -1.0000 +vn -0.5505 0.1181 0.8264 +vn 0.0003 0.0005 1.0000 +vn -0.6763 -0.7366 0.0000 +vn -0.5474 0.1418 -0.8247 +vn 0.3920 0.0000 0.9200 +vn 0.3917 -0.0010 0.9201 +vn -0.5609 -0.0000 -0.8279 +vn -0.9915 0.1302 0.0000 +vn -0.9778 0.2098 0.0000 +vn -0.9848 0.1738 0.0000 +vn -0.4100 0.9121 0.0000 +vn -0.5554 0.0729 0.8284 +vn 0.0262 -0.9997 0.0000 +vn 0.0797 0.9968 0.0000 +vn -0.5554 0.0729 -0.8284 +vn -0.5505 0.1181 -0.8264 +vn -0.1957 0.4353 0.8788 +vn 0.8752 -0.4837 -0.0000 +vn 0.9778 -0.2098 0.0000 +vn 0.9779 -0.2091 -0.0001 +vn 0.9765 -0.2154 0.0006 +vn 0.9765 -0.2157 0.0000 +vn 0.9765 -0.2157 0.0006 +vn 0.9969 0.0785 0.0000 +vn 0.3899 0.1121 0.9140 +vn 0.3903 -0.0837 0.9169 +vn 0.3906 -0.0843 0.9167 +vn -0.0053 -1.0000 0.0000 +vn 0.4679 0.0369 -0.8830 +vn 0.3903 -0.0837 -0.9169 +vn 0.3897 -0.0838 -0.9171 +vn 0.3903 -0.0832 -0.9169 +vn 0.0050 1.0000 -0.0007 +vn 0.0043 1.0000 0.0000 +vn 0.0035 1.0000 -0.0007 +vn 0.3898 -0.0859 0.9169 +vn 0.3902 -0.0862 0.9167 +vn 0.3906 -0.0858 0.9165 +vn 0.0000 -0.3875 -0.9219 +vn 0.0000 0.3875 -0.9219 vn -0.9726 -0.2149 -0.0890 vn 0.9560 0.1123 0.2711 vn -0.9726 0.0890 0.2149 @@ -2947,8 +4929,6 @@ vn 0.9560 -0.1123 0.2711 vn 0.9560 -0.2711 -0.1123 vn 0.9560 0.2711 -0.1123 vn -0.9615 0.2539 0.1052 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.3827 -0.9239 vn 0.9469 -0.1230 -0.2970 vn -0.9615 -0.1052 0.2539 vn -0.9615 -0.2539 -0.1052 @@ -2981,7 +4961,6 @@ vn -0.7567 0.6040 -0.2502 vn -0.7567 0.2502 0.6040 vn -0.7567 -0.6040 0.2502 vn -0.7567 -0.2502 -0.6040 -vn -1.0000 0.0000 0.0000 vn -0.3625 0.3567 0.8610 vn -0.3625 -0.8610 0.3567 vn -0.3625 -0.3567 -0.8610 @@ -2990,3507 +4969,3521 @@ vn -0.3625 0.8610 0.3567 vn -0.3625 -0.3567 0.8610 vn -0.3625 -0.8610 -0.3567 vn -0.0059 0.3827 -0.9239 -vn -0.0030 0.9249 -0.3803 -vn -0.0030 0.9249 0.3803 vn -0.0059 0.3827 0.9239 vn -0.0059 -0.3827 0.9239 -vn -0.0030 -0.9249 0.3803 -vn -0.0030 -0.9249 -0.3803 vn -0.0059 -0.3827 -0.9239 -vn 0.0169 0.3850 -0.9227 +vn 0.0341 0.3825 -0.9233 vn 0.0341 0.9233 -0.3825 vn 0.0341 0.9233 0.3825 vn 0.0341 0.3825 0.9233 vn 0.0341 -0.3825 0.9233 vn 0.0341 -0.9233 0.3825 vn 0.0341 -0.9233 -0.3825 -vn 0.0169 -0.3850 -0.9227 +vn 0.0341 -0.3825 -0.9233 vn -0.9966 -0.0761 -0.0315 vn 0.9966 -0.0762 0.0316 -vn -0.0215 -0.9247 -0.3802 +vn 0.0000 -0.9259 -0.3779 vn 0.9919 0.1173 0.0486 vn 0.9966 -0.0316 -0.0762 -vn -0.0215 -0.9247 0.3802 +vn 0.0000 -0.9259 0.3779 vn -0.9966 0.0315 -0.0761 vn -0.9907 -0.1260 0.0522 vn -0.9966 0.0761 0.0315 -vn 0.9966 0.0762 -0.0316 +vn 0.9966 0.0762 -0.0315 vn 0.9919 -0.1173 0.0486 vn -0.9907 -0.0522 -0.1260 -vn -0.0215 0.9247 0.3802 +vn 0.0000 0.9259 0.3779 vn 0.9919 -0.0486 -0.1173 vn 0.9966 0.0316 0.0762 -vn -0.0215 0.9247 -0.3802 +vn 0.0000 0.9259 -0.3779 vn -0.9966 -0.0761 0.0315 -vn -0.9907 0.1260 -0.0522 +vn -0.9907 0.1259 -0.0522 vn 0.9919 0.1173 -0.0486 vn -0.9907 0.0522 0.1260 -vn -0.9907 0.1260 0.0522 -vn -0.9907 0.0522 -0.1260 +vn -0.9907 0.1259 0.0522 +vn -0.9907 0.0522 -0.1259 vn 0.9966 0.0762 0.0316 -vn -0.9907 -0.1260 -0.0522 +vn -0.9907 -0.1259 -0.0522 vn 0.9966 0.0316 -0.0762 -vn -0.9907 -0.0522 0.1260 +vn -0.9907 -0.0522 0.1259 vn 0.9966 -0.0762 -0.0316 vn 0.9966 -0.0316 0.0762 vn 0.9919 0.0486 -0.1173 -vn -0.9966 -0.0315 0.0762 +vn -0.9966 -0.0316 0.0762 vn 0.9919 -0.1173 -0.0486 vn 0.9919 -0.0486 0.1173 -vn -0.9966 0.0315 0.0762 -vn -0.9966 0.0761 -0.0315 -vn 0.9919 0.0486 0.1173 +vn -0.9966 0.0315 0.0761 +vn -0.9966 0.0762 -0.0315 +vn 0.9919 0.0486 0.1174 vn -0.9966 -0.0315 -0.0761 -s off -f 549/1039/316 550/1040/316 551/1041/316 552/1042/316 -f 552/1042/317 551/1041/317 553/1043/317 554/1044/317 -f 554/1045/318 553/1046/318 555/1047/318 556/1048/318 -f 556/1048/319 555/1047/319 557/1049/319 558/1050/319 -f 558/1050/320 557/1049/320 559/1051/320 560/1052/320 -f 560/1052/321 559/1051/321 561/1053/321 562/1054/321 -f 551/1055/322 550/1056/322 563/1057/322 561/1058/322 559/1059/322 557/1060/322 555/1061/322 553/1062/322 -f 562/1054/323 561/1053/323 563/1063/323 564/1064/323 -f 564/1064/324 563/1063/324 550/1040/324 549/1039/324 -f 565/1065/325 566/1066/325 567/1067/325 568/1068/325 -f 569/1069/326 570/1070/326 571/1071/326 572/1072/326 -f 573/1073/327 574/1074/327 570/1070/327 569/1069/327 -f 575/1075/328 576/1076/328 577/1077/328 578/1078/328 -f 576/1076/329 565/1065/329 568/1079/329 577/1080/329 -f 566/1081/330 579/1082/330 580/1083/330 567/1084/330 -f 574/1074/331 581/1085/331 582/1086/331 570/1087/331 -f 579/1082/332 573/1073/332 569/1088/332 580/1089/332 -f 581/1085/333 575/1075/333 578/1090/333 582/1091/333 -f 583/1092/323 584/1093/323 585/1094/323 586/1095/323 -f 567/1084/334 580/1083/334 587/1096/334 588/1097/334 -f 577/1080/335 568/1079/335 589/1098/335 590/1099/335 -f 578/1078/336 577/1077/336 590/1099/336 584/1093/336 -f 570/1087/337 582/1086/337 583/1092/337 571/1071/337 -f 580/1089/338 569/1088/338 572/1072/338 587/1096/338 -f 568/1068/339 567/1067/339 588/1100/339 589/1098/339 -f 582/1091/340 578/1090/340 584/1093/340 583/1092/340 -f 591/1101/341 586/1095/341 592/1102/341 593/1103/341 -f 572/1072/320 571/1071/320 591/1101/320 594/1104/320 -f 588/1097/318 587/1096/318 595/1105/318 596/1106/318 -f 590/1099/342 589/1098/342 597/1107/342 598/1108/342 -f 584/1093/343 590/1099/343 598/1108/343 585/1094/343 -f 571/1071/321 583/1092/321 586/1095/321 591/1101/321 -f 587/1096/319 572/1072/319 594/1104/319 595/1105/319 -f 589/1098/317 588/1100/317 596/1109/317 597/1107/317 -f 599/1110/344 600/1111/344 601/1112/344 602/1113/344 -f 595/1105/345 594/1104/345 603/1114/345 604/1115/345 -f 597/1107/346 596/1109/346 605/1116/346 600/1117/346 -f 586/1095/347 585/1094/347 606/1118/347 592/1119/347 -f 594/1104/348 591/1101/348 593/1120/348 603/1121/348 -f 596/1106/349 595/1105/349 604/1122/349 605/1123/349 -f 598/1108/350 597/1107/350 600/1111/350 599/1110/350 -f 585/1094/351 598/1108/351 599/1124/351 606/1125/351 -f 607/1126/323 608/1127/323 609/1128/323 610/1129/323 -f 606/1125/352 599/1124/352 602/1113/352 608/1127/352 -f 593/1103/353 592/1102/353 607/1126/353 611/1130/353 -f 604/1115/354 603/1114/354 612/1131/354 613/1132/354 -f 600/1117/355 605/1116/355 614/1133/355 601/1112/355 -f 592/1119/356 606/1118/356 608/1127/356 607/1126/356 -f 603/1121/357 593/1120/357 611/1130/357 612/1131/357 -f 605/1123/358 604/1122/358 613/1132/358 614/1134/358 -f 615/1135/359 616/1136/359 617/1137/359 618/1138/359 -f 612/1131/320 611/1130/320 619/1139/320 620/1140/320 -f 614/1134/318 613/1132/318 621/1141/318 616/1142/318 -f 602/1113/342 601/1112/342 615/1135/342 622/1143/342 -f 608/1127/343 602/1113/343 622/1143/343 609/1128/343 -f 611/1130/321 607/1126/321 610/1129/321 619/1139/321 -f 613/1132/319 612/1131/319 620/1140/319 621/1141/319 -f 601/1112/317 614/1133/317 616/1136/317 615/1135/317 -f 623/1144/360 624/1145/360 625/1146/360 626/1147/360 -f 610/1129/361 609/1128/361 623/1148/361 627/1149/361 -f 620/1140/362 619/1139/362 628/1150/362 629/1151/362 -f 616/1142/363 621/1141/363 630/1152/363 617/1153/363 -f 622/1143/364 615/1135/364 618/1154/364 624/1155/364 -f 609/1128/365 622/1143/365 624/1145/365 623/1144/365 -f 619/1139/366 610/1129/366 627/1156/366 628/1157/366 -f 621/1141/367 620/1140/367 629/1158/367 630/1159/367 -f 631/1160/368 626/1161/368 632/1162/368 633/1163/368 -f 628/1157/369 627/1156/369 631/1164/369 634/1165/369 -f 630/1159/370 629/1158/370 635/1166/370 636/1167/370 -f 618/1138/371 617/1137/371 637/1168/371 638/1169/371 -f 627/1149/372 623/1148/372 626/1161/372 631/1160/372 -f 629/1151/373 628/1150/373 634/1170/373 635/1171/373 -f 617/1153/374 630/1152/374 636/1172/374 637/1173/374 -f 624/1155/375 618/1154/375 638/1174/375 625/1175/375 -f 639/1176/376 633/1177/376 640/1178/376 641/1179/376 -f 635/1171/377 634/1170/377 639/1180/377 642/1181/377 -f 637/1173/378 636/1172/378 643/1182/378 644/1183/378 -f 625/1175/379 638/1174/379 645/1184/379 646/1185/379 -f 626/1147/380 625/1146/380 646/1186/380 632/1187/380 -f 634/1165/381 631/1164/381 633/1177/381 639/1176/381 -f 636/1167/382 635/1166/382 642/1188/382 643/1189/382 -f 638/1169/383 637/1168/383 644/1190/383 645/1191/383 -f 647/1192/320 648/1193/320 649/1194/320 650/1195/320 -f 643/1189/376 642/1188/376 651/1196/376 652/1197/376 -f 645/1191/376 644/1190/376 653/1198/376 648/1199/376 -f 633/1163/376 632/1162/376 654/1200/376 640/1201/376 -f 642/1181/376 639/1180/376 641/1202/376 651/1203/376 -f 644/1183/376 643/1182/376 652/1204/376 653/1205/376 -f 646/1185/376 645/1184/376 648/1193/376 647/1192/376 -f 632/1187/376 646/1186/376 647/1206/376 654/1207/376 -f 650/1208/376 649/1209/376 655/1210/376 656/1211/376 657/1212/376 658/1213/376 659/1214/376 660/1215/376 -f 654/1207/319 647/1206/319 650/1216/319 660/1217/319 -f 641/1179/317 640/1178/317 659/1218/317 658/1219/317 -f 652/1197/343 651/1196/343 657/1220/343 656/1221/343 -f 648/1199/321 653/1198/321 655/1222/321 649/1223/321 -f 640/1201/318 654/1200/318 660/1224/318 659/1225/318 -f 651/1203/342 641/1202/342 658/1226/342 657/1227/342 -f 653/1205/323 652/1204/323 656/1228/323 655/1229/323 -f 575/1075/384 661/1230/384 662/1231/384 576/1076/384 -f 581/1085/385 663/1232/385 661/1230/385 575/1075/385 -f 574/1074/386 664/1233/386 663/1232/386 581/1085/386 -f 573/1073/387 665/1234/387 664/1233/387 574/1074/387 -f 579/1082/388 666/1235/388 665/1234/388 573/1073/388 -f 566/1081/389 667/1236/389 666/1235/389 579/1082/389 -f 565/1065/390 668/1237/390 667/1238/390 566/1066/390 -f 576/1076/391 662/1231/391 668/1237/391 565/1065/391 -f 669/1239/392 564/1064/392 549/1039/392 670/1240/392 -f 671/1241/393 562/1054/393 564/1064/393 669/1239/393 -f 672/1242/394 560/1052/394 562/1054/394 671/1241/394 -f 673/1243/395 558/1050/395 560/1052/395 672/1242/395 -f 674/1244/396 556/1048/396 558/1050/396 673/1243/396 -f 675/1245/397 554/1045/397 556/1048/397 674/1244/397 -f 676/1246/398 552/1042/398 554/1044/398 675/1247/398 -f 670/1240/399 549/1039/399 552/1042/399 676/1246/399 -f 662/1231/342 677/1248/342 678/1249/342 668/1237/342 -f 679/1250/400 680/1251/400 681/1252/400 682/1253/400 -f 683/1254/342 684/1255/342 685/1256/342 686/1257/342 -f 671/1258/401 669/1259/401 687/1260/401 688/1261/401 -f 668/1237/402 678/1249/402 689/1262/402 667/1238/402 -f 686/1263/403 690/1264/403 691/1265/403 692/1266/403 -f 686/1257/317 685/1256/317 693/1267/317 690/1268/317 -f 673/1269/404 672/1270/404 694/1271/404 695/1272/404 -f 667/1236/405 689/1273/405 696/1274/405 666/1235/405 -f 697/1275/406 696/1276/406 698/1277/406 699/1278/406 -f 690/1279/318 693/1280/318 700/1281/318 701/1282/318 -f 702/1283/407 703/1284/407 704/1285/407 705/1286/407 -f 666/1235/319 696/1274/319 697/1287/319 665/1234/319 -f 689/1288/408 678/1289/408 706/1290/408 707/1291/408 -f 701/1282/319 700/1281/319 708/1292/319 709/1293/319 -f 675/1294/409 674/1295/409 710/1296/409 711/1297/409 -f 665/1234/320 697/1287/320 680/1298/320 664/1233/320 -f 712/1299/410 713/1300/410 714/1301/410 715/1302/410 -f 709/1293/320 708/1292/320 716/1303/320 717/1304/320 -f 716/1305/411 708/1306/411 718/1307/411 719/1308/411 -f 664/1233/412 680/1298/412 679/1309/412 663/1232/412 -f 709/1310/413 717/1311/413 720/1312/413 721/1313/413 -f 717/1304/321 716/1303/321 703/1314/321 712/1315/321 -f 670/1316/414 676/1317/414 722/1318/414 723/1319/414 -f 663/1232/415 679/1309/415 724/1320/415 661/1230/415 -f 724/1321/416 679/1322/416 682/1253/416 725/1323/416 -f 712/1315/323 703/1314/323 702/1324/323 713/1325/323 -f 700/1326/417 693/1327/417 726/1328/417 727/1329/417 -f 661/1230/343 724/1320/343 677/1248/343 662/1231/343 -f 690/1330/418 701/1331/418 728/1332/418 691/1333/418 -f 713/1325/343 702/1324/343 684/1255/343 683/1254/343 -f 685/1334/419 684/1335/419 729/1336/419 730/1337/419 -f 729/1336/342 723/1319/342 722/1318/342 730/1337/342 -f 730/1337/317 722/1318/317 711/1338/317 726/1339/317 -f 726/1328/318 711/1297/318 710/1296/318 727/1329/318 -f 727/1329/319 710/1296/319 695/1272/319 718/1307/319 -f 718/1307/320 695/1272/320 694/1271/320 719/1308/320 -f 719/1308/321 694/1271/321 688/1261/321 704/1285/321 -f 704/1285/323 688/1261/323 687/1260/323 705/1286/323 -f 705/1286/343 687/1260/343 723/1319/343 729/1336/343 -f 693/1340/420 685/1341/420 730/1337/420 726/1339/420 -f 708/1342/421 700/1343/421 727/1329/421 718/1307/421 -f 676/1344/422 675/1345/422 711/1338/422 722/1318/422 -f 703/1346/423 716/1347/423 719/1308/423 704/1285/423 -f 674/1348/424 673/1349/424 695/1272/424 710/1296/424 -f 684/1350/425 702/1351/425 705/1286/425 729/1336/425 -f 672/1352/426 671/1353/426 688/1261/426 694/1271/426 -f 669/1354/427 670/1355/427 723/1319/427 687/1260/427 -f 731/1356/342 732/1357/342 692/1266/342 706/1290/342 -f 706/1290/317 692/1266/317 691/1265/317 707/1291/317 -f 707/1358/318 691/1333/318 728/1332/318 698/1277/318 -f 698/1277/319 728/1332/319 721/1313/319 699/1278/319 -f 699/1278/320 721/1313/320 720/1312/320 681/1252/320 -f 681/1252/321 720/1312/321 715/1302/321 682/1253/321 -f 682/1253/323 715/1302/323 714/1301/323 725/1323/323 -f 725/1323/343 714/1301/343 732/1357/343 731/1356/343 -f 701/1359/428 709/1360/428 721/1313/428 728/1332/428 -f 677/1361/429 724/1362/429 725/1323/429 731/1356/429 -f 717/1363/430 712/1364/430 715/1302/430 720/1312/430 -f 713/1365/431 683/1366/431 732/1357/431 714/1301/431 -f 678/1367/432 677/1368/432 731/1356/432 706/1290/432 -f 696/1369/433 689/1370/433 707/1358/433 698/1277/433 -f 683/1371/434 686/1372/434 692/1266/434 732/1357/434 -f 680/1373/435 697/1374/435 699/1278/435 681/1252/435 -o Grip_Cube.001 -v -1.325666 -0.019640 3.170554 -v -1.325666 0.137146 3.170554 -v -1.472478 0.148884 3.071087 -v -1.472478 -0.007902 3.071087 -v -1.325666 -0.019640 2.829446 -v -1.325666 0.137146 2.829446 -v -1.062875 0.137146 2.829446 -v -1.062875 -0.019640 2.829446 -v -1.130714 -0.142396 2.829446 -v -0.914155 -0.020276 2.892811 -v -0.981994 -0.143031 2.892811 -v -1.062875 -0.019640 3.170554 -v -1.062875 0.137146 3.170554 -v -0.914155 0.136510 2.892811 -v -1.259746 -0.728734 2.829446 -v -1.147611 -0.221161 2.829446 -v -0.998891 -0.221796 2.892811 -v -1.111026 -0.729370 2.892811 -v -1.346664 -0.179545 3.170554 -v -1.130714 -0.142396 3.170554 -v -1.346664 -0.179545 2.829446 -v -1.447785 -0.735647 3.170554 -v -1.363562 -0.258310 3.170554 -v -1.510373 -0.246572 3.071087 -v -1.594597 -0.723909 3.071087 -v -0.981994 -0.143031 3.107189 -v -0.914155 -0.020276 3.107189 -v -1.363562 -0.258310 2.829446 -v -1.447785 -0.735647 2.829446 -v -1.594597 -0.723909 2.928913 -v -1.510373 -0.246572 2.928913 -v -1.147611 -0.221161 3.170554 -v -1.259746 -0.728734 3.170554 -v -1.483874 -0.749924 3.170554 -v -1.219691 -0.868011 3.170554 -v -1.493475 -0.167807 3.071087 -v -1.483874 -0.751872 2.829446 -v -1.219691 -0.868011 2.829446 -v -0.914155 0.136510 3.107189 -v -1.472478 -0.007902 2.928913 -v -1.472478 0.148884 2.928913 -v -1.493475 -0.167807 2.928913 -v -1.630686 -0.740134 2.928913 -v -1.630686 -0.740134 3.071087 -v -0.998891 -0.221796 3.107189 -v -1.111026 -0.729370 3.107189 -v -1.100054 -0.868647 3.107189 -v -1.100054 -0.868647 2.892811 -vt 0.495816 0.528592 -vt 0.444632 0.528911 -vt 0.440297 0.471397 -vt 0.491177 0.470932 -vt 0.282573 0.528234 -vt 0.333716 0.528699 -vt 0.333553 0.614149 -vt 0.282755 0.613843 -vt 0.242508 0.592317 -vt 0.281795 0.666212 -vt 0.241263 0.645226 -vt 0.495309 0.614379 -vt 0.444469 0.614360 -vt 0.332850 0.666779 -vt 0.047162 0.550460 -vt 0.216648 0.586778 -vt 0.215631 0.639752 -vt 0.048294 0.604938 -vt 0.548343 0.521923 -vt 0.535717 0.592975 -vt 0.230173 0.521390 -vt 0.738670 0.486066 -vt 0.574234 0.516502 -vt 0.568535 0.459054 -vt 0.724885 0.427074 -vt 0.536722 0.646015 -vt 0.495988 0.666825 -vt 0.204360 0.515900 -vt 0.041140 0.485235 -vt 0.054329 0.426535 -vt 0.210200 0.458565 -vt 0.561660 0.587527 -vt 0.731929 0.551750 -vt 0.744574 0.473715 -vt 0.779174 0.567328 -vt 0.542981 0.464301 -vt 0.334470 0.132827 -vt 0.334470 0.038990 -vt 0.445386 0.038990 -vt 0.445387 0.133084 -vt 0.000088 0.565542 -vt 0.034734 0.473006 -vt 0.444846 0.667087 -vt 0.287393 0.470661 -vt 0.338208 0.471269 -vt 0.412478 0.429978 -vt 0.412380 0.480959 -vt 0.366151 0.480870 -vt 0.366248 0.429890 -vt 0.366348 0.377448 -vt 0.412578 0.377536 -vt 0.366398 0.351254 -vt 0.412628 0.351342 -vt 0.366699 0.193644 -vt 0.412928 0.193732 -vt 0.366723 0.180778 -vt 0.412953 0.180866 -vt 0.235698 0.463880 -vt 0.047562 0.415228 -vt 0.731595 0.415639 -vt 0.353968 0.713528 -vt 0.354065 0.662547 -vt 0.423773 0.662680 -vt 0.423676 0.713661 -vt 0.423589 0.759266 -vt 0.353881 0.759133 -vt 0.423539 0.785460 -vt 0.353831 0.785327 -vt 0.423216 0.954484 -vt 0.353508 0.954351 -vt 0.423129 0.999912 -vt 0.353422 0.999779 -vt 0.776716 0.612484 -vt 0.730434 0.606501 -vt 0.562445 0.640646 -vt 0.355074 0.000088 -vt 0.424782 0.000088 -vt 0.002168 0.610517 -vn -0.5609 0.0000 0.8279 -vn 0.0000 0.0000 -1.0000 -vn 0.0009 0.0005 -1.0000 -vn 0.3824 -0.2113 -0.8995 -vn 0.0000 0.0000 1.0000 -vn -0.0010 0.0003 1.0000 -vn 0.3920 0.0000 -0.9200 -vn 0.3915 0.0009 -0.9202 -vn 0.0005 1.0000 -0.0009 -vn 0.0000 1.0000 0.0000 -vn 0.0003 1.0000 -0.0010 -vn 0.3902 -0.0862 -0.9167 -vn 0.3907 -0.0861 -0.9165 -vn 0.3901 -0.0868 -0.9167 -vn -0.5529 0.0976 0.8275 -vn 0.3824 -0.2113 0.8995 -vn -0.5529 0.0976 -0.8275 -vn 0.0005 -0.0003 1.0000 -vn -0.0005 -0.0002 -1.0000 -vn -0.5505 0.1181 0.8264 -vn 0.0003 0.0005 1.0000 -vn 0.0000 -0.0006 -1.0000 -vn -0.4053 -0.9142 0.0026 -vn 0.3917 -0.0010 0.9201 -vn 0.3920 0.0000 0.9200 -vn -0.5609 0.0000 -0.8279 -vn -1.0000 0.0000 0.0000 -vn -0.9915 0.1302 0.0000 -vn -0.9778 0.2098 0.0000 -vn -0.9848 0.1738 0.0000 -vn -0.4100 0.9121 0.0000 -vn -0.5554 0.0729 0.8284 -vn -0.0731 -0.9973 0.0040 -vn 0.0797 0.9968 0.0000 -vn -0.5554 0.0729 -0.8284 -vn -0.3339 0.7427 -0.5805 -vn -0.5505 0.1181 -0.8264 -vn -0.3228 0.7637 0.5590 -vn 1.0000 0.0000 0.0000 -vn 0.8752 -0.4837 -0.0000 -vn 0.9778 -0.2098 -0.0000 -vn 0.9777 -0.2102 0.0004 -vn 0.9779 -0.2092 -0.0001 -vn 0.9765 -0.2157 0.0006 -vn 0.9765 -0.2154 0.0004 -vn 0.9765 -0.2157 0.0000 -vn 0.9969 0.0785 0.0000 -vn 0.4260 0.0780 0.9013 -vn 0.3903 -0.0837 0.9169 -vn 0.3899 -0.0842 0.9170 -vn 0.3907 -0.0841 0.9167 -vn -0.0053 -1.0000 0.0000 -vn 0.4260 0.0780 -0.9013 -vn 0.3903 -0.0832 -0.9169 -vn 0.3903 -0.0837 -0.9169 -vn 0.3898 -0.0838 -0.9171 -vn 0.0035 1.0000 -0.0006 -vn 0.0053 1.0000 -0.0001 -vn 0.0043 1.0000 0.0000 -vn 0.3898 -0.0858 0.9169 -vn 0.3902 -0.0862 0.9167 -vn 0.3906 -0.0858 0.9166 -s off -f 733/1375/436 734/1376/436 735/1377/436 736/1378/436 -f 737/1379/437 738/1380/437 739/1381/438 740/1382/437 -f 741/1383/439 740/1382/439 742/1384/439 743/1385/439 -f 744/1386/440 745/1387/441 734/1376/440 733/1375/440 -f 740/1382/442 739/1381/443 746/1388/442 742/1384/442 -f 739/1381/444 738/1380/445 734/1376/445 745/1387/446 -f 747/1389/447 748/1390/448 749/1391/449 750/1392/447 -f 744/1386/440 733/1375/440 751/1393/440 752/1394/440 -f 737/1379/437 740/1382/437 741/1383/437 753/1395/437 -f 754/1396/450 755/1397/450 756/1398/450 757/1399/450 -f 744/1386/451 752/1394/451 758/1400/451 759/1401/451 -f 760/1402/452 761/1403/452 762/1404/452 763/1405/452 -f 752/1394/440 751/1393/440 755/1397/440 764/1406/453 -f 753/1395/437 741/1383/437 748/1390/454 760/1402/437 -f 765/1407/440 754/1396/440 766/1408/440 767/1409/440 -f 755/1397/455 751/1393/455 768/1410/455 756/1398/455 -f 764/1406/456 755/1397/440 754/1396/440 765/1407/440 -f 760/1402/437 748/1390/457 747/1389/437 761/1403/437 -f 769/1411/458 770/1412/458 767/1413/458 766/1414/458 -f 761/1403/437 747/1389/437 770/1415/437 769/1416/437 -f 745/1387/459 744/1386/460 759/1401/460 771/1417/460 -f 738/1380/461 737/1379/461 772/1418/461 773/1419/461 -f 736/1420/462 735/1421/462 773/1422/462 772/1423/462 -f 736/1420/463 772/1423/463 774/1424/463 768/1425/463 -f 768/1425/464 774/1424/464 763/1426/464 756/1427/464 -f 756/1427/465 763/1426/465 762/1428/465 757/1429/465 -f 757/1429/466 762/1428/466 775/1430/466 776/1431/466 -f 751/1393/467 733/1375/467 736/1378/467 768/1410/467 -f 769/1411/468 766/1414/468 776/1431/468 775/1430/468 -f 734/1376/469 738/1380/469 773/1422/469 735/1421/469 -f 737/1379/470 753/1395/470 774/1432/470 772/1418/470 -f 761/1403/471 769/1416/471 775/1433/471 762/1404/471 -f 753/1395/472 760/1402/472 763/1405/472 774/1432/472 -f 766/1408/473 754/1396/473 757/1399/473 776/1434/473 -f 742/1435/474 746/1436/474 771/1437/474 759/1438/474 -f 742/1435/475 759/1438/475 758/1439/475 743/1440/475 -f 743/1440/476 758/1439/476 777/1441/477 749/1442/478 -f 749/1442/479 777/1441/480 778/1443/481 750/1444/481 -f 750/1444/482 778/1443/482 779/1445/482 780/1446/482 -f 765/1407/483 767/1409/483 779/1447/483 778/1448/483 -f 752/1394/484 764/1406/485 777/1449/486 758/1400/484 -f 767/1413/487 770/1412/487 780/1450/487 779/1451/487 -f 770/1415/488 747/1389/488 750/1392/488 780/1452/488 -f 748/1390/489 741/1383/490 743/1385/490 749/1391/491 -f 739/1381/492 745/1387/493 771/1437/494 746/1436/494 -f 764/1406/495 765/1407/496 778/1448/496 777/1449/497 -o HandleComfortThing_Cube.006 -v -1.508359 -0.214874 3.108693 -v -1.504838 -0.215309 2.893183 -v -1.564296 -0.274102 2.910781 -v -1.567402 -0.273718 3.089973 -v -1.348484 -0.928894 2.825721 -v -1.331423 -0.813343 2.825721 -v -1.263873 -0.855085 2.817547 -v -1.262042 -0.949106 2.817547 -v -1.263873 -0.855085 3.182453 -v -1.207149 -0.865197 3.174081 -v -1.207149 -0.865197 2.825919 -v -1.570189 -0.877055 3.143835 -v -1.435938 -0.379825 3.163084 -v -1.622805 -0.828855 3.096503 -v -1.262042 -0.949106 3.182453 -v -1.348484 -0.928894 3.174279 -v -1.435938 -0.379825 2.836916 -v -1.112852 -0.829663 3.130793 -v -1.112852 -0.829663 2.869207 -v -1.205319 -0.959218 2.825919 -v -1.205319 -0.959218 3.174081 -v -1.111021 -0.923684 3.130793 -v -1.072210 -0.848373 3.087270 -v -1.073111 -0.802094 3.087270 -v -1.111021 -0.923684 2.869207 -v -1.072210 -0.848373 2.912730 -v -1.073111 -0.802094 2.912730 -v -1.681696 -0.766817 2.927831 -v -1.689936 -0.702839 2.940395 -v -1.640119 -0.414721 2.927821 -v -1.619700 -0.829239 2.904046 -v -1.684682 -0.766448 3.071709 -v -1.643105 -0.414353 3.071698 -v -1.666879 -0.498637 2.940385 -v -1.669865 -0.498268 3.058900 -v -1.692922 -0.702470 3.058910 -v -1.690559 -0.607421 3.054481 -v -1.687573 -0.607789 2.944693 -v -1.331423 -0.813343 3.174279 -v -1.416650 -0.767127 2.821697 -v -1.416650 -0.767127 3.178303 -v -1.469005 -0.685482 2.828092 -v -1.469005 -0.685482 3.171908 -v -1.542909 -0.883434 2.838818 -v -1.516768 -0.889546 2.825611 -v -1.516768 -0.889546 3.174389 -v -1.542909 -0.883434 3.161182 -v -1.432626 -0.909220 2.821697 -v -1.432626 -0.909220 3.178303 -v -1.484962 -0.656299 2.841112 -v -1.570189 -0.877055 2.856165 -v -1.484962 -0.656299 3.158888 -vt 0.766671 0.048954 -vt 0.764142 0.169699 -vt 0.717619 0.158385 -vt 0.719660 0.057986 -vt 0.042513 0.365144 -vt 0.100642 0.395217 -vt 0.066109 0.423644 -vt 0.015965 0.407457 -vt 0.569776 0.563304 -vt 0.569776 0.767768 -vt 0.537491 0.763077 -vt 0.537491 0.567995 -vt 0.727808 0.563002 -vt 0.754866 0.275487 -vt 0.833210 0.204917 -vt 0.773959 0.549883 -vt 0.212049 0.200035 -vt 0.162307 0.204615 -vt 0.162307 0.000151 -vt 0.212049 0.004731 -vt 0.898905 0.574157 -vt 0.998844 0.605685 -vt 0.999849 0.726451 -vt 0.898904 0.756916 -vt 0.481028 0.738822 -vt 0.481028 0.592250 -vt 0.050295 0.452178 -vt 0.000151 0.435991 -vt 0.567644 0.488457 -vt 0.547535 0.537161 -vt 0.515547 0.530752 -vt 0.535656 0.482048 -vt 0.130023 0.199924 -vt 0.130023 0.004842 -vt 0.488806 0.442281 -vt 0.468697 0.490984 -vt 0.453927 0.439700 -vt 0.463825 0.415727 -vt 0.050295 0.513631 -vt 0.000151 0.497444 -vt 0.073559 0.175669 -vt 0.073559 0.029097 -vt 0.026087 0.151282 -vt 0.000151 0.151282 -vt 0.000151 0.053484 -vt 0.026087 0.053484 -vt 0.453927 0.714435 -vt 0.453927 0.616637 -vt 0.054374 0.549860 -vt 0.029692 0.541893 -vt 0.434697 0.361827 -vt 0.198019 0.204917 -vt 0.234409 0.210548 -vt 0.375642 0.293880 -vt 0.378192 0.156148 -vt 0.379610 0.048306 -vt 0.428848 0.062216 -vt 0.427492 0.142839 -vt 0.453625 0.405806 -vt 0.152314 0.227692 -vt 0.854471 0.247808 -vt 0.821023 0.529815 -vt 0.629927 0.065835 -vt 0.628389 0.146455 -vt 0.579211 0.138286 -vt 0.580423 0.071870 -vt 0.868174 0.336835 -vt 0.840364 0.498449 -vt 0.464907 0.069804 -vt 0.463716 0.136221 -vt 0.518136 0.073107 -vt 0.517022 0.134636 -vt 0.284278 0.229447 -vt 0.337590 0.261673 -vt 0.868174 0.386706 -vt 0.858265 0.448212 -vt 0.614269 0.567885 -vt 0.614269 0.763188 -vt 0.668593 0.565630 -vt 0.668593 0.765443 -vt 0.722938 0.569213 -vt 0.722938 0.761860 -vt 0.323927 0.192696 -vt 0.308885 0.200096 -vt 0.308884 0.004670 -vt 0.323927 0.012070 -vt 0.260467 0.202289 -vt 0.260466 0.002476 -vt 0.611663 0.480525 -vt 0.596973 0.544303 -vt 0.665618 0.473822 -vt 0.644946 0.551228 -vt 0.709766 0.441928 -vt 0.692917 0.558152 -vt 0.103015 0.268876 -vt 0.213001 0.340681 -vt 0.193552 0.345402 -vt 0.094041 0.283036 -vt 0.140668 0.358420 -vt 0.068278 0.324089 -vt 0.349630 0.418726 -vt 0.112923 0.253297 -vt 0.339625 0.182976 -vt 0.339625 0.021790 -vt 0.741574 0.576509 -vt 0.741574 0.754564 -vt 0.725950 0.430156 -vt 0.709519 0.560474 -vn -0.7044 0.7097 -0.0133 -vn -0.1026 0.0075 -0.9947 -vn 0.1755 0.9845 0.0000 -vn -0.5269 0.0940 0.8447 -vn -0.2277 -0.9737 0.0000 -vn 0.9190 0.3942 0.0057 -vn -0.3526 0.9358 0.0000 -vn 0.1465 0.0029 -0.9892 -vn 0.1465 0.0029 0.9892 -vn -0.1755 -0.9845 0.0000 -vn 0.7339 0.0143 0.6791 -vn 0.4147 0.0081 -0.9099 -vn 0.4147 0.0081 0.9099 -vn 0.3526 -0.9358 0.0000 -vn 0.9998 0.0195 0.0000 -vn 0.8889 -0.4581 0.0000 -vn -0.5700 0.8216 0.0000 -vn 0.7339 0.0143 -0.6791 -vn -0.3667 0.0433 -0.9293 -vn -0.7097 -0.7044 -0.0113 -vn -0.3211 0.0435 -0.9461 -vn -0.3371 0.0447 0.9404 -vn -0.9525 0.3038 -0.0225 -vn -0.3829 0.0452 0.9227 -vn -0.8802 0.4743 -0.0177 -vn -0.9916 -0.1277 -0.0222 -vn -0.9822 0.1862 -0.0263 -vn -0.9993 0.0248 -0.0262 -vn -0.5482 0.0619 -0.8340 -vn -0.5564 0.0629 0.8286 -vn 0.5257 0.8507 0.0000 -vn 0.4767 0.8791 0.0000 -vn 0.8418 0.5398 0.0000 -vn -0.1026 0.0075 0.9947 -vn 0.0452 -0.0058 0.9990 -vn -0.0616 0.0185 0.9979 -vn -0.4504 0.1202 -0.8847 -vn -0.0616 0.0185 -0.9979 -vn 0.0452 -0.0058 -0.9990 -vn -0.5492 0.1006 -0.8296 -vn -0.3469 0.0702 -0.9353 -vn -0.6850 -0.7286 -0.0038 -vn 0.8774 0.4798 0.0000 -vn 0.9846 -0.1746 0.0000 -vn -0.4504 0.1202 0.8847 -vn -0.3469 0.0702 0.9353 -s off -f 781/1453/498 782/1454/498 783/1455/498 784/1456/498 -f 785/1457/499 786/1458/499 787/1459/499 788/1460/499 -f 787/1461/500 789/1462/500 790/1463/500 791/1464/500 -f 792/1465/501 793/1466/501 781/1467/501 794/1468/501 -f 785/1469/502 788/1470/502 795/1471/502 796/1472/502 -f 797/1473/503 782/1474/503 781/1475/503 793/1476/503 -f 791/1464/504 790/1463/504 798/1477/504 799/1478/504 -f 788/1460/505 787/1459/505 791/1479/505 800/1480/505 -f 789/1481/506 795/1482/506 801/1483/506 790/1484/506 -f 795/1471/507 788/1470/507 800/1485/507 801/1486/507 -f 798/1487/508 802/1488/508 803/1489/508 804/1490/508 -f 800/1480/509 791/1479/509 799/1491/509 805/1492/509 -f 790/1484/510 801/1483/510 802/1488/510 798/1487/510 -f 801/1486/511 800/1485/511 805/1493/511 802/1494/511 -f 806/1495/512 807/1496/512 804/1497/512 803/1498/512 -f 802/1494/513 805/1493/513 806/1495/513 803/1498/513 -f 799/1478/514 798/1477/514 804/1499/514 807/1500/514 -f 805/1492/515 799/1491/515 807/1501/515 806/1502/515 -f 783/1503/516 808/1504/516 809/1505/516 810/1506/516 -f 811/1507/517 794/1508/517 812/1509/517 808/1510/517 -f 782/1511/518 811/1512/518 808/1504/518 783/1503/518 -f 794/1468/519 781/1467/519 784/1513/519 812/1514/519 -f 813/1515/520 810/1516/520 814/1517/520 815/1518/520 -f 812/1514/521 784/1513/521 813/1519/521 816/1520/521 -f 784/1456/522 783/1455/522 810/1516/522 813/1515/522 -f 808/1510/523 812/1509/523 816/1521/523 809/1522/523 -f 817/1523/524 815/1518/524 814/1517/524 818/1524/524 -f 809/1522/525 816/1521/525 817/1523/525 818/1524/525 -f 810/1506/526 809/1505/526 818/1525/526 814/1526/526 -f 816/1520/527 813/1519/527 815/1527/527 817/1528/527 -f 787/1461/528 786/1529/528 819/1530/528 789/1462/528 -f 786/1529/529 820/1531/529 821/1532/529 819/1530/529 -f 820/1531/530 822/1533/530 823/1534/530 821/1532/530 -f 824/1535/502 825/1536/502 826/1537/502 827/1538/502 -f 825/1536/502 828/1539/502 829/1540/502 826/1537/502 -f 828/1539/502 785/1469/502 796/1472/502 829/1540/502 -f 795/1482/531 789/1481/531 819/1541/531 796/1542/531 -f 796/1542/532 819/1541/532 821/1543/532 829/1544/532 -f 829/1544/533 821/1543/533 823/1545/533 826/1546/533 -f 824/1547/534 830/1548/534 822/1549/534 825/1550/534 -f 825/1550/535 822/1549/535 820/1551/535 828/1552/535 -f 828/1552/536 820/1551/536 786/1458/536 785/1457/536 -f 811/1512/537 782/1511/537 797/1553/537 831/1554/537 -f 831/1554/538 797/1553/538 830/1548/538 824/1547/538 -f 811/1507/539 831/1555/539 792/1556/539 794/1508/539 -f 831/1555/502 824/1535/502 827/1538/502 792/1556/502 -f 822/1533/540 830/1557/540 832/1558/540 823/1534/540 -f 830/1557/541 797/1473/541 793/1476/541 832/1558/541 -f 826/1546/542 823/1545/542 832/1559/542 827/1560/542 -f 827/1560/543 832/1559/543 793/1466/543 792/1465/543 -o HandleHilt_Cylinder.003 -v -1.464091 -0.996279 2.859949 -v -1.457375 -0.967729 2.859949 -v -1.339310 -0.995504 2.929974 -v -1.346026 -1.024054 2.929974 -v -1.339310 -0.995504 3.070026 -v -1.346026 -1.024054 3.070026 -v -1.457375 -0.967729 3.140051 -v -1.464091 -0.996279 3.140051 -v -1.575440 -0.939954 3.070026 -v -1.582156 -0.968503 3.070026 -v -1.343945 -0.917630 2.942875 -v -1.343945 -0.917630 3.057125 -v -1.575440 -0.939954 2.929974 -v -1.582156 -0.968503 2.929974 -v -1.482215 -1.073316 3.113549 -v -1.386492 -1.095835 3.056774 -v -1.440258 -0.894971 2.885751 -v -1.536572 -0.872313 2.942875 -v -1.536572 -0.872313 3.057125 -v -1.440258 -0.894971 3.114249 -v -1.577937 -1.050797 3.056774 -v -1.577937 -1.050797 2.943226 -v -1.539716 -1.059789 2.965895 -v -1.539716 -1.059789 3.034105 -v -1.482215 -1.073316 2.886451 -v -1.386492 -1.095835 2.943226 -v -1.482215 -1.073316 2.931790 -v -1.487302 -1.094942 2.940222 -v -1.537696 -1.083087 2.970111 -v -1.482215 -1.073316 3.068210 -v -1.424713 -1.086844 3.034105 -v -1.424713 -1.086844 2.965895 -v -1.436908 -1.106798 2.970111 -v -1.436908 -1.106798 3.029889 -v -1.487302 -1.094942 3.059778 -v -1.537696 -1.083087 3.029889 -vt 0.127792 0.499999 -vt 0.092894 0.499999 -vt 0.092896 0.333355 -vt 0.127794 0.333355 -vt 0.092894 0.166709 -vt 0.127793 0.166709 -vt 0.092891 0.000065 -vt 0.127790 0.000065 -vt 0.127791 0.999935 -vt 0.092893 0.999934 -vt 0.092892 0.833290 -vt 0.127789 0.833290 -vt 0.000070 0.318005 -vt 0.000069 0.182061 -vt 0.092892 0.666644 -vt 0.127789 0.666644 -vt 0.225837 0.015830 -vt 0.225840 0.150939 -vt 0.000065 0.817939 -vt 0.000065 0.681994 -vt 0.000068 0.484647 -vt 0.000070 0.348704 -vt 0.000069 0.151360 -vt 0.000065 0.015418 -vt 0.000066 0.651291 -vt 0.000067 0.515348 -vt 0.000066 0.984585 -vt 0.000065 0.848641 -vt 0.225839 0.817521 -vt 0.225839 0.682412 -vt 0.272559 0.709386 -vt 0.272559 0.790548 -vt 0.225840 0.515768 -vt 0.225839 0.650877 -vt 0.225839 0.849057 -vt 0.225839 0.984166 -vt 0.225841 0.182477 -vt 0.225842 0.317586 -vt 0.225842 0.349124 -vt 0.225840 0.484234 -vt 0.272559 0.623904 -vt 0.272560 0.542743 -vt 0.300386 0.547759 -vt 0.300385 0.618888 -vt 0.272558 0.042803 -vt 0.272559 0.123964 -vt 0.272561 0.376098 -vt 0.272561 0.457260 -vt 0.272559 0.876030 -vt 0.272559 0.957191 -vt 0.272561 0.209449 -vt 0.272562 0.290612 -vt 0.423583 0.118945 -vt 0.361985 0.154512 -vt 0.300385 0.118949 -vt 0.300384 0.047820 -vt 0.361982 0.012254 -vt 0.423582 0.047816 -vt 0.300385 0.881046 -vt 0.300386 0.952175 -vt 0.300387 0.214466 -vt 0.300388 0.285595 -vt 0.300385 0.714402 -vt 0.300385 0.785531 -vt 0.300387 0.381113 -vt 0.300387 0.452243 -vn 0.4867 -0.1145 -0.8660 -vn 0.9734 -0.2290 0.0000 -vn 0.4867 -0.1145 0.8660 -vn -0.4867 0.1145 0.8660 -vn 0.9982 0.0594 0.0000 -vn -0.9734 0.2290 0.0000 -vn -0.4867 0.1145 -0.8660 -vn 0.4037 -0.3811 0.8318 -vn -0.8670 0.4982 0.0000 -vn 0.5319 0.1691 -0.8297 -vn 0.5319 0.1691 0.8297 -vn -0.4007 0.3885 -0.8297 -vn -0.4007 0.3885 0.8297 -vn -0.2290 -0.9734 0.0000 -vn -0.5312 -0.1612 -0.8318 -vn -0.5312 -0.1612 0.8318 -vn 0.8711 -0.4911 0.0000 -vn -0.9987 -0.0512 0.0000 -vn 0.4037 -0.3811 -0.8318 -vn -0.5339 -0.1952 -0.8227 -vn -0.5339 -0.1952 0.8227 -vn 0.8533 -0.5215 0.0000 -vn -0.9963 -0.0864 0.0000 -vn 0.3909 -0.4127 0.8227 -vn 0.3909 -0.4127 -0.8227 -s off -f 833/1561/544 834/1562/544 835/1563/544 836/1564/544 -f 836/1564/545 835/1563/545 837/1565/545 838/1566/545 -f 838/1566/546 837/1565/546 839/1567/546 840/1568/546 -f 840/1569/547 839/1570/547 841/1571/547 842/1572/547 -f 837/1565/548 835/1563/548 843/1573/548 844/1574/548 -f 842/1572/549 841/1571/549 845/1575/549 846/1576/549 -f 846/1576/550 845/1575/550 834/1562/550 833/1561/550 -f 838/1566/551 840/1568/551 847/1577/551 848/1578/551 -f 845/1575/552 841/1571/552 851/1579/552 850/1580/552 -f 835/1563/553 834/1562/553 849/1581/553 843/1582/553 -f 839/1567/554 837/1565/554 844/1583/554 852/1584/554 -f 834/1562/555 845/1575/555 850/1585/555 849/1586/555 -f 841/1571/556 839/1570/556 852/1587/556 851/1588/556 -f 853/1589/557 854/1590/557 855/1591/557 856/1592/557 -f 846/1576/558 833/1561/558 857/1593/558 854/1594/558 -f 840/1569/559 842/1572/559 853/1595/559 847/1596/559 -f 836/1564/560 838/1566/560 848/1597/560 858/1598/560 -f 842/1572/561 846/1576/561 854/1590/561 853/1589/561 -f 833/1561/562 836/1564/562 858/1599/562 857/1600/562 -f 855/1601/563 859/1602/563 860/1603/563 861/1604/563 -f 848/1578/557 847/1577/557 862/1605/557 863/1606/557 -f 857/1600/557 858/1599/557 864/1607/557 859/1608/557 -f 854/1594/557 857/1593/557 859/1602/557 855/1601/557 -f 847/1596/557 853/1595/557 856/1609/557 862/1610/557 -f 858/1598/557 848/1597/557 863/1611/557 864/1612/557 -f 860/1613/557 865/1614/557 866/1615/557 867/1616/557 868/1617/557 861/1618/557 -f 862/1610/564 856/1609/564 868/1619/564 867/1620/564 -f 864/1612/565 863/1611/565 866/1621/565 865/1622/565 -f 856/1592/566 855/1591/566 861/1623/566 868/1624/566 -f 863/1606/567 862/1605/567 867/1616/567 866/1615/567 -f 859/1608/568 864/1607/568 865/1625/568 860/1626/568 -o HolographicHolder_Cylinder.009 -v -0.972691 1.166717 3.278124 -v -0.972691 1.166717 2.721876 -v -0.987438 1.166717 2.739678 -v -0.987438 1.166717 3.260322 -v -0.934937 1.102284 3.278124 -v -0.934937 1.102284 2.721876 -v -0.971860 1.037372 3.278124 -v -0.971860 1.037372 2.721876 -v -1.046537 1.036892 3.278124 -v -1.046537 1.036892 2.721876 -v -1.047369 1.166237 3.278124 -v -1.084291 1.101324 3.278124 -v -1.084291 1.101324 2.721876 -v -1.047368 1.166237 2.721876 -v -1.032621 1.166237 2.739678 -v -1.032621 1.166237 3.260322 -v -1.033084 1.202181 3.260322 -v -1.033084 1.202181 2.739678 -v -0.987902 1.202661 3.260322 -v -0.987902 1.202661 2.739678 -vt 0.183339 0.841202 -vt 0.183342 0.158794 -vt 0.201434 0.180634 -vt 0.201432 0.819360 -vt 0.091722 0.841201 -vt 0.091726 0.158793 -vt 0.000106 0.841201 -vt 0.000110 0.158793 -vt 0.549809 0.158794 -vt 0.549809 0.841202 -vt 0.458192 0.841202 -vt 0.458193 0.158794 -vt 0.274960 0.841202 -vt 0.320769 0.920549 -vt 0.274958 0.999893 -vt 0.183338 0.999893 -vt 0.137529 0.920547 -vt 0.366577 0.841202 -vt 0.366577 0.158794 -vt 0.274960 0.158794 -vt 0.137534 0.079449 -vt 0.183344 0.000106 -vt 0.274962 0.000107 -vt 0.320770 0.079451 -vt 0.693655 0.044206 -vt 0.693655 0.682938 -vt 0.649555 0.682938 -vt 0.649555 0.044206 -vt 0.256867 0.819362 -vt 0.256868 0.180635 -vt 0.594122 0.682938 -vt 0.594122 0.044206 -vt 0.594021 0.000106 -vt 0.649455 0.000106 -vt 0.550021 0.682938 -vt 0.550021 0.044206 -vt 0.649455 0.727038 -vt 0.594021 0.727038 -vn 0.0016 1.0000 -0.0012 -vn -0.0011 1.0000 -0.0016 -vn 0.0018 1.0000 0.0007 -vn 0.0013 1.0000 0.0015 -vn 0.8618 0.5072 0.0000 -vn 0.8635 0.5043 0.0014 -vn 0.8628 0.5055 0.0000 -vn 0.8692 -0.4944 0.0000 -vn 0.0064 -1.0000 0.0000 -vn -0.0015 0.0013 1.0000 -vn -0.0010 -0.0017 1.0000 -vn 0.0000 0.0000 1.0000 -vn -0.8628 -0.5056 0.0000 -vn -0.8692 0.4944 -0.0000 -vn -0.8692 0.4944 -0.0020 -vn -0.8699 0.4932 0.0014 -vn 0.0010 -0.0017 -1.0000 -vn 0.0018 0.0007 -1.0000 -vn 0.0000 0.0000 -1.0000 -vn -0.9999 -0.0119 0.0017 -vn -0.9999 -0.0109 -0.0005 -vn -0.9999 -0.0129 0.0000 -vn -0.0060 1.0000 0.0000 -vn -0.0076 1.0000 -0.0019 -vn -0.0100 1.0000 0.0000 -vn -0.0086 1.0000 0.0019 -vn 0.0007 1.0000 0.0018 -vn 0.0013 1.0000 -0.0015 -vn -0.0008 1.0000 -0.0018 -vn -0.0020 1.0000 -0.0001 -vn -0.0062 1.0000 0.0008 -vn -0.0065 1.0000 -0.0014 -vn -0.0088 1.0000 -0.0018 -vn -0.0106 0.9999 0.0000 -vn -0.0014 0.0014 -1.0000 -vn 0.0010 0.0018 -1.0000 -vn 0.9999 0.0129 -0.0020 -vn 0.9999 0.0143 0.0014 -vn 0.9999 0.0129 0.0000 -vn 0.0019 0.0005 1.0000 -vn -0.0000 0.0020 1.0000 -s off -f 869/1627/569 870/1628/570 871/1629/571 872/1630/572 -f 870/1628/573 869/1627/574 873/1631/575 874/1632/575 -f 874/1632/576 873/1631/576 875/1633/576 876/1634/576 -f 876/1635/577 875/1636/577 877/1637/577 878/1638/577 -f 869/1627/578 879/1639/579 880/1640/580 877/1641/580 875/1642/580 873/1643/580 -f 878/1638/581 877/1637/581 880/1644/581 881/1645/581 -f 881/1645/582 880/1644/582 879/1639/583 882/1646/584 -f 882/1646/585 870/1628/586 874/1647/587 876/1648/587 878/1649/587 881/1650/587 -f 883/1651/588 884/1652/589 885/1653/590 886/1654/590 -f 879/1639/591 869/1627/592 872/1630/593 884/1655/594 -f 882/1646/595 879/1639/596 884/1655/597 883/1656/598 -f 870/1628/592 882/1646/599 883/1656/600 871/1629/601 -f 886/1654/602 885/1653/602 887/1657/602 888/1658/602 -f 871/1659/603 883/1660/604 886/1654/587 888/1658/587 -f 872/1661/605 871/1662/606 888/1658/607 887/1657/607 -f 884/1663/608 872/1664/609 887/1657/580 885/1653/580 -o ring_Torus -v 0.990151 -0.648179 2.809159 -v 0.990151 -0.321606 2.625201 -v 1.068843 -0.322088 2.670631 -v 1.068843 -0.609076 2.832291 -v 1.068843 -0.323051 2.761491 -v 1.068843 -0.530870 2.878556 -v 0.990151 -0.323533 2.806922 -v 0.990151 -0.491768 2.901688 -v 0.911459 -0.323051 2.761491 -v 0.911459 -0.530870 2.878556 -v 0.911459 -0.322088 2.670631 -v 0.911459 -0.609076 2.832291 -v 0.990151 0.000993 2.816042 -v 1.068843 -0.038592 2.838340 -v 1.068843 -0.117761 2.882936 -v 0.990151 -0.157346 2.905234 -v 0.911459 -0.117761 2.882936 -v 0.911459 -0.038592 2.838340 -v 0.990151 -0.002981 3.190841 -v 1.068843 -0.042084 3.167709 -v 1.068843 -0.120290 3.121444 -v 0.990151 -0.159393 3.098312 -v 0.911459 -0.120290 3.121444 -v 0.911459 -0.042084 3.167709 -v 0.990151 -0.329554 3.374799 -v 1.068843 -0.329073 3.329369 -v 1.068843 -0.328109 3.238509 -v 0.990151 -0.327627 3.193079 -v 0.911459 -0.328109 3.238509 -v 0.911459 -0.329073 3.329369 -v 0.990151 -0.652153 3.183958 -v 1.068843 -0.612568 3.161660 -v 1.068843 -0.533399 3.117064 -v 0.990151 -0.493815 3.094766 -v 0.911459 -0.533399 3.117064 -v 0.911459 -0.612568 3.161660 -vt 0.000208 0.606690 -vt 0.297562 0.606690 -vt 0.279540 0.676487 -vt 0.018230 0.676486 -vt 0.243498 0.738915 -vt 0.054272 0.738915 -vt 0.225476 0.808712 -vt 0.072293 0.808712 -vt 0.072294 0.404668 -vt 0.225476 0.404668 -vt 0.243498 0.474465 -vt 0.054272 0.474465 -vt 0.279540 0.536893 -vt 0.018230 0.536893 -vt 0.297978 0.202229 -vt 0.595332 0.202230 -vt 0.577310 0.272027 -vt 0.315999 0.272026 -vt 0.541267 0.334455 -vt 0.352042 0.334454 -vt 0.523245 0.404252 -vt 0.370063 0.404251 -vt 0.370064 0.000208 -vt 0.523246 0.000208 -vt 0.541268 0.070005 -vt 0.352042 0.070005 -vt 0.577310 0.132433 -vt 0.315999 0.132433 -vt 0.797770 0.000208 -vt 0.797770 0.297561 -vt 0.727973 0.279540 -vt 0.727973 0.018229 -vt 0.665545 0.243497 -vt 0.665545 0.054272 -vt 0.595748 0.225476 -vt 0.595748 0.072294 -vt 0.999792 0.072294 -vt 0.999792 0.225476 -vt 0.929995 0.243497 -vt 0.929995 0.054272 -vt 0.867567 0.279540 -vt 0.867567 0.018229 -vt 0.297562 0.202230 -vt 0.000208 0.202229 -vt 0.018229 0.132432 -vt 0.279541 0.132434 -vt 0.054273 0.070005 -vt 0.243498 0.070005 -vt 0.072294 0.000208 -vt 0.225477 0.000208 -vt 0.225475 0.404252 -vt 0.072292 0.404251 -vt 0.054271 0.334454 -vt 0.243497 0.334455 -vt 0.018228 0.272026 -vt 0.279540 0.272027 -vt 0.595332 0.606690 -vt 0.297978 0.606690 -vt 0.316000 0.536893 -vt 0.577310 0.536894 -vt 0.352043 0.474465 -vt 0.541268 0.474465 -vt 0.370064 0.404668 -vt 0.523247 0.404669 -vt 0.523246 0.808712 -vt 0.370063 0.808712 -vt 0.352042 0.738915 -vt 0.541268 0.738915 -vt 0.316000 0.676487 -vt 0.577310 0.676487 -vt 0.797769 0.595331 -vt 0.797770 0.297977 -vt 0.867567 0.315999 -vt 0.867567 0.577309 -vt 0.929995 0.352042 -vt 0.929995 0.541267 -vt 0.999791 0.370063 -vt 0.999791 0.523245 -vt 0.595748 0.523245 -vt 0.595748 0.370063 -vt 0.665544 0.352042 -vt 0.665544 0.541266 -vt 0.727973 0.315999 -vt 0.727973 0.577309 -vn 0.4472 -0.4390 -0.7793 -vn 1.0000 0.0000 0.0000 -vn 0.4472 0.4390 0.7793 -vn -0.4472 0.4390 0.7793 -vn -1.0000 0.0000 0.0000 -vn -0.4472 -0.4390 -0.7793 -vn 0.4472 0.4554 -0.7698 -vn 0.4472 -0.4554 0.7698 -vn -0.4472 -0.4554 0.7698 -vn -0.4472 0.4554 -0.7698 -vn 0.4472 0.8944 0.0095 -vn 0.4472 -0.8944 -0.0095 -vn -0.4472 -0.8944 -0.0095 -vn -0.4472 0.8944 0.0095 -s off -f 889/1665/610 890/1666/610 891/1667/610 892/1668/610 -f 892/1668/611 891/1667/611 893/1669/611 894/1670/611 -f 894/1670/612 893/1669/612 895/1671/612 896/1672/612 -f 896/1673/613 895/1674/613 897/1675/613 898/1676/613 -f 898/1676/614 897/1675/614 899/1677/614 900/1678/614 -f 900/1678/615 899/1677/615 890/1666/615 889/1665/615 -f 890/1679/616 901/1680/616 902/1681/616 891/1682/616 -f 891/1682/611 902/1681/611 903/1683/611 893/1684/611 -f 893/1684/617 903/1683/617 904/1685/617 895/1686/617 -f 895/1687/618 904/1688/618 905/1689/618 897/1690/618 -f 897/1690/614 905/1689/614 906/1691/614 899/1692/614 -f 899/1692/619 906/1691/619 901/1680/619 890/1679/619 -f 901/1693/620 907/1694/620 908/1695/620 902/1696/620 -f 902/1696/611 908/1695/611 909/1697/611 903/1698/611 -f 903/1698/621 909/1697/621 910/1699/621 904/1700/621 -f 904/1701/622 910/1702/622 911/1703/622 905/1704/622 -f 905/1704/614 911/1703/614 912/1705/614 906/1706/614 -f 906/1706/623 912/1705/623 907/1694/623 901/1693/623 -f 907/1707/612 913/1708/612 914/1709/612 908/1710/612 -f 908/1710/611 914/1709/611 915/1711/611 909/1712/611 -f 909/1712/610 915/1711/610 916/1713/610 910/1714/610 -f 910/1715/615 916/1716/615 917/1717/615 911/1718/615 -f 911/1718/614 917/1717/614 918/1719/614 912/1720/614 -f 912/1720/613 918/1719/613 913/1708/613 907/1707/613 -f 913/1721/617 919/1722/617 920/1723/617 914/1724/617 -f 914/1724/611 920/1723/611 921/1725/611 915/1726/611 -f 915/1726/616 921/1725/616 922/1727/616 916/1728/616 -f 916/1729/619 922/1730/619 923/1731/619 917/1732/619 -f 917/1732/614 923/1731/614 924/1733/614 918/1734/614 -f 918/1734/618 924/1733/618 919/1722/618 913/1721/618 -f 919/1735/621 889/1736/621 892/1737/621 920/1738/621 -f 920/1738/611 892/1737/611 894/1739/611 921/1740/611 -f 921/1740/620 894/1739/620 896/1741/620 922/1742/620 -f 922/1743/623 896/1744/623 898/1745/623 923/1746/623 -f 923/1746/614 898/1745/614 900/1747/614 924/1748/614 -f 924/1748/622 900/1747/622 889/1736/622 919/1735/622 -o Roundthing_Cylinder.008 -v -0.654718 0.939467 3.338343 -v -0.745955 0.781575 3.338343 -v -0.745839 1.097427 3.338343 -v -0.757348 1.077508 3.380293 -v -0.677723 0.939476 3.380293 -v -1.019432 0.939601 3.338343 -v -0.928196 1.097493 3.338343 -v -0.928312 0.781642 3.338343 -v -0.916701 1.077567 3.380293 -v -0.996428 0.939592 3.380293 -v -0.949024 0.939575 3.380293 -v -0.893014 1.036505 3.380293 -v -0.916802 0.801560 3.380293 -v -0.757450 0.801501 3.380293 -v -0.781065 1.036464 3.380293 -v -0.884357 1.021497 3.419074 -v -0.789734 1.021463 3.419074 -v -0.781137 0.842563 3.380293 -v -0.893085 0.842604 3.380293 -v -0.725127 0.939493 3.380293 -v -0.931698 0.939569 3.419074 -v -0.877029 0.939549 3.419074 -v -0.857040 0.974142 3.419074 -v -0.884417 0.857606 3.419074 -v -0.742452 0.939499 3.419074 -v -0.789794 0.857571 3.419074 -v -0.817086 0.974128 3.419074 -v -0.857040 0.974142 3.317496 -v -0.817086 0.974128 3.317496 -v -0.817111 0.904926 3.419074 -v -0.857065 0.904940 3.419074 -v -0.797122 0.939519 3.419074 -v -0.797122 0.939519 3.317496 -v -0.877029 0.939549 3.317496 -v -0.857065 0.904940 3.317496 -v -0.817111 0.904926 3.317496 -v -0.745955 0.781575 2.661657 -v -0.654718 0.939467 2.661657 -v -0.677723 0.939476 2.619707 -v -0.757348 1.077508 2.619707 -v -0.745839 1.097427 2.661657 -v -0.928196 1.097493 2.661657 -v -1.019432 0.939601 2.661657 -v -0.928312 0.781642 2.661657 -v -0.916701 1.077567 2.619707 -v -0.893014 1.036505 2.619707 -v -0.949024 0.939575 2.619707 -v -0.996428 0.939593 2.619707 -v -0.916802 0.801560 2.619707 -v -0.757450 0.801502 2.619707 -v -0.781065 1.036464 2.619707 -v -0.789734 1.021463 2.580926 -v -0.884357 1.021497 2.580926 -v -0.893085 0.842604 2.619707 -v -0.781137 0.842563 2.619707 -v -0.725127 0.939493 2.619707 -v -0.857040 0.974142 2.580926 -v -0.877029 0.939549 2.580926 -v -0.931698 0.939569 2.580926 -v -0.884417 0.857606 2.580926 -v -0.789794 0.857571 2.580926 -v -0.742452 0.939499 2.580926 -v -0.817086 0.974128 2.580926 -v -0.817086 0.974128 2.682504 -v -0.857040 0.974142 2.682504 -v -0.857065 0.904940 2.580926 -v -0.817111 0.904926 2.580926 -v -0.797122 0.939519 2.580926 -v -0.797122 0.939519 2.682504 -v -0.817111 0.904926 2.682504 -v -0.857065 0.904940 2.682504 -v -0.877029 0.939549 2.682504 -vt 0.295914 0.225582 -vt 0.443817 0.225582 -vt 0.443818 0.774418 -vt 0.295914 0.774418 -vt 0.148010 0.225582 -vt 0.148010 0.774418 -vt 0.286585 0.812084 -vt 0.157340 0.812084 -vt 0.591720 0.225581 -vt 0.739623 0.225582 -vt 0.739623 0.774418 -vt 0.591721 0.774418 -vt 0.887527 0.225581 -vt 0.887527 0.774418 -vt 0.453146 0.812084 -vt 0.582392 0.812084 -vt 0.563168 0.845381 -vt 0.472370 0.845381 -vt 0.434489 0.812084 -vt 0.305243 0.812085 -vt 0.730295 0.812084 -vt 0.601050 0.812084 -vt 0.000107 0.774419 -vt 0.138682 0.812085 -vt 0.009436 0.812084 -vt 0.878198 0.812084 -vt 0.748953 0.812084 -vt 0.324467 0.845381 -vt 0.415265 0.845381 -vt 0.408239 0.879107 -vt 0.331494 0.879107 -vt 0.858974 0.845380 -vt 0.768176 0.845380 -vt 0.267361 0.845381 -vt 0.176564 0.845381 -vt 0.711071 0.845381 -vt 0.620273 0.845380 -vt 0.119458 0.845381 -vt 0.028660 0.845381 -vt 0.479397 0.879107 -vt 0.556142 0.879107 -vt 0.533972 0.917507 -vt 0.501567 0.917507 -vt 0.704044 0.879107 -vt 0.627299 0.879107 -vt 0.112432 0.879107 -vt 0.035686 0.879108 -vt 0.851948 0.879107 -vt 0.775202 0.879107 -vt 0.260335 0.879107 -vt 0.183589 0.879107 -vt 0.353664 0.917507 -vt 0.386069 0.917507 -vt 0.386068 0.999893 -vt 0.353663 0.999893 -vt 0.829778 0.917507 -vt 0.797372 0.917506 -vt 0.238166 0.917507 -vt 0.205760 0.917507 -vt 0.681875 0.917506 -vt 0.649469 0.917507 -vt 0.090261 0.917507 -vt 0.057857 0.917507 -vt 0.943867 0.113737 -vt 0.915803 0.129940 -vt 0.887739 0.113737 -vt 0.887739 0.081333 -vt 0.915803 0.065129 -vt 0.943867 0.081332 -vt 0.681876 0.999892 -vt 0.649470 0.999893 -vt 0.090260 0.999894 -vt 0.057856 0.999893 -vt 0.533971 0.999893 -vt 0.501567 0.999893 -vt 0.829776 0.999893 -vt 0.797370 0.999892 -vt 0.238167 0.999893 -vt 0.205762 0.999894 -vt 0.157339 0.187916 -vt 0.286584 0.187916 -vt 0.000106 0.225582 -vt 0.453146 0.187916 -vt 0.472370 0.154619 -vt 0.563167 0.154619 -vt 0.582391 0.187916 -vt 0.305242 0.187916 -vt 0.434488 0.187916 -vt 0.601048 0.187916 -vt 0.730294 0.187915 -vt 0.009435 0.187917 -vt 0.138680 0.187916 -vt 0.748952 0.187916 -vt 0.878197 0.187915 -vt 0.324466 0.154619 -vt 0.331493 0.120893 -vt 0.408238 0.120893 -vt 0.415264 0.154619 -vt 0.768176 0.154619 -vt 0.858973 0.154619 -vt 0.176563 0.154619 -vt 0.267360 0.154619 -vt 0.620273 0.154619 -vt 0.711071 0.154619 -vt 0.028658 0.154620 -vt 0.119456 0.154619 -vt 0.479396 0.120893 -vt 0.501566 0.082493 -vt 0.533971 0.082493 -vt 0.556141 0.120893 -vt 0.627299 0.120893 -vt 0.704044 0.120893 -vt 0.035685 0.120893 -vt 0.112430 0.120893 -vt 0.775202 0.120893 -vt 0.851947 0.120893 -vt 0.183588 0.120893 -vt 0.260334 0.120893 -vt 0.353663 0.082493 -vt 0.353662 0.000107 -vt 0.386067 0.000107 -vt 0.386068 0.082493 -vt 0.797372 0.082493 -vt 0.829777 0.082493 -vt 0.205759 0.082493 -vt 0.238164 0.082493 -vt 0.649468 0.082493 -vt 0.681874 0.082493 -vt 0.057855 0.082494 -vt 0.090259 0.082493 -vt 0.943870 0.016312 -vt 0.943867 0.048716 -vt 0.915802 0.064917 -vt 0.887739 0.048711 -vt 0.887742 0.016307 -vt 0.915807 0.000106 -vt 0.649469 0.000107 -vt 0.681875 0.000107 -vt 0.057854 0.000108 -vt 0.090258 0.000107 -vt 0.501566 0.000107 -vt 0.533970 0.000107 -vt 0.797370 0.000107 -vt 0.829776 0.000106 -vt 0.205760 0.000106 -vt 0.238166 0.000107 -vn 0.0004 1.0000 0.0000 -vn 0.8662 0.4997 0.0000 -vn 0.7825 0.4514 0.4290 -vn -0.8662 -0.4997 0.0000 -vn -0.0004 -1.0000 0.0000 -vn -0.8658 0.5003 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0003 0.9033 0.4290 -vn -0.7825 -0.4514 0.4290 -vn 0.7821 -0.4519 0.4290 -vn -0.7821 0.4519 0.4290 -vn -0.0003 -0.9033 0.4290 -vn 0.0003 0.9326 0.3608 -vn -0.8079 -0.4660 0.3608 -vn 0.8075 -0.4666 0.3608 -vn -0.8075 0.4666 0.3608 -vn -0.0003 -0.9326 0.3608 -vn 0.8079 0.4660 0.3608 -vn 0.8658 -0.5003 0.0000 -vn 0.7825 0.4514 -0.4290 -vn 0.0000 0.0000 -1.0000 -vn 0.0003 0.9033 -0.4290 -vn -0.7825 -0.4514 -0.4290 -vn 0.7821 -0.4519 -0.4290 -vn -0.7821 0.4519 -0.4290 -vn -0.0003 -0.9033 -0.4290 -vn 0.0003 0.9326 -0.3608 -vn -0.8079 -0.4660 -0.3608 -vn 0.8075 -0.4666 -0.3608 -vn -0.8075 0.4666 -0.3608 -vn -0.0003 -0.9326 -0.3608 -vn 0.8079 0.4660 -0.3608 -s off -f 965/1749/624 966/1750/624 931/1751/624 927/1752/624 -f 962/1753/625 965/1749/625 927/1752/625 925/1754/625 -f 925/1754/626 927/1752/626 928/1755/626 929/1756/626 -f 967/1757/627 968/1758/627 932/1759/627 930/1760/627 -f 968/1758/628 961/1761/628 926/1762/628 932/1759/628 -f 967/1757/629 930/1760/629 931/1751/629 966/1750/629 -f 933/1763/630 934/1764/630 935/1765/630 936/1766/630 -f 927/1752/631 931/1751/631 933/1767/631 928/1768/631 -f 930/1760/632 932/1759/632 937/1769/632 934/1770/632 -f 926/1771/633 925/1754/633 929/1772/633 938/1773/633 -f 931/1751/634 930/1760/634 934/1764/634 933/1763/634 -f 932/1759/635 926/1762/635 938/1774/635 937/1775/635 -f 939/1776/636 936/1777/636 940/1778/636 941/1779/636 -f 937/1775/630 938/1774/630 942/1780/630 943/1781/630 -f 929/1756/630 928/1755/630 939/1782/630 944/1783/630 -f 928/1768/630 933/1767/630 936/1777/630 939/1776/630 -f 934/1770/630 937/1769/630 943/1784/630 935/1785/630 -f 938/1773/630 929/1772/630 944/1786/630 942/1787/630 -f 940/1788/630 945/1789/630 946/1790/630 947/1791/630 -f 935/1785/637 943/1784/637 948/1792/637 945/1793/637 -f 942/1787/638 944/1786/638 949/1794/638 950/1795/638 -f 936/1766/639 935/1765/639 945/1789/639 940/1788/639 -f 943/1781/640 942/1780/640 950/1796/640 948/1797/640 -f 944/1783/641 939/1782/641 941/1798/641 949/1799/641 -f 951/1800/628 947/1801/628 952/1802/628 953/1803/628 -f 948/1797/630 950/1796/630 954/1804/630 955/1805/630 -f 949/1799/630 941/1798/630 951/1806/630 956/1807/630 -f 941/1779/630 940/1778/630 947/1801/630 951/1800/630 -f 945/1793/630 948/1792/630 955/1808/630 946/1809/630 -f 950/1795/630 949/1794/630 956/1810/630 954/1811/630 -f 957/1812/630 953/1813/630 952/1814/630 958/1815/630 959/1816/630 960/1817/630 -f 946/1809/625 955/1808/625 959/1818/625 958/1819/625 -f 954/1811/629 956/1810/629 957/1820/629 960/1821/629 -f 947/1791/642 946/1790/642 958/1822/642 952/1823/642 -f 955/1805/624 954/1804/624 960/1824/624 959/1825/624 -f 956/1807/627 951/1806/627 953/1826/627 957/1827/627 -f 962/1753/643 963/1828/643 964/1829/643 965/1749/643 -f 961/1830/642 962/1753/642 925/1754/642 926/1771/642 -f 969/1831/644 970/1832/644 971/1833/644 972/1834/644 -f 965/1749/645 964/1835/645 969/1836/645 966/1750/645 -f 967/1757/646 972/1837/646 973/1838/646 968/1758/646 -f 961/1830/647 974/1839/647 963/1840/647 962/1753/647 -f 966/1750/648 969/1831/648 972/1834/648 967/1757/648 -f 968/1758/649 973/1841/649 974/1842/649 961/1761/649 -f 975/1843/650 976/1844/650 977/1845/650 970/1846/650 -f 973/1841/644 978/1847/644 979/1848/644 974/1842/644 -f 963/1828/644 980/1849/644 975/1850/644 964/1829/644 -f 964/1835/644 975/1843/644 970/1846/644 969/1836/644 -f 972/1837/644 971/1851/644 978/1852/644 973/1838/644 -f 974/1839/644 979/1853/644 980/1854/644 963/1840/644 -f 977/1855/644 981/1856/644 982/1857/644 983/1858/644 -f 971/1851/651 983/1859/651 984/1860/651 978/1852/651 -f 979/1853/652 985/1861/652 986/1862/652 980/1854/652 -f 970/1832/653 977/1855/653 983/1858/653 971/1833/653 -f 978/1847/654 984/1863/654 985/1864/654 979/1848/654 -f 980/1849/655 986/1865/655 976/1866/655 975/1850/655 -f 987/1867/628 988/1868/628 989/1869/628 981/1870/628 -f 984/1863/644 990/1871/644 991/1872/644 985/1864/644 -f 986/1865/644 992/1873/644 987/1874/644 976/1866/644 -f 976/1844/644 987/1867/644 981/1870/644 977/1845/644 -f 983/1859/644 982/1875/644 990/1876/644 984/1860/644 -f 985/1861/644 991/1877/644 992/1878/644 986/1862/644 -f 993/1879/644 994/1880/644 995/1881/644 996/1882/644 989/1883/644 988/1884/644 -f 982/1875/625 996/1885/625 995/1886/625 990/1876/625 -f 991/1877/629 994/1887/629 993/1888/629 992/1878/629 -f 981/1856/642 989/1889/642 996/1890/642 982/1857/642 -f 990/1871/624 995/1891/624 994/1892/624 991/1872/624 -f 992/1873/627 993/1893/627 988/1894/627 987/1874/627 -o SideHolders.001_Cube.002 -v 1.310526 -0.082794 3.073582 -v 1.384588 0.101767 3.073582 -v 1.139921 0.101767 3.053905 -v 1.144858 -0.044123 3.053905 -v 1.384588 0.101767 2.930023 -v 1.504148 0.101767 3.073582 -v 1.504148 0.101767 2.930023 -v 1.430086 -0.082794 3.073582 -v 1.608182 -0.022025 3.051795 -v 1.577323 0.101767 3.051795 -v 1.430086 -0.082794 2.930023 -v 1.310526 -0.082794 2.930023 -v 1.577323 0.101767 2.951809 -v 1.608182 -0.022025 2.951809 -v 1.144858 -0.044123 2.949699 -v 1.139921 0.101767 2.949699 -v 1.384588 0.551670 3.654257 -v 1.384588 0.551670 3.449972 -v 1.139921 0.531994 3.449972 -v 1.139921 0.531994 3.558806 -v 1.384588 0.408111 3.449972 -v 1.504148 0.551670 3.449972 -v 1.504148 0.408111 3.449972 -v 1.504148 0.551670 3.654257 -v 1.577323 0.529883 3.613238 -v 1.577323 0.529883 3.449972 -v 1.504148 0.408111 3.654257 -v 1.384588 0.408111 3.654257 -v 1.577323 0.429898 3.449972 -v 1.577323 0.429898 3.613238 -v 1.139921 0.427787 3.558806 -v 1.139921 0.427787 3.449972 -v 1.384588 0.551670 2.345743 -v 1.139921 0.531994 2.441195 -v 1.139921 0.531994 2.550028 -v 1.384588 0.551670 2.550028 -v 1.384588 0.408111 2.550028 -v 1.504148 0.408111 2.550028 -v 1.504148 0.551670 2.550028 -v 1.577323 0.529883 2.550028 -v 1.577323 0.529883 2.386762 -v 1.504148 0.551670 2.345743 -v 1.504148 0.408111 2.345743 -v 1.384588 0.408111 2.345743 -v 1.577323 0.429898 2.550028 -v 1.577323 0.429898 2.386762 -v 1.139921 0.427787 2.441195 -v 1.139921 0.427787 2.550028 -vt 0.300882 0.683064 -vt 0.346645 0.797105 -vt 0.194976 0.797301 -vt 0.197840 0.707149 -vt 0.346645 0.885811 -vt 0.420522 0.797105 -vt 0.420522 0.885811 -vt 0.374758 0.683064 -vt 0.485753 0.720233 -vt 0.467698 0.796970 -vt 0.660845 0.885811 -vt 0.660845 0.797105 -vt 0.734722 0.797105 -vt 0.734722 0.885811 -vt 0.374758 0.999852 -vt 0.300882 0.999852 -vt 0.465737 0.872350 -vt 0.465737 0.810568 -vt 0.544569 0.810568 -vt 0.544569 0.872350 -vt 0.467698 0.885946 -vt 0.485753 0.962683 -vt 0.105267 0.873653 -vt 0.105267 0.809264 -vt 0.195464 0.809264 -vt 0.195464 0.873653 -vt 0.197840 0.975767 -vt 0.194976 0.885615 -vt 0.000148 0.885811 -vt 0.000148 0.797105 -vt 0.380856 0.000148 -vt 0.380856 0.126376 -vt 0.229187 0.126376 -vt 0.229187 0.059127 -vt 0.380856 0.215082 -vt 0.454733 0.126376 -vt 0.454733 0.215082 -vt 0.454733 0.000148 -vt 0.501909 0.025494 -vt 0.501909 0.126376 -vt 0.652665 0.215082 -vt 0.652665 0.126376 -vt 0.726542 0.126376 -vt 0.726542 0.215082 -vt 0.454733 0.341311 -vt 0.380856 0.341311 -vt 0.499948 0.201620 -vt 0.499948 0.139839 -vt 0.600830 0.139839 -vt 0.600830 0.201620 -vt 0.501909 0.215082 -vt 0.501909 0.315965 -vt 0.162426 0.202924 -vt 0.162426 0.138534 -vt 0.229675 0.138534 -vt 0.229675 0.202924 -vt 0.229187 0.282331 -vt 0.229187 0.215082 -vt 0.000148 0.215082 -vt 0.000148 0.126376 -vt 0.380855 0.682769 -vt 0.229186 0.623789 -vt 0.229186 0.556540 -vt 0.380855 0.556540 -vt 0.380855 0.467835 -vt 0.454732 0.467835 -vt 0.454732 0.556540 -vt 0.501909 0.556540 -vt 0.501908 0.657423 -vt 0.454732 0.682769 -vt 0.652664 0.467835 -vt 0.726541 0.467835 -vt 0.726541 0.556540 -vt 0.652664 0.556540 -vt 0.380855 0.341606 -vt 0.454732 0.341606 -vt 0.499947 0.481297 -vt 0.600829 0.481297 -vt 0.600829 0.543078 -vt 0.499947 0.543078 -vt 0.501908 0.366952 -vt 0.501908 0.467835 -vt 0.162426 0.479993 -vt 0.229674 0.479993 -vt 0.229675 0.544383 -vt 0.162426 0.544383 -vt 0.229186 0.467835 -vt 0.229186 0.400586 -vt 0.000148 0.467835 -vt 0.000148 0.556540 -vn -0.0936 0.0196 0.9954 -vn 0.0000 1.0000 0.0000 -vn 0.1766 -0.0247 0.9840 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 0.9703 0.2419 0.0000 -vn 0.3229 -0.9464 -0.0000 -vn 0.1766 -0.0247 -0.9840 -vn -0.9994 -0.0338 -0.0000 -vn -0.0936 0.0196 -0.9954 -vn -0.2273 -0.9738 0.0000 vn -0.0802 0.9968 0.0000 vn 0.2854 0.9584 0.0000 -vn 1.0000 0.0000 0.0000 vn 0.4890 0.0000 0.8723 vn 0.2854 -0.9584 0.0000 -vn -1.0000 0.0000 0.0000 vn -0.0802 -0.9968 0.0000 vn -0.3634 0.0000 0.9316 vn 0.4890 0.0000 -0.8723 -vn -0.3634 0.0000 -0.9316 -s off -f 997/1895/656 998/1896/656 999/1897/656 1000/1898/656 -f 1001/1899/657 998/1896/657 1002/1900/657 1003/1901/657 -f 1002/1900/658 1004/1902/658 1005/1903/658 1006/1904/658 -f 1007/1905/659 1004/1906/659 997/1907/659 1008/1908/659 -f 1001/1899/660 1003/1901/660 1007/1909/660 1008/1910/660 -f 1002/1900/661 998/1896/661 997/1895/661 1004/1902/661 -f 1009/1911/662 1006/1912/662 1005/1913/662 1010/1914/662 -f 1003/1901/657 1002/1900/657 1006/1912/657 1009/1911/657 -f 1004/1906/663 1007/1905/663 1010/1914/663 1005/1913/663 -f 1007/1909/664 1003/1901/664 1009/1915/664 1010/1916/664 -f 1011/1917/665 1000/1918/665 999/1919/665 1012/1920/665 -f 1001/1899/666 1008/1910/666 1011/1921/666 1012/1922/666 -f 998/1896/657 1001/1899/657 1012/1920/657 999/1919/657 -f 1008/1923/667 997/1924/667 1000/1918/667 1011/1917/667 -f 1013/1925/668 1014/1926/668 1015/1927/668 1016/1928/668 -f 1017/1929/660 1014/1926/660 1018/1930/660 1019/1931/660 -f 1018/1930/669 1020/1932/669 1021/1933/669 1022/1934/669 -f 1023/1935/661 1020/1936/661 1013/1937/661 1024/1938/661 -f 1017/1929/659 1019/1931/659 1023/1939/659 1024/1940/659 -f 1018/1930/657 1014/1926/657 1013/1925/657 1020/1932/657 -f 1025/1941/670 1022/1942/670 1021/1943/670 1026/1944/670 -f 1019/1931/660 1018/1930/660 1022/1942/660 1025/1941/660 -f 1020/1936/671 1023/1935/671 1026/1944/671 1021/1943/671 -f 1023/1939/672 1019/1931/672 1025/1945/672 1026/1946/672 -f 1027/1947/673 1016/1948/673 1015/1949/673 1028/1950/673 -f 1017/1929/674 1024/1940/674 1027/1951/674 1028/1952/674 -f 1014/1926/660 1017/1929/660 1028/1950/660 1015/1949/660 -f 1024/1953/675 1013/1954/675 1016/1948/675 1027/1947/675 -f 1029/1955/668 1030/1956/668 1031/1957/668 1032/1958/668 -f 1033/1959/661 1034/1960/661 1035/1961/661 1032/1958/661 -f 1035/1961/669 1036/1962/669 1037/1963/669 1038/1964/669 -f 1039/1965/660 1040/1966/660 1029/1967/660 1038/1968/660 -f 1033/1959/659 1040/1969/659 1039/1970/659 1034/1960/659 -f 1035/1961/657 1038/1964/657 1029/1955/657 1032/1958/657 -f 1041/1971/670 1042/1972/670 1037/1973/670 1036/1974/670 -f 1034/1960/661 1041/1971/661 1036/1974/661 1035/1961/661 -f 1038/1968/676 1037/1973/676 1042/1972/676 1039/1965/676 -f 1039/1970/672 1042/1975/672 1041/1976/672 1034/1960/672 -f 1043/1977/673 1044/1978/673 1031/1979/673 1030/1980/673 -f 1033/1959/674 1044/1981/674 1043/1982/674 1040/1969/674 -f 1032/1958/661 1031/1979/661 1044/1978/661 1033/1959/661 -f 1040/1983/677 1043/1977/677 1030/1980/677 1029/1984/677 -o Trigger_Cube.008 -v -0.906556 -0.031746 3.035327 -v -0.906556 -0.031746 2.964673 -v -0.750972 -0.031746 2.964673 -v -0.750972 -0.031746 3.035327 -v -0.891840 -0.172320 2.964673 -v -0.891840 -0.172320 3.035327 -v -0.858049 -0.254618 3.035327 -v -0.773318 -0.237178 3.035327 -v -0.781494 -0.172320 3.035327 -v -0.781494 -0.172320 2.964673 -v -0.752234 -0.268743 3.035327 -v -0.752234 -0.268743 2.964673 -v -0.773318 -0.237178 2.964673 -v -0.858049 -0.254618 2.964673 -v -0.786277 -0.298175 3.035327 -v -0.786277 -0.298175 2.964673 -vt 0.732975 0.555968 -vt 0.732975 0.444032 -vt 0.960872 0.444032 -vt 0.960872 0.555968 -vt 0.629883 0.999902 -vt 0.501865 0.816180 -vt 0.634112 0.701846 -vt 0.816347 0.838695 -vt 0.816347 0.161306 -vt 0.634112 0.298154 -vt 0.501866 0.183820 -vt 0.629884 0.000098 -vt 0.457090 0.682536 -vt 0.576709 0.615643 -vt 0.629409 0.555968 -vt 0.569271 0.555968 -vt 0.569271 0.444032 -vt 0.629409 0.444032 -vt 0.576709 0.384356 -vt 0.457091 0.317464 -vt 0.224023 0.444032 -vt 0.364968 0.444032 -vt 0.364968 0.555968 -vt 0.224023 0.555967 -vt 0.497976 0.555968 -vt 0.497976 0.444032 -vt 0.000098 0.555967 -vt 0.000098 0.444032 -vn 0.9772 -0.2122 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.8316 0.5554 0.0000 -vn 0.9921 0.1251 0.0000 -vn -0.9251 -0.3798 0.0000 -vn 0.6540 -0.7565 0.0000 -vn -0.5188 -0.8549 0.0000 -vn -0.9946 -0.1041 0.0000 -s off -f 1053/1985/678 1054/1986/678 1047/1987/678 1048/1988/678 -f 1045/1989/679 1050/1990/679 1053/1991/679 1048/1992/679 -f 1047/1993/680 1054/1994/680 1049/1995/680 1046/1996/680 -f 1050/1990/679 1051/1997/679 1052/1998/679 1053/1991/679 -f 1052/1999/681 1055/2000/681 1056/2001/681 1057/2002/681 -f 1054/1994/680 1057/2003/680 1058/2004/680 1049/1995/680 -f 1053/1985/682 1052/1999/682 1057/2002/682 1054/1986/682 -f 1049/2005/683 1058/2006/683 1051/2007/683 1050/2008/683 -f 1056/2001/684 1055/2000/684 1059/2009/684 1060/2010/684 -f 1058/2006/685 1060/2010/685 1059/2009/685 1051/2007/685 -f 1051/1997/679 1059/2009/679 1055/2000/679 1052/1998/679 -f 1057/2003/680 1056/2001/680 1060/2010/680 1058/2004/680 -f 1049/2005/686 1050/2008/686 1045/2011/686 1046/2012/686 -o TriggerGuard_Cube.007 -v -0.991593 0.009137 3.090896 -v -0.991593 0.050129 3.090896 -v -0.991593 0.050129 2.909104 -v -0.991593 0.009137 2.909104 -v -0.359255 0.050129 2.909104 -v -0.359255 0.009137 2.909104 -v -0.359255 0.050129 3.090896 -v -0.359255 0.009137 3.090896 -v -0.952793 -0.032302 3.079741 -v -0.475801 -0.032302 3.079741 -v -0.398056 -0.032302 3.079741 -v -0.952793 -0.032302 2.920259 -v -0.477062 -0.032302 2.920259 -v -0.398056 -0.032302 2.920259 -v -0.547697 -0.243266 2.920259 -v -0.468691 -0.243266 2.920259 -v -0.417833 -0.308250 2.920259 -v -0.496840 -0.308250 2.920259 -v -0.468691 -0.243266 3.079741 -v -0.546437 -0.243266 3.079741 -v -0.495579 -0.308250 3.079741 -v -0.884730 -0.317360 2.926286 -v -0.883469 -0.317360 3.085769 -v -0.417833 -0.308250 3.079741 -v -0.548320 -0.390292 3.079741 -v -0.549581 -0.390292 2.920259 -v -0.470574 -0.390292 2.920259 -v -0.470574 -0.390292 3.079741 -v -0.933383 -0.398929 2.926286 -v -0.932122 -0.398929 3.085769 -v -1.071287 -0.315922 3.087949 -v -1.072548 -0.315922 2.928467 -v -1.022634 -0.234353 3.087949 -v -1.023895 -0.234353 2.928467 -vt 0.956076 0.222809 -vt 0.956106 0.245106 -vt 0.612150 0.245577 -vt 0.612119 0.223279 -vt 0.589852 0.245607 -vt 0.612285 0.344461 -vt 0.589988 0.344491 -vt 0.612315 0.366758 -vt 0.956241 0.343990 -vt 0.956272 0.366288 -vt 0.935199 0.389660 -vt 0.675742 0.390014 -vt 0.633453 0.390072 -vt 0.724411 0.676828 -vt 0.465641 0.676037 -vt 0.465221 0.589286 -vt 0.724676 0.590079 -vt 0.633193 0.199908 -vt 0.676167 0.199849 -vt 0.934939 0.199494 -vt 0.559100 0.338466 -vt 0.558982 0.251717 -vt 0.714431 0.085044 -vt 0.671457 0.085103 -vt 0.643744 0.049793 -vt 0.686720 0.049734 -vt 0.438087 0.338631 -vt 0.437968 0.251882 -vt 0.714322 0.504715 -vt 0.672032 0.504773 -vt 0.344631 0.676928 -vt 0.344210 0.590177 -vt 0.299324 0.590176 -vt 0.299745 0.676927 -vt 0.088672 0.676342 -vt 0.088251 0.589590 -vt 0.393201 0.338693 -vt 0.393082 0.251943 -vt 0.686706 0.540101 -vt 0.644417 0.540159 -vt 0.297859 0.338823 -vt 0.297055 0.252076 -vt 0.340030 0.252017 -vt 0.340149 0.338766 -vt 0.715456 0.584688 -vt 0.673166 0.584746 -vt 0.672371 0.005128 -vt 0.715347 0.005069 -vt 0.088240 0.255640 -vt 0.089045 0.342389 -vt 0.000907 0.343793 -vt 0.000102 0.257045 -vt 0.924132 0.000102 -vt 0.897728 0.044507 -vt 0.897730 0.544750 -vt 0.924255 0.589082 -vt 0.999898 0.045153 -vt 0.973494 0.089559 -vt 0.000523 0.676182 -vt 0.000102 0.589431 -vt 0.973372 0.499490 -vt 0.999898 0.543823 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.2599 0.9656 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.2599 -0.9656 -vn 0.7300 -0.6835 -0.0000 -vn 0.9483 -0.3175 0.0000 -vn -0.9482 0.3175 0.0075 -vn -0.0235 0.9997 0.0002 -vn -0.0233 0.9997 0.0014 -vn -0.0222 0.9998 0.0002 -vn 0.7875 0.6163 0.0000 -vn -0.7875 -0.6163 0.0062 -vn 0.8412 -0.5408 -0.0000 -vn -0.5122 -0.8588 0.0053 -vn -0.5132 -0.8582 0.0046 -vn -0.5122 -0.8589 0.0040 -vn -0.0158 0.0098 -0.9998 -vn -0.0152 0.0109 -0.9998 -vn -0.0146 0.0096 -0.9998 -vn 0.0158 -0.0098 0.9998 -vn 0.0151 -0.0109 0.9998 -vn 0.0170 -0.0103 0.9998 -vn 0.0225 -0.9997 -0.0002 +vn -0.3635 0.0000 -0.9316 +vn -0.1189 -0.0040 0.9929 +vn 0.2846 0.0710 0.9560 +vn 0.9703 0.2419 0.0000 +vn 0.3229 -0.9464 0.0000 +vn 0.1401 -0.0562 -0.9885 +vn -0.9994 -0.0338 -0.0000 +vn -0.0801 0.0322 -0.9963 +vn -0.2273 -0.9738 0.0000 +vn 0.0000 0.3632 0.9317 +vn 0.0000 0.0717 0.9974 +vn -0.2430 0.4146 0.8769 +vn 0.0167 -0.9999 0.0000 +vn -0.2238 0.2670 0.9374 +vn 0.0000 0.3632 -0.9317 +vn 0.0000 0.0717 -0.9974 +vn -0.1148 0.0713 0.9908 +vn -0.4819 -0.8762 0.0000 +vn -0.2445 0.9696 0.0000 +vn 0.5997 0.8003 0.0000 +vn 0.2631 0.3512 0.8986 +vn 0.9589 0.2839 0.0000 +vn -0.8655 0.5010 0.0000 +vn -0.0911 0.3614 -0.9279 +vn 0.1538 0.5175 -0.8417 +vn 0.0000 0.4274 0.9040 +vn -0.6183 0.7860 -0.0009 +vn -0.0001 0.4296 -0.9030 +vn 0.7944 -0.6074 0.0000 +vn -0.7944 -0.6074 0.0000 +vn 0.9838 -0.1658 0.0687 +vn -0.8418 0.2066 0.4987 +vn -0.9846 -0.0670 0.1617 +vn -0.9846 -0.0670 -0.1617 +vn 0.9838 0.1658 -0.0687 +vn 0.9838 -0.1658 -0.0687 +vn 0.4296 0.3456 0.8343 +vn 0.4296 -0.3456 -0.8343 +vn 0.4296 0.3456 -0.8343 +vn 0.4296 0.8343 0.3456 +vn 0.4296 -0.3456 0.8343 +vn -0.0913 0.8947 0.4372 +vn 0.8293 -0.2138 0.5162 +vn 0.8293 0.5162 -0.2138 +vn 0.0464 -0.8899 0.4538 +vn 0.8293 0.2138 -0.5162 +vn 0.8293 -0.2138 -0.5162 +vn 0.8293 0.5162 0.2138 +vn -0.8418 -0.2066 0.4987 +vn -0.0166 -0.3826 -0.9238 +vn -0.0166 0.3826 -0.9238 +vn -0.0166 0.3826 0.9238 +vn -0.0165 -0.9238 -0.3826 +vn 0.1008 -0.2962 -0.9498 +vn 0.0000 -0.3828 -0.9239 +vn -0.8680 0.4588 0.1900 +vn -0.8680 -0.1900 -0.4588 +vn 0.8623 0.1938 -0.4678 +vn -0.8680 -0.4588 -0.1900 +vn 0.8623 0.1938 0.4678 +vn 0.9838 0.0687 0.1658 +vn -0.9846 -0.1617 -0.0670 +vn 0.9838 -0.0687 -0.1658 +vn 0.9838 -0.0687 0.1658 +vn 0.9838 0.0687 -0.1658 +vn -0.9846 0.0670 0.1617 +vn 0.0915 0.3811 0.9200 +vn 0.0915 0.3811 -0.9200 +vn 0.0915 -0.3811 -0.9200 +vn -0.8680 0.1900 -0.4588 +vn -0.8680 0.1900 0.4588 +vn 0.8623 0.4678 -0.1938 +vn 0.8623 -0.1938 0.4678 +vn 0.8623 -0.1938 -0.4678 +vn 0.2182 0.3735 0.9016 +vn -0.0497 0.9227 -0.3822 +vn 0.2182 -0.3735 -0.9016 +vn 0.2182 -0.9016 0.3735 +vn 0.2182 -0.9016 -0.3735 +vn 0.2182 -0.3735 0.9016 +vn -0.0497 0.9227 0.3822 +vn -0.0497 0.3822 -0.9227 +vn -0.0497 -0.3822 -0.9227 +vn -0.0497 -0.3822 0.9227 +vn -0.0497 0.3822 0.9227 +vn 0.3223 -0.8746 -0.3623 +vn 0.3223 0.3623 0.8746 +vn 0.3223 0.3623 -0.8746 +vn 0.3223 0.8746 -0.3623 +vn 0.3223 -0.3623 -0.8746 +vn 0.0000 0.9649 -0.2626 +vn -0.1533 0.3782 0.9130 +vn 0.8293 0.2138 0.5162 +vn -0.1218 0.9170 -0.3798 +vn 0.7075 0.6639 -0.2423 +vn 0.0068 -1.0000 0.0000 +vn 0.6287 0.0000 0.7776 +vn -0.0166 0.9238 -0.3826 +vn -0.8680 0.4588 -0.1900 +vn -0.6679 0.7442 0.0000 +vn -0.6040 -0.2625 -0.7525 +vn -0.6040 -0.2625 0.7525 +vn -0.0187 0.9998 0.0000 +vn -0.0453 -0.3552 -0.9337 +vn 0.0951 -0.3032 -0.9482 +vn 0.1008 -0.2962 0.9498 +vn 0.0915 -0.9200 -0.3811 +vn 0.2182 0.9016 0.3735 +vn 0.3223 -0.3623 0.8746 +vn 0.0951 -0.3032 0.9482 +vn 0.9838 0.1658 0.0687 +vn 0.4296 -0.8343 -0.3456 +vn -0.0165 -0.3826 0.9238 +vn -0.0165 -0.9238 0.3826 +vn 0.8623 -0.4678 -0.1938 +vn 0.2182 0.3735 -0.9016 +vn 0.6968 0.6616 0.2771 +vn -0.9996 -0.0199 0.0200 +vn 0.0915 0.9200 -0.3811 +vn -0.0453 -0.3552 0.9337 +vn -0.8418 -0.4987 0.2066 +vn -0.0497 -0.9227 0.3822 +vn -0.8418 0.4987 0.2066 +vn 0.3746 -0.9272 0.0000 +vn 0.0000 -0.8730 -0.4877 +vn 0.0000 -0.4721 0.8815 +vn 0.0120 -0.3847 0.9230 +vn 0.3071 -0.7601 0.5727 +vn 0.1144 -0.4166 0.9019 +vn 0.1144 -0.4166 -0.9019 +vn -0.9846 0.1617 0.0670 +vn 0.4296 -0.8343 0.3456 +vn 0.0915 0.9200 0.3811 +vn 0.4296 0.8343 -0.3456 +vn 0.8623 -0.4678 0.1938 +vn -0.0497 -0.9227 -0.3822 +vn 0.3223 0.8746 0.3623 +vn 0.8293 -0.5162 -0.2138 +vn -0.9846 -0.1617 0.0670 +vn 0.9997 -0.0244 0.0000 +vn -0.0476 -0.3025 -0.9520 +vn 0.0120 -0.3847 -0.9230 +vn 0.0000 -0.9012 -0.4335 +vn 0.0000 -0.8684 0.4959 +vn -0.0054 -0.3046 0.9525 +vn -0.0054 -0.3046 -0.9525 +vn -0.0047 0.8931 0.4497 +vn -0.0882 0.3033 0.9488 +vn -0.0827 0.3007 -0.9501 +vn 0.0271 0.9095 0.4149 +vn 0.1157 0.9174 -0.3807 +vn 0.0881 0.3478 -0.9334 +vn 0.0018 0.3018 -0.9534 +vn -0.0090 0.9031 -0.4294 +vn -0.0160 0.9203 0.3908 +vn -0.0214 0.3851 0.9226 +vn -0.9952 -0.0952 0.0245 +vn 0.0000 0.5505 -0.8349 +vn -0.9938 0.1009 -0.0477 +vn 0.9884 0.1326 -0.0741 +vn 0.0000 -0.7129 -0.7012 +vn 0.9976 -0.0694 0.0010 +vn 0.0049 -0.9714 0.2372 +vn -0.0045 0.8583 -0.5131 +vn 0.0014 -0.3780 -0.9258 +vn 0.9905 0.1284 -0.0490 +vn 0.0049 -0.9716 0.2367 +vn -0.9957 -0.0410 -0.0837 +vn 0.9959 -0.0250 -0.0874 +vn -0.0046 0.8581 -0.5135 +vn -0.9919 0.1050 -0.0715 +vn 0.9172 -0.1506 -0.3689 +vn 0.0046 -0.9528 -0.3036 +vn -0.0031 0.5229 -0.8524 +vn 0.0017 -0.3780 -0.9258 +vn -0.0028 0.4716 -0.8818 +vn -0.8491 -0.1997 -0.4891 +vn 0.8460 -0.1961 -0.4958 +vn 0.0018 -0.3780 -0.9258 +vn -0.0026 0.4282 -0.9037 +vn -0.8941 -0.1750 -0.4123 +vn 0.8917 -0.1711 -0.4191 +vn 0.0045 -0.9351 -0.3544 +vn 0.0044 -0.9187 -0.3950 +vn -0.9196 -0.1544 -0.3613 +vn -0.5507 -0.3194 -0.7712 +vn 0.0050 -0.9715 0.2371 +vn 0.0000 -0.9012 0.4335 +vn 0.0000 0.8607 -0.5091 +vn 0.0015 0.8611 -0.5085 +vn -0.8418 0.2066 -0.4987 +vn -0.8418 -0.2066 -0.4987 +vn -0.8680 -0.1900 0.4588 +vn -0.8680 -0.4588 0.1900 +vn -0.9846 0.0670 -0.1617 +vn 0.0915 -0.3811 0.9200 +vn 0.8623 0.4678 0.1938 +vn 0.3223 -0.8746 0.3623 +vn 0.6287 0.0000 -0.7776 +vn -0.0165 0.9238 0.3826 +vn 0.0915 -0.9200 0.3811 +vn 0.2182 0.9016 -0.3735 +vn 0.1948 -0.9808 0.0000 +vn -0.8418 -0.4987 -0.2066 +vn -0.8418 0.4987 -0.2066 +vn -0.9846 0.1617 -0.0670 +vn 0.8293 -0.5162 0.2138 +vn -0.1409 0.9049 -0.4015 +vn 0.1561 0.3805 0.9115 +vn 1.0000 0.0017 -0.0001 +vn -0.2273 -0.8997 -0.3727 +vn -0.0913 0.8947 -0.4372 +vn 0.0864 0.8928 -0.4421 +vn -0.2272 -0.8997 0.3727 +vn -0.1218 0.9170 0.3798 +vn -0.1971 -0.3752 -0.9058 +vn -0.1970 -0.3752 0.9058 +vn -0.1533 0.3782 -0.9130 +vn 1.0000 0.0017 0.0004 +vn 1.0000 -0.0017 -0.0001 +vn 1.0000 0.0017 -0.0093 +vn 0.9999 0.0008 -0.0108 +vn 0.0864 0.8928 0.4421 +vn 0.0000 0.9649 0.2626 +vn 0.0000 0.8607 0.5091 +vn -0.0016 0.8610 0.5087 +vn 0.0005 0.9245 0.3812 +vn 0.0014 -0.3780 0.9258 +vn 0.0050 -0.9664 -0.2571 +vn -0.5507 -0.3194 0.7712 +vn -0.9140 -0.1581 0.3736 +vn 0.0053 -0.9195 0.3932 +vn 0.0057 -0.9362 0.3516 +vn 0.0017 -0.3780 0.9258 +vn 0.8917 -0.1711 0.4191 +vn -0.8883 -0.1782 0.4232 +vn -0.0032 0.4293 0.9031 +vn 0.0018 -0.3780 0.9258 +vn 0.8460 -0.1961 0.4958 +vn -0.8491 -0.1997 0.4891 +vn -0.0036 0.4732 0.8809 +vn -0.0038 0.5242 0.8516 +vn 0.0056 -0.9534 0.3016 +vn 0.9172 -0.1506 0.3689 +vn -0.9919 0.1050 0.0715 +vn -0.0046 0.8581 0.5135 +vn 0.9959 -0.0250 0.0874 +vn -0.9957 -0.0410 0.0837 +vn 0.0049 -0.9716 -0.2367 +vn 0.9905 0.1284 0.0490 +vn -0.0045 0.8583 0.5131 +vn 0.0049 -0.9714 -0.2372 +vn 0.9976 -0.0694 -0.0010 +vn 0.0000 -0.7129 0.7012 +vn 0.9884 0.1326 0.0741 +vn -0.9938 0.1009 0.0476 +vn 0.0000 0.5505 0.8349 +vn -0.9952 -0.0952 -0.0245 +vn 1.0000 -0.0030 0.0052 +vn 1.0000 -0.0017 0.0040 +vn 1.0000 -0.0008 0.0055 +vn 0.0464 -0.8899 -0.4538 +vn 0.0000 -0.8684 -0.4959 +vn -0.0476 -0.3025 0.9520 +vn 0.0000 -0.4721 -0.8815 +vn -0.2513 0.8942 0.3704 +vn -0.2513 -0.3704 0.8942 +vn -0.2513 0.8942 -0.3704 +vn -0.2513 -0.8942 -0.3704 +vn -0.2513 0.3704 0.8942 +vn -0.2513 0.3704 -0.8942 +vn -0.2513 -0.3704 -0.8942 +vn -0.2513 -0.8942 0.3704 +vn 0.8327 0.2119 -0.5115 +vn 0.8327 0.5115 0.2119 +vn 0.8327 -0.2119 0.5115 +vn 0.8327 -0.5115 -0.2119 +vn 0.8328 0.5115 -0.2119 +vn 0.8327 0.2119 0.5115 +vn 0.8327 -0.5115 0.2119 +vn 0.8327 -0.2119 -0.5115 +vn 0.5165 -0.7911 0.3277 +vn 0.5165 -0.3277 -0.7911 +vn 0.5164 0.3277 -0.7911 +vn 0.5165 0.7911 0.3277 +vn 0.5165 -0.3277 0.7911 +vn 0.5164 -0.7911 -0.3277 +vn 0.5164 0.7911 -0.3277 +vn 0.5165 0.3277 0.7911 +vn 0.8327 0.5115 -0.2119 +vn 0.5165 -0.7911 -0.3277 +vn 0.5165 0.3277 -0.7911 +vn -0.9087 0.4175 0.0000 +vn -0.4846 0.8748 0.0000 +vn 0.5399 0.8417 0.0000 +vn -0.6812 -0.7321 0.0000 +vn 0.9972 0.0747 0.0000 +vn -0.9087 -0.4175 0.0000 +vn -0.4846 -0.8748 0.0000 +vn 0.5399 -0.8417 0.0000 +vn -0.6812 0.7321 0.0000 +vn 0.9972 -0.0747 0.0000 +vn -0.9087 0.0000 0.4175 +vn -0.4846 0.0000 0.8748 +vn 0.5399 0.0000 0.8417 +vn -0.6812 -0.0000 -0.7321 +vn 0.9972 0.0000 0.0747 +vn -0.9087 0.0000 -0.4175 +vn -0.4846 0.0000 -0.8748 +vn 0.5399 0.0000 -0.8417 +vn -0.6812 -0.0000 0.7321 +vn 0.9972 0.0000 -0.0747 +vn -0.9087 0.2952 0.2952 +vn -0.4846 0.6185 0.6185 +vn 0.5399 0.5952 0.5952 +vn -0.6812 -0.5177 -0.5177 +vn 0.9972 0.0528 0.0528 +vn 0.0000 -0.7071 0.7071 +vn -0.9087 -0.2952 -0.2952 +vn -0.4846 -0.6185 -0.6185 +vn 0.5399 -0.5952 -0.5952 +vn -0.6812 0.5177 0.5177 +vn 0.9972 -0.0528 -0.0528 +vn 0.0000 0.7071 -0.7071 +vn -0.9087 -0.2952 0.2952 +vn -0.4846 -0.6185 0.6185 +vn 0.5399 -0.5952 0.5952 +vn -0.6812 0.5177 -0.5177 +vn 0.9972 -0.0528 0.0528 +vn 0.0000 -0.7071 -0.7071 +vn -0.9087 0.2952 -0.2952 +vn -0.4846 0.6185 -0.6185 +vn 0.5399 0.5952 -0.5952 +vn -0.6812 -0.5177 0.5177 +vn 0.9972 0.0528 -0.0528 +vn -0.0000 0.7071 0.7071 +vn -0.5000 -0.3505 0.7920 +vn -0.5000 -0.3505 -0.7920 +vn 0.4999 -0.3505 -0.7920 +vn 0.0000 0.7558 0.6549 +vn -0.9545 0.2981 0.0000 +vn 0.9792 -0.2029 -0.0000 +vn 1.0000 0.0012 -0.0021 +vn 1.0000 -0.0099 0.0001 +vn 0.5057 -0.3083 -0.8057 +vn -0.0010 0.0022 1.0000 +vn -0.0024 -0.0002 1.0000 +vn 0.0024 0.0001 -1.0000 +vn 0.0006 0.0024 -1.0000 +vn -0.0444 -0.5183 0.8540 +vn -0.0480 -0.5123 -0.8575 +vn -0.2050 -0.5011 0.8407 +vn -0.0303 0.5186 0.8545 +vn -0.2276 -0.4268 -0.8752 +vn -0.0436 0.5184 -0.8541 +vn -0.0837 0.9965 -0.0043 +vn -0.8999 0.4360 0.0000 +vn -0.0223 0.9998 0.0006 +vn -0.5132 -0.8583 0.0046 +vn -0.0159 0.0095 -0.9998 +vn -0.0152 0.0106 -0.9998 +vn -0.0148 0.0090 -0.9999 +vn 0.0158 -0.0101 0.9998 +vn 0.0170 -0.0105 0.9998 vn 0.0220 -0.9998 -0.0014 -vn 0.0238 -0.9997 -0.0002 +vn 0.0237 -0.9997 0.0003 +vn -0.8588 0.5122 0.0068 vn -0.0123 0.0059 -0.9999 vn -0.0127 0.0076 -0.9999 -vn -0.0116 0.0069 -0.9999 vn 0.5123 0.8588 -0.0053 vn 0.5112 0.8595 -0.0039 -vn 0.5122 0.8589 -0.0040 -vn 0.0126 -0.0061 0.9999 +vn 0.0126 -0.0062 0.9999 vn 0.0105 -0.0062 0.9999 -vn 0.0116 -0.0069 0.9999 +vn -0.0003 -0.9326 0.3608 +vn 0.8078 0.4660 0.3608 +vn -0.0003 -0.9326 -0.3609 +vn 0.8078 0.4660 -0.3608 +vn 0.8635 0.5043 0.0015 +vn -0.0016 0.0013 1.0000 +vn 0.0017 -0.0010 1.0000 +vn -0.0010 -0.0018 1.0000 +vn -0.8692 0.4944 -0.0020 +vn -0.8693 0.4943 0.0020 +vn 0.0010 -0.0017 -1.0000 +vn 0.0016 -0.0013 -1.0000 +vn 0.0017 0.0010 -1.0000 +vn -0.9999 -0.0109 -0.0005 +vn -0.0047 1.0000 -0.0010 +vn -0.0064 1.0000 -0.0020 +vn -0.0049 1.0000 0.0013 +vn 0.0006 0.0019 -1.0000 +vn 0.9999 0.0143 0.0013 +vn 0.0020 0.0002 1.0000 +vn -0.0000 0.0020 1.0000 +vn -0.5312 -0.1612 -0.8318 +vn -0.5312 -0.1612 0.8317 +vn -0.7050 0.7091 -0.0129 +vn -0.1102 0.0163 -0.9938 +vn -0.4866 0.0734 0.8705 +vn 0.9138 0.4059 0.0141 +vn -0.6209 0.0733 -0.7804 +vn -0.7075 -0.7066 -0.0129 +vn -0.3195 0.0434 -0.9466 +vn -0.3426 0.0452 0.9384 +vn -0.9534 0.3010 -0.0206 +vn -0.2953 0.0349 0.9548 +vn -0.8809 0.4730 -0.0163 +vn -0.9909 -0.1325 -0.0246 +vn -0.9824 0.1852 -0.0253 +vn -0.9994 0.0236 -0.0273 +vn -0.4566 0.0515 -0.8882 +vn -0.5938 0.0671 0.8018 +vn -0.1102 0.0163 0.9938 +vn 0.0445 -0.0050 0.9990 +vn -0.0753 0.0298 0.9967 +vn -0.4737 0.1296 -0.8711 +vn -0.0753 0.0298 -0.9967 +vn 0.0445 -0.0050 -0.9990 +vn -0.5089 0.0800 -0.8571 +vn -0.2460 0.0289 -0.9688 +vn -0.6947 -0.7193 0.0000 +vn -0.4737 0.1296 0.8711 +vn -0.2460 0.0289 0.9688 +vn 0.0009 0.0005 -1.0000 +vn -0.0010 0.0003 1.0000 +vn 0.3915 0.0009 -0.9202 +vn -0.0004 1.0000 -0.0010 +vn 0.3907 -0.0861 -0.9165 +vn 0.3901 -0.0868 -0.9167 +vn 0.0006 0.0001 1.0000 +vn -0.0006 0.0000 -1.0000 +vn -0.0000 -0.0006 -1.0000 +vn -0.1957 0.4353 -0.8788 +vn -0.5474 0.1418 0.8247 +vn 0.9777 -0.2102 0.0004 +vn 0.9778 -0.2095 0.0005 +vn 0.9766 -0.2151 0.0002 +vn 0.4679 0.0369 0.8830 +vn 0.3899 -0.0842 0.9170 +vn 0.3909 -0.0838 0.9166 +vn 0.3899 0.1121 -0.9140 +vn 0.3898 -0.0835 -0.9171 +vn 0.0053 1.0000 -0.0001 +vn 0.3901 -0.0856 0.9168 +vn 0.0038 -0.3827 -0.9239 +vn 0.0038 0.3827 -0.9239 +vn -0.0059 0.9258 -0.3779 +vn -0.0059 0.9258 0.3779 +vn -0.0059 -0.9258 0.3779 +vn -0.0059 -0.9258 -0.3779 +vn 0.0340 0.3825 0.9233 +vn 0.0340 -0.3825 0.9233 +vn 0.0340 -0.9233 0.3825 +vn 0.0340 -0.9233 -0.3825 +vn -0.0434 -0.9230 -0.3823 +vn -0.0434 -0.9230 0.3823 +vn -0.9907 -0.1259 0.0522 +vn -0.9966 0.0762 0.0315 +vn 0.9966 0.0762 -0.0316 +vn -0.9907 -0.0522 -0.1259 +vn -0.0434 0.9230 0.3823 +vn -0.0434 0.9230 -0.3823 +vn -0.9907 0.1260 -0.0522 +vn -0.9907 0.0522 0.1259 +vn -0.9907 0.1260 0.0522 +vn -0.9907 0.0522 -0.1260 +vn 0.9966 0.0762 0.0315 +vn -0.9907 -0.1260 -0.0522 +vn 0.9966 0.0315 -0.0762 +vn -0.9907 -0.0522 0.1260 +vn -0.9966 -0.0315 0.0761 +vn 0.9919 -0.0486 0.1174 +vn -0.9966 0.0315 0.0762 +vn -0.9966 0.0761 -0.0315 +vn 0.9919 0.0486 0.1173 +vn -0.0801 0.0322 0.9963 +vn 0.1401 -0.0562 0.9885 +vn 0.2846 0.0710 -0.9560 +vn -0.1189 -0.0040 -0.9929 +vn -0.2433 0.4167 -0.8759 +vn 0.0724 0.0716 -0.9948 +vn 0.0721 0.0716 0.9948 +vn -0.0911 0.3614 0.9279 +vn -0.1148 0.0713 -0.9908 +vn 0.5997 0.8002 0.0000 +vn 0.1538 0.5175 0.8417 +vn -0.2238 0.2670 -0.9374 +vn 0.2631 0.3512 -0.8986 +vn -0.6174 0.7866 0.0000 +vn -0.0001 0.4265 -0.9045 +vn 0.0000 0.4280 -0.9038 +vn -0.0165 -0.3826 -0.9238 +vn -0.0165 0.3826 -0.9238 +vn -0.0165 0.3826 0.9238 +vn -0.0166 -0.9238 -0.3826 +vn 0.6968 0.6616 -0.2771 +vn -0.0165 0.9238 -0.3826 +vn -0.5855 0.7664 0.2642 +vn -0.6287 0.0000 -0.7776 +vn -0.6287 0.0000 0.7776 +vn -0.5855 0.7664 -0.2642 +vn 0.0000 0.9224 -0.3863 +vn 0.0000 0.9224 0.3863 +vn -0.0166 -0.3826 0.9238 +vn -0.0166 -0.9238 0.3826 +vn 0.7075 0.6639 0.2423 +vn -0.9943 0.0422 -0.0983 +vn -0.9996 -0.0201 -0.0197 +vn -0.9998 -0.0177 0.0000 +vn -0.9943 0.0422 0.0983 +vn 0.3071 -0.7601 -0.5727 +vn 0.0000 -0.8730 0.4877 +vn 0.9865 0.0625 -0.1514 +vn 0.9865 0.0625 0.1514 +vn 0.9990 -0.0137 0.0428 +vn 0.9990 -0.0137 -0.0428 +vn -0.0052 -0.3029 0.9530 +vn -0.0052 -0.3029 -0.9530 +vn -0.1503 0.9100 0.3864 +vn -0.0827 0.3007 0.9501 +vn -0.0882 0.3033 -0.9488 +vn 0.1146 0.9216 0.3708 +vn 0.0212 0.9029 -0.4293 +vn 0.1561 0.3805 -0.9115 +vn -0.0214 0.3851 -0.9226 +vn -0.0162 0.9139 -0.4055 +vn -0.0085 0.9098 0.4150 +vn 0.0018 0.3018 0.9534 +vn -0.9938 0.1009 -0.0476 +vn 0.0000 -0.9716 0.2367 +vn 0.0000 0.8580 -0.5136 +vn 0.0013 -0.3780 -0.9258 +vn 0.0000 -0.9727 0.2319 +vn -0.0017 -0.9728 0.2318 +vn -0.0045 0.8580 -0.5136 +vn -0.0045 0.8483 -0.5295 +vn 0.0000 0.8535 -0.5210 +vn 0.9172 -0.1505 -0.3688 +vn 0.0056 -0.9534 -0.3016 +vn -0.0038 0.5242 -0.8516 +vn -0.0036 0.4732 -0.8809 +vn 0.8531 -0.1929 -0.4848 +vn -0.0032 0.4293 -0.9031 +vn -0.8883 -0.1782 -0.4232 +vn 0.8917 -0.1710 -0.4190 +vn 0.0057 -0.9361 -0.3516 +vn 0.0053 -0.9195 -0.3932 +vn -0.9140 -0.1581 -0.3736 +vn -0.5515 -0.3178 -0.7713 +vn 0.0000 -0.9691 0.2466 +vn 0.0050 -0.9664 0.2571 +vn 0.0008 0.9233 -0.3841 +vn -0.0166 0.9238 0.3826 +vn -0.0061 0.8873 -0.4611 +vn 0.0881 0.3478 0.9334 +vn 1.0000 0.0016 -0.0006 +vn 1.0000 0.0011 -0.0013 +vn -0.1970 -0.3752 -0.9058 +vn 1.0000 0.0014 -0.0009 +vn 1.0000 -0.0000 -0.0034 +vn 1.0000 -0.0020 -0.0057 +vn 1.0000 -0.0017 -0.0040 +vn -0.0013 -0.9234 -0.3838 +vn 0.0000 -0.9691 -0.2466 +vn 0.0050 -0.9715 -0.2371 +vn -0.5515 -0.3178 0.7713 +vn -0.9196 -0.1544 0.3613 +vn 0.0044 -0.9187 0.3950 +vn 0.0045 -0.9351 0.3544 +vn 0.8917 -0.1710 0.4190 +vn -0.8941 -0.1750 0.4123 +vn -0.0026 0.4282 0.9037 +vn 0.8531 -0.1929 0.4848 +vn -0.0028 0.4716 0.8818 +vn -0.0031 0.5229 0.8524 +vn 0.0046 -0.9528 0.3036 +vn 0.9172 -0.1505 0.3688 +vn -0.0045 0.8580 0.5136 +vn 0.0000 0.8535 0.5210 +vn -0.0045 0.8483 0.5295 +vn 0.0000 -0.9727 -0.2319 +vn -0.0012 -0.9730 -0.2307 +vn 0.0013 -0.3780 0.9258 +vn 0.0000 0.8580 0.5136 +vn 0.0000 -0.9716 -0.2367 +vn 0.9999 0.0005 0.0125 +vn 0.9999 0.0008 0.0108 +vn -0.0001 -0.9232 0.3843 +vn 0.5164 -0.7911 0.3277 +vn 0.5164 -0.3277 -0.7911 +vn 0.5164 0.7911 0.3277 +vn 0.5165 0.7911 -0.3277 +vn 0.5164 -0.3277 0.7911 +vn 0.0641 -0.4932 -0.8676 +vn 0.0641 0.4932 0.8676 +vn 0.0641 0.8676 -0.4932 +vn 0.0641 -0.8676 0.4932 +vn 0.0641 0.2648 -0.9622 +vn 0.0641 -0.2648 0.9622 +vn 0.0641 0.9622 0.2648 +vn 0.0641 -0.9622 -0.2648 s off -f 1064/2013/687 1063/2014/687 1065/2015/687 1066/2016/687 -f 1066/2017/688 1065/2015/688 1067/2018/688 1068/2019/688 -f 1068/2020/689 1067/2018/689 1062/2021/689 1061/2022/689 -f 1068/2020/690 1061/2022/690 1069/2023/690 1070/2024/690 1071/2025/690 -f 1065/2015/691 1063/2014/691 1062/2021/691 1067/2018/691 -f 1072/2026/692 1073/2027/692 1070/2028/692 1069/2029/692 -f 1064/2013/693 1066/2016/693 1074/2030/693 1073/2031/693 1072/2032/693 -f 1066/2017/694 1068/2019/694 1071/2033/694 1074/2034/694 -f 1075/2035/687 1076/2036/687 1077/2037/687 1078/2038/687 -f 1074/2034/695 1071/2033/695 1079/2039/695 1076/2040/695 -f 1071/2025/689 1070/2024/689 1080/2041/689 1079/2042/689 -f 1070/2028/696 1073/2027/696 1075/2043/696 1080/2044/696 -f 1073/2031/687 1074/2030/687 1076/2036/687 1075/2035/687 -f 1081/2045/697 1078/2046/697 1082/2047/698 1083/2048/699 -f 1076/2040/700 1079/2039/700 1084/2049/700 1077/2050/700 -f 1080/2044/701 1075/2043/701 1078/2046/701 1081/2045/701 -f 1079/2042/689 1080/2041/689 1081/2051/689 1084/2052/689 -f 1085/2053/692 1086/2054/692 1087/2055/692 1088/2056/692 -f 1084/2052/689 1081/2051/689 1085/2057/689 1088/2058/689 -f 1078/2038/687 1077/2037/687 1087/2059/687 1086/2060/687 -f 1077/2050/702 1084/2049/702 1088/2056/702 1087/2055/702 -f 1089/2061/703 1090/2062/704 1091/2063/705 1092/2064/705 -f 1078/2038/706 1086/2060/706 1089/2065/707 1082/2066/708 -f 1085/2057/709 1081/2051/709 1083/2067/710 1090/2068/711 -f 1086/2054/712 1085/2053/712 1090/2062/713 1089/2061/714 -f 1082/2066/715 1089/2065/716 1092/2069/717 1094/2070/717 -f 1083/2048/718 1082/2047/719 1094/2071/720 1093/2072/720 -f 1090/2068/721 1083/2067/722 1093/2073/723 1091/2074/723 -o UndeRail_Cube.005 -v -1.185225 0.299229 2.771775 -v -1.185225 0.078919 2.771775 -v -1.579320 0.146982 2.771775 -v -1.579320 0.299229 2.771775 -v -0.726389 0.070637 2.798583 -v -0.726389 0.299229 2.798583 -v -0.726389 0.299229 3.201417 -v -0.726389 0.070637 3.201417 -v -0.770558 0.343398 2.798583 -v -1.096886 0.343398 2.798583 -v -1.096886 0.343398 3.201417 -v -0.770558 0.343398 3.201417 -v -1.185225 0.078919 3.228225 -v -1.185225 0.299229 3.228225 -v -1.579320 0.299229 3.228225 -v -1.579320 0.146982 3.228225 -v -1.185225 0.343398 3.201417 -v -1.185225 0.343398 2.798583 -v -1.579320 0.343398 2.798583 -v -1.579320 0.343398 3.201417 -v -1.096886 0.026467 2.798583 -v -0.770558 0.026467 2.798583 -v -0.770558 0.026467 3.201417 -v -1.096886 0.026467 3.201417 -v -1.096886 0.070637 2.771775 -v -1.096886 0.299229 2.771775 -v -0.770558 0.299229 2.771775 -v -0.770558 0.070637 2.771775 -v -0.770558 0.070637 3.228225 -v -0.770558 0.299229 3.228225 -v -1.096886 0.299229 3.228225 -v -1.096886 0.070637 3.228225 -v -1.690351 0.200246 3.201417 -v -1.690351 0.287913 3.201417 -v -1.690351 0.287913 2.798583 -v -1.690351 0.200246 2.798583 -v -1.184581 0.033984 3.201417 -v -1.184581 0.033984 2.798583 -v -1.659805 0.134929 3.201417 -v -1.579964 0.102270 3.201417 -v -1.667659 0.194088 3.228225 -v -1.667659 0.291126 3.228225 -v -1.646801 0.339453 3.201417 -v -1.659805 0.134929 2.798583 -v -1.667659 0.194088 2.771775 -v -1.579964 0.102270 2.798583 -v -1.667040 0.336028 2.798583 -v -1.667659 0.291126 2.771775 -vt 0.496907 0.334267 -vt 0.496248 0.427323 -vt 0.330718 0.396651 -vt 0.331617 0.332937 -vt 0.796702 0.313152 -vt 0.699270 0.313152 -vt 0.699270 0.141452 -vt 0.796702 0.141452 -vt 0.672646 0.313152 -vt 0.534343 0.312606 -vt 0.534099 0.142197 -vt 0.672646 0.141452 -vt 0.495875 0.027439 -vt 0.496587 0.120544 -vt 0.331121 0.122196 -vt 0.330318 0.058264 -vt 0.496747 0.142387 -vt 0.497024 0.312498 -vt 0.332011 0.311404 -vt 0.331527 0.143826 -vt 0.962417 0.313152 -vt 0.823327 0.313152 -vt 0.823327 0.141452 -vt 0.962417 0.141452 -vt 0.533520 0.431122 -vt 0.534247 0.334472 -vt 0.672551 0.335076 -vt 0.671920 0.432340 -vt 0.671602 0.022049 -vt 0.672523 0.119489 -vt 0.533976 0.120298 -vt 0.533160 0.023583 -vt 0.237618 0.142584 -vt 0.274533 0.143000 -vt 0.272621 0.312625 -vt 0.235706 0.312209 -vt 0.495520 0.005286 -vt 0.532760 0.001691 -vt 0.495918 0.449476 -vt 0.533168 0.453017 -vt 0.817912 0.125359 -vt 0.796702 0.119430 -vt 0.678060 0.125358 -vt 0.699270 0.119430 -vt 0.817912 0.329246 -vt 0.796702 0.335174 -vt 0.678060 0.329246 -vt 0.699270 0.335174 -vt 0.294957 0.050376 -vt 0.328880 0.036291 -vt 0.292958 0.078293 -vt 0.293666 0.119719 -vt 0.302947 0.143203 -vt 0.295361 0.404466 -vt 0.293427 0.376539 -vt 0.329265 0.418612 -vt 0.295134 0.312879 -vt 0.294347 0.335145 -vt 0.208418 0.134257 -vt 0.235192 0.127765 -vt 0.276053 0.128226 -vt 0.300664 0.131838 -vt 0.206326 0.319876 -vt 0.232947 0.326970 -vt 0.294189 0.319085 -vt 0.273808 0.327430 -vt 0.999933 0.141452 -vt 0.999933 0.313152 -vt 0.671720 0.454277 -vt 0.671350 0.000067 -vt 0.169020 0.311458 -vt 0.170932 0.141832 -vt 0.207256 0.142242 -vt 0.205344 0.311867 -vt 0.000067 0.309553 -vt 0.001979 0.139928 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.0462 -0.5153 0.8558 -vn 0.0000 0.5189 0.8549 -vn -0.0462 -0.5153 -0.8558 -vn 0.0000 0.5189 -0.8549 -vn 0.4606 -0.4605 0.7588 -vn 0.4605 0.4606 0.7588 -vn 0.4606 -0.4605 -0.7588 -vn 0.4605 0.4606 -0.7588 -vn -0.2180 -0.4596 0.8610 -vn -0.0393 0.5077 0.8606 -vn -0.2180 -0.4596 -0.8610 -vn -0.0453 0.5154 -0.8557 -vn -0.7527 -0.3520 0.5563 -vn -0.6638 0.5609 0.4947 -vn -0.7527 -0.3520 -0.5563 -vn -0.7340 0.3556 -0.5787 -vn -0.0854 -0.9963 -0.0000 -vn 0.0000 -0.5188 -0.8549 -vn 0.5189 0.0000 -0.8549 -vn 0.7071 -0.7071 -0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.5189 0.0000 0.8549 -vn 0.0000 -0.5188 0.8549 -vn -0.3786 -0.9256 -0.0000 -vn -0.0727 0.9974 -0.0024 -vn -0.0883 -0.5113 0.8549 -vn -0.0883 -0.5113 -0.8549 -vn -0.9058 -0.4236 -0.0000 -vn -0.7633 0.0000 0.6461 -vn -0.8303 0.5571 0.0185 -vn -0.7633 0.0000 -0.6461 -vn -0.1702 -0.9854 -0.0000 -s off -f 1095/2075/724 1096/2076/724 1097/2077/724 1098/2078/724 -f 1099/2079/725 1100/2080/725 1101/2081/725 1102/2082/725 -f 1103/2083/726 1104/2084/726 1105/2085/726 1106/2086/726 -f 1107/2087/727 1108/2088/727 1109/2089/727 1110/2090/727 -f 1111/2091/726 1112/2092/726 1113/2093/726 1114/2094/726 -f 1115/2095/728 1116/2096/728 1117/2097/728 1118/2098/728 -f 1119/2099/724 1120/2100/724 1121/2101/724 1122/2102/724 -f 1123/2103/727 1124/2104/727 1125/2105/727 1126/2106/727 -f 1127/2107/729 1128/2108/729 1129/2109/729 1130/2110/729 -f 1131/2111/730 1118/2112/730 1126/2106/730 1107/2087/730 -f 1108/2088/731 1125/2105/731 1105/2085/731 1111/2091/731 -f 1132/2113/732 1096/2076/732 1119/2099/732 1115/2114/732 -f 1112/2092/733 1104/2084/733 1120/2100/733 1095/2075/733 -f 1117/2115/734 1102/2082/734 1123/2116/734 -f 1106/2117/735 1124/2118/735 1101/2081/735 -f 1116/2119/736 1122/2120/736 1099/2079/736 -f 1103/2121/737 1100/2080/737 1121/2122/737 -f 1133/2123/738 1134/2124/738 1110/2090/738 1135/2125/738 -f 1136/2126/739 1109/2089/739 1114/2094/739 1137/2127/739 -f 1138/2128/740 1139/2129/740 1097/2077/740 1140/2130/740 -f 1141/2131/741 1113/2093/741 1098/2078/741 1142/2132/741 -f 1133/2133/742 1135/2134/742 1127/2107/742 -f 1136/2135/743 1137/2136/743 1128/2108/743 -f 1138/2137/744 1130/2110/744 1139/2138/744 -f 1141/2139/745 1142/2140/745 1129/2109/745 -f 1115/2095/746 1118/2098/746 1131/2141/746 1132/2142/746 -f 1126/2106/727 1125/2105/727 1108/2088/727 1107/2087/727 -f 1105/2085/726 1104/2084/726 1112/2092/726 1111/2091/726 -f 1120/2100/724 1119/2099/724 1096/2076/724 1095/2075/724 -f 1116/2143/747 1115/2114/747 1119/2099/747 1122/2102/747 -f 1104/2084/733 1103/2083/733 1121/2101/733 1120/2100/733 -f 1100/2080/748 1099/2079/748 1122/2120/748 1121/2122/748 -f 1117/2097/749 1116/2096/749 1099/2079/749 1102/2082/749 -f 1103/2083/750 1106/2086/750 1101/2081/750 1100/2080/750 -f 1124/2118/751 1123/2116/751 1102/2082/751 1101/2081/751 -f 1118/2112/752 1117/2144/752 1123/2103/752 1126/2106/752 -f 1106/2086/731 1105/2085/731 1125/2105/731 1124/2104/731 -f 1140/2145/753 1134/2146/753 1133/2147/753 1138/2148/753 -f 1110/2090/727 1109/2089/727 1136/2126/727 1135/2125/727 -f 1114/2094/754 1113/2093/754 1141/2131/754 1137/2127/754 -f 1098/2078/724 1097/2077/724 1139/2129/724 1142/2132/724 -f 1095/2075/733 1098/2078/733 1113/2093/733 1112/2092/733 -f 1109/2089/731 1108/2088/731 1111/2091/731 1114/2094/731 -f 1107/2087/755 1110/2090/755 1134/2124/755 1131/2111/755 -f 1097/2077/756 1096/2076/756 1132/2113/756 1140/2130/756 -f 1138/2148/757 1133/2147/757 1127/2107/757 1130/2110/757 -f 1135/2134/758 1136/2135/758 1128/2108/758 1127/2107/758 -f 1137/2127/759 1141/2131/759 1129/2109/759 1128/2108/759 -f 1142/2140/760 1139/2138/760 1130/2110/760 1129/2109/760 -f 1132/2149/761 1131/2150/761 1134/2146/761 1140/2145/761 -o Underail_Cube.004 -v -0.033837 0.094104 2.927233 -v -0.033837 -0.016338 2.927233 -v -0.115306 -0.142061 2.927233 -v -0.115306 0.094104 2.927233 -v 0.797049 0.094104 2.927233 -v 0.797049 -0.016338 2.927233 -v 0.796577 -0.079782 3.048582 -v 0.796577 -0.079782 2.951418 -v 0.886076 -0.258069 2.951418 -v 0.886076 -0.258069 3.048582 -v 0.797049 -0.016338 3.072767 -v 0.797049 0.094104 3.072767 -v -0.033837 0.094104 3.072767 -v -0.033837 -0.016338 3.072767 -v -0.026079 -0.079782 2.951418 -v -0.115306 0.094104 3.072767 -v -0.272459 0.094104 2.927233 -v -0.272459 0.094104 3.072767 -v -0.115306 -0.142061 3.072767 -v -0.272459 -0.098487 3.072767 -v -0.264701 -0.161930 3.048582 -v -0.107548 -0.205505 3.048582 -v -0.272459 -0.098487 2.927233 -v -0.026079 -0.079782 3.048582 -v -0.107548 -0.205505 2.951418 -v -0.264701 -0.161930 2.951418 -v 0.886547 0.093771 3.072767 -v 0.886547 0.093771 2.927233 -v 0.886547 -0.194626 3.072767 -v 0.888072 -0.069961 3.072767 -v 0.917361 0.000750 3.072767 -v 0.988072 0.030039 3.072767 -v 1.058783 0.000750 3.072767 -v 1.088072 -0.069961 3.072767 -v 1.088250 -0.195375 3.072767 -v 1.088250 0.093022 3.072767 -v 0.886547 -0.194626 2.927233 -v 1.088250 -0.195375 2.927233 -v 1.087778 -0.258818 2.951418 -v 1.087778 -0.258818 3.048582 -v 1.152616 -0.153109 2.951418 -v 1.152616 -0.153109 3.048582 -v 1.153087 -0.089666 3.072767 -v 1.088250 0.093022 2.927233 -v 0.888072 -0.069961 2.927233 -v 0.917362 -0.140671 2.927233 -v 0.988072 -0.169961 2.927233 -v 1.058783 -0.140671 2.927233 -v 1.088072 -0.069961 2.927233 -v 1.153087 -0.089666 2.927233 -v 1.153087 0.092782 2.927233 -v 1.153087 0.092782 3.072767 -v 0.917361 0.000750 2.927233 -v 1.058783 0.000750 2.927233 -v 1.058783 -0.140671 3.072767 -v 0.988072 -0.169961 3.072767 -v 0.917362 -0.140671 3.072767 -v 0.988072 0.030039 2.927233 -vt 0.256942 0.260185 -vt 0.256933 0.317461 -vt 0.214669 0.382666 -vt 0.214686 0.260176 -vt 0.687648 0.260227 -vt 0.687763 0.317493 -vt 0.601711 0.530833 -vt 0.601711 0.480441 -vt 0.705172 0.480441 -vt 0.705172 0.530833 -vt 0.687799 0.127573 -vt 0.687669 0.184827 -vt 0.256960 0.184694 -vt 0.256975 0.127402 -vt 0.171036 0.445226 -vt 0.601956 0.445228 -vt 0.175060 0.480439 -vt 0.214701 0.184684 -vt 0.133171 0.260163 -vt 0.133182 0.184670 -vt 0.214727 0.062176 -vt 0.084694 0.563932 -vt 0.000115 0.563931 -vt 0.012784 0.530830 -vt 0.097363 0.530831 -vt 0.033279 0.184656 -vt 0.033268 0.260149 -vt 0.221631 0.027404 -vt 0.263880 0.092631 -vt 0.133159 0.360057 -vt 0.133200 0.084764 -vt 0.175059 0.530831 -vt 0.097363 0.480439 -vt 0.012784 0.480438 -vt 0.000115 0.247598 -vt 0.000122 0.197196 -vt 0.734049 0.184804 -vt 0.734039 0.260260 -vt 0.000115 0.447338 -vt 0.084694 0.447338 -vt 0.263826 0.352230 -vt 0.221562 0.417436 -vt 0.601955 0.566046 -vt 0.171036 0.566045 -vt 0.839166 0.035177 -vt 0.787151 0.048192 -vt 0.734523 0.035224 -vt 0.705294 0.445228 -vt 0.809903 0.445228 -vt 0.809781 0.480442 -vt 0.683548 0.352473 -vt 0.734482 0.409867 -vt 0.730268 0.444846 -vt 0.872622 0.090131 -vt 0.838858 0.100240 -vt 0.823785 0.063507 -vt 0.683589 0.092599 -vt 0.730314 0.000250 -vt 0.809780 0.530834 -vt 0.874095 0.480442 -vt 0.874095 0.530834 -vt 0.842557 0.000115 -vt 0.876014 0.055069 -vt 0.705293 0.566047 -vt 0.809903 0.566047 -vt 0.838659 0.184791 -vt 0.838657 0.260295 -vt 0.966965 0.260301 -vt 0.872297 0.260301 -vt 0.872297 0.184787 -vt 0.966965 0.184787 -vt 0.999885 0.197336 -vt 0.999885 0.247752 -vt 0.735107 0.099900 -vt 0.842531 0.444996 -vt 0.839144 0.409928 -vt 0.872612 0.354969 -vt 0.876000 0.390038 -vt 0.039809 0.641755 -vt 0.039809 0.566277 -vt 0.079503 0.566277 -vt 0.079503 0.641755 -vt 0.238278 0.641755 -vt 0.238278 0.566277 -vt 0.277972 0.566277 -vt 0.277972 0.641755 -vt 0.786807 0.151937 -vt 0.119197 0.566277 -vt 0.119197 0.641755 -vt 0.198585 0.641755 -vt 0.198585 0.566277 -vt 0.158890 0.641755 -vt 0.158890 0.566277 -vt 0.000115 0.641755 -vt 0.000115 0.566277 -vt 0.317667 0.566277 -vt 0.317667 0.641755 -vt 0.823538 0.136870 -vt 0.750181 0.136623 -vt 0.750419 0.063267 -vt 0.786796 0.293143 -vt 0.823528 0.308218 -vt 0.750162 0.308451 -vt 0.838844 0.344854 -vt 0.735078 0.345179 -vt 0.823764 0.381591 -vt 0.787122 0.396904 -vt 0.750386 0.381821 -vn 0.0000 0.0000 -1.0000 -vn -0.8937 -0.4486 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.3562 -0.9344 -vn 0.0000 1.0000 0.0000 -vn -0.1012 -0.3652 0.9254 -vn -1.0000 0.0000 0.0000 -vn 0.4263 -0.2762 0.8614 -vn 0.0000 -1.0000 -0.0000 -vn 0.8392 -0.5438 -0.0000 -vn -0.2672 -0.9636 0.0000 -vn -0.9926 -0.1214 0.0000 -vn 0.0037 1.0000 0.0000 -vn -0.1012 -0.3652 -0.9254 -vn 0.4263 -0.2762 -0.8614 -vn 0.0000 -0.3562 0.9344 -vn -0.0013 -0.3562 -0.9344 -vn -0.5737 -0.2880 -0.7667 -vn -0.0016 0.0010 1.0000 -vn -0.5737 -0.2880 0.7667 -vn 0.8524 -0.5228 0.0000 -vn 0.5062 -0.3105 0.8046 -vn 0.5049 -0.3117 0.8049 -vn -0.0013 -0.3562 0.9344 -vn -0.0037 -1.0000 0.0000 -vn -0.0001 0.0018 1.0000 -vn 1.0000 -0.0009 -0.0016 -vn 1.0000 0.0000 0.0000 -vn 1.0000 -0.0004 -0.0018 -vn 1.0000 -0.0060 -0.0012 -vn 1.0000 -0.0092 -0.0002 -vn 1.0000 -0.0074 -0.0000 -vn 0.5062 -0.3105 -0.8046 -vn 0.5071 -0.3089 -0.8046 -vn 0.0006 0.0017 1.0000 -vn 0.9239 -0.3827 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.9239 0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.3827 -0.9239 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn 0.3827 0.9239 0.0000 -vn -0.0002 -0.0018 -1.0000 -vn 0.0009 -0.0016 -1.0000 -vn 0.0018 0.0002 -1.0000 -s off -f 1143/2151/762 1144/2152/762 1145/2153/762 1146/2154/762 -f 1144/2152/762 1143/2151/762 1147/2155/762 1148/2156/762 -f 1149/2157/763 1150/2158/763 1151/2159/763 1152/2160/763 -f 1153/2161/764 1154/2162/764 1155/2163/764 1156/2164/764 -f 1144/2165/765 1148/2166/765 1150/2158/765 1157/2167/765 -f 1147/2155/766 1143/2151/766 1155/2163/766 1154/2162/766 -f 1158/2168/766 1146/2154/766 1159/2169/766 1160/2170/766 -f 1156/2164/764 1155/2163/764 1158/2168/764 1161/2171/764 -f 1155/2163/766 1143/2151/766 1146/2154/766 1158/2168/766 -f 1161/2172/767 1162/2173/767 1163/2174/767 1164/2175/767 -f 1162/2176/768 1160/2170/768 1159/2169/768 1165/2177/768 -f 1156/2164/769 1161/2171/769 1164/2178/769 1166/2179/769 -f 1146/2154/762 1145/2153/762 1165/2180/762 1159/2169/762 -f 1161/2171/764 1158/2168/764 1160/2170/764 1162/2181/764 -f 1157/2167/770 1150/2158/770 1149/2157/770 1166/2182/770 -f 1157/2167/771 1166/2182/771 1164/2175/771 1167/2183/771 -f 1167/2183/772 1164/2175/772 1163/2174/772 1168/2184/772 -f 1162/2176/773 1165/2177/773 1168/2185/773 1163/2186/773 -f 1147/2155/774 1154/2162/774 1169/2187/774 1170/2188/774 -f 1165/2189/775 1145/2190/775 1167/2183/775 1168/2184/775 -f 1145/2153/776 1144/2152/776 1157/2191/776 1167/2192/776 -f 1153/2193/777 1156/2194/777 1166/2182/777 1149/2157/777 -f 1177/2195/764 1198/2196/764 1171/2197/764 -f 1151/2159/778 1179/2198/778 1180/2199/778 1181/2200/778 -f 1150/2201/779 1148/2156/779 1179/2202/779 1151/2203/779 -f 1177/2195/764 1185/2204/780 1176/2205/764 1197/2206/764 -f 1153/2161/781 1149/2207/781 1152/2208/781 1171/2197/781 -f 1154/2162/764 1153/2161/764 1169/2187/764 -f 1182/2209/782 1181/2200/782 1183/2210/782 1184/2211/782 -f 1177/2195/783 1182/2212/783 1184/2213/783 1185/2204/784 -f 1171/2214/785 1152/2160/785 1182/2209/785 1177/2215/785 -f 1152/2160/786 1151/2159/786 1181/2200/786 1182/2209/786 -f 1170/2188/774 1169/2187/774 1178/2216/774 1186/2217/774 -f 1176/2205/764 1185/2204/787 1178/2216/764 -f 1192/2218/788 1193/2219/789 1194/2220/789 1185/2221/790 -f 1192/2218/791 1185/2221/792 1184/2222/793 1183/2223/793 -f 1186/2217/774 1178/2216/774 1194/2220/774 1193/2219/774 -f 1172/2224/764 1169/2187/764 1153/2161/764 -f 1181/2225/794 1180/2226/794 1192/2227/795 1183/2228/794 -f 1178/2216/764 1185/2204/796 1194/2220/764 -f 1195/2229/797 1173/2230/797 1172/2231/797 1187/2232/797 -f 1191/2233/798 1176/2234/798 1175/2235/798 1196/2236/798 -f 1178/2216/764 1169/2187/764 1174/2237/764 -f 1187/2232/799 1172/2231/799 1199/2238/799 1188/2239/799 -f 1190/2240/800 1197/2241/800 1176/2234/800 1191/2233/800 -f 1189/2242/801 1198/2243/801 1197/2241/801 1190/2240/801 -f 1200/2244/802 1174/2245/802 1173/2230/802 1195/2229/802 -f 1196/2236/803 1175/2235/803 1174/2246/803 1200/2247/803 -f 1188/2239/804 1199/2238/804 1198/2243/804 1189/2242/804 -f 1177/2195/764 1197/2206/764 1198/2196/764 -f 1192/2227/805 1186/2217/762 1193/2219/762 -f 1170/2188/762 1148/2156/762 1147/2155/762 -f 1175/2248/764 1178/2216/764 1174/2237/764 -f 1173/2249/764 1169/2187/764 1172/2224/764 -f 1199/2250/764 1171/2197/764 1198/2196/764 -f 1171/2197/764 1199/2250/764 1172/2224/764 1153/2161/764 -f 1200/2251/762 1170/2188/762 1186/2217/762 -f 1200/2251/762 1186/2217/762 1196/2252/762 -f 1169/2187/764 1173/2249/764 1174/2237/764 -f 1178/2216/764 1175/2248/764 1176/2205/764 -f 1200/2251/762 1195/2253/762 1170/2188/762 -f 1196/2252/762 1186/2217/762 1191/2254/762 -f 1195/2253/762 1187/2255/762 1170/2188/762 -f 1170/2188/762 1187/2255/762 1148/2156/762 -f 1186/2217/762 1192/2227/806 1191/2254/762 -f 1191/2254/762 1192/2227/807 1180/2226/762 1190/2256/762 -f 1190/2256/762 1180/2226/762 1189/2257/762 -f 1179/2202/762 1148/2156/762 1187/2255/762 1188/2258/762 -f 1180/2226/762 1179/2202/762 1189/2257/762 -f 1188/2258/762 1189/2257/762 1179/2202/762 -o UnderailBit_Cylinder.006 -v -0.166791 0.038391 2.882968 -v -0.166791 0.038391 3.117032 -v -0.118438 0.018363 3.117032 -v -0.118438 0.018363 2.882968 -v -0.098409 -0.029991 3.117032 -v -0.098409 -0.029991 2.882968 -v -0.118438 -0.078344 3.117032 -v -0.118438 -0.078344 2.882968 -v -0.166791 -0.098373 3.117032 -v -0.166791 -0.098373 2.882968 -v -0.215145 -0.078344 3.117032 -v -0.215145 -0.078344 2.882968 -v -0.235173 -0.029991 3.117032 -v -0.235173 -0.029991 2.882968 -v -0.215145 0.018363 3.117032 -v -0.215145 0.018363 2.882968 -vt 0.936103 0.259604 -vt 0.936115 0.740360 -vt 0.828618 0.740362 -vt 0.828606 0.259607 -vt 0.721118 0.740365 -vt 0.721107 0.259609 -vt 0.613620 0.740368 -vt 0.613609 0.259612 -vt 0.506122 0.740370 -vt 0.506111 0.259614 -vt 0.398623 0.740373 -vt 0.398611 0.259617 -vt 0.291126 0.740375 -vt 0.291114 0.259620 -vt 0.000116 0.816392 -vt 0.076128 0.740380 -vt 0.183627 0.740378 -vt 0.259639 0.816392 -vt 0.259641 0.923889 -vt 0.183628 0.999903 -vt 0.076130 0.999903 -vt 0.000116 0.923892 -vt 0.183615 0.259622 -vt 0.076117 0.259625 -vt 0.000101 0.183616 -vt 0.000097 0.076116 -vt 0.076107 0.000102 -vt 0.183605 0.000097 -vt 0.259621 0.076108 -vt 0.259625 0.183605 -vn 0.3827 0.9239 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.3827 -0.9239 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn -0.0000 0.0000 1.0000 -vn -0.9239 0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.0000 0.0000 -1.0000 -s off -f 1201/2259/808 1202/2260/808 1203/2261/808 1204/2262/808 -f 1204/2262/809 1203/2261/809 1205/2263/809 1206/2264/809 -f 1206/2264/810 1205/2263/810 1207/2265/810 1208/2266/810 -f 1208/2266/811 1207/2265/811 1209/2267/811 1210/2268/811 -f 1210/2268/812 1209/2267/812 1211/2269/812 1212/2270/812 -f 1212/2270/813 1211/2269/813 1213/2271/813 1214/2272/813 -f 1203/2273/814 1202/2274/814 1215/2275/814 1213/2276/814 1211/2277/814 1209/2278/814 1207/2279/814 1205/2280/814 -f 1214/2272/815 1213/2271/815 1215/2275/815 1216/2281/815 -f 1216/2281/816 1215/2275/816 1202/2274/816 1201/2282/816 -f 1201/2282/817 1204/2283/817 1206/2284/817 1208/2285/817 1210/2286/817 1212/2287/817 1214/2288/817 1216/2281/817 -o AmmoVice_Cylinder.010 -v -2.170566 0.644712 2.891261 -v -2.102717 0.644712 2.891261 -v -2.102717 0.567822 2.923110 -v -2.170566 0.567822 2.923110 -v -2.102717 0.535974 3.000000 -v -2.170566 0.535974 3.000000 -v -2.102717 0.567822 3.076890 -v -2.170566 0.567822 3.076890 -v -2.102717 0.644712 3.108739 -v -2.170566 0.644712 3.108739 -v -2.102717 0.721602 3.076890 -v -2.170566 0.721602 3.076890 -v -2.102717 0.753451 3.000000 -v -2.170566 0.753451 3.000000 -v -2.102717 0.721602 2.923110 -v -2.170566 0.721602 2.923110 -v -2.209619 0.644712 3.088337 -v -2.209619 0.582248 3.062464 -v -2.209619 0.644712 2.911663 -v -2.209619 0.582248 2.937536 -v -2.209619 0.556375 3.000000 -v -2.209619 0.707176 3.062464 -v -2.209619 0.733049 3.000000 -v -2.209619 0.707176 2.937536 -vt 0.101983 0.250048 -vt 0.000096 0.250048 -vt 0.000097 0.125071 -vt 0.101983 0.125072 -vt 0.000097 0.000096 -vt 0.101984 0.000096 -vt 0.101984 0.999904 -vt 0.000097 0.999905 -vt 0.000097 0.874929 -vt 0.101983 0.874929 -vt 0.000096 0.749953 -vt 0.101983 0.749952 -vt 0.000096 0.624977 -vt 0.101982 0.624976 -vt 0.000096 0.500000 -vt 0.101982 0.500000 -vt 0.000096 0.375024 -vt 0.101982 0.375024 -vt 0.167101 0.761676 -vt 0.167101 0.863204 -vt 0.340610 0.547116 -vt 0.239083 0.547116 -vt 0.167292 0.475324 -vt 0.167292 0.373796 -vt 0.239084 0.302006 -vt 0.340613 0.302006 -vt 0.412403 0.373798 -vt 0.412403 0.475326 -vt 0.167100 0.386748 -vt 0.167100 0.488276 -vt 0.167101 0.011819 -vt 0.167101 0.113348 -vt 0.167100 0.636700 -vt 0.167100 0.738228 -vt 0.167101 0.261772 -vt 0.167100 0.363300 -vt 0.167101 0.136796 -vt 0.167101 0.238324 -vt 0.167101 0.886652 -vt 0.167101 0.988181 -vt 0.167100 0.511724 -vt 0.167100 0.613252 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.4347 -0.3446 0.8320 -vn -1.0000 0.0000 0.0000 -vn -0.4347 0.8320 -0.3446 -vn -0.4347 -0.8320 -0.3446 -vn -0.4347 0.3446 0.8320 -vn -0.4347 0.3446 -0.8320 -vn -0.4347 -0.3446 -0.8320 -vn -0.4347 -0.8320 0.3446 -vn -0.4347 0.8320 0.3446 -s off -f 1217/2289/818 1218/2290/818 1219/2291/818 1220/2292/818 -f 1220/2292/819 1219/2291/819 1221/2293/819 1222/2294/819 -f 1222/2295/820 1221/2296/820 1223/2297/820 1224/2298/820 -f 1224/2298/821 1223/2297/821 1225/2299/821 1226/2300/821 -f 1226/2300/822 1225/2299/822 1227/2301/822 1228/2302/822 -f 1228/2302/823 1227/2301/823 1229/2303/823 1230/2304/823 -f 1230/2304/824 1229/2303/824 1231/2305/824 1232/2306/824 -f 1232/2306/825 1231/2305/825 1218/2290/825 1217/2289/825 -f 1224/2298/826 1226/2300/826 1233/2307/826 1234/2308/826 -f 1235/2309/827 1236/2310/827 1237/2311/827 1234/2312/827 1233/2313/827 1238/2314/827 1239/2315/827 1240/2316/827 -f 1230/2304/828 1232/2306/828 1240/2317/828 1239/2318/828 -f 1220/2292/829 1222/2294/829 1237/2319/829 1236/2320/829 -f 1226/2300/830 1228/2302/830 1238/2321/830 1233/2322/830 -f 1232/2306/831 1217/2289/831 1235/2323/831 1240/2324/831 -f 1217/2289/832 1220/2292/832 1236/2325/832 1235/2326/832 -f 1222/2295/833 1224/2298/833 1234/2327/833 1237/2328/833 -f 1228/2302/834 1230/2304/834 1239/2329/834 1238/2330/834 -o SideThingy_Cube.009 -v -1.552216 0.766425 3.449060 -v -1.552216 0.766425 3.324053 -v -1.613245 0.699098 3.324053 -v -1.613245 0.699098 3.449060 -v -1.552216 0.456014 3.324053 -v -1.048308 0.766425 3.449060 -v -1.048308 0.766425 3.324053 -v -1.552216 0.456014 3.449060 -v -1.048308 0.456014 3.324053 -v -1.041527 0.788142 3.315308 -v -1.041527 0.434297 3.315308 -v -1.048308 0.456014 3.449060 -v -1.041527 0.788142 3.457806 -v -1.041527 0.434297 3.457806 -v -0.900483 0.434297 3.457806 -v -0.900483 0.788142 3.457806 -v -0.900483 0.788142 3.315308 -v -0.896414 0.768510 3.449899 -v -0.896414 0.768510 3.323214 -v -0.900483 0.434297 3.315308 -v -0.896414 0.453929 3.449899 -v -0.817755 0.457256 3.449106 -v -0.817755 0.767895 3.449106 -v -0.896414 0.453929 3.323214 -v -0.817755 0.457256 3.324007 -v -0.817755 0.767895 3.324007 -v -1.613245 0.523341 3.449060 -v -1.613245 0.523341 3.324053 -v -1.552216 0.766425 2.550940 -v -1.613245 0.699098 2.550940 -v -1.613245 0.699098 2.675947 -v -1.552216 0.766425 2.675947 -v -1.552216 0.456014 2.675947 -v -1.048308 0.766425 2.675947 -v -1.048308 0.766425 2.550940 -v -1.552216 0.456014 2.550940 -v -1.048308 0.456014 2.675947 -v -1.041528 0.434297 2.684692 -v -1.041528 0.788142 2.684692 -v -1.048308 0.456014 2.550940 -v -1.041528 0.788142 2.542194 -v -0.900483 0.788142 2.542194 -v -0.900483 0.434297 2.542194 -v -1.041528 0.434297 2.542194 -v -0.900483 0.788142 2.684692 -v -0.896414 0.768510 2.676786 -v -0.896414 0.768510 2.550101 -v -0.900483 0.434297 2.684692 -v -0.817755 0.767895 2.550894 -v -0.817755 0.457256 2.550894 -v -0.896414 0.453929 2.550101 -v -0.896414 0.453929 2.676786 -v -0.817755 0.457256 2.675993 -v -0.817755 0.767895 2.675993 -v -1.613245 0.523341 2.550940 -v -1.613245 0.523341 2.675947 -vt 0.482699 0.832844 -vt 0.432017 0.832844 -vt 0.432017 0.796002 -vt 0.482699 0.796002 -vt 0.583806 0.442127 -vt 0.634488 0.442127 -vt 0.634488 0.646427 -vt 0.583806 0.646427 -vt 0.457956 0.646427 -vt 0.457956 0.442127 -vt 0.711742 0.646766 -vt 0.711742 0.697448 -vt 0.507442 0.697448 -vt 0.507442 0.646766 -vt 0.711742 0.873980 -vt 0.711742 0.999830 -vt 0.507442 0.999830 -vt 0.507442 0.873980 -vt 0.004929 0.552138 -vt 0.004598 0.674127 -vt 0.000170 0.683319 -vt 0.000481 0.542899 -vt 0.203708 0.542544 -vt 0.058826 0.542797 -vt 0.058726 0.485047 -vt 0.203607 0.484794 -vt 0.054086 0.674326 -vt 0.054411 0.551828 -vt 0.058514 0.683411 -vt 0.000170 0.342162 -vt 0.058508 0.341959 -vt 0.054925 0.350069 -vt 0.003806 0.350339 -vt 0.000380 0.485149 -vt 0.262053 0.542442 -vt 0.261953 0.484692 -vt 0.406935 0.542189 -vt 0.406834 0.484439 -vt 0.565390 0.229561 -vt 0.437849 0.229561 -vt 0.439198 0.197668 -vt 0.565141 0.197668 -vt 0.003970 0.476972 -vt 0.055097 0.476933 -vt 0.439198 0.146949 -vt 0.565141 0.146949 -vt 0.407279 0.197990 -vt 0.407279 0.146628 -vt 0.597033 0.146628 -vt 0.597033 0.197990 -vt 0.437849 0.115057 -vt 0.565390 0.115057 -vt 0.482699 0.724744 -vt 0.432017 0.724744 -vt 0.432017 0.687903 -vt 0.482699 0.687903 -vt 0.407274 0.823298 -vt 0.407274 0.697448 -vt 0.507442 0.823298 -vt 0.593351 0.417384 -vt 0.556510 0.417384 -vt 0.556510 0.366702 -vt 0.593352 0.366702 -vt 0.407274 0.646427 -vt 0.407274 0.442127 -vt 0.760338 0.442127 -vt 0.760338 0.646427 -vt 0.711742 0.823298 -vt 0.402178 0.210347 -vt 0.406625 0.201108 -vt 0.406939 0.341526 -vt 0.402512 0.332335 -vt 0.203400 0.200758 -vt 0.203499 0.143007 -vt 0.348380 0.143257 -vt 0.348281 0.201007 -vt 0.353025 0.332535 -vt 0.348597 0.341620 -vt 0.352696 0.210039 -vt 0.406935 0.000372 -vt 0.403298 0.008549 -vt 0.352179 0.008280 -vt 0.348596 0.000170 -vt 0.406725 0.143358 -vt 0.145054 0.200657 -vt 0.145153 0.142906 -vt 0.000170 0.200407 -vt 0.000269 0.142656 -vt 0.565419 0.000214 -vt 0.565158 0.032106 -vt 0.439216 0.032063 -vt 0.437878 0.000170 -vt 0.403136 0.135182 -vt 0.352009 0.135143 -vt 0.439198 0.082782 -vt 0.565141 0.082825 -vt 0.407296 0.031730 -vt 0.407279 0.083092 -vt 0.597033 0.083158 -vt 0.597050 0.031796 -vt 0.437838 0.114674 -vt 0.565379 0.114718 -vt 0.485252 0.417384 -vt 0.485252 0.366702 -vt 0.448411 0.366702 -vt 0.448411 0.417384 -vt 0.583806 0.341959 -vt 0.457956 0.341959 -vn -0.7409 0.6716 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.7902 0.0000 -0.6128 -vn 0.0000 0.0000 1.0000 -vn -0.7903 0.0000 0.6127 -vn -0.9545 -0.2981 0.0000 -vn -0.9545 0.2981 0.0000 -vn 0.9792 0.2030 0.0000 -vn 0.0101 0.0000 0.9999 -vn 0.8891 0.0000 -0.4576 -vn 0.8892 0.0000 0.4576 -vn 0.9792 -0.2030 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0423 -0.9991 0.0000 -vn 0.0078 1.0000 0.0000 -vn 0.0101 0.0000 -0.9999 -vn -1.0000 0.0000 0.0000 -vn -0.7409 -0.6716 -0.0000 -vn -0.7903 0.0000 -0.6127 -vn -0.9546 -0.2980 0.0000 -vn -0.9546 0.2980 0.0000 -vn 0.9792 0.2029 0.0000 -vn 0.8891 0.0000 0.4576 -vn 0.8892 0.0000 -0.4576 -s off -f 1241/2331/835 1242/2332/835 1243/2333/835 1244/2334/835 -f 1269/2335/836 1272/2336/836 1274/2337/836 1275/2338/836 -f 1269/2335/837 1275/2338/837 1280/2339/837 1276/2340/837 -f 1249/2341/838 1252/2342/838 1248/2343/838 1245/2344/838 -f 1247/2345/837 1249/2346/837 1245/2347/837 1242/2348/837 -f 1249/2349/839 1247/2350/839 1250/2351/839 1251/2352/839 -f 1253/2353/840 1254/2354/840 1255/2355/840 1256/2356/840 -f 1246/2357/841 1252/2358/841 1254/2354/841 1253/2359/841 -f 1252/2358/842 1249/2349/842 1251/2352/842 1254/2354/842 -f 1247/2350/843 1246/2357/843 1253/2359/843 1250/2351/843 -f 1257/2360/844 1256/2361/844 1258/2362/844 1259/2363/844 -f 1254/2354/838 1251/2352/838 1260/2364/838 1255/2355/838 -f 1250/2365/836 1253/2353/836 1256/2356/836 1257/2366/836 -f 1251/2367/837 1250/2365/837 1257/2366/837 1260/2368/837 -f 1258/2369/845 1261/2370/845 1262/2371/845 1263/2372/845 -f 1260/2364/846 1257/2360/846 1259/2363/846 1264/2373/846 -f 1256/2361/847 1255/2355/847 1261/2374/847 1258/2362/847 -f 1255/2355/848 1260/2364/848 1264/2373/848 1261/2374/848 -f 1265/2375/849 1266/2376/849 1263/2372/849 1262/2371/849 -f 1261/2377/850 1264/2378/850 1265/2375/850 1262/2371/850 -f 1259/2379/851 1258/2380/851 1263/2372/851 1266/2376/851 -f 1264/2381/852 1259/2382/852 1266/2376/852 1265/2375/852 -f 1267/2383/853 1244/2334/853 1243/2333/853 1268/2384/853 -f 1245/2385/854 1248/2386/854 1267/2383/854 1268/2384/854 -f 1242/2387/837 1245/2388/837 1268/2384/837 1243/2333/837 -f 1248/2343/840 1241/2389/840 1244/2334/840 1267/2383/840 -f 1269/2390/835 1270/2391/835 1271/2392/835 1272/2393/835 -f 1276/2340/838 1280/2339/838 1277/2394/838 1273/2395/838 -f 1273/2396/840 1277/2397/840 1274/2337/840 1272/2336/840 -f 1248/2343/840 1252/2342/840 1246/2398/840 1241/2389/840 -f 1277/2399/841 1278/2400/841 1279/2401/841 1274/2402/841 -f 1281/2403/837 1282/2404/837 1283/2405/837 1284/2406/837 -f 1275/2407/855 1281/2408/855 1284/2406/855 1280/2409/855 -f 1280/2409/856 1284/2406/856 1278/2400/856 1277/2399/856 -f 1274/2402/857 1279/2401/857 1281/2408/857 1275/2407/857 -f 1285/2410/858 1286/2411/858 1287/2412/858 1282/2413/858 -f 1284/2406/838 1283/2405/838 1288/2414/838 1278/2400/838 -f 1279/2415/836 1285/2416/836 1282/2404/836 1281/2403/836 -f 1278/2417/840 1288/2418/840 1285/2416/840 1279/2415/840 -f 1287/2419/852 1289/2420/852 1290/2421/852 1291/2422/852 -f 1288/2414/859 1292/2423/859 1286/2411/859 1285/2410/859 -f 1282/2413/860 1287/2412/860 1291/2424/860 1283/2405/860 -f 1283/2405/848 1291/2424/848 1292/2423/848 1288/2414/848 -f 1293/2425/849 1290/2421/849 1289/2420/849 1294/2426/849 -f 1291/2427/850 1290/2421/850 1293/2425/850 1292/2428/850 -f 1286/2429/851 1294/2426/851 1289/2420/851 1287/2430/851 -f 1292/2431/845 1293/2425/845 1294/2426/845 1286/2432/845 -f 1295/2433/853 1296/2434/853 1271/2392/853 1270/2391/853 -f 1273/2435/854 1296/2434/854 1295/2433/854 1276/2436/854 -f 1272/2437/840 1271/2392/840 1296/2434/840 1273/2438/840 -f 1276/2340/837 1295/2433/837 1270/2391/837 1269/2335/837 -f 1247/2345/836 1242/2348/836 1241/2389/836 1246/2398/836 -o Tech_thingy_Cylinder.011 -v -1.457017 0.997796 3.139627 -v -1.457017 1.110929 3.189700 -v -1.405270 1.098405 3.216824 -v -1.405270 0.985272 3.166751 -v -1.405270 1.073357 3.271072 -v -1.405270 0.960224 3.220999 -v -1.457017 1.060833 3.298196 -v -1.457017 0.947700 3.248123 -v -1.508763 1.073357 3.271072 -v -1.508763 0.960224 3.220999 -v -1.508763 1.098405 3.216824 -v -1.508763 0.985272 3.166751 -v -1.322476 0.997796 3.139627 -v -1.322476 1.110929 3.189700 -v -1.270730 1.098405 3.216824 -v -1.270730 0.985272 3.166751 -v -1.270730 1.073357 3.271072 -v -1.270730 0.960224 3.220999 -v -1.322476 1.060833 3.298196 -v -1.322476 0.947700 3.248123 -v -1.374223 1.073357 3.271072 -v -1.374223 0.960224 3.220999 -v -1.374223 1.098405 3.216824 -v -1.374223 0.985272 3.166751 -v -1.187935 0.997796 3.139627 -v -1.187935 1.110929 3.189700 -v -1.136189 1.098405 3.216824 -v -1.136189 0.985272 3.166751 -v -1.136189 1.073357 3.271072 -v -1.136189 0.960224 3.220999 -v -1.187935 1.060833 3.298196 -v -1.187935 0.947700 3.248123 -v -1.239682 1.073357 3.271072 -v -1.239682 0.960224 3.220999 -v -1.239682 1.098405 3.216824 -v -1.239682 0.985272 3.166751 -v -1.551588 0.824089 3.270719 -v -1.551588 0.906574 3.321562 -v -1.551588 1.018668 3.066710 -v -1.551588 0.936183 3.015867 -v -1.097206 1.018668 3.066710 -v -1.097206 0.936183 3.015867 -v -1.097206 0.906574 3.321562 -v -1.097206 0.824089 3.270719 -v -1.521210 0.950031 3.320343 -v -1.521210 1.047137 3.099566 -v -1.127583 1.047137 3.099566 -v -1.127583 0.950031 3.320343 -v -1.457017 0.997796 2.860373 -v -1.405271 0.985272 2.833249 -v -1.405271 1.098405 2.783176 -v -1.457017 1.110929 2.810300 -v -1.405271 0.960224 2.779001 -v -1.405271 1.073357 2.728928 -v -1.457017 0.947700 2.751877 -v -1.457017 1.060833 2.701804 -v -1.508764 0.960224 2.779001 -v -1.508764 1.073357 2.728928 -v -1.508764 1.098405 2.783176 -v -1.508764 0.985272 2.833249 -v -1.322476 0.997796 2.860373 -v -1.270730 0.985272 2.833249 -v -1.270730 1.098405 2.783176 -v -1.322476 1.110929 2.810300 -v -1.270730 0.960224 2.779001 -v -1.270730 1.073357 2.728928 -v -1.322476 0.947700 2.751877 -v -1.322476 1.060833 2.701804 -v -1.374223 0.960224 2.779001 -v -1.374223 1.073357 2.728928 -v -1.374223 1.098405 2.783176 -v -1.374223 0.985272 2.833249 -v -1.187936 0.997796 2.860373 -v -1.136189 0.985272 2.833249 -v -1.136189 1.098405 2.783176 -v -1.187936 1.110929 2.810300 -v -1.136189 0.960224 2.779001 -v -1.136189 1.073357 2.728928 -v -1.187936 0.947700 2.751877 -v -1.187936 1.060833 2.701804 -v -1.239682 0.960224 2.779001 -v -1.239682 1.073357 2.728928 -v -1.239682 1.098405 2.783176 -v -1.239682 0.985272 2.833249 -v -1.551588 0.824089 2.729281 -v -1.551588 0.936183 2.984133 -v -1.551588 1.018668 2.933290 -v -1.551588 0.906574 2.678438 -v -1.097206 0.936183 2.984133 -v -1.097206 1.018668 2.933290 -v -1.097206 0.824089 2.729281 -v -1.097206 0.906574 2.678438 -v -1.521211 1.047137 2.900434 -v -1.521211 0.950031 2.679657 -v -1.127584 1.047137 2.900434 -v -1.127584 0.950031 2.679657 -vt 0.803021 0.000268 -vt 0.908675 0.000268 -vt 0.908270 0.051294 -vt 0.802616 0.051294 -vt 0.907459 0.102314 -vt 0.801805 0.102314 -vt 0.907054 0.153340 -vt 0.801400 0.153340 -vt 0.907459 0.204365 -vt 0.801805 0.204365 -vt 0.611293 0.613624 -vt 0.662320 0.613624 -vt 0.687833 0.657815 -vt 0.662320 0.702005 -vt 0.611293 0.702005 -vt 0.585779 0.657814 -vt 0.908270 0.255385 -vt 0.802616 0.255385 -vt 0.908675 0.306410 -vt 0.803021 0.306410 -vt 0.587400 0.306946 -vt 0.693054 0.306946 -vt 0.692649 0.357971 -vt 0.586995 0.357971 -vt 0.691839 0.408991 -vt 0.586185 0.408991 -vt 0.691434 0.460016 -vt 0.585779 0.460016 -vt 0.691839 0.511042 -vt 0.586185 0.511042 -vt 0.693590 0.746948 -vt 0.737780 0.721434 -vt 0.781971 0.746948 -vt 0.781971 0.797974 -vt 0.737780 0.823488 -vt 0.693590 0.797974 -vt 0.692649 0.562062 -vt 0.586995 0.562062 -vt 0.693054 0.613088 -vt 0.587400 0.613088 -vt 0.693590 0.719278 -vt 0.693590 0.613624 -vt 0.744615 0.614029 -vt 0.744615 0.719683 -vt 0.795635 0.614839 -vt 0.795635 0.720493 -vt 0.846660 0.615245 -vt 0.846660 0.720899 -vt 0.897686 0.614839 -vt 0.897686 0.720493 -vt 0.782507 0.746948 -vt 0.826697 0.721434 -vt 0.870889 0.746948 -vt 0.870889 0.797974 -vt 0.826697 0.823488 -vt 0.782507 0.797974 -vt 0.948706 0.614029 -vt 0.948706 0.719683 -vt 0.999732 0.613624 -vt 0.999732 0.719278 -vt 0.000349 0.115597 -vt 0.082314 0.104241 -vt 0.082232 0.342003 -vt 0.000268 0.353358 -vt 0.098665 0.445986 -vt 0.098694 0.363239 -vt 0.486728 0.363373 -vt 0.486700 0.446120 -vt 0.585161 0.353560 -vt 0.503205 0.342148 -vt 0.503287 0.104387 -vt 0.585244 0.115799 -vt 0.486854 0.000402 -vt 0.486825 0.083149 -vt 0.098790 0.083015 -vt 0.098819 0.000268 -vt 0.124720 0.120150 -vt 0.124649 0.326122 -vt 0.460800 0.326238 -vt 0.460871 0.120266 -vt 0.695211 0.306410 -vt 0.694805 0.255385 -vt 0.800460 0.255385 -vt 0.800865 0.306410 -vt 0.693995 0.204365 -vt 0.799649 0.204365 -vt 0.693590 0.153340 -vt 0.799244 0.153340 -vt 0.693995 0.102314 -vt 0.799649 0.102314 -vt 0.801400 0.486076 -vt 0.801400 0.435049 -vt 0.845590 0.409535 -vt 0.889782 0.435049 -vt 0.889782 0.486076 -vt 0.845590 0.511589 -vt 0.694805 0.051294 -vt 0.800460 0.051294 -vt 0.695211 0.000268 -vt 0.800865 0.000268 -vt 0.587400 0.306410 -vt 0.586995 0.255385 -vt 0.692649 0.255385 -vt 0.693054 0.306410 -vt 0.586185 0.204365 -vt 0.691839 0.204365 -vt 0.585779 0.153340 -vt 0.691434 0.153340 -vt 0.586185 0.102314 -vt 0.691839 0.102314 -vt 0.801400 0.383486 -vt 0.801400 0.332459 -vt 0.845591 0.306946 -vt 0.889782 0.332459 -vt 0.889782 0.383486 -vt 0.845591 0.409000 -vt 0.586995 0.051294 -vt 0.692649 0.051294 -vt 0.587400 0.000268 -vt 0.693054 0.000268 -vt 0.695211 0.613088 -vt 0.694805 0.562063 -vt 0.800460 0.562062 -vt 0.800865 0.613088 -vt 0.693995 0.511042 -vt 0.799649 0.511042 -vt 0.693590 0.460016 -vt 0.799244 0.460016 -vt 0.693995 0.408991 -vt 0.799649 0.408991 -vt 0.585779 0.779081 -vt 0.585779 0.728054 -vt 0.629971 0.702541 -vt 0.674161 0.728055 -vt 0.674161 0.779081 -vt 0.629971 0.804595 -vt 0.694805 0.357971 -vt 0.800459 0.357971 -vt 0.695211 0.306946 -vt 0.800865 0.306946 -vt 0.000268 0.777012 -vt 0.000268 0.539250 -vt 0.082229 0.550634 -vt 0.082229 0.788396 -vt 0.098698 0.446656 -vt 0.486733 0.446656 -vt 0.486733 0.529404 -vt 0.098698 0.529403 -vt 0.585162 0.539250 -vt 0.585162 0.777011 -vt 0.503202 0.788396 -vt 0.503201 0.550634 -vt 0.486733 0.892375 -vt 0.098698 0.892375 -vt 0.098698 0.809627 -vt 0.486733 0.809627 -vt 0.124639 0.566530 -vt 0.124639 0.772501 -vt 0.460790 0.566530 -vt 0.460790 0.772501 -vn 0.4999 0.3505 -0.7920 -vn 1.0000 0.0000 0.0000 -vn 0.4999 -0.3505 0.7920 -vn -0.5000 -0.3505 0.7919 -vn 0.0000 0.9079 0.4192 -vn -1.0000 0.0000 0.0000 -vn -0.5000 0.3505 -0.7919 -vn 0.5000 0.3505 -0.7919 -vn 0.5000 -0.3505 0.7919 -vn -0.5000 -0.3505 0.7920 -vn -0.4999 0.3505 -0.7920 -vn 0.0000 0.5247 -0.8513 -vn 0.0000 -0.5247 0.8513 -vn -0.7911 0.5599 0.2463 -vn 0.0000 0.9154 0.4026 -vn 0.0000 0.0280 0.9996 -vn 0.0000 0.7558 -0.6548 -vn 0.7911 0.5599 0.2463 -vn 0.5000 0.3505 0.7919 -vn 0.5000 -0.3505 -0.7919 -vn -0.4999 -0.3505 -0.7920 -vn 0.0000 0.9079 -0.4192 -vn -0.4999 0.3505 0.7920 -vn 0.4999 0.3505 0.7920 -vn 0.4999 -0.3505 -0.7920 -vn -0.5000 -0.3505 -0.7919 -vn -0.5000 0.3505 0.7919 -vn 0.0000 0.5247 0.8513 -vn 0.0000 -0.5247 -0.8513 -vn -0.7911 0.5599 -0.2463 -vn 0.0000 0.9154 -0.4026 -vn 0.0000 0.0280 -0.9996 -vn 0.0000 0.7558 0.6548 -vn 0.7911 0.5599 -0.2463 -s off -f 1297/2439/861 1298/2440/861 1299/2441/861 1300/2442/861 -f 1300/2442/862 1299/2441/862 1301/2443/862 1302/2444/862 -f 1302/2444/863 1301/2443/863 1303/2445/863 1304/2446/863 -f 1304/2446/864 1303/2445/864 1305/2447/864 1306/2448/864 -f 1299/2449/865 1298/2450/865 1307/2451/865 1305/2452/865 1303/2453/865 1301/2454/865 -f 1306/2448/866 1305/2447/866 1307/2455/866 1308/2456/866 -f 1308/2456/867 1307/2455/867 1298/2457/867 1297/2458/867 -f 1309/2459/868 1310/2460/868 1311/2461/868 1312/2462/868 -f 1312/2462/862 1311/2461/862 1313/2463/862 1314/2464/862 -f 1314/2464/869 1313/2463/869 1315/2465/869 1316/2466/869 -f 1316/2466/870 1315/2465/870 1317/2467/870 1318/2468/870 -f 1311/2469/865 1310/2470/865 1319/2471/865 1317/2472/865 1315/2473/865 1313/2474/865 -f 1318/2468/866 1317/2467/866 1319/2475/866 1320/2476/866 -f 1320/2476/871 1319/2475/871 1310/2477/871 1309/2478/871 -f 1321/2479/868 1322/2480/868 1323/2481/868 1324/2482/868 -f 1324/2482/862 1323/2481/862 1325/2483/862 1326/2484/862 -f 1326/2484/869 1325/2483/869 1327/2485/869 1328/2486/869 -f 1328/2486/870 1327/2485/870 1329/2487/870 1330/2488/870 -f 1323/2489/865 1322/2490/865 1331/2491/865 1329/2492/865 1327/2493/865 1325/2494/865 -f 1330/2488/866 1329/2487/866 1331/2495/866 1332/2496/866 -f 1332/2496/871 1331/2495/871 1322/2497/871 1321/2498/871 -f 1333/2499/866 1334/2500/866 1335/2501/866 1336/2502/866 -f 1336/2503/872 1335/2504/872 1337/2505/872 1338/2506/872 -f 1338/2507/862 1337/2508/862 1339/2509/862 1340/2510/862 -f 1340/2511/873 1339/2512/873 1334/2513/873 1333/2514/873 -f 1335/2501/874 1334/2500/874 1341/2515/874 1342/2516/874 -f 1343/2517/875 1342/2516/875 1341/2515/875 1344/2518/875 -f 1334/2513/876 1339/2512/876 1344/2518/876 1341/2515/876 -f 1337/2505/877 1335/2504/877 1342/2516/877 1343/2517/877 -f 1339/2509/878 1337/2508/878 1343/2517/878 1344/2518/878 -f 1345/2519/879 1346/2520/879 1347/2521/879 1348/2522/879 -f 1346/2520/862 1349/2523/862 1350/2524/862 1347/2521/862 -f 1349/2523/880 1351/2525/880 1352/2526/880 1350/2524/880 -f 1351/2525/881 1353/2527/881 1354/2528/881 1352/2526/881 -f 1347/2529/882 1350/2530/882 1352/2531/882 1354/2532/882 1355/2533/882 1348/2534/882 -f 1353/2527/866 1356/2535/866 1355/2536/866 1354/2528/866 -f 1356/2535/883 1345/2537/883 1348/2538/883 1355/2536/883 -f 1357/2539/879 1358/2540/879 1359/2541/879 1360/2542/879 -f 1358/2540/862 1361/2543/862 1362/2544/862 1359/2541/862 -f 1361/2543/880 1363/2545/880 1364/2546/880 1362/2544/880 -f 1363/2545/881 1365/2547/881 1366/2548/881 1364/2546/881 -f 1359/2549/882 1362/2550/882 1364/2551/882 1366/2552/882 1367/2553/882 1360/2554/882 -f 1365/2547/866 1368/2555/866 1367/2556/866 1366/2548/866 -f 1368/2555/883 1357/2557/883 1360/2558/883 1367/2556/883 -f 1369/2559/884 1370/2560/884 1371/2561/884 1372/2562/884 -f 1370/2560/862 1373/2563/862 1374/2564/862 1371/2561/862 -f 1373/2563/885 1375/2565/885 1376/2566/885 1374/2564/885 -f 1375/2565/886 1377/2567/886 1378/2568/886 1376/2566/886 -f 1371/2569/882 1374/2570/882 1376/2571/882 1378/2572/882 1379/2573/882 1372/2574/882 -f 1377/2567/866 1380/2575/866 1379/2576/866 1378/2568/866 -f 1380/2575/887 1369/2577/887 1372/2578/887 1379/2576/887 -f 1381/2579/866 1382/2580/866 1383/2581/866 1384/2582/866 -f 1382/2583/888 1385/2584/888 1386/2585/888 1383/2586/888 -f 1385/2587/862 1387/2588/862 1388/2589/862 1386/2590/862 -f 1387/2591/889 1381/2592/889 1384/2593/889 1388/2594/889 -f 1383/2581/890 1389/2595/890 1390/2596/890 1384/2582/890 -f 1391/2597/891 1392/2598/891 1390/2596/891 1389/2595/891 -f 1384/2593/892 1390/2596/892 1392/2598/892 1388/2594/892 -f 1386/2585/893 1391/2597/893 1389/2595/893 1383/2586/893 -f 1388/2589/894 1392/2598/894 1391/2597/894 1386/2590/894 -o Coils_Cylinder.012 -v -0.463562 0.524760 2.571894 -v -0.237813 0.524760 2.571894 -v -0.237813 0.222044 2.697284 -v -0.463562 0.222044 2.697284 -v -0.237813 0.096655 3.000000 -v -0.463562 0.096655 3.000000 -v -0.237813 0.222044 3.302716 -v -0.463562 0.222044 3.302716 -v -0.237813 0.524760 3.428106 -v -0.463562 0.524760 3.428106 -v -0.237813 0.827477 3.302716 -v -0.463562 0.827477 3.302716 -v -0.237813 0.952866 3.000000 -v -0.463562 0.952866 3.000000 -v -0.237813 0.827477 2.697284 -v -0.463562 0.827477 2.697284 -v -0.170088 0.524760 2.571894 -v 0.055660 0.524760 2.571894 -v 0.055660 0.222044 2.697284 -v -0.170088 0.222044 2.697284 -v 0.055660 0.096655 3.000000 -v -0.170088 0.096655 3.000000 -v 0.055660 0.222044 3.302716 -v -0.170088 0.222044 3.302716 -v 0.055660 0.524760 3.428106 -v -0.170088 0.524760 3.428106 -v 0.055660 0.827477 3.302716 -v -0.170088 0.827477 3.302716 -v 0.055660 0.952866 3.000000 -v -0.170088 0.952866 3.000000 -v 0.055660 0.827477 2.697284 -v -0.170088 0.827477 2.697284 -v 0.123385 0.524760 2.571894 -v 0.349134 0.524760 2.571894 -v 0.349134 0.222044 2.697284 -v 0.123385 0.222044 2.697284 -v 0.349134 0.096655 3.000000 -v 0.123385 0.096655 3.000000 -v 0.349134 0.222044 3.302716 -v 0.123385 0.222044 3.302716 -v 0.349134 0.524760 3.428106 -v 0.123385 0.524760 3.428106 -v 0.349134 0.827477 3.302716 -v 0.123385 0.827477 3.302716 -v 0.349134 0.952866 3.000000 -v 0.123385 0.952866 3.000000 -v 0.349134 0.827477 2.697284 -v 0.123385 0.827477 2.697284 -v 0.416858 0.524760 2.571894 -v 0.642607 0.524760 2.571894 -v 0.642607 0.222044 2.697284 -v 0.416858 0.222044 2.697284 -v 0.642607 0.096655 3.000000 -v 0.416858 0.096655 3.000000 -v 0.642607 0.222044 3.302716 -v 0.416858 0.222044 3.302716 -v 0.642607 0.524760 3.428106 -v 0.416858 0.524760 3.428106 -v 0.642607 0.827477 3.302716 -v 0.416858 0.827477 3.302716 -v 0.642607 0.952866 3.000000 -v 0.416858 0.952866 3.000000 -v 0.642607 0.827477 2.697284 -v 0.416858 0.827477 2.697284 -v 0.710331 0.524760 2.571894 -v 0.936080 0.524760 2.571894 -v 0.936080 0.222044 2.697284 -v 0.710331 0.222044 2.697284 -v 0.936080 0.096655 3.000000 -v 0.710331 0.096655 3.000000 -v 0.936080 0.222044 3.302716 -v 0.710331 0.222044 3.302716 -v 0.936080 0.524760 3.428106 -v 0.710331 0.524760 3.428106 -v 0.936080 0.827477 3.302716 -v 0.710331 0.827477 3.302716 -v 0.936080 0.952866 3.000000 -v 0.710331 0.952866 3.000000 -v 0.936080 0.827477 2.697284 -v 0.710331 0.827477 2.697284 -vt 0.781097 0.399443 -vt 0.718903 0.399443 -vt 0.718903 0.309173 -vt 0.781097 0.309173 -vt 0.718903 0.218903 -vt 0.781097 0.218903 -vt 0.781097 0.941064 -vt 0.718903 0.941064 -vt 0.718903 0.850794 -vt 0.781097 0.850794 -vt 0.718903 0.760524 -vt 0.781097 0.760524 -vt 0.718903 0.670254 -vt 0.781097 0.670254 -vt 0.718903 0.579984 -vt 0.781097 0.579984 -vt 0.218903 0.282734 -vt 0.282733 0.218903 -vt 0.373004 0.218903 -vt 0.436834 0.282734 -vt 0.436834 0.373004 -vt 0.373003 0.436835 -vt 0.282733 0.436834 -vt 0.218903 0.373004 -vt 0.718903 0.489714 -vt 0.781097 0.489714 -vt 0.064155 0.437482 -vt 0.154425 0.437483 -vt 0.218255 0.501313 -vt 0.218255 0.591583 -vt 0.154425 0.655414 -vt 0.064154 0.655414 -vt 0.000324 0.591583 -vt 0.000324 0.501313 -vt 0.999676 0.180864 -vt 0.937482 0.180864 -vt 0.937482 0.090594 -vt 0.999676 0.090594 -vt 0.937482 0.000324 -vt 0.999676 0.000324 -vt 0.999676 0.722485 -vt 0.937482 0.722485 -vt 0.937482 0.632215 -vt 0.999676 0.632215 -vt 0.937482 0.541944 -vt 0.999676 0.541944 -vt 0.937482 0.451674 -vt 0.999676 0.451674 -vt 0.937482 0.361404 -vt 0.999676 0.361404 -vt 0.000324 0.282734 -vt 0.064154 0.218903 -vt 0.154425 0.218903 -vt 0.218255 0.282734 -vt 0.218255 0.373004 -vt 0.154424 0.436835 -vt 0.064154 0.436834 -vt 0.000324 0.373004 -vt 0.937482 0.271134 -vt 0.999676 0.271134 -vt 0.501313 0.218903 -vt 0.591583 0.218903 -vt 0.655413 0.282734 -vt 0.655413 0.373004 -vt 0.591583 0.436835 -vt 0.501313 0.436834 -vt 0.437482 0.373004 -vt 0.437482 0.282734 -vt 0.718255 0.399443 -vt 0.656061 0.399443 -vt 0.656061 0.309173 -vt 0.718255 0.309173 -vt 0.656061 0.218903 -vt 0.718255 0.218903 -vt 0.718255 0.941064 -vt 0.656061 0.941064 -vt 0.656061 0.850794 -vt 0.718255 0.850794 -vt 0.656061 0.760524 -vt 0.718255 0.760524 -vt 0.656061 0.670254 -vt 0.718255 0.670254 -vt 0.656061 0.579984 -vt 0.718255 0.579984 -vt 0.218903 0.501313 -vt 0.282733 0.437482 -vt 0.373004 0.437483 -vt 0.436834 0.501313 -vt 0.436834 0.591583 -vt 0.373003 0.655414 -vt 0.282733 0.655414 -vt 0.218903 0.591583 -vt 0.656061 0.489714 -vt 0.718255 0.489714 -vt 0.501313 0.437482 -vt 0.591583 0.437483 -vt 0.655413 0.501313 -vt 0.655413 0.591583 -vt 0.591583 0.655414 -vt 0.501313 0.655414 -vt 0.437482 0.591583 -vt 0.437482 0.501313 -vt 0.936834 0.180864 -vt 0.874640 0.180864 -vt 0.874640 0.090594 -vt 0.936834 0.090594 -vt 0.874640 0.000324 -vt 0.936834 0.000324 -vt 0.936834 0.722484 -vt 0.874640 0.722484 -vt 0.874640 0.632214 -vt 0.936834 0.632214 -vt 0.874640 0.541944 -vt 0.936834 0.541944 -vt 0.874640 0.451674 -vt 0.936834 0.451674 -vt 0.874640 0.361404 -vt 0.936834 0.361404 -vt 0.656061 0.064155 -vt 0.719891 0.000324 -vt 0.810162 0.000324 -vt 0.873992 0.064155 -vt 0.873992 0.154425 -vt 0.810162 0.218255 -vt 0.719891 0.218255 -vt 0.656061 0.154425 -vt 0.874640 0.271134 -vt 0.936834 0.271134 -vt 0.501313 0.000324 -vt 0.591583 0.000324 -vt 0.655413 0.064155 -vt 0.655413 0.154425 -vt 0.591583 0.218255 -vt 0.501313 0.218255 -vt 0.437482 0.154425 -vt 0.437482 0.064155 -vt 0.873992 0.399443 -vt 0.811798 0.399443 -vt 0.811798 0.309173 -vt 0.873992 0.309173 -vt 0.811798 0.218903 -vt 0.873992 0.218903 -vt 0.873992 0.941064 -vt 0.811798 0.941064 -vt 0.811798 0.850794 -vt 0.873992 0.850794 -vt 0.811798 0.760524 -vt 0.873992 0.760524 -vt 0.811798 0.670253 -vt 0.873992 0.670253 -vt 0.811798 0.579983 -vt 0.873992 0.579983 -vt 0.218903 0.064155 -vt 0.282733 0.000324 -vt 0.373004 0.000324 -vt 0.436834 0.064155 -vt 0.436834 0.154425 -vt 0.373003 0.218255 -vt 0.282733 0.218255 -vt 0.218903 0.154425 -vt 0.811798 0.489713 -vt 0.873992 0.489713 -vt 0.064155 0.000324 -vt 0.154425 0.000324 -vt 0.218255 0.064155 -vt 0.218255 0.154425 -vt 0.154425 0.218255 -vt 0.064154 0.218255 -vt 0.000324 0.154425 -vt 0.000324 0.064155 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -1.0000 0.0000 0.0000 -s off -f 1393/2599/895 1394/2600/895 1395/2601/895 1396/2602/895 -f 1396/2602/896 1395/2601/896 1397/2603/896 1398/2604/896 -f 1398/2605/897 1397/2606/897 1399/2607/897 1400/2608/897 -f 1400/2608/898 1399/2607/898 1401/2609/898 1402/2610/898 -f 1402/2610/899 1401/2609/899 1403/2611/899 1404/2612/899 -f 1404/2612/900 1403/2611/900 1405/2613/900 1406/2614/900 -f 1395/2615/901 1394/2616/901 1407/2617/901 1405/2618/901 1403/2619/901 1401/2620/901 1399/2621/901 1397/2622/901 -f 1406/2614/902 1405/2613/902 1407/2623/902 1408/2624/902 -f 1408/2624/903 1407/2623/903 1394/2600/903 1393/2599/903 -f 1393/2625/904 1396/2626/904 1398/2627/904 1400/2628/904 1402/2629/904 1404/2630/904 1406/2631/904 1408/2632/904 -f 1409/2633/895 1410/2634/895 1411/2635/895 1412/2636/895 -f 1412/2636/896 1411/2635/896 1413/2637/896 1414/2638/896 -f 1414/2639/897 1413/2640/897 1415/2641/897 1416/2642/897 -f 1416/2642/898 1415/2641/898 1417/2643/898 1418/2644/898 -f 1418/2644/899 1417/2643/899 1419/2645/899 1420/2646/899 -f 1420/2646/900 1419/2645/900 1421/2647/900 1422/2648/900 -f 1411/2649/901 1410/2650/901 1423/2651/901 1421/2652/901 1419/2653/901 1417/2654/901 1415/2655/901 1413/2656/901 -f 1422/2648/902 1421/2647/902 1423/2657/902 1424/2658/902 -f 1424/2658/903 1423/2657/903 1410/2634/903 1409/2633/903 -f 1409/2659/904 1412/2660/904 1414/2661/904 1416/2662/904 1418/2663/904 1420/2664/904 1422/2665/904 1424/2666/904 -f 1425/2667/895 1426/2668/895 1427/2669/895 1428/2670/895 -f 1428/2670/896 1427/2669/896 1429/2671/896 1430/2672/896 -f 1430/2673/897 1429/2674/897 1431/2675/897 1432/2676/897 -f 1432/2676/898 1431/2675/898 1433/2677/898 1434/2678/898 -f 1434/2678/899 1433/2677/899 1435/2679/899 1436/2680/899 -f 1436/2680/900 1435/2679/900 1437/2681/900 1438/2682/900 -f 1427/2683/901 1426/2684/901 1439/2685/901 1437/2686/901 1435/2687/901 1433/2688/901 1431/2689/901 1429/2690/901 -f 1438/2682/902 1437/2681/902 1439/2691/902 1440/2692/902 -f 1440/2692/903 1439/2691/903 1426/2668/903 1425/2667/903 -f 1425/2693/904 1428/2694/904 1430/2695/904 1432/2696/904 1434/2697/904 1436/2698/904 1438/2699/904 1440/2700/904 -f 1441/2701/895 1442/2702/895 1443/2703/895 1444/2704/895 -f 1444/2704/896 1443/2703/896 1445/2705/896 1446/2706/896 -f 1446/2707/897 1445/2708/897 1447/2709/897 1448/2710/897 -f 1448/2710/898 1447/2709/898 1449/2711/898 1450/2712/898 -f 1450/2712/899 1449/2711/899 1451/2713/899 1452/2714/899 -f 1452/2714/900 1451/2713/900 1453/2715/900 1454/2716/900 -f 1443/2717/901 1442/2718/901 1455/2719/901 1453/2720/901 1451/2721/901 1449/2722/901 1447/2723/901 1445/2724/901 -f 1454/2716/902 1453/2715/902 1455/2725/902 1456/2726/902 -f 1456/2726/903 1455/2725/903 1442/2702/903 1441/2701/903 -f 1441/2727/904 1444/2728/904 1446/2729/904 1448/2730/904 1450/2731/904 1452/2732/904 1454/2733/904 1456/2734/904 -f 1457/2735/895 1458/2736/895 1459/2737/895 1460/2738/895 -f 1460/2738/896 1459/2737/896 1461/2739/896 1462/2740/896 -f 1462/2741/897 1461/2742/897 1463/2743/897 1464/2744/897 -f 1464/2744/898 1463/2743/898 1465/2745/898 1466/2746/898 -f 1466/2746/899 1465/2745/899 1467/2747/899 1468/2748/899 -f 1468/2748/900 1467/2747/900 1469/2749/900 1470/2750/900 -f 1459/2751/901 1458/2752/901 1471/2753/901 1469/2754/901 1467/2755/901 1465/2756/901 1463/2757/901 1461/2758/901 -f 1470/2750/902 1469/2749/902 1471/2759/902 1472/2760/902 -f 1472/2760/903 1471/2759/903 1458/2736/903 1457/2735/903 -f 1457/2761/904 1460/2762/904 1462/2763/904 1464/2764/904 1466/2765/904 1468/2766/904 1470/2767/904 1472/2768/904 +f 2/1/1 4/2/1 1/3/1 +f 3/4/2 6/5/2 4/2/2 +f 5/6/3 8/7/3 6/8/3 +f 7/9/4 10/10/4 8/7/4 +f 9/11/5 12/12/5 10/10/5 +f 11/13/6 14/14/6 12/12/6 +f 7/15/7 5/16/7 13/17/7 +f 13/18/8 16/19/8 14/14/8 +f 15/20/9 1/3/9 16/19/9 +f 8/21/10 12/22/10 16/23/10 +f 18/24/1 20/25/1 17/26/1 +f 19/27/2 22/28/2 20/25/2 +f 21/29/3 24/30/3 22/31/3 +f 23/32/4 26/33/4 24/30/4 +f 25/34/5 28/35/5 26/33/5 +f 27/36/6 30/37/6 28/35/6 +f 23/38/7 21/39/7 29/40/7 +f 29/41/8 32/42/8 30/37/8 +f 31/43/9 17/26/9 32/42/9 +f 24/44/10 28/45/10 32/46/10 +f 34/47/1 36/48/1 33/49/1 +f 35/50/2 38/51/2 36/48/2 +f 37/52/3 40/53/3 38/54/3 +f 39/55/4 42/56/4 40/53/4 +f 41/57/5 44/58/5 42/56/5 +f 43/59/6 46/60/6 44/58/6 +f 39/61/7 37/62/7 45/63/7 +f 45/64/8 48/65/8 46/60/8 +f 47/66/9 33/49/9 48/65/9 +f 40/67/10 44/68/10 48/69/10 +f 50/70/1 52/71/1 49/72/1 +f 51/73/2 54/74/2 52/71/2 +f 53/75/3 56/76/3 54/77/3 +f 55/78/4 58/79/4 56/76/4 +f 57/80/5 60/81/5 58/79/5 +f 59/82/6 62/83/6 60/81/6 +f 55/84/7 53/85/7 61/86/7 +f 61/87/8 64/88/8 62/83/8 +f 63/89/9 49/72/9 64/88/9 +f 56/90/10 60/91/10 64/92/10 +f 66/93/1 68/94/1 65/95/1 +f 67/96/2 70/97/2 68/94/2 +f 69/98/3 72/99/3 70/100/3 +f 71/101/4 74/102/4 72/99/4 +f 73/103/5 76/104/5 74/102/5 +f 75/105/6 78/106/6 76/104/6 +f 71/107/7 69/108/7 77/109/7 +f 77/110/8 80/111/8 78/106/8 +f 79/112/9 65/95/9 80/111/9 +f 72/113/10 76/114/10 80/115/10 +f 81/116/11 83/117/11 84/118/11 +f 84/118/7 85/119/7 86/120/7 +f 86/120/12 87/121/12 88/122/12 +f 87/121/13 90/123/13 88/122/13 +f 87/124/14 85/125/14 82/126/14 +f 89/127/10 92/128/10 90/123/10 +f 91/129/15 81/130/15 92/128/15 +f 93/131/16 95/132/16 96/133/16 +f 96/133/7 97/134/7 98/135/7 +f 98/135/17 99/136/17 100/137/17 +f 99/136/18 102/138/18 100/137/18 +f 99/139/14 97/140/14 94/141/14 +f 101/142/10 104/143/10 102/138/10 +f 103/144/19 93/145/19 104/143/19 +f 105/146/16 107/147/16 108/148/16 +f 108/148/7 109/149/7 110/150/7 +f 110/150/17 111/151/17 112/152/17 +f 111/151/18 114/153/18 112/152/18 +f 111/154/14 109/155/14 106/156/14 +f 113/157/10 116/158/10 114/153/10 +f 115/159/19 105/160/19 116/158/19 +f 117/161/10 119/162/10 120/163/10 +f 119/164/20 122/165/20 120/166/20 +f 121/167/7 124/168/7 122/169/7 +f 123/170/21 117/171/21 124/172/21 +f 118/173/22 126/174/22 119/162/22 +f 126/174/23 128/175/23 127/176/23 +f 123/170/24 125/177/24 118/178/24 +f 121/179/25 126/174/25 127/176/25 +f 123/180/26 127/176/26 128/175/26 +f 129/181/27 131/182/27 132/183/27 +f 130/184/7 134/185/7 131/182/7 +f 133/186/28 136/187/28 134/185/28 +f 137/188/29 136/187/29 135/189/29 +f 138/190/30 139/191/30 132/192/30 +f 140/193/10 138/194/10 137/188/10 +f 129/195/31 139/196/31 140/193/31 +f 141/197/27 143/198/27 144/199/27 +f 142/200/7 146/201/7 143/198/7 +f 145/202/28 148/203/28 146/201/28 +f 149/204/29 148/203/29 147/205/29 +f 150/206/30 151/207/30 144/208/30 +f 152/209/10 150/210/10 149/204/10 +f 141/211/31 151/212/31 152/209/31 +f 153/213/32 155/214/32 156/215/32 +f 154/216/7 158/217/7 155/214/7 +f 157/218/33 160/219/33 158/217/33 +f 161/220/34 160/219/34 159/221/34 +f 162/222/30 163/223/30 156/224/30 +f 164/225/10 162/226/10 161/220/10 +f 153/227/35 163/228/35 164/225/35 +f 165/229/10 167/230/10 168/231/10 +f 169/232/36 167/233/36 166/234/36 +f 171/235/7 170/236/7 169/237/7 +f 165/238/37 172/239/37 171/240/37 +f 173/241/38 168/231/38 167/230/38 +f 176/242/39 173/241/39 175/243/39 +f 168/244/40 176/242/40 172/239/40 +f 175/243/41 167/233/41 170/245/41 +f 172/246/42 175/243/42 170/236/42 +f 178/247/43 180/248/43 177/249/43 +f 208/250/44 211/251/44 205/252/44 +f 211/253/45 212/254/45 205/255/45 +f 188/256/46 181/257/46 185/258/46 +f 185/259/45 178/247/45 183/260/45 +f 183/261/47 187/262/47 185/263/47 +f 190/264/48 192/265/48 189/266/48 +f 188/267/49 189/266/49 182/268/49 +f 188/269/50 187/270/50 190/264/50 +f 182/271/51 186/272/51 183/273/51 +f 193/274/52 194/275/52 195/276/52 +f 187/270/46 191/277/46 190/264/46 +f 189/266/44 193/274/44 186/272/44 +f 186/272/45 196/278/45 187/262/45 +f 194/279/53 198/280/53 199/281/53 +f 196/278/54 195/282/54 200/283/54 +f 191/277/55 194/284/55 192/265/55 +f 196/285/56 197/286/56 191/277/56 +f 202/287/7 198/280/7 201/288/7 +f 200/289/57 198/280/57 197/290/57 +f 194/279/58 202/291/58 195/292/58 +f 195/292/59 201/293/59 200/294/59 +f 180/295/10 204/296/10 203/297/10 +f 184/298/60 204/296/60 181/257/60 +f 181/299/45 179/300/45 178/247/45 +f 184/298/48 180/301/48 203/302/48 +f 206/303/43 208/250/43 205/252/43 +f 216/304/46 209/305/46 212/306/46 +f 213/307/48 208/250/48 209/308/48 +f 188/309/48 177/310/48 184/311/48 +f 213/312/49 215/313/49 210/314/49 +f 218/315/45 220/316/45 217/317/45 +f 217/317/61 216/318/61 211/319/61 +f 216/320/62 214/321/62 213/322/62 +f 215/313/51 211/323/51 210/324/51 +f 221/325/63 223/326/63 218/315/63 +f 219/327/46 214/321/46 220/316/46 +f 221/325/44 217/317/44 215/313/44 +f 224/328/48 215/313/48 214/329/48 +f 223/330/59 226/331/59 227/332/59 +f 224/328/64 222/333/64 221/325/64 +f 223/334/65 219/327/65 218/315/65 +f 227/335/56 224/336/56 219/327/56 +f 226/331/7 230/337/7 229/338/7 +f 226/331/57 228/339/57 227/332/57 +f 230/340/58 223/330/58 222/341/58 +f 229/342/53 222/341/53 228/343/53 +f 232/344/10 206/345/10 231/346/10 +f 232/344/60 212/306/60 209/305/60 +f 207/347/48 209/308/48 208/250/48 +f 212/306/45 206/348/45 205/252/45 +f 178/247/44 182/349/44 183/260/44 +f 234/350/1 236/351/1 233/352/1 +f 235/353/2 238/354/2 236/351/2 +f 237/355/3 240/356/3 238/357/3 +f 239/358/4 242/359/4 240/356/4 +f 241/360/5 244/361/5 242/359/5 +f 243/362/6 246/363/6 244/361/6 +f 245/364/8 248/365/8 246/363/8 +f 247/366/9 233/352/9 248/365/9 +f 240/356/66 249/367/66 250/368/66 +f 255/369/10 256/370/10 250/371/10 +f 248/365/67 255/372/67 246/363/67 +f 238/354/68 252/373/68 236/351/68 +f 244/361/69 249/374/69 242/359/69 +f 248/365/70 251/375/70 256/376/70 +f 236/351/71 251/377/71 233/352/71 +f 238/357/72 250/378/72 253/379/72 +f 244/361/73 255/380/73 254/381/73 +f 258/382/74 260/383/74 257/384/74 +f 259/385/75 262/386/75 260/383/75 +f 261/387/76 264/388/76 262/386/76 +f 263/389/77 266/390/77 264/388/77 +f 265/391/78 268/392/78 266/390/78 +f 267/393/79 270/394/79 268/392/79 +f 261/395/48 258/382/48 269/396/48 +f 269/397/80 272/398/80 270/394/80 +f 271/399/81 257/400/81 272/398/81 +f 270/401/45 272/402/45 264/403/45 +f 274/404/45 276/405/45 273/406/45 +f 273/407/45 278/408/45 274/409/45 +f 280/410/82 282/411/82 279/412/82 +f 284/413/48 286/414/48 283/415/48 +f 278/408/83 287/416/83 274/409/83 +f 273/417/44 284/418/44 277/419/44 +f 276/420/44 290/421/44 288/422/44 +f 286/423/48 288/424/48 291/425/48 +f 273/417/44 288/422/44 285/426/44 +f 291/425/84 293/427/84 294/428/84 +f 290/429/10 295/430/10 292/431/10 +f 291/425/85 296/432/85 286/423/85 +f 276/405/45 295/433/45 289/434/45 +f 288/424/48 292/435/48 291/425/48 +f 280/436/46 296/437/46 287/416/46 +f 296/438/86 297/439/86 287/440/86 +f 294/428/87 298/441/87 297/439/87 +f 295/430/88 293/427/88 292/431/88 +f 320/442/89 277/419/89 284/418/89 +f 275/443/90 298/441/90 295/433/90 +f 275/443/91 287/444/91 297/445/91 +f 283/415/92 296/437/92 279/446/92 +f 306/447/93 308/448/93 281/449/93 +f 280/450/94 306/447/94 281/449/94 +f 279/451/95 299/452/95 283/453/95 +f 308/448/96 311/454/96 309/455/96 +f 305/456/97 311/457/97 312/458/98 +f 299/452/99 309/455/99 305/456/99 +f 281/449/100 309/455/100 282/411/100 +f 283/453/48 301/459/48 284/460/48 +f 319/461/7 312/462/101 318/463/102 +f 312/462/103 310/464/104 318/463/105 +f 284/460/48 302/465/48 320/466/48 +f 307/467/106 310/468/106 308/448/106 +f 301/469/76 313/470/76 321/471/76 +f 304/472/79 322/473/79 317/474/79 +f 300/475/75 314/476/75 313/470/75 +f 323/477/80 317/474/80 316/478/80 +f 324/479/81 316/478/81 315/480/81 +f 302/481/77 321/471/77 326/482/77 +f 303/483/78 326/482/78 322/473/78 +f 325/484/74 315/485/74 314/476/74 +f 299/452/48 305/456/48 324/486/48 +f 299/452/48 300/487/48 283/453/48 +f 303/488/48 312/458/107 320/466/48 +f 323/489/48 312/458/108 304/490/48 +f 326/491/45 277/492/45 319/493/45 +f 318/494/109 322/495/45 319/493/45 +f 318/494/110 316/496/45 317/497/45 +f 321/498/45 278/499/45 277/492/45 +f 306/447/45 313/500/45 314/501/45 +f 307/467/45 306/447/45 315/502/45 +f 327/503/45 329/504/45 330/505/45 +f 332/506/7 334/507/7 331/508/7 +f 336/509/44 338/510/44 335/511/44 +f 340/512/48 342/513/48 339/514/48 +f 344/515/44 346/516/44 343/517/44 +f 348/518/46 350/519/46 347/520/46 +f 352/521/45 354/522/45 351/523/45 +f 356/524/48 358/525/48 355/526/48 +f 360/527/10 362/528/10 359/529/10 +f 363/530/111 358/525/111 339/514/111 +f 357/531/112 343/517/112 340/512/112 +f 364/532/113 351/523/113 347/533/113 +f 336/509/114 327/503/114 344/515/114 +f 349/534/115 334/535/115 355/526/115 +f 338/510/116 356/524/116 333/536/116 +f 348/537/117 354/522/117 331/538/117 +f 335/511/118 332/539/118 353/540/118 +f 365/541/119 342/513/119 367/542/119 +f 341/543/120 369/544/120 368/545/120 +f 370/546/121 329/504/121 372/547/121 +f 373/548/122 330/505/122 374/549/122 +f 365/541/123 367/542/123 359/550/123 +f 368/545/124 369/544/124 360/551/124 +f 370/546/125 362/552/125 371/553/125 +f 373/548/126 374/549/126 361/554/126 +f 350/519/127 364/555/127 347/520/127 +f 357/531/48 339/514/48 358/525/48 +f 336/509/44 343/517/44 337/556/44 +f 352/521/45 328/557/45 327/503/45 +f 347/533/128 354/522/128 348/537/128 +f 335/511/114 352/521/114 336/509/114 +f 331/538/129 353/540/129 332/539/129 +f 348/518/130 334/507/130 349/558/130 +f 338/510/131 332/506/131 335/511/131 +f 355/526/132 333/536/132 356/524/132 +f 349/534/133 358/525/133 350/559/133 +f 337/556/112 356/524/112 338/510/112 +f 366/560/134 370/561/134 372/562/134 +f 341/543/48 367/542/48 342/513/48 +f 345/563/135 369/564/135 346/516/135 +f 330/505/45 371/553/45 374/549/45 +f 330/505/114 344/515/114 327/503/114 +f 340/512/112 346/516/112 341/543/112 +f 339/514/136 366/565/136 363/530/136 +f 328/557/137 372/547/137 329/504/137 +f 365/566/138 362/528/138 370/561/138 +f 368/545/139 359/550/139 367/542/139 +f 373/567/140 360/527/140 369/564/140 +f 374/549/141 362/552/141 361/554/141 +f 363/568/142 372/562/142 364/569/142 +f 376/570/10 378/571/10 375/572/10 +f 377/573/45 380/574/45 378/575/45 +f 379/576/7 382/577/7 380/578/7 +f 381/579/48 375/580/48 382/581/48 +f 375/580/143 383/582/143 384/583/143 +f 377/573/44 381/579/44 379/584/44 +f 387/585/46 383/586/46 386/587/46 +f 380/574/144 388/588/144 387/589/144 +f 378/571/145 383/586/145 375/572/145 +f 382/577/146 388/590/146 380/578/146 +f 390/591/45 392/592/45 389/593/45 +f 385/594/147 390/595/147 388/596/147 +f 384/597/48 393/598/48 385/599/48 +f 387/600/148 394/601/148 384/602/148 +f 387/603/45 390/591/45 389/593/45 +f 395/604/149 396/605/150 397/606/151 +f 393/607/152 391/608/152 390/595/152 +f 394/601/153 392/609/153 395/604/153 +f 393/598/48 395/610/48 398/611/48 +f 399/612/46 401/613/46 402/614/46 +f 395/610/48 402/615/48 398/611/48 +f 392/592/45 401/616/45 400/617/45 +f 398/618/154 401/613/154 391/608/154 +f 404/619/155 406/620/156 403/621/157 +f 400/617/158 396/622/159 392/592/158 +f 399/623/160 397/624/161 404/625/162 +f 399/612/163 403/621/164 400/626/163 +f 408/627/165 405/628/165 407/629/165 +f 396/622/166 406/630/167 408/631/167 +f 397/606/168 408/632/169 407/633/169 +f 404/625/170 407/634/171 405/635/171 +f 418/636/172 412/637/172 417/638/172 +f 409/639/48 417/640/48 412/641/48 +f 418/642/45 410/643/45 411/644/45 +f 415/645/48 417/640/48 414/646/48 +f 419/647/173 421/648/173 416/649/173 +f 418/642/45 422/650/45 413/651/45 +f 416/649/174 418/636/174 417/638/174 +f 422/652/175 414/653/175 413/654/175 +f 419/647/176 424/655/176 420/656/176 +f 424/655/177 415/657/177 422/652/177 +f 423/658/48 416/659/48 415/645/48 +f 421/660/45 424/655/45 422/650/45 +f 414/653/178 410/661/178 413/654/178 +f 466/662/179 427/663/179 465/664/179 +f 465/664/180 425/665/180 462/666/180 +f 425/665/181 428/667/181 429/668/181 +f 468/669/182 430/670/182 467/671/182 +f 461/672/183 432/673/183 468/669/183 +f 430/670/184 466/662/184 467/671/184 +f 433/674/48 435/675/48 436/676/48 +f 427/663/185 433/677/185 428/678/185 +f 432/673/186 434/679/186 430/670/186 +f 426/680/187 429/681/187 438/682/187 +f 430/670/188 433/674/188 431/683/188 +f 426/684/189 437/685/189 432/673/189 +f 436/686/190 441/687/190 439/688/190 +f 438/689/48 443/690/48 437/685/48 +f 429/668/48 439/691/48 444/692/48 +f 433/677/48 439/688/48 428/678/48 +f 437/693/48 435/694/48 434/679/48 +f 438/682/48 444/695/48 442/696/48 +f 445/697/48 447/698/48 440/699/48 +f 435/694/191 448/700/191 445/701/191 +f 444/695/192 450/702/192 442/696/192 +f 435/675/193 440/699/193 436/676/193 +f 443/690/194 450/703/194 448/704/194 +f 439/691/195 449/705/195 444/692/195 +f 447/706/183 453/707/183 451/708/183 +f 450/703/48 455/709/48 448/704/48 +f 449/705/48 451/710/48 456/711/48 +f 440/712/48 451/708/48 441/687/48 +f 445/701/48 455/713/48 446/714/48 +f 449/715/48 454/716/48 450/702/48 +f 458/717/48 459/718/48 460/719/48 +f 455/713/180 458/720/180 446/714/180 +f 456/721/184 460/722/184 454/716/184 +f 446/723/196 452/724/196 447/698/196 +f 454/725/179 459/726/179 455/709/179 +f 451/710/182 457/727/182 456/711/182 +f 462/666/197 464/728/197 465/664/197 +f 462/666/196 426/680/196 461/729/196 +f 470/730/45 472/731/45 469/732/45 +f 465/664/198 469/733/198 466/662/198 +f 467/671/199 473/734/199 468/669/199 +f 474/735/200 462/666/200 461/729/200 +f 466/662/201 472/731/201 467/671/201 +f 473/736/202 461/672/202 468/669/202 +f 476/737/203 470/738/203 475/739/203 +f 473/736/45 479/740/45 474/741/45 +f 463/742/45 475/743/45 464/728/45 +f 475/739/45 469/733/45 464/744/45 +f 471/745/45 473/734/45 472/746/45 +f 474/735/45 480/747/45 463/748/45 +f 481/749/45 483/750/45 477/751/45 +f 471/745/204 484/752/204 478/753/204 +f 485/754/205 480/747/205 479/755/205 +f 470/730/206 483/750/206 471/756/206 +f 478/757/207 485/758/207 479/740/207 +f 486/759/208 475/743/208 480/760/208 +f 488/761/183 481/762/183 487/763/183 +f 490/764/45 485/758/45 484/765/45 +f 486/759/45 487/766/45 476/767/45 +f 487/763/45 477/768/45 476/737/45 +f 483/769/45 490/770/45 484/752/45 +f 485/754/45 492/771/45 486/772/45 +f 496/773/45 489/774/45 488/775/45 +f 496/776/180 490/770/180 482/777/180 +f 494/778/184 492/771/184 491/779/184 +f 489/780/196 482/781/196 481/749/196 +f 495/782/179 491/783/179 490/764/179 +f 493/784/182 487/766/182 492/785/182 +f 498/786/209 500/787/209 497/788/209 +f 500/787/7 501/789/7 502/790/7 +f 502/790/210 503/791/210 504/792/210 +f 503/793/211 506/794/211 504/795/211 +f 505/796/10 508/797/10 506/794/10 +f 507/798/212 497/788/212 508/797/212 +f 498/786/213 510/799/213 499/800/213 +f 510/799/7 501/801/7 499/800/7 +f 511/802/214 503/803/214 501/801/214 +f 512/804/215 505/805/215 503/806/215 +f 505/805/10 514/807/10 507/798/10 +f 514/807/216 498/786/216 507/798/216 +f 515/808/217 510/799/217 509/809/217 +f 510/799/7 517/810/7 511/811/7 +f 517/810/218 512/812/218 511/811/218 +f 512/813/219 519/814/219 513/815/219 +f 519/814/10 514/807/10 513/815/10 +f 514/807/220 515/808/220 509/809/220 +f 521/816/210 516/817/210 515/808/210 +f 516/817/7 523/818/7 517/819/7 +f 517/819/209 524/820/209 518/821/209 +f 524/822/212 519/823/212 518/824/212 +f 525/825/10 520/826/10 519/823/10 +f 520/826/211 521/816/211 515/808/211 +f 527/827/214 522/828/214 521/816/214 +f 522/828/7 529/829/7 523/830/7 +f 529/829/213 524/831/213 523/830/213 +f 524/832/216 531/833/216 525/834/216 +f 531/833/10 526/835/10 525/834/10 +f 526/835/215 527/827/215 521/816/215 +f 497/836/218 528/837/218 527/827/218 +f 528/837/7 502/838/7 529/839/7 +f 502/838/217 530/840/217 529/839/217 +f 530/841/220 506/842/220 531/843/220 +f 506/842/10 532/844/10 531/843/10 +f 532/844/219 497/836/219 527/827/219 +f 533/845/221 538/846/222 534/847/223 +f 537/848/224 540/849/224 538/846/224 +f 539/850/225 542/851/225 540/852/225 +f 541/853/48 539/854/48 537/855/48 +f 541/856/226 545/857/226 542/851/226 +f 544/858/227 546/859/228 545/857/227 +f 540/860/45 542/861/45 545/862/45 +f 548/863/229 550/864/230 547/865/231 +f 533/845/232 546/859/233 543/866/234 +f 549/867/235 552/868/235 550/864/235 +f 547/869/236 552/868/45 535/870/237 +f 535/871/238 551/872/239 536/873/240 +f 548/874/241 551/872/48 549/867/48 +f 553/875/242 555/876/242 556/877/242 +f 555/876/243 558/878/243 556/877/243 +f 557/879/244 560/880/244 558/881/244 +f 559/882/245 562/883/245 560/880/245 +f 555/876/246 564/884/246 557/885/246 +f 561/886/247 566/887/247 562/883/247 +f 566/887/248 554/888/248 553/875/248 +f 560/880/249 568/889/249 558/881/249 +f 572/890/250 564/891/250 569/892/250 +f 565/893/251 571/894/251 570/895/251 +f 554/888/252 563/896/252 555/876/252 +f 559/882/253 564/897/253 572/898/253 +f 554/888/254 570/899/254 569/900/254 +f 559/882/255 571/901/255 561/886/255 +f 573/902/256 575/903/256 576/904/256 +f 566/887/257 577/905/257 574/906/257 +f 562/883/258 567/907/258 560/880/258 +f 556/877/259 568/908/259 578/909/259 +f 566/887/260 573/902/260 562/883/260 +f 553/875/261 578/910/261 577/911/261 +f 575/912/262 580/913/262 581/914/262 +f 567/915/256 583/916/256 568/889/256 +f 577/911/256 584/917/256 579/918/256 +f 574/906/256 579/919/256 575/920/256 +f 573/921/256 582/922/256 567/907/256 +f 578/909/256 583/923/256 584/924/256 +f 587/925/256 588/926/256 581/927/256 +f 576/928/263 587/929/263 582/930/263 +f 583/931/264 585/932/264 584/933/264 +f 575/934/265 588/935/265 576/936/265 +f 583/937/266 587/938/266 586/939/266 +f 584/940/267 580/941/267 579/942/267 +f 589/943/268 591/944/268 592/945/268 +f 593/946/269 595/947/269 596/948/269 +f 597/949/270 599/950/270 595/951/270 +f 601/952/271 602/953/271 600/954/271 +f 596/955/272 604/956/272 593/957/272 +f 590/958/273 601/959/273 605/960/273 +f 598/961/274 607/962/274 599/950/274 +f 596/948/275 599/963/275 608/964/275 +f 603/965/276 598/966/276 597/967/276 +f 603/968/277 608/969/277 609/970/277 +f 606/971/278 611/972/278 612/973/278 +f 599/963/279 613/974/279 608/964/279 +f 598/966/280 610/975/280 606/971/280 +f 608/969/281 610/976/281 609/970/281 +f 615/977/282 611/978/282 614/979/282 +f 613/980/283 611/978/283 610/976/283 +f 606/981/284 615/982/284 607/962/284 +f 607/983/285 614/984/285 613/974/285 +f 616/985/286 618/986/286 591/987/286 +f 602/988/287 616/989/287 619/990/287 +f 619/991/288 591/987/288 590/992/288 +f 602/953/289 592/993/289 620/994/289 +f 621/995/290 622/996/290 623/997/290 +f 620/994/291 621/998/291 624/999/291 +f 592/945/292 618/1000/292 621/995/292 +f 620/1001/293 617/1002/293 616/989/293 +f 623/997/294 626/1003/294 625/1004/294 +f 624/1005/295 626/1003/295 617/1002/295 +f 617/1006/296 622/1007/296 618/986/296 +f 624/999/297 623/1008/297 625/1009/297 +f 594/1010/298 597/949/298 595/951/298 +f 628/1011/299 627/1012/299 594/1010/299 +f 630/1013/300 629/1014/300 628/1011/300 +f 633/1015/272 635/1016/272 632/1017/272 +f 636/1018/272 634/1019/272 633/1015/272 +f 593/957/272 637/1020/272 636/1018/272 +f 597/967/301 604/1021/301 603/965/301 +f 627/1022/302 637/1023/302 604/1021/302 +f 629/1024/303 634/1025/303 637/1023/303 +f 632/1026/304 630/1027/304 633/1028/304 +f 633/1028/305 628/1029/305 636/1030/305 +f 636/1030/306 594/1031/306 593/946/306 +f 619/991/307 605/1032/307 639/1033/307 +f 639/1033/308 638/1034/308 632/1026/308 +f 619/990/309 600/1035/309 602/988/309 +f 632/1017/272 600/1035/272 639/1036/272 +f 630/1013/310 640/1037/310 631/1038/310 +f 605/960/311 640/1037/311 638/1039/311 +f 631/1040/312 635/1041/312 634/1025/312 +f 640/1042/313 600/954/313 635/1041/313 +f 642/1043/314 644/1044/314 641/1045/314 +f 646/1046/45 648/1047/45 645/1048/45 +f 648/1047/315 651/1049/315 649/1050/315 +f 653/1051/316 641/1045/48 652/1052/48 +f 648/1047/317 654/1053/317 650/1054/317 +f 646/1055/44 653/1056/318 647/1057/319 +f 656/1058/320 658/1059/321 655/1060/321 +f 641/1045/48 660/1061/48 652/1052/48 +f 645/1048/45 649/1050/45 661/1062/45 +f 662/1063/322 664/1064/322 665/1065/322 +f 652/1052/323 666/1066/323 667/1067/323 +f 669/1068/324 671/1069/324 668/1070/324 +f 659/1071/48 672/1072/325 660/1061/48 +f 661/1062/45 656/1058/326 668/1070/45 +f 662/1063/48 675/1073/48 673/1074/48 +f 663/1075/327 676/1076/327 664/1064/327 +f 663/1075/48 673/1074/48 672/1072/328 +f 668/1070/45 655/1060/45 669/1068/45 +f 682/1077/329 674/1078/329 683/1079/329 +f 688/1080/330 670/1081/330 669/1068/330 +f 652/1052/331 678/1082/331 653/1051/332 +f 646/1046/333 679/1083/333 680/1084/333 +f 643/1085/10 679/1083/10 644/1044/10 +f 679/1086/334 676/1087/334 644/1088/334 +f 681/1089/335 664/1064/335 676/1076/335 +f 671/1069/336 665/1065/336 664/1064/336 +f 670/1081/337 683/1079/337 665/1065/337 +f 659/1090/338 644/1088/338 676/1087/338 +f 675/1091/339 688/1092/339 677/1093/339 +f 646/1055/340 643/1085/340 642/1094/340 +f 661/1095/341 679/1086/341 645/1096/341 +f 669/1068/45 677/1097/45 688/1080/45 +f 668/1070/342 681/1089/342 661/1062/342 +f 674/1098/343 665/1065/343 683/1099/343 +f 654/1053/7 667/1100/7 650/1054/7 +f 667/1100/344 651/1049/344 650/1054/344 +f 666/1101/345 657/1102/346 651/1049/345 +f 684/1103/347 658/1059/348 657/1102/349 +f 685/1104/350 687/1105/350 658/1059/350 +f 675/1073/351 685/1106/351 673/1074/351 +f 660/1061/352 684/1107/353 666/1066/352 +f 675/1091/354 687/1108/354 686/1109/354 +f 677/1097/355 658/1059/355 687/1105/355 +f 649/1050/356 657/1102/357 656/1058/358 +f 653/1056/359 654/1110/360 647/1057/361 +f 672/1072/362 685/1106/363 684/1107/364 +f 689/1111/365 691/1112/365 692/1113/365 +f 691/1112/2 694/1114/2 692/1113/2 +f 693/1115/3 696/1116/3 694/1117/3 +f 695/1118/4 698/1119/4 696/1116/4 +f 697/1120/5 700/1121/5 698/1119/5 +f 699/1122/6 702/1123/6 700/1121/6 +f 695/1124/7 693/1125/7 701/1126/7 +f 701/1127/8 704/1128/8 702/1123/8 +f 703/1129/366 689/1111/366 704/1128/366 +f 706/1130/367 708/1131/367 705/1132/367 +f 710/1133/368 712/1134/368 709/1135/368 +f 713/1136/369 710/1137/369 709/1138/369 +f 715/1139/370 717/1140/370 718/1141/370 +f 705/1132/371 717/1142/371 716/1143/371 +f 706/1144/372 720/1145/372 707/1146/372 +f 714/1147/373 722/1148/373 710/1149/373 +f 719/1150/374 709/1151/374 720/1152/374 +f 721/1153/375 718/1154/375 722/1155/375 +f 724/1156/8 726/1157/8 723/1158/8 +f 720/1159/376 728/1160/376 707/1161/376 +f 708/1162/377 730/1163/377 717/1164/377 +f 717/1165/378 724/1156/378 718/1166/378 +f 722/1167/379 711/1168/379 710/1169/379 +f 720/1170/380 712/1134/380 727/1171/380 +f 708/1172/381 728/1173/381 729/1174/381 +f 718/1175/382 723/1158/382 722/1176/382 +f 726/1157/383 733/1177/383 731/1178/383 +f 712/1134/5 731/1178/5 734/1179/5 +f 727/1171/3 736/1180/3 728/1160/3 +f 729/1174/1 738/1181/1 730/1163/1 +f 730/1163/9 725/1182/9 724/1156/9 +f 723/1158/6 731/1178/6 711/1168/6 +f 712/1134/4 735/1183/4 727/1171/4 +f 728/1173/2 737/1184/2 729/1174/2 +f 739/1185/384 741/1186/384 742/1187/384 +f 734/1179/385 744/1188/385 735/1183/385 +f 736/1189/386 740/1190/386 737/1184/386 +f 726/1157/387 746/1191/387 732/1192/387 +f 734/1179/388 733/1193/388 743/1194/388 +f 736/1180/389 744/1195/389 745/1196/389 +f 737/1184/390 739/1197/390 738/1181/390 +f 738/1181/391 746/1198/391 725/1182/391 +f 748/1199/8 750/1200/8 747/1201/8 +f 739/1202/392 748/1199/392 746/1203/392 +f 732/1204/393 751/1205/393 733/1206/393 +f 743/1207/394 753/1208/394 744/1209/394 +f 745/1210/395 741/1186/395 740/1211/395 +f 732/1212/396 748/1199/396 747/1201/396 +f 733/1213/397 752/1214/397 743/1215/397 +f 745/1216/398 753/1208/398 754/1217/398 +f 755/1218/399 757/1219/399 758/1220/399 +f 751/1205/5 760/1221/5 752/1214/5 +f 753/1208/3 756/1222/3 754/1217/3 +f 741/1186/1 762/1223/1 742/1187/1 +f 742/1187/9 749/1224/9 748/1199/9 +f 747/1201/6 759/1225/6 751/1205/6 +f 752/1214/4 761/1226/4 753/1208/4 +f 754/1227/2 755/1218/2 741/1186/2 +f 764/1228/400 766/1229/400 763/1230/400 +f 749/1224/401 767/1231/401 750/1200/401 +f 759/1225/402 769/1232/402 760/1221/402 +f 761/1226/403 757/1233/403 756/1222/403 +f 755/1218/404 764/1234/404 762/1223/404 +f 749/1224/405 764/1228/405 763/1230/405 +f 750/1200/406 768/1235/406 759/1225/406 +f 761/1226/407 769/1236/407 770/1237/407 +f 766/1238/408 773/1239/408 771/1240/408 +f 767/1241/409 774/1242/409 768/1235/409 +f 769/1236/410 776/1243/410 770/1237/410 +f 757/1219/411 778/1244/411 758/1220/411 +f 767/1231/412 766/1238/412 771/1240/412 +f 769/1232/413 774/1245/413 775/1246/413 +f 757/1233/414 776/1247/414 777/1248/414 +f 764/1234/415 778/1249/415 765/1250/415 +f 773/1251/10 781/1252/10 779/1253/10 +f 774/1245/416 782/1254/416 775/1246/416 +f 776/1247/417 784/1255/417 777/1248/417 +f 778/1249/418 786/1256/418 765/1250/418 +f 766/1229/419 786/1257/419 772/1258/419 +f 774/1242/420 773/1251/420 779/1253/420 +f 776/1243/421 782/1259/421 783/1260/421 +f 778/1244/422 784/1261/422 785/1262/422 +f 788/1263/5 790/1264/5 787/1265/5 +f 782/1259/10 792/1266/10 783/1260/10 +f 784/1261/10 788/1267/10 785/1262/10 +f 773/1239/10 794/1268/10 780/1269/10 +f 782/1254/10 781/1270/10 791/1271/10 +f 784/1255/10 792/1272/10 793/1273/10 +f 786/1256/10 788/1263/10 787/1265/10 +f 786/1257/10 794/1274/10 772/1258/10 +f 799/1275/10 800/1276/10 796/1277/10 +f 787/1278/4 800/1279/4 794/1274/4 +f 780/1280/2 798/1281/2 781/1252/2 +f 791/1282/9 796/1283/9 792/1266/9 +f 793/1284/6 789/1285/6 788/1267/6 +f 794/1268/3 799/1286/3 780/1269/3 +f 781/1270/1 797/1287/1 791/1271/1 +f 792/1272/8 795/1288/8 793/1273/8 +f 715/1139/423 802/1289/423 716/1143/423 +f 803/1290/8 715/1139/8 721/1153/8 +f 714/1147/6 803/1290/6 721/1153/6 +f 805/1291/424 714/1147/424 713/1136/424 +f 719/1150/425 805/1291/425 713/1136/425 +f 807/1292/3 719/1150/3 706/1144/3 +f 705/1132/2 807/1293/2 706/1130/2 +f 802/1289/426 705/1132/426 716/1143/426 +f 704/1294/427 810/1295/427 809/1296/427 +f 702/1297/428 809/1296/428 811/1298/428 +f 812/1299/429 702/1297/429 811/1298/429 +f 813/1300/430 700/1301/430 812/1299/430 +f 696/1302/431 813/1300/431 814/1303/431 +f 815/1304/432 696/1302/432 814/1303/432 +f 692/1305/433 815/1306/433 816/1307/433 +f 810/1295/434 692/1305/434 816/1307/434 +f 802/1308/1 818/1309/1 808/1310/1 +f 819/1311/435 821/1312/435 822/1313/435 +f 824/1314/1 826/1315/1 823/1316/1 +f 809/1317/436 828/1318/436 811/1319/436 +f 818/1309/437 807/1320/437 808/1310/437 +f 830/1321/438 832/1322/438 826/1323/438 +f 825/1324/2 830/1325/2 826/1315/2 +f 813/1326/439 834/1327/439 835/1328/439 +f 807/1329/440 836/1330/440 806/1331/440 +f 837/1332/441 838/1333/441 839/1334/441 +f 833/1335/3 841/1336/3 830/1337/3 +f 843/1338/442 845/1339/442 842/1340/442 +f 836/1330/4 805/1341/4 806/1331/4 +f 829/1342/443 846/1343/443 847/1344/443 +f 840/1345/4 849/1346/4 841/1336/4 +f 814/1347/444 851/1348/444 815/1349/444 +f 837/1350/5 804/1351/5 805/1341/5 +f 852/1352/445 854/1353/445 855/1354/445 +f 848/1355/5 857/1356/5 849/1346/5 +f 848/1357/446 859/1358/446 856/1359/446 +f 820/1360/447 803/1361/447 804/1351/447 +f 857/1362/448 861/1363/448 849/1364/448 +f 856/1365/6 852/1366/6 857/1356/6 +f 810/1367/449 862/1368/449 863/1369/449 +f 803/1361/450 864/1370/450 801/1371/450 +f 864/1372/451 822/1313/451 865/1373/451 +f 843/1374/8 853/1375/8 852/1366/8 +f 833/1376/452 867/1377/452 840/1378/452 +f 864/1370/9 802/1308/9 801/1371/9 +f 830/1379/453 868/1380/453 831/1381/453 +f 842/1382/9 823/1316/9 853/1375/9 +f 824/1383/454 870/1384/454 825/1385/454 +f 863/1369/1 870/1384/1 869/1386/1 +f 862/1368/2 866/1387/2 870/1384/2 +f 851/1348/3 867/1377/3 866/1388/3 +f 850/1389/4 858/1390/4 867/1377/4 +f 835/1328/5 859/1358/5 858/1390/5 +f 834/1327/6 844/1391/6 859/1358/6 +f 828/1318/8 845/1339/8 844/1391/8 +f 827/1392/9 869/1386/9 845/1339/9 +f 825/1393/455 866/1387/455 833/1394/455 +f 848/1395/456 867/1377/456 858/1390/456 +f 816/1396/457 851/1397/457 862/1368/457 +f 856/1398/458 844/1391/458 843/1399/458 +f 813/1400/459 850/1389/459 814/1401/459 +f 824/1402/460 845/1339/460 869/1386/460 +f 812/1403/461 828/1318/461 834/1327/461 +f 810/1404/462 827/1392/462 809/1405/462 +f 871/1406/1 832/1322/1 846/1343/1 +f 832/1322/2 847/1344/2 846/1343/2 +f 831/1381/3 838/1333/3 847/1407/3 +f 868/1380/4 839/1334/4 838/1333/4 +f 861/1363/5 821/1312/5 839/1334/5 +f 860/1408/6 822/1313/6 821/1312/6 +f 855/1354/8 865/1373/8 822/1313/8 +f 854/1353/9 871/1406/9 865/1373/9 +f 841/1409/463 861/1363/463 868/1380/463 +f 864/1410/464 871/1406/464 817/1411/464 +f 852/1412/465 860/1408/465 857/1413/465 +f 853/1414/466 872/1415/466 854/1353/466 +f 817/1416/467 846/1343/467 818/1417/467 +f 829/1418/468 838/1333/468 836/1419/468 +f 826/1420/469 872/1415/469 823/1421/469 +f 837/1422/470 821/1312/470 820/1423/470 +f 874/1424/1 876/1425/1 873/1426/1 +f 875/1427/2 878/1428/2 876/1425/2 +f 877/1429/3 880/1430/3 878/1431/3 +f 879/1432/4 882/1433/4 880/1430/4 +f 881/1434/5 884/1435/5 882/1433/5 +f 883/1436/6 886/1437/6 884/1435/6 +f 881/1438/7 879/1439/7 877/1440/7 +f 885/1441/8 888/1442/8 886/1437/8 +f 887/1443/9 873/1426/9 888/1442/9 +f 884/1444/10 886/1445/10 888/1446/10 +f 890/1447/471 892/1448/471 889/1449/471 +f 890/1450/45 895/1451/45 893/1452/45 +f 894/1453/472 897/1454/472 898/1455/472 +f 896/1456/48 900/1457/48 899/1458/48 +f 895/1459/46 900/1457/46 893/1460/46 +f 890/1447/44 896/1456/44 894/1453/44 +f 898/1461/7 902/1462/7 901/1463/7 +f 894/1464/45 901/1463/45 895/1451/45 +f 899/1458/473 897/1465/473 896/1456/473 +f 895/1459/474 902/1466/474 899/1458/474 +f 892/1467/10 904/1468/10 903/1469/10 +f 893/1460/475 903/1470/475 904/1471/475 +f 890/1450/45 904/1472/45 891/1473/45 +f 889/1449/476 903/1469/476 900/1457/476 +f 906/1474/471 908/1475/471 905/1476/471 +f 910/1477/48 908/1478/48 909/1479/48 +f 911/1480/472 913/1481/472 914/1482/472 +f 916/1483/45 914/1482/45 915/1484/45 +f 916/1483/46 910/1485/46 909/1486/46 +f 914/1482/44 908/1475/44 911/1480/44 +f 918/1487/7 912/1488/7 917/1489/7 +f 917/1489/48 911/1490/48 910/1477/48 +f 914/1482/477 918/1487/477 915/1484/477 +f 918/1491/474 910/1485/474 915/1484/474 +f 920/1492/10 906/1493/10 919/1494/10 +f 909/1486/475 919/1495/475 916/1483/475 +f 908/1478/48 920/1496/48 909/1479/48 +f 916/1483/478 906/1493/478 905/1476/478 +f 921/1497/479 923/1498/479 924/1499/479 +f 922/1500/44 927/1501/44 925/1502/44 +f 926/1503/480 929/1504/480 930/1505/480 +f 928/1506/46 932/1507/46 931/1508/46 +f 925/1509/45 931/1508/45 932/1507/45 +f 922/1510/48 928/1506/48 926/1503/48 +f 930/1511/481 934/1512/481 933/1513/481 +f 927/1501/44 930/1511/44 933/1513/44 +f 931/1508/482 929/1514/482 928/1506/482 +f 927/1515/483 934/1516/483 931/1508/483 +f 924/1517/484 936/1518/484 935/1519/484 +f 932/1507/485 936/1520/485 925/1509/485 +f 925/1502/44 923/1521/44 922/1500/44 +f 932/1507/486 924/1517/486 935/1519/486 +f 937/1522/10 939/1523/10 940/1524/10 +f 941/1525/45 942/1526/45 943/1527/45 +f 945/1528/487 947/1529/487 948/1530/487 +f 951/1531/48 952/1532/48 953/1533/48 +f 956/1534/46 958/1535/46 955/1536/46 +f 960/1537/46 962/1538/46 959/1539/46 +f 964/1540/46 954/1541/46 963/1542/46 +f 940/1543/46 965/1544/46 937/1545/46 +f 967/1546/44 969/1547/44 966/1548/44 +f 970/1549/488 946/1550/488 945/1528/488 +f 973/1551/45 964/1552/45 974/1553/45 +f 945/1528/489 969/1554/489 950/1555/489 +f 964/1556/490 970/1557/490 949/1558/490 +f 945/1528/491 975/1559/491 969/1554/491 +f 973/1560/46 971/1561/46 970/1557/46 +f 972/1562/492 979/1563/492 977/1564/492 +f 972/1562/493 976/1565/493 973/1551/493 +f 981/1566/7 983/1567/7 980/1568/7 +f 976/1565/45 981/1569/45 980/1570/45 +f 971/1571/494 982/1572/494 946/1550/494 +f 976/1573/495 983/1567/495 971/1561/495 +f 975/1559/496 978/1574/496 984/1575/496 +f 947/1529/497 986/1576/497 979/1563/497 +f 948/1530/44 979/1563/44 978/1574/44 +f 946/1550/498 985/1577/498 947/1529/498 +f 981/1566/499 985/1578/499 982/1579/499 +f 969/1580/500 984/1575/500 966/1581/500 +f 972/1562/501 984/1575/501 978/1574/501 +f 977/1564/502 986/1582/502 981/1569/502 +f 990/1583/503 991/1584/503 969/1547/503 +f 938/1585/504 967/1546/504 939/1523/504 +f 966/1548/505 993/1586/505 994/1587/505 +f 997/1588/46 999/1589/46 942/1590/46 +f 1000/1591/10 955/1536/10 958/1535/10 +f 943/1592/7 965/1544/7 944/1593/7 +f 942/1590/506 1002/1594/506 943/1592/506 +f 997/1588/507 1000/1591/507 998/1595/507 +f 1004/1596/46 1006/1597/46 1003/1598/46 +f 1007/1599/10 959/1539/10 962/1538/10 +f 1009/1600/7 957/1601/7 956/1534/7 +f 1003/1598/506 1010/1602/506 1009/1600/506 +f 1007/1599/507 1004/1596/507 1008/1603/507 +f 1012/1604/46 1013/1605/46 1011/1606/46 +f 1014/1607/10 954/1541/10 953/1608/10 +f 1015/1609/7 961/1610/7 960/1537/7 +f 1015/1609/506 1013/1605/506 1016/1611/506 +f 1012/1604/507 953/1608/507 952/1612/507 +f 990/1583/48 1006/1613/48 1005/1614/48 +f 991/1584/48 1007/1615/48 1016/1616/48 +f 951/1531/48 1013/1617/48 952/1532/48 +f 989/1618/48 1000/1619/48 1010/1620/48 +f 988/1621/48 999/1622/48 998/1623/48 +f 937/1624/48 965/1625/48 1002/1626/48 +f 964/1627/45 963/1628/45 1014/1629/45 +f 993/1586/45 1012/1630/45 1011/1631/45 +f 994/1587/45 1015/1632/45 1008/1633/45 +f 995/1634/45 1004/1635/45 1003/1636/45 +f 996/1637/45 1009/1638/45 1001/1639/45 +f 941/1525/45 997/1640/45 942/1526/45 +f 1018/1641/1 1020/1642/1 1017/1643/1 +f 1022/1644/5 1024/1645/5 1021/1646/5 +f 1023/1647/6 1026/1648/6 1024/1645/6 +f 1028/1649/508 1030/1650/508 1027/1651/508 +f 1024/1645/509 1032/1652/509 1021/1646/509 +f 1018/1653/510 1034/1654/510 1035/1655/510 +f 1022/1656/511 1037/1657/511 1023/1658/511 +f 1038/1659/512 1040/1660/512 1041/1661/512 +f 1027/1662/513 1043/1663/513 1042/1664/513 +f 1044/1665/514 1046/1666/514 1042/1667/514 +f 1048/1668/515 1050/1669/515 1047/1670/515 +f 1048/1671/516 1051/1672/516 1049/1673/516 +f 1042/1674/517 1052/1675/517 1027/1676/517 +f 1044/1677/518 1053/1678/518 1045/1679/518 +f 1059/1680/3 1061/1681/3 1058/1682/3 +f 1060/1683/4 1063/1684/4 1061/1681/4 +f 1183/1685/519 1097/1686/519 1090/1687/519 +f 1067/1688/520 1068/1689/520 1069/1690/520 +f 1098/1691/9 1054/1692/9 1191/1693/9 +f 1074/1694/521 1075/1695/521 1073/1696/521 +f 1214/1697/522 1205/1698/522 1213/1699/522 +f 1079/1700/523 1070/1701/523 1074/1702/523 +f 1055/1703/524 1080/1704/524 1056/1705/524 +f 1081/1706/525 1075/1695/525 1064/1707/525 +f 1088/1708/526 1032/1709/526 1086/1710/526 +f 1083/1711/527 1080/1704/527 1079/1712/527 +f 1079/1700/528 1082/1713/528 1083/1714/528 +f 1031/1715/529 1069/1716/529 1032/1652/529 +f 1089/1717/530 1084/1718/530 1085/1719/530 +f 1071/1720/9 1055/1721/9 1098/1691/9 +f 1209/1722/531 1095/1723/531 1221/1724/531 +f 1095/1723/532 1077/1725/532 1076/1726/532 +f 1070/1727/9 1071/1720/9 1072/1728/9 +f 1099/1729/533 1100/1730/533 1101/1731/533 +f 1035/1732/534 1104/1733/534 1102/1734/534 +f 1105/1735/535 1107/1736/535 1029/1737/535 +f 1108/1738/536 1104/1733/536 1109/1739/536 +f 1110/1740/537 1111/1741/537 1112/1742/537 +f 1047/1743/538 1105/1744/538 1048/1745/538 +f 1023/1746/539 1099/1729/539 1025/1747/539 +f 1042/1748/540 1110/1740/540 1044/1749/540 +f 1028/1750/541 1105/1735/541 1029/1737/541 +f 1039/1751/542 1110/1752/542 1040/1753/542 +f 1018/1754/543 1102/1734/543 1019/1755/543 +f 1114/1756/544 1111/1741/544 1100/1730/544 +f 1115/1757/545 1106/1758/545 1103/1759/545 +f 1104/1733/546 1106/1758/546 1116/1760/546 +f 1034/1654/547 1103/1759/547 1035/1655/547 +f 1037/1657/548 1114/1756/548 1100/1730/548 +f 1030/1650/549 1107/1736/549 1117/1761/549 +f 1110/1752/550 1118/1762/550 1040/1753/550 +f 1105/1744/551 1116/1760/551 1106/1758/551 +f 1120/1763/552 1122/1764/552 1119/1765/552 +f 1051/1672/7 1120/1766/7 1049/1673/7 +f 1049/1767/7 1119/1765/7 1050/1669/7 +f 1052/1768/7 1123/1769/7 1051/1770/7 +f 1045/1771/7 1126/1772/7 1046/1666/7 +f 1045/1679/7 1127/1773/7 1125/1774/7 +f 1129/1775/553 1131/1776/553 1128/1777/553 +f 1125/1778/554 1133/1779/554 1126/1772/554 +f 1124/1780/555 1128/1781/555 1123/1769/555 +f 1124/1782/556 1133/1783/556 1129/1784/556 +f 1123/1785/557 1121/1786/557 1120/1766/557 +f 1134/1787/7 1136/1788/7 1137/1789/7 +f 1129/1790/558 1134/1791/558 1130/1792/558 +f 1128/1793/559 1138/1794/559 1121/1795/559 +f 1122/1796/560 1138/1797/560 1139/1798/560 +f 1140/1799/561 1135/1800/561 1132/1801/561 +f 1133/1802/562 1135/1803/562 1134/1787/562 +f 1131/1804/7 1143/1805/7 1138/1794/7 +f 1139/1798/7 1143/1806/7 1144/1807/7 +f 1141/1808/7 1136/1809/7 1135/1800/7 +f 1147/1810/9 1149/1811/9 1146/1812/9 +f 1150/1813/563 1151/1814/563 1152/1815/563 +f 1144/1807/564 1146/1816/564 1153/1817/564 +f 1145/1818/565 1155/1819/565 1136/1809/565 +f 1156/1820/566 1154/1821/566 1145/1822/566 +f 1137/1789/567 1155/1823/567 1151/1824/567 +f 1146/1816/1 1160/1825/1 1153/1817/1 +f 1154/1826/4 1164/1827/4 1155/1819/4 +f 1155/1823/5 1165/1828/5 1151/1824/5 +f 1166/1829/5 1162/1830/5 1161/1831/5 +f 1168/1832/6 1162/1830/6 1167/1833/6 +f 1170/1834/1 1172/1835/1 1169/1836/1 +f 1174/1837/3 1176/1838/3 1173/1839/3 +f 1175/1840/4 1161/1831/4 1176/1838/4 +f 1175/1841/7 1170/1842/7 1177/1843/7 +f 1178/1844/7 1180/1845/7 1181/1846/7 +f 1090/1687/568 1091/1847/568 1092/1848/568 +f 1064/1849/5 1185/1850/5 1067/1851/5 +f 1184/1852/569 1308/1853/569 1193/1854/569 +f 1064/1707/570 1069/1716/570 1081/1855/570 +f 1090/1687/571 1187/1856/571 1310/1857/571 +f 1191/1693/9 1054/1692/9 1180/1858/9 +f 1188/1859/8 1186/1860/8 1090/1687/8 +f 1162/1861/7 1159/1862/7 1160/1863/7 +f 1194/1864/9 1169/1836/9 1172/1835/9 +f 1189/1865/572 1195/1866/572 1196/1867/572 +f 1197/1868/7 1189/1865/7 1196/1867/7 +f 1097/1869/48 1093/1870/48 1096/1871/48 +f 1198/1872/573 1200/1873/573 1093/1874/573 +f 1201/1875/7 1145/1822/7 1141/1876/7 +f 1165/1877/6 1152/1815/6 1151/1814/6 +f 1183/1878/574 1198/1879/574 1097/1869/574 +f 1204/1880/10 1206/1881/10 1072/1882/10 +f 1082/1883/575 1073/1696/575 1087/1884/575 +f 1071/1885/10 1204/1886/10 1072/1887/10 +f 1099/1888/576 1115/1757/576 1034/1889/576 +f 1153/1890/2 1159/1862/2 1157/1891/2 +f 1208/1892/577 1071/1885/577 1098/1893/577 +f 1200/1894/578 1206/1881/578 1205/1895/578 +f 1065/1896/579 1093/1870/579 1078/1897/579 +f 1077/1898/10 1065/1896/10 1078/1897/10 +f 1185/1899/10 1077/1900/10 1095/1901/10 +f 1185/1899/577 1209/1902/577 1192/1903/577 +f 1195/1866/580 1192/1903/580 1209/1902/580 +f 1098/1893/580 1210/1904/580 1208/1892/580 +f 1211/1905/7 1127/1906/7 1053/1907/7 +f 1076/1726/581 1221/1724/581 1095/1723/581 +f 1237/1908/582 1209/1722/582 1221/1724/582 +f 1207/1909/583 1208/1910/583 1217/1911/583 +f 1104/1733/584 1215/1912/584 1109/1739/584 +f 1122/1913/585 1212/1914/585 1119/1915/585 +f 1142/1916/586 1146/1812/586 1143/1805/586 +f 1159/1917/3 1154/1821/3 1157/1918/3 +f 1236/1919/587 1217/1911/587 1208/1910/587 +f 1214/1697/46 1093/1874/46 1200/1873/46 +f 1038/1920/588 1113/1921/588 1047/1922/588 +f 1047/1923/589 1211/1924/589 1038/1925/589 +f 1032/1709/590 1068/1689/590 1086/1710/590 +f 1086/1926/591 1089/1927/591 1085/1928/591 +f 1215/1912/592 1113/1921/592 1041/1929/592 +f 1140/1930/593 1125/1774/593 1127/1773/593 +f 1131/1776/7 1150/1931/7 1142/1932/7 +f 1180/1845/594 1210/1904/594 1191/1933/594 +f 1219/1934/595 1221/1935/595 1094/1936/595 +f 1211/1924/7 1119/1915/7 1212/1914/7 +f 1101/1731/596 1107/1736/596 1115/1757/596 +f 1217/1911/597 1213/1699/597 1207/1909/597 +f 1086/1926/598 1222/1937/598 1088/1708/598 +f 1201/1875/599 1140/1938/599 1216/1939/599 +f 1134/1791/7 1150/1813/7 1130/1792/7 +f 1087/1940/600 1024/1645/600 1026/1648/600 +f 1224/1941/601 1203/1942/601 1223/1943/601 +f 1223/1943/602 1197/1944/602 1226/1945/602 +f 1178/1946/603 1227/1947/603 1179/1948/603 +f 1233/1949/604 1210/1950/604 1179/1948/604 +f 1224/1941/605 1178/1946/605 1225/1951/605 +f 1227/1947/606 1233/1949/606 1179/1948/606 +f 1229/1952/607 1226/1945/607 1196/1953/607 +f 1019/1954/2 1222/1955/2 1020/1642/2 +f 1019/1956/608 1108/1738/608 1228/1957/608 +f 1039/1958/609 1211/1905/609 1053/1907/609 +f 1111/1741/610 1101/1731/610 1100/1730/610 +f 1028/1959/611 1052/1768/611 1051/1770/611 +f 1040/1660/612 1215/1960/612 1041/1661/612 +f 1122/1961/613 1201/1962/613 1216/1963/613 +f 1201/1962/7 1144/1964/7 1156/1965/7 +f 1156/1965/614 1153/1890/614 1157/1891/614 +f 1056/1705/615 1089/1717/615 1059/1966/615 +f 1033/1967/616 1099/1888/616 1034/1889/616 +f 1194/1968/7 1159/1917/7 1158/1969/7 +f 1224/1970/617 1230/1971/617 1232/1972/617 +f 1195/1973/618 1234/1974/618 1229/1952/618 +f 1196/1953/619 1195/1973/619 1229/1952/619 +f 1076/1726/620 1077/1725/620 1078/1975/620 +f 1214/1697/621 1200/1873/621 1205/1698/621 +f 1210/1950/622 1236/1919/622 1208/1910/622 +f 1237/1908/623 1195/1973/623 1209/1722/623 +f 1231/1976/624 1239/1977/624 1232/1978/624 +f 1232/1978/625 1235/1979/625 1233/1949/625 +f 1230/1980/626 1234/1974/626 1240/1981/626 +f 1219/1982/627 1241/1983/627 1242/1984/627 +f 1219/1985/628 1243/1986/628 1220/1987/628 +f 1220/1987/629 1237/1908/629 1221/1724/629 +f 1237/1908/630 1240/1981/630 1234/1974/630 +f 1238/1988/631 1243/1986/631 1242/1989/631 +f 1238/1990/632 1241/1983/632 1239/1977/632 +f 1236/1919/633 1239/1977/633 1241/1983/633 +f 1281/1991/634 1367/1992/634 1245/1993/634 +f 1067/1851/4 1062/1994/4 1060/1683/4 +f 1061/1681/4 1244/1995/4 1193/1854/4 +f 1289/1996/635 1368/1997/635 1288/1998/635 +f 1284/1999/636 1370/2000/636 1289/2001/636 +f 1249/2002/637 1248/2003/637 1258/2004/637 +f 1282/2005/638 1371/2006/638 1281/2007/638 +f 1246/2008/639 1282/2009/639 1271/2010/639 +f 1367/2011/640 1372/2012/640 1246/2013/640 +f 1369/2014/8 1370/2015/8 1250/2016/8 +f 1248/2017/641 1250/2016/641 1251/2018/641 +f 1251/2018/642 1246/2013/642 1248/2017/642 +f 1368/2019/643 1249/2002/643 1288/2020/643 +f 1270/2021/644 1281/1991/644 1245/1993/644 +f 1286/2022/642 1245/1993/642 1285/2023/642 +f 1367/2024/645 1285/2023/645 1245/1993/645 +f 1258/2004/646 1246/2025/646 1271/2010/646 +f 1292/2026/8 1288/2020/8 1249/2002/8 +f 1249/2002/647 1262/2027/647 1265/2028/647 +f 1251/2029/648 1284/1999/648 1285/2023/648 +f 1253/2030/649 1277/2031/649 1278/2032/649 +f 1267/2033/650 1253/2030/650 1278/2032/650 +f 1277/2031/651 1269/2034/651 1276/2035/651 +f 1253/2030/652 1269/2034/652 1252/2036/652 +f 1273/2037/653 1255/2038/653 1272/2039/653 +f 1272/2039/654 1260/2040/654 1261/2041/654 +f 1259/2042/655 1273/2037/655 1262/2043/655 +f 1259/2042/656 1255/2038/656 1254/2044/656 +f 1275/2045/657 1257/2046/657 1274/2047/657 +f 1274/2047/658 1264/2048/658 1265/2049/658 +f 1263/2050/659 1275/2045/659 1266/2051/659 +f 1263/2050/652 1257/2046/652 1256/2052/652 +f 1258/2004/642 1272/2053/642 1261/2054/642 +f 1261/2041/660 1259/2042/660 1262/2043/660 +f 1262/2027/642 1274/2055/642 1265/2028/642 +f 1265/2049/661 1263/2050/661 1266/2051/661 +f 1267/2056/642 1275/2057/642 1276/2058/642 +f 1276/2035/662 1268/2059/662 1267/2033/662 +f 1279/2060/663 1291/2061/663 1292/2062/663 +f 1273/2063/664 1272/2053/664 1282/2009/664 +f 1279/2060/642 1277/2064/642 1280/2065/642 +f 1205/1698/665 1204/2066/665 1213/1699/665 +f 1290/2067/8 1284/1999/8 1289/2001/8 +f 1286/2022/666 1284/1999/666 1287/2068/667 +f 1293/2069/10 1291/2061/10 1295/2070/10 +f 1088/1708/4 1022/1644/4 1021/1646/4 +f 1297/2071/9 1018/1641/9 1017/1643/9 +f 1026/1648/8 1033/2072/8 1297/2071/8 +f 1083/1714/668 1297/2071/668 1017/1643/668 +f 1057/2073/2 1059/2074/2 1058/2075/2 +f 1298/2076/1 1056/2077/1 1057/2073/1 +f 1020/1642/669 1083/1711/669 1017/1643/669 +f 1301/2078/670 1036/2079/670 1300/2080/670 +f 1108/2081/671 1301/2078/671 1300/2082/671 +f 1300/2080/672 1022/2083/672 1296/2084/672 +f 1301/2078/673 1112/1742/673 1114/1756/673 +f 1117/1761/674 1043/1663/674 1030/2085/674 +f 1126/2086/7 1052/1675/7 1046/2087/7 +f 1150/1931/675 1147/2088/675 1142/1932/675 +f 1194/1864/8 1168/2089/8 1177/2090/8 +f 1171/2091/2 1174/1837/2 1173/1839/2 +f 1203/2092/7 1182/2093/7 1197/2094/7 +f 1225/2095/7 1181/2096/7 1188/2097/7 +f 1092/2098/45 1200/1894/45 1199/2099/45 +f 1152/2100/8 1148/2101/8 1147/2088/8 +f 1199/2099/676 1188/2097/676 1092/2098/676 +f 1031/2102/677 1073/2103/677 1081/1706/677 +f 1301/2078/678 1215/1960/678 1118/1762/678 +f 1212/2104/679 1140/2105/679 1127/1906/679 +f 1198/1872/680 1225/1951/680 1199/2106/680 +f 1222/1955/681 1084/1718/681 1020/1642/681 +f 1297/2071/682 1087/1884/682 1026/1648/682 +f 1222/1937/3 1296/2107/3 1088/1708/3 +f 1108/2081/683 1296/2108/683 1228/2109/683 +f 1060/2110/684 1089/1927/684 1068/2111/684 +f 1231/2112/685 1240/1981/685 1238/1988/685 +f 1218/2113/686 1236/1919/686 1241/1983/686 +f 1055/1721/1 1302/2114/1 1054/1692/1 +f 1299/2115/1 1055/1721/1 1056/2077/1 +f 1054/1692/1 1298/2076/1 1057/2073/1 +f 1283/2116/687 1290/2117/7 1294/2118/7 +f 1306/2119/10 1308/2120/10 1310/2121/10 +f 1057/2073/688 1306/2122/688 1305/2123/688 +f 1090/1687/689 1092/1848/689 1188/1859/689 +f 1091/1847/690 1075/2124/690 1206/2125/690 +f 1061/1681/691 1306/2126/691 1058/1682/691 +f 1090/1687/692 1309/2127/692 1184/1852/692 +f 1054/1692/693 1305/2128/693 1304/2129/693 +f 1193/1854/694 1307/2130/694 1061/1681/694 +f 1304/2131/695 1186/1860/695 1054/1692/695 +f 1206/2125/8 1070/1727/8 1072/1728/8 +f 1173/2132/7 1165/1877/7 1171/2133/7 +f 1173/2134/7 1148/2101/7 1202/2135/7 +f 1176/2136/7 1149/1811/7 1148/2137/7 +f 1161/2138/7 1160/1825/7 1149/2139/7 +f 1172/2140/7 1163/2141/7 1194/2142/7 +f 1164/2143/7 1171/2144/7 1165/1828/7 +f 1323/2145/696 1318/2146/7 1319/2147/697 +f 1287/2148/698 1270/2021/699 1286/2022/699 +f 1180/1858/9 1186/1860/9 1181/2149/9 +f 1065/2150/6 1064/1849/6 1075/2124/6 +f 1065/2150/700 1075/2124/700 1096/2151/700 +f 1185/1850/5 1192/2152/5 1067/1851/5 +f 1192/2152/5 1193/1854/5 1067/1851/5 +f 1193/1854/5 1190/2153/5 1189/2154/5 +f 1189/2154/5 1184/1852/5 1193/1854/5 +f 1090/1687/701 1096/2151/701 1075/2124/701 +f 1184/1852/6 1183/1685/6 1090/1687/6 +f 1244/1995/4 1067/1851/4 1193/1854/4 +f 1313/2155/10 1314/2156/10 1315/2157/10 +f 1320/2158/702 1322/2159/702 1319/2160/703 +f 1318/2161/6 1320/2158/6 1319/2160/704 +f 1311/2162/2 1324/2163/2 1325/2164/2 +f 1327/2165/705 1329/2166/705 1326/2167/705 +f 1335/2168/706 1314/2169/706 1334/2170/706 +f 1314/2156/707 1329/2166/707 1315/2157/707 +f 1335/2171/708 1338/2172/708 1339/2173/708 +f 1337/2174/705 1334/2170/705 1340/2175/705 +f 1341/2176/709 1342/2177/709 1343/2178/709 +f 1333/2179/705 1344/2180/705 1341/2181/705 +f 1345/2182/710 1346/2183/710 1347/2184/710 +f 1331/2185/705 1348/2186/705 1345/2187/705 +f 1342/2177/711 1350/2188/711 1343/2178/711 +f 1334/2189/712 1342/2177/712 1340/2190/712 +f 1333/2191/713 1343/2178/713 1350/2188/713 +f 1334/2189/714 1350/2188/714 1349/2192/714 +f 1346/2183/715 1352/2193/715 1347/2184/715 +f 1332/2194/716 1346/2183/716 1344/2195/716 +f 1331/2196/717 1347/2184/717 1352/2193/717 +f 1332/2194/718 1352/2193/718 1351/2197/718 +f 1353/2198/711 1339/2173/711 1338/2172/711 +f 1327/2199/719 1339/2173/719 1354/2200/719 +f 1337/2201/720 1353/2198/720 1338/2172/720 +f 1327/2199/721 1353/2198/721 1328/2202/721 +f 1320/2158/722 1356/2203/722 1321/2204/722 +f 1341/2181/723 1344/2180/723 1357/2205/723 +f 1316/2206/6 1315/2207/6 1357/2205/6 +f 1348/2186/724 1358/2208/724 1359/2209/724 +f 1321/2204/725 1361/2210/725 1360/2211/725 +f 1360/2211/705 1322/2159/705 1321/2204/705 +f 1324/2212/726 1336/2213/726 1360/2211/726 +f 1357/2205/727 1363/2214/727 1316/2206/727 +f 1358/2215/705 1356/2216/705 1359/2217/705 +f 1355/2218/728 1359/2217/728 1356/2216/728 +f 1364/2219/6 1362/2220/6 1355/2218/6 +f 1365/2221/729 1361/2222/729 1358/2215/729 +f 1325/2164/730 1358/2223/730 1330/2224/730 +f 1325/2225/731 1366/2226/731 1365/2221/731 +f 1357/2205/732 1359/2227/732 1362/2228/732 +f 1320/2158/733 1364/2229/733 1355/2230/733 +f 1317/2231/734 1363/2232/734 1364/2219/734 +f 1324/2212/735 1361/2233/735 1366/2234/735 +f 1319/2147/736 1336/2213/737 1323/2145/738 +f 1213/1699/4 1204/2066/4 1207/1909/4 +f 1294/2235/3 1295/2236/3 1282/2009/3 +f 1094/2237/739 1076/1726/739 1078/1975/739 +f 1078/1975/740 1093/1874/740 1094/2237/740 +f 1233/1949/741 1235/1979/741 1210/1950/741 +f 1226/1945/742 1197/1944/742 1196/1953/742 +f 1374/2238/1 1376/2239/1 1373/2240/1 +f 1375/2241/2 1378/2242/2 1376/2239/2 +f 1377/2243/3 1380/2244/3 1378/2245/3 +f 1379/2246/4 1382/2247/4 1380/2244/4 +f 1381/2248/5 1384/2249/5 1382/2247/5 +f 1383/2250/6 1386/2251/6 1384/2249/6 +f 1381/2248/5 1388/2252/5 1383/2250/5 +f 1385/2253/8 1390/2254/8 1386/2251/8 +f 1389/2255/9 1373/2240/9 1390/2254/9 +f 1384/2249/743 1391/2256/743 1392/2257/743 +f 1398/2258/10 1394/2259/10 1396/2260/10 +f 1380/2244/744 1397/2261/744 1396/2262/744 +f 1386/2251/745 1398/2263/745 1391/2264/745 +f 1378/2242/746 1394/2265/746 1376/2239/746 +f 1384/2249/747 1397/2266/747 1382/2247/747 +f 1390/2254/748 1393/2267/748 1398/2268/748 +f 1376/2239/749 1393/2269/749 1373/2240/749 +f 1380/2244/750 1395/2270/750 1378/2245/750 +f 1399/2271/751 1401/2272/751 1402/2273/751 +f 1389/2255/9 1399/2271/9 1374/2238/9 +f 1374/2238/1 1403/2274/1 1375/2241/1 +f 1377/2243/3 1405/2275/3 1379/2246/3 +f 1383/2250/6 1406/2276/6 1385/2253/6 +f 1379/2246/4 1387/2277/4 1381/2248/4 +f 1385/2253/8 1400/2278/8 1389/2255/8 +f 1375/2241/2 1404/2279/2 1377/2280/2 +f 1388/2252/752 1408/2281/752 1406/2276/752 +f 1387/2277/753 1409/2282/753 1410/2283/753 +f 1404/2279/754 1411/2284/754 1412/2285/754 +f 1400/2278/755 1408/2286/755 1401/2287/755 +f 1387/2277/756 1407/2288/756 1388/2252/756 +f 1405/2275/757 1412/2289/757 1409/2290/757 +f 1399/2271/758 1411/2291/758 1403/2274/758 +f 1412/2289/759 1414/2292/759 1409/2290/759 +f 1414/2293/7 1413/2294/7 1418/2295/7 +f 1402/2296/760 1415/2297/760 1411/2291/760 +f 1401/2272/761 1416/2298/761 1402/2273/761 +f 1408/2281/762 1419/2299/762 1418/2300/762 +f 1410/2283/763 1414/2301/763 1420/2302/763 +f 1412/2285/764 1415/2303/764 1413/2304/764 +f 1408/2286/765 1417/2305/765 1401/2287/765 +f 1407/2288/766 1420/2306/766 1419/2307/766 +f 1422/2308/4 1424/2309/4 1421/2310/4 +f 1422/2308/3 1426/2311/3 1423/2312/3 +f 1427/2313/2 1426/2314/2 1425/2315/2 +f 1429/2316/1 1428/2317/1 1427/2313/1 +f 1431/2318/9 1430/2319/9 1429/2316/9 +f 1433/2320/8 1432/2321/8 1431/2318/8 +f 1435/2322/9 1430/2319/9 1432/2321/9 +f 1437/2323/6 1434/2324/6 1433/2320/6 +f 1421/2310/5 1438/2325/5 1437/2323/5 +f 1431/2318/745 1440/2326/745 1433/2320/745 +f 1446/2327/10 1442/2328/10 1439/2329/10 +f 1427/2313/749 1443/2330/749 1429/2316/749 +f 1433/2320/743 1442/2331/743 1437/2323/743 +f 1446/2332/750 1425/2333/750 1422/2308/750 +f 1443/2334/748 1431/2318/748 1429/2316/748 +f 1437/2323/747 1441/2335/747 1421/2310/747 +f 1441/2336/744 1422/2308/744 1421/2310/744 +f 1445/2337/746 1427/2313/746 1425/2315/746 +f 1448/2338/756 1450/2339/756 1447/2340/756 +f 1447/2340/5 1438/2325/5 1424/2309/5 +f 1451/2341/4 1424/2309/4 1423/2312/4 +f 1452/2342/2 1426/2314/2 1428/2317/2 +f 1454/2343/8 1432/2321/8 1434/2324/8 +f 1436/2344/1 1428/2317/1 1430/2319/1 +f 1450/2339/6 1434/2324/6 1438/2325/6 +f 1453/2345/3 1423/2312/3 1426/2311/3 +f 1455/2346/767 1435/2322/767 1454/2343/767 +f 1436/2344/758 1458/2347/758 1452/2342/758 +f 1453/2345/757 1460/2348/757 1451/2341/757 +f 1449/2349/752 1454/2343/752 1450/2339/752 +f 1456/2350/751 1436/2344/751 1435/2322/751 +f 1452/2342/754 1459/2351/754 1453/2352/754 +f 1460/2353/753 1447/2340/753 1451/2341/753 +f 1461/2354/768 1459/2351/768 1458/2355/768 +f 1467/2356/7 1468/2357/7 1464/2358/7 +f 1463/2359/763 1448/2360/763 1460/2353/763 +f 1448/2338/766 1467/2361/766 1449/2362/766 +f 1455/2346/765 1465/2363/765 1456/2364/765 +f 1457/2365/760 1461/2366/760 1458/2347/760 +f 1459/2367/759 1463/2368/759 1460/2348/759 +f 1467/2369/762 1455/2370/762 1449/2349/762 +f 1456/2350/769 1464/2371/769 1457/2372/769 +f 1471/2373/770 1470/2374/770 1469/2375/770 +f 1473/2376/771 1471/2373/771 1469/2375/771 +f 1475/2377/772 1474/2378/772 1473/2376/772 +f 1478/2379/773 1470/2374/773 1472/2380/773 +f 1477/2381/774 1478/2379/774 1471/2373/774 +f 1475/2382/48 1473/2383/48 1469/2375/48 +f 1481/2384/775 1480/2385/775 1479/2386/775 +f 1483/2387/776 1481/2384/776 1479/2386/776 +f 1485/2388/777 1484/2389/777 1483/2387/777 +f 1482/2390/778 1487/2391/778 1480/2385/778 +f 1487/2391/779 1488/2392/779 1481/2384/779 +f 1485/2393/45 1483/2394/45 1479/2386/45 +f 1491/2395/780 1490/2396/780 1489/2397/780 +f 1493/2398/781 1491/2395/781 1489/2397/781 +f 1495/2399/782 1494/2400/782 1493/2398/782 +f 1498/2401/783 1490/2396/783 1492/2402/783 +f 1497/2403/784 1498/2401/784 1491/2395/784 +f 1495/2404/46 1493/2405/46 1489/2397/46 +f 1499/2406/785 1502/2407/785 1500/2408/785 +f 1503/2409/786 1501/2410/786 1499/2406/786 +f 1505/2411/787 1504/2412/787 1503/2409/787 +f 1508/2413/788 1500/2408/788 1502/2407/788 +f 1507/2414/789 1508/2413/789 1501/2410/789 +f 1505/2415/44 1503/2416/44 1499/2406/44 +f 1509/2417/790 1512/2418/790 1510/2419/790 +f 1513/2420/791 1511/2421/791 1509/2417/791 +f 1515/2422/792 1514/2423/792 1513/2420/792 +f 1512/2418/793 1517/2424/793 1510/2419/793 +f 1517/2424/794 1518/2425/794 1511/2421/794 +f 1515/2426/795 1513/2427/795 1509/2417/795 +f 1519/2428/796 1522/2429/796 1520/2430/796 +f 1523/2431/797 1521/2432/797 1519/2428/797 +f 1523/2431/798 1526/2433/798 1524/2434/798 +f 1528/2435/799 1520/2430/799 1522/2429/799 +f 1527/2436/800 1528/2435/800 1521/2432/800 +f 1525/2437/801 1523/2438/801 1519/2428/801 +f 1531/2439/802 1530/2440/802 1529/2441/802 +f 1529/2441/803 1534/2442/803 1531/2439/803 +f 1533/2443/804 1536/2444/804 1534/2442/804 +f 1532/2445/805 1537/2446/805 1530/2440/805 +f 1537/2446/806 1538/2447/806 1531/2439/806 +f 1535/2448/807 1533/2449/807 1529/2441/807 +f 1541/2450/808 1540/2451/808 1539/2452/808 +f 1539/2452/809 1544/2453/809 1541/2450/809 +f 1543/2454/810 1546/2455/810 1544/2453/810 +f 1548/2456/811 1540/2451/811 1542/2457/811 +f 1547/2458/812 1548/2456/812 1541/2450/812 +f 1545/2459/813 1543/2460/813 1539/2452/813 +f 2/1/1 3/4/1 4/2/1 +f 3/4/2 5/2461/2 6/5/2 +f 5/6/3 7/9/3 8/7/3 +f 7/9/4 9/11/4 10/10/4 +f 9/11/5 11/13/5 12/12/5 +f 11/13/6 13/18/6 14/14/6 +f 5/16/7 3/2462/7 2/2463/7 +f 2/2463/7 15/2464/7 5/16/7 +f 15/2464/7 13/17/7 5/16/7 +f 13/17/7 11/2465/7 9/2466/7 +f 9/2466/7 7/15/7 13/17/7 +f 13/18/8 15/20/8 16/19/8 +f 15/20/9 2/1/9 1/3/9 +f 16/23/10 1/2467/10 4/2468/10 +f 4/2468/10 6/2469/10 8/21/10 +f 8/21/10 10/2470/10 12/22/10 +f 12/22/10 14/2471/10 16/23/10 +f 16/23/10 4/2468/10 8/21/10 +f 18/24/1 19/27/1 20/25/1 +f 19/27/2 21/2472/2 22/28/2 +f 21/29/3 23/32/3 24/30/3 +f 23/32/4 25/34/4 26/33/4 +f 25/34/5 27/36/5 28/35/5 +f 27/36/6 29/41/6 30/37/6 +f 21/39/7 19/2473/7 18/2474/7 +f 18/2474/7 31/2475/7 21/39/7 +f 31/2475/7 29/40/7 21/39/7 +f 29/40/7 27/2476/7 25/2477/7 +f 25/2477/7 23/38/7 29/40/7 +f 29/41/8 31/43/8 32/42/8 +f 31/43/9 18/24/9 17/26/9 +f 32/46/10 17/2478/10 20/2479/10 +f 20/2479/10 22/2480/10 24/44/10 +f 24/44/10 26/2481/10 28/45/10 +f 28/45/10 30/2482/10 32/46/10 +f 32/46/10 20/2479/10 24/44/10 +f 34/47/1 35/50/1 36/48/1 +f 35/50/2 37/2483/2 38/51/2 +f 37/52/3 39/55/3 40/53/3 +f 39/55/4 41/57/4 42/56/4 +f 41/57/5 43/59/5 44/58/5 +f 43/59/6 45/64/6 46/60/6 +f 37/62/7 35/2484/7 34/2485/7 +f 34/2485/7 47/2486/7 37/62/7 +f 47/2486/7 45/63/7 37/62/7 +f 45/63/7 43/2487/7 41/2488/7 +f 41/2488/7 39/61/7 45/63/7 +f 45/64/8 47/66/8 48/65/8 +f 47/66/9 34/47/9 33/49/9 +f 48/69/10 33/2489/10 36/2490/10 +f 36/2490/10 38/2491/10 40/67/10 +f 40/67/10 42/2492/10 44/68/10 +f 44/68/10 46/2493/10 48/69/10 +f 48/69/10 36/2490/10 40/67/10 +f 50/70/1 51/73/1 52/71/1 +f 51/73/2 53/2494/2 54/74/2 +f 53/75/3 55/78/3 56/76/3 +f 55/78/4 57/80/4 58/79/4 +f 57/80/5 59/82/5 60/81/5 +f 59/82/6 61/87/6 62/83/6 +f 53/85/7 51/2495/7 50/2496/7 +f 50/2496/7 63/2497/7 53/85/7 +f 63/2497/7 61/86/7 53/85/7 +f 61/86/7 59/2498/7 57/2499/7 +f 57/2499/7 55/84/7 61/86/7 +f 61/87/8 63/89/8 64/88/8 +f 63/89/9 50/70/9 49/72/9 +f 64/92/10 49/2500/10 52/2501/10 +f 52/2501/10 54/2502/10 56/90/10 +f 56/90/10 58/2503/10 60/91/10 +f 60/91/10 62/2504/10 64/92/10 +f 64/92/10 52/2501/10 56/90/10 +f 66/93/1 67/96/1 68/94/1 +f 67/96/2 69/2505/2 70/97/2 +f 69/98/3 71/101/3 72/99/3 +f 71/101/4 73/103/4 74/102/4 +f 73/103/5 75/105/5 76/104/5 +f 75/105/6 77/110/6 78/106/6 +f 69/108/7 67/2506/7 66/2507/7 +f 66/2507/7 79/2508/7 69/108/7 +f 79/2508/7 77/109/7 69/108/7 +f 77/109/7 75/2509/7 73/2510/7 +f 73/2510/7 71/107/7 77/109/7 +f 77/110/8 79/112/8 80/111/8 +f 79/112/9 66/93/9 65/95/9 +f 80/115/10 65/2511/10 68/2512/10 +f 68/2512/10 70/2513/10 72/113/10 +f 72/113/10 74/2514/10 76/114/10 +f 76/114/10 78/2515/10 80/115/10 +f 80/115/10 68/2512/10 72/113/10 +f 81/116/11 82/2516/11 83/117/11 +f 84/118/7 83/117/7 85/119/7 +f 86/120/12 85/119/12 87/121/12 +f 87/121/13 89/127/13 90/123/13 +f 85/125/14 83/2517/14 82/126/14 +f 82/126/14 91/2518/14 89/2519/14 +f 89/2519/14 87/124/14 82/126/14 +f 89/127/10 91/129/10 92/128/10 +f 91/129/15 82/2520/15 81/130/15 +f 93/131/16 94/2521/16 95/132/16 +f 96/133/7 95/132/7 97/134/7 +f 98/135/17 97/134/17 99/136/17 +f 99/136/814 101/142/814 102/138/814 +f 97/140/14 95/2522/14 94/141/14 +f 94/141/14 103/2523/14 101/2524/14 +f 101/2524/14 99/139/14 94/141/14 +f 101/142/10 103/144/10 104/143/10 +f 103/144/19 94/2525/19 93/145/19 +f 105/146/16 106/2526/16 107/147/16 +f 108/148/7 107/147/7 109/149/7 +f 110/150/17 109/149/17 111/151/17 +f 111/151/814 113/157/814 114/153/814 +f 109/155/14 107/2527/14 106/156/14 +f 106/156/14 115/2528/14 113/2529/14 +f 113/2529/14 111/154/14 106/156/14 +f 113/157/10 115/159/10 116/158/10 +f 115/159/19 106/2530/19 105/160/19 +f 117/161/10 118/173/10 119/162/10 +f 119/164/20 121/179/20 122/165/20 +f 121/167/7 123/180/7 124/168/7 +f 123/170/21 118/178/21 117/171/21 +f 118/173/22 125/177/22 126/174/22 +f 126/174/23 125/177/23 128/175/23 +f 123/170/24 128/175/24 125/177/24 +f 121/179/25 119/164/25 126/174/25 +f 123/180/26 121/167/26 127/176/26 +f 129/181/27 130/184/27 131/182/27 +f 130/184/7 133/186/7 134/185/7 +f 133/186/28 135/189/28 136/187/28 +f 137/188/29 138/194/29 136/187/29 +f 132/192/30 131/2531/30 134/2532/30 +f 134/2532/30 136/2533/30 132/192/30 +f 136/2533/30 138/190/30 132/192/30 +f 140/193/10 139/196/10 138/194/10 +f 129/195/31 132/2534/31 139/196/31 +f 141/197/27 142/200/27 143/198/27 +f 142/200/7 145/202/7 146/201/7 +f 145/202/28 147/205/28 148/203/28 +f 149/204/815 150/210/815 148/203/815 +f 144/208/30 143/2535/30 146/2536/30 +f 146/2536/30 148/2537/30 144/208/30 +f 148/2537/30 150/206/30 144/208/30 +f 152/209/10 151/212/10 150/210/10 +f 141/211/31 144/2538/31 151/212/31 +f 153/213/32 154/216/32 155/214/32 +f 154/216/7 157/218/7 158/217/7 +f 157/218/816 159/221/816 160/219/816 +f 161/220/34 162/226/34 160/219/34 +f 156/224/30 155/2539/30 158/2540/30 +f 158/2540/30 160/2541/30 156/224/30 +f 160/2541/30 162/222/30 156/224/30 +f 164/225/10 163/228/10 162/226/10 +f 153/227/35 156/2542/35 163/228/35 +f 165/229/10 166/2543/10 167/230/10 +f 169/232/36 170/245/36 167/233/36 +f 171/235/7 172/246/7 170/236/7 +f 165/238/37 168/244/37 172/239/37 +f 173/241/38 174/2544/38 168/231/38 +f 176/242/39 174/2544/39 173/241/39 +f 168/244/40 174/2544/40 176/242/40 +f 175/243/817 173/241/817 167/233/817 +f 172/246/42 176/242/42 175/243/42 +f 178/247/43 179/2545/43 180/248/43 +f 208/250/44 210/2546/44 211/251/44 +f 211/253/45 216/2547/45 212/254/45 +f 188/256/46 184/298/46 181/257/46 +f 185/259/45 181/299/45 178/247/45 +f 183/261/47 186/272/47 187/262/47 +f 190/264/48 191/277/48 192/265/48 +f 188/267/49 190/264/49 189/266/49 +f 188/269/62 185/2548/62 187/270/62 +f 182/271/818 189/266/818 186/272/818 +f 193/274/63 192/265/63 194/275/63 +f 187/270/46 196/285/46 191/277/46 +f 189/266/44 192/265/44 193/274/44 +f 186/272/45 193/274/45 196/278/45 +f 194/279/53 197/290/53 198/280/53 +f 196/278/54 193/274/54 195/282/54 +f 191/277/55 197/2549/55 194/284/55 +f 196/285/819 200/2550/819 197/286/819 +f 202/287/7 199/2551/7 198/280/7 +f 200/289/57 201/288/57 198/280/57 +f 194/279/58 199/281/58 202/291/58 +f 195/292/59 202/291/59 201/293/59 +f 180/295/10 179/2552/10 204/296/10 +f 184/298/60 203/297/60 204/296/60 +f 181/299/45 204/2553/45 179/300/45 +f 184/298/48 177/249/48 180/301/48 +f 206/303/43 207/347/43 208/250/43 +f 216/304/46 213/2554/46 209/305/46 +f 213/307/48 210/2546/48 208/250/48 +f 188/309/48 182/2555/48 177/310/48 +f 213/312/49 214/329/49 215/313/49 +f 218/315/45 219/327/45 220/316/45 +f 217/317/61 220/316/61 216/318/61 +f 216/320/62 220/316/62 214/321/62 +f 215/313/51 217/317/51 211/323/51 +f 221/325/52 222/2556/52 223/326/52 +f 219/327/46 224/336/46 214/321/46 +f 221/325/44 218/315/44 217/317/44 +f 224/328/48 221/325/48 215/313/48 +f 223/330/59 225/2557/59 226/331/59 +f 224/328/64 228/2558/64 222/333/64 +f 223/334/65 227/2559/65 219/327/65 +f 227/335/819 228/2560/819 224/336/819 +f 226/331/7 225/2561/7 230/337/7 +f 226/331/57 229/338/57 228/339/57 +f 230/340/58 225/2557/58 223/330/58 +f 229/342/53 230/340/53 222/341/53 +f 232/344/10 207/2562/10 206/345/10 +f 232/344/60 231/346/60 212/306/60 +f 207/347/48 232/2563/48 209/308/48 +f 212/306/45 231/2564/45 206/348/45 +f 178/247/44 177/249/44 182/349/44 +f 234/350/1 235/353/1 236/351/1 +f 235/353/2 237/2565/2 238/354/2 +f 237/355/3 239/358/3 240/356/3 +f 239/358/4 241/360/4 242/359/4 +f 241/360/5 243/362/5 244/361/5 +f 243/362/6 245/364/6 246/363/6 +f 245/364/8 247/366/8 248/365/8 +f 247/366/9 234/350/9 233/352/9 +f 240/356/66 242/359/66 249/367/66 +f 256/370/10 251/2566/10 252/2567/10 +f 252/2567/10 253/2568/10 256/370/10 +f 253/2568/10 250/371/10 256/370/10 +f 250/371/10 249/2569/10 254/2570/10 +f 254/2570/10 255/369/10 250/371/10 +f 248/365/67 256/2571/67 255/372/67 +f 238/354/68 253/2572/68 252/373/68 +f 244/361/69 254/2573/69 249/374/69 +f 248/365/70 233/352/70 251/375/70 +f 236/351/71 252/2574/71 251/377/71 +f 238/357/72 240/356/72 250/378/72 +f 244/361/73 246/363/73 255/380/73 +f 258/382/74 259/385/74 260/383/74 +f 259/385/75 261/387/75 262/386/75 +f 261/387/76 263/389/76 264/388/76 +f 263/389/77 265/391/77 266/390/77 +f 265/391/78 267/393/78 268/392/78 +f 267/393/79 269/397/79 270/394/79 +f 261/395/48 259/385/48 258/382/48 +f 258/382/48 271/2575/48 269/396/48 +f 269/396/48 267/2576/48 265/2577/48 +f 265/2577/48 263/2578/48 269/396/48 +f 263/2578/48 261/395/48 269/396/48 +f 269/397/80 271/399/80 272/398/80 +f 271/399/81 258/2579/81 257/400/81 +f 272/402/45 257/384/45 264/403/45 +f 257/384/45 260/383/45 264/403/45 +f 260/383/45 262/2580/45 264/403/45 +f 264/403/45 266/2581/45 268/2582/45 +f 268/2582/45 270/401/45 264/403/45 +f 274/404/45 275/443/45 276/405/45 +f 273/407/45 277/2583/45 278/408/45 +f 280/410/82 281/449/82 282/411/82 +f 284/413/48 285/2584/48 286/414/48 +f 278/408/83 280/436/83 287/416/83 +f 273/417/44 285/426/44 284/418/44 +f 276/420/44 289/2585/44 290/421/44 +f 286/423/48 285/2586/48 288/424/48 +f 273/417/44 276/420/44 288/422/44 +f 291/425/84 292/435/84 293/427/84 +f 290/429/10 289/2587/10 295/430/10 +f 291/425/85 294/2588/85 296/432/85 +f 276/405/45 275/443/45 295/433/45 +f 288/424/48 290/2589/48 292/435/48 +f 280/436/46 279/446/46 296/437/46 +f 296/438/86 294/428/86 297/439/86 +f 294/428/87 293/427/87 298/441/87 +f 295/430/88 298/441/88 293/427/88 +f 320/442/89 319/2590/89 277/419/89 +f 275/443/90 297/439/90 298/441/90 +f 275/443/91 274/404/91 287/444/91 +f 283/415/92 286/414/92 296/437/92 +f 306/447/93 307/467/93 308/448/93 +f 280/450/94 278/499/94 306/447/94 +f 279/451/95 282/411/95 299/452/95 +f 308/448/96 310/464/96 311/454/96 +f 305/456/97 309/455/97 311/457/97 +f 299/452/99 282/411/99 309/455/99 +f 281/449/100 308/448/100 309/455/100 +f 283/453/48 300/487/48 301/459/48 +f 319/461/7 320/2591/7 312/462/820 +f 312/462/821 311/454/104 310/464/104 +f 284/460/48 301/459/48 302/465/48 +f 302/465/48 303/488/48 320/466/48 +f 307/467/106 318/494/822 310/468/106 +f 301/469/76 300/475/76 313/470/76 +f 304/472/79 303/483/79 322/473/79 +f 300/475/75 325/484/75 314/476/75 +f 323/477/80 304/472/80 317/474/80 +f 324/479/81 323/477/81 316/478/81 +f 302/481/77 301/469/77 321/471/77 +f 303/483/78 302/481/78 326/482/78 +f 325/484/74 324/2592/74 315/485/74 +f 305/456/48 323/489/48 324/486/48 +f 324/486/48 325/2593/48 299/452/48 +f 299/452/48 325/2593/48 300/487/48 +f 303/488/48 304/490/48 312/458/823 +f 323/489/48 305/456/48 312/458/824 +f 319/493/45 322/495/45 326/491/45 +f 326/491/45 321/498/45 277/492/45 +f 318/494/825 317/497/45 322/495/45 +f 318/494/826 307/467/45 316/496/45 +f 321/498/45 313/500/45 278/499/45 +f 306/447/45 278/499/45 313/500/45 +f 306/447/45 314/501/45 315/502/45 +f 315/502/45 316/496/45 307/467/45 +f 327/503/45 328/557/45 329/504/45 +f 332/506/7 333/2594/7 334/507/7 +f 336/509/44 337/556/44 338/510/44 +f 340/512/48 341/543/48 342/513/48 +f 344/515/44 345/563/44 346/516/44 +f 348/518/46 349/558/46 350/519/46 +f 352/521/45 353/540/45 354/522/45 +f 356/524/48 357/531/48 358/525/48 +f 360/527/10 361/2595/10 362/528/10 +f 363/530/827 350/559/827 358/525/827 +f 357/531/112 337/556/112 343/517/112 +f 364/532/828 328/557/828 351/523/828 +f 336/509/114 352/521/114 327/503/114 +f 365/541/829 366/565/829 342/513/829 +f 341/543/830 346/516/830 369/544/830 +f 370/546/831 371/553/831 329/504/831 +f 373/548/832 345/563/832 330/505/832 +f 350/519/127 363/2596/127 364/555/127 +f 357/531/48 340/512/48 339/514/48 +f 336/509/44 344/515/44 343/517/44 +f 352/521/45 351/523/45 328/557/45 +f 347/533/128 351/523/128 354/522/128 +f 335/511/114 353/540/114 352/521/114 +f 331/538/129 354/522/129 353/540/129 +f 348/518/130 331/508/130 334/507/130 +f 338/510/131 333/2594/131 332/506/131 +f 355/526/132 334/535/132 333/536/132 +f 349/534/133 355/526/133 358/525/133 +f 337/556/112 357/531/112 356/524/112 +f 366/560/134 365/566/134 370/561/134 +f 341/543/48 368/545/48 367/542/48 +f 345/563/833 373/567/833 369/564/833 +f 330/505/45 329/504/45 371/553/45 +f 330/505/114 345/563/114 344/515/114 +f 340/512/112 343/517/112 346/516/112 +f 339/514/136 342/513/136 366/565/136 +f 328/557/137 364/532/137 372/547/137 +f 365/566/138 359/529/138 362/528/138 +f 368/545/139 360/551/139 359/550/139 +f 373/567/834 361/2595/834 360/527/834 +f 374/549/141 371/553/141 362/552/141 +f 363/568/142 366/560/142 372/562/142 +f 376/570/10 377/2597/10 378/571/10 +f 377/573/45 379/584/45 380/574/45 +f 379/576/7 381/2598/7 382/577/7 +f 381/579/48 376/2599/48 375/580/48 +f 385/2600/143 382/581/143 384/583/143 +f 382/581/143 375/580/143 384/583/143 +f 377/573/44 376/2599/44 381/579/44 +f 387/585/46 384/2601/46 383/586/46 +f 386/2602/144 378/575/144 387/589/144 +f 378/575/144 380/574/144 387/589/144 +f 378/571/145 386/587/145 383/586/145 +f 382/577/146 385/2603/146 388/590/146 +f 390/591/45 391/2604/45 392/592/45 +f 385/594/147 393/607/147 390/595/147 +f 384/597/48 394/2605/48 393/598/48 +f 387/600/148 389/2606/148 394/601/148 +f 387/603/45 388/2607/45 390/591/45 +f 395/604/149 392/609/149 396/605/835 +f 393/607/152 398/618/152 391/608/152 +f 394/601/153 389/2606/153 392/609/153 +f 393/598/48 394/2605/48 395/610/48 +f 399/612/46 400/626/46 401/613/46 +f 395/610/48 399/623/48 402/615/48 +f 392/592/45 391/2604/45 401/616/45 +f 398/618/154 402/614/154 401/613/154 +f 404/619/836 405/628/156 406/620/156 +f 400/617/837 403/2608/838 396/622/839 +f 399/623/840 395/610/840 397/624/841 +f 399/612/163 404/619/842 403/621/843 +f 408/627/844 406/620/844 405/628/844 +f 396/622/845 403/2608/846 406/630/167 +f 397/606/847 396/605/848 408/632/169 +f 404/625/849 397/624/850 407/634/171 +f 418/636/172 411/2609/172 412/637/172 +f 409/639/48 414/646/48 417/640/48 +f 418/642/45 413/651/45 410/643/45 +f 415/645/48 416/659/48 417/640/48 +f 419/647/173 420/656/173 421/648/173 +f 418/642/45 421/660/45 422/650/45 +f 416/649/174 421/648/174 418/636/174 +f 422/652/175 415/657/175 414/653/175 +f 419/647/176 423/658/176 424/655/176 +f 424/655/177 423/658/177 415/657/177 +f 423/658/48 419/647/48 416/659/48 +f 421/660/45 420/656/45 424/655/45 +f 414/653/178 409/2610/178 410/661/178 +f 466/662/179 431/683/179 427/663/179 +f 465/664/180 427/663/180 425/665/180 +f 425/665/181 427/663/181 428/667/181 +f 468/669/182 432/673/182 430/670/182 +f 461/672/183 426/684/183 432/673/183 +f 430/670/184 431/683/184 466/662/184 +f 433/674/48 434/2611/48 435/675/48 +f 427/663/185 431/683/185 433/677/185 +f 432/673/186 437/693/186 434/679/186 +f 426/680/187 425/665/187 429/681/187 +f 430/670/188 434/2611/188 433/674/188 +f 426/684/189 438/689/189 437/685/189 +f 436/686/190 440/712/190 441/687/190 +f 438/689/48 442/2612/48 443/690/48 +f 429/668/48 428/667/48 439/691/48 +f 433/677/48 436/686/48 439/688/48 +f 437/693/48 443/2613/48 435/694/48 +f 438/682/48 429/681/48 444/695/48 +f 445/697/48 446/723/48 447/698/48 +f 435/694/191 443/2613/191 448/700/191 +f 444/695/192 449/715/192 450/702/192 +f 435/675/193 445/697/193 440/699/193 +f 443/690/851 442/2612/851 450/703/851 +f 439/691/852 441/2614/852 449/705/852 +f 447/706/183 452/2615/183 453/707/183 +f 450/703/48 454/725/48 455/709/48 +f 449/705/48 441/2614/48 451/710/48 +f 440/712/48 447/706/48 451/708/48 +f 445/701/48 448/700/48 455/713/48 +f 449/715/48 456/721/48 454/716/48 +f 460/719/48 457/2616/48 458/717/48 +f 457/2616/48 453/2617/48 458/717/48 +f 453/2617/48 452/2618/48 458/717/48 +f 455/713/180 459/2619/180 458/720/180 +f 456/721/184 457/2620/184 460/722/184 +f 446/723/196 458/2621/196 452/724/196 +f 454/725/179 460/2622/179 459/726/179 +f 451/710/182 453/2623/182 457/727/182 +f 462/666/197 463/742/197 464/728/197 +f 462/666/196 425/665/196 426/680/196 +f 470/730/45 471/756/45 472/731/45 +f 465/664/198 464/744/198 469/733/198 +f 467/671/199 472/746/199 473/734/199 +f 474/735/200 463/748/200 462/666/200 +f 466/662/201 469/732/201 472/731/201 +f 473/736/202 474/741/202 461/672/202 +f 476/737/203 477/768/203 470/738/203 +f 473/736/45 478/757/45 479/740/45 +f 463/742/45 480/760/45 475/743/45 +f 475/739/45 470/738/45 469/733/45 +f 471/745/45 478/753/45 473/734/45 +f 474/735/45 479/755/45 480/747/45 +f 481/749/45 482/781/45 483/750/45 +f 471/745/204 483/769/204 484/752/204 +f 485/754/205 486/772/205 480/747/205 +f 470/730/206 477/751/206 483/750/206 +f 478/757/853 484/765/853 485/758/853 +f 486/759/854 476/767/854 475/743/854 +f 488/761/183 489/2624/183 481/762/183 +f 490/764/45 491/783/45 485/758/45 +f 486/759/45 492/785/45 487/766/45 +f 487/763/45 481/762/45 477/768/45 +f 483/769/45 482/777/45 490/770/45 +f 485/754/45 491/779/45 492/771/45 +f 488/775/45 493/2625/45 496/773/45 +f 493/2625/45 494/2626/45 496/773/45 +f 494/2626/45 495/2627/45 496/773/45 +f 496/776/180 495/2628/180 490/770/180 +f 494/778/184 493/2629/184 492/771/184 +f 489/780/196 496/2630/196 482/781/196 +f 495/782/179 494/2631/179 491/783/179 +f 493/784/182 488/2632/182 487/766/182 +f 498/786/209 499/800/209 500/787/209 +f 500/787/7 499/800/7 501/789/7 +f 502/790/210 501/789/210 503/791/210 +f 503/793/211 505/796/211 506/794/211 +f 505/796/10 507/798/10 508/797/10 +f 507/798/212 498/786/212 497/788/212 +f 498/786/213 509/809/213 510/799/213 +f 510/799/7 511/802/7 501/801/7 +f 511/802/214 512/2633/214 503/803/214 +f 512/804/215 513/2634/215 505/805/215 +f 505/805/10 513/2634/10 514/807/10 +f 514/807/216 509/809/216 498/786/216 +f 515/808/217 516/817/217 510/799/217 +f 510/799/7 516/817/7 517/810/7 +f 517/810/218 518/2635/218 512/812/218 +f 512/813/219 518/2636/219 519/814/219 +f 519/814/10 520/826/10 514/807/10 +f 514/807/220 520/826/220 515/808/220 +f 521/816/210 522/828/210 516/817/210 +f 516/817/7 522/828/7 523/818/7 +f 517/819/209 523/818/209 524/820/209 +f 524/822/212 525/825/212 519/823/212 +f 525/825/10 526/835/10 520/826/10 +f 520/826/211 526/835/211 521/816/211 +f 527/827/214 528/837/214 522/828/214 +f 522/828/7 528/837/7 529/829/7 +f 529/829/213 530/2637/213 524/831/213 +f 524/832/216 530/2638/216 531/833/216 +f 531/833/10 532/844/10 526/835/10 +f 526/835/215 532/844/215 527/827/215 +f 497/836/218 500/2639/218 528/837/218 +f 528/837/7 500/2639/7 502/838/7 +f 502/838/217 504/2640/217 530/840/217 +f 530/841/220 504/2641/220 506/842/220 +f 506/842/10 508/2642/10 532/844/10 +f 532/844/219 508/2642/219 497/836/219 +f 533/845/855 537/848/222 538/846/222 +f 537/848/224 539/2643/224 540/849/224 +f 539/850/225 541/856/225 542/851/225 +f 537/855/48 533/845/856 543/866/857 +f 543/866/858 544/2644/48 537/855/48 +f 544/2644/48 541/853/48 537/855/48 +f 541/856/226 544/858/226 545/857/226 +f 544/858/227 543/866/859 546/859/860 +f 545/862/45 546/859/861 534/847/862 +f 534/847/863 538/2645/45 545/862/45 +f 538/2645/45 540/860/45 545/862/45 +f 548/863/864 549/867/230 550/864/230 +f 533/845/865 534/847/866 546/859/867 +f 549/867/235 551/872/235 552/868/235 +f 547/869/868 550/864/45 552/868/45 +f 535/871/869 552/868/239 551/872/239 +f 548/874/870 536/2646/871 551/872/48 +f 553/875/242 554/888/242 555/876/242 +f 555/876/243 557/885/243 558/878/243 +f 557/879/244 559/882/244 560/880/244 +f 559/882/245 561/886/245 562/883/245 +f 555/876/246 563/2647/246 564/884/246 +f 561/886/247 565/893/247 566/887/247 +f 566/887/248 565/893/248 554/888/248 +f 560/880/249 567/915/249 568/889/249 +f 564/891/250 563/2648/250 569/892/250 +f 569/892/250 570/2649/250 571/2650/250 +f 571/2650/250 572/890/250 569/892/250 +f 565/893/251 561/886/251 571/894/251 +f 554/888/252 569/2651/252 563/896/252 +f 559/882/253 557/879/253 564/897/253 +f 554/888/254 565/893/254 570/899/254 +f 559/882/255 572/2652/255 571/901/255 +f 573/902/256 574/2653/256 575/903/256 +f 566/887/872 553/875/872 577/905/872 +f 562/883/873 573/921/873 567/907/873 +f 556/877/259 558/878/259 568/908/259 +f 566/887/260 574/2653/260 573/902/260 +f 553/875/261 556/877/261 578/910/261 +f 575/912/262 579/2654/262 580/913/262 +f 567/915/256 582/2655/256 583/916/256 +f 577/911/256 578/910/256 584/917/256 +f 574/906/256 577/905/256 579/919/256 +f 573/921/256 576/2656/256 582/922/256 +f 578/909/256 568/908/256 583/923/256 +f 581/927/256 580/2657/256 587/925/256 +f 580/2657/256 585/2658/256 587/925/256 +f 585/2658/256 586/2659/256 587/925/256 +f 576/928/263 588/2660/263 587/929/263 +f 583/931/264 586/2661/264 585/932/264 +f 575/934/265 581/2662/265 588/935/265 +f 583/937/266 582/2663/266 587/938/266 +f 584/940/267 585/2664/267 580/941/267 +f 589/943/874 590/2665/874 591/944/874 +f 593/946/875 594/1031/875 595/947/875 +f 597/949/270 598/961/270 599/950/270 +f 601/952/876 589/2666/876 602/953/876 +f 596/955/272 603/968/272 604/956/272 +f 590/958/877 589/2667/877 601/959/877 +f 598/961/274 606/981/274 607/962/274 +f 596/948/275 595/947/275 599/963/275 +f 603/965/276 609/2668/276 598/966/276 +f 603/968/277 596/955/277 608/969/277 +f 606/971/278 610/975/278 611/972/278 +f 599/963/279 607/983/279 613/974/279 +f 598/966/280 609/2668/280 610/975/280 +f 608/969/281 613/980/281 610/976/281 +f 615/977/282 612/2669/282 611/978/282 +f 613/980/283 614/979/283 611/978/283 +f 606/981/284 612/2670/284 615/982/284 +f 607/983/285 615/2671/285 614/984/285 +f 616/985/878 617/1006/878 618/986/878 +f 602/988/879 620/1001/879 616/989/879 +f 619/991/880 616/985/880 591/987/880 +f 602/953/881 589/2666/881 592/993/881 +f 621/995/882 618/1000/882 622/996/882 +f 620/994/883 592/993/883 621/998/883 +f 592/945/884 591/944/884 618/1000/884 +f 620/1001/885 624/1005/885 617/1002/885 +f 623/997/886 622/996/886 626/1003/886 +f 624/1005/887 625/1004/887 626/1003/887 +f 617/1006/888 626/2672/888 622/1007/888 +f 624/999/889 621/998/889 623/1008/889 +f 594/1010/298 627/1012/298 597/949/298 +f 628/1011/299 629/1014/299 627/1012/299 +f 630/1013/300 631/1038/300 629/1014/300 +f 633/1015/272 634/1019/272 635/1016/272 +f 636/1018/272 637/1020/272 634/1019/272 +f 593/957/272 604/956/272 637/1020/272 +f 597/967/890 627/1022/890 604/1021/890 +f 627/1022/891 629/1024/891 637/1023/891 +f 629/1024/892 631/1040/892 634/1025/892 +f 632/1026/893 638/1034/893 630/1027/893 +f 633/1028/894 630/1027/894 628/1029/894 +f 636/1030/895 628/1029/895 594/1031/895 +f 619/991/896 590/992/896 605/1032/896 +f 639/1033/897 605/1032/897 638/1034/897 +f 619/990/898 639/1036/898 600/1035/898 +f 632/1017/272 635/1016/272 600/1035/272 +f 630/1013/310 638/1039/310 640/1037/310 +f 605/960/311 601/959/311 640/1037/311 +f 631/1040/899 640/1042/899 635/1041/899 +f 640/1042/900 601/952/900 600/954/900 +f 642/1043/314 643/1085/314 644/1044/314 +f 646/1046/45 647/2673/901 648/1047/45 +f 648/1047/315 650/1054/315 651/1049/315 +f 653/1051/902 642/1043/48 641/1045/48 +f 648/1047/317 647/2673/903 654/1053/317 +f 646/1055/44 642/1094/44 653/1056/904 +f 656/1058/905 657/1102/906 658/1059/321 +f 641/1045/48 659/1071/48 660/1061/48 +f 645/1048/45 648/1047/45 649/1050/45 +f 662/1063/322 663/1075/322 664/1064/322 +f 652/1052/323 660/1061/323 666/1066/323 +f 669/1068/324 670/1081/324 671/1069/324 +f 659/1071/48 663/1075/48 672/1072/907 +f 661/1062/45 649/1050/45 656/1058/908 +f 662/1063/48 674/1098/48 675/1073/48 +f 663/1075/327 659/1071/327 676/1076/327 +f 663/1075/48 662/1063/48 673/1074/48 +f 668/1070/45 656/1058/909 655/1060/45 +f 682/1077/329 688/1092/329 674/1078/329 +f 688/1080/910 682/2674/910 670/1081/910 +f 652/1052/331 667/1067/331 678/1082/331 +f 646/1046/333 645/1048/333 679/1083/333 +f 643/1085/10 680/1084/10 679/1083/10 +f 679/1086/334 681/2675/334 676/1087/334 +f 681/1089/335 671/1069/335 664/1064/335 +f 671/1069/336 670/1081/336 665/1065/336 +f 670/1081/337 682/1077/337 683/1079/337 +f 659/1090/338 641/2676/338 644/1088/338 +f 675/1091/339 674/1078/339 688/1092/339 +f 646/1055/340 680/1084/340 643/1085/340 +f 661/1095/341 681/2675/341 679/1086/341 +f 669/1068/45 655/1060/45 677/1097/45 +f 668/1070/342 671/1069/342 681/1089/342 +f 674/1098/911 662/1063/911 665/1065/911 +f 654/1053/7 678/2677/7 667/1100/7 +f 667/1100/344 666/1101/344 651/1049/344 +f 666/1101/345 684/1103/912 657/1102/913 +f 684/1103/914 685/1104/348 658/1059/348 +f 685/1104/350 686/2678/350 687/1105/350 +f 675/1073/915 686/2679/915 685/1106/915 +f 660/1061/352 672/1072/916 684/1107/917 +f 675/1091/354 677/1093/354 687/1108/354 +f 677/1097/918 655/1060/918 658/1059/918 +f 649/1050/356 651/1049/356 657/1102/919 +f 653/1056/920 678/2680/360 654/1110/360 +f 672/1072/921 673/1074/363 685/1106/363 +f 689/1111/922 690/2681/922 691/1112/922 +f 691/1112/2 693/2682/2 694/1114/2 +f 693/1115/3 695/1118/3 696/1116/3 +f 695/1118/4 697/1120/4 698/1119/4 +f 697/1120/5 699/1122/5 700/1121/5 +f 699/1122/6 701/1127/6 702/1123/6 +f 693/1125/7 691/2683/7 701/1126/7 +f 691/2683/7 690/2684/7 701/1126/7 +f 690/2684/7 703/2685/7 701/1126/7 +f 701/1126/7 699/2686/7 697/2687/7 +f 697/2687/7 695/1124/7 701/1126/7 +f 701/1127/8 703/1129/8 704/1128/8 +f 703/1129/923 690/2681/923 689/1111/923 +f 706/1130/367 707/2688/367 708/1131/367 +f 710/1133/368 711/1168/368 712/1134/368 +f 713/1136/369 714/1147/369 710/1137/369 +f 715/1139/370 716/1143/370 717/1140/370 +f 705/1132/371 708/2689/371 717/1142/371 +f 706/1144/372 719/1150/372 720/1145/372 +f 714/1147/373 721/1153/373 722/1148/373 +f 719/1150/374 713/1136/374 709/1151/374 +f 721/1153/375 715/1139/375 718/1154/375 +f 724/1156/8 725/1182/8 726/1157/8 +f 720/1159/376 727/1171/376 728/1160/376 +f 708/1162/377 729/1174/377 730/1163/377 +f 717/1165/378 730/1163/378 724/1156/378 +f 722/1167/379 723/1158/379 711/1168/379 +f 720/1170/380 709/2690/380 712/1134/380 +f 708/1172/381 707/2691/381 728/1173/381 +f 718/1175/382 724/1156/382 723/1158/382 +f 726/1157/383 732/2692/383 733/1177/383 +f 712/1134/5 711/1168/5 731/1178/5 +f 727/1171/3 735/1183/3 736/1180/3 +f 729/1174/1 737/1184/1 738/1181/1 +f 730/1163/9 738/1181/9 725/1182/9 +f 723/1158/6 726/1157/6 731/1178/6 +f 712/1134/4 734/1179/4 735/1183/4 +f 728/1173/2 736/1189/2 737/1184/2 +f 739/1185/384 740/2693/384 741/1186/384 +f 734/1179/385 743/2694/385 744/1188/385 +f 736/1189/386 745/2695/386 740/1190/386 +f 726/1157/387 725/1182/387 746/1191/387 +f 734/1179/388 731/1178/388 733/1193/388 +f 736/1180/389 735/1183/389 744/1195/389 +f 737/1184/390 740/2696/390 739/1197/390 +f 738/1181/391 739/2697/391 746/1198/391 +f 748/1199/8 749/1224/8 750/1200/8 +f 739/1202/392 742/1187/392 748/1199/392 +f 732/1204/393 747/1201/393 751/1205/393 +f 743/1207/394 752/1214/394 753/1208/394 +f 745/1210/395 754/1227/395 741/1186/395 +f 732/1212/396 746/2698/396 748/1199/396 +f 733/1213/397 751/1205/397 752/1214/397 +f 745/1216/398 744/2699/398 753/1208/398 +f 755/1218/399 756/2700/399 757/1219/399 +f 751/1205/5 759/1225/5 760/1221/5 +f 753/1208/3 761/1226/3 756/1222/3 +f 741/1186/1 755/1218/1 762/1223/1 +f 742/1187/9 762/1223/9 749/1224/9 +f 747/1201/6 750/1200/6 759/1225/6 +f 752/1214/4 760/1221/4 761/1226/4 +f 754/1227/2 756/2700/2 755/1218/2 +f 764/1228/400 765/2701/400 766/1229/400 +f 749/1224/401 763/2702/401 767/1231/401 +f 759/1225/402 768/2703/402 769/1232/402 +f 761/1226/403 770/2704/403 757/1233/403 +f 755/1218/404 758/2705/404 764/1234/404 +f 749/1224/405 762/1223/405 764/1228/405 +f 750/1200/406 767/1241/406 768/1235/406 +f 761/1226/407 760/1221/407 769/1236/407 +f 766/1238/408 772/2706/408 773/1239/408 +f 767/1241/409 771/2707/409 774/1242/409 +f 769/1236/410 775/2708/410 776/1243/410 +f 757/1219/411 777/2709/411 778/1244/411 +f 767/1231/412 763/2702/412 766/1238/412 +f 769/1232/413 768/2703/413 774/1245/413 +f 757/1233/414 770/2704/414 776/1247/414 +f 764/1234/415 758/2705/415 778/1249/415 +f 773/1251/10 780/1280/10 781/1252/10 +f 774/1245/416 779/2710/416 782/1254/416 +f 776/1247/417 783/2711/417 784/1255/417 +f 778/1249/418 785/2712/418 786/1256/418 +f 766/1229/419 765/2701/419 786/1257/419 +f 774/1242/420 771/2707/420 773/1251/420 +f 776/1243/421 775/2708/421 782/1259/421 +f 778/1244/422 777/2709/422 784/1261/422 +f 788/1263/5 789/2713/5 790/1264/5 +f 782/1259/10 791/1282/10 792/1266/10 +f 784/1261/10 793/1284/10 788/1267/10 +f 773/1239/10 772/2706/10 794/1268/10 +f 782/1254/10 779/2710/10 781/1270/10 +f 784/1255/10 783/2711/10 792/1272/10 +f 786/1256/10 785/2712/10 788/1263/10 +f 786/1257/10 787/1278/10 794/1274/10 +f 800/1276/10 790/2714/10 789/2715/10 +f 789/2715/10 795/2716/10 800/1276/10 +f 795/2716/10 796/1277/10 800/1276/10 +f 796/1277/10 797/2717/10 798/2718/10 +f 798/2718/10 799/1275/10 796/1277/10 +f 787/1278/4 790/2719/4 800/1279/4 +f 780/1280/2 799/2720/2 798/1281/2 +f 791/1282/9 797/2721/9 796/1283/9 +f 793/1284/6 795/2722/6 789/1285/6 +f 794/1268/3 800/2723/3 799/1286/3 +f 781/1270/1 798/2724/1 797/1287/1 +f 792/1272/8 796/2725/8 795/1288/8 +f 715/1139/423 801/2726/423 802/1289/423 +f 803/1290/924 801/2726/924 715/1139/924 +f 714/1147/925 804/2727/925 803/1290/925 +f 805/1291/424 804/2727/424 714/1147/424 +f 719/1150/425 806/2728/425 805/1291/425 +f 807/1292/926 806/2728/926 719/1150/926 +f 705/1132/927 808/2729/927 807/1293/927 +f 802/1289/426 808/2729/426 705/1132/426 +f 704/1294/366 689/2730/366 810/1295/366 +f 702/1297/428 704/1294/428 809/1296/428 +f 812/1299/429 700/1301/429 702/1297/429 +f 813/1300/928 698/2731/928 700/1301/928 +f 696/1302/929 698/2731/929 813/1300/929 +f 815/1304/930 694/2732/930 696/1302/930 +f 692/1305/931 694/2733/931 815/1306/931 +f 810/1295/365 689/2730/365 692/1305/365 +f 802/1308/1 817/2734/1 818/1309/1 +f 819/1311/435 820/2735/435 821/1312/435 +f 824/1314/1 825/1324/1 826/1315/1 +f 809/1317/436 827/1392/436 828/1318/436 +f 818/1309/932 829/2736/932 807/1320/932 +f 830/1321/438 831/2737/438 832/1322/438 +f 825/1324/2 833/2738/2 830/1325/2 +f 813/1326/439 812/2739/439 834/1327/439 +f 807/1329/933 829/2740/933 836/1330/933 +f 837/1332/441 836/2741/441 838/1333/441 +f 833/1335/3 840/1345/3 841/1336/3 +f 843/1338/934 844/1391/934 845/1339/934 +f 836/1330/4 837/1350/4 805/1341/4 +f 829/1342/935 818/2742/935 846/1343/935 +f 840/1345/4 848/1355/4 849/1346/4 +f 814/1347/936 850/1389/936 851/1348/936 +f 837/1350/5 820/1360/5 804/1351/5 +f 852/1352/445 853/2743/445 854/1353/445 +f 848/1355/5 856/1365/5 857/1356/5 +f 848/1357/937 858/1390/937 859/1358/937 +f 820/1360/938 819/2744/938 803/1361/938 +f 857/1362/448 860/1408/448 861/1363/448 +f 856/1365/6 843/1374/6 852/1366/6 +f 810/1367/449 816/2745/449 862/1368/449 +f 803/1361/939 819/2744/939 864/1370/939 +f 864/1372/451 819/2746/451 822/1313/451 +f 843/1374/8 842/1382/8 853/1375/8 +f 833/1376/940 866/1388/940 867/1377/940 +f 864/1370/9 817/2734/9 802/1308/9 +f 830/1379/453 841/2747/453 868/1380/453 +f 842/1382/9 824/1314/9 823/1316/9 +f 824/1383/941 869/1386/941 870/1384/941 +f 863/1369/1 862/1368/1 870/1384/1 +f 862/1368/2 851/1397/2 866/1387/2 +f 851/1348/3 850/1389/3 867/1377/3 +f 850/1389/4 835/1328/4 858/1390/4 +f 835/1328/5 834/1327/5 859/1358/5 +f 834/1327/6 828/1318/6 844/1391/6 +f 828/1318/8 827/1392/8 845/1339/8 +f 827/1392/9 863/1369/9 869/1386/9 +f 825/1393/942 870/1384/942 866/1387/942 +f 848/1395/943 840/2748/943 867/1377/943 +f 816/1396/944 815/2749/944 851/1397/944 +f 856/1398/945 859/1358/945 844/1391/945 +f 813/1400/946 835/1328/946 850/1389/946 +f 824/1402/947 842/2750/947 845/1339/947 +f 812/1403/461 811/2751/461 828/1318/461 +f 810/1404/462 863/1369/462 827/1392/462 +f 871/1406/1 872/1415/1 832/1322/1 +f 832/1322/2 831/2737/2 847/1344/2 +f 831/1381/3 868/1380/3 838/1333/3 +f 868/1380/4 861/1363/4 839/1334/4 +f 861/1363/5 860/1408/5 821/1312/5 +f 860/1408/6 855/1354/6 822/1313/6 +f 855/1354/8 854/1353/8 865/1373/8 +f 854/1353/9 872/1415/9 871/1406/9 +f 841/1409/463 849/2752/463 861/1363/463 +f 864/1410/948 865/1373/948 871/1406/948 +f 852/1412/465 855/1354/465 860/1408/465 +f 853/1414/949 823/2753/949 872/1415/949 +f 817/1416/950 871/1406/950 846/1343/950 +f 829/1418/951 847/1407/951 838/1333/951 +f 826/1420/952 832/1322/952 872/1415/952 +f 837/1422/470 839/1334/470 821/1312/470 +f 874/1424/1 875/1427/1 876/1425/1 +f 875/1427/2 877/2754/2 878/1428/2 +f 877/1429/3 879/1432/3 880/1430/3 +f 879/1432/4 881/1434/4 882/1433/4 +f 881/1434/5 883/1436/5 884/1435/5 +f 883/1436/6 885/1441/6 886/1437/6 +f 877/1440/7 875/2755/7 874/2756/7 +f 874/2756/7 887/2757/7 877/1440/7 +f 887/2757/7 885/2758/7 877/1440/7 +f 885/2758/7 883/2759/7 877/1440/7 +f 883/2759/7 881/1438/7 877/1440/7 +f 885/1441/8 887/1443/8 888/1442/8 +f 887/1443/9 874/1424/9 873/1426/9 +f 888/1446/10 873/2760/10 876/2761/10 +f 876/2761/10 878/2762/10 888/1446/10 +f 878/2762/10 880/2763/10 888/1446/10 +f 880/2763/10 882/2764/10 888/1446/10 +f 882/2764/10 884/1444/10 888/1446/10 +f 890/1447/471 891/2765/471 892/1448/471 +f 890/1450/45 894/1464/45 895/1451/45 +f 894/1453/472 896/1456/472 897/1454/472 +f 896/1456/48 889/1449/48 900/1457/48 +f 895/1459/46 899/1458/46 900/1457/46 +f 890/1447/44 889/1449/44 896/1456/44 +f 898/1461/7 897/1465/7 902/1462/7 +f 894/1464/45 898/1461/45 901/1463/45 +f 899/1458/473 902/1462/473 897/1465/473 +f 895/1459/474 901/2766/474 902/1466/474 +f 892/1467/10 891/2767/10 904/1468/10 +f 893/1460/475 900/1457/475 903/1470/475 +f 890/1450/45 893/1452/45 904/1472/45 +f 889/1449/476 892/1467/476 903/1469/476 +f 906/1474/471 907/2768/471 908/1475/471 +f 910/1477/48 911/1490/48 908/1478/48 +f 911/1480/472 912/2769/472 913/1481/472 +f 916/1483/45 905/1476/45 914/1482/45 +f 916/1483/46 915/1484/46 910/1485/46 +f 914/1482/44 905/1476/44 908/1475/44 +f 918/1487/7 913/2770/7 912/1488/7 +f 917/1489/48 912/1488/48 911/1490/48 +f 914/1482/477 913/2770/477 918/1487/477 +f 918/1491/474 917/2771/474 910/1485/474 +f 920/1492/10 907/2772/10 906/1493/10 +f 909/1486/475 920/2773/475 919/1495/475 +f 908/1478/48 907/2774/48 920/1496/48 +f 916/1483/478 919/1494/478 906/1493/478 +f 921/1497/953 922/1510/953 923/1498/953 +f 922/1500/44 926/2775/44 927/1501/44 +f 926/1503/954 928/1506/954 929/1504/954 +f 928/1506/46 921/1497/46 932/1507/46 +f 925/1509/45 927/1515/45 931/1508/45 +f 922/1510/48 921/1497/48 928/1506/48 +f 930/1511/481 929/1514/481 934/1512/481 +f 927/1501/44 926/2775/44 930/1511/44 +f 931/1508/482 934/1512/482 929/1514/482 +f 927/1515/955 933/2776/955 934/1516/955 +f 924/1517/484 923/2777/484 936/1518/484 +f 932/1507/956 935/2778/956 936/1520/956 +f 925/1502/44 936/2779/44 923/1521/44 +f 932/1507/486 921/1497/486 924/1517/486 +f 937/1522/10 938/1585/10 939/1523/10 +f 944/2780/45 940/2781/45 943/1527/45 +f 940/2781/45 939/2782/45 943/1527/45 +f 939/2782/45 941/1525/45 943/1527/45 +f 945/1528/487 946/1550/487 947/1529/487 +f 954/2783/48 949/2784/48 953/1533/48 +f 949/2784/48 950/2785/48 953/1533/48 +f 950/2785/48 951/1531/48 953/1533/48 +f 956/1534/46 957/1601/46 958/1535/46 +f 960/1537/46 961/1610/46 962/1538/46 +f 964/1540/46 949/2786/46 954/1541/46 +f 940/1543/46 944/1593/46 965/1544/46 +f 967/1546/44 968/2787/44 969/1547/44 +f 970/1549/488 971/1571/488 946/1550/488 +f 966/2788/957 972/1562/957 974/1553/957 +f 972/1562/958 973/1551/958 974/1553/958 +f 950/1555/48 949/2789/48 970/1549/48 +f 970/1549/959 945/1528/959 950/1555/959 +f 964/1556/490 973/1560/490 970/1557/490 +f 945/1528/960 948/1530/960 975/1559/960 +f 973/1560/46 976/1573/46 971/1561/46 +f 972/1562/492 978/1574/492 979/1563/492 +f 972/1562/493 977/1564/493 976/1565/493 +f 981/1566/7 982/1579/7 983/1567/7 +f 976/1565/961 977/1564/961 981/1569/961 +f 971/1571/48 983/2790/48 982/1572/48 +f 976/1573/495 980/1568/495 983/1567/495 +f 975/1559/496 948/1530/496 978/1574/496 +f 947/1529/962 985/1578/962 986/1576/962 +f 948/1530/44 947/1529/44 979/1563/44 +f 946/1550/963 982/1572/963 985/1577/963 +f 981/1566/499 986/1576/499 985/1578/499 +f 969/1580/500 975/1559/500 984/1575/500 +f 972/1562/964 966/2788/964 984/1575/964 +f 977/1564/965 979/1563/965 986/1582/965 +f 968/2787/503 938/2791/503 987/2792/503 +f 988/1621/503 989/1618/503 969/1547/503 +f 989/1618/503 990/1583/503 969/1547/503 +f 988/1621/503 969/1547/503 968/2787/503 +f 968/2787/503 987/2792/503 988/1621/503 +f 950/2785/503 969/1547/503 951/1531/503 +f 951/1531/503 969/1547/503 991/1584/503 +f 938/1585/966 968/2787/966 967/1546/966 +f 966/1548/505 974/2793/505 992/2794/505 +f 966/1548/505 992/2794/505 993/1586/505 +f 939/2782/967 967/1546/967 941/1525/967 +f 967/1546/968 966/1548/968 996/1637/968 +f 996/1637/967 941/1525/967 967/1546/967 +f 994/1587/505 995/1634/505 966/1548/505 +f 995/1634/505 996/1637/505 966/1548/505 +f 997/1588/46 998/1595/46 999/1589/46 +f 1000/1591/10 1001/2795/10 955/1536/10 +f 943/1592/7 1002/1594/7 965/1544/7 +f 942/1590/506 999/1589/506 1002/1594/506 +f 997/1588/507 1001/2795/507 1000/1591/507 +f 1004/1596/46 1005/2796/46 1006/1597/46 +f 1007/1599/10 1008/1603/10 959/1539/10 +f 1009/1600/7 1010/1602/7 957/1601/7 +f 1003/1598/506 1006/1597/506 1010/1602/506 +f 1007/1599/507 1005/2796/507 1004/1596/507 +f 1012/1604/46 952/1612/46 1013/1605/46 +f 1014/1607/10 963/1542/10 954/1541/10 +f 1015/1609/7 1016/1611/7 961/1610/7 +f 1015/1609/506 1011/1606/506 1013/1605/506 +f 1012/1604/507 1014/1607/507 953/1608/507 +f 990/1583/48 989/1618/48 1006/1613/48 +f 1016/1616/48 1013/1617/48 991/1584/48 +f 991/1584/48 990/1583/48 1007/1615/48 +f 990/1583/48 1005/1614/48 1007/1615/48 +f 1007/1615/48 962/2797/48 961/2798/48 +f 1007/1615/48 961/2798/48 1016/1616/48 +f 951/1531/48 991/1584/48 1013/1617/48 +f 1010/1620/48 1006/1613/48 989/1618/48 +f 989/1618/48 988/1621/48 1000/1619/48 +f 988/1621/48 998/1623/48 1000/1619/48 +f 1000/1619/48 958/2799/48 957/2800/48 +f 1000/1619/48 957/2800/48 1010/1620/48 +f 988/1621/48 987/2792/48 999/1622/48 +f 1002/1626/48 999/1622/48 987/2792/48 +f 987/2792/48 938/2791/48 1002/1626/48 +f 938/2791/48 937/1624/48 1002/1626/48 +f 1014/1629/45 1012/1630/45 992/2794/45 +f 992/2794/45 974/2793/45 1014/1629/45 +f 974/2793/45 964/1627/45 1014/1629/45 +f 993/1586/45 992/2794/45 1012/1630/45 +f 1008/1633/45 1004/1635/45 994/1587/45 +f 994/1587/45 993/1586/45 1015/1632/45 +f 993/1586/45 1011/1631/45 1015/1632/45 +f 1015/1632/45 960/2801/45 959/2802/45 +f 1015/1632/45 959/2802/45 1008/1633/45 +f 995/1634/45 994/1587/45 1004/1635/45 +f 1001/1639/45 997/1640/45 996/1637/45 +f 996/1637/45 995/1634/45 1009/1638/45 +f 995/1634/45 1003/1636/45 1009/1638/45 +f 1009/1638/45 956/2803/45 955/2804/45 +f 1009/1638/45 955/2804/45 1001/1639/45 +f 941/1525/45 996/1637/45 997/1640/45 +f 1018/1641/1 1019/1954/1 1020/1642/1 +f 1022/1644/5 1023/1647/5 1024/1645/5 +f 1023/1647/6 1025/2805/6 1026/1648/6 +f 1028/1649/508 1029/2806/508 1030/1650/508 +f 1024/1645/509 1031/1715/509 1032/1652/509 +f 1018/1653/510 1033/2807/510 1034/1654/510 +f 1022/1656/511 1036/2808/511 1037/1657/511 +f 1038/1659/512 1039/2809/512 1040/1660/512 +f 1027/1662/513 1030/2085/513 1043/1663/513 +f 1044/1665/514 1045/1771/514 1046/1666/514 +f 1048/1668/515 1049/1767/515 1050/1669/515 +f 1048/1671/516 1028/2810/516 1051/1672/516 +f 1042/1674/517 1046/2087/517 1052/1675/517 +f 1044/1677/518 1039/2811/518 1053/1678/518 +f 1059/1680/3 1060/1683/3 1061/1681/3 +f 1060/1683/4 1062/1994/4 1063/1684/4 +f 1067/1688/520 1060/2110/520 1068/1689/520 +f 1098/1691/9 1055/1721/9 1054/1692/9 +f 1074/1694/521 1070/1701/521 1075/1695/521 +f 1079/1700/523 1055/1703/523 1070/1701/523 +f 1055/1703/524 1079/1712/524 1080/1704/524 +f 1081/1706/525 1073/2103/525 1075/1695/525 +f 1088/1708/526 1021/1646/526 1032/1709/526 +f 1083/1711/969 1084/2812/969 1080/1704/969 +f 1079/1700/970 1074/1702/970 1082/1713/970 +f 1031/1715/971 1081/1855/971 1069/1716/971 +f 1089/1717/972 1080/2813/972 1084/1718/972 +f 1070/1727/9 1055/1721/9 1071/1720/9 +f 1099/1729/533 1037/2814/533 1100/1730/533 +f 1035/1732/534 1103/1759/534 1104/1733/534 +f 1105/1735/535 1106/1758/535 1107/1736/535 +f 1108/1738/536 1102/2815/536 1104/1733/536 +f 1110/1740/537 1043/2816/537 1111/1741/537 +f 1047/1743/538 1113/2817/538 1105/1744/538 +f 1023/1746/539 1037/2814/539 1099/1729/539 +f 1042/1748/540 1043/2816/540 1110/1740/540 +f 1028/1750/541 1048/2818/541 1105/1735/541 +f 1039/1751/542 1044/2819/542 1110/1752/542 +f 1018/1754/543 1035/1732/543 1102/1734/543 +f 1114/1756/544 1112/1742/544 1111/1741/544 +f 1115/1757/545 1107/1736/545 1106/1758/545 +f 1104/1733/546 1103/1759/546 1106/1758/546 +f 1034/1654/547 1115/1757/547 1103/1759/547 +f 1037/1657/548 1036/2808/548 1114/1756/548 +f 1030/1650/549 1029/2806/549 1107/1736/549 +f 1110/1752/550 1112/1742/550 1118/1762/550 +f 1105/1744/551 1113/2817/551 1116/1760/551 +f 1120/1763/552 1121/2820/552 1122/1764/552 +f 1051/1672/7 1123/1785/7 1120/1766/7 +f 1049/1767/7 1120/1763/7 1119/1765/7 +f 1052/1768/7 1124/1780/7 1123/1769/7 +f 1045/1771/7 1125/1778/7 1126/1772/7 +f 1045/1679/7 1053/1678/7 1127/1773/7 +f 1129/1775/553 1130/2821/553 1131/1776/553 +f 1125/1778/554 1132/2822/554 1133/1779/554 +f 1124/1780/555 1129/2823/555 1128/1781/555 +f 1124/1782/556 1126/2086/556 1133/1783/556 +f 1123/1785/557 1128/2824/557 1121/1786/557 +f 1134/1787/7 1135/1803/7 1136/1788/7 +f 1129/1790/558 1133/2825/558 1134/1791/558 +f 1128/1793/559 1131/1804/559 1138/1794/559 +f 1122/1796/560 1121/2826/560 1138/1797/560 +f 1140/1799/561 1141/1808/561 1135/1800/561 +f 1133/1802/562 1132/2827/562 1135/1803/562 +f 1131/1804/7 1142/1916/7 1143/1805/7 +f 1139/1798/7 1138/1797/7 1143/1806/7 +f 1141/1808/7 1145/1818/7 1136/1809/7 +f 1147/1810/9 1148/2137/9 1149/1811/9 +f 1150/1813/563 1137/2828/563 1151/1814/563 +f 1144/1807/564 1143/1806/564 1146/1816/564 +f 1145/1818/565 1154/1826/565 1155/1819/565 +f 1156/1820/566 1157/1918/566 1154/1821/566 +f 1137/1789/567 1136/1788/567 1155/1823/567 +f 1146/1816/1 1149/2139/1 1160/1825/1 +f 1154/1826/4 1163/2141/4 1164/1827/4 +f 1155/1823/5 1164/2143/5 1165/1828/5 +f 1166/1829/5 1167/1833/5 1162/1830/5 +f 1168/1832/6 1158/2829/6 1162/1830/6 +f 1170/1834/1 1171/2091/1 1172/1835/1 +f 1174/1837/3 1175/1840/3 1176/1838/3 +f 1175/1840/4 1166/1829/4 1161/1831/4 +f 1177/1843/7 1168/2830/7 1175/1841/7 +f 1168/2830/7 1167/2831/7 1175/1841/7 +f 1167/2831/7 1166/2832/7 1175/1841/7 +f 1175/1841/7 1174/2833/7 1170/1842/7 +f 1170/1842/7 1169/2834/7 1177/1843/7 +f 1178/1844/7 1179/2835/7 1180/1845/7 +f 1090/1687/568 1075/2124/568 1091/1847/568 +f 1064/1849/5 1066/2836/5 1185/1850/5 +f 1184/1852/569 1309/2837/569 1308/1853/569 +f 1064/1707/570 1067/1688/570 1069/1716/570 +f 1090/1687/571 1186/1860/571 1187/1856/571 +f 1188/1859/8 1181/2149/8 1186/1860/8 +f 1162/1861/7 1158/2838/7 1159/1862/7 +f 1194/1864/9 1177/2090/9 1169/1836/9 +f 1189/1865/973 1190/2839/973 1195/1866/973 +f 1197/1868/7 1182/2840/7 1189/1865/7 +f 1097/1869/48 1198/1879/48 1093/1870/48 +f 1198/1872/573 1199/2106/573 1200/1873/573 +f 1201/1875/7 1156/1820/7 1145/1822/7 +f 1165/1877/6 1202/2841/6 1152/1815/6 +f 1183/1878/574 1203/2092/574 1198/1879/574 +f 1204/1880/10 1205/1895/10 1206/1881/10 +f 1082/1883/974 1074/1694/974 1073/1696/974 +f 1071/1885/10 1207/2842/10 1204/1886/10 +f 1099/1888/576 1101/1731/576 1115/1757/576 +f 1153/1890/2 1160/1863/2 1159/1862/2 +f 1208/1892/975 1207/2842/975 1071/1885/975 +f 1200/1894/976 1091/2843/976 1206/1881/976 +f 1065/1896/977 1096/1871/977 1093/1870/977 +f 1077/1898/10 1066/2844/10 1065/1896/10 +f 1185/1899/10 1066/2845/10 1077/1900/10 +f 1185/1899/978 1095/1901/978 1209/1902/978 +f 1195/1866/979 1190/2839/979 1192/1903/979 +f 1098/1893/980 1191/1933/980 1210/1904/980 +f 1211/1905/7 1212/2104/7 1127/1906/7 +f 1104/1733/584 1116/1760/584 1215/1912/584 +f 1122/1913/585 1216/2846/585 1212/1914/585 +f 1142/1916/586 1147/1810/586 1146/1812/586 +f 1159/1917/3 1163/2847/3 1154/1821/3 +f 1214/1697/46 1094/2237/46 1093/1874/46 +f 1038/1920/588 1041/1929/588 1113/1921/588 +f 1047/1923/589 1050/2848/589 1211/1924/589 +f 1032/1709/981 1069/1690/981 1068/1689/981 +f 1086/1926/982 1068/2111/982 1089/1927/982 +f 1215/1912/592 1116/1760/592 1113/1921/592 +f 1140/1930/593 1132/2849/593 1125/1774/593 +f 1131/1776/7 1130/2821/7 1150/1931/7 +f 1180/1845/983 1179/2835/983 1210/1904/983 +f 1213/2850/984 1217/2851/984 1214/2852/984 +f 1217/2851/10 1218/2853/10 1219/1934/10 +f 1214/2852/985 1217/2851/985 1219/1934/985 +f 1219/1934/10 1220/2854/10 1221/1935/10 +f 1219/1934/986 1094/1936/986 1214/2852/986 +f 1221/1935/987 1076/2855/987 1094/1936/987 +f 1211/1924/7 1050/2848/7 1119/1915/7 +f 1101/1731/596 1117/1761/596 1107/1736/596 +f 1086/1926/598 1085/1928/598 1222/1937/598 +f 1201/1875/599 1141/1876/599 1140/1938/599 +f 1134/1791/7 1137/2828/7 1150/1813/7 +f 1087/1940/600 1031/2102/600 1024/1645/600 +f 1224/1941/601 1225/1951/601 1203/1942/601 +f 1223/1943/988 1203/1942/988 1197/1944/988 +f 1224/1941/989 1227/1947/989 1178/1946/989 +f 1019/1954/2 1228/2856/2 1222/1955/2 +f 1019/1956/608 1102/2815/608 1108/1738/608 +f 1039/1958/609 1038/2857/609 1211/1905/609 +f 1111/1741/610 1117/1761/610 1101/1731/610 +f 1028/1959/611 1027/2858/611 1052/1768/611 +f 1040/1660/612 1118/1762/612 1215/1960/612 +f 1122/1961/613 1139/2859/613 1201/1962/613 +f 1201/1962/7 1139/2859/7 1144/1964/7 +f 1156/1965/614 1144/1964/614 1153/1890/614 +f 1056/1705/615 1080/2813/615 1089/1717/615 +f 1033/1967/616 1025/2860/616 1099/1888/616 +f 1194/1968/7 1163/2847/7 1159/1917/7 +f 1233/2861/990 1227/2862/990 1224/1970/990 +f 1224/1970/617 1223/2863/617 1230/1971/617 +f 1223/2863/991 1226/2864/991 1229/2865/991 +f 1230/1971/992 1223/2863/992 1229/2865/992 +f 1230/1971/7 1231/2866/7 1232/1972/7 +f 1232/1972/993 1233/2861/993 1224/1970/993 +f 1210/1950/994 1235/1979/994 1236/1919/994 +f 1237/1908/995 1234/1974/995 1195/1973/995 +f 1231/1976/996 1238/1990/996 1239/1977/996 +f 1232/1978/997 1239/1977/997 1235/1979/997 +f 1230/1980/998 1229/1952/998 1234/1974/998 +f 1219/1982/999 1218/2113/999 1241/1983/999 +f 1219/1985/1000 1242/1989/1000 1243/1986/1000 +f 1220/1987/1001 1243/1986/1001 1237/1908/1001 +f 1237/1908/1002 1243/1986/1002 1240/1981/1002 +f 1238/1988/1003 1240/1981/1003 1243/1986/1003 +f 1238/1990/1004 1242/1984/1004 1241/1983/1004 +f 1236/1919/1005 1235/1979/1005 1239/1977/1005 +f 1281/1991/634 1371/2867/634 1367/1992/634 +f 1067/1851/4 1247/2868/4 1062/1994/4 +f 1061/1681/4 1063/1684/4 1244/1995/4 +f 1289/1996/635 1370/2015/635 1368/1997/635 +f 1284/1999/1006 1250/2869/1006 1370/2000/1006 +f 1249/2002/637 1369/2870/637 1248/2003/637 +f 1282/2005/638 1372/2012/638 1371/2006/638 +f 1246/2008/639 1372/2871/639 1282/2009/639 +f 1367/2011/1007 1371/2006/1007 1372/2012/1007 +f 1369/2014/8 1368/1997/8 1370/2015/8 +f 1248/2017/1008 1369/2014/1008 1250/2016/1008 +f 1251/2018/1009 1367/2011/1009 1246/2013/1009 +f 1368/2019/643 1369/2872/643 1249/2002/643 +f 1270/2021/1010 1283/2873/1011 1281/1991/1010 +f 1286/2022/642 1270/2021/642 1245/1993/642 +f 1367/2024/645 1251/2874/645 1285/2023/645 +f 1258/2004/646 1248/2875/646 1246/2025/646 +f 1292/2026/8 1293/2876/8 1288/2020/8 +f 1249/2002/1012 1258/2004/1012 1261/2054/1012 +f 1249/2002/647 1261/2054/647 1262/2027/647 +f 1279/2060/1013 1292/2026/1013 1278/2877/1013 +f 1292/2026/1014 1249/2002/1014 1266/2878/1014 +f 1267/2056/1013 1292/2026/1013 1266/2878/1013 +f 1267/2056/1013 1278/2877/1013 1292/2026/1013 +f 1265/2028/647 1266/2878/647 1249/2002/647 +f 1251/2029/648 1250/2879/648 1284/1999/648 +f 1253/2030/1015 1252/2036/1015 1277/2031/1015 +f 1267/2033/1016 1268/2059/1016 1253/2030/1016 +f 1277/2031/1017 1252/2036/1017 1269/2034/1017 +f 1253/2030/652 1268/2059/652 1269/2034/652 +f 1273/2037/1018 1254/2044/1018 1255/2038/1018 +f 1272/2039/654 1255/2038/654 1260/2040/654 +f 1259/2042/1019 1254/2044/1019 1273/2037/1019 +f 1259/2042/656 1260/2040/656 1255/2038/656 +f 1275/2045/1020 1256/2052/1020 1257/2046/1020 +f 1274/2047/1021 1257/2046/1021 1264/2048/1021 +f 1263/2050/1022 1256/2052/1022 1275/2045/1022 +f 1263/2050/652 1264/2048/652 1257/2046/652 +f 1258/2004/642 1271/2010/642 1272/2053/642 +f 1261/2041/1023 1260/2040/1023 1259/2042/1023 +f 1262/2027/642 1273/2063/642 1274/2055/642 +f 1265/2049/1024 1264/2048/1024 1263/2050/1024 +f 1267/2056/642 1266/2878/642 1275/2057/642 +f 1276/2035/1025 1269/2034/1025 1268/2059/1025 +f 1279/2060/1026 1280/2065/1026 1291/2061/1026 +f 1282/2009/1027 1291/2880/1027 1275/2057/1027 +f 1291/2880/1028 1280/2065/1028 1277/2064/1028 +f 1276/2058/1028 1291/2880/1028 1277/2064/1028 +f 1276/2058/1028 1275/2057/1028 1291/2880/1028 +f 1275/2057/664 1274/2055/664 1282/2009/664 +f 1274/2055/664 1273/2063/664 1282/2009/664 +f 1272/2053/640 1271/2010/640 1282/2009/640 +f 1279/2060/642 1278/2877/642 1277/2064/642 +f 1290/2067/8 1287/2068/1029 1284/1999/8 +f 1286/2022/641 1285/2023/641 1284/1999/641 +f 1293/2069/10 1292/2062/10 1291/2061/10 +f 1088/1708/4 1296/2107/4 1022/1644/4 +f 1297/2071/9 1033/2072/9 1018/1641/9 +f 1026/1648/8 1025/2805/8 1033/2072/8 +f 1083/1714/668 1082/1713/668 1297/2071/668 +f 1057/2073/2 1056/2077/2 1059/2074/2 +f 1298/2076/1 1299/2115/1 1056/2077/1 +f 1020/1642/669 1084/2812/669 1083/1711/669 +f 1301/2078/670 1114/1756/670 1036/2079/670 +f 1108/2081/671 1109/2881/671 1301/2078/671 +f 1300/2080/672 1036/2079/672 1022/2083/672 +f 1301/2078/673 1118/1762/673 1112/1742/673 +f 1117/1761/674 1111/1741/674 1043/1663/674 +f 1126/2086/7 1124/1782/7 1052/1675/7 +f 1150/1931/675 1152/2100/675 1147/2088/675 +f 1194/1864/8 1158/2882/8 1168/2089/8 +f 1171/2091/2 1170/1834/2 1174/1837/2 +f 1203/2092/7 1183/1878/7 1182/2093/7 +f 1225/2095/7 1178/2883/7 1181/2096/7 +f 1092/2098/45 1091/2843/45 1200/1894/45 +f 1152/2100/8 1202/2135/8 1148/2101/8 +f 1199/2099/676 1225/2095/676 1188/2097/676 +f 1031/2102/1030 1087/1940/1030 1073/2103/1030 +f 1301/2078/678 1109/2881/678 1215/1960/678 +f 1212/2104/679 1216/2884/679 1140/2105/679 +f 1198/1872/680 1203/1942/680 1225/1951/680 +f 1222/1955/681 1085/1719/681 1084/1718/681 +f 1297/2071/682 1082/1883/682 1087/1884/682 +f 1222/1937/3 1228/2885/3 1296/2107/3 +f 1108/2081/683 1300/2082/683 1296/2108/683 +f 1060/2110/684 1059/2886/684 1089/1927/684 +f 1231/2112/1031 1230/1980/1031 1240/1981/1031 +f 1218/2113/1032 1217/1911/1032 1236/1919/1032 +f 1055/1721/1 1303/2887/1 1302/2114/1 +f 1299/2115/1 1303/2887/1 1055/1721/1 +f 1054/1692/1 1302/2114/1 1298/2076/1 +f 1283/2116/1033 1287/2148/1034 1290/2117/7 +f 1310/2121/10 1187/2888/10 1304/2889/10 +f 1304/2889/10 1305/2890/10 1306/2119/10 +f 1306/2119/10 1307/2891/10 1308/2120/10 +f 1308/2120/10 1309/2892/10 1310/2121/10 +f 1310/2121/10 1304/2889/10 1306/2119/10 +f 1057/2073/688 1058/2075/688 1306/2122/688 +f 1061/1681/691 1307/2893/691 1306/2126/691 +f 1090/1687/692 1310/2894/692 1309/2127/692 +f 1054/1692/1035 1057/2073/1035 1305/2128/1035 +f 1193/1854/694 1308/2895/694 1307/2130/694 +f 1304/2131/695 1187/2896/695 1186/1860/695 +f 1206/2125/8 1075/2124/8 1070/1727/8 +f 1173/2132/7 1202/2841/7 1165/1877/7 +f 1173/2134/7 1176/2897/7 1148/2101/7 +f 1176/2136/7 1161/2898/7 1149/1811/7 +f 1161/2138/7 1162/2899/7 1160/1825/7 +f 1172/2140/7 1164/1827/7 1163/2141/7 +f 1164/2143/7 1172/2900/7 1171/2144/7 +f 1323/2145/1036 1311/2901/7 1318/2146/7 +f 1287/2148/1037 1283/2116/1038 1270/2021/1039 +f 1180/1858/9 1054/1692/9 1186/1860/9 +f 1065/2150/6 1066/2836/6 1064/1849/6 +f 1192/2152/5 1190/2153/5 1193/1854/5 +f 1189/2154/5 1182/2902/5 1184/1852/5 +f 1090/1687/701 1097/1686/701 1096/2151/701 +f 1184/1852/6 1182/2902/6 1183/1685/6 +f 1244/1995/4 1247/2868/4 1067/1851/4 +f 1313/2155/10 1312/2903/10 1314/2156/10 +f 1320/2158/728 1321/2204/728 1322/2159/728 +f 1318/2161/6 1317/2904/6 1320/2158/6 +f 1314/2169/2 1312/2905/2 1325/2164/2 +f 1312/2905/2 1311/2162/2 1325/2164/2 +f 1311/2162/2 1323/2906/1040 1324/2163/2 +f 1327/2165/705 1328/2907/705 1329/2166/705 +f 1326/2167/706 1314/2169/706 1327/2165/706 +f 1314/2169/1041 1325/2164/1041 1334/2170/1041 +f 1327/2165/706 1314/2169/706 1335/2168/706 +f 1325/2164/729 1330/2224/729 1331/2185/729 +f 1332/2908/1042 1333/2179/1042 1325/2164/1042 +f 1333/2179/1042 1334/2170/1042 1325/2164/1042 +f 1325/2164/1042 1331/2185/1042 1332/2908/1042 +f 1314/2156/1043 1326/2167/1043 1329/2166/1043 +f 1335/2171/1044 1337/2201/1044 1338/2172/1044 +f 1337/2174/705 1335/2168/705 1334/2170/705 +f 1341/2176/1045 1340/2190/1045 1342/2177/1045 +f 1333/2179/705 1332/2908/705 1344/2180/705 +f 1345/2182/1046 1344/2195/1046 1346/2183/1046 +f 1331/2185/705 1330/2224/705 1348/2186/705 +f 1342/2177/711 1349/2192/711 1350/2188/711 +f 1334/2189/1047 1349/2192/1047 1342/2177/1047 +f 1333/2191/1048 1341/2176/1048 1343/2178/1048 +f 1334/2189/1049 1333/2191/1049 1350/2188/1049 +f 1346/2183/715 1351/2197/715 1352/2193/715 +f 1332/2194/1050 1351/2197/1050 1346/2183/1050 +f 1331/2196/717 1345/2182/717 1347/2184/717 +f 1332/2194/1051 1331/2196/1051 1352/2193/1051 +f 1353/2198/711 1354/2200/711 1339/2173/711 +f 1327/2199/1052 1335/2171/1052 1339/2173/1052 +f 1337/2201/1053 1328/2202/1053 1353/2198/1053 +f 1327/2199/1054 1354/2200/1054 1353/2198/1054 +f 1320/2158/722 1355/2909/722 1356/2203/722 +f 1345/2187/1055 1348/2186/1055 1357/2205/1055 +f 1357/2205/1056 1315/2207/1056 1340/2175/1056 +f 1315/2207/1057 1329/2166/1057 1328/2907/1057 +f 1340/2175/1057 1315/2207/1057 1337/2174/1057 +f 1328/2907/1057 1337/2174/1057 1315/2207/1057 +f 1344/2180/723 1345/2187/723 1357/2205/723 +f 1340/2175/723 1341/2181/723 1357/2205/723 +f 1316/2206/6 1313/2910/6 1315/2207/6 +f 1348/2186/724 1330/2224/724 1358/2208/724 +f 1321/2204/725 1356/2911/725 1361/2210/725 +f 1360/2211/705 1336/2213/705 1322/2159/705 +f 1324/2212/1058 1323/2912/1059 1336/2213/1058 +f 1357/2205/727 1362/2913/727 1363/2214/727 +f 1358/2215/1060 1361/2222/1060 1356/2216/1060 +f 1355/2218/1061 1362/2220/1061 1359/2217/1061 +f 1364/2219/6 1363/2232/6 1362/2220/6 +f 1365/2221/1062 1366/2226/1062 1361/2222/1062 +f 1325/2164/730 1365/2914/730 1358/2223/730 +f 1325/2225/731 1324/2915/731 1366/2226/731 +f 1357/2205/732 1348/2186/732 1359/2227/732 +f 1320/2158/733 1317/2904/733 1364/2229/733 +f 1317/2231/734 1316/2916/734 1363/2232/734 +f 1324/2212/735 1360/2211/735 1361/2233/735 +f 1319/2147/1063 1322/2159/1064 1336/2213/1064 +f 1291/2880/3 1282/2009/3 1295/2236/3 +f 1282/2009/3 1281/2917/3 1294/2235/3 +f 1281/2917/3 1283/2918/1065 1294/2235/3 +f 1374/2238/1 1375/2241/1 1376/2239/1 +f 1375/2241/2 1377/2280/2 1378/2242/2 +f 1377/2243/3 1379/2246/3 1380/2244/3 +f 1379/2246/4 1381/2248/4 1382/2247/4 +f 1381/2248/5 1383/2250/5 1384/2249/5 +f 1383/2250/6 1385/2253/6 1386/2251/6 +f 1381/2248/5 1387/2277/5 1388/2252/5 +f 1385/2253/8 1389/2255/8 1390/2254/8 +f 1389/2255/9 1374/2238/9 1373/2240/9 +f 1384/2249/743 1386/2251/743 1391/2256/743 +f 1398/2258/10 1393/2919/10 1394/2259/10 +f 1394/2259/10 1395/2920/10 1396/2260/10 +f 1396/2260/10 1397/2921/10 1398/2258/10 +f 1397/2921/10 1392/2922/10 1398/2258/10 +f 1392/2922/10 1391/2923/10 1398/2258/10 +f 1380/2244/744 1382/2247/744 1397/2261/744 +f 1386/2251/745 1390/2254/745 1398/2263/745 +f 1378/2242/746 1395/2924/746 1394/2265/746 +f 1384/2249/747 1392/2925/747 1397/2266/747 +f 1390/2254/748 1373/2240/748 1393/2267/748 +f 1376/2239/749 1394/2926/749 1393/2269/749 +f 1380/2244/750 1396/2927/750 1395/2270/750 +f 1399/2271/751 1400/2278/751 1401/2272/751 +f 1389/2255/9 1400/2278/9 1399/2271/9 +f 1374/2238/1 1399/2271/1 1403/2274/1 +f 1377/2243/3 1404/2928/3 1405/2275/3 +f 1383/2250/6 1388/2252/6 1406/2276/6 +f 1379/2246/4 1405/2275/4 1387/2277/4 +f 1385/2253/8 1406/2276/8 1400/2278/8 +f 1375/2241/2 1403/2274/2 1404/2279/2 +f 1388/2252/752 1407/2929/752 1408/2281/752 +f 1387/2277/753 1405/2275/753 1409/2282/753 +f 1404/2279/754 1403/2274/754 1411/2284/754 +f 1400/2278/767 1406/2276/767 1408/2286/767 +f 1387/2277/756 1410/2930/756 1407/2288/756 +f 1405/2275/757 1404/2928/757 1412/2289/757 +f 1399/2271/758 1402/2296/758 1411/2291/758 +f 1412/2289/1066 1413/2931/1066 1414/2292/1066 +f 1413/2294/7 1415/2932/7 1418/2295/7 +f 1415/2932/7 1416/2933/7 1418/2295/7 +f 1416/2933/7 1417/2934/7 1418/2295/7 +f 1418/2295/7 1419/2935/7 1420/2936/7 +f 1420/2936/7 1414/2293/7 1418/2295/7 +f 1402/2296/1067 1416/2937/1067 1415/2297/1067 +f 1401/2272/769 1417/2938/769 1416/2298/769 +f 1408/2281/1068 1407/2929/1068 1419/2299/1068 +f 1410/2283/763 1409/2282/763 1414/2301/763 +f 1412/2285/768 1411/2284/768 1415/2303/768 +f 1408/2286/1069 1418/2939/1069 1417/2305/1069 +f 1407/2288/766 1410/2930/766 1420/2306/766 +f 1422/2308/4 1423/2312/4 1424/2309/4 +f 1422/2308/3 1425/2333/3 1426/2311/3 +f 1427/2313/2 1428/2317/2 1426/2314/2 +f 1429/2316/1 1430/2319/1 1428/2317/1 +f 1431/2318/9 1432/2321/9 1430/2319/9 +f 1433/2320/8 1434/2324/8 1432/2321/8 +f 1435/2322/9 1436/2344/9 1430/2319/9 +f 1437/2323/6 1438/2325/6 1434/2324/6 +f 1421/2310/5 1424/2309/5 1438/2325/5 +f 1431/2318/745 1439/2940/745 1440/2326/745 +f 1446/2327/10 1441/2941/10 1442/2328/10 +f 1442/2328/10 1440/2942/10 1439/2329/10 +f 1439/2329/10 1443/2943/10 1446/2327/10 +f 1443/2943/10 1444/2944/10 1446/2327/10 +f 1444/2944/10 1445/2945/10 1446/2327/10 +f 1427/2313/749 1444/2946/749 1443/2330/749 +f 1433/2320/743 1440/2947/743 1442/2331/743 +f 1446/2332/750 1445/2948/750 1425/2333/750 +f 1443/2334/748 1439/2949/748 1431/2318/748 +f 1437/2323/747 1442/2950/747 1441/2335/747 +f 1441/2336/744 1446/2951/744 1422/2308/744 +f 1445/2337/746 1444/2952/746 1427/2313/746 +f 1448/2338/756 1449/2362/756 1450/2339/756 +f 1447/2340/5 1450/2339/5 1438/2325/5 +f 1451/2341/4 1447/2340/4 1424/2309/4 +f 1452/2342/2 1453/2352/2 1426/2314/2 +f 1454/2343/8 1435/2322/8 1432/2321/8 +f 1436/2344/1 1452/2342/1 1428/2317/1 +f 1450/2339/6 1454/2343/6 1434/2324/6 +f 1453/2345/3 1451/2341/3 1423/2312/3 +f 1455/2346/767 1456/2364/767 1435/2322/767 +f 1436/2344/758 1457/2365/758 1458/2347/758 +f 1453/2345/757 1459/2367/757 1460/2348/757 +f 1449/2349/752 1455/2370/752 1454/2343/752 +f 1456/2350/751 1457/2372/751 1436/2344/751 +f 1452/2342/754 1458/2355/754 1459/2351/754 +f 1460/2353/753 1448/2360/753 1447/2340/753 +f 1461/2354/764 1462/2953/764 1459/2351/764 +f 1468/2357/7 1463/2954/7 1464/2358/7 +f 1463/2954/7 1462/2955/7 1464/2358/7 +f 1462/2955/7 1461/2956/7 1464/2358/7 +f 1464/2358/7 1465/2957/7 1466/2958/7 +f 1466/2958/7 1467/2356/7 1464/2358/7 +f 1463/2359/1070 1468/2959/1070 1448/2360/1070 +f 1448/2338/766 1468/2960/766 1467/2361/766 +f 1455/2346/1069 1466/2961/1069 1465/2363/1069 +f 1457/2365/760 1464/2962/760 1461/2366/760 +f 1459/2367/1066 1462/2963/1066 1463/2368/1066 +f 1467/2369/762 1466/2964/762 1455/2370/762 +f 1456/2350/769 1465/2965/769 1464/2371/769 +f 1471/2373/770 1472/2380/770 1470/2374/770 +f 1473/2376/771 1474/2378/771 1471/2373/771 +f 1475/2377/772 1476/2966/772 1474/2378/772 +f 1478/2379/773 1477/2381/773 1470/2374/773 +f 1478/2379/45 1472/2380/45 1471/2373/45 +f 1471/2373/45 1474/2967/45 1476/2968/45 +f 1476/2968/1071 1477/2381/1071 1471/2373/1071 +f 1469/2375/48 1470/2374/48 1477/2969/48 +f 1477/2969/48 1475/2382/48 1469/2375/48 +f 1481/2384/775 1482/2390/775 1480/2385/775 +f 1483/2387/776 1484/2389/776 1481/2384/776 +f 1485/2388/777 1486/2970/777 1484/2389/777 +f 1482/2390/778 1488/2392/778 1487/2391/778 +f 1488/2392/48 1482/2390/48 1481/2384/48 +f 1481/2384/48 1484/2971/48 1486/2972/48 +f 1486/2972/1072 1487/2391/1072 1481/2384/1072 +f 1479/2386/45 1480/2385/45 1487/2973/45 +f 1487/2973/45 1485/2393/45 1479/2386/45 +f 1491/2395/780 1492/2402/780 1490/2396/780 +f 1493/2398/781 1494/2400/781 1491/2395/781 +f 1495/2399/782 1496/2974/782 1494/2400/782 +f 1498/2401/783 1497/2403/783 1490/2396/783 +f 1498/2401/44 1492/2402/44 1491/2395/44 +f 1491/2395/44 1494/2975/44 1496/2976/44 +f 1496/2976/1073 1497/2403/1073 1491/2395/1073 +f 1489/2397/46 1490/2396/46 1497/2977/46 +f 1497/2977/46 1495/2404/46 1489/2397/46 +f 1499/2406/785 1501/2410/785 1502/2407/785 +f 1503/2409/786 1504/2412/786 1501/2410/786 +f 1505/2411/787 1506/2978/787 1504/2412/787 +f 1508/2413/788 1507/2414/788 1500/2408/788 +f 1508/2413/46 1502/2407/46 1501/2410/46 +f 1501/2410/46 1504/2979/46 1506/2980/46 +f 1506/2980/1074 1507/2414/1074 1501/2410/1074 +f 1499/2406/44 1500/2408/44 1507/2981/44 +f 1507/2981/44 1505/2415/44 1499/2406/44 +f 1509/2417/790 1511/2421/790 1512/2418/790 +f 1513/2420/791 1514/2423/791 1511/2421/791 +f 1515/2422/792 1516/2982/792 1514/2423/792 +f 1512/2418/793 1518/2425/793 1517/2424/793 +f 1518/2425/801 1512/2418/801 1511/2421/801 +f 1511/2421/801 1514/2983/801 1516/2984/801 +f 1516/2984/1075 1517/2424/1075 1511/2421/1075 +f 1509/2417/795 1510/2419/795 1517/2985/795 +f 1517/2985/795 1515/2426/795 1509/2417/795 +f 1519/2428/796 1521/2432/796 1522/2429/796 +f 1523/2431/797 1524/2434/797 1521/2432/797 +f 1523/2431/798 1525/2986/798 1526/2433/798 +f 1528/2435/799 1527/2436/799 1520/2430/799 +f 1528/2435/795 1522/2429/795 1521/2432/795 +f 1521/2432/795 1524/2987/795 1526/2988/795 +f 1526/2988/1076 1527/2436/1076 1521/2432/1076 +f 1519/2428/801 1520/2430/801 1527/2989/801 +f 1527/2989/801 1525/2437/801 1519/2428/801 +f 1531/2439/802 1532/2445/802 1530/2440/802 +f 1529/2441/803 1533/2443/803 1534/2442/803 +f 1533/2443/804 1535/2990/804 1536/2444/804 +f 1532/2445/805 1538/2447/805 1537/2446/805 +f 1538/2447/813 1532/2445/813 1531/2439/813 +f 1531/2439/813 1534/2991/813 1536/2992/813 +f 1536/2992/1077 1537/2446/1077 1531/2439/1077 +f 1529/2441/807 1530/2440/807 1537/2993/807 +f 1537/2993/807 1535/2448/807 1529/2441/807 +f 1541/2450/808 1542/2457/808 1540/2451/808 +f 1539/2452/809 1543/2454/809 1544/2453/809 +f 1543/2454/810 1545/2994/810 1546/2455/810 +f 1548/2456/811 1547/2458/811 1540/2451/811 +f 1548/2456/807 1542/2457/807 1541/2450/807 +f 1541/2450/807 1544/2995/807 1546/2996/807 +f 1546/2996/1078 1547/2458/1078 1541/2450/1078 +f 1539/2452/813 1540/2451/813 1547/2997/813 +f 1547/2997/813 1545/2459/813 1539/2452/813 diff --git a/src/main/resources/assets/hbm/models/weapons/congolake.obj b/src/main/resources/assets/hbm/models/weapons/congolake.obj new file mode 100644 index 000000000..77e57c3d1 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/congolake.obj @@ -0,0 +1,4160 @@ +# Blender 4.0.1 +# www.blender.org +o Gun +v 0.000000 2.012847 0.929753 +v 0.000000 2.012847 1.070247 +v 0.183294 1.927366 1.070247 +v 0.183618 1.926461 0.929220 +v 0.259217 1.720997 1.070247 +v 0.257984 1.718743 0.928515 +v 0.259047 1.606972 1.070247 +v 0.257604 1.541884 0.928170 +v -0.208956 0.866083 0.913514 +v -0.144446 0.864949 1.065059 +v -0.258151 1.005157 1.070247 +v -0.257451 1.005115 0.928270 +v -0.183294 1.927366 1.070247 +v -0.259216 1.720997 1.070247 +v -0.259043 1.604334 1.070247 +v -0.258413 1.181274 1.070247 +v -0.257166 1.181723 0.927804 +v -0.257983 1.718743 0.928515 +v -0.183294 1.927366 0.929753 +v 0.257451 1.005115 0.928270 +v 0.258152 1.005157 1.070247 +v 0.144446 0.864949 1.065059 +v 0.208957 0.866083 0.913514 +v -0.257983 1.718743 -0.730968 +v -0.183294 1.927366 -0.725578 +v 0.257356 1.541884 -0.031674 +v 0.257984 1.718742 -0.031674 +v 0.213936 1.724480 -0.012808 +v 0.213408 1.585937 -0.012808 +v 0.183294 1.927366 -0.031674 +v 0.151081 1.887906 -0.012808 +v 0.000000 2.012848 -0.725578 +v 0.000000 2.012847 -0.031673 +v -0.257237 1.370989 0.927836 +v -0.256750 1.371195 -0.736357 +v 0.187757 1.476302 -0.792273 +v 0.187757 1.335660 -0.792273 +v 0.146203 1.348426 -1.160494 +v 0.146203 1.506278 -1.160494 +v 0.256751 1.371195 -0.736357 +v 0.257984 1.718742 -0.730968 +v 0.257238 1.371176 0.927836 +v 0.257167 1.182080 0.927804 +v 0.256751 1.182173 -0.736357 +v -0.145153 1.919827 -0.781493 +v -0.201659 1.715739 -0.786883 +v -0.159904 1.695958 -1.155104 +v -0.115487 1.870179 -1.149714 +v -0.061328 1.229217 -0.792273 +v -0.200726 1.335660 -0.792273 +v -0.159171 1.348426 -1.160494 +v -0.060785 1.241984 -1.160494 +v -0.061222 1.231706 -0.864069 +v -0.256750 1.182173 -0.736357 +v 0.256751 0.956724 -0.734144 +v 0.256751 0.856270 -0.117823 +v -0.256750 0.856270 -0.117823 +v -0.256750 0.956724 -0.734144 +v -0.062749 0.957195 -0.735251 +v 0.051362 0.957195 -0.735251 +v 0.256751 0.867043 0.903277 +v -0.256750 0.867043 0.903277 +v 0.258415 1.181988 1.070247 +v 0.258696 1.371157 1.070247 +v -0.258695 1.370783 1.070247 +v 0.183294 1.927366 -0.725578 +v -0.003170 1.954868 0.910839 +v 0.151354 1.887197 0.910326 +v 0.213936 1.724480 0.909649 +v -0.003170 1.954868 -0.012807 +v 0.213616 1.585937 0.909317 +v -0.159171 1.506278 -1.160494 +v -0.159904 1.390979 -1.676333 +v -0.159171 1.268371 -1.681723 +v 0.146203 1.146998 -1.681723 +v 0.146203 1.268371 -1.681723 +v -0.115487 1.524939 -1.670943 +v -0.200726 1.476302 -0.792273 +v -0.006484 2.003450 -0.781493 +v -0.006484 1.941564 -1.149714 +v 0.132185 1.919827 -0.781493 +v 0.102519 1.870179 -1.149714 +v 0.188690 1.715739 -0.786883 +v 0.146936 1.695958 -1.155104 +v -0.159904 1.204788 -1.982580 +v -0.115487 1.394869 -1.977190 +v -0.049574 1.040555 -1.681723 +v -0.159171 1.146998 -1.681723 +v -0.159171 0.816467 -1.987970 +v -0.049574 0.710024 -1.987970 +v 0.146936 1.390979 -1.676333 +v 0.102519 1.524939 -1.670943 +v 0.102519 1.394869 -1.977190 +v 0.146936 1.204788 -1.982580 +v -0.006484 1.579827 -1.670943 +v 0.102519 1.539839 -2.297575 +v 0.146936 1.349759 -2.302965 +v 0.146203 0.988688 -1.987970 +v 0.146203 1.133659 -2.308354 +v -0.006484 1.472752 -1.977190 +v -0.006484 1.617722 -2.297575 +v 0.146203 0.816467 -1.987970 +v -0.159171 0.988688 -1.987970 +v -0.159171 0.961438 -2.308354 +v -0.159171 1.133659 -2.308354 +v -0.159171 0.787673 -4.057262 +v -0.159171 0.502792 -4.057262 +v -0.115487 1.539839 -2.297575 +v -0.115487 1.525341 -4.046483 +v -0.006484 1.654172 -4.046483 +v -0.159904 1.349759 -2.302965 +v -0.159904 1.210917 -4.051873 +v -0.049574 0.854995 -2.308354 +v 0.146203 0.961438 -2.308354 +v -0.159904 1.210283 -4.199338 +v -0.159171 0.787039 -4.204728 +v 0.146203 0.787673 -4.057262 +v 0.146203 0.502792 -4.057262 +v 0.146203 0.502158 -4.204728 +v 0.146203 0.787039 -4.204728 +v -0.115487 1.524706 -4.193949 +v 0.102519 1.525341 -4.046483 +v 0.146936 1.210917 -4.051873 +v -0.049574 0.396350 -4.057262 +v -0.083889 1.075730 -0.736357 +v 0.146936 1.210283 -4.199338 +v 0.102519 1.524706 -4.193949 +v 0.036802 0.395715 -4.204728 +v -0.006484 1.653537 -4.193949 +v -0.159171 0.502158 -4.204728 +v -0.049574 0.395715 -4.204728 +v 0.036802 0.396350 -4.057262 +v 0.071739 1.075730 -0.736357 +v 0.048556 1.229217 -0.792273 +v 0.048450 1.231706 -0.864069 +v 0.048450 0.960438 -0.864069 +v -0.061222 0.960438 -0.864069 +v 0.036802 0.854995 -2.308354 +v 0.036802 0.710024 -1.987970 +v 0.048013 1.241984 -1.160494 +v 0.036802 1.040555 -1.681723 +v 0.048556 0.958818 -0.792273 +v 0.048556 0.889021 -0.793779 +v 0.048450 0.890640 -0.865575 +v -0.061222 0.890640 -0.865575 +v -0.061328 0.958818 -0.792273 +v 0.050594 0.887869 -0.737864 +v -0.062623 0.887869 -0.737864 +v -0.062623 0.859409 -0.738478 +v 0.050594 0.859409 -0.738478 +v 0.048556 0.860561 -0.794393 +v -0.061328 0.889021 -0.793779 +v -0.061328 0.860561 -0.794393 +v -0.061222 0.862180 -0.866189 +v 0.048450 0.862180 -0.866189 +v 0.048450 0.897640 -1.189937 +v -0.061222 0.897640 -1.189937 +v -0.061222 0.869180 -1.190551 +v -0.061222 0.909566 -1.231055 +v -0.061222 0.883039 -1.241383 +v 0.048450 0.869180 -1.190551 +v 0.048450 0.909566 -1.231055 +v 0.048450 0.883039 -1.241383 +v 0.048450 0.923721 -1.286653 +v 0.048450 0.939453 -1.262928 +v -0.061222 0.923721 -1.286653 +v -0.061222 0.939453 -1.262928 +v -0.061222 0.990369 -1.269143 +v -0.061222 0.991506 -1.297587 +v 0.048450 0.990369 -1.269143 +v 0.048450 0.991506 -1.297587 +v -0.027604 1.183662 -1.022258 +v -0.027604 1.241078 -1.015614 +v -0.027604 1.241078 -1.073029 +v -0.027604 1.183662 -1.079673 +v 0.014636 1.241078 -1.073029 +v 0.014636 1.183662 -1.079673 +v 0.014636 1.241078 -1.015614 +v 0.014636 1.183662 -1.022258 +v 0.014636 1.135947 -1.081794 +v -0.027604 1.135947 -1.081794 +v 0.014636 1.135947 -1.031008 +v -0.027604 1.135947 -1.031008 +v -0.027604 1.073735 -1.037243 +v 0.014636 1.073735 -1.037243 +v 0.014636 1.073735 -1.077975 +v 0.014636 1.020584 -1.027559 +v 0.014636 1.020584 -1.064708 +v -0.027604 1.073735 -1.077975 +v 0.008448 0.973270 -0.999595 +v 0.008448 0.955554 -1.018985 +v -0.027604 1.020584 -1.064708 +v -0.027604 1.020584 -1.027559 +v -0.021416 0.973270 -0.999595 +v -0.014341 0.956268 -0.989678 +v 0.001372 0.956268 -0.989678 +v -0.021416 0.955554 -1.018985 +v -0.014341 0.946947 -0.999880 +v 0.001372 0.946947 -0.999880 +v -0.259043 1.604334 1.840350 +v 0.259047 1.606972 1.840350 +v -0.259043 1.604334 2.018898 +v 0.259047 1.606972 2.018898 +v 0.259030 1.580560 1.803183 +v 0.259030 1.580560 1.107413 +v -0.258712 1.397895 1.107085 +v -0.259026 1.580701 1.107085 +v 0.258696 1.371157 1.840350 +v -0.258695 1.370783 1.840350 +v -0.258695 1.370783 2.018898 +v 0.258696 1.371157 2.018898 +v 0.258713 1.397570 1.803183 +v 0.258713 1.397570 1.107413 +v 0.220014 1.397694 1.107413 +v 0.220014 1.397694 1.803183 +v -0.259026 1.580701 1.803511 +v -0.221491 1.580821 1.107085 +v -0.221491 1.580821 1.803511 +v -0.258712 1.397895 1.803511 +v -0.221177 1.398014 1.107085 +v -0.221177 1.398014 1.803511 +v 0.220331 1.580684 1.107413 +v 0.220331 1.580684 1.803183 +v 0.268254 1.513106 -0.078803 +v 0.268254 0.963807 -0.078803 +v 0.268254 0.963807 -0.628102 +v 0.268254 1.513106 -0.628102 +v 0.121073 1.490289 3.430747 +v 0.326188 1.490289 3.430747 +v 0.326188 1.452264 3.446498 +v 0.121073 1.452264 3.446498 +v 0.326188 1.436513 3.484523 +v 0.121073 1.436513 3.484523 +v 0.326188 1.452264 3.522549 +v 0.121073 1.452264 3.522549 +v 0.326188 1.490289 3.538300 +v 0.121073 1.490289 3.538300 +v 0.326188 1.528315 3.522549 +v 0.121073 1.528315 3.522549 +v 0.326188 1.544065 3.484523 +v 0.121073 1.544065 3.484523 +v 0.326188 1.528315 3.446498 +v 0.121073 1.528315 3.446498 +v 0.000000 1.983355 0.962615 +v 0.156272 1.918625 0.962615 +v 0.221002 1.762353 0.962615 +v 0.156272 1.606081 0.962615 +v 0.000000 1.541351 0.962615 +v -0.156272 1.606081 0.962615 +v -0.221002 1.762353 0.962615 +v 0.000000 1.541351 3.018507 +v 0.156272 1.606081 3.018507 +v 0.156272 1.606081 3.391006 +v 0.000000 1.541351 3.391006 +v -0.156272 1.918625 0.962615 +v 0.156272 1.918625 3.391006 +v 0.000000 1.983355 3.391006 +v 0.000000 2.025926 3.417953 +v 0.186374 1.948727 3.417953 +v -0.156272 1.918625 3.018507 +v -0.221002 1.762353 3.018507 +v -0.221002 1.762353 3.391006 +v -0.156272 1.918625 3.391006 +v 0.221002 1.762353 3.018507 +v 0.156272 1.918625 3.018507 +v 0.221002 1.762353 3.391006 +v -0.156272 1.606081 3.018507 +v -0.156272 1.606081 3.391006 +v 0.000000 1.983355 3.018507 +v -0.186374 1.948727 3.417953 +v -0.263573 1.762353 3.417953 +v -0.263573 1.762353 3.553212 +v -0.186374 1.948727 3.553212 +v -0.186374 1.575979 3.417953 +v 0.186374 1.575979 3.417953 +v 0.000000 1.495447 3.414135 +v 0.263573 1.762353 3.417953 +v 0.263573 1.762353 3.553212 +v 0.186374 1.948727 3.553212 +v 0.156272 1.918625 3.580159 +v 0.221002 1.762353 3.580159 +v 0.000000 1.495447 3.558366 +v -0.186374 1.575979 3.553212 +v 0.186374 1.575979 3.553212 +v 0.000000 2.025926 3.553212 +v 0.000000 1.983355 3.580159 +v -0.156272 1.918625 3.580159 +v -0.156272 1.918625 4.205390 +v 0.000000 1.983355 4.205390 +v -0.221002 1.762353 3.580159 +v 0.000000 1.541351 3.580159 +v -0.156272 1.606081 3.580159 +v 0.156272 1.606081 3.580159 +v 0.000000 2.017086 4.028187 +v 0.136534 1.975546 4.028187 +v 0.126058 1.959349 4.031190 +v -0.156272 1.606081 4.205390 +v 0.000000 1.541351 4.205390 +v 0.000000 1.568728 4.205390 +v -0.136914 1.625439 4.205390 +v -0.221002 1.762353 4.205390 +v 0.156272 1.606081 4.205390 +v 0.156272 1.918625 4.205390 +v 0.221002 1.762353 4.205390 +v -0.136914 1.899267 4.205390 +v -0.193625 1.762353 4.205390 +v -0.193625 1.762353 3.654342 +v -0.136914 1.899267 3.654342 +v 0.193625 1.762353 4.205390 +v 0.136914 1.625439 4.205390 +v 0.000000 1.955978 4.205390 +v 0.136914 1.899267 4.205390 +v -0.136914 1.625439 3.654342 +v 0.000000 1.568728 3.654342 +v 0.136914 1.625439 3.654342 +v 0.193625 1.762353 3.654342 +v 0.136914 1.899267 3.654342 +v 0.000000 1.955978 3.654342 +v -0.156124 1.365909 0.961108 +v 0.000000 1.430577 0.961108 +v 0.156124 1.365909 0.961108 +v 0.220792 1.209785 0.961108 +v 0.156124 1.053662 0.961108 +v 0.000000 0.988993 0.961108 +v -0.156124 1.053662 0.961108 +v -0.220792 1.209785 0.961108 +v 0.000000 1.430367 3.383215 +v -0.155975 1.365760 3.383215 +v -0.199637 1.409422 3.410316 +v -0.220582 1.209785 3.383215 +v 0.155975 1.365760 3.383215 +v 0.199637 1.409422 3.410316 +v 0.155975 1.053810 3.383215 +v 0.220582 1.209785 3.383215 +v 0.282329 1.209785 3.410316 +v 0.199637 1.010148 3.410316 +v 0.000000 0.989203 3.383215 +v 0.000000 0.927456 3.410316 +v -0.155975 1.053810 3.383215 +v -0.199637 1.010148 3.410316 +v -0.282329 1.209785 3.410316 +v -0.199637 1.010148 3.563519 +v -0.282329 1.209785 3.563519 +v -0.199637 1.409422 3.563519 +v 0.199637 1.010148 3.563519 +v 0.000000 0.927456 3.563519 +v 0.199637 1.409422 3.563519 +v 0.282329 1.209785 3.563519 +v 0.157156 1.052629 3.583857 +v 0.000000 0.987533 3.583857 +v 0.157156 1.366942 3.583857 +v 0.222253 1.209785 3.583857 +v -0.222253 1.209785 3.583857 +v -0.157156 1.366942 3.583857 +v -0.157156 1.052629 3.583857 +v 0.000000 1.432038 3.583857 +v 0.000000 1.432038 4.108382 +v 0.157156 1.366942 4.108382 +v -0.222253 1.209785 4.108382 +v -0.157156 1.052629 4.108382 +v -0.170965 1.038821 4.118903 +v -0.241780 1.209785 4.118903 +v 0.222253 1.209785 4.108382 +v 0.157156 1.052629 4.108382 +v 0.000000 0.987533 4.108382 +v -0.157156 1.366942 4.108382 +v -0.170965 1.380750 4.118903 +v -0.241780 1.209785 4.156476 +v -0.170965 1.380750 4.156476 +v 0.000000 0.968005 4.118903 +v 0.000000 1.451566 4.118903 +v 0.170965 1.380750 4.118903 +v 0.241780 1.209785 4.118903 +v 0.170965 1.038821 4.118903 +v 0.170965 1.038821 4.156476 +v 0.241780 1.209785 4.156476 +v 0.208075 1.209785 4.165493 +v 0.147131 1.062654 4.165493 +v -0.170965 1.038821 4.156476 +v 0.000000 0.968005 4.156476 +v 0.000000 1.451566 4.156476 +v 0.170965 1.380750 4.156476 +v -0.147131 1.356917 4.165493 +v -0.208075 1.209785 4.165493 +v -0.147131 1.062654 4.165493 +v 0.000000 1.001710 4.165493 +v 0.147131 1.356917 4.165493 +v 0.000000 1.417861 4.165493 +v 0.000000 1.994179 4.031190 +v -0.136534 1.975546 4.028187 +v -0.126058 1.959349 4.031190 +v -0.156272 1.606081 2.843204 +v -0.221002 1.762353 2.843204 +v -0.239682 1.762353 3.000497 +v -0.169481 1.592872 3.000497 +v 0.221002 1.762353 2.843204 +v 0.156272 1.606081 2.843204 +v 0.169481 1.592872 3.000497 +v 0.239682 1.762353 3.000497 +v 0.000000 1.983355 2.843204 +v 0.156272 1.918625 2.843204 +v 0.167155 1.934229 3.000244 +v 0.000569 2.004398 3.000244 +v -0.156272 1.918625 2.843204 +v -0.167155 1.934229 3.000244 +v 0.000000 1.541351 2.843204 +v 0.000000 1.522671 3.000497 +v 0.169481 1.592872 2.860280 +v 0.000000 1.522671 2.860280 +v -0.239682 1.762353 2.860280 +v -0.167155 1.934229 2.865422 +v 0.167155 1.934229 2.865422 +v 0.239682 1.762353 2.860280 +v -0.169481 1.592872 2.860280 +v 0.000569 2.004398 2.865422 +v -0.128183 2.091560 2.999992 +v -0.128183 2.091560 2.870565 +v -0.000564 2.091560 2.870565 +v 0.128183 2.091560 2.870565 +v 0.128183 2.091560 2.999992 +v -0.000758 2.091560 2.999992 +v -0.128183 2.117034 2.999992 +v -0.000758 2.117034 2.999992 +v -0.000564 2.117035 2.870565 +v -0.128183 2.117035 2.870565 +v 0.128183 2.117034 2.999992 +v 0.128183 2.117035 2.870565 +v -0.101627 1.929570 4.174595 +v -0.101627 2.046870 4.174595 +v -0.101627 2.046870 4.045168 +v -0.101627 1.929570 4.045168 +v -0.060619 2.046870 4.045168 +v 0.001267 2.046870 4.045168 +v 0.001138 1.971165 4.045168 +v 0.101627 1.929570 4.045168 +v 0.101627 2.046870 4.045168 +v 0.101627 2.046870 4.174595 +v 0.101627 1.929570 4.174595 +v 0.056925 2.046870 4.174595 +v 0.001287 2.046870 4.174595 +v 0.001138 1.971165 4.174595 +v 0.056926 2.046870 4.045168 +v 0.056926 2.055243 4.045168 +v 0.101627 2.083730 4.045168 +v -0.060365 2.046870 4.174595 +v -0.060365 2.055243 4.174595 +v -0.101627 2.083730 4.174595 +v -0.101627 2.083730 4.045168 +v 0.101627 2.083730 4.174595 +v -0.060365 2.065117 4.148927 +v -0.060365 2.065117 4.070836 +v -0.075271 2.144081 4.070836 +v -0.075271 2.144081 4.148927 +v 0.074745 2.144397 4.070836 +v 0.056926 2.065117 4.070836 +v 0.056926 2.065117 4.148927 +v 0.074745 2.144397 4.148927 +v -0.098636 2.129495 4.154779 +v -0.098636 2.129495 4.064983 +v 0.098636 2.129495 4.064983 +v 0.098636 2.129495 4.154779 +v -0.060365 2.055243 4.045168 +v 0.056926 2.055243 4.174595 +v -0.059365 1.189290 -1.312787 +v -0.059465 1.198896 -1.284075 +v 0.046693 1.198896 -1.284075 +v 0.046593 1.189290 -1.312787 +v 0.216088 0.856270 -0.070880 +v 0.209065 0.960517 0.969733 +v -0.173324 1.890359 0.910839 +v -0.173324 1.890359 -0.012807 +v -0.217367 1.720794 0.910839 +v -0.217367 1.720794 -0.012807 +v -0.217367 1.599757 0.910839 +v -0.217367 1.599756 -0.012807 +v -0.003063 1.954934 0.967058 +v -0.216087 0.856270 -0.070880 +v 0.214043 1.724547 0.965868 +v -0.005693 0.957195 -0.735251 +v 0.151461 1.887264 0.966545 +v -0.208849 0.960517 0.969733 +v 0.213723 1.586004 0.965536 +v -0.173216 1.890425 0.967058 +v -0.217260 1.720861 0.967058 +v -0.217260 1.599823 0.967058 +v -0.262079 1.644726 0.500033 +v -0.262079 1.095427 0.500033 +v -0.262079 1.095427 -0.049266 +v -0.262079 1.644726 -0.049266 +vn 0.4257 0.9049 -0.0048 +vn 0.9414 0.3371 -0.0136 +vn 1.0000 -0.0021 -0.0092 +vn 0.9999 -0.0056 -0.0127 +vn -0.8659 -0.3409 0.3661 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 0.0049 -0.0080 +vn -1.0000 0.0016 -0.0087 +vn -0.9414 0.3371 -0.0136 +vn -0.9415 0.3368 -0.0109 +vn -0.4227 0.9063 -0.0000 +vn 0.8659 -0.3409 0.3661 +vn -0.9415 0.3371 -0.0000 +vn -0.9406 0.3395 0.0004 +vn 0.3933 -0.0014 0.9194 +vn 0.3737 0.1338 0.9179 +vn -1.0000 -0.0035 -0.0003 +vn 0.9937 -0.0000 -0.1121 +vn 1.0000 -0.0035 -0.0000 +vn 1.0000 -0.0000 -0.0003 +vn -0.9568 0.2679 -0.1132 +vn -0.7341 -0.6786 -0.0246 +vn -1.0000 -0.0004 -0.0003 +vn -0.0014 -0.9870 -0.1609 +vn 1.0000 -0.0079 -0.0019 +vn 1.0000 -0.0051 0.0001 +vn -1.0000 -0.0051 0.0001 +vn -1.0000 -0.0079 -0.0019 +vn 0.2096 -0.1752 0.9620 +vn -0.0000 -1.0000 -0.0075 +vn 1.0000 0.0016 -0.0088 +vn 1.0000 0.0048 -0.0080 +vn 0.9999 -0.0004 -0.0153 +vn 0.9999 -0.0004 -0.0102 +vn -0.9999 -0.0004 -0.0102 +vn -0.9999 -0.0004 -0.0153 +vn -1.0000 -0.0021 -0.0092 +vn -0.9999 -0.0069 -0.0104 +vn -0.9999 -0.0046 -0.0096 +vn -0.2096 -0.1752 0.9620 +vn 0.4227 0.9063 -0.0000 +vn 0.1385 0.3003 -0.9437 +vn 0.9415 0.3371 -0.0000 +vn 0.9985 -0.0546 -0.0000 +vn 0.3719 0.1363 -0.9182 +vn 0.7077 0.7065 -0.0002 +vn 0.1397 0.2995 0.9438 +vn 0.3939 0.0013 -0.9192 +vn -1.0000 -0.0066 0.0006 +vn -1.0000 -0.0061 0.0028 +vn -1.0000 -0.0049 0.0040 +vn 1.0000 -0.0000 -0.0000 +vn 1.0000 0.0007 0.0027 +vn 1.0000 -0.0015 -0.0022 +vn -0.9546 0.2485 -0.1646 +vn -0.9937 -0.0007 -0.1122 +vn -0.5111 0.8476 -0.1425 +vn 0.5111 0.8476 -0.1425 +vn 0.9568 0.2679 -0.1132 +vn -0.9937 -0.0000 -0.1121 +vn 0.9936 -0.0013 -0.1126 +vn -0.9389 0.3167 -0.1345 +vn -0.5509 -0.5672 0.6122 +vn 0.9389 0.3167 -0.1345 +vn -0.4738 0.7235 -0.5021 +vn -1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0023 0.0014 +vn 0.4738 0.7235 -0.5021 +vn 1.0000 -0.0012 0.0016 +vn 1.0000 -0.0039 0.0023 +vn 0.9546 0.2485 -0.1646 +vn -0.6739 -0.6939 0.2537 +vn 0.9694 0.2237 0.1012 +vn 1.0000 -0.0034 -0.0015 +vn 1.0000 -0.0019 -0.0014 +vn 0.5456 0.7635 0.3455 +vn 1.0000 0.0015 0.0024 +vn 1.0000 -0.0022 -0.0015 +vn -1.0000 -0.0045 0.0005 +vn -1.0000 -0.0035 0.0032 +vn -1.0000 -0.0007 0.0039 +vn -0.4293 0.8526 -0.2981 +vn -1.0000 -0.0004 0.0028 +vn 0.4293 0.8526 -0.2981 +vn 1.0000 -0.0037 0.0023 +vn 1.0000 -0.0061 0.0037 +vn -0.5813 0.8136 -0.0067 +vn -1.0000 -0.0019 -0.0013 +vn -1.0000 -0.0017 0.0003 +vn -0.6627 -0.6823 -0.3087 +vn -0.9694 0.2237 0.1012 +vn -0.9694 0.2236 0.1015 +vn 1.0000 0.0006 -0.0028 +vn 1.0000 -0.0008 0.0014 +vn -1.0000 -0.0034 -0.0015 +vn -1.0000 -0.0018 -0.0031 +vn -0.5456 0.7635 0.3455 +vn -1.0000 -0.0024 -0.0012 +vn -1.0000 -0.0017 -0.0000 +vn -0.9902 0.1399 -0.0006 +vn 0.5813 0.8136 -0.0067 +vn 1.0000 -0.0032 -0.0014 +vn 1.0000 -0.0034 0.0003 +vn 0.9737 0.2278 -0.0022 +vn 0.9738 0.2276 -0.0019 +vn -0.6847 -0.7050 0.1849 +vn -0.9738 0.2276 -0.0019 +vn 1.0000 -0.0016 -0.0001 +vn 0.6275 0.0151 -0.7785 +vn 0.6330 0.0176 -0.7740 +vn -0.7019 0.0021 -0.7122 +vn -0.7064 -0.0000 -0.7078 +vn 0.6040 0.2359 -0.7612 +vn 0.3767 0.8078 -0.4533 +vn -0.3910 0.8384 -0.3798 +vn -0.7142 0.0083 -0.6999 +vn -0.7143 0.0016 -0.6998 +vn -0.7176 0.0128 -0.6964 +vn -0.1915 -0.3110 -0.9309 +vn -0.6735 0.2590 -0.6923 +vn 0.6296 0.0075 -0.7769 +vn 0.6296 -0.0000 -0.7769 +vn 0.6254 -0.0051 -0.7803 +vn -0.7634 0.6459 -0.0028 +vn 0.7634 0.6459 -0.0028 +vn 1.0000 -0.0017 -0.0000 +vn 0.9902 0.1399 -0.0006 +vn -0.6967 -0.7174 0.0031 +vn 0.6973 -0.7167 0.0031 +vn -0.0000 -1.0000 0.0043 +vn 0.1962 -0.2566 -0.9464 +vn -0.0000 -0.0000 -1.0000 +vn 0.6853 -0.7044 0.1847 +vn -0.0000 -0.9673 0.2537 +vn 0.6633 -0.6818 -0.3085 +vn -0.0000 -0.9111 -0.4123 +vn 0.7110 -0.6559 0.2535 +vn 0.9999 0.0128 -0.0066 +vn 0.9999 0.0080 -0.0062 +vn 0.5516 -0.5669 0.6119 +vn -0.0000 -0.6796 0.7335 +vn 0.7348 -0.6778 -0.0246 +vn 0.9238 -0.0000 -0.3830 +vn 0.0056 -0.0098 -0.9999 +vn -0.0000 -0.9869 -0.1613 +vn -0.9239 0.3827 -0.0000 +vn 1.0000 -0.0000 -0.0015 +vn -0.0000 0.0216 -0.9998 +vn -0.9840 -0.1758 -0.0295 +vn -1.0000 -0.0000 -0.0015 +vn -0.0000 -0.0216 0.9998 +vn 0.9993 0.0008 -0.0364 +vn -0.0000 -0.0377 0.9993 +vn -0.9997 -0.0009 -0.0249 +vn -0.0057 -0.0103 -0.9999 +vn -0.0000 -0.9998 -0.0206 +vn -0.0000 -0.9997 -0.0225 +vn -0.9997 0.0005 -0.0231 +vn -0.0000 0.9998 0.0216 +vn -0.0000 -0.9998 -0.0216 +vn -0.0000 0.9604 0.2786 +vn -0.0000 -0.9648 -0.2630 +vn -1.0000 -0.0047 0.0009 +vn -0.0000 -0.7438 -0.6684 +vn -0.0000 0.7295 0.6840 +vn -0.0000 0.1212 0.9926 +vn 1.0000 -0.0039 0.0029 +vn 1.0000 -0.0005 -0.0048 +vn -0.0000 -0.1592 -0.9872 +vn -0.0000 -0.0766 -0.9971 +vn -0.0000 0.0714 0.9974 +vn -0.9999 0.0080 -0.0062 +vn -0.9999 0.0128 -0.0066 +vn -0.0000 0.1149 -0.9934 +vn -0.0000 -0.1149 0.9934 +vn -0.0000 0.0444 -0.9990 +vn -0.0000 -0.0997 0.9950 +vn -0.0000 -0.1804 0.9836 +vn -0.0000 -0.0613 -0.9981 +vn 0.9955 -0.0947 -0.0000 +vn -0.0000 0.1792 0.9838 +vn -0.0000 -0.2422 -0.9702 +vn 0.0008 0.5015 0.8652 +vn -0.0000 0.5038 0.8638 +vn 0.0005 0.5013 0.8653 +vn -0.9934 -0.0844 0.0771 +vn -0.0000 0.5088 0.8609 +vn 0.0025 0.5075 0.8616 +vn -0.0026 0.5077 0.8615 +vn -0.0000 -0.5752 -0.8180 +vn -0.0000 -0.7383 0.6745 +vn -0.0000 -0.9117 -0.4108 +vn 0.9385 -0.2548 0.2328 +vn -0.9386 -0.2548 0.2328 +vn -0.0000 -0.9994 -0.0347 +vn -0.0051 1.0000 -0.0000 +vn -0.0000 -0.0370 0.9993 +vn 0.9999 -0.0021 -0.0102 +vn 0.9999 0.0018 -0.0135 +vn -1.0000 -0.0035 -0.0069 +vn -0.9999 0.0001 -0.0134 +vn -1.0000 -0.0015 -0.0087 +vn 1.0000 0.0010 0.0047 +vn 1.0000 -0.0006 -0.0000 +vn -1.0000 -0.0027 0.0042 +vn -1.0000 -0.0017 -0.0006 +vn 0.0007 -1.0000 -0.0000 +vn -1.0000 -0.0015 -0.0000 +vn 1.0000 -0.0015 -0.0000 +vn 0.0032 1.0000 -0.0000 +vn 1.0000 -0.0056 0.0033 +vn 1.0000 -0.0015 0.0006 +vn 1.0000 0.0015 0.0047 +vn 1.0000 -0.0017 0.0008 +vn 1.0000 -0.0006 0.0051 +vn 0.0032 -1.0000 -0.0000 +vn -1.0000 0.0013 0.0045 +vn -1.0000 -0.0007 -0.0000 +vn -1.0000 -0.0006 0.0003 +vn -1.0000 -0.0015 -0.0006 +vn -1.0000 -0.0004 0.0051 +vn -1.0000 -0.0006 -0.0000 +vn -0.0032 1.0000 -0.0000 +vn -0.0032 -1.0000 -0.0000 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 -0.9239 -0.3827 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.3827 0.9239 +vn -0.0000 0.3827 0.9239 +vn -0.0000 0.9239 0.3827 +vn -0.0000 0.9239 -0.3827 +vn -0.0000 0.3827 -0.9239 +vn 0.9239 -0.3827 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.2163 0.5222 -0.8249 +vn -0.2163 0.5222 -0.8250 +vn -0.5222 -0.2163 -0.8249 +vn 0.2081 -0.4401 -0.8735 +vn 0.5222 0.2163 -0.8249 +vn -0.5222 0.2163 -0.8249 +vn -0.2163 -0.5222 -0.8249 +vn 0.5222 -0.2163 -0.8249 +vn 0.5222 0.2163 0.8249 +vn -0.5222 0.2163 0.8249 +vn -0.2163 -0.5222 0.8250 +vn 0.5222 -0.2163 0.8249 +vn 0.3827 0.9238 -0.0120 +vn 0.8438 -0.5265 0.1041 +vn -0.5222 -0.2163 0.8249 +vn 0.2058 -0.4197 0.8840 +vn -0.1653 0.4232 -0.8908 +vn -0.9239 0.3827 0.0001 +vn 0.1642 0.3964 -0.9033 +vn 0.3964 -0.1642 -0.9033 +vn 0.1642 -0.3964 -0.9033 +vn 0.3964 0.1642 -0.9033 +vn -0.3964 -0.1642 -0.9033 +vn -0.1642 -0.3964 -0.9033 +vn -0.3827 0.9239 0.0001 +vn 0.9239 0.3827 0.0001 +vn -0.3827 -0.9239 0.0001 +vn 0.3827 0.9239 0.0001 +vn 0.9239 -0.3827 0.0001 +vn -0.9239 -0.3827 0.0001 +vn -0.3964 0.1642 -0.9033 +vn 0.3827 -0.9239 0.0001 +vn 0.1317 -0.3179 0.9389 +vn 0.3179 0.1317 0.9389 +vn -0.3179 0.1317 0.9389 +vn -0.3179 -0.1317 0.9389 +vn -0.1317 -0.3179 0.9389 +vn -0.1355 0.3696 0.9193 +vn 0.1317 0.3179 0.9389 +vn 0.3179 -0.1317 0.9390 +vn -0.4654 -0.1928 -0.8638 +vn -0.1928 -0.4654 -0.8638 +vn -0.1928 0.4654 -0.8638 +vn 0.1928 0.4654 -0.8638 +vn 0.4654 -0.1928 -0.8639 +vn 0.1928 -0.4654 -0.8638 +vn 0.4654 0.1928 -0.8638 +vn -0.4654 0.1928 -0.8639 +vn 0.2570 -0.1064 0.9605 +vn 0.1064 -0.2570 0.9605 +vn 0.2570 0.1064 0.9605 +vn -0.2570 0.1064 0.9605 +vn -0.2570 -0.1064 0.9605 +vn -0.1064 -0.2570 0.9605 +vn -0.1064 0.2570 0.9605 +vn 0.1064 0.2570 0.9605 +vn 0.9968 0.0794 -0.0000 +vn -0.9968 0.0794 -0.0000 +vn -0.0007 0.0459 -0.9989 +vn -0.0009 0.0618 0.9981 +vn 0.0009 0.0618 0.9981 +vn 0.0006 0.0459 -0.9989 +vn 0.0465 0.1530 0.9871 +vn -0.0359 0.1299 0.9909 +vn -0.2910 0.9565 0.0178 +vn -0.7522 -0.6487 0.1156 +vn -0.2663 -0.9636 0.0231 +vn 0.3820 -0.9223 0.0577 +vn -0.6671 -0.2763 0.6919 +vn 0.6671 -0.2763 0.6919 +vn 0.2683 0.6476 0.7132 +vn -0.2660 0.6359 0.7244 +vn -0.2763 -0.6671 0.6919 +vn 0.6671 0.2763 0.6919 +vn -0.6907 0.2924 0.6614 +vn 0.2763 -0.6671 0.6919 +vn 0.2692 -0.6498 -0.7109 +vn -0.7364 0.3285 -0.5914 +vn -0.9213 0.3888 -0.0000 +vn 0.6498 0.2692 -0.7108 +vn 0.9213 0.3888 -0.0000 +vn -0.2692 -0.6498 -0.7108 +vn -0.2921 0.6981 -0.6537 +vn 0.2936 0.7087 -0.6415 +vn 0.6498 -0.2692 -0.7109 +vn -0.6498 -0.2692 -0.7108 +vn -0.9707 0.2404 -0.0000 +vn -0.0152 0.0364 -0.9992 +vn 0.9707 0.2404 -0.0000 +vn 0.0008 0.0018 1.0000 +vn -0.0007 0.0018 1.0000 +vn 0.0154 0.0365 -0.9992 +vn -0.0000 1.0000 -0.0000 +vn 0.9826 0.1855 -0.0000 +vn -0.9757 0.2193 -0.0000 +vn -0.9979 0.0652 -0.0000 +vn 0.9979 0.0652 -0.0000 +vn 0.5958 0.2860 -0.7505 +vn -0.5295 0.8483 -0.0000 +vn 0.5292 0.8485 -0.0000 +vn -0.5654 0.2964 0.7697 +vn -0.0000 0.9333 -0.3590 +vn -0.5112 0.8022 -0.3086 +vn -0.0000 0.9333 0.3590 +vn 0.5417 0.7846 0.3018 +vn -0.5654 0.2963 -0.7698 +vn 0.5417 0.7846 -0.3018 +vn 0.5958 0.2860 0.7505 +vn -0.5112 0.8022 0.3086 +vn 1.0000 -0.0023 -0.0003 +vn 0.0054 -0.0103 -0.9999 +vn -0.0060 -0.0098 -0.9999 +vn -0.2048 -0.2682 -0.9413 +vn 0.1799 -0.3126 -0.9327 +vn 0.0015 -0.9870 -0.1609 +vn 0.9385 0.3453 -0.0001 +vn 1.0000 -0.0015 -0.0087 +vn 0.9999 -0.0000 -0.0134 +vn -0.7768 -0.6298 -0.0036 +vn -1.0000 0.0004 -0.0021 +vn -1.0000 -0.0015 -0.0049 +vn -0.9385 0.3453 -0.0000 +vn 0.7768 -0.6298 -0.0036 +vn -0.9413 0.3377 -0.0022 +vn 0.3935 -0.0015 0.9193 +vn 0.4060 0.1562 0.9004 +vn -1.0000 -0.0021 -0.0000 +vn -1.0000 -0.0018 -0.0027 +vn 1.0000 -0.0036 -0.0000 +vn 1.0000 -0.0004 -0.0003 +vn -0.9608 0.2487 -0.1223 +vn -0.6066 -0.7945 -0.0284 +vn -0.6265 -0.7733 -0.0975 +vn -1.0000 -0.0000 -0.0003 +vn 1.0000 -0.0005 -0.0003 +vn 1.0000 0.0016 -0.0009 +vn 1.0000 0.0030 -0.0040 +vn -1.0000 0.0030 -0.0040 +vn -1.0000 0.0016 -0.0009 +vn -1.0000 -0.0005 -0.0003 +vn 1.0000 -0.0015 -0.0049 +vn 1.0000 0.0004 -0.0021 +vn 0.9999 -0.0056 -0.0118 +vn 1.0000 -0.0015 -0.0088 +vn -1.0000 -0.0015 -0.0088 +vn -0.9999 -0.0055 -0.0118 +vn -0.9999 -0.0015 -0.0102 +vn -0.9999 0.0036 -0.0102 +vn -0.9999 -0.0061 -0.0084 +vn 0.1422 0.3319 -0.9325 +vn 0.4062 0.1600 -0.8997 +vn 0.7079 0.7063 -0.0002 +vn 0.1430 0.3294 0.9333 +vn 0.3947 0.0009 -0.9188 +vn -1.0000 -0.0012 0.0016 +vn -1.0000 -0.0039 0.0023 +vn 1.0000 -0.0024 0.0014 +vn -0.9306 0.3160 -0.1849 +vn -0.9936 -0.0013 -0.1126 +vn -0.5412 0.8265 -0.1550 +vn 0.5412 0.8265 -0.1550 +vn 0.9608 0.2487 -0.1223 +vn 0.9937 -0.0007 -0.1122 +vn -0.9634 0.2291 -0.1393 +vn 0.9634 0.2291 -0.1393 +vn -0.3871 0.7687 -0.5092 +vn -1.0000 -0.0015 -0.0022 +vn -1.0000 0.0006 0.0027 +vn 0.3871 0.7687 -0.5092 +vn 1.0000 -0.0066 0.0006 +vn 1.0000 -0.0047 0.0042 +vn 1.0000 -0.0061 0.0028 +vn 0.9306 0.3160 -0.1849 +vn -0.0000 -0.9328 0.3605 +vn -0.7103 -0.6566 0.2537 +vn 1.0000 -0.0008 -0.0027 +vn 1.0000 -0.0020 0.0020 +vn -1.0000 -0.0061 0.0037 +vn -0.5495 0.7690 -0.3266 +vn -1.0000 -0.0022 -0.0015 +vn -1.0000 0.0016 0.0021 +vn 0.5495 0.7690 -0.3266 +vn 1.0000 -0.0045 0.0006 +vn 1.0000 -0.0010 0.0046 +vn 1.0000 -0.0035 0.0032 +vn -1.0000 -0.0015 -0.0007 +vn -0.7633 0.6459 0.0135 +vn -1.0000 -0.0025 -0.0012 +vn -1.0000 -0.0034 0.0003 +vn 1.0000 -0.0016 -0.0021 +vn -1.0000 -0.0031 -0.0014 +vn -1.0000 0.0002 -0.0028 +vn -1.0000 -0.0012 0.0012 +vn 0.7633 0.6459 0.0135 +vn 1.0000 -0.0020 -0.0013 +vn 1.0000 -0.0017 0.0003 +vn 0.9901 0.1401 -0.0111 +vn -0.9901 0.1401 -0.0111 +vn 0.6385 0.0097 -0.7696 +vn 0.6425 0.0150 -0.7662 +vn 0.6390 0.0022 -0.7692 +vn -0.7068 0.0066 -0.7074 +vn -0.7028 -0.0044 -0.7114 +vn 0.7066 0.2135 -0.6746 +vn 0.5060 0.8391 -0.1997 +vn -0.5146 0.8533 -0.0838 +vn -0.7041 0.0132 -0.7100 +vn -0.7086 0.0154 -0.7055 +vn -0.7884 0.2333 -0.5692 +vn 0.6241 0.0024 -0.7814 +vn 0.6746 -0.6933 0.2534 +vn 0.9999 0.0140 -0.0012 +vn 0.9999 0.0097 0.0052 +vn 1.0000 0.0094 0.0004 +vn 0.6270 -0.7729 -0.0976 +vn 0.6072 -0.7941 -0.0284 +vn 0.9841 -0.1697 -0.0533 +vn -0.0223 -0.9997 0.0105 +vn 0.0223 -0.9997 0.0105 +vn -0.9274 -0.0000 -0.3742 +vn 0.9987 -0.0092 -0.0494 +vn -1.0000 -0.0005 -0.0048 +vn -1.0000 -0.0039 0.0029 +vn 1.0000 -0.0047 0.0009 +vn -0.0004 -0.0719 -0.9974 +vn -1.0000 0.0094 0.0004 +vn -0.9999 0.0097 0.0052 +vn -0.9999 0.0140 -0.0012 +vn -0.0000 -0.1150 0.9934 +vn 0.9934 -0.0844 0.0771 +vn -0.0007 0.5015 0.8652 +vn -0.9955 -0.0947 -0.0000 +vn 0.0026 0.5098 0.8603 +vn 1.0000 -0.0015 -0.0095 +vn 1.0000 -0.0061 -0.0078 +vn 0.9999 0.0036 -0.0095 +vn 1.0000 0.0013 0.0045 +vn -1.0000 -0.0056 0.0033 +vn -1.0000 0.0016 0.0047 +vn -1.0000 -0.0015 0.0006 +vn 1.0000 -0.0030 0.0040 +vn 1.0000 -0.0017 -0.0008 +vn 1.0000 -0.0015 -0.0006 +vn 1.0000 -0.0004 0.0051 +vn -1.0000 0.0010 0.0046 +vn -1.0000 -0.0017 0.0006 +vn -1.0000 -0.0006 0.0051 +vn -0.0000 0.0127 -0.9999 +vn -0.0012 0.0155 -0.9999 +vn -0.0021 0.0150 -0.9999 +vn 0.0002 0.0112 -0.9999 +vn -0.0000 0.0171 -0.9999 +vn -0.0027 0.0139 -0.9999 +vn 0.0059 0.0010 -1.0000 +vn -0.0059 0.0011 -1.0000 +vn -0.0012 0.0113 -0.9999 +vn 0.0046 0.0133 -0.9999 +vn 0.2163 0.5222 -0.8250 +vn -0.2163 0.5222 -0.8249 +vn 0.2163 -0.5222 -0.8249 +vn -0.2081 -0.4401 -0.8735 +vn -0.2058 -0.4197 0.8840 +vn 0.2910 0.9565 0.0178 +vn 0.7522 -0.6487 0.1156 +vn 0.2163 -0.5222 0.8250 +vn -0.1642 0.3964 -0.9033 +vn 0.1653 0.4232 -0.8908 +vn -0.3179 -0.1317 0.9390 +vn -0.1317 0.3179 0.9389 +vn 0.1355 0.3696 0.9193 +vn 0.3179 -0.1317 0.9389 +vn -0.4654 -0.1928 -0.8639 +vn 0.4654 -0.1928 -0.8638 +vn 0.4654 0.1928 -0.8639 +vn -0.4654 0.1928 -0.8638 +vn 0.0359 0.1299 0.9909 +vn -0.0465 0.1530 0.9871 +vn -0.3827 0.9238 -0.0120 +vn -0.8438 -0.5265 0.1041 +vn -0.3820 -0.9223 0.0577 +vn 0.2663 -0.9636 0.0231 +vn 0.2645 0.6280 0.7319 +vn -0.2683 0.6476 0.7132 +vn 0.6907 0.2924 0.6614 +vn -0.6671 0.2763 0.6919 +vn 0.2692 -0.6498 -0.7108 +vn -0.6498 0.2692 -0.7108 +vn 0.7364 0.3285 -0.5914 +vn -0.2692 -0.6498 -0.7109 +vn -0.2936 0.7087 -0.6415 +vn 0.2910 0.6909 -0.6618 +vn 0.6498 -0.2692 -0.7108 +vn -0.6498 -0.2692 -0.7109 +vn -0.0000 0.0589 -0.9983 +vn -0.0000 0.0029 1.0000 +vn 0.2185 0.0412 -0.9750 +vn -0.5296 0.8483 -0.0000 +vn -0.2098 0.0472 0.9766 +vn -0.0000 -0.0001 1.0000 +vn -0.2098 0.0472 -0.9766 +vn 0.2184 0.0412 0.9750 +vn 1.0000 -0.0021 -0.0003 +vn -1.0000 0.0059 0.0043 +vn -1.0000 0.0040 0.0035 +vn -1.0000 0.0050 0.0041 +vn 0.3545 -0.9351 -0.0000 +vn 0.9679 -0.2514 -0.0000 +vn 1.0000 -0.0052 -0.0052 +vn 1.0000 -0.0025 -0.0012 +vn 1.0000 -0.0045 -0.0035 +vn -0.0000 -1.0000 0.0095 +vn 1.0000 -0.0000 -0.0019 +vn 0.0066 -0.9872 -0.1592 +vn -0.0002 -0.9869 -0.1613 +vn -0.0024 -0.9869 -0.1611 +vn -0.0029 0.0004 -1.0000 +vn -0.0059 0.0076 -1.0000 +vn 0.9679 -0.2514 -0.0016 +vn -1.0000 0.0023 0.0019 +vn 0.3545 -0.9351 0.0004 +vn -0.9999 0.0114 0.0033 +vn -1.0000 0.0040 0.0042 +vn -1.0000 0.0059 0.0058 +vn 0.9999 0.0057 -0.0158 +vn 0.9999 0.0080 -0.0141 +vn 0.9997 0.0051 -0.0255 +vn -0.9333 -0.3590 0.0022 +vn -0.4011 -0.9160 0.0018 +vn -0.0000 0.5115 -0.8593 +vn -1.0000 -0.0063 -0.0046 +vn -1.0000 -0.0046 -0.0033 +vn -1.0000 -0.0024 -0.0031 +vn 0.9999 0.0082 0.0070 +vn 1.0000 0.0047 0.0037 +vn 1.0000 0.0038 0.0009 +vn -0.0091 -0.9876 -0.1567 +vn 0.0007 -0.9869 -0.1613 +vn -0.0016 -0.9869 -0.1612 +vn 0.0078 -0.9874 -0.1582 +vn -0.0018 0.0035 -1.0000 +vn -0.8709 0.0032 -0.4914 +vn -0.8709 0.0073 -0.4915 +vn 0.0024 -0.0075 -1.0000 +vn -0.0000 -0.0042 -1.0000 +vn 0.0072 -0.0070 -0.9999 +vn -0.0047 0.0061 -1.0000 +vn -0.0014 0.0038 -1.0000 +vn -0.0013 -0.0051 -1.0000 +vn -0.0021 -0.0091 -1.0000 +vn 0.0040 0.0006 -1.0000 +vn -1.0000 0.0068 -0.0047 +vn -1.0000 0.0024 -0.0079 +vn -1.0000 0.0069 -0.0048 +vn 0.9998 0.0169 0.0048 +vn 1.0000 0.0064 0.0018 +vn 1.0000 0.0059 -0.0044 +vt 0.314366 0.974575 +vt 0.294812 0.983757 +vt 0.294657 0.974626 +vt 0.273456 0.983821 +vt 0.273229 0.974643 +vt 0.262381 0.983825 +vt 0.256051 0.974627 +vt 0.125608 0.833003 +vt 0.097336 0.818509 +vt 0.125610 0.817068 +vt 0.168440 0.797914 +vt 0.168440 0.810937 +vt 0.109231 0.810850 +vt 0.127314 0.975213 +vt 0.110436 0.984714 +vt 0.110100 0.975425 +vt 0.056961 0.985323 +vt 0.034809 0.976056 +vt 0.057052 0.975881 +vt 0.034870 0.985378 +vt 0.014902 0.976066 +vt 0.199446 0.818509 +vt 0.171174 0.833003 +vt 0.171172 0.817068 +vt 0.035307 0.871570 +vt 0.010838 0.731525 +vt 0.017874 0.745939 +vt 0.015372 0.753889 +vt 0.013899 0.704033 +vt 0.009136 0.701562 +vt 0.015271 0.913475 +vt 0.091632 0.975630 +vt 0.055268 0.870904 +vt 0.088357 0.868401 +vt 0.013764 0.426507 +vt 0.049854 0.416508 +vt 0.048730 0.438624 +vt 0.271875 0.869165 +vt 0.255984 0.912460 +vt 0.239398 0.867230 +vt 0.221112 0.974619 +vt 0.221070 0.866929 +vt 0.043269 0.488700 +vt 0.010790 0.459448 +vt 0.008714 0.489627 +vt 0.040214 0.363540 +vt 0.041285 0.381724 +vt 0.016409 0.381718 +vt 0.106773 0.867819 +vt 0.188797 0.866552 +vt 0.189454 0.906961 +vt 0.168859 0.866621 +vt 0.203932 0.974655 +vt 0.190529 0.973040 +vt 0.139611 0.907321 +vt 0.140686 0.973400 +vt 0.179637 0.973784 +vt 0.191879 0.982076 +vt 0.221110 0.983839 +vt 0.239478 0.983833 +vt 0.239470 0.974613 +vt 0.091859 0.984987 +vt 0.068629 0.985230 +vt 0.151599 0.973987 +vt 0.139629 0.982453 +vt 0.295488 0.911453 +vt 0.309465 0.867101 +vt 0.314455 0.910484 +vt 0.099265 0.705133 +vt 0.088674 0.685929 +vt 0.091711 0.679203 +vt 0.273373 0.912228 +vt 0.291054 0.869493 +vt 0.017282 0.678268 +vt 0.096715 0.734089 +vt 0.094272 0.707475 +vt 0.090072 0.746670 +vt 0.092216 0.753889 +vt 0.019880 0.685690 +vt 0.093170 0.731081 +vt 0.048521 0.438176 +vt 0.099086 0.434250 +vt 0.101118 0.416781 +vt 0.100614 0.417134 +vt 0.096976 0.454191 +vt 0.045608 0.464377 +vt 0.014112 0.425933 +vt 0.044187 0.506979 +vt 0.009380 0.512438 +vt 0.010839 0.490063 +vt 0.047070 0.507273 +vt 0.012396 0.512817 +vt 0.011742 0.459951 +vt 0.045438 0.489041 +vt 0.050505 0.416012 +vt 0.015811 0.406181 +vt 0.046833 0.464770 +vt 0.129115 0.442360 +vt 0.092797 0.383213 +vt 0.123836 0.367927 +vt 0.125752 0.384299 +vt 0.099258 0.434566 +vt 0.129673 0.442572 +vt 0.097922 0.454465 +vt 0.098488 0.471892 +vt 0.102467 0.399479 +vt 0.100128 0.472119 +vt 0.086379 0.367151 +vt 0.161380 0.436557 +vt 0.130349 0.413686 +vt 0.161569 0.406968 +vt 0.161572 0.462620 +vt 0.129818 0.462254 +vt 0.101290 0.399869 +vt 0.131373 0.382847 +vt 0.130916 0.413409 +vt 0.133141 0.382502 +vt 0.128491 0.462088 +vt 0.134570 0.358305 +vt 0.163321 0.382995 +vt 0.324006 0.378811 +vt 0.325470 0.339869 +vt 0.159015 0.480806 +vt 0.319147 0.479969 +vt 0.160154 0.462543 +vt 0.162323 0.406763 +vt 0.321290 0.436577 +vt 0.153411 0.381937 +vt 0.160980 0.436419 +vt 0.161642 0.383255 +vt 0.136981 0.571642 +vt 0.167260 0.581677 +vt 0.136981 0.582193 +vt 0.088568 0.571730 +vt 0.068186 0.582193 +vt 0.068186 0.571642 +vt 0.189977 0.581195 +vt 0.167260 0.571127 +vt 0.189978 0.570644 +vt 0.321611 0.479559 +vt 0.161143 0.480842 +vt 0.322066 0.436265 +vt 0.321076 0.361203 +vt 0.323456 0.380752 +vt 0.322534 0.378630 +vt 0.250154 0.861901 +vt 0.273221 0.863645 +vt 0.091316 0.863096 +vt 0.293066 0.865130 +vt 0.016873 0.869922 +vt 0.033786 0.867553 +vt 0.077381 0.863815 +vt 0.155566 0.859050 +vt 0.138639 0.852324 +vt 0.158066 0.848509 +vt 0.054011 0.865875 +vt 0.236326 0.861386 +vt 0.202051 0.581155 +vt 0.202051 0.570604 +vt 0.116599 0.571730 +vt 0.116599 0.582281 +vt 0.015190 0.570644 +vt 0.003116 0.581155 +vt 0.003116 0.570604 +vt 0.037907 0.581677 +vt 0.037907 0.571127 +vt 0.015190 0.581195 +vt 0.105668 0.571763 +vt 0.105668 0.582313 +vt 0.099489 0.571763 +vt 0.088568 0.582281 +vt 0.099489 0.582313 +vt 0.188632 0.851962 +vt 0.167878 0.848436 +vt 0.181394 0.841551 +vt 0.294067 0.765307 +vt 0.303167 0.742799 +vt 0.303167 0.765307 +vt 0.153583 0.394527 +vt 0.321316 0.411605 +vt 0.153648 0.415574 +vt 0.323510 0.392026 +vt 0.124127 0.408395 +vt 0.125603 0.393079 +vt 0.041308 0.395688 +vt 0.086689 0.412835 +vt 0.039823 0.413998 +vt 0.273195 0.706085 +vt 0.289603 0.702101 +vt 0.290452 0.704463 +vt 0.091482 0.394771 +vt 0.016236 0.394518 +vt 0.281554 0.750145 +vt 0.271561 0.745601 +vt 0.294030 0.744517 +vt 0.170751 0.858940 +vt 0.157783 0.866701 +vt 0.152072 0.907231 +vt 0.193727 0.946545 +vt 0.180297 0.805801 +vt 0.193725 0.805801 +vt 0.265671 0.739717 +vt 0.271448 0.739627 +vt 0.294067 0.742799 +vt 0.303167 0.737007 +vt 0.293952 0.738551 +vt 0.236000 0.750152 +vt 0.245972 0.745613 +vt 0.245995 0.750365 +vt 0.223524 0.744575 +vt 0.246072 0.739642 +vt 0.254076 0.752695 +vt 0.263451 0.750371 +vt 0.263443 0.752726 +vt 0.265727 0.745679 +vt 0.263353 0.745711 +vt 0.265808 0.750329 +vt 0.258767 0.758451 +vt 0.254047 0.758435 +vt 0.251845 0.739719 +vt 0.251796 0.745677 +vt 0.251734 0.750310 +vt 0.138954 0.866913 +vt 0.254084 0.750341 +vt 0.254163 0.745706 +vt 0.263310 0.739731 +vt 0.254206 0.739729 +vt 0.294067 0.737007 +vt 0.303167 0.710087 +vt 0.251853 0.712821 +vt 0.253156 0.708583 +vt 0.254213 0.712822 +vt 0.263295 0.712822 +vt 0.265655 0.712820 +vt 0.266567 0.709390 +vt 0.267638 0.704756 +vt 0.268986 0.706693 +vt 0.294067 0.710087 +vt 0.303167 0.706535 +vt 0.264350 0.708583 +vt 0.263295 0.708459 +vt 0.248520 0.706695 +vt 0.244268 0.703729 +vt 0.249867 0.704757 +vt 0.254213 0.708459 +vt 0.263295 0.703419 +vt 0.250939 0.709391 +vt 0.294067 0.706535 +vt 0.303167 0.702909 +vt 0.294067 0.702909 +vt 0.303167 0.698653 +vt 0.273237 0.703725 +vt 0.254213 0.703419 +vt 0.263295 0.697733 +vt 0.263141 0.681307 +vt 0.254213 0.697733 +vt 0.254367 0.681307 +vt 0.303021 0.681307 +vt 0.294067 0.698653 +vt 0.294213 0.681307 +vt 0.227901 0.702110 +vt 0.244311 0.706088 +vt 0.227053 0.704473 +vt 0.322830 0.682996 +vt 0.328472 0.685929 +vt 0.323984 0.687618 +vt 0.330014 0.698122 +vt 0.325218 0.701627 +vt 0.325218 0.698122 +vt 0.328472 0.693475 +vt 0.322830 0.696409 +vt 0.323984 0.691787 +vt 0.329035 0.701651 +vt 0.324239 0.705156 +vt 0.324239 0.701651 +vt 0.321255 0.698122 +vt 0.320214 0.705156 +vt 0.315026 0.701651 +vt 0.320214 0.701651 +vt 0.319165 0.684659 +vt 0.319165 0.694745 +vt 0.320185 0.690657 +vt 0.314282 0.692993 +vt 0.310555 0.689715 +vt 0.315100 0.689715 +vt 0.321255 0.701627 +vt 0.316083 0.698122 +vt 0.320185 0.688747 +vt 0.314282 0.686411 +vt 0.309808 0.692705 +vt 0.304377 0.692083 +vt 0.310555 0.689690 +vt 0.309808 0.686699 +vt 0.315026 0.705156 +vt 0.310543 0.701651 +vt 0.316083 0.701627 +vt 0.311538 0.698122 +vt 0.305983 0.704643 +vt 0.304350 0.702752 +vt 0.305983 0.702165 +vt 0.304377 0.687322 +vt 0.305407 0.685401 +vt 0.311538 0.701627 +vt 0.304942 0.698635 +vt 0.303203 0.702752 +vt 0.304350 0.704055 +vt 0.303203 0.704055 +vt 0.303203 0.700526 +vt 0.303203 0.699222 +vt 0.305407 0.694003 +vt 0.303203 0.693493 +vt 0.303203 0.685911 +vt 0.303745 0.684901 +vt 0.009347 0.702508 +vt 0.097357 0.761717 +vt 0.009348 0.761718 +vt 0.107587 0.886203 +vt 0.189150 0.866351 +vt 0.189194 0.886242 +vt 0.107632 0.866276 +vt 0.189109 0.847757 +vt 0.107673 0.847757 +vt 0.097357 0.702508 +vt 0.117762 0.761717 +vt 0.093110 0.764736 +vt 0.013595 0.764737 +vt 0.013557 0.678915 +vt 0.013557 0.699807 +vt 0.009348 0.788668 +vt 0.097358 0.847797 +vt 0.009348 0.847797 +vt 0.144454 0.847817 +vt 0.117763 0.788667 +vt 0.144712 0.788607 +vt 0.097357 0.675817 +vt 0.117762 0.702508 +vt 0.097357 0.788667 +vt 0.117763 0.847797 +vt 0.280600 0.601937 +vt 0.283604 0.655959 +vt 0.280600 0.655959 +vt 0.013595 0.785649 +vt 0.093110 0.785649 +vt 0.300859 0.601847 +vt 0.303774 0.655919 +vt 0.300859 0.655919 +vt 0.093147 0.699807 +vt 0.093147 0.678915 +vt 0.009347 0.675817 +vt 0.317967 0.601847 +vt 0.303774 0.601847 +vt 0.303778 0.598933 +vt 0.320881 0.655919 +vt 0.320881 0.601847 +vt 0.303778 0.658833 +vt 0.317967 0.655919 +vt 0.317971 0.658833 +vt 0.297812 0.601937 +vt 0.283604 0.601937 +vt 0.297808 0.658963 +vt 0.297812 0.655959 +vt 0.300817 0.655959 +vt 0.300817 0.601937 +vt 0.297808 0.598933 +vt 0.283600 0.598933 +vt 0.080480 0.567142 +vt 0.103363 0.564023 +vt 0.103172 0.582659 +vt 0.333333 0.333333 +vt 1.000000 1.000000 +vt 0.333333 1.000000 +vt 0.195007 0.587425 +vt 0.201745 0.621001 +vt 0.195007 0.621001 +vt 0.201745 0.587425 +vt 0.208482 0.621001 +vt 0.154582 0.587425 +vt 0.161320 0.621001 +vt 0.154582 0.621001 +vt 0.161319 0.587425 +vt 0.168057 0.621001 +vt 0.168057 0.587425 +vt 0.174795 0.621001 +vt 0.174795 0.587425 +vt 0.181532 0.621001 +vt 0.231060 0.611245 +vt 0.226296 0.616009 +vt 0.219558 0.599743 +vt 0.181532 0.587425 +vt 0.188270 0.621001 +vt 0.188270 0.587425 +vt 0.126584 0.946545 +vt 0.140012 0.805801 +vt 0.140013 0.946545 +vt 0.207154 0.805801 +vt 0.207155 0.946545 +vt 0.166870 0.946545 +vt 0.153440 0.805801 +vt 0.166869 0.805801 +vt 0.180298 0.946545 +vt 0.153441 0.946545 +vt 0.234135 0.916941 +vt 0.220697 0.946508 +vt 0.220707 0.916936 +vt 0.220583 0.946544 +vt 0.220582 0.805801 +vt 0.113155 0.805801 +vt 0.126584 0.805801 +vt 0.314568 0.927703 +vt 0.309497 0.911649 +vt 0.313761 0.912852 +vt 0.301277 0.916963 +vt 0.287839 0.946531 +vt 0.287849 0.916959 +vt 0.260992 0.916950 +vt 0.247553 0.946517 +vt 0.247564 0.916945 +vt 0.328134 0.916973 +vt 0.314695 0.946541 +vt 0.314706 0.916968 +vt 0.274410 0.946527 +vt 0.274420 0.916954 +vt 0.260982 0.946522 +vt 0.234125 0.946513 +vt 0.301267 0.946536 +vt 0.308531 0.965365 +vt 0.297558 0.946631 +vt 0.309626 0.947366 +vt 0.314647 0.931012 +vt 0.310460 0.929361 +vt 0.311777 0.982171 +vt 0.312696 0.967078 +vt 0.320287 0.865187 +vt 0.307573 0.876224 +vt 0.317673 0.861500 +vt 0.313606 0.909991 +vt 0.308535 0.893937 +vt 0.312799 0.895139 +vt 0.312873 0.964171 +vt 0.313792 0.949078 +vt 0.320287 0.994669 +vt 0.307435 0.983365 +vt 0.312643 0.892279 +vt 0.311836 0.877427 +vt 0.296659 0.894582 +vt 0.293357 0.911091 +vt 0.292551 0.896239 +vt 0.295697 0.876869 +vt 0.297621 0.912294 +vt 0.298902 0.929432 +vt 0.296462 0.964631 +vt 0.260683 0.940469 +vt 0.247255 0.990105 +vt 0.247255 0.940469 +vt 0.293215 0.947825 +vt 0.295366 0.982631 +vt 0.281238 0.992293 +vt 0.291201 0.980918 +vt 0.292395 0.893379 +vt 0.291588 0.878527 +vt 0.270381 0.921133 +vt 0.294350 0.909842 +vt 0.269266 0.920527 +vt 0.292119 0.965825 +vt 0.281862 0.867275 +vt 0.284016 0.863361 +vt 0.300968 0.990105 +vt 0.288372 0.992113 +vt 0.287540 0.990105 +vt 0.287540 0.940469 +vt 0.274112 0.990105 +vt 0.274112 0.940469 +vt 0.206969 0.940469 +vt 0.193541 0.990105 +vt 0.193541 0.940469 +vt 0.233826 0.940469 +vt 0.220398 0.990105 +vt 0.220398 0.940469 +vt 0.260683 0.990105 +vt 0.300968 0.940469 +vt 0.206969 0.990105 +vt 0.233826 0.990105 +vt 0.000000 0.604167 +vt 0.052083 0.614583 +vt 0.000000 0.614583 +vt 0.207801 0.992113 +vt 0.234658 0.992113 +vt 0.259851 0.992113 +vt 0.248086 0.992113 +vt 0.286708 0.992113 +vt 0.274943 0.992113 +vt 0.206138 0.992113 +vt 0.194373 0.992113 +vt 0.232995 0.992113 +vt 0.221230 0.992113 +vt 0.261515 0.992113 +vt 0.048732 0.631895 +vt 0.045556 0.631895 +vt 0.048732 0.624227 +vt 0.000000 0.583333 +vt 0.052083 0.593750 +vt 0.000000 0.593750 +vt 0.000000 0.645833 +vt 0.052083 0.656250 +vt 0.000000 0.656250 +vt 0.000000 0.625000 +vt 0.052083 0.635417 +vt 0.000000 0.635417 +vt 0.052083 0.625000 +vt 0.052083 0.604167 +vt 0.052083 0.666667 +vt 0.000000 0.666667 +vt 0.052083 0.645833 +vt 0.077693 0.788354 +vt 0.085752 0.801871 +vt 0.072784 0.791046 +vt 0.099335 0.699167 +vt 0.085924 0.885616 +vt 0.085920 0.699167 +vt 0.194542 0.788354 +vt 0.186482 0.801871 +vt 0.184647 0.796963 +vt 0.154742 0.796963 +vt 0.169694 0.801871 +vt 0.152906 0.801871 +vt 0.137953 0.796963 +vt 0.136117 0.801871 +vt 0.171530 0.796963 +vt 0.117493 0.796963 +vt 0.102541 0.801871 +vt 0.104376 0.796963 +vt 0.134281 0.796963 +vt 0.119329 0.801871 +vt 0.121165 0.796963 +vt 0.072504 0.699167 +vt 0.072521 0.885617 +vt 0.059088 0.699169 +vt 0.045714 0.885621 +vt 0.045673 0.699171 +vt 0.126166 0.699170 +vt 0.112729 0.885617 +vt 0.112751 0.699168 +vt 0.059117 0.885619 +vt 0.032312 0.885625 +vt 0.032257 0.699175 +vt 0.099327 0.885616 +vt 0.100705 0.796963 +vt 0.087588 0.796963 +vt 0.018909 0.885629 +vt 0.018841 0.699179 +vt 0.102541 0.813773 +vt 0.085752 0.813773 +vt 0.136117 0.813773 +vt 0.169694 0.813773 +vt 0.119329 0.813773 +vt 0.152906 0.813773 +vt 0.151119 0.818366 +vt 0.137904 0.818366 +vt 0.186482 0.813773 +vt 0.171480 0.818366 +vt 0.100754 0.818366 +vt 0.087538 0.818366 +vt 0.104327 0.818366 +vt 0.121115 0.818366 +vt 0.077795 0.827295 +vt 0.073051 0.824912 +vt 0.194439 0.827295 +vt 0.184696 0.818366 +vt 0.167908 0.818366 +vt 0.154692 0.818366 +vt 0.274714 0.946621 +vt 0.261210 0.988262 +vt 0.261210 0.946621 +vt 0.288333 0.991891 +vt 0.271580 0.982525 +vt 0.289932 0.990127 +vt 0.247705 0.946621 +vt 0.234201 0.988262 +vt 0.234201 0.946621 +vt 0.220697 0.988262 +vt 0.220697 0.946621 +vt 0.247705 0.988262 +vt 0.301723 0.946621 +vt 0.288219 0.988262 +vt 0.288219 0.946621 +vt 0.315227 0.946621 +vt 0.301723 0.988262 +vt 0.328732 0.946621 +vt 0.315227 0.988262 +vt 0.274714 0.988262 +vt 0.293124 0.990127 +vt 0.309933 0.978799 +vt 0.311477 0.982525 +vt 0.266945 0.980385 +vt 0.261721 0.961916 +vt 0.269323 0.980269 +vt 0.316112 0.980385 +vt 0.321335 0.961916 +vt 0.323100 0.963515 +vt 0.316112 0.940255 +vt 0.321335 0.958724 +vt 0.313734 0.940372 +vt 0.288333 0.928749 +vt 0.271580 0.938115 +vt 0.271463 0.935737 +vt 0.266945 0.940255 +vt 0.261721 0.958724 +vt 0.259957 0.957125 +vt 0.294723 0.928749 +vt 0.311476 0.938115 +vt 0.293124 0.930513 +vt 0.294723 0.991891 +vt 0.311593 0.984904 +vt 0.273123 0.941841 +vt 0.291528 0.937984 +vt 0.275734 0.944527 +vt 0.291476 0.986401 +vt 0.273049 0.978725 +vt 0.313734 0.980269 +vt 0.317609 0.960373 +vt 0.310007 0.941915 +vt 0.289932 0.930513 +vt 0.269323 0.940372 +vt 0.265447 0.960267 +vt 0.291581 0.934239 +vt 0.291528 0.982656 +vt 0.269192 0.960320 +vt 0.309933 0.941841 +vt 0.307322 0.976114 +vt 0.273123 0.978799 +vt 0.265447 0.960373 +vt 0.275734 0.976114 +vt 0.313864 0.960320 +vt 0.317609 0.960267 +vt 0.307322 0.944526 +vt 0.282700 0.788354 +vt 0.271598 0.801335 +vt 0.270797 0.788354 +vt 0.263862 0.769178 +vt 0.276843 0.758076 +vt 0.276843 0.768585 +vt 0.272434 0.783733 +vt 0.263862 0.757275 +vt 0.272669 0.742859 +vt 0.256381 0.797161 +vt 0.297255 0.796926 +vt 0.282107 0.801335 +vt 0.269648 0.929377 +vt 0.269215 0.938226 +vt 0.267789 0.929371 +vt 0.270334 0.937627 +vt 0.294268 0.949068 +vt 0.237869 0.929284 +vt 0.237791 0.941042 +vt 0.289962 0.956023 +vt 0.303659 0.954085 +vt 0.304214 0.956023 +vt 0.261457 0.956023 +vt 0.247760 0.954085 +vt 0.260902 0.954085 +vt 0.232711 0.956043 +vt 0.222295 0.947283 +vt 0.233498 0.954151 +vt 0.318708 0.956043 +vt 0.329124 0.947283 +vt 0.330769 0.948691 +vt 0.275710 0.956023 +vt 0.289407 0.954085 +vt 0.247205 0.956023 +vt 0.246640 0.954088 +vt 0.317921 0.954152 +vt 0.262012 0.954085 +vt 0.275154 0.954085 +vt 0.262012 0.968803 +vt 0.275709 0.966917 +vt 0.275154 0.968803 +vt 0.261457 0.966917 +vt 0.317931 0.968653 +vt 0.304214 0.966917 +vt 0.318708 0.966518 +vt 0.233488 0.968653 +vt 0.247205 0.966917 +vt 0.246629 0.968797 +vt 0.232711 0.966518 +vt 0.289407 0.968804 +vt 0.289962 0.966917 +vt 0.329533 0.974827 +vt 0.331194 0.973125 +vt 0.221886 0.974827 +vt 0.247760 0.968803 +vt 0.260902 0.968803 +vt 0.290517 0.968804 +vt 0.303659 0.968803 +vt 0.286548 0.950491 +vt 0.274178 0.961268 +vt 0.276506 0.948594 +vt 0.263857 0.954512 +vt 0.253669 0.961144 +vt 0.241589 0.950367 +vt 0.251491 0.948594 +vt 0.302318 0.970585 +vt 0.296095 0.960564 +vt 0.309892 0.960802 +vt 0.284417 0.962679 +vt 0.263815 0.973350 +vt 0.274027 0.963312 +vt 0.273860 0.973515 +vt 0.284163 0.964604 +vt 0.263891 0.963133 +vt 0.253734 0.973283 +vt 0.253781 0.963153 +vt 0.263905 0.961147 +vt 0.243789 0.964293 +vt 0.243564 0.962395 +vt 0.208616 0.798710 +vt 0.199561 0.808701 +vt 0.199561 0.798710 +vt 0.223046 0.809482 +vt 0.228088 0.809503 +vt 0.228001 0.815388 +vt 0.247216 0.808701 +vt 0.256270 0.798710 +vt 0.256270 0.808701 +vt 0.232635 0.797937 +vt 0.228128 0.797913 +vt 0.228192 0.792030 +vt 0.236144 0.809851 +vt 0.232647 0.808907 +vt 0.236489 0.807195 +vt 0.219824 0.797560 +vt 0.223052 0.798499 +vt 0.219448 0.800206 +vt 0.211461 0.808701 +vt 0.208616 0.808701 +vt 0.244371 0.798710 +vt 0.247216 0.798710 +vt 0.223330 0.806719 +vt 0.217127 0.800691 +vt 0.223330 0.800691 +vt 0.232384 0.806719 +vt 0.238657 0.800691 +vt 0.238657 0.806719 +vt 0.215001 0.800239 +vt 0.211461 0.798710 +vt 0.240830 0.800239 +vt 0.244370 0.808701 +vt 0.240830 0.807171 +vt 0.215001 0.807171 +vt 0.212477 0.812587 +vt 0.232384 0.800691 +vt 0.217127 0.806719 +vt 0.243247 0.794631 +vt 0.223051 0.808804 +vt 0.232650 0.798611 +vt 0.236090 0.797760 +vt 0.236348 0.800331 +vt 0.219875 0.809656 +vt 0.219585 0.807097 +vt 0.243247 0.812779 +vt 0.212477 0.794823 +vt 0.223082 0.797813 +vt 0.220294 0.788354 +vt 0.232619 0.809589 +vt 0.235699 0.819021 +vt 0.144323 0.841810 +vt 0.314455 0.983672 +vt 0.097131 0.833438 +vt 0.159735 0.834493 +vt 0.138787 0.844225 +vt 0.117867 0.834432 +vt 0.109270 0.797526 +vt 0.127627 0.984452 +vt 0.014857 0.985334 +vt 0.199651 0.833438 +vt 0.014710 0.728381 +vt 0.014697 0.406798 +vt 0.010653 0.381900 +vt 0.010554 0.360815 +vt 0.199186 0.867077 +vt 0.128645 0.867658 +vt 0.203942 0.983844 +vt 0.131861 0.358705 +vt 0.318354 0.502992 +vt 0.153393 0.360805 +vt 0.321715 0.502527 +vt 0.322483 0.339779 +vt 0.308636 0.863435 +vt 0.018435 0.866447 +vt 0.009876 0.415271 +vt 0.010440 0.394049 +vt 0.271559 0.750365 +vt 0.223589 0.738615 +vt 0.327319 0.681307 +vt 0.330014 0.701627 +vt 0.327319 0.698097 +vt 0.329035 0.705156 +vt 0.315100 0.689690 +vt 0.310543 0.705156 +vt 0.304942 0.701113 +vt 0.303745 0.694504 +vt 0.117762 0.675817 +vt 0.317971 0.598933 +vt 0.283600 0.658963 +vt 0.141926 0.564373 +vt 0.168187 0.567833 +vt 0.141640 0.582703 +vt 0.180275 0.573798 +vt 0.167479 0.579327 +vt 0.081648 0.579811 +vt 0.075115 0.575029 +vt 0.074695 0.571646 +vt 1.000000 0.333333 +vt 0.208482 0.587425 +vt 0.219558 0.616009 +vt 0.214794 0.611245 +vt 0.214794 0.604507 +vt 0.226296 0.599743 +vt 0.231060 0.604507 +vt 0.113156 0.946545 +vt 0.328124 0.946545 +vt 0.313949 0.946109 +vt 0.317605 0.998401 +vt 0.292296 0.962918 +vt 0.283402 0.996286 +vt 0.300137 0.992113 +vt 0.219566 0.992113 +vt 0.246423 0.992113 +vt 0.273280 0.992113 +vt 0.043310 0.629649 +vt 0.043310 0.626473 +vt 0.045556 0.624227 +vt 0.050978 0.626473 +vt 0.050978 0.629649 +vt 0.052083 0.583333 +vt 0.199450 0.791046 +vt 0.167858 0.796963 +vt 0.151070 0.796963 +vt 0.126132 0.885619 +vt 0.117543 0.818366 +vt 0.134331 0.818366 +vt 0.199184 0.824912 +vt 0.271463 0.984904 +vt 0.328732 0.988262 +vt 0.291581 0.986401 +vt 0.259957 0.963515 +vt 0.323100 0.957125 +vt 0.311593 0.935737 +vt 0.291476 0.934239 +vt 0.310007 0.978725 +vt 0.273049 0.941915 +vt 0.237860 0.917527 +vt 0.290517 0.954085 +vt 0.220707 0.948754 +vt 0.276265 0.954085 +vt 0.304779 0.954088 +vt 0.304790 0.968797 +vt 0.276265 0.968803 +vt 0.220287 0.973067 +vt 0.293315 0.966609 +vt 0.220063 0.818793 +vt 0.235926 0.788665 +vt 0.216897 0.808234 +vt 0.238896 0.799150 +vt 0.238896 0.808261 +vt 0.216897 0.799176 +vt 0.176993 0.907051 +vt 0.163321 0.866661 +vt 0.048042 0.627808 +vt 0.048083 0.623703 +vt 0.000000 0.327174 +vt 0.000000 0.063451 +vt 0.263723 0.063451 +vt 0.263723 0.327174 +vt 0.263488 0.758466 +s 0 +f 1/1/1 3/2/1 4/3/1 +f 4/3/2 5/4/2 6/5/2 +f 6/5/3 7/6/4 8/7/3 +f 10/8/5 12/9/5 9/10/5 +f 7/11/6 5/12/6 14/13/6 +f 12/14/7 16/15/8 17/16/8 +f 14/17/9 19/18/9 18/19/10 +f 13/20/11 1/21/11 19/18/11 +f 20/22/12 22/23/12 23/24/12 +f 25/25/13 18/19/14 19/18/13 +f 27/26/15 29/27/15 26/28/15 +f 31/29/16 27/26/16 30/30/16 +f 33/31/11 19/18/11 1/21/11 +f 34/32/17 24/33/17 35/34/17 +f 36/35/18 38/36/18 39/37/18 +f 41/38/19 26/39/19 40/40/19 +f 40/40/20 43/41/20 44/42/20 +f 48/43/21 46/44/21 45/45/21 +f 51/46/22 52/47/22 53/48/22 +f 34/32/23 54/49/23 17/16/23 +f 55/50/24 56/51/24 60/52/24 +f 20/53/25 61/54/26 56/51/26 +f 57/55/27 62/56/27 12/14/28 +f 23/57/29 61/54/29 20/58/29 +f 9/10/30 22/23/30 10/8/30 +f 63/59/31 20/53/32 43/41/31 +f 64/60/33 43/41/34 42/61/34 +f 17/16/35 65/62/36 34/32/35 +f 34/32/37 15/63/38 18/19/39 +f 9/64/40 12/65/40 62/56/40 +f 30/66/41 32/67/41 33/68/41 +f 4/69/42 67/70/42 1/71/42 +f 27/72/43 66/73/43 30/66/43 +f 67/70/44 33/74/44 1/71/44 +f 6/75/45 68/76/45 4/69/45 +f 26/28/46 71/77/46 8/78/46 +f 70/79/47 30/30/47 33/74/47 +f 6/75/48 71/77/48 69/80/48 +f 72/81/49 73/82/50 74/83/51 +f 38/36/52 76/84/53 39/37/54 +f 77/85/55 47/86/55 48/43/55 +f 78/87/56 47/86/56 72/81/56 +f 80/88/57 45/45/57 79/89/57 +f 81/90/58 80/91/58 79/92/58 +f 83/93/59 82/94/59 81/90/59 +f 78/87/60 51/95/60 50/96/60 +f 36/35/61 84/97/61 83/93/61 +f 86/98/62 73/82/62 77/85/62 +f 87/99/63 89/100/63 90/101/63 +f 91/102/64 93/103/64 92/104/64 +f 95/105/65 48/43/65 80/88/65 +f 51/95/66 74/83/67 88/106/66 +f 82/94/68 95/107/68 80/91/68 +f 39/37/69 91/102/70 84/97/70 +f 84/97/71 92/104/71 82/94/71 +f 52/47/72 88/108/72 87/99/72 +f 97/109/73 93/103/73 94/110/73 +f 94/110/74 99/111/75 97/109/74 +f 96/112/76 100/113/76 93/103/76 +f 75/114/52 98/115/77 76/84/78 +f 74/83/79 85/116/80 103/117/81 +f 100/118/82 77/85/82 95/105/82 +f 88/106/66 103/117/83 89/119/66 +f 92/104/84 100/113/84 95/107/84 +f 76/84/85 94/110/86 91/102/86 +f 104/120/66 106/121/66 107/122/66 +f 101/123/87 109/124/87 108/125/87 +f 105/126/88 112/127/89 106/121/89 +f 89/100/90 113/128/90 90/101/90 +f 86/98/91 111/129/92 85/116/91 +f 98/115/93 114/130/52 99/111/94 +f 85/116/95 105/126/95 103/117/96 +f 100/118/97 108/125/97 86/98/97 +f 103/117/98 104/120/66 89/119/66 +f 106/131/99 115/132/99 116/133/99 +f 118/134/52 120/135/52 117/136/52 +f 121/137/100 112/138/100 109/139/100 +f 122/140/101 101/141/101 96/112/101 +f 99/111/102 123/142/103 97/109/103 +f 97/109/104 122/140/105 96/112/105 +f 113/128/106 107/143/106 124/144/106 +f 109/124/107 111/129/107 108/125/107 +f 114/130/52 117/145/52 99/111/108 +f 41/38/109 36/146/110 83/147/109 +f 35/34/111 50/148/112 54/49/112 +f 83/147/113 66/73/113 41/38/113 +f 81/149/114 32/67/114 66/73/114 +f 32/150/115 45/151/115 25/25/115 +f 24/33/116 78/152/117 35/34/118 +f 125/153/119 54/154/119 49/155/119 +f 25/25/120 46/156/120 24/33/120 +f 40/40/121 37/157/122 36/146/123 +f 129/158/124 109/139/124 110/159/124 +f 107/160/66 116/133/66 130/161/66 +f 122/162/125 129/163/125 110/164/125 +f 117/136/126 126/165/126 123/166/126 +f 123/166/127 127/167/127 122/162/127 +f 124/168/128 130/161/128 131/169/128 +f 132/170/129 119/171/129 118/134/129 +f 124/168/130 128/172/130 132/170/130 +f 44/173/131 134/174/131 37/175/131 +f 135/176/132 137/177/132 53/178/132 +f 138/179/133 118/180/133 114/181/133 +f 113/128/134 132/182/134 138/179/134 +f 102/183/135 138/179/135 114/181/135 +f 90/101/136 138/179/136 139/184/136 +f 140/185/137 75/186/137 38/187/137 +f 170/188/138 467/189/139 466/190/139 +f 141/191/140 102/183/140 75/186/140 +f 87/99/141 139/184/141 141/191/141 +f 135/192/142 140/185/142 38/187/142 +f 133/193/143 142/194/143 134/195/143 +f 133/196/144 44/173/144 55/50/144 +f 57/55/145 59/197/145 477/198/145 +f 393/199/146 255/200/146 250/201/146 +f 142/194/147 144/202/147 136/203/147 +f 136/204/148 145/205/148 137/177/148 +f 134/195/147 136/203/147 135/206/147 +f 125/207/149 146/208/149 59/209/149 +f 49/210/150 137/211/150 146/208/150 +f 148/212/151 150/213/151 147/214/151 +f 143/215/152 150/213/152 151/216/152 +f 142/194/152 147/217/152 143/215/152 +f 147/214/153 479/218/153 59/219/153 +f 146/208/150 145/220/150 152/221/150 +f 146/208/154 148/222/154 59/209/154 +f 125/153/155 59/197/155 58/223/155 +f 149/224/156 151/216/156 150/213/156 +f 153/225/157 155/226/157 151/216/157 +f 152/221/150 154/227/150 153/225/150 +f 152/221/158 149/224/158 148/222/158 +f 144/228/159 157/229/159 145/205/159 +f 143/215/147 155/226/147 144/202/147 +f 157/230/66 160/231/66 158/232/66 +f 154/227/160 161/233/160 155/226/160 +f 144/202/52 161/233/52 156/234/52 +f 145/220/66 158/232/66 154/227/66 +f 162/235/52 164/236/52 165/237/52 +f 156/238/161 159/239/161 157/229/161 +f 156/234/52 163/240/52 162/235/52 +f 158/232/162 163/241/162 161/233/162 +f 167/242/66 169/243/163 166/244/66 +f 160/245/164 164/246/164 163/241/164 +f 159/247/66 166/244/66 160/231/66 +f 162/248/165 167/249/165 159/239/165 +f 165/250/166 168/251/166 167/249/166 +f 165/237/52 171/252/167 170/188/168 +f 166/253/169 171/254/169 164/246/169 +f 467/255/170 169/256/170 464/257/170 +f 465/258/171 170/259/171 466/260/171 +f 464/261/172 168/262/173 465/263/172 +f 172/264/66 174/265/66 175/266/66 +f 174/267/174 177/268/174 175/269/174 +f 176/270/52 179/271/52 177/272/52 +f 178/273/175 172/274/175 179/275/175 +f 177/268/176 181/276/176 175/269/176 +f 183/277/177 185/278/177 182/279/177 +f 175/266/66 183/280/66 172/264/66 +f 177/272/52 182/281/52 180/282/52 +f 172/274/178 182/279/178 179/275/178 +f 185/283/52 188/284/52 186/285/52 +f 180/286/179 189/287/179 181/276/179 +f 180/282/52 185/283/52 186/285/52 +f 181/288/66 184/289/66 183/280/66 +f 187/290/180 191/291/180 188/284/180 +f 184/289/66 192/292/66 193/293/66 +f 184/294/181 187/295/181 185/278/181 +f 186/296/182 192/297/182 189/287/182 +f 194/298/183 196/299/184 190/300/185 +f 193/293/186 197/301/186 194/302/186 +f 187/295/187 194/298/188 190/300/189 +f 188/303/190 197/304/190 192/297/190 +f 199/305/191 195/306/191 198/307/191 +f 197/304/192 199/308/192 198/309/192 +f 190/310/193 199/311/193 191/291/193 +f 194/302/194 198/312/194 195/313/194 +f 53/48/195 140/185/195 135/192/195 +f 15/314/196 201/315/196 7/316/196 +f 65/317/6 63/318/6 64/319/6 +f 16/320/6 21/321/6 63/318/6 +f 11/322/197 22/23/197 21/321/197 +f 8/7/198 64/60/199 42/61/198 +f 18/19/200 15/63/201 14/17/202 +f 200/323/196 203/324/196 201/315/196 +f 7/316/203 204/325/204 205/326/204 +f 15/314/205 206/327/206 207/328/206 +f 64/329/207 209/330/207 65/331/207 +f 202/332/6 211/333/6 203/334/6 +f 209/335/208 202/336/208 200/323/208 +f 208/337/207 210/338/207 209/330/207 +f 201/315/209 211/333/209 208/337/209 +f 213/339/210 215/340/210 212/341/210 +f 7/316/211 213/342/212 64/329/213 +f 201/315/214 212/343/214 204/325/214 +f 64/329/215 212/343/204 208/337/204 +f 207/344/216 218/345/216 216/346/216 +f 15/314/217 216/347/218 200/323/219 +f 200/323/220 219/348/220 209/335/220 +f 65/349/221 219/348/222 206/327/222 +f 220/350/99 218/345/99 217/351/99 +f 207/352/6 220/350/6 217/351/6 +f 219/353/223 220/350/223 206/354/223 +f 216/355/132 221/356/132 219/357/132 +f 222/358/126 215/340/126 214/359/126 +f 204/360/132 215/340/132 223/361/132 +f 204/362/224 222/358/224 205/363/224 +f 205/364/6 214/359/6 213/365/6 +f 130/366/132 116/367/132 120/368/132 +f 225/369/52 227/370/52 224/371/52 +f 229/372/225 231/373/225 228/374/225 +f 230/375/226 233/376/226 231/373/226 +f 232/377/227 235/378/227 233/379/227 +f 234/380/228 237/381/228 235/378/228 +f 236/382/229 239/383/229 237/381/229 +f 238/384/230 241/385/230 239/383/230 +f 234/386/52 232/387/52 240/388/52 +f 240/389/231 243/390/231 241/385/231 +f 242/391/232 228/374/232 243/390/232 +f 397/392/233 246/393/233 396/394/233 +f 393/199/234 249/395/234 392/396/234 +f 400/397/235 245/398/235 244/399/235 +f 400/397/236 255/200/236 404/400/236 +f 396/394/237 245/398/237 401/401/237 +f 252/402/238 254/403/238 251/404/238 +f 406/405/239 249/395/239 248/406/239 +f 397/392/238 248/407/238 247/408/238 +f 257/409/240 259/410/240 256/411/240 +f 261/412/146 263/413/146 260/414/146 +f 265/415/237 266/416/237 264/417/237 +f 251/418/239 268/419/239 267/420/239 +f 260/414/236 257/421/236 269/422/236 +f 269/422/235 256/423/235 265/415/235 +f 264/417/233 253/424/233 252/402/233 +f 267/420/234 262/425/234 261/412/234 +f 271/426/146 273/427/146 270/428/146 +f 257/429/241 270/428/241 258/430/241 +f 268/431/242 271/426/242 262/432/242 +f 254/433/243 275/434/243 276/435/243 +f 256/436/244 277/437/244 266/438/244 +f 262/439/245 270/428/245 263/440/245 +f 254/441/246 274/442/246 268/431/246 +f 266/443/247 275/434/247 253/444/247 +f 278/445/248 280/446/248 281/447/248 +f 277/437/233 284/448/233 275/434/233 +f 258/430/235 279/449/235 259/410/235 +f 270/428/236 285/450/236 258/430/236 +f 274/442/234 272/451/234 271/426/234 +f 259/410/237 278/445/237 277/437/237 +f 287/452/236 289/453/236 286/454/236 +f 272/451/249 287/455/249 273/427/249 +f 283/456/250 291/457/250 292/458/250 +f 284/448/251 281/459/251 293/460/251 +f 285/450/252 295/461/252 279/449/252 +f 280/462/253 295/461/253 296/463/253 +f 283/456/254 290/464/254 272/451/254 +f 284/448/255 291/465/255 282/466/255 +f 298/467/6 300/468/6 297/469/6 +f 292/470/234 301/471/234 290/472/234 +f 293/473/238 298/474/238 291/475/238 +f 280/476/237 304/477/237 281/478/237 +f 290/472/146 288/479/146 287/452/146 +f 291/480/239 297/469/239 292/470/239 +f 281/478/233 302/481/233 293/473/233 +f 286/454/235 303/482/235 280/476/235 +f 306/483/233 308/484/233 305/485/233 +f 304/477/6 310/486/6 302/481/6 +f 289/453/6 312/487/6 303/482/6 +f 289/453/6 305/488/6 311/489/6 +f 301/471/6 300/490/6 306/491/6 +f 298/474/6 310/492/6 299/493/6 +f 304/477/6 312/494/6 309/495/6 +f 301/471/6 305/496/6 288/479/6 +f 318/497/6 308/498/6 315/499/6 +f 299/500/235 313/501/235 300/502/235 +f 309/503/146 315/504/146 310/505/146 +f 311/506/239 317/507/239 312/508/239 +f 305/485/238 318/509/238 311/506/238 +f 300/502/237 307/510/237 306/483/237 +f 310/505/236 314/511/236 299/512/236 +f 312/508/234 316/513/234 309/503/234 +f 327/514/256 329/515/256 276/516/256 +f 326/517/257 328/518/257 319/519/257 +f 327/520/258 332/521/258 331/522/258 +f 333/523/259 335/524/259 336/525/259 +f 337/526/260 336/525/260 338/527/260 +f 331/522/261 335/524/261 334/528/261 +f 339/529/262 341/530/262 330/531/262 +f 337/532/263 340/533/263 339/534/263 +f 320/535/264 328/518/264 327/536/264 +f 321/537/265 334/538/265 322/539/265 +f 324/540/266 339/541/266 325/542/266 +f 320/535/267 331/543/267 321/537/267 +f 322/539/268 333/544/268 323/545/268 +f 325/542/269 330/546/269 326/517/269 +f 330/547/270 329/515/270 328/548/270 +f 323/545/271 337/549/271 324/550/271 +f 340/533/234 343/551/234 341/530/234 +f 341/530/146 344/552/146 329/515/146 +f 336/525/238 346/553/238 338/527/238 +f 332/521/237 348/554/237 335/524/237 +f 338/527/239 342/555/239 340/533/239 +f 335/524/233 345/556/233 336/525/233 +f 346/553/272 349/557/272 350/558/272 +f 347/559/273 352/560/273 348/554/273 +f 344/552/274 353/561/274 354/562/274 +f 342/555/275 353/563/275 343/551/275 +f 346/553/276 355/564/276 342/555/276 +f 344/552/277 356/565/277 282/566/277 +f 347/559/278 356/567/278 351/568/278 +f 345/556/279 352/569/279 349/570/279 +f 356/571/235 358/572/235 351/573/235 +f 359/574/280 361/575/280 362/576/280 +f 352/577/233 364/578/233 349/579/233 +f 349/579/238 365/580/238 350/581/238 +f 351/573/237 363/582/237 352/577/237 +f 353/583/146 366/584/146 354/585/146 +f 355/586/234 359/587/234 353/583/234 +f 350/588/239 360/589/239 355/586/239 +f 354/585/236 357/590/236 356/571/236 +f 362/591/146 369/592/146 367/593/146 +f 360/594/281 370/595/281 361/596/281 +f 366/597/282 371/598/282 357/599/282 +f 358/600/283 371/601/283 372/602/283 +f 363/603/284 374/604/284 364/605/284 +f 364/606/285 370/607/285 365/608/285 +f 363/609/286 372/610/286 373/611/286 +f 359/612/287 367/593/287 366/613/287 +f 375/614/288 377/615/288 378/616/288 +f 361/575/234 368/617/234 362/576/234 +f 370/595/239 379/618/239 361/596/239 +f 367/619/236 381/620/236 371/598/236 +f 371/601/235 382/621/235 372/602/235 +f 373/622/233 375/614/233 374/604/233 +f 374/623/238 380/624/238 370/607/238 +f 372/610/237 376/625/237 373/611/237 +f 384/626/6 386/627/6 377/615/6 +f 380/624/289 378/616/289 386/627/289 +f 382/628/290 377/615/290 376/625/290 +f 369/592/291 384/626/291 383/629/291 +f 379/630/292 384/626/292 368/617/292 +f 380/631/293 385/632/293 379/618/293 +f 381/620/294 383/629/294 388/633/294 +f 381/634/295 387/635/295 382/621/295 +f 332/636/296 284/637/296 347/638/296 +f 329/639/297 283/640/297 274/641/297 +f 274/641/298 276/642/298 329/639/298 +f 283/640/299 344/643/299 282/644/299 +f 282/645/300 347/638/300 284/637/300 +f 276/646/301 275/647/301 332/636/301 +f 294/648/302 296/463/302 295/461/302 +f 294/648/303 391/649/303 389/650/303 +f 285/450/304 390/651/304 294/648/304 +f 287/652/305 390/651/305 273/427/305 +f 286/653/306 296/463/306 389/650/306 +f 286/653/307 391/649/307 287/654/307 +f 395/655/308 261/656/308 394/657/308 +f 398/658/309 264/659/309 252/660/309 +f 402/661/310 269/662/310 265/663/310 +f 405/664/311 269/665/311 403/666/311 +f 407/667/312 267/668/312 395/655/312 +f 399/669/313 265/663/313 264/670/313 +f 394/657/314 260/671/314 405/664/314 +f 407/667/315 252/672/315 251/673/315 +f 397/674/316 409/675/316 406/676/316 +f 408/677/238 407/667/238 409/675/238 +f 404/678/317 410/679/317 411/680/317 +f 411/680/318 394/657/318 405/664/318 +f 401/681/319 413/682/319 396/683/319 +f 412/684/320 399/669/320 413/682/320 +f 392/685/321 409/675/321 414/686/321 +f 409/675/239 395/655/239 414/686/239 +f 400/687/322 411/680/322 415/688/322 +f 400/689/323 412/684/323 401/681/323 +f 396/690/324 408/677/324 397/691/324 +f 413/682/233 398/658/233 408/677/233 +f 392/692/325 410/679/325 393/693/325 +f 414/686/234 394/657/234 410/679/234 +f 405/694/326 417/695/326 411/696/326 +f 417/695/327 415/697/327 411/696/327 +f 419/698/328 402/699/328 412/700/328 +f 420/701/329 403/702/329 402/703/329 +f 403/702/330 416/704/330 405/694/330 +f 415/697/331 419/698/331 412/700/331 +f 423/705/332 425/706/332 422/707/332 +f 417/695/66 422/708/66 425/706/66 +f 424/709/332 426/710/332 427/711/332 +f 418/712/132 427/711/132 419/698/132 +f 417/695/132 424/709/132 418/712/132 +f 419/698/52 426/713/52 420/714/52 +f 429/715/66 431/716/66 428/717/66 +f 432/718/132 433/719/132 434/720/132 +f 436/721/52 438/722/52 435/723/52 +f 439/724/6 440/725/6 441/726/6 +f 436/727/132 443/728/132 444/729/132 +f 429/730/6 446/731/6 447/732/6 +f 429/715/66 448/733/66 430/734/66 +f 436/721/52 449/735/52 437/736/52 +f 451/737/333 453/738/333 450/739/333 +f 455/740/334 457/741/334 454/742/334 +f 458/743/335 448/733/335 447/744/335 +f 461/745/336 444/746/336 460/747/336 +f 459/748/337 451/749/337 448/733/337 +f 455/740/332 450/739/332 456/750/332 +f 452/751/338 458/743/338 453/738/338 +f 454/742/339 461/745/339 460/747/339 +f 461/745/340 456/752/340 449/735/340 +f 451/737/341 443/728/341 462/753/341 +f 443/728/342 455/740/342 444/729/342 +f 456/750/343 446/731/343 463/754/343 +f 446/731/344 450/739/344 447/732/344 +f 463/754/6 437/755/6 449/756/6 +f 440/725/6 439/724/6 463/754/6 +f 462/753/132 430/757/132 448/758/132 +f 433/719/132 432/718/132 462/753/132 +f 455/759/345 460/747/345 444/746/345 +f 448/758/346 451/737/346 462/753/346 +f 450/760/347 458/743/347 447/744/347 +f 449/756/348 456/750/348 463/754/348 +f 445/761/6 429/730/6 428/762/6 +f 442/763/132 436/727/132 435/764/132 +f 26/39/349 42/61/349 40/40/349 +f 55/50/350 60/52/350 133/196/350 +f 58/223/351 54/154/351 125/153/351 +f 49/155/352 54/154/352 50/765/352 +f 134/174/353 44/173/353 133/196/353 +f 59/197/354 57/55/354 58/223/354 +f 25/25/11 33/31/11 32/150/11 +f 1/1/41 2/766/41 3/2/41 +f 4/3/355 3/2/355 5/4/355 +f 6/5/356 5/4/356 7/6/357 +f 10/8/358 11/767/358 12/9/358 +f 5/12/6 3/768/6 14/13/6 +f 3/768/6 2/769/6 13/770/6 +f 14/13/6 3/768/6 13/770/6 +f 14/13/6 15/771/6 7/11/6 +f 12/14/359 11/772/360 16/15/360 +f 14/17/361 13/20/361 19/18/361 +f 13/20/11 2/773/11 1/21/11 +f 20/22/362 21/774/362 22/23/362 +f 25/25/13 24/33/13 18/19/363 +f 27/26/364 28/775/364 29/27/364 +f 31/29/365 28/775/365 27/26/365 +f 33/31/11 25/25/11 19/18/11 +f 34/32/366 18/19/367 24/33/366 +f 36/35/18 37/776/18 38/36/18 +f 41/38/368 27/72/368 26/39/368 +f 40/40/369 42/61/369 43/41/369 +f 48/43/370 47/86/370 46/44/370 +f 53/48/371 49/777/371 50/778/371 +f 50/778/372 51/46/372 53/48/372 +f 34/32/373 35/34/373 54/49/373 +f 55/779/52 44/42/52 56/51/52 +f 44/42/374 43/41/374 56/51/374 +f 43/41/375 20/53/376 56/51/375 +f 12/14/377 17/16/378 57/55/378 +f 17/16/379 54/49/379 57/55/379 +f 54/49/66 58/780/66 57/55/66 +f 9/10/30 23/24/30 22/23/30 +f 63/59/380 21/781/380 20/53/381 +f 64/60/382 63/59/383 43/41/383 +f 17/16/384 16/15/384 65/62/385 +f 34/32/386 65/62/387 15/63/388 +f 30/66/41 66/73/41 32/67/41 +f 4/69/389 68/76/389 67/70/389 +f 27/72/43 41/38/43 66/73/43 +f 67/70/44 70/79/44 33/74/44 +f 6/75/390 69/80/390 68/76/390 +f 26/28/391 29/27/391 71/77/391 +f 70/79/392 31/29/392 30/30/392 +f 6/75/393 8/78/393 71/77/393 +f 72/81/394 47/86/395 73/82/395 +f 38/36/52 75/114/52 76/84/396 +f 77/85/397 73/82/397 47/86/397 +f 78/87/398 46/44/398 47/86/398 +f 80/88/399 48/43/399 45/45/399 +f 81/90/400 82/94/400 80/91/400 +f 83/93/401 84/97/401 82/94/401 +f 78/87/60 72/81/60 51/95/60 +f 36/35/402 39/37/402 84/97/402 +f 86/98/403 85/116/403 73/82/403 +f 87/99/63 88/108/63 89/100/63 +f 91/102/404 94/110/404 93/103/404 +f 95/105/405 77/85/405 48/43/405 +f 51/95/66 72/81/406 74/83/407 +f 82/94/408 92/104/408 95/107/408 +f 39/37/409 76/84/410 91/102/411 +f 84/97/412 91/102/412 92/104/412 +f 87/99/413 141/191/413 140/185/413 +f 52/47/414 51/46/414 88/108/414 +f 87/99/413 140/185/413 52/47/413 +f 97/109/73 96/112/73 93/103/73 +f 94/110/74 98/115/415 99/111/74 +f 96/112/76 101/141/76 100/113/76 +f 75/114/52 102/782/52 98/115/416 +f 74/83/395 73/82/417 85/116/417 +f 100/118/418 86/98/418 77/85/418 +f 88/106/66 74/83/419 103/117/420 +f 92/104/421 93/103/421 100/113/421 +f 76/84/422 98/115/423 94/110/424 +f 104/120/66 105/126/425 106/121/66 +f 101/123/426 110/783/426 109/124/426 +f 105/126/427 111/129/428 112/127/428 +f 89/100/90 104/784/90 113/128/90 +f 86/98/91 108/125/91 111/129/91 +f 98/115/429 102/782/52 114/130/52 +f 85/116/95 111/129/95 105/126/430 +f 100/118/97 101/123/97 108/125/97 +f 103/117/431 105/126/432 104/120/66 +f 106/131/99 112/138/99 115/132/99 +f 118/134/52 119/171/52 120/135/52 +f 121/137/100 115/132/100 112/138/100 +f 122/140/433 110/785/433 101/141/433 +f 99/111/434 117/145/435 123/142/435 +f 97/109/436 123/142/436 122/140/436 +f 113/128/106 104/784/106 107/143/106 +f 109/124/437 112/127/437 111/129/437 +f 114/130/52 118/786/52 117/145/52 +f 41/38/438 40/40/439 36/146/440 +f 35/34/441 78/152/442 50/148/112 +f 83/147/443 81/149/443 66/73/443 +f 81/149/444 79/787/444 32/67/444 +f 32/150/445 79/788/445 45/151/445 +f 24/33/446 46/156/446 78/152/447 +f 25/25/448 45/151/448 46/156/448 +f 40/40/449 44/42/122 37/157/122 +f 129/158/124 121/137/124 109/139/124 +f 107/160/66 106/131/66 116/133/66 +f 122/162/125 127/167/125 129/163/125 +f 117/136/126 120/135/126 126/165/126 +f 123/166/127 126/165/127 127/167/127 +f 124/168/128 107/160/128 130/161/128 +f 132/170/129 128/172/129 119/171/129 +f 124/168/130 131/169/130 128/172/130 +f 135/176/132 136/204/132 137/177/132 +f 138/179/133 132/182/133 118/180/133 +f 113/128/134 124/144/134 132/182/134 +f 102/183/135 139/184/135 138/179/135 +f 90/101/136 113/128/136 138/179/136 +f 140/185/450 141/191/450 75/186/450 +f 170/188/451 171/252/452 467/189/453 +f 141/191/140 139/184/140 102/183/140 +f 87/99/141 90/101/141 139/184/141 +f 38/187/454 37/789/454 135/192/454 +f 37/789/455 134/790/455 135/192/455 +f 133/193/456 60/791/456 142/194/456 +f 62/56/457 57/55/457 9/64/457 +f 56/51/458 61/54/458 23/57/458 +f 393/199/146 404/400/146 255/200/146 +f 142/194/147 143/215/147 144/202/147 +f 136/204/148 144/228/148 145/205/148 +f 134/195/147 142/194/147 136/203/147 +f 125/207/459 49/210/459 146/208/459 +f 49/210/150 53/792/150 137/211/150 +f 148/212/151 149/224/151 150/213/151 +f 143/215/152 147/217/152 150/213/152 +f 142/194/460 60/791/460 147/217/460 +f 59/219/153 148/212/153 147/214/153 +f 146/208/150 137/211/150 145/220/150 +f 146/208/158 152/221/158 148/222/158 +f 149/224/156 153/225/156 151/216/156 +f 153/225/157 154/227/157 155/226/157 +f 152/221/150 145/220/150 154/227/150 +f 152/221/158 153/225/158 149/224/158 +f 144/228/159 156/238/159 157/229/159 +f 143/215/147 151/216/147 155/226/147 +f 157/230/66 159/247/66 160/231/66 +f 154/227/160 158/232/160 161/233/160 +f 144/202/52 155/226/52 161/233/52 +f 145/220/66 157/230/66 158/232/66 +f 162/235/52 163/240/52 164/236/52 +f 156/238/161 162/248/161 159/239/161 +f 156/234/52 161/233/52 163/240/52 +f 158/232/162 160/245/162 163/241/162 +f 167/242/66 168/262/461 169/243/462 +f 160/245/164 166/253/164 164/246/164 +f 159/247/66 167/242/66 166/244/66 +f 162/248/165 165/250/165 167/249/165 +f 165/250/166 170/259/166 168/251/166 +f 165/237/52 164/236/52 171/252/463 +f 166/253/169 169/256/169 171/254/169 +f 467/255/170 171/254/464 169/256/170 +f 465/258/171 168/251/171 170/259/171 +f 464/261/465 169/243/466 168/262/467 +f 172/264/66 173/793/66 174/265/66 +f 174/267/174 176/794/174 177/268/174 +f 176/270/52 178/795/52 179/271/52 +f 178/273/468 173/796/468 172/274/468 +f 177/268/176 180/286/176 181/276/176 +f 183/277/177 184/294/177 185/278/177 +f 175/266/66 181/288/66 183/280/66 +f 177/272/52 179/271/52 182/281/52 +f 172/274/178 183/277/178 182/279/178 +f 185/283/52 187/290/52 188/284/52 +f 180/286/179 186/296/179 189/287/179 +f 180/282/52 182/281/52 185/283/52 +f 181/288/66 189/797/66 184/289/66 +f 187/290/469 190/310/469 191/291/469 +f 184/289/66 189/797/66 192/292/66 +f 184/294/181 193/798/181 187/295/181 +f 186/296/182 188/303/182 192/297/182 +f 194/298/470 195/306/184 196/299/184 +f 193/293/471 192/292/471 197/301/471 +f 187/295/187 193/798/187 194/298/472 +f 188/303/190 191/799/190 197/304/190 +f 199/305/191 196/299/191 195/306/191 +f 197/304/192 191/799/192 199/308/192 +f 190/310/193 196/800/193 199/311/193 +f 194/302/194 197/301/194 198/312/194 +f 53/48/195 52/47/195 140/185/195 +f 15/314/196 200/323/196 201/315/196 +f 65/317/6 16/320/6 63/318/6 +f 16/320/6 11/322/6 21/321/6 +f 11/322/197 10/8/197 22/23/197 +f 8/7/473 7/6/474 64/60/475 +f 200/323/196 202/336/196 203/324/196 +f 7/316/476 201/315/204 204/325/204 +f 15/314/477 65/349/478 206/327/479 +f 64/329/207 208/337/207 209/330/207 +f 202/332/6 210/338/6 211/333/6 +f 209/335/208 210/801/208 202/336/208 +f 208/337/207 211/333/207 210/338/207 +f 201/315/209 203/324/209 211/333/209 +f 213/339/210 214/359/210 215/340/210 +f 7/316/480 205/326/481 213/342/481 +f 201/315/482 208/337/482 212/343/482 +f 64/329/483 213/342/204 212/343/204 +f 207/344/216 217/351/216 218/345/216 +f 15/314/484 207/328/218 216/347/218 +f 200/323/485 216/347/485 219/348/485 +f 65/349/486 209/335/222 219/348/222 +f 220/350/99 221/356/99 218/345/99 +f 207/352/6 206/802/6 220/350/6 +f 219/353/223 221/356/223 220/350/223 +f 216/355/132 218/345/132 221/356/132 +f 222/358/126 223/361/126 215/340/126 +f 204/360/132 212/803/132 215/340/132 +f 204/362/224 223/361/224 222/358/224 +f 205/364/6 222/358/6 214/359/6 +f 116/367/487 115/804/488 120/368/487 +f 115/804/489 121/805/490 126/806/491 +f 120/368/487 115/804/492 126/806/487 +f 121/805/493 129/807/132 127/808/494 +f 127/808/495 126/806/491 121/805/496 +f 120/368/132 119/809/132 130/366/132 +f 119/809/132 128/810/132 131/811/132 +f 130/366/132 119/809/132 131/811/132 +f 225/369/52 226/812/52 227/370/52 +f 229/372/225 230/375/225 231/373/225 +f 230/375/226 232/813/226 233/376/226 +f 232/377/227 234/380/227 235/378/227 +f 234/380/228 236/382/228 237/381/228 +f 236/382/229 238/384/229 239/383/229 +f 238/384/230 240/389/230 241/385/230 +f 232/387/52 230/814/52 240/388/52 +f 230/814/52 229/815/52 240/388/52 +f 229/815/52 242/816/52 240/388/52 +f 240/388/52 238/817/52 236/818/52 +f 236/818/52 234/386/52 240/388/52 +f 240/389/231 242/391/231 243/390/231 +f 242/391/232 229/372/232 228/374/232 +f 397/392/233 247/408/233 246/393/233 +f 393/199/234 250/201/234 249/395/234 +f 400/397/235 401/401/235 245/398/235 +f 400/397/236 244/399/236 255/200/236 +f 396/394/237 246/393/237 245/398/237 +f 252/402/238 253/424/238 254/403/238 +f 406/405/239 392/396/239 249/395/239 +f 397/392/238 406/819/238 248/407/238 +f 257/409/497 258/430/497 259/410/497 +f 261/412/146 262/425/146 263/413/146 +f 265/415/237 256/423/237 266/416/237 +f 251/418/239 254/820/239 268/419/239 +f 260/414/236 263/413/236 257/421/236 +f 269/422/235 257/421/235 256/423/235 +f 264/417/233 266/416/233 253/424/233 +f 267/420/234 268/419/234 262/425/234 +f 271/426/146 272/451/146 273/427/146 +f 257/429/498 263/821/498 270/428/498 +f 268/431/242 274/442/242 271/426/242 +f 254/433/499 253/444/499 275/434/499 +f 256/436/244 259/410/244 277/437/244 +f 262/439/245 271/426/245 270/428/245 +f 254/441/500 276/822/500 274/442/500 +f 266/443/247 277/437/247 275/434/247 +f 278/445/248 279/449/248 280/446/248 +f 277/437/233 278/445/233 284/448/233 +f 258/430/235 285/450/235 279/449/235 +f 270/428/236 273/427/236 285/450/236 +f 274/442/234 283/456/234 272/451/234 +f 259/410/237 279/449/237 278/445/237 +f 287/452/236 288/479/236 289/453/236 +f 272/451/249 290/823/249 287/455/249 +f 283/456/501 282/824/501 291/457/501 +f 284/448/251 278/445/251 281/459/251 +f 285/450/502 294/648/502 295/461/502 +f 280/462/503 279/449/503 295/461/503 +f 283/456/254 292/458/254 290/464/254 +f 284/448/504 293/460/504 291/465/504 +f 298/467/6 299/825/6 300/468/6 +f 292/470/234 297/469/234 301/471/234 +f 293/473/238 302/481/238 298/474/238 +f 280/476/237 303/482/237 304/477/237 +f 290/472/146 301/471/146 288/479/146 +f 291/480/239 298/467/239 297/469/239 +f 281/478/233 304/477/233 302/481/233 +f 286/454/235 289/453/235 303/482/235 +f 306/483/233 307/510/233 308/484/233 +f 304/477/6 309/826/6 310/486/6 +f 289/453/6 311/827/6 312/487/6 +f 289/453/6 288/479/6 305/488/6 +f 301/471/6 297/469/6 300/490/6 +f 298/474/6 302/481/6 310/492/6 +f 304/477/6 303/482/6 312/494/6 +f 301/471/6 306/828/6 305/496/6 +f 308/498/6 307/829/6 313/830/6 +f 313/830/6 314/831/6 308/498/6 +f 314/831/6 315/499/6 308/498/6 +f 315/499/6 316/832/6 317/833/6 +f 317/833/6 318/497/6 315/499/6 +f 299/500/235 314/834/235 313/501/235 +f 309/503/146 316/513/146 315/504/146 +f 311/506/239 318/509/239 317/507/239 +f 305/485/238 308/484/238 318/509/238 +f 300/502/237 313/501/237 307/510/237 +f 310/505/236 315/504/236 314/511/236 +f 312/508/234 317/507/234 316/513/234 +f 327/514/505 328/548/505 329/515/505 +f 326/517/257 330/546/257 328/518/257 +f 327/520/506 276/835/506 332/521/506 +f 333/523/259 334/836/259 335/524/259 +f 337/526/260 333/837/260 336/525/260 +f 331/522/261 332/521/261 335/524/261 +f 339/529/262 340/533/262 341/530/262 +f 337/532/263 338/527/263 340/533/263 +f 320/535/264 319/519/264 328/518/264 +f 321/537/265 331/543/265 334/538/265 +f 324/540/266 337/838/266 339/541/266 +f 320/535/267 327/536/267 331/543/267 +f 322/539/268 334/538/268 333/544/268 +f 325/542/269 339/541/269 330/546/269 +f 330/547/270 341/530/270 329/515/270 +f 323/545/271 333/544/271 337/549/271 +f 340/533/234 342/555/234 343/551/234 +f 341/530/146 343/551/146 344/552/146 +f 336/525/238 345/556/238 346/553/238 +f 332/521/237 347/559/237 348/554/237 +f 338/527/239 346/553/239 342/555/239 +f 335/524/233 348/554/233 345/556/233 +f 346/553/272 345/556/272 349/557/272 +f 347/559/273 351/568/273 352/560/273 +f 344/552/274 343/551/274 353/561/274 +f 342/555/507 355/839/507 353/563/507 +f 346/553/276 350/840/276 355/564/276 +f 344/552/508 354/562/508 356/565/508 +f 347/559/509 282/841/509 356/567/509 +f 345/556/510 348/554/510 352/569/510 +f 356/571/235 357/590/235 358/572/235 +f 359/574/511 360/842/511 361/575/511 +f 352/577/233 363/582/233 364/578/233 +f 349/579/238 364/578/238 365/580/238 +f 351/573/237 358/572/237 363/582/237 +f 353/583/146 359/587/146 366/584/146 +f 355/586/234 360/589/234 359/587/234 +f 350/588/239 365/843/239 360/589/239 +f 354/585/236 366/584/236 357/590/236 +f 362/591/146 368/844/146 369/592/146 +f 360/594/281 365/845/281 370/595/281 +f 366/597/282 367/619/282 371/598/282 +f 358/600/283 357/846/283 371/601/283 +f 363/603/512 373/622/512 374/604/512 +f 364/606/285 374/623/285 370/607/285 +f 363/609/513 358/847/513 372/610/513 +f 359/612/514 362/591/514 367/593/514 +f 375/614/288 376/848/288 377/615/288 +f 361/575/234 379/630/234 368/617/234 +f 370/595/239 380/631/239 379/618/239 +f 367/619/236 369/849/236 381/620/236 +f 371/601/235 381/634/235 382/621/235 +f 373/622/233 376/848/233 375/614/233 +f 374/623/238 375/850/238 380/624/238 +f 372/610/237 382/628/237 376/625/237 +f 388/633/6 383/629/6 384/626/6 +f 384/626/6 385/632/6 386/627/6 +f 386/627/6 378/616/6 377/615/6 +f 377/615/6 387/635/6 388/633/6 +f 388/633/6 384/626/6 377/615/6 +f 380/624/289 375/850/289 378/616/289 +f 382/628/290 387/635/290 377/615/290 +f 369/592/291 368/844/291 384/626/291 +f 379/630/292 385/632/292 384/626/292 +f 380/631/293 386/627/293 385/632/293 +f 381/620/294 369/849/294 383/629/294 +f 381/634/295 388/633/295 387/635/295 +f 332/636/296 275/647/296 284/637/296 +f 329/639/297 344/643/297 283/640/297 +f 294/648/515 389/650/515 296/463/515 +f 294/648/516 390/651/516 391/649/516 +f 285/450/517 273/427/517 390/651/517 +f 287/652/518 391/649/518 390/651/518 +f 286/653/519 280/851/519 296/463/519 +f 286/653/520 389/650/520 391/649/520 +f 395/655/308 267/852/308 261/656/308 +f 398/658/309 399/669/309 264/659/309 +f 402/661/521 403/853/521 269/662/521 +f 405/664/522 260/671/522 269/665/522 +f 407/667/312 251/854/312 267/668/312 +f 399/669/523 402/661/523 265/663/523 +f 394/657/524 261/855/524 260/671/524 +f 407/667/315 398/658/315 252/672/315 +f 397/674/525 408/677/525 409/675/525 +f 408/677/238 398/658/238 407/667/238 +f 404/678/526 393/856/526 410/679/526 +f 411/680/318 410/679/318 394/657/318 +f 401/681/527 412/684/527 413/682/527 +f 412/684/320 402/661/320 399/669/320 +f 392/685/528 406/857/528 409/675/528 +f 409/675/239 407/667/239 395/655/239 +f 400/687/529 404/678/529 411/680/529 +f 400/689/530 415/858/530 412/684/530 +f 396/690/531 413/682/531 408/677/531 +f 413/682/233 399/669/233 398/658/233 +f 392/692/532 414/686/532 410/679/532 +f 414/686/234 395/655/234 394/657/234 +f 405/694/326 416/704/326 417/695/326 +f 417/695/533 418/712/533 415/697/533 +f 419/698/328 420/714/328 402/699/328 +f 420/701/534 421/859/534 403/702/534 +f 403/702/534 421/859/534 416/704/534 +f 415/697/533 418/712/533 419/698/533 +f 423/705/332 424/709/332 425/706/332 +f 417/695/66 416/704/66 422/708/66 +f 424/709/332 423/705/332 426/710/332 +f 418/712/132 424/709/132 427/711/132 +f 417/695/132 425/706/132 424/709/132 +f 419/698/52 427/711/52 426/713/52 +f 429/715/66 430/734/66 431/716/66 +f 434/720/132 431/860/132 432/718/132 +f 431/860/132 430/757/132 432/718/132 +f 436/721/52 437/736/52 438/722/52 +f 441/726/6 438/861/6 439/724/6 +f 438/861/6 437/755/6 439/724/6 +f 436/727/132 442/763/132 443/728/132 +f 429/730/6 445/761/6 446/731/6 +f 429/715/66 447/744/66 448/733/66 +f 436/721/52 444/746/52 449/735/52 +f 451/737/333 452/751/333 453/738/333 +f 455/740/334 456/750/334 457/741/334 +f 458/743/335 459/748/335 448/733/335 +f 461/745/336 449/735/336 444/746/336 +f 459/748/535 452/862/535 451/749/535 +f 455/740/332 451/737/332 450/739/332 +f 452/751/536 459/748/536 458/743/536 +f 454/742/339 457/741/339 461/745/339 +f 461/745/537 457/863/537 456/752/537 +f 451/737/341 455/740/341 443/728/341 +f 456/750/343 450/739/343 446/731/343 +f 463/754/538 439/724/538 437/755/538 +f 463/754/6 446/731/6 440/725/6 +f 446/731/6 445/761/6 440/725/6 +f 462/753/132 432/718/132 430/757/132 +f 462/753/132 443/728/132 433/719/132 +f 443/728/132 442/763/132 433/719/132 +f 455/759/539 454/864/539 460/747/539 +f 450/760/540 453/865/540 458/743/540 +f 428/762/6 441/726/6 445/761/6 +f 441/726/6 440/725/6 445/761/6 +f 435/764/132 434/720/132 442/763/132 +f 434/720/132 433/719/132 442/763/132 +f 26/39/541 8/7/541 42/61/541 +f 421/859/6 423/705/6 416/704/6 +f 29/27/542 23/77/543 71/77/544 +f 67/70/545 471/79/545 70/79/545 +f 470/70/546 473/79/546 471/79/546 +f 473/79/52 474/70/52 475/79/52 +f 475/79/547 9/70/548 477/79/549 +f 23/57/550 468/866/550 56/51/550 +f 477/198/550 9/64/550 57/55/550 +f 468/866/145 60/52/145 56/51/145 +f 472/70/551 485/70/551 474/70/551 +f 479/867/552 468/866/553 59/197/554 +f 478/80/555 485/70/556 483/70/555 +f 470/70/557 484/70/557 472/70/557 +f 69/80/558 482/77/558 478/80/558 +f 67/70/559 483/70/559 470/70/559 +f 71/77/560 469/77/561 482/77/562 +f 474/70/563 481/70/564 9/70/565 +f 68/76/566 478/80/566 480/76/566 +f 67/70/567 480/76/567 476/70/567 +f 23/24/568 481/10/568 469/24/568 +f 321/868/132 323/868/132 325/868/132 +f 246/869/132 248/869/132 250/869/132 +f 487/870/66 486/871/66 489/872/66 +f 487/870/66 489/872/66 488/873/66 +f 147/214/153 60/874/153 479/218/153 +f 421/859/6 420/701/6 426/713/6 +f 423/705/6 422/707/6 416/704/6 +f 421/859/6 426/713/6 423/705/6 +f 29/27/569 468/27/570 23/77/571 +f 67/70/545 470/70/545 471/79/545 +f 470/70/546 472/70/546 473/79/546 +f 473/79/52 472/70/52 474/70/52 +f 475/79/572 474/70/573 9/70/574 +f 472/70/551 484/70/551 485/70/551 +f 479/867/575 60/52/145 468/866/576 +f 468/866/577 477/198/145 59/197/578 +f 476/70/579 480/76/579 478/80/579 +f 478/80/580 482/77/580 469/77/581 +f 469/77/582 481/10/583 485/70/584 +f 485/70/585 484/70/132 483/70/132 +f 483/70/586 476/70/586 478/80/586 +f 478/80/587 469/77/588 485/70/589 +f 470/70/557 483/70/557 484/70/557 +f 69/80/558 71/77/558 482/77/558 +f 67/70/559 476/70/559 483/70/559 +f 71/77/590 23/77/591 469/77/592 +f 474/70/593 485/70/594 481/70/595 +f 68/76/566 69/80/566 478/80/566 +f 67/70/567 68/76/567 480/76/567 +f 23/24/568 9/10/568 481/10/568 +f 325/868/132 326/868/132 319/868/132 +f 319/868/132 320/868/132 321/868/132 +f 321/868/132 322/868/132 323/868/132 +f 323/868/132 324/868/132 325/868/132 +f 325/868/132 319/868/132 321/868/132 +f 250/869/132 255/869/132 244/869/132 +f 244/869/132 245/869/132 246/869/132 +f 246/869/132 247/869/132 248/869/132 +f 248/869/132 249/869/132 250/869/132 +f 250/869/132 244/869/132 246/869/132 +o Pump +v 0.000000 0.935654 2.185543 +v -0.193840 1.015945 2.185543 +v -0.214852 0.994933 2.177396 +v 0.000000 0.905939 2.177396 +v -0.193840 1.403625 2.185543 +v -0.274131 1.209785 2.185543 +v -0.274131 1.209785 3.266089 +v -0.193840 1.403625 3.266089 +v 0.000000 1.483656 2.185543 +v 0.000000 1.483656 3.266089 +v 0.274131 1.209785 2.185543 +v 0.193656 1.403441 2.185543 +v 0.193656 1.403441 3.266089 +v 0.274131 1.209785 3.266089 +v 0.000000 0.935915 3.266089 +v -0.193840 1.015945 3.266089 +v 0.193656 1.016130 2.185543 +v 0.193656 1.016130 3.266089 +v 0.000000 1.513631 2.177396 +v 0.214852 1.424637 2.177396 +v 0.214852 1.424637 2.113585 +v 0.000000 1.513631 2.113585 +v -0.214852 1.424637 2.177396 +v 0.214852 0.994933 2.177396 +v -0.303846 1.209785 2.177396 +v 0.303846 1.209785 2.177396 +v -0.214852 0.994933 2.113585 +v -0.303846 1.209785 2.113585 +v -0.273445 1.209785 2.100498 +v -0.193355 1.016430 2.100498 +v -0.214852 1.424637 2.113585 +v 0.000000 0.905939 2.113585 +v 0.214852 0.994933 2.113585 +v 0.303846 1.209785 2.113585 +v -0.193355 1.403140 2.100498 +v 0.000000 1.483230 2.100498 +v 0.193355 1.403140 2.100498 +v 0.273445 1.209785 2.100498 +v 0.193355 1.016430 2.100498 +v 0.000000 0.936340 2.100498 +v 0.000000 0.905939 3.274235 +v -0.214852 0.994933 3.274235 +v 0.000000 1.513631 3.274235 +v 0.000000 1.513631 3.338046 +v 0.214852 1.424637 3.338046 +v 0.214852 1.424637 3.274235 +v -0.214852 1.424637 3.274235 +v 0.214852 0.994933 3.274235 +v -0.303846 1.209785 3.274235 +v 0.303846 1.209785 3.274235 +v -0.214852 0.994933 3.338046 +v -0.193355 1.016430 3.351134 +v -0.273445 1.209785 3.351134 +v -0.303846 1.209785 3.338046 +v -0.214852 1.424637 3.338046 +v 0.214852 0.994933 3.338046 +v 0.000000 0.905939 3.338046 +v 0.303846 1.209785 3.338046 +v -0.193355 1.403140 3.351134 +v 0.000000 0.936340 3.351134 +v 0.193355 1.016430 3.351134 +v 0.273445 1.209785 3.351134 +v 0.193355 1.403140 3.351134 +v 0.000000 1.483230 3.351134 +v 0.213936 1.724480 -0.012808 +v 0.213408 1.585937 -0.012808 +v 0.151081 1.887906 -0.012808 +v -0.003170 1.954868 0.910839 +v 0.151354 1.887197 0.910326 +v 0.213936 1.724480 0.909649 +v -0.003170 1.954868 -0.012807 +v 0.213616 1.585937 0.909317 +vn -0.1089 -0.2629 0.9587 +vn -0.9239 0.3827 -0.0000 +vn -0.3816 0.9243 -0.0000 +vn 0.9234 0.3837 -0.0000 +vn -0.3816 -0.9243 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn 0.9234 -0.3837 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.3837 -0.9234 0.0002 +vn -0.1089 0.2628 0.9587 +vn 0.1083 -0.2605 0.9594 +vn 0.1080 0.2607 0.9593 +vn -0.2628 0.1089 0.9587 +vn -0.2628 -0.1089 0.9587 +vn 0.2628 -0.1089 0.9587 +vn 0.2605 0.1083 0.9594 +vn -0.3902 -0.1616 -0.9064 +vn -0.3827 0.9239 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.3902 0.1616 -0.9064 +vn -0.1616 -0.3902 -0.9064 +vn 0.1616 0.3902 -0.9064 +vn -0.1616 0.3902 -0.9064 +vn 0.1616 -0.3902 -0.9064 +vn -0.3902 0.1616 -0.9064 +vn 0.3902 -0.1616 -0.9064 +vn -0.1076 -0.2607 -0.9594 +vn -0.1076 0.2607 -0.9594 +vn 0.1080 -0.2607 -0.9594 +vn 0.1080 0.2607 -0.9594 +vn -0.2628 0.1089 -0.9587 +vn -0.2628 -0.1089 -0.9587 +vn 0.2605 -0.1082 -0.9594 +vn 0.2605 0.1082 -0.9594 +vn -0.3902 -0.1616 0.9064 +vn -0.0000 -0.0000 1.0000 +vn 0.3902 0.1616 0.9064 +vn -0.1616 -0.3902 0.9064 +vn 0.1616 0.3902 0.9064 +vn -0.1616 0.3902 0.9064 +vn 0.1616 -0.3902 0.9064 +vn -0.3902 0.1616 0.9064 +vn 0.3902 -0.1616 0.9064 +vn -0.1089 -0.2628 0.9587 +vn -0.3827 -0.9239 0.0002 +vn -0.1077 0.2608 0.9594 +vn 0.1089 -0.2628 0.9587 +vn 0.2605 -0.1083 0.9594 +vn 0.2628 0.1089 0.9587 +vn -0.1089 -0.2628 -0.9587 +vn -0.1089 0.2628 -0.9587 +vn 0.2628 -0.1089 -0.9587 +vn 0.2628 0.1089 -0.9587 +vn 0.9333 0.3590 -0.0000 +vn 0.4012 0.9160 -0.0000 +vn 1.0000 -0.0023 -0.0000 +vn 0.3982 0.9173 0.0006 +vn 1.0000 -0.0038 -0.0002 +vt 0.270772 0.347832 +vt 0.259071 0.363013 +vt 0.258022 0.360582 +vt 0.124225 0.531799 +vt 0.000380 0.526709 +vt 0.124223 0.526706 +vt 0.000378 0.521619 +vt 0.124220 0.521617 +vt 0.124223 0.557252 +vt 0.000382 0.552160 +vt 0.124225 0.552162 +vt 0.124227 0.536891 +vt 0.000387 0.541983 +vt 0.000384 0.536893 +vt 0.124221 0.562339 +vt 0.000380 0.557249 +vt 0.000384 0.547070 +vt 0.124227 0.547073 +vt 0.000382 0.531801 +vt 0.124229 0.541983 +vt 0.301296 0.405237 +vt 0.311550 0.387228 +vt 0.315428 0.391106 +vt 0.319568 0.368044 +vt 0.317107 0.387052 +vt 0.317107 0.367067 +vt 0.254931 0.368044 +vt 0.257392 0.387052 +vt 0.254911 0.386066 +vt 0.303748 0.406295 +vt 0.316485 0.393557 +vt 0.316477 0.360581 +vt 0.301296 0.348881 +vt 0.303727 0.347832 +vt 0.278234 0.344741 +vt 0.297242 0.347202 +vt 0.277257 0.347202 +vt 0.270772 0.406287 +vt 0.259071 0.391106 +vt 0.273203 0.405237 +vt 0.278234 0.409377 +vt 0.297242 0.406917 +vt 0.296257 0.409397 +vt 0.297242 0.352686 +vt 0.278257 0.355349 +vt 0.277257 0.352686 +vt 0.311623 0.367067 +vt 0.257392 0.367067 +vt 0.262876 0.387052 +vt 0.315428 0.363013 +vt 0.297418 0.352759 +vt 0.277081 0.401360 +vt 0.277257 0.406917 +vt 0.297242 0.401433 +vt 0.273203 0.348881 +vt 0.262949 0.366891 +vt 0.308960 0.386052 +vt 0.278257 0.398770 +vt 0.265539 0.368067 +vt 0.277257 0.401433 +vt 0.296243 0.398770 +vt 0.311623 0.387052 +vt 0.308960 0.368067 +vt 0.262876 0.367067 +vt 0.265539 0.386052 +vt 0.296242 0.355349 +vt 0.189118 0.377388 +vt 0.194118 0.395891 +vt 0.187203 0.379249 +vt 0.246869 0.375099 +vt 0.244287 0.354537 +vt 0.251935 0.373001 +vt 0.246935 0.395891 +vt 0.251935 0.377389 +vt 0.253850 0.379249 +vt 0.196766 0.354537 +vt 0.187203 0.371141 +vt 0.194097 0.354498 +vt 0.246956 0.354498 +vt 0.253850 0.371141 +vt 0.222720 0.406603 +vt 0.241223 0.401603 +vt 0.224565 0.408503 +vt 0.199830 0.401603 +vt 0.218332 0.406603 +vt 0.216488 0.408503 +vt 0.216488 0.341886 +vt 0.199869 0.351434 +vt 0.199830 0.348765 +vt 0.241184 0.351434 +vt 0.224565 0.341886 +vt 0.241223 0.348765 +vt 0.203910 0.391811 +vt 0.220431 0.401537 +vt 0.201967 0.393889 +vt 0.239221 0.393754 +vt 0.244287 0.395853 +vt 0.201832 0.356635 +vt 0.189118 0.373001 +vt 0.220622 0.401537 +vt 0.241184 0.398955 +vt 0.220431 0.348853 +vt 0.218333 0.343786 +vt 0.199868 0.398955 +vt 0.239086 0.356501 +vt 0.222720 0.343786 +vt 0.194184 0.375290 +vt 0.196766 0.395853 +vt 0.197027 0.375195 +vt 0.220527 0.351695 +vt 0.244026 0.375195 +vt 0.237143 0.358578 +vt 0.220622 0.348852 +vt 0.201832 0.393754 +vt 0.239221 0.356635 +vt 0.237143 0.391811 +vt 0.246869 0.375290 +vt 0.203910 0.358578 +vt 0.194184 0.375099 +vt 0.239086 0.393889 +vt 0.201967 0.356500 +vt 0.000378 0.562337 +vt 0.297419 0.401360 +vt 0.319588 0.386066 +vt 0.296265 0.344741 +vt 0.258014 0.393557 +vt 0.311550 0.366891 +vt 0.262949 0.387228 +vt 0.277081 0.352759 +vt 0.220526 0.398694 +vt 0.137874 0.640852 +vt 0.058604 0.613805 +vt 0.138976 0.617246 +vt 0.064584 0.595461 +vt 0.133379 0.595700 +vt 0.134776 0.656441 +vt 0.059414 0.638152 +vt 0.062578 0.655711 +s 0 +f 491/875/596 493/876/596 490/877/596 +f 495/878/597 497/879/597 494/880/597 +f 494/880/598 499/881/598 498/882/598 +f 501/883/599 503/884/599 500/885/599 +f 491/886/600 504/887/600 505/888/600 +f 498/889/601 502/890/601 501/883/601 +f 500/885/602 507/891/602 506/892/602 +f 491/886/603 496/893/603 495/878/603 +f 506/892/604 504/887/604 490/894/604 +f 509/895/601 511/896/601 508/897/601 +f 494/898/605 508/899/605 512/900/605 +f 490/901/606 513/902/606 506/903/606 +f 501/904/607 508/897/607 498/905/607 +f 494/906/608 514/907/608 495/908/608 +f 491/909/609 514/910/609 492/911/609 +f 500/912/610 513/913/610 515/914/610 +f 500/915/611 509/916/611 501/917/611 +f 517/918/612 519/919/612 516/920/612 +f 508/899/613 520/921/613 512/900/613 +f 493/922/614 522/923/614 513/902/614 +f 512/924/597 517/925/597 514/907/597 +f 513/913/615 523/926/615 515/914/615 +f 514/910/603 516/920/603 492/911/603 +f 515/927/616 510/928/616 509/916/616 +f 492/929/617 521/930/617 493/876/617 +f 525/931/618 527/932/618 529/933/618 +f 523/934/619 526/935/619 510/928/619 +f 521/930/620 519/919/620 529/933/620 +f 511/896/621 526/935/621 525/931/621 +f 511/936/622 524/937/622 520/921/622 +f 521/938/623 528/939/623 522/923/623 +f 517/925/624 524/937/624 518/940/624 +f 523/926/625 528/939/625 527/932/625 +f 530/941/626 505/942/626 504/943/626 +f 533/944/601 535/945/601 532/946/601 +f 497/947/627 532/948/627 499/949/627 +f 537/950/628 504/951/628 507/952/628 +f 532/946/629 502/953/629 499/954/629 +f 538/955/630 497/956/630 496/957/630 +f 505/958/631 538/959/631 496/960/631 +f 503/961/632 537/962/632 507/963/632 +f 535/964/633 503/965/633 502/966/633 +f 541/967/634 543/968/634 540/969/634 +f 544/970/613 532/948/613 536/971/613 +f 545/972/614 530/973/614 537/950/614 +f 543/974/597 536/975/597 538/955/597 +f 547/976/615 537/962/615 539/977/615 +f 540/969/603 538/959/603 531/978/603 +f 534/979/616 539/980/616 535/964/616 +f 546/981/617 531/982/617 530/941/617 +f 549/983/635 551/984/635 553/985/635 +f 552/986/636 547/987/636 534/979/636 +f 549/983/637 540/988/637 546/981/637 +f 533/944/638 552/986/638 534/989/638 +f 548/990/639 533/991/639 544/970/639 +f 550/992/640 546/993/640 545/972/640 +f 543/974/641 548/990/641 544/994/641 +f 547/976/642 550/992/642 545/995/642 +f 491/875/643 492/929/643 493/876/643 +f 495/878/597 496/893/597 497/879/597 +f 494/880/598 497/879/598 499/881/598 +f 501/883/599 502/890/599 503/884/599 +f 491/886/644 490/894/644 504/887/644 +f 498/889/601 499/996/601 502/890/601 +f 500/885/602 503/884/602 507/891/602 +f 491/886/603 505/888/603 496/893/603 +f 506/892/614 507/891/614 504/887/614 +f 509/895/601 510/997/601 511/896/601 +f 494/898/645 498/998/645 508/899/645 +f 490/901/646 493/922/646 513/902/646 +f 501/904/607 509/895/607 508/897/607 +f 494/906/608 512/924/608 514/907/608 +f 491/909/609 495/999/609 514/910/609 +f 500/912/647 506/1000/647 513/913/647 +f 500/915/648 515/927/648 509/916/648 +f 517/918/612 518/940/612 519/919/612 +f 508/899/613 511/936/613 520/921/613 +f 493/922/614 521/938/614 522/923/614 +f 512/924/597 520/1001/597 517/925/597 +f 513/913/615 522/1002/615 523/926/615 +f 514/910/603 517/918/603 516/920/603 +f 515/927/616 523/934/616 510/928/616 +f 492/929/617 516/1003/617 521/930/617 +f 518/940/618 524/937/618 525/931/618 +f 525/931/618 526/935/618 527/932/618 +f 527/932/618 528/939/618 529/933/618 +f 529/933/618 519/919/618 518/940/618 +f 518/940/618 525/931/618 529/933/618 +f 523/934/619 527/932/619 526/935/619 +f 521/930/620 516/1003/620 519/919/620 +f 511/896/621 510/997/621 526/935/621 +f 511/936/622 525/931/622 524/937/622 +f 521/938/623 529/933/623 528/939/623 +f 517/925/624 520/1001/624 524/937/624 +f 523/926/625 522/1002/625 528/939/625 +f 530/941/649 531/982/649 505/942/649 +f 533/944/601 534/989/601 535/945/601 +f 497/947/650 536/971/650 532/948/650 +f 537/950/628 530/973/628 504/951/628 +f 532/946/629 535/945/629 502/953/629 +f 538/955/630 536/975/630 497/956/630 +f 505/958/631 531/978/631 538/959/631 +f 503/961/651 539/977/651 537/962/651 +f 535/964/652 539/980/652 503/965/652 +f 541/967/634 542/1004/634 543/968/634 +f 544/970/613 533/991/613 532/948/613 +f 545/972/614 546/993/614 530/973/614 +f 543/974/597 544/994/597 536/975/597 +f 547/976/615 545/995/615 537/962/615 +f 540/969/603 543/968/603 538/959/603 +f 534/979/616 547/987/616 539/980/616 +f 546/981/617 540/988/617 531/982/617 +f 553/985/635 548/990/635 542/1004/635 +f 542/1004/635 541/967/635 549/983/635 +f 549/983/635 550/992/635 551/984/635 +f 551/984/635 552/986/635 553/985/635 +f 553/985/635 542/1004/635 549/983/635 +f 552/986/636 551/984/636 547/987/636 +f 549/983/637 541/967/637 540/988/637 +f 533/944/638 553/985/638 552/986/638 +f 548/990/639 553/985/639 533/991/639 +f 550/992/640 549/983/640 546/993/640 +f 543/974/641 542/1004/641 548/990/641 +f 547/976/642 551/984/642 550/992/642 +f 559/1005/653 556/1006/653 558/1007/653 +f 558/1007/654 560/1008/654 557/1009/654 +f 561/1010/655 554/1011/655 559/1005/655 +f 559/1005/653 554/1011/653 556/1006/653 +f 558/1007/656 556/1006/656 560/1008/656 +f 561/1010/657 555/1012/657 554/1011/657 +o Shell +v 0.000000 1.558350 0.961217 +v 0.132625 1.613285 0.961217 +v 0.187560 1.745910 0.961217 +v 0.132625 1.878535 0.961217 +v 0.000000 1.933470 0.961217 +v -0.132625 1.878535 0.961217 +v -0.187560 1.745910 0.961217 +v -0.132625 1.613285 0.961217 +v 0.142112 1.603798 0.961217 +v 0.000000 1.544933 0.961217 +v 0.200977 1.745910 0.961217 +v 0.142112 1.888022 0.961217 +v 0.000000 1.946887 0.961217 +v -0.142112 1.888022 0.961217 +v -0.200977 1.745910 0.961217 +v -0.142112 1.603798 0.961217 +v 0.142112 1.603798 0.924739 +v 0.000000 1.544933 0.924739 +v 0.200977 1.745910 0.924739 +v 0.142112 1.888022 0.924739 +v 0.000000 1.946887 0.924739 +v -0.142112 1.888022 0.924739 +v -0.200977 1.745910 0.924739 +v -0.142112 1.603798 0.924739 +v 0.000000 1.558350 1.273779 +v 0.132625 1.613285 1.273779 +v 0.187560 1.745910 1.273779 +v 0.132625 1.878535 1.273779 +v 0.000000 1.933470 1.273779 +v -0.132625 1.878535 1.273779 +v -0.187560 1.745910 1.273779 +v -0.132625 1.613285 1.273779 +vn 0.3827 -0.9239 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vt 0.000036 0.790759 +vt 0.040554 0.713148 +vt 0.040554 0.790759 +vt 0.081073 0.790759 +vt 0.081073 0.713148 +vt 0.121591 0.790759 +vt 0.121591 0.713148 +vt 0.162109 0.790759 +vt 0.162109 0.713148 +vt 0.202628 0.790759 +vt 0.202628 0.713148 +vt 0.243146 0.790759 +vt 0.283665 0.713148 +vt 0.283665 0.790759 +vt 0.324183 0.790759 +vt 0.289062 0.718750 +vt 0.246094 0.734375 +vt 0.246094 0.718750 +vt 0.169922 0.718750 +vt 0.132812 0.734375 +vt 0.132812 0.718750 +vt 0.207031 0.734375 +vt 0.169922 0.734375 +vt 0.064453 0.718750 +vt 0.097656 0.734375 +vt 0.064453 0.734375 +vt 0.125490 0.709362 +vt 0.083924 0.722064 +vt 0.083924 0.709362 +vt 0.333322 0.709362 +vt 0.291755 0.722064 +vt 0.291755 0.709362 +vt 0.042358 0.722064 +vt 0.042358 0.709362 +vt 0.250189 0.722064 +vt 0.250189 0.709362 +vt 0.167057 0.709362 +vt 0.125490 0.722064 +vt 0.000792 0.722064 +vt 0.000792 0.709362 +vt 0.208623 0.722064 +vt 0.208623 0.709362 +vt 0.167057 0.722064 +vt 0.031250 0.718750 +vt 0.031250 0.734375 +vt 0.097656 0.718750 +vt 0.207031 0.718750 +vt 0.000000 0.734375 +vt 0.000000 0.718750 +vt 0.474368 0.725066 +vt 0.475111 0.802599 +vt 0.358812 0.803095 +vt 0.000036 0.713148 +vt 0.243146 0.713148 +vt 0.324183 0.713148 +vt 0.289062 0.734375 +vt 0.333322 0.722064 +vt 0.334353 0.764431 +vt 0.358068 0.725561 +vt 0.416064 0.709256 +vt 0.498826 0.763730 +vt 0.417116 0.818904 +s 0 +f 586/1013/658 563/1014/658 587/1015/658 +f 563/1014/659 588/1016/659 587/1015/659 +f 564/1017/660 589/1018/660 588/1016/660 +f 565/1019/661 590/1020/661 589/1018/661 +f 566/1021/662 591/1022/662 590/1020/662 +f 567/1023/663 592/1024/663 591/1022/663 +f 592/1024/664 569/1025/664 593/1026/664 +f 569/1025/665 586/1027/665 593/1026/665 +f 567/1028/666 576/1029/666 568/1030/666 +f 562/1031/666 570/1032/666 563/1033/666 +f 562/1031/666 577/1034/666 571/1035/666 +f 565/1036/666 572/1037/666 573/1038/666 +f 572/1039/660 581/1040/660 573/1041/660 +f 575/1042/663 584/1043/663 576/1044/663 +f 573/1041/661 582/1045/661 574/1046/661 +f 576/1044/664 585/1047/664 577/1048/664 +f 570/1049/659 580/1050/659 572/1039/659 +f 574/1046/662 583/1051/662 575/1052/662 +f 577/1048/665 579/1053/665 571/1054/665 +f 571/1054/658 578/1055/658 570/1049/658 +f 566/1056/666 573/1038/666 574/1057/666 +f 563/1033/666 572/1037/666 564/1058/666 +f 568/1030/666 577/1034/666 569/1059/666 +f 566/1056/666 575/1060/666 567/1061/666 +f 585/1062/667 583/1063/667 581/1064/667 +f 586/1013/658 562/1065/658 563/1014/658 +f 563/1014/659 564/1017/659 588/1016/659 +f 564/1017/660 565/1019/660 589/1018/660 +f 565/1019/661 566/1021/661 590/1020/661 +f 566/1021/662 567/1023/662 591/1022/662 +f 567/1023/663 568/1066/663 592/1024/663 +f 592/1024/664 568/1066/664 569/1025/664 +f 569/1025/665 562/1067/665 586/1027/665 +f 567/1028/666 575/1068/666 576/1029/666 +f 562/1031/666 571/1035/666 570/1032/666 +f 562/1031/666 569/1059/666 577/1034/666 +f 565/1036/666 564/1058/666 572/1037/666 +f 572/1039/660 580/1050/660 581/1040/660 +f 575/1042/663 583/1069/663 584/1043/663 +f 573/1041/661 581/1040/661 582/1045/661 +f 576/1044/664 584/1043/664 585/1047/664 +f 570/1049/659 578/1055/659 580/1050/659 +f 574/1046/662 582/1045/662 583/1051/662 +f 577/1048/665 585/1047/665 579/1053/665 +f 571/1054/658 579/1053/658 578/1055/658 +f 566/1056/666 565/1036/666 573/1038/666 +f 563/1033/666 570/1032/666 572/1037/666 +f 568/1030/666 576/1029/666 577/1034/666 +f 566/1056/666 574/1057/666 575/1060/666 +f 581/1064/667 580/1070/667 578/1071/667 +f 578/1071/667 579/1072/667 585/1062/667 +f 585/1062/667 584/1073/667 583/1063/667 +f 583/1063/667 582/1074/667 581/1064/667 +f 581/1064/667 578/1071/667 585/1062/667 +o Sight +v -0.128183 2.091560 2.999992 +v 0.128183 2.091560 2.999992 +v -0.000758 2.091560 2.999992 +v -0.000758 2.040556 3.941854 +v -0.000758 2.038297 3.983544 +v -0.128183 2.038297 3.983544 +v -0.103443 2.040556 3.941854 +v -0.128183 2.117034 2.999992 +v -0.000758 2.117034 2.999992 +v 0.128183 2.117034 2.999992 +v -0.000758 2.113045 3.073697 +v -0.103443 2.113045 3.073697 +v -0.000758 2.063745 3.984738 +v -0.128183 2.063745 3.984738 +v 0.128183 2.038297 3.983544 +v 0.128183 2.063745 3.984738 +v -0.000758 2.087663 3.071927 +v 0.103443 2.087663 3.071927 +v 0.103443 2.065968 3.943648 +v -0.000758 2.065968 3.943648 +v -0.103443 2.087663 3.071927 +v -0.103443 2.065968 3.943648 +v 0.103443 2.040556 3.941854 +v 0.103443 2.113045 3.073697 +vn -0.0000 -0.9985 -0.0541 +vn -0.0000 0.9985 0.0540 +vn -0.0000 -0.0469 0.9989 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.0704 -0.9975 +vn -0.0000 -0.0696 0.9976 +vn 0.0001 -0.9985 -0.0541 +vn -0.0001 -0.9985 -0.0541 +vn -0.0000 -0.0000 -1.0000 +vt 0.276157 1.000043 +vt 0.277845 0.992479 +vt 0.279031 0.999320 +vt 0.262350 0.922080 +vt 0.272118 0.929101 +vt 0.262350 0.929101 +vt 0.274698 0.993787 +vt 0.275897 0.993777 +vt 0.222326 0.777476 +vt 0.223796 0.783767 +vt 0.221878 0.783681 +vt 0.276984 0.922230 +vt 0.274471 0.922080 +vt 0.209797 0.705905 +vt 0.219735 0.712775 +vt 0.209797 0.712775 +vt 0.225468 0.776184 +vt 0.226612 0.783315 +vt 0.222094 0.705905 +vt 0.223523 0.777445 +vt 0.281111 0.929195 +vt 0.279697 0.992551 +vt 0.228356 0.783036 +vt 0.227211 0.775904 +vt 0.220401 0.776146 +vt 0.217884 0.712823 +vt 0.272118 0.931521 +vt 0.279262 0.929125 +vt 0.219072 0.783148 +vt 0.289130 0.922373 +vt 0.289049 0.929239 +vt 0.272776 0.992493 +vt 0.274236 0.999907 +vt 0.271463 0.999118 +vt 0.226877 0.712825 +vt 0.236860 0.705929 +vt 0.236778 0.712942 +vt 0.236749 0.715360 +vt 0.269746 0.998630 +vt 0.224609 0.705785 +vt 0.218549 0.776196 +vt 0.262350 0.931521 +vt 0.226848 0.715243 +vt 0.271059 0.992167 +s 0 +f 598/1075/668 600/1076/668 597/1077/668 +f 602/1078/669 605/1079/669 604/1080/669 +f 598/1075/670 607/1081/670 599/1082/670 +f 608/1083/670 606/1084/670 598/1085/670 +f 594/1086/671 607/1081/671 601/1087/671 +f 596/1088/668 611/1089/668 610/1090/668 +f 606/1084/669 612/1091/669 613/1092/669 +f 595/1093/672 609/1094/672 608/1083/672 +f 600/1076/672 605/1095/672 615/1096/672 +f 597/1097/673 612/1091/673 616/1098/673 +f 616/1099/671 617/1100/671 611/1089/671 +f 614/1101/674 604/1080/674 605/1079/674 +f 599/1082/675 614/1102/675 600/1076/675 +f 616/1099/668 598/1085/668 597/1103/668 +f 611/1089/676 608/1083/676 616/1099/676 +f 614/1102/668 596/1104/668 610/1105/668 +f 615/1106/669 606/1107/669 613/1108/669 +f 609/1094/669 617/1109/669 612/1091/669 +f 605/1079/669 607/1081/669 615/1106/669 +f 617/1109/669 602/1110/669 604/1111/669 +f 610/1112/674 617/1109/674 604/1111/674 +f 597/1113/673 615/1106/673 613/1108/673 +f 598/1075/668 599/1082/668 600/1076/668 +f 602/1078/669 601/1087/669 605/1079/669 +f 598/1075/670 606/1107/670 607/1081/670 +f 608/1083/670 609/1094/670 606/1084/670 +f 594/1086/671 599/1082/671 607/1081/671 +f 596/1088/668 595/1093/668 611/1089/668 +f 606/1084/669 609/1094/669 612/1091/669 +f 595/1093/672 603/1114/672 609/1094/672 +f 600/1076/672 614/1102/672 605/1095/672 +f 597/1097/673 613/1092/673 612/1091/673 +f 616/1099/671 612/1115/671 617/1100/671 +f 614/1101/674 610/1116/674 604/1080/674 +f 599/1082/676 594/1086/676 614/1102/676 +f 616/1099/668 608/1083/668 598/1085/668 +f 611/1089/675 595/1093/675 608/1083/675 +f 614/1102/668 594/1086/668 596/1104/668 +f 615/1106/669 607/1081/669 606/1107/669 +f 609/1094/669 603/1114/669 617/1109/669 +f 605/1079/669 601/1087/669 607/1081/669 +f 617/1109/669 603/1114/669 602/1110/669 +f 610/1112/674 611/1117/674 617/1109/674 +f 597/1113/673 600/1118/673 615/1106/673 +f 596/1088/677 602/1110/677 595/1093/677 +f 596/1088/677 594/1086/677 601/1087/677 +f 602/1110/677 603/1114/677 595/1093/677 +f 596/1088/677 601/1087/677 602/1110/677 +o Loop +v 0.406256 1.125653 3.483772 +v 0.372781 1.206173 3.302696 +v 0.405798 1.241512 3.327720 +v 0.434647 1.172119 3.483772 +v 0.377865 1.264868 3.368210 +v 0.399229 1.213480 3.483772 +v 0.327584 1.243964 3.368210 +v 0.348947 1.192576 3.483772 +v 0.324441 1.207689 3.327720 +v 0.353290 1.138296 3.483772 +v 0.297563 1.387101 3.257974 +v 0.340975 1.397436 3.289178 +v 0.329861 1.380335 3.339669 +v 0.279580 1.359431 3.339669 +v 0.259618 1.363613 3.289178 +v 0.237243 1.532194 3.383282 +v 0.288991 1.522477 3.397170 +v 0.291365 1.472933 3.419640 +v 0.241084 1.452029 3.419640 +v 0.207634 1.488654 3.397170 +v 0.237243 1.532194 3.584262 +v 0.288991 1.522477 3.570374 +v 0.291365 1.472933 3.547904 +v 0.241084 1.452029 3.547904 +v 0.207634 1.488654 3.570374 +v 0.297563 1.387101 3.709570 +v 0.340975 1.397436 3.678366 +v 0.329861 1.380335 3.627876 +v 0.279580 1.359431 3.627876 +v 0.259618 1.363613 3.678366 +v 0.372781 1.206173 3.664848 +v 0.405798 1.241512 3.639824 +v 0.377865 1.264868 3.599334 +v 0.327584 1.243964 3.599334 +v 0.324441 1.207689 3.639824 +vn 0.7951 -0.4858 -0.3630 +vn 0.7513 0.6433 0.1472 +vn -0.3459 0.8319 0.4339 +vn -0.9860 -0.0789 0.1472 +vn -0.2163 -0.9063 -0.3630 +vn 0.5772 0.0383 -0.8157 +vn 0.8396 0.4308 0.3307 +vn -0.0854 0.2055 0.9749 +vn -0.8976 -0.2914 0.3307 +vn -0.4342 -0.3822 -0.8157 +vn 0.3055 0.6919 -0.6541 +vn 0.9498 0.1658 0.2652 +vn 0.2393 -0.5757 0.7818 +vn -0.7874 -0.5564 0.2652 +vn -0.7060 0.2715 -0.6542 +vn 0.1845 0.9828 -0.0000 +vn 0.9989 0.0479 -0.0000 +vn 0.3839 -0.9234 -0.0000 +vn -0.7384 -0.6744 -0.0000 +vn -0.8269 0.5623 -0.0000 +vn 0.3055 0.6919 0.6541 +vn 0.9498 0.1658 -0.2652 +vn 0.2394 -0.5757 -0.7818 +vn -0.7874 -0.5564 -0.2652 +vn -0.7060 0.2714 0.6541 +vn 0.5772 0.0383 0.8157 +vn 0.8396 0.4308 -0.3307 +vn -0.0854 0.2055 -0.9749 +vn -0.8976 -0.2914 -0.3307 +vn -0.4342 -0.3822 0.8157 +vn 0.7951 -0.4858 0.3630 +vn 0.7513 0.6433 -0.1472 +vn -0.3459 0.8319 -0.4339 +vn -0.9860 -0.0789 -0.1472 +vn -0.2164 -0.9063 0.3630 +vn 0.2394 -0.5757 0.7818 +vn -0.7060 0.2714 -0.6541 +vn -0.7060 0.2715 0.6542 +vn -0.4343 -0.3822 0.8157 +vn -0.2163 -0.9063 0.3630 +vt 0.187482 0.621036 +vt 0.156855 0.629655 +vt 0.154582 0.621037 +vt 0.181530 0.637775 +vt 0.160534 0.637775 +vt 0.181530 0.646689 +vt 0.160534 0.646689 +vt 0.156855 0.654809 +vt 0.187482 0.663428 +vt 0.154582 0.663428 +vt 0.208478 0.621036 +vt 0.177852 0.629655 +vt 0.175578 0.621036 +vt 0.202527 0.637775 +vt 0.202527 0.646689 +vt 0.177852 0.654809 +vt 0.208479 0.663427 +vt 0.175579 0.663428 +vt 0.229475 0.621036 +vt 0.198848 0.629655 +vt 0.196575 0.621036 +vt 0.227202 0.629655 +vt 0.223523 0.646689 +vt 0.198849 0.654809 +vt 0.229475 0.663427 +vt 0.196575 0.663428 +vt 0.250472 0.621036 +vt 0.219845 0.629655 +vt 0.217572 0.621036 +vt 0.248198 0.629655 +vt 0.223523 0.637775 +vt 0.244520 0.637775 +vt 0.244520 0.646689 +vt 0.219845 0.654808 +vt 0.250472 0.663427 +vt 0.217572 0.663427 +vt 0.238569 0.621036 +vt 0.269195 0.629655 +vt 0.240842 0.629655 +vt 0.265517 0.637775 +vt 0.269195 0.654809 +vt 0.240842 0.654808 +vt 0.238568 0.663427 +vt 0.259565 0.621036 +vt 0.290192 0.629655 +vt 0.261838 0.629655 +vt 0.286513 0.637775 +vt 0.265517 0.646689 +vt 0.290191 0.654809 +vt 0.261838 0.654808 +vt 0.259565 0.663427 +vt 0.280562 0.621036 +vt 0.311188 0.629655 +vt 0.282835 0.629655 +vt 0.307510 0.637775 +vt 0.286513 0.646689 +vt 0.311188 0.654809 +vt 0.282835 0.654809 +vt 0.280561 0.663428 +vt 0.185209 0.629655 +vt 0.185209 0.654809 +vt 0.206205 0.629655 +vt 0.206205 0.654809 +vt 0.227202 0.654808 +vt 0.248198 0.654808 +vt 0.271468 0.621036 +vt 0.271468 0.663428 +vt 0.292465 0.621036 +vt 0.292465 0.663428 +vt 0.313461 0.621037 +vt 0.307510 0.646689 +vt 0.313461 0.663428 +s 0 +f 619/1119/678 621/1120/678 618/1121/678 +f 621/1120/679 622/1122/679 623/1123/679 +f 623/1123/680 624/1124/680 625/1125/680 +f 624/1124/681 627/1126/681 625/1125/681 +f 627/1126/682 619/1127/682 618/1128/682 +f 628/1129/683 620/1130/683 619/1131/683 +f 620/1130/684 630/1132/684 622/1122/684 +f 622/1122/685 631/1133/685 624/1124/685 +f 631/1133/686 626/1134/686 624/1124/686 +f 626/1134/687 628/1135/687 619/1136/687 +f 633/1137/688 629/1138/688 628/1139/688 +f 634/1140/689 630/1132/689 629/1138/689 +f 630/1132/690 636/1141/690 631/1133/690 +f 636/1141/691 632/1142/691 631/1133/691 +f 632/1142/692 633/1143/692 628/1144/692 +f 638/1145/693 634/1146/693 633/1147/693 +f 639/1148/694 635/1149/694 634/1146/694 +f 640/1150/695 636/1141/695 635/1149/695 +f 641/1151/696 637/1152/696 636/1141/696 +f 637/1152/697 638/1153/697 633/1154/697 +f 638/1155/698 644/1156/698 639/1157/698 +f 639/1157/699 645/1158/699 640/1150/699 +f 645/1158/700 641/1151/700 640/1150/700 +f 641/1151/701 647/1159/701 642/1160/701 +f 647/1159/702 638/1161/702 642/1160/702 +f 643/1162/703 649/1163/703 644/1164/703 +f 649/1163/704 645/1158/704 644/1164/704 +f 650/1165/705 646/1166/705 645/1158/705 +f 646/1166/706 652/1167/706 647/1168/706 +f 652/1167/707 643/1169/707 647/1168/707 +f 648/1170/708 621/1171/708 649/1172/708 +f 621/1171/709 650/1165/709 649/1172/709 +f 623/1173/710 651/1174/710 650/1165/710 +f 651/1174/711 627/1175/711 652/1176/711 +f 627/1175/712 648/1177/712 652/1176/712 +f 619/1119/678 620/1178/678 621/1120/678 +f 621/1120/679 620/1178/679 622/1122/679 +f 623/1123/680 622/1122/680 624/1124/680 +f 624/1124/681 626/1179/681 627/1126/681 +f 627/1126/682 626/1179/682 619/1127/682 +f 628/1129/683 629/1180/683 620/1130/683 +f 620/1130/684 629/1180/684 630/1132/684 +f 622/1122/685 630/1132/685 631/1133/685 +f 631/1133/686 632/1181/686 626/1134/686 +f 626/1134/687 632/1181/687 628/1135/687 +f 633/1137/688 634/1140/688 629/1138/688 +f 634/1140/689 635/1149/689 630/1132/689 +f 630/1132/713 635/1149/713 636/1141/713 +f 636/1141/691 637/1182/691 632/1142/691 +f 632/1142/714 637/1182/714 633/1143/714 +f 638/1145/693 639/1148/693 634/1146/693 +f 639/1148/694 640/1150/694 635/1149/694 +f 640/1150/695 641/1151/695 636/1141/695 +f 641/1151/696 642/1183/696 637/1152/696 +f 637/1152/697 642/1183/697 638/1153/697 +f 638/1155/698 643/1184/698 644/1156/698 +f 639/1157/699 644/1156/699 645/1158/699 +f 645/1158/700 646/1166/700 641/1151/700 +f 641/1151/701 646/1166/701 647/1159/701 +f 647/1159/715 643/1185/715 638/1161/715 +f 643/1162/703 648/1186/703 649/1163/703 +f 649/1163/704 650/1165/704 645/1158/704 +f 650/1165/705 651/1174/705 646/1166/705 +f 646/1166/706 651/1174/706 652/1167/706 +f 652/1167/716 648/1187/716 643/1169/716 +f 648/1170/708 618/1188/708 621/1171/708 +f 621/1171/709 623/1173/709 650/1165/709 +f 623/1173/710 625/1189/710 651/1174/710 +f 651/1174/711 625/1189/711 627/1175/711 +f 627/1175/717 618/1190/717 648/1177/717 +o GuardOuter +v -0.171766 0.857316 0.902020 +v -0.171766 0.884188 0.902020 +v -0.171766 0.857316 0.868866 +v -0.171766 0.884188 0.868866 +v 0.171766 0.857316 0.902020 +v 0.171766 0.884188 0.902020 +v 0.171766 0.857316 0.868866 +v 0.171766 0.884188 0.868866 +v -0.202507 0.857316 0.868866 +v -0.202507 0.857316 0.902020 +v -0.202507 0.884188 0.902020 +v -0.202507 0.884188 0.868866 +v 0.202507 0.884188 0.868866 +v 0.202507 0.857316 0.868866 +v 0.202507 0.857316 0.902020 +v 0.202507 0.884188 0.902020 +v -0.171766 0.884188 -0.072626 +v -0.171766 0.857316 -0.072626 +v 0.171766 0.884188 -0.072626 +v 0.171766 0.857316 -0.072626 +v -0.202507 0.884188 -0.072626 +v -0.202507 0.857316 -0.072626 +v 0.202507 0.884188 -0.072626 +v 0.202507 0.857316 -0.072626 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vt 0.107481 0.677045 +vt 0.100711 0.884377 +vt 0.100711 0.677045 +vt 0.200617 0.783221 +vt 0.204562 0.669744 +vt 0.204562 0.783221 +vt 0.189902 0.669744 +vt 0.196672 0.677045 +vt 0.189902 0.677045 +vt 0.196672 0.793376 +vt 0.200617 0.679899 +vt 0.200617 0.793376 +vt 0.025060 0.677045 +vt 0.100711 0.669744 +vt 0.114251 0.677045 +vt 0.002510 0.991693 +vt 0.006455 0.980742 +vt 0.006455 0.991693 +vt 0.006455 0.680696 +vt 0.010401 0.669744 +vt 0.010401 0.680696 +vt 0.107481 0.669744 +vt 0.114251 0.669744 +vt 0.196672 0.803530 +vt 0.018291 0.669744 +vt 0.025060 0.669744 +vt 0.010401 0.980742 +vt 0.014346 0.669744 +vt 0.014346 0.980742 +vt 0.196672 0.679899 +vt 0.200617 0.669744 +vt 0.196672 0.823839 +vt 0.200617 0.813685 +vt 0.200617 0.823839 +vt 0.200617 0.803530 +vt 0.196672 0.813685 +vt 0.002510 0.980742 +vt 0.006455 0.669744 +vt 0.018291 0.884377 +vt 0.018291 0.677045 +vt 0.006455 0.991693 +vt 0.018291 0.669744 +vt 0.107481 0.884377 +vt 0.189902 0.884377 +vt 0.200617 0.669744 +vt 0.196672 0.669744 +vt 0.010401 0.669744 +vt 0.002510 0.669744 +vt 0.025060 0.884377 +vt 0.010401 0.991693 +vt 0.018291 0.980742 +vt 0.114251 0.884377 +vt 0.196672 0.884377 +s 0 +f 661/1191/718 670/1192/718 655/1193/718 +f 656/1194/719 659/1195/719 655/1196/719 +f 658/1197/720 665/1198/720 660/1199/720 +f 658/1200/721 653/1201/721 657/1202/721 +f 659/1203/718 653/1204/718 655/1193/718 +f 656/1205/720 658/1197/720 660/1199/720 +f 663/1206/722 661/1207/722 662/1208/722 +f 665/1209/723 667/1210/723 666/1211/723 +f 656/1205/720 663/1212/720 654/1213/720 +f 653/1204/718 661/1191/718 655/1193/718 +f 657/1202/721 668/1214/721 658/1200/721 +f 659/1203/718 667/1215/718 657/1216/718 +f 660/1217/722 672/1218/722 659/1219/722 +f 654/1220/721 662/1221/721 653/1201/721 +f 671/1222/719 676/1223/719 672/1224/719 +f 670/1225/719 673/1226/719 669/1214/719 +f 664/1227/722 674/1228/722 661/1207/722 +f 659/1203/718 676/1229/718 666/1230/718 +f 666/1211/723 675/1231/723 665/1209/723 +f 655/1232/723 669/1219/723 656/1218/723 +f 656/1205/720 673/1233/720 664/1191/720 +f 665/1198/720 671/1234/720 660/1199/720 +f 661/1191/718 674/1233/718 670/1192/718 +f 656/1194/719 660/1235/719 659/1195/719 +f 658/1197/720 668/1236/720 665/1198/720 +f 658/1200/721 654/1220/721 653/1201/721 +f 659/1203/718 657/1216/718 653/1204/718 +f 656/1205/720 654/1213/720 658/1197/720 +f 663/1206/722 664/1227/722 661/1207/722 +f 665/1209/723 668/1228/723 667/1210/723 +f 656/1205/720 664/1191/720 663/1212/720 +f 653/1204/718 662/1212/718 661/1191/718 +f 657/1202/721 667/1225/721 668/1214/721 +f 659/1203/718 666/1230/718 667/1215/718 +f 660/1217/722 671/1237/722 672/1218/722 +f 654/1220/721 663/1236/721 662/1221/721 +f 671/1222/719 675/1226/719 676/1223/719 +f 670/1225/719 674/1223/719 673/1226/719 +f 664/1227/722 673/1238/722 674/1228/722 +f 659/1203/718 672/1239/718 676/1229/718 +f 666/1211/723 676/1240/723 675/1231/723 +f 655/1232/723 670/1241/723 669/1219/723 +f 656/1205/720 669/1242/720 673/1233/720 +f 665/1198/720 675/1243/720 671/1234/720 +o GuardInner +v 0.161860 0.857316 -0.061518 +v 0.161860 0.884188 -0.061518 +v -0.161860 0.857316 -0.061518 +v -0.161860 0.884188 -0.061518 +v 0.057255 0.857316 0.868866 +v -0.057255 0.857316 0.868866 +v -0.057255 0.884188 0.868866 +v 0.057255 0.884188 0.868866 +v 0.057255 0.884188 -0.053868 +v -0.057255 0.884188 -0.053868 +v -0.057255 0.857316 -0.053868 +v 0.057255 0.857316 -0.053868 +v 0.057255 0.857316 0.852620 +v -0.057255 0.857316 0.852620 +v -0.057255 0.884188 0.852620 +v 0.057255 0.884188 0.852620 +v 0.161860 0.857316 0.844969 +v -0.161859 0.857316 0.844969 +v -0.161859 0.884188 0.844969 +v 0.161860 0.884188 0.844969 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0729 -0.0000 -0.9973 +vn 0.0729 -0.0000 -0.9973 +vn 0.0729 -0.0000 0.9973 +vn -0.0729 -0.0000 0.9973 +vt 0.005903 0.898813 +vt 0.226808 0.941986 +vt 0.005903 0.941986 +vt 0.333177 0.981424 +vt 0.001820 0.988178 +vt 0.001820 0.981424 +vt 0.007826 0.737326 +vt 0.226808 0.776764 +vt 0.005903 0.776764 +vt 0.001820 0.994932 +vt 0.333177 0.988178 +vt 0.333177 0.994932 +vt 0.007826 0.859375 +vt 0.226808 0.898813 +vt 0.084431 0.737326 +vt 0.041258 0.730572 +vt 0.084431 0.730572 +vt 0.001820 0.737326 +vt 0.041258 0.737326 +vt 0.123869 0.730572 +vt 0.001820 0.898813 +vt 0.001820 0.941986 +vt 0.226808 0.819937 +vt 0.005903 0.819937 +vt 0.163307 0.737326 +vt 0.170061 0.731201 +vt 0.170061 0.737326 +vt 0.001820 0.776764 +vt 0.001820 0.819937 +vt 0.176815 0.731201 +vt 0.170061 0.737326 +vt 0.170061 0.731201 +vt 0.007826 0.981424 +vt 0.163307 0.730572 +vt 0.123869 0.737326 +vt 0.041258 0.730572 +vt 0.001820 0.723818 +vt 0.041258 0.723818 +vt 0.333177 0.988178 +vt 0.228731 0.737326 +vt 0.001820 0.988178 +vt 0.228731 0.859375 +vt 0.001820 0.730572 +vt 0.163307 0.731201 +vt 0.176815 0.737326 +vt 0.228731 0.981424 +s 0 +f 692/1244/724 686/1245/724 691/1246/724 +f 677/1247/725 696/1248/725 693/1249/725 +f 694/1250/726 687/1251/726 690/1252/726 +f 680/1253/727 694/1254/727 695/1255/727 +f 696/1256/724 685/1257/724 692/1244/724 +f 686/1258/728 688/1259/728 687/1260/728 +f 678/1261/729 688/1259/729 685/1262/729 +f 679/1263/730 686/1258/730 687/1260/730 +f 684/1264/724 691/1246/724 683/1265/724 +f 690/1252/726 688/1266/726 689/1267/726 +f 683/1268/727 690/1269/727 682/1270/727 +f 682/1271/726 689/1267/726 681/1272/726 +f 681/1273/725 692/1274/725 684/1275/725 +f 688/1266/726 693/1256/726 689/1267/726 +f 686/1245/724 695/1276/724 691/1246/724 +f 693/1277/731 692/1278/731 689/1263/731 +f 691/1279/732 694/1280/732 690/1281/732 +f 692/1244/724 685/1257/724 686/1245/724 +f 677/1247/725 678/1282/725 696/1248/725 +f 694/1250/726 679/1283/726 687/1251/726 +f 680/1253/727 679/1284/727 694/1254/727 +f 696/1256/724 678/1285/724 685/1257/724 +f 686/1258/728 685/1262/728 688/1259/728 +f 678/1261/729 677/1286/729 688/1259/729 +f 679/1263/730 680/1278/730 686/1258/730 +f 684/1264/724 692/1244/724 691/1246/724 +f 690/1252/726 687/1251/726 688/1266/726 +f 683/1268/727 691/1287/727 690/1269/727 +f 682/1271/726 690/1252/726 689/1267/726 +f 681/1273/725 689/1288/725 692/1274/725 +f 688/1266/726 677/1285/726 693/1256/726 +f 686/1245/724 680/1289/724 695/1276/724 +f 693/1277/731 696/1268/731 692/1278/731 +f 691/1279/732 695/1286/732 694/1280/732 +o ShellFore +v 0.000000 1.558350 1.603447 +v 0.132625 1.613285 1.603447 +v 0.187560 1.745910 1.603447 +v 0.132625 1.878535 1.603447 +v 0.000000 1.933470 1.603447 +v -0.132625 1.878535 1.603447 +v -0.187560 1.745910 1.603447 +v -0.132625 1.613285 1.603447 +v 0.000000 1.601210 1.727859 +v 0.102318 1.643592 1.727859 +v 0.144700 1.745910 1.727859 +v 0.102318 1.848228 1.727859 +v 0.000000 1.890610 1.727859 +v -0.102318 1.848228 1.727859 +v -0.144700 1.745910 1.727859 +v -0.102318 1.643592 1.727859 +v 0.000000 1.745910 1.805015 +v 0.000000 1.558350 1.273779 +v 0.132625 1.613285 1.273779 +v 0.187560 1.745910 1.273779 +v 0.132625 1.878535 1.273779 +v 0.000000 1.933470 1.273779 +v -0.132625 1.878535 1.273779 +v -0.187560 1.745910 1.273779 +v -0.132625 1.613285 1.273779 +vn 0.3647 0.8804 0.3033 +vn -0.3827 -0.9239 -0.0000 +vn -0.8804 -0.3647 0.3033 +vn 0.8804 -0.3647 0.3033 +vn -0.3647 0.8804 0.3033 +vn -0.3647 -0.8804 0.3033 +vn 0.3647 -0.8804 0.3033 +vn 0.8804 0.3647 0.3033 +vn -0.8804 0.3647 0.3033 +vn 0.1913 -0.4618 0.8661 +vn 0.4618 -0.1913 0.8661 +vn 0.4618 0.1913 0.8661 +vn 0.1913 0.4618 0.8661 +vn -0.1913 0.4618 0.8661 +vn -0.4618 0.1913 0.8661 +vn -0.4618 -0.1913 0.8661 +vn -0.1913 -0.4618 0.8661 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vt 0.166016 0.792597 +vt 0.207433 0.792597 +vt 0.041764 0.902716 +vt 0.000347 0.792597 +vt 0.041764 0.792597 +vt 0.083181 0.792597 +vt 0.248850 0.792597 +vt 0.290267 0.792597 +vt 0.124598 0.792597 +vt 0.331685 0.792597 +vt 0.916016 0.888455 +vt 0.972926 0.872501 +vt 0.916016 0.833984 +vt 0.996499 0.833984 +vt 0.972926 0.795468 +vt 0.916016 0.779514 +vt 0.859106 0.795468 +vt 0.835533 0.833984 +vt 0.859106 0.872501 +vt 0.083181 0.902716 +vt 0.124598 0.902716 +vt 0.166016 0.902716 +vt 0.207433 0.902716 +vt 0.248850 0.902716 +vt 0.290267 0.902716 +vt 0.331685 0.902716 +vt 0.000347 0.902716 +s 0 +f 701/1290/733 708/1291/733 700/1291/733 +f 721/1292/734 697/1293/734 704/1294/734 +f 703/1295/735 712/1294/735 711/1295/735 +f 699/1296/736 706/1297/736 698/1297/736 +f 702/1298/737 709/1290/737 701/1290/737 +f 704/1294/738 705/1293/738 712/1294/738 +f 698/1297/739 705/1299/739 697/1299/739 +f 700/1291/740 707/1296/740 699/1296/740 +f 702/1298/741 711/1295/741 710/1298/741 +f 705/1300/742 706/1301/742 713/1302/742 +f 706/1301/743 707/1303/743 713/1302/743 +f 707/1303/744 708/1304/744 713/1302/744 +f 708/1304/745 709/1305/745 713/1302/745 +f 709/1305/746 710/1306/746 713/1302/746 +f 710/1306/747 711/1307/747 713/1302/747 +f 711/1307/748 712/1308/748 713/1302/748 +f 712/1308/749 705/1300/749 713/1302/749 +f 720/1309/750 704/1294/750 703/1295/750 +f 719/1310/751 703/1295/751 702/1298/751 +f 718/1311/752 702/1298/752 701/1290/752 +f 717/1312/753 701/1290/753 700/1291/753 +f 716/1313/754 700/1291/754 699/1296/754 +f 715/1314/755 699/1296/755 698/1297/755 +f 714/1315/756 698/1297/756 697/1299/756 +f 701/1290/733 709/1290/733 708/1291/733 +f 721/1292/734 714/1316/734 697/1293/734 +f 703/1295/735 704/1294/735 712/1294/735 +f 699/1296/736 707/1296/736 706/1297/736 +f 702/1298/737 710/1298/737 709/1290/737 +f 704/1294/738 697/1293/738 705/1293/738 +f 698/1297/739 706/1297/739 705/1299/739 +f 700/1291/740 708/1291/740 707/1296/740 +f 702/1298/741 703/1295/741 711/1295/741 +f 720/1309/750 721/1292/750 704/1294/750 +f 719/1310/751 720/1309/751 703/1295/751 +f 718/1311/752 719/1310/752 702/1298/752 +f 717/1312/753 718/1311/753 701/1290/753 +f 716/1313/754 717/1312/754 700/1291/754 +f 715/1314/755 716/1313/755 699/1296/755 +f 714/1315/756 715/1314/756 698/1297/756 diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj index 32f6af5ba..8f4413807 100644 --- a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj @@ -1,552 +1,7799 @@ # Blender v2.79 (sub 0) OBJ File: 'cryo_cannon.blend' # www.blender.org -o Plane.004 -v -0.437500 2.102596 -3.042822 -v -0.483253 2.144063 -3.023486 -v -0.500000 2.200707 -2.997072 -v -0.483253 2.257351 -2.970659 -v -0.437500 2.298818 -2.951323 -v -0.375000 2.313995 -2.944245 -v -0.312500 2.298818 -2.951323 -v -0.266747 2.257351 -2.970659 -v -0.250000 2.200707 -2.997072 -v -0.266747 2.144063 -3.023486 -v -0.312500 2.102596 -3.042822 -v -0.375000 2.087419 -3.049900 -vt 0.750000 0.933013 -vt 0.933013 0.750000 -vt 1.000000 0.500000 -vt 0.933013 0.250000 -vt 0.750000 0.066987 -vt 0.500000 0.000000 -vt 0.250000 0.066987 -vt 0.066987 0.250000 -vt 0.000000 0.500000 -vt 0.066987 0.750000 -vt 0.250000 0.933013 -vt 0.500000 1.000000 -vn -0.0000 0.4226 -0.9063 -s off -f 1/1/1 2/2/1 3/3/1 4/4/1 5/5/1 6/6/1 7/7/1 8/8/1 9/9/1 10/10/1 11/11/1 12/12/1 -o Plane.003 -v -0.216506 2.340409 -3.000889 -v -0.250000 2.227120 -3.053716 -v -0.216506 2.113832 -3.106544 +o Gun +v -1.312500 0.501000 -2.750000 +v -1.312500 0.626000 -3.500000 +v -1.312500 0.501000 -3.500000 +v -1.312500 0.751000 -2.750000 +v -1.312500 0.876000 -3.500000 +v -1.312500 0.751000 -3.500000 +v -1.312500 1.001000 -2.750000 +v -1.312500 1.126000 -3.500000 +v -1.312500 1.001000 -3.500000 +v -1.312500 1.251000 -3.500000 +v -1.312500 1.376000 -2.625000 +v -1.312500 1.376000 -3.625000 +v -1.312500 0.251000 -2.625000 +v -1.312500 0.376000 -3.500000 +v -1.312500 0.251000 -3.625000 +v -1.312500 0.626000 -2.750000 +v -1.187500 1.001000 -2.750000 +v -1.187500 1.001000 -3.500000 +v -1.187500 0.626000 -3.500000 +v -1.187500 0.751000 -3.500000 +v -1.187500 1.126000 -3.500000 +v -1.187500 1.251000 -2.750000 +v -1.187500 1.251000 -3.500000 +v -1.187500 0.876000 -2.750000 +v -1.187500 0.876000 -3.500000 +v -1.187500 0.751000 -2.750000 +v -1.187500 0.376000 -2.750000 +v -1.187500 0.501000 -3.500000 +v -1.187500 0.376000 -3.500000 +v -1.312500 1.126000 -2.750000 +v -1.312500 1.251000 -2.750000 +v -1.187500 1.126000 -2.750000 +v -1.312500 0.876000 -2.750000 +v -1.187500 0.626000 -2.750000 +v -1.312500 0.376000 -2.750000 +v -1.187500 0.501000 -2.750000 +v -0.344030 0.708152 -0.175597 +v -0.388541 0.618205 -0.128904 +v -0.328091 0.674453 -0.163924 +v -0.334466 0.442528 -0.062870 +v -0.385571 0.535686 -0.093884 +v -0.420670 0.523129 -0.082211 +v -0.216518 0.438567 -0.082211 +v -0.172007 0.528513 -0.128904 +v -0.232457 0.472265 -0.093884 +v -0.135918 0.513565 -0.128904 +v -0.174978 0.611032 -0.163924 +v -0.226082 0.704190 -0.194938 +v -0.239630 0.671482 -0.178429 +v -0.424630 0.633153 -0.128904 +v -0.320918 0.475236 -0.079378 +v -0.139879 0.623590 -0.175597 +v -0.248396 0.505963 -0.105557 +v -0.210077 0.598474 -0.152250 +v -0.312152 0.640755 -0.152250 +v -0.161900 0.552916 -0.072260 +v -0.238288 0.530366 -0.048913 +v -0.222349 0.496668 -0.037240 +v -0.199968 0.622877 -0.095606 +v -0.197989 0.567865 -0.072260 +v -0.229523 0.695885 -0.121785 +v -0.164869 0.635435 -0.107280 +v -0.317984 0.698857 -0.107280 +v -0.243071 0.663178 -0.105277 +v -0.378433 0.642608 -0.072260 +v -0.302044 0.665158 -0.095606 +v -0.340364 0.572647 -0.048913 +v -0.342344 0.627659 -0.072260 +v -0.375462 0.560089 -0.037240 +v -0.297262 0.532347 -0.039243 +v -0.310810 0.499639 -0.022734 +v -0.014465 0.192905 0.136894 +v -0.349313 0.368885 -0.081856 +v -0.391169 0.267836 0.136894 +v -0.025414 0.247242 -0.109375 +v -0.014465 0.302280 -0.081856 +v -0.025414 0.137868 0.109375 +v -0.402117 0.212799 0.109375 +v -0.360261 0.313848 -0.109375 +v 0.095671 1.480970 -0.500000 +v 0.173227 1.321753 -0.500000 +v 0.230970 1.345671 -0.500000 +v 0.115485 1.202165 -0.500000 +v 0.115485 1.297835 -0.500000 +v 0.047834 1.365485 -0.500000 +v 0.173227 1.178247 -0.500000 +v 0.230970 1.154329 -0.500000 +v 0.095671 1.019030 -0.500000 +v 0.071753 1.076773 -0.500000 +v -0.071753 1.076773 -0.500000 +v -0.095671 1.019030 -0.500000 +v -0.173227 1.178247 -0.500000 +v -0.230970 1.154329 -0.500000 +v -0.173227 1.321753 -0.500000 +v -0.230970 1.345671 -0.500000 +v -0.095671 1.480970 -0.500000 +v -0.071753 1.423227 -0.500000 +v 0.071753 1.423227 -0.500000 +v 0.115485 1.297835 -0.375000 +v 0.071753 1.423227 -0.375000 +v 0.047834 1.365485 -0.375000 +v 0.115485 1.202165 -0.375000 +v 0.173227 1.321753 -0.375000 +v 0.071753 1.076773 -0.375000 +v 0.047834 1.134515 -0.375000 +v -0.071753 1.076773 -0.375000 +v -0.047836 1.134515 -0.375000 +v -0.173227 1.178247 -0.375000 +v -0.115485 1.202165 -0.375000 +v -0.115485 1.297835 -0.375000 +v -0.047836 1.365485 -0.375000 +v -0.173227 1.321753 -0.375000 +v -0.071753 1.423227 -0.375000 +v -1.000000 0.938500 -4.125000 +v -1.000000 -0.061500 -3.125000 +v -1.000000 0.938500 -2.125000 +v -1.000000 1.376000 -2.625000 +v -1.000000 0.251000 -2.625000 +v -1.000000 0.251000 -3.625000 +v -1.000000 1.376000 -3.625000 +v 1.000000 0.938500 -2.125000 +v 1.000000 -0.061500 -3.125000 +v 1.000000 0.938500 -4.125000 +v -1.000000 0.231393 -3.832107 +v -1.000000 0.231393 -2.417893 +v 1.000000 1.938500 -3.125000 +v -1.000000 1.645607 -3.832107 +v -1.000000 1.938500 -3.125000 +v 1.000000 0.231393 -3.832107 +v 1.000000 0.231393 -2.417893 +v 1.000000 1.645607 -2.417893 +v -1.000000 1.645607 -2.417893 +v 1.000000 1.645607 -3.832107 +v 0.731694 2.179917 0.187500 +v 0.643306 2.445082 0.187500 +v 0.554916 2.356694 0.187500 +v 0.643306 2.445082 -0.312500 +v 0.731694 2.179917 -0.312500 +v 0.554916 2.356694 -0.312500 +v 0.820084 2.268306 -0.312500 +v 0.820084 2.268306 0.187500 +v -1.106694 0.695083 0.187500 +v -1.018306 0.429918 0.187500 +v -0.929916 0.518306 0.187500 +v -1.018306 0.429918 -0.312500 +v -1.106694 0.695083 -0.312500 +v -0.929916 0.518306 -0.312500 +v -1.195084 0.606694 -0.312500 +v -1.195084 0.606694 0.187500 +v 1.106694 0.695082 0.187500 +v 1.018306 0.429917 0.187500 +v 1.195082 0.606694 0.187500 +v 1.106694 0.695082 -0.312500 +v 1.018306 0.429917 -0.312500 +v 0.929916 0.518306 -0.312500 +v 0.929916 0.518306 0.187500 +v 1.195082 0.606694 -0.312500 +v -0.731694 2.179918 0.187500 +v -0.643306 2.445083 0.187500 +v -0.820082 2.268306 0.187500 +v -0.731694 2.179918 -0.312500 +v -0.643306 2.445083 -0.312500 +v -0.554916 2.356694 -0.312500 +v -0.554916 2.356694 0.187500 +v -0.820082 2.268306 -0.312500 +v 0.731694 2.179917 -2.375000 +v 0.643306 2.445082 -2.375000 +v 0.554916 2.356694 -2.375000 +v 0.643306 2.445082 -2.750000 +v 0.731694 2.179917 -2.875000 +v 0.554916 2.356694 -2.750000 +v 0.820084 2.268306 -2.875000 +v 0.820084 2.268306 -2.375000 +v 0.750000 1.887724 -3.247583 +v -0.750000 2.039915 -3.445922 +v -0.750000 1.887724 -3.247583 +v 0.750000 1.696383 -3.709523 +v 0.750000 2.039915 -3.445922 +v 0.750000 1.639863 -3.280215 +v -0.750000 1.944244 -3.676892 +v 0.750000 1.944244 -3.676892 +v -0.750000 1.696383 -3.709523 +v 0.500000 0.125000 -2.750000 +v -0.500000 0.125000 -1.750000 +v -0.500000 0.125000 -2.750000 +v 0.500000 0.500000 -1.750000 +v 0.500000 0.125000 -1.750000 +v -0.500000 0.500000 -2.750000 +v -0.625000 1.687500 -4.125000 +v 0.625000 0.187500 -4.125000 +v -0.625000 0.187500 -4.125000 +v 0.625000 0.187500 -3.625000 +v 0.625000 1.687500 -4.125000 +v 0.625000 1.687500 -3.625000 +v -0.625000 1.687500 -3.625000 +v -0.625000 0.187500 -3.625000 +v 0.875000 1.658494 -2.187500 +v 1.375000 1.658494 -2.437500 +v 1.375000 1.658494 -2.187500 +v 0.875000 2.091506 -2.187500 +v 1.375000 1.875000 -2.062500 +v 1.375000 2.091506 -2.187500 +v 0.875000 1.875000 -2.562500 +v 1.375000 2.091506 -2.437500 +v 1.375000 1.875000 -2.562500 +v 0.875000 1.658494 -2.437500 +v 0.875000 1.875000 -2.062500 +v 0.875000 2.091506 -2.437500 +v 1.375000 1.983253 -2.250000 +v 1.562500 1.983253 -2.375000 +v 1.375000 1.983253 -2.375000 +v 1.375000 1.766747 -2.375000 +v 1.562500 1.766747 -2.250000 +v 1.375000 1.766747 -2.250000 +v 1.375000 1.875000 -2.187500 +v 1.562500 1.983253 -2.250000 +v 1.562500 1.875000 -2.437500 +v 1.375000 1.875000 -2.437500 +v 1.562500 1.766747 -2.375000 +v 1.562500 1.875000 -2.187500 +v 1.562500 1.712620 -2.218750 +v 1.562500 1.875000 -2.125000 +v 1.562500 2.037380 -2.218750 +v 1.562500 1.875000 -2.500000 +v 1.562500 1.712620 -2.406250 +v 1.562500 2.037380 -2.406250 +v 2.312500 1.712620 -2.406250 +v 2.312500 1.875000 -2.125000 +v 2.312500 2.037380 -2.406250 +v 2.312500 1.712620 -2.218750 +v 2.312500 2.037380 -2.218750 +v 2.312500 1.875000 -2.500000 +v 2.312500 1.983253 -2.250000 +v 2.312500 1.983253 -2.375000 +v 2.312500 1.875000 -2.437500 +v 2.312500 1.766747 -2.375000 +v 2.312500 1.766747 -2.250000 +v 2.312500 1.875000 -2.187500 +v 2.500000 1.875000 -2.187500 +v 2.500000 1.983253 -2.375000 +v 2.500000 1.766747 -2.250000 +v 2.500000 1.983253 -2.250000 +v 2.500000 1.875000 -2.437500 +v 2.500000 1.766747 -2.375000 +v 2.500000 2.091506 -2.187500 +v 2.500000 2.091506 -2.437500 +v 2.500000 1.875000 -2.562500 +v 2.500000 1.658494 -2.437500 +v 2.500000 1.658494 -2.187500 +v 2.500000 1.875000 -2.062500 +v 2.625000 2.091506 -2.437500 +v 2.625000 1.658494 -2.187500 +v 2.625000 2.091506 -2.187500 +v 2.625000 1.875000 -2.562500 +v 2.625000 1.658494 -2.437500 +v 2.625000 1.875000 -2.062500 +v 2.750000 1.875000 -2.437500 +v 2.750000 1.766747 -2.375000 +v 2.750000 1.766747 -2.250000 +v 2.750000 1.875000 -2.187500 +v 2.750000 1.983253 -2.375000 +v 2.750000 1.983253 -2.250000 +v 0.125000 1.625000 -4.734835 +v -0.125000 1.978553 -5.088388 +v -0.125000 1.625000 -4.734835 +v -0.125000 1.713388 -5.353553 +v -0.125000 1.359835 -5.000000 +v 0.125000 1.713388 -5.353553 +v 0.125000 1.359835 -5.000000 +v 0.125000 1.978553 -5.088388 +v 0.062500 2.597272 -4.558058 +v -0.062500 2.774049 -4.734835 +v -0.062500 2.597272 -4.558058 +v 0.062500 2.066942 -5.088388 +v 0.062500 2.774049 -4.734835 +v -0.062500 2.066942 -5.088388 +v -0.062500 2.243718 -5.265165 +v 0.062500 2.243718 -5.265165 +v -0.137500 2.062500 -3.749900 +v -0.137500 2.062500 -3.437400 +v -0.137500 2.187500 -3.437400 +v -0.012500 1.937500 -3.749900 +v -0.137500 1.937500 -3.749900 +v 0.137500 2.062500 -3.749900 +v 0.137500 2.062500 -3.437400 +v 0.137500 1.937500 -3.749900 +v -0.012500 2.187500 -3.437400 +v -0.012500 2.062500 -3.749900 +v 0.137500 2.134191 -3.062400 +v 0.137500 2.009191 -3.062400 +v -0.012500 2.062500 -3.437400 +v -0.137500 2.009191 -3.062400 +v -0.012500 1.937500 -3.874900 +v -0.137500 1.937500 -3.874900 +v 0.137500 1.937500 -3.874900 +v 0.012500 1.937500 -3.874900 +v 0.012500 1.937500 -3.749900 +v 0.012500 2.062500 -3.749900 +v -0.137500 1.687500 -3.874900 +v -0.012500 1.687500 -3.874900 +v -0.012500 1.687500 -3.749900 +v -0.137500 1.687500 -3.749900 +v 0.137500 1.687500 -3.874900 +v 0.137500 1.687500 -3.749900 +v 0.012500 1.687500 -3.749900 +v 0.012500 1.687500 -3.874900 +v 0.012500 2.062500 -3.437400 +v 0.625000 2.001000 -3.062500 +v 0.875000 2.001000 -3.187500 +v 0.625000 2.001000 -3.187500 +v 0.012500 2.187500 -3.437400 +v 0.137500 2.187500 -3.437400 +v 0.012500 2.134191 -3.062400 +v -0.137500 2.134191 -3.062400 +v 0.012500 2.009191 -3.062400 +v -0.012500 2.134191 -3.062400 +v -0.012500 2.009191 -3.062400 +v 0.625000 1.938500 -3.250000 +v -0.625000 1.830247 -3.187500 +v -0.625000 1.938500 -3.250000 +v 0.625000 1.876000 -3.062500 +v 0.875000 2.001000 -3.062500 +v 0.625000 1.830247 -3.187500 +v -0.625000 1.830247 -3.062500 +v 0.625000 1.876000 -3.187500 +v 0.875000 1.876000 -3.062500 +v 0.625000 1.830247 -3.062500 +v -0.625000 1.938500 -3.000000 +v 0.875000 1.876000 -3.187500 +v 0.625000 1.938500 -3.000000 +v -0.625000 2.046753 -3.062500 +v 0.625000 2.046753 -3.062500 +v -0.625000 2.046753 -3.187500 +v 0.625000 2.046753 -3.187500 +v 1.000000 2.001000 -3.062500 +v 1.000000 2.001000 -3.187500 +v 1.000000 2.126000 -3.187500 +v 0.875000 2.126000 -3.187500 +v 1.000000 2.126000 -3.312500 +v 1.000000 2.126000 -3.062500 +v 0.875000 2.126000 -3.062500 +v 1.000000 2.251000 -3.187500 +v 0.875000 2.251000 -3.187500 +v 1.000000 2.251000 -3.312500 +v 0.875000 2.001000 -3.937500 +v 0.875000 2.251000 -3.312500 +v 0.875000 2.126000 -3.312500 +v 1.000000 1.876000 -3.937500 +v 1.000000 1.876000 -4.062500 +v 1.000000 2.001000 -3.937500 +v 0.875000 1.876000 -3.937500 +v 0.875000 1.876000 -4.062500 +v 0.875000 1.626000 -3.937500 +v 0.625000 1.501000 -3.937500 +v 0.875000 1.501000 -3.937500 +v 1.000000 1.626000 -3.937500 +v 1.000000 1.626000 -4.062500 +v 0.875000 1.626000 -4.062500 +v 0.875000 1.501000 -4.062500 +v 0.625000 1.626000 -3.937500 +v 0.625000 1.626000 -4.062500 +v 0.625000 1.501000 -4.062500 +v 0.344030 1.791848 -0.175597 +v 0.388541 1.881795 -0.128904 +v 0.328091 1.825547 -0.163924 +v 0.334466 2.057472 -0.062870 +v 0.385571 1.964314 -0.093884 +v 0.420670 1.976871 -0.082211 +v 0.216518 2.061433 -0.082211 +v 0.172007 1.971487 -0.128904 +v 0.232457 2.027735 -0.093884 +v 0.135918 1.986435 -0.128904 +v 0.174978 1.888968 -0.163924 +v 0.226082 1.795810 -0.194938 +v 0.239630 1.828518 -0.178429 +v 0.424630 1.866847 -0.128904 +v 0.320918 2.024764 -0.079378 +v 0.139879 1.876410 -0.175597 +v 0.248396 1.994037 -0.105557 +v 0.210077 1.901526 -0.152250 +v 0.312152 1.859245 -0.152250 +v 0.161900 1.947084 -0.072260 +v 0.238288 1.969634 -0.048913 +v 0.222349 2.003332 -0.037240 +v 0.199968 1.877123 -0.095606 +v 0.197989 1.932135 -0.072260 +v 0.229523 1.804115 -0.121785 +v 0.164869 1.864565 -0.107280 +v 0.317984 1.801143 -0.107280 +v 0.243071 1.836822 -0.105277 +v 0.342344 1.872341 -0.072260 +v 0.302044 1.834842 -0.095606 +v 0.378433 1.857392 -0.072260 +v 0.340365 1.927353 -0.048913 +v 0.375462 1.939911 -0.037240 +v 0.297262 1.967653 -0.039243 +v 0.310810 2.000361 -0.022734 +v -0.541848 1.594031 -0.175597 +v -0.631795 1.638541 -0.128904 +v -0.575547 1.578091 -0.163924 +v -0.807472 1.584466 -0.062870 +v -0.714314 1.635571 -0.093884 +v -0.726871 1.670670 -0.082211 +v -0.811433 1.466519 -0.082211 +v -0.721487 1.422007 -0.128904 +v -0.777735 1.482457 -0.093884 +v -0.736435 1.385918 -0.128904 +v -0.638968 1.424978 -0.163924 +v -0.545810 1.476082 -0.194938 +v -0.578518 1.489630 -0.178429 +v -0.616847 1.674630 -0.128904 +v -0.774764 1.570918 -0.079378 +v -0.626410 1.389879 -0.175597 +v -0.744037 1.498396 -0.105557 +v -0.651526 1.460078 -0.152250 +v -0.609245 1.562152 -0.152250 +v -0.697084 1.411900 -0.072260 +v -0.719634 1.488288 -0.048913 +v -0.753332 1.472349 -0.037240 +v -0.627123 1.449969 -0.095606 +v -0.682135 1.447989 -0.072260 +v -0.554115 1.479523 -0.121785 +v -0.614565 1.414870 -0.107280 +v -0.551143 1.567984 -0.107280 +v -0.586822 1.493071 -0.105277 +v -0.607392 1.628433 -0.072260 +v -0.584842 1.552044 -0.095606 +v -0.677353 1.590365 -0.048913 +v -0.622341 1.592345 -0.072260 +v -0.689911 1.625462 -0.037240 +v -0.717653 1.547262 -0.039243 +v -0.750361 1.560810 -0.022734 +v 0.541848 0.905970 -0.175597 +v 0.631795 0.861459 -0.128904 +v 0.575547 0.921909 -0.163924 +v 0.807472 0.915534 -0.062870 +v 0.714314 0.864429 -0.093884 +v 0.726871 0.829330 -0.082211 +v 0.811433 1.033482 -0.082211 +v 0.721487 1.077993 -0.128904 +v 0.777735 1.017543 -0.093884 +v 0.736435 1.114082 -0.128904 +v 0.638968 1.075022 -0.163924 +v 0.545810 1.023918 -0.194938 +v 0.578518 1.010370 -0.178429 +v 0.616847 0.825370 -0.128904 +v 0.774764 0.929082 -0.079378 +v 0.626410 1.110121 -0.175597 +v 0.744037 1.001604 -0.105557 +v 0.651526 1.039923 -0.152250 +v 0.609245 0.937848 -0.152250 +v 0.697084 1.088100 -0.072260 +v 0.719634 1.011712 -0.048913 +v 0.753332 1.027651 -0.037240 +v 0.627123 1.050032 -0.095606 +v 0.682135 1.052011 -0.072260 +v 0.554115 1.020477 -0.121785 +v 0.614565 1.085131 -0.107280 +v 0.551143 0.932016 -0.107280 +v 0.586822 1.006929 -0.105277 +v 0.607392 0.871567 -0.072260 +v 0.584842 0.947956 -0.095606 +v 0.677353 0.909636 -0.048913 +v 0.622341 0.907656 -0.072260 +v 0.689911 0.874539 -0.037240 +v 0.717653 0.952738 -0.039243 +v 0.750361 0.939190 -0.022734 +v -0.626411 1.110122 -0.175597 +v -0.721487 1.077994 -0.128904 +v -0.638968 1.075022 -0.163924 +v -0.807472 0.915534 -0.062870 +v -0.777736 1.017543 -0.093884 +v -0.811434 1.033483 -0.082211 +v -0.726871 0.829332 -0.082211 +v -0.631795 0.861459 -0.128904 +v -0.714314 0.864430 -0.093884 +v -0.616847 0.825370 -0.128904 +v -0.575547 0.921910 -0.163924 +v -0.545810 1.023918 -0.194938 +v -0.578518 1.010370 -0.178429 +v -0.736436 1.114082 -0.128904 +v -0.774764 0.929083 -0.079378 +v -0.541848 0.905971 -0.175597 +v -0.701756 0.899529 -0.105557 +v -0.609246 0.937849 -0.152250 +v -0.651526 1.039924 -0.152250 +v -0.607393 0.871567 -0.072260 +v -0.677353 0.909637 -0.048913 +v -0.689911 0.874538 -0.037240 +v -0.584842 0.947956 -0.095606 +v -0.622341 0.907657 -0.072260 +v -0.554116 1.020479 -0.121785 +v -0.551143 0.932017 -0.107280 +v -0.614565 1.085132 -0.107280 +v -0.586823 1.006931 -0.105277 +v -0.697084 1.088102 -0.072260 +v -0.627123 1.050032 -0.095606 +v -0.719635 1.011713 -0.048913 +v -0.682136 1.052012 -0.072260 +v -0.753332 1.027651 -0.037240 +v -0.717654 0.952739 -0.039243 +v -0.750361 0.939191 -0.022734 +v 0.626411 1.389878 -0.175597 +v 0.721487 1.422006 -0.128904 +v 0.638968 1.424978 -0.163924 +v 0.807472 1.584466 -0.062870 +v 0.777736 1.482457 -0.093884 +v 0.811434 1.466517 -0.082211 +v 0.726872 1.670668 -0.082211 +v 0.631796 1.638541 -0.128904 +v 0.714314 1.635570 -0.093884 +v 0.616847 1.674630 -0.128904 +v 0.575547 1.578090 -0.163924 +v 0.545810 1.476082 -0.194938 +v 0.578518 1.489630 -0.178429 +v 0.736436 1.385918 -0.128904 +v 0.774764 1.570918 -0.079378 +v 0.541848 1.594029 -0.175597 +v 0.701756 1.600471 -0.105557 +v 0.609246 1.562152 -0.152250 +v 0.651526 1.460077 -0.152250 +v 0.607393 1.628433 -0.072260 +v 0.677353 1.590363 -0.048913 +v 0.689911 1.625462 -0.037240 +v 0.584842 1.552044 -0.095606 +v 0.622342 1.592343 -0.072260 +v 0.554116 1.479522 -0.121785 +v 0.551144 1.567983 -0.107280 +v 0.614566 1.414869 -0.107280 +v 0.586823 1.493069 -0.105277 +v 0.697084 1.411898 -0.072260 +v 0.627123 1.449969 -0.095606 +v 0.719635 1.488287 -0.048913 +v 0.682136 1.447988 -0.072260 +v 0.753332 1.472350 -0.037240 +v 0.717654 1.547261 -0.039243 +v 0.750361 1.560810 -0.022734 +v -0.139878 1.876411 -0.175597 +v -0.172006 1.971487 -0.128904 +v -0.174978 1.888969 -0.163924 +v -0.334466 2.057472 -0.062870 +v -0.232457 2.027736 -0.093884 +v -0.216517 2.061434 -0.082211 +v -0.420668 1.976872 -0.082211 +v -0.388541 1.881796 -0.128904 +v -0.385570 1.964314 -0.093884 +v -0.424630 1.866847 -0.128904 +v -0.328090 1.825547 -0.163924 +v -0.226082 1.795810 -0.194938 +v -0.239630 1.828518 -0.178429 +v -0.135918 1.986436 -0.128904 +v -0.320918 2.024765 -0.079378 +v -0.344029 1.791849 -0.175597 +v -0.350471 1.951756 -0.105557 +v -0.312151 1.859246 -0.152250 +v -0.210077 1.901526 -0.152250 +v -0.378433 1.857393 -0.072260 +v -0.340363 1.927353 -0.048913 +v -0.375462 1.939911 -0.037240 +v -0.302044 1.834842 -0.095606 +v -0.342343 1.872342 -0.072260 +v -0.229521 1.804116 -0.121785 +v -0.317983 1.801144 -0.107280 +v -0.164869 1.864566 -0.107280 +v -0.243069 1.836823 -0.105277 +v -0.161898 1.947084 -0.072260 +v -0.199968 1.877123 -0.095606 +v -0.238287 1.969635 -0.048913 +v -0.197988 1.932136 -0.072260 +v -0.222349 2.003333 -0.037240 +v -0.297261 1.967654 -0.039243 +v -0.310809 2.000361 -0.022734 +v 0.139878 0.623589 -0.175597 +v 0.172006 0.528513 -0.128904 +v 0.174978 0.611032 -0.163924 +v 0.334466 0.442528 -0.062870 +v 0.232457 0.472264 -0.093884 +v 0.216517 0.438566 -0.082211 +v 0.420668 0.523129 -0.082211 +v 0.388541 0.618205 -0.128904 +v 0.385570 0.535686 -0.093884 +v 0.344029 0.708152 -0.175597 +v 0.424630 0.633153 -0.128904 +v 0.226082 0.704190 -0.194938 +v 0.239630 0.671482 -0.178429 +v 0.135918 0.513564 -0.128904 +v 0.320918 0.475236 -0.079378 +v 0.328090 0.674453 -0.163924 +v 0.350471 0.548244 -0.105557 +v 0.312151 0.640754 -0.152250 +v 0.210077 0.598474 -0.152250 +v 0.378433 0.642607 -0.072260 +v 0.340363 0.572647 -0.048913 +v 0.375462 0.560089 -0.037240 +v 0.302044 0.665158 -0.095606 +v 0.342343 0.627659 -0.072260 +v 0.229521 0.695884 -0.121785 +v 0.317983 0.698857 -0.107280 +v 0.164869 0.635435 -0.107280 +v 0.243069 0.663177 -0.105277 +v 0.161898 0.552916 -0.072260 +v 0.199969 0.622877 -0.095606 +v 0.238287 0.530365 -0.048913 +v 0.197988 0.567865 -0.072260 +v 0.222349 0.496668 -0.037240 +v 0.297261 0.532347 -0.039243 +v 0.310809 0.499639 -0.022734 +v 0.391169 2.232164 0.136894 +v 0.014465 2.197720 -0.081856 +v 0.349313 2.131115 -0.081856 +v 0.025414 2.252758 -0.109375 +v 0.025414 2.362132 0.109375 +v 0.014465 2.307096 0.136894 +v 0.402117 2.287201 0.109375 +v 0.360261 2.186152 -0.109375 +v -1.057095 1.264466 0.136894 +v -0.881115 1.599313 -0.081856 +v -0.982164 1.641169 0.136894 +v -1.002758 1.275414 -0.109375 +v -0.947720 1.264466 -0.081856 +v -1.112132 1.275414 0.109375 +v -1.037201 1.652117 0.109375 +v -0.936152 1.610261 -0.109375 +v 0.982164 0.858831 0.136894 +v 0.947720 1.235535 -0.081856 +v 0.881115 0.900687 -0.081856 +v 1.002758 1.224586 -0.109375 +v 1.112132 1.224586 0.109375 +v 1.057095 1.235535 0.136894 +v 1.037201 0.847883 0.109375 +v 0.936152 0.889739 -0.109375 +v -0.971093 0.832103 0.136894 +v -0.680368 0.590089 -0.081856 +v -0.870044 0.873959 -0.081856 +v -0.727027 0.558913 -0.109375 +v -0.804366 0.481574 0.109375 +v -0.757708 0.512749 0.136894 +v -1.017751 0.800928 0.109375 +v -0.916702 0.842784 -0.109375 +v 0.971093 1.667897 0.136894 +v 0.680368 1.909911 -0.081856 +v 0.870044 1.626041 -0.081856 +v 0.727027 1.941087 -0.109375 +v 0.804366 2.018426 0.109375 +v 0.757708 1.987251 0.136894 +v 1.017752 1.699073 0.109375 +v 0.916703 1.657217 -0.109375 +v -0.737251 2.007708 0.136894 +v -0.376041 2.120044 -0.081856 +v -0.417897 2.221093 0.136894 +v -0.691087 1.977027 -0.109375 +v -0.659911 1.930368 -0.081856 +v -0.768426 2.054366 0.109375 +v -0.449072 2.267752 0.109375 +v -0.407216 2.166703 -0.109375 +v 0.417897 0.278907 0.136894 +v 0.659911 0.569632 -0.081856 +v 0.376041 0.379956 -0.081856 +v 0.691087 0.522973 -0.109375 +v 0.768426 0.445634 0.109375 +v 0.737251 0.492292 0.136894 +v 0.449072 0.232249 0.109375 +v 0.407216 0.333298 -0.109375 +v -0.417897 0.278907 0.136894 +v -0.659911 0.569632 -0.081856 +v -0.737251 0.492293 0.136894 +v -0.407218 0.333298 -0.109375 +v -0.376041 0.379957 -0.081856 +v -0.449074 0.232249 0.109375 +v -0.768427 0.445635 0.109375 +v -0.691088 0.522974 -0.109375 +v 0.737251 2.007708 0.136894 +v 0.376041 2.120044 -0.081856 +v 0.659911 1.930368 -0.081856 +v 0.407218 2.166703 -0.109375 +v 0.449074 2.267751 0.109375 +v 0.417897 2.221093 0.136894 +v 0.768427 2.054366 0.109375 +v 0.691088 1.977026 -0.109375 +v -0.757708 1.987251 0.136894 +v -0.870044 1.626041 -0.081856 +v -0.680368 1.909911 -0.081856 +v -0.916702 1.657218 -0.109375 +v -1.017751 1.699074 0.109375 +v -0.971093 1.667897 0.136894 +v -0.804365 2.018427 0.109375 +v -0.727026 1.941088 -0.109375 +v 0.757708 0.512749 0.136894 +v 0.870044 0.873959 -0.081856 +v 0.680368 0.590089 -0.081856 +v 0.916702 0.842782 -0.109375 +v 1.017751 0.800926 0.109375 +v 0.971093 0.832103 0.136894 +v 0.804366 0.481573 0.109375 +v 0.727026 0.558912 -0.109375 +v -1.057095 1.235535 0.136894 +v -0.881115 0.900688 -0.081856 +v -0.947720 1.235535 -0.081856 +v -0.936153 0.889740 -0.109375 +v -1.037201 0.847885 0.109375 +v -0.982164 0.858832 0.136894 +v -1.112132 1.224588 0.109375 +v -1.002758 1.224588 -0.109375 +v 1.057095 1.264465 0.136894 +v 0.881115 1.599313 -0.081856 +v 0.947720 1.264465 -0.081856 +v 0.936153 1.610260 -0.109375 +v 1.037202 1.652116 0.109375 +v 0.982164 1.641169 0.136894 +v 1.112132 1.275412 0.109375 +v 1.002758 1.275412 -0.109375 +v -0.391168 2.232164 0.136894 +v -0.014465 2.197721 -0.081856 +v -0.014465 2.307096 0.136894 +v -0.360260 2.186153 -0.109375 +v -0.349312 2.131115 -0.081856 +v -0.402115 2.287201 0.109375 +v -0.025412 2.362133 0.109375 +v -0.025412 2.252758 -0.109375 +v 0.014465 0.192905 0.136894 +v 0.349312 0.368885 -0.081856 +v 0.014465 0.302280 -0.081856 +v 0.360260 0.313847 -0.109375 +v 0.402115 0.212799 0.109375 +v 0.391169 0.267836 0.136894 +v 0.025412 0.137868 0.109375 +v 0.025412 0.247242 -0.109375 +v 1.125000 1.875000 -0.625000 +v 0.625000 2.375000 -0.875000 +v 0.625000 2.375000 -0.625000 +v -0.375000 2.500000 -0.875000 +v 0.375000 2.500000 -0.625000 +v 0.375000 2.500000 -0.875000 +v -0.625000 2.375000 -0.625000 +v -1.125000 1.875000 -0.875000 +v -1.125000 1.875000 -0.625000 +v -0.208096 0.543462 -0.128904 +v -0.253178 0.638775 -0.161921 +v -0.352451 0.603256 -0.128904 +v -0.350471 0.548244 -0.105557 +v -0.307370 0.507944 -0.095887 +v -0.047836 1.365485 -0.500000 +v -0.115485 1.297835 -0.500000 +v -0.115485 1.202165 -0.500000 +v -0.047836 1.134515 -0.500000 +v 0.047834 1.134515 -0.500000 +v 0.173227 1.178247 -0.375000 +v 0.750000 1.544192 -3.511185 +v -0.750000 1.544192 -3.511185 +v -0.750000 1.639863 -3.280215 +v 0.500000 0.500000 -2.750000 +v -0.500000 0.500000 -1.750000 +v 0.208096 1.956538 -0.128904 +v 0.253178 1.861225 -0.161921 +v 0.352451 1.896744 -0.128904 +v 0.350472 1.951756 -0.105557 +v 0.307370 1.992056 -0.095887 +v -0.706538 1.458096 -0.128904 +v -0.611225 1.503178 -0.161921 +v -0.646744 1.602452 -0.128904 +v -0.701756 1.600472 -0.105557 +v -0.742056 1.557370 -0.095887 +v 0.706538 1.041904 -0.128904 +v 0.611225 0.996822 -0.161921 +v 0.646744 0.897549 -0.128904 +v 0.701756 0.899529 -0.105557 +v 0.742056 0.942630 -0.095887 +v -0.646744 0.897548 -0.128904 +v -0.611225 0.996822 -0.161921 +v -0.706538 1.041904 -0.128904 +v -0.744037 1.001604 -0.105557 +v -0.742056 0.942631 -0.095887 +v 0.646744 1.602452 -0.128904 +v 0.611225 1.503178 -0.161921 +v 0.706538 1.458097 -0.128904 +v 0.744037 1.498396 -0.105557 +v 0.742057 1.557369 -0.095887 +v -0.352452 1.896744 -0.128904 +v -0.253178 1.861225 -0.161921 +v -0.208096 1.956538 -0.128904 +v -0.248396 1.994038 -0.105557 +v -0.307369 1.992057 -0.095887 +v 0.352452 0.603256 -0.128904 +v 0.253178 0.638775 -0.161921 +v 0.208096 0.543462 -0.128904 +v 0.248396 0.505963 -0.105557 +v 0.307369 0.507944 -0.095887 +v 1.125000 1.875000 -0.875000 +v -0.375000 2.500000 -0.625000 +v -0.625000 2.375000 -0.875000 +v 0.110485 0.764515 -0.750000 +v 0.156250 0.737706 -0.418544 +v 0.110485 0.659581 -0.496669 +v 0.000000 1.031250 -0.750000 +v 0.110485 0.815831 -0.340419 +v 0.110485 0.985485 -0.750000 +v -0.156250 0.875000 -0.750000 +v -0.110486 0.815831 -0.340419 +v -0.110486 0.985485 -0.750000 +v -0.110486 0.764515 -0.750000 +v -0.156250 0.737706 -0.418544 +v 0.000000 0.718750 -0.750000 +v 0.000000 0.627221 -0.529029 +v 0.156250 0.875000 -0.750000 +v 0.000000 0.848192 -0.308058 +v -0.110486 0.659581 -0.496669 +v -0.156250 0.585633 -0.316931 +v -0.110486 0.627914 -0.214856 +v 0.110485 0.627914 -0.214856 +v 0.110485 0.543352 -0.419007 +v -0.110486 0.543352 -0.419007 +v 0.000000 0.645427 -0.172575 +v 0.156250 0.585633 -0.316931 +v 0.000000 0.525838 -0.461288 +v 0.110485 0.406250 -0.391735 +v 0.000000 0.406250 -0.437500 +v -0.110486 0.406250 -0.391735 +v -0.156250 0.406250 -0.281250 +v -0.110486 0.406250 -0.170765 +v 0.110485 0.406250 -0.170765 +v 0.000000 0.406250 -0.125000 +v 0.156250 0.406250 -0.281250 +v 0.000000 0.167073 -0.172575 +v 0.110485 0.184586 -0.214856 +v 0.156250 0.226867 -0.316932 +v 0.110485 0.269148 -0.419007 +v 0.000000 0.286661 -0.461288 +v -0.156250 0.226867 -0.316932 +v -0.110486 0.184586 -0.214856 +v -0.110486 0.269148 -0.419007 +v -0.200528 0.477172 -0.515462 +v -0.196566 0.367147 -0.468769 +v -0.404678 0.561734 -0.515462 +v -0.286731 0.557772 -0.534803 +v -0.485279 0.486735 -0.468769 +v -0.277166 0.292148 -0.422076 +v -0.395115 0.296110 -0.402735 +v -0.481318 0.376710 -0.422076 +v 0.095671 1.480970 -0.750000 +v 0.230970 1.345671 -0.750000 +v 0.230970 1.154329 -0.750000 +v 0.095671 1.019030 -0.750000 +v -0.095671 1.019030 -0.750000 +v -0.230970 1.154329 -0.750000 +v -0.230970 1.345671 -0.750000 +v -0.095671 1.480970 -0.750000 +v 0.875000 2.125000 -1.125000 +v 0.867418 1.992418 -0.974112 +v 0.911612 2.036612 -1.125000 +v 0.698223 2.125000 -1.125000 +v 0.742418 2.117417 -0.974112 +v 0.786612 2.161612 -1.125000 +v -0.742418 2.117417 -0.974112 +v -0.698223 2.125000 -1.125000 +v -0.786612 2.161612 -1.125000 +v -0.867418 1.992418 -0.974112 +v -0.875000 2.125000 -1.125000 +v -0.911612 2.036612 -1.125000 +v -0.875000 1.948223 -1.125000 +v -0.823223 2.073223 -0.948223 +v -0.635723 2.010723 -0.911612 +v -0.849112 1.922335 -1.036612 +v -0.760723 1.885723 -0.911612 +v -0.609835 2.036612 -1.000000 +v -0.672335 2.099112 -1.036612 +v -0.565641 2.294194 -0.974112 +v -0.521447 2.301777 -1.125000 +v -0.609835 2.338388 -1.125000 +v -0.690641 2.169194 -0.974112 +v -0.698223 2.301777 -1.125000 +v -0.734835 2.213388 -1.125000 +v -0.672335 2.099112 -1.036612 +v -0.698223 2.125000 -1.125000 +v -0.646447 2.250000 -0.948223 +v -0.458947 2.187500 -0.911612 +v -0.583947 2.062500 -0.911612 +v -0.495558 2.275888 -1.036612 +v -0.919194 1.940641 -0.974112 +v -0.875000 1.948223 -1.125000 +v -0.963388 1.984835 -1.125000 +v -1.044194 1.815641 -0.974112 +v -1.051777 1.948223 -1.125000 +v -1.088388 1.859835 -1.125000 +v -1.025888 1.745558 -1.036612 +v -1.051777 1.771446 -1.125000 +v -1.000000 1.896446 -0.948223 +v -0.812500 1.833946 -0.911612 +v -0.963388 1.683058 -1.000000 +v -0.786612 1.859835 -1.000000 +v -0.849112 1.922335 -1.036612 +v -0.937500 1.708946 -0.911612 +v -0.786612 2.161612 -1.812500 +v -0.609835 2.338388 -1.875000 +v -0.875000 2.125000 -1.812500 +v -0.911612 2.036612 -1.812500 +v -0.963388 1.984835 -1.750000 +v -0.698223 2.301777 -1.875000 +v -0.875000 1.948223 -1.812500 +v -0.734835 2.213388 -1.875000 +v -1.051777 1.948223 -1.750000 +v -1.088388 1.859835 -1.750000 +v -0.698223 2.125000 -1.875000 +v -1.051777 1.771446 -1.750000 +v 0.823223 2.073223 -0.948223 +v 0.875000 1.948223 -1.125000 +v 0.849112 1.922335 -1.036612 +v 0.635723 2.010723 -0.911612 +v 0.698223 1.948223 -0.875000 +v 0.760723 1.885723 -0.911612 +v 0.786612 1.859835 -1.000000 +v 0.609835 2.036612 -1.000000 +v 0.521447 2.301777 -1.125000 +v 0.565641 2.294194 -0.974112 +v 0.609835 2.338388 -1.125000 +v 0.698223 2.301777 -1.125000 +v 0.690641 2.169194 -0.974112 +v 0.734835 2.213388 -1.125000 +v 0.646447 2.250000 -0.948223 +v 0.672335 2.099112 -1.036612 +v 0.698223 2.125000 -1.125000 +v 0.458947 2.187500 -0.911612 +v 0.521447 2.125000 -0.875000 +v 0.583947 2.062500 -0.911612 +v 0.609835 2.036612 -1.000000 +v 0.495558 2.275888 -1.036612 +v 0.875000 1.948223 -1.125000 +v 0.919194 1.940641 -0.974112 +v 0.963388 1.984835 -1.125000 +v 1.051777 1.948223 -1.125000 +v 1.044194 1.815641 -0.974112 +v 1.088388 1.859835 -1.125000 +v 1.000000 1.896446 -0.948223 +v 1.025888 1.745558 -1.036612 +v 1.051777 1.771446 -1.125000 +v 0.812500 1.833946 -0.911612 +v 0.875000 1.771446 -0.875000 +v 0.963388 1.683058 -1.000000 +v 0.786612 1.859835 -1.000000 +v 0.937500 1.708946 -0.911612 +v 0.786612 2.161612 -1.812500 +v 0.609835 2.338388 -1.875000 +v 0.875000 2.125000 -1.812500 +v 0.911612 2.036612 -1.812500 +v 0.963388 1.984835 -1.750000 +v 0.698223 2.301777 -1.875000 +v 0.875000 1.948223 -1.812500 +v 0.734835 2.213388 -1.875000 +v 1.051777 1.948223 -1.750000 +v 1.088388 1.859835 -1.750000 +v 0.698223 2.125000 -1.875000 +v 1.051777 1.771446 -1.750000 +v -0.110485 1.735485 -0.750000 +v -0.156250 1.762294 -0.418544 +v -0.110485 1.840419 -0.496669 +v 0.000000 1.468750 -0.750000 +v -0.110485 1.684169 -0.340419 +v -0.110485 1.514515 -0.750000 +v 0.156250 1.625000 -0.750000 +v 0.110486 1.684169 -0.340419 +v 0.110486 1.514515 -0.750000 +v 0.110486 1.735485 -0.750000 +v 0.156250 1.762294 -0.418544 +v 0.000000 1.781250 -0.750000 +v 0.000000 1.872779 -0.529029 +v -0.156250 1.625000 -0.750000 +v 0.000000 1.651808 -0.308058 +v 0.110486 1.840419 -0.496669 +v 0.156250 1.914367 -0.316931 +v 0.110486 1.872086 -0.214856 +v -0.110485 1.872086 -0.214856 +v -0.110485 1.956648 -0.419007 +v 0.110486 1.956648 -0.419007 +v 0.000000 1.854573 -0.172575 +v -0.156250 1.914367 -0.316931 +v 0.000000 1.974162 -0.461288 +v -0.110485 2.093750 -0.391735 +v 0.000000 2.093750 -0.437500 +v 0.110486 2.093750 -0.391735 +v 0.156250 2.093750 -0.281250 +v 0.110486 2.093750 -0.170765 +v -0.110485 2.093750 -0.170765 +v 0.000000 2.093750 -0.125000 +v -0.156250 2.093750 -0.281250 +v 0.000000 2.332927 -0.172575 +v -0.110485 2.315414 -0.214856 +v -0.156250 2.273133 -0.316932 +v -0.110485 2.230852 -0.419007 +v 0.000000 2.213339 -0.461288 +v 0.156250 2.273133 -0.316932 +v 0.110486 2.315414 -0.214856 +v 0.110486 2.230852 -0.419007 +v 0.200528 2.022828 -0.515462 +v 0.196566 2.132853 -0.468769 +v 0.404678 1.938266 -0.515462 +v 0.286731 1.942228 -0.534803 +v 0.485279 2.013265 -0.468769 +v 0.277166 2.207852 -0.422076 +v 0.395115 2.203890 -0.402735 +v 0.481318 2.123290 -0.422076 +v -0.485485 1.139515 -0.750000 +v -0.512294 1.093750 -0.418544 +v -0.590419 1.139515 -0.496669 +v -0.218750 1.250000 -0.750000 +v -0.434169 1.139515 -0.340419 +v -0.264515 1.139515 -0.750000 +v -0.375000 1.406250 -0.750000 +v -0.434169 1.360486 -0.340419 +v -0.264515 1.360486 -0.750000 +v -0.485485 1.360486 -0.750000 +v -0.512294 1.406250 -0.418544 +v -0.531250 1.250000 -0.750000 +v -0.622779 1.250000 -0.529029 +v -0.375000 1.093750 -0.750000 +v -0.401808 1.250000 -0.308058 +v -0.590419 1.360486 -0.496669 +v -0.664367 1.406250 -0.316931 +v -0.622086 1.360486 -0.214856 +v -0.622086 1.139515 -0.214856 +v -0.706648 1.139515 -0.419007 +v -0.706648 1.360486 -0.419007 +v -0.604573 1.250000 -0.172575 +v -0.664367 1.093750 -0.316931 +v -0.724162 1.250000 -0.461288 +v -0.843750 1.139515 -0.391735 +v -0.843750 1.250000 -0.437500 +v -0.843750 1.360486 -0.391735 +v -0.843750 1.406250 -0.281250 +v -0.843750 1.360486 -0.170765 +v -0.843750 1.139515 -0.170765 +v -0.843750 1.250000 -0.125000 +v -0.843750 1.093750 -0.281250 +v -1.082927 1.250000 -0.172575 +v -1.065414 1.139515 -0.214856 +v -1.023133 1.093750 -0.316932 +v -0.980852 1.139515 -0.419007 +v -0.963339 1.250000 -0.461288 +v -1.023133 1.406250 -0.316932 +v -1.065414 1.360486 -0.214856 +v -0.980852 1.360486 -0.419007 +v -0.772828 1.450528 -0.515462 +v -0.882853 1.446566 -0.468769 +v -0.688266 1.654678 -0.515462 +v -0.692228 1.536731 -0.534803 +v -0.763265 1.735279 -0.468769 +v -0.957852 1.527166 -0.422076 +v -0.953890 1.645115 -0.402735 +v -0.873290 1.731318 -0.422076 +v 0.485485 1.360485 -0.750000 +v 0.512294 1.406250 -0.418544 +v 0.590419 1.360485 -0.496669 +v 0.218750 1.250000 -0.750000 +v 0.434169 1.360485 -0.340419 +v 0.264515 1.360485 -0.750000 +v 0.375000 1.093750 -0.750000 +v 0.434169 1.139514 -0.340419 +v 0.264515 1.139514 -0.750000 +v 0.485485 1.139514 -0.750000 +v 0.512294 1.093750 -0.418544 +v 0.531250 1.250000 -0.750000 +v 0.622779 1.250000 -0.529029 +v 0.375000 1.406250 -0.750000 +v 0.401808 1.250000 -0.308058 +v 0.590419 1.139514 -0.496669 +v 0.664367 1.093750 -0.316931 +v 0.622086 1.139514 -0.214856 +v 0.622086 1.360485 -0.214856 +v 0.706648 1.360485 -0.419007 +v 0.706648 1.139514 -0.419007 +v 0.604573 1.250000 -0.172575 +v 0.664367 1.406250 -0.316931 +v 0.724162 1.250000 -0.461288 +v 0.843750 1.360485 -0.391735 +v 0.843750 1.250000 -0.437500 +v 0.843750 1.139514 -0.391735 +v 0.843750 1.093750 -0.281250 +v 0.843750 1.139514 -0.170765 +v 0.843750 1.360485 -0.170765 +v 0.843750 1.250000 -0.125000 +v 0.843750 1.406250 -0.281250 +v 1.082927 1.250000 -0.172575 +v 1.065414 1.360485 -0.214856 +v 1.023133 1.406250 -0.316932 +v 0.980852 1.360485 -0.419007 +v 0.963339 1.250000 -0.461288 +v 1.023133 1.093750 -0.316932 +v 1.065414 1.139514 -0.214856 +v 0.980852 1.139514 -0.419007 +v 0.772828 1.049472 -0.515462 +v 0.882853 1.053434 -0.468769 +v 0.688266 0.845322 -0.515462 +v 0.692228 0.963269 -0.534803 +v 0.763265 0.764721 -0.468769 +v 0.953890 0.854885 -0.402735 +v 0.873290 0.768682 -0.422076 +v 0.957852 0.972834 -0.422076 +v -0.265165 0.828586 -0.750000 +v -0.251761 0.777268 -0.418544 +v -0.339365 0.754386 -0.496669 +v -0.154680 1.095320 -0.750000 +v -0.228879 0.864871 -0.340419 +v -0.108916 0.984835 -0.750000 +v -0.375651 1.095320 -0.750000 +v -0.385129 1.021122 -0.340419 +v -0.265166 1.141085 -0.750000 +v -0.421415 0.984836 -0.750000 +v -0.472732 0.998239 -0.418544 +v -0.375651 0.874350 -0.750000 +v -0.440371 0.809629 -0.529029 +v -0.154680 0.874350 -0.750000 +v -0.284121 0.965879 -0.308058 +v -0.495615 0.910636 -0.496669 +v -0.580264 0.890707 -0.316931 +v -0.518007 0.888244 -0.214856 +v -0.361757 0.731994 -0.214856 +v -0.421551 0.672200 -0.419007 +v -0.577801 0.828450 -0.419007 +v -0.427498 0.822502 -0.172575 +v -0.359293 0.669736 -0.316931 +v -0.512060 0.737940 -0.461288 +v -0.518497 0.575254 -0.391735 +v -0.596621 0.653379 -0.437500 +v -0.674747 0.731504 -0.391735 +v -0.707107 0.763864 -0.281250 +v -0.674747 0.731504 -0.170765 +v -0.518497 0.575254 -0.170765 +v -0.596621 0.653379 -0.125000 +v -0.486136 0.542893 -0.281250 +v -0.765745 0.484255 -0.172575 +v -0.675237 0.418514 -0.214856 +v -0.612979 0.416050 -0.316932 +v -0.615442 0.478308 -0.419007 +v -0.681184 0.568817 -0.461288 +v -0.833950 0.637021 -0.316932 +v -0.831487 0.574764 -0.214856 +v -0.771693 0.634558 -0.419007 +v -0.688267 0.845323 -0.515462 +v -0.763264 0.764722 -0.468769 +v -0.772828 1.049473 -0.515462 +v -0.692228 0.963270 -0.534803 +v -0.882854 1.053434 -0.468769 +v -0.873290 0.768683 -0.422076 +v -0.953891 0.854886 -0.402735 +v -0.957852 0.972834 -0.422076 +v 0.265165 1.671415 -0.750000 +v 0.251761 1.722732 -0.418544 +v 0.339365 1.745614 -0.496669 +v 0.154680 1.404680 -0.750000 +v 0.228879 1.635129 -0.340419 +v 0.108916 1.515165 -0.750000 +v 0.375651 1.404680 -0.750000 +v 0.385129 1.478879 -0.340419 +v 0.265166 1.358915 -0.750000 +v 0.421415 1.515165 -0.750000 +v 0.472732 1.501761 -0.418544 +v 0.375651 1.625651 -0.750000 +v 0.440371 1.690371 -0.529029 +v 0.154680 1.625651 -0.750000 +v 0.284121 1.534121 -0.308058 +v 0.495615 1.589364 -0.496669 +v 0.580264 1.609293 -0.316931 +v 0.518007 1.611756 -0.214856 +v 0.361757 1.768006 -0.214856 +v 0.421551 1.827801 -0.419007 +v 0.577801 1.671550 -0.419007 +v 0.427498 1.677498 -0.172575 +v 0.359293 1.830264 -0.316931 +v 0.512060 1.762060 -0.461288 +v 0.596621 1.846622 -0.437500 +v 0.674747 1.768496 -0.391735 +v 0.707107 1.736136 -0.281250 +v 0.674747 1.768496 -0.170765 +v 0.518497 1.924746 -0.170765 +v 0.518497 1.924746 -0.391735 +v 0.596621 1.846622 -0.125000 +v 0.486136 1.957107 -0.281250 +v 0.765745 2.015745 -0.172575 +v 0.675237 2.081486 -0.214856 +v 0.612979 2.083950 -0.316932 +v 0.615442 2.021692 -0.419007 +v 0.681184 1.931184 -0.461288 +v 0.833950 1.862979 -0.316932 +v 0.831487 1.925236 -0.214856 +v 0.771693 1.865442 -0.419007 +v 0.688267 1.654677 -0.515462 +v 0.763264 1.735279 -0.468769 +v 0.772828 1.450527 -0.515462 +v 0.692229 1.536730 -0.534803 +v 0.882854 1.446566 -0.468769 +v 0.873290 1.731318 -0.422076 +v 0.953891 1.645114 -0.402735 +v 0.957852 1.527166 -0.422076 +v -0.421415 1.515165 -0.750000 +v -0.472732 1.501761 -0.418544 +v -0.495614 1.589365 -0.496669 +v -0.154680 1.404680 -0.750000 +v -0.385129 1.478879 -0.340419 +v -0.265165 1.358916 -0.750000 +v -0.154680 1.625651 -0.750000 +v -0.228879 1.635129 -0.340419 +v -0.108915 1.515166 -0.750000 +v -0.265164 1.671415 -0.750000 +v -0.251761 1.722732 -0.418544 +v -0.375651 1.625651 -0.750000 +v -0.440371 1.690372 -0.529029 +v -0.375651 1.404680 -0.750000 +v -0.284121 1.534121 -0.308058 +v -0.339364 1.745615 -0.496669 +v -0.359293 1.830264 -0.316931 +v -0.361756 1.768007 -0.214856 +v -0.518006 1.611757 -0.214856 +v -0.577800 1.671551 -0.419007 +v -0.421550 1.827801 -0.419007 +v -0.427498 1.677498 -0.172575 +v -0.580264 1.609293 -0.316931 +v -0.512060 1.762060 -0.461288 +v -0.674746 1.768497 -0.391735 +v -0.596621 1.846622 -0.437500 +v -0.518496 1.924747 -0.391735 +v -0.486136 1.957107 -0.281250 +v -0.518496 1.924747 -0.170765 +v -0.674746 1.768497 -0.170765 +v -0.596621 1.846622 -0.125000 +v -0.707107 1.736136 -0.281250 +v -0.765745 2.015745 -0.172575 +v -0.831486 1.925237 -0.214856 +v -0.833950 1.862979 -0.316932 +v -0.771692 1.865443 -0.419007 +v -0.681184 1.931184 -0.461288 +v -0.612979 2.083950 -0.316932 +v -0.675236 2.081487 -0.214856 +v -0.615442 2.021693 -0.419007 +v -0.404677 1.938267 -0.515462 +v -0.485278 2.013265 -0.468769 +v -0.200527 2.022829 -0.515462 +v -0.286730 1.942229 -0.534803 +v -0.196566 2.132854 -0.468769 +v -0.481318 2.123290 -0.422076 +v -0.395114 2.203891 -0.402735 +v -0.277167 2.207852 -0.422076 +v 0.421415 0.984835 -0.750000 +v 0.472732 0.998239 -0.418544 +v 0.495614 0.910635 -0.496669 +v 0.154680 1.095320 -0.750000 +v 0.385129 1.021121 -0.340419 +v 0.265165 1.141084 -0.750000 +v 0.154680 0.874350 -0.750000 +v 0.228879 0.864871 -0.340419 +v 0.108915 0.984834 -0.750000 +v 0.265164 0.828585 -0.750000 +v 0.251761 0.777268 -0.418544 +v 0.375650 0.874350 -0.750000 +v 0.440371 0.809629 -0.529029 +v 0.375651 1.095320 -0.750000 +v 0.284121 0.965879 -0.308058 +v 0.339364 0.754385 -0.496669 +v 0.359293 0.669736 -0.316931 +v 0.361756 0.731993 -0.214856 +v 0.518006 0.888243 -0.214856 +v 0.577800 0.828449 -0.419007 +v 0.421550 0.672199 -0.419007 +v 0.427498 0.822502 -0.172575 +v 0.580264 0.890707 -0.316931 +v 0.512060 0.737940 -0.461288 +v 0.674746 0.731503 -0.391735 +v 0.596621 0.653379 -0.437500 +v 0.518496 0.575253 -0.391735 +v 0.486136 0.542893 -0.281250 +v 0.518496 0.575253 -0.170765 +v 0.674746 0.731503 -0.170765 +v 0.596621 0.653379 -0.125000 +v 0.707107 0.763864 -0.281250 +v 0.765745 0.484255 -0.172575 +v 0.831486 0.574763 -0.214856 +v 0.833950 0.637021 -0.316932 +v 0.771692 0.634558 -0.419007 +v 0.681184 0.568816 -0.461288 +v 0.612979 0.416050 -0.316932 +v 0.675236 0.418513 -0.214856 +v 0.615442 0.478308 -0.419007 +v 0.404677 0.561733 -0.515462 +v 0.485278 0.486736 -0.468769 +v 0.200527 0.477172 -0.515462 +v 0.286730 0.557772 -0.534803 +v 0.196566 0.367146 -0.468769 +v 0.395114 0.296109 -0.402735 +v 0.277166 0.292148 -0.422076 +v 0.481317 0.376710 -0.422076 +v 0.000000 2.500000 -1.875000 +v 0.088388 2.463388 -1.125000 +v 0.088388 2.463388 -1.875000 +v -0.125000 2.375000 -1.875000 +v -0.088388 2.463388 -1.125000 +v -0.088388 2.463388 -1.875000 +v 0.125000 2.375000 -1.125000 +v 0.125000 2.375000 -1.875000 +v 0.000000 2.500000 -1.125000 +v -0.125000 2.338388 -1.036612 +v -0.088388 2.400888 -0.974111 +v 0.125000 2.338388 -1.036612 +v 0.000000 2.426777 -0.948223 +v 0.088388 2.400888 -0.974111 +v 0.088388 2.250000 -0.911611 +v -0.125000 2.250000 -1.000000 +v -0.088388 2.250000 -0.911611 +v 0.125000 2.250000 -1.000000 +v 0.000000 2.250000 -0.875000 +v 0.250000 2.500000 -1.875000 +v 0.338388 2.463388 -1.125000 +v 0.338388 2.463388 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.161612 2.463388 -1.125000 +v 0.161612 2.463388 -1.875000 +v 0.375000 2.375000 -1.125000 +v 0.375000 2.375000 -1.875000 +v 0.250000 2.500000 -1.125000 +v 0.125000 2.338388 -1.036612 +v 0.161612 2.400888 -0.974111 +v 0.375000 2.338388 -1.036612 +v 0.250000 2.426777 -0.948223 +v 0.338388 2.400888 -0.974111 +v 0.338388 2.250000 -0.911611 +v 0.125000 2.250000 -1.000000 +v 0.161612 2.250000 -0.911611 +v 0.375000 2.250000 -1.000000 +v 0.250000 2.250000 -0.875000 +v -0.250000 2.500000 -1.875000 +v -0.161612 2.463388 -1.125000 +v -0.161612 2.463388 -1.875000 +v -0.375000 2.375000 -1.875000 +v -0.338388 2.463388 -1.125000 +v -0.338388 2.463388 -1.875000 +v -0.125000 2.375000 -1.125000 +v -0.125000 2.375000 -1.875000 +v -0.250000 2.500000 -1.125000 +v -0.375000 2.338388 -1.036612 +v -0.338388 2.400888 -0.974111 +v -0.125000 2.338388 -1.036612 +v -0.250000 2.426777 -0.948223 +v -0.161612 2.400888 -0.974111 +v -0.161612 2.250000 -0.911611 +v -0.375000 2.250000 -1.000000 +v -0.338388 2.250000 -0.911611 +v -0.125000 2.250000 -1.000000 +v -0.250000 2.250000 -0.875000 +v 0.672335 2.099112 -1.036612 +v -0.698223 1.948223 -0.875000 +v -0.786612 1.859835 -1.000000 +v -0.521447 2.125000 -0.875000 +v -0.609835 2.036612 -1.000000 +v -0.433058 2.213388 -1.000000 +v -0.875000 1.771446 -0.875000 +v -0.698223 2.125000 -1.812500 +v -0.521447 2.301777 -1.875000 +v -0.875000 1.948223 -1.750000 +v 0.433058 2.213388 -1.000000 +v 0.849112 1.922335 -1.036612 +v 0.698223 2.125000 -1.812500 +v 0.521447 2.301777 -1.875000 +v 0.875000 1.948223 -1.750000 +v -0.125000 2.375000 -1.125000 +v 0.125000 2.375000 -1.125000 +v -0.375000 2.375000 -1.125000 +v -1.250000 1.376000 -2.625000 +v -1.250000 0.751000 -2.625000 +v -1.250000 0.750000 -0.625000 +v 1.000000 0.500000 -2.125000 +v 1.250000 0.750000 -3.750000 +v 1.250000 0.750000 -0.625000 +v 1.250000 1.625000 -3.750000 +v 1.250000 1.750000 -3.375000 +v -0.500000 0.000000 -1.625000 +v 0.500000 0.000000 -0.625000 +v -0.500000 0.000000 -0.625000 +v -1.000000 0.500000 -2.125000 +v 0.500000 0.000000 -1.625000 +v 1.000000 1.750000 -3.000000 +v 1.000000 1.750000 -3.375000 +v -1.250000 0.750000 -3.750000 +v -1.250000 1.376000 -3.625000 +v -1.250000 1.625000 -3.750000 +v -1.250000 1.750000 -3.000000 +v -1.000000 0.501000 -3.625000 +v -1.250000 0.751000 -3.625000 +v 1.000000 1.625000 -3.750000 +v 1.000000 0.500000 -3.750000 +v 1.000000 0.750000 -3.750000 +v -1.000000 0.750000 -3.750000 +v -1.000000 0.500000 -3.750000 +v -1.000000 1.625000 -3.750000 +v -1.250000 1.750000 -3.375000 +v -1.000000 1.750000 -3.375000 +v -1.000000 1.750000 -3.000000 +v 0.500000 2.500000 -2.625000 +v -0.500000 2.250000 -2.750000 +v -0.500000 2.500000 -2.625000 +v 1.250000 1.750000 -3.000000 +v 0.500000 2.250000 -2.750000 +v 0.948223 1.698223 -0.875000 +v 0.536612 2.286612 -0.875000 +v 1.036612 1.786612 -0.875000 +v -1.036612 1.786612 -0.875000 +v -0.536612 2.286612 -0.625000 +v -0.536612 2.286612 -0.875000 +v 1.250000 1.750000 -0.625000 +v 1.039364 1.680519 -0.625000 +v 1.125000 1.250000 -0.625000 +v 1.039364 0.819481 -0.625000 +v 0.795495 0.454505 -0.625000 +v 0.430519 0.210635 -0.625000 +v 0.000000 0.125000 -0.625000 +v -0.430519 0.210636 -0.625000 +v -0.795495 0.454505 -0.625000 +v -1.039364 0.819481 -0.625000 +v -1.125000 1.250000 -0.625000 +v -0.375000 2.375000 -0.875000 +v 0.375000 2.375000 -0.625000 +v 0.375000 2.375000 -0.875000 +v -1.000000 1.750000 -2.875000 +v 1.000000 1.750000 -2.875000 +v 0.500000 2.250000 -2.625000 +v -0.500000 2.250000 -2.625000 +v 0.500000 1.819230 -2.900848 +v 0.500000 2.268567 -2.829241 +v 0.500000 2.215740 -2.715952 +v -0.500000 2.268567 -2.829241 +v -0.500000 1.819230 -2.900848 +v -0.500000 2.215740 -2.715952 +v 0.312500 2.438500 -2.750000 +v -0.500000 1.872057 -3.014137 +v -0.312500 2.438500 -2.750000 +v 0.312500 2.385673 -2.636712 +v -0.312500 2.385673 -2.636712 +v 1.000000 0.500000 -2.625000 +v 0.500000 1.562500 -4.875000 +v -0.500000 0.312500 -4.875000 +v -0.500000 1.562500 -4.875000 +v -0.500000 0.312500 -4.125000 +v 0.500000 0.312500 -4.875000 +v 0.500000 0.312500 -4.125000 +v 0.500000 1.562500 -4.125000 +v -0.500000 1.562500 -4.125000 +v 0.187500 1.625000 -4.125000 +v -0.187500 1.625000 -5.000000 +v -0.187500 1.625000 -4.125000 +v -0.187500 2.022748 -5.044194 +v -0.187500 2.022748 -5.574524 +v -0.187500 1.845971 -5.574524 +v 0.187500 1.625000 -5.000000 +v -0.187500 1.250000 -5.000000 +v 0.187500 1.250000 -5.000000 +v -0.187500 1.250000 -4.125000 +v -0.187500 1.669194 -5.397748 +v 0.187500 2.022748 -5.044194 +v 0.187500 1.845971 -5.574524 +v 0.187500 1.669194 -5.397748 +v 0.187500 2.022748 -5.574524 +v -0.187500 2.287913 -5.309359 +v 0.187500 2.287913 -5.309359 +v 0.000000 2.453697 -2.948062 +v 0.000000 2.487745 -2.725302 +v 0.000000 2.566986 -2.895234 +v 0.324759 1.977947 -2.963025 +v 0.216506 2.113832 -3.106544 +v 0.324759 2.057188 -3.132957 +v 0.000000 2.374456 -2.778129 +v 0.187500 2.442212 -2.746534 +v -0.500000 2.500000 -0.625000 +v -0.375000 2.500000 -1.875000 +v -1.125000 1.875000 -1.875000 +v -0.625000 2.375000 -1.875000 +v -0.625000 2.375000 -2.125000 +v 1.036612 1.786612 -0.625000 +v -1.125000 1.875000 -2.625000 +v -0.625000 2.375000 -2.375000 +v -0.625000 2.375000 -0.625000 +v -0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -1.625000 +v 0.625000 2.375000 -1.875000 +v 0.500000 2.500000 -0.625000 +v 0.448223 2.198223 -1.875000 +v 0.948223 1.698223 -1.625000 +v -1.036612 1.786612 -2.625000 +v -1.125000 1.875000 -1.625000 +v -0.448223 2.198223 -1.875000 +v -0.536612 2.286612 -2.125000 +v -0.536612 2.286612 -2.375000 +v -0.448223 2.198223 -0.875000 +v 0.448223 2.198223 -0.875000 +v -1.036612 1.786612 -1.875000 +v -0.948223 1.698223 -1.625000 +v 0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -0.875000 +v 0.375000 2.500000 -0.625000 +v 0.375000 2.500000 -0.875000 +v 0.536612 2.286612 -0.625000 +v 0.430518 2.289365 -0.625000 +v -1.039364 1.680519 -0.625000 +v -1.036612 1.786612 -0.625000 +v 0.625000 2.375000 -0.625000 +v -0.375000 2.375000 -0.625000 +v -0.430519 2.289364 -0.625000 +v 0.187500 1.250000 -4.125000 +v 0.375000 2.250000 -1.875000 +v 0.375000 2.250000 -0.875000 +v 0.375000 2.500000 -1.875000 +v -1.125000 1.875000 -0.875000 +v -0.375000 2.250000 -0.875000 +v -0.375000 2.250000 -1.875000 +v -0.375000 2.500000 -0.875000 +v 1.125000 1.875000 -0.625000 +v -0.375000 2.500000 -0.625000 +v -1.250000 1.750000 -0.625000 +v -1.125000 1.875000 -0.625000 +v -0.500000 0.000000 -0.375000 +v 0.500000 -0.000000 0.125000 +v -0.500000 -0.000000 0.125000 +v 0.500000 2.500000 0.125000 +v -0.500000 2.500000 -0.375000 +v -0.500000 2.500000 0.125000 +v -1.250000 1.750000 -0.375000 +v -1.250000 0.750000 0.125000 +v -1.250000 1.750000 0.125000 +v 1.250000 0.750000 0.125000 +v 1.250000 1.750000 -0.375000 +v 1.250000 1.750000 0.125000 +v 0.500000 2.500000 -0.375000 +v 1.250000 0.750000 -0.375000 +v 0.500000 0.000000 -0.375000 +v -1.250000 0.750000 -0.375000 +v 1.039364 1.680519 0.125000 +v 1.125000 1.250000 0.125000 +v 0.430518 2.289365 0.125000 +v 0.795495 2.045496 0.125000 +v -0.430519 2.289364 0.125000 +v 0.000000 2.375000 0.125000 +v -1.039364 1.680519 0.125000 +v -0.795495 2.045495 0.125000 +v -1.039364 0.819481 0.125000 +v -1.125000 1.250000 0.125000 +v -0.430519 0.210636 0.125000 +v -0.795495 0.454505 0.125000 +v 0.430519 0.210635 0.125000 +v 0.000000 0.125000 0.125000 +v 1.039364 0.819481 0.125000 +v 0.795495 0.454505 0.125000 +v 0.000000 0.750000 -0.750000 +v 0.500000 1.250000 -0.750000 +v 0.000000 1.750000 -0.750000 +v 0.795495 2.045496 -0.375000 +v 0.430518 2.289365 -0.375000 +v 1.125000 1.250000 -0.375000 +v 1.039364 1.680519 -0.375000 +v 0.795495 0.454505 -0.375000 +v 1.039364 0.819481 -0.375000 +v 0.000000 0.125000 -0.375000 +v 0.430519 0.210635 -0.375000 +v -0.795495 0.454505 -0.375000 +v -0.430519 0.210636 -0.375000 +v -1.125000 1.250000 -0.375000 +v -1.039364 0.819481 -0.375000 +v -0.795495 2.045495 -0.375000 +v -1.039364 1.680519 -0.375000 +v 0.000000 2.375000 -0.375000 +v -0.430519 2.289364 -0.375000 +v -1.000000 0.500000 -2.625000 +v 0.500000 1.872057 -3.014137 +v 0.216506 2.034591 -2.936611 +v 0.324760 2.317812 -2.804543 +v -0.948223 1.698223 -0.875000 +v -0.191341 1.711940 -0.750000 +v -0.353553 1.603553 -0.750000 +v -0.461940 1.441342 -0.750000 +v -0.500000 1.250000 -0.750000 +v -0.461940 1.058658 -0.750000 +v -0.353553 0.896447 -0.750000 +v -0.191341 0.788060 -0.750000 +v 0.191341 0.788060 -0.750000 +v 0.353553 0.896446 -0.750000 +v 0.461940 1.058658 -0.750000 +v 0.461940 1.441342 -0.750000 +v 0.353553 1.603554 -0.750000 +v 0.191341 1.711940 -0.750000 +v 0.000000 1.921303 -2.989438 v -0.125000 2.030899 -3.145216 v 0.000000 2.000544 -3.159371 +v -0.250000 2.147880 -2.883784 +v -0.216506 2.340409 -3.000889 +v -0.250000 2.227120 -3.053716 +v 0.187500 2.521452 -2.916467 v 0.125000 2.030899 -3.145216 -v 0.216506 2.113832 -3.106544 +v 0.125000 1.951658 -2.975283 +v -0.216506 2.034591 -2.936611 +v -0.216506 2.113832 -3.106544 +v 0.324760 2.397053 -2.974475 +v -0.125000 2.344101 -2.792284 +v -0.125000 2.423342 -2.962217 +v -0.125000 1.951658 -2.975283 +v 0.375000 2.227120 -3.053716 +v -0.216506 2.261168 -2.830956 +v 0.375000 2.147880 -2.883783 +v -0.312500 2.245990 -2.838034 +v -0.375000 2.313995 -2.944245 +v -0.375000 2.261168 -2.830956 +v -0.500000 2.147880 -2.883784 +v -0.483253 2.257351 -2.970659 +v -0.500000 2.200707 -2.997072 +v -0.266747 2.091235 -2.910197 +v -0.312500 2.102596 -3.042822 +v -0.266747 2.144063 -3.023486 +v -0.375000 2.034591 -2.936611 +v -0.437500 2.102596 -3.042822 +v -0.375000 2.087419 -3.049900 +v -0.266747 2.257351 -2.970659 +v -0.312500 2.298818 -2.951323 +v -0.437500 2.245990 -2.838034 +v -0.483253 2.204524 -2.857370 +v -0.312500 2.049769 -2.929533 +v -0.483253 2.091235 -2.910197 +v -0.437500 2.049769 -2.929533 +v -0.250000 2.147880 -2.883784 +v -0.266747 2.204524 -2.857370 +v -0.437500 2.298818 -2.951323 +v -0.483253 2.144063 -3.023486 +v -0.250000 2.200707 -2.997072 +v -0.382683 2.173880 -0.125000 +v 0.000000 2.250000 -0.125000 +v 0.382683 2.173880 -0.125000 +v 0.707106 1.957107 -0.125000 +v 0.923880 1.632684 -0.125000 +v 1.000000 1.250000 -0.125000 +v 0.923880 0.867316 -0.125000 +v 0.707106 0.542893 -0.125000 +v 0.382683 0.326120 -0.125000 +v 0.000000 0.250000 -0.125000 +v -0.382684 0.326120 -0.125000 +v -0.707108 0.542893 -0.125000 +v -0.923880 0.867316 -0.125000 +v -1.000000 1.250000 -0.125000 +v -0.923880 1.632683 -0.125000 +v -0.707108 1.957107 -0.125000 +v 0.000000 2.250000 -0.500000 +v 0.382683 2.173880 -0.500000 +v 0.000000 0.250000 -0.500000 +v -0.382683 2.173880 -0.500000 +v 0.382683 0.326120 -0.500000 +v -0.707108 1.957107 -0.500000 +v 0.707106 0.542893 -0.500000 +v -0.923880 1.632683 -0.500000 +v 0.923880 0.867316 -0.500000 +v -1.000000 1.250000 -0.500000 +v 1.000000 1.250000 -0.500000 +v -0.923880 0.867316 -0.500000 +v 0.923880 1.632684 -0.500000 +v -0.707108 0.542893 -0.500000 +v 0.707106 1.957107 -0.500000 +v -0.382684 0.326120 -0.500000 +v 0.000000 0.125000 -0.625000 +v -0.430519 2.289364 -0.625000 +v 0.000000 2.375000 -0.625000 +v 0.430519 0.210635 -0.625000 +v -0.795495 2.045495 -0.625000 +v 0.795495 0.454505 -0.625000 +v -1.039364 1.680519 -0.625000 +v 1.039364 0.819481 -0.625000 +v -1.125000 1.250000 -0.625000 +v 1.125000 1.250000 -0.625000 +v -1.039364 0.819481 -0.625000 +v 1.039364 1.680519 -0.625000 +v -0.795495 0.454505 -0.625000 +v 0.795495 2.045496 -0.625000 +v -0.430519 0.210636 -0.625000 +v 0.430518 2.289365 -0.625000 +vt 0.324138 0.796875 +vt 0.282759 0.812500 +vt 0.282759 0.796875 +vt 0.324138 0.828125 +vt 0.282759 0.843750 +vt 0.282759 0.828125 +vt 0.324138 0.859375 +vt 0.282759 0.875000 +vt 0.282759 0.859375 +vt 0.282759 0.890625 +vt 0.331034 0.906250 +vt 0.275862 0.906250 +vt 0.331034 0.765625 +vt 0.282759 0.781250 +vt 0.275862 0.765625 +vt 0.324138 0.812500 +vt 0.282759 1.000000 +vt 0.324138 0.984375 +vt 0.324138 1.000000 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.324138 0.953125 +vt 0.282759 0.968750 +vt 0.282759 0.953125 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.282759 0.968750 +vt 0.324138 0.984375 +vt 0.282759 0.984375 +vt 0.324138 0.968750 +vt 0.282759 0.968750 +vt 0.324138 0.984375 +vt 0.324138 0.968750 +vt 0.282759 0.984375 +vt 0.282759 0.968750 +vt 0.275862 0.968750 +vt 0.275862 0.984375 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.331034 0.984375 +vt 0.324138 0.968750 +vt 0.331034 0.968750 +vt 0.282759 1.000000 +vt 0.324138 1.000000 +vt 0.331034 0.984375 +vt 0.331034 0.968750 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.331034 0.984375 +vt 0.324138 0.968750 +vt 0.331034 0.968750 +vt 0.282759 1.000000 +vt 0.324138 1.000000 +vt 0.331034 0.984375 +vt 0.331034 0.968750 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.275862 0.968750 +vt 0.275862 0.984375 +vt 0.282759 1.000000 +vt 0.324138 0.984375 +vt 0.324138 1.000000 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.310345 0.031250 +vt 0.296552 0.046875 +vt 0.296552 0.031250 +vt 0.268584 0.103261 +vt 0.268584 0.115489 +vt 0.264768 0.124136 +vt 0.282759 0.046875 +vt 0.282759 0.031250 +vt 0.268966 0.031250 +vt 0.275862 0.046875 +vt 0.268966 0.046875 +vt 0.255172 0.046875 +vt 0.255172 0.031250 +vt 0.365517 0.031250 +vt 0.351724 0.046875 +vt 0.351724 0.031250 +vt 0.337931 0.046875 +vt 0.337931 0.031250 +vt 0.324138 0.031250 +vt 0.331034 0.046875 +vt 0.324138 0.046875 +vt 0.310345 0.046875 +vt 0.296552 0.078125 +vt 0.303448 0.062500 +vt 0.303448 0.078125 +vt 0.282759 0.078125 +vt 0.289655 0.062500 +vt 0.289655 0.078125 +vt 0.268966 0.062500 +vt 0.275862 0.078125 +vt 0.268966 0.078125 +vt 0.255172 0.062500 +vt 0.262069 0.078125 +vt 0.255172 0.078125 +vt 0.351724 0.062500 +vt 0.358621 0.078125 +vt 0.351724 0.078125 +vt 0.337931 0.078125 +vt 0.344828 0.062500 +vt 0.344828 0.078125 +vt 0.324138 0.078125 +vt 0.331034 0.062500 +vt 0.331034 0.078125 +vt 0.310345 0.078125 +vt 0.317241 0.062500 +vt 0.317241 0.078125 +vt 0.848515 0.125000 +vt 0.903448 0.000542 +vt 0.958382 0.125000 +vt 0.351724 0.906250 +vt 0.331034 0.718750 +vt 0.255172 0.765625 +vt 0.275862 0.953125 +vt 0.848515 0.375000 +vt 0.903448 0.250541 +vt 0.958382 0.375000 +vt 0.737931 0.375000 +vt 0.848276 0.281250 +vt 0.848276 0.375000 +vt 0.737931 0.187500 +vt 0.848276 0.093750 +vt 0.848276 0.187500 +vt 0.737931 0.562500 +vt 0.848276 0.468750 +vt 0.848276 0.562500 +vt 0.737931 0.281250 +vt 0.737931 0.093750 +vt 0.848276 -0.000000 +vt 0.737931 0.656250 +vt 0.848276 0.656250 +vt 0.737931 0.468750 +vt 0.262069 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.171875 +vt 0.303448 0.140625 +vt 0.303448 0.171875 +vt 0.268966 0.125000 +vt 0.296552 0.140625 +vt 0.268966 0.140625 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.268966 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.140625 +vt 0.262069 0.171875 +vt 0.262069 0.140625 +vt 0.296552 0.187500 +vt 0.268966 0.171875 +vt 0.296552 0.171875 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.262069 0.171875 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.303448 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.125000 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.296552 0.171875 +vt 0.268966 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.140625 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.262069 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.187500 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.140625 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.317241 0.140625 +vt 0.324138 0.171875 +vt 0.317241 0.171875 +vt 0.344828 0.171875 +vt 0.358621 0.187500 +vt 0.344828 0.187500 +vt 0.324138 0.125000 +vt 0.351724 0.140625 +vt 0.324138 0.140625 +vt 0.324138 0.187500 +vt 0.344828 0.093750 +vt 0.351724 0.125000 +vt 0.255172 0.343750 +vt 0.337931 0.312500 +vt 0.337931 0.343750 +vt 0.363190 0.328752 +vt 0.351724 0.373746 +vt 0.340258 0.328752 +vt 0.255172 0.312500 +vt 0.337931 0.281250 +vt 0.255172 0.281250 +vt 0.337931 0.250000 +vt 0.363190 0.296248 +vt 0.351724 0.311246 +vt 0.340258 0.296248 +vt 0.868966 0.625000 +vt 0.924138 0.500000 +vt 0.924138 0.625000 +vt 0.848276 0.500000 +vt 0.868966 0.500000 +vt 0.944828 0.625000 +vt 0.834483 0.906250 +vt 0.765517 0.718750 +vt 0.834483 0.718750 +vt 0.737931 0.718750 +vt 0.765517 0.906250 +vt 0.737931 0.906250 +vt 0.862069 0.906250 +vt 0.862069 0.718750 +vt 0.765517 0.968750 +vt 0.834483 0.968750 +vt 0.834483 0.656250 +vt 0.765517 0.656250 +vt 0.958621 0.187500 +vt 0.986207 0.156250 +vt 0.986207 0.187500 +vt 0.958621 0.062500 +vt 0.986207 0.031250 +vt 0.986207 0.062500 +vt 0.958621 0.125000 +vt 0.986207 0.093750 +vt 0.986207 0.125000 +vt 0.958621 0.156250 +vt 0.958621 0.031250 +vt 0.986207 0.000000 +vt 0.958621 0.093750 +vt 0.965937 0.193335 +vt 0.978890 0.193335 +vt 0.985367 0.218750 +vt 0.737931 0.109375 +vt 0.724138 0.093750 +vt 0.737931 0.093750 +vt 0.737931 0.015625 +vt 0.724138 0.000000 +vt 0.737931 0.000000 +vt 0.737931 0.140625 +vt 0.724138 0.125000 +vt 0.737931 0.125000 +vt 0.737931 0.078125 +vt 0.724138 0.062500 +vt 0.737931 0.062500 +vt 0.737931 0.046875 +vt 0.724138 0.031250 +vt 0.737931 0.031250 +vt 0.737931 0.171875 +vt 0.724138 0.156250 +vt 0.737931 0.156250 +vt 0.724138 0.015625 +vt 0.717241 0.000000 +vt 0.717241 0.156250 +vt 0.717241 0.125000 +vt 0.724138 0.078125 +vt 0.717241 0.062500 +vt 0.717241 0.031250 +vt 0.724138 0.171875 +vt 0.724138 0.109375 +vt 0.717241 0.093750 +vt 0.675862 0.031250 +vt 0.717241 0.187500 +vt 0.675862 0.156250 +vt 0.675862 0.093750 +vt 0.675862 0.000000 +vt 0.675862 0.125000 +vt 0.675862 0.062500 +vt 0.668966 0.125000 +vt 0.668966 0.093750 +vt 0.668966 0.078125 +vt 0.668966 0.062500 +vt 0.668966 0.031250 +vt 0.668966 0.000000 +vt 0.668966 0.171875 +vt 0.668966 0.156250 +vt 0.655172 0.156250 +vt 0.668966 0.109375 +vt 0.655172 0.093750 +vt 0.668966 0.015625 +vt 0.655172 0.000000 +vt 0.668966 0.140625 +vt 0.655172 0.125000 +vt 0.655172 0.062500 +vt 0.668966 0.046875 +vt 0.655172 0.031250 +vt 0.655172 0.140625 +vt 0.648276 0.125000 +vt 0.655172 0.109375 +vt 0.648276 0.093750 +vt 0.648276 0.062500 +vt 0.655172 0.046875 +vt 0.648276 0.031250 +vt 0.655172 0.015625 +vt 0.648276 0.000000 +vt 0.648276 0.187500 +vt 0.648276 0.156250 +vt 0.641379 0.093750 +vt 0.641379 -0.000000 +vt 0.641379 0.125000 +vt 0.641379 0.062500 +vt 0.641379 0.031250 +vt 0.641379 0.156250 +vt 0.634483 0.062500 +vt 0.634483 0.031250 +vt 0.634483 0.171875 +vt 0.634483 0.156250 +vt 0.634483 0.093750 +vt 0.634483 0.000000 +vt 0.634483 0.140625 +vt 0.634483 0.125000 +vt 0.624290 0.002689 +vt 0.630883 0.002689 +vt 0.634179 0.015625 +vt 0.496552 0.187500 +vt 0.468966 0.156250 +vt 0.496552 0.156250 +vt 0.496552 0.312500 +vt 0.468966 0.265625 +vt 0.496552 0.265625 +vt 0.468966 0.234375 +vt 0.496552 0.234375 +vt 0.468966 0.187500 +vt 0.537931 0.828125 +vt 0.524138 0.812500 +vt 0.537931 0.812500 +vt 0.503448 0.718750 +vt 0.517241 0.812500 +vt 0.503448 0.812500 +vt 0.537931 0.718750 +vt 0.524138 0.718750 +vt 0.517241 0.718750 +vt 0.496552 0.812500 +vt 0.496552 0.718750 +vt 0.544828 0.203125 +vt 0.551724 0.250000 +vt 0.544828 0.250000 +vt 0.531034 0.203125 +vt 0.524138 0.250000 +vt 0.524138 0.203125 +vt 0.510345 0.203125 +vt 0.503448 0.250000 +vt 0.503448 0.203125 +vt 0.537931 0.250000 +vt 0.537931 0.203125 +vt 0.510345 0.296875 +vt 0.503448 0.296875 +vt 0.531034 0.250000 +vt 0.524138 0.296875 +vt 0.531034 0.203125 +vt 0.531034 0.187500 +vt 0.537931 0.187500 +vt 0.544828 0.187500 +vt 0.551724 0.187500 +vt 0.551724 0.203125 +vt 0.503448 0.203125 +vt 0.503448 0.187500 +vt 0.510345 0.187500 +vt 0.517241 0.187500 +vt 0.524138 0.187500 +vt 0.524138 0.203125 +vt 0.544828 0.156250 +vt 0.537931 0.156250 +vt 0.531034 0.156250 +vt 0.524138 0.187500 +vt 0.524138 0.156250 +vt 0.510345 0.156250 +vt 0.503448 0.156250 +vt 0.524138 0.156250 +vt 0.517241 0.156250 +vt 0.551724 0.156250 +vt 0.496552 0.187500 +vt 0.496552 0.156250 +vt 0.496552 0.250000 +vt 0.496552 0.203125 +vt 0.979310 0.515625 +vt 0.986207 0.484375 +vt 0.986207 0.515625 +vt 0.517241 0.250000 +vt 0.510345 0.250000 +vt 0.524138 0.250000 +vt 0.517241 0.296875 +vt 0.544828 0.296875 +vt 0.496552 0.296875 +vt 0.537931 0.296875 +vt 0.531034 0.296875 +vt 0.517241 0.203125 +vt 0.213793 0.109375 +vt 0.220690 0.265625 +vt 0.213793 0.265625 +vt 0.972414 0.515625 +vt 0.979310 0.484375 +vt 0.220690 0.109375 +vt 0.227586 0.265625 +vt 0.965517 0.515625 +vt 0.972414 0.484375 +vt 0.186207 0.109375 +vt 0.193103 0.265625 +vt 0.186207 0.265625 +vt 0.958621 0.515625 +vt 0.965517 0.484375 +vt 0.193103 0.109375 +vt 0.200000 0.265625 +vt 0.198836 0.288749 +vt 0.193103 0.296248 +vt 0.187370 0.288749 +vt 0.200000 0.109375 +vt 0.206897 0.265625 +vt 0.206897 0.109375 +vt 0.201164 0.288749 +vt 0.201164 0.273751 +vt 0.212630 0.273751 +vt 0.972414 0.468750 +vt 0.979310 0.484375 +vt 0.979310 0.468750 +vt 0.958621 0.468750 +vt 0.965517 0.468750 +vt 0.958621 0.484375 +vt 0.965517 0.453125 +vt 0.958621 0.437500 +vt 0.965517 0.421875 +vt 0.965517 0.437500 +vt 0.972414 0.453125 +vt 0.979310 0.453125 +vt 0.986207 0.453125 +vt 0.986207 0.468750 +vt 0.972414 0.437500 +vt 0.965517 0.453125 +vt 0.986207 0.453125 +vt 0.979310 0.437500 +vt 0.986207 0.437500 +vt 0.972414 0.421875 +vt 0.979310 0.343750 +vt 0.979310 0.421875 +vt 0.986207 0.421875 +vt 0.965517 0.328125 +vt 0.972414 0.328125 +vt 0.965517 0.343750 +vt 0.986207 0.343750 +vt 0.958621 0.421875 +vt 0.965517 0.343750 +vt 0.972414 0.343750 +vt 0.979310 0.328125 +vt 0.986207 0.296875 +vt 0.986207 0.328125 +vt 0.986207 0.343750 +vt 0.958621 0.281250 +vt 0.965517 0.250000 +vt 0.965517 0.281250 +vt 0.958621 0.328125 +vt 0.965517 0.296875 +vt 0.972414 0.296875 +vt 0.979310 0.296875 +vt 0.979310 0.296875 +vt 0.972414 0.281250 +vt 0.979310 0.281250 +vt 0.958621 0.296875 +vt 0.986207 0.250000 +vt 0.986207 0.281250 +vt 0.979310 0.250000 +vt 0.972414 0.250000 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.093750 +vt 0.151724 0.093750 +vt 0.158621 0.078125 +vt 0.165517 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.186207 0.046875 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.200000 0.062500 +vt 0.193103 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.551724 0.390625 +vt 0.565517 0.484375 +vt 0.551724 0.484375 +vt 0.565517 0.609375 +vt 0.551724 0.515625 +vt 0.565517 0.515625 +vt 0.551724 0.640625 +vt 0.565517 0.734375 +vt 0.551724 0.734375 +vt 0.324138 0.843750 +vt 0.324138 0.875000 +vt 0.324138 0.890625 +vt 0.324138 0.781250 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.303448 0.046875 +vt 0.259370 0.124136 +vt 0.255554 0.115489 +vt 0.255554 0.103261 +vt 0.259370 0.094614 +vt 0.264768 0.094614 +vt 0.289655 0.046875 +vt 0.262069 0.046875 +vt 0.358621 0.046875 +vt 0.344828 0.046875 +vt 0.317241 0.046875 +vt 0.296552 0.062500 +vt 0.282759 0.062500 +vt 0.275862 0.062500 +vt 0.262069 0.062500 +vt 0.358621 0.062500 +vt 0.337931 0.062500 +vt 0.324138 0.062500 +vt 0.310345 0.062500 +vt 0.903448 0.249458 +vt 0.864604 0.213006 +vt 0.864604 0.036995 +vt 0.942292 0.036994 +vt 0.942292 0.213005 +vt 0.351724 0.765625 +vt 0.275862 0.718750 +vt 0.255172 0.906250 +vt 0.331034 0.953125 +vt 0.942292 0.463005 +vt 0.903448 0.499458 +vt 0.864604 0.463005 +vt 0.864604 0.286994 +vt 0.942292 0.286994 +vt 0.737931 -0.000000 +vt 0.296552 0.093750 +vt 0.268966 0.187500 +vt 0.262069 0.140625 +vt 0.296552 0.093750 +vt 0.303448 0.171875 +vt 0.268966 0.187500 +vt 0.358621 0.171875 +vt 0.324138 0.093750 +vt 0.351724 0.313754 +vt 0.363190 0.358748 +vt 0.340258 0.358748 +vt 0.255172 0.250000 +vt 0.340258 0.266252 +vt 0.351724 0.251254 +vt 0.363190 0.266252 +vt 0.848276 0.625000 +vt 0.944828 0.500000 +vt 0.958621 0.000000 +vt 0.978890 0.244165 +vt 0.965937 0.244165 +vt 0.959461 0.218750 +vt 0.724138 0.140625 +vt 0.724138 0.046875 +vt 0.675862 0.187500 +vt 0.655172 0.171875 +vt 0.655172 0.078125 +vt 0.641379 0.187500 +vt 0.634483 0.078125 +vt 0.634483 0.046875 +vt 0.634483 0.109375 +vt 0.634483 0.015625 +vt 0.630883 0.028561 +vt 0.624290 0.028561 +vt 0.620993 0.015625 +vt 0.468966 0.312500 +vt 0.524138 0.828125 +vt 0.551724 0.203125 +vt 0.524138 0.296875 +vt 0.551724 0.296875 +vt 0.524138 0.203125 +vt 0.227586 0.109375 +vt 0.958621 0.484375 +vt 0.187370 0.273751 +vt 0.193103 0.266252 +vt 0.198836 0.273751 +vt 0.206897 0.266252 +vt 0.212630 0.288749 +vt 0.206897 0.296248 +vt 0.958621 0.453125 +vt 0.958621 0.343750 +vt 0.958621 0.250000 +vt 0.958621 0.296875 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.565517 0.390625 +vt 0.551724 0.609375 +vt 0.565517 0.640625 +vt 0.662069 0.796875 +vt 0.662069 0.875000 +vt 0.551724 0.875000 +vt 0.634483 0.218750 +vt 0.724138 0.250000 +vt 0.551724 0.250000 +vt 0.724138 0.359375 +vt 0.703448 0.375000 +vt 0.606897 -0.000000 +vt 0.551724 0.125000 +vt 0.551724 -0.000000 +vt 0.634483 0.906250 +vt 0.606897 1.000000 +vt 0.413793 0.062500 +vt 0.441379 0.250000 +vt 0.413793 0.187500 +vt 0.682759 0.406250 +vt 0.703448 0.406250 +vt 0.724138 0.875000 +vt 0.717241 0.796875 +vt 0.724138 0.765625 +vt 0.682759 0.750000 +vt 0.717241 0.906250 +vt 0.717241 0.875000 +vt 0.737931 0.359375 +vt 0.737931 0.218750 +vt 0.737931 0.250000 +vt 0.737931 0.875000 +vt 0.737931 0.906250 +vt 0.724138 0.375000 +vt 0.724138 0.718750 +vt 0.703448 0.750000 +vt 0.703448 0.718750 +vt 0.682759 0.718750 +vt 0.662069 0.500000 +vt 0.675862 0.625000 +vt 0.662069 0.625000 +vt 0.696552 0.421875 +vt 0.675862 0.500000 +vt 0.696552 0.703125 +vt 0.020690 0.781250 +vt 0.013793 0.875000 +vt 0.013793 0.781250 +vt 0.213793 0.781250 +vt 0.227586 0.875000 +vt 0.213793 0.875000 +vt 0.510209 0.406422 +vt 0.506394 0.432721 +vt 0.482676 0.422118 +vt 0.455123 0.406613 +vt 0.458988 0.432863 +vt 0.438078 0.465736 +vt 0.414116 0.500678 +vt 0.425220 0.509148 +vt 0.420595 0.561221 +vt 0.413934 0.622365 +vt 0.425067 0.614088 +vt 0.437826 0.657998 +vt 0.454859 0.718112 +vt 0.458836 0.691761 +vt 0.482625 0.702699 +vt 0.455172 0.609375 +vt 0.441379 0.515625 +vt 0.455172 0.515625 +vt 0.696552 0.625000 +vt 0.703448 0.687500 +vt 0.696552 0.687500 +vt 0.696552 0.500000 +vt 0.703448 0.437500 +vt 0.703448 0.500000 +vt 0.703448 0.625000 +vt 0.731034 0.687500 +vt 0.413793 0.859375 +vt 0.420690 0.914062 +vt 0.413793 0.914062 +vt 0.475862 0.914062 +vt 0.482759 0.859375 +vt 0.482759 0.914062 +vt 0.431034 0.937500 +vt 0.475862 0.859375 +vt 0.465517 0.937500 +vt 0.431034 0.953125 +vt 0.479310 0.937500 +vt 0.465517 0.953125 +vt 0.417241 0.937500 +vt 0.417241 0.953125 +vt 0.441379 -0.000000 +vt 0.468966 0.250000 +vt 0.903448 0.875000 +vt 0.958621 0.718750 +vt 0.958621 0.875000 +vt 0.958621 0.625000 +vt 0.903448 0.718750 +vt 0.903448 0.625000 +vt 0.903448 0.968750 +vt 0.958621 0.968750 +vt 0.862069 0.718750 +vt 0.862069 0.875000 +vt 1.000000 0.875000 +vt 1.000000 0.718750 +vt 0.489655 0.156250 +vt 0.510345 0.046875 +vt 0.510345 0.156250 +vt 0.434483 0.812500 +vt 0.413793 0.765625 +vt 0.420690 0.750000 +vt 0.489655 0.046875 +vt 0.510345 0.000000 +vt 0.468966 0.046875 +vt 0.531034 0.156250 +vt 0.434483 0.750000 +vt 0.455172 0.812500 +vt 0.496552 0.765625 +vt 0.475862 0.750000 +vt 0.496552 0.750000 +vt 0.455172 0.750000 +vt 0.468966 0.750000 +vt 0.475862 0.765625 +vt 0.434483 0.859375 +vt 0.475862 0.812500 +vt 0.496552 0.812500 +vt 0.455172 0.718750 +vt 0.986207 0.609375 +vt 0.979310 0.593750 +vt 0.986207 0.593750 +vt 0.979310 0.531250 +vt 0.986207 0.515625 +vt 0.986207 0.531250 +vt 0.972414 0.593750 +vt 0.979310 0.578125 +vt 0.551724 0.625000 +vt 0.620690 0.609375 +vt 0.620690 0.734375 +vt 0.620690 0.640625 +vt 0.634483 0.640625 +vt 0.020690 0.875000 +vt 0.006897 0.781250 +vt 0.020690 0.781250 +vt 0.662069 0.734375 +vt 0.648276 0.640625 +vt 0.565517 0.640625 +vt 0.551724 0.625000 +vt 0.565517 0.625000 +vt 0.606897 0.390625 +vt 0.551724 0.375000 +vt 0.682759 0.375000 +vt 0.662069 0.375000 +vt 0.620690 0.484375 +vt 0.551724 0.500000 +vt 0.117241 0.906250 +vt 0.075862 0.875000 +vt 0.117241 0.875000 +vt 0.158621 0.125000 +vt 0.117241 0.156250 +vt 0.117241 0.125000 +vt 0.117241 0.906250 +vt 0.158621 0.875000 +vt 0.158621 0.906250 +vt 0.144828 0.250000 +vt 0.131034 0.250000 +vt 0.213793 0.875000 +vt 0.220690 0.781250 +vt 0.220690 0.875000 +vt 0.062069 0.781250 +vt 0.020690 0.875000 +vt 0.144828 0.281250 +vt 0.186207 0.250000 +vt 0.186207 0.281250 +vt 0.213793 0.765625 +vt 0.172414 0.781250 +vt 0.172414 0.750000 +vt 0.131034 0.281250 +vt 0.089655 0.250000 +vt 0.075862 0.906250 +vt 0.020690 0.906250 +vt 0.020690 0.890625 +vt 0.020690 0.765625 +vt 0.020690 0.750000 +vt 0.062069 0.750000 +vt 0.213793 0.890625 +vt 0.565517 0.515625 +vt 0.551724 0.500000 +vt 0.565517 0.500000 +vt 0.539805 0.495450 +vt 0.539959 0.508696 +vt 0.506403 0.692192 +vt 0.539824 0.629444 +vt 0.512254 0.691859 +vt 0.544674 0.484410 +vt 0.551565 0.500009 +vt 0.544695 0.609268 +vt 0.539977 0.616199 +vt 0.489655 0.156250 +vt 0.510345 0.046875 +vt 0.510345 0.156250 +vt 0.510345 0.562500 +vt 0.455172 0.562500 +vt 0.455172 0.546875 +vt 0.620690 0.515625 +vt 0.565517 0.515625 +vt 0.565517 0.750000 +vt 0.551724 0.734375 +vt 0.565517 0.734375 +vt 0.620690 0.515625 +vt 0.565517 0.609375 +vt 0.565517 0.515625 +vt 0.448276 0.515625 +vt 0.455172 0.609375 +vt 0.448276 0.609375 +vt 0.524138 0.609375 +vt 0.510345 0.515625 +vt 0.524138 0.515625 +vt 0.455172 0.578125 +vt 0.455172 0.562500 +vt 0.510345 0.562500 +vt 0.565517 0.625000 +vt 0.551724 0.609375 +vt 0.565517 0.609375 +vt 0.565517 0.500000 +vt 0.551724 0.484375 +vt 0.565517 0.484375 +vt 0.565517 0.390625 +vt 0.551724 0.375000 +vt 0.565517 0.375000 +vt 0.565517 0.484375 +vt 0.551724 0.484375 +vt 0.551724 0.515625 +vt 0.565517 0.609375 +vt 0.551724 0.609375 +vt 0.565517 0.640625 +vt 0.551724 0.640625 +vt 0.565517 0.390625 +vt 0.551724 0.390625 +vt 0.565517 0.734375 +vt 0.551724 0.750000 +vt 0.551724 0.734375 +vt 0.551583 0.624874 +vt 0.510212 0.718578 +vt 0.512238 0.433055 +vt 0.255172 -0.000000 +vt 0.227586 0.125000 +vt 0.227586 -0.000000 +vt 0.227586 0.500000 +vt 0.255172 0.625000 +vt 0.227586 0.625000 +vt 0.255172 0.750000 +vt 0.227586 0.875000 +vt 0.227586 0.750000 +vt 0.227586 0.250000 +vt 0.255172 0.375000 +vt 0.227586 0.375000 +vt 0.255172 0.500000 +vt 0.255172 0.250000 +vt 0.255172 0.125000 +vt 0.227586 1.000000 +vt 0.255172 0.875000 +vt 0.255172 1.000000 +vt 0.185647 0.407982 +vt 0.181809 0.433762 +vt 0.158206 0.423338 +vt 0.227246 0.501121 +vt 0.215680 0.509781 +vt 0.201106 0.462288 +vt 0.226770 0.624909 +vt 0.215543 0.616068 +vt 0.220300 0.563004 +vt 0.185661 0.717018 +vt 0.181941 0.690910 +vt 0.202736 0.659045 +vt 0.131028 0.716313 +vt 0.134829 0.690268 +vt 0.158386 0.701199 +vt 0.089995 0.623885 +vt 0.101155 0.615205 +vt 0.113984 0.658150 +vt 0.089997 0.501305 +vt 0.101178 0.509856 +vt 0.096611 0.562314 +vt 0.130816 0.408077 +vt 0.134644 0.434152 +vt 0.113890 0.466628 +vt 0.117241 0.000640 +vt 0.144545 0.062500 +vt 0.117241 0.124360 +vt 0.282000 0.461238 +vt 0.267164 0.508207 +vt 0.255663 0.499249 +vt 0.324503 0.423194 +vt 0.301337 0.432859 +vt 0.297766 0.407469 +vt 0.368692 0.466561 +vt 0.347882 0.434234 +vt 0.351705 0.408442 +vt 0.386036 0.561123 +vt 0.381418 0.509360 +vt 0.392481 0.500826 +vt 0.368830 0.657546 +vt 0.381587 0.613816 +vt 0.392687 0.622102 +vt 0.324106 0.701882 +vt 0.347834 0.691162 +vt 0.351758 0.717531 +vt 0.279544 0.658120 +vt 0.300333 0.691179 +vt 0.296432 0.717486 +vt 0.262317 0.561201 +vt 0.266830 0.614350 +vt 0.255589 0.622775 +vt 0.606897 0.125000 +vt 0.662069 0.218750 +vt 0.724138 0.218750 +vt 0.551724 1.000000 +vt 0.662069 0.906250 +vt 0.724138 0.906250 +vt 0.737931 0.765625 +vt 0.724138 0.406250 +vt 0.724138 0.750000 +vt 0.696552 0.453125 +vt 0.696552 0.671875 +vt 0.227586 0.781250 +vt 0.441379 0.609375 +vt 0.696552 0.437500 +vt 0.731034 0.437500 +vt 0.420690 0.859375 +vt 0.479310 0.953125 +vt 0.468966 -0.000000 +vt 0.413793 0.812500 +vt 0.489655 0.000000 +vt 0.468966 0.156250 +vt 0.531034 0.046875 +vt 0.455172 0.859375 +vt 0.434483 0.718750 +vt 0.979310 0.609375 +vt 0.979310 0.515625 +vt 0.972414 0.562500 +vt 0.606897 0.734375 +vt 0.006897 0.875000 +vt 0.551724 0.640625 +vt 0.158621 0.156250 +vt 0.117241 0.875000 +vt 0.213793 0.781250 +vt 0.213793 0.750000 +vt 0.089655 0.281250 +vt 0.213793 0.906250 +vt 0.551724 0.515625 +vt 0.551568 0.515616 +vt 0.544680 0.515623 +vt 0.489655 0.046875 +vt 0.455172 0.531250 +vt 0.510345 0.531250 +vt 0.551724 0.750000 +vt 0.620690 0.609375 +vt 0.455172 0.515625 +vt 0.510345 0.609375 +vt 0.510345 0.593750 +vt 0.455172 0.593750 +vt 0.551724 0.625000 +vt 0.551724 0.500000 +vt 0.551724 0.390625 +vt 0.551583 0.609269 +vt 0.544695 0.640480 +vt 0.517133 0.702938 +vt 0.517104 0.422013 +vt 0.106793 0.119651 +vt 0.097935 0.106242 +vt 0.092016 0.086173 +vt 0.089938 0.062500 +vt 0.092016 0.038827 +vt 0.097935 0.018758 +vt 0.106793 0.005349 +vt 0.127690 0.005349 +vt 0.136548 0.018758 +vt 0.142467 0.038827 +vt 0.142467 0.086173 +vt 0.136548 0.106242 +vt 0.127690 0.119651 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.310345 0.000000 +vt 0.296552 0.000000 +vt 0.282759 0.000000 +vt 0.268966 0.000000 +vt 0.365517 0.000000 +vt 0.351724 0.000000 +vt 0.337931 0.000000 +vt 0.324138 0.000000 +vt 0.255172 0.000000 +vt 0.310345 0.093750 +vt 0.317241 0.093750 +vt 0.296552 0.093750 +vt 0.303448 0.093750 +vt 0.282759 0.093750 +vt 0.289655 0.093750 +vt 0.268966 0.093750 +vt 0.275862 0.093750 +vt 0.324138 0.093750 +vt 0.331034 0.093750 +vt 0.337931 0.093750 +vt 0.344828 0.093750 +vt 0.351724 0.093750 +vt 0.358621 0.093750 +vt 0.255172 0.093750 +vt 0.262069 0.093750 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.310345 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.310345 0.250000 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.255172 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.310345 0.218750 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.310345 0.218750 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.310345 0.218750 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.324138 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.179310 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.172414 0.390625 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.179310 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.187500 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.324138 0.187500 +vt 0.310345 0.187500 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.296552 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.187500 +vt 0.958621 0.609375 +vt 0.965517 0.593750 +vt 0.965517 0.609375 +vt 0.958621 0.562500 +vt 0.965517 0.546875 +vt 0.965517 0.562500 +vt 0.986207 0.578125 +vt 0.965517 0.625000 +vt 0.958621 0.625000 +vt 0.958621 0.578125 +vt 0.965517 0.578125 +vt 0.986207 0.562500 +vt 0.958621 0.531250 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.958621 0.640625 +vt 0.965517 0.640625 +vt 0.958621 0.593750 +vt 0.979310 0.562500 +vt 0.986207 0.546875 +vt 0.958621 0.546875 +vt 0.979310 0.546875 +vt 0.965517 0.593750 +vt 0.972414 0.609375 +vt 0.965517 0.609375 +vt 0.965517 0.656250 +vt 0.972414 0.640625 +vt 0.972414 0.656250 +vt 0.965517 0.546875 +vt 0.972414 0.531250 +vt 0.972414 0.546875 +vt 0.965517 0.703125 +vt 0.972414 0.687500 +vt 0.972414 0.703125 +vt 0.972414 0.578125 +vt 0.972414 0.593750 +vt 0.965517 0.625000 +vt 0.965517 0.640625 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.965517 0.671875 +vt 0.965517 0.687500 +vt 0.965517 0.562500 +vt 0.965517 0.578125 +vt 0.972414 0.625000 +vt 0.972414 0.671875 +vt 0.972414 0.562500 +vt 0.089655 0.375000 +vt 0.075862 0.421875 +vt 0.075862 0.375000 +vt 0.075862 0.328125 +vt 0.089655 0.328125 +vt 0.075862 0.281250 +vt 0.089655 0.281250 +vt 0.075862 0.234375 +vt 0.089655 0.234375 +vt 0.075862 0.187500 +vt 0.089655 0.187500 +vt 0.089655 0.140625 +vt 0.075862 0.140625 +vt 0.089655 0.093750 +vt 0.075862 0.093750 +vt 0.089655 0.046875 +vt 0.075862 0.046875 +vt 0.089655 -0.000000 +vt 0.075862 0.000000 +vt 0.089655 0.750000 +vt 0.075862 0.703125 +vt 0.089655 0.703125 +vt 0.075862 0.656250 +vt 0.089655 0.656250 +vt 0.089655 0.609375 +vt 0.075862 0.609375 +vt 0.075862 0.562500 +vt 0.089655 0.562500 +vt 0.075862 0.515625 +vt 0.089655 0.515625 +vt 0.075862 0.468750 +vt 0.089655 0.468750 +vt 0.089655 0.421875 +vt 0.055172 0.375000 +vt 0.055172 0.328125 +vt 0.055172 -0.000000 +vt 0.055172 0.421875 +vt 0.055172 0.046875 +vt 0.055172 0.468750 +vt 0.055172 0.093750 +vt 0.055172 0.515625 +vt 0.055172 0.140625 +vt 0.055172 0.562500 +vt 0.055172 0.187500 +vt 0.055172 0.609375 +vt 0.055172 0.234375 +vt 0.055172 0.656250 +vt 0.055172 0.281250 +vt 0.075862 0.750000 +vt 0.055172 0.703125 +vt 0.000000 0.125000 +vt 0.000000 0.093750 +vt -0.000000 0.546875 +vt 0.000000 0.515625 +vt -0.000000 0.140625 +vt -0.000000 0.593750 +vt -0.000000 0.562500 +vt 0.000000 0.218750 +vt 0.000000 0.187500 +vt 0.000000 0.609375 +vt -0.000000 0.234375 +vt 0.000000 0.687500 +vt 0.000000 0.656250 +vt -0.000000 0.281250 +vt 0.055172 0.750000 +vt 0.000000 0.703125 +vt -0.000000 0.406250 +vt -0.000000 0.375000 +vt 0.000000 0.328125 +vt 0.000000 0.031250 +vt -0.000000 0.000000 +vt 0.000000 0.421875 +vt -0.000000 0.046875 +vt -0.000000 0.500000 +vt 0.000000 0.468750 +vt 0.393103 0.937500 +vt 0.413793 1.000000 +vt 0.393103 1.000000 +vt 0.393103 0.500000 +vt 0.413793 0.562500 +vt 0.393103 0.562500 +vt 0.393103 0.437500 +vt 0.413793 0.500000 +vt 0.393103 -0.000000 +vt 0.413793 0.062500 +vt 0.393103 0.062500 +vt 0.413793 0.625000 +vt 0.393103 0.625000 +vt 0.413793 0.125000 +vt 0.393103 0.125000 +vt 0.413793 0.687500 +vt 0.393103 0.687500 +vt 0.413793 0.187500 +vt 0.393103 0.187500 +vt 0.413793 0.750000 +vt 0.393103 0.750000 +vt 0.413793 0.250000 +vt 0.393103 0.250000 +vt 0.413793 0.812500 +vt 0.393103 0.812500 +vt 0.413793 0.312500 +vt 0.393103 0.312500 +vt 0.413793 0.875000 +vt 0.393103 0.875000 +vt 0.413793 0.375000 +vt 0.393103 0.375000 +vt 0.413793 0.937500 +vt 0.413793 0.437500 +vt 0.958621 0.515625 +vt 0.972414 0.515625 +vt -0.000000 0.171875 +vt 0.000000 0.640625 +vt -0.000000 0.265625 +vt -0.000000 0.312500 +vt -0.000000 0.734375 +vt 0.000000 0.359375 +vt -0.000000 0.453125 +vt -0.000000 0.078125 +vt 0.413793 -0.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.1617 0.3904 0.9063 +vn 0.1617 0.3905 0.9063 +vn 0.1752 0.8806 0.4403 +vn 0.0859 0.4318 -0.8979 +vn 0.9845 -0.1567 -0.0783 +vn -0.0859 -0.4318 0.8978 +vn -0.9695 0.2320 -0.0783 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.3162 0.3162 -0.8944 +vn 0.0000 0.7934 0.6088 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.6547 0.3780 -0.6547 +vn 0.6547 -0.3780 -0.6547 +vn 0.6547 -0.3780 0.6547 +vn 0.6547 0.7559 0.0000 +vn 0.6547 -0.7559 0.0000 +vn 0.6547 0.3780 0.6547 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.9285 0.3714 +vn 0.0000 0.9285 -0.3714 +vn 0.0000 -0.9900 -0.1407 +vn 0.0000 0.9900 0.1407 +vn -0.1617 -0.3904 0.9063 +vn -0.1617 -0.3905 0.9063 +vn 0.3904 -0.1617 0.9063 +vn 0.3905 -0.1617 0.9063 +vn -0.3904 0.1617 0.9063 +vn -0.3905 0.1617 0.9063 +vn 0.3905 0.1617 0.9063 +vn 0.3904 0.1617 0.9063 +vn 0.3905 0.1618 0.9063 +vn -0.3904 -0.1617 0.9063 +vn -0.3905 -0.1617 0.9063 +vn 0.1617 -0.3905 0.9063 +vn 0.1617 -0.3904 0.9063 +vn 0.1618 -0.3905 0.9063 +vn -0.1617 0.3904 0.9063 +vn -0.1617 0.3905 0.9063 +vn -0.1752 -0.8806 0.4403 +vn -0.0859 -0.4318 -0.8979 +vn -0.9845 0.1567 -0.0783 +vn 0.0859 0.4318 0.8978 +vn 0.9695 -0.2320 -0.0783 +vn 0.8806 -0.1752 0.4403 +vn 0.4318 -0.0859 -0.8979 +vn -0.1567 -0.9845 -0.0783 +vn -0.4318 0.0859 0.8978 +vn 0.2320 0.9695 -0.0783 +vn -0.8806 0.1752 0.4403 +vn -0.4318 0.0859 -0.8979 +vn 0.1567 0.9845 -0.0783 +vn 0.4318 -0.0859 0.8978 +vn -0.2320 -0.9695 -0.0783 +vn 0.7465 0.4988 0.4403 +vn 0.3661 0.2446 -0.8979 +vn 0.5854 -0.8070 -0.0783 +vn -0.3661 -0.2446 0.8978 +vn -0.5215 0.8496 -0.0783 +vn -0.7465 -0.4988 0.4403 +vn -0.3661 -0.2446 -0.8979 +vn -0.5854 0.8070 -0.0783 +vn 0.3661 0.2446 0.8978 +vn 0.5215 -0.8496 -0.0783 +vn 0.4988 -0.7465 0.4403 +vn 0.2446 -0.3661 -0.8978 +vn -0.8070 -0.5854 -0.0783 +vn -0.2446 0.3661 0.8978 +vn 0.8497 0.5215 -0.0783 +vn -0.4988 0.7465 0.4403 +vn -0.2446 0.3661 -0.8979 +vn 0.8070 0.5854 -0.0783 +vn 0.2446 -0.3661 0.8978 +vn -0.8496 -0.5215 -0.0783 +vn 0.4988 0.7465 0.4403 +vn 0.2446 0.3661 -0.8979 +vn 0.8496 -0.5215 -0.0783 +vn -0.2446 -0.3661 0.8978 +vn -0.8069 0.5854 -0.0783 +vn -0.4988 -0.7465 0.4403 +vn -0.2446 -0.3661 -0.8979 +vn -0.8496 0.5215 -0.0783 +vn 0.2446 0.3661 0.8978 +vn 0.8069 -0.5854 -0.0783 +vn 0.7465 -0.4988 0.4403 +vn 0.3661 -0.2446 -0.8978 +vn -0.5215 -0.8496 -0.0783 +vn -0.3661 0.2446 0.8978 +vn 0.5854 0.8069 -0.0783 +vn -0.7465 0.4988 0.4403 +vn -0.3661 0.2446 -0.8978 +vn 0.5215 0.8496 -0.0783 +vn 0.3661 -0.2446 0.8978 +vn -0.5854 -0.8069 -0.0783 +vn 0.8806 0.1752 0.4403 +vn 0.4318 0.0859 -0.8979 +vn 0.2320 -0.9696 -0.0783 +vn -0.4318 -0.0859 0.8978 +vn -0.1567 0.9845 -0.0783 +vn -0.8806 -0.1752 0.4403 +vn -0.4318 -0.0859 -0.8979 +vn -0.2320 0.9696 -0.0783 +vn 0.4318 0.0859 0.8978 +vn 0.1567 -0.9845 -0.0783 +vn 0.1752 -0.8806 0.4403 +vn 0.0859 -0.4318 -0.8979 +vn -0.9696 -0.2320 -0.0783 +vn -0.0859 0.4318 0.8978 +vn 0.9845 0.1567 -0.0783 +vn -0.1752 0.8806 0.4403 +vn -0.0859 0.4318 -0.8979 +vn 0.9696 0.2320 -0.0783 +vn 0.0859 -0.4318 0.8978 +vn -0.9845 -0.1567 -0.0783 +vn 0.0859 0.4318 -0.8978 +vn -0.0859 -0.4318 -0.8978 +vn 0.4318 -0.0859 -0.8978 +vn -0.4318 0.0859 -0.8978 +vn 0.3661 0.2446 -0.8978 +vn -0.3661 -0.2446 -0.8978 +vn -0.2446 0.3661 -0.8978 +vn 0.2446 0.3661 -0.8978 +vn -0.8070 0.5854 -0.0783 +vn 0.8070 -0.5854 -0.0783 +vn 0.5854 0.8070 -0.0783 +vn -0.5854 -0.8070 -0.0783 +vn 0.4318 0.0859 0.8979 +vn 0.0859 -0.4318 -0.8978 +vn -0.7071 -0.7071 0.0057 +vn 0.0000 0.9487 -0.3162 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 0.9063 0.4226 +vn -0.7071 0.6409 0.2988 +vn 0.7071 0.6409 0.2988 +vn -0.5000 -0.7849 -0.3660 +vn -0.0000 -0.4226 0.9063 +vn -0.2357 0.2357 0.9428 +vn 0.2357 0.2357 0.9428 +vn -0.2357 -0.2357 -0.9428 +vn -0.2357 -0.2357 0.9428 +vn -0.7082 -0.7060 -0.0004 +vn -0.7085 -0.7057 0.0000 +vn 0.7311 -0.6303 -0.2611 +vn 0.9973 0.0609 0.0399 +vn 0.7430 -0.5190 -0.4226 +vn 0.6721 0.5735 0.4683 +vn 0.6333 0.7150 0.2962 +vn -0.9947 0.0948 0.0393 +vn -0.6721 0.5735 0.4683 +vn -0.6333 0.7150 0.2962 +vn -0.7311 -0.6303 -0.2611 +vn -0.9973 0.0609 0.0399 +vn 0.0000 -0.7779 -0.6284 +vn 0.9947 0.0948 0.0393 +vn 0.0000 0.7690 0.6392 +vn -0.7430 -0.5190 -0.4226 +vn -0.9989 0.0183 0.0441 +vn -0.6840 0.2791 0.6739 +vn 0.6840 0.2791 0.6739 +vn 0.7317 -0.2608 -0.6297 +vn -0.7317 -0.2608 -0.6297 +vn 0.0000 0.3827 0.9239 +vn 0.9989 0.0183 0.0441 +vn 0.7317 0.0000 -0.6816 +vn -0.7317 0.0000 -0.6816 +vn -0.9989 0.0000 0.0477 +vn -0.6841 0.0000 0.7294 +vn 0.6840 -0.0000 0.7294 +vn 0.9989 0.0000 0.0477 +vn 0.0000 -0.1951 0.9808 +vn 0.6770 -0.1436 0.7219 +vn 0.9988 -0.0095 0.0477 +vn 0.7251 0.1344 -0.6754 +vn 0.0000 0.1951 -0.9808 +vn -0.9988 -0.0095 0.0477 +vn -0.6770 -0.1436 0.7219 +vn -0.7251 0.1344 -0.6754 +vn 0.8985 0.3215 -0.2988 +vn 0.9239 -0.3827 -0.0000 +vn -0.4080 0.8627 -0.2988 +vn 0.3468 0.8373 -0.4226 +vn -0.9239 0.3827 0.0000 +vn -0.8985 -0.3215 0.2988 +vn 0.4080 -0.8627 0.2988 +vn -0.3468 -0.8373 0.4226 +vn -0.4080 0.8627 -0.2989 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.6947 0.6947 0.1866 +vn 0.8431 -0.0945 0.5294 +vn 0.9891 0.0283 0.1448 +vn -0.3812 0.9204 0.0866 +vn -0.0945 0.8431 0.5294 +vn 0.0283 0.9891 0.1448 +vn 0.0945 0.8431 0.5294 +vn 0.3812 0.9204 0.0866 +vn -0.0283 0.9891 0.1448 +vn -0.8431 -0.0945 0.5294 +vn -0.6947 0.6947 0.1866 +vn -0.9891 0.0283 0.1448 +vn -0.9204 -0.3812 0.0866 +vn -0.5000 0.5000 0.7071 +vn 0.2384 0.6572 0.7150 +vn -0.8446 -0.4619 0.2706 +vn -0.6572 -0.2384 0.7150 +vn 0.5345 0.7559 0.3780 +vn 0.4619 0.8446 0.2706 +vn 0.0945 0.8431 0.5293 +vn -0.8431 -0.0945 0.5293 +vn -0.9204 -0.3813 0.0866 +vn -0.7559 -0.5345 0.3780 +vn 0.5000 0.5000 0.7071 +vn 0.9204 -0.3812 0.0866 +vn 0.8446 -0.4619 0.2706 +vn -0.2384 0.6572 0.7150 +vn 0.2706 0.2706 0.9239 +vn 0.6572 -0.2384 0.7150 +vn 0.7559 -0.5345 0.3780 +vn -0.5345 0.7559 0.3780 +vn -0.0945 0.8431 0.5293 +vn 0.8431 -0.0945 0.5293 +vn 0.9204 -0.3813 0.0866 +vn -0.4619 0.8446 0.2706 +vn -0.7311 0.6303 -0.2611 +vn -0.9973 -0.0609 0.0399 +vn -0.7430 0.5190 -0.4226 +vn -0.6721 -0.5735 0.4683 +vn -0.6333 -0.7150 0.2962 +vn 0.9947 -0.0948 0.0393 +vn 0.6721 -0.5735 0.4683 +vn 0.6333 -0.7150 0.2962 +vn 0.7311 0.6303 -0.2611 +vn 0.9973 -0.0609 0.0399 +vn -0.0000 0.7779 -0.6284 +vn -0.9947 -0.0948 0.0393 +vn -0.0000 -0.7690 0.6392 +vn 0.7430 0.5190 -0.4226 +vn 0.9989 -0.0183 0.0441 +vn 0.6840 -0.2791 0.6739 +vn -0.6840 -0.2791 0.6739 +vn -0.7317 0.2608 -0.6297 +vn 0.7317 0.2608 -0.6297 +vn -0.9989 -0.0183 0.0441 +vn 0.6841 -0.0000 0.7294 +vn -0.6840 -0.0000 0.7294 +vn -0.0000 0.1951 0.9808 +vn -0.6770 0.1436 0.7219 +vn -0.9988 0.0095 0.0477 +vn -0.7251 -0.1344 -0.6754 +vn -0.0000 -0.1951 -0.9808 +vn 0.9988 0.0095 0.0477 +vn 0.6770 0.1436 0.7219 +vn 0.7251 -0.1344 -0.6754 +vn -0.8985 -0.3215 -0.2988 +vn 0.4080 -0.8627 -0.2988 +vn -0.3468 -0.8373 -0.4226 +vn 0.8985 0.3215 0.2988 +vn -0.4080 0.8627 0.2988 +vn 0.3468 0.8373 0.4226 +vn 0.4080 -0.8627 -0.2989 +vn -0.6303 -0.7311 -0.2611 +vn 0.0609 -0.9973 0.0399 +vn -0.5190 -0.7430 -0.4226 +vn 0.9239 -0.0000 0.3827 +vn 0.5735 -0.6721 0.4683 +vn 0.7150 -0.6333 0.2962 +vn 0.0948 0.9947 0.0393 +vn 0.5735 0.6721 0.4683 +vn 0.7150 0.6333 0.2962 +vn -0.6303 0.7311 -0.2611 +vn 0.0609 0.9973 0.0399 +vn -0.9239 -0.0000 -0.3827 +vn -0.7779 -0.0000 -0.6284 +vn 0.0948 -0.9947 0.0393 +vn 0.7690 -0.0000 0.6392 +vn -0.5190 0.7430 -0.4226 +vn 0.0183 0.9989 0.0441 +vn 0.2791 0.6841 0.6739 +vn 0.2791 -0.6840 0.6739 +vn -0.2608 -0.7317 -0.6297 +vn -0.2608 0.7317 -0.6297 +vn 0.3827 -0.0000 0.9239 +vn 0.0183 -0.9989 0.0441 +vn -0.3827 -0.0000 -0.9239 +vn 0.0000 -0.7317 -0.6816 +vn 0.0000 0.7317 -0.6816 +vn 0.0000 0.9989 0.0477 +vn 0.0000 0.6841 0.7294 +vn 0.0000 -0.6840 0.7294 +vn 0.0000 -0.9989 0.0477 +vn -0.1951 -0.0000 0.9808 +vn -0.1436 -0.6770 0.7219 +vn -0.0095 -0.9988 0.0477 +vn 0.1344 -0.7251 -0.6754 +vn 0.1951 -0.0000 -0.9808 +vn -0.0095 0.9988 0.0477 +vn -0.1436 0.6770 0.7219 +vn 0.1344 0.7251 -0.6754 +vn 0.3215 -0.8985 -0.2988 +vn 0.8627 0.4080 -0.2988 +vn 0.8373 -0.3468 -0.4226 +vn -0.3215 0.8985 0.2988 +vn -0.8627 -0.4080 0.2988 +vn -0.8373 0.3468 0.4226 +vn 0.8627 0.4080 -0.2989 +vn -0.3215 0.8985 0.2989 +vn 0.6303 0.7311 -0.2611 +vn -0.0609 0.9973 0.0399 +vn 0.5190 0.7430 -0.4226 +vn -0.9239 0.0000 0.3827 +vn -0.5735 0.6721 0.4683 +vn -0.7150 0.6333 0.2962 +vn -0.0948 -0.9947 0.0393 +vn -0.5735 -0.6721 0.4683 +vn -0.7150 -0.6333 0.2962 +vn 0.6303 -0.7311 -0.2611 +vn -0.0609 -0.9973 0.0399 +vn 0.9239 0.0000 -0.3827 +vn 0.7779 0.0000 -0.6284 +vn -0.0948 0.9947 0.0393 +vn -0.7690 0.0000 0.6392 +vn 0.5190 -0.7430 -0.4226 +vn -0.0183 -0.9989 0.0441 +vn -0.2791 -0.6841 0.6739 +vn -0.2791 0.6840 0.6739 +vn 0.2608 0.7317 -0.6297 +vn 0.2608 -0.7317 -0.6297 +vn -0.3827 0.0000 0.9239 +vn -0.0183 0.9989 0.0441 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 -0.6841 0.7294 +vn -0.0000 0.6840 0.7294 +vn 0.1951 0.0000 0.9808 +vn 0.1436 0.6770 0.7219 +vn 0.0095 0.9988 0.0477 +vn -0.1344 0.7251 -0.6754 +vn -0.1951 0.0000 -0.9808 +vn 0.0095 -0.9988 0.0477 +vn 0.1436 -0.6770 0.7219 +vn -0.1344 -0.7251 -0.6754 +vn -0.3215 0.8985 -0.2988 +vn -0.8627 -0.4080 -0.2988 +vn -0.8373 0.3468 -0.4226 +vn 0.3215 -0.8985 0.2988 +vn 0.8373 -0.3468 0.4226 +vn 0.8627 0.4080 0.2988 +vn -0.8627 -0.4080 -0.2989 +vn 0.3215 -0.8985 0.2989 +vn 0.0712 -0.9627 -0.2611 +vn 0.7483 -0.6622 0.0399 +vn 0.1584 -0.8924 -0.4226 +vn 0.6533 0.6533 0.3827 +vn 0.8808 -0.0697 0.4683 +vn 0.9534 0.0578 0.2962 +vn -0.6364 0.7704 0.0393 +vn -0.0697 0.8808 0.4683 +vn 0.0578 0.9534 0.2962 +vn -0.9627 0.0713 -0.2611 +vn -0.6622 0.7483 0.0399 +vn -0.6533 -0.6533 -0.3827 +vn -0.5501 -0.5501 -0.6284 +vn 0.7704 -0.6363 0.0393 +vn 0.5438 0.5438 0.6392 +vn -0.8924 0.1584 -0.4226 +vn -0.6934 0.7192 0.0441 +vn -0.2863 0.6811 0.6739 +vn 0.6811 -0.2863 0.6739 +vn 0.3330 -0.7018 -0.6297 +vn -0.7018 0.3330 -0.6297 +vn 0.7192 -0.6934 0.0441 +vn -0.2706 -0.2706 -0.9239 +vn 0.5174 -0.5174 -0.6816 +vn -0.5174 0.5174 -0.6816 +vn -0.7063 0.7063 0.0477 +vn -0.4837 0.4837 0.7294 +vn 0.4837 -0.4837 0.7294 +vn 0.7063 -0.7063 0.0477 +vn -0.1379 -0.1379 0.9808 +vn 0.3772 -0.5802 0.7219 +vn 0.6996 -0.7130 0.0477 +vn 0.6077 -0.4177 -0.6754 +vn 0.1379 0.1380 -0.9808 +vn -0.7130 0.6996 0.0477 +vn -0.5802 0.3772 0.7219 +vn -0.4177 0.6077 -0.6754 +vn 0.8627 -0.4080 -0.2988 +vn 0.3215 0.8985 -0.2988 +vn 0.8373 0.3468 -0.4226 +vn -0.8627 0.4080 0.2988 +vn -0.3215 -0.8985 0.2988 +vn -0.8373 -0.3468 0.4226 +vn -0.8627 0.4080 0.2989 +vn 0.3215 0.8985 -0.2989 +vn -0.0712 0.9627 -0.2611 +vn -0.7483 0.6622 0.0399 +vn -0.1584 0.8924 -0.4226 +vn -0.6533 -0.6533 0.3827 +vn -0.8808 0.0697 0.4683 +vn -0.9534 -0.0578 0.2962 +vn 0.6364 -0.7704 0.0393 +vn 0.0697 -0.8808 0.4683 +vn -0.0578 -0.9534 0.2962 +vn 0.9627 -0.0712 -0.2611 +vn 0.6622 -0.7483 0.0399 +vn 0.6533 0.6533 -0.3827 +vn 0.5501 0.5501 -0.6284 +vn -0.7704 0.6363 0.0393 +vn -0.5438 -0.5438 0.6392 +vn 0.8924 -0.1584 -0.4226 +vn 0.6934 -0.7192 0.0441 +vn 0.2863 -0.6811 0.6739 +vn -0.6811 0.2863 0.6739 +vn -0.3330 0.7018 -0.6297 +vn 0.7018 -0.3330 -0.6297 +vn -0.2706 -0.2706 0.9239 +vn -0.7192 0.6934 0.0441 +vn 0.2706 0.2706 -0.9239 +vn 0.1379 0.1379 0.9808 +vn -0.3772 0.5802 0.7219 +vn -0.6996 0.7130 0.0477 +vn -0.6077 0.4177 -0.6754 +vn -0.1379 -0.1380 -0.9808 +vn 0.7130 -0.6996 0.0477 +vn 0.5802 -0.3772 0.7219 +vn 0.4177 -0.6077 -0.6754 +vn -0.8627 0.4080 -0.2988 +vn -0.3215 -0.8985 -0.2988 +vn -0.8373 -0.3468 -0.4226 +vn 0.8627 -0.4080 0.2988 +vn 0.3215 0.8985 0.2988 +vn 0.8373 0.3468 0.4226 +vn 0.8627 -0.4080 0.2989 +vn -0.9627 -0.0712 -0.2611 +vn -0.6622 -0.7483 0.0399 +vn -0.8924 -0.1584 -0.4226 +vn 0.6533 -0.6533 0.3827 +vn -0.0697 -0.8808 0.4683 +vn 0.0578 -0.9534 0.2962 +vn 0.7704 0.6364 0.0393 +vn 0.8808 0.0697 0.4683 +vn 0.9534 -0.0578 0.2962 +vn 0.0713 0.9627 -0.2611 +vn 0.7483 0.6622 0.0399 +vn -0.6533 0.6533 -0.3827 +vn -0.5501 0.5501 -0.6284 +vn -0.6363 -0.7704 0.0393 +vn 0.5438 -0.5438 0.6392 +vn 0.1584 0.8924 -0.4226 +vn 0.7192 0.6934 0.0441 +vn 0.6811 0.2863 0.6739 +vn -0.2863 -0.6811 0.6739 +vn -0.7018 -0.3330 -0.6297 +vn 0.3330 0.7018 -0.6297 +vn 0.2706 -0.2706 0.9239 +vn -0.6934 -0.7192 0.0441 +vn -0.2706 0.2706 -0.9239 +vn -0.5174 -0.5174 -0.6816 +vn 0.5174 0.5174 -0.6816 +vn 0.7063 0.7063 0.0477 +vn 0.4837 0.4837 0.7294 +vn -0.4837 -0.4837 0.7294 +vn -0.7063 -0.7063 0.0477 +vn -0.1379 0.1379 0.9808 +vn -0.5802 -0.3772 0.7219 +vn -0.7130 -0.6996 0.0477 +vn -0.4177 -0.6077 -0.6754 +vn 0.1379 -0.1380 -0.9808 +vn 0.6996 0.7130 0.0477 +vn 0.3772 0.5802 0.7219 +vn 0.6077 0.4177 -0.6754 +vn -0.4080 -0.8627 -0.2988 +vn 0.8985 -0.3215 -0.2988 +vn 0.3468 -0.8373 -0.4226 +vn 0.4080 0.8627 0.2988 +vn -0.8985 0.3215 0.2988 +vn -0.3468 0.8373 0.4226 +vn 0.4081 0.8627 0.2989 +vn 0.9627 0.0712 -0.2611 +vn 0.6622 0.7483 0.0399 +vn 0.8924 0.1584 -0.4226 +vn -0.6533 0.6533 0.3827 +vn 0.0697 0.8808 0.4683 +vn -0.0578 0.9534 0.2962 +vn -0.7704 -0.6364 0.0393 +vn -0.8808 -0.0697 0.4683 +vn -0.9534 0.0578 0.2962 +vn -0.0713 -0.9627 -0.2611 +vn -0.7483 -0.6622 0.0399 +vn 0.6533 -0.6533 -0.3827 +vn 0.5501 -0.5501 -0.6284 +vn 0.6363 0.7704 0.0393 +vn -0.5438 0.5438 0.6392 +vn -0.1584 -0.8924 -0.4226 +vn -0.7192 -0.6934 0.0441 +vn -0.6811 -0.2863 0.6739 +vn 0.2863 0.6811 0.6739 +vn 0.7018 0.3330 -0.6297 +vn -0.3330 -0.7018 -0.6297 +vn -0.2706 0.2706 0.9239 +vn 0.6934 0.7192 0.0441 +vn 0.2706 -0.2706 -0.9239 +vn 0.1379 -0.1379 0.9808 +vn 0.5802 0.3772 0.7219 +vn 0.7130 0.6996 0.0477 +vn 0.4177 0.6077 -0.6754 +vn -0.1379 0.1380 -0.9808 +vn -0.6996 -0.7130 0.0477 +vn -0.3772 -0.5802 0.7219 +vn -0.6077 -0.4177 -0.6754 +vn 0.4080 0.8627 -0.2988 +vn -0.8985 0.3215 -0.2988 +vn -0.3468 0.8373 -0.4226 +vn -0.4080 -0.8627 0.2988 +vn 0.3468 -0.8373 0.4226 +vn 0.8985 -0.3215 0.2988 +vn -0.4080 -0.8627 0.2989 +vn 0.4080 0.8627 -0.2989 +vn -0.8985 0.3215 -0.2989 +vn 0.6794 0.7194 0.1448 +vn -0.6794 0.7194 0.1448 +vn 0.9204 0.3812 0.0866 +vn 0.0000 0.9824 0.1866 +vn -0.9239 0.2706 0.2706 +vn -0.6630 0.5294 0.5294 +vn 0.9239 0.2706 0.2706 +vn 0.6630 0.5294 0.5294 +vn 0.6333 0.2962 0.7150 +vn -0.9125 0.1566 0.3780 +vn -0.6333 0.2962 0.7150 +vn 0.9125 0.1566 0.3780 +vn -0.9204 0.3812 0.0866 +vn 0.0000 -0.9063 -0.4226 +vn -0.8660 0.4532 0.2113 +vn 0.2588 0.8754 0.4082 +vn 0.5000 0.7849 0.3660 +vn 0.5000 -0.7849 -0.3660 +vn -0.8660 -0.4532 -0.2113 +vn 0.8660 0.4532 0.2113 +vn -0.5000 0.7849 0.3660 +vn -0.2588 0.8754 0.4082 +vn 0.7071 -0.6409 -0.2988 +vn 0.9659 -0.2346 -0.1094 +vn 0.8660 -0.4532 -0.2113 +vn 0.0000 -0.8944 0.4472 +vn 0.3423 -0.8263 0.4472 +vn -0.3423 -0.8263 0.4472 +vn -0.6325 -0.6325 0.4472 +vn -0.8263 -0.3423 0.4472 +vn -0.8944 -0.0000 0.4472 +vn -0.8263 0.3423 0.4472 +vn -0.6325 0.6325 0.4472 +vn -0.3423 0.8263 0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.3423 0.8263 0.4472 +vn 0.6325 0.6325 0.4472 +vn 0.8263 0.3423 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.8263 -0.3423 0.4472 +vn 0.6325 -0.6325 0.4472 +vn -0.3162 0.3162 0.8944 +vn -0.4132 0.1711 0.8944 +vn 0.4132 -0.1711 0.8944 +vn 0.4472 -0.0000 0.8944 +vn -0.4472 -0.0000 0.8944 +vn 0.4132 0.1711 0.8944 +vn -0.4132 -0.1711 0.8944 +vn 0.3162 0.3162 0.8944 +vn -0.3162 -0.3162 0.8944 +vn 0.1711 0.4132 0.8944 +vn -0.1711 -0.4132 0.8944 +vn -0.0000 0.4472 0.8944 +vn 0.0000 -0.4472 0.8944 +vn 0.1711 -0.4132 0.8944 +vn -0.1711 0.4132 0.8944 +vn 0.3162 -0.3162 0.8944 +s off +f 1/1/1 2/2/1 3/3/1 +f 4/4/1 5/5/1 6/6/1 +f 7/7/1 8/8/1 9/9/1 +f 10/10/1 11/11/1 12/12/1 +f 13/13/1 14/14/1 15/15/1 +f 9/9/1 12/12/1 5/5/1 +f 16/16/1 1/1/1 13/13/1 +f 9/17/2 17/18/2 7/19/2 +f 5/20/3 18/21/3 9/22/3 +f 16/23/4 19/24/4 2/25/4 +f 2/26/3 20/27/3 6/28/3 +f 21/29/1 22/30/1 23/31/1 +f 24/32/1 18/21/1 25/33/1 +f 19/24/1 26/34/1 20/27/1 +f 27/35/1 28/36/1 29/37/1 +f 8/38/3 23/31/3 10/39/3 +f 30/40/4 21/29/4 8/41/4 +f 31/42/5 32/43/5 30/44/5 +f 6/45/2 26/34/2 4/46/2 +f 7/47/5 24/32/5 33/48/5 +f 33/49/4 25/33/4 5/50/4 +f 4/51/5 34/52/5 16/53/5 +f 10/54/2 22/30/2 31/55/2 +f 1/56/5 27/35/5 35/57/5 +f 35/58/4 29/37/4 14/59/4 +f 14/60/3 28/36/3 3/61/3 +f 3/62/2 36/63/2 1/64/2 +f 37/65/6 38/66/6 39/67/6 +f 40/68/6 41/69/6 42/70/6 +f 43/71/6 44/72/6 45/73/6 +f 46/74/6 47/75/6 44/72/6 +f 48/76/7 39/67/7 49/77/7 +f 50/78/6 41/69/6 38/66/6 +f 43/71/6 51/79/6 40/68/6 +f 52/80/6 49/81/6 47/75/6 +f 53/82/6 54/83/6 55/84/6 +f 56/85/6 57/86/6 58/87/6 +f 56/85/6 59/88/6 60/89/6 +f 61/90/7 59/88/7 62/91/7 +f 63/92/6 64/93/6 61/94/6 +f 65/95/7 66/96/7 63/92/7 +f 65/95/7 67/97/7 68/98/7 +f 69/99/6 70/100/6 67/97/6 +f 71/101/7 57/86/7 70/100/7 +f 72/102/8 73/103/8 74/104/8 +f 75/105/9 73/103/9 76/106/9 +f 77/107/10 76/106/10 72/102/10 +f 77/108/11 74/104/11 78/109/11 +f 78/110/12 73/103/12 79/111/12 +f 80/112/3 81/113/3 82/114/3 +f 83/115/3 84/116/3 85/117/3 +f 82/114/3 86/118/3 87/119/3 +f 88/120/3 86/121/3 89/122/3 +f 88/120/3 90/123/3 91/124/3 +f 91/125/3 92/126/3 93/127/3 +f 93/127/3 94/128/3 95/129/3 +f 96/130/3 94/131/3 97/132/3 +f 96/130/3 98/133/3 80/112/3 +f 99/134/3 100/135/3 101/136/3 +f 102/137/3 103/138/3 99/139/3 +f 104/140/3 102/141/3 105/142/3 +f 106/143/3 105/144/3 107/145/3 +f 108/146/3 107/147/3 109/148/3 +f 110/149/3 108/150/3 109/151/3 +f 111/152/3 112/153/3 110/154/3 +f 101/155/3 113/156/3 111/157/3 +f 114/158/1 115/159/1 116/160/1 +f 13/13/3 117/161/3 11/11/3 +f 15/15/2 118/162/2 13/13/2 +f 12/12/5 119/163/5 15/15/5 +f 11/11/4 120/164/4 12/12/4 +f 121/165/13 122/166/13 123/167/13 +f 123/168/14 124/169/14 114/170/14 +f 122/171/15 125/172/15 115/173/15 +f 126/174/16 127/175/16 128/176/16 +f 129/177/17 115/173/17 124/169/17 +f 130/178/18 116/179/18 125/172/18 +f 131/180/19 128/176/19 132/181/19 +f 133/182/20 114/170/20 127/175/20 +f 134/183/3 135/184/3 136/185/3 +f 137/186/5 138/187/5 139/188/5 +f 134/189/21 140/190/21 141/191/21 +f 135/184/22 139/192/22 136/193/22 +f 141/191/23 137/186/23 135/184/23 +f 136/194/24 138/195/24 134/189/24 +f 142/196/3 143/197/3 144/198/3 +f 145/199/5 146/200/5 147/201/5 +f 142/202/22 148/203/22 149/204/22 +f 143/197/21 147/205/21 144/206/21 +f 149/204/24 145/199/24 143/197/24 +f 144/206/23 146/207/23 142/208/23 +f 150/209/3 151/210/3 152/211/3 +f 153/212/5 154/213/5 155/214/5 +f 156/215/24 154/213/24 151/210/24 +f 152/211/23 153/216/23 150/217/23 +f 151/210/21 157/218/21 152/211/21 +f 150/219/22 155/220/22 156/215/22 +f 158/221/3 159/222/3 160/223/3 +f 161/224/5 162/225/5 163/226/5 +f 164/227/23 162/225/23 159/222/23 +f 160/223/24 161/228/24 158/229/24 +f 159/222/22 165/230/22 160/223/22 +f 158/229/21 163/231/21 164/232/21 +f 166/233/3 167/234/3 168/235/3 +f 169/236/25 170/237/25 171/238/25 +f 166/239/21 172/240/21 173/241/21 +f 167/234/22 171/238/22 168/242/22 +f 173/241/23 169/236/23 167/234/23 +f 166/239/24 171/243/24 170/244/24 +f 174/245/26 175/246/26 176/247/26 +f 177/248/13 178/249/13 179/250/13 +f 178/251/16 180/252/16 175/246/16 +f 181/253/27 182/254/27 180/252/27 +f 176/255/1 175/256/1 180/257/1 +f 183/258/2 184/259/2 185/260/2 +f 183/258/13 186/261/13 187/262/13 +f 184/259/1 188/263/1 185/260/1 +f 189/264/5 190/265/5 191/266/5 +f 192/267/13 193/268/13 194/269/13 +f 195/270/1 191/266/1 196/271/1 +f 194/272/4 189/264/4 195/273/4 +f 196/274/2 190/265/2 192/275/2 +f 197/276/2 198/277/2 199/278/2 +f 200/279/28 201/280/28 202/281/28 +f 203/282/29 204/283/29 205/284/29 +f 206/285/30 205/284/30 198/277/30 +f 207/286/31 199/287/31 201/280/31 +f 208/288/4 202/281/4 204/283/4 +f 199/289/13 198/290/13 205/291/13 +f 209/292/4 210/293/4 211/294/4 +f 212/295/2 213/296/2 214/297/2 +f 215/298/28 216/299/28 209/300/28 +f 211/301/29 217/302/29 218/303/29 +f 218/304/30 219/305/30 212/306/30 +f 214/307/31 220/308/31 215/309/31 +f 219/310/1 221/311/1 213/296/1 +f 216/299/1 222/312/1 223/313/1 +f 210/314/1 224/315/1 217/302/1 +f 219/305/1 224/315/1 225/316/1 +f 213/317/1 222/312/1 220/308/1 +f 216/318/1 226/319/1 210/293/1 +f 224/315/30 227/320/30 225/316/30 +f 221/321/31 228/322/31 222/312/31 +f 223/313/4 229/323/4 226/319/4 +f 225/316/2 230/324/2 221/311/2 +f 222/312/28 231/325/28 223/313/28 +f 226/319/29 232/326/29 224/315/29 +f 228/322/13 233/327/13 231/325/13 +f 231/325/13 234/328/13 229/323/13 +f 232/326/13 234/329/13 235/330/13 +f 232/326/13 236/331/13 227/320/13 +f 227/320/13 237/332/13 230/324/13 +f 228/322/13 237/333/13 238/334/13 +f 237/333/31 239/335/31 238/334/31 +f 233/336/4 240/337/4 234/328/4 +f 236/338/2 241/339/2 237/332/2 +f 238/340/28 242/341/28 233/327/28 +f 234/329/29 243/342/29 235/330/29 +f 235/343/30 244/344/30 236/331/30 +f 239/345/1 245/346/1 242/341/1 +f 242/347/1 246/348/1 240/337/1 +f 243/342/1 246/348/1 247/349/1 +f 243/350/1 248/351/1 244/344/1 +f 244/352/1 249/353/1 241/339/1 +f 239/335/1 249/354/1 250/355/1 +f 245/346/4 251/356/4 246/348/4 +f 248/351/2 252/357/2 249/353/2 +f 250/355/28 253/358/28 245/346/28 +f 246/348/29 254/359/29 247/349/29 +f 247/349/30 255/360/30 248/351/30 +f 249/354/31 256/361/31 250/355/31 +f 251/356/32 257/362/32 254/359/32 +f 254/359/33 258/363/33 255/360/33 +f 256/361/34 259/364/34 260/365/34 +f 253/358/35 261/366/35 251/356/35 +f 255/360/36 259/367/36 252/357/36 +f 253/358/37 260/368/37 262/369/37 +f 259/370/13 258/371/13 257/372/13 +f 263/373/38 264/374/38 265/375/38 +f 265/376/1 266/377/1 267/378/1 +f 267/378/39 268/379/39 269/380/39 +f 263/373/13 268/379/13 270/381/13 +f 271/382/38 272/383/38 273/384/38 +f 274/385/13 275/386/13 271/387/13 +f 276/388/1 272/383/1 277/389/1 +f 277/389/40 275/386/40 278/390/40 +f 274/385/41 273/391/41 276/392/41 +f 279/393/1 280/394/1 281/395/1 +f 282/396/42 280/397/42 283/398/42 +f 284/399/13 285/400/13 286/401/13 +f 279/393/43 287/402/43 288/403/43 +f 285/400/13 289/404/13 290/405/13 +f 291/406/44 292/407/44 280/397/44 +f 288/408/13 282/409/13 293/410/13 +f 294/411/40 288/403/40 293/410/40 +f 294/411/1 283/412/1 279/413/1 +f 284/414/13 286/415/13 295/416/13 +f 296/417/40 284/399/40 295/416/40 +f 296/417/1 297/418/1 298/419/1 +f 299/420/5 293/410/5 300/421/5 +f 301/422/3 283/423/3 302/424/3 +f 303/425/13 286/415/13 304/426/13 +f 305/427/1 296/417/1 306/428/1 +f 302/429/1 294/411/1 299/420/1 +f 306/428/5 295/416/5 303/425/5 +f 304/426/3 297/430/3 305/431/3 +f 300/421/13 282/409/13 301/422/13 +f 286/401/42 307/432/42 297/433/42 +f 288/403/13 291/406/13 282/396/13 +f 308/434/4 309/435/4 310/436/4 +f 311/437/45 289/404/45 312/438/45 +f 307/439/1 313/440/1 311/437/1 +f 280/394/1 314/441/1 281/395/1 +f 285/400/44 315/442/44 307/432/44 +f 291/406/13 316/443/13 317/444/13 +f 281/395/45 316/443/45 287/402/45 +f 298/445/1 307/439/1 311/437/1 +f 298/445/43 312/438/43 284/399/43 +f 318/446/30 319/447/30 320/448/30 +f 321/449/3 322/450/3 308/434/3 +f 323/451/2 324/452/2 319/447/2 +f 325/453/2 326/454/2 321/449/2 +f 327/455/31 328/456/31 324/457/31 +f 310/458/5 329/459/5 325/453/5 +f 330/460/28 331/461/28 328/456/28 +f 332/462/13 330/463/13 327/464/13 +f 332/465/4 333/466/4 331/461/4 +f 334/467/29 320/448/29 333/466/29 +f 331/468/1 333/469/1 319/470/1 +f 329/459/21 335/471/21 326/454/21 +f 326/472/3 335/471/3 322/473/3 +f 309/474/5 336/475/5 329/476/5 +f 309/474/5 337/477/5 336/475/5 +f 338/478/2 339/479/2 337/480/2 +f 336/475/13 340/481/13 335/471/13 +f 335/471/3 341/482/3 322/473/3 +f 322/473/1 338/483/1 309/484/1 +f 337/480/13 342/485/13 340/486/13 +f 341/487/1 343/488/1 338/489/1 +f 342/485/38 341/482/38 340/481/38 +f 344/490/43 345/491/43 346/492/43 +f 337/480/13 344/490/13 342/485/13 +f 342/485/4 346/492/4 343/488/4 +f 343/488/1 347/493/1 338/489/1 +f 348/494/13 349/495/13 350/496/13 +f 347/493/1 345/491/1 351/497/1 +f 347/498/42 348/499/42 339/479/42 +f 339/479/13 350/500/13 344/490/13 +f 349/495/40 345/491/40 350/500/40 +f 352/501/1 353/502/1 351/503/1 +f 351/503/1 345/504/1 352/501/1 +f 353/505/3 354/506/3 355/507/3 +f 351/508/3 356/509/3 348/494/3 +f 348/494/13 357/510/13 349/495/13 +f 349/495/5 358/511/5 352/501/5 +f 357/512/5 359/513/5 358/514/5 +f 355/507/21 357/510/21 356/509/21 +f 353/505/3 355/507/3 356/515/3 +f 358/514/4 360/516/4 353/517/4 +f 359/513/5 361/518/5 358/514/5 +f 355/507/2 362/519/2 359/513/2 +f 363/520/46 364/521/46 365/522/46 +f 366/523/46 367/524/46 368/525/46 +f 369/526/46 370/527/46 371/528/46 +f 372/529/46 373/530/46 370/527/46 +f 374/531/47 365/522/47 375/532/47 +f 376/533/46 367/524/46 364/521/46 +f 366/523/46 371/528/46 377/534/46 +f 378/535/46 375/536/46 373/530/46 +f 379/537/46 380/538/46 381/539/46 +f 382/540/46 383/541/46 384/542/46 +f 382/540/46 385/543/46 386/544/46 +f 387/545/47 385/543/47 388/546/47 +f 389/547/46 390/548/46 387/549/46 +f 389/547/47 391/550/47 392/551/47 +f 393/552/47 394/553/47 391/550/47 +f 395/554/46 396/555/46 394/553/46 +f 397/556/47 383/541/47 396/555/47 +f 398/557/48 399/558/48 400/559/48 +f 401/560/48 402/561/48 403/562/48 +f 404/563/48 405/564/48 406/565/48 +f 407/566/48 408/567/48 405/564/48 +f 409/568/49 400/559/49 410/569/49 +f 411/570/48 402/561/48 399/558/48 +f 404/563/48 412/571/48 401/560/48 +f 413/572/48 410/573/48 408/567/48 +f 414/574/48 415/575/48 416/576/48 +f 417/577/48 418/578/48 419/579/48 +f 417/577/48 420/580/48 421/581/48 +f 422/582/49 420/580/49 423/583/49 +f 424/584/48 425/585/48 422/586/48 +f 426/587/49 427/588/49 424/584/49 +f 426/587/49 428/589/49 429/590/49 +f 430/591/48 431/592/48 428/589/48 +f 432/593/49 418/578/49 431/592/49 +f 433/594/50 434/595/50 435/596/50 +f 436/597/50 437/598/50 438/599/50 +f 439/600/50 440/601/50 441/602/50 +f 442/603/50 443/604/50 440/601/50 +f 444/605/51 435/596/51 445/606/51 +f 446/607/50 437/598/50 434/595/50 +f 439/600/50 447/608/50 436/597/50 +f 448/609/50 445/610/50 443/604/50 +f 449/611/50 450/612/50 451/613/50 +f 452/614/50 453/615/50 454/616/50 +f 452/614/50 455/617/50 456/618/50 +f 457/619/51 455/617/51 458/620/51 +f 459/621/50 460/622/50 457/623/50 +f 461/624/51 462/625/51 459/621/51 +f 461/624/51 463/626/51 464/627/51 +f 465/628/50 466/629/50 463/626/50 +f 467/630/51 453/615/51 466/629/51 +f 468/631/52 469/632/52 470/633/52 +f 471/634/53 472/635/53 473/636/53 +f 474/637/53 475/638/53 476/639/53 +f 477/640/52 478/641/52 475/638/52 +f 479/642/52 470/633/52 480/643/52 +f 481/644/53 472/635/53 469/632/53 +f 474/637/53 482/645/53 471/634/53 +f 483/646/53 480/647/53 478/641/53 +f 484/648/52 485/649/52 486/650/52 +f 487/651/52 488/652/52 489/653/52 +f 487/651/52 490/654/52 491/655/52 +f 492/656/52 490/654/52 493/657/52 +f 494/658/53 495/659/53 492/660/53 +f 496/661/53 497/662/53 494/658/53 +f 496/661/52 498/663/52 499/664/52 +f 500/665/53 501/666/53 498/663/53 +f 502/667/54 488/652/54 501/666/54 +f 503/668/55 504/669/55 505/670/55 +f 506/671/55 507/672/55 508/673/55 +f 509/674/56 510/675/56 511/676/56 +f 512/677/55 513/678/55 510/675/55 +f 514/679/56 505/670/56 515/680/56 +f 516/681/55 507/672/55 504/669/55 +f 509/674/55 517/682/55 506/671/55 +f 518/683/55 515/684/55 513/678/55 +f 519/685/56 520/686/56 521/687/56 +f 522/688/56 523/689/56 524/690/56 +f 522/688/55 525/691/55 526/692/55 +f 527/693/56 525/691/56 528/694/56 +f 529/695/55 530/696/55 527/697/55 +f 531/698/56 532/699/56 529/695/56 +f 531/698/56 533/700/56 534/701/56 +f 535/702/55 536/703/55 533/700/55 +f 537/704/56 523/689/56 536/703/56 +f 538/705/57 539/706/57 540/707/57 +f 541/708/58 542/709/58 543/710/58 +f 544/711/57 545/712/57 546/713/57 +f 547/714/58 548/715/58 545/712/58 +f 549/716/57 540/707/57 550/717/57 +f 551/718/58 542/709/58 539/706/58 +f 541/708/58 546/713/58 552/719/58 +f 553/720/58 550/721/58 548/715/58 +f 554/722/57 555/723/57 556/724/57 +f 557/725/57 558/726/57 559/727/57 +f 557/725/58 560/728/58 561/729/58 +f 562/730/57 560/728/57 563/731/57 +f 564/732/58 565/733/58 562/734/58 +f 566/735/57 567/736/57 564/732/57 +f 566/735/57 568/737/57 569/738/57 +f 570/739/58 571/740/58 568/737/58 +f 572/741/59 558/726/59 571/740/59 +f 573/742/60 574/743/60 575/744/60 +f 576/745/60 577/746/60 578/747/60 +f 579/748/60 580/749/60 581/750/60 +f 582/751/60 580/749/60 583/752/60 +f 584/753/61 575/744/61 585/754/61 +f 586/755/60 577/746/60 574/743/60 +f 579/748/60 587/756/60 576/745/60 +f 582/751/60 585/757/60 588/758/60 +f 589/759/61 590/760/61 591/761/61 +f 592/762/61 593/763/61 594/764/61 +f 592/762/61 595/765/61 596/766/61 +f 597/767/61 595/765/61 598/768/61 +f 599/769/60 600/770/60 597/771/60 +f 601/772/60 602/773/60 599/769/60 +f 601/772/61 603/774/61 604/775/61 +f 605/776/61 606/777/61 603/774/61 +f 607/778/61 593/763/61 606/777/61 +f 608/779/62 609/780/62 610/781/62 +f 611/782/63 610/781/63 609/780/63 +f 612/783/64 609/780/64 613/784/64 +f 612/785/65 608/779/65 614/786/65 +f 614/787/66 610/781/66 615/788/66 +f 616/789/67 617/790/67 618/791/67 +f 619/792/68 617/790/68 620/793/68 +f 621/794/69 620/793/69 616/789/69 +f 621/795/70 618/791/70 622/796/70 +f 622/797/71 617/790/71 623/798/71 +f 624/799/72 625/800/72 626/801/72 +f 627/802/73 626/801/73 625/800/73 +f 628/803/74 625/800/74 629/804/74 +f 628/805/75 624/799/75 630/806/75 +f 630/807/76 626/801/76 631/808/76 +f 632/809/77 633/810/77 634/811/77 +f 635/812/78 634/811/78 633/810/78 +f 636/813/79 633/810/79 637/814/79 +f 636/815/80 632/809/80 638/816/80 +f 638/817/81 634/811/81 639/818/81 +f 640/819/82 641/820/82 642/821/82 +f 643/822/83 642/821/83 641/820/83 +f 644/823/84 641/820/84 645/824/84 +f 644/825/85 640/819/85 646/826/85 +f 646/827/86 642/821/86 647/828/86 +f 648/829/87 649/830/87 650/831/87 +f 651/832/88 649/830/88 652/833/88 +f 653/834/89 652/833/89 648/829/89 +f 653/835/90 650/831/90 654/836/90 +f 654/837/91 649/830/91 655/838/91 +f 656/839/92 657/840/92 658/841/92 +f 659/842/93 658/841/93 657/840/93 +f 660/843/94 657/840/94 661/844/94 +f 660/845/95 656/839/95 662/846/95 +f 662/847/96 658/841/96 663/848/96 +f 664/849/97 665/850/97 666/851/97 +f 667/852/98 665/850/98 668/853/98 +f 669/854/99 668/853/99 664/849/99 +f 669/855/100 666/851/100 670/856/100 +f 670/857/101 665/850/101 671/858/101 +f 672/859/102 673/860/102 674/861/102 +f 675/862/103 674/861/103 673/860/103 +f 676/863/104 673/860/104 677/864/104 +f 676/865/105 672/859/105 678/866/105 +f 678/867/106 674/861/106 679/868/106 +f 680/869/107 681/870/107 682/871/107 +f 683/872/108 682/871/108 681/870/108 +f 684/873/109 681/870/109 685/874/109 +f 684/875/110 680/869/110 686/876/110 +f 686/877/111 682/871/111 687/878/111 +f 688/879/112 689/880/112 690/881/112 +f 691/882/113 690/881/113 689/880/113 +f 692/883/114 689/880/114 693/884/114 +f 692/885/115 688/879/115 694/886/115 +f 694/887/116 690/881/116 695/888/116 +f 696/889/117 697/890/117 698/891/117 +f 699/892/118 698/891/118 697/890/118 +f 700/893/119 697/890/119 701/894/119 +f 700/895/120 696/889/120 702/896/120 +f 702/897/121 698/891/121 703/898/121 +f 704/899/122 705/900/122 706/901/122 +f 707/902/123 706/901/123 705/900/123 +f 708/903/124 705/900/124 709/904/124 +f 708/905/125 704/899/125 710/906/125 +f 710/907/126 706/901/126 711/908/126 +f 712/909/127 713/910/127 714/911/127 +f 715/912/128 713/910/128 716/913/128 +f 717/914/129 716/913/129 712/909/129 +f 717/915/130 714/911/130 718/916/130 +f 718/917/131 713/910/131 719/918/131 +f 720/919/132 721/920/132 722/921/132 +f 723/922/133 722/921/133 721/920/133 +f 724/923/134 721/920/134 725/924/134 +f 724/925/135 720/919/135 726/926/135 +f 726/927/136 722/921/136 727/928/136 +f 728/929/23 729/930/23 730/931/23 +f 731/932/4 732/933/4 733/934/4 +f 734/935/22 735/936/22 736/937/22 +f 1/1/1 16/16/1 2/2/1 +f 4/4/1 33/938/1 5/5/1 +f 7/7/1 30/939/1 8/8/1 +f 10/10/1 31/940/1 11/11/1 +f 13/13/1 35/941/1 14/14/1 +f 10/10/1 12/12/1 8/8/1 +f 12/12/1 15/15/1 5/5/1 +f 8/8/1 12/12/1 9/9/1 +f 15/15/1 14/14/1 3/3/1 +f 2/2/1 6/6/1 15/15/1 +f 6/6/1 5/5/1 15/15/1 +f 15/15/1 3/3/1 2/2/1 +f 13/13/1 11/11/1 33/938/1 +f 11/11/1 31/940/1 30/939/1 +f 30/939/1 7/7/1 11/11/1 +f 7/7/1 33/938/1 11/11/1 +f 1/1/1 35/941/1 13/13/1 +f 33/938/1 4/4/1 13/13/1 +f 4/4/1 16/16/1 13/13/1 +f 9/17/2 18/21/2 17/18/2 +f 5/20/3 25/33/3 18/21/3 +f 16/23/4 34/52/4 19/24/4 +f 2/26/3 19/24/3 20/27/3 +f 21/29/1 32/43/1 22/30/1 +f 24/32/1 17/18/1 18/21/1 +f 19/24/1 34/52/1 26/34/1 +f 27/35/1 36/63/1 28/36/1 +f 8/38/3 21/29/3 23/31/3 +f 30/40/4 32/43/4 21/29/4 +f 31/42/5 22/30/5 32/43/5 +f 6/45/2 20/27/2 26/34/2 +f 7/47/5 17/18/5 24/32/5 +f 33/49/4 24/32/4 25/33/4 +f 4/51/5 26/34/5 34/52/5 +f 10/54/2 23/31/2 22/30/2 +f 1/56/5 36/63/5 27/35/5 +f 35/58/4 27/35/4 29/37/4 +f 14/60/3 29/37/3 28/36/3 +f 3/62/2 28/36/2 36/63/2 +f 37/65/6 50/78/6 38/66/6 +f 40/68/6 51/79/6 41/69/6 +f 43/71/7 46/74/7 44/72/7 +f 46/74/6 52/80/6 47/75/6 +f 48/76/6 37/65/6 39/67/6 +f 50/78/6 42/70/6 41/69/6 +f 43/71/6 45/73/6 51/79/6 +f 52/80/7 48/942/7 49/81/7 +f 53/82/6 737/943/6 54/83/6 +f 54/83/7 738/944/7 55/84/7 +f 55/84/6 739/945/6 53/82/6 +f 739/945/7 740/946/7 53/82/7 +f 740/946/6 741/947/6 53/82/6 +f 56/85/7 60/89/7 57/86/7 +f 56/85/6 62/91/6 59/88/6 +f 61/90/6 64/948/6 59/88/6 +f 63/92/7 66/96/7 64/93/7 +f 65/95/6 68/98/6 66/96/6 +f 65/95/6 69/99/6 67/97/6 +f 69/99/7 71/101/7 70/100/7 +f 71/101/6 58/87/6 57/86/6 +f 72/102/8 76/106/8 73/103/8 +f 75/105/137 79/949/137 73/103/137 +f 77/107/10 75/950/10 76/106/10 +f 77/108/11 72/102/11 74/104/11 +f 78/110/12 74/104/12 73/103/12 +f 80/112/3 98/951/3 81/113/3 +f 85/117/3 742/952/3 743/953/3 +f 743/953/3 744/954/3 85/117/3 +f 744/954/3 745/955/3 85/117/3 +f 745/955/3 746/956/3 85/117/3 +f 746/956/3 83/115/3 85/117/3 +f 82/114/3 81/957/3 86/118/3 +f 88/120/3 87/119/3 86/121/3 +f 88/120/3 89/958/3 90/123/3 +f 91/125/3 90/959/3 92/126/3 +f 93/127/3 92/960/3 94/128/3 +f 96/130/3 95/129/3 94/131/3 +f 96/130/3 97/961/3 98/133/3 +f 99/134/3 103/962/3 100/135/3 +f 102/137/3 747/963/3 103/138/3 +f 104/140/3 747/964/3 102/141/3 +f 106/143/3 104/965/3 105/144/3 +f 108/146/3 106/966/3 107/147/3 +f 110/149/3 112/967/3 108/150/3 +f 111/152/3 113/968/3 112/153/3 +f 101/155/3 100/969/3 113/156/3 +f 128/970/1 127/971/1 114/158/1 +f 114/158/1 124/972/1 115/159/1 +f 115/159/1 125/973/1 116/160/1 +f 116/160/1 132/974/1 128/970/1 +f 128/970/1 114/158/1 116/160/1 +f 13/13/3 118/975/3 117/161/3 +f 15/15/2 119/976/2 118/162/2 +f 12/12/5 120/977/5 119/163/5 +f 11/11/4 117/978/4 120/164/4 +f 123/167/13 133/979/13 126/980/13 +f 126/980/13 131/981/13 121/165/13 +f 121/165/13 130/982/13 122/166/13 +f 122/166/13 129/983/13 123/167/13 +f 123/167/13 126/980/13 121/165/13 +f 123/168/14 129/177/14 124/169/14 +f 122/171/15 130/178/15 125/172/15 +f 126/174/16 133/182/16 127/175/16 +f 129/177/17 122/171/17 115/173/17 +f 130/178/18 121/984/18 116/179/18 +f 131/180/19 126/174/19 128/176/19 +f 133/182/20 123/168/20 114/170/20 +f 134/183/3 141/191/3 135/184/3 +f 137/186/5 140/190/5 138/187/5 +f 134/189/21 138/195/21 140/190/21 +f 135/184/22 137/186/22 139/192/22 +f 141/191/23 140/190/23 137/186/23 +f 136/194/24 139/985/24 138/195/24 +f 142/196/3 149/204/3 143/197/3 +f 145/199/5 148/203/5 146/200/5 +f 142/202/22 146/986/22 148/203/22 +f 143/197/21 145/199/21 147/205/21 +f 149/204/24 148/203/24 145/199/24 +f 144/206/23 147/205/23 146/207/23 +f 150/209/3 156/987/3 151/210/3 +f 153/212/5 157/218/5 154/213/5 +f 156/215/24 155/220/24 154/213/24 +f 152/211/23 157/218/23 153/216/23 +f 151/210/21 154/213/21 157/218/21 +f 150/219/22 153/988/22 155/220/22 +f 158/221/3 164/989/3 159/222/3 +f 161/224/5 165/230/5 162/225/5 +f 164/227/23 163/990/23 162/225/23 +f 160/223/24 165/230/24 161/228/24 +f 159/222/22 162/225/22 165/230/22 +f 158/229/21 161/228/21 163/231/21 +f 166/233/3 173/241/3 167/234/3 +f 169/236/25 172/991/25 170/237/25 +f 166/239/21 170/244/21 172/240/21 +f 167/234/22 169/236/22 171/238/22 +f 173/241/23 172/240/23 169/236/23 +f 166/239/24 168/992/24 171/243/24 +f 174/245/26 178/251/26 175/246/26 +f 179/250/13 748/993/13 177/248/13 +f 177/248/13 181/994/13 178/249/13 +f 178/249/13 174/995/13 179/250/13 +f 178/251/16 181/253/16 180/252/16 +f 181/253/27 177/996/27 182/254/27 +f 180/257/1 182/997/1 176/255/1 +f 182/997/1 749/998/1 176/255/1 +f 749/998/1 750/999/1 176/255/1 +f 183/258/2 187/262/2 184/259/2 +f 183/258/13 751/1000/13 186/261/13 +f 184/259/1 752/1001/1 188/263/1 +f 189/264/5 193/268/5 190/265/5 +f 192/267/13 190/265/13 193/268/13 +f 195/270/1 189/264/1 191/266/1 +f 194/272/4 193/268/4 189/264/4 +f 196/274/2 191/266/2 190/265/2 +f 197/276/2 206/285/2 198/277/2 +f 200/279/28 207/286/28 201/280/28 +f 203/282/29 208/288/29 204/283/29 +f 206/285/30 203/282/30 205/284/30 +f 207/286/31 197/1002/31 199/287/31 +f 208/288/4 200/279/4 202/281/4 +f 205/291/13 204/1003/13 199/289/13 +f 204/1003/13 202/1004/13 199/289/13 +f 202/1004/13 201/1005/13 199/289/13 +f 209/292/4 216/318/4 210/293/4 +f 212/295/2 219/310/2 213/296/2 +f 215/298/28 220/1006/28 216/299/28 +f 211/301/29 210/314/29 217/302/29 +f 218/304/30 217/1007/30 219/305/30 +f 214/307/31 213/317/31 220/308/31 +f 219/310/1 225/316/1 221/311/1 +f 216/299/1 220/1006/1 222/312/1 +f 210/314/1 226/319/1 224/315/1 +f 219/305/1 217/1007/1 224/315/1 +f 213/317/1 221/321/1 222/312/1 +f 216/318/1 223/313/1 226/319/1 +f 224/315/30 232/326/30 227/320/30 +f 221/321/31 230/1008/31 228/322/31 +f 223/313/4 231/325/4 229/323/4 +f 225/316/2 227/320/2 230/324/2 +f 222/312/28 228/322/28 231/325/28 +f 226/319/29 229/323/29 232/326/29 +f 228/322/13 238/340/13 233/327/13 +f 231/325/13 233/336/13 234/328/13 +f 232/326/13 229/323/13 234/329/13 +f 232/326/13 235/343/13 236/331/13 +f 227/320/13 236/338/13 237/332/13 +f 228/322/13 230/1008/13 237/333/13 +f 237/333/31 241/1009/31 239/335/31 +f 233/336/4 242/347/4 240/337/4 +f 236/338/2 244/352/2 241/339/2 +f 238/340/28 239/345/28 242/341/28 +f 234/329/29 240/1010/29 243/342/29 +f 235/343/30 243/350/30 244/344/30 +f 239/345/1 250/355/1 245/346/1 +f 242/347/1 245/346/1 246/348/1 +f 243/342/1 240/1010/1 246/348/1 +f 243/350/1 247/349/1 248/351/1 +f 244/352/1 248/351/1 249/353/1 +f 239/335/1 241/1009/1 249/354/1 +f 245/346/4 253/358/4 251/356/4 +f 248/351/2 255/360/2 252/357/2 +f 250/355/28 256/361/28 253/358/28 +f 246/348/29 251/356/29 254/359/29 +f 247/349/30 254/359/30 255/360/30 +f 249/354/31 252/1011/31 256/361/31 +f 251/356/32 261/1012/32 257/362/32 +f 254/359/33 257/1013/33 258/363/33 +f 256/361/34 252/1011/34 259/364/34 +f 253/358/35 262/1014/35 261/366/35 +f 255/360/36 258/1015/36 259/367/36 +f 253/358/37 256/361/37 260/368/37 +f 257/372/13 261/1016/13 259/370/13 +f 261/1016/13 262/1017/13 259/370/13 +f 262/1017/13 260/1018/13 259/370/13 +f 263/373/38 270/381/38 264/374/38 +f 265/376/1 264/1019/1 266/377/1 +f 267/378/39 266/377/39 268/379/39 +f 263/373/13 269/380/13 268/379/13 +f 271/382/38 275/1020/38 272/383/38 +f 274/385/13 278/390/13 275/386/13 +f 276/388/1 273/384/1 272/383/1 +f 277/389/40 272/383/40 275/386/40 +f 274/385/41 271/387/41 273/391/41 +f 279/393/1 283/1021/1 280/394/1 +f 282/396/42 291/406/42 280/397/42 +f 284/399/13 312/438/13 285/400/13 +f 279/393/43 281/395/43 287/402/43 +f 285/400/13 312/438/13 289/404/13 +f 291/406/44 317/444/44 292/407/44 +f 294/411/40 279/393/40 288/403/40 +f 296/417/40 298/445/40 284/399/40 +f 299/420/5 294/411/5 293/410/5 +f 301/422/3 282/409/3 283/423/3 +f 303/425/13 295/416/13 286/415/13 +f 305/427/1 297/418/1 296/417/1 +f 302/429/1 283/412/1 294/411/1 +f 306/428/5 296/417/5 295/416/5 +f 304/426/3 286/415/3 297/430/3 +f 300/421/13 293/410/13 282/409/13 +f 286/401/42 285/400/42 307/432/42 +f 288/403/13 287/402/13 291/406/13 +f 308/434/4 322/450/4 309/435/4 +f 311/437/45 313/440/45 289/404/45 +f 307/439/1 315/1022/1 313/440/1 +f 280/394/1 292/1023/1 314/441/1 +f 285/400/44 290/405/44 315/442/44 +f 291/406/13 287/402/13 316/443/13 +f 281/395/45 314/441/45 316/443/45 +f 298/445/1 297/1024/1 307/439/1 +f 298/445/43 311/437/43 312/438/43 +f 318/446/30 323/451/30 319/447/30 +f 321/449/3 326/454/3 322/450/3 +f 323/451/2 327/1025/2 324/452/2 +f 325/453/2 329/459/2 326/454/2 +f 327/455/31 330/460/31 328/456/31 +f 310/458/5 309/1026/5 329/459/5 +f 330/460/28 332/465/28 331/461/28 +f 327/464/13 323/1027/13 318/1028/13 +f 318/1028/13 334/1029/13 327/464/13 +f 334/1029/13 332/462/13 327/464/13 +f 332/465/4 334/467/4 333/466/4 +f 334/467/29 318/446/29 320/448/29 +f 333/469/1 320/1030/1 319/470/1 +f 319/470/1 324/1031/1 328/1032/1 +f 328/1032/1 331/468/1 319/470/1 +f 329/459/21 336/475/21 335/471/21 +f 309/474/5 338/1033/5 337/477/5 +f 338/478/2 347/498/2 339/479/2 +f 336/475/13 337/477/13 340/481/13 +f 335/471/3 340/481/3 341/482/3 +f 322/473/1 341/482/1 338/483/1 +f 342/485/38 343/488/38 341/482/38 +f 344/490/43 350/500/43 345/491/43 +f 337/480/13 339/479/13 344/490/13 +f 342/485/4 344/490/4 346/492/4 +f 343/488/1 346/492/1 347/493/1 +f 347/493/1 346/492/1 345/491/1 +f 347/498/42 351/1034/42 348/499/42 +f 339/479/13 348/499/13 350/500/13 +f 349/495/40 352/501/40 345/491/40 +f 352/501/1 358/511/1 353/502/1 +f 353/505/3 360/1035/3 354/506/3 +f 351/508/3 353/1036/3 356/509/3 +f 348/494/13 356/509/13 357/510/13 +f 349/495/5 357/510/5 358/511/5 +f 355/507/21 359/513/21 357/510/21 +f 358/514/4 361/518/4 360/516/4 +f 359/513/5 362/519/5 361/518/5 +f 355/507/2 354/506/2 362/519/2 +f 363/520/46 376/533/46 364/521/46 +f 366/523/46 377/534/46 367/524/46 +f 369/526/47 372/529/47 370/527/47 +f 372/529/46 378/535/46 373/530/46 +f 374/531/46 363/520/46 365/522/46 +f 376/533/46 368/525/46 367/524/46 +f 366/523/46 369/526/46 371/528/46 +f 378/535/47 374/1037/47 375/536/47 +f 379/537/46 753/1038/46 380/538/46 +f 380/538/47 754/1039/47 381/539/47 +f 381/539/47 755/1040/47 756/1041/47 +f 756/1041/46 757/1042/46 381/539/46 +f 757/1042/46 379/537/46 381/539/46 +f 382/540/47 386/544/47 383/541/47 +f 382/540/46 388/546/46 385/543/46 +f 387/545/46 390/1043/46 385/543/46 +f 389/547/47 392/551/47 390/548/47 +f 389/547/46 393/552/46 391/550/46 +f 393/552/46 395/554/46 394/553/46 +f 395/554/47 397/556/47 396/555/47 +f 397/556/46 384/542/46 383/541/46 +f 398/557/49 411/570/49 399/558/49 +f 401/560/48 412/571/48 402/561/48 +f 404/563/49 407/566/49 405/564/49 +f 407/566/48 413/572/48 408/567/48 +f 409/568/48 398/557/48 400/559/48 +f 411/570/48 403/562/48 402/561/48 +f 404/563/48 406/565/48 412/571/48 +f 413/572/49 409/1044/49 410/573/49 +f 414/574/48 758/1045/48 415/575/48 +f 415/575/49 759/1046/49 416/576/49 +f 416/576/48 760/1047/48 414/574/48 +f 760/1047/49 761/1048/49 414/574/49 +f 761/1048/48 762/1049/48 414/574/48 +f 417/577/49 421/581/49 418/578/49 +f 417/577/48 423/583/48 420/580/48 +f 422/582/48 425/1050/48 420/580/48 +f 424/584/49 427/588/49 425/585/49 +f 426/587/48 429/590/48 427/588/48 +f 426/587/49 430/591/49 428/589/49 +f 430/591/49 432/593/49 431/592/49 +f 432/593/48 419/579/48 418/578/48 +f 433/594/50 446/607/50 434/595/50 +f 436/597/50 447/608/50 437/598/50 +f 439/600/51 442/603/51 440/601/51 +f 442/603/50 448/609/50 443/604/50 +f 444/605/50 433/594/50 435/596/50 +f 446/607/50 438/599/50 437/598/50 +f 439/600/50 441/602/50 447/608/50 +f 448/609/51 444/1051/51 445/610/51 +f 449/611/50 763/1052/50 450/612/50 +f 450/612/51 764/1053/51 451/613/51 +f 451/613/50 765/1054/50 449/611/50 +f 765/1054/51 766/1055/51 449/611/51 +f 766/1055/50 767/1056/50 449/611/50 +f 452/614/51 456/618/51 453/615/51 +f 452/614/50 458/620/50 455/617/50 +f 457/619/50 460/1057/50 455/617/50 +f 459/621/51 462/625/51 460/622/51 +f 461/624/50 464/627/50 462/625/50 +f 461/624/50 465/628/50 463/626/50 +f 465/628/51 467/630/51 466/629/51 +f 467/630/50 454/616/50 453/615/50 +f 468/631/53 481/644/53 469/632/53 +f 471/634/53 482/645/53 472/635/53 +f 474/637/52 477/640/52 475/638/52 +f 477/640/53 483/646/53 478/641/53 +f 479/642/53 468/631/53 470/633/53 +f 481/644/53 473/636/53 472/635/53 +f 474/637/52 476/639/52 482/645/52 +f 483/646/52 479/1058/52 480/647/52 +f 484/648/52 768/1059/52 485/649/52 +f 485/649/52 769/1060/52 486/650/52 +f 486/650/53 770/1061/53 484/648/53 +f 770/1061/52 771/1062/52 484/648/52 +f 771/1062/53 772/1063/53 484/648/53 +f 487/651/52 491/655/52 488/652/52 +f 487/651/52 493/657/52 490/654/52 +f 492/656/53 495/1064/53 490/654/53 +f 494/658/52 497/662/52 495/659/52 +f 496/661/53 499/664/53 497/662/53 +f 496/661/53 500/665/53 498/663/53 +f 500/665/52 502/667/52 501/666/52 +f 502/667/53 489/653/53 488/652/53 +f 503/668/55 516/681/55 504/669/55 +f 506/671/55 517/682/55 507/672/55 +f 509/674/55 512/677/55 510/675/55 +f 512/677/55 518/683/55 513/678/55 +f 514/679/55 503/668/55 505/670/55 +f 516/681/55 508/673/55 507/672/55 +f 509/674/55 511/676/55 517/682/55 +f 518/683/56 514/1065/56 515/684/56 +f 519/685/56 773/1066/56 520/686/56 +f 520/686/55 774/1067/55 521/687/55 +f 521/687/55 775/1068/55 519/685/55 +f 775/1068/56 776/1069/56 519/685/56 +f 776/1069/55 777/1070/55 519/685/55 +f 522/688/56 526/692/56 523/689/56 +f 522/688/56 528/694/56 525/691/56 +f 527/693/55 530/1071/55 525/691/55 +f 529/695/56 532/699/56 530/696/56 +f 531/698/55 534/701/55 532/699/55 +f 531/698/55 535/702/55 533/700/55 +f 535/702/56 537/704/56 536/703/56 +f 537/704/55 524/690/55 523/689/55 +f 538/705/58 551/718/58 539/706/58 +f 541/708/58 552/719/58 542/709/58 +f 544/711/58 547/714/58 545/712/58 +f 547/714/58 553/720/58 548/715/58 +f 549/716/58 538/705/58 540/707/58 +f 551/718/58 543/710/58 542/709/58 +f 541/708/58 544/711/58 546/713/58 +f 553/720/57 549/1072/57 550/721/57 +f 554/722/57 778/1073/57 555/723/57 +f 555/723/58 779/1074/58 556/724/58 +f 556/724/58 780/1075/58 781/1076/58 +f 781/1076/58 782/1077/58 556/724/58 +f 782/1077/58 554/722/58 556/724/58 +f 557/725/57 561/729/57 558/726/57 +f 557/725/57 563/731/57 560/728/57 +f 562/730/58 565/1078/58 560/728/58 +f 564/732/57 567/736/57 565/733/57 +f 566/735/58 569/738/58 567/736/58 +f 566/735/58 570/739/58 568/737/58 +f 570/739/57 572/741/57 571/740/57 +f 572/741/58 559/727/58 558/726/58 +f 573/742/60 586/755/60 574/743/60 +f 576/745/60 587/756/60 577/746/60 +f 579/748/61 583/752/61 580/749/61 +f 582/751/60 588/758/60 580/749/60 +f 584/753/60 573/742/60 575/744/60 +f 586/755/60 578/747/60 577/746/60 +f 579/748/61 581/750/61 587/756/61 +f 582/751/61 584/1079/61 585/757/61 +f 589/759/61 783/1080/61 590/760/61 +f 590/760/61 784/1081/61 591/761/61 +f 591/761/60 785/1082/60 589/759/60 +f 785/1082/61 786/1083/61 589/759/61 +f 786/1083/60 787/1084/60 589/759/60 +f 592/762/61 596/766/61 593/763/61 +f 592/762/61 598/768/61 595/765/61 +f 597/767/60 600/1085/60 595/765/60 +f 599/769/61 602/773/61 600/770/61 +f 601/772/60 604/775/60 602/773/60 +f 601/772/61 605/776/61 603/774/61 +f 605/776/61 607/778/61 606/777/61 +f 607/778/60 594/764/60 593/763/60 +f 608/779/62 613/784/62 609/780/62 +f 611/782/138 615/1086/138 610/781/138 +f 612/783/64 611/1087/64 609/780/64 +f 612/785/65 613/784/65 608/779/65 +f 614/787/66 608/779/66 610/781/66 +f 616/789/67 620/793/67 617/790/67 +f 619/792/139 623/1088/139 617/790/139 +f 621/794/69 619/1089/69 620/793/69 +f 621/795/70 616/789/70 618/791/70 +f 622/797/71 618/791/71 617/790/71 +f 624/799/72 629/804/72 625/800/72 +f 627/802/140 631/1090/140 626/801/140 +f 628/803/74 627/1091/74 625/800/74 +f 628/805/75 629/804/75 624/799/75 +f 630/807/76 624/799/76 626/801/76 +f 632/809/77 637/814/77 633/810/77 +f 635/812/141 639/1092/141 634/811/141 +f 636/813/79 635/1093/79 633/810/79 +f 636/815/80 637/814/80 632/809/80 +f 638/817/81 632/809/81 634/811/81 +f 640/819/82 645/824/82 641/820/82 +f 643/822/142 647/1094/142 642/821/142 +f 644/823/84 643/1095/84 641/820/84 +f 644/825/85 645/824/85 640/819/85 +f 646/827/86 640/819/86 642/821/86 +f 648/829/87 652/833/87 649/830/87 +f 651/832/88 655/1096/88 649/830/88 +f 653/834/89 651/1097/89 652/833/89 +f 653/835/90 648/829/90 650/831/90 +f 654/837/91 650/831/91 649/830/91 +f 656/839/92 661/844/92 657/840/92 +f 659/842/143 663/1098/143 658/841/143 +f 660/843/94 659/1099/94 657/840/94 +f 660/845/95 661/844/95 656/839/95 +f 662/847/96 656/839/96 658/841/96 +f 664/849/97 668/853/97 665/850/97 +f 667/852/144 671/1100/144 665/850/144 +f 669/854/99 667/1101/99 668/853/99 +f 669/855/100 664/849/100 666/851/100 +f 670/857/145 666/851/145 665/850/145 +f 672/859/102 677/864/102 673/860/102 +f 675/862/103 679/1102/103 674/861/103 +f 676/863/104 675/1103/104 673/860/104 +f 676/865/105 677/864/105 672/859/105 +f 678/867/146 672/859/146 674/861/146 +f 680/869/107 685/874/107 681/870/107 +f 683/872/108 687/1104/108 682/871/108 +f 684/873/109 683/1105/109 681/870/109 +f 684/875/110 685/874/110 680/869/110 +f 686/877/147 680/869/147 682/871/147 +f 688/879/112 693/884/112 689/880/112 +f 691/882/113 695/1106/113 690/881/113 +f 692/883/114 691/1107/114 689/880/114 +f 692/885/115 693/884/115 688/879/115 +f 694/887/148 688/879/148 690/881/148 +f 696/889/117 701/894/117 697/890/117 +f 699/892/118 703/1108/118 698/891/118 +f 700/893/119 699/1109/119 697/890/119 +f 700/895/120 701/894/120 696/889/120 +f 702/897/121 696/889/121 698/891/121 +f 704/899/122 709/904/122 705/900/122 +f 707/902/123 711/1110/123 706/901/123 +f 708/903/124 707/1111/124 705/900/124 +f 708/905/149 709/904/149 704/899/149 +f 710/907/126 704/899/126 706/901/126 +f 712/909/127 716/913/127 713/910/127 +f 715/912/150 719/1112/150 713/910/150 +f 717/914/129 715/1113/129 716/913/129 +f 717/915/130 712/909/130 714/911/130 +f 718/917/131 714/911/131 713/910/131 +f 720/919/132 725/924/132 721/920/132 +f 723/922/133 727/1114/133 722/921/133 +f 724/923/134 723/1115/134 721/920/134 +f 724/925/135 725/924/135 720/919/135 +f 726/927/136 720/919/136 722/921/136 +f 728/929/23 788/1116/23 729/930/23 +f 731/932/4 789/1117/4 732/933/4 +f 734/935/22 790/1118/22 735/936/22 +f 1363/1119/1 1364/1120/1 1365/1121/1 +f 1366/1122/21 1367/1123/21 1368/1124/21 +f 1367/1123/13 1369/1125/13 1370/1126/13 +f 1371/1127/2 1372/1128/2 1373/1129/2 +f 1374/1130/24 1371/1131/24 1365/1121/24 +f 1371/1132/39 1366/1133/39 1375/1134/39 +f 1376/1135/4 1370/1126/4 1377/1136/4 +f 1378/1137/1 1379/1138/1 1380/1139/1 +f 1379/1138/1 1363/1119/1 1381/1140/1 +f 1378/1137/151 1382/1141/151 1383/1142/151 +f 1367/1123/5 1384/1143/5 1369/1125/5 +f 1367/1123/5 1385/1144/5 1386/1145/5 +f 1380/1139/5 1387/1146/5 1378/1137/5 +f 1378/1137/5 1387/1146/5 1388/1147/5 +f 1369/1148/152 1377/1136/152 1370/1126/152 +f 1389/1149/152 1390/1150/152 1391/1151/152 +f 1391/1151/4 1381/1140/4 1392/1152/4 +f 1393/1153/153 1394/1154/153 1395/1155/153 +f 1396/1156/153 1397/1157/153 1393/1153/153 +f 1394/1154/153 1381/1158/153 1395/1155/153 +f 1398/1159/5 1399/1160/5 1400/1161/5 +f 1401/1162/22 1402/1163/22 1403/1164/22 +f 1404/1165/3 1405/1166/3 1406/1167/3 +f 1368/1168/3 1407/1169/3 1408/1170/3 +f 1372/1171/3 1409/1172/3 1410/1173/3 +f 1373/1174/3 1411/1175/3 1412/1176/3 +f 1365/1177/3 1413/1178/3 1414/1179/3 +f 1415/1180/4 1416/1181/4 1417/1182/4 +f 1394/1183/21 1418/1184/21 1392/1185/21 +f 1397/1186/24 1419/1187/24 1420/1188/24 +f 1397/1186/2 1421/1189/2 1394/1183/2 +f 1420/1188/153 1418/1190/153 1421/1189/153 +f 1422/1191/13 1423/1192/13 1424/1193/13 +f 1425/1194/1 1426/1195/1 1427/1196/1 +f 1428/1197/154 1429/1198/154 1430/1199/154 +f 1430/1199/155 1431/1200/155 1428/1197/155 +f 1425/1201/156 1432/1202/156 1430/1199/156 +f 1423/1203/157 1431/1200/157 1424/1204/157 +f 1374/1205/2 1433/1206/2 1366/1133/2 +f 1434/1207/5 1435/1208/5 1436/1209/5 +f 1437/1210/2 1438/1211/2 1439/1212/2 +f 1440/1213/4 1436/1209/4 1441/1214/4 +f 1439/1215/13 1434/1207/13 1440/1216/13 +f 1441/1217/1 1435/1208/1 1437/1218/1 +f 1442/1219/4 1443/1220/4 1444/1221/4 +f 1445/1222/1 1446/1223/1 1447/1224/1 +f 1448/1225/5 1449/1226/5 1443/1220/5 +f 1442/1219/13 1450/1227/13 1448/1225/13 +f 1443/1220/1 1451/1228/1 1444/1221/1 +f 1452/1229/41 1453/1230/41 1445/1222/41 +f 1446/1231/5 1454/1232/5 1447/1233/5 +f 1455/1234/13 1454/1235/13 1456/1236/13 +f 1453/1230/38 1457/1237/38 1445/1222/38 +f 1458/1238/40 1446/1231/40 1457/1239/40 +f 1452/1229/39 1454/1240/39 1455/1234/39 +f 1459/1241/1 1460/1242/1 1461/1243/1 +f 1462/1244/158 1463/1245/158 1464/1246/158 +f 1465/1247/159 1466/1248/159 1460/1242/159 +f 1467/1249/4 1468/1250/4 1395/1155/4 +f 1469/1251/22 1470/1252/22 1471/1253/22 +f 1399/1254/23 1472/1255/23 1400/1256/23 +f 1395/1155/22 1473/1257/22 1474/1258/22 +f 1469/1251/22 1473/1257/22 1381/1140/22 +f 1395/1155/22 1471/1253/22 1470/1252/22 +f 1403/1259/24 1475/1260/24 1476/1261/24 +f 1477/1262/23 1404/1263/23 1396/1264/23 +f 1396/1265/23 1478/1266/23 1477/1262/23 +f 1479/1267/23 1478/1266/23 1393/1153/23 +f 1477/1268/160 1480/1269/160 1481/1270/160 +f 1469/1271/23 1482/1272/23 1473/1273/23 +f 1483/1274/161 1484/1275/161 1470/1276/161 +f 1482/1272/22 1485/1277/22 1486/1278/22 +f 1487/1279/5 1401/1280/5 1403/1281/5 +f 1481/1282/23 1488/1283/23 1398/1159/23 +f 1471/1284/162 1489/1285/162 1469/1286/162 +f 1401/1287/23 1490/1288/23 1483/1289/23 +f 1474/1290/163 1482/1291/163 1486/1278/163 +f 1474/1290/24 1485/1277/24 1471/1284/24 +f 1478/1292/21 1491/1293/21 1399/1294/21 +f 1400/1295/22 1492/1296/22 1477/1297/22 +f 1490/1288/22 1487/1279/22 1484/1275/22 +f 1484/1275/24 1487/1279/24 1403/1298/24 +f 1417/1299/1 1493/1300/1 1494/1301/1 +f 1405/1166/3 1495/1302/3 1496/1303/3 +f 1497/1304/3 1402/1305/3 1498/1306/3 +f 1495/1302/3 1499/1307/3 1479/1308/3 +f 1496/1303/3 1500/1309/3 1501/1310/3 +f 1451/1311/2 1450/1312/2 1502/1313/2 +f 1503/1314/1 1504/1315/1 1417/1316/1 +f 1395/1155/4 1505/1317/4 1393/1153/4 +f 1479/1267/4 1505/1317/4 1494/1318/4 +f 1506/1319/23 1498/1320/23 1401/1321/23 +f 1503/1322/4 1507/1323/4 1504/1324/4 +f 1417/1325/5 1507/1326/5 1415/1327/5 +f 1468/1328/3 1503/1329/3 1505/1330/3 +f 1415/1331/13 1507/1332/13 1508/1333/13 +f 1509/1334/13 1500/1335/13 1415/1336/13 +f 1491/1337/21 1495/1338/21 1399/1339/21 +f 1400/1340/22 1510/1341/22 1492/1342/22 +f 1491/1343/23 1479/1267/23 1499/1344/23 +f 1494/1318/4 1493/1345/4 1479/1267/4 +f 1509/1346/4 1467/1249/4 1511/1347/4 +f 1476/1348/22 1475/1349/22 1467/1249/22 +f 1492/1350/23 1510/1351/23 1404/1263/23 +f 1506/1352/22 1512/1353/22 1513/1354/22 +f 1467/1355/3 1402/1305/3 1500/1309/3 +f 1498/1306/3 1512/1356/3 1497/1304/3 +f 1404/1165/3 1472/1357/3 1405/1166/3 +f 1514/1358/2 1515/1359/2 1516/1360/2 +f 1517/1361/4 1518/1362/4 1519/1363/4 +f 1520/1364/1 1521/1365/1 1522/1366/1 +f 1523/1367/13 1524/1368/13 1525/1369/13 +f 1525/1369/23 1526/1370/23 1517/1361/23 +f 1527/1371/21 1515/1359/21 1528/1372/21 +f 1516/1373/24 1529/1374/24 1514/1375/24 +f 1518/1362/22 1522/1366/22 1519/1363/22 +f 1525/1376/3 1530/1377/3 1531/1378/3 +f 1517/1379/3 1532/1380/3 1533/1381/3 +f 1519/1382/3 1534/1383/3 1535/1384/3 +f 1522/1385/3 1536/1386/3 1537/1387/3 +f 1521/1388/3 1538/1389/3 1539/1390/3 +f 1516/1391/3 1540/1392/3 1541/1393/3 +f 1515/1394/3 1542/1395/3 1543/1396/3 +f 1523/1397/3 1544/1398/3 1545/1399/3 +f 1546/1400/3 1547/1401/3 1548/1402/3 +f 1549/1403/5 1550/1404/5 1526/1405/5 +f 1551/1406/5 1552/1407/5 1524/1408/5 +f 1553/1409/5 1554/1410/5 1527/1411/5 +f 1555/1412/5 1556/1413/5 1528/1414/5 +f 1557/1415/5 1558/1416/5 1514/1417/5 +f 1559/1418/5 1560/1419/5 1529/1420/5 +f 1561/1421/5 1562/1422/5 1520/1423/5 +f 1563/1424/5 1564/1425/5 1518/1426/5 +f 1365/1121/1 1512/1353/1 1363/1119/1 +f 1512/1353/1 1381/1140/1 1363/1119/1 +f 1372/1128/21 1375/1427/21 1368/1124/21 +f 1375/1427/21 1366/1122/21 1368/1124/21 +f 1433/1428/21 1385/1429/21 1367/1123/21 +f 1366/1122/21 1433/1428/21 1367/1123/21 +f 1370/1126/13 1396/1264/13 1367/1123/13 +f 1396/1264/13 1404/1263/13 1368/1124/13 +f 1367/1123/13 1396/1264/13 1368/1124/13 +f 1371/1127/2 1375/1427/2 1372/1128/2 +f 1373/1430/24 1365/1121/24 1371/1131/24 +f 1365/1121/164 1364/1120/164 1374/1130/164 +f 1364/1120/165 1565/1431/165 1374/1130/165 +f 1371/1132/39 1374/1205/39 1366/1133/39 +f 1376/1135/4 1396/1264/4 1370/1126/4 +f 1378/1137/1 1383/1142/1 1379/1138/1 +f 1381/1140/1 1390/1150/1 1379/1138/1 +f 1390/1150/1 1380/1139/1 1379/1138/1 +f 1378/1137/151 1388/1432/151 1382/1141/151 +f 1367/1123/5 1386/1145/5 1384/1143/5 +f 1380/1139/5 1389/1433/5 1387/1146/5 +f 1369/1148/152 1384/1434/152 1377/1136/152 +f 1389/1149/152 1380/1435/152 1390/1150/152 +f 1391/1151/4 1390/1150/4 1381/1140/4 +f 1393/1153/153 1397/1157/153 1394/1154/153 +f 1396/1156/153 1376/1436/153 1397/1157/153 +f 1394/1154/153 1392/1437/153 1381/1158/153 +f 1398/1159/5 1488/1283/5 1399/1160/5 +f 1401/1162/22 1498/1438/22 1402/1163/22 +f 1407/1169/3 1368/1168/3 1406/1167/3 +f 1368/1168/3 1404/1165/3 1406/1167/3 +f 1409/1172/3 1372/1171/3 1408/1170/3 +f 1372/1171/3 1368/1168/3 1408/1170/3 +f 1411/1175/3 1373/1174/3 1410/1173/3 +f 1373/1174/3 1372/1171/3 1410/1173/3 +f 1413/1178/3 1365/1177/3 1412/1176/3 +f 1365/1177/3 1373/1174/3 1412/1176/3 +f 1497/1304/3 1512/1356/3 1414/1179/3 +f 1512/1356/3 1365/1177/3 1414/1179/3 +f 1415/1180/4 1500/1439/4 1416/1181/4 +f 1394/1183/21 1421/1189/21 1418/1184/21 +f 1397/1186/24 1376/1440/24 1419/1187/24 +f 1397/1186/2 1420/1188/2 1421/1189/2 +f 1420/1188/153 1419/1441/153 1418/1190/153 +f 1422/1191/13 1566/1442/13 1423/1192/13 +f 1425/1194/1 1429/1198/1 1426/1195/1 +f 1428/1197/154 1423/1192/154 1566/1442/154 +f 1566/1442/154 1429/1198/154 1428/1197/154 +f 1429/1198/154 1425/1194/154 1430/1199/154 +f 1430/1199/155 1432/1202/155 1431/1200/155 +f 1425/1201/156 1427/1443/156 1432/1202/156 +f 1423/1203/157 1428/1197/157 1431/1200/157 +f 1374/1205/2 1565/1444/2 1433/1206/2 +f 1434/1207/5 1438/1211/5 1435/1208/5 +f 1437/1210/2 1435/1208/2 1438/1211/2 +f 1440/1213/4 1434/1207/4 1436/1209/4 +f 1439/1215/13 1438/1211/13 1434/1207/13 +f 1441/1217/1 1436/1209/1 1435/1208/1 +f 1442/1219/4 1448/1225/4 1443/1220/4 +f 1447/1224/1 1452/1229/1 1445/1222/1 +f 1445/1222/1 1457/1445/1 1446/1223/1 +f 1448/1225/5 1450/1446/5 1449/1226/5 +f 1442/1219/13 1502/1447/13 1450/1227/13 +f 1443/1220/1 1449/1448/1 1451/1228/1 +f 1452/1229/41 1455/1234/41 1453/1230/41 +f 1446/1231/5 1456/1236/5 1454/1232/5 +f 1458/1238/13 1453/1230/13 1456/1236/13 +f 1453/1230/13 1455/1234/13 1456/1236/13 +f 1453/1230/38 1458/1449/38 1457/1237/38 +f 1458/1238/40 1456/1236/40 1446/1231/40 +f 1452/1229/39 1447/1450/39 1454/1240/39 +f 1459/1241/1 1465/1451/1 1460/1242/1 +f 1462/1244/158 1567/1452/158 1463/1245/158 +f 1465/1247/159 1568/1453/159 1466/1248/159 +f 1467/1249/4 1509/1346/4 1468/1250/4 +f 1469/1251/22 1483/1454/22 1470/1252/22 +f 1399/1254/23 1495/1455/23 1472/1255/23 +f 1395/1155/22 1381/1140/22 1473/1257/22 +f 1381/1140/22 1512/1353/22 1469/1251/22 +f 1512/1353/22 1506/1352/22 1483/1454/22 +f 1483/1454/22 1469/1251/22 1512/1353/22 +f 1476/1348/22 1467/1249/22 1470/1252/22 +f 1467/1249/22 1395/1155/22 1470/1252/22 +f 1395/1155/22 1474/1258/22 1471/1253/22 +f 1403/1259/24 1402/1456/24 1475/1260/24 +f 1477/1262/23 1492/1350/23 1404/1263/23 +f 1396/1265/23 1393/1153/23 1478/1266/23 +f 1479/1267/23 1491/1343/23 1478/1266/23 +f 1477/1268/160 1478/1292/160 1480/1269/160 +f 1469/1271/23 1489/1457/23 1482/1272/23 +f 1483/1274/161 1490/1458/161 1484/1275/161 +f 1482/1272/22 1489/1457/22 1485/1277/22 +f 1487/1279/5 1569/1459/5 1401/1280/5 +f 1481/1282/23 1480/1269/23 1488/1283/23 +f 1471/1284/162 1485/1277/162 1489/1285/162 +f 1483/1289/23 1506/1460/23 1401/1287/23 +f 1401/1287/23 1569/1459/23 1490/1288/23 +f 1474/1290/163 1473/1461/163 1482/1291/163 +f 1474/1290/24 1486/1278/24 1485/1277/24 +f 1399/1294/21 1488/1283/21 1480/1269/21 +f 1480/1269/21 1478/1292/21 1399/1294/21 +f 1477/1297/22 1481/1282/22 1400/1295/22 +f 1481/1282/22 1398/1159/22 1400/1295/22 +f 1490/1288/22 1569/1459/22 1487/1279/22 +f 1476/1462/24 1470/1276/24 1403/1298/24 +f 1470/1276/24 1484/1275/24 1403/1298/24 +f 1417/1299/1 1416/1463/1 1493/1300/1 +f 1405/1166/3 1472/1357/3 1495/1302/3 +f 1497/1304/3 1501/1310/3 1402/1305/3 +f 1493/1464/3 1416/1465/3 1479/1308/3 +f 1416/1465/3 1496/1303/3 1495/1302/3 +f 1479/1308/3 1416/1465/3 1495/1302/3 +f 1496/1303/3 1416/1465/3 1500/1309/3 +f 1451/1311/2 1449/1466/2 1450/1312/2 +f 1417/1316/1 1494/1467/1 1505/1468/1 +f 1505/1468/1 1503/1314/1 1417/1316/1 +f 1395/1155/4 1468/1250/4 1505/1317/4 +f 1479/1267/4 1393/1153/4 1505/1317/4 +f 1506/1319/23 1513/1469/23 1498/1320/23 +f 1503/1322/4 1508/1470/4 1507/1323/4 +f 1417/1325/5 1504/1471/5 1507/1326/5 +f 1468/1328/3 1508/1472/3 1503/1329/3 +f 1508/1333/13 1468/1473/13 1415/1331/13 +f 1468/1473/13 1509/1474/13 1415/1331/13 +f 1509/1334/13 1511/1475/13 1500/1335/13 +f 1491/1337/21 1499/1476/21 1495/1338/21 +f 1400/1340/22 1472/1477/22 1510/1341/22 +f 1501/1310/3 1500/1309/3 1402/1305/3 +f 1500/1309/3 1511/1478/3 1467/1355/3 +f 1467/1355/3 1475/1479/3 1402/1305/3 +f 1498/1306/3 1513/1480/3 1512/1356/3 +f 1404/1165/3 1510/1481/3 1472/1357/3 +f 1514/1358/2 1528/1372/2 1515/1359/2 +f 1517/1361/4 1526/1370/4 1518/1362/4 +f 1520/1364/1 1529/1374/1 1521/1365/1 +f 1523/1367/13 1527/1371/13 1524/1368/13 +f 1525/1369/23 1524/1368/23 1526/1370/23 +f 1527/1371/21 1523/1367/21 1515/1359/21 +f 1516/1373/24 1521/1365/24 1529/1374/24 +f 1518/1362/22 1520/1364/22 1522/1366/22 +f 1544/1398/3 1523/1397/3 1531/1378/3 +f 1523/1397/3 1525/1376/3 1531/1378/3 +f 1530/1377/3 1525/1376/3 1533/1381/3 +f 1525/1376/3 1517/1379/3 1533/1381/3 +f 1532/1380/3 1517/1379/3 1535/1384/3 +f 1517/1379/3 1519/1382/3 1535/1384/3 +f 1534/1383/3 1519/1382/3 1537/1387/3 +f 1519/1382/3 1522/1385/3 1537/1387/3 +f 1536/1386/3 1522/1385/3 1539/1390/3 +f 1522/1385/3 1521/1388/3 1539/1390/3 +f 1538/1389/3 1521/1388/3 1541/1393/3 +f 1521/1388/3 1516/1391/3 1541/1393/3 +f 1540/1392/3 1516/1391/3 1543/1396/3 +f 1516/1391/3 1515/1394/3 1543/1396/3 +f 1542/1395/3 1515/1394/3 1545/1399/3 +f 1515/1394/3 1523/1397/3 1545/1399/3 +f 1548/1402/3 1570/1482/3 1571/1483/3 +f 1571/1483/3 1572/1484/3 1573/1485/3 +f 1573/1485/3 1574/1486/3 1575/1487/3 +f 1575/1487/3 1576/1488/3 1546/1400/3 +f 1546/1400/3 1577/1489/3 1578/1490/3 +f 1578/1490/3 1579/1491/3 1547/1401/3 +f 1547/1401/3 1580/1492/3 1581/1493/3 +f 1581/1493/3 1582/1494/3 1548/1402/3 +f 1548/1402/3 1571/1483/3 1546/1400/3 +f 1571/1483/3 1573/1485/3 1546/1400/3 +f 1573/1485/3 1575/1487/3 1546/1400/3 +f 1546/1400/3 1578/1490/3 1547/1401/3 +f 1547/1401/3 1581/1493/3 1548/1402/3 +f 1526/1405/5 1524/1408/5 1549/1403/5 +f 1524/1408/5 1552/1407/5 1549/1403/5 +f 1524/1408/5 1527/1411/5 1551/1406/5 +f 1527/1411/5 1554/1410/5 1551/1406/5 +f 1527/1411/5 1528/1414/5 1553/1409/5 +f 1528/1414/5 1556/1413/5 1553/1409/5 +f 1528/1414/5 1514/1417/5 1555/1412/5 +f 1514/1417/5 1558/1416/5 1555/1412/5 +f 1514/1417/5 1529/1420/5 1557/1415/5 +f 1529/1420/5 1560/1419/5 1557/1415/5 +f 1529/1420/5 1520/1423/5 1559/1418/5 +f 1520/1423/5 1562/1422/5 1559/1418/5 +f 1520/1423/5 1518/1426/5 1561/1421/5 +f 1518/1426/5 1564/1425/5 1561/1421/5 +f 1518/1426/5 1526/1405/5 1563/1424/5 +f 1526/1405/5 1550/1404/5 1563/1424/5 +s 1 +f 791/1495/166 792/1496/167 793/1497/168 +f 794/1498/19 795/1499/169 796/1500/170 +f 797/1501/171 798/1502/172 799/1503/173 +f 800/1504/174 801/1505/175 797/1501/171 +f 802/1506/17 793/1497/168 803/1507/176 +f 804/1508/177 795/1499/169 792/1496/167 +f 794/1498/19 798/1502/172 805/1509/178 +f 802/1510/17 806/1511/179 800/1504/174 +f 798/1502/172 807/1512/180 808/1513/181 +f 805/1509/178 809/1514/182 795/1499/169 +f 792/1496/167 810/1515/183 793/1497/168 +f 803/1516/176 811/1517/184 806/1511/179 +f 805/1509/178 808/1513/181 812/1518/185 +f 795/1499/169 813/1519/186 792/1496/167 +f 803/1507/176 810/1515/183 814/1520/14 +f 801/1505/175 811/1517/184 807/1512/180 +f 814/1520/14 815/1521/187 816/1522/5 +f 807/1512/180 817/1523/188 818/1524/189 +f 807/1512/180 819/1525/190 808/1513/181 +f 812/1518/185 820/1526/191 809/1514/182 +f 813/1519/186 815/1521/187 810/1515/183 +f 814/1527/14 817/1523/188 811/1517/184 +f 812/1518/185 819/1525/190 821/1528/3 +f 813/1519/186 820/1526/191 822/1529/192 +f 819/1525/190 823/1530/193 821/1528/3 +f 822/1529/192 824/1531/194 825/1532/195 +f 816/1522/5 826/1533/196 827/1534/197 +f 817/1523/188 828/1535/198 818/1524/189 +f 818/1524/189 829/1536/199 819/1525/190 +f 820/1526/191 823/1530/193 824/1531/194 +f 815/1521/187 825/1532/195 826/1533/196 +f 816/1537/5 830/1538/200 817/1523/188 +f 831/1539/201 46/74/202 832/1540/202 +f 833/1541/203 48/76/204 834/1542/204 +f 835/1543/205 42/70/206 50/78/205 +f 836/1544/207 40/68/208 837/1545/208 +f 831/1539/201 48/942/204 52/80/201 +f 833/1541/203 50/78/205 37/65/203 +f 837/1545/208 42/70/206 838/1546/206 +f 832/1540/202 43/71/207 836/1544/207 +f 54/1547/206 60/89/205 59/88/206 +f 45/73/207 56/85/202 58/87/207 +f 54/1547/206 64/948/208 738/1548/208 +f 47/75/201 56/85/202 44/72/202 +f 55/1549/207 64/93/208 66/96/207 +f 49/81/204 62/91/201 47/75/201 +f 55/1549/207 68/98/202 739/1550/202 +f 39/67/209 61/94/204 49/77/204 +f 51/79/208 58/87/207 71/101/208 +f 53/1551/203 60/89/205 737/1552/205 +f 51/79/208 69/99/206 41/69/206 +f 53/1551/203 70/100/204 57/86/203 +f 38/66/205 69/99/206 65/95/205 +f 740/1553/201 70/100/204 741/1554/204 +f 38/66/205 63/92/209 39/67/209 +f 740/1553/201 68/98/202 67/97/201 +f 839/1555/210 82/114/211 840/1556/211 +f 841/1557/202 88/120/212 842/1558/212 +f 843/1559/213 93/127/214 844/1560/214 +f 845/1561/205 96/130/215 846/1562/215 +f 840/1556/211 87/119/202 841/1557/202 +f 842/1558/212 91/124/213 843/1563/213 +f 844/1560/214 95/129/205 845/1561/205 +f 846/1562/215 80/112/210 839/1555/210 +f 98/951/210 103/962/211 81/113/211 +f 85/1564/213 111/157/212 742/1565/212 +f 84/1566/214 101/136/213 85/1567/213 +f 81/957/211 747/963/202 86/118/202 +f 83/1568/205 99/139/214 84/1569/214 +f 86/121/202 104/140/212 89/122/212 +f 746/1570/215 102/141/205 83/1571/205 +f 89/958/212 106/143/213 90/123/213 +f 97/961/215 100/969/210 98/133/210 +f 742/1572/212 110/154/202 743/1573/202 +f 94/131/205 113/968/215 97/132/215 +f 743/1574/202 109/151/211 744/1575/211 +f 92/960/214 112/967/205 94/128/205 +f 744/1576/211 107/147/210 745/1577/210 +f 90/959/213 108/146/214 92/126/214 +f 745/1578/210 105/144/215 746/1579/215 +f 847/1580/216 848/1581/217 849/1582/218 +f 850/1583/219 851/1584/220 852/1585/221 +f 853/1586/222 854/1587/223 855/1588/224 +f 856/1589/225 857/1590/226 858/1591/227 +f 857/1590/226 853/1586/222 855/1588/224 +f 859/1592/228 856/1589/225 858/1591/227 +f 860/1593/229 861/1594/230 853/1586/222 +f 862/1595/231 863/1596/232 856/1589/225 +f 853/1586/222 864/1597/233 865/1598/234 +f 863/1596/232 860/1593/229 856/1589/225 +f 866/1599/235 867/1600/223 868/1601/224 +f 869/1602/236 870/1603/226 871/1604/227 +f 870/1603/226 866/1599/235 868/1601/224 +f 872/1605/231 871/1604/227 873/1606/237 +f 874/1607/229 875/1608/230 866/1599/235 +f 872/1605/231 876/1609/232 869/1602/236 +f 875/1608/230 877/1610/234 866/1599/235 +f 876/1609/232 874/1607/229 869/1602/236 +f 878/1611/222 879/1612/223 880/1613/224 +f 881/1614/236 882/1615/226 883/1616/227 +f 882/1615/226 878/1611/222 880/1613/224 +f 884/1617/231 883/1616/227 885/1618/228 +f 886/1619/229 887/1620/230 878/1611/222 +f 888/1621/238 881/1614/236 884/1617/231 +f 878/1611/222 889/1622/233 890/1623/234 +f 891/1624/232 886/1619/229 881/1614/236 +f 854/1587/223 892/1625/4 855/1588/224 +f 867/1600/223 893/1626/4 868/1601/224 +f 855/1588/224 894/1627/22 857/1590/226 +f 857/1590/226 895/1628/1 858/1591/227 +f 879/1612/223 896/1629/4 880/1613/224 +f 868/1601/224 897/1630/22 870/1603/226 +f 858/1591/227 898/1631/214 859/1592/228 +f 870/1603/226 899/1632/1 871/1604/227 +f 880/1613/224 900/1633/22 882/1615/226 +f 882/1615/226 901/1634/1 883/1616/227 +f 871/1604/227 902/1635/214 873/1606/237 +f 883/1616/227 903/1636/214 885/1618/228 +f 847/1580/216 851/1584/220 904/1637/239 +f 905/1638/240 848/1581/217 906/1639/241 +f 904/1637/239 907/1640/242 908/1641/243 +f 906/1639/241 909/1642/244 910/1643/245 +f 851/1584/220 911/1644/246 907/1640/242 +f 904/1637/239 909/1642/244 848/1581/217 +f 912/1645/219 913/1646/247 914/1647/221 +f 915/1648/216 916/1649/248 917/1650/218 +f 915/1648/216 913/1646/247 918/1651/239 +f 917/1650/218 919/1652/241 920/1653/249 +f 918/1651/239 921/1654/242 922/1655/243 +f 919/1652/241 923/1656/244 924/1657/245 +f 925/1658/250 921/1654/242 913/1646/247 +f 918/1651/239 923/1656/244 916/1649/248 +f 926/1659/219 927/1660/220 928/1661/221 +f 929/1662/216 930/1663/248 931/1664/218 +f 929/1662/216 927/1660/220 932/1665/239 +f 931/1664/218 933/1666/241 934/1667/240 +f 932/1665/239 935/1668/242 936/1669/243 +f 930/1663/248 937/1670/245 933/1666/241 +f 927/1660/220 938/1671/246 935/1668/242 +f 932/1665/239 939/1672/244 930/1663/248 +f 940/1673/4 850/1583/219 852/1585/221 +f 941/1674/4 912/1645/219 914/1647/221 +f 942/1675/23 852/1585/221 847/1580/216 +f 943/1676/13 847/1580/216 849/1582/218 +f 944/1677/4 926/1659/219 928/1661/221 +f 945/1678/23 914/1647/221 915/1648/216 +f 946/1679/202 849/1582/218 905/1638/240 +f 947/1680/13 915/1648/216 917/1650/218 +f 948/1681/23 928/1661/221 929/1662/216 +f 949/1682/13 929/1662/216 931/1664/218 +f 950/1683/202 917/1650/218 920/1653/249 +f 951/1684/202 931/1664/218 934/1667/240 +f 952/1685/251 953/1686/252 954/1687/253 +f 955/1688/15 956/1689/254 957/1690/255 +f 958/1691/256 959/1692/257 960/1693/258 +f 961/1694/259 962/1695/260 958/1691/256 +f 963/1696/16 954/1687/253 964/1697/261 +f 957/1690/255 953/1686/252 965/1698/262 +f 955/1688/15 959/1692/257 966/1699/263 +f 963/1700/16 967/1701/264 961/1694/259 +f 959/1692/257 968/1702/265 969/1703/266 +f 966/1699/263 970/1704/267 956/1689/254 +f 953/1686/252 971/1705/268 954/1687/253 +f 964/1706/261 972/1707/269 967/1701/264 +f 966/1699/263 969/1703/266 973/1708/18 +f 956/1689/254 974/1709/270 953/1686/252 +f 964/1697/261 971/1705/268 975/1710/20 +f 962/1695/260 972/1707/269 968/1702/265 +f 975/1710/20 976/1711/188 977/1712/5 +f 968/1702/265 978/1713/187 979/1714/192 +f 968/1702/265 980/1715/271 969/1703/266 +f 973/1708/18 981/1716/272 970/1704/267 +f 974/1709/270 976/1711/188 971/1705/268 +f 975/1717/20 978/1713/187 972/1707/269 +f 973/1708/18 980/1715/271 982/1718/3 +f 974/1709/270 981/1716/272 983/1719/189 +f 980/1715/271 984/1720/273 982/1718/3 +f 983/1719/189 985/1721/274 986/1722/275 +f 977/1712/5 987/1723/276 988/1724/277 +f 978/1713/187 989/1725/278 979/1714/192 +f 979/1714/192 990/1726/279 980/1715/271 +f 981/1716/272 984/1720/273 985/1721/274 +f 976/1711/188 986/1722/275 987/1723/276 +f 977/1727/5 991/1728/280 978/1713/187 +f 992/1729/281 372/529/205 993/1730/205 +f 994/1731/282 374/531/283 995/1732/283 +f 996/1733/202 368/525/284 376/533/202 +f 997/1734/285 366/523/286 998/1735/286 +f 992/1729/281 374/1037/283 378/535/281 +f 994/1731/282 376/533/202 363/520/282 +f 998/1735/286 368/525/284 999/1736/284 +f 993/1730/205 369/526/285 997/1734/285 +f 380/1737/284 386/544/202 385/543/284 +f 371/528/285 382/540/205 384/542/285 +f 380/1737/284 390/1043/286 754/1738/286 +f 373/530/281 382/540/205 370/527/205 +f 381/1739/285 390/548/286 392/551/285 +f 375/536/283 388/546/281 373/530/281 +f 381/1739/285 391/550/205 755/1740/205 +f 365/522/287 387/549/283 375/532/283 +f 377/534/286 384/542/285 397/556/286 +f 379/1741/282 386/544/202 753/1742/202 +f 377/534/286 395/554/284 367/524/284 +f 379/1741/282 396/555/283 383/541/282 +f 364/521/202 395/554/284 393/552/202 +f 756/1743/281 396/555/283 757/1744/283 +f 364/521/202 389/547/287 365/522/287 +f 756/1743/281 391/550/205 394/553/281 +f 1000/1745/288 1001/1746/289 1002/1747/290 +f 1003/1748/291 1004/1749/292 1005/1750/293 +f 1006/1751/294 1007/1752/295 1008/1753/296 +f 1009/1754/297 1010/1755/298 1006/1751/294 +f 1011/1756/299 1002/1747/290 1012/1757/300 +f 1005/1750/293 1001/1746/289 1013/1758/301 +f 1003/1748/291 1007/1752/295 1014/1759/302 +f 1011/1760/299 1015/1761/303 1009/1754/297 +f 1007/1752/295 1016/1762/304 1017/1763/305 +f 1014/1759/302 1018/1764/306 1004/1749/292 +f 1001/1746/289 1019/1765/307 1002/1747/290 +f 1012/1766/300 1020/1767/308 1015/1761/303 +f 1014/1759/302 1017/1763/305 1021/1768/309 +f 1004/1749/292 1022/1769/310 1001/1746/289 +f 1012/1757/300 1019/1765/307 1023/1770/311 +f 1010/1755/298 1020/1767/308 1016/1762/304 +f 1023/1770/311 1024/1771/312 1025/1772/5 +f 1016/1762/304 1026/1773/313 1027/1774/314 +f 1016/1762/304 1028/1775/315 1017/1763/305 +f 1021/1768/309 1029/1776/316 1018/1764/306 +f 1022/1769/310 1024/1771/312 1019/1765/307 +f 1023/1777/311 1026/1773/313 1020/1767/308 +f 1021/1768/309 1028/1775/315 1030/1778/3 +f 1022/1769/310 1029/1776/316 1031/1779/317 +f 1028/1775/315 1032/1780/318 1030/1778/3 +f 1031/1779/317 1033/1781/319 1034/1782/320 +f 1025/1772/5 1035/1783/321 1036/1784/322 +f 1026/1773/313 1037/1785/323 1027/1774/314 +f 1027/1774/314 1038/1786/324 1028/1775/315 +f 1029/1776/316 1032/1780/318 1033/1781/319 +f 1024/1771/312 1034/1782/320 1035/1783/321 +f 1025/1787/5 1039/1788/325 1026/1773/313 +f 1040/1789/326 407/566/213 1041/1790/213 +f 1042/1791/327 409/568/328 1043/1792/328 +f 1044/1793/210 403/562/329 411/570/210 +f 1045/1794/330 401/560/331 1046/1795/331 +f 1040/1789/326 409/1044/328 413/572/326 +f 1042/1791/327 411/570/210 398/557/327 +f 1047/1796/329 401/560/331 403/562/329 +f 1041/1790/213 404/563/330 1045/1794/330 +f 415/1797/329 421/581/210 420/580/329 +f 406/565/330 417/577/213 419/579/330 +f 415/1797/329 425/1050/331 759/1798/331 +f 408/567/326 417/577/213 405/564/213 +f 416/1799/330 425/585/331 427/588/330 +f 410/573/328 423/583/326 408/567/326 +f 416/1799/330 429/590/213 760/1800/213 +f 400/559/332 422/586/328 410/569/328 +f 412/571/331 419/579/330 432/593/331 +f 414/1801/327 421/581/210 758/1802/210 +f 412/571/331 430/591/333 402/561/329 +f 414/1801/327 431/592/328 418/578/327 +f 402/561/329 426/587/210 399/558/210 +f 761/1803/326 431/592/328 762/1804/328 +f 399/558/210 424/584/332 400/559/332 +f 761/1803/326 429/590/213 428/589/326 +f 1048/1805/334 1049/1806/335 1050/1807/336 +f 1051/1808/337 1052/1809/338 1053/1810/339 +f 1054/1811/340 1055/1812/341 1056/1813/342 +f 1057/1814/343 1058/1815/344 1054/1811/340 +f 1059/1816/345 1050/1807/336 1060/1817/346 +f 1061/1818/347 1052/1809/338 1049/1806/335 +f 1051/1808/337 1055/1812/341 1062/1819/348 +f 1059/1820/345 1063/1821/349 1057/1814/343 +f 1055/1812/341 1064/1822/350 1065/1823/351 +f 1062/1819/348 1066/1824/352 1052/1809/338 +f 1049/1806/335 1067/1825/353 1050/1807/336 +f 1060/1826/346 1068/1827/354 1063/1821/349 +f 1062/1819/348 1065/1823/351 1069/1828/355 +f 1052/1809/338 1070/1829/356 1049/1806/335 +f 1060/1817/346 1067/1825/353 1071/1830/357 +f 1058/1815/344 1068/1827/354 1064/1822/350 +f 1071/1830/357 1072/1831/313 1073/1832/5 +f 1064/1822/350 1074/1833/312 1075/1834/317 +f 1064/1822/350 1076/1835/358 1065/1823/351 +f 1069/1828/355 1077/1836/359 1066/1824/352 +f 1070/1829/356 1072/1831/313 1067/1825/353 +f 1071/1837/357 1074/1833/312 1068/1827/354 +f 1069/1828/355 1076/1835/358 1078/1838/3 +f 1070/1829/356 1077/1836/359 1079/1839/314 +f 1076/1835/358 1080/1840/360 1078/1838/3 +f 1079/1839/314 1081/1841/361 1082/1842/362 +f 1073/1832/5 1083/1843/363 1084/1844/364 +f 1074/1833/312 1085/1845/365 1075/1834/317 +f 1075/1834/317 1086/1846/366 1076/1835/358 +f 1077/1836/359 1080/1840/360 1081/1841/361 +f 1072/1831/313 1082/1842/362 1083/1843/363 +f 1073/1847/5 1087/1848/367 1074/1833/312 +f 1088/1849/368 442/603/210 1089/1850/210 +f 1090/1851/369 444/605/370 1091/1852/370 +f 1092/1853/213 438/599/371 446/607/213 +f 1093/1854/372 439/600/373 436/597/372 +f 1088/1849/368 444/1051/370 448/609/368 +f 1090/1851/369 446/607/213 433/594/369 +f 1093/1854/372 438/599/371 1094/1855/371 +f 1089/1850/210 439/600/373 1095/1856/373 +f 450/1857/371 456/618/213 455/617/371 +f 441/602/373 452/614/210 454/616/373 +f 450/1857/371 460/1057/372 764/1858/372 +f 443/604/368 452/614/210 440/601/210 +f 451/1859/373 460/622/372 462/625/373 +f 445/610/370 458/620/368 443/604/368 +f 451/1859/373 464/627/210 765/1860/210 +f 435/596/374 457/623/370 445/606/370 +f 447/608/372 454/616/373 467/630/372 +f 449/1861/369 456/618/213 763/1862/213 +f 447/608/372 465/628/375 437/598/375 +f 449/1861/369 466/629/370 453/615/369 +f 437/598/375 461/624/213 434/595/213 +f 766/1863/368 466/629/370 767/1864/370 +f 434/595/213 459/621/374 435/596/374 +f 766/1863/368 464/627/210 463/626/368 +f 1096/1865/376 1097/1866/377 1098/1867/378 +f 1099/1868/379 1100/1869/380 1101/1870/381 +f 1102/1871/382 1103/1872/383 1104/1873/384 +f 1105/1874/385 1106/1875/386 1102/1871/382 +f 1107/1876/387 1098/1867/378 1108/1877/388 +f 1109/1878/389 1100/1869/380 1097/1866/377 +f 1099/1868/379 1103/1872/383 1110/1879/390 +f 1107/1880/387 1111/1881/391 1105/1874/385 +f 1103/1872/383 1112/1882/392 1113/1883/393 +f 1110/1879/390 1114/1884/394 1100/1869/380 +f 1097/1866/377 1115/1885/395 1098/1867/378 +f 1108/1886/388 1116/1887/396 1111/1881/391 +f 1110/1879/390 1113/1883/393 1117/1888/243 +f 1100/1869/380 1118/1889/397 1097/1866/377 +f 1108/1877/388 1115/1885/395 1119/1890/398 +f 1106/1875/386 1116/1887/396 1112/1882/392 +f 1119/1890/398 1120/1891/399 1121/1892/5 +f 1112/1882/392 1122/1893/400 1123/1894/401 +f 1112/1882/392 1124/1895/402 1113/1883/393 +f 1117/1888/243 1125/1896/403 1114/1884/394 +f 1118/1889/397 1120/1891/399 1115/1885/395 +f 1119/1897/398 1122/1893/400 1116/1887/396 +f 1117/1888/243 1124/1895/402 1126/1898/3 +f 1118/1889/397 1125/1896/403 1127/1899/404 +f 1124/1895/402 1128/1900/405 1126/1898/3 +f 1127/1899/404 1129/1901/406 1130/1902/407 +f 1121/1892/5 1131/1903/408 1132/1904/409 +f 1122/1893/400 1133/1905/410 1123/1894/401 +f 1123/1894/401 1134/1906/411 1124/1895/402 +f 1125/1896/403 1128/1900/405 1129/1901/406 +f 1120/1891/399 1130/1902/407 1131/1903/408 +f 1121/1907/5 1135/1908/412 1122/1893/400 +f 1136/1909/413 477/640/212 1137/1910/212 +f 1138/1911/414 479/642/415 1139/1912/415 +f 1140/1913/215 473/636/416 481/644/215 +f 1141/1914/417 471/634/418 1142/1915/418 +f 1136/1909/413 479/1058/415 483/646/413 +f 1138/1911/414 481/644/215 468/631/414 +f 1143/1916/416 471/634/418 473/636/416 +f 1137/1910/212 474/637/417 1141/1914/417 +f 485/1917/416 491/655/215 490/654/419 +f 476/639/417 487/651/212 489/653/417 +f 485/1917/416 495/1064/418 769/1918/418 +f 478/641/413 487/651/212 475/638/212 +f 486/1919/417 495/659/418 497/662/417 +f 480/647/415 493/657/413 478/641/413 +f 486/1919/417 499/664/212 770/1920/212 +f 470/633/420 492/660/415 480/643/415 +f 482/645/418 489/653/417 502/667/418 +f 484/1921/414 491/655/215 768/1922/215 +f 482/645/418 500/665/416 472/635/419 +f 484/1921/414 501/666/415 488/652/414 +f 472/635/419 496/661/215 469/632/215 +f 771/1923/413 501/666/415 772/1924/415 +f 469/632/215 494/658/420 470/633/420 +f 771/1923/413 499/664/212 498/663/413 +f 1144/1925/421 1145/1926/422 1146/1927/423 +f 1147/1928/424 1148/1929/425 1149/1930/426 +f 1150/1931/427 1151/1932/428 1152/1933/429 +f 1153/1934/430 1154/1935/431 1150/1931/427 +f 1155/1936/432 1146/1927/423 1156/1937/433 +f 1157/1938/434 1148/1929/425 1145/1926/422 +f 1152/1933/429 1158/1939/435 1147/1928/424 +f 1155/1940/432 1159/1941/436 1153/1934/430 +f 1151/1932/428 1160/1942/437 1161/1943/438 +f 1158/1939/435 1162/1944/439 1148/1929/425 +f 1145/1926/422 1163/1945/440 1146/1927/423 +f 1156/1946/433 1164/1947/441 1159/1941/436 +f 1158/1939/435 1161/1943/438 1165/1948/442 +f 1148/1929/425 1166/1949/443 1145/1926/422 +f 1156/1937/433 1163/1945/440 1167/1950/444 +f 1154/1935/431 1164/1947/441 1160/1942/437 +f 1163/1945/440 1168/1951/5 1167/1950/444 +f 1160/1942/437 1169/1952/399 1170/1953/404 +f 1160/1942/437 1171/1954/403 1161/1943/438 +f 1165/1948/442 1172/1955/402 1162/1944/439 +f 1166/1949/443 1173/1956/400 1163/1945/440 +f 1167/1957/444 1169/1952/399 1164/1947/441 +f 1165/1948/442 1171/1954/403 1174/1958/3 +f 1166/1949/443 1172/1955/402 1175/1959/401 +f 1171/1954/403 1176/1960/445 1174/1958/3 +f 1175/1959/401 1177/1961/446 1178/1962/447 +f 1168/1951/5 1179/1963/448 1180/1964/449 +f 1169/1952/399 1181/1965/450 1170/1953/404 +f 1170/1953/404 1182/1966/451 1171/1954/403 +f 1172/1955/402 1176/1960/445 1177/1961/446 +f 1173/1956/400 1178/1962/447 1179/1963/448 +f 1168/1967/5 1183/1968/452 1169/1952/399 +f 1184/1969/453 512/677/215 1185/1970/215 +f 1186/1971/454 514/679/455 1187/1972/455 +f 1188/1973/212 508/673/456 516/681/212 +f 1189/1974/457 506/671/458 1190/1975/458 +f 1184/1969/453 514/1065/455 518/683/453 +f 1186/1971/454 516/681/212 503/668/454 +f 1190/1975/458 508/673/456 1191/1976/456 +f 1185/1970/215 509/674/457 1189/1974/457 +f 520/1977/456 526/692/212 525/691/456 +f 511/676/457 522/688/215 524/690/457 +f 520/1977/456 530/1071/458 774/1978/458 +f 510/675/215 528/694/453 522/688/215 +f 521/1979/457 530/696/458 532/699/457 +f 515/684/455 528/694/453 513/678/453 +f 521/1979/457 534/701/215 775/1980/215 +f 505/670/454 527/697/455 515/680/455 +f 517/682/458 524/690/457 537/704/458 +f 519/1981/454 526/692/212 773/1982/212 +f 517/682/458 535/702/459 507/672/459 +f 519/1981/454 536/703/455 523/689/454 +f 507/672/459 531/698/212 504/669/212 +f 776/1983/453 536/703/455 777/1984/455 +f 504/669/212 529/695/454 505/670/454 +f 776/1983/453 534/701/215 533/700/453 +f 1192/1985/460 1193/1986/461 1194/1987/462 +f 1195/1988/463 1196/1989/464 1197/1990/465 +f 1198/1991/466 1199/1992/467 1200/1993/468 +f 1201/1994/469 1202/1995/470 1198/1991/466 +f 1203/1996/471 1194/1987/462 1204/1997/472 +f 1197/1990/465 1193/1986/461 1205/1998/473 +f 1195/1988/463 1199/1992/467 1206/1999/474 +f 1203/2000/471 1207/2001/475 1201/1994/469 +f 1199/1992/467 1208/2002/476 1209/2003/477 +f 1206/1999/474 1210/2004/478 1196/1989/464 +f 1193/1986/461 1211/2005/479 1194/1987/462 +f 1204/2006/472 1212/2007/480 1207/2001/475 +f 1206/1999/474 1209/2003/477 1213/2008/481 +f 1196/1989/464 1214/2009/482 1193/1986/461 +f 1204/1997/472 1211/2005/479 1215/2010/483 +f 1202/1995/470 1212/2007/480 1208/2002/476 +f 1215/2010/483 1216/2011/484 1217/2012/5 +f 1208/2002/476 1218/2013/485 1219/2014/486 +f 1208/2002/476 1220/2015/487 1209/2003/477 +f 1213/2008/481 1221/2016/488 1210/2004/478 +f 1214/2009/482 1216/2011/484 1211/2005/479 +f 1215/2017/483 1218/2013/485 1212/2007/480 +f 1213/2008/481 1220/2015/487 1222/2018/3 +f 1214/2009/482 1221/2016/488 1223/2019/489 +f 1220/2015/487 1224/2020/490 1222/2018/3 +f 1223/2019/489 1225/2021/491 1226/2022/492 +f 1217/2012/5 1227/2023/493 1228/2024/494 +f 1218/2013/485 1229/2025/495 1219/2014/486 +f 1219/2014/486 1230/2026/496 1220/2015/487 +f 1221/2016/488 1224/2020/490 1225/2021/491 +f 1216/2011/484 1226/2022/492 1227/2023/493 +f 1217/2027/5 1231/2028/497 1218/2013/485 +f 1232/2029/498 547/714/214 1233/2030/214 +f 1234/2031/499 549/716/500 1235/2032/500 +f 1236/2033/211 543/710/501 551/718/211 +f 1237/2034/502 541/708/503 1238/2035/503 +f 1232/2029/498 549/1072/500 553/720/498 +f 1234/2031/499 551/718/211 538/705/499 +f 1238/2035/503 543/710/501 1239/2036/501 +f 1233/2030/214 544/711/502 1237/2034/502 +f 555/2037/501 561/729/211 560/728/504 +f 546/713/502 557/725/214 559/727/502 +f 555/2037/501 565/1078/503 779/2038/503 +f 548/715/498 557/725/214 545/712/214 +f 556/2039/502 565/733/503 567/736/502 +f 550/721/500 563/731/498 548/715/498 +f 556/2039/502 569/738/214 780/2040/214 +f 540/707/499 562/734/500 550/717/500 +f 552/719/503 559/727/502 572/741/503 +f 554/2041/499 561/729/211 778/2042/211 +f 552/719/503 570/739/501 542/709/501 +f 554/2041/499 571/740/500 558/726/499 +f 542/709/501 566/735/211 539/706/211 +f 781/2043/498 571/740/500 782/2044/500 +f 539/706/211 564/732/499 540/707/499 +f 781/2043/498 569/738/214 568/737/498 +f 1240/2045/505 1241/2046/506 1242/2047/507 +f 1243/2048/508 1244/2049/509 1245/2050/510 +f 1246/2051/511 1247/2052/512 1248/2053/513 +f 1249/2054/514 1250/2055/515 1246/2051/511 +f 1251/2056/516 1242/2047/507 1252/2057/517 +f 1253/2058/518 1244/2049/509 1241/2046/506 +f 1243/2048/508 1247/2052/512 1254/2059/519 +f 1251/2060/516 1255/2061/520 1249/2054/514 +f 1247/2052/512 1256/2062/521 1257/2063/522 +f 1254/2059/519 1258/2064/523 1244/2049/509 +f 1241/2046/506 1259/2065/524 1242/2047/507 +f 1252/2066/517 1260/2067/525 1255/2061/520 +f 1247/2052/512 1261/2068/526 1254/2059/519 +f 1244/2049/509 1262/2069/527 1241/2046/506 +f 1252/2057/517 1259/2065/524 1263/2070/528 +f 1250/2055/515 1260/2067/525 1256/2062/521 +f 1263/2070/528 1264/2071/485 1265/2072/5 +f 1256/2062/521 1266/2073/484 1267/2074/489 +f 1256/2062/521 1268/2075/488 1257/2063/522 +f 1261/2068/526 1269/2076/487 1258/2064/523 +f 1262/2069/527 1264/2071/485 1259/2065/524 +f 1263/2077/528 1266/2073/484 1260/2067/525 +f 1261/2068/526 1268/2075/488 1270/2078/3 +f 1262/2069/527 1269/2076/487 1271/2079/486 +f 1268/2075/488 1272/2080/529 1270/2078/3 +f 1271/2079/486 1273/2081/530 1274/2082/531 +f 1265/2072/5 1275/2083/532 1276/2084/533 +f 1266/2073/484 1277/2085/534 1267/2074/489 +f 1267/2074/489 1278/2086/535 1268/2075/488 +f 1269/2076/487 1272/2080/529 1273/2081/530 +f 1264/2071/485 1274/2082/531 1275/2083/532 +f 1265/2087/5 1279/2088/536 1266/2073/484 +f 1280/2089/537 583/752/211 1281/2090/211 +f 1282/2091/538 584/753/539 1283/2092/539 +f 1284/2093/214 578/747/540 586/755/214 +f 1285/2094/541 579/748/542 576/745/541 +f 1280/2089/537 584/1079/539 582/751/537 +f 1282/2091/538 586/755/214 573/742/538 +f 1286/2095/540 576/745/541 578/747/540 +f 1281/2090/211 579/748/542 1287/2096/542 +f 590/2097/540 596/766/214 595/765/543 +f 581/750/542 592/762/211 594/764/542 +f 590/2097/540 600/1085/541 784/2098/541 +f 580/749/211 598/768/537 592/762/211 +f 591/2099/542 600/770/541 602/773/542 +f 585/757/539 598/768/537 588/758/544 +f 591/2099/542 604/775/211 785/2100/211 +f 575/744/545 597/771/539 585/754/539 +f 587/756/541 594/764/542 607/778/541 +f 589/2101/538 596/766/214 783/2102/214 +f 587/756/541 605/776/540 577/746/543 +f 589/2101/538 606/777/539 593/763/538 +f 577/746/543 601/772/214 574/743/214 +f 786/2103/537 606/777/539 787/2104/539 +f 574/743/214 599/769/538 575/744/545 +f 786/2103/537 604/775/211 603/774/537 +f 1288/2105/4 1289/2106/546 1290/2107/23 +f 1291/2108/205 1292/2109/547 1293/2110/22 +f 1290/2107/23 1294/2111/548 1295/2112/211 +f 1293/2110/22 1296/2113/549 1288/2105/4 +f 1292/2109/547 1297/2114/550 1298/2115/551 +f 1289/2106/546 1299/2116/552 1294/2111/548 +f 1292/2109/547 1300/2117/38 1296/2113/549 +f 1289/2106/546 1300/2117/38 1301/2118/553 +f 1300/2117/38 1302/2119/554 1301/2118/553 +f 1298/2115/551 1303/2120/555 1304/2121/556 +f 1301/2118/553 1305/2122/557 1299/2116/552 +f 1300/2117/38 1304/2121/556 1306/2123/185 +f 1307/2124/4 1308/2125/546 1309/2126/23 +f 1310/2127/205 1311/2128/547 1312/2129/22 +f 1309/2126/23 1313/2130/548 1314/2131/211 +f 1312/2129/22 1315/2132/549 1307/2124/4 +f 1311/2128/547 1316/2133/550 1317/2134/551 +f 1308/2125/546 1318/2135/552 1313/2130/548 +f 1311/2128/547 1319/2136/38 1315/2132/549 +f 1308/2125/546 1319/2136/38 1320/2137/553 +f 1319/2136/38 1321/2138/554 1320/2137/553 +f 1317/2134/551 1322/2139/555 1323/2140/556 +f 1320/2137/553 1324/2141/557 1318/2135/552 +f 1317/2134/551 1325/2142/185 1319/2136/38 +f 1326/2143/4 1327/2144/546 1328/2145/23 +f 1329/2146/205 1330/2147/547 1331/2148/22 +f 1328/2145/23 1332/2149/548 1333/2150/211 +f 1331/2148/22 1334/2151/549 1326/2143/4 +f 1330/2147/547 1335/2152/550 1336/2153/551 +f 1327/2144/546 1337/2154/552 1332/2149/548 +f 1330/2147/547 1338/2155/38 1334/2151/549 +f 1327/2144/546 1338/2155/38 1339/2156/553 +f 1338/2155/38 1340/2157/554 1339/2156/553 +f 1336/2153/551 1341/2158/555 1342/2159/556 +f 1339/2156/553 1343/2160/557 1337/2154/552 +f 1336/2153/551 1344/2161/185 1338/2155/38 +f 791/1495/166 804/1508/177 792/1496/167 +f 794/1498/19 805/1509/178 795/1499/169 +f 797/1501/171 801/1505/175 798/1502/172 +f 800/1504/174 806/1511/179 801/1505/175 +f 802/1506/17 791/1495/166 793/1497/168 +f 804/1508/177 796/1500/170 795/1499/169 +f 794/1498/19 799/1503/173 798/1502/172 +f 802/1510/17 803/1516/176 806/1511/179 +f 798/1502/172 801/1505/175 807/1512/180 +f 805/1509/178 812/1518/185 809/1514/182 +f 792/1496/167 813/1519/186 810/1515/183 +f 803/1516/176 814/1527/14 811/1517/184 +f 805/1509/178 798/1502/172 808/1513/181 +f 795/1499/169 809/1514/182 813/1519/186 +f 803/1507/176 793/1497/168 810/1515/183 +f 801/1505/175 806/1511/179 811/1517/184 +f 814/1520/14 810/1515/183 815/1521/187 +f 807/1512/180 811/1517/184 817/1523/188 +f 807/1512/180 818/1524/189 819/1525/190 +f 812/1518/185 821/1528/3 820/1526/191 +f 813/1519/186 822/1529/192 815/1521/187 +f 814/1527/14 816/1537/5 817/1523/188 +f 812/1518/185 808/1513/181 819/1525/190 +f 813/1519/186 809/1514/182 820/1526/191 +f 819/1525/190 829/1536/199 823/1530/193 +f 822/1529/192 820/1526/191 824/1531/194 +f 816/1522/5 815/1521/187 826/1533/196 +f 817/1523/188 830/1538/200 828/1535/198 +f 818/1524/189 828/1535/198 829/1536/199 +f 820/1526/191 821/1528/3 823/1530/193 +f 815/1521/187 822/1529/192 825/1532/195 +f 816/1537/5 827/2162/197 830/1538/200 +f 831/1539/201 52/80/201 46/74/202 +f 833/1541/203 37/65/203 48/76/204 +f 835/1543/205 838/1546/206 42/70/206 +f 836/1544/207 43/71/207 40/68/208 +f 831/1539/201 834/2163/204 48/942/204 +f 833/1541/203 835/1543/205 50/78/205 +f 837/1545/208 40/68/208 42/70/206 +f 832/1540/202 46/74/202 43/71/207 +f 54/1547/206 737/1552/205 60/89/205 +f 45/73/207 44/72/202 56/85/202 +f 54/1547/206 59/88/206 64/948/208 +f 47/75/201 62/91/201 56/85/202 +f 55/1549/207 738/2164/208 64/93/208 +f 49/81/204 61/90/204 62/91/201 +f 55/1549/207 66/96/207 68/98/202 +f 39/67/209 63/92/209 61/94/204 +f 51/79/208 45/73/207 58/87/207 +f 53/1551/203 57/86/203 60/89/205 +f 51/79/208 71/101/208 69/99/206 +f 53/1551/203 741/1554/204 70/100/204 +f 38/66/205 41/69/206 69/99/206 +f 740/1553/201 67/97/201 70/100/204 +f 38/66/205 65/95/205 63/92/209 +f 740/1553/201 739/1550/202 68/98/202 +f 839/1555/210 80/112/210 82/114/211 +f 841/1557/202 87/119/202 88/120/212 +f 843/1559/213 91/125/213 93/127/214 +f 845/1561/205 95/129/205 96/130/215 +f 840/1556/211 82/114/211 87/119/202 +f 842/1558/212 88/120/212 91/124/213 +f 844/1560/214 93/127/214 95/129/205 +f 846/1562/215 96/130/215 80/112/210 +f 98/951/210 100/135/210 103/962/211 +f 85/1564/213 101/155/213 111/157/212 +f 84/1566/214 99/134/214 101/136/213 +f 81/957/211 103/138/211 747/963/202 +f 83/1568/205 102/137/205 99/139/214 +f 86/121/202 747/964/202 104/140/212 +f 746/1570/215 105/142/215 102/141/205 +f 89/958/212 104/965/212 106/143/213 +f 97/961/215 113/156/215 100/969/210 +f 742/1572/212 111/152/212 110/154/202 +f 94/131/205 112/153/205 113/968/215 +f 743/1574/202 110/149/202 109/151/211 +f 92/960/214 108/150/214 112/967/205 +f 744/1576/211 109/148/211 107/147/210 +f 90/959/213 106/966/213 108/146/214 +f 745/1578/210 107/145/210 105/144/215 +f 847/1580/216 904/1637/239 848/1581/217 +f 850/1583/219 1345/2165/250 851/1584/220 +f 853/1586/222 865/1598/234 854/1587/223 +f 856/1589/225 860/1593/229 857/1590/226 +f 857/1590/226 860/1593/229 853/1586/222 +f 859/1592/228 862/1595/231 856/1589/225 +f 860/1593/229 1346/2166/526 861/1594/230 +f 862/1595/231 1347/2167/238 863/1596/232 +f 853/1586/222 861/1594/230 864/1597/233 +f 863/1596/232 1346/2166/526 860/1593/229 +f 866/1599/235 877/1610/234 867/1600/223 +f 869/1602/236 874/1607/229 870/1603/226 +f 870/1603/226 874/1607/229 866/1599/235 +f 872/1605/231 869/1602/236 871/1604/227 +f 874/1607/229 1348/2168/526 875/1608/230 +f 872/1605/231 1349/2169/238 876/1609/232 +f 875/1608/230 1350/2170/233 877/1610/234 +f 876/1609/232 1348/2168/526 874/1607/229 +f 878/1611/222 890/1623/234 879/1612/223 +f 881/1614/236 886/1619/229 882/1615/226 +f 882/1615/226 886/1619/229 878/1611/222 +f 884/1617/231 881/1614/236 883/1616/227 +f 886/1619/229 1351/2171/526 887/1620/230 +f 888/1621/238 891/1624/232 881/1614/236 +f 878/1611/222 887/1620/230 889/1622/233 +f 891/1624/232 1351/2171/526 886/1619/229 +f 854/1587/223 1352/2172/210 892/1625/4 +f 867/1600/223 1353/2173/210 893/1626/4 +f 855/1588/224 892/1625/4 894/1627/22 +f 857/1590/226 894/1627/22 895/1628/1 +f 879/1612/223 1354/2174/210 896/1629/4 +f 868/1601/224 893/1626/4 897/1630/22 +f 858/1591/227 895/1628/1 898/1631/214 +f 870/1603/226 897/1630/22 899/1632/1 +f 880/1613/224 896/1629/4 900/1633/22 +f 882/1615/226 900/1633/22 901/1634/1 +f 871/1604/227 899/1632/1 902/1635/214 +f 883/1616/227 901/1634/1 903/1636/214 +f 847/1580/216 852/1585/221 851/1584/220 +f 905/1638/240 849/1582/218 848/1581/217 +f 904/1637/239 851/1584/220 907/1640/242 +f 906/1639/241 848/1581/217 909/1642/244 +f 851/1584/220 1345/2165/250 911/1644/246 +f 904/1637/239 908/1641/243 909/1642/244 +f 912/1645/219 925/1658/250 913/1646/247 +f 915/1648/216 918/1651/239 916/1649/248 +f 915/1648/216 914/1647/221 913/1646/247 +f 917/1650/218 916/1649/248 919/1652/241 +f 918/1651/239 913/1646/247 921/1654/242 +f 919/1652/241 916/1649/248 923/1656/244 +f 925/1658/250 1355/2175/246 921/1654/242 +f 918/1651/239 922/1655/243 923/1656/244 +f 926/1659/219 1356/2176/250 927/1660/220 +f 929/1662/216 932/1665/239 930/1663/248 +f 929/1662/216 928/1661/221 927/1660/220 +f 931/1664/218 930/1663/248 933/1666/241 +f 932/1665/239 927/1660/220 935/1668/242 +f 930/1663/248 939/1672/244 937/1670/245 +f 927/1660/220 1356/2176/250 938/1671/246 +f 932/1665/239 936/1669/243 939/1672/244 +f 940/1673/4 1357/2177/215 850/1583/219 +f 941/1674/4 1358/2178/215 912/1645/219 +f 942/1675/23 940/1673/4 852/1585/221 +f 943/1676/13 942/1675/23 847/1580/216 +f 944/1677/4 1359/2179/215 926/1659/219 +f 945/1678/23 941/1674/4 914/1647/221 +f 946/1679/202 943/1676/13 849/1582/218 +f 947/1680/13 945/1678/23 915/1648/216 +f 948/1681/23 944/1677/4 928/1661/221 +f 949/1682/13 948/1681/23 929/1662/216 +f 950/1683/202 947/1680/13 917/1650/218 +f 951/1684/202 949/1682/13 931/1664/218 +f 952/1685/251 965/1698/262 953/1686/252 +f 955/1688/15 966/1699/263 956/1689/254 +f 958/1691/256 962/1695/260 959/1692/257 +f 961/1694/259 967/1701/264 962/1695/260 +f 963/1696/16 952/1685/251 954/1687/253 +f 957/1690/255 956/1689/254 953/1686/252 +f 955/1688/15 960/1693/258 959/1692/257 +f 963/1700/16 964/1706/261 967/1701/264 +f 959/1692/257 962/1695/260 968/1702/265 +f 966/1699/263 973/1708/18 970/1704/267 +f 953/1686/252 974/1709/270 971/1705/268 +f 964/1706/261 975/1717/20 972/1707/269 +f 966/1699/263 959/1692/257 969/1703/266 +f 956/1689/254 970/1704/267 974/1709/270 +f 964/1697/261 954/1687/253 971/1705/268 +f 962/1695/260 967/1701/264 972/1707/269 +f 975/1710/20 971/1705/268 976/1711/188 +f 968/1702/265 972/1707/269 978/1713/187 +f 968/1702/265 979/1714/192 980/1715/271 +f 973/1708/18 982/1718/3 981/1716/272 +f 974/1709/270 983/1719/189 976/1711/188 +f 975/1717/20 977/1727/5 978/1713/187 +f 973/1708/18 969/1703/266 980/1715/271 +f 974/1709/270 970/1704/267 981/1716/272 +f 980/1715/271 990/1726/279 984/1720/273 +f 983/1719/189 981/1716/272 985/1721/274 +f 977/1712/5 976/1711/188 987/1723/276 +f 978/1713/187 991/1728/280 989/1725/278 +f 979/1714/192 989/1725/278 990/1726/279 +f 981/1716/272 982/1718/3 984/1720/273 +f 976/1711/188 983/1719/189 986/1722/275 +f 977/1727/5 988/2180/277 991/1728/280 +f 992/1729/281 378/535/281 372/529/205 +f 994/1731/282 363/520/282 374/531/283 +f 996/1733/202 999/1736/284 368/525/284 +f 997/1734/285 369/526/285 366/523/286 +f 992/1729/281 995/2181/283 374/1037/283 +f 994/1731/282 996/1733/202 376/533/202 +f 998/1735/286 366/523/286 368/525/284 +f 993/1730/205 372/529/205 369/526/285 +f 380/1737/284 753/1742/202 386/544/202 +f 371/528/285 370/527/205 382/540/205 +f 380/1737/284 385/543/284 390/1043/286 +f 373/530/281 388/546/281 382/540/205 +f 381/1739/285 754/2182/286 390/548/286 +f 375/536/283 387/545/283 388/546/281 +f 381/1739/285 392/551/285 391/550/205 +f 365/522/287 389/547/287 387/549/283 +f 377/534/286 371/528/285 384/542/285 +f 379/1741/282 383/541/282 386/544/202 +f 377/534/286 397/556/286 395/554/284 +f 379/1741/282 757/1744/283 396/555/283 +f 364/521/202 367/524/284 395/554/284 +f 756/1743/281 394/553/281 396/555/283 +f 364/521/202 393/552/202 389/547/287 +f 756/1743/281 755/1740/205 391/550/205 +f 1000/1745/288 1013/1758/301 1001/1746/289 +f 1003/1748/291 1014/1759/302 1004/1749/292 +f 1006/1751/294 1010/1755/298 1007/1752/295 +f 1009/1754/297 1015/1761/303 1010/1755/298 +f 1011/1756/299 1000/1745/288 1002/1747/290 +f 1005/1750/293 1004/1749/292 1001/1746/289 +f 1003/1748/291 1008/1753/296 1007/1752/295 +f 1011/1760/299 1012/1766/300 1015/1761/303 +f 1007/1752/295 1010/1755/298 1016/1762/304 +f 1014/1759/302 1021/1768/309 1018/1764/306 +f 1001/1746/289 1022/1769/310 1019/1765/307 +f 1012/1766/300 1023/1777/311 1020/1767/308 +f 1014/1759/302 1007/1752/295 1017/1763/305 +f 1004/1749/292 1018/1764/306 1022/1769/310 +f 1012/1757/300 1002/1747/290 1019/1765/307 +f 1010/1755/298 1015/1761/303 1020/1767/308 +f 1023/1770/311 1019/1765/307 1024/1771/312 +f 1016/1762/304 1020/1767/308 1026/1773/313 +f 1016/1762/304 1027/1774/314 1028/1775/315 +f 1021/1768/309 1030/1778/3 1029/1776/316 +f 1022/1769/310 1031/1779/317 1024/1771/312 +f 1023/1777/311 1025/1787/5 1026/1773/313 +f 1021/1768/309 1017/1763/305 1028/1775/315 +f 1022/1769/310 1018/1764/306 1029/1776/316 +f 1028/1775/315 1038/1786/324 1032/1780/318 +f 1031/1779/317 1029/1776/316 1033/1781/319 +f 1025/1772/5 1024/1771/312 1035/1783/321 +f 1026/1773/313 1039/1788/325 1037/1785/323 +f 1027/1774/314 1037/1785/323 1038/1786/324 +f 1029/1776/316 1030/1778/3 1032/1780/318 +f 1024/1771/312 1031/1779/317 1034/1782/320 +f 1025/1787/5 1036/2183/322 1039/1788/325 +f 1040/1789/326 413/572/326 407/566/213 +f 1042/1791/327 398/557/327 409/568/328 +f 1044/1793/210 1047/1796/329 403/562/329 +f 1045/1794/330 404/563/330 401/560/331 +f 1040/1789/326 1043/2184/328 409/1044/328 +f 1042/1791/327 1044/1793/210 411/570/210 +f 1047/1796/329 1046/1795/331 401/560/331 +f 1041/1790/213 407/566/213 404/563/330 +f 415/1797/329 758/1802/210 421/581/210 +f 406/565/330 405/564/213 417/577/213 +f 415/1797/329 420/580/329 425/1050/331 +f 408/567/326 423/583/326 417/577/213 +f 416/1799/330 759/2185/331 425/585/331 +f 410/573/328 422/582/328 423/583/326 +f 416/1799/330 427/588/330 429/590/213 +f 400/559/332 424/584/332 422/586/328 +f 412/571/331 406/565/330 419/579/330 +f 414/1801/327 418/578/327 421/581/210 +f 412/571/331 432/593/331 430/591/333 +f 414/1801/327 762/1804/328 431/592/328 +f 402/561/329 430/591/333 426/587/210 +f 761/1803/326 428/589/326 431/592/328 +f 399/558/210 426/587/210 424/584/332 +f 761/1803/326 760/1800/213 429/590/213 +f 1048/1805/334 1061/1818/347 1049/1806/335 +f 1051/1808/337 1062/1819/348 1052/1809/338 +f 1054/1811/340 1058/1815/344 1055/1812/341 +f 1057/1814/343 1063/1821/349 1058/1815/344 +f 1059/1816/345 1048/1805/334 1050/1807/336 +f 1061/1818/347 1053/1810/339 1052/1809/338 +f 1051/1808/337 1056/1813/342 1055/1812/341 +f 1059/1820/345 1060/1826/346 1063/1821/349 +f 1055/1812/341 1058/1815/344 1064/1822/350 +f 1062/1819/348 1069/1828/355 1066/1824/352 +f 1049/1806/335 1070/1829/356 1067/1825/353 +f 1060/1826/346 1071/1837/357 1068/1827/354 +f 1062/1819/348 1055/1812/341 1065/1823/351 +f 1052/1809/338 1066/1824/352 1070/1829/356 +f 1060/1817/346 1050/1807/336 1067/1825/353 +f 1058/1815/344 1063/1821/349 1068/1827/354 +f 1071/1830/357 1067/1825/353 1072/1831/313 +f 1064/1822/350 1068/1827/354 1074/1833/312 +f 1064/1822/350 1075/1834/317 1076/1835/358 +f 1069/1828/355 1078/1838/3 1077/1836/359 +f 1070/1829/356 1079/1839/314 1072/1831/313 +f 1071/1837/357 1073/1847/5 1074/1833/312 +f 1069/1828/355 1065/1823/351 1076/1835/358 +f 1070/1829/356 1066/1824/352 1077/1836/359 +f 1076/1835/358 1086/1846/366 1080/1840/360 +f 1079/1839/314 1077/1836/359 1081/1841/361 +f 1073/1832/5 1072/1831/313 1083/1843/363 +f 1074/1833/312 1087/1848/367 1085/1845/365 +f 1075/1834/317 1085/1845/365 1086/1846/366 +f 1077/1836/359 1078/1838/3 1080/1840/360 +f 1072/1831/313 1079/1839/314 1082/1842/362 +f 1073/1847/5 1084/2186/364 1087/1848/367 +f 1088/1849/368 448/609/368 442/603/210 +f 1090/1851/369 433/594/369 444/605/370 +f 1092/1853/213 1094/1855/371 438/599/371 +f 1093/1854/372 1095/1856/373 439/600/373 +f 1088/1849/368 1091/2187/370 444/1051/370 +f 1090/1851/369 1092/1853/213 446/607/213 +f 1093/1854/372 436/597/372 438/599/371 +f 1089/1850/210 442/603/210 439/600/373 +f 450/1857/371 763/1862/213 456/618/213 +f 441/602/373 440/601/210 452/614/210 +f 450/1857/371 455/617/371 460/1057/372 +f 443/604/368 458/620/368 452/614/210 +f 451/1859/373 764/2188/372 460/622/372 +f 445/610/370 457/619/370 458/620/368 +f 451/1859/373 462/625/373 464/627/210 +f 435/596/374 459/621/374 457/623/370 +f 447/608/372 441/602/373 454/616/373 +f 449/1861/369 453/615/369 456/618/213 +f 447/608/372 467/630/372 465/628/375 +f 449/1861/369 767/1864/370 466/629/370 +f 437/598/375 465/628/375 461/624/213 +f 766/1863/368 463/626/368 466/629/370 +f 434/595/213 461/624/213 459/621/374 +f 766/1863/368 765/1860/210 464/627/210 +f 1096/1865/376 1109/1878/389 1097/1866/377 +f 1099/1868/379 1110/1879/390 1100/1869/380 +f 1102/1871/382 1106/1875/386 1103/1872/383 +f 1105/1874/385 1111/1881/391 1106/1875/386 +f 1107/1876/387 1096/1865/376 1098/1867/378 +f 1109/1878/389 1101/1870/381 1100/1869/380 +f 1099/1868/379 1104/1873/384 1103/1872/383 +f 1107/1880/387 1108/1886/388 1111/1881/391 +f 1103/1872/383 1106/1875/386 1112/1882/392 +f 1110/1879/390 1117/1888/243 1114/1884/394 +f 1097/1866/377 1118/1889/397 1115/1885/395 +f 1108/1886/388 1119/1897/398 1116/1887/396 +f 1110/1879/390 1103/1872/383 1113/1883/393 +f 1100/1869/380 1114/1884/394 1118/1889/397 +f 1108/1877/388 1098/1867/378 1115/1885/395 +f 1106/1875/386 1111/1881/391 1116/1887/396 +f 1119/1890/398 1115/1885/395 1120/1891/399 +f 1112/1882/392 1116/1887/396 1122/1893/400 +f 1112/1882/392 1123/1894/401 1124/1895/402 +f 1117/1888/243 1126/1898/3 1125/1896/403 +f 1118/1889/397 1127/1899/404 1120/1891/399 +f 1119/1897/398 1121/1907/5 1122/1893/400 +f 1117/1888/243 1113/1883/393 1124/1895/402 +f 1118/1889/397 1114/1884/394 1125/1896/403 +f 1124/1895/402 1134/1906/411 1128/1900/405 +f 1127/1899/404 1125/1896/403 1129/1901/406 +f 1121/1892/5 1120/1891/399 1131/1903/408 +f 1122/1893/400 1135/1908/412 1133/1905/410 +f 1123/1894/401 1133/1905/410 1134/1906/411 +f 1125/1896/403 1126/1898/3 1128/1900/405 +f 1120/1891/399 1127/1899/404 1130/1902/407 +f 1121/1907/5 1132/2189/409 1135/1908/412 +f 1136/1909/413 483/646/413 477/640/212 +f 1138/1911/414 468/631/414 479/642/415 +f 1140/1913/215 1143/1916/416 473/636/416 +f 1141/1914/417 474/637/417 471/634/418 +f 1136/1909/413 1139/2190/415 479/1058/415 +f 1138/1911/414 1140/1913/215 481/644/215 +f 1143/1916/416 1142/1915/418 471/634/418 +f 1137/1910/212 477/640/212 474/637/417 +f 485/1917/416 768/1922/215 491/655/215 +f 476/639/417 475/638/212 487/651/212 +f 485/1917/416 490/654/419 495/1064/418 +f 478/641/413 493/657/413 487/651/212 +f 486/1919/417 769/2191/418 495/659/418 +f 480/647/415 492/656/415 493/657/413 +f 486/1919/417 497/662/417 499/664/212 +f 470/633/420 494/658/420 492/660/415 +f 482/645/418 476/639/417 489/653/417 +f 484/1921/414 488/652/414 491/655/215 +f 482/645/418 502/667/418 500/665/416 +f 484/1921/414 772/1924/415 501/666/415 +f 472/635/419 500/665/416 496/661/215 +f 771/1923/413 498/663/413 501/666/415 +f 469/632/215 496/661/215 494/658/420 +f 771/1923/413 770/1920/212 499/664/212 +f 1144/1925/421 1157/1938/434 1145/1926/422 +f 1147/1928/424 1158/1939/435 1148/1929/425 +f 1150/1931/427 1154/1935/431 1151/1932/428 +f 1153/1934/430 1159/1941/436 1154/1935/431 +f 1155/1936/432 1144/1925/421 1146/1927/423 +f 1157/1938/434 1149/1930/426 1148/1929/425 +f 1152/1933/429 1151/1932/428 1158/1939/435 +f 1155/1940/432 1156/1946/433 1159/1941/436 +f 1151/1932/428 1154/1935/431 1160/1942/437 +f 1158/1939/435 1165/1948/442 1162/1944/439 +f 1145/1926/422 1166/1949/443 1163/1945/440 +f 1156/1946/433 1167/1957/444 1164/1947/441 +f 1158/1939/435 1151/1932/428 1161/1943/438 +f 1148/1929/425 1162/1944/439 1166/1949/443 +f 1156/1937/433 1146/1927/423 1163/1945/440 +f 1154/1935/431 1159/1941/436 1164/1947/441 +f 1163/1945/440 1173/1956/400 1168/1951/5 +f 1160/1942/437 1164/1947/441 1169/1952/399 +f 1160/1942/437 1170/1953/404 1171/1954/403 +f 1165/1948/442 1174/1958/3 1172/1955/402 +f 1166/1949/443 1175/1959/401 1173/1956/400 +f 1167/1957/444 1168/1967/5 1169/1952/399 +f 1165/1948/442 1161/1943/438 1171/1954/403 +f 1166/1949/443 1162/1944/439 1172/1955/402 +f 1171/1954/403 1182/1966/451 1176/1960/445 +f 1175/1959/401 1172/1955/402 1177/1961/446 +f 1168/1951/5 1173/1956/400 1179/1963/448 +f 1169/1952/399 1183/1968/452 1181/1965/450 +f 1170/1953/404 1181/1965/450 1182/1966/451 +f 1172/1955/402 1174/1958/3 1176/1960/445 +f 1173/1956/400 1175/1959/401 1178/1962/447 +f 1168/1967/5 1180/2192/449 1183/1968/452 +f 1184/1969/453 518/683/453 512/677/215 +f 1186/1971/454 503/668/454 514/679/455 +f 1188/1973/212 1191/1976/456 508/673/456 +f 1189/1974/457 509/674/457 506/671/458 +f 1184/1969/453 1187/2193/455 514/1065/455 +f 1186/1971/454 1188/1973/212 516/681/212 +f 1190/1975/458 506/671/458 508/673/456 +f 1185/1970/215 512/677/215 509/674/457 +f 520/1977/456 773/1982/212 526/692/212 +f 511/676/457 510/675/215 522/688/215 +f 520/1977/456 525/691/456 530/1071/458 +f 510/675/215 513/678/453 528/694/453 +f 521/1979/457 774/2194/458 530/696/458 +f 515/684/455 527/693/455 528/694/453 +f 521/1979/457 532/699/457 534/701/215 +f 505/670/454 529/695/454 527/697/455 +f 517/682/458 511/676/457 524/690/457 +f 519/1981/454 523/689/454 526/692/212 +f 517/682/458 537/704/458 535/702/459 +f 519/1981/454 777/1984/455 536/703/455 +f 507/672/459 535/702/459 531/698/212 +f 776/1983/453 533/700/453 536/703/455 +f 504/669/212 531/698/212 529/695/454 +f 776/1983/453 775/1980/215 534/701/215 +f 1192/1985/460 1205/1998/473 1193/1986/461 +f 1195/1988/463 1206/1999/474 1196/1989/464 +f 1198/1991/466 1202/1995/470 1199/1992/467 +f 1201/1994/469 1207/2001/475 1202/1995/470 +f 1203/1996/471 1192/1985/460 1194/1987/462 +f 1197/1990/465 1196/1989/464 1193/1986/461 +f 1195/1988/463 1200/1993/468 1199/1992/467 +f 1203/2000/471 1204/2006/472 1207/2001/475 +f 1199/1992/467 1202/1995/470 1208/2002/476 +f 1206/1999/474 1213/2008/481 1210/2004/478 +f 1193/1986/461 1214/2009/482 1211/2005/479 +f 1204/2006/472 1215/2017/483 1212/2007/480 +f 1206/1999/474 1199/1992/467 1209/2003/477 +f 1196/1989/464 1210/2004/478 1214/2009/482 +f 1204/1997/472 1194/1987/462 1211/2005/479 +f 1202/1995/470 1207/2001/475 1212/2007/480 +f 1215/2010/483 1211/2005/479 1216/2011/484 +f 1208/2002/476 1212/2007/480 1218/2013/485 +f 1208/2002/476 1219/2014/486 1220/2015/487 +f 1213/2008/481 1222/2018/3 1221/2016/488 +f 1214/2009/482 1223/2019/489 1216/2011/484 +f 1215/2017/483 1217/2027/5 1218/2013/485 +f 1213/2008/481 1209/2003/477 1220/2015/487 +f 1214/2009/482 1210/2004/478 1221/2016/488 +f 1220/2015/487 1230/2026/496 1224/2020/490 +f 1223/2019/489 1221/2016/488 1225/2021/491 +f 1217/2012/5 1216/2011/484 1227/2023/493 +f 1218/2013/485 1231/2028/497 1229/2025/495 +f 1219/2014/486 1229/2025/495 1230/2026/496 +f 1221/2016/488 1222/2018/3 1224/2020/490 +f 1216/2011/484 1223/2019/489 1226/2022/492 +f 1217/2027/5 1228/2195/494 1231/2028/497 +f 1232/2029/498 553/720/498 547/714/214 +f 1234/2031/499 538/705/499 549/716/500 +f 1236/2033/211 1239/2036/501 543/710/501 +f 1237/2034/502 544/711/502 541/708/503 +f 1232/2029/498 1235/2196/500 549/1072/500 +f 1234/2031/499 1236/2033/211 551/718/211 +f 1238/2035/503 541/708/503 543/710/501 +f 1233/2030/214 547/714/214 544/711/502 +f 555/2037/501 778/2042/211 561/729/211 +f 546/713/502 545/712/214 557/725/214 +f 555/2037/501 560/728/504 565/1078/503 +f 548/715/498 563/731/498 557/725/214 +f 556/2039/502 779/2197/503 565/733/503 +f 550/721/500 562/730/500 563/731/498 +f 556/2039/502 567/736/502 569/738/214 +f 540/707/499 564/732/499 562/734/500 +f 552/719/503 546/713/502 559/727/502 +f 554/2041/499 558/726/499 561/729/211 +f 552/719/503 572/741/503 570/739/501 +f 554/2041/499 782/2044/500 571/740/500 +f 542/709/501 570/739/501 566/735/211 +f 781/2043/498 568/737/498 571/740/500 +f 539/706/211 566/735/211 564/732/499 +f 781/2043/498 780/2040/214 569/738/214 +f 1240/2045/505 1253/2058/518 1241/2046/506 +f 1243/2048/508 1254/2059/519 1244/2049/509 +f 1246/2051/511 1250/2055/515 1247/2052/512 +f 1249/2054/514 1255/2061/520 1250/2055/515 +f 1251/2056/516 1240/2045/505 1242/2047/507 +f 1253/2058/518 1245/2050/510 1244/2049/509 +f 1243/2048/508 1248/2053/513 1247/2052/512 +f 1251/2060/516 1252/2066/517 1255/2061/520 +f 1247/2052/512 1250/2055/515 1256/2062/521 +f 1254/2059/519 1261/2068/526 1258/2064/523 +f 1241/2046/506 1262/2069/527 1259/2065/524 +f 1252/2066/517 1263/2077/528 1260/2067/525 +f 1247/2052/512 1257/2063/522 1261/2068/526 +f 1244/2049/509 1258/2064/523 1262/2069/527 +f 1252/2057/517 1242/2047/507 1259/2065/524 +f 1250/2055/515 1255/2061/520 1260/2067/525 +f 1263/2070/528 1259/2065/524 1264/2071/485 +f 1256/2062/521 1260/2067/525 1266/2073/484 +f 1256/2062/521 1267/2074/489 1268/2075/488 +f 1261/2068/526 1270/2078/3 1269/2076/487 +f 1262/2069/527 1271/2079/486 1264/2071/485 +f 1263/2077/528 1265/2087/5 1266/2073/484 +f 1261/2068/526 1257/2063/522 1268/2075/488 +f 1262/2069/527 1258/2064/523 1269/2076/487 +f 1268/2075/488 1278/2086/535 1272/2080/529 +f 1271/2079/486 1269/2076/487 1273/2081/530 +f 1265/2072/5 1264/2071/485 1275/2083/532 +f 1266/2073/484 1279/2088/536 1277/2085/534 +f 1267/2074/489 1277/2085/534 1278/2086/535 +f 1269/2076/487 1270/2078/3 1272/2080/529 +f 1264/2071/485 1271/2079/486 1274/2082/531 +f 1265/2087/5 1276/2198/533 1279/2088/536 +f 1280/2089/537 582/751/537 583/752/211 +f 1282/2091/538 573/742/538 584/753/539 +f 1284/2093/214 1286/2095/540 578/747/540 +f 1285/2094/541 1287/2096/542 579/748/542 +f 1280/2089/537 1283/2199/539 584/1079/539 +f 1282/2091/538 1284/2093/214 586/755/214 +f 1286/2095/540 1285/2094/541 576/745/541 +f 1281/2090/211 583/752/211 579/748/542 +f 590/2097/540 783/2102/214 596/766/214 +f 581/750/542 580/749/211 592/762/211 +f 590/2097/540 595/765/543 600/1085/541 +f 580/749/211 588/758/544 598/768/537 +f 591/2099/542 784/2200/541 600/770/541 +f 585/757/539 597/767/539 598/768/537 +f 591/2099/542 602/773/542 604/775/211 +f 575/744/545 599/769/538 597/771/539 +f 587/756/541 581/750/542 594/764/542 +f 589/2101/538 593/763/538 596/766/214 +f 587/756/541 607/778/541 605/776/540 +f 589/2101/538 787/2104/539 606/777/539 +f 577/746/543 605/776/540 601/772/214 +f 786/2103/537 603/774/537 606/777/539 +f 574/743/214 601/772/214 599/769/538 +f 786/2103/537 785/2100/211 604/775/211 +f 1288/2105/4 1296/2113/549 1289/2106/546 +f 1291/2108/205 1360/2201/558 1292/2109/547 +f 1290/2107/23 1289/2106/546 1294/2111/548 +f 1293/2110/22 1292/2109/547 1296/2113/549 +f 1292/2109/547 1360/2201/558 1297/2114/550 +f 1289/2106/546 1301/2118/553 1299/2116/552 +f 1292/2109/547 1298/2115/551 1300/2117/38 +f 1289/2106/546 1296/2113/549 1300/2117/38 +f 1300/2117/38 1306/2123/185 1302/2119/554 +f 1298/2115/551 1297/2114/550 1303/2120/555 +f 1301/2118/553 1302/2119/554 1305/2122/557 +f 1300/2117/38 1298/2115/551 1304/2121/556 +f 1307/2124/4 1315/2132/549 1308/2125/546 +f 1310/2127/205 1361/2202/558 1311/2128/547 +f 1309/2126/23 1308/2125/546 1313/2130/548 +f 1312/2129/22 1311/2128/547 1315/2132/549 +f 1311/2128/547 1361/2202/558 1316/2133/550 +f 1308/2125/546 1320/2137/553 1318/2135/552 +f 1311/2128/547 1317/2134/551 1319/2136/38 +f 1308/2125/546 1315/2132/549 1319/2136/38 +f 1319/2136/38 1325/2142/185 1321/2138/554 +f 1317/2134/551 1316/2133/550 1322/2139/555 +f 1320/2137/553 1321/2138/554 1324/2141/557 +f 1317/2134/551 1323/2140/556 1325/2142/185 +f 1326/2143/4 1334/2151/549 1327/2144/546 +f 1329/2146/205 1362/2203/558 1330/2147/547 +f 1328/2145/23 1327/2144/546 1332/2149/548 +f 1331/2148/22 1330/2147/547 1334/2151/549 +f 1330/2147/547 1362/2203/558 1335/2152/550 +f 1327/2144/546 1339/2156/553 1337/2154/552 +f 1330/2147/547 1336/2153/551 1338/2155/38 +f 1327/2144/546 1334/2151/549 1338/2155/38 +f 1338/2155/38 1344/2161/185 1340/2157/554 +f 1336/2153/551 1335/2152/550 1341/2158/555 +f 1339/2156/553 1340/2157/554 1343/2160/557 +f 1336/2153/551 1342/2159/556 1344/2161/185 +f 1583/2204/559 1584/2205/158 1585/2206/559 +f 1586/2207/1 1587/2208/560 1588/2209/1 +f 1460/1242/561 1589/2210/562 1461/1243/561 +f 1583/2204/559 1590/2211/563 1591/2212/563 +f 1592/2213/564 1588/2209/1 1593/2214/564 +f 1466/1248/562 1594/2215/565 1589/2210/562 +f 1595/2216/566 1459/2217/567 1596/2218/566 +f 1567/2219/568 1590/2211/563 1463/2220/568 +f 1592/2213/564 1584/2205/158 1597/2221/158 +f 1568/2222/565 1598/2223/13 1594/2215/565 +f 1595/2216/566 1587/2208/560 1599/2224/560 +f 1462/1244/569 1598/2223/13 1600/2225/13 +f 1601/2226/562 1602/2227/155 1603/2228/155 +f 1604/2229/1 1605/2230/560 1606/2231/1 +f 1607/2232/570 1608/2233/563 1609/2234/570 +f 1610/2235/559 1611/2236/158 1612/2237/559 +f 1601/2226/562 1613/2238/565 1614/2239/562 +f 1615/2240/566 1605/2230/560 1616/2241/560 +f 1610/2242/559 1608/2233/563 1617/2243/563 +f 1618/2244/564 1611/2236/158 1619/2245/158 +f 1620/2246/13 1613/2238/565 1621/2247/565 +f 1615/2240/566 1602/2227/155 1622/2248/566 +f 1604/2229/1 1623/2249/564 1618/2244/564 +f 1620/2246/13 1609/2234/570 1624/2250/13 +f 1535/2251/571 1625/2252/572 1626/2253/571 +f 1535/2251/571 1627/2254/573 1532/2255/573 +f 1532/2255/573 1628/2256/574 1533/2257/574 +f 1533/2257/574 1629/2258/575 1530/2259/575 +f 1530/2259/575 1630/2260/576 1531/2261/576 +f 1544/2262/577 1630/2260/576 1631/2263/577 +f 1545/2264/578 1631/2263/577 1632/2265/578 +f 1542/2266/579 1632/2265/578 1633/2267/579 +f 1543/2268/580 1633/2267/579 1634/2269/580 +f 1543/2270/580 1635/2271/581 1540/2272/581 +f 1540/2272/581 1636/2273/582 1541/2274/582 +f 1538/2275/583 1636/2273/582 1637/2276/583 +f 1538/2275/583 1638/2277/584 1539/2278/584 +f 1539/2278/584 1639/2279/585 1536/2280/585 +f 1536/2280/585 1640/2281/586 1537/2282/586 +f 1534/2283/572 1640/2281/586 1625/2252/572 +f 1625/2252/212 1641/2284/2 1626/2253/2 +f 1626/2253/2 1642/2285/213 1627/2254/213 +f 1633/2267/215 1643/2286/4 1634/2269/4 +f 1640/2281/21 1644/2287/212 1625/2252/212 +f 1632/2265/22 1645/2288/215 1633/2267/215 +f 1639/2279/202 1646/2289/21 1640/2281/21 +f 1631/2263/205 1647/2290/22 1632/2265/22 +f 1638/2277/13 1648/2291/202 1639/2279/202 +f 1630/2260/1 1649/2292/205 1631/2263/205 +f 1637/2276/211 1650/2293/13 1638/2277/13 +f 1629/2258/214 1651/2294/1 1630/2260/1 +f 1636/2273/23 1652/2295/211 1637/2276/211 +f 1628/2256/24 1653/2296/214 1629/2258/214 +f 1635/2271/210 1654/2297/23 1636/2273/23 +f 1627/2254/213 1655/2298/24 1628/2256/24 +f 1634/2299/4 1656/2300/210 1635/2271/210 +f 1647/2290/587 1579/2301/588 1578/2302/587 +f 1648/2291/589 1573/2303/590 1572/2304/589 +f 1651/2294/591 1579/2305/588 1649/2292/588 +f 1650/2293/590 1574/2306/592 1573/2307/590 +f 1651/2294/591 1580/2308/593 1547/2309/591 +f 1654/2297/594 1574/2310/592 1652/2295/592 +f 1655/2298/595 1580/2311/593 1653/2296/593 +f 1654/2297/594 1576/2312/596 1575/2313/594 +f 1642/2285/597 1581/2314/595 1655/2298/595 +f 1643/2315/598 1576/2316/596 1656/2300/596 +f 1641/2284/599 1570/2317/600 1548/2318/599 +f 1641/2284/599 1582/2319/597 1642/2285/597 +f 1643/2286/598 1577/2320/601 1546/2321/598 +f 1646/2289/602 1570/2322/600 1644/2287/600 +f 1647/2290/587 1577/2323/601 1645/2288/601 +f 1646/2289/602 1572/2324/589 1571/2325/602 +f 1558/2326/213 1657/2327/2 1555/2328/2 +f 1563/2329/4 1658/2330/215 1564/2331/215 +f 1550/2332/210 1659/2333/4 1563/2329/4 +f 1555/2334/2 1660/2335/212 1556/2336/212 +f 1564/2331/215 1661/2337/22 1561/2338/22 +f 1556/2336/212 1662/2339/21 1553/2340/21 +f 1561/2338/22 1663/2341/205 1562/2342/205 +f 1553/2340/21 1664/2343/202 1554/2344/202 +f 1562/2342/205 1665/2345/1 1559/2346/1 +f 1554/2344/202 1666/2347/13 1551/2348/13 +f 1559/2346/1 1667/2349/214 1560/2350/214 +f 1551/2348/13 1668/2351/211 1552/2352/211 +f 1560/2350/214 1669/2353/24 1557/2354/24 +f 1552/2352/211 1670/2355/23 1549/2356/23 +f 1557/2354/24 1671/2357/213 1558/2326/213 +f 1549/2356/23 1672/2358/210 1550/2332/210 +f 1583/2204/559 1597/2221/158 1584/2205/158 +f 1586/2207/1 1599/2224/560 1587/2208/560 +f 1460/1242/561 1466/1248/562 1589/2210/562 +f 1583/2204/559 1585/2206/559 1590/2211/563 +f 1592/2213/564 1586/2207/1 1588/2209/1 +f 1466/1248/562 1568/2222/565 1594/2215/565 +f 1595/2216/566 1465/2359/567 1459/2217/567 +f 1567/2219/568 1591/2212/563 1590/2211/563 +f 1592/2213/564 1593/2214/564 1584/2205/158 +f 1568/2222/565 1600/2225/13 1598/2223/13 +f 1595/2216/566 1596/2218/566 1587/2208/560 +f 1462/1244/569 1464/1246/569 1598/2223/13 +f 1601/2226/562 1614/2239/562 1602/2227/155 +f 1604/2229/1 1616/2241/560 1605/2230/560 +f 1607/2232/570 1617/2243/563 1608/2233/563 +f 1610/2235/559 1619/2245/158 1611/2236/158 +f 1601/2226/562 1621/2247/565 1613/2238/565 +f 1615/2240/566 1622/2248/566 1605/2230/560 +f 1610/2242/559 1612/2360/559 1608/2233/563 +f 1618/2244/564 1623/2249/564 1611/2236/158 +f 1620/2246/13 1624/2250/13 1613/2238/565 +f 1615/2240/566 1603/2228/155 1602/2227/155 +f 1604/2229/1 1606/2231/1 1623/2249/564 +f 1620/2246/13 1607/2232/570 1609/2234/570 +f 1535/2251/571 1534/2283/572 1625/2252/572 +f 1535/2251/571 1626/2253/571 1627/2254/573 +f 1532/2255/573 1627/2254/573 1628/2256/574 +f 1533/2257/574 1628/2256/574 1629/2258/575 +f 1530/2259/575 1629/2258/575 1630/2260/576 +f 1544/2262/577 1531/2261/576 1630/2260/576 +f 1545/2264/578 1544/2262/577 1631/2263/577 +f 1542/2266/579 1545/2264/578 1632/2265/578 +f 1543/2268/580 1542/2266/579 1633/2267/579 +f 1543/2270/580 1634/2299/580 1635/2271/581 +f 1540/2272/581 1635/2271/581 1636/2273/582 +f 1538/2275/583 1541/2274/582 1636/2273/582 +f 1538/2275/583 1637/2276/583 1638/2277/584 +f 1539/2278/584 1638/2277/584 1639/2279/585 +f 1536/2280/585 1639/2279/585 1640/2281/586 +f 1534/2283/572 1537/2282/586 1640/2281/586 +f 1625/2252/212 1644/2287/212 1641/2284/2 +f 1626/2253/2 1641/2284/2 1642/2285/213 +f 1633/2267/215 1645/2288/215 1643/2286/4 +f 1640/2281/21 1646/2289/21 1644/2287/212 +f 1632/2265/22 1647/2290/22 1645/2288/215 +f 1639/2279/202 1648/2291/202 1646/2289/21 +f 1631/2263/205 1649/2292/205 1647/2290/22 +f 1638/2277/13 1650/2293/13 1648/2291/202 +f 1630/2260/1 1651/2294/1 1649/2292/205 +f 1637/2276/211 1652/2295/211 1650/2293/13 +f 1629/2258/214 1653/2296/214 1651/2294/1 +f 1636/2273/23 1654/2297/23 1652/2295/211 +f 1628/2256/24 1655/2298/24 1653/2296/214 +f 1635/2271/210 1656/2300/210 1654/2297/23 +f 1627/2254/213 1642/2285/213 1655/2298/24 +f 1634/2299/4 1643/2315/4 1656/2300/210 +f 1647/2290/587 1649/2292/588 1579/2301/588 +f 1648/2291/589 1650/2293/590 1573/2303/590 +f 1651/2294/591 1547/2361/591 1579/2305/588 +f 1650/2293/590 1652/2295/592 1574/2306/592 +f 1651/2294/591 1653/2296/593 1580/2308/593 +f 1654/2297/594 1575/2362/594 1574/2310/592 +f 1655/2298/595 1581/2363/595 1580/2311/593 +f 1654/2297/594 1656/2300/596 1576/2312/596 +f 1642/2285/597 1582/2364/597 1581/2314/595 +f 1643/2315/598 1546/2365/598 1576/2316/596 +f 1641/2284/599 1644/2287/600 1570/2317/600 +f 1641/2284/599 1548/2366/599 1582/2319/597 +f 1643/2286/598 1645/2288/601 1577/2320/601 +f 1646/2289/602 1571/2367/602 1570/2322/600 +f 1647/2290/587 1578/2368/587 1577/2323/601 +f 1646/2289/602 1648/2291/589 1572/2324/589 +f 1558/2326/213 1671/2357/213 1657/2327/2 +f 1563/2329/4 1659/2333/4 1658/2330/215 +f 1550/2332/210 1672/2358/210 1659/2333/4 +f 1555/2334/2 1657/2369/2 1660/2335/212 +f 1564/2331/215 1658/2330/215 1661/2337/22 +f 1556/2336/212 1660/2335/212 1662/2339/21 +f 1561/2338/22 1661/2337/22 1663/2341/205 +f 1553/2340/21 1662/2339/21 1664/2343/202 +f 1562/2342/205 1663/2341/205 1665/2345/1 +f 1554/2344/202 1664/2343/202 1666/2347/13 +f 1559/2346/1 1665/2345/1 1667/2349/214 +f 1551/2348/13 1666/2347/13 1668/2351/211 +f 1560/2350/214 1667/2349/214 1669/2353/24 +f 1552/2352/211 1668/2351/211 1670/2355/23 +f 1557/2354/24 1669/2353/24 1671/2357/213 +f 1549/2356/23 1670/2355/23 1672/2358/210 +o Fuel v 0.250000 2.227120 -3.053716 +v 0.324759 2.057188 -3.132957 +v 0.216506 2.113832 -3.106544 +v 0.324760 2.397053 -2.974475 +v 0.375000 2.227120 -3.053716 v 0.216506 2.340409 -3.000889 +v 0.187500 2.521452 -2.916467 +v 0.000000 2.566986 -2.895234 v 0.125000 2.423342 -2.962217 v 0.000000 2.453697 -2.948062 -v -0.125000 2.423342 -2.962217 -vt 0.250000 0.933013 -vt 0.500000 1.000000 -vt 0.750000 0.933013 -vt 0.933013 0.750000 +vt 1.000000 0.250000 +vt -0.000000 -0.000000 +vt 1.000000 0.000000 +vt -0.000000 0.500000 +vt 0.000000 0.250000 vt 1.000000 0.500000 -vt 0.933013 0.250000 -vt 0.750000 0.066987 -vt 0.500000 0.000000 -vt 0.250000 0.066987 -vt 0.066987 0.250000 -vt 0.000000 0.500000 -vt 0.066987 0.750000 +vt -0.000000 0.750000 +vt 0.000000 1.000000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 vn 0.0000 0.4226 -0.9063 s off -f 24/13/2 23/14/2 22/15/2 21/16/2 20/17/2 19/18/2 18/19/2 17/20/2 16/21/2 15/22/2 14/23/2 13/24/2 -o Plane.002 -v -0.109472 2.437500 -0.413125 +f 1673/2370/603 1674/2371/603 1675/2372/603 +f 1673/2370/603 1676/2373/603 1677/2374/603 +f 1678/2375/603 1679/2376/603 1676/2373/603 +f 1680/2377/603 1681/2378/603 1682/2379/603 +f 1673/2370/603 1677/2374/603 1674/2371/603 +f 1673/2370/603 1678/2375/603 1676/2373/603 +f 1678/2375/603 1681/2378/603 1679/2376/603 +f 1680/2377/603 1679/2376/603 1681/2378/603 +o Rotor v 0.003817 2.437500 -0.360298 -v 0.109472 2.437500 -0.586875 v -0.003817 2.437500 -0.639702 -v 0.109472 2.312500 -0.586875 +v -0.109472 2.437500 -0.413125 +v 0.109472 2.437500 -0.586875 v -0.003817 2.312500 -0.639702 -v -0.109472 2.312500 -0.413125 v 0.003817 2.312500 -0.360298 -v 0.109472 0.062500 -0.413125 +v 0.109472 2.312500 -0.586875 +v -0.109472 2.312500 -0.413125 v -0.003817 0.062500 -0.360298 -v -0.109472 0.062500 -0.586875 v 0.003816 0.062500 -0.639702 -v -0.109472 0.187500 -0.586875 +v 0.109472 0.062500 -0.413125 +v -0.109472 0.062500 -0.586875 v 0.003816 0.187500 -0.639702 -v 0.109472 0.187500 -0.413125 v -0.003817 0.187500 -0.360298 -v 1.187500 1.359472 -0.413125 +v -0.109472 0.187500 -0.586875 +v 0.109472 0.187500 -0.413125 v 1.187500 1.246183 -0.360298 -v 1.187500 1.140528 -0.586875 v 1.187500 1.253817 -0.639702 -v 1.062500 1.140528 -0.586875 +v 1.187500 1.359472 -0.413125 +v 1.187500 1.140528 -0.586875 v 1.062500 1.253817 -0.639702 -v 1.062500 1.359472 -0.413125 v 1.062500 1.246183 -0.360298 -v -1.187500 1.140528 -0.413125 +v 1.062500 1.140528 -0.586875 +v 1.062500 1.359472 -0.413125 v -1.187500 1.253817 -0.360298 -v -1.187500 1.359473 -0.586875 v -1.187500 1.246184 -0.639702 +v -1.187500 1.140528 -0.413125 v -1.062500 1.359473 -0.586875 v -1.062500 1.246184 -0.639702 -v -1.062500 1.140528 -0.413125 v -1.062500 1.253817 -0.360298 -v 0.762281 2.167098 -0.413125 +v -1.187500 1.359473 -0.586875 +v -1.062500 1.140528 -0.413125 v 0.842388 2.086991 -0.360298 -v 0.917098 2.012281 -0.586875 v 0.836990 2.092388 -0.639702 -v 0.828709 1.923892 -0.586875 +v 0.762281 2.167098 -0.413125 +v 0.917098 2.012281 -0.586875 v 0.748602 2.004000 -0.639702 v 0.673892 2.078710 -0.413125 v 0.754000 1.998602 -0.360298 -v -0.762281 0.332902 -0.413125 +v 0.828709 1.923892 -0.586875 v -0.842388 0.413010 -0.360298 -v -0.917098 0.487720 -0.586875 v -0.836991 0.407612 -0.639702 +v -0.762281 0.332902 -0.413125 v -0.828710 0.576108 -0.586875 v -0.748602 0.496001 -0.639702 v -0.673892 0.421291 -0.413125 v -0.754000 0.501398 -0.360298 -v 0.917098 0.487720 -0.413125 +v -0.917098 0.487720 -0.586875 v 0.836990 0.407612 -0.360298 -v 0.762280 0.332902 -0.586875 v 0.842388 0.413010 -0.639702 -v 0.673892 0.421291 -0.586875 +v 0.917098 0.487720 -0.413125 +v 0.762280 0.332902 -0.586875 v 0.753999 0.501398 -0.639702 -v 0.828709 0.576108 -0.413125 v 0.748602 0.496001 -0.360298 -v -0.917098 2.012281 -0.413125 +v 0.673892 0.421291 -0.586875 +v 0.828709 0.576108 -0.413125 v -0.836990 2.092388 -0.360298 -v -0.762281 2.167098 -0.586875 v -0.842388 2.086991 -0.639702 +v -0.917098 2.012281 -0.413125 v -0.673892 2.078710 -0.586875 v -0.754000 1.998602 -0.639702 -v -0.828709 1.923893 -0.413125 v -0.748602 2.004000 -0.360298 -v 1.083141 0.751056 -0.413125 +v -0.762281 2.167098 -0.586875 +v -0.828709 1.923893 -0.413125 v 1.026497 0.652945 -0.360298 -v 0.973669 0.561444 -0.586875 v 1.030313 0.659555 -0.639702 -v 0.865416 0.623944 -0.586875 +v 1.083141 0.751056 -0.413125 +v 0.973669 0.561444 -0.586875 v 0.922060 0.722055 -0.639702 -v 0.974888 0.813556 -0.413125 v 0.918243 0.715445 -0.360298 -v -1.083141 1.748945 -0.413125 +v 0.865416 0.623944 -0.586875 +v 0.974888 0.813556 -0.413125 v -1.026497 1.847056 -0.360298 -v -0.973669 1.938556 -0.586875 v -1.030313 1.840445 -0.639702 +v -1.083141 1.748945 -0.413125 v -0.865416 1.876056 -0.586875 v -0.922060 1.777945 -0.639702 v -0.974888 1.686445 -0.413125 v -0.918244 1.784556 -0.360298 -v -0.498944 0.166859 -0.413125 +v -0.973669 1.938556 -0.586875 v -0.597055 0.223504 -0.360298 -v -0.688556 0.276331 -0.586875 v -0.590445 0.219687 -0.639702 -v -0.626056 0.384585 -0.586875 +v -0.498944 0.166859 -0.413125 +v -0.688556 0.276331 -0.586875 v -0.527945 0.327940 -0.639702 -v -0.436444 0.275112 -0.413125 v -0.534555 0.331757 -0.360298 -v 0.498944 2.333141 -0.413125 +v -0.626056 0.384585 -0.586875 +v -0.436444 0.275112 -0.413125 v 0.597055 2.276497 -0.360298 -v 0.688556 2.223669 -0.586875 v 0.590445 2.280313 -0.639702 -v 0.626056 2.115416 -0.586875 +v 0.498944 2.333141 -0.413125 +v 0.688556 2.223669 -0.586875 v 0.527945 2.172060 -0.639702 v 0.436444 2.224888 -0.413125 v 0.534555 2.168244 -0.360298 -v 0.413089 0.131297 -0.413125 +v 0.626056 2.115416 -0.586875 v 0.303661 0.101975 -0.360298 -v 0.201605 0.074630 -0.586875 v 0.311034 0.103951 -0.639702 -v 0.169253 0.195371 -0.586875 +v 0.413089 0.131297 -0.413125 +v 0.201605 0.074630 -0.586875 v 0.278682 0.224692 -0.639702 -v 0.380737 0.252038 -0.413125 v 0.271308 0.222716 -0.360298 -v -0.413090 2.368703 -0.413125 +v 0.169253 0.195371 -0.586875 +v 0.380737 0.252038 -0.413125 v -0.303661 2.398025 -0.360298 -v -0.201605 2.425371 -0.586875 v -0.311034 2.396049 -0.639702 +v -0.413090 2.368703 -0.413125 v -0.169253 2.304630 -0.586875 v -0.278682 2.275309 -0.639702 -v -0.380737 2.247963 -0.413125 v -0.271308 2.277284 -0.360298 -v -1.118703 0.836911 -0.413125 +v -0.201605 2.425371 -0.586875 +v -0.380737 2.247963 -0.413125 v -1.148025 0.946339 -0.360298 -v -1.175370 1.048395 -0.586875 v -1.146049 0.938966 -0.639702 +v -1.118703 0.836911 -0.413125 v -1.054630 1.080747 -0.586875 v -1.025308 0.971319 -0.639702 -v -0.997963 0.869263 -0.413125 v -1.027284 0.978692 -0.360298 -v 1.118703 1.663090 -0.413125 +v -1.175370 1.048395 -0.586875 +v -0.997963 0.869263 -0.413125 v 1.148025 1.553661 -0.360298 -v 1.175370 1.451605 -0.586875 v 1.146049 1.561034 -0.639702 -v 1.054630 1.419253 -0.586875 +v 1.118703 1.663090 -0.413125 +v 1.175370 1.451605 -0.586875 v 1.025308 1.528682 -0.639702 -v 0.997963 1.630737 -0.413125 v 1.027284 1.521308 -0.360298 -v -0.973669 0.561445 -0.413125 +v 1.054630 1.419253 -0.586875 +v 0.997963 1.630737 -0.413125 v -1.030313 0.659556 -0.360298 -v -1.083141 0.751056 -0.586875 v -1.026497 0.652945 -0.639702 +v -0.973669 0.561445 -0.413125 v -0.974888 0.813556 -0.586875 v -0.918244 0.715445 -0.639702 -v -0.865416 0.623945 -0.413125 v -0.922060 0.722056 -0.360298 -v 0.973669 1.938556 -0.413125 +v -1.083141 0.751056 -0.586875 +v -0.865416 0.623945 -0.413125 v 1.030313 1.840445 -0.360298 -v 1.083141 1.748944 -0.586875 v 1.026497 1.847055 -0.639702 +v 0.973669 1.938556 -0.413125 v 0.974888 1.686444 -0.586875 v 0.918244 1.784555 -0.639702 -v 0.865416 1.876056 -0.413125 v 0.922060 1.777945 -0.360298 -v -0.688556 2.223669 -0.413125 +v 1.083141 1.748944 -0.586875 +v 0.865416 1.876056 -0.413125 v -0.590444 2.280313 -0.360298 -v -0.498944 2.333141 -0.586875 v -0.597055 2.276497 -0.639702 -v -0.436444 2.224888 -0.586875 +v -0.688556 2.223669 -0.413125 +v -0.498944 2.333141 -0.586875 v -0.534555 2.168244 -0.639702 -v -0.626056 2.115416 -0.413125 v -0.527944 2.172060 -0.360298 -v 0.688555 0.276331 -0.413125 +v -0.436444 2.224888 -0.586875 +v -0.626056 2.115416 -0.413125 v 0.590444 0.219687 -0.360298 -v 0.498944 0.166859 -0.586875 v 0.597055 0.223503 -0.639702 -v 0.436444 0.275112 -0.586875 +v 0.688555 0.276331 -0.413125 +v 0.498944 0.166859 -0.586875 v 0.534555 0.331756 -0.639702 v 0.626055 0.384584 -0.413125 v 0.527944 0.327940 -0.360298 -v -1.175370 1.451606 -0.413125 +v 0.436444 0.275112 -0.586875 v -1.146049 1.561034 -0.360298 -v -1.118703 1.663090 -0.586875 v -1.148025 1.553661 -0.639702 -v -0.997963 1.630738 -0.586875 +v -1.175370 1.451606 -0.413125 +v -1.118703 1.663090 -0.586875 v -1.027284 1.521309 -0.639702 v -1.054630 1.419253 -0.413125 v -1.025308 1.528682 -0.360298 -v 1.175370 1.048394 -0.413125 +v -0.997963 1.630738 -0.586875 v 1.146049 0.938966 -0.360298 -v 1.118703 0.836910 -0.586875 v 1.148024 0.946339 -0.639702 +v 1.175370 1.048394 -0.413125 v 0.997963 0.869263 -0.586875 v 1.027284 0.978691 -0.639702 v 1.054630 1.080747 -0.413125 v 1.025308 0.971318 -0.360298 -v 0.201606 2.425370 -0.413125 +v 1.118703 0.836910 -0.586875 v 0.311034 2.396049 -0.360298 -v 0.413090 2.368703 -0.586875 v 0.303661 2.398025 -0.639702 -v 0.380738 2.247962 -0.586875 +v 0.201606 2.425370 -0.413125 +v 0.413090 2.368703 -0.586875 v 0.271309 2.277284 -0.639702 v 0.169253 2.304630 -0.413125 v 0.278682 2.275308 -0.360298 -v -0.201606 0.074630 -0.413125 +v 0.380738 2.247962 -0.586875 v -0.311035 0.103951 -0.360298 -v -0.413090 0.131297 -0.586875 v -0.303662 0.101975 -0.639702 -v -0.380738 0.252038 -0.586875 +v -0.201606 0.074630 -0.413125 +v -0.413090 0.131297 -0.586875 v -0.271309 0.222716 -0.639702 v -0.169254 0.195371 -0.413125 v -0.278682 0.224692 -0.360298 -vt 0.317241 0.109375 +v -0.380738 0.252038 -0.586875 vt 0.317241 0.125000 -vt 0.303448 0.125000 vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 vt 0.296552 0.125000 vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 vt 0.324138 0.109375 vt 0.324138 0.125000 vt 0.317241 0.140625 vt 0.303448 0.140625 vt 0.303448 0.093750 vt 0.317241 0.093750 -vt 0.317241 0.109375 vt 0.317241 0.125000 -vt 0.303448 0.125000 vt 0.303448 0.109375 +vt 0.317241 0.109375 vt 0.296552 0.125000 vt 0.296552 0.109375 vt 0.324138 0.109375 vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 vt 0.317241 0.140625 vt 0.303448 0.140625 vt 0.303448 0.093750 vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.324138 0.109375 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 vn 0.0000 1.0000 0.0000 vn 0.4226 0.0000 -0.9063 vn -0.4226 -0.0000 0.9063 -vn 0.9063 -0.0000 0.4226 +vn 0.9063 0.0000 0.4226 vn -0.9063 0.0000 -0.4226 -vn 0.0000 -1.0000 -0.0000 -vn -0.4226 -0.0000 -0.9063 -vn 0.4226 -0.0000 0.9063 +vn -0.0000 -1.0000 -0.0000 +vn -0.4226 0.0000 -0.9063 +vn 0.4226 0.0000 0.9063 vn -0.9063 0.0000 0.4226 -vn 0.9063 -0.0000 -0.4226 +vn 0.9063 0.0000 -0.4226 vn 1.0000 0.0000 0.0000 vn 0.0000 -0.4226 -0.9063 vn 0.0000 0.4226 0.9063 @@ -557,7 +7804,7 @@ vn 0.0000 0.4226 -0.9063 vn 0.0000 -0.4226 0.9063 vn 0.0000 0.9063 0.4226 vn 0.0000 -0.9063 -0.4226 -vn 0.7071 0.7071 0.0000 +vn 0.7071 0.7071 -0.0000 vn 0.2988 -0.2988 -0.9063 vn -0.2988 0.2988 0.9063 vn 0.6409 -0.6409 0.4226 @@ -577,7 +7824,7 @@ vn 0.2988 0.2988 -0.9063 vn -0.2988 -0.2988 0.9063 vn 0.6409 0.6409 0.4226 vn -0.6409 -0.6409 -0.4226 -vn 0.8660 -0.5000 0.0000 +vn 0.8660 -0.5000 -0.0000 vn -0.2113 -0.3660 -0.9063 vn 0.2113 0.3660 0.9063 vn -0.4532 -0.7849 0.4226 @@ -592,7 +7839,7 @@ vn -0.3660 0.2113 -0.9063 vn 0.3660 -0.2113 0.9063 vn -0.7849 0.4532 0.4226 vn 0.7849 -0.4532 -0.4226 -vn 0.5000 0.8660 0.0000 +vn 0.5000 0.8660 -0.0000 vn 0.3660 -0.2113 -0.9063 vn -0.3660 0.2113 0.9063 vn 0.7849 -0.4532 0.4226 @@ -607,12 +7854,12 @@ vn 0.4082 0.1094 -0.9063 vn -0.4082 -0.1094 0.9063 vn 0.8754 0.2346 0.4226 vn -0.8754 -0.2346 -0.4226 -vn -0.9659 -0.2588 0.0000 +vn -0.9659 -0.2588 -0.0000 vn -0.1094 0.4082 -0.9063 vn 0.1094 -0.4082 0.9063 vn -0.2346 0.8754 0.4226 vn 0.2346 -0.8754 -0.4226 -vn 0.9659 0.2588 0.0000 +vn 0.9659 0.2588 -0.0000 vn 0.1094 -0.4082 -0.9063 vn -0.1094 0.4082 0.9063 vn 0.2346 -0.8754 0.4226 @@ -632,7 +7879,7 @@ vn 0.3660 0.2113 -0.9063 vn -0.3660 -0.2113 0.9063 vn 0.7849 0.4532 0.4226 vn -0.7849 -0.4532 -0.4226 -vn 0.5000 -0.8660 -0.0000 +vn 0.5000 -0.8660 0.0000 vn -0.3660 -0.2113 -0.9063 vn 0.3660 0.2113 0.9063 vn -0.7849 -0.4532 0.4226 @@ -658,5891 +7905,317 @@ vn 0.4082 -0.1094 0.9063 vn -0.8754 0.2346 0.4226 vn 0.8754 -0.2346 -0.4226 s off -f 25/25/3 26/26/3 27/27/3 28/28/3 -f 28/28/4 27/27/4 29/29/4 30/30/4 -f 26/26/5 25/25/5 31/31/5 32/32/5 -f 27/27/6 26/26/6 32/33/6 29/34/6 -f 25/25/7 28/28/7 30/35/7 31/36/7 -f 33/37/8 34/38/8 35/39/8 36/40/8 -f 36/40/9 35/39/9 37/41/9 38/42/9 -f 34/38/10 33/37/10 39/43/10 40/44/10 -f 35/39/11 34/38/11 40/45/11 37/46/11 -f 33/37/12 36/40/12 38/47/12 39/48/12 -f 41/49/13 42/50/13 43/51/13 44/52/13 -f 44/52/14 43/51/14 45/53/14 46/54/14 -f 42/50/15 41/49/15 47/55/15 48/56/15 -f 43/51/16 42/50/16 48/57/16 45/58/16 -f 41/49/17 44/52/17 46/59/17 47/60/17 -f 49/61/18 50/62/18 51/63/18 52/64/18 -f 52/64/19 51/63/19 53/65/19 54/66/19 -f 50/62/20 49/61/20 55/67/20 56/68/20 -f 51/63/21 50/62/21 56/69/21 53/70/21 -f 49/61/22 52/64/22 54/71/22 55/72/22 -f 57/73/23 58/74/23 59/75/23 60/76/23 -f 60/76/24 59/75/24 61/77/24 62/78/24 -f 58/74/25 57/73/25 63/79/25 64/80/25 -f 59/75/26 58/74/26 64/81/26 61/82/26 -f 57/73/27 60/76/27 62/83/27 63/84/27 -f 65/85/28 66/86/28 67/87/28 68/88/28 -f 68/88/29 67/87/29 69/89/29 70/90/29 -f 66/86/30 65/85/30 71/91/30 72/92/30 -f 67/87/31 66/86/31 72/93/31 69/94/31 -f 65/85/32 68/88/32 70/95/32 71/96/32 -f 73/97/33 74/98/33 75/99/33 76/100/33 -f 76/100/34 75/99/34 77/101/34 78/102/34 -f 74/98/35 73/97/35 79/103/35 80/104/35 -f 75/99/36 74/98/36 80/105/36 77/106/36 -f 73/97/37 76/100/37 78/107/37 79/108/37 -f 81/109/38 82/110/38 83/111/38 84/112/38 -f 84/112/39 83/111/39 85/113/39 86/114/39 -f 82/110/40 81/109/40 87/115/40 88/116/40 -f 83/111/41 82/110/41 88/117/41 85/118/41 -f 81/109/42 84/112/42 86/119/42 87/120/42 -f 89/121/43 90/122/43 91/123/43 92/124/43 -f 92/124/44 91/123/44 93/125/44 94/126/44 -f 90/122/45 89/121/45 95/127/45 96/128/45 -f 91/123/46 90/122/46 96/129/46 93/130/46 -f 89/121/47 92/124/47 94/131/47 95/132/47 -f 97/133/48 98/134/48 99/135/48 100/136/48 -f 100/136/49 99/135/49 101/137/49 102/138/49 -f 98/134/50 97/133/50 103/139/50 104/140/50 -f 99/135/51 98/134/51 104/141/51 101/142/51 -f 97/133/52 100/136/52 102/143/52 103/144/52 -f 105/145/53 106/146/53 107/147/53 108/148/53 -f 108/148/54 107/147/54 109/149/54 110/150/54 -f 106/146/55 105/145/55 111/151/55 112/152/55 -f 107/147/56 106/146/56 112/153/56 109/154/56 -f 105/145/57 108/148/57 110/155/57 111/156/57 -f 113/157/58 114/158/58 115/159/58 116/160/58 -f 116/160/59 115/159/59 117/161/59 118/162/59 -f 114/158/60 113/157/60 119/163/60 120/164/60 -f 115/159/61 114/158/61 120/165/61 117/166/61 -f 113/157/62 116/160/62 118/167/62 119/168/62 -f 121/169/63 122/170/63 123/171/63 124/172/63 -f 124/172/64 123/171/64 125/173/64 126/174/64 -f 122/170/65 121/169/65 127/175/65 128/176/65 -f 123/171/66 122/170/66 128/177/66 125/178/66 -f 121/169/67 124/172/67 126/179/67 127/180/67 -f 129/181/68 130/182/68 131/183/68 132/184/68 -f 132/184/69 131/183/69 133/185/69 134/186/69 -f 130/182/70 129/181/70 135/187/70 136/188/70 -f 131/183/71 130/182/71 136/189/71 133/190/71 -f 129/181/72 132/184/72 134/191/72 135/192/72 -f 137/193/73 138/194/73 139/195/73 140/196/73 -f 140/196/74 139/195/74 141/197/74 142/198/74 -f 138/194/75 137/193/75 143/199/75 144/200/75 -f 139/195/76 138/194/76 144/201/76 141/202/76 -f 137/193/77 140/196/77 142/203/77 143/204/77 -f 145/205/78 146/206/78 147/207/78 148/208/78 -f 148/208/79 147/207/79 149/209/79 150/210/79 -f 146/206/80 145/205/80 151/211/80 152/212/80 -f 147/207/81 146/206/81 152/213/81 149/214/81 -f 145/205/82 148/208/82 150/215/82 151/216/82 -f 153/217/83 154/218/83 155/219/83 156/220/83 -f 156/220/84 155/219/84 157/221/84 158/222/84 -f 154/218/85 153/217/85 159/223/85 160/224/85 -f 155/219/86 154/218/86 160/225/86 157/226/86 -f 153/217/87 156/220/87 158/227/87 159/228/87 -f 161/229/88 162/230/88 163/231/88 164/232/88 -f 164/232/89 163/231/89 165/233/89 166/234/89 -f 162/230/90 161/229/90 167/235/90 168/236/90 -f 163/231/91 162/230/91 168/237/91 165/238/91 -f 161/229/92 164/232/92 166/239/92 167/240/92 -f 169/241/93 170/242/93 171/243/93 172/244/93 -f 172/244/94 171/243/94 173/245/94 174/246/94 -f 170/242/95 169/241/95 175/247/95 176/248/95 -f 171/243/96 170/242/96 176/249/96 173/250/96 -f 169/241/97 172/244/97 174/251/97 175/252/97 -f 177/253/98 178/254/98 179/255/98 180/256/98 -f 180/256/99 179/255/99 181/257/99 182/258/99 -f 178/254/100 177/253/100 183/259/100 184/260/100 -f 179/255/101 178/254/101 184/261/101 181/262/101 -f 177/253/102 180/256/102 182/263/102 183/264/102 -f 185/265/103 186/266/103 187/267/103 188/268/103 -f 188/268/104 187/267/104 189/269/104 190/270/104 -f 186/266/105 185/265/105 191/271/105 192/272/105 -f 187/267/106 186/266/106 192/273/106 189/274/106 -f 185/265/107 188/268/107 190/275/107 191/276/107 -f 193/277/108 194/278/108 195/279/108 196/280/108 -f 196/280/109 195/279/109 197/281/109 198/282/109 -f 194/278/110 193/277/110 199/283/110 200/284/110 -f 195/279/111 194/278/111 200/285/111 197/286/111 -f 193/277/112 196/280/112 198/287/112 199/288/112 -f 201/289/113 202/290/113 203/291/113 204/292/113 -f 204/292/114 203/291/114 205/293/114 206/294/114 -f 202/290/115 201/289/115 207/295/115 208/296/115 -f 203/291/116 202/290/116 208/297/116 205/298/116 -f 201/289/117 204/292/117 206/299/117 207/300/117 -f 209/301/118 210/302/118 211/303/118 212/304/118 -f 212/304/119 211/303/119 213/305/119 214/306/119 -f 210/302/120 209/301/120 215/307/120 216/308/120 -f 211/303/121 210/302/121 216/309/121 213/310/121 -f 209/301/122 212/304/122 214/311/122 215/312/122 -o Plane.001 +f 1683/2380/604 1684/2381/604 1685/2382/604 +f 1686/2383/605 1687/2384/605 1684/2381/605 +f 1685/2382/606 1688/2385/606 1683/2380/606 +f 1683/2380/607 1689/2386/607 1686/2383/607 +f 1684/2381/608 1690/2387/608 1685/2382/608 +f 1691/2388/609 1692/2389/609 1693/2390/609 +f 1694/2391/610 1695/2392/610 1692/2389/610 +f 1693/2390/611 1696/2393/611 1691/2388/611 +f 1694/2391/612 1696/2394/612 1697/2395/612 +f 1692/2389/613 1698/2396/613 1693/2390/613 +f 1699/2397/614 1700/2398/614 1701/2399/614 +f 1702/2400/615 1703/2401/615 1700/2398/615 +f 1701/2399/616 1704/2402/616 1699/2397/616 +f 1699/2397/617 1705/2403/617 1702/2400/617 +f 1700/2398/618 1706/2404/618 1701/2399/618 +f 1707/2405/619 1708/2406/619 1709/2407/619 +f 1708/2406/620 1710/2408/620 1711/2409/620 +f 1709/2407/621 1712/2410/621 1707/2405/621 +f 1707/2405/622 1710/2411/622 1713/2412/622 +f 1708/2406/623 1714/2413/623 1709/2407/623 +f 1715/2414/624 1716/2415/624 1717/2416/624 +f 1718/2417/625 1719/2418/625 1716/2415/625 +f 1715/2414/626 1720/2419/626 1721/2420/626 +f 1715/2414/627 1722/2421/627 1718/2417/627 +f 1716/2415/628 1720/2422/628 1717/2416/628 +f 1723/2423/629 1724/2424/629 1725/2425/629 +f 1724/2424/630 1726/2426/630 1727/2427/630 +f 1723/2423/631 1728/2428/631 1729/2429/631 +f 1723/2423/632 1726/2430/632 1730/2431/632 +f 1724/2424/633 1728/2432/633 1725/2425/633 +f 1731/2433/634 1732/2434/634 1733/2435/634 +f 1734/2436/635 1735/2437/635 1732/2434/635 +f 1733/2435/636 1736/2438/636 1731/2433/636 +f 1734/2436/637 1736/2439/637 1737/2440/637 +f 1732/2434/638 1738/2441/638 1733/2435/638 +f 1739/2442/639 1740/2443/639 1741/2444/639 +f 1740/2443/640 1742/2445/640 1743/2446/640 +f 1741/2444/641 1744/2447/641 1739/2442/641 +f 1745/2448/642 1744/2449/642 1742/2450/642 +f 1740/2443/643 1746/2451/643 1741/2444/643 +f 1747/2452/644 1748/2453/644 1749/2454/644 +f 1750/2455/645 1751/2456/645 1748/2453/645 +f 1749/2454/646 1752/2457/646 1747/2452/646 +f 1747/2452/647 1753/2458/647 1750/2455/647 +f 1748/2453/648 1754/2459/648 1749/2454/648 +f 1755/2460/649 1756/2461/649 1757/2462/649 +f 1756/2461/650 1758/2463/650 1759/2464/650 +f 1755/2460/651 1760/2465/651 1761/2466/651 +f 1755/2460/652 1758/2467/652 1762/2468/652 +f 1756/2461/653 1760/2469/653 1757/2462/653 +f 1763/2470/654 1764/2471/654 1765/2472/654 +f 1766/2473/655 1767/2474/655 1764/2471/655 +f 1765/2472/656 1768/2475/656 1763/2470/656 +f 1763/2470/657 1769/2476/657 1766/2473/657 +f 1764/2471/658 1770/2477/658 1765/2472/658 +f 1771/2478/659 1772/2479/659 1773/2480/659 +f 1774/2481/660 1775/2482/660 1772/2479/660 +f 1771/2478/661 1776/2483/661 1777/2484/661 +f 1774/2481/662 1777/2485/662 1778/2486/662 +f 1772/2479/663 1776/2487/663 1773/2480/663 +f 1779/2488/664 1780/2489/664 1781/2490/664 +f 1782/2491/665 1783/2492/665 1780/2489/665 +f 1781/2490/666 1784/2493/666 1779/2488/666 +f 1782/2491/667 1784/2494/667 1785/2495/667 +f 1781/2490/668 1783/2496/668 1786/2497/668 +f 1787/2498/669 1788/2499/669 1789/2500/669 +f 1788/2499/670 1790/2501/670 1791/2502/670 +f 1789/2500/671 1792/2503/671 1787/2498/671 +f 1787/2498/672 1790/2504/672 1793/2505/672 +f 1788/2499/673 1794/2506/673 1789/2500/673 +f 1795/2507/674 1796/2508/674 1797/2509/674 +f 1796/2508/675 1798/2510/675 1799/2511/675 +f 1797/2509/676 1800/2512/676 1795/2507/676 +f 1795/2507/677 1798/2513/677 1801/2514/677 +f 1796/2508/678 1802/2515/678 1797/2509/678 +f 1803/2516/679 1804/2517/679 1805/2518/679 +f 1806/2519/680 1807/2520/680 1804/2517/680 +f 1805/2518/681 1808/2521/681 1803/2516/681 +f 1806/2519/682 1808/2522/682 1809/2523/682 +f 1804/2517/683 1810/2524/683 1805/2518/683 +f 1811/2525/684 1812/2526/684 1813/2527/684 +f 1812/2526/685 1814/2528/685 1815/2529/685 +f 1813/2527/686 1816/2530/686 1811/2525/686 +f 1811/2525/687 1814/2531/687 1817/2532/687 +f 1812/2526/688 1818/2533/688 1813/2527/688 +f 1819/2534/689 1820/2535/689 1821/2536/689 +f 1820/2535/690 1822/2537/690 1823/2538/690 +f 1821/2536/691 1824/2539/691 1819/2534/691 +f 1825/2540/692 1824/2541/692 1822/2542/692 +f 1820/2535/693 1826/2543/693 1821/2536/693 +f 1827/2544/694 1828/2545/694 1829/2546/694 +f 1830/2547/695 1831/2548/695 1828/2545/695 +f 1829/2546/696 1832/2549/696 1827/2544/696 +f 1827/2544/697 1833/2550/697 1830/2547/697 +f 1828/2545/698 1834/2551/698 1829/2546/698 +f 1835/2552/699 1836/2553/699 1837/2554/699 +f 1838/2555/700 1839/2556/700 1836/2553/700 +f 1835/2552/701 1840/2557/701 1841/2558/701 +f 1838/2555/702 1841/2559/702 1842/2560/702 +f 1836/2553/703 1840/2561/703 1837/2554/703 +f 1843/2562/704 1844/2563/704 1845/2564/704 +f 1846/2565/705 1847/2566/705 1844/2563/705 +f 1843/2562/706 1848/2567/706 1849/2568/706 +f 1846/2565/707 1849/2569/707 1850/2570/707 +f 1845/2564/708 1847/2571/708 1848/2572/708 +f 1851/2573/709 1852/2574/709 1853/2575/709 +f 1852/2574/710 1854/2576/710 1855/2577/710 +f 1851/2573/711 1856/2578/711 1857/2579/711 +f 1851/2573/712 1854/2580/712 1858/2581/712 +f 1852/2574/713 1856/2582/713 1853/2575/713 +f 1859/2583/714 1860/2584/714 1861/2585/714 +f 1862/2586/715 1863/2587/715 1860/2584/715 +f 1859/2583/716 1864/2588/716 1865/2589/716 +f 1859/2583/717 1866/2590/717 1862/2586/717 +f 1860/2584/718 1864/2591/718 1861/2585/718 +f 1867/2592/719 1868/2593/719 1869/2594/719 +f 1870/2595/720 1871/2596/720 1868/2593/720 +f 1867/2592/721 1872/2597/721 1873/2598/721 +f 1870/2595/722 1873/2599/722 1874/2600/722 +f 1869/2594/723 1871/2601/723 1872/2602/723 +f 1683/2380/604 1686/2383/604 1684/2381/604 +f 1686/2383/605 1689/2603/605 1687/2384/605 +f 1685/2382/606 1690/2604/606 1688/2385/606 +f 1683/2380/607 1688/2605/607 1689/2386/607 +f 1684/2381/608 1687/2606/608 1690/2387/608 +f 1691/2388/609 1694/2391/609 1692/2389/609 +f 1694/2391/610 1697/2607/610 1695/2392/610 +f 1693/2390/611 1698/2608/611 1696/2393/611 +f 1694/2391/612 1691/2388/612 1696/2394/612 +f 1692/2389/613 1695/2609/613 1698/2396/613 +f 1699/2397/614 1702/2400/614 1700/2398/614 +f 1702/2400/615 1705/2610/615 1703/2401/615 +f 1701/2399/616 1706/2611/616 1704/2402/616 +f 1699/2397/617 1704/2612/617 1705/2403/617 +f 1700/2398/618 1703/2613/618 1706/2404/618 +f 1707/2405/619 1713/2412/619 1708/2406/619 +f 1708/2406/620 1713/2412/620 1710/2408/620 +f 1709/2407/621 1714/2614/621 1712/2410/621 +f 1707/2405/622 1712/2615/622 1710/2411/622 +f 1708/2406/623 1711/2616/623 1714/2413/623 +f 1715/2414/624 1718/2417/624 1716/2415/624 +f 1718/2417/625 1722/2617/625 1719/2418/625 +f 1715/2414/626 1717/2416/626 1720/2419/626 +f 1715/2414/627 1721/2618/627 1722/2421/627 +f 1716/2415/628 1719/2619/628 1720/2422/628 +f 1723/2423/629 1730/2431/629 1724/2424/629 +f 1724/2424/630 1730/2431/630 1726/2426/630 +f 1723/2423/631 1725/2425/631 1728/2428/631 +f 1723/2423/632 1729/2620/632 1726/2430/632 +f 1724/2424/633 1727/2621/633 1728/2432/633 +f 1731/2433/634 1734/2436/634 1732/2434/634 +f 1734/2436/635 1737/2622/635 1735/2437/635 +f 1733/2435/636 1738/2623/636 1736/2438/636 +f 1734/2436/637 1731/2433/637 1736/2439/637 +f 1732/2434/638 1735/2624/638 1738/2441/638 +f 1739/2442/639 1745/2448/639 1740/2443/639 +f 1740/2443/640 1745/2448/640 1742/2445/640 +f 1741/2444/641 1746/2625/641 1744/2447/641 +f 1745/2448/642 1739/2442/642 1744/2449/642 +f 1740/2443/643 1743/2626/643 1746/2451/643 +f 1747/2452/644 1750/2455/644 1748/2453/644 +f 1750/2455/645 1753/2627/645 1751/2456/645 +f 1749/2454/646 1754/2628/646 1752/2457/646 +f 1747/2452/647 1752/2629/647 1753/2458/647 +f 1748/2453/648 1751/2630/648 1754/2459/648 +f 1755/2460/649 1762/2468/649 1756/2461/649 +f 1756/2461/650 1762/2468/650 1758/2463/650 +f 1755/2460/651 1757/2462/651 1760/2465/651 +f 1755/2460/652 1761/2631/652 1758/2467/652 +f 1756/2461/653 1759/2632/653 1760/2469/653 +f 1763/2470/654 1766/2473/654 1764/2471/654 +f 1766/2473/655 1769/2633/655 1767/2474/655 +f 1765/2472/656 1770/2634/656 1768/2475/656 +f 1763/2470/657 1768/2635/657 1769/2476/657 +f 1764/2471/658 1767/2636/658 1770/2477/658 +f 1771/2478/659 1774/2481/659 1772/2479/659 +f 1774/2481/660 1778/2637/660 1775/2482/660 +f 1771/2478/661 1773/2480/661 1776/2483/661 +f 1774/2481/662 1771/2478/662 1777/2485/662 +f 1772/2479/663 1775/2638/663 1776/2487/663 +f 1779/2488/664 1782/2491/664 1780/2489/664 +f 1782/2491/665 1785/2639/665 1783/2492/665 +f 1781/2490/666 1786/2640/666 1784/2493/666 +f 1782/2491/667 1779/2488/667 1784/2494/667 +f 1781/2490/668 1780/2489/668 1783/2496/668 +f 1787/2498/669 1793/2505/669 1788/2499/669 +f 1788/2499/670 1793/2505/670 1790/2501/670 +f 1789/2500/671 1794/2641/671 1792/2503/671 +f 1787/2498/672 1792/2642/672 1790/2504/672 +f 1788/2499/673 1791/2643/673 1794/2506/673 +f 1795/2507/674 1801/2514/674 1796/2508/674 +f 1796/2508/675 1801/2514/675 1798/2510/675 +f 1797/2509/676 1802/2644/676 1800/2512/676 +f 1795/2507/677 1800/2645/677 1798/2513/677 +f 1796/2508/678 1799/2646/678 1802/2515/678 +f 1803/2516/679 1806/2519/679 1804/2517/679 +f 1806/2519/680 1809/2647/680 1807/2520/680 +f 1805/2518/681 1810/2648/681 1808/2521/681 +f 1806/2519/682 1803/2516/682 1808/2522/682 +f 1804/2517/683 1807/2649/683 1810/2524/683 +f 1811/2525/684 1817/2532/684 1812/2526/684 +f 1812/2526/685 1817/2532/685 1814/2528/685 +f 1813/2527/686 1818/2650/686 1816/2530/686 +f 1811/2525/687 1816/2651/687 1814/2531/687 +f 1812/2526/688 1815/2652/688 1818/2533/688 +f 1819/2534/689 1825/2540/689 1820/2535/689 +f 1820/2535/690 1825/2540/690 1822/2537/690 +f 1821/2536/691 1826/2653/691 1824/2539/691 +f 1825/2540/692 1819/2534/692 1824/2541/692 +f 1820/2535/693 1823/2654/693 1826/2543/693 +f 1827/2544/694 1830/2547/694 1828/2545/694 +f 1830/2547/695 1833/2655/695 1831/2548/695 +f 1829/2546/696 1834/2656/696 1832/2549/696 +f 1827/2544/697 1832/2657/697 1833/2550/697 +f 1828/2545/698 1831/2658/698 1834/2551/698 +f 1835/2552/699 1838/2555/699 1836/2553/699 +f 1838/2555/700 1842/2659/700 1839/2556/700 +f 1835/2552/701 1837/2554/701 1840/2557/701 +f 1838/2555/702 1835/2552/702 1841/2559/702 +f 1836/2553/703 1839/2660/703 1840/2561/703 +f 1843/2562/704 1846/2565/704 1844/2563/704 +f 1846/2565/705 1850/2661/705 1847/2566/705 +f 1843/2562/706 1845/2564/706 1848/2567/706 +f 1846/2565/707 1843/2562/707 1849/2569/707 +f 1845/2564/708 1844/2563/708 1847/2571/708 +f 1851/2573/709 1858/2581/709 1852/2574/709 +f 1852/2574/710 1858/2581/710 1854/2576/710 +f 1851/2573/711 1853/2575/711 1856/2578/711 +f 1851/2573/712 1857/2662/712 1854/2580/712 +f 1852/2574/713 1855/2663/713 1856/2582/713 +f 1859/2583/714 1862/2586/714 1860/2584/714 +f 1862/2586/715 1866/2664/715 1863/2587/715 +f 1859/2583/716 1861/2585/716 1864/2588/716 +f 1859/2583/717 1865/2665/717 1866/2590/717 +f 1860/2584/718 1863/2666/718 1864/2591/718 +f 1867/2592/719 1870/2595/719 1868/2593/719 +f 1870/2595/720 1874/2667/720 1871/2596/720 +f 1867/2592/721 1869/2594/721 1872/2597/721 +f 1870/2595/722 1867/2592/722 1873/2599/722 +f 1869/2594/723 1868/2593/723 1871/2601/723 +o Pressure +v 0.000000 2.000544 -3.159371 +v -0.216506 2.113832 -3.106544 +v -0.216506 2.340409 -3.000889 +v -0.125000 2.423342 -2.962217 v 0.000000 2.453697 -2.948062 v 0.125000 2.423342 -2.962217 v 0.216506 2.340409 -3.000889 v 0.250000 2.227120 -3.053716 v 0.216506 2.113832 -3.106544 -v 0.000000 2.566986 -2.895234 -v 0.324759 2.057188 -3.132957 -v 0.375000 2.227120 -3.053716 -v 0.324760 2.397053 -2.974475 -v 0.187500 2.521452 -2.916467 -vt 1.000000 0.000000 -vt 1.000000 0.250000 -vt 0.000000 0.250000 -vt -0.000000 -0.000000 +v 0.125000 2.030899 -3.145216 +v -0.125000 2.030899 -3.145216 +v -0.250000 2.227120 -3.053716 +vt 0.500000 0.000000 +vt 0.066987 0.250000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 vt 1.000000 0.500000 -vt -0.000000 0.500000 -vt 1.000000 0.750000 -vt -0.000000 0.750000 -vt 0.000000 1.000000 -vt 1.000000 1.000000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.250000 0.066987 +vt 0.000000 0.500000 vn 0.0000 0.4226 -0.9063 s off -f 221/313/123 220/314/123 224/315/123 223/316/123 -f 220/314/123 219/317/123 225/318/123 224/315/123 -f 219/317/123 218/319/123 226/320/123 225/318/123 -f 222/321/123 226/320/123 218/319/123 217/322/123 -o Plane -v -0.500000 -0.000000 0.125000 -v -0.500000 0.000000 -0.375000 -v 0.500000 0.000000 -0.375000 -v 0.500000 -0.000000 0.125000 -v -0.500000 2.500000 0.125000 -v 0.500000 2.500000 0.125000 -v 0.500000 2.500000 -0.375000 -v -0.500000 2.500000 -0.375000 -v -1.250000 1.750000 0.125000 -v -1.250000 1.750000 -0.375000 -v -1.250000 0.750000 -0.375000 -v -1.250000 0.750000 0.125000 -v 1.250000 1.750000 0.125000 -v 1.250000 0.750000 0.125000 -v 1.250000 0.750000 -0.375000 -v 1.250000 1.750000 -0.375000 -v 1.039364 1.680519 0.125000 -v 1.125000 1.250000 0.125000 -v 1.039364 0.819481 0.125000 -v 0.430518 2.289365 0.125000 -v 0.795495 2.045496 0.125000 -v -0.430519 2.289364 0.125000 -v 0.000000 2.375000 0.125000 -v -1.039364 1.680519 0.125000 -v -0.795495 2.045495 0.125000 -v -1.039364 0.819481 0.125000 -v -1.125000 1.250000 0.125000 -v -0.430519 0.210636 0.125000 -v -0.795495 0.454505 0.125000 -v 0.430519 0.210635 0.125000 -v 0.000000 0.125000 0.125000 -v 0.795495 0.454505 0.125000 -v -1.250000 1.750000 -0.625000 -v -1.250000 1.750000 -3.000000 -v -1.250000 1.376000 -2.625000 -v -1.250000 0.751000 -2.625000 -v -1.250000 0.750000 -0.625000 -v 0.500000 0.000000 -1.625000 -v 1.000000 0.500000 -2.125000 -v 1.000000 0.500000 -3.750000 -v 1.250000 0.750000 -3.750000 -v 1.250000 0.750000 -0.625000 -v 0.500000 0.000000 -0.625000 -v 1.250000 1.750000 -3.000000 -v 1.250000 1.750000 -0.625000 -v 1.250000 1.625000 -3.750000 -v 1.250000 1.750000 -3.375000 -v -0.500000 0.000000 -0.625000 -v -0.500000 0.000000 -1.625000 -v -1.000000 0.500000 -2.625000 -v -1.000000 0.500000 -2.125000 -v 1.000000 1.750000 -3.375000 -v 1.000000 1.750000 -3.000000 -v -1.250000 0.750000 -3.750000 -v -1.250000 0.751000 -3.625000 -v -1.250000 1.376000 -3.625000 -v -1.250000 1.625000 -3.750000 -v -1.250000 1.750000 -3.375000 -v -1.000000 0.500000 -3.750000 -v -1.000000 0.501000 -3.625000 -v -1.312500 0.501000 -3.500000 -v -1.312500 0.501000 -2.750000 -v -1.312500 0.626000 -2.750000 -v -1.312500 0.626000 -3.500000 -v -1.312500 0.751000 -3.500000 -v -1.312500 0.751000 -2.750000 -v -1.312500 0.876000 -2.750000 -v -1.312500 0.876000 -3.500000 -v -1.312500 1.001000 -3.500000 -v -1.312500 1.001000 -2.750000 -v -1.312500 1.126000 -2.750000 -v -1.312500 1.126000 -3.500000 -v -1.312500 1.376000 -3.625000 -v -1.312500 1.251000 -3.500000 -v -1.312500 1.251000 -2.750000 -v -1.312500 1.376000 -2.625000 -v -1.312500 0.251000 -3.625000 -v -1.312500 0.251000 -2.625000 -v -1.312500 0.376000 -2.750000 -v -1.312500 0.376000 -3.500000 -v -1.187500 1.001000 -3.500000 -v -1.187500 1.001000 -2.750000 -v -1.187500 0.876000 -3.500000 -v -1.187500 0.626000 -2.750000 -v -1.187500 0.626000 -3.500000 -v -1.187500 0.751000 -3.500000 -v -1.187500 1.251000 -3.500000 -v -1.187500 1.126000 -3.500000 -v -1.187500 1.126000 -2.750000 -v -1.187500 1.251000 -2.750000 -v -1.187500 0.876000 -2.750000 -v -1.187500 0.751000 -2.750000 -v -1.187500 0.376000 -3.500000 -v -1.187500 0.376000 -2.750000 -v -1.187500 0.501000 -2.750000 -v -1.187500 0.501000 -3.500000 -v 1.000000 0.750000 -3.750000 -v 1.000000 1.625000 -3.750000 -v -1.000000 1.625000 -3.750000 -v -1.000000 0.750000 -3.750000 -v -1.000000 1.750000 -3.375000 -v -1.000000 1.750000 -3.000000 -v -0.500000 2.500000 -2.625000 -v 0.500000 2.500000 -2.625000 -v 0.500000 2.250000 -2.750000 -v -0.500000 2.250000 -2.750000 -v -0.344030 0.708152 -0.175597 -v -0.424630 0.633153 -0.128904 -v -0.388541 0.618205 -0.128904 -v -0.328091 0.674453 -0.163924 -v -0.420670 0.523129 -0.082211 -v -0.334466 0.442528 -0.062870 -v -0.320918 0.475236 -0.079378 -v -0.385571 0.535686 -0.093884 -v -0.216518 0.438567 -0.082211 -v -0.135918 0.513565 -0.128904 -v -0.172007 0.528513 -0.128904 -v -0.232457 0.472265 -0.093884 -v -0.139879 0.623590 -0.175597 -v -0.174978 0.611032 -0.163924 -v -0.226082 0.704190 -0.194938 -v -0.239630 0.671482 -0.178429 -v -0.208096 0.543462 -0.128904 -v -0.210077 0.598474 -0.152250 -v -0.253178 0.638775 -0.161921 -v -0.312152 0.640755 -0.152250 -v -0.352451 0.603256 -0.128904 -v -0.350471 0.548244 -0.105557 -v -0.307370 0.507944 -0.095887 -v -0.248396 0.505963 -0.105557 -v -0.222349 0.496668 -0.037240 -v -0.161900 0.552916 -0.072260 -v -0.197989 0.567865 -0.072260 -v -0.238288 0.530366 -0.048913 -v -0.164869 0.635435 -0.107280 -v -0.199968 0.622877 -0.095606 -v -0.229523 0.695885 -0.121785 -v -0.243071 0.663178 -0.105277 -v -0.317984 0.698857 -0.107280 -v -0.302044 0.665158 -0.095606 -v -0.378433 0.642608 -0.072260 -v -0.342344 0.627659 -0.072260 -v -0.375462 0.560089 -0.037240 -v -0.340364 0.572647 -0.048913 -v -0.310810 0.499639 -0.022734 -v -0.297262 0.532347 -0.039243 -v -0.391169 0.267836 0.136894 -v -0.014465 0.192905 0.136894 -v -0.014465 0.302280 -0.081856 -v -0.349313 0.368885 -0.081856 -v -0.025414 0.247242 -0.109375 -v -0.360261 0.313848 -0.109375 -v -0.025414 0.137868 0.109375 -v -0.402117 0.212799 0.109375 -v 0.230970 1.345671 -0.500000 -v 0.095671 1.480970 -0.500000 -v 0.071753 1.423227 -0.500000 -v 0.173227 1.321753 -0.500000 -v -0.047836 1.365485 -0.500000 -v -0.115485 1.297835 -0.500000 -v -0.115485 1.202165 -0.500000 -v -0.047836 1.134515 -0.500000 -v 0.047834 1.134515 -0.500000 -v 0.115485 1.202165 -0.500000 -v 0.115485 1.297835 -0.500000 -v 0.047834 1.365485 -0.500000 -v 0.230970 1.154329 -0.500000 -v 0.173227 1.178247 -0.500000 -v 0.095671 1.019030 -0.500000 -v 0.071753 1.076773 -0.500000 -v -0.095671 1.019030 -0.500000 -v -0.071753 1.076773 -0.500000 -v -0.230970 1.154329 -0.500000 -v -0.173227 1.178247 -0.500000 -v -0.230970 1.345671 -0.500000 -v -0.173227 1.321753 -0.500000 -v -0.095671 1.480970 -0.500000 -v -0.071753 1.423227 -0.500000 -v 0.115485 1.297835 -0.375000 -v 0.173227 1.321753 -0.375000 -v 0.071753 1.423227 -0.375000 -v 0.047834 1.365485 -0.375000 -v 0.115485 1.202165 -0.375000 -v 0.173227 1.178247 -0.375000 -v 0.047834 1.134515 -0.375000 -v 0.071753 1.076773 -0.375000 -v -0.047836 1.134515 -0.375000 -v -0.071753 1.076773 -0.375000 -v -0.115485 1.202165 -0.375000 -v -0.173227 1.178247 -0.375000 -v -0.115485 1.297835 -0.375000 -v -0.173227 1.321753 -0.375000 -v -0.047836 1.365485 -0.375000 -v -0.071753 1.423227 -0.375000 -v -0.191341 1.711940 -0.750000 -v -0.353553 1.603553 -0.750000 -v -0.461940 1.441342 -0.750000 -v -0.500000 1.250000 -0.750000 -v -0.461940 1.058658 -0.750000 -v -0.353553 0.896447 -0.750000 -v -0.191341 0.788060 -0.750000 -v 0.000000 0.750000 -0.750000 -v 0.191341 0.788060 -0.750000 -v 0.353553 0.896446 -0.750000 -v 0.461940 1.058658 -0.750000 -v 0.500000 1.250000 -0.750000 -v 0.461940 1.441342 -0.750000 -v 0.353553 1.603554 -0.750000 -v 0.191341 1.711940 -0.750000 -v 0.000000 1.750000 -0.750000 -v 1.039364 1.680519 -0.375000 -v 0.795495 2.045496 -0.375000 -v 0.430518 2.289365 -0.375000 -v 1.039364 0.819481 -0.375000 -v 1.125000 1.250000 -0.375000 -v 0.430519 0.210635 -0.375000 -v 0.795495 0.454505 -0.375000 -v -0.430519 0.210636 -0.375000 -v 0.000000 0.125000 -0.375000 -v -1.039364 0.819481 -0.375000 -v -0.795495 0.454505 -0.375000 -v -1.039364 1.680519 -0.375000 -v -1.125000 1.250000 -0.375000 -v -0.430519 2.289364 -0.375000 -v -0.795495 2.045495 -0.375000 -v 0.000000 2.375000 -0.375000 -v 0.500000 2.500000 -0.625000 -v -0.500000 2.500000 -0.625000 -v -0.430519 2.289364 -0.625000 -v 0.000000 2.375000 -0.625000 -v 0.430518 2.289365 -0.625000 -v 0.795495 2.045496 -0.625000 -v 1.039364 1.680519 -0.625000 -v 1.125000 1.250000 -0.625000 -v 1.039364 0.819481 -0.625000 -v 0.795495 0.454505 -0.625000 -v 0.430519 0.210635 -0.625000 -v 0.000000 0.125000 -0.625000 -v -0.430519 0.210636 -0.625000 -v -0.795495 0.454505 -0.625000 -v -1.039364 0.819481 -0.625000 -v -1.125000 1.250000 -0.625000 -v -1.039364 1.680519 -0.625000 -v -0.795495 2.045495 -0.625000 -v -1.000000 1.645607 -3.832107 -v -1.000000 0.938500 -4.125000 -v -1.000000 0.231393 -3.832107 -v -1.000000 -0.061500 -3.125000 -v -1.000000 0.231393 -2.417893 -v -1.000000 0.938500 -2.125000 -v -1.000000 1.645607 -2.417893 -v -1.000000 1.938500 -3.125000 -v -1.000000 0.251000 -2.625000 -v -1.000000 1.376000 -2.625000 -v -1.000000 0.251000 -3.625000 -v -1.000000 1.376000 -3.625000 -v 1.000000 1.645607 -3.832107 -v 1.000000 1.938500 -3.125000 -v 1.000000 1.645607 -2.417893 -v 1.000000 0.938500 -2.125000 -v 1.000000 0.231393 -2.417893 -v 1.000000 -0.061500 -3.125000 -v 1.000000 0.231393 -3.832107 -v 1.000000 0.938500 -4.125000 -v 0.554916 2.356694 0.187500 -v 0.731694 2.179917 0.187500 -v 0.820084 2.268306 0.187500 -v 0.643306 2.445082 0.187500 -v 0.554916 2.356694 -0.312500 -v 0.643306 2.445082 -0.312500 -v 0.820084 2.268306 -0.312500 -v 0.731694 2.179917 -0.312500 -v -0.929916 0.518306 0.187500 -v -1.106694 0.695083 0.187500 -v -1.195084 0.606694 0.187500 -v -1.018306 0.429918 0.187500 -v -0.929916 0.518306 -0.312500 -v -1.018306 0.429918 -0.312500 -v -1.195084 0.606694 -0.312500 -v -1.106694 0.695083 -0.312500 -v 1.106694 0.695082 0.187500 -v 0.929916 0.518306 0.187500 -v 1.018306 0.429917 0.187500 -v 1.195082 0.606694 0.187500 -v 1.106694 0.695082 -0.312500 -v 1.195082 0.606694 -0.312500 -v 1.018306 0.429917 -0.312500 -v 0.929916 0.518306 -0.312500 -v -0.731694 2.179918 0.187500 -v -0.554916 2.356694 0.187500 -v -0.643306 2.445083 0.187500 -v -0.820082 2.268306 0.187500 -v -0.731694 2.179918 -0.312500 -v -0.820082 2.268306 -0.312500 -v -0.643306 2.445083 -0.312500 -v -0.554916 2.356694 -0.312500 -v 0.554916 2.356694 -2.375000 -v 0.731694 2.179917 -2.375000 -v 0.820084 2.268306 -2.375000 -v 0.643306 2.445082 -2.375000 -v 0.554916 2.356694 -2.750000 -v 0.643306 2.445082 -2.750000 -v 0.820084 2.268306 -2.875000 -v 0.731694 2.179917 -2.875000 -v -0.500000 2.250000 -2.625000 -v -1.000000 1.750000 -2.875000 -v 1.000000 1.750000 -2.875000 -v 0.500000 2.250000 -2.625000 -v 0.500000 2.215740 -2.715952 -v 0.500000 1.819230 -2.900848 -v 0.500000 1.872057 -3.014137 -v 0.500000 2.268567 -2.829241 -v -0.500000 2.268567 -2.829241 -v -0.500000 1.872057 -3.014137 -v -0.500000 1.819230 -2.900848 -v -0.500000 2.215740 -2.715952 -v -0.312500 2.438500 -2.750000 -v 0.312500 2.438500 -2.750000 -v -0.312500 2.385673 -2.636712 -v 0.312500 2.385673 -2.636712 -v -0.750000 1.887724 -3.247583 -v 0.750000 1.887724 -3.247583 -v 0.750000 2.039915 -3.445922 -v -0.750000 2.039915 -3.445922 -v 0.750000 1.544192 -3.511185 -v 0.750000 1.696383 -3.709523 -v 0.750000 1.944244 -3.676892 -v 0.750000 1.639863 -3.280215 -v -0.750000 1.944244 -3.676892 -v -0.750000 1.696383 -3.709523 -v -0.750000 1.544192 -3.511185 -v -0.750000 1.639863 -3.280215 -v -0.500000 0.125000 -2.750000 -v 0.500000 0.125000 -2.750000 -v 0.500000 0.125000 -1.750000 -v -0.500000 0.125000 -1.750000 -v 0.500000 0.500000 -2.750000 -v 0.500000 0.500000 -1.750000 -v -0.500000 0.500000 -1.750000 -v -0.500000 0.500000 -2.750000 -v -0.625000 0.187500 -4.125000 -v -0.625000 1.687500 -4.125000 -v 0.625000 1.687500 -4.125000 -v 0.625000 0.187500 -4.125000 -v 0.625000 1.687500 -3.625000 -v 0.625000 0.187500 -3.625000 -v -0.625000 0.187500 -3.625000 -v -0.625000 1.687500 -3.625000 -v -0.500000 1.562500 -4.875000 -v 0.500000 1.562500 -4.875000 -v 0.500000 0.312500 -4.875000 -v -0.500000 0.312500 -4.875000 -v 0.500000 0.312500 -4.125000 -v -0.500000 0.312500 -4.125000 -v -0.500000 1.562500 -4.125000 -v 0.500000 1.562500 -4.125000 -v 1.375000 1.658494 -2.187500 -v 0.875000 1.658494 -2.187500 -v 0.875000 1.658494 -2.437500 -v 1.375000 1.658494 -2.437500 -v 1.375000 2.091506 -2.187500 -v 0.875000 2.091506 -2.187500 -v 0.875000 1.875000 -2.062500 -v 1.375000 1.875000 -2.062500 -v 1.375000 1.875000 -2.562500 -v 0.875000 1.875000 -2.562500 -v 0.875000 2.091506 -2.437500 -v 1.375000 2.091506 -2.437500 -v 1.375000 1.983253 -2.375000 -v 1.375000 1.983253 -2.250000 -v 1.562500 1.983253 -2.250000 -v 1.562500 1.983253 -2.375000 -v 1.375000 1.766747 -2.250000 -v 1.375000 1.766747 -2.375000 -v 1.562500 1.766747 -2.375000 -v 1.562500 1.766747 -2.250000 -v 1.375000 1.875000 -2.187500 -v 1.562500 1.875000 -2.187500 -v 1.375000 1.875000 -2.437500 -v 1.562500 1.875000 -2.437500 -v 1.562500 1.712620 -2.406250 -v 1.562500 1.712620 -2.218750 -v 1.562500 1.875000 -2.125000 -v 1.562500 2.037380 -2.218750 -v 1.562500 2.037380 -2.406250 -v 1.562500 1.875000 -2.500000 -v 2.312500 1.875000 -2.500000 -v 2.312500 1.712620 -2.406250 -v 2.312500 1.712620 -2.218750 -v 2.312500 1.875000 -2.125000 -v 2.312500 2.037380 -2.218750 -v 2.312500 2.037380 -2.406250 -v 2.312500 1.875000 -2.187500 -v 2.312500 1.983253 -2.250000 -v 2.312500 1.983253 -2.375000 -v 2.312500 1.875000 -2.437500 -v 2.312500 1.766747 -2.375000 -v 2.312500 1.766747 -2.250000 -v 2.500000 1.766747 -2.250000 -v 2.500000 1.875000 -2.187500 -v 2.500000 1.983253 -2.250000 -v 2.500000 1.983253 -2.375000 -v 2.500000 1.766747 -2.375000 -v 2.500000 1.875000 -2.437500 -v 2.500000 1.875000 -2.062500 -v 2.500000 2.091506 -2.187500 -v 2.500000 2.091506 -2.437500 -v 2.500000 1.875000 -2.562500 -v 2.500000 1.658494 -2.437500 -v 2.500000 1.658494 -2.187500 -v 2.625000 2.091506 -2.187500 -v 2.625000 2.091506 -2.437500 -v 2.625000 1.658494 -2.437500 -v 2.625000 1.658494 -2.187500 -v 2.625000 1.875000 -2.062500 -v 2.625000 1.875000 -2.562500 -v 2.750000 1.983253 -2.375000 -v 2.750000 1.875000 -2.437500 -v 2.750000 1.766747 -2.375000 -v 2.750000 1.766747 -2.250000 -v 2.750000 1.875000 -2.187500 -v 2.750000 1.983253 -2.250000 -v -0.187500 1.625000 -4.125000 -v 0.187500 1.625000 -4.125000 -v 0.187500 1.625000 -5.000000 -v -0.187500 1.625000 -5.000000 -v -0.187500 1.669194 -5.397748 -v -0.187500 2.022748 -5.044194 -v -0.187500 2.287913 -5.309359 -v -0.187500 2.022748 -5.574524 -v -0.187500 1.845971 -5.574524 -v 0.187500 1.250000 -5.000000 -v -0.187500 1.250000 -5.000000 -v 0.187500 1.250000 -4.125000 -v -0.187500 1.250000 -4.125000 -v -0.125000 1.625000 -4.734835 -v 0.125000 1.625000 -4.734835 -v 0.125000 1.978553 -5.088388 -v -0.125000 1.978553 -5.088388 -v -0.125000 1.359835 -5.000000 -v -0.125000 1.713388 -5.353553 -v 0.125000 1.359835 -5.000000 -v 0.125000 1.713388 -5.353553 -v 0.187500 1.669194 -5.397748 -v 0.187500 2.022748 -5.044194 -v 0.187500 2.022748 -5.574524 -v 0.187500 1.845971 -5.574524 -v 0.187500 2.287913 -5.309359 -v -0.062500 2.597272 -4.558058 -v 0.062500 2.597272 -4.558058 -v 0.062500 2.774049 -4.734835 -v -0.062500 2.774049 -4.734835 -v 0.062500 2.066942 -5.088388 -v 0.062500 2.243718 -5.265165 -v -0.062500 2.243718 -5.265165 -v -0.062500 2.066942 -5.088388 -v -0.125000 2.423342 -2.962217 -v 0.000000 2.453697 -2.948062 -v 0.216506 2.113832 -3.106544 -v 0.125000 2.030899 -3.145216 -v 0.000000 2.000544 -3.159371 -v -0.125000 2.030899 -3.145216 -v -0.216506 2.113832 -3.106544 -v -0.250000 2.227120 -3.053716 -v -0.216506 2.340409 -3.000889 -v 0.000000 2.374456 -2.778129 -v 0.000000 2.487745 -2.725302 -v 0.000000 2.566986 -2.895234 -v 0.324759 1.977947 -2.963025 -v 0.216506 2.034591 -2.936611 -v 0.324759 2.057188 -3.132957 -v 0.375000 2.227120 -3.053716 -v 0.324760 2.397053 -2.974475 -v 0.187500 2.521452 -2.916467 -v 0.324760 2.317812 -2.804543 -v 0.187500 2.442212 -2.746534 +f 1875/2668/724 1876/2669/724 1877/2670/724 +f 1877/2670/724 1878/2671/724 1879/2672/724 +f 1879/2672/724 1880/2673/724 1881/2674/724 +f 1881/2674/724 1882/2675/724 1883/2676/724 +f 1883/2676/724 1884/2677/724 1875/2668/724 +f 1875/2668/724 1885/2678/724 1876/2669/724 +f 1876/2669/724 1886/2679/724 1877/2670/724 +f 1877/2670/724 1879/2672/724 1875/2668/724 +f 1879/2672/724 1881/2674/724 1875/2668/724 +f 1881/2674/724 1883/2676/724 1875/2668/724 +o Spin +v -0.375000 2.313995 -2.944245 +v -0.266747 2.257351 -2.970659 +v -0.375000 2.087419 -3.049900 v -0.437500 2.102596 -3.042822 v -0.483253 2.144063 -3.023486 v -0.500000 2.200707 -2.997072 v -0.483253 2.257351 -2.970659 v -0.437500 2.298818 -2.951323 -v -0.375000 2.313995 -2.944245 v -0.312500 2.298818 -2.951323 -v -0.266747 2.257351 -2.970659 v -0.250000 2.200707 -2.997072 v -0.266747 2.144063 -3.023486 v -0.312500 2.102596 -3.042822 -v -0.375000 2.087419 -3.049900 -v -1.125000 1.875000 -1.875000 -v -1.125000 1.875000 -1.625000 -v -0.625000 2.375000 -1.875000 -v -0.625000 2.375000 -2.125000 -v -0.625000 2.375000 -0.875000 -v -1.125000 1.875000 -0.875000 -v -1.125000 1.875000 -2.625000 -v -0.625000 2.375000 -2.375000 -v 1.125000 1.875000 -0.875000 -v 0.625000 2.375000 -0.875000 -v 1.125000 1.875000 -1.625000 -v 0.625000 2.375000 -1.875000 -v 0.448223 2.198223 -1.875000 -v 0.948223 1.698223 -1.625000 -v -1.036612 1.786612 -1.875000 -v -1.036612 1.786612 -2.625000 -v -0.948223 1.698223 -1.625000 -v -0.448223 2.198223 -1.875000 -v -0.536612 2.286612 -2.375000 -v -0.536612 2.286612 -2.125000 -v -0.448223 2.198223 -0.875000 -v -0.948223 1.698223 -0.875000 -v 0.948223 1.698223 -0.875000 -v 0.448223 2.198223 -0.875000 -v -0.137500 2.062500 -3.749900 -v -0.137500 1.937500 -3.749900 -v -0.137500 2.062500 -3.437400 -v -0.137500 2.187500 -3.437400 -v -0.012500 1.937500 -3.749900 -v -0.012500 2.062500 -3.437400 -v 0.137500 1.937500 -3.749900 -v 0.137500 2.062500 -3.749900 -v 0.137500 2.187500 -3.437400 -v 0.137500 2.062500 -3.437400 -v -0.012500 2.062500 -3.749900 -v -0.012500 2.187500 -3.437400 -v 0.137500 2.134191 -3.062400 -v 0.137500 2.009191 -3.062400 -v -0.012500 2.009191 -3.062400 -v -0.137500 2.009191 -3.062400 -v -0.012500 1.937500 -3.874900 -v -0.137500 1.937500 -3.874900 -v 0.137500 1.937500 -3.874900 -v 0.012500 1.937500 -3.874900 -v 0.012500 2.062500 -3.749900 -v 0.012500 1.937500 -3.749900 -v -0.012500 1.687500 -3.874900 -v -0.137500 1.687500 -3.874900 -v -0.137500 1.687500 -3.749900 -v -0.012500 1.687500 -3.749900 -v 0.137500 1.687500 -3.749900 -v 0.137500 1.687500 -3.874900 -v 0.012500 1.687500 -3.874900 -v 0.012500 1.687500 -3.749900 -v 0.012500 2.062500 -3.437400 -v 0.625000 2.001000 -3.187500 -v 0.625000 2.001000 -3.062500 -v 0.875000 2.001000 -3.062500 -v 0.875000 2.001000 -3.187500 -v 0.012500 2.187500 -3.437400 -v 0.012500 2.134191 -3.062400 -v 0.012500 2.009191 -3.062400 -v -0.137500 2.134191 -3.062400 -v -0.012500 2.134191 -3.062400 -v -0.625000 1.938500 -3.250000 -v 0.625000 1.938500 -3.250000 -v 0.625000 1.830247 -3.187500 -v -0.625000 1.830247 -3.187500 -v 0.625000 1.876000 -3.062500 -v 0.875000 1.876000 -3.062500 -v 0.625000 1.830247 -3.062500 -v -0.625000 1.830247 -3.062500 -v 0.625000 1.876000 -3.187500 -v 0.875000 1.876000 -3.187500 -v 0.625000 1.938500 -3.000000 -v -0.625000 1.938500 -3.000000 -v 0.625000 2.046753 -3.062500 -v -0.625000 2.046753 -3.062500 -v 0.625000 2.046753 -3.187500 -v -0.625000 2.046753 -3.187500 -v 1.000000 2.001000 -3.187500 -v 1.000000 2.001000 -3.062500 -v 0.875000 2.126000 -3.187500 -v 1.000000 2.126000 -3.187500 -v 0.875000 2.126000 -3.312500 -v 1.000000 2.126000 -3.312500 -v 1.000000 2.126000 -3.062500 -v 0.875000 2.126000 -3.062500 -v 1.000000 2.251000 -3.187500 -v 0.875000 2.251000 -3.187500 -v 0.875000 2.251000 -3.312500 -v 1.000000 2.251000 -3.312500 -v 1.000000 2.001000 -3.937500 -v 0.875000 2.001000 -3.937500 -v 1.000000 1.876000 -3.937500 -v 1.000000 1.876000 -4.062500 -v 0.875000 1.876000 -3.937500 -v 0.875000 1.876000 -4.062500 -v 0.875000 1.626000 -4.062500 -v 0.875000 1.626000 -3.937500 -v 0.875000 1.501000 -3.937500 -v 0.625000 1.626000 -3.937500 -v 0.625000 1.501000 -3.937500 -v 1.000000 1.626000 -3.937500 -v 1.000000 1.626000 -4.062500 -v 0.875000 1.501000 -4.062500 -v 0.625000 1.626000 -4.062500 -v 0.625000 1.501000 -4.062500 -v -0.382683 2.173880 -0.125000 -v 0.000000 2.250000 -0.125000 -v 0.382683 2.173880 -0.125000 -v 0.707106 1.957107 -0.125000 -v 0.923880 1.632684 -0.125000 -v 1.000000 1.250000 -0.125000 -v 0.923880 0.867316 -0.125000 -v 0.707106 0.542893 -0.125000 -v 0.382683 0.326120 -0.125000 -v 0.000000 0.250000 -0.125000 -v -0.382684 0.326120 -0.125000 -v -0.707108 0.542893 -0.125000 -v -0.923880 0.867316 -0.125000 -v -1.000000 1.250000 -0.125000 -v -0.923880 1.632683 -0.125000 -v -0.707108 1.957107 -0.125000 -v -0.382683 2.173880 -0.500000 -v 0.000000 2.250000 -0.500000 -v 0.382683 2.173880 -0.500000 -v 0.382683 0.326120 -0.500000 -v 0.000000 0.250000 -0.500000 -v -0.707108 1.957107 -0.500000 -v 0.707106 0.542893 -0.500000 -v -0.923880 1.632683 -0.500000 -v 0.923880 0.867316 -0.500000 -v -1.000000 1.250000 -0.500000 -v 1.000000 1.250000 -0.500000 -v -0.923880 0.867316 -0.500000 -v 0.923880 1.632684 -0.500000 -v -0.707108 0.542893 -0.500000 -v 0.707106 1.957107 -0.500000 -v -0.382684 0.326120 -0.500000 -v 0.110485 0.764515 -0.750000 -v 0.156250 0.875000 -0.750000 -v 0.156250 0.737706 -0.418544 -v 0.110485 0.659581 -0.496669 -v 0.110485 0.985485 -0.750000 -v 0.000000 1.031250 -0.750000 -v 0.000000 0.848192 -0.308058 -v 0.110485 0.815831 -0.340419 -v -0.110486 0.985485 -0.750000 -v -0.156250 0.875000 -0.750000 -v -0.156250 0.737706 -0.418544 -v -0.110486 0.815831 -0.340419 -v -0.110486 0.764515 -0.750000 -v -0.110486 0.659581 -0.496669 -v 0.000000 0.718750 -0.750000 -v 0.000000 0.627221 -0.529029 -v -0.156250 0.585633 -0.316931 -v -0.110486 0.627914 -0.214856 -v 0.000000 0.645427 -0.172575 -v 0.110485 0.627914 -0.214856 -v 0.156250 0.585633 -0.316931 -v 0.110485 0.543352 -0.419007 -v 0.000000 0.525838 -0.461288 -v -0.110486 0.543352 -0.419007 -v 0.110485 0.406250 -0.391735 -v 0.000000 0.406250 -0.437500 -v -0.110486 0.406250 -0.391735 -v -0.156250 0.406250 -0.281250 -v -0.110486 0.406250 -0.170765 -v 0.000000 0.406250 -0.125000 -v 0.110485 0.406250 -0.170765 -v 0.156250 0.406250 -0.281250 -v -0.110486 0.184586 -0.214856 -v 0.000000 0.167073 -0.172575 -v 0.110485 0.184586 -0.214856 -v 0.156250 0.226867 -0.316932 -v 0.110485 0.269148 -0.419007 -v 0.000000 0.286661 -0.461288 -v -0.110486 0.269148 -0.419007 -v -0.156250 0.226867 -0.316932 -v -0.196566 0.367147 -0.468769 -v -0.200528 0.477172 -0.515462 -v -0.286731 0.557772 -0.534803 -v -0.404678 0.561734 -0.515462 -v -0.485279 0.486735 -0.468769 -v -0.481318 0.376710 -0.422076 -v -0.395115 0.296110 -0.402735 -v -0.277166 0.292148 -0.422076 -v 0.230970 1.345671 -0.750000 -v 0.095671 1.480970 -0.750000 -v 0.095671 1.019030 -0.750000 -v 0.230970 1.154329 -0.750000 -v -0.230970 1.154329 -0.750000 -v -0.095671 1.019030 -0.750000 -v -0.095671 1.480970 -0.750000 -v -0.230970 1.345671 -0.750000 -v 0.000000 1.921303 -2.989438 -v -0.125000 1.951658 -2.975283 -v -0.250000 2.147880 -2.883784 -v -0.216506 2.261168 -2.830956 -v 0.125000 1.951658 -2.975283 -v -0.216506 2.034591 -2.936611 -v -0.125000 2.344101 -2.792284 -v 0.375000 2.147880 -2.883783 -v -0.375000 2.261168 -2.830956 -v -0.312500 2.245990 -2.838034 -v -0.500000 2.147880 -2.883784 -v -0.483253 2.204524 -2.857370 -v -0.266747 2.091235 -2.910197 -v -0.312500 2.049769 -2.929533 -v -0.375000 2.034591 -2.936611 -v -0.437500 2.049769 -2.929533 -v -0.266747 2.204524 -2.857370 -v -0.437500 2.245990 -2.838034 -v -0.483253 2.091235 -2.910197 -v -0.250000 2.147880 -2.883784 -v 0.911612 2.036612 -1.125000 -v 0.875000 2.125000 -1.125000 -v 0.823223 2.073223 -0.948223 -v 0.867418 1.992418 -0.974112 -v 0.786612 2.161612 -1.125000 -v 0.698223 2.125000 -1.125000 -v 0.672335 2.099112 -1.036612 -v 0.742418 2.117417 -0.974112 -v -0.786612 2.161612 -1.125000 -v -0.742418 2.117417 -0.974112 -v -0.672335 2.099112 -1.036612 -v -0.698223 2.125000 -1.125000 -v -0.911612 2.036612 -1.125000 -v -0.867418 1.992418 -0.974112 -v -0.823223 2.073223 -0.948223 -v -0.875000 2.125000 -1.125000 -v -0.875000 1.948223 -1.125000 -v -0.849112 1.922335 -1.036612 -v -0.698223 1.948223 -0.875000 -v -0.635723 2.010723 -0.911612 -v -0.786612 1.859835 -1.000000 -v -0.760723 1.885723 -0.911612 -v -0.609835 2.036612 -1.000000 -v -0.609835 2.338388 -1.125000 -v -0.565641 2.294194 -0.974112 -v -0.495558 2.275888 -1.036612 -v -0.521447 2.301777 -1.125000 -v -0.734835 2.213388 -1.125000 -v -0.690641 2.169194 -0.974112 -v -0.646447 2.250000 -0.948223 -v -0.698223 2.301777 -1.125000 -v -0.698223 2.125000 -1.125000 -v -0.672335 2.099112 -1.036612 -v -0.521447 2.125000 -0.875000 -v -0.458947 2.187500 -0.911612 -v -0.609835 2.036612 -1.000000 -v -0.583947 2.062500 -0.911612 -v -0.433058 2.213388 -1.000000 -v -0.963388 1.984835 -1.125000 -v -0.919194 1.940641 -0.974112 -v -0.849112 1.922335 -1.036612 -v -0.875000 1.948223 -1.125000 -v -1.088388 1.859835 -1.125000 -v -1.044194 1.815641 -0.974112 -v -1.000000 1.896446 -0.948223 -v -1.051777 1.948223 -1.125000 -v -1.051777 1.771446 -1.125000 -v -1.025888 1.745558 -1.036612 -v -0.875000 1.771446 -0.875000 -v -0.812500 1.833946 -0.911612 -v -0.963388 1.683058 -1.000000 -v -0.937500 1.708946 -0.911612 -v -0.786612 1.859835 -1.000000 -v -0.698223 2.125000 -1.812500 -v -0.786612 2.161612 -1.812500 -v -0.521447 2.301777 -1.875000 -v -0.609835 2.338388 -1.875000 -v -0.875000 2.125000 -1.812500 -v -0.911612 2.036612 -1.812500 -v -0.875000 1.948223 -1.750000 -v -0.963388 1.984835 -1.750000 -v -0.698223 2.301777 -1.875000 -v -0.875000 1.948223 -1.812500 -v -0.734835 2.213388 -1.875000 -v -1.051777 1.948223 -1.750000 -v -1.088388 1.859835 -1.750000 -v -0.698223 2.125000 -1.875000 -v -1.051777 1.771446 -1.750000 -v 0.875000 1.948223 -1.125000 -v 0.849112 1.922335 -1.036612 -v 0.635723 2.010723 -0.911612 -v 0.698223 1.948223 -0.875000 -v 0.760723 1.885723 -0.911612 -v 0.786612 1.859835 -1.000000 -v 0.609835 2.036612 -1.000000 -v 0.609835 2.338388 -1.125000 -v 0.521447 2.301777 -1.125000 -v 0.495558 2.275888 -1.036612 -v 0.565641 2.294194 -0.974112 -v 0.734835 2.213388 -1.125000 -v 0.698223 2.301777 -1.125000 -v 0.646447 2.250000 -0.948223 -v 0.690641 2.169194 -0.974112 -v 0.698223 2.125000 -1.125000 -v 0.672335 2.099112 -1.036612 -v 0.458947 2.187500 -0.911612 -v 0.521447 2.125000 -0.875000 -v 0.583947 2.062500 -0.911612 -v 0.609835 2.036612 -1.000000 -v 0.433058 2.213388 -1.000000 -v 0.963388 1.984835 -1.125000 -v 0.875000 1.948223 -1.125000 -v 0.849112 1.922335 -1.036612 -v 0.919194 1.940641 -0.974112 -v 1.088388 1.859835 -1.125000 -v 1.051777 1.948223 -1.125000 -v 1.000000 1.896446 -0.948223 -v 1.044194 1.815641 -0.974112 -v 1.051777 1.771446 -1.125000 -v 1.025888 1.745558 -1.036612 -v 0.812500 1.833946 -0.911612 -v 0.875000 1.771446 -0.875000 -v 0.937500 1.708946 -0.911612 -v 0.963388 1.683058 -1.000000 -v 0.786612 1.859835 -1.000000 -v 0.786612 2.161612 -1.812500 -v 0.698223 2.125000 -1.812500 -v 0.609835 2.338388 -1.875000 -v 0.521447 2.301777 -1.875000 -v 0.875000 2.125000 -1.812500 -v 0.911612 2.036612 -1.812500 -v 0.963388 1.984835 -1.750000 -v 0.875000 1.948223 -1.750000 -v 0.698223 2.301777 -1.875000 -v 0.875000 1.948223 -1.812500 -v 0.734835 2.213388 -1.875000 -v 1.051777 1.948223 -1.750000 -v 1.088388 1.859835 -1.750000 -v 0.698223 2.125000 -1.875000 -v 1.051777 1.771446 -1.750000 -v 1.000000 0.500000 -2.625000 -v 0.344030 1.791848 -0.175597 -v 0.424630 1.866847 -0.128904 -v 0.388541 1.881795 -0.128904 -v 0.328091 1.825547 -0.163924 -v 0.420670 1.976871 -0.082211 -v 0.334466 2.057472 -0.062870 -v 0.320918 2.024764 -0.079378 -v 0.385571 1.964314 -0.093884 -v 0.216518 2.061433 -0.082211 -v 0.135918 1.986435 -0.128904 -v 0.172007 1.971487 -0.128904 -v 0.232457 2.027735 -0.093884 -v 0.139879 1.876410 -0.175597 -v 0.174978 1.888968 -0.163924 -v 0.226082 1.795810 -0.194938 -v 0.239630 1.828518 -0.178429 -v 0.208096 1.956538 -0.128904 -v 0.210077 1.901526 -0.152250 -v 0.253178 1.861225 -0.161921 -v 0.312152 1.859245 -0.152250 -v 0.352451 1.896744 -0.128904 -v 0.350472 1.951756 -0.105557 -v 0.307370 1.992056 -0.095887 -v 0.248396 1.994037 -0.105557 -v 0.222349 2.003332 -0.037240 -v 0.161900 1.947084 -0.072260 -v 0.197989 1.932135 -0.072260 -v 0.238288 1.969634 -0.048913 -v 0.164869 1.864565 -0.107280 -v 0.199968 1.877123 -0.095606 -v 0.229523 1.804115 -0.121785 -v 0.243071 1.836822 -0.105277 -v 0.317984 1.801143 -0.107280 -v 0.302044 1.834842 -0.095606 -v 0.378433 1.857392 -0.072260 -v 0.342344 1.872341 -0.072260 -v 0.375462 1.939911 -0.037240 -v 0.340365 1.927353 -0.048913 -v 0.310810 2.000361 -0.022734 -v 0.297262 1.967653 -0.039243 -v -0.110485 1.735485 -0.750000 -v -0.156250 1.625000 -0.750000 -v -0.156250 1.762294 -0.418544 -v -0.110485 1.840419 -0.496669 -v -0.110485 1.514515 -0.750000 -v 0.000000 1.468750 -0.750000 -v 0.000000 1.651808 -0.308058 -v -0.110485 1.684169 -0.340419 -v 0.110486 1.514515 -0.750000 -v 0.156250 1.625000 -0.750000 -v 0.156250 1.762294 -0.418544 -v 0.110486 1.684169 -0.340419 -v 0.110486 1.735485 -0.750000 -v 0.110486 1.840419 -0.496669 -v 0.000000 1.781250 -0.750000 -v 0.000000 1.872779 -0.529029 -v 0.156250 1.914367 -0.316931 -v 0.110486 1.872086 -0.214856 -v 0.000000 1.854573 -0.172575 -v -0.110485 1.872086 -0.214856 -v -0.156250 1.914367 -0.316931 -v -0.110485 1.956648 -0.419007 -v 0.000000 1.974162 -0.461288 -v 0.110486 1.956648 -0.419007 -v -0.110485 2.093750 -0.391735 -v 0.000000 2.093750 -0.437500 -v 0.110486 2.093750 -0.391735 -v 0.156250 2.093750 -0.281250 -v 0.110486 2.093750 -0.170765 -v 0.000000 2.093750 -0.125000 -v -0.110485 2.093750 -0.170765 -v -0.156250 2.093750 -0.281250 -v 0.110486 2.315414 -0.214856 -v 0.000000 2.332927 -0.172575 -v -0.110485 2.315414 -0.214856 -v -0.156250 2.273133 -0.316932 -v -0.110485 2.230852 -0.419007 -v 0.000000 2.213339 -0.461288 -v 0.110486 2.230852 -0.419007 -v 0.156250 2.273133 -0.316932 -v 0.196566 2.132853 -0.468769 -v 0.200528 2.022828 -0.515462 -v 0.286731 1.942228 -0.534803 -v 0.404678 1.938266 -0.515462 -v 0.485279 2.013265 -0.468769 -v 0.481318 2.123290 -0.422076 -v 0.395115 2.203890 -0.402735 -v 0.277166 2.207852 -0.422076 -v -0.541848 1.594031 -0.175597 -v -0.616847 1.674630 -0.128904 -v -0.631795 1.638541 -0.128904 -v -0.575547 1.578091 -0.163924 -v -0.726871 1.670670 -0.082211 -v -0.807472 1.584466 -0.062870 -v -0.774764 1.570918 -0.079378 -v -0.714314 1.635571 -0.093884 -v -0.811433 1.466519 -0.082211 -v -0.736435 1.385918 -0.128904 -v -0.721487 1.422007 -0.128904 -v -0.777735 1.482457 -0.093884 -v -0.626410 1.389879 -0.175597 -v -0.638968 1.424978 -0.163924 -v -0.545810 1.476082 -0.194938 -v -0.578518 1.489630 -0.178429 -v -0.706538 1.458096 -0.128904 -v -0.651526 1.460078 -0.152250 -v -0.611225 1.503178 -0.161921 -v -0.609245 1.562152 -0.152250 -v -0.646744 1.602452 -0.128904 -v -0.701756 1.600472 -0.105557 -v -0.742056 1.557370 -0.095887 -v -0.744037 1.498396 -0.105557 -v -0.753332 1.472349 -0.037240 -v -0.697084 1.411900 -0.072260 -v -0.682135 1.447989 -0.072260 -v -0.719634 1.488288 -0.048913 -v -0.614565 1.414870 -0.107280 -v -0.627123 1.449969 -0.095606 -v -0.554115 1.479523 -0.121785 -v -0.586822 1.493071 -0.105277 -v -0.551143 1.567984 -0.107280 -v -0.584842 1.552044 -0.095606 -v -0.607392 1.628433 -0.072260 -v -0.622341 1.592345 -0.072260 -v -0.689911 1.625462 -0.037240 -v -0.677353 1.590365 -0.048913 -v -0.750361 1.560810 -0.022734 -v -0.717653 1.547262 -0.039243 -v -0.485485 1.139515 -0.750000 -v -0.375000 1.093750 -0.750000 -v -0.512294 1.093750 -0.418544 -v -0.590419 1.139515 -0.496669 -v -0.264515 1.139515 -0.750000 -v -0.218750 1.250000 -0.750000 -v -0.401808 1.250000 -0.308058 -v -0.434169 1.139515 -0.340419 -v -0.264515 1.360486 -0.750000 -v -0.375000 1.406250 -0.750000 -v -0.512294 1.406250 -0.418544 -v -0.434169 1.360486 -0.340419 -v -0.485485 1.360486 -0.750000 -v -0.590419 1.360486 -0.496669 -v -0.531250 1.250000 -0.750000 -v -0.622779 1.250000 -0.529029 -v -0.664367 1.406250 -0.316931 -v -0.622086 1.360486 -0.214856 -v -0.604573 1.250000 -0.172575 -v -0.622086 1.139515 -0.214856 -v -0.664367 1.093750 -0.316931 -v -0.706648 1.139515 -0.419007 -v -0.724162 1.250000 -0.461288 -v -0.706648 1.360486 -0.419007 -v -0.843750 1.139515 -0.391735 -v -0.843750 1.250000 -0.437500 -v -0.843750 1.360486 -0.391735 -v -0.843750 1.406250 -0.281250 -v -0.843750 1.360486 -0.170765 -v -0.843750 1.250000 -0.125000 -v -0.843750 1.139515 -0.170765 -v -0.843750 1.093750 -0.281250 -v -1.065414 1.360486 -0.214856 -v -1.082927 1.250000 -0.172575 -v -1.065414 1.139515 -0.214856 -v -1.023133 1.093750 -0.316932 -v -0.980852 1.139515 -0.419007 -v -0.963339 1.250000 -0.461288 -v -0.980852 1.360486 -0.419007 -v -1.023133 1.406250 -0.316932 -v -0.882853 1.446566 -0.468769 -v -0.772828 1.450528 -0.515462 -v -0.692228 1.536731 -0.534803 -v -0.688266 1.654678 -0.515462 -v -0.763265 1.735279 -0.468769 -v -0.873290 1.731318 -0.422076 -v -0.953890 1.645115 -0.402735 -v -0.957852 1.527166 -0.422076 -v 0.541848 0.905970 -0.175597 -v 0.616847 0.825370 -0.128904 -v 0.631795 0.861459 -0.128904 -v 0.575547 0.921909 -0.163924 -v 0.726871 0.829330 -0.082211 -v 0.807472 0.915534 -0.062870 -v 0.774764 0.929082 -0.079378 -v 0.714314 0.864429 -0.093884 -v 0.811433 1.033482 -0.082211 -v 0.736435 1.114082 -0.128904 -v 0.721487 1.077993 -0.128904 -v 0.777735 1.017543 -0.093884 -v 0.626410 1.110121 -0.175597 -v 0.638968 1.075022 -0.163924 -v 0.545810 1.023918 -0.194938 -v 0.578518 1.010370 -0.178429 -v 0.706538 1.041904 -0.128904 -v 0.651526 1.039923 -0.152250 -v 0.611225 0.996822 -0.161921 -v 0.609245 0.937848 -0.152250 -v 0.646744 0.897549 -0.128904 -v 0.701756 0.899529 -0.105557 -v 0.742056 0.942630 -0.095887 -v 0.744037 1.001604 -0.105557 -v 0.753332 1.027651 -0.037240 -v 0.697084 1.088100 -0.072260 -v 0.682135 1.052011 -0.072260 -v 0.719634 1.011712 -0.048913 -v 0.614565 1.085131 -0.107280 -v 0.627123 1.050032 -0.095606 -v 0.554115 1.020477 -0.121785 -v 0.586822 1.006929 -0.105277 -v 0.551143 0.932016 -0.107280 -v 0.584842 0.947956 -0.095606 -v 0.607392 0.871567 -0.072260 -v 0.622341 0.907656 -0.072260 -v 0.689911 0.874539 -0.037240 -v 0.677353 0.909636 -0.048913 -v 0.750361 0.939190 -0.022734 -v 0.717653 0.952738 -0.039243 -v 0.485485 1.360485 -0.750000 -v 0.375000 1.406250 -0.750000 -v 0.512294 1.406250 -0.418544 -v 0.590419 1.360485 -0.496669 -v 0.264515 1.360485 -0.750000 -v 0.218750 1.250000 -0.750000 -v 0.401808 1.250000 -0.308058 -v 0.434169 1.360485 -0.340419 -v 0.264515 1.139514 -0.750000 -v 0.375000 1.093750 -0.750000 -v 0.512294 1.093750 -0.418544 -v 0.434169 1.139514 -0.340419 -v 0.485485 1.139514 -0.750000 -v 0.590419 1.139514 -0.496669 -v 0.531250 1.250000 -0.750000 -v 0.622779 1.250000 -0.529029 -v 0.664367 1.093750 -0.316931 -v 0.622086 1.139514 -0.214856 -v 0.604573 1.250000 -0.172575 -v 0.622086 1.360485 -0.214856 -v 0.664367 1.406250 -0.316931 -v 0.706648 1.360485 -0.419007 -v 0.724162 1.250000 -0.461288 -v 0.706648 1.139514 -0.419007 -v 0.843750 1.360485 -0.391735 -v 0.843750 1.250000 -0.437500 -v 0.843750 1.139514 -0.391735 -v 0.843750 1.093750 -0.281250 -v 0.843750 1.139514 -0.170765 -v 0.843750 1.250000 -0.125000 -v 0.843750 1.360485 -0.170765 -v 0.843750 1.406250 -0.281250 -v 1.065414 1.139514 -0.214856 -v 1.082927 1.250000 -0.172575 -v 1.065414 1.360485 -0.214856 -v 1.023133 1.406250 -0.316932 -v 0.980852 1.360485 -0.419007 -v 0.963339 1.250000 -0.461288 -v 0.980852 1.139514 -0.419007 -v 1.023133 1.093750 -0.316932 -v 0.882853 1.053434 -0.468769 -v 0.772828 1.049472 -0.515462 -v 0.692228 0.963269 -0.534803 -v 0.688266 0.845322 -0.515462 -v 0.763265 0.764721 -0.468769 -v 0.873290 0.768682 -0.422076 -v 0.953890 0.854885 -0.402735 -v 0.957852 0.972834 -0.422076 -v -0.626411 1.110122 -0.175597 -v -0.736436 1.114082 -0.128904 -v -0.721487 1.077994 -0.128904 -v -0.638968 1.075022 -0.163924 -v -0.811434 1.033483 -0.082211 -v -0.807472 0.915534 -0.062870 -v -0.774764 0.929083 -0.079378 -v -0.777736 1.017543 -0.093884 -v -0.726871 0.829332 -0.082211 -v -0.616847 0.825370 -0.128904 -v -0.631795 0.861459 -0.128904 -v -0.714314 0.864430 -0.093884 -v -0.541848 0.905971 -0.175597 -v -0.575547 0.921910 -0.163924 -v -0.545810 1.023918 -0.194938 -v -0.578518 1.010370 -0.178429 -v -0.646744 0.897548 -0.128904 -v -0.609246 0.937849 -0.152250 -v -0.611225 0.996822 -0.161921 -v -0.651526 1.039924 -0.152250 -v -0.706538 1.041904 -0.128904 -v -0.744037 1.001604 -0.105557 -v -0.742056 0.942631 -0.095887 -v -0.701756 0.899529 -0.105557 -v -0.689911 0.874538 -0.037240 -v -0.607393 0.871567 -0.072260 -v -0.622341 0.907657 -0.072260 -v -0.677353 0.909637 -0.048913 -v -0.551143 0.932017 -0.107280 -v -0.584842 0.947956 -0.095606 -v -0.554116 1.020479 -0.121785 -v -0.586823 1.006931 -0.105277 -v -0.614565 1.085132 -0.107280 -v -0.627123 1.050032 -0.095606 -v -0.697084 1.088102 -0.072260 -v -0.682136 1.052012 -0.072260 -v -0.753332 1.027651 -0.037240 -v -0.719635 1.011713 -0.048913 -v -0.750361 0.939191 -0.022734 -v -0.717654 0.952739 -0.039243 -v -0.265165 0.828586 -0.750000 -v -0.154680 0.874350 -0.750000 -v -0.251761 0.777268 -0.418544 -v -0.339365 0.754386 -0.496669 -v -0.108916 0.984835 -0.750000 -v -0.154680 1.095320 -0.750000 -v -0.284121 0.965879 -0.308058 -v -0.228879 0.864871 -0.340419 -v -0.265166 1.141085 -0.750000 -v -0.375651 1.095320 -0.750000 -v -0.472732 0.998239 -0.418544 -v -0.385129 1.021122 -0.340419 -v -0.421415 0.984836 -0.750000 -v -0.495615 0.910636 -0.496669 -v -0.375651 0.874350 -0.750000 -v -0.440371 0.809629 -0.529029 -v -0.580264 0.890707 -0.316931 -v -0.518007 0.888244 -0.214856 -v -0.427498 0.822502 -0.172575 -v -0.361757 0.731994 -0.214856 -v -0.359293 0.669736 -0.316931 -v -0.421551 0.672200 -0.419007 -v -0.512060 0.737940 -0.461288 -v -0.577801 0.828450 -0.419007 -v -0.518497 0.575254 -0.391735 -v -0.596621 0.653379 -0.437500 -v -0.674747 0.731504 -0.391735 -v -0.707107 0.763864 -0.281250 -v -0.674747 0.731504 -0.170765 -v -0.596621 0.653379 -0.125000 -v -0.518497 0.575254 -0.170765 -v -0.486136 0.542893 -0.281250 -v -0.831487 0.574764 -0.214856 -v -0.765745 0.484255 -0.172575 -v -0.675237 0.418514 -0.214856 -v -0.612979 0.416050 -0.316932 -v -0.615442 0.478308 -0.419007 -v -0.681184 0.568817 -0.461288 -v -0.771693 0.634558 -0.419007 -v -0.833950 0.637021 -0.316932 -v -0.763264 0.764722 -0.468769 -v -0.688267 0.845323 -0.515462 -v -0.692228 0.963270 -0.534803 -v -0.772828 1.049473 -0.515462 -v -0.882854 1.053434 -0.468769 -v -0.957852 0.972834 -0.422076 -v -0.953891 0.854886 -0.402735 -v -0.873290 0.768683 -0.422076 -v 0.626411 1.389878 -0.175597 -v 0.736436 1.385918 -0.128904 -v 0.721487 1.422006 -0.128904 -v 0.638968 1.424978 -0.163924 -v 0.811434 1.466517 -0.082211 -v 0.807472 1.584466 -0.062870 -v 0.774764 1.570918 -0.079378 -v 0.777736 1.482457 -0.093884 -v 0.726872 1.670668 -0.082211 -v 0.616847 1.674630 -0.128904 -v 0.631796 1.638541 -0.128904 -v 0.714314 1.635570 -0.093884 -v 0.541848 1.594029 -0.175597 -v 0.575547 1.578090 -0.163924 -v 0.545810 1.476082 -0.194938 -v 0.578518 1.489630 -0.178429 -v 0.646744 1.602452 -0.128904 -v 0.609246 1.562152 -0.152250 -v 0.611225 1.503178 -0.161921 -v 0.651526 1.460077 -0.152250 -v 0.706538 1.458097 -0.128904 -v 0.744037 1.498396 -0.105557 -v 0.742057 1.557369 -0.095887 -v 0.701756 1.600471 -0.105557 -v 0.689911 1.625462 -0.037240 -v 0.607393 1.628433 -0.072260 -v 0.622342 1.592343 -0.072260 -v 0.677353 1.590363 -0.048913 -v 0.551144 1.567983 -0.107280 -v 0.584842 1.552044 -0.095606 -v 0.554116 1.479522 -0.121785 -v 0.586823 1.493069 -0.105277 -v 0.614566 1.414869 -0.107280 -v 0.627123 1.449969 -0.095606 -v 0.697084 1.411898 -0.072260 -v 0.682136 1.447988 -0.072260 -v 0.753332 1.472350 -0.037240 -v 0.719635 1.488287 -0.048913 -v 0.750361 1.560810 -0.022734 -v 0.717654 1.547261 -0.039243 -v 0.265165 1.671415 -0.750000 -v 0.154680 1.625651 -0.750000 -v 0.251761 1.722732 -0.418544 -v 0.339365 1.745614 -0.496669 -v 0.108916 1.515165 -0.750000 -v 0.154680 1.404680 -0.750000 -v 0.284121 1.534121 -0.308058 -v 0.228879 1.635129 -0.340419 -v 0.265166 1.358915 -0.750000 -v 0.375651 1.404680 -0.750000 -v 0.472732 1.501761 -0.418544 -v 0.385129 1.478879 -0.340419 -v 0.421415 1.515165 -0.750000 -v 0.495615 1.589364 -0.496669 -v 0.375651 1.625651 -0.750000 -v 0.440371 1.690371 -0.529029 -v 0.580264 1.609293 -0.316931 -v 0.518007 1.611756 -0.214856 -v 0.427498 1.677498 -0.172575 -v 0.361757 1.768006 -0.214856 -v 0.359293 1.830264 -0.316931 -v 0.421551 1.827801 -0.419007 -v 0.512060 1.762060 -0.461288 -v 0.577801 1.671550 -0.419007 -v 0.518497 1.924746 -0.391735 -v 0.596621 1.846622 -0.437500 -v 0.674747 1.768496 -0.391735 -v 0.707107 1.736136 -0.281250 -v 0.674747 1.768496 -0.170765 -v 0.596621 1.846622 -0.125000 -v 0.518497 1.924746 -0.170765 -v 0.486136 1.957107 -0.281250 -v 0.831487 1.925236 -0.214856 -v 0.765745 2.015745 -0.172575 -v 0.675237 2.081486 -0.214856 -v 0.612979 2.083950 -0.316932 -v 0.615442 2.021692 -0.419007 -v 0.681184 1.931184 -0.461288 -v 0.771693 1.865442 -0.419007 -v 0.833950 1.862979 -0.316932 -v 0.763264 1.735279 -0.468769 -v 0.688267 1.654677 -0.515462 -v 0.692229 1.536730 -0.534803 -v 0.772828 1.450527 -0.515462 -v 0.882854 1.446566 -0.468769 -v 0.957852 1.527166 -0.422076 -v 0.953891 1.645114 -0.402735 -v 0.873290 1.731318 -0.422076 -v -0.139878 1.876411 -0.175597 -v -0.135918 1.986436 -0.128904 -v -0.172006 1.971487 -0.128904 -v -0.174978 1.888969 -0.163924 -v -0.216517 2.061434 -0.082211 -v -0.334466 2.057472 -0.062870 -v -0.320918 2.024765 -0.079378 -v -0.232457 2.027736 -0.093884 -v -0.420668 1.976872 -0.082211 -v -0.424630 1.866847 -0.128904 -v -0.388541 1.881796 -0.128904 -v -0.385570 1.964314 -0.093884 -v -0.344029 1.791849 -0.175597 -v -0.328090 1.825547 -0.163924 -v -0.226082 1.795810 -0.194938 -v -0.239630 1.828518 -0.178429 -v -0.352452 1.896744 -0.128904 -v -0.312151 1.859246 -0.152250 -v -0.253178 1.861225 -0.161921 -v -0.210077 1.901526 -0.152250 -v -0.208096 1.956538 -0.128904 -v -0.248396 1.994038 -0.105557 -v -0.307369 1.992057 -0.095887 -v -0.350471 1.951756 -0.105557 -v -0.375462 1.939911 -0.037240 -v -0.378433 1.857393 -0.072260 -v -0.342343 1.872342 -0.072260 -v -0.340363 1.927353 -0.048913 -v -0.317983 1.801144 -0.107280 -v -0.302044 1.834842 -0.095606 -v -0.229521 1.804116 -0.121785 -v -0.243069 1.836823 -0.105277 -v -0.164869 1.864566 -0.107280 -v -0.199968 1.877123 -0.095606 -v -0.161898 1.947084 -0.072260 -v -0.197988 1.932136 -0.072260 -v -0.222349 2.003333 -0.037240 -v -0.238287 1.969635 -0.048913 -v -0.310809 2.000361 -0.022734 -v -0.297261 1.967654 -0.039243 -v -0.421415 1.515165 -0.750000 -v -0.375651 1.404680 -0.750000 -v -0.472732 1.501761 -0.418544 -v -0.495614 1.589365 -0.496669 -v -0.265165 1.358916 -0.750000 -v -0.154680 1.404680 -0.750000 -v -0.284121 1.534121 -0.308058 -v -0.385129 1.478879 -0.340419 -v -0.108915 1.515166 -0.750000 -v -0.154680 1.625651 -0.750000 -v -0.251761 1.722732 -0.418544 -v -0.228879 1.635129 -0.340419 -v -0.265164 1.671415 -0.750000 -v -0.339364 1.745615 -0.496669 -v -0.375651 1.625651 -0.750000 -v -0.440371 1.690372 -0.529029 -v -0.359293 1.830264 -0.316931 -v -0.361756 1.768007 -0.214856 -v -0.427498 1.677498 -0.172575 -v -0.518006 1.611757 -0.214856 -v -0.580264 1.609293 -0.316931 -v -0.577800 1.671551 -0.419007 -v -0.512060 1.762060 -0.461288 -v -0.421550 1.827801 -0.419007 -v -0.674746 1.768497 -0.391735 -v -0.596621 1.846622 -0.437500 -v -0.518496 1.924747 -0.391735 -v -0.486136 1.957107 -0.281250 -v -0.518496 1.924747 -0.170765 -v -0.596621 1.846622 -0.125000 -v -0.674746 1.768497 -0.170765 -v -0.707107 1.736136 -0.281250 -v -0.675236 2.081487 -0.214856 -v -0.765745 2.015745 -0.172575 -v -0.831486 1.925237 -0.214856 -v -0.833950 1.862979 -0.316932 -v -0.771692 1.865443 -0.419007 -v -0.681184 1.931184 -0.461288 -v -0.615442 2.021693 -0.419007 -v -0.612979 2.083950 -0.316932 -v -0.485278 2.013265 -0.468769 -v -0.404677 1.938267 -0.515462 -v -0.286730 1.942229 -0.534803 -v -0.200527 2.022829 -0.515462 -v -0.196566 2.132854 -0.468769 -v -0.277167 2.207852 -0.422076 -v -0.395114 2.203891 -0.402735 -v -0.481318 2.123290 -0.422076 -v 0.139878 0.623589 -0.175597 -v 0.135918 0.513564 -0.128904 -v 0.172006 0.528513 -0.128904 -v 0.174978 0.611032 -0.163924 -v 0.216517 0.438566 -0.082211 -v 0.334466 0.442528 -0.062870 -v 0.320918 0.475236 -0.079378 -v 0.232457 0.472264 -0.093884 -v 0.420668 0.523129 -0.082211 -v 0.424630 0.633153 -0.128904 -v 0.388541 0.618205 -0.128904 -v 0.385570 0.535686 -0.093884 -v 0.344029 0.708152 -0.175597 -v 0.328090 0.674453 -0.163924 -v 0.226082 0.704190 -0.194938 -v 0.239630 0.671482 -0.178429 -v 0.352452 0.603256 -0.128904 -v 0.312151 0.640754 -0.152250 -v 0.253178 0.638775 -0.161921 -v 0.210077 0.598474 -0.152250 -v 0.208096 0.543462 -0.128904 -v 0.248396 0.505963 -0.105557 -v 0.307369 0.507944 -0.095887 -v 0.350471 0.548244 -0.105557 -v 0.375462 0.560089 -0.037240 -v 0.378433 0.642607 -0.072260 -v 0.342343 0.627659 -0.072260 -v 0.340363 0.572647 -0.048913 -v 0.317983 0.698857 -0.107280 -v 0.302044 0.665158 -0.095606 -v 0.229521 0.695884 -0.121785 -v 0.243069 0.663177 -0.105277 -v 0.164869 0.635435 -0.107280 -v 0.199969 0.622877 -0.095606 -v 0.161898 0.552916 -0.072260 -v 0.197988 0.567865 -0.072260 -v 0.222349 0.496668 -0.037240 -v 0.238287 0.530365 -0.048913 -v 0.310809 0.499639 -0.022734 -v 0.297261 0.532347 -0.039243 -v 0.421415 0.984835 -0.750000 -v 0.375651 1.095320 -0.750000 -v 0.472732 0.998239 -0.418544 -v 0.495614 0.910635 -0.496669 -v 0.265165 1.141084 -0.750000 -v 0.154680 1.095320 -0.750000 -v 0.284121 0.965879 -0.308058 -v 0.385129 1.021121 -0.340419 -v 0.108915 0.984834 -0.750000 -v 0.154680 0.874350 -0.750000 -v 0.251761 0.777268 -0.418544 -v 0.228879 0.864871 -0.340419 -v 0.265164 0.828585 -0.750000 -v 0.339364 0.754385 -0.496669 -v 0.375650 0.874350 -0.750000 -v 0.440371 0.809629 -0.529029 -v 0.359293 0.669736 -0.316931 -v 0.361756 0.731993 -0.214856 -v 0.427498 0.822502 -0.172575 -v 0.518006 0.888243 -0.214856 -v 0.580264 0.890707 -0.316931 -v 0.577800 0.828449 -0.419007 -v 0.512060 0.737940 -0.461288 -v 0.421550 0.672199 -0.419007 -v 0.674746 0.731503 -0.391735 -v 0.596621 0.653379 -0.437500 -v 0.518496 0.575253 -0.391735 -v 0.486136 0.542893 -0.281250 -v 0.518496 0.575253 -0.170765 -v 0.596621 0.653379 -0.125000 -v 0.674746 0.731503 -0.170765 -v 0.707107 0.763864 -0.281250 -v 0.675236 0.418513 -0.214856 -v 0.765745 0.484255 -0.172575 -v 0.831486 0.574763 -0.214856 -v 0.833950 0.637021 -0.316932 -v 0.771692 0.634558 -0.419007 -v 0.681184 0.568816 -0.461288 -v 0.615442 0.478308 -0.419007 -v 0.612979 0.416050 -0.316932 -v 0.485278 0.486736 -0.468769 -v 0.404677 0.561733 -0.515462 -v 0.286730 0.557772 -0.534803 -v 0.200527 0.477172 -0.515462 -v 0.196566 0.367146 -0.468769 -v 0.277166 0.292148 -0.422076 -v 0.395114 0.296109 -0.402735 -v 0.481317 0.376710 -0.422076 -v 0.391169 2.232164 0.136894 -v 0.014465 2.307096 0.136894 -v 0.014465 2.197720 -0.081856 -v 0.349313 2.131115 -0.081856 -v 0.025414 2.252758 -0.109375 -v 0.360261 2.186152 -0.109375 -v 0.025414 2.362132 0.109375 -v 0.402117 2.287201 0.109375 -v -0.982164 1.641169 0.136894 -v -1.057095 1.264466 0.136894 -v -0.947720 1.264466 -0.081856 -v -0.881115 1.599313 -0.081856 -v -1.002758 1.275414 -0.109375 -v -0.936152 1.610261 -0.109375 -v -1.112132 1.275414 0.109375 -v -1.037201 1.652117 0.109375 -v 0.982164 0.858831 0.136894 -v 1.057095 1.235535 0.136894 -v 0.947720 1.235535 -0.081856 -v 0.881115 0.900687 -0.081856 -v 1.002758 1.224586 -0.109375 -v 0.936152 0.889739 -0.109375 -v 1.112132 1.224586 0.109375 -v 1.037201 0.847883 0.109375 -v -0.971093 0.832103 0.136894 -v -0.757708 0.512749 0.136894 -v -0.680368 0.590089 -0.081856 -v -0.870044 0.873959 -0.081856 -v -0.727027 0.558913 -0.109375 -v -0.916702 0.842784 -0.109375 -v -0.804366 0.481574 0.109375 -v -1.017751 0.800928 0.109375 -v 0.971093 1.667897 0.136894 -v 0.757708 1.987251 0.136894 -v 0.680368 1.909911 -0.081856 -v 0.870044 1.626041 -0.081856 -v 0.727027 1.941087 -0.109375 -v 0.916703 1.657217 -0.109375 -v 0.804366 2.018426 0.109375 -v 1.017752 1.699073 0.109375 -v -0.417897 2.221093 0.136894 -v -0.737251 2.007708 0.136894 -v -0.659911 1.930368 -0.081856 -v -0.376041 2.120044 -0.081856 -v -0.691087 1.977027 -0.109375 -v -0.407216 2.166703 -0.109375 -v -0.768426 2.054366 0.109375 -v -0.449072 2.267752 0.109375 -v 0.417897 0.278907 0.136894 -v 0.737251 0.492292 0.136894 -v 0.659911 0.569632 -0.081856 -v 0.376041 0.379956 -0.081856 -v 0.691087 0.522973 -0.109375 -v 0.407216 0.333298 -0.109375 -v 0.768426 0.445634 0.109375 -v 0.449072 0.232249 0.109375 -v -0.737251 0.492293 0.136894 -v -0.417897 0.278907 0.136894 -v -0.376041 0.379957 -0.081856 -v -0.659911 0.569632 -0.081856 -v -0.407218 0.333298 -0.109375 -v -0.691088 0.522974 -0.109375 -v -0.449074 0.232249 0.109375 -v -0.768427 0.445635 0.109375 -v 0.737251 2.007708 0.136894 -v 0.417897 2.221093 0.136894 -v 0.376041 2.120044 -0.081856 -v 0.659911 1.930368 -0.081856 -v 0.407218 2.166703 -0.109375 -v 0.691088 1.977026 -0.109375 -v 0.449074 2.267751 0.109375 -v 0.768427 2.054366 0.109375 -v -0.757708 1.987251 0.136894 -v -0.971093 1.667897 0.136894 -v -0.870044 1.626041 -0.081856 -v -0.680368 1.909911 -0.081856 -v -0.916702 1.657218 -0.109375 -v -0.727026 1.941088 -0.109375 -v -1.017751 1.699074 0.109375 -v -0.804365 2.018427 0.109375 -v 0.757708 0.512749 0.136894 -v 0.971093 0.832103 0.136894 -v 0.870044 0.873959 -0.081856 -v 0.680368 0.590089 -0.081856 -v 0.916702 0.842782 -0.109375 -v 0.727026 0.558912 -0.109375 -v 1.017751 0.800926 0.109375 -v 0.804366 0.481573 0.109375 -v -1.057095 1.235535 0.136894 -v -0.982164 0.858832 0.136894 -v -0.881115 0.900688 -0.081856 -v -0.947720 1.235535 -0.081856 -v -0.936153 0.889740 -0.109375 -v -1.002758 1.224588 -0.109375 -v -1.037201 0.847885 0.109375 -v -1.112132 1.224588 0.109375 -v 1.057095 1.264465 0.136894 -v 0.982164 1.641169 0.136894 -v 0.881115 1.599313 -0.081856 -v 0.947720 1.264465 -0.081856 -v 0.936153 1.610260 -0.109375 -v 1.002758 1.275412 -0.109375 -v 1.037202 1.652116 0.109375 -v 1.112132 1.275412 0.109375 -v -0.014465 2.307096 0.136894 -v -0.391168 2.232164 0.136894 -v -0.349312 2.131115 -0.081856 -v -0.014465 2.197721 -0.081856 -v -0.360260 2.186153 -0.109375 -v -0.025412 2.252758 -0.109375 -v -0.402115 2.287201 0.109375 -v -0.025412 2.362133 0.109375 -v 0.014465 0.192905 0.136894 -v 0.391169 0.267836 0.136894 -v 0.349312 0.368885 -0.081856 -v 0.014465 0.302280 -0.081856 -v 0.360260 0.313847 -0.109375 -v 0.025412 0.247242 -0.109375 -v 0.402115 0.212799 0.109375 -v 0.025412 0.137868 0.109375 -v 0.375000 2.500000 -1.875000 -v 0.375000 2.500000 -0.875000 -v -0.375000 2.500000 -1.875000 -v -0.375000 2.500000 -0.875000 -v 0.375000 2.250000 -1.875000 -v 0.375000 2.250000 -0.875000 -v -0.375000 2.250000 -1.875000 -v -0.375000 2.250000 -0.875000 -v 0.000000 2.500000 -1.875000 -v -0.088388 2.463388 -1.875000 -v -0.125000 2.375000 -1.875000 -v 0.125000 2.375000 -1.875000 -v 0.088388 2.463388 -1.875000 -v 0.000000 2.500000 -1.125000 -v -0.088388 2.463388 -1.125000 -v -0.125000 2.375000 -1.125000 -v 0.125000 2.375000 -1.125000 -v 0.088388 2.463388 -1.125000 -v 0.000000 2.426777 -0.948223 -v -0.088388 2.400888 -0.974111 -v -0.125000 2.338388 -1.036612 -v 0.125000 2.338388 -1.036612 -v 0.088388 2.400888 -0.974111 -v 0.000000 2.250000 -0.875000 -v -0.088388 2.250000 -0.911611 -v -0.125000 2.250000 -1.000000 -v 0.125000 2.250000 -1.000000 -v 0.088388 2.250000 -0.911611 -v 0.250000 2.500000 -1.875000 -v 0.161612 2.463388 -1.875000 -v 0.125000 2.375000 -1.875000 -v 0.375000 2.375000 -1.875000 -v 0.338388 2.463388 -1.875000 -v 0.250000 2.500000 -1.125000 -v 0.161612 2.463388 -1.125000 -v 0.125000 2.375000 -1.125000 -v 0.375000 2.375000 -1.125000 -v 0.338388 2.463388 -1.125000 -v 0.250000 2.426777 -0.948223 -v 0.161612 2.400888 -0.974111 -v 0.125000 2.338388 -1.036612 -v 0.375000 2.338388 -1.036612 -v 0.338388 2.400888 -0.974111 -v 0.250000 2.250000 -0.875000 -v 0.161612 2.250000 -0.911611 -v 0.125000 2.250000 -1.000000 -v 0.375000 2.250000 -1.000000 -v 0.338388 2.250000 -0.911611 -v -0.250000 2.500000 -1.875000 -v -0.338388 2.463388 -1.875000 -v -0.375000 2.375000 -1.875000 -v -0.125000 2.375000 -1.875000 -v -0.161612 2.463388 -1.875000 -v -0.250000 2.500000 -1.125000 -v -0.338388 2.463388 -1.125000 -v -0.375000 2.375000 -1.125000 -v -0.125000 2.375000 -1.125000 -v -0.161612 2.463388 -1.125000 -v -0.250000 2.426777 -0.948223 -v -0.338388 2.400888 -0.974111 -v -0.375000 2.338388 -1.036612 -v -0.125000 2.338388 -1.036612 -v -0.161612 2.400888 -0.974111 -v -0.250000 2.250000 -0.875000 -v -0.338388 2.250000 -0.911611 -v -0.375000 2.250000 -1.000000 -v -0.125000 2.250000 -1.000000 -v -0.161612 2.250000 -0.911611 -vt 0.227586 -0.000000 -vt 0.255172 -0.000000 -vt 0.255172 0.125000 -vt 0.227586 0.125000 -vt 0.227586 0.625000 -vt 0.227586 0.500000 -vt 0.255172 0.500000 -vt 0.255172 0.625000 -vt 0.227586 0.750000 -vt 0.255172 0.750000 -vt 0.255172 0.875000 -vt 0.227586 0.875000 -vt 0.227586 0.375000 -vt 0.227586 0.250000 -vt 0.255172 0.250000 -vt 0.255172 0.375000 -vt 0.255172 1.000000 -vt 0.227586 1.000000 -vt 0.130816 0.408077 -vt 0.185647 0.407982 -vt 0.181809 0.433762 -vt 0.158206 0.423338 -vt 0.134644 0.434152 -vt 0.227246 0.501121 -vt 0.215680 0.509781 -vt 0.201106 0.462288 -vt 0.226770 0.624909 -vt 0.215543 0.616068 -vt 0.220300 0.563004 -vt 0.185661 0.717018 -vt 0.181941 0.690910 -vt 0.202736 0.659045 -vt 0.131028 0.716313 -vt 0.134829 0.690268 -vt 0.158386 0.701199 -vt 0.089995 0.623885 -vt 0.101155 0.615205 -vt 0.113984 0.658150 -vt 0.089997 0.501305 -vt 0.101178 0.509856 -vt 0.096611 0.562314 -vt 0.113890 0.466628 -vt 0.551724 0.750000 -vt 0.682759 0.750000 -vt 0.662069 0.796875 -vt 0.662069 0.875000 -vt 0.551724 0.875000 -vt 0.606897 0.125000 -vt 0.634483 0.218750 -vt 0.662069 0.218750 -vt 0.724138 0.218750 -vt 0.724138 0.250000 -vt 0.551724 0.250000 -vt 0.551724 0.125000 -vt 0.682759 0.375000 -vt 0.551724 0.375000 -vt 0.724138 0.359375 -vt 0.703448 0.375000 -vt 0.551724 -0.000000 -vt 0.606897 -0.000000 -vt 0.662069 0.906250 -vt 0.634483 0.906250 -vt 0.606897 1.000000 -vt 0.551724 1.000000 -vt 0.413793 0.187500 -vt 0.413793 0.062500 -vt 0.441379 -0.000000 -vt 0.441379 0.250000 -vt 0.703448 0.406250 -vt 0.682759 0.406250 -vt 0.724138 0.875000 -vt 0.717241 0.875000 -vt 0.717241 0.796875 -vt 0.724138 0.765625 -vt 0.703448 0.750000 -vt 0.724138 0.906250 -vt 0.717241 0.906250 -vt 0.282759 0.796875 -vt 0.324138 0.796875 -vt 0.324138 0.812500 -vt 0.282759 0.812500 -vt 0.282759 0.828125 -vt 0.324138 0.828125 -vt 0.324138 0.843750 -vt 0.282759 0.843750 -vt 0.282759 0.859375 -vt 0.324138 0.859375 -vt 0.324138 0.875000 -vt 0.282759 0.875000 -vt 0.275862 0.906250 -vt 0.282759 0.890625 -vt 0.324138 0.890625 -vt 0.331034 0.906250 -vt 0.275862 0.765625 -vt 0.331034 0.765625 -vt 0.324138 0.781250 -vt 0.282759 0.781250 -vt 0.324138 1.000000 -vt 0.282759 1.000000 -vt 0.282759 0.984375 -vt 0.324138 0.984375 -vt 0.275862 0.984375 -vt 0.275862 0.968750 -vt 0.282759 0.968750 -vt 0.282759 0.953125 -vt 0.324138 0.953125 -vt 0.324138 0.968750 -vt 0.282759 0.968750 -vt 0.275862 0.984375 -vt 0.275862 0.968750 -vt 0.282759 0.984375 -vt 0.282759 0.984375 -vt 0.282759 0.968750 -vt 0.324138 0.968750 -vt 0.324138 0.984375 -vt 0.324138 0.968750 -vt 0.324138 0.984375 -vt 0.282759 0.968750 -vt 0.324138 0.968750 -vt 0.324138 0.984375 -vt 0.282759 0.984375 -vt 0.275862 0.984375 -vt 0.275862 0.968750 -vt 0.282759 0.953125 -vt 0.324138 0.953125 -vt 0.331034 0.968750 -vt 0.331034 0.984375 -vt 0.324138 1.000000 -vt 0.282759 1.000000 -vt 0.331034 0.968750 -vt 0.331034 0.984375 -vt 0.282759 0.953125 -vt 0.324138 0.953125 -vt 0.331034 0.968750 -vt 0.331034 0.984375 -vt 0.324138 1.000000 -vt 0.282759 1.000000 -vt 0.331034 0.968750 -vt 0.331034 0.984375 -vt 0.282759 0.953125 -vt 0.324138 0.953125 -vt 0.275862 0.984375 -vt 0.275862 0.968750 -vt 0.324138 1.000000 -vt 0.282759 1.000000 -vt 0.737931 0.250000 -vt 0.737931 0.359375 -vt 0.737931 0.218750 -vt 0.737931 0.765625 -vt 0.737931 0.875000 -vt 0.737931 0.906250 -vt 0.724138 0.375000 -vt 0.724138 0.406250 -vt 0.703448 0.718750 -vt 0.724138 0.718750 -vt 0.724138 0.750000 -vt 0.682759 0.718750 -vt 0.662069 0.625000 -vt 0.662069 0.500000 -vt 0.675862 0.500000 -vt 0.675862 0.625000 -vt 0.696552 0.421875 -vt 0.696552 0.453125 -vt 0.696552 0.671875 -vt 0.696552 0.703125 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.296552 0.031250 -vt 0.310345 0.031250 -vt 0.303448 0.046875 -vt 0.296552 0.046875 -vt 0.259370 0.124136 -vt 0.255554 0.115489 -vt 0.255554 0.103261 -vt 0.259370 0.094614 -vt 0.264768 0.094614 -vt 0.268584 0.103261 -vt 0.268584 0.115489 -vt 0.264768 0.124136 -vt 0.282759 0.031250 -vt 0.289655 0.046875 -vt 0.282759 0.046875 -vt 0.268966 0.031250 -vt 0.275862 0.046875 -vt 0.268966 0.046875 -vt 0.255172 0.031250 -vt 0.262069 0.046875 -vt 0.255172 0.046875 -vt 0.351724 0.031250 -vt 0.365517 0.031250 -vt 0.358621 0.046875 -vt 0.351724 0.046875 -vt 0.337931 0.031250 -vt 0.344828 0.046875 -vt 0.337931 0.046875 -vt 0.324138 0.031250 -vt 0.331034 0.046875 -vt 0.324138 0.046875 -vt 0.317241 0.046875 -vt 0.310345 0.046875 -vt 0.296552 0.078125 -vt 0.296552 0.062500 -vt 0.303448 0.062500 -vt 0.303448 0.078125 -vt 0.282759 0.078125 -vt 0.282759 0.062500 -vt 0.289655 0.062500 -vt 0.289655 0.078125 -vt 0.268966 0.078125 -vt 0.268966 0.062500 -vt 0.275862 0.062500 -vt 0.275862 0.078125 -vt 0.255172 0.078125 -vt 0.255172 0.062500 -vt 0.262069 0.062500 -vt 0.262069 0.078125 -vt 0.351724 0.078125 -vt 0.351724 0.062500 -vt 0.358621 0.062500 -vt 0.358621 0.078125 -vt 0.337931 0.078125 -vt 0.337931 0.062500 -vt 0.344828 0.062500 -vt 0.344828 0.078125 -vt 0.324138 0.078125 -vt 0.324138 0.062500 -vt 0.331034 0.062500 -vt 0.331034 0.078125 -vt 0.310345 0.078125 -vt 0.310345 0.062500 -vt 0.317241 0.062500 -vt 0.317241 0.078125 -vt 0.106793 0.119651 -vt 0.097935 0.106242 -vt 0.092016 0.086173 -vt 0.089938 0.062500 -vt 0.092016 0.038827 -vt 0.097935 0.018758 -vt 0.106793 0.005349 -vt 0.117241 0.000640 -vt 0.127690 0.005349 -vt 0.136548 0.018758 -vt 0.142467 0.038827 -vt 0.144545 0.062500 -vt 0.142467 0.086173 -vt 0.136548 0.106242 -vt 0.127690 0.119651 -vt 0.117241 0.124360 -vt 0.297766 0.407469 -vt 0.301337 0.432859 -vt 0.282000 0.461238 -vt 0.267164 0.508207 -vt 0.255663 0.499249 -vt 0.351705 0.408442 -vt 0.347882 0.434234 -vt 0.324503 0.423194 -vt 0.392481 0.500826 -vt 0.381418 0.509360 -vt 0.368692 0.466561 -vt 0.392687 0.622102 -vt 0.381587 0.613816 -vt 0.386036 0.561123 -vt 0.351758 0.717531 -vt 0.347834 0.691162 -vt 0.368830 0.657546 -vt 0.296432 0.717486 -vt 0.300333 0.691179 -vt 0.324106 0.701882 -vt 0.255589 0.622775 -vt 0.266830 0.614350 -vt 0.279544 0.658120 -vt 0.262317 0.561201 -vt 0.455702 0.407223 -vt 0.510269 0.408300 -vt 0.506371 0.433702 -vt 0.482981 0.422939 -vt 0.459519 0.433393 -vt 0.414646 0.501350 -vt 0.438585 0.466370 -vt 0.426010 0.510034 -vt 0.414688 0.625413 -vt 0.421416 0.563439 -vt 0.426182 0.616753 -vt 0.455784 0.717773 -vt 0.440498 0.663712 -vt 0.459554 0.692474 -vt 0.509818 0.717777 -vt 0.482677 0.702808 -vt 0.505992 0.692526 -vt 0.550560 0.624932 -vt 0.524922 0.663497 -vt 0.539080 0.616333 -vt 0.550871 0.501314 -vt 0.543898 0.563031 -vt 0.539362 0.509732 -vt 0.525316 0.462681 -vt 0.864604 0.213006 -vt 0.848515 0.125000 -vt 0.864604 0.036995 -vt 0.903448 0.000542 -vt 0.942292 0.036994 -vt 0.958382 0.125000 -vt 0.942292 0.213005 -vt 0.903448 0.249458 -vt 0.351724 0.765625 -vt 0.351724 0.906250 -vt 0.275862 0.718750 -vt 0.331034 0.718750 -vt 0.255172 0.906250 -vt 0.255172 0.765625 -vt 0.331034 0.953125 -vt 0.275862 0.953125 -vt 0.942292 0.463005 -vt 0.903448 0.499458 -vt 0.864604 0.463005 -vt 0.848515 0.375000 -vt 0.864604 0.286994 -vt 0.903448 0.250541 -vt 0.942292 0.286994 -vt 0.958382 0.375000 -vt 0.848276 0.375000 -vt 0.737931 0.375000 -vt 0.737931 0.281250 -vt 0.848276 0.281250 -vt 0.848276 0.187500 -vt 0.737931 0.187500 -vt 0.737931 0.093750 -vt 0.848276 0.093750 -vt 0.848276 0.562500 -vt 0.737931 0.562500 -vt 0.737931 0.468750 -vt 0.848276 0.468750 -vt 0.737931 -0.000000 -vt 0.848276 -0.000000 -vt 0.848276 0.656250 -vt 0.737931 0.656250 -vt 0.262069 0.171875 -vt 0.262069 0.140625 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.303448 0.171875 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.303448 0.140625 -vt 0.268966 0.125000 -vt 0.296552 0.125000 -vt 0.268966 0.187500 -vt 0.296552 0.187500 -vt 0.268966 0.093750 -vt 0.296552 0.093750 -vt 0.303448 0.140625 -vt 0.303448 0.171875 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.262069 0.140625 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.262069 0.171875 -vt 0.296552 0.187500 -vt 0.268966 0.187500 -vt 0.296552 0.125000 -vt 0.268966 0.125000 -vt 0.296552 0.093750 -vt 0.268966 0.093750 -vt 0.262069 0.171875 -vt 0.262069 0.140625 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.303448 0.171875 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.303448 0.140625 -vt 0.268966 0.125000 -vt 0.296552 0.125000 -vt 0.268966 0.187500 -vt 0.296552 0.187500 -vt 0.268966 0.093750 -vt 0.296552 0.093750 -vt 0.303448 0.140625 -vt 0.303448 0.171875 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.262069 0.140625 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.262069 0.171875 -vt 0.296552 0.187500 -vt 0.268966 0.187500 -vt 0.296552 0.125000 -vt 0.268966 0.125000 -vt 0.296552 0.093750 -vt 0.268966 0.093750 -vt 0.317241 0.171875 -vt 0.317241 0.140625 -vt 0.324138 0.140625 -vt 0.324138 0.171875 -vt 0.344828 0.187500 -vt 0.344828 0.171875 -vt 0.358621 0.171875 -vt 0.358621 0.187500 -vt 0.324138 0.125000 -vt 0.351724 0.125000 -vt 0.351724 0.140625 -vt 0.324138 0.187500 -vt 0.324138 0.093750 -vt 0.344828 0.093750 -vt 0.696552 0.687500 -vt 0.696552 0.625000 -vt 0.703448 0.625000 -vt 0.703448 0.687500 -vt 0.696552 0.500000 -vt 0.696552 0.437500 -vt 0.703448 0.437500 -vt 0.703448 0.500000 -vt 0.731034 0.437500 -vt 0.731034 0.687500 -vt 0.413793 0.914062 -vt 0.413793 0.859375 -vt 0.420690 0.859375 -vt 0.420690 0.914062 -vt 0.475862 0.914062 -vt 0.475862 0.859375 -vt 0.482759 0.859375 -vt 0.482759 0.914062 -vt 0.465517 0.937500 -vt 0.431034 0.937500 -vt 0.465517 0.953125 -vt 0.431034 0.953125 -vt 0.479310 0.937500 -vt 0.479310 0.953125 -vt 0.417241 0.953125 -vt 0.417241 0.937500 -vt 0.468966 -0.000000 -vt 0.468966 0.250000 -vt 0.337931 0.343750 -vt 0.255172 0.343750 -vt 0.255172 0.312500 -vt 0.337931 0.312500 -vt 0.351724 0.313754 -vt 0.363190 0.328752 -vt 0.363190 0.358748 -vt 0.351724 0.373746 -vt 0.340258 0.358748 -vt 0.340258 0.328752 -vt 0.255172 0.281250 -vt 0.337931 0.281250 -vt 0.255172 0.250000 -vt 0.337931 0.250000 -vt 0.340258 0.266252 -vt 0.351724 0.251254 -vt 0.363190 0.266252 -vt 0.363190 0.296248 -vt 0.351724 0.311246 -vt 0.340258 0.296248 -vt 0.924138 0.625000 -vt 0.868966 0.625000 -vt 0.868966 0.500000 -vt 0.924138 0.500000 -vt 0.848276 0.625000 -vt 0.848276 0.500000 -vt 0.944828 0.500000 -vt 0.944828 0.625000 -vt 0.834483 0.718750 -vt 0.834483 0.906250 -vt 0.765517 0.906250 -vt 0.765517 0.718750 -vt 0.737931 0.906250 -vt 0.737931 0.718750 -vt 0.862069 0.718750 -vt 0.862069 0.906250 -vt 0.834483 0.968750 -vt 0.765517 0.968750 -vt 0.765517 0.656250 -vt 0.834483 0.656250 -vt 0.958621 0.875000 -vt 0.903448 0.875000 -vt 0.903448 0.718750 -vt 0.958621 0.718750 -vt 0.903448 0.625000 -vt 0.958621 0.625000 -vt 0.958621 0.968750 -vt 0.903448 0.968750 -vt 0.862069 0.875000 -vt 0.862069 0.718750 -vt 1.000000 0.718750 -vt 1.000000 0.875000 -vt 0.986207 0.187500 -vt 0.958621 0.187500 -vt 0.958621 0.156250 -vt 0.986207 0.156250 -vt 0.986207 0.062500 -vt 0.958621 0.062500 -vt 0.958621 0.031250 -vt 0.986207 0.031250 -vt 0.986207 0.125000 -vt 0.958621 0.125000 -vt 0.958621 0.093750 -vt 0.986207 0.093750 -vt 0.958621 0.000000 -vt 0.986207 0.000000 -vt 0.978890 0.244165 -vt 0.965937 0.244165 -vt 0.959461 0.218750 -vt 0.965937 0.193335 -vt 0.978890 0.193335 -vt 0.985367 0.218750 -vt 0.737931 0.093750 -vt 0.737931 0.109375 -vt 0.724138 0.109375 -vt 0.724138 0.093750 -vt 0.737931 0.000000 -vt 0.737931 0.015625 -vt 0.724138 0.015625 -vt 0.724138 0.000000 -vt 0.737931 0.125000 -vt 0.737931 0.140625 -vt 0.724138 0.140625 -vt 0.724138 0.125000 -vt 0.737931 0.062500 -vt 0.737931 0.078125 -vt 0.724138 0.078125 -vt 0.724138 0.062500 -vt 0.737931 0.031250 -vt 0.737931 0.046875 -vt 0.724138 0.046875 -vt 0.724138 0.031250 -vt 0.737931 0.156250 -vt 0.737931 0.171875 -vt 0.724138 0.171875 -vt 0.724138 0.156250 -vt 0.717241 0.031250 -vt 0.717241 0.000000 -vt 0.717241 0.156250 -vt 0.717241 0.125000 -vt 0.717241 0.093750 -vt 0.717241 0.062500 -vt 0.717241 0.187500 -vt 0.675862 0.062500 -vt 0.675862 0.031250 -vt 0.675862 0.187500 -vt 0.675862 0.156250 -vt 0.675862 0.125000 -vt 0.675862 0.093750 -vt 0.675862 0.000000 -vt 0.668966 0.140625 -vt 0.668966 0.125000 -vt 0.668966 0.109375 -vt 0.668966 0.093750 -vt 0.668966 0.078125 -vt 0.668966 0.062500 -vt 0.668966 0.046875 -vt 0.668966 0.031250 -vt 0.668966 0.015625 -vt 0.668966 0.000000 -vt 0.668966 0.171875 -vt 0.668966 0.156250 -vt 0.655172 0.171875 -vt 0.655172 0.156250 -vt 0.655172 0.109375 -vt 0.655172 0.093750 -vt 0.655172 0.015625 -vt 0.655172 0.000000 -vt 0.655172 0.140625 -vt 0.655172 0.125000 -vt 0.655172 0.078125 -vt 0.655172 0.062500 -vt 0.655172 0.046875 -vt 0.655172 0.031250 -vt 0.648276 0.156250 -vt 0.648276 0.125000 -vt 0.648276 0.093750 -vt 0.648276 0.062500 -vt 0.648276 0.031250 -vt 0.648276 0.000000 -vt 0.648276 0.187500 -vt 0.641379 0.125000 -vt 0.641379 0.093750 -vt 0.641379 0.031250 -vt 0.641379 -0.000000 -vt 0.641379 0.156250 -vt 0.641379 0.062500 -vt 0.641379 0.187500 -vt 0.634483 0.078125 -vt 0.634483 0.062500 -vt 0.634483 0.046875 -vt 0.634483 0.031250 -vt 0.634483 0.171875 -vt 0.634483 0.156250 -vt 0.634483 0.109375 -vt 0.634483 0.093750 -vt 0.634483 0.015625 -vt 0.634483 0.000000 -vt 0.634483 0.140625 -vt 0.634483 0.125000 -vt 0.630883 0.028561 -vt 0.624290 0.028561 -vt 0.620993 0.015625 -vt 0.624290 0.002689 -vt 0.630883 0.002689 -vt 0.634179 0.015625 -vt 0.510345 0.156250 -vt 0.489655 0.156250 -vt 0.489655 0.046875 -vt 0.510345 0.046875 -vt 0.434483 0.750000 -vt 0.434483 0.812500 -vt 0.413793 0.812500 -vt 0.413793 0.765625 -vt 0.420690 0.750000 -vt 0.489655 0.000000 -vt 0.510345 0.000000 -vt 0.468966 0.156250 -vt 0.468966 0.046875 -vt 0.531034 0.046875 -vt 0.531034 0.156250 -vt 0.496552 0.156250 -vt 0.496552 0.187500 -vt 0.468966 0.187500 -vt 0.468966 0.156250 -vt 0.496552 0.265625 -vt 0.496552 0.312500 -vt 0.468966 0.312500 -vt 0.468966 0.265625 -vt 0.496552 0.234375 -vt 0.468966 0.234375 -vt 0.455172 0.750000 -vt 0.455172 0.812500 -vt 0.496552 0.750000 -vt 0.496552 0.765625 -vt 0.475862 0.765625 -vt 0.475862 0.750000 -vt 0.468966 0.750000 -vt 0.475862 0.812500 -vt 0.455172 0.859375 -vt 0.434483 0.859375 -vt 0.496552 0.812500 -vt 0.434483 0.718750 -vt 0.455172 0.718750 -vt 0.537931 0.812500 -vt 0.537931 0.828125 -vt 0.524138 0.828125 -vt 0.524138 0.812500 -vt 0.503448 0.718750 -vt 0.517241 0.718750 -vt 0.517241 0.812500 -vt 0.503448 0.812500 -vt 0.524138 0.718750 -vt 0.537931 0.718750 -vt 0.496552 0.718750 -vt 0.496552 0.812500 -vt 0.986207 0.609375 -vt 0.979310 0.609375 -vt 0.979310 0.593750 -vt 0.986207 0.593750 -vt 0.979310 0.531250 -vt 0.979310 0.515625 -vt 0.986207 0.515625 -vt 0.986207 0.531250 -vt 0.972414 0.593750 -vt 0.972414 0.562500 -vt 0.979310 0.578125 -vt 0.551724 0.625000 -vt 0.565517 0.609375 -vt 0.620690 0.609375 -vt 0.620690 0.734375 -vt 0.606897 0.734375 -vt 0.620690 0.640625 -vt 0.634483 0.640625 -vt 0.565517 0.640625 -vt 0.565517 0.734375 -vt 0.662069 0.734375 -vt 0.648276 0.640625 -vt 0.565517 0.390625 -vt 0.565517 0.484375 -vt 0.551724 0.500000 -vt 0.662069 0.375000 -vt 0.606897 0.390625 -vt 0.620690 0.484375 -vt 0.117241 0.906250 -vt 0.075862 0.906250 -vt 0.075862 0.875000 -vt 0.117241 0.875000 -vt 0.117241 0.125000 -vt 0.158621 0.125000 -vt 0.158621 0.156250 -vt 0.117241 0.156250 -vt 0.117241 0.906250 -vt 0.117241 0.875000 -vt 0.158621 0.875000 -vt 0.158621 0.906250 -vt 0.131034 0.250000 -vt 0.144828 0.250000 -vt 0.227586 0.875000 -vt 0.213793 0.875000 -vt 0.213793 0.781250 -vt 0.227586 0.781250 -vt 0.020690 0.781250 -vt 0.062069 0.781250 -vt 0.020690 0.875000 -vt 0.186207 0.281250 -vt 0.144828 0.281250 -vt 0.186207 0.250000 -vt 0.213793 0.750000 -vt 0.172414 0.781250 -vt 0.172414 0.750000 -vt 0.131034 0.281250 -vt 0.089655 0.281250 -vt 0.089655 0.250000 -vt 0.020690 0.906250 -vt 0.020690 0.750000 -vt 0.062069 0.750000 -vt 0.544828 0.203125 -vt 0.551724 0.203125 -vt 0.551724 0.250000 -vt 0.544828 0.250000 -vt 0.524138 0.203125 -vt 0.531034 0.203125 -vt 0.531034 0.250000 -vt 0.524138 0.250000 -vt 0.503448 0.203125 -vt 0.510345 0.203125 -vt 0.510345 0.250000 -vt 0.503448 0.250000 -vt 0.537931 0.203125 -vt 0.537931 0.250000 -vt 0.510345 0.296875 -vt 0.503448 0.296875 -vt 0.531034 0.296875 -vt 0.524138 0.296875 -vt 0.531034 0.203125 -vt 0.531034 0.187500 -vt 0.537931 0.187500 -vt 0.544828 0.187500 -vt 0.551724 0.187500 -vt 0.551724 0.203125 -vt 0.503448 0.203125 -vt 0.503448 0.187500 -vt 0.510345 0.187500 -vt 0.517241 0.187500 -vt 0.517241 0.203125 -vt 0.524138 0.187500 -vt 0.524138 0.203125 -vt 0.537931 0.156250 -vt 0.544828 0.156250 -vt 0.524138 0.156250 -vt 0.531034 0.156250 -vt 0.524138 0.187500 -vt 0.503448 0.156250 -vt 0.510345 0.156250 -vt 0.517241 0.156250 -vt 0.524138 0.156250 -vt 0.551724 0.156250 -vt 0.496552 0.156250 -vt 0.496552 0.187500 -vt 0.496552 0.203125 -vt 0.496552 0.250000 -vt 0.986207 0.515625 -vt 0.979310 0.515625 -vt 0.979310 0.484375 -vt 0.986207 0.484375 -vt 0.213793 0.906250 -vt 0.006897 0.875000 -vt 0.006897 0.781250 -vt 0.517241 0.250000 -vt 0.517241 0.296875 -vt 0.524138 0.250000 -vt 0.524138 0.296875 -vt 0.551724 0.296875 -vt 0.544828 0.296875 -vt 0.496552 0.296875 -vt 0.537931 0.296875 -vt 0.524138 0.203125 -vt 0.213793 0.265625 -vt 0.213793 0.109375 -vt 0.220690 0.109375 -vt 0.220690 0.265625 -vt 0.972414 0.515625 -vt 0.972414 0.484375 -vt 0.227586 0.109375 -vt 0.227586 0.265625 -vt 0.965517 0.515625 -vt 0.965517 0.484375 -vt 0.186207 0.265625 -vt 0.186207 0.109375 -vt 0.193103 0.109375 -vt 0.193103 0.265625 -vt 0.958621 0.515625 -vt 0.958621 0.484375 -vt 0.200000 0.109375 -vt 0.200000 0.265625 -vt 0.187370 0.273751 -vt 0.193103 0.266252 -vt 0.198836 0.273751 -vt 0.198836 0.288749 -vt 0.193103 0.296248 -vt 0.187370 0.288749 -vt 0.206897 0.109375 -vt 0.206897 0.265625 -vt 0.206897 0.266252 -vt 0.212630 0.273751 -vt 0.212630 0.288749 -vt 0.206897 0.296248 -vt 0.201164 0.288749 -vt 0.201164 0.273751 -vt 0.965517 0.468750 -vt 0.972414 0.468750 -vt 0.979310 0.484375 -vt 0.979310 0.468750 -vt 0.958621 0.468750 -vt 0.958621 0.484375 -vt 0.958621 0.453125 -vt 0.965517 0.453125 -vt 0.965517 0.437500 -vt 0.958621 0.437500 -vt 0.958621 0.421875 -vt 0.965517 0.421875 -vt 0.972414 0.453125 -vt 0.979310 0.453125 -vt 0.986207 0.468750 -vt 0.986207 0.453125 -vt 0.972414 0.437500 -vt 0.965517 0.453125 -vt 0.986207 0.453125 -vt 0.979310 0.437500 -vt 0.986207 0.437500 -vt 0.979310 0.421875 -vt 0.972414 0.421875 -vt 0.972414 0.343750 -vt 0.979310 0.343750 -vt 0.986207 0.421875 -vt 0.965517 0.328125 -vt 0.972414 0.328125 -vt 0.965517 0.343750 -vt 0.986207 0.343750 -vt 0.958621 0.343750 -vt 0.965517 0.343750 -vt 0.979310 0.328125 -vt 0.986207 0.328125 -vt 0.979310 0.296875 -vt 0.986207 0.296875 -vt 0.986207 0.343750 -vt 0.965517 0.281250 -vt 0.958621 0.281250 -vt 0.958621 0.250000 -vt 0.965517 0.250000 -vt 0.958621 0.328125 -vt 0.958621 0.296875 -vt 0.965517 0.296875 -vt 0.972414 0.296875 -vt 0.979310 0.296875 -vt 0.972414 0.281250 -vt 0.979310 0.281250 -vt 0.958621 0.296875 -vt 0.986207 0.281250 -vt 0.979310 0.250000 -vt 0.986207 0.250000 -vt 0.972414 0.250000 -vt 0.510345 0.156250 -vt 0.489655 0.156250 -vt 0.489655 0.046875 -vt 0.510345 0.046875 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.455172 0.531250 -vt 0.510345 0.531250 -vt 0.510345 0.562500 -vt 0.455172 0.562500 -vt 0.620690 0.515625 -vt 0.565517 0.515625 -vt 0.565517 0.515625 -vt 0.620690 0.515625 -vt 0.620690 0.609375 -vt 0.565517 0.609375 -vt 0.441379 0.609375 -vt 0.441379 0.515625 -vt 0.455172 0.515625 -vt 0.455172 0.609375 -vt 0.524138 0.515625 -vt 0.524138 0.609375 -vt 0.510345 0.609375 -vt 0.510345 0.515625 -vt 0.510345 0.593750 -vt 0.455172 0.593750 -vt 0.455172 0.562500 -vt 0.510345 0.562500 -vt 0.089655 0.375000 -vt 0.089655 0.421875 -vt 0.075862 0.421875 -vt 0.075862 0.375000 -vt 0.089655 0.328125 -vt 0.075862 0.328125 -vt 0.089655 0.281250 -vt 0.075862 0.281250 -vt 0.089655 0.234375 -vt 0.075862 0.234375 -vt 0.089655 0.187500 -vt 0.075862 0.187500 -vt 0.089655 0.140625 -vt 0.075862 0.140625 -vt 0.089655 0.093750 -vt 0.075862 0.093750 -vt 0.089655 0.046875 -vt 0.075862 0.046875 -vt 0.089655 -0.000000 -vt 0.075862 0.000000 -vt 0.089655 0.703125 -vt 0.089655 0.750000 -vt 0.075862 0.750000 -vt 0.075862 0.703125 -vt 0.089655 0.656250 -vt 0.075862 0.656250 -vt 0.089655 0.609375 -vt 0.075862 0.609375 -vt 0.089655 0.562500 -vt 0.075862 0.562500 -vt 0.089655 0.515625 -vt 0.075862 0.515625 -vt 0.089655 0.468750 -vt 0.075862 0.468750 -vt 0.055172 0.421875 -vt 0.055172 0.375000 -vt 0.055172 0.328125 -vt 0.055172 0.046875 -vt 0.055172 -0.000000 -vt 0.055172 0.468750 -vt 0.055172 0.093750 -vt 0.055172 0.515625 -vt 0.055172 0.140625 -vt 0.055172 0.562500 -vt 0.055172 0.187500 -vt 0.055172 0.609375 -vt 0.055172 0.234375 -vt 0.055172 0.656250 -vt 0.055172 0.281250 -vt 0.055172 0.703125 -vt 0.055172 0.750000 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.000000 0.125000 -vt 0.000000 0.093750 -vt -0.000000 0.546875 -vt 0.000000 0.515625 -vt -0.000000 0.171875 -vt -0.000000 0.140625 -vt -0.000000 0.593750 -vt -0.000000 0.562500 -vt 0.000000 0.218750 -vt 0.000000 0.187500 -vt 0.000000 0.640625 -vt 0.000000 0.609375 -vt -0.000000 0.265625 -vt -0.000000 0.234375 -vt 0.000000 0.687500 -vt 0.000000 0.656250 -vt -0.000000 0.312500 -vt -0.000000 0.281250 -vt -0.000000 0.734375 -vt 0.000000 0.703125 -vt -0.000000 0.406250 -vt -0.000000 0.375000 -vt 0.000000 0.359375 -vt 0.000000 0.328125 -vt 0.000000 0.031250 -vt -0.000000 0.000000 -vt -0.000000 0.453125 -vt 0.000000 0.421875 -vt -0.000000 0.078125 -vt -0.000000 0.046875 -vt -0.000000 0.500000 -vt 0.000000 0.468750 -vt 0.296552 0.000000 -vt 0.310345 0.000000 -vt 0.268966 0.000000 -vt 0.282759 0.000000 -vt 0.351724 0.000000 -vt 0.365517 0.000000 -vt 0.324138 0.000000 -vt 0.337931 0.000000 -vt 0.255172 0.000000 -vt 0.317241 0.093750 -vt 0.310345 0.093750 -vt 0.303448 0.093750 -vt 0.296552 0.093750 -vt 0.289655 0.093750 -vt 0.282759 0.093750 -vt 0.275862 0.093750 -vt 0.268966 0.093750 -vt 0.331034 0.093750 -vt 0.324138 0.093750 -vt 0.344828 0.093750 -vt 0.337931 0.093750 -vt 0.358621 0.093750 -vt 0.351724 0.093750 -vt 0.262069 0.093750 -vt 0.255172 0.093750 -vt 0.393103 1.000000 -vt 0.393103 0.937500 -vt 0.413793 0.937500 -vt 0.413793 1.000000 -vt 0.393103 0.562500 -vt 0.393103 0.500000 -vt 0.413793 0.500000 -vt 0.413793 0.562500 -vt 0.393103 0.437500 -vt 0.413793 0.437500 -vt 0.393103 0.062500 -vt 0.393103 -0.000000 -vt 0.413793 -0.000000 -vt 0.413793 0.062500 -vt 0.393103 0.625000 -vt 0.413793 0.625000 -vt 0.393103 0.125000 -vt 0.413793 0.125000 -vt 0.393103 0.687500 -vt 0.413793 0.687500 -vt 0.393103 0.187500 -vt 0.413793 0.187500 -vt 0.393103 0.750000 -vt 0.413793 0.750000 -vt 0.393103 0.250000 -vt 0.413793 0.250000 -vt 0.393103 0.812500 -vt 0.413793 0.812500 -vt 0.393103 0.312500 -vt 0.413793 0.312500 -vt 0.393103 0.875000 -vt 0.413793 0.875000 -vt 0.393103 0.375000 -vt 0.413793 0.375000 -vt 0.958621 0.609375 -vt 0.958621 0.593750 -vt 0.965517 0.593750 -vt 0.965517 0.609375 -vt 0.958621 0.562500 -vt 0.958621 0.546875 -vt 0.965517 0.546875 -vt 0.965517 0.562500 -vt 0.986207 0.578125 -vt 0.958621 0.625000 -vt 0.965517 0.625000 -vt 0.958621 0.578125 -vt 0.965517 0.578125 -vt 0.979310 0.562500 -vt 0.986207 0.562500 -vt 0.958621 0.531250 -vt 0.958621 0.515625 -vt 0.965517 0.515625 -vt 0.965517 0.531250 -vt 0.958621 0.640625 -vt 0.965517 0.640625 -vt 0.979310 0.546875 -vt 0.986207 0.546875 -vt 0.965517 0.609375 -vt 0.965517 0.593750 -vt 0.972414 0.593750 -vt 0.972414 0.609375 -vt 0.965517 0.656250 -vt 0.965517 0.640625 -vt 0.972414 0.640625 -vt 0.972414 0.656250 -vt 0.965517 0.546875 -vt 0.965517 0.531250 -vt 0.972414 0.531250 -vt 0.972414 0.546875 -vt 0.965517 0.703125 -vt 0.965517 0.687500 -vt 0.972414 0.687500 -vt 0.972414 0.703125 -vt 0.965517 0.578125 -vt 0.972414 0.578125 -vt 0.965517 0.625000 -vt 0.972414 0.625000 -vt 0.965517 0.515625 -vt 0.972414 0.515625 -vt 0.965517 0.671875 -vt 0.972414 0.671875 -vt 0.965517 0.562500 -vt 0.972414 0.562500 -vt 0.296552 0.234375 -vt 0.296552 0.218750 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.203125 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.234375 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.296552 0.203125 -vt 0.310345 0.203125 -vt 0.310345 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.296552 0.203125 -vt 0.310345 0.203125 -vt 0.310345 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.296552 0.203125 -vt 0.310345 0.203125 -vt 0.310345 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.203125 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.187500 -vt 0.255172 0.203125 -vt 0.255172 0.218750 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.187500 -vt 0.296552 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.296552 0.203125 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.234375 -vt 0.296552 0.218750 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.296552 0.203125 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.234375 -vt 0.296552 0.218750 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.218750 -vt 0.255172 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.218750 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.234375 -vt 0.255172 0.250000 -vt 0.255172 0.250000 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.296552 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.250000 -vt 0.296552 0.250000 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.296552 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.250000 -vt 0.296552 0.250000 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.296552 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.250000 -vt 0.296552 0.250000 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.7071 -0.7071 0.0000 -vn -0.7071 -0.7071 0.0000 -vn -0.7071 0.7071 0.0000 -vn -0.0000 -0.0000 1.0000 -vn -0.7074 -0.7068 -0.0001 -vn 0.0000 -0.7071 -0.7071 -vn -0.7071 -0.7071 0.0057 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.9487 -0.3162 -vn 0.0000 0.4472 -0.8944 -vn 0.1617 0.3904 0.9063 -vn 0.1617 0.3905 0.9063 -vn 0.1752 0.8806 0.4403 -vn 0.0859 0.4318 -0.8978 -vn 0.9845 -0.1567 -0.0783 -vn -0.0859 -0.4318 0.8978 -vn -0.9695 0.2320 -0.0783 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.3162 0.3162 -0.8944 -vn 0.0000 0.4226 -0.9063 -vn 0.0000 0.9063 0.4226 -vn -0.7071 0.6409 0.2988 -vn 0.7071 0.6409 0.2988 -vn 0.0000 0.7934 0.6088 -vn 0.0000 0.1305 -0.9914 -vn 0.0000 0.5000 0.8660 -vn 0.0000 0.5000 -0.8660 -vn 0.0000 -0.5000 -0.8660 -vn 0.0000 -0.5000 0.8660 -vn 0.6547 0.3780 -0.6547 -vn 0.6547 -0.3780 -0.6547 -vn 0.6547 -0.3780 0.6547 -vn 0.6547 0.7559 0.0000 -vn 0.6547 -0.7559 0.0000 -vn 0.6547 0.3780 0.6547 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 -vn -0.5000 -0.7849 -0.3660 -vn -0.0000 -0.4226 0.9063 -vn -0.2357 0.2357 0.9428 -vn 0.2357 0.2357 0.9428 -vn -0.2357 -0.2357 -0.9428 -vn -0.2357 -0.2357 0.9428 -vn 0.0000 -0.9285 0.3714 -vn 0.0000 0.9285 -0.3714 -vn 0.0000 -0.9900 -0.1407 -vn 0.0000 0.9900 0.1407 -vn -0.1617 -0.3904 0.9063 -vn -0.1617 -0.3905 0.9063 -vn 0.3904 -0.1617 0.9063 -vn 0.3905 -0.1617 0.9063 -vn -0.3904 0.1617 0.9063 -vn -0.3905 0.1617 0.9063 -vn 0.3904 0.1617 0.9063 -vn 0.3905 0.1617 0.9063 -vn -0.3904 -0.1617 0.9063 -vn -0.3905 -0.1617 0.9063 -vn 0.1617 -0.3904 0.9063 -vn 0.1617 -0.3905 0.9063 -vn -0.1617 0.3904 0.9063 -vn -0.1617 0.3905 0.9063 -vn -0.1752 -0.8806 0.4403 -vn -0.0859 -0.4318 -0.8979 -vn -0.9845 0.1567 -0.0783 -vn 0.0859 0.4318 0.8978 -vn 0.9695 -0.2320 -0.0783 -vn 0.8806 -0.1752 0.4403 -vn 0.4318 -0.0859 -0.8978 -vn -0.1567 -0.9845 -0.0783 -vn -0.4318 0.0859 0.8978 -vn 0.2320 0.9695 -0.0783 -vn -0.8806 0.1752 0.4403 -vn -0.4318 0.0859 -0.8978 -vn 0.1567 0.9845 -0.0783 -vn 0.4318 -0.0859 0.8978 -vn -0.2320 -0.9695 -0.0783 -vn 0.7465 0.4988 0.4403 -vn 0.3661 0.2446 -0.8978 -vn 0.5854 -0.8070 -0.0783 -vn -0.3661 -0.2446 0.8978 -vn -0.5215 0.8496 -0.0783 -vn -0.7465 -0.4988 0.4403 -vn -0.3661 -0.2446 -0.8978 -vn -0.5854 0.8070 -0.0783 -vn 0.3661 0.2446 0.8978 -vn 0.5215 -0.8496 -0.0783 -vn 0.4988 -0.7465 0.4403 -vn 0.2446 -0.3661 -0.8979 -vn -0.8070 -0.5854 -0.0783 -vn -0.2446 0.3661 0.8978 -vn 0.8496 0.5215 -0.0783 -vn -0.4988 0.7465 0.4403 -vn -0.2446 0.3661 -0.8978 -vn 0.8070 0.5854 -0.0783 -vn 0.2446 -0.3661 0.8978 -vn -0.8496 -0.5215 -0.0783 -vn 0.4988 0.7465 0.4403 -vn 0.2446 0.3661 -0.8979 -vn 0.8496 -0.5215 -0.0783 -vn -0.2446 -0.3661 0.8978 -vn -0.8070 0.5854 -0.0783 -vn -0.4988 -0.7465 0.4403 -vn -0.2446 -0.3661 -0.8978 -vn -0.8496 0.5215 -0.0783 -vn 0.2446 0.3661 0.8978 -vn 0.8070 -0.5854 -0.0783 -vn 0.7465 -0.4988 0.4403 -vn 0.3661 -0.2446 -0.8978 -vn -0.5215 -0.8496 -0.0783 -vn -0.3661 0.2446 0.8978 -vn 0.5854 0.8070 -0.0783 -vn -0.7465 0.4988 0.4403 -vn -0.3661 0.2446 -0.8978 -vn 0.5215 0.8496 -0.0783 -vn 0.3661 -0.2446 0.8978 -vn -0.5854 -0.8070 -0.0783 -vn 0.8806 0.1752 0.4403 -vn 0.4318 0.0859 -0.8978 -vn 0.2320 -0.9696 -0.0783 -vn -0.4318 -0.0859 0.8978 -vn -0.1567 0.9845 -0.0783 -vn -0.8806 -0.1752 0.4403 -vn -0.4318 -0.0859 -0.8978 -vn -0.2320 0.9696 -0.0783 -vn 0.4318 0.0859 0.8978 -vn 0.1567 -0.9845 -0.0783 -vn 0.1752 -0.8806 0.4403 -vn 0.0859 -0.4318 -0.8979 -vn -0.9696 -0.2320 -0.0783 -vn -0.0859 0.4318 0.8978 -vn 0.9845 0.1567 -0.0783 -vn -0.1752 0.8806 0.4403 -vn -0.0859 0.4318 -0.8978 -vn 0.9696 0.2320 -0.0783 -vn 0.0859 -0.4318 0.8978 -vn -0.9845 -0.1567 -0.0783 -vn 0.0000 -0.8944 0.4472 -vn 0.3423 -0.8263 0.4472 -vn -0.3423 -0.8263 0.4472 -vn -0.6325 -0.6325 0.4472 -vn -0.8263 -0.3423 0.4472 -vn -0.8944 -0.0000 0.4472 -vn -0.8263 0.3423 0.4472 -vn -0.6325 0.6325 0.4472 -vn -0.3423 0.8263 0.4472 -vn 0.0000 0.8944 0.4472 -vn 0.3423 0.8263 0.4472 -vn 0.6325 0.6325 0.4472 -vn 0.8263 0.3423 0.4472 -vn 0.8944 -0.0000 0.4472 -vn 0.8263 -0.3423 0.4472 -vn 0.6325 -0.6325 0.4472 -vn 0.3827 -0.9239 0.0000 -vn -0.3827 -0.9239 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.9239 -0.3827 0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.9239 -0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.7311 -0.6303 -0.2611 -vn 0.9947 0.0948 0.0393 -vn 0.9973 0.0609 0.0399 -vn 0.7430 -0.5190 -0.4226 -vn 0.6333 0.7150 0.2962 -vn 0.0000 0.7690 0.6392 -vn 0.6721 0.5735 0.4683 -vn -0.6333 0.7150 0.2962 -vn -0.9947 0.0948 0.0393 -vn -0.9973 0.0609 0.0399 -vn -0.6721 0.5735 0.4683 -vn -0.7311 -0.6303 -0.2611 -vn -0.7430 -0.5190 -0.4226 -vn 0.0000 -0.7779 -0.6284 -vn -0.9989 0.0183 0.0441 -vn -0.6841 0.2791 0.6739 -vn 0.0000 0.3827 0.9239 -vn 0.6840 0.2791 0.6739 -vn 0.9989 0.0183 0.0441 -vn 0.7317 -0.2608 -0.6297 -vn -0.7317 -0.2608 -0.6297 -vn 0.7317 0.0000 -0.6816 -vn -0.7317 0.0000 -0.6816 -vn -0.9989 0.0000 0.0477 -vn -0.6841 -0.0000 0.7294 -vn 0.6840 -0.0000 0.7294 -vn 0.9989 0.0000 0.0477 -vn -0.6770 -0.1436 0.7219 -vn 0.0000 -0.1951 0.9808 -vn 0.6770 -0.1436 0.7219 -vn 0.9988 -0.0095 0.0477 -vn 0.7251 0.1344 -0.6754 -vn 0.0000 0.1951 -0.9808 -vn -0.7251 0.1344 -0.6754 -vn -0.9988 -0.0095 0.0477 -vn 0.8985 0.3215 -0.2988 -vn 0.3468 0.8373 -0.4226 -vn -0.4080 0.8627 -0.2988 -vn -0.8985 -0.3215 0.2988 -vn -0.3468 -0.8373 0.4226 -vn 0.4080 -0.8627 0.2988 -vn -0.3162 0.3162 0.8944 -vn -0.4132 0.1711 0.8944 -vn 0.4132 -0.1711 0.8944 -vn 0.4472 -0.0000 0.8944 -vn -0.4472 -0.0000 0.8944 -vn 0.4132 0.1711 0.8944 -vn -0.4132 -0.1711 0.8944 -vn 0.3162 0.3162 0.8944 -vn -0.3162 -0.3162 0.8944 -vn 0.1711 0.4132 0.8944 -vn -0.1711 -0.4132 0.8944 -vn 0.0000 0.4472 0.8944 -vn 0.0000 -0.4472 0.8944 -vn 0.1711 -0.4132 0.8944 -vn -0.1711 0.4132 0.8944 -vn 0.3162 -0.3162 0.8944 -vn 0.0000 -0.9063 -0.4226 -vn -0.8660 0.4532 0.2113 -vn 0.2588 0.8754 0.4082 -vn 0.5000 0.7849 0.3660 -vn 0.5000 -0.7849 -0.3660 -vn -0.8660 -0.4532 -0.2113 -vn 0.8660 0.4532 0.2113 -vn -0.5000 0.7849 0.3660 -vn -0.2588 0.8754 0.4082 -vn 0.7071 -0.6409 -0.2988 -vn 0.9659 -0.2346 -0.1094 -vn 0.8660 -0.4532 -0.2113 -vn 0.9891 0.0283 0.1448 -vn 0.6947 0.6947 0.1866 -vn 0.5000 0.5000 0.7071 -vn 0.8431 -0.0945 0.5293 -vn 0.0283 0.9891 0.1448 -vn -0.3812 0.9204 0.0866 -vn -0.4619 0.8446 0.2706 -vn -0.0945 0.8431 0.5294 -vn -0.0283 0.9891 0.1448 -vn 0.0945 0.8431 0.5294 -vn 0.4619 0.8446 0.2706 -vn 0.3812 0.9204 0.0866 -vn -0.9891 0.0283 0.1448 -vn -0.8431 -0.0945 0.5293 -vn -0.5000 0.5000 0.7071 -vn -0.6947 0.6947 0.1866 -vn -0.9204 -0.3812 0.0866 -vn -0.8446 -0.4619 0.2706 -vn -0.2706 0.2706 0.9239 -vn 0.2384 0.6572 0.7150 -vn -0.7559 -0.5345 0.3780 -vn -0.6572 -0.2384 0.7150 -vn 0.5345 0.7559 0.3780 -vn -0.8431 -0.0945 0.5294 -vn 0.9204 -0.3812 0.0866 -vn 0.8446 -0.4619 0.2706 -vn -0.2384 0.6572 0.7150 -vn 0.2706 0.2706 0.9239 -vn 0.6572 -0.2384 0.7150 -vn 0.7559 -0.5345 0.3780 -vn -0.5345 0.7559 0.3780 -vn -0.0945 0.8431 0.5293 -vn 0.8431 -0.0945 0.5294 -vn -0.7311 0.6303 -0.2611 -vn -0.9947 -0.0948 0.0393 -vn -0.9973 -0.0609 0.0399 -vn -0.7430 0.5190 -0.4226 -vn -0.6333 -0.7150 0.2962 -vn -0.0000 -0.7690 0.6392 -vn -0.6721 -0.5735 0.4683 -vn 0.6333 -0.7150 0.2962 -vn 0.9947 -0.0948 0.0393 -vn 0.9973 -0.0609 0.0399 -vn 0.6721 -0.5735 0.4683 -vn 0.7311 0.6303 -0.2611 -vn 0.7430 0.5190 -0.4226 -vn -0.0000 0.7779 -0.6284 -vn 0.9989 -0.0183 0.0441 -vn 0.6841 -0.2791 0.6739 -vn -0.6840 -0.2791 0.6739 -vn -0.9989 -0.0183 0.0441 -vn -0.7317 0.2608 -0.6297 -vn 0.7317 0.2608 -0.6297 -vn 0.6841 0.0000 0.7294 -vn -0.6840 0.0000 0.7294 -vn 0.6770 0.1436 0.7219 -vn -0.0000 0.1951 0.9808 -vn -0.6770 0.1436 0.7219 -vn -0.9988 0.0095 0.0477 -vn -0.7251 -0.1344 -0.6754 -vn -0.0000 -0.1951 -0.9808 -vn 0.7251 -0.1344 -0.6754 -vn 0.9988 0.0095 0.0477 -vn -0.8985 -0.3215 -0.2988 -vn -0.3468 -0.8373 -0.4226 -vn 0.4080 -0.8627 -0.2988 -vn 0.8985 0.3215 0.2988 -vn 0.3468 0.8373 0.4226 -vn -0.4080 0.8627 0.2988 -vn -0.6303 -0.7311 -0.2611 -vn 0.0948 -0.9947 0.0393 -vn 0.0609 -0.9973 0.0399 -vn -0.5190 -0.7430 -0.4226 -vn 0.7150 -0.6333 0.2962 -vn 0.9239 -0.0000 0.3827 -vn 0.7690 -0.0000 0.6392 -vn 0.5735 -0.6721 0.4683 -vn 0.7150 0.6333 0.2962 -vn 0.0948 0.9947 0.0393 -vn 0.0609 0.9973 0.0399 -vn 0.5735 0.6721 0.4683 -vn -0.6303 0.7311 -0.2611 -vn -0.5190 0.7430 -0.4226 -vn -0.9239 -0.0000 -0.3827 -vn -0.7779 -0.0000 -0.6284 -vn 0.0183 0.9989 0.0441 -vn 0.2791 0.6841 0.6739 -vn 0.3827 -0.0000 0.9239 -vn 0.2791 -0.6840 0.6739 -vn 0.0183 -0.9989 0.0441 -vn -0.2608 -0.7317 -0.6297 -vn -0.3827 -0.0000 -0.9239 -vn -0.2608 0.7317 -0.6297 -vn 0.0000 -0.7317 -0.6816 -vn 0.0000 0.7317 -0.6816 -vn 0.0000 0.9989 0.0477 -vn 0.0000 0.6841 0.7294 -vn -0.0000 -0.6840 0.7294 -vn -0.0000 -0.9989 0.0477 -vn -0.1436 0.6770 0.7219 -vn -0.1951 -0.0000 0.9808 -vn -0.1436 -0.6770 0.7219 -vn -0.0095 -0.9988 0.0477 -vn 0.1344 -0.7251 -0.6754 -vn 0.1951 -0.0000 -0.9808 -vn 0.1344 0.7251 -0.6754 -vn -0.0095 0.9988 0.0477 -vn 0.3215 -0.8985 -0.2988 -vn 0.8373 -0.3468 -0.4226 -vn 0.8627 0.4080 -0.2988 -vn -0.3215 0.8985 0.2988 -vn -0.8373 0.3468 0.4226 -vn -0.8627 -0.4080 0.2988 -vn 0.6303 0.7311 -0.2611 -vn -0.0948 0.9947 0.0393 -vn -0.0609 0.9973 0.0399 -vn 0.5190 0.7430 -0.4226 -vn -0.7150 0.6333 0.2962 -vn -0.9239 0.0000 0.3827 -vn -0.7690 0.0000 0.6392 -vn -0.5735 0.6721 0.4683 -vn -0.7150 -0.6333 0.2962 -vn -0.0948 -0.9947 0.0393 -vn -0.0609 -0.9973 0.0399 -vn -0.5735 -0.6721 0.4683 -vn 0.6303 -0.7311 -0.2611 -vn 0.5190 -0.7430 -0.4226 -vn 0.9239 0.0000 -0.3827 -vn 0.7779 0.0000 -0.6284 -vn -0.0183 -0.9989 0.0441 -vn -0.2791 -0.6841 0.6739 -vn -0.3827 0.0000 0.9239 -vn -0.2791 0.6840 0.6739 -vn -0.0183 0.9989 0.0441 -vn 0.2608 0.7317 -0.6297 -vn 0.3827 0.0000 -0.9239 -vn 0.2608 -0.7317 -0.6297 -vn 0.0000 -0.6841 0.7294 -vn 0.0000 0.6840 0.7294 -vn 0.1436 -0.6770 0.7219 -vn 0.1951 0.0000 0.9808 -vn 0.1436 0.6770 0.7219 -vn 0.0095 0.9988 0.0477 -vn -0.1344 0.7251 -0.6754 -vn -0.1951 0.0000 -0.9808 -vn -0.1344 -0.7251 -0.6754 -vn 0.0095 -0.9988 0.0477 -vn -0.3215 0.8985 -0.2988 -vn -0.8373 0.3468 -0.4226 -vn -0.8627 -0.4080 -0.2988 -vn 0.3215 -0.8985 0.2988 -vn 0.8373 -0.3468 0.4226 -vn 0.8627 0.4080 0.2988 -vn 0.0712 -0.9627 -0.2611 -vn 0.7704 -0.6363 0.0393 -vn 0.7483 -0.6622 0.0399 -vn 0.1584 -0.8924 -0.4226 -vn 0.9534 0.0578 0.2962 -vn 0.6533 0.6533 0.3827 -vn 0.5438 0.5438 0.6392 -vn 0.8808 -0.0697 0.4683 -vn 0.0578 0.9534 0.2962 -vn -0.6364 0.7704 0.0393 -vn -0.6622 0.7483 0.0399 -vn -0.0697 0.8808 0.4683 -vn -0.9627 0.0712 -0.2611 -vn -0.8924 0.1584 -0.4226 -vn -0.6533 -0.6533 -0.3827 -vn -0.5501 -0.5501 -0.6284 -vn -0.6934 0.7192 0.0441 -vn -0.2863 0.6811 0.6739 -vn 0.6811 -0.2863 0.6739 -vn 0.7192 -0.6934 0.0441 -vn 0.3330 -0.7018 -0.6297 -vn -0.2706 -0.2706 -0.9239 -vn -0.7018 0.3330 -0.6297 -vn 0.5174 -0.5174 -0.6816 -vn -0.5174 0.5174 -0.6816 -vn -0.7063 0.7063 0.0477 -vn -0.4837 0.4837 0.7294 -vn 0.4837 -0.4837 0.7294 -vn 0.7063 -0.7063 0.0477 -vn -0.5802 0.3772 0.7219 -vn -0.1379 -0.1379 0.9808 -vn 0.3772 -0.5802 0.7219 -vn 0.6996 -0.7130 0.0477 -vn 0.6077 -0.4177 -0.6754 -vn 0.1380 0.1380 -0.9808 -vn -0.4177 0.6077 -0.6754 -vn -0.7130 0.6996 0.0477 -vn 0.8627 -0.4080 -0.2988 -vn 0.8373 0.3468 -0.4226 -vn 0.3215 0.8985 -0.2988 -vn -0.8627 0.4080 0.2988 -vn -0.8373 -0.3468 0.4226 -vn -0.3215 -0.8985 0.2988 -vn -0.0712 0.9627 -0.2611 -vn -0.7704 0.6363 0.0393 -vn -0.7483 0.6622 0.0399 -vn -0.1584 0.8924 -0.4226 -vn -0.9534 -0.0578 0.2962 -vn -0.6533 -0.6533 0.3827 -vn -0.5438 -0.5438 0.6392 -vn -0.8808 0.0697 0.4683 -vn -0.0578 -0.9534 0.2962 -vn 0.6364 -0.7704 0.0393 -vn 0.6622 -0.7483 0.0399 -vn 0.0697 -0.8808 0.4683 -vn 0.9627 -0.0712 -0.2611 -vn 0.8924 -0.1584 -0.4226 -vn 0.6533 0.6533 -0.3827 -vn 0.5501 0.5501 -0.6284 -vn 0.6934 -0.7192 0.0441 -vn 0.2863 -0.6811 0.6739 -vn -0.2706 -0.2706 0.9239 -vn -0.6811 0.2863 0.6739 -vn -0.7192 0.6934 0.0441 -vn -0.3330 0.7018 -0.6297 -vn 0.2706 0.2706 -0.9239 -vn 0.7018 -0.3330 -0.6297 -vn 0.5802 -0.3772 0.7219 -vn 0.1379 0.1379 0.9808 -vn -0.3772 0.5802 0.7219 -vn -0.6996 0.7130 0.0477 -vn -0.6077 0.4177 -0.6754 -vn -0.1380 -0.1380 -0.9808 -vn 0.4177 -0.6077 -0.6754 -vn 0.7130 -0.6996 0.0477 -vn -0.8627 0.4080 -0.2988 -vn -0.8373 -0.3468 -0.4226 -vn -0.3215 -0.8985 -0.2988 -vn 0.8627 -0.4080 0.2988 -vn 0.8373 0.3468 0.4226 -vn 0.3215 0.8985 0.2988 -vn -0.9627 -0.0712 -0.2611 -vn -0.6363 -0.7704 0.0393 -vn -0.6622 -0.7483 0.0399 -vn -0.8924 -0.1584 -0.4226 -vn 0.0578 -0.9534 0.2962 -vn 0.6533 -0.6533 0.3827 -vn 0.5438 -0.5438 0.6392 -vn -0.0697 -0.8808 0.4683 -vn 0.9534 -0.0578 0.2962 -vn 0.7704 0.6364 0.0393 -vn 0.7483 0.6622 0.0399 -vn 0.8808 0.0697 0.4683 -vn 0.0712 0.9627 -0.2611 -vn 0.1584 0.8924 -0.4226 -vn -0.6533 0.6533 -0.3827 -vn -0.5501 0.5501 -0.6284 -vn 0.7192 0.6934 0.0441 -vn 0.6811 0.2863 0.6739 -vn 0.2706 -0.2706 0.9239 -vn -0.2863 -0.6811 0.6739 -vn -0.6934 -0.7192 0.0441 -vn -0.7018 -0.3330 -0.6297 -vn -0.2706 0.2706 -0.9239 -vn 0.3330 0.7018 -0.6297 -vn -0.5174 -0.5174 -0.6816 -vn 0.5174 0.5174 -0.6816 -vn 0.7063 0.7063 0.0477 -vn 0.4837 0.4837 0.7294 -vn -0.4837 -0.4837 0.7294 -vn -0.7063 -0.7063 0.0477 -vn 0.3772 0.5802 0.7219 -vn -0.1379 0.1379 0.9808 -vn -0.5802 -0.3772 0.7219 -vn -0.7130 -0.6996 0.0477 -vn -0.4177 -0.6077 -0.6754 -vn 0.1380 -0.1380 -0.9808 -vn 0.6077 0.4177 -0.6754 -vn 0.6996 0.7130 0.0477 -vn -0.4080 -0.8627 -0.2988 -vn 0.3468 -0.8373 -0.4226 -vn 0.8985 -0.3215 -0.2988 -vn 0.4080 0.8627 0.2988 -vn -0.3468 0.8373 0.4226 -vn -0.8985 0.3215 0.2988 -vn 0.9627 0.0712 -0.2611 -vn 0.6363 0.7704 0.0393 -vn 0.6622 0.7483 0.0399 -vn 0.8924 0.1584 -0.4226 -vn -0.0578 0.9534 0.2962 -vn -0.6533 0.6533 0.3827 -vn -0.5438 0.5438 0.6392 -vn 0.0697 0.8808 0.4683 -vn -0.9534 0.0578 0.2962 -vn -0.7704 -0.6363 0.0393 -vn -0.7483 -0.6622 0.0399 -vn -0.8808 -0.0697 0.4683 -vn -0.0712 -0.9627 -0.2611 -vn -0.1584 -0.8924 -0.4226 -vn 0.6533 -0.6533 -0.3827 -vn 0.5501 -0.5501 -0.6284 -vn -0.7192 -0.6934 0.0441 -vn -0.6811 -0.2863 0.6739 -vn 0.2863 0.6811 0.6739 -vn 0.6934 0.7192 0.0441 -vn 0.7018 0.3330 -0.6297 -vn 0.2706 -0.2706 -0.9239 -vn -0.3330 -0.7018 -0.6297 -vn -0.3772 -0.5802 0.7219 -vn 0.1379 -0.1379 0.9808 -vn 0.5802 0.3772 0.7219 -vn 0.7130 0.6996 0.0477 -vn 0.4177 0.6077 -0.6754 -vn -0.1380 0.1380 -0.9808 -vn -0.6077 -0.4177 -0.6754 -vn -0.6996 -0.7130 0.0477 -vn 0.4080 0.8627 -0.2988 -vn -0.3468 0.8373 -0.4226 -vn -0.8985 0.3215 -0.2988 -vn -0.4080 -0.8627 0.2988 -vn 0.3468 -0.8373 0.4226 -vn 0.8985 -0.3215 0.2988 -vn -0.0000 0.9824 0.1866 -vn 0.6794 0.7194 0.1448 -vn -0.9204 0.3812 0.0866 -vn -0.6794 0.7194 0.1448 -vn 0.9204 0.3812 0.0866 -vn -0.9239 0.2706 0.2706 -vn -0.6630 0.5294 0.5294 -vn 0.6630 0.5294 0.5294 -vn 0.9239 0.2706 0.2706 -vn 0.6333 0.2962 0.7150 -vn -0.9125 0.1566 0.3780 -vn -0.6333 0.2962 0.7150 -vn 0.9125 0.1566 0.3780 +vt 0.500000 0.000000 +vt 0.066987 0.250000 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.250000 0.066987 +vt 0.000000 0.500000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vn -0.0000 0.4226 -0.9063 s off -f 227/323/124 228/324/124 229/325/124 230/326/124 -f 231/327/125 232/328/125 233/329/125 234/330/125 -f 235/331/126 236/332/126 237/333/126 238/334/126 -f 239/335/127 240/336/127 241/337/127 242/338/127 -f 232/328/128 239/335/128 242/338/128 233/329/128 -f 229/325/129 241/337/129 240/336/129 230/326/129 -f 228/339/130 227/340/130 238/334/130 237/333/130 -f 231/327/131 234/330/131 236/332/131 235/331/131 -f 240/341/132 239/342/132 243/343/132 244/344/132 245/345/132 -f 239/342/132 232/346/132 246/347/132 247/348/132 243/343/132 -f 232/346/132 231/349/132 248/350/132 249/351/132 246/347/132 -f 231/349/132 235/352/132 250/353/132 251/354/132 248/350/132 -f 235/352/132 238/355/132 252/356/132 253/357/132 250/353/132 -f 238/355/132 227/358/132 254/359/132 255/360/132 252/356/132 -f 227/358/132 230/361/132 256/362/132 257/363/132 254/359/132 -f 230/361/132 240/341/132 245/345/132 258/364/132 256/362/132 -f 259/365/126 260/366/126 261/367/126 262/368/126 263/369/126 -f 264/370/129 265/371/129 1051/372/129 266/373/129 267/374/129 268/375/129 269/376/129 -f 270/377/127 271/378/127 268/375/127 267/374/127 272/379/127 273/380/127 -f 274/381/124 275/382/124 264/370/124 269/376/124 -f 263/369/133 262/368/133 276/383/133 277/384/133 275/385/133 274/386/133 -f 264/387/134 275/388/134 277/389/134 265/390/134 -f 278/391/125 279/392/125 270/377/125 273/380/125 -f 280/393/126 281/394/126 282/395/126 283/396/126 -f 284/397/126 283/396/126 282/395/126 261/367/126 260/366/126 -f 281/394/135 280/393/135 285/398/135 286/399/135 -f 287/400/126 288/401/126 289/402/126 290/403/126 -f 291/404/126 292/405/126 293/406/126 294/407/126 -f 295/408/126 296/409/126 297/410/126 298/411/126 -f 299/412/126 300/413/126 301/414/126 302/415/126 -f 303/416/126 304/417/126 305/418/126 306/419/126 -f 299/412/126 303/416/126 306/419/126 287/400/126 290/403/126 291/404/126 294/407/126 295/408/126 298/411/126 300/413/126 -f 302/415/126 301/414/126 297/410/126 296/409/126 293/406/126 292/405/126 289/402/126 288/401/126 305/418/126 304/417/126 -f 296/420/124 295/421/124 307/422/124 308/423/124 -f 295/424/132 294/425/132 309/426/132 307/422/132 -f 290/427/125 289/428/125 310/429/125 311/430/125 -f 291/431/132 290/432/132 311/430/132 312/433/132 -f 313/434/126 314/435/126 315/436/126 316/437/126 -f 309/426/126 317/438/126 308/423/126 307/422/126 -f 312/433/126 311/430/126 310/429/126 318/439/126 -f 319/440/126 320/441/126 321/442/126 322/443/126 -f 300/444/132 298/445/132 314/435/132 313/434/132 -f 298/446/125 297/447/125 315/436/125 314/435/125 -f 297/448/136 301/449/136 316/437/136 315/436/136 -f 292/450/124 291/451/124 312/433/124 318/439/124 -f 293/452/136 296/453/136 308/423/136 317/438/136 -f 294/454/125 293/455/125 317/438/125 309/426/125 -f 289/456/136 292/457/136 318/439/136 310/429/136 -f 301/458/124 300/459/124 313/434/124 316/437/124 -f 305/460/136 288/461/136 321/442/136 320/441/136 -f 306/462/125 305/463/125 320/441/125 319/440/125 -f 287/464/132 306/465/132 319/440/132 322/443/132 -f 288/466/124 287/467/124 322/443/124 321/442/124 -f 272/379/136 267/374/136 323/468/136 324/469/136 -f 267/374/136 266/470/136 323/468/136 -f 280/393/136 283/396/136 325/471/136 326/472/136 -f 280/393/136 326/472/136 285/473/136 -f 273/380/137 272/474/137 324/475/137 278/391/137 -f 327/476/137 325/477/137 283/478/137 284/397/137 -f 328/479/125 327/476/125 284/397/125 260/366/125 -f 329/480/138 330/481/138 331/482/138 332/483/138 -f 330/481/138 270/484/138 279/485/138 331/482/138 -f 329/480/138 332/483/138 328/486/138 260/487/138 -f 333/488/139 334/489/139 335/490/139 336/491/139 -f 337/492/139 338/493/139 339/494/139 340/495/139 -f 341/496/139 342/497/139 343/498/139 344/499/139 -f 342/497/139 345/500/139 346/501/139 343/498/139 -f 347/502/139 333/488/139 336/491/139 348/503/139 -f 334/489/139 337/492/139 340/495/139 335/490/139 -f 338/493/139 341/496/139 344/499/139 339/494/139 -f 345/500/139 347/504/139 348/505/139 346/501/139 -f 349/506/139 350/507/139 351/508/139 352/509/139 353/510/139 354/511/139 355/512/139 356/513/139 -f 357/514/139 358/515/139 359/516/139 360/517/139 -f 358/515/139 361/518/139 362/519/139 359/516/139 -f 361/518/140 363/520/140 364/521/140 362/519/140 -f 363/522/140 365/523/140 366/524/140 364/525/140 -f 365/523/139 367/526/139 368/527/139 366/524/139 -f 367/526/140 369/528/140 370/529/140 368/527/140 -f 369/528/140 371/530/140 372/531/140 370/529/140 -f 371/530/140 357/514/140 360/517/140 372/531/140 -f 373/532/141 374/533/141 375/534/141 376/535/141 -f 377/536/142 378/537/142 376/535/142 375/534/142 -f 379/538/143 377/539/143 375/534/143 374/533/143 -f 380/540/144 379/541/144 374/533/144 373/532/144 -f 378/542/145 380/543/145 373/532/145 376/535/145 -f 381/544/132 382/545/132 383/546/132 384/547/132 -f 385/548/132 386/549/132 387/550/132 388/551/132 389/552/132 390/553/132 391/554/132 392/555/132 -f 393/556/132 381/544/132 384/557/132 394/558/132 -f 395/559/132 393/556/132 394/560/132 396/561/132 -f 397/562/132 395/559/132 396/563/132 398/564/132 -f 399/565/132 397/566/132 398/567/132 400/568/132 -f 401/569/132 399/565/132 400/570/132 402/571/132 -f 403/572/132 401/569/132 402/573/132 404/574/132 -f 382/545/132 403/572/132 404/575/132 383/576/132 -f 405/577/132 406/578/132 407/579/132 408/580/132 -f 409/581/132 410/582/132 406/583/132 405/584/132 -f 411/585/132 412/586/132 410/587/132 409/588/132 -f 413/589/132 414/590/132 412/591/132 411/592/132 -f 415/593/132 416/594/132 414/595/132 413/596/132 -f 417/597/132 418/598/132 416/599/132 415/600/132 -f 419/601/132 420/602/132 418/603/132 417/604/132 -f 408/605/132 407/606/132 420/607/132 419/608/132 -f 421/609/132 422/610/132 423/611/132 424/612/132 425/613/132 426/614/132 427/615/132 428/616/132 429/617/132 430/618/132 431/619/132 432/620/132 433/621/132 434/622/132 435/623/132 436/624/132 -f 242/625/136 437/626/136 438/627/136 439/628/136 233/629/136 -f 241/630/136 440/631/136 441/632/136 437/626/136 242/625/136 -f 229/633/136 442/634/136 443/635/136 440/631/136 241/630/136 -f 228/636/136 444/637/136 445/638/136 442/634/136 229/633/136 -f 237/639/136 446/640/136 447/641/136 444/637/136 228/636/136 -f 236/642/136 448/643/136 449/644/136 446/640/136 237/639/136 -f 234/645/136 450/646/136 451/647/136 448/643/136 236/642/136 -f 233/629/136 439/628/136 452/648/136 450/646/136 234/645/136 -f 453/649/132 454/650/132 455/651/132 456/652/132 457/653/132 -f 271/654/132 453/649/132 457/653/132 458/655/132 459/656/132 -f 268/657/132 271/654/132 459/656/132 460/658/132 461/659/132 -f 269/660/132 268/657/132 461/659/132 462/661/132 463/662/132 -f 274/663/132 269/660/132 463/662/132 464/664/132 465/665/132 -f 263/666/132 274/663/132 465/665/132 466/667/132 467/668/132 -f 259/669/132 263/666/132 467/668/132 468/670/132 469/671/132 -f 454/650/132 259/669/132 469/671/132 470/672/132 455/651/132 -f 471/673/126 472/674/126 473/675/126 474/676/126 475/677/126 476/678/126 477/679/126 478/680/126 -f 302/415/132 304/417/132 479/681/132 480/682/132 -f 304/417/124 303/416/124 481/683/124 479/684/124 -f 303/416/136 299/412/136 482/685/136 481/686/136 -f 299/412/125 302/415/125 480/687/125 482/688/125 -f 483/689/127 484/690/127 485/691/127 486/692/127 487/693/127 488/694/127 489/695/127 490/696/127 -f 472/697/146 490/698/146 489/699/146 473/700/146 -f 474/701/147 488/702/147 487/703/147 475/704/147 -f 478/705/148 484/706/148 483/707/148 471/708/148 -f 473/700/149 489/699/149 488/702/149 474/701/149 -f 475/704/150 487/703/150 486/709/150 476/710/150 -f 477/711/151 485/712/151 484/706/151 478/705/151 -f 471/708/152 483/707/152 490/698/152 472/697/152 -f 491/713/132 492/714/132 493/715/132 494/716/132 -f 495/717/136 496/718/136 497/719/136 498/720/136 -f 493/715/129 492/721/129 498/722/129 497/719/129 -f 491/723/131 494/716/131 496/718/131 495/724/131 -f 494/716/128 493/715/128 497/719/128 496/718/128 -f 492/721/130 491/725/130 495/726/130 498/722/130 -f 499/727/132 500/728/132 501/729/132 502/730/132 -f 503/731/136 504/732/136 505/733/136 506/734/136 -f 501/729/131 500/735/131 506/736/131 505/733/131 -f 499/737/129 502/730/129 504/732/129 503/738/129 -f 502/730/130 501/729/130 505/733/130 504/732/130 -f 500/739/128 499/737/128 503/738/128 506/740/128 -f 507/741/132 508/742/132 509/743/132 510/744/132 -f 511/745/136 512/746/136 513/747/136 514/748/136 -f 509/743/130 508/749/130 514/750/130 513/747/130 -f 507/751/128 510/744/128 512/746/128 511/752/128 -f 510/744/129 509/743/129 513/747/129 512/746/129 -f 508/749/131 507/753/131 511/754/131 514/750/131 -f 515/755/132 516/756/132 517/757/132 518/758/132 -f 519/759/136 520/760/136 521/761/136 522/762/136 -f 517/757/128 516/763/128 522/764/128 521/761/128 -f 515/765/130 518/758/130 520/760/130 519/766/130 -f 518/758/131 517/757/131 521/761/131 520/760/131 -f 516/767/129 515/765/129 519/766/129 522/768/129 -f 523/769/132 524/770/132 525/771/132 526/772/132 -f 527/773/153 528/774/153 529/775/153 530/776/153 -f 525/771/129 524/777/129 530/778/129 529/779/129 -f 523/780/131 526/772/131 528/774/131 527/773/131 -f 526/772/128 525/771/128 529/779/128 528/774/128 -f 524/777/130 523/781/130 527/782/130 530/778/130 -f 328/783/129 332/784/129 531/785/129 532/786/129 -f 331/787/130 279/788/130 533/789/130 534/790/130 -f 332/784/124 331/787/124 534/790/124 531/785/124 -f 531/785/138 534/790/138 533/791/138 532/792/138 -f 535/793/127 536/794/127 537/795/127 538/796/127 -f 539/797/126 540/798/126 541/799/126 542/800/126 -f 538/796/154 537/795/154 540/798/154 539/797/154 543/801/154 544/802/154 -f 544/802/155 543/801/155 545/803/155 546/804/155 -f 539/805/156 542/806/156 545/803/156 543/801/156 -f 535/807/157 538/808/157 544/802/157 546/804/157 -f 265/390/124 277/389/124 276/809/124 1051/810/124 -f 547/811/158 548/812/158 549/813/158 550/814/158 -f 551/815/127 552/816/127 553/817/127 549/818/127 548/819/127 554/820/127 -f 550/814/148 549/813/148 553/821/148 555/822/148 -f 555/822/159 553/821/159 552/823/159 556/824/159 -f 556/825/126 557/826/126 558/827/126 547/828/126 550/829/126 555/830/126 -f 559/831/124 560/832/124 561/833/124 562/834/124 -f 561/833/127 560/832/127 563/835/127 564/836/127 -f 559/831/126 562/834/126 565/837/126 566/838/126 -f 567/839/136 568/840/136 569/841/136 570/842/136 -f 571/843/127 572/844/127 570/842/127 569/841/127 -f 573/845/126 574/846/126 568/840/126 567/839/126 -f 574/847/125 571/848/125 569/841/125 568/840/125 -f 572/849/124 573/850/124 567/839/124 570/842/124 -f 575/851/136 576/852/136 577/853/136 578/854/136 -f 579/855/124 580/856/124 578/854/124 577/853/124 -f 581/857/125 582/858/125 576/852/125 575/851/125 -f 582/859/127 579/860/127 577/853/127 576/852/127 -f 580/861/126 581/862/126 575/851/126 578/854/126 -f 583/863/124 584/864/124 585/865/124 586/866/124 -f 587/867/160 588/868/160 589/869/160 590/870/160 -f 591/871/161 592/872/161 593/873/161 594/874/161 -f 586/866/162 585/865/162 592/872/162 591/871/162 -f 590/870/163 589/869/163 584/875/163 583/876/163 -f 594/874/125 593/873/125 588/868/125 587/867/125 -f 594/877/127 587/878/127 590/879/127 583/880/127 586/881/127 591/882/127 -f 595/883/125 596/884/125 597/885/125 598/886/125 -f 599/887/124 600/888/124 601/889/124 602/890/124 -f 596/891/160 603/892/160 604/893/160 597/894/160 -f 605/895/161 595/896/161 598/897/161 606/898/161 -f 600/899/162 605/900/162 606/901/162 601/902/162 -f 603/903/163 599/904/163 602/905/163 604/906/163 -f 602/890/126 601/889/126 607/907/126 608/908/126 -f 597/894/126 604/893/126 609/909/126 610/910/126 -f 606/898/126 598/897/126 611/911/126 612/912/126 -f 601/902/126 606/901/126 612/912/126 607/907/126 -f 604/906/126 602/905/126 608/913/126 609/909/126 -f 598/886/126 597/885/126 610/910/126 611/911/126 -f 607/907/162 612/912/162 613/914/162 614/915/162 -f 609/909/163 608/913/163 615/916/163 616/917/163 -f 611/911/125 610/910/125 617/918/125 618/919/125 -f 608/908/124 607/907/124 614/915/124 615/920/124 -f 610/910/160 609/909/160 616/917/160 617/918/160 -f 612/912/161 611/911/161 618/919/161 613/914/161 -f 617/918/127 616/917/127 619/921/127 620/922/127 -f 618/919/127 617/918/127 620/923/127 621/924/127 -f 613/914/127 618/919/127 621/925/127 622/926/127 -f 614/915/127 613/914/127 622/927/127 623/928/127 -f 615/920/127 614/915/127 623/929/127 624/930/127 -f 616/917/127 615/916/127 624/931/127 619/932/127 -f 619/932/163 624/931/163 625/933/163 626/934/163 -f 621/924/125 620/923/125 627/935/125 628/936/125 -f 624/930/124 623/929/124 629/937/124 625/938/124 -f 620/922/160 619/921/160 626/939/160 627/940/160 -f 622/926/161 621/925/161 628/941/161 630/942/161 -f 623/928/162 622/927/162 630/943/162 629/944/162 -f 627/940/126 626/939/126 631/945/126 632/946/126 -f 628/936/126 627/935/126 632/946/126 633/947/126 -f 630/942/126 628/941/126 633/947/126 634/948/126 -f 629/944/126 630/943/126 634/948/126 635/949/126 -f 625/938/126 629/937/126 635/949/126 636/950/126 -f 626/934/126 625/933/126 636/951/126 631/945/126 -f 633/947/125 632/946/125 637/952/125 638/953/125 -f 636/950/124 635/949/124 639/954/124 640/955/124 -f 632/946/160 631/945/160 641/956/160 637/952/160 -f 634/948/161 633/947/161 638/953/161 642/957/161 -f 635/949/162 634/948/162 642/957/162 639/954/162 -f 631/945/163 636/951/163 640/958/163 641/956/163 -f 642/957/164 638/953/164 643/959/164 644/960/164 -f 639/954/165 642/957/165 644/961/165 645/962/165 -f 641/956/166 640/958/166 646/963/166 647/964/166 -f 638/953/167 637/952/167 648/965/167 643/966/167 -f 640/955/168 639/954/168 645/967/168 646/968/168 -f 637/952/169 641/956/169 647/969/169 648/970/169 -f 643/971/127 648/972/127 647/973/127 646/974/127 645/975/127 644/976/127 -f 649/977/125 650/978/125 651/979/125 652/980/125 -f 653/981/126 654/982/126 655/983/126 656/984/126 657/985/126 -f 652/980/136 651/979/136 658/986/136 659/987/136 -f 651/979/127 650/978/127 660/988/127 658/989/127 -f 649/977/126 652/980/126 659/990/126 661/991/126 -f 662/992/170 663/993/170 664/994/170 665/995/170 -f 666/996/126 662/997/126 665/998/126 667/999/126 -f 668/1000/134 666/996/134 667/999/134 669/1001/134 -f 663/993/127 668/1000/127 669/1001/127 664/994/127 -f 654/982/171 653/981/171 670/1002/171 671/1003/171 -f 657/1004/136 656/1005/136 672/1006/136 673/1007/136 -f 671/1003/127 670/1002/127 673/1008/127 672/1006/127 674/1009/127 -f 654/982/170 671/1003/170 674/1010/170 655/1011/170 -f 655/1012/172 674/1009/172 672/1006/172 656/1005/172 -f 670/1002/134 653/981/134 657/1013/134 673/1014/134 -f 675/1015/170 676/1016/170 677/1017/170 678/1018/170 -f 679/1019/127 680/1020/127 677/1021/127 676/1022/127 -f 681/1023/126 682/1024/126 675/1015/126 678/1018/126 -f 680/1020/172 681/1023/172 678/1018/172 677/1021/172 -f 682/1025/171 679/1019/171 676/1022/171 675/1026/171 -f 684/1027/126 692/1028/126 693/1029/126 694/1030/126 -f 695/1031/173 696/1032/173 685/1033/173 697/1034/173 -f 692/1035/174 701/1036/174 702/1037/174 693/1029/174 -f 329/480/125 454/1038/125 1791/1039/125 1790/1040/125 -f 715/1041/131 716/1042/131 717/1043/131 718/1044/131 -f 259/365/131 454/1038/131 719/1045/131 720/1046/131 -f 329/480/131 260/366/131 721/1047/131 722/1048/131 -f 259/365/131 720/1046/131 716/1042/131 715/1041/131 721/1047/131 260/366/131 -f 454/1038/131 329/480/131 722/1048/131 718/1044/131 717/1043/131 719/1045/131 -f 271/378/128 723/1049/128 724/1050/128 453/1051/128 -f 270/1052/128 725/1053/128 723/1049/128 271/378/128 -f 270/1052/128 330/481/128 726/1054/128 725/1053/128 -f 453/1051/128 724/1050/128 726/1054/128 330/481/128 -f 725/1055/175 726/1056/175 727/1057/175 728/1058/175 -f 721/1059/128 715/1060/128 729/1061/128 730/1062/128 -f 716/1063/176 731/1064/176 732/1065/176 717/1066/176 -f 733/1067/131 730/1062/131 729/1061/131 734/1068/131 -f 719/1069/136 735/1070/136 736/1071/136 720/1072/136 -f 737/1073/128 728/1074/128 727/1057/128 738/1075/128 -f 715/1076/177 718/1077/177 734/1068/177 729/1078/177 -f 720/1079/128 736/1071/128 731/1080/128 716/1081/128 -f 722/1082/178 721/1083/178 730/1084/178 733/1067/178 -f 718/1077/130 722/1082/130 733/1067/130 734/1068/130 -f 738/1075/129 727/1057/129 726/1056/129 724/1085/129 -f 728/1074/131 737/1073/131 723/1086/131 725/1087/131 -f 739/1088/126 740/1089/126 741/1090/126 742/1091/126 -f 740/1092/179 743/1093/179 744/1094/179 741/1095/179 -f 745/1096/127 746/1097/127 747/1098/127 748/1099/127 -f 749/1100/180 739/1088/180 742/1091/180 750/1101/180 -f 748/1099/127 747/1098/127 751/1102/127 752/1103/127 -f 741/1095/181 744/1094/181 753/1104/181 754/1105/181 -f 749/1106/127 743/1107/127 755/1108/127 -f 755/1108/172 756/1109/172 739/1088/172 749/1100/172 -f 756/1109/126 740/1110/126 739/1111/126 -f 746/1112/127 745/1113/127 757/1114/127 -f 757/1114/172 758/1115/172 759/1116/172 746/1097/172 -f 758/1115/126 760/1117/126 759/1118/126 -f 761/1119/136 762/1120/136 756/1109/136 755/1108/136 -f 763/1121/132 764/1122/132 743/1107/132 740/1123/132 -f 765/1124/127 766/1125/127 757/1114/127 745/1113/127 -f 767/1126/126 768/1127/126 760/1117/126 758/1115/126 -f 762/1120/126 763/1128/126 740/1110/126 756/1109/126 -f 766/1125/136 767/1126/136 758/1115/136 757/1114/136 -f 768/1129/132 765/1124/132 745/1113/132 760/1130/132 -f 764/1122/127 761/1119/127 755/1108/127 743/1107/127 -f 760/1131/179 745/1096/179 748/1099/179 769/1132/179 -f 743/1093/127 749/1100/127 750/1101/127 744/1094/127 -f 770/1133/125 771/1134/125 772/1135/125 773/1136/125 -f 732/1065/131 731/1080/131 736/1071/131 735/1070/131 -f 717/1066/130 732/1065/130 735/1070/130 719/1137/130 -f 737/1073/136 738/1075/136 724/1138/136 723/1139/136 -f 747/1098/182 774/1140/182 775/1141/182 751/1102/182 -f 774/1140/126 769/1142/126 776/1143/126 775/1141/126 -f 742/1091/126 741/1090/126 754/1144/126 777/1145/126 -f 769/1132/181 748/1099/181 752/1103/181 776/1146/181 -f 744/1094/127 750/1101/127 778/1147/127 753/1104/127 -f 750/1101/182 742/1091/182 777/1145/182 778/1147/182 -f 759/1116/126 760/1148/126 769/1142/126 774/1140/126 -f 746/1097/180 759/1116/180 774/1140/180 747/1098/180 -f 779/1149/162 780/1150/162 781/1151/162 782/1152/162 -f 771/1134/132 783/1153/132 784/1154/132 772/1135/132 -f 782/1152/124 781/1151/124 785/1155/124 786/1156/124 -f 783/1153/124 787/1157/124 788/1158/124 784/1154/124 -f 786/1159/163 785/1160/163 789/1161/163 790/1162/163 -f 787/1157/136 770/1163/136 773/1164/136 788/1158/136 -f 790/1162/160 789/1161/160 791/1165/160 792/1166/160 -f 781/1167/127 780/1168/127 793/1169/127 791/1170/127 789/1171/127 785/1172/127 -f 792/1166/125 791/1165/125 793/1173/125 794/1174/125 -f 794/1174/161 793/1173/161 780/1150/161 779/1149/161 -f 779/1175/126 782/1176/126 786/1177/126 790/1178/126 792/1179/126 794/1180/126 -f 784/1154/129 788/1158/129 795/1181/129 796/1182/129 -f 784/1183/132 796/1182/132 772/1184/132 -f 773/1185/136 795/1181/136 788/1186/136 -f 795/1181/136 773/1185/136 797/1187/136 798/1188/136 -f 798/1189/124 797/1190/124 799/1191/124 800/1192/124 -f 796/1182/127 795/1181/127 798/1188/127 801/1193/127 -f 772/1184/132 796/1182/132 801/1193/132 802/1194/132 -f 773/1195/126 772/1184/126 802/1194/126 797/1196/126 -f 798/1189/127 803/1197/127 801/1198/127 -f 802/1199/126 804/1200/126 797/1201/126 -f 801/1193/170 803/1197/170 804/1200/170 802/1194/170 -f 805/1202/180 806/1203/180 807/1204/180 808/1205/180 -f 803/1197/127 798/1189/127 800/1192/127 806/1203/127 -f 804/1200/125 803/1197/125 806/1203/125 805/1202/125 -f 797/1201/126 804/1200/126 805/1202/126 799/1206/126 -f 809/1207/127 810/1208/127 807/1209/127 -f 799/1206/126 805/1202/126 808/1205/126 811/1210/126 -f 800/1192/179 799/1191/179 811/1211/179 809/1212/179 -f 806/1203/127 800/1192/127 809/1212/127 807/1204/127 -f 807/1204/172 810/1208/172 812/1213/172 808/1205/172 -f 811/1214/126 812/1213/126 813/1215/126 814/1216/126 -f 811/1214/126 808/1217/126 812/1213/126 -f 815/1218/132 814/1219/132 816/1220/132 817/1221/132 -f 809/1207/132 811/1222/132 814/1223/132 818/1224/132 -f 810/1208/127 809/1207/127 818/1224/127 819/1225/127 -f 812/1213/136 810/1208/136 819/1225/136 813/1215/136 -f 819/1226/136 820/1227/136 813/1228/136 -f 818/1224/129 815/1218/129 820/1227/129 819/1225/129 -f 814/1219/132 815/1218/132 818/1229/132 -f 814/1230/125 813/1228/125 821/1231/125 816/1232/125 -f 813/1228/136 820/1227/136 822/1233/136 821/1231/136 -f 820/1227/124 815/1218/124 817/1221/124 822/1233/124 -f 660/1234/124 661/1235/124 659/1236/124 658/1237/124 -f 1052/1238/183 1053/1239/183 1054/1240/183 1055/1241/183 -f 1056/1242/183 1057/1243/183 1058/1244/183 1059/1245/183 -f 1060/1246/183 1061/1247/183 1062/1248/183 1063/1249/183 -f 1061/1247/183 1064/1250/183 1065/1251/183 1062/1248/183 -f 1066/1252/183 1052/1238/183 1055/1241/183 1067/1253/183 -f 1053/1239/183 1056/1242/183 1059/1245/183 1054/1240/183 -f 1057/1243/183 1060/1246/183 1063/1249/183 1058/1244/183 -f 1064/1250/183 1066/1254/183 1067/1255/183 1065/1251/183 -f 1068/1256/183 1069/1257/183 1070/1258/183 1071/1259/183 1072/1260/183 1073/1261/183 1074/1262/183 1075/1263/183 -f 1076/1264/183 1077/1265/183 1078/1266/183 1079/1267/183 -f 1077/1265/183 1080/1268/183 1081/1269/183 1078/1266/183 -f 1080/1268/184 1082/1270/184 1083/1271/184 1081/1269/184 -f 1082/1272/184 1084/1273/184 1085/1274/184 1083/1275/184 -f 1084/1273/183 1086/1276/183 1087/1277/183 1085/1274/183 -f 1086/1276/184 1088/1278/184 1089/1279/184 1087/1277/184 -f 1088/1278/184 1090/1280/184 1091/1281/184 1089/1279/184 -f 1090/1280/184 1076/1264/184 1079/1267/184 1091/1281/184 -f 1140/1282/185 1141/1283/185 1142/1284/185 1143/1285/185 -f 1144/1286/185 1145/1287/185 1146/1288/185 1147/1289/185 -f 1148/1290/185 1149/1291/185 1150/1292/185 1151/1293/185 -f 1149/1291/185 1152/1294/185 1153/1295/185 1150/1292/185 -f 1154/1296/185 1140/1282/185 1143/1285/185 1155/1297/185 -f 1141/1283/185 1144/1286/185 1147/1289/185 1142/1284/185 -f 1145/1287/185 1148/1290/185 1151/1293/185 1146/1288/185 -f 1152/1294/185 1154/1298/185 1155/1299/185 1153/1295/185 -f 1156/1300/185 1157/1301/185 1158/1302/185 1159/1303/185 1160/1304/185 1161/1305/185 1162/1306/185 1163/1307/185 -f 1164/1308/185 1165/1309/185 1166/1310/185 1167/1311/185 -f 1165/1309/185 1168/1312/185 1169/1313/185 1166/1310/185 -f 1168/1312/186 1170/1314/186 1171/1315/186 1169/1313/186 -f 1170/1316/186 1172/1317/186 1173/1318/186 1171/1319/186 -f 1172/1317/185 1174/1320/185 1175/1321/185 1173/1318/185 -f 1174/1320/185 1176/1322/185 1177/1323/185 1175/1321/185 -f 1176/1322/186 1178/1324/186 1179/1325/186 1177/1323/186 -f 1178/1324/185 1164/1308/185 1167/1311/185 1179/1325/185 -f 1228/1326/187 1229/1327/187 1230/1328/187 1231/1329/187 -f 1232/1330/187 1233/1331/187 1234/1332/187 1235/1333/187 -f 1236/1334/187 1237/1335/187 1238/1336/187 1239/1337/187 -f 1237/1335/187 1240/1338/187 1241/1339/187 1238/1336/187 -f 1242/1340/187 1228/1326/187 1231/1329/187 1243/1341/187 -f 1229/1327/187 1232/1330/187 1235/1333/187 1230/1328/187 -f 1233/1331/187 1236/1334/187 1239/1337/187 1234/1332/187 -f 1240/1338/187 1242/1342/187 1243/1343/187 1241/1339/187 -f 1244/1344/187 1245/1345/187 1246/1346/187 1247/1347/187 1248/1348/187 1249/1349/187 1250/1350/187 1251/1351/187 -f 1252/1352/187 1253/1353/187 1254/1354/187 1255/1355/187 -f 1253/1353/187 1256/1356/187 1257/1357/187 1254/1354/187 -f 1256/1356/188 1258/1358/188 1259/1359/188 1257/1357/188 -f 1258/1360/188 1260/1361/188 1261/1362/188 1259/1363/188 -f 1260/1361/188 1262/1364/188 1263/1365/188 1261/1362/188 -f 1262/1364/188 1264/1366/188 1265/1367/188 1263/1365/188 -f 1264/1366/188 1266/1368/188 1267/1369/188 1265/1367/188 -f 1266/1368/187 1252/1352/187 1255/1355/187 1267/1369/187 -f 1316/1370/189 1317/1371/189 1318/1372/189 1319/1373/189 -f 1320/1374/189 1321/1375/189 1322/1376/189 1323/1377/189 -f 1324/1378/190 1325/1379/190 1326/1380/190 1327/1381/190 -f 1325/1379/189 1328/1382/189 1329/1383/189 1326/1380/189 -f 1330/1384/189 1316/1370/189 1319/1373/189 1331/1385/189 -f 1317/1371/189 1320/1374/189 1323/1377/189 1318/1372/189 -f 1321/1375/189 1324/1378/189 1327/1381/189 1322/1376/189 -f 1328/1382/189 1330/1386/189 1331/1387/189 1329/1383/189 -f 1332/1388/189 1333/1389/189 1334/1390/189 1335/1391/189 1336/1392/189 1337/1393/189 1338/1394/189 1339/1395/189 -f 1340/1396/190 1341/1397/190 1342/1398/190 1343/1399/190 -f 1341/1397/190 1344/1400/190 1345/1401/190 1342/1398/190 -f 1344/1400/190 1346/1402/190 1347/1403/190 1345/1401/190 -f 1346/1404/190 1348/1405/190 1349/1406/190 1347/1407/190 -f 1348/1405/189 1350/1408/189 1351/1409/189 1349/1406/189 -f 1350/1408/190 1352/1410/190 1353/1411/190 1351/1409/190 -f 1352/1410/190 1354/1412/190 1355/1413/190 1353/1411/190 -f 1354/1412/189 1340/1396/189 1343/1399/189 1355/1413/189 -f 1404/1414/191 1405/1415/191 1406/1416/191 1407/1417/191 -f 1408/1418/191 1409/1419/191 1410/1420/191 1411/1421/191 -f 1412/1422/192 1413/1423/192 1414/1424/192 1415/1425/192 -f 1413/1423/191 1416/1426/191 1417/1427/191 1414/1424/191 -f 1418/1428/191 1404/1414/191 1407/1417/191 1419/1429/191 -f 1405/1415/191 1408/1418/191 1411/1421/191 1406/1416/191 -f 1409/1419/191 1412/1422/191 1415/1425/191 1410/1420/191 -f 1416/1426/191 1418/1430/191 1419/1431/191 1417/1427/191 -f 1420/1432/191 1421/1433/191 1422/1434/191 1423/1435/191 1424/1436/191 1425/1437/191 1426/1438/191 1427/1439/191 -f 1428/1440/192 1429/1441/192 1430/1442/192 1431/1443/192 -f 1429/1441/192 1432/1444/192 1433/1445/192 1430/1442/192 -f 1432/1444/192 1434/1446/192 1435/1447/192 1433/1445/192 -f 1434/1448/192 1436/1449/192 1437/1450/192 1435/1451/192 -f 1436/1449/191 1438/1452/191 1439/1453/191 1437/1450/191 -f 1438/1452/192 1440/1454/192 1441/1455/192 1439/1453/192 -f 1440/1454/192 1442/1456/192 1443/1457/192 1441/1455/192 -f 1442/1456/191 1428/1440/191 1431/1443/191 1443/1457/191 -f 1492/1458/193 1493/1459/193 1494/1460/193 1495/1461/193 -f 1496/1462/193 1497/1463/193 1498/1464/193 1499/1465/193 -f 1500/1466/194 1501/1467/194 1502/1468/194 1503/1469/194 -f 1501/1467/193 1504/1470/193 1505/1471/193 1502/1468/193 -f 1506/1472/193 1492/1458/193 1495/1461/193 1507/1473/193 -f 1493/1459/193 1496/1462/193 1499/1465/193 1494/1460/193 -f 1497/1463/193 1500/1466/193 1503/1469/193 1498/1464/193 -f 1504/1470/193 1506/1474/193 1507/1475/193 1505/1471/193 -f 1508/1476/193 1509/1477/193 1510/1478/193 1511/1479/193 1512/1480/193 1513/1481/193 1514/1482/193 1515/1483/193 -f 1516/1484/194 1517/1485/194 1518/1486/194 1519/1487/194 -f 1517/1485/194 1520/1488/194 1521/1489/194 1518/1486/194 -f 1520/1488/194 1522/1490/194 1523/1491/194 1521/1489/194 -f 1522/1492/194 1524/1493/194 1525/1494/194 1523/1495/194 -f 1524/1493/193 1526/1496/193 1527/1497/193 1525/1494/193 -f 1526/1496/194 1528/1498/194 1529/1499/194 1527/1497/194 -f 1528/1498/194 1530/1500/194 1531/1501/194 1529/1499/194 -f 1530/1500/194 1516/1484/194 1519/1487/194 1531/1501/194 -f 1580/1502/195 1581/1503/195 1582/1504/195 1583/1505/195 -f 1584/1506/195 1585/1507/195 1586/1508/195 1587/1509/195 -f 1588/1510/195 1589/1511/195 1590/1512/195 1591/1513/195 -f 1589/1511/195 1592/1514/195 1593/1515/195 1590/1512/195 -f 1594/1516/195 1580/1502/195 1583/1505/195 1595/1517/195 -f 1581/1503/195 1584/1506/195 1587/1509/195 1582/1504/195 -f 1585/1507/195 1588/1510/195 1591/1513/195 1586/1508/195 -f 1592/1514/195 1594/1518/195 1595/1519/195 1593/1515/195 -f 1596/1520/195 1597/1521/195 1598/1522/195 1599/1523/195 1600/1524/195 1601/1525/195 1602/1526/195 1603/1527/195 -f 1604/1528/196 1605/1529/196 1606/1530/196 1607/1531/196 -f 1605/1529/196 1608/1532/196 1609/1533/196 1606/1530/196 -f 1608/1532/196 1610/1534/196 1611/1535/196 1609/1533/196 -f 1610/1536/196 1612/1537/196 1613/1538/196 1611/1539/196 -f 1612/1537/195 1614/1540/195 1615/1541/195 1613/1538/195 -f 1614/1540/196 1616/1542/196 1617/1543/196 1615/1541/196 -f 1616/1542/196 1618/1544/196 1619/1545/196 1617/1543/196 -f 1618/1544/195 1604/1528/195 1607/1531/195 1619/1545/195 -f 1668/1546/197 1669/1547/197 1670/1548/197 1671/1549/197 -f 1672/1550/198 1673/1551/198 1671/1549/198 1670/1548/198 -f 1674/1552/199 1672/1553/199 1670/1548/199 1669/1547/199 -f 1675/1554/200 1674/1555/200 1669/1547/200 1668/1546/200 -f 1673/1556/201 1675/1557/201 1668/1546/201 1671/1549/201 -f 1676/1558/202 1677/1559/202 1678/1560/202 1679/1561/202 -f 1680/1562/203 1681/1563/203 1679/1561/203 1678/1560/203 -f 1682/1564/204 1680/1565/204 1678/1560/204 1677/1559/204 -f 1683/1566/205 1682/1567/205 1677/1559/205 1676/1558/205 -f 1681/1568/206 1683/1569/206 1676/1558/206 1679/1561/206 -f 1684/1570/207 1685/1571/207 1686/1572/207 1687/1573/207 -f 1688/1574/208 1689/1575/208 1687/1573/208 1686/1572/208 -f 1690/1576/209 1688/1577/209 1686/1572/209 1685/1571/209 -f 1691/1578/210 1690/1579/210 1685/1571/210 1684/1570/210 -f 1689/1580/211 1691/1581/211 1684/1570/211 1687/1573/211 -f 1692/1582/212 1693/1583/212 1694/1584/212 1695/1585/212 -f 1696/1586/213 1697/1587/213 1695/1585/213 1694/1584/213 -f 1698/1588/214 1696/1589/214 1694/1584/214 1693/1583/214 -f 1699/1590/215 1698/1591/215 1693/1583/215 1692/1582/215 -f 1697/1592/216 1699/1593/216 1692/1582/216 1695/1585/216 -f 1700/1594/217 1701/1595/217 1702/1596/217 1703/1597/217 -f 1704/1598/218 1705/1599/218 1703/1597/218 1702/1596/218 -f 1706/1600/219 1704/1601/219 1702/1596/219 1701/1595/219 -f 1707/1602/220 1706/1603/220 1701/1595/220 1700/1594/220 -f 1705/1604/221 1707/1605/221 1700/1594/221 1703/1597/221 -f 1708/1606/222 1709/1607/222 1710/1608/222 1711/1609/222 -f 1712/1610/223 1713/1611/223 1711/1609/223 1710/1608/223 -f 1714/1612/224 1712/1613/224 1710/1608/224 1709/1607/224 -f 1715/1614/225 1714/1615/225 1709/1607/225 1708/1606/225 -f 1713/1616/226 1715/1617/226 1708/1606/226 1711/1609/226 -f 1716/1618/227 1717/1619/227 1718/1620/227 1719/1621/227 -f 1720/1622/228 1721/1623/228 1719/1621/228 1718/1620/228 -f 1722/1624/229 1720/1625/229 1718/1620/229 1717/1619/229 -f 1723/1626/230 1722/1627/230 1717/1619/230 1716/1618/230 -f 1721/1628/231 1723/1629/231 1716/1618/231 1719/1621/231 -f 1724/1630/232 1725/1631/232 1726/1632/232 1727/1633/232 -f 1728/1634/233 1729/1635/233 1727/1633/233 1726/1632/233 -f 1730/1636/234 1728/1637/234 1726/1632/234 1725/1631/234 -f 1731/1638/235 1730/1639/235 1725/1631/235 1724/1630/235 -f 1729/1640/236 1731/1641/236 1724/1630/236 1727/1633/236 -f 1732/1642/237 1733/1643/237 1734/1644/237 1735/1645/237 -f 1736/1646/238 1737/1647/238 1735/1645/238 1734/1644/238 -f 1738/1648/239 1736/1649/239 1734/1644/239 1733/1643/239 -f 1739/1650/240 1738/1651/240 1733/1643/240 1732/1642/240 -f 1737/1652/241 1739/1653/241 1732/1642/241 1735/1645/241 -f 1740/1654/242 1741/1655/242 1742/1656/242 1743/1657/242 -f 1744/1658/243 1745/1659/243 1743/1657/243 1742/1656/243 -f 1746/1660/244 1744/1661/244 1742/1656/244 1741/1655/244 -f 1747/1662/245 1746/1663/245 1741/1655/245 1740/1654/245 -f 1745/1664/246 1747/1665/246 1740/1654/246 1743/1657/246 -f 1748/1666/247 1749/1667/247 1750/1668/247 1751/1669/247 -f 1752/1670/248 1753/1671/248 1751/1669/248 1750/1668/248 -f 1754/1672/249 1752/1673/249 1750/1668/249 1749/1667/249 -f 1755/1674/250 1754/1675/250 1749/1667/250 1748/1666/250 -f 1753/1676/251 1755/1677/251 1748/1666/251 1751/1669/251 -f 1756/1678/252 1757/1679/252 1758/1680/252 1759/1681/252 -f 1760/1682/253 1761/1683/253 1759/1681/253 1758/1680/253 -f 1762/1684/254 1760/1685/254 1758/1680/254 1757/1679/254 -f 1763/1686/255 1762/1687/255 1757/1679/255 1756/1678/255 -f 1761/1688/256 1763/1689/256 1756/1678/256 1759/1681/256 -f 1764/1690/257 1765/1691/257 1766/1692/257 1767/1693/257 -f 1768/1694/258 1769/1695/258 1767/1693/258 1766/1692/258 -f 1770/1696/259 1768/1697/259 1766/1692/259 1765/1691/259 -f 1771/1698/260 1770/1699/260 1765/1691/260 1764/1690/260 -f 1769/1700/261 1771/1701/261 1764/1690/261 1767/1693/261 -f 1772/1702/262 1773/1703/262 1774/1704/262 1775/1705/262 -f 1776/1706/263 1777/1707/263 1775/1705/263 1774/1704/263 -f 1778/1708/264 1776/1709/264 1774/1704/264 1773/1703/264 -f 1779/1710/265 1778/1711/265 1773/1703/265 1772/1702/265 -f 1777/1712/266 1779/1713/266 1772/1702/266 1775/1705/266 -f 1780/1714/267 1781/1715/267 1782/1716/267 1783/1717/267 -f 1784/1718/268 1785/1719/268 1783/1717/268 1782/1716/268 -f 1786/1720/269 1784/1721/269 1782/1716/269 1781/1715/269 -f 1787/1722/270 1786/1723/270 1781/1715/270 1780/1714/270 -f 1785/1724/271 1787/1725/271 1780/1714/271 1783/1717/271 -f 1789/1726/126 1788/1727/126 1792/1728/126 1793/1729/126 -f 330/481/125 329/480/125 1790/1040/125 1788/1730/125 -f 453/1051/125 330/481/125 1788/1730/125 1789/1731/125 -f 454/1038/125 453/1051/125 1789/1731/125 1791/1039/125 -f 1793/1732/125 1792/1733/125 1794/1734/125 1795/1735/125 -f 1791/1736/136 1789/1737/136 1793/1738/136 1795/1739/136 -f 1788/1740/132 1790/1741/132 1794/1742/132 1792/1743/132 -f 1790/1744/127 1791/1745/127 1795/1746/127 1794/1747/127 -s 1 -f 249/1748/272 248/1749/273 823/1750/273 824/1751/272 -f 246/1752/274 249/1748/272 824/1751/272 825/1753/274 -f 247/1754/275 246/1752/274 825/1753/274 826/1755/275 -f 243/1756/276 247/1754/275 826/1755/275 827/1757/276 -f 244/1758/277 243/1756/276 827/1757/276 828/1759/277 -f 245/1760/278 244/1758/277 828/1759/277 829/1761/278 -f 258/1762/279 245/1760/278 829/1761/278 830/1763/279 -f 256/1764/280 258/1762/279 830/1763/279 831/1765/280 -f 257/1766/281 256/1764/280 831/1765/280 832/1767/281 -f 254/1768/282 257/1769/281 832/1770/281 833/1771/282 -f 255/1772/283 254/1768/282 833/1771/282 834/1773/283 -f 252/1774/284 255/1772/283 834/1773/283 835/1775/284 -f 253/1776/285 252/1774/284 835/1775/284 836/1777/285 -f 250/1778/286 253/1776/285 836/1777/285 837/1779/286 -f 251/1780/287 250/1778/286 837/1779/286 838/1781/287 -f 248/1749/273 251/1780/287 838/1781/287 823/1750/273 -f 824/1751/124 823/1750/288 839/1782/288 840/1783/124 -f 825/1753/289 824/1751/124 840/1783/124 841/1784/289 -f 832/1767/125 831/1765/290 842/1785/290 843/1786/125 -f 823/1750/288 838/1781/129 844/1787/129 839/1782/288 -f 831/1765/290 830/1763/131 845/1788/131 842/1785/290 -f 838/1781/129 837/1779/291 846/1789/291 844/1787/129 -f 830/1763/131 829/1761/292 847/1790/292 845/1788/131 -f 837/1779/291 836/1777/127 848/1791/127 846/1789/291 -f 829/1761/292 828/1759/126 849/1792/126 847/1790/292 -f 836/1777/127 835/1775/293 850/1793/293 848/1791/127 -f 828/1759/126 827/1757/294 851/1794/294 849/1792/126 -f 835/1775/293 834/1773/128 852/1795/128 850/1793/293 -f 827/1757/294 826/1755/130 853/1796/130 851/1794/294 -f 834/1773/128 833/1771/295 854/1797/295 852/1795/128 -f 826/1755/130 825/1753/289 841/1784/289 853/1796/130 -f 833/1771/295 832/1770/125 843/1798/125 854/1797/295 -f 855/1799/296 856/1800/297 857/1801/298 858/1802/299 -f 859/1803/300 860/1804/151 861/1805/301 862/1806/302 -f 863/1807/303 864/1808/304 865/1809/305 866/1810/306 -f 864/1808/304 867/1811/307 868/1812/308 865/1809/305 -f 869/1813/149 855/1799/296 858/1802/299 870/1814/309 -f 856/1800/297 859/1803/300 862/1806/302 857/1801/298 -f 860/1804/151 863/1807/303 866/1810/306 861/1805/301 -f 867/1811/307 869/1815/149 870/1816/309 868/1812/308 -f 866/1810/306 865/1809/305 871/1817/310 872/1818/311 -f 862/1806/302 861/1805/301 873/1819/312 874/1820/313 -f 858/1802/299 857/1801/298 875/1821/314 876/1822/315 -f 868/1812/308 870/1816/309 877/1823/146 878/1824/316 -f 861/1805/301 866/1810/306 872/1818/311 873/1819/312 -f 857/1801/298 862/1806/302 874/1820/313 875/1821/314 -f 870/1814/309 858/1802/299 876/1822/315 877/1825/146 -f 865/1809/305 868/1812/308 878/1824/316 871/1817/310 -f 877/1825/146 876/1822/315 879/1826/317 880/1827/136 -f 871/1817/310 878/1824/316 881/1828/318 882/1829/319 -f 872/1818/311 871/1817/310 882/1829/319 883/1830/320 -f 874/1820/313 873/1819/312 884/1831/132 885/1832/321 -f 876/1822/315 875/1821/314 886/1833/322 879/1826/317 -f 878/1824/316 877/1823/146 880/1834/136 881/1828/318 -f 873/1819/312 872/1818/311 883/1830/320 884/1831/132 -f 875/1821/314 874/1820/313 885/1832/321 886/1833/322 -f 884/1831/132 883/1830/320 887/1835/323 888/1836/324 -f 886/1833/322 885/1832/321 889/1837/325 890/1838/326 -f 880/1827/136 879/1826/317 891/1839/327 892/1840/328 -f 882/1829/319 881/1828/318 893/1841/329 894/1842/330 -f 883/1830/320 882/1829/319 894/1842/330 887/1835/323 -f 885/1832/321 884/1831/132 888/1836/324 889/1837/325 -f 879/1826/317 886/1833/322 890/1838/326 891/1839/327 -f 881/1828/318 880/1834/136 892/1843/328 893/1841/329 -f 895/1844/291 896/1845/331 345/500/331 342/497/291 -f 897/1846/332 898/1847/333 333/488/333 347/502/332 -f 899/1848/292 900/1849/334 337/492/334 334/489/292 -f 901/1850/335 902/1851/336 341/496/336 338/493/335 -f 896/1845/331 897/1852/332 347/504/332 345/500/331 -f 898/1847/333 899/1848/292 334/489/292 333/488/333 -f 900/1849/334 901/1850/335 338/493/335 337/492/334 -f 902/1851/336 895/1844/291 342/497/291 341/496/336 -f 350/1853/334 349/1854/292 359/516/292 362/519/334 -f 344/499/336 343/498/291 358/515/291 357/514/336 -f 351/1855/335 350/1853/334 362/519/334 364/521/335 -f 343/498/291 346/501/331 361/518/331 358/515/291 -f 352/1856/336 351/1857/335 364/525/335 366/524/336 -f 346/501/331 348/505/332 363/520/332 361/518/331 -f 353/1858/291 352/1856/336 366/524/336 368/527/291 -f 348/503/332 336/491/333 365/523/333 363/522/332 -f 339/494/335 344/499/336 357/514/336 371/530/335 -f 349/1854/292 356/1859/333 360/517/333 359/516/292 -f 340/495/334 339/494/335 371/530/335 369/528/334 -f 356/1859/333 355/1860/332 372/531/332 360/517/333 -f 335/490/292 340/495/334 369/528/334 367/526/292 -f 355/1860/332 354/1861/331 370/529/331 372/531/332 -f 336/491/333 335/490/292 367/526/292 365/523/333 -f 354/1861/331 353/1858/291 368/527/291 370/529/331 -f 845/1788/337 847/1790/338 431/1862/338 430/1863/337 -f 846/1789/339 848/1791/340 424/1864/340 423/1865/339 -f 847/1790/338 849/1792/341 432/1866/341 431/1867/338 -f 848/1791/340 850/1793/342 425/1868/342 424/1869/340 -f 849/1792/341 851/1794/343 433/1870/343 432/1871/341 -f 850/1793/342 852/1795/344 426/1872/344 425/1873/342 -f 851/1794/343 853/1796/345 434/1874/345 433/1875/343 -f 852/1795/344 854/1797/346 427/1876/346 426/1877/344 -f 853/1796/345 841/1784/347 435/1878/347 434/1879/345 -f 854/1797/346 843/1798/348 428/1880/348 427/1881/346 -f 840/1783/349 839/1782/350 421/1882/350 436/1883/349 -f 841/1784/347 840/1783/349 436/1884/349 435/1885/347 -f 843/1786/348 842/1785/351 429/1886/351 428/1887/348 -f 839/1782/350 844/1787/352 422/1888/352 421/1889/350 -f 842/1785/351 845/1788/337 430/1890/337 429/1891/351 -f 844/1787/352 846/1789/339 423/1892/339 422/1893/352 -f 903/1894/293 904/1895/295 382/545/295 381/544/293 -f 905/1896/288 906/1897/291 393/556/291 395/559/288 -f 907/1898/294 908/1899/289 397/566/289 399/565/294 -f 909/1900/290 910/1901/292 401/569/292 403/572/290 -f 906/1897/291 903/1894/293 381/544/293 393/556/291 -f 908/1902/289 905/1896/288 395/559/288 397/562/289 -f 910/1901/292 907/1898/294 399/565/294 401/569/292 -f 904/1895/295 909/1900/290 403/572/290 382/545/295 -f 384/547/293 383/546/295 407/579/295 406/578/293 -f 385/1903/288 392/1904/289 408/605/289 419/608/288 -f 392/1905/289 391/1906/294 405/577/294 408/580/289 -f 394/558/291 384/557/293 406/583/293 410/582/291 -f 391/1907/294 390/1908/292 409/581/292 405/584/294 -f 396/561/288 394/560/291 410/587/291 412/586/288 -f 390/1909/292 389/1910/290 411/585/290 409/588/292 -f 398/564/289 396/563/288 412/591/288 414/590/289 -f 383/576/295 404/575/290 420/607/290 407/606/295 -f 386/1911/291 385/1912/288 419/601/288 417/604/291 -f 404/574/290 402/573/292 418/603/292 420/602/290 -f 387/1913/293 386/1914/291 417/597/291 415/600/293 -f 402/571/292 400/570/294 416/599/294 418/598/292 -f 388/1915/295 387/1916/293 415/593/293 413/596/295 -f 400/568/294 398/567/289 414/595/289 416/594/294 -f 389/1917/290 388/1918/295 413/589/295 411/592/290 -f 445/1919/124 444/1920/289 465/1921/289 464/1922/124 -f 450/1923/290 452/1924/125 456/1925/125 455/1926/290 -f 452/1924/125 439/1927/295 457/1928/295 456/1925/125 -f 442/1929/288 445/1930/124 464/1931/124 463/1932/288 -f 451/1933/131 450/1923/290 455/1926/290 470/1934/131 -f 443/1935/129 442/1929/288 463/1932/288 462/1936/129 -f 448/1937/292 451/1933/131 470/1934/131 469/1938/292 -f 440/1939/291 443/1935/129 462/1936/129 461/1940/291 -f 449/1941/126 448/1937/292 469/1938/292 468/1942/126 -f 441/1943/127 440/1939/291 461/1940/291 460/1944/127 -f 446/1945/294 449/1941/126 468/1942/126 467/1946/294 -f 437/1947/293 441/1943/127 460/1944/127 459/1948/293 -f 447/1949/130 446/1945/294 467/1946/294 466/1950/130 -f 438/1951/128 437/1947/293 459/1948/293 458/1952/128 -f 444/1920/289 447/1949/130 466/1950/130 465/1921/289 -f 439/1927/295 438/1951/128 458/1952/128 457/1928/295 -f 911/1953/353 912/1954/173 688/1955/173 687/1956/353 -f 913/1957/126 914/1958/354 691/1959/354 690/1960/126 -f 694/1030/355 693/1029/355 702/1037/356 700/1961/356 -f 915/1962/357 911/1953/353 687/1956/353 686/1963/357 -f 916/1964/358 913/1957/126 690/1960/126 689/1965/358 -f 700/1961/356 702/1037/356 701/1966/359 699/1967/359 -f 917/1968/360 692/1969/361 684/1970/361 683/1971/360 -f 696/1972/362 915/1962/357 686/1963/357 685/1973/362 -f 912/1954/173 916/1964/358 689/1965/358 688/1955/173 -f 699/1967/359 701/1966/359 918/1974/127 698/1975/127 -f 914/1958/354 917/1968/360 683/1971/360 691/1959/354 -f 695/1031/363 697/1034/363 698/1975/127 918/1974/127 -f 919/1976/155 920/1977/356 709/1978/356 708/1979/155 -f 921/1980/126 922/1981/354 706/1982/354 705/1983/126 -f 923/1984/364 924/1985/357 713/1986/357 712/1987/364 -f 925/1988/353 926/1989/173 703/1990/173 714/1991/353 -f 920/1977/356 927/1992/359 710/1993/359 709/1978/356 -f 922/1981/354 928/1994/360 707/1995/360 706/1982/354 -f 924/1985/357 925/1996/353 714/1997/353 713/1986/357 -f 926/1989/173 929/1998/358 704/1999/358 703/1990/173 -f 927/1992/359 930/2000/127 711/2001/127 710/1993/359 -f 928/1994/360 919/1976/155 708/1979/155 707/1995/360 -f 929/1998/358 921/1980/126 705/1983/126 704/1999/358 -f 930/2000/127 923/1984/364 712/1987/364 711/2001/127 -f 931/2002/365 932/2003/366 933/2004/367 934/2005/368 -f 935/2006/369 936/2007/370 937/2008/371 938/2009/372 -f 939/2010/373 940/2011/374 941/2012/375 942/2013/376 -f 943/2014/377 944/2015/378 945/2016/379 946/2017/380 -f 946/2017/380 945/2016/379 940/2011/374 939/2010/373 -f 947/2018/381 948/2019/382 944/2015/378 943/2014/377 -f 945/2016/379 949/2020/383 950/2021/384 940/2011/374 -f 948/2019/382 951/2022/385 952/2023/386 944/2015/378 -f 940/2011/374 950/2021/384 953/2024/387 941/2012/375 -f 944/2015/378 952/2023/386 949/2020/383 945/2016/379 -f 954/2025/373 955/2026/374 956/2027/375 957/2028/376 -f 958/2029/377 959/2030/378 960/2031/379 961/2032/380 -f 961/2032/380 960/2031/379 955/2026/374 954/2025/373 -f 962/2033/381 963/2034/382 959/2030/378 958/2029/377 -f 960/2031/379 964/2035/383 965/2036/384 955/2026/374 -f 963/2034/382 966/2037/385 967/2038/386 959/2030/378 -f 955/2026/374 965/2036/384 968/2039/387 956/2027/375 -f 959/2030/378 967/2038/386 964/2035/383 960/2031/379 -f 969/2040/373 970/2041/374 971/2042/375 972/2043/376 -f 973/2044/377 974/2045/388 975/2046/379 976/2047/380 -f 976/2047/380 975/2046/379 970/2041/374 969/2040/373 -f 977/2048/381 978/2049/382 974/2045/388 973/2044/377 -f 975/2046/379 979/2050/383 980/2051/384 970/2041/374 -f 978/2049/382 981/2052/385 982/2053/386 974/2045/388 -f 970/2041/374 980/2051/384 983/2054/387 971/2042/375 -f 974/2045/388 982/2053/386 979/2050/383 975/2046/379 -f 939/2010/373 942/2013/376 984/2055/295 985/2056/125 -f 954/2025/373 957/2028/376 986/2057/295 987/2058/125 -f 946/2017/380 939/2010/373 985/2056/125 988/2059/131 -f 943/2014/377 946/2017/380 988/2059/131 989/2060/126 -f 969/2040/373 972/2043/376 990/2061/295 991/2062/125 -f 961/2032/380 954/2025/373 987/2058/125 992/2063/131 -f 947/2018/381 943/2014/377 989/2060/126 993/2064/294 -f 958/2029/377 961/2032/380 992/2063/131 994/2065/126 -f 976/2047/380 969/2040/373 991/2062/125 995/2066/131 -f 973/2044/377 976/2047/380 995/2066/131 996/2067/126 -f 962/2033/381 958/2029/377 994/2065/126 997/2068/294 -f 977/2048/381 973/2044/377 996/2067/126 998/2069/294 -f 932/2003/366 935/2006/369 938/2009/372 933/2004/367 -f 999/2070/389 931/2002/365 934/2005/368 1000/2071/390 -f 933/2004/367 938/2009/372 1001/2072/391 1002/2073/392 -f 1000/2071/390 934/2005/368 1003/2074/393 1004/2075/394 -f 938/2009/372 937/2008/371 1005/2076/395 1001/2072/391 -f 934/2005/368 933/2004/367 1002/2073/392 1003/2074/393 -f 1006/2077/369 1007/2078/370 1008/2079/371 1009/2080/396 -f 1010/2081/365 1011/2082/366 1012/2083/367 1013/2084/368 -f 1011/2082/366 1006/2077/369 1009/2080/396 1012/2083/367 -f 1014/2085/389 1010/2081/365 1013/2084/368 1015/2086/390 -f 1012/2083/367 1009/2080/396 1016/2087/391 1017/2088/392 -f 1015/2086/390 1013/2084/368 1018/2089/393 1019/2090/394 -f 1009/2080/396 1008/2079/371 1020/2091/395 1016/2087/391 -f 1013/2084/368 1012/2083/367 1017/2088/392 1018/2089/393 -f 1021/2092/369 1022/2093/370 1023/2094/371 1024/2095/372 -f 1025/2096/365 1026/2097/366 1027/2098/367 1028/2099/397 -f 1026/2097/366 1021/2092/369 1024/2095/372 1027/2098/367 -f 1029/2100/389 1025/2096/365 1028/2099/397 1030/2101/390 -f 1027/2098/367 1024/2095/372 1031/2102/391 1032/2103/392 -f 1030/2101/390 1028/2099/397 1033/2104/393 1034/2105/394 -f 1024/2095/372 1023/2094/371 1035/2106/395 1031/2102/391 -f 1028/2099/397 1027/2098/367 1032/2103/392 1033/2104/393 -f 935/2006/369 1036/2107/125 1037/2108/290 936/2007/370 -f 1006/2077/369 1038/2109/125 1039/2110/290 1007/2078/370 -f 932/2003/366 1040/2111/128 1036/2107/125 935/2006/369 -f 931/2002/365 1041/2112/127 1040/2111/128 932/2003/366 -f 1021/2092/369 1042/2113/125 1043/2114/290 1022/2093/370 -f 1011/2082/366 1044/2115/128 1038/2109/125 1006/2077/369 -f 999/2070/389 1045/2116/291 1041/2112/127 931/2002/365 -f 1010/2081/365 1046/2117/127 1044/2115/128 1011/2082/366 -f 1026/2097/366 1047/2118/128 1042/2113/125 1021/2092/369 -f 1025/2096/365 1048/2119/127 1047/2118/128 1026/2097/366 -f 1014/2085/389 1049/2120/291 1046/2117/127 1010/2081/365 -f 1029/2100/389 1050/2121/291 1048/2119/127 1025/2096/365 -f 1092/2122/398 1093/2123/399 1094/2124/400 1095/2125/401 -f 1096/2126/402 1097/2127/147 1098/2128/403 1099/2129/404 -f 1100/2130/405 1101/2131/406 1102/2132/407 1103/2133/408 -f 1101/2131/406 1104/2134/409 1105/2135/410 1102/2132/407 -f 1106/2136/148 1092/2122/398 1095/2125/401 1107/2137/411 -f 1093/2123/399 1096/2126/402 1099/2129/404 1094/2124/400 -f 1097/2127/147 1100/2130/405 1103/2133/408 1098/2128/403 -f 1104/2134/409 1106/2138/148 1107/2139/411 1105/2135/410 -f 1103/2133/408 1102/2132/407 1108/2140/412 1109/2141/413 -f 1099/2129/404 1098/2128/403 1110/2142/150 1111/2143/414 -f 1095/2125/401 1094/2124/400 1112/2144/415 1113/2145/416 -f 1105/2135/410 1107/2139/411 1114/2146/152 1115/2147/417 -f 1098/2128/403 1103/2133/408 1109/2141/413 1110/2142/150 -f 1094/2124/400 1099/2129/404 1111/2143/414 1112/2144/415 -f 1107/2137/411 1095/2125/401 1113/2145/416 1114/2148/152 -f 1102/2132/407 1105/2135/410 1115/2147/417 1108/2140/412 -f 1114/2148/152 1113/2145/416 1116/2149/318 1117/2150/136 -f 1108/2140/412 1115/2147/417 1118/2151/317 1119/2152/322 -f 1109/2141/413 1108/2140/412 1119/2152/322 1120/2153/418 -f 1111/2143/414 1110/2142/150 1121/2154/132 1122/2155/419 -f 1113/2145/416 1112/2144/415 1123/2156/319 1116/2149/318 -f 1115/2147/417 1114/2146/152 1117/2157/136 1118/2151/317 -f 1110/2142/150 1109/2141/413 1120/2153/418 1121/2154/132 -f 1112/2144/415 1111/2143/414 1122/2155/419 1123/2156/319 -f 1121/2154/132 1120/2153/418 1124/2158/420 1125/2159/421 -f 1123/2156/319 1122/2155/419 1126/2160/422 1127/2161/423 -f 1117/2150/136 1116/2149/318 1128/2162/424 1129/2163/425 -f 1119/2152/322 1118/2151/317 1130/2164/426 1131/2165/427 -f 1120/2153/418 1119/2152/322 1131/2165/427 1124/2158/420 -f 1122/2155/419 1121/2154/132 1125/2159/421 1126/2160/422 -f 1116/2149/318 1123/2156/319 1127/2161/423 1128/2162/424 -f 1118/2151/317 1117/2157/136 1129/2166/425 1130/2164/426 -f 1132/2167/292 1133/2168/428 1064/1250/428 1061/1247/292 -f 1134/2169/429 1135/2170/430 1052/1238/430 1066/1252/429 -f 1136/2171/291 1137/2172/431 1056/1242/431 1053/1239/291 -f 1138/2173/432 1139/2174/433 1060/1246/433 1057/1243/432 -f 1133/2168/428 1134/2175/429 1066/1254/429 1064/1250/428 -f 1135/2170/430 1136/2171/291 1053/1239/291 1052/1238/430 -f 1137/2172/431 1138/2173/432 1057/1243/432 1056/1242/431 -f 1139/2174/433 1132/2167/292 1061/1247/292 1060/1246/433 -f 1069/2176/431 1068/2177/291 1078/1266/291 1081/1269/431 -f 1063/1249/433 1062/1248/292 1077/1265/292 1076/1264/433 -f 1070/2178/432 1069/2176/431 1081/1269/431 1083/1271/432 -f 1062/1248/292 1065/1251/428 1080/1268/428 1077/1265/292 -f 1071/2179/433 1070/2180/432 1083/1275/432 1085/1274/433 -f 1065/1251/428 1067/1255/429 1082/1270/429 1080/1268/428 -f 1072/2181/292 1071/2179/433 1085/1274/433 1087/1277/292 -f 1067/1253/429 1055/1241/430 1084/1273/430 1082/1272/429 -f 1058/1244/432 1063/1249/433 1076/1264/433 1090/1280/432 -f 1068/2177/291 1075/2182/430 1079/1267/430 1078/1266/291 -f 1059/1245/431 1058/1244/432 1090/1280/432 1088/1278/431 -f 1075/2182/430 1074/2183/429 1091/1281/429 1079/1267/430 -f 1054/1240/291 1059/1245/431 1088/1278/431 1086/1276/291 -f 1074/2183/429 1073/2184/428 1089/1279/428 1091/1281/429 -f 1055/1241/430 1054/1240/291 1086/1276/291 1084/1273/430 -f 1073/2184/428 1072/2181/292 1087/1277/292 1089/1279/428 -f 1180/2185/434 1181/2186/435 1182/2187/436 1183/2188/437 -f 1184/2189/438 1185/2190/439 1186/2191/440 1187/2192/441 -f 1188/2193/442 1189/2194/443 1190/2195/444 1191/2196/445 -f 1189/2194/443 1192/2197/446 1193/2198/447 1190/2195/444 -f 1194/2199/448 1180/2185/434 1183/2188/437 1195/2200/449 -f 1181/2186/435 1184/2189/438 1187/2192/441 1182/2187/436 -f 1185/2190/439 1188/2193/442 1191/2196/445 1186/2191/440 -f 1192/2197/446 1194/2201/448 1195/2202/449 1193/2198/447 -f 1191/2196/445 1190/2195/444 1196/2203/450 1197/2204/451 -f 1187/2192/441 1186/2191/440 1198/2205/452 1199/2206/453 -f 1183/2188/437 1182/2187/436 1200/2207/454 1201/2208/455 -f 1193/2198/447 1195/2202/449 1202/2209/456 1203/2210/457 -f 1186/2191/440 1191/2196/445 1197/2204/451 1198/2205/452 -f 1182/2187/436 1187/2192/441 1199/2206/453 1200/2207/454 -f 1195/2200/449 1183/2188/437 1201/2208/455 1202/2211/456 -f 1190/2195/444 1193/2198/447 1203/2210/457 1196/2203/450 -f 1202/2211/456 1201/2208/455 1204/2212/458 1205/2213/136 -f 1196/2203/450 1203/2210/457 1206/2214/459 1207/2215/460 -f 1197/2204/451 1196/2203/450 1207/2215/460 1208/2216/461 -f 1199/2206/453 1198/2205/452 1209/2217/132 1210/2218/462 -f 1201/2208/455 1200/2207/454 1211/2219/463 1204/2212/458 -f 1203/2210/457 1202/2209/456 1205/2220/136 1206/2214/459 -f 1198/2205/452 1197/2204/451 1208/2216/461 1209/2217/132 -f 1200/2207/454 1199/2206/453 1210/2218/462 1211/2219/463 -f 1209/2217/132 1208/2216/461 1212/2221/464 1213/2222/465 -f 1211/2219/463 1210/2218/462 1214/2223/466 1215/2224/467 -f 1205/2213/136 1204/2212/458 1216/2225/468 1217/2226/469 -f 1207/2215/460 1206/2214/459 1218/2227/470 1219/2228/471 -f 1208/2216/461 1207/2215/460 1219/2228/471 1212/2221/464 -f 1210/2218/462 1209/2217/132 1213/2222/465 1214/2223/466 -f 1204/2212/458 1211/2219/463 1215/2224/467 1216/2225/468 -f 1206/2214/459 1205/2220/136 1217/2229/469 1218/2227/470 -f 1220/2230/289 1221/2231/472 1152/1294/472 1149/1291/289 -f 1222/2232/473 1223/2233/474 1140/1282/474 1154/1296/473 -f 1224/2234/295 1225/2235/475 1144/1286/475 1141/1283/295 -f 1226/2236/476 1227/2237/477 1148/1290/477 1145/1287/476 -f 1221/2231/472 1222/2238/473 1154/1298/473 1152/1294/472 -f 1223/2233/474 1224/2234/295 1141/1283/295 1140/1282/474 -f 1225/2235/475 1226/2236/476 1145/1287/476 1144/1286/475 -f 1227/2237/477 1220/2230/289 1149/1291/289 1148/1290/477 -f 1157/2239/475 1156/2240/295 1166/1310/295 1169/1313/475 -f 1151/1293/477 1150/1292/289 1165/1309/289 1164/1308/477 -f 1158/2241/476 1157/2239/475 1169/1313/475 1171/1315/476 -f 1150/1292/289 1153/1295/472 1168/1312/472 1165/1309/289 -f 1159/2242/477 1158/2243/476 1171/1319/476 1173/1318/477 -f 1153/1295/472 1155/1299/473 1170/1314/473 1168/1312/472 -f 1160/2244/289 1159/2242/477 1173/1318/477 1175/1321/289 -f 1155/1297/473 1143/1285/474 1172/1317/474 1170/1316/473 -f 1146/1288/476 1151/1293/477 1164/1308/477 1178/1324/476 -f 1156/2240/295 1163/2245/474 1167/1311/474 1166/1310/295 -f 1147/1289/475 1146/1288/476 1178/1324/476 1176/1322/475 -f 1163/2245/474 1162/2246/473 1179/1325/473 1167/1311/474 -f 1142/1284/295 1147/1289/475 1176/1322/475 1174/1320/295 -f 1162/2246/473 1161/2247/472 1177/1323/472 1179/1325/473 -f 1143/1285/474 1142/1284/295 1174/1320/295 1172/1317/474 -f 1161/2247/472 1160/2244/289 1175/1321/289 1177/1323/472 -f 1268/2248/478 1269/2249/479 1270/2250/480 1271/2251/481 -f 1272/2252/482 1273/2253/483 1274/2254/484 1275/2255/485 -f 1276/2256/486 1277/2257/487 1278/2258/488 1279/2259/489 -f 1277/2257/487 1280/2260/490 1281/2261/491 1278/2258/488 -f 1282/2262/492 1268/2248/478 1271/2251/481 1283/2263/493 -f 1269/2249/479 1272/2252/482 1275/2255/485 1270/2250/480 -f 1273/2253/483 1276/2256/486 1279/2259/489 1274/2254/484 -f 1280/2260/490 1282/2264/492 1283/2265/493 1281/2261/491 -f 1279/2259/489 1278/2258/488 1284/2266/494 1285/2267/495 -f 1275/2255/485 1274/2254/484 1286/2268/496 1287/2269/497 -f 1271/2251/481 1270/2250/480 1288/2270/498 1289/2271/499 -f 1281/2261/491 1283/2265/493 1290/2272/500 1291/2273/501 -f 1274/2254/484 1279/2259/489 1285/2267/495 1286/2268/496 -f 1270/2250/480 1275/2255/485 1287/2269/497 1288/2270/498 -f 1283/2263/493 1271/2251/481 1289/2271/499 1290/2274/500 -f 1278/2258/488 1281/2261/491 1291/2273/501 1284/2266/494 -f 1290/2274/500 1289/2271/499 1292/2275/459 1293/2276/136 -f 1284/2266/494 1291/2273/501 1294/2277/458 1295/2278/463 -f 1285/2267/495 1284/2266/494 1295/2278/463 1296/2279/502 -f 1287/2269/497 1286/2268/496 1297/2280/132 1298/2281/503 -f 1289/2271/499 1288/2270/498 1299/2282/460 1292/2275/459 -f 1291/2273/501 1290/2272/500 1293/2283/136 1294/2277/458 -f 1286/2268/496 1285/2267/495 1296/2279/502 1297/2280/132 -f 1288/2270/498 1287/2269/497 1298/2281/503 1299/2282/460 -f 1297/2280/132 1296/2279/502 1300/2284/504 1301/2285/505 -f 1299/2282/460 1298/2281/503 1302/2286/506 1303/2287/507 -f 1293/2276/136 1292/2275/459 1304/2288/508 1305/2289/509 -f 1295/2278/463 1294/2277/458 1306/2290/510 1307/2291/511 -f 1296/2279/502 1295/2278/463 1307/2291/511 1300/2284/504 -f 1298/2281/503 1297/2280/132 1301/2285/505 1302/2286/506 -f 1292/2275/459 1299/2282/460 1303/2287/507 1304/2288/508 -f 1294/2277/458 1293/2283/136 1305/2292/509 1306/2290/510 -f 1308/2293/295 1309/2294/512 1240/1338/512 1237/1335/295 -f 1310/2295/513 1311/2296/514 1228/1326/514 1242/1340/513 -f 1312/2297/289 1313/2298/515 1232/1330/515 1229/1327/289 -f 1314/2299/516 1315/2300/517 1236/1334/517 1233/1331/516 -f 1309/2294/512 1310/2301/513 1242/1342/513 1240/1338/512 -f 1311/2296/514 1312/2297/289 1229/1327/289 1228/1326/514 -f 1313/2298/515 1314/2299/516 1233/1331/516 1232/1330/515 -f 1315/2300/517 1308/2293/295 1237/1335/295 1236/1334/517 -f 1245/2302/515 1244/2303/289 1254/1354/289 1257/1357/515 -f 1239/1337/517 1238/1336/295 1253/1353/295 1252/1352/517 -f 1246/2304/516 1245/2302/515 1257/1357/515 1259/1359/516 -f 1238/1336/295 1241/1339/512 1256/1356/512 1253/1353/295 -f 1247/2305/517 1246/2306/516 1259/1363/516 1261/1362/517 -f 1241/1339/512 1243/1343/513 1258/1358/513 1256/1356/512 -f 1248/2307/295 1247/2305/517 1261/1362/517 1263/1365/295 -f 1243/1341/513 1231/1329/514 1260/1361/514 1258/1360/513 -f 1234/1332/516 1239/1337/517 1252/1352/517 1266/1368/516 -f 1244/2303/289 1251/2308/514 1255/1355/514 1254/1354/289 -f 1235/1333/515 1234/1332/516 1266/1368/516 1264/1366/515 -f 1251/2308/514 1250/2309/513 1267/1369/513 1255/1355/514 -f 1230/1328/289 1235/1333/515 1264/1366/515 1262/1364/289 -f 1250/2309/513 1249/2310/512 1265/1367/512 1267/1369/513 -f 1231/1329/514 1230/1328/289 1262/1364/289 1260/1361/514 -f 1249/2310/512 1248/2307/295 1263/1365/295 1265/1367/512 -f 1356/2311/518 1357/2312/519 1358/2313/520 1359/2314/521 -f 1360/2315/522 1361/2316/523 1362/2317/524 1363/2318/525 -f 1364/2319/526 1365/2320/527 1366/2321/528 1367/2322/529 -f 1365/2320/527 1368/2323/530 1369/2324/531 1366/2321/528 -f 1370/2325/532 1356/2311/518 1359/2314/521 1371/2326/533 -f 1357/2312/519 1360/2315/522 1363/2318/525 1358/2313/520 -f 1361/2316/523 1364/2319/526 1367/2322/529 1362/2317/524 -f 1368/2323/530 1370/2327/532 1371/2328/533 1369/2324/531 -f 1367/2322/529 1366/2321/528 1372/2329/534 1373/2330/535 -f 1363/2318/525 1362/2317/524 1374/2331/392 1375/2332/536 -f 1359/2314/521 1358/2313/520 1376/2333/537 1377/2334/538 -f 1369/2324/531 1371/2328/533 1378/2335/539 1379/2336/540 -f 1362/2317/524 1367/2322/529 1373/2330/535 1374/2331/392 -f 1358/2313/520 1363/2318/525 1375/2332/536 1376/2333/537 -f 1371/2326/533 1359/2314/521 1377/2334/538 1378/2337/539 -f 1366/2321/528 1369/2324/531 1379/2336/540 1372/2329/534 -f 1378/2337/539 1377/2334/538 1380/2338/541 1381/2339/136 -f 1372/2329/534 1379/2336/540 1382/2340/542 1383/2341/543 -f 1373/2330/535 1372/2329/534 1383/2341/543 1384/2342/544 -f 1375/2332/536 1374/2331/392 1385/2343/132 1386/2344/545 -f 1377/2334/538 1376/2333/537 1387/2345/546 1380/2338/541 -f 1379/2336/540 1378/2335/539 1381/2346/136 1382/2340/542 -f 1374/2331/392 1373/2330/535 1384/2342/544 1385/2343/132 -f 1376/2333/537 1375/2332/536 1386/2344/545 1387/2345/546 -f 1385/2343/132 1384/2342/544 1388/2347/547 1389/2348/548 -f 1387/2345/546 1386/2344/545 1390/2349/549 1391/2350/550 -f 1381/2339/136 1380/2338/541 1392/2351/551 1393/2352/552 -f 1383/2341/543 1382/2340/542 1394/2353/553 1395/2354/554 -f 1384/2342/544 1383/2341/543 1395/2354/554 1388/2347/547 -f 1386/2344/545 1385/2343/132 1389/2348/548 1390/2349/549 -f 1380/2338/541 1387/2345/546 1391/2350/550 1392/2351/551 -f 1382/2340/542 1381/2346/136 1393/2355/552 1394/2353/553 -f 1396/2356/288 1397/2357/555 1328/1382/555 1325/1379/288 -f 1398/2358/556 1399/2359/557 1316/1370/557 1330/1384/556 -f 1400/2360/290 1401/2361/558 1320/1374/558 1317/1371/290 -f 1402/2362/559 1403/2363/560 1324/1378/560 1321/1375/559 -f 1397/2357/555 1398/2364/556 1330/1386/556 1328/1382/555 -f 1399/2359/557 1400/2360/290 1317/1371/290 1316/1370/557 -f 1401/2361/558 1402/2362/559 1321/1375/559 1320/1374/558 -f 1403/2363/560 1396/2356/288 1325/1379/288 1324/1378/560 -f 1333/2365/558 1332/2366/290 1342/1398/290 1345/1401/558 -f 1327/1381/560 1326/1380/288 1341/1397/288 1340/1396/560 -f 1334/2367/559 1333/2365/558 1345/1401/558 1347/1403/559 -f 1326/1380/288 1329/1383/555 1344/1400/555 1341/1397/288 -f 1335/2368/560 1334/2369/559 1347/1407/559 1349/1406/560 -f 1329/1383/555 1331/1387/556 1346/1402/556 1344/1400/555 -f 1336/2370/288 1335/2368/560 1349/1406/560 1351/1409/288 -f 1331/1385/556 1319/1373/557 1348/1405/557 1346/1404/556 -f 1322/1376/559 1327/1381/560 1340/1396/560 1354/1412/559 -f 1332/2366/290 1339/2371/557 1343/1399/557 1342/1398/290 -f 1323/1377/558 1322/1376/559 1354/1412/559 1352/1410/558 -f 1339/2371/557 1338/2372/556 1355/1413/556 1343/1399/557 -f 1318/1372/290 1323/1377/558 1352/1410/558 1350/1408/290 -f 1338/2372/556 1337/2373/555 1353/1411/555 1355/1413/556 -f 1319/1373/557 1318/1372/290 1350/1408/290 1348/1405/557 -f 1337/2373/555 1336/2370/288 1351/1409/288 1353/1411/555 -f 1444/2374/561 1445/2375/562 1446/2376/563 1447/2377/564 -f 1448/2378/565 1449/2379/566 1450/2380/567 1451/2381/568 -f 1452/2382/569 1453/2383/570 1454/2384/571 1455/2385/572 -f 1453/2383/570 1456/2386/573 1457/2387/574 1454/2384/571 -f 1458/2388/575 1444/2374/561 1447/2377/564 1459/2389/576 -f 1445/2375/562 1448/2378/565 1451/2381/568 1446/2376/563 -f 1449/2379/566 1452/2382/569 1455/2385/572 1450/2380/567 -f 1456/2386/573 1458/2390/575 1459/2391/576 1457/2387/574 -f 1455/2385/572 1454/2384/571 1460/2392/577 1461/2393/578 -f 1451/2381/568 1450/2380/567 1462/2394/579 1463/2395/580 -f 1447/2377/564 1446/2376/563 1464/2396/581 1465/2397/582 -f 1457/2387/574 1459/2391/576 1466/2398/583 1467/2399/584 -f 1450/2380/567 1455/2385/572 1461/2393/578 1462/2394/579 -f 1446/2376/563 1451/2381/568 1463/2395/580 1464/2396/581 -f 1459/2389/576 1447/2377/564 1465/2397/582 1466/2400/583 -f 1454/2384/571 1457/2387/574 1467/2399/584 1460/2392/577 -f 1466/2400/583 1465/2397/582 1468/2401/542 1469/2402/136 -f 1460/2392/577 1467/2399/584 1470/2403/541 1471/2404/546 -f 1461/2393/578 1460/2392/577 1471/2404/546 1472/2405/545 -f 1463/2395/580 1462/2394/579 1473/2406/132 1474/2407/544 -f 1465/2397/582 1464/2396/581 1475/2408/543 1468/2401/542 -f 1467/2399/584 1466/2398/583 1469/2409/136 1470/2403/541 -f 1462/2394/579 1461/2393/578 1472/2405/545 1473/2406/132 -f 1464/2396/581 1463/2395/580 1474/2407/544 1475/2408/543 -f 1473/2406/132 1472/2405/545 1476/2410/585 1477/2411/586 -f 1475/2408/543 1474/2407/544 1478/2412/587 1479/2413/588 -f 1469/2402/136 1468/2401/542 1480/2414/589 1481/2415/590 -f 1471/2404/546 1470/2403/541 1482/2416/591 1483/2417/592 -f 1472/2405/545 1471/2404/546 1483/2417/592 1476/2410/585 -f 1474/2407/544 1473/2406/132 1477/2411/586 1478/2412/587 -f 1468/2401/542 1475/2408/543 1479/2413/588 1480/2414/589 -f 1470/2403/541 1469/2409/136 1481/2418/590 1482/2416/591 -f 1484/2419/290 1485/2420/593 1416/1426/593 1413/1423/290 -f 1486/2421/594 1487/2422/595 1404/1414/595 1418/1428/594 -f 1488/2423/288 1489/2424/596 1408/1418/596 1405/1415/288 -f 1490/2425/597 1491/2426/598 1412/1422/598 1409/1419/597 -f 1485/2420/593 1486/2427/594 1418/1430/594 1416/1426/593 -f 1487/2422/595 1488/2423/288 1405/1415/288 1404/1414/595 -f 1489/2424/596 1490/2425/597 1409/1419/597 1408/1418/596 -f 1491/2426/598 1484/2419/290 1413/1423/290 1412/1422/598 -f 1421/2428/596 1420/2429/288 1430/1442/288 1433/1445/596 -f 1415/1425/598 1414/1424/290 1429/1441/290 1428/1440/598 -f 1422/2430/597 1421/2428/596 1433/1445/596 1435/1447/597 -f 1414/1424/290 1417/1427/593 1432/1444/593 1429/1441/290 -f 1423/2431/598 1422/2432/597 1435/1451/597 1437/1450/598 -f 1417/1427/593 1419/1431/594 1434/1446/594 1432/1444/593 -f 1424/2433/290 1423/2431/598 1437/1450/598 1439/1453/290 -f 1419/1429/594 1407/1417/595 1436/1449/595 1434/1448/594 -f 1410/1420/597 1415/1425/598 1428/1440/598 1442/1456/597 -f 1420/2429/288 1427/2434/595 1431/1443/595 1430/1442/288 -f 1411/1421/596 1410/1420/597 1442/1456/597 1440/1454/596 -f 1427/2434/595 1426/2435/594 1443/1457/594 1431/1443/595 -f 1406/1416/288 1411/1421/596 1440/1454/596 1438/1452/288 -f 1426/2435/594 1425/2436/593 1441/1455/593 1443/1457/594 -f 1407/1417/595 1406/1416/288 1438/1452/288 1436/1449/595 -f 1425/2436/593 1424/2433/290 1439/1453/290 1441/1455/593 -f 1532/2437/599 1533/2438/600 1534/2439/601 1535/2440/602 -f 1536/2441/603 1537/2442/604 1538/2443/605 1539/2444/606 -f 1540/2445/607 1541/2446/608 1542/2447/609 1543/2448/610 -f 1541/2446/608 1544/2449/611 1545/2450/612 1542/2447/609 -f 1546/2451/613 1532/2437/599 1535/2440/602 1547/2452/614 -f 1533/2438/600 1536/2441/603 1539/2444/606 1534/2439/601 -f 1537/2442/604 1540/2445/607 1543/2448/610 1538/2443/605 -f 1544/2449/611 1546/2453/613 1547/2454/614 1545/2450/612 -f 1543/2448/610 1542/2447/609 1548/2455/615 1549/2456/616 -f 1539/2444/606 1538/2443/605 1550/2457/617 1551/2458/618 -f 1535/2440/602 1534/2439/601 1552/2459/619 1553/2460/620 -f 1545/2450/612 1547/2454/614 1554/2461/621 1555/2462/622 -f 1538/2443/605 1543/2448/610 1549/2456/616 1550/2457/617 -f 1534/2439/601 1539/2444/606 1551/2458/618 1552/2459/619 -f 1547/2452/614 1535/2440/602 1553/2460/620 1554/2463/621 -f 1542/2447/609 1545/2450/612 1555/2462/622 1548/2455/615 -f 1554/2463/621 1553/2460/620 1556/2464/623 1557/2465/136 -f 1548/2455/615 1555/2462/622 1558/2466/624 1559/2467/625 -f 1549/2456/616 1548/2455/615 1559/2467/625 1560/2468/626 -f 1551/2458/618 1550/2457/617 1561/2469/132 1562/2470/627 -f 1553/2460/620 1552/2459/619 1563/2471/628 1556/2464/623 -f 1555/2462/622 1554/2461/621 1557/2472/136 1558/2466/624 -f 1550/2457/617 1549/2456/616 1560/2468/626 1561/2469/132 -f 1552/2459/619 1551/2458/618 1562/2470/627 1563/2471/628 -f 1561/2469/132 1560/2468/626 1564/2473/629 1565/2474/630 -f 1563/2471/628 1562/2470/627 1566/2475/631 1567/2476/632 -f 1557/2465/136 1556/2464/623 1568/2477/633 1569/2478/634 -f 1559/2467/625 1558/2466/624 1570/2479/635 1571/2480/636 -f 1560/2468/626 1559/2467/625 1571/2480/636 1564/2473/629 -f 1562/2470/627 1561/2469/132 1565/2474/630 1566/2475/631 -f 1556/2464/623 1563/2471/628 1567/2476/632 1568/2477/633 -f 1558/2466/624 1557/2472/136 1569/2481/634 1570/2479/635 -f 1572/2482/294 1573/2483/637 1504/1470/637 1501/1467/294 -f 1574/2484/638 1575/2485/639 1492/1458/639 1506/1472/638 -f 1576/2486/293 1577/2487/640 1496/1462/640 1493/1459/293 -f 1578/2488/641 1579/2489/642 1500/1466/642 1497/1463/641 -f 1573/2483/637 1574/2490/638 1506/1474/638 1504/1470/637 -f 1575/2485/639 1576/2486/293 1493/1459/293 1492/1458/639 -f 1577/2487/640 1578/2488/641 1497/1463/641 1496/1462/640 -f 1579/2489/642 1572/2482/294 1501/1467/294 1500/1466/642 -f 1509/2491/640 1508/2492/293 1518/1486/293 1521/1489/640 -f 1503/1469/642 1502/1468/294 1517/1485/294 1516/1484/642 -f 1510/2493/641 1509/2491/640 1521/1489/640 1523/1491/641 -f 1502/1468/294 1505/1471/637 1520/1488/637 1517/1485/294 -f 1511/2494/642 1510/2495/641 1523/1495/641 1525/1494/642 -f 1505/1471/637 1507/1475/638 1522/1490/638 1520/1488/637 -f 1512/2496/294 1511/2494/642 1525/1494/642 1527/1497/294 -f 1507/1473/638 1495/1461/639 1524/1493/639 1522/1492/638 -f 1498/1464/641 1503/1469/642 1516/1484/642 1530/1500/641 -f 1508/2492/293 1515/2497/639 1519/1487/639 1518/1486/293 -f 1499/1465/640 1498/1464/641 1530/1500/641 1528/1498/640 -f 1515/2497/639 1514/2498/638 1531/1501/638 1519/1487/639 -f 1494/1460/293 1499/1465/640 1528/1498/640 1526/1496/293 -f 1514/2498/638 1513/2499/637 1529/1499/637 1531/1501/638 -f 1495/1461/639 1494/1460/293 1526/1496/293 1524/1493/639 -f 1513/2499/637 1512/2496/294 1527/1497/294 1529/1499/637 -f 1620/2500/643 1621/2501/644 1622/2502/645 1623/2503/646 -f 1624/2504/647 1625/2505/648 1626/2506/649 1627/2507/650 -f 1628/2508/651 1629/2509/652 1630/2510/653 1631/2511/654 -f 1629/2509/652 1632/2512/655 1633/2513/656 1630/2510/653 -f 1634/2514/657 1620/2500/643 1623/2503/646 1635/2515/658 -f 1621/2501/644 1624/2504/647 1627/2507/650 1622/2502/645 -f 1625/2505/648 1628/2508/651 1631/2511/654 1626/2506/649 -f 1632/2512/655 1634/2516/657 1635/2517/658 1633/2513/656 -f 1631/2511/654 1630/2510/653 1636/2518/659 1637/2519/660 -f 1627/2507/650 1626/2506/649 1638/2520/383 1639/2521/661 -f 1623/2503/646 1622/2502/645 1640/2522/662 1641/2523/663 -f 1633/2513/656 1635/2517/658 1642/2524/664 1643/2525/665 -f 1626/2506/649 1631/2511/654 1637/2519/660 1638/2520/383 -f 1622/2502/645 1627/2507/650 1639/2521/661 1640/2522/662 -f 1635/2515/658 1623/2503/646 1641/2523/663 1642/2526/664 -f 1630/2510/653 1633/2513/656 1643/2525/665 1636/2518/659 -f 1642/2526/664 1641/2523/663 1644/2527/624 1645/2528/136 -f 1636/2518/659 1643/2525/665 1646/2529/623 1647/2530/628 -f 1637/2519/660 1636/2518/659 1647/2530/628 1648/2531/627 -f 1639/2521/661 1638/2520/383 1649/2532/132 1650/2533/626 -f 1641/2523/663 1640/2522/662 1651/2534/625 1644/2527/624 -f 1643/2525/665 1642/2524/664 1645/2535/136 1646/2529/623 -f 1638/2520/383 1637/2519/660 1648/2531/627 1649/2532/132 -f 1640/2522/662 1639/2521/661 1650/2533/626 1651/2534/625 -f 1649/2532/132 1648/2531/627 1652/2536/666 1653/2537/667 -f 1651/2534/625 1650/2533/626 1654/2538/668 1655/2539/669 -f 1645/2528/136 1644/2527/624 1656/2540/670 1657/2541/671 -f 1647/2530/628 1646/2529/623 1658/2542/672 1659/2543/673 -f 1648/2531/627 1647/2530/628 1659/2543/673 1652/2536/666 -f 1650/2533/626 1649/2532/132 1653/2537/667 1654/2538/668 -f 1644/2527/624 1651/2534/625 1655/2539/669 1656/2540/670 -f 1646/2529/623 1645/2535/136 1657/2544/671 1658/2542/672 -f 1660/2545/293 1661/2546/674 1592/1514/674 1589/1511/293 -f 1662/2547/675 1663/2548/676 1580/1502/676 1594/1516/675 -f 1664/2549/294 1665/2550/677 1584/1506/677 1581/1503/294 -f 1666/2551/678 1667/2552/679 1588/1510/679 1585/1507/678 -f 1661/2546/674 1662/2553/675 1594/1518/675 1592/1514/674 -f 1663/2548/676 1664/2549/294 1581/1503/294 1580/1502/676 -f 1665/2550/677 1666/2551/678 1585/1507/678 1584/1506/677 -f 1667/2552/679 1660/2545/293 1589/1511/293 1588/1510/679 -f 1597/2554/677 1596/2555/294 1606/1530/294 1609/1533/677 -f 1591/1513/679 1590/1512/293 1605/1529/293 1604/1528/679 -f 1598/2556/678 1597/2554/677 1609/1533/677 1611/1535/678 -f 1590/1512/293 1593/1515/674 1608/1532/674 1605/1529/293 -f 1599/2557/679 1598/2558/678 1611/1539/678 1613/1538/679 -f 1593/1515/674 1595/1519/675 1610/1534/675 1608/1532/674 -f 1600/2559/293 1599/2557/679 1613/1538/679 1615/1541/293 -f 1595/1517/675 1583/1505/676 1612/1537/676 1610/1536/675 -f 1586/1508/678 1591/1513/679 1604/1528/679 1618/1544/678 -f 1596/2555/294 1603/2560/676 1607/1531/676 1606/1530/294 -f 1587/1509/677 1586/1508/678 1618/1544/678 1616/1542/677 -f 1603/2560/676 1602/2561/675 1619/1545/675 1607/1531/676 -f 1582/1504/294 1587/1509/677 1616/1542/677 1614/1540/294 -f 1602/2561/675 1601/2562/674 1617/1543/674 1619/1545/675 -f 1583/1505/676 1582/1504/294 1614/1540/294 1612/1537/676 -f 1601/2562/674 1600/2559/293 1615/1541/293 1617/1543/674 -f 1800/2563/128 1796/2564/125 1801/2565/680 1805/2566/681 -f 1797/2567/131 1798/2568/292 1803/2569/682 1802/2570/683 -f 1799/2571/293 1800/2563/128 1805/2566/681 1804/2572/684 -f 1796/2564/125 1797/2567/131 1802/2570/683 1801/2565/680 -f 1802/2570/683 1803/2569/682 1808/2573/685 1807/2574/686 -f 1804/2572/684 1805/2566/681 1810/2575/687 1809/2576/688 -f 1801/2565/680 1802/2570/683 1807/2574/686 1806/2577/170 -f 1805/2566/681 1801/2565/680 1806/2577/170 1810/2575/687 -f 1810/2575/687 1806/2577/170 1811/2578/312 1815/2579/689 -f 1807/2574/686 1808/2573/685 1813/2580/690 1812/2581/691 -f 1809/2576/688 1810/2575/687 1815/2579/689 1814/2582/692 -f 1806/2577/170 1807/2574/686 1812/2581/691 1811/2578/312 -f 1820/2583/128 1816/2584/125 1821/2585/680 1825/2586/681 -f 1817/2587/131 1818/2588/292 1823/2589/682 1822/2590/683 -f 1819/2591/293 1820/2583/128 1825/2586/681 1824/2592/684 -f 1816/2584/125 1817/2587/131 1822/2590/683 1821/2585/680 -f 1822/2590/683 1823/2589/682 1828/2593/685 1827/2594/686 -f 1824/2592/684 1825/2586/681 1830/2595/687 1829/2596/688 -f 1821/2585/680 1822/2590/683 1827/2594/686 1826/2597/170 -f 1825/2586/681 1821/2585/680 1826/2597/170 1830/2595/687 -f 1830/2595/687 1826/2597/170 1831/2598/312 1835/2599/689 -f 1827/2594/686 1828/2593/685 1833/2600/690 1832/2601/691 -f 1829/2596/688 1830/2595/687 1835/2599/689 1834/2602/692 -f 1826/2597/170 1827/2594/686 1832/2601/691 1831/2598/312 -f 1840/2603/128 1836/2604/125 1841/2605/680 1845/2606/681 -f 1837/2607/131 1838/2608/292 1843/2609/682 1842/2610/683 -f 1839/2611/293 1840/2603/128 1845/2606/681 1844/2612/684 -f 1836/2604/125 1837/2607/131 1842/2610/683 1841/2605/680 -f 1842/2610/683 1843/2609/682 1848/2613/685 1847/2614/686 -f 1844/2612/684 1845/2606/681 1850/2615/687 1849/2616/688 -f 1841/2605/680 1842/2610/683 1847/2614/686 1846/2617/170 -f 1845/2606/681 1841/2605/680 1846/2617/170 1850/2615/687 -f 1850/2615/687 1846/2617/170 1851/2618/312 1855/2619/689 -f 1847/2614/686 1848/2613/685 1853/2620/690 1852/2621/691 -f 1849/2616/688 1850/2615/687 1855/2619/689 1854/2622/692 -f 1846/2617/170 1847/2614/686 1852/2621/691 1851/2618/312 +f 1887/2680/725 1888/2681/725 1889/2682/725 +f 1889/2682/725 1890/2683/725 1891/2684/725 +f 1891/2684/725 1892/2685/725 1889/2682/725 +f 1892/2685/725 1893/2686/725 1889/2682/725 +f 1893/2686/725 1894/2687/725 1887/2680/725 +f 1887/2680/725 1895/2688/725 1888/2681/725 +f 1888/2681/725 1896/2689/725 1889/2682/725 +f 1896/2689/725 1897/2690/725 1889/2682/725 +f 1897/2690/725 1898/2691/725 1889/2682/725 +f 1893/2686/725 1887/2680/725 1889/2682/725 diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj deleted file mode 100644 index 9276f71a0..000000000 --- a/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj +++ /dev/null @@ -1,8217 +0,0 @@ -# Blender v2.79 (sub 0) OBJ File: 'cryo_cannon_alt.blend' -# www.blender.org -o Plane.004 -v -0.437500 2.102596 -3.042822 -v -0.483253 2.144063 -3.023486 -v -0.500000 2.200707 -2.997072 -v -0.483253 2.257351 -2.970659 -v -0.437500 2.298818 -2.951323 -v -0.375000 2.313995 -2.944245 -v -0.312500 2.298818 -2.951323 -v -0.266747 2.257351 -2.970659 -v -0.250000 2.200707 -2.997072 -v -0.266747 2.144063 -3.023486 -v -0.312500 2.102596 -3.042822 -v -0.375000 2.087419 -3.049900 -vt 0.500000 0.000000 -vt 0.066987 0.250000 -vt 0.500000 1.000000 -vt 0.750000 0.933013 -vt 0.933013 0.750000 -vt 1.000000 0.500000 -vt 0.933013 0.250000 -vt 0.750000 0.066987 -vt 0.250000 0.066987 -vt 0.000000 0.500000 -vt 0.066987 0.750000 -vt 0.250000 0.933013 -vn -0.0000 0.4226 -0.9063 -s off -f 6/1/1 8/2/1 12/3/1 -f 12/3/1 1/4/1 2/5/1 -f 2/5/1 3/6/1 12/3/1 -f 3/6/1 4/7/1 12/3/1 -f 4/7/1 5/8/1 6/1/1 -f 6/1/1 7/9/1 8/2/1 -f 8/2/1 9/10/1 12/3/1 -f 9/10/1 10/11/1 12/3/1 -f 10/11/1 11/12/1 12/3/1 -f 4/7/1 6/1/1 12/3/1 -o Plane.003 -v -0.216506 2.340409 -3.000889 -v -0.250000 2.227120 -3.053716 -v -0.216506 2.113832 -3.106544 -v -0.125000 2.030899 -3.145216 -v 0.000000 2.000544 -3.159371 -v 0.125000 2.030899 -3.145216 -v 0.216506 2.113832 -3.106544 -v 0.250000 2.227120 -3.053716 -v 0.216506 2.340409 -3.000889 -v 0.125000 2.423342 -2.962217 -v 0.000000 2.453697 -2.948062 -v -0.125000 2.423342 -2.962217 -vt 0.500000 0.000000 -vt 0.066987 0.250000 -vt 0.066987 0.750000 -vt 0.250000 0.933013 -vt 0.500000 1.000000 -vt 0.750000 0.933013 -vt 0.933013 0.750000 -vt 1.000000 0.500000 -vt 0.933013 0.250000 -vt 0.750000 0.066987 -vt 0.250000 0.066987 -vt 0.000000 0.500000 -vn 0.0000 0.4226 -0.9063 -s off -f 17/13/2 15/14/2 13/15/2 -f 13/15/2 24/16/2 23/17/2 -f 23/17/2 22/18/2 21/19/2 -f 21/19/2 20/20/2 19/21/2 -f 19/21/2 18/22/2 17/13/2 -f 17/13/2 16/23/2 15/14/2 -f 15/14/2 14/24/2 13/15/2 -f 13/15/2 23/17/2 17/13/2 -f 23/17/2 21/19/2 17/13/2 -f 21/19/2 19/21/2 17/13/2 -o Plane.002 -v -0.109472 2.437500 -0.413125 -v 0.003817 2.437500 -0.360298 -v 0.109472 2.437500 -0.586875 -v -0.003817 2.437500 -0.639702 -v 0.109472 2.312500 -0.586875 -v -0.003817 2.312500 -0.639702 -v -0.109472 2.312500 -0.413125 -v 0.003817 2.312500 -0.360298 -v 0.109472 0.062500 -0.413125 -v -0.003817 0.062500 -0.360298 -v -0.109472 0.062500 -0.586875 -v 0.003816 0.062500 -0.639702 -v -0.109472 0.187500 -0.586875 -v 0.003816 0.187500 -0.639702 -v 0.109472 0.187500 -0.413125 -v -0.003817 0.187500 -0.360298 -v 1.187500 1.359472 -0.413125 -v 1.187500 1.246183 -0.360298 -v 1.187500 1.140528 -0.586875 -v 1.187500 1.253817 -0.639702 -v 1.062500 1.140528 -0.586875 -v 1.062500 1.253817 -0.639702 -v 1.062500 1.359472 -0.413125 -v 1.062500 1.246183 -0.360298 -v -1.187500 1.140528 -0.413125 -v -1.187500 1.253817 -0.360298 -v -1.187500 1.359473 -0.586875 -v -1.187500 1.246184 -0.639702 -v -1.062500 1.359473 -0.586875 -v -1.062500 1.246184 -0.639702 -v -1.062500 1.140528 -0.413125 -v -1.062500 1.253817 -0.360298 -v 0.762281 2.167098 -0.413125 -v 0.842388 2.086991 -0.360298 -v 0.917098 2.012281 -0.586875 -v 0.836990 2.092388 -0.639702 -v 0.828709 1.923892 -0.586875 -v 0.748602 2.004000 -0.639702 -v 0.673892 2.078710 -0.413125 -v 0.754000 1.998602 -0.360298 -v -0.762281 0.332902 -0.413125 -v -0.842388 0.413010 -0.360298 -v -0.917098 0.487720 -0.586875 -v -0.836991 0.407612 -0.639702 -v -0.828710 0.576108 -0.586875 -v -0.748602 0.496001 -0.639702 -v -0.673892 0.421291 -0.413125 -v -0.754000 0.501398 -0.360298 -v 0.917098 0.487720 -0.413125 -v 0.836990 0.407612 -0.360298 -v 0.762280 0.332902 -0.586875 -v 0.842388 0.413010 -0.639702 -v 0.673892 0.421291 -0.586875 -v 0.753999 0.501398 -0.639702 -v 0.828709 0.576108 -0.413125 -v 0.748602 0.496001 -0.360298 -v -0.917098 2.012281 -0.413125 -v -0.836990 2.092388 -0.360298 -v -0.762281 2.167098 -0.586875 -v -0.842388 2.086991 -0.639702 -v -0.673892 2.078710 -0.586875 -v -0.754000 1.998602 -0.639702 -v -0.828709 1.923893 -0.413125 -v -0.748602 2.004000 -0.360298 -v 1.083141 0.751056 -0.413125 -v 1.026497 0.652945 -0.360298 -v 0.973669 0.561444 -0.586875 -v 1.030313 0.659555 -0.639702 -v 0.865416 0.623944 -0.586875 -v 0.922060 0.722055 -0.639702 -v 0.974888 0.813556 -0.413125 -v 0.918243 0.715445 -0.360298 -v -1.083141 1.748945 -0.413125 -v -1.026497 1.847056 -0.360298 -v -0.973669 1.938556 -0.586875 -v -1.030313 1.840445 -0.639702 -v -0.865416 1.876056 -0.586875 -v -0.922060 1.777945 -0.639702 -v -0.974888 1.686445 -0.413125 -v -0.918244 1.784556 -0.360298 -v -0.498944 0.166859 -0.413125 -v -0.597055 0.223504 -0.360298 -v -0.688556 0.276331 -0.586875 -v -0.590445 0.219687 -0.639702 -v -0.626056 0.384585 -0.586875 -v -0.527945 0.327940 -0.639702 -v -0.436444 0.275112 -0.413125 -v -0.534555 0.331757 -0.360298 -v 0.498944 2.333141 -0.413125 -v 0.597055 2.276497 -0.360298 -v 0.688556 2.223669 -0.586875 -v 0.590445 2.280313 -0.639702 -v 0.626056 2.115416 -0.586875 -v 0.527945 2.172060 -0.639702 -v 0.436444 2.224888 -0.413125 -v 0.534555 2.168244 -0.360298 -v 0.413089 0.131297 -0.413125 -v 0.303661 0.101975 -0.360298 -v 0.201605 0.074630 -0.586875 -v 0.311034 0.103951 -0.639702 -v 0.169253 0.195371 -0.586875 -v 0.278682 0.224692 -0.639702 -v 0.380737 0.252038 -0.413125 -v 0.271308 0.222716 -0.360298 -v -0.413090 2.368703 -0.413125 -v -0.303661 2.398025 -0.360298 -v -0.201605 2.425371 -0.586875 -v -0.311034 2.396049 -0.639702 -v -0.169253 2.304630 -0.586875 -v -0.278682 2.275309 -0.639702 -v -0.380737 2.247963 -0.413125 -v -0.271308 2.277284 -0.360298 -v -1.118703 0.836911 -0.413125 -v -1.148025 0.946339 -0.360298 -v -1.175370 1.048395 -0.586875 -v -1.146049 0.938966 -0.639702 -v -1.054630 1.080747 -0.586875 -v -1.025308 0.971319 -0.639702 -v -0.997963 0.869263 -0.413125 -v -1.027284 0.978692 -0.360298 -v 1.118703 1.663090 -0.413125 -v 1.148025 1.553661 -0.360298 -v 1.175370 1.451605 -0.586875 -v 1.146049 1.561034 -0.639702 -v 1.054630 1.419253 -0.586875 -v 1.025308 1.528682 -0.639702 -v 0.997963 1.630737 -0.413125 -v 1.027284 1.521308 -0.360298 -v -0.973669 0.561445 -0.413125 -v -1.030313 0.659556 -0.360298 -v -1.083141 0.751056 -0.586875 -v -1.026497 0.652945 -0.639702 -v -0.974888 0.813556 -0.586875 -v -0.918244 0.715445 -0.639702 -v -0.865416 0.623945 -0.413125 -v -0.922060 0.722056 -0.360298 -v 0.973669 1.938556 -0.413125 -v 1.030313 1.840445 -0.360298 -v 1.083141 1.748944 -0.586875 -v 1.026497 1.847055 -0.639702 -v 0.974888 1.686444 -0.586875 -v 0.918244 1.784555 -0.639702 -v 0.865416 1.876056 -0.413125 -v 0.922060 1.777945 -0.360298 -v -0.688556 2.223669 -0.413125 -v -0.590444 2.280313 -0.360298 -v -0.498944 2.333141 -0.586875 -v -0.597055 2.276497 -0.639702 -v -0.436444 2.224888 -0.586875 -v -0.534555 2.168244 -0.639702 -v -0.626056 2.115416 -0.413125 -v -0.527944 2.172060 -0.360298 -v 0.688555 0.276331 -0.413125 -v 0.590444 0.219687 -0.360298 -v 0.498944 0.166859 -0.586875 -v 0.597055 0.223503 -0.639702 -v 0.436444 0.275112 -0.586875 -v 0.534555 0.331756 -0.639702 -v 0.626055 0.384584 -0.413125 -v 0.527944 0.327940 -0.360298 -v -1.175370 1.451606 -0.413125 -v -1.146049 1.561034 -0.360298 -v -1.118703 1.663090 -0.586875 -v -1.148025 1.553661 -0.639702 -v -0.997963 1.630738 -0.586875 -v -1.027284 1.521309 -0.639702 -v -1.054630 1.419253 -0.413125 -v -1.025308 1.528682 -0.360298 -v 1.175370 1.048394 -0.413125 -v 1.146049 0.938966 -0.360298 -v 1.118703 0.836910 -0.586875 -v 1.148024 0.946339 -0.639702 -v 0.997963 0.869263 -0.586875 -v 1.027284 0.978691 -0.639702 -v 1.054630 1.080747 -0.413125 -v 1.025308 0.971318 -0.360298 -v 0.201606 2.425370 -0.413125 -v 0.311034 2.396049 -0.360298 -v 0.413090 2.368703 -0.586875 -v 0.303661 2.398025 -0.639702 -v 0.380738 2.247962 -0.586875 -v 0.271309 2.277284 -0.639702 -v 0.169253 2.304630 -0.413125 -v 0.278682 2.275308 -0.360298 -v -0.201606 0.074630 -0.413125 -v -0.311035 0.103951 -0.360298 -v -0.413090 0.131297 -0.586875 -v -0.303662 0.101975 -0.639702 -v -0.380738 0.252038 -0.586875 -v -0.271309 0.222716 -0.639702 -v -0.169254 0.195371 -0.413125 -v -0.278682 0.224692 -0.360298 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vn 0.0000 1.0000 0.0000 -vn 0.4226 0.0000 -0.9063 -vn -0.4226 -0.0000 0.9063 -vn 0.9063 0.0000 0.4226 -vn -0.9063 0.0000 -0.4226 -vn -0.0000 -1.0000 -0.0000 -vn -0.4226 -0.0000 -0.9063 -vn 0.4226 -0.0000 0.9063 -vn -0.9063 0.0000 0.4226 -vn 0.9063 -0.0000 -0.4226 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -0.4226 -0.9063 -vn 0.0000 0.4226 0.9063 -vn 0.0000 -0.9063 0.4226 -vn 0.0000 0.9063 -0.4226 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.4226 -0.9063 -vn 0.0000 -0.4226 0.9063 -vn 0.0000 0.9063 0.4226 -vn 0.0000 -0.9063 -0.4226 -vn 0.7071 0.7071 0.0000 -vn 0.2988 -0.2988 -0.9063 -vn -0.2988 0.2988 0.9063 -vn 0.6409 -0.6409 0.4226 -vn -0.6409 0.6409 -0.4226 -vn -0.7071 -0.7071 0.0000 -vn -0.2988 0.2988 -0.9063 -vn 0.2988 -0.2988 0.9063 -vn -0.6409 0.6409 0.4226 -vn 0.6409 -0.6409 -0.4226 -vn 0.7071 -0.7071 0.0000 -vn -0.2988 -0.2988 -0.9063 -vn 0.2988 0.2988 0.9063 -vn -0.6409 -0.6409 0.4226 -vn 0.6409 0.6409 -0.4226 -vn -0.7071 0.7071 -0.0000 -vn 0.2988 0.2988 -0.9063 -vn -0.2988 -0.2988 0.9063 -vn 0.6409 0.6409 0.4226 -vn -0.6409 -0.6409 -0.4226 -vn 0.8660 -0.5000 0.0000 -vn -0.2113 -0.3660 -0.9063 -vn 0.2113 0.3660 0.9063 -vn -0.4532 -0.7849 0.4226 -vn 0.4532 0.7849 -0.4226 -vn -0.8660 0.5000 -0.0000 -vn 0.2113 0.3660 -0.9063 -vn -0.2113 -0.3660 0.9063 -vn 0.4532 0.7849 0.4226 -vn -0.4532 -0.7849 -0.4226 -vn -0.5000 -0.8660 0.0000 -vn -0.3660 0.2113 -0.9063 -vn 0.3660 -0.2113 0.9063 -vn -0.7849 0.4532 0.4226 -vn 0.7849 -0.4532 -0.4226 -vn 0.5000 0.8660 -0.0000 -vn 0.3660 -0.2113 -0.9063 -vn -0.3660 0.2113 0.9063 -vn 0.7849 -0.4532 0.4226 -vn -0.7849 0.4532 -0.4226 -vn 0.2588 -0.9659 -0.0000 -vn -0.4082 -0.1094 -0.9063 -vn 0.4082 0.1094 0.9063 -vn -0.8754 -0.2346 0.4226 -vn 0.8754 0.2346 -0.4226 -vn -0.2588 0.9659 -0.0000 -vn 0.4082 0.1094 -0.9063 -vn -0.4082 -0.1094 0.9063 -vn 0.8754 0.2346 0.4226 -vn -0.8754 -0.2346 -0.4226 -vn -0.9659 -0.2588 0.0000 -vn -0.1094 0.4082 -0.9063 -vn 0.1094 -0.4082 0.9063 -vn -0.2346 0.8754 0.4226 -vn 0.2346 -0.8754 -0.4226 -vn 0.9659 0.2588 0.0000 -vn 0.1094 -0.4082 -0.9063 -vn -0.1094 0.4082 0.9063 -vn 0.2346 -0.8754 0.4226 -vn -0.2346 0.8754 -0.4226 -vn -0.8660 -0.5000 0.0000 -vn -0.2113 0.3660 -0.9063 -vn 0.2113 -0.3660 0.9063 -vn -0.4532 0.7849 0.4226 -vn 0.4532 -0.7849 -0.4226 -vn 0.8660 0.5000 0.0000 -vn 0.2113 -0.3660 -0.9063 -vn -0.2113 0.3660 0.9063 -vn 0.4532 -0.7849 0.4226 -vn -0.4532 0.7849 -0.4226 -vn -0.5000 0.8660 0.0000 -vn 0.3660 0.2113 -0.9063 -vn -0.3660 -0.2113 0.9063 -vn 0.7849 0.4532 0.4226 -vn -0.7849 -0.4532 -0.4226 -vn 0.5000 -0.8660 -0.0000 -vn -0.3660 -0.2113 -0.9063 -vn 0.3660 0.2113 0.9063 -vn -0.7849 -0.4532 0.4226 -vn 0.7849 0.4532 -0.4226 -vn -0.9659 0.2588 0.0000 -vn 0.1094 0.4082 -0.9063 -vn -0.1094 -0.4082 0.9063 -vn 0.2346 0.8754 0.4226 -vn -0.2346 -0.8754 -0.4226 -vn 0.9659 -0.2588 -0.0000 -vn -0.1094 -0.4082 -0.9063 -vn 0.1094 0.4082 0.9063 -vn -0.2346 -0.8754 0.4226 -vn 0.2346 0.8754 -0.4226 -vn 0.2588 0.9659 -0.0000 -vn 0.4082 -0.1094 -0.9063 -vn -0.4082 0.1094 0.9063 -vn 0.8754 -0.2346 0.4226 -vn -0.8754 0.2346 -0.4226 -vn -0.2588 -0.9659 0.0000 -vn -0.4082 0.1094 -0.9063 -vn 0.4082 -0.1094 0.9063 -vn -0.8754 0.2346 0.4226 -vn 0.8754 -0.2346 -0.4226 -s off -f 26/25/3 28/26/3 25/27/3 -f 27/28/4 30/29/4 28/26/4 -f 25/27/5 32/30/5 26/25/5 -f 26/25/6 29/31/6 27/28/6 -f 28/26/7 31/32/7 25/27/7 -f 34/33/8 36/34/8 33/35/8 -f 35/36/9 38/37/9 36/34/9 -f 33/35/10 40/38/10 34/33/10 -f 35/36/11 40/39/11 37/40/11 -f 36/34/12 39/41/12 33/35/12 -f 42/42/13 44/43/13 41/44/13 -f 43/45/14 46/46/14 44/43/14 -f 41/44/15 48/47/15 42/42/15 -f 42/42/16 45/48/16 43/45/16 -f 44/43/17 47/49/17 41/44/17 -f 50/50/18 52/51/18 49/52/18 -f 52/51/19 53/53/19 54/54/19 -f 49/52/20 56/55/20 50/50/20 -f 50/50/21 53/56/21 51/57/21 -f 52/51/22 55/58/22 49/52/22 -f 58/59/23 60/60/23 57/61/23 -f 59/62/24 62/63/24 60/60/24 -f 58/59/25 63/64/25 64/65/25 -f 58/59/26 61/66/26 59/62/26 -f 60/60/27 63/67/27 57/61/27 -f 66/68/28 68/69/28 65/70/28 -f 68/69/29 69/71/29 70/72/29 -f 66/68/30 71/73/30 72/74/30 -f 66/68/31 69/75/31 67/76/31 -f 68/69/32 71/77/32 65/70/32 -f 74/78/33 76/79/33 73/80/33 -f 75/81/34 78/82/34 76/79/34 -f 73/80/35 80/83/35 74/78/35 -f 75/81/36 80/84/36 77/85/36 -f 76/79/37 79/86/37 73/80/37 -f 82/87/38 84/88/38 81/89/38 -f 84/88/39 85/90/39 86/91/39 -f 81/89/40 88/92/40 82/87/40 -f 83/93/41 88/94/41 85/95/41 -f 84/88/42 87/96/42 81/89/42 -f 90/97/43 92/98/43 89/99/43 -f 91/100/44 94/101/44 92/98/44 -f 89/99/45 96/102/45 90/97/45 -f 90/97/46 93/103/46 91/100/46 -f 92/98/47 95/104/47 89/99/47 -f 98/105/48 100/106/48 97/107/48 -f 100/106/49 101/108/49 102/109/49 -f 98/105/50 103/110/50 104/111/50 -f 98/105/51 101/112/51 99/113/51 -f 100/106/52 103/114/52 97/107/52 -f 106/115/53 108/116/53 105/117/53 -f 107/118/54 110/119/54 108/116/54 -f 105/117/55 112/120/55 106/115/55 -f 106/115/56 109/121/56 107/118/56 -f 108/116/57 111/122/57 105/117/57 -f 114/123/58 116/124/58 113/125/58 -f 115/126/59 118/127/59 116/124/59 -f 114/123/60 119/128/60 120/129/60 -f 115/126/61 120/130/61 117/131/61 -f 116/124/62 119/132/62 113/125/62 -f 122/133/63 124/134/63 121/135/63 -f 123/136/64 126/137/64 124/134/64 -f 121/135/65 128/138/65 122/133/65 -f 123/136/66 128/139/66 125/140/66 -f 121/135/67 126/141/67 127/142/67 -f 130/143/68 132/144/68 129/145/68 -f 132/144/69 133/146/69 134/147/69 -f 129/145/70 136/148/70 130/143/70 -f 130/143/71 133/149/71 131/150/71 -f 132/144/72 135/151/72 129/145/72 -f 138/152/73 140/153/73 137/154/73 -f 140/153/74 141/155/74 142/156/74 -f 137/154/75 144/157/75 138/152/75 -f 138/152/76 141/158/76 139/159/76 -f 140/153/77 143/160/77 137/154/77 -f 146/161/78 148/162/78 145/163/78 -f 147/164/79 150/165/79 148/162/79 -f 145/163/80 152/166/80 146/161/80 -f 147/164/81 152/167/81 149/168/81 -f 148/162/82 151/169/82 145/163/82 -f 154/170/83 156/171/83 153/172/83 -f 156/171/84 157/173/84 158/174/84 -f 153/172/85 160/175/85 154/170/85 -f 154/170/86 157/176/86 155/177/86 -f 156/171/87 159/178/87 153/172/87 -f 162/179/88 164/180/88 161/181/88 -f 164/180/89 165/182/89 166/183/89 -f 161/181/90 168/184/90 162/179/90 -f 163/185/91 168/186/91 165/187/91 -f 164/180/92 167/188/92 161/181/92 -f 170/189/93 172/190/93 169/191/93 -f 171/192/94 174/193/94 172/190/94 -f 169/191/95 176/194/95 170/189/95 -f 170/189/96 173/195/96 171/192/96 -f 172/190/97 175/196/97 169/191/97 -f 178/197/98 180/198/98 177/199/98 -f 179/200/99 182/201/99 180/198/99 -f 178/197/100 183/202/100 184/203/100 -f 179/200/101 184/204/101 181/205/101 -f 180/198/102 183/206/102 177/199/102 -f 186/207/103 188/208/103 185/209/103 -f 187/210/104 190/211/104 188/208/104 -f 186/207/105 191/212/105 192/213/105 -f 187/210/106 192/214/106 189/215/106 -f 185/209/107 190/216/107 191/217/107 -f 194/218/108 196/219/108 193/220/108 -f 196/219/109 197/221/109 198/222/109 -f 194/218/110 199/223/110 200/224/110 -f 194/218/111 197/225/111 195/226/111 -f 196/219/112 199/227/112 193/220/112 -f 202/228/113 204/229/113 201/230/113 -f 203/231/114 206/232/114 204/229/114 -f 202/228/115 207/233/115 208/234/115 -f 202/228/116 205/235/116 203/231/116 -f 204/229/117 207/236/117 201/230/117 -f 210/237/118 212/238/118 209/239/118 -f 211/240/119 214/241/119 212/238/119 -f 210/237/120 215/242/120 216/243/120 -f 211/240/121 216/244/121 213/245/121 -f 209/239/122 214/246/122 215/247/122 -f 26/25/3 27/28/3 28/26/3 -f 27/28/4 29/248/4 30/29/4 -f 25/27/5 31/249/5 32/30/5 -f 26/25/6 32/250/6 29/31/6 -f 28/26/7 30/251/7 31/32/7 -f 34/33/8 35/36/8 36/34/8 -f 35/36/9 37/252/9 38/37/9 -f 33/35/10 39/253/10 40/38/10 -f 35/36/11 34/33/11 40/39/11 -f 36/34/12 38/254/12 39/41/12 -f 42/42/13 43/45/13 44/43/13 -f 43/45/14 45/255/14 46/46/14 -f 41/44/15 47/256/15 48/47/15 -f 42/42/16 48/257/16 45/48/16 -f 44/43/17 46/258/17 47/49/17 -f 50/50/18 51/57/18 52/51/18 -f 52/51/19 51/57/19 53/53/19 -f 49/52/20 55/259/20 56/55/20 -f 50/50/21 56/260/21 53/56/21 -f 52/51/22 54/261/22 55/58/22 -f 58/59/23 59/62/23 60/60/23 -f 59/62/24 61/262/24 62/63/24 -f 58/59/25 57/61/25 63/64/25 -f 58/59/26 64/263/26 61/66/26 -f 60/60/27 62/264/27 63/67/27 -f 66/68/28 67/76/28 68/69/28 -f 68/69/29 67/76/29 69/71/29 -f 66/68/30 65/70/30 71/73/30 -f 66/68/31 72/265/31 69/75/31 -f 68/69/32 70/266/32 71/77/32 -f 74/78/33 75/81/33 76/79/33 -f 75/81/34 77/267/34 78/82/34 -f 73/80/35 79/268/35 80/83/35 -f 75/81/36 74/78/36 80/84/36 -f 76/79/37 78/269/37 79/86/37 -f 82/87/38 83/93/38 84/88/38 -f 84/88/39 83/93/39 85/90/39 -f 81/89/40 87/270/40 88/92/40 -f 83/93/41 82/87/41 88/94/41 -f 84/88/42 86/271/42 87/96/42 -f 90/97/43 91/100/43 92/98/43 -f 91/100/44 93/272/44 94/101/44 -f 89/99/45 95/273/45 96/102/45 -f 90/97/46 96/274/46 93/103/46 -f 92/98/47 94/275/47 95/104/47 -f 98/105/48 99/113/48 100/106/48 -f 100/106/49 99/113/49 101/108/49 -f 98/105/50 97/107/50 103/110/50 -f 98/105/51 104/276/51 101/112/51 -f 100/106/52 102/277/52 103/114/52 -f 106/115/53 107/118/53 108/116/53 -f 107/118/54 109/278/54 110/119/54 -f 105/117/55 111/279/55 112/120/55 -f 106/115/56 112/280/56 109/121/56 -f 108/116/57 110/281/57 111/122/57 -f 114/123/58 115/126/58 116/124/58 -f 115/126/59 117/282/59 118/127/59 -f 114/123/60 113/125/60 119/128/60 -f 115/126/61 114/123/61 120/130/61 -f 116/124/62 118/283/62 119/132/62 -f 122/133/63 123/136/63 124/134/63 -f 123/136/64 125/284/64 126/137/64 -f 121/135/65 127/285/65 128/138/65 -f 123/136/66 122/133/66 128/139/66 -f 121/135/67 124/134/67 126/141/67 -f 130/143/68 131/150/68 132/144/68 -f 132/144/69 131/150/69 133/146/69 -f 129/145/70 135/286/70 136/148/70 -f 130/143/71 136/287/71 133/149/71 -f 132/144/72 134/288/72 135/151/72 -f 138/152/73 139/159/73 140/153/73 -f 140/153/74 139/159/74 141/155/74 -f 137/154/75 143/289/75 144/157/75 -f 138/152/76 144/290/76 141/158/76 -f 140/153/77 142/291/77 143/160/77 -f 146/161/78 147/164/78 148/162/78 -f 147/164/79 149/292/79 150/165/79 -f 145/163/80 151/293/80 152/166/80 -f 147/164/81 146/161/81 152/167/81 -f 148/162/82 150/294/82 151/169/82 -f 154/170/83 155/177/83 156/171/83 -f 156/171/84 155/177/84 157/173/84 -f 153/172/85 159/295/85 160/175/85 -f 154/170/86 160/296/86 157/176/86 -f 156/171/87 158/297/87 159/178/87 -f 162/179/88 163/185/88 164/180/88 -f 164/180/89 163/185/89 165/182/89 -f 161/181/90 167/298/90 168/184/90 -f 163/185/91 162/179/91 168/186/91 -f 164/180/92 166/299/92 167/188/92 -f 170/189/93 171/192/93 172/190/93 -f 171/192/94 173/300/94 174/193/94 -f 169/191/95 175/301/95 176/194/95 -f 170/189/96 176/302/96 173/195/96 -f 172/190/97 174/303/97 175/196/97 -f 178/197/98 179/200/98 180/198/98 -f 179/200/99 181/304/99 182/201/99 -f 178/197/100 177/199/100 183/202/100 -f 179/200/101 178/197/101 184/204/101 -f 180/198/102 182/305/102 183/206/102 -f 186/207/103 187/210/103 188/208/103 -f 187/210/104 189/306/104 190/211/104 -f 186/207/105 185/209/105 191/212/105 -f 187/210/106 186/207/106 192/214/106 -f 185/209/107 188/208/107 190/216/107 -f 194/218/108 195/226/108 196/219/108 -f 196/219/109 195/226/109 197/221/109 -f 194/218/110 193/220/110 199/223/110 -f 194/218/111 200/307/111 197/225/111 -f 196/219/112 198/308/112 199/227/112 -f 202/228/113 203/231/113 204/229/113 -f 203/231/114 205/309/114 206/232/114 -f 202/228/115 201/230/115 207/233/115 -f 202/228/116 208/310/116 205/235/116 -f 204/229/117 206/311/117 207/236/117 -f 210/237/118 211/240/118 212/238/118 -f 211/240/119 213/312/119 214/241/119 -f 210/237/120 209/239/120 215/242/120 -f 211/240/121 210/237/121 216/244/121 -f 209/239/122 212/238/122 214/246/122 -o Plane.001 -v 0.000000 2.453697 -2.948062 -v 0.125000 2.423342 -2.962217 -v 0.216506 2.340409 -3.000889 -v 0.250000 2.227120 -3.053716 -v 0.216506 2.113832 -3.106544 -v 0.000000 2.566986 -2.895234 -v 0.324759 2.057188 -3.132957 -v 0.375000 2.227120 -3.053716 -v 0.324760 2.397053 -2.974475 -v 0.187500 2.521452 -2.916467 -vt 1.000000 0.250000 -vt -0.000000 -0.000000 -vt 1.000000 0.000000 -vt -0.000000 0.500000 -vt 0.000000 0.250000 -vt 1.000000 0.500000 -vt -0.000000 0.750000 -vt 0.000000 1.000000 -vt 1.000000 0.750000 -vt 1.000000 1.000000 -vn 0.0000 0.4226 -0.9063 -s off -f 220/313/123 223/314/123 221/315/123 -f 220/313/123 225/316/123 224/317/123 -f 219/318/123 226/319/123 225/316/123 -f 222/320/123 218/321/123 217/322/123 -f 220/313/123 224/317/123 223/314/123 -f 220/313/123 219/318/123 225/316/123 -f 219/318/123 218/321/123 226/319/123 -f 222/320/123 226/319/123 218/321/123 -o Plane -v -1.250000 1.750000 -0.625000 -v -1.250000 1.750000 -3.000000 -v -1.250000 1.376000 -2.625000 -v -1.250000 0.751000 -2.625000 -v -1.250000 0.750000 -0.625000 -v 0.500000 0.000000 -1.625000 -v 1.000000 0.500000 -2.125000 -v 1.000000 0.500000 -3.750000 -v 1.250000 0.750000 -3.750000 -v 1.250000 0.750000 -0.625000 -v 0.500000 0.000000 -0.625000 -v 1.250000 1.750000 -3.000000 -v 1.250000 1.750000 -0.625000 -v 1.250000 1.625000 -3.750000 -v 1.250000 1.750000 -3.375000 -v -0.500000 0.000000 -0.625000 -v -0.500000 0.000000 -1.625000 -v -1.000000 0.500000 -2.625000 -v -1.000000 0.500000 -2.125000 -v 1.000000 1.750000 -3.375000 -v 1.000000 1.750000 -3.000000 -v -1.250000 0.750000 -3.750000 -v -1.250000 0.751000 -3.625000 -v -1.250000 1.376000 -3.625000 -v -1.250000 1.625000 -3.750000 -v -1.250000 1.750000 -3.375000 -v -1.000000 0.500000 -3.750000 -v -1.000000 0.501000 -3.625000 -v -1.312500 0.501000 -3.500000 -v -1.312500 0.501000 -2.750000 -v -1.312500 0.626000 -2.750000 -v -1.312500 0.626000 -3.500000 -v -1.312500 0.751000 -3.500000 -v -1.312500 0.751000 -2.750000 -v -1.312500 0.876000 -2.750000 -v -1.312500 0.876000 -3.500000 -v -1.312500 1.001000 -3.500000 -v -1.312500 1.001000 -2.750000 -v -1.312500 1.126000 -2.750000 -v -1.312500 1.126000 -3.500000 -v -1.312500 1.376000 -3.625000 -v -1.312500 1.251000 -3.500000 -v -1.312500 1.251000 -2.750000 -v -1.312500 1.376000 -2.625000 -v -1.312500 0.251000 -3.625000 -v -1.312500 0.251000 -2.625000 -v -1.312500 0.376000 -2.750000 -v -1.312500 0.376000 -3.500000 -v -1.187500 1.001000 -3.500000 -v -1.187500 1.001000 -2.750000 -v -1.187500 0.876000 -3.500000 -v -1.187500 0.626000 -2.750000 -v -1.187500 0.626000 -3.500000 -v -1.187500 0.751000 -3.500000 -v -1.187500 1.251000 -3.500000 -v -1.187500 1.126000 -3.500000 -v -1.187500 1.126000 -2.750000 -v -1.187500 1.251000 -2.750000 -v -1.187500 0.876000 -2.750000 -v -1.187500 0.751000 -2.750000 -v -1.187500 0.376000 -3.500000 -v -1.187500 0.376000 -2.750000 -v -1.187500 0.501000 -2.750000 -v -1.187500 0.501000 -3.500000 -v 1.000000 0.750000 -3.750000 -v 1.000000 1.625000 -3.750000 -v -1.000000 1.625000 -3.750000 -v -1.000000 0.750000 -3.750000 -v -1.000000 1.750000 -3.375000 -v -1.000000 1.750000 -3.000000 -v -0.500000 2.500000 -2.625000 -v 0.500000 2.500000 -2.625000 -v 0.500000 2.250000 -2.750000 -v -0.500000 2.250000 -2.750000 -v -0.344030 0.708152 -0.175597 -v -0.424630 0.633153 -0.128904 -v -0.388541 0.618205 -0.128904 -v -0.328091 0.674453 -0.163924 -v -0.420670 0.523129 -0.082211 -v -0.334466 0.442528 -0.062870 -v -0.320918 0.475236 -0.079378 -v -0.385571 0.535686 -0.093884 -v -0.216518 0.438567 -0.082211 -v -0.135918 0.513565 -0.128904 -v -0.172007 0.528513 -0.128904 -v -0.232457 0.472265 -0.093884 -v -0.139879 0.623590 -0.175597 -v -0.174978 0.611032 -0.163924 -v -0.226082 0.704190 -0.194938 -v -0.239630 0.671482 -0.178429 -v -0.208096 0.543462 -0.128904 -v -0.210077 0.598474 -0.152250 -v -0.253178 0.638775 -0.161921 -v -0.312152 0.640755 -0.152250 -v -0.352451 0.603256 -0.128904 -v -0.350471 0.548244 -0.105557 -v -0.307370 0.507944 -0.095887 -v -0.248396 0.505963 -0.105557 -v -0.222349 0.496668 -0.037240 -v -0.161900 0.552916 -0.072260 -v -0.197989 0.567865 -0.072260 -v -0.238288 0.530366 -0.048913 -v -0.164869 0.635435 -0.107280 -v -0.199968 0.622877 -0.095606 -v -0.229523 0.695885 -0.121785 -v -0.243071 0.663178 -0.105277 -v -0.317984 0.698857 -0.107280 -v -0.302044 0.665158 -0.095606 -v -0.378433 0.642608 -0.072260 -v -0.342344 0.627659 -0.072260 -v -0.375462 0.560089 -0.037240 -v -0.340364 0.572647 -0.048913 -v -0.310810 0.499639 -0.022734 -v -0.297262 0.532347 -0.039243 -v -0.391169 0.267836 0.136894 -v -0.014465 0.192905 0.136894 -v -0.014465 0.302280 -0.081856 -v -0.349313 0.368885 -0.081856 -v -0.025414 0.247242 -0.109375 -v -0.360261 0.313848 -0.109375 -v -0.025414 0.137868 0.109375 -v -0.402117 0.212799 0.109375 -v 0.230970 1.345671 -0.500000 -v 0.095671 1.480970 -0.500000 -v 0.071753 1.423227 -0.500000 -v 0.173227 1.321753 -0.500000 -v -0.047836 1.365485 -0.500000 -v -0.115485 1.297835 -0.500000 -v -0.115485 1.202165 -0.500000 -v -0.047836 1.134515 -0.500000 -v 0.047834 1.134515 -0.500000 -v 0.115485 1.202165 -0.500000 -v 0.115485 1.297835 -0.500000 -v 0.047834 1.365485 -0.500000 -v 0.230970 1.154329 -0.500000 -v 0.173227 1.178247 -0.500000 -v 0.095671 1.019030 -0.500000 -v 0.071753 1.076773 -0.500000 -v -0.095671 1.019030 -0.500000 -v -0.071753 1.076773 -0.500000 -v -0.230970 1.154329 -0.500000 -v -0.173227 1.178247 -0.500000 -v -0.230970 1.345671 -0.500000 -v -0.173227 1.321753 -0.500000 -v -0.095671 1.480970 -0.500000 -v -0.071753 1.423227 -0.500000 -v 0.115485 1.297835 -0.375000 -v 0.173227 1.321753 -0.375000 -v 0.071753 1.423227 -0.375000 -v 0.047834 1.365485 -0.375000 -v 0.115485 1.202165 -0.375000 -v 0.173227 1.178247 -0.375000 -v 0.047834 1.134515 -0.375000 -v 0.071753 1.076773 -0.375000 -v -0.047836 1.134515 -0.375000 -v -0.071753 1.076773 -0.375000 -v -0.115485 1.202165 -0.375000 -v -0.173227 1.178247 -0.375000 -v -0.115485 1.297835 -0.375000 -v -0.173227 1.321753 -0.375000 -v -0.047836 1.365485 -0.375000 -v -0.071753 1.423227 -0.375000 -v 0.500000 2.500000 -0.625000 -v -0.500000 2.500000 -0.625000 -v 1.039364 1.680519 -0.625000 -v 1.125000 1.250000 -0.625000 -v 1.039364 0.819481 -0.625000 -v 0.795495 0.454505 -0.625000 -v 0.430519 0.210635 -0.625000 -v 0.000000 0.125000 -0.625000 -v -0.430519 0.210636 -0.625000 -v -0.795495 0.454505 -0.625000 -v -1.039364 0.819481 -0.625000 -v -1.125000 1.250000 -0.625000 -v -1.039364 1.680519 -0.625000 -v -1.000000 1.645607 -3.832107 -v -1.000000 0.938500 -4.125000 -v -1.000000 0.231393 -3.832107 -v -1.000000 -0.061500 -3.125000 -v -1.000000 0.231393 -2.417893 -v -1.000000 0.938500 -2.125000 -v -1.000000 1.645607 -2.417893 -v -1.000000 1.938500 -3.125000 -v -1.000000 0.251000 -2.625000 -v -1.000000 1.376000 -2.625000 -v -1.000000 0.251000 -3.625000 -v -1.000000 1.376000 -3.625000 -v 1.000000 1.645607 -3.832107 -v 1.000000 1.938500 -3.125000 -v 1.000000 1.645607 -2.417893 -v 1.000000 0.938500 -2.125000 -v 1.000000 0.231393 -2.417893 -v 1.000000 -0.061500 -3.125000 -v 1.000000 0.231393 -3.832107 -v 1.000000 0.938500 -4.125000 -v 0.554916 2.356694 0.187500 -v 0.731694 2.179917 0.187500 -v 0.820084 2.268306 0.187500 -v 0.643306 2.445082 0.187500 -v 0.554916 2.356694 -0.312500 -v 0.643306 2.445082 -0.312500 -v 0.820084 2.268306 -0.312500 -v 0.731694 2.179917 -0.312500 -v -0.929916 0.518306 0.187500 -v -1.106694 0.695083 0.187500 -v -1.195084 0.606694 0.187500 -v -1.018306 0.429918 0.187500 -v -0.929916 0.518306 -0.312500 -v -1.018306 0.429918 -0.312500 -v -1.195084 0.606694 -0.312500 -v -1.106694 0.695083 -0.312500 -v 1.106694 0.695082 0.187500 -v 0.929916 0.518306 0.187500 -v 1.018306 0.429917 0.187500 -v 1.195082 0.606694 0.187500 -v 1.106694 0.695082 -0.312500 -v 1.195082 0.606694 -0.312500 -v 1.018306 0.429917 -0.312500 -v 0.929916 0.518306 -0.312500 -v -0.731694 2.179918 0.187500 -v -0.554916 2.356694 0.187500 -v -0.643306 2.445083 0.187500 -v -0.820082 2.268306 0.187500 -v -0.731694 2.179918 -0.312500 -v -0.820082 2.268306 -0.312500 -v -0.643306 2.445083 -0.312500 -v -0.554916 2.356694 -0.312500 -v 0.554916 2.356694 -2.375000 -v 0.731694 2.179917 -2.375000 -v 0.820084 2.268306 -2.375000 -v 0.643306 2.445082 -2.375000 -v 0.554916 2.356694 -2.750000 -v 0.643306 2.445082 -2.750000 -v 0.820084 2.268306 -2.875000 -v 0.731694 2.179917 -2.875000 -v -0.500000 2.250000 -2.625000 -v -1.000000 1.750000 -2.875000 -v 1.000000 1.750000 -2.875000 -v 0.500000 2.250000 -2.625000 -v 0.500000 2.215740 -2.715952 -v 0.500000 1.819230 -2.900848 -v 0.500000 1.872057 -3.014137 -v 0.500000 2.268567 -2.829241 -v -0.500000 2.268567 -2.829241 -v -0.500000 1.872057 -3.014137 -v -0.500000 1.819230 -2.900848 -v -0.500000 2.215740 -2.715952 -v -0.312500 2.438500 -2.750000 -v 0.312500 2.438500 -2.750000 -v -0.312500 2.385673 -2.636712 -v 0.312500 2.385673 -2.636712 -v -0.750000 1.887724 -3.247583 -v 0.750000 1.887724 -3.247583 -v 0.750000 2.039915 -3.445922 -v -0.750000 2.039915 -3.445922 -v 0.750000 1.544192 -3.511185 -v 0.750000 1.696383 -3.709523 -v 0.750000 1.944244 -3.676892 -v 0.750000 1.639863 -3.280215 -v -0.750000 1.944244 -3.676892 -v -0.750000 1.696383 -3.709523 -v -0.750000 1.544192 -3.511185 -v -0.750000 1.639863 -3.280215 -v -0.500000 0.125000 -2.750000 -v 0.500000 0.125000 -2.750000 -v 0.500000 0.125000 -1.750000 -v -0.500000 0.125000 -1.750000 -v 0.500000 0.500000 -2.750000 -v 0.500000 0.500000 -1.750000 -v -0.500000 0.500000 -1.750000 -v -0.500000 0.500000 -2.750000 -v -0.625000 0.187500 -4.125000 -v -0.625000 1.687500 -4.125000 -v 0.625000 1.687500 -4.125000 -v 0.625000 0.187500 -4.125000 -v 0.625000 1.687500 -3.625000 -v 0.625000 0.187500 -3.625000 -v -0.625000 0.187500 -3.625000 -v -0.625000 1.687500 -3.625000 -v -0.500000 1.562500 -4.875000 -v 0.500000 1.562500 -4.875000 -v 0.500000 0.312500 -4.875000 -v -0.500000 0.312500 -4.875000 -v 0.500000 0.312500 -4.125000 -v -0.500000 0.312500 -4.125000 -v -0.500000 1.562500 -4.125000 -v 0.500000 1.562500 -4.125000 -v 1.375000 1.658494 -2.187500 -v 0.875000 1.658494 -2.187500 -v 0.875000 1.658494 -2.437500 -v 1.375000 1.658494 -2.437500 -v 1.375000 2.091506 -2.187500 -v 0.875000 2.091506 -2.187500 -v 0.875000 1.875000 -2.062500 -v 1.375000 1.875000 -2.062500 -v 1.375000 1.875000 -2.562500 -v 0.875000 1.875000 -2.562500 -v 0.875000 2.091506 -2.437500 -v 1.375000 2.091506 -2.437500 -v 1.375000 1.983253 -2.375000 -v 1.375000 1.983253 -2.250000 -v 1.562500 1.983253 -2.250000 -v 1.562500 1.983253 -2.375000 -v 1.375000 1.766747 -2.250000 -v 1.375000 1.766747 -2.375000 -v 1.562500 1.766747 -2.375000 -v 1.562500 1.766747 -2.250000 -v 1.375000 1.875000 -2.187500 -v 1.562500 1.875000 -2.187500 -v 1.375000 1.875000 -2.437500 -v 1.562500 1.875000 -2.437500 -v 1.562500 1.712620 -2.406250 -v 1.562500 1.712620 -2.218750 -v 1.562500 1.875000 -2.125000 -v 1.562500 2.037380 -2.218750 -v 1.562500 2.037380 -2.406250 -v 1.562500 1.875000 -2.500000 -v 2.312500 1.875000 -2.500000 -v 2.312500 1.712620 -2.406250 -v 2.312500 1.712620 -2.218750 -v 2.312500 1.875000 -2.125000 -v 2.312500 2.037380 -2.218750 -v 2.312500 2.037380 -2.406250 -v 2.312500 1.875000 -2.187500 -v 2.312500 1.983253 -2.250000 -v 2.312500 1.983253 -2.375000 -v 2.312500 1.875000 -2.437500 -v 2.312500 1.766747 -2.375000 -v 2.312500 1.766747 -2.250000 -v 2.500000 1.766747 -2.250000 -v 2.500000 1.875000 -2.187500 -v 2.500000 1.983253 -2.250000 -v 2.500000 1.983253 -2.375000 -v 2.500000 1.766747 -2.375000 -v 2.500000 1.875000 -2.437500 -v 2.500000 1.875000 -2.062500 -v 2.500000 2.091506 -2.187500 -v 2.500000 2.091506 -2.437500 -v 2.500000 1.875000 -2.562500 -v 2.500000 1.658494 -2.437500 -v 2.500000 1.658494 -2.187500 -v 2.625000 2.091506 -2.187500 -v 2.625000 2.091506 -2.437500 -v 2.625000 1.658494 -2.437500 -v 2.625000 1.658494 -2.187500 -v 2.625000 1.875000 -2.062500 -v 2.625000 1.875000 -2.562500 -v 2.750000 1.983253 -2.375000 -v 2.750000 1.875000 -2.437500 -v 2.750000 1.766747 -2.375000 -v 2.750000 1.766747 -2.250000 -v 2.750000 1.875000 -2.187500 -v 2.750000 1.983253 -2.250000 -v -0.187500 1.625000 -4.125000 -v 0.187500 1.625000 -4.125000 -v 0.187500 1.625000 -5.000000 -v -0.187500 1.625000 -5.000000 -v -0.187500 1.669194 -5.397748 -v -0.187500 2.022748 -5.044194 -v -0.187500 2.287913 -5.309359 -v -0.187500 2.022748 -5.574524 -v -0.187500 1.845971 -5.574524 -v 0.187500 1.250000 -5.000000 -v -0.187500 1.250000 -5.000000 -v 0.187500 1.250000 -4.125000 -v -0.187500 1.250000 -4.125000 -v -0.125000 1.625000 -4.734835 -v 0.125000 1.625000 -4.734835 -v 0.125000 1.978553 -5.088388 -v -0.125000 1.978553 -5.088388 -v -0.125000 1.359835 -5.000000 -v -0.125000 1.713388 -5.353553 -v 0.125000 1.359835 -5.000000 -v 0.125000 1.713388 -5.353553 -v 0.187500 1.669194 -5.397748 -v 0.187500 2.022748 -5.044194 -v 0.187500 2.022748 -5.574524 -v 0.187500 1.845971 -5.574524 -v 0.187500 2.287913 -5.309359 -v -0.062500 2.597272 -4.558058 -v 0.062500 2.597272 -4.558058 -v 0.062500 2.774049 -4.734835 -v -0.062500 2.774049 -4.734835 -v 0.062500 2.066942 -5.088388 -v 0.062500 2.243718 -5.265165 -v -0.062500 2.243718 -5.265165 -v -0.062500 2.066942 -5.088388 -v -0.125000 2.423342 -2.962217 -v 0.000000 2.453697 -2.948062 -v 0.216506 2.113832 -3.106544 -v 0.125000 2.030899 -3.145216 -v 0.000000 2.000544 -3.159371 -v -0.125000 2.030899 -3.145216 -v -0.216506 2.113832 -3.106544 -v -0.250000 2.227120 -3.053716 -v -0.216506 2.340409 -3.000889 -v 0.000000 2.374456 -2.778129 -v 0.000000 2.487745 -2.725302 -v 0.000000 2.566986 -2.895234 -v 0.324759 1.977947 -2.963025 -v 0.216506 2.034591 -2.936611 -v 0.324759 2.057188 -3.132957 -v 0.375000 2.227120 -3.053716 -v 0.324760 2.397053 -2.974475 -v 0.187500 2.521452 -2.916467 -v 0.324760 2.317812 -2.804543 -v 0.187500 2.442212 -2.746534 -v -0.437500 2.102596 -3.042822 -v -0.483253 2.144063 -3.023486 -v -0.500000 2.200707 -2.997072 -v -0.483253 2.257351 -2.970659 -v -0.437500 2.298818 -2.951323 -v -0.375000 2.313995 -2.944245 -v -0.312500 2.298818 -2.951323 -v -0.266747 2.257351 -2.970659 -v -0.250000 2.200707 -2.997072 -v -0.266747 2.144063 -3.023486 -v -0.312500 2.102596 -3.042822 -v -0.375000 2.087419 -3.049900 -v -1.125000 1.875000 -1.875000 -v -1.125000 1.875000 -1.625000 -v -0.625000 2.375000 -1.875000 -v -0.625000 2.375000 -2.125000 -v -0.625000 2.375000 -0.875000 -v -1.125000 1.875000 -0.875000 -v -1.125000 1.875000 -2.625000 -v -0.625000 2.375000 -2.375000 -v 1.125000 1.875000 -0.875000 -v 0.625000 2.375000 -0.875000 -v 1.125000 1.875000 -1.625000 -v 0.625000 2.375000 -1.875000 -v 0.448223 2.198223 -1.875000 -v 0.948223 1.698223 -1.625000 -v -1.036612 1.786612 -1.875000 -v -1.036612 1.786612 -2.625000 -v -0.948223 1.698223 -1.625000 -v -0.448223 2.198223 -1.875000 -v -0.536612 2.286612 -2.375000 -v -0.536612 2.286612 -2.125000 -v -0.448223 2.198223 -0.875000 -v -0.948223 1.698223 -0.875000 -v 0.948223 1.698223 -0.875000 -v 0.448223 2.198223 -0.875000 -v -0.137500 2.062500 -3.749900 -v -0.137500 1.937500 -3.749900 -v -0.137500 2.062500 -3.437400 -v -0.137500 2.187500 -3.437400 -v -0.012500 1.937500 -3.749900 -v -0.012500 2.062500 -3.437400 -v 0.137500 1.937500 -3.749900 -v 0.137500 2.062500 -3.749900 -v 0.137500 2.187500 -3.437400 -v 0.137500 2.062500 -3.437400 -v -0.012500 2.062500 -3.749900 -v -0.012500 2.187500 -3.437400 -v 0.137500 2.134191 -3.062400 -v 0.137500 2.009191 -3.062400 -v -0.012500 2.009191 -3.062400 -v -0.137500 2.009191 -3.062400 -v -0.012500 1.937500 -3.874900 -v -0.137500 1.937500 -3.874900 -v 0.137500 1.937500 -3.874900 -v 0.012500 1.937500 -3.874900 -v 0.012500 2.062500 -3.749900 -v 0.012500 1.937500 -3.749900 -v -0.012500 1.687500 -3.874900 -v -0.137500 1.687500 -3.874900 -v -0.137500 1.687500 -3.749900 -v -0.012500 1.687500 -3.749900 -v 0.137500 1.687500 -3.749900 -v 0.137500 1.687500 -3.874900 -v 0.012500 1.687500 -3.874900 -v 0.012500 1.687500 -3.749900 -v 0.012500 2.062500 -3.437400 -v 0.625000 2.001000 -3.187500 -v 0.625000 2.001000 -3.062500 -v 0.875000 2.001000 -3.062500 -v 0.875000 2.001000 -3.187500 -v 0.012500 2.187500 -3.437400 -v 0.012500 2.134191 -3.062400 -v 0.012500 2.009191 -3.062400 -v -0.137500 2.134191 -3.062400 -v -0.012500 2.134191 -3.062400 -v -0.625000 1.938500 -3.250000 -v 0.625000 1.938500 -3.250000 -v 0.625000 1.830247 -3.187500 -v -0.625000 1.830247 -3.187500 -v 0.625000 1.876000 -3.062500 -v 0.875000 1.876000 -3.062500 -v 0.625000 1.830247 -3.062500 -v -0.625000 1.830247 -3.062500 -v 0.625000 1.876000 -3.187500 -v 0.875000 1.876000 -3.187500 -v 0.625000 1.938500 -3.000000 -v -0.625000 1.938500 -3.000000 -v 0.625000 2.046753 -3.062500 -v -0.625000 2.046753 -3.062500 -v 0.625000 2.046753 -3.187500 -v -0.625000 2.046753 -3.187500 -v 1.000000 2.001000 -3.187500 -v 1.000000 2.001000 -3.062500 -v 0.875000 2.126000 -3.187500 -v 1.000000 2.126000 -3.187500 -v 0.875000 2.126000 -3.312500 -v 1.000000 2.126000 -3.312500 -v 1.000000 2.126000 -3.062500 -v 0.875000 2.126000 -3.062500 -v 1.000000 2.251000 -3.187500 -v 0.875000 2.251000 -3.187500 -v 0.875000 2.251000 -3.312500 -v 1.000000 2.251000 -3.312500 -v 1.000000 2.001000 -3.937500 -v 0.875000 2.001000 -3.937500 -v 1.000000 1.876000 -3.937500 -v 1.000000 1.876000 -4.062500 -v 0.875000 1.876000 -3.937500 -v 0.875000 1.876000 -4.062500 -v 0.875000 1.626000 -4.062500 -v 0.875000 1.626000 -3.937500 -v 0.875000 1.501000 -3.937500 -v 0.625000 1.626000 -3.937500 -v 0.625000 1.501000 -3.937500 -v 1.000000 1.626000 -3.937500 -v 1.000000 1.626000 -4.062500 -v 0.875000 1.501000 -4.062500 -v 0.625000 1.626000 -4.062500 -v 0.625000 1.501000 -4.062500 -v 0.110485 0.764515 -0.750000 -v 0.156250 0.875000 -0.750000 -v 0.156250 0.737706 -0.418544 -v 0.110485 0.659581 -0.496669 -v 0.110485 0.985485 -0.750000 -v 0.000000 1.031250 -0.750000 -v 0.000000 0.848192 -0.308058 -v 0.110485 0.815831 -0.340419 -v -0.110486 0.985485 -0.750000 -v -0.156250 0.875000 -0.750000 -v -0.156250 0.737706 -0.418544 -v -0.110486 0.815831 -0.340419 -v -0.110486 0.764515 -0.750000 -v -0.110486 0.659581 -0.496669 -v 0.000000 0.718750 -0.750000 -v 0.000000 0.627221 -0.529029 -v -0.156250 0.585633 -0.316931 -v -0.110486 0.627914 -0.214856 -v 0.000000 0.645427 -0.172575 -v 0.110485 0.627914 -0.214856 -v 0.156250 0.585633 -0.316931 -v 0.110485 0.543352 -0.419007 -v 0.000000 0.525838 -0.461288 -v -0.110486 0.543352 -0.419007 -v 0.110485 0.406250 -0.391735 -v 0.000000 0.406250 -0.437500 -v -0.110486 0.406250 -0.391735 -v -0.156250 0.406250 -0.281250 -v -0.110486 0.406250 -0.170765 -v 0.000000 0.406250 -0.125000 -v 0.110485 0.406250 -0.170765 -v 0.156250 0.406250 -0.281250 -v -0.110486 0.184586 -0.214856 -v 0.000000 0.167073 -0.172575 -v 0.110485 0.184586 -0.214856 -v 0.156250 0.226867 -0.316932 -v 0.110485 0.269148 -0.419007 -v 0.000000 0.286661 -0.461288 -v -0.110486 0.269148 -0.419007 -v -0.156250 0.226867 -0.316932 -v -0.196566 0.367147 -0.468769 -v -0.200528 0.477172 -0.515462 -v -0.286731 0.557772 -0.534803 -v -0.404678 0.561734 -0.515462 -v -0.485279 0.486735 -0.468769 -v -0.481318 0.376710 -0.422076 -v -0.395115 0.296110 -0.402735 -v -0.277166 0.292148 -0.422076 -v 0.230970 1.345671 -0.750000 -v 0.095671 1.480970 -0.750000 -v 0.095671 1.019030 -0.750000 -v 0.230970 1.154329 -0.750000 -v -0.230970 1.154329 -0.750000 -v -0.095671 1.019030 -0.750000 -v -0.095671 1.480970 -0.750000 -v -0.230970 1.345671 -0.750000 -v 0.000000 1.921303 -2.989438 -v -0.125000 1.951658 -2.975283 -v -0.250000 2.147880 -2.883784 -v -0.216506 2.261168 -2.830956 -v 0.125000 1.951658 -2.975283 -v -0.216506 2.034591 -2.936611 -v -0.125000 2.344101 -2.792284 -v 0.375000 2.147880 -2.883783 -v -0.375000 2.261168 -2.830956 -v -0.312500 2.245990 -2.838034 -v -0.500000 2.147880 -2.883784 -v -0.483253 2.204524 -2.857370 -v -0.266747 2.091235 -2.910197 -v -0.312500 2.049769 -2.929533 -v -0.375000 2.034591 -2.936611 -v -0.437500 2.049769 -2.929533 -v -0.266747 2.204524 -2.857370 -v -0.437500 2.245990 -2.838034 -v -0.483253 2.091235 -2.910197 -v -0.250000 2.147880 -2.883784 -v 0.911612 2.036612 -1.125000 -v 0.875000 2.125000 -1.125000 -v 0.823223 2.073223 -0.948223 -v 0.867418 1.992418 -0.974112 -v 0.786612 2.161612 -1.125000 -v 0.698223 2.125000 -1.125000 -v 0.672335 2.099112 -1.036612 -v 0.742418 2.117417 -0.974112 -v -0.786612 2.161612 -1.125000 -v -0.742418 2.117417 -0.974112 -v -0.672335 2.099112 -1.036612 -v -0.698223 2.125000 -1.125000 -v -0.911612 2.036612 -1.125000 -v -0.867418 1.992418 -0.974112 -v -0.823223 2.073223 -0.948223 -v -0.875000 2.125000 -1.125000 -v -0.875000 1.948223 -1.125000 -v -0.849112 1.922335 -1.036612 -v -0.698223 1.948223 -0.875000 -v -0.635723 2.010723 -0.911612 -v -0.786612 1.859835 -1.000000 -v -0.760723 1.885723 -0.911612 -v -0.609835 2.036612 -1.000000 -v -0.609835 2.338388 -1.125000 -v -0.565641 2.294194 -0.974112 -v -0.495558 2.275888 -1.036612 -v -0.521447 2.301777 -1.125000 -v -0.734835 2.213388 -1.125000 -v -0.690641 2.169194 -0.974112 -v -0.646447 2.250000 -0.948223 -v -0.698223 2.301777 -1.125000 -v -0.698223 2.125000 -1.125000 -v -0.672335 2.099112 -1.036612 -v -0.521447 2.125000 -0.875000 -v -0.458947 2.187500 -0.911612 -v -0.609835 2.036612 -1.000000 -v -0.583947 2.062500 -0.911612 -v -0.433058 2.213388 -1.000000 -v -0.963388 1.984835 -1.125000 -v -0.919194 1.940641 -0.974112 -v -0.849112 1.922335 -1.036612 -v -0.875000 1.948223 -1.125000 -v -1.088388 1.859835 -1.125000 -v -1.044194 1.815641 -0.974112 -v -1.000000 1.896446 -0.948223 -v -1.051777 1.948223 -1.125000 -v -1.051777 1.771446 -1.125000 -v -1.025888 1.745558 -1.036612 -v -0.875000 1.771446 -0.875000 -v -0.812500 1.833946 -0.911612 -v -0.963388 1.683058 -1.000000 -v -0.937500 1.708946 -0.911612 -v -0.786612 1.859835 -1.000000 -v -0.698223 2.125000 -1.812500 -v -0.786612 2.161612 -1.812500 -v -0.521447 2.301777 -1.875000 -v -0.609835 2.338388 -1.875000 -v -0.875000 2.125000 -1.812500 -v -0.911612 2.036612 -1.812500 -v -0.875000 1.948223 -1.750000 -v -0.963388 1.984835 -1.750000 -v -0.698223 2.301777 -1.875000 -v -0.875000 1.948223 -1.812500 -v -0.734835 2.213388 -1.875000 -v -1.051777 1.948223 -1.750000 -v -1.088388 1.859835 -1.750000 -v -0.698223 2.125000 -1.875000 -v -1.051777 1.771446 -1.750000 -v 0.875000 1.948223 -1.125000 -v 0.849112 1.922335 -1.036612 -v 0.635723 2.010723 -0.911612 -v 0.698223 1.948223 -0.875000 -v 0.760723 1.885723 -0.911612 -v 0.786612 1.859835 -1.000000 -v 0.609835 2.036612 -1.000000 -v 0.609835 2.338388 -1.125000 -v 0.521447 2.301777 -1.125000 -v 0.495558 2.275888 -1.036612 -v 0.565641 2.294194 -0.974112 -v 0.734835 2.213388 -1.125000 -v 0.698223 2.301777 -1.125000 -v 0.646447 2.250000 -0.948223 -v 0.690641 2.169194 -0.974112 -v 0.698223 2.125000 -1.125000 -v 0.672335 2.099112 -1.036612 -v 0.458947 2.187500 -0.911612 -v 0.521447 2.125000 -0.875000 -v 0.583947 2.062500 -0.911612 -v 0.609835 2.036612 -1.000000 -v 0.433058 2.213388 -1.000000 -v 0.963388 1.984835 -1.125000 -v 0.875000 1.948223 -1.125000 -v 0.849112 1.922335 -1.036612 -v 0.919194 1.940641 -0.974112 -v 1.088388 1.859835 -1.125000 -v 1.051777 1.948223 -1.125000 -v 1.000000 1.896446 -0.948223 -v 1.044194 1.815641 -0.974112 -v 1.051777 1.771446 -1.125000 -v 1.025888 1.745558 -1.036612 -v 0.812500 1.833946 -0.911612 -v 0.875000 1.771446 -0.875000 -v 0.937500 1.708946 -0.911612 -v 0.963388 1.683058 -1.000000 -v 0.786612 1.859835 -1.000000 -v 0.786612 2.161612 -1.812500 -v 0.698223 2.125000 -1.812500 -v 0.609835 2.338388 -1.875000 -v 0.521447 2.301777 -1.875000 -v 0.875000 2.125000 -1.812500 -v 0.911612 2.036612 -1.812500 -v 0.963388 1.984835 -1.750000 -v 0.875000 1.948223 -1.750000 -v 0.698223 2.301777 -1.875000 -v 0.875000 1.948223 -1.812500 -v 0.734835 2.213388 -1.875000 -v 1.051777 1.948223 -1.750000 -v 1.088388 1.859835 -1.750000 -v 0.698223 2.125000 -1.875000 -v 1.051777 1.771446 -1.750000 -v 1.000000 0.500000 -2.625000 -v 0.344030 1.791848 -0.175597 -v 0.424630 1.866847 -0.128904 -v 0.388541 1.881795 -0.128904 -v 0.328091 1.825547 -0.163924 -v 0.420670 1.976871 -0.082211 -v 0.334466 2.057472 -0.062870 -v 0.320918 2.024764 -0.079378 -v 0.385571 1.964314 -0.093884 -v 0.216518 2.061433 -0.082211 -v 0.135918 1.986435 -0.128904 -v 0.172007 1.971487 -0.128904 -v 0.232457 2.027735 -0.093884 -v 0.139879 1.876410 -0.175597 -v 0.174978 1.888968 -0.163924 -v 0.226082 1.795810 -0.194938 -v 0.239630 1.828518 -0.178429 -v 0.208096 1.956538 -0.128904 -v 0.210077 1.901526 -0.152250 -v 0.253178 1.861225 -0.161921 -v 0.312152 1.859245 -0.152250 -v 0.352451 1.896744 -0.128904 -v 0.350472 1.951756 -0.105557 -v 0.307370 1.992056 -0.095887 -v 0.248396 1.994037 -0.105557 -v 0.222349 2.003332 -0.037240 -v 0.161900 1.947084 -0.072260 -v 0.197989 1.932135 -0.072260 -v 0.238288 1.969634 -0.048913 -v 0.164869 1.864565 -0.107280 -v 0.199968 1.877123 -0.095606 -v 0.229523 1.804115 -0.121785 -v 0.243071 1.836822 -0.105277 -v 0.317984 1.801143 -0.107280 -v 0.302044 1.834842 -0.095606 -v 0.378433 1.857392 -0.072260 -v 0.342344 1.872341 -0.072260 -v 0.375462 1.939911 -0.037240 -v 0.340365 1.927353 -0.048913 -v 0.310810 2.000361 -0.022734 -v 0.297262 1.967653 -0.039243 -v -0.110485 1.735485 -0.750000 -v -0.156250 1.625000 -0.750000 -v -0.156250 1.762294 -0.418544 -v -0.110485 1.840419 -0.496669 -v -0.110485 1.514515 -0.750000 -v 0.000000 1.468750 -0.750000 -v 0.000000 1.651808 -0.308058 -v -0.110485 1.684169 -0.340419 -v 0.110486 1.514515 -0.750000 -v 0.156250 1.625000 -0.750000 -v 0.156250 1.762294 -0.418544 -v 0.110486 1.684169 -0.340419 -v 0.110486 1.735485 -0.750000 -v 0.110486 1.840419 -0.496669 -v 0.000000 1.781250 -0.750000 -v 0.000000 1.872779 -0.529029 -v 0.156250 1.914367 -0.316931 -v 0.110486 1.872086 -0.214856 -v 0.000000 1.854573 -0.172575 -v -0.110485 1.872086 -0.214856 -v -0.156250 1.914367 -0.316931 -v -0.110485 1.956648 -0.419007 -v 0.000000 1.974162 -0.461288 -v 0.110486 1.956648 -0.419007 -v -0.110485 2.093750 -0.391735 -v 0.000000 2.093750 -0.437500 -v 0.110486 2.093750 -0.391735 -v 0.156250 2.093750 -0.281250 -v 0.110486 2.093750 -0.170765 -v 0.000000 2.093750 -0.125000 -v -0.110485 2.093750 -0.170765 -v -0.156250 2.093750 -0.281250 -v 0.110486 2.315414 -0.214856 -v 0.000000 2.332927 -0.172575 -v -0.110485 2.315414 -0.214856 -v -0.156250 2.273133 -0.316932 -v -0.110485 2.230852 -0.419007 -v 0.000000 2.213339 -0.461288 -v 0.110486 2.230852 -0.419007 -v 0.156250 2.273133 -0.316932 -v 0.196566 2.132853 -0.468769 -v 0.200528 2.022828 -0.515462 -v 0.286731 1.942228 -0.534803 -v 0.404678 1.938266 -0.515462 -v 0.485279 2.013265 -0.468769 -v 0.481318 2.123290 -0.422076 -v 0.395115 2.203890 -0.402735 -v 0.277166 2.207852 -0.422076 -v -0.541848 1.594031 -0.175597 -v -0.616847 1.674630 -0.128904 -v -0.631795 1.638541 -0.128904 -v -0.575547 1.578091 -0.163924 -v -0.726871 1.670670 -0.082211 -v -0.807472 1.584466 -0.062870 -v -0.774764 1.570918 -0.079378 -v -0.714314 1.635571 -0.093884 -v -0.811433 1.466519 -0.082211 -v -0.736435 1.385918 -0.128904 -v -0.721487 1.422007 -0.128904 -v -0.777735 1.482457 -0.093884 -v -0.626410 1.389879 -0.175597 -v -0.638968 1.424978 -0.163924 -v -0.545810 1.476082 -0.194938 -v -0.578518 1.489630 -0.178429 -v -0.706538 1.458096 -0.128904 -v -0.651526 1.460078 -0.152250 -v -0.611225 1.503178 -0.161921 -v -0.609245 1.562152 -0.152250 -v -0.646744 1.602452 -0.128904 -v -0.701756 1.600472 -0.105557 -v -0.742056 1.557370 -0.095887 -v -0.744037 1.498396 -0.105557 -v -0.753332 1.472349 -0.037240 -v -0.697084 1.411900 -0.072260 -v -0.682135 1.447989 -0.072260 -v -0.719634 1.488288 -0.048913 -v -0.614565 1.414870 -0.107280 -v -0.627123 1.449969 -0.095606 -v -0.554115 1.479523 -0.121785 -v -0.586822 1.493071 -0.105277 -v -0.551143 1.567984 -0.107280 -v -0.584842 1.552044 -0.095606 -v -0.607392 1.628433 -0.072260 -v -0.622341 1.592345 -0.072260 -v -0.689911 1.625462 -0.037240 -v -0.677353 1.590365 -0.048913 -v -0.750361 1.560810 -0.022734 -v -0.717653 1.547262 -0.039243 -v -0.485485 1.139515 -0.750000 -v -0.375000 1.093750 -0.750000 -v -0.512294 1.093750 -0.418544 -v -0.590419 1.139515 -0.496669 -v -0.264515 1.139515 -0.750000 -v -0.218750 1.250000 -0.750000 -v -0.401808 1.250000 -0.308058 -v -0.434169 1.139515 -0.340419 -v -0.264515 1.360486 -0.750000 -v -0.375000 1.406250 -0.750000 -v -0.512294 1.406250 -0.418544 -v -0.434169 1.360486 -0.340419 -v -0.485485 1.360486 -0.750000 -v -0.590419 1.360486 -0.496669 -v -0.531250 1.250000 -0.750000 -v -0.622779 1.250000 -0.529029 -v -0.664367 1.406250 -0.316931 -v -0.622086 1.360486 -0.214856 -v -0.604573 1.250000 -0.172575 -v -0.622086 1.139515 -0.214856 -v -0.664367 1.093750 -0.316931 -v -0.706648 1.139515 -0.419007 -v -0.724162 1.250000 -0.461288 -v -0.706648 1.360486 -0.419007 -v -0.843750 1.139515 -0.391735 -v -0.843750 1.250000 -0.437500 -v -0.843750 1.360486 -0.391735 -v -0.843750 1.406250 -0.281250 -v -0.843750 1.360486 -0.170765 -v -0.843750 1.250000 -0.125000 -v -0.843750 1.139515 -0.170765 -v -0.843750 1.093750 -0.281250 -v -1.065414 1.360486 -0.214856 -v -1.082927 1.250000 -0.172575 -v -1.065414 1.139515 -0.214856 -v -1.023133 1.093750 -0.316932 -v -0.980852 1.139515 -0.419007 -v -0.963339 1.250000 -0.461288 -v -0.980852 1.360486 -0.419007 -v -1.023133 1.406250 -0.316932 -v -0.882853 1.446566 -0.468769 -v -0.772828 1.450528 -0.515462 -v -0.692228 1.536731 -0.534803 -v -0.688266 1.654678 -0.515462 -v -0.763265 1.735279 -0.468769 -v -0.873290 1.731318 -0.422076 -v -0.953890 1.645115 -0.402735 -v -0.957852 1.527166 -0.422076 -v 0.541848 0.905970 -0.175597 -v 0.616847 0.825370 -0.128904 -v 0.631795 0.861459 -0.128904 -v 0.575547 0.921909 -0.163924 -v 0.726871 0.829330 -0.082211 -v 0.807472 0.915534 -0.062870 -v 0.774764 0.929082 -0.079378 -v 0.714314 0.864429 -0.093884 -v 0.811433 1.033482 -0.082211 -v 0.736435 1.114082 -0.128904 -v 0.721487 1.077993 -0.128904 -v 0.777735 1.017543 -0.093884 -v 0.626410 1.110121 -0.175597 -v 0.638968 1.075022 -0.163924 -v 0.545810 1.023918 -0.194938 -v 0.578518 1.010370 -0.178429 -v 0.706538 1.041904 -0.128904 -v 0.651526 1.039923 -0.152250 -v 0.611225 0.996822 -0.161921 -v 0.609245 0.937848 -0.152250 -v 0.646744 0.897549 -0.128904 -v 0.701756 0.899529 -0.105557 -v 0.742056 0.942630 -0.095887 -v 0.744037 1.001604 -0.105557 -v 0.753332 1.027651 -0.037240 -v 0.697084 1.088100 -0.072260 -v 0.682135 1.052011 -0.072260 -v 0.719634 1.011712 -0.048913 -v 0.614565 1.085131 -0.107280 -v 0.627123 1.050032 -0.095606 -v 0.554115 1.020477 -0.121785 -v 0.586822 1.006929 -0.105277 -v 0.551143 0.932016 -0.107280 -v 0.584842 0.947956 -0.095606 -v 0.607392 0.871567 -0.072260 -v 0.622341 0.907656 -0.072260 -v 0.689911 0.874539 -0.037240 -v 0.677353 0.909636 -0.048913 -v 0.750361 0.939190 -0.022734 -v 0.717653 0.952738 -0.039243 -v 0.485485 1.360485 -0.750000 -v 0.375000 1.406250 -0.750000 -v 0.512294 1.406250 -0.418544 -v 0.590419 1.360485 -0.496669 -v 0.264515 1.360485 -0.750000 -v 0.218750 1.250000 -0.750000 -v 0.401808 1.250000 -0.308058 -v 0.434169 1.360485 -0.340419 -v 0.264515 1.139514 -0.750000 -v 0.375000 1.093750 -0.750000 -v 0.512294 1.093750 -0.418544 -v 0.434169 1.139514 -0.340419 -v 0.485485 1.139514 -0.750000 -v 0.590419 1.139514 -0.496669 -v 0.531250 1.250000 -0.750000 -v 0.622779 1.250000 -0.529029 -v 0.664367 1.093750 -0.316931 -v 0.622086 1.139514 -0.214856 -v 0.604573 1.250000 -0.172575 -v 0.622086 1.360485 -0.214856 -v 0.664367 1.406250 -0.316931 -v 0.706648 1.360485 -0.419007 -v 0.724162 1.250000 -0.461288 -v 0.706648 1.139514 -0.419007 -v 0.843750 1.360485 -0.391735 -v 0.843750 1.250000 -0.437500 -v 0.843750 1.139514 -0.391735 -v 0.843750 1.093750 -0.281250 -v 0.843750 1.139514 -0.170765 -v 0.843750 1.250000 -0.125000 -v 0.843750 1.360485 -0.170765 -v 0.843750 1.406250 -0.281250 -v 1.065414 1.139514 -0.214856 -v 1.082927 1.250000 -0.172575 -v 1.065414 1.360485 -0.214856 -v 1.023133 1.406250 -0.316932 -v 0.980852 1.360485 -0.419007 -v 0.963339 1.250000 -0.461288 -v 0.980852 1.139514 -0.419007 -v 1.023133 1.093750 -0.316932 -v 0.882853 1.053434 -0.468769 -v 0.772828 1.049472 -0.515462 -v 0.692228 0.963269 -0.534803 -v 0.688266 0.845322 -0.515462 -v 0.763265 0.764721 -0.468769 -v 0.873290 0.768682 -0.422076 -v 0.953890 0.854885 -0.402735 -v 0.957852 0.972834 -0.422076 -v -0.626411 1.110122 -0.175597 -v -0.736436 1.114082 -0.128904 -v -0.721487 1.077994 -0.128904 -v -0.638968 1.075022 -0.163924 -v -0.811434 1.033483 -0.082211 -v -0.807472 0.915534 -0.062870 -v -0.774764 0.929083 -0.079378 -v -0.777736 1.017543 -0.093884 -v -0.726871 0.829332 -0.082211 -v -0.616847 0.825370 -0.128904 -v -0.631795 0.861459 -0.128904 -v -0.714314 0.864430 -0.093884 -v -0.541848 0.905971 -0.175597 -v -0.575547 0.921910 -0.163924 -v -0.545810 1.023918 -0.194938 -v -0.578518 1.010370 -0.178429 -v -0.646744 0.897548 -0.128904 -v -0.609246 0.937849 -0.152250 -v -0.611225 0.996822 -0.161921 -v -0.651526 1.039924 -0.152250 -v -0.706538 1.041904 -0.128904 -v -0.744037 1.001604 -0.105557 -v -0.742056 0.942631 -0.095887 -v -0.701756 0.899529 -0.105557 -v -0.689911 0.874538 -0.037240 -v -0.607393 0.871567 -0.072260 -v -0.622341 0.907657 -0.072260 -v -0.677353 0.909637 -0.048913 -v -0.551143 0.932017 -0.107280 -v -0.584842 0.947956 -0.095606 -v -0.554116 1.020479 -0.121785 -v -0.586823 1.006931 -0.105277 -v -0.614565 1.085132 -0.107280 -v -0.627123 1.050032 -0.095606 -v -0.697084 1.088102 -0.072260 -v -0.682136 1.052012 -0.072260 -v -0.753332 1.027651 -0.037240 -v -0.719635 1.011713 -0.048913 -v -0.750361 0.939191 -0.022734 -v -0.717654 0.952739 -0.039243 -v -0.265165 0.828586 -0.750000 -v -0.154680 0.874350 -0.750000 -v -0.251761 0.777268 -0.418544 -v -0.339365 0.754386 -0.496669 -v -0.108916 0.984835 -0.750000 -v -0.154680 1.095320 -0.750000 -v -0.284121 0.965879 -0.308058 -v -0.228879 0.864871 -0.340419 -v -0.265166 1.141085 -0.750000 -v -0.375651 1.095320 -0.750000 -v -0.472732 0.998239 -0.418544 -v -0.385129 1.021122 -0.340419 -v -0.421415 0.984836 -0.750000 -v -0.495615 0.910636 -0.496669 -v -0.375651 0.874350 -0.750000 -v -0.440371 0.809629 -0.529029 -v -0.580264 0.890707 -0.316931 -v -0.518007 0.888244 -0.214856 -v -0.427498 0.822502 -0.172575 -v -0.361757 0.731994 -0.214856 -v -0.359293 0.669736 -0.316931 -v -0.421551 0.672200 -0.419007 -v -0.512060 0.737940 -0.461288 -v -0.577801 0.828450 -0.419007 -v -0.518497 0.575254 -0.391735 -v -0.596621 0.653379 -0.437500 -v -0.674747 0.731504 -0.391735 -v -0.707107 0.763864 -0.281250 -v -0.674747 0.731504 -0.170765 -v -0.596621 0.653379 -0.125000 -v -0.518497 0.575254 -0.170765 -v -0.486136 0.542893 -0.281250 -v -0.831487 0.574764 -0.214856 -v -0.765745 0.484255 -0.172575 -v -0.675237 0.418514 -0.214856 -v -0.612979 0.416050 -0.316932 -v -0.615442 0.478308 -0.419007 -v -0.681184 0.568817 -0.461288 -v -0.771693 0.634558 -0.419007 -v -0.833950 0.637021 -0.316932 -v -0.763264 0.764722 -0.468769 -v -0.688267 0.845323 -0.515462 -v -0.692228 0.963270 -0.534803 -v -0.772828 1.049473 -0.515462 -v -0.882854 1.053434 -0.468769 -v -0.957852 0.972834 -0.422076 -v -0.953891 0.854886 -0.402735 -v -0.873290 0.768683 -0.422076 -v 0.626411 1.389878 -0.175597 -v 0.736436 1.385918 -0.128904 -v 0.721487 1.422006 -0.128904 -v 0.638968 1.424978 -0.163924 -v 0.811434 1.466517 -0.082211 -v 0.807472 1.584466 -0.062870 -v 0.774764 1.570918 -0.079378 -v 0.777736 1.482457 -0.093884 -v 0.726872 1.670668 -0.082211 -v 0.616847 1.674630 -0.128904 -v 0.631796 1.638541 -0.128904 -v 0.714314 1.635570 -0.093884 -v 0.541848 1.594029 -0.175597 -v 0.575547 1.578090 -0.163924 -v 0.545810 1.476082 -0.194938 -v 0.578518 1.489630 -0.178429 -v 0.646744 1.602452 -0.128904 -v 0.609246 1.562152 -0.152250 -v 0.611225 1.503178 -0.161921 -v 0.651526 1.460077 -0.152250 -v 0.706538 1.458097 -0.128904 -v 0.744037 1.498396 -0.105557 -v 0.742057 1.557369 -0.095887 -v 0.701756 1.600471 -0.105557 -v 0.689911 1.625462 -0.037240 -v 0.607393 1.628433 -0.072260 -v 0.622342 1.592343 -0.072260 -v 0.677353 1.590363 -0.048913 -v 0.551144 1.567983 -0.107280 -v 0.584842 1.552044 -0.095606 -v 0.554116 1.479522 -0.121785 -v 0.586823 1.493069 -0.105277 -v 0.614566 1.414869 -0.107280 -v 0.627123 1.449969 -0.095606 -v 0.697084 1.411898 -0.072260 -v 0.682136 1.447988 -0.072260 -v 0.753332 1.472350 -0.037240 -v 0.719635 1.488287 -0.048913 -v 0.750361 1.560810 -0.022734 -v 0.717654 1.547261 -0.039243 -v 0.265165 1.671415 -0.750000 -v 0.154680 1.625651 -0.750000 -v 0.251761 1.722732 -0.418544 -v 0.339365 1.745614 -0.496669 -v 0.108916 1.515165 -0.750000 -v 0.154680 1.404680 -0.750000 -v 0.284121 1.534121 -0.308058 -v 0.228879 1.635129 -0.340419 -v 0.265166 1.358915 -0.750000 -v 0.375651 1.404680 -0.750000 -v 0.472732 1.501761 -0.418544 -v 0.385129 1.478879 -0.340419 -v 0.421415 1.515165 -0.750000 -v 0.495615 1.589364 -0.496669 -v 0.375651 1.625651 -0.750000 -v 0.440371 1.690371 -0.529029 -v 0.580264 1.609293 -0.316931 -v 0.518007 1.611756 -0.214856 -v 0.427498 1.677498 -0.172575 -v 0.361757 1.768006 -0.214856 -v 0.359293 1.830264 -0.316931 -v 0.421551 1.827801 -0.419007 -v 0.512060 1.762060 -0.461288 -v 0.577801 1.671550 -0.419007 -v 0.518497 1.924746 -0.391735 -v 0.596621 1.846622 -0.437500 -v 0.674747 1.768496 -0.391735 -v 0.707107 1.736136 -0.281250 -v 0.674747 1.768496 -0.170765 -v 0.596621 1.846622 -0.125000 -v 0.518497 1.924746 -0.170765 -v 0.486136 1.957107 -0.281250 -v 0.831487 1.925236 -0.214856 -v 0.765745 2.015745 -0.172575 -v 0.675237 2.081486 -0.214856 -v 0.612979 2.083950 -0.316932 -v 0.615442 2.021692 -0.419007 -v 0.681184 1.931184 -0.461288 -v 0.771693 1.865442 -0.419007 -v 0.833950 1.862979 -0.316932 -v 0.763264 1.735279 -0.468769 -v 0.688267 1.654677 -0.515462 -v 0.692229 1.536730 -0.534803 -v 0.772828 1.450527 -0.515462 -v 0.882854 1.446566 -0.468769 -v 0.957852 1.527166 -0.422076 -v 0.953891 1.645114 -0.402735 -v 0.873290 1.731318 -0.422076 -v -0.139878 1.876411 -0.175597 -v -0.135918 1.986436 -0.128904 -v -0.172006 1.971487 -0.128904 -v -0.174978 1.888969 -0.163924 -v -0.216517 2.061434 -0.082211 -v -0.334466 2.057472 -0.062870 -v -0.320918 2.024765 -0.079378 -v -0.232457 2.027736 -0.093884 -v -0.420668 1.976872 -0.082211 -v -0.424630 1.866847 -0.128904 -v -0.388541 1.881796 -0.128904 -v -0.385570 1.964314 -0.093884 -v -0.344029 1.791849 -0.175597 -v -0.328090 1.825547 -0.163924 -v -0.226082 1.795810 -0.194938 -v -0.239630 1.828518 -0.178429 -v -0.352452 1.896744 -0.128904 -v -0.312151 1.859246 -0.152250 -v -0.253178 1.861225 -0.161921 -v -0.210077 1.901526 -0.152250 -v -0.208096 1.956538 -0.128904 -v -0.248396 1.994038 -0.105557 -v -0.307369 1.992057 -0.095887 -v -0.350471 1.951756 -0.105557 -v -0.375462 1.939911 -0.037240 -v -0.378433 1.857393 -0.072260 -v -0.342343 1.872342 -0.072260 -v -0.340363 1.927353 -0.048913 -v -0.317983 1.801144 -0.107280 -v -0.302044 1.834842 -0.095606 -v -0.229521 1.804116 -0.121785 -v -0.243069 1.836823 -0.105277 -v -0.164869 1.864566 -0.107280 -v -0.199968 1.877123 -0.095606 -v -0.161898 1.947084 -0.072260 -v -0.197988 1.932136 -0.072260 -v -0.222349 2.003333 -0.037240 -v -0.238287 1.969635 -0.048913 -v -0.310809 2.000361 -0.022734 -v -0.297261 1.967654 -0.039243 -v -0.421415 1.515165 -0.750000 -v -0.375651 1.404680 -0.750000 -v -0.472732 1.501761 -0.418544 -v -0.495614 1.589365 -0.496669 -v -0.265165 1.358916 -0.750000 -v -0.154680 1.404680 -0.750000 -v -0.284121 1.534121 -0.308058 -v -0.385129 1.478879 -0.340419 -v -0.108915 1.515166 -0.750000 -v -0.154680 1.625651 -0.750000 -v -0.251761 1.722732 -0.418544 -v -0.228879 1.635129 -0.340419 -v -0.265164 1.671415 -0.750000 -v -0.339364 1.745615 -0.496669 -v -0.375651 1.625651 -0.750000 -v -0.440371 1.690372 -0.529029 -v -0.359293 1.830264 -0.316931 -v -0.361756 1.768007 -0.214856 -v -0.427498 1.677498 -0.172575 -v -0.518006 1.611757 -0.214856 -v -0.580264 1.609293 -0.316931 -v -0.577800 1.671551 -0.419007 -v -0.512060 1.762060 -0.461288 -v -0.421550 1.827801 -0.419007 -v -0.674746 1.768497 -0.391735 -v -0.596621 1.846622 -0.437500 -v -0.518496 1.924747 -0.391735 -v -0.486136 1.957107 -0.281250 -v -0.518496 1.924747 -0.170765 -v -0.596621 1.846622 -0.125000 -v -0.674746 1.768497 -0.170765 -v -0.707107 1.736136 -0.281250 -v -0.675236 2.081487 -0.214856 -v -0.765745 2.015745 -0.172575 -v -0.831486 1.925237 -0.214856 -v -0.833950 1.862979 -0.316932 -v -0.771692 1.865443 -0.419007 -v -0.681184 1.931184 -0.461288 -v -0.615442 2.021693 -0.419007 -v -0.612979 2.083950 -0.316932 -v -0.485278 2.013265 -0.468769 -v -0.404677 1.938267 -0.515462 -v -0.286730 1.942229 -0.534803 -v -0.200527 2.022829 -0.515462 -v -0.196566 2.132854 -0.468769 -v -0.277167 2.207852 -0.422076 -v -0.395114 2.203891 -0.402735 -v -0.481318 2.123290 -0.422076 -v 0.139878 0.623589 -0.175597 -v 0.135918 0.513564 -0.128904 -v 0.172006 0.528513 -0.128904 -v 0.174978 0.611032 -0.163924 -v 0.216517 0.438566 -0.082211 -v 0.334466 0.442528 -0.062870 -v 0.320918 0.475236 -0.079378 -v 0.232457 0.472264 -0.093884 -v 0.420668 0.523129 -0.082211 -v 0.424630 0.633153 -0.128904 -v 0.388541 0.618205 -0.128904 -v 0.385570 0.535686 -0.093884 -v 0.344029 0.708152 -0.175597 -v 0.328090 0.674453 -0.163924 -v 0.226082 0.704190 -0.194938 -v 0.239630 0.671482 -0.178429 -v 0.352452 0.603256 -0.128904 -v 0.312151 0.640754 -0.152250 -v 0.253178 0.638775 -0.161921 -v 0.210077 0.598474 -0.152250 -v 0.208096 0.543462 -0.128904 -v 0.248396 0.505963 -0.105557 -v 0.307369 0.507944 -0.095887 -v 0.350471 0.548244 -0.105557 -v 0.375462 0.560089 -0.037240 -v 0.378433 0.642607 -0.072260 -v 0.342343 0.627659 -0.072260 -v 0.340363 0.572647 -0.048913 -v 0.317983 0.698857 -0.107280 -v 0.302044 0.665158 -0.095606 -v 0.229521 0.695884 -0.121785 -v 0.243069 0.663177 -0.105277 -v 0.164869 0.635435 -0.107280 -v 0.199969 0.622877 -0.095606 -v 0.161898 0.552916 -0.072260 -v 0.197988 0.567865 -0.072260 -v 0.222349 0.496668 -0.037240 -v 0.238287 0.530365 -0.048913 -v 0.310809 0.499639 -0.022734 -v 0.297261 0.532347 -0.039243 -v 0.421415 0.984835 -0.750000 -v 0.375651 1.095320 -0.750000 -v 0.472732 0.998239 -0.418544 -v 0.495614 0.910635 -0.496669 -v 0.265165 1.141084 -0.750000 -v 0.154680 1.095320 -0.750000 -v 0.284121 0.965879 -0.308058 -v 0.385129 1.021121 -0.340419 -v 0.108915 0.984834 -0.750000 -v 0.154680 0.874350 -0.750000 -v 0.251761 0.777268 -0.418544 -v 0.228879 0.864871 -0.340419 -v 0.265164 0.828585 -0.750000 -v 0.339364 0.754385 -0.496669 -v 0.375650 0.874350 -0.750000 -v 0.440371 0.809629 -0.529029 -v 0.359293 0.669736 -0.316931 -v 0.361756 0.731993 -0.214856 -v 0.427498 0.822502 -0.172575 -v 0.518006 0.888243 -0.214856 -v 0.580264 0.890707 -0.316931 -v 0.577800 0.828449 -0.419007 -v 0.512060 0.737940 -0.461288 -v 0.421550 0.672199 -0.419007 -v 0.674746 0.731503 -0.391735 -v 0.596621 0.653379 -0.437500 -v 0.518496 0.575253 -0.391735 -v 0.486136 0.542893 -0.281250 -v 0.518496 0.575253 -0.170765 -v 0.596621 0.653379 -0.125000 -v 0.674746 0.731503 -0.170765 -v 0.707107 0.763864 -0.281250 -v 0.675236 0.418513 -0.214856 -v 0.765745 0.484255 -0.172575 -v 0.831486 0.574763 -0.214856 -v 0.833950 0.637021 -0.316932 -v 0.771692 0.634558 -0.419007 -v 0.681184 0.568816 -0.461288 -v 0.615442 0.478308 -0.419007 -v 0.612979 0.416050 -0.316932 -v 0.485278 0.486736 -0.468769 -v 0.404677 0.561733 -0.515462 -v 0.286730 0.557772 -0.534803 -v 0.200527 0.477172 -0.515462 -v 0.196566 0.367146 -0.468769 -v 0.277166 0.292148 -0.422076 -v 0.395114 0.296109 -0.402735 -v 0.481317 0.376710 -0.422076 -v 0.391169 2.232164 0.136894 -v 0.014465 2.307096 0.136894 -v 0.014465 2.197720 -0.081856 -v 0.349313 2.131115 -0.081856 -v 0.025414 2.252758 -0.109375 -v 0.360261 2.186152 -0.109375 -v 0.025414 2.362132 0.109375 -v 0.402117 2.287201 0.109375 -v -0.982164 1.641169 0.136894 -v -1.057095 1.264466 0.136894 -v -0.947720 1.264466 -0.081856 -v -0.881115 1.599313 -0.081856 -v -1.002758 1.275414 -0.109375 -v -0.936152 1.610261 -0.109375 -v -1.112132 1.275414 0.109375 -v -1.037201 1.652117 0.109375 -v 0.982164 0.858831 0.136894 -v 1.057095 1.235535 0.136894 -v 0.947720 1.235535 -0.081856 -v 0.881115 0.900687 -0.081856 -v 1.002758 1.224586 -0.109375 -v 0.936152 0.889739 -0.109375 -v 1.112132 1.224586 0.109375 -v 1.037201 0.847883 0.109375 -v -0.971093 0.832103 0.136894 -v -0.757708 0.512749 0.136894 -v -0.680368 0.590089 -0.081856 -v -0.870044 0.873959 -0.081856 -v -0.727027 0.558913 -0.109375 -v -0.916702 0.842784 -0.109375 -v -0.804366 0.481574 0.109375 -v -1.017751 0.800928 0.109375 -v 0.971093 1.667897 0.136894 -v 0.757708 1.987251 0.136894 -v 0.680368 1.909911 -0.081856 -v 0.870044 1.626041 -0.081856 -v 0.727027 1.941087 -0.109375 -v 0.916703 1.657217 -0.109375 -v 0.804366 2.018426 0.109375 -v 1.017752 1.699073 0.109375 -v -0.417897 2.221093 0.136894 -v -0.737251 2.007708 0.136894 -v -0.659911 1.930368 -0.081856 -v -0.376041 2.120044 -0.081856 -v -0.691087 1.977027 -0.109375 -v -0.407216 2.166703 -0.109375 -v -0.768426 2.054366 0.109375 -v -0.449072 2.267752 0.109375 -v 0.417897 0.278907 0.136894 -v 0.737251 0.492292 0.136894 -v 0.659911 0.569632 -0.081856 -v 0.376041 0.379956 -0.081856 -v 0.691087 0.522973 -0.109375 -v 0.407216 0.333298 -0.109375 -v 0.768426 0.445634 0.109375 -v 0.449072 0.232249 0.109375 -v -0.737251 0.492293 0.136894 -v -0.417897 0.278907 0.136894 -v -0.376041 0.379957 -0.081856 -v -0.659911 0.569632 -0.081856 -v -0.407218 0.333298 -0.109375 -v -0.691088 0.522974 -0.109375 -v -0.449074 0.232249 0.109375 -v -0.768427 0.445635 0.109375 -v 0.737251 2.007708 0.136894 -v 0.417897 2.221093 0.136894 -v 0.376041 2.120044 -0.081856 -v 0.659911 1.930368 -0.081856 -v 0.407218 2.166703 -0.109375 -v 0.691088 1.977026 -0.109375 -v 0.449074 2.267751 0.109375 -v 0.768427 2.054366 0.109375 -v -0.757708 1.987251 0.136894 -v -0.971093 1.667897 0.136894 -v -0.870044 1.626041 -0.081856 -v -0.680368 1.909911 -0.081856 -v -0.916702 1.657218 -0.109375 -v -0.727026 1.941088 -0.109375 -v -1.017751 1.699074 0.109375 -v -0.804365 2.018427 0.109375 -v 0.757708 0.512749 0.136894 -v 0.971093 0.832103 0.136894 -v 0.870044 0.873959 -0.081856 -v 0.680368 0.590089 -0.081856 -v 0.916702 0.842782 -0.109375 -v 0.727026 0.558912 -0.109375 -v 1.017751 0.800926 0.109375 -v 0.804366 0.481573 0.109375 -v -1.057095 1.235535 0.136894 -v -0.982164 0.858832 0.136894 -v -0.881115 0.900688 -0.081856 -v -0.947720 1.235535 -0.081856 -v -0.936153 0.889740 -0.109375 -v -1.002758 1.224588 -0.109375 -v -1.037201 0.847885 0.109375 -v -1.112132 1.224588 0.109375 -v 1.057095 1.264465 0.136894 -v 0.982164 1.641169 0.136894 -v 0.881115 1.599313 -0.081856 -v 0.947720 1.264465 -0.081856 -v 0.936153 1.610260 -0.109375 -v 1.002758 1.275412 -0.109375 -v 1.037202 1.652116 0.109375 -v 1.112132 1.275412 0.109375 -v -0.014465 2.307096 0.136894 -v -0.391168 2.232164 0.136894 -v -0.349312 2.131115 -0.081856 -v -0.014465 2.197721 -0.081856 -v -0.360260 2.186153 -0.109375 -v -0.025412 2.252758 -0.109375 -v -0.402115 2.287201 0.109375 -v -0.025412 2.362133 0.109375 -v 0.014465 0.192905 0.136894 -v 0.391169 0.267836 0.136894 -v 0.349312 0.368885 -0.081856 -v 0.014465 0.302280 -0.081856 -v 0.360260 0.313847 -0.109375 -v 0.025412 0.247242 -0.109375 -v 0.402115 0.212799 0.109375 -v 0.025412 0.137868 0.109375 -v 0.375000 2.500000 -1.875000 -v 0.375000 2.500000 -0.875000 -v -0.375000 2.500000 -1.875000 -v -0.375000 2.500000 -0.875000 -v 0.375000 2.250000 -1.875000 -v 0.375000 2.250000 -0.875000 -v -0.375000 2.250000 -1.875000 -v -0.375000 2.250000 -0.875000 -v 0.000000 2.500000 -1.875000 -v -0.088388 2.463388 -1.875000 -v -0.125000 2.375000 -1.875000 -v 0.125000 2.375000 -1.875000 -v 0.088388 2.463388 -1.875000 -v 0.000000 2.500000 -1.125000 -v -0.088388 2.463388 -1.125000 -v -0.125000 2.375000 -1.125000 -v 0.125000 2.375000 -1.125000 -v 0.088388 2.463388 -1.125000 -v 0.000000 2.426777 -0.948223 -v -0.088388 2.400888 -0.974111 -v -0.125000 2.338388 -1.036612 -v 0.125000 2.338388 -1.036612 -v 0.088388 2.400888 -0.974111 -v 0.000000 2.250000 -0.875000 -v -0.088388 2.250000 -0.911611 -v -0.125000 2.250000 -1.000000 -v 0.125000 2.250000 -1.000000 -v 0.088388 2.250000 -0.911611 -v 0.250000 2.500000 -1.875000 -v 0.161612 2.463388 -1.875000 -v 0.125000 2.375000 -1.875000 -v 0.375000 2.375000 -1.875000 -v 0.338388 2.463388 -1.875000 -v 0.250000 2.500000 -1.125000 -v 0.161612 2.463388 -1.125000 -v 0.125000 2.375000 -1.125000 -v 0.375000 2.375000 -1.125000 -v 0.338388 2.463388 -1.125000 -v 0.250000 2.426777 -0.948223 -v 0.161612 2.400888 -0.974111 -v 0.125000 2.338388 -1.036612 -v 0.375000 2.338388 -1.036612 -v 0.338388 2.400888 -0.974111 -v 0.250000 2.250000 -0.875000 -v 0.161612 2.250000 -0.911611 -v 0.125000 2.250000 -1.000000 -v 0.375000 2.250000 -1.000000 -v 0.338388 2.250000 -0.911611 -v -0.250000 2.500000 -1.875000 -v -0.338388 2.463388 -1.875000 -v -0.375000 2.375000 -1.875000 -v -0.125000 2.375000 -1.875000 -v -0.161612 2.463388 -1.875000 -v -0.250000 2.500000 -1.125000 -v -0.338388 2.463388 -1.125000 -v -0.375000 2.375000 -1.125000 -v -0.125000 2.375000 -1.125000 -v -0.161612 2.463388 -1.125000 -v -0.250000 2.426777 -0.948223 -v -0.338388 2.400888 -0.974111 -v -0.375000 2.338388 -1.036612 -v -0.125000 2.338388 -1.036612 -v -0.161612 2.400888 -0.974111 -v -0.250000 2.250000 -0.875000 -v -0.338388 2.250000 -0.911611 -v -0.375000 2.250000 -1.000000 -v -0.125000 2.250000 -1.000000 -v -0.161612 2.250000 -0.911611 -v -0.536612 2.286612 -0.875000 -v -1.036612 1.786612 -0.875000 -v 0.375000 2.375000 -0.875000 -v -0.375000 2.375000 -0.875000 -v 0.536612 2.286612 -0.875000 -v 1.036612 1.786612 -0.875000 -v -0.625000 2.375000 -0.625000 -v -1.125000 1.875000 -0.625000 -v 1.125000 1.875000 -0.625000 -v 0.625000 2.375000 -0.625000 -v 0.375000 2.500000 -0.625000 -v -0.375000 2.500000 -0.625000 -v -0.536612 2.286612 -0.625000 -v -1.036612 1.786612 -0.625000 -v 0.375000 2.375000 -0.625000 -v -0.375000 2.375000 -0.625000 -v 0.536612 2.286612 -0.625000 -v 1.036612 1.786612 -0.625000 -v 1.125000 1.875000 -0.875000 -v 0.625000 2.375000 -0.875000 -v 1.125000 1.875000 -0.625000 -v 0.625000 2.375000 -0.625000 -v 0.375000 2.500000 -0.875000 -v -0.375000 2.500000 -0.875000 -v 0.375000 2.500000 -0.625000 -v -0.375000 2.500000 -0.625000 -v -0.625000 2.375000 -0.875000 -v -1.125000 1.875000 -0.875000 -v -0.625000 2.375000 -0.625000 -v -1.125000 1.875000 -0.625000 -v -0.430519 2.289364 -0.625000 -v 0.430518 2.289365 -0.625000 -v -0.500000 -0.000000 0.125000 -v -0.500000 0.000000 -0.375000 -v 0.500000 0.000000 -0.375000 -v 0.500000 -0.000000 0.125000 -v -0.500000 2.500000 0.125000 -v 0.500000 2.500000 0.125000 -v 0.500000 2.500000 -0.375000 -v -0.500000 2.500000 -0.375000 -v -1.250000 1.750000 0.125000 -v -1.250000 1.750000 -0.375000 -v -1.250000 0.750000 -0.375000 -v -1.250000 0.750000 0.125000 -v 1.250000 1.750000 0.125000 -v 1.250000 0.750000 0.125000 -v 1.250000 0.750000 -0.375000 -v 1.250000 1.750000 -0.375000 -v 1.039364 1.680519 0.125000 -v 1.125000 1.250000 0.125000 -v 1.039364 0.819481 0.125000 -v 0.430518 2.289365 0.125000 -v 0.795495 2.045496 0.125000 -v -0.430519 2.289364 0.125000 -v 0.000000 2.375000 0.125000 -v -1.039364 1.680519 0.125000 -v -0.795495 2.045495 0.125000 -v -1.039364 0.819481 0.125000 -v -1.125000 1.250000 0.125000 -v -0.430519 0.210636 0.125000 -v -0.795495 0.454505 0.125000 -v 0.430519 0.210635 0.125000 -v 0.000000 0.125000 0.125000 -v 0.795495 0.454505 0.125000 -v -0.191341 1.711940 -0.750000 -v -0.353553 1.603553 -0.750000 -v -0.461940 1.441342 -0.750000 -v -0.500000 1.250000 -0.750000 -v -0.461940 1.058658 -0.750000 -v -0.353553 0.896447 -0.750000 -v -0.191341 0.788060 -0.750000 -v 0.000000 0.750000 -0.750000 -v 0.191341 0.788060 -0.750000 -v 0.353553 0.896446 -0.750000 -v 0.461940 1.058658 -0.750000 -v 0.500000 1.250000 -0.750000 -v 0.461940 1.441342 -0.750000 -v 0.353553 1.603554 -0.750000 -v 0.191341 1.711940 -0.750000 -v 0.000000 1.750000 -0.750000 -v 1.039364 1.680519 -0.375000 -v 0.795495 2.045496 -0.375000 -v 0.430518 2.289365 -0.375000 -v 1.039364 0.819481 -0.375000 -v 1.125000 1.250000 -0.375000 -v 0.430519 0.210635 -0.375000 -v 0.795495 0.454505 -0.375000 -v -0.430519 0.210636 -0.375000 -v 0.000000 0.125000 -0.375000 -v -1.039364 0.819481 -0.375000 -v -0.795495 0.454505 -0.375000 -v -1.039364 1.680519 -0.375000 -v -1.125000 1.250000 -0.375000 -v -0.430519 2.289364 -0.375000 -v -0.795495 2.045495 -0.375000 -v 0.000000 2.375000 -0.375000 -v -0.430519 2.289364 -0.625000 -v 0.000000 2.375000 -0.625000 -v 0.430518 2.289365 -0.625000 -v 0.795495 2.045496 -0.625000 -v 1.039364 1.680519 -0.625000 -v 1.125000 1.250000 -0.625000 -v 1.039364 0.819481 -0.625000 -v 0.795495 0.454505 -0.625000 -v 0.430519 0.210635 -0.625000 -v 0.000000 0.125000 -0.625000 -v -0.430519 0.210636 -0.625000 -v -0.795495 0.454505 -0.625000 -v -1.039364 0.819481 -0.625000 -v -1.125000 1.250000 -0.625000 -v -1.039364 1.680519 -0.625000 -v -0.795495 2.045495 -0.625000 -v -0.382683 2.173880 -0.125000 -v 0.000000 2.250000 -0.125000 -v 0.382683 2.173880 -0.125000 -v 0.707106 1.957107 -0.125000 -v 0.923880 1.632684 -0.125000 -v 1.000000 1.250000 -0.125000 -v 0.923880 0.867316 -0.125000 -v 0.707106 0.542893 -0.125000 -v 0.382683 0.326120 -0.125000 -v 0.000000 0.250000 -0.125000 -v -0.382684 0.326120 -0.125000 -v -0.707108 0.542893 -0.125000 -v -0.923880 0.867316 -0.125000 -v -1.000000 1.250000 -0.125000 -v -0.923880 1.632683 -0.125000 -v -0.707108 1.957107 -0.125000 -v -0.382683 2.173880 -0.500000 -v 0.000000 2.250000 -0.500000 -v 0.382683 2.173880 -0.500000 -v 0.382683 0.326120 -0.500000 -v 0.000000 0.250000 -0.500000 -v -0.707108 1.957107 -0.500000 -v 0.707106 0.542893 -0.500000 -v -0.923880 1.632683 -0.500000 -v 0.923880 0.867316 -0.500000 -v -1.000000 1.250000 -0.500000 -v 1.000000 1.250000 -0.500000 -v -0.923880 0.867316 -0.500000 -v 0.923880 1.632684 -0.500000 -v -0.707108 0.542893 -0.500000 -v 0.707106 1.957107 -0.500000 -v -0.382684 0.326120 -0.500000 -vt 0.662069 0.796875 -vt 0.662069 0.875000 -vt 0.551724 0.875000 -vt 0.634483 0.218750 -vt 0.724138 0.250000 -vt 0.551724 0.250000 -vt 0.724138 0.359375 -vt 0.703448 0.375000 -vt 0.606897 -0.000000 -vt 0.551724 0.125000 -vt 0.551724 -0.000000 -vt 0.634483 0.906250 -vt 0.606897 1.000000 -vt 0.413793 0.062500 -vt 0.441379 0.250000 -vt 0.413793 0.187500 -vt 0.682759 0.406250 -vt 0.703448 0.406250 -vt 0.724138 0.875000 -vt 0.717241 0.796875 -vt 0.724138 0.765625 -vt 0.682759 0.750000 -vt 0.717241 0.906250 -vt 0.717241 0.875000 -vt 0.324138 0.796875 -vt 0.282759 0.812500 -vt 0.282759 0.796875 -vt 0.324138 0.828125 -vt 0.282759 0.843750 -vt 0.282759 0.828125 -vt 0.324138 0.859375 -vt 0.282759 0.875000 -vt 0.282759 0.859375 -vt 0.282759 0.890625 -vt 0.331034 0.906250 -vt 0.275862 0.906250 -vt 0.331034 0.765625 -vt 0.282759 0.781250 -vt 0.275862 0.765625 -vt 0.324138 0.812500 -vt 0.282759 1.000000 -vt 0.324138 0.984375 -vt 0.324138 1.000000 -vt 0.275862 0.968750 -vt 0.282759 0.984375 -vt 0.275862 0.984375 -vt 0.324138 0.953125 -vt 0.282759 0.968750 -vt 0.282759 0.953125 -vt 0.275862 0.968750 -vt 0.282759 0.984375 -vt 0.275862 0.984375 -vt 0.282759 0.968750 -vt 0.324138 0.984375 -vt 0.282759 0.984375 -vt 0.324138 0.968750 -vt 0.282759 0.968750 -vt 0.324138 0.984375 -vt 0.324138 0.968750 -vt 0.282759 0.984375 -vt 0.282759 0.968750 -vt 0.275862 0.968750 -vt 0.275862 0.984375 -vt 0.324138 0.953125 -vt 0.282759 0.953125 -vt 0.331034 0.984375 -vt 0.324138 0.968750 -vt 0.331034 0.968750 -vt 0.282759 1.000000 -vt 0.324138 1.000000 -vt 0.331034 0.984375 -vt 0.331034 0.968750 -vt 0.324138 0.953125 -vt 0.282759 0.953125 -vt 0.331034 0.984375 -vt 0.324138 0.968750 -vt 0.331034 0.968750 -vt 0.282759 1.000000 -vt 0.324138 1.000000 -vt 0.331034 0.984375 -vt 0.331034 0.968750 -vt 0.324138 0.953125 -vt 0.282759 0.953125 -vt 0.275862 0.968750 -vt 0.275862 0.984375 -vt 0.282759 1.000000 -vt 0.324138 0.984375 -vt 0.324138 1.000000 -vt 0.737931 0.359375 -vt 0.737931 0.218750 -vt 0.737931 0.250000 -vt 0.737931 0.875000 -vt 0.737931 0.906250 -vt 0.724138 0.375000 -vt 0.724138 0.718750 -vt 0.703448 0.750000 -vt 0.703448 0.718750 -vt 0.682759 0.718750 -vt 0.662069 0.500000 -vt 0.675862 0.625000 -vt 0.662069 0.625000 -vt 0.696552 0.421875 -vt 0.675862 0.500000 -vt 0.696552 0.703125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.310345 0.031250 -vt 0.296552 0.046875 -vt 0.296552 0.031250 -vt 0.268584 0.103261 -vt 0.268584 0.115489 -vt 0.264768 0.124136 -vt 0.282759 0.046875 -vt 0.282759 0.031250 -vt 0.268966 0.031250 -vt 0.275862 0.046875 -vt 0.268966 0.046875 -vt 0.255172 0.046875 -vt 0.255172 0.031250 -vt 0.365517 0.031250 -vt 0.351724 0.046875 -vt 0.351724 0.031250 -vt 0.337931 0.046875 -vt 0.337931 0.031250 -vt 0.324138 0.031250 -vt 0.331034 0.046875 -vt 0.324138 0.046875 -vt 0.310345 0.046875 -vt 0.296552 0.078125 -vt 0.303448 0.062500 -vt 0.303448 0.078125 -vt 0.282759 0.078125 -vt 0.289655 0.062500 -vt 0.289655 0.078125 -vt 0.268966 0.062500 -vt 0.275862 0.078125 -vt 0.268966 0.078125 -vt 0.255172 0.062500 -vt 0.262069 0.078125 -vt 0.255172 0.078125 -vt 0.351724 0.062500 -vt 0.358621 0.078125 -vt 0.351724 0.078125 -vt 0.337931 0.078125 -vt 0.344828 0.062500 -vt 0.344828 0.078125 -vt 0.324138 0.078125 -vt 0.331034 0.062500 -vt 0.331034 0.078125 -vt 0.310345 0.078125 -vt 0.317241 0.062500 -vt 0.317241 0.078125 -vt 0.020690 0.781250 -vt 0.013793 0.875000 -vt 0.013793 0.781250 -vt 0.213793 0.781250 -vt 0.227586 0.875000 -vt 0.213793 0.875000 -vt 0.510209 0.406422 -vt 0.506394 0.432721 -vt 0.482676 0.422118 -vt 0.455123 0.406613 -vt 0.458988 0.432863 -vt 0.438078 0.465736 -vt 0.414116 0.500678 -vt 0.425220 0.509148 -vt 0.420595 0.561221 -vt 0.413934 0.622365 -vt 0.425067 0.614088 -vt 0.437826 0.657998 -vt 0.454859 0.718112 -vt 0.458836 0.691761 -vt 0.482625 0.702699 -vt 0.455172 0.609375 -vt 0.441379 0.515625 -vt 0.455172 0.515625 -vt 0.848515 0.125000 -vt 0.903448 0.000542 -vt 0.958382 0.125000 -vt 0.351724 0.906250 -vt 0.331034 0.718750 -vt 0.255172 0.765625 -vt 0.275862 0.953125 -vt 0.848515 0.375000 -vt 0.903448 0.250541 -vt 0.958382 0.375000 -vt 0.737931 0.375000 -vt 0.848276 0.281250 -vt 0.848276 0.375000 -vt 0.737931 0.187500 -vt 0.848276 0.093750 -vt 0.848276 0.187500 -vt 0.737931 0.562500 -vt 0.848276 0.468750 -vt 0.848276 0.562500 -vt 0.737931 0.281250 -vt 0.737931 0.093750 -vt 0.848276 -0.000000 -vt 0.737931 0.656250 -vt 0.848276 0.656250 -vt 0.737931 0.468750 -vt 0.262069 0.140625 -vt 0.268966 0.171875 -vt 0.262069 0.171875 -vt 0.296552 0.171875 -vt 0.303448 0.140625 -vt 0.303448 0.171875 -vt 0.268966 0.125000 -vt 0.296552 0.140625 -vt 0.268966 0.140625 -vt 0.296552 0.187500 -vt 0.268966 0.187500 -vt 0.268966 0.093750 -vt 0.296552 0.125000 -vt 0.303448 0.171875 -vt 0.296552 0.140625 -vt 0.303448 0.140625 -vt 0.268966 0.140625 -vt 0.262069 0.171875 -vt 0.262069 0.140625 -vt 0.296552 0.187500 -vt 0.268966 0.171875 -vt 0.296552 0.171875 -vt 0.268966 0.125000 -vt 0.296552 0.125000 -vt 0.268966 0.093750 -vt 0.296552 0.093750 -vt 0.262069 0.171875 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.303448 0.171875 -vt 0.296552 0.140625 -vt 0.303448 0.140625 -vt 0.268966 0.125000 -vt 0.296552 0.187500 -vt 0.268966 0.187500 -vt 0.296552 0.171875 -vt 0.268966 0.093750 -vt 0.296552 0.125000 -vt 0.303448 0.140625 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.262069 0.140625 -vt 0.268966 0.171875 -vt 0.262069 0.171875 -vt 0.296552 0.187500 -vt 0.268966 0.125000 -vt 0.296552 0.125000 -vt 0.268966 0.140625 -vt 0.268966 0.093750 -vt 0.296552 0.093750 -vt 0.317241 0.140625 -vt 0.324138 0.171875 -vt 0.317241 0.171875 -vt 0.344828 0.171875 -vt 0.358621 0.187500 -vt 0.344828 0.187500 -vt 0.324138 0.125000 -vt 0.351724 0.140625 -vt 0.324138 0.140625 -vt 0.324138 0.187500 -vt 0.344828 0.093750 -vt 0.351724 0.125000 -vt 0.696552 0.625000 -vt 0.703448 0.687500 -vt 0.696552 0.687500 -vt 0.696552 0.500000 -vt 0.703448 0.437500 -vt 0.703448 0.500000 -vt 0.703448 0.625000 -vt 0.731034 0.687500 -vt 0.413793 0.859375 -vt 0.420690 0.914062 -vt 0.413793 0.914062 -vt 0.475862 0.914062 -vt 0.482759 0.859375 -vt 0.482759 0.914062 -vt 0.431034 0.937500 -vt 0.475862 0.859375 -vt 0.465517 0.937500 -vt 0.431034 0.953125 -vt 0.479310 0.937500 -vt 0.465517 0.953125 -vt 0.417241 0.937500 -vt 0.417241 0.953125 -vt 0.441379 -0.000000 -vt 0.468966 0.250000 -vt 0.255172 0.343750 -vt 0.337931 0.312500 -vt 0.337931 0.343750 -vt 0.363190 0.328752 -vt 0.351724 0.373746 -vt 0.340258 0.328752 -vt 0.255172 0.312500 -vt 0.337931 0.281250 -vt 0.255172 0.281250 -vt 0.337931 0.250000 -vt 0.363190 0.296248 -vt 0.351724 0.311246 -vt 0.340258 0.296248 -vt 0.868966 0.625000 -vt 0.924138 0.500000 -vt 0.924138 0.625000 -vt 0.848276 0.500000 -vt 0.868966 0.500000 -vt 0.944828 0.625000 -vt 0.834483 0.906250 -vt 0.765517 0.718750 -vt 0.834483 0.718750 -vt 0.737931 0.718750 -vt 0.765517 0.906250 -vt 0.737931 0.906250 -vt 0.862069 0.906250 -vt 0.862069 0.718750 -vt 0.765517 0.968750 -vt 0.834483 0.968750 -vt 0.834483 0.656250 -vt 0.765517 0.656250 -vt 0.903448 0.875000 -vt 0.958621 0.718750 -vt 0.958621 0.875000 -vt 0.958621 0.625000 -vt 0.903448 0.718750 -vt 0.903448 0.625000 -vt 0.903448 0.968750 -vt 0.958621 0.968750 -vt 0.862069 0.718750 -vt 0.862069 0.875000 -vt 1.000000 0.875000 -vt 1.000000 0.718750 -vt 0.958621 0.187500 -vt 0.986207 0.156250 -vt 0.986207 0.187500 -vt 0.958621 0.062500 -vt 0.986207 0.031250 -vt 0.986207 0.062500 -vt 0.958621 0.125000 -vt 0.986207 0.093750 -vt 0.986207 0.125000 -vt 0.958621 0.156250 -vt 0.958621 0.031250 -vt 0.986207 0.000000 -vt 0.958621 0.093750 -vt 0.965937 0.193335 -vt 0.978890 0.193335 -vt 0.985367 0.218750 -vt 0.737931 0.109375 -vt 0.724138 0.093750 -vt 0.737931 0.093750 -vt 0.737931 0.015625 -vt 0.724138 0.000000 -vt 0.737931 0.000000 -vt 0.737931 0.140625 -vt 0.724138 0.125000 -vt 0.737931 0.125000 -vt 0.737931 0.078125 -vt 0.724138 0.062500 -vt 0.737931 0.062500 -vt 0.737931 0.046875 -vt 0.724138 0.031250 -vt 0.737931 0.031250 -vt 0.737931 0.171875 -vt 0.724138 0.156250 -vt 0.737931 0.156250 -vt 0.724138 0.015625 -vt 0.717241 0.000000 -vt 0.717241 0.156250 -vt 0.717241 0.125000 -vt 0.724138 0.078125 -vt 0.717241 0.062500 -vt 0.717241 0.031250 -vt 0.724138 0.171875 -vt 0.724138 0.109375 -vt 0.717241 0.093750 -vt 0.675862 0.031250 -vt 0.717241 0.187500 -vt 0.675862 0.156250 -vt 0.675862 0.093750 -vt 0.675862 0.000000 -vt 0.675862 0.125000 -vt 0.675862 0.062500 -vt 0.668966 0.125000 -vt 0.668966 0.093750 -vt 0.668966 0.078125 -vt 0.668966 0.062500 -vt 0.668966 0.031250 -vt 0.668966 0.000000 -vt 0.668966 0.171875 -vt 0.668966 0.156250 -vt 0.655172 0.156250 -vt 0.668966 0.109375 -vt 0.655172 0.093750 -vt 0.668966 0.015625 -vt 0.655172 0.000000 -vt 0.668966 0.140625 -vt 0.655172 0.125000 -vt 0.655172 0.062500 -vt 0.668966 0.046875 -vt 0.655172 0.031250 -vt 0.655172 0.140625 -vt 0.648276 0.125000 -vt 0.655172 0.109375 -vt 0.648276 0.093750 -vt 0.648276 0.062500 -vt 0.655172 0.046875 -vt 0.648276 0.031250 -vt 0.655172 0.015625 -vt 0.648276 0.000000 -vt 0.648276 0.187500 -vt 0.648276 0.156250 -vt 0.641379 0.093750 -vt 0.641379 -0.000000 -vt 0.641379 0.125000 -vt 0.641379 0.062500 -vt 0.641379 0.031250 -vt 0.641379 0.156250 -vt 0.634483 0.062500 -vt 0.634483 0.031250 -vt 0.634483 0.171875 -vt 0.634483 0.156250 -vt 0.634483 0.093750 -vt 0.634483 0.000000 -vt 0.634483 0.140625 -vt 0.634483 0.125000 -vt 0.624290 0.002689 -vt 0.630883 0.002689 -vt 0.634179 0.015625 -vt 0.489655 0.156250 -vt 0.510345 0.046875 -vt 0.510345 0.156250 -vt 0.434483 0.812500 -vt 0.413793 0.765625 -vt 0.420690 0.750000 -vt 0.489655 0.046875 -vt 0.510345 0.000000 -vt 0.468966 0.046875 -vt 0.531034 0.156250 -vt 0.496552 0.187500 -vt 0.468966 0.156250 -vt 0.496552 0.156250 -vt 0.496552 0.312500 -vt 0.468966 0.265625 -vt 0.496552 0.265625 -vt 0.468966 0.234375 -vt 0.496552 0.234375 -vt 0.468966 0.187500 -vt 0.434483 0.750000 -vt 0.455172 0.812500 -vt 0.496552 0.765625 -vt 0.475862 0.750000 -vt 0.496552 0.750000 -vt 0.455172 0.750000 -vt 0.468966 0.750000 -vt 0.475862 0.765625 -vt 0.434483 0.859375 -vt 0.475862 0.812500 -vt 0.496552 0.812500 -vt 0.455172 0.718750 -vt 0.537931 0.828125 -vt 0.524138 0.812500 -vt 0.537931 0.812500 -vt 0.503448 0.718750 -vt 0.517241 0.812500 -vt 0.503448 0.812500 -vt 0.537931 0.718750 -vt 0.524138 0.718750 -vt 0.517241 0.718750 -vt 0.496552 0.812500 -vt 0.496552 0.718750 -vt 0.986207 0.609375 -vt 0.979310 0.593750 -vt 0.986207 0.593750 -vt 0.979310 0.531250 -vt 0.986207 0.515625 -vt 0.986207 0.531250 -vt 0.972414 0.593750 -vt 0.979310 0.578125 -vt 0.551724 0.625000 -vt 0.620690 0.609375 -vt 0.620690 0.734375 -vt 0.620690 0.640625 -vt 0.634483 0.640625 -vt 0.020690 0.875000 -vt 0.006897 0.781250 -vt 0.020690 0.781250 -vt 0.662069 0.734375 -vt 0.648276 0.640625 -vt 0.565517 0.640625 -vt 0.551724 0.625000 -vt 0.565517 0.625000 -vt 0.606897 0.390625 -vt 0.551724 0.375000 -vt 0.662069 0.375000 -vt 0.620690 0.484375 -vt 0.551724 0.500000 -vt 0.117241 0.906250 -vt 0.075862 0.875000 -vt 0.117241 0.875000 -vt 0.158621 0.125000 -vt 0.117241 0.156250 -vt 0.117241 0.125000 -vt 0.117241 0.906250 -vt 0.158621 0.875000 -vt 0.158621 0.906250 -vt 0.144828 0.250000 -vt 0.131034 0.250000 -vt 0.213793 0.875000 -vt 0.220690 0.781250 -vt 0.220690 0.875000 -vt 0.062069 0.781250 -vt 0.020690 0.875000 -vt 0.144828 0.281250 -vt 0.186207 0.250000 -vt 0.186207 0.281250 -vt 0.213793 0.765625 -vt 0.172414 0.781250 -vt 0.172414 0.750000 -vt 0.131034 0.281250 -vt 0.089655 0.250000 -vt 0.075862 0.906250 -vt 0.020690 0.906250 -vt 0.020690 0.890625 -vt 0.020690 0.765625 -vt 0.020690 0.750000 -vt 0.062069 0.750000 -vt 0.544828 0.203125 -vt 0.551724 0.250000 -vt 0.544828 0.250000 -vt 0.531034 0.203125 -vt 0.524138 0.250000 -vt 0.524138 0.203125 -vt 0.510345 0.203125 -vt 0.503448 0.250000 -vt 0.503448 0.203125 -vt 0.537931 0.250000 -vt 0.537931 0.203125 -vt 0.510345 0.296875 -vt 0.503448 0.296875 -vt 0.531034 0.250000 -vt 0.524138 0.296875 -vt 0.531034 0.203125 -vt 0.531034 0.187500 -vt 0.537931 0.187500 -vt 0.544828 0.187500 -vt 0.551724 0.187500 -vt 0.551724 0.203125 -vt 0.503448 0.203125 -vt 0.503448 0.187500 -vt 0.510345 0.187500 -vt 0.517241 0.187500 -vt 0.524138 0.187500 -vt 0.524138 0.203125 -vt 0.544828 0.156250 -vt 0.537931 0.156250 -vt 0.531034 0.156250 -vt 0.524138 0.187500 -vt 0.524138 0.156250 -vt 0.510345 0.156250 -vt 0.503448 0.156250 -vt 0.524138 0.156250 -vt 0.517241 0.156250 -vt 0.551724 0.156250 -vt 0.496552 0.187500 -vt 0.496552 0.156250 -vt 0.496552 0.250000 -vt 0.496552 0.203125 -vt 0.979310 0.515625 -vt 0.986207 0.484375 -vt 0.986207 0.515625 -vt 0.213793 0.890625 -vt 0.565517 0.515625 -vt 0.551724 0.500000 -vt 0.565517 0.500000 -vt 0.517241 0.250000 -vt 0.510345 0.250000 -vt 0.524138 0.250000 -vt 0.517241 0.296875 -vt 0.544828 0.296875 -vt 0.496552 0.296875 -vt 0.537931 0.296875 -vt 0.531034 0.296875 -vt 0.517241 0.203125 -vt 0.213793 0.109375 -vt 0.220690 0.265625 -vt 0.213793 0.265625 -vt 0.972414 0.515625 -vt 0.979310 0.484375 -vt 0.220690 0.109375 -vt 0.227586 0.265625 -vt 0.965517 0.515625 -vt 0.972414 0.484375 -vt 0.186207 0.109375 -vt 0.193103 0.265625 -vt 0.186207 0.265625 -vt 0.958621 0.515625 -vt 0.965517 0.484375 -vt 0.193103 0.109375 -vt 0.200000 0.265625 -vt 0.198836 0.288749 -vt 0.193103 0.296248 -vt 0.187370 0.288749 -vt 0.200000 0.109375 -vt 0.206897 0.265625 -vt 0.206897 0.109375 -vt 0.201164 0.288749 -vt 0.201164 0.273751 -vt 0.212630 0.273751 -vt 0.972414 0.468750 -vt 0.979310 0.484375 -vt 0.979310 0.468750 -vt 0.958621 0.468750 -vt 0.965517 0.468750 -vt 0.958621 0.484375 -vt 0.965517 0.453125 -vt 0.958621 0.437500 -vt 0.965517 0.421875 -vt 0.965517 0.437500 -vt 0.972414 0.453125 -vt 0.979310 0.453125 -vt 0.986207 0.453125 -vt 0.986207 0.468750 -vt 0.972414 0.437500 -vt 0.965517 0.453125 -vt 0.986207 0.453125 -vt 0.979310 0.437500 -vt 0.986207 0.437500 -vt 0.972414 0.421875 -vt 0.979310 0.343750 -vt 0.979310 0.421875 -vt 0.986207 0.421875 -vt 0.965517 0.328125 -vt 0.972414 0.328125 -vt 0.965517 0.343750 -vt 0.986207 0.343750 -vt 0.958621 0.421875 -vt 0.965517 0.343750 -vt 0.972414 0.343750 -vt 0.979310 0.328125 -vt 0.986207 0.296875 -vt 0.986207 0.328125 -vt 0.986207 0.343750 -vt 0.958621 0.281250 -vt 0.965517 0.250000 -vt 0.965517 0.281250 -vt 0.958621 0.328125 -vt 0.965517 0.296875 -vt 0.972414 0.296875 -vt 0.979310 0.296875 -vt 0.979310 0.296875 -vt 0.972414 0.281250 -vt 0.979310 0.281250 -vt 0.958621 0.296875 -vt 0.986207 0.250000 -vt 0.986207 0.281250 -vt 0.979310 0.250000 -vt 0.972414 0.250000 -vt 0.539805 0.495450 -vt 0.539959 0.508696 -vt 0.506403 0.692192 -vt 0.539824 0.629444 -vt 0.512254 0.691859 -vt 0.544674 0.484410 -vt 0.551565 0.500009 -vt 0.544695 0.609268 -vt 0.539977 0.616199 -vt 0.489655 0.156250 -vt 0.510345 0.046875 -vt 0.510345 0.156250 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.093750 -vt 0.151724 0.093750 -vt 0.158621 0.078125 -vt 0.165517 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.186207 0.046875 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.200000 0.062500 -vt 0.193103 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.510345 0.562500 -vt 0.455172 0.562500 -vt 0.455172 0.546875 -vt 0.620690 0.515625 -vt 0.565517 0.515625 -vt 0.565517 0.750000 -vt 0.551724 0.734375 -vt 0.565517 0.734375 -vt 0.620690 0.515625 -vt 0.565517 0.609375 -vt 0.565517 0.515625 -vt 0.448276 0.515625 -vt 0.455172 0.609375 -vt 0.448276 0.609375 -vt 0.524138 0.609375 -vt 0.510345 0.515625 -vt 0.524138 0.515625 -vt 0.455172 0.578125 -vt 0.455172 0.562500 -vt 0.510345 0.562500 -vt 0.565517 0.625000 -vt 0.551724 0.609375 -vt 0.565517 0.609375 -vt 0.565517 0.500000 -vt 0.551724 0.484375 -vt 0.565517 0.484375 -vt 0.565517 0.390625 -vt 0.551724 0.375000 -vt 0.565517 0.375000 -vt 0.565517 0.484375 -vt 0.551724 0.484375 -vt 0.551724 0.515625 -vt 0.565517 0.609375 -vt 0.551724 0.609375 -vt 0.565517 0.640625 -vt 0.551724 0.640625 -vt 0.565517 0.390625 -vt 0.551724 0.390625 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.565517 0.734375 -vt 0.551724 0.750000 -vt 0.551724 0.734375 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.551583 0.624874 -vt 0.510212 0.718578 -vt 0.512238 0.433055 -vt 0.255172 -0.000000 -vt 0.227586 0.125000 -vt 0.227586 -0.000000 -vt 0.227586 0.500000 -vt 0.255172 0.625000 -vt 0.227586 0.625000 -vt 0.255172 0.750000 -vt 0.227586 0.875000 -vt 0.227586 0.750000 -vt 0.227586 0.250000 -vt 0.255172 0.375000 -vt 0.227586 0.375000 -vt 0.255172 0.500000 -vt 0.255172 0.250000 -vt 0.255172 0.125000 -vt 0.227586 1.000000 -vt 0.255172 0.875000 -vt 0.255172 1.000000 -vt 0.185647 0.407982 -vt 0.181809 0.433762 -vt 0.158206 0.423338 -vt 0.227246 0.501121 -vt 0.215680 0.509781 -vt 0.201106 0.462288 -vt 0.226770 0.624909 -vt 0.215543 0.616068 -vt 0.220300 0.563004 -vt 0.185661 0.717018 -vt 0.181941 0.690910 -vt 0.202736 0.659045 -vt 0.131028 0.716313 -vt 0.134829 0.690268 -vt 0.158386 0.701199 -vt 0.089995 0.623885 -vt 0.101155 0.615205 -vt 0.113984 0.658150 -vt 0.089997 0.501305 -vt 0.101178 0.509856 -vt 0.096611 0.562314 -vt 0.130816 0.408077 -vt 0.134644 0.434152 -vt 0.113890 0.466628 -vt 0.117241 0.000640 -vt 0.144545 0.062500 -vt 0.117241 0.124360 -vt 0.282000 0.461238 -vt 0.267164 0.508207 -vt 0.255663 0.499249 -vt 0.324503 0.423194 -vt 0.301337 0.432859 -vt 0.297766 0.407469 -vt 0.368692 0.466561 -vt 0.347882 0.434234 -vt 0.351705 0.408442 -vt 0.386036 0.561123 -vt 0.381418 0.509360 -vt 0.392481 0.500826 -vt 0.368830 0.657546 -vt 0.381587 0.613816 -vt 0.392687 0.622102 -vt 0.324106 0.701882 -vt 0.347834 0.691162 -vt 0.351758 0.717531 -vt 0.279544 0.658120 -vt 0.300333 0.691179 -vt 0.296432 0.717486 -vt 0.262317 0.561201 -vt 0.266830 0.614350 -vt 0.255589 0.622775 -vt 0.606897 0.125000 -vt 0.662069 0.218750 -vt 0.724138 0.218750 -vt 0.682759 0.375000 -vt 0.551724 1.000000 -vt 0.662069 0.906250 -vt 0.724138 0.906250 -vt 0.324138 0.843750 -vt 0.324138 0.875000 -vt 0.324138 0.890625 -vt 0.324138 0.781250 -vt 0.737931 0.765625 -vt 0.724138 0.406250 -vt 0.724138 0.750000 -vt 0.696552 0.453125 -vt 0.696552 0.671875 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.303448 0.046875 -vt 0.259370 0.124136 -vt 0.255554 0.115489 -vt 0.255554 0.103261 -vt 0.259370 0.094614 -vt 0.264768 0.094614 -vt 0.289655 0.046875 -vt 0.262069 0.046875 -vt 0.358621 0.046875 -vt 0.344828 0.046875 -vt 0.317241 0.046875 -vt 0.296552 0.062500 -vt 0.282759 0.062500 -vt 0.275862 0.062500 -vt 0.262069 0.062500 -vt 0.358621 0.062500 -vt 0.337931 0.062500 -vt 0.324138 0.062500 -vt 0.310345 0.062500 -vt 0.227586 0.781250 -vt 0.441379 0.609375 -vt 0.903448 0.249458 -vt 0.864604 0.213006 -vt 0.864604 0.036995 -vt 0.942292 0.036994 -vt 0.942292 0.213005 -vt 0.351724 0.765625 -vt 0.275862 0.718750 -vt 0.255172 0.906250 -vt 0.331034 0.953125 -vt 0.942292 0.463005 -vt 0.903448 0.499458 -vt 0.864604 0.463005 -vt 0.864604 0.286994 -vt 0.942292 0.286994 -vt 0.737931 -0.000000 -vt 0.296552 0.093750 -vt 0.268966 0.187500 -vt 0.262069 0.140625 -vt 0.296552 0.093750 -vt 0.303448 0.171875 -vt 0.268966 0.187500 -vt 0.358621 0.171875 -vt 0.324138 0.093750 -vt 0.696552 0.437500 -vt 0.731034 0.437500 -vt 0.420690 0.859375 -vt 0.479310 0.953125 -vt 0.468966 -0.000000 -vt 0.351724 0.313754 -vt 0.363190 0.358748 -vt 0.340258 0.358748 -vt 0.255172 0.250000 -vt 0.340258 0.266252 -vt 0.351724 0.251254 -vt 0.363190 0.266252 -vt 0.848276 0.625000 -vt 0.944828 0.500000 -vt 0.958621 0.000000 -vt 0.978890 0.244165 -vt 0.965937 0.244165 -vt 0.959461 0.218750 -vt 0.724138 0.140625 -vt 0.724138 0.046875 -vt 0.675862 0.187500 -vt 0.655172 0.171875 -vt 0.655172 0.078125 -vt 0.641379 0.187500 -vt 0.634483 0.078125 -vt 0.634483 0.046875 -vt 0.634483 0.109375 -vt 0.634483 0.015625 -vt 0.630883 0.028561 -vt 0.624290 0.028561 -vt 0.620993 0.015625 -vt 0.413793 0.812500 -vt 0.489655 0.000000 -vt 0.468966 0.156250 -vt 0.531034 0.046875 -vt 0.468966 0.312500 -vt 0.455172 0.859375 -vt 0.434483 0.718750 -vt 0.524138 0.828125 -vt 0.979310 0.609375 -vt 0.979310 0.515625 -vt 0.972414 0.562500 -vt 0.606897 0.734375 -vt 0.006897 0.875000 -vt 0.551724 0.640625 -vt 0.158621 0.156250 -vt 0.117241 0.875000 -vt 0.213793 0.781250 -vt 0.213793 0.750000 -vt 0.089655 0.281250 -vt 0.551724 0.203125 -vt 0.213793 0.906250 -vt 0.551724 0.515625 -vt 0.524138 0.296875 -vt 0.551724 0.296875 -vt 0.524138 0.203125 -vt 0.227586 0.109375 -vt 0.958621 0.484375 -vt 0.187370 0.273751 -vt 0.193103 0.266252 -vt 0.198836 0.273751 -vt 0.206897 0.266252 -vt 0.212630 0.288749 -vt 0.206897 0.296248 -vt 0.958621 0.453125 -vt 0.958621 0.343750 -vt 0.958621 0.250000 -vt 0.958621 0.296875 -vt 0.551568 0.515616 -vt 0.544680 0.515623 -vt 0.489655 0.046875 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.455172 0.531250 -vt 0.510345 0.531250 -vt 0.551724 0.750000 -vt 0.620690 0.609375 -vt 0.455172 0.515625 -vt 0.510345 0.609375 -vt 0.510345 0.593750 -vt 0.455172 0.593750 -vt 0.551724 0.625000 -vt 0.551724 0.500000 -vt 0.551724 0.390625 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.551583 0.609269 -vt 0.544695 0.640480 -vt 0.517133 0.702938 -vt 0.517104 0.422013 -vt 0.106793 0.119651 -vt 0.097935 0.106242 -vt 0.092016 0.086173 -vt 0.089938 0.062500 -vt 0.092016 0.038827 -vt 0.097935 0.018758 -vt 0.106793 0.005349 -vt 0.127690 0.005349 -vt 0.136548 0.018758 -vt 0.142467 0.038827 -vt 0.142467 0.086173 -vt 0.136548 0.106242 -vt 0.127690 0.119651 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.310345 0.000000 -vt 0.296552 0.000000 -vt 0.282759 0.000000 -vt 0.268966 0.000000 -vt 0.365517 0.000000 -vt 0.351724 0.000000 -vt 0.337931 0.000000 -vt 0.324138 0.000000 -vt 0.255172 0.000000 -vt 0.310345 0.093750 -vt 0.317241 0.093750 -vt 0.296552 0.093750 -vt 0.303448 0.093750 -vt 0.282759 0.093750 -vt 0.289655 0.093750 -vt 0.268966 0.093750 -vt 0.275862 0.093750 -vt 0.324138 0.093750 -vt 0.331034 0.093750 -vt 0.337931 0.093750 -vt 0.344828 0.093750 -vt 0.351724 0.093750 -vt 0.358621 0.093750 -vt 0.255172 0.093750 -vt 0.262069 0.093750 -vt 0.958621 0.609375 -vt 0.965517 0.593750 -vt 0.965517 0.609375 -vt 0.958621 0.562500 -vt 0.965517 0.546875 -vt 0.965517 0.562500 -vt 0.986207 0.578125 -vt 0.965517 0.625000 -vt 0.958621 0.625000 -vt 0.958621 0.578125 -vt 0.965517 0.578125 -vt 0.986207 0.562500 -vt 0.958621 0.531250 -vt 0.965517 0.515625 -vt 0.965517 0.531250 -vt 0.958621 0.640625 -vt 0.965517 0.640625 -vt 0.958621 0.593750 -vt 0.979310 0.562500 -vt 0.986207 0.546875 -vt 0.958621 0.546875 -vt 0.979310 0.546875 -vt 0.965517 0.593750 -vt 0.972414 0.609375 -vt 0.965517 0.609375 -vt 0.965517 0.656250 -vt 0.972414 0.640625 -vt 0.972414 0.656250 -vt 0.965517 0.546875 -vt 0.972414 0.531250 -vt 0.972414 0.546875 -vt 0.965517 0.703125 -vt 0.972414 0.687500 -vt 0.972414 0.703125 -vt 0.972414 0.578125 -vt 0.972414 0.593750 -vt 0.965517 0.625000 -vt 0.965517 0.640625 -vt 0.965517 0.515625 -vt 0.965517 0.531250 -vt 0.965517 0.671875 -vt 0.965517 0.687500 -vt 0.965517 0.562500 -vt 0.965517 0.578125 -vt 0.972414 0.625000 -vt 0.972414 0.671875 -vt 0.972414 0.562500 -vt 0.296552 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.234375 -vt 0.296552 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.203125 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.203125 -vt 0.296552 0.218750 -vt 0.296552 0.203125 -vt 0.296552 0.187500 -vt 0.310345 0.218750 -vt 0.324138 0.234375 -vt 0.310345 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.310345 0.250000 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.203125 -vt 0.296552 0.218750 -vt 0.296552 0.203125 -vt 0.310345 0.187500 -vt 0.296552 0.187500 -vt 0.310345 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.203125 -vt 0.310345 0.250000 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.203125 -vt 0.296552 0.218750 -vt 0.296552 0.203125 -vt 0.310345 0.187500 -vt 0.296552 0.187500 -vt 0.310345 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.255172 0.234375 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.203125 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.187500 -vt 0.255172 0.203125 -vt 0.255172 0.218750 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.187500 -vt 0.310345 0.218750 -vt 0.296552 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.296552 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.203125 -vt 0.296552 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.234375 -vt 0.310345 0.218750 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.310345 0.187500 -vt 0.296552 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.203125 -vt 0.296552 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.234375 -vt 0.310345 0.218750 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.324138 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.203125 -vt 0.255172 0.218750 -vt 0.255172 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.218750 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.234375 -vt 0.255172 0.250000 -vt 0.255172 0.250000 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.179310 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.172414 0.390625 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.179310 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.255172 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.234375 -vt 0.255172 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.203125 -vt 0.296552 0.250000 -vt 0.255172 0.250000 -vt 0.296552 0.218750 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.324138 0.218750 -vt 0.255172 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.234375 -vt 0.255172 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.203125 -vt 0.296552 0.250000 -vt 0.255172 0.250000 -vt 0.296552 0.218750 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.324138 0.218750 -vt 0.255172 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.234375 -vt 0.255172 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.203125 -vt 0.296552 0.250000 -vt 0.255172 0.250000 -vt 0.296552 0.218750 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.324138 0.218750 -vt 0.089655 0.375000 -vt 0.075862 0.421875 -vt 0.075862 0.375000 -vt 0.075862 0.328125 -vt 0.089655 0.328125 -vt 0.075862 0.281250 -vt 0.089655 0.281250 -vt 0.075862 0.234375 -vt 0.089655 0.234375 -vt 0.075862 0.187500 -vt 0.089655 0.187500 -vt 0.089655 0.140625 -vt 0.075862 0.140625 -vt 0.089655 0.093750 -vt 0.075862 0.093750 -vt 0.089655 0.046875 -vt 0.075862 0.046875 -vt 0.089655 -0.000000 -vt 0.075862 0.000000 -vt 0.089655 0.750000 -vt 0.075862 0.703125 -vt 0.089655 0.703125 -vt 0.075862 0.656250 -vt 0.089655 0.656250 -vt 0.089655 0.609375 -vt 0.075862 0.609375 -vt 0.075862 0.562500 -vt 0.089655 0.562500 -vt 0.075862 0.515625 -vt 0.089655 0.515625 -vt 0.075862 0.468750 -vt 0.089655 0.468750 -vt 0.089655 0.421875 -vt 0.055172 0.375000 -vt 0.055172 0.328125 -vt 0.055172 -0.000000 -vt 0.055172 0.421875 -vt 0.055172 0.046875 -vt 0.055172 0.468750 -vt 0.055172 0.093750 -vt 0.055172 0.515625 -vt 0.055172 0.140625 -vt 0.055172 0.562500 -vt 0.055172 0.187500 -vt 0.055172 0.609375 -vt 0.055172 0.234375 -vt 0.055172 0.656250 -vt 0.055172 0.281250 -vt 0.075862 0.750000 -vt 0.055172 0.703125 -vt 0.000000 0.125000 -vt 0.000000 0.093750 -vt -0.000000 0.546875 -vt 0.000000 0.515625 -vt -0.000000 0.140625 -vt -0.000000 0.593750 -vt -0.000000 0.562500 -vt 0.000000 0.218750 -vt 0.000000 0.187500 -vt 0.000000 0.609375 -vt -0.000000 0.234375 -vt 0.000000 0.687500 -vt 0.000000 0.656250 -vt -0.000000 0.281250 -vt 0.055172 0.750000 -vt 0.000000 0.703125 -vt -0.000000 0.406250 -vt -0.000000 0.375000 -vt 0.000000 0.328125 -vt 0.000000 0.031250 -vt -0.000000 0.000000 -vt 0.000000 0.421875 -vt -0.000000 0.046875 -vt -0.000000 0.500000 -vt 0.000000 0.468750 -vt 0.393103 0.937500 -vt 0.413793 1.000000 -vt 0.393103 1.000000 -vt 0.393103 0.500000 -vt 0.413793 0.562500 -vt 0.393103 0.562500 -vt 0.393103 0.437500 -vt 0.413793 0.500000 -vt 0.393103 -0.000000 -vt 0.413793 0.062500 -vt 0.393103 0.062500 -vt 0.413793 0.625000 -vt 0.393103 0.625000 -vt 0.413793 0.125000 -vt 0.393103 0.125000 -vt 0.413793 0.687500 -vt 0.393103 0.687500 -vt 0.413793 0.187500 -vt 0.393103 0.187500 -vt 0.413793 0.750000 -vt 0.393103 0.750000 -vt 0.413793 0.250000 -vt 0.393103 0.250000 -vt 0.413793 0.812500 -vt 0.393103 0.812500 -vt 0.413793 0.312500 -vt 0.393103 0.312500 -vt 0.413793 0.875000 -vt 0.393103 0.875000 -vt 0.413793 0.375000 -vt 0.393103 0.375000 -vt 0.413793 0.937500 -vt 0.413793 0.437500 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.958621 0.515625 -vt 0.972414 0.515625 -vt 0.310345 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.187500 -vt 0.324138 0.250000 -vt 0.324138 0.218750 -vt 0.255172 0.250000 -vt 0.255172 0.250000 -vt 0.255172 0.250000 -vt 0.324138 0.187500 -vt 0.310345 0.187500 -vt 0.255172 0.187500 -vt 0.255172 0.187500 -vt 0.255172 0.187500 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.296552 0.187500 -vt 0.296552 0.187500 -vt 0.296552 0.187500 -vt -0.000000 0.171875 -vt 0.000000 0.640625 -vt -0.000000 0.265625 -vt -0.000000 0.312500 -vt -0.000000 0.734375 -vt 0.000000 0.359375 -vt -0.000000 0.453125 -vt -0.000000 0.078125 -vt 0.413793 -0.000000 -vn -1.0000 0.0000 0.0000 -vn 0.7071 -0.7071 -0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 -vn -0.7071 -0.7071 -0.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 1.0000 0.0000 -vn -0.7071 -0.7071 0.0057 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.9487 -0.3162 -vn 0.0000 0.4472 -0.8944 -vn 0.1617 0.3904 0.9063 -vn 0.1617 0.3905 0.9063 -vn 0.1752 0.8806 0.4403 -vn 0.0859 0.4318 -0.8979 -vn 0.9845 -0.1567 -0.0783 -vn -0.0859 -0.4318 0.8978 -vn -0.9695 0.2320 -0.0783 -vn -0.7071 0.7071 0.0000 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.3827 -0.9239 -vn 0.7071 0.7071 0.0000 -vn -0.3162 0.3162 -0.8944 -vn 0.0000 0.4226 -0.9063 -vn 0.0000 0.9063 0.4226 -vn -0.7071 0.6409 0.2988 -vn 0.7071 0.6409 0.2988 -vn 0.0000 0.7934 0.6088 -vn 0.0000 0.1305 -0.9914 -vn 0.0000 0.5000 0.8660 -vn 0.0000 0.5000 -0.8660 -vn 0.0000 -0.5000 -0.8660 -vn 0.0000 -0.5000 0.8660 -vn 0.6547 0.3780 -0.6547 -vn 0.6547 -0.3780 -0.6547 -vn 0.6547 -0.3780 0.6547 -vn 0.6547 0.7559 0.0000 -vn 0.6547 -0.7559 0.0000 -vn 0.6547 0.3780 0.6547 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 -vn -0.5000 -0.7849 -0.3660 -vn -0.0000 -0.4226 0.9063 -vn -0.2357 0.2357 0.9428 -vn 0.2357 0.2357 0.9428 -vn -0.2357 -0.2357 -0.9428 -vn -0.2357 -0.2357 0.9428 -vn 0.0000 -0.9285 0.3714 -vn 0.0000 0.9285 -0.3714 -vn 0.0000 -0.9900 -0.1407 -vn 0.0000 0.9900 0.1407 -vn -0.1617 -0.3904 0.9063 -vn -0.1617 -0.3905 0.9063 -vn 0.3904 -0.1617 0.9063 -vn 0.3905 -0.1617 0.9063 -vn -0.3904 0.1617 0.9063 -vn -0.3905 0.1617 0.9063 -vn 0.3905 0.1617 0.9063 -vn 0.3904 0.1617 0.9063 -vn -0.3905 -0.1617 0.9063 -vn -0.3904 -0.1617 0.9063 -vn 0.1617 -0.3905 0.9063 -vn 0.1617 -0.3904 0.9063 -vn -0.1617 0.3905 0.9063 -vn -0.1617 0.3904 0.9063 -vn -0.1752 -0.8806 0.4403 -vn -0.0859 -0.4318 -0.8979 -vn -0.9845 0.1567 -0.0783 -vn 0.0859 0.4318 0.8978 -vn 0.9695 -0.2320 -0.0783 -vn 0.8806 -0.1752 0.4403 -vn 0.4318 -0.0859 -0.8979 -vn -0.1567 -0.9845 -0.0783 -vn -0.4318 0.0859 0.8978 -vn 0.2320 0.9695 -0.0783 -vn -0.8806 0.1752 0.4403 -vn -0.4318 0.0859 -0.8979 -vn 0.1567 0.9845 -0.0783 -vn 0.4318 -0.0859 0.8978 -vn -0.2320 -0.9695 -0.0783 -vn 0.7465 0.4988 0.4403 -vn 0.3661 0.2446 -0.8979 -vn 0.5854 -0.8070 -0.0783 -vn -0.3661 -0.2446 0.8978 -vn -0.5215 0.8496 -0.0783 -vn -0.7465 -0.4988 0.4403 -vn -0.3661 -0.2446 -0.8979 -vn -0.5854 0.8070 -0.0783 -vn 0.3661 0.2446 0.8978 -vn 0.5215 -0.8496 -0.0783 -vn 0.4988 -0.7465 0.4403 -vn 0.2446 -0.3661 -0.8979 -vn -0.8070 -0.5854 -0.0783 -vn -0.2446 0.3661 0.8978 -vn 0.8496 0.5215 -0.0783 -vn -0.4988 0.7465 0.4403 -vn -0.2446 0.3661 -0.8979 -vn 0.8070 0.5854 -0.0783 -vn 0.2446 -0.3661 0.8978 -vn -0.8496 -0.5215 -0.0783 -vn 0.4988 0.7465 0.4403 -vn 0.2446 0.3661 -0.8979 -vn 0.8496 -0.5215 -0.0783 -vn -0.2446 -0.3661 0.8978 -vn -0.8070 0.5854 -0.0783 -vn -0.4988 -0.7465 0.4403 -vn -0.2446 -0.3661 -0.8979 -vn -0.8496 0.5215 -0.0783 -vn 0.2446 0.3661 0.8978 -vn 0.8070 -0.5854 -0.0783 -vn 0.7465 -0.4988 0.4403 -vn 0.3661 -0.2446 -0.8979 -vn -0.5215 -0.8496 -0.0783 -vn -0.3661 0.2446 0.8978 -vn 0.5854 0.8070 -0.0783 -vn -0.7465 0.4988 0.4403 -vn -0.3661 0.2446 -0.8979 -vn 0.5215 0.8496 -0.0783 -vn 0.3661 -0.2446 0.8978 -vn -0.5854 -0.8070 -0.0783 -vn 0.8806 0.1752 0.4403 -vn 0.4318 0.0859 -0.8979 -vn 0.2320 -0.9696 -0.0783 -vn -0.4318 -0.0859 0.8978 -vn -0.1567 0.9845 -0.0783 -vn -0.8806 -0.1752 0.4403 -vn -0.4318 -0.0859 -0.8979 -vn -0.2320 0.9696 -0.0783 -vn 0.4318 0.0859 0.8978 -vn 0.1567 -0.9845 -0.0783 -vn 0.1752 -0.8806 0.4403 -vn 0.0859 -0.4318 -0.8979 -vn -0.9696 -0.2320 -0.0783 -vn -0.0859 0.4318 0.8978 -vn 0.9845 0.1567 -0.0783 -vn -0.1752 0.8806 0.4403 -vn -0.0859 0.4318 -0.8979 -vn 0.9696 0.2320 -0.0783 -vn 0.0859 -0.4318 0.8978 -vn -0.9845 -0.1567 -0.0783 -vn -0.7082 -0.7060 -0.0004 -vn -0.7085 -0.7057 0.0000 -vn 0.0859 0.4318 -0.8978 -vn -0.0859 -0.4318 -0.8978 -vn 0.4318 -0.0859 -0.8978 -vn -0.4318 0.0859 -0.8978 -vn 0.3661 0.2446 -0.8978 -vn -0.3661 -0.2446 -0.8978 -vn 0.2446 -0.3661 -0.8978 -vn -0.2446 0.3661 -0.8978 -vn 0.2446 0.3661 -0.8978 -vn -0.2446 -0.3661 -0.8978 -vn 0.3661 -0.2446 -0.8978 -vn -0.3661 0.2446 -0.8978 -vn 0.4318 0.0859 -0.8978 -vn -0.4318 -0.0859 -0.8978 -vn 0.0859 -0.4318 -0.8978 -vn -0.0859 0.4318 -0.8978 -vn 0.7311 -0.6303 -0.2611 -vn 0.9973 0.0609 0.0399 -vn 0.7430 -0.5190 -0.4226 -vn 0.6721 0.5735 0.4683 -vn 0.6333 0.7150 0.2962 -vn -0.9947 0.0948 0.0393 -vn -0.6721 0.5735 0.4683 -vn -0.6333 0.7150 0.2962 -vn -0.7311 -0.6303 -0.2611 -vn -0.9973 0.0609 0.0399 -vn 0.0000 -0.7779 -0.6284 -vn 0.9947 0.0948 0.0393 -vn 0.0000 0.7690 0.6392 -vn -0.7430 -0.5190 -0.4226 -vn -0.9989 0.0183 0.0441 -vn -0.6840 0.2791 0.6739 -vn 0.6840 0.2791 0.6739 -vn 0.7317 -0.2608 -0.6297 -vn -0.7317 -0.2608 -0.6297 -vn 0.0000 0.3827 0.9239 -vn 0.9989 0.0183 0.0441 -vn 0.7317 0.0000 -0.6816 -vn -0.7317 0.0000 -0.6816 -vn -0.9989 0.0000 0.0477 -vn -0.6841 -0.0000 0.7294 -vn 0.6840 -0.0000 0.7294 -vn 0.9989 0.0000 0.0477 -vn 0.0000 -0.1951 0.9808 -vn 0.6770 -0.1436 0.7219 -vn 0.9988 -0.0095 0.0477 -vn 0.7251 0.1344 -0.6754 -vn 0.0000 0.1951 -0.9808 -vn -0.9988 -0.0095 0.0477 -vn -0.6770 -0.1436 0.7219 -vn -0.7251 0.1344 -0.6754 -vn 0.8985 0.3215 -0.2988 -vn 0.9239 -0.3827 -0.0000 -vn -0.4080 0.8627 -0.2988 -vn 0.3468 0.8373 -0.4226 -vn -0.9239 0.3827 0.0000 -vn -0.8985 -0.3215 0.2988 -vn 0.4080 -0.8627 0.2988 -vn -0.3468 -0.8373 0.4226 -vn -0.4080 0.8627 -0.2989 -vn 0.3827 0.9239 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.3827 -0.9239 0.0000 -vn -0.3827 -0.9239 0.0000 -vn -0.9239 -0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.0000 -0.9063 -0.4226 -vn -0.8660 0.4532 0.2113 -vn 0.2588 0.8754 0.4082 -vn 0.5000 0.7849 0.3660 -vn 0.5000 -0.7849 -0.3660 -vn -0.8660 -0.4532 -0.2113 -vn 0.8660 0.4532 0.2113 -vn -0.5000 0.7849 0.3660 -vn -0.2588 0.8754 0.4082 -vn 0.7071 -0.6409 -0.2988 -vn 0.9659 -0.2346 -0.1094 -vn 0.8660 -0.4532 -0.2113 -vn 0.6947 0.6947 0.1866 -vn 0.8431 -0.0945 0.5293 -vn 0.9891 0.0283 0.1448 -vn -0.3812 0.9204 0.0866 -vn -0.0945 0.8431 0.5294 -vn 0.0283 0.9891 0.1448 -vn 0.0945 0.8431 0.5294 -vn 0.3812 0.9204 0.0866 -vn -0.0283 0.9891 0.1448 -vn -0.8431 -0.0945 0.5293 -vn -0.6947 0.6947 0.1866 -vn -0.9891 0.0283 0.1448 -vn -0.9204 -0.3812 0.0866 -vn -0.5000 0.5000 0.7071 -vn 0.2384 0.6572 0.7150 -vn -0.8446 -0.4619 0.2706 -vn -0.6572 -0.2384 0.7150 -vn 0.5345 0.7559 0.3780 -vn 0.4619 0.8446 0.2706 -vn -0.8431 -0.0945 0.5294 -vn -0.7559 -0.5345 0.3780 -vn 0.5000 0.5000 0.7071 -vn 0.9204 -0.3812 0.0866 -vn 0.8446 -0.4619 0.2706 -vn -0.2384 0.6572 0.7150 -vn 0.2706 0.2706 0.9239 -vn 0.6572 -0.2384 0.7150 -vn 0.7559 -0.5345 0.3780 -vn -0.5345 0.7559 0.3780 -vn -0.4619 0.8446 0.2706 -vn 0.8431 -0.0945 0.5294 -vn -0.7311 0.6303 -0.2611 -vn -0.9973 -0.0609 0.0399 -vn -0.7430 0.5190 -0.4226 -vn -0.6721 -0.5735 0.4683 -vn -0.6333 -0.7150 0.2962 -vn 0.9947 -0.0948 0.0393 -vn 0.6721 -0.5735 0.4683 -vn 0.6333 -0.7150 0.2962 -vn 0.7311 0.6303 -0.2611 -vn 0.9973 -0.0609 0.0399 -vn -0.0000 0.7779 -0.6284 -vn -0.9947 -0.0948 0.0393 -vn -0.0000 -0.7690 0.6392 -vn 0.7430 0.5190 -0.4226 -vn 0.9989 -0.0183 0.0441 -vn 0.6841 -0.2791 0.6739 -vn -0.6840 -0.2791 0.6739 -vn -0.7317 0.2608 -0.6297 -vn 0.7317 0.2608 -0.6297 -vn -0.9989 -0.0183 0.0441 -vn 0.6841 -0.0000 0.7294 -vn -0.6840 0.0000 0.7294 -vn -0.0000 0.1951 0.9808 -vn -0.6770 0.1436 0.7219 -vn -0.9988 0.0095 0.0477 -vn -0.7251 -0.1344 -0.6754 -vn -0.0000 -0.1951 -0.9808 -vn 0.9988 0.0095 0.0477 -vn 0.6770 0.1436 0.7219 -vn 0.7251 -0.1344 -0.6754 -vn -0.8985 -0.3215 -0.2988 -vn 0.4080 -0.8627 -0.2988 -vn -0.3468 -0.8373 -0.4226 -vn 0.8985 0.3215 0.2988 -vn -0.4080 0.8627 0.2988 -vn 0.3468 0.8373 0.4226 -vn 0.4080 -0.8627 -0.2989 -vn -0.6303 -0.7311 -0.2611 -vn 0.0609 -0.9973 0.0399 -vn -0.5190 -0.7430 -0.4226 -vn 0.9239 -0.0000 0.3827 -vn 0.5735 -0.6721 0.4683 -vn 0.7150 -0.6333 0.2962 -vn 0.0948 0.9947 0.0393 -vn 0.5735 0.6721 0.4683 -vn 0.7150 0.6333 0.2962 -vn -0.6303 0.7311 -0.2611 -vn 0.0609 0.9973 0.0399 -vn -0.9239 -0.0000 -0.3827 -vn -0.7779 -0.0000 -0.6284 -vn 0.0948 -0.9947 0.0393 -vn 0.7690 -0.0000 0.6392 -vn -0.5190 0.7430 -0.4226 -vn 0.0183 0.9989 0.0441 -vn 0.2791 0.6841 0.6739 -vn 0.2791 -0.6840 0.6739 -vn -0.2608 -0.7317 -0.6297 -vn -0.2608 0.7317 -0.6297 -vn 0.3827 -0.0000 0.9239 -vn 0.0183 -0.9989 0.0441 -vn -0.3827 -0.0000 -0.9239 -vn 0.0000 -0.7317 -0.6816 -vn 0.0000 0.7317 -0.6816 -vn 0.0000 0.9989 0.0477 -vn 0.0000 0.6841 0.7294 -vn -0.0000 -0.6840 0.7294 -vn 0.0000 -0.9989 0.0477 -vn -0.1951 -0.0000 0.9808 -vn -0.1436 -0.6770 0.7219 -vn -0.0095 -0.9988 0.0477 -vn 0.1344 -0.7251 -0.6754 -vn 0.1951 -0.0000 -0.9808 -vn -0.0095 0.9988 0.0477 -vn -0.1436 0.6770 0.7219 -vn 0.1344 0.7251 -0.6754 -vn 0.3215 -0.8985 -0.2988 -vn 0.8627 0.4080 -0.2988 -vn 0.8373 -0.3468 -0.4226 -vn -0.3215 0.8985 0.2988 -vn -0.8627 -0.4080 0.2988 -vn -0.8373 0.3468 0.4226 -vn 0.8627 0.4080 -0.2989 -vn 0.6303 0.7311 -0.2611 -vn -0.0609 0.9973 0.0399 -vn 0.5190 0.7430 -0.4226 -vn -0.9239 0.0000 0.3827 -vn -0.5735 0.6721 0.4683 -vn -0.7150 0.6333 0.2962 -vn -0.0948 -0.9947 0.0393 -vn -0.5735 -0.6721 0.4683 -vn -0.7150 -0.6333 0.2962 -vn 0.6303 -0.7311 -0.2611 -vn -0.0609 -0.9973 0.0399 -vn 0.9239 0.0000 -0.3827 -vn 0.7779 0.0000 -0.6284 -vn -0.0948 0.9947 0.0393 -vn -0.7690 0.0000 0.6392 -vn 0.5190 -0.7430 -0.4226 -vn -0.0183 -0.9989 0.0441 -vn -0.2791 -0.6840 0.6739 -vn -0.2791 0.6840 0.6739 -vn 0.2608 0.7317 -0.6297 -vn 0.2608 -0.7317 -0.6297 -vn -0.3827 0.0000 0.9239 -vn -0.0183 0.9989 0.0441 -vn 0.3827 0.0000 -0.9239 -vn -0.0000 -0.6841 0.7294 -vn 0.0000 0.6840 0.7294 -vn 0.1951 0.0000 0.9808 -vn 0.1436 0.6770 0.7219 -vn 0.0095 0.9988 0.0477 -vn -0.1344 0.7251 -0.6754 -vn -0.1951 0.0000 -0.9808 -vn 0.0095 -0.9988 0.0477 -vn 0.1436 -0.6770 0.7219 -vn -0.1344 -0.7251 -0.6754 -vn -0.3215 0.8985 -0.2988 -vn -0.8627 -0.4080 -0.2988 -vn -0.8373 0.3468 -0.4226 -vn 0.3215 -0.8985 0.2988 -vn 0.8373 -0.3468 0.4226 -vn 0.8627 0.4080 0.2988 -vn -0.8627 -0.4080 -0.2989 -vn 0.3215 -0.8985 0.2989 -vn 0.0712 -0.9627 -0.2611 -vn 0.7483 -0.6622 0.0399 -vn 0.1584 -0.8924 -0.4226 -vn 0.6533 0.6533 0.3827 -vn 0.8808 -0.0697 0.4683 -vn 0.9534 0.0578 0.2962 -vn -0.6364 0.7704 0.0393 -vn -0.0697 0.8808 0.4683 -vn 0.0578 0.9534 0.2962 -vn -0.9627 0.0712 -0.2611 -vn -0.6622 0.7483 0.0399 -vn -0.6533 -0.6533 -0.3827 -vn -0.5501 -0.5501 -0.6284 -vn 0.7704 -0.6363 0.0393 -vn 0.5438 0.5438 0.6392 -vn -0.8924 0.1584 -0.4226 -vn -0.6934 0.7192 0.0441 -vn -0.2863 0.6811 0.6739 -vn 0.6811 -0.2863 0.6739 -vn 0.3330 -0.7018 -0.6297 -vn -0.7018 0.3330 -0.6297 -vn 0.7192 -0.6934 0.0441 -vn -0.2706 -0.2706 -0.9239 -vn 0.5174 -0.5174 -0.6816 -vn -0.5174 0.5174 -0.6816 -vn -0.7063 0.7063 0.0477 -vn -0.4837 0.4837 0.7294 -vn 0.4837 -0.4837 0.7294 -vn 0.7063 -0.7063 0.0477 -vn -0.1379 -0.1379 0.9808 -vn 0.3772 -0.5802 0.7219 -vn 0.6996 -0.7130 0.0477 -vn 0.6077 -0.4177 -0.6754 -vn 0.1380 0.1379 -0.9808 -vn -0.7130 0.6996 0.0477 -vn -0.5802 0.3772 0.7219 -vn -0.4177 0.6077 -0.6754 -vn 0.8627 -0.4080 -0.2988 -vn 0.3215 0.8985 -0.2988 -vn 0.8373 0.3468 -0.4226 -vn -0.8627 0.4080 0.2988 -vn -0.3215 -0.8985 0.2988 -vn -0.8373 -0.3468 0.4226 -vn 0.3215 0.8985 -0.2989 -vn -0.0712 0.9627 -0.2611 -vn -0.7483 0.6622 0.0399 -vn -0.1584 0.8924 -0.4226 -vn -0.6533 -0.6533 0.3827 -vn -0.8808 0.0697 0.4683 -vn -0.9534 -0.0578 0.2962 -vn 0.6364 -0.7704 0.0393 -vn 0.0697 -0.8808 0.4683 -vn -0.0578 -0.9534 0.2962 -vn 0.9627 -0.0712 -0.2611 -vn 0.6622 -0.7483 0.0399 -vn 0.6533 0.6533 -0.3827 -vn 0.5501 0.5501 -0.6284 -vn -0.7704 0.6363 0.0393 -vn -0.5438 -0.5438 0.6392 -vn 0.8924 -0.1584 -0.4226 -vn 0.6934 -0.7192 0.0441 -vn 0.2863 -0.6811 0.6739 -vn -0.6811 0.2863 0.6739 -vn -0.3330 0.7018 -0.6297 -vn 0.7018 -0.3330 -0.6297 -vn -0.2706 -0.2706 0.9239 -vn -0.7192 0.6934 0.0441 -vn 0.2706 0.2706 -0.9239 -vn 0.1379 0.1379 0.9808 -vn -0.3772 0.5802 0.7219 -vn -0.6996 0.7130 0.0477 -vn -0.6077 0.4177 -0.6754 -vn -0.1380 -0.1380 -0.9808 -vn 0.7130 -0.6996 0.0477 -vn 0.5802 -0.3772 0.7219 -vn 0.4177 -0.6077 -0.6754 -vn -0.8627 0.4080 -0.2988 -vn -0.3215 -0.8985 -0.2988 -vn -0.8373 -0.3468 -0.4226 -vn 0.8627 -0.4080 0.2988 -vn 0.3215 0.8985 0.2988 -vn 0.8373 0.3468 0.4226 -vn -0.8627 0.4080 -0.2989 -vn -0.3215 -0.8985 -0.2989 -vn 0.8627 -0.4080 0.2989 -vn -0.9627 -0.0712 -0.2611 -vn -0.6622 -0.7483 0.0399 -vn -0.8924 -0.1584 -0.4226 -vn 0.6533 -0.6533 0.3827 -vn -0.0697 -0.8808 0.4683 -vn 0.0578 -0.9534 0.2962 -vn 0.7704 0.6364 0.0393 -vn 0.8808 0.0697 0.4683 -vn 0.9534 -0.0578 0.2962 -vn 0.0712 0.9627 -0.2611 -vn 0.7483 0.6622 0.0399 -vn -0.6533 0.6533 -0.3827 -vn -0.5501 0.5501 -0.6284 -vn -0.6363 -0.7704 0.0393 -vn 0.5438 -0.5438 0.6392 -vn 0.1584 0.8924 -0.4226 -vn 0.7192 0.6934 0.0441 -vn 0.6811 0.2863 0.6739 -vn -0.2863 -0.6811 0.6739 -vn -0.7018 -0.3330 -0.6297 -vn 0.3330 0.7018 -0.6297 -vn 0.2706 -0.2706 0.9239 -vn -0.6934 -0.7192 0.0441 -vn -0.2706 0.2706 -0.9239 -vn -0.5174 -0.5174 -0.6816 -vn 0.5174 0.5174 -0.6816 -vn 0.7063 0.7063 0.0477 -vn 0.4837 0.4837 0.7294 -vn -0.4837 -0.4837 0.7294 -vn -0.7063 -0.7063 0.0477 -vn -0.1379 0.1379 0.9808 -vn -0.5802 -0.3772 0.7219 -vn -0.7130 -0.6996 0.0477 -vn -0.4177 -0.6077 -0.6754 -vn 0.1379 -0.1380 -0.9808 -vn 0.6996 0.7130 0.0477 -vn 0.3772 0.5802 0.7219 -vn 0.6077 0.4177 -0.6754 -vn -0.4080 -0.8627 -0.2988 -vn 0.8985 -0.3215 -0.2988 -vn 0.3468 -0.8373 -0.4226 -vn 0.4080 0.8627 0.2988 -vn -0.8985 0.3215 0.2988 -vn -0.3468 0.8373 0.4226 -vn 0.8985 -0.3215 -0.2989 -vn 0.9627 0.0712 -0.2611 -vn 0.6622 0.7483 0.0399 -vn 0.8924 0.1584 -0.4226 -vn -0.6533 0.6533 0.3827 -vn 0.0697 0.8808 0.4683 -vn -0.0578 0.9534 0.2962 -vn -0.7704 -0.6363 0.0393 -vn -0.8808 -0.0697 0.4683 -vn -0.9534 0.0578 0.2962 -vn -0.0713 -0.9627 -0.2611 -vn -0.7483 -0.6622 0.0399 -vn 0.6533 -0.6533 -0.3827 -vn 0.5501 -0.5501 -0.6284 -vn 0.6363 0.7704 0.0393 -vn -0.5438 0.5438 0.6392 -vn -0.1584 -0.8924 -0.4226 -vn -0.7192 -0.6934 0.0441 -vn -0.6811 -0.2863 0.6739 -vn 0.2863 0.6811 0.6739 -vn 0.7018 0.3330 -0.6297 -vn -0.3330 -0.7018 -0.6297 -vn -0.2706 0.2706 0.9239 -vn 0.6934 0.7192 0.0441 -vn 0.2706 -0.2706 -0.9239 -vn 0.1379 -0.1379 0.9808 -vn 0.5802 0.3772 0.7219 -vn 0.7130 0.6996 0.0477 -vn 0.4177 0.6077 -0.6754 -vn -0.1379 0.1380 -0.9808 -vn -0.6996 -0.7130 0.0477 -vn -0.3772 -0.5802 0.7219 -vn -0.6077 -0.4177 -0.6754 -vn 0.4080 0.8627 -0.2988 -vn -0.8985 0.3215 -0.2988 -vn -0.3468 0.8373 -0.4226 -vn -0.4080 -0.8627 0.2988 -vn 0.3468 -0.8373 0.4226 -vn 0.8985 -0.3215 0.2988 -vn 0.4080 0.8627 -0.2989 -vn -0.8985 0.3215 -0.2989 -vn -0.4080 -0.8627 0.2989 -vn 0.6794 0.7194 0.1448 -vn -0.6794 0.7194 0.1448 -vn 0.9204 0.3812 0.0866 -vn -0.0000 0.9824 0.1866 -vn -0.9239 0.2706 0.2706 -vn -0.6630 0.5294 0.5294 -vn 0.9239 0.2706 0.2706 -vn 0.6630 0.5294 0.5294 -vn 0.6333 0.2962 0.7150 -vn -0.9125 0.1566 0.3780 -vn -0.6333 0.2962 0.7150 -vn 0.9125 0.1566 0.3780 -vn 0.0000 -0.8944 0.4472 -vn 0.3423 -0.8263 0.4472 -vn -0.3423 -0.8263 0.4472 -vn -0.6325 -0.6325 0.4472 -vn -0.8263 -0.3423 0.4472 -vn -0.8944 -0.0000 0.4472 -vn -0.8263 0.3423 0.4472 -vn -0.6325 0.6325 0.4472 -vn -0.3423 0.8263 0.4472 -vn 0.0000 0.8944 0.4472 -vn 0.3423 0.8263 0.4472 -vn 0.6325 0.6325 0.4472 -vn 0.8263 0.3423 0.4472 -vn 0.8944 0.0000 0.4472 -vn 0.8263 -0.3423 0.4472 -vn 0.6325 -0.6325 0.4472 -vn -0.3162 0.3162 0.8944 -vn -0.4132 0.1711 0.8944 -vn 0.4132 -0.1711 0.8944 -vn 0.4472 -0.0000 0.8944 -vn -0.4472 -0.0000 0.8944 -vn 0.4132 0.1711 0.8944 -vn -0.4132 -0.1711 0.8944 -vn 0.3162 0.3162 0.8944 -vn -0.3162 -0.3162 0.8944 -vn 0.1711 0.4132 0.8944 -vn -0.1711 -0.4132 0.8944 -vn -0.0000 0.4472 0.8944 -vn 0.0000 -0.4472 0.8944 -vn 0.1711 -0.4132 0.8944 -vn -0.1711 0.4132 0.8944 -vn 0.3162 -0.3162 0.8944 -vn -0.9204 0.3812 0.0866 -s off -f 229/323/124 230/324/124 231/325/124 -f 233/326/125 235/327/125 236/328/125 -f 235/327/126 240/329/126 241/330/126 -f 243/331/127 237/332/127 242/333/127 -f 245/334/128 243/335/128 231/325/128 -f 243/336/129 233/337/129 232/338/129 -f 247/339/130 241/330/130 246/340/130 -f 248/341/124 250/342/124 251/343/124 -f 250/342/124 229/323/124 228/344/124 -f 248/341/131 254/345/131 249/346/131 -f 256/347/124 258/348/124 255/349/124 -f 260/350/124 262/351/124 259/352/124 -f 264/353/124 266/354/124 263/355/124 -f 268/356/124 270/357/124 267/358/124 -f 272/359/124 274/360/124 271/361/124 -f 263/355/124 267/358/124 262/351/124 -f 257/362/124 256/347/124 272/359/124 -f 263/363/127 276/364/127 264/365/127 -f 262/366/132 275/367/132 263/368/132 -f 257/369/130 279/370/130 258/371/130 -f 258/372/132 280/373/132 259/374/132 -f 282/375/124 284/376/124 281/377/124 -f 285/378/124 275/367/124 277/379/124 -f 279/370/124 286/380/124 280/373/124 -f 288/381/124 290/382/124 287/383/124 -f 266/384/132 281/377/132 268/385/132 -f 265/386/130 282/375/130 266/387/130 -f 269/388/133 283/389/133 265/390/133 -f 259/391/127 286/380/127 260/392/127 -f 264/393/133 285/378/133 261/394/133 -f 261/395/130 277/379/130 262/396/130 -f 260/397/133 278/398/133 257/399/133 -f 268/400/127 284/376/127 269/401/127 -f 256/402/133 288/381/133 273/403/133 -f 273/404/130 287/383/130 274/405/130 -f 274/406/132 290/382/132 255/407/132 -f 255/408/127 289/409/127 256/410/127 -f 235/327/133 292/411/133 240/329/133 -f 235/327/133 234/412/133 291/413/133 -f 251/343/133 294/414/133 248/341/133 -f 248/341/133 294/414/133 253/415/133 -f 240/416/134 246/340/134 241/330/134 -f 293/417/134 252/418/134 295/419/134 -f 295/419/130 228/344/130 296/420/130 -f 298/421/135 300/422/135 297/423/135 -f 238/424/135 299/425/135 298/421/135 -f 300/422/135 228/426/135 297/423/135 -f 301/427/136 303/428/136 304/429/136 -f 306/430/136 308/431/136 305/432/136 -f 309/433/136 311/434/136 312/435/136 -f 310/436/136 314/437/136 311/434/136 -f 315/438/137 304/429/137 316/439/137 -f 302/440/136 308/431/136 303/428/136 -f 309/433/136 307/441/136 306/430/136 -f 313/442/136 316/443/136 314/437/136 -f 324/444/136 318/445/136 320/446/136 -f 326/447/136 328/448/136 325/449/136 -f 326/447/136 330/450/136 327/451/136 -f 331/452/137 330/450/137 329/453/137 -f 333/454/136 332/455/136 331/456/136 -f 335/457/137 334/458/137 333/454/137 -f 335/457/137 338/459/137 336/460/137 -f 337/461/136 340/462/136 338/459/136 -f 339/463/137 328/448/137 340/462/137 -f 342/464/138 344/465/138 341/466/138 -f 345/467/139 344/465/139 343/468/139 -f 347/469/140 343/468/140 342/464/140 -f 347/470/141 341/466/141 348/471/141 -f 348/472/142 344/465/142 346/473/142 -f 350/474/132 352/475/132 349/476/132 -f 358/477/132 359/478/132 360/479/132 -f 349/476/132 362/480/132 361/481/132 -f 363/482/132 362/483/132 364/484/132 -f 363/482/132 366/485/132 365/486/132 -f 365/487/132 368/488/132 367/489/132 -f 367/489/132 370/490/132 369/491/132 -f 371/492/132 370/493/132 372/494/132 -f 371/492/132 351/495/132 350/474/132 -f 373/496/132 375/497/132 376/498/132 -f 377/499/132 374/500/132 373/501/132 -f 380/502/132 377/503/132 379/504/132 -f 382/505/132 379/506/132 381/507/132 -f 384/508/132 381/509/132 383/510/132 -f 385/511/132 384/512/132 383/513/132 -f 387/514/132 386/515/132 385/516/132 -f 376/517/132 388/518/132 387/519/132 -f 668/520/133 1759/521/133 1760/522/133 -f 1756/523/143 1767/524/143 1755/525/143 -f 239/526/132 391/527/132 392/528/132 -f 236/529/132 393/530/132 394/531/132 -f 237/532/132 395/533/132 396/534/132 -f 242/535/132 397/536/132 398/537/132 -f 231/538/132 399/539/132 400/540/132 -f 1758/541/130 1769/542/130 1757/543/130 -f 403/544/124 405/545/124 407/546/124 -f 272/359/132 411/547/132 270/357/132 -f 271/361/127 410/548/127 272/359/127 -f 267/358/133 412/549/133 271/361/133 -f 270/357/130 413/550/130 267/358/130 -f 417/551/126 419/552/126 421/553/126 -f 421/554/144 404/555/144 403/556/144 -f 419/557/145 406/558/145 405/559/145 -f 415/560/146 402/561/146 409/562/146 -f 420/563/147 405/559/147 404/555/147 -f 418/564/148 407/565/148 406/558/148 -f 416/566/149 409/562/149 408/567/149 -f 414/568/150 403/556/150 402/561/150 -f 423/569/132 425/570/132 422/571/132 -f 427/572/133 429/573/133 426/574/133 -f 423/575/125 428/576/125 424/577/125 -f 425/570/143 426/578/143 422/579/143 -f 424/577/151 427/572/151 425/570/151 -f 422/580/128 429/581/128 423/575/128 -f 431/582/132 433/583/132 430/584/132 -f 435/585/133 437/586/133 434/587/133 -f 431/588/143 436/589/143 432/590/143 -f 433/583/125 434/591/125 430/592/125 -f 432/590/128 435/585/128 433/583/128 -f 430/592/151 437/593/151 431/594/151 -f 438/595/132 440/596/132 441/597/132 -f 442/598/133 444/599/133 445/600/133 -f 439/601/128 444/599/128 440/596/128 -f 441/597/151 442/602/151 438/603/151 -f 440/596/125 443/604/125 441/597/125 -f 438/605/143 445/606/143 439/601/143 -f 446/607/132 448/608/132 449/609/132 -f 450/610/133 452/611/133 453/612/133 -f 447/613/151 452/611/151 448/608/151 -f 449/609/128 450/614/128 446/615/128 -f 448/608/143 451/616/143 449/609/143 -f 446/615/125 453/617/125 447/618/125 -f 455/619/132 457/620/132 454/621/132 -f 459/622/152 461/623/152 458/624/152 -f 455/625/125 460/626/125 456/627/125 -f 457/620/143 458/624/143 454/628/143 -f 456/627/151 459/622/151 457/620/151 -f 455/625/128 458/629/128 461/630/128 -f 300/631/125 463/632/125 296/633/125 -f 299/634/128 464/635/128 465/636/128 -f 299/634/127 462/637/127 300/631/127 -f 465/636/135 463/638/135 462/637/135 -f 467/639/126 469/640/126 466/641/126 -f 470/642/124 472/643/124 473/644/124 -f 475/645/153 471/646/153 474/647/153 -f 474/647/154 477/648/154 475/645/154 -f 470/649/155 476/650/155 474/647/155 -f 469/651/156 477/648/156 466/652/156 -f 245/653/127 950/654/127 233/337/127 -f 479/655/157 481/656/157 478/657/157 -f 483/658/126 480/659/126 485/660/126 -f 480/661/146 486/662/146 481/656/146 -f 484/663/158 487/664/158 486/662/158 -f 478/665/124 481/666/124 486/667/124 -f 491/668/127 493/669/127 490/670/127 -f 491/668/126 495/671/126 492/672/126 -f 493/669/124 497/673/124 490/670/124 -f 499/674/133 501/675/133 498/676/133 -f 503/677/126 500/678/126 502/679/126 -f 505/680/124 498/676/124 504/681/124 -f 502/682/130 499/674/130 505/683/130 -f 504/684/127 501/675/127 503/685/127 -f 507/686/133 509/687/133 506/688/133 -f 511/689/127 508/690/127 510/691/127 -f 513/692/130 506/688/130 512/693/130 -f 510/694/126 507/686/126 513/695/126 -f 512/696/124 509/687/124 511/697/124 -f 515/698/127 517/699/127 514/700/127 -f 519/701/159 521/702/159 518/703/159 -f 523/704/160 525/705/160 522/706/160 -f 516/707/161 522/706/161 517/699/161 -f 520/708/162 514/709/162 521/702/162 -f 524/710/130 518/703/130 525/705/130 -f 514/711/126 517/712/126 522/713/126 -f 527/714/130 529/715/130 526/716/130 -f 531/717/127 533/718/127 530/719/127 -f 534/720/159 528/721/159 527/722/159 -f 526/723/160 537/724/160 536/725/160 -f 536/726/161 532/727/161 531/728/161 -f 530/729/162 535/730/162 534/731/162 -f 532/732/124 539/733/124 533/718/124 -f 528/721/124 540/734/124 541/735/124 -f 529/736/124 543/737/124 537/724/124 -f 532/727/124 543/737/124 538/738/124 -f 533/739/124 540/734/124 535/730/124 -f 528/740/124 542/741/124 529/715/124 -f 543/737/161 545/742/161 538/738/161 -f 539/743/162 547/744/162 540/734/162 -f 541/735/130 549/745/130 542/741/130 -f 538/738/127 546/746/127 539/733/127 -f 540/734/159 548/747/159 541/735/159 -f 542/741/160 544/748/160 543/737/160 -f 547/744/126 551/749/126 548/747/126 -f 548/747/126 552/750/126 549/745/126 -f 544/748/126 552/751/126 553/752/126 -f 544/748/126 554/753/126 545/742/126 -f 545/742/126 555/754/126 546/746/126 -f 547/744/126 555/755/126 550/756/126 -f 555/755/162 557/757/162 550/756/162 -f 551/758/130 559/759/130 552/750/130 -f 554/760/127 556/761/127 555/754/127 -f 550/762/159 558/763/159 551/749/159 -f 552/751/160 561/764/160 553/752/160 -f 553/765/161 560/766/161 554/753/161 -f 557/767/124 563/768/124 558/763/124 -f 558/769/124 564/770/124 559/759/124 -f 561/764/124 564/770/124 565/771/124 -f 561/772/124 566/773/124 560/766/124 -f 560/774/124 567/775/124 556/761/124 -f 557/757/124 567/776/124 562/777/124 -f 563/768/130 569/778/130 564/770/130 -f 566/773/127 571/779/127 567/775/127 -f 562/777/159 568/780/159 563/768/159 -f 564/770/160 573/781/160 565/771/160 -f 565/771/161 570/782/161 566/773/161 -f 567/776/162 572/783/162 562/777/162 -f 569/778/163 575/784/163 573/781/163 -f 573/781/164 576/785/164 570/782/164 -f 572/783/165 577/786/165 578/787/165 -f 568/780/166 574/788/166 569/778/166 -f 570/782/167 577/789/167 571/779/167 -f 568/780/168 578/790/168 579/791/168 -f 577/792/126 576/793/126 575/794/126 -f 581/795/130 583/796/130 580/797/130 -f 585/798/124 587/799/124 588/800/124 -f 582/801/133 590/802/133 583/796/133 -f 581/795/126 589/803/126 582/801/126 -f 583/796/124 592/804/124 580/797/124 -f 594/805/169 596/806/169 593/807/169 -f 593/808/124 598/809/124 597/810/124 -f 597/810/129 600/811/129 599/812/129 -f 594/805/126 600/811/126 595/813/126 -f 584/814/170 602/815/170 585/798/170 -f 587/816/133 604/817/133 588/818/133 -f 601/819/126 604/820/126 603/821/126 -f 602/815/169 586/822/169 585/798/169 -f 605/823/171 587/816/171 586/824/171 -f 584/814/129 604/825/129 601/819/129 -f 607/826/169 609/827/169 606/828/169 -f 610/829/126 608/830/126 607/831/126 -f 613/832/124 609/827/124 612/833/124 -f 612/833/171 608/830/171 611/834/171 -f 610/829/170 606/835/170 613/836/170 -f 615/837/124 624/838/124 625/839/124 -f 626/840/172 616/841/172 628/842/172 -f 623/843/173 633/844/173 624/838/173 -f 390/845/130 1689/846/130 297/423/130 -f 646/847/143 648/848/143 649/849/143 -f 1759/850/151 1772/851/151 1760/852/151 -f 297/423/143 652/853/143 653/854/143 -f 646/847/143 652/853/143 228/344/143 -f 297/423/143 649/849/143 648/848/143 -f 1755/855/128 1761/856/128 650/857/128 -f 656/858/151 239/859/151 238/860/151 -f 238/860/151 657/861/151 656/858/151 -f 389/862/151 657/861/151 298/421/151 -f 656/863/174 658/864/174 659/865/174 -f 646/866/151 661/867/151 652/868/151 -f 647/869/175 663/870/175 648/871/175 -f 661/867/143 665/872/143 664/873/143 -f 666/874/133 1756/875/133 1755/876/133 -f 659/877/151 669/878/151 668/520/151 -f 649/879/176 660/880/176 646/881/176 -f 1756/882/151 662/883/151 647/884/151 -f 653/885/177 661/886/177 664/873/177 -f 653/885/128 665/872/128 649/879/128 -f 657/887/125 655/888/125 1759/889/125 -f 1760/890/143 654/891/143 656/892/143 -f 670/893/124 672/894/124 673/895/124 -f 674/896/178 672/897/178 671/898/178 -f 677/899/126 679/900/126 676/901/126 -f 670/893/179 681/902/179 680/903/179 -f 679/900/126 682/904/126 683/905/126 -f 675/906/180 685/907/180 672/897/180 -f 680/908/126 674/909/126 686/910/126 -f 687/911/171 680/903/171 686/910/171 -f 687/911/124 671/912/124 670/913/124 -f 677/914/126 676/915/126 688/916/126 -f 689/917/171 677/899/171 688/916/171 -f 689/917/124 691/918/124 690/919/124 -f 693/920/133 686/910/133 692/921/133 -f 695/922/132 671/923/132 694/924/132 -f 697/925/126 676/915/126 696/926/126 -f 699/927/124 689/917/124 698/928/124 -f 694/929/124 687/911/124 693/920/124 -f 698/928/133 688/916/133 697/925/133 -f 696/926/132 691/930/132 699/931/132 -f 692/921/126 674/909/126 695/922/126 -f 676/901/178 700/932/178 691/933/178 -f 680/903/126 675/906/126 674/896/126 -f 702/934/130 704/935/130 701/936/130 -f 662/883/143 666/874/143 663/870/143 -f 663/870/128 666/874/128 1755/937/128 -f 1757/938/124 1765/939/124 1688/940/124 -f 705/941/181 682/904/181 678/942/181 -f 700/943/124 706/944/124 705/941/124 -f 672/894/124 708/945/124 673/895/124 -f 679/900/180 707/946/180 700/932/180 -f 675/906/126 709/947/126 684/948/126 -f 673/895/181 709/947/181 681/902/181 -f 690/949/124 700/943/124 705/941/124 -f 690/949/179 678/942/179 677/899/179 -f 711/950/161 713/951/161 710/952/161 -f 714/953/132 703/954/132 702/934/132 -f 712/955/127 717/956/127 713/951/127 -f 718/957/127 715/958/127 714/953/127 -f 716/959/162 721/960/162 717/961/162 -f 701/962/133 719/963/133 718/957/133 -f 720/964/159 723/965/159 721/960/159 -f 722/966/126 720/967/126 716/968/126 -f 722/969/130 725/970/130 723/965/130 -f 724/971/160 710/952/160 725/970/160 -f 723/972/124 725/973/124 713/974/124 -f 719/963/125 727/975/125 715/958/125 -f 715/976/132 727/975/132 703/977/132 -f 704/978/133 726/979/133 719/980/133 -f 704/978/133 729/981/133 726/979/133 -f 728/982/127 731/983/127 729/984/127 -f 726/979/126 732/985/126 727/975/126 -f 727/975/132 733/986/132 703/977/132 -f 703/977/124 728/987/124 704/988/124 -f 729/984/126 734/989/126 732/990/126 -f 733/991/124 735/992/124 728/993/124 -f 734/989/169 733/986/169 732/985/169 -f 737/994/179 739/995/179 736/996/179 -f 729/984/126 737/994/126 734/989/126 -f 734/989/130 736/996/130 735/992/130 -f 735/992/124 730/997/124 728/993/124 -f 740/998/126 741/999/126 738/1000/126 -f 730/997/124 739/995/124 742/1001/124 -f 730/1002/178 740/1003/178 731/983/178 -f 731/983/126 738/1004/126 737/994/126 -f 741/999/171 739/995/171 738/1004/171 -f 743/1005/124 745/1006/124 742/1007/124 -f 742/1007/124 739/1008/124 743/1005/124 -f 745/1009/132 748/1010/132 746/1011/132 -f 742/1012/132 749/1013/132 740/998/132 -f 740/998/126 750/1014/126 741/999/126 -f 741/999/133 744/1015/133 743/1005/133 -f 750/1016/133 751/1017/133 744/1018/133 -f 746/1011/125 750/1014/125 749/1013/125 -f 745/1009/132 746/1011/132 749/1019/132 -f 744/1018/130 747/1020/130 745/1021/130 -f 751/1017/133 752/1022/133 744/1018/133 -f 746/1011/127 753/1023/127 751/1017/127 -f 391/527/132 1771/1024/132 1786/1025/132 -f 401/1026/132 1767/1027/132 1768/1028/132 -f 1771/1024/132 1764/1029/132 389/1030/132 -f 1786/1025/132 1770/1031/132 1785/1032/132 -f 592/1033/127 589/1034/127 591/1035/127 -f 951/1036/182 953/1037/182 954/1038/182 -f 956/1039/182 958/1040/182 955/1041/182 -f 959/1042/182 961/1043/182 962/1044/182 -f 960/1045/182 964/1046/182 961/1043/182 -f 965/1047/183 954/1038/183 966/1048/183 -f 952/1049/182 958/1040/182 953/1037/182 -f 956/1039/182 962/1044/182 957/1050/182 -f 963/1051/182 966/1052/182 964/1046/182 -f 974/1053/182 968/1054/182 970/1055/182 -f 976/1056/182 978/1057/182 975/1058/182 -f 976/1056/182 980/1059/182 977/1060/182 -f 981/1061/183 980/1059/183 979/1062/183 -f 983/1063/182 982/1064/182 981/1065/182 -f 983/1063/183 986/1066/183 984/1067/183 -f 985/1068/183 988/1069/183 986/1066/183 -f 987/1070/182 990/1071/182 988/1069/182 -f 989/1072/183 978/1057/183 990/1071/183 -f 1039/1073/184 1041/1074/184 1042/1075/184 -f 1044/1076/184 1046/1077/184 1043/1078/184 -f 1047/1079/184 1049/1080/184 1050/1081/184 -f 1048/1082/184 1052/1083/184 1049/1080/184 -f 1053/1084/185 1042/1075/185 1054/1085/185 -f 1040/1086/184 1046/1077/184 1041/1074/184 -f 1047/1079/184 1045/1087/184 1044/1076/184 -f 1051/1088/184 1054/1089/184 1052/1083/184 -f 1062/1090/184 1056/1091/184 1058/1092/184 -f 1064/1093/184 1066/1094/184 1063/1095/184 -f 1064/1093/184 1068/1096/184 1065/1097/184 -f 1069/1098/185 1068/1096/185 1067/1099/185 -f 1071/1100/184 1070/1101/184 1069/1102/184 -f 1073/1103/185 1072/1104/185 1071/1100/185 -f 1073/1103/185 1076/1105/185 1074/1106/185 -f 1075/1107/184 1078/1108/184 1076/1105/184 -f 1077/1109/185 1066/1094/185 1078/1108/185 -f 1127/1110/186 1129/1111/186 1130/1112/186 -f 1132/1113/186 1134/1114/186 1131/1115/186 -f 1135/1116/186 1137/1117/186 1138/1118/186 -f 1136/1119/186 1140/1120/186 1137/1117/186 -f 1141/1121/187 1130/1112/187 1142/1122/187 -f 1128/1123/186 1134/1114/186 1129/1111/186 -f 1135/1116/186 1133/1124/186 1132/1113/186 -f 1139/1125/186 1142/1126/186 1140/1120/186 -f 1150/1127/186 1144/1128/186 1146/1129/186 -f 1152/1130/186 1154/1131/186 1151/1132/186 -f 1152/1130/186 1156/1133/186 1153/1134/186 -f 1157/1135/187 1156/1133/187 1155/1136/187 -f 1159/1137/186 1158/1138/186 1157/1139/186 -f 1161/1140/187 1160/1141/187 1159/1137/187 -f 1161/1140/187 1164/1142/187 1162/1143/187 -f 1163/1144/186 1166/1145/186 1164/1142/186 -f 1165/1146/187 1154/1131/187 1166/1145/187 -f 1215/1147/188 1217/1148/188 1218/1149/188 -f 1220/1150/189 1222/1151/189 1219/1152/189 -f 1223/1153/188 1225/1154/188 1226/1155/188 -f 1224/1156/189 1228/1157/189 1225/1154/189 -f 1229/1158/188 1218/1149/188 1230/1159/188 -f 1216/1160/189 1222/1151/189 1217/1148/189 -f 1223/1153/189 1221/1161/189 1220/1150/189 -f 1227/1162/189 1230/1163/189 1228/1157/189 -f 1238/1164/188 1232/1165/188 1234/1166/188 -f 1240/1167/188 1242/1168/188 1239/1169/188 -f 1240/1167/189 1244/1170/189 1241/1171/189 -f 1245/1172/188 1244/1170/188 1243/1173/188 -f 1247/1174/189 1246/1175/189 1245/1176/189 -f 1249/1177/189 1248/1178/189 1247/1174/189 -f 1249/1177/188 1252/1179/188 1250/1180/188 -f 1251/1181/189 1254/1182/189 1252/1179/189 -f 1253/1183/188 1242/1168/188 1254/1182/188 -f 1303/1184/190 1305/1185/190 1306/1186/190 -f 1308/1187/191 1310/1188/191 1307/1189/191 -f 1311/1190/190 1313/1191/190 1314/1192/190 -f 1312/1193/191 1316/1194/191 1313/1191/191 -f 1317/1195/190 1306/1186/190 1318/1196/190 -f 1304/1197/191 1310/1188/191 1305/1185/191 -f 1311/1190/191 1309/1198/191 1308/1187/191 -f 1315/1199/191 1318/1200/191 1316/1194/191 -f 1326/1201/191 1320/1202/191 1322/1203/191 -f 1328/1204/190 1330/1205/190 1327/1206/190 -f 1328/1204/191 1332/1207/191 1329/1208/191 -f 1333/1209/190 1332/1207/190 1331/1210/190 -f 1335/1211/191 1334/1212/191 1333/1213/191 -f 1337/1214/190 1336/1215/190 1335/1211/190 -f 1337/1214/190 1340/1216/190 1338/1217/190 -f 1339/1218/191 1342/1219/191 1340/1216/191 -f 1341/1220/190 1330/1205/190 1342/1219/190 -f 1391/1221/192 1393/1222/192 1394/1223/192 -f 1396/1224/192 1398/1225/192 1395/1226/192 -f 1399/1227/192 1401/1228/192 1402/1229/192 -f 1400/1230/193 1404/1231/193 1401/1228/193 -f 1405/1232/193 1394/1223/193 1406/1233/193 -f 1392/1234/193 1398/1225/193 1393/1222/193 -f 1396/1224/193 1402/1229/193 1397/1235/193 -f 1403/1236/193 1406/1237/193 1404/1231/193 -f 1414/1238/192 1408/1239/192 1410/1240/192 -f 1416/1241/192 1418/1242/192 1415/1243/192 -f 1416/1241/193 1420/1244/193 1417/1245/193 -f 1421/1246/192 1420/1244/192 1419/1247/192 -f 1423/1248/193 1422/1249/193 1421/1250/193 -f 1425/1251/193 1424/1252/193 1423/1248/193 -f 1425/1251/192 1428/1253/192 1426/1254/192 -f 1427/1255/193 1430/1256/193 1428/1253/193 -f 1429/1257/192 1418/1242/192 1430/1256/192 -f 1479/1258/194 1481/1259/194 1482/1260/194 -f 1484/1261/195 1486/1262/195 1483/1263/195 -f 1487/1264/194 1489/1265/194 1490/1266/194 -f 1491/1267/195 1489/1265/195 1488/1268/195 -f 1493/1269/194 1482/1260/194 1494/1270/194 -f 1480/1271/195 1486/1262/195 1481/1259/195 -f 1487/1264/195 1485/1272/195 1484/1261/195 -f 1491/1267/195 1494/1273/195 1492/1274/195 -f 1502/1275/195 1496/1276/195 1498/1277/195 -f 1504/1278/194 1506/1279/194 1503/1280/194 -f 1504/1278/195 1508/1281/195 1505/1282/195 -f 1509/1283/194 1508/1281/194 1507/1284/194 -f 1511/1285/195 1510/1286/195 1509/1287/195 -f 1513/1288/194 1512/1289/194 1511/1285/194 -f 1513/1288/194 1516/1290/194 1514/1291/194 -f 1515/1292/195 1518/1293/195 1516/1290/195 -f 1517/1294/194 1506/1279/194 1518/1293/194 -f 1567/1295/196 1569/1296/196 1570/1297/196 -f 1571/1298/197 1570/1297/197 1569/1296/197 -f 1573/1299/198 1569/1296/198 1568/1300/198 -f 1573/1301/199 1567/1295/199 1574/1302/199 -f 1574/1303/200 1570/1297/200 1572/1304/200 -f 1576/1305/201 1578/1306/201 1575/1307/201 -f 1579/1308/202 1578/1306/202 1577/1309/202 -f 1581/1310/203 1577/1309/203 1576/1305/203 -f 1581/1311/204 1575/1307/204 1582/1312/204 -f 1582/1313/205 1578/1306/205 1580/1314/205 -f 1583/1315/206 1585/1316/206 1586/1317/206 -f 1587/1318/207 1586/1317/207 1585/1316/207 -f 1589/1319/208 1585/1316/208 1584/1320/208 -f 1589/1321/209 1583/1315/209 1590/1322/209 -f 1590/1323/210 1586/1317/210 1588/1324/210 -f 1591/1325/211 1593/1326/211 1594/1327/211 -f 1595/1328/212 1594/1327/212 1593/1326/212 -f 1597/1329/213 1593/1326/213 1592/1330/213 -f 1597/1331/214 1591/1325/214 1598/1332/214 -f 1598/1333/215 1594/1327/215 1596/1334/215 -f 1599/1335/216 1601/1336/216 1602/1337/216 -f 1603/1338/217 1602/1337/217 1601/1336/217 -f 1605/1339/218 1601/1336/218 1600/1340/218 -f 1605/1341/219 1599/1335/219 1606/1342/219 -f 1606/1343/220 1602/1337/220 1604/1344/220 -f 1608/1345/221 1610/1346/221 1607/1347/221 -f 1611/1348/222 1610/1346/222 1609/1349/222 -f 1613/1350/223 1609/1349/223 1608/1345/223 -f 1613/1351/224 1607/1347/224 1614/1352/224 -f 1614/1353/225 1610/1346/225 1612/1354/225 -f 1615/1355/226 1617/1356/226 1618/1357/226 -f 1619/1358/227 1618/1357/227 1617/1356/227 -f 1621/1359/228 1617/1356/228 1616/1360/228 -f 1621/1361/229 1615/1355/229 1622/1362/229 -f 1622/1363/230 1618/1357/230 1620/1364/230 -f 1624/1365/231 1626/1366/231 1623/1367/231 -f 1627/1368/232 1626/1366/232 1625/1369/232 -f 1629/1370/233 1625/1369/233 1624/1365/233 -f 1629/1371/234 1623/1367/234 1630/1372/234 -f 1630/1373/235 1626/1366/235 1628/1374/235 -f 1631/1375/236 1633/1376/236 1634/1377/236 -f 1635/1378/237 1634/1377/237 1633/1376/237 -f 1637/1379/238 1633/1376/238 1632/1380/238 -f 1637/1381/239 1631/1375/239 1638/1382/239 -f 1638/1383/240 1634/1377/240 1636/1384/240 -f 1639/1385/241 1641/1386/241 1642/1387/241 -f 1643/1388/242 1642/1387/242 1641/1386/242 -f 1645/1389/243 1641/1386/243 1640/1390/243 -f 1645/1391/244 1639/1385/244 1646/1392/244 -f 1646/1393/245 1642/1387/245 1644/1394/245 -f 1647/1395/246 1649/1396/246 1650/1397/246 -f 1651/1398/247 1650/1397/247 1649/1396/247 -f 1653/1399/248 1649/1396/248 1648/1400/248 -f 1653/1401/249 1647/1395/249 1654/1402/249 -f 1654/1403/250 1650/1397/250 1652/1404/250 -f 1655/1405/251 1657/1406/251 1658/1407/251 -f 1659/1408/252 1658/1407/252 1657/1406/252 -f 1661/1409/253 1657/1406/253 1656/1410/253 -f 1661/1411/254 1655/1405/254 1662/1412/254 -f 1662/1413/255 1658/1407/255 1660/1414/255 -f 1663/1415/256 1665/1416/256 1666/1417/256 -f 1667/1418/257 1666/1417/257 1665/1416/257 -f 1669/1419/258 1665/1416/258 1664/1420/258 -f 1669/1421/259 1663/1415/259 1670/1422/259 -f 1670/1423/260 1666/1417/260 1668/1424/260 -f 1672/1425/261 1674/1426/261 1671/1427/261 -f 1675/1428/262 1674/1426/262 1673/1429/262 -f 1677/1430/263 1673/1429/263 1672/1425/263 -f 1677/1431/264 1671/1427/264 1678/1432/264 -f 1678/1433/265 1674/1426/265 1676/1434/265 -f 1679/1435/266 1681/1436/266 1682/1437/266 -f 1683/1438/267 1682/1437/267 1681/1436/267 -f 1685/1439/268 1681/1436/268 1680/1440/268 -f 1685/1441/269 1679/1435/269 1686/1442/269 -f 1686/1443/270 1682/1437/270 1684/1444/270 -f 1691/1445/124 1692/1446/124 1757/1447/124 -f 297/423/130 1687/1448/130 298/421/130 -f 389/862/130 1687/1448/130 1688/1449/130 -f 651/1450/151 1768/1451/151 1756/1452/151 -f 1691/1453/130 1694/1454/130 1692/1455/130 -f 1757/1456/133 1694/1457/133 1758/1458/133 -f 1689/1459/132 1691/1460/132 1687/1461/132 -f 1758/1462/126 1694/1463/126 1693/1464/126 -f 1690/1465/126 1770/1466/126 1758/1467/126 -f 655/1468/125 1771/1469/125 1759/1470/125 -f 1760/1471/143 1763/1472/143 654/1473/143 -f 655/1474/151 389/862/151 1764/1475/151 -f 1688/1449/130 1765/1476/130 389/862/130 -f 1690/1477/130 390/845/130 1766/1478/130 -f 650/1479/143 1761/1480/143 390/845/143 -f 654/1481/151 1763/1482/151 239/859/151 -f 1775/1483/151 1774/1484/151 1776/1485/151 -f 1778/1486/130 1779/1487/130 1777/1488/130 -f 651/1489/143 227/1490/143 1762/1491/143 -f 1783/1492/143 1782/1493/143 1784/1494/143 -f 390/1495/132 1767/1027/132 1770/1031/132 -f 1768/1028/132 227/1496/132 401/1026/132 -f 239/526/132 1772/1497/132 391/527/132 -f 1788/1498/127 1790/1499/127 1787/1500/127 -f 1792/1501/130 1794/1502/130 1791/1503/130 -f 1796/1504/124 1798/1505/124 1795/1506/124 -f 1800/1507/126 1802/1508/126 1799/1509/126 -f 1799/1509/151 1793/1510/151 1792/1501/151 -f 1801/1511/125 1790/1499/125 1789/1512/125 -f 1787/1513/128 1797/1514/128 1788/1515/128 -f 1794/1502/143 1795/1506/143 1791/1503/143 -f 1799/1516/132 1803/1517/132 1804/1518/132 -f 1792/1519/132 1806/1520/132 1807/1521/132 -f 1791/1522/132 1808/1523/132 1809/1524/132 -f 1795/1525/132 1810/1526/132 1811/1527/132 -f 1798/1528/132 1812/1529/132 1813/1530/132 -f 1787/1531/132 1814/1532/132 1815/1533/132 -f 1790/1534/132 1816/1535/132 1817/1536/132 -f 1800/1537/132 1805/1538/132 1818/1539/132 -f 1826/1540/132 1830/1541/132 1834/1542/132 -f 1836/1543/133 1837/1544/133 1793/1545/133 -f 1839/1546/133 1835/1547/133 1802/1548/133 -f 1841/1549/133 1838/1550/133 1801/1551/133 -f 1843/1552/133 1840/1553/133 1789/1554/133 -f 1845/1555/133 1842/1556/133 1788/1557/133 -f 1847/1558/133 1844/1559/133 1797/1560/133 -f 1849/1561/133 1846/1562/133 1796/1563/133 -f 1850/1564/133 1848/1565/133 1794/1566/133 -f 231/325/124 227/1490/124 229/323/124 -f 227/1490/124 228/344/124 229/323/124 -f 237/332/125 232/1567/125 236/328/125 -f 232/1567/125 233/326/125 236/328/125 -f 950/1568/125 234/1569/125 235/327/125 -f 233/326/125 950/1568/125 235/327/125 -f 241/330/126 238/1570/126 235/327/126 -f 238/1570/126 239/859/126 236/328/126 -f 235/327/126 238/1570/126 236/328/126 -f 243/331/127 232/1567/127 237/332/127 -f 242/1571/128 231/325/128 243/335/128 -f 231/325/271 230/324/271 245/334/271 -f 230/324/272 244/1572/272 245/334/272 -f 243/336/129 245/653/129 233/337/129 -f 247/339/130 238/1570/130 241/330/130 -f 248/341/124 249/346/124 250/342/124 -f 228/344/124 252/418/124 250/342/124 -f 252/418/124 251/343/124 250/342/124 -f 248/341/131 253/1573/131 254/345/131 -f 256/347/124 257/362/124 258/348/124 -f 260/350/124 261/1574/124 262/351/124 -f 264/353/124 265/1575/124 266/354/124 -f 268/356/124 269/1576/124 270/357/124 -f 272/359/124 273/1577/124 274/360/124 -f 268/356/124 267/358/124 266/354/124 -f 267/358/124 271/361/124 262/351/124 -f 266/354/124 267/358/124 263/355/124 -f 271/361/124 274/360/124 255/349/124 -f 258/348/124 259/352/124 271/361/124 -f 259/352/124 262/351/124 271/361/124 -f 271/361/124 255/349/124 258/348/124 -f 272/359/124 270/357/124 261/1574/124 -f 270/357/124 269/1576/124 265/1575/124 -f 265/1575/124 264/353/124 270/357/124 -f 264/353/124 261/1574/124 270/357/124 -f 256/347/124 273/1577/124 272/359/124 -f 261/1574/124 260/350/124 272/359/124 -f 260/350/124 257/362/124 272/359/124 -f 263/363/127 275/367/127 276/364/127 -f 262/366/132 277/379/132 275/367/132 -f 257/369/130 278/398/130 279/370/130 -f 258/372/132 279/370/132 280/373/132 -f 282/375/124 283/389/124 284/376/124 -f 285/378/124 276/364/124 275/367/124 -f 279/370/124 278/398/124 286/380/124 -f 288/381/124 289/409/124 290/382/124 -f 266/384/132 282/375/132 281/377/132 -f 265/386/130 283/389/130 282/375/130 -f 269/388/133 284/376/133 283/389/133 -f 259/391/127 280/373/127 286/380/127 -f 264/393/133 276/364/133 285/378/133 -f 261/395/130 285/378/130 277/379/130 -f 260/397/133 286/380/133 278/398/133 -f 268/400/127 281/377/127 284/376/127 -f 256/402/133 289/409/133 288/381/133 -f 273/404/130 288/381/130 287/383/130 -f 274/406/132 287/383/132 290/382/132 -f 255/408/127 290/382/127 289/409/127 -f 235/327/133 291/413/133 292/411/133 -f 251/343/133 293/1578/133 294/414/133 -f 240/416/134 292/1579/134 246/340/134 -f 293/417/134 251/1580/134 252/418/134 -f 295/419/130 252/418/130 228/344/130 -f 298/421/135 299/425/135 300/422/135 -f 238/424/135 247/1581/135 299/425/135 -f 300/422/135 296/1582/135 228/426/135 -f 301/427/137 302/440/137 303/428/137 -f 306/430/136 307/441/136 308/431/136 -f 309/433/137 310/436/137 311/434/137 -f 310/436/136 313/442/136 314/437/136 -f 315/438/136 301/427/136 304/429/136 -f 302/440/136 305/432/136 308/431/136 -f 309/433/136 312/435/136 307/441/136 -f 313/442/137 315/1583/137 316/443/137 -f 324/444/136 317/1584/136 318/445/136 -f 318/445/136 319/1585/136 320/446/136 -f 320/446/136 321/1586/136 324/444/136 -f 321/1586/137 322/1587/137 324/444/137 -f 322/1587/136 323/1588/136 324/444/136 -f 326/447/137 327/451/137 328/448/137 -f 326/447/136 329/453/136 330/450/136 -f 331/452/136 332/1589/136 330/450/136 -f 333/454/137 334/458/137 332/455/137 -f 335/457/136 336/460/136 334/458/136 -f 335/457/136 337/461/136 338/459/136 -f 337/461/137 339/463/137 340/462/137 -f 339/463/136 325/449/136 328/448/136 -f 342/464/138 343/468/138 344/465/138 -f 345/467/273 346/1590/273 344/465/273 -f 347/469/140 345/1591/140 343/468/140 -f 347/470/141 342/464/141 341/466/141 -f 348/472/142 341/466/142 344/465/142 -f 350/474/132 351/1592/132 352/475/132 -f 360/479/132 353/1593/132 354/1594/132 -f 354/1594/132 355/1595/132 360/479/132 -f 355/1595/132 356/1596/132 360/479/132 -f 356/1596/132 357/1597/132 360/479/132 -f 357/1597/132 358/477/132 360/479/132 -f 349/476/132 352/1598/132 362/480/132 -f 363/482/132 361/481/132 362/483/132 -f 363/482/132 364/1599/132 366/485/132 -f 365/487/132 366/1600/132 368/488/132 -f 367/489/132 368/1601/132 370/490/132 -f 371/492/132 369/491/132 370/493/132 -f 371/492/132 372/1602/132 351/495/132 -f 373/496/132 374/1603/132 375/497/132 -f 377/499/132 378/1604/132 374/500/132 -f 380/502/132 378/1605/132 377/503/132 -f 382/505/132 380/1606/132 379/506/132 -f 384/508/132 382/1607/132 381/509/132 -f 385/511/132 386/1608/132 384/512/132 -f 387/514/132 388/1609/132 386/515/132 -f 376/517/132 375/1610/132 388/518/132 -f 668/520/133 669/878/133 1759/521/133 -f 1756/523/143 1768/1611/143 1767/524/143 -f 393/530/132 236/529/132 392/528/132 -f 236/529/132 239/526/132 392/528/132 -f 395/533/132 237/532/132 394/531/132 -f 237/532/132 236/529/132 394/531/132 -f 397/536/132 242/535/132 396/534/132 -f 242/535/132 237/532/132 396/534/132 -f 399/539/132 231/538/132 398/537/132 -f 231/538/132 242/535/132 398/537/132 -f 401/1026/132 227/1496/132 400/540/132 -f 227/1496/132 231/538/132 400/540/132 -f 1758/541/130 1770/1612/130 1769/542/130 -f 409/1613/124 402/1614/124 403/544/124 -f 403/544/124 404/1615/124 405/545/124 -f 405/545/124 406/1616/124 407/546/124 -f 407/546/124 408/1617/124 409/1613/124 -f 409/1613/124 403/544/124 407/546/124 -f 272/359/132 410/1618/132 411/547/132 -f 271/361/127 412/1619/127 410/548/127 -f 267/358/133 413/1620/133 412/549/133 -f 270/357/130 411/1621/130 413/550/130 -f 421/553/126 414/1622/126 415/1623/126 -f 415/1623/126 416/1624/126 417/551/126 -f 417/551/126 418/1625/126 419/552/126 -f 419/552/126 420/1626/126 421/553/126 -f 421/553/126 415/1623/126 417/551/126 -f 421/554/144 420/563/144 404/555/144 -f 419/557/145 418/564/145 406/558/145 -f 415/560/146 414/568/146 402/561/146 -f 420/563/147 419/557/147 405/559/147 -f 418/564/148 417/1627/148 407/565/148 -f 416/566/149 415/560/149 409/562/149 -f 414/568/150 421/554/150 403/556/150 -f 423/569/132 424/577/132 425/570/132 -f 427/572/133 428/576/133 429/573/133 -f 423/575/125 429/581/125 428/576/125 -f 425/570/143 427/572/143 426/578/143 -f 424/577/151 428/576/151 427/572/151 -f 422/580/128 426/1628/128 429/581/128 -f 431/582/132 432/590/132 433/583/132 -f 435/585/133 436/589/133 437/586/133 -f 431/588/143 437/1629/143 436/589/143 -f 433/583/125 435/585/125 434/591/125 -f 432/590/128 436/589/128 435/585/128 -f 430/592/151 434/591/151 437/593/151 -f 438/595/132 439/1630/132 440/596/132 -f 442/598/133 443/604/133 444/599/133 -f 439/601/128 445/606/128 444/599/128 -f 441/597/151 443/604/151 442/602/151 -f 440/596/125 444/599/125 443/604/125 -f 438/605/143 442/1631/143 445/606/143 -f 446/607/132 447/1632/132 448/608/132 -f 450/610/133 451/616/133 452/611/133 -f 447/613/151 453/1633/151 452/611/151 -f 449/609/128 451/616/128 450/614/128 -f 448/608/143 452/611/143 451/616/143 -f 446/615/125 450/614/125 453/617/125 -f 455/619/132 456/627/132 457/620/132 -f 459/622/152 460/1634/152 461/623/152 -f 455/625/125 461/630/125 460/626/125 -f 457/620/143 459/622/143 458/624/143 -f 456/627/151 460/626/151 459/622/151 -f 455/625/128 454/1635/128 458/629/128 -f 300/631/125 462/637/125 463/632/125 -f 299/634/128 247/1636/128 464/635/128 -f 299/634/127 465/636/127 462/637/127 -f 465/636/135 464/1637/135 463/638/135 -f 467/639/126 468/1638/126 469/640/126 -f 470/642/124 471/646/124 472/643/124 -f 475/645/153 469/640/153 468/1638/153 -f 468/1638/153 471/646/153 475/645/153 -f 471/646/153 470/642/153 474/647/153 -f 474/647/154 476/650/154 477/648/154 -f 470/649/155 473/1639/155 476/650/155 -f 469/651/156 475/645/156 477/648/156 -f 245/653/127 244/1640/127 950/654/127 -f 479/655/157 480/661/157 481/656/157 -f 485/660/126 482/1641/126 483/658/126 -f 483/658/126 484/1642/126 480/659/126 -f 480/659/126 479/1643/126 485/660/126 -f 480/661/146 484/663/146 486/662/146 -f 484/663/158 483/1644/158 487/664/158 -f 486/667/124 487/1645/124 478/665/124 -f 487/1645/124 488/1646/124 478/665/124 -f 488/1646/124 489/1647/124 478/665/124 -f 491/668/127 492/672/127 493/669/127 -f 491/668/126 494/1648/126 495/671/126 -f 493/669/124 496/1649/124 497/673/124 -f 499/674/133 500/678/133 501/675/133 -f 503/677/126 501/675/126 500/678/126 -f 505/680/124 499/674/124 498/676/124 -f 502/682/130 500/678/130 499/674/130 -f 504/684/127 498/676/127 501/675/127 -f 507/686/133 508/690/133 509/687/133 -f 511/689/127 509/687/127 508/690/127 -f 513/692/130 507/686/130 506/688/130 -f 510/694/126 508/690/126 507/686/126 -f 512/696/124 506/688/124 509/687/124 -f 515/698/127 516/707/127 517/699/127 -f 519/701/159 520/708/159 521/702/159 -f 523/704/160 524/710/160 525/705/160 -f 516/707/161 523/704/161 522/706/161 -f 520/708/162 515/1650/162 514/709/162 -f 524/710/130 519/701/130 518/703/130 -f 522/713/126 525/1651/126 514/711/126 -f 525/1651/126 518/1652/126 514/711/126 -f 518/1652/126 521/1653/126 514/711/126 -f 527/714/130 528/740/130 529/715/130 -f 531/717/127 532/732/127 533/718/127 -f 534/720/159 535/1654/159 528/721/159 -f 526/723/160 529/736/160 537/724/160 -f 536/726/161 537/1655/161 532/727/161 -f 530/729/162 533/739/162 535/730/162 -f 532/732/124 538/738/124 539/733/124 -f 528/721/124 535/1654/124 540/734/124 -f 529/736/124 542/741/124 543/737/124 -f 532/727/124 537/1655/124 543/737/124 -f 533/739/124 539/743/124 540/734/124 -f 528/740/124 541/735/124 542/741/124 -f 543/737/161 544/748/161 545/742/161 -f 539/743/162 546/1656/162 547/744/162 -f 541/735/130 548/747/130 549/745/130 -f 538/738/127 545/742/127 546/746/127 -f 540/734/159 547/744/159 548/747/159 -f 542/741/160 549/745/160 544/748/160 -f 547/744/126 550/762/126 551/749/126 -f 548/747/126 551/758/126 552/750/126 -f 544/748/126 549/745/126 552/751/126 -f 544/748/126 553/765/126 554/753/126 -f 545/742/126 554/760/126 555/754/126 -f 547/744/126 546/1656/126 555/755/126 -f 555/755/162 556/1657/162 557/757/162 -f 551/758/130 558/769/130 559/759/130 -f 554/760/127 560/774/127 556/761/127 -f 550/762/159 557/767/159 558/763/159 -f 552/751/160 559/1658/160 561/764/160 -f 553/765/161 561/772/161 560/766/161 -f 557/767/124 562/777/124 563/768/124 -f 558/769/124 563/768/124 564/770/124 -f 561/764/124 559/1658/124 564/770/124 -f 561/772/124 565/771/124 566/773/124 -f 560/774/124 566/773/124 567/775/124 -f 557/757/124 556/1657/124 567/776/124 -f 563/768/130 568/780/130 569/778/130 -f 566/773/127 570/782/127 571/779/127 -f 562/777/159 572/783/159 568/780/159 -f 564/770/160 569/778/160 573/781/160 -f 565/771/161 573/781/161 570/782/161 -f 567/776/162 571/1659/162 572/783/162 -f 569/778/163 574/1660/163 575/784/163 -f 573/781/164 575/1661/164 576/785/164 -f 572/783/165 571/1659/165 577/786/165 -f 568/780/166 579/1662/166 574/788/166 -f 570/782/167 576/1663/167 577/789/167 -f 568/780/168 572/783/168 578/790/168 -f 575/794/126 574/1664/126 577/792/126 -f 574/1664/126 579/1665/126 577/792/126 -f 579/1665/126 578/1666/126 577/792/126 -f 581/795/130 582/801/130 583/796/130 -f 588/800/124 584/814/124 585/798/124 -f 585/798/124 586/1667/124 587/799/124 -f 582/801/133 589/1668/133 590/802/133 -f 581/795/126 591/1669/126 589/803/126 -f 583/796/124 590/1670/124 592/804/124 -f 594/805/169 595/813/169 596/806/169 -f 593/808/124 596/1671/124 598/809/124 -f 597/810/129 598/809/129 600/811/129 -f 594/805/126 599/812/126 600/811/126 -f 584/814/170 601/819/170 602/815/170 -f 587/816/133 603/821/133 604/817/133 -f 605/823/126 602/815/126 603/821/126 -f 602/815/126 601/819/126 603/821/126 -f 602/815/169 605/1672/169 586/822/169 -f 605/823/171 603/821/171 587/816/171 -f 584/814/129 588/1673/129 604/825/129 -f 607/826/169 608/1674/169 609/827/169 -f 610/829/126 611/834/126 608/830/126 -f 613/832/124 606/828/124 609/827/124 -f 612/833/171 609/827/171 608/830/171 -f 610/829/170 607/831/170 606/835/170 -f 615/837/124 623/1675/124 624/838/124 -f 626/840/172 627/1676/172 616/841/172 -f 623/843/173 632/1677/173 633/844/173 -f 390/845/130 1690/1477/130 1689/846/130 -f 646/847/143 647/1678/143 648/848/143 -f 1759/850/151 1771/1679/151 1772/851/151 -f 297/423/143 228/344/143 652/853/143 -f 228/344/143 227/1490/143 646/847/143 -f 227/1490/143 651/1489/143 647/1678/143 -f 647/1678/143 646/847/143 227/1490/143 -f 650/1479/143 390/845/143 648/848/143 -f 390/845/143 297/423/143 648/848/143 -f 297/423/143 653/854/143 649/849/143 -f 1755/855/128 1767/1680/128 1761/856/128 -f 656/858/151 654/1481/151 239/859/151 -f 238/860/151 298/421/151 657/861/151 -f 389/862/151 655/1474/151 657/861/151 -f 656/863/174 657/887/174 658/864/174 -f 646/866/151 660/1681/151 661/867/151 -f 647/869/175 662/1682/175 663/870/175 -f 661/867/143 660/1681/143 665/872/143 -f 666/874/133 667/1683/133 1756/875/133 -f 659/877/151 658/864/151 669/878/151 -f 649/879/176 665/872/176 660/880/176 -f 647/884/151 651/1684/151 1756/882/151 -f 1756/882/151 667/1683/151 662/883/151 -f 653/885/177 652/1685/177 661/886/177 -f 653/885/128 664/873/128 665/872/128 -f 1759/889/125 669/878/125 658/864/125 -f 658/864/125 657/887/125 1759/889/125 -f 656/892/143 659/877/143 1760/890/143 -f 659/877/143 668/520/143 1760/890/143 -f 670/893/124 671/1686/124 672/894/124 -f 674/896/178 675/906/178 672/897/178 -f 677/899/126 678/942/126 679/900/126 -f 670/893/179 673/895/179 681/902/179 -f 679/900/126 678/942/126 682/904/126 -f 675/906/180 684/948/180 685/907/180 -f 687/911/171 670/893/171 680/903/171 -f 689/917/171 690/949/171 677/899/171 -f 693/920/133 687/911/133 686/910/133 -f 695/922/132 674/909/132 671/923/132 -f 697/925/126 688/916/126 676/915/126 -f 699/927/124 691/918/124 689/917/124 -f 694/929/124 671/912/124 687/911/124 -f 698/928/133 689/917/133 688/916/133 -f 696/926/132 676/915/132 691/930/132 -f 692/921/126 686/910/126 674/909/126 -f 676/901/178 679/900/178 700/932/178 -f 680/903/126 681/902/126 675/906/126 -f 702/934/130 703/954/130 704/935/130 -f 662/883/143 667/1683/143 666/874/143 -f 650/1687/128 648/871/128 1755/937/128 -f 648/871/128 663/870/128 1755/937/128 -f 1757/938/124 1769/1688/124 1765/939/124 -f 705/941/181 706/944/181 682/904/181 -f 700/943/124 707/1689/124 706/944/124 -f 672/894/124 685/1690/124 708/945/124 -f 679/900/180 683/905/180 707/946/180 -f 675/906/126 681/902/126 709/947/126 -f 673/895/181 708/945/181 709/947/181 -f 690/949/124 691/1691/124 700/943/124 -f 690/949/179 705/941/179 678/942/179 -f 711/950/161 712/955/161 713/951/161 -f 714/953/132 715/958/132 703/954/132 -f 712/955/127 716/1692/127 717/956/127 -f 718/957/127 719/963/127 715/958/127 -f 716/959/162 720/964/162 721/960/162 -f 701/962/133 704/1693/133 719/963/133 -f 720/964/159 722/969/159 723/965/159 -f 716/968/126 712/1694/126 711/1695/126 -f 711/1695/126 724/1696/126 716/968/126 -f 724/1696/126 722/966/126 716/968/126 -f 722/969/130 724/971/130 725/970/130 -f 724/971/160 711/950/160 710/952/160 -f 725/973/124 710/1697/124 713/974/124 -f 713/974/124 717/1698/124 721/1699/124 -f 721/1699/124 723/972/124 713/974/124 -f 719/963/125 726/979/125 727/975/125 -f 704/978/133 728/1700/133 729/981/133 -f 728/982/127 730/1002/127 731/983/127 -f 726/979/126 729/981/126 732/985/126 -f 727/975/132 732/985/132 733/986/132 -f 703/977/124 733/986/124 728/987/124 -f 734/989/169 735/992/169 733/986/169 -f 737/994/179 738/1004/179 739/995/179 -f 729/984/126 731/983/126 737/994/126 -f 734/989/130 737/994/130 736/996/130 -f 735/992/124 736/996/124 730/997/124 -f 730/997/124 736/996/124 739/995/124 -f 730/1002/178 742/1701/178 740/1003/178 -f 731/983/126 740/1003/126 738/1004/126 -f 741/999/171 743/1005/171 739/995/171 -f 743/1005/124 744/1015/124 745/1006/124 -f 745/1009/132 747/1702/132 748/1010/132 -f 742/1012/132 745/1703/132 749/1013/132 -f 740/998/126 749/1013/126 750/1014/126 -f 741/999/133 750/1014/133 744/1015/133 -f 746/1011/125 751/1017/125 750/1014/125 -f 744/1018/130 752/1022/130 747/1020/130 -f 751/1017/133 753/1023/133 752/1022/133 -f 746/1011/127 748/1010/127 753/1023/127 -f 391/527/132 1772/1497/132 1771/1024/132 -f 401/1026/132 1785/1032/132 1767/1027/132 -f 1765/1704/132 1769/1705/132 389/1030/132 -f 1769/1705/132 1786/1025/132 1771/1024/132 -f 389/1030/132 1769/1705/132 1771/1024/132 -f 1786/1025/132 1769/1705/132 1770/1031/132 -f 592/1033/127 590/1706/127 589/1034/127 -f 951/1036/183 952/1049/183 953/1037/183 -f 956/1039/182 957/1050/182 958/1040/182 -f 959/1042/182 960/1045/182 961/1043/182 -f 960/1045/182 963/1051/182 964/1046/182 -f 965/1047/182 951/1036/182 954/1038/182 -f 952/1049/182 955/1041/182 958/1040/182 -f 956/1039/182 959/1042/182 962/1044/182 -f 963/1051/183 965/1707/183 966/1052/183 -f 974/1053/182 967/1708/182 968/1054/182 -f 968/1054/183 969/1709/183 970/1055/183 -f 970/1055/183 971/1710/183 972/1711/183 -f 972/1711/182 973/1712/182 970/1055/182 -f 973/1712/182 974/1053/182 970/1055/182 -f 976/1056/183 977/1060/183 978/1057/183 -f 976/1056/182 979/1062/182 980/1059/182 -f 981/1061/182 982/1713/182 980/1059/182 -f 983/1063/183 984/1067/183 982/1064/183 -f 983/1063/182 985/1068/182 986/1066/182 -f 985/1068/183 987/1070/183 988/1069/183 -f 987/1070/183 989/1072/183 990/1071/183 -f 989/1072/182 975/1058/182 978/1057/182 -f 1039/1073/184 1040/1086/184 1041/1074/184 -f 1044/1076/184 1045/1087/184 1046/1077/184 -f 1047/1079/185 1048/1082/185 1049/1080/185 -f 1048/1082/184 1051/1088/184 1052/1083/184 -f 1053/1084/184 1039/1073/184 1042/1075/184 -f 1040/1086/184 1043/1078/184 1046/1077/184 -f 1047/1079/184 1050/1081/184 1045/1087/184 -f 1051/1088/185 1053/1714/185 1054/1089/185 -f 1062/1090/184 1055/1715/184 1056/1091/184 -f 1056/1091/185 1057/1716/185 1058/1092/185 -f 1058/1092/184 1059/1717/184 1062/1090/184 -f 1059/1717/185 1060/1718/185 1062/1090/185 -f 1060/1718/184 1061/1719/184 1062/1090/184 -f 1064/1093/185 1065/1097/185 1066/1094/185 -f 1064/1093/184 1067/1099/184 1068/1096/184 -f 1069/1098/184 1070/1720/184 1068/1096/184 -f 1071/1100/185 1072/1104/185 1070/1101/185 -f 1073/1103/184 1074/1106/184 1072/1104/184 -f 1073/1103/184 1075/1107/184 1076/1105/184 -f 1075/1107/185 1077/1109/185 1078/1108/185 -f 1077/1109/184 1063/1095/184 1066/1094/184 -f 1127/1110/187 1128/1123/187 1129/1111/187 -f 1132/1113/186 1133/1124/186 1134/1114/186 -f 1135/1116/187 1136/1119/187 1137/1117/187 -f 1136/1119/186 1139/1125/186 1140/1120/186 -f 1141/1121/186 1127/1110/186 1130/1112/186 -f 1128/1123/186 1131/1115/186 1134/1114/186 -f 1135/1116/186 1138/1118/186 1133/1124/186 -f 1139/1125/187 1141/1721/187 1142/1126/187 -f 1150/1127/186 1143/1722/186 1144/1128/186 -f 1144/1128/187 1145/1723/187 1146/1129/187 -f 1146/1129/186 1147/1724/186 1150/1127/186 -f 1147/1724/187 1148/1725/187 1150/1127/187 -f 1148/1725/186 1149/1726/186 1150/1127/186 -f 1152/1130/187 1153/1134/187 1154/1131/187 -f 1152/1130/186 1155/1136/186 1156/1133/186 -f 1157/1135/186 1158/1727/186 1156/1133/186 -f 1159/1137/187 1160/1141/187 1158/1138/187 -f 1161/1140/186 1162/1143/186 1160/1141/186 -f 1161/1140/187 1163/1144/187 1164/1142/187 -f 1163/1144/187 1165/1146/187 1166/1145/187 -f 1165/1146/186 1151/1132/186 1154/1131/186 -f 1215/1147/189 1216/1160/189 1217/1148/189 -f 1220/1150/189 1221/1161/189 1222/1151/189 -f 1223/1153/189 1224/1156/189 1225/1154/189 -f 1224/1156/189 1227/1162/189 1228/1157/189 -f 1229/1158/189 1215/1147/189 1218/1149/189 -f 1216/1160/189 1219/1152/189 1222/1151/189 -f 1223/1153/189 1226/1155/189 1221/1161/189 -f 1227/1162/188 1229/1728/188 1230/1163/188 -f 1238/1164/188 1231/1729/188 1232/1165/188 -f 1232/1165/188 1233/1730/188 1234/1166/188 -f 1234/1166/189 1235/1731/189 1238/1164/189 -f 1235/1731/188 1236/1732/188 1238/1164/188 -f 1236/1732/189 1237/1733/189 1238/1164/189 -f 1240/1167/188 1241/1171/188 1242/1168/188 -f 1240/1167/188 1243/1173/188 1244/1170/188 -f 1245/1172/189 1246/1734/189 1244/1170/189 -f 1247/1174/188 1248/1178/188 1246/1175/188 -f 1249/1177/189 1250/1180/189 1248/1178/189 -f 1249/1177/189 1251/1181/189 1252/1179/189 -f 1251/1181/188 1253/1183/188 1254/1182/188 -f 1253/1183/189 1239/1169/189 1242/1168/189 -f 1303/1184/191 1304/1197/191 1305/1185/191 -f 1308/1187/191 1309/1198/191 1310/1188/191 -f 1311/1190/191 1312/1193/191 1313/1191/191 -f 1312/1193/191 1315/1199/191 1316/1194/191 -f 1317/1195/191 1303/1184/191 1306/1186/191 -f 1304/1197/191 1307/1189/191 1310/1188/191 -f 1311/1190/191 1314/1192/191 1309/1198/191 -f 1315/1199/190 1317/1735/190 1318/1200/190 -f 1326/1201/190 1319/1736/190 1320/1202/190 -f 1320/1202/190 1321/1737/190 1322/1203/190 -f 1322/1203/191 1323/1738/191 1326/1201/191 -f 1323/1738/190 1324/1739/190 1326/1201/190 -f 1324/1739/191 1325/1740/191 1326/1201/191 -f 1328/1204/190 1329/1208/190 1330/1205/190 -f 1328/1204/190 1331/1210/190 1332/1207/190 -f 1333/1209/191 1334/1741/191 1332/1207/191 -f 1335/1211/190 1336/1215/190 1334/1212/190 -f 1337/1214/191 1338/1217/191 1336/1215/191 -f 1337/1214/191 1339/1218/191 1340/1216/191 -f 1339/1218/190 1341/1220/190 1342/1219/190 -f 1341/1220/191 1327/1206/191 1330/1205/191 -f 1391/1221/193 1392/1234/193 1393/1222/193 -f 1396/1224/193 1397/1235/193 1398/1225/193 -f 1399/1227/193 1400/1230/193 1401/1228/193 -f 1400/1230/193 1403/1236/193 1404/1231/193 -f 1405/1232/193 1391/1221/193 1394/1223/193 -f 1392/1234/193 1395/1226/193 1398/1225/193 -f 1396/1224/193 1399/1227/193 1402/1229/193 -f 1403/1236/192 1405/1742/192 1406/1237/192 -f 1414/1238/192 1407/1743/192 1408/1239/192 -f 1408/1239/192 1409/1744/192 1410/1240/192 -f 1410/1240/193 1411/1745/193 1412/1746/193 -f 1412/1746/192 1413/1747/192 1410/1240/192 -f 1413/1747/193 1414/1238/193 1410/1240/193 -f 1416/1241/192 1417/1245/192 1418/1242/192 -f 1416/1241/192 1419/1247/192 1420/1244/192 -f 1421/1246/193 1422/1748/193 1420/1244/193 -f 1423/1248/192 1424/1252/192 1422/1249/192 -f 1425/1251/193 1426/1254/193 1424/1252/193 -f 1425/1251/193 1427/1255/193 1428/1253/193 -f 1427/1255/192 1429/1257/192 1430/1256/192 -f 1429/1257/193 1415/1243/193 1418/1242/193 -f 1479/1258/195 1480/1271/195 1481/1259/195 -f 1484/1261/195 1485/1272/195 1486/1262/195 -f 1487/1264/195 1488/1268/195 1489/1265/195 -f 1491/1267/195 1492/1274/195 1489/1265/195 -f 1493/1269/195 1479/1258/195 1482/1260/195 -f 1480/1271/195 1483/1263/195 1486/1262/195 -f 1487/1264/195 1490/1266/195 1485/1272/195 -f 1491/1267/194 1493/1749/194 1494/1273/194 -f 1502/1275/194 1495/1750/194 1496/1276/194 -f 1496/1276/194 1497/1751/194 1498/1277/194 -f 1498/1277/195 1499/1752/195 1502/1275/195 -f 1499/1752/194 1500/1753/194 1502/1275/194 -f 1500/1753/195 1501/1754/195 1502/1275/195 -f 1504/1278/194 1505/1282/194 1506/1279/194 -f 1504/1278/194 1507/1284/194 1508/1281/194 -f 1509/1283/195 1510/1755/195 1508/1281/195 -f 1511/1285/194 1512/1289/194 1510/1286/194 -f 1513/1288/195 1514/1291/195 1512/1289/195 -f 1513/1288/195 1515/1292/195 1516/1290/195 -f 1515/1292/194 1517/1294/194 1518/1293/194 -f 1517/1294/195 1503/1280/195 1506/1279/195 -f 1567/1295/196 1568/1300/196 1569/1296/196 -f 1571/1298/274 1572/1756/274 1570/1297/274 -f 1573/1299/198 1571/1757/198 1569/1296/198 -f 1573/1301/199 1568/1300/199 1567/1295/199 -f 1574/1303/200 1567/1295/200 1570/1297/200 -f 1576/1305/201 1577/1309/201 1578/1306/201 -f 1579/1308/275 1580/1758/275 1578/1306/275 -f 1581/1310/203 1579/1759/203 1577/1309/203 -f 1581/1311/204 1576/1305/204 1575/1307/204 -f 1582/1313/205 1575/1307/205 1578/1306/205 -f 1583/1315/206 1584/1320/206 1585/1316/206 -f 1587/1318/276 1588/1760/276 1586/1317/276 -f 1589/1319/208 1587/1761/208 1585/1316/208 -f 1589/1321/209 1584/1320/209 1583/1315/209 -f 1590/1323/210 1583/1315/210 1586/1317/210 -f 1591/1325/211 1592/1330/211 1593/1326/211 -f 1595/1328/277 1596/1762/277 1594/1327/277 -f 1597/1329/213 1595/1763/213 1593/1326/213 -f 1597/1331/214 1592/1330/214 1591/1325/214 -f 1598/1333/215 1591/1325/215 1594/1327/215 -f 1599/1335/216 1600/1340/216 1601/1336/216 -f 1603/1338/278 1604/1764/278 1602/1337/278 -f 1605/1339/218 1603/1765/218 1601/1336/218 -f 1605/1341/219 1600/1340/219 1599/1335/219 -f 1606/1343/220 1599/1335/220 1602/1337/220 -f 1608/1345/221 1609/1349/221 1610/1346/221 -f 1611/1348/279 1612/1766/279 1610/1346/279 -f 1613/1350/223 1611/1767/223 1609/1349/223 -f 1613/1351/224 1608/1345/224 1607/1347/224 -f 1614/1353/225 1607/1347/225 1610/1346/225 -f 1615/1355/226 1616/1360/226 1617/1356/226 -f 1619/1358/280 1620/1768/280 1618/1357/280 -f 1621/1359/228 1619/1769/228 1617/1356/228 -f 1621/1361/229 1616/1360/229 1615/1355/229 -f 1622/1363/230 1615/1355/230 1618/1357/230 -f 1624/1365/231 1625/1369/231 1626/1366/231 -f 1627/1368/281 1628/1770/281 1626/1366/281 -f 1629/1370/233 1627/1771/233 1625/1369/233 -f 1629/1371/234 1624/1365/234 1623/1367/234 -f 1630/1373/235 1623/1367/235 1626/1366/235 -f 1631/1375/236 1632/1380/236 1633/1376/236 -f 1635/1378/282 1636/1772/282 1634/1377/282 -f 1637/1379/238 1635/1773/238 1633/1376/238 -f 1637/1381/239 1632/1380/239 1631/1375/239 -f 1638/1383/240 1631/1375/240 1634/1377/240 -f 1639/1385/241 1640/1390/241 1641/1386/241 -f 1643/1388/283 1644/1774/283 1642/1387/283 -f 1645/1389/243 1643/1775/243 1641/1386/243 -f 1645/1391/244 1640/1390/244 1639/1385/244 -f 1646/1393/245 1639/1385/245 1642/1387/245 -f 1647/1395/246 1648/1400/246 1649/1396/246 -f 1651/1398/284 1652/1776/284 1650/1397/284 -f 1653/1399/248 1651/1777/248 1649/1396/248 -f 1653/1401/249 1648/1400/249 1647/1395/249 -f 1654/1403/250 1647/1395/250 1650/1397/250 -f 1655/1405/251 1656/1410/251 1657/1406/251 -f 1659/1408/285 1660/1778/285 1658/1407/285 -f 1661/1409/253 1659/1779/253 1657/1406/253 -f 1661/1411/254 1656/1410/254 1655/1405/254 -f 1662/1413/255 1655/1405/255 1658/1407/255 -f 1663/1415/256 1664/1420/256 1665/1416/256 -f 1667/1418/286 1668/1780/286 1666/1417/286 -f 1669/1419/258 1667/1781/258 1665/1416/258 -f 1669/1421/259 1664/1420/259 1663/1415/259 -f 1670/1423/260 1663/1415/260 1666/1417/260 -f 1672/1425/261 1673/1429/261 1674/1426/261 -f 1675/1428/287 1676/1782/287 1674/1426/287 -f 1677/1430/263 1675/1783/263 1673/1429/263 -f 1677/1431/264 1672/1425/264 1671/1427/264 -f 1678/1433/265 1671/1427/265 1674/1426/265 -f 1679/1435/266 1680/1440/266 1681/1436/266 -f 1683/1438/288 1684/1784/288 1682/1437/288 -f 1685/1439/268 1683/1785/268 1681/1436/268 -f 1685/1441/269 1680/1440/269 1679/1435/269 -f 1686/1443/270 1679/1435/270 1682/1437/270 -f 1757/1447/124 1688/1786/124 1687/1787/124 -f 1687/1787/124 1691/1445/124 1757/1447/124 -f 297/423/130 1689/846/130 1687/1448/130 -f 389/862/130 298/421/130 1687/1448/130 -f 651/1450/151 1762/1788/151 1768/1451/151 -f 1691/1453/130 1693/1789/130 1694/1454/130 -f 1757/1456/133 1692/1790/133 1694/1457/133 -f 1689/1459/132 1693/1791/132 1691/1460/132 -f 1693/1464/126 1689/1792/126 1758/1462/126 -f 1689/1792/126 1690/1793/126 1758/1462/126 -f 1690/1465/126 1766/1794/126 1770/1466/126 -f 655/1468/125 1764/1795/125 1771/1469/125 -f 1760/1471/143 1772/1796/143 1763/1472/143 -f 1775/1483/151 1773/1797/151 1774/1484/151 -f 1778/1486/130 1780/1798/130 1779/1487/130 -f 1783/1492/143 1781/1799/143 1782/1493/143 -f 1785/1032/132 1770/1031/132 1767/1027/132 -f 1770/1031/132 1766/1800/132 390/1495/132 -f 390/1495/132 1761/1801/132 1767/1027/132 -f 1768/1028/132 1762/1802/132 227/1496/132 -f 239/526/132 1763/1803/132 1772/1497/132 -f 1788/1498/127 1789/1512/127 1790/1499/127 -f 1792/1501/130 1793/1510/130 1794/1502/130 -f 1796/1504/124 1797/1514/124 1798/1505/124 -f 1800/1507/126 1801/1511/126 1802/1508/126 -f 1799/1509/151 1802/1508/151 1793/1510/151 -f 1801/1511/125 1800/1507/125 1790/1499/125 -f 1787/1513/128 1798/1505/128 1797/1514/128 -f 1794/1502/143 1796/1504/143 1795/1506/143 -f 1805/1538/132 1800/1537/132 1804/1518/132 -f 1800/1537/132 1799/1516/132 1804/1518/132 -f 1803/1517/132 1799/1516/132 1807/1521/132 -f 1799/1516/132 1792/1519/132 1807/1521/132 -f 1806/1520/132 1792/1519/132 1809/1524/132 -f 1792/1519/132 1791/1522/132 1809/1524/132 -f 1808/1523/132 1791/1522/132 1811/1527/132 -f 1791/1522/132 1795/1525/132 1811/1527/132 -f 1810/1526/132 1795/1525/132 1813/1530/132 -f 1795/1525/132 1798/1528/132 1813/1530/132 -f 1812/1529/132 1798/1528/132 1815/1533/132 -f 1798/1528/132 1787/1531/132 1815/1533/132 -f 1814/1532/132 1787/1531/132 1817/1536/132 -f 1787/1531/132 1790/1534/132 1817/1536/132 -f 1816/1535/132 1790/1534/132 1818/1539/132 -f 1790/1534/132 1800/1537/132 1818/1539/132 -f 1834/1542/132 1819/1804/132 1820/1805/132 -f 1820/1805/132 1821/1806/132 1822/1807/132 -f 1822/1807/132 1823/1808/132 1824/1809/132 -f 1824/1809/132 1825/1810/132 1826/1540/132 -f 1826/1540/132 1827/1811/132 1828/1812/132 -f 1828/1812/132 1829/1813/132 1830/1541/132 -f 1830/1541/132 1831/1814/132 1832/1815/132 -f 1832/1815/132 1833/1816/132 1834/1542/132 -f 1834/1542/132 1820/1805/132 1826/1540/132 -f 1820/1805/132 1822/1807/132 1826/1540/132 -f 1822/1807/132 1824/1809/132 1826/1540/132 -f 1826/1540/132 1828/1812/132 1830/1541/132 -f 1830/1541/132 1832/1815/132 1834/1542/132 -f 1793/1545/133 1802/1548/133 1836/1543/133 -f 1802/1548/133 1835/1547/133 1836/1543/133 -f 1802/1548/133 1801/1551/133 1839/1546/133 -f 1801/1551/133 1838/1550/133 1839/1546/133 -f 1801/1551/133 1789/1554/133 1841/1549/133 -f 1789/1554/133 1840/1553/133 1841/1549/133 -f 1789/1554/133 1788/1557/133 1843/1552/133 -f 1788/1557/133 1842/1556/133 1843/1552/133 -f 1788/1557/133 1797/1560/133 1845/1555/133 -f 1797/1560/133 1844/1559/133 1845/1555/133 -f 1797/1560/133 1796/1563/133 1847/1558/133 -f 1796/1563/133 1846/1562/133 1847/1558/133 -f 1796/1563/133 1794/1566/133 1849/1561/133 -f 1794/1566/133 1848/1565/133 1849/1561/133 -f 1794/1566/133 1793/1545/133 1850/1564/133 -f 1793/1545/133 1837/1544/133 1850/1564/133 -s 1 -f 754/1817/289 756/1818/290 757/1819/291 -f 759/1820/149 761/1821/292 758/1822/293 -f 763/1823/294 765/1824/295 762/1825/296 -f 766/1826/297 764/1827/298 763/1823/294 -f 768/1828/147 757/1819/291 769/1829/299 -f 755/1830/300 761/1821/292 756/1818/290 -f 759/1820/149 765/1824/295 760/1831/301 -f 768/1832/147 767/1833/302 766/1826/297 -f 765/1824/295 770/1834/303 771/1835/304 -f 760/1831/301 773/1836/305 761/1821/292 -f 756/1818/290 775/1837/306 757/1819/291 -f 769/1838/299 777/1839/307 767/1833/302 -f 760/1831/301 771/1835/304 772/1840/308 -f 761/1821/292 774/1841/309 756/1818/290 -f 769/1829/299 775/1837/306 776/1842/144 -f 764/1827/298 777/1839/307 770/1834/303 -f 776/1842/144 778/1843/310 779/1844/133 -f 770/1834/303 780/1845/311 781/1846/312 -f 770/1834/303 782/1847/313 771/1835/304 -f 772/1840/308 784/1848/314 773/1836/305 -f 774/1841/309 778/1843/310 775/1837/306 -f 776/1849/144 780/1845/311 777/1839/307 -f 772/1840/308 782/1847/313 783/1850/132 -f 774/1841/309 784/1848/314 785/1851/315 -f 782/1847/313 787/1852/316 783/1850/132 -f 785/1851/315 788/1853/317 789/1854/318 -f 779/1844/133 790/1855/319 791/1856/320 -f 780/1845/311 793/1857/321 781/1846/312 -f 781/1846/312 786/1858/322 782/1847/313 -f 784/1848/314 787/1852/316 788/1853/317 -f 778/1843/310 789/1854/318 790/1855/319 -f 779/1859/133 792/1860/323 780/1845/311 -f 795/1861/324 310/436/325 794/1862/325 -f 797/1863/326 315/438/327 796/1864/327 -f 798/1865/328 305/432/329 302/440/328 -f 801/1866/330 306/430/331 800/1867/331 -f 795/1861/324 315/1583/327 313/442/324 -f 797/1863/326 302/440/328 301/427/326 -f 800/1867/331 305/432/329 799/1868/329 -f 794/1862/325 309/433/330 801/1866/330 -f 318/1869/329 327/451/328 330/450/329 -f 312/435/330 326/447/325 325/449/330 -f 318/1869/329 332/1589/331 319/1870/331 -f 314/437/324 326/447/325 311/434/325 -f 320/1871/330 332/455/331 334/458/330 -f 316/443/327 329/453/324 314/437/324 -f 320/1871/330 336/460/325 321/1872/325 -f 304/429/332 331/456/327 316/439/327 -f 307/441/331 325/449/330 339/463/331 -f 324/1873/326 327/451/328 317/1874/328 -f 307/441/331 337/461/329 308/431/329 -f 324/1873/326 340/462/327 328/448/326 -f 303/428/328 337/461/329 335/457/328 -f 322/1875/324 340/462/327 323/1876/327 -f 303/428/328 333/454/332 304/429/332 -f 322/1875/324 336/460/325 338/459/324 -f 803/1877/333 349/476/334 802/1878/334 -f 805/1879/325 363/482/335 804/1880/335 -f 807/1881/336 367/489/337 806/1882/337 -f 809/1883/328 371/492/338 808/1884/338 -f 802/1878/334 361/481/325 805/1879/325 -f 804/1880/335 365/486/336 807/1885/336 -f 806/1882/337 369/491/328 809/1883/328 -f 808/1884/338 350/474/333 803/1877/333 -f 351/1592/333 374/1603/334 352/475/334 -f 360/1886/336 387/519/335 353/1887/335 -f 359/1888/337 376/498/336 360/1889/336 -f 352/1598/334 378/1604/325 362/480/325 -f 358/1890/328 373/501/337 359/1891/337 -f 362/483/325 380/502/335 364/484/335 -f 357/1892/338 377/503/328 358/1893/328 -f 364/1599/335 382/505/336 366/485/336 -f 372/1602/338 375/1610/333 351/495/333 -f 353/1894/335 385/516/325 354/1895/325 -f 370/493/328 388/1609/338 372/494/338 -f 354/1896/325 383/513/334 355/1897/334 -f 368/1601/337 386/1608/328 370/490/328 -f 355/1898/334 381/509/333 356/1899/333 -f 366/1600/336 384/508/337 368/488/337 -f 356/1900/333 379/506/338 357/1901/338 -f 810/1902/339 619/1903/172 618/1904/339 -f 812/1905/124 622/1906/340 621/1907/124 -f 624/838/341 631/1908/342 625/839/341 -f 810/1902/339 617/1909/343 814/1910/343 -f 815/1911/344 621/1907/124 620/1912/344 -f 633/844/342 630/1913/345 631/1908/342 -f 816/1914/346 615/1915/347 614/1916/346 -f 627/1917/348 617/1909/343 616/1918/348 -f 815/1911/344 619/1903/172 811/1919/172 -f 632/1920/345 629/1921/126 630/1913/345 -f 816/1914/346 622/1906/340 813/1922/340 -f 626/840/349 629/1921/126 817/1923/126 -f 819/1924/342 639/1925/154 818/1926/154 -f 820/1927/124 637/1928/340 636/1929/124 -f 822/1930/350 644/1931/343 643/1932/350 -f 824/1933/339 634/1934/172 645/1935/339 -f 819/1924/342 641/1936/345 640/1937/342 -f 827/1938/346 637/1928/340 821/1939/340 -f 824/1940/339 644/1931/343 823/1941/343 -f 828/1942/344 634/1934/172 825/1943/172 -f 829/1944/126 641/1936/345 826/1945/345 -f 827/1938/346 639/1925/154 638/1946/346 -f 820/1927/124 635/1947/344 828/1942/344 -f 829/1944/126 643/1932/350 642/1948/126 -f 831/1949/351 833/1950/352 830/1951/353 -f 835/1952/354 837/1953/355 834/1954/356 -f 839/1955/357 841/1956/358 838/1957/359 -f 843/1958/360 845/1959/361 842/1960/362 -f 845/1959/361 839/1955/357 838/1957/359 -f 846/1961/363 843/1958/360 842/1960/362 -f 844/1962/364 849/1963/365 839/1955/357 -f 847/1964/366 851/1965/367 843/1958/360 -f 839/1955/357 852/1966/368 840/1967/369 -f 851/1965/367 844/1962/364 843/1958/360 -f 854/1968/357 856/1969/358 853/1970/359 -f 858/1971/360 860/1972/361 857/1973/362 -f 860/1972/361 854/1968/357 853/1970/359 -f 862/1974/366 857/1973/362 861/1975/363 -f 859/1976/364 864/1977/365 854/1968/357 -f 862/1974/366 866/1978/367 858/1971/360 -f 864/1977/365 855/1979/369 854/1968/357 -f 866/1978/367 859/1976/364 858/1971/360 -f 869/1980/357 871/1981/358 868/1982/359 -f 873/1983/370 875/1984/361 872/1985/362 -f 875/1984/361 869/1980/357 868/1982/359 -f 877/1986/366 872/1985/362 876/1987/363 -f 874/1988/364 879/1989/365 869/1980/357 -f 880/1990/371 873/1983/370 877/1986/366 -f 869/1980/357 882/1991/368 870/1992/369 -f 881/1993/367 874/1988/364 873/1983/370 -f 841/1956/358 884/1994/130 838/1957/359 -f 856/1969/358 886/1995/130 853/1970/359 -f 838/1957/359 887/1996/143 845/1959/361 -f 845/1959/361 888/1997/124 842/1960/362 -f 871/1981/358 890/1998/130 868/1982/359 -f 853/1970/359 891/1999/143 860/1972/361 -f 842/1960/362 892/2000/337 846/1961/363 -f 860/1972/361 893/2001/124 857/1973/362 -f 868/1982/359 894/2002/143 875/1984/361 -f 875/1984/361 895/2003/124 872/1985/362 -f 857/1973/362 896/2004/337 861/1975/363 -f 872/1985/362 897/2005/337 876/1987/363 -f 831/1949/351 837/1953/355 832/2006/372 -f 898/2007/373 833/1950/352 899/2008/374 -f 832/2006/372 900/2009/375 901/2010/376 -f 899/2008/374 902/2011/377 903/2012/378 -f 837/1953/355 904/2013/379 900/2009/375 -f 832/2006/372 902/2011/377 833/1950/352 -f 906/2014/354 908/2015/355 905/2016/356 -f 910/2017/351 912/2018/352 909/2019/353 -f 910/2017/351 908/2015/355 911/2020/372 -f 909/2019/353 914/2021/374 913/2022/373 -f 911/2020/372 915/2023/375 916/2024/376 -f 914/2021/374 917/2025/377 918/2026/378 -f 907/2027/380 915/2023/375 908/2015/355 -f 911/2020/372 917/2025/377 912/2018/352 -f 921/2028/354 923/2029/355 920/2030/356 -f 925/2031/351 927/2032/381 924/2033/353 -f 925/2031/351 923/2029/355 926/2034/372 -f 924/2033/353 929/2035/374 928/2036/373 -f 926/2034/372 930/2037/375 931/2038/376 -f 927/2032/381 933/2039/378 929/2035/374 -f 923/2029/355 934/2040/379 930/2037/375 -f 926/2034/372 932/2041/377 927/2032/381 -f 935/2042/130 835/1952/354 834/1954/356 -f 937/2043/130 906/2014/354 905/2016/356 -f 939/2044/151 834/1954/356 831/1949/351 -f 940/2045/126 831/1949/351 830/1951/353 -f 941/2046/130 921/2028/354 920/2030/356 -f 943/2047/151 905/2016/356 910/2017/351 -f 944/2048/325 830/1951/353 898/2007/373 -f 945/2049/126 910/2017/351 909/2019/353 -f 946/2050/151 920/2030/356 925/2031/351 -f 947/2051/126 925/2031/351 924/2033/353 -f 948/2052/325 909/2019/353 913/2022/373 -f 949/2053/325 924/2033/353 928/2036/373 -f 991/2054/382 993/2055/383 994/2056/384 -f 996/2057/145 998/2058/385 995/2059/386 -f 1000/2060/387 1002/2061/388 999/2062/389 -f 1003/2063/390 1001/2064/391 1000/2060/387 -f 1005/2065/146 994/2056/384 1006/2066/392 -f 995/2059/386 993/2055/383 992/2067/393 -f 996/2057/145 1002/2061/388 997/2068/394 -f 1005/2069/146 1004/2070/395 1003/2063/390 -f 1002/2061/388 1007/2071/396 1008/2072/397 -f 997/2068/394 1010/2073/398 998/2058/385 -f 993/2055/383 1012/2074/399 994/2056/384 -f 1006/2075/392 1014/2076/400 1004/2070/395 -f 997/2068/394 1008/2072/397 1009/2077/148 -f 998/2058/385 1011/2078/401 993/2055/383 -f 1006/2066/392 1012/2074/399 1013/2079/150 -f 1001/2064/391 1014/2076/400 1007/2071/396 -f 1013/2079/150 1015/2080/311 1016/2081/133 -f 1007/2071/396 1017/2082/310 1018/2083/315 -f 1007/2071/396 1019/2084/402 1008/2072/397 -f 1009/2077/148 1021/2085/403 1010/2073/398 -f 1011/2078/401 1015/2080/311 1012/2074/399 -f 1013/2086/150 1017/2082/310 1014/2076/400 -f 1009/2077/148 1019/2084/402 1020/2087/132 -f 1011/2078/401 1021/2085/403 1022/2088/312 -f 1019/2084/402 1024/2089/404 1020/2087/132 -f 1022/2088/312 1025/2090/405 1026/2091/406 -f 1016/2081/133 1027/2092/407 1028/2093/408 -f 1017/2082/310 1030/2094/409 1018/2083/315 -f 1018/2083/315 1023/2095/410 1019/2084/402 -f 1021/2085/403 1024/2089/404 1025/2090/405 -f 1015/2080/311 1026/2091/406 1027/2092/407 -f 1016/2096/133 1029/2097/411 1017/2082/310 -f 1032/2098/412 960/1045/328 1031/2099/328 -f 1034/2100/413 965/1047/414 1033/2101/414 -f 1035/2102/325 955/1041/415 952/1049/325 -f 1038/2103/416 956/1039/417 1037/2104/417 -f 1032/2098/412 965/1707/414 963/1051/412 -f 1034/2100/413 952/1049/325 951/1036/413 -f 1037/2104/417 955/1041/415 1036/2105/415 -f 1031/2099/328 959/1042/416 1038/2103/416 -f 968/2106/415 977/1060/325 980/1059/415 -f 962/1044/416 976/1056/328 975/1058/416 -f 968/2106/415 982/1713/417 969/2107/417 -f 964/1046/412 976/1056/328 961/1043/328 -f 970/2108/416 982/1064/417 984/1067/416 -f 966/1052/414 979/1062/412 964/1046/412 -f 970/2108/416 986/1066/328 971/2109/328 -f 954/1038/418 981/1065/414 966/1048/414 -f 957/1050/417 975/1058/416 989/1072/417 -f 974/2110/413 977/1060/325 967/2111/325 -f 957/1050/417 987/1070/415 958/1040/415 -f 974/2110/413 990/1071/414 978/1057/413 -f 953/1037/325 987/1070/415 985/1068/325 -f 972/2112/412 990/1071/414 973/2113/414 -f 953/1037/325 983/1063/418 954/1038/418 -f 972/2112/412 986/1066/328 988/1069/412 -f 1079/2114/419 1081/2115/420 1082/2116/421 -f 1084/2117/422 1086/2118/423 1083/2119/424 -f 1088/2120/425 1090/2121/426 1087/2122/427 -f 1091/2123/428 1089/2124/429 1088/2120/425 -f 1093/2125/430 1082/2116/421 1094/2126/431 -f 1083/2119/424 1081/2115/420 1080/2127/432 -f 1084/2117/422 1090/2121/426 1085/2128/433 -f 1093/2129/430 1092/2130/434 1091/2123/428 -f 1090/2121/426 1095/2131/435 1096/2132/436 -f 1085/2128/433 1098/2133/437 1086/2118/423 -f 1081/2115/420 1100/2134/438 1082/2116/421 -f 1094/2135/431 1102/2136/439 1092/2130/434 -f 1085/2128/433 1096/2132/436 1097/2137/440 -f 1086/2118/423 1099/2138/441 1081/2115/420 -f 1094/2126/431 1100/2134/438 1101/2139/442 -f 1089/2124/429 1102/2136/439 1095/2131/435 -f 1101/2139/442 1103/2140/443 1104/2141/133 -f 1095/2131/435 1105/2142/444 1106/2143/445 -f 1095/2131/435 1107/2144/446 1096/2132/436 -f 1097/2137/440 1109/2145/447 1098/2133/437 -f 1099/2138/441 1103/2140/443 1100/2134/438 -f 1101/2146/442 1105/2142/444 1102/2136/439 -f 1097/2137/440 1107/2144/446 1108/2147/132 -f 1099/2138/441 1109/2145/447 1110/2148/448 -f 1107/2144/446 1112/2149/449 1108/2147/132 -f 1110/2148/448 1113/2150/450 1114/2151/451 -f 1104/2141/133 1115/2152/452 1116/2153/453 -f 1105/2142/444 1118/2154/454 1106/2143/445 -f 1106/2143/445 1111/2155/455 1107/2144/446 -f 1109/2145/447 1112/2149/449 1113/2150/450 -f 1103/2140/443 1114/2151/451 1115/2152/452 -f 1104/2156/133 1117/2157/456 1105/2142/444 -f 1120/2158/457 1048/1082/336 1119/2159/336 -f 1122/2160/458 1053/1084/459 1121/2161/459 -f 1123/2162/333 1043/1078/460 1040/1086/333 -f 1126/2163/461 1044/1076/462 1125/2164/462 -f 1120/2158/457 1053/1714/459 1051/1088/457 -f 1122/2160/458 1040/1086/333 1039/1073/458 -f 1124/2165/460 1044/1076/462 1043/1078/460 -f 1119/2159/336 1047/1079/461 1126/2163/461 -f 1056/2166/460 1065/1097/333 1068/1096/460 -f 1050/1081/461 1064/1093/336 1063/1095/461 -f 1056/2166/460 1070/1720/462 1057/2167/462 -f 1052/1083/457 1064/1093/336 1049/1080/336 -f 1058/2168/461 1070/1101/462 1072/1104/461 -f 1054/1089/459 1067/1099/457 1052/1083/457 -f 1058/2168/461 1074/1106/336 1059/2169/336 -f 1042/1075/463 1069/1102/459 1054/1085/459 -f 1045/1087/462 1063/1095/461 1077/1109/462 -f 1062/2170/458 1065/1097/333 1055/2171/333 -f 1045/1087/462 1075/1107/460 1046/1077/460 -f 1062/2170/458 1078/1108/459 1066/1094/458 -f 1046/1077/460 1073/1103/333 1041/1074/333 -f 1060/2172/457 1078/1108/459 1061/2173/459 -f 1041/1074/333 1071/1100/463 1042/1075/463 -f 1060/2172/457 1074/1106/336 1076/1105/457 -f 1167/2174/464 1169/2175/465 1170/2176/466 -f 1172/2177/467 1174/2178/468 1171/2179/469 -f 1176/2180/470 1178/2181/471 1175/2182/472 -f 1179/2183/473 1177/2184/474 1176/2180/470 -f 1181/2185/475 1170/2176/466 1182/2186/476 -f 1168/2187/477 1174/2178/468 1169/2175/465 -f 1172/2177/467 1178/2181/471 1173/2188/478 -f 1181/2189/475 1180/2190/479 1179/2183/473 -f 1178/2181/471 1183/2191/480 1184/2192/481 -f 1173/2188/478 1186/2193/482 1174/2178/468 -f 1169/2175/465 1188/2194/483 1170/2176/466 -f 1182/2195/476 1190/2196/484 1180/2190/479 -f 1173/2188/478 1184/2192/481 1185/2197/485 -f 1174/2178/468 1187/2198/486 1169/2175/465 -f 1182/2186/476 1188/2194/483 1189/2199/487 -f 1177/2184/474 1190/2196/484 1183/2191/480 -f 1189/2199/487 1191/2200/444 1192/2201/133 -f 1183/2191/480 1193/2202/443 1194/2203/448 -f 1183/2191/480 1195/2204/488 1184/2192/481 -f 1185/2197/485 1197/2205/489 1186/2193/482 -f 1187/2198/486 1191/2200/444 1188/2194/483 -f 1189/2206/487 1193/2202/443 1190/2196/484 -f 1185/2197/485 1195/2204/488 1196/2207/132 -f 1187/2198/486 1197/2205/489 1198/2208/445 -f 1195/2204/488 1200/2209/490 1196/2207/132 -f 1198/2208/445 1201/2210/491 1202/2211/492 -f 1192/2201/133 1203/2212/493 1204/2213/494 -f 1193/2202/443 1206/2214/495 1194/2203/448 -f 1194/2203/448 1199/2215/496 1195/2204/488 -f 1197/2205/489 1200/2209/490 1201/2210/491 -f 1191/2200/444 1202/2211/492 1203/2212/493 -f 1192/2216/133 1205/2217/497 1193/2202/443 -f 1208/2218/498 1136/1119/333 1207/2219/333 -f 1210/2220/499 1141/1121/500 1209/2221/500 -f 1211/2222/336 1131/1115/501 1128/1123/336 -f 1213/2223/502 1135/1116/503 1132/1113/502 -f 1208/2218/498 1141/1721/500 1139/1125/498 -f 1210/2220/499 1128/1123/336 1127/1110/499 -f 1213/2223/502 1131/1115/501 1212/2224/501 -f 1207/2219/333 1135/1116/503 1214/2225/503 -f 1144/2226/501 1153/1134/336 1156/1133/501 -f 1138/1118/503 1152/1130/333 1151/1132/503 -f 1144/2226/501 1158/1727/502 1145/2227/502 -f 1140/1120/498 1152/1130/333 1137/1117/333 -f 1146/2228/503 1158/1138/502 1160/1141/503 -f 1142/1126/500 1155/1136/498 1140/1120/498 -f 1146/2228/503 1162/1143/333 1147/2229/333 -f 1130/1112/504 1157/1139/500 1142/1122/500 -f 1133/1124/502 1151/1132/503 1165/1146/502 -f 1150/2230/499 1153/1134/336 1143/2231/336 -f 1133/1124/502 1163/1144/505 1134/1114/501 -f 1150/2230/499 1166/1145/500 1154/1131/499 -f 1134/1114/501 1161/1140/336 1129/1111/336 -f 1148/2232/498 1166/1145/500 1149/2233/500 -f 1129/1111/336 1159/1137/504 1130/1112/504 -f 1148/2232/498 1162/1143/333 1164/1142/498 -f 1255/2234/506 1257/2235/507 1258/2236/508 -f 1260/2237/509 1262/2238/510 1259/2239/511 -f 1264/2240/512 1266/2241/513 1263/2242/514 -f 1267/2243/515 1265/2244/516 1264/2240/512 -f 1269/2245/517 1258/2236/508 1270/2246/518 -f 1256/2247/519 1262/2238/510 1257/2235/507 -f 1260/2237/509 1266/2241/513 1261/2248/520 -f 1269/2249/517 1268/2250/521 1267/2243/515 -f 1266/2241/513 1271/2251/522 1272/2252/523 -f 1261/2248/520 1274/2253/524 1262/2238/510 -f 1257/2235/507 1276/2254/525 1258/2236/508 -f 1270/2255/518 1278/2256/526 1268/2250/521 -f 1261/2248/520 1272/2252/523 1273/2257/376 -f 1262/2238/510 1275/2258/527 1257/2235/507 -f 1270/2246/518 1276/2254/525 1277/2259/528 -f 1265/2244/516 1278/2256/526 1271/2251/522 -f 1277/2259/528 1279/2260/529 1280/2261/133 -f 1271/2251/522 1281/2262/530 1282/2263/531 -f 1271/2251/522 1283/2264/532 1272/2252/523 -f 1273/2257/376 1285/2265/533 1274/2253/524 -f 1275/2258/527 1279/2260/529 1276/2254/525 -f 1277/2266/528 1281/2262/530 1278/2256/526 -f 1273/2257/376 1283/2264/532 1284/2267/132 -f 1275/2258/527 1285/2265/533 1286/2268/534 -f 1283/2264/532 1288/2269/535 1284/2267/132 -f 1286/2268/534 1289/2270/536 1290/2271/537 -f 1280/2261/133 1291/2272/538 1292/2273/539 -f 1281/2262/530 1294/2274/540 1282/2263/531 -f 1282/2263/531 1287/2275/541 1283/2264/532 -f 1285/2265/533 1288/2269/535 1289/2270/536 -f 1279/2260/529 1290/2271/537 1291/2272/538 -f 1280/2276/133 1293/2277/542 1281/2262/530 -f 1296/2278/543 1224/1156/335 1295/2279/335 -f 1298/2280/544 1229/1158/545 1297/2281/545 -f 1299/2282/338 1219/1152/546 1216/1160/338 -f 1302/2283/547 1220/1150/548 1301/2284/548 -f 1296/2278/543 1229/1728/545 1227/1162/543 -f 1298/2280/544 1216/1160/338 1215/1147/544 -f 1300/2285/546 1220/1150/548 1219/1152/546 -f 1295/2279/335 1223/1153/547 1302/2283/547 -f 1232/2286/546 1241/1171/338 1244/1170/546 -f 1226/1155/547 1240/1167/335 1239/1169/547 -f 1232/2286/546 1246/1734/548 1233/2287/548 -f 1228/1157/543 1240/1167/335 1225/1154/335 -f 1234/2288/547 1246/1175/548 1248/1178/547 -f 1230/1163/545 1243/1173/543 1228/1157/543 -f 1234/2288/547 1250/1180/335 1235/2289/335 -f 1218/1149/549 1245/1176/545 1230/1159/545 -f 1221/1161/548 1239/1169/547 1253/1183/548 -f 1238/2290/544 1241/1171/338 1231/2291/338 -f 1221/1161/548 1251/1181/546 1222/1151/546 -f 1238/2290/544 1254/1182/545 1242/1168/544 -f 1222/1151/546 1249/1177/338 1217/1148/338 -f 1236/2292/543 1254/1182/545 1237/2293/545 -f 1217/1148/338 1247/1174/549 1218/1149/549 -f 1236/2292/543 1250/1180/335 1252/1179/543 -f 1343/2294/550 1345/2295/551 1346/2296/552 -f 1348/2297/553 1350/2298/554 1347/2299/555 -f 1352/2300/556 1354/2301/557 1351/2302/558 -f 1355/2303/559 1353/2304/560 1352/2300/556 -f 1357/2305/561 1346/2296/552 1358/2306/562 -f 1344/2307/563 1350/2298/554 1345/2295/551 -f 1351/2302/558 1349/2308/564 1348/2297/553 -f 1357/2309/561 1356/2310/565 1355/2303/559 -f 1354/2301/557 1359/2311/566 1360/2312/567 -f 1349/2308/564 1362/2313/568 1350/2298/554 -f 1345/2295/551 1364/2314/569 1346/2296/552 -f 1358/2315/562 1366/2316/570 1356/2310/565 -f 1349/2308/564 1360/2312/567 1361/2317/571 -f 1350/2298/554 1363/2318/572 1345/2295/551 -f 1358/2306/562 1364/2314/569 1365/2319/573 -f 1353/2304/560 1366/2316/570 1359/2311/566 -f 1364/2314/569 1368/2320/133 1365/2319/573 -f 1359/2311/566 1369/2321/529 1370/2322/534 -f 1359/2311/566 1371/2323/533 1360/2312/567 -f 1361/2317/571 1373/2324/532 1362/2313/568 -f 1363/2318/572 1367/2325/530 1364/2314/569 -f 1365/2326/573 1369/2321/529 1366/2316/570 -f 1361/2317/571 1371/2323/533 1372/2327/132 -f 1363/2318/572 1373/2324/532 1374/2328/531 -f 1371/2323/533 1376/2329/574 1372/2327/132 -f 1374/2328/531 1377/2330/575 1378/2331/576 -f 1368/2320/133 1379/2332/577 1380/2333/578 -f 1369/2321/529 1382/2334/579 1370/2322/534 -f 1370/2322/534 1375/2335/580 1371/2323/533 -f 1373/2324/532 1376/2329/574 1377/2330/575 -f 1367/2325/530 1378/2331/576 1379/2332/577 -f 1368/2336/133 1381/2337/581 1369/2321/529 -f 1384/2338/582 1312/1193/338 1383/2339/338 -f 1386/2340/583 1317/1195/584 1385/2341/584 -f 1387/2342/335 1307/1189/585 1304/1197/335 -f 1390/2343/586 1308/1187/587 1389/2344/587 -f 1384/2338/582 1317/1735/584 1315/1199/582 -f 1386/2340/583 1304/1197/335 1303/1184/583 -f 1389/2344/587 1307/1189/585 1388/2345/585 -f 1383/2339/338 1311/1190/586 1390/2343/586 -f 1320/2346/585 1329/1208/335 1332/1207/585 -f 1314/1192/586 1328/1204/338 1327/1206/586 -f 1320/2346/585 1334/1741/587 1321/2347/587 -f 1313/1191/338 1331/1210/582 1328/1204/338 -f 1322/2348/586 1334/1212/587 1336/1215/586 -f 1318/1200/584 1331/1210/582 1316/1194/588 -f 1322/2348/586 1338/1217/338 1323/2349/338 -f 1306/1186/589 1333/1213/584 1318/1196/584 -f 1309/1198/587 1327/1206/586 1341/1220/587 -f 1326/2350/583 1329/1208/335 1319/2351/335 -f 1309/1198/587 1339/1218/590 1310/1188/585 -f 1326/2350/583 1342/1219/584 1330/1205/583 -f 1310/1188/585 1337/1214/335 1305/1185/335 -f 1324/2352/582 1342/1219/584 1325/2353/584 -f 1305/1185/335 1335/1211/589 1306/1186/589 -f 1324/2352/582 1338/1217/338 1340/1216/582 -f 1431/2354/591 1433/2355/592 1434/2356/593 -f 1436/2357/594 1438/2358/595 1435/2359/596 -f 1440/2360/597 1442/2361/598 1439/2362/599 -f 1443/2363/600 1441/2364/601 1440/2360/597 -f 1445/2365/602 1434/2356/593 1446/2366/603 -f 1435/2359/596 1433/2355/592 1432/2367/604 -f 1436/2357/594 1442/2361/598 1437/2368/605 -f 1445/2369/602 1444/2370/606 1443/2363/600 -f 1442/2361/598 1447/2371/607 1448/2372/608 -f 1437/2368/605 1450/2373/609 1438/2358/595 -f 1433/2355/592 1452/2374/610 1434/2356/593 -f 1446/2375/603 1454/2376/611 1444/2370/606 -f 1437/2368/605 1448/2372/608 1449/2377/612 -f 1438/2358/595 1451/2378/613 1433/2355/592 -f 1446/2366/603 1452/2374/610 1453/2379/614 -f 1441/2364/601 1454/2376/611 1447/2371/607 -f 1453/2379/614 1455/2380/615 1456/2381/133 -f 1447/2371/607 1457/2382/616 1458/2383/617 -f 1447/2371/607 1459/2384/618 1448/2372/608 -f 1449/2377/612 1461/2385/619 1450/2373/609 -f 1451/2378/613 1455/2380/615 1452/2374/610 -f 1453/2386/614 1457/2382/616 1454/2376/611 -f 1449/2377/612 1459/2384/618 1460/2387/132 -f 1451/2378/613 1461/2385/619 1462/2388/620 -f 1459/2384/618 1464/2389/621 1460/2387/132 -f 1462/2388/620 1465/2390/622 1466/2391/623 -f 1456/2381/133 1467/2392/624 1468/2393/625 -f 1457/2382/616 1470/2394/626 1458/2383/617 -f 1458/2383/617 1463/2395/627 1459/2384/618 -f 1461/2385/619 1464/2389/621 1465/2390/622 -f 1455/2380/615 1466/2391/623 1467/2392/624 -f 1456/2396/133 1469/2397/628 1457/2382/616 -f 1472/2398/629 1400/1230/337 1471/2399/337 -f 1474/2400/630 1405/1232/631 1473/2401/631 -f 1475/2402/334 1395/1226/632 1392/1234/334 -f 1478/2403/633 1396/1224/634 1477/2404/634 -f 1472/2398/629 1405/1742/631 1403/1236/629 -f 1474/2400/630 1392/1234/334 1391/1221/630 -f 1477/2404/634 1395/1226/632 1476/2405/632 -f 1471/2399/337 1399/1227/633 1478/2403/633 -f 1408/2406/632 1417/1245/334 1420/1244/632 -f 1402/1229/633 1416/1241/337 1415/1243/633 -f 1408/2406/632 1422/1748/634 1409/2407/634 -f 1404/1231/629 1416/1241/337 1401/1228/337 -f 1410/2408/633 1422/1249/634 1424/1252/633 -f 1406/1237/631 1419/1247/629 1404/1231/629 -f 1410/2408/633 1426/1254/337 1411/2409/337 -f 1394/1223/635 1421/1250/631 1406/1233/631 -f 1397/1235/634 1415/1243/633 1429/1257/634 -f 1414/2410/630 1417/1245/334 1407/2411/334 -f 1397/1235/634 1427/1255/632 1398/1225/632 -f 1414/2410/630 1430/1256/631 1418/1242/630 -f 1398/1225/632 1425/1251/334 1393/1222/334 -f 1412/2412/629 1430/1256/631 1413/2413/631 -f 1393/1222/334 1423/1248/635 1394/1223/635 -f 1412/2412/629 1426/1254/337 1428/1253/629 -f 1519/2414/636 1521/2415/637 1522/2416/638 -f 1524/2417/639 1526/2418/640 1523/2419/641 -f 1528/2420/642 1530/2421/643 1527/2422/644 -f 1531/2423/645 1529/2424/646 1528/2420/642 -f 1533/2425/647 1522/2416/638 1534/2426/648 -f 1520/2427/649 1526/2418/640 1521/2415/637 -f 1524/2417/639 1530/2421/643 1525/2428/650 -f 1533/2429/647 1532/2430/651 1531/2423/645 -f 1530/2421/643 1535/2431/652 1536/2432/653 -f 1525/2428/650 1538/2433/654 1526/2418/640 -f 1521/2415/637 1540/2434/655 1522/2416/638 -f 1534/2435/648 1542/2436/656 1532/2430/651 -f 1530/2421/643 1537/2437/657 1525/2428/650 -f 1526/2418/640 1539/2438/658 1521/2415/637 -f 1534/2426/648 1540/2434/655 1541/2439/659 -f 1529/2424/646 1542/2436/656 1535/2431/652 -f 1541/2439/659 1543/2440/616 1544/2441/133 -f 1535/2431/652 1545/2442/615 1546/2443/620 -f 1535/2431/652 1547/2444/619 1536/2432/653 -f 1537/2437/657 1549/2445/618 1538/2433/654 -f 1539/2438/658 1543/2440/616 1540/2434/655 -f 1541/2446/659 1545/2442/615 1542/2436/656 -f 1537/2437/657 1547/2444/619 1548/2447/132 -f 1539/2438/658 1549/2445/618 1550/2448/617 -f 1547/2444/619 1552/2449/660 1548/2447/132 -f 1550/2448/617 1553/2450/661 1554/2451/662 -f 1544/2441/133 1555/2452/663 1556/2453/664 -f 1545/2442/615 1558/2454/665 1546/2443/620 -f 1546/2443/620 1551/2455/666 1547/2444/619 -f 1549/2445/618 1552/2449/660 1553/2450/661 -f 1543/2440/616 1554/2451/662 1555/2452/663 -f 1544/2456/133 1557/2457/667 1545/2442/615 -f 1560/2458/668 1488/1268/334 1559/2459/334 -f 1562/2460/669 1493/1269/670 1561/2461/670 -f 1563/2462/337 1483/1263/671 1480/1271/337 -f 1565/2463/672 1487/1264/673 1484/1261/672 -f 1560/2458/668 1493/1749/670 1491/1267/668 -f 1562/2460/669 1480/1271/337 1479/1258/669 -f 1564/2464/671 1484/1261/672 1483/1263/671 -f 1559/2459/334 1487/1264/673 1566/2465/673 -f 1496/2466/671 1505/1282/337 1508/1281/671 -f 1490/1266/673 1504/1278/334 1503/1280/673 -f 1496/2466/671 1510/1755/672 1497/2467/672 -f 1489/1265/334 1507/1284/668 1504/1278/334 -f 1498/2468/673 1510/1286/672 1512/1289/673 -f 1494/1273/670 1507/1284/668 1492/1274/674 -f 1498/2468/673 1514/1291/334 1499/2469/334 -f 1482/1260/675 1509/1287/670 1494/1270/670 -f 1485/1272/672 1503/1280/673 1517/1294/672 -f 1502/2470/669 1505/1282/337 1495/2471/337 -f 1485/1272/672 1515/1292/676 1486/1262/671 -f 1502/2470/669 1518/1293/670 1506/1279/669 -f 1486/1262/671 1513/1288/337 1481/1259/337 -f 1500/2472/668 1518/1293/670 1501/2473/670 -f 1481/1259/337 1511/1285/675 1482/1260/675 -f 1500/2472/668 1514/1291/334 1516/1290/668 -f 1695/2474/130 1704/2475/677 1699/2476/151 -f 1697/2477/328 1701/2478/678 1696/2479/143 -f 1699/2476/151 1703/2480/679 1698/2481/334 -f 1696/2479/143 1700/2482/680 1695/2474/130 -f 1701/2478/678 1707/2483/681 1706/2484/682 -f 1704/2475/677 1708/2485/683 1703/2480/679 -f 1701/2478/678 1705/2486/169 1700/2482/680 -f 1704/2475/677 1705/2486/169 1709/2487/684 -f 1705/2486/169 1714/2488/685 1709/2487/684 -f 1706/2484/682 1712/2489/686 1711/2490/687 -f 1709/2487/684 1713/2491/688 1708/2485/683 -f 1705/2486/169 1711/2490/687 1710/2492/308 -f 1715/2493/130 1724/2494/677 1719/2495/151 -f 1717/2496/328 1721/2497/678 1716/2498/143 -f 1719/2495/151 1723/2499/679 1718/2500/334 -f 1716/2498/143 1720/2501/680 1715/2493/130 -f 1721/2497/678 1727/2502/681 1726/2503/682 -f 1724/2494/677 1728/2504/683 1723/2499/679 -f 1721/2497/678 1725/2505/169 1720/2501/680 -f 1724/2494/677 1725/2505/169 1729/2506/684 -f 1725/2505/169 1734/2507/685 1729/2506/684 -f 1726/2503/682 1732/2508/686 1731/2509/687 -f 1729/2506/684 1733/2510/688 1728/2504/683 -f 1726/2503/682 1730/2511/308 1725/2505/169 -f 1735/2512/130 1744/2513/677 1739/2514/151 -f 1737/2515/328 1741/2516/678 1736/2517/143 -f 1739/2514/151 1743/2518/679 1738/2519/334 -f 1736/2517/143 1740/2520/680 1735/2512/130 -f 1741/2516/678 1747/2521/681 1746/2522/682 -f 1744/2513/677 1748/2523/683 1743/2518/679 -f 1741/2516/678 1745/2524/169 1740/2520/680 -f 1744/2513/677 1745/2524/169 1749/2525/684 -f 1745/2524/169 1754/2526/685 1749/2525/684 -f 1746/2522/682 1752/2527/686 1751/2528/687 -f 1749/2525/684 1753/2529/688 1748/2523/683 -f 1746/2522/682 1750/2530/308 1745/2524/169 -f 1809/2531/689 1867/2532/690 1868/2533/689 -f 1809/2531/689 1869/2534/691 1806/2535/691 -f 1806/2535/691 1870/2536/692 1807/2537/692 -f 1807/2537/692 1871/2538/693 1803/2539/693 -f 1803/2539/693 1872/2540/694 1804/2541/694 -f 1805/2542/695 1872/2540/694 1873/2543/695 -f 1818/2544/696 1873/2543/695 1874/2545/696 -f 1816/2546/697 1874/2545/696 1875/2547/697 -f 1817/2548/698 1875/2547/697 1876/2549/698 -f 1817/2550/698 1877/2551/699 1814/2552/699 -f 1814/2552/699 1878/2553/700 1815/2554/700 -f 1812/2555/701 1878/2553/700 1879/2556/701 -f 1812/2555/701 1880/2557/702 1813/2558/702 -f 1813/2558/702 1881/2559/703 1810/2560/703 -f 1810/2560/703 1882/2561/704 1811/2562/704 -f 1808/2563/690 1882/2561/704 1867/2532/690 -f 1867/2532/335 1884/2564/127 1868/2533/127 -f 1868/2533/127 1885/2565/336 1869/2534/336 -f 1875/2547/338 1887/2566/130 1876/2549/130 -f 1882/2561/125 1883/2567/335 1867/2532/335 -f 1874/2545/143 1886/2568/338 1875/2547/338 -f 1881/2559/325 1888/2569/125 1882/2561/125 -f 1873/2543/328 1889/2570/143 1874/2545/143 -f 1880/2557/126 1890/2571/325 1881/2559/325 -f 1872/2540/124 1891/2572/328 1873/2543/328 -f 1879/2556/334 1892/2573/126 1880/2557/126 -f 1871/2538/337 1893/2574/124 1872/2540/124 -f 1878/2553/151 1894/2575/334 1879/2556/334 -f 1870/2536/128 1895/2576/337 1871/2538/337 -f 1877/2551/333 1896/2577/151 1878/2553/151 -f 1869/2534/336 1897/2578/128 1870/2536/128 -f 1876/2579/130 1898/2580/333 1877/2551/333 -f 1889/2570/705 1829/2581/706 1828/2582/705 -f 1890/2571/707 1822/2583/708 1821/2584/707 -f 1893/2574/709 1829/2585/706 1891/2572/706 -f 1892/2573/708 1823/2586/710 1822/2587/708 -f 1893/2574/709 1831/2588/711 1830/2589/709 -f 1896/2577/712 1823/2590/710 1894/2575/710 -f 1897/2578/713 1831/2591/711 1895/2576/711 -f 1896/2577/712 1825/2592/714 1824/2593/712 -f 1885/2565/715 1832/2594/713 1897/2578/713 -f 1887/2595/716 1825/2596/714 1898/2580/714 -f 1884/2564/717 1819/2597/718 1834/2598/717 -f 1884/2564/717 1833/2599/715 1885/2565/715 -f 1887/2566/716 1827/2600/719 1826/2601/716 -f 1888/2569/720 1819/2602/718 1883/2567/718 -f 1889/2570/705 1827/2603/719 1886/2568/719 -f 1888/2569/720 1821/2604/707 1820/2605/720 -f 1842/2606/336 1860/2607/127 1843/2608/127 -f 1850/2609/130 1851/2610/338 1848/2611/338 -f 1837/2612/333 1852/2613/130 1850/2609/130 -f 1843/2614/127 1859/2615/335 1840/2616/335 -f 1848/2611/338 1866/2617/143 1849/2618/143 -f 1840/2616/335 1858/2619/125 1841/2620/125 -f 1849/2618/143 1865/2621/328 1846/2622/328 -f 1841/2620/125 1857/2623/325 1838/2624/325 -f 1846/2622/328 1864/2625/124 1847/2626/124 -f 1838/2624/325 1856/2627/126 1839/2628/126 -f 1847/2626/124 1863/2629/337 1844/2630/337 -f 1839/2628/126 1855/2631/334 1835/2632/334 -f 1844/2630/337 1862/2633/128 1845/2634/128 -f 1835/2632/334 1854/2635/151 1836/2636/151 -f 1845/2634/128 1861/2637/336 1842/2606/336 -f 1836/2636/151 1853/2638/333 1837/2612/333 -f 754/1817/289 755/1830/300 756/1818/290 -f 759/1820/149 760/1831/301 761/1821/292 -f 763/1823/294 764/1827/298 765/1824/295 -f 766/1826/297 767/1833/302 764/1827/298 -f 768/1828/147 754/1817/289 757/1819/291 -f 755/1830/300 758/1822/293 761/1821/292 -f 759/1820/149 762/1825/296 765/1824/295 -f 768/1832/147 769/1838/299 767/1833/302 -f 765/1824/295 764/1827/298 770/1834/303 -f 760/1831/301 772/1840/308 773/1836/305 -f 756/1818/290 774/1841/309 775/1837/306 -f 769/1838/299 776/1849/144 777/1839/307 -f 760/1831/301 765/1824/295 771/1835/304 -f 761/1821/292 773/1836/305 774/1841/309 -f 769/1829/299 757/1819/291 775/1837/306 -f 764/1827/298 767/1833/302 777/1839/307 -f 776/1842/144 775/1837/306 778/1843/310 -f 770/1834/303 777/1839/307 780/1845/311 -f 770/1834/303 781/1846/312 782/1847/313 -f 772/1840/308 783/1850/132 784/1848/314 -f 774/1841/309 785/1851/315 778/1843/310 -f 776/1849/144 779/1859/133 780/1845/311 -f 772/1840/308 771/1835/304 782/1847/313 -f 774/1841/309 773/1836/305 784/1848/314 -f 782/1847/313 786/1858/322 787/1852/316 -f 785/1851/315 784/1848/314 788/1853/317 -f 779/1844/133 778/1843/310 790/1855/319 -f 780/1845/311 792/1860/323 793/1857/321 -f 781/1846/312 793/1857/321 786/1858/322 -f 784/1848/314 783/1850/132 787/1852/316 -f 778/1843/310 785/1851/315 789/1854/318 -f 779/1859/133 791/2639/320 792/1860/323 -f 795/1861/324 313/442/324 310/436/325 -f 797/1863/326 301/427/326 315/438/327 -f 798/1865/328 799/1868/329 305/432/329 -f 801/1866/330 309/433/330 306/430/331 -f 795/1861/324 796/2640/327 315/1583/327 -f 797/1863/326 798/1865/328 302/440/328 -f 800/1867/331 306/430/331 305/432/329 -f 794/1862/325 310/436/325 309/433/330 -f 318/1869/329 317/1874/328 327/451/328 -f 312/435/330 311/434/325 326/447/325 -f 318/1869/329 330/450/329 332/1589/331 -f 314/437/324 329/453/324 326/447/325 -f 320/1871/330 319/2641/331 332/455/331 -f 316/443/327 331/452/327 329/453/324 -f 320/1871/330 334/458/330 336/460/325 -f 304/429/332 333/454/332 331/456/327 -f 307/441/331 312/435/330 325/449/330 -f 324/1873/326 328/448/326 327/451/328 -f 307/441/331 339/463/331 337/461/329 -f 324/1873/326 323/1876/327 340/462/327 -f 303/428/328 308/431/329 337/461/329 -f 322/1875/324 338/459/324 340/462/327 -f 303/428/328 335/457/328 333/454/332 -f 322/1875/324 321/1872/325 336/460/325 -f 803/1877/333 350/474/333 349/476/334 -f 805/1879/325 361/481/325 363/482/335 -f 807/1881/336 365/487/336 367/489/337 -f 809/1883/328 369/491/328 371/492/338 -f 802/1878/334 349/476/334 361/481/325 -f 804/1880/335 363/482/335 365/486/336 -f 806/1882/337 367/489/337 369/491/328 -f 808/1884/338 371/492/338 350/474/333 -f 351/1592/333 375/497/333 374/1603/334 -f 360/1886/336 376/517/336 387/519/335 -f 359/1888/337 373/496/337 376/498/336 -f 352/1598/334 374/500/334 378/1604/325 -f 358/1890/328 377/499/328 373/501/337 -f 362/483/325 378/1605/325 380/502/335 -f 357/1892/338 379/504/338 377/503/328 -f 364/1599/335 380/1606/335 382/505/336 -f 372/1602/338 388/518/338 375/1610/333 -f 353/1894/335 387/514/335 385/516/325 -f 370/493/328 386/515/328 388/1609/338 -f 354/1896/325 385/511/325 383/513/334 -f 368/1601/337 384/512/337 386/1608/328 -f 355/1898/334 383/510/334 381/509/333 -f 366/1600/336 382/1607/336 384/508/337 -f 356/1900/333 381/507/333 379/506/338 -f 810/1902/339 811/1919/172 619/1903/172 -f 812/1905/124 813/1922/340 622/1906/340 -f 624/838/341 633/844/342 631/1908/342 -f 810/1902/339 618/1904/339 617/1909/343 -f 815/1911/344 812/1905/124 621/1907/124 -f 633/844/342 632/1920/345 630/1913/345 -f 816/1914/346 623/2642/347 615/1915/347 -f 627/1917/348 814/1910/343 617/1909/343 -f 815/1911/344 620/1912/344 619/1903/172 -f 632/1920/345 817/1923/126 629/1921/126 -f 816/1914/346 614/1916/346 622/1906/340 -f 626/840/349 628/842/349 629/1921/126 -f 819/1924/342 640/1937/342 639/1925/154 -f 820/1927/124 821/1939/340 637/1928/340 -f 822/1930/350 823/1941/343 644/1931/343 -f 824/1933/339 825/1943/172 634/1934/172 -f 819/1924/342 826/1945/345 641/1936/345 -f 827/1938/346 638/1946/346 637/1928/340 -f 824/1940/339 645/2643/339 644/1931/343 -f 828/1942/344 635/1947/344 634/1934/172 -f 829/1944/126 642/1948/126 641/1936/345 -f 827/1938/346 818/1926/154 639/1925/154 -f 820/1927/124 636/1929/124 635/1947/344 -f 829/1944/126 822/1930/350 643/1932/350 -f 831/1949/351 832/2006/372 833/1950/352 -f 835/1952/354 836/2644/380 837/1953/355 -f 839/1955/357 840/1967/369 841/1956/358 -f 843/1958/360 844/1962/364 845/1959/361 -f 845/1959/361 844/1962/364 839/1955/357 -f 846/1961/363 847/1964/366 843/1958/360 -f 844/1962/364 848/2645/657 849/1963/365 -f 847/1964/366 850/2646/371 851/1965/367 -f 839/1955/357 849/1963/365 852/1966/368 -f 851/1965/367 848/2645/657 844/1962/364 -f 854/1968/357 855/1979/369 856/1969/358 -f 858/1971/360 859/1976/364 860/1972/361 -f 860/1972/361 859/1976/364 854/1968/357 -f 862/1974/366 858/1971/360 857/1973/362 -f 859/1976/364 863/2647/657 864/1977/365 -f 862/1974/366 865/2648/371 866/1978/367 -f 864/1977/365 867/2649/368 855/1979/369 -f 866/1978/367 863/2647/657 859/1976/364 -f 869/1980/357 870/1992/369 871/1981/358 -f 873/1983/370 874/1988/364 875/1984/361 -f 875/1984/361 874/1988/364 869/1980/357 -f 877/1986/366 873/1983/370 872/1985/362 -f 874/1988/364 878/2650/657 879/1989/365 -f 880/1990/371 881/1993/367 873/1983/370 -f 869/1980/357 879/1989/365 882/1991/368 -f 881/1993/367 878/2650/657 874/1988/364 -f 841/1956/358 883/2651/333 884/1994/130 -f 856/1969/358 885/2652/333 886/1995/130 -f 838/1957/359 884/1994/130 887/1996/143 -f 845/1959/361 887/1996/143 888/1997/124 -f 871/1981/358 889/2653/333 890/1998/130 -f 853/1970/359 886/1995/130 891/1999/143 -f 842/1960/362 888/1997/124 892/2000/337 -f 860/1972/361 891/1999/143 893/2001/124 -f 868/1982/359 890/1998/130 894/2002/143 -f 875/1984/361 894/2002/143 895/2003/124 -f 857/1973/362 893/2001/124 896/2004/337 -f 872/1985/362 895/2003/124 897/2005/337 -f 831/1949/351 834/1954/356 837/1953/355 -f 898/2007/373 830/1951/353 833/1950/352 -f 832/2006/372 837/1953/355 900/2009/375 -f 899/2008/374 833/1950/352 902/2011/377 -f 837/1953/355 836/2644/380 904/2013/379 -f 832/2006/372 901/2010/376 902/2011/377 -f 906/2014/354 907/2027/380 908/2015/355 -f 910/2017/351 911/2020/372 912/2018/352 -f 910/2017/351 905/2016/356 908/2015/355 -f 909/2019/353 912/2018/352 914/2021/374 -f 911/2020/372 908/2015/355 915/2023/375 -f 914/2021/374 912/2018/352 917/2025/377 -f 907/2027/380 919/2654/379 915/2023/375 -f 911/2020/372 916/2024/376 917/2025/377 -f 921/2028/354 922/2655/380 923/2029/355 -f 925/2031/351 926/2034/372 927/2032/381 -f 925/2031/351 920/2030/356 923/2029/355 -f 924/2033/353 927/2032/381 929/2035/374 -f 926/2034/372 923/2029/355 930/2037/375 -f 927/2032/381 932/2041/377 933/2039/378 -f 923/2029/355 922/2655/380 934/2040/379 -f 926/2034/372 931/2038/376 932/2041/377 -f 935/2042/130 936/2656/338 835/1952/354 -f 937/2043/130 938/2657/338 906/2014/354 -f 939/2044/151 935/2042/130 834/1954/356 -f 940/2045/126 939/2044/151 831/1949/351 -f 941/2046/130 942/2658/338 921/2028/354 -f 943/2047/151 937/2043/130 905/2016/356 -f 944/2048/325 940/2045/126 830/1951/353 -f 945/2049/126 943/2047/151 910/2017/351 -f 946/2050/151 941/2046/130 920/2030/356 -f 947/2051/126 946/2050/151 925/2031/351 -f 948/2052/325 945/2049/126 909/2019/353 -f 949/2053/325 947/2051/126 924/2033/353 -f 991/2054/382 992/2067/393 993/2055/383 -f 996/2057/145 997/2068/394 998/2058/385 -f 1000/2060/387 1001/2064/391 1002/2061/388 -f 1003/2063/390 1004/2070/395 1001/2064/391 -f 1005/2065/146 991/2054/382 994/2056/384 -f 995/2059/386 998/2058/385 993/2055/383 -f 996/2057/145 999/2062/389 1002/2061/388 -f 1005/2069/146 1006/2075/392 1004/2070/395 -f 1002/2061/388 1001/2064/391 1007/2071/396 -f 997/2068/394 1009/2077/148 1010/2073/398 -f 993/2055/383 1011/2078/401 1012/2074/399 -f 1006/2075/392 1013/2086/150 1014/2076/400 -f 997/2068/394 1002/2061/388 1008/2072/397 -f 998/2058/385 1010/2073/398 1011/2078/401 -f 1006/2066/392 994/2056/384 1012/2074/399 -f 1001/2064/391 1004/2070/395 1014/2076/400 -f 1013/2079/150 1012/2074/399 1015/2080/311 -f 1007/2071/396 1014/2076/400 1017/2082/310 -f 1007/2071/396 1018/2083/315 1019/2084/402 -f 1009/2077/148 1020/2087/132 1021/2085/403 -f 1011/2078/401 1022/2088/312 1015/2080/311 -f 1013/2086/150 1016/2096/133 1017/2082/310 -f 1009/2077/148 1008/2072/397 1019/2084/402 -f 1011/2078/401 1010/2073/398 1021/2085/403 -f 1019/2084/402 1023/2095/410 1024/2089/404 -f 1022/2088/312 1021/2085/403 1025/2090/405 -f 1016/2081/133 1015/2080/311 1027/2092/407 -f 1017/2082/310 1029/2097/411 1030/2094/409 -f 1018/2083/315 1030/2094/409 1023/2095/410 -f 1021/2085/403 1020/2087/132 1024/2089/404 -f 1015/2080/311 1022/2088/312 1026/2091/406 -f 1016/2096/133 1028/2659/408 1029/2097/411 -f 1032/2098/412 963/1051/412 960/1045/328 -f 1034/2100/413 951/1036/413 965/1047/414 -f 1035/2102/325 1036/2105/415 955/1041/415 -f 1038/2103/416 959/1042/416 956/1039/417 -f 1032/2098/412 1033/2660/414 965/1707/414 -f 1034/2100/413 1035/2102/325 952/1049/325 -f 1037/2104/417 956/1039/417 955/1041/415 -f 1031/2099/328 960/1045/328 959/1042/416 -f 968/2106/415 967/2111/325 977/1060/325 -f 962/1044/416 961/1043/328 976/1056/328 -f 968/2106/415 980/1059/415 982/1713/417 -f 964/1046/412 979/1062/412 976/1056/328 -f 970/2108/416 969/2661/417 982/1064/417 -f 966/1052/414 981/1061/414 979/1062/412 -f 970/2108/416 984/1067/416 986/1066/328 -f 954/1038/418 983/1063/418 981/1065/414 -f 957/1050/417 962/1044/416 975/1058/416 -f 974/2110/413 978/1057/413 977/1060/325 -f 957/1050/417 989/1072/417 987/1070/415 -f 974/2110/413 973/2113/414 990/1071/414 -f 953/1037/325 958/1040/415 987/1070/415 -f 972/2112/412 988/1069/412 990/1071/414 -f 953/1037/325 985/1068/325 983/1063/418 -f 972/2112/412 971/2109/328 986/1066/328 -f 1079/2114/419 1080/2127/432 1081/2115/420 -f 1084/2117/422 1085/2128/433 1086/2118/423 -f 1088/2120/425 1089/2124/429 1090/2121/426 -f 1091/2123/428 1092/2130/434 1089/2124/429 -f 1093/2125/430 1079/2114/419 1082/2116/421 -f 1083/2119/424 1086/2118/423 1081/2115/420 -f 1084/2117/422 1087/2122/427 1090/2121/426 -f 1093/2129/430 1094/2135/431 1092/2130/434 -f 1090/2121/426 1089/2124/429 1095/2131/435 -f 1085/2128/433 1097/2137/440 1098/2133/437 -f 1081/2115/420 1099/2138/441 1100/2134/438 -f 1094/2135/431 1101/2146/442 1102/2136/439 -f 1085/2128/433 1090/2121/426 1096/2132/436 -f 1086/2118/423 1098/2133/437 1099/2138/441 -f 1094/2126/431 1082/2116/421 1100/2134/438 -f 1089/2124/429 1092/2130/434 1102/2136/439 -f 1101/2139/442 1100/2134/438 1103/2140/443 -f 1095/2131/435 1102/2136/439 1105/2142/444 -f 1095/2131/435 1106/2143/445 1107/2144/446 -f 1097/2137/440 1108/2147/132 1109/2145/447 -f 1099/2138/441 1110/2148/448 1103/2140/443 -f 1101/2146/442 1104/2156/133 1105/2142/444 -f 1097/2137/440 1096/2132/436 1107/2144/446 -f 1099/2138/441 1098/2133/437 1109/2145/447 -f 1107/2144/446 1111/2155/455 1112/2149/449 -f 1110/2148/448 1109/2145/447 1113/2150/450 -f 1104/2141/133 1103/2140/443 1115/2152/452 -f 1105/2142/444 1117/2157/456 1118/2154/454 -f 1106/2143/445 1118/2154/454 1111/2155/455 -f 1109/2145/447 1108/2147/132 1112/2149/449 -f 1103/2140/443 1110/2148/448 1114/2151/451 -f 1104/2156/133 1116/2662/453 1117/2157/456 -f 1120/2158/457 1051/1088/457 1048/1082/336 -f 1122/2160/458 1039/1073/458 1053/1084/459 -f 1123/2162/333 1124/2165/460 1043/1078/460 -f 1126/2163/461 1047/1079/461 1044/1076/462 -f 1120/2158/457 1121/2663/459 1053/1714/459 -f 1122/2160/458 1123/2162/333 1040/1086/333 -f 1124/2165/460 1125/2164/462 1044/1076/462 -f 1119/2159/336 1048/1082/336 1047/1079/461 -f 1056/2166/460 1055/2171/333 1065/1097/333 -f 1050/1081/461 1049/1080/336 1064/1093/336 -f 1056/2166/460 1068/1096/460 1070/1720/462 -f 1052/1083/457 1067/1099/457 1064/1093/336 -f 1058/2168/461 1057/2664/462 1070/1101/462 -f 1054/1089/459 1069/1098/459 1067/1099/457 -f 1058/2168/461 1072/1104/461 1074/1106/336 -f 1042/1075/463 1071/1100/463 1069/1102/459 -f 1045/1087/462 1050/1081/461 1063/1095/461 -f 1062/2170/458 1066/1094/458 1065/1097/333 -f 1045/1087/462 1077/1109/462 1075/1107/460 -f 1062/2170/458 1061/2173/459 1078/1108/459 -f 1046/1077/460 1075/1107/460 1073/1103/333 -f 1060/2172/457 1076/1105/457 1078/1108/459 -f 1041/1074/333 1073/1103/333 1071/1100/463 -f 1060/2172/457 1059/2169/336 1074/1106/336 -f 1167/2174/464 1168/2187/477 1169/2175/465 -f 1172/2177/467 1173/2188/478 1174/2178/468 -f 1176/2180/470 1177/2184/474 1178/2181/471 -f 1179/2183/473 1180/2190/479 1177/2184/474 -f 1181/2185/475 1167/2174/464 1170/2176/466 -f 1168/2187/477 1171/2179/469 1174/2178/468 -f 1172/2177/467 1175/2182/472 1178/2181/471 -f 1181/2189/475 1182/2195/476 1180/2190/479 -f 1178/2181/471 1177/2184/474 1183/2191/480 -f 1173/2188/478 1185/2197/485 1186/2193/482 -f 1169/2175/465 1187/2198/486 1188/2194/483 -f 1182/2195/476 1189/2206/487 1190/2196/484 -f 1173/2188/478 1178/2181/471 1184/2192/481 -f 1174/2178/468 1186/2193/482 1187/2198/486 -f 1182/2186/476 1170/2176/466 1188/2194/483 -f 1177/2184/474 1180/2190/479 1190/2196/484 -f 1189/2199/487 1188/2194/483 1191/2200/444 -f 1183/2191/480 1190/2196/484 1193/2202/443 -f 1183/2191/480 1194/2203/448 1195/2204/488 -f 1185/2197/485 1196/2207/132 1197/2205/489 -f 1187/2198/486 1198/2208/445 1191/2200/444 -f 1189/2206/487 1192/2216/133 1193/2202/443 -f 1185/2197/485 1184/2192/481 1195/2204/488 -f 1187/2198/486 1186/2193/482 1197/2205/489 -f 1195/2204/488 1199/2215/496 1200/2209/490 -f 1198/2208/445 1197/2205/489 1201/2210/491 -f 1192/2201/133 1191/2200/444 1203/2212/493 -f 1193/2202/443 1205/2217/497 1206/2214/495 -f 1194/2203/448 1206/2214/495 1199/2215/496 -f 1197/2205/489 1196/2207/132 1200/2209/490 -f 1191/2200/444 1198/2208/445 1202/2211/492 -f 1192/2216/133 1204/2665/494 1205/2217/497 -f 1208/2218/498 1139/1125/498 1136/1119/333 -f 1210/2220/499 1127/1110/499 1141/1121/500 -f 1211/2222/336 1212/2224/501 1131/1115/501 -f 1213/2223/502 1214/2225/503 1135/1116/503 -f 1208/2218/498 1209/2666/500 1141/1721/500 -f 1210/2220/499 1211/2222/336 1128/1123/336 -f 1213/2223/502 1132/1113/502 1131/1115/501 -f 1207/2219/333 1136/1119/333 1135/1116/503 -f 1144/2226/501 1143/2231/336 1153/1134/336 -f 1138/1118/503 1137/1117/333 1152/1130/333 -f 1144/2226/501 1156/1133/501 1158/1727/502 -f 1140/1120/498 1155/1136/498 1152/1130/333 -f 1146/2228/503 1145/2667/502 1158/1138/502 -f 1142/1126/500 1157/1135/500 1155/1136/498 -f 1146/2228/503 1160/1141/503 1162/1143/333 -f 1130/1112/504 1159/1137/504 1157/1139/500 -f 1133/1124/502 1138/1118/503 1151/1132/503 -f 1150/2230/499 1154/1131/499 1153/1134/336 -f 1133/1124/502 1165/1146/502 1163/1144/505 -f 1150/2230/499 1149/2233/500 1166/1145/500 -f 1134/1114/501 1163/1144/505 1161/1140/336 -f 1148/2232/498 1164/1142/498 1166/1145/500 -f 1129/1111/336 1161/1140/336 1159/1137/504 -f 1148/2232/498 1147/2229/333 1162/1143/333 -f 1255/2234/506 1256/2247/519 1257/2235/507 -f 1260/2237/509 1261/2248/520 1262/2238/510 -f 1264/2240/512 1265/2244/516 1266/2241/513 -f 1267/2243/515 1268/2250/521 1265/2244/516 -f 1269/2245/517 1255/2234/506 1258/2236/508 -f 1256/2247/519 1259/2239/511 1262/2238/510 -f 1260/2237/509 1263/2242/514 1266/2241/513 -f 1269/2249/517 1270/2255/518 1268/2250/521 -f 1266/2241/513 1265/2244/516 1271/2251/522 -f 1261/2248/520 1273/2257/376 1274/2253/524 -f 1257/2235/507 1275/2258/527 1276/2254/525 -f 1270/2255/518 1277/2266/528 1278/2256/526 -f 1261/2248/520 1266/2241/513 1272/2252/523 -f 1262/2238/510 1274/2253/524 1275/2258/527 -f 1270/2246/518 1258/2236/508 1276/2254/525 -f 1265/2244/516 1268/2250/521 1278/2256/526 -f 1277/2259/528 1276/2254/525 1279/2260/529 -f 1271/2251/522 1278/2256/526 1281/2262/530 -f 1271/2251/522 1282/2263/531 1283/2264/532 -f 1273/2257/376 1284/2267/132 1285/2265/533 -f 1275/2258/527 1286/2268/534 1279/2260/529 -f 1277/2266/528 1280/2276/133 1281/2262/530 -f 1273/2257/376 1272/2252/523 1283/2264/532 -f 1275/2258/527 1274/2253/524 1285/2265/533 -f 1283/2264/532 1287/2275/541 1288/2269/535 -f 1286/2268/534 1285/2265/533 1289/2270/536 -f 1280/2261/133 1279/2260/529 1291/2272/538 -f 1281/2262/530 1293/2277/542 1294/2274/540 -f 1282/2263/531 1294/2274/540 1287/2275/541 -f 1285/2265/533 1284/2267/132 1288/2269/535 -f 1279/2260/529 1286/2268/534 1290/2271/537 -f 1280/2276/133 1292/2668/539 1293/2277/542 -f 1296/2278/543 1227/1162/543 1224/1156/335 -f 1298/2280/544 1215/1147/544 1229/1158/545 -f 1299/2282/338 1300/2285/546 1219/1152/546 -f 1302/2283/547 1223/1153/547 1220/1150/548 -f 1296/2278/543 1297/2669/545 1229/1728/545 -f 1298/2280/544 1299/2282/338 1216/1160/338 -f 1300/2285/546 1301/2284/548 1220/1150/548 -f 1295/2279/335 1224/1156/335 1223/1153/547 -f 1232/2286/546 1231/2291/338 1241/1171/338 -f 1226/1155/547 1225/1154/335 1240/1167/335 -f 1232/2286/546 1244/1170/546 1246/1734/548 -f 1228/1157/543 1243/1173/543 1240/1167/335 -f 1234/2288/547 1233/2670/548 1246/1175/548 -f 1230/1163/545 1245/1172/545 1243/1173/543 -f 1234/2288/547 1248/1178/547 1250/1180/335 -f 1218/1149/549 1247/1174/549 1245/1176/545 -f 1221/1161/548 1226/1155/547 1239/1169/547 -f 1238/2290/544 1242/1168/544 1241/1171/338 -f 1221/1161/548 1253/1183/548 1251/1181/546 -f 1238/2290/544 1237/2293/545 1254/1182/545 -f 1222/1151/546 1251/1181/546 1249/1177/338 -f 1236/2292/543 1252/1179/543 1254/1182/545 -f 1217/1148/338 1249/1177/338 1247/1174/549 -f 1236/2292/543 1235/2289/335 1250/1180/335 -f 1343/2294/550 1344/2307/563 1345/2295/551 -f 1348/2297/553 1349/2308/564 1350/2298/554 -f 1352/2300/556 1353/2304/560 1354/2301/557 -f 1355/2303/559 1356/2310/565 1353/2304/560 -f 1357/2305/561 1343/2294/550 1346/2296/552 -f 1344/2307/563 1347/2299/555 1350/2298/554 -f 1351/2302/558 1354/2301/557 1349/2308/564 -f 1357/2309/561 1358/2315/562 1356/2310/565 -f 1354/2301/557 1353/2304/560 1359/2311/566 -f 1349/2308/564 1361/2317/571 1362/2313/568 -f 1345/2295/551 1363/2318/572 1364/2314/569 -f 1358/2315/562 1365/2326/573 1366/2316/570 -f 1349/2308/564 1354/2301/557 1360/2312/567 -f 1350/2298/554 1362/2313/568 1363/2318/572 -f 1358/2306/562 1346/2296/552 1364/2314/569 -f 1353/2304/560 1356/2310/565 1366/2316/570 -f 1364/2314/569 1367/2325/530 1368/2320/133 -f 1359/2311/566 1366/2316/570 1369/2321/529 -f 1359/2311/566 1370/2322/534 1371/2323/533 -f 1361/2317/571 1372/2327/132 1373/2324/532 -f 1363/2318/572 1374/2328/531 1367/2325/530 -f 1365/2326/573 1368/2336/133 1369/2321/529 -f 1361/2317/571 1360/2312/567 1371/2323/533 -f 1363/2318/572 1362/2313/568 1373/2324/532 -f 1371/2323/533 1375/2335/580 1376/2329/574 -f 1374/2328/531 1373/2324/532 1377/2330/575 -f 1368/2320/133 1367/2325/530 1379/2332/577 -f 1369/2321/529 1381/2337/581 1382/2334/579 -f 1370/2322/534 1382/2334/579 1375/2335/580 -f 1373/2324/532 1372/2327/132 1376/2329/574 -f 1367/2325/530 1374/2328/531 1378/2331/576 -f 1368/2336/133 1380/2671/578 1381/2337/581 -f 1384/2338/582 1315/1199/582 1312/1193/338 -f 1386/2340/583 1303/1184/583 1317/1195/584 -f 1387/2342/335 1388/2345/585 1307/1189/585 -f 1390/2343/586 1311/1190/586 1308/1187/587 -f 1384/2338/582 1385/2672/584 1317/1735/584 -f 1386/2340/583 1387/2342/335 1304/1197/335 -f 1389/2344/587 1308/1187/587 1307/1189/585 -f 1383/2339/338 1312/1193/338 1311/1190/586 -f 1320/2346/585 1319/2351/335 1329/1208/335 -f 1314/1192/586 1313/1191/338 1328/1204/338 -f 1320/2346/585 1332/1207/585 1334/1741/587 -f 1313/1191/338 1316/1194/588 1331/1210/582 -f 1322/2348/586 1321/2673/587 1334/1212/587 -f 1318/1200/584 1333/1209/584 1331/1210/582 -f 1322/2348/586 1336/1215/586 1338/1217/338 -f 1306/1186/589 1335/1211/589 1333/1213/584 -f 1309/1198/587 1314/1192/586 1327/1206/586 -f 1326/2350/583 1330/1205/583 1329/1208/335 -f 1309/1198/587 1341/1220/587 1339/1218/590 -f 1326/2350/583 1325/2353/584 1342/1219/584 -f 1310/1188/585 1339/1218/590 1337/1214/335 -f 1324/2352/582 1340/1216/582 1342/1219/584 -f 1305/1185/335 1337/1214/335 1335/1211/589 -f 1324/2352/582 1323/2349/338 1338/1217/338 -f 1431/2354/591 1432/2367/604 1433/2355/592 -f 1436/2357/594 1437/2368/605 1438/2358/595 -f 1440/2360/597 1441/2364/601 1442/2361/598 -f 1443/2363/600 1444/2370/606 1441/2364/601 -f 1445/2365/602 1431/2354/591 1434/2356/593 -f 1435/2359/596 1438/2358/595 1433/2355/592 -f 1436/2357/594 1439/2362/599 1442/2361/598 -f 1445/2369/602 1446/2375/603 1444/2370/606 -f 1442/2361/598 1441/2364/601 1447/2371/607 -f 1437/2368/605 1449/2377/612 1450/2373/609 -f 1433/2355/592 1451/2378/613 1452/2374/610 -f 1446/2375/603 1453/2386/614 1454/2376/611 -f 1437/2368/605 1442/2361/598 1448/2372/608 -f 1438/2358/595 1450/2373/609 1451/2378/613 -f 1446/2366/603 1434/2356/593 1452/2374/610 -f 1441/2364/601 1444/2370/606 1454/2376/611 -f 1453/2379/614 1452/2374/610 1455/2380/615 -f 1447/2371/607 1454/2376/611 1457/2382/616 -f 1447/2371/607 1458/2383/617 1459/2384/618 -f 1449/2377/612 1460/2387/132 1461/2385/619 -f 1451/2378/613 1462/2388/620 1455/2380/615 -f 1453/2386/614 1456/2396/133 1457/2382/616 -f 1449/2377/612 1448/2372/608 1459/2384/618 -f 1451/2378/613 1450/2373/609 1461/2385/619 -f 1459/2384/618 1463/2395/627 1464/2389/621 -f 1462/2388/620 1461/2385/619 1465/2390/622 -f 1456/2381/133 1455/2380/615 1467/2392/624 -f 1457/2382/616 1469/2397/628 1470/2394/626 -f 1458/2383/617 1470/2394/626 1463/2395/627 -f 1461/2385/619 1460/2387/132 1464/2389/621 -f 1455/2380/615 1462/2388/620 1466/2391/623 -f 1456/2396/133 1468/2674/625 1469/2397/628 -f 1472/2398/629 1403/1236/629 1400/1230/337 -f 1474/2400/630 1391/1221/630 1405/1232/631 -f 1475/2402/334 1476/2405/632 1395/1226/632 -f 1478/2403/633 1399/1227/633 1396/1224/634 -f 1472/2398/629 1473/2675/631 1405/1742/631 -f 1474/2400/630 1475/2402/334 1392/1234/334 -f 1477/2404/634 1396/1224/634 1395/1226/632 -f 1471/2399/337 1400/1230/337 1399/1227/633 -f 1408/2406/632 1407/2411/334 1417/1245/334 -f 1402/1229/633 1401/1228/337 1416/1241/337 -f 1408/2406/632 1420/1244/632 1422/1748/634 -f 1404/1231/629 1419/1247/629 1416/1241/337 -f 1410/2408/633 1409/2676/634 1422/1249/634 -f 1406/1237/631 1421/1246/631 1419/1247/629 -f 1410/2408/633 1424/1252/633 1426/1254/337 -f 1394/1223/635 1423/1248/635 1421/1250/631 -f 1397/1235/634 1402/1229/633 1415/1243/633 -f 1414/2410/630 1418/1242/630 1417/1245/334 -f 1397/1235/634 1429/1257/634 1427/1255/632 -f 1414/2410/630 1413/2413/631 1430/1256/631 -f 1398/1225/632 1427/1255/632 1425/1251/334 -f 1412/2412/629 1428/1253/629 1430/1256/631 -f 1393/1222/334 1425/1251/334 1423/1248/635 -f 1412/2412/629 1411/2409/337 1426/1254/337 -f 1519/2414/636 1520/2427/649 1521/2415/637 -f 1524/2417/639 1525/2428/650 1526/2418/640 -f 1528/2420/642 1529/2424/646 1530/2421/643 -f 1531/2423/645 1532/2430/651 1529/2424/646 -f 1533/2425/647 1519/2414/636 1522/2416/638 -f 1520/2427/649 1523/2419/641 1526/2418/640 -f 1524/2417/639 1527/2422/644 1530/2421/643 -f 1533/2429/647 1534/2435/648 1532/2430/651 -f 1530/2421/643 1529/2424/646 1535/2431/652 -f 1525/2428/650 1537/2437/657 1538/2433/654 -f 1521/2415/637 1539/2438/658 1540/2434/655 -f 1534/2435/648 1541/2446/659 1542/2436/656 -f 1530/2421/643 1536/2432/653 1537/2437/657 -f 1526/2418/640 1538/2433/654 1539/2438/658 -f 1534/2426/648 1522/2416/638 1540/2434/655 -f 1529/2424/646 1532/2430/651 1542/2436/656 -f 1541/2439/659 1540/2434/655 1543/2440/616 -f 1535/2431/652 1542/2436/656 1545/2442/615 -f 1535/2431/652 1546/2443/620 1547/2444/619 -f 1537/2437/657 1548/2447/132 1549/2445/618 -f 1539/2438/658 1550/2448/617 1543/2440/616 -f 1541/2446/659 1544/2456/133 1545/2442/615 -f 1537/2437/657 1536/2432/653 1547/2444/619 -f 1539/2438/658 1538/2433/654 1549/2445/618 -f 1547/2444/619 1551/2455/666 1552/2449/660 -f 1550/2448/617 1549/2445/618 1553/2450/661 -f 1544/2441/133 1543/2440/616 1555/2452/663 -f 1545/2442/615 1557/2457/667 1558/2454/665 -f 1546/2443/620 1558/2454/665 1551/2455/666 -f 1549/2445/618 1548/2447/132 1552/2449/660 -f 1543/2440/616 1550/2448/617 1554/2451/662 -f 1544/2456/133 1556/2677/664 1557/2457/667 -f 1560/2458/668 1491/1267/668 1488/1268/334 -f 1562/2460/669 1479/1258/669 1493/1269/670 -f 1563/2462/337 1564/2464/671 1483/1263/671 -f 1565/2463/672 1566/2465/673 1487/1264/673 -f 1560/2458/668 1561/2678/670 1493/1749/670 -f 1562/2460/669 1563/2462/337 1480/1271/337 -f 1564/2464/671 1565/2463/672 1484/1261/672 -f 1559/2459/334 1488/1268/334 1487/1264/673 -f 1496/2466/671 1495/2471/337 1505/1282/337 -f 1490/1266/673 1489/1265/334 1504/1278/334 -f 1496/2466/671 1508/1281/671 1510/1755/672 -f 1489/1265/334 1492/1274/674 1507/1284/668 -f 1498/2468/673 1497/2679/672 1510/1286/672 -f 1494/1273/670 1509/1283/670 1507/1284/668 -f 1498/2468/673 1512/1289/673 1514/1291/334 -f 1482/1260/675 1511/1285/675 1509/1287/670 -f 1485/1272/672 1490/1266/673 1503/1280/673 -f 1502/2470/669 1506/1279/669 1505/1282/337 -f 1485/1272/672 1517/1294/672 1515/1292/676 -f 1502/2470/669 1501/2473/670 1518/1293/670 -f 1486/1262/671 1515/1292/676 1513/1288/337 -f 1500/2472/668 1516/1290/668 1518/1293/670 -f 1481/1259/337 1513/1288/337 1511/1285/675 -f 1500/2472/668 1499/2469/334 1514/1291/334 -f 1695/2474/130 1700/2482/680 1704/2475/677 -f 1697/2477/328 1702/2680/721 1701/2478/678 -f 1699/2476/151 1704/2475/677 1703/2480/679 -f 1696/2479/143 1701/2478/678 1700/2482/680 -f 1701/2478/678 1702/2680/721 1707/2483/681 -f 1704/2475/677 1709/2487/684 1708/2485/683 -f 1701/2478/678 1706/2484/682 1705/2486/169 -f 1704/2475/677 1700/2482/680 1705/2486/169 -f 1705/2486/169 1710/2492/308 1714/2488/685 -f 1706/2484/682 1707/2483/681 1712/2489/686 -f 1709/2487/684 1714/2488/685 1713/2491/688 -f 1705/2486/169 1706/2484/682 1711/2490/687 -f 1715/2493/130 1720/2501/680 1724/2494/677 -f 1717/2496/328 1722/2681/721 1721/2497/678 -f 1719/2495/151 1724/2494/677 1723/2499/679 -f 1716/2498/143 1721/2497/678 1720/2501/680 -f 1721/2497/678 1722/2681/721 1727/2502/681 -f 1724/2494/677 1729/2506/684 1728/2504/683 -f 1721/2497/678 1726/2503/682 1725/2505/169 -f 1724/2494/677 1720/2501/680 1725/2505/169 -f 1725/2505/169 1730/2511/308 1734/2507/685 -f 1726/2503/682 1727/2502/681 1732/2508/686 -f 1729/2506/684 1734/2507/685 1733/2510/688 -f 1726/2503/682 1731/2509/687 1730/2511/308 -f 1735/2512/130 1740/2520/680 1744/2513/677 -f 1737/2515/328 1742/2682/721 1741/2516/678 -f 1739/2514/151 1744/2513/677 1743/2518/679 -f 1736/2517/143 1741/2516/678 1740/2520/680 -f 1741/2516/678 1742/2682/721 1747/2521/681 -f 1744/2513/677 1749/2525/684 1748/2523/683 -f 1741/2516/678 1746/2522/682 1745/2524/169 -f 1744/2513/677 1740/2520/680 1745/2524/169 -f 1745/2524/169 1750/2530/308 1754/2526/685 -f 1746/2522/682 1747/2521/681 1752/2527/686 -f 1749/2525/684 1754/2526/685 1753/2529/688 -f 1746/2522/682 1751/2528/687 1750/2530/308 -f 1809/2531/689 1808/2563/690 1867/2532/690 -f 1809/2531/689 1868/2533/689 1869/2534/691 -f 1806/2535/691 1869/2534/691 1870/2536/692 -f 1807/2537/692 1870/2536/692 1871/2538/693 -f 1803/2539/693 1871/2538/693 1872/2540/694 -f 1805/2542/695 1804/2541/694 1872/2540/694 -f 1818/2544/696 1805/2542/695 1873/2543/695 -f 1816/2546/697 1818/2544/696 1874/2545/696 -f 1817/2548/698 1816/2546/697 1875/2547/697 -f 1817/2550/698 1876/2579/698 1877/2551/699 -f 1814/2552/699 1877/2551/699 1878/2553/700 -f 1812/2555/701 1815/2554/700 1878/2553/700 -f 1812/2555/701 1879/2556/701 1880/2557/702 -f 1813/2558/702 1880/2557/702 1881/2559/703 -f 1810/2560/703 1881/2559/703 1882/2561/704 -f 1808/2563/690 1811/2562/704 1882/2561/704 -f 1867/2532/335 1883/2567/335 1884/2564/127 -f 1868/2533/127 1884/2564/127 1885/2565/336 -f 1875/2547/338 1886/2568/338 1887/2566/130 -f 1882/2561/125 1888/2569/125 1883/2567/335 -f 1874/2545/143 1889/2570/143 1886/2568/338 -f 1881/2559/325 1890/2571/325 1888/2569/125 -f 1873/2543/328 1891/2572/328 1889/2570/143 -f 1880/2557/126 1892/2573/126 1890/2571/325 -f 1872/2540/124 1893/2574/124 1891/2572/328 -f 1879/2556/334 1894/2575/334 1892/2573/126 -f 1871/2538/337 1895/2576/337 1893/2574/124 -f 1878/2553/151 1896/2577/151 1894/2575/334 -f 1870/2536/128 1897/2578/128 1895/2576/337 -f 1877/2551/333 1898/2580/333 1896/2577/151 -f 1869/2534/336 1885/2565/336 1897/2578/128 -f 1876/2579/130 1887/2595/130 1898/2580/333 -f 1889/2570/705 1891/2572/706 1829/2581/706 -f 1890/2571/707 1892/2573/708 1822/2583/708 -f 1893/2574/709 1830/2683/709 1829/2585/706 -f 1892/2573/708 1894/2575/710 1823/2586/710 -f 1893/2574/709 1895/2576/711 1831/2588/711 -f 1896/2577/712 1824/2684/712 1823/2590/710 -f 1897/2578/713 1832/2685/713 1831/2591/711 -f 1896/2577/712 1898/2580/714 1825/2592/714 -f 1885/2565/715 1833/2686/715 1832/2594/713 -f 1887/2595/716 1826/2687/716 1825/2596/714 -f 1884/2564/717 1883/2567/718 1819/2597/718 -f 1884/2564/717 1834/2688/717 1833/2599/715 -f 1887/2566/716 1886/2568/719 1827/2600/719 -f 1888/2569/720 1820/2689/720 1819/2602/718 -f 1889/2570/705 1828/2690/705 1827/2603/719 -f 1888/2569/720 1890/2571/707 1821/2604/707 -f 1842/2606/336 1861/2637/336 1860/2607/127 -f 1850/2609/130 1852/2613/130 1851/2610/338 -f 1837/2612/333 1853/2638/333 1852/2613/130 -f 1843/2614/127 1860/2691/127 1859/2615/335 -f 1848/2611/338 1851/2610/338 1866/2617/143 -f 1840/2616/335 1859/2615/335 1858/2619/125 -f 1849/2618/143 1866/2617/143 1865/2621/328 -f 1841/2620/125 1858/2619/125 1857/2623/325 -f 1846/2622/328 1865/2621/328 1864/2625/124 -f 1838/2624/325 1857/2623/325 1856/2627/126 -f 1847/2626/124 1864/2625/124 1863/2629/337 -f 1839/2628/126 1856/2627/126 1855/2631/334 -f 1844/2630/337 1863/2629/337 1862/2633/128 -f 1835/2632/334 1855/2631/334 1854/2635/151 -f 1845/2634/128 1862/2633/128 1861/2637/336 -f 1836/2636/151 1854/2635/151 1853/2638/333 diff --git a/src/main/resources/assets/hbm/models/weapons/cursed.obj b/src/main/resources/assets/hbm/models/weapons/cursed.obj index 6a0f56ad9..ab664cadc 100644 --- a/src/main/resources/assets/hbm/models/weapons/cursed.obj +++ b/src/main/resources/assets/hbm/models/weapons/cursed.obj @@ -1,1632 +1,293 @@ -# Blender v2.79 (sub 0) OBJ File: 'cursed.blend' +# Blender 4.0.1 # www.blender.org -o Cube.011_Cube.026 -v -3.478718 1.138718 0.014552 -v -3.801282 1.138718 -0.014552 -v -3.478718 1.138718 -0.014552 -v -3.478718 1.461282 0.014552 -v -3.478718 1.423807 0.011171 -v -3.478718 1.423807 -0.011171 -v -3.478718 1.176193 -0.011171 -v -3.478718 1.176193 0.011171 -v -3.801282 1.314552 0.161282 -v -3.478718 1.285448 0.161282 -v -3.478718 1.314552 0.161282 -v -3.801282 1.461282 -0.014552 -v -3.801282 1.423807 -0.011171 -v -3.801282 1.423807 0.011171 -v -3.801282 1.138718 0.014552 -v -3.801282 1.176193 0.011171 -v -3.801282 1.176193 -0.011171 -v -3.801282 1.461282 0.014552 -v -3.478718 1.461282 -0.014552 -v -3.801282 1.314552 -0.161282 -v -3.478718 1.418306 -0.118306 -v -3.478718 1.314552 -0.161282 -v -3.801282 1.418306 -0.118306 -v -3.801282 1.418306 0.118306 -v -3.478718 1.418306 0.118306 -v -3.478718 1.285448 -0.161282 -v -3.801282 1.181694 -0.118306 -v -3.801282 1.285448 -0.161282 -v -3.478718 1.181694 -0.118306 -v -3.801282 1.285448 0.161282 -v -3.478718 1.181694 0.118306 -v -3.801282 1.181694 0.118306 -v -3.478718 1.311171 0.123807 -v -3.801282 1.288829 0.123807 -v -3.801282 1.311171 0.123807 -v -3.801282 1.390817 -0.090817 -v -3.478718 1.311171 -0.123807 -v -3.478718 1.390817 -0.090817 -v -3.478718 1.390817 0.090817 -v -3.801282 1.390817 0.090817 -v -3.478718 1.288829 -0.123807 -v -3.801282 1.209183 -0.090817 -v -3.478718 1.209183 -0.090817 -v -3.801282 1.209183 0.090817 -v -3.478718 1.288829 0.123807 -v -3.478718 1.209183 0.090817 -v -3.801282 1.311171 -0.123807 -v -3.801282 1.288829 -0.123807 -vt 0.588344 0.422031 -vt 0.590616 0.396347 -vt 0.590616 0.422031 -vt 0.816190 0.537904 -vt 0.810508 0.548747 -vt 0.803793 0.545966 -vt 0.767283 0.631233 -vt 0.772965 0.620390 -vt 0.779680 0.623172 -vt 0.404454 0.586481 -vt 0.402136 0.560797 -vt 0.404454 0.560797 -vt 0.556937 0.482545 -vt 0.559591 0.483935 -vt 0.558910 0.485579 -vt 0.579779 0.494514 -vt 0.577125 0.493124 -vt 0.577806 0.491480 -vt 0.587488 0.577888 -vt 0.589806 0.552204 -vt 0.589806 0.577888 -vt 0.589806 0.526521 -vt 0.598067 0.552204 -vt 0.589806 0.552204 -vt 0.598067 0.577888 -vt 0.412715 0.586481 -vt 0.579227 0.552204 -vt 0.579227 0.577888 -vt 0.587488 0.552204 -vt 0.579227 0.526521 -vt 0.587488 0.526521 -vt 0.598051 0.422031 -vt 0.598051 0.396347 -vt 0.402136 0.586481 -vt 0.393875 0.560797 -vt 0.579574 0.396347 -vt 0.579574 0.422031 -vt 0.560711 0.557920 -vt 0.560053 0.548419 -vt 0.560711 0.548419 -vt 0.497042 0.578916 -vt 0.496384 0.569415 -vt 0.497042 0.569415 -vt 0.506272 0.569862 -vt 0.506918 0.579363 -vt 0.506272 0.579363 -vt 0.563051 0.509766 -vt 0.560705 0.500265 -vt 0.563051 0.500265 -vt 0.509408 0.569862 -vt 0.509408 0.579363 -vt 0.499388 0.578916 -vt 0.504161 0.569862 -vt 0.560047 0.500265 -vt 0.557701 0.509766 -vt 0.557701 0.500265 -vt 0.563057 0.557920 -vt 0.494038 0.569415 -vt 0.496384 0.578916 -vt 0.494038 0.578916 -vt 0.557707 0.548419 -vt 0.560053 0.557920 -vt 0.557707 0.557920 -vt 0.560705 0.509766 -vt 0.588344 0.396347 -vt 0.755915 0.565797 -vt 0.745072 0.560115 -vt 0.775747 0.545966 -vt 0.770907 0.534281 -vt 0.807442 0.534281 -vt 0.842024 0.563739 -vt 0.842024 0.600274 -vt 0.830339 0.568579 -vt 0.830339 0.596625 -vt 0.827558 0.603340 -vt 0.838401 0.609022 -vt 0.812566 0.634856 -vt 0.807726 0.623172 -vt 0.776031 0.634856 -vt 0.741449 0.605398 -vt 0.741449 0.568863 -vt 0.753133 0.600559 -vt 0.753133 0.572512 -vt 0.558910 0.492443 -vt 0.563764 0.497297 -vt 0.562373 0.499950 -vt 0.556050 0.493627 -vt 0.556050 0.484686 -vt 0.563260 0.476222 -vt 0.572202 0.476222 -vt 0.564445 0.479082 -vt 0.571309 0.479082 -vt 0.572952 0.479762 -vt 0.574343 0.477109 -vt 0.580666 0.483431 -vt 0.577806 0.484616 -vt 0.580666 0.492373 -vt 0.573456 0.500837 -vt 0.564514 0.500837 -vt 0.572271 0.497977 -vt 0.565407 0.497977 -vt 0.587488 0.552204 -vt 0.598067 0.526521 -vt 0.412715 0.560797 -vt 0.579227 0.552204 -vt 0.393875 0.586481 -vt 0.506918 0.569862 -vt 0.499388 0.569415 -vt 0.504161 0.579363 -vt 0.560047 0.509766 -vt 0.563057 0.548419 -vn 0.0000 -0.9808 0.1951 -vn 0.0000 -0.9808 -0.1951 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.1951 0.9808 -vn 0.0000 -0.1951 0.9808 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.9808 0.1951 -vn 0.0000 0.9808 -0.1951 -vn 0.0000 0.1951 -0.9808 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.1951 -0.9808 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -0.7071 0.7071 -s 1 -f 1/1/1 2/2/2 3/3/2 -f 4/4/3 5/5/3 6/6/3 -f 3/7/3 7/8/3 8/9/3 -f 9/10/4 10/11/5 11/12/4 -f 12/13/6 13/14/6 14/15/6 -f 15/16/6 16/17/6 17/18/6 -f 18/19/7 19/20/8 12/21/8 -f 20/22/9 21/23/10 22/24/9 -f 23/25/10 19/20/8 21/23/10 -f 11/12/4 24/26/11 9/10/4 -f 25/27/11 18/19/7 24/28/11 -f 26/29/12 27/30/13 28/31/12 -f 29/32/13 2/2/2 27/33/13 -f 30/34/5 31/35/14 10/11/5 -f 32/36/14 1/1/1 31/37/14 -f 22/24/9 28/31/12 20/22/9 -f 17/38/7 8/39/8 7/40/7 -f 33/41/12 34/42/9 35/43/12 -f 14/44/2 6/45/1 5/46/2 -f 36/47/14 37/48/5 38/49/14 -f 6/45/1 36/50/14 38/51/14 -f 35/43/12 39/52/13 33/41/12 -f 5/46/2 40/53/13 14/44/2 -f 41/54/4 42/55/11 43/56/11 -f 7/40/7 42/57/11 17/38/7 -f 44/58/10 45/59/9 46/60/10 -f 46/61/10 16/62/8 44/63/10 -f 47/64/5 41/54/4 37/48/5 -f 1/1/1 15/65/1 2/2/2 -f 37/66/3 22/67/3 38/68/3 -f 22/67/3 21/69/3 38/68/3 -f 21/69/3 19/70/3 38/68/3 -f 19/70/3 4/4/3 6/6/3 -f 25/71/3 11/72/3 39/73/3 -f 11/72/3 33/74/3 39/73/3 -f 6/6/3 38/68/3 19/70/3 -f 4/4/3 25/71/3 39/73/3 -f 4/4/3 39/73/3 5/5/3 -f 45/75/3 33/74/3 11/72/3 -f 11/72/3 10/76/3 45/75/3 -f 10/76/3 31/77/3 46/78/3 -f 45/75/3 10/76/3 46/78/3 -f 31/77/3 1/79/3 46/78/3 -f 1/79/3 3/7/3 8/9/3 -f 46/78/3 1/79/3 8/9/3 -f 29/80/3 26/81/3 43/82/3 -f 26/81/3 22/67/3 41/83/3 -f 43/82/3 26/81/3 41/83/3 -f 22/67/3 37/66/3 41/83/3 -f 29/80/3 43/82/3 3/7/3 -f 43/82/3 7/8/3 3/7/3 -f 9/10/4 30/34/5 10/11/5 -f 40/84/6 35/85/6 9/86/6 -f 24/87/6 18/88/6 40/84/6 -f 18/88/6 12/13/6 14/15/6 -f 23/89/6 20/90/6 36/91/6 -f 20/90/6 47/92/6 36/91/6 -f 40/84/6 9/86/6 24/87/6 -f 14/15/6 40/84/6 18/88/6 -f 12/13/6 23/89/6 36/91/6 -f 12/13/6 36/91/6 13/14/6 -f 48/93/6 47/92/6 20/90/6 -f 20/90/6 28/94/6 48/93/6 -f 28/94/6 27/95/6 42/96/6 -f 48/93/6 28/94/6 42/96/6 -f 27/95/6 2/97/6 42/96/6 -f 2/97/6 15/16/6 17/18/6 -f 42/96/6 2/97/6 17/18/6 -f 32/98/6 30/99/6 44/100/6 -f 30/99/6 9/86/6 34/101/6 -f 44/100/6 30/99/6 34/101/6 -f 9/86/6 35/85/6 34/101/6 -f 32/98/6 44/100/6 15/16/6 -f 44/100/6 16/17/6 15/16/6 -f 18/19/7 4/102/7 19/20/8 -f 20/22/9 23/103/10 21/23/10 -f 23/25/10 12/21/8 19/20/8 -f 11/12/4 25/104/11 24/26/11 -f 25/27/11 4/102/7 18/19/7 -f 26/29/12 29/105/13 27/30/13 -f 29/32/13 3/3/2 2/2/2 -f 30/34/5 32/106/14 31/35/14 -f 32/36/14 15/65/1 1/1/1 -f 22/24/9 26/29/12 28/31/12 -f 17/38/7 16/62/8 8/39/8 -f 33/41/12 45/59/9 34/42/9 -f 14/44/2 13/107/1 6/45/1 -f 36/47/14 47/64/5 37/48/5 -f 6/45/1 13/107/1 36/50/14 -f 35/43/12 40/108/13 39/52/13 -f 5/46/2 39/109/13 40/53/13 -f 41/54/4 48/110/4 42/55/11 -f 7/40/7 43/111/11 42/57/11 -f 44/58/10 34/42/9 45/59/9 -f 46/61/10 8/39/8 16/62/8 -f 47/64/5 48/110/4 41/54/4 -o Cube.010_Cube.024 -v -1.174927 0.285547 0.087560 -v -1.174927 0.514453 -0.087560 -v -1.174927 0.285547 -0.087560 -v -1.174927 0.514453 0.087560 -v -1.234927 0.743360 -0.087560 -v -1.115006 0.267911 -0.117540 -v -1.115006 0.530655 -0.117540 -v -0.765073 0.056640 -0.117540 -v -1.170759 0.743360 0.117540 -v -0.765073 0.743360 0.117540 -v -0.765073 0.743360 -0.117540 -v -1.115006 0.530655 0.117540 -v -1.115006 0.267911 0.117540 -v -0.765073 0.056640 0.117540 -v -1.234927 0.076640 0.087560 -v -1.234927 0.076640 -0.087560 -v -1.170726 0.073908 -0.117540 -v -1.170759 0.743360 -0.117540 -v -1.170726 0.073908 0.117540 -v -1.234927 0.743360 0.087560 -vt 0.390067 0.372535 -vt 0.406128 0.365349 -vt 0.406128 0.372535 -vt 0.390067 0.365349 -vt 0.406128 0.358191 -vt 0.790352 0.332178 -vt 0.790352 0.323929 -vt 0.806409 0.338811 -vt 0.698608 0.414236 -vt 0.698608 0.432852 -vt 0.677048 0.432852 -vt 0.770203 0.441932 -vt 0.770203 0.433683 -vt 0.786260 0.427050 -vt 0.743140 0.410105 -vt 0.721579 0.388545 -vt 0.743140 0.388545 -vt 0.745889 0.383929 -vt 0.761950 0.383929 -vt 0.764700 0.386876 -vt 0.350295 0.400769 -vt 0.350102 0.394125 -vt 0.352852 0.394678 -vt 0.330144 0.511110 -vt 0.329953 0.503923 -vt 0.332703 0.504432 -vt 0.350294 0.379751 -vt 0.350102 0.386938 -vt 0.347349 0.379751 -vt 0.352852 0.386429 -vt 0.330146 0.490092 -vt 0.329953 0.496736 -vt 0.327200 0.490178 -vt 0.332703 0.496183 -vt 0.390067 0.379122 -vt 0.406128 0.379122 -vt 0.390067 0.358191 -vt 0.787794 0.317251 -vt 0.806409 0.317251 -vt 0.787795 0.338269 -vt 0.677048 0.414236 -vt 0.679797 0.411291 -vt 0.695858 0.411291 -vt 0.786260 0.448610 -vt 0.767644 0.448610 -vt 0.767646 0.427592 -vt 0.721579 0.410105 -vt 0.764700 0.405498 -vt 0.743140 0.405498 -vt 0.743140 0.386876 -vt 0.347349 0.400683 -vt 0.327200 0.511110 -vn -0.9902 0.1394 0.0000 -vn -0.9918 -0.1278 0.0000 -vn -0.9673 -0.2535 0.0000 -vn -0.2023 0.0306 -0.9788 -vn -0.2051 -0.0283 -0.9783 -vn -0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 0.0000 -vn -0.2051 -0.0283 0.9783 -vn -0.2023 0.0306 0.9788 +o Body +v 0.039030 0.270865 -0.182602 +v -0.039030 0.270865 -0.182602 +v -0.039030 0.270865 -0.049612 +v 0.048496 0.137875 -0.049612 +v -0.048496 0.137875 -0.049612 +v -0.048496 0.137875 -0.182602 +v 0.048496 0.137875 -0.182602 +v 0.048496 0.257886 -0.182602 +v 0.048496 0.257886 -0.049612 +v -0.048496 0.257886 -0.182602 +v -0.048496 0.257886 -0.049612 +v 0.049569 0.280590 -0.050319 +v 0.049569 0.273108 0.054217 +v -0.049569 0.273108 0.054217 +v -0.056483 0.269999 -0.050488 +v -0.056483 0.147028 0.042790 +v -0.056483 0.137805 -0.036642 +v -0.049569 0.280590 -0.050319 +v 0.056483 0.269999 -0.050488 +v 0.056483 0.113015 0.066739 +v -0.056483 0.113015 0.066739 +v -0.056483 0.110740 0.072738 +v 0.052553 0.210653 0.115466 +v -0.052553 0.210653 0.115466 +v -0.049569 0.215450 0.117517 +v 0.052553 0.115536 0.074789 +v 0.052553 0.118481 0.067903 +v 0.052553 0.213598 0.108580 +v 0.056483 0.147028 0.042790 +v 0.056483 0.110740 0.072738 +v 0.056483 0.206509 0.113693 +v 0.049569 0.215450 0.117517 +v 0.056483 0.137805 -0.036642 +v 0.056483 0.137656 -0.052596 +v 0.056483 0.127617 0.025928 +v -0.056483 0.127617 0.025928 +v -0.056483 0.206509 0.113693 +v -0.052553 0.115536 0.074789 +v -0.052553 0.213598 0.108580 +v -0.052553 0.118481 0.067903 +v 0.056483 0.262485 0.053254 +v -0.056484 0.262485 0.053254 +v 0.054976 0.110605 0.067119 +v 0.054976 0.097434 0.017005 +v 0.048309 0.097434 0.017005 +v -0.040425 -0.171169 -0.050457 +v 0.040425 -0.171169 -0.050457 +v 0.040425 0.137547 -0.132337 +v -0.054976 0.137698 -0.106903 +v 0.054976 0.138185 -0.025200 +v -0.054976 0.138185 -0.025200 +v 0.054976 -0.076166 -0.021181 +v 0.048309 -0.083769 -0.018789 +v 0.048309 -0.076166 -0.021181 +v -0.048309 -0.009356 -0.032415 +v -0.048309 0.110605 0.067119 +v -0.048309 -0.025374 -0.031131 +v 0.054976 -0.170719 -0.025102 +v 0.040425 -0.244821 -0.040275 +v -0.054976 0.097435 0.017007 +v -0.054976 0.110605 0.067119 +v -0.054976 -0.170125 0.008377 +v -0.054976 -0.076166 -0.021180 +v -0.048309 -0.083769 -0.018789 +v 0.048309 0.030025 -0.030106 +v 0.048309 0.044544 -0.026498 +v 0.054976 0.137698 -0.106903 +v 0.054976 0.037257 -0.029682 +v 0.054976 0.077314 -0.012178 +v 0.054976 0.115945 0.065739 +v 0.048309 0.110605 0.067119 +v -0.054976 0.129257 0.026818 +v 0.054976 0.129257 0.026818 +v -0.054976 -0.016638 -0.032842 +v -0.048309 -0.016638 -0.032842 +v -0.054976 0.037258 -0.029680 +v -0.048309 0.037258 -0.029680 +v -0.048309 0.030638 -0.030069 +v -0.048309 0.042828 -0.027246 +v -0.054976 0.077314 -0.012176 +v -0.048309 0.077314 -0.012176 +v 0.048309 -0.024239 -0.031355 +v 0.048309 -0.016638 -0.032844 +v 0.054976 -0.016638 -0.032844 +v 0.048309 0.037257 -0.029682 +v 0.048309 0.077314 -0.012178 +v -0.054976 -0.170719 -0.025102 +v 0.048309 -0.170125 0.008377 +v 0.054976 -0.170125 0.008377 +v 0.054976 -0.243777 0.018558 +v -0.048309 -0.083374 -0.018913 +v -0.048309 -0.069301 -0.022525 +v -0.048309 -0.076166 -0.021180 +v 0.048309 -0.068273 -0.022727 +v 0.048309 -0.008551 -0.032369 +v -0.048309 -0.080475 0.114660 +v -0.054976 -0.087095 0.114272 +v -0.048309 -0.085555 -0.001705 +v -0.048309 -0.092665 0.111837 +v 0.048309 -0.087359 -0.001395 +v 0.054976 -0.087095 0.114273 +v 0.048309 -0.094382 0.111089 +v 0.048309 -0.079862 0.114697 +v -0.048309 -0.020475 0.097993 +v -0.054976 -0.027095 0.097605 +v -0.048309 -0.025555 -0.018372 +v -0.048309 -0.032665 0.095171 +v 0.048309 -0.027359 -0.018062 +v 0.054976 -0.027095 0.097607 +v 0.048309 -0.034382 0.094422 +v 0.048309 -0.019863 0.098031 +v -0.048309 0.029525 0.081326 +v -0.054976 0.022905 0.080938 +v -0.048309 0.024445 -0.035038 +v -0.048309 0.017335 0.078504 +v 0.048309 0.022641 -0.034728 +v 0.054976 0.022905 0.080940 +v 0.048309 0.015618 0.077755 +v 0.048309 0.030138 0.081364 +v -0.030080 -0.025485 -0.404784 +v 0.030080 -0.025485 -0.404784 +v 0.030080 0.137827 -0.404784 +v -0.030080 0.137827 -0.404784 +v 0.030080 0.137827 -0.088828 +v -0.030080 0.034929 -0.324529 +v -0.030080 0.077413 -0.324529 +v 0.030080 0.034929 -0.128143 +v 0.030080 0.001589 -0.088828 +v 0.030080 0.077413 -0.128143 +v -0.030080 -0.025485 -0.135682 +v 0.030080 -0.025485 -0.135682 +v -0.030080 0.137827 -0.088828 +v -0.030080 0.077413 -0.128143 +v -0.030080 0.001589 -0.088828 +v -0.030080 0.034929 -0.128143 +v 0.030080 -0.002767 -0.259293 +v 0.030080 -0.002767 -0.193379 +v -0.030080 -0.002767 -0.193379 +v 0.030080 0.034929 -0.324529 +v 0.030080 0.115110 -0.259293 +v -0.030080 0.115110 -0.259293 +v -0.030080 0.115110 -0.193379 +v 0.030080 0.008274 -0.305422 +v -0.030080 -0.002767 -0.259293 +v -0.030080 0.008274 -0.305422 +v 0.030080 0.104069 -0.305422 +v -0.030080 0.104069 -0.305422 +v 0.030080 0.077413 -0.324529 +v 0.030080 0.104069 -0.147250 +v -0.030080 0.104069 -0.147250 +v 0.030080 0.115110 -0.193379 +v 0.030080 0.008274 -0.147250 +v -0.030080 0.008274 -0.147250 +v 0.030080 -0.006341 -0.121959 +v 0.030080 -0.017555 -0.102551 +v -0.030080 -0.006341 -0.121959 +v -0.030080 -0.017555 -0.102551 +v -0.024624 0.275376 0.024624 +v -0.024624 0.294019 0.009987 +v 0.024624 0.294019 0.009987 +v 0.024624 0.324625 0.009850 +v 0.015000 0.324625 0.009850 +v 0.015000 0.324625 -0.006291 +v -0.024624 0.324625 -0.006291 +v -0.015000 0.324625 -0.006291 +v -0.015000 0.324625 0.009850 +v 0.024624 0.275376 -0.006291 +v 0.015000 0.301667 -0.006291 +v -0.024624 0.275376 -0.006291 +v 0.024624 0.275376 0.009850 +v -0.024624 0.275376 0.009850 +v -0.015000 0.301667 0.009952 +v 0.015000 0.301667 0.009952 +v -0.015000 0.301667 -0.006291 +v -0.054976 -0.243777 0.018558 +v -0.048309 -0.243777 0.018558 +v -0.040425 -0.244821 -0.040275 +v -0.054976 -0.244371 -0.014920 +v -0.048309 -0.170125 0.008377 +v 0.048309 -0.243777 0.018558 +v 0.048309 -0.211199 0.142519 +v -0.048309 -0.137546 0.132337 +v -0.048309 -0.211199 0.142519 +v 0.048309 -0.137546 0.132337 +v 0.054976 -0.244371 -0.014920 +v 0.039030 0.270865 -0.049612 +v -0.056483 0.137656 -0.052596 +v -0.040425 0.137547 -0.132337 +v -0.048309 0.097435 0.017007 +v -0.054976 0.115945 0.065739 +v 0.024624 0.275376 0.024624 +v 0.024624 0.324625 -0.006291 +v -0.024624 0.324625 0.009850 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 vn -0.0000 -0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn -0.0425 -0.9991 -0.0000 -vn -0.2440 0.0701 -0.9672 -vn -0.4337 0.0552 -0.8994 -vn -0.2494 -0.0654 0.9662 -vn -0.4357 -0.0512 0.8986 -vn -0.2494 -0.0654 -0.9662 -vn -0.4357 -0.0512 -0.8986 -vn -0.4207 -0.1103 -0.9005 -vn -0.2440 0.0701 0.9672 -vn -0.4337 0.0552 0.8994 -vn -0.4159 0.1195 0.9015 -vn -0.9611 0.2760 0.0000 -vn -0.4159 0.1195 -0.9015 -vn -0.4207 -0.1103 0.9005 -s 1 -f 49/112/15 50/113/16 51/114/15 -f 52/115/16 53/116/17 50/113/16 -f 54/117/18 55/118/19 56/119/20 -f 57/120/21 58/121/21 59/122/21 -f 60/123/22 61/124/23 62/125/24 -f 58/126/25 56/127/25 59/128/25 -f 63/129/26 64/130/26 65/131/26 -f 65/132/27 51/133/28 54/134/18 -f 57/135/29 52/136/30 60/137/22 -f 66/138/31 50/139/32 53/140/33 -f 55/141/19 51/133/28 50/139/32 -f 67/142/34 49/143/35 63/144/36 -f 60/137/22 49/143/35 61/145/23 -f 63/146/37 51/114/15 64/147/37 -f 49/112/15 52/115/16 50/113/16 -f 52/115/16 68/148/17 53/116/17 -f 55/118/19 66/149/31 59/150/20 -f 59/150/20 56/119/20 55/118/19 -f 56/119/20 65/151/27 54/117/18 -f 59/122/21 66/152/21 57/120/21 -f 66/152/21 53/153/21 57/120/21 -f 53/153/21 68/154/21 57/120/21 -f 62/125/24 58/155/24 60/123/22 -f 58/155/24 57/156/29 60/123/22 -f 61/124/23 67/157/34 62/125/24 -f 58/126/25 62/158/25 56/127/25 -f 65/131/26 56/159/26 62/160/26 -f 62/160/26 67/161/26 65/131/26 -f 67/161/26 63/129/26 65/131/26 -f 65/132/27 64/162/38 51/133/28 -f 57/135/29 68/163/39 52/136/30 -f 66/138/31 55/141/19 50/139/32 -f 55/141/19 54/134/18 51/133/28 -f 67/142/34 61/145/23 49/143/35 -f 60/137/22 52/136/30 49/143/35 -f 63/146/37 49/112/15 51/114/15 -o Cube.007_Cube.013 -v -2.844798 -0.068282 0.199844 -v -3.796744 -0.068282 -0.199844 -v -2.844798 -0.068282 -0.199844 -v -2.844798 -0.098655 0.199844 -v -3.796744 -0.098655 -0.199844 -v -2.844798 -0.098655 -0.199844 -v -3.796744 -0.068282 0.199844 -v -3.796744 -0.098655 0.199844 -v -3.801281 0.438718 0.161282 -v -3.801281 0.761282 -0.161282 -v -3.801281 0.438718 -0.161282 -v -3.801281 0.761282 0.161282 -v -3.478718 0.761282 -0.161282 -v -3.478718 0.761282 0.161282 -v -3.478718 0.438718 -0.161282 -v -3.478718 0.438718 0.161282 -v -3.802363 0.027636 0.121162 -v -3.802363 0.312364 -0.121162 -v -3.802363 0.027636 -0.121162 -v -3.802363 0.312364 0.121162 -v -3.517636 0.312364 -0.121162 -v -3.517636 0.312364 0.121162 -v -3.517636 0.027636 -0.121162 -v -3.517636 0.027636 0.121162 -v -3.795573 0.499668 0.015063 -v -3.804427 0.499668 -0.015063 -v -3.795573 0.499668 -0.015063 -v -3.795573 0.524643 -0.075357 -v -3.795573 0.584937 -0.100331 -v -3.795573 0.675357 -0.075357 -v -3.804427 0.615063 0.100332 -v -3.795573 0.584937 0.100332 -v -3.795573 0.615063 0.100332 -v -3.804427 0.675357 -0.075357 -v -3.804427 0.615063 -0.100331 -v -3.804427 0.524643 -0.075357 -v -3.804427 0.700332 0.015063 -v -3.795573 0.700332 -0.015063 -v -3.804427 0.700332 -0.015063 -v -3.795573 0.615063 -0.100331 -v -3.804427 0.675357 0.075357 -v -3.795573 0.675357 0.075357 -v -3.804427 0.584937 -0.100331 -v -3.804427 0.584937 0.100332 -v -3.795573 0.524643 0.075357 -v -3.804427 0.524643 0.075357 -v -3.804427 0.499668 0.015063 -v -3.795573 0.700332 0.015063 -v -3.796744 0.814074 0.286160 -v -2.444716 0.814074 -0.286160 -v -3.796744 0.814074 -0.286160 -v -2.214679 0.340615 0.245095 -v -2.214679 0.306616 0.269747 -v -2.214679 -0.098655 0.286160 -v -3.796744 0.408802 -0.269747 -v -3.796744 0.371850 -0.242954 -v -2.610195 -0.041399 0.286160 -v -2.610195 -0.155912 0.286160 -v -3.796744 0.408802 -0.286160 -v -2.444716 0.814074 0.286160 -v -3.796744 0.408802 0.286160 -v -2.247809 0.408802 0.286160 -v -2.229855 0.371850 0.242954 -v -2.216114 0.343568 0.242954 -v -2.216114 0.343568 -0.242954 -v -3.796744 0.408802 0.269747 -v -3.796744 0.371850 0.242954 -v -2.247809 0.408802 0.269747 -v -3.796744 0.343568 0.242954 -v -2.247809 0.408802 -0.269747 -v -2.247809 0.408802 -0.286160 -v -3.796744 0.306616 0.269747 -v -2.214679 0.306616 0.286160 -v -3.796744 0.306616 -0.269747 -v -2.214679 0.306616 -0.269747 -v -2.229855 0.371850 -0.242954 -v -3.796744 0.343568 -0.242954 -v -2.214679 0.306616 -0.286160 -v -2.214679 -0.098655 -0.286160 -v -2.610195 -0.041399 -0.286160 -v -2.214679 -0.198656 0.249967 -v -2.610195 -0.198656 -0.249967 -v -2.214679 -0.198656 -0.249967 -v -3.796744 0.306616 -0.286160 -v -2.610195 -0.098655 -0.250258 -v -2.610195 -0.155912 -0.286160 -v -2.610195 -0.098655 0.250258 -v -3.796744 -0.098655 -0.250258 -v -3.796744 -0.041399 -0.286160 -v -3.796744 -0.041399 0.286160 -v -3.796744 -0.098655 0.250258 -v -2.214679 -0.140935 0.286160 -v -2.610195 -0.198656 0.249967 -v -2.214679 0.340615 -0.245095 -v -3.796744 0.306616 0.286160 -v -2.214679 -0.140935 -0.286160 -vt 0.497093 0.546556 -vt 0.489787 0.555589 -vt 0.489787 0.546505 -vt 0.558621 0.611549 -vt 0.559091 0.621426 -vt 0.558621 0.621426 -vt 0.489470 0.555592 -vt 0.489470 0.546508 -vt 0.469847 0.629818 -vt 0.469377 0.638902 -vt 0.469377 0.629818 -vt 0.840276 0.397745 -vt 0.812280 0.369750 -vt 0.840276 0.369750 -vt 0.672301 0.547852 -vt 0.644305 0.519856 -vt 0.672301 0.519856 -vt 0.758120 0.546311 -vt 0.730125 0.518315 -vt 0.758120 0.518315 -vt 0.728292 0.544994 -vt 0.700297 0.516998 -vt 0.728292 0.516998 -vt 0.786116 0.512334 -vt 0.758120 0.540329 -vt 0.758120 0.512334 -vt 0.814112 0.512322 -vt 0.786116 0.540318 -vt 0.786116 0.512322 -vt 0.903571 0.559623 -vt 0.865925 0.521977 -vt 0.903571 0.521977 -vt 0.903571 0.521927 -vt 0.865925 0.484281 -vt 0.903571 0.484281 -vt 0.941217 0.559573 -vt 0.903571 0.521927 -vt 0.941217 0.521927 -vt 0.901107 0.443199 -vt 0.863461 0.405553 -vt 0.901107 0.405553 -vt 0.901107 0.367907 -vt 0.863461 0.367907 -vt 0.712878 0.532108 -vt 0.675232 0.569754 -vt 0.675232 0.532108 -vt 0.894503 0.935849 -vt 0.896659 0.921485 -vt 0.896659 0.935849 -vt 0.962007 0.841270 -vt 0.962007 0.836599 -vt 0.966136 0.831303 -vt 0.911963 0.936525 -vt 0.909807 0.922161 -vt 0.911963 0.922161 -vt 0.962007 0.827174 -vt 0.962007 0.822503 -vt 0.966136 0.817207 -vt 0.924171 0.933456 -vt 0.926328 0.919092 -vt 0.926328 0.933456 -vt 0.867931 0.923275 -vt 0.872247 0.937640 -vt 0.867931 0.937640 -vt 0.930644 0.933456 -vt 0.930644 0.919092 -vt 0.916280 0.936525 -vt 0.919855 0.919092 -vt 0.919855 0.933456 -vt 0.865775 0.937640 -vt 0.861459 0.923275 -vt 0.865775 0.923275 -vt 0.900975 0.935849 -vt 0.900975 0.921485 -vt 0.909807 0.936525 -vt 0.905491 0.922161 -vt 0.890187 0.921485 -vt 0.890187 0.935849 -vt 0.497093 0.555641 -vt 0.559091 0.611549 -vt 0.469847 0.638902 -vt 0.812280 0.397745 -vt 0.644305 0.547852 -vt 0.730125 0.546311 -vt 0.700297 0.544994 -vt 0.786116 0.540329 -vt 0.814112 0.540318 -vt 0.865925 0.559623 -vt 0.865925 0.521927 -vt 0.903571 0.559573 -vt 0.863461 0.443199 -vt 0.712878 0.569754 -vt 0.894503 0.921485 -vt 0.962833 0.834606 -vt 0.970808 0.831303 -vt 0.965311 0.844574 -vt 0.972800 0.832128 -vt 0.976103 0.835432 -vt 0.971975 0.845399 -vt 0.976103 0.840103 -vt 0.975278 0.842096 -vt 0.967303 0.845399 -vt 0.962833 0.820510 -vt 0.970808 0.817207 -vt 0.965311 0.830478 -vt 0.972800 0.818032 -vt 0.976103 0.821336 -vt 0.971975 0.831303 -vt 0.976103 0.826007 -vt 0.975278 0.828000 -vt 0.967303 0.831303 -vt 0.924171 0.919092 -vt 0.872247 0.923275 -vt 0.916280 0.922161 -vt 0.861459 0.937640 -vt 0.905491 0.936525 -vt 0.572622 0.567859 -vt 0.583320 0.554957 -vt 0.583320 0.567859 -vt 0.488526 0.563967 -vt 0.487917 0.563443 -vt 0.487511 0.557192 -vt 0.479648 0.573331 -vt 0.480220 0.573993 -vt 0.473368 0.572925 -vt 0.498951 0.544326 -vt 0.497757 0.544336 -vt 0.498354 0.540557 -vt 0.480222 0.617553 -vt 0.486502 0.630456 -vt 0.480222 0.630456 -vt 0.530689 0.627844 -vt 0.526463 0.640782 -vt 0.526463 0.626001 -vt 0.488579 0.564463 -vt 0.488579 0.564014 -vt 0.500587 0.564014 -vt 0.526163 0.640780 -vt 0.525288 0.640780 -vt 0.526163 0.625999 -vt 0.591673 0.554640 -vt 0.590868 0.554640 -vt 0.590798 0.554627 -vt 0.524993 0.640782 -vt 0.525288 0.625827 -vt 0.592139 0.596801 -vt 0.591839 0.611580 -vt 0.591839 0.596799 -vt 0.591673 0.539543 -vt 0.591980 0.554640 -vt 0.590256 0.596799 -vt 0.590828 0.611883 -vt 0.590256 0.611897 -vt 0.591267 0.596799 -vt 0.591839 0.611580 -vt 0.591267 0.611752 -vt 0.590828 0.596799 -vt 0.584740 0.640183 -vt 0.578460 0.640183 -vt 0.579347 0.636409 -vt 0.496650 0.540561 -vt 0.487511 0.544271 -vt 0.487511 0.540497 -vt 0.502261 0.608318 -vt 0.502568 0.593221 -vt 0.502568 0.608318 -vt 0.496363 0.628942 -vt 0.495475 0.628055 -vt 0.497250 0.628055 -vt 0.495475 0.642198 -vt 0.496363 0.641311 -vt 0.497250 0.642198 -vt 0.578460 0.625086 -vt 0.579347 0.625086 -vt 0.497698 0.544327 -vt 0.498951 0.555649 -vt 0.497698 0.555650 -vt 0.488549 0.544262 -vt 0.487511 0.556540 -vt 0.488406 0.555650 -vt 0.496650 0.544336 -vt 0.577573 0.636409 -vt 0.576911 0.640183 -vt 0.576911 0.636409 -vt 0.497912 0.628949 -vt 0.497912 0.641304 -vt 0.572622 0.554957 -vt 0.487511 0.563443 -vt 0.501655 0.557192 -vt 0.500640 0.563967 -vt 0.501655 0.563443 -vt 0.501249 0.563443 -vt 0.487511 0.584936 -vt 0.487511 0.586181 -vt 0.487041 0.584936 -vt 0.486624 0.587069 -vt 0.481231 0.587069 -vt 0.481231 0.586663 -vt 0.480659 0.586001 -vt 0.487511 0.573812 -vt 0.487511 0.575058 -vt 0.487041 0.575058 -vt 0.486624 0.572925 -vt 0.481231 0.573331 -vt 0.481231 0.572925 -vt 0.480659 0.573993 -vt 0.480220 0.586001 -vt 0.479648 0.586663 -vt 0.479648 0.587069 -vt 0.473368 0.587069 -vt 0.479648 0.572925 -vt 0.497913 0.540561 -vt 0.502580 0.540521 -vt 0.502580 0.555618 -vt 0.486502 0.615674 -vt 0.530689 0.640746 -vt 0.501655 0.565049 -vt 0.501655 0.571481 -vt 0.501249 0.565049 -vt 0.487511 0.571481 -vt 0.500587 0.564463 -vt 0.487511 0.565049 -vt 0.487917 0.565049 -vt 0.590798 0.539543 -vt 0.524993 0.625699 -vt 0.592139 0.611582 -vt 0.591980 0.539543 -vt 0.590783 0.611897 -vt 0.591839 0.596799 -vt 0.584740 0.625086 -vt 0.577805 0.640183 -vt 0.502261 0.593221 -vt 0.578460 0.636409 -vt 0.488549 0.555585 -vt 0.496776 0.546559 -vt 0.496776 0.555643 -vt 0.500760 0.555650 -vt 0.501655 0.556540 -vn 0.0000 -1.0000 -0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.3827 -0.9239 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 -0.9239 0.3827 -vn 0.9903 0.1390 0.0000 -vn 0.8995 0.4370 0.0000 -vn 0.8994 0.4371 0.0000 -vn 0.0000 -0.5870 0.8096 -vn 0.0000 0.5870 0.8096 -vn 0.0001 0.5869 0.8096 -vn 0.0000 0.5870 -0.8096 -vn 0.0000 -0.5870 -0.8096 -vn 0.0000 -0.5312 -0.8472 -vn 0.0000 -0.5312 0.8472 -vn 0.0183 -0.5419 0.8403 -vn 0.0022 -0.6345 0.7729 -vn 0.0000 -0.6462 0.7632 -vn 0.0022 -0.6345 -0.7729 -vn 0.0183 -0.5419 -0.8403 -vn 0.0000 -0.6462 -0.7632 -vn 0.0001 0.5869 -0.8096 -vn 0.0201 -0.5311 0.8471 -vn 0.0201 -0.5311 -0.8471 -s off -f 69/164/40 70/165/40 71/166/40 -f 71/167/41 72/168/41 69/169/41 -f 71/166/42 73/170/42 74/171/42 -f 75/172/43 72/173/43 76/174/43 -f 77/175/41 78/176/41 79/177/41 -f 80/178/44 81/179/44 78/180/44 -f 82/181/45 83/182/45 81/183/45 -f 84/184/40 79/185/40 83/186/40 -f 81/187/43 79/188/43 78/189/43 -f 80/190/42 84/191/42 82/192/42 -f 85/193/41 86/194/41 87/195/41 -f 88/196/44 89/197/44 86/198/44 -f 90/199/45 91/200/45 89/201/45 -f 92/202/40 87/203/40 91/204/40 -f 89/205/43 87/203/43 86/206/43 -f 88/207/42 92/208/42 90/209/42 -f 93/210/40 94/211/40 95/212/40 -f 96/213/45 97/214/45 98/215/45 -f 99/216/42 100/217/42 101/218/42 -f 102/219/41 103/220/41 104/221/41 -f 105/222/44 106/223/44 107/224/44 -f 103/225/46 98/226/46 108/227/46 -f 102/228/47 106/223/47 98/229/47 -f 101/218/48 109/230/48 99/216/48 -f 110/231/49 105/222/49 109/232/49 -f 97/233/50 104/234/50 111/235/50 -f 96/236/51 94/211/51 104/237/51 -f 112/238/52 113/239/52 100/217/52 -f 114/240/53 93/210/53 113/241/53 -f 108/227/43 111/235/43 103/225/43 -f 69/164/40 75/242/40 70/165/40 -f 71/167/41 74/243/41 72/168/41 -f 71/166/42 70/165/42 73/170/42 -f 75/172/43 69/244/43 72/173/43 -f 77/175/41 80/245/41 78/176/41 -f 80/178/44 82/246/44 81/179/44 -f 82/181/45 84/247/45 83/182/45 -f 84/184/40 77/248/40 79/185/40 -f 81/187/43 83/249/43 79/188/43 -f 80/190/42 77/250/42 84/191/42 -f 85/193/41 88/251/41 86/194/41 -f 88/196/44 90/252/44 89/197/44 -f 90/199/45 92/253/45 91/200/45 -f 92/202/40 85/254/40 87/203/40 -f 89/205/43 91/204/43 87/203/43 -f 88/207/42 85/255/42 92/208/42 -f 93/210/40 115/256/40 94/211/40 -f 97/214/45 108/257/45 98/215/45 -f 98/215/45 106/258/45 95/259/45 -f 106/258/45 116/260/45 95/259/45 -f 116/260/45 110/261/45 113/262/45 -f 110/261/45 101/263/45 113/262/45 -f 101/263/45 100/264/45 113/262/45 -f 113/262/45 93/265/45 116/260/45 -f 93/265/45 95/259/45 116/260/45 -f 95/259/45 96/213/45 98/215/45 -f 99/216/42 112/238/42 100/217/42 -f 103/220/41 111/266/41 104/221/41 -f 104/221/41 94/267/41 107/268/41 -f 94/267/41 115/269/41 107/268/41 -f 115/269/41 114/270/41 109/271/41 -f 114/270/41 112/272/41 109/271/41 -f 112/272/41 99/273/41 109/271/41 -f 109/271/41 105/274/41 115/269/41 -f 105/274/41 107/268/41 115/269/41 -f 107/268/41 102/219/41 104/221/41 -f 105/222/44 116/275/44 106/223/44 -f 103/225/46 102/276/46 98/226/46 -f 102/228/47 107/224/47 106/223/47 -f 101/218/48 110/277/48 109/230/48 -f 110/231/49 116/275/49 105/222/49 -f 97/233/50 96/278/50 104/234/50 -f 96/236/51 95/212/51 94/211/51 -f 112/238/52 114/279/52 113/239/52 -f 114/240/53 115/256/53 93/210/53 -f 108/227/43 97/233/43 111/235/43 -s 1 -f 117/280/44 118/281/44 119/282/44 -f 120/283/54 121/284/45 122/285/45 -f 123/286/41 124/287/41 119/288/41 -f 125/289/42 126/290/42 122/291/42 -f 118/292/43 127/293/43 119/294/43 -f 128/295/42 129/296/42 130/297/42 -f 131/298/55 132/299/56 133/300/56 -f 134/301/40 130/297/40 129/296/40 -f 135/302/57 136/303/57 134/301/57 -f 121/304/58 120/305/59 132/306/58 -f 137/307/42 131/308/42 135/302/42 -f 138/309/40 127/310/40 139/311/40 -f 140/312/44 141/313/44 121/304/44 -f 142/314/60 133/315/60 143/316/60 -f 124/317/61 138/318/61 144/319/61 -f 145/320/43 144/319/43 133/315/43 -f 146/321/43 147/322/43 148/323/43 -f 149/324/40 150/325/40 151/326/40 -f 142/327/44 146/328/44 152/329/44 -f 153/330/41 148/331/41 154/332/41 -f 125/333/41 155/334/41 126/335/41 -f 148/323/62 156/336/62 157/337/62 -f 155/338/63 158/339/63 159/340/63 -f 153/341/40 155/338/40 74/171/40 -f 122/285/45 160/342/45 149/343/45 -f 149/324/64 126/290/65 161/344/66 -f 154/345/67 151/346/68 150/347/69 -f 150/348/41 161/349/41 153/330/41 -f 117/280/44 128/350/44 118/281/44 -f 121/284/45 141/351/45 122/285/45 -f 122/285/45 147/352/45 162/353/54 -f 147/352/45 146/354/45 143/355/45 -f 143/355/45 162/353/54 147/352/45 -f 162/353/54 120/283/54 122/285/45 -f 76/356/41 159/357/41 75/358/41 -f 159/357/41 158/359/41 75/358/41 -f 158/359/41 163/360/41 140/361/41 -f 158/359/41 140/361/41 75/358/41 -f 140/361/41 137/362/41 75/358/41 -f 156/363/41 73/364/41 70/365/41 -f 70/365/41 75/358/41 137/362/41 -f 157/366/41 156/363/41 70/365/41 -f 142/367/41 152/368/41 157/366/41 -f 145/369/41 142/367/41 70/365/41 -f 142/367/41 157/366/41 70/365/41 -f 70/365/41 137/362/41 145/369/41 -f 137/362/41 135/370/41 145/369/41 -f 134/371/41 129/372/41 117/373/41 -f 145/369/41 135/370/41 124/287/41 -f 135/370/41 134/371/41 117/373/41 -f 124/287/41 135/370/41 117/373/41 -f 117/373/41 119/288/41 124/287/41 -f 119/288/41 127/374/41 123/286/41 -f 126/290/42 160/375/42 122/291/42 -f 122/291/42 141/376/42 125/289/42 -f 141/376/42 163/377/42 125/289/42 -f 163/377/42 158/339/42 125/289/42 -f 118/292/43 139/378/43 127/293/43 -f 128/295/42 117/379/42 129/296/42 -f 139/380/55 118/381/55 138/382/55 -f 118/381/55 128/383/55 144/384/55 -f 138/382/55 118/381/55 144/384/55 -f 128/383/55 130/385/55 136/386/55 -f 128/383/55 136/386/55 131/298/55 -f 144/384/55 128/383/55 131/298/55 -f 120/283/54 162/353/54 133/300/56 -f 133/300/56 144/384/55 131/298/55 -f 132/299/56 120/283/54 133/300/56 -f 134/301/40 136/303/40 130/297/40 -f 135/302/57 131/308/57 136/303/57 -f 137/387/58 140/312/58 132/306/58 -f 140/312/58 121/304/58 132/306/58 -f 137/307/42 132/388/42 131/308/42 -f 138/309/40 123/389/40 127/310/40 -f 140/312/44 163/390/44 141/313/44 -f 145/320/60 133/315/60 142/314/60 -f 133/315/60 162/391/70 143/316/60 -f 124/317/61 123/392/61 138/318/61 -f 145/320/43 124/317/43 144/319/43 -f 157/337/43 152/393/43 148/323/43 -f 152/393/43 146/321/43 148/323/43 -f 147/322/43 164/394/43 154/345/43 -f 147/322/43 154/345/43 148/323/43 -f 149/324/40 161/344/40 150/325/40 -f 142/327/44 143/395/44 146/328/44 -f 148/323/62 153/396/62 156/336/62 -f 155/338/63 125/289/63 158/339/63 -f 74/171/40 73/170/40 156/397/40 -f 155/338/40 159/340/40 72/398/40 -f 159/340/40 76/399/40 72/398/40 -f 74/171/40 156/397/40 153/341/40 -f 155/338/40 72/398/40 74/171/40 -f 149/343/45 151/400/45 147/352/45 -f 151/400/45 164/401/45 147/352/45 -f 147/352/45 122/285/45 149/343/45 -f 149/324/64 160/375/71 126/290/65 -f 154/345/67 164/394/72 151/346/68 -f 126/335/41 155/334/41 161/349/41 -f 155/334/41 153/330/41 161/349/41 -f 153/330/41 154/332/41 150/348/41 -o Cube.003 -v -3.462471 1.477528 0.177528 -v -3.798125 1.477528 -0.177528 -v -3.462471 1.477528 -0.177528 -v -3.462471 1.122472 -0.177528 -v -3.798125 1.122472 0.177528 -v -3.462471 1.122472 0.177528 -v -3.798125 1.233237 -0.177528 -v -3.798125 1.377309 0.177528 -v -3.798125 1.477528 0.177528 -v -3.798125 1.122472 -0.177528 -v -1.089541 1.688519 -0.192709 -v -1.089541 1.738519 0.192709 -v -1.089541 1.688519 0.192709 -v -2.308404 0.730725 0.338886 -v -2.308404 0.960725 0.338886 -v -2.308404 0.830725 -0.235083 -v -1.089541 0.830725 -0.338886 -v -1.089541 1.566796 -0.338886 -v -1.089541 0.730725 0.338886 -v -2.308404 0.730725 -0.338886 -v -1.089541 0.730725 -0.338886 -v -1.089541 0.830725 0.338886 -v -3.798125 0.830725 0.238886 -v -2.308404 0.730725 0.238886 -v -2.308404 0.830725 0.238886 -v -3.136166 1.377309 0.338886 -v -1.089541 1.566796 0.338886 -v -2.308404 0.830725 -0.238886 -v -3.798125 0.730725 -0.238886 -v -3.798125 0.830725 -0.238886 -v -2.308404 0.960725 -0.338886 -v -3.798125 0.962099 -0.338886 -v -3.136166 1.233237 -0.338886 -v -3.798125 0.730725 0.238886 -v -2.308404 0.730725 -0.238886 -v -3.798125 1.566796 -0.338886 -v -3.798125 1.688519 0.192709 -v -3.798125 1.566796 0.338886 -v -3.798125 1.738519 0.192709 -v -1.089541 1.738519 -0.192709 -v -3.798125 1.738519 -0.192709 -v -3.798125 1.688519 -0.192709 -v -3.798125 1.377309 0.300000 -v -3.136166 1.377309 0.300000 -v -3.136166 1.233238 0.300000 -v -3.798125 1.233238 0.300000 -v -3.136166 1.233238 0.338886 -v -3.136166 1.377309 -0.300000 -v -3.798125 1.377309 -0.338886 -v -3.136166 1.377309 -0.338886 -v -3.136166 1.233237 -0.300000 -v -3.798125 1.233237 -0.338886 -v -3.798125 1.233237 -0.300000 -v -3.798125 1.377309 -0.300000 -v -3.802907 1.737093 0.032363 -v -3.802907 1.942907 -0.032363 -v -3.802907 1.737093 -0.032363 -v -3.802907 1.942907 0.032363 -v -3.597093 1.942907 -0.032363 -v -3.597093 1.942907 0.032363 -v -3.377093 1.737093 -0.032363 -v -3.377093 1.737093 0.032363 -v -3.801233 1.738767 -0.032363 -v -3.522639 1.738767 -0.052363 -v -3.522639 1.738767 -0.032363 -v -3.522639 1.738767 0.032363 -v -3.801233 1.738767 0.052363 -v -3.801233 1.738767 0.032363 -v -3.801233 1.861234 -0.032363 -v -3.801233 1.861234 0.032363 -v -3.653547 1.861234 -0.032363 -v -3.653547 1.861234 0.032363 -v -3.653547 1.861234 0.052363 -v -3.522639 1.738767 0.052363 -v -3.801233 1.861234 0.052363 -v -3.653547 1.861234 -0.052363 -v -3.801233 1.738767 -0.052363 -v -3.801233 1.861234 -0.052363 -v -3.798125 1.233238 0.338886 -v -3.798125 0.962099 0.338886 -v -3.798125 1.377309 0.338886 -vt 0.092911 0.684435 -vt 0.089855 0.671519 -vt 0.092911 0.671519 -vt 0.354586 0.672632 -vt 0.344381 0.685548 -vt 0.344381 0.672632 -vt 0.206551 0.673047 -vt 0.209606 0.685963 -vt 0.206551 0.685963 -vt 0.128661 0.677165 -vt 0.131717 0.677165 -vt 0.131717 0.684187 -vt 0.128661 0.687371 -vt 0.125606 0.687371 -vt 0.125606 0.680046 -vt 0.089855 0.684435 -vt 0.354586 0.685548 -vt 0.209606 0.673047 -vt 0.131717 0.687371 -vt 0.128661 0.687371 -vt 0.125606 0.677165 -vt 0.128661 0.677165 -vt 0.063094 0.517248 -vt 0.077115 0.515811 -vt 0.077115 0.517248 -vt 0.157843 0.697224 -vt 0.151233 0.697224 -vt 0.154969 0.676344 -vt 0.057777 0.541903 -vt 0.057777 0.520746 -vt 0.285202 0.565673 -vt 0.274107 0.541018 -vt 0.285202 0.541018 -vt 0.082432 0.541903 -vt 0.057777 0.544778 -vt 0.136231 0.644951 -vt 0.133357 0.631391 -vt 0.136231 0.631391 -vt 0.151942 0.638926 -vt 0.139968 0.631391 -vt 0.157388 0.620296 -vt 0.109962 0.632696 -vt 0.107088 0.619135 -vt 0.109962 0.619135 -vt 0.113699 0.632696 -vt 0.113738 0.619135 -vt 0.121532 0.625161 -vt 0.076295 0.688899 -vt 0.089855 0.671519 -vt 0.089855 0.688899 -vt 0.103450 0.518685 -vt 0.086070 0.515811 -vt 0.103450 0.515811 -vt 0.231790 0.688984 -vt 0.226472 0.664328 -vt 0.231790 0.664328 -vt 0.176531 0.639683 -vt 0.181848 0.664339 -vt 0.176531 0.664339 -vt 0.133357 0.542324 -vt 0.133260 0.547538 -vt 0.133260 0.542226 -vt 0.101218 0.527071 -vt 0.088302 0.527071 -vt 0.086070 0.518685 -vt 0.088302 0.537276 -vt 0.101218 0.537276 -vt 0.101770 0.543341 -vt 0.271087 0.590329 -vt 0.285107 0.565673 -vt 0.285107 0.590329 -vt 0.087750 0.544778 -vt 0.087750 0.543341 -vt 0.131743 0.542226 -vt 0.133181 0.566881 -vt 0.131743 0.566881 -vt 0.131743 0.566881 -vt 0.133181 0.591537 -vt 0.131743 0.591537 -vt 0.132534 0.634040 -vt 0.131119 0.640066 -vt 0.131119 0.634040 -vt 0.258439 0.613448 -vt 0.257024 0.609307 -vt 0.258439 0.609307 -vt 0.278036 0.607848 -vt 0.279450 0.613874 -vt 0.278036 0.613874 -vt 0.282177 0.607848 -vt 0.278036 0.601822 -vt 0.282177 0.601822 -vt 0.092911 0.677545 -vt 0.094325 0.671519 -vt 0.094325 0.677545 -vt 0.255609 0.613448 -vt 0.257024 0.609307 -vt 0.257024 0.613448 -vt 0.094325 0.683571 -vt 0.092911 0.677545 -vt 0.094325 0.677545 -vt 0.281887 0.485497 -vt 0.277746 0.479471 -vt 0.281887 0.479471 -vt 0.786280 0.515326 -vt 0.770512 0.499558 -vt 0.786280 0.499558 -vt 0.722175 0.451879 -vt 0.737943 0.436111 -vt 0.737943 0.451879 -vt 0.830449 0.815071 -vt 0.846218 0.798216 -vt 0.846218 0.815071 -vt 0.690638 0.451879 -vt 0.706407 0.419256 -vt 0.706407 0.451879 -vt 0.718250 0.533728 -vt 0.723122 0.555072 -vt 0.718250 0.555072 -vt 0.824551 0.567530 -vt 0.819678 0.546186 -vt 0.824551 0.546186 -vt 0.712664 0.451751 -vt 0.722175 0.451879 -vt 0.706407 0.451879 -vt 0.684381 0.451751 -vt 0.674870 0.451879 -vt 0.674998 0.451751 -vt 0.712664 0.440436 -vt 0.706407 0.436111 -vt 0.684381 0.440436 -vt 0.690638 0.451879 -vt 0.722175 0.419256 -vt 0.722047 0.430407 -vt 0.674870 0.419256 -vt 0.690638 0.436111 -vt 0.722047 0.451751 -vt 0.674998 0.430407 -vt 0.764126 0.541124 -vt 0.754743 0.552438 -vt 0.754743 0.531094 -vt 0.825130 0.493798 -vt 0.820258 0.483768 -vt 0.825130 0.483768 -vt 0.825130 0.505113 -vt 0.820258 0.493798 -vt 0.764817 0.561821 -vt 0.759944 0.552438 -vt 0.764817 0.552438 -vt 0.773509 0.542409 -vt 0.764126 0.531094 -vt 0.773509 0.531094 -vt 0.814806 0.546186 -vt 0.819678 0.556215 -vt 0.814806 0.556215 -vt 0.819678 0.567530 -vt 0.814806 0.567530 -vt 0.812468 0.419256 -vt 0.817341 0.428638 -vt 0.812468 0.428638 -vt 0.063094 0.515811 -vt 0.151233 0.672568 -vt 0.157843 0.672568 -vt 0.082432 0.520746 -vt 0.274107 0.565673 -vt 0.082432 0.544778 -vt 0.154969 0.676206 -vt 0.157843 0.676206 -vt 0.133357 0.644951 -vt 0.147801 0.638926 -vt 0.147801 0.644951 -vt 0.140007 0.644951 -vt 0.133357 0.631391 -vt 0.136231 0.620296 -vt 0.133357 0.620296 -vt 0.157388 0.644951 -vt 0.151942 0.644951 -vt 0.107088 0.632696 -vt 0.125673 0.619135 -vt 0.131119 0.619135 -vt 0.125673 0.625161 -vt 0.131119 0.643791 -vt 0.109962 0.643791 -vt 0.107088 0.643791 -vt 0.107088 0.632696 -vt 0.121532 0.619135 -vt 0.076295 0.671519 -vt 0.226472 0.688984 -vt 0.181848 0.639683 -vt 0.083847 0.530254 -vt 0.082432 0.530254 -vt 0.082432 0.522461 -vt 0.107088 0.522461 -vt 0.107088 0.530254 -vt 0.105673 0.530254 -vt 0.105673 0.534395 -vt 0.101218 0.534395 -vt 0.088302 0.530254 -vt 0.107088 0.534395 -vt 0.107088 0.539842 -vt 0.082432 0.539842 -vt 0.082432 0.534395 -vt 0.083847 0.534395 -vt 0.271087 0.565673 -vt 0.101770 0.544778 -vt 0.133181 0.542226 -vt 0.133181 0.566881 -vt 0.132534 0.640066 -vt 0.257024 0.613448 -vt 0.279450 0.607848 -vt 0.278036 0.607848 -vt 0.092911 0.671519 -vt 0.255609 0.609307 -vt 0.092911 0.683571 -vt 0.277746 0.485497 -vt 0.770512 0.515326 -vt 0.722175 0.436111 -vt 0.830449 0.798216 -vt 0.690638 0.419256 -vt 0.723122 0.533728 -vt 0.819678 0.567530 -vt 0.764126 0.552438 -vt 0.820258 0.505113 -vt 0.759944 0.561821 -vt 0.764126 0.552438 -vt 0.819678 0.546186 -vt 0.817341 0.419256 -vn 0.0000 -1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.0000 0.7685 -0.6399 -vn 0.0000 0.7685 0.6399 -vn -0.0000 -0.6093 0.7929 -vn -0.0005 -0.6060 0.7955 -vn 0.0000 -0.6097 0.7926 -vn -0.0000 -0.6094 -0.7928 -vn -0.0005 -0.6060 -0.7955 -vn -0.0006 -0.6057 -0.7957 -vn 0.6832 0.7303 0.0000 -vn -0.0000 -0.6094 0.7928 -vn -0.0006 -0.6057 0.7957 -vn -0.0005 -0.6059 0.7955 -vn 0.0000 -0.6097 -0.7926 -s off -f 165/402/73 166/403/73 167/404/73 -f 168/405/74 165/406/74 167/407/74 -f 168/408/75 169/409/75 170/410/75 -f 167/411/76 166/412/76 171/413/76 -f 170/414/77 169/415/77 172/416/77 -f 165/402/73 173/417/73 166/403/73 -f 168/405/74 170/418/74 165/406/74 -f 168/408/75 174/419/75 169/409/75 -f 171/413/76 174/420/76 168/421/76 -f 168/421/76 167/411/76 171/413/76 -f 172/416/77 173/422/77 165/423/77 -f 165/423/77 170/414/77 172/416/77 -s 1 -f 175/424/78 176/425/78 177/426/78 -f 178/427/74 179/428/74 180/429/74 -f 181/430/78 182/431/78 175/424/78 -f 183/432/73 184/433/73 185/434/73 -f 186/435/78 185/436/78 181/430/78 -f 187/437/76 188/438/76 189/439/76 -f 190/440/76 179/441/76 191/442/76 -f 192/443/77 193/444/77 194/445/77 -f 195/446/77 196/447/77 197/448/77 -f 198/449/73 199/450/73 188/451/73 -f 187/452/74 193/453/74 198/454/74 -f 200/455/79 175/456/79 182/457/79 -f 191/458/80 201/459/80 202/460/80 -f 192/461/78 195/462/78 180/463/78 -f 179/441/81 187/437/82 189/439/83 -f 195/446/84 194/445/85 196/447/86 -f 169/464/74 174/465/74 194/466/74 -f 166/467/74 173/468/74 201/469/74 -f 203/470/75 204/471/75 205/472/75 -f 201/469/74 205/473/74 206/474/74 -f 177/475/76 203/476/76 201/477/76 -f 206/478/77 204/479/77 175/480/77 -f 190/481/73 207/482/73 208/483/73 -f 209/484/74 190/485/74 208/486/74 -f 210/487/75 211/488/75 209/489/75 -f 209/490/76 207/491/76 210/492/76 -f 212/493/73 213/494/73 214/495/73 -f 215/496/74 214/497/74 197/498/74 -f 216/499/75 215/500/75 197/501/75 -f 212/502/77 217/503/77 218/504/77 -f 219/505/74 220/506/74 221/507/74 -f 222/508/75 223/509/75 220/510/75 -f 224/511/87 225/512/87 223/513/87 -f 226/514/73 221/515/73 225/516/73 -f 227/517/73 228/518/73 229/519/73 -f 230/520/73 231/521/73 232/522/73 -f 233/523/77 221/524/77 220/525/77 -f 234/526/76 219/527/76 232/528/76 -f 235/529/77 220/525/77 223/530/77 -f 236/531/76 222/532/76 234/526/76 -f 235/529/77 225/533/77 229/534/77 -f 236/531/76 226/535/76 224/536/76 -f 229/534/77 221/524/77 227/537/77 -f 230/538/76 219/527/76 226/535/76 -f 237/539/76 231/540/76 238/541/76 -f 236/542/87 238/543/87 230/544/87 -f 234/545/75 237/546/75 236/542/75 -f 232/547/74 239/548/74 234/549/74 -f 240/550/77 241/551/77 242/552/77 -f 229/553/87 240/554/87 235/555/87 -f 235/555/75 242/556/75 233/557/75 -f 233/558/74 241/559/74 227/560/74 -f 175/424/78 204/561/78 176/425/78 -f 180/429/74 195/562/74 184/563/74 -f 184/563/74 178/427/74 180/429/74 -f 175/424/78 177/426/78 181/430/78 -f 177/426/78 191/564/78 186/435/78 -f 181/430/78 177/426/78 186/435/78 -f 183/432/73 178/565/73 184/433/73 -f 186/435/78 183/566/78 185/436/78 -f 195/562/74 184/563/74 192/567/74 -f 184/563/74 199/568/74 192/567/74 -f 187/437/76 198/569/76 188/438/76 -f 211/570/76 243/571/76 244/572/76 -f 179/441/76 178/573/76 186/574/76 -f 178/573/76 183/575/76 186/574/76 -f 211/570/76 244/572/76 179/441/76 -f 202/576/76 245/577/76 190/440/76 -f 190/440/76 211/570/76 179/441/76 -f 186/574/76 191/442/76 179/441/76 -f 191/442/76 202/576/76 190/440/76 -f 192/443/77 199/578/77 193/444/77 -f 213/579/77 200/580/77 214/581/77 -f 200/580/77 182/582/77 214/581/77 -f 181/583/77 185/584/77 184/585/77 -f 196/447/77 216/586/77 197/448/77 -f 197/448/77 214/581/77 195/446/77 -f 214/581/77 182/582/77 195/446/77 -f 182/582/77 181/583/77 195/446/77 -f 181/583/77 184/585/77 195/446/77 -f 198/449/73 193/587/73 199/450/73 -f 187/452/74 194/466/74 193/453/74 -f 200/455/79 206/588/79 175/456/79 -f 191/458/80 177/589/80 201/459/80 -f 179/441/88 244/572/89 187/437/90 -f 195/446/84 192/443/91 194/445/85 -f 217/590/74 216/591/74 196/592/74 -f 196/592/74 194/466/74 174/465/74 -f 194/466/74 187/452/74 169/464/74 -f 187/452/74 244/593/74 169/464/74 -f 244/593/74 243/594/74 210/595/74 -f 210/595/74 207/596/74 172/597/74 -f 244/593/74 210/595/74 169/464/74 -f 171/598/74 217/590/74 174/465/74 -f 217/590/74 196/592/74 174/465/74 -f 210/595/74 172/597/74 169/464/74 -f 207/596/74 245/599/74 202/600/74 -f 202/600/74 201/469/74 173/468/74 -f 201/469/74 206/474/74 166/467/74 -f 206/474/74 200/601/74 166/467/74 -f 200/601/74 213/602/74 218/603/74 -f 218/603/74 217/590/74 171/598/74 -f 200/601/74 218/603/74 166/467/74 -f 172/597/74 207/596/74 173/468/74 -f 207/596/74 202/600/74 173/468/74 -f 218/603/74 171/598/74 166/467/74 -f 203/470/75 176/604/75 204/471/75 -f 201/469/74 203/605/74 205/473/74 -f 177/475/76 176/606/76 203/476/76 -f 206/478/77 205/607/77 204/479/77 -f 190/481/73 245/608/73 207/482/73 -f 209/484/74 211/609/74 190/485/74 -f 210/487/75 243/610/75 211/488/75 -f 209/490/76 208/611/76 207/491/76 -f 212/493/73 218/612/73 213/494/73 -f 215/496/74 212/613/74 214/497/74 -f 216/499/75 217/614/75 215/500/75 -f 212/502/77 215/615/77 217/503/77 -f 219/505/74 222/616/74 220/506/74 -f 222/508/75 224/617/75 223/509/75 -f 224/511/87 226/618/87 225/512/87 -f 226/514/73 219/619/73 221/515/73 -f 227/517/73 241/620/73 228/518/73 -f 230/520/73 238/621/73 231/521/73 -f 233/523/77 227/537/77 221/524/77 -f 234/526/76 222/532/76 219/527/76 -f 235/529/77 233/523/77 220/525/77 -f 236/531/76 224/536/76 222/532/76 -f 235/529/77 223/530/77 225/533/77 -f 236/531/76 230/538/76 226/535/76 -f 229/534/77 225/533/77 221/524/77 -f 230/538/76 232/528/76 219/527/76 -f 237/539/76 239/622/76 231/540/76 -f 236/542/87 237/546/87 238/543/87 -f 234/545/75 239/623/75 237/546/75 -f 232/547/74 231/624/74 239/548/74 -f 240/550/77 228/625/77 241/551/77 -f 229/553/87 228/626/87 240/554/87 -f 235/555/75 240/554/75 242/556/75 -f 233/558/74 242/627/74 241/559/74 -o Cube.002_Cube -v -1.095610 1.625188 -0.234177 -v -1.095610 1.625188 0.234177 -v -0.297669 1.625188 0.234177 -v -0.297669 0.827247 -0.290974 -v -0.297669 0.827247 0.290974 -v -1.095610 0.827247 0.290974 -v -1.095610 0.827247 -0.290974 -v -1.095610 1.547310 -0.290974 -v -0.297669 1.547310 -0.290974 -v -1.095610 1.547310 0.290974 -v -0.297669 1.547310 0.290974 -v -0.301915 1.683539 -0.297414 -v 0.325300 1.638647 -0.297414 -v 0.325300 1.638647 0.297414 -v -0.302927 1.619990 0.338900 -v 0.256739 0.882166 0.338900 -v -0.219849 0.826827 0.338900 -v -0.301915 1.683539 0.297414 -v -0.302927 1.619990 -0.338900 -v 0.400435 0.678089 -0.338900 -v 0.400435 0.678089 0.338900 -v 0.436428 0.664438 0.338900 -v 0.692792 1.263916 -0.315319 -v 0.692792 1.263916 0.315319 -v 0.705099 1.292695 0.297414 -v 0.448735 0.693216 -0.315319 -v 0.407419 0.710885 -0.315319 -v 0.651476 1.281585 -0.315319 -v 0.256739 0.882166 -0.338900 -v 0.436428 0.664438 -0.338900 -v 0.682158 1.239051 -0.338900 -v 0.705099 1.292695 -0.297414 -v -0.219849 0.826827 -0.338900 -v -0.315574 0.825936 -0.338900 -v 0.155569 0.765703 -0.338900 -v 0.155569 0.765703 0.338900 -v 0.682158 1.239051 0.338900 -v 0.448735 0.693216 0.315319 -v 0.651476 1.281585 0.315319 -v 0.407419 0.710885 0.315319 -v 0.319523 1.574904 -0.338900 -v 0.319523 1.574904 0.338901 -v 0.402713 0.663629 -0.329854 -v 0.102029 0.584604 -0.329854 -v 0.102029 0.584604 -0.289854 -v -0.302741 -1.027009 0.242548 -v -0.302741 -1.027009 -0.242548 -v -0.794022 0.825278 -0.242548 -v -0.641417 0.826187 0.329854 -v -0.151202 0.829110 -0.329854 -v -0.151202 0.829110 0.329854 -v -0.127086 -0.456995 -0.329854 -v -0.112735 -0.502614 -0.289854 -v -0.127086 -0.456995 -0.289854 -v -0.194491 -0.056135 0.289854 -v 0.402713 0.663629 0.289854 -v -0.186785 -0.152242 0.289854 -v -0.150610 -1.024312 -0.329854 -v -0.241652 -1.468922 -0.242548 -v 0.102041 0.584607 0.329854 -v 0.402713 0.663629 0.329854 -v 0.050261 -1.020750 0.329854 -v -0.127081 -0.456995 0.329854 -v -0.112735 -0.502614 0.289854 -v -0.180638 0.180149 -0.289854 -v -0.158985 0.267266 -0.289854 -v -0.641417 0.826187 -0.329854 -v -0.178092 0.223543 -0.329854 -v -0.073065 0.463883 -0.329854 -v 0.394433 0.695669 -0.329854 -v 0.402713 0.663629 -0.289854 -v 0.160908 0.775540 0.329854 -v 0.160908 0.775540 -0.329854 -v -0.197054 -0.099825 0.329854 -v -0.197054 -0.099825 0.289854 -v -0.178082 0.223545 0.329854 -v -0.178082 0.223545 0.289854 -v -0.180412 0.183825 0.289854 -v -0.163477 0.256966 0.289854 -v -0.073054 0.463886 0.329854 -v -0.073054 0.463886 0.289854 -v -0.188127 -0.145432 -0.289854 -v -0.197061 -0.099827 -0.289854 -v -0.197061 -0.099827 -0.329854 -v -0.178092 0.223543 -0.289854 -v -0.073065 0.463883 -0.289854 -v -0.150610 -1.024312 0.329854 -v 0.050261 -1.020750 -0.289854 -v 0.050261 -1.020750 -0.329854 -v 0.111350 -1.462662 -0.329854 -v -0.113476 -0.500244 0.289854 -v -0.135150 -0.415807 0.289854 -v -0.127081 -0.456995 0.289854 -v -0.136364 -0.409639 -0.289854 -v -0.194215 -0.051306 -0.289854 -v 0.687958 -0.482851 0.289854 -v 0.685628 -0.522570 0.329854 -v -0.010229 -0.513327 0.289854 -v 0.671023 -0.555991 0.289854 -v -0.008370 -0.524153 -0.289854 -v 0.685638 -0.522568 -0.329854 -v 0.666531 -0.566291 -0.289854 -v 0.688183 -0.479174 -0.289854 -v 0.587958 -0.122851 0.289854 -v 0.585628 -0.162570 0.329854 -v -0.110229 -0.153328 0.289854 -v 0.571023 -0.195991 0.289854 -v -0.108370 -0.164153 -0.289854 -v 0.585638 -0.162568 -0.329854 -v 0.566531 -0.206291 -0.289854 -v 0.588183 -0.119175 -0.289854 -v 0.487958 0.177149 0.289854 -v 0.485628 0.137430 0.329854 -v -0.210229 0.146672 0.289854 -v 0.471023 0.104009 0.289854 -v -0.208370 0.135847 -0.289854 -v 0.485638 0.137432 -0.329854 -v 0.466531 0.093709 -0.289854 -v 0.488183 0.180825 -0.289854 -v -2.428700 -0.152910 0.180480 -v -2.428700 -0.152910 -0.180480 -v -2.428700 0.826962 -0.180480 -v -2.428700 0.826962 0.180480 -v -0.532968 0.826962 -0.180480 -v -1.947172 0.209575 0.180480 -v -1.947172 0.464477 0.180480 -v -0.768854 0.209575 -0.180480 -v -0.532968 0.009535 -0.180480 -v -0.768854 0.464477 -0.180480 -v -0.814090 -0.152910 0.180480 -v -0.814090 -0.152910 -0.180480 -v -0.532968 0.826962 0.180480 -v -0.768854 0.464477 0.180480 -v -0.532968 0.009535 0.180480 -v -0.768854 0.209575 0.180480 -v -1.555754 -0.016604 -0.180480 -v -1.160272 -0.016604 -0.180480 -v -1.160272 -0.016604 0.180480 -v -1.947172 0.209575 -0.180480 -v -1.555754 0.690656 -0.180480 -v -1.555754 0.690656 0.180480 -v -1.160272 0.690656 0.180480 -v -1.832528 0.049642 -0.180480 -v -1.555754 -0.016604 0.180480 -v -1.832528 0.049642 0.180480 -v -1.832528 0.624410 -0.180480 -v -1.832528 0.624410 0.180480 -v -1.947172 0.464477 -0.180480 -v -0.883498 0.624410 -0.180480 -v -0.883498 0.624410 0.180480 -v -1.160272 0.690656 -0.180480 -v -0.883497 0.049642 -0.180480 -v -0.883497 0.049642 0.180480 -v -0.731751 -0.038044 -0.180480 -v -0.615307 -0.105331 -0.180480 -v -0.731751 -0.038044 0.180480 -v -0.615307 -0.105331 0.180480 -v 0.147745 1.652255 0.147745 -v 0.059919 1.764108 0.147745 -v 0.059919 1.764108 -0.147745 -v 0.059098 1.947745 -0.147745 -v 0.059098 1.947745 -0.090000 -v -0.037745 1.947745 -0.090000 -v -0.037745 1.947745 0.147745 -v -0.037745 1.947745 0.090000 -v 0.059098 1.947745 0.090000 -v -0.037745 1.652255 -0.147745 -v -0.037745 1.810000 -0.090000 -v -0.037745 1.652255 0.147745 -v 0.059098 1.652255 -0.147745 -v 0.059098 1.652255 0.147745 -v 0.059713 1.810000 0.090000 -v 0.059714 1.810000 -0.090000 -v -0.037745 1.810000 0.090000 -v 0.111350 -1.462662 0.329854 -v 0.111350 -1.462662 0.289854 -v -0.241652 -1.468922 0.242548 -v -0.089520 -1.466224 0.329854 -v 0.050261 -1.020750 0.289854 -v 0.111350 -1.462662 -0.289854 -v 0.855111 -1.267190 -0.289854 -v 0.794022 -0.825277 0.289854 -v 0.855111 -1.267190 0.289854 -v 0.794022 -0.825277 -0.289854 -v -0.089520 -1.466224 -0.329854 -v -0.297669 1.625188 -0.234177 -v -0.315574 0.825936 0.338900 -v -0.794022 0.825278 0.242548 -v 0.102041 0.584607 0.289854 -v 0.394433 0.695669 0.329854 -v 0.147745 1.652255 -0.147745 -v -0.037745 1.947745 -0.147745 -v 0.059098 1.947745 0.147745 +vn -0.0000 -0.0000 -1.0000 +vn -0.8080 0.5892 -0.0000 +vn 0.8080 0.5892 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.9974 0.0714 +vn -0.0000 0.0159 -0.9999 +vn -0.0000 -0.9383 -0.3458 +vn -0.0000 -0.9350 -0.3546 +vn 0.0001 -0.3932 0.9195 +vn -0.0000 -0.3932 0.9195 +vn -0.0001 -0.3932 0.9195 +vn -0.0000 0.7393 0.6734 +vn -0.0000 -0.9971 -0.0760 +vn -0.0000 -1.0000 0.0093 +vn -0.0000 -0.9683 -0.2498 +vn -0.0000 -0.9195 -0.3932 +vn -0.0000 0.9195 0.3932 +vn -0.0000 0.9194 0.3932 +vn 0.8372 0.5456 0.0391 +vn 0.8296 0.5222 0.1976 +vn 0.8199 0.5081 0.2639 +vn -0.8372 0.5456 0.0391 +vn -0.8296 0.5223 0.1976 +vn -0.8370 0.5458 0.0391 +vn -0.7964 0.4439 0.4106 +vn -0.8199 0.5081 0.2639 +vn -0.7981 0.4421 0.4094 +vn 0.7964 0.4439 0.4106 +vn 0.7981 0.4421 0.4094 +vn -0.0000 -0.9672 0.2542 +vn -0.0000 -0.9088 0.4172 +vn -0.0000 -0.1970 -0.9804 +vn -0.0000 -0.2564 -0.9666 +vn -0.0000 1.0000 -0.0060 +vn -0.0000 0.9966 0.0819 +vn -0.0000 0.2466 0.9691 +vn -0.0000 0.3001 0.9539 +vn 0.8640 -0.0963 -0.4941 +vn 0.8658 -0.0685 -0.4957 +vn 0.8635 -0.1025 -0.4938 +vn -0.0000 0.2193 0.9757 +vn -0.0004 0.2997 0.9540 +vn -0.0000 0.2465 0.9691 +vn -0.0000 0.2515 0.9678 +vn -0.0000 0.2502 0.9682 +vn -0.0000 0.9690 0.2472 +vn -0.0000 0.9462 0.3236 +vn -0.0000 0.0674 0.9977 +vn -0.0000 0.1923 0.9813 +vn -0.0000 -0.2331 0.9724 +vn -0.0000 -0.0586 0.9983 +vn -0.0000 -0.4004 0.9163 +vn -0.0000 -0.8233 0.5676 +vn 0.8609 -0.1304 -0.4918 +vn -0.8609 -0.1304 -0.4918 +vn -0.8635 -0.1025 -0.4938 +vn -0.8640 -0.0963 -0.4941 +vn -0.0000 0.1369 0.9906 +vn -0.0015 0.2988 0.9543 +vn -0.7034 0.7102 -0.0310 +vn -0.9984 0.0006 -0.0574 +vn -0.7811 -0.0838 0.6188 +vn -0.5157 -0.7760 0.3632 +vn 0.7461 -0.6645 -0.0415 +vn 0.7333 0.6785 -0.0438 +vn 0.1650 -0.2225 0.9609 +vn -0.1960 -0.2365 0.9516 +vn 0.1649 -0.2225 0.9609 +vn -0.0000 -0.9931 0.1172 +vn -0.0000 0.9931 0.1172 +vn -0.0000 0.9931 -0.1172 +vn -0.0000 -0.9931 -0.1172 +vn -0.0000 0.9725 0.2328 +vn -0.0000 0.5826 0.8128 +vn -0.0000 -0.9725 0.2328 +vn -0.0000 -0.5826 0.8128 +vn -0.0000 -0.5826 -0.8128 +vn -0.0000 -0.9725 -0.2328 +vn -0.0000 0.9725 -0.2328 +vn -0.0000 0.5826 -0.8128 +vn -0.0000 0.6176 0.7865 +vn -0.0000 0.0045 1.0000 +vn -0.0000 -0.9998 0.0177 +vn -0.0000 -0.1369 -0.9906 +vn -0.0000 0.1959 0.9806 +vn -0.8658 -0.0685 -0.4957 +vn 0.8370 0.5458 0.0391 +vn -0.3827 -0.9239 -0.0000 +vn 0.2706 -0.9239 -0.2706 +vn 0.3827 -0.9239 -0.0000 vt 0.711812 0.471594 vt 0.711812 0.446767 vt 0.680964 0.446767 @@ -1647,7 +308,6 @@ vt 0.680964 0.443756 vt 0.680964 0.474605 vt 0.711812 0.474605 vt 0.865063 0.560674 -vt 0.865063 0.529825 vt 0.837225 0.529825 vt 0.196676 0.580182 vt 0.198638 0.568986 @@ -1695,9 +355,7 @@ vt 0.189630 0.503690 vt 0.201945 0.494327 vt 0.190074 0.503035 vt 0.190074 0.494327 -vt 0.214869 0.562501 vt 0.214723 0.553502 -vt 0.214869 0.553699 vt 0.202301 0.555340 vt 0.202066 0.543470 vt 0.202301 0.543470 @@ -1726,7 +384,6 @@ vt 0.428602 0.558400 vt 0.417840 0.553461 vt 0.432501 0.526433 vt 0.432487 0.524369 -vt 0.432487 0.524369 vt 0.447648 0.543050 vt 0.448693 0.547326 vt 0.447763 0.547351 @@ -1770,7 +427,6 @@ vt 0.417840 0.535854 vt 0.417854 0.533789 vt 0.464176 0.557000 vt 0.465113 0.557000 -vt 0.465113 0.557000 vt 0.427707 0.531136 vt 0.429600 0.529132 vt 0.448576 0.560921 @@ -1932,26 +588,16 @@ vt 0.494991 0.451091 vt 0.493032 0.455842 vt 0.481746 0.455842 vt 0.417873 0.531063 -vt 0.417854 0.533789 -vt 0.417873 0.531063 vt 0.448576 0.556854 -vt 0.448576 0.556854 -vt 0.541595 0.470689 vt 0.542206 0.514475 vt 0.552850 0.514475 -vt 0.542206 0.514475 vt 0.428484 0.565354 vt 0.417840 0.565354 -vt 0.417840 0.565354 vt 0.514493 0.548018 vt 0.514493 0.534441 -vt 0.514493 0.534441 -vt 0.417840 0.535854 vt 0.432520 0.529160 -vt 0.432501 0.526433 vt 0.680964 0.471594 vt 0.775071 0.407025 -vt 0.837225 0.529825 vt 0.806377 0.503312 vt 0.809388 0.500301 vt 0.834214 0.500301 @@ -1990,7 +636,6 @@ vt 0.428875 0.560794 vt 0.428555 0.557988 vt 0.448579 0.543024 vt 0.552850 0.502582 -vt 0.552850 0.514475 vt 0.542094 0.507467 vt 0.541847 0.510284 vt 0.541815 0.509915 @@ -2011,7 +656,6 @@ vt 0.526173 0.548955 vt 0.526173 0.533504 vt 0.495877 0.471681 vt 0.432487 0.538011 -vt 0.464176 0.557000 vt 0.430545 0.526471 vt 0.431154 0.522212 vt 0.431408 0.522246 @@ -2024,7 +668,6 @@ vt 0.736752 0.516827 vt 0.721695 0.529910 vt 0.722877 0.532765 vt 0.719261 0.536381 -vt 0.736752 0.516827 vt 0.734319 0.525831 vt 0.733137 0.532765 vt 0.734319 0.529910 @@ -2058,14 +701,12 @@ vt 0.695777 0.485775 vt 0.708600 0.509919 vt 0.699791 0.549500 vt 0.704176 0.549500 -vt 0.704176 0.562879 vt 0.716999 0.509919 vt 0.830378 0.930344 vt 0.830378 0.950852 vt 0.830378 0.845911 vt 0.781459 0.866419 vt 0.830378 0.866419 -vt 0.704176 0.549500 vt 0.708561 0.549500 vt 0.712575 0.562879 vt 0.669019 0.562955 @@ -2076,441 +717,1798 @@ vt 0.480580 0.440448 vt 0.494067 0.440448 vt 0.479684 0.453794 vt 0.495032 0.453794 -vt 0.447639 0.556854 -vt 0.552956 0.470689 -vt 0.428484 0.565354 -vt 0.514493 0.548018 -vt 0.432520 0.529160 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.5892 0.8080 -vn 0.0000 0.5892 -0.8080 -vn 0.0000 -0.0000 1.0000 -vn 0.0714 0.9974 0.0000 -vn -0.9999 0.0159 0.0000 -vn -0.3458 -0.9383 0.0000 -vn -0.3546 -0.9350 0.0000 -vn 0.9195 -0.3932 -0.0001 -vn 0.9195 -0.3932 0.0000 -vn 0.9195 -0.3932 0.0001 -vn 0.6734 0.7393 0.0000 -vn -0.0760 -0.9971 0.0000 -vn 0.0093 -1.0000 0.0000 -vn -0.2498 -0.9683 0.0000 -vn -0.3932 -0.9195 0.0000 -vn -0.3932 -0.9194 0.0000 -vn 0.3932 0.9195 0.0000 -vn 0.0391 0.5455 -0.8372 -vn 0.1976 0.5222 -0.8296 -vn 0.2639 0.5081 -0.8199 -vn 0.0391 0.5456 0.8372 -vn 0.1976 0.5223 0.8296 -vn 0.0391 0.5458 0.8370 -vn 0.4106 0.4439 0.7964 -vn 0.2639 0.5081 0.8199 -vn 0.4094 0.4421 0.7981 -vn 0.4106 0.4439 -0.7964 -vn 0.4094 0.4421 -0.7981 -vn 0.2542 -0.9672 0.0000 -vn 0.4172 -0.9088 0.0000 -vn -0.9804 -0.1970 0.0000 -vn -0.9666 -0.2564 0.0000 -vn -0.0060 1.0000 0.0000 -vn 0.0819 0.9966 0.0000 -vn 0.9691 0.2466 0.0000 -vn 0.9539 0.3001 -0.0000 -vn -0.4941 -0.0963 -0.8640 -vn -0.4957 -0.0685 -0.8658 -vn -0.4938 -0.1025 -0.8635 -vn 0.9757 0.2193 -0.0000 -vn 0.9540 0.2997 0.0004 -vn 0.9691 0.2465 -0.0000 -vn 0.9678 0.2515 0.0000 -vn 0.9682 0.2502 0.0000 -vn 0.2472 0.9690 0.0000 -vn 0.3236 0.9462 0.0000 -vn 0.9977 0.0674 -0.0000 -vn 0.9813 0.1923 0.0000 -vn 0.9724 -0.2331 0.0000 -vn 0.9983 -0.0586 0.0000 -vn 0.9163 -0.4004 0.0000 -vn 0.5676 -0.8233 0.0000 -vn -0.4918 -0.1304 -0.8609 -vn -0.4918 -0.1304 0.8609 -vn -0.4938 -0.1025 0.8635 -vn -0.4941 -0.0963 0.8640 -vn 0.9906 0.1369 0.0000 -vn 0.9543 0.2988 0.0015 -vn -0.0310 0.7102 0.7034 -vn -0.0574 0.0006 0.9984 -vn 0.6188 -0.0838 0.7811 -vn 0.3632 -0.7760 0.5157 -vn -0.0415 -0.6645 -0.7461 -vn -0.0438 0.6785 -0.7333 -vn 0.9609 -0.2225 -0.1650 -vn 0.9516 -0.2365 0.1960 -vn 0.9609 -0.2225 -0.1649 -vn 0.1172 -0.9931 -0.0000 -vn 0.1172 0.9931 0.0000 -vn -0.1172 0.9931 0.0000 -vn -0.1172 -0.9931 0.0000 -vn 0.2328 0.9725 0.0000 -vn 0.8128 0.5826 0.0000 -vn 0.2328 -0.9725 0.0000 -vn 0.8128 -0.5826 0.0000 -vn -0.8128 -0.5826 0.0000 -vn -0.2328 -0.9725 0.0000 -vn -0.2328 0.9725 0.0000 -vn -0.8128 0.5826 0.0000 -vn 0.7865 0.6176 0.0000 -vn 1.0000 0.0045 -0.0000 -vn 0.0177 -0.9998 0.0000 -vn -0.9906 -0.1369 0.0000 -vn 0.9806 0.1959 0.0000 -vn -0.4957 -0.0685 0.8658 -vn 0.0391 0.5458 -0.8370 -vn 0.0000 0.0000 0.0000 s 1 -f 246/628/92 247/629/92 248/630/92 -f 249/631/93 250/632/93 251/633/93 -f 249/634/94 252/635/94 253/636/94 -f 254/637/95 250/638/95 249/639/95 -f 246/640/96 255/641/96 247/642/96 -f 255/643/97 256/644/97 248/630/97 -f 254/645/98 253/646/98 246/628/98 -f 251/647/99 250/648/99 256/649/99 -f 257/650/100 259/651/100 258/652/100 -f 260/653/99 262/654/99 261/655/99 -f 263/656/101 257/657/101 264/658/101 -f 265/659/102 267/660/103 266/661/102 -f 268/662/104 270/663/105 269/664/106 -f 271/665/99 273/666/99 272/667/99 -f 274/668/94 276/669/94 275/670/94 -f 259/671/107 277/672/107 258/673/107 -f 262/674/108 279/675/109 278/676/108 -f 265/677/94 280/678/94 274/668/94 -f 280/678/94 278/679/94 274/668/94 -f 262/654/99 281/680/99 261/655/99 -f 281/680/99 266/681/99 261/655/99 -f 278/676/108 281/682/110 262/674/108 -f 280/683/110 266/661/102 281/684/110 -f 261/655/99 267/685/99 282/686/99 -f 283/687/105 282/688/105 267/689/105 -f 271/690/105 276/691/105 268/662/104 -f 283/687/105 275/692/105 271/690/105 -f 284/693/105 272/694/105 273/695/105 -f 283/696/94 284/697/94 269/698/94 -f 269/699/111 273/700/112 268/701/112 -f 271/690/113 285/702/113 283/687/113 -f 270/663/105 282/688/105 269/664/106 -f 276/691/105 277/672/105 268/662/104 -f 264/703/114 258/704/115 286/705/116 -f 260/653/117 259/706/118 263/707/119 -f 270/663/120 287/708/121 282/688/122 -f 286/709/116 277/672/123 276/691/124 -f 278/679/94 264/703/94 274/668/94 -f 288/710/125 290/711/126 289/712/126 -f 291/713/127 293/714/128 292/715/127 -f 294/716/129 296/717/130 295/718/130 -f 297/719/131 299/720/131 298/721/132 -f 300/722/99 302/723/99 301/724/99 -f 303/725/133 304/726/134 292/727/135 -f 305/728/126 301/729/125 306/730/125 -f 307/731/136 309/732/137 308/733/138 -f 310/734/94 311/735/94 290/736/94 -f 312/737/94 314/738/94 313/739/94 -f 301/740/139 316/741/139 315/742/140 -f 317/743/141 315/744/142 318/745/141 -f 319/746/143 302/747/144 320/748/143 -f 321/749/145 323/750/146 322/751/145 -f 324/752/147 325/753/147 321/754/145 -f 326/755/148 305/728/126 325/753/148 -f 327/756/144 329/757/143 328/758/143 -f 310/759/146 313/760/145 330/761/145 -f 311/762/147 314/763/147 331/764/147 -f 314/763/148 290/711/126 331/764/148 -f 312/737/149 292/727/135 293/765/149 -f 294/766/150 291/767/151 332/768/152 -f 333/769/136 335/770/153 334/771/136 -f 318/745/141 296/717/130 317/743/141 -f 321/772/99 325/773/99 294/766/99 -f 308/733/138 309/732/137 336/774/154 -f 308/733/138 302/747/144 319/746/143 -f 319/746/143 320/748/143 300/775/146 -f 300/775/146 321/749/145 319/746/143 -f 321/754/145 322/776/145 324/752/147 -f 308/733/138 338/777/138 337/778/144 -f 308/733/138 336/774/154 338/777/138 -f 334/771/136 298/721/132 333/769/136 -f 299/720/131 297/719/131 339/779/144 -f 339/779/144 329/757/143 327/756/144 -f 328/758/143 329/757/143 340/780/146 -f 340/780/146 313/760/145 310/759/146 -f 330/781/145 313/782/145 311/762/147 -f 341/783/155 343/784/156 342/785/157 -f 344/786/158 342/785/157 343/784/156 -f 345/787/159 346/788/159 347/789/159 -f 348/790/160 346/791/160 345/792/160 -f 342/793/157 344/794/158 341/795/161 -f 347/796/162 346/797/162 348/798/162 -f 349/799/155 351/800/156 350/801/157 -f 352/802/158 350/801/157 351/800/156 -f 353/803/159 354/804/159 355/805/159 -f 356/806/160 354/807/160 353/808/160 -f 350/809/157 352/810/158 349/811/163 -f 355/812/162 354/813/162 356/814/162 -f 357/815/155 359/816/156 358/817/157 -f 360/818/158 358/817/157 359/816/156 -f 361/819/159 362/820/159 363/821/159 -f 364/822/160 362/823/160 361/824/160 -f 358/825/157 360/826/158 357/827/161 -f 363/828/162 362/829/162 364/830/162 -f 365/831/96 367/832/96 366/833/96 -f 368/834/92 369/835/92 367/836/92 -f 370/837/99 371/838/99 368/839/99 -f 372/840/94 374/841/94 373/842/94 -f 375/843/164 366/844/93 376/845/164 -f 377/846/95 373/847/95 369/848/95 -f 378/849/99 380/850/99 379/851/99 -f 381/852/165 383/853/166 382/854/166 -f 372/855/96 378/856/96 374/857/96 -f 384/858/95 371/859/95 370/860/95 -f 385/861/164 387/862/167 386/863/164 -f 388/864/168 389/865/165 381/852/165 -f 388/866/169 370/860/169 390/867/169 -f 391/868/170 386/863/164 392/869/170 -f 393/870/171 392/871/171 371/859/171 -f 374/857/172 395/872/172 394/873/172 -f 396/874/167 395/875/173 387/862/167 -f 382/854/166 398/876/174 397/877/174 -f 397/878/175 380/879/175 372/855/175 -f 373/842/94 400/880/94 399/881/94 -f 400/880/94 376/882/94 399/881/94 -f 375/883/99 402/884/99 401/885/99 -f 402/884/99 379/851/99 401/885/99 -f 379/886/171 400/887/171 373/847/171 -f 402/888/170 376/845/164 400/889/170 -f 393/890/94 384/891/94 366/892/94 -f 403/893/176 405/894/176 404/895/176 -f 406/896/92 408/897/92 407/898/92 -f 409/899/92 411/900/92 410/901/92 -f 412/902/96 414/903/96 413/904/96 -f 415/905/93 403/906/93 416/907/93 -f 416/908/99 403/909/99 404/910/99 -f 414/911/93 415/905/93 416/907/93 -f 404/912/177 405/913/177 417/914/177 -f 405/915/94 415/916/94 412/917/94 -f 418/918/92 419/919/92 417/920/92 -f 413/921/99 407/922/99 408/923/99 -f 411/924/94 419/925/94 410/926/94 -f 335/927/92 421/928/92 420/929/92 -f 422/930/178 304/931/178 335/927/178 -f 307/932/99 423/933/99 420/934/99 -f 307/731/136 421/935/153 424/936/136 -f 292/715/127 422/937/179 291/713/127 -f 333/938/94 426/939/94 425/940/94 -f 424/941/99 428/942/99 427/943/99 -f 427/944/180 426/945/153 429/946/180 -f 332/768/152 422/947/181 423/933/181 -f 334/948/94 430/949/94 303/725/94 -f 246/628/92 248/630/92 431/950/92 -f 249/631/93 251/633/93 252/951/93 -f 249/634/94 253/636/94 254/952/94 -f 250/638/95 254/637/95 256/953/95 -f 256/953/95 254/637/95 248/954/95 -f 248/954/95 254/637/95 431/955/95 -f 255/641/96 252/956/96 251/957/96 -f 252/956/96 255/641/96 253/958/96 -f 253/958/96 255/641/96 246/640/96 -f 255/643/97 248/630/97 247/629/97 -f 254/645/98 246/628/98 431/950/98 -f 251/647/99 256/649/99 255/959/99 -f 257/650/100 263/960/100 259/651/100 -f 261/655/99 287/961/99 260/653/99 -f 260/653/99 432/962/99 262/654/99 -f 264/658/101 279/963/101 432/964/101 -f 432/964/101 260/965/101 264/658/101 -f 260/965/101 263/656/101 264/658/101 -f 265/659/102 275/966/103 267/660/103 -f 268/662/104 277/672/105 270/663/105 -f 271/665/99 268/967/99 273/666/99 -f 275/670/94 265/677/94 274/668/94 -f 274/668/94 286/705/94 276/669/94 -f 259/671/107 270/663/107 277/672/107 -f 262/674/108 432/968/109 279/675/109 -f 278/676/108 280/969/110 281/682/110 -f 280/683/110 265/659/102 266/661/102 -f 282/686/99 287/961/99 261/655/99 -f 261/655/99 266/681/99 267/685/99 -f 283/687/105 269/664/106 282/688/105 -f 271/690/105 275/692/105 276/691/105 -f 283/687/105 267/689/105 275/692/105 -f 284/693/105 285/702/105 272/694/105 -f 283/696/94 285/970/94 284/697/94 -f 269/699/111 284/971/111 273/700/112 -f 271/690/113 272/694/113 285/702/113 -f 264/703/114 257/972/182 258/704/115 -f 260/653/117 287/961/121 259/706/118 -f 270/663/120 259/671/118 287/708/121 -f 286/709/116 258/673/115 277/672/123 -f 279/973/94 264/703/94 278/679/94 -f 264/703/94 286/705/94 274/668/94 -f 288/710/125 316/974/125 290/711/126 -f 291/713/127 433/975/128 293/714/128 -f 295/718/130 312/976/129 294/716/129 -f 312/976/129 293/977/129 294/716/129 -f 293/977/129 433/978/129 294/716/129 -f 301/724/99 434/979/99 323/980/99 -f 434/979/99 326/981/99 324/982/99 -f 324/982/99 322/983/99 323/980/99 -f 434/979/99 324/982/99 323/980/99 -f 424/941/99 427/943/99 309/984/99 -f 427/943/99 301/724/99 302/723/99 -f 336/985/99 427/943/99 337/986/99 -f 336/985/99 309/984/99 427/943/99 -f 337/986/99 338/987/99 336/985/99 -f 300/722/99 320/988/99 302/723/99 -f 302/723/99 337/986/99 427/943/99 -f 323/980/99 300/722/99 301/724/99 -f 303/725/133 430/949/134 304/726/134 -f 305/728/126 434/989/126 301/729/125 -f 307/731/136 424/936/136 309/732/137 -f 316/990/94 429/991/94 327/992/94 -f 429/991/94 333/938/94 298/993/94 -f 298/993/94 299/994/94 339/995/94 -f 429/991/94 298/993/94 339/995/94 -f 316/990/94 327/992/94 340/996/94 -f 331/997/94 290/736/94 311/735/94 -f 290/736/94 316/990/94 310/734/94 -f 311/735/94 310/734/94 330/998/94 -f 340/996/94 310/734/94 316/990/94 -f 327/992/94 328/999/94 340/996/94 -f 339/995/94 327/992/94 429/991/94 -f 297/1000/94 334/948/94 303/725/94 -f 312/737/94 295/1001/94 314/738/94 -f 295/1001/94 318/1002/94 289/1003/94 -f 318/1002/94 315/1004/94 289/1003/94 -f 315/1004/94 288/1005/94 289/1003/94 -f 297/1000/94 303/725/94 329/1006/94 -f 303/725/94 312/737/94 329/1006/94 -f 295/1001/94 289/1003/94 314/738/94 -f 313/739/94 329/1006/94 312/737/94 -f 315/742/140 435/1007/140 301/740/139 -f 435/1007/140 306/1008/140 301/740/139 -f 301/740/139 427/944/180 429/946/180 -f 316/741/139 288/1009/140 315/742/140 -f 301/740/139 429/946/180 316/741/139 -f 317/743/141 435/1010/142 315/744/142 -f 324/752/147 326/755/147 325/753/147 -f 326/755/148 434/989/126 305/728/126 -f 311/762/147 313/782/145 314/763/147 -f 314/763/148 289/712/126 290/711/126 -f 312/737/149 303/725/133 292/727/135 -f 294/766/150 433/1011/150 291/767/151 -f 333/769/136 425/1012/153 335/770/153 -f 318/745/141 295/718/130 296/717/130 -f 305/1013/99 306/1014/99 435/1015/99 -f 435/1015/99 317/1016/99 305/1013/99 -f 317/1016/99 296/1017/99 305/1013/99 -f 294/766/99 332/768/99 319/1018/99 -f 332/768/99 307/932/99 308/1019/99 -f 332/768/99 308/1019/99 319/1018/99 -f 296/1017/99 294/766/99 325/773/99 -f 305/1013/99 296/1017/99 325/773/99 -f 294/766/99 319/1018/99 321/772/99 -f 308/733/138 337/778/144 302/747/144 -f 300/775/146 323/750/146 321/749/145 -f 334/771/136 297/719/131 298/721/132 -f 339/779/144 297/719/131 329/757/143 -f 340/780/146 329/757/143 313/760/145 -f 365/831/96 368/1020/96 367/832/96 -f 368/834/92 377/1021/92 369/835/92 -f 387/1022/99 395/1023/99 377/1024/99 -f 365/1025/99 375/883/99 389/1026/99 -f 375/883/99 401/885/99 398/1027/99 -f 389/1026/99 375/883/99 383/1028/99 -f 398/1027/99 383/1028/99 375/883/99 -f 387/1022/99 377/1024/99 386/1029/99 -f 377/1024/99 368/839/99 386/1029/99 -f 365/1025/99 389/1026/99 390/1030/99 -f 392/1031/99 386/1029/99 368/839/99 -f 371/838/99 392/1031/99 368/839/99 -f 368/839/99 365/1025/99 370/837/99 -f 365/1025/99 390/1030/99 370/837/99 -f 374/841/94 394/1032/94 369/1033/94 -f 369/1033/94 373/842/94 374/841/94 -f 373/842/94 399/881/94 372/840/94 -f 399/881/94 397/1034/94 372/840/94 -f 375/843/164 365/1035/93 366/844/93 -f 377/846/95 379/886/95 373/847/95 -f 380/850/99 398/1027/99 401/885/99 -f 401/885/99 379/851/99 380/850/99 -f 379/851/99 377/1024/99 378/849/99 -f 377/1024/99 395/1023/99 378/849/99 -f 381/852/165 389/865/165 383/853/166 -f 372/855/96 380/879/96 378/856/96 -f 384/858/95 393/870/95 371/859/95 -f 385/861/164 396/874/167 387/862/167 -f 388/864/168 390/1036/168 389/865/165 -f 388/866/169 384/858/169 370/860/169 -f 391/868/170 385/861/164 386/863/164 -f 393/870/171 391/1037/171 392/871/171 -f 374/857/172 378/856/172 395/872/172 -f 396/874/167 394/1038/173 395/875/173 -f 382/854/166 383/853/166 398/876/174 -f 397/878/175 398/1039/175 380/879/175 -f 379/886/171 402/1040/171 400/887/171 -f 402/888/170 375/843/164 376/845/164 -f 382/1041/94 397/1034/94 376/882/94 -f 397/1034/94 399/881/94 376/882/94 -f 376/882/94 366/892/94 381/1042/94 -f 382/1041/94 376/882/94 381/1042/94 -f 369/1033/94 394/1032/94 396/1043/94 -f 369/1033/94 396/1043/94 385/1044/94 -f 367/1045/94 369/1033/94 385/1044/94 -f 367/1045/94 385/1044/94 391/1046/94 -f 388/1047/94 381/1042/94 366/892/94 -f 384/891/94 388/1047/94 366/892/94 -f 366/892/94 367/1045/94 393/890/94 -f 367/1045/94 391/1046/94 393/890/94 -f 403/893/176 436/1048/176 405/894/176 -f 406/896/92 437/1049/92 408/897/92 -f 409/899/92 438/1050/92 411/900/92 -f 413/904/96 408/1051/96 437/1052/96 -f 414/903/96 409/1053/96 419/1054/96 -f 409/1053/96 410/1055/96 419/1054/96 -f 413/904/96 437/1052/96 412/902/96 -f 414/903/96 419/1054/96 413/904/96 -f 415/905/93 436/1056/93 403/906/93 -f 404/910/99 438/1057/99 409/1058/99 -f 409/1058/99 414/1059/99 404/910/99 -f 414/1059/99 416/908/99 404/910/99 -f 414/911/93 412/1060/93 415/905/93 -f 411/1061/177 438/1062/177 417/914/177 -f 438/1062/177 404/912/177 417/914/177 -f 405/913/177 406/1063/177 418/1064/177 -f 406/1063/177 407/1065/177 418/1064/177 -f 405/913/177 418/1064/177 417/914/177 -f 412/917/94 437/1066/94 405/915/94 -f 437/1066/94 406/1067/94 405/915/94 -f 405/915/94 436/1068/94 415/916/94 -f 418/918/92 413/1069/92 419/919/92 -f 413/921/99 418/1070/99 407/922/99 -f 411/924/94 417/1071/94 419/925/94 -f 425/1072/125 426/1073/125 428/1074/125 -f 425/1072/125 428/1074/125 421/928/125 -f 335/927/183 425/1072/183 421/928/183 -f 430/1075/178 335/927/178 304/931/178 -f 335/927/178 420/929/178 422/930/178 -f 420/929/178 423/1076/178 422/930/178 -f 307/932/99 332/768/99 423/933/99 -f 307/731/136 420/1077/153 421/935/153 -f 292/715/127 304/1078/179 422/937/179 -f 333/938/94 429/991/94 426/939/94 -f 424/941/99 421/1079/99 428/942/99 -f 427/944/180 428/1080/153 426/945/153 -f 332/768/152 291/767/151 422/947/181 -f 334/948/94 335/1081/94 430/949/94 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 4/7/3 7/8/3 8/9/3 +f 9/10/4 5/11/4 4/12/4 +f 1/13/5 10/14/5 2/15/5 +f 10/16/6 11/17/6 3/3/6 +f 9/18/7 8/19/7 1/1/7 +f 6/20/8 5/7/8 11/21/8 +f 12/22/9 14/23/9 13/24/9 +f 15/25/8 17/26/8 16/27/8 +f 18/28/10 12/29/10 19/30/10 +f 20/31/11 22/32/12 21/33/11 +f 23/34/13 25/35/14 24/36/15 +f 26/37/8 28/38/8 27/39/8 +f 29/40/3 31/41/3 30/42/3 +f 14/43/16 32/44/16 13/45/16 +f 17/46/17 34/47/18 33/48/17 +f 20/49/3 35/50/3 29/40/3 +f 35/50/3 33/51/3 29/40/3 +f 17/26/8 36/52/8 16/27/8 +f 36/52/8 21/53/8 16/27/8 +f 33/48/17 36/54/19 17/46/17 +f 35/55/19 21/33/11 36/56/19 +f 16/27/8 22/57/8 37/58/8 +f 38/59/14 37/60/14 22/61/14 +f 26/62/14 31/63/14 23/34/13 +f 38/59/14 30/64/14 26/62/14 +f 39/65/14 27/66/14 28/67/14 +f 38/38/3 39/68/3 24/39/3 +f 24/69/20 28/70/20 23/71/20 +f 26/62/21 40/72/22 38/59/22 +f 25/35/14 37/60/14 24/36/15 +f 31/63/14 32/44/14 23/34/13 +f 19/73/23 13/74/24 41/75/25 +f 15/25/26 14/76/27 18/77/28 +f 25/35/29 42/78/30 37/60/31 +f 41/79/25 32/44/32 31/63/33 +f 33/51/3 19/73/3 29/40/3 +f 43/80/34 45/81/35 44/82/35 +f 46/83/36 48/84/37 47/85/36 +f 49/86/38 51/87/39 50/88/39 +f 52/89/40 54/90/40 53/91/41 +f 55/92/8 57/93/8 56/94/8 +f 58/95/42 59/96/43 47/96/44 +f 60/97/35 56/98/34 61/99/34 +f 62/100/45 64/101/46 63/102/47 +f 65/103/3 66/104/3 45/105/3 +f 67/106/3 69/107/3 68/108/3 +f 56/109/48 71/110/48 70/111/49 +f 72/112/50 70/113/51 73/114/50 +f 74/115/52 57/116/53 75/117/52 +f 76/118/54 78/119/55 77/120/54 +f 79/121/56 80/122/56 76/123/54 +f 81/124/57 60/97/35 80/122/57 +f 82/125/53 84/126/52 83/127/52 +f 65/128/55 68/129/54 85/130/54 +f 66/131/56 69/132/56 86/133/56 +f 69/132/57 45/81/35 86/133/57 +f 67/106/58 47/96/44 48/134/58 +f 49/135/59 46/136/60 87/137/61 +f 88/138/45 90/139/62 89/139/45 +f 73/114/50 51/87/39 72/112/50 +f 76/140/8 80/141/8 49/135/8 +f 63/102/47 64/101/46 91/142/63 +f 63/102/47 57/116/53 74/115/52 +f 74/115/52 75/117/52 55/143/55 +f 55/143/55 76/118/54 74/115/52 +f 76/123/54 77/144/54 79/121/56 +f 63/102/47 93/145/47 92/146/53 +f 63/102/47 91/142/63 93/145/47 +f 89/139/45 53/91/41 88/138/45 +f 54/90/40 52/89/40 94/147/53 +f 94/147/53 84/126/52 82/125/53 +f 83/127/52 84/126/52 95/148/55 +f 95/148/55 68/129/54 65/128/55 +f 85/149/54 68/150/54 66/131/56 +f 96/151/64 98/152/65 97/153/66 +f 99/154/67 97/153/66 98/152/65 +f 100/155/68 101/156/68 102/157/68 +f 103/158/69 101/159/69 100/160/69 +f 97/161/66 99/162/67 96/163/70 +f 102/164/71 101/165/71 103/166/71 +f 104/167/64 106/168/65 105/169/66 +f 107/170/67 105/169/66 106/168/65 +f 108/171/68 109/172/68 110/173/68 +f 111/174/69 109/175/69 108/176/69 +f 105/177/66 107/178/67 104/179/72 +f 110/180/71 109/181/71 111/182/71 +f 112/183/64 114/184/65 113/185/66 +f 115/186/67 113/185/66 114/184/65 +f 116/187/68 117/188/68 118/189/68 +f 119/190/69 117/191/69 116/192/69 +f 113/193/66 115/194/67 112/195/70 +f 118/196/71 117/197/71 119/198/71 +f 120/199/5 122/200/5 121/201/5 +f 123/202/1 124/203/1 122/204/1 +f 125/205/8 126/206/8 123/207/8 +f 127/208/3 129/209/3 128/210/3 +f 130/211/73 121/212/2 131/213/73 +f 132/214/4 128/215/4 124/216/4 +f 133/217/8 135/218/8 134/219/8 +f 136/220/74 138/221/75 137/222/75 +f 127/223/5 133/224/5 129/225/5 +f 139/226/4 126/227/4 125/228/4 +f 140/229/73 142/230/76 141/231/73 +f 143/232/77 144/233/74 136/220/74 +f 143/234/78 125/228/78 145/235/78 +f 146/236/79 141/231/73 147/237/79 +f 148/238/80 147/239/80 126/227/80 +f 129/225/81 150/240/81 149/241/81 +f 151/242/76 150/243/82 142/230/76 +f 137/222/75 153/244/83 152/245/83 +f 152/246/84 135/247/84 127/223/84 +f 128/210/3 155/248/3 154/249/3 +f 155/248/3 131/250/3 154/249/3 +f 130/251/8 157/252/8 156/253/8 +f 157/252/8 134/219/8 156/253/8 +f 134/254/80 155/255/80 128/215/80 +f 157/256/79 131/213/73 155/257/79 +f 148/258/3 139/259/3 121/260/3 +f 158/261/85 160/262/85 159/263/85 +f 161/264/1 163/265/1 162/266/1 +f 164/267/1 166/268/1 165/269/1 +f 167/270/5 169/271/5 168/272/5 +f 170/273/2 158/274/2 171/275/2 +f 171/276/8 158/277/8 159/278/8 +f 169/279/2 170/273/2 171/275/2 +f 159/280/86 160/281/86 172/282/86 +f 160/283/3 170/284/3 167/285/3 +f 173/286/1 174/287/1 172/288/1 +f 168/289/8 162/290/8 163/291/8 +f 166/292/3 174/293/3 165/294/3 +f 90/295/2 176/296/2 175/297/2 +f 177/298/87 59/299/87 90/295/87 +f 62/300/8 178/137/8 175/300/8 +f 62/100/45 176/301/62 179/301/45 +f 47/85/36 177/83/88 46/83/36 +f 88/302/3 181/303/3 180/302/3 +f 179/304/8 183/305/8 182/305/8 +f 182/306/89 181/307/62 184/307/89 +f 87/137/61 177/136/90 178/137/90 +f 89/308/3 185/95/3 58/95/3 +f 1/1/1 3/3/1 186/309/1 +f 4/4/2 6/6/2 7/310/2 +f 4/7/3 8/9/3 9/21/3 +f 5/11/4 9/10/4 11/311/4 +f 11/311/4 9/10/4 3/312/4 +f 3/312/4 9/10/4 186/313/4 +f 10/14/5 7/314/5 6/315/5 +f 7/314/5 10/14/5 8/316/5 +f 8/316/5 10/14/5 1/13/5 +f 10/16/6 3/3/6 2/2/6 +f 9/18/7 1/1/7 186/309/7 +f 6/20/8 11/21/8 10/317/8 +f 12/22/9 18/318/9 14/23/9 +f 16/27/8 42/319/8 15/25/8 +f 15/25/8 187/320/8 17/26/8 +f 19/30/10 34/321/10 187/322/10 +f 187/322/10 15/323/10 19/30/10 +f 15/323/10 18/28/10 19/30/10 +f 20/31/11 30/324/12 22/32/12 +f 23/34/13 32/44/14 25/35/14 +f 26/37/8 23/325/8 28/38/8 +f 30/42/3 20/49/3 29/40/3 +f 29/40/3 41/75/3 31/41/3 +f 14/43/16 25/35/16 32/44/16 +f 17/46/17 187/326/18 34/47/18 +f 33/48/17 35/327/19 36/54/19 +f 35/55/19 20/31/11 21/33/11 +f 37/58/8 42/319/8 16/27/8 +f 16/27/8 21/53/8 22/57/8 +f 38/59/14 24/36/15 37/60/14 +f 26/62/14 30/64/14 31/63/14 +f 38/59/14 22/61/14 30/64/14 +f 39/65/14 40/72/14 27/66/14 +f 38/38/3 40/328/3 39/68/3 +f 24/69/20 39/329/20 28/70/20 +f 26/62/21 27/66/21 40/72/22 +f 19/73/23 12/330/91 13/74/24 +f 15/25/26 42/319/30 14/76/27 +f 25/35/29 14/43/27 42/78/30 +f 41/79/25 13/45/24 32/44/32 +f 34/331/3 19/73/3 33/51/3 +f 19/73/3 41/75/3 29/40/3 +f 43/80/34 71/332/34 45/81/35 +f 46/83/36 188/333/37 48/84/37 +f 50/88/39 67/334/38 49/86/38 +f 67/334/38 48/335/38 49/86/38 +f 48/335/38 188/336/38 49/86/38 +f 56/94/8 189/337/8 78/338/8 +f 189/337/8 81/339/8 79/340/8 +f 79/340/8 77/341/8 78/338/8 +f 189/337/8 79/340/8 78/338/8 +f 179/304/8 182/305/8 64/342/8 +f 182/305/8 56/94/8 57/93/8 +f 91/343/8 182/305/8 92/344/8 +f 91/343/8 64/342/8 182/305/8 +f 92/344/8 93/345/8 91/343/8 +f 55/92/8 75/346/8 57/93/8 +f 57/93/8 92/344/8 182/305/8 +f 78/338/8 55/92/8 56/94/8 +f 58/95/42 185/95/43 59/96/43 +f 60/97/35 189/347/35 56/98/34 +f 62/100/45 179/301/45 64/101/46 +f 71/348/3 184/303/3 82/349/3 +f 184/303/3 88/302/3 53/350/3 +f 53/350/3 54/351/3 94/352/3 +f 184/303/3 53/350/3 94/352/3 +f 71/348/3 82/349/3 95/353/3 +f 86/354/3 45/105/3 66/104/3 +f 45/105/3 71/348/3 65/103/3 +f 66/104/3 65/103/3 85/355/3 +f 95/353/3 65/103/3 71/348/3 +f 82/349/3 83/356/3 95/353/3 +f 94/352/3 82/349/3 184/303/3 +f 52/357/3 89/308/3 58/95/3 +f 67/106/3 50/358/3 69/107/3 +f 50/358/3 73/359/3 44/360/3 +f 73/359/3 70/361/3 44/360/3 +f 70/361/3 43/362/3 44/360/3 +f 52/357/3 58/95/3 84/363/3 +f 58/95/3 67/106/3 84/363/3 +f 50/358/3 44/360/3 69/107/3 +f 68/108/3 84/363/3 67/106/3 +f 70/111/49 190/364/49 56/109/48 +f 190/364/49 61/365/49 56/109/48 +f 56/109/48 182/306/89 184/307/89 +f 71/110/48 43/366/49 70/111/49 +f 56/109/48 184/307/89 71/110/48 +f 72/112/50 190/367/51 70/113/51 +f 79/121/56 81/124/56 80/122/56 +f 81/124/57 189/347/35 60/97/35 +f 66/131/56 68/150/54 69/132/56 +f 69/132/57 44/82/35 45/81/35 +f 67/106/58 58/95/42 47/96/44 +f 49/135/59 188/368/59 46/136/60 +f 88/138/45 180/138/62 90/139/62 +f 73/114/50 50/88/39 51/87/39 +f 60/369/8 61/370/8 190/371/8 +f 190/371/8 72/372/8 60/369/8 +f 72/372/8 51/373/8 60/369/8 +f 49/135/8 87/137/8 74/374/8 +f 87/137/8 62/300/8 63/375/8 +f 87/137/8 63/375/8 74/374/8 +f 51/373/8 49/135/8 80/141/8 +f 60/369/8 51/373/8 80/141/8 +f 49/135/8 74/374/8 76/140/8 +f 63/102/47 92/146/53 57/116/53 +f 55/143/55 78/119/55 76/118/54 +f 89/139/45 52/89/40 53/91/41 +f 94/147/53 52/89/40 84/126/52 +f 95/148/55 84/126/52 68/129/54 +f 120/199/5 123/376/5 122/200/5 +f 123/202/1 132/377/1 124/203/1 +f 142/378/8 150/379/8 132/380/8 +f 120/377/8 130/251/8 144/381/8 +f 130/251/8 156/253/8 153/382/8 +f 144/381/8 130/251/8 138/383/8 +f 153/382/8 138/383/8 130/251/8 +f 142/378/8 132/380/8 141/384/8 +f 132/380/8 123/207/8 141/384/8 +f 120/377/8 144/381/8 145/385/8 +f 147/386/8 141/384/8 123/207/8 +f 126/206/8 147/386/8 123/207/8 +f 123/207/8 120/377/8 125/205/8 +f 120/377/8 145/385/8 125/205/8 +f 129/209/3 149/387/3 124/388/3 +f 124/388/3 128/210/3 129/209/3 +f 128/210/3 154/249/3 127/208/3 +f 154/249/3 152/389/3 127/208/3 +f 130/211/73 120/390/2 121/212/2 +f 132/214/4 134/254/4 128/215/4 +f 135/218/8 153/382/8 156/253/8 +f 156/253/8 134/219/8 135/218/8 +f 134/219/8 132/380/8 133/217/8 +f 132/380/8 150/379/8 133/217/8 +f 136/220/74 144/233/74 138/221/75 +f 127/223/5 135/247/5 133/224/5 +f 139/226/4 148/238/4 126/227/4 +f 140/229/73 151/242/76 142/230/76 +f 143/232/77 145/391/77 144/233/74 +f 143/234/78 139/226/78 125/228/78 +f 146/236/79 140/229/73 141/231/73 +f 148/238/80 146/392/80 147/239/80 +f 129/225/81 133/224/81 150/240/81 +f 151/242/76 149/393/82 150/243/82 +f 137/222/75 138/221/75 153/244/83 +f 152/246/84 153/394/84 135/247/84 +f 134/254/80 157/395/80 155/255/80 +f 157/256/79 130/211/73 131/213/73 +f 137/396/3 152/389/3 131/250/3 +f 152/389/3 154/249/3 131/250/3 +f 131/250/3 121/260/3 136/397/3 +f 137/396/3 131/250/3 136/397/3 +f 124/388/3 149/387/3 151/398/3 +f 124/388/3 151/398/3 140/399/3 +f 122/400/3 124/388/3 140/399/3 +f 122/400/3 140/399/3 146/401/3 +f 143/402/3 136/397/3 121/260/3 +f 139/259/3 143/402/3 121/260/3 +f 121/260/3 122/400/3 148/258/3 +f 122/400/3 146/401/3 148/258/3 +f 158/261/85 191/403/85 160/262/85 +f 161/264/1 192/404/1 163/265/1 +f 164/267/1 193/405/1 166/268/1 +f 168/272/5 163/406/5 192/407/5 +f 169/271/5 164/408/5 174/409/5 +f 164/408/5 165/410/5 174/409/5 +f 168/272/5 192/407/5 167/270/5 +f 169/271/5 174/409/5 168/272/5 +f 170/273/2 191/411/2 158/274/2 +f 159/278/8 193/412/8 164/413/8 +f 164/413/8 169/285/8 159/278/8 +f 169/285/8 171/276/8 159/278/8 +f 169/279/2 167/414/2 170/273/2 +f 166/415/86 193/416/86 172/282/86 +f 193/416/86 159/280/86 172/282/86 +f 160/281/86 161/417/86 173/418/86 +f 161/417/86 162/419/86 173/418/86 +f 160/281/86 173/418/86 172/282/86 +f 167/285/3 192/413/3 160/283/3 +f 192/413/3 161/420/3 160/283/3 +f 160/283/3 191/421/3 170/284/3 +f 173/286/1 168/422/1 174/287/1 +f 168/289/8 173/423/8 162/290/8 +f 166/292/3 172/424/3 174/293/3 +f 180/425/34 181/426/34 183/427/34 +f 180/425/34 183/427/34 176/296/34 +f 90/295/92 180/425/93 176/296/94 +f 185/428/87 90/295/87 59/299/87 +f 90/295/87 175/297/87 177/298/87 +f 175/297/87 178/429/87 177/298/87 +f 62/300/8 87/137/8 178/137/8 +f 62/100/45 175/100/62 176/301/62 +f 47/85/36 59/85/88 177/83/88 +f 88/302/3 184/303/3 181/303/3 +f 179/304/8 176/304/8 183/305/8 +f 182/306/89 183/306/62 181/307/62 +f 87/137/61 46/136/60 177/136/90 +f 89/308/3 90/308/3 185/95/3 +o Slide +v -0.029588 0.246255 -0.577080 +v 0.029588 0.246255 -0.633022 +v 0.029588 0.246255 -0.577080 +v 0.029588 0.187079 -0.577080 +v -0.029588 0.187079 -0.633022 +v -0.029588 0.187079 -0.577080 +v 0.029588 0.205540 -0.633022 +v -0.029588 0.229552 -0.633022 +v -0.029588 0.246255 -0.633022 +v 0.029588 0.187079 -0.633022 +v 0.032118 0.281420 -0.181591 +v -0.032118 0.289754 -0.181591 +v -0.032118 0.281420 -0.181591 +v -0.056481 0.121788 -0.384735 +v -0.056481 0.160121 -0.384735 +v 0.039181 0.138454 -0.384735 +v 0.056481 0.138454 -0.181591 +v 0.056481 0.261133 -0.181591 +v -0.056481 0.121788 -0.181591 +v 0.056481 0.121788 -0.384735 +v 0.056481 0.121788 -0.181591 +v -0.056481 0.138454 -0.181591 +v -0.039814 0.138454 -0.633022 +v -0.039814 0.121788 -0.384735 +v -0.039814 0.138454 -0.384735 +v -0.056481 0.229552 -0.522695 +v -0.056481 0.261133 -0.181591 +v 0.039814 0.138454 -0.384735 +v 0.039814 0.121788 -0.633022 +v 0.039814 0.138454 -0.633022 +v 0.056481 0.160121 -0.384735 +v 0.056481 0.160350 -0.633022 +v 0.056481 0.205540 -0.522695 +v -0.039814 0.121788 -0.633022 +v 0.039814 0.121788 -0.384735 +v 0.056481 0.261133 -0.633022 +v -0.032118 0.281420 -0.633022 +v -0.056481 0.261133 -0.633022 +v -0.032118 0.289754 -0.633022 +v 0.032118 0.289754 -0.181591 +v 0.032118 0.289754 -0.633022 +v 0.032118 0.281420 -0.633022 +v -0.050000 0.229552 -0.633022 +v -0.050000 0.229552 -0.522695 +v -0.050000 0.205540 -0.522695 +v -0.050000 0.205540 -0.633022 +v -0.056481 0.205540 -0.522695 +v 0.050000 0.229552 -0.522695 +v 0.056481 0.229552 -0.633022 +v 0.056481 0.229552 -0.522695 +v 0.050000 0.205540 -0.522695 +v 0.056481 0.205540 -0.633022 +v 0.050000 0.205540 -0.633022 +v 0.050000 0.229552 -0.633022 +v -0.005394 0.289516 -0.633819 +v 0.005394 0.323818 -0.633819 +v 0.005394 0.289516 -0.633819 +v -0.005394 0.323818 -0.633819 +v 0.005394 0.323818 -0.599517 +v -0.005394 0.323818 -0.599517 +v 0.005394 0.289516 -0.562850 +v -0.005394 0.289516 -0.562850 +v 0.005394 0.289795 -0.633540 +v 0.008727 0.289795 -0.587108 +v 0.005394 0.289795 -0.587108 +v -0.005394 0.289795 -0.587108 +v -0.008727 0.289795 -0.633540 +v -0.005394 0.289795 -0.633540 +v 0.005394 0.310206 -0.633540 +v -0.005394 0.310206 -0.633540 +v 0.005394 0.310206 -0.608926 +v -0.005394 0.310206 -0.608926 +v -0.008727 0.310206 -0.608926 +v -0.008727 0.289795 -0.587108 +v -0.008727 0.310206 -0.633540 +v 0.008727 0.310206 -0.608926 +v 0.008727 0.289795 -0.633540 +v 0.008727 0.310206 -0.633540 +v -0.056481 0.205540 -0.633022 +v -0.056481 0.160350 -0.633022 +v -0.056481 0.229552 -0.633022 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.6399 0.7685 -0.0000 +vn -0.6399 0.7685 -0.0000 +vn -0.7929 -0.6093 -0.0000 +vn -0.7955 -0.6060 -0.0005 +vn -0.7926 -0.6097 -0.0000 +vn 0.7928 -0.6094 -0.0000 +vn 0.7955 -0.6060 -0.0005 +vn 0.7957 -0.6057 -0.0006 +vn -0.0000 0.7303 0.6832 +vn -0.7928 -0.6094 -0.0000 +vn -0.7957 -0.6057 -0.0006 +vn 0.7926 -0.6097 -0.0000 +vt 0.092911 0.684435 +vt 0.089855 0.671519 +vt 0.092911 0.671519 +vt 0.354586 0.672632 +vt 0.344381 0.685548 +vt 0.344381 0.672632 +vt 0.206551 0.673047 +vt 0.209606 0.685963 +vt 0.206551 0.685963 +vt 0.128661 0.677165 +vt 0.131717 0.677165 +vt 0.131717 0.684187 +vt 0.128661 0.687371 +vt 0.125606 0.687371 +vt 0.125606 0.680046 +vt 0.089855 0.684435 +vt 0.354586 0.685548 +vt 0.209606 0.673047 +vt 0.131717 0.687371 +vt 0.125606 0.677165 +vt 0.063094 0.517248 +vt 0.077115 0.515811 +vt 0.077115 0.517248 +vt 0.157843 0.697224 +vt 0.151233 0.697224 +vt 0.154969 0.676344 +vt 0.057777 0.541903 +vt 0.057777 0.520746 +vt 0.285202 0.565673 +vt 0.274107 0.541018 +vt 0.285202 0.541018 +vt 0.082432 0.541903 +vt 0.057777 0.544778 +vt 0.136231 0.644951 +vt 0.133357 0.631391 +vt 0.136231 0.631391 +vt 0.151942 0.638926 +vt 0.139968 0.631391 +vt 0.157388 0.620296 +vt 0.109962 0.632696 +vt 0.107088 0.619135 +vt 0.109962 0.619135 +vt 0.113699 0.632696 +vt 0.113738 0.619135 +vt 0.121532 0.625161 +vt 0.076295 0.688899 +vt 0.089855 0.688899 +vt 0.103450 0.518685 +vt 0.086070 0.515811 +vt 0.103450 0.515811 +vt 0.231790 0.688984 +vt 0.226472 0.664328 +vt 0.231790 0.664328 +vt 0.176531 0.639683 +vt 0.181848 0.664339 +vt 0.176531 0.664339 +vt 0.133357 0.542324 +vt 0.133260 0.547538 +vt 0.133260 0.542226 +vt 0.101218 0.527071 +vt 0.088302 0.527071 +vt 0.086070 0.518685 +vt 0.088302 0.537276 +vt 0.101218 0.537276 +vt 0.101770 0.543341 +vt 0.271087 0.590329 +vt 0.285107 0.565673 +vt 0.285107 0.590329 +vt 0.087750 0.544778 +vt 0.087750 0.543341 +vt 0.131743 0.542226 +vt 0.133181 0.566881 +vt 0.131743 0.566881 +vt 0.133181 0.591537 +vt 0.131743 0.591537 +vt 0.132534 0.634040 +vt 0.131119 0.640066 +vt 0.131119 0.634040 +vt 0.258439 0.613448 +vt 0.257024 0.609307 +vt 0.258439 0.609307 +vt 0.278036 0.607848 +vt 0.279450 0.613874 +vt 0.278036 0.613874 +vt 0.282177 0.607848 +vt 0.278036 0.601822 +vt 0.282177 0.601822 +vt 0.092911 0.677545 +vt 0.094325 0.671519 +vt 0.094325 0.677545 +vt 0.255609 0.613448 +vt 0.257024 0.613448 +vt 0.094325 0.683571 +vt 0.281887 0.485497 +vt 0.277746 0.479471 +vt 0.281887 0.479471 +vt 0.786280 0.515326 +vt 0.770512 0.499558 +vt 0.786280 0.499558 +vt 0.722175 0.451879 +vt 0.737943 0.436111 +vt 0.737943 0.451879 +vt 0.830449 0.815071 +vt 0.846218 0.798216 +vt 0.846218 0.815071 +vt 0.690638 0.451879 +vt 0.706407 0.419256 +vt 0.706407 0.451879 +vt 0.718250 0.533728 +vt 0.723122 0.555072 +vt 0.718250 0.555072 +vt 0.824551 0.567530 +vt 0.819678 0.546186 +vt 0.824551 0.546186 +vt 0.712664 0.451751 +vt 0.684381 0.451751 +vt 0.674870 0.451879 +vt 0.674998 0.451751 +vt 0.712664 0.440436 +vt 0.706407 0.436111 +vt 0.684381 0.440436 +vt 0.722175 0.419256 +vt 0.722047 0.430407 +vt 0.674870 0.419256 +vt 0.690638 0.436111 +vt 0.722047 0.451751 +vt 0.674998 0.430407 +vt 0.764126 0.541124 +vt 0.754743 0.552438 +vt 0.754743 0.531094 +vt 0.825130 0.493798 +vt 0.820258 0.483768 +vt 0.825130 0.483768 +vt 0.825130 0.505113 +vt 0.820258 0.493798 +vt 0.764817 0.561821 +vt 0.759944 0.552438 +vt 0.764817 0.552438 +vt 0.773509 0.542409 +vt 0.764126 0.531094 +vt 0.773509 0.531094 +vt 0.814806 0.546186 +vt 0.819678 0.556215 +vt 0.814806 0.556215 +vt 0.819678 0.567530 +vt 0.814806 0.567530 +vt 0.812468 0.419256 +vt 0.817341 0.428638 +vt 0.812468 0.428638 +vt 0.063094 0.515811 +vt 0.151233 0.672568 +vt 0.157843 0.672568 +vt 0.082432 0.520746 +vt 0.274107 0.565673 +vt 0.082432 0.544778 +vt 0.154969 0.676206 +vt 0.157843 0.676206 +vt 0.133357 0.644951 +vt 0.147801 0.638926 +vt 0.147801 0.644951 +vt 0.140007 0.644951 +vt 0.136231 0.620296 +vt 0.133357 0.620296 +vt 0.157388 0.644951 +vt 0.151942 0.644951 +vt 0.107088 0.632696 +vt 0.125673 0.619135 +vt 0.131119 0.619135 +vt 0.125673 0.625161 +vt 0.131119 0.643791 +vt 0.109962 0.643791 +vt 0.107088 0.643791 +vt 0.121532 0.619135 +vt 0.076295 0.671519 +vt 0.226472 0.688984 +vt 0.181848 0.639683 +vt 0.083847 0.530254 +vt 0.082432 0.530254 +vt 0.082432 0.522461 +vt 0.107088 0.522461 +vt 0.107088 0.530254 +vt 0.105673 0.530254 +vt 0.105673 0.534395 +vt 0.101218 0.534395 +vt 0.088302 0.530254 +vt 0.107088 0.534395 +vt 0.107088 0.539842 +vt 0.082432 0.539842 +vt 0.082432 0.534395 +vt 0.083847 0.534395 +vt 0.271087 0.565673 +vt 0.101770 0.544778 +vt 0.133181 0.542226 +vt 0.132534 0.640066 +vt 0.279450 0.607848 +vt 0.255609 0.609307 +vt 0.092911 0.683571 +vt 0.277746 0.485497 +vt 0.770512 0.515326 +vt 0.722175 0.436111 +vt 0.830449 0.798216 +vt 0.690638 0.419256 +vt 0.723122 0.533728 +vt 0.764126 0.552438 +vt 0.820258 0.505113 +vt 0.759944 0.561821 +vt 0.817341 0.419256 +s 0 +f 194/430/95 195/431/95 196/432/95 +f 197/433/96 194/434/96 196/435/96 +f 197/436/97 198/437/97 199/438/97 +f 196/439/98 195/440/98 200/441/98 +f 199/442/99 198/443/99 201/444/99 +f 194/430/95 202/445/95 195/431/95 +f 197/433/96 199/446/96 194/434/96 +f 197/436/97 203/447/97 198/437/97 +f 200/441/98 203/448/98 197/442/98 +f 197/442/98 196/439/98 200/441/98 +f 201/444/99 202/449/99 194/439/99 +f 194/439/99 199/442/99 201/444/99 +s 1 +f 204/450/100 205/451/100 206/452/100 +f 207/453/96 208/454/96 209/455/96 +f 210/456/100 211/457/100 204/450/100 +f 212/458/95 213/459/95 214/460/95 +f 215/461/100 214/462/100 210/456/100 +f 216/463/98 217/464/98 218/465/98 +f 219/466/98 208/467/98 220/468/98 +f 221/469/99 222/470/99 223/471/99 +f 224/472/99 225/473/99 226/474/99 +f 227/475/95 228/431/95 217/476/95 +f 216/477/96 222/478/96 227/479/96 +f 229/480/101 204/481/101 211/482/101 +f 220/483/102 230/484/102 231/485/102 +f 221/486/100 224/487/100 209/488/100 +f 208/467/103 216/463/104 218/465/105 +f 224/472/106 223/471/107 225/473/108 +f 198/489/96 203/490/96 223/491/96 +f 195/492/96 202/493/96 230/494/96 +f 232/495/97 233/496/97 234/497/97 +f 230/494/96 234/498/96 235/499/96 +f 206/500/98 232/501/98 230/502/98 +f 235/502/99 233/503/99 204/504/99 +f 219/505/95 236/506/95 237/507/95 +f 238/508/96 219/509/96 237/510/96 +f 239/511/97 240/512/97 238/513/97 +f 238/514/98 236/515/98 239/516/98 +f 241/517/95 242/518/95 243/519/95 +f 244/520/96 243/509/96 226/521/96 +f 245/522/97 244/517/97 226/519/97 +f 241/523/99 246/524/99 247/525/99 +f 248/526/96 249/527/96 250/528/96 +f 251/529/97 252/530/97 249/531/97 +f 253/532/109 254/533/109 252/534/109 +f 255/535/95 250/536/95 254/537/95 +f 256/538/95 257/539/95 258/540/95 +f 259/541/95 260/542/95 261/543/95 +f 262/544/99 250/529/99 249/537/99 +f 263/545/98 248/546/98 261/547/98 +f 264/548/99 249/537/99 252/549/99 +f 265/550/98 251/535/98 263/545/98 +f 264/548/99 254/551/99 258/552/99 +f 265/550/98 255/553/98 253/554/98 +f 258/552/99 250/529/99 256/555/99 +f 259/556/98 248/546/98 255/553/98 +f 266/557/98 260/558/98 267/559/98 +f 265/560/109 267/561/109 259/562/109 +f 263/563/97 266/564/97 265/560/97 +f 261/565/96 268/566/96 263/567/96 +f 269/568/99 270/569/99 271/570/99 +f 258/571/109 269/572/109 264/573/109 +f 264/573/97 271/574/97 262/575/97 +f 262/576/96 270/577/96 256/578/96 +f 204/450/100 233/579/100 205/451/100 +f 209/455/96 224/580/96 213/581/96 +f 213/581/96 207/453/96 209/455/96 +f 204/450/100 206/452/100 210/456/100 +f 206/452/100 220/582/100 215/461/100 +f 210/456/100 206/452/100 215/461/100 +f 212/458/95 207/583/95 213/459/95 +f 215/461/100 212/584/100 214/462/100 +f 224/580/96 213/581/96 221/585/96 +f 213/581/96 228/586/96 221/585/96 +f 216/463/98 227/587/98 217/464/98 +f 240/588/98 272/589/98 273/590/98 +f 208/467/98 207/464/98 215/591/98 +f 207/464/98 212/592/98 215/591/98 +f 240/588/98 273/590/98 208/467/98 +f 231/593/98 274/594/98 219/466/98 +f 219/466/98 240/588/98 208/467/98 +f 215/591/98 220/468/98 208/467/98 +f 220/468/98 231/593/98 219/466/98 +f 221/469/99 228/595/99 222/470/99 +f 242/596/99 229/597/99 243/598/99 +f 229/597/99 211/599/99 243/598/99 +f 210/600/99 214/601/99 213/595/99 +f 225/473/99 245/602/99 226/474/99 +f 226/474/99 243/598/99 224/472/99 +f 243/598/99 211/599/99 224/472/99 +f 211/599/99 210/600/99 224/472/99 +f 210/600/99 213/595/99 224/472/99 +f 227/475/95 222/603/95 228/431/95 +f 216/477/96 223/491/96 222/478/96 +f 229/480/101 235/604/101 204/481/101 +f 220/483/102 206/605/102 230/484/102 +f 208/467/110 273/590/111 216/463/111 +f 224/472/106 221/469/112 223/471/107 +f 246/606/96 245/607/96 225/608/96 +f 225/608/96 223/491/96 203/490/96 +f 223/491/96 216/477/96 198/489/96 +f 216/477/96 273/609/96 198/489/96 +f 273/609/96 272/610/96 239/611/96 +f 239/611/96 236/612/96 201/613/96 +f 273/609/96 239/611/96 198/489/96 +f 200/614/96 246/606/96 203/490/96 +f 246/606/96 225/608/96 203/490/96 +f 239/611/96 201/613/96 198/489/96 +f 236/612/96 274/615/96 231/616/96 +f 231/616/96 230/494/96 202/493/96 +f 230/494/96 235/499/96 195/492/96 +f 235/499/96 229/617/96 195/492/96 +f 229/617/96 242/618/96 247/619/96 +f 247/619/96 246/606/96 200/614/96 +f 229/617/96 247/619/96 195/492/96 +f 201/613/96 236/612/96 202/493/96 +f 236/612/96 231/616/96 202/493/96 +f 247/619/96 200/614/96 195/492/96 +f 232/495/97 205/620/97 233/496/97 +f 230/494/96 232/621/96 234/498/96 +f 206/500/98 205/622/98 232/501/98 +f 235/502/99 234/501/99 233/503/99 +f 219/505/95 274/623/95 236/506/95 +f 238/508/96 240/521/96 219/509/96 +f 239/511/97 272/624/97 240/512/97 +f 238/514/98 237/511/98 236/515/98 +f 241/517/95 247/432/95 242/518/95 +f 244/520/96 241/625/96 243/509/96 +f 245/522/97 246/626/97 244/517/97 +f 241/523/99 244/627/99 246/524/99 +f 248/526/96 251/628/96 249/527/96 +f 251/529/97 253/629/97 252/530/97 +f 253/532/109 255/630/109 254/533/109 +f 255/535/95 248/631/95 250/536/95 +f 256/538/95 270/632/95 257/539/95 +f 259/541/95 267/574/95 260/542/95 +f 262/544/99 256/555/99 250/529/99 +f 263/545/98 251/535/98 248/546/98 +f 264/548/99 262/544/99 249/537/99 +f 265/550/98 253/554/98 251/535/98 +f 264/548/99 252/549/99 254/551/99 +f 265/550/98 259/556/98 255/553/98 +f 258/552/99 254/551/99 250/529/99 +f 259/556/98 261/547/98 248/546/98 +f 266/557/98 268/633/98 260/558/98 +f 265/560/109 266/564/109 267/561/109 +f 263/563/97 268/634/97 266/564/97 +f 261/565/96 260/635/96 268/566/96 +f 269/568/99 257/633/99 270/569/99 +f 258/571/109 257/542/109 269/572/109 +f 264/573/97 269/572/97 271/574/97 +f 262/576/96 271/636/96 270/577/96 +o Grip +v -0.033307 -0.011380 -0.474134 +v 0.033307 -0.011380 -0.632792 +v 0.033307 -0.011380 -0.474134 +v -0.033307 -0.016443 -0.474134 +v 0.033307 -0.016443 -0.632792 +v 0.033307 -0.016443 -0.474134 +v -0.033307 -0.011380 -0.632792 +v -0.033307 -0.016443 -0.632792 +v -0.026880 0.073120 -0.633548 +v 0.026880 0.126881 -0.633548 +v 0.026880 0.073120 -0.633548 +v -0.026880 0.126881 -0.633548 +v 0.026880 0.126881 -0.579787 +v -0.026880 0.126881 -0.579787 +v 0.026880 0.073120 -0.579787 +v -0.026880 0.073120 -0.579787 +v -0.020194 0.004606 -0.633728 +v 0.020194 0.052061 -0.633728 +v 0.020194 0.004606 -0.633728 +v -0.020194 0.052061 -0.633728 +v 0.020194 0.052061 -0.586274 +v -0.020194 0.052061 -0.586274 +v 0.020194 0.004606 -0.586274 +v -0.020194 0.004606 -0.586274 +v -0.002511 0.083278 -0.632597 +v 0.002510 0.083278 -0.634072 +v 0.002510 0.083278 -0.632597 +v 0.012559 0.087441 -0.632597 +v 0.016722 0.097490 -0.632597 +v 0.012559 0.112560 -0.632597 +v -0.016722 0.102511 -0.634072 +v -0.016722 0.097490 -0.632597 +v -0.016722 0.102511 -0.632597 +v 0.012559 0.112560 -0.634072 +v 0.016722 0.102511 -0.634072 +v 0.012559 0.087441 -0.634072 +v -0.002511 0.116722 -0.634072 +v 0.002510 0.116722 -0.632597 +v 0.002510 0.116722 -0.634072 +v 0.016722 0.102511 -0.632597 +v -0.012560 0.112560 -0.634072 +v -0.012560 0.112560 -0.632597 +v 0.016722 0.097490 -0.634072 +v -0.016722 0.097490 -0.634072 +v -0.012560 0.087441 -0.632597 +v -0.012560 0.087441 -0.634072 +v -0.002511 0.083278 -0.634072 +v -0.002511 0.116722 -0.632597 +v -0.047693 0.135679 -0.632792 +v 0.047693 0.135679 -0.407453 +v 0.047693 0.135679 -0.632792 +v -0.040849 0.056769 -0.369114 +v -0.044958 0.051103 -0.369114 +v -0.047693 -0.016443 -0.369114 +v 0.044958 0.068134 -0.632792 +v 0.040492 0.061975 -0.632792 +v -0.047693 -0.006900 -0.435033 +v -0.047693 -0.025985 -0.435033 +v 0.047693 0.068134 -0.632792 +v -0.047693 0.135679 -0.407453 +v -0.047693 0.068134 -0.632792 +v -0.047693 0.068134 -0.374636 +v -0.040492 0.061975 -0.371643 +v -0.040492 0.057261 -0.369353 +v 0.040492 0.057261 -0.369353 +v -0.044958 0.068134 -0.632792 +v -0.040492 0.061975 -0.632792 +v -0.044958 0.068134 -0.374636 +v -0.040492 0.057261 -0.632792 +v 0.044958 0.068134 -0.374636 +v 0.047693 0.068134 -0.374636 +v -0.044958 0.051103 -0.632792 +v -0.047693 0.051103 -0.369114 +v 0.044958 0.051103 -0.632792 +v 0.044958 0.051103 -0.369114 +v 0.040492 0.061975 -0.371643 +v 0.040492 0.057261 -0.632792 +v 0.047693 0.051103 -0.369114 +v 0.047693 -0.016443 -0.369114 +v 0.047693 -0.006900 -0.435033 +v -0.041661 -0.033109 -0.369114 +v 0.041661 -0.033109 -0.435033 +v 0.041661 -0.033109 -0.369114 +v 0.047693 0.051103 -0.632792 +v 0.041710 -0.016443 -0.435033 +v 0.047693 -0.025985 -0.435033 +v -0.041710 -0.016443 -0.435033 +v 0.041710 -0.016443 -0.632792 +v 0.047693 -0.006900 -0.632792 +v -0.047693 -0.006900 -0.632792 +v -0.041710 -0.016443 -0.632792 +v -0.047693 -0.023489 -0.369114 +v -0.041661 -0.033109 -0.435033 +v 0.040849 0.056769 -0.369114 +v -0.047693 0.051103 -0.632792 +v 0.047693 -0.023489 -0.369114 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.0000 0.1390 0.9903 +vn -0.0000 0.4370 0.8995 +vn -0.0000 0.4370 0.8994 +vn -0.0000 0.4371 0.8994 +vn -0.8096 -0.5870 -0.0000 +vn -0.8096 0.5870 -0.0000 +vn -0.8096 0.5870 0.0001 +vn 0.8096 0.5870 -0.0000 +vn 0.8096 -0.5870 -0.0000 +vn 0.8472 -0.5312 -0.0000 +vn -0.8472 -0.5312 -0.0000 +vn -0.8403 -0.5419 0.0183 +vn -0.7729 -0.6345 0.0022 +vn -0.7632 -0.6462 -0.0000 +vn 0.7729 -0.6345 0.0022 +vn 0.8403 -0.5419 0.0183 +vn 0.7632 -0.6462 -0.0000 +vn -0.0000 0.1391 0.9903 +vn 0.8096 0.5870 0.0001 +vn -0.8471 -0.5311 0.0201 +vn 0.8471 -0.5311 0.0201 +vt 0.497093 0.546556 +vt 0.489787 0.555589 +vt 0.489787 0.546505 +vt 0.558621 0.611549 +vt 0.559091 0.621426 +vt 0.558621 0.621426 +vt 0.489470 0.555592 +vt 0.489470 0.546508 +vt 0.469847 0.629818 +vt 0.469377 0.638902 +vt 0.469377 0.629818 +vt 0.840276 0.397745 +vt 0.812280 0.369750 +vt 0.840276 0.369750 +vt 0.672301 0.547852 +vt 0.644305 0.519856 +vt 0.672301 0.519856 +vt 0.758120 0.546311 +vt 0.730125 0.518315 +vt 0.758120 0.518315 +vt 0.728292 0.544994 +vt 0.700297 0.516998 +vt 0.728292 0.516998 +vt 0.786116 0.512334 +vt 0.758120 0.540329 +vt 0.758120 0.512334 +vt 0.814112 0.512322 +vt 0.786116 0.540318 +vt 0.786116 0.512322 +vt 0.903571 0.559623 +vt 0.865925 0.521977 +vt 0.903571 0.521977 +vt 0.903571 0.521927 +vt 0.865925 0.484281 +vt 0.903571 0.484281 +vt 0.941217 0.559573 +vt 0.941217 0.521927 +vt 0.901107 0.443199 +vt 0.863461 0.405553 +vt 0.901107 0.405553 +vt 0.901107 0.367907 +vt 0.863461 0.367907 +vt 0.712878 0.532108 +vt 0.675232 0.569754 +vt 0.675232 0.532108 +vt 0.894503 0.935849 +vt 0.896659 0.921485 +vt 0.896659 0.935849 +vt 0.962007 0.841270 +vt 0.962007 0.836599 +vt 0.966136 0.831303 +vt 0.911963 0.936525 +vt 0.909807 0.922161 +vt 0.911963 0.922161 +vt 0.962007 0.827174 +vt 0.962007 0.822503 +vt 0.966136 0.817207 +vt 0.924171 0.933456 +vt 0.926328 0.919092 +vt 0.926328 0.933456 +vt 0.867931 0.923275 +vt 0.872247 0.937640 +vt 0.867931 0.937640 +vt 0.930644 0.933456 +vt 0.930644 0.919092 +vt 0.916280 0.936525 +vt 0.919855 0.919092 +vt 0.919855 0.933456 +vt 0.865775 0.937640 +vt 0.861459 0.923275 +vt 0.865775 0.923275 +vt 0.900975 0.935849 +vt 0.900975 0.921485 +vt 0.909807 0.936525 +vt 0.905491 0.922161 +vt 0.890187 0.921485 +vt 0.890187 0.935849 +vt 0.497093 0.555641 +vt 0.559091 0.611549 +vt 0.469847 0.638902 +vt 0.812280 0.397745 +vt 0.644305 0.547852 +vt 0.730125 0.546311 +vt 0.700297 0.544994 +vt 0.786116 0.540329 +vt 0.814112 0.540318 +vt 0.865925 0.559623 +vt 0.865925 0.521927 +vt 0.903571 0.559573 +vt 0.863461 0.443199 +vt 0.712878 0.569754 +vt 0.894503 0.921485 +vt 0.962833 0.834606 +vt 0.970808 0.831303 +vt 0.965311 0.844574 +vt 0.972800 0.832128 +vt 0.976103 0.835432 +vt 0.971975 0.845399 +vt 0.976103 0.840103 +vt 0.975278 0.842096 +vt 0.967303 0.845399 +vt 0.962833 0.820510 +vt 0.970808 0.817207 +vt 0.965311 0.830478 +vt 0.972800 0.818032 +vt 0.976103 0.821336 +vt 0.971975 0.831303 +vt 0.976103 0.826007 +vt 0.975278 0.828000 +vt 0.967303 0.831303 +vt 0.924171 0.919092 +vt 0.872247 0.923275 +vt 0.916280 0.922161 +vt 0.861459 0.937640 +vt 0.905491 0.936525 +vt 0.572622 0.567859 +vt 0.583320 0.554957 +vt 0.583320 0.567859 +vt 0.488526 0.563967 +vt 0.487917 0.563443 +vt 0.487511 0.557192 +vt 0.479648 0.573331 +vt 0.480220 0.573993 +vt 0.473368 0.572925 +vt 0.498951 0.544326 +vt 0.497757 0.544336 +vt 0.498354 0.540557 +vt 0.480222 0.617553 +vt 0.486502 0.630456 +vt 0.480222 0.630456 +vt 0.530689 0.627844 +vt 0.526463 0.640782 +vt 0.526463 0.626001 +vt 0.488579 0.564463 +vt 0.488579 0.564014 +vt 0.500587 0.564014 +vt 0.526163 0.640780 +vt 0.525288 0.640780 +vt 0.526163 0.625999 +vt 0.591673 0.554640 +vt 0.590868 0.554640 +vt 0.590798 0.554627 +vt 0.524993 0.640782 +vt 0.525288 0.625827 +vt 0.592139 0.596801 +vt 0.591839 0.611580 +vt 0.591839 0.596799 +vt 0.591673 0.539543 +vt 0.591980 0.554640 +vt 0.590256 0.596799 +vt 0.590828 0.611883 +vt 0.590256 0.611897 +vt 0.591267 0.596799 +vt 0.591267 0.611752 +vt 0.590828 0.596799 +vt 0.584740 0.640183 +vt 0.578460 0.640183 +vt 0.579347 0.636409 +vt 0.496650 0.540561 +vt 0.487511 0.544271 +vt 0.487511 0.540497 +vt 0.502261 0.608318 +vt 0.502568 0.593221 +vt 0.502568 0.608318 +vt 0.496363 0.628942 +vt 0.495475 0.628055 +vt 0.497250 0.628055 +vt 0.495475 0.642198 +vt 0.496363 0.641311 +vt 0.497250 0.642198 +vt 0.578460 0.625086 +vt 0.579347 0.625086 +vt 0.497698 0.544327 +vt 0.498951 0.555649 +vt 0.497698 0.555650 +vt 0.488549 0.544262 +vt 0.487511 0.556540 +vt 0.488406 0.555650 +vt 0.496650 0.544336 +vt 0.577573 0.636409 +vt 0.576911 0.640183 +vt 0.576911 0.636409 +vt 0.497912 0.628949 +vt 0.497912 0.641304 +vt 0.572622 0.554957 +vt 0.487511 0.563443 +vt 0.501655 0.557192 +vt 0.500640 0.563967 +vt 0.501655 0.563443 +vt 0.501249 0.563443 +vt 0.487511 0.584936 +vt 0.487511 0.586181 +vt 0.487041 0.584936 +vt 0.486624 0.587069 +vt 0.481231 0.587069 +vt 0.481231 0.586663 +vt 0.480659 0.586001 +vt 0.487511 0.573812 +vt 0.487511 0.575058 +vt 0.487041 0.575058 +vt 0.486624 0.572925 +vt 0.481231 0.573331 +vt 0.481231 0.572925 +vt 0.480659 0.573993 +vt 0.480220 0.586001 +vt 0.479648 0.586663 +vt 0.479648 0.587069 +vt 0.473368 0.587069 +vt 0.479648 0.572925 +vt 0.497913 0.540561 +vt 0.502580 0.540521 +vt 0.502580 0.555618 +vt 0.486502 0.615674 +vt 0.530689 0.640746 +vt 0.501655 0.565049 +vt 0.501655 0.571481 +vt 0.501249 0.565049 +vt 0.487511 0.571481 +vt 0.500587 0.564463 +vt 0.487511 0.565049 +vt 0.487917 0.565049 +vt 0.590798 0.539543 +vt 0.524993 0.625699 +vt 0.592139 0.611582 +vt 0.591980 0.539543 +vt 0.590783 0.611897 +vt 0.584740 0.625086 +vt 0.577805 0.640183 +vt 0.502261 0.593221 +vt 0.578460 0.636409 +vt 0.488549 0.555585 +vt 0.496776 0.546559 +vt 0.496776 0.555643 +vt 0.500760 0.555650 +vt 0.501655 0.556540 +s 0 +f 275/637/113 276/638/113 277/639/113 +f 277/640/114 278/641/114 275/642/114 +f 277/639/115 279/643/115 280/644/115 +f 281/645/116 278/646/116 282/647/116 +f 283/648/114 284/649/114 285/650/114 +f 286/651/117 287/652/117 284/653/117 +f 288/654/118 289/655/118 287/656/118 +f 290/657/113 285/658/113 289/659/113 +f 287/660/116 285/661/116 284/662/116 +f 286/663/115 290/664/115 288/665/115 +f 291/666/114 292/667/114 293/668/114 +f 294/669/117 295/670/117 292/671/117 +f 296/672/118 297/669/118 295/673/118 +f 298/674/113 293/675/113 297/676/113 +f 295/677/116 293/675/116 292/678/116 +f 294/679/115 298/680/115 296/681/115 +f 299/682/113 300/683/113 301/684/113 +f 302/685/118 303/686/118 304/687/118 +f 305/688/115 306/689/115 307/690/115 +f 308/691/114 309/692/114 310/693/114 +f 311/694/117 312/695/117 313/696/117 +f 309/697/119 304/698/119 314/699/119 +f 308/700/120 312/695/120 304/701/120 +f 307/690/121 315/702/121 305/688/121 +f 316/703/122 311/694/122 315/704/122 +f 303/705/123 310/706/123 317/707/123 +f 302/708/124 300/683/124 310/709/124 +f 318/710/125 319/711/125 306/689/125 +f 320/712/126 299/682/126 319/713/126 +f 314/699/116 317/707/116 309/697/116 +f 275/637/113 281/714/113 276/638/113 +f 277/640/114 280/715/114 278/641/114 +f 277/639/115 276/638/115 279/643/115 +f 281/645/116 275/716/116 278/646/116 +f 283/648/114 286/717/114 284/649/114 +f 286/651/117 288/718/117 287/652/117 +f 288/654/118 290/719/118 289/655/118 +f 290/657/113 283/720/113 285/658/113 +f 287/660/116 289/721/116 285/661/116 +f 286/663/115 283/722/115 290/664/115 +f 291/666/114 294/723/114 292/667/114 +f 294/669/117 296/724/117 295/670/117 +f 296/672/118 298/725/118 297/669/118 +f 298/674/113 291/726/113 293/675/113 +f 295/677/116 297/676/116 293/675/116 +f 294/679/115 291/727/115 298/680/115 +f 299/682/113 321/728/113 300/683/113 +f 303/686/118 314/729/118 304/687/118 +f 304/687/118 312/730/118 301/731/118 +f 312/730/118 322/732/118 301/731/118 +f 322/732/118 316/733/118 319/734/118 +f 316/733/118 307/735/118 319/734/118 +f 307/735/118 306/736/118 319/734/118 +f 319/734/118 299/737/118 322/732/118 +f 299/737/118 301/731/118 322/732/118 +f 301/731/118 302/685/118 304/687/118 +f 305/688/115 318/710/115 306/689/115 +f 309/692/114 317/738/114 310/693/114 +f 310/693/114 300/739/114 313/740/114 +f 300/739/114 321/741/114 313/740/114 +f 321/741/114 320/742/114 315/743/114 +f 320/742/114 318/744/114 315/743/114 +f 318/744/114 305/745/114 315/743/114 +f 315/743/114 311/746/114 321/741/114 +f 311/746/114 313/740/114 321/741/114 +f 313/740/114 308/691/114 310/693/114 +f 311/694/117 322/747/117 312/695/117 +f 309/697/119 308/748/119 304/698/119 +f 308/700/120 313/696/120 312/695/120 +f 307/690/121 316/749/121 315/702/121 +f 316/703/122 322/747/122 311/694/122 +f 303/705/123 302/750/123 310/706/123 +f 302/708/124 301/684/124 300/683/124 +f 318/710/125 320/751/125 319/711/125 +f 320/712/126 321/728/126 299/682/126 +f 314/699/116 303/705/116 317/707/116 +s 1 +f 323/752/117 324/753/117 325/754/117 +f 326/755/127 327/756/118 328/757/118 +f 329/758/114 330/759/114 325/760/114 +f 331/761/115 332/762/115 328/763/115 +f 324/764/116 333/765/116 325/766/116 +f 334/767/115 335/768/115 336/769/115 +f 337/770/128 338/771/129 339/772/130 +f 340/773/113 336/769/113 335/768/113 +f 341/774/131 342/775/131 340/773/131 +f 327/776/132 326/777/133 338/778/132 +f 343/779/115 337/780/115 341/774/115 +f 344/781/113 333/782/113 345/783/113 +f 346/784/117 347/785/117 327/776/117 +f 348/786/134 339/787/134 349/788/134 +f 330/789/135 344/782/135 350/790/135 +f 351/791/116 350/790/116 339/787/116 +f 352/792/116 353/793/116 354/794/116 +f 355/795/113 356/796/113 357/797/113 +f 348/798/117 352/799/117 358/800/117 +f 359/801/114 354/802/114 360/803/114 +f 331/804/114 361/805/114 332/806/114 +f 354/794/136 362/807/136 363/808/136 +f 361/809/137 364/810/137 365/811/137 +f 359/812/113 361/809/113 280/644/113 +f 328/757/118 366/813/118 355/814/118 +f 355/795/138 332/762/139 367/815/140 +f 360/816/141 357/817/142 356/818/143 +f 356/819/114 367/820/114 359/801/114 +f 323/752/117 334/821/117 324/753/117 +f 327/756/118 347/822/118 328/757/118 +f 328/757/118 353/823/118 368/824/144 +f 353/823/118 352/825/118 349/826/118 +f 349/826/118 368/824/144 353/823/118 +f 368/824/144 326/755/127 328/757/118 +f 282/827/114 365/828/114 281/829/114 +f 365/828/114 364/830/114 281/829/114 +f 364/830/114 369/831/114 346/832/114 +f 364/830/114 346/832/114 281/829/114 +f 346/832/114 343/833/114 281/829/114 +f 362/834/114 279/835/114 276/836/114 +f 276/836/114 281/829/114 343/833/114 +f 363/837/114 362/834/114 276/836/114 +f 348/838/114 358/839/114 363/837/114 +f 351/840/114 348/838/114 276/836/114 +f 348/838/114 363/837/114 276/836/114 +f 276/836/114 343/833/114 351/840/114 +f 343/833/114 341/841/114 351/840/114 +f 340/842/114 335/843/114 323/844/114 +f 351/840/114 341/841/114 330/759/114 +f 341/841/114 340/842/114 323/844/114 +f 330/759/114 341/841/114 323/844/114 +f 323/844/114 325/760/114 330/759/114 +f 325/760/114 333/845/114 329/758/114 +f 332/762/115 366/846/115 328/763/115 +f 328/763/115 347/847/115 331/761/115 +f 347/847/115 369/848/115 331/761/115 +f 369/848/115 364/810/115 331/761/115 +f 324/764/116 345/849/116 333/765/116 +f 334/767/115 323/850/115 335/768/115 +f 345/851/128 324/852/128 344/853/128 +f 324/852/128 334/854/128 350/855/128 +f 344/853/128 324/852/128 350/855/128 +f 334/854/128 336/856/128 342/857/128 +f 334/854/128 342/857/128 337/770/128 +f 350/855/128 334/854/128 337/770/128 +f 326/755/127 368/824/144 339/772/130 +f 339/772/130 350/855/128 337/770/128 +f 338/771/129 326/755/127 339/772/130 +f 340/773/113 342/775/113 336/769/113 +f 341/774/131 337/780/131 342/775/131 +f 343/858/132 346/784/132 338/778/132 +f 346/784/132 327/776/132 338/778/132 +f 343/779/115 338/859/115 337/780/115 +f 344/781/113 329/860/113 333/782/113 +f 346/784/117 369/861/117 347/785/117 +f 351/791/134 339/787/134 348/786/134 +f 339/787/134 368/862/145 349/788/134 +f 330/789/135 329/783/135 344/782/135 +f 351/791/116 330/789/116 350/790/116 +f 363/808/116 358/863/116 354/794/116 +f 358/863/116 352/792/116 354/794/116 +f 353/793/116 370/864/116 360/816/116 +f 353/793/116 360/816/116 354/794/116 +f 355/795/113 367/815/113 356/796/113 +f 348/798/117 349/865/117 352/799/117 +f 354/794/136 359/866/136 362/807/136 +f 361/809/137 331/761/137 364/810/137 +f 280/644/113 279/643/113 362/867/113 +f 361/809/113 365/811/113 278/868/113 +f 365/811/113 282/869/113 278/868/113 +f 280/644/113 362/867/113 359/812/113 +f 361/809/113 278/868/113 280/644/113 +f 355/814/118 357/870/118 353/823/118 +f 357/870/118 370/871/118 353/823/118 +f 353/823/118 328/757/118 355/814/118 +f 355/795/138 366/846/146 332/762/139 +f 360/816/141 370/864/147 357/817/142 +f 332/806/114 361/805/114 367/820/114 +f 361/805/114 359/801/114 367/820/114 +f 359/801/114 360/803/114 356/819/114 +o Trigger +v -0.014593 0.047591 -0.195822 +v 0.014593 0.085742 -0.195822 +v 0.014593 0.047591 -0.195822 +v -0.014593 0.085742 -0.195822 +v 0.014593 0.123894 -0.205822 +v 0.019590 0.044652 -0.185835 +v 0.019590 0.088443 -0.185835 +v 0.019590 0.009440 -0.127512 +v -0.019590 0.123894 -0.195127 +v -0.019590 0.123894 -0.127512 +v 0.019590 0.123894 -0.127512 +v -0.019590 0.088443 -0.185835 +v -0.019590 0.044652 -0.185835 +v -0.019590 0.009440 -0.127512 +v -0.014593 0.012773 -0.205822 +v 0.014593 0.012773 -0.205822 +v 0.019590 0.012318 -0.195121 +v 0.019590 0.123894 -0.195127 +v -0.019590 0.012318 -0.195121 +v -0.014593 0.123894 -0.205822 +vn -0.0000 0.1394 -0.9902 +vn -0.0000 -0.1278 -0.9918 +vn -0.0000 -0.2536 -0.9673 +vn 0.9788 0.0306 -0.2023 +vn 0.9783 -0.0283 -0.2051 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.9783 -0.0283 -0.2051 +vn -0.9788 0.0306 -0.2023 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.9991 -0.0425 +vn 0.9672 0.0701 -0.2440 +vn 0.8994 0.0552 -0.4337 +vn -0.9662 -0.0654 -0.2494 +vn -0.8986 -0.0512 -0.4357 +vn 0.9662 -0.0654 -0.2494 +vn 0.8986 -0.0512 -0.4357 +vn 0.9005 -0.1103 -0.4207 +vn -0.9672 0.0701 -0.2440 +vn -0.8994 0.0552 -0.4337 +vn -0.9015 0.1195 -0.4159 +vn -0.0000 0.2760 -0.9611 +vn 0.9015 0.1195 -0.4159 +vn -0.9005 -0.1103 -0.4207 +vt 0.390067 0.372535 +vt 0.406128 0.365349 +vt 0.406128 0.372535 +vt 0.390067 0.365349 +vt 0.406128 0.358191 +vt 0.790352 0.332178 +vt 0.790352 0.323929 +vt 0.806409 0.338811 +vt 0.698608 0.414236 +vt 0.698608 0.432852 +vt 0.677048 0.432852 +vt 0.770203 0.441932 +vt 0.770203 0.433683 +vt 0.786260 0.427050 +vt 0.743140 0.410105 +vt 0.721579 0.388545 +vt 0.743140 0.388545 +vt 0.745889 0.383929 +vt 0.761950 0.383929 +vt 0.764700 0.386876 +vt 0.350295 0.400769 +vt 0.350102 0.394125 +vt 0.352852 0.394678 +vt 0.330144 0.511110 +vt 0.329953 0.503923 +vt 0.332703 0.504432 +vt 0.350294 0.379751 +vt 0.350102 0.386938 +vt 0.347349 0.379751 +vt 0.352852 0.386429 +vt 0.330146 0.490092 +vt 0.329953 0.496736 +vt 0.327200 0.490178 +vt 0.332703 0.496183 +vt 0.390067 0.379122 +vt 0.406128 0.379122 +vt 0.390067 0.358191 +vt 0.787794 0.317251 +vt 0.806409 0.317251 +vt 0.787795 0.338269 +vt 0.677048 0.414236 +vt 0.679797 0.411291 +vt 0.695858 0.411291 +vt 0.786260 0.448610 +vt 0.767644 0.448610 +vt 0.767646 0.427592 +vt 0.721579 0.410105 +vt 0.764700 0.405498 +vt 0.743140 0.405498 +vt 0.743140 0.386876 +vt 0.347349 0.400683 +vt 0.327200 0.511110 +s 1 +f 371/872/148 372/873/149 373/874/148 +f 374/875/149 375/876/150 372/873/149 +f 376/877/151 377/878/152 378/879/153 +f 379/880/154 380/881/154 381/882/154 +f 382/883/155 383/884/156 384/885/157 +f 380/886/158 378/887/158 381/888/158 +f 385/889/159 386/890/159 387/891/159 +f 387/892/160 373/893/161 376/894/151 +f 379/895/162 374/896/163 382/897/155 +f 388/898/164 372/899/165 375/900/166 +f 377/901/152 373/893/161 372/899/165 +f 389/902/167 371/903/168 385/904/169 +f 382/897/155 371/903/168 383/905/156 +f 385/906/170 373/874/148 386/907/170 +f 371/872/148 374/875/149 372/873/149 +f 374/875/149 390/908/150 375/876/150 +f 377/878/152 388/909/164 381/910/153 +f 381/910/153 378/879/153 377/878/152 +f 378/879/153 387/911/160 376/877/151 +f 381/882/154 388/912/154 379/880/154 +f 388/912/154 375/913/154 379/880/154 +f 375/913/154 390/914/154 379/880/154 +f 384/885/157 380/915/157 382/883/155 +f 380/915/157 379/916/162 382/883/155 +f 383/884/156 389/917/167 384/885/157 +f 380/886/158 384/918/158 378/887/158 +f 387/891/159 378/919/159 384/920/159 +f 384/920/159 389/921/159 387/891/159 +f 389/921/159 385/889/159 387/891/159 +f 387/892/160 386/922/171 373/893/161 +f 379/895/162 390/923/172 374/896/163 +f 388/898/164 377/901/152 372/899/165 +f 377/901/152 376/894/151 373/893/161 +f 389/902/167 383/905/156 371/903/168 +f 382/897/155 374/896/163 371/903/168 +f 385/906/170 371/872/148 373/874/148 +o Barrel +v -0.002425 0.189787 -0.367055 +v 0.002425 0.189787 -0.633548 +v 0.002425 0.189787 -0.367055 +v -0.002425 0.243547 -0.367055 +v -0.001862 0.237302 -0.367055 +v 0.001862 0.237302 -0.367055 +v 0.001862 0.196033 -0.367055 +v -0.001862 0.196033 -0.367055 +v -0.026880 0.219092 -0.633548 +v -0.026880 0.214242 -0.367055 +v -0.026880 0.219092 -0.367055 +v 0.002425 0.243547 -0.633548 +v 0.001862 0.237302 -0.633548 +v -0.001862 0.237302 -0.633548 +v -0.002425 0.189787 -0.633548 +v -0.001862 0.196033 -0.633548 +v 0.001862 0.196033 -0.633548 +v -0.002425 0.243547 -0.633548 +v 0.002425 0.243547 -0.367055 +v 0.026880 0.219092 -0.633548 +v 0.019718 0.236385 -0.367055 +v 0.026880 0.219092 -0.367055 +v 0.019718 0.236385 -0.633548 +v -0.019718 0.236385 -0.633548 +v -0.019718 0.236385 -0.367055 +v 0.026880 0.214242 -0.367055 +v 0.019718 0.196949 -0.633548 +v 0.026880 0.214242 -0.633548 +v 0.019718 0.196949 -0.367055 +v -0.026880 0.214242 -0.633548 +v -0.019718 0.196949 -0.367055 +v -0.019718 0.196949 -0.633548 +v -0.020635 0.218529 -0.367055 +v -0.020635 0.214805 -0.633548 +v -0.020635 0.218529 -0.633548 +v 0.015136 0.231803 -0.633548 +v 0.020635 0.218529 -0.367055 +v 0.015136 0.231803 -0.367055 +v -0.015136 0.231803 -0.367055 +v -0.015136 0.231803 -0.633548 +v 0.020635 0.214805 -0.367055 +v 0.015136 0.201531 -0.633548 +v 0.015136 0.201531 -0.367055 +v -0.015136 0.201531 -0.633548 +v -0.020635 0.214805 -0.367055 +v -0.015136 0.201531 -0.367055 +v 0.020635 0.218529 -0.633548 +v 0.020635 0.214805 -0.633548 +vn -0.1951 -0.9808 -0.0000 +vn 0.1951 -0.9808 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.9808 0.1951 -0.0000 +vn -0.9808 -0.1951 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.1951 0.9808 -0.0000 +vn 0.1951 0.9808 -0.0000 +vn 0.9808 0.1951 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.9808 -0.1951 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vt 0.588344 0.422031 +vt 0.590616 0.396347 +vt 0.590616 0.422031 +vt 0.816190 0.537904 +vt 0.810508 0.548747 +vt 0.803793 0.545966 +vt 0.767283 0.631233 +vt 0.772965 0.620390 +vt 0.779680 0.623172 +vt 0.404454 0.586481 +vt 0.402136 0.560797 +vt 0.404454 0.560797 +vt 0.556937 0.482545 +vt 0.559591 0.483935 +vt 0.558910 0.485579 +vt 0.579779 0.494514 +vt 0.577125 0.493124 +vt 0.577806 0.491480 +vt 0.587488 0.577888 +vt 0.589806 0.552204 +vt 0.589806 0.577888 +vt 0.589806 0.526521 +vt 0.598067 0.552204 +vt 0.598067 0.577888 +vt 0.412715 0.586481 +vt 0.579227 0.552204 +vt 0.579227 0.577888 +vt 0.587488 0.552204 +vt 0.579227 0.526521 +vt 0.587488 0.526521 +vt 0.598051 0.422031 +vt 0.598051 0.396347 +vt 0.402136 0.586481 +vt 0.393875 0.560797 +vt 0.579574 0.396347 +vt 0.579574 0.422031 +vt 0.560711 0.557920 +vt 0.560053 0.548419 +vt 0.560711 0.548419 +vt 0.497042 0.578916 +vt 0.496384 0.569415 +vt 0.497042 0.569415 +vt 0.506272 0.569862 +vt 0.506918 0.579363 +vt 0.506272 0.579363 +vt 0.563051 0.509766 +vt 0.560705 0.500265 +vt 0.563051 0.500265 +vt 0.509408 0.569862 +vt 0.509408 0.579363 +vt 0.499388 0.578916 +vt 0.504161 0.569862 +vt 0.560047 0.500265 +vt 0.557701 0.509766 +vt 0.557701 0.500265 +vt 0.563057 0.557920 +vt 0.494038 0.569415 +vt 0.496384 0.578916 +vt 0.494038 0.578916 +vt 0.557707 0.548419 +vt 0.560053 0.557920 +vt 0.557707 0.557920 +vt 0.560705 0.509766 +vt 0.588344 0.396347 +vt 0.755915 0.565797 +vt 0.745072 0.560115 +vt 0.775747 0.545966 +vt 0.770907 0.534281 +vt 0.807442 0.534281 +vt 0.842024 0.563739 +vt 0.842024 0.600274 +vt 0.830339 0.568579 +vt 0.830339 0.596625 +vt 0.827558 0.603340 +vt 0.838401 0.609022 +vt 0.812566 0.634856 +vt 0.807726 0.623172 +vt 0.776031 0.634856 +vt 0.741449 0.605398 +vt 0.741449 0.568863 +vt 0.753133 0.600559 +vt 0.753133 0.572512 +vt 0.558910 0.492443 +vt 0.563764 0.497297 +vt 0.562373 0.499950 +vt 0.556050 0.493627 +vt 0.556050 0.484686 +vt 0.563260 0.476222 +vt 0.572202 0.476222 +vt 0.564445 0.479082 +vt 0.571309 0.479082 +vt 0.572952 0.479762 +vt 0.574343 0.477109 +vt 0.580666 0.483431 +vt 0.577806 0.484616 +vt 0.580666 0.492373 +vt 0.573456 0.500837 +vt 0.564514 0.500837 +vt 0.572271 0.497977 +vt 0.565407 0.497977 +vt 0.598067 0.526521 +vt 0.412715 0.560797 +vt 0.393875 0.586481 +vt 0.506918 0.569862 +vt 0.499388 0.569415 +vt 0.504161 0.579363 +vt 0.560047 0.509766 +vt 0.563057 0.548419 +s 1 +f 391/924/173 392/925/174 393/926/174 +f 394/927/175 395/928/175 396/929/175 +f 393/930/175 397/931/175 398/932/175 +f 399/933/176 400/934/177 401/935/176 +f 402/936/178 403/937/178 404/938/178 +f 405/939/178 406/940/178 407/941/178 +f 408/942/179 409/943/180 402/944/180 +f 410/945/181 411/946/182 412/943/181 +f 413/947/182 409/943/180 411/946/182 +f 401/935/176 414/948/183 399/933/176 +f 415/949/183 408/942/179 414/950/183 +f 416/951/184 417/952/185 418/953/184 +f 419/954/185 392/925/174 417/955/185 +f 420/956/177 421/957/186 400/934/177 +f 422/958/186 391/924/173 421/959/186 +f 412/943/181 418/953/184 410/945/181 +f 407/960/179 398/961/180 397/962/179 +f 423/963/184 424/964/181 425/965/184 +f 404/966/174 396/967/173 395/968/174 +f 426/969/186 427/970/177 428/971/186 +f 396/967/173 426/972/186 428/973/186 +f 425/965/184 429/974/185 423/963/184 +f 395/968/174 430/975/185 404/966/174 +f 431/976/176 432/977/183 433/978/183 +f 397/962/179 432/979/183 407/960/179 +f 434/980/182 435/981/181 436/982/182 +f 436/983/182 406/984/180 434/985/182 +f 437/986/177 431/976/176 427/970/177 +f 391/924/173 405/987/173 392/925/174 +f 427/988/175 412/989/175 428/990/175 +f 412/989/175 411/991/175 428/990/175 +f 411/991/175 409/992/175 428/990/175 +f 409/992/175 394/927/175 396/929/175 +f 415/993/175 401/994/175 429/995/175 +f 401/994/175 423/996/175 429/995/175 +f 396/929/175 428/990/175 409/992/175 +f 394/927/175 415/993/175 429/995/175 +f 394/927/175 429/995/175 395/928/175 +f 435/997/175 423/996/175 401/994/175 +f 401/994/175 400/998/175 435/997/175 +f 400/998/175 421/999/175 436/1000/175 +f 435/997/175 400/998/175 436/1000/175 +f 421/999/175 391/1001/175 436/1000/175 +f 391/1001/175 393/930/175 398/932/175 +f 436/1000/175 391/1001/175 398/932/175 +f 419/1002/175 416/1003/175 433/1004/175 +f 416/1003/175 412/989/175 431/1005/175 +f 433/1004/175 416/1003/175 431/1005/175 +f 412/989/175 427/988/175 431/1005/175 +f 419/1002/175 433/1004/175 393/930/175 +f 433/1004/175 397/931/175 393/930/175 +f 399/933/176 420/956/177 400/934/177 +f 430/1006/178 425/1007/178 399/1008/178 +f 414/1009/178 408/1010/178 430/1006/178 +f 408/1010/178 402/936/178 404/938/178 +f 413/1011/178 410/1012/178 426/1013/178 +f 410/1012/178 437/1014/178 426/1013/178 +f 430/1006/178 399/1008/178 414/1009/178 +f 404/938/178 430/1006/178 408/1010/178 +f 402/936/178 413/1011/178 426/1013/178 +f 402/936/178 426/1013/178 403/937/178 +f 438/1015/178 437/1014/178 410/1012/178 +f 410/1012/178 418/1016/178 438/1015/178 +f 418/1016/178 417/1017/178 432/1018/178 +f 438/1015/178 418/1016/178 432/1018/178 +f 417/1017/178 392/1019/178 432/1018/178 +f 392/1019/178 405/939/178 407/941/178 +f 432/1018/178 392/1019/178 407/941/178 +f 422/1020/178 420/1021/178 434/1022/178 +f 420/1021/178 399/1008/178 424/1023/178 +f 434/1022/178 420/1021/178 424/1023/178 +f 399/1008/178 425/1007/178 424/1023/178 +f 422/1020/178 434/1022/178 405/939/178 +f 434/1022/178 406/940/178 405/939/178 +f 408/942/179 394/951/179 409/943/180 +f 410/945/181 413/1024/182 411/946/182 +f 413/947/182 402/944/180 409/943/180 +f 401/935/176 415/1025/183 414/948/183 +f 415/949/183 394/951/179 408/942/179 +f 416/951/184 419/949/185 417/952/185 +f 419/954/185 393/926/174 392/925/174 +f 420/956/177 422/1026/186 421/957/186 +f 422/958/186 405/987/173 391/924/173 +f 412/943/181 416/951/184 418/953/184 +f 407/960/179 406/984/180 398/961/180 +f 423/963/184 435/981/181 424/964/181 +f 404/966/174 403/1027/173 396/967/173 +f 426/969/186 437/986/177 427/970/177 +f 396/967/173 403/1027/173 426/972/186 +f 425/965/184 430/1028/185 429/974/185 +f 395/968/174 429/1029/185 430/975/185 +f 431/976/176 438/1030/176 432/977/183 +f 397/962/179 433/1031/183 432/979/183 +f 434/980/182 424/964/181 435/981/181 +f 436/983/182 398/961/180 406/984/180 +f 437/986/177 438/1030/176 431/976/176 +o Magazine +v -0.042117 -0.212138 0.127708 +v -0.042117 0.131847 0.043860 +v -0.042117 -0.244139 -0.012119 +v -0.042117 0.120877 -0.098352 +v 0.041739 -0.212138 0.127708 +v 0.041739 0.131847 0.043860 +v 0.041739 -0.244139 -0.012119 +v 0.041739 0.120877 -0.098352 +v -0.042117 -0.261123 -0.008232 +v -0.042117 -0.229122 0.131595 +v 0.041739 -0.261123 -0.008232 +v 0.041739 -0.229122 0.131595 +v 0.040745 -0.245905 -0.027060 +v -0.043111 -0.245905 -0.027060 +v 0.040745 -0.258158 -0.023173 +v -0.043111 -0.258158 -0.023173 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.2299 -0.9732 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.2368 0.9716 +vn -0.0000 0.9931 -0.1174 +vn -0.0000 0.9970 -0.0769 +vn -0.0000 -0.9748 0.2231 +vn -0.0000 0.2231 0.9748 +vn -0.0000 -0.3024 -0.9532 +vn -0.0000 -0.9809 -0.1947 +vn 0.9976 -0.0178 -0.0671 +vn -0.9976 0.0178 0.0671 +vt 0.466318 0.482313 +s 0 +f 439/1032/187 440/1032/187 442/1032/187 441/1032/187 +f 441/1032/188 442/1032/188 446/1032/188 445/1032/188 +f 445/1032/189 446/1032/189 444/1032/189 443/1032/189 +f 443/1032/190 444/1032/190 440/1032/190 439/1032/190 +f 441/1032/191 445/1032/191 451/1032/191 452/1032/191 +f 446/1032/192 442/1032/192 440/1032/192 444/1032/192 +f 447/1032/193 449/1032/193 450/1032/193 448/1032/193 +f 439/1032/187 441/1032/187 447/1032/187 448/1032/187 +f 445/1032/189 443/1032/189 450/1032/189 449/1032/189 +f 443/1032/194 439/1032/194 448/1032/194 450/1032/194 +f 452/1032/195 451/1032/195 453/1032/195 454/1032/195 +f 449/1032/196 447/1032/196 454/1032/196 453/1032/196 +f 445/1032/197 449/1032/197 453/1032/197 451/1032/197 +f 447/1032/198 441/1032/198 452/1032/198 454/1032/198 diff --git a/src/main/resources/assets/hbm/models/weapons/fatman.obj b/src/main/resources/assets/hbm/models/weapons/fatman.obj new file mode 100644 index 000000000..95b03b9a9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/fatman.obj @@ -0,0 +1,3404 @@ +# Blender v2.79 (sub 0) OBJ File: 'fatman.blend' +# www.blender.org +o Piston +v 0.000000 1.187500 -5.750000 +v -0.132583 1.132582 -5.750000 +v -0.187500 1.000000 -5.750000 +v -0.132583 0.867417 -5.750000 +v 0.000000 0.812500 -5.750000 +v 0.132583 0.867417 -5.750000 +v 0.187500 1.000000 -5.750000 +v 0.132583 1.132582 -5.750000 +v 0.000000 1.187500 -2.375000 +v -0.132583 1.132582 -2.375000 +v -0.187500 1.000000 -2.375000 +v -0.132583 0.867417 -2.375000 +v 0.000000 0.812500 -2.375000 +v 0.132583 0.867417 -2.375000 +v 0.187500 1.000000 -2.375000 +v 0.132583 1.132582 -2.375000 +vt 0.728571 0.690984 +vt 0.739303 0.707865 +vt 0.728571 0.724747 +vt 0.720982 0.719802 +vt 0.717839 0.707865 +vt 0.720982 0.695928 +vt 0.736160 0.695928 +vt 0.736160 0.719802 +vt 0.932143 0.724719 +vt 0.739286 0.713483 +vt 0.932143 0.713483 +vt 0.932143 0.702247 +vt 0.739286 0.691011 +vt 0.932143 0.691011 +vt 0.932143 0.769663 +vt 0.739286 0.758427 +vt 0.932143 0.758427 +vt 0.932143 0.747191 +vt 0.739286 0.735955 +vt 0.932143 0.735955 +vt 0.739286 0.724719 +vt 0.739286 0.702247 +vt 0.932143 0.780899 +vt 0.739286 0.769663 +vt 0.739286 0.747191 +vt 0.739286 0.780899 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.7071 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 13/1/1 15/2/1 9/3/1 +f 9/3/1 10/4/1 11/5/1 +f 11/5/1 12/6/1 13/1/1 +f 13/1/1 14/7/1 15/2/1 +f 15/2/1 16/8/1 9/3/1 +f 9/3/1 11/5/1 13/1/1 +s 1 +f 8/9/2 15/10/3 7/11/3 +f 6/12/4 13/13/5 5/14/5 +f 4/15/6 11/16/7 3/17/7 +f 2/18/8 9/19/9 1/20/9 +f 1/20/9 16/21/2 8/9/2 +f 7/11/3 14/22/4 6/12/4 +f 5/23/5 12/24/6 4/15/6 +f 3/17/7 10/25/8 2/18/8 +f 8/9/2 16/21/2 15/10/3 +f 6/12/4 14/22/4 13/13/5 +f 4/15/6 12/24/6 11/16/7 +f 2/18/8 10/25/8 9/19/9 +f 1/20/9 9/19/9 16/21/2 +f 7/11/3 15/10/3 14/22/4 +f 5/23/5 13/26/5 12/24/6 +f 3/17/7 11/16/7 10/25/8 +o Handle +v -0.250000 -0.500000 7.000000 +v 0.250000 -0.500000 7.000000 +v -0.250000 -0.500000 4.000000 +v 0.250000 -0.500000 4.000000 +v -0.250000 -1.500000 6.500000 +v 0.250000 -1.500000 6.500000 +v -0.250000 -1.500000 4.000000 +v 0.250000 -1.500000 4.000000 +v 0.349112 -1.088388 4.000000 +v 0.525888 -0.911612 4.000000 +v 0.304917 -1.132583 4.125000 +v 0.570083 -0.867417 4.125000 +v 1.409772 -2.149048 5.500000 +v 1.586548 -1.972272 5.500000 +v 0.304917 -1.132583 4.375000 +v 0.570083 -0.867417 4.375000 +v 0.349112 -1.088388 4.500000 +v 0.525888 -0.911612 4.500000 +v 1.409772 -2.149048 3.750000 +v 1.586548 -1.972272 3.750000 +v 1.365578 -2.193243 3.875000 +v 1.630743 -1.928078 3.875000 +v 1.586548 -1.972272 4.375000 +v 1.409772 -2.149048 4.375000 +v 1.365578 -2.193243 4.250000 +v 1.630743 -1.928078 4.250000 +v 1.409772 -2.149048 4.375000 +v 1.586548 -1.972272 4.375000 +v 1.144607 -1.883883 5.875000 +v 1.321383 -1.707107 5.875000 +v 0.349112 -1.088388 5.875000 +v 0.525888 -0.911612 5.875000 +v 1.321383 -2.060660 5.500000 +v 1.498160 -1.883883 5.500000 +v 1.498160 -1.883883 4.375000 +v 1.321383 -2.060660 4.375000 +v 1.144607 -1.883883 5.750000 +v 1.321383 -1.707107 5.750000 +v 0.349112 -1.088388 5.750000 +v 0.525888 -0.911612 5.750000 +v 0.791053 -1.530330 4.750000 +v 0.967830 -1.353553 4.750000 +v 0.349112 -1.088388 4.750000 +v 0.525888 -0.911612 4.750000 +v 0.525888 -0.911612 4.875000 +v 0.967830 -1.353553 4.875000 +v 0.791053 -1.530330 4.875000 +v 0.349112 -1.088388 4.875000 +v 1.232995 -1.972272 4.875000 +v 1.409772 -1.795495 4.875000 +v 1.232995 -1.972272 5.000000 +v 1.409772 -1.795495 5.000000 +v 0.250000 -0.625000 4.000000 +v 0.250000 -0.625000 6.500000 +v 0.250000 -1.125000 4.000000 +v 0.250000 -1.125000 6.500000 +v 0.625000 -0.625000 4.000000 +v 0.625000 -0.625000 6.500000 +v 0.625000 -1.125000 4.000000 +v 0.625000 -1.125000 6.500000 +v 0.437500 -0.562500 4.000000 +v 0.281250 -0.604367 4.000000 +v 0.166867 -0.718750 4.000000 +v 0.125000 -0.875000 4.000000 +v 0.166867 -1.031250 4.000000 +v 0.281250 -1.145633 4.000000 +v 0.437500 -1.187500 4.000000 +v 0.593750 -1.145633 4.000000 +v 0.708133 -1.031250 4.000000 +v 0.750000 -0.875000 4.000000 +v 0.708133 -0.718750 4.000000 +v 0.593750 -0.604367 4.000000 +v 0.281250 -0.604367 3.812500 +v 0.437500 -0.562500 3.812500 +v 0.166867 -0.718750 3.812500 +v 0.125000 -0.875000 3.812500 +v 0.166867 -1.031250 3.812500 +v 0.281250 -1.145633 3.812500 +v 0.437500 -1.187500 3.812500 +v 0.593750 -1.145633 3.812500 +v 0.708133 -1.031250 3.812500 +v 0.750000 -0.875000 3.812500 +v 0.708133 -0.718750 3.812500 +v 0.593750 -0.604367 3.812500 +v 0.437500 -0.625000 3.812500 +v 0.312500 -0.658494 3.812500 +v 0.220994 -0.750000 3.812500 +v 0.187500 -0.875000 3.812500 +v 0.220994 -1.000000 3.812500 +v 0.312500 -1.091507 3.812500 +v 0.437500 -1.125000 3.812500 +v 0.562500 -1.091507 3.812500 +v 0.654006 -1.000000 3.812500 +v 0.687500 -0.875000 3.812500 +v 0.654006 -0.750000 3.812500 +v 0.562500 -0.658494 3.812500 +v 0.437500 -0.625000 3.875000 +v 0.312500 -0.658494 3.875000 +v 0.220994 -0.750000 3.875000 +v 0.187500 -0.875000 3.875000 +v 0.220994 -1.000000 3.875000 +v 0.312500 -1.091507 3.875000 +v 0.437500 -1.125000 3.875000 +v 0.562500 -1.091507 3.875000 +v 0.654006 -1.000000 3.875000 +v 0.687500 -0.875000 3.875000 +v 0.654006 -0.750000 3.875000 +v 0.562500 -0.658494 3.875000 +vt 0.414286 0.601124 +vt 0.557143 0.646067 +vt 0.414286 0.646067 +vt 0.557143 0.511236 +vt 0.385714 0.511236 +vt 0.614286 0.646067 +vt 0.557143 0.601124 +vt 0.614286 0.601124 +vt 0.557143 0.735955 +vt 0.357143 0.601124 +vt 0.357143 0.646067 +vt 0.457143 0.735955 +vt 0.464286 0.741573 +vt 0.457143 0.769663 +vt 0.278571 0.696629 +vt 0.342857 0.707865 +vt 0.278571 0.707865 +vt 0.342857 0.741573 +vt 0.278571 0.730337 +vt 0.342857 0.730337 +vt 0.185714 0.696629 +vt 0.250000 0.707865 +vt 0.185714 0.707865 +vt 0.250000 0.741573 +vt 0.185714 0.730337 +vt 0.250000 0.730337 +vt 0.275000 0.696629 +vt 0.253571 0.741573 +vt 0.521429 0.859551 +vt 0.535714 0.803371 +vt 0.535714 0.859551 +vt 0.514286 0.859551 +vt 0.500000 0.803371 +vt 0.514286 0.803371 +vt 0.514286 0.735955 +vt 0.500000 0.747191 +vt 0.500000 0.735955 +vt 0.542857 0.859551 +vt 0.542857 0.803371 +vt 0.535714 0.747191 +vt 0.542857 0.747191 +vt 0.521429 0.803371 +vt 0.514286 0.747191 +vt 0.521429 0.747191 +vt 0.021429 0.730337 +vt 0.164286 0.775281 +vt 0.021429 0.775281 +vt 0.185714 0.775281 +vt 0.164286 0.730337 +vt 0.185714 0.730337 +vt 0.164286 0.696629 +vt 0.021429 0.696629 +vt 0.000000 0.730337 +vt 0.000000 0.775281 +vt 0.021429 0.808989 +vt 0.164286 0.808989 +vt 0.763088 0.570208 +vt 0.778571 0.556147 +vt 0.794054 0.570208 +vt 0.753571 0.556180 +vt 0.757143 0.567416 +vt 0.753571 0.567416 +vt 0.757143 0.679775 +vt 0.753571 0.691011 +vt 0.753571 0.679775 +vt 0.753571 0.668539 +vt 0.753571 0.657303 +vt 0.757143 0.668539 +vt 0.757143 0.646067 +vt 0.753571 0.646067 +vt 0.757143 0.634831 +vt 0.753571 0.634831 +vt 0.757143 0.623595 +vt 0.753571 0.623595 +vt 0.753571 0.612360 +vt 0.757143 0.601124 +vt 0.753571 0.601124 +vt 0.753571 0.589888 +vt 0.757143 0.578652 +vt 0.753571 0.578652 +vt 0.762623 0.646072 +vt 0.775000 0.612350 +vt 0.787377 0.646072 +vt 0.385714 0.735955 +vt 0.464286 0.764045 +vt 0.435714 0.769663 +vt 0.435714 0.735955 +vt 0.428571 0.764045 +vt 0.428571 0.741573 +vt 0.342857 0.696629 +vt 0.278571 0.741573 +vt 0.250000 0.696629 +vt 0.185714 0.741573 +vt 0.253571 0.696629 +vt 0.275000 0.741573 +vt 0.500000 0.859551 +vt 0.778571 0.612393 +vt 0.769632 0.608625 +vt 0.763088 0.598331 +vt 0.760693 0.584270 +vt 0.769632 0.559915 +vt 0.787510 0.559915 +vt 0.796449 0.584270 +vt 0.794054 0.598331 +vt 0.787510 0.608625 +vt 0.757143 0.556180 +vt 0.757143 0.691011 +vt 0.757143 0.657303 +vt 0.757143 0.612360 +vt 0.757143 0.589888 +vt 0.782146 0.654301 +vt 0.775000 0.657312 +vt 0.767854 0.654301 +vt 0.760709 0.634831 +vt 0.762623 0.623591 +vt 0.767855 0.615362 +vt 0.782146 0.615362 +vt 0.787377 0.623591 +vt 0.789292 0.634831 +vt 0.428571 0.769663 +vt 0.435714 0.904494 +vt 0.428571 0.904494 +vt 0.464286 0.904494 +vt 0.464286 0.769663 +vt 0.478571 0.904494 +vt 0.485714 0.769663 +vt 0.485714 0.904494 +vt 0.414286 0.769663 +vt 0.407143 0.904494 +vt 0.414286 0.904494 +vt 0.450000 0.904494 +vt 0.392857 0.904494 +vt 0.407143 0.769663 +vt 0.278571 0.764045 +vt 0.275000 0.764045 +vt 0.253571 0.764045 +vt 0.250000 0.764045 +vt 0.185714 0.764045 +vt 0.742857 0.567416 +vt 0.742857 0.668539 +vt 0.742857 0.601124 +vt 0.742857 0.612360 +vt 0.742857 0.623595 +vt 0.742857 0.634831 +vt 0.742857 0.578652 +vt 0.742857 0.679775 +vt 0.742857 0.646067 +vt 0.742857 0.589888 +vt 0.742857 0.691011 +vt 0.742857 0.657303 +vt 0.760714 0.679775 +vt 0.760714 0.623595 +vt 0.760714 0.646067 +vt 0.760714 0.589888 +vt 0.760714 0.691011 +vt 0.760714 0.657303 +vt 0.760714 0.601124 +vt 0.760714 0.567416 +vt 0.760714 0.668539 +vt 0.760714 0.612360 +vt 0.760714 0.634831 +vt 0.760714 0.578652 +vt 0.457143 0.904494 +vt 0.478571 0.769663 +vt 0.385714 0.769663 +vt 0.342857 0.764045 +vt 0.742857 0.556180 +vt 0.760714 0.556180 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.1387 0.1387 0.9806 +vn 0.1387 -0.1387 -0.9806 +vn 0.0000 1.0000 0.0000 +vn 0.4294 0.3303 0.8405 +vn 0.7003 0.6719 0.2412 +vn 0.4127 0.3119 0.8558 +vn 0.6533 -0.6533 0.3827 +vn 0.2892 0.4839 -0.8260 +vn 0.6539 0.7133 -0.2521 +vn 0.2508 0.4525 -0.8557 +vn -0.4839 -0.2892 -0.8260 +vn -0.7133 -0.6539 -0.2521 +vn -0.7158 -0.6671 -0.2065 +vn -0.3303 -0.4294 0.8405 +vn -0.6719 -0.7003 0.2412 +vn -0.3119 -0.4127 0.8558 +vn 0.6671 0.7158 -0.2065 +vn 0.7028 0.6771 0.2181 +vn -0.6771 -0.7028 0.2181 +vn 0.2706 -0.2706 0.9239 +vn -0.7071 0.7071 0.0000 +vn -0.6533 0.6533 -0.3827 +vn -0.2706 0.2706 -0.9239 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 -0.0000 +vn -0.4525 -0.2508 -0.8557 +s off +f 21/27/10 24/28/10 22/29/10 +f 19/30/11 21/27/11 17/31/11 +f 20/32/12 23/33/12 19/34/12 +f 20/35/13 22/29/13 24/28/13 +f 17/36/14 22/29/14 18/37/14 +f 37/38/15 35/39/15 38/40/15 +f 49/41/16 40/42/16 29/43/16 +f 51/44/17 30/45/17 39/46/17 +f 55/47/16 45/48/16 47/49/16 +f 54/50/17 48/51/17 46/52/17 +f 45/48/16 49/53/16 29/43/16 +f 30/45/17 54/54/17 46/52/17 +f 60/55/12 57/56/12 59/57/12 +f 61/58/18 63/59/18 62/60/18 +f 66/61/15 67/62/15 65/63/15 +f 57/56/16 64/64/16 59/57/16 +f 63/65/16 65/66/16 67/67/16 +f 60/55/17 62/60/17 58/68/17 +f 62/60/19 67/62/19 68/69/19 +f 58/68/20 65/66/20 57/56/20 +f 62/60/17 66/70/17 58/68/17 +f 76/71/13 73/72/13 74/73/13 +f 69/74/12 75/75/12 71/76/12 +f 71/77/10 76/71/10 72/78/10 +f 72/79/18 74/73/18 70/80/18 +f 70/81/21 73/72/21 69/82/21 +f 81/83/18 83/84/18 85/85/18 +f 95/86/12 108/87/12 96/88/12 +f 106/89/12 95/90/12 94/91/12 +f 93/92/12 106/89/12 94/91/12 +f 92/93/12 105/94/12 93/92/12 +f 103/95/12 92/93/12 91/96/12 +f 102/97/12 91/96/12 89/98/12 +f 101/99/12 89/98/12 90/100/12 +f 100/101/12 101/99/12 90/100/12 +f 111/102/12 100/101/12 99/103/12 +f 98/104/12 111/102/12 99/103/12 +f 109/105/12 98/104/12 97/106/12 +f 108/87/12 97/106/12 96/88/12 +f 123/107/12 119/108/12 115/109/12 +f 21/27/10 23/33/10 24/28/10 +f 19/30/11 23/33/11 21/27/11 +f 20/32/12 24/28/12 23/33/12 +f 20/35/13 18/110/13 22/29/13 +f 17/36/14 21/27/14 22/29/14 +f 35/39/15 36/111/15 38/40/15 +f 38/40/15 42/112/15 41/113/15 +f 42/112/15 44/114/15 41/113/15 +f 44/114/15 43/115/15 41/113/15 +f 41/113/15 37/38/15 38/40/15 +f 49/41/16 52/116/16 40/42/16 +f 51/44/17 50/117/17 30/45/17 +f 55/47/16 53/118/16 45/48/16 +f 54/50/17 56/119/17 48/51/17 +f 45/48/16 53/120/16 49/53/16 +f 30/45/17 50/121/17 54/54/17 +f 60/55/12 58/68/12 57/56/12 +f 61/58/18 64/122/18 63/59/18 +f 66/61/15 68/69/15 67/62/15 +f 57/56/16 63/65/16 64/64/16 +f 63/65/16 57/56/16 65/66/16 +f 60/55/17 61/58/17 62/60/17 +f 62/60/19 63/59/19 67/62/19 +f 58/68/20 66/70/20 65/66/20 +f 62/60/17 68/69/17 66/70/17 +f 76/71/13 75/75/13 73/72/13 +f 69/74/12 73/72/12 75/75/12 +f 71/77/10 75/75/10 76/71/10 +f 72/79/18 76/71/18 74/73/18 +f 70/81/21 74/73/21 73/72/21 +f 77/123/18 78/124/18 79/125/18 +f 79/125/18 80/126/18 81/83/18 +f 81/83/18 82/127/18 83/84/18 +f 83/84/18 84/128/18 85/85/18 +f 85/85/18 86/129/18 87/130/18 +f 87/130/18 88/131/18 85/85/18 +f 88/131/18 77/123/18 85/85/18 +f 77/123/18 79/125/18 85/85/18 +f 79/125/18 81/83/18 85/85/18 +f 95/86/12 107/132/12 108/87/12 +f 106/89/12 107/133/12 95/90/12 +f 93/92/12 105/94/12 106/89/12 +f 92/93/12 104/134/12 105/94/12 +f 103/95/12 104/134/12 92/93/12 +f 102/97/12 103/95/12 91/96/12 +f 101/99/12 102/97/12 89/98/12 +f 100/101/12 112/135/12 101/99/12 +f 111/102/12 112/135/12 100/101/12 +f 98/104/12 110/136/12 111/102/12 +f 109/105/12 110/136/12 98/104/12 +f 108/87/12 109/105/12 97/106/12 +f 115/109/12 114/137/12 123/107/12 +f 114/137/12 113/138/12 123/107/12 +f 113/138/12 124/139/12 123/107/12 +f 123/107/12 122/140/12 119/108/12 +f 122/140/12 121/141/12 119/108/12 +f 121/141/12 120/142/12 119/108/12 +f 119/108/12 118/143/12 117/144/12 +f 117/144/12 116/145/12 119/108/12 +f 116/145/12 115/109/12 119/108/12 +s 1 +f 44/146/22 32/147/23 34/148/24 +f 30/45/25 40/42/15 39/46/15 +f 26/149/26 38/40/27 36/150/28 +f 25/151/29 37/152/30 27/153/31 +f 34/148/24 43/154/32 44/146/22 +f 36/150/28 25/151/29 26/149/26 +f 31/155/33 43/154/32 33/156/34 +f 28/157/35 42/112/36 38/40/27 +f 27/158/31 41/159/37 31/155/33 +f 46/52/38 29/43/25 30/45/25 +f 48/51/18 45/48/38 46/52/38 +f 51/44/39 49/160/40 50/117/40 +f 54/54/41 49/161/40 53/162/41 +f 56/119/12 53/163/41 55/164/12 +f 84/165/42 95/86/10 96/88/42 +f 81/166/43 92/93/11 93/92/43 +f 87/167/44 100/101/45 88/168/45 +f 77/169/21 89/98/46 78/170/46 +f 84/165/42 97/106/47 85/171/47 +f 81/166/43 94/91/48 82/172/48 +f 88/168/45 90/100/21 77/169/21 +f 79/173/49 89/98/46 91/96/49 +f 85/171/47 98/104/13 86/174/13 +f 83/175/10 94/91/48 95/90/10 +f 80/176/11 91/96/49 92/93/11 +f 86/174/13 99/103/44 87/167/44 +f 105/94/44 118/177/45 106/89/45 +f 112/135/48 113/178/10 101/99/10 +f 102/97/42 115/179/47 103/95/47 +f 109/105/49 122/180/11 110/136/11 +f 106/89/45 119/181/21 107/133/21 +f 103/95/47 116/182/13 104/134/13 +f 110/136/11 123/183/43 111/102/43 +f 107/132/21 120/184/46 108/87/46 +f 104/134/13 117/185/44 105/94/44 +f 111/102/43 124/186/48 112/135/48 +f 101/99/10 114/187/42 102/97/42 +f 108/87/46 121/188/49 109/105/49 +f 44/146/22 42/112/36 32/147/23 +f 30/45/25 29/43/25 40/42/15 +f 26/149/26 28/189/35 38/40/27 +f 25/151/29 35/190/50 37/152/30 +f 34/148/24 33/156/34 43/154/32 +f 36/150/28 35/190/50 25/151/29 +f 31/155/33 41/159/37 43/154/32 +f 28/157/35 32/147/23 42/112/36 +f 27/158/31 37/191/30 41/159/37 +f 46/52/38 45/48/38 29/43/25 +f 48/51/18 47/49/18 45/48/38 +f 51/44/39 52/192/39 49/160/40 +f 54/54/41 50/121/40 49/161/40 +f 56/119/12 54/50/41 53/163/41 +f 84/165/42 83/193/10 95/86/10 +f 81/166/43 80/176/11 92/93/11 +f 87/167/44 99/103/44 100/101/45 +f 77/169/21 90/100/21 89/98/46 +f 84/165/42 96/88/42 97/106/47 +f 81/166/43 93/92/43 94/91/48 +f 88/168/45 100/101/45 90/100/21 +f 79/173/49 78/170/46 89/98/46 +f 85/171/47 97/106/47 98/104/13 +f 83/175/10 82/172/48 94/91/48 +f 80/176/11 79/173/49 91/96/49 +f 86/174/13 98/104/13 99/103/44 +f 105/94/44 117/185/44 118/177/45 +f 112/135/48 124/186/48 113/178/10 +f 102/97/42 114/187/42 115/179/47 +f 109/105/49 121/188/49 122/180/11 +f 106/89/45 118/177/45 119/181/21 +f 103/95/47 115/179/47 116/182/13 +f 110/136/11 122/180/11 123/183/43 +f 107/132/21 119/194/21 120/184/46 +f 104/134/13 116/182/13 117/185/44 +f 111/102/43 123/183/43 124/186/48 +f 101/99/10 113/178/10 114/187/42 +f 108/87/46 120/184/46 121/188/49 +o Gauge +v 0.437500 -0.830806 3.875000 +v 0.393306 -0.875000 3.875000 +v 0.592180 -1.029680 3.875000 +v 0.437500 -0.830806 3.812500 +v 0.393306 -0.875000 3.812500 +v 0.592180 -1.029680 3.812500 +vt 0.689286 0.674157 +vt 0.689286 0.696629 +vt 0.685714 0.674157 +vt 0.685714 0.668539 +vt 0.671429 0.674157 +vt 0.671429 0.668539 +vt 0.703571 0.668539 +vt 0.689286 0.668539 +vt 0.703571 0.674157 +vn 0.0000 0.0000 -1.0000 +vn -0.6139 -0.7894 0.0000 +vn 0.7894 0.6139 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 128/195/51 130/196/51 129/197/51 +f 126/198/52 130/199/52 127/200/52 +f 127/201/53 128/195/53 125/202/53 +f 125/202/54 129/197/54 126/198/54 +f 126/198/52 129/197/52 130/199/52 +f 127/201/53 130/203/53 128/195/53 +f 125/202/54 128/195/54 129/197/54 +o Lid +v 1.000000 1.250000 6.750000 +v 1.000000 1.250000 -0.250000 +v 1.000000 0.750000 6.750000 +v 1.000000 0.750000 -0.250000 +v 0.750000 0.250000 6.750000 +v 0.750000 0.250000 -0.250000 +v 0.250000 -0.125000 6.750000 +v 0.250000 -0.125000 -0.250000 +v 1.000000 1.375000 -0.250000 +v 1.000000 1.375000 6.750000 +v 1.088388 1.338388 -0.250000 +v 1.088388 1.338388 6.750000 +v 1.125000 1.250000 -0.250000 +v 1.125000 1.250000 6.750000 +v 1.088388 1.161612 -0.250000 +v 1.088388 1.161612 6.750000 +v 1.000000 1.125000 -0.250000 +v 1.000000 1.125000 6.750000 +v 0.911612 1.161612 -0.250000 +v 0.911612 1.161612 6.750000 +v 0.875000 1.250000 -0.250000 +v 0.875000 1.250000 6.750000 +v 0.911612 1.338388 -0.250000 +v 0.911612 1.338388 6.750000 +v 0.250000 -0.125000 -0.250000 +v 0.250000 -0.125000 6.750000 +v 0.750000 0.250000 -0.250000 +v 0.750000 0.250000 6.750000 +v 1.000000 0.750000 -0.250000 +v 1.000000 0.750000 6.750000 +v 1.000000 1.250000 -0.250000 +v 1.000000 1.250000 6.750000 +vt 0.721692 0.432584 +vt 0.728571 0.421762 +vt 0.735451 0.432584 +vt 0.735451 0.455056 +vt 0.733436 0.462709 +vt 0.723707 0.447404 +vt 0.733436 0.440236 +vt 0.728571 0.443406 +vt 0.723707 0.440236 +vt 0.723707 0.424931 +vt 0.733436 0.424931 +vt 0.728571 0.465878 +vt 0.723707 0.462709 +vt 0.721692 0.455056 +vt 0.728571 0.444234 +vt 0.733436 0.447404 +vt 0.242857 0.331461 +vt 0.642857 0.286517 +vt 0.642857 0.331461 +vt 0.242857 0.286517 +vt 0.642857 0.235955 +vt 0.242857 0.235955 +vt 0.642857 0.179775 +vt 0.242857 0.376404 +vt 0.642857 0.365169 +vt 0.642857 0.376404 +vt 0.242857 0.365169 +vt 0.642857 0.353933 +vt 0.242857 0.353933 +vt 0.642857 0.342697 +vt 0.242857 0.342697 +vt 0.642857 0.331461 +vt 0.242857 0.421348 +vt 0.642857 0.410112 +vt 0.642857 0.421348 +vt 0.242857 0.410112 +vt 0.642857 0.398876 +vt 0.242857 0.398876 +vt 0.642857 0.387640 +vt 0.242857 0.387640 +vt 0.642857 0.179775 +vt 0.242857 0.235955 +vt 0.642857 0.235955 +vt 0.242857 0.286517 +vt 0.642857 0.286517 +vt 0.242857 0.331461 +vt 0.642857 0.331461 +vt 0.242857 0.179775 +vt 0.242857 0.331461 +vt 0.242857 0.179775 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.9732 -0.2298 0.0000 +vn 0.7678 -0.6407 0.0000 +vn 0.6000 -0.8000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.6000 0.8000 0.0000 +vn -0.7678 0.6407 0.0000 +vn -0.9732 0.2298 0.0000 +s off +f 152/204/55 148/205/55 144/206/55 +f 151/207/56 153/208/56 145/209/56 +f 144/206/55 142/210/55 140/211/55 +f 140/211/55 154/212/55 152/204/55 +f 152/204/55 150/213/55 148/205/55 +f 148/205/55 146/214/55 144/206/55 +f 144/206/55 140/211/55 152/204/55 +f 153/208/56 139/215/56 141/216/56 +f 141/216/56 143/217/56 153/208/56 +f 143/217/56 145/209/56 153/208/56 +f 145/209/56 147/218/56 149/219/56 +f 149/219/56 151/207/56 145/209/56 +s 1 +f 131/220/57 134/221/58 132/222/57 +f 133/223/58 136/224/59 134/221/58 +f 135/225/59 138/226/60 136/224/59 +f 140/227/61 141/228/62 139/229/61 +f 142/230/62 143/231/57 141/228/62 +f 144/232/57 145/233/63 143/231/57 +f 146/234/63 147/235/64 145/233/63 +f 148/236/64 149/237/65 147/238/64 +f 150/239/65 151/240/66 149/237/65 +f 152/241/66 153/242/67 151/240/66 +f 154/243/67 139/229/61 153/242/67 +f 155/244/68 158/245/69 157/246/69 +f 157/246/69 160/247/70 159/248/70 +f 159/248/70 162/249/66 161/250/66 +f 131/220/57 133/223/58 134/221/58 +f 133/223/58 135/225/59 136/224/59 +f 135/225/59 137/251/60 138/226/60 +f 140/227/61 142/230/62 141/228/62 +f 142/230/62 144/232/57 143/231/57 +f 144/232/57 146/234/63 145/233/63 +f 146/234/63 148/252/64 147/235/64 +f 148/236/64 150/239/65 149/237/65 +f 150/239/65 152/241/66 151/240/66 +f 152/241/66 154/243/67 153/242/67 +f 154/243/67 140/227/61 139/229/61 +f 155/244/68 156/253/68 158/245/69 +f 157/246/69 158/245/69 160/247/70 +f 159/248/70 160/247/70 162/249/66 +o MiniNuke +v 0.000000 2.000000 -1.000000 +v -0.382683 1.923880 -1.000000 +v -0.707107 1.707107 -1.000000 +v -0.923880 1.382683 -1.000000 +v -1.000000 1.000000 -1.000000 +v -0.923880 0.617316 -1.000000 +v -0.707107 0.292893 -1.000000 +v -0.382683 0.076120 -1.000000 +v 0.000000 0.000000 -1.000000 +v 0.382683 0.076120 -1.000000 +v 0.707107 0.292893 -1.000000 +v 0.923880 0.617316 -1.000000 +v 1.000000 1.000000 -1.000000 +v 0.923880 1.382684 -1.000000 +v 0.707107 1.707107 -1.000000 +v 0.382683 1.923880 -1.000000 +v 0.000000 1.375000 -2.375000 +v -0.143507 1.346455 -2.375000 +v -0.265165 1.265165 -2.375000 +v -0.346455 1.143506 -2.375000 +v -0.375000 1.000000 -2.375000 +v -0.346455 0.856494 -2.375000 +v -0.265165 0.734835 -2.375000 +v -0.143507 0.653545 -2.375000 +v 0.000000 0.625000 -2.375000 +v 0.143506 0.653545 -2.375000 +v 0.265165 0.734835 -2.375000 +v 0.346455 0.856494 -2.375000 +v 0.375000 1.000000 -2.375000 +v 0.346455 1.143506 -2.375000 +v 0.265165 1.265165 -2.375000 +v 0.143506 1.346455 -2.375000 +v 0.000000 1.375000 0.375000 +v -0.143507 1.346455 0.375000 +v -0.265165 1.265165 0.375000 +v -0.346455 1.143506 0.375000 +v -0.375000 1.000000 0.375000 +v -0.346455 0.856494 0.375000 +v -0.265165 0.734835 0.375000 +v -0.143507 0.653545 0.375000 +v 0.000000 0.625000 0.375000 +v 0.143506 0.653545 0.375000 +v 0.265165 0.734835 0.375000 +v 0.346455 0.856494 0.375000 +v 0.375000 1.000000 0.375000 +v 0.346455 1.143506 0.375000 +v 0.265165 1.265165 0.375000 +v 0.143506 1.346455 0.375000 +v 0.000000 1.875000 -1.750000 +v -0.334848 1.808394 -1.750000 +v -0.618719 1.618718 -1.750000 +v -0.808394 1.334848 -1.750000 +v -0.875000 1.000000 -1.750000 +v -0.808394 0.665152 -1.750000 +v -0.618719 0.381282 -1.750000 +v -0.334848 0.191606 -1.750000 +v 0.000000 0.125000 -1.750000 +v 0.334848 0.191605 -1.750000 +v 0.618718 0.381281 -1.750000 +v 0.808394 0.665152 -1.750000 +v 0.875000 1.000000 -1.750000 +v 0.808394 1.334848 -1.750000 +v 0.618718 1.618719 -1.750000 +v 0.334847 1.808395 -1.750000 +v 0.000000 1.875000 -0.250000 +v -0.334848 1.808394 -0.250000 +v -0.618719 1.618718 -0.250000 +v -0.808394 1.334848 -0.250000 +v -0.875000 1.000000 -0.250000 +v -0.808394 0.665152 -0.250000 +v -0.618719 0.381282 -0.250000 +v -0.334848 0.191606 -0.250000 +v 0.000000 0.125000 -0.250000 +v 0.334848 0.191605 -0.250000 +v 0.618718 0.381281 -0.250000 +v 0.808394 0.665152 -0.250000 +v 0.875000 1.000000 -0.250000 +v 0.808394 1.334848 -0.250000 +v 0.618718 1.618719 -0.250000 +v 0.334847 1.808395 -0.250000 +v 0.000000 1.000000 0.625000 +v 0.000000 2.000000 -3.250000 +v -0.382683 1.923880 -3.250000 +v -0.923880 1.382683 -3.250000 +v -1.000000 1.000000 -3.250000 +v -0.923880 0.617316 -3.250000 +v -0.382683 0.076120 -3.250000 +v 0.000000 0.000000 -3.250000 +v 0.382683 0.076120 -3.250000 +v 0.923880 0.617316 -3.250000 +v 1.000000 1.000000 -3.250000 +v 0.923880 1.382684 -3.250000 +v 0.382683 1.923880 -3.250000 +v 0.000000 2.000000 -2.750000 +v -0.382683 1.923880 -2.750000 +v -0.707107 1.707107 -2.750000 +v -0.923880 1.382683 -2.750000 +v -1.000000 1.000000 -2.750000 +v -0.923880 0.617316 -2.750000 +v -0.707107 0.292893 -2.750000 +v -0.382683 0.076120 -2.750000 +v 0.000000 0.000000 -2.750000 +v 0.382683 0.076120 -2.750000 +v 0.707107 0.292893 -2.750000 +v 0.923880 0.617316 -2.750000 +v 1.000000 1.000000 -2.750000 +v 0.923880 1.382684 -2.750000 +v 0.707107 1.707107 -2.750000 +v 0.382683 1.923880 -2.750000 +v 0.000000 2.000000 -2.500000 +v -0.382683 1.923880 -2.500000 +v -0.707107 1.707107 -2.500000 +v -0.923880 1.382683 -2.500000 +v -1.000000 1.000000 -2.500000 +v -0.923880 0.617316 -2.500000 +v -0.707107 0.292893 -2.500000 +v -0.382683 0.076120 -2.500000 +v 0.000000 0.000000 -2.500000 +v 0.382683 0.076120 -2.500000 +v 0.707107 0.292893 -2.500000 +v 0.923880 0.617316 -2.500000 +v 1.000000 1.000000 -2.500000 +v 0.923880 1.382684 -2.500000 +v 0.707107 1.707107 -2.500000 +v 0.382683 1.923880 -2.500000 +v 0.000000 1.875000 -3.250000 +v -0.334848 1.808394 -3.250000 +v -0.808394 1.334848 -3.250000 +v -0.875000 1.000000 -3.250000 +v -0.808394 0.665152 -3.250000 +v -0.334848 0.191606 -3.250000 +v 0.000000 0.125000 -3.250000 +v 0.334848 0.191605 -3.250000 +v 0.808394 0.665152 -3.250000 +v 0.875000 1.000000 -3.250000 +v 0.808394 1.334848 -3.250000 +v 0.334847 1.808395 -3.250000 +v 0.000000 1.875000 -2.750000 +v -0.334848 1.808394 -2.750000 +v -0.618719 1.618718 -2.750000 +v -0.808394 1.334848 -2.750000 +v -0.875000 1.000000 -2.750000 +v -0.808394 0.665152 -2.750000 +v -0.618719 0.381282 -2.750000 +v -0.334848 0.191606 -2.750000 +v 0.000000 0.125000 -2.750000 +v 0.334848 0.191605 -2.750000 +v 0.618718 0.381281 -2.750000 +v 0.808394 0.665152 -2.750000 +v 0.875000 1.000000 -2.750000 +v 0.808394 1.334848 -2.750000 +v 0.618718 1.618719 -2.750000 +v 0.334847 1.808395 -2.750000 +v 0.000000 1.875000 -2.500000 +v -0.334848 1.808394 -2.500000 +v -0.618719 1.618718 -2.500000 +v -0.808394 1.334848 -2.500000 +v -0.875000 1.000000 -2.500000 +v -0.808394 0.665152 -2.500000 +v -0.618719 0.381282 -2.500000 +v -0.334848 0.191606 -2.500000 +v 0.000000 0.125000 -2.500000 +v 0.334848 0.191605 -2.500000 +v 0.618718 0.381281 -2.500000 +v 0.808394 0.665152 -2.500000 +v 0.875000 1.000000 -2.500000 +v 0.808394 1.334848 -2.500000 +v 0.618718 1.618719 -2.500000 +v 0.334847 1.808395 -2.500000 +v 0.062500 1.875000 -2.250000 +v -0.062500 1.875000 -2.250000 +v 0.062500 1.875000 -2.750000 +v -0.062500 1.875000 -2.750000 +v 0.062500 1.250000 -2.250000 +v -0.062500 1.250000 -2.250000 +v 0.062500 1.250000 -2.750000 +v -0.062500 1.250000 -2.750000 +v -0.062500 1.562500 -1.937500 +v 0.062500 1.562500 -1.937500 +v -0.062500 0.125000 -2.250000 +v 0.062500 0.125000 -2.250000 +v -0.062500 0.125000 -2.750000 +v 0.062500 0.125000 -2.750000 +v -0.062500 0.750000 -2.250000 +v 0.062500 0.750000 -2.250000 +v -0.062500 0.750000 -2.750000 +v 0.062500 0.750000 -2.750000 +v 0.062500 0.437500 -1.937500 +v -0.062500 0.437500 -1.937500 +v 0.875000 0.937500 -2.250000 +v 0.875000 1.062500 -2.250000 +v 0.875000 0.937500 -2.750000 +v 0.875000 1.062500 -2.750000 +v 0.250000 0.937500 -2.250000 +v 0.250000 1.062500 -2.250000 +v 0.250000 0.937500 -2.750000 +v 0.250000 1.062500 -2.750000 +v 0.562500 1.062500 -1.937500 +v 0.562500 0.937500 -1.937500 +v -0.875000 1.062500 -2.250000 +v -0.875000 0.937500 -2.250000 +v -0.875000 1.062500 -2.750000 +v -0.875000 0.937500 -2.750000 +v -0.250000 1.062500 -2.250000 +v -0.250000 0.937500 -2.250000 +v -0.250000 1.062500 -2.750000 +v -0.250000 0.937500 -2.750000 +v -0.562500 0.937500 -1.937500 +v -0.562500 1.062500 -1.937500 +vt 0.814815 0.197385 +vt 0.885186 0.197385 +vt 0.885186 0.296732 +vt -0.000000 0.000000 +vt 0.050000 0.023529 +vt 0.000000 0.023529 +vt 0.750000 0.023529 +vt 0.800000 0.000000 +vt 0.800000 0.023529 +vt 0.733333 0.329412 +vt 0.750000 0.235294 +vt 0.750000 0.329412 +vt 0.700000 0.117647 +vt 0.750000 0.094118 +vt 0.750000 0.117647 +vt 0.650000 0.117647 +vt 0.700000 0.094118 +vt 0.666667 0.329412 +vt 0.650000 0.235294 +vt 0.666667 0.235294 +vt 0.600000 0.000000 +vt 0.650000 0.023529 +vt 0.600000 0.023529 +vt 0.550000 0.023529 +vt 0.533333 0.235294 +vt 0.550000 0.329412 +vt 0.533333 0.329412 +vt 0.500000 0.094118 +vt 0.550000 0.117647 +vt 0.500000 0.117647 +vt 0.450000 0.094118 +vt 0.450000 0.117647 +vt 0.466667 0.329412 +vt 0.450000 0.235294 +vt 0.466667 0.235294 +vt 0.400000 0.000000 +vt 0.450000 0.023529 +vt 0.400000 0.023529 +vt 0.350000 -0.000000 +vt 0.350000 0.023529 +vt 0.350000 0.235294 +vt 0.333333 0.329412 +vt 0.333333 0.235294 +vt 0.300000 0.094118 +vt 0.350000 0.117647 +vt 0.300000 0.117647 +vt 0.066667 0.235294 +vt 0.050000 0.329412 +vt 0.050000 0.235294 +vt 0.100000 0.094118 +vt 0.050000 0.117647 +vt 0.050000 0.094118 +vt 0.150000 0.094118 +vt 0.100000 0.117647 +vt 0.133333 0.329412 +vt 0.150000 0.235294 +vt 0.150000 0.329412 +vt 0.200000 -0.000000 +vt 0.150000 0.023529 +vt 0.150000 -0.000000 +vt 0.250000 0.023529 +vt 0.250000 0.000000 +vt 0.266667 0.235294 +vt 0.250000 0.329412 +vt 0.250000 0.235294 +vt 0.250000 0.094118 +vt 0.250000 0.117647 +vt 0.350000 0.164706 +vt 0.300000 0.188235 +vt 0.300000 0.164706 +vt 0.400000 0.164706 +vt 0.350000 0.188235 +vt 0.450000 0.164706 +vt 0.400000 0.188235 +vt 0.500000 0.164706 +vt 0.450000 0.188235 +vt 0.550000 0.164706 +vt 0.500000 0.188235 +vt 0.600000 0.188235 +vt 0.550000 0.188235 +vt 0.650000 0.164706 +vt 0.600000 0.164706 +vt 0.700000 0.188235 +vt 0.650000 0.188235 +vt 0.700000 0.164706 +vt 0.750000 0.188235 +vt 0.750000 0.164706 +vt 0.800000 0.188235 +vt -0.000000 0.164706 +vt 0.050000 0.188235 +vt 0.000000 0.188235 +vt 0.100000 0.164706 +vt 0.050000 0.164706 +vt 0.150000 0.188235 +vt 0.100000 0.188235 +vt 0.150000 0.164706 +vt 0.200000 0.188235 +vt 0.250000 0.164706 +vt 0.200000 0.164706 +vt 0.250000 0.188235 +vt 0.900000 0.117647 +vt 0.916667 0.023529 +vt 0.916667 0.117647 +vt 0.800000 0.023529 +vt 0.816667 0.117647 +vt 0.800000 0.117647 +vt 0.900000 0.117647 +vt 0.916667 0.023529 +vt 0.916667 0.117647 +vt 0.816667 0.023529 +vt 0.900000 0.023529 +vt 0.816667 -0.000000 +vt 0.900000 -0.000000 +vt 1.000000 0.023529 +vt 1.000000 0.117647 +vt 0.900000 0.176471 +vt 0.800000 0.023529 +vt 0.816667 0.117647 +vt 0.800000 0.117647 +vt 0.816667 0.023529 +vt 0.900000 0.023529 +vt 0.816667 -0.000000 +vt 0.900000 -0.000000 +vt 1.000000 0.023529 +vt 1.000000 0.117647 +vt 0.900000 0.176471 +vt 0.900000 0.117647 +vt 0.916667 0.023529 +vt 0.916667 0.117647 +vt 0.800000 0.023529 +vt 0.816667 0.117647 +vt 0.800000 0.117647 +vt 0.900000 0.117647 +vt 0.916667 0.023529 +vt 0.916667 0.117647 +vt 0.816667 0.023529 +vt 0.900000 0.023529 +vt 0.816667 -0.000000 +vt 0.900000 -0.000000 +vt 1.000000 0.023529 +vt 1.000000 0.117647 +vt 0.900000 0.176471 +vt 0.800000 0.023529 +vt 0.816667 0.117647 +vt 0.800000 0.117647 +vt 0.816667 0.023529 +vt 0.900000 -0.000000 +vt 0.816667 -0.000000 +vt 1.000000 0.023529 +vt 1.000000 0.117647 +vt 0.900000 0.176471 +vt 0.869042 0.311960 +vt 0.850000 0.317307 +vt 0.830958 0.311960 +vt 0.814815 0.296732 +vt 0.804028 0.273942 +vt 0.800241 0.247059 +vt 0.804028 0.220176 +vt 0.830958 0.182157 +vt 0.850000 0.176810 +vt 0.869042 0.182157 +vt 0.895972 0.220176 +vt 0.899760 0.247059 +vt 0.895972 0.273942 +vt 0.050000 -0.000000 +vt 0.750000 -0.000000 +vt 0.733333 0.235294 +vt 0.650000 0.094118 +vt 0.650000 0.329412 +vt 0.650000 -0.000000 +vt 0.550000 0.000000 +vt 0.550000 0.235294 +vt 0.550000 0.094118 +vt 0.450000 0.329412 +vt 0.450000 -0.000000 +vt 0.350000 0.329412 +vt 0.350000 0.094118 +vt 0.066667 0.329412 +vt 0.150000 0.117647 +vt 0.133333 0.235294 +vt 0.200000 0.023529 +vt 0.266667 0.329412 +vt 0.800000 0.164706 +vt 0.858333 0.176471 +vt 0.958333 0.176471 +vt 0.916667 0.176471 +vt 0.858333 0.176471 +vt 0.958333 0.176471 +vt 0.916667 0.176471 +vt 0.900000 0.023529 +vt 0.858333 0.176471 +vt 0.958333 0.176471 +vt 0.916667 0.176471 +vt 0.858333 0.176471 +vt 0.958333 0.176471 +vt 0.916667 0.176471 +vt 0.533333 0.329412 +vt 0.500000 0.482353 +vt 0.516667 0.329412 +vt 0.550000 0.623529 +vt 0.500000 0.623529 +vt 0.500000 0.764706 +vt 0.516667 0.917647 +vt 0.550000 0.764706 +vt 0.533333 0.917647 +vt 0.450000 0.482353 +vt 0.450000 0.623529 +vt 0.400000 0.482353 +vt 0.400000 0.623529 +vt 0.350000 0.482353 +vt 0.350000 0.623529 +vt 0.300000 0.482353 +vt 0.300000 0.623529 +vt 0.250000 0.482353 +vt 0.250000 0.623529 +vt 0.200000 0.482353 +vt 0.200000 0.623529 +vt 0.150000 0.482353 +vt 0.150000 0.623529 +vt 0.100000 0.482353 +vt 0.100000 0.623529 +vt 0.050000 0.482353 +vt 0.050000 0.623529 +vt -0.000000 0.482353 +vt -0.000000 0.623529 +vt 0.750000 0.623529 +vt 0.800000 0.482353 +vt 0.800000 0.623529 +vt 0.700000 0.623529 +vt 0.750000 0.482353 +vt 0.650000 0.623529 +vt 0.700000 0.482353 +vt 0.600000 0.482353 +vt 0.600000 0.623529 +vt 0.550000 0.482353 +vt 0.483333 0.329412 +vt 0.466667 0.329412 +vt 0.433333 0.329412 +vt 0.416667 0.329412 +vt 0.383333 0.329412 +vt 0.366667 0.329412 +vt 0.333333 0.329412 +vt 0.316667 0.329412 +vt 0.283333 0.329412 +vt 0.266667 0.329412 +vt 0.216667 0.329412 +vt 0.183333 0.329412 +vt 0.166667 0.329412 +vt 0.116667 0.329412 +vt 0.083333 0.329412 +vt 0.066667 0.329412 +vt 0.033333 0.329412 +vt 0.016667 0.329412 +vt 0.766667 0.329412 +vt 0.733333 0.329412 +vt 0.716667 0.329412 +vt 0.683333 0.329412 +vt 0.650000 0.482353 +vt 0.666667 0.329412 +vt 0.633333 0.329412 +vt 0.616667 0.329412 +vt 0.583333 0.329412 +vt 0.566667 0.329412 +vt 0.450000 0.764706 +vt 0.400000 0.764706 +vt 0.350000 0.764706 +vt 0.300000 0.764706 +vt 0.250000 0.764706 +vt 0.200000 0.764706 +vt 0.150000 0.764706 +vt 0.100000 0.764706 +vt 0.050000 0.764706 +vt -0.000000 0.764706 +vt 0.750000 0.764706 +vt 0.700000 0.764706 +vt 0.650000 0.764706 +vt 0.600000 0.764706 +vt 0.466667 0.917647 +vt 0.483333 0.917647 +vt 0.433333 0.917647 +vt 0.416667 0.917647 +vt 0.383333 0.917647 +vt 0.366667 0.917647 +vt 0.333333 0.917647 +vt 0.316667 0.917647 +vt 0.283333 0.917647 +vt 0.266667 0.917647 +vt 0.233333 0.917647 +vt 0.216667 0.917647 +vt 0.183333 0.917647 +vt 0.166667 0.917647 +vt 0.116667 0.917647 +vt 0.133333 0.917647 +vt 0.083333 0.917647 +vt 0.066667 0.917647 +vt 0.033333 0.917647 +vt 0.016667 0.917647 +vt 0.783333 0.917647 +vt 0.766667 0.917647 +vt 0.733333 0.917647 +vt 0.716667 0.917647 +vt 0.683333 0.917647 +vt 0.666667 0.917647 +vt 0.616667 0.917647 +vt 0.633333 0.917647 +vt 0.583333 0.917647 +vt 0.566667 0.917647 +vt 0.425000 1.000000 +vt 0.375000 1.000000 +vt 0.325000 1.000000 +vt 0.275000 1.000000 +vt 0.225000 1.000000 +vt 0.175000 1.000000 +vt 0.125000 1.000000 +vt 0.075000 1.000000 +vt 0.025000 1.000000 +vt 0.775000 1.000000 +vt 0.725000 1.000000 +vt 0.675000 1.000000 +vt 0.625000 1.000000 +vt 0.575000 1.000000 +vt 0.525000 1.000000 +vt 0.475000 1.000000 +vt 0.600000 0.117647 +vt 0.200000 0.117647 +vt 0.400000 0.117647 +vt 0.000000 0.117647 +vt 0.800000 0.117647 +vt 0.600000 0.329412 +vt 0.200000 0.329412 +vt 0.600000 0.235294 +vt 0.200000 0.235294 +vt 0.800000 0.329412 +vt 0.400000 0.235294 +vt 0.400000 0.329412 +vt 0.000000 0.235294 +vt -0.000000 0.329412 +vt 0.500000 0.235294 +vt 0.100000 0.235294 +vt 0.700000 0.235294 +vt 0.300000 0.235294 +vt 0.800000 0.235294 +vt 0.233333 0.329412 +vt 0.133333 0.329412 +vt 0.783333 0.329412 +vt 0.800000 0.764706 +vn 0.0000 0.0000 -1.0000 +vn -0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7214 0.2988 -0.6247 +vn -0.6492 0.6492 -0.3965 +vn -0.5522 0.5522 -0.6247 +vn -0.7071 0.7071 -0.0000 +vn -0.6492 0.6492 0.3965 +vn -0.4850 0.4850 0.7277 +vn -0.8482 0.3513 0.3965 +vn -0.6337 0.2625 0.7277 +vn -0.3513 0.8482 -0.3965 +vn -0.0000 0.9180 -0.3965 +vn 0.3513 0.8482 -0.3965 +vn 0.6492 0.6492 -0.3965 +vn 0.7071 0.7071 -0.0000 +vn 0.8482 0.3513 -0.3965 +vn 0.9180 -0.0000 -0.3965 +vn 0.8482 -0.3513 -0.3965 +vn 0.6492 -0.6492 -0.3965 +vn 0.7071 -0.7071 0.0000 +vn 0.3513 -0.8482 -0.3965 +vn -0.0000 -0.9180 -0.3965 +vn -0.7071 -0.7071 0.0000 +vn -0.3513 -0.8482 -0.3965 +vn -0.6492 -0.6492 -0.3965 +vn -0.9180 0.0000 -0.3965 +vn -0.8482 0.3513 -0.3965 +vn -0.2988 0.7214 -0.6247 +vn 0.0000 0.7809 -0.6247 +vn 0.2988 0.7214 -0.6247 +vn 0.5522 0.5522 -0.6247 +vn 0.7214 0.2988 -0.6247 +vn 0.7809 -0.0000 -0.6247 +vn 0.7214 -0.2988 -0.6247 +vn 0.5522 -0.5522 -0.6247 +vn 0.2988 -0.7214 -0.6247 +vn 0.0000 -0.7809 -0.6247 +vn -0.2988 -0.7214 -0.6247 +vn -0.5522 -0.5522 -0.6247 +vn -0.8482 -0.3513 -0.3965 +vn -0.7214 -0.2988 -0.6247 +vn -0.7809 -0.0000 -0.6247 +vn -0.3513 0.8482 0.3965 +vn -0.0000 0.9180 0.3965 +vn 0.3513 0.8482 0.3965 +vn 0.6492 0.6492 0.3965 +vn 0.8482 0.3513 0.3965 +vn 0.9180 -0.0000 0.3965 +vn 0.8482 -0.3513 0.3965 +vn 0.6492 -0.6492 0.3965 +vn 0.3513 -0.8482 0.3965 +vn -0.0000 -0.9180 0.3965 +vn -0.3513 -0.8482 0.3965 +vn -0.6492 -0.6492 0.3965 +vn -0.8482 -0.3513 0.3965 +vn -0.9180 0.0000 0.3965 +vn -0.2625 0.6337 0.7277 +vn 0.0000 0.6859 0.7277 +vn 0.2625 0.6337 0.7277 +vn 0.4850 0.4850 0.7277 +vn 0.6337 0.2625 0.7277 +vn 0.6859 0.0000 0.7277 +vn 0.6337 -0.2625 0.7277 +vn 0.4850 -0.4850 0.7277 +vn 0.2625 -0.6337 0.7277 +vn 0.0000 -0.6859 0.7277 +vn -0.2625 -0.6337 0.7277 +vn -0.4850 -0.4850 0.7277 +vn -0.6337 -0.2625 0.7277 +vn -0.6859 -0.0000 0.7277 +vn -0.9472 0.3207 0.0000 +vn -0.9808 0.1951 0.0000 +vn 0.9472 -0.3207 0.0000 +vn 0.9808 -0.1951 0.0000 +vn -0.9808 -0.1951 0.0000 +vn 0.9808 0.1951 0.0000 +vn -0.3207 -0.9472 0.0000 +vn -0.1951 -0.9808 0.0000 +vn -0.1951 0.9808 0.0000 +vn 0.3207 0.9472 0.0000 +vn 0.1951 0.9808 0.0000 +vn 0.1951 -0.9808 0.0000 +vn 0.3207 -0.9472 0.0000 +vn -0.3207 0.9472 0.0000 +vn -0.9472 -0.3207 0.0000 +vn 0.9472 0.3207 0.0000 +s off +f 189/254/71 185/255/71 181/256/71 +f 294/257/71 251/258/71 250/259/71 +f 249/260/71 294/261/71 250/262/71 +f 249/263/72 307/264/72 293/265/72 +f 262/266/71 307/267/71 263/268/71 +f 261/269/71 306/270/71 262/266/71 +f 248/271/73 305/272/73 261/273/73 +f 291/274/71 248/275/71 247/276/71 +f 246/277/71 291/274/71 247/276/71 +f 259/278/74 290/279/74 246/280/74 +f 302/281/71 259/282/71 258/283/71 +f 301/284/71 258/283/71 257/285/71 +f 245/286/75 301/287/75 257/288/75 +f 288/289/71 245/290/71 244/291/71 +f 299/292/71 244/291/71 255/293/71 +f 315/294/76 255/295/76 271/296/76 +f 314/297/71 271/298/71 270/299/71 +f 265/300/77 295/301/77 309/302/77 +f 310/303/71 265/304/71 309/305/71 +f 311/306/71 266/307/71 310/303/71 +f 252/308/78 311/309/78 296/310/78 +f 297/311/71 252/312/71 296/313/71 +f 254/314/71 297/311/71 298/315/71 +f 269/316/79 298/317/79 313/318/79 +f 313/319/71 270/299/71 269/320/71 +f 287/321/80 330/322/80 286/323/80 +f 272/324/80 331/325/80 287/321/80 +f 273/326/80 316/327/80 272/324/80 +f 274/328/80 317/329/80 273/326/80 +f 275/330/80 318/331/80 274/328/80 +f 275/330/80 320/332/80 319/333/80 +f 277/334/80 320/332/80 276/335/80 +f 277/334/80 322/336/80 321/337/80 +f 278/338/80 323/339/80 322/336/80 +f 279/340/80 324/341/80 323/339/80 +f 280/342/80 325/343/80 324/344/80 +f 282/345/80 325/343/80 281/346/80 +f 282/345/80 327/347/80 326/348/80 +f 283/349/80 328/350/80 327/347/80 +f 285/351/80 328/350/80 284/352/80 +f 286/323/80 329/353/80 285/351/80 +f 332/354/81 335/355/81 333/356/81 +f 339/357/82 336/358/82 337/359/82 +f 342/360/82 345/361/82 343/362/82 +f 332/354/83 336/358/83 338/363/83 +f 334/364/71 339/365/71 335/366/71 +f 335/355/84 339/367/84 337/368/84 +f 333/356/85 341/369/85 332/354/85 +f 349/370/81 346/371/81 347/372/81 +f 342/360/84 346/371/84 348/373/84 +f 344/374/71 349/375/71 345/376/71 +f 345/361/83 349/377/83 347/378/83 +f 343/362/86 351/379/86 342/360/86 +f 352/380/83 355/381/83 353/382/83 +f 359/383/84 356/384/84 357/385/84 +f 362/386/84 365/387/84 363/388/84 +f 352/380/82 356/384/82 358/389/82 +f 354/390/71 359/391/71 355/392/71 +f 355/381/81 359/393/81 357/394/81 +f 353/382/87 361/395/87 352/380/87 +f 369/396/83 366/397/83 367/398/83 +f 362/386/81 366/397/81 368/399/81 +f 365/400/71 368/399/71 369/401/71 +f 365/387/82 369/402/82 367/403/82 +f 363/388/88 371/404/88 362/386/88 +f 181/256/71 180/405/71 179/406/71 +f 179/406/71 194/407/71 181/256/71 +f 194/407/71 193/408/71 181/256/71 +f 193/408/71 192/409/71 191/410/71 +f 191/410/71 190/411/71 193/408/71 +f 190/411/71 189/254/71 193/408/71 +f 189/254/71 188/412/71 185/255/71 +f 188/412/71 187/413/71 185/255/71 +f 187/413/71 186/414/71 185/255/71 +f 185/255/71 184/415/71 181/256/71 +f 184/415/71 183/416/71 181/256/71 +f 183/416/71 182/417/71 181/256/71 +f 181/256/71 193/408/71 189/254/71 +f 294/257/71 295/418/71 251/258/71 +f 249/260/71 293/419/71 294/261/71 +f 249/263/72 263/420/72 307/264/72 +f 262/266/71 306/270/71 307/267/71 +f 261/269/71 305/421/71 306/270/71 +f 248/271/73 292/422/73 305/272/73 +f 291/274/71 292/423/71 248/275/71 +f 246/277/71 290/424/71 291/274/71 +f 259/278/74 303/425/74 290/279/74 +f 302/281/71 303/426/71 259/282/71 +f 301/284/71 302/281/71 258/283/71 +f 245/286/75 289/427/75 301/287/75 +f 288/289/71 289/428/71 245/290/71 +f 299/292/71 288/289/71 244/291/71 +f 315/294/76 299/429/76 255/295/76 +f 314/297/71 315/430/71 271/298/71 +f 265/300/77 251/431/77 295/301/77 +f 310/303/71 266/307/71 265/304/71 +f 311/306/71 267/432/71 266/307/71 +f 252/308/78 267/433/78 311/309/78 +f 297/311/71 253/434/71 252/312/71 +f 254/314/71 253/434/71 297/311/71 +f 269/316/79 254/435/79 298/317/79 +f 313/319/71 314/297/71 270/299/71 +f 287/321/80 331/325/80 330/322/80 +f 272/324/80 316/327/80 331/325/80 +f 273/326/80 317/329/80 316/327/80 +f 274/328/80 318/331/80 317/329/80 +f 275/330/80 319/333/80 318/331/80 +f 275/330/80 276/335/80 320/332/80 +f 277/334/80 321/337/80 320/332/80 +f 277/334/80 278/338/80 322/336/80 +f 278/338/80 279/340/80 323/339/80 +f 279/340/80 280/436/80 324/341/80 +f 280/342/80 281/346/80 325/343/80 +f 282/345/80 326/348/80 325/343/80 +f 282/345/80 283/349/80 327/347/80 +f 283/349/80 284/352/80 328/350/80 +f 285/351/80 329/353/80 328/350/80 +f 286/323/80 330/322/80 329/353/80 +f 332/354/81 334/364/81 335/355/81 +f 339/357/82 338/363/82 336/358/82 +f 342/360/82 344/374/82 345/361/82 +f 338/363/83 334/364/83 332/354/83 +f 332/354/83 341/437/83 336/358/83 +f 334/364/71 338/363/71 339/365/71 +f 340/438/84 333/356/84 337/368/84 +f 333/356/84 335/355/84 337/368/84 +f 333/356/85 340/439/85 341/369/85 +f 349/370/81 348/373/81 346/371/81 +f 348/373/84 344/374/84 342/360/84 +f 342/360/84 351/440/84 346/371/84 +f 344/374/71 348/373/71 349/375/71 +f 350/441/83 343/362/83 347/378/83 +f 343/362/83 345/361/83 347/378/83 +f 343/362/86 350/442/86 351/379/86 +f 352/380/83 354/390/83 355/381/83 +f 359/383/84 358/389/84 356/384/84 +f 362/386/84 364/443/84 365/387/84 +f 358/389/82 354/390/82 352/380/82 +f 352/380/82 361/444/82 356/384/82 +f 354/390/71 358/389/71 359/391/71 +f 360/445/81 353/382/81 357/394/81 +f 353/382/81 355/381/81 357/394/81 +f 353/382/87 360/446/87 361/395/87 +f 369/396/83 368/399/83 366/397/83 +f 368/399/81 364/443/81 362/386/81 +f 362/386/81 371/447/81 366/397/81 +f 365/400/71 364/443/71 368/399/71 +f 370/448/82 363/388/82 367/403/82 +f 363/388/82 365/387/82 367/403/82 +f 363/388/88 370/449/88 371/404/88 +s 1 +f 182/450/89 213/451/90 181/452/91 +f 213/451/90 166/453/72 165/454/92 +f 166/453/72 229/455/93 165/454/92 +f 197/456/94 230/457/95 198/458/96 +f 212/459/97 165/454/92 164/460/79 +f 211/461/98 164/460/79 163/462/81 +f 226/463/99 163/462/81 178/464/74 +f 225/465/100 178/464/74 177/466/101 +f 224/467/102 177/466/101 176/468/77 +f 223/469/103 176/468/77 175/470/83 +f 222/471/104 175/470/83 174/472/76 +f 221/473/105 174/472/76 173/474/106 +f 220/475/107 173/474/106 172/476/73 +f 219/477/108 172/476/73 171/478/82 +f 170/479/78 219/480/108 171/481/82 +f 169/482/109 218/483/110 170/479/78 +f 168/484/75 217/485/111 169/482/109 +f 215/486/112 168/484/75 167/487/84 +f 214/488/113 167/487/84 166/453/72 +f 181/489/91 212/459/97 180/490/114 +f 180/491/114 211/461/98 179/492/115 +f 179/493/115 226/463/99 194/494/116 +f 194/495/116 225/465/100 193/496/117 +f 193/497/117 224/467/102 192/498/118 +f 191/499/119 224/467/102 223/469/103 +f 191/500/119 222/471/104 190/501/120 +f 189/502/121 222/471/104 221/473/105 +f 189/503/121 220/475/107 188/504/122 +f 188/505/122 219/477/108 187/506/123 +f 186/507/124 219/480/108 218/483/110 +f 186/508/124 217/485/111 185/509/125 +f 185/510/125 216/511/126 184/512/127 +f 184/513/127 215/486/112 183/514/128 +f 183/515/128 214/488/113 182/516/89 +f 165/454/92 228/517/129 164/460/79 +f 164/460/79 227/518/130 163/462/81 +f 163/462/81 242/519/131 178/464/74 +f 178/464/74 241/520/132 177/466/101 +f 176/468/77 241/520/132 240/521/133 +f 176/468/77 239/522/134 175/470/83 +f 175/470/83 238/523/135 174/472/76 +f 174/472/76 237/524/136 173/474/106 +f 173/474/106 236/525/137 172/476/73 +f 172/476/73 235/526/138 171/478/82 +f 171/481/82 234/527/139 170/479/78 +f 169/482/109 234/527/139 233/528/140 +f 169/482/109 232/529/141 168/484/75 +f 168/484/75 231/530/142 167/487/84 +f 166/453/72 231/530/142 230/457/95 +f 196/531/143 229/455/93 197/532/94 +f 227/518/130 196/533/143 195/534/144 +f 242/519/131 195/535/144 210/536/145 +f 241/520/132 210/537/145 209/538/146 +f 240/521/133 209/539/146 208/540/147 +f 239/522/134 208/541/147 207/542/148 +f 238/523/135 207/543/148 206/544/149 +f 205/545/150 238/523/135 206/546/149 +f 236/525/137 205/547/150 204/548/151 +f 235/526/138 204/549/151 203/550/152 +f 234/527/139 203/551/152 202/552/153 +f 233/528/140 202/553/153 201/554/154 +f 232/529/141 201/555/154 200/556/155 +f 199/557/156 232/529/141 200/558/155 +f 230/457/95 199/559/156 198/560/96 +f 196/533/143 243/561/80 195/534/144 +f 195/535/144 243/562/80 210/536/145 +f 210/537/145 243/563/80 209/538/146 +f 209/539/146 243/564/80 208/540/147 +f 208/541/147 243/565/80 207/542/148 +f 207/543/148 243/566/80 206/544/149 +f 206/546/149 243/567/80 205/545/150 +f 205/547/150 243/568/80 204/548/151 +f 204/549/151 243/569/80 203/550/152 +f 203/551/152 243/570/80 202/552/153 +f 202/553/153 243/571/80 201/554/154 +f 201/555/154 243/572/80 200/556/155 +f 200/558/155 243/573/80 199/557/156 +f 199/559/156 243/574/80 198/560/96 +f 198/458/96 243/575/80 197/456/94 +f 197/532/94 243/576/80 196/531/143 +f 247/276/84 259/282/157 246/277/158 +f 253/434/83 267/432/159 252/312/160 +f 248/275/161 260/577/84 247/276/84 +f 254/314/162 268/578/83 253/434/83 +f 250/262/82 263/268/163 249/260/164 +f 245/290/165 256/579/81 244/291/81 +f 244/291/81 271/298/166 255/293/167 +f 251/258/168 264/580/82 250/259/82 +f 265/304/169 280/342/82 264/580/82 +f 258/283/92 273/326/79 257/285/170 +f 266/307/106 281/346/73 265/304/169 +f 259/282/157 274/328/92 258/283/92 +f 267/432/159 282/345/106 266/307/106 +f 260/577/84 275/330/72 259/282/157 +f 268/578/83 283/349/76 267/432/159 +f 261/269/171 276/335/84 260/577/84 +f 269/320/172 284/352/83 268/578/83 +f 262/266/109 277/334/75 261/269/171 +f 270/299/101 285/351/77 269/320/172 +f 263/268/163 278/338/109 262/266/109 +f 271/298/166 286/323/101 270/299/101 +f 264/581/82 279/340/78 263/268/163 +f 257/285/170 272/324/81 256/579/81 +f 256/579/81 287/321/74 271/298/166 +f 303/425/159 291/582/83 290/279/160 +f 311/309/157 297/583/84 296/310/158 +f 304/584/83 292/422/162 291/582/83 +f 312/585/84 298/317/161 297/583/84 +f 307/264/166 294/586/81 293/265/167 +f 300/587/82 289/427/168 288/588/82 +f 315/294/163 288/588/82 299/429/164 +f 308/589/81 295/301/165 294/590/81 +f 318/331/106 303/425/159 302/591/106 +f 326/348/92 311/309/157 310/592/92 +f 319/333/76 304/584/83 303/425/159 +f 327/347/72 312/585/84 311/309/157 +f 320/332/83 305/272/172 304/584/83 +f 328/350/84 313/318/171 312/585/84 +f 321/337/77 306/593/101 305/272/172 +f 329/353/75 314/594/109 313/318/171 +f 322/336/101 307/264/166 306/593/101 +f 330/322/109 315/294/163 314/594/109 +f 323/339/74 308/595/81 307/264/166 +f 316/327/82 301/287/169 300/587/82 +f 331/325/78 300/587/82 315/294/163 +f 324/344/81 309/302/170 308/589/81 +f 317/329/73 302/591/106 301/287/169 +f 325/343/79 310/592/92 309/302/170 +f 182/450/89 214/488/113 213/451/90 +f 213/451/90 214/488/113 166/453/72 +f 166/453/72 230/457/95 229/455/93 +f 197/456/94 229/455/93 230/457/95 +f 212/459/97 213/451/90 165/454/92 +f 211/461/98 212/459/97 164/460/79 +f 226/463/99 211/461/98 163/462/81 +f 225/465/100 226/463/99 178/464/74 +f 224/467/102 225/465/100 177/466/101 +f 223/469/103 224/467/102 176/468/77 +f 222/471/104 223/469/103 175/470/83 +f 221/473/105 222/471/104 174/472/76 +f 220/475/107 221/473/105 173/474/106 +f 219/477/108 220/475/107 172/476/73 +f 170/479/78 218/483/110 219/480/108 +f 169/482/109 217/485/111 218/483/110 +f 168/484/75 216/511/126 217/485/111 +f 215/486/112 216/511/126 168/484/75 +f 214/488/113 215/486/112 167/487/84 +f 181/489/91 213/451/90 212/459/97 +f 180/491/114 212/459/97 211/461/98 +f 179/493/115 211/461/98 226/463/99 +f 194/495/116 226/463/99 225/465/100 +f 193/497/117 225/465/100 224/467/102 +f 191/499/119 192/596/118 224/467/102 +f 191/500/119 223/469/103 222/471/104 +f 189/502/121 190/597/120 222/471/104 +f 189/503/121 221/473/105 220/475/107 +f 188/505/122 220/475/107 219/477/108 +f 186/507/124 187/598/123 219/480/108 +f 186/508/124 218/483/110 217/485/111 +f 185/510/125 217/485/111 216/511/126 +f 184/513/127 216/511/126 215/486/112 +f 183/515/128 215/486/112 214/488/113 +f 165/454/92 229/455/93 228/517/129 +f 164/460/79 228/517/129 227/518/130 +f 163/462/81 227/518/130 242/519/131 +f 178/464/74 242/519/131 241/520/132 +f 176/468/77 177/466/101 241/520/132 +f 176/468/77 240/521/133 239/522/134 +f 175/470/83 239/522/134 238/523/135 +f 174/472/76 238/523/135 237/524/136 +f 173/474/106 237/524/136 236/525/137 +f 172/476/73 236/525/137 235/526/138 +f 171/481/82 235/599/138 234/527/139 +f 169/482/109 170/479/78 234/527/139 +f 169/482/109 233/528/140 232/529/141 +f 168/484/75 232/529/141 231/530/142 +f 166/453/72 167/487/84 231/530/142 +f 196/531/143 228/517/129 229/455/93 +f 227/518/130 228/517/129 196/533/143 +f 242/519/131 227/518/130 195/535/144 +f 241/520/132 242/519/131 210/537/145 +f 240/521/133 241/520/132 209/539/146 +f 239/522/134 240/521/133 208/541/147 +f 238/523/135 239/522/134 207/543/148 +f 205/545/150 237/524/136 238/523/135 +f 236/525/137 237/524/136 205/547/150 +f 235/526/138 236/525/137 204/549/151 +f 234/527/139 235/599/138 203/551/152 +f 233/528/140 234/527/139 202/553/153 +f 232/529/141 233/528/140 201/555/154 +f 199/557/156 231/530/142 232/529/141 +f 230/457/95 231/530/142 199/559/156 +f 247/276/84 260/577/84 259/282/157 +f 253/434/83 268/578/83 267/432/159 +f 248/275/161 261/269/171 260/577/84 +f 254/314/162 269/320/172 268/578/83 +f 250/262/82 264/581/82 263/268/163 +f 245/290/165 257/285/170 256/579/81 +f 244/291/81 256/579/81 271/298/166 +f 251/258/168 265/304/169 264/580/82 +f 265/304/169 281/346/73 280/342/82 +f 258/283/92 274/328/92 273/326/79 +f 266/307/106 282/345/106 281/346/73 +f 259/282/157 275/330/72 274/328/92 +f 267/432/159 283/349/76 282/345/106 +f 260/577/84 276/335/84 275/330/72 +f 268/578/83 284/352/83 283/349/76 +f 261/269/171 277/334/75 276/335/84 +f 269/320/172 285/351/77 284/352/83 +f 262/266/109 278/338/109 277/334/75 +f 270/299/101 286/323/101 285/351/77 +f 263/268/163 279/340/78 278/338/109 +f 271/298/166 287/321/74 286/323/101 +f 264/581/82 280/436/82 279/340/78 +f 257/285/170 273/326/79 272/324/81 +f 256/579/81 272/324/81 287/321/74 +f 303/425/159 304/584/83 291/582/83 +f 311/309/157 312/585/84 297/583/84 +f 304/584/83 305/272/172 292/422/162 +f 312/585/84 313/318/171 298/317/161 +f 307/264/166 308/595/81 294/586/81 +f 300/587/82 301/287/169 289/427/168 +f 315/294/163 300/587/82 288/588/82 +f 308/589/81 309/302/170 295/301/165 +f 318/331/106 319/333/76 303/425/159 +f 326/348/92 327/347/72 311/309/157 +f 319/333/76 320/332/83 304/584/83 +f 327/347/72 328/350/84 312/585/84 +f 320/332/83 321/337/77 305/272/172 +f 328/350/84 329/353/75 313/318/171 +f 321/337/77 322/336/101 306/593/101 +f 329/353/75 330/322/109 314/594/109 +f 322/336/101 323/339/74 307/264/166 +f 330/322/109 331/325/78 315/294/163 +f 323/339/74 324/341/81 308/595/81 +f 316/327/82 317/329/73 301/287/169 +f 331/325/78 316/327/82 300/587/82 +f 324/344/81 325/343/79 309/302/170 +f 317/329/73 318/331/106 302/591/106 +f 325/343/79 326/348/92 310/592/92 +o Launcher +v -0.250000 0.000000 8.000000 +v 0.250000 0.000000 8.000000 +v -0.250000 0.000000 -2.000000 +v 0.250000 0.000000 -2.000000 +v -0.250000 -0.250000 8.000000 +v 0.250000 -0.250000 8.000000 +v -0.250000 -0.500000 -2.000000 +v -0.250000 -0.500000 7.750000 +v 0.250000 -0.500000 7.750000 +v 0.250000 -0.500000 -2.000000 +v -1.000000 1.250000 -0.250000 +v -1.000000 1.250000 6.750000 +v -1.000000 0.750000 6.750000 +v -1.000000 0.750000 -0.250000 +v -0.750000 0.250000 6.750000 +v -0.750000 0.250000 -0.250000 +v -0.250000 -0.125000 6.750000 +v -0.250000 -0.125000 -0.250000 +v -1.088388 1.338388 -5.750000 +v -1.125000 1.250000 -5.750000 +v -1.088388 1.161612 -5.750000 +v -1.000000 1.125000 -5.750000 +v -0.911612 1.161612 -5.750000 +v -0.875000 1.250000 -5.750000 +v -0.911612 1.338388 -5.750000 +v -1.000000 1.375000 -5.750000 +v -1.088388 1.338388 -0.250000 +v -1.125000 1.250000 -0.250000 +v -1.088388 1.161612 -0.250000 +v -1.000000 1.125000 -0.250000 +v -0.911612 1.161612 -0.250000 +v -0.875000 1.250000 -0.250000 +v -0.911612 1.338388 -0.250000 +v -1.000000 1.375000 -0.250000 +v -0.250000 0.000000 -3.000000 +v 0.250000 0.000000 -3.000000 +v -0.250000 -0.500000 -3.000000 +v 0.250000 -0.500000 -3.000000 +v 0.250000 0.000000 -7.500000 +v -0.250000 0.000000 -7.500000 +v 0.250000 -0.500000 -7.500000 +v -0.250000 -0.500000 -7.500000 +v -1.000000 1.500000 1.000000 +v -1.176777 1.426777 1.000000 +v -1.250000 1.250000 1.000000 +v -1.176777 1.073223 1.000000 +v -1.000000 1.000000 1.000000 +v -0.823223 1.073223 1.000000 +v -0.750000 1.250000 1.000000 +v -0.823223 1.426777 1.000000 +v -1.176777 1.426777 -1.500000 +v -1.250000 1.250000 -1.500000 +v -1.000000 1.500000 -1.500000 +v -1.176777 1.073223 -1.500000 +v -1.000000 1.000000 -1.500000 +v -0.823223 1.073223 -1.500000 +v -0.750000 1.250000 -1.500000 +v -0.823223 1.426777 -1.500000 +v 1.000000 1.250000 -0.250000 +v 1.000000 0.750000 -0.250000 +v 0.750000 0.250000 -0.250000 +v 0.250000 -0.125000 -0.250000 +v -1.000000 1.250000 -0.250000 +v 1.000000 1.375000 -0.250000 +v 1.088388 1.338388 -0.250000 +v 1.125000 1.250000 -0.250000 +v 1.088388 1.161612 -0.250000 +v 1.000000 1.125000 -0.250000 +v 0.911612 1.161612 -0.250000 +v 0.875000 1.250000 -0.250000 +v 0.911612 1.338388 -0.250000 +v -1.000000 0.750000 -0.250000 +v -0.750000 0.250000 -0.250000 +v -0.250000 -0.125000 -0.250000 +v -1.088388 1.338388 6.750000 +v -1.088388 1.338388 -0.250000 +v -1.125000 1.250000 6.750000 +v -1.125000 1.250000 -0.250000 +v -1.088388 1.161612 6.750000 +v -1.088388 1.161612 -0.250000 +v -1.000000 1.125000 6.750000 +v -1.000000 1.125000 -0.250000 +v 1.000000 0.750000 -5.750000 +v 1.000000 1.250000 -5.750000 +v 0.750000 0.250000 -5.750000 +v 0.250000 -0.125000 -5.750000 +v -0.911612 1.161612 6.750000 +v -0.911612 1.161612 -0.250000 +v 1.000000 1.375000 -5.750000 +v 1.088388 1.338388 -5.750000 +v 1.125000 1.250000 -5.750000 +v -0.750000 0.250000 -5.750000 +v -1.000000 0.750000 -5.750000 +v 1.088388 1.161612 -5.750000 +v 1.000000 1.125000 -5.750000 +v -0.875000 1.250000 6.750000 +v 0.911612 1.161612 -5.750000 +v -1.000000 1.250000 -5.750000 +v 0.875000 1.250000 -5.750000 +v -0.250000 -0.125000 -5.750000 +v 0.911612 1.338388 -5.750000 +v -0.875000 1.250000 -0.250000 +v -0.911612 1.338388 6.750000 +v -0.911612 1.338388 -0.250000 +v -1.000000 1.375000 6.750000 +v -1.000000 1.375000 -0.250000 +v 0.250000 0.000000 -7.500000 +v -0.250000 0.000000 -7.500000 +v 0.250000 0.000000 -6.250000 +v -0.250000 0.000000 -6.250000 +v 0.250000 1.500000 -6.250000 +v -0.250000 1.500000 -6.250000 +v 0.250000 1.750000 -6.750000 +v -0.250000 1.750000 -6.750000 +v -0.250000 -0.125000 -5.750000 +v -1.000000 1.250000 -5.750000 +v -1.000000 0.750000 -5.750000 +v -0.750000 0.250000 -5.750000 +v 0.250000 -0.125000 -5.750000 +v 0.750000 0.250000 -5.750000 +v 1.000000 1.250000 -5.750000 +v 1.000000 0.750000 -5.750000 +v -0.250000 -0.125000 -0.250000 +v -0.750000 0.250000 -0.250000 +v -1.000000 0.750000 -0.250000 +v -1.000000 1.250000 -0.250000 +v 0.250000 -0.125000 -0.250000 +v 0.750000 0.250000 -0.250000 +v 1.000000 0.750000 -0.250000 +v 1.000000 1.250000 -0.250000 +v -0.250000 -0.125000 -0.250000 +v -0.250000 -0.125000 6.750000 +v -0.750000 0.250000 -0.250000 +v -0.750000 0.250000 6.750000 +v -1.000000 0.750000 -0.250000 +v -1.000000 0.750000 6.750000 +v -1.000000 1.250000 6.750000 +v -1.000000 1.250000 -0.250000 +v 0.000000 1.187500 -6.250000 +v -0.132583 1.132583 -6.250000 +v -0.187500 1.000000 -6.250000 +v -0.132583 0.867417 -6.250000 +v 0.000000 0.812500 -6.250000 +v 0.132583 0.867417 -6.250000 +v 0.187500 1.000000 -6.250000 +v 0.132583 1.132583 -6.250000 +v 0.000000 1.187500 -6.125000 +v -0.132583 1.132583 -6.125000 +v -0.187500 1.000000 -6.125000 +v -0.132583 0.867417 -6.125000 +v 0.000000 0.812500 -6.125000 +v 0.132583 0.867417 -6.125000 +v 0.187500 1.000000 -6.125000 +v 0.132583 1.132583 -6.125000 +v 0.000000 1.437500 -6.125001 +v -0.309359 1.309359 -6.125001 +v -0.437500 1.000000 -6.125001 +v -0.309359 0.690640 -6.125001 +v 0.000000 0.562500 -6.125001 +v 0.309359 0.690640 -6.125001 +v 0.437500 1.000000 -6.125001 +v 0.309359 1.309359 -6.125001 +v 0.000000 1.437500 -5.125001 +v -0.309359 1.309359 -5.125001 +v -0.437500 1.000000 -5.125001 +v -0.309359 0.690640 -5.125001 +v 0.000000 0.562500 -5.125001 +v 0.309359 0.690640 -5.125001 +v 0.437500 1.000000 -5.125001 +v 0.309359 1.309359 -5.125001 +v 0.000000 1.500000 -5.625001 +v -0.353553 1.353553 -5.625001 +v -0.500000 1.000000 -5.625001 +v -0.353553 0.646446 -5.625001 +v 0.000000 0.500000 -5.625001 +v 0.353553 0.646446 -5.625001 +v 0.500000 1.000000 -5.625001 +v 0.353553 1.353553 -5.625001 +v 0.000000 1.250000 -5.125001 +v -0.176777 1.176776 -5.125001 +v -0.250000 1.000000 -5.125001 +v -0.176777 0.823223 -5.125001 +v 0.000000 0.750000 -5.125001 +v 0.176777 0.823223 -5.125001 +v 0.250000 1.000000 -5.125001 +v 0.176777 1.176776 -5.125001 +v 0.000000 1.250000 -2.750001 +v -0.176777 1.176776 -2.750001 +v -0.250000 1.000000 -2.750001 +v -0.176777 0.823223 -2.750001 +v 0.000000 0.750000 -2.750001 +v 0.176777 0.823223 -2.750001 +v 0.250000 1.000000 -2.750001 +v 0.176777 1.176776 -2.750001 +v -0.687500 0.062500 3.000000 +v -0.906250 0.003886 3.000000 +v -1.066386 -0.156250 3.000000 +v -1.125000 -0.375000 3.000000 +v -1.066386 -0.593750 3.000000 +v -0.906250 -0.753886 3.000000 +v -0.687500 -0.812500 3.000000 +v -0.468750 -0.753886 3.000000 +v -0.308614 -0.593750 3.000000 +v -0.250000 -0.375000 3.000000 +v -0.308614 -0.156250 3.000000 +v -0.468750 0.003886 3.000000 +v -0.687500 0.062500 -2.000000 +v -0.906250 0.003886 -2.000000 +v -1.066386 -0.156250 -2.000000 +v -1.125000 -0.375000 -2.000000 +v -1.066386 -0.593750 -2.000000 +v -0.906250 -0.753886 -2.000000 +v -0.687500 -0.812500 -2.000000 +v -0.468750 -0.753886 -2.000000 +v -0.308614 -0.593750 -2.000000 +v -0.250000 -0.375000 -2.000000 +v -0.308614 -0.156250 -2.000000 +v -0.468750 0.003886 -2.000000 +v -0.687500 -0.125000 3.312500 +v -0.812500 -0.158494 3.312500 +v -0.904006 -0.250000 3.312500 +v -0.937500 -0.375000 3.312500 +v -0.904006 -0.500000 3.312500 +v -0.812500 -0.591506 3.312500 +v -0.687500 -0.625000 3.312500 +v -0.562500 -0.591506 3.312500 +v -0.470994 -0.500000 3.312500 +v -0.437500 -0.375000 3.312500 +v -0.470994 -0.250000 3.312500 +v -0.562500 -0.158494 3.312500 +v -0.687500 -0.375000 3.437500 +v -0.687500 -0.125000 -2.312500 +v -0.812500 -0.158494 -2.312500 +v -0.904006 -0.250000 -2.312500 +v -0.937500 -0.375000 -2.312500 +v -0.904006 -0.500000 -2.312500 +v -0.812500 -0.591506 -2.312500 +v -0.687500 -0.625000 -2.312500 +v -0.562500 -0.591506 -2.312500 +v -0.470994 -0.500000 -2.312500 +v -0.437500 -0.375000 -2.312500 +v -0.470994 -0.250000 -2.312500 +v -0.562500 -0.158494 -2.312500 +v -0.687500 -0.375000 -2.437500 +v -0.125000 -0.500000 7.625000 +v 0.125000 -0.500000 7.625000 +v -0.125000 -0.500000 7.375000 +v 0.125000 -0.500000 7.375000 +v -0.125000 -0.875000 7.625000 +v 0.125000 -0.875000 7.625000 +v -0.125000 -0.875000 7.375000 +v 0.125000 -0.875000 7.375000 +v 0.000000 -0.625000 7.375000 +v -0.088388 -0.661612 7.375000 +v -0.125000 -0.750000 7.375000 +v -0.088388 -0.838388 7.375000 +v 0.000000 -0.875000 7.375000 +v 0.088388 -0.838388 7.375000 +v 0.125000 -0.750000 7.375000 +v 0.088388 -0.661612 7.375000 +v 0.000000 -0.625000 1.000000 +v -0.088388 -0.661612 1.000000 +v -0.125000 -0.750000 1.000000 +v -0.088388 -0.838388 1.000000 +v 0.000000 -0.875000 1.000000 +v 0.088388 -0.838388 1.000000 +v 0.125000 -0.750000 1.000000 +v 0.088388 -0.661612 1.000000 +v 0.250000 -0.500000 -2.000000 +v -0.250000 -0.500000 -2.000000 +v 0.250000 -1.000000 -2.000000 +v -0.250000 -1.000000 -2.000000 +v 0.375000 -0.500000 -2.000000 +v -0.375000 -0.500000 -2.000000 +v 0.375000 -0.500000 1.000000 +v -0.375000 -0.500000 1.000000 +v 0.375000 -1.125000 -2.000000 +v -0.375000 -1.125000 -2.000000 +v 0.375000 -1.125000 1.000000 +v -0.375000 -1.125000 1.000000 +v 0.250000 2.125000 -7.500000 +v -0.250000 2.125000 -7.500000 +v 0.250000 2.125000 -6.750000 +v -0.250000 2.125000 -6.750000 +v 0.000000 1.250000 -7.500001 +v -0.176777 1.176776 -7.500001 +v -0.250000 1.000000 -7.500001 +v -0.176777 0.823223 -7.500001 +v 0.000000 0.750000 -7.500001 +v 0.176777 0.823223 -7.500001 +v 0.250000 1.000000 -7.500001 +v 0.176777 1.176776 -7.500001 +v 0.000000 1.250000 -7.750001 +v -0.176777 1.176776 -7.750001 +v -0.250000 1.000000 -7.750001 +v -0.176777 0.823223 -7.750001 +v 0.000000 0.750000 -7.750001 +v 0.176777 0.823223 -7.750001 +v 0.250000 1.000000 -7.750001 +v 0.176777 1.176776 -7.750001 +v 0.250000 -0.375000 -6.875000 +v 0.250000 1.125000 -6.875000 +v 0.250000 -0.375000 -6.625000 +v 0.250000 1.125000 -6.625000 +v 0.375000 -0.375000 -6.875000 +v 0.375000 1.125000 -6.875000 +v 0.375000 -0.375000 -6.625000 +v 0.375000 1.125000 -6.625000 +v -0.375000 -0.375000 -6.875000 +v -0.375000 1.125000 -6.875000 +v -0.375000 -0.375000 -6.625000 +v -0.375000 1.125000 -6.625000 +v -0.250000 -0.375000 -6.875000 +v -0.250000 1.125000 -6.875000 +v -0.250000 -0.375000 -6.625000 +v -0.250000 1.125000 -6.625000 +v 0.250000 1.437500 -7.375000 +v 0.250000 1.614277 -7.301777 +v 0.250000 1.687500 -7.125000 +v 0.250000 1.614277 -6.948223 +v 0.250000 1.437500 -6.875000 +v 0.250000 1.260723 -6.948223 +v 0.250000 1.187500 -7.125000 +v 0.250000 1.260723 -7.301777 +v 0.375000 1.437500 -7.375000 +v 0.375000 1.614277 -7.301777 +v 0.375000 1.687500 -7.125000 +v 0.375000 1.614277 -6.948223 +v 0.375000 1.437500 -6.875000 +v 0.375000 1.260723 -6.948223 +v 0.375000 1.187500 -7.125000 +v 0.375000 1.260723 -7.301777 +v -0.375000 1.437500 -7.375000 +v -0.375000 1.614277 -7.301777 +v -0.375000 1.687500 -7.125000 +v -0.375000 1.614277 -6.948223 +v -0.375000 1.437500 -6.875000 +v -0.375000 1.260723 -6.948223 +v -0.375000 1.187500 -7.125000 +v -0.375000 1.260723 -7.301777 +v -0.250000 1.437500 -7.375000 +v -0.250000 1.614277 -7.301777 +v -0.250000 1.687500 -7.125000 +v -0.250000 1.614277 -6.948223 +v -0.250000 1.437500 -6.875000 +v -0.250000 1.260723 -6.948223 +v -0.250000 1.187500 -7.125000 +v -0.250000 1.260723 -7.301777 +v -0.750000 -0.437500 -2.375000 +v -0.625000 -0.437500 -2.375000 +v -0.750000 -0.312500 -2.375000 +v -0.625000 -0.312500 -2.375000 +v -0.750000 -0.437500 -7.250000 +v -0.625000 -0.437500 -7.250000 +v -0.750000 -0.312500 -7.125000 +v -0.625000 -0.312500 -7.125000 +v -0.750000 0.312500 -7.250000 +v -0.625000 0.187500 -7.250000 +v -0.750000 0.312500 -7.125000 +v -0.625000 0.187500 -7.125000 +v -0.250000 0.312500 -7.250000 +v -0.250000 0.187500 -7.250000 +v -0.250000 0.312500 -7.125000 +v -0.250000 0.187500 -7.125000 +v -1.000000 1.187500 -5.562501 +v -1.000000 1.312500 -5.562501 +v -1.000000 1.187500 -5.687501 +v -1.000000 1.312500 -5.687501 +v 1.000000 1.187500 -5.562501 +v 1.000000 1.312500 -5.562501 +v 1.000000 1.187500 -5.687501 +v 1.000000 1.312500 -5.687501 +vt 0.028571 0.089888 +vt 0.600000 0.134831 +vt 0.028571 0.134831 +vt 0.628571 0.089888 +vt 0.600000 0.089888 +vt 0.042857 0.044944 +vt 0.014286 0.089888 +vt 0.600000 -0.000000 +vt 0.042857 -0.000000 +vt 0.014286 0.134831 +vt -0.000000 0.089888 +vt 0.042857 0.179775 +vt 0.028571 0.157303 +vt 0.714286 0.179775 +vt 0.657143 0.134831 +vt 0.714286 0.134831 +vt 1.000000 0.089888 +vt 0.971429 0.134831 +vt 0.971429 0.089888 +vt 0.735451 0.477528 +vt 0.733436 0.485181 +vt 0.723706 0.469876 +vt 0.735451 0.500000 +vt 0.733436 0.507652 +vt 0.723706 0.492347 +vt 0.714286 0.044944 +vt 0.714286 0.089888 +vt 0.971429 0.179775 +vt 0.714286 -0.000000 +vt 0.971429 0.044944 +vt 0.907093 0.443820 +vt 0.902924 0.459655 +vt 0.882791 0.427985 +vt 0.902924 0.472929 +vt 0.907093 0.488764 +vt 0.902924 0.504599 +vt 0.735451 0.477528 +vt 0.733436 0.485181 +vt 0.723706 0.469876 +vt 0.735451 0.500000 +vt 0.733436 0.507652 +vt 0.723706 0.492347 +vt 0.721692 0.432584 +vt 0.728571 0.421762 +vt 0.735451 0.432584 +vt 0.735451 0.455056 +vt 0.733436 0.462709 +vt 0.723707 0.447404 +vt 0.242857 0.921348 +vt 0.214286 0.898876 +vt 0.285714 0.764045 +vt 0.214286 0.764045 +vt 0.185714 0.898876 +vt 0.185714 0.764045 +vt 0.185714 0.943820 +vt 0.314286 0.955056 +vt 0.314286 0.764045 +vt 0.357143 0.921348 +vt 0.696429 0.590254 +vt 0.713942 0.601665 +vt 0.721196 0.629214 +vt 0.713942 0.578111 +vt 0.696429 0.589522 +vt 0.696429 0.511602 +vt 0.892857 0.511359 +vt 0.907065 0.533708 +vt 0.892857 0.556057 +vt 0.600000 0.567416 +vt 0.614286 0.533708 +vt 0.614286 0.567416 +vt 0.585714 0.533708 +vt 0.585714 0.567416 +vt 0.571429 0.567416 +vt 0.557143 0.567416 +vt 0.571429 0.533708 +vt 0.557143 0.533708 +vt 0.571429 0.511236 +vt 0.628571 0.089888 +vt 0.657143 0.089888 +vt 0.657143 -0.000000 +vt 0.657143 0.044944 +vt 0.035714 0.370787 +vt 0.207143 0.303371 +vt 0.207143 0.370787 +vt 0.207143 0.247191 +vt 0.035714 0.179775 +vt 0.207143 0.179775 +vt 0.035714 0.303371 +vt -0.000000 0.303371 +vt 0.035714 0.426966 +vt 0.242857 0.370787 +vt 0.242857 1.000000 +vt 0.285714 0.955056 +vt 0.285714 1.000000 +vt 0.214286 0.943820 +vt 0.185714 0.977528 +vt 0.135714 0.898847 +vt 0.121448 0.876405 +vt 0.135714 0.853963 +vt 0.164286 0.808989 +vt 0.178571 0.797753 +vt 0.178571 0.808989 +vt 0.164286 0.943820 +vt 0.178571 0.808989 +vt 0.178571 0.943820 +vt 0.178571 0.797753 +vt 0.164286 0.808989 +vt 0.164286 0.797753 +vt 0.157143 0.808989 +vt 0.157143 0.943820 +vt 0.164286 0.955056 +vt 0.178571 0.955056 +vt 0.185714 0.943820 +vt 0.185714 0.808989 +vt 0.185714 0.943820 +vt 0.178571 0.943820 +vt 0.164286 0.955056 +vt 0.164286 0.943820 +vt 0.157143 0.808989 +vt 0.121490 0.831461 +vt 0.135714 0.809085 +vt 0.149939 0.831461 +vt 0.135714 0.809086 +vt 0.149939 0.831461 +vt 0.135714 0.853836 +vt 0.935714 0.792135 +vt 0.664286 0.780899 +vt 0.935714 0.780899 +vt 0.935714 0.803371 +vt 0.664286 0.814607 +vt 0.657143 0.803371 +vt 0.935714 0.825843 +vt 0.935714 0.814607 +vt 0.657143 0.792135 +vt 0.650000 0.814607 +vt 0.621429 0.825843 +vt 0.614286 0.814607 +vt 0.621429 0.792135 +vt 0.650000 0.780899 +vt 0.614286 0.803371 +vt 0.585714 0.803371 +vt 0.607143 0.792135 +vt 0.585714 0.780899 +vt 0.607143 0.780899 +vt 0.607143 0.825843 +vt 0.585714 0.814607 +vt 0.585714 0.792135 +vt 0.500000 0.915730 +vt 0.385714 0.904494 +vt 0.500000 0.904494 +vt 0.385714 0.926966 +vt 0.500000 0.938202 +vt 0.385714 0.938202 +vt 0.385714 0.949438 +vt 0.500000 0.949438 +vt 0.385714 0.915730 +vt 0.628571 0.134831 +vt 0.028571 0.067416 +vt 0.600000 0.044944 +vt -0.000000 0.134831 +vt 0.600000 0.179775 +vt 0.657143 0.179775 +vt 1.000000 0.134831 +vt 0.728571 0.488350 +vt 0.723706 0.485181 +vt 0.721691 0.477528 +vt 0.728571 0.466706 +vt 0.733436 0.469876 +vt 0.728571 0.510822 +vt 0.723706 0.507652 +vt 0.721691 0.500000 +vt 0.728571 0.489177 +vt 0.733436 0.492347 +vt 0.971429 0.000000 +vt 0.892857 0.466214 +vt 0.882791 0.459655 +vt 0.878621 0.443820 +vt 0.892857 0.421426 +vt 0.902924 0.427985 +vt 0.892857 0.511158 +vt 0.882791 0.504599 +vt 0.878621 0.488764 +vt 0.882790 0.472929 +vt 0.892857 0.466370 +vt 0.728571 0.488350 +vt 0.723706 0.485181 +vt 0.721691 0.477528 +vt 0.728571 0.466706 +vt 0.733436 0.469876 +vt 0.728571 0.510822 +vt 0.723706 0.507652 +vt 0.721691 0.500000 +vt 0.728571 0.489177 +vt 0.733436 0.492347 +vt 0.733436 0.440236 +vt 0.728571 0.443406 +vt 0.723707 0.440236 +vt 0.723707 0.424931 +vt 0.733436 0.424931 +vt 0.728571 0.465878 +vt 0.723707 0.462709 +vt 0.721692 0.455056 +vt 0.728571 0.444234 +vt 0.733436 0.447404 +vt 0.242857 0.955056 +vt 0.385714 0.764045 +vt 0.385714 0.898876 +vt 0.357143 0.955056 +vt 0.713942 0.656762 +vt 0.696429 0.668174 +vt 0.678916 0.656762 +vt 0.671661 0.629214 +vt 0.678916 0.601665 +vt 0.678915 0.578111 +vt 0.671661 0.550562 +vt 0.678915 0.523013 +vt 0.713942 0.523013 +vt 0.721196 0.550562 +vt 0.882811 0.549511 +vt 0.878649 0.533708 +vt 0.882811 0.517905 +vt 0.902904 0.517905 +vt 0.902903 0.549511 +vt 0.600000 0.533708 +vt 0.557143 0.511236 +vt 0.628571 0.134831 +vt 0.035714 0.247191 +vt -0.000000 0.370787 +vt 0.207143 0.426966 +vt 0.242857 0.303371 +vt 0.214286 0.977528 +vt 0.149981 0.876405 +vt 0.145802 0.892274 +vt 0.125626 0.892274 +vt 0.125626 0.860536 +vt 0.145802 0.860536 +vt 0.164286 0.797753 +vt 0.185714 0.808989 +vt 0.178571 0.955056 +vt 0.157143 0.943820 +vt 0.145772 0.847282 +vt 0.135714 0.853836 +vt 0.125656 0.847283 +vt 0.125656 0.815639 +vt 0.145772 0.815639 +vt 0.125656 0.847283 +vt 0.121490 0.831461 +vt 0.125656 0.815639 +vt 0.145772 0.815639 +vt 0.145772 0.847283 +vt 0.664286 0.825843 +vt 0.650000 0.825843 +vt 0.621429 0.780899 +vt 0.585714 0.825843 +vt 0.500000 0.926966 +vt 0.642857 0.410112 +vt 0.957143 0.421348 +vt 0.642857 0.421348 +vt 0.642857 0.365169 +vt 0.957143 0.376404 +vt 0.642857 0.376404 +vt 0.642857 0.398876 +vt 0.957143 0.410112 +vt 0.642857 0.342697 +vt 0.957143 0.353933 +vt 0.642857 0.353933 +vt 0.957143 0.365169 +vt 0.957143 0.387640 +vt 0.642857 0.387640 +vt 0.642857 0.179775 +vt 0.242857 0.235955 +vt 0.642857 0.235955 +vt 0.242857 0.286517 +vt 0.642857 0.286517 +vt 0.242857 0.331461 +vt 0.642857 0.331461 +vt 0.957143 0.398876 +vt 0.642857 0.331461 +vt 0.957143 0.342697 +vt 0.735714 0.539326 +vt 0.878571 0.556180 +vt 0.735714 0.556180 +vt 0.735714 0.488764 +vt 0.878571 0.505618 +vt 0.735714 0.505618 +vt 0.735714 0.455056 +vt 0.878571 0.471910 +vt 0.735714 0.471910 +vt 0.735714 0.421348 +vt 0.878571 0.438202 +vt 0.735714 0.438202 +vt 0.735714 0.522472 +vt 0.878571 0.539326 +vt 0.878571 0.522472 +vt 0.878571 0.488764 +vt 0.878571 0.455056 +vt 0.242857 0.387640 +vt 0.642857 0.376404 +vt 0.642857 0.387640 +vt 0.242857 0.376404 +vt 0.642857 0.365169 +vt 0.642857 0.331461 +vt 0.957143 0.342697 +vt 0.642857 0.342697 +vt 0.957143 0.235955 +vt 0.642857 0.286517 +vt 0.642857 0.235955 +vt 0.242857 0.398876 +vt 0.642857 0.398876 +vt 0.957143 0.179775 +vt 0.642857 0.179775 +vt 0.242857 0.410112 +vt 0.642857 0.410112 +vt 0.642857 0.410112 +vt 0.957143 0.421348 +vt 0.642857 0.421348 +vt 0.242857 0.421348 +vt 0.642857 0.421348 +vt 0.642857 0.331461 +vt 0.957143 0.286517 +vt 0.642857 0.286517 +vt 0.642857 0.365169 +vt 0.957143 0.376404 +vt 0.642857 0.376404 +vt 0.242857 0.342697 +vt 0.642857 0.331461 +vt 0.642857 0.342697 +vt 0.642857 0.398876 +vt 0.957143 0.410112 +vt 0.642857 0.353933 +vt 0.957143 0.365169 +vt 0.242857 0.353933 +vt 0.642857 0.353933 +vt 0.642857 0.235955 +vt 0.957143 0.179775 +vt 0.642857 0.179775 +vt 0.957143 0.235955 +vt 0.242857 0.365169 +vt 0.642857 0.387640 +vt 0.957143 0.398876 +vt 0.957143 0.353933 +vt 0.957143 0.286517 +vt 0.642857 0.331461 +vt 0.957143 0.387640 +vt 0.642857 0.331461 +vt 0.957143 0.286517 +vt 0.642857 0.286517 +vt 0.957143 0.235955 +vt 0.642857 0.286517 +vt 0.642857 0.235955 +vt 0.957143 0.179775 +vt 0.642857 0.179775 +vt 0.957143 0.286517 +vt 0.642857 0.331461 +vt 0.642857 0.235955 +vt 0.957143 0.179775 +vt 0.642857 0.179775 +vt 0.957143 0.235955 +vt 0.242857 0.331461 +vt 0.642857 0.286517 +vt 0.642857 0.331461 +vt 0.242857 0.286517 +vt 0.642857 0.235955 +vt 0.242857 0.235955 +vt 0.642857 0.179775 +vt 0.107143 0.842697 +vt 0.100000 0.831461 +vt 0.107143 0.831461 +vt 0.107143 0.820225 +vt 0.100000 0.808989 +vt 0.107143 0.808989 +vt 0.107143 0.887640 +vt 0.100000 0.876405 +vt 0.107143 0.876405 +vt 0.107143 0.865169 +vt 0.100000 0.853933 +vt 0.107143 0.853933 +vt 0.100000 0.842697 +vt 0.100000 0.820225 +vt 0.107143 0.898876 +vt 0.100000 0.887640 +vt 0.100000 0.865169 +vt 0.671429 0.780899 +vt 0.642857 0.747191 +vt 0.671429 0.747191 +vt 0.614286 0.780899 +vt 0.614286 0.747191 +vt 0.642857 0.713483 +vt 0.614286 0.713483 +vt 0.642857 0.679775 +vt 0.614286 0.679775 +vt 0.614286 0.646067 +vt 0.642857 0.612360 +vt 0.614286 0.612360 +vt 0.614286 0.578652 +vt 0.642857 0.544944 +vt 0.614286 0.544944 +vt 0.614286 0.511236 +vt 0.671429 0.544944 +vt 0.642857 0.511236 +vt 0.671429 0.511236 +vt 0.671429 0.578652 +vt 0.642857 0.578652 +vt 0.671429 0.646067 +vt 0.671429 0.612360 +vt 0.671429 0.679775 +vt 0.642857 0.646067 +vt 0.671429 0.713483 +vt 0.932143 0.606742 +vt 0.796429 0.589888 +vt 0.932143 0.589888 +vt 0.932143 0.573034 +vt 0.796429 0.556180 +vt 0.932143 0.556180 +vt 0.932143 0.674157 +vt 0.796429 0.657303 +vt 0.932143 0.657303 +vt 0.932143 0.640449 +vt 0.796429 0.623595 +vt 0.932143 0.623595 +vt 0.796429 0.606742 +vt 0.796429 0.573034 +vt 0.932143 0.691011 +vt 0.796429 0.674157 +vt 0.796429 0.640449 +vt 0.321429 0.471910 +vt 0.035714 0.449438 +vt 0.321429 0.449438 +vt 0.321429 0.584270 +vt 0.035714 0.561798 +vt 0.321429 0.561798 +vt 0.321429 0.539326 +vt 0.035714 0.516854 +vt 0.321429 0.516854 +vt 0.321429 0.651685 +vt 0.035714 0.629214 +vt 0.321429 0.629214 +vt 0.035714 0.426966 +vt 0.321429 0.426966 +vt 0.035714 0.494382 +vt 0.321429 0.494382 +vt 0.035714 0.606742 +vt 0.321429 0.606742 +vt 0.321429 0.696629 +vt 0.035714 0.674157 +vt 0.321429 0.674157 +vt 0.035714 0.471910 +vt 0.035714 0.584270 +vt 0.035714 0.539326 +vt 0.035714 0.651685 +vt 0.342857 0.522472 +vt 0.342857 0.533708 +vt 0.342857 0.544944 +vt 0.342857 0.556180 +vt 0.342857 0.578652 +vt 0.342857 0.589888 +vt 0.342857 0.601124 +vt 0.342857 0.612360 +vt 0.342857 0.623595 +vt 0.342857 0.646067 +vt 0.342857 0.657303 +vt 0.342857 0.668539 +vt 0.342857 0.679775 +vt 0.342857 0.691011 +vt 0.342857 0.443820 +vt 0.342857 0.466292 +vt 0.342857 0.477528 +vt 0.342857 0.488764 +vt 0.342857 0.511236 +vt 0.014286 0.556180 +vt 0.357143 0.528090 +vt 0.342857 0.500000 +vt 0.357143 0.505618 +vt 0.357143 0.483146 +vt 0.342857 0.455056 +vt 0.357143 0.460674 +vt 0.342857 0.432584 +vt 0.357143 0.438202 +vt 0.357143 0.685393 +vt 0.357143 0.662921 +vt 0.342857 0.634831 +vt 0.357143 0.640449 +vt 0.357143 0.617977 +vt 0.357143 0.595506 +vt 0.342857 0.567416 +vt 0.357143 0.573034 +vt 0.357143 0.550562 +vt 0.014286 0.522472 +vt 0.014286 0.511236 +vt 0.014286 0.477528 +vt 0.014286 0.466292 +vt 0.014286 0.432584 +vt 0.014286 0.691011 +vt 0.035714 0.696629 +vt 0.014286 0.657303 +vt 0.014286 0.646067 +vt 0.014286 0.612360 +vt 0.014286 0.589888 +vt 0.014286 0.578652 +vt 0.014286 0.544944 +vt -0.000000 0.550562 +vt 0.014286 0.567416 +vt -0.000000 0.573034 +vt 0.014286 0.601124 +vt -0.000000 0.595506 +vt 0.014286 0.623595 +vt -0.000000 0.617977 +vt 0.014286 0.634831 +vt -0.000000 0.640449 +vt 0.014286 0.668539 +vt -0.000000 0.662921 +vt 0.014286 0.679775 +vt -0.000000 0.685393 +vt 0.014286 0.443820 +vt 0.000000 0.438202 +vt 0.014286 0.455056 +vt -0.000000 0.460674 +vt 0.014286 0.488764 +vt -0.000000 0.483146 +vt 0.014286 0.500000 +vt -0.000000 0.505618 +vt 0.014286 0.533708 +vt -0.000000 0.528090 +vt 0.721429 0.421348 +vt 0.357143 0.432584 +vt 0.357143 0.421348 +vt 0.721429 0.488764 +vt 0.357143 0.500000 +vt 0.357143 0.488764 +vt 0.721429 0.466292 +vt 0.357143 0.477528 +vt 0.357143 0.466292 +vt 0.721429 0.455056 +vt 0.357143 0.455056 +vt 0.721429 0.432584 +vt 0.357143 0.443820 +vt 0.721429 0.500000 +vt 0.357143 0.511236 +vt 0.721429 0.477528 +vt 0.721429 0.443820 +vt 0.121429 0.859551 +vt 0.107143 0.876405 +vt 0.107143 0.859551 +vt 0.121429 0.825843 +vt 0.107143 0.842697 +vt 0.107143 0.825843 +vt 0.121429 0.926966 +vt 0.107143 0.943820 +vt 0.107143 0.926966 +vt 0.121429 0.893258 +vt 0.107143 0.910112 +vt 0.107143 0.893258 +vt 0.121429 0.842697 +vt 0.121429 0.808989 +vt 0.107143 0.808989 +vt 0.121429 0.910112 +vt 0.121429 0.876405 +vt 0.157143 0.842697 +vt 0.150000 0.825843 +vt 0.157143 0.825843 +vt 0.157143 0.943820 +vt 0.150000 0.926966 +vt 0.157143 0.926966 +vt 0.157143 0.910112 +vt 0.150000 0.893258 +vt 0.157143 0.893258 +vt 0.157143 0.876405 +vt 0.150000 0.859551 +vt 0.157143 0.859551 +vt 0.150000 0.808989 +vt 0.157143 0.808989 +vt 0.150000 0.910112 +vt 0.150000 0.876405 +vt 0.150000 0.842697 +vt 0.157143 0.842697 +vt 0.150000 0.825843 +vt 0.157143 0.825843 +vt 0.157143 0.943820 +vt 0.150000 0.926966 +vt 0.157143 0.926966 +vt 0.157143 0.910112 +vt 0.150000 0.893258 +vt 0.157143 0.893258 +vt 0.157143 0.876405 +vt 0.150000 0.859551 +vt 0.157143 0.859551 +vt 0.150000 0.808989 +vt 0.157143 0.808989 +vt 0.150000 0.910112 +vt 0.150000 0.876405 +vt 0.150000 0.842697 +vt 0.242857 0.179775 +vt 0.957143 0.331461 +vt 0.878571 0.421348 +vt 0.957143 0.331461 +vt 0.957143 0.331461 +vt 0.242857 0.331461 +vt 0.957143 0.331461 +vt 0.957143 0.331461 +vt 0.957143 0.331461 +vt 0.242857 0.179775 +vt 0.100000 0.898876 +vt 0.642857 0.780899 +vt 0.796429 0.691011 +vt 0.721429 0.511236 +vt 0.121429 0.943820 +vt 0.150000 0.943820 +vt 0.150000 0.943820 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.0000 -0.8944 -0.4472 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.6000 -0.8000 0.0000 +vn -0.7678 -0.6407 0.0000 +vn -0.9732 -0.2298 0.0000 +vn 0.7678 -0.6407 0.0000 +vn 0.9732 -0.2298 0.0000 +vn 0.6000 -0.8000 0.0000 +vn -0.9732 0.2298 0.0000 +vn 0.7678 0.6407 0.0000 +vn 0.9732 0.2298 0.0000 +vn 0.6000 0.8000 0.0000 +vn -0.7678 0.6407 0.0000 +vn -0.6000 0.8000 0.0000 +vn -0.0000 -0.9923 -0.1240 +vn -0.7016 -0.7016 -0.1240 +vn 0.0000 -0.9923 0.1240 +vn -0.7016 -0.7016 0.1240 +vn -0.9923 -0.0000 0.1240 +vn -0.7016 0.7016 0.1240 +vn 0.0000 0.9923 0.1240 +vn 0.7016 0.7016 0.1240 +vn 0.9923 0.0000 0.1240 +vn 0.7016 -0.7016 0.1240 +vn 0.7016 -0.7016 -0.1240 +vn 0.9923 0.0000 -0.1240 +vn 0.0000 0.9923 -0.1240 +vn 0.7016 0.7016 -0.1240 +vn -0.7016 0.7016 -0.1240 +vn -0.9923 0.0000 -0.1240 +vn -0.8371 -0.4833 0.2563 +vn -0.4833 -0.8371 -0.2563 +vn -0.4833 -0.8371 0.2563 +vn 0.4833 0.8371 0.2563 +vn -0.0000 0.9666 -0.2563 +vn -0.0000 0.9666 0.2563 +vn -0.4833 0.8371 0.2563 +vn -0.8371 0.4833 -0.2563 +vn -0.8371 0.4833 0.2563 +vn 0.8371 -0.4833 0.2563 +vn 0.9666 0.0000 -0.2563 +vn 0.9666 -0.0000 0.2563 +vn 0.0000 -0.9666 -0.2563 +vn -0.0000 -0.9666 0.2563 +vn -0.9666 -0.0000 -0.2563 +vn -0.9666 0.0000 0.2563 +vn 0.8371 0.4833 -0.2563 +vn 0.8371 0.4833 0.2563 +vn 0.4833 -0.8371 -0.2563 +vn 0.4833 -0.8371 0.2563 +vn -0.8371 -0.4833 -0.2563 +vn 0.4833 0.8371 -0.2563 +vn -0.4833 0.8371 -0.2563 +vn 0.8371 -0.4833 -0.2563 +vn -0.6087 0.3515 0.7113 +vn -0.3515 0.6087 0.7113 +vn -0.0000 0.7029 0.7113 +vn 0.3515 0.6087 0.7113 +vn 0.6087 0.3515 0.7113 +vn 0.7029 0.0000 0.7113 +vn 0.6087 -0.3515 0.7113 +vn 0.3515 -0.6087 0.7113 +vn 0.0000 -0.7029 0.7113 +vn -0.3515 -0.6087 0.7113 +vn -0.6087 -0.3515 0.7113 +vn -0.7029 0.0000 0.7113 +vn 0.0000 0.7029 -0.7113 +vn -0.6087 0.3515 -0.7113 +vn -0.6087 -0.3515 -0.7113 +vn -0.0000 -0.7029 -0.7113 +vn 0.6087 -0.3515 -0.7113 +vn 0.6087 0.3515 -0.7113 +vn 0.3515 0.6087 -0.7113 +vn -0.3515 0.6087 -0.7113 +vn 0.7029 0.0000 -0.7113 +vn 0.3515 -0.6087 -0.7113 +vn -0.3515 -0.6087 -0.7113 +vn -0.7029 -0.0000 -0.7113 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +s off +f 373/600/173 374/601/173 372/602/173 +f 381/603/174 374/601/174 375/604/174 +f 380/605/175 375/604/175 373/600/175 +f 372/602/176 377/606/176 373/600/176 +f 378/607/177 380/605/177 379/608/177 +f 376/609/178 380/610/178 377/606/178 +f 379/611/179 376/612/179 372/602/179 +f 408/613/179 641/614/179 406/615/179 +f 412/616/174 411/617/174 410/618/174 +f 403/619/176 404/620/176 400/621/176 +f 391/622/174 390/623/174 394/624/174 +f 409/625/175 410/618/175 407/626/175 +f 407/626/173 411/617/173 406/615/173 +f 406/615/179 413/627/179 408/613/179 +f 408/628/177 412/629/177 409/625/177 +f 420/630/176 421/631/176 417/632/176 +f 425/633/174 423/634/174 422/635/174 +f 437/636/176 436/637/176 440/638/176 +f 470/639/174 472/640/174 465/641/174 +f 448/642/176 452/643/176 467/644/176 +f 449/645/174 447/646/174 459/647/174 +f 484/648/175 482/649/175 478/650/175 +f 480/651/176 483/652/176 481/653/176 +f 482/649/180 485/654/180 483/652/180 +f 653/655/179 479/656/179 485/657/179 +f 530/658/174 529/659/174 528/660/174 +f 541/661/176 534/662/176 538/663/176 +f 562/664/176 564/665/176 558/666/176 +f 618/667/179 620/668/179 616/669/179 +f 623/670/174 618/667/174 619/671/174 +f 617/672/175 623/670/175 619/671/175 +f 616/673/176 621/674/176 617/672/176 +f 620/675/177 623/676/177 621/674/177 +f 641/614/176 642/677/176 640/678/176 +f 409/625/181 643/679/181 408/628/181 +f 409/625/175 640/678/175 642/680/175 +f 406/615/180 640/678/180 407/626/180 +f 647/681/173 644/682/173 645/683/173 +f 648/684/177 651/685/177 649/686/177 +f 646/687/175 648/684/175 644/682/175 +f 647/681/176 650/688/176 646/687/176 +f 645/683/179 651/689/179 647/681/179 +f 644/682/174 649/690/174 645/683/174 +f 655/691/173 652/692/173 653/693/173 +f 484/694/176 655/695/176 485/654/176 +f 664/696/174 670/697/174 668/698/174 +f 680/699/177 686/700/177 682/701/177 +f 679/702/175 676/703/175 677/704/175 +f 672/705/177 678/706/177 674/707/177 +f 674/708/176 679/702/176 675/709/176 +f 675/710/173 677/704/173 673/711/173 +f 673/712/174 676/703/174 672/713/174 +f 682/701/176 687/714/176 683/715/176 +f 683/715/173 685/716/173 681/717/173 +f 681/717/174 684/718/174 680/699/174 +f 680/699/179 683/715/179 681/717/179 +f 700/719/175 702/720/175 696/721/175 +f 710/722/179 708/723/179 706/724/179 +f 721/725/175 727/726/175 723/727/175 +f 720/728/179 726/729/179 724/730/179 +f 723/731/173 726/729/173 722/732/173 +f 720/728/177 725/733/177 721/725/177 +f 726/734/176 731/735/176 730/736/176 +f 724/730/174 729/737/174 725/733/174 +f 729/737/175 727/738/175 725/733/175 +f 726/734/179 728/739/179 724/730/179 +f 730/736/173 732/740/173 728/739/173 +f 729/741/177 735/742/177 731/743/177 +f 731/744/176 734/745/176 730/736/176 +f 729/741/174 732/740/174 733/746/174 +f 653/655/174 478/650/174 479/656/174 +f 739/747/174 742/748/174 738/749/174 +f 741/750/176 736/751/176 740/752/176 +f 742/753/177 736/751/177 738/754/177 +f 739/747/173 741/750/173 743/755/173 +f 373/600/173 375/604/173 374/601/173 +f 381/603/174 378/756/174 374/601/174 +f 373/600/175 377/757/175 380/605/175 +f 380/605/175 381/758/175 375/604/175 +f 372/602/176 376/609/176 377/606/176 +f 378/607/177 381/758/177 380/605/177 +f 376/609/178 379/759/178 380/610/178 +f 372/602/179 374/601/179 379/611/179 +f 374/601/179 378/760/179 379/611/179 +f 408/613/179 643/761/179 641/614/179 +f 412/616/174 413/762/174 411/617/174 +f 404/620/176 405/763/176 398/764/176 +f 398/764/176 399/765/176 404/620/176 +f 399/765/176 400/621/176 404/620/176 +f 400/621/176 401/766/176 402/767/176 +f 402/767/176 403/619/176 400/621/176 +f 390/623/174 397/768/174 396/769/174 +f 396/769/174 395/770/174 390/623/174 +f 395/770/174 394/624/174 390/623/174 +f 394/624/174 393/771/174 392/772/174 +f 392/772/174 391/622/174 394/624/174 +f 409/625/175 412/629/175 410/618/175 +f 407/626/173 410/618/173 411/617/173 +f 406/615/179 411/617/179 413/627/179 +f 408/628/177 413/773/177 412/629/177 +f 421/631/176 414/774/176 417/632/176 +f 414/774/176 415/775/176 417/632/176 +f 415/775/176 416/776/176 417/632/176 +f 417/632/176 418/777/176 419/778/176 +f 419/778/176 420/630/176 417/632/176 +f 422/635/174 424/779/174 429/780/174 +f 429/780/174 428/781/174 422/635/174 +f 428/781/174 427/782/174 422/635/174 +f 427/782/174 426/783/174 422/635/174 +f 426/783/174 425/633/174 422/635/174 +f 436/637/176 435/784/176 442/785/176 +f 442/785/176 441/786/176 436/637/176 +f 441/786/176 440/638/176 436/637/176 +f 440/638/176 439/787/176 438/788/176 +f 438/788/176 437/636/176 440/638/176 +f 472/640/174 460/789/174 461/790/174 +f 461/790/174 462/791/174 472/640/174 +f 462/791/174 465/641/174 472/640/174 +f 465/641/174 466/792/174 468/793/174 +f 468/793/174 470/639/174 465/641/174 +f 467/644/176 474/794/176 476/795/176 +f 476/795/176 446/796/176 448/642/176 +f 448/642/176 450/797/176 452/643/176 +f 452/643/176 458/798/176 467/644/176 +f 467/644/176 476/795/176 448/642/176 +f 447/646/174 477/799/174 475/800/174 +f 475/800/174 473/801/174 447/646/174 +f 473/801/174 459/647/174 447/646/174 +f 459/647/174 453/802/174 451/803/174 +f 451/803/174 449/645/174 459/647/174 +f 480/651/175 478/650/175 482/649/175 +f 478/650/175 652/692/175 484/648/175 +f 652/692/175 654/804/175 484/648/175 +f 480/651/176 482/649/176 483/652/176 +f 482/649/180 484/694/180 485/654/180 +f 481/805/179 483/806/179 479/656/179 +f 483/806/179 485/657/179 479/656/179 +f 485/657/179 655/807/179 653/655/179 +f 528/660/174 527/808/174 526/809/174 +f 526/809/174 533/810/174 528/660/174 +f 533/810/174 532/811/174 528/660/174 +f 532/811/174 531/812/174 528/660/174 +f 531/812/174 530/658/174 528/660/174 +f 534/662/176 535/813/176 538/663/176 +f 535/813/176 536/814/176 538/663/176 +f 536/814/176 537/815/176 538/663/176 +f 538/663/176 539/816/176 540/817/176 +f 540/817/176 541/661/176 538/663/176 +f 558/666/176 559/818/176 560/819/176 +f 560/819/176 561/820/176 562/664/176 +f 562/664/176 563/821/176 564/665/176 +f 564/665/176 565/822/176 558/666/176 +f 558/666/176 560/819/176 562/664/176 +f 618/667/179 622/823/179 620/668/179 +f 623/670/174 622/823/174 618/667/174 +f 617/672/175 621/674/175 623/670/175 +f 616/673/176 620/675/176 621/674/176 +f 620/675/177 622/824/177 623/676/177 +f 641/614/176 643/825/176 642/677/176 +f 409/625/181 642/680/181 643/679/181 +f 409/625/175 407/626/175 640/678/175 +f 406/615/180 641/614/180 640/678/180 +f 647/681/173 646/687/173 644/682/173 +f 648/684/177 650/826/177 651/685/177 +f 646/687/175 650/826/175 648/684/175 +f 647/681/176 651/827/176 650/688/176 +f 645/683/179 649/828/179 651/689/179 +f 644/682/174 648/829/174 649/690/174 +f 655/691/173 654/804/173 652/692/173 +f 484/694/176 654/830/176 655/695/176 +f 666/831/174 665/832/174 664/696/174 +f 664/696/174 671/833/174 670/697/174 +f 670/697/174 669/834/174 668/698/174 +f 668/698/174 667/835/174 666/831/174 +f 666/831/174 664/696/174 668/698/174 +f 680/699/177 684/836/177 686/700/177 +f 679/702/175 678/706/175 676/703/175 +f 672/705/177 676/703/177 678/706/177 +f 674/708/176 678/706/176 679/702/176 +f 675/710/173 679/702/173 677/704/173 +f 673/712/174 677/704/174 676/703/174 +f 682/701/176 686/837/176 687/714/176 +f 683/715/173 687/838/173 685/716/173 +f 681/717/174 685/839/174 684/718/174 +f 680/699/179 682/701/179 683/715/179 +f 696/721/175 697/840/175 698/841/175 +f 698/841/175 699/842/175 700/719/175 +f 700/719/175 701/843/175 702/720/175 +f 702/720/175 703/844/175 696/721/175 +f 696/721/175 698/841/175 700/719/175 +f 706/724/179 705/845/179 704/846/179 +f 704/846/179 711/847/179 710/722/179 +f 710/722/179 709/848/179 708/723/179 +f 708/723/179 707/849/179 706/724/179 +f 706/724/179 704/846/179 710/722/179 +f 721/725/175 725/733/175 727/726/175 +f 720/728/179 722/732/179 726/729/179 +f 723/731/173 727/850/173 726/729/173 +f 720/728/177 724/730/177 725/733/177 +f 726/734/176 727/851/176 731/735/176 +f 724/730/174 728/739/174 729/737/174 +f 729/737/175 731/852/175 727/738/175 +f 726/734/179 730/736/179 728/739/179 +f 730/736/173 734/745/173 732/740/173 +f 729/741/177 733/746/177 735/742/177 +f 731/744/176 735/853/176 734/745/176 +f 729/741/174 728/739/174 732/740/174 +f 653/655/174 652/692/174 478/650/174 +f 739/747/174 743/755/174 742/748/174 +f 741/750/176 737/854/176 736/751/176 +f 742/753/177 740/752/177 736/751/177 +f 739/747/173 737/854/173 741/750/173 +s 1 +f 400/855/182 393/856/177 401/857/177 +f 404/858/183 397/859/173 405/860/173 +f 399/861/179 392/862/182 400/855/182 +f 402/863/184 395/864/175 403/865/175 +f 403/865/175 396/866/183 404/858/183 +f 405/860/173 390/867/185 398/868/185 +f 389/869/186 386/870/187 387/871/187 +f 387/871/187 384/872/188 385/873/188 +f 385/873/188 383/874/179 382/875/179 +f 398/868/185 391/876/179 399/861/179 +f 401/877/177 394/878/184 402/863/184 +f 417/879/182 426/880/177 418/881/177 +f 414/882/173 422/883/185 415/884/185 +f 420/885/175 429/886/183 421/887/183 +f 418/888/177 427/889/184 419/890/184 +f 416/891/179 425/892/182 417/879/182 +f 415/884/185 423/893/179 416/891/179 +f 421/887/183 424/894/173 414/882/173 +f 419/890/184 428/895/175 420/885/175 +f 446/896/185 477/897/173 447/898/185 +f 476/899/173 475/900/183 477/897/173 +f 439/901/177 465/902/184 438/903/184 +f 456/904/189 431/905/190 432/906/189 +f 448/907/179 447/898/185 449/908/179 +f 457/909/191 432/906/189 433/910/191 +f 450/911/182 449/908/179 451/912/182 +f 440/913/182 466/914/177 439/915/177 +f 452/916/177 451/912/182 453/917/177 +f 434/918/179 464/919/188 443/920/188 +f 436/921/183 460/922/173 435/923/173 +f 458/924/184 453/925/177 459/926/184 +f 441/927/179 468/928/182 440/913/182 +f 437/929/175 461/930/183 436/921/183 +f 467/931/175 459/926/184 473/932/175 +f 444/933/187 471/934/186 445/935/186 +f 443/920/188 463/936/187 444/933/187 +f 474/937/183 473/932/175 475/900/183 +f 442/938/185 470/939/179 441/927/179 +f 438/903/184 462/940/175 437/929/175 +f 454/941/190 430/942/175 431/905/190 +f 435/923/173 472/943/185 442/938/185 +f 501/944/179 493/945/192 500/946/192 +f 489/947/193 496/948/194 495/949/193 +f 486/950/195 495/949/193 494/951/195 +f 488/952/194 497/953/175 496/948/194 +f 499/954/196 490/955/197 498/956/197 +f 500/946/192 491/957/196 499/954/196 +f 508/958/175 506/959/194 509/960/175 +f 507/961/194 504/962/193 506/959/194 +f 505/963/193 502/964/195 504/962/193 +f 517/965/183 524/966/175 516/967/175 +f 515/968/184 522/969/177 514/970/177 +f 513/971/182 520/972/179 512/973/179 +f 511/974/185 518/975/173 510/976/173 +f 510/976/173 525/977/183 517/965/183 +f 516/967/175 523/978/184 515/968/184 +f 514/979/177 521/980/182 513/971/182 +f 512/973/179 519/981/185 511/974/185 +f 530/982/198 545/983/182 529/984/199 +f 545/983/182 538/985/200 537/986/201 +f 544/987/179 537/986/201 536/988/202 +f 543/989/185 536/988/202 535/990/203 +f 534/991/204 543/989/185 535/990/203 +f 549/992/183 534/991/204 541/993/205 +f 540/994/206 549/992/183 541/993/205 +f 547/995/184 540/994/206 539/996/207 +f 538/997/200 547/995/184 539/996/207 +f 531/998/208 546/999/177 530/1000/198 +f 532/1001/209 547/995/184 531/998/208 +f 532/1001/209 549/992/183 548/1002/175 +f 526/1003/210 549/992/183 533/1004/211 +f 527/1005/212 542/1006/173 526/1003/210 +f 528/1007/213 543/989/185 527/1005/212 +f 528/1007/213 545/983/182 544/987/179 +f 557/1008/183 564/1009/175 556/1010/175 +f 555/1011/184 562/1012/177 554/1013/177 +f 553/1014/182 560/1015/179 552/1016/179 +f 551/1017/185 558/1018/173 550/1019/173 +f 550/1019/173 565/1020/183 557/1008/183 +f 556/1010/175 563/1021/184 555/1011/184 +f 554/1022/177 561/1023/182 553/1014/182 +f 552/1016/179 559/1024/185 551/1017/185 +f 570/1025/214 583/1026/215 571/1027/216 +f 577/1028/217 578/1029/218 566/1030/219 +f 567/1031/220 580/1032/221 568/1033/222 +f 574/1034/223 587/1035/224 575/1036/225 +f 571/1027/216 584/1037/226 572/1038/227 +f 568/1033/222 581/1039/228 569/1040/229 +f 575/1036/225 588/1041/230 576/1042/231 +f 572/1043/227 585/1044/232 573/1045/233 +f 569/1040/229 582/1046/234 570/1025/214 +f 576/1042/231 589/1047/235 577/1028/217 +f 566/1030/219 579/1048/236 567/1031/220 +f 573/1045/233 586/1049/237 574/1034/223 +f 567/1031/220 592/1050/238 591/1051/239 +f 566/1030/219 591/1052/239 590/1053/240 +f 566/1030/219 601/1054/241 577/1028/217 +f 576/1042/231 601/1055/241 600/1056/242 +f 575/1036/225 600/1057/242 599/1058/243 +f 575/1036/225 598/1059/244 574/1034/223 +f 573/1045/233 598/1060/244 597/1061/245 +f 572/1043/227 597/1062/245 596/1063/246 +f 572/1038/227 595/1064/247 571/1027/216 +f 571/1027/216 594/1065/248 570/1025/214 +f 569/1040/229 594/1066/248 593/1067/249 +f 569/1040/229 592/1068/238 568/1033/222 +f 603/1069/250 579/1048/236 578/1029/218 +f 591/1051/239 592/1050/238 602/1070/176 +f 592/1068/238 593/1071/249 602/1072/176 +f 593/1067/249 594/1066/248 602/1073/176 +f 594/1065/248 595/1074/247 602/1075/176 +f 595/1064/247 596/1076/246 602/1077/176 +f 596/1063/246 597/1062/245 602/1078/176 +f 597/1061/245 598/1060/244 602/1079/176 +f 598/1059/244 599/1080/243 602/1081/176 +f 599/1058/243 600/1057/242 602/1082/176 +f 600/1056/242 601/1055/241 602/1083/176 +f 601/1054/241 590/1084/240 602/1085/176 +f 590/1053/240 591/1052/239 602/1086/176 +f 579/1048/236 605/1087/251 580/1032/221 +f 605/1088/251 581/1039/228 580/1032/221 +f 581/1039/228 607/1089/252 582/1046/234 +f 607/1090/252 583/1026/215 582/1046/234 +f 583/1026/215 609/1091/253 584/1037/226 +f 609/1092/253 585/1044/232 584/1093/226 +f 585/1044/232 611/1094/254 586/1049/237 +f 611/1095/254 587/1035/224 586/1049/237 +f 587/1035/224 613/1096/255 588/1041/230 +f 588/1041/230 614/1097/256 589/1047/235 +f 614/1098/256 578/1029/218 589/1047/235 +f 604/1099/257 603/1069/250 615/1100/174 +f 603/1101/250 614/1098/256 615/1102/174 +f 614/1097/256 613/1103/255 615/1104/174 +f 613/1096/255 612/1105/258 615/1106/174 +f 612/1107/258 611/1095/254 615/1108/174 +f 611/1094/254 610/1109/259 615/1110/174 +f 610/1111/259 609/1092/253 615/1112/174 +f 609/1091/253 608/1113/260 615/1114/174 +f 608/1115/260 607/1090/252 615/1116/174 +f 607/1089/252 606/1117/261 615/1118/174 +f 606/1119/261 605/1088/251 615/1120/174 +f 605/1087/251 604/1121/257 615/1122/174 +f 636/1123/177 629/1124/184 628/1125/177 +f 634/1126/179 627/1127/182 626/1128/179 +f 632/1129/173 625/1130/185 624/1131/173 +f 639/1132/183 624/1131/173 631/1133/183 +f 637/1134/184 630/1135/175 629/1124/184 +f 635/1136/182 628/1137/177 627/1127/182 +f 633/1138/185 626/1128/179 625/1130/185 +f 638/1139/175 631/1133/183 630/1135/175 +f 671/1140/183 656/1141/173 663/1142/183 +f 669/1143/184 662/1144/175 661/1145/184 +f 667/1146/182 660/1147/177 659/1148/182 +f 665/1149/185 658/1150/179 657/1151/185 +f 670/1152/175 663/1142/183 662/1144/175 +f 668/1153/177 661/1145/184 660/1154/177 +f 666/1155/179 659/1148/182 658/1150/179 +f 664/1156/173 657/1151/185 656/1141/173 +f 688/1157/174 703/1158/262 695/1159/262 +f 694/1160/177 701/1161/178 693/1162/178 +f 692/1163/176 699/1164/263 691/1165/263 +f 690/1166/173 697/1167/264 689/1168/264 +f 695/1159/262 702/1169/177 694/1170/177 +f 693/1162/178 700/1171/176 692/1163/176 +f 691/1165/263 698/1172/173 690/1166/173 +f 689/1168/264 696/1173/174 688/1157/174 +f 704/1174/174 719/1175/262 711/1176/262 +f 710/1177/177 717/1178/178 709/1179/178 +f 708/1180/176 715/1181/263 707/1182/263 +f 706/1183/173 713/1184/264 705/1185/264 +f 711/1176/262 718/1186/177 710/1187/177 +f 709/1179/178 716/1188/176 708/1180/176 +f 707/1182/263 714/1189/173 706/1183/173 +f 705/1185/264 712/1190/174 704/1174/174 +f 400/855/182 392/862/182 393/856/177 +f 404/858/183 396/866/183 397/859/173 +f 399/861/179 391/876/179 392/862/182 +f 402/863/184 394/878/184 395/864/175 +f 403/865/175 395/864/175 396/866/183 +f 405/860/173 397/859/173 390/867/185 +f 389/869/186 388/1191/186 386/870/187 +f 387/871/187 386/870/187 384/872/188 +f 385/873/188 384/872/188 383/874/179 +f 398/868/185 390/867/185 391/876/179 +f 401/877/177 393/1192/177 394/878/184 +f 417/879/182 425/892/182 426/880/177 +f 414/882/173 424/894/173 422/883/185 +f 420/885/175 428/895/175 429/886/183 +f 418/888/177 426/1193/177 427/889/184 +f 416/891/179 423/893/179 425/892/182 +f 415/884/185 422/883/185 423/893/179 +f 421/887/183 429/886/183 424/894/173 +f 419/890/184 427/889/184 428/895/175 +f 446/896/185 476/899/173 477/897/173 +f 476/899/173 474/937/183 475/900/183 +f 439/901/177 466/1194/177 465/902/184 +f 456/904/189 454/941/190 431/905/190 +f 448/907/179 446/896/185 447/898/185 +f 457/909/191 456/904/189 432/906/189 +f 450/911/182 448/907/179 449/908/179 +f 440/913/182 468/928/182 466/914/177 +f 452/916/177 450/911/182 451/912/182 +f 434/918/179 469/1195/179 464/919/188 +f 436/921/183 461/930/183 460/922/173 +f 458/924/184 452/1196/177 453/925/177 +f 441/927/179 470/939/179 468/928/182 +f 437/929/175 462/940/175 461/930/183 +f 467/931/175 458/924/184 459/926/184 +f 444/933/187 463/936/187 471/934/186 +f 443/920/188 464/919/188 463/936/187 +f 474/937/183 467/931/175 473/932/175 +f 442/938/185 472/943/185 470/939/179 +f 438/903/184 465/902/184 462/940/175 +f 454/941/190 455/1197/175 430/942/175 +f 435/923/173 460/922/173 472/943/185 +f 501/944/179 492/1198/179 493/945/192 +f 489/947/193 488/952/194 496/948/194 +f 486/950/195 489/947/193 495/949/193 +f 488/952/194 487/1199/175 497/953/175 +f 499/954/196 491/957/196 490/955/197 +f 500/946/192 493/945/192 491/957/196 +f 508/958/175 507/961/194 506/959/194 +f 507/961/194 505/963/193 504/962/193 +f 505/963/193 503/1200/195 502/964/195 +f 517/965/183 525/977/183 524/966/175 +f 515/968/184 523/978/184 522/969/177 +f 513/971/182 521/980/182 520/972/179 +f 511/974/185 519/981/185 518/975/173 +f 510/976/173 518/975/173 525/977/183 +f 516/967/175 524/966/175 523/978/184 +f 514/979/177 522/1201/177 521/980/182 +f 512/973/179 520/972/179 519/981/185 +f 530/982/198 546/1202/177 545/983/182 +f 545/983/182 546/1202/177 538/985/200 +f 544/987/179 545/983/182 537/986/201 +f 543/989/185 544/987/179 536/988/202 +f 534/991/204 542/1006/173 543/989/185 +f 549/992/183 542/1006/173 534/991/204 +f 540/994/206 548/1002/175 549/992/183 +f 547/995/184 548/1002/175 540/994/206 +f 538/997/200 546/999/177 547/995/184 +f 531/998/208 547/995/184 546/999/177 +f 532/1001/209 548/1002/175 547/995/184 +f 532/1001/209 533/1004/211 549/992/183 +f 526/1003/210 542/1006/173 549/992/183 +f 527/1005/212 543/989/185 542/1006/173 +f 528/1007/213 544/987/179 543/989/185 +f 528/1007/213 529/984/199 545/983/182 +f 557/1008/183 565/1020/183 564/1009/175 +f 555/1011/184 563/1021/184 562/1012/177 +f 553/1014/182 561/1023/182 560/1015/179 +f 551/1017/185 559/1024/185 558/1018/173 +f 550/1019/173 558/1018/173 565/1020/183 +f 556/1010/175 564/1009/175 563/1021/184 +f 554/1022/177 562/1203/177 561/1023/182 +f 552/1016/179 560/1015/179 559/1024/185 +f 570/1025/214 582/1046/234 583/1026/215 +f 577/1028/217 589/1047/235 578/1029/218 +f 567/1031/220 579/1048/236 580/1032/221 +f 574/1034/223 586/1049/237 587/1035/224 +f 571/1027/216 583/1026/215 584/1037/226 +f 568/1033/222 580/1032/221 581/1039/228 +f 575/1036/225 587/1035/224 588/1041/230 +f 572/1043/227 584/1093/226 585/1044/232 +f 569/1040/229 581/1039/228 582/1046/234 +f 576/1042/231 588/1041/230 589/1047/235 +f 566/1030/219 578/1029/218 579/1048/236 +f 573/1045/233 585/1044/232 586/1049/237 +f 567/1031/220 568/1033/222 592/1050/238 +f 566/1030/219 567/1031/220 591/1052/239 +f 566/1030/219 590/1084/240 601/1054/241 +f 576/1042/231 577/1028/217 601/1055/241 +f 575/1036/225 576/1042/231 600/1057/242 +f 575/1036/225 599/1080/243 598/1059/244 +f 573/1045/233 574/1034/223 598/1060/244 +f 572/1043/227 573/1045/233 597/1062/245 +f 572/1038/227 596/1076/246 595/1064/247 +f 571/1027/216 595/1074/247 594/1065/248 +f 569/1040/229 570/1025/214 594/1066/248 +f 569/1040/229 593/1071/249 592/1068/238 +f 603/1069/250 604/1099/257 579/1048/236 +f 579/1048/236 604/1121/257 605/1087/251 +f 605/1088/251 606/1119/261 581/1039/228 +f 581/1039/228 606/1117/261 607/1089/252 +f 607/1090/252 608/1115/260 583/1026/215 +f 583/1026/215 608/1113/260 609/1091/253 +f 609/1092/253 610/1111/259 585/1044/232 +f 585/1044/232 610/1109/259 611/1094/254 +f 611/1095/254 612/1107/258 587/1035/224 +f 587/1035/224 612/1105/258 613/1096/255 +f 588/1041/230 613/1103/255 614/1097/256 +f 614/1098/256 603/1101/250 578/1029/218 +f 636/1123/177 637/1134/184 629/1124/184 +f 634/1126/179 635/1136/182 627/1127/182 +f 632/1129/173 633/1138/185 625/1130/185 +f 639/1132/183 632/1129/173 624/1131/173 +f 637/1134/184 638/1139/175 630/1135/175 +f 635/1136/182 636/1204/177 628/1137/177 +f 633/1138/185 634/1126/179 626/1128/179 +f 638/1139/175 639/1132/183 631/1133/183 +f 671/1140/183 664/1156/173 656/1141/173 +f 669/1143/184 670/1152/175 662/1144/175 +f 667/1146/182 668/1205/177 660/1147/177 +f 665/1149/185 666/1155/179 658/1150/179 +f 670/1152/175 671/1140/183 663/1142/183 +f 668/1153/177 669/1143/184 661/1145/184 +f 666/1155/179 667/1146/182 659/1148/182 +f 664/1156/173 665/1149/185 657/1151/185 +f 688/1157/174 696/1173/174 703/1158/262 +f 694/1160/177 702/1206/177 701/1161/178 +f 692/1163/176 700/1171/176 699/1164/263 +f 690/1166/173 698/1172/173 697/1167/264 +f 695/1159/262 703/1158/262 702/1169/177 +f 693/1162/178 701/1161/178 700/1171/176 +f 691/1165/263 699/1164/263 698/1172/173 +f 689/1168/264 697/1167/264 696/1173/174 +f 704/1174/174 712/1190/174 719/1175/262 +f 710/1177/177 718/1207/177 717/1178/178 +f 708/1180/176 716/1188/176 715/1181/263 +f 706/1183/173 714/1189/173 713/1184/264 +f 711/1176/262 719/1175/262 718/1186/177 +f 709/1179/178 717/1178/178 716/1188/176 +f 707/1182/263 715/1181/263 714/1189/173 +f 705/1185/264 713/1184/264 712/1190/174 diff --git a/src/main/resources/assets/hbm/models/weapons/flamer.obj b/src/main/resources/assets/hbm/models/weapons/flamer.obj deleted file mode 100644 index 2b9e7e367..000000000 --- a/src/main/resources/assets/hbm/models/weapons/flamer.obj +++ /dev/null @@ -1,1755 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'flamer.blend' -# www.blender.org -o Cylinder -v 0.000000 1.250000 -2.500000 -v 0.000000 1.250000 2.500000 -v 0.176777 1.176776 -2.500000 -v 0.176777 1.176777 2.500000 -v 0.250000 1.000000 -2.500000 -v 0.250000 1.000000 2.500000 -v 0.176777 0.823223 -2.500000 -v 0.176777 0.823224 2.500000 -v -0.000000 0.750000 -2.500000 -v -0.000000 0.750000 2.500000 -v -0.176777 0.823223 -2.500000 -v -0.176777 0.823224 2.500000 -v -0.250000 1.000000 -2.500000 -v -0.250000 1.000000 2.500000 -v -0.176777 1.176776 -2.500000 -v -0.176777 1.176777 2.500000 -v 0.000000 1.500000 2.500000 -v 0.353553 1.353554 2.500000 -v 0.500000 1.000000 2.500000 -v 0.353553 0.646447 2.500000 -v -0.000000 0.500000 2.500000 -v -0.353553 0.646447 2.500000 -v -0.500000 1.000000 2.500000 -v -0.353553 1.353554 2.500000 -v 0.353553 1.353554 4.500000 -v 0.000000 1.500000 4.500000 -v 0.500000 1.000000 4.500000 -v 0.353553 0.646447 4.500000 -v -0.000000 0.500000 4.500000 -v -0.353553 0.646447 4.500000 -v -0.500000 1.000000 4.500000 -v -0.353553 1.353554 4.500000 -v 0.265165 1.265165 4.750000 -v 0.000000 1.375000 4.750000 -v 0.375000 1.000000 4.750000 -v 0.265165 0.734835 4.750000 -v -0.000000 0.625000 4.750000 -v -0.265165 0.734835 4.750000 -v -0.375000 1.000000 4.750000 -v -0.265165 1.265165 4.750000 -v 0.000000 0.775916 0.562275 -v 0.000000 -0.672973 0.950503 -v 0.375000 1.000000 5.000000 -v -0.265165 0.734835 5.000000 -v 0.000000 1.375000 5.000000 -v -0.000000 0.625000 5.000000 -v 0.125000 -0.608268 1.191985 -v 0.125000 0.840621 0.803756 -v 0.088388 -0.585392 1.277361 -v 0.088388 0.863497 0.889133 -v -0.000000 -0.575916 1.312725 -v -0.000000 0.872973 0.924497 -v -0.088388 -0.585392 1.277361 -v -0.088388 0.863497 0.889133 -v -0.125000 -0.608268 1.191985 -v -0.125000 0.840621 0.803756 -v 0.265165 1.265165 5.000000 -v 0.265165 0.734835 5.000000 -v 0.088388 -0.663497 0.985867 -v 0.088388 0.785392 0.597639 -v 0.125000 -0.640621 1.071244 -v 0.125000 0.808268 0.683015 -v -0.125000 -0.640621 1.071244 -v -0.125000 0.808268 0.683015 -v -0.088388 -0.663497 0.985867 -v -0.088388 0.785392 0.597639 -v -0.375000 1.000000 5.000000 -v -0.265165 1.265165 5.000000 -v -0.198874 1.198874 5.000000 -v -0.281250 1.000000 5.000000 -v -0.198874 0.801127 5.000000 -v -0.000000 0.718750 5.000000 -v 0.000000 1.281250 5.000000 -v 0.198874 0.801127 5.000000 -v 0.281250 1.000000 5.000000 -v 0.198874 1.198874 5.000000 -v -0.198874 1.198874 4.750000 -v -0.281250 1.000000 4.750000 -v -0.198874 0.801127 4.750000 -v -0.000000 0.718750 4.750000 -v 0.000000 1.281250 4.750000 -v 0.198874 0.801127 4.750000 -v 0.281250 1.000000 4.750000 -v 0.198874 1.198874 4.750000 -v 0.000000 0.850000 -1.125000 -v 0.000000 -0.650000 -1.125000 -v 0.125000 -0.650000 -0.875000 -v 0.125000 0.850000 -0.875000 -v 0.088388 -0.650000 -0.786612 -v 0.088388 0.850000 -0.786612 -v -0.000000 -0.650000 -0.750000 -v -0.000000 0.850000 -0.750000 -v -0.088388 -0.650000 -0.786612 -v -0.088388 0.850000 -0.786612 -v -0.125000 -0.650000 -0.875000 -v -0.125000 0.850000 -0.875000 -v 0.088388 -0.650000 -1.088388 -v 0.088388 0.850000 -1.088388 -v 0.125000 -0.650000 -1.000000 -v 0.125000 0.850000 -1.000000 -v -0.125000 -0.650000 -1.000000 -v -0.125000 0.850000 -1.000000 -v -0.088388 -0.650000 -1.088388 -v -0.088388 0.850000 -1.088388 -v -0.334835 -0.995481 2.879628 -v -0.600000 -1.073146 2.801963 -v -0.600000 -0.984758 2.536798 -v -0.600000 0.429456 1.122584 -v -0.246447 -0.881204 2.640351 -v -0.246447 0.533009 1.226137 -v -0.100000 -0.631204 2.890351 -v -0.100000 0.783009 1.476137 -v -0.246447 -0.381205 3.140351 -v -0.246447 1.033009 1.726137 -v -0.600000 -0.277651 3.243904 -v -0.600000 1.136562 1.829691 -v -0.953553 -0.381205 3.140351 -v -0.953553 1.033009 1.726137 -v -1.100000 -0.631204 2.890351 -v -1.100000 0.783009 1.476137 -v -0.953553 -0.881204 2.640351 -v -0.953553 0.533009 1.226137 -v -0.225000 -0.807981 3.067128 -v -0.334835 -0.620481 3.254628 -v -0.600000 -0.542816 3.332293 -v -0.865165 -0.620481 3.254628 -v -0.975000 -0.807981 3.067128 -v -0.865165 -0.995481 2.879628 -v -0.600000 -0.896369 3.155516 -v -0.334835 0.772286 1.111861 -v -0.600000 0.694620 1.034196 -v -0.225000 0.959786 1.299361 -v -0.334835 1.147285 1.486861 -v -0.600000 1.224951 1.564526 -v -0.865165 1.147285 1.486861 -v -0.975000 0.959786 1.299361 -v -0.865165 0.772286 1.111861 -v -0.334835 0.949062 0.935084 -v -0.600000 0.871397 0.857419 -v -0.225000 1.136562 1.122584 -v -0.334835 1.324062 1.310084 -v -0.600000 1.401727 1.387749 -v -0.865165 1.324062 1.310084 -v -0.975000 1.136562 1.122584 -v -0.865165 0.949062 0.935084 -v -0.507192 1.070937 1.056959 -v -0.600000 1.043755 1.029776 -v -0.468750 1.136562 1.122584 -v -0.507192 1.202187 1.188209 -v -0.600000 1.229370 1.215392 -v -0.692808 1.202187 1.188209 -v -0.731250 1.136562 1.122584 -v -0.692808 1.070937 1.056959 -v -0.507192 1.582703 0.553196 -v -0.600000 1.547831 0.537018 -v -0.468750 1.666892 0.592254 -v -0.507192 1.751081 0.631312 -v -0.600000 1.785953 0.647490 -v -0.692808 1.751081 0.631312 -v -0.731250 1.666892 0.592254 -v -0.692808 1.582703 0.553196 -v -0.507192 1.900055 -0.126021 -v -0.600000 1.862579 -0.134584 -v -0.468750 1.990531 -0.105349 -v -0.507192 2.081007 -0.084676 -v -0.600000 2.118484 -0.076113 -v -0.692808 2.081007 -0.084676 -v -0.731250 1.990531 -0.105349 -v -0.692808 1.900055 -0.126021 -v -0.507192 2.128390 -1.114374 -v -0.600000 2.089948 -1.114167 -v -0.468750 2.221196 -1.114874 -v -0.507192 2.314003 -1.115373 -v -0.600000 2.352444 -1.115580 -v -0.692808 2.314003 -1.115373 -v -0.731250 2.221196 -1.114874 -v -0.692808 2.128390 -1.114374 -v -0.507192 2.127253 -2.030281 -v -0.600000 2.090441 -2.019205 -v -0.468750 2.216124 -2.057023 -v -0.507192 2.304996 -2.083764 -v -0.600000 2.341808 -2.094840 -v -0.692808 2.304996 -2.083764 -v -0.731250 2.216124 -2.057023 -v -0.692808 2.127253 -2.030281 -v -0.472031 1.940117 -2.669739 -v -0.564838 1.908912 -2.647287 -v -0.433588 2.015452 -2.723941 -v -0.472031 2.090787 -2.778143 -v -0.564838 2.121992 -2.800595 -v -0.657646 2.090787 -2.778143 -v -0.696088 2.015452 -2.723941 -v -0.657646 1.940117 -2.669739 -v -0.442782 1.729579 -2.977650 -v -0.535590 1.710985 -2.944004 -v -0.404340 1.774468 -3.058879 -v -0.442782 1.819358 -3.140109 -v -0.535590 1.837952 -3.173755 -v -0.628398 1.819358 -3.140109 -v -0.666840 1.774468 -3.058879 -v -0.628398 1.729579 -2.977650 -v -0.391283 1.438127 -3.156019 -v -0.484091 1.440989 -3.117683 -v -0.352841 1.431219 -3.248569 -v -0.391283 1.424311 -3.341119 -v -0.484091 1.421449 -3.379455 -v -0.576899 1.424311 -3.341119 -v -0.615341 1.431219 -3.248569 -v -0.576899 1.438127 -3.156019 -v -0.249516 1.207628 -3.148211 -v -0.342324 1.226989 -3.115000 -v -0.211074 1.160890 -3.228390 -v -0.249516 1.114151 -3.308570 -v -0.342324 1.094791 -3.341782 -v -0.435132 1.114151 -3.308570 -v -0.473574 1.160890 -3.228390 -v -0.435132 1.207628 -3.148211 -v -0.121115 1.064876 -3.038342 -v -0.213923 1.101756 -3.027492 -v -0.082673 0.975842 -3.064536 -v -0.121115 0.886808 -3.090731 -v -0.213923 0.849929 -3.101581 -v -0.306731 0.886808 -3.090731 -v -0.345173 0.975842 -3.064536 -v -0.306731 1.064876 -3.038342 -v -0.033410 1.011130 -2.881844 -v -0.126218 1.049316 -2.886280 -v 0.005033 0.918943 -2.871136 -v -0.033410 0.826755 -2.860428 -v -0.126218 0.788570 -2.855992 -v -0.219025 0.826755 -2.860428 -v -0.257468 0.918943 -2.871136 -v -0.219025 1.011130 -2.881844 -v 0.117527 1.061549 -2.447793 -v 0.024719 1.099735 -2.452229 -v 0.155969 0.969362 -2.437085 -v 0.117527 0.877173 -2.426377 -v 0.024719 0.838988 -2.421941 -v -0.068089 0.877173 -2.426377 -v -0.106531 0.969362 -2.437085 -v -0.068089 1.061549 -2.447793 -v -0.000000 1.625000 -0.375000 -v 0.088388 1.588388 -0.375000 -v 0.000000 1.750000 -2.000000 -v 0.000000 1.750000 -0.500000 -v 0.176777 1.676777 -2.000000 -v 0.176777 1.676777 -0.500000 -v 0.250000 1.500000 -2.000000 -v 0.250000 1.500000 -0.500000 -v 0.176777 1.323223 -2.000000 -v 0.176777 1.323223 -0.500000 -v -0.000000 1.250000 -2.000000 -v -0.000000 1.250000 -0.500000 -v -0.176777 1.323223 -2.000000 -v -0.176777 1.323223 -0.500000 -v -0.250000 1.500000 -2.000000 -v -0.250000 1.500000 -0.500000 -v -0.176777 1.676777 -2.000000 -v -0.176777 1.676777 -0.500000 -v 0.125000 1.500000 -0.375000 -v 0.088388 1.411612 -0.375000 -v -0.000000 1.375000 -0.375000 -v -0.088388 1.411612 -0.375000 -v -0.125000 1.500000 -0.375000 -v -0.088388 1.588388 -0.375000 -v -0.000000 1.625000 -2.125000 -v 0.088388 1.588388 -2.125000 -v 0.125000 1.500000 -2.125000 -v 0.088388 1.411612 -2.125000 -v -0.000000 1.375000 -2.125000 -v -0.088388 1.411612 -2.125000 -v -0.125000 1.500000 -2.125000 -v -0.088388 1.588388 -2.125000 -v -0.066291 1.316698 0.680730 -v -0.093750 1.254391 0.658093 -v -0.066291 1.192085 0.635456 -v -0.000000 1.166277 0.626079 -v 0.066291 1.192085 0.635456 -v 0.093750 1.254391 0.658093 -v -0.000000 1.342506 0.690107 -v 0.066291 1.316698 0.680730 -v 0.066291 1.469112 0.404562 -v 0.093750 1.410994 0.372674 -v 0.066291 1.352876 0.340786 -v -0.000000 1.328803 0.327577 -v -0.066291 1.352876 0.340786 -v -0.093750 1.410994 0.372674 -v -0.066291 1.469112 0.404562 -v -0.000000 1.493185 0.417770 -v -0.066291 1.564097 0.052334 -v -0.093750 1.500000 0.035418 -v -0.066291 1.435904 0.018502 -v -0.000000 1.409354 0.011496 -v 0.066291 1.435904 0.018502 -v 0.093750 1.500000 0.035418 -v -0.000000 1.590647 0.059341 -v 0.066291 1.564097 0.052334 -v -0.066291 1.566291 -0.375000 -v -0.093750 1.500000 -0.375000 -v -0.066291 1.433709 -0.375000 -v -0.000000 1.406250 -0.375000 -v 0.066291 1.433709 -0.375000 -v 0.093750 1.500000 -0.375000 -v 0.066291 1.566291 -0.375000 -v -0.000000 1.593750 -0.375000 -v -0.000000 1.239741 0.972957 -v -0.066291 1.213933 0.963580 -v -0.093750 1.151626 0.940943 -v -0.066291 1.089320 0.918306 -v -0.000000 1.063512 0.908929 -v 0.066291 1.089320 0.918306 -v 0.093750 1.151626 0.940943 -v 0.066291 1.213933 0.963580 -v 0.250000 1.250000 2.250000 -v 0.250000 0.750000 2.250000 -v 0.250000 1.250000 0.000000 -v 0.312500 1.250000 0.000000 -v 0.250000 0.750000 -2.000000 -v 0.250000 1.750000 -0.500000 -v 0.250000 1.750000 -2.000000 -v 0.312500 1.250000 2.250000 -v 0.312500 0.750000 2.250000 -v 0.312500 0.750000 -2.000000 -v 0.312500 1.750000 -2.000000 -v 0.312500 1.750000 -0.500000 -v -0.312500 1.250000 0.750000 -v -0.312500 0.750000 0.750000 -v -0.312500 1.250000 0.000000 -v -0.250000 1.250000 0.000000 -v -0.312500 0.750000 -2.000000 -v -0.312500 1.750000 -0.500000 -v -0.312500 1.750000 -2.000000 -v -0.250000 1.250000 0.750000 -v -0.250000 0.750000 0.750000 -v -0.250000 0.750000 -2.000000 -v -0.250000 1.750000 -2.000000 -v -0.250000 1.750000 -0.500000 -v 0.312500 1.875000 -2.000000 -v -0.312500 1.875000 -2.000000 -v 0.312500 1.875000 0.250000 -v -0.312500 1.875000 0.250000 -v 0.312500 1.625000 0.750000 -v -0.312500 1.625000 0.750000 -v 0.312500 1.625000 2.000000 -v -0.312500 1.625000 2.000000 -v 0.312500 1.375000 2.250000 -v -0.312500 1.375000 2.250000 -v 0.312500 1.250000 0.250000 -v 0.312500 1.250000 2.000000 -v -0.000000 1.000000 4.750000 -v 0.353553 1.353554 4.500000 -v 0.000000 1.500000 4.500000 -v 0.500000 1.000000 4.500000 -v 0.353553 0.646447 4.500000 -v -0.000000 0.500000 4.500000 -v -0.353553 0.646447 4.500000 -v -0.500000 1.000000 4.500000 -v -0.353553 1.353554 4.500000 -v 0.265165 1.265165 4.750000 -v 0.000000 1.375000 4.750000 -v 0.375000 1.000000 4.750000 -v 0.265165 0.734835 4.750000 -v -0.000000 0.625000 4.750000 -v -0.265165 0.734835 4.750000 -v -0.375000 1.000000 4.750000 -v -0.265165 1.265165 4.750000 -v -0.334835 0.772286 1.111861 -v -0.600000 0.694620 1.034196 -v -0.225000 0.959786 1.299361 -v -0.334835 1.147285 1.486861 -v -0.600000 1.224951 1.564526 -v -0.865165 1.147285 1.486861 -v -0.975000 0.959786 1.299361 -v -0.865165 0.772286 1.111861 -vt 0.798533 0.049911 -vt 0.749182 0.069988 -vt 0.728740 0.021518 -vt 0.547206 0.354533 -vt 0.448111 0.257208 -vt 0.489158 0.216895 -vt 0.081818 0.339286 -vt 0.072727 0.339286 -vt 0.072727 0.312500 -vt 0.081818 0.250000 -vt 0.072727 0.250000 -vt 0.072727 0.223214 -vt 0.081818 0.401786 -vt 0.081818 0.428571 -vt 0.072727 0.428571 -vt 0.081818 0.383929 -vt 0.072727 0.383929 -vt 0.072727 0.357143 -vt 0.926786 0.215241 -vt 0.943995 0.232143 -vt 0.926786 0.249044 -vt 0.081818 0.517857 -vt 0.072727 0.517857 -vt 0.072727 0.491071 -vt 0.081818 0.562500 -vt 0.072727 0.562500 -vt 0.072727 0.535714 -vt 0.081818 0.473214 -vt 0.072727 0.473214 -vt 0.072727 0.446429 -vt 0.081818 0.294643 -vt 0.072727 0.294643 -vt 0.072727 0.267857 -vt 0.000000 0.508929 -vt 0.036364 0.491071 -vt 0.036364 0.517857 -vt 0.592964 0.246503 -vt 0.697945 0.246503 -vt 0.697945 0.289211 -vt 0.981818 0.607143 -vt 0.763636 0.750000 -vt 0.690909 0.678571 -vt 0.990909 0.750000 -vt 0.981818 0.750000 -vt 0.763636 0.758929 -vt 0.990909 0.607143 -vt 0.990909 0.678571 -vt 0.690909 0.758929 -vt 0.690909 0.750000 -vt 0.981818 0.758929 -vt 0.363636 0.758929 -vt 0.363636 0.750000 -vt 0.581818 0.758929 -vt 0.581818 0.750000 -vt 0.890909 0.000000 -vt 0.890909 0.321429 -vt 0.800000 0.321429 -vt 0.890909 0.392857 -vt 0.800000 0.392857 -vt 0.890909 0.571429 -vt 0.800000 0.571429 -vt 0.890909 0.607143 -vt 0.800000 0.607143 -vt 0.936364 0.392857 -vt 0.000000 0.241071 -vt 0.036364 0.223214 -vt 0.036364 0.250000 -vt 0.036364 0.446429 -vt 0.036364 0.473214 -vt 0.000000 0.464286 -vt 0.036364 0.357143 -vt 0.036364 0.383929 -vt 0.000000 0.375000 -vt 0.036364 0.294643 -vt 0.000000 0.285714 -vt 0.036364 0.267857 -vt 0.036364 0.401786 -vt 0.036364 0.428571 -vt 0.000000 0.419643 -vt 0.036364 0.562500 -vt 0.000000 0.553571 -vt 0.036364 0.535714 -vt 0.036364 0.312500 -vt 0.036364 0.339286 -vt 0.000000 0.330357 -vt 0.749182 0.001441 -vt 0.778091 0.001441 -vt 0.798533 0.021518 -vt 0.778091 0.069988 -vt 0.728740 0.049911 -vt 0.547206 0.216895 -vt 0.588252 0.257208 -vt 0.588252 0.314220 -vt 0.489158 0.354533 -vt 0.448111 0.314220 -vt 0.081818 0.312500 -vt 0.081818 0.223214 -vt 0.072727 0.401786 -vt 0.081818 0.357143 -vt 0.909577 0.249044 -vt 0.909577 0.215241 -vt 0.897409 0.244094 -vt 0.892369 0.232143 -vt 0.897409 0.220192 -vt 0.938955 0.220192 -vt 0.938955 0.244094 -vt 0.081818 0.491071 -vt 0.081818 0.535714 -vt 0.081818 0.446429 -vt 0.081818 0.267857 -vt 0.667197 0.319410 -vt 0.623712 0.319410 -vt 0.592964 0.289211 -vt 0.623712 0.216304 -vt 0.667197 0.216304 -vt 0.363636 0.678571 -vt 0.363636 0.607143 -vt 0.981818 0.678571 -vt 0.581818 0.678571 -vt 0.581818 0.607143 -vt 0.800000 0.000000 -vt 0.981818 0.321429 -vt 0.936364 0.571429 -vt 0.000000 0.107143 -vt 0.000000 0.080357 -vt 0.727273 0.080357 -vt 0.000000 0.053571 -vt 0.727273 0.053571 -vt 0.000000 0.026786 -vt 0.727273 0.026786 -vt 0.000000 -0.000000 -vt 0.727273 -0.000000 -vt 0.000000 0.214286 -vt 0.000000 0.187500 -vt 0.727273 0.187500 -vt -0.000000 0.160714 -vt 0.727273 0.160714 -vt 0.000000 0.133929 -vt 0.727273 0.107143 -vt 0.727273 0.133929 -vt 0.154545 0.392857 -vt 0.118182 0.383929 -vt 0.118182 0.357143 -vt 0.445455 0.482143 -vt 0.154545 0.482143 -vt 0.154545 0.437500 -vt 0.445455 0.571429 -vt 0.154545 0.571429 -vt 0.154545 0.526786 -vt 0.445455 0.303571 -vt 0.154545 0.303571 -vt 0.154545 0.258929 -vt 0.445455 0.392857 -vt 0.154545 0.348214 -vt 0.445455 0.437500 -vt 0.445455 0.526786 -vt 0.445455 0.258929 -vt 0.154545 0.214286 -vt 0.445455 0.348214 -vt 0.118182 0.473214 -vt 0.118182 0.428571 -vt 0.118182 0.401786 -vt 0.118182 0.517857 -vt 0.118182 0.491071 -vt 0.118182 0.250000 -vt 0.118182 0.223214 -vt 0.118182 0.339286 -vt 0.118182 0.446429 -vt 0.118182 0.562500 -vt 0.118182 0.535714 -vt 0.118182 0.294643 -vt 0.963636 0.000000 -vt 0.963636 0.214286 -vt 0.954545 0.214286 -vt 0.909091 0.214286 -vt 0.900000 0.214286 -vt 0.900000 -0.000000 -vt 0.945455 0.214286 -vt 0.945455 0.000000 -vt 0.890909 0.214286 -vt 0.936364 0.214286 -vt 0.936364 0.000000 -vt 0.990909 0.214286 -vt 0.981818 0.214286 -vt 0.981818 0.000000 -vt 0.927273 0.214286 -vt 1.000000 0.214286 -vt 0.990909 0.000000 -vt 0.909091 -0.000000 -vt 0.927273 0.000000 -vt 0.954545 0.000000 -vt 0.081818 0.607143 -vt 0.054545 0.607143 -vt 0.063636 0.571429 -vt 0.000000 0.642857 -vt 0.009091 0.607143 -vt 0.036364 0.607143 -vt 0.090909 0.928571 -vt 0.045455 0.928571 -vt 0.045455 0.642857 -vt 0.281818 0.607143 -vt 0.290909 0.571429 -vt 0.309091 0.607143 -vt 0.000000 0.928571 -vt 0.018182 0.571429 -vt 0.227273 0.642857 -vt 0.236364 0.607143 -vt 0.263636 0.607143 -vt 0.363636 0.928571 -vt 0.318182 0.928571 -vt 0.318182 0.642857 -vt 0.336364 0.571429 -vt 0.354545 0.607143 -vt 0.327273 0.607143 -vt 0.272727 0.642857 -vt 0.272727 0.928571 -vt 0.245455 0.571429 -vt 0.181818 0.642857 -vt 0.136364 0.642857 -vt 0.145455 0.607143 -vt 0.227273 0.928571 -vt 0.090909 0.642857 -vt 0.100000 0.607143 -vt 0.127273 0.607143 -vt 0.109091 0.571429 -vt 0.181818 0.928571 -vt 0.136364 0.928571 -vt 0.172727 0.964286 -vt 0.190909 0.607143 -vt 0.200000 0.571429 -vt 0.218182 0.607143 -vt 0.363636 0.642857 -vt 0.172727 0.607143 -vt 0.172727 1.000000 -vt 0.145455 1.000000 -vt 0.309091 0.964286 -vt 0.127273 0.964286 -vt 0.100000 0.964286 -vt 0.263636 0.964286 -vt 0.236364 0.964286 -vt 0.036364 0.964286 -vt 0.009091 0.964286 -vt 0.218182 0.964286 -vt 0.190909 0.964286 -vt 0.081818 0.964286 -vt 0.354545 0.964286 -vt 0.327273 0.964286 -vt 0.263636 1.000000 -vt 0.236364 1.000000 -vt 0.354545 1.000000 -vt 0.327273 1.000000 -vt 0.081818 1.000000 -vt 0.054545 1.000000 -vt 0.127273 1.000000 -vt 0.100000 1.000000 -vt 0.218182 1.000000 -vt 0.190909 1.000000 -vt 0.309091 1.000000 -vt 0.281818 1.000000 -vt 0.036364 1.000000 -vt 0.448482 0.946245 -vt 0.447816 0.936764 -vt 0.523996 0.936068 -vt 0.369358 0.915395 -vt 0.369651 0.904997 -vt 0.443928 0.907333 -vt 0.369577 0.977632 -vt 0.444759 0.974927 -vt 0.444202 0.985187 -vt 0.368934 0.957145 -vt 0.447883 0.955729 -vt 0.446357 0.965194 -vt 0.368756 0.946516 -vt 0.368859 0.935885 -vt 0.369103 0.925507 -vt 0.444557 0.917588 -vt 0.369251 0.967522 -vt 0.446224 0.927310 -vt 0.522087 0.975636 -vt 0.626450 0.975177 -vt 0.626057 0.985284 -vt 0.521878 0.916354 -vt 0.523095 0.965773 -vt 0.524450 0.945986 -vt 0.524068 0.955907 -vt 0.522955 0.926210 -vt 0.521371 0.906291 -vt 0.521651 0.985702 -vt 0.628882 0.945575 -vt 0.723624 0.945363 -vt 0.722938 0.955028 -vt 0.628486 0.955489 -vt 0.627480 0.965327 -vt 0.628421 0.935698 -vt 0.626249 0.916110 -vt 0.627351 0.925915 -vt 0.625775 0.906009 -vt 0.721652 0.964592 -vt 0.790095 0.963668 -vt 0.789097 0.973339 -vt 0.722167 0.926018 -vt 0.719968 0.906107 -vt 0.720504 0.974265 -vt 0.720292 0.984376 -vt 0.723330 0.935673 -vt 0.720747 0.916255 -vt 0.791502 0.954389 -vt 0.831324 0.953660 -vt 0.829446 0.962292 -vt 0.792458 0.945160 -vt 0.791501 0.926590 -vt 0.788839 0.906848 -vt 0.789375 0.983686 -vt 0.792466 0.935897 -vt 0.789942 0.917055 -vt 0.829472 0.918437 -vt 0.827726 0.908180 -vt 0.862719 0.910216 -vt 0.832923 0.936395 -vt 0.828203 0.971666 -vt 0.832673 0.945158 -vt 0.831759 0.927625 -vt 0.828966 0.982180 -vt 0.863999 0.960877 -vt 0.889845 0.961285 -vt 0.890148 0.970994 -vt 0.862777 0.969191 -vt 0.866818 0.953742 -vt 0.871109 0.938583 -vt 0.869466 0.946526 -vt 0.866875 0.920299 -vt 0.870562 0.929761 -vt 0.899634 0.931326 -vt 0.924923 0.932413 -vt 0.925432 0.940574 -vt 0.895714 0.946765 -vt 0.892429 0.953646 -vt 0.891166 0.913838 -vt 0.865152 0.979003 -vt 0.898514 0.939714 -vt 0.896870 0.922597 -vt 0.914512 0.972870 -vt 0.917998 0.983727 -vt 0.894742 0.980719 -vt 0.919650 0.955423 -vt 0.915792 0.963054 -vt 0.923237 0.948280 -vt 0.920544 0.924055 -vt 0.945061 0.931037 -vt 0.935756 0.975611 -vt 0.937251 0.965252 -vt 0.984846 0.968093 -vt 0.913450 0.915823 -vt 0.933929 0.913381 -vt 0.940874 0.956561 -vt 0.946125 0.940120 -vt 0.944297 0.948500 -vt 0.940514 0.922208 -vt 0.989499 0.946755 -vt 0.986463 0.957358 -vt 0.992017 0.925068 -vt 0.991979 0.935995 -vt 0.984210 0.904997 -vt 0.938053 0.986290 -vt 0.985609 0.978434 -vt 0.989108 0.914525 -vt 0.690909 0.437500 -vt 0.709091 0.446429 -vt 0.709091 0.455357 -vt 0.472727 0.544643 -vt 0.454545 0.535714 -vt 0.454545 0.526786 -vt 0.472727 0.464286 -vt 0.472727 0.437500 -vt 0.690909 0.410714 -vt 0.709091 0.419643 -vt 0.709091 0.428571 -vt 0.454545 0.428571 -vt 0.454545 0.419643 -vt 0.472727 0.410714 -vt 0.690909 0.357143 -vt 0.709091 0.366071 -vt 0.709091 0.375000 -vt 0.472727 0.571429 -vt 0.454545 0.562500 -vt 0.454545 0.553571 -vt 0.472727 0.383929 -vt 0.690909 0.383929 -vt 0.690909 0.517857 -vt 0.690909 0.491071 -vt 0.709091 0.500000 -vt 0.472727 0.491071 -vt 0.454545 0.482143 -vt 0.454545 0.473214 -vt 0.472727 0.357143 -vt 0.743565 0.392074 -vt 0.718979 0.382072 -vt 0.753748 0.367928 -vt 0.454545 0.375000 -vt 0.454545 0.366071 -vt 0.690909 0.544643 -vt 0.454545 0.401786 -vt 0.454545 0.392857 -vt 0.718979 0.367928 -vt 0.743565 0.357926 -vt 0.729163 0.392074 -vt 0.472727 0.517857 -vt 0.454545 0.508929 -vt 0.454545 0.500000 -vt 0.690909 0.464286 -vt 0.709091 0.553571 -vt 0.709091 0.562500 -vt 0.454545 0.455357 -vt 0.454545 0.446429 -vt 0.709091 0.392857 -vt 0.709091 0.401786 -vt 0.709091 0.526786 -vt 0.709091 0.535714 -vt 0.709091 0.473214 -vt 0.709091 0.482143 -vt 0.883488 0.817576 -vt 0.882232 0.827636 -vt 0.835305 0.826374 -vt 0.885741 0.796519 -vt 0.884937 0.807186 -vt 0.834078 0.804683 -vt 0.885054 0.867824 -vt 0.834209 0.870476 -vt 0.834772 0.859787 -vt 0.882271 0.847386 -vt 0.835381 0.848832 -vt 0.835584 0.837608 -vt 0.881777 0.837512 -vt 0.834652 0.815389 -vt 0.885897 0.878489 -vt 0.834109 0.881224 -vt 0.788550 0.816272 -vt 0.788349 0.805553 -vt 0.935471 0.867378 -vt 0.935886 0.878049 -vt 0.934232 0.817658 -vt 0.932675 0.837417 -vt 0.933171 0.847256 -vt 0.934307 0.857171 -vt 0.935356 0.807446 -vt 0.933133 0.827577 -vt 0.883566 0.857440 -vt 0.995395 0.848137 -vt 0.995120 0.858794 -vt 0.995353 0.826466 -vt 0.994699 0.805334 -vt 0.935730 0.796774 -vt 0.994822 0.869271 -vt 0.995520 0.837301 -vt 0.995038 0.815809 -vt 0.994494 0.879958 -vt 0.788149 0.880627 -vt 0.788294 0.869864 -vt 0.788460 0.858982 -vt 0.788621 0.848192 -vt 0.788686 0.826897 -vt 0.788149 0.794715 -vt 0.788710 0.837511 -vt 0.727273 0.214286 -vt 0.445455 0.214286 -vt 0.118182 0.312500 -vt 0.118182 0.267857 -vt 1.000000 0.000000 -vt 0.145455 0.964286 -vt 0.281818 0.964286 -vt 0.054545 0.964286 -vt 0.009091 1.000000 -vt 0.369943 0.988027 -vt 0.988370 0.988839 -vt 0.709091 0.508929 -vt 0.729163 0.357926 -vt 0.753748 0.382072 -vt 0.690909 0.571429 -vt 0.833952 0.793960 -vt 0.994330 0.794648 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -0.965900 0.258800 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.707100 -0.707100 -vn 1.000000 0.000000 0.000000 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.707100 0.707100 -vn 0.000000 0.894400 0.447200 -vn 0.707100 0.707100 0.000000 -vn 0.549000 0.549000 -0.630200 -vn 0.776400 0.000000 -0.630200 -vn 0.707100 -0.707100 0.000000 -vn 0.549000 -0.549000 -0.630200 -vn 0.000000 -0.776400 -0.630200 -vn -0.707100 -0.707100 0.000000 -vn -0.549000 -0.549000 -0.630200 -vn -0.776400 0.000000 -0.630200 -vn -0.707100 0.707100 0.000000 -vn 0.000000 0.776400 -0.630200 -vn -0.549000 0.549000 -0.630200 -vn 0.632400 0.632400 0.447200 -vn -0.776400 0.000000 0.630200 -vn -0.549000 0.549000 0.630200 -vn -0.632400 0.632400 0.447200 -vn -0.632400 -0.632400 0.447200 -vn -0.894400 0.000000 0.447200 -vn 0.632400 -0.632400 0.447200 -vn 0.000000 -0.894400 0.447200 -vn 0.894400 0.000000 0.447200 -vn 0.000000 0.776400 0.630200 -vn 0.000000 -0.776400 0.630200 -vn -0.549000 -0.549000 0.630200 -vn 0.549000 0.549000 0.630200 -vn 0.776400 0.000000 0.630200 -vn 0.549000 -0.549000 0.630200 -vn 0.731800 -0.605300 0.312900 -vn 0.980800 0.050500 0.188400 -vn 0.707100 0.183000 0.683000 -vn -0.594300 0.000000 0.804200 -vn -0.420300 -0.420300 0.804200 -vn -0.980800 -0.050500 -0.188400 -vn -0.707100 -0.183000 -0.683000 -vn -0.549000 -0.750800 -0.367100 -vn 0.000000 0.258800 0.965900 -vn 0.000000 -0.407800 0.913000 -vn 0.000000 -0.258800 -0.965900 -vn 0.000000 -0.809700 -0.586800 -vn -0.707100 0.183000 0.683000 -vn -0.549000 -0.466700 0.693400 -vn 0.707100 -0.183000 -0.683000 -vn 0.980800 -0.050500 -0.188400 -vn 0.731800 -0.680700 0.031700 -vn -0.980800 0.050500 0.188400 -vn 0.549000 -0.750800 -0.367100 -vn -0.731900 -0.680700 0.031700 -vn -0.731900 -0.605300 0.312900 -vn 0.000000 0.594300 0.804200 -vn -0.420300 0.420300 0.804200 -vn 0.594300 0.000000 0.804200 -vn 0.000000 -0.594300 0.804200 -vn 0.420300 -0.420300 0.804200 -vn 0.420300 0.420300 0.804200 -vn 0.980800 0.000000 0.195100 -vn 0.707100 0.000000 0.707100 -vn 0.549000 -0.630200 0.549000 -vn -0.980800 0.000000 -0.195100 -vn -0.707100 0.000000 -0.707100 -vn -0.549000 -0.630200 -0.549000 -vn 0.000000 -0.630200 0.776400 -vn 0.000000 -0.630200 -0.776400 -vn -0.707100 0.000000 0.707100 -vn -0.549000 -0.630200 0.549000 -vn 0.707100 0.000000 -0.707100 -vn 0.980800 0.000000 -0.195100 -vn 0.731800 -0.665700 -0.145600 -vn -0.980800 0.000000 0.195100 -vn -0.731900 -0.665700 0.145600 -vn 0.549000 -0.630200 -0.549000 -vn 0.000000 -1.000000 0.005700 -vn 0.497100 -0.854400 0.151300 -vn 0.000000 -0.707100 0.707100 -vn 0.975900 -0.154200 0.154200 -vn 0.703000 -0.502900 0.502900 -vn 0.000000 -0.535800 -0.844300 -vn 0.690100 -0.333700 -0.642200 -vn 0.690100 -0.642200 -0.333700 -vn 0.000000 -0.005700 1.000000 -vn 0.497100 -0.151300 0.854400 -vn 0.975900 0.154200 -0.154200 -vn -0.690100 0.333700 0.642200 -vn -0.497100 -0.151300 0.854400 -vn 0.690100 0.642200 0.333700 -vn 0.690100 0.333700 0.642200 -vn 0.000000 0.535800 0.844300 -vn 0.000000 0.844300 0.535800 -vn -0.975900 -0.154200 0.154200 -vn -0.690100 -0.642200 -0.333700 -vn -0.497100 -0.854400 0.151300 -vn -0.690100 0.642200 0.333700 -vn 0.000000 -0.844300 -0.535800 -vn -0.975900 0.154200 -0.154200 -vn -0.690100 -0.333700 -0.642200 -vn -0.894400 0.316200 -0.316200 -vn -0.703000 -0.502900 0.502900 -vn -0.776400 0.445700 -0.445700 -vn -0.549000 0.057500 -0.833800 -vn 0.632400 0.763400 0.131000 -vn -0.632400 -0.131000 -0.763400 -vn 0.000000 -0.316200 -0.948700 -vn 0.000000 0.948700 0.316200 -vn -0.632400 0.763400 0.131000 -vn 0.632400 -0.131000 -0.763400 -vn 0.894400 0.316200 -0.316200 -vn 0.000000 0.994600 0.103300 -vn -0.549000 0.833800 -0.057500 -vn 0.776400 0.445700 -0.445700 -vn 0.549000 0.833800 -0.057500 -vn 0.000000 -0.707100 -0.707100 -vn 0.000000 -0.103300 -0.994600 -vn 0.549000 0.057500 -0.833800 -vn -0.707100 -0.500000 -0.500000 -vn -0.707100 0.500000 0.500000 -vn 0.707100 0.500000 0.500000 -vn 0.707100 -0.500000 -0.500000 -vn 0.000000 0.827100 0.562100 -vn 0.683300 0.600200 0.415700 -vn 0.693300 0.682400 0.231700 -vn 0.705400 -0.496100 -0.506200 -vn 0.000000 -0.699000 -0.715100 -vn 0.000000 -0.811400 -0.584400 -vn -0.705400 -0.496100 -0.506200 -vn -0.725200 -0.561800 -0.398000 -vn -0.705600 0.503700 0.498400 -vn -0.683300 0.600200 0.415700 -vn -0.999000 0.032000 0.030400 -vn 0.000000 0.712400 0.701800 -vn 0.705600 0.503700 0.498400 -vn 1.000000 0.000400 -0.001700 -vn 0.725200 -0.561800 -0.398000 -vn -1.000000 0.000400 -0.001700 -vn 0.999000 0.032000 0.030400 -vn -0.718600 -0.657300 -0.226900 -vn -0.719300 -0.690200 -0.078800 -vn 0.000000 -0.993100 -0.116900 -vn 0.718600 -0.657300 -0.226900 -vn -0.999700 0.023400 0.010300 -vn 0.000000 0.947900 0.318400 -vn -0.693300 0.682400 0.231700 -vn 0.999700 0.023400 0.010300 -vn 0.000000 -0.944200 -0.329200 -vn 0.000000 0.994700 0.102800 -vn -0.006100 0.987200 -0.159300 -vn -0.691700 0.710900 -0.126900 -vn -0.691700 0.718000 0.077200 -vn -0.999600 0.027600 0.005700 -vn 0.691700 0.718000 0.077200 -vn 0.719300 -0.690200 -0.078800 -vn 0.999600 0.027600 0.005700 -vn -0.999300 0.027700 -0.025700 -vn -0.997900 0.001500 -0.064500 -vn -0.717500 -0.649700 0.251000 -vn 0.998800 0.042800 0.023500 -vn -0.006300 -0.990800 0.135100 -vn -0.723100 -0.686200 0.078500 -vn 0.682800 0.724400 -0.094700 -vn 0.719700 -0.684400 0.116600 -vn -0.687200 0.630100 -0.361500 -vn -0.684100 0.423900 -0.593500 -vn -0.995000 -0.050400 -0.085800 -vn -0.003300 0.887300 -0.461200 -vn 0.996600 0.073200 0.037400 -vn -0.002200 -0.909500 0.415700 -vn 0.678000 0.671800 -0.298300 -vn 0.723200 -0.602900 0.336800 -vn 0.726500 -0.411900 0.550000 -vn -0.003300 -0.704400 0.709800 -vn -0.033300 -0.321700 0.946200 -vn 0.661200 0.525400 -0.535500 -vn -0.717000 -0.537600 0.443600 -vn -0.006700 0.629700 -0.776800 -vn 0.991200 0.131100 0.017300 -vn -0.960600 -0.273300 -0.049700 -vn -0.890000 -0.428900 0.154400 -vn -0.634000 -0.151900 0.758300 -vn -0.681200 -0.430500 0.592100 -vn -0.697800 -0.058900 -0.713900 -vn 0.597300 0.310100 -0.739600 -vn -0.041800 0.139900 -0.989300 -vn 0.718700 0.085800 0.690000 -vn 0.929700 0.356300 -0.093200 -vn 0.882400 0.353000 -0.311000 -vn 0.874400 0.089800 -0.476700 -vn 0.610500 -0.532600 -0.586200 -vn 0.000900 -0.430000 -0.902800 -vn -0.651600 -0.535800 -0.536900 -vn 0.010300 0.310300 0.950600 -vn 0.629100 -0.101200 -0.770700 -vn 0.674700 0.632300 0.380800 -vn -0.573400 0.329700 0.749900 -vn 0.047400 0.812400 0.581200 -vn -0.672400 -0.724800 -0.150000 -vn -0.900900 -0.218100 0.375200 -vn -0.009400 -0.872900 -0.487700 -vn 0.705600 0.708100 -0.027000 -vn 0.930000 -0.066400 -0.361400 -vn -0.660900 0.652200 0.371200 -vn -0.936300 -0.021900 0.350400 -vn -0.945200 0.037700 0.324300 -vn 0.036300 0.994200 0.101200 -vn -0.676800 -0.715000 0.174900 -vn 0.639800 -0.721300 -0.265100 -vn -0.008100 -0.998200 -0.058600 -vn 0.717300 0.648600 -0.254300 -vn 0.080500 -0.992900 0.087300 -vn -0.645400 -0.700000 0.305700 -vn 0.945200 -0.037700 -0.324300 -vn 0.719700 -0.672500 -0.172200 -vn 0.080500 0.986500 -0.142600 -vn -0.645400 0.751400 0.137100 -vn 0.719700 0.615200 -0.321700 -vn 0.661500 0.661500 -0.353100 -vn 0.323800 0.323800 -0.888900 -vn 0.000000 0.458000 -0.888900 -vn -0.661500 -0.661500 0.353100 -vn -0.323800 -0.323800 0.888900 -vn -0.458000 0.000000 0.888900 -vn 0.000000 0.935500 0.353100 -vn 0.661500 0.661500 0.353100 -vn 0.935500 0.000000 -0.353100 -vn 0.458000 0.000000 -0.888900 -vn 0.323800 0.323800 0.888900 -vn 0.458000 0.000000 0.888900 -vn 0.935500 0.000000 0.353100 -vn 0.000000 -0.935500 -0.353100 -vn 0.000000 -0.458000 -0.888900 -vn 0.323800 -0.323800 -0.888900 -vn 0.000000 -0.935500 0.353100 -vn 0.000000 -0.458000 0.888900 -vn 0.661500 -0.661500 0.353100 -vn 0.661500 -0.661500 -0.353100 -vn -0.935500 0.000000 -0.353100 -vn -0.661500 0.661500 -0.353100 -vn -0.323800 0.323800 -0.888900 -vn -0.661500 0.661500 0.353100 -vn -0.323800 0.323800 0.888900 -vn 0.000000 0.458000 0.888900 -vn -0.323800 -0.323800 -0.888900 -vn 0.323800 -0.323800 0.888900 -vn -0.661500 -0.661500 -0.353100 -vn -0.935500 0.000000 0.353100 -vn 0.000000 0.935500 -0.353100 -vn -0.458000 0.000000 -0.888900 -vn 0.999500 0.028900 0.008500 -vn 0.691200 0.669900 0.271000 -vn 0.716000 0.635600 0.288600 -vn 0.000000 -0.931700 -0.363100 -vn 0.720600 -0.644800 -0.254800 -vn 0.697400 -0.653200 -0.294700 -vn -0.720600 -0.644800 -0.254800 -vn -0.697400 -0.653200 -0.294700 -vn -0.999800 -0.016500 -0.008800 -vn -0.691200 0.669900 0.270900 -vn -0.716000 0.635600 0.288600 -vn 0.000000 0.909800 0.415000 -vn 0.000000 0.925400 0.378900 -vn 0.999800 -0.016500 -0.008800 -vn 0.000000 -0.912200 -0.409800 -vn 0.707100 -0.664600 -0.241500 -vn -0.720700 -0.688000 -0.084700 -vn 0.000000 -0.993100 -0.117200 -vn 0.999500 0.031400 0.001000 -vn 0.000000 0.990300 0.138600 -vn -0.689800 0.717500 0.096500 -vn -0.999500 0.031400 0.001000 -vn 0.720700 -0.688000 -0.084700 -vn 0.689800 0.717500 0.096500 -vn -0.999500 0.028900 0.008500 -vn -0.706000 0.708200 0.002700 -vn -1.000000 -0.000700 0.001000 -vn 0.706000 0.708200 0.002700 -vn 0.705900 -0.708300 0.005000 -vn -0.705900 -0.708300 0.005000 -vn 0.000000 1.000000 0.005300 -vn 1.000000 -0.000700 0.001000 -vn 0.000000 -0.999900 0.008000 -vn 0.000000 -0.939900 -0.341500 -vn -0.707100 -0.664600 -0.241500 -vn -0.707100 0.664600 0.241500 -vn 0.707100 0.664600 0.241500 -vn 0.000000 0.939900 0.341500 -vn 0.549000 -0.466700 0.693400 -vn 0.731900 -0.665700 0.145600 -vn -0.731900 -0.665700 -0.145600 -s off -f 7/1/1 11/2/1 15/3/1 -f 21/4/1 24/5/1 17/6/1 -f 57/7/2 76/8/2 75/9/2 -f 58/10/2 74/11/2 72/12/2 -f 45/13/2 68/14/2 69/15/2 -f 45/16/2 73/17/2 76/18/2 -f 63/19/3 42/20/3 61/21/3 -f 44/22/2 71/23/2 70/24/2 -f 46/25/2 72/26/2 71/27/2 -f 67/28/2 70/29/2 69/30/2 -f 43/31/2 75/32/2 74/33/2 -f 350/34/2 78/35/2 79/36/2 -f 101/19/4 86/20/4 99/21/4 -f 144/37/5 141/38/5 140/39/5 -f 323/40/6 325/41/6 317/42/6 -f 320/43/1 324/44/1 323/40/1 -f 319/41/7 320/44/7 318/40/7 -f 319/45/8 325/41/8 324/44/8 -f 315/40/2 322/46/2 321/47/2 -f 316/48/9 317/49/9 325/41/9 -f 318/44/4 323/50/4 322/51/4 -f 314/51/8 321/52/8 317/49/8 -f 335/40/6 337/41/6 329/42/6 -f 332/43/1 336/44/1 335/40/1 -f 331/41/7 332/44/7 330/40/7 -f 331/45/8 337/41/8 336/44/8 -f 327/40/2 334/46/2 333/47/2 -f 328/48/9 329/49/9 337/41/9 -f 330/44/4 335/50/4 334/53/4 -f 326/53/8 333/54/8 329/49/8 -f 339/55/8 341/56/8 340/57/8 -f 341/56/10 343/58/10 342/59/10 -f 343/58/8 345/60/8 344/61/8 -f 345/60/9 347/62/9 346/63/9 -f 342/64/6 349/60/6 348/56/6 -f 350/65/2 80/66/2 82/67/2 -f 77/68/2 78/69/2 350/70/2 -f 84/71/2 81/72/2 350/73/2 -f 83/74/2 350/75/2 82/76/2 -f 81/77/2 77/78/2 350/79/2 -f 80/80/2 350/81/2 79/82/2 -f 83/83/2 84/84/2 350/85/2 -f 15/3/1 1/86/1 3/87/1 -f 3/87/1 5/88/1 7/1/1 -f 7/1/1 9/89/1 11/2/1 -f 11/2/1 13/90/1 15/3/1 -f 15/3/1 3/87/1 7/1/1 -f 17/6/1 18/91/1 19/92/1 -f 19/92/1 20/93/1 21/4/1 -f 21/4/1 22/94/1 23/95/1 -f 23/95/1 24/5/1 21/4/1 -f 17/6/1 19/92/1 21/4/1 -f 43/96/2 57/7/2 75/9/2 -f 46/97/2 58/10/2 72/12/2 -f 73/98/2 45/13/2 69/15/2 -f 57/99/2 45/16/2 76/18/2 -f 61/21/3 47/100/3 55/101/3 -f 49/102/3 51/103/3 53/104/3 -f 53/104/3 55/101/3 47/100/3 -f 63/19/3 65/105/3 42/20/3 -f 42/20/3 59/106/3 61/21/3 -f 47/100/3 49/102/3 53/104/3 -f 55/101/3 63/19/3 61/21/3 -f 67/107/2 44/22/2 70/24/2 -f 44/108/2 46/25/2 71/27/2 -f 68/109/2 67/28/2 69/30/2 -f 58/110/2 43/31/2 74/33/2 -f 99/21/4 87/100/4 95/101/4 -f 89/102/4 91/103/4 93/104/4 -f 93/104/4 95/101/4 87/100/4 -f 101/19/4 103/105/4 86/20/4 -f 86/20/4 97/106/4 99/21/4 -f 87/100/4 89/102/4 93/104/4 -f 95/101/4 101/19/4 99/21/4 -f 140/39/5 138/111/5 144/37/5 -f 139/112/5 145/113/5 144/37/5 -f 144/37/5 143/114/5 142/115/5 -f 142/115/5 141/38/5 144/37/5 -f 138/111/5 139/112/5 144/37/5 -f 321/116/6 322/117/6 317/42/6 -f 323/40/6 324/44/6 325/41/6 -f 317/42/6 322/117/6 323/40/6 -f 318/46/1 320/43/1 323/40/1 -f 318/40/7 315/117/7 316/42/7 -f 316/42/7 319/41/7 318/40/7 -f 315/117/7 314/116/7 316/42/7 -f 320/50/8 319/45/8 324/44/8 -f 314/118/2 315/40/2 321/47/2 -f 319/45/9 316/48/9 325/41/9 -f 315/52/4 318/44/4 322/51/4 -f 316/48/8 314/51/8 317/49/8 -f 333/119/6 334/120/6 329/42/6 -f 335/40/6 336/44/6 337/41/6 -f 329/42/6 334/120/6 335/40/6 -f 330/46/1 332/43/1 335/40/1 -f 330/40/7 327/120/7 328/42/7 -f 328/42/7 331/41/7 330/40/7 -f 327/120/7 326/119/7 328/42/7 -f 332/50/8 331/45/8 336/44/8 -f 326/118/2 327/40/2 333/47/2 -f 331/45/9 328/48/9 337/41/9 -f 327/54/4 330/44/4 334/53/4 -f 328/48/8 326/53/8 329/49/8 -f 338/121/8 339/55/8 340/57/8 -f 340/57/10 341/56/10 342/59/10 -f 342/59/8 343/58/8 344/61/8 -f 344/61/9 345/60/9 346/63/9 -f 348/56/6 340/122/6 342/64/6 -f 342/64/6 344/123/6 349/60/6 -s 1 -f 2/124/8 4/125/11 3/126/12 -f 4/125/11 6/127/6 5/128/13 -f 6/127/6 8/129/14 7/130/15 -f 8/129/14 10/131/4 9/132/16 -f 10/133/4 12/134/17 11/135/18 -f 12/134/17 14/136/7 13/137/19 -f 16/138/20 2/124/8 1/139/21 -f 14/136/7 16/138/20 15/140/22 -f 352/141/10 360/142/10 359/143/23 -f 23/144/19 357/145/7 358/146/20 -f 21/147/16 355/148/4 356/149/17 -f 19/150/13 353/151/6 354/152/14 -f 17/153/21 26/141/8 25/154/11 -f 24/155/22 358/146/20 26/141/8 -f 22/156/18 356/149/17 357/145/7 -f 20/157/15 354/152/14 355/158/4 -f 18/159/12 25/154/11 353/151/6 -f 39/160/7 67/28/24 68/109/25 -f 32/146/26 40/161/26 360/162/10 -f 30/149/27 364/163/27 365/164/28 -f 28/152/29 362/165/29 363/166/30 -f 27/151/31 351/154/23 359/167/23 -f 31/145/28 365/160/28 40/168/26 -f 29/148/30 363/169/30 364/170/27 -f 28/152/29 27/151/31 361/171/31 -f 366/161/20 68/14/25 45/13/32 -f 37/169/4 46/25/33 44/108/34 -f 34/142/8 45/16/32 57/99/35 -f 35/171/6 43/31/36 58/110/37 -f 47/172/38 48/173/39 50/174/40 -f 75/9/41 76/8/42 84/84/34 -f 64/175/43 66/176/44 65/177/45 -f 50/174/40 52/178/46 51/179/47 -f 33/167/11 57/7/35 43/96/36 -f 66/176/44 41/180/48 42/55/49 -f 52/178/46 54/181/50 53/182/51 -f 36/165/14 58/10/37 46/97/33 -f 60/183/52 62/184/53 61/185/54 -f 53/182/51 54/181/50 56/186/55 -f 41/187/48 60/183/52 59/188/56 -f 61/185/54 62/184/53 48/173/39 -f 39/164/7 38/163/17 44/22/34 -f 63/189/57 55/190/58 56/186/55 -f 72/12/59 74/11/60 82/67/25 -f 72/26/59 80/80/32 79/82/35 -f 70/29/61 78/69/36 77/68/37 -f 76/18/42 73/17/62 81/72/33 -f 75/32/41 83/74/24 82/76/25 -f 69/15/63 77/78/37 81/77/33 -f 71/23/64 79/36/35 78/35/36 -f 88/173/65 90/174/66 89/191/67 -f 102/175/68 104/176/69 103/177/70 -f 90/174/66 92/178/2 91/179/71 -f 104/176/69 85/180/1 86/55/72 -f 92/178/2 94/181/73 93/182/74 -f 98/183/75 100/184/76 99/185/77 -f 94/181/73 96/186/78 95/190/79 -f 85/187/1 98/183/75 97/188/80 -f 99/185/77 100/184/76 88/173/65 -f 95/190/79 96/186/78 102/175/68 -f 106/192/81 105/193/82 129/194/83 -f 111/195/84 123/196/85 105/197/82 -f 108/198/86 110/199/87 109/200/88 -f 125/201/89 129/202/83 124/203/90 -f 109/200/88 105/193/82 106/192/81 -f 110/199/87 112/204/91 111/195/84 -f 105/197/82 123/196/85 129/205/83 -f 117/206/92 126/207/93 125/208/89 -f 112/209/91 114/210/94 113/211/95 -f 129/212/83 123/213/85 124/214/90 -f 113/211/95 115/215/96 125/201/89 -f 114/210/94 116/216/97 115/215/96 -f 129/217/83 125/208/89 126/207/93 -f 119/218/98 121/219/99 128/220/100 -f 115/215/96 116/216/97 118/221/101 -f 121/219/99 107/222/102 106/223/81 -f 128/224/100 106/223/81 129/225/83 -f 118/221/101 120/226/103 119/218/98 -f 122/227/104 120/226/103 373/228/105 -f 121/219/99 122/227/104 108/198/86 -f 119/218/98 120/226/103 122/227/104 -f 127/229/106 129/230/83 126/231/93 -f 117/206/92 119/218/98 127/229/106 -f 111/232/84 113/211/95 124/214/90 -f 127/233/106 128/220/100 129/148/83 -f 136/228/7 144/234/107 145/235/108 -f 116/216/97 114/210/94 370/236/109 -f 122/227/104 374/237/110 368/238/111 -f 116/216/97 371/239/112 372/240/113 -f 110/199/87 367/241/114 369/242/115 -f 118/221/101 372/243/113 373/244/105 -f 110/199/87 108/198/86 368/245/111 -f 112/209/91 369/246/115 370/247/109 -f 134/239/9 142/248/116 143/249/117 -f 132/246/6 140/250/118 141/251/119 -f 131/245/120 139/252/121 138/253/122 -f 137/237/123 145/254/108 139/255/121 -f 135/243/124 143/256/117 144/257/107 -f 133/236/125 141/258/119 142/259/116 -f 132/242/6 130/241/126 138/260/122 -f 158/261/127 157/262/128 165/263/129 -f 146/264/130 147/265/131 155/266/132 -f 153/267/133 161/268/134 155/269/132 -f 151/270/135 159/271/136 160/272/137 -f 150/273/138 149/274/139 157/262/128 -f 148/275/140 146/264/130 154/276/141 -f 152/277/142 160/272/137 161/268/134 -f 150/273/138 158/261/127 159/271/136 -f 149/274/139 148/275/140 156/278/143 -f 169/279/144 177/280/145 171/281/146 -f 156/278/143 154/276/141 162/282/147 -f 160/272/137 168/283/148 169/279/144 -f 158/261/127 166/284/149 167/285/150 -f 157/262/128 156/278/143 164/286/151 -f 154/276/141 155/266/132 163/287/152 -f 161/268/134 169/279/144 163/288/152 -f 159/271/136 167/285/150 168/283/148 -f 174/289/153 182/290/154 183/291/155 -f 167/285/150 175/292/156 176/293/157 -f 166/284/149 165/263/129 173/294/158 -f 164/286/151 162/282/147 170/295/159 -f 168/283/148 176/293/157 177/280/145 -f 166/284/149 174/289/153 175/292/156 -f 165/263/129 164/286/151 172/296/160 -f 162/282/147 163/287/152 171/297/146 -f 184/298/161 192/299/162 193/300/163 -f 173/294/158 172/296/160 180/301/164 -f 170/295/159 171/297/146 179/302/165 -f 177/280/145 185/303/166 179/304/165 -f 175/292/156 183/291/155 184/298/161 -f 174/289/153 173/294/158 181/305/167 -f 172/296/160 170/295/159 178/306/168 -f 176/293/157 184/298/161 185/303/166 -f 191/307/169 199/308/170 200/309/171 -f 182/290/154 190/310/172 191/307/169 -f 181/305/167 180/301/164 188/311/173 -f 178/306/168 179/302/165 187/312/174 -f 185/303/166 193/300/163 187/313/174 -f 183/291/155 191/307/169 192/299/162 -f 182/290/154 181/305/167 189/314/175 -f 180/301/164 178/306/168 186/315/176 -f 194/316/177 195/317/178 203/318/179 -f 190/310/172 189/314/175 197/319/180 -f 188/311/173 186/315/176 194/316/177 -f 192/299/162 200/309/171 201/320/181 -f 190/310/172 198/321/182 199/308/170 -f 189/314/175 188/311/173 196/322/183 -f 186/315/176 187/312/174 195/317/178 -f 193/300/163 201/320/181 195/323/178 -f 208/324/184 216/325/185 217/326/186 -f 195/323/178 201/320/181 209/327/187 -f 199/308/170 207/328/188 208/324/184 -f 197/319/180 205/329/189 206/330/190 -f 196/322/183 194/316/177 202/331/191 -f 200/309/171 208/324/184 209/327/187 -f 198/321/182 206/330/190 207/328/188 -f 197/319/180 196/322/183 204/332/192 -f 212/333/193 220/334/194 221/335/195 -f 206/330/190 214/336/196 215/337/197 -f 205/329/189 204/332/192 212/333/193 -f 202/331/191 203/318/179 211/338/198 -f 203/339/179 209/327/187 217/326/186 -f 207/328/188 215/337/197 216/325/185 -f 205/329/189 213/340/199 214/336/196 -f 204/332/192 202/331/191 210/341/200 -f 225/342/201 219/343/202 211/344/198 -f 215/337/197 223/345/203 224/346/204 -f 213/340/199 221/335/195 222/347/205 -f 218/348/206 220/334/194 212/333/193 -f 224/346/204 225/342/201 217/326/186 -f 214/336/196 222/347/205 223/345/203 -f 221/335/195 220/334/194 228/349/207 -f 233/350/208 232/351/209 240/352/210 -f 218/348/206 219/353/202 227/354/211 -f 219/343/202 225/342/201 233/350/208 -f 223/345/203 231/355/212 232/351/209 -f 221/335/195 229/356/213 230/357/214 -f 220/334/194 218/348/206 226/358/215 -f 224/346/204 232/351/209 233/350/208 -f 222/347/205 230/357/214 231/355/212 -f 219/353/202 218/348/206 210/341/200 -f 230/357/214 238/359/216 239/360/217 -f 228/349/207 236/361/218 237/362/219 -f 226/358/215 227/354/211 235/363/220 -f 227/364/211 233/350/208 241/365/221 -f 231/355/212 239/360/217 240/352/210 -f 229/356/213 237/362/219 238/359/216 -f 228/349/207 226/358/215 234/366/222 -f 246/367/223 267/368/224 266/369/225 -f 255/370/226 263/371/227 264/372/228 -f 245/373/229 247/374/230 246/367/223 -f 248/375/231 268/376/232 267/377/224 -f 247/374/230 243/378/233 260/379/234 -f 247/374/230 249/380/235 248/375/231 -f 252/381/236 270/382/237 269/383/238 -f 253/384/239 262/385/240 263/386/227 -f 249/380/235 251/387/241 250/388/242 -f 256/389/243 258/390/244 273/391/245 -f 259/392/246 265/393/247 242/394/248 -f 251/387/241 253/395/239 252/381/236 -f 269/396/238 271/397/249 267/398/224 -f 251/387/241 261/399/250 262/400/240 -f 253/384/239 255/370/226 254/401/251 -f 249/380/235 260/402/234 261/403/250 -f 264/404/228 262/405/240 242/406/248 -f 255/370/226 257/407/252 256/389/243 -f 257/407/252 264/408/228 265/409/247 -f 259/392/246 245/373/229 244/410/253 -f 257/407/252 259/392/246 258/390/244 -f 254/401/251 271/411/249 270/412/237 -f 245/373/229 242/413/248 243/414/233 -f 250/388/242 269/415/238 268/416/232 -f 256/389/243 272/417/254 271/418/249 -f 244/410/253 266/419/225 273/420/245 -f 283/421/255 282/422/256 281/423/257 -f 285/424/258 284/425/259 278/426/260 -f 286/427/261 276/428/262 275/429/263 -f 288/430/264 274/431/265 280/432/266 -f 282/422/256 289/433/267 280/432/266 -f 284/425/259 283/421/255 279/434/268 -f 285/435/258 277/436/269 276/428/262 -f 279/434/268 312/437/6 311/438/270 -f 292/439/271 293/440/272 285/435/258 -f 295/441/273 283/421/255 284/425/259 -f 296/442/274 289/433/267 282/422/256 -f 296/442/274 290/443/275 288/430/264 -f 291/444/276 292/439/271 286/427/261 -f 294/445/277 284/425/259 285/424/258 -f 297/446/278 282/422/256 283/421/255 -f 287/447/279 275/429/263 274/431/265 -f 298/448/280 299/449/281 291/444/276 -f 304/450/282 297/446/278 295/441/273 -f 302/451/283 294/445/277 293/452/272 -f 299/449/281 300/453/284 292/439/271 -f 305/454/285 298/448/280 290/443/275 -f 305/454/285 296/442/274 297/446/278 -f 303/455/286 295/441/273 294/445/277 -f 300/453/284 301/456/287 293/440/272 -f 290/443/275 291/444/276 287/447/279 -f 277/436/269 310/457/288 309/458/289 -f 275/429/263 308/459/7 307/460/290 -f 281/423/257 313/461/291 312/437/6 -f 278/426/260 311/438/270 310/462/288 -f 276/428/262 309/458/289 308/459/7 -f 280/432/266 274/431/265 307/460/290 -f 280/432/266 306/463/292 313/461/291 -f 1/139/21 2/124/8 3/126/12 -f 3/126/12 4/125/11 5/128/13 -f 5/128/13 6/127/6 7/130/15 -f 7/130/15 8/129/14 9/132/16 -f 9/464/16 10/133/4 11/135/18 -f 11/135/18 12/134/17 13/137/19 -f 15/140/22 16/138/20 1/139/21 -f 13/137/19 14/136/7 15/140/22 -f 351/154/23 352/141/10 359/143/23 -f 24/155/22 23/144/19 358/146/20 -f 22/156/18 21/147/16 356/149/17 -f 20/157/15 19/150/13 354/152/14 -f 18/159/12 17/153/21 25/154/11 -f 17/153/21 24/155/22 26/141/8 -f 23/144/19 22/156/18 357/145/7 -f 21/465/16 20/157/15 355/158/4 -f 19/150/13 18/159/12 353/151/6 -f 366/168/20 39/160/7 68/109/25 -f 352/141/10 32/146/26 360/162/10 -f 31/145/28 30/149/27 365/164/28 -f 29/158/30 28/152/29 363/166/30 -f 361/466/31 27/151/31 359/167/23 -f 32/146/26 31/145/28 40/168/26 -f 30/149/27 29/148/30 364/170/27 -f 362/467/29 28/152/29 361/171/31 -f 34/162/8 366/161/20 45/13/32 -f 38/170/17 37/169/4 44/108/34 -f 33/143/11 34/142/8 57/99/35 -f 36/467/14 35/171/6 58/110/37 -f 49/191/293 47/172/38 50/174/40 -f 83/83/24 75/9/41 84/84/34 -f 63/189/57 64/175/43 65/177/45 -f 49/191/293 50/174/40 51/179/47 -f 35/466/6 33/167/11 43/96/36 -f 65/177/45 66/176/44 42/55/49 -f 51/179/47 52/178/46 53/182/51 -f 37/166/4 36/165/14 46/97/33 -f 59/188/56 60/183/52 61/185/54 -f 55/190/58 53/182/51 56/186/55 -f 42/468/49 41/187/48 59/188/56 -f 47/172/38 61/185/54 48/173/39 -f 67/107/24 39/164/7 44/22/34 -f 64/175/43 63/189/57 56/186/55 -f 80/66/32 72/12/59 82/67/25 -f 71/27/64 72/26/59 79/82/35 -f 69/30/63 70/29/61 77/68/37 -f 84/71/34 76/18/42 81/72/33 -f 74/33/60 75/32/41 82/76/25 -f 73/98/62 69/15/63 81/77/33 -f 70/24/61 71/23/64 78/35/36 -f 87/172/294 88/173/65 89/191/67 -f 101/189/295 102/175/68 103/177/70 -f 89/191/67 90/174/66 91/179/71 -f 103/177/70 104/176/69 86/55/72 -f 91/179/71 92/178/2 93/182/74 -f 97/188/80 98/183/75 99/185/77 -f 93/182/74 94/181/73 95/190/79 -f 86/468/72 85/187/1 97/188/80 -f 87/172/294 99/185/77 88/173/65 -f 101/189/295 95/190/79 102/175/68 -f 109/200/88 111/195/84 105/197/82 -f 107/222/102 108/198/86 109/200/88 -f 107/222/102 109/200/88 106/192/81 -f 109/200/88 110/199/87 111/195/84 -f 115/215/96 117/206/92 125/208/89 -f 111/232/84 112/209/91 113/211/95 -f 124/203/90 113/211/95 125/201/89 -f 113/211/95 114/210/94 115/215/96 -f 127/233/106 119/218/98 128/220/100 -f 117/206/92 115/215/96 118/221/101 -f 128/224/100 121/219/99 106/223/81 -f 117/206/92 118/221/101 119/218/98 -f 374/469/110 122/227/104 373/228/105 -f 107/222/102 121/219/99 108/198/86 -f 121/219/99 119/218/98 122/227/104 -f 126/231/93 117/206/92 127/229/106 -f 123/213/85 111/232/84 124/214/90 -f 137/469/123 136/228/7 145/235/108 -f 371/470/112 116/216/97 370/236/109 -f 108/198/86 122/227/104 368/238/111 -f 118/221/101 116/216/97 372/240/113 -f 112/204/91 110/199/87 369/242/115 -f 120/226/103 118/221/101 373/244/105 -f 367/471/114 110/199/87 368/245/111 -f 114/210/94 112/209/91 370/247/109 -f 135/240/124 134/239/9 143/249/117 -f 133/247/125 132/246/6 141/251/119 -f 130/471/126 131/245/120 138/253/122 -f 131/238/120 137/237/123 139/255/121 -f 136/244/7 135/243/124 144/257/107 -f 134/470/9 133/236/125 142/259/116 -f 140/472/118 132/242/6 138/260/122 -f 166/284/149 158/261/127 165/263/129 -f 154/276/141 146/264/130 155/266/132 -f 147/473/131 153/267/133 155/269/132 -f 152/277/142 151/270/135 160/272/137 -f 158/261/127 150/273/138 157/262/128 -f 156/278/143 148/275/140 154/276/141 -f 153/267/133 152/277/142 161/268/134 -f 151/270/135 150/273/138 159/271/136 -f 157/262/128 149/274/139 156/278/143 -f 163/288/152 169/279/144 171/281/146 -f 164/286/151 156/278/143 162/282/147 -f 161/268/134 160/272/137 169/279/144 -f 159/271/136 158/261/127 167/285/150 -f 165/263/129 157/262/128 164/286/151 -f 162/282/147 154/276/141 163/287/152 -f 155/269/132 161/268/134 163/288/152 -f 160/272/137 159/271/136 168/283/148 -f 175/292/156 174/289/153 183/291/155 -f 168/283/148 167/285/150 176/293/157 -f 174/289/153 166/284/149 173/294/158 -f 172/296/160 164/286/151 170/295/159 -f 169/279/144 168/283/148 177/280/145 -f 167/285/150 166/284/149 175/292/156 -f 173/294/158 165/263/129 172/296/160 -f 170/295/159 162/282/147 171/297/146 -f 185/303/166 184/298/161 193/300/163 -f 181/305/167 173/294/158 180/301/164 -f 178/306/168 170/295/159 179/302/165 -f 171/281/146 177/280/145 179/304/165 -f 176/293/157 175/292/156 184/298/161 -f 182/290/154 174/289/153 181/305/167 -f 180/301/164 172/296/160 178/306/168 -f 177/280/145 176/293/157 185/303/166 -f 192/299/162 191/307/169 200/309/171 -f 183/291/155 182/290/154 191/307/169 -f 189/314/175 181/305/167 188/311/173 -f 186/315/176 178/306/168 187/312/174 -f 179/304/165 185/303/166 187/313/174 -f 184/298/161 183/291/155 192/299/162 -f 190/310/172 182/290/154 189/314/175 -f 188/311/173 180/301/164 186/315/176 -f 202/331/191 194/316/177 203/318/179 -f 198/321/182 190/310/172 197/319/180 -f 196/322/183 188/311/173 194/316/177 -f 193/300/163 192/299/162 201/320/181 -f 191/307/169 190/310/172 199/308/170 -f 197/319/180 189/314/175 196/322/183 -f 194/316/177 186/315/176 195/317/178 -f 187/313/174 193/300/163 195/323/178 -f 209/327/187 208/324/184 217/326/186 -f 203/339/179 195/323/178 209/327/187 -f 200/309/171 199/308/170 208/324/184 -f 198/321/182 197/319/180 206/330/190 -f 204/332/192 196/322/183 202/331/191 -f 201/320/181 200/309/171 209/327/187 -f 199/308/170 198/321/182 207/328/188 -f 205/329/189 197/319/180 204/332/192 -f 213/340/199 212/333/193 221/335/195 -f 207/328/188 206/330/190 215/337/197 -f 213/340/199 205/329/189 212/333/193 -f 210/341/200 202/331/191 211/338/198 -f 211/344/198 203/339/179 217/326/186 -f 208/324/184 207/328/188 216/325/185 -f 206/330/190 205/329/189 214/336/196 -f 212/333/193 204/332/192 210/341/200 -f 217/326/186 225/342/201 211/344/198 -f 216/325/185 215/337/197 224/346/204 -f 214/336/196 213/340/199 222/347/205 -f 210/341/200 218/348/206 212/333/193 -f 216/325/185 224/346/204 217/326/186 -f 215/337/197 214/336/196 223/345/203 -f 229/356/213 221/335/195 228/349/207 -f 241/365/221 233/350/208 240/352/210 -f 226/358/215 218/348/206 227/354/211 -f 227/364/211 219/343/202 233/350/208 -f 224/346/204 223/345/203 232/351/209 -f 222/347/205 221/335/195 230/357/214 -f 228/349/207 220/334/194 226/358/215 -f 225/342/201 224/346/204 233/350/208 -f 223/345/203 222/347/205 231/355/212 -f 211/338/198 219/353/202 210/341/200 -f 231/355/212 230/357/214 239/360/217 -f 229/356/213 228/349/207 237/362/219 -f 234/366/222 226/358/215 235/363/220 -f 235/474/220 227/364/211 241/365/221 -f 232/351/209 231/355/212 240/352/210 -f 230/357/214 229/356/213 238/359/216 -f 236/361/218 228/349/207 234/366/222 -f 244/410/253 246/367/223 266/369/225 -f 257/407/252 255/370/226 264/372/228 -f 244/410/253 245/373/229 246/367/223 -f 246/367/223 248/375/231 267/377/224 -f 249/380/235 247/374/230 260/379/234 -f 246/367/223 247/374/230 248/375/231 -f 250/388/242 252/381/236 269/383/238 -f 255/370/226 253/384/239 263/386/227 -f 248/375/231 249/380/235 250/388/242 -f 272/475/254 256/389/243 273/391/245 -f 245/373/229 259/392/246 242/394/248 -f 250/388/242 251/387/241 252/381/236 -f 273/476/245 266/405/225 267/398/224 -f 267/398/224 268/477/232 269/396/238 -f 269/396/238 270/406/237 271/397/249 -f 271/397/249 272/404/254 273/476/245 -f 273/476/245 267/398/224 271/397/249 -f 253/395/239 251/387/241 262/400/240 -f 252/478/236 253/384/239 254/401/251 -f 251/387/241 249/380/235 261/403/250 -f 260/477/234 243/396/233 242/406/248 -f 242/406/248 265/397/247 264/404/228 -f 264/404/228 263/476/227 262/405/240 -f 262/405/240 261/398/250 260/477/234 -f 260/477/234 242/406/248 262/405/240 -f 254/401/251 255/370/226 256/389/243 -f 259/392/246 257/407/252 265/409/247 -f 258/390/244 259/392/246 244/410/253 -f 256/389/243 257/407/252 258/390/244 -f 252/478/236 254/401/251 270/412/237 -f 247/374/230 245/373/229 243/414/233 -f 248/375/231 250/388/242 268/416/232 -f 254/401/251 256/389/243 271/418/249 -f 258/390/244 244/410/253 273/420/245 -f 279/434/268 283/421/255 281/423/257 -f 277/479/269 285/424/258 278/426/260 -f 287/447/279 286/427/261 275/429/263 -f 289/433/267 288/430/264 280/432/266 -f 281/423/257 282/422/256 280/432/266 -f 278/426/260 284/425/259 279/434/268 -f 286/427/261 285/435/258 276/428/262 -f 278/426/260 279/434/268 311/438/270 -f 286/427/261 292/439/271 285/435/258 -f 294/445/277 295/441/273 284/425/259 -f 297/446/278 296/442/274 282/422/256 -f 289/433/267 296/442/274 288/430/264 -f 287/447/279 291/444/276 286/427/261 -f 293/452/272 294/445/277 285/424/258 -f 295/441/273 297/446/278 283/421/255 -f 288/430/264 287/447/279 274/431/265 -f 290/443/275 298/448/280 291/444/276 -f 303/455/286 304/450/282 295/441/273 -f 301/480/287 302/451/283 293/452/272 -f 291/444/276 299/449/281 292/439/271 -f 296/442/274 305/454/285 290/443/275 -f 304/450/282 305/454/285 297/446/278 -f 302/451/283 303/455/286 294/445/277 -f 292/439/271 300/453/284 293/440/272 -f 288/430/264 290/443/275 287/447/279 -f 276/428/262 277/436/269 309/458/289 -f 274/431/265 275/429/263 307/460/290 -f 279/434/268 281/423/257 312/437/6 -f 277/479/269 278/426/260 310/462/288 -f 275/429/263 276/428/262 308/459/7 -f 306/463/292 280/432/266 307/460/290 -f 281/423/257 280/432/266 313/461/291 diff --git a/src/main/resources/assets/hbm/models/weapons/flamethrower.obj b/src/main/resources/assets/hbm/models/weapons/flamethrower.obj new file mode 100644 index 000000000..c1db95f4f --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/flamethrower.obj @@ -0,0 +1,4058 @@ +# Blender v2.79 (sub 0) OBJ File: 'flamethrower.blend' +# www.blender.org +o Tank +v 0.000000 -1.125000 -0.500000 +v 0.437500 -1.242228 -0.500000 +v 0.000000 -1.000000 -6.000000 +v 0.000000 -1.000000 -1.000000 +v 0.500000 -1.133975 -6.000000 +v 0.500000 -1.133975 -1.000000 +v 0.866025 -1.500000 -6.000000 +v 0.866025 -1.500000 -1.000000 +v 1.000000 -2.000000 -6.000000 +v 1.000000 -2.000000 -1.000000 +v 0.866025 -2.500000 -6.000000 +v 0.866025 -2.500000 -1.000000 +v 0.500000 -2.866025 -6.000000 +v 0.500000 -2.866025 -1.000000 +v 0.000000 -3.000000 -6.000000 +v 0.000000 -3.000000 -1.000000 +v -0.500000 -2.866025 -6.000000 +v -0.500000 -2.866026 -1.000000 +v -0.866025 -2.500000 -6.000000 +v -0.866025 -2.500000 -1.000000 +v -1.000000 -2.000000 -6.000000 +v -1.000000 -2.000000 -1.000000 +v -0.866026 -1.500000 -6.000000 +v -0.866026 -1.500001 -1.000000 +v -0.500000 -1.133975 -6.000000 +v -0.500000 -1.133975 -1.000000 +v 0.757772 -1.562500 -0.500000 +v 0.875000 -2.000000 -0.500000 +v 0.757772 -2.437500 -0.500000 +v 0.437500 -2.757772 -0.500000 +v 0.000000 -2.875000 -0.500000 +v -0.437500 -2.757772 -0.500000 +v -0.757772 -2.437500 -0.500000 +v -0.875000 -2.000000 -0.500000 +v -0.757772 -1.562500 -0.500000 +v -0.437500 -1.242228 -0.500000 +v 0.000000 -1.500000 -0.250000 +v 0.250000 -1.566987 -0.250000 +v 0.433013 -1.750000 -0.250000 +v 0.500000 -2.000000 -0.250000 +v 0.433012 -2.250000 -0.250000 +v 0.250000 -2.433013 -0.250000 +v 0.000000 -2.500000 -0.250000 +v -0.250000 -2.433013 -0.250000 +v -0.433012 -2.250000 -0.250000 +v -0.500000 -2.000000 -0.250000 +v -0.433013 -1.750000 -0.250000 +v -0.250000 -1.566988 -0.250000 +v 0.000000 -1.125000 -6.500000 +v 0.437500 -1.242228 -6.500000 +v 0.757772 -1.562500 -6.500000 +v 0.875000 -2.000000 -6.500000 +v 0.757772 -2.437500 -6.500000 +v 0.437500 -2.757772 -6.500000 +v 0.000000 -2.875000 -6.500000 +v -0.437500 -2.757772 -6.500000 +v -0.757772 -2.437500 -6.500000 +v -0.875000 -2.000000 -6.500000 +v -0.757772 -1.562500 -6.500000 +v -0.437500 -1.242228 -6.500000 +v 0.000000 -1.500000 -6.750000 +v 0.250000 -1.566987 -6.750000 +v 0.433013 -1.750000 -6.750000 +v 0.500000 -2.000000 -6.750000 +v 0.433012 -2.250000 -6.750000 +v 0.250000 -2.433013 -6.750000 +v 0.000000 -2.500000 -6.750000 +v -0.250000 -2.433013 -6.750000 +v -0.433012 -2.250000 -6.750000 +v -0.500000 -2.000000 -6.750000 +v -0.433013 -1.750000 -6.750000 +v -0.250000 -1.566988 -6.750000 +vt 0.346821 0.604839 +vt 0.369942 0.580645 +vt 0.369942 0.612903 +vt 0.390173 0.741935 +vt 0.369942 0.709677 +vt 0.390173 0.709677 +vt 0.624277 0.709677 +vt 0.624277 0.741935 +vt 0.369942 0.645161 +vt 0.346821 0.620968 +vt 0.390173 0.774194 +vt 0.369942 0.806452 +vt 0.369942 0.774194 +vt 0.624277 0.677419 +vt 0.369942 0.935484 +vt 0.346821 0.911290 +vt 0.369942 0.903226 +vt 0.369942 0.741935 +vt 0.390173 0.677419 +vt 0.624277 0.645161 +vt 0.346821 0.895161 +vt 0.369942 0.870968 +vt 0.369942 0.677419 +vt 0.390173 0.645161 +vt 0.624277 0.612903 +vt 0.346821 0.862903 +vt 0.369942 0.838710 +vt 0.390173 0.612903 +vt 0.624277 0.580645 +vt 0.346821 0.814516 +vt 0.390173 0.580645 +vt 0.369942 0.548387 +vt 0.390173 0.548387 +vt 0.624277 0.548387 +vt 0.346821 0.782258 +vt 0.390173 0.903226 +vt 0.390173 0.870968 +vt 0.390173 0.935484 +vt 0.624277 0.903226 +vt 0.624277 0.935484 +vt 0.346821 0.750000 +vt 0.390173 0.838710 +vt 0.390173 0.806452 +vt 0.624277 0.870968 +vt 0.346821 0.733871 +vt 0.624277 0.838710 +vt 0.346821 0.685484 +vt 0.624277 0.806452 +vt 0.346821 0.669355 +vt 0.624277 0.774194 +vt 0.346821 0.572581 +vt 0.647399 0.612903 +vt 0.647399 0.645161 +vt 0.343702 0.564533 +vt 0.343702 0.596757 +vt 0.303697 0.596757 +vt 0.670520 0.669355 +vt 0.647399 0.677419 +vt 0.647399 0.709677 +vt 0.647399 0.741935 +vt 0.647399 0.774194 +vt 0.647399 0.806452 +vt 0.647399 0.838710 +vt 0.647399 0.870968 +vt 0.647399 0.935484 +vt 0.647399 0.903226 +vt 0.647399 0.580645 +vt 0.303697 0.790340 +vt 0.343702 0.790340 +vt 0.323699 0.838676 +vt 0.670520 0.685484 +vt 0.670520 0.701613 +vt 0.670520 0.733871 +vt 0.670520 0.750000 +vt 0.670520 0.766129 +vt 0.670520 0.798387 +vt 0.670520 0.830645 +vt 0.670520 0.846774 +vt 0.670520 0.862903 +vt 0.670520 0.895161 +vt 0.670520 0.911290 +vt 0.670520 0.927419 +vt 0.670520 0.556452 +vt 0.670520 0.572581 +vt 0.670520 0.604839 +vt 0.670520 0.637097 +vt 0.346821 0.588710 +vt 0.346821 0.637097 +vt 0.346821 0.927419 +vt 0.346821 0.879032 +vt 0.346821 0.846774 +vt 0.346821 0.830645 +vt 0.346821 0.798387 +vt 0.346821 0.766129 +vt 0.346821 0.717742 +vt 0.346821 0.701613 +vt 0.346821 0.653226 +vt 0.346821 0.556452 +vt 0.335248 0.608552 +vt 0.323699 0.612869 +vt 0.312151 0.608552 +vt 0.300602 0.580645 +vt 0.303697 0.564533 +vt 0.312151 0.552738 +vt 0.323699 0.548421 +vt 0.335248 0.552738 +vt 0.346796 0.580645 +vt 0.670520 0.653226 +vt 0.647399 0.548387 +vt 0.312151 0.834358 +vt 0.303697 0.822564 +vt 0.300602 0.806452 +vt 0.312151 0.778545 +vt 0.323699 0.774227 +vt 0.335248 0.778545 +vt 0.346796 0.806452 +vt 0.343702 0.822564 +vt 0.335248 0.834358 +vt 0.670520 0.717742 +vt 0.670520 0.782258 +vt 0.670520 0.814516 +vt 0.670520 0.879032 +vt 0.670520 0.588710 +vt 0.670520 0.620968 +vn 0.2881 -0.1664 0.9430 +vn 0.4177 -0.7235 0.5496 +vn 0.7235 -0.4177 0.5496 +vn -0.0000 0.9928 0.1198 +vn 0.4177 0.7235 0.5496 +vn 0.4964 0.8598 0.1198 +vn 0.4964 0.8598 -0.1198 +vn -0.0000 0.9928 -0.1198 +vn 0.8354 -0.0000 0.5496 +vn -0.4964 0.8598 0.1198 +vn -0.7235 0.4177 0.5496 +vn -0.4177 0.7235 0.5496 +vn 0.8598 0.4964 -0.1198 +vn 0.0000 -0.8354 0.5496 +vn -0.1664 -0.2881 0.9430 +vn -0.4177 -0.7235 0.5496 +vn -0.0000 0.8354 0.5496 +vn 0.8598 0.4964 0.1198 +vn 0.9928 0.0000 -0.1198 +vn -0.7235 -0.4177 0.5496 +vn 0.7235 0.4177 0.5496 +vn 0.9928 -0.0000 0.1198 +vn 0.8598 -0.4964 -0.1198 +vn -0.2881 -0.1664 0.9430 +vn -0.8354 -0.0000 0.5496 +vn 0.8598 -0.4964 0.1198 +vn 0.4964 -0.8598 -0.1198 +vn -0.2881 0.1664 0.9430 +vn 0.4964 -0.8598 0.1198 +vn 0.0000 -0.9928 0.1198 +vn 0.0000 -0.9928 -0.1198 +vn -0.1664 0.2881 0.9430 +vn -0.4964 -0.8598 0.1198 +vn -0.8598 -0.4964 0.1198 +vn -0.4964 -0.8598 -0.1198 +vn -0.0000 0.3327 0.9430 +vn -0.9928 -0.0000 0.1198 +vn -0.8598 0.4964 0.1198 +vn -0.8598 -0.4964 -0.1198 +vn -0.9928 -0.0000 -0.1198 +vn 0.2881 0.1664 0.9430 +vn -0.8598 0.4964 -0.1198 +vn -0.4964 0.8598 -0.1198 +vn 0.1664 -0.2881 0.9430 +vn 0.7235 -0.4177 -0.5496 +vn 0.8354 0.0000 -0.5496 +vn 0.2881 0.1664 -0.9430 +vn 0.7235 0.4177 -0.5496 +vn 0.4177 0.7235 -0.5496 +vn -0.0000 0.8354 -0.5496 +vn -0.4177 0.7235 -0.5496 +vn -0.7235 0.4177 -0.5496 +vn -0.8354 -0.0000 -0.5496 +vn -0.7235 -0.4177 -0.5496 +vn 0.0000 -0.8354 -0.5496 +vn -0.4177 -0.7235 -0.5496 +vn 0.4177 -0.7235 -0.5496 +vn 0.2881 -0.1664 -0.9430 +vn -0.2881 -0.1664 -0.9430 +vn 0.0000 0.3327 -0.9430 +vn 0.1664 0.2881 -0.9430 +vn -0.1664 0.2881 -0.9430 +vn -0.2881 0.1664 -0.9430 +vn -0.3327 -0.0000 -0.9430 +vn -0.1664 -0.2881 -0.9430 +vn -0.0000 -0.3327 -0.9430 +vn 0.1664 -0.2881 -0.9430 +vn 0.3327 -0.0000 -0.9430 +vn 0.3327 -0.0000 0.9430 +vn 0.0000 -0.3327 0.9430 +vn -0.3327 -0.0000 0.9430 +vn 0.1664 0.2881 0.9430 +s 1 +f 41/1/1 30/2/2 29/3/3 +f 4/4/4 2/5/5 6/6/6 +f 4/4/4 5/7/7 3/8/8 +f 28/9/9 41/10/1 29/3/3 +f 26/11/10 35/12/11 36/13/12 +f 6/6/6 7/14/13 5/7/7 +f 31/15/14 44/16/15 32/17/16 +f 26/11/10 1/18/17 4/4/4 +f 8/19/18 9/20/19 7/14/13 +f 44/21/15 33/22/20 32/17/16 +f 6/6/6 27/23/21 8/19/18 +f 10/24/22 11/25/23 9/20/19 +f 45/26/24 34/27/25 33/22/20 +f 10/24/22 29/3/3 12/28/26 +f 12/28/26 13/29/27 11/25/23 +f 34/27/25 47/30/28 35/12/11 +f 14/31/29 31/32/14 16/33/30 +f 14/31/29 15/34/31 13/29/27 +f 35/12/11 48/35/32 36/13/12 +f 18/36/33 33/22/20 20/37/34 +f 16/38/30 17/39/35 15/40/31 +f 36/13/12 37/41/36 1/18/17 +f 22/42/37 35/12/11 24/43/38 +f 18/36/33 19/44/39 17/39/35 +f 37/45/36 2/5/5 1/18/17 +f 8/19/18 28/9/9 10/24/22 +f 20/37/34 21/46/40 19/44/39 +f 2/5/5 39/47/41 27/23/21 +f 14/31/29 29/3/3 30/2/2 +f 22/42/37 23/48/42 21/46/40 +f 16/38/30 32/17/16 18/36/33 +f 39/49/41 28/9/9 27/23/21 +f 24/43/38 25/50/43 23/48/42 +f 42/51/44 31/32/14 30/2/2 +f 20/37/34 34/27/25 22/42/37 +f 26/11/10 3/8/8 25/50/43 +f 9/20/19 53/52/45 52/53/46 +f 41/54/1 39/55/41 47/56/28 +f 52/53/46 63/57/47 51/58/48 +f 3/8/8 50/59/49 49/60/50 +f 7/14/13 50/59/49 5/7/7 +f 23/48/42 60/61/51 59/62/52 +f 19/44/39 58/63/53 57/64/54 +f 17/39/35 55/65/55 15/40/31 +f 3/8/8 60/61/51 25/50/43 +f 13/29/27 53/52/45 11/25/23 +f 9/20/19 51/58/48 7/14/13 +f 21/46/40 59/62/52 58/63/53 +f 19/44/39 56/66/56 17/39/35 +f 15/34/31 54/67/57 13/29/27 +f 65/68/58 69/69/59 61/70/60 +f 50/59/49 63/71/47 62/72/61 +f 50/59/49 61/73/60 49/60/50 +f 60/61/51 61/74/60 72/75/62 +f 60/61/51 71/76/63 59/62/52 +f 59/62/52 70/77/64 58/63/53 +f 57/64/54 70/78/64 69/79/59 +f 57/64/54 68/80/65 56/66/56 +f 55/65/55 68/81/65 67/82/66 +f 54/67/57 67/83/66 66/84/67 +f 54/67/57 65/85/58 53/52/45 +f 53/52/45 64/86/68 52/53/46 +f 41/1/1 42/87/44 30/2/2 +f 4/4/4 1/18/17 2/5/5 +f 4/4/4 6/6/6 5/7/7 +f 28/9/9 40/88/69 41/10/1 +f 26/11/10 24/43/38 35/12/11 +f 6/6/6 8/19/18 7/14/13 +f 31/15/14 43/89/70 44/16/15 +f 26/11/10 36/13/12 1/18/17 +f 8/19/18 10/24/22 9/20/19 +f 44/21/15 45/90/24 33/22/20 +f 6/6/6 2/5/5 27/23/21 +f 10/24/22 12/28/26 11/25/23 +f 45/26/24 46/91/71 34/27/25 +f 10/24/22 28/9/9 29/3/3 +f 12/28/26 14/31/29 13/29/27 +f 34/27/25 46/92/71 47/30/28 +f 14/31/29 30/2/2 31/32/14 +f 14/31/29 16/33/30 15/34/31 +f 35/12/11 47/93/28 48/35/32 +f 18/36/33 32/17/16 33/22/20 +f 16/38/30 18/36/33 17/39/35 +f 36/13/12 48/94/32 37/41/36 +f 22/42/37 34/27/25 35/12/11 +f 18/36/33 20/37/34 19/44/39 +f 37/45/36 38/95/72 2/5/5 +f 8/19/18 27/23/21 28/9/9 +f 20/37/34 22/42/37 21/46/40 +f 2/5/5 38/96/72 39/47/41 +f 14/31/29 12/28/26 29/3/3 +f 22/42/37 24/43/38 23/48/42 +f 16/38/30 31/15/14 32/17/16 +f 39/49/41 40/97/69 28/9/9 +f 24/43/38 26/11/10 25/50/43 +f 42/51/44 43/98/70 31/32/14 +f 20/37/34 33/22/20 34/27/25 +f 26/11/10 4/4/4 3/8/8 +f 9/20/19 11/25/23 53/52/45 +f 39/55/41 38/99/72 47/56/28 +f 38/99/72 37/100/36 47/56/28 +f 37/100/36 48/101/32 47/56/28 +f 47/56/28 46/102/71 45/103/24 +f 45/103/24 44/104/15 43/105/70 +f 43/105/70 42/106/44 41/54/1 +f 41/54/1 40/107/69 39/55/41 +f 47/56/28 45/103/24 43/105/70 +f 43/105/70 41/54/1 47/56/28 +f 52/53/46 64/108/68 63/57/47 +f 3/8/8 5/7/7 50/59/49 +f 7/14/13 51/58/48 50/59/49 +f 23/48/42 25/50/43 60/61/51 +f 19/44/39 21/46/40 58/63/53 +f 17/39/35 56/66/56 55/65/55 +f 3/8/8 49/60/50 60/61/51 +f 13/29/27 54/67/57 53/52/45 +f 9/20/19 52/53/46 51/58/48 +f 21/46/40 23/48/42 59/62/52 +f 19/44/39 57/64/54 56/66/56 +f 15/34/31 55/109/55 54/67/57 +f 61/70/60 62/110/61 65/68/58 +f 62/110/61 63/111/47 65/68/58 +f 63/111/47 64/112/68 65/68/58 +f 65/68/58 66/113/67 67/114/66 +f 67/114/66 68/115/65 69/69/59 +f 69/69/59 70/116/64 71/117/63 +f 71/117/63 72/118/62 69/69/59 +f 72/118/62 61/70/60 69/69/59 +f 65/68/58 67/114/66 69/69/59 +f 50/59/49 51/58/48 63/71/47 +f 50/59/49 62/119/61 61/73/60 +f 60/61/51 49/60/50 61/74/60 +f 60/61/51 72/120/62 71/76/63 +f 59/62/52 71/121/63 70/77/64 +f 57/64/54 58/63/53 70/78/64 +f 57/64/54 69/122/59 68/80/65 +f 55/65/55 56/66/56 68/81/65 +f 54/67/57 55/109/55 67/83/66 +f 54/67/57 66/123/67 65/85/58 +f 53/52/45 65/124/58 64/86/68 +o Gauge +v 1.312500 1.125000 -4.187500 +v 1.187500 1.125000 -4.187500 +v 1.250000 1.500000 -4.250000 +v 1.187500 1.125000 -4.250000 +v 1.250000 1.500000 -4.187500 +v 1.312500 1.125000 -4.250000 +vt 0.959538 0.056452 +vt 0.962428 0.080645 +vt 0.959538 0.080645 +vt 0.979769 0.084677 +vt 0.962428 0.088710 +vt 0.959538 0.088710 +vt 0.962428 0.112903 +vt 0.959538 0.112903 +vt 0.962428 0.056452 +vn -0.9864 0.1644 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.9864 0.1644 0.0000 +s off +f 77/125/73 76/126/73 74/127/73 +f 76/126/74 75/128/74 78/129/74 +f 74/127/75 78/129/75 73/130/75 +f 73/130/76 75/131/76 77/132/76 +f 77/125/73 75/133/73 76/126/73 +f 74/127/75 76/126/75 78/129/75 +f 73/130/76 78/129/76 75/131/76 +o HeatShield +v 0.500000 -1.000000 2.500000 +v 3.000000 -1.000000 2.500000 +v 0.500000 2.500000 2.500000 +v 3.000000 1.990000 2.500000 +v 0.500000 2.500000 2.250000 +v 0.500000 -1.000000 2.250000 +v 3.000000 -1.000000 2.250000 +v 3.000000 1.990000 2.250000 +v 1.500000 2.500000 2.500000 +v 1.500000 2.500000 2.250000 +v -3.000000 -1.000000 2.500000 +v -0.500000 -1.000000 2.500000 +v -3.000000 2.000000 2.500000 +v -0.500000 2.500000 2.500000 +v -3.000000 2.000000 2.250000 +v -3.000000 -1.000000 2.250000 +v -0.500000 -1.000000 2.250000 +v -0.500000 2.500000 2.250000 +v -1.500000 2.500000 2.500000 +v -1.500000 2.500000 2.250000 +v -0.500000 0.625000 2.437500 +v 0.500000 0.625000 2.437500 +v -0.500000 0.625000 2.312500 +v 0.500000 0.625000 2.312500 +v -0.500000 0.750000 2.312500 +v -0.500000 0.750000 2.437500 +v 0.500000 0.750000 2.437500 +v 0.500000 0.750000 2.312500 +v -0.500000 1.125000 2.437500 +v 0.500000 1.125000 2.437500 +v -0.500000 1.125000 2.312500 +v 0.500000 1.125000 2.312500 +v -0.500000 1.250000 2.312500 +v -0.500000 1.250000 2.437500 +v 0.500000 1.250000 2.437500 +v 0.500000 1.250000 2.312500 +v -0.500000 2.125000 2.437500 +v 0.500000 2.125000 2.437500 +v -0.500000 2.125000 2.312500 +v 0.500000 2.125000 2.312500 +v -0.500000 2.250000 2.312500 +v -0.500000 2.250000 2.437500 +v 0.500000 2.250000 2.437500 +v 0.500000 2.250000 2.312500 +v 2.000000 -3.000000 2.500000 +v 2.000000 -3.000000 2.250000 +v -2.000000 -3.000000 2.250000 +v -2.000000 -3.000000 2.500000 +v -2.937500 1.812500 2.250000 +v -2.812500 1.812500 2.250000 +v -2.937500 1.937500 2.250000 +v -2.812500 1.937500 2.250000 +v -0.687500 0.562500 -4.500000 +v -0.562500 0.562500 -4.500000 +v -0.687500 0.687500 -4.500000 +v -0.562500 0.687500 -4.500000 +v -1.137500 0.437500 -3.150000 +v -1.587500 0.437500 -1.800000 +v -2.037500 0.687500 -0.450000 +v -2.487500 1.187500 0.900000 +v -2.362500 1.187500 0.900000 +v -1.912500 0.687500 -0.450000 +v -1.462500 0.437500 -1.800000 +v -1.012500 0.437500 -3.150000 +v -1.012500 0.312500 -3.150000 +v -1.462500 0.312500 -1.800000 +v -1.912500 0.562500 -0.450000 +v -2.362500 1.062500 0.900000 +v -2.487500 1.062500 0.900000 +v -2.037500 0.562500 -0.450000 +v -1.587500 0.312500 -1.800000 +v -1.137500 0.312500 -3.150000 +vt 0.566474 0.370968 +vt 0.520231 0.145161 +vt 0.635838 0.338710 +vt 0.647399 0.338710 +vt 0.763006 0.145161 +vt 0.716763 0.370968 +vt 0.635838 0.145161 +vt 0.520231 0.370968 +vt 0.508671 0.145161 +vt 0.635838 0.370968 +vt 0.566474 0.387097 +vt 0.346821 0.145161 +vt 0.358382 0.016129 +vt 0.358382 0.145161 +vt 0.520231 0.387097 +vt 0.473988 0.145161 +vt 0.427746 0.370968 +vt 0.358382 0.338710 +vt 0.855491 0.370968 +vt 0.809249 0.370968 +vt 0.809249 0.145161 +vt 0.485549 0.370968 +vt 0.473988 0.370968 +vt 0.427746 0.387097 +vt 0.404624 0.016129 +vt 0.358382 0.387097 +vt 0.358382 0.370968 +vt 0.930636 0.653226 +vt 0.976879 0.661290 +vt 0.930636 0.661290 +vt 0.976879 0.669355 +vt 0.930636 0.677419 +vt 0.930636 0.669355 +vt 0.930636 0.685484 +vt 0.976879 0.677419 +vt 0.976879 0.685484 +vt 0.976879 0.669355 +vt 0.930636 0.677419 +vt 0.930636 0.669355 +vt 0.930636 0.653226 +vt 0.976879 0.661290 +vt 0.930636 0.661290 +vt 0.930636 0.685484 +vt 0.976879 0.677419 +vt 0.976879 0.685484 +vt 0.976879 0.669355 +vt 0.930636 0.677419 +vt 0.930636 0.669355 +vt 0.930636 0.653226 +vt 0.976879 0.661290 +vt 0.930636 0.661290 +vt 0.930636 0.685484 +vt 0.976879 0.677419 +vt 0.976879 0.685484 +vt 0.589595 -0.000000 +vt 0.589595 0.016129 +vt 0.647399 0.016129 +vt 0.647399 0.145161 +vt 0.693642 0.016129 +vt 0.763006 0.370968 +vt 0.508671 0.370968 +vt 0.635838 0.387097 +vt 0.346821 0.016129 +vt 0.924855 0.145161 +vt 0.924855 0.338710 +vt 0.485549 0.145161 +vt 0.346821 0.338710 +vt 0.473988 0.387097 +vt 0.976879 0.653226 +vt 0.976879 0.653226 +vt 0.976879 0.653226 +vt 0.404624 0.000000 +vt 0.635838 0.016129 +vt 0.878613 0.016129 +vt 0.277457 0.983871 +vt 0.346821 0.991935 +vt 0.277457 0.991935 +vt 0.346821 0.975806 +vt 0.346821 0.983871 +vt 0.277457 0.975806 +vt 0.346821 0.967742 +vt 0.346821 1.000000 +vt 0.277457 1.000000 +vt -0.000000 1.000000 +vt 0.069364 0.991935 +vt 0.069364 1.000000 +vt 0.138728 0.991935 +vt 0.138728 1.000000 +vt 0.208092 0.991935 +vt 0.208092 1.000000 +vt 0.000000 0.975806 +vt 0.069364 0.967742 +vt 0.069364 0.975806 +vt 0.138728 0.967742 +vt 0.138728 0.975806 +vt 0.208092 0.967742 +vt 0.208092 0.975806 +vt 0.277457 0.967742 +vt 0.069364 0.983871 +vt 0.000000 0.983871 +vt 0.138728 0.983871 +vt 0.208092 0.983871 +vt -0.000000 0.991935 +vt -0.000000 0.967742 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.3219 0.9468 0.0000 +vn -0.8944 -0.4472 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.3162 0.9487 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.8944 -0.4472 0.0000 +vn 0.6788 0.6701 0.3004 +vn -0.5806 0.8131 -0.0429 +vn -0.6975 0.6931 -0.1819 +vn 0.7923 -0.5902 0.1548 +vn 0.6866 0.6388 0.3472 +vn 0.6651 -0.7335 0.1405 +vn -0.6262 -0.7022 -0.3388 +vn -0.6449 -0.7160 -0.2673 +vn -0.8661 -0.4997 -0.0111 +vn -0.6464 0.5821 -0.4933 +vn -0.7075 -0.6998 0.0981 +vn -0.6614 0.6307 -0.4059 +vn -0.6866 -0.7268 -0.0152 +vn -0.6788 0.6701 -0.3004 +vn -0.6650 -0.7335 -0.1405 +vn 0.6561 -0.5453 0.5217 +vn 0.6152 -0.6243 0.4814 +vn 0.6281 -0.6770 0.3837 +vn 0.6449 -0.7160 0.2673 +vn 0.7334 0.6775 -0.0555 +vn 0.5151 0.8106 -0.2786 +vn 0.7162 0.6954 0.0597 +vn 0.6975 0.6931 0.1819 +vn -0.5700 0.6227 -0.5360 +s off +f 87/134/77 79/135/77 82/136/77 +f 86/137/78 84/138/78 88/139/78 +f 80/140/79 86/137/79 82/136/79 +f 81/141/80 84/142/80 79/135/80 +f 82/143/81 88/144/81 87/134/81 +f 94/145/82 126/146/82 89/147/82 +f 87/134/83 83/148/83 81/141/83 +f 90/149/77 97/150/77 91/151/77 +f 98/152/78 96/153/78 95/154/78 +f 90/149/79 96/155/79 92/156/79 +f 91/151/80 94/145/80 89/147/80 +f 92/156/83 98/157/83 97/150/83 +f 79/135/77 90/149/77 126/158/77 +f 97/150/84 93/159/84 91/160/84 +f 101/161/85 100/162/85 99/163/85 +f 105/164/83 103/165/83 104/166/83 +f 101/167/78 106/168/78 102/169/78 +f 100/162/77 104/166/77 99/163/77 +f 113/170/83 111/171/83 112/172/83 +f 109/173/85 108/174/85 107/175/85 +f 109/176/78 114/177/78 110/178/78 +f 108/174/77 112/172/77 107/175/77 +f 121/179/83 119/180/83 120/181/83 +f 117/182/85 116/183/85 115/184/85 +f 117/185/78 122/186/78 118/187/78 +f 116/183/77 120/181/77 115/184/77 +f 126/158/85 124/188/85 123/189/85 +f 80/140/86 124/190/86 85/191/86 +f 95/154/78 84/138/78 124/192/78 +f 81/141/77 79/135/77 87/134/77 +f 79/135/77 80/140/77 82/136/77 +f 85/191/78 84/138/78 86/137/78 +f 84/138/78 83/193/78 88/139/78 +f 80/140/79 85/191/79 86/137/79 +f 81/141/80 83/194/80 84/142/80 +f 82/143/81 86/195/81 88/144/81 +f 94/145/82 125/196/82 126/146/82 +f 87/134/83 88/144/83 83/148/83 +f 91/151/77 89/147/77 90/149/77 +f 90/149/77 92/156/77 97/150/77 +f 95/154/78 94/197/78 93/198/78 +f 93/198/78 98/152/78 95/154/78 +f 90/149/79 95/199/79 96/155/79 +f 91/151/80 93/200/80 94/145/80 +f 92/156/83 96/201/83 98/157/83 +f 90/149/77 89/147/77 126/158/77 +f 126/158/77 123/189/77 79/135/77 +f 123/189/77 80/140/77 79/135/77 +f 97/150/84 98/157/84 93/159/84 +f 101/161/85 102/202/85 100/162/85 +f 105/164/83 106/168/83 103/165/83 +f 101/167/78 103/165/78 106/168/78 +f 100/162/77 105/164/77 104/166/77 +f 113/170/83 114/177/83 111/171/83 +f 109/173/85 110/203/85 108/174/85 +f 109/176/78 111/171/78 114/177/78 +f 108/174/77 113/170/77 112/172/77 +f 121/179/83 122/186/83 119/180/83 +f 117/182/85 118/204/85 116/183/85 +f 117/185/78 119/180/78 122/186/78 +f 116/183/77 121/179/77 120/181/77 +f 126/158/85 125/205/85 124/188/85 +f 80/140/86 123/206/86 124/190/86 +f 84/138/78 85/191/78 124/192/78 +f 124/192/78 125/207/78 95/154/78 +f 125/207/78 94/197/78 95/154/78 +s 1 +f 142/208/87 133/209/88 135/210/89 +f 142/208/87 132/211/90 134/212/91 +f 143/213/92 131/214/93 132/211/90 +f 135/210/89 131/215/93 150/216/94 +f 127/217/95 138/218/96 147/219/97 +f 147/219/97 137/220/98 148/221/99 +f 148/221/99 136/222/100 149/223/101 +f 149/223/101 135/210/89 150/216/94 +f 128/224/102 147/225/97 146/226/103 +f 146/226/103 148/227/99 145/228/104 +f 145/228/104 149/229/101 144/230/105 +f 144/230/105 150/231/94 143/213/92 +f 128/224/102 139/232/106 130/233/107 +f 146/226/103 140/234/108 139/232/106 +f 145/228/104 141/235/109 140/234/108 +f 141/235/109 143/213/92 142/208/87 +f 130/233/107 138/218/96 129/236/110 +f 139/232/106 137/220/98 138/218/96 +f 140/234/108 136/222/100 137/220/98 +f 141/235/109 135/210/89 136/222/100 +f 142/208/87 134/212/91 133/209/88 +f 142/208/87 143/213/92 132/211/90 +f 143/213/92 150/231/94 131/214/93 +f 135/210/89 133/209/88 131/215/93 +f 127/217/95 129/236/110 138/218/96 +f 147/219/97 138/218/96 137/220/98 +f 148/221/99 137/220/98 136/222/100 +f 149/223/101 136/222/100 135/210/89 +f 128/224/102 127/237/95 147/225/97 +f 146/226/103 147/225/97 148/227/99 +f 145/228/104 148/227/99 149/229/101 +f 144/230/105 149/229/101 150/231/94 +f 128/224/102 146/226/103 139/232/106 +f 146/226/103 145/228/104 140/234/108 +f 145/228/104 144/230/105 141/235/109 +f 141/235/109 144/230/105 143/213/92 +f 130/233/107 139/232/106 138/218/96 +f 139/232/106 140/234/108 137/220/98 +f 140/234/108 141/235/109 136/222/100 +f 141/235/109 142/208/87 135/210/89 +o Gun +v 0.000000 0.500000 7.000000 +v -0.250000 0.433013 7.000000 +v -0.433012 0.250000 7.000000 +v -0.500000 0.000000 7.000000 +v -0.433012 -0.250000 7.000000 +v -0.250000 -0.433013 7.000000 +v 0.000000 -0.500000 7.000000 +v 0.250000 -0.433013 7.000000 +v 0.433012 -0.250000 7.000000 +v 0.500000 -0.000000 7.000000 +v 0.433013 0.250000 7.000000 +v 0.250000 0.433013 7.000000 +v 0.000000 0.750000 5.750000 +v -0.375000 0.649519 5.750000 +v -0.649519 0.375000 5.750000 +v -0.750000 0.000000 5.750000 +v -0.649519 -0.375000 5.750000 +v -0.375000 -0.649519 5.750000 +v 0.000000 -0.750000 5.750000 +v 0.375000 -0.649519 5.750000 +v 0.649519 -0.375000 5.750000 +v 0.750000 -0.000000 5.750000 +v 0.649519 0.375000 5.750000 +v 0.375000 0.649519 5.750000 +v 0.000000 0.375000 7.000000 +v -0.187500 0.324760 7.000000 +v -0.324759 0.187500 7.000000 +v -0.375000 0.000000 7.000000 +v -0.324759 -0.187500 7.000000 +v -0.187500 -0.324759 7.000000 +v 0.000000 -0.375000 7.000000 +v 0.187500 -0.324760 7.000000 +v 0.324759 -0.187500 7.000000 +v 0.375000 -0.000000 7.000000 +v 0.324759 0.187500 7.000000 +v 0.187500 0.324759 7.000000 +v 0.000000 0.500000 5.500000 +v -0.250000 0.433013 5.500000 +v -0.433012 0.250000 5.500000 +v -0.500000 0.000000 5.500000 +v -0.433012 -0.250000 5.500000 +v -0.250000 -0.433013 5.500000 +v 0.000000 -0.500000 5.500000 +v 0.250000 -0.433013 5.500000 +v 0.433012 -0.250000 5.500000 +v 0.500000 -0.000000 5.500000 +v 0.433013 0.250000 5.500000 +v 0.250000 0.433013 5.500000 +v 0.000000 0.375000 6.000000 +v -0.187500 0.324760 6.000000 +v -0.324759 0.187500 6.000000 +v -0.375000 0.000000 6.000000 +v -0.324759 -0.187500 6.000000 +v -0.187500 -0.324759 6.000000 +v 0.000000 -0.375000 6.000000 +v 0.187500 -0.324760 6.000000 +v 0.324759 -0.187500 6.000000 +v 0.375000 -0.000000 6.000000 +v 0.324759 0.187500 6.000000 +v 0.187500 0.324759 6.000000 +v 0.000000 0.750000 5.500000 +v -0.375000 0.649519 5.500000 +v -0.649519 0.375000 5.500000 +v -0.750000 0.000000 5.500000 +v -0.649519 -0.375000 5.500000 +v -0.375000 -0.649519 5.500000 +v 0.000000 -0.750000 5.500000 +v 0.375000 -0.649519 5.500000 +v 0.649519 -0.375000 5.500000 +v 0.750000 -0.000000 5.500000 +v 0.649519 0.375000 5.500000 +v 0.375000 0.649519 5.500000 +v 0.000000 0.750000 4.000000 +v -0.375000 0.649519 4.000000 +v -0.649519 0.375000 4.000000 +v -0.750000 0.000000 4.000000 +v -0.649519 -0.375000 4.000000 +v -0.375000 -0.649519 4.000000 +v 0.000000 -0.750000 4.000000 +v 0.375000 -0.649519 4.000000 +v 0.649519 -0.375000 4.000000 +v 0.750000 -0.000000 4.000000 +v 0.649519 0.375000 4.000000 +v 0.375000 0.649519 4.000000 +v 0.000000 0.500000 4.000000 +v -0.250000 0.433013 4.000000 +v -0.433012 0.250000 4.000000 +v -0.500000 0.000000 4.000000 +v -0.433012 -0.250000 4.000000 +v -0.250000 -0.433013 4.000000 +v 0.000000 -0.500000 4.000000 +v 0.250000 -0.433013 4.000000 +v 0.433012 -0.250000 4.000000 +v 0.500000 -0.000000 4.000000 +v 0.433013 0.250000 4.000000 +v 0.250000 0.433013 4.000000 +v 0.000000 0.500000 -3.500000 +v -0.250000 0.433013 -3.500000 +v -0.433012 0.250000 -3.500000 +v -0.500000 0.000000 -3.500000 +v -0.433012 -0.250000 -3.500000 +v -0.250000 -0.433013 -3.500000 +v 0.000000 -0.500000 -3.500000 +v 0.250000 -0.433013 -3.500000 +v 0.433012 -0.250000 -3.500000 +v 0.500000 -0.000000 -3.500000 +v 0.433013 0.250000 -3.500000 +v 0.250000 0.433013 -3.500000 +v 0.000000 0.750000 -3.500000 +v -0.375000 0.649519 -3.500000 +v -0.649519 0.375000 -3.500000 +v -0.750000 0.000000 -3.500000 +v -0.649519 -0.375000 -3.500000 +v -0.375000 -0.649519 -3.500000 +v 0.000000 -0.750000 -3.500000 +v 0.375000 -0.649519 -3.500000 +v 0.649519 -0.375000 -3.500000 +v 0.750000 -0.000000 -3.500000 +v 0.649519 0.375000 -3.500000 +v 0.375000 0.649519 -3.500000 +v 0.000000 0.750000 -4.500000 +v -0.375000 0.649519 -4.500000 +v -0.649519 0.375000 -4.500000 +v -0.750000 0.000000 -4.500000 +v -0.649519 -0.375000 -4.500000 +v -0.375000 -0.649519 -4.500000 +v 0.000000 -0.750000 -4.500000 +v 0.375000 -0.649519 -4.500000 +v 0.649519 -0.375000 -4.500000 +v 0.750000 -0.000000 -4.500000 +v 0.649519 0.375000 -4.500000 +v 0.375000 0.649519 -4.500000 +v -0.500000 1.000000 -4.500000 +v -1.000000 0.500000 -4.500000 +v 1.000000 0.500000 -4.500000 +v 0.500000 1.000000 -4.500000 +v -1.000000 -0.500000 -4.500000 +v -0.500000 -1.000000 -4.500000 +v 0.500000 -1.000000 -4.500000 +v 1.000000 -0.500000 -4.500000 +v -0.500000 -1.000000 -8.000000 +v -1.000000 -0.500000 -8.000000 +v -1.000000 0.500000 -8.000000 +v -0.500000 1.000000 -8.000000 +v 0.500000 1.000000 -8.000000 +v 1.000000 0.500000 -8.000000 +v 1.000000 -0.500000 -8.000000 +v 0.500000 -1.000000 -8.000000 +v 0.000000 -0.625000 4.750000 +v -0.176777 -0.625000 4.823223 +v -0.250000 -0.625000 5.000000 +v -0.176777 -0.625000 5.176777 +v 0.000000 -0.625000 5.250000 +v 0.176776 -0.625000 5.176777 +v 0.250000 -0.625000 5.000000 +v 0.176776 -0.625000 4.823223 +v 0.000000 -0.875000 4.750000 +v -0.176777 -0.875000 4.823223 +v -0.250000 -0.875000 5.000000 +v -0.176777 -0.875000 5.176777 +v 0.000000 -0.875000 5.250000 +v 0.176776 -0.875000 5.176777 +v 0.250000 -0.875000 5.000000 +v 0.176776 -0.875000 4.823223 +v 0.000000 -0.875000 4.875000 +v -0.088388 -0.875000 4.911612 +v -0.125000 -0.875000 5.000000 +v -0.088388 -0.875000 5.088388 +v 0.000000 -0.875000 5.125000 +v 0.088388 -0.875000 5.088388 +v 0.125000 -0.875000 5.000000 +v 0.088388 -0.875000 4.911612 +v 0.000000 -1.125000 4.875000 +v -0.088388 -1.125000 4.911612 +v -0.125000 -1.125000 5.000000 +v -0.088388 -1.125000 5.088388 +v 0.000000 -1.125000 5.125000 +v 0.088388 -1.125000 5.088388 +v 0.125000 -1.125000 5.000000 +v 0.088388 -1.125000 4.911612 +v 0.000000 -1.500000 7.250000 +v 0.000000 -1.390165 4.984835 +v -0.088388 -1.364277 5.010723 +v -0.125000 -1.301777 5.073223 +v -0.088388 -1.239277 5.135724 +v 0.000000 -1.213388 5.161612 +v 0.088388 -1.239277 5.135724 +v 0.125000 -1.301777 5.073223 +v 0.088388 -1.364277 5.010723 +v 0.000000 -1.500000 5.250000 +v -0.088388 -1.463388 5.250000 +v -0.125000 -1.375000 5.250000 +v -0.088388 -1.286611 5.250000 +v 0.000000 -1.250000 5.250000 +v 0.088388 -1.286611 5.250000 +v 0.125000 -1.375000 5.250000 +v 0.088388 -1.463388 5.250000 +v -0.088388 -1.463388 7.250000 +v -0.125000 -1.375000 7.250000 +v -0.088388 -1.286611 7.250000 +v 0.000000 -1.250000 7.250000 +v 0.088388 -1.286611 7.250000 +v 0.125000 -1.375000 7.250000 +v 0.088388 -1.463388 7.250000 +v 0.000000 -0.875000 7.625000 +v 0.000000 -1.390165 7.515165 +v -0.088388 -1.364277 7.489277 +v -0.125000 -1.301777 7.426777 +v -0.088388 -1.239276 7.364276 +v 0.000000 -1.213388 7.338388 +v 0.088388 -1.239276 7.364276 +v 0.125000 -1.301777 7.426777 +v 0.088388 -1.364277 7.489277 +v 0.000000 -1.125000 7.625000 +v -0.088388 -1.125000 7.588388 +v -0.125000 -1.125000 7.500000 +v -0.088388 -1.125000 7.411612 +v 0.000000 -1.125000 7.375000 +v 0.088388 -1.125000 7.411612 +v 0.125000 -1.125000 7.500000 +v 0.088388 -1.125000 7.588388 +v -0.088388 -0.875000 7.588388 +v -0.125000 -0.875000 7.500000 +v -0.088388 -0.875000 7.411612 +v 0.000000 -0.875000 7.375000 +v 0.088388 -0.875000 7.411612 +v 0.125000 -0.875000 7.500000 +v 0.088388 -0.875000 7.588388 +v 0.000000 -0.875000 7.750000 +v -0.176777 -0.875000 7.676777 +v -0.250000 -0.875000 7.500000 +v -0.176777 -0.875000 7.323223 +v 0.000000 -0.875000 7.250000 +v 0.176776 -0.875000 7.323223 +v 0.250000 -0.875000 7.500000 +v 0.176776 -0.875000 7.676777 +v 0.000000 -0.375000 7.625000 +v -0.088388 -0.375000 7.588388 +v -0.125000 -0.375000 7.500000 +v -0.088388 -0.375000 7.411612 +v 0.000000 -0.375000 7.375000 +v 0.088388 -0.375000 7.411612 +v 0.125000 -0.375000 7.500000 +v 0.088388 -0.375000 7.588388 +v -0.500000 -0.750000 -4.500000 +v 0.500000 -0.750000 -4.500000 +v 0.500000 -1.000000 -4.500000 +v -0.500000 -1.000000 -4.500000 +v -0.500000 -0.750000 4.250000 +v 0.500000 -0.750000 4.250000 +v 0.500000 -1.000000 4.250000 +v -0.500000 -1.000000 4.250000 +v 0.375000 1.000000 -7.125000 +v -0.500000 -0.750000 4.500000 +v 0.500000 -0.750000 4.500000 +v -0.375000 1.000000 -7.125000 +v -0.500000 -0.500000 4.250000 +v 0.500000 -0.500000 4.250000 +v -0.500000 -0.500000 4.500000 +v 0.500000 -0.500000 4.500000 +v -0.375000 1.000000 -7.875000 +v 0.375000 1.000000 -7.875000 +v -0.375000 1.250000 -7.125000 +v 0.375000 1.250000 -7.125000 +v -0.375000 1.250000 -7.875000 +v 0.375000 1.250000 -7.875000 +v -0.250000 1.250000 -7.250000 +v 0.250000 1.250000 -7.250000 +v -0.250000 1.250000 -7.750000 +v 0.250000 1.250000 -7.750000 +v -0.250000 1.875000 -7.750000 +v -0.250000 2.250000 -7.250000 +v 0.250000 2.250000 -7.250000 +v 0.250000 1.875000 -7.750000 +v -0.500000 0.000000 -0.750000 +v -0.433012 0.250000 -0.750000 +v -0.187500 2.062500 -7.250000 +v 0.187500 2.062500 -7.250000 +v -0.250000 0.433013 -0.750000 +v 0.000000 0.500000 -0.750000 +v -0.187500 2.062500 -5.750000 +v 0.187500 2.062500 -5.750000 +v -0.250000 1.625000 -5.750000 +v 0.250000 1.625000 -5.750000 +v -0.250000 2.125000 -5.750000 +v 0.250000 2.125000 -5.750000 +v -0.250000 2.125000 -5.375000 +v -0.250000 1.625000 -5.500000 +v 0.250000 1.625000 -5.500000 +v 0.250000 2.125000 -5.375000 +v -0.062500 1.687500 -7.250000 +v -0.187500 1.812500 -7.250000 +v 0.187500 1.812500 -7.250000 +v 0.062500 1.687500 -7.250000 +v -0.187500 1.812500 -5.750000 +v -0.062500 1.687500 -5.750000 +v 0.062500 1.687500 -5.750000 +v 0.187500 1.812500 -5.750000 +v -0.433012 -0.250000 -0.750000 +v -0.250000 -0.433013 -0.750000 +v 0.000000 -0.500000 -0.750000 +v 0.250000 -0.433013 -0.750000 +v 0.433012 -0.250000 -0.750000 +v 0.500000 -0.000000 -0.750000 +v 0.433013 0.250000 -0.750000 +v 0.250000 0.433013 -0.750000 +v 0.000000 0.625000 -0.750000 +v -0.312500 0.541266 -0.750000 +v -0.541266 0.312500 -0.750000 +v -0.625000 0.000000 -0.750000 +v -0.541266 -0.312500 -0.750000 +v -0.312500 -0.541266 -0.750000 +v 0.000000 -0.625000 -0.750000 +v 0.312500 -0.541266 -0.750000 +v 0.541265 -0.312500 -0.750000 +v 0.625000 -0.000000 -0.750000 +v 0.541266 0.312500 -0.750000 +v 0.312500 0.541266 -0.750000 +v 0.433012 -0.250000 -0.250000 +v 0.250000 -0.433013 -0.250000 +v 0.000000 -0.500000 -0.250000 +v -0.250000 -0.433013 -0.250000 +v -0.433012 -0.250000 -0.250000 +v -0.500000 0.000000 -0.250000 +v -0.433012 0.250000 -0.250000 +v -0.250000 0.433013 -0.250000 +v 0.000000 0.500000 -0.250000 +v 0.500000 -0.000000 -0.250000 +v 0.433013 0.250000 -0.250000 +v 0.250000 0.433013 -0.250000 +v -0.312500 0.541266 -0.250000 +v 0.000000 0.625000 -0.250000 +v -0.541266 0.312500 -0.250000 +v -0.625000 0.000000 -0.250000 +v -0.541266 -0.312500 -0.250000 +v -0.312500 -0.541266 -0.250000 +v 0.000000 -0.625000 -0.250000 +v 0.312500 -0.541266 -0.250000 +v 0.541265 -0.312500 -0.250000 +v 0.625000 -0.000000 -0.250000 +v 0.541266 0.312500 -0.250000 +v 0.312500 0.541266 -0.250000 +v 0.375000 0.125000 -0.375000 +v 0.375000 -0.125000 -0.375000 +v 0.375000 0.125000 -0.625000 +v 0.375000 -0.125000 -0.625000 +v 0.875000 -0.125000 -0.625000 +v 0.875000 0.125000 -0.625000 +v 0.875000 -0.125000 -0.375000 +v 0.875000 0.125000 -0.375000 +v 0.875000 -0.187500 -0.687500 +v 0.875000 0.187500 -0.687500 +v 0.625000 -0.125000 -0.375000 +v 0.625000 0.125000 -0.375000 +v 2.875000 -0.187500 -0.687500 +v 2.875000 0.187500 -0.687500 +v 0.750000 0.125000 -0.375000 +v 0.750000 -0.125000 -0.375000 +v 0.875000 -0.187500 -0.437500 +v 0.875000 -0.062500 -0.312500 +v 0.875000 0.062500 -0.312500 +v 0.875000 0.187500 -0.437500 +v 0.000000 -0.500000 7.500000 +v 2.875000 -0.062500 -0.312500 +v 2.875000 -0.187500 -0.437500 +v 2.875000 0.187500 -0.437500 +v 2.875000 0.062500 -0.312500 +v 0.625000 0.125000 -0.125000 +v 0.625000 -0.125000 -0.125000 +v 0.750000 0.125000 -0.125000 +v 0.750000 -0.125000 -0.125000 +v 0.750000 0.125000 0.000000 +v 0.750000 -0.125000 0.000000 +v 2.875000 0.125000 -0.125000 +v 2.875000 -0.125000 -0.125000 +v 2.750000 0.125000 0.000000 +v 2.750000 -0.125000 0.000000 +v 0.312500 0.541266 -3.500000 +v 0.217648 0.553754 -3.500000 +v 0.141747 0.495513 -3.500000 +v 0.129259 0.400660 -3.500000 +v 0.282352 0.312272 -3.500000 +v 0.358253 0.370513 -3.500000 +v 0.370741 0.465365 -3.500000 +v 0.312500 0.541266 4.000000 +v 0.217648 0.553754 4.000000 +v 0.141747 0.495513 4.000000 +v 0.129259 0.400660 4.000000 +v 0.282352 0.312272 4.000000 +v 0.358253 0.370513 4.000000 +v 0.370741 0.465365 4.000000 +v -0.312500 0.541266 -3.500000 +v -0.370741 0.465365 -3.500000 +v -0.358253 0.370513 -3.500000 +v -0.282352 0.312272 -3.500000 +v -0.129259 0.400660 -3.500000 +v -0.141747 0.495513 -3.500000 +v -0.217648 0.553753 -3.500000 +v -0.312500 0.541266 4.000000 +v -0.370741 0.465365 4.000000 +v -0.358253 0.370513 4.000000 +v -0.282352 0.312272 4.000000 +v -0.129259 0.400660 4.000000 +v -0.141747 0.495513 4.000000 +v -0.217648 0.553753 4.000000 +v 1.250000 1.750000 -4.250000 +v 0.896447 1.603553 -4.250000 +v 0.750000 1.250000 -4.250000 +v 0.896447 0.896447 -4.250000 +v 1.250000 0.750000 -4.250000 +v 1.603553 0.896447 -4.250000 +v 1.750000 1.250000 -4.250000 +v 1.603553 1.603553 -4.250000 +v 0.896447 1.603553 -4.000000 +v 1.250000 1.750000 -4.000000 +v 0.750000 1.250000 -4.000000 +v 0.896447 0.896447 -4.000000 +v 1.250000 0.750000 -4.000000 +v 1.603553 0.896447 -4.000000 +v 1.750000 1.250000 -4.000000 +v 1.603553 1.603553 -4.000000 +v 1.073223 1.426777 -3.750000 +v 1.250000 1.500000 -3.750000 +v 1.000000 1.250000 -3.750000 +v 1.073223 1.073223 -3.750000 +v 1.250000 1.000000 -3.750000 +v 1.426776 1.073223 -3.750000 +v 1.500000 1.250000 -3.750000 +v 1.426776 1.426777 -3.750000 +v 1.016466 1.281631 -4.093750 +v 1.016466 1.281631 -3.906250 +v 1.281631 1.016466 -3.906250 +v 1.281631 1.016466 -4.093750 +v 0.309360 0.574524 -4.093750 +v 0.309360 0.574524 -3.906250 +v 0.574524 0.309359 -3.906250 +v 0.574524 0.309359 -4.093750 +v 0.940640 1.559359 -4.250000 +v 1.250000 1.687500 -4.250000 +v 0.812500 1.250000 -4.250000 +v 0.940640 0.940641 -4.250000 +v 1.250000 0.812500 -4.250000 +v 1.559359 0.940641 -4.250000 +v 1.687500 1.250000 -4.250000 +v 1.559359 1.559359 -4.250000 +v 0.940640 1.559359 -4.187500 +v 1.250000 1.687500 -4.187500 +v 0.812500 1.250000 -4.187500 +v 0.940640 0.940641 -4.187500 +v 1.250000 0.812500 -4.187500 +v 1.559359 0.940641 -4.187500 +v 1.687500 1.250000 -4.187500 +v 1.559359 1.559359 -4.187500 +v 0.000000 -1.000000 -5.000000 +v -0.250000 -1.566987 -7.500000 +v -0.433013 -1.750000 -7.500000 +v -0.500000 -2.000000 -7.500000 +v 0.866025 -2.500000 -5.000000 +v 0.500000 -2.866025 -5.000000 +v 0.000000 -3.000000 -5.000000 +v -0.500000 -2.866025 -5.000000 +v -0.866025 -2.500000 -5.000000 +v -1.000000 -2.000000 -5.000000 +v -0.866026 -1.500000 -5.000000 +v -0.500000 -1.133975 -5.000000 +v 0.000000 -1.000000 -5.500000 +v 0.000000 -1.500000 -7.500000 +v 0.250000 -1.566987 -7.500000 +v 0.433013 -1.750000 -7.500000 +v 0.866025 -2.500000 -5.500000 +v 0.500000 -2.866025 -5.500000 +v 0.000000 -3.000000 -5.500000 +v -0.500000 -2.866025 -5.500000 +v -0.866025 -2.500000 -5.500000 +v -1.000000 -2.000000 -5.500000 +v -0.866026 -1.500000 -5.500000 +v -0.500000 -1.133975 -5.500000 +v 0.000000 -0.750000 -5.500000 +v -0.625000 -0.917468 -5.500000 +v -1.082532 -1.375000 -5.500000 +v -1.250000 -2.000000 -5.500000 +v -1.082532 -2.625000 -5.500000 +v -0.625000 -3.082531 -5.500000 +v 0.000000 -3.250000 -5.500000 +v 0.625000 -3.082532 -5.500000 +v 1.082531 -2.625000 -5.500000 +v 0.500000 -2.000000 -7.500000 +v 0.433012 -2.250000 -7.500000 +v 0.250000 -2.433013 -7.500000 +v 0.000000 -0.750000 -5.000000 +v -0.625000 -0.917468 -5.000000 +v -1.082532 -1.375000 -5.000000 +v -1.250000 -2.000000 -5.000000 +v -1.082532 -2.625000 -5.000000 +v -0.625000 -3.082531 -5.000000 +v 0.000000 -3.250000 -5.000000 +v 0.625000 -3.082532 -5.000000 +v 1.082531 -2.625000 -5.000000 +v 0.000000 -2.500000 -7.500000 +v -0.250000 -2.433013 -7.500000 +v -0.433012 -2.250000 -7.500000 +v 1.082531 -2.625000 -1.500000 +v -0.250000 -1.566988 -6.750000 +v -0.433013 -1.750000 -6.750000 +v -0.500000 -2.000000 -6.750000 +v 0.625000 -3.082532 -1.500000 +v 0.000000 -3.250000 -1.500000 +v -0.625000 -3.082531 -1.500000 +v -1.082532 -2.625000 -1.500000 +v -1.250000 -2.000000 -1.500000 +v -1.082532 -1.375000 -1.500000 +v -0.625000 -0.917468 -1.500000 +v 0.000000 -0.750000 -1.500000 +v 1.082531 -2.625000 -2.000000 +v -0.433012 -2.250000 -6.750000 +v -0.250000 -2.433013 -6.750000 +v 0.000000 -2.500000 -6.750000 +v 0.625000 -3.082532 -2.000000 +v 0.000000 -3.250000 -2.000000 +v -0.625000 -3.082531 -2.000000 +v -1.082532 -2.625000 -2.000000 +v -1.250000 -2.000000 -2.000000 +v -1.082532 -1.375000 -2.000000 +v -0.625000 -0.917468 -2.000000 +v 0.000000 -0.750000 -2.000000 +v -0.500000 -1.133975 -2.000000 +v -0.866026 -1.500000 -2.000000 +v -1.000000 -2.000000 -2.000000 +v -0.866025 -2.500000 -2.000000 +v -0.500000 -2.866025 -2.000000 +v 0.000000 -3.000000 -2.000000 +v 0.500000 -2.866025 -2.000000 +v 0.866025 -2.500000 -2.000000 +v 0.000000 -1.000000 -2.000000 +v 0.250000 -2.433013 -6.750000 +v 0.433012 -2.250000 -6.750000 +v 0.500000 -2.000000 -6.750000 +v -0.500000 -1.133975 -1.500000 +v -0.866026 -1.500000 -1.500000 +v -1.000000 -2.000000 -1.500000 +v -0.866025 -2.500000 -1.500000 +v -0.500000 -2.866025 -1.500000 +v 0.000000 -3.000000 -1.500000 +v 0.500000 -2.866025 -1.500000 +v 0.866025 -2.500000 -1.500000 +v 0.000000 -1.000000 -1.500000 +v 0.433013 -1.750000 -6.750000 +v 0.250000 -1.566987 -6.750000 +v 0.000000 -1.500000 -6.750000 +v -0.250000 -1.625000 -6.875000 +v 0.250000 -1.625000 -6.875000 +v -0.250000 -1.625000 -7.375000 +v 0.250000 -1.625000 -7.375000 +v -0.250000 -1.000000 -6.875000 +v 0.250000 -1.000000 -6.875000 +v -0.250000 -1.000000 -7.375000 +v 0.250000 -1.000000 -7.375000 +v 0.000000 -1.625000 -7.500000 +v -0.265165 -1.734835 -7.500000 +v -0.375000 -2.000000 -7.500000 +v -0.265165 -2.265165 -7.500000 +v 0.000000 -2.375000 -7.500000 +v 0.265165 -2.265165 -7.500000 +v 0.375000 -2.000000 -7.500000 +v 0.265165 -1.734835 -7.500000 +v 0.000000 -1.625000 -8.500000 +v -0.265165 -1.734835 -8.500000 +v -0.375000 -2.000000 -8.500000 +v -0.265165 -2.265165 -8.500000 +v 0.000000 -2.375000 -8.500000 +v 0.265165 -2.265165 -8.500000 +v 0.375000 -2.000000 -8.500000 +v 0.265165 -1.734835 -8.500000 +v 0.375000 0.000000 -8.250001 +v 0.000000 -1.478553 -8.853554 +v -0.265165 -1.556218 -8.931218 +v -0.375000 -1.743718 -9.118718 +v -0.265165 -1.931218 -9.306218 +v 0.000000 -2.008883 -9.383883 +v 0.265165 -1.931218 -9.306218 +v 0.375000 -1.743718 -9.118718 +v 0.265165 -1.556219 -8.931218 +v 0.000000 -1.125000 -9.000000 +v -0.265165 -1.125000 -9.109835 +v -0.375000 -1.125000 -9.375000 +v -0.265165 -1.125000 -9.640165 +v 0.000000 -1.125000 -9.750000 +v 0.265165 -1.125000 -9.640165 +v 0.375000 -1.125000 -9.375000 +v 0.265165 -1.125000 -9.109835 +v 0.000000 -0.875000 -9.000000 +v -0.265165 -0.875000 -9.109835 +v -0.375000 -0.875000 -9.375000 +v -0.265165 -0.875000 -9.640165 +v 0.000000 -0.875000 -9.750000 +v 0.265165 -0.875000 -9.640165 +v 0.375000 -0.875000 -9.375000 +v 0.265165 -0.875000 -9.109835 +v 0.265165 0.265166 -8.250001 +v 0.000000 0.375000 -8.250000 +v -0.265165 0.265166 -8.250001 +v -0.375000 0.000000 -8.250001 +v -0.265165 -0.265165 -8.250000 +v 0.000000 -0.375000 -8.250000 +v 0.000000 -0.375000 -8.500000 +v -0.265165 -0.265165 -8.500000 +v -0.375000 0.000000 -8.500001 +v -0.265165 0.265166 -8.500001 +v 0.000000 0.375000 -8.500000 +v 0.265165 0.265166 -8.500001 +v 0.375000 0.000000 -8.500001 +v 0.265165 -0.265165 -8.500000 +v 0.265165 -0.443782 -8.931218 +v 0.375000 -0.256282 -9.118719 +v 0.265165 -0.068781 -9.306219 +v 0.000000 0.008884 -9.383883 +v -0.265165 -0.068781 -9.306219 +v -0.375000 -0.256282 -9.118719 +v -0.265165 -0.443782 -8.931218 +v 0.000000 -0.521446 -8.853554 +v 0.265165 -0.265165 -8.250000 +v 0.000000 0.500000 -8.250000 +v -0.353553 0.353554 -8.250000 +v -0.500000 0.000000 -8.250000 +v -0.353553 -0.353553 -8.250000 +v 0.000000 -0.500000 -8.250000 +v 0.353553 -0.353553 -8.250000 +v 0.500000 0.000000 -8.250000 +v 0.353553 0.353554 -8.250000 +v -0.353553 0.353554 -8.000000 +v 0.000000 0.500000 -8.000000 +v -0.500000 0.000000 -8.000000 +v -0.353553 -0.353553 -8.000000 +v 0.000000 -0.500000 -8.000000 +v 0.353553 -0.353553 -8.000000 +v 0.500000 0.000000 -8.000000 +v 0.353553 0.353554 -8.000000 +v -0.937500 1.000000 -4.562500 +v -0.562500 1.000000 -4.562500 +v -0.937500 1.000000 -4.937500 +v -0.562500 1.000000 -4.937500 +v -0.937500 0.500000 -4.562500 +v -0.562500 0.500000 -4.562500 +v -0.937500 0.500000 -4.937500 +v -0.562500 0.500000 -4.937500 +v -0.937500 1.000000 -5.062500 +v -0.562500 1.000000 -5.062500 +v -0.937500 1.000000 -5.437500 +v -0.562500 1.000000 -5.437500 +v -0.937500 0.500000 -5.062500 +v -0.562500 0.500000 -5.062500 +v -0.937500 0.500000 -5.437500 +v -0.562500 0.500000 -5.437500 +v -0.875000 1.000000 -4.625000 +v -0.625000 1.000000 -4.625000 +v -0.875000 1.000000 -4.875000 +v -0.625000 1.000000 -4.875000 +v -0.875000 1.375000 -4.875000 +v -0.875000 1.375000 -4.625000 +v -0.625000 1.375000 -4.625000 +v -0.625000 1.375000 -4.875000 +v -0.875000 1.000000 -5.125000 +v -0.625000 1.000000 -5.125000 +v -0.875000 1.000000 -5.375000 +v -0.625000 1.000000 -5.375000 +v -0.875000 1.375000 -5.375000 +v -0.875000 1.375000 -5.125000 +v -0.625000 1.375000 -5.125000 +v -0.625000 1.375000 -5.375000 +v -0.500000 0.000000 2.125000 +v -0.433012 0.250000 2.125000 +v -0.250000 0.433013 2.125000 +v 0.000000 0.500000 2.125000 +v -0.433012 -0.250000 2.125000 +v -0.250000 -0.433013 2.125000 +v 0.000000 -0.500000 2.125000 +v 0.250000 -0.433013 2.125000 +v 0.433012 -0.250000 2.125000 +v 0.500000 -0.000000 2.125000 +v 0.433013 0.250000 2.125000 +v 0.250000 0.433013 2.125000 +v 0.000000 0.625000 2.125000 +v -0.312500 0.541266 2.125000 +v -0.541266 0.312500 2.125000 +v -0.625000 0.000000 2.125000 +v -0.541266 -0.312500 2.125000 +v -0.312500 -0.541266 2.125000 +v 0.000000 -0.625000 2.125000 +v 0.312500 -0.541266 2.125000 +v 0.541265 -0.312500 2.125000 +v 0.625000 -0.000000 2.125000 +v 0.541266 0.312500 2.125000 +v 0.312500 0.541266 2.125000 +v 0.433012 -0.250000 2.625000 +v 0.250000 -0.433013 2.625000 +v 0.000000 -0.500000 2.625000 +v -0.250000 -0.433013 2.625000 +v -0.433012 -0.250000 2.625000 +v -0.500000 0.000000 2.625000 +v -0.433012 0.250000 2.625000 +v -0.250000 0.433013 2.625000 +v 0.000000 0.500000 2.625000 +v 0.500000 -0.000000 2.625000 +v 0.433013 0.250000 2.625000 +v 0.250000 0.433013 2.625000 +v -0.312500 0.541266 2.625000 +v 0.000000 0.625000 2.625000 +v -0.541266 0.312500 2.625000 +v -0.625000 0.000000 2.625000 +v -0.541266 -0.312500 2.625000 +v -0.312500 -0.541266 2.625000 +v 0.000000 -0.625000 2.625000 +v 0.312500 -0.541266 2.625000 +v 0.541265 -0.312500 2.625000 +v 0.625000 -0.000000 2.625000 +v 0.541266 0.312500 2.625000 +v 0.312500 0.541266 2.625000 +vt 0.052023 0.334677 +vt 0.046243 0.318548 +vt 0.052023 0.318548 +vt 0.052023 0.383065 +vt 0.046243 0.366935 +vt 0.052023 0.366935 +vt 0.052023 0.245968 +vt 0.046243 0.258065 +vt 0.046243 0.245968 +vt 0.052023 0.479839 +vt 0.046243 0.463710 +vt 0.052023 0.463710 +vt 0.052023 0.407258 +vt 0.046243 0.391129 +vt 0.052023 0.391129 +vt 0.052023 0.286290 +vt 0.046243 0.270161 +vt 0.052023 0.270161 +vt 0.052023 0.197581 +vt 0.046243 0.209677 +vt 0.046243 0.197581 +vt 0.052023 0.431452 +vt 0.046243 0.415323 +vt 0.052023 0.415323 +vt 0.052023 0.310484 +vt 0.046243 0.294355 +vt 0.052023 0.294355 +vt 0.052023 0.358871 +vt 0.046243 0.342742 +vt 0.052023 0.342742 +vt 0.052023 0.237903 +vt 0.046243 0.221774 +vt 0.052023 0.221774 +vt 0.052023 0.439516 +vt 0.046243 0.451613 +vt 0.046243 0.439516 +vt 0.002476 0.496091 +vt 0.017341 0.484117 +vt 0.032206 0.496091 +vt 0.132948 0.290323 +vt 0.121387 0.310484 +vt 0.121387 0.294355 +vt 0.132948 0.314516 +vt 0.121387 0.334677 +vt 0.121387 0.318548 +vt 0.121387 0.342742 +vt 0.132948 0.362903 +vt 0.121387 0.358871 +vt 0.121387 0.366935 +vt 0.132948 0.387097 +vt 0.121387 0.383065 +vt 0.121387 0.407258 +vt 0.121387 0.391129 +vt 0.121387 0.415323 +vt 0.132948 0.435484 +vt 0.121387 0.431452 +vt 0.121387 0.455645 +vt 0.121387 0.439516 +vt 0.121387 0.463710 +vt 0.132948 0.483871 +vt 0.121387 0.479839 +vt 0.132948 0.193548 +vt 0.121387 0.213710 +vt 0.121387 0.197581 +vt 0.132948 0.217742 +vt 0.121387 0.237903 +vt 0.121387 0.221774 +vt 0.132948 0.241935 +vt 0.121387 0.262097 +vt 0.121387 0.245968 +vt 0.132948 0.266129 +vt 0.121387 0.286290 +vt 0.121387 0.270161 +vt 0.202312 0.290323 +vt 0.213873 0.310484 +vt 0.202312 0.314516 +vt 0.213873 0.334677 +vt 0.202312 0.338710 +vt 0.213873 0.342742 +vt 0.202312 0.362903 +vt 0.213873 0.366935 +vt 0.202312 0.387097 +vt 0.213873 0.407258 +vt 0.202312 0.411290 +vt 0.213873 0.415323 +vt 0.202312 0.435484 +vt 0.213873 0.455645 +vt 0.202312 0.459677 +vt 0.213873 0.463710 +vt 0.202312 0.483871 +vt 0.213873 0.197581 +vt 0.202312 0.217742 +vt 0.202312 0.193548 +vt 0.213873 0.221774 +vt 0.202312 0.241935 +vt 0.213873 0.262097 +vt 0.202312 0.266129 +vt 0.213873 0.286290 +vt 0.213873 0.366935 +vt 0.225434 0.387097 +vt 0.213873 0.383065 +vt 0.213873 0.262097 +vt 0.225434 0.241935 +vt 0.225434 0.266129 +vt 0.213873 0.463710 +vt 0.225434 0.483871 +vt 0.213873 0.479839 +vt 0.213873 0.407258 +vt 0.225434 0.411290 +vt 0.213873 0.286290 +vt 0.225434 0.290323 +vt 0.213873 0.197581 +vt 0.225434 0.217742 +vt 0.213873 0.213710 +vt 0.213873 0.415323 +vt 0.225434 0.435484 +vt 0.213873 0.431452 +vt 0.213873 0.310484 +vt 0.225434 0.314516 +vt 0.213873 0.342742 +vt 0.225434 0.362903 +vt 0.213873 0.358871 +vt 0.213873 0.221774 +vt 0.213873 0.237903 +vt 0.213873 0.455645 +vt 0.225434 0.459677 +vt 0.213873 0.334677 +vt 0.225434 0.338710 +vt 0.092486 0.677419 +vt 0.254335 0.741935 +vt 0.092486 0.741935 +vt 0.092486 0.580645 +vt 0.254335 0.645161 +vt 0.092486 0.645161 +vt 0.092486 0.483871 +vt 0.254335 0.548387 +vt 0.092486 0.548387 +vt 0.000000 0.741935 +vt 0.023121 0.645161 +vt 0.277457 0.645161 +vt 0.346821 0.677419 +vt 0.323699 0.774194 +vt 0.092486 0.774194 +vt 0.254335 0.774194 +vt 0.092486 0.870968 +vt 0.254335 0.838710 +vt 0.254335 0.870968 +vt 0.092486 0.838710 +vt 0.676301 0.943548 +vt 0.682081 0.935484 +vt 0.684971 0.943548 +vt 0.658960 0.943548 +vt 0.664740 0.935484 +vt 0.667630 0.943548 +vt 0.650289 0.943548 +vt 0.658960 0.935484 +vt 0.641618 0.943548 +vt 0.635838 0.935484 +vt 0.638728 0.935484 +vt 0.693642 0.943548 +vt 0.687861 0.935484 +vt 0.690751 0.935484 +vt 0.670520 0.935484 +vt 0.673410 0.935484 +vt 0.647399 0.935484 +vt 0.632948 0.943548 +vt 0.627168 0.935484 +vt 0.630058 0.935484 +vt 0.739884 0.903226 +vt 0.745665 0.911290 +vt 0.736994 0.911290 +vt 0.760116 0.903226 +vt 0.754335 0.911290 +vt 0.757225 0.903226 +vt 0.705202 0.903226 +vt 0.710983 0.911290 +vt 0.702312 0.911290 +vt 0.722543 0.903226 +vt 0.728324 0.911290 +vt 0.719653 0.911290 +vt 0.731214 0.903226 +vt 0.751445 0.903226 +vt 0.748555 0.903226 +vt 0.699422 0.903226 +vt 0.693642 0.911290 +vt 0.696532 0.903226 +vt 0.716763 0.903226 +vt 0.713873 0.903226 +vt 0.699422 0.548387 +vt 0.294798 0.483871 +vt 0.699422 0.483871 +vt 0.699422 0.403226 +vt 0.294798 0.387097 +vt 0.699422 0.387097 +vt 0.294798 0.467742 +vt 0.699422 0.467742 +vt 0.832370 0.395161 +vt 0.803468 0.387097 +vt 0.838150 0.387097 +vt 0.838150 0.395161 +vt 0.815029 0.435484 +vt 0.815029 0.395161 +vt 0.283237 0.483871 +vt 0.283237 0.483871 +vt 0.271676 0.467742 +vt 0.283237 0.467742 +vt 0.294798 0.403226 +vt 0.283237 0.387097 +vt 0.283237 0.403226 +vt 0.271676 0.403226 +vt 0.271676 0.387097 +vt 0.283237 0.387097 +vt 0.283237 0.548387 +vt 0.271676 0.483871 +vt 0.907514 0.370968 +vt 0.872832 0.387097 +vt 0.872832 0.370968 +vt 0.803468 0.370968 +vt 0.768786 0.387097 +vt 0.768786 0.370968 +vt 0.838150 0.370968 +vt 0.867052 0.395161 +vt 0.901734 0.395161 +vt 0.907514 0.387097 +vt 0.797688 0.395161 +vt 0.815029 0.467742 +vt 0.838150 0.435484 +vt 0.838150 0.467742 +vt 0.791907 0.395161 +vt 0.768786 0.459677 +vt 0.768786 0.395161 +vt 0.791907 0.459677 +vt 0.861272 0.395161 +vt 0.768786 0.500000 +vt 0.838150 0.491935 +vt 0.838150 0.500000 +vt 0.768786 0.548387 +vt 0.838150 0.524194 +vt 0.838150 0.548387 +vt 0.768786 0.524194 +vt 0.838150 0.508065 +vt 0.809249 0.596774 +vt 0.786127 0.564516 +vt 0.809249 0.564516 +vt 0.786127 0.653226 +vt 0.809249 0.620968 +vt 0.809249 0.653226 +vt 0.786127 0.620968 +vt 0.786127 0.596774 +vt 0.809249 0.548387 +vt 0.774566 0.564516 +vt 0.820809 0.564516 +vt 0.826590 0.596774 +vt 0.768786 0.508065 +vt 0.838150 0.483871 +vt 0.768786 0.491935 +vt 0.768786 0.483871 +vt 0.838150 0.467742 +vt 1.000000 0.330645 +vt 0.994220 0.310484 +vt 1.000000 0.314516 +vt 1.000000 0.350806 +vt 0.994220 0.330645 +vt 1.000000 0.334677 +vt 1.000000 0.370968 +vt 0.994220 0.350806 +vt 1.000000 0.354839 +vt 1.000000 0.391129 +vt 0.994220 0.370968 +vt 1.000000 0.375000 +vt 1.000000 0.411290 +vt 0.994220 0.391129 +vt 1.000000 0.395161 +vt 1.000000 0.431452 +vt 0.994220 0.411290 +vt 1.000000 0.415323 +vt 1.000000 0.435484 +vt 0.994220 0.451613 +vt 0.994220 0.431452 +vt 1.000000 0.455645 +vt 0.994220 0.471774 +vt 1.000000 0.475806 +vt 0.994220 0.491935 +vt 1.000000 0.270161 +vt 0.994220 0.250000 +vt 1.000000 0.254032 +vt 1.000000 0.274194 +vt 0.994220 0.290323 +vt 0.994220 0.270161 +vt 1.000000 0.310484 +vt 1.000000 0.294355 +vt 0.971098 0.310484 +vt 0.965318 0.330645 +vt 0.965318 0.314516 +vt 0.971098 0.330645 +vt 0.965318 0.350806 +vt 0.965318 0.334677 +vt 0.971098 0.350806 +vt 0.965318 0.370968 +vt 0.965318 0.354839 +vt 0.971098 0.370968 +vt 0.965318 0.391129 +vt 0.965318 0.375000 +vt 0.971098 0.391129 +vt 0.965318 0.411290 +vt 0.965318 0.395161 +vt 0.971098 0.411290 +vt 0.965318 0.431452 +vt 0.965318 0.415323 +vt 0.965318 0.435484 +vt 0.971098 0.451613 +vt 0.965318 0.451613 +vt 0.965318 0.455645 +vt 0.971098 0.471774 +vt 0.965318 0.471774 +vt 0.965318 0.475806 +vt 0.971098 0.491935 +vt 0.965318 0.491935 +vt 0.971098 0.250000 +vt 0.965318 0.270161 +vt 0.965318 0.254032 +vt 0.965318 0.274194 +vt 0.971098 0.290323 +vt 0.965318 0.290323 +vt 0.965318 0.310484 +vt 0.965318 0.294355 +vt 0.890173 0.895161 +vt 0.797688 0.879032 +vt 0.890173 0.879032 +vt 0.786127 0.854839 +vt 0.797688 0.854839 +vt 0.927746 0.870968 +vt 0.904624 0.854839 +vt 0.927746 0.854839 +vt 0.927746 0.887097 +vt 0.904624 0.870968 +vt 0.927746 0.919355 +vt 0.904624 0.903226 +vt 0.927746 0.903226 +vt 0.890173 0.911290 +vt 0.797688 0.903226 +vt 0.890173 0.903226 +vt 0.797688 0.911290 +vt 0.890173 0.915323 +vt 0.797688 0.919355 +vt 0.893064 0.875000 +vt 0.890173 0.854839 +vt 0.893064 0.858871 +vt 0.462428 0.959677 +vt 0.450867 0.951613 +vt 0.462428 0.951613 +vt 0.450867 0.983871 +vt 0.445087 0.983871 +vt 0.450867 0.975806 +vt 0.797688 0.895161 +vt 0.890173 0.899194 +vt 0.893064 0.915323 +vt 0.901734 0.854839 +vt 0.904624 0.858871 +vt 0.901734 0.879032 +vt 0.904624 0.875000 +vt 0.890173 0.935484 +vt 0.890173 0.919355 +vt 0.462428 0.983871 +vt 0.462428 0.975806 +vt 0.450867 0.959677 +vt 0.450867 0.935484 +vt 0.462428 0.935484 +vt 0.445087 0.983871 +vt 0.352601 0.975806 +vt 0.445087 0.975806 +vt 0.445087 0.951613 +vt 0.346821 0.959677 +vt 0.346821 0.975806 +vt 0.445087 0.951613 +vt 0.352601 0.959677 +vt 0.346821 0.951613 +vt 0.346821 0.935484 +vt 0.445087 0.935484 +vt 0.445087 0.959677 +vt 0.930636 0.129032 +vt 0.927746 0.153226 +vt 0.927746 0.129032 +vt 0.965329 0.016129 +vt 0.976879 0.000015 +vt 0.988428 0.016129 +vt 0.956647 0.491935 +vt 0.973988 0.556452 +vt 0.956647 0.556452 +vt 0.930636 0.556452 +vt 0.947977 0.491935 +vt 0.947977 0.556452 +vt 0.930636 0.225806 +vt 0.927746 0.201613 +vt 0.930636 0.201613 +vt 0.930636 0.177419 +vt 0.930636 0.153226 +vt 0.973988 0.491935 +vt 0.982659 0.556452 +vt 0.930636 0.080645 +vt 0.927746 0.056452 +vt 0.930636 0.056452 +vt 0.930636 0.104839 +vt 0.927746 0.104839 +vt 0.927746 0.177419 +vt 0.930636 0.250000 +vt 0.927746 0.225806 +vt 0.927746 0.080645 +vt 0.945086 0.000034 +vt 0.959375 0.008291 +vt 0.965293 0.028226 +vt 0.722543 0.463710 +vt 0.734104 0.427419 +vt 0.734104 0.467742 +vt 0.722543 0.504032 +vt 0.734104 0.508065 +vt 0.722543 0.544355 +vt 0.734104 0.548387 +vt 0.722543 0.584677 +vt 0.734104 0.588710 +vt 0.722543 0.625000 +vt 0.734104 0.629032 +vt 0.722543 0.665323 +vt 0.734104 0.669355 +vt 0.722543 0.705645 +vt 0.734104 0.709677 +vt 0.708338 0.725837 +vt 0.748309 0.725837 +vt 0.728324 0.774132 +vt 0.757225 0.387097 +vt 0.734104 0.370968 +vt 0.757225 0.370968 +vt 0.768786 0.705645 +vt 0.757225 0.669355 +vt 0.768786 0.673387 +vt 0.722543 0.423387 +vt 0.734104 0.387097 +vt 0.734104 0.427419 +vt 0.768786 0.665323 +vt 0.757225 0.629032 +vt 0.768786 0.633065 +vt 0.768786 0.423387 +vt 0.768786 0.391129 +vt 0.768786 0.463710 +vt 0.757225 0.427419 +vt 0.768786 0.431452 +vt 0.768786 0.504032 +vt 0.757225 0.467742 +vt 0.768786 0.471774 +vt 0.768786 0.625000 +vt 0.757225 0.588710 +vt 0.768786 0.592742 +vt 0.768786 0.544355 +vt 0.757225 0.508065 +vt 0.768786 0.512097 +vt 0.768786 0.584677 +vt 0.757225 0.548387 +vt 0.768786 0.552419 +vt 0.768786 0.584677 +vt 0.757225 0.548387 +vt 0.768786 0.552419 +vt 0.768786 0.625000 +vt 0.757225 0.588710 +vt 0.768786 0.592742 +vt 0.768786 0.665323 +vt 0.757225 0.629032 +vt 0.768786 0.633065 +vt 0.768786 0.705645 +vt 0.757225 0.669355 +vt 0.768786 0.673387 +vt 0.768786 0.544355 +vt 0.757225 0.508065 +vt 0.768786 0.512097 +vt 0.722543 0.705645 +vt 0.734104 0.669355 +vt 0.734104 0.709677 +vt 0.768786 0.504032 +vt 0.757225 0.467742 +vt 0.768786 0.471774 +vt 0.768786 0.463710 +vt 0.757225 0.427419 +vt 0.768786 0.431452 +vt 0.722543 0.665323 +vt 0.734104 0.629032 +vt 0.768786 0.423387 +vt 0.757225 0.387097 +vt 0.768786 0.391129 +vt 0.722543 0.423387 +vt 0.734104 0.387097 +vt 0.734104 0.370968 +vt 0.757225 0.370968 +vt 0.722543 0.625000 +vt 0.734104 0.588710 +vt 0.722543 0.584677 +vt 0.734104 0.548387 +vt 0.722543 0.544355 +vt 0.734104 0.508065 +vt 0.748309 0.790353 +vt 0.748309 0.822550 +vt 0.708338 0.822550 +vt 0.722543 0.504032 +vt 0.734104 0.467742 +vt 0.722543 0.463710 +vt 0.884393 0.500000 +vt 0.861272 0.459677 +vt 0.884393 0.459677 +vt 0.930636 0.500000 +vt 0.907514 0.459677 +vt 0.930636 0.459677 +vt 0.907514 0.500000 +vt 0.861272 0.500000 +vt 0.838150 0.459677 +vt 0.826390 0.685484 +vt 0.803468 0.717463 +vt 0.780547 0.685484 +vt 0.965318 0.612903 +vt 0.982659 0.588710 +vt 0.982659 0.612903 +vt 0.965318 0.612903 +vt 0.982659 0.588710 +vt 0.982659 0.612903 +vt 0.947977 0.588710 +vt 0.965318 0.556452 +vt 0.965318 0.588710 +vt 1.000000 0.556452 +vt 1.000000 0.588710 +vt 0.982659 0.556452 +vt 0.930636 0.588710 +vt 0.947977 0.556452 +vt 0.947977 0.588710 +vt 0.965318 0.556452 +vt 0.965318 0.588710 +vt 1.000000 0.556452 +vt 1.000000 0.588710 +vt 0.982659 0.556452 +vt 0.930636 0.588710 +vt 0.947977 0.556452 +vt 0.953757 0.653226 +vt 0.965318 0.637097 +vt 0.965318 0.653226 +vt 0.953757 0.653226 +vt 0.965318 0.637097 +vt 0.965318 0.653226 +vt 0.953757 0.612903 +vt 0.942197 0.637097 +vt 0.942197 0.612903 +vt 0.976879 0.612903 +vt 0.965318 0.612903 +vt 0.953757 0.637097 +vt 0.930636 0.637097 +vt 0.930636 0.612903 +vt 0.953757 0.612903 +vt 0.942197 0.637097 +vt 0.942197 0.612903 +vt 0.976879 0.612903 +vt 0.965318 0.612903 +vt 0.953757 0.637097 +vt 0.930636 0.637097 +vt 0.930636 0.612903 +vt 0.965318 0.330645 +vt 0.959538 0.310484 +vt 0.965318 0.314516 +vt 0.965318 0.350806 +vt 0.959538 0.330645 +vt 0.965318 0.334677 +vt 0.965318 0.370968 +vt 0.959538 0.350806 +vt 0.965318 0.354839 +vt 0.965318 0.391129 +vt 0.959538 0.370968 +vt 0.965318 0.375000 +vt 0.965318 0.411290 +vt 0.959538 0.391129 +vt 0.965318 0.395161 +vt 0.965318 0.431452 +vt 0.959538 0.411290 +vt 0.965318 0.415323 +vt 0.965318 0.435484 +vt 0.959538 0.451613 +vt 0.959538 0.431452 +vt 0.965318 0.455645 +vt 0.959538 0.471774 +vt 0.965318 0.475806 +vt 0.959538 0.491935 +vt 0.965318 0.270161 +vt 0.959538 0.250000 +vt 0.965318 0.254032 +vt 0.965318 0.274194 +vt 0.959538 0.290323 +vt 0.959538 0.270161 +vt 0.965318 0.310484 +vt 0.965318 0.294355 +vt 0.936416 0.310484 +vt 0.930636 0.330645 +vt 0.930636 0.314516 +vt 0.936416 0.330645 +vt 0.930636 0.350806 +vt 0.930636 0.334677 +vt 0.936416 0.350806 +vt 0.930636 0.370968 +vt 0.930636 0.354839 +vt 0.936416 0.370968 +vt 0.930636 0.391129 +vt 0.930636 0.375000 +vt 0.936416 0.391129 +vt 0.930636 0.411290 +vt 0.930636 0.395161 +vt 0.936416 0.411290 +vt 0.930636 0.431452 +vt 0.930636 0.415323 +vt 0.930636 0.435484 +vt 0.936416 0.451613 +vt 0.930636 0.451613 +vt 0.930636 0.455645 +vt 0.936416 0.471774 +vt 0.930636 0.471774 +vt 0.930636 0.475806 +vt 0.936416 0.491935 +vt 0.930636 0.491935 +vt 0.936416 0.250000 +vt 0.930636 0.270161 +vt 0.930636 0.254032 +vt 0.930636 0.274194 +vt 0.936416 0.290323 +vt 0.930636 0.290323 +vt 0.930636 0.310484 +vt 0.930636 0.294355 +vt 0.046243 0.330645 +vt 0.046243 0.379032 +vt 0.052023 0.262097 +vt 0.046243 0.475806 +vt 0.046243 0.403226 +vt 0.046243 0.282258 +vt 0.052023 0.213710 +vt 0.046243 0.427419 +vt 0.046243 0.306452 +vt 0.046243 0.354839 +vt 0.046243 0.233871 +vt 0.052023 0.455645 +vt 0.017341 0.532012 +vt 0.008759 0.528803 +vt 0.002476 0.520038 +vt 0.000177 0.508065 +vt 0.008759 0.487326 +vt 0.025923 0.487326 +vt 0.034506 0.508065 +vt 0.032206 0.520038 +vt 0.025923 0.528803 +vt 0.132948 0.338710 +vt 0.132948 0.411290 +vt 0.132948 0.459677 +vt 0.213873 0.294355 +vt 0.213873 0.318548 +vt 0.213873 0.358871 +vt 0.213873 0.383065 +vt 0.213873 0.391129 +vt 0.213873 0.431452 +vt 0.213873 0.439516 +vt 0.213873 0.479839 +vt 0.213873 0.213710 +vt 0.213873 0.237903 +vt 0.213873 0.245968 +vt 0.213873 0.270161 +vt 0.213873 0.245968 +vt 0.213873 0.391129 +vt 0.213873 0.270161 +vt 0.225434 0.193548 +vt 0.213873 0.294355 +vt 0.213873 0.439516 +vt 0.213873 0.318548 +vt 0.254335 0.677419 +vt 0.254335 0.580645 +vt 0.254335 0.483871 +vt 0.069364 0.774194 +vt 0.023121 0.774194 +vt 0.000000 0.677419 +vt 0.069364 0.645161 +vt 0.277457 0.774194 +vt 0.323699 0.645161 +vt 0.346821 0.741935 +vt 0.679191 0.935484 +vt 0.661850 0.935484 +vt 0.653179 0.935484 +vt 0.644509 0.935484 +vt 0.624277 0.943548 +vt 0.742775 0.903226 +vt 0.763006 0.911290 +vt 0.708093 0.903226 +vt 0.725434 0.903226 +vt 0.734104 0.903226 +vt 0.294798 0.548387 +vt 0.809249 0.395161 +vt 0.271676 0.548387 +vt 0.843931 0.395161 +vt 0.878613 0.395161 +vt 0.774566 0.395161 +vt 0.861272 0.459677 +vt 0.786127 0.548387 +vt 0.768786 0.596774 +vt 0.768786 0.467742 +vt 1.000000 0.451613 +vt 1.000000 0.471774 +vt 1.000000 0.491935 +vt 1.000000 0.290323 +vt 0.971098 0.431452 +vt 0.971098 0.270161 +vt 0.786127 0.879032 +vt 0.780347 0.870968 +vt 0.780347 0.862903 +vt 0.904624 0.887097 +vt 0.904624 0.919355 +vt 0.893064 0.899194 +vt 0.797688 0.935484 +vt 0.346821 0.983871 +vt 0.976879 0.032243 +vt 0.968712 0.027523 +vt 0.968712 0.004735 +vt 0.985046 0.004735 +vt 0.985046 0.027523 +vt 0.930636 0.491935 +vt 0.982659 0.491935 +vt 0.927746 0.250000 +vt 0.959375 0.048160 +vt 0.945086 0.056418 +vt 0.930798 0.048160 +vt 0.924880 0.028226 +vt 0.930798 0.008291 +vt 0.722543 0.431452 +vt 0.722543 0.471774 +vt 0.722543 0.512097 +vt 0.722543 0.552419 +vt 0.722543 0.592742 +vt 0.722543 0.633065 +vt 0.722543 0.673387 +vt 0.716785 0.769818 +vt 0.708338 0.758034 +vt 0.705247 0.741936 +vt 0.716785 0.714053 +vt 0.728324 0.709739 +vt 0.739862 0.714053 +vt 0.751401 0.741935 +vt 0.748309 0.758034 +vt 0.739862 0.769819 +vt 0.757225 0.709677 +vt 0.722543 0.391129 +vt 0.757225 0.709677 +vt 0.722543 0.673387 +vt 0.722543 0.633065 +vt 0.722543 0.391129 +vt 0.722543 0.592742 +vt 0.722543 0.552419 +vt 0.722543 0.512097 +vt 0.739862 0.834335 +vt 0.728324 0.838648 +vt 0.716785 0.834335 +vt 0.705246 0.806452 +vt 0.708338 0.790353 +vt 0.716785 0.778569 +vt 0.728324 0.774255 +vt 0.739862 0.778569 +vt 0.751401 0.806452 +vt 0.722543 0.471774 +vt 0.722543 0.431452 +vt 0.838150 0.500000 +vt 0.819676 0.708097 +vt 0.787260 0.708097 +vt 0.787260 0.662871 +vt 0.803468 0.653505 +vt 0.819676 0.662871 +vt 0.930636 0.556452 +vt 0.930636 0.556452 +vt 0.976879 0.637097 +vt 0.976879 0.637097 +vt 0.965318 0.451613 +vt 0.965318 0.471774 +vt 0.965318 0.491935 +vt 0.965318 0.290323 +vt 0.936416 0.431452 +vt 0.936416 0.270161 +vt 0.109827 0.314516 +vt 0.109827 0.338710 +vt 0.109827 0.362903 +vt 0.109827 0.387097 +vt 0.109827 0.411290 +vt 0.109827 0.459677 +vt 0.109827 0.483871 +vt 0.109827 0.193548 +vt 0.109827 0.217742 +vt 0.109827 0.241935 +vt 0.109827 0.290323 +vt 0.109827 0.435484 +vt 0.109827 0.266129 +vt 0.000000 0.270161 +vt 0.000000 0.197581 +vt 0.000000 0.415323 +vt 0.000000 0.294355 +vt 0.000000 0.342742 +vt 0.000000 0.221774 +vt 0.000000 0.439516 +vt 0.000000 0.318548 +vt 0.000000 0.366935 +vt 0.000000 0.245968 +vt 0.000000 0.463710 +vt 0.000000 0.391129 +vt -0.000000 0.032258 +vt 0.346821 0.048387 +vt -0.000000 0.048387 +vt -0.000000 0.177419 +vt 0.346821 0.193548 +vt -0.000000 0.193548 +vt -0.000000 0.129032 +vt 0.346821 0.145161 +vt -0.000000 0.145161 +vt 0.346821 0.064516 +vt -0.000000 0.064516 +vt -0.000000 -0.000000 +vt 0.346821 0.016129 +vt -0.000000 0.016129 +vt 0.346821 0.161290 +vt -0.000000 0.161290 +vt 0.346821 0.080645 +vt -0.000000 0.080645 +vt -0.000000 0.096774 +vt 0.346821 0.112903 +vt -0.000000 0.112903 +vt 0.346821 0.032258 +vt 0.346821 0.177419 +vt 0.346821 0.096774 +vt 0.346821 0.129032 +vt 0.271676 0.338710 +vt 0.271676 0.387097 +vt 0.271676 0.266129 +vt 0.271676 0.483871 +vt 0.271676 0.411290 +vt 0.271676 0.290323 +vt 0.271676 0.217742 +vt 0.271676 0.435484 +vt 0.271676 0.314516 +vt 0.271676 0.362903 +vt 0.271676 0.241935 +vt 0.271676 0.459677 +vt 0.650289 0.959677 +vt 0.641618 0.959677 +vt 0.632948 0.959677 +vt 0.624277 0.959677 +vt 0.684971 0.959677 +vt 0.676301 0.959677 +vt 0.667630 0.959677 +vt 0.658960 0.959677 +vt 0.693642 0.959677 +vt 0.624277 0.983871 +vt 0.612717 0.975806 +vt 0.624277 0.975806 +vt 0.624277 1.000000 +vt 0.612717 0.991935 +vt 0.624277 0.991935 +vt 0.624277 0.951613 +vt 0.612717 0.943548 +vt 0.624277 0.943548 +vt 0.624277 0.967742 +vt 0.612717 0.959677 +vt 0.624277 0.959677 +vt 0.612717 0.967742 +vt 0.612717 0.983871 +vt 0.612717 0.935484 +vt 0.624277 0.935484 +vt 0.612717 0.951613 +vt 0.606936 0.943548 +vt 0.601156 0.935484 +vt 0.604046 0.935484 +vt 0.601156 0.951613 +vt 0.609827 0.951613 +vt 0.601156 0.983871 +vt 0.601156 0.975806 +vt 0.606936 0.991935 +vt 0.601156 1.000000 +vt 0.601156 0.991935 +vt 0.601156 0.943548 +vt 0.601156 0.967742 +vt 0.601156 0.959677 +vt 0.609827 0.983871 +vt 0.589595 0.967742 +vt 0.592486 0.983871 +vt 0.595376 0.943548 +vt 0.598266 0.935484 +vt 0.592486 0.951613 +vt 0.589595 0.975806 +vt 0.595376 0.991935 +vt 0.589595 0.959677 +vt 0.589595 1.000000 +vt 0.497110 0.991935 +vt 0.589595 0.991935 +vt 0.589595 0.951613 +vt 0.497110 0.943548 +vt 0.589595 0.943548 +vt 0.497110 0.959677 +vt 0.497110 0.967742 +vt 0.497110 0.983871 +vt 0.589595 0.983871 +vt 0.497110 0.935484 +vt 0.589595 0.935484 +vt 0.497110 0.951613 +vt 0.497110 0.975806 +vt 0.485549 0.983871 +vt 0.485549 0.975806 +vt 0.491329 0.991935 +vt 0.485549 1.000000 +vt 0.485549 0.991935 +vt 0.494220 0.951613 +vt 0.485549 0.943548 +vt 0.491329 0.943548 +vt 0.485549 0.967742 +vt 0.485549 0.959677 +vt 0.494220 0.983871 +vt 0.488439 0.935484 +vt 0.485549 0.935484 +vt 0.485549 0.951613 +vt 0.479769 0.991935 +vt 0.476879 0.983871 +vt 0.479769 0.943548 +vt 0.482659 0.935484 +vt 0.473988 0.959677 +vt 0.476879 0.951613 +vt 0.473988 0.975806 +vt 0.473988 0.967742 +vt 0.462428 0.967742 +vt 0.462428 0.959677 +vt 0.473988 0.983871 +vt 0.462428 0.991935 +vt 0.462428 0.983871 +vt 0.473988 0.935484 +vt 0.462428 0.943548 +vt 0.462428 0.935484 +vt 0.473988 0.951613 +vt 0.462428 0.951613 +vt 0.462428 0.975806 +vt 0.473988 1.000000 +vt 0.473988 0.991935 +vt 0.473988 0.943548 +vt 0.719653 0.943548 +vt 0.713873 0.943548 +vt 0.739884 0.943548 +vt 0.757225 0.943548 +vt 0.705202 0.943548 +vt 0.728324 0.943548 +vt 0.722543 0.943548 +vt 0.731214 0.943548 +vt 0.754335 0.943548 +vt 0.748555 0.943548 +vt 0.702312 0.943548 +vt 0.696532 0.943548 +vt 0.346821 0.879032 +vt -0.000000 0.870968 +vt 0.346821 0.870968 +vt 0.346821 0.911290 +vt -0.000000 0.903226 +vt 0.346821 0.903226 +vt 0.346821 0.887097 +vt -0.000000 0.879032 +vt 0.346821 0.919355 +vt -0.000000 0.911290 +vt -0.000000 0.895161 +vt 0.346821 0.895161 +vt -0.000000 0.887097 +vt 0.346821 0.927419 +vt 0.000000 0.919355 +vt 0.346821 0.919355 +vt 0.346821 0.959677 +vt 0.000000 0.951613 +vt 0.346821 0.951613 +vt 0.346821 0.935484 +vt 0.000000 0.927419 +vt 0.346821 0.967742 +vt 0.000000 0.959677 +vt 0.000000 0.943548 +vt 0.346821 0.943548 +vt 0.000000 0.935484 +vt 0.942197 0.080645 +vt 0.959538 0.060484 +vt 0.959538 0.072581 +vt 0.942197 0.153226 +vt 0.942197 0.177419 +vt 0.942197 0.225806 +vt 0.942197 0.129032 +vt 0.942197 0.201613 +vt 0.942197 0.250000 +vt 0.942197 0.104839 +vt 0.959538 0.120968 +vt 0.959538 0.193548 +vt 0.959538 0.241935 +vt 0.959538 0.084677 +vt 0.959538 0.096774 +vt 0.959538 0.145161 +vt 0.959538 0.169355 +vt 0.959538 0.217742 +vt 0.924855 0.201613 +vt 0.924855 0.056452 +vt 0.924855 0.104839 +vt 0.924855 0.177419 +vt 0.924855 0.225806 +vt 0.924855 0.080645 +vt 0.924855 0.129032 +vt 0.924855 0.153226 +vt 0.699422 0.471774 +vt 0.699422 0.504032 +vt 0.699422 0.633065 +vt 0.699422 0.665323 +vt 0.699422 0.512097 +vt 0.699422 0.544355 +vt 0.699422 0.391129 +vt 0.699422 0.423387 +vt 0.699422 0.673387 +vt 0.699422 0.705645 +vt 0.699422 0.552419 +vt 0.699422 0.584677 +vt 0.699422 0.431452 +vt 0.699422 0.463710 +vt 0.699422 0.592742 +vt 0.699422 0.625000 +vt 0.699422 0.592742 +vt 0.699422 0.625000 +vt 0.699422 0.431452 +vt 0.699422 0.463710 +vt 0.699422 0.552419 +vt 0.699422 0.584677 +vt 0.699422 0.673387 +vt 0.699422 0.705645 +vt 0.699422 0.391129 +vt 0.699422 0.423387 +vt 0.699422 0.512097 +vt 0.699422 0.544355 +vt 0.699422 0.633065 +vt 0.699422 0.665323 +vt 0.699422 0.471774 +vt 0.699422 0.504032 +vt 0.670520 0.887097 +vt 0.705202 0.903226 +vt 0.670520 0.903226 +vt 0.670520 0.854839 +vt 0.705202 0.870968 +vt 0.670520 0.870968 +vt 0.670520 0.806452 +vt 0.705202 0.790323 +vt 0.705202 0.806452 +vt 0.670520 0.741935 +vt 0.705202 0.758065 +vt 0.670520 0.758065 +vt 0.670520 0.709677 +vt 0.705202 0.725806 +vt 0.670520 0.725806 +vt 0.670520 0.838710 +vt 0.705202 0.854839 +vt 0.670520 0.774194 +vt 0.705202 0.774194 +vt 0.705202 0.741935 +vt 0.670520 0.822581 +vt 0.705202 0.838710 +vt 0.705202 0.887097 +vt 0.670520 0.790323 +vt 0.705202 0.822581 +vt 0.849711 0.564516 +vt 0.838150 0.500000 +vt 0.849711 0.500000 +vt 0.872832 0.564516 +vt 0.861272 0.500000 +vt 0.872832 0.500000 +vt 0.895954 0.564516 +vt 0.884393 0.500000 +vt 0.895954 0.500000 +vt 0.919075 0.564516 +vt 0.907514 0.500000 +vt 0.919075 0.500000 +vt 0.861272 0.564516 +vt 0.884393 0.564516 +vt 0.907514 0.564516 +vt 0.930636 0.564516 +vt 0.930636 0.500000 +vt 0.919075 0.612903 +vt 0.907514 0.576613 +vt 0.919075 0.580645 +vt 0.861272 0.576613 +vt 0.849711 0.612903 +vt 0.849711 0.580645 +vt 0.884393 0.629032 +vt 0.872832 0.568548 +vt 0.907514 0.616935 +vt 0.895954 0.568548 +vt 0.930636 0.584677 +vt 0.838150 0.584677 +vt 0.861272 0.616935 +vt 0.861272 0.641129 +vt 0.849711 0.677419 +vt 0.849711 0.645161 +vt 0.872832 0.689516 +vt 0.872832 0.633065 +vt 0.907514 0.681452 +vt 0.895954 0.633065 +vt 0.907514 0.641129 +vt 0.930636 0.649194 +vt 0.919075 0.677419 +vt 0.919075 0.645161 +vt 0.838150 0.649194 +vt 0.861272 0.681452 +vt 0.895954 0.689516 +vt 0.919075 0.693548 +vt 0.907514 0.709677 +vt 0.907514 0.693548 +vt 0.861272 0.709677 +vt 0.849711 0.693548 +vt 0.861272 0.693548 +vt 0.884393 0.693548 +vt 0.872832 0.709677 +vt 0.872832 0.693548 +vt 0.895954 0.693548 +vt 0.930636 0.693548 +vt 0.919075 0.709677 +vt 0.849711 0.709677 +vt 0.838150 0.693548 +vt 0.895954 0.709677 +vt 0.895954 0.854839 +vt 0.884393 0.838710 +vt 0.895954 0.838710 +vt 0.872832 0.854839 +vt 0.861272 0.838710 +vt 0.872832 0.838710 +vt 0.849711 0.854839 +vt 0.838150 0.838710 +vt 0.849711 0.838710 +vt 0.930636 0.854839 +vt 0.919075 0.838710 +vt 0.930636 0.838710 +vt 0.907514 0.854839 +vt 0.907514 0.838710 +vt 0.861272 0.854839 +vt 0.849711 0.790323 +vt 0.838150 0.818548 +vt 0.838150 0.794355 +vt 0.872832 0.834677 +vt 0.861272 0.786290 +vt 0.872832 0.778226 +vt 0.895954 0.834677 +vt 0.884393 0.774194 +vt 0.895954 0.778226 +vt 0.919075 0.790323 +vt 0.907514 0.826613 +vt 0.907514 0.786290 +vt 0.861272 0.826613 +vt 0.930636 0.794355 +vt 0.919075 0.822581 +vt 0.930636 0.729839 +vt 0.919075 0.758065 +vt 0.919075 0.725806 +vt 0.907514 0.762097 +vt 0.895954 0.713710 +vt 0.907514 0.721774 +vt 0.884393 0.709677 +vt 0.872832 0.770161 +vt 0.872832 0.713710 +vt 0.861272 0.762097 +vt 0.849711 0.725806 +vt 0.861272 0.721774 +vt 0.895954 0.770161 +vt 0.849711 0.758065 +vt 0.838150 0.729839 +vt 0.780347 0.725806 +vt 0.768786 0.701613 +vt 0.780347 0.701613 +vt 0.780347 0.677419 +vt 0.768786 0.653226 +vt 0.780347 0.653226 +vt 0.780347 0.822581 +vt 0.768786 0.798387 +vt 0.780347 0.798387 +vt 0.780347 0.774194 +vt 0.768786 0.750000 +vt 0.780347 0.750000 +vt 0.768786 0.725806 +vt 0.768786 0.677419 +vt 0.780347 0.846774 +vt 0.768786 0.822581 +vt 0.768786 0.774194 +vt 0.725434 0.951613 +vt 0.736994 0.943548 +vt 0.734104 0.951613 +vt 0.745665 0.943548 +vt 0.742775 0.951613 +vt 0.751445 0.951613 +vt 0.763006 0.943548 +vt 0.760116 0.951613 +vt 0.699422 0.951613 +vt 0.710983 0.943548 +vt 0.708093 0.951613 +vt 0.716763 0.951613 +vt 0.000000 0.282258 +vt 0.000000 0.209677 +vt 0.000000 0.427419 +vt 0.000000 0.306452 +vt 0.000000 0.354839 +vt 0.000000 0.233871 +vt 0.000000 0.451613 +vt 0.000000 0.330645 +vt 0.000000 0.379032 +vt 0.000000 0.258065 +vt 0.000000 0.475806 +vt 0.000000 0.403226 +vt 0.346821 -0.000000 +vt 0.271676 0.193548 +vt 0.612717 1.000000 +vt 0.604046 1.000000 +vt 0.598266 1.000000 +vt 0.497110 1.000000 +vt 0.488439 1.000000 +vt 0.482659 1.000000 +vt 0.462428 1.000000 +vt -0.000000 0.919355 +vt 0.000000 0.967742 +vt 0.942197 0.056452 +vt 0.959538 0.108871 +vt 0.959538 0.181452 +vt 0.959538 0.229839 +vt 0.959538 0.133065 +vt 0.959538 0.157258 +vt 0.959538 0.205645 +vt 0.924855 0.250000 +vt 0.705202 0.709677 +vt 0.838150 0.564516 +vt 0.872832 0.625000 +vt 0.895954 0.625000 +vt 0.930636 0.608871 +vt 0.838150 0.608871 +vt 0.930636 0.673387 +vt 0.838150 0.673387 +vt 0.930636 0.709677 +vt 0.838150 0.709677 +vt 0.884393 0.854839 +vt 0.838150 0.854839 +vt 0.919075 0.854839 +vt 0.849711 0.822581 +vt 0.930636 0.818548 +vt 0.930636 0.754032 +vt 0.838150 0.754032 +vt 0.768786 0.846774 +vn -0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.8000 -0.6000 +vn 0.0000 -0.2425 0.9701 +vn 0.0000 0.7071 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.5000 0.8660 0.0000 +vn 0.4903 0.8492 0.1961 +vn -0.0000 0.9806 0.1961 +vn -0.4903 0.8492 0.1961 +vn -0.8492 0.4903 0.1961 +vn -0.9806 -0.0000 0.1961 +vn -0.8492 -0.4903 0.1961 +vn -0.4903 -0.8492 0.1961 +vn -0.0000 -0.9806 0.1961 +vn 0.4903 -0.8492 0.1961 +vn 0.8492 -0.4903 0.1961 +vn 0.9806 -0.0000 0.1961 +vn 0.8492 0.4903 0.1961 +vn 0.6124 0.3536 -0.7071 +vn 0.3536 0.6124 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.3536 0.6124 -0.7071 +vn -0.6124 0.3536 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.6124 -0.3536 -0.7071 +vn -0.3536 -0.6124 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.3536 -0.6124 -0.7071 +vn 0.6124 -0.3536 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.6794 -0.1448 -0.7194 +vn 0.7263 0.1363 0.6737 +vn -0.7263 0.1363 0.6737 +vn -0.6794 -0.1448 -0.7194 +vn 0.0000 -0.1866 -0.9824 +vn 0.9987 -0.0196 -0.0473 +vn 0.0000 0.2049 0.9788 +vn -0.9987 -0.0196 -0.0473 +vn -0.9955 -0.0671 -0.0671 +vn 0.9955 -0.0671 -0.0671 +vn 0.6630 -0.5294 -0.5294 +vn 0.7574 0.4617 0.4617 +vn -0.7574 0.4617 0.4617 +vn -0.6630 -0.5294 -0.5294 +vn -0.0000 -0.9824 -0.1866 +vn 0.9987 -0.0473 -0.0196 +vn -0.7263 0.6737 0.1363 +vn -0.0000 0.9788 0.2049 +vn -0.9987 -0.0473 -0.0196 +vn 0.6794 -0.7194 -0.1448 +vn 0.7263 0.6737 0.1363 +vn -0.6794 -0.7194 -0.1448 +vn 0.7263 0.6737 -0.1363 +vn -0.7263 0.6737 -0.1363 +vn -0.6794 -0.7194 0.1448 +vn -0.0000 -0.9824 0.1866 +vn 0.9987 -0.0473 0.0196 +vn 0.0000 0.9788 -0.2049 +vn -0.9987 -0.0473 0.0196 +vn 0.6794 -0.7194 0.1448 +vn 0.9955 -0.0671 0.0671 +vn 0.6630 -0.5294 0.5293 +vn 0.7574 0.4617 -0.4617 +vn -0.7574 0.4617 -0.4617 +vn -0.6630 -0.5294 0.5293 +vn -0.9955 -0.0671 0.0671 +vn 0.7263 0.1363 -0.6737 +vn 0.9987 -0.0196 0.0473 +vn -0.7263 0.1363 -0.6737 +vn 0.0000 0.2049 -0.9788 +vn -0.6794 -0.1448 0.7194 +vn -0.9987 -0.0196 0.0473 +vn 0.6794 -0.1448 0.7194 +vn 0.0000 -0.1866 0.9824 +vn -0.9701 0.2425 -0.0000 +vn -0.6860 0.2425 0.6860 +vn 0.9701 0.2425 -0.0000 +vn 0.6860 0.2425 0.6860 +vn 0.0000 0.2425 -0.9701 +vn 0.6860 0.2425 -0.6860 +vn -0.6860 0.2425 -0.6860 +vn 0.0000 0.2425 0.9701 +vn 0.6088 -0.7934 0.0000 +vn -0.2588 0.9659 0.0000 +vn 0.9659 0.2588 0.0000 +vn -0.9914 0.1305 0.0000 +vn 0.9914 0.1305 0.0000 +vn -0.9659 0.2588 0.0000 +vn 0.2588 0.9659 0.0000 +vn -0.6088 -0.7934 0.0000 +vn -0.5000 -0.5000 0.7071 +vn -0.5000 0.5000 0.7071 +vn 0.5000 0.5000 0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.2588 -0.9659 0.0000 +vn -0.9987 0.0196 -0.0473 +vn 0.9987 0.0196 -0.0473 +vn 0.6794 0.1448 -0.7194 +vn -0.7263 -0.1363 0.6737 +vn 0.7263 -0.1363 0.6737 +vn -0.6794 0.1448 -0.7194 +vn 0.0000 0.9824 -0.1866 +vn -0.6794 0.7194 -0.1448 +vn 0.9987 0.0473 -0.0196 +vn 0.6794 0.7194 -0.1448 +vn -0.0000 -0.9788 0.2049 +vn 0.7263 -0.6737 0.1363 +vn -0.7263 -0.6737 0.1363 +vn -0.9987 0.0473 -0.0196 +vn 0.7574 -0.4617 0.4617 +vn 0.9955 0.0671 -0.0671 +vn 0.6630 0.5294 -0.5294 +vn -0.6630 0.5294 -0.5294 +vn -0.7574 -0.4617 0.4617 +vn -0.9955 0.0671 -0.0671 +vn 0.0000 -0.2049 0.9788 +vn 0.0000 0.1866 -0.9824 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.5000 0.7071 0.5000 +s off +f 151/238/111 186/239/111 162/240/111 +f 153/241/111 176/242/111 152/243/111 +f 159/244/111 184/245/111 183/246/111 +f 157/247/111 180/248/111 156/249/111 +f 154/250/111 177/251/111 153/252/111 +f 161/253/111 184/254/111 160/255/111 +f 157/256/111 182/257/111 181/258/111 +f 155/259/111 178/260/111 154/261/111 +f 162/262/111 185/263/111 161/264/111 +f 152/265/111 175/266/111 151/267/111 +f 159/268/111 182/269/111 158/270/111 +f 155/271/111 180/272/111 179/273/111 +f 203/274/111 205/275/111 207/276/111 +f 221/277/111 198/278/111 197/279/111 +f 222/280/111 187/281/111 198/282/111 +f 187/283/111 212/284/111 188/285/111 +f 188/286/111 213/287/111 189/288/111 +f 213/287/111 190/289/111 189/290/111 +f 190/291/111 215/292/111 191/293/111 +f 215/292/111 192/294/111 191/295/111 +f 192/296/111 217/297/111 193/298/111 +f 217/299/111 194/300/111 193/301/111 +f 218/302/111 195/303/111 194/304/111 +f 219/305/111 196/306/111 195/307/111 +f 220/308/111 197/309/111 196/310/111 +f 233/311/112 246/312/112 234/313/112 +f 234/313/112 235/314/112 223/315/112 +f 235/316/112 224/317/112 223/315/112 +f 236/318/112 225/319/112 224/317/112 +f 225/319/112 238/320/112 226/321/112 +f 238/322/112 227/323/112 226/321/112 +f 227/323/112 240/324/112 228/325/112 +f 240/326/112 229/327/112 228/325/112 +f 241/328/112 230/329/112 229/330/112 +f 242/331/112 231/332/112 230/329/112 +f 231/332/112 244/333/112 232/334/112 +f 232/334/112 245/335/112 233/311/112 +f 248/336/111 261/337/111 249/338/111 +f 256/339/111 267/340/111 268/341/111 +f 252/342/111 265/343/111 253/344/111 +f 250/345/111 261/337/111 262/346/111 +f 257/347/111 268/341/111 269/348/111 +f 253/349/111 266/350/111 254/351/111 +f 250/352/111 263/353/111 251/354/111 +f 258/355/111 269/348/111 270/356/111 +f 247/357/111 260/358/111 248/359/111 +f 254/360/111 267/340/111 255/361/111 +f 252/362/111 263/353/111 264/363/111 +f 247/364/111 270/356/111 259/365/111 +f 286/366/113 294/367/113 283/368/113 +f 290/369/114 296/370/114 285/371/114 +f 288/372/115 298/373/115 289/374/115 +f 288/375/111 290/376/111 286/366/111 +f 296/377/112 298/378/112 292/379/112 +f 296/370/116 286/366/116 285/371/116 +f 284/380/117 294/367/117 293/381/117 +f 298/373/118 290/369/118 289/374/118 +f 288/382/119 292/383/119 291/384/119 +f 284/380/120 292/383/120 287/385/120 +f 309/386/115 318/387/115 310/388/115 +f 307/389/115 316/390/115 308/391/115 +f 314/392/115 315/393/115 307/389/115 +f 313/394/115 320/395/115 321/396/115 +f 311/397/115 318/398/115 319/399/115 +f 309/386/115 316/400/115 317/401/115 +f 313/394/115 322/402/115 314/392/115 +f 312/403/115 319/404/115 320/405/115 +f 378/406/115 385/407/115 386/408/115 +f 375/409/115 384/410/115 376/411/115 +f 374/412/115 381/413/115 382/414/115 +f 372/415/115 379/416/115 380/417/115 +f 355/418/115 386/408/115 379/416/115 +f 376/419/115 385/407/115 377/420/115 +f 374/421/115 383/422/115 375/423/115 +f 372/424/115 381/413/115 373/425/115 +f 395/426/113 400/427/113 396/428/113 +f 398/429/120 399/430/120 395/431/120 +f 401/432/115 398/429/115 397/433/115 +f 396/428/114 401/432/114 397/433/114 +f 420/434/113 414/435/113 416/436/113 +f 419/437/112 424/438/112 420/439/112 +f 401/432/114 400/427/114 405/440/114 +f 400/441/114 410/442/114 405/443/114 +f 399/430/120 402/444/120 404/445/120 +f 401/432/121 404/446/121 402/444/121 +f 405/443/111 409/447/111 404/446/111 +f 404/446/120 407/448/120 399/449/120 +f 399/450/112 408/451/112 400/441/112 +f 406/452/120 415/453/120 411/454/120 +f 403/455/111 413/456/111 406/457/111 +f 411/454/112 416/436/112 412/458/112 +f 412/458/114 414/435/114 403/455/114 +f 419/459/113 416/436/113 415/453/113 +f 417/460/113 415/453/113 413/461/113 +f 418/462/113 413/456/113 414/435/113 +f 423/463/122 421/464/122 422/465/122 +f 418/466/111 422/467/111 417/468/111 +f 418/466/114 424/438/114 423/469/114 +f 417/470/120 421/464/120 419/437/120 +f 447/471/115 441/472/115 444/473/115 +f 431/474/113 428/475/113 427/476/113 +f 432/477/114 443/478/114 428/475/114 +f 435/479/112 434/480/112 433/481/112 +f 439/482/123 437/483/123 438/484/123 +f 435/479/113 440/485/113 436/486/113 +f 434/480/115 438/487/115 433/481/115 +f 436/486/114 439/488/114 434/480/114 +f 435/479/120 438/489/120 437/490/120 +f 448/491/118 444/473/118 443/478/118 +f 442/492/119 446/493/119 445/494/119 +f 445/494/120 427/495/120 442/492/120 +f 455/496/112 466/497/112 454/498/112 +f 456/499/112 467/500/112 455/501/112 +f 430/502/112 468/503/112 456/504/112 +f 429/505/112 457/506/112 430/507/112 +f 426/508/112 458/509/112 429/510/112 +f 425/511/112 459/512/112 426/513/112 +f 425/514/112 461/515/112 460/516/112 +f 449/517/112 462/518/112 461/515/112 +f 450/519/112 463/520/112 462/518/112 +f 452/521/112 463/522/112 451/523/112 +f 452/524/112 465/525/112 464/526/112 +f 454/527/112 465/525/112 453/528/112 +f 490/529/111 479/530/111 478/531/111 +f 491/532/111 480/533/111 479/534/111 +f 492/535/111 477/536/111 480/537/111 +f 482/538/111 476/539/111 477/540/111 +f 481/541/111 475/542/111 476/543/111 +f 483/544/111 474/545/111 475/546/111 +f 474/547/111 485/548/111 473/549/111 +f 473/550/111 486/551/111 472/552/111 +f 472/553/111 487/554/111 471/555/111 +f 487/556/111 470/557/111 471/558/111 +f 470/559/111 489/560/111 469/561/111 +f 489/560/111 478/562/111 469/563/111 +f 512/564/113 506/565/113 502/566/113 +f 515/567/114 505/568/114 506/565/114 +f 495/569/112 497/570/112 496/571/112 +f 493/572/113 498/573/113 495/569/113 +f 496/574/115 499/575/115 494/576/115 +f 510/577/111 517/578/111 511/579/111 +f 514/580/121 499/581/121 515/582/121 +f 498/583/120 501/584/120 497/585/120 +f 504/586/113 520/587/113 507/588/113 +f 502/566/112 505/568/112 501/584/112 +f 499/575/111 493/572/111 494/576/111 +f 521/589/115 523/590/115 519/591/115 +f 516/592/124 500/593/124 517/578/124 +f 511/579/120 499/594/120 510/577/120 +f 497/585/120 509/595/120 499/596/120 +f 512/597/120 498/583/120 500/598/120 +f 501/599/115 515/582/115 509/600/115 +f 508/601/115 519/591/115 503/602/115 +f 503/602/120 518/603/120 504/586/120 +f 507/588/114 521/604/114 508/605/114 +f 521/606/115 527/607/115 523/608/115 +f 523/608/125 518/603/125 519/591/125 +f 518/603/113 522/609/113 520/587/113 +f 524/610/126 527/607/126 525/611/126 +f 520/612/113 526/613/113 524/614/113 +f 520/612/112 525/615/112 521/616/112 +f 523/608/111 526/613/111 522/617/111 +f 557/618/112 589/619/112 588/620/112 +f 574/621/111 576/622/111 578/623/111 +f 587/624/112 580/625/112 583/626/112 +f 581/627/111 586/628/111 582/629/111 +f 586/628/118 583/626/118 582/629/118 +f 561/630/112 594/631/112 562/632/112 +f 563/633/112 589/619/112 556/634/112 +f 584/635/117 581/636/117 580/625/117 +f 559/637/112 592/638/112 560/639/112 +f 558/640/112 588/620/112 590/641/112 +f 563/633/112 594/631/112 595/642/112 +f 560/643/112 593/644/112 561/630/112 +f 558/640/112 591/645/112 559/637/112 +f 600/646/112 599/647/112 598/648/112 +f 622/649/112 635/650/112 634/651/112 +f 623/652/112 634/651/112 633/653/112 +f 624/654/112 633/653/112 632/655/112 +f 625/656/112 632/655/112 631/657/112 +f 626/658/112 631/657/112 630/659/112 +f 627/660/112 630/659/112 629/661/112 +f 616/662/112 629/661/112 628/663/112 +f 638/664/112 651/665/112 617/666/112 +f 652/667/127 683/668/127 695/669/127 +f 604/670/111 641/671/111 615/672/111 +f 682/673/112 664/674/112 668/675/112 +f 615/676/111 642/677/111 614/678/111 +f 694/679/111 652/667/111 695/680/111 +f 693/681/111 656/682/111 694/683/111 +f 692/684/111 657/685/111 693/686/111 +f 614/687/111 643/688/111 613/689/111 +f 691/690/111 658/691/111 692/692/111 +f 690/693/111 659/694/111 691/695/111 +f 613/696/111 644/697/111 612/698/111 +f 689/699/111 660/700/111 690/701/111 +f 688/702/111 661/703/111 689/704/111 +f 696/705/111 662/706/111 688/707/111 +f 612/708/111 645/709/111 611/710/111 +f 684/711/112 674/712/112 675/713/112 +f 611/714/111 646/715/111 610/716/111 +f 610/717/111 647/718/111 609/719/111 +f 676/720/112 673/721/112 674/712/112 +f 609/722/111 648/723/111 608/724/111 +f 621/725/112 636/726/112 635/650/112 +f 648/723/127 620/727/127 608/728/127 +f 677/729/112 672/730/112 673/721/112 +f 678/731/112 671/732/112 672/730/112 +f 679/733/112 670/734/112 671/732/112 +f 686/735/111 697/736/111 654/737/111 +f 680/738/112 669/739/112 670/734/112 +f 681/740/112 668/675/112 669/739/112 +f 707/741/114 701/742/114 703/743/114 +f 704/744/120 702/745/120 700/746/120 +f 706/747/112 703/743/112 702/745/112 +f 705/748/111 700/749/111 701/742/111 +f 774/750/112 772/751/112 778/752/112 +f 789/753/113 790/754/113 788/755/113 +f 797/756/113 798/757/113 796/758/113 +f 789/759/114 795/760/114 791/761/114 +f 790/754/120 792/762/120 788/763/120 +f 791/761/112 794/764/112 790/754/112 +f 788/765/111 793/766/111 789/759/111 +f 797/767/114 803/768/114 799/769/114 +f 798/757/120 800/770/120 796/771/120 +f 799/769/112 802/772/112 798/757/112 +f 796/773/111 801/774/111 797/767/111 +f 818/775/113 816/776/113 817/777/113 +f 810/778/113 808/779/113 809/780/113 +f 807/781/114 810/782/114 805/783/114 +f 804/784/120 808/779/120 806/785/120 +f 806/785/112 811/786/112 807/781/112 +f 805/783/111 809/787/111 804/788/111 +f 815/789/114 818/790/114 813/791/114 +f 812/792/120 816/776/120 814/793/120 +f 814/793/112 819/794/112 815/789/112 +f 813/791/111 817/795/111 812/796/111 +f 830/797/112 841/798/112 829/799/112 +f 831/800/112 842/801/112 830/802/112 +f 823/803/112 843/804/112 831/805/112 +f 822/806/112 832/807/112 823/808/112 +f 821/809/112 833/810/112 822/811/112 +f 820/812/112 834/813/112 821/814/112 +f 820/815/112 836/816/112 835/817/112 +f 824/818/112 837/819/112 836/816/112 +f 825/820/112 838/821/112 837/819/112 +f 827/822/112 838/823/112 826/824/112 +f 827/825/112 840/826/112 839/827/112 +f 829/828/112 840/826/112 828/829/112 +f 865/830/111 854/831/111 853/832/111 +f 866/833/111 855/834/111 854/835/111 +f 867/836/111 852/837/111 855/838/111 +f 857/839/111 851/840/111 852/841/111 +f 856/842/111 850/843/111 851/844/111 +f 858/845/111 849/846/111 850/847/111 +f 849/848/111 860/849/111 848/850/111 +f 848/851/111 861/852/111 847/853/111 +f 847/854/111 862/855/111 846/856/111 +f 862/857/111 845/858/111 846/859/111 +f 845/860/111 864/861/111 844/862/111 +f 864/861/111 853/863/111 844/864/111 +f 151/238/111 175/865/111 186/239/111 +f 153/241/111 177/866/111 176/242/111 +f 159/244/111 160/867/111 184/245/111 +f 157/247/111 181/868/111 180/248/111 +f 154/250/111 178/869/111 177/251/111 +f 161/253/111 185/870/111 184/254/111 +f 157/256/111 158/871/111 182/257/111 +f 155/259/111 179/872/111 178/260/111 +f 162/262/111 186/873/111 185/263/111 +f 152/265/111 176/874/111 175/266/111 +f 159/268/111 183/875/111 182/269/111 +f 155/271/111 156/876/111 180/272/111 +f 199/877/111 200/878/111 201/879/111 +f 201/879/111 202/880/111 203/274/111 +f 203/274/111 204/881/111 205/275/111 +f 205/275/111 206/882/111 207/276/111 +f 207/276/111 208/883/111 209/884/111 +f 209/884/111 210/885/111 207/276/111 +f 210/885/111 199/877/111 207/276/111 +f 199/877/111 201/879/111 207/276/111 +f 201/879/111 203/274/111 207/276/111 +f 221/277/111 222/280/111 198/278/111 +f 222/280/111 211/886/111 187/281/111 +f 187/283/111 211/886/111 212/284/111 +f 188/286/111 212/284/111 213/287/111 +f 213/287/111 214/887/111 190/289/111 +f 190/291/111 214/887/111 215/292/111 +f 215/292/111 216/888/111 192/294/111 +f 192/296/111 216/888/111 217/297/111 +f 217/299/111 218/302/111 194/300/111 +f 218/302/111 219/305/111 195/303/111 +f 219/305/111 220/308/111 196/306/111 +f 220/308/111 221/277/111 197/309/111 +f 233/311/112 245/889/112 246/312/112 +f 234/313/112 246/890/112 235/314/112 +f 235/316/112 236/891/112 224/317/112 +f 236/318/112 237/892/112 225/319/112 +f 225/319/112 237/893/112 238/320/112 +f 238/322/112 239/894/112 227/323/112 +f 227/323/112 239/895/112 240/324/112 +f 240/326/112 241/896/112 229/327/112 +f 241/328/112 242/897/112 230/329/112 +f 242/331/112 243/898/112 231/332/112 +f 231/332/112 243/899/112 244/333/112 +f 232/334/112 244/900/112 245/335/112 +f 248/336/111 260/358/111 261/337/111 +f 256/339/111 255/901/111 267/340/111 +f 252/342/111 264/363/111 265/343/111 +f 250/345/111 249/902/111 261/337/111 +f 257/347/111 256/903/111 268/341/111 +f 253/349/111 265/904/111 266/350/111 +f 250/352/111 262/346/111 263/353/111 +f 258/355/111 257/905/111 269/348/111 +f 247/357/111 259/365/111 260/358/111 +f 254/360/111 266/350/111 267/340/111 +f 252/362/111 251/906/111 263/353/111 +f 247/364/111 258/907/111 270/356/111 +f 286/366/113 295/908/113 294/367/113 +f 290/369/114 297/909/114 296/370/114 +f 288/372/115 291/910/115 298/373/115 +f 286/366/111 283/368/111 284/911/111 +f 284/911/111 287/912/111 288/375/111 +f 288/375/111 289/913/111 290/376/111 +f 290/376/111 285/914/111 286/366/111 +f 286/366/111 284/911/111 288/375/111 +f 292/379/112 293/915/112 294/367/112 +f 294/367/112 295/908/112 296/377/112 +f 296/377/112 297/916/112 298/378/112 +f 298/378/112 291/917/112 292/379/112 +f 292/379/112 294/367/112 296/377/112 +f 296/370/116 295/908/116 286/366/116 +f 284/380/117 283/368/117 294/367/117 +f 298/373/118 297/909/118 290/369/118 +f 288/382/119 287/385/119 292/383/119 +f 284/380/120 293/381/120 292/383/120 +f 309/386/115 317/918/115 318/387/115 +f 307/389/115 315/919/115 316/390/115 +f 314/392/115 322/920/115 315/393/115 +f 313/394/115 312/403/115 320/395/115 +f 311/397/115 310/388/115 318/398/115 +f 309/386/115 308/391/115 316/400/115 +f 313/394/115 321/921/115 322/402/115 +f 312/403/115 311/922/115 319/404/115 +f 378/406/115 377/923/115 385/407/115 +f 375/409/115 383/924/115 384/410/115 +f 374/412/115 373/925/115 381/413/115 +f 372/415/115 355/926/115 379/416/115 +f 355/418/115 378/927/115 386/408/115 +f 376/419/115 384/410/115 385/407/115 +f 374/421/115 382/414/115 383/422/115 +f 372/424/115 380/417/115 381/413/115 +f 395/426/113 399/928/113 400/427/113 +f 398/429/120 402/444/120 399/430/120 +f 401/432/115 402/444/115 398/429/115 +f 396/428/114 400/427/114 401/432/114 +f 420/434/113 418/929/113 414/435/113 +f 419/437/112 421/464/112 424/438/112 +f 400/441/114 408/451/114 410/442/114 +f 401/432/121 405/443/121 404/446/121 +f 405/443/111 410/442/111 409/447/111 +f 404/446/120 409/447/120 407/448/120 +f 399/450/112 407/930/112 408/451/112 +f 406/452/120 413/461/120 415/453/120 +f 403/455/111 414/435/111 413/456/111 +f 411/454/112 415/453/112 416/436/112 +f 412/458/114 416/436/114 414/435/114 +f 419/459/113 420/931/113 416/436/113 +f 417/460/113 419/932/113 415/453/113 +f 418/462/113 417/933/113 413/456/113 +f 423/463/122 424/438/122 421/464/122 +f 418/466/111 423/469/111 422/467/111 +f 418/466/114 420/439/114 424/438/114 +f 417/470/120 422/934/120 421/464/120 +f 447/471/115 446/493/115 441/472/115 +f 431/474/113 432/477/113 428/475/113 +f 432/477/114 448/491/114 443/478/114 +f 435/479/112 436/486/112 434/480/112 +f 439/482/123 440/485/123 437/483/123 +f 435/479/113 437/483/113 440/485/113 +f 434/480/115 439/935/115 438/487/115 +f 436/486/114 440/936/114 439/488/114 +f 435/479/120 433/481/120 438/489/120 +f 448/491/118 447/471/118 444/473/118 +f 442/492/119 441/472/119 446/493/119 +f 445/494/120 431/937/120 427/495/120 +f 455/496/112 467/500/112 466/497/112 +f 456/499/112 468/503/112 467/500/112 +f 430/502/112 457/506/112 468/503/112 +f 429/505/112 458/509/112 457/506/112 +f 426/508/112 459/512/112 458/509/112 +f 425/511/112 460/516/112 459/512/112 +f 425/514/112 449/938/112 461/515/112 +f 449/517/112 450/939/112 462/518/112 +f 450/519/112 451/940/112 463/520/112 +f 452/521/112 464/526/112 463/522/112 +f 452/524/112 453/941/112 465/525/112 +f 454/527/112 466/497/112 465/525/112 +f 490/529/111 491/532/111 479/530/111 +f 491/532/111 492/535/111 480/533/111 +f 492/535/111 482/538/111 477/536/111 +f 482/538/111 481/541/111 476/539/111 +f 481/541/111 483/544/111 475/542/111 +f 483/544/111 484/942/111 474/545/111 +f 474/547/111 484/942/111 485/548/111 +f 473/550/111 485/548/111 486/551/111 +f 472/553/111 486/551/111 487/554/111 +f 487/556/111 488/943/111 470/557/111 +f 470/559/111 488/943/111 489/560/111 +f 489/560/111 490/529/111 478/562/111 +f 512/564/113 516/592/113 506/565/113 +f 506/565/114 516/944/114 515/567/114 +f 516/944/114 517/945/114 515/567/114 +f 517/945/114 514/946/114 515/567/114 +f 495/569/112 498/573/112 497/570/112 +f 493/572/113 500/947/113 498/573/113 +f 496/574/115 497/948/115 499/575/115 +f 510/577/111 514/580/111 517/578/111 +f 510/577/121 499/581/121 514/580/121 +f 499/581/121 509/600/121 515/582/121 +f 498/583/120 502/566/120 501/584/120 +f 504/586/113 518/603/113 520/587/113 +f 502/566/112 506/565/112 505/568/112 +f 499/575/111 500/947/111 493/572/111 +f 512/564/124 500/593/124 516/592/124 +f 500/593/124 511/579/124 517/578/124 +f 511/579/120 500/949/120 499/594/120 +f 497/585/120 501/584/120 509/595/120 +f 512/597/120 502/566/120 498/583/120 +f 501/599/115 505/950/115 515/582/115 +f 508/601/115 521/589/115 519/591/115 +f 503/602/120 519/591/120 518/603/120 +f 507/588/114 520/587/114 521/604/114 +f 521/606/115 525/951/115 527/607/115 +f 523/608/125 522/617/125 518/603/125 +f 524/610/126 526/613/126 527/607/126 +f 520/612/113 522/617/113 526/613/113 +f 520/612/112 524/614/112 525/615/112 +f 523/608/111 527/607/111 526/613/111 +f 557/618/112 556/634/112 589/619/112 +f 573/952/111 572/953/111 574/621/111 +f 574/621/111 575/954/111 576/622/111 +f 576/622/111 577/955/111 578/623/111 +f 578/623/111 579/956/111 573/952/111 +f 573/952/111 574/621/111 578/623/111 +f 587/624/112 584/635/112 580/625/112 +f 581/627/111 585/957/111 586/628/111 +f 586/628/118 587/624/118 583/626/118 +f 561/630/112 593/644/112 594/631/112 +f 563/633/112 595/642/112 589/619/112 +f 584/635/117 585/958/117 581/636/117 +f 559/637/112 591/645/112 592/638/112 +f 558/640/112 557/618/112 588/620/112 +f 563/633/112 562/632/112 594/631/112 +f 560/643/112 592/959/112 593/644/112 +f 558/640/112 590/641/112 591/645/112 +f 598/648/112 596/960/112 597/961/112 +f 597/961/112 603/962/112 598/648/112 +f 603/962/112 602/963/112 598/648/112 +f 602/963/112 601/964/112 598/648/112 +f 601/964/112 600/646/112 598/648/112 +f 622/649/112 621/965/112 635/650/112 +f 623/652/112 622/966/112 634/651/112 +f 624/654/112 623/967/112 633/653/112 +f 625/656/112 624/968/112 632/655/112 +f 626/658/112 625/969/112 631/657/112 +f 627/660/112 626/970/112 630/659/112 +f 616/662/112 627/971/112 629/661/112 +f 617/666/112 618/972/112 638/664/112 +f 618/972/112 619/973/112 638/664/112 +f 619/973/112 637/974/112 638/664/112 +f 638/664/112 639/975/112 649/976/112 +f 649/976/112 650/977/112 651/665/112 +f 651/665/112 607/978/112 606/979/112 +f 606/979/112 605/980/112 651/665/112 +f 605/980/112 617/666/112 651/665/112 +f 638/664/112 649/976/112 651/665/112 +f 652/667/127 664/674/127 683/668/127 +f 604/670/111 640/981/111 641/671/111 +f 682/673/112 683/982/112 664/674/112 +f 615/676/111 641/671/111 642/677/111 +f 694/679/111 656/682/111 652/667/111 +f 693/681/111 657/685/111 656/682/111 +f 692/684/111 658/691/111 657/685/111 +f 614/687/111 642/677/111 643/688/111 +f 691/690/111 659/694/111 658/691/111 +f 690/693/111 660/700/111 659/694/111 +f 613/696/111 643/688/111 644/697/111 +f 689/699/111 661/703/111 660/700/111 +f 688/702/111 662/706/111 661/703/111 +f 696/705/111 663/983/111 662/706/111 +f 612/708/111 644/697/111 645/709/111 +f 684/711/112 676/984/112 674/712/112 +f 611/714/111 645/709/111 646/715/111 +f 610/717/111 646/715/111 647/718/111 +f 676/720/112 677/985/112 673/721/112 +f 609/722/111 647/718/111 648/723/111 +f 621/725/112 620/986/112 636/726/112 +f 648/723/127 636/726/127 620/727/127 +f 677/729/112 678/987/112 672/730/112 +f 678/731/112 679/988/112 671/732/112 +f 679/733/112 680/989/112 670/734/112 +f 697/736/111 698/990/111 654/737/111 +f 698/990/111 699/991/111 654/737/111 +f 699/991/111 653/992/111 654/737/111 +f 654/737/111 655/993/111 665/994/111 +f 665/994/111 666/995/111 667/996/111 +f 667/996/111 685/997/111 686/735/111 +f 686/735/111 687/998/111 697/736/111 +f 654/737/111 665/994/111 667/996/111 +f 667/996/111 686/735/111 654/737/111 +f 680/738/112 681/999/112 669/739/112 +f 681/740/112 682/1000/112 668/675/112 +f 707/741/114 705/748/114 701/742/114 +f 704/744/120 706/747/120 702/745/120 +f 706/747/112 707/741/112 703/743/112 +f 705/748/111 704/1001/111 700/749/111 +f 774/750/112 773/1002/112 772/751/112 +f 772/751/112 779/1003/112 778/752/112 +f 778/752/112 777/1004/112 776/1005/112 +f 776/1005/112 775/1006/112 778/752/112 +f 775/1006/112 774/750/112 778/752/112 +f 789/753/113 791/761/113 790/754/113 +f 797/756/113 799/769/113 798/757/113 +f 789/759/114 793/766/114 795/760/114 +f 790/754/120 794/764/120 792/762/120 +f 791/761/112 795/760/112 794/764/112 +f 788/765/111 792/1007/111 793/766/111 +f 797/767/114 801/774/114 803/768/114 +f 798/757/120 802/772/120 800/770/120 +f 799/769/112 803/768/112 802/772/112 +f 796/773/111 800/1008/111 801/774/111 +f 818/775/113 819/794/113 816/776/113 +f 810/778/113 811/786/113 808/779/113 +f 807/781/114 811/786/114 810/782/114 +f 804/784/120 809/1009/120 808/779/120 +f 806/785/112 808/779/112 811/786/112 +f 805/783/111 810/782/111 809/787/111 +f 815/789/114 819/794/114 818/790/114 +f 812/792/120 817/1010/120 816/776/120 +f 814/793/112 816/776/112 819/794/112 +f 813/791/111 818/790/111 817/795/111 +f 830/797/112 842/801/112 841/798/112 +f 831/800/112 843/804/112 842/801/112 +f 823/803/112 832/807/112 843/804/112 +f 822/806/112 833/810/112 832/807/112 +f 821/809/112 834/813/112 833/810/112 +f 820/812/112 835/817/112 834/813/112 +f 820/815/112 824/1011/112 836/816/112 +f 824/818/112 825/1012/112 837/819/112 +f 825/820/112 826/1013/112 838/821/112 +f 827/822/112 839/827/112 838/823/112 +f 827/825/112 828/1014/112 840/826/112 +f 829/828/112 841/798/112 840/826/112 +f 865/830/111 866/833/111 854/831/111 +f 866/833/111 867/836/111 855/834/111 +f 867/836/111 857/839/111 852/837/111 +f 857/839/111 856/842/111 851/840/111 +f 856/842/111 858/845/111 850/843/111 +f 858/845/111 859/1015/111 849/846/111 +f 849/848/111 859/1015/111 860/849/111 +f 848/851/111 860/849/111 861/852/111 +f 847/854/111 861/852/111 862/855/111 +f 862/857/111 863/1016/111 845/858/111 +f 845/860/111 863/1016/111 864/861/111 +f 864/861/111 865/830/111 853/863/111 +s 1 +f 174/1017/128 151/238/129 162/240/128 +f 163/1018/129 152/265/130 151/267/129 +f 164/1019/130 153/241/131 152/243/130 +f 165/1020/131 154/250/132 153/252/131 +f 166/1021/132 155/259/133 154/261/132 +f 155/271/133 168/1022/134 156/876/134 +f 156/249/134 169/1023/135 157/247/135 +f 169/1024/135 158/871/136 157/256/135 +f 170/1025/136 159/268/137 158/270/136 +f 171/1026/137 160/867/138 159/244/137 +f 160/255/138 173/1027/139 161/253/139 +f 161/264/139 174/1017/128 162/262/128 +f 173/1027/140 198/278/141 174/1017/141 +f 198/282/141 163/1018/142 174/1017/141 +f 163/1018/142 188/285/143 164/1019/143 +f 188/286/143 165/1020/144 164/1019/143 +f 189/290/144 166/1021/145 165/1020/144 +f 166/1021/145 191/293/146 167/1028/146 +f 191/295/146 168/1022/147 167/1028/146 +f 192/296/147 169/1023/148 168/1022/147 +f 169/1024/148 194/300/149 170/1025/149 +f 194/304/149 171/1026/150 170/1025/149 +f 171/1026/150 196/306/151 172/1029/151 +f 172/1029/151 197/309/140 173/1027/140 +f 185/870/152 208/1030/120 184/254/120 +f 182/257/153 205/1031/113 181/258/113 +f 179/872/154 202/1032/114 178/260/114 +f 186/873/155 209/1033/152 185/263/152 +f 176/874/156 199/1034/115 175/266/115 +f 183/875/157 206/1035/153 182/269/153 +f 180/272/127 203/1036/154 179/273/154 +f 175/865/115 210/1037/155 186/239/155 +f 177/866/158 200/1038/156 176/242/156 +f 184/245/120 207/1039/157 183/246/157 +f 181/868/113 204/1040/127 180/248/127 +f 178/869/114 201/1041/158 177/251/158 +f 216/888/155 229/327/115 217/297/115 +f 213/287/157 226/321/120 214/887/120 +f 220/308/114 233/311/154 221/277/154 +f 217/299/115 230/329/156 218/302/156 +f 214/887/120 227/323/152 215/292/152 +f 221/277/154 234/313/127 222/280/127 +f 211/886/113 224/317/153 212/284/153 +f 218/302/156 231/332/158 219/305/158 +f 215/292/152 228/325/155 216/888/155 +f 222/280/127 223/315/113 211/886/113 +f 212/284/153 225/319/157 213/287/157 +f 219/305/158 232/334/114 220/308/114 +f 243/1042/158 256/1043/114 244/1044/114 +f 240/1045/155 253/1046/115 241/1047/115 +f 237/1048/157 250/1049/120 238/1050/120 +f 244/1044/114 257/1051/154 245/1052/154 +f 241/1053/115 254/1054/156 242/1055/156 +f 238/1050/120 251/1056/152 239/1057/152 +f 245/1052/154 258/1058/127 246/1059/127 +f 235/1060/113 248/1061/153 236/1062/153 +f 242/1055/156 255/1063/158 243/1042/158 +f 239/1057/152 252/1064/155 240/1045/155 +f 246/1059/127 247/1065/113 235/1060/113 +f 236/1062/153 249/1066/157 237/1048/157 +f 270/356/127 271/1067/113 259/365/113 +f 260/358/153 273/1068/157 261/337/157 +f 267/340/158 280/1069/114 268/341/114 +f 264/363/155 277/1070/115 265/343/115 +f 261/337/157 274/1071/120 262/346/120 +f 268/341/114 281/1072/154 269/348/154 +f 265/904/115 278/1073/156 266/350/156 +f 262/346/120 275/1074/152 263/353/152 +f 269/348/154 282/1075/127 270/356/127 +f 259/365/113 272/1076/153 260/358/153 +f 266/350/156 279/1077/158 267/340/158 +f 263/353/152 276/1078/155 264/363/155 +f 313/394/114 306/1079/151 305/1080/114 +f 311/922/111 304/1081/126 303/1082/111 +f 309/386/120 302/1083/125 301/1084/120 +f 307/389/112 300/1085/145 299/1086/112 +f 314/392/151 299/1086/112 306/1079/151 +f 312/403/126 305/1080/114 304/1081/126 +f 310/388/125 303/1087/111 302/1083/125 +f 308/391/145 301/1084/120 300/1085/145 +f 321/1088/114 330/1089/159 322/1090/151 +f 319/1091/111 328/1092/160 320/1093/126 +f 317/1094/120 326/1095/161 318/1096/125 +f 315/1097/112 324/1098/162 316/1099/145 +f 322/1090/151 323/1100/163 315/1097/112 +f 320/1093/126 329/1101/164 321/1088/114 +f 318/1096/125 327/1102/165 319/1103/111 +f 316/1099/145 325/1104/166 317/1094/120 +f 326/1105/161 336/1106/124 327/1107/165 +f 324/1098/162 334/1108/167 325/1109/166 +f 330/1089/159 338/1110/168 339/1111/169 +f 328/1112/160 336/1113/124 337/1114/170 +f 326/1105/161 334/1108/167 335/1115/171 +f 324/1098/162 332/1116/148 333/1117/172 +f 323/1100/163 339/1111/169 332/1116/148 +f 328/1112/160 338/1110/168 329/1118/164 +f 339/1111/169 340/1119/173 332/1116/148 +f 337/1114/170 346/1120/174 338/1110/168 +f 336/1106/124 343/1121/175 344/1122/176 +f 333/1117/172 342/1123/177 334/1108/167 +f 338/1110/168 347/1124/178 339/1111/169 +f 336/1113/124 345/1125/179 337/1114/170 +f 335/1115/171 342/1123/177 343/1121/175 +f 332/1116/148 341/1126/180 333/1117/172 +f 344/1127/176 352/1128/181 345/1129/179 +f 342/1130/177 350/1131/182 343/1132/175 +f 340/1119/173 348/1133/183 341/1126/180 +f 347/1124/178 331/1134/184 340/1119/173 +f 345/1129/179 353/1135/185 346/1136/174 +f 343/1132/175 351/1137/186 344/1138/176 +f 341/1126/180 349/1139/187 342/1130/177 +f 346/1136/174 354/1140/188 347/1124/178 +f 354/1140/188 362/1141/189 363/1142/190 +f 352/1143/181 360/1144/142 361/1145/191 +f 349/1146/187 359/1147/192 350/1148/182 +f 348/1133/183 356/1149/121 357/1150/193 +f 354/1140/188 356/1149/121 331/1134/184 +f 353/1151/185 361/1145/191 362/1141/189 +f 351/1152/186 359/1147/192 360/1153/142 +f 348/1133/183 358/1154/194 349/1146/187 +f 362/1141/189 369/1155/195 370/1156/196 +f 360/1153/142 367/1157/197 368/1158/198 +f 358/1154/194 365/1159/199 366/1160/200 +f 362/1141/189 371/1161/201 363/1142/190 +f 360/1144/142 369/1155/195 361/1145/191 +f 358/1154/194 367/1157/197 359/1147/192 +f 357/1150/193 364/1162/202 365/1159/199 +f 363/1142/190 364/1162/202 356/1149/121 +f 365/1159/199 355/1163/111 372/1164/125 +f 371/1161/201 355/1163/111 364/1162/202 +f 370/1165/196 376/1166/151 377/1167/114 +f 368/1168/198 374/1169/145 375/1170/112 +f 366/1171/200 372/1164/125 373/1172/120 +f 370/1165/196 378/1173/126 371/1161/201 +f 368/1174/198 376/1166/151 369/1175/195 +f 366/1171/200 374/1169/145 367/1176/197 +f 381/413/203 388/1177/204 389/1178/203 +f 385/407/205 394/1179/206 386/408/206 +f 383/924/207 392/1180/208 384/410/208 +f 381/413/203 390/1181/209 382/414/209 +f 380/417/204 387/1182/210 388/1183/204 +f 386/408/206 387/1184/210 379/416/210 +f 385/407/205 392/1185/208 393/1186/205 +f 383/422/207 390/1187/209 391/1188/207 +f 466/497/114 489/560/158 465/525/158 +f 459/512/157 481/541/153 458/509/153 +f 467/500/154 490/529/114 466/497/114 +f 460/516/120 483/544/157 459/512/157 +f 468/503/127 491/532/154 467/500/154 +f 461/515/152 484/942/120 460/516/120 +f 457/506/113 492/535/127 468/503/127 +f 462/518/155 485/548/152 461/515/152 +f 463/520/115 486/551/155 462/518/155 +f 464/526/156 487/556/115 463/522/115 +f 465/525/158 488/943/156 464/526/156 +f 458/509/153 482/538/113 457/506/113 +f 533/1189/158 539/1190/211 532/1191/211 +f 530/1192/157 536/1193/212 529/1194/212 +f 534/1195/213 540/1196/158 533/1189/158 +f 531/1197/214 537/1198/157 530/1192/157 +f 529/1194/212 535/1199/127 528/1200/127 +f 528/1200/127 541/1201/213 534/1195/213 +f 547/1202/154 553/1203/215 546/1204/215 +f 544/1205/152 550/1206/216 543/1207/216 +f 548/1208/217 554/1209/154 547/1202/154 +f 545/1210/218 551/1211/152 544/1205/152 +f 543/1207/216 549/1212/153 542/1213/153 +f 542/1213/153 555/1214/217 548/1208/217 +f 567/1215/219 576/1216/121 575/1217/219 +f 557/618/117 565/1218/113 556/634/113 +f 556/634/113 571/1219/116 563/633/116 +f 562/632/114 569/1220/118 561/630/118 +f 560/639/115 567/1215/119 559/637/119 +f 558/640/120 564/1221/117 557/618/117 +f 563/633/116 570/1222/114 562/632/114 +f 561/630/118 568/1223/115 560/643/115 +f 559/637/119 566/1224/120 558/640/120 +f 566/1224/125 572/1225/220 564/1221/220 +f 571/1219/221 578/1226/126 570/1222/126 +f 569/1220/222 576/1227/121 568/1223/121 +f 566/1224/125 575/1228/219 574/1229/125 +f 564/1221/220 573/1230/124 565/1218/124 +f 565/1218/124 579/1231/221 571/1219/221 +f 570/1222/126 577/1232/222 569/1220/222 +f 593/644/117 602/1233/120 594/631/120 +f 591/645/116 600/1234/113 592/638/113 +f 588/620/118 598/1235/114 590/641/114 +f 594/631/120 603/1236/119 595/642/119 +f 592/959/113 601/1237/117 593/644/117 +f 590/641/114 599/1238/116 591/645/116 +f 589/619/115 596/1239/118 588/620/118 +f 595/642/119 597/1240/115 589/619/115 +f 610/1241/113 623/652/127 611/1242/127 +f 614/1243/158 627/660/156 615/1244/156 +f 611/1245/127 624/654/154 612/1246/154 +f 608/1247/117 621/725/153 609/1248/153 +f 615/1249/156 616/662/223 604/1250/223 +f 612/1251/154 625/656/114 613/1252/114 +f 609/1253/153 622/649/113 610/1254/113 +f 613/1255/114 626/658/158 614/1256/158 +f 635/650/156 646/715/115 634/651/115 +f 632/655/152 643/688/120 631/657/120 +f 629/661/153 640/981/212 628/663/212 +f 636/726/118 647/718/156 635/650/156 +f 633/653/155 644/697/152 632/655/152 +f 630/659/157 641/671/153 629/661/153 +f 634/651/115 645/709/155 633/653/155 +f 631/657/120 642/677/157 630/659/157 +f 672/730/120 661/703/157 673/721/157 +f 669/739/115 658/691/155 670/734/155 +f 673/721/157 662/706/153 674/712/153 +f 670/734/155 659/694/152 671/732/152 +f 664/674/118 656/682/156 668/675/156 +f 674/712/153 663/983/212 675/713/212 +f 671/732/152 660/700/120 672/730/120 +f 668/675/156 657/685/115 669/739/115 +f 690/1257/114 677/729/158 689/1258/158 +f 694/1259/153 681/740/113 693/1260/113 +f 691/1261/154 678/731/114 690/1262/114 +f 688/1263/156 684/711/223 696/1264/223 +f 695/1265/117 682/673/153 694/1266/153 +f 692/1267/127 679/733/154 691/1268/154 +f 689/1269/158 676/720/156 688/1270/156 +f 693/1271/113 680/738/127 692/1272/127 +f 666/1273/155 649/1274/115 667/1275/115 +f 655/1276/120 651/1277/152 665/1278/152 +f 699/1279/113 618/1280/127 617/1281/113 +f 686/1282/158 637/1283/114 687/1284/114 +f 667/1285/115 639/1286/156 685/1287/156 +f 654/1288/157 607/1289/120 655/1276/120 +f 697/1290/154 637/1283/114 619/1291/154 +f 685/1287/156 638/1292/158 686/1282/158 +f 653/1293/153 606/1294/157 654/1288/157 +f 665/1278/152 650/1295/155 666/1273/155 +f 698/1296/127 619/1291/154 618/1280/127 +f 699/1279/113 605/1297/153 653/1293/153 +f 723/1298/179 708/1299/113 715/1300/116 +f 721/1301/178 714/1302/114 713/1303/118 +f 719/1304/180 712/1305/115 711/1306/119 +f 717/1307/175 710/1308/120 709/1309/117 +f 722/1310/174 715/1300/116 714/1302/114 +f 720/1311/173 713/1303/118 712/1305/115 +f 718/1312/177 711/1306/119 710/1308/120 +f 716/1313/176 709/1309/117 708/1314/113 +f 726/1315/171 718/1316/177 717/1317/175 +f 722/1318/174 732/1319/170 723/1320/179 +f 729/1321/148 721/1322/178 720/1311/173 +f 727/1323/167 719/1324/180 718/1316/177 +f 716/1325/176 726/1315/171 717/1317/175 +f 732/1319/170 716/1326/176 723/1320/179 +f 721/1322/178 731/1327/168 722/1318/174 +f 719/1324/180 729/1321/148 720/1311/173 +f 731/1328/168 740/1329/160 732/1330/170 +f 729/1321/148 738/1331/159 730/1332/169 +f 735/1333/166 728/1334/172 727/1335/167 +f 725/1336/124 734/1337/161 726/1338/171 +f 740/1329/160 725/1339/124 732/1330/170 +f 730/1332/169 739/1340/164 731/1328/168 +f 736/1341/162 729/1321/148 728/1334/172 +f 734/1337/161 727/1335/167 726/1338/171 +f 734/1342/161 743/1343/224 735/1344/166 +f 747/1345/225 740/1346/160 739/1347/164 +f 737/1348/163 746/1349/226 738/1350/159 +f 743/1343/224 736/1351/162 735/1344/166 +f 733/1352/165 742/1353/227 734/1342/161 +f 748/1354/228 733/1355/165 740/1346/160 +f 746/1349/226 739/1347/164 738/1350/159 +f 744/1356/229 737/1348/163 736/1351/162 +f 751/1357/117 759/1358/230 758/1359/231 +f 749/1360/116 761/1361/232 760/1362/233 +f 771/1363/118 755/1364/234 762/1365/235 +f 754/1366/115 756/1367/236 755/1368/234 +f 752/1369/120 758/1359/231 757/1370/237 +f 759/1358/230 749/1360/116 760/1362/233 +f 724/1371/114 762/1365/235 761/1361/232 +f 756/1367/236 752/1369/120 757/1370/237 +f 763/1372/238 755/1373/234 770/1374/121 +f 760/1375/233 764/1376/239 765/1377/240 +f 758/1378/231 766/1379/142 767/1380/241 +f 769/1381/242 757/1382/237 768/1383/243 +f 761/1384/232 763/1372/238 764/1376/239 +f 766/1379/142 760/1375/233 765/1377/240 +f 757/1382/237 767/1380/241 768/1383/243 +f 770/1385/121 756/1386/236 769/1381/242 +f 741/1387/244 769/1388/242 742/1389/227 +f 768/1390/243 744/1391/229 743/1392/224 +f 745/1393/245 765/1394/240 746/1395/226 +f 764/1396/239 748/1397/228 747/1398/225 +f 742/1389/227 768/1390/243 743/1392/224 +f 767/1399/241 745/1393/245 744/1391/229 +f 746/1395/226 764/1396/239 747/1398/225 +f 763/1400/238 741/1401/244 748/1397/228 +f 779/1402/116 786/1403/114 778/1404/114 +f 777/1405/118 784/1406/115 776/1407/115 +f 775/1408/119 782/1409/120 774/1410/120 +f 773/1411/117 781/1412/113 772/1413/113 +f 772/1413/113 787/1414/116 779/1402/116 +f 778/1404/114 785/1415/118 777/1405/118 +f 776/1416/115 783/1417/119 775/1408/119 +f 774/1410/120 780/1418/117 773/1411/117 +f 841/798/114 864/861/158 840/826/158 +f 834/813/157 856/842/153 833/810/153 +f 842/801/154 865/830/114 841/798/114 +f 835/817/120 858/845/157 834/813/157 +f 843/804/127 866/833/154 842/801/154 +f 836/816/152 859/1015/120 835/817/120 +f 832/807/113 867/836/127 843/804/127 +f 837/819/155 860/849/152 836/816/152 +f 838/821/115 861/852/155 837/819/155 +f 839/827/156 862/857/115 838/823/115 +f 840/826/158 863/1016/156 839/827/156 +f 833/810/153 857/839/113 832/807/113 +f 388/1183/246 387/1182/142 513/1419/113 +f 387/1184/142 394/1420/247 513/1421/113 +f 394/1179/247 393/1422/117 513/1423/113 +f 393/1186/117 392/1185/248 513/1424/113 +f 392/1180/248 391/1425/124 513/1426/113 +f 391/1188/124 390/1187/249 513/1427/113 +f 390/1181/249 389/1428/116 513/1429/113 +f 389/1178/116 388/1177/246 513/1430/113 +f 174/1017/128 163/1018/129 151/238/129 +f 163/1018/129 164/1019/130 152/265/130 +f 164/1019/130 165/1020/131 153/241/131 +f 165/1020/131 166/1021/132 154/250/132 +f 166/1021/132 167/1028/133 155/259/133 +f 155/271/133 167/1028/133 168/1022/134 +f 156/249/134 168/1022/134 169/1023/135 +f 169/1024/135 170/1025/136 158/871/136 +f 170/1025/136 171/1026/137 159/268/137 +f 171/1026/137 172/1029/138 160/867/138 +f 160/255/138 172/1029/138 173/1027/139 +f 161/264/139 173/1027/139 174/1017/128 +f 173/1027/140 197/279/140 198/278/141 +f 198/282/141 187/281/142 163/1018/142 +f 163/1018/142 187/283/142 188/285/143 +f 188/286/143 189/288/144 165/1020/144 +f 189/290/144 190/289/145 166/1021/145 +f 166/1021/145 190/291/145 191/293/146 +f 191/295/146 192/294/147 168/1022/147 +f 192/296/147 193/298/148 169/1023/148 +f 169/1024/148 193/301/148 194/300/149 +f 194/304/149 195/303/150 171/1026/150 +f 171/1026/150 195/307/150 196/306/151 +f 172/1029/151 196/310/151 197/309/140 +f 185/870/152 209/1431/152 208/1030/120 +f 182/257/153 206/1432/153 205/1031/113 +f 179/872/154 203/1433/154 202/1032/114 +f 186/873/155 210/1434/155 209/1033/152 +f 176/874/156 200/1435/156 199/1034/115 +f 183/875/157 207/1436/157 206/1035/153 +f 180/272/127 204/1437/127 203/1036/154 +f 175/865/115 199/1438/115 210/1037/155 +f 177/866/158 201/1439/158 200/1038/156 +f 184/245/120 208/1440/120 207/1039/157 +f 181/868/113 205/1441/113 204/1040/127 +f 178/869/114 202/1442/114 201/1041/158 +f 216/888/155 228/325/155 229/327/115 +f 213/287/157 225/319/157 226/321/120 +f 220/308/114 232/334/114 233/311/154 +f 217/299/115 229/330/115 230/329/156 +f 214/887/120 226/321/120 227/323/152 +f 221/277/154 233/311/154 234/313/127 +f 211/886/113 223/315/113 224/317/153 +f 218/302/156 230/329/156 231/332/158 +f 215/292/152 227/323/152 228/325/155 +f 222/280/127 234/313/127 223/315/113 +f 212/284/153 224/317/153 225/319/157 +f 219/305/158 231/332/158 232/334/114 +f 243/1042/158 255/1063/158 256/1043/114 +f 240/1045/155 252/1064/155 253/1046/115 +f 237/1048/157 249/1066/157 250/1049/120 +f 244/1044/114 256/1043/114 257/1051/154 +f 241/1053/115 253/1443/115 254/1054/156 +f 238/1050/120 250/1049/120 251/1056/152 +f 245/1052/154 257/1051/154 258/1058/127 +f 235/1060/113 247/1065/113 248/1061/153 +f 242/1055/156 254/1054/156 255/1063/158 +f 239/1057/152 251/1056/152 252/1064/155 +f 246/1059/127 258/1058/127 247/1065/113 +f 236/1062/153 248/1061/153 249/1066/157 +f 270/356/127 282/1075/127 271/1067/113 +f 260/358/153 272/1076/153 273/1068/157 +f 267/340/158 279/1077/158 280/1069/114 +f 264/363/155 276/1078/155 277/1070/115 +f 261/337/157 273/1068/157 274/1071/120 +f 268/341/114 280/1069/114 281/1072/154 +f 265/904/115 277/1444/115 278/1073/156 +f 262/346/120 274/1071/120 275/1074/152 +f 269/348/154 281/1072/154 282/1075/127 +f 259/365/113 271/1067/113 272/1076/153 +f 266/350/156 278/1073/156 279/1077/158 +f 263/353/152 275/1074/152 276/1078/155 +f 313/394/114 314/392/151 306/1079/151 +f 311/922/111 312/403/126 304/1081/126 +f 309/386/120 310/388/125 302/1083/125 +f 307/389/112 308/391/145 300/1085/145 +f 314/392/151 307/389/112 299/1086/112 +f 312/403/126 313/394/114 305/1080/114 +f 310/388/125 311/397/111 303/1087/111 +f 308/391/145 309/386/120 301/1084/120 +f 321/1088/114 329/1101/164 330/1089/159 +f 319/1091/111 327/1445/165 328/1092/160 +f 317/1094/120 325/1104/166 326/1095/161 +f 315/1097/112 323/1100/163 324/1098/162 +f 322/1090/151 330/1089/159 323/1100/163 +f 320/1093/126 328/1092/160 329/1101/164 +f 318/1096/125 326/1095/161 327/1102/165 +f 316/1099/145 324/1098/162 325/1104/166 +f 326/1105/161 335/1115/171 336/1106/124 +f 324/1098/162 333/1117/172 334/1108/167 +f 330/1089/159 329/1118/164 338/1110/168 +f 328/1112/160 327/1446/165 336/1113/124 +f 326/1105/161 325/1109/166 334/1108/167 +f 324/1098/162 323/1100/163 332/1116/148 +f 323/1100/163 330/1089/159 339/1111/169 +f 328/1112/160 337/1114/170 338/1110/168 +f 339/1111/169 347/1124/178 340/1119/173 +f 337/1114/170 345/1125/179 346/1120/174 +f 336/1106/124 335/1115/171 343/1121/175 +f 333/1117/172 341/1126/180 342/1123/177 +f 338/1110/168 346/1120/174 347/1124/178 +f 336/1113/124 344/1447/176 345/1125/179 +f 335/1115/171 334/1108/167 342/1123/177 +f 332/1116/148 340/1119/173 341/1126/180 +f 344/1127/176 351/1448/186 352/1128/181 +f 342/1130/177 349/1139/187 350/1131/182 +f 340/1119/173 331/1134/184 348/1133/183 +f 347/1124/178 354/1140/188 331/1134/184 +f 345/1129/179 352/1128/181 353/1135/185 +f 343/1132/175 350/1131/182 351/1137/186 +f 341/1126/180 348/1133/183 349/1139/187 +f 346/1136/174 353/1135/185 354/1140/188 +f 354/1140/188 353/1151/185 362/1141/189 +f 352/1143/181 351/1449/186 360/1144/142 +f 349/1146/187 358/1154/194 359/1147/192 +f 348/1133/183 331/1134/184 356/1149/121 +f 354/1140/188 363/1142/190 356/1149/121 +f 353/1151/185 352/1143/181 361/1145/191 +f 351/1152/186 350/1148/182 359/1147/192 +f 348/1133/183 357/1150/193 358/1154/194 +f 362/1141/189 361/1145/191 369/1155/195 +f 360/1153/142 359/1147/192 367/1157/197 +f 358/1154/194 357/1150/193 365/1159/199 +f 362/1141/189 370/1156/196 371/1161/201 +f 360/1144/142 368/1450/198 369/1155/195 +f 358/1154/194 366/1160/200 367/1157/197 +f 357/1150/193 356/1149/121 364/1162/202 +f 363/1142/190 371/1161/201 364/1162/202 +f 365/1159/199 364/1162/202 355/1163/111 +f 371/1161/201 378/1173/126 355/1163/111 +f 370/1165/196 369/1175/195 376/1166/151 +f 368/1168/198 367/1176/197 374/1169/145 +f 366/1171/200 365/1159/199 372/1164/125 +f 370/1165/196 377/1167/114 378/1173/126 +f 368/1174/198 375/1451/112 376/1166/151 +f 366/1171/200 373/1172/120 374/1169/145 +f 381/413/203 380/417/204 388/1177/204 +f 385/407/205 393/1422/205 394/1179/206 +f 383/924/207 391/1425/207 392/1180/208 +f 381/413/203 389/1428/203 390/1181/209 +f 380/417/204 379/416/210 387/1182/210 +f 386/408/206 394/1420/206 387/1184/210 +f 385/407/205 384/410/208 392/1185/208 +f 383/422/207 382/414/209 390/1187/209 +f 466/497/114 490/529/114 489/560/158 +f 459/512/157 483/544/157 481/541/153 +f 467/500/154 491/532/154 490/529/114 +f 460/516/120 484/942/120 483/544/157 +f 468/503/127 492/535/127 491/532/154 +f 461/515/152 485/548/152 484/942/120 +f 457/506/113 482/538/113 492/535/127 +f 462/518/155 486/551/155 485/548/152 +f 463/520/115 487/554/115 486/551/155 +f 464/526/156 488/943/156 487/556/115 +f 465/525/158 489/560/158 488/943/156 +f 458/509/153 481/541/153 482/538/113 +f 533/1189/158 540/1196/158 539/1190/211 +f 530/1192/157 537/1198/157 536/1193/212 +f 534/1195/213 541/1201/213 540/1196/158 +f 531/1197/214 538/1452/214 537/1198/157 +f 529/1194/212 536/1193/212 535/1199/127 +f 528/1200/127 535/1199/127 541/1201/213 +f 547/1202/154 554/1209/154 553/1203/215 +f 544/1205/152 551/1211/152 550/1206/216 +f 548/1208/217 555/1214/217 554/1209/154 +f 545/1210/218 552/1453/218 551/1211/152 +f 543/1207/216 550/1206/216 549/1212/153 +f 542/1213/153 549/1212/153 555/1214/217 +f 567/1215/219 568/1454/121 576/1216/121 +f 557/618/117 564/1221/117 565/1218/113 +f 556/634/113 565/1218/113 571/1219/116 +f 562/632/114 570/1222/114 569/1220/118 +f 560/639/115 568/1454/115 567/1215/119 +f 558/640/120 566/1224/120 564/1221/117 +f 563/633/116 571/1219/116 570/1222/114 +f 561/630/118 569/1220/118 568/1223/115 +f 559/637/119 567/1215/119 566/1224/120 +f 566/1224/125 574/1455/125 572/1225/220 +f 571/1219/221 579/1456/221 578/1226/126 +f 569/1220/222 577/1457/222 576/1227/121 +f 566/1224/125 567/1215/219 575/1228/219 +f 564/1221/220 572/1458/220 573/1230/124 +f 565/1218/124 573/1459/124 579/1231/221 +f 570/1222/126 578/1460/126 577/1232/222 +f 593/644/117 601/1237/117 602/1233/120 +f 591/645/116 599/1238/116 600/1234/113 +f 588/620/118 596/1239/118 598/1235/114 +f 594/631/120 602/1233/120 603/1236/119 +f 592/959/113 600/1461/113 601/1237/117 +f 590/641/114 598/1235/114 599/1238/116 +f 589/619/115 597/1240/115 596/1239/118 +f 595/642/119 603/1236/119 597/1240/115 +f 610/1241/113 622/966/113 623/652/127 +f 614/1243/158 626/970/158 627/660/156 +f 611/1245/127 623/967/127 624/654/154 +f 608/1247/117 620/986/117 621/725/153 +f 615/1249/156 627/971/156 616/662/223 +f 612/1251/154 624/968/154 625/656/114 +f 609/1253/153 621/965/153 622/649/113 +f 613/1255/114 625/969/114 626/658/158 +f 635/650/156 647/718/156 646/715/115 +f 632/655/152 644/697/152 643/688/120 +f 629/661/153 641/671/153 640/981/212 +f 636/726/118 648/723/118 647/718/156 +f 633/653/155 645/709/155 644/697/152 +f 630/659/157 642/677/157 641/671/153 +f 634/651/115 646/715/115 645/709/155 +f 631/657/120 643/688/120 642/677/157 +f 672/730/120 660/700/120 661/703/157 +f 669/739/115 657/685/115 658/691/155 +f 673/721/157 661/703/157 662/706/153 +f 670/734/155 658/691/155 659/694/152 +f 664/674/118 652/667/118 656/682/156 +f 674/712/153 662/706/153 663/983/212 +f 671/732/152 659/694/152 660/700/120 +f 668/675/156 656/682/156 657/685/115 +f 690/1257/114 678/987/114 677/729/158 +f 694/1259/153 682/1000/153 681/740/113 +f 691/1261/154 679/988/154 678/731/114 +f 688/1263/156 676/984/156 684/711/223 +f 695/1265/117 683/982/117 682/673/153 +f 692/1267/127 680/989/127 679/733/154 +f 689/1269/158 677/985/158 676/720/156 +f 693/1271/113 681/999/113 680/738/127 +f 666/1273/155 650/1295/155 649/1274/115 +f 655/1276/120 607/1289/120 651/1277/152 +f 699/1279/113 698/1296/127 618/1280/127 +f 686/1282/158 638/1292/158 637/1283/114 +f 667/1285/115 649/1462/115 639/1286/156 +f 654/1288/157 606/1294/157 607/1289/120 +f 697/1290/154 687/1284/114 637/1283/114 +f 685/1287/156 639/1286/156 638/1292/158 +f 653/1293/153 605/1297/153 606/1294/157 +f 665/1278/152 651/1277/152 650/1295/155 +f 698/1296/127 697/1290/154 619/1291/154 +f 699/1279/113 617/1281/113 605/1297/153 +f 723/1298/179 716/1463/176 708/1299/113 +f 721/1301/178 722/1310/174 714/1302/114 +f 719/1304/180 720/1311/173 712/1305/115 +f 717/1307/175 718/1312/177 710/1308/120 +f 722/1310/174 723/1298/179 715/1300/116 +f 720/1311/173 721/1301/178 713/1303/118 +f 718/1312/177 719/1304/180 711/1306/119 +f 716/1313/176 717/1307/175 709/1309/117 +f 726/1315/171 727/1323/167 718/1316/177 +f 722/1318/174 731/1327/168 732/1319/170 +f 729/1321/148 730/1464/169 721/1322/178 +f 727/1323/167 728/1465/172 719/1324/180 +f 716/1325/176 725/1466/124 726/1315/171 +f 732/1319/170 725/1467/124 716/1326/176 +f 721/1322/178 730/1464/169 731/1327/168 +f 719/1324/180 728/1465/172 729/1321/148 +f 731/1328/168 739/1340/164 740/1329/160 +f 729/1321/148 737/1348/163 738/1331/159 +f 735/1333/166 736/1341/162 728/1334/172 +f 725/1336/124 733/1468/165 734/1337/161 +f 740/1329/160 733/1469/165 725/1339/124 +f 730/1332/169 738/1331/159 739/1340/164 +f 736/1341/162 737/1348/163 729/1321/148 +f 734/1337/161 735/1333/166 727/1335/167 +f 734/1342/161 742/1353/227 743/1343/224 +f 747/1345/225 748/1354/228 740/1346/160 +f 737/1348/163 745/1393/245 746/1349/226 +f 743/1343/224 744/1356/229 736/1351/162 +f 733/1352/165 741/1470/244 742/1353/227 +f 748/1354/228 741/1471/244 733/1355/165 +f 746/1349/226 747/1345/225 739/1347/164 +f 744/1356/229 745/1393/245 737/1348/163 +f 751/1357/117 750/1472/113 759/1358/230 +f 749/1360/116 724/1371/114 761/1361/232 +f 771/1363/118 754/1473/115 755/1364/234 +f 754/1366/115 753/1474/119 756/1367/236 +f 752/1369/120 751/1357/117 758/1359/231 +f 759/1358/230 750/1472/113 749/1360/116 +f 724/1371/114 771/1363/118 762/1365/235 +f 756/1367/236 753/1474/119 752/1369/120 +f 763/1372/238 762/1475/235 755/1373/234 +f 760/1375/233 761/1384/232 764/1376/239 +f 758/1378/231 759/1358/230 766/1379/142 +f 769/1381/242 756/1386/236 757/1382/237 +f 761/1384/232 762/1475/235 763/1372/238 +f 766/1379/142 759/1358/230 760/1375/233 +f 757/1382/237 758/1378/231 767/1380/241 +f 770/1385/121 755/1476/234 756/1386/236 +f 741/1387/244 770/1477/121 769/1388/242 +f 768/1390/243 767/1399/241 744/1391/229 +f 745/1393/245 766/1379/142 765/1394/240 +f 764/1396/239 763/1400/238 748/1397/228 +f 742/1389/227 769/1388/242 768/1390/243 +f 767/1399/241 766/1379/142 745/1393/245 +f 746/1395/226 765/1394/240 764/1396/239 +f 763/1400/238 770/1478/121 741/1401/244 +f 779/1402/116 787/1414/116 786/1403/114 +f 777/1405/118 785/1415/118 784/1406/115 +f 775/1408/119 783/1417/119 782/1409/120 +f 773/1411/117 780/1418/117 781/1412/113 +f 772/1413/113 781/1412/113 787/1414/116 +f 778/1404/114 786/1403/114 785/1415/118 +f 776/1416/115 784/1479/115 783/1417/119 +f 774/1410/120 782/1409/120 780/1418/117 +f 841/798/114 865/830/114 864/861/158 +f 834/813/157 858/845/157 856/842/153 +f 842/801/154 866/833/154 865/830/114 +f 835/817/120 859/1015/120 858/845/157 +f 843/804/127 867/836/127 866/833/154 +f 836/816/152 860/849/152 859/1015/120 +f 832/807/113 857/839/113 867/836/127 +f 837/819/155 861/852/155 860/849/152 +f 838/821/115 862/855/115 861/852/155 +f 839/827/156 863/1016/156 862/857/115 +f 840/826/158 864/861/158 863/1016/156 +f 833/810/153 856/842/153 857/839/113 diff --git a/src/main/resources/assets/hbm/models/weapons/flaregun.obj b/src/main/resources/assets/hbm/models/weapons/flaregun.obj new file mode 100644 index 000000000..8d080c39a --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/flaregun.obj @@ -0,0 +1,2850 @@ +# Blender v2.79 (sub 0) OBJ File: 'flaregun.blend' +# www.blender.org +o Flare +v 0.882965 4.591380 -2.458135 +v 0.509780 4.964565 -2.458135 +v 0.000000 5.101160 -2.458135 +v -0.509780 4.964565 -2.458135 +v -0.882965 4.591380 -2.458135 +v -1.019560 4.081600 -2.458135 +v -0.882965 3.571820 -2.458135 +v -0.509780 3.198636 -2.458135 +v 0.000000 3.062041 -2.458135 +v 0.509780 3.198636 -2.458135 +v 1.019560 4.081600 -2.458135 +v 0.882964 3.571820 -2.458135 +v 0.882965 4.591380 -2.128838 +v 0.509780 4.964565 -2.128838 +v 0.000000 5.101160 -2.128838 +v -0.509780 4.964565 -2.128838 +v -0.882965 4.591380 -2.128838 +v -1.019560 4.081600 -2.128838 +v -0.882965 3.571820 -2.128838 +v -0.509780 3.198636 -2.128838 +v 0.000000 3.062041 -2.128838 +v 0.509780 3.198636 -2.128838 +v 1.019560 4.081600 -2.128838 +v 0.882964 3.571820 -2.128838 +v 0.767825 4.524904 -2.128838 +v 0.443304 4.849426 -2.128838 +v -0.000000 4.968208 -2.128838 +v -0.443304 4.849426 -2.128838 +v -0.767825 4.524904 -2.128838 +v -0.886608 4.081600 -2.128838 +v -0.767825 3.638296 -2.128838 +v -0.443304 3.313776 -2.128838 +v -0.000000 3.194993 -2.128838 +v 0.443304 3.313776 -2.128838 +v 0.886608 4.081600 -2.128838 +v 0.767824 3.638296 -2.128838 +v 0.767825 4.524904 2.191458 +v 0.443304 4.849426 2.191458 +v -0.000000 4.968208 2.191458 +v -0.443304 4.849426 2.191458 +v -0.767825 4.524904 2.191458 +v -0.886608 4.081600 2.191458 +v -0.767825 3.638296 2.191458 +v -0.443304 3.313776 2.191458 +v -0.000000 3.194993 2.191458 +v 0.443304 3.313776 2.191458 +v 0.886608 4.081600 2.191458 +v 0.767824 3.638296 2.191458 +vt 0.112500 0.250000 +vt 0.115000 0.236667 +vt 0.115000 0.250000 +vt 0.115000 0.223333 +vt 0.112500 0.210000 +vt 0.115000 0.210000 +vt 0.115000 0.183333 +vt 0.112500 0.196667 +vt 0.112500 0.183333 +vt 0.112500 0.263333 +vt 0.115000 0.263333 +vt 0.115000 0.196667 +vt 0.112500 0.290000 +vt 0.115000 0.276667 +vt 0.115000 0.290000 +vt 0.112500 0.316667 +vt 0.115000 0.303333 +vt 0.115000 0.316667 +vt 0.112500 0.223333 +vt 0.112500 0.276667 +vt 0.115000 0.170000 +vt 0.112500 0.170000 +vt 0.115000 0.156667 +vt 0.146256 0.253555 +vt 0.119988 0.233333 +vt 0.146256 0.213112 +vt 0.149838 0.160614 +vt 0.149838 0.206053 +vt 0.120324 0.183333 +vt 0.112500 0.236667 +vt 0.112500 0.303333 +vt 0.112500 0.156667 +vt 0.152666 0.221658 +vt 0.155012 0.233333 +vt 0.152666 0.245008 +vt 0.137500 0.256683 +vt 0.128744 0.253555 +vt 0.122334 0.245008 +vt 0.122334 0.221658 +vt 0.128744 0.213112 +vt 0.137500 0.209983 +vt 0.122960 0.170216 +vt 0.130162 0.160614 +vt 0.140000 0.157099 +vt 0.157039 0.170216 +vt 0.159675 0.183333 +vt 0.157039 0.196450 +vt 0.140000 0.209567 +vt 0.130162 0.206053 +vt 0.122960 0.196450 +vt 0.120000 0.290000 +vt 0.120000 0.303333 +vt 0.120000 0.263333 +vt 0.120000 0.276667 +vt 0.120000 0.170000 +vt 0.120000 0.183333 +vt 0.120000 0.156667 +vt 0.120000 0.236667 +vt 0.120000 0.250000 +vt 0.120000 0.210000 +vt 0.120000 0.223333 +vt 0.120000 0.196667 +vt 0.120000 0.316667 +vt 0.025000 0.250000 +vt 0.025000 0.223333 +vt 0.025000 0.183333 +vt 0.025000 0.263333 +vt 0.025000 0.196667 +vt 0.025000 0.290000 +vt 0.025000 0.316667 +vt 0.025000 0.236667 +vt 0.025000 0.303333 +vt 0.025000 0.276667 +vt 0.025000 0.170000 +vt 0.025000 0.210000 +vt 0.025000 0.156667 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +s off +f 28/1/1 15/2/1 16/3/1 +f 14/4/1 25/5/1 13/6/1 +f 24/7/1 35/8/1 36/9/1 +f 29/10/1 16/3/1 17/11/1 +f 23/12/1 25/5/1 35/8/1 +f 31/13/1 18/14/1 19/15/1 +f 33/16/1 20/17/1 21/18/1 +f 15/2/1 26/19/1 14/4/1 +f 20/17/1 31/13/1 19/15/1 +f 30/20/1 17/11/1 18/14/1 +f 36/9/1 22/21/1 24/7/1 +f 34/22/1 21/23/1 22/21/1 +f 38/24/1 42/25/1 46/26/1 +f 8/27/2 4/28/2 11/29/2 +f 28/1/1 27/30/1 15/2/1 +f 14/4/1 26/19/1 25/5/1 +f 24/7/1 23/12/1 35/8/1 +f 29/10/1 28/1/1 16/3/1 +f 23/12/1 13/6/1 25/5/1 +f 31/13/1 30/20/1 18/14/1 +f 33/16/1 32/31/1 20/17/1 +f 15/2/1 27/30/1 26/19/1 +f 20/17/1 32/31/1 31/13/1 +f 30/20/1 29/10/1 17/11/1 +f 36/9/1 34/22/1 22/21/1 +f 34/22/1 33/32/1 21/23/1 +f 46/26/1 48/33/1 47/34/1 +f 47/34/1 37/35/1 46/26/1 +f 37/35/1 38/24/1 46/26/1 +f 38/24/1 39/36/1 42/25/1 +f 39/36/1 40/37/1 42/25/1 +f 40/37/1 41/38/1 42/25/1 +f 42/25/1 43/39/1 44/40/1 +f 44/40/1 45/41/1 42/25/1 +f 45/41/1 46/26/1 42/25/1 +f 11/29/2 12/42/2 10/43/2 +f 10/43/2 9/44/2 11/29/2 +f 9/44/2 8/27/2 11/29/2 +f 8/27/2 7/45/2 6/46/2 +f 6/46/2 5/47/2 4/28/2 +f 4/28/2 3/48/2 11/29/2 +f 3/48/2 2/49/2 11/29/2 +f 2/49/2 1/50/2 11/29/2 +f 8/27/2 6/46/2 4/28/2 +s 1 +f 20/17/3 7/51/4 8/52/3 +f 18/14/5 5/53/6 6/54/5 +f 24/7/7 10/55/8 12/56/7 +f 22/21/8 9/57/9 10/55/8 +f 16/3/10 3/58/11 4/59/10 +f 14/4/12 1/60/13 2/61/12 +f 11/62/14 24/7/7 12/56/7 +f 17/11/6 4/59/10 5/53/6 +f 1/60/13 23/12/14 11/62/14 +f 19/15/4 6/54/5 7/51/4 +f 21/18/9 8/52/3 9/63/9 +f 15/2/11 2/61/12 3/58/11 +f 40/64/10 27/30/11 28/1/10 +f 38/65/12 25/5/13 26/19/12 +f 35/8/14 48/66/7 36/9/7 +f 41/67/6 28/1/10 29/10/6 +f 25/5/13 47/68/14 35/8/14 +f 43/69/4 30/20/5 31/13/4 +f 45/70/9 32/31/3 33/16/9 +f 39/71/11 26/19/12 27/30/11 +f 44/72/3 31/13/4 32/31/3 +f 42/73/5 29/10/6 30/20/5 +f 48/66/7 34/22/8 36/9/7 +f 46/74/8 33/32/9 34/22/8 +f 20/17/3 19/15/4 7/51/4 +f 18/14/5 17/11/6 5/53/6 +f 24/7/7 22/21/8 10/55/8 +f 22/21/8 21/23/9 9/57/9 +f 16/3/10 15/2/11 3/58/11 +f 14/4/12 13/6/13 1/60/13 +f 11/62/14 23/12/14 24/7/7 +f 17/11/6 16/3/10 4/59/10 +f 1/60/13 13/6/13 23/12/14 +f 19/15/4 18/14/5 6/54/5 +f 21/18/9 20/17/3 8/52/3 +f 15/2/11 14/4/12 2/61/12 +f 40/64/10 39/71/11 27/30/11 +f 38/65/12 37/75/13 25/5/13 +f 35/8/14 47/68/14 48/66/7 +f 41/67/6 40/64/10 28/1/10 +f 25/5/13 37/75/13 47/68/14 +f 43/69/4 42/73/5 30/20/5 +f 45/70/9 44/72/3 32/31/3 +f 39/71/11 38/65/12 26/19/12 +f 44/72/3 43/69/4 31/13/4 +f 42/73/5 41/67/6 29/10/6 +f 48/66/7 46/74/8 34/22/8 +f 46/74/8 45/76/9 33/32/9 +o Hammer +v 0.745252 1.700511 -4.104497 +v 0.745252 1.813547 -4.151319 +v 0.745252 1.926583 -4.104497 +v 0.745252 1.973404 -3.991461 +v 0.745252 1.926583 -3.878425 +v 0.745252 1.813547 -3.831604 +v 0.745252 1.700511 -3.878425 +v 0.745252 1.653689 -3.991461 +v -0.626225 1.813547 -4.184730 +v -0.626225 1.676885 -4.128123 +v -0.745252 1.700511 -4.104497 +v -0.745252 1.813547 -4.151319 +v 0.626225 1.676885 -4.128123 +v 0.626225 1.813547 -4.184730 +v -0.626225 1.620278 -3.991461 +v -0.745252 1.653689 -3.991461 +v 0.626225 1.620278 -3.991461 +v -0.626225 1.676885 -3.854800 +v -0.745252 1.700511 -3.878425 +v 0.626225 1.676885 -3.854800 +v -0.626225 1.813547 -3.798193 +v -0.745252 1.813547 -3.831604 +v 0.626225 1.813547 -3.798193 +v -0.626225 1.950208 -3.854800 +v -0.745252 1.926583 -3.878425 +v 0.626225 1.950208 -3.854800 +v -0.626225 2.006815 -3.991461 +v -0.745252 1.973404 -3.991461 +v 0.626225 2.006815 -3.991461 +v -0.626225 1.950208 -4.128123 +v -0.745252 1.926583 -4.104497 +v 0.626225 1.950208 -4.128123 +v -0.206205 4.430529 -5.327692 +v -0.206205 4.510303 -5.183657 +v 0.206205 4.510303 -5.183657 +v 0.206205 4.430529 -5.327692 +v 0.206205 4.421892 -4.871769 +v 0.206205 4.372530 -4.722456 +v 0.206205 4.399612 -4.484733 +v 0.206205 4.442521 -4.233756 +v 0.206205 4.459024 -4.063620 +v 0.206205 4.490410 -3.895228 +v 0.206205 4.474938 -3.775805 +v 0.206205 4.611975 -3.495304 +v 0.206205 4.409944 -3.251491 +v 0.206205 4.139801 -3.461582 +v 0.206205 4.039521 -3.813910 +v 0.206205 4.008822 -4.135539 +v 0.206205 3.934636 -4.626007 +v 0.206205 3.845099 -4.867631 +v 0.206205 3.740214 -5.107749 +v 0.206205 4.068292 -5.353975 +v 0.206205 4.292388 -5.408881 +v 0.206205 4.476391 -5.035797 +v -0.206205 4.611975 -3.495304 +v -0.206205 4.409944 -3.251491 +v -0.206205 4.139801 -3.461582 +v -0.206205 4.474938 -3.775805 +v -0.206205 4.399612 -4.484733 +v -0.206205 4.442521 -4.233756 +v -0.206205 3.845099 -4.867631 +v -0.206205 3.934636 -4.626007 +v -0.206205 4.459024 -4.063620 +v -0.206205 4.490410 -3.895228 +v -0.206205 4.008822 -4.135539 +v -0.206205 4.039521 -3.813910 +v -0.206205 3.740214 -5.107749 +v -0.206205 4.372530 -4.722456 +v -0.206205 4.476391 -5.035797 +v -0.206205 4.421892 -4.871769 +v -0.206205 4.292388 -5.408881 +v -0.206205 4.068292 -5.353975 +vt 0.589044 0.875414 +vt 0.591244 0.874200 +vt 0.591244 0.882498 +vt 0.599072 0.881280 +vt 0.599072 0.875472 +vt 0.603428 0.875472 +vt 0.609398 0.934618 +vt 0.605458 0.935216 +vt 0.607800 0.924944 +vt 0.572500 0.826666 +vt 0.565000 0.816666 +vt 0.572500 0.816666 +vt 0.592420 0.913470 +vt 0.587478 0.912434 +vt 0.587032 0.904256 +vt 0.593446 0.875414 +vt 0.594358 0.878348 +vt 0.593446 0.881284 +vt 0.589044 0.881284 +vt 0.588132 0.878348 +vt 0.598170 0.878376 +vt 0.601250 0.874268 +vt 0.604330 0.878376 +vt 0.603428 0.881280 +vt 0.601250 0.882482 +vt 0.601300 0.936164 +vt 0.599674 0.926582 +vt 0.598482 0.936528 +vt 0.595692 0.937222 +vt 0.594344 0.927260 +vt 0.593712 0.936880 +vt 0.589066 0.939906 +vt 0.588506 0.929476 +vt 0.585026 0.935444 +vt 0.611804 0.922966 +vt 0.615782 0.920648 +vt 0.619862 0.927896 +vt 0.611872 0.935708 +vt 0.620770 0.932846 +vt 0.619426 0.935898 +vt 0.617040 0.937660 +vt 0.614590 0.936912 +vt 0.565000 0.826666 +vt 0.613758 0.913438 +vt 0.611736 0.913788 +vt 0.613114 0.903606 +vt 0.608884 0.913078 +vt 0.606004 0.912706 +vt 0.607666 0.902912 +vt 0.601754 0.911736 +vt 0.622638 0.911970 +vt 0.618510 0.916532 +vt 0.619080 0.905870 +vt 0.597728 0.911126 +vt 0.599360 0.901238 +vt 0.591202 0.896848 +vt 0.595268 0.899216 +vt 0.595198 0.912240 +vt 0.586102 0.909316 +vt 0.589916 0.914236 +vt 0.597526 0.878376 +vt 0.595008 0.878348 +vt 0.593906 0.874802 +vt 0.601250 0.873410 +vt 0.598616 0.874864 +vt 0.591244 0.873332 +vt 0.603882 0.874864 +vt 0.588584 0.874802 +vt 0.604974 0.878376 +vt 0.587482 0.878348 +vt 0.603882 0.881886 +vt 0.588584 0.881896 +vt 0.601250 0.883340 +vt 0.591244 0.883366 +vt 0.593906 0.881896 +vt 0.598616 0.881886 +vt 0.565000 0.870000 +vt 0.572500 0.873334 +vt 0.565000 0.873334 +vt 0.572500 0.940000 +vt 0.565000 0.950000 +vt 0.565000 0.940000 +vt 0.565000 0.833334 +vt 0.572500 0.833334 +vt 0.565000 0.853334 +vt 0.572500 0.846666 +vt 0.572500 0.853334 +vt 0.565000 0.840000 +vt 0.572500 0.836666 +vt 0.572500 0.840000 +vt 0.565000 0.856666 +vt 0.572500 0.856666 +vt 0.565000 0.836666 +vt 0.565000 0.846666 +vt 0.565000 0.866666 +vt 0.572500 0.863334 +vt 0.572500 0.866666 +vt 0.572500 0.880000 +vt 0.565000 0.883334 +vt 0.565000 0.880000 +vt 0.565000 0.863334 +vt 0.572500 0.883334 +vt 0.565000 0.896666 +vt 0.572500 0.870000 +vt 0.572500 0.950000 +vt 0.572500 0.896666 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.7700 0.6380 +vn -0.2703 -0.0000 -0.9628 +vn -0.2703 -0.6808 -0.6808 +vn 0.2703 -0.0000 -0.9628 +vn 0.2703 -0.6808 -0.6808 +vn -0.2703 -0.9628 -0.0000 +vn 0.2703 -0.9628 -0.0000 +vn -0.2703 -0.6808 0.6808 +vn 0.2703 -0.6808 0.6808 +vn -0.2703 0.0000 0.9628 +vn 0.2703 0.0000 0.9628 +vn -0.2703 0.6808 0.6808 +vn 0.2703 0.6808 0.6808 +vn -0.2703 0.9628 0.0000 +vn 0.2703 0.9628 0.0000 +vn -0.2703 0.6808 -0.6808 +vn 0.2703 0.6808 -0.6808 +vn 0.0000 0.9902 -0.1397 +vn 0.0000 0.7161 -0.6980 +vn 0.0000 -0.6139 0.7894 +vn 0.0000 0.9868 -0.1621 +vn 0.0000 0.8985 -0.4390 +vn 0.0000 0.9900 -0.1409 +vn 0.0000 0.9912 -0.1326 +vn 0.0000 0.9901 -0.1400 +vn 0.0000 0.9996 -0.0277 +vn 0.0000 0.9947 0.1027 +vn 0.0000 0.9629 0.2697 +vn 0.0000 0.9492 0.3146 +vn 0.0000 0.1450 -0.9894 +vn 0.0000 -0.4278 -0.9039 +vn 0.0000 -0.6003 -0.7998 +s off +f 55/77/15 56/78/15 52/79/15 +f 79/80/16 59/81/16 67/82/16 +f 86/83/15 87/84/15 97/85/15 +f 92/86/17 104/87/17 93/88/17 +f 117/89/16 81/90/16 120/91/16 +f 56/78/15 49/92/15 52/79/15 +f 49/92/15 50/93/15 52/79/15 +f 50/93/15 51/94/15 52/79/15 +f 52/79/15 53/95/15 54/96/15 +f 54/96/15 55/77/15 52/79/15 +f 79/80/16 60/97/16 59/81/16 +f 59/81/16 64/98/16 67/82/16 +f 67/82/16 70/99/16 79/80/16 +f 70/99/16 73/100/16 79/80/16 +f 73/100/16 76/101/16 79/80/16 +f 87/84/15 88/102/15 96/103/15 +f 88/102/15 89/104/15 96/103/15 +f 89/104/15 90/105/15 95/106/15 +f 90/105/15 91/107/15 95/106/15 +f 91/107/15 92/108/15 94/109/15 +f 92/108/15 93/110/15 94/109/15 +f 94/109/15 95/106/15 91/107/15 +f 95/106/15 96/103/15 89/104/15 +f 96/103/15 97/85/15 87/84/15 +f 98/111/15 99/112/15 100/113/15 +f 97/85/15 98/111/15 86/83/15 +f 98/111/15 100/113/15 85/114/15 +f 86/83/15 98/111/15 85/114/15 +f 100/113/15 101/115/15 84/116/15 +f 84/116/15 83/117/15 102/118/15 +f 84/116/15 102/118/15 100/113/15 +f 102/118/15 85/114/15 100/113/15 +f 92/86/17 103/119/17 104/87/17 +f 106/120/16 112/121/16 114/122/16 +f 112/121/16 111/123/16 114/122/16 +f 111/123/16 108/124/16 113/125/16 +f 108/124/16 107/126/16 113/125/16 +f 104/127/16 103/128/16 105/129/16 +f 103/128/16 106/120/16 105/129/16 +f 114/122/16 105/129/16 106/120/16 +f 113/125/16 114/122/16 111/123/16 +f 107/126/16 116/130/16 110/131/16 +f 113/125/16 107/126/16 110/131/16 +f 120/91/16 115/132/16 109/133/16 +f 120/91/16 109/133/16 118/134/16 +f 109/133/16 110/131/16 116/130/16 +f 118/134/16 109/133/16 116/130/16 +f 81/90/16 119/135/16 120/91/16 +f 117/89/16 82/136/16 81/90/16 +f 118/134/16 117/89/16 120/91/16 +s 1 +f 57/137/18 59/81/19 60/97/18 +f 62/138/20 49/92/21 61/139/21 +f 63/140/22 59/81/19 58/141/19 +f 65/142/23 49/92/21 56/78/23 +f 66/143/24 64/98/22 63/140/22 +f 68/144/25 56/78/23 55/77/25 +f 69/145/26 67/82/24 66/143/24 +f 71/146/27 55/77/25 54/96/27 +f 72/147/28 70/99/26 69/145/26 +f 74/148/29 54/96/27 53/95/29 +f 75/149/30 73/100/28 72/147/28 +f 77/150/31 53/95/29 52/79/31 +f 75/149/30 79/80/32 76/101/30 +f 77/150/31 51/94/33 80/151/33 +f 78/152/32 60/97/18 79/80/32 +f 80/151/33 50/93/20 62/138/20 +f 82/153/34 84/154/35 81/155/35 +f 94/156/36 104/157/36 105/158/36 +f 106/159/37 92/86/38 91/160/37 +f 107/161/39 88/162/40 87/163/39 +f 111/164/41 90/165/42 89/166/41 +f 116/167/43 87/163/39 86/168/43 +f 112/169/42 91/160/37 90/165/42 +f 108/170/40 89/166/41 88/162/40 +f 117/171/44 85/172/45 102/173/44 +f 101/174/46 120/175/47 119/176/46 +f 118/177/45 86/168/43 85/172/45 +f 100/178/47 115/179/48 120/175/47 +f 84/154/35 119/176/46 81/155/35 +f 82/153/34 102/173/44 83/180/34 +f 57/137/18 58/141/19 59/81/19 +f 62/138/20 50/93/20 49/92/21 +f 63/140/22 64/98/22 59/81/19 +f 65/142/23 61/139/21 49/92/21 +f 66/143/24 67/82/24 64/98/22 +f 68/144/25 65/142/23 56/78/23 +f 69/145/26 70/99/26 67/82/24 +f 71/146/27 68/144/25 55/77/25 +f 72/147/28 73/100/28 70/99/26 +f 74/148/29 71/146/27 54/96/27 +f 75/149/30 76/101/30 73/100/28 +f 77/150/31 74/148/29 53/95/29 +f 75/149/30 78/152/32 79/80/32 +f 77/150/31 52/79/31 51/94/33 +f 78/152/32 57/137/18 60/97/18 +f 80/151/33 51/94/33 50/93/20 +f 82/153/34 83/180/34 84/154/35 +f 94/156/36 93/181/36 104/157/36 +f 106/159/37 103/119/38 92/86/38 +f 107/161/39 108/170/40 88/162/40 +f 111/164/41 112/169/42 90/165/42 +f 116/167/43 107/161/39 87/163/39 +f 112/169/42 106/159/37 91/160/37 +f 108/170/40 111/164/41 89/166/41 +f 117/171/44 118/177/45 85/172/45 +f 101/174/46 100/178/47 120/175/47 +f 118/177/45 116/167/43 86/168/43 +f 100/178/47 99/182/48 115/179/48 +f 84/154/35 101/174/46 119/176/46 +f 82/153/34 117/171/44 102/173/44 +o Barrel +v 0.731983 1.964559 1.588737 +v 0.731983 2.154102 1.510226 +v 0.731983 2.343645 1.588737 +v 0.731983 2.422156 1.778280 +v 0.731983 2.343645 1.967823 +v 0.731983 2.154102 2.046335 +v 0.731983 1.964559 1.967823 +v 0.731983 1.886048 1.778280 +v -0.634395 2.154102 1.465021 +v -0.634395 1.932595 1.556772 +v -0.731983 1.964559 1.588737 +v -0.731983 2.154102 1.510226 +v 0.634395 1.932594 1.556772 +v 0.634395 2.154102 1.465021 +v -0.634395 1.840843 1.778280 +v -0.731983 1.886048 1.778280 +v 0.634395 1.840843 1.778280 +v -0.634395 1.932595 1.999788 +v -0.731983 1.964559 1.967823 +v 0.634395 1.932594 1.999788 +v -0.634395 2.154102 2.091539 +v -0.731983 2.154102 2.046335 +v 0.634395 2.154102 2.091539 +v -0.634395 2.375610 1.999788 +v -0.731983 2.343645 1.967823 +v 0.634395 2.375610 1.999788 +v -0.634395 2.467361 1.778280 +v -0.731983 2.422156 1.778280 +v 0.634395 2.467361 1.778280 +v -0.634395 2.375610 1.556772 +v -0.731983 2.343645 1.588737 +v 0.634395 2.375610 1.556772 +v -0.480500 5.241631 -2.458135 +v -0.480500 5.241631 2.917163 +v 0.480500 5.241631 2.917163 +v 0.480500 5.241631 -2.458135 +v 1.160030 4.562099 2.917163 +v 1.160029 4.562099 -2.458135 +v 1.160030 3.601100 2.917163 +v 1.160030 3.601100 -2.458135 +v 0.480500 2.921570 2.917163 +v 0.480500 2.921571 -2.458135 +v -0.480500 2.921570 2.917163 +v -0.480500 2.921571 -2.458135 +v -1.160029 3.601100 2.917163 +v -1.160030 3.601100 -2.458135 +v -1.160029 4.562099 2.917163 +v -0.882965 3.571820 2.917163 +v -1.019560 4.081600 2.917163 +v -0.882965 4.591380 2.917163 +v -0.509780 4.964565 2.917163 +v 0.000000 5.101160 2.917163 +v 0.509780 4.964563 2.917163 +v 0.882965 4.591380 2.917163 +v -1.160030 4.562099 -2.458135 +v 0.882965 4.591380 -2.458135 +v 0.509780 4.964565 -2.458135 +v 0.000000 5.101160 -2.458135 +v -0.509780 4.964565 -2.458135 +v -0.882965 4.591380 -2.458135 +v -1.019560 4.081600 -2.458135 +v -0.882965 3.571820 -2.458135 +v 0.000000 5.224927 2.791627 +v 0.000000 5.224926 8.802454 +v 0.437532 5.137895 8.802454 +v 0.437532 5.137897 2.791627 +v 0.808454 4.890054 8.802454 +v 0.808454 4.890055 2.791627 +v 1.056296 4.519132 8.802454 +v 1.056296 4.519133 2.791627 +v 1.143327 4.081600 8.802454 +v 1.143327 4.081600 2.791627 +v 1.056296 3.644067 8.802454 +v 1.056296 3.644068 2.791627 +v 0.808454 3.273145 8.802454 +v 0.808454 3.273145 2.791627 +v 0.437532 3.025303 8.802454 +v 0.437532 3.025304 2.791627 +v 0.000000 2.938272 8.802454 +v 0.000000 2.938273 2.791627 +v -0.437532 3.025303 8.802454 +v -0.437532 3.025304 2.791627 +v -0.808454 3.273145 8.802454 +v -0.808454 3.273145 2.791627 +v -1.056296 3.644067 8.802454 +v -1.056296 3.644068 2.791627 +v -1.143327 4.081600 8.802454 +v -1.143327 4.081600 2.791627 +v -1.056296 4.519132 8.802454 +v -1.056296 4.519133 2.791627 +v -0.808454 4.890054 8.802454 +v -0.808454 4.890055 2.791627 +v -0.437532 5.137895 8.802454 +v -0.882965 3.571820 8.802454 +v -1.019560 4.081600 8.802454 +v -0.882965 4.591379 8.802453 +v -0.509780 4.964563 8.802455 +v 0.000000 5.101159 8.802455 +v 0.509780 4.964563 8.802455 +v 0.882965 4.591380 8.802454 +v -0.437532 5.137897 2.791627 +v -0.509780 3.198636 -2.458135 +v -0.509780 3.198635 2.917163 +v 0.000000 3.062040 2.917163 +v 0.000000 3.062041 -2.458135 +v -0.509780 3.198635 8.802456 +v 0.000000 3.062040 8.802452 +v 0.509780 3.198635 2.917163 +v 0.509780 3.198636 -2.458135 +v 0.509780 3.198635 8.802452 +v 1.019560 4.081600 -2.458135 +v 1.019560 4.081600 2.917163 +v 1.019560 4.081600 8.802454 +v 0.882964 3.571820 -2.458135 +v 0.882965 3.571820 2.917163 +v 0.882965 3.571820 8.802455 +v 0.380419 2.209798 2.878785 +v 0.380419 3.025099 2.869944 +v -0.380419 3.025099 2.869944 +v -0.380419 2.209798 2.878785 +v -0.380419 1.997613 2.520242 +v 0.380419 1.997613 2.520242 +v -0.380419 3.025099 1.369944 +v -0.380419 1.988772 1.369944 +v 0.380419 3.025099 1.369944 +v 0.380419 1.988772 1.369944 +vt 0.303068 0.499090 +vt 0.305662 0.507436 +vt 0.299402 0.510894 +vt 0.311900 0.502596 +vt 0.314444 0.499204 +vt 0.318042 0.510786 +vt 0.402500 0.900000 +vt 0.295000 0.926666 +vt 0.295000 0.900000 +vt 0.402500 0.926666 +vt 0.295000 0.953334 +vt 0.402500 0.740000 +vt 0.295000 0.766666 +vt 0.295000 0.740000 +vt 0.402500 0.766666 +vt 0.295000 0.793334 +vt 0.402500 0.793334 +vt 0.295000 0.820000 +vt 0.402500 0.820000 +vt 0.295000 0.846666 +vt 0.224086 0.536286 +vt 0.223498 0.528860 +vt 0.233744 0.532522 +vt 0.402500 0.846666 +vt 0.295000 0.873334 +vt 0.402500 0.873334 +vt 0.374172 0.391588 +vt 0.373584 0.384172 +vt 0.387224 0.402360 +vt 0.369048 0.457912 +vt 0.358566 0.456996 +vt 0.366964 0.453774 +vt 0.243990 0.481534 +vt 0.233744 0.477874 +vt 0.243402 0.474110 +vt 0.356002 0.509156 +vt 0.366484 0.510072 +vt 0.358086 0.513292 +vt 0.346214 0.428866 +vt 0.354292 0.446270 +vt 0.340652 0.428082 +vt 0.040000 0.806666 +vt 0.055000 0.786667 +vt 0.055000 0.806666 +vt 0.060000 0.806666 +vt 0.060000 0.786667 +vt 0.077500 0.920000 +vt 0.077500 0.893334 +vt 0.100000 0.893334 +vt 0.032500 0.920000 +vt 0.032500 0.900000 +vt 0.040000 0.893334 +vt 0.080000 0.806666 +vt 0.305662 0.502548 +vt 0.303068 0.510894 +vt 0.296808 0.507436 +vt 0.296808 0.502548 +vt 0.299402 0.499090 +vt 0.318042 0.499204 +vt 0.320586 0.502596 +vt 0.320586 0.507394 +vt 0.314444 0.510786 +vt 0.311900 0.507394 +vt 0.402500 0.953334 +vt 0.210428 0.518074 +vt 0.210428 0.492320 +vt 0.213252 0.505198 +vt 0.215996 0.491536 +vt 0.251490 0.518860 +vt 0.257060 0.518074 +vt 0.243402 0.536286 +vt 0.243990 0.528860 +vt 0.215996 0.518860 +vt 0.387224 0.428082 +vt 0.373584 0.446270 +vt 0.374172 0.438854 +vt 0.381662 0.428866 +vt 0.353704 0.391588 +vt 0.354292 0.384172 +vt 0.363938 0.387932 +vt 0.384404 0.415222 +vt 0.381662 0.401578 +vt 0.343604 0.466676 +vt 0.349882 0.458304 +vt 0.349144 0.463190 +vt 0.358086 0.453774 +vt 0.375168 0.458304 +vt 0.381446 0.466676 +vt 0.377782 0.465694 +vt 0.384844 0.477614 +vt 0.382428 0.478254 +vt 0.384844 0.489452 +vt 0.381742 0.492230 +vt 0.343308 0.474836 +vt 0.340206 0.477614 +vt 0.257060 0.492320 +vt 0.254236 0.505198 +vt 0.223498 0.481534 +vt 0.224086 0.474110 +vt 0.251490 0.491536 +vt 0.340206 0.489452 +vt 0.342622 0.488812 +vt 0.349882 0.508762 +vt 0.343604 0.500390 +vt 0.347268 0.501374 +vt 0.366964 0.513292 +vt 0.381446 0.500390 +vt 0.375168 0.508762 +vt 0.375906 0.503876 +vt 0.340652 0.402360 +vt 0.346214 0.401578 +vt 0.363938 0.442510 +vt 0.343472 0.415222 +vt 0.353704 0.438854 +vt 0.040000 0.786667 +vt 0.107500 0.900000 +vt 0.107500 0.920000 +vt 0.062500 0.893334 +vt 0.062500 0.920000 +vt 0.080000 0.786667 +vt 0.322118 0.501128 +vt 0.319144 0.497162 +vt 0.307558 0.507848 +vt 0.307558 0.502136 +vt 0.322448 0.507798 +vt 0.322448 0.502192 +vt 0.304192 0.497010 +vt 0.322118 0.508864 +vt 0.303378 0.496560 +vt 0.299092 0.496560 +vt 0.318346 0.513268 +vt 0.295248 0.501050 +vt 0.313342 0.512828 +vt 0.294912 0.502136 +vt 0.294912 0.507848 +vt 0.310038 0.502192 +vt 0.310038 0.507798 +vt 0.298278 0.512974 +vt 0.310368 0.501128 +vt 0.299092 0.513422 +vt 0.303378 0.513422 +vt 0.318346 0.496722 +vt 0.314140 0.496722 +vt 0.307222 0.508934 +vt 0.290000 0.913334 +vt 0.170000 0.926666 +vt 0.170000 0.913334 +vt 0.290000 0.926666 +vt 0.170000 0.940000 +vt 0.290000 0.940000 +vt 0.170000 0.953334 +vt 0.290000 0.740000 +vt 0.170000 0.753334 +vt 0.170000 0.740000 +vt 0.290000 0.753334 +vt 0.170000 0.766666 +vt 0.290000 0.766666 +vt 0.170000 0.780000 +vt 0.290000 0.780000 +vt 0.170000 0.793334 +vt 0.290000 0.793334 +vt 0.170000 0.806666 +vt 0.290000 0.806666 +vt 0.170000 0.820000 +vt 0.290000 0.820000 +vt 0.170000 0.833334 +vt 0.290000 0.833334 +vt 0.170000 0.846666 +vt 0.290000 0.846666 +vt 0.170000 0.860000 +vt 0.290000 0.860000 +vt 0.170000 0.873334 +vt 0.290000 0.873334 +vt 0.170000 0.886666 +vt 0.290000 0.886666 +vt 0.170000 0.900000 +vt 0.290000 0.900000 +vt 0.295000 0.610000 +vt 0.402500 0.596666 +vt 0.402500 0.610000 +vt 0.290000 0.610000 +vt 0.172500 0.596666 +vt 0.290000 0.596666 +vt 0.295000 0.596666 +vt 0.402500 0.583334 +vt 0.290000 0.583334 +vt 0.295000 0.556666 +vt 0.402500 0.543334 +vt 0.402500 0.556666 +vt 0.172500 0.556666 +vt 0.290000 0.543334 +vt 0.290000 0.556666 +vt 0.295000 0.623334 +vt 0.402500 0.623334 +vt 0.172500 0.623334 +vt 0.290000 0.623334 +vt 0.402500 0.570000 +vt 0.172500 0.570000 +vt 0.290000 0.570000 +vt 0.295000 0.636666 +vt 0.402500 0.636666 +vt 0.172500 0.636666 +vt 0.290000 0.636666 +vt 0.295000 0.650000 +vt 0.402500 0.650000 +vt 0.172500 0.650000 +vt 0.290000 0.650000 +vt 0.295000 0.663334 +vt 0.402500 0.663334 +vt 0.290000 0.663334 +vt 0.295000 0.690000 +vt 0.402500 0.676666 +vt 0.402500 0.690000 +vt 0.172500 0.690000 +vt 0.290000 0.676666 +vt 0.290000 0.690000 +vt 0.295000 0.676666 +vt 0.172500 0.676666 +vt 0.295000 0.703334 +vt 0.402500 0.703334 +vt 0.172500 0.703334 +vt 0.290000 0.703334 +vt 0.295000 0.583334 +vt 0.172500 0.583334 +vt 0.307222 0.501050 +vt 0.319144 0.512828 +vt 0.314140 0.513268 +vt 0.298278 0.497010 +vt 0.310368 0.508864 +vt 0.295248 0.508934 +vt 0.313342 0.497164 +vt 0.304192 0.512974 +vt 0.290000 0.953334 +vt 0.172500 0.610000 +vt 0.295000 0.543334 +vt 0.172500 0.543334 +vt 0.295000 0.570000 +vt 0.172500 0.663334 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.0000 0.0000 1.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0108 0.9999 +vn 0.0000 -0.8606 0.5093 +vn 0.0000 -1.0000 0.0077 +vn -0.4203 -0.6416 -0.6416 +vn -0.4203 0.0000 -0.9074 +vn 0.4203 0.0000 -0.9074 +vn 0.4203 -0.6416 -0.6416 +vn -0.4203 -0.9074 0.0000 +vn 0.4203 -0.9074 0.0000 +vn -0.4203 -0.6416 0.6416 +vn 0.4203 -0.6416 0.6416 +vn -0.4203 0.0000 0.9074 +vn 0.4203 0.0000 0.9074 +vn -0.4203 0.6416 0.6416 +vn 0.4203 0.6416 0.6416 +vn -0.4203 0.9074 0.0000 +vn 0.4203 0.9074 0.0000 +vn -0.4203 0.6416 -0.6416 +vn 0.4203 0.6416 -0.6416 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 -0.0000 +s off +f 128/183/49 122/184/49 124/185/49 +f 148/186/50 151/187/50 139/188/50 +f 154/189/51 156/190/51 153/191/51 +f 155/192/52 158/193/52 156/190/52 +f 157/194/49 160/195/49 158/196/49 +f 159/197/53 162/198/53 160/195/53 +f 161/199/54 164/200/54 162/198/54 +f 163/201/55 166/202/55 164/200/55 +f 154/203/56 171/204/56 172/205/56 +f 165/206/50 175/207/50 166/202/50 +f 167/208/57 153/191/57 175/207/57 +f 180/209/58 175/210/58 153/211/58 +f 217/212/56 218/213/56 213/214/56 +f 228/215/56 224/216/56 161/217/56 +f 230/218/56 227/219/56 197/220/56 +f 229/221/58 160/222/58 162/223/58 +f 238/224/59 240/225/59 237/226/59 +f 242/227/60 240/225/60 241/228/60 +f 243/229/50 244/230/50 241/231/50 +f 238/232/49 237/233/49 242/234/49 +f 241/228/61 246/235/61 242/227/61 +f 128/183/49 121/236/49 122/184/49 +f 122/184/49 123/237/49 124/185/49 +f 124/185/49 125/238/49 128/183/49 +f 125/238/49 126/239/49 128/183/49 +f 126/239/49 127/240/49 128/183/49 +f 151/187/50 132/241/50 139/188/50 +f 132/241/50 131/242/50 139/188/50 +f 131/242/50 136/243/50 139/188/50 +f 139/188/50 142/244/50 145/245/50 +f 145/245/50 148/186/50 139/188/50 +f 154/189/51 155/192/51 156/190/51 +f 155/192/52 157/246/52 158/193/52 +f 157/194/49 159/197/49 160/195/49 +f 159/197/53 161/199/53 162/198/53 +f 161/199/54 163/201/54 164/200/54 +f 163/201/55 165/206/55 166/202/55 +f 167/247/56 165/248/56 169/249/56 +f 165/248/56 168/250/56 169/249/56 +f 174/251/56 157/252/56 155/253/56 +f 173/254/56 174/251/56 155/253/56 +f 167/247/56 169/249/56 170/255/56 +f 167/247/56 170/255/56 154/203/56 +f 170/255/56 171/204/56 154/203/56 +f 173/254/56 155/253/56 172/205/56 +f 155/253/56 154/203/56 172/205/56 +f 165/206/50 167/208/50 175/207/50 +f 167/208/57 154/189/57 153/191/57 +f 156/256/58 158/257/58 176/258/58 +f 156/256/58 176/258/58 177/259/58 +f 182/260/58 166/261/58 181/262/58 +f 166/261/58 175/210/58 181/262/58 +f 153/211/58 156/256/58 178/263/58 +f 156/256/58 177/259/58 178/263/58 +f 180/209/58 181/262/58 175/210/58 +f 153/211/58 178/263/58 179/264/58 +f 179/264/58 180/209/58 153/211/58 +f 187/265/56 185/266/56 219/267/56 +f 185/266/56 184/268/56 218/213/56 +f 219/267/56 185/266/56 218/213/56 +f 184/268/56 213/214/56 218/213/56 +f 213/214/56 211/269/56 217/212/56 +f 211/269/56 209/270/56 216/271/56 +f 209/270/56 207/272/56 215/273/56 +f 207/272/56 205/274/56 215/273/56 +f 205/274/56 214/275/56 215/273/56 +f 220/276/56 189/277/56 187/265/56 +f 219/267/56 220/276/56 187/265/56 +f 209/270/56 215/273/56 216/271/56 +f 211/269/56 216/271/56 217/212/56 +f 159/278/56 157/252/56 232/279/56 +f 157/252/56 174/251/56 232/279/56 +f 168/250/56 165/248/56 223/280/56 +f 165/248/56 163/281/56 223/280/56 +f 159/278/56 232/279/56 235/282/56 +f 159/278/56 235/282/56 228/215/56 +f 223/280/56 163/281/56 224/216/56 +f 163/281/56 161/217/56 224/216/56 +f 161/217/56 159/278/56 228/215/56 +f 191/283/56 189/277/56 233/284/56 +f 189/277/56 220/276/56 233/284/56 +f 195/285/56 193/286/56 236/287/56 +f 193/286/56 191/283/56 233/284/56 +f 199/288/56 197/220/56 227/219/56 +f 197/220/56 195/285/56 230/218/56 +f 203/289/56 201/290/56 226/291/56 +f 201/290/56 199/288/56 227/219/56 +f 226/291/56 201/290/56 227/219/56 +f 214/275/56 205/274/56 203/289/56 +f 226/291/56 214/275/56 203/289/56 +f 193/286/56 233/284/56 236/287/56 +f 195/285/56 236/287/56 230/218/56 +f 164/292/58 166/261/58 182/260/58 +f 164/292/58 182/260/58 222/293/58 +f 176/258/58 158/257/58 231/294/58 +f 158/257/58 160/222/58 231/294/58 +f 162/223/58 164/292/58 225/295/58 +f 164/292/58 222/293/58 225/295/58 +f 234/296/58 231/294/58 160/222/58 +f 162/223/58 225/295/58 229/221/58 +f 229/221/58 234/296/58 160/222/58 +f 238/224/59 239/297/59 240/225/59 +f 242/227/60 237/226/60 240/225/60 +f 240/298/50 239/299/50 241/231/50 +f 239/299/50 243/229/50 241/231/50 +f 246/300/49 245/301/49 242/234/49 +f 245/301/49 238/232/49 242/234/49 +f 241/228/61 244/302/61 246/235/61 +s 1 +f 130/303/62 132/241/63 129/304/63 +f 134/305/64 121/236/65 133/306/65 +f 135/307/66 131/242/62 130/308/62 +f 137/309/67 121/236/65 128/183/67 +f 135/310/66 139/188/68 136/243/66 +f 137/311/67 127/240/69 140/312/69 +f 138/313/68 142/244/70 139/188/68 +f 143/314/71 127/240/69 126/239/71 +f 141/315/70 145/245/72 142/244/70 +f 143/316/71 125/238/73 146/317/73 +f 147/318/74 145/245/72 144/319/72 +f 149/320/75 125/238/73 124/185/75 +f 147/321/74 151/187/76 148/186/74 +f 149/322/75 123/237/77 152/323/77 +f 129/324/63 151/187/76 150/325/76 +f 134/326/64 123/237/77 122/184/64 +f 184/327/51 186/328/78 183/329/51 +f 185/330/78 188/331/52 186/328/78 +f 187/332/52 190/333/79 188/331/52 +f 189/334/79 192/335/49 190/336/79 +f 191/337/49 194/338/80 192/335/49 +f 193/339/80 196/340/53 194/338/80 +f 195/341/53 198/342/81 196/340/53 +f 197/343/81 200/344/54 198/342/81 +f 199/345/54 202/346/82 200/344/54 +f 201/347/82 204/348/55 202/346/82 +f 203/349/55 206/350/83 204/348/55 +f 205/351/83 208/352/50 206/350/83 +f 207/353/50 210/354/84 208/352/50 +f 209/355/84 212/356/57 210/354/84 +f 211/357/57 221/358/85 212/356/57 +f 213/359/85 183/329/51 221/358/85 +f 223/360/86 225/361/51 222/362/86 +f 223/363/86 227/364/51 224/365/51 +f 224/366/51 229/367/87 225/361/51 +f 227/364/51 228/368/87 224/365/51 +f 232/369/50 176/370/88 231/371/50 +f 233/372/50 174/373/88 232/374/50 +f 168/375/89 222/362/86 182/376/89 +f 214/377/89 223/363/86 168/378/89 +f 234/379/90 232/369/50 231/371/50 +f 236/380/90 232/374/50 235/381/90 +f 169/382/49 182/376/89 181/383/49 +f 215/384/49 168/378/89 169/385/49 +f 170/386/91 181/383/49 180/387/91 +f 216/388/91 169/385/49 170/389/91 +f 171/390/92 180/387/91 179/391/92 +f 171/392/92 216/388/91 170/389/91 +f 173/393/93 178/394/54 177/395/93 +f 219/396/93 172/397/54 173/398/93 +f 172/399/54 179/391/92 178/394/54 +f 218/400/54 171/392/92 172/397/54 +f 174/401/88 177/395/93 176/402/88 +f 220/403/88 173/398/93 174/404/88 +f 228/405/87 234/379/90 229/367/87 +f 230/406/87 235/381/90 228/368/87 +f 130/303/62 131/242/62 132/241/63 +f 134/305/64 122/184/64 121/236/65 +f 135/307/66 136/243/66 131/242/62 +f 137/309/67 133/407/65 121/236/65 +f 135/310/66 138/408/68 139/188/68 +f 137/311/67 128/183/67 127/240/69 +f 138/313/68 141/409/70 142/244/70 +f 143/314/71 140/410/69 127/240/69 +f 141/315/70 144/411/72 145/245/72 +f 143/316/71 126/239/71 125/238/73 +f 147/318/74 148/186/74 145/245/72 +f 149/320/75 146/412/73 125/238/73 +f 147/321/74 150/413/76 151/187/76 +f 149/322/75 124/185/75 123/237/77 +f 129/324/63 132/241/63 151/187/76 +f 134/326/64 152/414/77 123/237/77 +f 184/327/51 185/330/78 186/328/78 +f 185/330/78 187/332/52 188/331/52 +f 187/332/52 189/415/79 190/333/79 +f 189/334/79 191/337/49 192/335/49 +f 191/337/49 193/339/80 194/338/80 +f 193/339/80 195/341/53 196/340/53 +f 195/341/53 197/343/81 198/342/81 +f 197/343/81 199/345/54 200/344/54 +f 199/345/54 201/347/82 202/346/82 +f 201/347/82 203/349/55 204/348/55 +f 203/349/55 205/351/83 206/350/83 +f 205/351/83 207/353/50 208/352/50 +f 207/353/50 209/355/84 210/354/84 +f 209/355/84 211/357/57 212/356/57 +f 211/357/57 213/359/85 221/358/85 +f 213/359/85 184/327/51 183/329/51 +f 223/360/86 224/366/51 225/361/51 +f 223/363/86 226/416/86 227/364/51 +f 224/366/51 228/405/87 229/367/87 +f 227/364/51 230/406/87 228/368/87 +f 232/369/50 174/417/88 176/370/88 +f 233/372/50 220/418/88 174/373/88 +f 168/375/89 223/360/86 222/362/86 +f 214/377/89 226/416/86 223/363/86 +f 234/379/90 235/419/90 232/369/50 +f 236/380/90 233/372/50 232/374/50 +f 169/382/49 168/375/89 182/376/89 +f 215/384/49 214/377/89 168/378/89 +f 170/386/91 169/382/49 181/383/49 +f 216/388/91 215/384/49 169/385/49 +f 171/390/92 170/386/91 180/387/91 +f 171/392/92 217/420/92 216/388/91 +f 173/393/93 172/399/54 178/394/54 +f 219/396/93 218/400/54 172/397/54 +f 172/399/54 171/390/92 179/391/92 +f 218/400/54 217/420/92 171/392/92 +f 174/401/88 173/393/93 177/395/93 +f 220/403/88 219/396/93 173/398/93 +f 228/405/87 235/419/90 234/379/90 +f 230/406/87 236/380/90 235/381/90 +o Gun +v 0.513393 3.167058 -2.968280 +v 0.000000 3.026850 -2.968280 +v 0.000000 3.026850 2.166241 +v 0.412401 3.137352 1.926816 +v 0.518167 3.171832 1.672396 +v -0.513393 3.167058 -2.968280 +v -0.518167 3.171832 1.672396 +v -0.412401 3.137352 1.926816 +v 0.648125 2.914532 2.325881 +v -0.648125 2.914532 2.325881 +v -0.648125 2.694242 2.477893 +v 0.648125 2.694242 2.477893 +v 0.648125 3.202249 -2.603896 +v 0.648125 3.207023 1.672396 +v 0.648125 3.172543 1.926816 +v 0.648125 3.087669 2.138505 +v 0.648125 1.827062 2.466587 +v 0.648125 1.827062 -3.371653 +v 0.648125 3.202249 -3.373368 +v -0.648125 3.202249 -3.373368 +v -0.648125 3.202249 -2.603896 +v -0.648125 3.482961 -2.583913 +v -0.648125 3.482961 -3.353385 +v 0.410225 1.557572 2.449717 +v -0.648125 1.827062 2.466587 +v -0.410225 1.557569 2.449717 +v -0.648125 3.087669 2.138505 +v -0.648125 3.172543 1.926816 +v -0.648125 3.207023 1.672396 +v 1.038337 -3.794194 -8.814981 +v 1.038337 -3.162951 -8.684003 +v 1.038337 -2.579798 -8.560258 +v 1.038337 -1.996350 -8.402351 +v 1.038337 -1.120453 -8.045218 +v 1.038337 -0.091451 -7.476527 +v 1.038337 0.441162 -7.089207 +v 1.038337 1.112446 -6.400294 +v 1.038337 1.220466 -6.142394 +v 1.038337 1.005753 -5.478510 +v 1.038337 0.750945 -5.306003 +v 1.038337 0.223651 -5.215686 +v 1.038337 -0.101480 -5.453102 +v 1.038337 -0.769097 -5.873155 +v 1.038337 -1.364660 -6.016363 +v 1.038337 -2.303804 -6.153728 +v 1.038337 -3.304539 -6.180392 +v 1.038337 -4.531919 -6.132348 +v 1.038337 -5.079535 -6.119195 +v 1.038337 -5.072083 -8.828292 +v 1.038337 -4.355278 -8.863739 +v 0.677363 -5.419761 -5.771656 +v 0.677363 -4.520823 -5.793253 +v -0.677363 -4.520823 -5.793253 +v -0.677363 -5.419761 -5.771656 +v -0.677363 -5.410460 -9.151239 +v -0.677363 -4.348941 -9.203733 +v 0.677363 -4.348941 -9.203733 +v 0.677363 -5.410460 -9.151239 +v 0.677363 -1.429002 -5.682898 +v 0.677363 -0.902601 -5.556320 +v -0.677363 -0.902601 -5.556320 +v -0.677363 -1.429002 -5.682898 +v -0.677363 -3.744874 -9.151239 +v -0.677363 -3.093311 -9.016046 +v 0.677363 -3.093311 -9.016046 +v 0.677363 -3.744874 -9.151239 +v 0.677363 -3.302420 -5.840949 +v 0.677363 -2.332974 -5.815118 +v -0.677363 -2.332974 -5.815118 +v -0.677363 -3.302420 -5.840949 +v 0.677363 -0.294467 -5.173693 +v -0.677363 -0.294467 -5.173693 +v 0.677363 0.173305 -4.878585 +v -0.677363 0.173305 -4.878585 +v -0.677363 -2.500212 -8.890191 +v 0.677363 -2.500212 -8.890191 +v -0.677363 -1.887578 -8.724384 +v 0.677363 -1.887578 -8.724384 +v -0.677363 -0.973846 -8.351825 +v -0.677363 0.091069 -7.763287 +v 0.677363 0.091069 -7.763287 +v 0.677363 -0.973846 -8.351825 +v -0.677363 0.664022 -7.346631 +v 0.677363 0.664022 -7.346631 +v -0.677363 1.400451 -6.590861 +v 0.677363 1.400451 -6.590861 +v -1.038337 -5.079535 -6.119195 +v -1.038337 -5.072083 -8.828292 +v -0.677363 0.881192 -4.984477 +v -0.677363 1.292630 -5.263024 +v -1.038337 1.005753 -5.478510 +v -1.038337 0.750945 -5.306003 +v -0.677363 1.581939 -6.157557 +v -1.038337 1.220466 -6.142394 +v -1.038337 -4.355278 -8.863739 +v 0.677363 1.581939 -6.157557 +v 0.677363 1.292630 -5.263024 +v -1.038337 -1.364660 -6.016363 +v -1.038337 -2.303804 -6.153728 +v -1.038337 -2.579798 -8.560258 +v -1.038337 -1.996350 -8.402351 +v -1.038337 -3.794194 -8.814981 +v -1.038337 -3.162951 -8.684003 +v -1.038337 -3.304539 -6.180392 +v -1.038337 -4.531919 -6.132348 +v -1.038337 -0.101480 -5.453102 +v -1.038337 -0.769097 -5.873155 +v -1.038337 -1.120453 -8.045218 +v -1.038337 -0.091451 -7.476527 +v -1.038337 0.223651 -5.215686 +v -1.038337 0.441162 -7.089207 +v -1.038337 1.112446 -6.400294 +v 0.677363 0.881192 -4.984477 +v -0.388087 0.378275 -0.541007 +v -0.388087 0.538445 -0.691282 +v 0.388087 0.538445 -0.691282 +v 0.388087 0.378275 -0.541007 +v 0.388087 0.263531 0.761497 +v 0.388087 0.549235 0.902510 +v -0.388087 0.549235 0.902510 +v -0.388087 0.263531 0.761497 +v -0.388087 -3.282760 -2.259867 +v 0.388087 -3.282760 -2.259867 +v 0.388087 -3.416696 -2.107284 +v -0.388087 -3.416696 -2.107284 +v 0.388087 -2.115547 -1.510431 +v 0.388087 -2.036536 -0.519215 +v -0.388087 -2.036536 -0.519215 +v -0.388087 -2.115547 -1.510431 +v -0.388087 -2.019589 -1.905299 +v -0.388087 -1.845016 -1.572362 +v 0.388087 -1.845016 -1.572362 +v 0.388087 -2.019589 -1.905299 +v -0.388087 -2.824581 -2.298897 +v -0.388087 -2.254520 -2.104208 +v 0.388087 -2.254520 -2.104208 +v 0.388087 -2.824581 -2.298897 +v 0.388087 -2.749647 -2.086469 +v 0.388087 -2.339508 -1.897398 +v -0.388087 -2.339508 -1.897398 +v -0.388087 -2.749647 -2.086469 +v 0.388087 -1.052225 0.501511 +v 0.388087 -0.560944 0.588307 +v -0.388087 -0.560944 0.588307 +v -0.388087 -1.052225 0.501511 +v -0.388087 -1.284873 0.069368 +v -0.388087 -0.821706 0.217083 +v 0.388087 -0.821706 0.217083 +v 0.388087 -1.284873 0.069368 +v -0.388087 -1.788417 -0.845057 +v 0.388087 -1.788417 -0.845057 +v 0.388087 -1.766717 0.022973 +v -0.388087 -1.766717 0.022973 +v 0.388087 -0.334531 0.625094 +v 0.388087 0.005006 0.677293 +v -0.388087 0.005006 0.677293 +v -0.388087 -0.334531 0.625094 +v -0.388087 -0.356680 0.194787 +v -0.388087 0.002437 0.021986 +v 0.388087 0.002437 0.021986 +v 0.388087 -0.356680 0.194787 +v -0.388087 -1.615613 -0.248490 +v -0.388087 -1.423407 0.304049 +v 0.388087 -1.615613 -0.248490 +v 0.388087 -1.423407 0.304049 +v -0.334293 -1.549449 -2.555341 +v -0.334293 -1.287187 -2.738739 +v -0.334293 -0.766452 -2.910610 +v -0.334293 -0.399781 -2.891256 +v -0.334293 -0.115175 -2.859514 +v -0.334293 0.168657 -2.706223 +v -0.334293 0.588200 -2.184493 +v -0.334293 0.282394 -3.889986 +v -0.334293 -0.106957 -3.400619 +v -0.334293 -0.356724 -3.225651 +v -0.334293 -0.736246 -3.153187 +v -0.334293 -1.159743 -2.994812 +v -0.334293 -1.539680 -2.799144 +v -0.334293 -1.754503 -2.595457 +v -0.334293 -1.929948 -2.254812 +v -0.339648 -2.024864 -1.896991 +v -0.339648 -1.896961 -1.579169 +v -0.334293 -1.813819 -2.175126 +v 0.334293 0.282394 -3.889986 +v 0.334293 -0.106957 -3.400619 +v 0.334293 0.168657 -2.706223 +v 0.334293 0.588200 -2.184493 +v 0.334293 -1.287187 -2.738739 +v 0.334293 -0.766452 -2.910610 +v 0.334293 -1.159743 -2.994812 +v 0.334293 -1.539680 -2.799144 +v 0.334293 -1.754503 -2.595457 +v 0.334293 -1.929948 -2.254812 +v 0.334293 -0.736246 -3.153187 +v 0.334293 -0.356724 -3.225651 +v 0.334293 -0.115175 -2.859514 +v 0.334293 -0.399781 -2.891256 +v 0.334293 -1.549449 -2.555341 +v 0.334293 -1.813819 -2.175126 +v 0.328939 -1.896961 -1.579169 +v 0.328939 -2.024864 -1.896991 +v -0.677363 4.127562 -4.010149 +v -0.677363 4.243626 -3.549657 +v 0.677363 4.243626 -3.549657 +v 0.677363 4.127562 -4.010149 +v -0.677363 4.582104 -3.283700 +v 0.677363 4.582104 -3.283700 +v -0.677363 2.640762 -6.548580 +v -0.677363 2.737251 -6.208553 +v 0.677363 2.737251 -6.208553 +v 0.677363 2.640762 -6.548580 +v -0.677363 2.014416 -6.783812 +v -0.677363 2.238806 -6.763745 +v 0.677363 2.238806 -6.763745 +v 0.677363 2.014416 -6.783812 +v -0.677363 3.424877 -5.697894 +v -0.677363 3.656194 -5.417248 +v 0.677363 3.656194 -5.417248 +v 0.677363 3.424877 -5.697894 +v -0.677363 3.870349 -5.088138 +v -0.677363 4.091084 -4.470795 +v 0.677363 4.091084 -4.470795 +v 0.677363 3.870349 -5.088138 +v -0.677363 2.497756 -6.693510 +v 0.677363 2.497756 -6.693510 +v -0.677363 0.283971 -3.279829 +v 0.677363 0.283971 -3.279829 +v -0.677363 1.474082 -6.850760 +v -0.677363 1.751935 -6.791059 +v 0.677363 1.751935 -6.791059 +v 0.677363 1.474082 -6.850760 +v -0.677363 1.300423 -6.918651 +v 0.677363 1.300423 -6.918651 +v 0.677363 0.288958 -4.369509 +v -0.677363 0.288958 -4.369509 +v 0.677363 0.183064 -4.636606 +v -0.677363 0.183064 -4.636606 +v 0.677363 -0.094873 -5.054910 +v 0.677363 0.938536 -7.024597 +v -0.677363 0.938536 -7.024597 +v -0.677363 -0.094873 -5.054910 +v -0.410225 1.557572 -3.367706 +v -0.410225 0.363872 -4.767666 +v -0.410225 0.088182 -3.011839 +v -0.410225 0.346088 -2.547045 +v -0.410225 0.370646 -2.111420 +v -0.410225 0.490531 -1.718697 +v -0.410225 0.536416 0.879805 +v -0.410225 1.060247 2.159820 +v -0.410225 1.224972 2.278783 +v 0.410225 1.224972 2.278783 +v 0.410225 0.370646 -2.111420 +v 0.410225 0.490531 -1.718697 +v 0.410225 0.088182 -3.011839 +v 0.410225 0.346088 -2.547045 +v 0.410225 0.363872 -4.767666 +v 0.410225 1.557572 -3.367706 +v 0.410225 1.060247 2.159820 +v 0.410225 0.536416 0.879805 +v 0.165776 0.293496 -1.893382 +v 0.165776 0.680617 -1.761686 +v -0.165974 0.680617 -1.761686 +v -0.165974 0.293496 -1.893382 +v -0.165974 -1.314300 -1.864868 +v 0.165776 -1.314300 -1.864868 +v 0.165776 -1.503054 -1.310113 +v -0.165974 -1.503054 -1.310113 +v 0.165776 -0.933038 -1.695922 +v 0.165776 -0.526778 -1.857364 +v -0.165974 -0.526778 -1.857364 +v -0.165974 -0.933038 -1.695922 +v -0.165974 -0.802843 -2.222122 +v -0.165974 -0.354921 -2.352316 +v 0.165776 -0.354921 -2.352316 +v 0.165776 -0.802843 -2.222122 +v 0.165776 -0.071044 -1.902498 +v -0.165974 -0.071044 -1.902498 +v -0.165974 0.129456 -2.466887 +v 0.165776 0.129456 -2.466887 +v -0.165974 0.697671 -2.080118 +v -0.165974 0.361592 -2.371173 +v 0.165776 0.361592 -2.371173 +v 0.165776 0.697671 -2.080118 +v -1.216637 4.585567 -2.907501 +v -1.216637 4.585567 -2.368979 +v -0.503948 5.298257 -2.368979 +v -0.503948 5.298257 -2.907501 +v 1.216637 4.585567 -2.907501 +v 1.216637 4.585567 -2.368979 +v 1.216637 3.577672 -2.368979 +v 1.216637 3.577672 -2.907501 +v 0.503948 2.864983 -2.368979 +v 0.503948 2.864983 -2.907501 +v -0.503947 2.864983 -2.907501 +v -0.503947 2.864983 -2.368979 +v -1.216637 3.577672 -2.368979 +v -1.216637 3.577672 -2.907501 +v 0.503947 5.298257 -2.368979 +v 0.503947 5.298257 -2.907501 +v 0.370304 4.975613 -3.279490 +v -0.370304 4.975613 -3.279490 +v 0.893993 4.451924 -3.279490 +v 0.893993 3.711316 -3.279490 +v 0.370304 3.187627 -3.279490 +v -0.893993 3.711316 -3.279490 +v -0.370304 3.187627 -3.279490 +v -0.893993 4.451924 -3.279490 +v 0.648125 3.482961 -3.353385 +v 0.648125 3.482961 -2.583913 +v -0.648125 1.827062 -3.371653 +vt 0.336992 0.270342 +vt 0.255266 0.273654 +vt 0.255266 0.270342 +vt 0.614566 0.346798 +vt 0.614596 0.379886 +vt 0.600710 0.379886 +vt 0.465000 0.643334 +vt 0.480000 0.636666 +vt 0.480000 0.643334 +vt 0.255266 0.300062 +vt 0.336992 0.303374 +vt 0.255266 0.303374 +vt 0.600214 0.487836 +vt 0.601098 0.500080 +vt 0.595040 0.491676 +vt 0.503148 0.512132 +vt 0.503584 0.524246 +vt 0.495896 0.518924 +vt 0.096596 0.379962 +vt 0.093018 0.386784 +vt 0.091840 0.380216 +vt 0.070000 0.743334 +vt 0.057500 0.726666 +vt 0.070000 0.726666 +vt 0.070000 0.700000 +vt 0.057500 0.683334 +vt 0.070000 0.683334 +vt 0.053524 0.411332 +vt 0.046216 0.417760 +vt 0.046848 0.410186 +vt 0.070000 0.676666 +vt 0.057500 0.663334 +vt 0.070000 0.663334 +vt 0.070000 0.716666 +vt 0.057500 0.710000 +vt 0.070000 0.710000 +vt 0.070000 0.646666 +vt 0.057500 0.646666 +vt 0.057500 0.676666 +vt 0.057500 0.700000 +vt 0.057500 0.716666 +vt 0.512500 0.690000 +vt 0.540000 0.800000 +vt 0.512500 0.800000 +vt 0.757830 0.629988 +vt 0.796914 0.668008 +vt 0.786324 0.691844 +vt 0.816062 0.674308 +vt 0.815928 0.668042 +vt 0.826376 0.691556 +vt 0.568242 0.229558 +vt 0.611622 0.230578 +vt 0.540712 0.253308 +vt 0.487500 0.780000 +vt 0.470000 0.793334 +vt 0.470000 0.780000 +vt 0.487500 0.756666 +vt 0.470000 0.770000 +vt 0.470000 0.756666 +vt 0.487500 0.710000 +vt 0.470000 0.710000 +vt 0.599684 0.311164 +vt 0.608072 0.304958 +vt 0.614494 0.340312 +vt 0.487500 0.770000 +vt 0.007500 0.690000 +vt 0.015000 0.700000 +vt 0.007500 0.700000 +vt 0.007500 0.770000 +vt 0.015000 0.753334 +vt 0.015000 0.770000 +vt 0.007500 0.723334 +vt 0.015000 0.736666 +vt 0.007500 0.736666 +vt 0.015000 0.800000 +vt 0.007500 0.786666 +vt 0.015000 0.786666 +vt 0.007500 0.710000 +vt 0.015000 0.723334 +vt 0.015000 0.813334 +vt 0.007500 0.800000 +vt 0.047414 0.461680 +vt 0.057378 0.458394 +vt 0.054322 0.468652 +vt 0.027954 0.468120 +vt 0.024942 0.458008 +vt 0.034762 0.461248 +vt 0.007500 0.753334 +vt 0.015000 0.710000 +vt 0.015000 0.820000 +vt 0.007500 0.813334 +vt 0.117500 0.613333 +vt 0.127500 0.583333 +vt 0.127500 0.613333 +vt 0.117500 0.523334 +vt 0.127500 0.493334 +vt 0.127500 0.523334 +vt 0.117500 0.493334 +vt 0.127500 0.463334 +vt 0.117500 0.673333 +vt 0.127500 0.643333 +vt 0.127500 0.673333 +vt 0.117500 0.643333 +vt 0.247500 0.426666 +vt 0.262500 0.406666 +vt 0.280000 0.406666 +vt 0.117500 0.553334 +vt 0.127500 0.553334 +vt 0.117500 0.583333 +vt 0.137500 0.580000 +vt 0.137500 0.550000 +vt 0.137500 0.496666 +vt 0.137500 0.520000 +vt 0.137500 0.490000 +vt 0.137500 0.670000 +vt 0.137500 0.640000 +vt 0.137500 0.610000 +vt 0.222500 0.433334 +vt 0.212500 0.466666 +vt 0.187500 0.453334 +vt 0.465000 0.626666 +vt 0.480000 0.633334 +vt 0.465000 0.633334 +vt 0.637500 0.253333 +vt 0.540000 0.260000 +vt 0.540000 0.253333 +vt 0.510000 0.340000 +vt 0.615000 0.346667 +vt 0.510000 0.346667 +vt 0.487500 0.793334 +vt 0.470000 0.860000 +vt 0.624854 0.290024 +vt 0.553464 0.289918 +vt 0.540646 0.259308 +vt 0.343956 0.273776 +vt 0.523542 0.380000 +vt 0.518950 0.379170 +vt 0.511750 0.372962 +vt 0.509210 0.346798 +vt 0.509006 0.367662 +vt 0.515130 0.377128 +vt 0.465000 0.636666 +vt 0.343956 0.299940 +vt 0.614288 0.539426 +vt 0.616976 0.546688 +vt 0.600194 0.532792 +vt 0.586600 0.546412 +vt 0.589464 0.542342 +vt 0.610988 0.518476 +vt 0.611690 0.524230 +vt 0.603488 0.523666 +vt 0.612684 0.532858 +vt 0.609334 0.505992 +vt 0.603912 0.511850 +vt 0.605570 0.496560 +vt 0.570988 0.478972 +vt 0.589880 0.480978 +vt 0.583670 0.487284 +vt 0.556706 0.449310 +vt 0.559614 0.445906 +vt 0.560010 0.462858 +vt 0.559672 0.475440 +vt 0.555962 0.460954 +vt 0.569808 0.485846 +vt 0.563464 0.481410 +vt 0.563614 0.473280 +vt 0.552306 0.459954 +vt 0.548502 0.474806 +vt 0.548156 0.461908 +vt 0.544616 0.480926 +vt 0.544462 0.472592 +vt 0.538112 0.485474 +vt 0.536902 0.478426 +vt 0.523902 0.486948 +vt 0.551544 0.448020 +vt 0.548562 0.444530 +vt 0.506942 0.487514 +vt 0.517534 0.480484 +vt 0.512246 0.491450 +vt 0.501450 0.496456 +vt 0.506034 0.500066 +vt 0.497592 0.506126 +vt 0.494158 0.533668 +vt 0.495178 0.524822 +vt 0.520896 0.547564 +vt 0.489756 0.547846 +vt 0.517960 0.543392 +vt 0.492512 0.540402 +vt 0.506960 0.533602 +vt 0.093652 0.424652 +vt 0.103830 0.435566 +vt 0.070558 0.427612 +vt 0.080106 0.417484 +vt 0.090662 0.417270 +vt 0.083518 0.410986 +vt 0.084932 0.401114 +vt 0.090042 0.409866 +vt 0.088022 0.390098 +vt 0.089664 0.400328 +vt 0.095814 0.374628 +vt 0.102458 0.370064 +vt 0.104014 0.373084 +vt 0.109440 0.367596 +vt 0.115640 0.370922 +vt 0.057500 0.743334 +vt 0.034146 0.369466 +vt 0.040944 0.374134 +vt 0.032556 0.372556 +vt 0.045010 0.379852 +vt 0.040144 0.379592 +vt 0.048916 0.389962 +vt 0.043804 0.386570 +vt 0.052076 0.401232 +vt 0.047236 0.400428 +vt 0.027004 0.366940 +vt 0.020660 0.370344 +vt 0.057016 0.417980 +vt 0.066782 0.428340 +vt 0.043156 0.425314 +vt 0.032742 0.436480 +vt 0.540000 0.690000 +vt 0.765968 0.719244 +vt 0.754758 0.724574 +vt 0.752980 0.632546 +vt 0.746394 0.725446 +vt 0.738034 0.728246 +vt 0.733200 0.736432 +vt 0.733200 0.632400 +vt 0.771946 0.714068 +vt 0.777044 0.708476 +vt 0.795132 0.686058 +vt 0.792498 0.689516 +vt 0.796410 0.679792 +vt 0.765428 0.623270 +vt 0.798002 0.661284 +vt 0.801168 0.648326 +vt 0.799238 0.657082 +vt 0.796778 0.674360 +vt 0.859270 0.633056 +vt 0.878786 0.632914 +vt 0.865768 0.724708 +vt 0.878786 0.735546 +vt 0.874018 0.727470 +vt 0.811732 0.648624 +vt 0.846990 0.623906 +vt 0.813636 0.657262 +vt 0.854486 0.630532 +vt 0.814854 0.661408 +vt 0.857518 0.723846 +vt 0.846460 0.718588 +vt 0.840562 0.713482 +vt 0.835532 0.707964 +vt 0.820284 0.689260 +vt 0.816424 0.679666 +vt 0.817686 0.685848 +vt 0.634976 0.245906 +vt 0.637830 0.253308 +vt 0.517340 0.226738 +vt 0.546654 0.220602 +vt 0.554412 0.226342 +vt 0.561686 0.226888 +vt 0.632990 0.242238 +vt 0.639758 0.311592 +vt 0.509514 0.340312 +vt 0.537844 0.315742 +vt 0.584736 0.314638 +vt 0.512600 0.332310 +vt 0.514746 0.328346 +vt 0.591824 0.311754 +vt 0.015000 0.690000 +vt 0.053638 0.489364 +vt 0.056132 0.499138 +vt 0.050102 0.499570 +vt 0.044590 0.491084 +vt 0.042778 0.485222 +vt 0.044948 0.472990 +vt 0.053466 0.480160 +vt 0.054178 0.448766 +vt 0.064684 0.444000 +vt 0.037192 0.472396 +vt 0.039332 0.484452 +vt 0.028796 0.479462 +vt 0.037544 0.490228 +vt 0.028626 0.488534 +vt 0.032112 0.498592 +vt 0.026168 0.498168 +vt 0.017740 0.443822 +vt 0.028094 0.448520 +vt 0.007500 0.820000 +vt 0.117500 0.463334 +vt 0.295000 0.426666 +vt 0.295000 0.450000 +vt 0.280000 0.470000 +vt 0.262500 0.470000 +vt 0.247500 0.450000 +vt 0.137500 0.556667 +vt 0.137500 0.526666 +vt 0.137500 0.466666 +vt 0.137500 0.646667 +vt 0.137500 0.616667 +vt 0.137500 0.586667 +vt 0.187500 0.433334 +vt 0.197500 0.420000 +vt 0.212500 0.420000 +vt 0.222500 0.453334 +vt 0.197500 0.466666 +vt 0.480000 0.626666 +vt 0.637500 0.260000 +vt 0.615000 0.340000 +vt 0.487500 0.860000 +vt 0.540618 0.289918 +vt 0.638112 0.259308 +vt 0.638300 0.278610 +vt 0.635762 0.283514 +vt 0.632634 0.287368 +vt 0.629100 0.289256 +vt 0.245828 0.286858 +vt 0.250404 0.276350 +vt 0.250404 0.297368 +vt 0.465000 0.950000 +vt 0.492500 0.943334 +vt 0.492500 0.950000 +vt 0.246358 0.270342 +vt 0.250404 0.270342 +vt 0.465000 0.920000 +vt 0.470000 0.913334 +vt 0.492500 0.920000 +vt 0.242776 0.303374 +vt 0.242776 0.270342 +vt 0.246358 0.303374 +vt 0.250404 0.303374 +vt 0.781120 0.480610 +vt 0.749548 0.462818 +vt 0.752368 0.447180 +vt 0.427500 0.650000 +vt 0.455000 0.673334 +vt 0.427500 0.673334 +vt 0.455000 0.793334 +vt 0.427500 0.763334 +vt 0.455000 0.763334 +vt 0.427500 0.553334 +vt 0.455000 0.570000 +vt 0.427500 0.570000 +vt 0.455000 0.826666 +vt 0.427500 0.806666 +vt 0.455000 0.806666 +vt 0.427500 0.593334 +vt 0.455000 0.620000 +vt 0.427500 0.620000 +vt 0.427500 0.536666 +vt 0.455000 0.553334 +vt 0.427500 0.520000 +vt 0.455000 0.536666 +vt 0.427500 0.793334 +vt 0.455000 0.650000 +vt 0.455000 0.840000 +vt 0.427500 0.826666 +vt 0.455000 0.856666 +vt 0.427500 0.840000 +vt 0.455000 0.916666 +vt 0.427500 0.883334 +vt 0.455000 0.883334 +vt 0.427500 0.856666 +vt 0.455000 0.933334 +vt 0.427500 0.916666 +vt 0.455000 0.963334 +vt 0.427500 0.933334 +vt 0.455000 0.593334 +vt 0.837092 0.341162 +vt 0.896614 0.349824 +vt 0.843432 0.350018 +vt 0.918888 0.505838 +vt 0.909190 0.509100 +vt 0.912576 0.502430 +vt 0.913420 0.516608 +vt 0.896158 0.514720 +vt 0.836062 0.368946 +vt 0.842736 0.368780 +vt 0.807740 0.349838 +vt 0.815134 0.368824 +vt 0.808438 0.368658 +vt 0.814100 0.340954 +vt 0.754392 0.349642 +vt 0.747548 0.340708 +vt 0.737532 0.516950 +vt 0.754850 0.515056 +vt 0.755148 0.524546 +vt 0.747974 0.364312 +vt 0.754652 0.364020 +vt 0.902582 0.421712 +vt 0.898632 0.447056 +vt 0.895936 0.422476 +vt 0.842218 0.417334 +vt 0.851794 0.430522 +vt 0.845472 0.433370 +vt 0.799352 0.430594 +vt 0.808960 0.417364 +vt 0.805694 0.433450 +vt 0.743308 0.459312 +vt 0.839746 0.401812 +vt 0.843694 0.383466 +vt 0.846266 0.399988 +vt 0.807478 0.383390 +vt 0.811438 0.401792 +vt 0.804898 0.399964 +vt 0.748404 0.421756 +vt 0.755598 0.396246 +vt 0.755072 0.422522 +vt 0.902076 0.396338 +vt 0.896356 0.364156 +vt 0.903012 0.364448 +vt 0.907662 0.459150 +vt 0.909688 0.480118 +vt 0.901444 0.462644 +vt 0.852786 0.457286 +vt 0.869968 0.480382 +vt 0.864338 0.485158 +vt 0.798358 0.457442 +vt 0.786768 0.485402 +vt 0.735774 0.475280 +vt 0.736600 0.488884 +vt 0.729962 0.487562 +vt 0.837092 0.384758 +vt 0.814100 0.384686 +vt 0.748914 0.396302 +vt 0.903436 0.340918 +vt 0.895412 0.396282 +vt 0.848694 0.415252 +vt 0.802462 0.415276 +vt 0.745800 0.445490 +vt 0.858804 0.453448 +vt 0.792320 0.453592 +vt 0.741276 0.480346 +vt 0.905178 0.445372 +vt 0.915174 0.475068 +vt 0.914350 0.488628 +vt 0.877572 0.494322 +vt 0.872518 0.500154 +vt 0.773494 0.494594 +vt 0.778564 0.500446 +vt 0.891096 0.511892 +vt 0.887354 0.519430 +vt 0.759928 0.512220 +vt 0.763680 0.519782 +vt 0.732048 0.506148 +vt 0.738378 0.502728 +vt 0.920966 0.487310 +vt 0.895860 0.524180 +vt 0.741776 0.509418 +vt 0.022500 0.536666 +vt 0.037500 0.543334 +vt 0.022500 0.543334 +vt 0.037500 0.853334 +vt 0.022500 0.846666 +vt 0.037500 0.846666 +vt 0.037500 0.693334 +vt 0.022500 0.700000 +vt 0.022500 0.693334 +vt 0.037500 0.770000 +vt 0.022500 0.743334 +vt 0.037500 0.743334 +vt 0.022500 0.646666 +vt 0.037500 0.656666 +vt 0.022500 0.656666 +vt 0.022500 0.666666 +vt 0.037500 0.683334 +vt 0.022500 0.683334 +vt 0.037500 0.730000 +vt 0.022500 0.716666 +vt 0.037500 0.716666 +vt 0.037500 0.823334 +vt 0.022500 0.810000 +vt 0.037500 0.810000 +vt 0.022500 0.583334 +vt 0.037500 0.596666 +vt 0.022500 0.596666 +vt 0.037500 0.700000 +vt 0.037500 0.666666 +vt 0.022500 0.730000 +vt 0.022500 0.626666 +vt 0.037500 0.646666 +vt 0.037500 0.786666 +vt 0.022500 0.770000 +vt 0.037500 0.840000 +vt 0.022500 0.830000 +vt 0.037500 0.830000 +vt 0.022500 0.560000 +vt 0.037500 0.573334 +vt 0.022500 0.573334 +vt 0.022500 0.840000 +vt 0.037500 0.560000 +vt 0.037500 0.583334 +vt 0.022500 0.823334 +vt 0.037500 0.610000 +vt 0.022500 0.610000 +vt 0.022500 0.796666 +vt 0.037500 0.796666 +vt 0.022500 0.786666 +vt 0.037500 0.626666 +vt 0.130000 0.806666 +vt 0.117500 0.790000 +vt 0.130000 0.790000 +vt 0.130000 0.760000 +vt 0.117500 0.750000 +vt 0.130000 0.750000 +vt 0.130000 0.743334 +vt 0.117500 0.733334 +vt 0.130000 0.733334 +vt 0.130000 0.783334 +vt 0.117500 0.773334 +vt 0.130000 0.773334 +vt 0.117500 0.723334 +vt 0.130000 0.723334 +vt 0.117500 0.743334 +vt 0.117500 0.760000 +vt 0.117500 0.783334 +vt 0.512500 0.813334 +vt 0.540000 0.823334 +vt 0.512500 0.823334 +vt 0.540000 0.813334 +vt 0.512500 0.896666 +vt 0.540000 0.903334 +vt 0.512500 0.903334 +vt 0.512500 0.916666 +vt 0.540000 0.923334 +vt 0.512500 0.923334 +vt 0.512500 0.863334 +vt 0.540000 0.873334 +vt 0.512500 0.873334 +vt 0.512500 0.836666 +vt 0.540000 0.853334 +vt 0.512500 0.853334 +vt 0.540000 0.896666 +vt 0.540000 0.910000 +vt 0.512500 0.910000 +vt 0.512500 0.930000 +vt 0.540000 0.936666 +vt 0.512500 0.936666 +vt 0.540000 0.836666 +vt 0.540000 0.863334 +vt 0.540000 0.916666 +vt 0.540000 0.930000 +vt 0.540000 0.943334 +vt 0.512500 0.943334 +vt 0.512500 0.660000 +vt 0.540000 0.660000 +vt 0.512500 0.653334 +vt 0.540000 0.653334 +vt 0.540000 0.953334 +vt 0.512500 0.953334 +vt 0.512500 0.640000 +vt 0.540000 0.640000 +vt 0.487500 0.903334 +vt 0.470000 0.903334 +vt 0.470000 0.896666 +vt 0.487500 0.896666 +vt 0.343956 0.286858 +vt 0.465000 0.943334 +vt 0.487500 0.913334 +vt 0.455000 0.520000 +vt 0.427500 0.963334 +vt 0.037500 0.536666 +vt 0.022500 0.853334 +vt 0.117500 0.806666 +vn -0.2614 0.9652 -0.0011 +vn -0.2578 0.9662 -0.0012 +vn 1.0000 0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.2583 0.9661 -0.0030 +vn 0.2614 0.9652 -0.0011 +vn 0.0000 -0.7793 0.6267 +vn 0.0000 0.3134 0.9496 +vn 0.0000 0.8210 0.5709 +vn 0.0000 -0.1108 0.9938 +vn 0.0000 0.9904 0.1382 +vn 0.0000 0.5731 0.8195 +vn 0.0000 -0.0527 0.9986 +vn 0.0000 -0.4752 0.8799 +vn 0.0000 0.0009 1.0000 +vn 0.0000 -0.9564 0.2920 +vn 0.0000 -0.8744 0.4852 +vn 0.0000 -0.9879 -0.1551 +vn 0.0000 -0.9984 0.0563 +vn 0.0000 -0.3221 0.9467 +vn 0.0000 -0.9467 -0.3221 +vn 0.0000 0.3693 0.9293 +vn 0.0000 -0.2791 -0.9603 +vn 0.0000 0.0986 0.9951 +vn 0.0000 -0.2302 -0.9731 +vn 0.0000 -0.5726 -0.8198 +vn 0.0000 0.5605 0.8281 +vn 0.0000 -0.0250 0.9997 +vn 0.0000 0.3812 -0.9245 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.0000 0.0000 1.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7554 -0.6552 +vn 0.5342 0.5342 -0.6552 +vn 0.7554 0.0000 -0.6552 +vn 0.5342 -0.5342 -0.6552 +vn -0.5342 -0.5342 -0.6552 +vn -0.7554 0.0000 -0.6552 +vn -0.5342 0.5342 -0.6552 +vn 0.0000 0.0000 -1.0000 +vn -0.7497 -0.6618 -0.0000 +vn 0.7497 -0.6618 -0.0000 +vn 0.0000 -0.9998 0.0177 +vn -0.2508 0.9680 -0.0007 +vn -0.2457 0.9693 -0.0042 +vn -0.2507 0.9680 -0.0044 +vn 0.2508 0.9680 -0.0044 +vn 0.2457 0.9693 -0.0042 +vn 0.2508 0.9680 -0.0007 +vn -0.9999 0.0087 -0.0127 +vn -0.9998 0.0166 -0.0067 +vn 0.9999 -0.0087 0.0127 +vn 0.9998 -0.0166 0.0067 +vn -0.0000 1.0000 0.0070 +vn -0.2419 0.9698 0.0308 +vn -0.2652 0.9642 0.0010 +vn 0.2680 0.9634 0.0025 +vn 0.2419 0.9698 0.0308 +vn 0.0164 0.6644 0.7472 +vn 0.0000 0.2912 0.9567 +vn -0.0164 0.6644 0.7472 +vn -0.1115 0.9619 0.2498 +vn -0.0769 0.8571 0.5095 +vn -0.1619 0.9600 0.2284 +vn 0.0000 -0.0304 0.9995 +vn 0.0000 -0.2276 0.9738 +vn 0.0000 0.8427 0.5384 +vn -0.2117 0.9713 0.1081 +vn -0.2592 0.9571 0.1297 +vn 0.1115 0.9619 0.2498 +vn 0.0769 0.8571 0.5095 +vn 0.2094 0.9718 0.1082 +vn 0.1619 0.9600 0.2284 +vn 0.9123 0.2199 -0.3455 +vn 0.9336 -0.1391 0.3302 +vn 0.9221 -0.0733 0.3800 +vn 0.3677 0.0294 0.9295 +vn -0.2777 0.0231 0.9604 +vn 0.2777 0.0231 0.9604 +vn -0.3635 0.0174 -0.9314 +vn 0.2844 -0.0474 -0.9575 +vn -0.2844 -0.0474 -0.9575 +vn 0.3853 -0.3583 0.8504 +vn -0.3723 -0.1758 0.9113 +vn 0.3723 -0.1758 0.9113 +vn -0.3681 0.1909 -0.9100 +vn 0.3641 0.1352 -0.9215 +vn -0.3641 0.1352 -0.9215 +vn 0.3736 -0.0796 0.9242 +vn -0.3711 0.0058 0.9286 +vn 0.3711 0.0058 0.9286 +vn 0.3632 -0.5016 0.7852 +vn -0.3853 -0.3583 0.8504 +vn 0.4618 -0.3170 0.8284 +vn -0.3632 -0.5016 0.7852 +vn 0.2844 -0.9587 -0.0026 +vn -0.2777 -0.9607 -0.0026 +vn -0.2844 -0.9587 -0.0026 +vn 0.3635 0.0174 -0.9314 +vn -0.3677 0.0294 0.9295 +vn -0.3662 0.2182 -0.9046 +vn 0.3681 0.1909 -0.9100 +vn -0.3639 0.2981 -0.8825 +vn 0.3662 0.2182 -0.9046 +vn -0.3639 0.5001 -0.7858 +vn 0.3641 0.4018 -0.8403 +vn -0.3641 0.4018 -0.8403 +vn 0.3639 0.2981 -0.8825 +vn -0.3625 0.6100 -0.7046 +vn 0.3639 0.5001 -0.7858 +vn -0.4789 0.6904 -0.5422 +vn 0.3625 0.6100 -0.7046 +vn -0.3736 -0.0796 0.9242 +vn -0.8982 -0.3076 0.3142 +vn -0.8954 -0.3221 -0.3074 +vn -0.6900 0.2669 0.6728 +vn -0.8937 0.3587 0.2695 +vn -0.9005 0.1621 0.4035 +vn -0.7050 0.5671 0.4260 +vn -0.8927 0.4503 -0.0189 +vn -0.9118 0.0077 -0.4106 +vn 0.8954 -0.3221 -0.3074 +vn 0.9118 0.0077 -0.4106 +vn 0.8982 -0.3076 0.3142 +vn 0.2777 -0.9607 -0.0026 +vn 0.7050 0.5671 0.4260 +vn 0.8927 0.4503 -0.0189 +vn 0.7079 0.7057 -0.0296 +vn 0.9171 0.0126 0.3984 +vn -0.9221 -0.0733 0.3800 +vn -0.9234 -0.0329 0.3824 +vn -0.9123 0.1310 -0.3879 +vn 0.9123 0.1310 -0.3879 +vn -0.9126 0.0593 -0.4046 +vn -0.9176 0.0816 -0.3890 +vn 0.9126 0.0593 -0.4046 +vn 0.9176 0.0816 -0.3890 +vn 0.9209 0.0024 0.3898 +vn 0.9234 -0.0329 0.3824 +vn -0.9171 0.0126 0.3984 +vn -0.9211 -0.2186 0.3222 +vn -0.9336 -0.1391 0.3302 +vn -0.9123 0.2199 -0.3455 +vn 0.8848 -0.1072 0.4534 +vn -0.9209 0.0024 0.3898 +vn -0.9153 0.0944 -0.3915 +vn 0.9153 0.0944 -0.3915 +vn -0.9126 0.1764 -0.3689 +vn 0.9126 0.1764 -0.3689 +vn 0.9211 -0.2186 0.3222 +vn -0.8848 -0.1072 0.4534 +vn -0.9103 0.2709 -0.3129 +vn 0.9103 0.2709 -0.3129 +vn -0.9023 0.3595 -0.2379 +vn 0.9023 0.3595 -0.2379 +vn 0.4789 0.6904 -0.5422 +vn 0.6900 0.2669 0.6728 +vn 0.9005 0.1621 0.4035 +vn -0.4618 -0.3170 0.8284 +vn -0.7079 0.7057 -0.0296 +vn 0.8937 0.3587 0.2695 +vn 0.0000 -0.6842 -0.7293 +vn 0.0000 -0.7629 -0.6465 +vn 0.0000 -0.4426 0.8967 +vn 0.0000 -0.3771 0.9262 +vn 0.0000 -0.4508 -0.8926 +vn 0.0000 -0.7515 -0.6597 +vn 0.0000 -0.9636 0.2674 +vn 0.0000 -0.9547 0.2975 +vn 0.0000 0.9610 -0.2766 +vn 0.0000 0.7803 -0.6254 +vn 0.0000 0.4933 -0.8699 +vn 0.0000 0.1218 -0.9926 +vn 0.0000 -0.6736 0.7391 +vn 0.0000 -0.2295 0.9733 +vn 0.0000 -0.1672 0.9859 +vn 0.0000 -0.3258 0.9454 +vn 0.0000 0.1300 -0.9915 +vn 0.0000 0.5117 -0.8592 +vn 0.0000 -0.0312 0.9995 +vn 0.0000 0.9839 -0.1788 +vn 0.0000 -0.7818 0.6235 +vn 0.0000 -0.2316 0.9728 +vn 0.0000 -0.1562 0.9877 +vn 0.0000 -0.6559 -0.7549 +vn 0.0000 -0.2457 -0.9694 +vn 0.0000 0.8559 -0.5172 +vn 0.0000 -0.5543 0.8323 +vn 0.0000 -0.7825 -0.6226 +vn 0.0000 -0.6852 -0.7283 +vn 0.0000 -0.4048 -0.9144 +vn 0.0000 -0.5787 -0.8155 +vn 0.0000 -0.7998 -0.6002 +vn 0.0000 -0.9331 -0.3597 +vn 0.0000 -0.9334 -0.3588 +vn 0.0000 -0.3893 -0.9211 +vn 0.0000 -0.2699 -0.9629 +vn 0.0000 -0.9666 -0.2564 +vn 0.0000 0.8387 -0.5446 +vn 0.0000 0.9868 -0.1622 +vn 0.0000 0.6178 -0.7863 +vn 0.0000 0.8229 -0.5682 +vn 0.0000 0.8640 -0.5035 +vn 0.0000 0.1761 -0.9844 +vn 0.0000 0.0584 -0.9983 +vn 0.0000 0.8062 -0.5917 +vn 0.0000 0.6890 -0.7248 +vn 0.0000 0.9778 -0.2096 +vn 0.0000 0.8960 -0.4441 +vn 0.0000 0.5042 -0.8636 +vn 0.0000 0.1193 -0.9929 +vn 0.0000 0.2880 -0.9576 +vn 0.0000 0.3228 -0.9465 +vn 0.0000 -1.0000 -0.0046 +vn 0.0000 -0.9827 0.1854 +vn 0.0000 -0.8861 0.4635 +vn 0.0000 0.2810 -0.9597 +vn 0.0000 -0.8329 0.5534 +vn 0.0000 -0.5228 0.8525 +vn 0.0000 -0.9255 0.3787 +vn 0.0000 -0.7858 0.6185 +vn -0.2574 0.9663 0.0002 +vn 0.0000 1.0000 -0.0007 +vn 0.2574 0.9663 0.0002 +vn 0.2592 0.9571 0.1297 +s off +f 259/421/94 251/422/95 260/423/94 +f 264/424/96 265/425/96 259/426/96 +f 267/427/97 269/428/97 266/429/97 +f 253/430/98 267/431/99 275/432/99 +f 399/433/97 392/434/97 408/435/97 +f 394/436/96 407/437/96 389/438/96 +f 412/439/97 413/440/97 424/441/97 +f 433/442/100 417/443/100 432/444/100 +f 435/445/101 413/446/101 434/447/101 +f 441/448/96 442/449/96 443/450/96 +f 444/451/102 429/452/102 445/453/102 +f 442/454/103 415/455/103 443/456/103 +f 446/457/104 429/452/104 428/458/104 +f 434/447/105 412/459/105 444/451/105 +f 443/456/106 414/460/106 435/445/106 +f 432/444/107 416/461/107 442/454/107 +f 472/462/108 453/463/108 452/464/108 +f 482/465/96 476/466/96 456/467/96 +f 458/468/97 475/469/97 455/470/97 +f 493/471/97 494/472/97 488/473/97 +f 498/474/109 493/475/109 492/476/109 +f 500/477/110 491/478/110 490/479/110 +f 502/480/111 490/479/111 489/481/111 +f 501/482/96 500/483/96 503/484/96 +f 501/485/112 492/476/112 491/478/112 +f 507/486/113 509/487/113 506/488/113 +f 511/489/114 513/490/114 510/491/114 +f 515/492/115 517/493/115 514/494/115 +f 519/495/116 521/496/116 518/497/116 +f 522/498/117 516/499/117 515/492/117 +f 524/500/118 520/501/118 519/495/118 +f 518/502/97 517/503/97 516/504/97 +f 518/497/119 511/489/119 510/491/119 +f 515/505/96 514/506/96 521/507/96 +f 514/494/120 513/490/120 512/508/120 +f 506/488/121 523/509/121 522/498/121 +f 527/510/122 525/511/122 524/500/122 +f 531/512/123 533/513/123 530/514/123 +f 535/515/96 537/516/96 534/517/96 +f 536/518/124 539/519/124 537/516/124 +f 541/520/125 543/521/125 540/522/125 +f 542/523/97 530/514/97 543/521/97 +f 538/524/126 536/525/126 535/526/126 +f 544/527/127 534/517/127 545/528/127 +f 532/529/128 545/528/128 533/513/128 +f 545/528/129 547/530/129 533/513/129 +f 534/517/130 546/531/130 545/528/130 +f 534/517/131 549/532/131 548/533/131 +f 539/519/132 549/534/132 537/516/132 +f 543/521/133 552/535/133 540/522/133 +f 530/514/134 551/536/134 543/521/134 +f 533/513/135 553/537/135 530/514/135 +f 549/538/136 552/539/136 553/540/136 +f 259/541/96 554/542/96 555/543/96 +f 272/544/137 556/545/137 488/546/137 +f 270/547/138 264/548/138 263/549/138 +f 499/550/139 494/551/139 493/475/139 +f 275/552/97 267/553/97 556/554/97 +f 259/421/140 247/555/141 251/422/142 +f 259/426/96 260/556/96 264/424/96 +f 260/556/96 261/557/96 255/558/96 +f 263/559/96 260/556/96 258/560/96 +f 261/557/96 262/561/96 255/558/96 +f 255/558/96 258/560/96 260/556/96 +f 263/559/96 264/424/96 260/556/96 +f 267/427/97 268/562/97 269/428/97 +f 253/430/143 252/563/144 267/431/145 +f 367/564/97 366/565/97 405/566/97 +f 366/565/97 361/567/97 360/568/97 +f 360/568/97 405/566/97 366/565/97 +f 390/569/97 403/570/97 404/571/97 +f 403/570/97 402/572/97 404/571/97 +f 402/572/97 367/564/97 405/566/97 +f 402/572/97 405/566/97 404/571/97 +f 391/573/97 390/569/97 393/574/97 +f 393/574/97 390/569/97 404/571/97 +f 399/433/97 409/575/97 392/434/97 +f 409/575/97 391/573/97 392/434/97 +f 375/576/97 374/577/97 396/578/97 +f 374/577/97 399/433/97 408/435/97 +f 392/434/97 391/573/97 393/574/97 +f 368/579/97 371/580/97 387/581/97 +f 381/582/97 380/583/97 387/581/97 +f 380/583/97 368/579/97 387/581/97 +f 377/584/97 376/585/97 375/576/97 +f 376/585/97 381/582/97 386/586/97 +f 375/576/97 376/585/97 386/586/97 +f 396/578/97 377/584/97 375/576/97 +f 381/582/97 387/581/97 386/586/97 +f 408/435/97 396/578/97 374/577/97 +f 383/587/96 382/588/96 384/589/96 +f 382/588/96 379/590/96 385/591/96 +f 384/589/96 382/588/96 385/591/96 +f 379/590/96 378/592/96 372/593/96 +f 378/592/96 397/594/96 372/593/96 +f 369/595/96 383/587/96 384/589/96 +f 384/589/96 370/596/96 369/595/96 +f 398/597/96 373/598/96 410/599/96 +f 373/598/96 372/593/96 397/594/96 +f 410/599/96 373/598/96 397/594/96 +f 372/593/96 385/591/96 379/590/96 +f 411/600/96 398/597/96 395/601/96 +f 389/438/96 388/602/96 394/436/96 +f 388/602/96 411/600/96 395/601/96 +f 394/436/96 388/602/96 395/601/96 +f 401/603/96 400/604/96 407/437/96 +f 400/604/96 389/438/96 407/437/96 +f 362/605/96 365/606/96 363/607/96 +f 365/606/96 364/608/96 406/609/96 +f 363/607/96 365/606/96 406/609/96 +f 364/608/96 401/603/96 406/609/96 +f 398/597/96 410/599/96 395/601/96 +f 407/437/96 406/609/96 401/603/96 +f 417/610/97 418/611/97 419/612/97 +f 417/610/97 419/612/97 420/613/97 +f 416/614/97 417/610/97 420/613/97 +f 421/615/97 422/616/97 415/617/97 +f 422/616/97 423/618/97 414/619/97 +f 416/614/97 420/613/97 421/615/97 +f 415/617/97 416/614/97 421/615/97 +f 422/616/97 414/619/97 415/617/97 +f 423/618/97 424/441/97 413/440/97 +f 424/441/97 425/620/97 412/439/97 +f 425/620/97 426/621/97 429/622/97 +f 426/621/146 427/623/146 429/622/146 +f 427/623/147 428/624/147 429/622/147 +f 413/440/97 414/619/97 423/618/97 +f 425/620/97 429/622/97 412/439/97 +f 433/442/100 418/625/100 417/443/100 +f 435/445/101 414/460/101 413/446/101 +f 439/626/96 438/627/96 445/628/96 +f 438/627/96 437/629/96 444/630/96 +f 437/629/96 436/631/96 434/632/96 +f 436/631/96 440/633/96 435/634/96 +f 436/631/96 435/634/96 434/632/96 +f 440/633/96 441/448/96 443/450/96 +f 435/634/96 440/633/96 443/450/96 +f 447/635/148 439/626/148 445/628/148 +f 438/627/96 444/630/96 445/628/96 +f 445/628/149 446/636/149 447/635/149 +f 431/637/96 430/638/96 432/639/96 +f 430/638/96 433/640/96 432/639/96 +f 441/448/96 431/637/96 442/449/96 +f 431/637/96 432/639/96 442/449/96 +f 434/632/96 444/630/96 437/629/96 +f 444/451/102 412/459/102 429/452/102 +f 442/454/103 416/461/103 415/455/103 +f 446/457/104 445/453/104 429/452/104 +f 434/447/105 413/446/105 412/459/105 +f 443/456/106 415/455/106 414/460/106 +f 432/444/107 417/443/107 416/461/107 +f 472/462/108 473/641/108 453/463/108 +f 469/642/96 468/643/96 480/644/96 +f 468/643/96 451/645/96 480/644/96 +f 450/646/96 453/647/96 473/648/96 +f 464/649/96 469/642/96 480/644/96 +f 451/645/96 450/646/96 473/648/96 +f 451/645/96 473/648/96 480/644/96 +f 465/650/96 464/649/96 480/644/96 +f 471/651/96 457/652/96 460/653/96 +f 457/652/96 456/467/96 460/653/96 +f 456/467/96 465/650/96 480/644/96 +f 456/467/96 480/644/96 482/465/96 +f 482/465/96 484/654/96 477/655/96 +f 484/654/96 485/656/96 479/657/96 +f 477/655/96 484/654/96 479/657/96 +f 476/466/96 461/658/96 456/467/96 +f 461/658/96 460/653/96 456/467/96 +f 482/465/96 477/655/96 476/466/96 +f 481/659/97 472/660/97 448/661/97 +f 472/660/97 452/662/97 449/663/97 +f 472/660/97 449/663/97 448/661/97 +f 486/664/97 487/665/97 478/666/97 +f 487/665/97 483/667/97 474/668/97 +f 478/666/97 487/665/97 474/668/97 +f 483/667/97 481/659/97 455/470/97 +f 448/661/97 467/669/97 481/659/97 +f 467/669/97 466/670/97 481/659/97 +f 481/659/97 466/670/97 463/671/97 +f 462/672/97 481/659/97 463/671/97 +f 455/470/97 454/673/97 459/674/97 +f 454/673/97 470/675/97 459/674/97 +f 462/672/97 455/470/97 481/659/97 +f 474/668/97 483/667/97 475/469/97 +f 475/469/97 483/667/97 455/470/97 +f 459/674/97 458/468/97 455/470/97 +f 496/676/97 272/677/97 494/472/97 +f 272/677/97 488/473/97 494/472/97 +f 488/473/97 489/678/97 490/679/97 +f 491/680/97 492/681/97 488/473/97 +f 492/681/97 493/471/97 488/473/97 +f 488/473/97 490/679/97 491/680/97 +f 495/682/97 496/676/97 494/472/97 +f 498/474/109 499/550/109 493/475/109 +f 500/477/110 501/485/110 491/478/110 +f 502/480/111 500/477/111 490/479/111 +f 502/683/96 503/484/96 500/483/96 +f 503/484/96 270/684/96 505/685/96 +f 499/686/96 503/484/96 505/685/96 +f 270/684/96 497/687/96 505/685/96 +f 497/687/96 504/688/96 505/685/96 +f 499/686/96 498/689/96 503/484/96 +f 498/689/96 501/482/96 503/484/96 +f 501/485/112 498/474/112 492/476/112 +f 507/486/113 508/690/113 509/487/113 +f 511/489/114 512/508/114 513/490/114 +f 515/492/115 516/499/115 517/493/115 +f 519/495/116 520/501/116 521/496/116 +f 522/498/117 523/509/117 516/499/117 +f 524/500/118 525/511/118 520/501/118 +f 509/691/97 508/692/97 526/693/97 +f 526/693/97 527/694/97 509/691/97 +f 527/694/97 524/695/97 509/691/97 +f 524/695/97 519/696/97 523/697/97 +f 519/696/97 518/502/97 516/504/97 +f 518/502/97 510/698/97 517/503/97 +f 510/698/97 513/699/97 517/503/97 +f 519/696/97 516/504/97 523/697/97 +f 523/697/97 509/691/97 524/695/97 +f 518/497/119 521/496/119 511/489/119 +f 521/507/96 520/700/96 515/505/96 +f 520/700/96 525/701/96 522/702/96 +f 525/701/96 528/703/96 506/704/96 +f 528/703/96 529/705/96 506/704/96 +f 529/705/96 507/706/96 506/704/96 +f 506/704/96 522/702/96 525/701/96 +f 520/700/96 522/702/96 515/505/96 +f 512/707/96 511/708/96 514/506/96 +f 511/708/96 521/507/96 514/506/96 +f 514/494/120 517/493/120 513/490/120 +f 506/488/121 509/487/121 523/509/121 +f 527/510/122 528/709/122 525/511/122 +f 531/512/123 532/529/123 533/513/123 +f 535/515/96 536/518/96 537/516/96 +f 536/518/124 538/710/124 539/519/124 +f 541/520/125 542/523/125 543/521/125 +f 542/523/97 531/512/97 530/514/97 +f 535/526/126 544/711/126 532/712/126 +f 532/712/126 531/713/126 535/526/126 +f 531/713/126 542/714/126 535/526/126 +f 542/714/126 541/715/126 535/526/126 +f 541/715/126 538/524/126 535/526/126 +f 544/527/127 535/515/127 534/517/127 +f 532/529/128 544/527/128 545/528/128 +f 545/528/129 546/716/129 547/530/129 +f 534/517/130 548/717/130 546/531/130 +f 534/517/131 537/516/131 549/532/131 +f 539/519/132 550/718/132 549/534/132 +f 543/521/133 551/719/133 552/535/133 +f 530/514/134 553/720/134 551/536/134 +f 533/513/135 547/721/135 553/537/135 +f 553/540/136 547/722/136 546/723/136 +f 546/723/136 548/724/136 553/540/136 +f 548/724/136 549/538/136 553/540/136 +f 549/538/136 550/725/136 552/539/136 +f 552/539/136 551/726/136 553/540/136 +f 259/541/96 265/727/96 554/542/96 +f 272/544/137 271/728/137 556/545/137 +f 270/547/138 503/729/138 264/548/138 +f 499/550/139 505/730/139 494/551/139 +f 267/553/97 266/731/97 556/554/97 +f 556/554/97 271/732/97 275/552/97 +f 271/732/97 257/733/97 275/552/97 +f 275/552/97 257/733/97 256/734/97 +f 256/734/97 273/735/97 274/736/97 +f 275/552/97 256/734/97 274/736/97 +s 1 +f 249/737/150 250/738/151 251/422/152 +f 253/430/153 254/739/154 249/737/150 +f 256/740/155 258/741/156 255/742/157 +f 250/738/158 262/743/159 261/744/160 +f 271/745/161 272/746/162 263/747/161 +f 249/737/163 256/748/155 255/749/157 +f 251/422/164 261/744/160 260/423/165 +f 254/739/166 273/750/167 249/737/163 +f 253/430/168 274/751/169 254/739/166 +f 281/752/170 289/753/171 290/754/172 +f 298/755/173 300/756/174 297/757/175 +f 302/758/176 304/759/177 301/760/178 +f 306/761/179 308/762/180 305/763/181 +f 310/764/182 312/765/183 309/766/184 +f 314/767/185 316/768/186 313/769/187 +f 317/770/188 307/771/189 306/761/179 +f 319/772/190 318/773/191 317/770/188 +f 304/759/192 300/756/193 301/760/194 +f 309/766/184 303/774/195 302/758/176 +f 313/769/187 299/775/196 298/755/173 +f 321/776/197 311/777/198 310/764/182 +f 323/778/199 322/779/200 321/776/197 +f 326/780/201 328/781/202 325/782/203 +f 325/782/203 324/783/204 323/778/199 +f 329/784/205 327/785/206 326/780/201 +f 331/786/207 330/787/208 329/784/205 +f 305/763/181 315/788/209 314/767/185 +f 301/789/194 333/790/210 334/791/211 +f 335/792/212 337/793/213 338/794/214 +f 336/795/215 340/796/216 337/793/213 +f 302/797/176 334/791/211 341/798/217 +f 295/799/218 303/800/195 296/801/219 +f 304/802/192 294/803/220 297/804/221 +f 343/805/222 284/806/223 342/807/224 +f 298/808/173 294/803/220 293/809/225 +f 315/810/209 344/811/226 345/812/227 +f 321/813/197 347/814/228 323/815/199 +f 279/816/229 322/817/200 324/818/204 +f 306/819/179 290/754/172 289/753/171 +f 310/820/182 348/821/230 349/822/231 +f 276/823/232 311/824/198 277/825/233 +f 314/826/185 292/827/234 291/828/235 +f 316/829/186 351/830/236 299/831/196 +f 307/832/189 352/833/237 353/834/238 +f 325/835/203 355/836/239 326/837/201 +f 281/752/170 328/838/202 327/839/206 +f 317/840/188 287/841/240 319/842/190 +f 309/843/184 341/798/217 348/821/230 +f 296/801/219 312/844/183 276/823/232 +f 313/845/187 293/809/225 292/827/234 +f 299/831/196 333/790/210 300/846/174 +f 315/810/209 350/847/241 316/829/186 +f 310/820/182 346/848/242 321/813/197 +f 278/849/243 311/824/198 322/817/200 +f 314/826/185 290/754/172 305/850/181 +f 325/835/203 347/814/228 354/851/244 +f 279/816/229 328/838/202 280/852/245 +f 306/819/179 288/853/246 317/840/188 +f 307/832/189 344/811/226 308/854/180 +f 318/855/191 356/856/247 352/833/237 +f 326/837/201 357/857/248 329/858/205 +f 282/859/249 327/839/206 330/860/208 +f 329/858/205 358/861/250 331/862/207 +f 283/863/251 330/860/208 332/864/252 +f 359/865/253 287/841/240 286/866/254 +f 335/792/212 356/856/247 320/867/255 +f 331/862/207 340/796/216 339/868/256 +f 284/806/223 332/864/252 342/807/224 +f 359/865/253 285/869/257 343/805/222 +f 350/847/241 345/812/227 346/848/242 +f 361/870/258 363/871/259 360/872/259 +f 365/873/260 367/874/261 364/875/261 +f 369/876/262 371/877/263 368/878/262 +f 373/879/264 375/880/265 372/881/265 +f 377/882/266 379/883/267 376/884/267 +f 381/885/268 383/886/269 380/887/269 +f 385/888/270 387/889/271 384/890/271 +f 389/891/272 391/892/273 388/893/273 +f 393/894/274 395/895/275 392/896/275 +f 384/890/271 371/877/276 370/897/276 +f 380/887/269 369/876/262 368/878/262 +f 376/884/267 382/898/268 381/885/268 +f 372/881/265 386/899/270 385/888/270 +f 396/900/277 378/901/266 377/882/266 +f 398/902/278 374/903/264 373/879/264 +f 401/904/279 403/905/280 400/906/280 +f 405/907/281 407/908/282 404/909/282 +f 364/875/261 402/910/279 401/904/279 +f 360/872/259 406/911/281 405/907/281 +f 404/909/282 394/912/274 393/894/274 +f 400/906/280 390/913/272 389/891/272 +f 392/896/275 410/914/283 408/915/283 +f 388/893/273 409/916/284 411/917/284 +f 411/917/284 399/918/278 398/902/278 +f 408/915/283 397/919/277 396/900/277 +f 419/920/285 431/921/286 420/922/286 +f 423/923/287 437/924/288 424/925/288 +f 425/926/289 439/927/290 426/928/291 +f 421/929/292 440/930/293 422/931/293 +f 426/928/291 447/932/294 427/933/294 +f 424/925/288 438/934/289 425/926/289 +f 422/931/293 436/935/287 423/923/287 +f 420/922/286 441/936/292 421/929/292 +f 449/937/295 451/938/296 448/939/296 +f 449/937/295 453/463/297 450/940/295 +f 455/941/298 457/942/299 454/943/299 +f 459/944/300 461/945/301 458/946/301 +f 463/947/302 465/948/303 462/949/303 +f 467/950/304 469/951/305 466/952/305 +f 462/949/303 456/953/298 455/941/298 +f 454/943/299 471/954/306 470/955/306 +f 475/956/307 477/957/308 474/958/308 +f 448/939/296 468/959/304 467/950/304 +f 466/952/305 464/960/302 463/947/302 +f 470/955/306 460/961/300 459/944/300 +f 458/946/301 476/962/307 475/956/307 +f 474/958/308 479/963/309 478/964/309 +f 473/641/310 481/965/311 480/966/311 +f 480/966/311 483/967/312 482/968/312 +f 478/964/309 485/969/313 486/970/313 +f 482/968/312 487/971/314 484/972/314 +f 497/973/315 272/746/162 496/974/315 +f 505/730/316 495/975/317 494/551/316 +f 504/976/317 496/974/315 495/975/317 +f 251/422/152 247/555/318 248/977/319 +f 248/977/319 249/737/150 251/422/152 +f 249/737/150 248/977/319 253/430/153 +f 248/977/319 252/563/320 253/430/153 +f 256/740/155 257/978/156 258/741/156 +f 250/738/158 249/737/163 262/743/159 +f 272/746/162 270/979/162 263/747/161 +f 263/747/161 258/741/156 257/978/156 +f 257/978/156 271/745/161 263/747/161 +f 255/749/157 262/743/159 249/737/163 +f 249/737/163 273/750/167 256/748/155 +f 251/422/164 250/738/158 261/744/160 +f 254/739/166 274/751/169 273/750/167 +f 253/430/168 275/432/321 274/751/169 +f 296/801/219 276/823/232 293/809/225 +f 276/823/232 277/825/233 292/827/234 +f 277/825/233 278/849/243 292/827/234 +f 278/849/243 279/816/229 291/828/235 +f 292/827/234 278/849/243 291/828/235 +f 279/816/229 280/852/245 291/828/235 +f 280/852/245 281/752/170 290/754/172 +f 291/828/235 280/852/245 290/754/172 +f 281/752/170 282/859/249 289/753/171 +f 282/859/249 283/863/251 288/853/246 +f 283/863/251 284/806/223 285/869/257 +f 285/869/257 286/866/254 283/863/251 +f 286/866/254 287/841/240 288/853/246 +f 286/866/254 288/853/246 283/863/251 +f 282/859/249 288/853/246 289/753/171 +f 295/799/218 296/801/219 293/809/225 +f 276/823/232 292/827/234 293/809/225 +f 293/809/225 294/803/220 295/799/218 +f 298/755/173 299/775/196 300/756/174 +f 302/758/176 303/774/195 304/759/177 +f 306/761/179 307/771/189 308/762/180 +f 310/764/182 311/777/198 312/765/183 +f 314/767/185 315/788/209 316/768/186 +f 317/770/188 318/773/191 307/771/189 +f 319/772/190 320/980/255 318/773/191 +f 304/759/192 297/757/221 300/756/193 +f 309/766/184 312/765/183 303/774/195 +f 313/769/187 316/768/186 299/775/196 +f 321/776/197 322/779/200 311/777/198 +f 323/778/199 324/783/204 322/779/200 +f 326/780/201 327/785/206 328/781/202 +f 325/782/203 328/781/202 324/783/204 +f 329/784/205 330/787/208 327/785/206 +f 331/786/207 332/981/252 330/787/208 +f 305/763/181 308/762/180 315/788/209 +f 301/789/194 300/846/193 333/790/210 +f 335/792/212 336/795/215 337/793/213 +f 336/795/215 339/868/256 340/796/216 +f 302/797/176 301/789/178 334/791/211 +f 295/799/218 304/802/177 303/800/195 +f 304/802/192 295/799/218 294/803/220 +f 343/805/222 285/869/257 284/806/223 +f 298/808/173 297/804/175 294/803/220 +f 315/810/209 308/854/180 344/811/226 +f 321/813/197 346/848/242 347/814/228 +f 279/816/229 278/849/243 322/817/200 +f 306/819/179 305/850/181 290/754/172 +f 310/820/182 309/843/184 348/821/230 +f 276/823/232 312/844/183 311/824/198 +f 314/826/185 313/845/187 292/827/234 +f 316/829/186 350/847/241 351/830/236 +f 307/832/189 318/855/191 352/833/237 +f 325/835/203 354/851/244 355/836/239 +f 281/752/170 280/852/245 328/838/202 +f 317/840/188 288/853/246 287/841/240 +f 309/843/184 302/797/176 341/798/217 +f 296/801/219 303/800/195 312/844/183 +f 313/845/187 298/808/173 293/809/225 +f 299/831/196 351/830/236 333/790/210 +f 315/810/209 345/812/227 350/847/241 +f 310/820/182 349/822/231 346/848/242 +f 278/849/243 277/825/233 311/824/198 +f 314/826/185 291/828/235 290/754/172 +f 325/835/203 323/815/199 347/814/228 +f 279/816/229 324/818/204 328/838/202 +f 306/819/179 289/753/171 288/853/246 +f 307/832/189 353/834/238 344/811/226 +f 318/855/191 320/867/255 356/856/247 +f 326/837/201 355/836/239 357/857/248 +f 282/859/249 281/752/170 327/839/206 +f 329/858/205 357/857/248 358/861/250 +f 283/863/251 282/859/249 330/860/208 +f 359/865/253 319/842/190 287/841/240 +f 335/792/212 338/794/214 356/856/247 +f 331/862/207 358/861/250 340/796/216 +f 284/806/223 283/863/251 332/864/252 +f 359/865/253 286/866/254 285/869/257 +f 352/833/237 356/856/247 338/794/214 +f 338/794/214 337/793/213 358/861/250 +f 337/793/213 340/796/216 358/861/250 +f 358/861/250 357/857/248 352/833/237 +f 357/857/248 355/836/239 353/834/238 +f 355/836/239 354/851/244 344/811/226 +f 354/851/244 347/814/228 345/812/227 +f 347/814/228 346/848/242 345/812/227 +f 346/848/242 349/822/231 350/847/241 +f 349/822/231 348/821/230 350/847/241 +f 348/821/230 341/798/217 351/830/236 +f 341/798/217 334/791/211 351/830/236 +f 334/791/211 333/790/210 351/830/236 +f 351/830/236 350/847/241 348/821/230 +f 355/836/239 344/811/226 353/834/238 +f 344/811/226 354/851/244 345/812/227 +f 358/861/250 352/833/237 338/794/214 +f 353/834/238 352/833/237 357/857/248 +f 361/870/258 362/982/258 363/871/259 +f 365/873/260 366/983/260 367/874/261 +f 369/876/262 370/897/263 371/877/263 +f 373/879/264 374/903/264 375/880/265 +f 377/882/266 378/901/266 379/883/267 +f 381/885/268 382/898/268 383/886/269 +f 385/888/270 386/899/270 387/889/271 +f 389/891/272 390/913/272 391/892/273 +f 393/894/274 394/912/274 395/895/275 +f 384/890/271 387/889/271 371/877/276 +f 380/887/269 383/886/269 369/876/262 +f 376/884/267 379/883/267 382/898/268 +f 372/881/265 375/880/265 386/899/270 +f 396/900/277 397/919/277 378/901/266 +f 398/902/278 399/918/278 374/903/264 +f 401/904/279 402/910/279 403/905/280 +f 405/907/281 406/911/281 407/908/282 +f 364/875/261 367/874/261 402/910/279 +f 360/872/259 363/871/259 406/911/281 +f 404/909/282 407/908/282 394/912/274 +f 400/906/280 403/905/280 390/913/272 +f 392/896/275 395/895/275 410/914/283 +f 388/893/273 391/892/273 409/916/284 +f 411/917/284 409/916/284 399/918/278 +f 408/915/283 410/914/283 397/919/277 +f 419/920/285 430/984/285 431/921/286 +f 423/923/287 436/935/287 437/924/288 +f 425/926/289 438/934/289 439/927/290 +f 421/929/292 441/936/292 440/930/293 +f 426/928/291 439/927/290 447/932/294 +f 424/925/288 437/924/288 438/934/289 +f 422/931/293 440/930/293 436/935/287 +f 420/922/286 431/921/286 441/936/292 +f 449/937/295 450/940/295 451/938/296 +f 449/937/295 452/464/297 453/463/297 +f 455/941/298 456/953/298 457/942/299 +f 459/944/300 460/961/300 461/945/301 +f 463/947/302 464/960/302 465/948/303 +f 467/950/304 468/959/304 469/951/305 +f 462/949/303 465/948/303 456/953/298 +f 454/943/299 457/942/299 471/954/306 +f 475/956/307 476/962/307 477/957/308 +f 448/939/296 451/938/296 468/959/304 +f 466/952/305 469/951/305 464/960/302 +f 470/955/306 471/954/306 460/961/300 +f 458/946/301 461/945/301 476/962/307 +f 474/958/308 477/957/308 479/963/309 +f 473/641/310 472/462/310 481/965/311 +f 480/966/311 481/965/311 483/967/312 +f 478/964/309 479/963/309 485/969/313 +f 482/968/312 483/967/312 487/971/314 +f 497/973/315 270/979/162 272/746/162 +f 505/730/316 504/976/317 495/975/317 +f 504/976/317 497/973/315 496/974/315 diff --git a/src/main/resources/assets/hbm/models/weapons/folly.obj b/src/main/resources/assets/hbm/models/weapons/folly.obj new file mode 100644 index 000000000..814647aec --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/folly.obj @@ -0,0 +1,3004 @@ +# Blender v2.79 (sub 0) OBJ File: 'folly.blend' +# www.blender.org +o Cog +v 0.382683 1.923880 -4.500000 +v 0.707107 1.707107 -4.500000 +v 0.923880 1.382684 -4.500000 +v 1.000000 1.000000 -4.500000 +v 0.923880 0.617316 -4.500000 +v 0.707107 0.292893 -4.500000 +v 0.382683 0.076120 -4.500000 +v 0.000000 0.000000 -4.500000 +v -0.382683 0.076120 -4.500000 +v -0.707107 0.292893 -4.500000 +v -0.923880 0.617316 -4.500000 +v -1.000000 1.000000 -4.500000 +v -0.923880 1.382683 -4.500000 +v -0.707107 1.707107 -4.500000 +v -0.382683 1.923880 -4.500000 +v 0.000000 2.000000 -4.500000 +v 0.000000 2.000000 -3.500000 +v -0.382683 1.923880 -3.500000 +v -0.707107 1.707107 -3.500000 +v -0.923880 1.382683 -3.500000 +v -1.000000 1.000000 -3.500000 +v -0.923880 0.617316 -3.500000 +v -0.707107 0.292893 -3.500000 +v -0.382683 0.076120 -3.500000 +v 0.000000 0.000000 -3.500000 +v 0.382683 0.076120 -3.500000 +v 0.707107 0.292893 -3.500000 +v 0.923880 0.617316 -3.500000 +v 1.000000 1.000000 -3.500000 +v 0.923880 1.382684 -3.500000 +v 0.707107 1.707107 -3.500000 +v 0.382683 1.923880 -3.500000 +v 1.250000 0.750000 -4.375000 +v -1.250000 0.750000 -4.375000 +v 1.250000 1.250000 -4.375000 +v -1.250000 1.250000 -4.375000 +v -1.250000 1.250000 -4.125000 +v 1.250000 1.250000 -4.125000 +v -1.250000 0.750000 -4.125000 +v 1.250000 0.750000 -4.125000 +v 0.250000 2.250000 -4.125000 +v 0.250000 -0.250000 -4.125000 +v -0.250000 2.250000 -4.125000 +v -0.250000 -0.250000 -4.125000 +v -0.250000 -0.250000 -4.375000 +v -0.250000 2.250000 -4.375000 +v 0.250000 -0.250000 -4.375000 +v 0.250000 2.250000 -4.375000 +v -0.707107 2.060660 -4.125000 +v 1.060660 0.292893 -4.125000 +v -1.060660 1.707107 -4.125000 +v 0.707107 -0.060660 -4.125000 +v 0.707107 -0.060660 -4.375000 +v -1.060660 1.707107 -4.375000 +v 1.060660 0.292893 -4.375000 +v -0.707107 2.060660 -4.375000 +v 1.060660 1.707107 -4.375000 +v -0.707107 -0.060660 -4.375000 +v 0.707107 2.060660 -4.375000 +v -1.060660 0.292893 -4.375000 +v -1.060660 0.292893 -4.125000 +v 0.707107 2.060660 -4.125000 +v -0.707107 -0.060660 -4.125000 +v 1.060660 1.707107 -4.125000 +vt 0.668136 0.865446 +vt 0.629147 0.797819 +vt 0.645297 0.634554 +vt 0.705005 0.634623 +vt 0.743971 0.702209 +vt 0.727831 0.865378 +vt 0.126866 0.765625 +vt 0.134328 0.828125 +vt 0.126866 0.828125 +vt 0.216418 0.828125 +vt 0.208955 0.765625 +vt 0.216418 0.765625 +vt 0.134328 0.671875 +vt 0.208955 0.734375 +vt 0.134328 0.734375 +vt 0.208955 0.765625 +vt 0.134328 0.828125 +vt 0.134328 0.765625 +vt 0.134328 0.859375 +vt 0.208955 0.828125 +vt 0.208955 0.859375 +vt 0.216418 0.828125 +vt 0.216418 0.765625 +vt 0.126866 0.765625 +vt 0.126866 0.828125 +vt 0.134328 0.859375 +vt 0.208955 0.828125 +vt 0.208955 0.859375 +vt 0.208955 0.734375 +vt 0.134328 0.765625 +vt 0.134328 0.734375 +vt 0.134328 0.671875 +vt 0.126866 0.765625 +vt 0.134328 0.828125 +vt 0.126866 0.828125 +vt 0.216418 0.828125 +vt 0.208955 0.765625 +vt 0.216418 0.765625 +vt 0.134328 0.859375 +vt 0.208955 0.828125 +vt 0.208955 0.859375 +vt 0.208955 0.734375 +vt 0.134328 0.765625 +vt 0.134328 0.734375 +vt 0.134328 0.671875 +vt 0.134328 0.671875 +vt 0.208955 0.734375 +vt 0.134328 0.734375 +vt 0.134328 0.765625 +vt 0.208955 0.828125 +vt 0.134328 0.828125 +vt 0.134328 0.859375 +vt 0.208955 0.859375 +vt 0.216418 0.828125 +vt 0.208955 0.765625 +vt 0.216418 0.765625 +vt 0.126866 0.765625 +vt 0.126866 0.828125 +vt 0.656716 0.874957 +vt 0.645297 0.865445 +vt 0.635616 0.838358 +vt 0.626876 0.750000 +vt 0.629147 0.702181 +vt 0.635616 0.661642 +vt 0.656716 0.625043 +vt 0.668136 0.634554 +vt 0.677817 0.661642 +vt 0.684285 0.702181 +vt 0.686557 0.750000 +vt 0.684285 0.797819 +vt 0.677817 0.838358 +vt 0.716418 0.874884 +vt 0.705005 0.865378 +vt 0.695330 0.838306 +vt 0.688865 0.797791 +vt 0.686595 0.750000 +vt 0.688865 0.702209 +vt 0.695330 0.661694 +vt 0.716418 0.625117 +vt 0.727831 0.634623 +vt 0.737506 0.661694 +vt 0.746241 0.750000 +vt 0.743971 0.797791 +vt 0.737506 0.838306 +vt 0.208955 0.671875 +vt 0.208955 0.671875 +vt 0.208955 0.671875 +vt 0.208955 0.671875 +vt 0.776119 0.562500 +vt 0.746269 0.515625 +vt 0.776119 0.515625 +vt 0.776119 0.187500 +vt 0.746269 0.140625 +vt 0.776119 0.140625 +vt 0.776119 0.609375 +vt 0.746269 0.562500 +vt 0.776119 0.234375 +vt 0.746269 0.187500 +vt 0.776119 0.656250 +vt 0.746269 0.609375 +vt 0.776119 0.281250 +vt 0.746269 0.234375 +vt 0.776119 0.703125 +vt 0.746269 0.656250 +vt 0.776119 0.328125 +vt 0.746269 0.281250 +vt 0.776119 0.750000 +vt 0.746269 0.703125 +vt 0.776119 0.421875 +vt 0.746269 0.375000 +vt 0.776119 0.375000 +vt 0.746269 0.328125 +vt 0.776119 0.046875 +vt 0.746269 -0.000000 +vt 0.776119 -0.000000 +vt 0.776119 0.468750 +vt 0.746269 0.421875 +vt 0.776119 0.093750 +vt 0.746269 0.046875 +vt 0.746269 0.468750 +vt 0.746269 0.093750 +vt 0.746269 0.750000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +s off +f 32/1/1 20/2/1 24/3/1 +f 7/4/2 11/5/2 15/6/2 +f 41/7/3 46/8/3 43/9/3 +f 44/10/4 47/11/4 42/12/4 +f 38/13/1 39/14/1 40/15/1 +f 34/16/2 35/17/2 33/18/2 +f 39/14/4 33/18/4 40/15/4 +f 38/19/3 36/20/3 37/21/3 +f 37/22/5 34/16/5 39/23/5 +f 40/24/6 35/17/6 38/25/6 +f 43/26/5 45/27/5 44/28/5 +f 42/29/6 48/30/6 41/31/6 +f 47/11/2 46/8/2 48/30/2 +f 43/32/1 42/29/1 41/31/1 +f 49/33/7 54/34/7 51/35/7 +f 52/36/8 55/37/8 50/38/8 +f 51/39/9 53/40/9 52/41/9 +f 50/42/10 56/43/10 49/44/10 +f 55/37/2 54/34/2 56/43/2 +f 51/45/1 50/42/1 49/44/1 +f 62/46/1 63/47/1 64/48/1 +f 57/49/2 60/50/2 59/51/2 +f 63/47/8 57/49/8 64/48/8 +f 62/52/7 60/50/7 61/53/7 +f 61/54/9 58/55/9 63/56/9 +f 64/57/10 59/51/10 62/58/10 +f 32/1/1 17/59/1 18/60/1 +f 18/60/1 19/61/1 32/1/1 +f 19/61/1 20/2/1 32/1/1 +f 20/2/1 21/62/1 22/63/1 +f 22/63/1 23/64/1 20/2/1 +f 23/64/1 24/3/1 20/2/1 +f 24/3/1 25/65/1 26/66/1 +f 26/66/1 27/67/1 28/68/1 +f 28/68/1 29/69/1 32/1/1 +f 29/69/1 30/70/1 32/1/1 +f 30/70/1 31/71/1 32/1/1 +f 24/3/1 26/66/1 32/1/1 +f 26/66/1 28/68/1 32/1/1 +f 15/6/2 16/72/2 1/73/2 +f 1/73/2 2/74/2 3/75/2 +f 3/75/2 4/76/2 7/4/2 +f 4/76/2 5/77/2 7/4/2 +f 5/77/2 6/78/2 7/4/2 +f 7/4/2 8/79/2 9/80/2 +f 9/80/2 10/81/2 7/4/2 +f 10/81/2 11/5/2 7/4/2 +f 11/5/2 12/82/2 13/83/2 +f 13/83/2 14/84/2 11/5/2 +f 14/84/2 15/6/2 11/5/2 +f 15/6/2 1/73/2 7/4/2 +f 1/73/2 3/75/2 7/4/2 +f 41/7/3 48/30/3 46/8/3 +f 44/10/4 45/27/4 47/11/4 +f 38/13/1 37/85/1 39/14/1 +f 34/16/2 36/20/2 35/17/2 +f 39/14/4 34/16/4 33/18/4 +f 38/19/3 35/17/3 36/20/3 +f 37/22/5 36/20/5 34/16/5 +f 40/24/6 33/18/6 35/17/6 +f 43/26/5 46/8/5 45/27/5 +f 42/29/6 47/11/6 48/30/6 +f 47/11/2 45/27/2 46/8/2 +f 43/32/1 44/86/1 42/29/1 +f 49/33/7 56/43/7 54/34/7 +f 52/36/8 53/40/8 55/37/8 +f 51/39/9 54/34/9 53/40/9 +f 50/42/10 55/37/10 56/43/10 +f 55/37/2 53/40/2 54/34/2 +f 51/45/1 52/87/1 50/42/1 +f 62/46/1 61/88/1 63/47/1 +f 57/49/2 58/55/2 60/50/2 +f 63/47/8 58/55/8 57/49/8 +f 62/52/7 59/51/7 60/50/7 +f 61/54/9 60/50/9 58/55/9 +f 64/57/10 57/49/10 59/51/10 +s 1 +f 12/89/5 20/90/11 13/91/11 +f 4/92/6 28/93/12 5/94/12 +f 11/95/13 21/96/5 12/89/5 +f 3/97/14 29/98/6 4/92/6 +f 10/99/9 22/100/13 11/95/13 +f 2/101/10 30/102/14 3/97/14 +f 9/103/15 23/104/9 10/99/9 +f 1/105/16 31/106/10 2/101/10 +f 8/107/4 24/108/15 9/103/15 +f 15/109/17 17/110/3 16/111/3 +f 16/111/3 32/112/16 1/105/16 +f 7/113/18 25/114/4 8/115/4 +f 14/116/7 18/117/17 15/109/17 +f 6/118/8 26/119/18 7/113/18 +f 13/91/11 19/120/7 14/116/7 +f 5/94/12 27/121/8 6/118/8 +f 12/89/5 21/96/5 20/90/11 +f 4/92/6 29/98/6 28/93/12 +f 11/95/13 22/100/13 21/96/5 +f 3/97/14 30/102/14 29/98/6 +f 10/99/9 23/104/9 22/100/13 +f 2/101/10 31/106/10 30/102/14 +f 9/103/15 24/108/15 23/104/9 +f 1/105/16 32/112/16 31/106/10 +f 8/107/4 25/122/4 24/108/15 +f 15/109/17 18/117/17 17/110/3 +f 16/111/3 17/110/3 32/112/16 +f 7/113/18 26/119/18 25/114/4 +f 14/116/7 19/120/7 18/117/17 +f 6/118/8 27/121/8 26/119/18 +f 13/91/11 20/90/11 19/120/7 +f 5/94/12 28/93/12 27/121/8 +o Breech +v -0.500000 0.000000 -6.000000 +v 0.500000 0.000000 -6.000000 +v -0.500000 0.000000 -7.000000 +v 0.500000 0.000000 -7.000000 +v -0.500000 -0.250000 -7.250000 +v 0.500000 -0.250000 -7.250000 +v -0.500000 -0.250000 -5.750000 +v 0.500000 -0.250000 -5.750000 +v 0.250000 0.125000 -7.187500 +v -0.250000 0.125000 -7.187500 +v 0.250000 0.125000 -5.812500 +v -0.250000 0.125000 -5.812500 +v -0.500000 -0.250000 -5.625000 +v 0.500000 -0.250000 -5.625000 +v -0.500000 0.125000 -5.625000 +v 0.500000 0.125000 -5.625000 +v 0.500000 -0.250000 -7.375000 +v -0.500000 -0.250000 -7.375000 +v 0.500000 0.125000 -7.375000 +v -0.500000 0.125000 -7.375000 +v 0.250000 0.375000 -5.812500 +v 0.250000 0.375000 -7.187500 +v -0.250000 0.375000 -7.187500 +v -0.250000 0.375000 -5.812500 +v 0.000000 2.000000 -4.500000 +v -0.382683 1.923880 -4.500000 +v -0.707107 1.707107 -4.500000 +v -0.923880 1.382683 -4.500000 +v -1.000000 1.000000 -4.500000 +v -0.923880 0.617316 -4.500000 +v -0.707107 0.292893 -4.500000 +v -0.382683 0.076120 -4.500000 +v 0.000000 0.000000 -4.500000 +v 0.382683 0.076120 -4.500000 +v 0.707107 0.292893 -4.500000 +v 0.923880 0.617316 -4.500000 +v 1.000000 1.000000 -4.500000 +v 0.923880 1.382684 -4.500000 +v 0.707107 1.707107 -4.500000 +v 0.382683 1.923880 -4.500000 +v 0.000000 1.750000 -5.500000 +v -0.287013 1.692910 -5.500000 +v -0.530330 1.530330 -5.500000 +v -0.692910 1.287013 -5.500000 +v -0.750000 1.000000 -5.500000 +v -0.692910 0.712987 -5.500000 +v -0.530330 0.469670 -5.500000 +v -0.287013 0.307090 -5.500000 +v 0.000000 0.250000 -5.500000 +v 0.287013 0.307090 -5.500000 +v 0.530330 0.469670 -5.500000 +v 0.692910 0.712987 -5.500000 +v 0.750000 1.000000 -5.500000 +v 0.692910 1.287013 -5.500000 +v 0.530330 1.530330 -5.500000 +v 0.287012 1.692910 -5.500000 +v 0.000000 1.750000 -7.500000 +v -0.287013 1.692910 -7.500000 +v -0.530330 1.530330 -7.500000 +v -0.692910 1.287013 -7.500000 +v -0.750000 1.000000 -7.500000 +v -0.692910 0.712987 -7.500000 +v -0.530330 0.469670 -7.500000 +v -0.287013 0.307090 -7.500000 +v 0.000000 0.250000 -7.500000 +v 0.287013 0.307090 -7.500000 +v 0.530330 0.469670 -7.500000 +v 0.692910 0.712987 -7.500000 +v 0.750000 1.000000 -7.500000 +v 0.692910 1.287013 -7.500000 +v 0.530330 1.530330 -7.500000 +v 0.287012 1.692910 -7.500000 +v 0.000000 1.500000 -8.000000 +v -0.191342 1.461940 -8.000000 +v -0.353553 1.353553 -8.000000 +v -0.461940 1.191342 -8.000000 +v -0.500000 1.000000 -8.000000 +v -0.461940 0.808658 -8.000000 +v -0.353553 0.646447 -8.000000 +v -0.191342 0.538060 -8.000000 +v 0.000000 0.500000 -8.000000 +v 0.191341 0.538060 -8.000000 +v 0.353553 0.646446 -8.000000 +v 0.461940 0.808658 -8.000000 +v 0.500000 1.000000 -8.000000 +v 0.461940 1.191342 -8.000000 +v 0.353553 1.353554 -8.000000 +v 0.191341 1.461940 -8.000000 +vt 0.085821 0.796875 +vt 0.115672 0.671875 +vt 0.115672 0.796875 +vt 0.078358 0.796875 +vt 0.085821 0.671875 +vt 0.123134 0.671875 +vt 0.022388 0.656250 +vt 0.063433 0.671875 +vt 0.011194 0.671875 +vt 0.011194 0.796875 +vt 0.014925 0.843750 +vt 0.022388 0.812500 +vt 0.078358 0.625000 +vt 0.063433 0.656250 +vt 0.063433 0.625000 +vt 0.000000 0.796875 +vt 0.000000 0.671875 +vt 0.126866 0.796875 +vt 0.123134 0.796875 +vt 0.175373 0.625000 +vt 0.134328 0.656250 +vt 0.134328 0.625000 +vt 0.119403 0.625000 +vt 0.078358 0.656250 +vt 0.063433 0.796875 +vt 0.074627 0.671875 +vt 0.074627 0.796875 +vt 0.078358 0.671875 +vt 0.119403 0.656250 +vt 0.810345 0.643319 +vt 0.831446 0.643319 +vt 0.831446 0.731681 +vt 0.014925 0.625000 +vt 0.059701 0.625000 +vt 0.063433 0.625000 +vt 0.059701 0.843750 +vt 0.052239 0.812500 +vt 0.052239 0.656250 +vt 0.011194 0.843750 +vt 0.126866 0.671875 +vt 0.175373 0.656250 +vt 0.826605 0.745225 +vt 0.820895 0.749981 +vt 0.815185 0.745225 +vt 0.810345 0.731681 +vt 0.807110 0.711411 +vt 0.805975 0.687500 +vt 0.807110 0.663589 +vt 0.815185 0.629775 +vt 0.820895 0.625019 +vt 0.826605 0.629775 +vt 0.834680 0.663589 +vt 0.835816 0.687500 +vt 0.834680 0.711411 +vt 0.011194 0.625000 +vt 0.063433 0.843750 +vt 0.776119 0.281250 +vt 0.805970 0.234375 +vt 0.805970 0.273438 +vt 0.776119 0.656250 +vt 0.805970 0.695312 +vt 0.776119 0.703125 +vt 0.805970 0.320312 +vt 0.776119 0.328125 +vt 0.805970 0.742188 +vt 0.776119 0.750000 +vt 0.776119 0.421875 +vt 0.805970 0.375000 +vt 0.805970 0.414062 +vt 0.805970 0.367188 +vt 0.776119 0.375000 +vt 0.776119 0.046875 +vt 0.805970 -0.000000 +vt 0.805970 0.039062 +vt 0.776119 0.468750 +vt 0.805970 0.421875 +vt 0.805970 0.460938 +vt 0.805970 0.085938 +vt 0.776119 0.093750 +vt 0.776119 0.515625 +vt 0.805970 0.468750 +vt 0.805970 0.507812 +vt 0.805970 0.132812 +vt 0.776119 0.140625 +vt 0.805970 0.554688 +vt 0.776119 0.562500 +vt 0.805970 0.179688 +vt 0.776119 0.187500 +vt 0.776119 0.609375 +vt 0.805970 0.562500 +vt 0.805970 0.601562 +vt 0.776119 0.234375 +vt 0.805970 0.187500 +vt 0.805970 0.226562 +vt 0.805970 0.648438 +vt 0.805970 0.117188 +vt 0.865672 0.156250 +vt 0.805970 0.156250 +vt 0.805970 0.468750 +vt 0.865672 0.507812 +vt 0.805970 0.507812 +vt 0.865672 0.195312 +vt 0.805970 0.195312 +vt 0.865672 0.546875 +vt 0.805970 0.546875 +vt 0.865672 0.234375 +vt 0.805970 0.234375 +vt 0.865672 0.585938 +vt 0.805970 0.585938 +vt 0.865672 0.273438 +vt 0.805970 0.273438 +vt 0.865672 0.625000 +vt 0.805970 0.625000 +vt 0.805970 0.312500 +vt 0.865672 0.351562 +vt 0.805970 0.351562 +vt 0.865672 0.312500 +vt 0.865672 0.039062 +vt 0.865672 0.390625 +vt 0.805970 0.390625 +vt 0.865672 0.078125 +vt 0.805970 0.078125 +vt 0.865672 0.429688 +vt 0.805970 0.429688 +vt 0.865672 0.117188 +vt 0.865672 0.468750 +vt 0.880597 0.203125 +vt 0.880597 0.242188 +vt 0.880597 0.281250 +vt 0.880597 0.320312 +vt 0.880597 0.359375 +vt 0.880597 0.421875 +vt 0.880597 0.437500 +vt 0.880597 0.500000 +vt 0.880597 0.515625 +vt 0.880597 0.578125 +vt 0.880597 0.593750 +vt 0.865672 -0.000000 +vt 0.880597 0.031250 +vt 0.880597 0.070312 +vt 0.880597 0.085938 +vt 0.880597 0.125000 +vt 0.880597 0.187500 +vt 0.805970 0.656250 +vt 0.805970 0.281250 +vt 0.805970 0.703125 +vt 0.805970 0.328125 +vt 0.776119 -0.000000 +vt 0.805970 0.046875 +vt 0.805970 0.093750 +vt 0.805970 0.515625 +vt 0.805970 0.140625 +vt 0.805970 0.609375 +vt 0.880597 0.226562 +vt 0.880597 0.265625 +vt 0.880597 0.304688 +vt 0.880597 0.343750 +vt 0.880597 0.382812 +vt 0.880597 0.398438 +vt 0.880597 0.460938 +vt 0.880597 0.476562 +vt 0.880597 0.539062 +vt 0.880597 0.554688 +vt 0.880597 0.617188 +vt 0.880597 0.007812 +vt 0.880597 0.046875 +vt 0.880597 0.109375 +vt 0.880597 0.148438 +vt 0.880597 0.164062 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.6860 0.6860 -0.2425 +vn 0.8963 0.3713 -0.2425 +vn -0.6860 -0.6860 -0.2425 +vn -0.3713 -0.8963 -0.2425 +vn 0.3713 0.8963 -0.2425 +vn -0.0000 -0.9701 -0.2425 +vn -0.3713 0.8963 -0.2425 +vn -0.0000 0.9701 -0.2425 +vn 0.3713 -0.8963 -0.2425 +vn -0.6860 0.6860 -0.2425 +vn 0.6860 -0.6860 -0.2425 +vn -0.8963 0.3713 -0.2425 +vn 0.8963 -0.3713 -0.2425 +vn -0.9701 -0.0000 -0.2425 +vn 0.9701 0.0000 -0.2425 +vn -0.8963 -0.3713 -0.2425 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.8263 0.3423 -0.4472 +vn 0.6325 0.6325 -0.4472 +vn 0.3423 0.8263 -0.4472 +vn -0.0000 0.8944 -0.4472 +vn -0.3423 0.8263 -0.4472 +vn -0.6325 0.6325 -0.4472 +vn -0.8263 0.3423 -0.4472 +vn -0.8944 -0.0000 -0.4472 +vn -0.8263 -0.3423 -0.4472 +vn -0.6325 -0.6325 -0.4472 +vn -0.3423 -0.8263 -0.4472 +vn -0.0000 -0.8944 -0.4472 +vn 0.3423 -0.8263 -0.4472 +vn 0.6325 -0.6325 -0.4472 +vn 0.8263 -0.3423 -0.4472 +vn 0.8944 -0.0000 -0.4472 +s off +f 67/123/19 66/124/19 65/125/19 +f 69/126/20 68/127/20 67/123/20 +f 72/128/21 65/125/21 66/124/21 +f 66/129/22 83/130/22 80/131/22 +f 83/130/23 79/132/23 80/131/23 +f 71/133/24 79/132/24 65/134/24 +f 75/135/25 88/136/25 76/137/25 +f 80/131/25 77/138/25 78/139/25 +f 72/128/19 77/140/19 71/141/19 +f 76/142/24 87/143/24 74/144/24 +f 73/145/22 85/146/22 75/135/22 +f 84/147/26 81/148/26 82/149/26 +f 69/126/19 81/148/19 70/150/19 +f 74/144/26 86/151/26 73/145/26 +f 147/152/26 143/153/26 139/154/26 +f 80/131/22 72/155/22 66/129/22 +f 83/130/22 70/156/22 81/157/22 +f 84/147/24 69/158/24 67/159/24 +f 79/132/24 67/159/24 65/134/24 +f 67/123/19 68/127/19 66/124/19 +f 69/126/20 70/150/20 68/127/20 +f 72/128/21 71/141/21 65/125/21 +f 66/129/22 68/160/22 83/130/22 +f 83/130/23 84/147/23 79/132/23 +f 71/133/24 77/161/24 79/132/24 +f 75/135/25 85/146/25 88/136/25 +f 80/131/25 79/132/25 77/138/25 +f 72/128/19 78/162/19 77/140/19 +f 76/142/24 88/163/24 87/143/24 +f 73/145/22 86/151/22 85/146/22 +f 84/147/26 83/130/26 81/148/26 +f 69/126/19 82/149/19 81/148/19 +f 74/144/26 87/143/26 86/151/26 +f 139/154/26 138/164/26 137/165/26 +f 137/165/26 152/166/26 139/154/26 +f 152/166/26 151/167/26 139/154/26 +f 151/167/26 150/168/26 149/169/26 +f 149/169/26 148/170/26 147/152/26 +f 147/152/26 146/171/26 143/153/26 +f 146/171/26 145/172/26 143/153/26 +f 145/172/26 144/173/26 143/153/26 +f 143/153/26 142/174/26 141/175/26 +f 141/175/26 140/176/26 139/154/26 +f 151/167/26 149/169/26 139/154/26 +f 149/169/26 147/152/26 139/154/26 +f 143/153/26 141/175/26 139/154/26 +f 80/131/22 78/177/22 72/155/22 +f 83/130/22 68/160/22 70/156/22 +f 84/147/24 82/178/24 69/158/24 +f 79/132/24 84/147/24 67/159/24 +s 1 +f 103/179/27 118/180/28 119/181/27 +f 95/182/29 112/183/30 96/184/30 +f 103/179/27 120/185/31 104/186/31 +f 96/184/30 113/187/32 97/188/32 +f 90/189/33 105/190/34 106/191/33 +f 104/186/31 105/192/34 89/193/34 +f 98/194/35 113/195/32 114/196/35 +f 91/197/36 106/198/33 107/199/36 +f 98/194/35 115/200/37 99/201/37 +f 92/202/38 107/203/36 108/204/38 +f 99/201/37 116/205/39 100/206/39 +f 92/202/38 109/207/40 93/208/40 +f 100/206/39 117/209/41 101/210/41 +f 94/211/42 109/212/40 110/213/42 +f 102/214/28 117/215/41 118/216/28 +f 94/211/42 111/217/29 95/182/29 +f 116/218/43 133/219/22 117/220/22 +f 109/221/24 126/222/44 110/223/44 +f 117/220/22 134/224/45 118/225/45 +f 110/223/44 127/226/46 111/227/46 +f 118/225/45 135/228/47 119/229/47 +f 111/227/46 128/230/48 112/231/48 +f 119/229/47 136/232/49 120/233/49 +f 112/231/48 129/234/19 113/235/19 +f 105/236/23 122/237/50 106/238/50 +f 120/233/49 121/239/23 105/236/23 +f 113/195/19 130/240/51 114/196/51 +f 106/238/50 123/241/52 107/242/52 +f 114/196/51 131/243/53 115/244/53 +f 107/242/52 124/245/54 108/246/54 +f 115/244/53 132/247/43 116/218/43 +f 108/246/54 125/248/24 109/221/24 +f 150/249/55 135/228/56 134/224/55 +f 151/250/56 136/232/57 135/228/56 +f 152/251/57 121/239/58 136/232/57 +f 137/252/58 122/237/59 121/239/58 +f 138/253/59 123/241/60 122/237/59 +f 123/241/60 140/254/61 124/245/61 +f 140/255/61 125/248/62 124/245/61 +f 125/248/62 142/256/63 126/222/63 +f 142/257/63 127/226/64 126/222/63 +f 127/226/64 144/258/65 128/230/65 +f 144/259/65 129/234/66 128/230/65 +f 129/260/66 146/261/67 130/240/67 +f 130/240/67 147/262/68 131/243/68 +f 147/263/68 132/247/69 131/243/68 +f 148/264/69 133/219/70 132/247/69 +f 133/219/70 150/265/55 134/224/55 +f 103/179/27 102/214/28 118/180/28 +f 95/182/29 111/266/29 112/183/30 +f 103/179/27 119/267/27 120/185/31 +f 96/184/30 112/268/30 113/187/32 +f 90/189/33 89/193/34 105/190/34 +f 104/186/31 120/269/31 105/192/34 +f 98/194/35 97/270/32 113/195/32 +f 91/197/36 90/189/33 106/198/33 +f 98/194/35 114/271/35 115/200/37 +f 92/202/38 91/197/36 107/203/36 +f 99/201/37 115/272/37 116/205/39 +f 92/202/38 108/273/38 109/207/40 +f 100/206/39 116/274/39 117/209/41 +f 94/211/42 93/208/40 109/212/40 +f 102/214/28 101/210/41 117/215/41 +f 94/211/42 110/275/42 111/217/29 +f 116/218/43 132/247/43 133/219/22 +f 109/221/24 125/248/24 126/222/44 +f 117/220/22 133/219/22 134/224/45 +f 110/223/44 126/222/44 127/226/46 +f 118/225/45 134/224/45 135/228/47 +f 111/227/46 127/226/46 128/230/48 +f 119/229/47 135/228/47 136/232/49 +f 112/231/48 128/230/48 129/234/19 +f 105/236/23 121/239/23 122/237/50 +f 120/233/49 136/232/49 121/239/23 +f 113/195/19 129/260/19 130/240/51 +f 106/238/50 122/237/50 123/241/52 +f 114/196/51 130/240/51 131/243/53 +f 107/242/52 123/241/52 124/245/54 +f 115/244/53 131/243/53 132/247/43 +f 108/246/54 124/245/54 125/248/24 +f 150/249/55 151/276/56 135/228/56 +f 151/250/56 152/277/57 136/232/57 +f 152/251/57 137/278/58 121/239/58 +f 137/252/58 138/279/59 122/237/59 +f 138/253/59 139/280/60 123/241/60 +f 123/241/60 139/281/60 140/254/61 +f 140/255/61 141/282/62 125/248/62 +f 125/248/62 141/283/62 142/256/63 +f 142/257/63 143/284/64 127/226/64 +f 127/226/64 143/285/64 144/258/65 +f 144/259/65 145/286/66 129/234/66 +f 129/260/66 145/287/66 146/261/67 +f 130/240/67 146/288/67 147/262/68 +f 147/263/68 148/289/69 132/247/69 +f 148/264/69 149/290/70 133/219/70 +f 133/219/70 149/291/70 150/265/55 +o Shell +v 0.000000 1.562500 -3.500000 +v -0.215260 1.519682 -3.500000 +v -0.397748 1.397748 -3.500000 +v -0.519682 1.215260 -3.500000 +v -0.562500 1.000000 -3.500000 +v -0.519682 0.784740 -3.500000 +v -0.397748 0.602252 -3.500000 +v -0.215260 0.480318 -3.500000 +v 0.000000 0.437500 -3.500000 +v 0.215260 0.480318 -3.500000 +v 0.397747 0.602252 -3.500000 +v 0.519682 0.784740 -3.500000 +v 0.562500 1.000000 -3.500000 +v 0.519682 1.215260 -3.500000 +v 0.397747 1.397748 -3.500000 +v 0.215259 1.519682 -3.500000 +v 0.287012 1.692909 -3.250000 +v 0.530330 1.530331 -3.250000 +v 0.692910 1.287012 -3.250000 +v 0.750000 1.000000 -3.250000 +v 0.692910 0.712988 -3.250000 +v 0.530330 0.469669 -3.250000 +v 0.287013 0.307091 -3.250000 +v 0.000000 0.250000 -3.250000 +v -0.287013 0.307091 -3.250000 +v -0.530330 0.469669 -3.250000 +v -0.692910 0.712988 -3.250000 +v -0.750000 1.000000 -3.250000 +v -0.692910 1.287012 -3.250000 +v -0.530330 1.530331 -3.250000 +v -0.287013 1.692909 -3.250000 +v 0.000000 1.750000 -3.250000 +v 0.287012 1.692909 -1.000000 +v 0.530330 1.530331 -1.000000 +v 0.692910 1.287012 -1.000000 +v 0.750000 1.000000 -1.000000 +v 0.692910 0.712988 -1.000000 +v 0.530330 0.469669 -1.000000 +v 0.287013 0.307091 -1.000000 +v 0.000000 0.250000 -1.000000 +v -0.287013 0.307091 -1.000000 +v -0.530330 0.469669 -1.000000 +v -0.692910 0.712988 -1.000000 +v -0.750000 1.000000 -1.000000 +v -0.692910 1.287012 -1.000000 +v -0.530330 1.530331 -1.000000 +v -0.287013 1.692909 -1.000000 +v 0.000000 1.750000 -1.000000 +v 0.179382 1.433068 0.000000 +v 0.331456 1.331457 0.000000 +v 0.433069 1.179382 0.000000 +v 0.468750 1.000000 0.000000 +v 0.433069 0.820618 0.000000 +v 0.331456 0.668543 0.000000 +v 0.179383 0.566932 0.000000 +v 0.000000 0.531250 0.000000 +v -0.179383 0.566932 0.000000 +v -0.331456 0.668543 0.000000 +v -0.433069 0.820618 0.000000 +v -0.468750 1.000000 0.000000 +v -0.433069 1.179382 0.000000 +v -0.331456 1.331457 0.000000 +v -0.179383 1.433068 0.000000 +v 0.000000 1.468750 0.000000 +v 0.000000 1.000000 0.500000 +vt 0.864481 0.745016 +vt 0.840742 0.745016 +vt 0.840743 0.645609 +vt 0.846188 0.630372 +vt 0.852612 0.625022 +vt 0.859036 0.630372 +vt 0.864481 0.645610 +vt 0.868120 0.668414 +vt 0.869398 0.695313 +vt 0.868120 0.722212 +vt 0.859036 0.760253 +vt 0.852612 0.765604 +vt 0.846188 0.760253 +vt 0.837104 0.722212 +vt 0.835826 0.695313 +vt 0.837104 0.668414 +vt 1.000000 0.242188 +vt 0.992537 0.273438 +vt 0.992537 0.234375 +vt 1.000000 0.007812 +vt 0.992537 0.039062 +vt 0.992537 0.000000 +vt 0.992537 0.351562 +vt 1.000000 0.382812 +vt 0.992537 0.390625 +vt 1.000000 0.554688 +vt 0.992537 0.585938 +vt 0.992537 0.546875 +vt 1.000000 0.320312 +vt 0.992537 0.312500 +vt 1.000000 0.164062 +vt 0.992537 0.195312 +vt 0.992537 0.156250 +vt 1.000000 0.617188 +vt 0.992537 0.625000 +vt 1.000000 0.398438 +vt 0.992537 0.429688 +vt 0.992537 0.078125 +vt 1.000000 0.109375 +vt 0.992537 0.117188 +vt 1.000000 0.476562 +vt 0.992537 0.507812 +vt 0.992537 0.468750 +vt 1.000000 0.539062 +vt 1.000000 0.148438 +vt 1.000000 0.304688 +vt 1.000000 0.203125 +vt 1.000000 0.070312 +vt 1.000000 0.460938 +vt 0.925373 0.156250 +vt 0.925373 0.078125 +vt 0.925373 0.585938 +vt 0.925373 0.468750 +vt 0.925373 0.390625 +vt 0.925373 0.507812 +vt 0.925373 0.234375 +vt 0.925373 0.117188 +vt 0.925373 0.000000 +vt 0.925373 0.273438 +vt 0.925373 0.351562 +vt 0.925373 0.195312 +vt 0.925373 0.546875 +vt 0.925373 0.429688 +vt 0.925373 0.312500 +vt 0.925373 0.039062 +vt 0.895522 0.007812 +vt 0.895522 0.320312 +vt 0.895522 0.539062 +vt 0.895522 0.515625 +vt 0.895522 0.164062 +vt 0.895522 0.304688 +vt 0.895522 0.281250 +vt 0.895522 0.226562 +vt 0.895522 0.203125 +vt 0.895522 0.554688 +vt 0.895522 0.070312 +vt 0.895522 0.046875 +vt 0.895522 0.617188 +vt 0.895522 0.593750 +vt 0.895522 0.085938 +vt 0.895522 0.398438 +vt 0.895522 0.242188 +vt 0.895522 0.125000 +vt 0.895522 0.437500 +vt 0.895522 0.382812 +vt 0.895522 0.359375 +vt 0.895522 0.476562 +vt 0.895522 0.460938 +vt 0.880597 0.445312 +vt 0.880597 0.367188 +vt 0.895522 0.031250 +vt 0.880597 0.015625 +vt 0.895522 0.343750 +vt 0.880597 0.328125 +vt 0.880597 0.523438 +vt 0.895522 0.187500 +vt 0.880597 0.171875 +vt 0.880597 0.289062 +vt 0.880597 0.210938 +vt 0.895522 0.578125 +vt 0.880597 0.562500 +vt 0.880597 0.054688 +vt 0.880597 0.601562 +vt 0.895522 0.109375 +vt 0.880597 0.093750 +vt 0.895522 0.421875 +vt 0.880597 0.406250 +vt 0.895522 0.265625 +vt 0.880597 0.250000 +vt 0.895522 0.148438 +vt 0.880597 0.132812 +vt 0.895522 0.500000 +vt 0.880597 0.484375 +vt 1.000000 0.265625 +vt 1.000000 0.031250 +vt 1.000000 0.359375 +vt 1.000000 0.578125 +vt 1.000000 0.343750 +vt 1.000000 0.187500 +vt 1.000000 0.593750 +vt 1.000000 0.421875 +vt 1.000000 0.085938 +vt 1.000000 0.500000 +vt 1.000000 0.515625 +vt 1.000000 0.125000 +vt 1.000000 0.281250 +vt 1.000000 0.226562 +vt 1.000000 0.046875 +vt 1.000000 0.437500 +vt 0.925373 0.625000 +vn 0.0000 0.0000 -1.0000 +vn 0.5657 0.5657 -0.6000 +vn 0.3061 0.7391 -0.6000 +vn 0.0000 -0.8000 -0.6000 +vn 0.3061 -0.7391 -0.6000 +vn -0.3061 0.7391 -0.6000 +vn -0.5657 0.5657 -0.6000 +vn -0.5657 -0.5657 -0.6000 +vn -0.3061 -0.7391 -0.6000 +vn 0.0000 0.8000 -0.6000 +vn 0.8000 0.0000 -0.6000 +vn 0.7391 0.3061 -0.6000 +vn -0.7391 0.3061 -0.6000 +vn 0.5657 -0.5657 -0.6000 +vn 0.7391 -0.3061 -0.6000 +vn -0.8000 -0.0000 -0.6000 +vn -0.7391 -0.3061 -0.6000 +vn 0.9239 0.3827 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3684 -0.8894 0.2707 +vn 0.0000 -0.8777 0.4792 +vn 0.0000 -0.9627 0.2707 +vn -0.3684 0.8894 0.2707 +vn 0.0000 0.8777 0.4792 +vn 0.0000 0.9627 0.2707 +vn -0.8894 -0.3684 0.2707 +vn -0.6206 -0.6207 0.4792 +vn -0.8109 -0.3359 0.4792 +vn 0.8894 0.3684 0.2707 +vn 0.8777 0.0000 0.4792 +vn 0.9627 0.0000 0.2707 +vn 0.3684 0.8894 0.2707 +vn 0.3359 0.8109 0.4792 +vn 0.6206 0.6207 0.4792 +vn 0.8109 0.3359 0.4792 +vn -0.3684 -0.8894 0.2707 +vn -0.6807 -0.6807 0.2707 +vn 0.6206 -0.6207 0.4792 +vn 0.3359 -0.8109 0.4792 +vn -0.3359 -0.8109 0.4792 +vn 0.8894 -0.3684 0.2707 +vn 0.6807 -0.6807 0.2707 +vn -0.8894 0.3684 0.2707 +vn -0.6206 0.6207 0.4792 +vn -0.6807 0.6807 0.2707 +vn 0.6807 0.6807 0.2707 +vn 0.8109 -0.3359 0.4792 +vn -0.9627 -0.0000 0.2707 +vn -0.8109 0.3359 0.4792 +vn -0.3359 0.8109 0.4792 +vn -0.8777 -0.0000 0.4792 +vn -0.0000 -0.0000 1.0000 +s off +f 155/292/71 167/293/71 163/294/71 +f 163/294/71 162/295/71 161/296/71 +f 161/296/71 160/297/71 163/294/71 +f 160/297/71 159/298/71 163/294/71 +f 159/298/71 158/299/71 157/300/71 +f 157/300/71 156/301/71 155/292/71 +f 155/292/71 154/302/71 167/293/71 +f 154/302/71 153/303/71 167/293/71 +f 153/303/71 168/304/71 167/293/71 +f 167/293/71 166/305/71 165/306/71 +f 165/306/71 164/307/71 163/294/71 +f 159/298/71 157/300/71 163/294/71 +f 157/300/71 155/292/71 163/294/71 +f 167/293/71 165/306/71 163/294/71 +s 1 +f 167/308/72 169/309/73 170/310/72 +f 161/311/74 175/312/75 176/313/74 +f 183/314/76 155/315/77 182/316/77 +f 159/317/78 177/318/79 178/319/78 +f 153/320/80 183/314/76 184/321/80 +f 165/322/81 171/323/82 172/324/81 +f 177/318/79 161/325/74 176/326/74 +f 155/327/77 181/328/83 182/316/77 +f 174/329/84 164/330/85 173/331/85 +f 157/332/86 179/333/87 180/334/86 +f 179/333/87 159/335/78 178/319/78 +f 173/331/85 165/336/81 172/324/81 +f 169/309/73 153/337/80 184/321/80 +f 166/338/82 170/310/72 171/323/82 +f 175/312/75 163/339/84 174/329/84 +f 181/328/83 157/340/86 180/334/86 +f 171/323/88 188/341/89 172/324/89 +f 173/331/90 190/342/91 174/329/91 +f 176/326/92 193/343/93 177/318/93 +f 179/333/94 196/344/95 180/334/95 +f 181/328/96 198/345/97 182/316/97 +f 178/319/98 195/346/94 179/333/94 +f 169/309/99 186/347/100 170/310/100 +f 172/324/89 189/348/90 173/331/90 +f 175/312/101 192/349/92 176/313/92 +f 184/321/102 185/350/99 169/309/99 +f 182/316/97 199/351/103 183/314/103 +f 170/310/100 187/352/88 171/323/88 +f 177/318/93 194/353/98 178/319/98 +f 180/334/95 197/354/96 181/328/96 +f 183/314/103 200/355/102 184/321/102 +f 174/329/91 191/356/101 175/312/101 +f 191/356/104 208/357/105 192/349/106 +f 199/351/107 216/358/108 200/355/109 +f 195/346/110 210/359/111 211/360/112 +f 187/352/113 204/361/114 188/341/115 +f 185/350/116 216/362/108 201/363/117 +f 187/352/113 202/364/118 203/365/119 +f 193/343/120 210/366/111 194/353/121 +f 191/356/104 206/367/122 207/368/123 +f 193/343/120 208/369/105 209/370/124 +f 189/348/125 206/371/122 190/342/126 +f 197/354/127 214/372/128 198/345/129 +f 185/350/116 202/373/118 186/347/130 +f 188/341/115 205/374/131 189/348/125 +f 196/344/132 213/375/133 197/354/127 +f 199/351/107 214/376/128 215/377/134 +f 195/346/110 212/378/135 196/344/132 +f 212/379/135 217/380/136 213/375/133 +f 214/376/128 217/381/136 215/377/134 +f 207/382/123 217/383/136 208/357/105 +f 215/384/134 217/385/136 216/358/108 +f 210/359/111 217/386/136 211/360/112 +f 203/387/119 217/388/136 204/361/114 +f 216/362/108 217/389/136 201/363/117 +f 202/364/118 217/390/136 203/365/119 +f 209/391/124 217/392/136 210/366/111 +f 206/367/122 217/393/136 207/368/123 +f 208/369/105 217/394/136 209/370/124 +f 205/395/131 217/396/136 206/371/122 +f 213/397/133 217/398/136 214/372/128 +f 201/399/117 217/400/136 202/373/118 +f 204/401/114 217/402/136 205/374/131 +f 211/403/112 217/404/136 212/378/135 +f 167/308/72 168/405/73 169/309/73 +f 161/311/74 162/406/75 175/312/75 +f 183/314/76 154/407/76 155/315/77 +f 159/317/78 160/408/79 177/318/79 +f 153/320/80 154/409/76 183/314/76 +f 165/322/81 166/410/82 171/323/82 +f 177/318/79 160/411/79 161/325/74 +f 155/327/77 156/412/83 181/328/83 +f 174/329/84 163/413/84 164/330/85 +f 157/332/86 158/414/87 179/333/87 +f 179/333/87 158/415/87 159/335/78 +f 173/331/85 164/416/85 165/336/81 +f 169/309/73 168/417/73 153/337/80 +f 166/338/82 167/418/72 170/310/72 +f 175/312/75 162/419/75 163/339/84 +f 181/328/83 156/420/83 157/340/86 +f 171/323/88 187/352/88 188/341/89 +f 173/331/90 189/348/90 190/342/91 +f 176/326/92 192/421/92 193/343/93 +f 179/333/94 195/346/94 196/344/95 +f 181/328/96 197/354/96 198/345/97 +f 178/319/98 194/353/98 195/346/94 +f 169/309/99 185/350/99 186/347/100 +f 172/324/89 188/341/89 189/348/90 +f 175/312/101 191/356/101 192/349/92 +f 184/321/102 200/355/102 185/350/99 +f 182/316/97 198/345/97 199/351/103 +f 170/310/100 186/347/100 187/352/88 +f 177/318/93 193/343/93 194/353/98 +f 180/334/95 196/344/95 197/354/96 +f 183/314/103 199/351/103 200/355/102 +f 174/329/91 190/342/91 191/356/101 +f 191/356/104 207/382/123 208/357/105 +f 199/351/107 215/384/134 216/358/108 +f 195/346/110 194/353/121 210/359/111 +f 187/352/113 203/387/119 204/361/114 +f 185/350/116 200/355/109 216/362/108 +f 187/352/113 186/347/130 202/364/118 +f 193/343/120 209/391/124 210/366/111 +f 191/356/104 190/342/126 206/367/122 +f 193/343/120 192/421/106 208/369/105 +f 189/348/125 205/395/131 206/371/122 +f 197/354/127 213/397/133 214/372/128 +f 185/350/116 201/399/117 202/373/118 +f 188/341/115 204/401/114 205/374/131 +f 196/344/132 212/379/135 213/375/133 +f 199/351/107 198/345/129 214/376/128 +f 195/346/110 211/403/112 212/378/135 +o Barrel +v 0.000000 2.000000 8.000000 +v -0.382683 1.923880 8.000000 +v -0.707107 1.707107 8.000000 +v -0.923880 1.382683 8.000000 +v -1.000000 1.000000 8.000000 +v -0.923880 0.617316 8.000000 +v -0.707107 0.292893 8.000000 +v -0.382683 0.076120 8.000000 +v 0.000000 0.000000 8.000000 +v 0.382683 0.076120 8.000000 +v 0.707107 0.292893 8.000000 +v 0.923880 0.617316 8.000000 +v 1.000000 1.000000 8.000000 +v 0.923880 1.382684 8.000000 +v 0.707107 1.707107 8.000000 +v 0.382683 1.923880 8.000000 +v 0.000000 2.000000 0.500000 +v -0.382683 1.923880 0.500000 +v -0.707107 1.707107 0.500000 +v -0.923880 1.382683 0.500000 +v -1.000000 1.000000 0.500000 +v -0.923880 0.617316 0.500000 +v -0.707107 0.292893 0.500000 +v -0.382683 0.076120 0.500000 +v 0.000000 0.000000 0.500000 +v 0.382683 0.076120 0.500000 +v 0.707107 0.292893 0.500000 +v 0.923880 0.617316 0.500000 +v 1.000000 1.000000 0.500000 +v 0.923880 1.382684 0.500000 +v 0.707107 1.707107 0.500000 +v 0.382683 1.923880 0.500000 +v 0.287012 1.692910 0.500000 +v 0.530330 1.530330 0.500000 +v 0.692910 1.287013 0.500000 +v 0.750000 1.000000 0.500000 +v 0.692910 0.712987 0.500000 +v 0.530330 0.469670 0.500000 +v 0.287013 0.307090 0.500000 +v 0.000000 0.250000 0.500000 +v -0.287013 0.307090 0.500000 +v -0.530330 0.469670 0.500000 +v -0.692910 0.712987 0.500000 +v -0.750000 1.000000 0.500000 +v -0.692910 1.287013 0.500000 +v -0.530330 1.530330 0.500000 +v -0.287013 1.692910 0.500000 +v 0.000000 1.750000 0.500000 +v 0.000000 1.750000 8.000000 +v -0.287013 1.692910 8.000000 +v -0.530330 1.530330 8.000000 +v -0.692910 1.287013 8.000000 +v -0.750000 1.000000 8.000000 +v -0.692910 0.712987 8.000000 +v -0.530330 0.469670 8.000000 +v -0.287013 0.307090 8.000000 +v 0.000000 0.250000 8.000000 +v 0.287013 0.307090 8.000000 +v 0.530330 0.469670 8.000000 +v 0.692910 0.712987 8.000000 +v 0.750000 1.000000 8.000000 +v 0.692910 1.287013 8.000000 +v 0.530330 1.530330 8.000000 +v 0.287012 1.692910 8.000000 +vt 0.231343 0.468750 +vt 0.223881 0.507812 +vt 0.223881 0.468750 +vt 0.231343 0.093750 +vt 0.223881 0.046875 +vt 0.231343 0.046875 +vt 0.223881 0.421875 +vt 0.231343 0.421875 +vt 0.231343 -0.000000 +vt 0.223881 0.039062 +vt 0.223881 0.000000 +vt 0.223881 0.375000 +vt 0.231343 0.375000 +vt 0.231343 0.703125 +vt 0.223881 0.742188 +vt 0.223881 0.703125 +vt 0.223881 0.328125 +vt 0.231343 0.328125 +vt 0.231343 0.656250 +vt 0.223881 0.695312 +vt 0.223881 0.656250 +vt 0.223881 0.281250 +vt 0.231343 0.281250 +vt 0.231343 0.609375 +vt 0.223881 0.648438 +vt 0.223881 0.609375 +vt 0.223881 0.234375 +vt 0.231343 0.234375 +vt 0.231343 0.562500 +vt 0.223881 0.601562 +vt 0.223881 0.562500 +vt 0.231343 0.187500 +vt 0.223881 0.226562 +vt 0.223881 0.187500 +vt 0.223881 0.140625 +vt 0.231343 0.140625 +vt 0.223881 0.515625 +vt 0.231343 0.515625 +vt 0.223881 0.132812 +vt 0.223881 0.093750 +vt 0.223881 0.085938 +vt 0.223881 0.460938 +vt 0.223881 0.414062 +vt 0.231343 0.750000 +vt 0.223881 0.367188 +vt 0.223881 0.320312 +vt 0.223881 0.273438 +vt 0.223881 0.179688 +vt 0.223881 0.554688 +vt 0.000000 0.156250 +vt 0.223881 0.195312 +vt 0.000000 0.195312 +vt 0.000000 -0.000000 +vt 0.223881 0.039062 +vt 0.000000 0.039062 +vt 0.000000 0.507812 +vt 0.223881 0.546875 +vt 0.000000 0.546875 +vt 0.000000 0.351562 +vt 0.223881 0.390625 +vt 0.000000 0.390625 +vt 0.223881 0.234375 +vt 0.000000 0.234375 +vt 0.223881 0.078125 +vt 0.000000 0.078125 +vt 0.223881 0.585938 +vt 0.000000 0.585938 +vt 0.223881 0.429688 +vt 0.000000 0.429688 +vt 0.223881 0.273438 +vt 0.000000 0.273438 +vt 0.223881 0.117188 +vt 0.000000 0.117188 +vt 0.223881 0.625000 +vt 0.000000 0.625000 +vt 0.223881 0.468750 +vt 0.000000 0.468750 +vt 0.000000 0.312500 +vt 0.223881 0.351562 +vt 0.223881 0.507812 +vt 0.223881 0.156250 +vt 0.223881 0.312500 +vt 0.455224 0.046875 +vt 0.455224 0.468750 +vt 0.455224 0.093750 +vt 0.455224 0.515625 +vt 0.455224 0.140625 +vt 0.455224 0.562500 +vt 0.455224 0.187500 +vt 0.455224 0.609375 +vt 0.455224 0.234375 +vt 0.455224 0.656250 +vt 0.455224 0.281250 +vt 0.455224 0.703125 +vt 0.455224 0.375000 +vt 0.455224 0.328125 +vt 0.455224 -0.000000 +vt 0.455224 0.421875 +vt 0.223881 -0.000000 +vt 0.455224 0.750000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 220/422/137 269/423/137 268/424/137 +f 228/425/137 275/426/137 227/427/137 +f 220/422/137 267/428/137 219/429/137 +f 226/430/137 275/431/137 274/432/137 +f 219/429/137 266/433/137 218/434/137 +f 225/435/137 274/436/137 273/437/137 +f 218/434/137 281/438/137 233/439/137 +f 224/440/137 273/441/137 272/442/137 +f 233/439/137 280/443/137 232/444/137 +f 223/445/137 272/446/137 271/447/137 +f 232/444/137 279/448/137 231/449/137 +f 222/450/137 271/451/137 270/452/137 +f 230/453/137 279/454/137 278/455/137 +f 230/453/137 277/456/137 229/457/137 +f 222/450/137 269/458/137 221/459/137 +f 228/425/137 277/460/137 276/461/137 +f 220/422/137 221/459/137 269/423/137 +f 228/425/137 276/462/137 275/426/137 +f 220/422/137 268/463/137 267/428/137 +f 226/430/137 227/427/137 275/431/137 +f 219/429/137 267/464/137 266/433/137 +f 225/435/137 226/465/137 274/436/137 +f 218/434/137 266/466/137 281/438/137 +f 224/440/137 225/435/137 273/441/137 +f 233/439/137 281/467/137 280/443/137 +f 223/445/137 224/440/137 272/446/137 +f 232/444/137 280/468/137 279/448/137 +f 222/450/137 223/445/137 271/451/137 +f 230/453/137 231/449/137 279/454/137 +f 230/453/137 278/469/137 277/456/137 +f 222/450/137 270/470/137 269/458/137 +f 228/425/137 229/457/137 277/460/137 +s 1 +f 270/471/138 262/472/139 269/473/139 +f 274/474/140 258/475/141 273/476/141 +f 277/477/142 255/478/143 276/479/143 +f 281/480/144 251/481/145 280/482/145 +f 269/473/139 263/483/146 268/484/146 +f 273/476/141 259/485/147 272/486/147 +f 276/479/143 256/487/148 275/488/148 +f 280/482/145 252/489/149 279/490/149 +f 268/484/146 264/491/150 267/492/150 +f 272/486/147 260/493/151 271/494/151 +f 275/488/148 257/495/140 274/496/140 +f 279/490/149 253/497/152 278/498/152 +f 266/499/153 250/500/144 281/480/144 +f 278/498/152 254/501/142 277/477/142 +f 271/494/151 261/502/138 270/471/138 +f 267/492/150 265/503/153 266/499/153 +f 243/504/150 228/425/146 227/427/150 +f 236/505/143 221/459/142 220/422/143 +f 244/506/146 229/457/139 228/425/146 +f 237/507/142 222/450/152 221/459/142 +f 245/508/139 230/453/138 229/457/139 +f 238/509/152 223/445/149 222/450/152 +f 246/510/138 231/449/151 230/453/138 +f 239/511/149 224/440/145 223/445/149 +f 247/512/151 232/444/147 231/449/151 +f 240/513/145 225/435/144 224/440/145 +f 248/514/147 233/439/141 232/444/147 +f 241/515/144 226/465/153 225/435/144 +f 234/516/140 219/429/148 218/434/140 +f 249/517/141 218/434/140 233/439/141 +f 242/518/153 227/427/150 226/430/153 +f 235/519/148 220/422/143 219/429/148 +f 270/471/138 261/502/138 262/472/139 +f 274/474/140 257/520/140 258/475/141 +f 277/477/142 254/501/142 255/478/143 +f 281/480/144 250/500/144 251/481/145 +f 269/473/139 262/472/139 263/483/146 +f 273/476/141 258/475/141 259/485/147 +f 276/479/143 255/478/143 256/487/148 +f 280/482/145 251/481/145 252/489/149 +f 268/484/146 263/483/146 264/491/150 +f 272/486/147 259/485/147 260/493/151 +f 275/488/148 256/487/148 257/495/140 +f 279/490/149 252/489/149 253/497/152 +f 266/499/153 265/503/153 250/500/144 +f 278/498/152 253/497/152 254/501/142 +f 271/494/151 260/493/151 261/502/138 +f 267/492/150 264/491/150 265/503/153 +f 243/504/150 244/506/146 228/425/146 +f 236/505/143 237/507/142 221/459/142 +f 244/506/146 245/508/139 229/457/139 +f 237/507/142 238/509/152 222/450/152 +f 245/508/139 246/510/138 230/453/138 +f 238/509/152 239/511/149 223/445/149 +f 246/510/138 247/512/151 231/449/151 +f 239/511/149 240/513/145 224/440/145 +f 247/512/151 248/514/147 232/444/147 +f 240/513/145 241/515/144 225/435/144 +f 248/514/147 249/517/141 233/439/141 +f 241/515/144 242/521/153 226/465/153 +f 234/516/140 235/519/148 219/429/148 +f 249/517/141 234/516/140 218/434/140 +f 242/518/153 243/504/150 227/427/150 +f 235/519/148 236/505/143 220/422/143 +o Cannon +v 0.000000 2.000000 0.500000 +v -0.382683 1.923880 0.500000 +v -0.707107 1.707107 0.500000 +v -0.923880 1.382683 0.500000 +v -1.000000 1.000000 0.500000 +v -0.923880 0.617316 0.500000 +v -0.707107 0.292893 0.500000 +v -0.382683 0.076120 0.500000 +v 0.000000 0.000000 0.500000 +v 0.382683 0.076120 0.500000 +v 0.707107 0.292893 0.500000 +v 0.923880 0.617316 0.500000 +v 1.000000 1.000000 0.500000 +v 0.923880 1.382684 0.500000 +v 0.707107 1.707107 0.500000 +v 0.382683 1.923880 0.500000 +v 0.000000 1.750000 0.500000 +v -0.287013 1.692910 0.500000 +v -0.530330 1.530330 0.500000 +v -0.692910 1.287013 0.500000 +v -0.750000 1.000000 0.500000 +v -0.692910 0.712987 0.500000 +v -0.530330 0.469670 0.500000 +v -0.287013 0.307090 0.500000 +v 0.000000 0.250000 0.500000 +v 0.287013 0.307090 0.500000 +v 0.530330 0.469670 0.500000 +v 0.692910 0.712987 0.500000 +v 0.750000 1.000000 0.500000 +v 0.692910 1.287013 0.500000 +v 0.530330 1.530330 0.500000 +v 0.287012 1.692910 0.500000 +v 0.000000 2.250000 0.500000 +v -0.478354 2.154850 0.500000 +v -0.883883 1.883883 0.500000 +v -1.154850 1.478354 0.500000 +v -1.250000 1.000000 0.500000 +v -1.154850 0.521646 0.500000 +v -0.883883 0.116117 0.500000 +v -0.478354 -0.154850 0.500000 +v -0.000000 -0.250000 0.500000 +v 0.478354 -0.154850 0.500000 +v 0.883883 0.116117 0.500000 +v 1.154849 0.521646 0.500000 +v 1.250000 1.000000 0.500000 +v 1.154849 1.478354 0.500000 +v 0.883883 1.883883 0.500000 +v 0.478354 2.154850 0.500000 +v 0.000000 2.250000 -4.000000 +v -0.478354 2.154850 -4.000000 +v -0.883883 1.883883 -4.000000 +v -1.154850 1.478354 -4.000000 +v -1.250000 1.000000 -4.000000 +v -1.154850 0.521646 -4.000000 +v -0.883883 0.116117 -4.000000 +v -0.478354 -0.154850 -4.000000 +v -0.000000 -0.250000 -4.000000 +v 0.478354 -0.154850 -4.000000 +v 0.883883 0.116117 -4.000000 +v 1.154849 0.521646 -4.000000 +v 1.250000 1.000000 -4.000000 +v 1.154849 1.478354 -4.000000 +v 0.883883 1.883883 -4.000000 +v 0.478354 2.154850 -4.000000 +v 0.000000 2.000000 -4.000000 +v -0.382683 1.923880 -4.000000 +v -0.707107 1.707107 -4.000000 +v -0.923880 1.382683 -4.000000 +v -1.000000 1.000000 -4.000000 +v -0.923880 0.617316 -4.000000 +v -0.707107 0.292893 -4.000000 +v -0.382683 0.076120 -4.000000 +v 0.000000 0.000000 -4.000000 +v 0.382683 0.076120 -4.000000 +v 0.707107 0.292893 -4.000000 +v 0.923880 0.617316 -4.000000 +v 1.000000 1.000000 -4.000000 +v 0.923880 1.382684 -4.000000 +v 0.707107 1.707107 -4.000000 +v 0.382683 1.923880 -4.000000 +v 0.000000 2.000000 -3.500000 +v -0.382683 1.923880 -3.500000 +v -0.707107 1.707107 -3.500000 +v -0.923880 1.382683 -3.500000 +v -1.000000 1.000000 -3.500000 +v -0.923880 0.617316 -3.500000 +v -0.707107 0.292893 -3.500000 +v -0.382683 0.076120 -3.500000 +v 0.000000 0.000000 -3.500000 +v 0.382683 0.076120 -3.500000 +v 0.707107 0.292893 -3.500000 +v 0.923880 0.617316 -3.500000 +v 1.000000 1.000000 -3.500000 +v 0.923880 1.382684 -3.500000 +v 0.707107 1.707107 -3.500000 +v 0.382683 1.923880 -3.500000 +v -0.250000 -0.375000 -2.000000 +v 0.250000 -0.375000 -2.000000 +v -0.250000 -0.375000 -3.000000 +v 0.250000 -0.375000 -3.000000 +v -0.250000 -0.187500 -2.000000 +v 0.250000 -0.187500 -2.000000 +v -0.250000 -0.187500 -3.000000 +v 0.250000 -0.187500 -3.000000 +v 0.187500 -1.375000 -2.125000 +v -0.187500 -1.375000 -2.125000 +v -0.187500 -1.375000 -3.125000 +v 0.187500 -1.375000 -3.125000 +v 0.187500 -1.250000 -3.125000 +v -0.187500 -1.250000 -3.125000 +v 0.187500 -1.250000 -2.125000 +v -0.187500 -1.250000 -2.125000 +v -0.125000 -0.375000 -2.625000 +v -0.062500 -0.375000 -2.562500 +v 0.062500 -0.375000 -2.562500 +v 0.125000 -0.375000 -2.625000 +v -0.062500 -0.375000 -2.937500 +v -0.125000 -0.375000 -2.875000 +v 0.125000 -0.375000 -2.875000 +v 0.062500 -0.375000 -2.937500 +v -0.125000 -1.250000 -3.000000 +v -0.062500 -1.250000 -3.062500 +v -0.062500 -1.250000 -2.687500 +v -0.125000 -1.250000 -2.750000 +v 0.125000 -1.250000 -2.750000 +v 0.062500 -1.250000 -2.687500 +v 0.062500 -1.250000 -3.062500 +v 0.125000 -1.250000 -3.000000 +v -0.187500 -0.375000 -2.000000 +v 0.187500 -0.375000 -2.000000 +v -0.187500 -1.250000 -2.125000 +v 0.187500 -1.250000 -2.125000 +v 0.187500 -1.250000 -2.250000 +v 0.187500 -0.375000 -2.125000 +v -0.187500 -0.375000 -2.125000 +v -0.187500 -1.250000 -2.250000 +v -0.062500 -0.375000 -2.500000 +v 0.062500 -0.375000 -2.500000 +v -0.062500 -0.625000 -2.437500 +v 0.062500 -0.625000 -2.437500 +v 0.062500 -0.375000 -2.562500 +v -0.062500 -0.375000 -2.562500 +v 0.062500 -0.625000 -2.625000 +v -0.062500 -0.625000 -2.625000 +v 1.315785 0.529006 -1.250000 +v 1.065785 0.095994 -1.250000 +v 1.315785 0.529006 -2.250000 +v 1.065785 0.095994 -2.250000 +v 1.153405 0.622756 -2.250000 +v 1.153405 0.622756 -1.250000 +v 0.903405 0.189744 -1.250000 +v 0.903405 0.189744 -2.250000 +v 1.190784 0.312500 -1.812500 +v 1.212882 0.350773 -1.794194 +v 1.222034 0.366626 -1.750000 +v 1.212882 0.350773 -1.705806 +v 1.190784 0.312500 -1.687500 +v 1.168688 0.274227 -1.705806 +v 1.159534 0.258373 -1.750000 +v 1.168688 0.274227 -1.794194 +v 1.407291 0.187500 -1.812500 +v 1.429388 0.225773 -1.794194 +v 1.438541 0.241626 -1.750000 +v 1.429388 0.225773 -1.705806 +v 1.407291 0.187500 -1.687500 +v 1.385194 0.149227 -1.705806 +v 1.376041 0.133373 -1.750000 +v 1.385194 0.149227 -1.794194 +v 1.623797 0.062500 -2.062500 +v 1.645895 0.100773 -2.044194 +v 1.655047 0.116626 -2.000000 +v 1.645895 0.100773 -1.955806 +v 1.623797 0.062500 -1.937500 +v 1.601700 0.024227 -1.955806 +v 1.592547 0.008373 -2.000000 +v 1.601700 0.024227 -2.044194 +v 1.732050 -0.000000 -2.062500 +v 1.754148 0.038273 -2.044194 +v 1.763300 0.054127 -2.000000 +v 1.754148 0.038273 -1.955806 +v 1.732050 -0.000000 -1.937500 +v 1.709953 -0.038273 -1.955806 +v 1.700800 -0.054127 -2.000000 +v 1.709953 -0.038273 -2.044194 +v 1.732050 -0.000000 -2.125000 +v 1.776245 0.076546 -2.088388 +v 1.794550 0.108253 -2.000000 +v 1.776245 0.076546 -1.911612 +v 1.732050 -0.000000 -1.875000 +v 1.687856 -0.076547 -1.911612 +v 1.669550 -0.108253 -2.000000 +v 1.687856 -0.076547 -2.088388 +v 2.381570 -0.375000 -2.125000 +v 2.425764 -0.298454 -2.088388 +v 2.444070 -0.266747 -2.000000 +v 2.425764 -0.298454 -1.911612 +v 2.381570 -0.375000 -1.875000 +v 2.337376 -0.451547 -1.911612 +v 2.319070 -0.483253 -2.000000 +v 2.337376 -0.451547 -2.088388 +v 1.375000 1.250000 -2.500000 +v 1.375000 0.750000 -2.500000 +v 1.375000 1.250000 -3.000000 +v 1.375000 0.750000 -3.000000 +v 1.187500 1.250000 -3.000000 +v 1.187500 1.250000 -2.500000 +v 1.187500 0.750000 -2.500000 +v 1.187500 0.750000 -3.000000 +v 1.437500 1.437500 -2.687500 +v 1.437500 0.562500 -2.687500 +v 1.437500 1.437500 -2.812500 +v 1.437500 0.562500 -2.812500 +v 2.562500 1.437500 -2.812500 +v 2.562500 1.437500 -2.687500 +v 2.562500 0.562500 -2.687500 +v 2.562500 0.562500 -2.812500 +v 1.375000 0.500000 -2.812500 +v 1.375000 1.500000 -2.812500 +v 2.625000 0.500000 -2.812500 +v 2.625000 1.500000 -2.812500 +v 1.375000 1.500000 -2.687500 +v 1.375000 0.500000 -2.687500 +v 2.625000 1.500000 -2.687500 +v 2.625000 0.500000 -2.687500 +v 1.500000 1.375000 -1.250000 +v 1.500000 0.625000 -1.250000 +v 1.500000 1.375000 -2.250000 +v 1.500000 0.625000 -2.250000 +v 1.125000 1.375000 -2.250000 +v 1.125000 1.375000 -1.250000 +v 1.125000 0.625000 -1.250000 +v 1.125000 0.625000 -2.250000 +v 1.281250 0.968750 -2.500000 +v 1.343750 0.968750 -2.500000 +v 1.281250 1.031250 -2.500000 +v 1.343750 1.031250 -2.500000 +v 1.281250 0.968750 -2.250000 +v 1.343750 0.968750 -2.250000 +v 1.281250 1.031250 -2.250000 +v 1.343750 1.031250 -2.250000 +v 1.281250 1.093750 -2.500000 +v 1.343750 1.093750 -2.500000 +v 1.281250 1.156250 -2.500000 +v 1.343750 1.156250 -2.500000 +v 1.281250 1.093750 -2.250000 +v 1.343750 1.093750 -2.250000 +v 1.281250 1.156250 -2.250000 +v 1.343750 1.156250 -2.250000 +v 1.281250 0.843750 -2.500000 +v 1.343750 0.843750 -2.500000 +v 1.281250 0.906250 -2.500000 +v 1.343750 0.906250 -2.500000 +v 1.281250 0.843750 -2.250000 +v 1.343750 0.843750 -2.250000 +v 1.281250 0.906250 -2.250000 +v 1.343750 0.906250 -2.250000 +v -0.375000 2.500000 -1.250000 +v 0.375000 2.500000 -1.250000 +v -0.375000 2.500000 -2.250000 +v 0.375000 2.500000 -2.250000 +v -0.375000 2.125000 -2.625000 +v -0.375000 2.125000 -1.250000 +v 0.375000 2.125000 -1.250000 +v 0.375000 2.125000 -2.625000 +v 0.375000 2.750000 -2.500000 +v 0.375000 2.750000 -1.000000 +v 0.551776 2.676777 -2.500000 +v 0.551776 2.676777 -1.000000 +v 0.625000 2.500000 -2.500000 +v 0.625000 2.500000 -1.000000 +v 0.551776 2.323223 -2.500000 +v 0.551776 2.323223 -1.000000 +v 0.375000 2.250000 -2.500000 +v 0.375000 2.250000 -1.000000 +v 0.198223 2.323223 -2.500000 +v 0.198223 2.323223 -1.000000 +v 0.125000 2.500000 -2.500000 +v 0.125000 2.500000 -1.000000 +v 0.198223 2.676777 -2.500000 +v 0.198223 2.676777 -1.000000 +v -0.218750 2.450000 -1.250000 +v -0.293880 2.418880 -1.250000 +v -0.325000 2.343750 -1.250000 +v -0.293880 2.268620 -1.250000 +v -0.218750 2.237500 -1.250000 +v -0.143620 2.268620 -1.250000 +v -0.112500 2.343750 -1.250000 +v -0.143620 2.418880 -1.250000 +v -0.218750 2.450000 -1.187500 +v -0.293880 2.418880 -1.187500 +v -0.325000 2.343750 -1.187500 +v -0.293880 2.268620 -1.187500 +v -0.218750 2.237500 -1.187500 +v -0.143620 2.268620 -1.187500 +v -0.112500 2.343750 -1.187500 +v -0.143620 2.418880 -1.187500 +v 0.507582 2.632582 -1.000000 +v 0.375000 2.687500 -1.000000 +v 0.562500 2.500000 -1.000000 +v 0.507582 2.367418 -1.000000 +v 0.375000 2.312500 -1.000000 +v 0.242417 2.367418 -1.000000 +v 0.187500 2.500000 -1.000000 +v 0.242417 2.632582 -1.000000 +v 0.507582 2.632582 -0.875000 +v 0.375000 2.687500 -0.875000 +v 0.562500 2.500000 -0.875000 +v 0.507582 2.367418 -0.875000 +v 0.375000 2.312500 -0.875000 +v 0.242417 2.367418 -0.875000 +v 0.187500 2.500000 -0.875000 +v 0.242417 2.632582 -0.875000 +v 0.000000 2.312500 -1.500000 +v 0.883883 1.883883 -1.625000 +v 0.478354 2.154849 -1.625000 +v 0.000000 2.312500 -1.625000 +v 0.000000 2.250000 -1.625000 +v 1.312500 1.000000 -1.625000 +v 1.250000 1.000000 -1.625000 +v 0.478354 2.154850 -1.500000 +v 0.883883 1.883883 -1.500000 +v 1.154849 1.478354 -1.500000 +v 1.250000 1.000000 -1.500000 +v 0.000000 2.250000 -1.500000 +v 1.312500 1.000000 -1.500000 +v 1.212592 1.502272 -1.500000 +v 0.928077 1.928078 -1.500000 +v 0.502271 2.212592 -1.500000 +v 1.154849 1.478354 -1.625000 +v 1.212592 1.502272 -1.625000 +v 0.928077 1.928078 -1.625000 +v 0.502271 2.212592 -1.625000 +v 0.502271 2.212592 -2.000000 +v 0.928077 1.928078 -2.000000 +v 1.212592 1.502272 -2.000000 +v 1.154849 1.478354 -2.000000 +v 0.502271 2.212592 -1.875000 +v 0.928077 1.928078 -1.875000 +v 1.212592 1.502272 -1.875000 +v 1.312500 1.000000 -1.875000 +v 0.000000 2.250000 -1.875000 +v 1.250000 1.000000 -1.875000 +v 1.154849 1.478354 -1.875000 +v 0.883883 1.883883 -1.875000 +v 0.478354 2.154850 -1.875000 +v 1.250000 1.000000 -2.000000 +v 1.312500 1.000000 -2.000000 +v 0.000000 2.250000 -2.000000 +v 0.000000 2.312500 -2.000000 +v 0.478354 2.154849 -2.000000 +v 0.883883 1.883883 -2.000000 +v 0.000000 2.312500 -1.875000 +v 0.000000 1.750000 -3.500000 +v -0.287013 1.692910 -3.500000 +v -0.530330 1.530330 -3.500000 +v -0.692910 1.287013 -3.500000 +v -0.750000 1.000000 -3.500000 +v -0.692910 0.712987 -3.500000 +v -0.530330 0.469670 -3.500000 +v -0.287013 0.307090 -3.500000 +v 0.000000 0.250000 -3.500000 +v 0.287013 0.307090 -3.500000 +v 0.530330 0.469670 -3.500000 +v 0.692910 0.712987 -3.500000 +v 0.750000 1.000000 -3.500000 +v 0.692910 1.287013 -3.500000 +v 0.530330 1.530330 -3.500000 +v 0.287012 1.692910 -3.500000 +vt 0.455224 0.320312 +vt 0.462687 0.375000 +vt 0.455224 0.367188 +vt 0.455224 0.382812 +vt 0.462687 0.437500 +vt 0.455224 0.429688 +vt 0.455224 0.492188 +vt 0.455224 0.445312 +vt 0.462687 0.500000 +vt 0.455224 0.554688 +vt 0.455224 0.507812 +vt 0.462687 0.562500 +vt 0.455224 0.617188 +vt 0.455224 0.570312 +vt 0.462687 0.625000 +vt 0.455224 0.679688 +vt 0.455224 0.632812 +vt 0.455224 0.695312 +vt 0.462687 0.750000 +vt 0.455224 0.742188 +vt 0.455224 0.804688 +vt 0.455224 0.757812 +vt 0.455224 0.820312 +vt 0.462687 0.875000 +vt 0.455224 0.867188 +vt 0.455224 0.929688 +vt 0.455224 0.882812 +vt 0.455224 0.945312 +vt 0.462687 1.000000 +vt 0.455224 0.992188 +vt 0.455224 0.007812 +vt 0.462687 0.062500 +vt 0.455224 0.054688 +vt 0.455224 0.117188 +vt 0.455224 0.070312 +vt 0.462687 0.125000 +vt 0.455224 0.179688 +vt 0.455224 0.132812 +vt 0.462687 0.187500 +vt 0.455224 0.242188 +vt 0.455224 0.195312 +vt 0.462687 0.250000 +vt 0.455224 0.304688 +vt 0.455224 0.257812 +vt 0.604478 0.257812 +vt 0.597015 0.312500 +vt 0.597015 0.250000 +vt 0.604478 0.320312 +vt 0.597015 0.375000 +vt 0.604478 0.382812 +vt 0.597015 0.437500 +vt 0.604478 0.492188 +vt 0.597015 0.500000 +vt 0.604478 0.554688 +vt 0.597015 0.562500 +vt 0.604478 0.570312 +vt 0.597015 0.625000 +vt 0.604478 0.632812 +vt 0.597015 0.687500 +vt 0.604478 0.695312 +vt 0.597015 0.750000 +vt 0.604478 0.757812 +vt 0.597015 0.812500 +vt 0.604478 0.820312 +vt 0.597015 0.875000 +vt 0.604478 0.882812 +vt 0.597015 0.937500 +vt 0.604478 0.945312 +vt 0.597015 1.000000 +vt 0.604478 0.007812 +vt 0.597015 0.062500 +vt 0.597015 0.000000 +vt 0.604478 0.070312 +vt 0.597015 0.125000 +vt 0.604478 0.179688 +vt 0.597015 0.187500 +vt 0.604478 0.195312 +vt 0.626866 0.421875 +vt 0.619403 0.468750 +vt 0.619403 0.421875 +vt 0.619403 0.328125 +vt 0.626866 0.367188 +vt 0.619403 0.375000 +vt 0.626866 0.234375 +vt 0.619403 0.281250 +vt 0.619403 0.234375 +vt 0.626866 0.140625 +vt 0.619403 0.187500 +vt 0.619403 0.140625 +vt 0.626866 0.046875 +vt 0.619403 0.093750 +vt 0.619403 0.046875 +vt 0.626866 0.703125 +vt 0.619403 0.750000 +vt 0.619403 0.703125 +vt 0.626866 0.609375 +vt 0.619403 0.656250 +vt 0.619403 0.609375 +vt 0.626866 0.515625 +vt 0.619403 0.562500 +vt 0.619403 0.515625 +vt 0.619403 0.000000 +vt 0.626866 0.039062 +vt 0.626866 0.695312 +vt 0.626866 0.601562 +vt 0.626866 0.507812 +vt 0.626866 0.414062 +vt 0.626866 0.281250 +vt 0.626866 0.226562 +vt 0.626866 0.132812 +vt 0.449627 0.773438 +vt 0.419776 0.835938 +vt 0.419776 0.773438 +vt 0.455224 0.835938 +vt 0.449627 0.835938 +vt 0.414179 0.773438 +vt 0.419776 0.859375 +vt 0.449627 0.750000 +vt 0.389925 0.750000 +vt 0.360075 0.796875 +vt 0.360075 0.750000 +vt 0.410448 0.968750 +vt 0.414179 0.859375 +vt 0.414179 0.968750 +vt 0.395522 0.968750 +vt 0.399254 0.859375 +vt 0.399254 0.968750 +vt 0.360075 0.812500 +vt 0.389925 0.859375 +vt 0.360075 0.859375 +vt 0.408582 0.968750 +vt 0.401119 0.859375 +vt 0.408582 0.859375 +vt 0.401119 0.968750 +vt 0.410448 0.859375 +vt 0.416045 0.859375 +vt 0.416045 0.968750 +vt 0.425373 0.859375 +vt 0.423507 0.968750 +vt 0.423507 0.859375 +vt 0.360075 0.875000 +vt 0.389925 0.812500 +vt 0.393657 0.859375 +vt 0.389925 0.796875 +vt 0.356343 0.812500 +vt 0.425373 0.859375 +vt 0.436567 0.968750 +vt 0.425373 0.968750 +vt 0.440298 0.968750 +vt 0.451493 0.859375 +vt 0.451493 0.968750 +vt 0.455224 0.859375 +vt 0.397388 0.781250 +vt 0.389925 0.796875 +vt 0.389925 0.781250 +vt 0.436567 0.859375 +vt 0.399254 0.750000 +vt 0.402985 0.781250 +vt 0.080224 0.820312 +vt 0.110075 0.882812 +vt 0.080224 0.882812 +vt 0.397388 0.796875 +vt 0.401119 0.828125 +vt 0.399254 0.828125 +vt 0.402985 0.796875 +vt 0.110075 0.796875 +vt 0.110075 0.820312 +vt 0.115672 0.820312 +vt 0.115672 0.882812 +vt 0.074627 0.820312 +vt 0.080224 0.906250 +vt 0.764925 0.851562 +vt 0.766791 0.843750 +vt 0.766791 0.859375 +vt 0.764925 0.757812 +vt 0.766791 0.750000 +vt 0.766791 0.765625 +vt 0.764925 0.789062 +vt 0.766791 0.781250 +vt 0.766791 0.796875 +vt 0.764925 0.835938 +vt 0.766791 0.828125 +vt 0.764925 0.859375 +vt 0.766791 0.875000 +vt 0.764925 0.867188 +vt 0.764925 0.765625 +vt 0.764925 0.773438 +vt 0.764925 0.796875 +vt 0.766791 0.812500 +vt 0.764925 0.804688 +vt 0.764925 0.820312 +vt 0.789154 0.765625 +vt 0.792910 0.749897 +vt 0.796666 0.765625 +vt 0.132463 0.882812 +vt 0.147388 0.945312 +vt 0.132463 0.945312 +vt 0.830224 0.937500 +vt 0.833955 0.812500 +vt 0.833955 0.937500 +vt 0.126866 0.882812 +vt 0.147388 0.859375 +vt 0.147388 0.882812 +vt 0.132463 0.968750 +vt 0.152985 0.945312 +vt 0.789179 0.812500 +vt 0.792910 0.937500 +vt 0.789179 0.937500 +vt 0.830224 0.953125 +vt 0.828358 0.820312 +vt 0.794776 0.835938 +vt 0.794776 0.820312 +vt 0.839552 0.929688 +vt 0.835821 0.820312 +vt 0.839552 0.820312 +vt 0.830224 0.812500 +vt 0.792910 0.796875 +vt 0.830224 0.796875 +vt 0.828358 0.929688 +vt 0.794776 0.929688 +vt 0.792910 0.812500 +vt 0.835821 0.929688 +vt 0.869403 0.820312 +vt 0.871269 0.937500 +vt 0.869403 0.929688 +vt 0.871269 0.812500 +vt 0.865672 0.929688 +vt 0.865672 0.820312 +vt 0.794776 0.914062 +vt 0.313433 0.796875 +vt 0.343284 0.890625 +vt 0.313433 0.890625 +vt 0.242537 0.796875 +vt 0.250000 0.789062 +vt 0.250000 0.796875 +vt 0.343284 0.796875 +vt 0.354478 0.890625 +vt 0.302239 0.796875 +vt 0.343284 0.750000 +vt 0.313433 0.937500 +vt 0.242537 0.812500 +vt 0.250000 0.804688 +vt 0.250000 0.812500 +vt 0.242537 0.804688 +vt 0.242537 0.789062 +vt 0.250000 0.781250 +vt 0.242537 0.828125 +vt 0.250000 0.820312 +vt 0.250000 0.828125 +vt 0.242537 0.843750 +vt 0.250000 0.835938 +vt 0.250000 0.843750 +vt 0.242537 0.835938 +vt 0.242537 0.820312 +vt 0.250000 0.812500 +vt 0.242537 0.765625 +vt 0.250000 0.757812 +vt 0.250000 0.765625 +vt 0.242537 0.781250 +vt 0.250000 0.773438 +vt 0.250000 0.781250 +vt 0.242537 0.773438 +vt 0.242537 0.757812 +vt 0.250000 0.750000 +vt 0.261194 0.796875 +vt 0.291045 0.890625 +vt 0.261194 0.890625 +vt 0.291045 0.796875 +vt 0.302239 0.890625 +vt 0.250000 0.796875 +vt 0.261194 0.750000 +vt 0.302239 0.750000 +vt 0.261194 0.937500 +vt 0.875000 0.742188 +vt 0.873134 0.757812 +vt 0.873134 0.742188 +vt 0.921958 0.634135 +vt 0.932520 0.634135 +vt 0.932520 0.678365 +vt 0.925373 0.734382 +vt 0.929103 0.750000 +vt 0.925373 0.765618 +vt 0.875000 0.671875 +vt 0.873134 0.687500 +vt 0.873134 0.671875 +vt 0.875000 0.789062 +vt 0.873134 0.804688 +vt 0.873134 0.789062 +vt 0.873134 0.718750 +vt 0.875000 0.718750 +vt 0.873134 0.695312 +vt 0.875000 0.695312 +vt 0.873134 0.648438 +vt 0.875000 0.648438 +vt 0.873134 0.765625 +vt 0.875000 0.765625 +vt 0.873134 0.625000 +vt 0.875000 0.625000 +vt 0.925373 0.687509 +vt 0.929329 0.694371 +vt 0.930968 0.710938 +vt 0.074627 0.843750 +vt 0.059701 0.851562 +vt 0.059701 0.843750 +vt 0.074627 0.875000 +vt 0.059701 0.867188 +vt 0.074627 0.867188 +vt 0.074627 0.875000 +vt 0.059701 0.867188 +vt 0.074627 0.867188 +vt 0.044776 0.851562 +vt 0.029851 0.843750 +vt 0.044776 0.843750 +vt 0.029851 0.851562 +vt 0.014925 0.843750 +vt 0.029851 0.867188 +vt 0.014925 0.875000 +vt 0.014925 0.867188 +vt 0.044776 0.867188 +vt 0.029851 0.875000 +vt 0.044776 0.875000 +vt 0.074627 0.843750 +vt 0.059701 0.851562 +vt 0.059701 0.843750 +vt 0.044776 0.851562 +vt 0.029851 0.843750 +vt 0.044776 0.843750 +vt 0.029851 0.851562 +vt 0.014925 0.843750 +vt 0.029851 0.867188 +vt 0.014925 0.875000 +vt 0.014925 0.867188 +vt 0.044776 0.867188 +vt 0.029851 0.875000 +vt 0.044776 0.875000 +vt 0.462687 0.312500 +vt 0.462687 0.687500 +vt 0.462687 0.812500 +vt 0.462687 0.937500 +vt 0.462687 0.000000 +vt 0.604478 0.304688 +vt 0.604478 0.367188 +vt 0.604478 0.429688 +vt 0.604478 0.445312 +vt 0.604478 0.507812 +vt 0.604478 0.617188 +vt 0.604478 0.679688 +vt 0.604478 0.742188 +vt 0.604478 0.804688 +vt 0.604478 0.867188 +vt 0.604478 0.929688 +vt 0.604478 0.992188 +vt 0.604478 0.054688 +vt 0.604478 0.117188 +vt 0.604478 0.132812 +vt 0.604478 0.242188 +vt 0.626866 0.460938 +vt 0.626866 0.328125 +vt 0.626866 0.273438 +vt 0.626866 0.179688 +vt 0.626866 0.085938 +vt 0.626866 0.742188 +vt 0.626866 0.648438 +vt 0.626866 0.554688 +vt 0.626866 0.000000 +vt 0.626866 0.656250 +vt 0.626866 0.562500 +vt 0.626866 0.468750 +vt 0.626866 0.375000 +vt 0.626866 0.320312 +vt 0.626866 0.187500 +vt 0.626866 0.093750 +vt 0.455224 0.773438 +vt 0.414179 0.835938 +vt 0.449627 0.859375 +vt 0.419776 0.750000 +vt 0.395522 0.859375 +vt 0.425373 0.968750 +vt 0.389925 0.875000 +vt 0.393657 0.812500 +vt 0.356343 0.859375 +vt 0.440298 0.859375 +vt 0.455224 0.968750 +vt 0.401119 0.750000 +vt 0.080224 0.796875 +vt 0.074627 0.882812 +vt 0.110075 0.906250 +vt 0.764925 0.843750 +vt 0.764925 0.750000 +vt 0.764925 0.781250 +vt 0.764925 0.828125 +vt 0.764925 0.812500 +vt 0.795566 0.776746 +vt 0.792910 0.781353 +vt 0.790255 0.776746 +vt 0.790255 0.754503 +vt 0.795566 0.754503 +vt 0.126866 0.945312 +vt 0.132463 0.859375 +vt 0.147388 0.968750 +vt 0.152985 0.882812 +vt 0.792910 0.953125 +vt 0.828358 0.835938 +vt 0.828358 0.914062 +vt 0.354478 0.796875 +vt 0.302239 0.890625 +vt 0.313433 0.750000 +vt 0.343284 0.937500 +vt 0.242537 0.781250 +vt 0.242537 0.812500 +vt 0.242537 0.750000 +vt 0.302239 0.796875 +vt 0.250000 0.890625 +vt 0.302239 0.937500 +vt 0.927239 0.687525 +vt 0.921958 0.678365 +vt 0.919770 0.656250 +vt 0.927239 0.624975 +vt 0.934708 0.656250 +vt 0.922736 0.761044 +vt 0.921643 0.750000 +vt 0.922736 0.738956 +vt 0.928010 0.738957 +vt 0.928010 0.761044 +vt 0.875000 0.812500 +vt 0.873134 0.734375 +vt 0.873134 0.710938 +vt 0.873134 0.664062 +vt 0.873134 0.781250 +vt 0.873134 0.640625 +vt 0.929329 0.727504 +vt 0.925373 0.734367 +vt 0.921417 0.727504 +vt 0.919778 0.710938 +vt 0.921417 0.694371 +vt 0.074627 0.851562 +vt 0.059701 0.875000 +vt 0.059701 0.875000 +vt 0.014925 0.851562 +vt 0.074627 0.851562 +vt 0.014925 0.851562 +vt 0.604478 0.000000 +vt 0.604478 0.046875 +vt 0.604478 0.421875 +vt 0.604478 0.468750 +vt 0.604478 0.093750 +vt 0.604478 0.515625 +vt 0.604478 0.140625 +vt 0.604478 0.562500 +vt 0.604478 0.187500 +vt 0.604478 0.609375 +vt 0.604478 0.234375 +vt 0.604478 0.656250 +vt 0.604478 0.281250 +vt 0.604478 0.703125 +vt 0.604478 0.328125 +vt 0.604478 0.750000 +vt 0.604478 0.375000 +vt 0.746269 0.773438 +vt 0.753731 0.765625 +vt 0.753731 0.773438 +vt 0.746269 0.796875 +vt 0.753731 0.789062 +vt 0.753731 0.796875 +vt 0.746269 0.804688 +vt 0.753731 0.812500 +vt 0.746269 0.812500 +vt 0.746269 0.757812 +vt 0.746269 0.765625 +vt 0.746269 0.781250 +vt 0.753731 0.781250 +vt 0.746269 0.789062 +vt 0.753731 0.804688 +vt 0.746269 0.750000 +vt 0.753731 0.757812 +vt 0.761194 0.812500 +vt 0.761194 0.757812 +vt 0.761194 0.765625 +vt 0.761194 0.773438 +vt 0.761194 0.781250 +vt 0.761194 0.789062 +vt 0.761194 0.804688 +vt 0.761194 0.750000 +vt 0.761194 0.796875 +vt 0.764925 0.789062 +vt 0.764925 0.796875 +vt 0.764925 0.804688 +vt 0.764925 0.812500 +vt 0.764925 0.765625 +vt 0.764925 0.773438 +vt 0.764925 0.781250 +vt 0.789179 0.812500 +vt 0.789179 0.828125 +vt 0.789179 0.859375 +vt 0.789179 0.765625 +vt 0.789179 0.781250 +vt 0.789179 0.796875 +vt 0.789179 0.843750 +vt 0.789179 0.875000 +vt 0.919776 0.695312 +vt 0.919776 0.718750 +vt 0.919776 0.671875 +vt 0.919776 0.648438 +vt 0.919776 0.625000 +vt 0.919776 0.789062 +vt 0.919776 0.812500 +vt 0.919776 0.765625 +vt 0.919776 0.742188 +vt 0.921642 0.765625 +vt 0.919776 0.757812 +vt 0.921642 0.757812 +vt 0.921642 0.750000 +vt 0.919776 0.742188 +vt 0.921642 0.742188 +vt 0.921642 0.796875 +vt 0.919776 0.789062 +vt 0.921642 0.789062 +vt 0.921642 0.781250 +vt 0.919776 0.773438 +vt 0.921642 0.773438 +vt 0.919776 0.750000 +vt 0.919776 0.734375 +vt 0.921642 0.734375 +vt 0.919776 0.781250 +vt 0.919776 0.765625 +vt 0.869403 0.765625 +vt 0.869403 0.625000 +vt 0.869403 0.671875 +vt 0.869403 0.742188 +vt 0.869403 0.789062 +vt 0.869403 0.648438 +vt 0.869403 0.695312 +vt 0.869403 0.718750 +vt 0.626866 0.273438 +vt 0.746269 0.312500 +vt 0.626866 0.312500 +vt 0.626866 0.195312 +vt 0.746269 0.234375 +vt 0.626866 0.234375 +vt 0.626866 0.117188 +vt 0.746269 0.156250 +vt 0.626866 0.156250 +vt 0.746269 0.351562 +vt 0.626866 0.351562 +vt 0.626866 0.585938 +vt 0.746269 0.625000 +vt 0.626866 0.625000 +vt 0.746269 0.195312 +vt 0.626866 0.039062 +vt 0.746269 0.078125 +vt 0.626866 0.078125 +vt 0.626866 0.429688 +vt 0.746269 0.468750 +vt 0.626866 0.468750 +vt 0.626866 0.390625 +vt 0.746269 0.429688 +vt 0.626866 -0.000000 +vt 0.746269 0.039062 +vt 0.746269 0.273438 +vt 0.626866 0.507812 +vt 0.746269 0.546875 +vt 0.626866 0.546875 +vt 0.746269 0.117188 +vt 0.746269 0.507812 +vt 0.746269 0.390625 +vt 0.746269 0.585938 +vt 0.753731 0.750000 +vt 0.789179 0.750000 +vt 0.919776 0.796875 +vt 0.869403 0.781250 +vt 0.869403 0.640625 +vt 0.869403 0.687500 +vt 0.869403 0.757812 +vt 0.869403 0.804688 +vt 0.869403 0.664062 +vt 0.869403 0.710938 +vt 0.869403 0.734375 +vt 0.746269 0.000000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.1414 -0.9899 +vn 0.0000 -0.1414 0.9899 +vn 0.0000 1.0000 0.0000 +vn 0.7035 -0.1005 0.7035 +vn 0.7035 0.1005 -0.7035 +vn -0.7035 0.1005 -0.7035 +vn -0.7035 -0.1005 0.7035 +vn 0.0000 0.2425 0.9701 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.3536 0.6124 -0.7071 +vn 0.5738 0.8140 0.0899 +vn 0.1205 0.7727 -0.6233 +vn -0.6089 -0.4907 -0.6233 +vn -0.4181 -0.9040 0.0899 +vn -0.3536 -0.6124 0.7071 +vn 0.3058 -0.1766 0.9356 +vn 0.3536 0.6124 0.7071 +vn -0.3639 0.2101 -0.9074 +vn -0.3536 -0.6124 -0.7071 +vn -0.0595 -0.7094 0.7023 +vn 0.5846 0.4062 0.7023 +vn 0.3639 -0.2101 0.9074 +vn 0.6089 0.4907 0.6233 +vn 0.4181 0.9040 -0.0899 +vn 0.0595 0.7094 -0.7023 +vn -0.3058 0.1766 -0.9356 +vn -0.5846 -0.4062 -0.7023 +vn -0.1205 -0.7727 0.6233 +vn -0.5738 -0.8140 -0.0899 +vn 0.1951 0.9808 -0.0000 +vn 0.9808 0.1951 0.0000 +s off +f 295/522/154 328/523/154 296/524/154 +f 296/525/154 329/526/154 297/527/154 +f 329/526/154 282/528/154 297/529/154 +f 314/530/154 283/531/154 282/532/154 +f 315/533/154 284/534/154 283/535/154 +f 316/536/154 285/537/154 284/538/154 +f 285/539/154 318/540/154 286/541/154 +f 318/540/154 287/542/154 286/543/154 +f 287/544/154 320/545/154 288/546/154 +f 320/545/154 289/547/154 288/548/154 +f 289/549/154 322/550/154 290/551/154 +f 290/552/154 323/553/154 291/554/154 +f 323/553/154 292/555/154 291/556/154 +f 324/557/154 293/558/154 292/559/154 +f 325/560/154 294/561/154 293/562/154 +f 326/563/154 295/564/154 294/565/154 +f 358/566/155 343/567/155 342/568/155 +f 359/569/155 344/570/155 343/567/155 +f 360/571/155 345/572/155 344/570/155 +f 345/572/155 346/573/155 330/574/155 +f 330/574/155 347/575/155 331/576/155 +f 347/577/155 332/578/155 331/576/155 +f 348/579/155 333/580/155 332/578/155 +f 349/581/155 334/582/155 333/580/155 +f 350/583/155 335/584/155 334/582/155 +f 351/585/155 336/586/155 335/584/155 +f 352/587/155 337/588/155 336/586/155 +f 353/589/155 338/590/155 337/588/155 +f 354/591/155 339/592/155 338/593/155 +f 355/594/155 340/595/155 339/592/155 +f 340/595/155 357/596/155 341/597/155 +f 357/598/155 342/568/155 341/597/155 +f 635/599/155 364/600/155 363/601/155 +f 377/602/155 634/603/155 362/604/155 +f 647/605/155 376/606/155 375/607/155 +f 645/608/155 374/609/155 373/610/155 +f 643/611/155 372/612/155 371/613/155 +f 641/614/155 370/615/155 369/616/155 +f 639/617/155 368/618/155 367/619/155 +f 637/620/155 366/621/155 365/622/155 +f 370/623/155 643/624/155 371/613/155 +f 368/618/155 641/625/155 369/616/155 +f 366/621/155 639/626/155 367/619/155 +f 364/600/155 637/627/155 365/622/155 +f 362/604/155 635/628/155 363/601/155 +f 648/629/155 377/602/155 376/606/155 +f 374/609/155 647/630/155 375/607/155 +f 372/612/155 645/631/155 373/610/155 +f 380/632/156 379/633/156 378/634/156 +f 380/632/155 385/635/155 381/636/155 +f 379/633/154 382/637/154 378/634/154 +f 381/636/157 383/638/157 379/633/157 +f 378/634/158 384/639/158 380/632/158 +f 388/640/156 386/641/156 387/642/156 +f 401/643/159 403/644/159 398/645/159 +f 395/646/160 407/647/160 396/648/160 +f 392/649/161 391/650/161 393/651/161 +f 400/652/157 406/653/157 409/654/157 +f 407/647/162 397/655/162 396/648/162 +f 401/643/163 409/654/163 408/656/163 +f 398/645/164 402/657/164 399/658/164 +f 404/659/165 394/660/165 405/661/165 +f 399/658/158 405/661/158 394/660/158 +f 391/650/158 387/662/158 393/651/158 +f 390/663/155 388/664/155 391/650/155 +f 392/649/157 389/665/157 390/663/157 +f 393/651/154 386/666/154 392/649/154 +f 412/667/160 411/668/160 410/669/160 +f 415/670/159 417/671/159 416/672/159 +f 412/673/158 416/672/158 417/671/158 +f 420/674/166 419/675/166 418/676/166 +f 413/677/157 415/670/157 411/668/157 +f 418/678/158 425/679/158 420/674/158 +f 427/680/167 428/681/167 426/682/167 +f 421/683/157 422/684/157 419/685/157 +f 420/674/156 424/686/156 421/683/156 +f 427/680/168 433/687/168 429/688/168 +f 428/681/155 433/689/155 430/690/155 +f 426/682/154 432/691/154 427/680/154 +f 428/681/169 431/692/169 426/682/169 +f 463/693/170 472/694/170 471/695/170 +f 461/696/170 470/697/170 469/698/170 +f 459/699/170 468/700/170 467/701/170 +f 464/702/170 473/703/170 472/694/170 +f 463/704/170 470/705/170 462/706/170 +f 461/707/170 468/700/170 460/708/170 +f 459/709/170 466/710/170 458/711/170 +f 465/712/170 466/710/170 473/703/170 +f 478/713/167 480/714/167 474/715/167 +f 483/716/157 484/717/157 482/718/157 +f 499/719/158 503/720/158 502/721/158 +f 482/718/154 488/722/154 483/716/154 +f 483/716/156 489/723/156 485/724/156 +f 484/717/161 487/725/161 482/718/161 +f 485/724/155 486/726/155 484/717/155 +f 505/727/157 501/728/157 504/729/157 +f 502/730/161 501/728/161 499/719/161 +f 493/731/161 496/732/161 497/733/161 +f 492/734/157 491/735/157 493/736/157 +f 498/737/156 505/738/156 503/739/156 +f 493/731/155 499/719/155 492/740/155 +f 494/741/155 500/742/155 497/733/155 +f 492/740/155 501/728/155 494/741/155 +f 497/733/155 498/737/155 493/731/155 +f 490/743/154 503/720/154 491/735/154 +f 496/744/154 504/745/154 495/746/154 +f 495/746/154 502/721/154 490/743/154 +f 491/735/154 505/747/154 496/744/154 +f 496/744/158 494/748/158 497/749/158 +f 495/750/156 492/740/156 494/741/156 +f 507/751/157 508/752/157 506/753/157 +f 521/754/157 515/755/157 517/756/157 +f 509/757/155 510/758/155 508/752/155 +f 506/753/154 512/759/154 507/751/154 +f 507/751/156 513/760/156 509/757/156 +f 508/752/161 511/761/161 506/753/161 +f 518/762/158 516/763/158 514/764/158 +f 520/765/161 517/756/161 516/763/161 +f 519/766/156 514/767/156 515/755/156 +f 529/768/157 523/769/157 525/770/157 +f 526/771/158 524/772/158 522/773/158 +f 528/774/161 525/770/161 524/772/161 +f 527/775/156 522/776/156 523/769/156 +f 537/777/157 531/778/157 533/779/157 +f 534/780/158 532/781/158 530/782/158 +f 536/783/161 533/779/161 532/781/161 +f 535/784/156 530/785/156 531/778/156 +f 539/786/161 540/787/161 538/788/161 +f 541/789/171 542/790/171 540/787/171 +f 538/788/154 544/791/154 539/786/154 +f 541/789/157 544/792/157 545/793/157 +f 540/787/158 543/794/158 538/788/158 +f 561/795/154 584/796/154 585/797/154 +f 552/798/155 556/799/155 560/800/155 +f 574/801/154 576/802/154 570/803/154 +f 551/804/154 578/805/154 580/806/154 +f 557/807/154 582/808/154 583/809/154 +f 561/795/154 579/810/154 547/811/154 +f 547/811/154 578/812/154 549/813/154 +f 551/804/154 581/814/154 553/815/154 +f 557/807/154 584/816/154 559/817/154 +f 553/815/154 582/818/154 555/819/154 +f 590/820/154 589/821/154 588/822/154 +f 604/823/154 607/824/154 603/825/154 +f 600/826/155 611/827/155 599/828/155 +f 627/829/155 616/830/155 628/831/155 +f 608/832/154 601/833/154 602/834/154 +f 607/824/154 602/834/154 603/825/154 +f 609/835/154 605/836/154 601/833/154 +f 613/837/155 598/838/155 597/839/155 +f 612/840/155 596/841/155 613/837/155 +f 611/827/155 595/842/155 612/840/155 +f 623/843/154 620/844/154 624/845/154 +f 619/846/154 626/847/154 625/848/154 +f 620/844/154 625/848/154 624/845/154 +f 618/849/154 622/850/154 626/847/154 +f 614/851/155 629/852/155 630/853/155 +f 615/854/155 631/855/155 614/851/155 +f 616/830/155 632/856/155 615/854/155 +f 295/522/154 327/857/154 328/523/154 +f 296/525/154 328/523/154 329/526/154 +f 329/526/154 314/530/154 282/528/154 +f 314/530/154 315/533/154 283/531/154 +f 315/533/154 316/536/154 284/534/154 +f 316/536/154 317/858/154 285/537/154 +f 285/539/154 317/858/154 318/540/154 +f 318/540/154 319/859/154 287/542/154 +f 287/544/154 319/859/154 320/545/154 +f 320/545/154 321/860/154 289/547/154 +f 289/549/154 321/860/154 322/550/154 +f 290/552/154 322/861/154 323/553/154 +f 323/553/154 324/557/154 292/555/154 +f 324/557/154 325/560/154 293/558/154 +f 325/560/154 326/563/154 294/561/154 +f 326/563/154 327/857/154 295/564/154 +f 358/566/155 359/862/155 343/567/155 +f 359/569/155 360/863/155 344/570/155 +f 360/571/155 361/864/155 345/572/155 +f 345/572/155 361/865/155 346/573/155 +f 330/574/155 346/866/155 347/575/155 +f 347/577/155 348/867/155 332/578/155 +f 348/579/155 349/868/155 333/580/155 +f 349/581/155 350/869/155 334/582/155 +f 350/583/155 351/870/155 335/584/155 +f 351/585/155 352/871/155 336/586/155 +f 352/587/155 353/872/155 337/588/155 +f 353/589/155 354/873/155 338/590/155 +f 354/591/155 355/874/155 339/592/155 +f 355/594/155 356/875/155 340/595/155 +f 340/595/155 356/876/155 357/596/155 +f 357/598/155 358/877/155 342/568/155 +f 635/599/155 636/878/155 364/600/155 +f 377/602/155 649/879/155 634/603/155 +f 647/605/155 648/880/155 376/606/155 +f 645/608/155 646/881/155 374/609/155 +f 643/611/155 644/882/155 372/612/155 +f 641/614/155 642/883/155 370/615/155 +f 639/617/155 640/884/155 368/618/155 +f 637/620/155 638/885/155 366/621/155 +f 370/623/155 642/886/155 643/624/155 +f 368/618/155 640/887/155 641/625/155 +f 366/621/155 638/888/155 639/626/155 +f 364/600/155 636/889/155 637/627/155 +f 362/604/155 634/890/155 635/628/155 +f 648/629/155 649/891/155 377/602/155 +f 374/609/155 646/892/155 647/630/155 +f 372/612/155 644/893/155 645/631/155 +f 380/632/156 381/636/156 379/633/156 +f 380/632/155 384/894/155 385/635/155 +f 379/633/154 383/895/154 382/637/154 +f 381/636/157 385/896/157 383/638/157 +f 378/634/158 382/897/158 384/639/158 +f 388/640/156 389/665/156 386/641/156 +f 401/643/159 408/656/159 403/644/159 +f 395/646/160 404/898/160 407/647/160 +f 392/649/161 390/663/161 391/650/161 +f 400/652/157 397/655/157 406/653/157 +f 407/647/162 406/653/162 397/655/162 +f 401/643/163 400/652/163 409/654/163 +f 398/645/164 403/644/164 402/657/164 +f 404/659/165 395/899/165 394/660/165 +f 399/658/158 402/657/158 405/661/158 +f 391/650/158 388/900/158 387/662/158 +f 390/663/155 389/901/155 388/664/155 +f 392/649/157 386/641/157 389/665/157 +f 393/651/154 387/902/154 386/666/154 +f 412/667/160 413/677/160 411/668/160 +f 415/670/159 414/903/159 417/671/159 +f 412/673/158 410/904/158 416/672/158 +f 420/674/166 421/683/166 419/675/166 +f 413/677/157 414/903/157 415/670/157 +f 418/678/158 423/905/158 425/679/158 +f 427/680/167 429/688/167 428/681/167 +f 421/683/157 424/686/157 422/684/157 +f 420/674/156 425/679/156 424/686/156 +f 427/680/168 432/906/168 433/687/168 +f 428/681/155 429/688/155 433/689/155 +f 426/682/154 431/907/154 432/691/154 +f 428/681/169 430/908/169 431/692/169 +f 463/693/170 464/909/170 472/694/170 +f 461/696/170 462/910/170 470/697/170 +f 459/699/170 460/911/170 468/700/170 +f 464/702/170 465/912/170 473/703/170 +f 463/704/170 471/695/170 470/705/170 +f 461/707/170 469/698/170 468/700/170 +f 459/709/170 467/701/170 466/710/170 +f 465/712/170 458/913/170 466/710/170 +f 474/715/167 475/914/167 476/915/167 +f 476/915/167 477/916/167 478/713/167 +f 478/713/167 479/917/167 480/714/167 +f 480/714/167 481/918/167 474/715/167 +f 474/715/167 476/915/167 478/713/167 +f 483/716/157 485/724/157 484/717/157 +f 499/719/158 498/737/158 503/720/158 +f 482/718/154 487/919/154 488/722/154 +f 483/716/156 488/920/156 489/723/156 +f 484/717/161 486/921/161 487/725/161 +f 485/724/155 489/922/155 486/726/155 +f 505/727/157 500/742/157 501/728/157 +f 502/730/161 504/923/161 501/728/161 +f 493/731/161 491/924/161 496/732/161 +f 492/734/157 490/743/157 491/735/157 +f 498/737/156 500/742/156 505/738/156 +f 493/731/155 498/737/155 499/719/155 +f 494/741/155 501/728/155 500/742/155 +f 492/740/155 499/719/155 501/728/155 +f 497/733/155 500/742/155 498/737/155 +f 490/743/154 502/721/154 503/720/154 +f 496/744/154 505/747/154 504/745/154 +f 495/746/154 504/745/154 502/721/154 +f 491/735/154 503/720/154 505/747/154 +f 496/744/158 495/746/158 494/748/158 +f 495/750/156 490/925/156 492/740/156 +f 507/751/157 509/757/157 508/752/157 +f 521/754/157 519/766/157 515/755/157 +f 509/757/155 513/926/155 510/758/155 +f 506/753/154 511/927/154 512/759/154 +f 507/751/156 512/928/156 513/760/156 +f 508/752/161 510/929/161 511/761/161 +f 518/762/158 520/765/158 516/763/158 +f 520/765/161 521/754/161 517/756/161 +f 519/766/156 518/930/156 514/767/156 +f 529/768/157 527/775/157 523/769/157 +f 526/771/158 528/774/158 524/772/158 +f 528/774/161 529/768/161 525/770/161 +f 527/775/156 526/931/156 522/776/156 +f 537/777/157 535/784/157 531/778/157 +f 534/780/158 536/783/158 532/781/158 +f 536/783/161 537/777/161 533/779/161 +f 535/784/156 534/932/156 530/785/156 +f 539/786/161 541/789/161 540/787/161 +f 541/789/171 545/933/171 542/790/171 +f 538/788/154 543/934/154 544/791/154 +f 541/789/157 539/786/157 544/792/157 +f 540/787/158 542/935/158 543/794/158 +f 561/795/154 559/817/154 584/796/154 +f 560/800/155 546/936/155 548/937/155 +f 548/937/155 550/938/155 560/800/155 +f 550/938/155 552/798/155 560/800/155 +f 552/798/155 554/939/155 556/799/155 +f 556/799/155 558/940/155 560/800/155 +f 570/803/154 571/941/154 572/942/154 +f 572/942/154 573/943/154 574/801/154 +f 574/801/154 575/944/154 576/802/154 +f 576/802/154 577/945/154 570/803/154 +f 570/803/154 572/942/154 574/801/154 +f 551/804/154 549/813/154 578/805/154 +f 557/807/154 555/946/154 582/808/154 +f 561/795/154 585/947/154 579/810/154 +f 547/811/154 579/948/154 578/812/154 +f 551/804/154 580/949/154 581/814/154 +f 557/807/154 583/950/154 584/816/154 +f 553/815/154 581/951/154 582/818/154 +f 588/822/154 586/952/154 587/953/154 +f 587/953/154 593/954/154 588/822/154 +f 593/954/154 592/955/154 588/822/154 +f 592/955/154 591/956/154 588/822/154 +f 591/956/154 590/820/154 588/822/154 +f 604/823/154 606/957/154 607/824/154 +f 600/826/155 610/958/155 611/827/155 +f 627/829/155 617/959/155 616/830/155 +f 608/832/154 609/835/154 601/833/154 +f 607/824/154 608/832/154 602/834/154 +f 609/835/154 594/960/154 605/836/154 +f 613/837/155 596/841/155 598/838/155 +f 612/840/155 595/842/155 596/841/155 +f 611/827/155 610/958/155 595/842/155 +f 623/843/154 621/961/154 620/844/154 +f 619/846/154 618/849/154 626/847/154 +f 620/844/154 619/846/154 625/848/154 +f 618/849/154 633/962/154 622/850/154 +f 614/851/155 631/855/155 629/852/155 +f 615/854/155 632/856/155 631/855/155 +f 616/830/155 617/959/155 632/856/155 +s 1 +f 317/858/172 334/582/158 318/540/158 +f 325/560/173 342/568/157 326/563/157 +f 318/540/158 335/584/174 319/859/174 +f 326/563/157 343/567/175 327/857/175 +f 319/859/174 336/586/176 320/545/176 +f 327/857/175 344/570/177 328/523/177 +f 320/545/176 337/588/178 321/860/178 +f 328/523/177 345/572/179 329/526/179 +f 321/860/178 338/590/156 322/550/156 +f 314/530/161 331/576/180 315/533/180 +f 329/526/179 330/574/161 314/530/161 +f 322/861/156 339/592/181 323/553/181 +f 315/533/180 332/578/182 316/536/182 +f 323/553/181 340/595/183 324/557/183 +f 316/536/182 333/580/172 317/858/172 +f 324/557/183 341/597/173 325/560/173 +f 354/963/161 371/613/180 355/964/180 +f 347/965/181 364/600/183 348/966/183 +f 355/964/180 372/612/182 356/967/182 +f 348/966/183 365/622/173 349/968/173 +f 356/967/182 373/610/172 357/969/172 +f 349/968/173 366/621/157 350/970/157 +f 357/969/172 374/609/158 358/971/158 +f 350/970/157 367/619/175 351/972/175 +f 358/971/158 375/607/174 359/973/174 +f 351/972/175 368/618/177 352/974/177 +f 359/973/174 376/606/176 360/975/176 +f 352/974/177 369/616/179 353/976/179 +f 360/975/176 377/602/178 361/977/178 +f 353/976/179 370/615/161 354/978/161 +f 346/979/156 363/601/181 347/965/181 +f 361/977/178 362/604/156 346/979/156 +f 435/980/184 444/981/185 443/982/186 +f 440/983/168 449/984/187 448/985/188 +f 439/986/189 446/987/190 438/988/154 +f 437/989/191 444/981/185 436/990/169 +f 434/991/155 443/982/186 442/992/192 +f 434/991/155 449/984/187 441/993/193 +f 439/986/189 448/985/188 447/994/194 +f 438/995/154 445/996/195 437/989/191 +f 447/994/194 454/997/196 446/987/190 +f 444/981/185 453/998/197 452/999/198 +f 442/992/192 451/1000/199 450/1001/200 +f 442/992/192 457/1002/201 449/984/187 +f 448/985/188 455/1003/202 447/994/194 +f 445/996/195 454/1004/196 453/998/197 +f 443/982/186 452/999/198 451/1000/199 +f 449/984/187 456/1005/203 448/985/188 +f 456/1005/203 465/1006/193 464/1007/168 +f 454/997/196 463/1008/189 462/1009/154 +f 452/999/198 461/696/191 460/1010/169 +f 450/1001/200 459/1011/184 458/1012/155 +f 450/1001/200 465/1006/193 457/1002/201 +f 455/1003/202 464/1007/168 463/1008/189 +f 454/1004/196 461/696/191 453/998/197 +f 452/999/198 459/1011/184 451/1000/199 +f 467/701/184 474/1013/155 466/710/155 +f 466/710/155 481/1014/193 473/703/193 +f 472/694/168 479/1015/189 471/695/189 +f 470/697/154 477/1016/191 469/698/191 +f 467/701/184 476/1017/169 475/1018/184 +f 472/694/168 481/1014/193 480/1019/168 +f 470/705/154 479/1015/189 478/1020/154 +f 469/698/191 476/1017/169 468/700/169 +f 547/811/161 548/1021/177 546/1022/161 +f 549/813/177 550/1023/157 548/1021/177 +f 551/804/157 552/1024/183 550/1023/157 +f 553/815/183 554/1025/156 552/1024/183 +f 555/946/156 556/1026/176 554/1027/156 +f 557/807/176 558/1028/158 556/1026/176 +f 559/817/158 560/1029/182 558/1028/158 +f 561/795/182 546/1022/161 560/1029/182 +f 562/1030/161 577/1031/177 569/1032/177 +f 568/1033/157 575/1034/183 567/1035/183 +f 566/1036/156 573/1037/176 565/1038/176 +f 564/1039/158 571/1040/182 563/1041/182 +f 569/1032/177 576/1042/157 568/1033/157 +f 567/1035/183 574/1043/156 566/1044/156 +f 565/1038/176 572/1045/158 564/1039/158 +f 563/1041/182 570/1046/161 562/1030/161 +f 583/950/176 592/1047/158 584/816/158 +f 581/951/183 590/1048/156 582/818/156 +f 578/805/177 588/1049/157 580/806/157 +f 584/796/158 593/1050/182 585/797/182 +f 582/808/156 591/1051/176 583/809/176 +f 580/949/157 589/1052/183 581/814/183 +f 579/948/161 586/1053/177 578/812/177 +f 585/947/182 587/1054/161 579/810/161 +f 609/835/179 597/839/204 594/960/204 +f 606/957/205 611/827/175 607/824/175 +f 607/824/175 612/840/177 608/832/177 +f 608/832/177 613/837/179 609/835/179 +f 299/1055/181 634/1056/156 298/1057/156 +f 301/1058/173 636/1059/183 300/1060/183 +f 303/1061/175 638/1062/157 302/1063/157 +f 298/1057/156 649/1064/178 313/1065/178 +f 307/1066/180 642/1067/161 306/1068/161 +f 302/1063/157 637/1069/173 301/1058/173 +f 305/1070/179 640/1071/177 304/1072/177 +f 311/1073/174 646/1074/158 310/1075/158 +f 312/1076/176 647/1077/174 311/1073/174 +f 306/1078/161 641/1079/179 305/1070/179 +f 300/1060/183 635/1080/181 299/1055/181 +f 309/1081/172 644/1082/182 308/1083/182 +f 304/1072/177 639/1084/175 303/1061/175 +f 310/1075/158 645/1085/172 309/1081/172 +f 313/1065/178 648/1086/176 312/1076/176 +f 308/1083/182 643/1087/180 307/1066/180 +f 618/849/179 630/853/204 633/962/204 +f 621/961/205 616/830/175 620/844/175 +f 620/844/175 615/854/177 619/846/177 +f 619/846/177 614/851/179 618/849/179 +f 317/858/172 333/580/172 334/582/158 +f 325/560/173 341/597/173 342/568/157 +f 318/540/158 334/582/158 335/584/174 +f 326/563/157 342/568/157 343/567/175 +f 319/859/174 335/584/174 336/586/176 +f 327/857/175 343/567/175 344/570/177 +f 320/545/176 336/586/176 337/588/178 +f 328/523/177 344/570/177 345/572/179 +f 321/860/178 337/588/178 338/590/156 +f 314/530/161 330/574/161 331/576/180 +f 329/526/179 345/572/179 330/574/161 +f 322/861/156 338/593/156 339/592/181 +f 315/533/180 331/576/180 332/578/182 +f 323/553/181 339/592/181 340/595/183 +f 316/536/182 332/578/182 333/580/172 +f 324/557/183 340/595/183 341/597/173 +f 354/963/161 370/623/161 371/613/180 +f 347/965/181 363/601/181 364/600/183 +f 355/964/180 371/613/180 372/612/182 +f 348/966/183 364/600/183 365/622/173 +f 356/967/182 372/612/182 373/610/172 +f 349/968/173 365/622/173 366/621/157 +f 357/969/172 373/610/172 374/609/158 +f 350/970/157 366/621/157 367/619/175 +f 358/971/158 374/609/158 375/607/174 +f 351/972/175 367/619/175 368/618/177 +f 359/973/174 375/607/174 376/606/176 +f 352/974/177 368/618/177 369/616/179 +f 360/975/176 376/606/176 377/602/178 +f 353/976/179 369/616/179 370/615/161 +f 346/979/156 362/604/156 363/601/181 +f 361/977/178 377/602/178 362/604/156 +f 435/980/184 436/990/169 444/981/185 +f 440/983/168 441/993/193 449/984/187 +f 439/986/189 447/994/194 446/987/190 +f 437/989/191 445/996/195 444/981/185 +f 434/991/155 435/980/184 443/982/186 +f 434/991/155 442/992/192 449/984/187 +f 439/986/189 440/983/168 448/985/188 +f 438/995/154 446/1088/190 445/996/195 +f 447/994/194 455/1003/202 454/997/196 +f 444/981/185 445/996/195 453/998/197 +f 442/992/192 443/982/186 451/1000/199 +f 442/992/192 450/1001/200 457/1002/201 +f 448/985/188 456/1005/203 455/1003/202 +f 445/996/195 446/1088/190 454/1004/196 +f 443/982/186 444/981/185 452/999/198 +f 449/984/187 457/1002/201 456/1005/203 +f 456/1005/203 457/1002/201 465/1006/193 +f 454/997/196 455/1003/202 463/1008/189 +f 452/999/198 453/998/197 461/696/191 +f 450/1001/200 451/1000/199 459/1011/184 +f 450/1001/200 458/1012/155 465/1006/193 +f 455/1003/202 456/1005/203 464/1007/168 +f 454/1004/196 462/910/154 461/696/191 +f 452/999/198 460/1010/169 459/1011/184 +f 467/701/184 475/1018/184 474/1013/155 +f 466/710/155 474/1013/155 481/1014/193 +f 472/694/168 480/1019/168 479/1015/189 +f 470/697/154 478/1089/154 477/1016/191 +f 467/701/184 468/700/169 476/1017/169 +f 472/694/168 473/703/193 481/1014/193 +f 470/705/154 471/695/189 479/1015/189 +f 469/698/191 477/1016/191 476/1017/169 +f 547/811/161 549/813/177 548/1021/177 +f 549/813/177 551/804/157 550/1023/157 +f 551/804/157 553/815/183 552/1024/183 +f 553/815/183 555/819/156 554/1025/156 +f 555/946/156 557/807/176 556/1026/176 +f 557/807/176 559/817/158 558/1028/158 +f 559/817/158 561/795/182 560/1029/182 +f 561/795/182 547/811/161 546/1022/161 +f 562/1030/161 570/1046/161 577/1031/177 +f 568/1033/157 576/1042/157 575/1034/183 +f 566/1036/156 574/1090/156 573/1037/176 +f 564/1039/158 572/1045/158 571/1040/182 +f 569/1032/177 577/1031/177 576/1042/157 +f 567/1035/183 575/1034/183 574/1043/156 +f 565/1038/176 573/1037/176 572/1045/158 +f 563/1041/182 571/1040/182 570/1046/161 +f 583/950/176 591/1091/176 592/1047/158 +f 581/951/183 589/1092/183 590/1048/156 +f 578/805/177 586/1093/177 588/1049/157 +f 584/796/158 592/1094/158 593/1050/182 +f 582/808/156 590/1095/156 591/1051/176 +f 580/949/157 588/1096/157 589/1052/183 +f 579/948/161 587/1097/161 586/1053/177 +f 585/947/182 593/1098/182 587/1054/161 +f 609/835/179 613/837/179 597/839/204 +f 606/957/205 599/828/205 611/827/175 +f 607/824/175 611/827/175 612/840/177 +f 608/832/177 612/840/177 613/837/179 +f 299/1055/181 635/1080/181 634/1056/156 +f 301/1058/173 637/1069/173 636/1059/183 +f 303/1061/175 639/1084/175 638/1062/157 +f 298/1057/156 634/1056/156 649/1064/178 +f 307/1066/180 643/1087/180 642/1067/161 +f 302/1063/157 638/1062/157 637/1069/173 +f 305/1070/179 641/1079/179 640/1071/177 +f 311/1073/174 647/1077/174 646/1074/158 +f 312/1076/176 648/1086/176 647/1077/174 +f 306/1078/161 642/1099/161 641/1079/179 +f 300/1060/183 636/1059/183 635/1080/181 +f 309/1081/172 645/1085/172 644/1082/182 +f 304/1072/177 640/1071/177 639/1084/175 +f 310/1075/158 646/1074/158 645/1085/172 +f 313/1065/178 649/1064/178 648/1086/176 +f 308/1083/182 644/1082/182 643/1087/180 +f 618/849/179 614/851/179 630/853/204 +f 621/961/205 628/831/205 616/830/175 +f 620/844/175 616/830/175 615/854/177 +f 619/846/177 615/854/177 614/851/179 diff --git a/src/main/resources/assets/hbm/models/weapons/g3.obj b/src/main/resources/assets/hbm/models/weapons/g3.obj new file mode 100644 index 000000000..3c68f4ea0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/g3.obj @@ -0,0 +1,6864 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +mtllib g3.mtl +o Trigger_Rifle.002 +v 0.125000 -2.093750 -3.062500 +v 0.125000 -1.968750 -3.125000 +v 0.125000 -2.093750 -3.000000 +v 0.125000 -1.781250 -3.187500 +v 0.125000 -1.968750 -3.250000 +v 0.125000 -1.781250 -3.312500 +v 0.125000 -1.593750 -3.187500 +v 0.125000 -1.406250 -3.312500 +v 0.125000 -1.218750 -3.000000 +v 0.125000 -1.343750 -3.375000 +v -0.125000 -1.968750 -3.125000 +v -0.125000 -2.093750 -3.062500 +v -0.125000 -2.093750 -3.000000 +v -0.125000 -1.781250 -3.187500 +v -0.125000 -1.968750 -3.250000 +v -0.125000 -1.593750 -3.187500 +v -0.125000 -1.781250 -3.312500 +v -0.125000 -1.218750 -3.000000 +v -0.125000 -1.406250 -3.312500 +v -0.125000 -1.343750 -3.375000 +vt 0.656371 0.559846 +vt 0.667954 0.563707 +vt 0.656371 0.563707 +vt 0.629344 0.555985 +vt 0.640927 0.563707 +vt 0.629344 0.563707 +vt 0.617761 0.555985 +vt 0.606178 0.563707 +vt 0.691120 0.563707 +vt 0.698842 0.552124 +vt 0.718147 0.563707 +vt 0.602317 0.563707 +vt 0.606178 0.540541 +vt 0.667954 0.579151 +vt 0.656371 0.583012 +vt 0.656371 0.579151 +vt 0.629344 0.586873 +vt 0.640927 0.579151 +vt 0.640927 0.586873 +vt 0.617761 0.586873 +vt 0.629344 0.579151 +vt 0.691120 0.579151 +vt 0.718147 0.579151 +vt 0.698842 0.590734 +vt 0.606178 0.579151 +vt 0.606178 0.602317 +vt 0.602317 0.579151 +vt 0.667954 0.555985 +vt 0.640927 0.555985 +vt 0.667954 0.586873 +vt 0.652510 0.579151 +vt 0.652510 0.563707 +vt 0.679537 0.579151 +vt 0.679537 0.563707 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 -0.2298 0.9732 +vn 0.0000 -0.1602 -0.9871 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 -0.9571 -0.2898 +vn 0.0000 0.1602 0.9871 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.6070 -0.7947 +vn 0.0000 0.5257 0.8507 +usemtl None +s off +f 1/1/1 2/2/1 3/3/1 +f 4/4/1 5/5/1 6/6/1 +f 7/7/1 6/6/1 8/8/1 +f 7/9/1 8/10/1 9/11/1 +f 8/8/1 10/12/1 9/13/1 +f 11/14/2 12/15/2 13/16/2 +f 14/17/2 15/18/2 11/19/2 +f 16/20/2 17/21/2 14/17/2 +f 16/22/2 18/23/2 19/24/2 +f 19/25/2 18/26/2 20/27/2 +f 1/1/1 5/28/1 2/2/1 +f 4/4/1 2/29/1 5/5/1 +f 7/7/1 4/4/1 6/6/1 +f 11/14/2 15/30/2 12/15/2 +f 14/17/2 17/21/2 15/18/2 +f 16/20/2 19/25/2 17/21/2 +s 1 +f 9/11/3 16/22/4 7/9/4 +f 6/6/5 19/25/6 8/8/6 +f 3/3/7 12/31/8 1/32/8 +f 7/9/4 14/33/9 4/34/9 +f 8/8/6 20/27/10 10/12/10 +f 1/32/8 15/18/11 5/5/11 +f 4/34/9 11/14/12 2/2/12 +f 5/5/11 17/21/5 6/6/5 +f 2/2/12 13/16/7 3/3/7 +f 9/11/3 18/23/3 16/22/4 +f 6/6/5 17/21/5 19/25/6 +f 3/3/7 13/16/7 12/31/8 +f 7/9/4 16/22/4 14/33/9 +f 8/8/6 19/25/6 20/27/10 +f 1/32/8 12/31/8 15/18/11 +f 4/34/9 14/33/9 11/14/12 +f 5/5/11 15/18/11 17/21/5 +f 2/2/12 11/14/12 13/16/7 +o Selector_Rifle.001 +v 0.343750 -0.755365 -3.411612 +v 0.406250 -0.718753 -3.500000 +v 0.343750 -0.718753 -3.500000 +v 0.343750 -0.932141 -3.411612 +v 0.406250 -0.843753 -3.375000 +v 0.343750 -0.843753 -3.375000 +v 0.406250 -0.755365 -3.411612 +v 0.343750 -0.968753 -3.500000 +v 0.406250 -0.932141 -3.411612 +v 0.343750 -0.937503 -4.187500 +v 0.468750 -1.000003 -4.125000 +v 0.343750 -1.000003 -4.125000 +v 0.468750 -0.937503 -4.187500 +v 0.343750 -0.718753 -4.062500 +v 0.468750 -0.718753 -4.062500 +v 0.468750 -0.843753 -4.000000 +v 0.468750 -0.718753 -3.750000 +v 0.468750 -0.906253 -3.750000 +v 0.406250 -0.968753 -3.500000 +v 0.343750 -0.843753 -4.000000 +vt 0.725869 0.474903 +vt 0.722008 0.471042 +vt 0.725869 0.471042 +vt 0.725869 0.482625 +vt 0.722008 0.478764 +vt 0.725869 0.478764 +vt 0.722008 0.474903 +vt 0.725869 0.486486 +vt 0.722008 0.482625 +vt 0.725869 0.420849 +vt 0.718147 0.416988 +vt 0.725869 0.416988 +vt 0.718147 0.420849 +vt 0.725869 0.436293 +vt 0.718147 0.436293 +vt 0.718147 0.405405 +vt 0.710425 0.432432 +vt 0.712686 0.420849 +vt 0.718147 0.455598 +vt 0.718147 0.389961 +vt 0.722008 0.374517 +vt 0.725869 0.374517 +vt 0.710425 0.440154 +vt 0.706564 0.455598 +vt 0.718147 0.471042 +vt 0.715885 0.476503 +vt 0.710425 0.478764 +vt 0.722008 0.486486 +vt 0.725869 0.405405 +vt 0.704964 0.476503 +vt 0.702703 0.471042 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.9835 0.1810 +vn 0.0000 0.9808 0.1951 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.9973 0.0738 +vn 0.0000 -0.7071 -0.7071 +vn -0.0000 -0.9985 0.0553 +vn 0.0000 0.4961 -0.8682 +vn 0.0000 0.8649 -0.5019 +vn 0.0000 -0.6247 0.7809 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9701 -0.2425 +vn 0.0000 -0.9987 0.0506 +vn 0.9925 0.0000 0.1222 +vn 0.9900 0.0000 0.1410 +vn 0.9902 0.0000 0.1396 +vn 0.9916 0.0000 0.1297 +usemtl None +s 1 +f 21/35/13 22/36/14 23/37/15 +f 24/38/16 25/39/17 26/40/17 +f 26/40/17 27/41/13 21/35/13 +f 28/42/18 29/43/16 24/38/16 +f 30/44/19 31/45/20 32/46/20 +f 33/47/21 34/48/22 35/49/22 +f 36/50/23 32/46/20 31/45/20 +f 33/47/24 36/51/24 31/52/24 +f 23/37/15 22/36/14 37/53/25 +f 38/54/26 39/55/27 28/56/18 +f 36/57/24 37/53/28 38/58/29 +f 22/59/30 27/60/24 25/61/24 +f 22/59/30 38/58/29 37/53/28 +f 21/35/13 27/41/13 22/36/14 +f 24/38/16 29/43/16 25/39/17 +f 26/40/17 25/39/17 27/41/13 +f 28/42/18 39/62/27 29/43/16 +f 30/44/19 33/47/19 31/45/20 +f 33/47/21 30/44/21 34/48/22 +f 36/50/23 40/63/23 32/46/20 +f 33/47/24 35/49/24 36/51/24 +f 35/49/22 34/48/22 37/53/25 +f 34/48/22 23/37/15 37/53/25 +f 28/56/18 40/63/26 38/54/26 +f 40/63/26 36/50/26 38/54/26 +f 36/57/24 35/49/24 37/53/28 +f 25/61/24 29/64/24 39/65/31 +f 39/65/31 22/59/30 25/61/24 +f 22/59/30 39/65/31 38/58/29 +o Silencer +v -0.220972 0.220971 11.250000 +v -0.000001 0.312500 11.250000 +v -0.000000 -0.312500 11.250000 +v 0.312499 0.000000 11.250000 +v 0.220971 -0.220971 11.562500 +v 0.220971 -0.220971 11.250000 +v -0.220971 -0.220971 11.250000 +v -0.000000 -0.312500 11.562500 +v -0.220971 -0.220971 11.562500 +v -0.312501 -0.000000 11.562500 +v -0.220972 0.220971 11.562500 +v 0.220970 0.220971 11.562500 +v 0.220970 0.220971 11.250000 +v -0.312501 -0.000000 11.250000 +v -0.000001 0.312500 11.562500 +v 0.312499 0.000000 11.562500 +v 0.353552 -0.353553 15.312500 +v -0.000000 -0.500000 11.562500 +v 0.353553 -0.353553 11.562500 +v -0.353554 -0.353553 15.312500 +v -0.500000 -0.000000 11.562500 +v -0.353553 -0.353553 11.562500 +v -0.353554 0.353554 15.312500 +v -0.000001 0.500000 11.562500 +v -0.353554 0.353554 11.562500 +v 0.353552 0.353554 15.312500 +v 0.499999 0.000000 11.562500 +v 0.353552 0.353554 11.562500 +v 0.499999 0.000000 15.312500 +v -0.000001 -0.500000 15.312500 +v -0.500001 -0.000000 15.312500 +v -0.000001 0.500000 15.312500 +v 0.093749 0.000000 15.312500 +v 0.066290 0.066292 15.312500 +v -0.066292 0.066292 15.312500 +v -0.000001 0.093750 15.312500 +v -0.093751 -0.000000 15.312500 +v -0.066292 -0.066291 15.312500 +v -0.000001 -0.093750 15.312500 +v 0.066290 -0.066291 15.312500 +v -0.066292 -0.066291 14.812500 +v -0.066292 0.066292 14.812500 +v 0.066290 0.066292 14.812500 +v -0.000001 -0.093750 14.812500 +v -0.093751 -0.000000 14.812500 +v -0.000001 0.093750 14.812500 +v 0.093749 0.000000 14.812500 +v 0.066290 -0.066291 14.812500 +vt 0.865111 0.565111 +vt 0.853846 0.592308 +vt 0.930769 0.592308 +vt 1.000000 0.715385 +vt 0.961538 0.684615 +vt 1.000000 0.684615 +vt 1.000000 0.961538 +vt 0.961538 0.992308 +vt 0.961538 0.961538 +vt 1.000000 0.869231 +vt 0.961538 0.900000 +vt 0.961538 0.869231 +vt 1.000000 0.807692 +vt 0.961538 0.776923 +vt 1.000000 0.776923 +vt 1.000000 0.669231 +vt 0.961538 0.638462 +vt 1.000000 0.638462 +vt 1.000000 0.915385 +vt 0.961538 0.946154 +vt 0.961538 0.915385 +vt 1.000000 0.823077 +vt 0.961538 0.853846 +vt 0.961538 0.823077 +vt 1.000000 0.761538 +vt 0.961538 0.730769 +vt 1.000000 0.730769 +vt 0.476923 0.676923 +vt 0.938462 0.630769 +vt 0.938462 0.676923 +vt 0.476923 0.953846 +vt 0.938462 0.907692 +vt 0.938462 0.953846 +vt 0.476923 0.861538 +vt 0.938462 0.815385 +vt 0.938462 0.861538 +vt 0.476923 0.769231 +vt 0.938462 0.723077 +vt 0.938462 0.769231 +vt 0.476923 0.723077 +vt 0.476923 1.000000 +vt 0.938462 1.000000 +vt 0.476923 0.907692 +vt 0.476923 0.815385 +vt 0.961538 0.807692 +vt 0.430769 0.742308 +vt 0.430769 0.788462 +vt 0.430769 0.842308 +vt 0.430769 0.834615 +vt 0.430769 0.880769 +vt 0.430769 0.926923 +vt 0.430769 0.973077 +vt 0.430769 0.650000 +vt 0.476923 0.630769 +vt 0.430769 0.696154 +vt 0.930769 0.569231 +vt 0.992308 0.576923 +vt 0.930769 0.576923 +vt 0.930769 0.584615 +vt 0.992308 0.592308 +vt 0.930769 0.592308 +vt 0.930769 0.600000 +vt 0.992308 0.607692 +vt 0.930769 0.607692 +vt 0.930769 0.623077 +vt 0.992308 0.630769 +vt 0.930769 0.630769 +vt 0.992308 0.584615 +vt 0.992308 0.600000 +vt 0.992308 0.615385 +vt 0.930769 0.615385 +vt 0.992308 0.623077 +vt 0.980769 0.546154 +vt 0.992308 0.557692 +vt 0.980769 0.569231 +vt 0.865111 0.619504 +vt 0.892308 0.630769 +vt 0.919504 0.619504 +vt 0.919504 0.565111 +vt 0.892308 0.553846 +vt 0.961538 0.715385 +vt 1.000000 0.992308 +vt 1.000000 0.900000 +vt 0.961538 0.669231 +vt 1.000000 0.946154 +vt 1.000000 0.853846 +vt 0.961538 0.761538 +vt 0.430769 0.750000 +vt 0.430769 0.796154 +vt 0.430769 0.888462 +vt 0.430769 0.934615 +vt 0.430769 0.980769 +vt 0.430769 0.657692 +vt 0.430769 0.703846 +vt 0.992308 0.569231 +vt 0.972610 0.565851 +vt 0.969231 0.557692 +vt 0.972610 0.549533 +vt 0.988928 0.549533 +vt 0.988928 0.565851 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.0000 0.0000 1.0000 +usemtl None +s 1 +f 41/66/32 42/67/32 43/68/32 +f 44/69/33 45/70/34 46/71/34 +f 47/72/35 48/73/36 49/74/35 +f 41/75/37 50/76/38 51/77/37 +f 42/78/39 52/79/40 53/80/40 +f 46/81/34 48/82/36 43/83/36 +f 54/84/38 49/85/35 50/86/38 +f 42/87/39 51/88/37 55/89/39 +f 53/90/40 56/91/33 44/92/33 +f 57/93/34 58/94/36 59/95/34 +f 60/96/35 61/97/38 62/98/35 +f 63/99/37 64/100/39 65/101/37 +f 66/102/40 67/103/33 68/104/40 +f 69/105/33 59/95/34 67/103/33 +f 70/106/36 62/98/35 58/107/36 +f 71/108/38 65/101/37 61/97/38 +f 72/109/39 68/104/40 64/100/39 +f 48/82/32 59/95/32 58/94/32 +f 45/70/32 67/103/32 59/95/32 +f 56/91/32 68/104/32 67/103/32 +f 55/110/32 68/104/32 52/79/32 +f 51/88/32 64/100/32 55/89/32 +f 50/76/32 65/101/32 51/77/32 +f 49/85/32 61/97/32 50/86/32 +f 48/73/32 62/98/32 49/74/32 +f 66/102/41 73/111/41 69/105/41 +f 72/109/41 74/112/41 66/102/41 +f 72/109/41 75/113/41 76/114/41 +f 71/108/41 75/115/41 63/99/41 +f 60/96/41 77/116/41 71/108/41 +f 70/106/41 78/117/41 60/96/41 +f 57/93/41 79/118/41 70/119/41 +f 69/105/41 80/120/41 57/93/41 +f 79/121/39 81/122/40 78/123/40 +f 77/124/33 82/125/34 75/126/34 +f 76/127/36 83/128/35 74/129/35 +f 80/130/37 84/131/39 79/132/39 +f 78/123/40 85/133/33 77/124/33 +f 75/126/34 86/134/36 76/127/36 +f 74/129/35 87/135/38 73/136/38 +f 73/136/38 88/137/37 80/130/37 +f 85/138/41 84/139/41 87/140/41 +f 42/67/32 53/141/32 43/68/32 +f 53/141/32 44/142/32 43/68/32 +f 44/142/32 46/143/32 43/68/32 +f 43/68/32 47/144/32 54/145/32 +f 54/145/32 41/66/32 43/68/32 +f 44/69/33 56/146/33 45/70/34 +f 47/72/35 43/147/36 48/73/36 +f 41/75/37 54/148/38 50/76/38 +f 42/78/39 55/110/39 52/79/40 +f 46/81/34 45/149/34 48/82/36 +f 54/84/38 47/150/35 49/85/35 +f 42/87/39 41/151/37 51/88/37 +f 53/90/40 52/152/40 56/91/33 +f 57/93/34 70/119/36 58/94/36 +f 60/96/35 71/108/38 61/97/38 +f 63/99/37 72/109/39 64/100/39 +f 66/102/40 69/105/33 67/103/33 +f 69/105/33 57/93/34 59/95/34 +f 70/106/36 60/96/35 62/98/35 +f 71/108/38 63/99/37 65/101/37 +f 72/109/39 66/102/40 68/104/40 +f 48/82/32 45/149/32 59/95/32 +f 45/70/32 56/146/32 67/103/32 +f 56/91/32 52/152/32 68/104/32 +f 55/110/32 64/100/32 68/104/32 +f 51/88/32 65/101/32 64/100/32 +f 50/76/32 61/97/32 65/101/32 +f 49/85/32 62/98/32 61/97/32 +f 48/73/32 58/107/32 62/98/32 +f 66/102/41 74/153/41 73/111/41 +f 72/109/41 76/154/41 74/112/41 +f 72/109/41 63/99/41 75/113/41 +f 71/108/41 77/155/41 75/115/41 +f 60/96/41 78/156/41 77/116/41 +f 70/106/41 79/157/41 78/117/41 +f 57/93/41 80/158/41 79/118/41 +f 69/105/41 73/159/41 80/120/41 +f 79/121/39 84/160/39 81/122/40 +f 77/124/33 85/133/33 82/125/34 +f 76/127/36 86/134/36 83/128/35 +f 80/130/37 88/137/37 84/131/39 +f 78/123/40 81/122/40 85/133/33 +f 75/126/34 82/125/34 86/134/36 +f 74/129/35 83/128/35 87/135/38 +f 73/136/38 87/135/38 88/137/37 +f 87/140/41 83/161/41 86/162/41 +f 86/162/41 82/163/41 87/140/41 +f 82/163/41 85/138/41 87/140/41 +f 85/138/41 81/164/41 84/139/41 +f 84/139/41 88/165/41 87/140/41 +o Scope_Scope.001 +v 0.312500 2.156250 -3.312500 +v 0.312500 1.531250 -2.687500 +v 0.312500 1.531250 -3.312500 +v -0.312500 2.156250 -2.687500 +v -0.312500 1.531250 -3.312500 +v -0.312500 1.531250 -2.687500 +v 0.312500 2.156250 -2.687500 +v -0.250000 2.093750 -3.437500 +v -0.312500 2.156250 -3.312500 +v 0.250000 1.593750 -3.437500 +v 0.250000 2.093750 -3.437500 +v -0.250000 1.593750 -3.437500 +v 0.250000 2.093750 -2.562500 +v -0.250000 1.593750 -2.562500 +v 0.250000 1.593750 -2.562500 +v -0.250000 2.093750 -2.562500 +v -0.093750 1.468750 -1.875000 +v 0.093750 1.656250 -1.875000 +v -0.093750 1.656250 -1.875000 +v -0.093750 1.281250 -2.500000 +v 0.093750 1.281250 -4.000000 +v -0.093750 1.281250 -4.000000 +v -0.093750 1.468750 -2.000000 +v 0.093750 1.468750 -1.875000 +v 0.093750 1.281250 -2.187500 +v 0.093750 1.468750 -2.312500 +v 0.093750 1.468750 -2.000000 +v -0.093750 1.281250 -2.187500 +v -0.093750 1.468750 -2.312500 +v 0.093750 1.468750 -4.125000 +v 0.093750 1.281250 -4.312500 +v -0.093750 1.468750 -4.125000 +v -0.093750 1.281250 -4.312500 +v -0.093750 1.656250 -2.312500 +v 0.093750 1.281250 -4.875000 +v -0.156250 0.531250 -4.750000 +v -0.281250 0.531250 -5.062500 +v -0.156250 0.531250 -5.062500 +v -0.093750 1.093750 -5.062500 +v -0.093750 1.281250 -4.875000 +v 0.343750 0.531250 -2.500000 +v 0.343750 0.781250 -2.187500 +v 0.343750 0.531250 -2.187500 +v -0.156250 0.531250 -2.187500 +v -0.281250 0.531250 -2.500000 +v -0.156250 0.531250 -2.500000 +v 0.156250 0.531250 -5.062500 +v 0.343750 0.531250 -4.750000 +v 0.156250 0.531250 -4.750000 +v -0.093750 0.906250 -4.750000 +v -0.093750 1.031250 -4.562500 +v -0.093750 1.093750 -4.750000 +v 0.093750 0.906250 -4.750000 +v 0.093750 1.093750 -4.750000 +v 0.093750 1.031250 -4.562500 +v -0.093750 0.906250 -2.500000 +v -0.093750 1.093750 -2.500000 +v -0.093750 1.031250 -2.687500 +v 0.093750 0.906250 -2.500000 +v 0.093750 1.031250 -2.687500 +v 0.093750 1.093750 -2.500000 +v -0.281250 0.781250 -4.750000 +v -0.156250 0.718750 -4.750000 +v 0.093750 1.281250 -2.500000 +v 0.093750 1.093750 -5.062500 +v 0.406250 0.593750 -4.906250 +v 0.406250 0.612056 -4.950444 +v 0.406250 0.656250 -4.968750 +v 0.406250 0.656250 -2.406250 +v 0.406250 0.718750 -2.343750 +v 0.406250 0.656250 -2.281250 +v -0.156250 0.718750 -5.062500 +v -0.281250 0.781250 -5.062500 +v 0.343750 0.781250 -5.062500 +v 0.343750 0.531250 -5.062500 +v 0.281250 0.781250 -2.500000 +v 0.156250 0.718750 -2.500000 +v -0.156250 0.718750 -2.187500 +v 0.156250 0.718750 -2.187500 +v -0.093750 1.093750 -2.187500 +v 0.156250 0.531250 -2.187500 +v 0.093750 1.656250 -4.125000 +v -0.093750 1.656250 -4.125000 +v 0.093750 1.656250 -3.687500 +v 0.093750 1.468750 -3.687500 +v 0.093750 1.468750 -3.812500 +v -0.093750 1.656250 -3.687500 +v -0.093750 1.468750 -3.812500 +v -0.093750 1.468750 -3.687500 +v 0.093750 1.656250 -2.312500 +v -0.281250 0.531250 -4.750000 +v 0.343750 0.781250 -2.500000 +v -0.281250 0.531250 -2.187500 +v 0.281250 0.781250 -4.750000 +v 0.156250 0.718750 -4.750000 +v 0.343750 0.781250 -4.750000 +v 0.093750 1.093750 -2.187500 +v 0.406250 0.700444 -4.950444 +v 0.406250 0.718750 -4.906250 +v 0.406250 0.700444 -4.862056 +v 0.406250 0.656250 -4.843750 +v 0.406250 0.612056 -4.862056 +v 0.406250 0.700444 -2.387945 +v 0.406250 0.700444 -2.299556 +v 0.406250 0.612056 -2.299556 +v 0.406250 0.593750 -2.343750 +v 0.406250 0.612056 -2.387945 +v 0.281250 0.781250 -5.062500 +v 0.156250 0.718750 -5.062500 +v -0.281250 0.781250 -2.500000 +v -0.156250 0.718750 -2.500000 +v 0.156250 0.531250 -2.500000 +v 0.281250 0.781250 -2.187500 +v -0.281250 0.781250 -2.187500 +v 0.270633 1.687500 -5.750000 +v 0.312500 1.843750 -5.625000 +v 0.312500 1.843750 -5.750000 +v 0.270633 2.000000 -5.750000 +v 0.156250 2.114383 -5.625000 +v 0.156250 2.114383 -5.750000 +v -0.156250 1.573117 -5.750000 +v 0.000000 1.531250 -5.625000 +v 0.000000 1.531250 -5.750000 +v -0.270633 2.000000 -5.750000 +v -0.312500 1.843750 -5.625000 +v -0.312500 1.843750 -5.750000 +v 0.000000 2.156250 -5.625000 +v 0.000000 2.156250 -5.750000 +v 0.156250 1.573117 -5.625000 +v 0.156250 1.573117 -5.750000 +v -0.270633 1.687500 -5.625000 +v -0.270633 1.687500 -5.750000 +v -0.156250 2.114383 -5.625000 +v -0.156250 2.114383 -5.750000 +v 0.270633 1.687500 -5.625000 +v 0.270633 2.000000 -5.625000 +v -0.156250 1.573117 -5.625000 +v -0.270633 2.000000 -5.625000 +v 0.000000 2.218750 -5.750000 +v -0.324760 2.031250 -5.750000 +v -0.187500 2.168509 -5.750000 +v -0.324760 1.656250 -5.750000 +v -0.375000 1.843750 -5.750000 +v 0.000000 1.468750 -5.750000 +v -0.187500 1.518990 -5.750000 +v 0.187500 1.518990 -5.750000 +v 0.324759 1.656250 -5.750000 +v 0.324759 2.031250 -5.750000 +v 0.375000 1.843750 -5.750000 +v 0.187500 2.168509 -5.750000 +v 0.187500 1.518990 -4.500000 +v 0.375000 1.843750 -4.500000 +v -0.324760 1.656250 -4.500000 +v -0.187500 2.168509 -4.500000 +v 0.324759 1.656250 -4.500000 +v 0.324759 2.031250 -4.500000 +v -0.187500 1.518990 -4.500000 +v -0.324760 2.031250 -4.500000 +v 0.187500 2.168509 -4.500000 +v 0.000000 1.468750 -4.500000 +v -0.375000 1.843750 -4.500000 +v 0.000000 2.218750 -4.500000 +v 0.125000 2.060256 -4.312500 +v 0.216506 1.968750 -4.312500 +v 0.250000 1.843750 -4.312500 +v 0.216506 1.718750 -4.312500 +v 0.125000 1.627244 -4.312500 +v 0.000000 1.593750 -4.312500 +v -0.125000 1.627244 -4.312500 +v -0.216506 1.718750 -4.312500 +v -0.250000 1.843750 -4.312500 +v -0.216506 1.968750 -4.312500 +v -0.125000 2.060256 -4.312500 +v 0.000000 2.093750 -4.312500 +v 0.216506 1.968750 -1.687500 +v -0.125000 1.627244 -1.687500 +v -0.216506 1.968750 -1.687500 +v 0.125000 2.060256 -1.687500 +v 0.000000 1.593750 -1.687500 +v -0.250000 1.843750 -1.687500 +v -0.000000 2.093750 -1.687500 +v 0.125000 1.627244 -1.687500 +v 0.250000 1.843750 -1.687500 +v -0.216506 1.718750 -1.687500 +v -0.125000 2.060256 -1.687500 +v 0.216506 1.718750 -1.687500 +v -0.000000 2.468750 -0.187500 +v 0.312500 2.385015 -0.187500 +v 0.541266 2.156250 -0.187500 +v 0.625000 1.843750 -0.187500 +v 0.541266 1.531250 -0.187500 +v 0.312500 1.302484 -0.187500 +v -0.000000 1.218750 -0.187500 +v -0.312500 1.302484 -0.187500 +v -0.541266 1.531250 -0.187500 +v -0.625000 1.843750 -0.187500 +v -0.541266 2.156250 -0.187500 +v -0.312500 2.385015 -0.187500 +v 0.541266 2.156250 1.312500 +v -0.312500 1.302484 1.312500 +v -0.541266 2.156250 1.312500 +v 0.312500 2.385015 1.312500 +v -0.000000 1.218750 1.312500 +v -0.625000 1.843750 1.312500 +v -0.000000 2.468750 1.312500 +v 0.312500 1.302484 1.312500 +v 0.625000 1.843750 1.312500 +v -0.541266 1.531250 1.312500 +v -0.312500 2.385015 1.312500 +v 0.541266 1.531250 1.312500 +v -0.562500 1.843750 1.312500 +v -0.487139 2.125000 1.312500 +v -0.281250 2.330889 1.312500 +v -0.000000 2.406250 1.312500 +v 0.281250 2.330889 1.312500 +v 0.487139 2.125000 1.312500 +v 0.562500 1.843750 1.312500 +v 0.487139 1.562500 1.312500 +v 0.281250 1.356611 1.312500 +v -0.000000 1.281250 1.312500 +v -0.281250 1.356611 1.312500 +v -0.487139 1.562500 1.312500 +v 0.281250 2.330889 1.062500 +v -0.000000 1.281250 1.062500 +v -0.562500 1.843750 1.062500 +v -0.000000 2.406250 1.062500 +v 0.281250 1.356611 1.062500 +v 0.562500 1.843750 1.062500 +v -0.487139 1.562500 1.062500 +v -0.281250 2.330889 1.062500 +v 0.487139 1.562500 1.062500 +v 0.487139 2.125000 1.062500 +v -0.281250 1.356611 1.062500 +v -0.487139 2.125000 1.062500 +v 0.125000 2.218750 -3.216506 +v 0.216506 2.156250 -3.125000 +v 0.125000 2.156250 -3.216506 +v 0.000000 2.218750 -2.750000 +v -0.125000 2.156250 -2.783494 +v 0.000000 2.156250 -2.750000 +v -0.250000 2.218750 -3.000000 +v -0.216506 2.156250 -3.125000 +v -0.250000 2.156250 -3.000000 +v 0.000000 2.218750 -3.250000 +v 0.000000 2.156250 -3.250000 +v 0.125000 2.218750 -2.783494 +v 0.125000 2.156250 -2.783494 +v -0.216506 2.218750 -2.875000 +v -0.216506 2.156250 -2.875000 +v -0.125000 2.218750 -3.216506 +v -0.125000 2.156250 -3.216506 +v 0.216506 2.218750 -2.875000 +v 0.216506 2.156250 -2.875000 +v 0.216506 2.218750 -3.125000 +v 0.250000 2.156250 -3.000000 +v -0.125000 2.218750 -2.783494 +v -0.216506 2.218750 -3.125000 +v 0.250000 2.218750 -3.000000 +v -0.270633 2.406250 -3.156250 +v -0.156250 2.218750 -3.270633 +v -0.270633 2.218750 -3.156250 +v 0.312500 2.406250 -3.000000 +v 0.270633 2.218750 -2.843750 +v 0.312500 2.218750 -3.000000 +v 0.156250 2.406250 -3.270633 +v 0.270633 2.218750 -3.156250 +v 0.156250 2.218750 -3.270633 +v 0.000000 2.406250 -2.687500 +v -0.156250 2.218750 -2.729367 +v 0.000000 2.218750 -2.687500 +v -0.312500 2.406250 -3.000000 +v -0.312500 2.218750 -3.000000 +v 0.000000 2.406250 -3.312500 +v 0.000000 2.218750 -3.312500 +v 0.156250 2.406250 -2.729367 +v 0.156250 2.218750 -2.729367 +v -0.270633 2.406250 -2.843750 +v -0.270633 2.218750 -2.843750 +v -0.156250 2.406250 -3.270633 +v 0.270633 2.406250 -2.843750 +v 0.270633 2.406250 -3.156250 +v -0.156250 2.406250 -2.729367 +v -0.375000 1.627243 -3.125000 +v -0.312500 1.718750 -3.216506 +v -0.312500 1.627243 -3.125000 +v -0.375000 2.093750 -3.000000 +v -0.312500 2.060256 -2.875000 +v -0.312500 2.093750 -3.000000 +v -0.375000 1.968750 -3.216506 +v -0.312500 2.060256 -3.125000 +v -0.312500 1.968750 -3.216506 +v -0.375000 1.843750 -2.750000 +v -0.312500 1.718750 -2.783494 +v -0.312500 1.843750 -2.750000 +v -0.375000 1.593750 -3.000000 +v -0.312500 1.593750 -3.000000 +v -0.375000 1.843750 -3.250000 +v -0.312500 1.843750 -3.250000 +v -0.375000 1.968750 -2.783494 +v -0.312500 1.968750 -2.783494 +v -0.375000 1.627243 -2.875000 +v -0.312500 1.627243 -2.875000 +v -0.375000 1.718750 -3.216506 +v -0.375000 2.060256 -2.875000 +v -0.375000 2.060256 -3.125000 +v -0.375000 1.718750 -2.783494 +v -0.375000 2.114383 -3.156250 +v -0.375000 2.156250 -3.000000 +v -0.375000 2.000000 -3.270633 +v -0.375000 1.843750 -3.312500 +v -0.375000 1.687500 -3.270633 +v -0.375000 1.573117 -3.156250 +v -0.375000 1.531250 -3.000000 +v -0.375000 1.687500 -2.729367 +v -0.375000 1.573117 -2.843750 +v -0.375000 1.843750 -2.687500 +v -0.375000 2.000000 -2.729367 +v -0.375000 2.114383 -2.843750 +v -0.562500 1.531250 -3.000000 +v -0.562500 1.843750 -3.312500 +v -0.562500 2.000000 -2.729367 +v -0.562500 1.573117 -2.843750 +v -0.562500 1.687500 -3.270633 +v -0.562500 2.114383 -2.843750 +v -0.562500 2.114383 -3.156250 +v -0.562500 1.687500 -2.729367 +v -0.562500 1.573117 -3.156250 +v -0.562500 2.156250 -3.000000 +v -0.562500 2.000000 -3.270633 +v -0.562500 1.843750 -2.687500 +v 0.312500 1.968750 -3.216506 +v 0.375000 1.843750 -3.250000 +v 0.312500 1.843750 -3.250000 +v 0.312500 1.843750 -2.750000 +v 0.375000 1.968750 -2.783494 +v 0.312500 1.968750 -2.783494 +v 0.312500 1.593750 -3.000000 +v 0.375000 1.627243 -2.875000 +v 0.312500 1.627243 -2.875000 +v 0.375000 1.718750 -3.216506 +v 0.312500 1.718750 -3.216506 +v 0.375000 2.060256 -2.875000 +v 0.312500 2.060256 -2.875000 +v 0.312500 2.093750 -3.000000 +v 0.375000 2.060256 -3.125000 +v 0.312500 2.060256 -3.125000 +v 0.375000 1.718750 -2.783494 +v 0.312500 1.718750 -2.783494 +v 0.375000 1.627243 -3.125000 +v 0.312500 1.627243 -3.125000 +v 0.375000 2.093750 -3.000000 +v 0.375000 1.968750 -3.216506 +v 0.375000 1.843750 -2.750000 +v 0.375000 1.593750 -3.000000 +v 0.375000 2.000000 -3.270633 +v 0.500000 1.843750 -3.312500 +v 0.375000 1.843750 -3.312500 +v 0.375000 1.843750 -2.687500 +v 0.500000 2.000000 -2.729367 +v 0.375000 2.000000 -2.729367 +v 0.375000 1.531250 -3.000000 +v 0.500000 1.573117 -2.843750 +v 0.375000 1.573117 -2.843750 +v 0.500000 1.687500 -3.270633 +v 0.375000 1.687500 -3.270633 +v 0.500000 2.114383 -2.843750 +v 0.375000 2.114383 -2.843750 +v 0.375000 2.156250 -3.000000 +v 0.500000 2.114383 -3.156250 +v 0.375000 2.114383 -3.156250 +v 0.500000 1.687500 -2.729367 +v 0.375000 1.687500 -2.729367 +v 0.500000 1.573117 -3.156250 +v 0.375000 1.573117 -3.156250 +v 0.500000 2.156250 -3.000000 +v 0.500000 2.000000 -3.270633 +v 0.500000 1.843750 -2.687500 +v 0.500000 1.531250 -3.000000 +v 0.625000 1.843750 -3.250000 +v 0.625000 1.968750 -3.216506 +v 0.625000 2.060256 -3.125000 +v 0.625000 2.060256 -2.875000 +v 0.625000 1.968750 -2.783494 +v 0.625000 1.843750 -2.750000 +v 0.625000 1.718750 -2.783494 +v 0.625000 1.627244 -2.875000 +v 0.625000 1.593750 -3.000000 +v 0.625000 1.718750 -3.216506 +v 0.625000 1.627244 -3.125000 +v 0.625000 2.093750 -3.000000 +v 0.343750 0.700444 -4.862056 +v 0.343750 0.718750 -4.906250 +v 0.343750 0.612056 -4.862056 +v 0.343750 0.656250 -4.843750 +v 0.343750 0.612056 -4.950444 +v 0.343750 0.593750 -4.906250 +v 0.343750 0.700444 -4.950444 +v 0.343750 0.656250 -4.968750 +v 0.343750 0.700444 -2.299556 +v 0.343750 0.718750 -2.343750 +v 0.343750 0.612056 -2.299556 +v 0.343750 0.656250 -2.281250 +v 0.343750 0.612056 -2.387945 +v 0.343750 0.593750 -2.343750 +v 0.343750 0.700444 -2.387945 +v 0.343750 0.656250 -2.406250 +vt 0.815385 0.353846 +vt 0.738462 0.276923 +vt 0.815385 0.276923 +vt 0.738462 0.123077 +vt 0.815385 0.200000 +vt 0.738462 0.200000 +vt 0.815385 0.046154 +vt 0.738462 0.046154 +vt 0.830769 0.115385 +vt 0.815385 0.123077 +vt 0.830769 0.269231 +vt 0.830769 0.346154 +vt 0.830769 0.192308 +vt 0.830769 0.207692 +vt 0.892308 0.269231 +vt 0.661538 0.269231 +vt 0.723077 0.207692 +vt 0.723077 0.269231 +vt 0.738462 0.353846 +vt 0.723077 0.284615 +vt 0.723077 0.053846 +vt 0.723077 0.130769 +vt 0.938462 0.476923 +vt 0.961538 0.453846 +vt 0.961538 0.476923 +vt 0.923077 0.084615 +vt 0.946154 0.269231 +vt 0.923077 0.269231 +vt 0.923077 0.476923 +vt 0.938462 0.453846 +vt 0.192308 0.384615 +vt 0.215385 0.407692 +vt 0.169231 0.407692 +vt 0.115385 0.376923 +vt 0.100000 0.400000 +vt 0.076923 0.376923 +vt 0.900000 0.400000 +vt 0.876923 0.415385 +vt 0.876923 0.376923 +vt 0.876923 0.515385 +vt 0.900000 0.530769 +vt 0.876923 0.553846 +vt 0.946154 0.284615 +vt 0.923077 0.307692 +vt 0.923077 0.284615 +vt 0.961538 0.530769 +vt 0.938462 0.530769 +vt 0.938462 0.492308 +vt 0.938462 0.438462 +vt 0.946154 0.376923 +vt 0.946154 0.307692 +vt 0.115385 0.153846 +vt 0.076923 0.169231 +vt 0.076923 0.153846 +vt 0.030769 0.261538 +vt 0.053846 0.238462 +vt 0.053846 0.261538 +vt 0.230769 0.276923 +vt 0.192308 0.307692 +vt 0.192308 0.276923 +vt 0.115385 0.261538 +vt 0.076923 0.276923 +vt 0.076923 0.261538 +vt 0.230769 0.146154 +vt 0.192308 0.169231 +vt 0.192308 0.146154 +vt 0.876923 0.361538 +vt 0.892308 0.338462 +vt 0.900000 0.361538 +vt 0.992308 0.361538 +vt 0.969231 0.361538 +vt 0.976923 0.338462 +vt 0.876923 0.084615 +vt 0.900000 0.084615 +vt 0.892308 0.107692 +vt 0.992308 0.084615 +vt 0.976923 0.107692 +vt 0.969231 0.084615 +vt 0.138462 0.215385 +vt 0.115385 0.200000 +vt 0.130769 0.192308 +vt 0.230769 0.361538 +vt 0.230769 0.384615 +vt 0.969231 0.400000 +vt 0.900000 0.400000 +vt 0.923077 0.376923 +vt 0.076923 0.353846 +vt 0.423077 0.584615 +vt 0.420824 0.579176 +vt 0.415385 0.576923 +vt 0.415385 0.600000 +vt 0.407692 0.607692 +vt 0.415385 0.615385 +vt 0.061538 0.192308 +vt 0.076923 0.200000 +vt 0.230769 0.200000 +vt 0.230769 0.169231 +vt 0.030769 0.323077 +vt 0.007692 0.307692 +vt 0.023077 0.300000 +vt 0.130769 0.300000 +vt 0.169231 0.300000 +vt 0.138462 0.346154 +vt 0.192308 0.253846 +vt 0.923077 0.553846 +vt 0.923077 0.530769 +vt 0.923077 0.453846 +vt 0.900000 0.453846 +vt 0.900000 0.438462 +vt 0.923077 0.476923 +vt 0.900000 0.492308 +vt 0.900000 0.476923 +vt 0.830769 0.053846 +vt 0.830769 0.284615 +vt 0.830769 0.130769 +vt 0.892308 0.207692 +vt 0.661538 0.207692 +vt 0.723077 0.346154 +vt 0.723077 0.115385 +vt 0.723077 0.192308 +vt 0.946154 0.084615 +vt 0.923077 0.453846 +vt 0.138462 0.400000 +vt 0.938462 0.400000 +vt 0.961538 0.400000 +vt 0.115385 0.169231 +vt 0.030769 0.238462 +vt 0.230769 0.307692 +vt 0.115385 0.276923 +vt 0.184615 0.200000 +vt 0.161538 0.238462 +vt 0.161538 0.215385 +vt 0.138462 0.238462 +vt 0.169231 0.192308 +vt 0.192308 0.200000 +vt 0.169231 0.169231 +vt 0.130769 0.169231 +vt 0.192308 0.361538 +vt 0.115385 0.353846 +vt 0.409945 0.579176 +vt 0.407692 0.584615 +vt 0.409945 0.590055 +vt 0.415385 0.592308 +vt 0.420824 0.590055 +vt 0.409945 0.602253 +vt 0.409945 0.613132 +vt 0.420824 0.613132 +vt 0.423077 0.607692 +vt 0.420824 0.602253 +vt 0.007692 0.200000 +vt 0.000000 0.200000 +vt 0.000000 0.169231 +vt 0.023077 0.169231 +vt 0.023077 0.192308 +vt 0.061538 0.169231 +vt 0.076923 0.307692 +vt 0.061538 0.300000 +vt 0.053846 0.346154 +vt 0.053846 0.323077 +vt 0.061538 0.276923 +vt -0.000000 0.276923 +vt 0.023077 0.276923 +vt -0.000000 0.307692 +vt 0.030769 0.346154 +vt 0.169231 0.276923 +vt 0.184615 0.307692 +vt 0.161538 0.346154 +vt 0.115385 0.307692 +vt 0.130769 0.276923 +vt 0.230769 0.253846 +vt 0.900000 0.553846 +vt 0.923077 0.400000 +vt 0.300000 0.523077 +vt 0.323077 0.538462 +vt 0.323077 0.523077 +vt 0.346154 0.523077 +vt 0.369231 0.538462 +vt 0.369231 0.523077 +vt 0.507692 0.523077 +vt 0.530769 0.538462 +vt 0.530769 0.523077 +vt 0.438462 0.523077 +vt 0.461538 0.538462 +vt 0.461538 0.523077 +vt 0.392308 0.538462 +vt 0.392308 0.523077 +vt 0.253846 0.523077 +vt 0.276923 0.538462 +vt 0.276923 0.523077 +vt 0.484615 0.538462 +vt 0.484615 0.523077 +vt 0.415385 0.538462 +vt 0.415385 0.523077 +vt 0.300000 0.538462 +vt 0.346154 0.538462 +vt 0.507692 0.538462 +vt 0.438462 0.538462 +vt 0.248693 0.519231 +vt 0.215385 0.461538 +vt 0.182076 0.519231 +vt 0.413462 0.523077 +vt 0.392308 0.515385 +vt 0.394231 0.523077 +vt 0.417308 0.523077 +vt 0.438462 0.515385 +vt 0.415385 0.515385 +vt 0.459615 0.523077 +vt 0.440385 0.523077 +vt 0.463462 0.523077 +vt 0.484615 0.515385 +vt 0.461538 0.515385 +vt 0.505769 0.523077 +vt 0.486538 0.523077 +vt 0.509615 0.523077 +vt 0.530769 0.515385 +vt 0.507692 0.515385 +vt 0.275000 0.523077 +vt 0.253846 0.515385 +vt 0.255769 0.523077 +vt 0.298077 0.523077 +vt 0.276923 0.515385 +vt 0.278846 0.523077 +vt 0.321154 0.523077 +vt 0.300000 0.515385 +vt 0.301923 0.523077 +vt 0.325000 0.523077 +vt 0.346154 0.515385 +vt 0.323077 0.515385 +vt 0.390385 0.523077 +vt 0.369231 0.515385 +vt 0.371154 0.523077 +vt 0.367308 0.523077 +vt 0.348077 0.523077 +vt 0.276923 0.361538 +vt 0.323077 0.361538 +vt 0.484615 0.361538 +vt 0.415385 0.361538 +vt 0.300000 0.361538 +vt 0.346154 0.361538 +vt 0.507692 0.361538 +vt 0.438462 0.361538 +vt 0.369231 0.361538 +vt 0.253846 0.361538 +vt 0.461538 0.361538 +vt 0.392308 0.361538 +vt 0.373077 0.330769 +vt 0.365385 0.330769 +vt 0.350000 0.330769 +vt 0.342308 0.330769 +vt 0.326923 0.330769 +vt 0.303846 0.330769 +vt 0.280769 0.330769 +vt 0.257692 0.330769 +vt 0.530769 0.361538 +vt 0.511539 0.330769 +vt 0.503846 0.330769 +vt 0.488462 0.330769 +vt 0.480769 0.330769 +vt 0.465385 0.330769 +vt 0.442308 0.330769 +vt 0.419231 0.330769 +vt 0.411538 0.330769 +vt 0.396154 0.330769 +vt 0.853846 0.469231 +vt 0.530769 0.446154 +vt 0.853846 0.446154 +vt 0.853846 0.630769 +vt 0.530769 0.607692 +vt 0.853846 0.607692 +vt 0.853846 0.561538 +vt 0.530769 0.538462 +vt 0.853846 0.538462 +vt 0.853846 0.492308 +vt 0.530769 0.469231 +vt 0.853846 0.376923 +vt 0.530769 0.353846 +vt 0.853846 0.353846 +vt 0.853846 0.584615 +vt 0.530769 0.561538 +vt 0.853846 0.515385 +vt 0.530769 0.492308 +vt 0.853846 0.400000 +vt 0.530769 0.376923 +vt 0.530769 0.423077 +vt 0.853846 0.423077 +vt 0.530769 0.584615 +vt 0.530769 0.515385 +vt 0.530769 0.400000 +vt 0.407692 0.738462 +vt 0.223077 0.769231 +vt 0.223077 0.730769 +vt 0.407692 0.723077 +vt 0.223077 0.692308 +vt 0.407692 0.700000 +vt 0.407692 0.684615 +vt 0.223077 0.653846 +vt 0.407692 0.661538 +vt 0.407692 0.646154 +vt 0.223077 0.615385 +vt 0.407692 0.623077 +vt 0.407692 0.607692 +vt 0.223077 0.576923 +vt 0.407692 0.584615 +vt 0.407692 0.569231 +vt 0.223077 0.538462 +vt 0.407692 0.546154 +vt 0.407692 0.969231 +vt 0.223077 1.000000 +vt 0.223077 0.961538 +vt 0.407692 0.953846 +vt 0.223077 0.923077 +vt 0.407692 0.930769 +vt 0.407692 0.915385 +vt 0.223077 0.884615 +vt 0.407692 0.892308 +vt 0.407692 0.876923 +vt 0.223077 0.846154 +vt 0.407692 0.853846 +vt 0.407692 0.800000 +vt 0.407692 0.776923 +vt 0.407692 0.838462 +vt 0.223077 0.807692 +vt 0.407692 0.815385 +vt 0.038462 0.692308 +vt 0.038462 0.961538 +vt 0.038462 0.846154 +vt 0.038462 0.730769 +vt 0.038462 0.538462 +vt 0.038462 0.884615 +vt 0.038462 0.769231 +vt 0.038462 0.576923 +vt 0.038462 0.653846 +vt 0.038462 0.923077 +vt 0.038462 0.807692 +vt 0.038462 0.615385 +vt 0.030769 0.882692 +vt 0.030769 0.848077 +vt 0.030769 0.844231 +vt 0.030769 0.809615 +vt 0.030769 0.805769 +vt 0.030769 0.771154 +vt 0.030769 0.732692 +vt 0.030769 0.694231 +vt 0.030769 0.655769 +vt 0.030769 0.651923 +vt 0.030769 0.617308 +vt 0.030769 0.613461 +vt 0.030769 0.578846 +vt 0.030769 0.540385 +vt 0.038462 1.000000 +vt 0.030769 0.963462 +vt 0.030769 0.925000 +vt 0.030769 0.886539 +vt 0.030769 0.769231 +vt 0.000000 0.730769 +vt 0.030769 0.730769 +vt 0.030769 0.576923 +vt -0.000000 0.538462 +vt 0.030769 0.538462 +vt 0.030769 0.923077 +vt 0.000000 0.884615 +vt 0.030769 0.884615 +vt 0.030769 0.807692 +vt -0.000000 0.769231 +vt 0.030769 0.615385 +vt 0.000000 0.576923 +vt 0.030769 0.692308 +vt 0.000000 0.653846 +vt 0.030769 0.653846 +vt 0.030769 0.961538 +vt -0.000000 0.923077 +vt 0.030769 0.846154 +vt -0.000000 0.807692 +vt 0.000000 0.615385 +vt 0.000000 0.692308 +vt 0.030769 1.000000 +vt -0.000000 0.961538 +vt -0.000000 0.846154 +vt 0.009275 0.434615 +vt 0.129186 0.434615 +vt 0.069231 0.538462 +vt 0.515385 0.300000 +vt 0.500000 0.292308 +vt 0.515385 0.292308 +vt 0.438462 0.300000 +vt 0.423077 0.292308 +vt 0.438462 0.292308 +vt 0.392308 0.300000 +vt 0.376923 0.292308 +vt 0.392308 0.292308 +vt 0.530769 0.300000 +vt 0.530769 0.292308 +vt 0.453846 0.300000 +vt 0.453846 0.292308 +vt 0.407692 0.300000 +vt 0.407692 0.292308 +vt 0.361538 0.300000 +vt 0.346154 0.292308 +vt 0.361538 0.292308 +vt 0.469231 0.300000 +vt 0.469231 0.292308 +vt 0.500000 0.300000 +vt 0.484615 0.292308 +vt 0.423077 0.300000 +vt 0.376923 0.300000 +vt 0.484615 0.300000 +vt 0.376923 0.330769 +vt 0.361538 0.307692 +vt 0.376923 0.307692 +vt 0.484615 0.330769 +vt 0.469231 0.307692 +vt 0.484615 0.307692 +vt 0.515385 0.330769 +vt 0.500000 0.307692 +vt 0.515385 0.307692 +vt 0.438462 0.330769 +vt 0.423077 0.307692 +vt 0.438462 0.307692 +vt 0.392308 0.330769 +vt 0.392308 0.307692 +vt 0.530769 0.330769 +vt 0.530769 0.307692 +vt 0.453846 0.330769 +vt 0.453846 0.307692 +vt 0.407692 0.330769 +vt 0.407692 0.307692 +vt 0.361538 0.330769 +vt 0.346154 0.307692 +vt 0.469231 0.330769 +vt 0.500000 0.330769 +vt 0.423077 0.330769 +vt 0.550000 0.348693 +vt 0.588462 0.348693 +vt 0.607692 0.315385 +vt 0.452308 0.300000 +vt 0.440000 0.300000 +vt 0.467692 0.300000 +vt 0.455385 0.300000 +vt 0.483077 0.300000 +vt 0.470769 0.300000 +vt 0.498462 0.300000 +vt 0.486154 0.300000 +vt 0.501539 0.300000 +vt 0.516923 0.300000 +vt 0.360000 0.300000 +vt 0.347692 0.300000 +vt 0.375385 0.300000 +vt 0.363077 0.300000 +vt 0.390769 0.300000 +vt 0.378462 0.300000 +vt 0.406154 0.300000 +vt 0.393846 0.300000 +vt 0.424615 0.300000 +vt 0.409231 0.300000 +vt 0.615385 0.323077 +vt 0.607692 0.338462 +vt 0.607692 0.323077 +vt 0.615385 0.215385 +vt 0.607692 0.230769 +vt 0.607692 0.215385 +vt 0.615385 0.184615 +vt 0.607692 0.200000 +vt 0.607692 0.184615 +vt 0.615385 0.261538 +vt 0.607692 0.276923 +vt 0.607692 0.261538 +vt 0.615385 0.307692 +vt 0.607692 0.307692 +vt 0.615385 0.169231 +vt 0.607692 0.169231 +vt 0.615385 0.246154 +vt 0.607692 0.246154 +vt 0.615385 0.292308 +vt 0.607692 0.292308 +vt 0.615385 0.338462 +vt 0.607692 0.353846 +vt 0.615385 0.230769 +vt 0.615385 0.200000 +vt 0.615385 0.276923 +vt 0.615385 0.213846 +vt 0.623077 0.200000 +vt 0.623077 0.215385 +vt 0.615385 0.198462 +vt 0.623077 0.184615 +vt 0.615385 0.183077 +vt 0.623077 0.169231 +vt 0.615385 0.340000 +vt 0.623077 0.353846 +vt 0.615385 0.352308 +vt 0.615385 0.324615 +vt 0.623077 0.338462 +vt 0.615385 0.336923 +vt 0.615385 0.309231 +vt 0.623077 0.323077 +vt 0.615385 0.321538 +vt 0.615385 0.293846 +vt 0.623077 0.307692 +vt 0.615385 0.306154 +vt 0.615385 0.290769 +vt 0.623077 0.276923 +vt 0.623077 0.292308 +vt 0.615385 0.275385 +vt 0.623077 0.261538 +vt 0.615385 0.247692 +vt 0.615385 0.260000 +vt 0.615385 0.232308 +vt 0.623077 0.246154 +vt 0.615385 0.244615 +vt 0.615385 0.216923 +vt 0.623077 0.230769 +vt 0.615385 0.229231 +vt 0.646154 0.307692 +vt 0.646154 0.169231 +vt 0.646154 0.246154 +vt 0.646154 0.292308 +vt 0.646154 0.338462 +vt 0.646154 0.230769 +vt 0.646154 0.200000 +vt 0.646154 0.276923 +vt 0.646154 0.323077 +vt 0.646154 0.215385 +vt 0.646154 0.184615 +vt 0.646154 0.261538 +vt 0.703846 0.348693 +vt 0.665385 0.348693 +vt 0.646154 0.315385 +vt 0.676923 -0.000000 +vt 0.661538 0.007692 +vt 0.661538 -0.000000 +vt 0.753846 -0.000000 +vt 0.738462 0.007692 +vt 0.738462 0.000000 +vt 0.800000 0.000000 +vt 0.784615 0.007692 +vt 0.784615 -0.000000 +vt 0.846154 -0.000000 +vt 0.830769 0.007692 +vt 0.830769 -0.000000 +vt 0.723077 0.007692 +vt 0.723077 -0.000000 +vt 0.707692 -0.000000 +vt 0.692308 0.007692 +vt 0.692308 -0.000000 +vt 0.769231 0.007692 +vt 0.769231 -0.000000 +vt 0.815385 0.007692 +vt 0.815385 -0.000000 +vt 0.707692 0.007692 +vt 0.676923 0.007692 +vt 0.753846 0.007692 +vt 0.800000 0.007692 +vt 0.676923 0.015385 +vt 0.661538 0.030769 +vt 0.661538 0.015385 +vt 0.753846 0.015385 +vt 0.738462 0.030769 +vt 0.738462 0.015385 +vt 0.800000 0.015385 +vt 0.784615 0.030769 +vt 0.784615 0.015385 +vt 0.846154 0.015385 +vt 0.830769 0.030769 +vt 0.830769 0.015385 +vt 0.723077 0.030769 +vt 0.723077 0.015385 +vt 0.707692 0.015385 +vt 0.692308 0.030769 +vt 0.692308 0.015385 +vt 0.769231 0.030769 +vt 0.769231 0.015385 +vt 0.815385 0.030769 +vt 0.815385 0.015385 +vt 0.707692 0.030769 +vt 0.676923 0.030769 +vt 0.753846 0.030769 +vt 0.800000 0.030769 +vt 0.661538 0.046154 +vt 0.676923 0.046154 +vt 0.692308 0.046154 +vt 0.723077 0.046154 +vt 0.738462 0.046154 +vt 0.753846 0.046154 +vt 0.769231 0.046154 +vt 0.784615 0.046154 +vt 0.800000 0.046154 +vt 0.846154 0.030769 +vt 0.830769 0.046154 +vt 0.815385 0.046154 +vt 0.661538 0.076923 +vt 0.676923 0.103570 +vt 0.723077 0.076923 +vt 0.709231 0.007692 +vt 0.721538 0.007692 +vt 0.724615 0.007692 +vt 0.736923 0.007692 +vt 0.740000 0.007692 +vt 0.752308 0.007692 +vt 0.767692 0.007692 +vt 0.755385 0.007692 +vt 0.783077 0.007692 +vt 0.770769 0.007692 +vt 0.786154 0.007692 +vt 0.798462 0.007692 +vt 0.801538 0.007692 +vt 0.813846 0.007692 +vt 0.816923 0.007692 +vt 0.829231 0.007692 +vt 0.832308 0.007692 +vt 0.844615 0.007692 +vt 0.675385 0.007692 +vt 0.663077 0.007692 +vt 0.690769 0.007692 +vt 0.678462 0.007692 +vt 0.706154 0.007692 +vt 0.693846 0.007692 +vt 0.938462 0.553846 +vt 0.961538 0.553846 +vt 0.846154 0.476923 +vt 0.884615 0.453846 +vt 0.884615 0.476923 +vt 0.923077 0.061538 +vt 0.946154 0.061538 +vt 0.161538 0.392308 +vt 0.138462 0.369231 +vt 0.161538 0.369231 +vt 0.192308 0.253846 +vt 0.230769 0.207692 +vt 0.230769 0.253846 +vt 0.076923 0.246154 +vt 0.115385 0.246154 +vt 0.192308 0.315385 +vt 0.230769 0.315385 +vt 0.138462 0.246154 +vt 0.030769 0.353846 +vt 0.053846 0.353846 +vt 1.000000 0.338462 +vt 0.430769 0.576923 +vt 0.438462 0.569231 +vt 0.438462 0.576923 +vt 0.415385 0.576923 +vt 0.423077 0.569231 +vt 0.423077 0.576923 +vt 0.461538 0.576923 +vt 0.469231 0.569231 +vt 0.469231 0.576923 +vt 0.446154 0.576923 +vt 0.453846 0.569231 +vt 0.453846 0.576923 +vt 0.430769 0.569231 +vt 0.407692 0.576923 +vt 0.415385 0.569231 +vt 0.461538 0.569231 +vt 0.446154 0.569231 +vt 0.430769 0.600000 +vt 0.438462 0.592308 +vt 0.438462 0.600000 +vt 0.415385 0.600000 +vt 0.423077 0.592308 +vt 0.423077 0.600000 +vt 0.461538 0.600000 +vt 0.469231 0.592308 +vt 0.469231 0.600000 +vt 0.446154 0.600000 +vt 0.453846 0.592308 +vt 0.453846 0.600000 +vt 0.430769 0.592308 +vt 0.407692 0.600000 +vt 0.415385 0.592308 +vt 0.461538 0.592308 +vt 0.446154 0.592308 +vt 0.192308 0.207692 +vt 0.253846 0.538462 +vt 0.196154 0.533309 +vt 0.215385 0.538462 +vt 0.234615 0.533309 +vt 0.253846 0.500000 +vt 0.248693 0.480769 +vt 0.234615 0.466691 +vt 0.196154 0.466691 +vt 0.182076 0.480769 +vt 0.176923 0.500000 +vt 0.436538 0.523077 +vt 0.482692 0.523077 +vt 0.528846 0.523077 +vt 0.344231 0.523077 +vt 0.388462 0.330769 +vt 0.319231 0.330769 +vt 0.296154 0.330769 +vt 0.273077 0.330769 +vt 0.526923 0.330769 +vt 0.457692 0.330769 +vt 0.434615 0.330769 +vt 0.530769 0.630769 +vt 0.407692 0.761538 +vt 0.407692 0.992308 +vt 0.030769 0.767308 +vt 0.030769 0.728846 +vt 0.030769 0.690385 +vt 0.030769 0.575000 +vt 0.030769 0.998077 +vt 0.030769 0.959615 +vt 0.030769 0.921154 +vt 0.000000 1.000000 +vt 0.034615 0.529186 +vt 0.009275 0.503846 +vt 0.000000 0.469231 +vt 0.034615 0.409275 +vt 0.069231 0.400000 +vt 0.103846 0.409275 +vt 0.138462 0.469231 +vt 0.129186 0.503846 +vt 0.103846 0.529186 +vt 0.346154 0.300000 +vt 0.346154 0.330769 +vt 0.602539 0.296154 +vt 0.588462 0.282076 +vt 0.569231 0.276923 +vt 0.550000 0.282076 +vt 0.535922 0.296154 +vt 0.530769 0.315385 +vt 0.535922 0.334615 +vt 0.569231 0.353846 +vt 0.602539 0.334615 +vt 0.513846 0.300000 +vt 0.529231 0.300000 +vt 0.436923 0.300000 +vt 0.421538 0.300000 +vt 0.615385 0.353846 +vt 0.615385 0.201538 +vt 0.615385 0.186154 +vt 0.615385 0.170769 +vt 0.615385 0.278462 +vt 0.615385 0.263077 +vt 0.646154 0.353846 +vt 0.651307 0.296154 +vt 0.665385 0.282076 +vt 0.684615 0.276923 +vt 0.703846 0.282076 +vt 0.717924 0.296154 +vt 0.723077 0.315385 +vt 0.717924 0.334615 +vt 0.684615 0.353846 +vt 0.651307 0.334615 +vt 0.846154 0.007692 +vt 0.707692 0.046154 +vt 0.846154 0.046154 +vt 0.676923 0.050276 +vt 0.665661 0.061538 +vt 0.665661 0.092308 +vt 0.692308 0.107692 +vt 0.707692 0.103570 +vt 0.718955 0.092308 +vt 0.718955 0.061538 +vt 0.707692 0.050276 +vt 0.692308 0.046154 +vt 0.846154 0.453846 +vt 0.138462 0.392308 +vt 0.161538 0.246154 +vt 1.000000 0.107692 +vt 0.407692 0.569231 +vt 0.407692 0.592308 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 -0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 -0.8944 -0.4472 +vn 0.8944 0.0000 -0.4472 +vn -0.8944 -0.0000 -0.4472 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8944 0.0000 0.4472 +vn 0.0000 0.8944 0.4472 +vn -0.8944 0.0000 0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.7071 -0.7071 +vn -0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.0000 0.8320 0.5547 +vn 0.4160 0.7206 0.5547 +vn 0.7206 0.4160 0.5547 +vn 0.8321 0.0000 0.5547 +vn 0.7206 -0.4160 0.5547 +vn 0.4160 -0.7206 0.5547 +vn -0.0000 -0.8321 0.5547 +vn -0.4160 -0.7206 0.5547 +vn -0.7206 -0.4160 0.5547 +vn -0.8320 -0.0000 0.5547 +vn -0.8321 -0.0000 0.5547 +vn -0.7206 0.4160 0.5547 +vn -0.4160 0.7206 0.5547 +vn -0.0000 0.8321 0.5547 +vn 0.4851 0.8402 -0.2425 +vn 0.0000 0.9701 -0.2425 +vn 0.8402 0.4851 -0.2425 +vn 0.9701 0.0000 -0.2425 +vn 0.8402 -0.4851 -0.2425 +vn 0.4851 -0.8402 -0.2425 +vn 0.0000 -0.9701 -0.2425 +vn -0.4851 -0.8402 -0.2425 +vn -0.8402 -0.4851 -0.2425 +vn -0.9701 -0.0000 -0.2425 +vn -0.8402 0.4851 -0.2425 +vn -0.4851 0.8402 -0.2425 +vn 0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 -0.5000 +vn -0.5000 -0.0000 0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.2217 -0.0000 -0.9751 +vn 0.2217 0.4876 0.8445 +vn 0.2217 -0.8445 0.4876 +vn 0.2217 -0.4876 -0.8445 +vn 0.2217 0.8445 0.4876 +vn 0.2217 0.8445 -0.4876 +vn 0.2217 -0.4876 0.8445 +vn 0.2217 -0.8445 -0.4876 +vn 0.2217 0.9751 -0.0000 +vn 0.2217 0.4876 -0.8445 +vn 0.2217 -0.0000 0.9751 +vn 0.2217 -0.9751 -0.0000 +vn 0.4472 -0.0000 -0.8944 +vn 0.4472 0.4472 -0.7746 +vn 0.4472 0.7746 -0.4472 +vn 0.4472 0.7746 0.4472 +vn 0.4472 0.4472 0.7746 +vn 0.4472 -0.0000 0.8944 +vn 0.4472 -0.4472 0.7746 +vn 0.4472 -0.7746 0.4472 +vn 0.4472 -0.8944 -0.0000 +vn 0.4472 -0.4472 -0.7746 +vn 0.4472 -0.7746 -0.4472 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.8575 0.5145 -0.0000 +vn 0.4927 0.8702 -0.0000 +vn -0.9637 0.2669 0.0000 +vn -0.8575 0.5145 0.0000 +vn 0.0000 -0.9571 0.2898 +vn 0.0000 -0.9571 -0.2898 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.4472 0.8944 0.0000 +usemtl None +s off +f 89/166/42 90/167/42 91/168/42 +f 92/169/43 93/170/43 94/171/43 +f 90/167/44 93/170/44 91/168/44 +f 89/172/45 92/169/45 95/173/45 +f 89/172/46 96/174/46 97/175/46 +f 93/170/47 98/176/47 91/168/47 +f 91/168/48 99/177/48 89/166/48 +f 97/175/49 100/178/49 93/170/49 +f 100/179/50 99/180/50 98/176/50 +f 101/181/51 102/182/51 103/183/51 +f 95/184/52 103/185/52 90/167/52 +f 92/169/53 101/186/53 95/173/53 +f 94/171/54 104/187/54 92/169/54 +f 90/167/55 102/182/55 94/171/55 +f 105/188/51 106/189/51 107/190/51 +f 108/191/45 109/192/45 110/193/45 +f 111/194/44 112/195/44 105/188/44 +f 113/196/42 114/197/42 115/198/42 +f 116/199/43 117/200/43 108/201/43 +f 118/202/42 109/203/42 119/204/42 +f 110/205/43 120/206/43 121/207/43 +f 118/208/56 121/209/56 120/210/56 +f 122/211/43 117/212/43 111/213/43 +f 106/189/42 112/195/42 115/214/42 +f 123/215/45 121/209/45 119/216/45 +f 124/217/44 125/218/44 126/219/44 +f 123/220/56 127/221/56 128/222/56 +f 129/223/42 130/224/42 131/225/42 +f 132/226/44 133/227/44 134/228/44 +f 135/229/44 136/230/44 137/231/44 +f 138/232/43 139/233/43 140/234/43 +f 141/235/42 142/236/42 143/237/42 +f 144/238/43 145/239/43 146/240/43 +f 147/241/42 148/242/42 149/243/42 +f 138/244/51 150/245/51 151/246/51 +f 113/196/42 149/247/42 152/248/42 +f 153/249/42 123/215/42 142/236/42 +f 119/216/42 109/192/42 143/237/42 +f 127/250/43 140/234/43 128/251/43 +f 145/252/43 116/199/43 108/201/43 +f 110/193/43 146/240/43 108/191/43 +f 154/253/42 155/254/42 156/255/42 +f 157/256/42 158/257/42 159/258/42 +f 160/259/50 161/260/50 127/221/50 +f 162/261/42 136/230/42 163/262/42 +f 147/263/50 164/264/50 165/265/50 +f 166/266/51 167/267/51 168/268/51 +f 169/269/44 129/223/44 131/225/44 +f 170/270/50 120/206/50 171/271/50 +f 172/272/42 173/273/42 174/274/42 +f 175/275/51 173/273/51 172/272/51 +f 176/276/43 177/277/43 175/275/43 +f 89/166/42 95/184/42 90/167/42 +f 92/169/43 97/175/43 93/170/43 +f 90/167/44 94/171/44 93/170/44 +f 89/172/45 97/175/45 92/169/45 +f 89/172/46 99/278/46 96/174/46 +f 93/170/47 100/179/47 98/176/47 +f 91/168/48 98/279/48 99/177/48 +f 97/175/49 96/280/49 100/178/49 +f 100/179/50 96/281/50 99/180/50 +f 101/181/51 104/282/51 102/182/51 +f 95/184/52 101/283/52 103/185/52 +f 92/169/53 104/284/53 101/186/53 +f 94/171/54 102/285/54 104/187/54 +f 90/167/55 103/183/55 102/182/55 +f 105/188/51 112/195/51 106/189/51 +f 108/191/45 152/286/45 109/192/45 +f 111/194/44 115/287/44 112/195/44 +f 113/196/42 152/248/42 114/197/42 +f 116/199/43 111/288/43 117/200/43 +f 118/202/42 174/274/42 109/203/42 +f 110/205/43 176/276/43 120/206/43 +f 118/208/56 119/216/56 121/209/56 +f 105/188/43 107/190/43 111/213/43 +f 107/190/43 122/211/43 111/213/43 +f 114/289/42 178/290/42 115/214/42 +f 178/290/42 106/189/42 115/214/42 +f 123/215/45 128/251/45 121/209/45 +f 124/217/44 179/291/44 125/218/44 +f 123/220/56 153/292/56 127/221/56 +f 129/223/42 180/293/42 130/224/42 +f 132/226/44 181/294/44 133/227/44 +f 135/229/44 163/262/44 136/230/44 +f 182/295/51 142/296/51 141/297/51 +f 138/244/51 140/298/51 150/245/51 +f 182/295/51 141/297/51 183/299/51 +f 141/297/51 138/244/51 183/299/51 +f 136/230/51 184/300/51 182/295/51 +f 183/299/51 137/301/51 136/230/51 +f 179/291/51 124/302/51 151/246/51 +f 183/299/51 136/230/51 182/295/51 +f 150/245/51 179/291/51 151/246/51 +f 151/246/51 183/299/51 138/244/51 +f 113/196/42 185/303/42 149/247/42 +f 109/192/42 152/286/42 148/242/42 +f 152/286/42 149/243/42 148/242/42 +f 148/242/42 143/237/42 109/192/42 +f 143/237/42 142/236/42 119/216/42 +f 142/236/42 123/215/42 119/216/42 +f 145/252/43 168/304/43 116/199/43 +f 110/193/43 121/209/43 139/233/43 +f 121/209/43 128/251/43 140/234/43 +f 139/233/43 121/209/43 140/234/43 +f 139/233/43 146/240/43 110/193/43 +f 146/240/43 145/239/43 108/191/43 +f 156/255/42 186/305/42 187/306/42 +f 187/306/42 188/307/42 156/255/42 +f 188/307/42 189/308/42 156/255/42 +f 189/308/42 190/309/42 156/255/42 +f 190/309/42 154/253/42 156/255/42 +f 157/256/42 191/310/42 158/257/42 +f 158/257/42 192/311/42 159/258/42 +f 159/258/42 193/312/42 194/313/42 +f 194/313/42 195/314/42 159/258/42 +f 195/314/42 157/256/42 159/258/42 +f 196/315/50 162/316/50 163/317/50 +f 163/317/50 135/318/50 197/319/50 +f 160/259/50 126/320/50 125/218/50 +f 196/315/50 163/317/50 197/319/50 +f 160/259/50 125/218/50 161/260/50 +f 196/315/50 197/319/50 153/292/50 +f 197/319/50 160/259/50 127/221/50 +f 127/221/50 153/292/50 197/319/50 +f 162/261/42 184/300/42 136/230/42 +f 133/227/50 198/321/50 199/322/50 +f 198/321/50 145/323/50 144/324/50 +f 198/321/50 144/324/50 199/322/50 +f 199/322/50 134/325/50 133/227/50 +f 129/326/50 200/327/50 165/265/50 +f 180/328/50 129/326/50 164/264/50 +f 129/326/50 165/265/50 164/264/50 +f 165/265/50 199/322/50 144/324/50 +f 147/263/50 149/329/50 164/264/50 +f 165/265/50 144/324/50 147/263/50 +f 169/330/51 131/225/51 167/267/51 +f 131/225/51 130/224/51 201/331/51 +f 201/331/51 185/332/51 167/267/51 +f 185/332/51 168/268/51 167/267/51 +f 131/225/51 201/331/51 167/267/51 +f 168/268/51 202/333/51 166/266/51 +f 202/333/51 181/294/51 166/266/51 +f 181/294/51 132/334/51 166/266/51 +f 169/269/44 200/335/44 129/223/44 +f 170/270/50 118/336/50 120/206/50 +f 118/202/42 170/337/42 174/274/42 +f 170/337/42 172/272/42 174/274/42 +f 175/275/51 177/277/51 173/273/51 +f 175/275/43 171/271/43 176/276/43 +f 171/271/43 120/206/43 176/276/43 +s 1 +f 203/338/57 204/339/43 205/340/43 +f 206/341/58 207/342/59 208/343/59 +f 209/344/60 210/345/45 211/346/45 +f 212/347/61 213/348/42 214/349/42 +f 208/343/59 215/350/44 216/351/44 +f 211/352/45 217/353/62 218/354/62 +f 214/349/42 219/355/63 220/356/63 +f 216/351/44 221/357/64 222/358/64 +f 218/354/62 223/359/57 203/338/57 +f 205/340/43 224/360/58 206/341/58 +f 220/356/63 225/361/60 209/344/60 +f 222/358/64 226/362/61 212/347/61 +f 217/363/50 213/364/50 207/365/50 +f 222/366/50 227/367/50 216/368/50 +f 222/369/50 228/370/50 229/371/50 +f 214/372/50 228/370/50 212/373/50 +f 214/374/50 230/375/50 231/376/50 +f 209/377/50 230/375/50 220/378/50 +f 209/379/50 232/380/50 233/381/50 +f 218/382/50 232/383/50 211/384/50 +f 203/385/50 234/386/50 218/387/50 +f 205/388/50 235/389/50 203/390/50 +f 205/391/50 236/392/50 237/393/50 +f 216/394/50 238/395/50 208/396/50 +f 208/397/50 236/392/50 206/398/50 +f 235/389/61 239/399/64 234/386/64 +f 236/392/63 240/400/42 237/393/42 +f 233/381/59 241/401/58 230/375/58 +f 228/370/57 242/402/62 229/371/62 +f 237/393/42 243/403/61 235/389/61 +f 238/395/60 244/404/63 236/392/63 +f 232/380/44 245/405/59 233/381/59 +f 231/376/43 246/406/57 228/370/57 +f 227/367/45 247/407/60 238/395/60 +f 234/386/64 248/408/44 232/383/44 +f 230/375/58 249/409/43 231/376/43 +f 229/371/62 250/410/45 227/367/45 +f 250/410/65 251/411/66 247/407/66 +f 244/404/67 251/412/66 252/413/67 +f 240/400/68 252/414/67 253/415/68 +f 240/400/68 254/416/69 243/403/69 +f 243/403/69 255/417/70 239/399/70 +f 239/399/70 256/418/71 248/408/71 +f 248/419/71 257/420/72 245/405/72 +f 241/401/73 257/421/72 258/422/73 +f 249/409/74 258/423/73 259/424/75 +f 249/409/74 260/425/76 246/406/76 +f 246/406/76 261/426/77 242/402/77 +f 250/410/65 261/427/77 262/428/78 +f 251/429/60 263/430/63 252/431/63 +f 256/432/44 264/433/59 257/434/59 +f 259/435/43 265/436/57 260/437/57 +f 262/438/45 266/439/60 251/429/60 +f 255/440/64 267/441/44 256/442/44 +f 258/443/58 268/444/43 259/435/43 +f 261/445/62 269/446/45 262/438/45 +f 254/447/61 270/448/64 255/440/64 +f 252/431/63 271/449/42 253/450/42 +f 257/434/59 272/451/58 258/443/58 +f 260/437/57 273/452/62 261/445/62 +f 253/450/42 274/453/61 254/447/61 +f 266/454/79 275/455/80 276/456/79 +f 266/457/79 277/458/81 263/459/81 +f 263/460/81 278/461/82 271/462/82 +f 271/463/82 279/464/83 274/465/83 +f 274/466/83 280/467/84 270/468/84 +f 270/469/84 281/470/85 267/471/85 +f 264/472/86 281/473/85 282/474/86 +f 264/475/86 283/476/87 272/477/87 +f 272/478/87 284/479/88 268/480/88 +f 268/481/88 285/482/89 265/483/89 +f 273/484/90 275/455/80 269/485/80 +f 265/486/89 286/487/90 273/488/90 +f 276/456/60 287/489/63 277/458/63 +f 281/473/44 288/490/59 282/474/59 +f 284/479/43 289/491/57 285/482/57 +f 275/455/45 290/492/60 276/456/60 +f 280/467/64 291/493/44 281/470/44 +f 283/476/58 292/494/43 284/479/43 +f 286/487/62 293/495/45 275/455/45 +f 279/464/61 294/496/64 280/467/64 +f 278/461/42 287/489/63 295/497/42 +f 282/474/59 296/498/58 283/476/58 +f 285/482/57 297/499/62 286/487/62 +f 278/461/42 298/500/61 279/464/61 +f 289/491/51 299/501/51 300/502/51 +f 297/499/51 300/503/51 301/504/51 +f 293/495/51 301/505/51 302/506/51 +f 293/495/51 303/507/51 290/492/51 +f 290/492/51 304/508/51 287/489/51 +f 287/489/51 305/509/51 295/497/51 +f 298/500/51 305/510/51 306/511/51 +f 294/496/51 306/512/51 307/513/51 +f 294/496/51 308/514/51 291/493/51 +f 291/515/51 309/516/51 288/490/51 +f 288/490/51 310/517/51 296/498/51 +f 296/498/51 299/518/51 292/494/51 +f 302/519/44 311/520/59 303/521/59 +f 307/522/62 312/523/45 308/524/45 +f 310/525/63 313/526/42 299/527/42 +f 301/528/64 314/529/44 302/519/44 +f 306/530/57 315/531/62 307/522/62 +f 304/532/58 316/533/43 305/534/43 +f 309/535/60 317/536/63 310/525/63 +f 300/537/61 318/538/64 301/528/64 +f 305/534/43 319/539/57 306/530/57 +f 303/521/59 320/540/58 304/532/58 +f 308/541/45 321/542/60 309/535/60 +f 299/527/42 322/543/61 300/537/61 +f 318/544/51 321/545/51 316/546/51 +f 323/547/91 324/548/92 325/549/91 +f 326/550/51 327/551/93 328/552/51 +f 329/553/43 330/554/94 331/555/43 +f 332/556/50 325/549/91 333/557/50 +f 334/558/95 328/552/51 335/559/95 +f 336/560/96 331/555/43 337/561/96 +f 338/562/97 333/563/50 339/564/97 +f 340/565/98 335/559/95 341/566/98 +f 342/567/92 343/568/42 324/548/92 +f 344/569/93 337/561/96 327/551/93 +f 345/570/94 339/564/97 330/554/94 +f 346/571/42 341/566/98 343/568/42 +f 347/572/94 348/573/97 349/574/94 +f 350/575/42 351/576/98 352/577/42 +f 353/578/91 354/579/92 355/580/91 +f 356/581/51 357/582/93 358/583/51 +f 359/584/43 349/574/94 360/585/43 +f 361/586/50 355/580/91 362/587/50 +f 363/588/95 358/583/51 364/589/95 +f 365/590/96 360/585/43 366/591/96 +f 367/592/97 362/593/50 348/573/97 +f 368/594/98 364/589/95 351/576/98 +f 369/595/92 352/577/42 354/579/92 +f 370/596/93 366/591/96 357/582/93 +f 370/597/45 363/598/45 350/599/45 +f 334/600/44 358/583/44 326/601/44 +f 340/602/44 364/589/44 334/603/44 +f 346/604/44 351/576/44 340/605/44 +f 342/606/44 352/577/44 346/607/44 +f 342/608/44 355/580/44 354/579/44 +f 323/609/44 362/587/44 355/580/44 +f 338/610/44 362/593/44 332/611/44 +f 345/612/44 348/573/44 338/613/44 +f 329/614/44 349/574/44 345/615/44 +f 336/616/44 360/585/44 329/617/44 +f 344/618/44 358/583/44 357/582/44 +f 336/619/44 357/582/44 366/591/44 +f 371/620/99 372/621/100 373/622/99 +f 374/623/45 375/624/101 376/625/45 +f 377/626/102 378/627/103 379/628/102 +f 380/629/51 381/630/104 382/631/51 +f 383/632/44 373/622/99 384/633/44 +f 385/634/50 379/628/102 386/635/50 +f 387/636/105 382/631/51 388/637/105 +f 389/638/106 384/633/44 390/639/106 +f 391/640/100 386/641/50 372/621/100 +f 392/642/101 388/637/105 375/624/101 +f 393/643/103 376/625/45 378/627/103 +f 394/644/104 390/639/106 381/630/104 +f 374/645/42 395/646/42 396/647/42 +f 393/648/42 397/649/42 395/646/42 +f 377/650/42 398/651/42 397/649/42 +f 391/652/42 398/653/42 385/654/42 +f 371/655/42 399/656/42 391/657/42 +f 383/658/42 400/659/42 371/660/42 +f 389/661/42 401/662/42 383/663/42 +f 389/664/42 402/665/42 403/666/42 +f 394/667/42 404/668/42 402/665/42 +f 387/669/42 404/668/42 380/670/42 +f 392/671/42 405/672/42 387/673/42 +f 374/674/42 406/675/42 392/676/42 +f 407/677/44 400/659/99 401/662/44 +f 408/678/50 397/649/102 398/651/50 +f 409/679/105 404/668/51 405/672/105 +f 410/680/106 401/662/44 403/666/106 +f 411/681/100 398/653/50 399/656/100 +f 412/682/101 405/672/105 406/675/101 +f 413/683/103 396/647/45 395/646/103 +f 414/684/104 403/666/106 402/665/104 +f 415/685/99 399/656/100 400/659/99 +f 416/686/45 406/675/101 396/647/45 +f 417/687/102 395/646/103 397/649/102 +f 418/688/51 402/665/104 404/668/51 +f 414/689/43 409/690/43 416/691/43 +f 419/692/102 420/693/50 421/694/50 +f 422/695/51 423/696/105 424/697/105 +f 425/698/44 426/699/106 427/700/106 +f 421/701/50 428/702/100 429/703/100 +f 424/697/105 430/704/101 431/705/101 +f 432/706/45 433/707/103 434/708/103 +f 427/700/106 435/709/104 436/710/104 +f 429/703/100 437/711/99 438/712/99 +f 431/705/101 439/713/45 432/706/45 +f 434/708/103 440/714/102 419/692/102 +f 436/710/104 441/715/51 422/695/51 +f 438/712/99 442/716/44 425/698/44 +f 443/717/102 444/718/107 445/719/50 +f 446/720/51 447/721/108 448/722/105 +f 449/723/44 450/724/109 451/725/106 +f 445/726/50 452/727/110 453/728/100 +f 448/722/105 454/729/111 455/730/101 +f 456/731/45 457/732/112 458/733/103 +f 451/725/106 459/734/113 460/735/104 +f 453/728/100 461/736/114 462/737/99 +f 455/730/101 463/738/115 456/731/45 +f 458/733/103 464/739/116 443/717/102 +f 460/735/104 465/740/117 446/720/51 +f 462/737/99 466/741/118 449/723/44 +f 464/739/116 467/742/119 444/718/107 +f 457/732/112 468/743/120 464/739/116 +f 463/738/115 469/744/121 457/732/112 +f 470/745/122 463/738/115 454/729/111 +f 471/746/123 454/729/111 447/721/108 +f 472/747/124 447/721/108 465/740/117 +f 473/748/125 465/740/117 459/734/113 +f 474/749/126 459/734/113 450/724/109 +f 475/750/127 450/724/109 466/741/118 +f 461/736/114 475/750/127 466/741/118 +f 444/751/107 476/752/128 452/727/110 +f 452/727/110 477/753/129 461/736/114 +f 478/754/42 471/755/42 475/756/42 +f 455/730/43 439/757/43 430/758/43 +f 448/722/43 430/759/43 423/760/43 +f 446/720/43 423/761/43 441/762/43 +f 435/763/43 446/720/43 441/764/43 +f 426/765/43 460/735/43 435/766/43 +f 449/723/43 426/767/43 442/768/43 +f 462/737/43 442/769/43 437/770/43 +f 453/728/43 437/771/43 428/772/43 +f 445/726/43 428/773/43 420/774/43 +f 440/775/43 445/719/43 420/776/43 +f 433/777/43 443/717/43 440/778/43 +f 439/779/43 458/733/43 433/780/43 +f 114/781/130 122/211/50 178/782/50 +f 110/783/131 174/784/132 176/785/132 +f 152/286/56 117/786/130 114/787/130 +f 115/788/131 116/789/133 113/790/133 +f 142/791/134 196/792/135 153/793/134 +f 150/245/136 125/218/43 179/291/43 +f 127/794/137 150/245/136 140/795/137 +f 202/333/136 133/227/43 181/294/43 +f 198/321/136 168/304/137 145/252/137 +f 149/247/134 201/796/135 164/797/135 +f 141/297/71 139/798/138 138/244/71 +f 148/799/139 144/324/140 146/800/139 +f 116/789/133 185/332/51 113/790/133 +f 148/242/139 139/801/138 143/237/138 +f 479/802/141 187/803/45 480/804/45 +f 481/805/131 189/806/51 482/807/51 +f 483/808/142 154/809/44 484/810/44 +f 485/811/56 156/812/50 486/813/50 +f 482/807/51 188/814/141 479/802/141 +f 484/815/44 190/816/131 481/805/131 +f 486/813/50 155/817/142 483/808/142 +f 480/804/45 186/818/56 485/811/56 +f 487/819/141 158/820/45 488/821/45 +f 489/822/131 159/823/51 490/824/51 +f 491/825/142 194/826/44 492/827/44 +f 493/828/56 157/829/50 494/830/50 +f 490/824/51 192/831/141 487/819/141 +f 492/832/44 193/833/131 489/822/131 +f 494/830/50 195/834/142 491/825/142 +f 488/821/45 191/835/56 493/828/56 +f 130/224/45 164/797/135 201/796/135 +f 182/836/135 162/261/45 196/792/135 +f 174/784/132 177/277/44 176/785/132 +f 203/338/57 223/359/57 204/339/43 +f 206/341/58 224/360/58 207/342/59 +f 209/344/60 225/361/60 210/345/45 +f 212/347/61 226/362/61 213/348/42 +f 208/343/59 207/342/59 215/350/44 +f 211/352/45 210/837/45 217/353/62 +f 214/349/42 213/348/42 219/355/63 +f 216/351/44 215/350/44 221/357/64 +f 218/354/62 217/353/62 223/359/57 +f 205/340/43 204/339/43 224/360/58 +f 220/356/63 219/355/63 225/361/60 +f 222/358/64 221/357/64 226/362/61 +f 207/365/50 224/838/50 217/363/50 +f 224/838/50 204/839/50 217/363/50 +f 204/839/50 223/840/50 217/363/50 +f 217/363/50 210/841/50 213/364/50 +f 210/841/50 225/842/50 213/364/50 +f 225/842/50 219/843/50 213/364/50 +f 213/364/50 226/844/50 221/845/50 +f 221/845/50 215/846/50 213/364/50 +f 215/846/50 207/365/50 213/364/50 +f 222/366/50 229/371/50 227/367/50 +f 222/369/50 212/847/50 228/370/50 +f 214/372/50 231/376/50 228/370/50 +f 214/374/50 220/848/50 230/375/50 +f 209/377/50 233/381/50 230/375/50 +f 209/379/50 211/849/50 232/380/50 +f 218/382/50 234/386/50 232/383/50 +f 203/385/50 235/389/50 234/386/50 +f 205/388/50 237/393/50 235/389/50 +f 205/391/50 206/850/50 236/392/50 +f 216/394/50 227/367/50 238/395/50 +f 208/397/50 238/395/50 236/392/50 +f 235/389/61 243/403/61 239/399/64 +f 236/392/63 244/404/63 240/400/42 +f 233/381/59 245/405/59 241/401/58 +f 228/370/57 246/406/57 242/402/62 +f 237/393/42 240/400/42 243/403/61 +f 238/395/60 247/407/60 244/404/63 +f 232/380/44 248/419/44 245/405/59 +f 231/376/43 249/409/43 246/406/57 +f 227/367/45 250/410/45 247/407/60 +f 234/386/64 239/399/64 248/408/44 +f 230/375/58 241/401/58 249/409/43 +f 229/371/62 242/402/62 250/410/45 +f 250/410/65 262/851/78 251/411/66 +f 244/404/67 247/407/66 251/412/66 +f 240/400/68 244/404/67 252/414/67 +f 240/400/68 253/852/68 254/416/69 +f 243/403/69 254/853/69 255/417/70 +f 239/399/70 255/854/70 256/418/71 +f 248/419/71 256/855/71 257/420/72 +f 241/401/73 245/405/72 257/421/72 +f 249/409/74 241/401/73 258/423/73 +f 249/409/74 259/856/75 260/425/76 +f 246/406/76 260/857/76 261/426/77 +f 250/410/65 242/402/77 261/427/77 +f 251/429/60 266/439/60 263/430/63 +f 256/432/44 267/858/44 264/433/59 +f 259/435/43 268/444/43 265/436/57 +f 262/438/45 269/446/45 266/439/60 +f 255/440/64 270/448/64 267/441/44 +f 258/443/58 272/451/58 268/444/43 +f 261/445/62 273/452/62 269/446/45 +f 254/447/61 274/453/61 270/448/64 +f 252/431/63 263/430/63 271/449/42 +f 257/434/59 264/433/59 272/451/58 +f 260/437/57 265/436/57 273/452/62 +f 253/450/42 271/449/42 274/453/61 +f 266/454/79 269/859/80 275/455/80 +f 266/457/79 276/456/79 277/458/81 +f 263/460/81 277/458/81 278/461/82 +f 271/463/82 278/461/82 279/464/83 +f 274/466/83 279/464/83 280/467/84 +f 270/469/84 280/467/84 281/470/85 +f 264/472/86 267/860/85 281/473/85 +f 264/475/86 282/474/86 283/476/87 +f 272/478/87 283/476/87 284/479/88 +f 268/481/88 284/479/88 285/482/89 +f 273/484/90 286/487/90 275/455/80 +f 265/486/89 285/482/89 286/487/90 +f 276/456/60 290/492/60 287/489/63 +f 281/473/44 291/515/44 288/490/59 +f 284/479/43 292/494/43 289/491/57 +f 275/455/45 293/495/45 290/492/60 +f 280/467/64 294/496/64 291/493/44 +f 283/476/58 296/498/58 292/494/43 +f 286/487/62 297/499/62 293/495/45 +f 279/464/61 298/500/61 294/496/64 +f 278/461/42 277/458/63 287/489/63 +f 282/474/59 288/490/59 296/498/58 +f 285/482/57 289/491/57 297/499/62 +f 278/461/42 295/497/42 298/500/61 +f 289/491/51 292/494/51 299/501/51 +f 297/499/51 289/491/51 300/503/51 +f 293/495/51 297/499/51 301/505/51 +f 293/495/51 302/861/51 303/507/51 +f 290/492/51 303/862/51 304/508/51 +f 287/489/51 304/863/51 305/509/51 +f 298/500/51 295/497/51 305/510/51 +f 294/496/51 298/500/51 306/512/51 +f 294/496/51 307/864/51 308/514/51 +f 291/515/51 308/865/51 309/516/51 +f 288/490/51 309/866/51 310/517/51 +f 296/498/51 310/867/51 299/518/51 +f 302/519/44 314/529/44 311/520/59 +f 307/522/62 315/531/62 312/523/45 +f 310/525/63 317/536/63 313/526/42 +f 301/528/64 318/538/64 314/529/44 +f 306/530/57 319/539/57 315/531/62 +f 304/532/58 320/540/58 316/533/43 +f 309/535/60 321/542/60 317/536/63 +f 300/537/61 322/543/61 318/538/64 +f 305/534/43 316/533/43 319/539/57 +f 303/521/59 311/520/59 320/540/58 +f 308/541/45 312/868/45 321/542/60 +f 299/527/42 313/526/42 322/543/61 +f 316/546/51 320/869/51 311/870/51 +f 311/870/51 314/871/51 318/544/51 +f 318/544/51 322/872/51 313/873/51 +f 313/873/51 317/874/51 321/545/51 +f 321/545/51 312/875/51 315/876/51 +f 315/876/51 319/877/51 316/546/51 +f 316/546/51 311/870/51 318/544/51 +f 318/544/51 313/873/51 321/545/51 +f 321/545/51 315/876/51 316/546/51 +f 323/547/91 342/567/92 324/548/92 +f 326/550/51 344/569/93 327/551/93 +f 329/553/43 345/570/94 330/554/94 +f 332/556/50 323/547/91 325/549/91 +f 334/558/95 326/550/51 328/552/51 +f 336/560/96 329/553/43 331/555/43 +f 338/562/97 332/878/50 333/563/50 +f 340/565/98 334/558/95 335/559/95 +f 342/567/92 346/571/42 343/568/42 +f 344/569/93 336/560/96 337/561/96 +f 345/570/94 338/562/97 339/564/97 +f 346/571/42 340/565/98 341/566/98 +f 347/572/94 367/592/97 348/573/97 +f 350/575/42 368/594/98 351/576/98 +f 353/578/91 369/595/92 354/579/92 +f 356/581/51 370/596/93 357/582/93 +f 359/584/43 347/572/94 349/574/94 +f 361/586/50 353/578/91 355/580/91 +f 363/588/95 356/581/51 358/583/51 +f 365/590/96 359/584/43 360/585/43 +f 367/592/97 361/879/50 362/593/50 +f 368/594/98 363/588/95 364/589/95 +f 369/595/92 350/575/42 352/577/42 +f 370/596/93 365/590/96 366/591/96 +f 350/599/45 369/880/45 353/881/45 +f 353/881/45 361/882/45 367/883/45 +f 367/883/45 347/884/45 359/885/45 +f 359/885/45 365/886/45 370/597/45 +f 370/597/45 356/887/45 363/598/45 +f 363/598/45 368/888/45 350/599/45 +f 350/599/45 353/881/45 370/597/45 +f 353/881/45 367/883/45 370/597/45 +f 367/883/45 359/885/45 370/597/45 +f 334/600/44 364/589/44 358/583/44 +f 340/602/44 351/576/44 364/589/44 +f 346/604/44 352/577/44 351/576/44 +f 342/606/44 354/579/44 352/577/44 +f 342/608/44 323/889/44 355/580/44 +f 323/609/44 332/890/44 362/587/44 +f 338/610/44 348/573/44 362/593/44 +f 345/612/44 349/574/44 348/573/44 +f 329/614/44 360/585/44 349/574/44 +f 336/616/44 366/591/44 360/585/44 +f 344/618/44 326/891/44 358/583/44 +f 336/619/44 344/892/44 357/582/44 +f 371/620/99 391/640/100 372/621/100 +f 374/623/45 392/642/101 375/624/101 +f 377/626/102 393/643/103 378/627/103 +f 380/629/51 394/644/104 381/630/104 +f 383/632/44 371/620/99 373/622/99 +f 385/634/50 377/626/102 379/628/102 +f 387/636/105 380/629/51 382/631/51 +f 389/638/106 383/632/44 384/633/44 +f 391/640/100 385/893/50 386/641/50 +f 392/642/101 387/636/105 388/637/105 +f 393/643/103 374/623/45 376/625/45 +f 394/644/104 389/638/106 390/639/106 +f 374/645/42 393/894/42 395/646/42 +f 393/648/42 377/895/42 397/649/42 +f 377/650/42 385/896/42 398/651/42 +f 391/652/42 399/656/42 398/653/42 +f 371/655/42 400/659/42 399/656/42 +f 383/658/42 401/662/42 400/659/42 +f 389/661/42 403/666/42 401/662/42 +f 389/664/42 394/897/42 402/665/42 +f 394/667/42 380/898/42 404/668/42 +f 387/669/42 405/672/42 404/668/42 +f 392/671/42 406/675/42 405/672/42 +f 374/674/42 396/647/42 406/675/42 +f 407/677/44 415/685/99 400/659/99 +f 408/678/50 417/687/102 397/649/102 +f 409/679/105 418/688/51 404/668/51 +f 410/680/106 407/677/44 401/662/44 +f 411/681/100 408/899/50 398/653/50 +f 412/682/101 409/679/105 405/672/105 +f 413/683/103 416/686/45 396/647/45 +f 414/684/104 410/680/106 403/666/106 +f 415/685/99 411/681/100 399/656/100 +f 416/686/45 412/682/101 406/675/101 +f 417/687/102 413/683/103 395/646/103 +f 418/688/51 414/684/104 402/665/104 +f 416/691/43 413/900/43 417/901/43 +f 417/901/43 408/902/43 411/903/43 +f 411/903/43 415/904/43 407/905/43 +f 407/905/43 410/906/43 414/689/43 +f 414/689/43 418/907/43 409/690/43 +f 409/690/43 412/908/43 416/691/43 +f 416/691/43 417/901/43 414/689/43 +f 417/901/43 411/903/43 414/689/43 +f 411/903/43 407/905/43 414/689/43 +f 419/692/102 440/714/102 420/693/50 +f 422/695/51 441/715/51 423/696/105 +f 425/698/44 442/716/44 426/699/106 +f 421/701/50 420/909/50 428/702/100 +f 424/697/105 423/696/105 430/704/101 +f 432/706/45 439/713/45 433/707/103 +f 427/700/106 426/699/106 435/709/104 +f 429/703/100 428/702/100 437/711/99 +f 431/705/101 430/704/101 439/713/45 +f 434/708/103 433/707/103 440/714/102 +f 436/710/104 435/709/104 441/715/51 +f 438/712/99 437/711/99 442/716/44 +f 443/717/102 464/739/116 444/718/107 +f 446/720/51 465/740/117 447/721/108 +f 449/723/44 466/741/118 450/724/109 +f 445/726/50 444/751/107 452/727/110 +f 448/722/105 447/721/108 454/729/111 +f 456/731/45 463/738/115 457/732/112 +f 451/725/106 450/724/109 459/734/113 +f 453/728/100 452/727/110 461/736/114 +f 455/730/101 454/729/111 463/738/115 +f 458/733/103 457/732/112 464/739/116 +f 460/735/104 459/734/113 465/740/117 +f 462/737/99 461/736/114 466/741/118 +f 464/739/116 468/743/120 467/742/119 +f 457/732/112 469/744/121 468/743/120 +f 463/738/115 478/910/143 469/744/121 +f 470/745/122 478/910/143 463/738/115 +f 471/746/123 470/745/122 454/729/111 +f 472/747/124 471/746/123 447/721/108 +f 473/748/125 472/747/124 465/740/117 +f 474/749/126 473/748/125 459/734/113 +f 475/750/127 474/749/126 450/724/109 +f 461/736/114 477/753/129 475/750/127 +f 444/751/107 467/911/119 476/752/128 +f 452/727/110 476/752/128 477/753/129 +f 468/912/42 469/913/42 478/754/42 +f 478/754/42 470/914/42 471/755/42 +f 471/755/42 472/915/42 475/756/42 +f 472/915/42 473/916/42 475/756/42 +f 473/916/42 474/917/42 475/756/42 +f 475/756/42 477/918/42 476/919/42 +f 476/919/42 467/920/42 475/756/42 +f 467/920/42 468/912/42 475/756/42 +f 468/912/42 478/754/42 475/756/42 +f 455/730/43 456/731/43 439/757/43 +f 448/722/43 455/730/43 430/759/43 +f 446/720/43 448/722/43 423/761/43 +f 435/763/43 460/735/43 446/720/43 +f 426/765/43 451/725/43 460/735/43 +f 449/723/43 451/725/43 426/767/43 +f 462/737/43 449/723/43 442/769/43 +f 453/728/43 462/737/43 437/771/43 +f 445/726/43 453/728/43 428/773/43 +f 440/775/43 443/717/43 445/719/43 +f 433/777/43 458/733/43 443/717/43 +f 439/779/43 456/731/43 458/733/43 +f 114/781/130 117/212/130 122/211/50 +f 110/783/131 109/921/131 174/784/132 +f 152/286/56 108/191/56 117/786/130 +f 115/788/131 111/922/131 116/789/133 +f 142/791/134 182/836/135 196/792/135 +f 150/245/136 161/260/136 125/218/43 +f 127/794/137 161/260/136 150/245/136 +f 202/333/136 198/321/136 133/227/43 +f 198/321/136 202/333/136 168/304/137 +f 149/247/134 185/303/134 201/796/135 +f 141/297/71 143/923/138 139/798/138 +f 148/799/139 147/263/140 144/324/140 +f 116/789/133 168/268/51 185/332/51 +f 148/242/139 146/924/139 139/801/138 +f 479/802/141 188/814/141 187/803/45 +f 481/805/131 190/816/131 189/806/51 +f 483/808/142 155/817/142 154/809/44 +f 485/811/56 186/818/56 156/812/50 +f 482/807/51 189/806/51 188/814/141 +f 484/815/44 154/925/44 190/816/131 +f 486/813/50 156/812/50 155/817/142 +f 480/804/45 187/803/45 186/818/56 +f 487/819/141 192/831/141 158/820/45 +f 489/822/131 193/833/131 159/823/51 +f 491/825/142 195/834/142 194/826/44 +f 493/828/56 191/835/56 157/829/50 +f 490/824/51 159/823/51 192/831/141 +f 492/832/44 194/926/44 193/833/131 +f 494/830/50 157/829/50 195/834/142 +f 488/821/45 158/820/45 191/835/56 +f 130/224/45 180/293/45 164/797/135 +f 182/836/135 184/300/45 162/261/45 +f 174/784/132 173/273/44 177/277/44 +o Flash_Hider +v -0.250001 -0.000000 12.500000 +v -0.176778 0.176777 12.500000 +v -0.176778 0.176777 11.625000 +v -0.176778 0.176777 11.250000 +v -0.000001 0.250000 11.250000 +v -0.000000 -0.250000 11.250000 +v 0.249999 0.000000 12.500000 +v 0.176776 -0.176777 12.500000 +v 0.176776 -0.176777 11.625000 +v -0.000000 -0.250000 11.625000 +v -0.176778 -0.176777 12.500000 +v -0.176778 -0.176777 11.625000 +v -0.000001 0.250000 11.625000 +v 0.176776 0.176777 12.500000 +v 0.176776 0.176777 11.625000 +v 0.176776 0.176777 11.250000 +v 0.249999 0.000000 11.625000 +v 0.250000 0.000000 11.250000 +v 0.176777 -0.176777 11.250000 +v -0.176777 -0.176777 11.250000 +v -0.250001 -0.000000 11.625000 +v -0.250001 -0.000000 11.250000 +v 0.088387 -0.088388 12.437500 +v -0.000001 -0.125000 12.437500 +v -0.000001 -0.250000 12.500000 +v -0.088389 -0.088388 11.625000 +v -0.088389 -0.088388 12.437500 +v -0.000001 0.125000 12.437500 +v 0.088387 0.088388 12.437500 +v -0.088389 0.088388 12.437500 +v 0.124999 0.000000 12.437500 +v 0.088387 -0.088388 11.625000 +v -0.125001 -0.000000 12.437500 +v -0.088389 0.088388 11.625000 +v 0.088387 0.088388 11.625000 +v -0.000001 0.250000 12.500000 +v -0.000001 0.125000 11.625000 +v 0.124999 0.000000 11.625000 +v -0.000001 -0.125000 11.625000 +v -0.125001 -0.000000 11.625000 +vt 0.092664 0.494208 +vt 0.081081 0.494208 +vt 0.081081 0.548263 +vt 0.058577 0.684060 +vt 0.054054 0.694981 +vt 0.084942 0.694981 +vt 0.046332 0.494208 +vt 0.034749 0.494208 +vt 0.034749 0.548263 +vt 0.115830 0.548263 +vt 0.104247 0.494208 +vt 0.104247 0.548263 +vt 0.069498 0.548263 +vt 0.057915 0.494208 +vt 0.057915 0.548263 +vt 0.081081 0.571429 +vt 0.069498 0.571429 +vt 0.057915 0.571429 +vt 0.046332 0.548263 +vt 0.046332 0.571429 +vt 0.034749 0.571429 +vt 0.023166 0.548263 +vt 0.023166 0.571429 +vt 0.104247 0.571429 +vt 0.092664 0.548263 +vt 0.092664 0.571429 +vt 0.038610 0.486486 +vt 0.084942 0.640927 +vt 0.034749 0.648649 +vt 0.030888 0.640927 +vt 0.084942 0.652510 +vt 0.034749 0.652510 +vt 0.115830 0.494208 +vt 0.108108 0.486486 +vt 0.065637 0.486486 +vt 0.061776 0.486486 +vt 0.084942 0.486486 +vt 0.084942 0.660232 +vt 0.030888 0.660232 +vt 0.034749 0.667954 +vt 0.084942 0.671815 +vt 0.034749 0.671815 +vt 0.034749 0.629344 +vt 0.084942 0.633205 +vt 0.034749 0.633205 +vt 0.034749 0.610039 +vt 0.084942 0.613900 +vt 0.034749 0.613900 +vt 0.084942 0.640927 +vt 0.030888 0.640927 +vt 0.084942 0.602317 +vt 0.030888 0.602317 +vt 0.084942 0.621622 +vt 0.030888 0.621622 +vt 0.084942 0.660232 +vt 0.030888 0.660232 +vt 0.084942 0.679537 +vt 0.030888 0.679537 +vt 0.084942 0.621622 +vt 0.030888 0.621622 +vt 0.027689 0.684062 +vt 0.030888 0.694981 +vt 0.023166 0.694981 +vt 0.027689 0.705901 +vt 0.038610 0.702703 +vt 0.038610 0.710425 +vt 0.046332 0.694981 +vt 0.049531 0.705900 +vt 0.044070 0.700440 +vt 0.049531 0.684060 +vt 0.038610 0.687259 +vt 0.038610 0.679537 +vt 0.044070 0.689520 +vt 0.033150 0.700441 +vt 0.058577 0.705901 +vt 0.069498 0.710425 +vt 0.080419 0.705901 +vt 0.080419 0.684060 +vt 0.069498 0.679537 +vt 0.115830 0.571429 +vt 0.069498 0.494208 +vt 0.042471 0.486486 +vt 0.084942 0.648649 +vt 0.111969 0.486486 +vt 0.088803 0.486486 +vt 0.084942 0.667954 +vt 0.084942 0.629344 +vt 0.084942 0.610039 +vt 0.033150 0.689521 +vt 0.054054 0.694981 +vn -0.9239 0.3827 -0.0000 +vn -0.7972 0.6037 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7972 -0.6037 0.0000 +vn -0.1368 -0.9906 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.6037 -0.7972 -0.0000 +vn 0.1368 0.9906 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.6037 0.7972 0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9906 -0.1368 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.9906 0.1368 -0.0000 +vn -1.0000 0.0000 -0.0000 +vn -0.4397 0.1821 0.8795 +vn 0.8760 0.4823 0.0000 +vn -0.1951 0.9808 -0.0000 +vn -0.2783 0.9605 -0.0000 +vn 0.1821 0.4397 0.8795 +vn -0.1821 -0.4397 0.8795 +vn -0.1822 -0.4397 0.8795 +vn 0.4397 -0.1821 0.8795 +vn -0.4823 0.8760 -0.0000 +vn -0.9808 -0.1951 -0.0000 +vn -0.9605 -0.2783 -0.0000 +vn 0.4823 -0.8760 0.0000 +vn 0.9808 0.1951 0.0000 +vn 0.9605 0.2783 0.0000 +vn -0.8760 -0.4823 -0.0000 +vn 0.1951 -0.9808 0.0000 +vn 0.2783 -0.9605 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8315 0.5556 0.0000 +vn 0.1822 0.4397 0.8795 +vn -0.5556 0.8315 -0.0000 +vn 0.5556 -0.8315 0.0000 +vn -0.8315 -0.5556 -0.0000 +usemtl None +s 1 +f 495/927/144 496/928/144 497/929/145 +f 498/930/146 499/931/146 500/932/146 +f 501/933/147 502/934/147 503/935/148 +f 504/936/149 505/937/150 506/938/151 +f 507/939/152 508/940/153 509/941/154 +f 498/942/155 507/939/152 499/943/156 +f 510/944/157 511/945/158 512/946/159 +f 513/947/160 504/948/149 500/949/161 +f 514/950/162 515/951/163 516/952/164 +f 501/933/165 517/953/165 502/934/165 +f 504/954/159 518/955/166 519/956/159 +f 518/955/166 520/957/167 521/958/168 +f 519/959/169 521/960/169 505/937/169 +f 508/940/170 522/961/170 523/962/171 +f 495/927/172 524/963/172 496/928/172 +f 521/958/168 506/964/155 505/965/155 +f 525/966/173 526/967/174 517/968/175 +f 527/969/176 528/970/177 524/971/178 +f 522/972/179 529/973/180 523/974/181 +f 524/971/178 497/975/157 496/976/157 +f 507/977/164 522/972/179 530/978/164 +f 523/974/181 509/979/160 508/980/160 +f 511/981/156 525/966/173 501/982/156 +f 517/968/175 503/983/162 502/984/162 +f 515/985/161 527/969/176 495/986/161 +f 497/987/182 531/988/182 507/989/182 +f 509/990/182 532/991/182 511/992/182 +f 533/993/182 503/994/182 526/995/182 +f 506/996/182 534/997/182 515/998/182 +f 520/999/182 526/995/182 529/1000/182 +f 497/929/145 498/942/155 516/952/164 +f 516/952/164 515/951/163 497/929/145 +f 515/951/163 495/927/144 497/929/145 +f 499/931/146 510/1001/146 512/1002/146 +f 512/1002/146 513/1003/146 499/931/146 +f 513/1003/146 500/932/146 499/931/146 +f 500/932/146 514/1004/146 516/1005/146 +f 516/1005/146 498/930/146 500/932/146 +f 503/935/148 513/947/160 512/946/159 +f 512/946/159 511/945/158 503/935/148 +f 511/945/158 501/933/147 503/935/148 +f 506/938/151 514/950/162 500/1006/161 +f 504/936/149 519/959/150 505/937/150 +f 506/938/151 500/1006/161 504/936/149 +f 509/941/154 510/944/157 499/943/156 +f 507/939/152 530/1007/153 508/940/153 +f 509/941/154 499/943/156 507/939/152 +f 498/942/155 497/929/145 507/939/152 +f 510/944/157 509/941/154 511/945/158 +f 513/947/160 503/935/148 504/948/149 +f 514/950/162 506/938/151 515/951/163 +f 501/933/165 525/1008/165 517/953/165 +f 504/954/159 533/1009/183 518/955/166 +f 518/955/166 533/1009/183 520/957/167 +f 519/959/169 518/1010/184 521/960/169 +f 508/940/170 530/1007/170 522/961/170 +f 495/927/172 527/1011/172 524/963/172 +f 521/958/168 520/957/167 506/964/155 +f 525/966/173 532/1012/185 526/967/174 +f 527/969/176 534/1013/186 528/970/177 +f 522/972/179 531/1014/187 529/973/180 +f 524/971/178 528/970/177 497/975/157 +f 507/977/164 531/1014/187 522/972/179 +f 523/974/181 529/973/180 509/979/160 +f 511/981/156 532/1012/185 525/966/173 +f 517/968/175 526/967/174 503/983/162 +f 515/985/161 534/1013/186 527/969/176 +f 497/987/182 528/1015/182 531/988/182 +f 509/990/182 529/1000/182 532/991/182 +f 533/993/182 504/1016/182 503/994/182 +f 506/996/182 520/999/182 534/997/182 +f 520/999/182 533/993/182 526/995/182 +f 526/995/182 532/991/182 529/1000/182 +f 529/1000/182 531/988/182 528/1015/182 +f 528/1015/182 534/997/182 529/1000/182 +f 534/997/182 520/999/182 529/1000/182 +o Stock +v 0.154680 0.735485 -6.625000 +v 0.343750 0.343750 -6.625000 +v 0.156250 0.343750 -7.375000 +v -0.154680 0.735485 -6.625000 +v -0.156250 0.343750 -7.375000 +v -0.343750 0.343750 -6.625000 +v 0.000000 0.781250 -6.625000 +v 0.468750 -0.093750 -6.625000 +v 0.406250 0.093750 -7.375000 +v 0.468750 0.093750 -6.625000 +v 0.343750 -0.343750 -6.625000 +v 0.343750 -0.343750 -7.625000 +v 0.406250 -0.093750 -7.375000 +v -0.156250 0.218750 -7.625000 +v 0.156250 0.218750 -7.625000 +v -0.156250 0.156250 -8.000000 +v 0.156250 0.156250 -8.000000 +v -0.156249 0.156250 -12.125000 +v 0.343751 0.031250 -12.125000 +v 0.156251 0.156250 -12.125000 +v 0.343750 -0.656249 -7.250000 +v 0.343750 -0.718750 -6.625000 +v 0.218750 -0.781249 -7.250000 +v -0.343750 -0.718750 -6.625000 +v -0.218750 -0.781249 -7.250000 +v 0.156251 -2.406250 -12.125000 +v 0.343751 -2.218750 -12.125000 +v -0.156249 -2.406250 -12.125000 +v 0.343750 0.031250 -8.000000 +v 0.343750 0.031250 -7.625000 +v -0.343750 -0.656249 -7.250000 +v -0.343750 -0.343750 -7.625000 +v -0.343750 -0.343750 -6.625000 +v -0.343749 -2.218750 -12.125000 +v -0.343749 0.031250 -12.125000 +v -0.343750 0.031250 -8.000000 +v -0.406250 0.093750 -7.375000 +v -0.343750 0.031250 -7.625000 +v -0.468750 0.093750 -6.625000 +v -0.468750 -0.093750 -6.625000 +v -0.406250 -0.093750 -7.375000 +v 0.343751 -2.218750 -12.500000 +v -0.156249 0.156250 -12.500000 +v -0.343749 0.031250 -12.500000 +v 0.156251 0.156250 -12.500000 +v 0.156251 -2.406250 -12.500000 +v -0.156249 -2.406250 -12.500000 +v 0.343751 -0.718750 -12.312500 +v 0.343751 0.031250 -12.500000 +v 0.343751 -1.468750 -12.312500 +v -0.343749 -0.718750 -12.312500 +v -0.343749 -2.218750 -12.500000 +v -0.343749 -1.468750 -12.312500 +vt 0.980695 0.088803 +vt 0.980695 0.115830 +vt 0.934363 0.108108 +vt 0.980695 0.069498 +vt 0.934363 0.050193 +vt 0.980695 0.042471 +vt 0.988417 0.088803 +vt 0.934363 0.088803 +vt 0.988417 0.079151 +vt 0.934363 0.069498 +vt 0.988417 0.069498 +vt 0.660232 0.270270 +vt 0.706564 0.281853 +vt 0.660232 0.281853 +vt 0.660232 0.297297 +vt 0.934363 0.127413 +vt 0.660232 0.254826 +vt 0.722008 0.254826 +vt 0.706564 0.270270 +vt 0.918919 0.069498 +vt 0.918919 0.088803 +vt 0.895753 0.069498 +vt 0.895753 0.088803 +vt 0.640927 0.069498 +vt 0.640927 0.104247 +vt 0.640927 0.088803 +vt 0.698842 0.235521 +vt 0.660232 0.231660 +vt 0.610039 0.158301 +vt 0.571429 0.150579 +vt 0.610039 0.146718 +vt 0.571429 0.115830 +vt 0.610039 0.119691 +vt 0.926641 0.142857 +vt 1.000000 0.123552 +vt 1.000000 0.138996 +vt 0.926641 0.123552 +vt 0.745174 0.277992 +vt 1.000000 0.277992 +vt 0.918919 0.104247 +vt 0.934363 0.108108 +vt 0.722008 0.277992 +vt 0.610039 0.108108 +vt 0.660232 0.231660 +vt 0.722008 0.254826 +vt 0.698842 0.235521 +vt 0.660232 0.254826 +vt 1.000000 0.138996 +vt 1.000000 0.123552 +vt 1.000000 0.277992 +vt 0.895753 0.054054 +vt 0.745174 0.277992 +vt 0.895753 0.104247 +vt 0.934363 0.050193 +vt 0.918919 0.054054 +vt 0.934363 0.030888 +vt 0.660232 0.297297 +vt 0.706564 0.281853 +vt 0.660232 0.281853 +vt 0.660232 0.270270 +vt 0.706564 0.270270 +vt 0.722008 0.277992 +vt 0.057915 0.266409 +vt 0.042471 0.289575 +vt 0.042471 0.266409 +vt 0.266409 0.266409 +vt 0.247104 0.289575 +vt 0.247104 0.266409 +vt 0.231660 0.289575 +vt 0.231660 0.266409 +vt 0.281853 0.266409 +vt 0.266409 0.289575 +vt 0.077220 0.266409 +vt 0.057915 0.289575 +vt 0.092664 0.266409 +vt 0.077220 0.289575 +vt 0.328185 0.277992 +vt 0.281853 0.289575 +vt 0.420849 0.266409 +vt 0.420849 0.289575 +vt 0.374517 0.277992 +vt 0.362934 0.223938 +vt 0.316602 0.266409 +vt 0.316602 0.223938 +vt 0.420849 0.235521 +vt 0.409266 0.266409 +vt 0.409266 0.223938 +vt 0.262548 0.235521 +vt 0.270270 0.266409 +vt 0.262548 0.254826 +vt 0.270270 0.223938 +vt 0.185328 0.277992 +vt 0.092664 0.289575 +vt 0.138996 0.277992 +vt 0.640927 0.054054 +vt 0.362934 0.266409 +vt 0.420849 0.254826 +vn 0.5473 0.7423 -0.3866 +vn 0.8653 0.4760 -0.1572 +vn 0.4013 0.8284 -0.3908 +vn -0.5473 0.7423 -0.3866 +vn -0.4013 0.8284 -0.3908 +vn -0.8653 0.4760 -0.1572 +vn -0.0000 0.8838 -0.4679 +vn 0.9776 -0.2045 -0.0496 +vn 0.9031 0.3710 -0.2165 +vn 0.9707 0.2263 -0.0809 +vn 0.8944 -0.4472 0.0000 +vn 0.9987 -0.0335 -0.0381 +vn 0.9878 -0.0620 -0.1431 +vn 0.0000 0.9510 -0.3092 +vn 0.0000 0.9966 -0.0825 +vn -0.1922 0.9814 0.0000 +vn 0.5865 0.8096 -0.0234 +vn 0.8817 0.4719 0.0000 +vn 0.5547 0.8321 0.0000 +vn 0.9999 -0.0096 0.0031 +vn 1.0000 0.0000 0.0000 +vn 0.7056 -0.7056 0.0657 +vn 0.1245 -0.9895 0.0741 +vn 0.3705 -0.9144 0.1632 +vn -0.1245 -0.9895 0.0741 +vn -0.3705 -0.9144 0.1632 +vn 0.2585 -0.9591 0.1158 +vn 0.6896 -0.6896 0.2210 +vn 0.8875 -0.4389 0.1407 +vn -0.2585 -0.9591 0.1158 +vn 0.9090 0.3749 -0.1824 +vn 0.6863 0.6863 -0.2408 +vn 0.9987 -0.0335 -0.0380 +vn -0.7056 -0.7056 0.0657 +vn -1.0000 -0.0000 -0.0000 +vn -0.9987 -0.0335 -0.0380 +vn -0.9999 -0.0096 0.0031 +vn -0.8875 -0.4389 0.1407 +vn -0.6896 -0.6896 0.2210 +vn -0.8817 0.4719 -0.0000 +vn -0.5547 0.8321 -0.0000 +vn -0.5865 0.8096 -0.0234 +vn -0.6863 0.6863 -0.2408 +vn -0.9031 0.3710 -0.2165 +vn -0.9090 0.3749 -0.1824 +vn -0.9707 0.2263 -0.0809 +vn -0.9776 -0.2045 -0.0496 +vn -0.9878 -0.0620 -0.1431 +vn -0.8944 -0.4472 -0.0000 +vn 0.9099 -0.4148 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.1922 0.9814 0.0000 +vn -0.2898 0.9571 -0.0000 +vn -0.8594 0.5112 -0.0000 +vn 0.2898 0.9571 -0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.8594 0.5112 0.0000 +vn 0.0000 0.1222 -0.9925 +vn 0.0000 -0.1222 -0.9925 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.1628 -0.9867 +vn 0.0000 -0.1775 -0.9841 +vn -0.9099 -0.4148 -0.0000 +vn -0.1245 -0.9894 0.0741 +usemtl None +s 1 +f 535/1017/188 536/1018/189 537/1019/190 +f 538/1020/191 539/1021/192 540/1022/193 +f 535/1023/188 537/1024/190 541/1025/194 +f 541/1025/194 539/1026/192 538/1027/191 +f 537/1024/190 539/1026/192 541/1025/194 +f 542/1028/195 543/1029/196 544/1030/197 +f 544/1030/197 543/1029/196 536/1031/189 +f 537/1019/190 536/1018/189 543/1032/196 +f 542/1028/195 545/1033/198 546/1034/199 +f 547/1035/200 542/1028/195 546/1034/199 +f 537/1024/190 548/1036/201 539/1026/192 +f 549/1037/201 550/1038/202 548/1036/201 +f 551/1039/202 552/1040/203 550/1038/202 +f 551/1039/204 553/1041/205 554/1042/206 +f 555/1043/207 546/1034/199 556/1044/208 +f 555/1045/209 556/1046/210 557/1047/211 +f 557/1047/211 558/1048/212 559/1049/213 +f 557/1047/211 560/1050/214 555/1045/209 +f 560/1051/215 561/1052/216 555/1043/207 +f 562/1053/217 557/1047/211 559/1049/213 +f 555/1043/207 561/1052/216 546/1034/199 +f 563/1054/205 546/1034/199 553/1055/205 +f 561/1052/216 553/1055/205 546/1034/199 +f 564/1056/218 549/1037/219 543/1057/196 +f 543/1057/196 549/1037/219 537/1024/190 +f 546/1034/199 564/1058/218 547/1035/200 +f 563/1054/205 564/1058/218 546/1034/199 +f 543/1029/196 547/1035/200 564/1058/218 +f 545/1033/208 556/1044/208 546/1034/220 +f 559/1049/213 558/1048/212 565/1059/221 +f 558/1060/222 566/1061/223 565/1062/224 +f 558/1060/222 567/1063/222 566/1061/223 +f 562/1053/217 559/1049/213 565/1059/221 +f 568/1064/225 562/1065/226 565/1062/224 +f 565/1062/224 566/1061/223 568/1064/225 +f 568/1064/225 566/1061/223 569/1066/227 +f 552/1040/228 570/1067/227 550/1038/229 +f 569/1066/227 566/1061/223 570/1068/227 +f 563/1069/205 551/1039/204 564/1056/218 +f 548/1036/230 571/1070/231 539/1026/192 +f 572/1071/232 571/1070/231 548/1036/230 +f 539/1021/192 571/1072/231 540/1022/193 +f 540/1073/193 571/1074/231 573/1075/233 +f 574/1076/234 571/1074/231 575/1077/235 +f 567/1063/236 574/1076/234 566/1061/223 +f 575/1077/235 566/1061/223 574/1076/234 +f 571/1074/231 572/1078/232 575/1077/235 +f 575/1077/235 572/1078/232 566/1061/223 +f 570/1068/227 566/1061/223 572/1078/232 +f 560/1079/214 576/1080/237 561/1081/238 +f 554/1082/239 577/1083/240 552/1084/203 +f 552/1084/203 578/1085/241 569/1086/227 +f 553/1087/205 579/1088/242 554/1082/239 +f 562/1089/217 580/1090/243 560/1079/214 +f 568/1091/244 581/1092/245 562/1089/217 +f 553/1087/205 582/1093/208 583/1094/246 +f 561/1095/238 576/1096/237 584/1097/208 +f 561/1095/238 582/1093/208 553/1087/205 +f 584/1098/247 585/1099/248 582/1100/248 +f 580/1101/249 586/1102/250 576/1103/250 +f 586/1102/250 584/1098/247 576/1103/250 +f 579/1104/249 578/1105/251 577/1106/249 +f 582/1100/248 578/1105/251 583/1107/251 +f 578/1085/241 585/1108/222 569/1086/227 +f 586/1109/252 568/1091/244 587/1110/222 +f 585/1108/222 568/1091/244 569/1086/227 +f 551/1039/204 549/1037/219 564/1056/218 +f 570/1067/227 572/1071/232 550/1038/229 +f 548/1036/230 550/1038/229 572/1071/232 +f 542/1028/195 547/1035/200 543/1029/196 +f 537/1024/190 549/1037/201 548/1036/201 +f 549/1037/201 551/1039/202 550/1038/202 +f 551/1039/202 554/1042/239 552/1040/203 +f 551/1039/204 563/1069/205 553/1041/205 +f 557/1047/211 556/1046/210 558/1048/253 +f 562/1053/217 560/1050/214 557/1047/211 +f 552/1040/228 569/1111/227 570/1067/227 +f 574/1076/234 573/1075/233 571/1074/231 +f 560/1079/214 580/1090/243 576/1080/237 +f 554/1082/239 579/1088/242 577/1083/240 +f 552/1084/203 577/1083/240 578/1085/241 +f 553/1087/205 583/1094/246 579/1088/242 +f 562/1089/217 581/1092/245 580/1090/243 +f 568/1091/244 586/1109/252 581/1092/245 +f 561/1095/238 584/1097/208 582/1093/208 +f 584/1098/247 587/1112/247 585/1099/248 +f 580/1101/249 581/1113/249 586/1102/250 +f 586/1102/250 587/1112/247 584/1098/247 +f 579/1104/249 583/1107/251 578/1105/251 +f 582/1100/248 585/1099/248 578/1105/251 +f 585/1108/222 587/1110/222 568/1091/244 +o Magazine +v 0.312500 -3.843750 -1.312500 +v -0.312500 -3.593750 0.437500 +v -0.312500 -3.843750 -1.312500 +v 0.312500 -3.593750 0.437500 +v -0.312500 -0.218750 0.250000 +v 0.312500 -0.218750 -0.562500 +v 0.125000 -0.218750 -0.562500 +v 0.312500 -0.218750 0.250000 +v -0.312500 -0.218750 -0.562500 +v -0.125000 -0.218750 -0.562500 +v 0.125000 -0.218750 -1.437500 +v 0.125000 -0.093750 -0.687500 +v 0.125000 -0.093750 -1.437500 +v -0.125000 -0.093750 -0.687500 +v -0.125000 -0.218750 -1.437500 +v -0.125000 -0.093750 -1.437500 +v -0.187500 -0.093750 -1.437500 +v -0.312500 -0.218750 -1.437500 +v 0.187500 -0.093750 -1.437500 +v 0.312500 -0.218750 -1.437500 +v -0.187500 -0.093750 -0.687500 +v 0.187500 -0.093750 -0.687500 +vt 0.420849 0.328185 +vt 0.312741 0.289575 +vt 0.420849 0.289575 +vt 0.312741 0.328185 +vt 0.104247 0.289575 +vt 0.698842 0.328185 +vt 0.698842 0.316602 +vt 0.749035 0.328185 +vt 0.698842 0.289575 +vt 0.749035 0.289575 +vt 0.698842 0.301158 +vt 0.675676 0.316602 +vt 0.667954 0.359073 +vt 0.667954 0.316602 +vt 0.683398 0.359073 +vt 0.675676 0.316602 +vt 0.683398 0.316602 +vt 0.652510 0.297297 +vt 0.644788 0.301158 +vt 0.644788 0.289575 +vt 0.644788 0.316602 +vt 0.652510 0.320463 +vt 0.644788 0.328185 +vt 0.104247 0.328185 +vt 0.675676 0.366795 +vt 0.675676 0.366795 +vt 0.652510 0.301158 +vt 0.652510 0.316602 +vt 0.656371 0.243243 +vt 0.656371 0.289575 +vt 0.687259 0.362934 +vt 0.687259 0.316602 +vt 0.656371 0.374517 +vt 0.644788 0.382239 +vt 0.664093 0.362934 +vt 0.664093 0.316602 +vt 0.683398 0.374517 +vt 0.694981 0.374517 +vt 0.667954 0.374517 +vt 0.656371 0.374517 +vt 0.436293 0.185328 +vt 0.644788 0.185328 +vt 0.644788 0.235521 +vt 0.644788 0.432432 +vt 0.436293 0.432432 +vt 0.683398 0.362934 +vt 0.656371 0.328185 +vt 0.667954 0.362934 +vn 0.0000 -0.9899 0.1414 +vn 0.0000 0.0555 0.9985 +vn -0.0000 1.0000 0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 -0.0345 -0.9994 +vn -0.9221 0.3869 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.0000 0.8959 0.4444 +vn 0.9221 0.3869 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9847 0.1743 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.9847 0.1743 0.0000 +vn 0.0000 0.9239 0.3827 +usemtl None +s off +f 588/1114/254 589/1115/254 590/1116/254 +f 591/1117/255 592/1118/255 589/1115/255 +f 593/1119/256 594/1120/256 595/1121/256 +f 596/1122/256 592/1123/256 597/1124/256 +f 598/1125/257 599/1126/257 600/1127/257 +f 601/1128/258 602/1129/258 603/1130/258 +f 604/1131/259 602/1132/259 605/1133/259 +f 598/1134/259 606/1135/259 607/1136/259 +f 594/1120/256 592/1123/256 595/1121/256 +f 598/1134/256 597/1124/256 594/1120/256 +f 598/1134/260 607/1136/260 588/1114/260 +f 588/1114/254 591/1117/254 589/1115/254 +f 591/1117/255 595/1137/255 592/1118/255 +f 598/1125/257 594/1138/257 599/1126/257 +f 601/1128/258 597/1139/258 602/1129/258 +f 604/1131/259 603/1140/259 602/1132/259 +f 598/1134/259 600/1141/259 606/1135/259 +f 594/1120/256 597/1124/256 592/1123/256 +f 598/1134/256 602/1132/256 597/1124/256 +f 588/1114/260 590/1116/260 602/1132/260 +f 590/1116/260 605/1133/260 602/1132/260 +f 602/1132/260 598/1134/260 588/1114/260 +s 1 +f 605/1133/261 608/1142/262 604/1143/262 +f 608/1144/263 603/1130/256 604/1145/256 +f 607/1136/264 609/1146/265 593/1147/266 +f 600/1127/256 609/1148/263 606/1149/256 +f 597/1150/267 608/1144/263 596/1151/267 +f 609/1148/263 594/1152/267 593/1153/267 +f 589/1154/257 592/1155/257 596/1156/268 +f 593/1147/266 595/1157/258 591/1158/258 +f 605/1133/261 596/1156/268 608/1142/262 +f 608/1144/263 601/1159/269 603/1130/256 +f 607/1136/264 606/1160/265 609/1146/265 +f 600/1127/256 599/1161/269 609/1148/263 +f 597/1150/267 601/1159/269 608/1144/263 +f 609/1148/263 599/1161/269 594/1152/267 +f 605/1133/261 590/1116/257 596/1156/268 +f 590/1116/257 589/1154/257 596/1156/268 +f 591/1158/258 588/1114/258 593/1147/266 +f 588/1114/258 607/1136/264 593/1147/266 +o Mag_Paddle +v -0.093750 -1.307663 -1.505856 +v 0.093750 -1.477596 -1.585097 +v 0.093750 -1.307663 -1.505856 +v 0.093750 -1.451182 -1.641741 +v -0.093750 -1.281250 -1.562500 +v 0.093750 -1.281250 -1.562500 +v -0.093750 -1.477596 -1.585097 +v 0.156250 -1.734404 -1.773809 +v -0.156250 -1.734404 -1.773809 +v -0.156250 -1.507827 -1.668154 +v 0.156250 -1.534240 -1.611510 +v -0.156250 -1.534240 -1.611510 +v -0.093750 -1.451182 -1.641741 +v 0.156250 -1.507827 -1.668154 +v -0.156250 -1.760817 -1.717165 +v 0.156250 -1.760817 -1.717165 +vt 0.725869 0.664093 +vt 0.737452 0.652510 +vt 0.737452 0.664093 +vt 0.749035 0.652510 +vt 0.760618 0.664093 +vt 0.749035 0.664093 +vt 0.741313 0.652510 +vt 0.745174 0.664093 +vt 0.741313 0.664093 +vt 0.764479 0.664093 +vt 0.768340 0.652510 +vt 0.768340 0.664093 +vt 0.745174 0.633205 +vt 0.764479 0.633205 +vt 0.764479 0.648649 +vt 0.741313 0.648649 +vt 0.722008 0.648649 +vt 0.725869 0.652510 +vt 0.760618 0.652510 +vt 0.745174 0.652510 +vt 0.764479 0.652510 +vt 0.745174 0.648649 +vt 0.722008 0.633205 +vt 0.741313 0.633205 +vt 0.768340 0.648649 +vt 0.768340 0.633205 +vt 0.745174 0.629344 +vt 0.764479 0.629344 +vn 0.0000 -0.4226 0.9063 +vn 0.0000 0.4226 -0.9063 +vn 1.0000 0.0000 0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.9239 0.3468 0.1617 +vn 0.7071 0.6409 0.2988 +vn -0.7071 0.6409 0.2988 +vn -0.9239 0.3468 0.1617 +vn 0.0000 -0.9063 -0.4226 +usemtl None +s off +f 610/1162/270 611/1163/270 612/1164/270 +f 613/1165/271 614/1166/271 615/1167/271 +f 611/1168/272 615/1169/272 612/1170/272 +f 614/1171/273 616/1172/273 610/1173/273 +f 617/1174/271 618/1175/271 619/1176/271 +f 620/1177/270 611/1163/270 621/1178/270 +f 610/1162/270 616/1179/270 611/1163/270 +f 613/1165/271 622/1180/271 614/1166/271 +f 611/1168/272 613/1181/272 615/1169/272 +f 614/1171/273 622/1182/273 616/1172/273 +f 619/1176/271 622/1180/271 613/1165/271 +f 613/1165/271 623/1183/271 619/1176/271 +f 623/1183/271 617/1174/271 619/1176/271 +f 611/1163/270 616/1179/270 621/1178/270 +f 621/1178/270 624/1184/270 625/1185/270 +f 625/1185/270 620/1177/270 621/1178/270 +s 1 +f 620/1177/274 613/1181/275 611/1168/275 +f 622/1182/276 621/1186/277 616/1172/276 +f 619/1176/277 624/1187/273 621/1186/277 +f 625/1185/272 623/1183/274 620/1177/274 +f 625/1188/278 618/1175/278 617/1174/278 +f 620/1177/274 623/1183/274 613/1181/275 +f 622/1182/276 619/1176/277 621/1186/277 +f 619/1176/277 618/1175/273 624/1187/273 +f 625/1185/272 617/1174/272 623/1183/274 +f 625/1188/278 624/1189/278 618/1175/278 +o Plug +v -0.000000 0.781250 5.125000 +v -0.156250 0.625000 5.125000 +v -0.110486 0.735485 5.125000 +v 0.156250 0.625000 5.437500 +v -0.110486 0.514515 5.125000 +v -0.110486 0.514515 5.687500 +v -0.156250 0.625000 5.687500 +v 0.110486 0.735485 5.437500 +v 0.110485 0.514515 5.125000 +v -0.000000 0.468750 5.125000 +v -0.110486 0.735485 6.000000 +v -0.110486 0.514515 6.000000 +v 0.110485 0.514515 6.000000 +v 0.110486 0.735485 5.125000 +v 0.156250 0.625000 5.125000 +v 0.110486 0.735485 6.000000 +v -0.000000 0.781250 6.000000 +v -0.156250 0.625000 6.000000 +v -0.000000 0.468750 6.000000 +v 0.156250 0.625000 6.000000 +vt 0.181467 0.602317 +vt 0.193050 0.598456 +vt 0.189189 0.602317 +vt 0.208494 0.579151 +vt 0.193050 0.598456 +vt 0.193050 0.563707 +vt 0.181467 0.509652 +vt 0.189189 0.486486 +vt 0.189189 0.509652 +vt 0.204633 0.602317 +vt 0.196911 0.602317 +vt 0.177606 0.579151 +vt 0.193050 0.563707 +vt 0.194084 0.547229 +vt 0.180433 0.547229 +vt 0.180433 0.560879 +vt 0.177606 0.598456 +vt 0.208494 0.598456 +vt 0.181467 0.486486 +vt 0.194084 0.560879 +vt 0.196911 0.554054 +vt 0.187259 0.544402 +vt 0.177606 0.554054 +vt 0.187259 0.563707 +vt 0.196911 0.544402 +vt 0.196911 0.490348 +vt 0.189189 0.544402 +vt 0.173745 0.544402 +vt 0.173745 0.490348 +vt 0.189189 0.490348 +vt 0.181467 0.490348 +vt 0.181467 0.544402 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.6048 -0.2505 -0.7560 +vn 0.3827 -0.9239 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.9239 0.0000 +vn 0.6037 0.7972 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9906 -0.1368 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 1.0000 -0.0000 0.0000 +usemtl None +s off +f 626/1190/279 627/1191/279 628/1192/279 +f 629/1193/280 630/1194/280 631/1195/280 +f 629/1196/281 632/1197/281 633/1198/281 +f 630/1194/279 634/1199/279 635/1200/279 +f 627/1191/282 633/1201/282 632/1202/282 +f 636/1203/283 637/1204/283 638/1205/283 +f 626/1190/279 639/1206/279 627/1191/279 +f 629/1193/280 640/1207/280 630/1194/280 +f 629/1196/281 631/1208/281 632/1197/281 +f 630/1194/279 640/1207/279 634/1199/279 +f 627/1191/282 639/1206/282 633/1201/282 +f 641/1209/283 642/1210/283 636/1203/283 +f 636/1203/283 643/1211/283 637/1204/283 +f 637/1204/283 644/1212/283 638/1205/283 +f 638/1205/283 645/1213/283 641/1209/283 +f 641/1209/283 636/1203/283 638/1205/283 +s 1 +f 642/1214/284 633/1198/285 626/1215/284 +f 641/1216/286 629/1196/287 633/1198/285 +f 629/1196/287 638/1217/288 634/1218/288 +f 633/1198/285 639/1219/284 626/1215/284 +f 629/1196/287 634/1218/288 640/1220/288 +f 642/1214/284 641/1216/286 633/1198/285 +f 641/1216/286 645/1221/289 629/1196/287 +f 629/1196/287 645/1221/289 638/1217/288 +o Handle +v -0.034864 0.545839 5.343752 +v -0.080628 0.656323 5.218752 +v -0.034864 0.545839 5.218752 +v 0.208084 0.775912 5.343752 +v -0.080628 0.656323 5.343752 +v 0.253848 0.665427 5.593752 +v 0.253848 0.665427 5.343752 +v 0.450993 0.679438 5.656252 +v 0.427076 0.737180 5.593752 +v 0.381311 0.847665 5.593752 +v 0.357394 0.905408 5.656252 +v 0.184166 0.833655 5.968752 +v 0.357394 0.905408 6.031252 +v 0.277766 0.607685 5.968752 +v 0.450993 0.679438 6.031252 +v 0.208084 0.775912 5.593752 +v 0.184166 0.833655 5.656252 +v 0.277766 0.607685 5.656252 +v 0.080621 0.593674 5.156252 +v 0.427076 0.737180 5.343752 +v 0.323569 0.823748 5.156252 +v 0.034857 0.704159 5.156252 +v 0.381311 0.847665 5.343752 +v 0.369333 0.713263 5.156252 +vt 0.277992 0.416988 +vt 0.285714 0.409266 +vt 0.285714 0.416988 +vt 0.258687 0.409266 +vt 0.277992 0.409266 +vt 0.243243 0.416988 +vt 0.258687 0.416988 +vt 0.343629 0.420849 +vt 0.339768 0.416988 +vt 0.339768 0.409266 +vt 0.258687 0.378378 +vt 0.239382 0.389961 +vt 0.235521 0.378378 +vt 0.239382 0.436293 +vt 0.258687 0.447876 +vt 0.235521 0.447876 +vt 0.243243 0.409266 +vt 0.343629 0.405405 +vt 0.366795 0.405405 +vt 0.366795 0.420849 +vt 0.258687 0.389961 +vt 0.258687 0.436293 +vt 0.277992 0.436293 +vt 0.289575 0.424710 +vt 0.262548 0.447876 +vt 0.277992 0.447876 +vt 0.277992 0.389961 +vt 0.289575 0.382239 +vt 0.289575 0.401544 +vt 0.262548 0.378378 +vt 0.277992 0.378378 +vt 0.324324 0.416988 +vt 0.293436 0.416988 +vt 0.312741 0.409266 +vt 0.312741 0.416988 +vt 0.293436 0.409266 +vt 0.324324 0.409266 +vt 0.239382 0.405405 +vt 0.239382 0.420849 +vt 0.262548 0.389961 +vt 0.262548 0.436293 +vt 0.220077 0.420849 +vt 0.220077 0.405405 +vt 0.208494 0.420849 +vt 0.289575 0.444015 +vt 0.208494 0.405405 +vn -0.9239 -0.3827 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.3536 -0.8536 -0.3827 +vn -0.3536 0.8535 -0.3827 +vn 0.9119 0.3777 -0.1602 +vn -0.2123 -0.0879 -0.9732 +vn -0.0000 0.0000 -1.0000 +vn -0.4132 -0.1711 -0.8944 +vn 0.8765 0.3630 -0.3162 +vn -0.2706 0.6533 -0.7071 +vn -0.3535 0.8536 -0.3827 +vn -0.3536 0.8536 -0.3827 +vn 0.2706 -0.6533 -0.7071 +vn -0.7495 -0.3104 0.5847 +vn -0.2922 -0.1210 0.9487 +usemtl None +s off +f 646/1222/290 647/1223/290 648/1224/290 +f 646/1222/291 649/1225/291 650/1226/291 +f 651/1227/290 649/1225/290 652/1228/290 +f 653/1229/292 654/1230/292 655/1231/292 +f 656/1232/293 657/1233/293 658/1234/293 +f 659/1235/294 653/1236/294 660/1237/294 +f 646/1222/290 650/1226/290 647/1223/290 +f 646/1222/291 652/1228/291 649/1225/291 +f 651/1227/290 661/1238/290 649/1225/290 +f 655/1231/292 656/1239/292 653/1229/292 +f 656/1239/292 658/1240/292 653/1229/292 +f 658/1240/292 660/1241/292 653/1229/292 +f 656/1232/293 662/1242/293 657/1233/293 +f 659/1235/294 663/1243/294 653/1236/294 +s 1 +f 652/1244/294 646/1222/294 664/1245/294 +f 654/1246/295 652/1244/294 665/1247/294 +f 649/1248/293 666/1249/293 667/1250/293 +f 649/1248/293 655/1251/296 668/1252/293 +f 665/1253/297 655/1231/292 654/1230/292 +f 664/1254/298 666/1255/299 669/1256/299 +f 648/1224/300 667/1257/298 664/1254/298 +f 669/1256/301 668/1258/297 665/1253/297 +f 662/1259/290 651/1227/290 663/1260/290 +f 662/1242/302 655/1251/303 661/1261/304 +f 654/1246/295 663/1243/305 651/1262/295 +f 662/1259/290 659/1263/306 657/1264/306 +f 660/1265/307 657/1264/306 659/1263/306 +f 646/1222/294 648/1224/294 664/1245/294 +f 664/1245/294 669/1266/294 652/1244/294 +f 669/1266/294 665/1247/294 652/1244/294 +f 654/1246/295 651/1262/295 652/1244/294 +f 667/1250/293 647/1223/293 650/1226/293 +f 649/1248/293 668/1252/293 666/1249/293 +f 667/1250/293 650/1226/293 649/1248/293 +f 649/1248/293 661/1261/296 655/1251/296 +f 665/1253/297 668/1258/297 655/1231/292 +f 664/1254/298 667/1257/298 666/1255/299 +f 648/1224/300 647/1223/300 667/1257/298 +f 669/1256/301 666/1255/301 668/1258/297 +f 662/1259/290 661/1238/290 651/1227/290 +f 662/1242/302 656/1232/302 655/1251/296 +f 654/1246/295 653/1236/305 663/1243/305 +f 662/1259/290 663/1260/290 659/1263/306 +f 660/1265/307 658/1267/307 657/1264/306 +o Guide_And_Bolt +v 0.093750 0.468750 0.125000 +v -0.156250 0.625000 0.125000 +v -0.093750 0.468750 0.125000 +v 0.281250 0.343750 0.125000 +v -0.281250 0.343750 0.125000 +v -0.218750 0.093750 0.125000 +v -0.093750 0.218750 0.125000 +v -0.343750 0.218750 0.125000 +v 0.218750 0.093750 0.125000 +v 0.343750 0.218750 0.125000 +v 0.093750 0.218750 0.125000 +v -0.093750 0.468750 -1.750000 +v 0.093750 0.218750 0.875000 +v -0.218750 0.093750 0.875000 +v -0.343750 0.218750 -1.750000 +v -0.093750 0.218750 0.875000 +v -0.281250 0.343750 -1.750000 +v -0.218750 -0.093750 0.875000 +v 0.093750 -0.218750 0.875000 +v -0.000000 0.468750 5.125000 +v -0.110486 0.514515 0.125000 +v -0.000000 0.468750 0.125000 +v -0.000000 0.781250 5.125000 +v 0.110486 0.735485 0.125000 +v -0.000000 0.781250 0.125000 +v 0.110485 0.514515 5.125000 +v 0.110485 0.514515 0.125000 +v -0.110486 0.514515 5.125000 +v 0.110486 0.735485 5.125000 +v 0.156250 0.625000 0.125000 +v -0.156250 0.625000 5.125000 +v -0.156250 0.625000 -1.750000 +v 0.218750 0.093750 0.875000 +v -0.093750 -0.218750 0.875000 +v 0.218750 -0.093750 0.875000 +v 0.156250 0.625000 5.125000 +v -0.110486 0.735485 5.125000 +vt 0.347490 0.509652 +vt 0.335907 0.494208 +vt 0.347490 0.498069 +vt 0.355212 0.521236 +vt 0.355212 0.486486 +vt 0.370656 0.490348 +vt 0.362934 0.498069 +vt 0.362934 0.482625 +vt 0.370656 0.517375 +vt 0.362934 0.525097 +vt 0.362934 0.509652 +vt 0.335907 0.517375 +vt 0.220077 0.505791 +vt 0.335907 0.505791 +vt 0.262548 0.471042 +vt 0.208494 0.482625 +vt 0.208494 0.471042 +vt 0.262548 0.447876 +vt 0.208494 0.459459 +vt 0.208494 0.447876 +vt 0.335907 0.490348 +vt 0.220077 0.482625 +vt 0.335907 0.482625 +vt 0.262548 0.459459 +vt 0.220077 0.490348 +vt 0.270270 0.474903 +vt 0.262548 0.455598 +vt 0.281853 0.447876 +vt 0.598456 0.440154 +vt 0.289575 0.447876 +vt 0.289575 0.440154 +vt 0.289575 0.471042 +vt 0.598456 0.463320 +vt 0.598456 0.471042 +vt 0.598456 0.432432 +vt 0.289575 0.432432 +vt 0.598456 0.447876 +vt 0.289575 0.455598 +vt 0.289575 0.463320 +vt 0.598456 0.455598 +vt 0.598456 0.461390 +vt 0.608108 0.451737 +vt 0.617761 0.461390 +vt 0.335907 0.513514 +vt 0.220077 0.517375 +vt 0.262548 0.482625 +vt 0.262548 0.467181 +vt 0.270270 0.447876 +vt 0.289575 0.455598 +vt 0.289575 0.467181 +vt 0.281853 0.474903 +vt 0.598456 0.455598 +vt 0.289575 0.455598 +vt 0.614933 0.468215 +vt 0.608108 0.471042 +vt 0.601283 0.468215 +vt 0.601283 0.454565 +vt 0.614933 0.454565 +vn -0.0000 0.0000 1.0000 +vn -0.9285 -0.3714 -0.0000 +vn -0.9550 0.2966 -0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.7497 0.6618 -0.0000 +vn -0.8944 0.4472 -0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.0000 0.0000 -1.0000 +usemtl None +s 1 +f 670/1268/308 671/1269/308 672/1270/308 +f 673/1271/308 672/1270/308 674/1272/308 +f 675/1273/308 676/1274/308 677/1275/308 +f 678/1276/308 679/1277/308 680/1278/308 +f 680/1278/308 679/1277/308 673/1271/308 +f 671/1279/309 681/1280/310 672/1281/310 +f 682/1282/311 678/1283/312 680/1284/311 +f 683/1285/313 676/1286/314 675/1287/313 +f 674/1288/315 684/1289/316 677/1290/316 +f 685/1291/314 680/1284/311 676/1286/314 +f 672/1281/310 686/1292/315 674/1288/315 +f 685/1293/308 687/1294/308 688/1295/308 +f 689/1296/317 690/1297/318 691/1298/317 +f 692/1299/311 693/1300/312 694/1301/311 +f 695/1302/319 691/1298/317 696/1303/319 +f 697/1304/318 671/1305/320 690/1297/318 +f 698/1306/312 699/1307/321 693/1300/312 +f 689/1308/322 700/1309/322 692/1310/322 +f 670/1268/308 699/1311/308 671/1269/308 +f 673/1271/308 670/1268/308 672/1270/308 +f 673/1271/308 674/1272/308 676/1274/308 +f 674/1272/308 677/1275/308 676/1274/308 +f 676/1274/308 680/1278/308 673/1271/308 +f 671/1279/309 701/1312/309 681/1280/310 +f 682/1282/311 702/1313/312 678/1283/312 +f 683/1285/313 685/1291/314 676/1286/314 +f 674/1288/315 686/1292/315 684/1289/316 +f 685/1291/314 682/1282/311 680/1284/311 +f 672/1281/310 681/1280/310 686/1292/315 +f 685/1293/308 683/1314/308 687/1294/308 +f 687/1294/308 703/1315/308 688/1295/308 +f 688/1295/308 704/1316/308 702/1317/308 +f 702/1317/308 682/1318/308 688/1295/308 +f 682/1318/308 685/1293/308 688/1295/308 +f 689/1296/317 697/1304/318 690/1297/318 +f 692/1299/311 698/1306/312 693/1300/312 +f 695/1302/319 689/1296/317 691/1298/317 +f 697/1304/318 700/1319/320 671/1305/320 +f 698/1306/312 705/1320/321 699/1307/321 +f 692/1310/322 698/1321/322 705/1322/322 +f 705/1322/322 695/1323/322 692/1310/322 +f 695/1323/322 689/1308/322 692/1310/322 +f 689/1308/322 697/1324/322 700/1309/322 +f 700/1309/322 706/1325/322 692/1310/322 +o Bullet +v 0.099841 -0.175376 -0.129965 +v 0.070825 -0.251737 -0.248711 +v 0.099231 -0.186101 -0.254503 +v 0.004758 -0.267392 -0.121575 +v -0.061742 -0.249788 -0.248230 +v 0.004148 -0.278117 -0.246113 +v -0.087637 -0.172620 -0.129284 +v -0.059841 -0.117709 -0.259614 +v -0.088247 -0.183345 -0.253822 +v 0.007446 -0.080604 -0.137674 +v 0.072726 -0.119658 -0.260095 +v 0.006836 -0.091329 -0.262212 +v 0.071436 -0.241012 -0.124174 +v -0.061132 -0.239063 -0.123692 +v -0.059231 -0.106984 -0.135076 +v 0.073336 -0.108933 -0.135558 +v 0.050573 -0.202586 0.060816 +v -0.037805 -0.201287 0.061137 +v -0.036538 -0.113234 0.053547 +v 0.051840 -0.114534 0.053226 +v 0.069510 -0.158829 0.056954 +v -0.055475 -0.156991 0.057409 +v 0.007913 -0.095648 0.051815 +v 0.007628 -0.147185 0.181719 +v 0.006122 -0.220173 0.062548 +v -0.108395 -0.325341 -0.617887 +v -0.156232 -0.278953 -1.374432 +v -0.112057 -0.389692 -1.365112 +v -0.105228 -0.105209 -0.636860 +v 0.002240 -0.125593 -1.388416 +v -0.108889 -0.169560 -1.384085 +v 0.115718 -0.108457 -0.637663 +v 0.156232 -0.283547 -1.375568 +v 0.112057 -0.172808 -1.384888 +v 0.159893 -0.219196 -0.628343 +v 0.108889 -0.392940 -1.365915 +v 0.001422 -0.372556 -0.614359 +v -0.002240 -0.436907 -1.361584 +v -0.152571 -0.214602 -0.627207 +v 0.005901 -0.061242 -0.641191 +v 0.112550 -0.328589 -0.618690 +v 0.007284 -0.060198 -0.264895 +v -0.082840 -0.116821 -0.510506 +v -0.081619 -0.095371 -0.261431 +v 0.130478 -0.186561 -0.254616 +v 0.093917 -0.119420 -0.511148 +v 0.095137 -0.097970 -0.262073 +v 0.092603 -0.274075 -0.246894 +v 0.129257 -0.208011 -0.503692 +v -0.084153 -0.271477 -0.246252 +v 0.002480 -0.330699 -0.492504 +v 0.003700 -0.309249 -0.243429 +v -0.120714 -0.204336 -0.502783 +v -0.119494 -0.182886 -0.253708 +v 0.006063 -0.081648 -0.513970 +v 0.091383 -0.295526 -0.495969 +v -0.085374 -0.292927 -0.495327 +vt 0.776062 0.513514 +vt 0.772201 0.505791 +vt 0.776062 0.505791 +vt 0.799228 0.513514 +vt 0.795367 0.505791 +vt 0.799228 0.505791 +vt 0.791506 0.513514 +vt 0.787645 0.505791 +vt 0.791506 0.505791 +vt 0.783784 0.513514 +vt 0.779923 0.505791 +vt 0.783784 0.505791 +vt 0.772201 0.513514 +vt 0.768340 0.505791 +vt 0.795367 0.513514 +vt 0.787645 0.513514 +vt 0.779923 0.513514 +vt 0.772201 0.525097 +vt 0.768340 0.513514 +vt 0.795367 0.525097 +vt 0.787645 0.525097 +vt 0.779923 0.525097 +vt 0.776062 0.525097 +vt 0.791506 0.525097 +vt 0.783784 0.525097 +vt 0.774131 0.532819 +vt 0.781853 0.532819 +vt 0.785714 0.532819 +vt 0.793436 0.532819 +vt 0.768340 0.525097 +vt 0.770270 0.532819 +vt 0.777992 0.532819 +vt 0.789575 0.532819 +vt 0.799228 0.525097 +vt 0.797297 0.532819 +vt 0.745174 0.494208 +vt 0.698842 0.501930 +vt 0.698842 0.494208 +vt 0.745174 0.509652 +vt 0.698842 0.517375 +vt 0.698842 0.509652 +vt 0.745174 0.525097 +vt 0.698842 0.532819 +vt 0.698842 0.525097 +vt 0.745174 0.532819 +vt 0.698842 0.540541 +vt 0.745174 0.486486 +vt 0.698842 0.486486 +vt 0.745174 0.501930 +vt 0.745174 0.517375 +vt 0.745174 0.540541 +vt 0.698842 0.548263 +vt 0.768340 0.517375 +vt 0.752896 0.509652 +vt 0.768340 0.509652 +vt 0.768340 0.532819 +vt 0.752896 0.525097 +vt 0.768340 0.525097 +vt 0.768340 0.540541 +vt 0.752896 0.532819 +vt 0.768340 0.494208 +vt 0.752896 0.486486 +vt 0.768340 0.486486 +vt 0.752896 0.501930 +vt 0.768340 0.501930 +vt 0.752896 0.517375 +vt 0.768340 0.548263 +vt 0.752896 0.540541 +vt 0.752896 0.494208 +vt 0.752896 0.494981 +vt 0.752896 0.501158 +vt 0.752896 0.502703 +vt 0.752896 0.508880 +vt 0.752896 0.516602 +vt 0.752896 0.524324 +vt 0.752896 0.525869 +vt 0.752896 0.532046 +vt 0.752896 0.539768 +vt 0.752896 0.547490 +vt 0.745174 0.548263 +vt 0.752896 0.493436 +vt 0.795367 0.501930 +vt 0.787645 0.494208 +vt 0.795367 0.486486 +vt 0.777992 0.486486 +vt 0.768340 0.496139 +vt 0.777992 0.505791 +vt 0.752896 0.548263 +vt 0.752896 0.510425 +vt 0.752896 0.518147 +vt 0.752896 0.533591 +vt 0.752896 0.541313 +vt 0.752896 0.487259 +vt 0.803089 0.494208 +vt 0.800827 0.499669 +vt 0.789907 0.499669 +vt 0.789907 0.488748 +vt 0.800827 0.488748 +vt 0.784818 0.502964 +vt 0.787645 0.496139 +vt 0.784818 0.489314 +vt 0.771167 0.489314 +vt 0.771167 0.502964 +vn 0.9970 -0.0077 0.0770 +vn 0.6969 -0.7148 0.0581 +vn 0.9999 -0.0147 -0.0036 +vn -0.0139 -0.9860 0.1662 +vn -0.7172 -0.6940 0.0633 +vn -0.0143 -0.9962 0.0859 +vn -0.9962 0.0216 0.0842 +vn -0.6969 0.7148 -0.0581 +vn -0.9999 0.0147 0.0036 +vn 0.0147 0.9999 -0.0050 +vn 0.7172 0.6940 -0.0633 +vn 0.0143 0.9962 -0.0859 +vn 0.6950 -0.7055 0.1385 +vn -0.7144 -0.6848 0.1437 +vn -0.6942 0.7194 0.0226 +vn 0.7152 0.6987 0.0175 +vn 0.6665 -0.6564 0.3534 +vn -0.6829 -0.6366 0.3583 +vn -0.6635 0.7078 0.2425 +vn 0.6858 0.6879 0.2376 +vn 0.9556 0.0116 0.2945 +vn -0.9527 0.0397 0.3014 +vn 0.0151 0.9763 0.2160 +vn 0.0049 0.0858 0.9963 +vn -0.0122 -0.9250 0.3799 +vn -0.7115 -0.6789 0.1811 +vn -0.6914 0.7199 0.0605 +vn 0.7127 0.6993 0.0554 +vn 0.9934 -0.0044 0.1147 +vn -0.0137 -0.9790 0.2035 +vn -0.9922 0.0248 0.1219 +vn 0.0148 0.9993 0.0330 +vn 0.6925 -0.6996 0.1760 +vn -0.6907 0.7199 0.0678 +vn 0.7121 0.6993 0.0627 +vn 0.9925 -0.0038 0.1219 +vn -0.0136 -0.9775 0.2107 +vn -0.9913 0.0254 0.1291 +vn 0.0148 0.9991 0.0403 +vn 0.6920 -0.6983 0.1832 +vn -0.7108 -0.6777 0.1883 +vn -0.0049 -0.0858 -0.9963 +usemtl None +s 1 +f 707/1326/323 708/1327/324 709/1328/325 +f 710/1329/326 711/1330/327 712/1331/328 +f 713/1332/329 714/1333/330 715/1334/331 +f 716/1335/332 717/1336/333 718/1337/334 +f 719/1338/335 712/1339/328 708/1327/324 +f 720/1340/336 715/1334/331 711/1330/327 +f 721/1341/337 718/1337/334 714/1333/330 +f 722/1342/338 709/1328/325 717/1336/333 +f 723/1343/339 710/1344/326 719/1338/335 +f 724/1345/340 713/1332/329 720/1340/336 +f 725/1346/341 716/1335/332 721/1341/337 +f 726/1347/342 707/1326/323 722/1342/338 +f 727/1348/343 719/1338/335 707/1326/323 +f 710/1329/326 724/1345/340 720/1340/336 +f 728/1349/344 721/1341/337 713/1332/329 +f 729/1350/345 722/1342/338 716/1335/332 +f 723/1343/339 727/1348/343 730/1351/346 +f 726/1347/342 729/1350/345 730/1352/346 +f 729/1350/345 725/1346/341 730/1353/346 +f 728/1349/344 724/1345/340 730/1354/346 +f 731/1355/347 723/1343/339 730/1356/346 +f 727/1348/343 726/1347/342 730/1357/346 +f 725/1346/341 728/1349/344 730/1358/346 +f 724/1345/340 731/1359/347 730/1360/346 +f 732/1361/348 733/1362/331 734/1363/327 +f 735/1364/349 736/1365/334 737/1366/330 +f 738/1367/350 739/1368/325 740/1369/333 +f 741/1370/351 742/1371/324 739/1368/325 +f 743/1372/352 734/1363/327 744/1373/328 +f 745/1374/353 737/1366/330 733/1362/331 +f 746/1375/354 740/1369/333 736/1365/334 +f 747/1376/355 744/1377/328 742/1371/324 +f 748/1378/334 749/1379/356 750/1380/330 +f 751/1381/325 752/1382/357 753/1383/333 +f 754/1384/324 755/1385/358 751/1381/325 +f 756/1386/327 757/1387/359 758/1388/328 +f 750/1380/330 759/1389/360 760/1390/331 +f 753/1383/333 761/1391/361 748/1378/334 +f 758/1392/328 762/1393/362 754/1384/324 +f 760/1390/331 763/1394/363 756/1386/327 +f 745/1374/353 763/1395/363 759/1396/360 +f 735/1364/349 759/1397/360 749/1398/356 +f 735/1364/349 761/1399/361 746/1375/354 +f 746/1375/354 752/1400/357 738/1367/350 +f 741/1370/351 752/1401/357 755/1402/358 +f 741/1370/351 762/1403/362 747/1376/355 +f 747/1376/355 757/1404/359 743/1405/352 +f 743/1372/352 763/1406/363 732/1361/348 +f 748/1407/346 760/1408/346 758/1409/346 +f 744/1410/364 733/1411/364 736/1412/364 +f 707/1326/323 719/1338/335 708/1327/324 +f 710/1329/326 720/1340/336 711/1330/327 +f 713/1332/329 721/1341/337 714/1333/330 +f 716/1335/332 722/1342/338 717/1336/333 +f 719/1338/335 710/1344/326 712/1339/328 +f 720/1340/336 713/1332/329 715/1334/331 +f 721/1341/337 716/1335/332 718/1337/334 +f 722/1342/338 707/1326/323 709/1328/325 +f 723/1343/339 731/1355/347 710/1344/326 +f 724/1345/340 728/1349/344 713/1332/329 +f 725/1346/341 729/1350/345 716/1335/332 +f 726/1347/342 727/1348/343 707/1326/323 +f 727/1348/343 723/1343/339 719/1338/335 +f 710/1329/326 731/1359/347 724/1345/340 +f 728/1349/344 725/1346/341 721/1341/337 +f 729/1350/345 726/1347/342 722/1342/338 +f 732/1361/348 745/1374/353 733/1362/331 +f 735/1364/349 746/1375/354 736/1365/334 +f 738/1367/350 741/1370/351 739/1368/325 +f 741/1370/351 747/1376/355 742/1371/324 +f 743/1372/352 732/1361/348 734/1363/327 +f 745/1374/353 735/1364/349 737/1366/330 +f 746/1375/354 738/1367/350 740/1369/333 +f 747/1376/355 743/1405/352 744/1377/328 +f 748/1378/334 761/1391/361 749/1379/356 +f 751/1381/325 755/1385/358 752/1382/357 +f 754/1384/324 762/1393/362 755/1385/358 +f 756/1386/327 763/1394/363 757/1387/359 +f 750/1380/330 749/1379/356 759/1389/360 +f 753/1383/333 752/1382/357 761/1391/361 +f 758/1392/328 757/1413/359 762/1393/362 +f 760/1390/331 759/1389/360 763/1394/363 +f 745/1374/353 732/1361/348 763/1395/363 +f 735/1364/349 745/1374/353 759/1397/360 +f 735/1364/349 749/1414/356 761/1399/361 +f 746/1375/354 761/1415/361 752/1400/357 +f 741/1370/351 738/1367/350 752/1401/357 +f 741/1370/351 755/1416/358 762/1403/362 +f 747/1376/355 762/1417/362 757/1404/359 +f 743/1372/352 757/1418/359 763/1406/363 +f 751/1419/346 753/1420/346 748/1407/346 +f 748/1407/346 750/1421/346 760/1408/346 +f 760/1408/346 756/1422/346 758/1409/346 +f 758/1409/346 754/1423/346 751/1419/346 +f 751/1419/346 748/1407/346 758/1409/346 +f 736/1412/364 740/1424/364 739/1425/364 +f 739/1425/364 742/1426/364 744/1410/364 +f 744/1410/364 734/1427/364 733/1411/364 +f 733/1411/364 737/1428/364 736/1412/364 +f 736/1412/364 739/1425/364 744/1410/364 +o Rifle +v -0.375000 -0.656250 0.375000 +v 0.375000 -0.281250 0.375000 +v -0.375000 -0.281250 0.375000 +v 0.375000 -0.281250 -1.750000 +v 0.375000 -0.656250 0.375000 +v 0.375000 -1.343750 -1.500000 +v -0.375000 -0.281250 -1.750000 +v -0.375000 -1.343750 -1.500000 +v 0.281250 -1.343750 -1.750000 +v -0.281250 -1.343750 -1.500000 +v -0.281250 -1.343750 -1.750000 +v -0.281250 -0.375001 -1.727942 +v -0.281250 -0.906250 -1.937500 +v 0.281250 -0.906250 -1.937500 +v 0.281250 -0.375001 -1.727942 +v 0.281250 -1.343750 -1.500000 +v 0.468750 -0.906253 -1.643382 +v 0.468750 -0.593753 -1.125000 +v 0.468750 -0.906253 -1.125000 +v 0.343750 -0.906253 -1.643382 +v 0.468750 -0.593753 -1.716910 +v 0.343750 -0.906253 -1.750000 +v 0.343750 -0.860489 -1.860485 +v 0.343750 -0.750003 -1.906250 +v 0.343750 -0.593753 -1.716911 +v 0.281250 -0.906253 -1.125000 +v 0.281250 -0.593753 -1.125000 +v -0.156250 0.625000 -1.750000 +v -0.218750 0.625000 0.125000 +v -0.218750 0.625000 -1.750000 +v 0.156250 0.625000 -6.250000 +v -0.156250 0.625000 -6.250000 +v 0.110486 0.735485 5.375000 +v 0.209597 0.647097 5.375000 +v 0.156250 0.625000 5.375000 +v -0.110486 0.735485 1.812500 +v -0.000000 0.781250 1.875000 +v -0.000000 0.781250 2.062500 +v 0.110486 0.735485 2.062500 +v 0.163832 0.757582 5.375000 +v 0.154680 0.779680 2.062500 +v 0.163832 0.757582 2.062500 +v 0.022097 0.834597 2.062500 +v 0.022097 0.834597 1.875000 +v 0.156250 0.625000 1.875000 +v -0.110486 0.514515 1.812500 +v -0.000000 0.468750 1.812500 +v 0.110485 0.514515 1.812500 +v 0.110486 0.735485 1.875000 +v 0.209597 0.647097 1.875000 +v 0.154680 0.779680 1.875000 +v -0.156250 0.625000 6.000000 +v -0.000000 0.781250 6.000000 +v 0.156250 0.625000 6.000000 +v 0.198874 0.426126 9.125000 +v -0.198874 0.198874 9.125000 +v 0.198874 0.198874 9.125000 +v 0.281250 0.000000 9.125000 +v -0.198874 -0.198874 9.125000 +v 0.218750 -0.281250 0.250000 +v 0.093750 -0.218750 0.250000 +v 0.218750 -0.093750 0.250000 +v -0.218750 -0.093750 0.250000 +v -0.093750 -0.218750 0.250000 +v -0.218750 -0.281250 0.250000 +v -0.218750 -0.281250 -1.437500 +v 0.218750 -0.281250 -1.437500 +v -0.218750 -0.093750 -1.437500 +v 0.218750 -0.093750 -1.437500 +v 0.093750 -0.218750 -1.437500 +v -0.093750 -0.218750 -1.437500 +v 0.187500 -1.906250 -2.375000 +v 0.187500 -1.343750 -2.312500 +v 0.187500 -1.906250 -2.312500 +v 0.187500 -2.093750 -2.375000 +v 0.187500 -2.156250 -2.500000 +v 0.187500 -2.218750 -2.500000 +v 0.187500 -2.218750 -2.687500 +v 0.187500 -2.281250 -2.687500 +v 0.187500 -2.218750 -3.437500 +v 0.187500 -2.281250 -3.437500 +v 0.187500 -1.906250 -4.000000 +v -0.187500 -2.218750 -3.437500 +v -0.187500 -1.906250 -4.000000 +v -0.187500 -2.281250 -3.437500 +v -0.187500 -2.218750 -2.687500 +v -0.187500 -2.281250 -2.687500 +v -0.187500 -2.218750 -2.500000 +v -0.187500 -2.156250 -2.500000 +v -0.187500 -2.093750 -2.375000 +v -0.187500 -2.093750 -2.437500 +v -0.187500 -1.906250 -2.375000 +v -0.187500 -1.906250 -2.312500 +v -0.187500 -1.343750 -2.312500 +v -0.187500 -1.343750 -2.375000 +v -0.031250 1.031250 9.000000 +v 0.031250 1.187500 9.000000 +v -0.031250 1.187500 9.000000 +v -0.031250 1.187500 8.937500 +v 0.093750 0.968750 9.000000 +v 0.031250 1.031250 9.000000 +v 0.031250 1.187500 8.937500 +v -0.031250 1.031250 8.937500 +v 0.031250 1.031250 8.937500 +v -0.093750 0.968750 8.937500 +v -0.093750 0.968750 9.000000 +v 0.093750 0.968750 8.937500 +v 0.156250 1.187500 -5.187500 +v 0.156250 0.875000 -5.437500 +v 0.156250 1.187500 -5.312500 +v -0.156250 1.187500 -5.187500 +v -0.156250 0.875000 -5.437500 +v -0.156250 0.875000 -5.062500 +v 0.156250 0.750000 -5.062500 +v 0.156250 0.875000 -5.062500 +v -0.156250 0.750000 -5.062500 +v 0.156250 1.231694 -5.294194 +v 0.156250 1.250000 -5.250000 +v -0.156250 1.250000 -5.250000 +v -0.156250 1.187500 -5.312500 +v -0.125000 1.187500 -5.312500 +v -0.125000 1.231694 -5.294194 +v -0.125000 1.250000 -5.250000 +v 0.125000 1.187500 -5.187500 +v 0.125000 1.231694 -5.205806 +v 0.125000 1.250000 -5.250000 +v -0.125000 1.187500 -5.187500 +v -0.125000 0.875000 -5.437500 +v 0.125000 1.187500 -5.312500 +v 0.125000 0.875000 -5.062500 +v 0.125000 0.875000 -5.437500 +v 0.156250 0.750000 -5.437500 +v -0.125000 0.875000 -5.062500 +v 0.125000 1.250000 -5.281250 +v 0.062500 1.250000 -5.218750 +v 0.125000 1.250000 -5.218750 +v -0.125000 1.250000 -5.281250 +v -0.062500 1.250000 -5.218750 +v -0.062500 1.250000 -5.281250 +v 0.062500 1.187500 -5.281250 +v 0.125000 0.875000 -5.281250 +v -0.062500 1.187500 -5.281250 +v 0.000000 1.125000 -5.281250 +v -0.125000 0.875000 -5.281250 +v 0.022097 0.915403 -5.281250 +v 0.031250 0.937500 -5.281250 +v -0.031250 0.937500 -5.281250 +v -0.022097 0.915403 -5.281250 +v 0.000000 0.906250 -5.281250 +v 0.000000 0.968750 -5.281250 +v 0.022097 0.959597 -5.281250 +v -0.022097 0.959597 -5.281250 +v -0.125000 1.062500 -5.218750 +v 0.125000 1.062500 -5.156250 +v 0.125000 1.062500 -5.218750 +v -0.062500 1.062500 -5.093750 +v -0.125000 1.062500 -5.156250 +v 0.062500 1.187500 -5.218750 +v -0.125000 1.250000 -5.218750 +v -0.062500 1.187500 -5.218750 +v 0.000000 1.125000 -5.218750 +v -0.125000 1.000000 -5.156250 +v 0.062500 1.000000 -5.093750 +v -0.062500 1.000000 -5.093750 +v 0.125000 1.000000 -5.218750 +v 0.125000 1.000000 -5.156250 +v 0.125000 0.875000 -5.218750 +v 0.000000 0.906250 -5.218750 +v -0.125000 0.875000 -5.218750 +v -0.125000 1.000000 -5.218750 +v 0.000000 0.968750 -5.218750 +v 0.022097 0.959597 -5.218750 +v 0.022097 0.915403 -5.218750 +v -0.022097 0.915403 -5.218750 +v -0.022097 0.959597 -5.218750 +v -0.031250 0.937500 -5.218750 +v 0.031250 0.937500 -5.218750 +v -0.093750 0.843750 -5.062500 +v 0.093750 0.843750 -4.750000 +v 0.093750 0.843750 -5.062500 +v -0.093750 0.843750 -4.750000 +v 0.031250 0.875000 -4.750000 +v -0.093750 0.781250 -4.687500 +v 0.093750 0.781250 -4.687500 +v 0.031250 0.875000 -4.687500 +v 0.093750 0.781250 -5.062500 +v -0.093750 0.843750 -4.687500 +v -0.281250 -0.375001 -1.937500 +v 0.281250 -0.375001 -1.937500 +v 0.343750 -0.639518 -1.860485 +v 0.343750 -0.593753 -1.750000 +v 0.281250 -0.593753 -1.750000 +v 0.281250 -0.906253 -1.750000 +v 0.156250 0.625000 0.125000 +v -0.110486 0.735485 6.000000 +v -0.000000 0.781250 1.812500 +v 0.156250 0.625000 1.812500 +v 0.110486 0.735485 1.812500 +v -0.156250 0.625000 1.812500 +v 0.110486 0.735485 6.000000 +v 0.110485 0.514515 6.000000 +v -0.000000 0.468750 6.000000 +v -0.110486 0.514515 6.000000 +v -0.198874 0.426126 9.125000 +v -0.281250 -0.000000 9.125000 +v -0.000000 -0.281250 9.125000 +v 0.198874 -0.198874 9.125000 +v 0.187500 -1.343750 -2.375000 +v 0.187500 -2.093750 -2.437500 +v 0.187500 -1.843750 -4.000000 +v -0.187500 -1.843750 -4.000000 +v -0.156250 0.750000 -5.437500 +v 0.156250 1.231694 -5.205806 +v -0.156250 1.231694 -5.205806 +v -0.156250 1.231694 -5.294194 +v -0.125000 1.231694 -5.205806 +v 0.125000 1.231694 -5.294194 +v 0.062500 1.250000 -5.281250 +v 0.062500 1.062500 -5.093750 +v -0.031250 0.875000 -4.750000 +v 0.093750 0.843750 -4.687500 +v -0.031250 0.875000 -4.687500 +v -0.093750 0.781250 -5.062500 +v -0.343750 -0.343750 2.000000 +v -0.093750 -0.468750 -6.625000 +v -0.093750 -0.468750 2.000000 +v 0.154680 0.470320 2.000000 +v 0.343750 0.343750 -6.250000 +v 0.154680 0.470320 -6.250000 +v 0.468750 -0.093750 0.125000 +v 0.468750 -0.031250 0.187500 +v 0.468750 -0.093750 2.000000 +v -0.468750 -0.093750 0.125000 +v -0.468750 -0.093750 -6.187500 +v -0.343750 -0.343750 -6.625000 +v 0.093750 -0.468750 -6.625000 +v 0.343750 -0.343750 2.000000 +v 0.093750 -0.468750 2.000000 +v 0.468750 -0.093750 -6.187500 +v 0.343750 -0.343750 -6.625000 +v 0.468750 0.093750 2.000000 +v 0.468750 0.093750 0.187500 +v -0.468750 -0.031250 0.187500 +v -0.468750 -0.093750 2.000000 +v -0.406250 -0.093750 -6.187500 +v -0.468750 0.093750 0.187500 +v -0.406250 -0.031250 0.187500 +v -0.437500 0.156250 -6.187500 +v -0.406250 0.093750 -6.250000 +v -0.406250 0.156250 -6.187500 +v -0.406250 0.156250 0.125000 +v -0.437500 0.156250 0.125000 +v -0.406250 0.093750 0.187500 +v -0.406250 -0.093750 0.125000 +v -0.406250 -0.031250 -6.250000 +v -0.468750 0.093750 -6.250000 +v -0.468750 -0.031250 -6.250000 +v -0.468750 0.093750 -6.625000 +v -0.468750 -0.093750 -6.625000 +v -0.343750 0.343750 2.000000 +v -0.154680 0.470320 0.125000 +v -0.343750 0.343750 0.125000 +v -0.343750 0.343750 -6.250000 +v -0.154680 0.470320 -1.750000 +v -0.154680 0.470320 -6.250000 +v -0.406250 0.218750 0.125000 +v -0.343750 0.343750 -1.750000 +v -0.406250 0.218750 -1.750000 +v -0.468750 0.093750 2.000000 +v 0.343750 -1.343750 -4.250000 +v -0.343750 -1.343750 -1.750000 +v -0.343750 -1.343750 -4.250000 +v 0.343750 -0.760617 -4.593750 +v -0.343750 -0.875000 -4.479367 +v -0.343750 -0.760617 -4.593750 +v 0.343750 -0.718750 -4.750000 +v -0.343750 -0.718750 -4.750000 +v 0.343750 -1.218750 -4.437500 +v -0.343750 -1.307138 -4.382583 +v -0.343750 -1.218750 -4.437500 +v 0.343750 -0.718750 -6.625000 +v -0.343750 -0.718750 -6.625000 +v 0.343750 -0.875000 -4.479367 +v -0.343750 -1.031250 -4.437500 +v 0.343750 -1.031250 -4.437500 +v 0.343750 -1.307138 -4.382583 +v -0.343750 -0.343750 -1.937500 +v 0.343750 -1.031253 -1.750000 +v -0.343750 -0.906253 -1.937500 +v -0.343750 -1.031253 -1.750000 +v 0.343750 -1.187503 -1.593750 +v -0.343750 -1.077017 -1.639515 +v -0.343750 -1.187503 -1.593750 +v 0.343750 -0.906253 -1.937500 +v 0.343750 -1.077017 -1.639515 +v 0.343750 -1.297988 -1.639515 +v -0.343750 -1.297988 -1.639515 +v 0.343750 -0.343750 -1.937500 +v 0.343750 -1.343750 -1.750000 +v -0.375000 -1.121210 -1.683709 +v -0.343750 -1.187501 -1.656250 +v -0.343750 -1.121210 -1.683709 +v -0.375000 -1.253792 -1.683709 +v -0.343750 -1.281251 -1.750000 +v -0.343750 -1.253792 -1.683709 +v -0.375000 -1.253792 -1.816291 +v -0.343750 -1.187501 -1.843750 +v -0.343750 -1.253792 -1.816291 +v -0.375000 -1.121210 -1.816291 +v -0.343750 -1.093751 -1.750000 +v -0.343750 -1.121210 -1.816291 +v -0.375000 -1.093751 -1.750000 +v -0.375000 -1.187501 -1.656250 +v -0.375000 -1.281251 -1.750000 +v -0.375000 -1.187501 -1.843750 +v 0.281250 -0.639518 -1.860485 +v 0.281250 -0.750003 -1.906250 +v 0.281250 -0.860489 -1.860485 +v 0.093750 0.468750 0.125000 +v 0.281250 0.343750 0.125000 +v 0.218750 0.093750 0.125000 +v 0.093750 0.218750 0.125000 +v 0.343750 0.218750 0.125000 +v -0.343750 0.218750 0.125000 +v -0.093750 0.218750 0.125000 +v -0.218750 0.093750 0.125000 +v -0.218750 0.093750 -6.250000 +v -0.343750 0.218750 -6.250000 +v -0.343750 0.218750 -1.750000 +v 0.093750 -0.218750 0.750000 +v -0.093750 -0.218750 0.750000 +v 0.093750 0.218750 0.750000 +v -0.218750 0.093750 0.750000 +v 0.218750 -0.093750 0.750000 +v 0.218750 0.093750 0.750000 +v -0.093750 0.218750 0.750000 +v -0.281250 0.343750 -1.750000 +v -0.093750 0.468750 -1.750000 +v -0.281250 0.343750 -6.250000 +v -0.093750 0.468750 -6.250000 +v 0.343750 0.218750 -6.250000 +v 0.093750 0.468750 -6.250000 +v 0.218750 0.093750 -6.250000 +v 0.281250 0.343750 -6.250000 +v 0.093750 -0.218750 -6.250000 +v -0.218750 -0.093750 -6.250000 +v -0.218750 0.625000 9.250000 +v -0.154680 0.779680 9.250000 +v 0.000000 0.843750 -6.250000 +v -0.000000 0.843750 9.250000 +v -0.154680 0.470320 2.000000 +v 0.218750 0.625000 9.250000 +v 0.154680 0.470320 9.250000 +v 0.154680 0.779680 9.250000 +v 0.218750 0.625000 -6.250000 +v 0.154680 0.779680 -6.250000 +v -0.154680 0.470320 9.250000 +v 0.154680 -0.154680 9.437500 +v -0.000000 -0.218750 9.125000 +v 0.154680 -0.154680 9.125000 +v -0.154680 -0.154680 9.437500 +v -0.218750 -0.000000 9.125000 +v -0.154680 -0.154680 9.125000 +v -0.154680 0.154680 9.437500 +v -0.000000 0.218750 9.125000 +v -0.154680 0.154680 9.125000 +v 0.154680 0.154680 9.437500 +v 0.218750 0.000000 9.125000 +v 0.154680 0.154680 9.125000 +v 0.218750 0.000000 9.437500 +v -0.000000 -0.218750 9.437500 +v -0.218750 -0.000000 9.437500 +v -0.000000 0.218750 9.437500 +v -0.132582 0.132583 9.500000 +v 0.132582 0.132583 9.500000 +v 0.187500 0.000000 9.500000 +v -0.000000 -0.187500 9.500000 +v -0.000000 0.187500 9.500000 +v 0.132582 -0.132583 9.500000 +v -0.187500 -0.000000 9.500000 +v 0.187500 0.000000 11.250000 +v -0.000000 -0.187500 11.250000 +v -0.132582 -0.132583 9.500000 +v -0.187500 -0.000000 11.250000 +v -0.000000 0.187500 11.250000 +v 0.132582 -0.132583 11.250000 +v -0.132582 -0.132583 11.250000 +v -0.132582 0.132583 11.250000 +v 0.132582 0.132583 11.250000 +v 0.281250 0.625000 8.750000 +v 0.281250 0.625000 9.125000 +v 0.198874 -0.198874 8.750000 +v -0.198874 0.823874 9.125000 +v -0.281250 0.625000 8.750000 +v -0.281250 0.625000 9.125000 +v -0.198874 0.198874 8.750000 +v -0.281250 -0.000000 8.750000 +v -0.198874 0.426126 8.750000 +v 0.198874 0.823874 8.750000 +v 0.198874 0.823874 9.125000 +v -0.198874 -0.198874 8.750000 +v 0.198874 0.198874 8.750000 +v 0.281250 0.000000 8.750000 +v -0.000000 -0.281250 8.750000 +v 0.198874 0.426126 8.750000 +v 0.468750 -0.031250 -6.250000 +v 0.468750 -0.093750 -6.625000 +v 0.468750 0.093750 -6.625000 +v 0.343750 0.343750 2.000000 +v 0.437500 0.156250 0.125000 +v 0.468750 0.093750 -6.250000 +v 0.406250 -0.031250 -6.250000 +v 0.406250 -0.093750 -6.187500 +v 0.406250 -0.093750 0.125000 +v 0.406250 0.156250 -6.187500 +v 0.437500 0.156250 -6.187500 +v 0.406250 0.093750 0.187500 +v 0.406250 -0.031250 0.187500 +v 0.406250 0.156250 0.125000 +v 0.406250 0.093750 -6.250000 +v -0.343750 -0.755362 -1.661612 +v -0.281250 -0.843750 -1.625000 +v -0.281250 -0.755362 -1.661612 +v -0.343750 -0.932138 -1.661612 +v -0.281250 -0.968750 -1.750000 +v -0.281250 -0.932138 -1.661612 +v -0.343750 -0.932138 -1.838388 +v -0.281250 -0.843750 -1.875000 +v -0.281250 -0.932138 -1.838388 +v -0.343750 -0.755362 -1.838388 +v -0.281250 -0.718750 -1.750000 +v -0.281250 -0.755362 -1.838388 +v -0.343750 -0.718750 -1.750000 +v -0.343750 -0.843750 -1.625000 +v -0.343750 -0.968750 -1.750000 +v -0.343750 -0.843750 -1.875000 +v -0.218750 -0.093750 0.750000 +v -0.093750 -0.218750 -6.250000 +v 0.218750 -0.093750 -6.250000 +v -0.097057 -0.362222 8.750000 +v 0.097057 -0.362222 8.750000 +v 0.362222 -0.097057 8.750000 +v 0.265165 -0.265165 8.750000 +v 0.362222 0.097057 8.750000 +v 0.265165 0.265165 8.750000 +v 0.250000 0.470320 8.750000 +v -0.265165 -0.265165 8.750000 +v -0.362222 -0.097057 8.750000 +v -0.362222 0.097057 8.750000 +v -0.265165 0.265165 8.750000 +v -0.250000 0.470320 8.750000 +v 0.156250 0.841529 9.125000 +v -0.218750 0.625000 -6.250000 +v -0.343750 0.343750 -6.625000 +v 0.343750 0.343750 -6.625000 +v -0.125000 -2.406250 -4.187500 +v 0.125000 -2.593750 -4.375000 +v 0.125000 -2.406250 -4.187500 +v 0.125000 -2.343750 -5.437500 +v -0.125000 -1.906249 -5.062500 +v 0.125000 -1.906249 -5.062500 +v -0.125000 -2.593750 -4.375000 +v 0.125000 -2.718750 -4.437500 +v 0.125000 -1.656250 -4.812500 +v -0.125000 -2.718750 -4.437500 +v 0.125000 -2.906250 -4.437500 +v -0.312500 -1.343750 -4.812500 +v 0.312500 -1.343750 -4.812500 +v -0.125000 -2.906250 -4.437500 +v 0.125000 -3.093750 -4.625000 +v -0.312500 -1.343750 -3.562500 +v 0.312500 -1.968750 -4.000000 +v 0.312500 -1.343750 -3.562500 +v -0.312500 -1.093749 -4.937500 +v 0.312500 -1.093749 -4.937500 +v -0.125000 -3.093750 -4.625000 +v 0.125000 -3.218750 -4.687500 +v -0.312500 -1.968750 -4.000000 +v 0.125000 -2.093750 -4.125000 +v 0.312500 -0.906249 -5.187500 +v 0.312500 -3.406250 -4.750000 +v 0.125000 -3.531250 -4.687500 +v -0.125000 -2.093750 -4.125000 +v 0.125000 -2.218750 -4.187500 +v -0.312500 -0.906249 -5.187500 +v 0.312500 -0.718750 -5.187500 +v -0.125000 -3.531250 -4.687500 +v 0.125000 -2.968750 -5.750000 +v -0.125000 -2.218750 -4.187500 +v -0.125000 -2.968750 -5.750000 +v 0.312500 -2.031250 -4.187500 +v 0.312500 -2.156250 -4.250000 +v 0.312500 -2.406250 -4.250000 +v 0.312500 -2.656250 -4.500000 +v 0.312500 -2.531250 -4.437500 +v 0.312500 -2.906250 -4.500000 +v 0.312500 -3.156250 -4.750000 +v 0.312500 -3.031250 -4.687500 +v 0.312500 -2.968750 -5.562500 +v 0.312500 -2.343750 -5.250000 +v 0.312500 -1.906250 -4.937500 +v 0.312500 -1.656250 -4.750000 +v 0.312500 -0.718750 -3.562500 +v -0.125000 -3.218750 -4.687500 +v -0.312500 -3.406250 -4.750000 +v -0.312500 -3.156250 -4.750000 +v -0.312500 -2.968750 -5.562500 +v -0.312500 -2.906250 -4.500000 +v -0.312500 -2.656250 -4.500000 +v -0.312500 -3.031250 -4.687500 +v -0.312500 -2.406250 -4.250000 +v -0.312500 -2.156250 -4.250000 +v -0.312500 -2.531250 -4.437500 +v -0.312500 -2.343750 -5.250000 +v -0.312500 -1.906250 -4.937500 +v -0.312500 -2.031250 -4.187500 +v -0.312500 -1.656250 -4.750000 +v -0.125000 -2.343750 -5.437500 +v -0.125000 -1.656250 -4.812500 +v -0.312500 -0.718750 -3.562500 +v -0.312500 -0.718750 -5.187500 +v 0.154680 0.735485 -6.625000 +v -0.154680 0.735485 -6.625000 +v -0.154680 0.779680 -6.250000 +v 0.000000 0.781250 -6.625000 +v 0.156250 0.841529 8.750000 +v -0.156250 0.841529 8.750000 +v -0.198874 0.823874 8.750000 +v -0.000000 1.468750 9.125000 +v -0.154680 1.342180 9.125000 +v -0.000000 1.406250 9.125000 +v -0.281250 1.187500 8.750000 +v -0.198874 0.988626 9.125000 +v -0.281250 1.187500 9.125000 +v 0.198874 1.386374 8.750000 +v 0.198874 1.386374 9.125000 +v 0.198874 0.988626 8.750000 +v 0.281250 1.187500 9.125000 +v 0.198874 0.988626 9.125000 +v -0.198874 0.988626 8.750000 +v -0.156250 0.970971 9.125000 +v -0.000000 1.468750 8.750000 +v -0.198874 1.386374 9.125000 +v -0.156250 0.970971 8.750000 +v -0.156250 0.841529 9.125000 +v -0.198874 1.386374 8.750000 +v 0.156250 0.970971 8.750000 +v 0.156250 0.970971 9.125000 +v 0.281250 1.187500 8.750000 +v 0.218750 1.187500 8.750000 +v 0.154680 1.032820 9.125000 +v 0.218750 1.187500 9.125000 +v -0.218750 1.187500 9.125000 +v 0.154680 1.342180 9.125000 +v -0.000000 0.968750 9.125000 +v -0.154680 1.032820 9.125000 +v -0.000000 0.968750 8.750000 +v -0.218750 1.187500 8.750000 +v -0.000000 1.406250 8.750000 +v 0.154680 1.032820 8.750000 +v -0.154680 1.032820 8.750000 +v -0.154680 1.342180 8.750000 +v 0.154680 1.342180 8.750000 +v -0.000000 0.406250 9.250000 +v -0.000000 0.406250 2.000000 +v 0.375000 -1.121210 -1.816291 +v 0.343750 -1.187501 -1.843750 +v 0.343750 -1.121210 -1.816291 +v 0.375000 -1.253792 -1.816291 +v 0.343750 -1.281251 -1.750000 +v 0.343750 -1.253792 -1.816291 +v 0.375000 -1.253792 -1.683709 +v 0.343750 -1.187501 -1.656250 +v 0.343750 -1.253792 -1.683709 +v 0.375000 -1.121210 -1.683709 +v 0.343750 -1.093751 -1.750000 +v 0.343750 -1.121210 -1.683709 +v 0.375000 -1.093751 -1.750000 +v 0.375000 -1.187501 -1.843750 +v 0.375000 -1.281251 -1.750000 +v 0.375000 -1.187501 -1.656250 +vt 0.810811 0.532819 +vt 0.833977 0.486486 +vt 0.833977 0.532819 +vt 0.833977 0.355212 +vt 0.810811 0.486486 +vt 0.768340 0.370656 +vt 0.833977 0.664093 +vt 0.768340 0.710425 +vt 0.833977 0.710425 +vt 0.768340 0.664093 +vt 0.644788 0.710425 +vt 0.644788 0.664093 +vt 0.706564 0.602317 +vt 0.671815 0.617761 +vt 0.671815 0.602317 +vt 0.611969 0.603679 +vt 0.644788 0.590734 +vt 0.733591 0.590734 +vt 0.766409 0.603679 +vt 0.706564 0.617761 +vt 0.737452 0.442880 +vt 0.756757 0.474903 +vt 0.737452 0.474903 +vt 0.737452 0.428571 +vt 0.756757 0.436293 +vt 0.737452 0.436293 +vt 0.737452 0.418920 +vt 0.740279 0.412094 +vt 0.747104 0.409268 +vt 0.756757 0.438338 +vt 0.764479 0.438338 +vt 0.729730 0.442880 +vt 0.725869 0.474903 +vt 0.737452 0.486486 +vt 0.756757 0.486486 +vt 0.324324 0.571429 +vt 0.208494 0.567568 +vt 0.324324 0.567568 +vt 0.602317 0.590734 +vt 0.602317 0.571429 +vt 0.598456 0.532819 +vt 0.590734 0.536680 +vt 0.590734 0.532819 +vt 0.370656 0.494208 +vt 0.374517 0.486486 +vt 0.386100 0.486486 +vt 0.386100 0.478764 +vt 0.590734 0.474903 +vt 0.590734 0.478764 +vt 0.339768 0.536680 +vt 0.335907 0.532819 +vt 0.339768 0.532819 +vt 0.347490 0.536680 +vt 0.340412 0.532819 +vt 0.346847 0.532819 +vt 0.359073 0.532819 +vt 0.359073 0.536680 +vt 0.374517 0.532819 +vt 0.641961 0.535646 +vt 0.644788 0.542471 +vt 0.641961 0.549296 +vt 0.367439 0.532819 +vt 0.374517 0.536680 +vt 0.366795 0.536680 +vt 0.615830 0.532819 +vt 0.606178 0.542471 +vt 0.615830 0.552124 +vt 0.366152 0.532819 +vt 0.130124 0.384872 +vt 0.144138 0.360301 +vt 0.144138 0.384872 +vt 0.156401 0.389961 +vt 0.168665 0.360301 +vt 0.312741 0.555985 +vt 0.316602 0.548263 +vt 0.324324 0.555985 +vt 0.324324 0.528958 +vt 0.316602 0.536680 +vt 0.312741 0.528958 +vt 0.208494 0.528958 +vt 0.312741 0.567568 +vt 0.208494 0.555985 +vt 0.208494 0.517375 +vt 0.312741 0.517375 +vt 0.196911 0.555985 +vt 0.204633 0.548263 +vt 0.204633 0.536680 +vt 0.196911 0.528958 +vt 0.675676 0.517375 +vt 0.671815 0.552124 +vt 0.671815 0.517375 +vt 0.671815 0.505791 +vt 0.675676 0.498069 +vt 0.671815 0.494208 +vt 0.675676 0.482625 +vt 0.671815 0.482625 +vt 0.675676 0.436293 +vt 0.671815 0.436293 +vt 0.671815 0.393822 +vt 0.644788 0.436293 +vt 0.648649 0.393822 +vt 0.648649 0.436293 +vt 0.644788 0.482625 +vt 0.648649 0.482625 +vt 0.648649 0.494208 +vt 0.644788 0.498069 +vt 0.648649 0.505791 +vt 0.644788 0.501930 +vt 0.644788 0.517375 +vt 0.648649 0.517375 +vt 0.648649 0.552124 +vt 0.644788 0.552124 +vt 0.223938 0.382239 +vt 0.220077 0.374517 +vt 0.223938 0.374517 +vt 0.223938 0.370656 +vt 0.216216 0.386100 +vt 0.220077 0.382239 +vt 0.220077 0.370656 +vt 0.223938 0.362934 +vt 0.231660 0.374517 +vt 0.212355 0.370656 +vt 0.212355 0.374517 +vt 0.220077 0.362934 +vt 0.227799 0.359073 +vt 0.235521 0.370656 +vt 0.235521 0.374517 +vt 0.208494 0.370656 +vt 0.208494 0.374517 +vt 0.173745 0.416988 +vt 0.189189 0.397683 +vt 0.181467 0.416988 +vt 0.138996 0.416988 +vt 0.123552 0.397683 +vt 0.146718 0.397683 +vt 0.166023 0.389961 +vt 0.166023 0.397683 +vt 0.146718 0.389961 +vt 0.180336 0.419719 +vt 0.177606 0.420849 +vt 0.135135 0.420849 +vt 0.131274 0.416988 +vt 0.297297 0.386100 +vt 0.294567 0.387231 +vt 0.293436 0.389961 +vt 0.351351 0.393822 +vt 0.354081 0.392692 +vt 0.355212 0.389961 +vt 0.297297 0.393822 +vt 0.316602 0.378378 +vt 0.351351 0.386100 +vt 0.332046 0.401544 +vt 0.206564 0.397683 +vt 0.191120 0.397683 +vt 0.189189 0.389961 +vt 0.316602 0.401544 +vt 0.378378 0.405405 +vt 0.382239 0.401544 +vt 0.382239 0.405405 +vt 0.378378 0.382239 +vt 0.382239 0.386100 +vt 0.378378 0.386100 +vt 0.374517 0.386100 +vt 0.378378 0.382239 +vt 0.355212 0.382239 +vt 0.374517 0.393822 +vt 0.378378 0.397683 +vt 0.378378 0.393822 +vt 0.370656 0.389961 +vt 0.355212 0.397683 +vt 0.357708 0.388596 +vt 0.359073 0.388031 +vt 0.359073 0.391892 +vt 0.357708 0.391328 +vt 0.357143 0.389961 +vt 0.361004 0.389961 +vt 0.360438 0.388595 +vt 0.360438 0.391326 +vt 0.393822 0.397683 +vt 0.397683 0.382239 +vt 0.393822 0.382239 +vt 0.401544 0.393822 +vt 0.397683 0.397683 +vt 0.386100 0.393822 +vt 0.382239 0.397683 +vt 0.382239 0.393822 +vt 0.382239 0.382239 +vt 0.386100 0.386100 +vt 0.393822 0.382239 +vt 0.389961 0.389961 +vt 0.393822 0.397683 +vt 0.409266 0.382239 +vt 0.405405 0.393822 +vt 0.405405 0.386100 +vt 0.413127 0.397683 +vt 0.409266 0.397683 +vt 0.420849 0.397683 +vt 0.418919 0.389961 +vt 0.420849 0.382239 +vt 0.413127 0.382239 +vt 0.415058 0.389961 +vt 0.415623 0.391326 +vt 0.418353 0.391326 +vt 0.418353 0.388596 +vt 0.415623 0.388596 +vt 0.416988 0.388031 +vt 0.416988 0.391892 +vt 0.355212 0.382239 +vt 0.366795 0.378378 +vt 0.355212 0.378378 +vt 0.366795 0.401544 +vt 0.355212 0.397683 +vt 0.355212 0.401544 +vt 0.148649 0.397683 +vt 0.420849 0.420849 +vt 0.401544 0.409266 +vt 0.420849 0.409266 +vt 0.401544 0.420849 +vt 0.399614 0.413127 +vt 0.397683 0.424710 +vt 0.386100 0.424710 +vt 0.389961 0.418919 +vt 0.382239 0.420849 +vt 0.362934 0.424710 +vt 0.397683 0.420849 +vt 0.768340 0.648649 +vt 0.611969 0.590734 +vt 0.766409 0.590734 +vt 0.756757 0.428571 +vt 0.753930 0.412094 +vt 0.756757 0.418920 +vt 0.756757 0.420965 +vt 0.737452 0.425507 +vt 0.764479 0.436293 +vt 0.768340 0.436293 +vt 0.768340 0.474903 +vt 0.725869 0.436293 +vt 0.729730 0.436293 +vt 0.208494 0.590734 +vt 0.598456 0.536680 +vt 0.629344 0.486486 +vt 0.629344 0.494208 +vt 0.370656 0.486486 +vt 0.386100 0.474903 +vt 0.347490 0.532819 +vt 0.635135 0.552124 +vt 0.628310 0.549296 +vt 0.625483 0.542471 +vt 0.628310 0.535646 +vt 0.635135 0.532819 +vt 0.373874 0.532819 +vt 0.609005 0.535646 +vt 0.609005 0.549296 +vt 0.622656 0.549296 +vt 0.625483 0.542471 +vt 0.622656 0.535646 +vt 0.359717 0.532819 +vt 0.130124 0.360301 +vt 0.156401 0.355212 +vt 0.173745 0.372587 +vt 0.168665 0.384872 +vt 0.208494 0.567568 +vt 0.675676 0.552124 +vt 0.675676 0.505791 +vt 0.675676 0.501930 +vt 0.675676 0.494208 +vt 0.675676 0.393822 +vt 0.644788 0.393822 +vt 0.644788 0.494208 +vt 0.644788 0.505791 +vt 0.227799 0.386100 +vt 0.231660 0.370656 +vt 0.216216 0.359073 +vt 0.123552 0.389961 +vt 0.174876 0.419719 +vt 0.137865 0.419719 +vt 0.132405 0.419718 +vt 0.294567 0.392692 +vt 0.354081 0.387231 +vt 0.332046 0.378378 +vt 0.208494 0.389961 +vt 0.208494 0.397683 +vt 0.378378 0.401544 +vt 0.378378 0.386100 +vt 0.401544 0.386100 +vt 0.378378 0.382239 +vt 0.378378 0.397683 +vt 0.164093 0.397683 +vt 0.399614 0.416988 +vt 0.386100 0.420849 +vt 0.393822 0.418919 +vt 0.362934 0.420849 +vt 0.420849 0.424710 +vt 0.532819 0.849421 +vt -0.000000 0.833977 +vt 0.532819 0.833977 +vt 0.532819 0.749035 +vt 0.023166 0.764479 +vt 0.023166 0.749035 +vt 0.416988 0.791506 +vt 0.420849 0.787645 +vt 0.532819 0.791506 +vt 0.416988 0.864865 +vt 0.027027 0.864865 +vt 0.000000 0.849421 +vt -0.000000 0.822394 +vt 0.532819 0.806950 +vt 0.532819 0.822394 +vt 0.027027 0.791506 +vt -0.000000 0.806950 +vt 0.532819 0.779923 +vt 0.420849 0.779923 +vt 0.420849 0.868726 +vt 0.532819 0.864865 +vt 0.795367 0.729730 +vt 0.405405 0.733591 +vt 0.405405 0.729730 +vt 0.806950 0.729730 +vt 0.799228 0.733591 +vt 0.799228 0.729730 +vt 0.389961 0.729730 +vt 0.393822 0.733591 +vt 0.389961 0.733591 +vt 0.000000 0.733591 +vt 0.000000 0.729730 +vt 0.810811 0.729730 +vt 0.806950 0.733591 +vt 0.795367 0.733591 +vt 0.401544 0.733591 +vt 0.393822 0.729730 +vt 0.401544 0.729730 +vt 0.000000 0.722008 +vt 0.000000 0.714286 +vt 0.003861 0.710425 +vt 0.023166 0.868726 +vt 0.000000 0.876448 +vt 0.000000 0.864865 +vt 0.532819 0.891892 +vt 0.416988 0.907336 +vt 0.416988 0.891892 +vt 0.023166 0.891892 +vt 0.301158 0.907336 +vt 0.023166 0.907336 +vt 0.722008 0.988417 +vt 1.000000 1.000000 +vt 0.722008 1.000000 +vt 0.416988 0.884170 +vt 0.420849 0.876448 +vt 0.023166 0.876448 +vt 0.301158 0.891892 +vt 0.027027 0.880309 +vt 0.301158 0.884170 +vt 0.416988 0.880309 +vt 0.532819 0.876448 +vt 0.895753 0.563707 +vt 0.938224 0.409266 +vt 0.938224 0.563707 +vt 0.895753 0.613900 +vt 0.938224 0.602317 +vt 0.938224 0.613900 +vt 0.895753 0.625483 +vt 0.938224 0.625483 +vt 0.895753 0.579151 +vt 0.938224 0.571429 +vt 0.938224 0.579151 +vt 0.895753 0.741313 +vt 0.938224 0.741313 +vt 0.895753 0.602317 +vt 0.938224 0.590734 +vt 0.895753 0.590734 +vt 0.895753 0.571429 +vt 0.967181 0.577876 +vt 1.000000 0.420849 +vt 0.895753 0.378378 +vt 0.938224 0.362934 +vt 0.938224 0.378378 +vt 0.895753 0.393822 +vt 0.938224 0.386100 +vt 0.938224 0.393822 +vt 0.895753 0.362934 +vt 0.938224 0.328185 +vt 0.895753 0.386100 +vt 0.895753 0.401544 +vt 0.938224 0.401544 +vt 0.866795 0.577876 +vt 0.859729 0.584942 +vt 0.833977 0.420849 +vt 0.895753 0.409266 +vt 0.552124 0.791506 +vt 0.555985 0.795367 +vt 0.552124 0.795367 +vt 0.559846 0.791506 +vt 0.563707 0.795367 +vt 0.559846 0.795367 +vt 0.536680 0.791506 +vt 0.540541 0.795367 +vt 0.536680 0.795367 +vt 0.544402 0.791506 +vt 0.548263 0.795367 +vt 0.544402 0.795367 +vt 0.548263 0.791506 +vt 0.555985 0.791506 +vt 0.532819 0.791506 +vt 0.532819 0.795367 +vt 0.540541 0.791506 +vt 0.542705 0.789809 +vt 0.538610 0.791506 +vt 0.538610 0.779923 +vt 0.768340 0.428571 +vt 0.764479 0.420849 +vt 0.768340 0.420849 +vt 0.729730 0.428571 +vt 0.725869 0.428571 +vt 0.725869 0.420849 +vt 0.644788 0.633205 +vt 0.617761 0.640927 +vt 0.606178 0.633205 +vt 0.610039 0.617761 +vt 0.617761 0.625483 +vt 0.602317 0.625483 +vt 0.633205 0.640927 +vt 0.613900 0.652510 +vt 0.644788 0.625483 +vt 0.629344 0.625483 +vt 0.637066 0.617761 +vt 0.602317 0.694981 +vt 0.602317 0.706564 +vt 0.324324 0.706564 +vt 0.169884 0.660232 +vt 0.208494 0.671815 +vt 0.169884 0.671815 +vt 0.169884 0.625483 +vt 0.208494 0.613900 +vt 0.208494 0.625483 +vt 0.169884 0.602317 +vt 0.208494 0.602317 +vt 0.169884 0.648649 +vt 0.208494 0.660232 +vt 0.169884 0.637066 +vt 0.208494 0.656371 +vt 0.216216 0.675676 +vt 0.235521 0.667954 +vt 0.648649 0.625483 +vt 0.208494 0.710425 +vt 0.324324 0.710425 +vt 0.332046 0.710425 +vt 0.332046 0.706564 +vt 0.347490 0.710425 +vt 0.347490 0.706564 +vt 0.359073 0.706564 +vt 0.324324 0.536680 +vt 0.602317 0.544402 +vt 0.324324 0.544402 +vt 0.324324 0.559846 +vt 0.602317 0.559846 +vt 0.208494 0.617761 +vt 0.602317 0.625483 +vt 0.208494 0.625483 +vt 0.602317 0.602317 +vt 0.208494 0.602317 +vt 0.602317 0.637066 +vt 0.208494 0.637066 +vt 0.602317 0.617761 +vt 0.629344 0.652510 +vt 0.637066 0.671815 +vt 0.610039 0.660232 +vt 0.640927 0.687259 +vt 0.606178 0.687259 +vt 0.617761 0.694981 +vt 0.613900 0.706564 +vt 0.629344 0.694981 +vt 0.633205 0.706564 +vt 0.606178 0.988417 +vt 0.042471 0.988417 +vt 0.042471 0.976834 +vt 1.000000 0.965251 +vt 0.042471 0.965251 +vt 0.606178 1.000000 +vt 0.490348 1.000000 +vt 0.042471 0.942085 +vt 0.042471 0.930502 +vt 0.490348 0.930502 +vt 0.590734 0.471042 +vt 0.629344 0.478764 +vt 0.370656 0.517375 +vt 0.629344 0.509652 +vt 0.629344 0.517375 +vt 0.370656 0.501930 +vt 0.629344 0.501930 +vt 0.370656 0.525097 +vt 0.629344 0.525097 +vt 0.370656 0.509652 +vt 0.486486 0.953668 +vt 0.281853 0.952190 +vt 0.486486 0.952190 +vt 0.281853 0.943563 +vt 0.042471 0.953668 +vt 0.498069 0.943563 +vt 1.000000 0.942085 +vt 1.000000 0.953668 +vt 0.486486 0.963773 +vt 0.498069 0.963773 +vt 0.370656 0.478764 +vt 0.374517 0.478764 +vt 0.370656 0.471042 +vt 0.374517 0.471042 +vt 0.559846 0.907336 +vt 0.559846 0.926641 +vt 0.579151 0.926641 +vt 0.166023 0.702703 +vt 0.146718 0.710425 +vt 0.146718 0.702703 +vt 0.166023 0.656371 +vt 0.146718 0.664093 +vt 0.146718 0.656371 +vt 0.166023 0.671815 +vt 0.146718 0.679537 +vt 0.146718 0.671815 +vt 0.166023 0.687259 +vt 0.146718 0.694981 +vt 0.146718 0.687259 +vt 0.166023 0.694981 +vt 0.166023 0.648649 +vt 0.146718 0.648649 +vt 0.166023 0.664093 +vt 0.166023 0.679537 +vt 0.169884 0.672366 +vt 0.169884 0.687810 +vt 0.169884 0.695532 +vt 0.169884 0.649200 +vt 0.169884 0.671263 +vt 0.169884 0.680088 +vt 0.169884 0.703254 +vt 0.166023 0.710425 +vt 0.169884 0.663541 +vt 0.131274 0.602317 +vt 0.138996 0.710425 +vt 0.131274 0.710425 +vt 0.084942 0.602317 +vt 0.092664 0.710425 +vt 0.084942 0.710425 +vt 0.100386 0.602317 +vt 0.108108 0.710425 +vt 0.100386 0.710425 +vt 0.115830 0.602317 +vt 0.123552 0.710425 +vt 0.115830 0.710425 +vt 0.138996 0.602317 +vt 0.146718 0.710425 +vt 0.092664 0.602317 +vt 0.108108 0.602317 +vt 0.123552 0.602317 +vt 0.359073 0.332046 +vt 0.343629 0.355212 +vt 0.343629 0.332046 +vt 0.420849 0.332046 +vt 0.405405 0.355212 +vt 0.405405 0.332046 +vt 0.204633 0.332046 +vt 0.189189 0.355212 +vt 0.189189 0.332046 +vt 0.142857 0.332046 +vt 0.158301 0.355212 +vt 0.142857 0.355212 +vt 0.173745 0.355212 +vt 0.173745 0.332046 +vt 0.328185 0.355212 +vt 0.328185 0.332046 +vt 0.127413 0.355212 +vt 0.127413 0.332046 +vt 0.389961 0.332046 +vt 0.374517 0.355212 +vt 0.374517 0.332046 +vt 0.389961 0.355212 +vt 0.111969 0.355212 +vt 0.111969 0.332046 +vt 0.359073 0.355212 +vt 0.023166 0.787645 +vt 0.000000 0.791506 +vt 0.000000 0.779923 +vt 0.532819 0.764479 +vt 0.416988 0.776062 +vt 0.023166 0.779923 +vt 0.393822 0.729730 +vt 0.401544 0.725869 +vt 0.401544 0.729730 +vt 0.405405 0.725869 +vt 0.405405 0.729730 +vt 0.795367 0.725869 +vt 0.795367 0.729730 +vt -0.000000 0.729730 +vt 0.389961 0.725869 +vt 0.389961 0.729730 +vt 0.799228 0.729730 +vt 0.806950 0.725869 +vt 0.806950 0.729730 +vt 0.799228 0.725869 +vt 0.810811 0.729730 +vt 0.791506 0.725869 +vt 0.795367 0.722008 +vt 0.795367 0.714286 +vt 0.393822 0.725869 +vt 0.552124 0.810811 +vt 0.555985 0.814672 +vt 0.552124 0.814672 +vt 0.559846 0.810811 +vt 0.563707 0.814672 +vt 0.559846 0.814672 +vt 0.536680 0.810811 +vt 0.540541 0.814672 +vt 0.536680 0.814672 +vt 0.544402 0.810811 +vt 0.548263 0.814672 +vt 0.544402 0.814672 +vt 0.548263 0.810811 +vt 0.555985 0.810811 +vt 0.532819 0.810811 +vt 0.532819 0.814672 +vt 0.540541 0.810811 +vt 0.540540 0.795367 +vt 0.548262 0.803089 +vt 0.540540 0.810811 +vt 0.169884 0.683398 +vt 0.312741 0.671815 +vt 0.602317 0.660232 +vt 0.602317 0.671815 +vt 0.312741 0.660232 +vt 0.602317 0.648649 +vt 0.312741 0.683398 +vt 0.602317 0.683398 +vt 0.312741 0.648649 +vt 0.200772 0.648649 +vt 0.208494 0.694981 +vt 0.200772 0.683398 +vt 0.305019 0.683398 +vt 0.583012 0.845560 +vt 1.000000 0.857143 +vt 0.583012 0.857143 +vt 0.583012 0.830116 +vt 1.000000 0.845560 +vt 1.000000 0.814672 +vt 1.000000 0.830116 +vt 0.583012 0.803089 +vt 0.583012 0.814672 +vt 0.583012 0.787645 +vt 1.000000 0.803089 +vt 0.583012 0.772201 +vt 1.000000 0.787645 +vt 1.000000 0.772201 +vt 0.583012 0.872587 +vt 1.000000 0.872587 +vt 1.000000 0.888031 +vt 0.583012 0.888031 +vt 1.000000 0.899614 +vt 0.583012 0.899614 +vt 0.583012 0.915058 +vt 1.000000 0.915058 +vt 0.583012 0.930502 +vt 1.000000 0.930502 +vt 0.583012 0.741313 +vt 1.000000 0.766409 +vt 0.583012 0.772201 +vt 0.570643 0.773138 +vt 0.538670 0.773138 +vt 0.548805 0.734380 +vt 0.117860 0.389961 +vt 0.104247 0.382239 +vt 0.104247 0.571429 +vt 0.111969 0.579151 +vt 0.092664 0.579151 +vt 0.166023 0.571429 +vt 0.177606 0.579151 +vt 0.158301 0.579151 +vt 0.000000 0.891892 +vt 0.000000 0.764479 +vt 0.177606 0.602317 +vt 0.849421 0.030888 +vt 0.833977 0.015444 +vt 0.849421 0.015444 +vt 0.652510 0.015444 +vt 0.617761 0.030888 +vt 0.617761 0.015444 +vt 0.833977 0.030888 +vt 0.826255 0.015444 +vt 0.598456 0.015444 +vt 0.822394 0.030888 +vt 0.810811 0.015444 +vt 0.822394 0.015444 +vt 0.575290 0.042471 +vt 0.575290 0.003861 +vt 0.810811 0.030888 +vt 0.795367 0.015444 +vt 0.930502 0.042471 +vt 0.884170 0.003861 +vt 0.930502 0.003861 +vt 0.559846 0.042471 +vt 0.559846 0.003861 +vt 0.795367 0.030888 +vt 0.787645 0.015444 +vt 0.884170 0.042471 +vt 0.872587 0.015444 +vt 0.540541 0.003861 +vt 0.772201 0.003861 +vt 0.768340 0.015444 +vt 0.872587 0.030888 +vt 0.864865 0.015444 +vt 0.540541 0.042471 +vt 0.528958 0.003861 +vt 0.768340 0.030888 +vt 0.694981 0.015444 +vt 0.861004 0.030888 +vt 0.861004 0.015444 +vt 0.694981 0.030888 +vt 0.872587 0.003861 +vt 0.864865 0.003861 +vt 0.849421 0.003861 +vt 0.826255 0.003861 +vt 0.833977 0.003861 +vt 0.810811 0.003861 +vt 0.787645 0.003861 +vt 0.795367 0.003861 +vt 0.474903 0.000000 +vt 0.525097 0.027027 +vt 0.474903 0.015444 +vt 0.652510 0.003861 +vt 0.694981 0.003861 +vt 0.617761 0.003861 +vt 0.598456 0.003861 +vt 0.706564 0.003861 +vt 0.760618 0.003861 +vt 0.459459 0.030888 +vt 0.471042 0.023166 +vt 0.459459 0.046332 +vt 0.444015 0.061776 +vt 0.455598 0.054054 +vt 0.444015 0.077220 +vt 0.505791 0.065637 +vt 0.486486 0.092664 +vt 0.440154 0.084942 +vt 0.474903 0.108108 +vt 0.478764 0.127413 +vt 0.401544 0.127413 +vt 0.428571 0.088803 +vt 0.501930 0.154440 +vt 0.501930 0.166023 +vt 0.486486 0.142857 +vt 0.401544 0.166023 +vt 0.787645 0.030888 +vt 0.474903 0.000000 +vt 0.474903 0.015444 +vt 0.525097 0.027027 +vt 0.459459 0.030888 +vt 0.459459 0.046332 +vt 0.471042 0.023166 +vt 0.444015 0.061776 +vt 0.444015 0.077220 +vt 0.455598 0.054054 +vt 0.505791 0.065637 +vt 0.486486 0.092664 +vt 0.440154 0.084942 +vt 0.474903 0.108108 +vt 0.706564 0.042471 +vt 0.760618 0.042471 +vt 0.772201 0.042471 +vt 0.787645 0.042471 +vt 0.795367 0.042471 +vt 0.810811 0.042471 +vt 0.826255 0.042471 +vt 0.826255 0.030888 +vt 0.833977 0.042471 +vt 0.849421 0.042471 +vt 0.864865 0.042471 +vt 0.864865 0.030888 +vt 0.872587 0.042471 +vt 0.694981 0.042471 +vt 0.652510 0.042471 +vt 0.652510 0.030888 +vt 0.617761 0.042471 +vt 0.598456 0.042471 +vt 0.598456 0.030888 +vt 0.428571 0.088803 +vt 0.401544 0.127413 +vt 0.478764 0.127413 +vt 0.401544 0.166023 +vt 0.486486 0.142857 +vt 0.501930 0.154440 +vt 0.501930 0.166023 +vt 0.698842 0.552124 +vt 0.698842 0.517375 +vt 0.675676 0.501930 +vt 0.698842 0.505791 +vt 0.698842 0.490348 +vt 0.675676 0.490348 +vt 0.698842 0.444015 +vt 0.675676 0.444015 +vt 0.698842 0.401544 +vt 0.675676 0.401544 +vt 0.146718 0.602317 +vt 0.135135 0.579151 +vt 0.123552 0.602317 +vt 0.123552 0.579151 +vt 0.135135 0.602317 +vt 0.146718 0.579151 +vt 0.092664 0.602317 +vt 0.324324 0.355212 +vt 0.208494 0.355212 +vt 0.204633 0.355212 +vt 0.181467 0.362934 +vt 0.181467 0.382239 +vt 0.207129 0.360301 +vt 0.266409 0.332046 +vt 0.252681 0.328185 +vt 0.264693 0.328185 +vt 0.235521 0.355212 +vt 0.220077 0.332046 +vt 0.235521 0.332046 +vt 0.281853 0.355212 +vt 0.281853 0.332046 +vt 0.312741 0.355212 +vt 0.297297 0.332046 +vt 0.312741 0.332046 +vt 0.216216 0.355212 +vt 0.220077 0.332046 +vt 0.216216 0.332046 +vt 0.266409 0.355212 +vt 0.250965 0.332046 +vt 0.216216 0.355212 +vt 0.208494 0.332046 +vt 0.216216 0.332046 +vt 0.250965 0.355212 +vt 0.316602 0.355212 +vt 0.316602 0.332046 +vt 0.297297 0.355212 +vt 0.397683 0.355212 +vt 0.409266 0.378378 +vt 0.397683 0.378378 +vt 0.324324 0.332046 +vt 0.237237 0.328185 +vt 0.249249 0.328185 +vt 0.233805 0.328185 +vt 0.280137 0.328185 +vt 0.295581 0.328185 +vt 0.311025 0.328185 +vt 0.315933 0.332046 +vt 0.312741 0.328185 +vt 0.324324 0.328185 +vt 0.216886 0.332046 +vt 0.220077 0.328185 +vt 0.096662 0.372587 +vt 0.096525 0.362934 +vt 0.104247 0.362934 +vt 0.328185 0.355212 +vt 0.339768 0.378378 +vt 0.328185 0.378378 +vt 0.351351 0.355212 +vt 0.362934 0.378378 +vt 0.351351 0.378378 +vt 0.374517 0.355212 +vt 0.386100 0.378378 +vt 0.374517 0.378378 +vt 0.409266 0.355212 +vt 0.420849 0.378378 +vt 0.339768 0.355212 +vt 0.362934 0.355212 +vt 0.386100 0.355212 +vt 0.280137 0.359073 +vt 0.295581 0.359073 +vt 0.311025 0.359073 +vt 0.252681 0.359073 +vt 0.237237 0.359073 +vt 0.233805 0.359073 +vt 0.220077 0.355212 +vt 0.315933 0.355212 +vt 0.312741 0.359073 +vt 0.220077 0.359073 +vt 0.216886 0.355212 +vt 0.173882 0.372587 +vt 0.173745 0.382239 +vt 0.146718 0.432432 +vt 0.150579 0.451737 +vt 0.146718 0.451737 +vt 0.162162 0.424710 +vt 0.166023 0.420849 +vt 0.166023 0.424710 +vt 0.162162 0.428571 +vt 0.166023 0.428571 +vt 0.146718 0.424710 +vt 0.150579 0.428571 +vt 0.146718 0.428571 +vt 0.146718 0.420849 +vt 0.150579 0.424710 +vt 0.150579 0.432432 +vt 0.166023 0.432432 +vt 0.162162 0.432432 +vt 0.166023 0.416988 +vt 0.162162 0.420849 +vt 0.162162 0.416988 +vt 0.150579 0.420849 +vt 0.146718 0.416988 +vt 0.150579 0.416988 +vt 0.150579 0.397683 +vt 0.166023 0.451737 +vt 0.162162 0.451737 +vt 0.162162 0.397683 +vt 0.382239 0.393822 +vt 0.378378 0.389961 +vt 0.382239 0.389961 +vt 0.382239 0.397683 +vt 0.378378 0.397683 +vt 0.378378 0.393822 +vt 0.413127 0.397683 +vt 0.409266 0.401544 +vt 0.409266 0.397683 +vt 0.389961 0.397683 +vt 0.386100 0.401544 +vt 0.386100 0.397683 +vt 0.397683 0.397683 +vt 0.393822 0.401544 +vt 0.393822 0.397683 +vt 0.405405 0.397683 +vt 0.401544 0.401544 +vt 0.401544 0.397683 +vt 0.405405 0.401544 +vt 0.382239 0.401544 +vt 0.382239 0.397683 +vt 0.389961 0.401544 +vt 0.397683 0.401544 +vt 0.401544 0.386100 +vt 0.401544 0.393822 +vt 0.401544 0.397683 +vt 0.405405 0.397683 +vt 0.401544 0.382239 +vt 0.405405 0.382239 +vt 0.173745 0.528958 +vt 0.166023 0.544402 +vt 0.123552 0.544402 +vt 0.389961 0.413127 +vt 0.386100 0.416988 +vt 0.386100 0.413127 +vt 0.397683 0.413127 +vt 0.393822 0.416988 +vt 0.393822 0.413127 +vt 0.042471 0.918919 +vt 0.490348 0.918919 +vt 0.042471 0.907336 +vt 0.490348 0.907336 +vt 0.555985 0.783784 +vt 0.552124 0.779923 +vt 0.555985 0.779923 +vt 0.548263 0.783784 +vt 0.544402 0.779923 +vt 0.548263 0.779923 +vt 0.571429 0.783784 +vt 0.567568 0.779923 +vt 0.571429 0.779923 +vt 0.563707 0.783784 +vt 0.559846 0.779923 +vt 0.563707 0.779923 +vt 0.559846 0.783784 +vt 0.552124 0.783784 +vt 0.575290 0.783784 +vt 0.575290 0.779923 +vt 0.567568 0.783784 +vt 0.565403 0.793671 +vt 0.569498 0.795367 +vt 0.569498 0.783784 +vt 0.810811 0.733591 +vt 0.393822 0.710425 +vt 0.393822 0.725869 +vt 0.397683 0.714286 +vt 0.397683 0.722008 +vt 0.003861 0.725869 +vt 0.532819 0.907336 +vt 1.000000 0.988417 +vt 0.940486 0.571897 +vt 0.945946 0.575290 +vt 0.965251 0.420849 +vt 0.941051 0.402441 +vt 0.947876 0.399614 +vt 0.954702 0.402441 +vt 0.957529 0.409266 +vt 1.000000 0.710425 +vt 0.976834 0.594595 +vt 0.957529 0.575290 +vt 0.974248 0.584942 +vt 0.976834 0.710425 +vt 0.895753 0.328185 +vt 0.892926 0.402441 +vt 0.886100 0.399614 +vt 0.868726 0.420849 +vt 0.876448 0.409266 +vt 0.893491 0.571897 +vt 0.888031 0.575290 +vt 0.876448 0.575290 +vt 0.879275 0.402441 +vt 0.833977 0.710425 +vt 0.857143 0.594595 +vt 0.857143 0.710425 +vt 0.563707 0.791506 +vt 0.534515 0.789809 +vt 0.532818 0.785714 +vt 0.534515 0.781619 +vt 0.542705 0.781619 +vt 0.544401 0.785714 +vt 0.764479 0.428571 +vt 0.729730 0.420849 +vt 0.637066 0.652510 +vt 0.208494 0.706564 +vt 0.169884 0.613900 +vt 0.208494 0.648649 +vt 0.235521 0.656371 +vt 0.227799 0.648649 +vt 0.216216 0.648649 +vt 0.208494 0.667954 +vt 0.227799 0.675676 +vt 0.359073 0.710425 +vt 0.602317 0.536680 +vt 0.617761 0.652510 +vt 0.637066 0.660232 +vt 0.610039 0.671815 +vt 0.602317 0.679537 +vt 0.644788 0.679537 +vt 1.000000 0.976834 +vt 0.042471 1.000000 +vt 1.000000 0.930502 +vt 0.629344 0.471042 +vt 0.498069 0.953668 +vt 0.629344 0.532819 +vt 0.370656 0.532819 +vt 0.579151 0.907336 +vt 0.571429 0.903475 +vt 0.555985 0.918919 +vt 0.571429 0.930502 +vt 0.583012 0.918919 +vt 0.169884 0.678985 +vt 0.169884 0.694429 +vt 0.169884 0.702151 +vt 0.169884 0.655819 +vt 0.169884 0.664644 +vt 0.169884 0.686707 +vt 0.169884 0.709873 +vt 0.169884 0.656922 +vt 0.146718 0.602317 +vt 0.420849 0.355212 +vt 0.158301 0.332046 +vt 0.027027 0.776062 +vt 0.000000 0.725869 +vt 0.810811 0.725869 +vt 0.791506 0.710425 +vt 0.401544 0.710425 +vt 0.397683 0.714286 +vt 0.397683 0.722008 +vt 0.401544 0.725869 +vt 0.563707 0.810811 +vt 0.535080 0.808549 +vt 0.532818 0.803089 +vt 0.535080 0.797629 +vt 0.546001 0.797629 +vt 0.546001 0.808549 +vt 0.208494 0.683398 +vt 0.169884 0.694981 +vt 1.000000 0.747104 +vt 0.570643 0.740376 +vt 0.560508 0.779133 +vt 0.548805 0.779133 +vt 0.560508 0.734380 +vt 0.532819 0.750761 +vt 0.538670 0.740376 +vt 0.532819 0.762753 +vt 0.105338 0.384873 +vt 0.105338 0.360301 +vt 0.117860 0.355212 +vt 0.528958 0.042471 +vt 0.698842 0.501930 +vt 0.182558 0.384872 +vt 0.194844 0.389961 +vt 0.207129 0.384872 +vt 0.194844 0.355212 +vt 0.182558 0.360301 +vt 0.220077 0.355212 +vt 0.221793 0.328185 +vt 0.268125 0.328185 +vt 0.283569 0.328185 +vt 0.299013 0.328185 +vt 0.208494 0.328185 +vt 0.096525 0.382239 +vt 0.420849 0.355212 +vt 0.268125 0.359073 +vt 0.283569 0.359073 +vt 0.299013 0.359073 +vt 0.264693 0.359073 +vt 0.249249 0.359073 +vt 0.221793 0.359073 +vt 0.324324 0.359073 +vt 0.208494 0.359073 +vt 0.173745 0.362934 +vt 0.413127 0.401544 +vt 0.115830 0.528958 +vt 0.115830 0.517375 +vt 0.173745 0.517375 +vt 0.123552 0.501930 +vt 0.166023 0.501930 +vt 0.123552 0.478764 +vt 0.166023 0.478764 +vt 0.144788 0.571429 +vt 0.135135 0.568601 +vt 0.154440 0.568601 +vt 0.389961 0.416988 +vt 0.397683 0.416988 +vt 0.544402 0.783784 +vt 0.573593 0.793671 +vt 0.575290 0.789575 +vt 0.573593 0.785480 +vt 0.565403 0.785480 +vt 0.563707 0.789575 +vn -0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 -0.0000 +vn 0.0000 -0.2290 -0.9734 +vn 0.0000 -0.9389 0.3443 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0073 +vn -0.2298 -0.9732 -0.0000 +vn -0.2295 -0.9733 0.0076 +vn 0.5626 0.8267 0.0078 +vn 0.8369 0.5474 0.0000 +vn 0.5563 0.8310 0.0000 +vn 0.9314 -0.3640 0.0000 +vn 0.9733 -0.2295 0.0076 +vn -0.9314 -0.3640 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.2298 -0.9732 0.0000 +vn 0.7071 -0.7071 0.0073 +vn 0.2295 -0.9733 0.0076 +vn 0.7071 -0.7071 0.0000 +vn 0.9733 0.2295 0.0076 +vn 0.9621 0.2728 0.0000 +vn -0.9733 -0.2295 0.0076 +vn -0.0000 0.9239 -0.3827 +vn 0.0000 0.9239 0.3827 +vn -0.0000 -0.3358 -0.9419 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 -0.9077 0.4197 +vn -0.0000 -0.3827 0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9077 -0.4197 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 0.3827 0.9239 +vn -0.0000 -0.3358 0.9419 +vn -0.9732 0.2298 -0.0000 +vn -0.9732 -0.2298 -0.0000 +vn -0.7501 0.6613 0.0078 +vn -0.5563 0.8310 -0.0000 +vn -0.7503 0.6611 0.0000 +vn -0.8369 0.5474 -0.0000 +vn -0.9906 0.1368 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.8944 0.4472 0.0000 +vn -0.9621 0.2728 -0.0000 +vn -0.9733 0.2295 0.0076 +vn 0.0000 -0.9909 -0.1343 +vn 0.0000 -0.9808 0.1951 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.9914 -0.1305 +vn 0.0000 -0.2744 -0.9616 +vn 0.0000 -0.8008 -0.5989 +vn 0.0000 -0.1305 -0.9914 +vn 0.0000 0.8822 0.4709 +vn 0.0000 0.4719 0.8817 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.9871 0.1602 0.0000 +vn 0.9224 0.3863 0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.9675 -0.2527 0.0000 +vn -0.9239 0.3827 -0.0000 +vn 0.7497 -0.6618 0.0000 +vn 0.9285 0.3714 0.0000 +vn 0.5547 -0.8321 0.0000 +vn -0.7497 -0.6618 -0.0000 +vn -0.9871 0.1602 -0.0000 +vn -0.9285 0.3714 -0.0000 +vn -0.5547 -0.8321 -0.0000 +vn -0.9906 0.1367 -0.0000 +vn -0.7972 -0.6037 -0.0000 +vn 0.7972 -0.6037 0.0000 +vn -0.6037 -0.7972 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.9239 0.3826 0.0000 +vn 0.6901 -0.6901 0.2181 +vn -0.6901 -0.6901 0.2181 +vn -0.6901 0.6901 0.2181 +vn 0.6901 0.6901 0.2181 +vn 0.9759 0.0000 0.2181 +vn -0.0000 -0.9759 0.2181 +vn -0.9759 0.0000 0.2181 +vn 0.0000 0.9759 0.2181 +vn -0.6858 0.6859 0.2434 +vn 0.6858 0.6859 0.2434 +vn 0.9699 0.0000 0.2434 +vn -0.0000 -0.9699 0.2434 +vn 0.0000 0.9699 0.2434 +vn 0.6858 -0.6859 0.2434 +vn -0.9699 0.0000 0.2434 +vn -0.6858 -0.6859 0.2434 +vn 0.9808 -0.1951 0.0000 +vn -0.9808 0.1951 -0.0000 +vn -0.9808 -0.1951 -0.0000 +vn 0.9808 0.1951 0.0000 +vn 0.9732 -0.2298 0.0000 +vn 0.9732 0.2298 0.0000 +vn 0.7501 0.6613 0.0078 +vn 0.8944 0.4472 0.0000 +vn 0.9675 0.2527 0.0000 +vn -0.9675 0.2527 -0.0000 +vn -0.9675 -0.2527 -0.0000 +vn -0.2587 -0.9658 0.0164 +vn 0.2587 -0.9658 0.0164 +vn 0.9658 -0.2587 0.0164 +vn 0.7070 -0.7070 0.0165 +vn 0.9658 0.2587 0.0164 +vn 0.9529 0.3034 0.0013 +vn 0.9972 0.0737 -0.0141 +vn -0.7070 -0.7070 0.0165 +vn -0.9658 -0.2587 0.0164 +vn -0.9658 0.2587 0.0164 +vn -0.9529 0.3034 0.0013 +vn -0.5626 0.8267 0.0078 +vn -0.9972 0.0737 -0.0141 +vn -0.9005 0.4348 -0.0073 +vn 0.9005 0.4348 -0.0073 +vn 0.9135 0.4060 -0.0262 +vn -0.1452 -0.3671 0.9188 +vn 0.1981 -0.5913 0.7817 +vn 0.1452 -0.3671 0.9188 +vn 0.3316 0.5046 -0.7971 +vn -0.2171 0.6491 -0.7290 +vn 0.2171 0.6491 -0.7290 +vn -0.1981 -0.5913 0.7817 +vn 0.1909 -0.2085 0.9592 +vn 0.1257 0.3641 -0.9228 +vn -0.1909 -0.2085 0.9592 +vn -0.0577 -0.2625 -0.9632 +vn 0.0577 -0.2625 -0.9632 +vn 0.0000 -0.5735 0.8192 +vn 0.0000 -0.6407 -0.7678 +vn -0.2221 -0.8356 0.5024 +vn 0.1664 -0.6204 0.7665 +vn 0.2221 -0.8356 0.5024 +vn 0.0000 -0.4472 -0.8944 +vn 0.3162 0.0000 0.9487 +vn 0.1251 0.0000 0.9921 +vn -0.1664 -0.6204 0.7665 +vn -0.1647 -0.8707 -0.4634 +vn 0.1574 -0.8728 -0.4621 +vn 0.1647 -0.8707 -0.4634 +vn -0.3158 0.4243 -0.8487 +vn 0.3158 0.4243 -0.8487 +vn 0.4257 -0.6798 0.5972 +vn 0.3781 -0.2402 0.8941 +vn 0.3421 -0.4253 0.8379 +vn 0.4258 -0.6015 0.6760 +vn 0.8970 0.1977 -0.3953 +vn 0.8992 0.2330 -0.3704 +vn 0.8599 0.3129 -0.4032 +vn 0.8941 0.1096 -0.4342 +vn 0.4212 -0.8013 -0.4248 +vn 0.3942 -0.8092 -0.4357 +vn -0.1251 0.0000 0.9921 +vn -0.8970 0.1977 -0.3953 +vn -0.8992 0.2330 -0.3704 +vn -0.8599 0.3129 -0.4032 +vn -0.8941 0.1096 -0.4342 +vn -0.4212 -0.8013 -0.4248 +vn -0.1574 -0.8728 -0.4621 +vn -0.3942 -0.8092 -0.4357 +vn -0.3162 0.0000 0.9487 +vn -0.3781 -0.2402 0.8941 +vn -0.4258 -0.6015 0.6760 +vn -0.3421 -0.4253 0.8379 +vn -0.4257 -0.6798 0.5972 +vn -0.3316 0.5046 -0.7971 +vn -0.1257 0.3641 -0.9228 +vn 0.0000 -0.1602 0.9871 +vn 0.0000 -0.5257 0.8507 +vn 0.0000 -0.9871 0.1602 +vn 0.0000 -0.9571 -0.2898 +vn 0.0000 -0.8507 0.5257 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 0.1602 -0.9871 +vn 0.0000 0.5257 -0.8507 +vn 0.0000 0.8507 -0.5257 +vn 0.0000 0.9871 -0.1602 +vn 0.0000 0.9571 0.2898 +vn 0.0000 0.8321 0.5547 +vn 0.6763 0.7307 -0.0931 +vn 0.0000 0.9915 -0.1298 +vn -0.6763 0.7307 -0.0931 +vn -0.6906 0.7182 -0.0846 +vn 0.0000 0.9864 -0.1644 +vn 0.6906 0.7182 -0.0846 +vn -0.9135 0.4060 -0.0262 +vn 0.8315 0.5556 -0.0000 +vn -0.8315 0.5556 -0.0000 +vn -0.8315 -0.5556 -0.0000 +vn 0.8315 -0.5556 0.0000 +vn 0.0000 0.3770 -0.9262 +vn 0.0000 0.3714 -0.9285 +vn 0.0000 0.3770 0.9262 +vn 0.0000 0.3714 0.9285 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.2298 0.9732 0.0000 +vn 0.4472 0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn -0.2298 0.9732 0.0000 +usemtl None +s off +f 764/1429/365 765/1430/365 766/1431/365 +f 767/1432/366 768/1433/366 769/1434/366 +f 770/1435/367 764/1429/367 766/1431/367 +f 769/1436/368 770/1435/368 767/1437/368 +f 771/1438/369 768/1439/369 764/1440/369 +f 772/1441/370 773/1442/370 774/1443/370 +f 775/1444/367 776/1445/367 773/1442/367 +f 777/1446/366 778/1447/366 779/1448/366 +f 780/1449/366 781/1450/366 782/1451/366 +f 783/1452/368 784/1453/368 780/1454/368 +f 785/1455/366 786/1456/366 787/1457/366 +f 781/1450/371 784/1458/371 788/1459/371 +f 783/1460/370 782/1451/370 789/1461/370 +f 789/1462/365 781/1450/365 790/1463/365 +f 791/1464/370 792/1465/370 793/1466/370 +f 794/1467/370 791/1464/370 795/1468/370 +f 796/1469/372 797/1470/372 798/1471/372 +f 799/1472/373 800/1473/373 801/1474/373 +f 802/1475/373 803/1476/373 796/1477/373 +f 804/1478/372 805/1479/372 802/1480/372 +f 806/1481/372 802/1482/372 801/1483/372 +f 806/1481/374 800/1484/374 807/1485/374 +f 797/1470/375 808/1486/375 798/1471/375 +f 809/1487/365 810/1488/365 811/1489/365 +f 812/1490/365 813/1491/365 814/1492/365 +f 815/1493/372 816/1494/372 817/1495/372 +f 807/1485/365 812/1496/365 814/1492/365 +f 818/1497/365 819/1498/365 820/1499/365 +f 821/1500/365 819/1498/365 822/1501/365 +f 823/1502/372 824/1503/372 825/1504/372 +f 826/1505/372 827/1506/372 828/1507/372 +f 824/1503/372 828/1507/372 827/1506/372 +f 823/1502/371 829/1508/371 828/1507/371 +f 825/1509/367 830/1510/367 823/1502/367 +f 828/1507/366 831/1511/366 826/1512/366 +f 830/1510/365 832/1513/365 833/1514/365 +f 834/1515/365 831/1516/365 829/1508/365 +f 830/1510/365 834/1515/365 829/1508/365 +f 835/1517/366 836/1518/366 837/1519/366 +f 838/1520/366 835/1517/366 837/1519/366 +f 839/1521/366 838/1520/366 840/1522/366 +f 841/1523/366 840/1522/366 842/1524/366 +f 843/1525/366 842/1524/366 844/1526/366 +f 845/1527/366 843/1525/366 844/1526/366 +f 846/1528/367 847/1529/367 848/1530/367 +f 849/1531/367 848/1530/367 850/1532/367 +f 851/1533/367 849/1531/367 850/1532/367 +f 852/1534/367 853/1535/367 854/1536/367 +f 855/1537/367 853/1535/367 856/1538/367 +f 855/1537/367 857/1539/367 858/1540/367 +f 859/1541/365 860/1542/365 861/1543/365 +f 860/1542/371 862/1544/371 861/1543/371 +f 859/1541/365 863/1545/365 864/1546/365 +f 865/1547/372 866/1548/372 862/1544/372 +f 862/1544/367 859/1549/367 861/1543/367 +f 867/1550/366 860/1542/366 864/1551/366 +f 867/1552/372 868/1553/372 866/1548/372 +f 859/1549/376 868/1554/376 869/1555/376 +f 870/1556/377 864/1551/377 863/1557/377 +f 871/1558/366 872/1559/366 873/1560/366 +f 874/1561/367 875/1562/367 876/1563/367 +f 877/1564/366 872/1559/366 878/1565/366 +f 875/1562/367 879/1566/367 876/1563/367 +f 873/1560/366 880/1567/366 881/1568/366 +f 882/1569/367 883/1570/367 874/1561/367 +f 884/1571/366 885/1572/366 886/1573/366 +f 887/1574/367 888/1575/367 889/1576/367 +f 890/1577/366 891/1578/366 884/1571/366 +f 892/1579/367 893/1580/367 887/1574/367 +f 891/1581/372 894/1582/372 895/1583/372 +f 893/1580/371 891/1578/371 896/1584/371 +f 897/1585/371 898/1586/371 899/1587/371 +f 900/1588/371 901/1589/371 902/1590/371 +f 903/1591/372 897/1592/372 904/1593/372 +f 905/1594/372 900/1595/372 902/1596/372 +f 906/1597/372 907/1598/372 905/1594/372 +f 906/1597/372 903/1591/372 904/1593/372 +f 904/1593/372 908/1599/372 909/1600/372 +f 910/1601/372 911/1602/372 907/1598/372 +f 907/1598/372 912/1603/372 904/1593/372 +f 913/1604/372 906/1597/372 914/1605/372 +f 904/1593/372 914/1605/372 906/1597/372 +f 907/1598/372 906/1597/372 915/1606/372 +f 916/1607/371 917/1608/371 918/1609/371 +f 919/1610/371 917/1608/371 920/1611/371 +f 921/1612/365 899/1613/365 898/1614/365 +f 922/1615/365 923/1616/365 901/1589/365 +f 923/1616/365 916/1617/365 924/1618/365 +f 921/1612/365 924/1618/365 918/1619/365 +f 918/1619/365 924/1618/365 916/1617/365 +f 925/1620/370 926/1621/370 927/1622/370 +f 925/1620/370 928/1623/370 929/1624/370 +f 930/1625/365 931/1626/365 932/1627/365 +f 933/1628/365 934/1629/365 928/1623/365 +f 935/1630/365 928/1623/365 934/1629/365 +f 930/1625/365 936/1631/365 931/1626/365 +f 937/1632/365 932/1627/365 931/1626/365 +f 933/1628/365 938/1633/365 934/1629/365 +f 933/1628/365 932/1627/365 939/1634/365 +f 928/1623/365 940/1635/365 930/1625/365 +f 900/1636/367 916/1637/367 922/1638/367 +f 918/1639/366 897/1640/366 899/1641/366 +f 896/1642/365 879/1566/365 877/1564/365 +f 941/1643/371 942/1644/371 943/1645/371 +f 944/1646/372 945/1647/372 942/1644/372 +f 946/1648/365 947/1649/365 948/1650/365 +f 942/1651/366 947/1649/366 949/1652/366 +f 946/1648/367 950/1653/367 944/1646/367 +f 764/1429/365 768/1433/365 765/1430/365 +f 767/1432/366 765/1430/366 768/1433/366 +f 770/1435/367 771/1654/367 764/1429/367 +f 769/1436/368 771/1438/368 770/1435/368 +f 771/1438/369 769/1436/369 768/1439/369 +f 772/1441/370 779/1448/370 773/1442/370 +f 951/1655/367 776/1445/367 775/1444/367 +f 776/1445/367 774/1443/367 773/1442/367 +f 779/1448/366 772/1441/366 777/1446/366 +f 777/1446/366 952/1656/366 778/1447/366 +f 780/1449/366 784/1458/366 781/1450/366 +f 783/1452/368 788/1657/368 784/1453/368 +f 953/1658/366 954/1659/366 787/1457/366 +f 954/1659/366 788/1660/366 785/1455/366 +f 787/1457/366 954/1659/366 785/1455/366 +f 788/1660/366 783/1661/366 785/1455/366 +f 954/1662/371 955/1663/371 788/1459/371 +f 955/1663/371 790/1664/371 788/1459/371 +f 790/1664/371 781/1450/371 788/1459/371 +f 789/1461/370 956/1665/370 783/1460/370 +f 956/1665/370 785/1666/370 783/1460/370 +f 783/1460/370 780/1449/370 782/1451/370 +f 789/1462/365 782/1451/365 781/1450/365 +f 791/1464/370 957/1667/370 792/1465/370 +f 794/1467/370 957/1667/370 791/1464/370 +f 796/1469/372 803/1668/372 797/1470/372 +f 816/1669/373 958/1670/373 801/1474/373 +f 958/1670/373 799/1472/373 801/1474/373 +f 799/1472/373 959/1671/373 800/1473/373 +f 802/1475/373 805/1672/373 803/1476/373 +f 806/1481/372 804/1478/372 802/1482/372 +f 806/1481/374 801/1673/374 800/1484/374 +f 797/1470/375 813/1491/375 808/1486/375 +f 811/1489/365 960/1674/365 961/1675/365 +f 961/1675/365 959/1676/365 811/1489/365 +f 959/1676/365 799/1677/365 811/1489/365 +f 799/1677/365 962/1678/365 811/1489/365 +f 962/1678/365 809/1487/365 811/1489/365 +f 812/1490/365 808/1679/365 813/1491/365 +f 815/1493/372 958/1680/372 816/1494/372 +f 816/1494/372 963/1681/372 817/1495/372 +f 817/1495/372 964/1682/372 815/1493/372 +f 964/1682/372 965/1683/372 815/1493/372 +f 965/1683/372 966/1684/372 815/1493/372 +f 807/1485/365 800/1685/365 812/1496/365 +f 818/1497/365 967/1686/365 819/1498/365 +f 821/1500/365 820/1499/365 819/1498/365 +f 819/1498/365 968/1687/365 822/1501/365 +f 822/1501/365 969/1688/365 970/1689/365 +f 970/1689/365 821/1500/365 822/1501/365 +f 824/1503/372 823/1502/372 828/1507/372 +f 823/1502/371 830/1510/371 829/1508/371 +f 825/1509/367 832/1690/367 830/1510/367 +f 828/1507/366 829/1508/366 831/1511/366 +f 830/1510/365 833/1514/365 834/1515/365 +f 835/1517/366 971/1691/366 836/1518/366 +f 838/1520/366 972/1692/366 835/1517/366 +f 839/1521/366 972/1693/366 838/1520/366 +f 841/1523/366 839/1694/366 840/1522/366 +f 843/1525/366 841/1523/366 842/1524/366 +f 845/1527/366 973/1695/366 843/1525/366 +f 846/1528/367 974/1696/367 847/1529/367 +f 849/1531/367 846/1528/367 848/1530/367 +f 851/1533/367 852/1697/367 849/1531/367 +f 852/1534/367 851/1533/367 853/1535/367 +f 855/1537/367 854/1698/367 853/1535/367 +f 855/1537/367 856/1538/367 857/1539/367 +f 859/1541/365 864/1546/365 860/1542/365 +f 860/1542/371 865/1547/371 862/1544/371 +f 859/1541/365 869/1699/365 863/1545/365 +f 865/1547/372 867/1552/372 866/1548/372 +f 862/1544/367 866/1700/367 859/1549/367 +f 867/1550/366 865/1547/366 860/1542/366 +f 867/1552/372 870/1701/372 868/1553/372 +f 859/1549/376 866/1700/376 868/1554/376 +f 870/1556/377 867/1550/377 864/1551/377 +f 871/1558/366 878/1565/366 872/1559/366 +f 874/1561/367 883/1570/367 875/1562/367 +f 877/1564/366 895/1583/366 872/1559/366 +f 875/1562/367 975/1702/367 879/1566/367 +f 881/1568/366 976/1703/366 871/1558/366 +f 871/1558/366 873/1560/366 881/1568/366 +f 874/1561/367 977/1704/367 882/1569/367 +f 882/1569/367 978/1705/367 883/1570/367 +f 886/1573/366 979/1706/366 890/1577/366 +f 890/1577/366 884/1571/366 886/1573/366 +f 889/1576/367 980/1707/367 892/1579/367 +f 892/1579/367 887/1574/367 889/1576/367 +f 890/1577/366 896/1584/366 891/1578/366 +f 892/1579/367 894/1708/367 893/1580/367 +f 894/1582/372 872/1559/372 895/1583/372 +f 895/1583/372 975/1709/372 891/1581/372 +f 975/1709/372 875/1710/372 891/1581/372 +f 893/1580/371 894/1708/371 891/1578/371 +f 897/1585/371 981/1711/371 898/1586/371 +f 900/1588/371 922/1615/371 901/1589/371 +f 903/1591/372 981/1712/372 897/1592/372 +f 905/1594/372 907/1598/372 900/1595/372 +f 909/1600/372 914/1605/372 904/1593/372 +f 904/1593/372 912/1603/372 908/1599/372 +f 911/1602/372 912/1603/372 907/1598/372 +f 907/1598/372 915/1606/372 910/1601/372 +f 913/1604/372 915/1606/372 906/1597/372 +f 916/1607/371 920/1611/371 917/1608/371 +f 919/1610/371 982/1713/371 917/1608/371 +f 921/1612/365 918/1619/365 899/1613/365 +f 922/1615/365 916/1617/365 923/1616/365 +f 925/1620/370 929/1624/370 926/1621/370 +f 925/1620/370 933/1628/370 928/1623/370 +f 935/1630/365 940/1635/365 928/1623/365 +f 930/1625/365 940/1635/365 936/1631/365 +f 937/1632/365 939/1634/365 932/1627/365 +f 933/1628/365 939/1634/365 938/1633/365 +f 900/1636/367 907/1714/367 916/1637/367 +f 918/1639/366 904/1715/366 897/1640/366 +f 877/1564/365 878/1565/365 893/1716/365 +f 896/1642/365 876/1563/365 879/1566/365 +f 877/1564/365 893/1716/365 896/1642/365 +f 941/1643/371 944/1646/371 942/1644/371 +f 944/1646/372 983/1717/372 945/1647/372 +f 947/1649/365 984/1718/365 948/1650/365 +f 948/1650/365 985/1719/365 946/1648/365 +f 985/1719/365 950/1653/365 946/1648/365 +f 949/1652/366 943/1720/366 942/1651/366 +f 942/1651/366 984/1718/366 947/1649/366 +f 944/1646/367 941/1643/367 986/1721/367 +f 986/1721/367 946/1648/367 944/1646/367 +s 1 +f 987/1722/378 988/1723/379 989/1724/380 +f 990/1725/381 991/1726/382 992/1727/383 +f 993/1728/384 994/1729/366 995/1730/385 +f 996/1731/386 997/1732/386 998/1733/387 +f 999/1734/388 1000/1735/389 1001/1736/390 +f 1002/1737/384 993/1728/384 1003/1738/391 +f 1004/1739/392 994/1729/366 1005/1740/393 +f 988/1723/379 1001/1736/390 989/1724/380 +f 1006/1741/367 996/1731/386 1007/1742/394 +f 996/1743/395 1008/1744/396 997/1745/396 +f 1009/1746/397 1010/1747/398 1006/1748/398 +f 1011/1749/399 1012/1750/400 1013/1751/401 +f 1011/1749/399 1014/1752/402 1015/1753/403 +f 1015/1754/403 1016/1755/404 1009/1746/397 +f 1006/1748/398 1017/1756/395 996/1743/395 +f 1018/1757/405 1019/1758/406 1020/1759/405 +f 997/1745/396 1018/1757/405 1020/1759/405 +f 1012/1760/367 1018/1761/367 1008/1762/367 +f 1020/1763/367 1021/1764/407 1022/1765/408 +f 1023/1766/409 1024/1767/410 1025/1768/411 +f 1026/1769/412 1027/1770/410 1028/1771/410 +f 793/1772/413 1028/1773/414 1027/1774/414 +f 1025/1768/411 1029/1775/415 1009/1776/416 +f 1019/1777/416 1026/1769/412 1021/1764/407 +f 1030/1778/411 1011/1779/415 1031/1780/415 +f 1015/1781/415 1031/1780/415 1011/1779/415 +f 1032/1782/417 1006/1741/367 1007/1742/394 +f 1033/1783/418 1034/1784/419 1035/1785/418 +f 1036/1786/420 1037/1787/421 1038/1788/420 +f 1039/1789/422 1038/1788/420 1040/1790/422 +f 1041/1791/423 1042/1792/424 1043/1793/423 +f 1044/1794/370 1040/1790/422 1045/1795/370 +f 1046/1796/421 1047/1797/425 1037/1787/421 +f 1048/1798/425 1043/1793/423 1047/1797/425 +f 1035/1785/418 1049/1799/424 1033/1783/418 +f 1037/1800/367 1035/1785/367 1050/1801/367 +f 1051/1802/426 1052/1803/427 1053/1804/426 +f 1054/1805/365 1055/1806/428 1056/1807/365 +f 1057/1808/427 1050/1809/365 1052/1803/427 +f 1058/1810/428 1053/1804/426 1055/1806/428 +f 1059/1811/429 1056/1807/365 1060/1812/429 +f 1046/1813/366 1036/1814/366 1061/1815/366 +f 1062/1816/419 1060/1812/429 1034/1784/419 +f 1063/1817/428 1064/1818/365 1065/1819/428 +f 1066/1820/429 1067/1821/370 1068/1822/429 +f 1069/1823/430 1070/1824/372 1071/1825/430 +f 1072/1826/431 1073/1827/371 1074/1828/431 +f 1075/1829/371 1065/1819/428 1073/1827/371 +f 1076/1830/365 1068/1822/429 1064/1818/365 +f 1077/1831/370 1071/1825/430 1067/1832/370 +f 1078/1833/372 1074/1828/431 1070/1824/372 +f 1063/1834/367 1075/1835/367 1077/1836/367 +f 954/1662/395 1079/1837/431 955/1663/395 +f 1079/1837/431 787/1838/372 1080/1839/372 +f 786/1840/430 956/1665/402 1081/1841/430 +f 1080/1842/372 786/1840/430 1081/1841/430 +f 1025/1843/372 1082/1844/372 1083/1845/372 +f 1084/1846/372 1085/1847/372 1086/1848/372 +f 1024/1849/372 957/1850/372 1082/1844/372 +f 1087/1851/372 1088/1852/372 1089/1853/372 +f 1090/1854/377 1091/1855/432 1092/1856/433 +f 1093/1857/375 827/1858/434 1094/1859/434 +f 1095/1860/435 1088/1861/373 1085/1862/435 +f 1088/1861/373 1096/1863/374 1089/1864/436 +f 1097/1865/437 824/1866/375 1093/1857/375 +f 1085/1862/435 1098/1867/414 1095/1860/435 +f 1099/1868/372 1098/1869/372 1093/1870/372 +f 1029/1871/372 1025/1843/372 1087/1851/372 +f 1088/1852/372 1025/1843/372 1083/1845/372 +f 1029/1872/371 1092/1856/371 1031/1873/371 +f 1030/1874/365 1092/1856/365 1100/1875/365 +f 1027/1876/365 1100/1875/365 1101/1877/365 +f 791/1878/365 1027/1876/365 1101/1877/365 +f 1092/1879/433 1102/1880/438 1100/1881/438 +f 1101/1882/439 795/1468/439 791/1464/439 +f 1100/1881/438 1103/1883/440 1101/1882/440 +f 1083/1884/441 1104/1885/442 1086/1886/442 +f 957/1667/443 1105/1887/443 1082/1888/443 +f 1086/1886/442 1106/1889/376 1084/1890/376 +f 1082/1888/444 1107/1891/441 1083/1884/441 +f 1108/1892/365 1106/1893/365 1109/1894/365 +f 1107/1895/365 1102/1896/365 1106/1893/365 +f 1107/1895/365 1103/1897/365 1102/1896/365 +f 795/1898/365 1105/1899/365 794/1900/365 +f 792/1901/445 1110/1902/367 1111/1903/376 +f 1112/1904/371 1111/1903/376 1113/1905/371 +f 792/1901/445 1024/1906/414 1114/1907/446 +f 1115/1908/366 1116/1909/391 990/1910/447 +f 798/1911/413 963/1912/387 796/1477/448 +f 810/1913/371 966/1914/377 965/1915/371 +f 962/1916/366 958/1670/374 815/1917/366 +f 811/1918/376 965/1915/371 964/1919/376 +f 809/1920/377 815/1917/366 966/1914/377 +f 804/1921/377 803/1922/449 805/1923/450 +f 797/1924/449 1117/1925/377 1115/1908/366 +f 813/1926/449 1115/1908/366 1118/1927/366 +f 1119/1928/377 813/1926/449 1118/1927/366 +f 1117/1925/377 806/1929/434 1113/1905/371 +f 807/1930/434 1119/1928/377 1112/1904/371 +f 1113/1905/371 807/1930/434 1112/1904/371 +f 801/1474/435 802/1475/435 796/1477/448 +f 800/1473/435 961/1931/387 812/1932/387 +f 812/1932/387 960/1933/367 808/1934/413 +f 811/1918/376 964/1919/376 798/1471/413 +f 1120/1935/365 1116/1936/365 1117/1937/365 +f 1121/1938/451 1122/1939/370 1123/1940/391 +f 1124/1941/452 1125/1942/367 1126/1943/387 +f 1127/1944/453 1128/1945/371 1129/1946/376 +f 1130/1947/454 1131/1948/366 1132/1949/377 +f 1133/1950/455 1123/1940/391 1131/1948/366 +f 1134/1951/456 1126/1943/387 1122/1952/370 +f 1135/1953/457 1129/1946/376 1125/1942/367 +f 1136/1954/458 1132/1949/377 1128/1945/371 +f 1137/1955/459 1136/1954/458 1127/1944/453 +f 1138/1956/460 1133/1950/455 1130/1947/454 +f 1139/1957/461 1121/1938/451 1133/1950/455 +f 1140/1958/462 1124/1941/452 1134/1951/456 +f 1135/1953/457 1137/1959/459 1127/1944/453 +f 1141/1960/463 1130/1947/454 1136/1954/458 +f 1142/1961/464 1134/1962/456 1121/1938/451 +f 1124/1941/452 1143/1963/465 1135/1953/457 +f 1144/1964/366 1142/1965/464 1139/1966/461 +f 1145/1967/370 1146/1968/466 1140/1969/462 +f 1147/1970/367 1137/1971/459 1143/1972/465 +f 1148/1973/371 1138/1974/460 1141/1975/463 +f 1149/1976/391 1140/1977/462 1142/1965/464 +f 1150/1978/387 1143/1972/465 1146/1968/466 +f 1151/1979/376 1141/1975/463 1137/1971/459 +f 1152/1980/377 1139/1966/461 1138/1974/460 +f 818/1981/467 1153/1982/366 1154/1983/366 +f 969/1984/370 1155/1985/391 970/1986/391 +f 1156/1987/376 1157/1988/367 1158/1989/367 +f 968/1990/367 1159/1991/468 1160/1992/367 +f 1158/1989/367 1161/1993/469 967/1994/469 +f 1154/1983/366 1162/1995/377 1163/1996/377 +f 968/1990/367 1164/1997/387 822/1998/387 +f 821/1999/366 1165/2000/470 820/2001/470 +f 970/1986/391 1166/2002/366 821/1999/366 +f 822/1998/387 1167/2003/370 969/2004/370 +f 1159/1991/468 967/1994/469 1161/1993/469 +f 820/2001/470 1168/2005/467 818/1981/467 +f 1169/2006/366 1170/2007/471 1171/2008/472 +f 1172/2009/473 1005/1740/393 1173/2010/474 +f 1173/2010/474 991/1726/382 1172/2009/473 +f 991/1726/382 1174/2011/393 1171/2008/472 +f 1174/2012/406 1175/2013/405 1169/2014/405 +f 1169/2014/405 1176/2015/396 1002/2016/396 +f 1002/2016/396 1177/2017/395 993/2018/395 +f 1173/2019/403 1178/2020/401 1179/2021/399 +f 994/2022/398 1180/2023/404 1005/2024/397 +f 993/2018/395 1181/2025/398 994/2022/398 +f 1180/2023/404 1173/2026/403 1005/2024/397 +f 1182/2027/366 1180/2028/366 1181/2029/366 +f 1179/2021/399 1183/2030/400 1174/2012/406 +f 1184/2031/428 1185/2032/365 1186/2033/428 +f 1187/2034/429 1188/2035/370 1189/2036/429 +f 1190/2037/430 1191/2038/372 1192/2039/430 +f 1193/2040/431 1194/2041/371 1195/2042/431 +f 1196/2043/371 1186/2033/428 1194/2041/371 +f 1197/2044/365 1189/2036/429 1185/2032/365 +f 1198/2045/370 1192/2039/430 1188/2046/370 +f 1199/2047/372 1195/2042/431 1191/2038/372 +f 1198/2048/367 1197/2049/367 1196/2050/367 +f 827/1858/434 1200/2051/449 1094/1859/434 +f 834/2052/434 1108/2053/375 1201/2054/434 +f 833/2055/375 1202/2056/437 1108/2053/375 +f 831/2057/475 1201/2054/434 1109/2058/449 +f 832/2059/476 825/2060/476 1084/1890/477 +f 1089/2061/436 826/2062/475 831/2063/475 +f 1001/2064/390 1203/2065/478 989/2066/380 +f 1000/2067/389 1204/2068/479 1001/2064/390 +f 1000/2067/389 1205/2069/480 1206/2070/481 +f 1004/2071/392 1205/2069/480 995/2072/385 +f 1172/2073/473 1207/2074/482 1004/2071/392 +f 990/2075/381 1208/2076/483 1172/2073/473 +f 1208/2076/483 990/2075/381 1209/2077/484 +f 987/2078/378 1203/2065/478 1210/2079/485 +f 987/2078/378 1211/2080/486 1007/2081/394 +f 1007/2081/394 1212/2082/487 1032/2083/417 +f 1023/2084/409 1212/2082/487 1213/2085/488 +f 1023/2084/409 1213/2085/488 1114/2086/489 +f 1213/2085/488 1214/2087/490 1114/2086/489 +f 1209/2088/371 1114/2089/371 1214/2090/371 +f 1213/2091/365 1210/2092/365 1205/2093/365 +f 818/1497/365 1154/2094/365 1215/2095/365 +f 1028/2096/365 1216/2097/365 1026/2098/365 +f 992/2099/365 991/2100/365 1118/2101/365 +f 1026/1769/412 1217/2102/491 1021/1764/407 +f 991/1726/382 1171/2008/472 1218/2103/492 +f 1118/2101/493 991/2100/382 1218/2104/492 +f 1219/2105/494 1220/2106/495 1221/2107/496 +f 1222/2108/497 1223/2109/498 1224/2110/499 +f 1225/2111/500 1226/2112/501 1220/2106/495 +f 1223/2109/498 1227/2113/502 1224/2110/499 +f 1228/2114/503 1229/2115/496 1226/2116/501 +f 1227/2113/502 1230/2117/504 1231/2118/505 +f 1232/2119/494 1233/2120/495 1229/2115/496 +f 1234/2121/506 1235/2122/506 1236/2123/506 +f 1231/2118/505 1237/2124/507 1238/2125/507 +f 1239/2126/500 1240/2127/501 1233/2120/495 +f 1241/2128/508 1242/2129/509 1235/2122/510 +f 1237/2124/507 1243/2130/511 1238/2125/507 +f 1244/2131/512 1240/2127/501 1245/2132/513 +f 1246/2133/514 1247/2134/501 1242/2129/509 +f 1248/2135/511 1249/2136/372 1243/2130/511 +f 1250/2137/515 1251/2138/516 1245/2132/517 +f 1252/2139/503 1221/2107/496 1247/2140/501 +f 1253/2141/518 1222/2108/497 1251/2138/519 +f 1242/2129/509 1254/2142/520 1235/2122/510 +f 1255/2143/521 1242/2129/509 1247/2134/501 +f 1221/2107/496 1256/2144/522 1247/2140/501 +f 1255/2143/521 1247/2140/501 1256/2144/522 +f 1257/2145/521 1220/2106/495 1226/2112/501 +f 1220/2106/495 1256/2144/522 1221/2107/496 +f 1258/2146/523 1256/2144/522 1220/2106/495 +f 1229/2115/496 1259/2147/522 1226/2116/501 +f 1226/2116/501 1259/2147/522 1257/2145/521 +f 1260/2148/521 1233/2120/495 1240/2127/501 +f 1233/2120/495 1259/2147/522 1229/2115/496 +f 1261/2149/523 1259/2147/522 1233/2120/495 +f 1244/2150/366 1262/2151/524 1260/2152/366 +f 1222/2108/497 1263/2153/525 1251/2138/519 +f 1262/2154/524 1251/2138/519 1263/2153/525 +f 1224/2110/499 1264/2155/526 1222/2108/497 +f 1263/2153/525 1222/2108/497 1264/2155/526 +f 1227/2113/502 1265/2156/527 1224/2110/499 +f 1264/2155/526 1224/2110/499 1265/2156/527 +f 1231/2118/505 1265/2156/527 1227/2113/502 +f 1262/2157/528 1244/2158/529 1245/2132/517 +f 1240/2127/501 1244/2131/512 1260/2148/521 +f 1259/2159/366 1261/2160/366 1257/2161/366 +f 1256/2162/366 1258/2163/366 1255/2164/366 +f 1260/2152/366 1262/2151/524 1261/2160/366 +f 1262/2151/524 1263/2165/525 1261/2160/366 +f 1261/2160/366 1263/2165/525 1257/2161/366 +f 1257/2161/366 1263/2165/525 1258/2163/366 +f 1258/2163/366 1263/2165/525 1255/2164/366 +f 1263/2165/525 1264/2166/526 1255/2164/366 +f 1255/2164/366 1264/2166/526 1254/2167/366 +f 1264/2166/526 1265/2168/527 1254/2167/366 +f 1265/2168/527 1231/2169/366 1236/2170/366 +f 1235/2171/366 1254/2167/366 1236/2170/366 +f 1243/2172/366 1249/2173/366 1238/2174/366 +f 1249/2173/366 1266/2175/366 1238/2174/366 +f 1266/2175/366 1236/2170/366 1231/2169/366 +f 1238/2174/366 1266/2175/366 1231/2169/366 +f 1254/2167/366 1265/2168/527 1236/2170/366 +f 1251/2138/516 1262/2157/528 1245/2132/517 +f 1250/2137/530 1240/2127/501 1267/2176/503 +f 1268/2177/367 1269/2178/367 1270/2179/531 +f 1271/2180/367 1272/2181/367 1273/2182/367 +f 1274/2183/367 1275/2184/367 1276/2185/367 +f 1269/2178/367 1273/2182/367 1270/2179/531 +f 1270/2179/531 1273/2182/367 1277/2186/532 +f 1273/2182/367 1272/2181/367 1277/2186/532 +f 1272/2181/367 1276/2185/367 1277/2186/532 +f 1276/2185/367 1275/2184/367 1277/2186/532 +f 1277/2186/532 1275/2184/367 1278/2187/533 +f 1275/2184/367 1279/2188/367 1278/2187/533 +f 1278/2187/533 1279/2188/367 1280/2189/534 +f 1270/2190/535 1253/2141/536 1250/2137/515 +f 1270/2190/535 1250/2137/515 1268/2191/537 +f 1250/2137/530 1267/2176/503 1268/2192/538 +f 1268/2192/538 1267/2176/503 1269/2193/539 +f 1239/2126/500 1269/2193/539 1267/2176/503 +f 1273/2194/540 1239/2126/500 1271/2195/541 +f 1239/2126/500 1232/2119/494 1271/2195/541 +f 1232/2119/494 1228/2114/503 1271/2195/541 +f 1271/2195/541 1228/2114/503 1272/2196/539 +f 1225/2111/500 1272/2196/539 1228/2197/503 +f 1276/2198/540 1225/2111/500 1274/2199/541 +f 1225/2111/500 1219/2105/494 1274/2199/541 +f 1219/2105/494 1252/2139/503 1274/2199/541 +f 1274/2199/541 1252/2139/503 1275/2200/539 +f 1246/2133/514 1275/2200/539 1252/2201/503 +f 1246/2133/514 1241/2128/508 1279/2202/542 +f 1270/2203/531 1277/2204/532 1253/2141/518 +f 1253/2141/518 1277/2204/532 1281/2205/543 +f 1277/2204/532 1278/2206/533 1281/2205/543 +f 1281/2205/543 1278/2206/533 1223/2109/498 +f 1278/2206/533 1280/2207/534 1223/2109/498 +f 1223/2109/498 1280/2207/534 1282/2208/544 +f 1230/2117/504 1282/2208/544 1280/2207/534 +f 1241/2209/367 1234/2210/367 1279/2188/367 +f 1279/2188/367 1234/2210/367 1280/2189/534 +f 1280/2189/534 1234/2210/367 1230/2211/367 +f 1234/2210/367 1283/2212/367 1230/2211/367 +f 1230/2211/367 1283/2212/367 1237/2213/367 +f 1248/2214/367 1237/2213/367 1284/2215/367 +f 1284/2215/367 1237/2213/367 1283/2212/367 +f 856/1538/545 838/1520/546 837/1519/545 +f 850/1532/547 844/1526/548 842/1524/547 +f 853/1535/546 840/1522/549 838/1520/546 +f 857/1539/365 837/1519/545 836/1518/365 +f 848/1530/548 845/1527/550 844/1526/548 +f 851/1533/549 842/1524/547 840/1522/549 +f 835/1517/551 858/2216/372 971/1691/372 +f 972/1692/552 855/2217/551 835/1517/551 +f 839/2218/553 854/2219/552 972/1692/552 +f 849/2220/554 839/2218/553 841/2221/554 +f 846/2222/555 841/2221/554 843/2223/555 +f 974/2224/556 843/2223/555 973/2225/556 +f 1118/2101/493 1218/2104/492 1285/2226/557 +f 1112/2227/558 1286/2228/559 1287/2229/560 +f 1286/2228/559 1112/2227/558 1288/2230/561 +f 1285/2226/557 1288/2230/561 1112/2227/558 +f 1112/2227/558 1119/2231/562 1285/2226/557 +f 1118/2101/493 1285/2226/557 1119/2231/562 +f 1026/2098/412 1216/2097/563 1217/2232/491 +f 1287/2229/560 1286/2228/559 1216/2097/563 +f 1217/2232/491 1216/2097/563 1286/2228/559 +f 1289/2233/564 1163/1996/377 1162/1995/377 +f 1156/1987/376 1290/2234/565 1291/2235/376 +f 1290/2236/372 1289/2237/372 1161/2238/372 +f 1292/2239/365 1293/2240/365 1294/2241/365 +f 1295/2242/367 1296/2243/387 1297/2244/367 +f 1298/2245/377 1292/2239/371 1299/2246/377 +f 1300/2247/391 1301/2248/366 1302/2249/391 +f 1303/2250/387 1304/2251/566 1296/2252/387 +f 1305/2253/371 1306/2254/376 1292/2239/371 +f 1307/2255/566 1308/2256/565 1304/2257/566 +f 1309/2258/376 1297/2244/367 1306/2254/376 +f 1310/2259/567 1302/2249/391 1311/2260/567 +f 1312/2261/366 1299/2246/377 1301/2248/366 +f 1313/2262/367 1314/2263/376 1315/2264/367 +f 1215/2265/564 1310/2259/567 1311/2260/567 +f 1306/2254/365 1316/2266/365 1293/2267/365 +f 1296/2243/365 1316/2268/365 1297/2244/365 +f 1292/2239/365 1317/2269/365 1299/2246/365 +f 1299/2246/365 1315/2270/365 1301/2248/365 +f 1301/2248/365 1314/2271/365 1302/2249/365 +f 1311/2272/365 1314/2273/365 1318/2274/365 +f 1304/2275/365 1319/2276/365 1296/2243/365 +f 1318/2277/365 1304/2278/365 1308/2279/365 +f 1320/2280/371 1319/2281/377 1318/2282/371 +f 1321/2283/366 1293/2284/391 1316/2285/366 +f 1322/2286/370 1317/2287/387 1294/2288/370 +f 1323/2289/376 1318/2290/371 1314/2263/376 +f 1324/2291/377 1316/2285/366 1319/2281/377 +f 1325/2292/391 1294/2288/370 1293/2284/391 +f 1326/2293/387 1315/2264/367 1317/2287/387 +f 1326/2294/372 1305/2253/372 1298/2245/372 +f 1313/2295/372 1298/2245/372 1312/2261/372 +f 1323/2296/372 1312/2261/372 1300/2247/372 +f 1305/2253/372 1325/2297/372 1309/2258/372 +f 1309/2258/372 1321/2298/372 1295/2242/372 +f 1321/2299/372 1303/2300/372 1295/2242/372 +f 1310/2301/372 1323/2302/372 1300/2247/372 +f 1324/2303/372 1307/2304/372 1303/2300/372 +f 1320/2305/372 1310/2306/372 1289/2237/372 +f 883/2307/568 891/2308/569 875/2309/569 +f 889/2310/371 976/2311/428 881/2312/371 +f 980/2313/431 881/2312/371 880/2314/431 +f 882/2315/371 885/2316/431 978/2317/431 +f 977/2318/428 886/2319/371 882/2315/371 +f 883/2307/568 885/2316/431 884/2320/568 +f 980/2313/431 873/2321/568 892/2322/568 +f 871/2323/570 888/2324/428 887/2325/570 +f 979/2326/428 874/2327/570 890/2328/570 +f 896/2329/571 874/2327/570 876/1563/571 +f 892/2322/568 872/2330/569 894/2331/569 +f 871/2323/570 893/2332/571 878/1565/571 +f 924/2333/371 905/2334/449 923/2335/449 +f 902/1590/366 923/2335/449 905/2334/449 +f 921/2336/437 981/1711/367 903/2337/437 +f 921/2336/437 906/2338/371 924/2333/371 +f 912/2339/371 936/2340/376 908/2341/376 +f 910/2342/366 937/2343/377 911/2344/377 +f 913/2345/370 938/2346/391 915/2347/391 +f 909/2348/367 935/2349/387 914/2350/387 +f 908/2341/376 940/2351/367 909/2348/367 +f 911/2344/377 931/2352/371 912/2353/371 +f 915/2347/391 939/2354/366 910/2342/366 +f 914/2350/387 934/2355/370 913/2345/370 +f 919/2356/572 926/1621/573 982/2357/573 +f 917/2358/574 926/1621/573 929/2359/574 +f 927/1622/572 920/2360/575 925/2361/575 +f 1021/2362/372 1217/2363/372 1218/2364/372 +f 945/2365/576 984/2366/577 942/2367/577 +f 944/2368/578 985/2369/579 983/2370/579 +f 985/2369/579 945/2365/576 983/2370/579 +f 990/1910/447 1327/2371/370 1328/2372/370 +f 1328/2372/370 1120/2373/387 1114/2374/446 +f 1329/2375/431 1330/2376/372 1331/2377/431 +f 1332/2378/430 1333/2379/370 1334/2380/430 +f 1335/2381/429 1336/2382/365 1337/2383/429 +f 1338/2384/428 1339/2385/371 1340/2386/428 +f 1341/2387/371 1331/2377/431 1339/2385/371 +f 1342/2388/372 1334/2380/430 1330/2376/372 +f 1343/2389/370 1337/2383/429 1333/2390/370 +f 1344/2391/365 1340/2386/428 1336/2382/365 +f 1329/2392/366 1341/2393/366 1343/2394/366 +f 987/1722/378 998/1733/387 988/1723/379 +f 990/1725/381 1172/2009/473 991/1726/382 +f 987/1722/378 1007/1742/394 996/1731/386 +f 997/1732/386 1022/1765/408 998/1733/387 +f 987/1722/378 996/1731/386 998/1733/387 +f 999/1734/388 1003/1738/391 1000/1735/389 +f 995/1730/385 1000/1735/389 993/1728/384 +f 1000/1735/389 1003/1738/391 993/1728/384 +f 1003/1738/391 1170/2007/471 1002/1737/384 +f 1004/1739/392 995/1730/385 994/1729/366 +f 988/1723/379 999/1734/388 1001/1736/390 +f 996/1743/395 1017/1756/395 1008/1744/396 +f 1009/1746/397 1016/1755/404 1010/1747/398 +f 1011/1749/399 1019/1758/406 1012/1750/400 +f 1011/1749/399 1013/1751/401 1014/1752/402 +f 1015/1754/403 1014/2395/402 1016/1755/404 +f 1006/1748/398 1010/1747/398 1017/1756/395 +f 1018/1757/405 1012/1750/400 1019/1758/406 +f 997/1745/396 1008/1744/396 1018/1757/405 +f 1008/1762/367 1017/2396/367 1014/2397/367 +f 1017/2396/367 1010/2398/367 1014/2397/367 +f 1010/2398/367 1016/2399/367 1014/2397/367 +f 1014/2397/367 1013/2400/367 1008/1762/367 +f 1013/2400/367 1012/1760/367 1008/1762/367 +f 1022/1765/408 997/1732/386 1020/1763/367 +f 1020/1763/367 1019/1777/416 1021/1764/407 +f 1023/1766/409 1114/2401/489 1024/1767/410 +f 1026/1769/412 1030/1778/411 1027/1770/410 +f 793/1772/413 1216/2402/367 1028/1773/414 +f 1032/1782/417 1023/1766/409 1009/1776/416 +f 1023/1766/409 1025/1768/411 1009/1776/416 +f 1029/1775/415 1015/1781/415 1009/1776/416 +f 1019/1777/416 1011/1779/415 1026/1769/412 +f 1030/1778/411 1026/1769/412 1011/1779/415 +f 1015/1781/415 1029/1775/415 1031/1780/415 +f 1032/1782/417 1009/1776/416 1006/1741/367 +f 1033/1783/418 1062/1816/419 1034/1784/419 +f 1036/1786/420 1046/1796/421 1037/1787/421 +f 1039/1789/422 1036/1786/420 1038/1788/420 +f 1041/1791/423 1049/1799/424 1042/1792/424 +f 1044/1794/370 1039/1789/422 1040/1790/422 +f 1046/1796/421 1048/1798/425 1047/1797/425 +f 1048/1798/425 1041/1791/423 1043/1793/423 +f 1035/1785/418 1042/1792/424 1049/1799/424 +f 1042/2403/367 1035/1785/367 1043/2404/367 +f 1035/1785/367 1034/1784/367 1052/2405/367 +f 1034/1784/367 1060/2406/367 1056/2407/367 +f 1056/2407/367 1055/2408/367 1053/2409/367 +f 1052/2405/367 1050/1801/367 1035/1785/367 +f 1050/1801/367 998/2410/367 1040/2411/367 +f 1056/2407/367 1053/2409/367 1034/1784/367 +f 1053/2409/367 1052/2405/367 1034/1784/367 +f 1047/2412/367 1043/2404/367 1035/1785/367 +f 1047/2412/367 1035/1785/367 1037/1800/367 +f 1050/1801/367 1040/2411/367 1038/2413/367 +f 998/2410/367 1045/2414/367 1040/2411/367 +f 1050/1801/367 1038/2413/367 1037/1800/367 +f 1051/1802/426 1057/1808/427 1052/1803/427 +f 1054/1805/365 1058/1810/428 1055/1806/428 +f 1057/1808/427 1061/2415/365 1050/1809/365 +f 1058/1810/428 1051/1802/426 1053/1804/426 +f 1059/1811/429 1054/1805/365 1056/1807/365 +f 1059/2416/366 1062/1816/366 1054/2417/366 +f 1062/1816/366 1033/1783/366 1057/2418/366 +f 1054/2417/366 1062/1816/366 1051/2419/366 +f 1033/1783/366 1049/2420/366 1041/2421/366 +f 1033/1783/366 1041/2421/366 1048/2422/366 +f 1051/2419/366 1058/2423/366 1054/2417/366 +f 1003/2424/366 1061/1815/366 1039/2425/366 +f 1061/1815/366 1057/2418/366 1033/1783/366 +f 1039/2425/366 1061/1815/366 1036/1814/366 +f 1057/2418/366 1051/2419/366 1062/1816/366 +f 1033/1783/366 1048/2422/366 1046/1813/366 +f 1033/1783/366 1046/1813/366 1061/1815/366 +f 1039/2425/366 1044/2426/366 1003/2424/366 +f 1062/1816/419 1059/1811/429 1060/1812/429 +f 1063/1817/428 1076/1830/365 1064/1818/365 +f 1066/1820/429 1077/2427/370 1067/1821/370 +f 1069/1823/430 1078/1833/372 1070/1824/372 +f 1072/1826/431 1075/1829/371 1073/1827/371 +f 1075/1829/371 1063/1817/428 1065/1819/428 +f 1076/1830/365 1066/1820/429 1068/1822/429 +f 1077/1831/370 1069/1823/430 1071/1825/430 +f 1078/1833/372 1072/1826/431 1074/1828/431 +f 1075/1835/367 1072/2428/367 1077/1836/367 +f 1072/2428/367 1078/2429/367 1077/1836/367 +f 1078/2429/367 1069/2430/367 1077/1836/367 +f 1077/1836/367 1066/2431/367 1076/2432/367 +f 1076/2432/367 1063/1834/367 1077/1836/367 +f 954/1662/395 953/2433/431 1079/1837/431 +f 1079/1837/431 953/2433/431 787/1838/372 +f 786/1840/430 785/1666/402 956/1665/402 +f 1080/1842/372 787/2434/372 786/1840/430 +f 1025/1843/372 1024/1849/372 1082/1844/372 +f 1024/1849/372 792/2435/372 957/1850/372 +f 1087/2436/377 1089/2061/377 1092/1856/433 +f 1089/2061/377 1090/1854/377 1092/1856/433 +f 1093/1857/375 824/1866/375 827/1858/434 +f 1095/1860/435 1099/2437/373 1088/1861/373 +f 1088/1861/373 1099/2437/373 1096/1863/374 +f 1097/1865/437 825/2438/476 824/1866/375 +f 1085/1862/435 1084/1890/477 1098/1867/414 +f 1093/1870/372 1094/2439/372 1200/2440/372 +f 1200/2440/372 1096/2441/372 1099/1868/372 +f 1099/1868/372 1095/2442/372 1098/1869/372 +f 1098/1869/372 1097/2443/372 1093/1870/372 +f 1093/1870/372 1200/2440/372 1099/1868/372 +f 1083/1845/372 1086/1848/372 1085/1847/372 +f 1088/1852/372 1087/1851/372 1025/1843/372 +f 1083/1845/372 1085/1847/372 1088/1852/372 +f 1029/1872/371 1087/2436/371 1092/1856/371 +f 1030/1874/365 1031/1873/365 1092/1856/365 +f 1027/1876/365 1030/1874/365 1100/1875/365 +f 791/1878/365 793/2444/365 1027/1876/365 +f 1092/1879/433 1091/2445/432 1102/1880/438 +f 1101/1882/439 1103/1883/439 795/1468/439 +f 1100/1881/438 1102/1880/438 1103/1883/440 +f 1083/1884/441 1107/1891/441 1104/1885/442 +f 957/1667/443 794/1467/443 1105/1887/443 +f 1086/1886/442 1104/1885/442 1106/1889/376 +f 1082/1888/444 1105/1887/444 1107/1891/441 +f 1109/1894/365 1201/2446/365 1108/1892/365 +f 1108/1892/365 1202/2447/365 1106/1893/365 +f 1106/1893/365 1090/2448/365 1109/1894/365 +f 1091/2449/365 1090/2448/365 1102/1896/365 +f 1090/2448/365 1106/1893/365 1102/1896/365 +f 1106/1893/365 1104/2450/365 1107/1895/365 +f 1107/1895/365 1105/1899/365 1103/1897/365 +f 795/1898/365 1103/1897/365 1105/1899/365 +f 1111/1903/376 1287/2451/376 792/1901/445 +f 1287/2451/376 1216/2402/367 793/1772/413 +f 793/1772/413 792/1901/413 1287/2451/376 +f 1112/1904/371 1287/2451/376 1111/1903/376 +f 1120/2452/387 1110/1902/367 1114/1907/446 +f 1110/1902/367 792/1901/445 1114/1907/446 +f 992/2453/374 1118/1927/366 990/1910/447 +f 1118/1927/366 1115/1908/366 990/1910/447 +f 798/1911/413 817/2454/367 963/1912/387 +f 810/1913/371 809/1920/377 966/1914/377 +f 962/1916/366 799/1472/374 958/1670/374 +f 811/1918/376 810/1913/371 965/1915/371 +f 809/1920/377 962/1916/366 815/1917/366 +f 804/1921/377 1117/1925/377 803/1922/449 +f 797/1924/449 803/1922/449 1117/1925/377 +f 813/1926/449 797/1924/449 1115/1908/366 +f 1119/1928/377 814/2455/377 813/1926/449 +f 1117/1925/377 804/1921/377 806/1929/434 +f 807/1930/434 814/2455/377 1119/1928/377 +f 1113/1905/371 806/1929/434 807/1930/434 +f 796/1477/448 963/1912/387 816/1669/435 +f 816/1669/435 801/1474/435 796/1477/448 +f 800/1473/435 959/1671/435 961/1931/387 +f 812/1932/387 961/1931/387 960/1933/367 +f 817/2456/367 798/1471/413 964/1919/376 +f 798/1471/413 808/1486/413 811/1918/376 +f 808/1486/413 960/2457/367 811/1918/376 +f 1111/2458/365 1110/2459/365 1120/1935/365 +f 1120/1935/365 1327/2460/365 1116/1936/365 +f 1116/1936/365 1115/2461/365 1117/1937/365 +f 1117/1937/365 1113/2462/365 1111/2458/365 +f 1111/2458/365 1120/1935/365 1117/1937/365 +f 1121/1938/451 1134/1962/456 1122/1939/370 +f 1124/1941/452 1135/1953/457 1125/1942/367 +f 1127/1944/453 1136/1954/458 1128/1945/371 +f 1130/1947/454 1133/1950/455 1131/1948/366 +f 1133/1950/455 1121/1938/451 1123/1940/391 +f 1134/1951/456 1124/1941/452 1126/1943/387 +f 1135/1953/457 1127/1944/453 1129/1946/376 +f 1136/1954/458 1130/1947/454 1132/1949/377 +f 1137/1955/459 1141/2463/463 1136/1954/458 +f 1138/1956/460 1139/2464/461 1133/1950/455 +f 1139/1957/461 1142/2465/464 1121/1938/451 +f 1140/1958/462 1146/2466/466 1124/1941/452 +f 1135/1953/457 1143/2467/465 1137/1959/459 +f 1141/1960/463 1138/2468/460 1130/1947/454 +f 1142/1961/464 1140/2469/462 1134/1962/456 +f 1124/1941/452 1146/2470/466 1143/1963/465 +f 1144/1964/366 1149/1976/391 1142/1965/464 +f 1145/1967/370 1150/1978/387 1146/1968/466 +f 1147/1970/367 1151/1979/376 1137/1971/459 +f 1148/1973/371 1152/1980/377 1138/1974/460 +f 1149/1976/391 1145/2471/370 1140/1977/462 +f 1150/1978/387 1147/1970/367 1143/1972/465 +f 1151/1979/376 1148/1973/371 1141/1975/463 +f 1152/1980/377 1144/1964/366 1139/1966/461 +f 818/1981/467 1168/2005/467 1153/1982/366 +f 969/1984/370 1167/2472/370 1155/1985/391 +f 1156/1987/376 1291/2235/376 1157/1988/367 +f 968/1990/367 819/2473/468 1159/1991/468 +f 1158/1989/367 1157/1988/367 1161/1993/469 +f 1154/1983/366 1153/1982/366 1162/1995/377 +f 968/1990/367 1160/1992/367 1164/1997/387 +f 821/1999/366 1166/2002/366 1165/2000/470 +f 970/1986/391 1155/1985/391 1166/2002/366 +f 822/1998/387 1164/1997/387 1167/2003/370 +f 1159/1991/468 819/2473/468 967/1994/469 +f 820/2001/470 1165/2000/470 1168/2005/467 +f 1171/2008/472 1174/2011/393 1169/2006/366 +f 1169/2006/366 1002/1737/384 1170/2007/471 +f 1172/2009/473 1004/1739/392 1005/1740/393 +f 1173/2010/474 1179/2474/474 991/1726/382 +f 991/1726/382 1179/2474/474 1174/2011/393 +f 1174/2012/406 1183/2030/400 1175/2013/405 +f 1169/2014/405 1175/2013/405 1176/2015/396 +f 1002/2016/396 1176/2015/396 1177/2017/395 +f 1173/2019/403 1182/2475/402 1178/2020/401 +f 994/2022/398 1181/2025/398 1180/2023/404 +f 993/2018/395 1177/2017/395 1181/2025/398 +f 1180/2023/404 1182/2476/402 1173/2026/403 +f 1181/2029/366 1177/2477/366 1182/2027/366 +f 1177/2477/366 1176/2478/366 1182/2027/366 +f 1176/2478/366 1175/2479/366 1183/2480/366 +f 1183/2480/366 1178/2481/366 1176/2478/366 +f 1178/2481/366 1182/2027/366 1176/2478/366 +f 1179/2021/399 1178/2020/401 1183/2030/400 +f 1184/2031/428 1197/2044/365 1185/2032/365 +f 1187/2034/429 1198/2482/370 1188/2035/370 +f 1190/2037/430 1199/2047/372 1191/2038/372 +f 1193/2040/431 1196/2043/371 1194/2041/371 +f 1196/2043/371 1184/2031/428 1186/2033/428 +f 1197/2044/365 1187/2034/429 1189/2036/429 +f 1198/2045/370 1190/2037/430 1192/2039/430 +f 1199/2047/372 1193/2040/431 1195/2042/431 +f 1196/2050/367 1193/2483/367 1199/2484/367 +f 1199/2484/367 1190/2485/367 1198/2048/367 +f 1198/2048/367 1187/2486/367 1197/2049/367 +f 1197/2049/367 1184/2487/367 1196/2050/367 +f 1196/2050/367 1199/2484/367 1198/2048/367 +f 827/1858/434 826/2488/475 1200/2051/449 +f 834/2052/434 833/2055/375 1108/2053/375 +f 833/2055/375 832/2059/476 1202/2056/437 +f 831/2057/475 834/2052/434 1201/2054/434 +f 825/2060/476 1097/1865/437 1098/1867/414 +f 1084/1890/477 1106/1889/367 832/2059/476 +f 1106/1889/367 1202/2056/437 832/2059/476 +f 825/2060/476 1098/1867/414 1084/1890/477 +f 1089/2061/436 1096/2489/374 826/2062/475 +f 1096/2489/374 1200/2051/449 826/2062/475 +f 1109/2058/449 1090/1854/366 831/2063/475 +f 1090/1854/366 1089/2061/436 831/2063/475 +f 1001/2064/390 1204/2068/479 1203/2065/478 +f 1000/2067/389 1206/2070/481 1204/2068/479 +f 1000/2067/389 995/2072/385 1205/2069/480 +f 1004/2071/392 1207/2074/482 1205/2069/480 +f 1172/2073/473 1208/2076/483 1207/2074/482 +f 987/2078/378 989/2066/380 1203/2065/478 +f 987/2078/378 1210/2079/485 1211/2080/486 +f 1007/2081/394 1211/2080/486 1212/2082/487 +f 1023/2084/409 1032/2083/417 1212/2082/487 +f 1209/2088/371 990/2490/371 1114/2089/371 +f 1208/2491/365 1209/2088/365 1214/2090/365 +f 1213/2091/365 1212/2492/365 1210/2092/365 +f 1212/2492/365 1211/2493/365 1210/2092/365 +f 1208/2491/365 1214/2090/365 1213/2091/365 +f 1205/2093/365 1207/2494/365 1208/2491/365 +f 1204/2495/365 1206/2496/365 1205/2093/365 +f 1210/2092/365 1203/2497/365 1205/2093/365 +f 1203/2497/365 1204/2495/365 1205/2093/365 +f 1205/2093/365 1208/2491/365 1213/2091/365 +f 1154/2094/365 1163/2498/365 1215/2095/365 +f 1215/2095/365 1308/2279/365 967/1686/365 +f 1308/2279/365 1156/2499/365 1158/2500/365 +f 967/1686/365 1308/2279/365 1158/2500/365 +f 967/1686/365 818/1497/365 1215/2095/365 +f 1219/2105/494 1225/2111/500 1220/2106/495 +f 1222/2108/497 1281/2205/543 1223/2109/498 +f 1225/2111/500 1228/2197/503 1226/2112/501 +f 1223/2109/498 1282/2208/544 1227/2113/502 +f 1228/2114/503 1232/2119/494 1229/2115/496 +f 1227/2113/502 1282/2208/544 1230/2117/504 +f 1232/2119/494 1239/2126/500 1233/2120/495 +f 1234/2121/506 1241/2128/506 1235/2122/506 +f 1231/2118/505 1230/2117/504 1237/2124/507 +f 1239/2126/500 1267/2176/503 1240/2127/501 +f 1241/2128/508 1246/2133/514 1242/2129/509 +f 1237/2124/507 1248/2135/511 1243/2130/511 +f 1246/2133/514 1252/2201/503 1247/2134/501 +f 1248/2135/511 1284/2501/372 1249/2136/372 +f 1250/2137/515 1253/2141/536 1251/2138/516 +f 1252/2139/503 1219/2105/494 1221/2107/496 +f 1253/2141/518 1281/2205/543 1222/2108/497 +f 1255/2143/521 1254/2142/520 1242/2129/509 +f 1257/2145/521 1258/2146/523 1220/2106/495 +f 1260/2148/521 1261/2149/523 1233/2120/495 +f 1250/2137/530 1245/2132/513 1240/2127/501 +f 1239/2126/500 1273/2194/540 1269/2193/539 +f 1225/2111/500 1276/2198/540 1272/2196/539 +f 1246/2133/514 1279/2202/542 1275/2200/539 +f 856/1538/545 853/1535/546 838/1520/546 +f 850/1532/547 848/1530/548 844/1526/548 +f 853/1535/546 851/1533/549 840/1522/549 +f 857/1539/365 856/1538/545 837/1519/545 +f 848/1530/548 847/1529/550 845/1527/550 +f 851/1533/549 850/1532/547 842/1524/547 +f 835/1517/551 855/2217/551 858/2216/372 +f 972/1692/552 854/2219/552 855/2217/551 +f 839/2218/553 852/2502/553 854/2219/552 +f 849/2220/554 852/2502/553 839/2218/553 +f 846/2222/555 849/2220/554 841/2221/554 +f 974/2224/556 846/2222/555 843/2223/555 +f 1289/2233/564 1215/2265/564 1163/1996/377 +f 1156/1987/376 1308/2256/565 1290/2234/565 +f 1289/2237/372 1162/2503/372 1153/2504/372 +f 1153/2504/372 1168/2505/372 1289/2237/372 +f 1168/2505/372 1161/2238/372 1289/2237/372 +f 1161/2238/372 1157/2506/372 1290/2236/372 +f 1157/2506/372 1291/2507/372 1290/2236/372 +f 1292/2239/365 1306/2254/365 1293/2240/365 +f 1295/2242/367 1303/2300/387 1296/2243/387 +f 1298/2245/377 1305/2253/371 1292/2239/371 +f 1300/2247/391 1312/2261/366 1301/2248/366 +f 1303/2250/387 1307/2508/566 1304/2251/566 +f 1305/2253/371 1309/2258/376 1306/2254/376 +f 1307/2255/566 1290/2234/565 1308/2256/565 +f 1309/2258/376 1295/2242/367 1297/2244/367 +f 1310/2259/567 1300/2247/391 1302/2249/391 +f 1312/2261/366 1298/2245/377 1299/2246/377 +f 1313/2262/367 1323/2289/376 1314/2263/376 +f 1215/2265/564 1289/2233/564 1310/2259/567 +f 1306/2254/365 1297/2244/365 1316/2266/365 +f 1296/2243/365 1319/2509/365 1316/2268/365 +f 1292/2239/365 1294/2510/365 1317/2269/365 +f 1299/2246/365 1317/2511/365 1315/2270/365 +f 1301/2248/365 1315/2512/365 1314/2271/365 +f 1311/2272/365 1302/2249/365 1314/2273/365 +f 1304/2275/365 1318/2513/365 1319/2276/365 +f 1308/2279/365 1215/2095/365 1318/2277/365 +f 1215/2095/365 1311/2514/365 1318/2277/365 +f 1320/2280/371 1324/2291/377 1319/2281/377 +f 1321/2283/366 1325/2292/391 1293/2284/391 +f 1322/2286/370 1326/2293/387 1317/2287/387 +f 1323/2289/376 1320/2515/371 1318/2290/371 +f 1324/2291/377 1321/2283/366 1316/2285/366 +f 1325/2292/391 1322/2286/370 1294/2288/370 +f 1326/2293/387 1313/2262/367 1315/2264/367 +f 1326/2294/372 1322/2516/372 1305/2253/372 +f 1313/2295/372 1326/2517/372 1298/2245/372 +f 1323/2296/372 1313/2518/372 1312/2261/372 +f 1305/2253/372 1322/2519/372 1325/2297/372 +f 1309/2258/372 1325/2520/372 1321/2298/372 +f 1321/2299/372 1324/2521/372 1303/2300/372 +f 1310/2301/372 1320/2522/372 1323/2302/372 +f 1324/2303/372 1320/2523/372 1307/2304/372 +f 1289/2237/372 1290/2236/372 1320/2305/372 +f 1290/2236/372 1307/2524/372 1320/2305/372 +f 883/2307/568 884/2320/568 891/2308/569 +f 889/2310/371 888/2324/428 976/2311/428 +f 980/2313/431 889/2310/371 881/2312/371 +f 882/2315/371 886/2319/371 885/2316/431 +f 977/2318/428 979/2326/428 886/2319/371 +f 883/2307/568 978/2317/431 885/2316/431 +f 980/2313/431 880/2314/431 873/2321/568 +f 871/2323/570 976/2311/428 888/2324/428 +f 979/2326/428 977/2318/428 874/2327/570 +f 896/2329/571 890/2328/570 874/2327/570 +f 892/2322/568 873/2321/568 872/2330/569 +f 871/2323/570 887/2325/570 893/2332/571 +f 924/2333/371 906/2338/371 905/2334/449 +f 902/1590/366 901/1589/366 923/2335/449 +f 921/2336/437 898/1586/367 981/1711/367 +f 921/2336/437 903/2337/437 906/2338/371 +f 912/2339/371 931/2525/371 936/2340/376 +f 910/2342/366 939/2354/366 937/2343/377 +f 913/2345/370 934/2355/370 938/2346/391 +f 909/2348/367 940/2351/367 935/2349/387 +f 908/2341/376 936/2340/376 940/2351/367 +f 911/2344/377 937/2343/377 931/2352/371 +f 915/2347/391 938/2346/391 939/2354/366 +f 914/2350/387 935/2349/387 934/2355/370 +f 919/2356/572 927/1622/572 926/1621/573 +f 917/2358/574 982/2357/573 926/1621/573 +f 927/1622/572 919/2356/572 920/2360/575 +f 1171/2526/372 1170/2527/372 1022/2528/372 +f 1170/2527/372 1003/2529/372 998/2530/372 +f 1003/2529/372 1044/2531/372 1045/2532/372 +f 998/2530/372 1022/2528/372 1170/2527/372 +f 1022/2528/372 1021/2362/372 1171/2526/372 +f 1003/2529/372 1045/2532/372 998/2530/372 +f 1218/2364/372 1171/2526/372 1021/2362/372 +f 1288/2533/372 1285/2534/372 1286/2535/372 +f 1285/2534/372 1218/2364/372 1217/2363/372 +f 1217/2363/372 1286/2535/372 1285/2534/372 +f 945/2365/576 948/2536/576 984/2366/577 +f 944/2368/578 950/2537/578 985/2369/579 +f 985/2369/579 948/2536/576 945/2365/576 +f 990/1910/447 1116/1909/391 1327/2371/370 +f 1328/2372/370 1327/2371/370 1120/2373/387 +f 1329/2375/431 1342/2388/372 1330/2376/372 +f 1332/2378/430 1343/2538/370 1333/2379/370 +f 1335/2381/429 1344/2391/365 1336/2382/365 +f 1338/2384/428 1341/2387/371 1339/2385/371 +f 1341/2387/371 1329/2375/431 1331/2377/431 +f 1342/2388/372 1332/2378/430 1334/2380/430 +f 1343/2389/370 1335/2381/429 1337/2383/429 +f 1344/2391/365 1338/2384/428 1340/2386/428 +f 1341/2393/366 1338/2539/366 1343/2394/366 +f 1338/2539/366 1344/2540/366 1343/2394/366 +f 1344/2540/366 1335/2541/366 1343/2394/366 +f 1343/2394/366 1332/2542/366 1342/2543/366 +f 1342/2543/366 1329/2392/366 1343/2394/366 diff --git a/src/main/resources/assets/hbm/models/weapons/greasegun.obj b/src/main/resources/assets/hbm/models/weapons/greasegun.obj new file mode 100644 index 000000000..666f8fc0e --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/greasegun.obj @@ -0,0 +1,5025 @@ +# Blender v2.79 (sub 0) OBJ File: 'greasegun.blend' +# www.blender.org +o Bullet +v 0.000000 -0.293931 1.531675 +v -0.078125 -0.313602 1.538834 +v -0.135317 -0.367344 1.558395 +v -0.156250 -0.440758 1.585115 +v -0.135317 -0.514171 1.611836 +v -0.078125 -0.567913 1.631396 +v 0.000000 -0.587584 1.638556 +v 0.078125 -0.567914 1.631396 +v 0.135316 -0.514171 1.611836 +v 0.156250 -0.440758 1.585115 +v 0.135316 -0.367344 1.558395 +v 0.078125 -0.313602 1.538834 +v 0.000000 -0.122921 2.001521 +v -0.078125 -0.142592 2.008681 +v -0.135317 -0.196334 2.028241 +v -0.156250 -0.269747 2.054962 +v -0.135317 -0.343161 2.081682 +v -0.078125 -0.396903 2.101243 +v 0.000000 -0.416574 2.108402 +v 0.078125 -0.396903 2.101243 +v 0.135316 -0.343161 2.081682 +v 0.156250 -0.269747 2.054962 +v 0.135316 -0.196334 2.028241 +v 0.078125 -0.142592 2.008681 +v 0.000000 -0.095498 2.191073 +v -0.058594 -0.110252 2.196443 +v -0.101488 -0.150559 2.211114 +v -0.117188 -0.205619 2.231154 +v -0.101488 -0.260679 2.251194 +v -0.058594 -0.300986 2.265865 +v 0.000000 -0.315739 2.271235 +v 0.058594 -0.300986 2.265865 +v 0.101487 -0.260679 2.251194 +v 0.117188 -0.205619 2.231154 +v 0.101487 -0.150559 2.211114 +v 0.058594 -0.110252 2.196443 +v 0.000000 -0.147536 2.276525 +v -0.019531 -0.152454 2.278315 +v -0.033830 -0.165889 2.283205 +v -0.039062 -0.184243 2.289885 +v -0.033830 -0.202596 2.296565 +v -0.019531 -0.216031 2.301455 +v 0.000000 -0.220949 2.303245 +v 0.019531 -0.216032 2.301455 +v 0.033829 -0.202596 2.296565 +v 0.039062 -0.184243 2.289885 +v 0.033829 -0.165889 2.283205 +v 0.019531 -0.152454 2.278315 +vt 0.676595 0.272573 +vt 0.683036 0.263897 +vt 0.689476 0.289927 +vt 0.686754 0.296278 +vt 0.676595 0.289927 +vt 0.683036 0.298603 +vt 0.679317 0.296278 +vt 0.675599 0.281250 +vt 0.679317 0.266222 +vt 0.686754 0.266222 +vt 0.689476 0.272573 +vt 0.690473 0.281250 +vt 0.636905 0.298611 +vt 0.660714 0.291667 +vt 0.660714 0.298611 +vt 0.636905 0.333333 +vt 0.660714 0.326389 +vt 0.660714 0.333333 +vt 0.636905 0.263889 +vt 0.660714 0.270833 +vt 0.636905 0.270833 +vt 0.636905 0.284722 +vt 0.636905 0.291667 +vt 0.636905 0.326389 +vt 0.660714 0.319444 +vt 0.636905 0.347222 +vt 0.660714 0.340278 +vt 0.660714 0.347222 +vt 0.636905 0.277778 +vt 0.660714 0.284722 +vt 0.636905 0.312500 +vt 0.636905 0.319444 +vt 0.636905 0.305556 +vt 0.660714 0.305556 +vt 0.636905 0.340278 +vt 0.660714 0.277778 +vt 0.660714 0.312500 +vt 0.669643 0.340278 +vt 0.669643 0.347222 +vt 0.669643 0.284722 +vt 0.669643 0.312500 +vt 0.669643 0.319444 +vt 0.669643 0.305556 +vt 0.669643 0.277778 +vt 0.669643 0.291667 +vt 0.669643 0.298611 +vt 0.669643 0.333333 +vt 0.660714 0.263889 +vt 0.669643 0.270833 +vt 0.669643 0.326389 +vt 0.675595 0.347222 +vt 0.675595 0.277778 +vt 0.675595 0.284722 +vt 0.675595 0.319444 +vt 0.675595 0.305556 +vt 0.675595 0.340278 +vt 0.675595 0.312500 +vt 0.675595 0.291667 +vt 0.675595 0.298611 +vt 0.675595 0.326389 +vt 0.675595 0.333333 +vt 0.675595 0.263889 +vt 0.675595 0.270833 +vt 0.676042 0.302196 +vt 0.681100 0.302196 +vt 0.678571 0.312365 +vt 0.669643 0.263889 +vt 0.677132 0.311457 +vt 0.676042 0.308915 +vt 0.675653 0.305556 +vt 0.677132 0.299654 +vt 0.678571 0.298746 +vt 0.680011 0.299654 +vt 0.681490 0.305556 +vt 0.681100 0.308915 +vt 0.680011 0.311457 +vn 0.0000 -0.3420 -0.9397 +vn -0.5000 0.8138 -0.2962 +vn -0.8616 0.5019 -0.0754 +vn -0.4975 0.8441 -0.1999 +vn 0.8660 -0.4698 0.1710 +vn 0.9949 0.0345 0.0948 +vn 0.8616 -0.4330 0.2649 +vn -0.0000 -0.9397 0.3420 +vn -0.4974 -0.7752 0.3894 +vn -0.5000 -0.8138 0.2962 +vn -1.0000 0.0000 -0.0000 +vn -0.8660 0.4698 -0.1710 +vn 1.0000 -0.0000 0.0000 +vn 0.8616 0.5019 -0.0754 +vn 0.4975 -0.7752 0.3894 +vn -0.0000 -0.9004 0.4350 +vn -0.8660 -0.4698 0.1710 +vn -0.9949 0.0345 0.0948 +vn 0.5000 0.8138 -0.2962 +vn 0.8660 0.4698 -0.1710 +vn 0.0000 0.9397 -0.3420 +vn -0.0000 0.9694 -0.2455 +vn 0.5000 -0.8138 0.2962 +vn -0.8616 -0.4330 0.2649 +vn 0.4975 0.8441 -0.1999 +vn 0.4331 -0.5339 0.7262 +vn 0.0000 -0.6430 0.7659 +vn -0.8661 0.1709 0.4697 +vn 0.4331 0.8758 0.2131 +vn 0.7501 0.5779 0.3215 +vn -0.0000 0.9848 0.1734 +vn -0.7501 -0.2360 0.6178 +vn -0.7501 0.5779 0.3215 +vn -0.4331 0.8758 0.2131 +vn 0.7501 -0.2360 0.6178 +vn -0.4331 -0.5339 0.7262 +vn 0.8661 0.1709 0.4697 +vn 0.0000 -0.0388 0.9992 +vn -0.3276 0.1389 0.9346 +vn -0.3782 0.3166 0.8699 +vn 0.3276 0.4943 0.8052 +vn 0.0000 0.6720 0.7405 +vn 0.1891 0.0088 0.9819 +vn 0.1891 0.6244 0.7579 +vn -0.3276 0.4943 0.8052 +vn -0.1891 0.6244 0.7579 +vn 0.3782 0.3166 0.8699 +vn 0.3276 0.1389 0.9346 +vn -0.1891 0.0088 0.9819 +s off +f 9/1/1 7/2/1 3/3/1 +f 3/3/1 2/4/1 11/5/1 +f 2/4/1 1/6/1 11/5/1 +f 1/6/1 12/7/1 11/5/1 +f 11/5/1 10/8/1 9/1/1 +f 9/1/1 8/9/1 7/2/1 +f 7/2/1 6/10/1 5/11/1 +f 5/11/1 4/12/1 7/2/1 +f 4/12/1 3/3/1 7/2/1 +f 11/5/1 9/1/1 3/3/1 +s 1 +f 2/13/2 15/14/3 14/15/4 +f 9/16/5 22/17/6 21/18/7 +f 7/19/8 18/20/9 6/21/10 +f 4/22/11 15/14/3 3/23/12 +f 10/24/13 23/25/14 22/17/6 +f 7/26/8 20/27/15 19/28/16 +f 5/29/17 16/30/18 4/22/11 +f 12/31/19 23/25/14 11/32/20 +f 1/33/21 14/15/4 13/34/22 +f 9/16/5 20/27/15 8/35/23 +f 5/29/17 18/20/9 17/36/24 +f 1/33/21 24/37/25 12/31/19 +f 19/28/16 32/38/26 31/39/27 +f 17/36/24 28/40/28 16/30/18 +f 23/25/14 36/41/29 35/42/30 +f 14/15/4 25/43/31 13/34/22 +f 21/18/7 32/38/26 20/27/15 +f 18/20/9 29/44/32 17/36/24 +f 24/37/25 25/43/31 36/41/29 +f 14/15/4 27/45/33 26/46/34 +f 22/17/6 33/47/35 21/18/7 +f 19/48/16 30/49/36 18/20/9 +f 16/30/18 27/45/33 15/14/3 +f 22/17/6 35/42/30 34/50/37 +f 32/38/26 43/51/38 31/39/27 +f 28/40/28 41/52/39 40/53/40 +f 36/41/29 47/54/41 35/42/30 +f 26/46/34 37/55/42 25/43/31 +f 33/47/35 44/56/43 32/38/26 +f 30/49/36 41/52/39 29/44/32 +f 36/41/29 37/55/42 48/57/44 +f 26/46/34 39/58/45 38/59/46 +f 33/47/35 46/60/47 45/61/48 +f 30/49/36 43/62/38 42/63/49 +f 28/40/28 39/58/45 27/45/33 +f 35/42/30 46/60/47 34/50/37 +f 41/64/39 45/65/48 37/66/42 +f 2/13/2 3/23/12 15/14/3 +f 9/16/5 10/24/13 22/17/6 +f 7/19/8 19/48/16 18/20/9 +f 4/22/11 16/30/18 15/14/3 +f 10/24/13 11/32/20 23/25/14 +f 7/26/8 8/35/23 20/27/15 +f 5/29/17 17/36/24 16/30/18 +f 12/31/19 24/37/25 23/25/14 +f 1/33/21 2/13/2 14/15/4 +f 9/16/5 21/18/7 20/27/15 +f 5/29/17 6/21/10 18/20/9 +f 1/33/21 13/34/22 24/37/25 +f 19/28/16 20/27/15 32/38/26 +f 17/36/24 29/44/32 28/40/28 +f 23/25/14 24/37/25 36/41/29 +f 14/15/4 26/46/34 25/43/31 +f 21/18/7 33/47/35 32/38/26 +f 18/20/9 30/49/36 29/44/32 +f 24/37/25 13/34/22 25/43/31 +f 14/15/4 15/14/3 27/45/33 +f 22/17/6 34/50/37 33/47/35 +f 19/48/16 31/67/27 30/49/36 +f 16/30/18 28/40/28 27/45/33 +f 22/17/6 23/25/14 35/42/30 +f 32/38/26 44/56/43 43/51/38 +f 28/40/28 29/44/32 41/52/39 +f 36/41/29 48/57/44 47/54/41 +f 26/46/34 38/59/46 37/55/42 +f 33/47/35 45/61/48 44/56/43 +f 30/49/36 42/63/49 41/52/39 +f 36/41/29 25/43/31 37/55/42 +f 26/46/34 27/45/33 39/58/45 +f 33/47/35 34/50/37 46/60/47 +f 30/49/36 31/67/27 43/62/38 +f 28/40/28 40/53/40 39/58/45 +f 35/42/30 47/54/41 46/60/47 +f 37/66/42 38/68/46 39/69/45 +f 39/69/45 40/70/40 37/66/42 +f 40/70/40 41/64/39 37/66/42 +f 41/64/39 42/71/49 45/65/48 +f 42/71/49 43/72/38 45/65/48 +f 43/72/38 44/73/43 45/65/48 +f 45/65/48 46/74/47 47/75/41 +f 47/75/41 48/76/44 37/66/42 +f 45/65/48 47/75/41 37/66/42 +o Handle +v -0.250000 -1.580894 -0.329788 +v -0.250000 -1.459289 -0.374049 +v -0.250000 -1.331845 -0.351577 +v -0.250000 -1.232712 -0.268394 +v -0.250000 -1.188451 -0.146789 +v -0.250000 -1.210923 -0.019345 +v -0.250000 -1.294106 0.079788 +v -0.250000 -1.415711 0.124049 +v -0.250000 -1.543154 0.101577 +v -0.250000 -1.642288 0.018394 +v -0.250000 -1.686549 -0.103211 +v -0.250000 -1.664077 -0.230654 +v -0.500000 -1.580894 -0.329788 +v -0.500000 -1.459289 -0.374049 +v -0.500000 -1.331845 -0.351577 +v -0.500000 -1.232712 -0.268394 +v -0.500000 -1.188451 -0.146789 +v -0.500000 -1.210923 -0.019345 +v -0.500000 -1.294106 0.079788 +v -0.500000 -1.415711 0.124049 +v -0.500000 -1.543154 0.101577 +v -0.500000 -1.642288 0.018394 +v -0.500000 -1.686549 -0.103211 +v -0.500000 -1.664077 -0.230654 +v -0.593750 -0.612984 1.052531 +v -0.593750 -0.521780 1.019336 +v -0.593750 -0.426197 1.036189 +v -0.593750 -0.351847 1.098576 +v -0.593750 -0.318652 1.189780 +v -0.593750 -0.335506 1.285363 +v -0.593750 -0.397893 1.359713 +v -0.593750 -0.489097 1.392909 +v -0.593750 -0.584679 1.376055 +v -0.593750 -0.659029 1.313668 +v -0.593750 -0.692225 1.222464 +v -0.593750 -0.675371 1.126881 +v -0.781250 -0.612984 1.052531 +v -0.781250 -0.521780 1.019336 +v -0.781250 -0.426197 1.036189 +v -0.781250 -0.351847 1.098576 +v -0.781250 -0.318652 1.189780 +v -0.781250 -0.335506 1.285363 +v -0.781250 -0.397893 1.359713 +v -0.781250 -0.489097 1.392909 +v -0.781250 -0.584679 1.376055 +v -0.781250 -0.659029 1.313668 +v -0.781250 -0.692225 1.222464 +v -0.781250 -0.675371 1.126881 +v -0.750000 -0.643681 1.226622 +v -0.625000 -0.643681 1.226622 +v -0.750000 -0.438893 1.083228 +v -0.625000 -0.438893 1.083228 +v -0.750000 -0.582287 0.878440 +v -0.750000 -0.787075 1.021834 +v -0.625000 -0.787075 1.021834 +v -0.625000 -0.582287 0.878440 +v -0.437500 -1.155863 0.059288 +v -0.437500 -1.360651 0.202682 +v -0.312500 -1.360651 0.202682 +v -0.312500 -1.155863 0.059288 +v -0.437500 -1.227560 -0.043106 +v -0.437500 -1.432348 0.100288 +v -0.312500 -1.432348 0.100288 +v -0.312500 -1.227560 -0.043106 +v -0.781250 -0.577135 1.103728 +v -0.781250 -0.516333 1.081598 +v -0.781250 -0.452611 1.092834 +v -0.781250 -0.403044 1.134425 +v -0.781250 -0.380914 1.195228 +v -0.781250 -0.392150 1.258950 +v -0.781250 -0.433741 1.308516 +v -0.781250 -0.494544 1.330647 +v -0.781250 -0.558265 1.319411 +v -0.781250 -0.607832 1.277819 +v -0.781250 -0.629963 1.217017 +v -0.781250 -0.618727 1.153295 +v -1.531250 -0.577135 1.103728 +v -1.531250 -0.516333 1.081598 +v -1.531250 -0.452611 1.092834 +v -1.531250 -0.403044 1.134425 +v -1.531250 -0.380914 1.195228 +v -1.531250 -0.392150 1.258950 +v -1.531250 -0.433741 1.308516 +v -1.531250 -0.494544 1.330647 +v -1.531250 -0.558265 1.319411 +v -1.531250 -0.607832 1.277819 +v -1.531250 -0.629963 1.217017 +v -1.531250 -0.618727 1.153295 +vt 0.717262 0.500032 +vt 0.727560 0.513905 +vt 0.727560 0.541651 +vt 0.668008 0.736165 +vt 0.668008 0.763835 +vt 0.647468 0.763835 +vt 0.647468 0.680609 +vt 0.657738 0.666774 +vt 0.668008 0.680609 +vt 0.577381 0.722222 +vt 0.571429 0.708333 +vt 0.577381 0.708333 +vt 0.636905 0.722222 +vt 0.625000 0.708333 +vt 0.636905 0.708333 +vt 0.636905 0.680556 +vt 0.625000 0.666667 +vt 0.636905 0.666667 +vt 0.625000 0.722222 +vt 0.577381 0.680556 +vt 0.577381 0.666667 +vt 0.571429 0.666667 +vt 0.711309 0.694407 +vt 0.706168 0.687481 +vt 0.706168 0.673629 +vt 0.706964 0.541651 +vt 0.705371 0.527778 +vt 0.706964 0.513905 +vt 0.711316 0.503749 +vt 0.723207 0.503749 +vt 0.729153 0.527778 +vt 0.723207 0.551806 +vt 0.717262 0.555524 +vt 0.711316 0.551806 +vt 0.645879 0.750000 +vt 0.647468 0.736165 +vt 0.651809 0.726037 +vt 0.657738 0.722330 +vt 0.663667 0.726037 +vt 0.669597 0.750000 +vt 0.663667 0.773963 +vt 0.657738 0.777671 +vt 0.651809 0.773963 +vt 0.669597 0.694444 +vt 0.668008 0.708280 +vt 0.663667 0.718408 +vt 0.657738 0.722115 +vt 0.651809 0.718408 +vt 0.647468 0.708280 +vt 0.645879 0.694444 +vt 0.651809 0.670481 +vt 0.663667 0.670481 +vt 0.571429 0.722222 +vt 0.625000 0.680556 +vt 0.571429 0.680556 +vt 0.708341 0.668559 +vt 0.711309 0.666703 +vt 0.714278 0.668559 +vt 0.716451 0.673629 +vt 0.717246 0.680555 +vt 0.716451 0.687481 +vt 0.714278 0.692551 +vt 0.708341 0.692552 +vt 0.705373 0.680555 +vt 0.705357 0.611111 +vt 0.693452 0.597222 +vt 0.705357 0.597222 +vt 0.705357 0.513889 +vt 0.693452 0.500000 +vt 0.705357 0.500000 +vt 0.705357 0.652778 +vt 0.693452 0.638889 +vt 0.705357 0.638889 +vt 0.705357 0.555556 +vt 0.693452 0.541667 +vt 0.705357 0.541667 +vt 0.693452 0.583333 +vt 0.705357 0.583333 +vt 0.693452 0.625000 +vt 0.705357 0.625000 +vt 0.693452 0.527778 +vt 0.705357 0.527778 +vt 0.693452 0.569444 +vt 0.705357 0.569444 +vt 0.693452 0.611111 +vt 0.693452 0.513889 +vt 0.705357 0.666667 +vt 0.693452 0.652778 +vt 0.693452 0.555556 +vt 0.636905 0.805556 +vt 0.645833 0.791667 +vt 0.645833 0.805556 +vt 0.636905 0.708333 +vt 0.645833 0.694444 +vt 0.645833 0.708333 +vt 0.636905 0.750000 +vt 0.645833 0.736111 +vt 0.645833 0.750000 +vt 0.636905 0.791667 +vt 0.645833 0.777778 +vt 0.636905 0.694444 +vt 0.645833 0.680556 +vt 0.636905 0.833333 +vt 0.645833 0.819444 +vt 0.645833 0.833333 +vt 0.636905 0.736111 +vt 0.645833 0.722222 +vt 0.636905 0.777778 +vt 0.645833 0.763889 +vt 0.636905 0.680556 +vt 0.645833 0.666667 +vt 0.636905 0.819444 +vt 0.636905 0.722222 +vt 0.636905 0.763889 +vt 0.577381 0.750000 +vt 0.625000 0.750000 +vt 0.705357 0.708333 +vt 0.669643 0.715278 +vt 0.669643 0.708333 +vt 0.705357 0.687500 +vt 0.669643 0.694444 +vt 0.669643 0.687500 +vt 0.705357 0.736111 +vt 0.669643 0.743056 +vt 0.669643 0.736111 +vt 0.705357 0.666667 +vt 0.669643 0.673611 +vt 0.669643 0.666667 +vt 0.705357 0.715278 +vt 0.669643 0.722222 +vt 0.705357 0.694444 +vt 0.669643 0.701389 +vt 0.705357 0.743056 +vt 0.669643 0.750000 +vt 0.705357 0.673611 +vt 0.669643 0.680556 +vt 0.705357 0.722222 +vt 0.669643 0.729167 +vt 0.705357 0.701389 +vt 0.705357 0.680556 +vt 0.705357 0.729167 +vt 0.693452 0.666667 +vt 0.636905 0.666667 +vt 0.636905 0.750000 +vt 0.571429 0.750000 +vt 0.705357 0.750000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8192 -0.5736 +vn 0.0000 -0.8192 0.5736 +vn 0.0000 0.9962 -0.0872 +vn 0.0000 0.9063 0.4226 +vn 0.0000 -0.9063 -0.4226 +vn 0.0000 -0.5736 -0.8192 +vn 0.0000 -0.0872 -0.9962 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 -0.4226 0.9063 +vn 0.0000 0.5736 0.8192 +vn 0.0000 -0.9962 0.0872 +vn 0.0000 0.0872 0.9962 +vn 0.9886 0.0865 0.1236 +vn -0.9886 -0.0865 -0.1236 +s off +f 71/77/50 69/78/50 67/79/50 +f 93/80/50 91/81/50 87/82/50 +f 81/83/51 83/84/51 73/85/51 +f 108/86/52 109/87/52 105/88/52 +f 100/89/52 101/90/52 99/91/52 +f 97/92/53 103/93/53 98/94/53 +f 104/95/52 105/88/52 101/90/52 +f 103/93/53 106/96/53 107/97/53 +f 106/96/53 111/98/53 107/97/53 +f 131/99/50 129/100/50 127/101/50 +f 63/102/50 62/103/50 61/104/50 +f 61/104/50 72/105/50 71/77/50 +f 71/77/50 70/106/50 69/78/50 +f 69/78/50 68/107/50 67/79/50 +f 67/79/50 66/108/50 63/102/50 +f 66/108/50 65/109/50 63/102/50 +f 65/109/50 64/110/50 63/102/50 +f 63/102/50 61/104/50 67/79/50 +f 61/104/50 71/77/50 67/79/50 +f 87/82/50 86/111/50 85/112/50 +f 85/112/50 96/113/50 95/114/50 +f 95/114/50 94/115/50 93/80/50 +f 93/80/50 92/116/50 91/81/50 +f 91/81/50 90/117/50 87/82/50 +f 90/117/50 89/118/50 87/82/50 +f 89/118/50 88/119/50 87/82/50 +f 87/82/50 85/112/50 95/114/50 +f 95/114/50 93/80/50 87/82/50 +f 73/85/51 74/120/51 75/121/51 +f 75/121/51 76/122/51 77/123/51 +f 77/123/51 78/124/51 81/83/51 +f 78/124/51 79/125/51 81/83/51 +f 79/125/51 80/126/51 81/83/51 +f 81/83/51 82/127/51 83/84/51 +f 83/84/51 84/128/51 73/85/51 +f 73/85/51 75/121/51 81/83/51 +f 75/121/51 77/123/51 81/83/51 +f 108/86/52 112/129/52 109/87/52 +f 100/89/52 104/95/52 101/90/52 +f 97/92/53 102/130/53 103/93/53 +f 104/95/52 108/86/52 105/88/52 +f 103/93/53 102/130/53 106/96/53 +f 106/96/53 110/131/53 111/98/53 +f 127/101/50 126/132/50 125/133/50 +f 125/133/50 136/134/50 127/101/50 +f 136/134/50 135/135/50 127/101/50 +f 135/135/50 134/136/50 133/137/50 +f 133/137/50 132/138/50 131/99/50 +f 131/99/50 130/139/50 129/100/50 +f 129/100/50 128/140/50 127/101/50 +f 135/135/50 133/137/50 127/101/50 +f 133/137/50 131/99/50 127/101/50 +s 1 +f 53/141/54 66/142/55 54/143/55 +f 60/144/56 61/145/57 49/146/57 +f 50/147/58 63/148/59 51/149/59 +f 57/150/60 70/151/53 58/152/53 +f 54/143/55 67/153/61 55/154/61 +f 51/149/59 64/155/52 52/156/52 +f 58/152/53 71/157/62 59/158/62 +f 55/154/61 68/159/63 56/160/63 +f 52/156/52 65/161/54 53/141/54 +f 59/158/62 72/162/56 60/144/56 +f 49/163/57 62/164/58 50/147/58 +f 56/160/63 69/165/60 57/150/60 +f 87/166/59 76/167/52 75/168/59 +f 94/169/53 83/170/62 82/171/53 +f 91/172/61 80/173/63 79/174/61 +f 88/175/52 77/176/54 76/167/52 +f 95/177/62 84/178/56 83/170/62 +f 85/179/57 74/180/58 73/181/57 +f 92/182/63 81/183/60 80/173/63 +f 89/184/54 78/185/55 77/176/54 +f 96/186/56 73/187/57 84/178/56 +f 86/188/58 75/168/59 74/180/58 +f 93/189/60 82/171/53 81/183/60 +f 90/190/55 79/174/61 78/185/55 +f 104/95/64 107/191/64 108/86/64 +f 100/89/51 103/192/64 104/95/64 +f 99/91/50 102/130/65 97/92/50 +f 101/90/65 106/96/65 102/130/65 +f 131/193/61 120/194/63 119/195/61 +f 107/191/64 112/129/51 108/86/64 +f 105/88/65 110/131/50 106/96/65 +f 128/196/52 117/197/54 116/198/52 +f 135/199/62 124/200/56 123/201/62 +f 125/202/57 114/203/58 113/204/57 +f 132/205/63 121/206/60 120/194/63 +f 129/207/54 118/208/55 117/197/54 +f 136/209/56 113/210/57 124/200/56 +f 126/211/58 115/212/59 114/203/58 +f 133/213/60 122/214/53 121/206/60 +f 130/215/55 119/195/61 118/208/55 +f 127/216/59 116/198/52 115/212/59 +f 134/217/53 123/201/62 122/214/53 +f 53/141/54 65/161/54 66/142/55 +f 60/144/56 72/162/56 61/145/57 +f 50/147/58 62/164/58 63/148/59 +f 57/150/60 69/165/60 70/151/53 +f 54/143/55 66/142/55 67/153/61 +f 51/149/59 63/148/59 64/155/52 +f 58/152/53 70/151/53 71/157/62 +f 55/154/61 67/153/61 68/159/63 +f 52/156/52 64/155/52 65/161/54 +f 59/158/62 71/157/62 72/162/56 +f 49/163/57 61/218/57 62/164/58 +f 56/160/63 68/159/63 69/165/60 +f 87/166/59 88/175/52 76/167/52 +f 94/169/53 95/177/62 83/170/62 +f 91/172/61 92/182/63 80/173/63 +f 88/175/52 89/184/54 77/176/54 +f 95/177/62 96/186/56 84/178/56 +f 85/179/57 86/188/58 74/180/58 +f 92/182/63 93/189/60 81/183/60 +f 89/184/54 90/190/55 78/185/55 +f 96/186/56 85/219/57 73/187/57 +f 86/188/58 87/166/59 75/168/59 +f 93/189/60 94/169/53 82/171/53 +f 90/190/55 91/172/61 79/174/61 +f 104/95/64 103/192/64 107/191/64 +f 100/89/51 98/220/51 103/192/64 +f 99/91/50 101/90/65 102/130/65 +f 101/90/65 105/88/65 106/96/65 +f 131/193/61 132/205/63 120/194/63 +f 107/191/64 111/221/51 112/129/51 +f 105/88/65 109/87/50 110/131/50 +f 128/196/52 129/207/54 117/197/54 +f 135/199/62 136/209/56 124/200/56 +f 125/202/57 126/211/58 114/203/58 +f 132/205/63 133/213/60 121/206/60 +f 129/207/54 130/215/55 118/208/55 +f 136/209/56 125/222/57 113/210/57 +f 126/211/58 127/216/59 115/212/59 +f 133/213/60 134/217/53 122/214/53 +f 130/215/55 131/193/61 119/195/61 +f 127/216/59 128/196/52 116/198/52 +f 134/217/53 135/199/62 123/201/62 +o Magazine +v 0.187500 -0.312500 1.375000 +v 0.187500 -0.312500 2.375000 +v -0.187500 -0.312500 2.375000 +v -0.187500 -0.312500 1.375000 +v -0.187500 -6.687500 1.375000 +v -0.187500 -6.687500 2.375000 +v 0.187500 -6.687500 2.375000 +v 0.187500 -6.687500 1.375000 +v 0.125000 -0.187500 1.375000 +v -0.125000 -0.187500 1.375000 +v 0.062500 -0.187500 1.875000 +v -0.062500 -0.187500 1.875000 +v -0.062500 -0.187500 1.375000 +v -0.125000 -0.187500 1.875000 +v 0.062500 -0.187500 1.375000 +v 0.125000 -0.187500 1.875000 +v 0.187500 -0.312500 1.875000 +v -0.187500 -0.312500 1.875000 +v 0.062500 -0.312500 1.875000 +v -0.062500 -0.312500 1.875000 +v 0.062500 -0.312500 1.375000 +v -0.062500 -0.312500 1.375000 +vt 0.779762 0.041667 +vt 0.779762 0.750000 +vt 0.755952 0.750000 +vt 0.797619 0.041667 +vt 0.845238 0.041667 +vt 0.845238 0.750000 +vt 0.821429 0.750000 +vt 0.732143 0.041667 +vt 0.779762 -0.000000 +vt 0.863095 0.041667 +vt 0.857143 0.750000 +vt 0.851190 0.750000 +vt 0.797619 0.805556 +vt 0.800595 0.861111 +vt 0.797619 0.861111 +vt 0.806548 0.861111 +vt 0.800595 0.805556 +vt 0.806548 0.805556 +vt 0.776786 0.805556 +vt 0.779762 0.861111 +vt 0.776786 0.861111 +vt 0.770833 0.805556 +vt 0.770833 0.861111 +vt 0.797619 0.875000 +vt 0.803571 0.875000 +vt 0.779762 0.875000 +vt 0.773810 0.875000 +vt 0.797619 0.750000 +vt 0.791667 0.805556 +vt 0.785714 0.805556 +vt 0.791667 0.861111 +vt 0.785714 0.861111 +vt 0.779762 0.805556 +vt 0.779762 0.791667 +vt 0.797619 0.791667 +vt 0.732143 0.750000 +vt 0.732143 0.000000 +vt 0.863095 0.750000 +vt 0.779762 0.805556 +vt 0.797619 0.805556 +vt 0.773810 0.791667 +vt 0.803571 0.791667 +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.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8944 0.4472 0.0000 +vn -0.8944 0.4472 0.0000 +s off +f 142/223/66 139/224/66 154/225/66 +f 143/226/67 139/224/67 142/223/67 +f 144/227/68 137/228/68 153/229/68 +f 141/230/69 143/231/69 142/223/69 +f 141/232/70 158/233/70 157/234/70 +f 147/235/71 145/236/71 151/237/71 +f 137/238/72 152/239/72 153/240/72 +f 150/241/71 149/242/71 146/243/71 +f 154/244/73 146/243/73 140/245/73 +f 157/246/70 145/236/70 137/247/70 +f 146/243/70 158/248/70 140/249/70 +f 138/250/71 155/251/71 156/252/71 +f 147/235/66 157/253/66 155/251/66 +f 158/254/68 148/255/68 156/252/68 +f 156/252/71 157/253/71 158/254/71 +f 150/241/67 156/256/67 148/255/67 +f 155/257/67 152/239/67 147/235/67 +f 140/258/66 141/230/66 154/225/66 +f 141/230/66 142/223/66 154/225/66 +f 143/226/67 138/250/67 139/224/67 +f 138/250/68 143/226/68 153/229/68 +f 143/226/68 144/227/68 153/229/68 +f 141/230/69 144/259/69 143/231/69 +f 137/228/70 144/227/70 157/234/70 +f 144/227/70 141/232/70 157/234/70 +f 141/232/70 140/260/70 158/233/70 +f 147/235/71 152/239/71 145/236/71 +f 137/238/72 145/236/72 152/239/72 +f 150/241/71 148/255/71 149/242/71 +f 154/244/73 150/241/73 146/243/73 +f 157/246/70 151/237/70 145/236/70 +f 146/243/70 149/242/70 158/248/70 +f 154/261/71 139/224/71 156/252/71 +f 139/224/71 138/250/71 156/252/71 +f 138/250/71 153/262/71 155/251/71 +f 147/235/66 151/237/66 157/253/66 +f 158/254/68 149/242/68 148/255/68 +f 156/252/71 155/251/71 157/253/71 +f 150/241/67 154/263/67 156/256/67 +f 155/257/67 153/264/67 152/239/67 +o Flap +v 0.562500 1.125000 0.312500 +v 0.519682 0.909741 0.312500 +v 0.397748 0.727252 0.312500 +v 0.215260 0.605318 0.312500 +v 0.625000 1.125000 0.312500 +v 0.239177 0.547575 0.312500 +v 0.441942 0.683058 0.312500 +v 0.577425 0.885823 0.312500 +v 0.562500 1.125000 2.437500 +v 0.519682 0.909741 2.437500 +v 0.397747 0.727252 2.437500 +v 0.215260 0.605318 2.437500 +v 0.239177 0.547575 2.437500 +v 0.441941 0.683058 2.437500 +v 0.577424 0.885823 2.437500 +v 0.625000 1.125000 2.437500 +v 0.239177 0.547575 2.062500 +v 0.000000 0.500000 2.062500 +v 0.000000 0.562500 2.062500 +v 0.215260 0.605318 2.062500 +v 0.239177 0.547575 0.687500 +v 0.000000 0.500000 0.687500 +v 0.215260 0.605318 0.687500 +v 0.000000 0.562500 0.687500 +vt 0.431548 0.597222 +vt 0.532738 0.590278 +vt 0.431548 0.590278 +vt 0.449405 0.520833 +vt 0.431548 0.513889 +vt 0.431548 0.520833 +vt 0.449405 0.486111 +vt 0.514881 0.493056 +vt 0.514881 0.486111 +vt 0.529762 0.513889 +vt 0.532738 0.541667 +vt 0.532738 0.513889 +vt 0.529762 0.569444 +vt 0.532738 0.597222 +vt 0.532738 0.569444 +vt 0.529762 0.541667 +vt 0.431548 0.541667 +vt 0.434524 0.513889 +vt 0.434524 0.569444 +vt 0.431548 0.569444 +vt 0.434524 0.541667 +vt 0.449405 0.513889 +vt 0.452381 0.486111 +vt 0.511905 0.513889 +vt 0.514881 0.513889 +vt 0.514881 0.520833 +vt 0.532738 0.520833 +vt 0.449405 0.493056 +vt 0.529762 0.597222 +vt 0.434524 0.597222 +vt 0.452381 0.513889 +vt 0.511905 0.486111 +vt 0.532738 0.569444 +vt 0.431548 0.534722 +vt 0.532738 0.534722 +vt 0.449405 0.486111 +vt 0.514881 0.513889 +vt 0.449405 0.513889 +vt 0.532738 0.597222 +vt 0.431548 0.569444 +vt 0.514881 0.486111 +vt 0.431548 0.597222 +vt 0.532738 0.513889 +vt 0.431548 0.513889 +vn 0.0000 1.0000 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 0.0000 1.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9808 -0.1951 0.0000 +vn -0.1951 0.9808 0.0000 +vn -0.4430 0.8965 -0.0000 +vn -0.9808 0.1951 -0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.4430 -0.8965 0.0000 +vn 0.1951 -0.9808 0.0000 +vn -0.5556 0.8315 0.0000 +vn 0.5556 -0.8315 0.0000 +s off +f 174/265/74 159/266/74 167/267/74 +f 178/268/75 171/269/75 170/270/75 +f 176/271/76 182/272/76 180/273/76 +f 162/274/77 165/275/77 164/276/77 +f 160/277/77 163/278/77 166/279/77 +f 161/280/77 166/279/77 165/275/77 +f 172/281/78 170/282/78 171/269/78 +f 174/265/78 168/283/78 173/284/78 +f 173/284/78 169/285/78 172/281/78 +f 175/286/78 177/287/78 176/271/78 +f 180/273/77 181/288/77 179/289/77 +f 164/276/75 181/290/75 162/291/75 +f 174/265/74 163/278/74 159/266/74 +f 178/268/75 175/286/75 171/269/75 +f 176/271/76 177/292/76 182/272/76 +f 162/274/77 161/280/77 165/275/77 +f 160/277/77 159/293/77 163/278/77 +f 161/280/77 160/277/77 166/279/77 +f 172/281/78 169/285/78 170/282/78 +f 174/265/78 167/294/78 168/283/78 +f 173/284/78 168/283/78 169/285/78 +f 175/286/78 178/295/78 177/287/78 +f 180/273/77 182/296/77 181/288/77 +f 164/276/75 179/289/75 181/290/75 +s 1 +f 168/297/79 161/298/80 169/299/80 +f 173/284/81 163/278/82 174/265/82 +f 182/300/83 178/301/84 181/302/84 +f 167/303/85 160/304/79 168/297/79 +f 172/281/86 166/279/81 173/284/81 +f 175/286/87 180/273/88 179/289/87 +f 178/301/84 161/298/80 181/302/84 +f 179/289/87 165/275/86 172/281/86 +f 168/297/79 160/304/79 161/298/80 +f 173/284/81 166/279/81 163/278/82 +f 182/300/83 177/305/83 178/301/84 +f 167/303/85 159/306/85 160/304/79 +f 172/281/86 165/275/86 166/279/81 +f 175/286/87 176/271/88 180/273/88 +f 178/301/84 170/307/89 169/299/80 +f 169/299/80 161/298/80 178/301/84 +f 161/298/80 162/308/89 181/302/84 +f 172/281/86 171/269/90 175/286/87 +f 179/289/87 164/276/90 165/275/86 +f 172/281/86 175/286/87 179/289/87 +o Stock +v -0.375000 -0.437500 -6.562500 +v -0.437500 -0.454247 -6.562500 +v -0.483253 -0.500000 -6.562500 +v -0.500000 -0.562500 -6.562500 +v -0.483253 -0.625000 -6.562500 +v -0.437500 -0.670753 -6.562500 +v -0.375000 -0.687500 -6.562500 +v -0.312500 -0.670753 -6.562500 +v -0.266747 -0.625000 -6.562500 +v -0.250000 -0.562500 -6.562500 +v -0.266747 -0.500000 -6.562500 +v -0.312500 -0.454247 -6.562500 +v -0.375000 -2.937500 -7.062500 +v -0.375000 -0.504487 -6.812500 +v -0.437500 -0.518991 -6.804127 +v -0.483253 -0.558614 -6.781250 +v -0.500000 -0.612741 -6.750000 +v -0.483253 -0.666867 -6.718750 +v -0.437500 -0.706490 -6.695873 +v -0.375000 -0.720994 -6.687500 +v -0.312500 -0.706490 -6.695873 +v -0.266747 -0.666867 -6.718750 +v -0.250000 -0.612741 -6.750000 +v -0.266747 -0.558614 -6.781250 +v -0.312500 -0.518991 -6.804127 +v -0.375000 -0.687500 -6.995513 +v -0.437500 -0.695874 -6.981009 +v -0.483253 -0.718750 -6.941386 +v -0.500000 -0.750000 -6.887259 +v -0.483253 -0.781250 -6.833133 +v -0.437500 -0.804126 -6.793509 +v -0.375000 -0.812500 -6.779007 +v -0.312500 -0.804126 -6.793509 +v -0.266747 -0.781250 -6.833133 +v -0.250000 -0.750000 -6.887259 +v -0.266747 -0.718750 -6.941386 +v -0.312500 -0.695874 -6.981009 +v -0.375000 -0.937500 -7.062500 +v -0.437500 -0.937500 -7.045753 +v -0.483253 -0.937500 -7.000000 +v -0.500000 -0.937500 -6.937500 +v -0.483253 -0.937500 -6.875000 +v -0.437500 -0.937500 -6.829247 +v -0.375000 -0.937500 -6.812500 +v -0.312500 -0.937500 -6.829247 +v -0.266747 -0.937500 -6.875000 +v -0.250000 -0.937500 -6.937500 +v -0.266747 -0.937500 -7.000000 +v -0.312500 -0.937500 -7.045753 +v -0.437500 -2.937500 -7.045753 +v -0.483253 -2.937500 -7.000000 +v -0.500000 -2.937500 -6.937500 +v -0.483253 -2.937500 -6.875000 +v -0.437500 -2.937500 -6.829247 +v -0.375000 -2.937500 -6.812500 +v -0.312500 -2.937500 -6.829247 +v -0.266747 -2.937500 -6.875000 +v -0.250000 -2.937500 -6.937500 +v -0.266747 -2.937500 -7.000000 +v -0.312500 -2.937500 -7.045753 +v 0.375000 -0.437500 -6.562500 +v -0.324759 -3.125000 -7.062500 +v -0.378886 -3.156250 -7.045753 +v -0.418509 -3.179127 -7.000000 +v -0.433013 -3.187500 -6.937500 +v -0.418509 -3.179127 -6.875000 +v -0.378886 -3.156250 -6.829247 +v -0.324759 -3.125000 -6.812500 +v -0.270633 -3.093750 -6.829247 +v -0.231009 -3.070873 -6.875000 +v -0.216506 -3.062500 -6.937500 +v -0.231009 -3.070873 -7.000000 +v -0.270633 -3.093750 -7.045753 +v -0.187500 -3.262259 -7.062500 +v -0.218750 -3.316386 -7.045753 +v -0.241627 -3.356009 -7.000000 +v -0.250000 -3.370513 -6.937500 +v -0.241627 -3.356009 -6.875000 +v -0.218750 -3.316386 -6.829247 +v -0.187500 -3.262259 -6.812500 +v -0.156250 -3.208133 -6.829247 +v -0.133374 -3.168509 -6.875000 +v -0.125000 -3.154006 -6.937500 +v -0.133373 -3.168509 -7.000000 +v -0.156250 -3.208133 -7.045753 +v 0.000000 -3.312500 -7.062500 +v 0.000000 -3.375000 -7.045753 +v 0.000000 -3.420753 -7.000000 +v 0.000000 -3.437500 -6.937500 +v 0.000000 -3.420753 -6.875000 +v -0.000000 -3.375000 -6.829247 +v 0.000000 -3.312500 -6.812500 +v -0.000000 -3.250000 -6.829247 +v 0.000000 -3.204247 -6.875000 +v 0.000000 -3.187500 -6.937500 +v 0.000000 -3.204247 -7.000000 +v 0.000000 -3.250000 -7.045753 +v 0.437500 -0.454247 -6.562500 +v 0.483253 -0.500000 -6.562500 +v 0.500000 -0.562500 -6.562500 +v 0.483253 -0.625000 -6.562500 +v 0.437500 -0.670753 -6.562500 +v 0.375000 -0.687500 -6.562500 +v 0.312500 -0.670753 -6.562500 +v 0.266747 -0.625000 -6.562500 +v 0.250000 -0.562500 -6.562500 +v 0.266747 -0.500000 -6.562500 +v 0.312500 -0.454247 -6.562500 +v 0.375000 -2.937500 -7.062500 +v 0.375000 -0.504487 -6.812500 +v 0.437500 -0.518991 -6.804127 +v 0.483253 -0.558614 -6.781250 +v 0.500000 -0.612741 -6.750000 +v 0.483253 -0.666867 -6.718750 +v 0.437500 -0.706490 -6.695873 +v 0.375000 -0.720994 -6.687500 +v 0.312500 -0.706490 -6.695873 +v 0.266747 -0.666867 -6.718750 +v 0.250000 -0.612741 -6.750000 +v 0.266747 -0.558614 -6.781250 +v 0.312500 -0.518991 -6.804127 +v 0.375000 -0.687500 -6.995513 +v 0.437500 -0.695874 -6.981009 +v 0.483253 -0.718750 -6.941386 +v 0.500000 -0.750000 -6.887259 +v 0.483253 -0.781250 -6.833133 +v 0.437500 -0.804126 -6.793509 +v 0.375000 -0.812500 -6.779007 +v 0.312500 -0.804126 -6.793509 +v 0.266747 -0.781250 -6.833133 +v 0.250000 -0.750000 -6.887259 +v 0.266747 -0.718750 -6.941386 +v 0.312500 -0.695874 -6.981009 +v 0.375000 -0.937500 -7.062500 +v 0.437500 -0.937500 -7.045753 +v 0.483253 -0.937500 -7.000000 +v 0.500000 -0.937500 -6.937500 +v 0.483253 -0.937500 -6.875000 +v 0.437500 -0.937500 -6.829247 +v 0.375000 -0.937500 -6.812500 +v 0.312500 -0.937500 -6.829247 +v 0.266747 -0.937500 -6.875000 +v 0.250000 -0.937500 -6.937500 +v 0.266747 -0.937500 -7.000000 +v 0.312500 -0.937500 -7.045753 +v 0.437500 -2.937500 -7.045753 +v 0.483253 -2.937500 -7.000000 +v 0.500000 -2.937500 -6.937500 +v 0.483253 -2.937500 -6.875000 +v 0.437500 -2.937500 -6.829247 +v 0.375000 -2.937500 -6.812500 +v 0.312500 -2.937500 -6.829247 +v 0.266747 -2.937500 -6.875000 +v 0.250000 -2.937500 -6.937500 +v 0.266747 -2.937500 -7.000000 +v 0.312500 -2.937500 -7.045753 +v 0.324759 -3.125000 -7.062500 +v 0.378886 -3.156250 -7.045753 +v 0.418509 -3.179127 -7.000000 +v 0.433012 -3.187500 -6.937500 +v 0.418509 -3.179127 -6.875000 +v 0.378886 -3.156250 -6.829247 +v 0.324759 -3.125000 -6.812500 +v 0.270633 -3.093750 -6.829247 +v 0.231009 -3.070873 -6.875000 +v 0.216506 -3.062500 -6.937500 +v 0.231009 -3.070873 -7.000000 +v 0.270633 -3.093750 -7.045753 +v 0.187500 -3.262259 -7.062500 +v 0.218750 -3.316386 -7.045753 +v 0.241627 -3.356009 -7.000000 +v 0.250000 -3.370513 -6.937500 +v 0.241627 -3.356009 -6.875000 +v 0.218750 -3.316386 -6.829247 +v 0.187500 -3.262259 -6.812500 +v 0.156250 -3.208133 -6.829247 +v 0.133373 -3.168509 -6.875000 +v 0.125000 -3.154006 -6.937500 +v 0.133373 -3.168509 -7.000000 +v 0.156250 -3.208133 -7.045753 +v -0.375000 -0.437500 1.187500 +v -0.437500 -0.454247 1.187500 +v -0.483253 -0.500000 1.187500 +v -0.500000 -0.562500 1.187500 +v -0.483253 -0.625000 1.187500 +v -0.437500 -0.670753 1.187500 +v -0.375000 -0.687500 1.187500 +v -0.312500 -0.670753 1.187500 +v -0.266747 -0.625000 1.187500 +v -0.250000 -0.562500 1.187500 +v -0.266747 -0.500000 1.187500 +v -0.312500 -0.454247 1.187500 +v 0.375000 -0.437500 1.187500 +v 0.437500 -0.454247 1.187500 +v 0.483253 -0.500000 1.187500 +v 0.500000 -0.562500 1.187500 +v 0.483253 -0.625000 1.187500 +v 0.437500 -0.670753 1.187500 +v 0.375000 -0.687500 1.187500 +v 0.312500 -0.670753 1.187500 +v 0.266747 -0.625000 1.187500 +v 0.250000 -0.562500 1.187500 +v 0.266747 -0.500000 1.187500 +v 0.312500 -0.454247 1.187500 +vt 0.518695 0.923665 +vt 0.528925 0.923665 +vt 0.523810 0.944337 +vt 0.518695 0.937446 +vt 0.523810 0.916775 +vt 0.528925 0.937446 +vt 0.520857 0.942491 +vt 0.518695 0.937446 +vt 0.517904 0.930556 +vt 0.520857 0.918621 +vt 0.523810 0.916775 +vt 0.526763 0.918621 +vt 0.529716 0.930556 +vt 0.528925 0.937446 +vt 0.526763 0.942490 +vt 0.526763 0.942490 +vt 0.523810 0.944337 +vt 0.520857 0.942491 +vt 0.517904 0.930556 +vt 0.518695 0.923665 +vt 0.520857 0.918621 +vt 0.526763 0.918621 +vt 0.528925 0.923665 +vt 0.529716 0.930556 +vt 0.369048 0.986111 +vt 0.377976 0.993056 +vt 0.369048 0.993056 +vt 0.369048 0.965278 +vt 0.377976 0.972222 +vt 0.369048 0.972222 +vt 0.369048 0.937500 +vt 0.377976 0.930556 +vt 0.377976 0.937500 +vt 0.369048 0.951389 +vt 0.377976 0.944444 +vt 0.377976 0.951389 +vt 0.369048 1.000000 +vt 0.377976 1.000000 +vt 0.369048 0.979167 +vt 0.377976 0.979167 +vt 0.369048 0.944444 +vt 0.369048 0.958333 +vt 0.377976 0.958333 +vt 0.369048 0.916667 +vt 0.377976 0.923611 +vt 0.369048 0.923611 +vt 0.377976 0.986111 +vt 0.377976 0.965278 +vt 0.369048 0.930556 +vt 0.386905 0.944444 +vt 0.386905 0.958333 +vt 0.386905 0.916667 +vt 0.386905 0.923611 +vt 0.386905 0.986111 +vt 0.386905 0.965278 +vt 0.386905 0.930556 +vt 0.386905 0.993056 +vt 0.386905 0.972222 +vt 0.386905 0.937500 +vt 0.386905 0.951389 +vt 0.386905 1.000000 +vt 0.386905 0.979167 +vt 0.395833 0.979167 +vt 0.395833 0.937500 +vt 0.395833 0.944444 +vt 0.395833 0.958333 +vt 0.395833 0.916667 +vt 0.395833 0.923611 +vt 0.395833 0.986111 +vt 0.395833 0.965278 +vt 0.395833 0.930556 +vt 0.395833 0.993056 +vt 0.395833 0.972222 +vt 0.395833 0.951389 +vt 0.395833 1.000000 +vt 0.491071 0.979167 +vt 0.491071 0.944444 +vt 0.491071 0.958333 +vt 0.491071 0.916667 +vt 0.491071 0.923611 +vt 0.491071 0.986111 +vt 0.491071 0.965278 +vt 0.491071 0.930556 +vt 0.491071 0.993056 +vt 0.491071 0.972222 +vt 0.491071 0.937500 +vt 0.491071 0.951389 +vt 0.491071 1.000000 +vt 0.500000 0.993056 +vt 0.500000 1.000000 +vt 0.500000 0.979167 +vt 0.500000 0.944444 +vt 0.500000 0.958333 +vt 0.500000 0.916667 +vt 0.500000 0.923611 +vt 0.500000 0.986111 +vt 0.500000 0.965278 +vt 0.500000 0.930556 +vt 0.500000 0.972222 +vt 0.500000 0.937500 +vt 0.500000 0.951389 +vt 0.508929 0.944444 +vt 0.508929 0.951389 +vt 0.508929 0.993056 +vt 0.508929 1.000000 +vt 0.508929 0.979167 +vt 0.508929 0.958333 +vt 0.508929 0.923611 +vt 0.508929 0.986111 +vt 0.508929 0.965278 +vt 0.508929 0.930556 +vt 0.508929 0.972222 +vt 0.508929 0.937500 +vt 0.517857 0.937500 +vt 0.517857 0.944444 +vt 0.517857 0.951389 +vt 0.517857 0.993056 +vt 0.517857 1.000000 +vt 0.517857 0.979167 +vt 0.517857 0.958333 +vt 0.517857 0.916667 +vt 0.517857 0.923611 +vt 0.517857 0.986111 +vt 0.517857 0.965278 +vt 0.517857 0.930556 +vt 0.517857 0.972222 +vt 0.377976 0.993056 +vt 0.369048 1.000000 +vt 0.369048 0.993056 +vt 0.377976 0.930556 +vt 0.369048 0.937500 +vt 0.369048 0.930556 +vt 0.369048 0.965278 +vt 0.377976 0.972222 +vt 0.369048 0.972222 +vt 0.369048 0.951389 +vt 0.377976 0.958333 +vt 0.369048 0.958333 +vt 0.377976 0.986111 +vt 0.369048 0.986111 +vt 0.377976 0.923611 +vt 0.369048 0.923611 +vt 0.377976 0.944444 +vt 0.369048 0.944444 +vt 0.369048 0.979167 +vt 0.369048 0.916667 +vt 0.377976 0.979167 +vt 0.386905 0.965278 +vt 0.377976 0.965278 +vt 0.386905 0.944444 +vt 0.377976 0.951389 +vt 0.386905 0.979167 +vt 0.377976 0.916667 +vt 0.386905 0.923611 +vt 0.377976 0.937500 +vt 0.386905 0.972222 +vt 0.386905 0.993056 +vt 0.377976 1.000000 +vt 0.386905 0.930556 +vt 0.386905 0.951389 +vt 0.395833 0.923611 +vt 0.395833 0.958333 +vt 0.386905 0.958333 +vt 0.395833 0.944444 +vt 0.395833 0.986111 +vt 0.386905 0.986111 +vt 0.386905 0.916667 +vt 0.395833 0.937500 +vt 0.386905 0.937500 +vt 0.395833 0.979167 +vt 0.395833 0.993056 +vt 0.386905 1.000000 +vt 0.395833 0.930556 +vt 0.395833 0.972222 +vt 0.491071 0.923611 +vt 0.491071 0.958333 +vt 0.395833 0.965278 +vt 0.491071 0.944444 +vt 0.395833 0.951389 +vt 0.491071 0.979167 +vt 0.395833 0.916667 +vt 0.491071 0.937500 +vt 0.491071 0.972222 +vt 0.491071 0.993056 +vt 0.395833 1.000000 +vt 0.491071 0.930556 +vt 0.491071 0.951389 +vt 0.491071 0.986111 +vt 0.500000 0.993056 +vt 0.500000 0.923611 +vt 0.500000 0.958333 +vt 0.491071 0.965278 +vt 0.500000 0.944444 +vt 0.500000 0.986111 +vt 0.491071 0.916667 +vt 0.500000 0.972222 +vt 0.491071 1.000000 +vt 0.500000 0.937500 +vt 0.500000 0.951389 +vt 0.508929 0.958333 +vt 0.508929 0.993056 +vt 0.508929 0.923611 +vt 0.500000 0.930556 +vt 0.500000 0.965278 +vt 0.508929 0.944444 +vt 0.508929 0.979167 +vt 0.500000 0.979167 +vt 0.508929 0.916667 +vt 0.500000 0.916667 +vt 0.500000 1.000000 +vt 0.508929 0.930556 +vt 0.508929 0.972222 +vt 0.517857 0.972222 +vt 0.508929 0.965278 +vt 0.517857 0.965278 +vt 0.517857 0.979167 +vt 0.508929 0.986111 +vt 0.517857 0.986111 +vt 0.517857 1.000000 +vt 0.517857 0.916667 +vt 0.517857 0.923611 +vt 0.517857 0.930556 +vt 0.508929 0.937500 +vt 0.517857 0.937500 +vt 0.517857 0.944444 +vt 0.508929 0.951389 +vt 0.517857 0.958333 +vt 0.000000 0.937500 +vt 0.000000 0.965278 +vt 0.000000 0.979167 +vt 0.000000 0.930556 +vt 0.000000 0.958333 +vt -0.000000 0.986111 +vt 0.000000 0.923611 +vt -0.000000 0.993056 +vt 0.000000 0.916667 +vt 0.000000 0.944444 +vt 0.000000 0.916667 +vt 0.000000 0.993056 +vt 0.000000 0.951389 +vt 0.000000 0.923611 +vt 0.000000 0.986111 +vt 0.000000 0.958333 +vt 0.000000 0.951389 +vt 0.000000 0.930556 +vt 0.000000 0.979167 +vt 0.000000 0.965278 +vt 0.000000 0.944444 +vt 0.000000 0.937500 +vt 0.000000 0.972222 +vt 0.000000 0.972222 +vt 0.377976 0.916667 +vt 0.508929 0.916667 +vt 0.508929 1.000000 +vt -0.000000 1.000000 +vt 0.000000 1.000000 +vn 0.0000 0.0000 1.0000 +vn -0.0000 -0.9911 0.1334 +vn 0.5194 -0.7400 0.4273 +vn 0.5065 -0.8546 0.1144 +vn -0.9998 0.0215 -0.0058 +vn -0.8846 -0.4039 0.2332 +vn -0.8738 -0.4822 0.0628 +vn 0.4883 0.8653 -0.1129 +vn 0.8474 0.4598 -0.2654 +vn 0.4823 0.7586 -0.4380 +vn -0.4883 0.8653 -0.1129 +vn 0.0000 0.8660 -0.5000 +vn -0.4823 0.7586 -0.4380 +vn 0.8738 -0.4822 0.0628 +vn 0.8846 -0.4039 0.2332 +vn -0.5065 -0.8546 0.1144 +vn -0.5194 -0.7400 0.4273 +vn 0.0000 0.9918 -0.1278 +vn -0.8549 0.5140 -0.0698 +vn -0.8474 0.4598 -0.2654 +vn 0.9991 0.0373 -0.0215 +vn 0.9998 0.0215 -0.0058 +vn -0.0000 -0.8660 0.5000 +vn -0.9991 0.0373 -0.0215 +vn 0.8549 0.5140 -0.0698 +vn -0.0000 0.5000 -0.8660 +vn -0.8474 0.2655 -0.4598 +vn 0.8846 -0.2332 0.4039 +vn 0.9991 0.0215 -0.0373 +vn 0.0000 -0.5000 0.8660 +vn -0.9991 0.0215 -0.0373 +vn 0.8474 0.2655 -0.4598 +vn 0.5195 -0.4273 0.7400 +vn -0.8846 -0.2332 0.4039 +vn 0.4823 0.4380 -0.7586 +vn -0.4823 0.4380 -0.7586 +vn -0.5194 -0.4273 0.7400 +vn -0.5065 -0.1144 0.8546 +vn 0.4883 0.1129 -0.8653 +vn -0.0000 0.1278 -0.9918 +vn -0.8549 0.0698 -0.5140 +vn 0.8738 -0.0628 0.4822 +vn 0.9998 0.0058 -0.0215 +vn -0.0000 -0.1334 0.9911 +vn -0.9998 0.0058 -0.0215 +vn 0.8549 0.0698 -0.5140 +vn 0.5065 -0.1144 0.8546 +vn -0.8738 -0.0628 0.4822 +vn -0.4883 0.1129 -0.8653 +vn -0.5140 -0.0698 0.8549 +vn -0.0215 -0.0058 -0.9998 +vn -0.8653 -0.1129 -0.4883 +vn 0.8546 0.1144 0.5065 +vn 0.9911 0.1334 0.0000 +vn -0.0215 -0.0058 0.9998 +vn -0.9918 -0.1278 0.0000 +vn 0.8546 0.1144 -0.5065 +vn 0.4822 0.0628 0.8738 +vn -0.8653 -0.1129 0.4883 +vn 0.4822 0.0628 -0.8738 +vn -0.5140 -0.0698 -0.8549 +vn 0.4039 0.2332 0.8846 +vn 0.7400 0.4273 0.5195 +vn -0.4598 -0.2655 0.8474 +vn -0.0373 -0.0215 -0.9991 +vn -0.7586 -0.4380 -0.4823 +vn 0.8660 0.5000 0.0000 +vn -0.0373 -0.0215 0.9991 +vn -0.8660 -0.5000 -0.0000 +vn 0.7400 0.4273 -0.5195 +vn -0.7586 -0.4380 0.4823 +vn 0.4039 0.2332 -0.8846 +vn -0.4598 -0.2655 -0.8474 +vn -0.0215 -0.0373 -0.9991 +vn -0.2655 -0.4598 -0.8474 +vn 0.2332 0.4039 0.8846 +vn 0.4273 0.7400 0.5195 +vn -0.2655 -0.4598 0.8474 +vn -0.4380 -0.7586 -0.4823 +vn 0.5000 0.8660 -0.0000 +vn -0.0215 -0.0373 0.9991 +vn -0.5000 -0.8660 -0.0000 +vn 0.4273 0.7400 -0.5194 +vn -0.4380 -0.7586 0.4823 +vn 0.2332 0.4039 -0.8846 +vn 0.0000 0.4664 -0.8846 +vn 0.0000 -0.0431 -0.9991 +vn 0.0000 -0.5309 -0.8474 +vn 0.0000 0.4664 0.8846 +vn 0.0000 0.8545 0.5195 +vn -0.0000 -0.5309 0.8474 +vn 0.0000 -0.8760 -0.4823 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.0431 0.9991 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.8545 -0.5194 +vn 0.0000 -0.8760 0.4823 +vn -0.5194 -0.7400 0.4272 +vn 0.5195 -0.7400 0.4272 +vn 0.5194 -0.4273 0.7400 +vn 0.5140 -0.0698 0.8549 +vn 0.0215 -0.0058 -0.9998 +vn 0.8653 -0.1129 -0.4883 +vn -0.9911 0.1334 0.0000 +vn 0.9918 -0.1278 0.0000 +vn -0.8546 0.1144 -0.5065 +vn -0.4822 0.0628 0.8738 +vn 0.8653 -0.1129 0.4883 +vn 0.5140 -0.0698 -0.8549 +vn -0.8546 0.1144 0.5065 +vn -0.4039 0.2332 0.8846 +vn 0.4598 -0.2654 0.8474 +vn 0.0373 -0.0215 -0.9991 +vn -0.4822 0.0628 -0.8738 +vn 0.7586 -0.4380 -0.4823 +vn -0.7400 0.4272 0.5194 +vn 0.0215 -0.0058 0.9998 +vn -0.7400 0.4273 -0.5195 +vn 0.8660 -0.5000 -0.0000 +vn 0.4598 -0.2654 -0.8474 +vn 0.0215 -0.0373 -0.9991 +vn -0.2332 0.4039 0.8846 +vn 0.2655 -0.4598 0.8474 +vn 0.7586 -0.4380 0.4823 +vn -0.4039 0.2332 -0.8846 +vn 0.4380 -0.7586 -0.4823 +vn -0.5000 0.8660 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.0215 -0.0373 0.9991 +vn 0.0373 -0.0215 0.9991 +vn 0.4380 -0.7586 0.4823 +vn -0.4273 0.7400 -0.5194 +vn -0.2332 0.4039 -0.8846 +vn -0.4273 0.7400 0.5194 +vn 0.5000 -0.8660 -0.0000 +vn 0.2654 -0.4598 -0.8474 +vn 1.0000 0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +s off +f 367/309/91 371/310/91 363/311/91 +f 385/312/91 381/313/91 377/314/91 +f 363/311/91 364/315/91 365/316/91 +f 365/316/91 366/317/91 363/311/91 +f 366/317/91 367/309/91 363/311/91 +f 367/309/91 368/318/91 371/310/91 +f 368/318/91 369/319/91 371/310/91 +f 369/319/91 370/320/91 371/310/91 +f 371/310/91 372/321/91 373/322/91 +f 373/322/91 374/323/91 371/310/91 +f 374/323/91 363/311/91 371/310/91 +f 377/314/91 376/324/91 375/325/91 +f 375/325/91 386/326/91 377/314/91 +f 386/326/91 385/312/91 377/314/91 +f 385/312/91 384/327/91 383/328/91 +f 383/328/91 382/329/91 385/312/91 +f 382/329/91 381/313/91 385/312/91 +f 381/313/91 380/330/91 377/314/91 +f 380/330/91 379/331/91 377/314/91 +f 379/331/91 378/332/91 377/314/91 +s 1 +f 189/333/92 203/334/93 190/335/94 +f 186/336/95 200/337/96 187/338/97 +f 194/339/98 206/340/99 207/341/100 +f 184/342/101 196/343/102 197/344/103 +f 191/345/104 203/334/93 204/346/105 +f 188/347/106 200/337/96 201/348/107 +f 194/339/98 196/343/102 183/349/108 +f 185/350/109 197/344/103 198/351/110 +f 191/352/104 205/353/111 192/354/112 +f 189/333/92 201/348/107 202/355/113 +f 185/350/109 199/356/114 186/336/95 +f 192/354/112 206/340/99 193/357/115 +f 207/341/100 208/358/116 196/343/102 +f 197/344/103 210/359/117 198/351/110 +f 205/353/111 216/360/118 217/361/119 +f 201/348/107 214/362/120 202/355/113 +f 198/351/110 211/363/121 199/356/114 +f 205/353/111 218/364/122 206/340/99 +f 202/355/113 215/365/123 203/334/93 +f 199/356/114 212/366/124 200/337/96 +f 207/341/100 218/364/122 219/367/125 +f 197/344/103 208/358/116 209/368/126 +f 204/346/105 215/365/123 216/369/118 +f 200/337/96 213/370/127 201/348/107 +f 212/366/124 225/371/128 213/370/127 +f 208/358/116 231/372/129 220/373/130 +f 209/368/126 222/374/131 210/359/117 +f 217/361/119 228/375/132 229/376/133 +f 214/362/120 225/371/128 226/377/134 +f 210/359/117 223/378/135 211/363/121 +f 218/364/122 229/376/133 230/379/136 +f 214/362/120 227/380/137 215/365/123 +f 211/363/121 224/381/138 212/366/124 +f 219/367/125 230/379/136 231/372/129 +f 209/368/126 220/373/130 221/382/139 +f 216/369/118 227/380/137 228/383/132 +f 224/381/138 236/384/140 225/371/128 +f 231/372/129 195/385/141 220/373/130 +f 221/382/139 233/386/142 222/374/131 +f 229/376/133 239/387/143 240/388/144 +f 225/371/128 237/389/145 226/377/134 +f 222/374/131 234/390/146 223/378/135 +f 229/376/133 241/391/147 230/379/136 +f 226/377/134 238/392/148 227/380/137 +f 223/378/135 235/393/149 224/381/138 +f 230/379/136 242/394/150 231/372/129 +f 221/382/139 195/385/141 232/395/151 +f 228/383/132 238/392/148 239/396/143 +f 239/396/143 251/397/152 252/398/153 +f 235/393/149 249/399/154 236/384/140 +f 242/394/150 244/400/155 195/385/141 +f 232/395/151 246/401/156 233/386/142 +f 240/388/144 252/402/153 253/403/157 +f 237/389/145 249/399/154 250/404/158 +f 234/390/146 246/401/156 247/405/159 +f 240/388/144 254/406/160 241/391/147 +f 237/389/145 251/397/152 238/392/148 +f 235/393/149 247/405/159 248/407/161 +f 242/394/150 254/406/160 255/408/162 +f 232/395/151 244/400/155 245/409/163 +f 245/409/163 256/410/164 257/411/165 +f 252/398/153 263/412/166 264/413/167 +f 248/407/161 261/414/168 249/399/154 +f 255/408/162 256/410/164 244/400/155 +f 246/401/156 257/411/165 258/415/169 +f 252/402/153 265/416/170 253/403/157 +f 250/404/158 261/414/168 262/417/171 +f 247/405/159 258/415/169 259/418/172 +f 254/406/160 265/416/170 266/419/173 +f 250/404/158 263/412/166 251/397/152 +f 247/405/159 260/420/174 248/407/161 +f 255/408/162 266/419/173 267/421/175 +f 266/419/173 279/422/176 267/421/175 +f 257/411/165 268/423/177 269/424/178 +f 264/413/167 275/425/179 276/426/180 +f 260/420/174 273/427/181 261/414/168 +f 267/421/175 268/423/177 256/410/164 +f 257/411/165 270/428/182 258/415/169 +f 265/416/170 276/429/180 277/430/183 +f 262/417/171 273/427/181 274/431/184 +f 259/418/172 270/428/182 271/432/185 +f 266/419/173 277/430/183 278/433/186 +f 262/417/171 275/425/179 263/412/166 +f 259/418/172 272/434/187 260/420/174 +f 299/435/188 285/436/92 286/437/106 +f 296/438/105 282/439/112 283/440/104 +f 290/441/101 302/442/110 289/443/109 +f 280/444/98 292/445/102 243/446/108 +f 300/447/96 286/437/106 287/448/97 +f 297/449/189 283/440/104 284/450/94 +f 292/445/102 290/441/101 243/446/108 +f 294/451/99 280/444/98 281/452/115 +f 288/453/95 300/447/96 287/448/97 +f 285/454/92 297/449/189 284/450/94 +f 282/439/112 294/451/99 281/452/115 +f 289/443/109 301/455/114 288/453/95 +f 292/445/102 315/456/126 303/457/103 +f 306/458/122 293/459/100 294/451/99 +f 313/460/121 300/447/96 301/455/114 +f 298/461/113 309/462/190 297/449/189 +f 295/463/111 306/458/122 294/451/99 +f 314/464/117 301/455/114 302/442/110 +f 311/465/127 298/466/113 299/435/188 +f 308/467/118 295/463/111 296/438/105 +f 303/457/103 314/464/117 302/442/110 +f 305/468/125 292/445/102 293/459/100 +f 300/447/96 311/465/127 299/435/188 +f 309/462/190 296/438/105 297/449/189 +f 321/469/137 308/467/118 309/462/190 +f 316/470/130 315/456/126 304/471/116 +f 318/472/136 305/468/125 306/458/122 +f 313/460/121 324/473/138 312/474/124 +f 310/475/120 321/469/137 309/462/190 +f 319/476/133 306/458/122 307/477/119 +f 314/464/117 325/478/135 313/460/121 +f 323/479/128 310/480/120 311/465/127 +f 320/481/132 307/477/119 308/467/118 +f 315/456/126 326/482/131 314/464/117 +f 305/468/125 316/470/130 304/471/116 +f 312/474/124 323/479/128 311/465/127 +f 332/483/191 320/481/132 321/469/137 +f 291/484/192 327/485/139 316/470/130 +f 329/486/193 317/487/129 318/472/136 +f 336/488/194 324/473/138 325/478/135 +f 322/489/134 332/483/191 321/469/137 +f 330/490/195 318/472/136 319/476/133 +f 337/491/196 325/478/135 326/482/131 +f 334/492/197 322/493/134 323/479/128 +f 331/494/198 319/476/133 320/481/132 +f 327/485/139 337/491/196 326/482/131 +f 328/495/199 316/470/130 317/487/129 +f 324/473/138 334/492/197 323/479/128 +f 335/496/200 346/497/201 334/492/197 +f 344/498/202 331/494/198 332/483/191 +f 339/499/203 338/500/204 291/484/192 +f 341/501/205 328/495/199 329/486/193 +f 336/488/194 347/502/206 335/496/200 +f 333/503/207 344/498/202 332/483/191 +f 330/490/195 341/501/205 329/486/193 +f 349/504/208 336/488/194 337/491/196 +f 346/497/201 333/505/207 334/492/197 +f 331/494/198 342/506/209 330/490/195 +f 338/500/204 349/504/208 337/491/196 +f 328/495/199 339/499/203 291/484/192 +f 340/507/210 351/508/211 339/499/203 +f 347/502/206 358/509/212 346/497/201 +f 356/510/213 343/511/214 344/498/202 +f 351/508/211 350/512/215 339/499/203 +f 353/513/216 340/507/210 341/501/205 +f 360/514/217 347/502/206 348/515/218 +f 357/516/219 344/498/202 345/517/220 +f 342/506/209 353/513/216 341/501/205 +f 349/504/208 360/514/217 348/515/218 +f 358/509/212 345/518/220 346/497/201 +f 355/519/221 342/506/209 343/511/214 +f 350/512/215 361/520/222 349/504/208 +f 278/521/186 362/522/223 279/523/176 +f 277/524/183 361/520/222 278/521/186 +f 359/525/224 277/524/183 276/526/180 +f 358/509/212 276/526/180 275/425/179 +f 274/527/184 358/509/212 275/425/179 +f 356/510/213 274/528/184 273/529/181 +f 272/530/187 356/510/213 273/529/181 +f 354/531/225 272/530/187 271/532/185 +f 270/533/182 354/531/225 271/532/185 +f 352/534/226 270/533/182 269/424/178 +f 268/535/177 352/534/226 269/424/178 +f 362/522/223 268/535/177 279/523/176 +f 281/452/115 378/536/227 282/439/112 +f 289/443/109 386/537/217 290/441/101 +f 189/333/92 368/538/172 188/347/106 +f 282/439/112 379/539/209 283/440/104 +f 290/441/101 375/540/183 243/446/108 +f 190/335/94 369/541/185 189/333/92 +f 283/440/104 380/542/225 284/450/94 +f 191/345/104 370/543/225 190/335/94 +f 284/450/94 381/544/185 285/454/92 +f 184/342/101 363/545/183 183/349/108 +f 192/354/112 371/546/209 191/352/104 +f 285/436/92 382/547/172 286/437/106 +f 185/350/109 364/548/217 184/342/101 +f 193/357/115 372/549/227 192/354/112 +f 286/437/106 383/550/159 287/448/97 +f 186/336/95 365/551/218 185/350/109 +f 243/446/108 376/552/170 280/444/98 +f 194/339/98 373/553/157 193/357/115 +f 287/448/97 384/554/228 288/453/95 +f 187/338/97 366/555/228 186/336/95 +f 280/444/98 377/556/157 281/452/115 +f 183/349/108 374/557/170 194/339/98 +f 288/453/95 385/558/218 289/443/109 +f 188/347/106 367/559/159 187/338/97 +f 189/333/92 202/355/113 203/334/93 +f 186/336/95 199/356/114 200/337/96 +f 194/339/98 193/357/115 206/340/99 +f 184/342/101 183/349/108 196/343/102 +f 191/345/104 190/335/94 203/334/93 +f 188/347/106 187/338/97 200/337/96 +f 194/339/98 207/341/100 196/343/102 +f 185/350/109 184/342/101 197/344/103 +f 191/352/104 204/560/105 205/353/111 +f 189/333/92 188/347/106 201/348/107 +f 185/350/109 198/351/110 199/356/114 +f 192/354/112 205/353/111 206/340/99 +f 207/341/100 219/367/125 208/358/116 +f 197/344/103 209/368/126 210/359/117 +f 205/353/111 204/560/105 216/360/118 +f 201/348/107 213/370/127 214/362/120 +f 198/351/110 210/359/117 211/363/121 +f 205/353/111 217/361/119 218/364/122 +f 202/355/113 214/362/120 215/365/123 +f 199/356/114 211/363/121 212/366/124 +f 207/341/100 206/340/99 218/364/122 +f 197/344/103 196/343/102 208/358/116 +f 204/346/105 203/334/93 215/365/123 +f 200/337/96 212/366/124 213/370/127 +f 212/366/124 224/381/138 225/371/128 +f 208/358/116 219/367/125 231/372/129 +f 209/368/126 221/382/139 222/374/131 +f 217/361/119 216/360/118 228/375/132 +f 214/362/120 213/370/127 225/371/128 +f 210/359/117 222/374/131 223/378/135 +f 218/364/122 217/361/119 229/376/133 +f 214/362/120 226/377/134 227/380/137 +f 211/363/121 223/378/135 224/381/138 +f 219/367/125 218/364/122 230/379/136 +f 209/368/126 208/358/116 220/373/130 +f 216/369/118 215/365/123 227/380/137 +f 224/381/138 235/393/149 236/384/140 +f 231/372/129 242/394/150 195/385/141 +f 221/382/139 232/395/151 233/386/142 +f 229/376/133 228/375/132 239/387/143 +f 225/371/128 236/384/140 237/389/145 +f 222/374/131 233/386/142 234/390/146 +f 229/376/133 240/388/144 241/391/147 +f 226/377/134 237/389/145 238/392/148 +f 223/378/135 234/390/146 235/393/149 +f 230/379/136 241/391/147 242/394/150 +f 221/382/139 220/373/130 195/385/141 +f 228/383/132 227/380/137 238/392/148 +f 239/396/143 238/392/148 251/397/152 +f 235/393/149 248/407/161 249/399/154 +f 242/394/150 255/408/162 244/400/155 +f 232/395/151 245/409/163 246/401/156 +f 240/388/144 239/387/143 252/402/153 +f 237/389/145 236/384/140 249/399/154 +f 234/390/146 233/386/142 246/401/156 +f 240/388/144 253/403/157 254/406/160 +f 237/389/145 250/404/158 251/397/152 +f 235/393/149 234/390/146 247/405/159 +f 242/394/150 241/391/147 254/406/160 +f 232/395/151 195/385/141 244/400/155 +f 245/409/163 244/400/155 256/410/164 +f 252/398/153 251/397/152 263/412/166 +f 248/407/161 260/420/174 261/414/168 +f 255/408/162 267/421/175 256/410/164 +f 246/401/156 245/409/163 257/411/165 +f 252/402/153 264/561/167 265/416/170 +f 250/404/158 249/399/154 261/414/168 +f 247/405/159 246/401/156 258/415/169 +f 254/406/160 253/403/157 265/416/170 +f 250/404/158 262/417/171 263/412/166 +f 247/405/159 259/418/172 260/420/174 +f 255/408/162 254/406/160 266/419/173 +f 266/419/173 278/433/186 279/422/176 +f 257/411/165 256/410/164 268/423/177 +f 264/413/167 263/412/166 275/425/179 +f 260/420/174 272/434/187 273/427/181 +f 267/421/175 279/422/176 268/423/177 +f 257/411/165 269/424/178 270/428/182 +f 265/416/170 264/561/167 276/429/180 +f 262/417/171 261/414/168 273/427/181 +f 259/418/172 258/415/169 270/428/182 +f 266/419/173 265/416/170 277/430/183 +f 262/417/171 274/431/184 275/425/179 +f 259/418/172 271/432/185 272/434/187 +f 299/435/188 298/466/113 285/436/92 +f 296/438/105 295/463/111 282/439/112 +f 290/441/101 303/457/103 302/442/110 +f 280/444/98 293/459/100 292/445/102 +f 300/447/96 299/435/188 286/437/106 +f 297/449/189 296/438/105 283/440/104 +f 292/445/102 303/457/103 290/441/101 +f 294/451/99 293/459/100 280/444/98 +f 288/453/95 301/455/114 300/447/96 +f 285/454/92 298/461/113 297/449/189 +f 282/439/112 295/463/111 294/451/99 +f 289/443/109 302/442/110 301/455/114 +f 292/445/102 304/471/116 315/456/126 +f 306/458/122 305/468/125 293/459/100 +f 313/460/121 312/474/124 300/447/96 +f 298/461/113 310/475/120 309/462/190 +f 295/463/111 307/477/119 306/458/122 +f 314/464/117 313/460/121 301/455/114 +f 311/465/127 310/480/120 298/466/113 +f 308/467/118 307/477/119 295/463/111 +f 303/457/103 315/456/126 314/464/117 +f 305/468/125 304/471/116 292/445/102 +f 300/447/96 312/474/124 311/465/127 +f 309/462/190 308/467/118 296/438/105 +f 321/469/137 320/481/132 308/467/118 +f 316/470/130 327/485/139 315/456/126 +f 318/472/136 317/487/129 305/468/125 +f 313/460/121 325/478/135 324/473/138 +f 310/475/120 322/489/134 321/469/137 +f 319/476/133 318/472/136 306/458/122 +f 314/464/117 326/482/131 325/478/135 +f 323/479/128 322/493/134 310/480/120 +f 320/481/132 319/476/133 307/477/119 +f 315/456/126 327/485/139 326/482/131 +f 305/468/125 317/487/129 316/470/130 +f 312/474/124 324/473/138 323/479/128 +f 332/483/191 331/494/198 320/481/132 +f 291/484/192 338/500/204 327/485/139 +f 329/486/193 328/495/199 317/487/129 +f 336/488/194 335/496/200 324/473/138 +f 322/489/134 333/503/207 332/483/191 +f 330/490/195 329/486/193 318/472/136 +f 337/491/196 336/488/194 325/478/135 +f 334/492/197 333/505/207 322/493/134 +f 331/494/198 330/490/195 319/476/133 +f 327/485/139 338/500/204 337/491/196 +f 328/495/199 291/484/192 316/470/130 +f 324/473/138 335/496/200 334/492/197 +f 335/496/200 347/502/206 346/497/201 +f 344/498/202 343/511/214 331/494/198 +f 339/499/203 350/512/215 338/500/204 +f 341/501/205 340/507/210 328/495/199 +f 336/488/194 348/515/218 347/502/206 +f 333/503/207 345/517/220 344/498/202 +f 330/490/195 342/506/209 341/501/205 +f 349/504/208 348/515/218 336/488/194 +f 346/497/201 345/518/220 333/505/207 +f 331/494/198 343/511/214 342/506/209 +f 338/500/204 350/512/215 349/504/208 +f 328/495/199 340/507/210 339/499/203 +f 340/507/210 352/534/226 351/508/211 +f 347/502/206 359/525/224 358/509/212 +f 356/510/213 355/519/221 343/511/214 +f 351/508/211 362/522/223 350/512/215 +f 353/513/216 352/534/226 340/507/210 +f 360/514/217 359/525/224 347/502/206 +f 357/516/219 356/510/213 344/498/202 +f 342/506/209 354/531/225 353/513/216 +f 349/504/208 361/520/222 360/514/217 +f 358/509/212 357/562/219 345/518/220 +f 355/519/221 354/531/225 342/506/209 +f 350/512/215 362/522/223 361/520/222 +f 278/521/186 361/520/222 362/522/223 +f 277/524/183 360/514/217 361/520/222 +f 359/525/224 360/514/217 277/524/183 +f 358/509/212 359/525/224 276/526/180 +f 274/527/184 357/562/219 358/509/212 +f 356/510/213 357/516/219 274/528/184 +f 272/530/187 355/519/221 356/510/213 +f 354/531/225 355/519/221 272/530/187 +f 270/533/182 353/513/216 354/531/225 +f 352/534/226 353/513/216 270/533/182 +f 268/535/177 351/508/211 352/534/226 +f 362/522/223 351/508/211 268/535/177 +f 281/452/115 377/556/157 378/536/227 +f 289/443/109 385/558/218 386/537/217 +f 189/333/92 369/541/185 368/538/172 +f 282/439/112 378/536/227 379/539/209 +f 290/441/101 386/537/217 375/540/183 +f 190/335/94 370/543/225 369/541/185 +f 283/440/104 379/539/209 380/542/225 +f 191/345/104 371/563/209 370/543/225 +f 284/450/94 380/542/225 381/544/185 +f 184/342/101 364/548/217 363/545/183 +f 192/354/112 372/549/227 371/546/209 +f 285/436/92 381/564/185 382/547/172 +f 185/350/109 365/551/218 364/548/217 +f 193/357/115 373/553/157 372/549/227 +f 286/437/106 382/547/172 383/550/159 +f 186/336/95 366/555/228 365/551/218 +f 243/446/108 375/540/183 376/552/170 +f 194/339/98 374/557/170 373/553/157 +f 287/448/97 383/550/159 384/554/228 +f 187/338/97 367/559/159 366/555/228 +f 280/444/98 376/552/170 377/556/157 +f 183/349/108 363/545/183 374/557/170 +f 288/453/95 384/554/228 385/558/218 +f 188/347/106 368/538/172 367/559/159 +o Gun +v 0.000000 0.250000 3.750000 +v 0.000000 0.250000 8.000000 +v 0.095671 0.230970 3.750000 +v 0.095671 0.230970 8.000000 +v 0.176777 0.176777 3.750000 +v 0.176777 0.176776 8.000000 +v 0.230970 0.095671 3.750000 +v 0.230970 0.095671 8.000000 +v 0.250000 -0.000000 3.750000 +v 0.250000 0.000000 8.000000 +v 0.230970 -0.095671 3.750000 +v 0.230970 -0.095671 8.000000 +v 0.176777 -0.176777 3.750000 +v 0.176777 -0.176777 8.000000 +v 0.095671 -0.230970 3.750000 +v 0.095671 -0.230970 8.000000 +v 0.000000 -0.250000 3.750000 +v 0.000000 -0.250000 8.000000 +v -0.095671 -0.230970 3.750000 +v -0.095671 -0.230970 8.000000 +v -0.176777 -0.176777 3.750000 +v -0.176777 -0.176777 8.000000 +v -0.230970 -0.095671 3.750000 +v -0.230970 -0.095671 8.000000 +v -0.250000 0.000000 3.750000 +v -0.250000 0.000000 8.000000 +v -0.230970 0.095671 3.750000 +v -0.230970 0.095671 8.000000 +v -0.176777 0.176777 3.750000 +v -0.176777 0.176776 8.000000 +v -0.095671 0.230970 3.750000 +v -0.095671 0.230970 8.000000 +v 0.000000 0.187500 8.000000 +v -0.071753 0.173227 8.000000 +v -0.132583 0.132583 8.000000 +v -0.173227 0.071753 8.000000 +v -0.187500 -0.000000 8.000000 +v -0.173227 -0.071753 8.000000 +v -0.132583 -0.132583 8.000000 +v -0.071753 -0.173227 8.000000 +v 0.000000 -0.187500 8.000000 +v 0.071753 -0.173227 8.000000 +v 0.132582 -0.132583 8.000000 +v 0.173227 -0.071753 8.000000 +v 0.187500 0.000000 8.000000 +v 0.173227 0.071753 8.000000 +v 0.132582 0.132583 8.000000 +v 0.071753 0.173227 8.000000 +v 0.000000 0.187500 2.875000 +v -0.071753 0.173227 2.875000 +v -0.132583 0.132583 2.875000 +v -0.173227 0.071753 2.875000 +v -0.187500 -0.000000 2.875000 +v -0.173227 -0.071753 2.875000 +v -0.132583 -0.132583 2.875000 +v -0.071753 -0.173227 2.875000 +v 0.000000 -0.187500 2.875000 +v 0.071753 -0.173227 2.875000 +v 0.132582 -0.132583 2.875000 +v 0.173227 -0.071753 2.875000 +v 0.187500 0.000000 2.875000 +v 0.173227 0.071753 2.875000 +v 0.132582 0.132583 2.875000 +v 0.071753 0.173227 2.875000 +v 0.000000 0.687500 3.375000 +v -0.263095 0.635167 3.375000 +v -0.486136 0.486136 3.375000 +v -0.635167 0.263095 3.375000 +v -0.687500 0.000000 3.375000 +v -0.635167 -0.263095 3.375000 +v -0.486136 -0.486136 3.375000 +v -0.263095 -0.635167 3.375000 +v 0.000000 -0.687500 3.375000 +v 0.263095 -0.635167 3.375000 +v 0.486136 -0.486136 3.375000 +v 0.635167 -0.263095 3.375000 +v 0.687500 0.000000 3.375000 +v 0.635167 0.263095 3.375000 +v 0.486136 0.486136 3.375000 +v 0.263094 0.635167 3.375000 +v 0.000000 0.500000 3.500000 +v -0.191342 0.461940 3.500000 +v -0.353553 0.353553 3.500000 +v -0.461940 0.191342 3.500000 +v -0.500000 0.000000 3.500000 +v -0.461940 -0.191342 3.500000 +v -0.353553 -0.353553 3.500000 +v -0.191342 -0.461940 3.500000 +v 0.000000 -0.500000 3.500000 +v 0.191342 -0.461940 3.500000 +v 0.353553 -0.353554 3.500000 +v 0.461940 -0.191342 3.500000 +v 0.500000 0.000000 3.500000 +v 0.461940 0.191342 3.500000 +v 0.353553 0.353554 3.500000 +v 0.191341 0.461940 3.500000 +v 0.239177 0.577425 2.500000 +v 0.441941 0.441942 2.500000 +v 0.577425 0.239177 2.500000 +v 0.625000 0.000000 2.500000 +v 0.577425 -0.239177 2.500000 +v 0.441941 -0.441942 2.500000 +v 0.239177 -0.577425 2.500000 +v 0.000000 -0.625000 2.500000 +v -0.239177 -0.577425 2.500000 +v -0.441942 -0.441942 2.500000 +v -0.577425 -0.239177 2.500000 +v -0.625000 -0.000000 2.500000 +v -0.577425 0.239177 2.500000 +v -0.441942 0.441942 2.500000 +v -0.239177 0.577425 2.500000 +v 0.000000 0.625000 2.500000 +v 0.635167 0.263095 2.875000 +v 0.687500 0.000000 2.875000 +v -0.486136 -0.486136 2.875000 +v -0.635167 -0.263095 2.875000 +v 0.486136 0.486136 2.875000 +v -0.263095 -0.635167 2.875000 +v 0.263094 0.635167 2.875000 +v 0.000000 -0.687500 2.875000 +v -0.263095 0.635167 2.875000 +v 0.000000 0.687500 2.875000 +v 0.263095 -0.635167 2.875000 +v -0.486136 0.486136 2.875000 +v 0.486136 -0.486136 2.875000 +v -0.635167 0.263095 2.875000 +v 0.635167 -0.263095 2.875000 +v -0.687500 0.000000 2.875000 +v 0.000000 0.625000 2.875000 +v -0.239177 0.577425 2.875000 +v -0.441942 0.441942 2.875000 +v -0.577425 0.239177 2.875000 +v -0.625000 -0.000000 2.875000 +v -0.577425 -0.239177 2.875000 +v -0.441942 -0.441942 2.875000 +v -0.239177 -0.577425 2.875000 +v 0.000000 -0.625000 2.875000 +v 0.239177 -0.577425 2.875000 +v 0.441941 -0.441942 2.875000 +v 0.577425 -0.239177 2.875000 +v 0.625000 0.000000 2.875000 +v 0.577425 0.239177 2.875000 +v 0.441941 0.441942 2.875000 +v 0.239177 0.577425 2.875000 +v 0.635167 0.263095 3.062500 +v 0.687500 0.000000 3.062500 +v -0.486136 -0.486136 3.062500 +v -0.635167 -0.263095 3.062500 +v 0.486136 0.486136 3.062500 +v -0.263095 -0.635167 3.062500 +v 0.263094 0.635167 3.062500 +v 0.000000 -0.687500 3.062500 +v -0.263095 0.635167 3.062500 +v 0.000000 0.687500 3.062500 +v 0.263095 -0.635167 3.062500 +v -0.486136 0.486136 3.062500 +v 0.486136 -0.486136 3.062500 +v -0.635167 0.263095 3.062500 +v 0.635167 -0.263095 3.062500 +v -0.687500 0.000000 3.062500 +v 0.635167 0.263095 3.187500 +v 0.687500 0.000000 3.187500 +v -0.486136 -0.486136 3.187500 +v -0.635167 -0.263095 3.187500 +v 0.486136 0.486136 3.187500 +v -0.263095 -0.635167 3.187500 +v 0.263094 0.635167 3.187500 +v 0.000000 -0.687500 3.187500 +v -0.263095 0.635167 3.187500 +v 0.000000 0.687500 3.187500 +v 0.263095 -0.635167 3.187500 +v -0.486136 0.486136 3.187500 +v 0.486136 -0.486136 3.187500 +v -0.635167 0.263095 3.187500 +v 0.635167 -0.263095 3.187500 +v -0.687500 0.000000 3.187500 +v 0.239177 0.577425 3.125000 +v 0.441941 0.441942 3.125000 +v 0.577425 0.239177 3.125000 +v 0.625000 0.000000 3.125000 +v 0.577425 -0.239177 3.125000 +v 0.441941 -0.441942 3.125000 +v 0.239177 -0.577425 3.125000 +v 0.000000 -0.625000 3.125000 +v -0.239177 -0.577425 3.125000 +v -0.441942 -0.441942 3.125000 +v -0.577425 -0.239177 3.125000 +v -0.625000 -0.000000 3.125000 +v -0.577425 0.239177 3.125000 +v -0.441942 0.441942 3.125000 +v -0.239177 0.577425 3.125000 +v 0.000000 0.625000 3.125000 +v 0.000000 0.562500 2.500000 +v -0.215260 0.519682 2.500000 +v -0.397748 0.397747 2.500000 +v -0.519682 0.215259 2.500000 +v -0.562500 0.000000 2.500000 +v -0.519682 -0.215260 2.500000 +v -0.397748 -0.397747 2.500000 +v -0.215260 -0.519682 2.500000 +v -0.000000 -0.562500 2.500000 +v 0.215259 -0.519682 2.500000 +v 0.397747 -0.397748 2.500000 +v 0.519682 -0.215260 2.500000 +v 0.562500 0.000000 2.500000 +v 0.519682 0.215260 2.500000 +v 0.397747 0.397748 2.500000 +v 0.215259 0.519682 2.500000 +v 0.000000 0.562500 -4.625000 +v -0.215260 0.519682 -4.625000 +v -0.562500 0.000000 0.375000 +v -0.562500 0.000000 2.375000 +v -0.562500 0.000000 -4.625000 +v -0.519682 -0.215260 -4.625000 +v -0.397748 -0.397747 -4.625000 +v -0.215260 -0.519682 -4.625000 +v -0.000000 -0.562500 -4.625000 +v 0.215259 -0.519682 -4.625000 +v 0.397747 -0.397748 -4.625000 +v 0.519682 -0.215260 -4.625000 +v 0.562500 0.000000 -4.625000 +v 0.519682 0.215260 -4.625000 +v 0.397747 0.397748 -4.625000 +v 0.215259 0.519682 -4.625000 +v -0.312500 -0.437500 1.250000 +v 0.312500 -0.437500 1.250000 +v -0.312500 -2.187500 1.250000 +v 0.312500 -2.187500 1.250000 +v -0.312500 -0.437500 2.312500 +v -0.125000 -0.437500 2.500000 +v 0.125000 -0.437500 2.500000 +v 0.312500 -0.437500 2.312500 +v -0.125000 -2.187500 2.500000 +v -0.312500 -2.187500 2.312500 +v 0.312500 -2.187500 2.312500 +v 0.125000 -2.187500 2.500000 +v 0.000000 0.687500 2.500000 +v -0.088388 0.650888 2.500000 +v -0.125000 0.562500 2.500000 +v -0.088388 0.474112 2.500000 +v 0.000000 0.437500 2.500000 +v 0.088388 0.474112 2.500000 +v 0.125000 0.562500 2.500000 +v 0.088388 0.650888 2.500000 +v 0.000000 0.687500 0.250000 +v -0.088388 0.650888 0.250000 +v -0.125000 0.562500 0.250000 +v -0.088388 0.474112 0.250000 +v 0.000000 0.437500 0.250000 +v 0.088388 0.474112 0.250000 +v 0.125000 0.562500 0.250000 +v 0.088388 0.650888 0.250000 +v -0.519682 0.215259 -4.625000 +v -0.215260 0.519682 2.375000 +v -0.397748 0.397747 2.375000 +v -0.519682 0.215259 2.375000 +v -0.397748 0.397747 -4.625000 +v -0.215260 0.519682 0.375000 +v -0.397748 0.397747 0.375000 +v -0.519682 0.215259 0.375000 +v -0.107630 0.541091 2.375000 +v -0.107630 0.541091 0.375000 +v -0.000000 0.437500 2.375000 +v -0.167424 0.404197 2.375000 +v -0.309359 0.309359 2.375000 +v -0.404197 0.167424 2.375000 +v -0.437500 -0.000000 2.375000 +v -0.404197 -0.167424 2.375000 +v -0.309359 -0.309359 2.375000 +v -0.167424 -0.404197 2.375000 +v -0.000000 -0.437500 2.375000 +v 0.167424 -0.404197 2.375000 +v 0.309359 -0.309359 2.375000 +v 0.404197 -0.167424 2.375000 +v 0.437500 -0.000000 2.375000 +v 0.404197 0.167424 2.375000 +v 0.309359 0.309359 2.375000 +v 0.167424 0.404197 2.375000 +v -0.083712 0.420849 2.375000 +v -0.000000 0.437500 0.625000 +v -0.437500 -0.000000 0.625000 +v -0.404197 -0.167424 0.625000 +v -0.309359 -0.309359 0.625000 +v -0.167424 -0.404197 0.625000 +v -0.000000 -0.437500 0.625000 +v 0.167424 -0.404197 0.625000 +v 0.309359 -0.309359 0.625000 +v 0.404197 -0.167424 0.625000 +v 0.437500 -0.000000 0.625000 +v 0.404197 0.167424 0.625000 +v 0.309359 0.309359 0.625000 +v 0.167424 0.404197 0.625000 +v -0.083712 0.420849 0.625000 +v -0.191342 0.461940 0.625000 +v -0.353554 0.353553 0.625000 +v -0.461940 0.191342 0.625000 +v -0.500000 -0.000000 0.625000 +v -0.095671 0.480970 0.375000 +v -0.500000 -0.000000 0.375000 +v -0.461940 0.191342 0.375000 +v -0.353554 0.353553 0.375000 +v -0.191342 0.461940 0.375000 +v -0.095671 0.480970 0.625000 +v 0.095670 0.230970 2.875000 +v 0.176776 0.176777 2.875000 +v 0.230970 0.095671 2.875000 +v 0.250000 0.000000 2.875000 +v 0.230970 -0.095671 2.875000 +v 0.176776 -0.176777 2.875000 +v 0.095671 -0.230970 2.875000 +v -0.000000 -0.250000 2.875000 +v -0.095671 -0.230970 2.875000 +v -0.176777 -0.176776 2.875000 +v -0.230970 -0.095671 2.875000 +v -0.250000 0.000000 2.875000 +v -0.230970 0.095671 2.875000 +v -0.176777 0.176777 2.875000 +v -0.095671 0.230970 2.875000 +v -0.000000 0.250000 2.875000 +v 0.625000 0.000000 0.312500 +v 0.577425 0.239177 0.312500 +v 0.441941 0.441942 0.312500 +v 0.239177 0.577425 0.312500 +v 0.000000 0.625000 0.312500 +v 0.000000 0.562500 0.312500 +v 0.215260 0.519682 0.312500 +v 0.397748 0.397748 0.312500 +v 0.519682 0.215259 0.312500 +v 0.562500 0.000000 0.312500 +v 0.577425 0.239177 2.437500 +v 0.441942 0.441942 2.437500 +v 0.239177 0.577425 2.437500 +v 0.000000 0.625000 2.437500 +v 0.625000 0.000000 2.437500 +v 0.215260 0.519682 2.437500 +v 0.000000 0.562500 2.437500 +v 0.397748 0.397748 2.437500 +v 0.519682 0.215259 2.437500 +v 0.562500 0.000000 2.437500 +v 0.239177 0.577425 0.687500 +v 0.000000 0.625000 0.687500 +v 0.000000 0.562500 0.687500 +v 0.215260 0.519682 0.687500 +v 0.239177 0.577425 2.062500 +v 0.000000 0.625000 2.062500 +v 0.215260 0.519682 2.062500 +v 0.000000 0.562500 2.062500 +v -0.250000 -0.437500 -1.875000 +v 0.250000 -0.437500 -1.875000 +v -0.250000 -1.812500 -1.875000 +v 0.250000 -1.812500 -1.875000 +v -0.250000 -1.812500 0.000000 +v 0.250000 -1.812500 0.000000 +v -0.250000 -1.187500 1.000000 +v 0.250000 -1.187500 1.000000 +v -0.250000 -1.187500 1.250000 +v 0.250000 -1.187500 1.250000 +v -0.250000 -0.437500 1.250000 +v 0.250000 -0.437500 1.250000 +v 0.250000 -0.312500 -5.000000 +v -0.250000 -0.312500 -5.000000 +v 0.000000 0.437500 -5.000000 +v -0.167424 0.404197 -5.000000 +v -0.309359 0.309359 -5.000000 +v -0.404197 0.167424 -5.000000 +v -0.437500 -0.000000 -5.000000 +v -0.404197 -0.167424 -5.000000 +v -0.309359 -0.309359 -5.000000 +v -0.167424 -0.404197 -5.000000 +v -0.000000 -0.437500 -5.000000 +v 0.167424 -0.404197 -5.000000 +v 0.309359 -0.309359 -5.000000 +v 0.404197 -0.167424 -5.000000 +v 0.437500 -0.000000 -5.000000 +v 0.404197 0.167424 -5.000000 +v 0.309359 0.309359 -5.000000 +v 0.167424 0.404197 -5.000000 +v 0.375000 -0.658100 -4.655906 +v -0.375000 -0.658100 -4.655906 +v -0.250000 -0.312500 -2.875000 +v 0.250000 -0.312500 -2.875000 +v -0.375000 -0.600718 -3.125000 +v 0.375000 -0.600718 -3.125000 +v -0.375000 -0.654727 -3.449057 +v 0.375000 -0.654727 -3.449057 +v -0.375000 -3.311872 -4.173732 +v 0.375000 -3.311872 -4.173732 +v -0.375000 -3.085226 -4.929220 +v 0.375000 -3.085226 -4.929220 +v 0.375000 -0.961349 -4.201034 +v -0.375000 -0.961349 -4.201034 +v 0.250000 -0.812500 -4.875000 +v 0.375000 -0.312500 -4.679806 +v 0.250000 -0.812500 -2.875000 +v 0.375000 -0.312500 -3.125000 +v 0.250000 -0.875000 -3.250000 +v 0.250000 -3.625000 -4.000000 +v 0.250000 -3.250000 -5.250000 +v 0.250000 -1.062500 -4.500000 +v -0.250000 -0.812500 -4.875000 +v -0.250000 -0.812500 -2.875000 +v -0.375000 -0.312500 -4.679806 +v -0.250000 -0.875000 -3.250000 +v -0.375000 -0.312500 -3.125000 +v -0.250000 -3.625000 -4.000000 +v -0.250000 -3.250000 -5.250000 +v -0.250000 -1.062500 -4.500000 +v -0.187500 -1.812500 -1.875000 +v 0.187500 -1.812500 -1.875000 +v -0.187500 -1.437500 -2.375000 +v 0.187500 -1.437500 -2.375000 +v -0.187500 -1.437500 -3.500000 +v 0.187500 -1.437500 -3.500000 +v -0.187500 -0.437500 -1.875000 +v 0.187500 -0.437500 -1.875000 +v -0.187500 -0.437500 -3.500000 +v 0.187500 -0.437500 -3.500000 +v -0.187500 -1.812500 -1.875000 +v 0.187500 -1.812500 -1.875000 +v -0.187500 -1.812500 -1.812500 +v 0.187500 -1.812500 -1.812500 +v 0.187500 -2.312500 -1.812500 +v -0.187500 -2.312500 -1.812500 +v 0.187500 -2.312500 -1.875000 +v -0.187500 -2.312500 -1.875000 +v 0.187500 -2.437500 -2.000000 +v -0.187500 -2.437500 -2.000000 +v 0.187500 -2.500000 -2.000000 +v -0.187500 -2.500000 -2.000000 +v 0.187500 -2.437500 -3.000000 +v -0.187500 -2.437500 -3.000000 +v 0.187500 -2.500000 -3.000000 +v -0.187500 -2.500000 -3.000000 +v 0.187500 -2.187500 -3.625000 +v -0.187500 -2.187500 -3.625000 +v 0.187500 -2.250000 -3.625000 +v -0.187500 -2.250000 -3.625000 +v -0.125000 -2.062500 -3.250000 +v 0.125000 -2.062500 -3.250000 +v -0.125000 -2.062500 -3.625000 +v 0.125000 -2.062500 -3.625000 +v -0.125000 -1.812500 -3.250000 +v 0.125000 -1.812500 -3.250000 +v -0.125000 -1.437500 -3.125000 +v 0.125000 -1.437500 -3.125000 +v -0.125000 -1.437500 -3.500000 +v 0.125000 -1.437500 -3.500000 +v -0.375000 -0.375000 -1.937500 +v -0.468750 -0.400120 -1.937500 +v -0.537380 -0.468750 -1.937500 +v -0.562500 -0.562500 -1.937500 +v -0.537380 -0.656250 -1.937500 +v -0.468750 -0.724880 -1.937500 +v -0.375000 -0.750000 -1.937500 +v -0.281250 -0.724880 -1.937500 +v -0.212621 -0.656250 -1.937500 +v -0.187500 -0.562500 -1.937500 +v -0.212621 -0.468750 -1.937500 +v -0.281250 -0.400120 -1.937500 +v -0.468750 -0.400120 1.062500 +v -0.375000 -0.375000 1.062500 +v -0.537380 -0.468750 1.062500 +v -0.562500 -0.562500 1.062500 +v -0.537380 -0.656250 1.062500 +v -0.468750 -0.724880 1.062500 +v -0.375000 -0.750000 1.062500 +v -0.281250 -0.724880 1.062500 +v -0.212621 -0.656250 1.062500 +v -0.187500 -0.562500 1.062500 +v -0.212621 -0.468750 1.062500 +v -0.281250 -0.400120 1.062500 +v -0.375000 -0.375000 -2.937500 +v -0.468750 -0.400120 -2.937500 +v -0.537380 -0.468750 -2.937500 +v -0.562500 -0.562500 -2.937500 +v -0.537380 -0.656250 -2.937500 +v -0.468750 -0.724880 -2.937500 +v -0.375000 -0.750000 -2.937500 +v -0.281250 -0.724880 -2.937500 +v -0.212621 -0.656250 -2.937500 +v -0.187500 -0.562500 -2.937500 +v -0.212621 -0.468750 -2.937500 +v -0.281250 -0.400120 -2.937500 +v -0.468750 -0.400120 -5.062500 +v -0.375000 -0.375000 -5.062500 +v -0.537380 -0.468750 -5.062500 +v -0.562500 -0.562500 -5.062500 +v -0.537380 -0.656250 -5.062500 +v -0.468750 -0.724880 -5.062500 +v -0.375000 -0.750000 -5.062500 +v -0.281250 -0.724880 -5.062500 +v -0.212621 -0.656250 -5.062500 +v -0.187500 -0.562500 -5.062500 +v -0.212621 -0.468750 -5.062500 +v -0.281250 -0.400120 -5.062500 +v 0.031250 0.875000 2.500000 +v 0.031250 0.875000 2.875000 +v -0.031250 0.875000 2.500000 +v -0.031250 0.875000 2.875000 +v 0.062500 0.500000 2.875000 +v 0.062500 0.500000 2.500000 +v -0.062500 0.500000 2.875000 +v -0.062500 0.500000 2.500000 +v 0.000000 1.000000 -4.625000 +v -0.062500 0.983253 -4.625000 +v -0.108253 0.937500 -4.625000 +v -0.125000 0.875000 -4.625000 +v -0.108253 0.812500 -4.625000 +v -0.062500 0.766747 -4.625000 +v 0.000000 0.750000 -4.625000 +v 0.062500 0.766747 -4.625000 +v 0.108253 0.812500 -4.625000 +v 0.125000 0.875000 -4.625000 +v 0.108253 0.937500 -4.625000 +v 0.062500 0.983253 -4.625000 +v 0.000000 0.937500 -4.625000 +v -0.031250 0.929127 -4.625000 +v -0.054127 0.906250 -4.625000 +v -0.062500 0.875000 -4.625000 +v -0.054127 0.843750 -4.625000 +v -0.031250 0.820873 -4.625000 +v 0.000000 0.812500 -4.625000 +v 0.031250 0.820873 -4.625000 +v 0.054127 0.843750 -4.625000 +v 0.062500 0.875000 -4.625000 +v 0.054127 0.906250 -4.625000 +v 0.031250 0.929127 -4.625000 +v -0.062500 0.983253 -4.500000 +v 0.000000 1.000000 -4.500000 +v -0.108253 0.937500 -4.500000 +v -0.125000 0.875000 -4.500000 +v -0.108253 0.812500 -4.500000 +v -0.062500 0.766747 -4.500000 +v 0.000000 0.750000 -4.500000 +v 0.062500 0.766747 -4.500000 +v 0.108253 0.812500 -4.500000 +v 0.125000 0.875000 -4.500000 +v 0.108253 0.937500 -4.500000 +v 0.062500 0.983253 -4.500000 +v -0.031250 0.929127 -4.500000 +v 0.000000 0.937500 -4.500000 +v -0.054127 0.906250 -4.500000 +v -0.062500 0.875000 -4.500000 +v -0.054127 0.843750 -4.500000 +v -0.031250 0.820873 -4.500000 +v 0.000000 0.812500 -4.500000 +v 0.031250 0.820873 -4.500000 +v 0.054127 0.843750 -4.500000 +v 0.062500 0.875000 -4.500000 +v 0.054127 0.906250 -4.500000 +v 0.031250 0.929127 -4.500000 +v -0.125000 0.875000 -4.531250 +v 0.125000 0.875000 -4.531250 +v -0.125000 0.875000 -4.593750 +v 0.125000 0.875000 -4.593750 +v -0.125000 0.812500 -4.531250 +v -0.125000 0.500000 -4.531250 +v -0.187500 0.500000 -4.531250 +v -0.187500 0.812500 -4.531250 +v 0.000000 0.750000 -4.531250 +v 0.000000 0.750000 -4.593750 +v -0.187500 0.812500 -4.593750 +v -0.187500 0.812500 -4.531250 +v -0.187500 0.500000 -4.593750 +v -0.187500 0.500000 -4.531250 +v 0.187500 0.812500 -4.531250 +v 0.187500 0.812500 -4.593750 +v 0.187500 0.500000 -4.531250 +v 0.187500 0.500000 -4.593750 +v -0.125000 0.625000 -4.031250 +v -0.187500 0.625000 -4.031250 +v -0.187500 0.500000 -4.031250 +v -0.125000 0.500000 -4.031250 +v 0.187500 0.812500 -4.531250 +v 0.187500 0.500000 -4.531250 +v 0.125000 0.500000 -4.531250 +v 0.125000 0.812500 -4.531250 +v 0.187500 0.625000 -4.031250 +v 0.125000 0.625000 -4.031250 +v 0.125000 0.500000 -4.031250 +v 0.187500 0.500000 -4.031250 +v 0.000000 0.187500 0.625000 +v -0.132583 0.132582 0.625000 +v -0.187500 -0.000000 0.625000 +v -0.132583 -0.132583 0.625000 +v 0.000000 -0.187500 0.625000 +v 0.132583 -0.132583 0.625000 +v 0.187500 -0.000000 0.625000 +v 0.132583 0.132582 0.625000 +v 0.000000 0.187500 2.750000 +v -0.132583 0.132583 2.750000 +v -0.187500 0.000000 2.750000 +v -0.132583 -0.132582 2.750000 +v 0.000000 -0.187500 2.750000 +v 0.132583 -0.132582 2.750000 +v 0.187500 0.000000 2.750000 +v 0.132583 0.132583 2.750000 +v 0.312500 -0.937500 2.187500 +v 0.312500 -1.687500 2.187500 +v 0.312500 -0.937500 1.437500 +v 0.312500 -1.687500 1.437500 +v 0.562500 -0.937500 1.437500 +v 0.562500 -0.937500 2.187500 +v 0.562500 -1.687500 2.187500 +v 0.562500 -1.687500 1.437500 +v -0.404197 0.167424 0.625000 +v -0.309359 0.309359 0.625000 +v -0.167424 0.404197 0.625000 +v 0.375000 -0.375000 -1.937500 +v 0.281250 -0.400120 -1.937500 +v 0.212620 -0.468750 -1.937500 +v 0.187500 -0.562500 -1.937500 +v 0.212620 -0.656250 -1.937500 +v 0.281250 -0.724880 -1.937500 +v 0.375000 -0.750000 -1.937500 +v 0.468750 -0.724880 -1.937500 +v 0.537379 -0.656250 -1.937500 +v 0.562500 -0.562500 -1.937500 +v 0.537379 -0.468750 -1.937500 +v 0.468750 -0.400120 -1.937500 +v 0.281250 -0.400120 1.062500 +v 0.375000 -0.375000 1.062500 +v 0.212620 -0.468750 1.062500 +v 0.187500 -0.562500 1.062500 +v 0.212620 -0.656250 1.062500 +v 0.281250 -0.724880 1.062500 +v 0.375000 -0.750000 1.062500 +v 0.468750 -0.724880 1.062500 +v 0.537379 -0.656250 1.062500 +v 0.562500 -0.562500 1.062500 +v 0.537379 -0.468750 1.062500 +v 0.468750 -0.400120 1.062500 +v 0.375000 -0.375000 -2.937500 +v 0.281250 -0.400120 -2.937500 +v 0.212620 -0.468750 -2.937500 +v 0.187500 -0.562500 -2.937500 +v 0.212620 -0.656250 -2.937500 +v 0.281250 -0.724880 -2.937500 +v 0.375000 -0.750000 -2.937500 +v 0.468750 -0.724880 -2.937500 +v 0.537379 -0.656250 -2.937500 +v 0.562500 -0.562500 -2.937500 +v 0.537379 -0.468750 -2.937500 +v 0.468750 -0.400120 -2.937500 +v 0.281250 -0.400120 -5.062500 +v 0.375000 -0.375000 -5.062500 +v 0.212620 -0.468750 -5.062500 +v 0.187500 -0.562500 -5.062500 +v 0.212620 -0.656250 -5.062500 +v 0.281250 -0.724880 -5.062500 +v 0.375000 -0.750000 -5.062500 +v 0.468750 -0.724880 -5.062500 +v 0.537379 -0.656250 -5.062500 +v 0.562500 -0.562500 -5.062500 +v 0.537379 -0.468750 -5.062500 +v 0.468750 -0.400120 -5.062500 +vt 0.202381 0.083333 +vt 0.205357 0.069444 +vt 0.205357 0.083333 +vt 0.205357 0.097222 +vt 0.202381 0.097222 +vt 0.205357 0.111111 +vt 0.202381 0.111111 +vt 0.205357 0.125000 +vt 0.202381 0.125000 +vt 0.205357 0.138889 +vt 0.202381 0.138889 +vt 0.205357 0.152778 +vt 0.202381 0.152778 +vt 0.205357 0.166667 +vt 0.202381 0.166667 +vt 0.205357 0.180556 +vt 0.202381 0.180556 +vt 0.205357 0.194444 +vt 0.202381 0.194444 +vt 0.202381 0.208333 +vt 0.205357 0.208333 +vt 0.202381 0.222222 +vt 0.205357 0.222222 +vt 0.202381 0.013889 +vt 0.205357 -0.000000 +vt 0.205357 0.013889 +vt 0.202381 0.027778 +vt 0.205357 0.027778 +vt 0.202381 0.041667 +vt 0.205357 0.041667 +vt 0.202381 0.055556 +vt 0.205357 0.055556 +vt 0.202381 0.069444 +vt 0.020833 0.444444 +vt 0.023810 0.416667 +vt 0.023810 0.444444 +vt 0.020833 0.222222 +vt 0.023810 0.250000 +vt 0.020833 0.250000 +vt 0.020833 0.472222 +vt 0.023810 0.277778 +vt 0.020833 0.277778 +vt 0.023810 0.472222 +vt 0.020833 0.500000 +vt 0.023810 0.305556 +vt 0.020833 0.305556 +vt 0.023810 0.527778 +vt 0.020833 0.527778 +vt 0.023810 0.555556 +vt 0.020833 0.555556 +vt 0.023810 0.333333 +vt 0.020833 0.333333 +vt 0.023810 0.583333 +vt 0.020833 0.583333 +vt 0.023810 0.361111 +vt 0.020833 0.361111 +vt 0.023810 0.611111 +vt 0.020833 0.611111 +vt 0.023810 0.388889 +vt 0.020833 0.388889 +vt 0.023810 0.638889 +vt 0.020833 0.638889 +vt 0.020833 0.416667 +vt 0.020833 0.666667 +vt 0.023810 0.666667 +vt -0.000000 0.388889 +vt 0.002976 0.361111 +vt 0.002976 0.388889 +vt -0.000000 0.361111 +vt 0.002976 0.333333 +vt -0.000000 0.305556 +vt 0.002976 0.305556 +vt 0.002976 0.277778 +vt -0.000000 0.250000 +vt 0.002976 0.250000 +vt -0.000000 0.222222 +vt 0.002976 0.222222 +vt 0.002976 0.666667 +vt -0.000000 0.638889 +vt 0.002976 0.638889 +vt -0.000000 0.611111 +vt 0.002976 0.611111 +vt -0.000000 0.583333 +vt 0.002976 0.583333 +vt -0.000000 0.555556 +vt 0.002976 0.555556 +vt 0.002976 0.527778 +vt -0.000000 0.527778 +vt 0.002976 0.500000 +vt -0.000000 0.500000 +vt 0.002976 0.472222 +vt -0.000000 0.444444 +vt 0.002976 0.444444 +vt -0.000000 0.416667 +vt 0.002976 0.416667 +vt 0.681548 0.069444 +vt 0.672619 0.048611 +vt 0.681548 0.000000 +vt 0.660714 0.263889 +vt 0.672619 0.069444 +vt 0.672619 0.263889 +vt 0.571429 0.263889 +vt 0.601190 0.069444 +vt 0.601190 0.263889 +vt 0.681548 0.263889 +vt 0.732143 0.069444 +vt 0.732143 0.263889 +vt 0.651786 0.069444 +vt 0.660714 0.069444 +vt 0.651786 0.263889 +vt 0.437500 0.319084 +vt 0.431702 0.305555 +vt 0.437500 0.292027 +vt 0.526786 0.292027 +vt 0.532584 0.305556 +vt 0.526786 0.319084 +vt 0.394345 0.312500 +vt 0.398810 0.305556 +vt 0.398810 0.312500 +vt 0.407738 0.312500 +vt 0.407738 0.305556 +vt 0.416667 0.312500 +vt 0.416667 0.305556 +vt 0.425595 0.312500 +vt 0.361607 0.312500 +vt 0.357143 0.305556 +vt 0.361607 0.305556 +vt 0.348214 0.312500 +vt 0.357143 0.312500 +vt 0.339286 0.312500 +vt 0.348214 0.305556 +vt 0.330357 0.305556 +vt 0.339286 0.305556 +vt 0.461310 0.284722 +vt 0.544643 0.277778 +vt 0.544643 0.291667 +vt 0.544643 0.013889 +vt 0.461310 0.013889 +vt 0.461310 0.006944 +vt 0.571429 0.131944 +vt 0.568452 0.118056 +vt 0.571429 0.118056 +vt 0.532738 0.430556 +vt 0.529762 0.458333 +vt 0.532738 0.458333 +vt 0.529762 0.402778 +vt 0.529762 0.430556 +vt 0.532738 0.486111 +vt 0.529762 0.513889 +vt 0.532738 0.513889 +vt 0.529762 0.486111 +vt 0.434524 0.458333 +vt 0.431548 0.430556 +vt 0.431548 0.458333 +vt 0.434524 0.402778 +vt 0.431548 0.402778 +vt 0.434524 0.513889 +vt 0.431548 0.486111 +vt 0.431548 0.513889 +vt 0.434524 0.486111 +vt 0.449405 0.486111 +vt 0.514881 0.479167 +vt 0.449405 0.479167 +vt 0.532738 0.402778 +vt 0.431548 0.409722 +vt 0.532738 0.409722 +vt 0.517857 0.513889 +vt 0.514881 0.486111 +vt 0.514881 0.513889 +vt 0.446429 0.513889 +vt 0.449405 0.513889 +vt 0.110119 0.708333 +vt 0.175595 0.763889 +vt 0.110119 0.763889 +vt 0.175595 0.708333 +vt 0.264881 0.763889 +vt 0.264881 0.708333 +vt 0.312500 0.763889 +vt 0.312500 0.708333 +vt 0.324405 0.763889 +vt 0.312500 0.833333 +vt 0.324405 0.916667 +vt 0.324405 0.555556 +vt 0.324405 0.638889 +vt 0.312500 0.638889 +vt 0.083493 0.569817 +vt 0.112935 0.569817 +vt 0.112935 0.638516 +vt 0.571429 0.152778 +vt 0.568452 0.138889 +vt 0.571429 0.138889 +vt 0.571429 0.173611 +vt 0.568452 0.159722 +vt 0.571429 0.159722 +vt 0.571429 0.194444 +vt 0.568452 0.180556 +vt 0.571429 0.180556 +vt 0.571429 0.215278 +vt 0.568452 0.201389 +vt 0.571429 0.201389 +vt 0.571429 0.236111 +vt 0.568452 0.222222 +vt 0.571429 0.222222 +vt 0.571429 0.256944 +vt 0.568452 0.243056 +vt 0.571429 0.243056 +vt 0.571429 0.277778 +vt 0.568452 0.263889 +vt 0.571429 0.263889 +vt 0.571429 0.298611 +vt 0.568452 0.284722 +vt 0.571429 0.284722 +vt 0.571429 0.305556 +vt 0.568452 0.319444 +vt 0.568452 0.305556 +vt 0.571429 0.340278 +vt 0.568452 0.326389 +vt 0.571429 0.326389 +vt 0.571429 0.013889 +vt 0.568452 0.027778 +vt 0.568452 0.013889 +vt 0.571429 0.034722 +vt 0.568452 0.048611 +vt 0.568452 0.034722 +vt 0.571429 0.055556 +vt 0.568452 0.069444 +vt 0.568452 0.055556 +vt 0.571429 0.076389 +vt 0.568452 0.090278 +vt 0.568452 0.076389 +vt 0.571429 0.097222 +vt 0.568452 0.111111 +vt 0.568452 0.097222 +vt 0.372024 0.750000 +vt 0.401786 0.708333 +vt 0.401786 0.750000 +vt 0.324405 0.750000 +vt 0.372024 0.708333 +vt 0.372024 0.666667 +vt 0.324405 0.555556 +vt 0.401786 0.555556 +vt 0.324405 0.902778 +vt 0.324405 0.791667 +vt 0.372024 0.791667 +vt 0.514881 0.812500 +vt 0.491071 0.805556 +vt 0.514881 0.805556 +vt 0.514881 0.861111 +vt 0.491071 0.854167 +vt 0.514881 0.854167 +vt 0.491071 0.861111 +vt 0.479167 0.854167 +vt 0.479167 0.812500 +vt 0.491071 0.812500 +vt 0.479167 0.861111 +vt 0.431548 0.854167 +vt 0.431548 0.805556 +vt 0.479167 0.805556 +vt 0.431548 0.861111 +vt 0.401786 0.854167 +vt 0.401786 0.812500 +vt 0.401786 0.805556 +vt 0.520833 0.763889 +vt 0.538690 0.736111 +vt 0.538690 0.763889 +vt 0.526786 0.666667 +vt 0.544643 0.666667 +vt 0.538690 0.708333 +vt 0.538690 0.791667 +vt 0.544643 0.833333 +vt 0.526786 0.833333 +vt 0.533983 0.531184 +vt 0.541666 0.500130 +vt 0.549350 0.531185 +vt 0.549351 0.572852 +vt 0.541667 0.583203 +vt 0.533983 0.552149 +vt 0.418398 0.670074 +vt 0.410714 0.680425 +vt 0.403030 0.649371 +vt 0.403031 0.628407 +vt 0.410715 0.597353 +vt 0.418398 0.628407 +vt 0.708333 0.347222 +vt 0.711310 0.305556 +vt 0.711310 0.347222 +vt 0.708333 0.388889 +vt 0.729167 0.347222 +vt 0.708333 0.305556 +vt 0.714286 0.263889 +vt 0.690476 0.305556 +vt 0.616071 0.451389 +vt 0.613095 0.458333 +vt 0.613095 0.451389 +vt 0.610119 0.451389 +vt 0.607143 0.458333 +vt 0.607143 0.451389 +vt 0.604167 0.451389 +vt 0.601190 0.458333 +vt 0.601190 0.451389 +vt 0.598214 0.451389 +vt 0.595238 0.458333 +vt 0.595238 0.451389 +vt 0.592262 0.451389 +vt 0.589286 0.458333 +vt 0.589286 0.451389 +vt 0.625000 0.458333 +vt 0.622024 0.451389 +vt 0.625000 0.451389 +vt 0.619048 0.458333 +vt 0.619048 0.451389 +vt 0.616071 0.437500 +vt 0.613095 0.430556 +vt 0.616071 0.430556 +vt 0.610119 0.437500 +vt 0.613095 0.437500 +vt 0.607143 0.430556 +vt 0.610119 0.430556 +vt 0.604167 0.437500 +vt 0.607143 0.437500 +vt 0.601190 0.430556 +vt 0.604167 0.430556 +vt 0.598214 0.437500 +vt 0.601190 0.437500 +vt 0.595238 0.430556 +vt 0.598214 0.430556 +vt 0.592262 0.437500 +vt 0.595238 0.437500 +vt 0.589286 0.430556 +vt 0.592262 0.430556 +vt 0.622024 0.437500 +vt 0.625000 0.430556 +vt 0.625000 0.437500 +vt 0.619048 0.430556 +vt 0.622024 0.430556 +vt 0.619048 0.437500 +vt 0.556548 0.458333 +vt 0.559524 0.402778 +vt 0.559524 0.458333 +vt 0.556548 0.388889 +vt 0.556548 0.402778 +vt 0.538690 0.354167 +vt 0.535714 0.361111 +vt 0.529762 0.347222 +vt 0.532738 0.388889 +vt 0.532738 0.423611 +vt 0.541667 0.319444 +vt 0.541667 0.354167 +vt 0.538690 0.361111 +vt 0.541667 0.361111 +vt 0.583333 0.388889 +vt 0.559524 0.388889 +vt 0.529762 0.347222 +vt 0.520833 0.354167 +vt 0.520833 0.319444 +vt 0.538690 0.354167 +vt 0.541667 0.319444 +vt 0.541667 0.354167 +vt 0.538690 0.361111 +vt 0.541667 0.361111 +vt 0.532738 0.388889 +vt 0.556548 0.402778 +vt 0.532738 0.423611 +vt 0.556548 0.388889 +vt 0.559524 0.402778 +vt 0.556548 0.458333 +vt 0.559524 0.458333 +vt 0.583333 0.388889 +vt 0.559524 0.388889 +vt 0.645833 0.347538 +vt 0.654627 0.368056 +vt 0.645833 0.388573 +vt 0.583333 0.291667 +vt 0.625000 0.388889 +vt 0.583333 0.388889 +vt 0.625000 0.263889 +vt 0.583333 0.263889 +vt 0.583333 0.416667 +vt 0.625000 0.416667 +vt 0.636905 0.388889 +vt 0.625000 0.291667 +vt 0.636905 0.291667 +vt 0.571429 0.291667 +vt 0.571429 0.388889 +vt 0.130952 0.576389 +vt 0.133929 0.555556 +vt 0.133929 0.576389 +vt 0.130952 0.597222 +vt 0.133929 0.597222 +vt 0.130952 0.618056 +vt 0.133929 0.618056 +vt 0.130952 0.628472 +vt 0.162711 0.648943 +vt 0.154762 0.652632 +vt 0.150788 0.650788 +vt 0.533983 0.531184 +vt 0.541666 0.500130 +vt 0.549350 0.531185 +vt 0.549351 0.572852 +vt 0.541667 0.583203 +vt 0.533983 0.552149 +vt 0.418398 0.670074 +vt 0.410714 0.680425 +vt 0.403030 0.649371 +vt 0.403031 0.628407 +vt 0.410715 0.597353 +vt 0.418398 0.628407 +vt 0.202381 0.000000 +vt 0.023810 0.222222 +vt 0.023810 0.500000 +vt -0.000000 0.333333 +vt -0.000000 0.277778 +vt -0.000000 0.666667 +vt -0.000000 0.472222 +vt 0.672619 0.020833 +vt 0.732143 0.000000 +vt 0.571429 0.069444 +vt 0.443298 0.305555 +vt 0.441600 0.315121 +vt 0.433400 0.315121 +vt 0.433400 0.295990 +vt 0.441600 0.295990 +vt 0.522686 0.315121 +vt 0.520988 0.305556 +vt 0.522686 0.295990 +vt 0.530885 0.295990 +vt 0.530885 0.315121 +vt 0.394345 0.305556 +vt 0.425595 0.305556 +vt 0.330357 0.312500 +vt 0.449405 0.291667 +vt 0.449405 0.284722 +vt 0.461310 0.277778 +vt 0.449405 0.006944 +vt 0.449405 -0.000000 +vt 0.544643 -0.000000 +vt 0.568452 0.131944 +vt 0.434524 0.430556 +vt 0.517857 0.486111 +vt 0.446429 0.486111 +vt 0.324405 0.708333 +vt 0.175595 0.916667 +vt 0.324405 0.833333 +vt 0.175595 0.555556 +vt 0.106181 0.649046 +vt 0.098214 0.652744 +vt 0.090247 0.649046 +vt 0.083493 0.638516 +vt 0.078980 0.622757 +vt 0.077395 0.604167 +vt 0.078980 0.585577 +vt 0.090247 0.559287 +vt 0.098214 0.555589 +vt 0.106181 0.559287 +vt 0.117448 0.585577 +vt 0.119033 0.604167 +vt 0.117448 0.622757 +vt 0.568452 0.152778 +vt 0.568452 0.173611 +vt 0.568452 0.194444 +vt 0.568452 0.215278 +vt 0.568452 0.236111 +vt 0.568452 0.256944 +vt 0.568452 0.277778 +vt 0.568452 0.298611 +vt 0.571429 0.319444 +vt 0.568452 0.340278 +vt 0.571429 0.027778 +vt 0.571429 0.048611 +vt 0.571429 0.069444 +vt 0.571429 0.090278 +vt 0.571429 0.111111 +vt 0.324405 0.708333 +vt 0.324405 0.666667 +vt 0.401786 0.902778 +vt 0.431548 0.812500 +vt 0.401786 0.861111 +vt 0.520833 0.736111 +vt 0.546103 0.538762 +vt 0.541666 0.541536 +vt 0.537230 0.538762 +vt 0.532794 0.520833 +vt 0.533983 0.510482 +vt 0.537230 0.502904 +vt 0.546103 0.502904 +vt 0.549350 0.510482 +vt 0.550539 0.520833 +vt 0.537231 0.580429 +vt 0.533983 0.572852 +vt 0.532794 0.562500 +vt 0.537231 0.544571 +vt 0.549351 0.552149 +vt 0.541667 0.541797 +vt 0.546103 0.544571 +vt 0.550540 0.562500 +vt 0.546103 0.580429 +vt 0.406278 0.677651 +vt 0.403030 0.670074 +vt 0.401842 0.659722 +vt 0.406278 0.641793 +vt 0.418398 0.649371 +vt 0.410714 0.639019 +vt 0.415151 0.641793 +vt 0.419587 0.659722 +vt 0.415151 0.677651 +vt 0.415151 0.635985 +vt 0.410715 0.638759 +vt 0.406278 0.635985 +vt 0.401842 0.618056 +vt 0.403031 0.607704 +vt 0.406278 0.600127 +vt 0.415151 0.600127 +vt 0.418398 0.607704 +vt 0.419587 0.618056 +vt 0.714286 0.388889 +vt 0.729167 0.305556 +vt 0.708333 0.263889 +vt 0.690476 0.347222 +vt 0.616071 0.458333 +vt 0.610119 0.458333 +vt 0.604167 0.458333 +vt 0.598214 0.458333 +vt 0.592262 0.458333 +vt 0.622024 0.458333 +vt 0.589286 0.437500 +vt 0.523810 0.361111 +vt 0.520833 0.354167 +vt 0.520833 0.319444 +vt 0.538690 0.319444 +vt 0.583333 0.423611 +vt 0.538690 0.319444 +vt 0.535714 0.361111 +vt 0.523810 0.361111 +vt 0.583333 0.423611 +vt 0.639616 0.382564 +vt 0.637040 0.368056 +vt 0.639616 0.353547 +vt 0.652051 0.353547 +vt 0.652051 0.382564 +vt 0.130952 0.555556 +vt 0.133929 0.628472 +vt 0.146813 0.648943 +vt 0.140075 0.638437 +vt 0.135572 0.622714 +vt 0.133991 0.604167 +vt 0.135572 0.585620 +vt 0.140075 0.569896 +vt 0.146813 0.559390 +vt 0.154762 0.555701 +vt 0.162711 0.559390 +vt 0.169449 0.569896 +vt 0.173952 0.585620 +vt 0.175533 0.604167 +vt 0.173952 0.622714 +vt 0.169449 0.638437 +vt 0.546103 0.538762 +vt 0.541666 0.541536 +vt 0.537230 0.538762 +vt 0.532794 0.520833 +vt 0.533983 0.510482 +vt 0.537230 0.502904 +vt 0.546103 0.502904 +vt 0.549350 0.510482 +vt 0.550539 0.520833 +vt 0.537231 0.580429 +vt 0.533983 0.572852 +vt 0.532794 0.562500 +vt 0.537231 0.544571 +vt 0.549351 0.552149 +vt 0.541667 0.541797 +vt 0.546103 0.544571 +vt 0.550540 0.562500 +vt 0.546103 0.580429 +vt 0.406278 0.677651 +vt 0.403030 0.670074 +vt 0.401842 0.659722 +vt 0.406278 0.641793 +vt 0.418398 0.649371 +vt 0.410714 0.639019 +vt 0.415151 0.641793 +vt 0.419587 0.659722 +vt 0.415151 0.677651 +vt 0.415151 0.635985 +vt 0.410715 0.638759 +vt 0.406278 0.635985 +vt 0.401842 0.618056 +vt 0.403031 0.607704 +vt 0.406278 0.600127 +vt 0.415151 0.600127 +vt 0.418398 0.607704 +vt 0.419587 0.618056 +vt 0.000000 0.125000 +vt 0.000000 0.111111 +vt 0.000000 0.138889 +vt 0.000000 0.152778 +vt 0.000000 0.166667 +vt 0.000000 0.180556 +vt 0.000000 0.194444 +vt 0.000000 0.208333 +vt 0.000000 0.222222 +vt 0.000000 0.013889 +vt 0.000000 -0.000000 +vt 0.000000 0.027778 +vt 0.000000 0.041667 +vt -0.000000 0.055556 +vt -0.000000 0.069444 +vt -0.000000 0.083333 +vt -0.000000 0.097222 +vt 0.449405 0.208333 +vt 0.449405 0.083333 +vt 0.449405 0.194444 +vt 0.449405 0.069444 +vt 0.449405 0.180556 +vt 0.449405 0.055556 +vt 0.449405 0.166667 +vt 0.449405 0.041667 +vt 0.449405 0.152778 +vt 0.449405 0.027778 +vt 0.449405 0.138889 +vt 0.449405 0.013889 +vt 0.449405 0.111111 +vt 0.449405 0.125000 +vt 0.449405 0.222222 +vt 0.449405 0.097222 +vt 0.047619 0.416667 +vt 0.059524 0.437500 +vt 0.047619 0.444444 +vt 0.077381 0.423611 +vt 0.077381 0.430556 +vt 0.047619 0.472222 +vt 0.059524 0.444444 +vt 0.059524 0.465278 +vt 0.059524 0.493056 +vt 0.047619 0.500000 +vt 0.059524 0.520833 +vt 0.047619 0.527778 +vt 0.047619 0.555556 +vt 0.059524 0.527778 +vt 0.059524 0.548611 +vt 0.047619 0.583333 +vt 0.059524 0.555556 +vt 0.059524 0.576389 +vt 0.047619 0.611111 +vt 0.059524 0.583333 +vt 0.059524 0.604167 +vt 0.047619 0.638889 +vt 0.059524 0.611111 +vt 0.059524 0.631944 +vt 0.059524 0.659722 +vt 0.047619 0.666667 +vt 0.047619 0.250000 +vt 0.059524 0.222222 +vt 0.059524 0.243056 +vt 0.059524 0.270833 +vt 0.047619 0.277778 +vt 0.059524 0.298611 +vt 0.047619 0.305556 +vt 0.059524 0.326389 +vt 0.047619 0.333333 +vt 0.047619 0.361111 +vt 0.059524 0.333333 +vt 0.059524 0.354167 +vt 0.047619 0.388889 +vt 0.059524 0.361111 +vt 0.059524 0.381944 +vt 0.059524 0.409722 +vt 0.077381 0.458333 +vt 0.077381 0.451389 +vt 0.077381 0.486111 +vt 0.059524 0.472222 +vt 0.077381 0.479167 +vt 0.077381 0.506944 +vt 0.077381 0.513889 +vt 0.077381 0.534722 +vt 0.077381 0.541667 +vt 0.077381 0.569444 +vt 0.077381 0.562500 +vt 0.077381 0.597222 +vt 0.077381 0.590278 +vt 0.077381 0.618056 +vt 0.077381 0.625000 +vt 0.077381 0.645833 +vt 0.077381 0.652778 +vt 0.077381 0.236111 +vt 0.077381 0.229167 +vt 0.077381 0.263889 +vt 0.059524 0.250000 +vt 0.077381 0.256944 +vt 0.077381 0.291667 +vt 0.059524 0.277778 +vt 0.077381 0.284722 +vt 0.077381 0.312500 +vt 0.077381 0.319444 +vt 0.077381 0.340278 +vt 0.077381 0.347222 +vt 0.077381 0.368056 +vt 0.077381 0.375000 +vt 0.077381 0.395833 +vt 0.077381 0.402778 +vt 0.032738 0.444444 +vt 0.032738 0.416667 +vt 0.032738 0.388889 +vt 0.032738 0.361111 +vt 0.032738 0.333333 +vt 0.032738 0.305556 +vt 0.032738 0.277778 +vt 0.032738 0.250000 +vt 0.032738 0.222222 +vt 0.032738 0.638889 +vt 0.032738 0.611111 +vt 0.032738 0.583333 +vt 0.032738 0.555556 +vt 0.032738 0.527778 +vt 0.032738 0.500000 +vt 0.032738 0.472222 +vt 0.035714 0.444444 +vt 0.035714 0.416667 +vt 0.035714 0.472222 +vt 0.035714 0.500000 +vt 0.035714 0.527778 +vt 0.035714 0.555556 +vt 0.035714 0.583333 +vt 0.035714 0.611111 +vt 0.035714 0.666667 +vt 0.035714 0.638889 +vt 0.035714 0.222222 +vt 0.035714 0.250000 +vt 0.035714 0.277778 +vt 0.035714 0.333333 +vt 0.035714 0.305556 +vt 0.035714 0.361111 +vt 0.035714 0.388889 +vt 0.038690 0.388889 +vt 0.038690 0.416667 +vt 0.038690 0.444444 +vt 0.038690 0.472222 +vt 0.038690 0.527778 +vt 0.038690 0.555556 +vt 0.038690 0.583333 +vt 0.038690 0.611111 +vt 0.038690 0.638889 +vt 0.038690 0.250000 +vt 0.038690 0.277778 +vt 0.038690 0.305556 +vt 0.038690 0.361111 +vt 0.038690 0.500000 +vt 0.038690 0.222222 +vt 0.047619 0.222222 +vt 0.038690 0.333333 +vt 0.431548 0.284722 +vt 0.095238 0.263889 +vt 0.431548 0.263889 +vt 0.431548 0.451389 +vt 0.095238 0.430556 +vt 0.431548 0.430556 +vt 0.095238 0.243056 +vt 0.431548 0.243056 +vt 0.095238 0.409722 +vt 0.431548 0.409722 +vt 0.095238 0.222222 +vt 0.431548 0.222222 +vt 0.095238 0.388889 +vt 0.431548 0.388889 +vt 0.431548 0.555556 +vt 0.095238 0.534722 +vt 0.431548 0.534722 +vt 0.095238 0.513889 +vt 0.431548 0.513889 +vt 0.095238 0.493056 +vt 0.431548 0.493056 +vt 0.095238 0.472222 +vt 0.431548 0.472222 +vt 0.330357 0.378472 +vt 0.095238 0.451389 +vt 0.443452 0.347222 +vt 0.520833 0.361111 +vt 0.443452 0.361111 +vt 0.443452 0.333333 +vt 0.520833 0.347222 +vt 0.443452 0.305556 +vt 0.520833 0.319444 +vt 0.443452 0.319444 +vt 0.443452 0.388889 +vt 0.520833 0.402778 +vt 0.443452 0.402778 +vt 0.520833 0.375000 +vt 0.443452 0.375000 +vt 0.520833 0.333333 +vt 0.443452 0.291667 +vt 0.520833 0.305556 +vt 0.520833 0.388889 +vt 0.425595 0.378472 +vt 0.431548 0.368056 +vt 0.330357 0.305556 +vt 0.095238 0.305556 +vt 0.095238 0.284722 +vt 0.425595 0.326389 +vt 0.431548 0.305556 +vt 0.431548 0.326389 +vt 0.425595 0.347222 +vt 0.431548 0.347222 +vt 0.425595 0.368056 +vt 0.095238 0.326389 +vt 0.330357 0.326389 +vt 0.095238 0.347222 +vt 0.330357 0.347222 +vt 0.095238 0.368056 +vt 0.330357 0.368056 +vt 0.544643 0.118056 +vt 0.461310 0.097222 +vt 0.544643 0.097222 +vt 0.544643 0.138889 +vt 0.461310 0.118056 +vt 0.544643 0.159722 +vt 0.461310 0.138889 +vt 0.544643 0.180556 +vt 0.461310 0.159722 +vt 0.544643 0.034722 +vt 0.544643 0.201389 +vt 0.461310 0.180556 +vt 0.544643 0.055556 +vt 0.461310 0.034722 +vt 0.544643 0.222222 +vt 0.461310 0.201389 +vt 0.544643 0.076389 +vt 0.461310 0.055556 +vt 0.544643 0.243056 +vt 0.461310 0.222222 +vt 0.461310 0.076389 +vt 0.461310 0.263889 +vt 0.544643 0.263889 +vt 0.461310 0.243056 +vt 0.119048 0.597222 +vt 0.119048 0.628472 +vt 0.119048 0.576389 +vt 0.119048 0.618056 +vt 0.544643 0.284722 +vt 0.544643 0.305556 +vt 0.544643 0.326389 +vt 0.544643 0.347222 +vt 0.077381 0.326389 +vt 0.077381 0.472222 +vt 0.077381 0.451389 +vt 0.077381 0.243056 +vt 0.077381 0.263889 +vt 0.077381 0.430556 +vt 0.077381 0.409722 +vt 0.095238 0.555556 +vt 0.077381 0.534722 +vt 0.077381 0.284722 +vt 0.077381 0.368056 +vt 0.077381 0.222222 +vt 0.077381 0.493056 +vt 1.000000 -0.000000 +vt 0.976190 0.055556 +vt 0.976190 -0.000000 +vt 0.976190 0.819444 +vt 1.000000 0.875000 +vt 0.976190 0.875000 +vt 0.976190 0.784722 +vt 1.000000 0.819444 +vt 0.976190 0.472222 +vt 1.000000 0.784722 +vt 0.976190 0.333333 +vt 1.000000 0.472222 +vt 1.000000 0.055556 +vt 0.976190 0.097222 +vt 1.000000 0.333333 +vt 0.928571 0.291667 +vt 0.925595 0.034722 +vt 0.892857 0.326389 +vt 0.949405 0.368056 +vt 0.892857 0.326389 +vt 0.928571 0.291667 +vt 0.949405 0.333333 +vt 0.964286 0.368056 +vt 0.875000 0.347222 +vt 0.863095 0.368056 +vt 0.863095 0.312500 +vt 0.880952 0.305556 +vt 0.925595 0.034722 +vt 0.916667 0.000000 +vt 0.961310 0.055556 +vt 0.976190 0.041667 +vt 0.940476 0.277778 +vt 0.958333 0.312500 +vt 0.949405 0.333333 +vt 0.964286 0.368056 +vt 0.958333 0.312500 +vt 0.875000 0.347222 +vt 0.863095 0.368056 +vt 0.875000 0.368056 +vt 0.880952 0.305556 +vt 0.863095 0.312500 +vt 0.961310 0.055556 +vt 0.916667 0.000000 +vt 0.940476 0.277778 +vt 0.976190 0.041667 +vt 0.491071 0.763889 +vt 0.514881 0.763889 +vt 0.479167 0.763889 +vt 0.431548 0.763889 +vt 0.401786 0.763889 +vt 0.550595 0.736111 +vt 0.568452 0.736111 +vt 0.550595 0.763889 +vt 0.550595 0.513889 +vt 0.693452 0.527778 +vt 0.550595 0.527778 +vt 0.550595 0.583333 +vt 0.693452 0.597222 +vt 0.550595 0.597222 +vt 0.550595 0.555556 +vt 0.693452 0.569444 +vt 0.550595 0.569444 +vt 0.550595 0.625000 +vt 0.693452 0.638889 +vt 0.550595 0.638889 +vt 0.550595 0.500000 +vt 0.693452 0.513889 +vt 0.550595 0.541667 +vt 0.693452 0.555556 +vt 0.550595 0.611111 +vt 0.693452 0.625000 +vt 0.550595 0.652778 +vt 0.693452 0.666667 +vt 0.550595 0.666667 +vt 0.693452 0.541667 +vt 0.693452 0.611111 +vt 0.693452 0.583333 +vt 0.693452 0.652778 +vt 0.520833 0.708333 +vt 0.419643 0.694444 +vt 0.520833 0.694444 +vt 0.520833 0.638889 +vt 0.419643 0.625000 +vt 0.520833 0.625000 +vt 0.419643 0.680556 +vt 0.520833 0.680556 +vt 0.419643 0.611111 +vt 0.520833 0.611111 +vt 0.419643 0.597222 +vt 0.520833 0.597222 +vt 0.520833 0.763889 +vt 0.419643 0.750000 +vt 0.520833 0.750000 +vt 0.419643 0.736111 +vt 0.520833 0.736111 +vt 0.419643 0.666667 +vt 0.520833 0.666667 +vt 0.419643 0.722222 +vt 0.520833 0.722222 +vt 0.419643 0.652778 +vt 0.520833 0.652778 +vt 0.419643 0.708333 +vt 0.419643 0.638889 +vt 0.619048 0.416667 +vt 0.616071 0.416667 +vt 0.604167 0.416667 +vt 0.601190 0.416667 +vt 0.613095 0.416667 +vt 0.598214 0.416667 +vt 0.610119 0.416667 +vt 0.595238 0.416667 +vt 0.607143 0.416667 +vt 0.592262 0.416667 +vt 0.589286 0.416667 +vt 0.625000 0.416667 +vt 0.622024 0.416667 +vt 0.625000 0.416667 +vt 0.726190 0.430556 +vt 0.625000 0.430556 +vt 0.625000 0.458333 +vt 0.726190 0.472222 +vt 0.625000 0.472222 +vt 0.625000 0.486111 +vt 0.726190 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.402778 +vt 0.726190 0.416667 +vt 0.726190 0.444444 +vt 0.625000 0.444444 +vt 0.726190 0.458333 +vt 0.726190 0.486111 +vt 0.625000 0.388889 +vt 0.726190 0.402778 +vt 0.550595 0.513889 +vt 0.693452 0.527778 +vt 0.550595 0.527778 +vt 0.550595 0.583333 +vt 0.693452 0.597222 +vt 0.550595 0.597222 +vt 0.550595 0.555556 +vt 0.693452 0.569444 +vt 0.550595 0.569444 +vt 0.550595 0.625000 +vt 0.693452 0.638889 +vt 0.550595 0.638889 +vt 0.550595 0.500000 +vt 0.693452 0.513889 +vt 0.550595 0.541667 +vt 0.693452 0.555556 +vt 0.550595 0.611111 +vt 0.693452 0.625000 +vt 0.550595 0.652778 +vt 0.693452 0.666667 +vt 0.550595 0.666667 +vt 0.693452 0.541667 +vt 0.693452 0.611111 +vt 0.693452 0.583333 +vt 0.693452 0.652778 +vt 0.520833 0.708333 +vt 0.419643 0.694444 +vt 0.520833 0.694444 +vt 0.520833 0.638889 +vt 0.419643 0.625000 +vt 0.520833 0.625000 +vt 0.419643 0.680556 +vt 0.520833 0.680556 +vt 0.419643 0.611111 +vt 0.520833 0.611111 +vt 0.419643 0.597222 +vt 0.520833 0.597222 +vt 0.520833 0.763889 +vt 0.419643 0.750000 +vt 0.520833 0.750000 +vt 0.419643 0.736111 +vt 0.520833 0.736111 +vt 0.419643 0.666667 +vt 0.520833 0.666667 +vt 0.419643 0.722222 +vt 0.520833 0.722222 +vt 0.419643 0.652778 +vt 0.520833 0.652778 +vt 0.419643 0.708333 +vt 0.419643 0.638889 +vt 0.449405 0.000000 +vt 0.059524 0.416667 +vt 0.059524 0.500000 +vt 0.059524 0.638889 +vt 0.059524 0.305556 +vt 0.059524 0.388889 +vt 0.032738 0.666667 +vt 0.038690 0.666667 +vt 0.520833 0.291667 +vt 0.425595 0.305556 +vt 0.119048 0.555556 +vt 0.077381 0.305556 +vt 0.077381 0.347222 +vt 0.077381 0.388889 +vt 0.077381 0.555556 +vt 0.077381 0.513889 +vt 1.000000 0.097222 +vt 0.949405 0.368056 +vt 0.875000 0.368056 +vt 0.568452 0.763889 +vt 0.693452 0.500000 +vt 0.419643 0.763889 +vt 0.726190 0.388889 +vt 0.693452 0.500000 +vt 0.419643 0.763889 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.9808 -0.1951 0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.0000 -0.8480 0.5300 +vn 0.0000 -0.8000 -0.6000 +vn 0.9965 0.0830 0.0000 +vn -0.9965 0.0830 0.0000 +vn 0.0000 0.9363 0.3511 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.3506 0.8465 0.4006 +vn -0.0000 0.9163 0.4006 +vn 0.3827 0.9239 0.0000 +vn 0.6479 0.6479 0.4006 +vn 0.8465 0.3506 0.4006 +vn 0.9239 0.3827 0.0000 +vn 0.9163 0.0000 0.4006 +vn 0.8465 -0.3506 0.4006 +vn 0.9239 -0.3827 -0.0000 +vn 0.6479 -0.6479 0.4006 +vn 0.3827 -0.9239 -0.0000 +vn 0.3506 -0.8465 0.4006 +vn -0.0000 -0.9163 0.4006 +vn -0.3506 -0.8465 0.4006 +vn -0.3827 -0.9239 -0.0000 +vn -0.6479 -0.6479 0.4006 +vn -0.7071 -0.7071 -0.0000 +vn -0.8465 -0.3506 0.4006 +vn -0.9239 -0.3827 -0.0000 +vn -0.9163 -0.0000 0.4006 +vn -0.8465 0.3506 0.4006 +vn -0.6479 0.6479 0.4006 +vn -0.3506 0.8465 0.4006 +vn -0.3827 0.9239 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.2123 0.5125 0.8321 +vn 0.0000 0.6265 0.7794 +vn 0.0000 0.5547 0.8321 +vn 0.2123 0.5125 0.8321 +vn 0.2398 0.5788 0.7794 +vn 0.4430 0.4430 0.7794 +vn 0.3922 0.3922 0.8321 +vn 0.5788 0.2398 0.7794 +vn 0.5125 0.2123 0.8321 +vn 0.5547 -0.0000 0.8321 +vn 0.6265 -0.0000 0.7794 +vn 0.5125 -0.2123 0.8321 +vn 0.5788 -0.2398 0.7794 +vn 0.3922 -0.3922 0.8320 +vn 0.4430 -0.4430 0.7794 +vn 0.2123 -0.5125 0.8321 +vn 0.2398 -0.5788 0.7794 +vn 0.0000 -0.6265 0.7794 +vn 0.0000 -0.5547 0.8321 +vn -0.2123 -0.5125 0.8321 +vn -0.2398 -0.5788 0.7794 +vn -0.4430 -0.4430 0.7794 +vn -0.3922 -0.3922 0.8321 +vn -0.5788 -0.2398 0.7794 +vn -0.5125 -0.2123 0.8321 +vn -0.6265 0.0000 0.7794 +vn -0.5547 0.0000 0.8321 +vn -0.5125 0.2123 0.8321 +vn -0.5788 0.2398 0.7794 +vn -0.3922 0.3922 0.8321 +vn -0.4430 0.4430 0.7794 +vn -0.2398 0.5788 0.7794 +vn -0.0000 0.7071 0.7071 +vn -0.2706 0.6533 0.7071 +vn 0.2706 0.6533 0.7071 +vn 0.5000 0.5000 0.7071 +vn 0.6533 0.2706 0.7071 +vn 0.6533 -0.2706 0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.2706 -0.6533 0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.2706 -0.6533 0.7071 +vn -0.5000 -0.5000 0.7071 +vn -0.6533 -0.2706 0.7071 +vn -0.6533 0.2706 0.7071 +vn -0.5000 0.5000 0.7071 +vn -0.5000 0.5000 -0.7071 +vn -0.2706 0.6533 -0.7071 +vn -0.0000 0.7071 -0.7071 +vn 0.2706 0.6533 -0.7071 +vn 0.5000 0.5000 -0.7071 +vn 0.6533 0.2706 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.6533 -0.2706 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vn 0.2706 -0.6533 -0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.2706 -0.6533 -0.7071 +vn -0.5000 -0.5000 -0.7071 +vn -0.6533 -0.2706 -0.7071 +vn -0.7071 -0.0000 -0.7071 +vn -0.6533 0.2706 -0.7071 +vn -0.6983 -0.6983 -0.1571 +vn 0.6983 0.6983 -0.1571 +vn -0.3779 -0.9124 -0.1571 +vn 0.3779 0.9124 -0.1571 +vn 0.0000 -0.9876 -0.1571 +vn 0.0000 0.9876 -0.1571 +vn 0.3779 -0.9124 -0.1571 +vn 0.6983 -0.6983 -0.1571 +vn 0.9124 -0.3779 -0.1571 +vn 0.9876 -0.0000 -0.1571 +vn -0.1951 0.9808 0.0000 +vn 0.9124 0.3779 -0.1571 +vn -0.9978 -0.0662 0.0000 +vn -0.9876 0.0000 -0.1571 +vn -0.9124 -0.3779 -0.1571 +vn -0.9124 0.3779 -0.1571 +vn -0.6983 0.6983 -0.1571 +vn -0.3779 0.9124 -0.1571 +vn -0.3768 0.9097 -0.1747 +vn 0.0000 0.9846 -0.1747 +vn -0.6962 0.6962 -0.1747 +vn -0.9097 0.3768 -0.1747 +vn -0.9846 -0.0000 -0.1747 +vn 0.9097 0.3768 -0.1747 +vn 0.9808 0.1951 0.0000 +vn 0.9699 0.0690 -0.2336 +vn -0.9097 -0.3768 -0.1747 +vn 0.6962 0.6962 -0.1747 +vn -0.6962 -0.6962 -0.1747 +vn 0.3768 0.9097 -0.1747 +vn -0.3768 -0.9097 -0.1747 +vn 0.1897 -0.9537 -0.2333 +vn 0.0000 -0.9846 -0.1747 +vn -0.9808 0.1951 0.0000 +vn 0.8651 0.3583 -0.3511 +vn 0.3583 0.8651 -0.3511 +vn 0.0000 0.9363 -0.3511 +vn -0.3583 0.8651 -0.3511 +vn -0.8651 0.3583 -0.3511 +vn -0.9363 -0.0000 -0.3511 +vn -0.8651 -0.3583 -0.3511 +vn -0.3583 -0.8651 -0.3511 +vn -0.6621 -0.6621 -0.3511 +vn 0.3583 -0.8651 -0.3511 +vn 0.6621 -0.6621 -0.3511 +vn 0.8651 -0.3583 -0.3511 +vn 0.9363 -0.0000 -0.3511 +vn 0.1951 0.9808 0.0000 +vn 0.4430 0.8965 -0.0000 +vn -0.8765 0.3630 -0.3162 +vn 0.9487 0.0000 -0.3162 +vn 0.8765 0.3630 -0.3162 +vn -0.3630 -0.8765 -0.3162 +vn -0.6708 -0.6708 -0.3162 +vn 0.6708 0.6708 -0.3162 +vn 0.3630 0.8765 -0.3162 +vn 0.3630 -0.8765 -0.3162 +vn -0.8765 -0.3630 -0.3162 +vn -0.3630 0.8765 -0.3162 +vn 0.0000 -0.9487 -0.3162 +vn 0.8765 -0.3630 -0.3162 +vn 0.5047 -0.1901 -0.8421 +vn -0.4878 -0.5029 -0.7136 +vn -0.5047 -0.1901 -0.8421 +vn -0.4787 -0.5675 0.6699 +vn 0.5257 0.0000 0.8507 +vn -0.5257 0.0000 0.8507 +vn -0.6633 -0.5552 0.5018 +vn 0.4787 -0.5675 0.6699 +vn -0.4797 -0.7672 0.4257 +vn 0.6633 -0.5552 0.5018 +vn -0.4799 -0.4009 -0.7804 +vn 0.4797 -0.7672 0.4257 +vn 0.4878 -0.5029 -0.7136 +vn -0.6945 -0.2306 -0.6815 +vn 0.4799 -0.4009 -0.7804 +vn -0.9939 -0.0353 -0.1043 +vn -0.9692 -0.2154 0.1195 +vn -0.9919 -0.0945 0.0854 +vn 0.9811 -0.0133 -0.1928 +vn 0.9919 -0.0945 0.0854 +vn 0.9939 -0.0353 -0.1043 +vn 0.9650 -0.1446 -0.2187 +vn 0.9665 -0.1658 0.1958 +vn 0.9692 -0.2154 0.1195 +vn 0.9694 -0.1121 -0.2183 +vn 0.6945 -0.2306 -0.6815 +vn -0.9650 -0.1446 -0.2187 +vn -0.9665 -0.1658 0.1958 +vn -0.9732 0.0000 0.2298 +vn -0.9694 -0.1121 -0.2183 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9820 0.1891 +vn 0.0000 -0.9820 -0.1891 +vn 0.0000 0.9285 0.3714 +vn 0.0000 -0.9285 -0.3714 +vn 0.0000 -0.1602 0.9871 +vn 0.0000 -0.3162 0.9487 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.1951 -0.9808 0.0000 +vn 0.6621 0.6621 -0.3511 +vn -0.6621 0.6621 -0.3511 +vn -0.0000 -0.9363 -0.3511 +vn -0.9487 0.0000 -0.3162 +vn -0.6708 0.6708 -0.3162 +vn 0.0000 0.9487 -0.3162 +vn 0.6708 -0.6708 -0.3162 +vn -0.9811 -0.0133 -0.1928 +vn 0.9732 0.0000 0.2298 +s off +f 416/565/229 422/566/229 421/567/229 +f 416/565/229 420/568/229 418/569/229 +f 418/569/229 419/570/229 388/571/229 +f 388/571/229 434/572/229 390/573/229 +f 390/573/229 433/574/229 392/575/229 +f 392/575/229 432/576/229 394/577/229 +f 394/577/229 431/578/229 396/579/229 +f 396/579/229 430/580/229 398/581/229 +f 398/581/229 429/582/229 400/583/229 +f 402/584/229 429/582/229 428/585/229 +f 404/586/229 428/585/229 427/587/229 +f 406/588/229 427/589/229 426/590/229 +f 408/591/229 426/590/229 425/592/229 +f 410/593/229 425/592/229 424/594/229 +f 412/595/229 424/594/229 423/596/229 +f 414/597/229 423/596/229 422/566/229 +f 515/598/230 507/599/230 508/600/230 +f 523/601/230 504/602/230 522/603/230 +f 508/600/230 530/604/230 515/598/230 +f 522/603/230 501/605/230 521/606/230 +f 505/607/230 529/608/230 530/604/230 +f 521/606/230 502/609/230 520/610/230 +f 529/608/230 499/611/230 528/612/230 +f 528/612/230 500/613/230 527/614/230 +f 520/610/230 514/615/230 519/616/230 +f 527/614/230 513/617/230 526/618/230 +f 519/616/230 512/619/230 518/620/230 +f 526/618/230 511/621/230 525/622/230 +f 518/620/230 510/623/230 517/624/230 +f 525/622/230 509/625/230 524/626/230 +f 517/624/230 507/599/230 516/627/230 +f 523/628/230 509/625/230 506/629/230 +f 581/630/230 495/631/230 496/632/230 +f 582/633/230 494/634/230 495/631/230 +f 494/634/230 584/635/230 493/636/230 +f 584/635/230 492/637/230 493/636/230 +f 492/637/230 586/638/230 491/639/230 +f 491/639/230 587/640/230 490/641/230 +f 490/642/230 588/643/230 489/644/230 +f 489/644/230 589/645/230 488/646/230 +f 488/646/230 590/647/230 487/648/230 +f 487/648/230 591/649/230 486/650/230 +f 591/649/230 485/651/230 486/650/230 +f 592/652/230 484/653/230 485/651/230 +f 593/654/230 483/655/230 484/653/230 +f 483/655/230 579/656/230 498/657/230 +f 498/657/230 580/658/230 497/659/230 +f 580/658/230 496/632/230 497/659/230 +f 621/660/231 622/661/231 620/662/231 +f 616/663/229 622/664/229 617/665/229 +f 612/666/230 613/667/230 611/668/230 +f 618/669/232 614/670/232 612/671/232 +f 622/664/233 618/669/233 617/665/233 +f 616/663/234 620/672/234 619/673/234 +f 611/668/235 620/672/235 615/674/235 +f 631/675/230 637/676/230 635/677/230 +f 627/678/229 629/679/229 623/680/229 +f 647/681/230 650/682/230 640/683/230 +f 650/682/230 641/684/230 640/683/230 +f 651/685/230 642/686/230 641/684/230 +f 652/687/230 598/688/230 642/686/230 +f 648/689/229 688/690/229 684/691/229 +f 645/692/229 688/690/229 644/693/229 +f 646/694/229 687/695/229 645/692/229 +f 646/694/229 685/696/229 686/697/229 +f 689/698/236 665/699/236 647/700/236 +f 653/701/237 667/702/237 683/703/237 +f 445/704/230 696/705/230 444/706/230 +f 707/707/230 713/708/230 708/709/230 +f 707/707/230 715/710/230 714/711/230 +f 709/712/230 711/713/230 710/714/230 +f 708/709/230 712/715/230 709/712/230 +f 723/716/229 716/717/229 717/718/229 +f 716/717/229 725/719/229 720/720/229 +f 722/721/229 718/722/229 719/723/229 +f 721/724/229 717/718/229 718/722/229 +f 730/725/238 729/726/238 732/727/238 +f 706/728/231 725/729/231 715/730/231 +f 728/731/229 726/732/229 727/733/229 +f 730/725/230 733/734/230 731/735/230 +f 735/736/230 736/737/230 734/738/230 +f 737/739/231 738/740/231 736/737/231 +f 739/741/239 740/742/239 738/740/239 +f 741/743/231 742/744/231 740/742/231 +f 738/740/235 740/745/235 744/746/235 +f 745/747/232 743/748/232 741/749/232 +f 758/750/230 754/751/230 750/752/230 +f 446/753/230 695/754/230 445/755/230 +f 447/756/230 694/757/230 446/758/230 +f 448/759/230 693/760/230 447/761/230 +f 449/762/230 692/763/230 448/764/230 +f 450/765/230 691/766/230 449/767/230 +f 435/768/230 690/769/230 450/770/230 +f 436/771/230 705/772/230 435/773/230 +f 437/774/230 704/775/230 436/776/230 +f 437/777/230 702/778/230 703/779/230 +f 439/780/230 702/781/230 438/782/230 +f 439/783/230 700/784/230 701/785/230 +f 440/786/230 699/787/230 700/788/230 +f 441/789/230 698/790/230 699/791/230 +f 442/792/230 697/793/230 698/794/230 +f 443/795/230 696/796/230 697/797/230 +f 796/798/240 795/799/240 794/800/240 +f 798/801/231 797/802/231 796/798/231 +f 797/803/232 803/804/232 801/805/232 +f 802/806/235 798/807/235 796/808/235 +f 807/809/232 810/810/232 805/811/232 +f 804/812/235 809/813/235 806/814/235 +f 811/815/235 815/816/235 809/813/235 +f 814/817/232 810/810/232 808/818/232 +f 813/819/235 819/820/235 815/816/235 +f 814/817/232 816/821/232 812/822/232 +f 817/823/235 823/824/235 819/820/235 +f 816/821/232 822/825/232 820/826/232 +f 826/827/231 825/828/231 824/829/231 +f 833/830/232 831/831/232 829/832/232 +f 828/833/235 830/834/235 832/835/235 +f 844/836/230 840/837/230 836/838/230 +f 856/839/229 847/840/229 850/841/229 +f 868/842/229 858/843/229 862/844/229 +f 880/845/230 876/846/230 872/847/230 +f 884/848/237 883/849/237 882/850/237 +f 882/850/230 889/851/230 884/848/230 +f 883/849/241 887/852/241 882/850/241 +f 885/853/229 886/854/229 883/849/229 +f 884/848/242 888/855/242 885/853/242 +f 899/856/230 912/857/230 900/858/230 +f 912/857/230 901/859/230 900/858/230 +f 901/859/230 902/860/230 890/861/230 +f 902/860/230 891/862/230 890/861/230 +f 891/862/230 904/863/230 892/864/230 +f 904/863/230 893/865/230 892/864/230 +f 893/865/230 906/866/230 894/867/230 +f 906/866/230 895/868/230 894/867/230 +f 895/868/230 908/869/230 896/870/230 +f 908/871/230 897/872/230 896/873/230 +f 897/872/230 910/874/230 898/875/230 +f 910/874/230 899/856/230 898/875/230 +f 923/876/229 936/877/229 935/878/229 +f 925/879/229 936/877/229 924/880/229 +f 925/879/229 927/881/229 937/882/229 +f 914/883/229 927/881/229 915/884/229 +f 914/883/229 928/885/229 926/886/229 +f 917/887/229 928/885/229 916/888/229 +f 917/887/229 930/889/229 929/890/229 +f 919/891/229 930/889/229 918/892/229 +f 919/891/229 932/893/229 931/894/229 +f 921/895/229 932/896/229 920/897/229 +f 921/895/229 934/898/229 933/899/229 +f 923/876/229 934/898/229 922/900/229 +f 945/901/243 956/902/243 942/903/243 +f 958/904/229 956/902/229 957/905/229 +f 948/906/230 940/907/230 947/908/230 +f 944/909/235 957/905/235 945/910/235 +f 948/906/235 951/911/235 949/912/235 +f 940/913/244 949/912/244 938/914/244 +f 943/915/232 956/902/232 959/916/232 +f 946/917/229 949/918/229 951/919/229 +f 952/920/232 955/921/232 953/922/232 +f 939/923/245 953/922/245 941/924/245 +f 962/925/235 965/926/235 963/927/235 +f 966/928/229 964/929/229 965/926/229 +f 963/930/243 964/929/243 960/931/243 +f 961/932/232 964/929/232 967/933/232 +f 980/934/229 982/935/229 976/936/229 +f 990/937/232 988/938/232 989/939/232 +f 987/940/231 990/937/231 985/941/231 +f 984/942/237 988/938/237 986/943/237 +f 986/944/230 991/945/230 987/946/230 +f 985/947/229 989/939/229 984/948/229 +f 682/949/229 667/950/229 992/951/229 +f 992/951/229 681/952/229 682/949/229 +f 993/953/229 680/954/229 681/952/229 +f 994/955/229 689/956/229 680/954/229 +f 678/957/229 666/958/229 679/959/229 +f 1005/960/230 1001/961/230 997/962/230 +f 1017/963/229 1008/964/229 1011/965/229 +f 1029/966/229 1019/967/229 1023/968/229 +f 1041/969/230 1037/970/230 1033/971/230 +f 416/565/229 414/597/229 422/566/229 +f 416/565/229 421/567/229 420/568/229 +f 418/569/229 420/568/229 419/570/229 +f 388/571/229 419/570/229 434/572/229 +f 390/573/229 434/572/229 433/574/229 +f 392/575/229 433/574/229 432/576/229 +f 394/577/229 432/576/229 431/578/229 +f 396/579/229 431/578/229 430/580/229 +f 398/581/229 430/580/229 429/582/229 +f 402/584/229 400/583/229 429/582/229 +f 404/586/229 402/584/229 428/585/229 +f 406/588/229 404/972/229 427/589/229 +f 408/591/229 406/588/229 426/590/229 +f 410/593/229 408/591/229 425/592/229 +f 412/595/229 410/593/229 424/594/229 +f 414/597/229 412/595/229 423/596/229 +f 515/598/230 516/627/230 507/599/230 +f 523/601/230 506/973/230 504/602/230 +f 508/600/230 505/607/230 530/604/230 +f 522/603/230 504/602/230 501/605/230 +f 505/607/230 503/974/230 529/608/230 +f 521/606/230 501/605/230 502/609/230 +f 529/608/230 503/974/230 499/611/230 +f 528/612/230 499/611/230 500/613/230 +f 520/610/230 502/609/230 514/615/230 +f 527/614/230 500/613/230 513/617/230 +f 519/616/230 514/615/230 512/619/230 +f 526/618/230 513/617/230 511/621/230 +f 518/620/230 512/619/230 510/623/230 +f 525/622/230 511/621/230 509/625/230 +f 517/624/230 510/623/230 507/599/230 +f 523/628/230 524/626/230 509/625/230 +f 581/630/230 582/633/230 495/631/230 +f 582/633/230 583/975/230 494/634/230 +f 494/634/230 583/975/230 584/635/230 +f 584/635/230 585/976/230 492/637/230 +f 492/637/230 585/976/230 586/638/230 +f 491/639/230 586/638/230 587/640/230 +f 490/642/230 587/977/230 588/643/230 +f 489/644/230 588/643/230 589/645/230 +f 488/646/230 589/645/230 590/647/230 +f 487/648/230 590/647/230 591/649/230 +f 591/649/230 592/652/230 485/651/230 +f 592/652/230 593/654/230 484/653/230 +f 593/654/230 594/978/230 483/655/230 +f 483/655/230 594/978/230 579/656/230 +f 498/657/230 579/656/230 580/658/230 +f 580/658/230 581/630/230 496/632/230 +f 622/661/231 619/979/231 620/662/231 +f 620/662/231 613/980/231 614/670/231 +f 614/670/231 621/660/231 620/662/231 +f 616/663/229 619/673/229 622/664/229 +f 612/666/230 614/981/230 613/667/230 +f 618/669/232 621/660/232 614/670/232 +f 622/664/233 621/660/233 618/669/233 +f 616/663/234 615/674/234 620/672/234 +f 611/668/235 613/667/235 620/672/235 +f 633/982/230 632/983/230 631/675/230 +f 631/675/230 638/984/230 637/676/230 +f 637/676/230 636/985/230 635/677/230 +f 635/677/230 634/986/230 633/982/230 +f 633/982/230 631/675/230 635/677/230 +f 623/680/229 624/987/229 625/988/229 +f 625/988/229 626/989/229 627/678/229 +f 627/678/229 628/990/229 629/679/229 +f 629/679/229 630/991/229 623/680/229 +f 623/680/229 625/988/229 627/678/229 +f 647/681/230 665/992/230 650/682/230 +f 650/682/230 651/685/230 641/684/230 +f 651/685/230 652/687/230 642/686/230 +f 652/687/230 653/993/230 598/688/230 +f 648/689/229 644/693/229 688/690/229 +f 645/692/229 687/695/229 688/690/229 +f 646/694/229 686/697/229 687/695/229 +f 646/694/229 597/994/229 685/696/229 +f 647/700/236 648/995/236 689/698/236 +f 648/995/236 684/996/236 689/698/236 +f 689/698/236 679/997/236 665/699/236 +f 685/998/237 597/999/237 683/703/237 +f 597/999/237 598/1000/237 683/703/237 +f 598/1000/237 653/701/237 683/703/237 +f 445/704/230 695/1001/230 696/705/230 +f 707/707/230 714/711/230 713/708/230 +f 707/707/230 706/728/230 715/710/230 +f 709/712/230 712/715/230 711/713/230 +f 708/709/230 713/708/230 712/715/230 +f 723/716/229 724/1002/229 716/717/229 +f 716/717/229 724/1002/229 725/719/229 +f 722/721/229 721/724/229 718/722/229 +f 721/724/229 723/716/229 717/718/229 +f 730/725/238 726/732/238 729/726/238 +f 706/728/231 720/720/231 725/729/231 +f 728/731/229 729/1003/229 726/732/229 +f 730/725/230 732/1004/230 733/734/230 +f 735/736/230 737/739/230 736/737/230 +f 737/739/231 739/741/231 738/740/231 +f 739/741/239 741/743/239 740/742/239 +f 741/743/231 743/1005/231 742/744/231 +f 734/1006/235 736/737/235 738/740/235 +f 740/745/235 742/1007/235 744/746/235 +f 734/1006/235 738/740/235 744/746/235 +f 737/739/232 735/1008/232 739/741/232 +f 735/1008/232 745/747/232 739/741/232 +f 739/741/232 745/747/232 741/749/232 +f 750/752/230 749/1009/230 748/1010/230 +f 748/1010/230 763/1011/230 750/752/230 +f 763/1011/230 762/1012/230 750/752/230 +f 762/1012/230 761/1013/230 760/1014/230 +f 760/1014/230 759/1015/230 758/750/230 +f 758/750/230 757/1016/230 756/1017/230 +f 756/1017/230 755/1018/230 754/751/230 +f 754/751/230 753/1019/230 752/1020/230 +f 752/1020/230 751/1021/230 750/752/230 +f 762/1012/230 760/1014/230 758/750/230 +f 758/750/230 756/1017/230 754/751/230 +f 754/751/230 752/1020/230 750/752/230 +f 750/752/230 762/1012/230 758/750/230 +f 446/753/230 694/1022/230 695/754/230 +f 447/756/230 693/1023/230 694/757/230 +f 448/759/230 692/1024/230 693/760/230 +f 449/762/230 691/1025/230 692/763/230 +f 450/765/230 690/1026/230 691/766/230 +f 435/768/230 705/1027/230 690/769/230 +f 436/771/230 704/1028/230 705/772/230 +f 437/774/230 703/1029/230 704/775/230 +f 437/777/230 438/1030/230 702/778/230 +f 439/780/230 701/1031/230 702/781/230 +f 439/783/230 440/1032/230 700/784/230 +f 440/786/230 441/1033/230 699/787/230 +f 441/789/230 442/1034/230 698/790/230 +f 442/792/230 443/1035/230 697/793/230 +f 443/795/230 444/1036/230 696/796/230 +f 796/798/240 797/802/240 795/799/240 +f 798/801/231 799/1037/231 797/802/231 +f 801/805/232 795/799/232 797/803/232 +f 797/803/232 799/1038/232 803/804/232 +f 796/808/235 794/800/235 800/1039/235 +f 800/1039/235 802/806/235 796/808/235 +f 807/809/232 808/818/232 810/810/232 +f 804/812/235 811/815/235 809/813/235 +f 811/815/235 813/819/235 815/816/235 +f 814/817/232 812/822/232 810/810/232 +f 813/819/235 817/823/235 819/820/235 +f 814/817/232 818/1040/232 816/821/232 +f 817/823/235 821/1041/235 823/824/235 +f 816/821/232 818/1040/232 822/825/232 +f 826/827/231 827/1042/231 825/828/231 +f 829/832/232 825/828/232 827/1042/232 +f 827/1042/232 833/830/232 829/832/232 +f 832/835/235 826/827/235 828/833/235 +f 826/827/235 824/829/235 828/833/235 +f 836/838/230 835/1043/230 844/836/230 +f 835/1043/230 834/1044/230 844/836/230 +f 834/1044/230 845/1045/230 844/836/230 +f 844/836/230 843/1046/230 842/1047/230 +f 842/1047/230 841/1048/230 840/837/230 +f 840/837/230 839/1049/230 838/1050/230 +f 838/1050/230 837/1051/230 840/837/230 +f 837/1051/230 836/838/230 840/837/230 +f 844/836/230 842/1047/230 840/837/230 +f 847/840/229 846/1052/229 848/1053/229 +f 848/1053/229 849/1054/229 847/840/229 +f 849/1054/229 850/841/229 847/840/229 +f 850/841/229 851/1055/229 854/1056/229 +f 851/1055/229 852/1057/229 854/1056/229 +f 852/1057/229 853/1058/229 854/1056/229 +f 854/1056/229 855/1059/229 856/839/229 +f 856/839/229 857/1060/229 847/840/229 +f 854/1056/229 856/839/229 850/841/229 +f 858/843/229 859/1061/229 860/1062/229 +f 860/1062/229 861/1063/229 858/843/229 +f 861/1063/229 862/844/229 858/843/229 +f 862/844/229 863/1064/229 866/1065/229 +f 863/1064/229 864/1066/229 866/1065/229 +f 864/1066/229 865/1067/229 866/1065/229 +f 866/1065/229 867/1068/229 868/842/229 +f 868/842/229 869/1069/229 858/843/229 +f 866/1065/229 868/842/229 862/844/229 +f 872/847/230 870/1070/230 880/845/230 +f 870/1070/230 871/1071/230 880/845/230 +f 871/1071/230 881/1072/230 880/845/230 +f 880/845/230 879/1073/230 878/1074/230 +f 878/1074/230 877/1075/230 876/846/230 +f 876/846/230 875/1076/230 874/1077/230 +f 874/1077/230 873/1078/230 876/846/230 +f 873/1078/230 872/847/230 876/846/230 +f 880/845/230 878/1074/230 876/846/230 +f 884/848/237 885/853/237 883/849/237 +f 882/850/230 887/1079/230 889/851/230 +f 883/849/241 886/1080/241 887/852/241 +f 885/853/229 888/1081/229 886/854/229 +f 884/848/242 889/1082/242 888/855/242 +f 899/856/230 911/1083/230 912/857/230 +f 912/857/230 913/1084/230 901/859/230 +f 901/859/230 913/1084/230 902/860/230 +f 902/860/230 903/1085/230 891/862/230 +f 891/862/230 903/1085/230 904/863/230 +f 904/863/230 905/1086/230 893/865/230 +f 893/865/230 905/1086/230 906/866/230 +f 906/866/230 907/1087/230 895/868/230 +f 895/868/230 907/1087/230 908/869/230 +f 908/871/230 909/1088/230 897/872/230 +f 897/872/230 909/1088/230 910/874/230 +f 910/874/230 911/1083/230 899/856/230 +f 923/876/229 924/880/229 936/877/229 +f 925/879/229 937/882/229 936/877/229 +f 925/879/229 915/884/229 927/881/229 +f 914/883/229 926/886/229 927/881/229 +f 914/883/229 916/888/229 928/885/229 +f 917/887/229 929/890/229 928/885/229 +f 917/887/229 918/892/229 930/889/229 +f 919/891/229 931/894/229 930/889/229 +f 919/891/229 920/1089/229 932/893/229 +f 921/895/229 933/899/229 932/896/229 +f 921/895/229 922/900/229 934/898/229 +f 923/876/229 935/878/229 934/898/229 +f 945/901/243 957/905/243 956/902/243 +f 958/904/229 959/916/229 956/902/229 +f 947/908/230 941/1090/230 953/1091/230 +f 953/1091/230 955/1092/230 947/908/230 +f 955/1092/230 950/1093/230 947/908/230 +f 950/1093/230 948/906/230 947/908/230 +f 944/909/235 958/904/235 957/905/235 +f 948/906/235 950/1093/235 951/911/235 +f 940/913/244 948/906/244 949/912/244 +f 943/915/232 942/1094/232 956/902/232 +f 951/919/229 954/1095/229 946/917/229 +f 954/1095/229 952/920/229 946/917/229 +f 952/920/229 939/1096/229 946/917/229 +f 946/917/229 938/1097/229 949/918/229 +f 952/920/232 954/1095/232 955/921/232 +f 939/923/245 952/920/245 953/922/245 +f 962/925/235 966/928/235 965/926/235 +f 966/928/229 967/933/229 964/929/229 +f 963/930/243 965/926/243 964/929/243 +f 961/932/232 960/1098/232 964/929/232 +f 976/936/229 977/1099/229 978/1100/229 +f 978/1100/229 979/1101/229 980/934/229 +f 980/934/229 981/1102/229 982/935/229 +f 982/935/229 983/1103/229 976/936/229 +f 976/936/229 978/1100/229 980/934/229 +f 990/937/232 991/945/232 988/938/232 +f 987/940/231 991/945/231 990/937/231 +f 984/942/237 989/939/237 988/938/237 +f 986/944/230 988/938/230 991/945/230 +f 985/947/229 990/937/229 989/939/229 +f 682/949/229 683/1104/229 667/950/229 +f 992/951/229 993/953/229 681/952/229 +f 993/953/229 994/955/229 680/954/229 +f 994/955/229 679/1105/229 689/956/229 +f 679/959/229 994/1106/229 993/1107/229 +f 993/1107/229 992/1108/229 679/959/229 +f 992/1108/229 667/1109/229 679/959/229 +f 667/1109/229 668/1110/229 679/959/229 +f 668/1110/229 669/1111/229 679/959/229 +f 669/1111/229 670/1112/229 679/959/229 +f 670/1112/229 671/1113/229 679/959/229 +f 671/1113/229 672/1114/229 679/959/229 +f 672/1114/229 673/1115/229 679/959/229 +f 673/1115/229 674/1116/229 679/959/229 +f 674/1116/229 675/1117/229 679/959/229 +f 675/1117/229 676/1118/229 679/959/229 +f 676/1118/229 677/1119/229 679/959/229 +f 677/1119/229 678/957/229 679/959/229 +f 997/962/230 996/1120/230 1005/960/230 +f 996/1120/230 995/1121/230 1005/960/230 +f 995/1121/230 1006/1122/230 1005/960/230 +f 1005/960/230 1004/1123/230 1003/1124/230 +f 1003/1124/230 1002/1125/230 1001/961/230 +f 1001/961/230 1000/1126/230 999/1127/230 +f 999/1127/230 998/1128/230 1001/961/230 +f 998/1128/230 997/962/230 1001/961/230 +f 1005/960/230 1003/1124/230 1001/961/230 +f 1008/964/229 1007/1129/229 1009/1130/229 +f 1009/1130/229 1010/1131/229 1008/964/229 +f 1010/1131/229 1011/965/229 1008/964/229 +f 1011/965/229 1012/1132/229 1015/1133/229 +f 1012/1132/229 1013/1134/229 1015/1133/229 +f 1013/1134/229 1014/1135/229 1015/1133/229 +f 1015/1133/229 1016/1136/229 1017/963/229 +f 1017/963/229 1018/1137/229 1008/964/229 +f 1015/1133/229 1017/963/229 1011/965/229 +f 1019/967/229 1020/1138/229 1021/1139/229 +f 1021/1139/229 1022/1140/229 1019/967/229 +f 1022/1140/229 1023/968/229 1019/967/229 +f 1023/968/229 1024/1141/229 1027/1142/229 +f 1024/1141/229 1025/1143/229 1027/1142/229 +f 1025/1143/229 1026/1144/229 1027/1142/229 +f 1027/1142/229 1028/1145/229 1029/966/229 +f 1029/966/229 1030/1146/229 1019/967/229 +f 1027/1142/229 1029/966/229 1023/968/229 +f 1033/971/230 1031/1147/230 1041/969/230 +f 1031/1147/230 1032/1148/230 1041/969/230 +f 1032/1148/230 1042/1149/230 1041/969/230 +f 1041/969/230 1040/1150/230 1039/1151/230 +f 1039/1151/230 1038/1152/230 1037/970/230 +f 1037/970/230 1036/1153/230 1035/1154/230 +f 1035/1154/230 1034/1155/230 1037/970/230 +f 1034/1155/230 1033/971/230 1037/970/230 +f 1041/969/230 1039/1151/230 1037/970/230 +s 1 +f 388/571/237 389/1156/246 387/1157/247 +f 390/573/248 391/1158/249 389/1156/246 +f 392/575/245 393/1159/250 391/1158/249 +f 394/577/251 395/1160/252 393/1159/250 +f 396/579/232 397/1161/253 395/1160/252 +f 398/581/254 399/1162/255 397/1161/253 +f 399/1162/255 402/584/256 401/1163/257 +f 402/584/256 403/1164/258 401/1163/257 +f 404/972/231 405/1165/259 403/1166/258 +f 406/588/260 407/1167/261 405/1165/259 +f 408/591/262 409/1168/263 407/1167/261 +f 410/593/264 411/1169/265 409/1168/263 +f 412/595/235 413/1170/266 411/1169/265 +f 414/597/238 415/1171/267 413/1170/266 +f 416/565/244 417/1172/268 415/1171/267 +f 417/1172/268 388/571/237 387/1157/247 +f 429/582/244 444/1173/269 428/585/269 +f 422/566/254 437/1174/270 421/567/270 +f 430/580/238 445/1175/244 429/582/244 +f 423/596/232 438/1176/254 422/566/254 +f 431/578/235 446/1177/238 430/580/238 +f 424/594/251 439/1178/232 423/596/232 +f 432/576/264 447/1179/235 431/578/235 +f 425/592/245 440/1180/251 424/594/251 +f 433/574/262 448/1181/264 432/576/264 +f 426/590/248 441/1182/245 425/592/245 +f 434/572/260 449/1183/262 433/574/262 +f 427/589/237 442/1184/248 426/590/248 +f 420/568/256 435/1185/231 419/570/231 +f 419/570/231 450/1186/260 434/572/260 +f 428/585/269 443/1187/237 427/587/237 +f 421/567/270 436/1188/256 420/568/256 +f 452/1189/271 467/1190/272 451/1191/273 +f 467/1190/272 417/1192/268 387/1193/247 +f 466/1194/274 467/1195/272 482/1196/275 +f 466/1194/274 481/1197/276 465/1198/277 +f 465/1198/277 480/1199/278 464/1200/279 +f 463/1201/280 480/1202/278 479/1203/281 +f 462/1204/282 479/1205/281 478/1206/283 +f 461/1207/284 478/1208/283 477/1209/285 +f 460/1210/286 477/1211/285 476/1212/287 +f 460/1210/286 475/1213/288 459/1214/289 +f 458/1215/290 475/1216/288 474/1217/291 +f 458/1215/290 473/1218/292 457/1219/293 +f 457/1219/293 472/1220/294 456/1221/295 +f 456/1221/295 471/1222/296 455/1223/297 +f 454/1224/298 471/1225/296 470/1226/299 +f 453/1227/300 470/1228/299 469/1229/301 +f 453/1227/300 468/1230/302 452/1189/271 +f 389/1231/246 467/1195/272 387/1232/247 +f 391/1233/249 482/1234/275 389/1235/246 +f 480/1199/278 391/1236/249 393/1237/250 +f 479/1203/281 393/1238/250 395/1239/252 +f 397/1240/253 479/1205/281 395/1241/252 +f 399/1242/255 478/1208/283 397/1243/253 +f 476/1212/287 399/1244/255 401/1245/257 +f 475/1213/288 401/1246/257 403/1247/258 +f 405/1248/259 475/1216/288 403/1249/258 +f 407/1250/261 474/1251/291 405/1252/259 +f 409/1253/263 473/1254/292 407/1255/261 +f 471/1222/296 409/1256/263 411/1257/265 +f 470/1226/299 411/1258/265 413/1259/266 +f 469/1229/301 413/1260/266 415/1261/267 +f 468/1230/302 415/1262/267 417/1263/268 +f 515/598/237 497/659/269 516/627/269 +f 530/604/248 498/657/237 515/598/237 +f 523/628/231 489/644/256 524/626/256 +f 516/627/269 496/632/244 517/624/244 +f 524/626/256 488/646/270 525/622/270 +f 517/624/244 495/631/238 518/620/238 +f 525/622/270 487/648/254 526/618/254 +f 518/620/238 494/634/235 519/616/235 +f 526/618/254 486/650/232 527/614/232 +f 519/616/235 493/636/264 520/610/264 +f 527/614/232 485/651/251 528/612/251 +f 520/610/264 492/637/262 521/606/262 +f 528/612/251 484/653/245 529/608/245 +f 521/606/262 491/639/260 522/603/260 +f 529/608/245 483/655/248 530/604/248 +f 522/603/260 490/641/231 523/601/231 +f 540/1264/237 505/607/248 508/600/237 +f 539/1265/269 508/600/237 507/599/269 +f 542/1266/244 507/599/269 510/623/244 +f 544/1267/238 510/623/244 512/619/238 +f 546/1268/235 512/619/238 514/615/235 +f 534/1269/264 514/615/235 502/609/264 +f 533/1270/262 502/609/264 501/605/262 +f 536/1271/260 501/605/262 504/602/260 +f 538/1272/231 504/602/260 506/973/231 +f 541/1273/256 506/629/231 509/625/256 +f 543/1274/270 509/625/256 511/621/270 +f 545/1275/254 511/621/270 513/617/254 +f 532/1276/232 513/617/254 500/613/232 +f 531/1277/251 500/613/232 499/611/251 +f 535/1278/245 499/611/251 503/974/245 +f 537/1279/248 503/974/245 505/607/248 +f 578/1280/303 539/1265/304 577/1281/304 +f 563/1282/305 540/1264/303 578/1280/303 +f 564/1283/306 537/1279/305 563/1282/305 +f 564/1283/306 531/1277/307 535/1278/306 +f 565/1284/307 532/1276/233 531/1277/307 +f 566/1285/233 545/1275/308 532/1276/233 +f 567/1286/308 543/1274/309 545/1275/308 +f 568/1287/309 541/1273/310 543/1274/309 +f 570/1288/311 541/1273/310 569/1289/310 +f 570/1290/311 536/1271/312 538/1272/311 +f 571/1291/312 533/1270/313 536/1271/312 +f 572/1292/313 534/1269/314 533/1270/313 +f 574/1293/234 534/1269/314 573/1294/314 +f 574/1293/234 544/1267/315 546/1268/234 +f 575/1295/315 542/1266/316 544/1267/315 +f 576/1296/316 539/1265/304 542/1266/316 +f 558/1297/317 577/1281/318 576/1296/317 +f 555/1298/318 578/1280/319 577/1281/318 +f 556/1299/319 563/1282/320 578/1280/319 +f 553/1300/320 564/1283/321 563/1282/320 +f 564/1283/321 547/1301/322 565/1284/322 +f 565/1284/322 548/1302/323 566/1285/323 +f 566/1285/323 561/1303/324 567/1286/324 +f 567/1286/324 559/1304/325 568/1287/325 +f 559/1304/325 569/1289/326 568/1287/325 +f 557/1305/326 570/1288/327 569/1289/326 +f 570/1290/327 552/1306/328 571/1291/328 +f 571/1291/328 549/1307/329 572/1292/329 +f 572/1292/329 550/1308/330 573/1294/330 +f 550/1308/330 574/1293/331 573/1294/330 +f 574/1293/331 560/1309/332 575/1295/332 +f 575/1295/332 558/1297/317 576/1296/317 +f 452/1189/269 558/1297/244 453/1227/244 +f 451/1191/237 555/1298/269 452/1189/269 +f 466/1194/248 556/1299/237 451/1191/237 +f 465/1198/245 553/1300/248 466/1194/248 +f 464/1200/251 551/1310/245 465/1198/245 +f 463/1201/232 547/1301/251 464/1200/251 +f 462/1204/254 548/1302/232 463/1201/232 +f 461/1207/270 561/1303/254 462/1204/254 +f 460/1210/256 559/1304/270 461/1207/270 +f 459/1214/231 557/1305/256 460/1210/256 +f 458/1215/260 554/1311/231 459/1312/231 +f 457/1219/262 552/1306/260 458/1215/260 +f 456/1221/264 549/1307/262 457/1219/262 +f 455/1223/235 550/1308/264 456/1221/264 +f 454/1224/238 562/1313/235 455/1223/235 +f 453/1227/244 560/1309/238 454/1224/238 +f 584/1314/264 601/1315/333 585/1316/262 +f 592/1317/251 609/1318/334 593/1319/245 +f 585/1316/262 602/1320/335 586/1321/260 +f 593/1319/245 610/1322/336 594/1323/248 +f 586/1321/260 603/1324/337 587/1325/231 +f 594/1323/248 595/1326/338 579/1327/237 +f 587/1328/231 604/1329/339 588/1330/256 +f 588/1330/256 605/1331/340 589/1332/270 +f 589/1332/270 606/1333/341 590/1334/254 +f 590/1334/254 607/1335/342 591/1336/232 +f 648/1337/343 579/1327/237 595/1326/338 +f 591/1336/232 608/1338/344 592/1317/251 +f 623/1339/237 632/1340/244 624/1341/244 +f 630/1342/245 631/1343/237 623/1339/237 +f 628/1344/270 637/1345/232 629/1346/232 +f 626/1347/262 635/1348/231 627/1349/231 +f 624/1341/244 633/1350/235 625/1351/235 +f 629/1346/232 638/1352/245 630/1342/245 +f 627/1353/231 636/1354/270 628/1344/270 +f 625/1351/235 634/1355/262 626/1347/262 +f 647/1356/343 580/1357/269 579/1327/237 +f 597/1358/345 599/1359/346 600/1360/347 +f 642/1361/238 583/1362/235 582/1363/238 +f 641/1364/244 582/1363/238 581/1365/244 +f 640/1366/269 581/1365/244 580/1357/269 +f 639/1367/348 597/1358/345 646/1368/238 +f 643/1369/349 646/1368/238 645/1370/244 +f 596/1371/350 645/1370/244 644/1372/269 +f 596/1371/350 648/1337/343 595/1326/338 +f 658/1373/351 671/1374/237 657/1375/352 +f 659/1376/353 672/1377/269 658/1373/351 +f 660/1378/354 673/1379/244 659/1376/353 +f 661/1380/355 674/1381/238 660/1378/354 +f 654/1382/356 667/702/357 653/701/358 +f 662/1383/359 675/1384/235 661/1380/355 +f 655/1385/360 668/1386/251 654/1382/356 +f 663/1387/361 676/1388/264 662/1383/359 +f 656/1389/362 669/1390/245 655/1385/360 +f 664/1391/363 677/1392/262 663/1387/361 +f 657/1375/352 670/1393/248 656/1389/362 +f 665/699/364 666/1394/231 649/1395/365 +f 649/1395/365 678/1396/260 664/1391/363 +f 687/1397/244 682/949/238 681/952/244 +f 684/1398/343 680/954/269 689/956/343 +f 686/1399/238 683/1104/366 682/949/238 +f 688/1400/269 681/952/244 680/954/269 +f 700/788/367 655/1385/360 654/1382/356 +f 655/1385/360 698/790/368 656/1389/362 +f 656/1389/362 697/793/369 657/1375/352 +f 697/797/369 658/1373/351 657/1375/352 +f 696/705/370 659/1376/353 658/1373/351 +f 659/1376/353 694/1022/371 660/1378/354 +f 694/757/371 661/1380/355 660/1378/354 +f 693/760/372 662/1383/359 661/1380/355 +f 692/763/373 663/1387/361 662/1383/359 +f 690/769/374 649/1395/365 664/1391/363 +f 691/766/375 664/1391/363 663/1387/361 +f 704/1028/376 650/1401/376 665/699/364 +f 704/775/376 651/1402/377 650/1401/376 +f 703/779/377 652/1403/378 651/1402/377 +f 652/1403/378 701/1031/379 653/1404/358 +f 701/785/379 654/1382/356 653/701/358 +f 708/709/245 716/717/251 707/707/251 +f 707/707/251 720/720/357 706/728/357 +f 727/733/380 709/712/248 710/714/380 +f 718/722/248 731/735/380 719/723/380 +f 726/732/381 730/725/381 717/718/245 +f 751/1405/382 599/1359/346 639/1367/348 +f 606/1333/341 760/1406/383 607/1335/342 +f 607/1335/342 761/1407/384 608/1338/344 +f 761/1407/384 609/1318/334 608/1338/344 +f 601/1315/333 755/1408/385 602/1320/335 +f 600/1360/347 754/1409/386 601/1315/333 +f 762/1410/387 610/1322/336 609/1318/334 +f 643/1369/349 751/1405/382 639/1367/348 +f 763/1411/388 595/1326/338 610/1322/336 +f 603/1412/337 757/1413/389 604/1329/339 +f 599/1359/346 753/1414/390 600/1360/347 +f 595/1326/338 749/1415/391 596/1371/350 +f 757/1413/389 605/1331/340 604/1329/339 +f 602/1320/335 756/1416/392 603/1324/337 +f 749/1415/391 643/1369/349 596/1371/350 +f 605/1331/340 759/1417/393 606/1333/341 +f 746/1418/394 786/1419/395 747/1420/396 +f 787/1421/397 767/1422/398 766/1423/399 +f 789/1424/400 780/1425/401 787/1421/397 +f 791/1426/402 782/1427/403 789/1424/400 +f 792/1428/404 783/1429/405 791/1426/402 +f 778/1430/406 793/1431/407 786/1419/395 +f 793/1431/407 784/1432/408 792/1428/404 +f 777/1433/409 772/1434/410 770/1435/411 +f 779/1436/412 771/1437/413 776/1438/414 +f 764/1439/415 746/1440/394 779/1436/412 +f 769/1441/416 767/1442/398 780/1443/401 +f 769/1441/416 782/1444/403 771/1437/413 +f 773/1445/417 782/1444/403 783/1446/405 +f 775/1447/418 783/1446/405 784/1448/408 +f 764/1439/415 785/1449/419 778/1450/406 +f 775/1447/418 785/1449/419 776/1438/414 +f 765/1451/420 747/1452/396 786/1453/395 +f 768/1454/421 766/1455/399 790/1456/422 +f 768/1454/421 789/1457/400 787/1458/397 +f 772/1434/410 789/1457/400 770/1435/411 +f 774/1459/423 791/1460/402 772/1434/410 +f 765/1451/420 793/1461/407 777/1433/409 +f 774/1459/423 793/1461/407 792/1462/404 +f 806/814/229 808/818/424 807/809/229 +f 805/811/230 811/1463/425 804/1464/230 +f 810/810/425 813/1465/426 811/1463/425 +f 809/813/424 814/817/427 808/818/424 +f 812/822/426 817/1466/428 813/1465/426 +f 815/816/427 818/1040/429 814/817/427 +f 816/821/428 821/1467/430 817/1466/428 +f 819/820/429 822/825/431 818/1040/429 +f 829/1468/432 824/829/229 825/828/229 +f 831/1469/433 828/1470/432 829/1468/432 +f 839/1471/434 850/1472/435 838/1473/435 +f 834/1474/237 857/1475/436 845/1476/436 +f 836/1477/437 846/1478/438 835/1479/438 +f 843/1480/232 854/1481/439 842/1482/439 +f 840/1483/231 851/1484/434 839/1471/434 +f 837/1485/235 848/1486/437 836/1477/437 +f 844/1487/440 855/1488/232 843/1480/232 +f 841/1489/441 852/1490/231 840/1491/231 +f 838/1473/435 849/1492/235 837/1485/235 +f 845/1476/436 856/1493/440 844/1487/440 +f 835/1479/438 847/1494/237 834/1474/237 +f 842/1482/439 853/1495/441 841/1489/441 +f 868/1496/440 881/1497/436 869/1498/436 +f 861/1499/235 874/1500/435 862/1501/435 +f 869/1498/436 871/1502/237 858/1503/237 +f 862/1501/435 875/1504/434 863/1505/434 +f 863/1505/434 876/1506/231 864/1507/231 +f 864/1508/231 877/1509/441 865/1510/441 +f 865/1510/441 878/1511/439 866/1512/439 +f 858/1503/237 870/1513/438 859/1514/438 +f 866/1512/439 879/1515/232 867/1516/232 +f 859/1514/438 872/1517/437 860/1518/437 +f 867/1516/232 880/1519/440 868/1496/440 +f 860/1518/437 873/1520/235 861/1499/235 +f 896/870/231 919/891/434 895/868/434 +f 910/1521/437 935/878/235 911/1522/235 +f 903/1523/441 928/885/439 904/1524/439 +f 897/872/441 920/897/231 896/873/231 +f 911/1522/235 936/877/435 912/1525/435 +f 904/1524/439 929/890/232 905/1526/232 +f 898/875/439 921/895/441 897/872/441 +f 912/1525/435 937/882/434 913/1527/434 +f 891/862/438 915/884/237 890/861/237 +f 905/1526/232 930/889/440 906/1528/440 +f 899/856/232 922/900/439 898/875/439 +f 913/1527/434 927/881/231 902/1529/231 +f 892/864/437 914/883/438 891/862/438 +f 906/1528/440 931/894/436 907/1530/436 +f 900/858/440 923/876/232 899/856/232 +f 893/865/235 916/888/437 892/864/437 +f 907/1530/436 932/893/237 908/1531/237 +f 901/859/436 924/880/440 900/858/440 +f 894/867/435 917/887/235 893/865/235 +f 908/1532/237 933/899/438 909/1533/438 +f 890/861/237 925/879/436 901/859/436 +f 895/868/434 918/892/435 894/867/435 +f 909/1533/438 934/898/437 910/1521/437 +f 902/1529/231 926/886/441 903/1523/441 +f 970/1534/235 977/1535/244 969/1536/244 +f 975/1537/245 982/1538/232 974/1539/232 +f 973/1540/270 980/1541/231 972/1542/231 +f 971/1543/262 978/1544/235 970/1534/235 +f 969/1536/244 976/1545/237 968/1546/237 +f 968/1546/237 983/1547/245 975/1537/245 +f 974/1539/232 981/1548/270 973/1540/270 +f 972/1549/231 979/1550/262 971/1543/262 +f 1000/1551/434 1011/1552/435 999/1553/435 +f 995/1554/237 1018/1555/436 1006/1556/436 +f 997/1557/437 1007/1558/438 996/1559/438 +f 1004/1560/232 1015/1561/439 1003/1562/439 +f 1001/1563/231 1012/1564/434 1000/1551/434 +f 998/1565/235 1009/1566/437 997/1557/437 +f 1005/1567/440 1016/1568/232 1004/1560/232 +f 1002/1569/441 1013/1570/231 1001/1571/231 +f 999/1553/435 1010/1572/235 998/1565/235 +f 1006/1556/436 1017/1573/440 1005/1567/440 +f 996/1559/438 1008/1574/237 995/1554/237 +f 1003/1562/439 1014/1575/441 1002/1569/441 +f 1029/1576/440 1042/1577/436 1030/1578/436 +f 1022/1579/235 1035/1580/435 1023/1581/435 +f 1030/1578/436 1032/1582/237 1019/1583/237 +f 1023/1581/435 1036/1584/434 1024/1585/434 +f 1024/1585/434 1037/1586/231 1025/1587/231 +f 1025/1588/231 1038/1589/441 1026/1590/441 +f 1026/1590/441 1039/1591/439 1027/1592/439 +f 1019/1583/237 1031/1593/438 1020/1594/438 +f 1027/1592/439 1040/1595/232 1028/1596/232 +f 1020/1594/438 1033/1597/437 1021/1598/437 +f 1028/1596/232 1041/1599/440 1029/1576/440 +f 1021/1598/437 1034/1600/235 1022/1579/235 +f 388/571/237 390/573/248 389/1156/246 +f 390/573/248 392/575/245 391/1158/249 +f 392/575/245 394/577/251 393/1159/250 +f 394/577/251 396/579/232 395/1160/252 +f 396/579/232 398/581/254 397/1161/253 +f 398/581/254 400/583/270 399/1162/255 +f 399/1162/255 400/583/270 402/584/256 +f 402/584/256 404/586/231 403/1164/258 +f 404/972/231 406/588/260 405/1165/259 +f 406/588/260 408/591/262 407/1167/261 +f 408/591/262 410/593/264 409/1168/263 +f 410/593/264 412/595/235 411/1169/265 +f 412/595/235 414/597/238 413/1170/266 +f 414/597/238 416/565/244 415/1171/267 +f 416/565/244 418/569/269 417/1172/268 +f 417/1172/268 418/569/269 388/571/237 +f 429/582/244 445/1175/244 444/1173/269 +f 422/566/254 438/1176/254 437/1174/270 +f 430/580/238 446/1177/238 445/1175/244 +f 423/596/232 439/1178/232 438/1176/254 +f 431/578/235 447/1179/235 446/1177/238 +f 424/594/251 440/1180/251 439/1178/232 +f 432/576/264 448/1181/264 447/1179/235 +f 425/592/245 441/1182/245 440/1180/251 +f 433/574/262 449/1183/262 448/1181/264 +f 426/590/248 442/1184/248 441/1182/245 +f 434/572/260 450/1186/260 449/1183/262 +f 427/589/237 443/1601/237 442/1184/248 +f 420/568/256 436/1188/256 435/1185/231 +f 419/570/231 435/1185/231 450/1186/260 +f 428/585/269 444/1173/269 443/1187/237 +f 421/567/270 437/1174/270 436/1188/256 +f 452/1189/271 468/1602/302 467/1190/272 +f 467/1190/272 468/1602/302 417/1192/268 +f 466/1194/274 451/1191/273 467/1195/272 +f 466/1194/274 482/1234/275 481/1197/276 +f 465/1198/277 481/1603/276 480/1199/278 +f 463/1201/280 464/1200/279 480/1202/278 +f 462/1204/282 463/1201/280 479/1205/281 +f 461/1207/284 462/1204/282 478/1208/283 +f 460/1210/286 461/1207/284 477/1211/285 +f 460/1210/286 476/1604/287 475/1213/288 +f 458/1215/290 459/1312/289 475/1216/288 +f 458/1215/290 474/1251/291 473/1218/292 +f 457/1219/293 473/1254/292 472/1220/294 +f 456/1221/295 472/1605/294 471/1222/296 +f 454/1224/298 455/1223/297 471/1225/296 +f 453/1227/300 454/1224/298 470/1228/299 +f 453/1227/300 469/1606/301 468/1230/302 +f 389/1231/246 482/1196/275 467/1195/272 +f 391/1233/249 481/1197/276 482/1234/275 +f 480/1199/278 481/1603/276 391/1236/249 +f 479/1203/281 480/1202/278 393/1238/250 +f 397/1240/253 478/1206/283 479/1205/281 +f 399/1242/255 477/1209/285 478/1208/283 +f 476/1212/287 477/1211/285 399/1244/255 +f 475/1213/288 476/1604/287 401/1246/257 +f 405/1248/259 474/1217/291 475/1216/288 +f 407/1250/261 473/1218/292 474/1251/291 +f 409/1253/263 472/1220/294 473/1254/292 +f 471/1222/296 472/1605/294 409/1256/263 +f 470/1226/299 471/1225/296 411/1258/265 +f 469/1229/301 470/1228/299 413/1260/266 +f 468/1230/302 469/1606/301 415/1262/267 +f 515/598/237 498/657/237 497/659/269 +f 530/604/248 483/655/248 498/657/237 +f 523/628/231 490/642/231 489/644/256 +f 516/627/269 497/659/269 496/632/244 +f 524/626/256 489/644/256 488/646/270 +f 517/624/244 496/632/244 495/631/238 +f 525/622/270 488/646/270 487/648/254 +f 518/620/238 495/631/238 494/634/235 +f 526/618/254 487/648/254 486/650/232 +f 519/616/235 494/634/235 493/636/264 +f 527/614/232 486/650/232 485/651/251 +f 520/610/264 493/636/264 492/637/262 +f 528/612/251 485/651/251 484/653/245 +f 521/606/262 492/637/262 491/639/260 +f 529/608/245 484/653/245 483/655/248 +f 522/603/260 491/639/260 490/641/231 +f 540/1264/237 537/1279/248 505/607/248 +f 539/1265/269 540/1264/237 508/600/237 +f 542/1266/244 539/1265/269 507/599/269 +f 544/1267/238 542/1266/244 510/623/244 +f 546/1268/235 544/1267/238 512/619/238 +f 534/1269/264 546/1268/235 514/615/235 +f 533/1270/262 534/1269/264 502/609/264 +f 536/1271/260 533/1270/262 501/605/262 +f 538/1272/231 536/1271/260 504/602/260 +f 541/1273/256 538/1607/231 506/629/231 +f 543/1274/270 541/1273/256 509/625/256 +f 545/1275/254 543/1274/270 511/621/270 +f 532/1276/232 545/1275/254 513/617/254 +f 531/1277/251 532/1276/232 500/613/232 +f 535/1278/245 531/1277/251 499/611/251 +f 537/1279/248 535/1278/245 503/974/245 +f 578/1280/303 540/1264/303 539/1265/304 +f 563/1282/305 537/1279/305 540/1264/303 +f 564/1283/306 535/1278/306 537/1279/305 +f 564/1283/306 565/1284/307 531/1277/307 +f 565/1284/307 566/1285/233 532/1276/233 +f 566/1285/233 567/1286/308 545/1275/308 +f 567/1286/308 568/1287/309 543/1274/309 +f 568/1287/309 569/1289/310 541/1273/310 +f 570/1288/311 538/1607/311 541/1273/310 +f 570/1290/311 571/1291/312 536/1271/312 +f 571/1291/312 572/1292/313 533/1270/313 +f 572/1292/313 573/1294/314 534/1269/314 +f 574/1293/234 546/1268/234 534/1269/314 +f 574/1293/234 575/1295/315 544/1267/315 +f 575/1295/315 576/1296/316 542/1266/316 +f 576/1296/316 577/1281/304 539/1265/304 +f 558/1297/317 555/1298/318 577/1281/318 +f 555/1298/318 556/1299/319 578/1280/319 +f 556/1299/319 553/1300/320 563/1282/320 +f 553/1300/320 551/1310/321 564/1283/321 +f 564/1283/321 551/1310/321 547/1301/322 +f 565/1284/322 547/1301/322 548/1302/323 +f 566/1285/323 548/1302/323 561/1303/324 +f 567/1286/324 561/1303/324 559/1304/325 +f 559/1304/325 557/1305/326 569/1289/326 +f 557/1305/326 554/1608/327 570/1288/327 +f 570/1290/327 554/1311/327 552/1306/328 +f 571/1291/328 552/1306/328 549/1307/329 +f 572/1292/329 549/1307/329 550/1308/330 +f 550/1308/330 562/1313/331 574/1293/331 +f 574/1293/331 562/1313/331 560/1309/332 +f 575/1295/332 560/1309/332 558/1297/317 +f 452/1189/269 555/1298/269 558/1297/244 +f 451/1191/237 556/1299/237 555/1298/269 +f 466/1194/248 553/1300/248 556/1299/237 +f 465/1198/245 551/1310/245 553/1300/248 +f 464/1200/251 547/1301/251 551/1310/245 +f 463/1201/232 548/1302/232 547/1301/251 +f 462/1204/254 561/1303/254 548/1302/232 +f 461/1207/270 559/1304/270 561/1303/254 +f 460/1210/256 557/1305/256 559/1304/270 +f 459/1214/231 554/1608/231 557/1305/256 +f 458/1215/260 552/1306/260 554/1311/231 +f 457/1219/262 549/1307/262 552/1306/260 +f 456/1221/264 550/1308/264 549/1307/262 +f 455/1223/235 562/1313/235 550/1308/264 +f 454/1224/238 560/1309/238 562/1313/235 +f 453/1227/244 558/1297/244 560/1309/238 +f 584/1314/264 600/1360/347 601/1315/333 +f 592/1317/251 608/1338/344 609/1318/334 +f 585/1316/262 601/1315/333 602/1320/335 +f 593/1319/245 609/1318/334 610/1322/336 +f 586/1321/260 602/1320/335 603/1324/337 +f 594/1323/248 610/1322/336 595/1326/338 +f 587/1328/231 603/1412/337 604/1329/339 +f 588/1330/256 604/1329/339 605/1331/340 +f 589/1332/270 605/1331/340 606/1333/341 +f 590/1334/254 606/1333/341 607/1335/342 +f 648/1337/343 647/1356/343 579/1327/237 +f 591/1336/232 607/1335/342 608/1338/344 +f 623/1339/237 631/1343/237 632/1340/244 +f 630/1342/245 638/1352/245 631/1343/237 +f 628/1344/270 636/1354/270 637/1345/232 +f 626/1347/262 634/1355/262 635/1348/231 +f 624/1341/244 632/1340/244 633/1350/235 +f 629/1346/232 637/1345/232 638/1352/245 +f 627/1353/231 635/1609/231 636/1354/270 +f 625/1351/235 633/1350/235 634/1355/262 +f 647/1356/343 640/1366/269 580/1357/269 +f 600/1360/347 584/1314/264 597/1358/345 +f 584/1314/264 583/1362/235 598/1610/345 +f 598/1610/345 597/1358/345 584/1314/264 +f 642/1361/238 598/1610/345 583/1362/235 +f 641/1364/244 642/1361/238 582/1363/238 +f 640/1366/269 641/1364/244 581/1365/244 +f 639/1367/348 599/1359/346 597/1358/345 +f 643/1369/349 639/1367/348 646/1368/238 +f 596/1371/350 643/1369/349 645/1370/244 +f 596/1371/350 644/1372/269 648/1337/343 +f 658/1373/351 672/1377/269 671/1374/237 +f 659/1376/353 673/1379/244 672/1377/269 +f 660/1378/354 674/1381/238 673/1379/244 +f 661/1380/355 675/1384/235 674/1381/238 +f 654/1382/356 668/1386/251 667/702/357 +f 662/1383/359 676/1388/264 675/1384/235 +f 655/1385/360 669/1390/245 668/1386/251 +f 663/1387/361 677/1392/262 676/1388/264 +f 656/1389/362 670/1393/248 669/1390/245 +f 664/1391/363 678/1396/260 677/1392/262 +f 657/1375/352 671/1374/237 670/1393/248 +f 665/699/364 679/997/442 666/1394/231 +f 649/1395/365 666/1394/231 678/1396/260 +f 687/1397/244 686/1399/238 682/949/238 +f 684/1398/343 688/1400/269 680/954/269 +f 686/1399/238 685/1611/366 683/1104/366 +f 688/1400/269 687/1397/244 681/952/244 +f 700/788/367 699/787/443 655/1385/360 +f 655/1385/360 699/791/443 698/790/368 +f 656/1389/362 698/794/368 697/793/369 +f 697/797/369 696/796/370 658/1373/351 +f 696/705/370 695/1001/444 659/1376/353 +f 659/1376/353 695/754/444 694/1022/371 +f 694/757/371 693/1023/372 661/1380/355 +f 693/760/372 692/1024/373 662/1383/359 +f 692/763/373 691/1025/375 663/1387/361 +f 690/769/374 705/1027/445 649/1395/365 +f 691/766/375 690/1026/374 664/1391/363 +f 665/699/364 649/1395/365 705/772/445 +f 705/772/445 704/1028/376 665/699/364 +f 704/775/376 703/1029/377 651/1402/377 +f 703/779/377 702/778/378 652/1403/378 +f 652/1403/378 702/781/378 701/1031/379 +f 701/785/379 700/784/367 654/1382/356 +f 708/709/245 717/718/245 716/717/251 +f 707/707/251 716/717/251 720/720/357 +f 727/733/380 726/732/381 709/712/248 +f 718/722/248 730/725/381 731/735/380 +f 708/709/245 709/712/248 726/732/381 +f 730/725/381 718/722/248 717/718/245 +f 708/709/245 726/732/381 717/718/245 +f 751/1405/382 752/1612/446 599/1359/346 +f 606/1333/341 759/1417/393 760/1406/383 +f 607/1335/342 760/1406/383 761/1407/384 +f 761/1407/384 762/1410/387 609/1318/334 +f 601/1315/333 754/1409/386 755/1408/385 +f 600/1360/347 753/1414/390 754/1409/386 +f 762/1410/387 763/1411/388 610/1322/336 +f 643/1369/349 750/1613/447 751/1405/382 +f 763/1411/388 748/1614/448 595/1326/338 +f 603/1412/337 756/1615/392 757/1413/389 +f 599/1359/346 752/1612/446 753/1414/390 +f 595/1326/338 748/1614/448 749/1415/391 +f 757/1413/389 758/1616/449 605/1331/340 +f 602/1320/335 755/1408/385 756/1416/392 +f 749/1415/391 750/1613/447 643/1369/349 +f 605/1331/340 758/1616/449 759/1417/393 +f 746/1418/394 778/1430/406 786/1419/395 +f 787/1421/397 780/1425/401 767/1422/398 +f 789/1424/400 782/1427/403 780/1425/401 +f 791/1426/402 783/1429/405 782/1427/403 +f 792/1428/404 784/1432/408 783/1429/405 +f 778/1430/406 785/1617/419 793/1431/407 +f 793/1431/407 785/1617/419 784/1432/408 +f 790/1456/422 788/1618/450 770/1435/411 +f 788/1618/450 765/1451/420 777/1433/409 +f 777/1433/409 774/1459/423 772/1434/410 +f 788/1618/450 777/1433/409 770/1435/411 +f 770/1435/411 768/1454/421 790/1456/422 +f 776/1438/414 764/1439/415 779/1436/412 +f 779/1436/412 781/1619/451 771/1437/413 +f 781/1619/451 769/1441/416 771/1437/413 +f 771/1437/413 773/1445/417 776/1438/414 +f 773/1445/417 775/1447/418 776/1438/414 +f 764/1439/415 778/1450/406 746/1440/394 +f 769/1441/416 781/1619/451 767/1442/398 +f 769/1441/416 780/1443/401 782/1444/403 +f 773/1445/417 771/1437/413 782/1444/403 +f 775/1447/418 773/1445/417 783/1446/405 +f 764/1439/415 776/1438/414 785/1449/419 +f 775/1447/418 784/1448/408 785/1449/419 +f 765/1451/420 788/1618/450 747/1452/396 +f 768/1454/421 787/1458/397 766/1455/399 +f 768/1454/421 770/1435/411 789/1457/400 +f 772/1434/410 791/1460/402 789/1457/400 +f 774/1459/423 792/1462/404 791/1460/402 +f 765/1451/420 786/1453/395 793/1461/407 +f 774/1459/423 777/1433/409 793/1461/407 +f 806/814/229 809/813/424 808/818/424 +f 805/811/230 810/810/425 811/1463/425 +f 810/810/425 812/822/426 813/1465/426 +f 809/813/424 815/816/427 814/817/427 +f 812/822/426 816/821/428 817/1466/428 +f 815/816/427 819/820/429 818/1040/429 +f 816/821/428 820/826/430 821/1467/430 +f 819/820/429 823/824/431 822/825/431 +f 829/1468/432 828/1470/432 824/829/229 +f 831/1469/433 830/1620/433 828/1470/432 +f 839/1471/434 851/1484/434 850/1472/435 +f 834/1474/237 847/1494/237 857/1475/436 +f 836/1477/437 848/1486/437 846/1478/438 +f 843/1480/232 855/1488/232 854/1481/439 +f 840/1483/231 852/1621/231 851/1484/434 +f 837/1485/235 849/1492/235 848/1486/437 +f 844/1487/440 856/1493/440 855/1488/232 +f 841/1489/441 853/1495/441 852/1490/231 +f 838/1473/435 850/1472/435 849/1492/235 +f 845/1476/436 857/1475/436 856/1493/440 +f 835/1479/438 846/1478/438 847/1494/237 +f 842/1482/439 854/1481/439 853/1495/441 +f 868/1496/440 880/1519/440 881/1497/436 +f 861/1499/235 873/1520/235 874/1500/435 +f 869/1498/436 881/1497/436 871/1502/237 +f 862/1501/435 874/1500/435 875/1504/434 +f 863/1505/434 875/1504/434 876/1506/231 +f 864/1508/231 876/1622/231 877/1509/441 +f 865/1510/441 877/1509/441 878/1511/439 +f 858/1503/237 871/1502/237 870/1513/438 +f 866/1512/439 878/1511/439 879/1515/232 +f 859/1514/438 870/1513/438 872/1517/437 +f 867/1516/232 879/1515/232 880/1519/440 +f 860/1518/437 872/1517/437 873/1520/235 +f 896/870/231 920/1089/231 919/891/434 +f 910/1521/437 934/898/437 935/878/235 +f 903/1523/441 926/886/441 928/885/439 +f 897/872/441 921/895/441 920/897/231 +f 911/1522/235 935/878/235 936/877/435 +f 904/1524/439 928/885/439 929/890/232 +f 898/875/439 922/900/439 921/895/441 +f 912/1525/435 936/877/435 937/882/434 +f 891/862/438 914/883/438 915/884/237 +f 905/1526/232 929/890/232 930/889/440 +f 899/856/232 923/876/232 922/900/439 +f 913/1527/434 937/882/434 927/881/231 +f 892/864/437 916/888/437 914/883/438 +f 906/1528/440 930/889/440 931/894/436 +f 900/858/440 924/880/440 923/876/232 +f 893/865/235 917/887/235 916/888/437 +f 907/1530/436 931/894/436 932/893/237 +f 901/859/436 925/879/436 924/880/440 +f 894/867/435 918/892/435 917/887/235 +f 908/1532/237 932/896/237 933/899/438 +f 890/861/237 915/884/237 925/879/436 +f 895/868/434 919/891/434 918/892/435 +f 909/1533/438 933/899/438 934/898/437 +f 902/1529/231 927/881/231 926/886/441 +f 970/1534/235 978/1544/235 977/1535/244 +f 975/1537/245 983/1547/245 982/1538/232 +f 973/1540/270 981/1548/270 980/1541/231 +f 971/1543/262 979/1550/262 978/1544/235 +f 969/1536/244 977/1535/244 976/1545/237 +f 968/1546/237 976/1545/237 983/1547/245 +f 974/1539/232 982/1538/232 981/1548/270 +f 972/1549/231 980/1623/231 979/1550/262 +f 1000/1551/434 1012/1564/434 1011/1552/435 +f 995/1554/237 1008/1574/237 1018/1555/436 +f 997/1557/437 1009/1566/437 1007/1558/438 +f 1004/1560/232 1016/1568/232 1015/1561/439 +f 1001/1563/231 1013/1624/231 1012/1564/434 +f 998/1565/235 1010/1572/235 1009/1566/437 +f 1005/1567/440 1017/1573/440 1016/1568/232 +f 1002/1569/441 1014/1575/441 1013/1570/231 +f 999/1553/435 1011/1552/435 1010/1572/235 +f 1006/1556/436 1018/1555/436 1017/1573/440 +f 996/1559/438 1007/1558/438 1008/1574/237 +f 1003/1562/439 1015/1561/439 1014/1575/441 +f 1029/1576/440 1041/1599/440 1042/1577/436 +f 1022/1579/235 1034/1600/235 1035/1580/435 +f 1030/1578/436 1042/1577/436 1032/1582/237 +f 1023/1581/435 1035/1580/435 1036/1584/434 +f 1024/1585/434 1036/1584/434 1037/1586/231 +f 1025/1588/231 1037/1625/231 1038/1589/441 +f 1026/1590/441 1038/1589/441 1039/1591/439 +f 1019/1583/237 1032/1582/237 1031/1593/438 +f 1027/1592/439 1039/1591/439 1040/1595/232 +f 1020/1594/438 1031/1593/438 1033/1597/437 +f 1028/1596/232 1040/1595/232 1041/1599/440 +f 1021/1598/437 1033/1597/437 1034/1600/235 diff --git a/src/main/resources/assets/hbm/models/weapons/hangman.obj b/src/main/resources/assets/hbm/models/weapons/hangman.obj new file mode 100644 index 000000000..8ab6f66f8 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/hangman.obj @@ -0,0 +1,5413 @@ +# Blender v2.79 (sub 0) OBJ File: 'hangman.blend' +# www.blender.org +o Bullets +v 0.176776 0.176778 -2.231359 +v 0.000000 0.250001 -2.231359 +v 0.000000 -0.249999 -2.231359 +v 1.500000 -1.249999 -2.231359 +v 1.250000 -1.499999 -2.231359 +v 1.500000 -1.749999 -2.231359 +v 1.237437 -2.383882 -2.231359 +v 0.883884 -2.383882 -2.231359 +v 0.883884 -2.737436 -2.231360 +v 0.250000 -2.999999 -2.231360 +v 0.000000 -2.749999 -2.231360 +v -0.250000 -2.999999 -2.231360 +v -0.883883 -2.383882 -2.231359 +v -1.237436 -2.383883 -2.231359 +v -1.237437 -2.737436 -2.231360 +v -1.500000 -1.249999 -2.231359 +v -1.676777 -1.323223 -2.231359 +v -1.750000 -1.499999 -2.231359 +v 0.883884 -0.262562 -2.231359 +v 0.883884 -0.616115 -2.231359 +v 1.237437 -0.616115 -2.231359 +v -0.883884 -0.616116 -2.231359 +v -0.883884 -0.262562 -2.231359 +v -1.237437 -0.262562 -2.231359 +v -0.176777 0.176778 -2.231359 +v -0.250000 0.000001 -2.231359 +v -0.176777 -0.176776 -2.231359 +v 0.176776 -0.176776 -2.231359 +v 0.250000 0.000001 -2.231359 +v 1.750000 -1.499999 -2.231359 +v 1.676777 -1.323222 -2.231359 +v 1.323224 -1.323222 -2.231359 +v 1.323223 -1.676775 -2.231359 +v 1.676777 -1.676775 -2.231359 +v 1.237437 -2.737436 -2.231360 +v 1.310661 -2.560659 -2.231359 +v 1.060660 -2.310659 -2.231359 +v 0.810660 -2.560659 -2.231359 +v 1.060660 -2.810659 -2.231360 +v 0.000000 -3.249999 -2.231360 +v 0.176777 -3.176776 -2.231360 +v 0.176777 -2.823222 -2.231360 +v -0.176776 -2.823222 -2.231360 +v -0.176776 -3.176776 -2.231360 +v -1.060660 -2.810659 -2.231360 +v -0.883883 -2.737436 -2.231360 +v -0.810660 -2.560659 -2.231359 +v -1.060660 -2.310659 -2.231359 +v -1.310660 -2.560659 -2.231359 +v -1.676777 -1.676776 -2.231359 +v -1.500000 -1.749999 -2.231359 +v -1.323223 -1.676776 -2.231359 +v -1.250000 -1.499999 -2.231359 +v -1.323223 -1.323223 -2.231359 +v 1.237437 -0.262562 -2.231359 +v 1.060660 -0.189338 -2.231359 +v 0.810660 -0.439338 -2.231359 +v 1.060660 -0.689339 -2.231359 +v 1.310660 -0.439339 -2.231359 +v -1.310660 -0.439339 -2.231359 +v -1.237437 -0.616116 -2.231359 +v -1.060660 -0.689339 -2.231359 +v -0.810660 -0.439339 -2.231359 +v -1.060660 -0.189339 -2.231359 +v 1.435660 -0.439338 -2.668859 +v -0.265166 0.265166 -2.668859 +v 0.000000 0.375001 -2.668859 +v 0.265165 0.265166 -2.668859 +v 0.375000 0.000001 -2.668859 +v 0.265165 -0.265164 -2.668859 +v 0.000000 -0.374999 -2.668859 +v -0.265166 -0.265164 -2.668859 +v -0.375000 0.000001 -2.668859 +v 1.765166 -1.234834 -2.668859 +v 1.875001 -1.499999 -2.668859 +v 1.060660 -0.064338 -2.668859 +v 1.325826 -0.174173 -2.668859 +v 1.500000 -1.124999 -2.668859 +v 1.234835 -1.765164 -2.668859 +v 1.125000 -1.499999 -2.668859 +v 0.685660 -0.439339 -2.668859 +v 0.795495 -0.174173 -2.668859 +v 1.500000 -1.874999 -2.668859 +v 1.234835 -1.234834 -2.668859 +v 1.765165 -1.765164 -2.668859 +v 1.060660 -2.185659 -2.668859 +v 1.325826 -2.295494 -2.668859 +v 1.060661 -2.935659 -2.668860 +v 0.685660 -2.560659 -2.668859 +v 0.795496 -2.825824 -2.668860 +v 0.795495 -2.295494 -2.668859 +v 1.435661 -2.560659 -2.668859 +v 1.325826 -2.825825 -2.668860 +v 0.795495 -0.704504 -2.668859 +v 0.375000 -2.999999 -2.668860 +v 0.265165 -3.265164 -2.668860 +v 0.000000 -3.374999 -2.668860 +v -0.265165 -2.734834 -2.668860 +v 0.000000 -2.624999 -2.668859 +v -0.375000 -2.999999 -2.668860 +v 0.265165 -2.734834 -2.668860 +v -0.265165 -3.265164 -2.668860 +v 1.325825 -0.704504 -2.668859 +v -0.685660 -2.560659 -2.668859 +v -0.795495 -2.825825 -2.668860 +v 1.060660 -0.814339 -2.668859 +v -1.435660 -2.560660 -2.668859 +v -0.795495 -2.295494 -2.668859 +v -1.060660 -2.185659 -2.668859 +v -1.325825 -2.295495 -2.668859 +v -1.060660 -2.935660 -2.668860 +v -1.325825 -2.825825 -2.668860 +v -1.500000 -1.124999 -2.668859 +v -1.234835 -1.234834 -2.668859 +v -1.765165 -1.765164 -2.668859 +v -1.875000 -1.499999 -2.668859 +v -1.500000 -1.874999 -2.668859 +v -1.125000 -1.499999 -2.668859 +v -1.234835 -1.765164 -2.668859 +v -1.765165 -1.234834 -2.668859 +v -1.060661 -0.064339 -2.668859 +v -1.060660 -0.814339 -2.668859 +v -0.685660 -0.439339 -2.668859 +v -0.795495 -0.704504 -2.668859 +v -1.325826 -0.704504 -2.668859 +v -0.795496 -0.174174 -2.668859 +v -1.435661 -0.439339 -2.668859 +v -1.325826 -0.174174 -2.668859 +vt 0.840081 0.570632 +vt 0.834008 0.572491 +vt 0.834008 0.557621 +vt 0.827935 0.570632 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.825911 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.825911 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.572491 +vt 0.842105 0.565056 +vt 0.840081 0.570632 +vt 0.834008 0.572491 +vt 0.825911 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.572491 +vt 0.827935 0.570632 +vt 0.825911 0.565056 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.842105 0.565056 +vt 0.840081 0.570632 +vt 0.834008 0.572491 +vt 0.825911 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.572491 +vt 0.827935 0.570632 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.834008 0.572491 +vt 0.827935 0.570632 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.827935 0.570632 +vt 0.825911 0.565056 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.827935 0.570632 +vt 0.825911 0.565056 +vt 0.827935 0.559480 +vt 0.834008 0.557621 +vt 0.840081 0.559480 +vt 0.834008 0.572491 +vt 0.827935 0.570632 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.827935 0.570632 +vt 0.825911 0.565056 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.809717 0.565056 +vt 0.825911 0.557621 +vt 0.825911 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.825911 0.527881 +vt 0.809717 0.527881 +vt 0.825911 0.535316 +vt 0.809717 0.535316 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.809717 0.550186 +vt 0.825911 0.550186 +vt 0.809717 0.557621 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.557621 +vt 0.825911 0.565056 +vt 0.809717 0.535316 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.557621 +vt 0.809717 0.527881 +vt 0.825911 0.520446 +vt 0.825911 0.527881 +vt 0.825911 0.550186 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.513011 +vt 0.809717 0.520446 +vt 0.825911 0.535316 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.557621 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.809717 0.535316 +vt 0.825911 0.527881 +vt 0.825911 0.535316 +vt 0.809717 0.527881 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.825911 0.550186 +vt 0.825911 0.565056 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.542751 +vt 0.825911 0.550186 +vt 0.809717 0.557621 +vt 0.825911 0.565056 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.535316 +vt 0.825911 0.527881 +vt 0.825911 0.535316 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.809717 0.527881 +vt 0.825911 0.520446 +vt 0.825911 0.550186 +vt 0.809717 0.550186 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.557621 +vt 0.809717 0.527881 +vt 0.825911 0.527881 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.557621 +vt 0.809717 0.535316 +vt 0.825911 0.542751 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.809717 0.542751 +vt 0.825911 0.550186 +vt 0.809717 0.535316 +vt 0.825911 0.542751 +vt 0.825911 0.527881 +vt 0.825911 0.535316 +vt 0.809717 0.527881 +vt 0.825911 0.565056 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.825911 0.565056 +vt 0.809717 0.527881 +vt 0.825911 0.535316 +vt 0.809717 0.535316 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.557621 +vt 0.825911 0.565056 +vt 0.825911 0.520446 +vt 0.825911 0.527881 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.550186 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.809717 0.550186 +vt 0.825911 0.542751 +vt 0.825911 0.550186 +vt 0.809717 0.535316 +vt 0.809717 0.542751 +vt 0.825911 0.557621 +vt 0.809717 0.557621 +vt 0.809717 0.527881 +vt 0.825911 0.535316 +vt 0.825911 0.527881 +vt 0.825911 0.565056 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.825911 0.535316 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vt 0.825911 0.513011 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vn 0.0000 0.0000 1.0000 +vn 0.9615 -0.0000 0.2747 +vn 0.6799 0.6799 0.2747 +vn -0.6799 0.6799 0.2747 +vn -0.9615 0.0000 0.2747 +vn 0.0000 0.9615 0.2747 +vn 0.6799 -0.6799 0.2747 +vn 0.0000 -0.9615 0.2747 +vn -0.6799 -0.6799 0.2747 +s off +f 1/1/1 2/2/1 3/3/1 +f 4/4/1 5/5/1 6/6/1 +f 7/7/1 8/8/1 9/9/1 +f 10/10/1 11/11/1 12/12/1 +f 13/13/1 14/14/1 15/15/1 +f 16/16/1 17/17/1 18/18/1 +f 19/19/1 20/20/1 21/21/1 +f 22/22/1 23/23/1 24/24/1 +f 2/2/1 25/25/1 3/3/1 +f 25/25/1 26/26/1 3/3/1 +f 26/26/1 27/27/1 3/3/1 +f 3/3/1 28/28/1 29/29/1 +f 29/29/1 1/1/1 3/3/1 +f 30/30/1 31/31/1 4/4/1 +f 4/4/1 32/32/1 5/5/1 +f 5/5/1 33/33/1 6/6/1 +f 6/6/1 34/34/1 30/30/1 +f 30/30/1 4/4/1 6/6/1 +f 35/35/1 36/36/1 7/7/1 +f 7/7/1 37/37/1 8/8/1 +f 8/8/1 38/38/1 9/9/1 +f 9/9/1 39/39/1 35/35/1 +f 35/35/1 7/7/1 9/9/1 +f 40/40/1 41/41/1 10/10/1 +f 10/10/1 42/42/1 11/11/1 +f 11/11/1 43/43/1 12/12/1 +f 12/12/1 44/44/1 40/40/1 +f 40/40/1 10/10/1 12/12/1 +f 15/15/1 45/45/1 46/46/1 +f 46/46/1 47/47/1 15/15/1 +f 47/47/1 13/13/1 15/15/1 +f 13/13/1 48/48/1 14/14/1 +f 14/14/1 49/49/1 15/15/1 +f 18/18/1 50/50/1 51/51/1 +f 51/51/1 52/52/1 18/18/1 +f 52/52/1 53/53/1 18/18/1 +f 53/53/1 54/54/1 18/18/1 +f 54/54/1 16/16/1 18/18/1 +f 55/55/1 56/56/1 19/19/1 +f 19/19/1 57/57/1 20/20/1 +f 20/20/1 58/58/1 21/21/1 +f 21/21/1 59/59/1 55/55/1 +f 55/55/1 19/19/1 21/21/1 +f 24/24/1 60/60/1 61/61/1 +f 61/61/1 62/62/1 24/24/1 +f 62/62/1 22/22/1 24/24/1 +f 22/22/1 63/63/1 23/23/1 +f 23/23/1 64/64/1 24/24/1 +s 1 +f 65/65/2 55/66/3 59/67/2 +f 66/68/4 26/69/5 25/70/4 +f 66/68/4 2/71/6 67/72/6 +f 68/73/3 2/74/6 1/75/3 +f 68/73/3 29/76/2 69/77/2 +f 69/77/2 28/78/7 70/79/7 +f 70/79/7 3/80/8 71/81/8 +f 72/82/9 3/80/8 27/83/9 +f 72/82/9 26/69/5 73/84/5 +f 74/85/3 30/86/2 75/87/2 +f 76/88/6 55/89/3 77/90/3 +f 78/91/6 31/92/3 74/85/3 +f 79/93/9 5/94/5 80/95/5 +f 81/96/5 19/97/4 82/98/4 +f 83/99/8 34/100/7 6/101/8 +f 80/95/5 32/102/4 84/103/4 +f 84/103/4 4/104/6 78/91/6 +f 75/105/2 34/100/7 85/106/7 +f 83/99/8 33/107/9 79/93/9 +f 86/108/6 7/109/3 87/110/3 +f 88/111/8 35/112/7 39/113/8 +f 89/114/5 9/115/9 38/116/5 +f 90/117/9 39/113/8 9/115/9 +f 89/114/5 8/118/4 91/119/4 +f 91/119/4 37/120/6 86/108/6 +f 87/110/3 36/121/2 92/122/2 +f 92/122/2 35/123/7 93/124/7 +f 94/125/9 57/126/5 81/96/5 +f 95/127/2 41/128/7 96/129/7 +f 96/129/7 40/130/8 97/131/8 +f 98/132/4 12/133/5 43/134/4 +f 98/132/4 11/135/6 99/136/6 +f 100/137/5 44/138/9 12/133/5 +f 99/136/6 42/139/3 101/140/3 +f 102/141/9 40/142/8 44/138/9 +f 101/140/3 10/143/2 95/127/2 +f 103/144/7 59/67/2 21/145/7 +f 104/146/2 46/147/7 105/148/7 +f 106/149/8 20/150/9 94/125/9 +f 107/151/5 15/152/9 49/153/5 +f 108/154/3 47/155/2 104/146/2 +f 109/156/6 13/157/3 108/154/3 +f 109/156/6 14/158/4 48/159/6 +f 110/160/4 49/153/5 14/158/4 +f 105/148/7 45/161/8 111/162/8 +f 111/162/8 15/163/9 112/164/9 +f 82/98/4 56/165/6 76/88/6 +f 113/166/6 54/167/3 114/168/3 +f 115/169/9 18/170/5 116/171/5 +f 117/172/8 50/173/9 115/169/9 +f 113/166/6 17/174/4 16/175/6 +f 114/168/3 53/176/2 118/177/2 +f 119/178/7 51/179/8 117/172/8 +f 120/180/4 18/181/5 17/174/4 +f 118/177/2 52/182/7 119/178/7 +f 121/183/6 24/184/4 64/185/6 +f 122/186/8 22/187/7 62/188/8 +f 123/189/2 22/187/7 124/190/7 +f 122/186/8 61/191/9 125/192/9 +f 126/193/3 63/194/2 123/189/2 +f 121/183/6 23/195/3 126/193/3 +f 125/192/9 60/196/5 127/197/5 +f 127/197/5 24/198/4 128/199/4 +f 103/144/7 58/200/8 106/149/8 +f 65/65/2 77/201/3 55/66/3 +f 66/68/4 73/84/5 26/69/5 +f 66/68/4 25/70/4 2/71/6 +f 68/73/3 67/202/6 2/74/6 +f 68/73/3 1/75/3 29/76/2 +f 69/77/2 29/76/2 28/78/7 +f 70/79/7 28/78/7 3/80/8 +f 72/82/9 71/81/8 3/80/8 +f 72/82/9 27/83/9 26/69/5 +f 74/85/3 31/92/3 30/86/2 +f 76/88/6 56/165/6 55/89/3 +f 78/91/6 4/104/6 31/92/3 +f 79/93/9 33/107/9 5/94/5 +f 81/96/5 57/126/5 19/97/4 +f 83/99/8 85/106/7 34/100/7 +f 80/95/5 5/94/5 32/102/4 +f 84/103/4 32/102/4 4/104/6 +f 75/105/2 30/203/2 34/100/7 +f 83/99/8 6/101/8 33/107/9 +f 86/108/6 37/120/6 7/109/3 +f 88/111/8 93/204/7 35/112/7 +f 89/114/5 90/117/9 9/115/9 +f 90/117/9 88/111/8 39/113/8 +f 89/114/5 38/116/5 8/118/4 +f 91/119/4 8/118/4 37/120/6 +f 87/110/3 7/109/3 36/121/2 +f 92/122/2 36/121/2 35/123/7 +f 94/125/9 20/150/9 57/126/5 +f 95/127/2 10/143/2 41/128/7 +f 96/129/7 41/128/7 40/130/8 +f 98/132/4 100/137/5 12/133/5 +f 98/132/4 43/134/4 11/135/6 +f 100/137/5 102/141/9 44/138/9 +f 99/136/6 11/135/6 42/139/3 +f 102/141/9 97/205/8 40/142/8 +f 101/140/3 42/139/3 10/143/2 +f 103/144/7 65/65/2 59/67/2 +f 104/146/2 47/155/2 46/147/7 +f 106/149/8 58/200/8 20/150/9 +f 107/151/5 112/206/9 15/152/9 +f 108/154/3 13/157/3 47/155/2 +f 109/156/6 48/159/6 13/157/3 +f 109/156/6 110/160/4 14/158/4 +f 110/160/4 107/151/5 49/153/5 +f 105/148/7 46/147/7 45/161/8 +f 111/162/8 45/161/8 15/163/9 +f 82/98/4 19/97/4 56/165/6 +f 113/166/6 16/175/6 54/167/3 +f 115/169/9 50/173/9 18/170/5 +f 117/172/8 51/179/8 50/173/9 +f 113/166/6 120/180/4 17/174/4 +f 114/168/3 54/167/3 53/176/2 +f 119/178/7 52/182/7 51/179/8 +f 120/180/4 116/207/5 18/181/5 +f 118/177/2 53/176/2 52/182/7 +f 121/183/6 128/208/4 24/184/4 +f 122/186/8 124/190/7 22/187/7 +f 123/189/2 63/194/2 22/187/7 +f 122/186/8 62/188/8 61/191/9 +f 126/193/3 23/195/3 63/194/2 +f 121/183/6 64/185/6 23/195/3 +f 125/192/9 61/191/9 60/196/5 +f 127/197/5 60/196/5 24/198/4 +f 103/144/7 21/145/7 58/200/8 +o Internals +v 0.845185 -2.945537 -1.149113 +v -0.845185 -2.945537 -1.149113 +v -1.690370 -1.489653 -1.302134 +v 0.000000 -4.104991 -5.024233 +v 1.882162 -3.025072 -5.145136 +v 1.882162 -0.865233 -5.386944 +v 1.931852 -1.478220 -1.193358 +v 2.173334 -1.945152 -5.266041 +v 2.414815 -1.956912 -5.377924 +v -1.086666 -0.074677 -5.475451 +v 0.845186 -0.033769 -1.455153 +v -0.845185 -0.033769 -1.455153 +v -1.931851 -1.478220 -1.193358 +v -2.173333 -1.945153 -5.266041 +v -1.463903 -0.649098 -1.390478 +v 1.463904 -0.649098 -1.390478 +v 1.690370 -1.489653 -1.302134 +v 1.463904 -2.330208 -1.213787 +v 0.000000 -3.170763 -1.125441 +v -1.463903 -2.330208 -1.213787 +v 1.086667 -0.074677 -5.475451 +v -1.882161 -0.865233 -5.386944 +v -1.882161 -3.025072 -5.145136 +v -1.086666 -3.815628 -5.056629 +v 1.086667 -3.815628 -5.056629 +v -2.414814 -1.956912 -5.377924 +v 0.000000 -4.356733 -5.109249 +v 1.207407 -4.035218 -5.145245 +v -2.091290 -3.156821 -5.243586 +v 2.091291 -3.156821 -5.243586 +v -1.207407 -4.035218 -5.145245 +v -1.673032 -2.438855 -1.092390 +v 0.965926 -3.142087 -1.018477 +v 1.673033 -2.438854 -1.092390 +v -0.965925 -3.142087 -1.018477 +v 0.000000 -3.399489 -0.991423 +vt 0.331984 0.304833 +vt 0.384615 0.304833 +vt 0.412955 0.347584 +vt 0.224696 0.319703 +vt 0.295547 0.355019 +vt 0.295547 0.429368 +vt 0.008097 0.234201 +vt 0.141700 0.241636 +vt 0.145749 0.234201 +vt 0.008097 0.375465 +vt 0.137652 0.315985 +vt 0.137652 0.368030 +vt 0.145749 0.449814 +vt 0.012146 0.442379 +vt 0.141700 0.442379 +vt 0.404858 0.371747 +vt 0.384615 0.390335 +vt 0.331984 0.390335 +vt 0.311741 0.371747 +vt 0.303644 0.347584 +vt 0.311741 0.323420 +vt 0.358300 0.297398 +vt 0.404858 0.323420 +vt 0.265182 0.449814 +vt 0.184211 0.449814 +vt 0.153846 0.429368 +vt 0.145749 0.392193 +vt 0.153846 0.355019 +vt 0.184211 0.327138 +vt 0.265182 0.327138 +vt 0.303644 0.392193 +vt 0.012146 0.241636 +vt 0.008097 0.308550 +vt 0.008097 0.449814 +vt 0.008097 0.382900 +vt -0.000000 0.345725 +vt 0.000000 0.382900 +vt -0.000000 0.271375 +vt 0.008097 0.234201 +vt -0.000000 0.234201 +vt 0.008097 0.420074 +vt 0.000000 0.420074 +vt -0.000000 0.308550 +vt 0.008097 0.271375 +vt 0.008097 0.457249 +vt -0.000000 0.457249 +vt 0.008097 0.308550 +vt 0.137652 0.241636 +vt 0.145749 0.275093 +vt 0.145749 0.241636 +vt 0.145749 0.375465 +vt 0.137652 0.408922 +vt 0.145749 0.408922 +vt 0.137652 0.308550 +vt 0.145749 0.308550 +vt 0.137652 0.241636 +vt 0.008097 0.275093 +vt 0.008097 0.241636 +vt 0.137652 0.278810 +vt 0.145749 0.442379 +vt 0.145749 0.342007 +vt 0.137652 0.405204 +vt 0.008097 0.408922 +vt 0.137652 0.442379 +vt 0.008097 0.442379 +vt 0.137652 0.375465 +vt 0.008097 0.345725 +vt 0.137652 0.275093 +vt 0.137652 0.271375 +vt 0.137652 0.304833 +vt 0.137652 0.442379 +vt 0.137652 0.342007 +vt 0.137652 0.379182 +vt 0.137652 0.412639 +vn 0.0000 -0.1045 -0.9945 +vn -0.0000 0.1113 0.9938 +vn 0.0045 -0.9935 0.1142 +vn 0.0000 -0.9999 0.0102 +vn 0.0042 -0.9935 0.1137 +vn -0.0042 -0.9935 0.1137 +vn -0.0045 -0.9935 0.1142 +vn 0.2115 -0.2635 0.9412 +vn -0.0000 -0.3200 0.9474 +vn 0.2117 -0.2634 0.9412 +vn -0.3663 -0.1092 0.9241 +vn -0.4199 -0.0116 0.9075 +vn 0.3661 -0.1095 0.9241 +vn 0.3663 -0.1092 0.9241 +vn -0.2117 -0.2634 0.9412 +vn -0.3661 -0.1095 0.9241 +vn 0.4199 -0.0116 0.9075 +vn -0.2115 -0.2635 0.9412 +vn -0.4101 -0.2039 -0.8890 +vn -0.3573 -0.3004 -0.8844 +vn 0.2063 -0.4506 -0.8686 +vn 0.3573 -0.3004 -0.8844 +vn -0.2063 -0.4506 -0.8686 +vn -0.9597 -0.2677 -0.0860 +vn -0.8601 -0.5062 -0.0627 +vn -0.9595 -0.2683 -0.0861 +vn -0.8595 -0.5072 -0.0625 +vn -0.7026 -0.7108 -0.0351 +vn 0.4101 -0.2039 -0.8890 +vn -0.0000 -0.5055 -0.8628 +vn 0.7026 -0.7108 -0.0351 +vn 0.8595 -0.5072 -0.0625 +vn 0.8601 -0.5062 -0.0627 +vn 0.9597 -0.2677 -0.0860 +vn 0.9595 -0.2683 -0.0861 +vn -0.7029 -0.7104 -0.0350 +vn 0.7029 -0.7104 -0.0350 +s off +f 129/209/10 130/210/10 131/211/10 +f 132/212/11 133/213/11 134/214/11 +f 135/215/12 136/216/12 137/217/12 +f 138/218/13 139/219/13 140/220/13 +f 141/221/14 142/222/14 131/223/14 +f 143/224/10 140/225/10 139/226/10 +f 139/226/10 144/227/10 145/228/10 +f 145/228/10 146/229/10 129/209/10 +f 129/209/10 147/230/10 130/210/10 +f 130/210/10 148/231/10 131/211/10 +f 131/211/10 143/224/10 129/209/10 +f 143/224/10 139/226/10 129/209/10 +f 139/226/10 145/228/10 129/209/10 +f 149/232/11 138/233/11 150/234/11 +f 150/234/11 142/235/11 151/236/11 +f 151/236/11 152/237/11 150/234/11 +f 152/237/11 132/212/11 150/234/11 +f 132/212/11 153/238/11 133/213/11 +f 133/213/11 136/239/11 134/214/11 +f 134/214/11 149/232/11 132/212/11 +f 149/232/11 150/234/11 132/212/11 +f 135/215/15 145/240/15 136/216/15 +f 138/218/13 149/241/13 139/219/13 +f 141/221/16 154/242/16 142/222/16 +s 1 +f 153/243/17 155/244/18 156/245/19 +f 157/246/20 142/247/21 154/248/21 +f 133/249/22 156/245/19 158/250/23 +f 159/251/24 151/252/25 157/246/20 +f 136/253/26 158/250/23 137/254/26 +f 155/244/18 152/255/27 159/251/24 +f 131/256/28 160/257/29 141/258/28 +f 161/259/30 146/260/31 162/261/31 +f 160/257/29 130/262/32 163/263/32 +f 145/264/33 134/265/34 136/266/35 +f 144/267/36 149/241/37 134/265/34 +f 146/260/31 135/268/38 162/261/31 +f 130/262/32 164/269/39 163/263/32 +f 138/218/40 143/270/41 150/271/42 +f 150/271/42 131/272/43 142/273/44 +f 164/269/39 129/274/30 161/259/30 +f 153/243/17 132/275/18 155/244/18 +f 157/246/20 151/252/25 142/247/21 +f 133/249/22 153/243/17 156/245/19 +f 159/251/24 152/255/27 151/252/25 +f 136/253/26 133/249/22 158/250/23 +f 155/244/18 132/275/18 152/255/27 +f 131/256/28 148/276/29 160/257/29 +f 161/259/30 129/274/30 146/260/31 +f 160/257/29 148/276/29 130/262/32 +f 145/264/33 144/277/36 134/265/34 +f 144/267/36 139/278/45 149/241/37 +f 146/260/31 145/279/38 135/268/38 +f 130/262/32 147/280/39 164/269/39 +f 138/218/40 140/281/46 143/270/41 +f 150/271/42 143/282/41 131/272/43 +f 164/269/39 147/280/39 129/274/30 +o Magazine +v -0.437500 0.000001 -4.543859 +v 0.000000 -0.437499 -4.543859 +v 0.437500 0.000001 -4.543859 +v 1.498160 -0.439339 -4.543859 +v 1.370019 -0.129979 -4.543859 +v 0.751300 -0.748698 -4.543859 +v -0.751302 -0.129979 -4.606359 +v -0.751302 -0.748698 -4.606359 +v -1.370020 -0.748698 -4.606359 +v 0.437500 0.000001 -4.606359 +v 0.000000 -0.437499 -4.606359 +v -0.437500 0.000001 -4.606359 +v -1.500001 -1.062499 -4.606359 +v -1.062501 -1.499999 -4.606359 +v -1.500001 -1.937499 -4.606359 +v -1.937501 -1.500000 -4.543859 +v -1.500001 -1.937499 -4.543859 +v -1.062501 -1.499999 -4.543859 +v -1.370020 -2.251300 -4.606359 +v -0.751301 -2.251300 -4.606359 +v -0.751301 -2.870018 -4.606359 +v -1.498160 -2.560660 -4.543859 +v -1.370020 -2.870018 -4.543859 +v -0.751301 -2.251300 -4.543859 +v -0.309359 -3.309359 -4.543859 +v 0.000000 -3.437499 -4.543859 +v 0.000000 -2.562499 -4.543859 +v -0.437500 -2.999999 -4.606359 +v 0.000000 -2.562499 -4.606359 +v 0.437500 -2.999999 -4.606359 +v 1.060660 -2.998158 -4.543859 +v 1.370019 -2.870018 -4.543859 +v 0.751301 -2.251300 -4.543859 +v 0.751301 -2.870018 -4.606359 +v 0.751301 -2.251300 -4.606359 +v 1.370019 -2.251300 -4.606359 +v 1.500000 -1.937499 -4.606359 +v 1.062500 -1.499999 -4.606359 +v 1.500000 -1.062499 -4.606359 +v 1.370019 -0.748698 -4.606359 +v 0.751300 -0.748698 -4.606359 +v 0.751300 -0.129980 -4.606359 +v 1.809359 -1.809358 -4.543859 +v 1.937500 -1.499999 -4.543859 +v 1.062500 -1.499999 -4.543859 +v 0.000000 -2.249999 -1.981360 +v 0.750000 -1.499999 -1.981360 +v 0.000000 -0.749999 -1.981359 +v 0.000000 -1.687499 -1.731360 +v 0.187500 -1.499999 -1.731360 +v 0.000000 -1.312499 -1.731359 +v -1.370021 -0.129980 -4.543859 +v -1.370020 -0.748698 -4.543859 +v -0.751302 -0.748698 -4.543859 +v -1.060660 -2.185658 -4.543859 +v -1.325825 -2.295494 -4.543859 +v -1.234835 -1.765164 -4.543859 +v -0.265165 -2.734833 -4.543859 +v -0.375000 -2.999999 -4.543859 +v -0.685660 -2.560658 -4.543859 +v 0.685660 -2.560658 -4.543859 +v 0.795495 -2.825824 -4.543859 +v 0.265165 -2.734833 -4.543859 +v 1.060660 -2.185658 -4.543859 +v 1.125000 -1.499999 -4.543859 +v 1.234835 -1.765164 -4.543859 +v 1.234835 -1.234834 -4.543859 +v 0.795495 -0.704504 -4.543859 +v 1.060660 -0.814339 -4.543859 +v 0.265165 -0.265164 -4.543859 +v 0.375000 0.000001 -4.543859 +v 0.685660 -0.439339 -4.543859 +v -0.795495 -0.174174 -4.543859 +v -0.645778 0.059048 -4.543859 +v -0.375000 0.000001 -4.543859 +v -1.234835 -1.234834 -4.543859 +v -1.500000 -1.124999 -4.543859 +v -1.060660 -0.814339 -4.543859 +v 0.000000 -2.624999 -4.543859 +v -1.125000 -1.499999 -4.543859 +v -1.325825 -2.295494 -2.481359 +v -1.500000 -1.874999 -2.481359 +v -1.559047 -2.145777 -2.481359 +v -0.795495 -2.825824 -2.481360 +v -0.645778 -3.059046 -2.481360 +v -0.375000 -2.999999 -2.481360 +v 0.795495 -2.825824 -2.481360 +v 0.375000 -2.999999 -2.481360 +v 0.645778 -3.059046 -2.481360 +v 1.325825 -2.295494 -2.481359 +v 1.559047 -2.145778 -2.481359 +v 1.500000 -1.874999 -2.481359 +v 1.500000 -1.124999 -2.481359 +v 1.559047 -0.854220 -2.481359 +v 1.325825 -0.704504 -2.481359 +v 0.795495 -0.174173 -2.481359 +v 0.645778 0.059048 -2.481359 +v 0.375000 0.000001 -2.481359 +v -0.685660 -0.439339 -2.481359 +v 0.000000 -0.374999 -2.481359 +v -0.265166 -0.265164 -2.481359 +v -1.500000 -1.124999 -2.481359 +v -1.325825 -0.704504 -2.481359 +v -1.559047 -0.854221 -2.481359 +v -0.795495 -0.704504 -2.481359 +v -0.795495 -2.295494 -2.481359 +v 0.795495 -2.295494 -2.481359 +v 0.000000 0.437501 -4.543859 +v -0.309360 0.309360 -4.543859 +v -0.309360 -0.309358 -4.543859 +v 0.309359 -0.309358 -4.543859 +v 0.309359 0.309360 -4.543859 +v 1.060660 -0.001839 -4.543859 +v 0.751300 -0.129980 -4.543859 +v 0.623160 -0.439339 -4.543859 +v 1.060660 -0.876839 -4.543859 +v 1.370019 -0.748698 -4.543859 +v -1.498161 -0.439339 -4.606359 +v -1.370021 -0.129980 -4.606359 +v -1.060661 -0.001839 -4.606359 +v -0.623161 -0.439339 -4.606359 +v -1.060661 -0.876839 -4.606359 +v -0.309360 0.309360 -4.606359 +v 0.000000 0.437501 -4.606359 +v 0.309359 0.309360 -4.606359 +v 0.309359 -0.309358 -4.606359 +v -0.309360 -0.309358 -4.606359 +v -1.809360 -1.809359 -4.606359 +v -1.937501 -1.500000 -4.606359 +v -1.809360 -1.190640 -4.606359 +v -1.190641 -1.190640 -4.606359 +v -1.190641 -1.809359 -4.606359 +v -1.809360 -1.809359 -4.543859 +v -1.190641 -1.809359 -4.543859 +v -1.190641 -1.190640 -4.543859 +v -1.500001 -1.062499 -4.543859 +v -1.809360 -1.190640 -4.543859 +v -1.060660 -2.998160 -4.606359 +v -1.370020 -2.870018 -4.606359 +v -1.498160 -2.560660 -4.606359 +v -1.060660 -2.123158 -4.606359 +v -0.623160 -2.560658 -4.606359 +v -1.060660 -2.998160 -4.543859 +v -0.751301 -2.870018 -4.543859 +v -0.623160 -2.560658 -4.543859 +v -1.060660 -2.123158 -4.543859 +v -1.370020 -2.251300 -4.543859 +v 0.309359 -3.309358 -4.543859 +v 0.437500 -2.999999 -4.543859 +v 0.309359 -2.690639 -4.543859 +v -0.309360 -2.690639 -4.543859 +v -0.437500 -2.999999 -4.543859 +v 0.309359 -3.309358 -4.606359 +v 0.000000 -3.437499 -4.606359 +v -0.309359 -3.309359 -4.606359 +v -0.309360 -2.690639 -4.606359 +v 0.309359 -2.690639 -4.606359 +v 1.498160 -2.560658 -4.543859 +v 1.370019 -2.251300 -4.543859 +v 1.060660 -2.123158 -4.543859 +v 0.623160 -2.560658 -4.543859 +v 0.751301 -2.870018 -4.543859 +v 1.498160 -2.560658 -4.606359 +v 1.370019 -2.870018 -4.606359 +v 1.060660 -2.998158 -4.606359 +v 0.623160 -2.560658 -4.606359 +v 1.060660 -2.123158 -4.606359 +v 1.809359 -1.190639 -4.606359 +v 1.937500 -1.499999 -4.606359 +v 1.809359 -1.809358 -4.606359 +v 1.190640 -1.809358 -4.606359 +v 1.190640 -1.190639 -4.606359 +v 1.060660 -0.001839 -4.606359 +v 1.370019 -0.129979 -4.606359 +v 1.498160 -0.439339 -4.606359 +v 1.060660 -0.876839 -4.606359 +v 0.623160 -0.439339 -4.606359 +v 1.809359 -1.190639 -4.543859 +v 1.500000 -1.062499 -4.543859 +v 1.190640 -1.190639 -4.543859 +v 1.190640 -1.809358 -4.543859 +v 1.500000 -1.937499 -4.543859 +v -0.530331 -0.969669 -1.981359 +v -0.750000 -1.499999 -1.981360 +v -0.530331 -2.030329 -1.981360 +v 0.530330 -2.030329 -1.981360 +v 0.530330 -0.969669 -1.981359 +v -0.132583 -1.367416 -1.731360 +v -0.187500 -1.499999 -1.731360 +v -0.132583 -1.632581 -1.731360 +v 0.132582 -1.632581 -1.731360 +v 0.132582 -1.367416 -1.731360 +v -1.498161 -0.439339 -4.543859 +v -1.060661 -0.876839 -4.543859 +v -0.623161 -0.439339 -4.543859 +v -0.751302 -0.129979 -4.543859 +v -1.060661 -0.001839 -4.543859 +v -1.376792 -2.418540 -4.543859 +v -1.559047 -2.145777 -4.543859 +v -1.623046 -1.824032 -4.543859 +v -1.500000 -1.874999 -4.543859 +v -0.795495 -2.295494 -4.543859 +v -0.324033 -3.123044 -4.543859 +v -0.645778 -3.059046 -4.543859 +v -0.918541 -2.876791 -4.543859 +v -0.795495 -2.825824 -4.543859 +v 0.918541 -2.876791 -4.543859 +v 0.645778 -3.059046 -4.543859 +v 0.324033 -3.123044 -4.543859 +v 0.375000 -2.999999 -4.543859 +v 0.795495 -2.295494 -4.543859 +v 1.500000 -1.874999 -4.543859 +v 1.623046 -1.824032 -4.543859 +v 1.559047 -2.145777 -4.543859 +v 1.376793 -2.418540 -4.543859 +v 1.325825 -2.295494 -4.543859 +v 1.325825 -0.704504 -4.543859 +v 1.376793 -0.581458 -4.543859 +v 1.559047 -0.854220 -4.543859 +v 1.623046 -1.175966 -4.543859 +v 1.500000 -1.124999 -4.543859 +v 0.324032 0.123047 -4.543859 +v 0.645778 0.059048 -4.543859 +v 0.918541 -0.123206 -4.543859 +v 0.795495 -0.174173 -4.543859 +v 0.000000 -0.374999 -4.543859 +v -0.265166 -0.265164 -4.543859 +v -0.685660 -0.439339 -4.543859 +v -0.795495 -0.704504 -4.543859 +v -0.324033 0.123047 -4.543859 +v -0.918541 -0.123207 -4.543859 +v -1.623046 -1.175966 -4.543859 +v -1.559047 -0.854221 -4.543859 +v -1.376793 -0.581458 -4.543859 +v -1.325825 -0.704504 -4.543859 +v -1.060660 -2.185659 -2.481359 +v -1.125000 -1.499999 -2.481359 +v -1.234835 -1.765164 -2.481359 +v -1.376792 -2.418540 -2.481359 +v -1.623046 -1.824032 -2.481359 +v -0.265165 -2.734834 -2.481360 +v 0.000000 -2.624999 -2.481359 +v -0.685660 -2.560659 -2.481359 +v -0.324033 -3.123045 -2.481360 +v -0.918541 -2.876792 -2.481360 +v 0.685660 -2.560659 -2.481359 +v 0.265165 -2.734834 -2.481360 +v 0.918541 -2.876791 -2.481360 +v 0.324033 -3.123045 -2.481360 +v 1.234835 -1.765164 -2.481359 +v 1.125000 -1.499999 -2.481359 +v 1.060660 -2.185659 -2.481359 +v 1.623046 -1.824032 -2.481359 +v 1.376793 -2.418540 -2.481359 +v 1.060660 -0.814339 -2.481359 +v 0.795495 -0.704504 -2.481359 +v 1.234835 -1.234834 -2.481359 +v 1.376793 -0.581458 -2.481359 +v 1.623046 -1.175966 -2.481359 +v 0.265165 -0.265164 -2.481359 +v 0.685660 -0.439339 -2.481359 +v 0.324032 0.123047 -2.481359 +v 0.918541 -0.123206 -2.481359 +v -0.375000 0.000001 -2.481359 +v -0.324033 0.123047 -2.481359 +v -0.645778 0.059048 -2.481359 +v -0.918541 -0.123207 -2.481359 +v -0.795495 -0.174174 -2.481359 +v -1.234835 -1.234834 -2.481359 +v -1.060660 -0.814339 -2.481359 +v -1.623046 -1.175966 -2.481359 +v -1.376793 -0.581458 -2.481359 +v -0.265166 0.265166 -2.668859 +v 0.000000 0.375001 -4.543859 +v -0.265166 0.265166 -4.543859 +v 0.000000 0.375001 -2.668859 +v 0.265165 0.265166 -4.543859 +v 0.375000 0.000001 -4.543859 +v 0.265165 0.265166 -2.668859 +v 0.375000 0.000001 -2.668859 +v -0.375000 0.000001 -2.668859 +v -0.375000 0.000001 -4.543859 +v 0.000000 -0.499999 -2.481359 +v 0.707106 -0.792892 -2.481359 +v -0.707107 -0.792892 -2.481359 +v -1.000000 -1.499999 -2.481359 +v 0.000000 -2.499999 -2.481359 +v -0.707107 -2.207106 -2.481359 +v 0.707106 -2.207106 -2.481359 +v 1.000000 -1.499999 -2.481359 +v 0.187500 -1.499999 -1.981360 +v 0.132582 -1.367416 -1.981360 +v 0.000000 -1.687499 -1.981360 +v 0.132582 -1.632581 -1.981360 +v -0.187500 -1.499999 -1.981360 +v -0.132583 -1.632581 -1.981360 +v 0.000000 -1.312499 -1.981359 +v -0.132583 -1.367416 -1.981360 +v -0.265165 -0.265164 -2.668859 +v 0.265166 -0.265164 -2.668859 +v 1.060660 -0.064339 -2.668859 +v 1.325825 -0.174174 -4.543859 +v 1.060660 -0.064339 -4.543859 +v 1.325825 -0.174174 -2.668859 +v 1.435660 -0.439339 -4.543859 +v 1.325825 -0.704504 -4.543859 +v 1.435660 -0.439339 -2.668859 +v 1.325825 -0.704504 -2.668859 +v 0.795495 -0.174174 -4.543859 +v 0.795495 -0.174174 -2.668859 +v 0.685660 -0.439339 -2.668859 +v 1.060660 -0.814340 -2.668859 +v 1.765165 -1.234834 -2.668859 +v 1.875000 -1.499999 -4.543859 +v 1.765165 -1.234834 -4.543859 +v 1.875000 -1.499999 -2.668859 +v 1.765165 -1.765164 -4.543859 +v 1.500000 -1.874999 -4.543859 +v 1.765165 -1.765164 -2.668859 +v 1.500000 -1.874999 -2.668859 +v 1.500000 -1.124999 -4.543859 +v 1.500000 -1.124999 -2.668859 +v 1.234834 -1.234835 -2.668859 +v 1.234834 -1.765165 -2.668859 +v 1.435660 -2.560659 -2.668859 +v 1.325825 -2.825824 -4.543859 +v 1.435660 -2.560658 -4.543859 +v 1.325825 -2.825824 -2.668860 +v 1.060660 -2.935658 -4.543859 +v 0.795495 -2.825824 -4.543859 +v 1.060660 -2.935659 -2.668860 +v 0.795495 -2.825824 -2.668860 +v 1.325825 -2.295494 -4.543859 +v 1.325825 -2.295494 -2.668859 +v 1.060659 -2.185660 -2.668859 +v 0.685659 -2.560659 -2.668859 +v 0.265165 -3.265164 -2.668860 +v 0.000000 -3.374999 -4.543859 +v 0.265165 -3.265164 -4.543859 +v 0.000000 -3.374999 -2.668860 +v -0.265165 -3.265165 -4.543859 +v -0.375000 -2.999999 -4.543859 +v -0.265165 -3.265164 -2.668860 +v -0.375000 -2.999999 -2.668860 +v 0.375000 -2.999999 -4.543859 +v 0.375000 -2.999999 -2.668860 +v 0.265164 -2.734834 -2.668860 +v -0.265166 -2.734834 -2.668860 +v -1.060660 -2.935659 -2.668860 +v -1.325826 -2.825824 -4.543859 +v -1.060660 -2.935660 -4.543859 +v -1.325826 -2.825824 -2.668860 +v -1.435661 -2.560660 -4.543859 +v -1.325826 -2.295495 -4.543859 +v -1.435660 -2.560659 -2.668859 +v -1.325826 -2.295495 -2.668859 +v -0.795495 -2.825824 -4.543859 +v -0.795495 -2.825824 -2.668860 +v -0.685661 -2.560658 -2.668859 +v -1.060661 -2.185658 -2.668859 +v -1.765166 -1.765164 -2.668859 +v -1.875001 -1.499999 -4.543859 +v -1.765166 -1.765165 -4.543859 +v -1.875001 -1.499999 -2.668859 +v -1.765166 -1.234834 -4.543859 +v -1.500001 -1.124999 -4.543859 +v -1.765166 -1.234834 -2.668859 +v -1.500001 -1.124999 -2.668859 +v -1.500001 -1.874999 -4.543859 +v -1.500000 -1.874999 -2.668859 +v -1.234835 -1.765163 -2.668859 +v -1.234835 -1.234833 -2.668859 +v -1.435661 -0.439339 -2.668859 +v -1.325826 -0.174174 -4.543859 +v -1.435661 -0.439339 -4.543859 +v -1.060661 -0.064339 -2.668859 +v -1.060661 -0.064339 -4.543859 +v -0.795496 -0.174174 -4.543859 +v -0.795496 -0.174174 -2.668859 +v -1.325826 -0.704504 -4.543859 +v -1.325826 -0.704504 -2.668859 +v -1.060660 -0.814338 -2.668859 +v -0.685660 -0.439338 -2.668859 +v 0.000001 -0.374999 -2.668859 +v 0.795495 -0.704505 -2.668859 +v 1.124999 -1.500000 -2.668859 +v 0.795494 -2.295495 -2.668859 +v -0.000001 -2.624999 -2.668859 +v -0.795496 -2.295494 -2.668859 +v -1.125000 -1.499998 -2.668859 +v -1.325826 -0.174174 -2.668859 +v -0.795495 -0.704503 -2.668859 +vt 0.805668 0.585502 +vt 0.819838 0.572491 +vt 0.834008 0.585502 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.819838 0.598513 +vt 0.805668 0.585502 +vt 0.819838 0.572491 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.684211 0.442379 +vt 0.708502 0.464684 +vt 0.684211 0.486989 +vt 0.714575 0.475836 +vt 0.720648 0.481413 +vt 0.714575 0.486989 +vt 0.819838 0.598513 +vt 0.805668 0.585502 +vt 0.819838 0.572491 +vt 0.754950 0.529825 +vt 0.763525 0.526563 +vt 0.760583 0.542312 +vt 0.729223 0.513517 +vt 0.732775 0.505643 +vt 0.742822 0.518689 +vt 0.698473 0.518689 +vt 0.694921 0.510815 +vt 0.712072 0.513517 +vt 0.686346 0.529825 +vt 0.684265 0.550186 +vt 0.680713 0.542312 +vt 0.680713 0.558060 +vt 0.694921 0.573808 +vt 0.686346 0.570547 +vt 0.712072 0.586855 +vt 0.708520 0.594729 +vt 0.698473 0.581683 +vt 0.746374 0.589557 +vt 0.741532 0.596482 +vt 0.732775 0.594729 +vt 0.760583 0.558060 +vt 0.769158 0.561322 +vt 0.754950 0.570547 +vt 0.720648 0.516778 +vt 0.757031 0.550186 +vt 0.572507 0.526563 +vt 0.566874 0.539050 +vt 0.564964 0.531009 +vt 0.589658 0.510815 +vt 0.594500 0.503889 +vt 0.603257 0.505643 +vt 0.641111 0.510815 +vt 0.627512 0.505643 +vt 0.636269 0.503889 +vt 0.658262 0.526563 +vt 0.665805 0.531009 +vt 0.663895 0.539050 +vt 0.663895 0.561322 +vt 0.665805 0.569363 +vt 0.658262 0.573808 +vt 0.641111 0.589557 +vt 0.636269 0.596482 +vt 0.627512 0.594729 +vt 0.593210 0.581683 +vt 0.615385 0.583593 +vt 0.606809 0.586855 +vt 0.566874 0.561322 +vt 0.572507 0.573808 +vt 0.564964 0.569363 +vt 0.589658 0.573808 +vt 0.589658 0.526563 +vt 0.641111 0.526563 +vt 0.819838 0.598513 +vt 0.809717 0.594796 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.829960 0.594796 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.809717 0.594796 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.829960 0.594796 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.665992 0.481413 +vt 0.659919 0.464684 +vt 0.665992 0.447955 +vt 0.702429 0.447955 +vt 0.702429 0.481413 +vt 0.710526 0.485130 +vt 0.708502 0.481413 +vt 0.710526 0.477695 +vt 0.718623 0.477695 +vt 0.718623 0.485130 +vt 0.809717 0.594796 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.829960 0.594796 +vt 0.765174 0.522909 +vt 0.771068 0.531009 +vt 0.773138 0.540564 +vt 0.769158 0.539050 +vt 0.746374 0.526563 +vt 0.731127 0.501989 +vt 0.741532 0.503889 +vt 0.750354 0.509301 +vt 0.746374 0.510815 +vt 0.690942 0.509301 +vt 0.699763 0.503889 +vt 0.710168 0.501989 +vt 0.708520 0.505643 +vt 0.694921 0.526563 +vt 0.672137 0.539050 +vt 0.668158 0.540564 +vt 0.670228 0.531009 +vt 0.676122 0.522909 +vt 0.677770 0.526563 +vt 0.677770 0.573808 +vt 0.676122 0.577462 +vt 0.670228 0.569363 +vt 0.668158 0.559808 +vt 0.672137 0.561322 +vt 0.710168 0.598383 +vt 0.699763 0.596482 +vt 0.690942 0.591070 +vt 0.694921 0.589557 +vt 0.720648 0.583593 +vt 0.729223 0.586855 +vt 0.742822 0.581683 +vt 0.746374 0.573808 +vt 0.731127 0.598383 +vt 0.750354 0.591070 +vt 0.773138 0.559808 +vt 0.771068 0.569363 +vt 0.765174 0.577462 +vt 0.763525 0.573808 +vt 0.581082 0.529825 +vt 0.579002 0.550186 +vt 0.575450 0.542312 +vt 0.570859 0.522909 +vt 0.562895 0.540564 +vt 0.606809 0.513517 +vt 0.615385 0.516778 +vt 0.593210 0.518689 +vt 0.604905 0.501989 +vt 0.585679 0.509301 +vt 0.637559 0.518689 +vt 0.623960 0.513517 +vt 0.645091 0.509301 +vt 0.625864 0.501989 +vt 0.655320 0.542312 +vt 0.651767 0.550186 +vt 0.649687 0.529825 +vt 0.667875 0.540564 +vt 0.659911 0.522909 +vt 0.649687 0.570547 +vt 0.641111 0.573808 +vt 0.655320 0.558060 +vt 0.659911 0.577462 +vt 0.667875 0.559808 +vt 0.623960 0.586855 +vt 0.637559 0.581683 +vt 0.625864 0.598383 +vt 0.645091 0.591070 +vt 0.603257 0.594729 +vt 0.604905 0.598383 +vt 0.594500 0.596482 +vt 0.585679 0.591070 +vt 0.589658 0.589557 +vt 0.575450 0.558060 +vt 0.581082 0.570547 +vt 0.562895 0.559808 +vt 0.570859 0.577462 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.603239 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.603239 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.603239 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.603239 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.603239 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.603239 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.651822 0.442379 +vt 0.651822 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.639676 0.501859 +vt 0.651822 0.442379 +vt 0.651822 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.627530 0.501859 +vt 0.639676 0.442379 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.615385 0.501859 +vt 0.627530 0.442379 +vt 0.595142 0.442379 +vt 0.615385 0.501859 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.595142 0.442379 +vt 0.595142 0.501859 +vt 0.615385 0.442379 +vt 0.595142 0.501859 +vt 0.595142 0.442379 +vt 0.615385 0.442379 +vt 0.595142 0.442379 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.595142 0.442379 +vt 0.651822 0.501859 +vt 0.651822 0.442379 +vt 0.595142 0.442379 +vt 0.639676 0.501859 +vt 0.651822 0.442379 +vt 0.651822 0.501859 +vt 0.595142 0.442379 +vt 0.603239 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.595142 0.442379 +vt 0.627530 0.501859 +vt 0.639676 0.442379 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.615385 0.501859 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.627530 0.442379 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.651822 0.501859 +vt 0.639676 0.442379 +vt 0.651822 0.442379 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.603239 0.501859 +vt 0.615385 0.442379 +vt 0.659919 0.501859 +vt 0.659919 0.442379 +vt 0.639676 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.651822 0.501859 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.627530 0.501859 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.651822 0.501859 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.651822 0.501859 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.651822 0.442379 +vt 0.651822 0.442379 +vt 0.603239 0.442379 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.603239 0.442379 +vt 0.651822 0.442379 +vt 0.627530 0.442379 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.773279 0.565056 +vt 0.777328 0.542751 +vt 0.773279 0.553903 +vt 0.773279 0.542751 +vt 0.777328 0.553903 +vt 0.777328 0.531599 +vt 0.773279 0.531599 +vt 0.777328 0.509294 +vt 0.773279 0.520446 +vt 0.773279 0.509294 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.531599 +vt 0.773279 0.542751 +vt 0.773279 0.531599 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.773279 0.565056 +vt 0.777328 0.520446 +vt 0.773279 0.520446 +vt 0.777328 0.509294 +vt 0.773279 0.520446 +vt 0.773279 0.509294 +vt 0.777328 0.553903 +vt 0.773279 0.565056 +vt 0.773279 0.553903 +vt 0.777328 0.520446 +vt 0.773279 0.576208 +vt 0.777328 0.587361 +vt 0.773279 0.587361 +vt 0.773279 0.598513 +vt 0.777328 0.520446 +vt 0.773279 0.531599 +vt 0.777328 0.531599 +vt 0.773279 0.542751 +vt 0.777328 0.565056 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.542751 +vt 0.773279 0.553903 +vt 0.773279 0.542751 +vt 0.777328 0.531599 +vt 0.773279 0.531599 +vt 0.777328 0.553903 +vt 0.773279 0.565056 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.777328 0.542751 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.520446 +vt 0.773279 0.520446 +vt 0.777328 0.509294 +vt 0.773279 0.520446 +vt 0.773279 0.509294 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.773279 0.565056 +vt 0.777328 0.542751 +vt 0.773279 0.553903 +vt 0.773279 0.542751 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.531599 +vt 0.773279 0.531599 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.520446 +vt 0.777328 0.553903 +vt 0.773279 0.565056 +vt 0.773279 0.553903 +vt 0.777328 0.531599 +vt 0.773279 0.542751 +vt 0.773279 0.531599 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.553903 +vt 0.777328 0.520446 +vt 0.773279 0.520446 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.542751 +vt 0.773279 0.576208 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.773279 0.565056 +vt 0.777328 0.520446 +vt 0.773279 0.531599 +vt 0.773279 0.520446 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.777328 0.553903 +vt 0.773279 0.553903 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.531599 +vt 0.773279 0.542751 +vt 0.777328 0.542751 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.777328 0.587361 +vt 0.773279 0.587361 +vt 0.777328 0.553903 +vt 0.773279 0.565056 +vt 0.773279 0.553903 +vt 0.777328 0.542751 +vt 0.773279 0.542751 +vt 0.777328 0.520446 +vt 0.773279 0.531599 +vt 0.773279 0.520446 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.531599 +vt 0.773279 0.598513 +vt 0.777328 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.565056 +vt 0.659919 0.501859 +vt 0.680162 0.486989 +vt 0.684211 0.501859 +vt 0.854251 0.501859 +vt 0.834008 0.486989 +vt 0.850202 0.486989 +vt 0.829960 0.501859 +vt 0.809717 0.486989 +vt 0.825911 0.486989 +vt 0.805668 0.501859 +vt 0.785425 0.486989 +vt 0.801619 0.486989 +vt 0.757085 0.501859 +vt 0.777328 0.486989 +vt 0.781377 0.501859 +vt 0.732794 0.501859 +vt 0.753036 0.486989 +vt 0.708502 0.501859 +vt 0.728745 0.486989 +vt 0.688259 0.486989 +vt 0.704453 0.486989 +vt 0.748988 0.486989 +vt 0.744939 0.479554 +vt 0.748988 0.479554 +vt 0.740891 0.486989 +vt 0.736842 0.479554 +vt 0.740891 0.479554 +vt 0.732794 0.486989 +vt 0.728745 0.479554 +vt 0.732794 0.479554 +vt 0.724696 0.486989 +vt 0.720648 0.479554 +vt 0.724696 0.479554 +vt 0.753036 0.486989 +vt 0.753036 0.479554 +vt 0.744939 0.486989 +vt 0.736842 0.486989 +vt 0.728745 0.486989 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.777328 0.542751 +vt 0.773279 0.553903 +vt 0.777328 0.553903 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.801619 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.663968 0.486989 +vt 0.761134 0.486989 +vt 0.736842 0.486989 +vt 0.712551 0.486989 +vt 0.720648 0.486989 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.793522 0.516729 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9239 0.3827 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.5556 0.8315 0.0000 +vn -0.3827 0.9239 -0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.9808 0.1951 0.0000 +vn -0.9239 0.3827 0.0001 +vn 1.0000 0.0000 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn -0.8315 -0.5556 -0.0000 +vn -0.9239 -0.3827 -0.0001 +vn -0.9239 -0.3827 -0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.1951 -0.9808 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.5556 -0.8315 -0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9808 -0.1951 -0.0000 +vn 0.8315 0.5556 0.0000 +vn 0.9239 0.3827 -0.0001 +vn 0.1951 0.9808 0.0000 +vn 0.3827 0.9239 -0.0000 +vn 0.9808 0.1951 0.0000 +vn -0.5556 -0.8315 -0.0000 +vn -0.9808 -0.1951 -0.0000 +vn -0.8315 0.5556 0.0000 +vn 0.1951 -0.9808 -0.0000 +vn -0.1951 0.9808 0.0000 +vn 0.8315 -0.5556 -0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.5556 0.8315 0.0000 +vn -0.7071 0.7071 0.0001 +vn 0.0000 0.8944 0.4472 +vn 0.6325 0.6325 0.4472 +vn -0.6325 0.6325 0.4472 +vn -0.8944 0.0000 0.4472 +vn -0.6325 -0.6325 0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.6325 -0.6325 0.4472 +vn 0.8944 -0.0000 0.4472 +s off +f 165/283/47 166/284/47 167/285/47 +f 168/286/47 169/287/47 170/288/47 +f 171/289/48 172/290/48 173/291/48 +f 174/292/48 175/293/48 176/294/48 +f 177/295/48 178/296/48 179/297/48 +f 180/298/47 181/299/47 182/300/47 +f 183/301/48 184/302/48 185/303/48 +f 186/304/47 187/305/47 188/306/47 +f 189/307/47 190/308/47 191/309/47 +f 192/310/48 193/311/48 194/312/48 +f 195/313/47 196/314/47 197/315/47 +f 198/316/48 199/317/48 200/318/48 +f 201/319/48 202/320/48 203/321/48 +f 204/322/48 205/323/48 206/324/48 +f 207/325/47 208/326/47 209/327/47 +f 210/328/47 211/329/47 212/330/47 +f 213/331/47 214/332/47 215/333/47 +f 216/334/47 217/335/47 218/336/47 +f 219/337/48 220/338/48 221/339/48 +f 222/340/48 223/341/48 224/342/48 +f 225/343/48 226/344/48 227/345/48 +f 228/346/48 229/347/48 230/348/48 +f 231/349/48 232/350/48 233/351/48 +f 234/352/48 235/353/48 236/354/48 +f 237/355/48 238/356/48 239/357/48 +f 240/358/48 241/359/48 242/360/48 +f 229/347/48 243/361/48 244/362/48 +f 245/363/47 246/364/47 247/365/47 +f 248/366/47 249/367/47 250/368/47 +f 251/369/47 252/370/47 253/371/47 +f 254/372/47 255/373/47 256/374/47 +f 257/375/47 258/376/47 259/377/47 +f 260/378/47 261/379/47 262/380/47 +f 263/381/47 264/382/47 265/383/47 +f 266/384/47 267/385/47 268/386/47 +f 269/387/47 270/388/47 271/389/47 +f 272/390/47 273/391/47 165/283/47 +f 165/283/47 274/392/47 166/284/47 +f 166/284/47 275/393/47 167/285/47 +f 167/285/47 276/394/47 272/390/47 +f 272/390/47 165/283/47 167/285/47 +f 169/287/47 277/395/47 170/288/47 +f 277/395/47 278/396/47 170/288/47 +f 278/396/47 279/397/47 170/288/47 +f 170/288/47 280/398/47 281/399/47 +f 281/399/47 168/286/47 170/288/47 +f 173/291/48 282/400/48 283/401/48 +f 283/401/48 284/402/48 173/291/48 +f 284/402/48 171/289/48 173/291/48 +f 171/289/48 285/403/48 172/290/48 +f 172/290/48 286/404/48 173/291/48 +f 176/294/48 287/405/48 288/406/48 +f 288/406/48 289/407/48 174/292/48 +f 174/292/48 290/408/48 175/293/48 +f 175/293/48 291/409/48 176/294/48 +f 176/294/48 288/406/48 174/292/48 +f 179/297/48 292/410/48 293/411/48 +f 293/411/48 294/412/48 179/297/48 +f 294/412/48 177/295/48 179/297/48 +f 177/295/48 295/413/48 178/296/48 +f 178/296/48 296/414/48 179/297/48 +f 180/298/47 297/415/47 181/299/47 +f 181/299/47 298/416/47 182/300/47 +f 182/300/47 299/417/47 300/418/47 +f 300/418/47 301/419/47 182/300/47 +f 301/419/47 180/298/47 182/300/47 +f 185/303/48 302/420/48 303/421/48 +f 303/421/48 304/422/48 185/303/48 +f 304/422/48 183/301/48 185/303/48 +f 183/301/48 305/423/48 184/302/48 +f 184/302/48 306/424/48 185/303/48 +f 187/305/47 307/425/47 188/306/47 +f 307/425/47 308/426/47 188/306/47 +f 308/426/47 309/427/47 188/306/47 +f 188/306/47 310/428/47 311/429/47 +f 311/429/47 186/304/47 188/306/47 +f 190/308/47 312/430/47 191/309/47 +f 312/430/47 313/431/47 191/309/47 +f 313/431/47 314/432/47 191/309/47 +f 191/309/47 315/433/47 316/434/47 +f 316/434/47 189/307/47 191/309/47 +f 194/312/48 317/435/48 318/436/48 +f 318/436/48 319/437/48 194/312/48 +f 319/437/48 192/310/48 194/312/48 +f 192/310/48 320/438/48 193/311/48 +f 193/311/48 321/439/48 194/312/48 +f 196/314/47 322/440/47 197/315/47 +f 322/440/47 323/441/47 197/315/47 +f 323/441/47 324/442/47 197/315/47 +f 197/315/47 325/443/47 326/444/47 +f 326/444/47 195/313/47 197/315/47 +f 200/318/48 327/445/48 328/446/48 +f 328/446/48 329/447/48 200/318/48 +f 329/447/48 198/316/48 200/318/48 +f 198/316/48 330/448/48 199/317/48 +f 199/317/48 331/449/48 200/318/48 +f 203/321/48 332/450/48 333/451/48 +f 333/451/48 334/452/48 203/321/48 +f 334/452/48 201/319/48 203/321/48 +f 201/319/48 335/453/48 202/320/48 +f 202/320/48 336/454/48 203/321/48 +f 206/324/48 337/455/48 338/456/48 +f 338/456/48 339/457/48 206/324/48 +f 339/457/48 204/322/48 206/324/48 +f 204/322/48 340/458/48 205/323/48 +f 205/323/48 341/459/48 206/324/48 +f 208/326/47 342/460/47 209/327/47 +f 342/460/47 343/461/47 209/327/47 +f 343/461/47 344/462/47 209/327/47 +f 209/327/47 345/463/47 346/464/47 +f 346/464/47 207/325/47 209/327/47 +f 212/330/47 347/465/47 210/328/47 +f 347/465/47 348/466/47 210/328/47 +f 348/466/47 349/467/47 210/328/47 +f 210/328/47 350/468/47 211/329/47 +f 211/329/47 351/469/47 212/330/47 +f 215/333/47 352/470/47 353/471/47 +f 353/471/47 354/472/47 213/331/47 +f 213/331/47 355/473/47 214/332/47 +f 214/332/47 356/474/47 215/333/47 +f 215/333/47 353/471/47 213/331/47 +f 216/334/47 357/475/47 217/335/47 +f 217/335/47 358/476/47 218/336/47 +f 218/336/47 359/477/47 360/478/47 +f 360/478/47 361/479/47 218/336/47 +f 361/479/47 216/334/47 218/336/47 +f 220/338/48 362/480/48 363/481/48 +f 363/481/48 364/482/48 365/483/48 +f 221/339/48 244/362/48 219/337/48 +f 244/362/48 366/484/48 219/337/48 +f 363/481/48 365/483/48 220/338/48 +f 365/483/48 221/339/48 220/338/48 +f 223/341/48 367/485/48 368/486/48 +f 368/486/48 369/487/48 370/488/48 +f 224/342/48 366/484/48 222/340/48 +f 366/484/48 243/361/48 222/340/48 +f 368/486/48 370/488/48 223/341/48 +f 370/488/48 224/342/48 223/341/48 +f 226/344/48 371/489/48 372/490/48 +f 372/490/48 373/491/48 374/492/48 +f 227/345/48 243/361/48 225/343/48 +f 243/361/48 375/493/48 225/343/48 +f 372/490/48 374/492/48 226/344/48 +f 374/492/48 227/345/48 226/344/48 +f 376/494/48 377/495/48 378/496/48 +f 378/496/48 379/497/48 380/498/48 +f 228/346/48 375/493/48 229/347/48 +f 378/496/48 380/498/48 376/494/48 +f 380/498/48 228/346/48 376/494/48 +f 230/348/48 376/494/48 228/346/48 +f 381/499/48 382/500/48 383/501/48 +f 383/501/48 384/502/48 385/503/48 +f 231/349/48 229/347/48 232/350/48 +f 383/501/48 385/503/48 381/499/48 +f 385/503/48 231/349/48 381/499/48 +f 233/351/48 381/499/48 231/349/48 +f 235/353/48 386/504/48 387/505/48 +f 387/505/48 388/506/48 389/507/48 +f 236/354/48 232/350/48 234/352/48 +f 232/350/48 390/508/48 234/352/48 +f 387/505/48 389/507/48 235/353/48 +f 389/507/48 236/354/48 235/353/48 +f 391/509/48 390/508/48 392/510/48 +f 390/508/48 393/511/48 392/510/48 +f 238/356/48 394/512/48 239/357/48 +f 239/357/48 391/509/48 237/355/48 +f 391/509/48 392/510/48 237/355/48 +f 237/355/48 395/513/48 238/356/48 +f 241/359/48 396/514/48 397/515/48 +f 397/515/48 398/516/48 399/517/48 +f 242/360/48 393/511/48 240/358/48 +f 393/511/48 244/362/48 240/358/48 +f 397/515/48 399/517/48 241/359/48 +f 399/517/48 242/360/48 241/359/48 +f 244/362/48 393/511/48 390/508/48 +f 390/508/48 232/350/48 229/347/48 +f 229/347/48 375/493/48 243/361/48 +f 243/361/48 366/484/48 244/362/48 +f 244/362/48 390/508/48 229/347/48 +f 400/518/47 270/388/47 401/519/47 +f 400/518/47 401/519/47 402/520/47 +f 247/365/47 403/521/47 245/363/47 +f 245/363/47 400/518/47 402/520/47 +f 246/364/47 404/522/47 247/365/47 +f 245/363/47 402/520/47 246/364/47 +f 405/523/47 406/524/47 270/388/47 +f 405/523/47 270/388/47 407/525/47 +f 249/367/47 408/526/47 250/368/47 +f 250/368/47 405/523/47 407/525/47 +f 248/366/47 409/527/47 249/367/47 +f 250/368/47 407/525/47 248/366/47 +f 410/528/47 271/389/47 406/524/47 +f 410/528/47 406/524/47 411/529/47 +f 253/371/47 412/530/47 251/369/47 +f 251/369/47 410/528/47 411/529/47 +f 252/370/47 413/531/47 253/371/47 +f 251/369/47 411/529/47 252/370/47 +f 414/532/47 415/533/47 271/389/47 +f 414/532/47 271/389/47 416/534/47 +f 255/373/47 417/535/47 256/374/47 +f 256/374/47 414/532/47 416/534/47 +f 254/372/47 418/536/47 255/373/47 +f 256/374/47 416/534/47 254/372/47 +f 419/537/47 420/538/47 415/533/47 +f 419/537/47 415/533/47 421/539/47 +f 258/376/47 422/540/47 259/377/47 +f 259/377/47 419/537/47 421/539/47 +f 257/375/47 423/541/47 258/376/47 +f 259/377/47 421/539/47 257/375/47 +f 424/542/47 264/382/47 420/538/47 +f 424/542/47 420/538/47 425/543/47 +f 261/379/47 426/544/47 262/380/47 +f 262/380/47 424/542/47 425/543/47 +f 260/378/47 427/545/47 261/379/47 +f 262/380/47 425/543/47 260/378/47 +f 428/546/47 429/547/47 430/548/47 +f 430/548/47 431/549/47 432/550/47 +f 263/381/47 269/387/47 264/382/47 +f 430/548/47 432/550/47 428/546/47 +f 432/550/47 263/381/47 265/383/47 +f 265/383/47 428/546/47 432/550/47 +f 433/551/47 401/519/47 269/387/47 +f 433/551/47 269/387/47 434/552/47 +f 268/386/47 435/553/47 266/384/47 +f 266/384/47 433/551/47 434/552/47 +f 267/385/47 436/554/47 268/386/47 +f 266/384/47 434/552/47 267/385/47 +f 269/387/47 401/519/47 270/388/47 +f 270/388/47 406/524/47 271/389/47 +f 271/389/47 415/533/47 420/538/47 +f 420/538/47 264/382/47 271/389/47 +f 264/382/47 269/387/47 271/389/47 +s 1 +f 398/555/49 267/556/50 399/557/50 +f 395/558/51 430/559/52 238/560/52 +f 385/561/53 421/562/54 231/563/54 +f 373/564/55 252/565/56 374/566/56 +f 396/567/57 268/568/55 397/569/58 +f 389/570/54 425/571/59 236/572/59 +f 394/573/60 428/574/59 239/575/59 +f 362/576/61 247/577/62 363/578/63 +f 231/563/54 415/579/59 229/580/59 +f 379/581/63 254/582/64 380/583/64 +f 367/584/65 249/585/66 368/586/66 +f 229/580/59 414/587/50 230/588/50 +f 388/589/67 260/590/54 389/570/54 +f 371/591/68 253/592/67 372/593/67 +f 230/588/50 256/594/69 376/595/69 +f 384/596/66 257/597/53 385/561/53 +f 377/598/70 255/599/60 378/600/60 +f 225/601/59 251/602/50 226/603/50 +f 382/604/71 258/605/72 383/606/49 +f 375/607/54 410/608/59 225/601/59 +f 386/609/73 261/610/74 387/611/74 +f 228/612/53 271/613/54 375/607/54 +f 384/596/75 258/605/72 423/614/75 +f 227/615/64 406/616/53 243/617/53 +f 368/586/66 409/618/76 369/619/76 +f 380/583/64 416/620/53 228/612/53 +f 364/621/77 247/577/62 404/622/77 +f 374/566/56 411/623/64 227/615/64 +f 397/569/55 436/624/78 398/555/78 +f 243/617/53 405/625/54 222/626/54 +f 372/593/67 413/627/79 373/564/79 +f 223/628/59 405/625/54 250/629/59 +f 238/560/52 429/630/80 394/573/80 +f 219/631/53 245/632/54 220/633/54 +f 378/600/60 418/634/81 379/581/81 +f 370/635/82 407/636/56 224/637/56 +f 387/611/74 427/638/83 388/589/83 +f 366/639/64 400/640/53 219/631/53 +f 376/595/69 417/641/52 377/642/52 +f 221/643/82 401/644/56 244/645/56 +f 226/603/50 412/646/74 371/647/74 +f 224/637/56 270/648/64 366/639/64 +f 223/628/59 408/649/49 367/650/49 +f 241/651/53 433/652/64 266/653/53 +f 220/633/54 403/654/60 362/655/60 +f 365/656/69 402/657/82 221/643/82 +f 396/658/67 266/653/53 435/659/67 +f 244/645/56 433/652/64 240/660/64 +f 239/575/59 265/661/50 391/662/50 +f 237/663/64 431/664/66 395/665/66 +f 393/666/82 263/667/56 392/668/56 +f 391/662/50 264/669/69 390/670/69 +f 235/671/56 426/672/63 386/673/63 +f 399/557/50 434/674/69 242/675/69 +f 390/670/69 424/676/82 234/677/82 +f 381/678/82 422/679/55 382/680/55 +f 392/668/56 432/681/64 237/663/64 +f 234/677/82 262/682/56 235/671/56 +f 370/635/82 409/618/52 248/683/82 +f 242/675/69 269/684/82 393/666/82 +f 232/685/50 419/686/69 233/687/69 +f 364/621/74 246/688/69 365/656/69 +f 233/687/69 259/689/82 381/678/82 +f 236/572/59 420/690/50 232/685/50 +f 290/691/54 167/692/59 275/693/54 +f 291/694/64 166/695/53 274/696/64 +f 175/697/53 275/693/54 166/695/53 +f 176/698/56 274/696/64 165/699/56 +f 288/700/69 273/701/82 272/702/69 +f 289/703/50 272/704/69 276/705/50 +f 284/706/69 216/707/82 361/708/69 +f 173/709/64 358/710/53 217/711/64 +f 285/712/59 360/713/50 359/714/59 +f 360/713/50 284/706/69 361/708/69 +f 282/715/56 217/711/64 357/716/56 +f 293/717/56 297/718/64 180/719/56 +f 178/720/59 299/721/50 182/722/59 +f 287/723/82 165/699/56 273/701/82 +f 167/692/59 289/703/50 276/705/50 +f 300/724/69 294/725/82 301/726/82 +f 294/725/82 180/727/56 301/726/82 +f 292/728/64 181/729/53 297/718/64 +f 179/730/53 298/731/54 181/729/53 +f 295/732/50 300/724/69 299/721/50 +f 283/733/82 357/716/56 216/734/82 +f 306/735/59 188/736/50 309/737/59 +f 185/738/54 309/737/59 308/739/54 +f 184/740/50 310/741/69 188/736/50 +f 305/742/69 311/743/82 310/741/69 +f 296/744/54 182/722/59 298/731/54 +f 304/745/56 187/746/64 186/747/56 +f 311/743/82 304/745/56 186/747/56 +f 302/748/53 308/739/54 307/749/53 +f 318/750/53 312/751/54 190/752/53 +f 320/753/82 316/754/56 315/755/82 +f 321/756/50 191/757/69 314/758/50 +f 319/759/64 190/760/53 189/761/64 +f 194/762/59 314/758/50 313/763/59 +f 303/764/64 307/749/53 187/765/64 +f 316/754/56 319/759/64 189/761/64 +f 317/766/54 313/763/59 312/751/54 +f 199/767/82 325/768/56 197/769/82 +f 200/770/50 324/771/69 323/772/50 +f 329/773/53 196/774/54 195/775/53 +f 193/776/69 315/755/82 191/757/69 +f 327/777/59 323/772/50 322/778/59 +f 328/779/54 322/778/59 196/780/54 +f 331/781/69 197/769/82 324/771/69 +f 326/782/64 329/773/53 195/775/53 +f 335/783/64 346/784/53 345/785/64 +f 332/786/50 343/787/69 342/788/50 +f 437/789/82 438/790/69 439/791/82 +f 440/792/69 441/793/50 438/790/69 +f 202/794/56 345/785/64 209/795/56 +f 333/796/59 342/788/50 208/797/59 +f 334/798/54 208/799/59 207/800/54 +f 346/784/53 334/798/54 207/800/54 +f 203/801/69 344/802/82 343/787/69 +f 336/803/82 209/795/56 344/802/82 +f 330/804/56 326/782/64 325/768/56 +f 281/805/54 339/806/59 168/807/59 +f 205/808/64 280/809/53 170/810/64 +f 341/811/56 170/810/64 279/812/56 +f 337/813/69 278/814/82 277/815/69 +f 442/816/49 443/817/50 444/818/49 +f 206/819/82 279/812/56 278/814/82 +f 339/806/59 169/820/50 168/807/59 +f 445/821/55 439/791/84 446/822/55 +f 338/823/50 277/815/69 169/824/50 +f 340/825/53 281/805/54 280/809/53 +f 447/826/85 351/827/86 448/828/86 +f 447/829/85 347/830/87 212/831/85 +f 449/832/87 348/833/88 347/834/87 +f 450/835/88 349/836/89 348/837/88 +f 451/838/90 349/839/89 452/840/89 +f 453/841/91 210/842/90 451/838/90 +f 454/843/92 350/844/91 453/841/91 +f 454/843/92 351/845/86 211/846/92 +f 356/847/50 455/848/59 456/849/50 +f 355/850/54 457/851/53 458/852/54 +f 354/853/64 459/854/56 460/855/64 +f 352/856/82 461/857/69 462/858/82 +f 215/859/69 456/849/50 461/860/69 +f 214/861/59 458/852/54 455/848/59 +f 213/862/53 460/855/64 457/851/53 +f 353/863/56 462/858/82 459/854/56 +f 463/864/47 464/865/47 443/866/47 +f 286/867/53 218/868/54 358/710/53 +f 172/869/54 359/714/59 218/868/54 +f 465/870/69 466/871/50 467/872/69 +f 468/873/50 469/874/59 466/871/50 +f 470/875/60 471/876/59 472/877/60 +f 465/870/69 473/878/52 474/879/52 +f 475/880/47 476/881/47 471/882/47 +f 477/883/50 478/884/59 479/885/50 +f 480/886/59 481/887/54 478/884/59 +f 482/888/67 483/889/54 484/890/67 +f 477/883/50 485/891/74 486/892/74 +f 487/893/47 488/894/47 483/895/47 +f 489/896/59 490/897/54 491/898/59 +f 492/899/54 493/900/53 490/897/54 +f 494/901/66 495/902/53 496/903/66 +f 489/896/59 497/904/49 498/905/49 +f 499/906/47 500/907/47 495/908/47 +f 501/909/54 502/910/53 503/911/54 +f 504/912/53 505/913/64 502/910/53 +f 506/914/63 507/915/64 508/916/63 +f 501/909/54 509/917/60 510/918/60 +f 511/919/47 512/920/47 507/921/47 +f 513/922/53 514/923/64 515/924/53 +f 516/925/64 517/926/56 514/923/64 +f 518/927/55 519/928/56 520/929/55 +f 513/922/53 521/930/67 522/931/67 +f 523/932/47 524/933/47 519/934/47 +f 525/935/64 526/936/56 527/937/64 +f 528/938/56 529/939/82 526/936/56 +f 530/940/52 531/941/82 532/942/52 +f 525/935/64 533/943/66 534/944/66 +f 535/945/47 536/946/47 531/947/47 +f 537/948/56 538/949/82 539/950/56 +f 538/949/82 540/951/69 541/952/69 +f 542/953/74 540/951/69 543/954/74 +f 537/948/56 544/955/63 545/956/63 +f 546/957/47 547/958/47 540/959/47 +f 398/555/49 436/624/49 267/556/50 +f 395/558/51 431/960/51 430/559/52 +f 385/561/53 257/597/53 421/562/54 +f 373/564/55 413/627/55 252/565/56 +f 396/567/57 435/961/57 268/568/55 +f 389/570/54 260/590/54 425/571/59 +f 394/573/60 429/630/60 428/574/59 +f 362/576/61 403/962/61 247/577/63 +f 231/563/54 421/562/54 415/579/59 +f 379/581/63 418/634/63 254/582/64 +f 367/584/65 408/963/65 249/585/66 +f 229/580/59 415/579/59 414/587/50 +f 388/589/67 427/638/67 260/590/54 +f 371/591/68 412/964/68 253/592/67 +f 230/588/50 414/587/50 256/594/69 +f 384/596/66 423/614/66 257/597/53 +f 377/598/70 417/965/70 255/599/60 +f 225/601/59 410/608/59 251/602/50 +f 382/604/71 422/966/71 258/605/49 +f 375/607/54 271/613/54 410/608/59 +f 386/609/73 426/967/73 261/610/74 +f 228/612/53 416/620/53 271/613/54 +f 384/596/75 383/606/49 258/605/72 +f 227/615/64 411/623/64 406/616/53 +f 368/586/66 249/585/66 409/618/76 +f 380/583/64 254/582/64 416/620/53 +f 364/621/77 363/578/63 247/577/62 +f 374/566/56 252/565/56 411/623/64 +f 397/569/58 268/568/55 436/624/78 +f 243/617/53 406/616/53 405/625/54 +f 372/593/67 253/592/67 413/627/79 +f 223/628/59 222/626/54 405/625/54 +f 238/560/52 430/559/52 429/630/80 +f 219/631/53 400/640/53 245/632/54 +f 378/600/60 255/599/60 418/634/81 +f 370/635/82 248/683/82 407/636/56 +f 387/611/74 261/610/74 427/638/83 +f 366/639/64 270/648/64 400/640/53 +f 376/595/69 256/594/69 417/641/52 +f 221/643/82 402/657/82 401/644/56 +f 226/603/50 251/602/50 412/646/74 +f 224/637/56 407/636/56 270/648/64 +f 223/628/59 250/629/59 408/649/49 +f 241/651/53 240/660/64 433/652/64 +f 220/633/54 245/632/54 403/654/60 +f 365/656/69 246/688/69 402/657/82 +f 396/658/67 241/651/53 266/653/53 +f 244/645/56 401/644/56 433/652/64 +f 239/575/59 428/574/59 265/661/50 +f 237/663/64 432/681/64 431/664/66 +f 393/666/82 269/684/82 263/667/56 +f 391/662/50 265/661/50 264/669/69 +f 235/671/56 262/682/56 426/672/63 +f 399/557/50 267/556/50 434/674/69 +f 390/670/69 264/669/69 424/676/82 +f 381/678/82 259/689/82 422/679/55 +f 392/668/56 263/667/56 432/681/64 +f 234/677/82 424/676/82 262/682/56 +f 370/635/82 369/619/52 409/618/52 +f 242/675/69 434/674/69 269/684/82 +f 232/685/50 420/690/50 419/686/69 +f 364/621/74 404/622/74 246/688/69 +f 233/687/69 419/686/69 259/689/82 +f 236/572/59 425/571/59 420/690/50 +f 290/691/54 174/968/59 167/692/59 +f 291/694/64 175/697/53 166/695/53 +f 175/697/53 290/691/54 275/693/54 +f 176/698/56 291/694/64 274/696/64 +f 288/700/69 287/723/82 273/701/82 +f 289/703/50 288/969/69 272/704/69 +f 284/706/69 283/970/82 216/707/82 +f 173/709/64 286/867/53 358/710/53 +f 285/712/59 171/971/50 360/713/50 +f 360/713/50 171/971/50 284/706/69 +f 282/715/56 173/709/64 217/711/64 +f 293/717/56 292/728/64 297/718/64 +f 178/720/59 295/732/50 299/721/50 +f 287/723/82 176/698/56 165/699/56 +f 167/692/59 174/968/59 289/703/50 +f 300/724/69 177/972/69 294/725/82 +f 294/725/82 293/973/56 180/727/56 +f 292/728/64 179/730/53 181/729/53 +f 179/730/53 296/744/54 298/731/54 +f 295/732/50 177/972/69 300/724/69 +f 283/733/82 282/715/56 357/716/56 +f 306/735/59 184/740/50 188/736/50 +f 185/738/54 306/735/59 309/737/59 +f 184/740/50 305/742/69 310/741/69 +f 305/742/69 183/974/82 311/743/82 +f 296/744/54 178/720/59 182/722/59 +f 304/745/56 303/975/64 187/746/64 +f 311/743/82 183/974/82 304/745/56 +f 302/748/53 185/738/54 308/739/54 +f 318/750/53 317/766/54 312/751/54 +f 320/753/82 192/976/56 316/754/56 +f 321/756/50 193/776/69 191/757/69 +f 319/759/64 318/977/53 190/760/53 +f 194/762/59 321/756/50 314/758/50 +f 303/764/64 302/748/53 307/749/53 +f 316/754/56 192/976/56 319/759/64 +f 317/766/54 194/762/59 313/763/59 +f 199/767/82 330/804/56 325/768/56 +f 200/770/50 331/781/69 324/771/69 +f 329/773/53 328/978/54 196/774/54 +f 193/776/69 320/753/82 315/755/82 +f 327/777/59 200/770/50 323/772/50 +f 328/779/54 327/777/59 322/778/59 +f 331/781/69 199/767/82 197/769/82 +f 326/782/64 198/979/64 329/773/53 +f 335/783/64 201/980/53 346/784/53 +f 332/786/50 203/801/69 343/787/69 +f 437/789/82 440/792/69 438/790/69 +f 440/792/69 443/817/50 441/793/50 +f 202/794/56 335/783/64 345/785/64 +f 333/796/59 332/786/50 342/788/50 +f 334/798/54 333/981/59 208/799/59 +f 346/784/53 201/980/53 334/798/54 +f 203/801/69 336/803/82 344/802/82 +f 336/803/82 202/794/56 209/795/56 +f 330/804/56 198/979/64 326/782/64 +f 281/805/54 204/982/54 339/806/59 +f 205/808/64 340/825/53 280/809/53 +f 341/811/56 205/808/64 170/810/64 +f 337/813/69 206/819/82 278/814/82 +f 442/816/49 441/793/50 443/817/50 +f 206/819/82 341/811/56 279/812/56 +f 339/806/59 338/983/50 169/820/50 +f 445/821/55 437/789/82 439/791/82 +f 338/823/50 337/813/69 277/815/69 +f 340/825/53 204/982/54 281/805/54 +f 447/826/85 212/984/85 351/827/86 +f 447/829/85 449/832/87 347/830/87 +f 449/832/87 450/835/88 348/833/88 +f 450/835/88 452/840/89 349/836/89 +f 451/838/90 210/985/90 349/839/89 +f 453/841/91 350/986/91 210/842/90 +f 454/843/92 211/987/92 350/844/91 +f 454/843/92 448/828/86 351/845/86 +f 356/847/50 214/861/59 455/848/59 +f 355/850/54 213/862/53 457/851/53 +f 354/853/64 353/863/56 459/854/56 +f 352/856/82 215/988/69 461/857/69 +f 215/859/69 356/847/50 456/849/50 +f 214/861/59 355/850/54 458/852/54 +f 213/862/53 354/853/64 460/855/64 +f 353/863/56 352/856/82 462/858/82 +f 437/989/47 445/990/47 463/864/47 +f 463/864/47 548/991/47 464/865/47 +f 464/865/47 444/992/47 443/866/47 +f 443/866/47 440/993/47 437/989/47 +f 437/989/47 463/864/47 443/866/47 +f 286/867/53 172/869/54 218/868/54 +f 172/869/54 285/712/59 359/714/59 +f 465/870/69 468/873/50 466/871/50 +f 468/873/50 471/876/59 469/874/59 +f 470/875/60 469/874/59 471/876/59 +f 465/870/69 467/872/69 473/878/52 +f 465/994/47 474/995/47 475/880/47 +f 475/880/47 549/996/47 476/881/47 +f 476/881/47 472/997/47 471/882/47 +f 471/882/47 468/998/47 465/994/47 +f 465/994/47 475/880/47 471/882/47 +f 477/883/50 480/886/59 478/884/59 +f 480/886/59 483/889/54 481/887/54 +f 482/888/67 481/887/54 483/889/54 +f 477/883/50 479/885/50 485/891/74 +f 477/999/47 486/1000/47 487/893/47 +f 487/893/47 550/1001/47 488/894/47 +f 488/894/47 484/1002/47 483/895/47 +f 483/895/47 480/1003/47 477/999/47 +f 477/999/47 487/893/47 483/895/47 +f 489/896/59 492/899/54 490/897/54 +f 492/899/54 495/902/53 493/900/53 +f 494/901/66 493/900/53 495/902/53 +f 489/896/59 491/898/59 497/904/49 +f 489/1004/47 498/1005/47 499/906/47 +f 499/906/47 551/1006/47 500/907/47 +f 500/907/47 496/1007/47 495/908/47 +f 495/908/47 492/1008/47 489/1004/47 +f 489/1004/47 499/906/47 495/908/47 +f 501/909/54 504/912/53 502/910/53 +f 504/912/53 507/915/64 505/913/64 +f 506/914/63 505/913/64 507/915/64 +f 501/909/54 503/911/54 509/917/60 +f 501/1009/47 510/1010/47 511/919/47 +f 511/919/47 552/1011/47 512/920/47 +f 512/920/47 508/1012/47 507/921/47 +f 507/921/47 504/1013/47 501/1009/47 +f 501/1009/47 511/919/47 507/921/47 +f 513/922/53 516/925/64 514/923/64 +f 516/925/64 519/928/56 517/926/56 +f 518/927/55 517/926/56 519/928/56 +f 513/922/53 515/924/53 521/930/67 +f 513/1014/47 522/1015/47 523/932/47 +f 523/932/47 553/1016/47 524/933/47 +f 524/933/47 520/1017/47 519/934/47 +f 519/934/47 516/1018/47 513/1014/47 +f 513/1014/47 523/932/47 519/934/47 +f 525/935/64 528/938/56 526/936/56 +f 528/938/56 531/941/82 529/939/82 +f 530/940/52 529/939/82 531/941/82 +f 525/935/64 527/937/64 533/943/66 +f 525/1019/47 534/1020/47 535/945/47 +f 535/945/47 554/1021/47 536/946/47 +f 536/946/47 532/1022/47 531/947/47 +f 531/947/47 528/1023/47 525/1019/47 +f 525/1019/47 535/945/47 531/947/47 +f 537/948/56 555/1024/82 538/949/82 +f 538/949/82 555/1024/82 540/951/69 +f 542/953/74 541/952/69 540/951/69 +f 537/948/56 539/950/56 544/955/63 +f 537/1025/47 545/1026/47 546/957/47 +f 546/957/47 556/1027/47 547/958/47 +f 547/958/47 543/1028/47 540/959/47 +f 540/959/47 555/1029/47 537/1025/47 +f 537/1025/47 546/957/47 540/959/47 +o Lid +v -1.931852 -1.478220 -1.193358 +v -2.173333 -1.945152 -5.266041 +v -2.414814 -1.956912 -5.377924 +v 1.931852 -1.478220 -1.193358 +v 2.173333 -1.945152 -5.266041 +v 1.690370 -1.489652 -1.302134 +v -1.690370 -1.489653 -1.302134 +v 2.414815 -1.956911 -5.377924 +v 1.673033 -2.438854 -1.092390 +v 2.091291 -3.156821 -5.243586 +v 0.965926 -3.142087 -1.018477 +v 1.207408 -4.035218 -5.145245 +v 0.000000 -3.399489 -0.991423 +v 0.000000 -4.356733 -5.109249 +v -1.207407 -4.035218 -5.145245 +v -0.965926 -3.142087 -1.018477 +v -2.091291 -3.156821 -5.243586 +v -1.673032 -2.438854 -1.092390 +v 1.882161 -3.025071 -5.145136 +v 1.086666 -3.815628 -5.056629 +v -1.086666 -3.815628 -5.056629 +v 0.000000 -4.104991 -5.024233 +v -1.882162 -3.025072 -5.145136 +v 1.463903 -2.330207 -1.213787 +v 0.845185 -2.945537 -1.149113 +v 0.000000 -3.170763 -1.125441 +v -0.845185 -2.945536 -1.149113 +v -1.463903 -2.330208 -1.213787 +vt 0.562753 0.382900 +vt 0.437247 0.390335 +vt 0.433198 0.382900 +vt 0.562753 0.598513 +vt 0.437247 0.591078 +vt 0.558704 0.591078 +vt 0.558704 0.390335 +vt 0.433198 0.598513 +vt 0.433198 0.732342 +vt 0.469636 0.605948 +vt 0.473684 0.732342 +vt 0.510121 0.605948 +vt 0.514170 0.732342 +vt 0.550607 0.605948 +vt 0.554656 0.732342 +vt 0.595142 0.732342 +vt 0.558704 0.605948 +vt 0.591093 0.605948 +vt 0.635628 0.732342 +vt 0.599190 0.605948 +vt 0.631579 0.605948 +vt 0.676113 0.732342 +vt 0.639676 0.605948 +vt 0.676113 0.605948 +vt 0.435223 0.739777 +vt 0.471660 0.739777 +vt 0.475708 0.739777 +vt 0.516194 0.739777 +vt 0.593117 0.739777 +vt 0.556680 0.739777 +vt 0.633603 0.739777 +vt 0.597166 0.739777 +vt 0.674089 0.739777 +vt 0.467611 0.598513 +vt 0.437247 0.605948 +vt 0.439271 0.598513 +vt 0.479757 0.598513 +vt 0.508097 0.598513 +vt 0.520243 0.598513 +vt 0.548583 0.598513 +vt 0.560729 0.598513 +vt 0.589069 0.598513 +vt 0.601215 0.598513 +vt 0.629555 0.598513 +vt 0.672065 0.605948 +vt 0.641700 0.598513 +vt 0.670040 0.598513 +vt 0.433198 0.390335 +vt 0.562753 0.420074 +vt 0.433198 0.423792 +vt 0.562753 0.453532 +vt 0.433198 0.457249 +vt 0.562753 0.486989 +vt 0.433198 0.490706 +vt 0.562753 0.494424 +vt 0.433198 0.524164 +vt 0.562753 0.527881 +vt 0.433198 0.557621 +vt 0.562753 0.561338 +vt 0.433198 0.591078 +vt 0.433198 0.605948 +vt 0.477733 0.605948 +vt 0.518219 0.605948 +vt 0.512146 0.739777 +vt 0.552631 0.739777 +vt 0.637652 0.739777 +vt 0.562753 0.394052 +vt 0.562753 0.427509 +vt 0.562753 0.460967 +vt 0.562753 0.520446 +vt 0.562753 0.553903 +vt 0.562753 0.587361 +vn 0.0045 0.9935 -0.1142 +vn 0.0042 0.9935 -0.1137 +vn -0.0042 0.9935 -0.1137 +vn -0.0045 0.9935 -0.1142 +vn 0.9599 -0.2434 0.1388 +vn 0.8606 -0.4802 0.1697 +vn 0.8601 -0.4811 0.1699 +vn 0.4970 -0.8417 0.2112 +vn 0.4964 -0.8420 0.2113 +vn -0.0000 -0.9740 0.2264 +vn -0.4964 -0.8420 0.2113 +vn -0.4970 -0.8417 0.2112 +vn -0.8601 -0.4811 0.1699 +vn -0.8606 -0.4802 0.1697 +vn -0.9599 -0.2436 0.1388 +vn -0.9598 -0.2440 0.1387 +vn -0.4199 0.0116 -0.9075 +vn -0.3663 0.1092 -0.9241 +vn -0.3661 0.1095 -0.9241 +vn -0.2117 0.2634 -0.9412 +vn 0.0000 0.3200 -0.9474 +vn -0.2115 0.2635 -0.9412 +vn 0.2115 0.2635 -0.9412 +vn 0.2117 0.2634 -0.9412 +vn 0.3661 0.1095 -0.9241 +vn 0.4199 0.0116 -0.9075 +vn 0.3662 0.1092 -0.9241 +vn -0.3573 0.3004 0.8844 +vn -0.4101 0.2039 0.8890 +vn -0.2063 0.4506 0.8686 +vn 0.0000 0.5055 0.8628 +vn 0.2063 0.4506 0.8686 +vn 0.3573 0.3004 0.8844 +vn 0.4101 0.2039 0.8890 +vn 0.9593 0.2425 -0.1449 +vn 0.8600 0.4790 -0.1761 +vn 0.8594 0.4800 -0.1763 +vn 0.4966 0.8402 -0.2177 +vn 0.4960 0.8406 -0.2178 +vn 0.0000 0.9725 -0.2330 +vn -0.4960 0.8406 -0.2178 +vn -0.4966 0.8402 -0.2177 +vn -0.8594 0.4800 -0.1763 +vn -0.8600 0.4790 -0.1761 +vn -0.9593 0.2424 -0.1449 +vn 0.9598 -0.2440 0.1387 +vn -0.9600 -0.2433 0.1388 +vn 0.9591 0.2432 -0.1448 +vn -0.9591 0.2432 -0.1448 +s off +f 557/1030/93 558/1031/93 559/1032/93 +f 560/1033/94 561/1034/94 562/1035/94 +f 557/1030/95 563/1036/95 558/1031/95 +f 560/1033/96 564/1037/96 561/1034/96 +s 1 +f 564/1038/97 565/1039/98 566/1040/99 +f 566/1040/99 567/1041/100 568/1042/101 +f 568/1042/101 569/1043/102 570/1044/102 +f 571/1045/103 569/1046/102 572/1047/104 +f 573/1048/105 572/1049/104 574/1050/106 +f 559/1051/107 574/1052/106 557/1053/108 +f 561/1054/109 566/1040/110 575/1055/111 +f 568/1042/112 575/1056/111 566/1040/110 +f 570/1044/113 576/1057/114 568/1042/112 +f 570/1044/113 577/1058/115 578/1059/113 +f 571/1045/116 579/1060/117 577/1061/115 +f 558/1062/118 573/1048/119 559/1051/118 +f 580/1063/120 560/1064/121 562/1065/121 +f 567/1041/122 580/1066/120 581/1067/122 +f 569/1043/123 581/1068/122 582/1069/123 +f 572/1047/124 582/1070/123 583/1071/124 +f 574/1050/125 583/1072/124 584/1073/125 +f 557/1074/126 584/1075/125 563/1076/126 +f 558/1077/127 584/1078/128 579/1079/129 +f 579/1079/129 583/1080/130 577/1081/131 +f 577/1081/131 582/1082/132 578/1083/132 +f 582/1084/132 576/1085/133 578/1083/132 +f 581/1086/134 575/1087/135 576/1085/133 +f 580/1088/136 561/1089/137 575/1087/135 +f 564/1038/97 560/1090/138 565/1039/98 +f 566/1040/99 565/1091/98 567/1041/100 +f 568/1042/101 567/1092/100 569/1043/102 +f 571/1045/103 570/1044/102 569/1046/102 +f 573/1048/105 571/1045/103 572/1049/104 +f 559/1051/139 573/1048/105 574/1052/106 +f 561/1054/109 564/1038/109 566/1040/110 +f 568/1042/112 576/1093/114 575/1056/111 +f 570/1044/113 578/1094/113 576/1057/114 +f 570/1044/113 571/1045/116 577/1058/115 +f 571/1045/116 573/1048/119 579/1060/117 +f 558/1062/118 579/1095/117 573/1048/119 +f 580/1063/120 565/1039/120 560/1064/121 +f 567/1041/122 565/1091/120 580/1066/120 +f 569/1043/123 567/1092/122 581/1068/122 +f 572/1047/124 569/1046/123 582/1070/123 +f 574/1050/125 572/1049/124 583/1072/124 +f 557/1074/126 574/1052/125 584/1075/125 +f 558/1077/127 563/1096/140 584/1078/128 +f 579/1079/129 584/1097/128 583/1080/130 +f 577/1081/131 583/1098/130 582/1082/132 +f 582/1084/132 581/1099/134 576/1085/133 +f 581/1086/134 580/1100/136 575/1087/135 +f 580/1088/136 562/1101/141 561/1089/137 +o Rifle +v -0.250000 0.603553 28.875000 +v 0.187500 0.452665 28.875000 +v 0.250000 0.603553 28.875000 +v -0.250000 -0.603553 28.875000 +v -0.452665 -0.187500 28.875000 +v -0.603553 -0.250000 28.875000 +v 0.250000 -0.603553 28.875000 +v -0.187500 -0.452665 28.875000 +v 0.603553 -0.250000 28.875000 +v 0.187500 -0.452665 28.875000 +v 0.452665 0.187500 28.875000 +v 0.452665 -0.187500 28.875000 +v 0.603553 0.250000 28.875000 +v -0.603553 0.250000 28.875000 +v -0.452665 0.187500 28.875000 +v -0.187500 0.452665 28.875000 +v -0.312500 1.254442 25.750000 +v -0.312500 1.254442 25.250000 +v -0.312500 1.129442 25.250000 +v 0.312500 1.254442 25.250000 +v 0.187500 1.254442 25.750000 +v 0.312500 1.254442 25.750000 +v -0.187500 1.254442 25.250000 +v 0.312500 0.754442 25.000000 +v 0.312500 -0.754442 25.000000 +v -0.312500 -0.754442 25.000000 +v 0.000000 1.129442 25.250000 +v 0.187500 1.254442 25.250000 +v -0.187500 1.254442 25.750000 +v 0.000000 1.129442 25.750000 +v -0.062500 1.129440 25.687500 +v -0.062500 1.254440 25.437500 +v -0.062500 1.129440 25.312500 +v 0.062500 1.254440 25.437500 +v 0.062500 1.129440 25.312500 +v 0.062500 1.129440 25.687500 +v 0.062500 1.254440 25.687500 +v 0.312500 1.129442 25.250000 +v 0.754441 -0.437500 16.250000 +v 0.312500 -1.256835 16.250000 +v -0.312500 -1.256835 16.250000 +v 0.312500 0.754441 16.625000 +v -0.312500 0.754441 16.625000 +v -0.754442 0.312500 16.625000 +v 0.312500 0.754442 25.750000 +v -0.312501 -1.728554 16.250000 +v 0.312500 -1.728554 16.500000 +v -0.312501 -1.728554 16.500000 +v 0.312500 -1.728554 16.250000 +v 0.312500 -1.256835 16.625000 +v 0.250120 -0.603553 1.375000 +v 0.603553 -0.791053 1.375000 +v 0.603553 -0.249999 1.375000 +v -0.250121 -0.603553 1.375000 +v -0.603554 -0.249999 1.375000 +v -0.603554 -0.791053 1.375000 +v 0.250000 0.603554 1.375000 +v 0.000000 0.853704 1.375000 +v -0.250000 0.603554 1.375000 +v 0.724444 0.250001 0.875000 +v 0.724444 -2.250000 -1.112240 +v 0.724444 0.250000 -1.375000 +v -0.724444 0.250001 0.875000 +v -0.724444 -2.250000 -1.112240 +v -0.724444 -2.249999 0.875000 +v -0.724444 0.250000 -5.625000 +v -0.724444 -2.250000 -7.375000 +v -0.724444 -2.250000 -5.345110 +v 0.724444 0.250000 -5.625000 +v 0.724444 -2.250000 -7.375000 +v 0.724444 0.250000 -7.375000 +v 2.091291 -0.757001 -5.512260 +v 2.091291 -3.156821 -5.243586 +v 0.000000 -4.356733 -5.109249 +v -1.673032 -2.438855 -1.092390 +v 1.673033 -2.438854 -1.092390 +v 0.000000 0.443049 -1.395290 +v 0.989610 -0.662817 -0.526995 +v 0.724445 -0.399105 -0.554712 +v 0.724445 -1.647005 -0.423552 +v -1.086666 -1.023055 -0.489132 +v -0.989609 -1.383293 -0.451269 +v -0.724444 -1.647005 -0.423552 +v 0.797917 -0.910582 -5.805677 +v 0.797917 -0.877917 -5.494890 +v 0.797917 -2.029418 -5.688082 +v -0.797916 -1.528797 -6.306297 +v -0.797916 -1.907145 -6.100872 +v -0.797916 -2.029418 -5.688082 +v 0.362222 0.877387 -7.375000 +v -0.627386 0.612222 -7.375000 +v -0.249999 2.500002 -11.843750 +v -0.124999 2.312502 -11.843750 +v -0.062499 2.375002 -11.843750 +v 0.250000 0.875002 -11.906250 +v 0.250002 2.500002 -11.843750 +v 0.250000 0.875002 -11.843750 +v -0.250000 0.875002 -11.843750 +v 0.250002 2.500002 -11.906250 +v 0.125001 2.312502 -11.906250 +v 0.062502 2.375002 -11.906250 +v -0.249999 2.500002 -11.906250 +v -0.250000 0.875002 -11.906250 +v 0.062502 2.375002 -11.843750 +v -0.124999 2.312502 -11.906250 +v -0.125000 0.875001 -11.843750 +v -0.125000 0.875001 -11.906250 +v -0.062499 2.375002 -11.906250 +v 0.125001 2.312502 -11.843750 +v 0.125000 0.875002 -11.843750 +v 0.125000 0.875002 -11.906250 +v -0.125000 1.250002 -11.968750 +v -0.187500 1.250002 -11.906250 +v -0.125000 1.250002 -11.906250 +v 0.125000 1.250002 -11.968750 +v 0.000000 1.125002 -11.906250 +v 0.125000 1.250002 -11.906250 +v 0.187500 1.250002 -11.906250 +v -0.375000 1.062502 -11.968750 +v 0.187500 1.062502 -11.906250 +v -0.187500 1.062502 -11.906250 +v -0.375000 1.250002 -11.781250 +v -0.375000 1.250002 -11.968750 +v 0.375000 1.250002 -11.968750 +v 0.375000 1.062502 -11.781250 +v 0.375000 1.062502 -11.968750 +v 0.187500 1.250001 -11.781250 +v 0.187500 1.062502 -11.781250 +v -0.375000 1.062502 -11.781250 +v -0.187500 1.250002 -11.781250 +v -0.187500 1.062501 -11.781250 +v 0.375000 1.250002 -11.781250 +v 0.000000 1.125002 -11.968750 +v 0.375000 0.000002 -12.125000 +v 0.250000 0.875002 -12.000000 +v 0.375000 0.875001 -12.000000 +v 0.375000 0.875001 -11.750000 +v 0.375000 0.000002 -10.250000 +v 0.250000 0.625002 -10.375000 +v 0.250000 0.000002 -10.250000 +v 0.250000 0.698225 -11.676777 +v 0.250000 0.000002 -12.125000 +v 0.250000 0.625002 -11.500000 +v 0.375000 0.625002 -10.375000 +v 0.375000 0.625002 -11.500000 +v 0.375000 0.698225 -11.676777 +v -0.375000 0.000002 -12.125000 +v -0.250000 0.875002 -12.000000 +v -0.250000 0.000002 -12.125000 +v -0.375000 0.875001 -12.000000 +v -0.250000 0.875002 -11.750000 +v -0.250000 0.000002 -10.250000 +v -0.375000 0.625002 -10.375000 +v -0.375000 0.000002 -10.250000 +v -0.375000 0.698225 -11.676777 +v -0.375000 0.625002 -11.500000 +v -0.250000 0.625002 -10.375000 +v -0.250000 0.625002 -11.500000 +v -0.250000 0.698225 -11.676777 +v 0.250001 -2.828398 -11.714233 +v 0.250001 -2.758817 -12.340927 +v 0.250000 -2.499998 -11.375000 +v 0.250000 -3.116043 -9.912266 +v 0.250000 -3.478265 -10.384323 +v 0.250000 -2.990160 -11.110531 +v 0.250000 -3.900858 -10.271091 +v 0.250000 -3.478265 -10.009323 +v 0.250000 -3.840487 -9.912266 +v 0.250000 -4.117364 -10.146091 +v 0.250000 -4.105652 -9.647102 +v 0.250001 -4.230652 -9.772102 +v 0.250001 -4.230652 -7.772102 +v 0.250000 -4.105652 -7.772102 +v 0.250000 -4.078906 -7.359745 +v 0.250000 -3.970653 -7.422245 +v 0.250000 -3.763735 -7.085442 +v 0.250000 -3.683386 -7.181198 +v 0.250000 -3.228038 -7.085442 +v 0.250000 -3.308386 -7.181198 +v 0.250000 -2.940555 -7.265007 +v 0.250000 -2.989361 -7.378296 +v 0.250000 -2.874999 -7.375000 +v 0.250001 -2.499999 -7.375000 +v 0.250000 -2.874999 -7.600048 +v 0.250000 -2.874998 -9.625000 +v 0.250001 -2.954977 -12.680687 +v 0.250001 -3.022512 -12.438679 +v -0.250000 -3.116043 -9.912266 +v -0.250000 -3.478265 -10.384300 +v -0.250000 -3.478265 -10.009323 +v -0.250000 -2.758817 -12.340927 +v -0.250000 -2.954977 -12.680687 +v -0.250000 -3.022512 -12.438679 +v -0.250000 -3.900858 -10.271091 +v -0.250000 -3.840487 -9.912266 +v -0.250000 -4.117364 -10.146091 +v -0.250000 -4.105652 -9.647102 +v -0.250000 -4.230652 -9.772102 +v -0.249999 -4.230652 -7.772102 +v -0.250000 -4.105652 -7.772102 +v -0.249999 -4.078906 -7.359745 +v -0.250000 -3.970653 -7.422245 +v -0.250000 -3.763735 -7.085442 +v -0.250000 -3.683386 -7.181198 +v -0.249999 -3.228038 -7.085442 +v -0.250000 -3.308386 -7.181198 +v -0.250000 -2.940555 -7.265007 +v -0.250000 -2.989361 -7.378296 +v -0.250000 -2.874999 -7.375000 +v -0.250000 -2.874999 -7.600048 +v -0.250000 -2.499999 -7.375000 +v -0.250000 -2.874998 -9.625000 +v -0.250000 -2.499998 -11.375000 +v 0.125000 -2.999998 -9.187500 +v 0.125000 -3.374998 -9.125000 +v 0.125000 -3.374998 -9.250000 +v 0.125000 -3.687498 -9.187500 +v 0.125000 -3.687498 -9.062500 +v 0.125000 -3.937498 -9.000000 +v -0.125000 -2.999998 -9.187500 +v -0.125000 -3.374998 -9.125000 +v -0.125000 -2.999998 -9.062500 +v -0.125000 -3.687498 -9.187500 +v -0.125000 -3.374998 -9.250000 +v -0.125000 -3.937498 -9.000000 +v -0.125000 -3.687498 -9.062500 +v 0.125000 -2.874998 -9.375000 +v -0.125000 -3.937498 -8.875000 +v 0.125000 -3.937498 -8.875000 +v -0.125000 -2.874998 -9.000000 +v -0.125000 -2.874998 -9.375000 +v 0.125000 -2.874998 -9.000000 +v 0.125000 -2.999998 -9.062500 +v -0.754442 -0.312500 25.750000 +v -0.312500 -0.754442 25.750000 +v 0.312500 -0.754442 25.750000 +v 0.362222 0.877387 0.875000 +v -0.362222 0.877387 0.875000 +v 0.627387 -2.612221 0.875000 +v 0.724444 -2.249999 0.875000 +v -0.362222 -2.877386 0.875000 +v -0.250000 -2.828398 -11.714233 +v -0.250000 -2.990160 -11.110531 +v -0.724444 0.250000 -7.375000 +v 0.000000 -2.974444 -7.375000 +v -0.627386 -2.612221 -7.375000 +v -0.312500 0.754442 25.000000 +v -0.312500 0.754442 25.750000 +v -0.754442 -0.312500 25.000000 +v -0.754442 0.312500 25.000000 +v 0.754442 0.312500 25.000000 +v 0.754442 -0.312500 25.000000 +v 0.408300 -0.930195 25.000000 +v 0.288712 -1.218907 25.000000 +v -0.288713 -1.218907 25.000000 +v -0.408301 -0.930195 25.000000 +v 0.000000 -1.338495 25.000000 +v -0.062500 1.254440 25.687500 +v -0.754442 -0.437500 16.250000 +v -0.754442 0.312500 16.250000 +v -0.312500 0.754441 16.250000 +v 0.312500 0.754441 16.250000 +v 0.754441 0.312500 16.250000 +v -0.754442 -0.437501 16.625000 +v 0.754441 -0.437500 16.625000 +v -0.312500 -1.256835 16.625000 +v 0.754441 0.312500 16.625000 +v 0.603553 0.250001 1.375000 +v 0.522822 0.551852 1.375000 +v 0.301852 0.772823 1.375000 +v -0.301852 0.772823 1.375000 +v -0.522823 0.551853 1.375000 +v -0.603554 0.250001 1.375000 +v -0.724444 0.250000 -1.375000 +v 0.724444 -2.250000 -5.345110 +v -2.091290 -0.757001 -5.512260 +v -1.207407 0.121395 -5.610601 +v 0.000000 0.442909 -5.646597 +v 1.207408 0.121394 -5.610601 +v 2.414815 -1.956912 -5.377924 +v 1.207407 -4.035218 -5.145245 +v -1.207407 -4.035218 -5.145245 +v -2.091290 -3.156821 -5.243586 +v -2.414814 -1.956912 -5.377924 +v -0.965925 0.185647 -1.368237 +v -1.673032 -0.517586 -1.294323 +v -1.931851 -1.478220 -1.193358 +v -0.965925 -3.142087 -1.018477 +v 0.000000 -3.399489 -0.991423 +v 0.965926 -3.142087 -1.018477 +v 1.931852 -1.478220 -1.193358 +v 1.673033 -0.517586 -1.294323 +v 0.965926 0.185647 -1.368237 +v 0.989610 -1.383293 -0.451269 +v 1.086667 -1.023055 -0.489132 +v -0.724444 -0.399105 -0.554712 +v -0.989609 -0.662817 -0.526995 +v 0.797917 -1.996754 -5.377295 +v 0.797917 -1.907145 -6.100872 +v 0.797917 -1.528797 -6.306297 +v 0.797917 -1.116008 -6.184023 +v -0.797916 -1.996753 -5.377295 +v -0.797916 -0.877916 -5.494890 +v -0.797916 -0.910581 -5.805677 +v -0.797916 -1.116007 -6.184023 +v -0.362222 0.877387 -7.375000 +v 0.000000 0.974444 -7.375000 +v 0.627387 0.612222 -7.375000 +v 0.250000 0.875002 -11.750000 +v -0.375000 0.875001 -11.750000 +v -0.408301 -0.930195 25.750000 +v -0.288713 -1.218907 25.750000 +v 0.000000 -1.338495 25.750000 +v 0.288712 -1.218907 25.750000 +v 0.408300 -0.930195 25.750000 +v 0.754442 -0.312500 25.750000 +v 0.754442 0.312500 25.750000 +v -0.754442 0.312500 25.750000 +v 0.000000 0.974445 0.875000 +v -0.627387 0.612222 0.875000 +v 0.627386 0.612222 0.875000 +v -0.627387 -2.612221 0.875000 +v 0.000000 -2.974443 0.875000 +v 0.362222 -2.877387 0.875000 +v -0.362222 -2.877387 -7.375000 +v 0.627387 -2.612221 -7.375000 +v 0.362222 -2.877387 -7.375000 +v 0.603553 0.250000 25.750000 +v 0.250000 0.603553 25.750000 +v 0.603553 -0.250000 25.750000 +v 0.250000 -0.603553 25.750000 +v -0.250000 -0.603553 25.750000 +v -0.603553 -0.250000 25.750000 +v -0.603553 0.250000 25.750000 +v -0.250000 0.603553 25.750000 +v -0.187500 -0.452665 25.750000 +v -0.452665 -0.187500 25.750000 +v -0.452665 0.187500 25.750000 +v -0.187500 0.452665 25.750000 +v 0.187500 0.452665 25.750000 +v 0.452665 0.187500 25.750000 +v 0.452665 -0.187500 25.750000 +v 0.187500 -0.452665 25.750000 +v 0.250000 -0.603553 25.000000 +v 0.603553 -0.250001 16.625000 +v 0.603553 -0.250000 25.000000 +v 0.603553 0.250000 25.000000 +v 0.250000 0.603553 16.625000 +v 0.250000 0.603553 25.000000 +v -0.250000 0.603553 25.000000 +v -0.603554 0.250000 16.625000 +v -0.603553 0.250000 25.000000 +v -0.250000 -0.603553 25.000000 +v -0.603554 -0.250000 16.625000 +v -0.250000 -0.603554 16.625000 +v 0.250000 -0.603554 16.625000 +v 0.603553 0.250000 16.625000 +v -0.250000 0.603553 16.625000 +v -0.603553 -0.250000 25.000000 +v -0.250241 -2.353553 0.875000 +v 0.250240 -2.353552 1.375000 +v -0.250243 -2.353552 1.375000 +v 0.250238 -0.603553 5.125000 +v 0.603551 -0.791053 5.125000 +v -0.603554 -2.166052 1.375000 +v -0.575003 -0.791053 5.125000 +v -0.250243 -0.603553 5.125000 +v 0.603551 -2.166052 5.125000 +v 0.603553 -2.166052 1.375000 +v -0.404007 -0.728554 16.125000 +v -0.187500 -0.603554 16.250000 +v 0.404006 -0.728554 16.125000 +v 0.187500 -0.603554 16.250000 +v -0.250243 -2.353552 5.125000 +v -0.187500 -1.728554 16.250000 +v -0.575003 -2.166052 5.125000 +v -0.404007 -1.603554 16.125000 +v 0.250238 -2.353552 5.125000 +v 0.187500 -1.728554 16.250000 +v 0.404006 -1.603554 16.125000 +v -0.250000 0.603553 16.250000 +v -0.603554 0.250000 16.250000 +v 0.603553 -0.250000 16.250000 +v 0.603553 0.250000 16.250000 +v -0.603554 -0.250000 16.250000 +v 0.250000 0.603553 16.250000 +v 0.000000 -0.603554 25.000000 +v 0.230969 -0.699225 16.625000 +v 0.000000 -0.603554 16.625000 +v 0.326640 -0.930195 25.000000 +v 0.230969 -1.161165 16.625000 +v 0.326640 -0.930195 16.625000 +v 0.000000 -1.256835 25.000000 +v -0.230970 -1.161165 16.625000 +v 0.000000 -1.256835 16.625000 +v -0.326641 -0.930195 25.000000 +v -0.230970 -0.699225 16.625000 +v -0.326641 -0.930195 16.625000 +v 0.230969 -0.699225 25.000000 +v 0.230969 -1.161165 25.000000 +v -0.230970 -1.161165 25.000000 +v -0.230970 -0.699225 25.000000 +v 0.250120 -0.603555 16.250000 +v -0.250121 -0.603554 16.250000 +v 0.301852 0.772823 0.875000 +v -0.603554 -2.166052 0.875000 +v 0.000000 0.853704 0.875000 +v -0.301852 0.772823 0.875000 +v 0.522822 0.551852 0.875000 +v -0.522823 0.551853 0.875000 +v -0.603554 0.250001 0.875000 +v 0.603553 0.250001 0.875000 +v 0.603553 -2.166052 0.875000 +v 0.000001 -2.974444 -1.036097 +v 0.362222 -2.877387 -1.046301 +v 0.627387 -2.612221 -1.074171 +v -0.627386 -2.612222 -1.074171 +v -0.362222 -2.877387 -1.046301 +v 0.362222 -2.877387 -5.274868 +v -0.627386 -2.612221 -5.304556 +v -0.362222 -2.877387 -5.274868 +v 0.627387 -2.612221 -5.304556 +v 0.000000 -2.974444 -5.264000 +v 0.989610 -0.741213 -1.272886 +v 1.086667 -1.101451 -1.235023 +v 0.989610 -1.461689 -1.197161 +v 0.724445 -1.725402 -1.169443 +v 0.724445 -0.477501 -1.300604 +v -0.989609 -0.741213 -1.272886 +v -0.724444 -0.477501 -1.300604 +v -0.989609 -1.461689 -1.197161 +v -0.724444 -1.725401 -1.169443 +v -1.086666 -1.101451 -1.235023 +v 0.724444 -0.810009 -5.816248 +v 0.724444 -0.777343 -5.505461 +v 0.724444 -2.097327 -5.366724 +v 0.724444 -2.129992 -5.677511 +v 0.724444 -1.985734 -6.164513 +v 0.724444 -1.052368 -6.262613 +v 0.724444 -1.539368 -6.406870 +v -0.724443 -2.097327 -5.366724 +v -0.724443 -2.129992 -5.677511 +v -0.724443 -0.810009 -5.816248 +v -0.724443 -1.052367 -6.262613 +v -0.724443 -1.985733 -6.164513 +v -0.724443 -1.539368 -6.406870 +v -0.375000 -2.499998 -11.375000 +v 0.375000 -2.499999 -7.375000 +v -0.375001 -2.499999 -7.375000 +v -0.375000 -1.792115 -27.624638 +v 0.375000 -0.733765 -17.555103 +v 0.375000 -1.792115 -27.624638 +v -0.375000 -5.103412 -16.649258 +v 0.375000 -5.588698 -14.838146 +v -0.375000 -5.588697 -14.838146 +v -0.375000 -7.594545 -26.979065 +v 0.375000 -7.219544 -27.628586 +v 0.375000 -7.594545 -26.979065 +v -0.375000 -5.103412 -17.682030 +v 0.375000 -5.103411 -16.649258 +v -0.375000 -7.219544 -27.628601 +v 0.375000 -5.140982 -28.070396 +v 0.375000 -5.103411 -17.682030 +v 0.375000 -3.368846 -28.017761 +v -0.375000 -3.368846 -28.017761 +v -0.375000 -5.140982 -28.070400 +v 0.375000 -0.513028 -14.034538 +v -0.375000 -1.588484 -15.570450 +v -0.375000 -0.513028 -14.034538 +v -0.375000 -3.446317 -13.531712 +v 0.375000 -2.758817 -12.340927 +v -0.375000 -2.758817 -12.340927 +v 0.375000 -1.588484 -15.570450 +v -0.375000 -1.588484 -15.820450 +v -0.375001 -4.418590 -14.503983 +v 0.374999 -3.446317 -13.531712 +v 0.375000 -2.499998 -11.375000 +v 0.374999 -4.418590 -14.503983 +v -0.375000 -0.733765 -17.555103 +v 0.375000 -1.588484 -15.820450 +v -0.375000 0.000002 -12.625000 +v 0.375000 0.000002 -12.625000 +v -0.375000 0.000001 -7.375000 +v -0.625000 -0.983720 -17.805099 +v -0.625000 -2.508772 -12.590923 +v -0.625000 -7.344500 -26.979061 +v -0.625000 -4.168545 -14.753979 +v -0.625000 -6.969501 -27.378582 +v -0.625000 -5.338654 -14.838142 +v -0.625000 -2.042071 -27.374634 +v -0.625000 -0.762984 -13.784534 +v -0.625000 -0.249954 -12.374996 +v -0.625000 -5.140938 -27.820393 +v -0.625000 -1.838439 -15.320446 +v -0.625000 -4.853367 -16.649254 +v -0.625000 -1.838439 -16.070446 +v -0.625000 -2.249954 -7.374996 +v -0.625000 -4.853367 -17.932026 +v -0.625000 -2.249953 -11.624996 +v 0.625000 -0.249955 -7.374996 +v 0.625000 -2.249953 -11.624996 +v 0.625000 -0.249954 -12.374996 +v 0.375000 0.000001 -7.375000 +v 0.625000 -0.762984 -13.784534 +v 0.625000 -1.838439 -15.320446 +v 0.625000 -1.838439 -16.070446 +v 0.625000 -0.983720 -17.805099 +v 0.625000 -2.042071 -27.374634 +v 0.625000 -3.368801 -27.767757 +v 0.625000 -5.140937 -27.820393 +v 0.625000 -6.969500 -27.378582 +v 0.625000 -7.344500 -26.979061 +v 0.625000 -4.853367 -17.932026 +v 0.625000 -4.853367 -16.649254 +v 0.625000 -5.338654 -14.838142 +v 0.625000 -4.168545 -14.753979 +v 0.625000 -2.508773 -12.590923 +v 0.625000 -2.249954 -7.374996 +v -0.625000 -0.249955 -7.374996 +v -0.625000 -3.196272 -13.781708 +v -0.625000 -3.368801 -27.767757 +v 0.625000 -3.196272 -13.781708 +v 0.250000 0.000002 -12.375000 +v 0.250000 0.500000 -7.375000 +v 0.250000 0.000000 -7.375000 +v -0.250000 0.500002 -12.375000 +v -0.250000 0.000000 -7.375000 +v -0.250000 0.500000 -7.375000 +v 0.173228 0.673228 -7.375000 +v 0.000000 0.744982 -12.375000 +v 0.000000 0.744981 -7.375000 +v -0.173227 0.673229 -12.375000 +v -0.173227 0.673228 -7.375000 +v 0.173228 0.673229 -12.375000 +v 0.250000 0.500001 -12.375000 +v 0.173227 0.500002 -12.548225 +v 0.122492 0.673229 -12.497490 +v 0.000000 0.673229 -12.548229 +v 0.000000 0.500002 -12.619980 +v -0.122491 0.673229 -12.497490 +v -0.173226 0.500002 -12.548225 +v -0.173226 0.000002 -12.548225 +v -0.250000 0.000002 -12.375000 +v 0.000000 0.000002 -12.619980 +v 0.173227 0.000002 -12.548225 +v 0.250000 0.856696 -11.830807 +v -0.250000 0.812502 -11.812500 +v 0.250000 0.812501 -11.812500 +v 0.250000 0.750001 -11.875000 +v -0.250000 0.768307 -11.919193 +v 0.250000 0.768307 -11.919193 +v -0.250000 0.768307 -11.830807 +v 0.250000 0.768307 -11.830807 +v 0.250000 0.856696 -11.919193 +v -0.250000 0.812502 -11.937500 +v -0.250000 0.856696 -11.919193 +v 0.250000 0.812501 -11.937500 +v -0.250000 0.750001 -11.875000 +v -0.250000 0.856696 -11.830807 +v 0.250240 -2.353552 0.875000 +v -0.724443 -0.777343 -5.505461 +vt 0.959514 0.921933 +vt 0.955466 0.910781 +vt 0.959514 0.910781 +vt 0.959514 0.955390 +vt 0.955466 0.944238 +vt 0.959514 0.944238 +vt 0.959514 0.966543 +vt 0.955466 0.955390 +vt 0.959514 0.977695 +vt 0.955466 0.966543 +vt 0.955466 0.988848 +vt 0.955466 0.977695 +vt 0.959514 0.988848 +vt 0.955466 1.000000 +vt 0.959514 0.933086 +vt 0.955466 0.933086 +vt 0.955466 0.921933 +vt 0.809717 0.802974 +vt 0.825911 0.802974 +vt 0.825911 0.806691 +vt 0.874494 0.828996 +vt 0.858300 0.832714 +vt 0.858300 0.828996 +vt 0.858300 0.851301 +vt 0.874494 0.847584 +vt 0.874494 0.851301 +vt 0.844130 0.881041 +vt 0.844130 0.836431 +vt 0.823887 0.836431 +vt 0.874494 0.840149 +vt 0.874494 0.832714 +vt 0.858300 0.847584 +vt 0.858300 0.840149 +vt 0.874494 0.825279 +vt 0.870445 0.814126 +vt 0.874494 0.814126 +vt 0.870445 0.810409 +vt 0.874494 0.810409 +vt 0.874494 0.799257 +vt 0.870445 0.828996 +vt 0.874494 0.828996 +vt 0.870445 0.817844 +vt 0.866397 0.825279 +vt 0.866397 0.817844 +vt 0.773279 0.806691 +vt 0.773279 0.802974 +vt 0.789474 0.802974 +vt 0.955466 0.875465 +vt 0.941296 0.851301 +vt 0.921053 0.851301 +vt 0.892712 0.910781 +vt 0.872470 0.910781 +vt 0.858300 0.897770 +vt 0.789474 0.817844 +vt 0.793522 0.802974 +vt 0.799595 0.806691 +vt 0.983806 0.881041 +vt 0.971660 0.899628 +vt 0.971660 0.881041 +vt 1.000000 0.881041 +vt 0.983806 0.899628 +vt 0.955466 0.899628 +vt 0.591093 0.795539 +vt 0.595142 0.806691 +vt 0.578947 0.806691 +vt 0.736842 0.795539 +vt 0.748988 0.806691 +vt 0.732794 0.806691 +vt 0.518153 0.799263 +vt 0.510121 0.806642 +vt 0.502090 0.799263 +vt 0.000000 0.672862 +vt 0.064777 0.598513 +vt 0.072874 0.672862 +vt 0.000000 0.457249 +vt 0.064777 0.531599 +vt 0.000000 0.531599 +vt 0.129555 0.672862 +vt 0.072874 0.598513 +vt 0.137652 0.598513 +vt 0.129555 0.457249 +vt 0.072874 0.531599 +vt 0.072874 0.457249 +vt 0.287111 0.613660 +vt 0.287111 0.542474 +vt 0.354251 0.506881 +vt 0.316093 0.419142 +vt 0.424798 0.419142 +vt 0.370445 0.505576 +vt 0.939852 0.768664 +vt 0.949169 0.776952 +vt 0.905082 0.776952 +vt 0.975708 0.765799 +vt 0.988435 0.768664 +vt 0.997752 0.776952 +vt 0.943320 0.756505 +vt 0.943320 0.765799 +vt 0.906883 0.756505 +vt 0.969636 0.739777 +vt 0.982516 0.744678 +vt 0.987854 0.756505 +vt 0.306899 0.661712 +vt 0.327935 0.650558 +vt 0.315789 0.692176 +vt 0.716599 0.743494 +vt 0.724696 0.732342 +vt 0.728745 0.736059 +vt 0.680162 0.646840 +vt 0.676113 0.743494 +vt 0.676113 0.646840 +vt 0.716599 0.646840 +vt 0.680162 0.743494 +vt 0.688259 0.732342 +vt 0.692308 0.736059 +vt 0.712551 0.743494 +vt 0.712551 0.646840 +vt 0.736842 0.736059 +vt 0.765182 0.747212 +vt 0.672065 0.750929 +vt 0.672065 0.747212 +vt 0.777328 0.750929 +vt 0.769231 0.747212 +vt 0.777328 0.747212 +vt 0.704453 0.732342 +vt 0.704453 0.646840 +vt 0.748988 0.646840 +vt 0.740891 0.732342 +vt 0.740891 0.646840 +vt 0.781377 0.747212 +vt 0.769231 0.750929 +vt 0.748988 0.743494 +vt 0.712551 0.747212 +vt 0.680162 0.747212 +vt 0.781377 0.750929 +vt 0.874494 0.747212 +vt 0.874494 0.750929 +vt 0.700405 0.736059 +vt 0.728745 0.635688 +vt 0.736842 0.639405 +vt 0.728745 0.639405 +vt 0.720648 0.635688 +vt 0.724696 0.639405 +vt 0.720648 0.639405 +vt 0.712551 0.639405 +vt 0.748988 0.624535 +vt 0.712551 0.620818 +vt 0.736842 0.620818 +vt 0.761134 0.635688 +vt 0.748988 0.635688 +vt 0.700405 0.635688 +vt 0.688259 0.624535 +vt 0.700405 0.624535 +vt 0.676113 0.635688 +vt 0.676113 0.624535 +vt 0.761134 0.624535 +vt 0.773279 0.635688 +vt 0.805668 0.624535 +vt 0.813765 0.635688 +vt 0.805668 0.635688 +vt 0.781377 0.635688 +vt 0.773279 0.624535 +vt 0.781377 0.624535 +vt 0.700405 0.646840 +vt 0.748988 0.646840 +vt 0.748988 0.613383 +vt 0.700405 0.613383 +vt 0.724696 0.628253 +vt 0.793522 0.628253 +vt 0.748988 0.721190 +vt 0.777328 0.717472 +vt 0.777328 0.721190 +vt 0.785425 0.721190 +vt 0.858300 0.721190 +vt 0.838057 0.717472 +vt 0.858300 0.717472 +vt 0.855926 0.726448 +vt 0.866397 0.721190 +vt 0.870445 0.747212 +vt 0.850201 0.728625 +vt 0.813769 0.728625 +vt 0.809717 0.747212 +vt 0.805664 0.728625 +vt 0.809717 0.747212 +vt 0.769232 0.728625 +vt 0.748988 0.747212 +vt 0.753036 0.721190 +vt 0.763507 0.726448 +vt 0.748988 0.717472 +vt 0.777328 0.721190 +vt 0.748988 0.721190 +vt 0.777328 0.717472 +vt 0.785425 0.721190 +vt 0.858300 0.721190 +vt 0.838057 0.717472 +vt 0.858300 0.717472 +vt 0.763507 0.726448 +vt 0.753036 0.721190 +vt 0.748988 0.747212 +vt 0.769232 0.728625 +vt 0.805664 0.728625 +vt 0.809717 0.747212 +vt 0.813769 0.728625 +vt 0.809717 0.747212 +vt 0.850201 0.728625 +vt 0.870445 0.747212 +vt 0.866397 0.721190 +vt 0.855926 0.726448 +vt 0.773279 0.654275 +vt 0.757085 0.650558 +vt 0.773279 0.650558 +vt 0.595142 0.420074 +vt 0.574899 0.431227 +vt 0.607287 0.434944 +vt 0.635628 0.438662 +vt 0.643725 0.420074 +vt 0.615385 0.420074 +vt 0.659919 0.420074 +vt 0.643725 0.431227 +vt 0.659919 0.431227 +vt 0.668016 0.420074 +vt 0.668016 0.434944 +vt 0.680162 0.420074 +vt 0.676113 0.427509 +vt 0.744939 0.420074 +vt 0.684211 0.423792 +vt 0.744939 0.423792 +vt 0.761134 0.420074 +vt 0.761134 0.423792 +vt 0.773279 0.420074 +vt 0.773279 0.423792 +vt 0.789474 0.420074 +vt 0.777328 0.423792 +vt 0.785425 0.423792 +vt 0.801619 0.420074 +vt 0.789474 0.423792 +vt 0.801619 0.423792 +vt 0.805668 0.420074 +vt 0.659919 0.379182 +vt 0.659919 0.364312 +vt 0.651822 0.364312 +vt 0.587045 0.364312 +vt 0.530364 0.379182 +vt 0.805668 0.364312 +vt 0.817814 0.420074 +vt 0.817814 0.364312 +vt 0.562753 0.420074 +vt 0.570850 0.431227 +vt 0.570850 0.420074 +vt 0.635628 0.382900 +vt 0.643725 0.401487 +vt 0.643725 0.390335 +vt 0.570850 0.390335 +vt 0.562753 0.401487 +vt 0.570850 0.401487 +vt 0.659919 0.401487 +vt 0.659919 0.390335 +vt 0.668016 0.401487 +vt 0.668016 0.386617 +vt 0.680162 0.401487 +vt 0.676113 0.394052 +vt 0.684211 0.397770 +vt 0.744939 0.401487 +vt 0.744939 0.397770 +vt 0.761134 0.401487 +vt 0.761134 0.397770 +vt 0.773279 0.401487 +vt 0.773279 0.397770 +vt 0.777328 0.397770 +vt 0.789474 0.401487 +vt 0.785425 0.397770 +vt 0.789474 0.397770 +vt 0.801619 0.401487 +vt 0.801619 0.397770 +vt 0.805668 0.401487 +vt 0.805668 0.397770 +vt 0.659919 0.334572 +vt 0.651822 0.349442 +vt 0.659919 0.349442 +vt 0.587045 0.349442 +vt 0.817814 0.297398 +vt 0.805668 0.349442 +vt 0.817814 0.349442 +vt 0.417004 0.375465 +vt 0.429150 0.371747 +vt 0.429150 0.375465 +vt 0.441296 0.375465 +vt 0.441296 0.371747 +vt 0.453441 0.375465 +vt 0.417004 0.356877 +vt 0.429150 0.360595 +vt 0.417004 0.360595 +vt 0.441296 0.356877 +vt 0.429150 0.356877 +vt 0.453441 0.356877 +vt 0.441296 0.360595 +vt 0.493927 0.360595 +vt 0.502024 0.371747 +vt 0.493927 0.371747 +vt 0.453441 0.360595 +vt 0.457490 0.371747 +vt 0.453441 0.371747 +vt 0.412955 0.360595 +vt 0.412955 0.349442 +vt 0.412955 0.371747 +vt 0.417004 0.371747 +vt 0.761134 0.849442 +vt 0.775304 0.836431 +vt 0.795547 0.836431 +vt 0.306899 0.728623 +vt 0.306899 0.706321 +vt 0.327935 0.695167 +vt 0.421053 0.736786 +vt 0.408907 0.739777 +vt 0.429943 0.706321 +vt 0.327935 0.739777 +vt 0.408907 0.695167 +vt 0.574899 0.390335 +vt 0.595142 0.401487 +vt 0.607287 0.386617 +vt 0.615385 0.401487 +vt 0.327935 0.695167 +vt 0.408907 0.650558 +vt 0.408907 0.695167 +vt 0.433198 0.672862 +vt 0.421053 0.692176 +vt 0.959514 1.000000 +vt 0.834008 0.817844 +vt 0.809717 0.817844 +vt 0.809717 0.849442 +vt 0.809717 0.868030 +vt 0.823887 0.881041 +vt 0.858300 0.868030 +vt 0.858300 0.849442 +vt 0.846154 0.828996 +vt 0.842105 0.821561 +vt 0.825911 0.821561 +vt 0.821862 0.828996 +vt 0.834008 0.817844 +vt 0.870445 0.825279 +vt 0.870445 0.799257 +vt 0.765182 0.817844 +vt 0.906883 0.875465 +vt 0.906883 0.897770 +vt 0.921053 0.910781 +vt 0.941296 0.910781 +vt 0.955466 0.897770 +vt 0.858300 0.875465 +vt 0.906883 0.875465 +vt 0.872470 0.851301 +vt 0.892712 0.851301 +vt 0.906883 0.897770 +vt 0.805668 0.802974 +vt 1.000000 0.899628 +vt 0.955466 0.881041 +vt 0.529511 0.788833 +vt 0.526918 0.797738 +vt 0.519819 0.804256 +vt 0.500424 0.804256 +vt 0.493325 0.797738 +vt 0.490732 0.788833 +vt 0.000000 0.598513 +vt 0.072874 0.457249 +vt 0.072874 0.672862 +vt 0.137652 0.531599 +vt 0.421390 0.613660 +vt 0.393014 0.639715 +vt 0.354251 0.649253 +vt 0.315488 0.639715 +vt 0.276725 0.578067 +vt 0.315488 0.516418 +vt 0.393014 0.516418 +vt 0.421390 0.542474 +vt 0.431777 0.578067 +vt 0.339065 0.497862 +vt 0.316093 0.476769 +vt 0.307692 0.447955 +vt 0.339065 0.398048 +vt 0.370445 0.390335 +vt 0.401826 0.398048 +vt 0.433198 0.447955 +vt 0.424798 0.476769 +vt 0.401826 0.497862 +vt 0.914399 0.768664 +vt 0.927126 0.765799 +vt 0.953665 0.776952 +vt 0.962982 0.768664 +vt 0.906883 0.765799 +vt 0.912221 0.744678 +vt 0.925101 0.739777 +vt 0.937982 0.744678 +vt 0.987854 0.765799 +vt 0.951417 0.765799 +vt 0.951417 0.756505 +vt 0.956756 0.744678 +vt 0.306899 0.684013 +vt 0.303644 0.672862 +vt 0.315789 0.653549 +vt 0.724696 0.646840 +vt 0.688259 0.646840 +vt 0.765182 0.750929 +vt 0.724696 0.635688 +vt 0.688259 0.635688 +vt 0.813765 0.624535 +vt 0.712551 0.646840 +vt 0.736842 0.646840 +vt 0.736842 0.613383 +vt 0.712551 0.613383 +vt 0.789474 0.635688 +vt 0.797571 0.635688 +vt 0.748988 0.717472 +vt 0.785425 0.717472 +vt 0.838057 0.721190 +vt 0.858300 0.721190 +vt 0.761134 0.721190 +vt 0.785425 0.717472 +vt 0.838057 0.721190 +vt 0.761134 0.721190 +vt 0.858300 0.721190 +vt 0.757085 0.654275 +vt 0.805668 0.423792 +vt 0.805668 0.405204 +vt 0.530364 0.334572 +vt 0.805668 0.315985 +vt 0.502024 0.360595 +vt 0.457490 0.360595 +vt 0.412955 0.382900 +vt 0.773279 0.828996 +vt 0.777328 0.821561 +vt 0.785425 0.817844 +vt 0.793522 0.821561 +vt 0.797571 0.828996 +vt 0.809717 0.849442 +vt 0.775304 0.881041 +vt 0.809717 0.868030 +vt 0.795547 0.881041 +vt 0.761134 0.868030 +vt 0.303644 0.717472 +vt 0.315789 0.698158 +vt 0.315789 0.736786 +vt 0.421053 0.698158 +vt 0.433198 0.717472 +vt 0.429943 0.728623 +vt 0.429943 0.684013 +vt 0.421053 0.653549 +vt 0.429943 0.661712 +vt -0.000000 1.000000 +vt 0.101215 0.985130 +vt 0.101215 1.000000 +vt -0.000000 0.985130 +vt 0.101215 0.970260 +vt 0.000000 0.970260 +vt 0.101215 0.955390 +vt 0.000000 0.955390 +vt 0.101215 0.940520 +vt 0.000000 0.940520 +vt 0.101215 0.925651 +vt 0.000000 0.925651 +vt 0.101215 0.910781 +vt 0.000000 0.910781 +vt 0.101215 0.895911 +vt 0.000000 0.895911 +vt 0.101215 0.881041 +vt 0.854251 0.955390 +vt 0.854251 0.944238 +vt 0.854251 0.933086 +vt 0.854251 0.921933 +vt 0.854251 1.000000 +vt 0.854251 0.988848 +vt 0.854251 0.977695 +vt 0.854251 0.966543 +vt 0.854251 0.910781 +vt 0.874494 0.814126 +vt 0.898785 0.832714 +vt 0.874494 0.832714 +vt 0.874494 0.713755 +vt 0.898785 0.732342 +vt 0.874494 0.732342 +vt 0.874494 0.795539 +vt 0.898785 0.814126 +vt 0.874494 0.851301 +vt 0.898785 0.851301 +vt 0.874494 0.695167 +vt 0.898785 0.713755 +vt 0.898785 0.750929 +vt 0.874494 0.750929 +vt 0.874494 0.788104 +vt 0.898785 0.780669 +vt 0.898785 0.788104 +vt 0.834008 0.806691 +vt 0.844130 0.806691 +vt 0.838057 0.802974 +vt 0.854251 0.806691 +vt 0.850202 0.802974 +vt 0.854251 0.802974 +vt 0.101215 0.955390 +vt 0.372470 0.970260 +vt 0.101215 0.970260 +vt 0.101215 0.985130 +vt 0.372470 1.000000 +vt 0.101215 1.000000 +vt 0.101215 0.895911 +vt 0.372470 0.910781 +vt 0.101215 0.910781 +vt 0.101215 0.940520 +vt 0.372470 0.925651 +vt 0.372470 0.940520 +vt 0.372470 0.955390 +vt 0.372470 0.985130 +vt 0.101215 0.881041 +vt 0.372470 0.895911 +vt 0.101215 0.925651 +vt 0.983806 0.914498 +vt 0.971660 0.940520 +vt 0.971660 0.914498 +vt 0.983806 0.962825 +vt 0.971660 0.981413 +vt 0.971660 0.962825 +vt 0.983806 0.799257 +vt 0.971660 0.817844 +vt 0.971660 0.799257 +vt 0.983806 0.840149 +vt 0.971660 0.866171 +vt 0.971660 0.840149 +vt 0.983806 0.940520 +vt 0.983806 0.981413 +vt 0.971660 1.000000 +vt 0.983806 0.817844 +vt 0.672065 0.821561 +vt 0.655870 0.806691 +vt 0.672065 0.806691 +vt 0.000000 0.750929 +vt 0.121457 0.739777 +vt 0.121457 0.750929 +vt 0.000000 0.828996 +vt 0.121457 0.869888 +vt 0.000000 0.869888 +vt 0.000000 0.881041 +vt 0.121457 0.881041 +vt 0.121457 0.791822 +vt -0.000000 0.791822 +vt 0.481781 0.869888 +vt 0.481781 0.881041 +vt 0.481781 0.750929 +vt 0.481781 0.739777 +vt 0.121457 0.817844 +vt 0.481781 0.815985 +vt 0.121457 0.828996 +vt 0.477733 0.825279 +vt 0.121457 0.802974 +vt 0.481781 0.804833 +vt 0.477733 0.795539 +vt 0.481781 0.776952 +vt 0.481781 0.843866 +vt 0.489879 0.780669 +vt 0.489879 0.747212 +vt 0.489879 0.840149 +vt 0.372470 0.895911 +vt 0.854251 0.910781 +vt 0.372470 0.910781 +vt 0.372470 0.970260 +vt 0.854251 0.985130 +vt 0.372470 0.985130 +vt 0.854251 0.925651 +vt 0.372470 0.925651 +vt 0.372470 0.881041 +vt 0.854251 0.895911 +vt 0.372470 1.000000 +vt 0.854251 1.000000 +vt 0.489879 0.881041 +vt 0.761134 0.873606 +vt 0.761134 0.881041 +vt 0.489879 0.866171 +vt 0.761134 0.858736 +vt 0.761134 0.866171 +vt 0.489879 0.851301 +vt 0.761134 0.843866 +vt 0.761134 0.851301 +vt 0.489879 0.836431 +vt 0.761134 0.828996 +vt 0.761134 0.836431 +vt 0.489879 0.873606 +vt 0.489879 0.858736 +vt 0.489879 0.843866 +vt 0.489879 0.828996 +vt 0.761134 0.821561 +vt 0.898785 0.795539 +vt 0.874494 0.765799 +vt 0.898785 0.758364 +vt 0.898785 0.765799 +vt 0.874494 0.773234 +vt 0.898785 0.773234 +vt 0.874494 0.780669 +vt 0.874494 0.758364 +vt 0.983806 0.866171 +vt 0.372470 0.955390 +vt 0.854251 0.970260 +vt 0.854251 0.940520 +vt 0.372470 0.940520 +vt 0.854251 0.955390 +vt 0.550607 0.806691 +vt 0.538462 0.821561 +vt 0.538462 0.806691 +vt 0.684211 0.821561 +vt 0.526316 0.821561 +vt 0.526316 0.806691 +vt 0.514170 0.821561 +vt 0.514170 0.806691 +vt 0.562753 0.806691 +vt 0.550607 0.821561 +vt 0.502024 0.821561 +vt 0.502024 0.806691 +vt 0.489879 0.821561 +vt 0.489879 0.806691 +vt 0.562753 0.821561 +vt 0.765182 0.821561 +vt 0.643725 0.821561 +vt 0.643725 0.806691 +vt 0.000000 0.802974 +vt 0.000000 0.817844 +vt 0.000000 0.576208 +vt 0.064777 0.565056 +vt 0.064777 0.576208 +vt 0.000000 0.587361 +vt 0.064777 0.587361 +vt 0.064777 0.542751 +vt 0.000000 0.542751 +vt 0.064777 0.553903 +vt 0.000000 0.553903 +vt 0.267206 0.684015 +vt -0.000000 0.695167 +vt -0.000000 0.684015 +vt 0.000000 0.565056 +vt 0.267206 0.706320 +vt 0.000000 0.717472 +vt -0.000000 0.706320 +vt 0.267206 0.717472 +vt -0.000000 0.728625 +vt 0.267206 0.695167 +vt 0.210526 0.672862 +vt 0.267206 0.672862 +vt 0.072874 0.739777 +vt 0.267206 0.728625 +vt 0.210526 0.739777 +vt 0.137652 0.553903 +vt 0.072874 0.565056 +vt 0.072874 0.553903 +vt 0.137652 0.587361 +vt 0.072874 0.576208 +vt 0.137652 0.576208 +vt 0.137652 0.542751 +vt 0.072874 0.542751 +vt 0.137652 0.565056 +vt 0.072874 0.587361 +vt 0.137652 0.598513 +vt 0.275304 0.631970 +vt 0.137652 0.635688 +vt 0.275304 0.672862 +vt 0.137652 0.672862 +vt 0.137652 0.486989 +vt 0.275304 0.449814 +vt 0.275304 0.483271 +vt 0.137652 0.524164 +vt 0.275304 0.490706 +vt 0.275304 0.520446 +vt 0.137652 0.561338 +vt 0.275304 0.527881 +vt 0.275304 0.557621 +vt 0.275304 0.594796 +vt 0.914980 0.799257 +vt 0.927126 0.776952 +vt 0.927126 0.799257 +vt 0.939271 0.799257 +vt 0.951417 0.776952 +vt 0.951417 0.799257 +vt 0.902834 0.776952 +vt 0.902834 0.799257 +vt 0.939271 0.776952 +vt 0.963563 0.776952 +vt 0.951417 0.799257 +vt 0.951417 0.776952 +vt 1.000000 0.799257 +vt 0.987854 0.776952 +vt 1.000000 0.776952 +vt 0.975708 0.776952 +vt 0.963563 0.799257 +vt 0.987854 0.799257 +vt 0.947368 0.754647 +vt 0.947368 0.765799 +vt 0.902834 0.765799 +vt 0.906883 0.754647 +vt 0.902834 0.754647 +vt 0.906883 0.739777 +vt 0.902834 0.739777 +vt 0.906883 0.724907 +vt 0.947368 0.739777 +vt 0.943320 0.724907 +vt 0.947368 0.724907 +vt 0.943320 0.754647 +vt 0.991903 0.765799 +vt 0.987854 0.754647 +vt 0.991903 0.754647 +vt 0.947368 0.754647 +vt 0.951417 0.754647 +vt 0.947368 0.739777 +vt 0.951417 0.739777 +vt 0.951417 0.724907 +vt 0.991903 0.739777 +vt 0.987854 0.724907 +vt 0.991903 0.724907 +vt 0.566802 0.037175 +vt 0.692308 0.014870 +vt 0.692308 0.037175 +vt 0.668016 0.089219 +vt 0.340081 0.066914 +vt 0.668016 0.066914 +vt 0.344130 0.037175 +vt 0.404858 0.014870 +vt 0.404858 0.037175 +vt 0.202429 0.141264 +vt 0.178138 0.118959 +vt 0.202429 0.118959 +vt 0.311741 0.037175 +vt 0.344130 0.014870 +vt 0.178138 0.141264 +vt 0.109312 0.118959 +vt -0.000000 0.037175 +vt 0.311741 0.014870 +vt 0.000000 0.141264 +vt 0.052632 0.118959 +vt 0.052632 0.141264 +vt 0.109312 0.141264 +vt 0.210526 0.066914 +vt 0.271255 0.089219 +vt 0.210526 0.089219 +vt 0.489879 0.037175 +vt 0.534413 0.014870 +vt 0.534413 0.037175 +vt 0.271255 0.066914 +vt 0.279352 0.089219 +vt 0.445344 0.037175 +vt 0.489879 0.014870 +vt 0.566802 0.014870 +vt 0.445344 0.014870 +vt 0.340081 0.089219 +vt 0.279352 0.066914 +vt 0.161943 0.089219 +vt 0.161943 0.066914 +vt -0.000000 0.089219 +vt 0.340081 0.104089 +vt 0.534413 0.052045 +vt 0.198381 0.152416 +vt 0.445344 0.052045 +vt 0.178138 0.156134 +vt 0.404858 0.048327 +vt 0.000000 0.156134 +vt 0.210526 0.104089 +vt 0.161943 0.104089 +vt 0.109312 0.152416 +vt 0.271255 0.104089 +vt 0.344130 0.048327 +vt 0.279352 0.104089 +vt 0.692308 0.048327 +vt 0.311741 0.052045 +vt 0.566802 0.052045 +vt 0.145749 0.297398 +vt 0.283401 0.237918 +vt 0.307692 0.297398 +vt -0.000000 0.066914 +vt 0.161943 0.052045 +vt 0.210526 0.052045 +vt 0.271255 0.052045 +vt 0.279352 0.052045 +vt 0.340081 0.052045 +vt 0.659919 0.052045 +vt 0.000000 0.104089 +vt 0.052632 0.107807 +vt 0.109312 0.107807 +vt 0.178138 0.104089 +vt 0.198381 0.107807 +vt -0.000000 0.014870 +vt 0.311741 0.000000 +vt 0.344130 0.003717 +vt 0.404858 0.003717 +vt 0.445344 0.000000 +vt 0.534413 0.000000 +vt 0.566802 0.000000 +vt 0.692308 0.003717 +vt 0.145749 0.297398 +vt 0.283401 0.237918 +vt 0.145749 0.237918 +vt 0.311741 0.230483 +vt 0.307692 0.297398 +vt 0.352227 0.282528 +vt 0.348178 0.211896 +vt 0.396761 0.252788 +vt 0.376518 0.185874 +vt 0.425101 0.252788 +vt 0.441296 0.159851 +vt 0.477733 0.159851 +vt 0.789474 0.245353 +vt 0.773279 0.089219 +vt 0.785425 0.100372 +vt 0.801619 0.152416 +vt 0.801619 0.204461 +vt 0.311741 0.230483 +vt 0.352227 0.282528 +vt 0.348178 0.211896 +vt 0.376518 0.182156 +vt 0.396761 0.252788 +vt 0.441296 0.159851 +vt 0.376518 0.144981 +vt 0.425101 0.252788 +vt 0.477733 0.159851 +vt 0.789474 0.245353 +vt 0.773279 0.089219 +vt 0.785425 0.100372 +vt 0.801619 0.152416 +vt 0.801619 0.204461 +vt 0.700405 0.788104 +vt 0.862348 0.773234 +vt 0.862348 0.788104 +vt 0.651822 0.773234 +vt 0.489879 0.788104 +vt 0.489879 0.773234 +vt 0.862348 0.762082 +vt 0.700405 0.750929 +vt 0.862348 0.750929 +vt 0.489879 0.750929 +vt 0.651822 0.762082 +vt 0.489879 0.762082 +vt 0.700405 0.762082 +vt 0.700405 0.773234 +vt 0.688259 0.773234 +vt 0.688259 0.762082 +vt 0.694332 0.750929 +vt 0.676113 0.762082 +vt 0.682186 0.750929 +vt 0.676113 0.773234 +vt 0.663968 0.762082 +vt 0.670040 0.750929 +vt 0.663968 0.773234 +vt 0.657895 0.750929 +vt 0.663968 0.788104 +vt 0.651822 0.788104 +vt 0.676113 0.788104 +vt 0.688259 0.788104 +vt 0.801619 0.717472 +vt 0.793522 0.721190 +vt 0.793522 0.717472 +vt 0.801619 0.721190 +vt 0.801619 0.717472 +vt 0.793522 0.721190 +vt 0.793522 0.717472 +vt 0.801619 0.721190 +vt 0.748988 0.657993 +vt 0.781377 0.661710 +vt 0.748988 0.661710 +vt 0.748988 0.669145 +vt 0.781377 0.672862 +vt 0.748988 0.672862 +vt 0.781377 0.665428 +vt 0.748988 0.665428 +vt 0.748988 0.680297 +vt 0.781377 0.676580 +vt 0.781377 0.680297 +vt 0.748988 0.676580 +vt 0.781377 0.669145 +vt 0.773279 0.684015 +vt 0.757085 0.684015 +vt 0.781377 0.657993 +vt 0.696356 0.364312 +vt 0.684211 0.349442 +vt 0.684211 0.364312 +vt 0.672065 0.364312 +vt 0.672065 0.349442 +vt 0.659919 0.364312 +vt 0.793522 0.349442 +vt 0.793522 0.364312 +vt 0.781377 0.349442 +vt 0.781377 0.364312 +vt 0.769231 0.364312 +vt 0.769231 0.349442 +vt 0.708502 0.364312 +vt 0.708502 0.349442 +vt 0.481781 0.360595 +vt 0.481781 0.371747 +vt 0.469636 0.371747 +vt 0.469636 0.360595 +vt 0.000000 0.881041 +vt 0.898785 0.695167 +vt 0.854251 0.817844 +vt 0.834008 0.802974 +vt 0.372470 0.881041 +vt 0.983806 1.000000 +vt 0.655870 0.821561 +vt 0.000000 0.739777 +vt 0.489879 0.873606 +vt 0.854251 0.881041 +vt 0.489879 0.821561 +vt 0.684211 0.806691 +vt 0.765182 0.806691 +vt -0.000000 0.739777 +vt 0.267206 0.739777 +vt 0.275304 0.602230 +vt 0.275304 0.639405 +vt 0.137652 0.449814 +vt 0.275304 0.565056 +vt 0.914980 0.776952 +vt 0.975708 0.799257 +vt 0.902834 0.724907 +vt 0.943320 0.739777 +vt 0.947368 0.765799 +vt 0.947368 0.724907 +vt 0.987854 0.739777 +vt 0.000000 0.118959 +vt 0.659919 0.104089 +vt 0.489879 0.052045 +vt 0.052632 0.152416 +vt -0.000000 0.100372 +vt 0.004049 0.048327 +vt 0.145749 0.237918 +vt -0.000000 0.055762 +vt 0.004049 0.003717 +vt 0.489879 0.000000 +vt 0.376518 0.144981 +vt 0.477733 0.275093 +vt 0.477733 0.275093 +vt 0.651822 0.750929 +vt 0.748988 0.684015 +vt 0.781377 0.684015 +vt 0.781377 0.654275 +vt 0.748988 0.654275 +vt 0.696356 0.349442 +vt 0.659919 0.349442 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.5547 0.8321 0.0000 +vn 0.5547 0.8321 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.2561 0.9666 +vn 0.0000 -0.1113 -0.9938 +vn -0.0000 0.1045 0.9945 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.1414 -0.9899 +vn 0.0000 0.1961 0.9806 +vn 0.0000 -0.8321 -0.5547 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9898 -0.1427 -0.0000 +vn -0.9898 -0.1427 -0.0000 +vn 0.9986 0.0532 0.0000 +vn 0.0000 0.5547 -0.8321 +vn 0.0000 0.2898 -0.9571 +vn 0.0000 0.4178 -0.9086 +vn 0.9696 -0.2448 0.0000 +vn 0.9638 -0.2667 0.0000 +vn -0.9696 -0.2448 -0.0000 +vn -0.9638 -0.2667 -0.0000 +vn -0.2415 -0.9704 0.0000 +vn 0.2415 -0.9704 0.0000 +vn -0.2421 -0.9703 0.0009 +vn 0.8569 0.5154 -0.0000 +vn 0.4688 0.8833 0.0013 +vn 0.8582 0.5133 0.0061 +vn -0.8576 -0.5143 0.0065 +vn -0.8664 0.4993 0.0076 +vn -0.8576 0.5143 0.0066 +vn -0.4707 0.8823 0.0033 +vn -0.5000 0.8660 0.0014 +vn 0.8540 -0.5198 0.0206 +vn 0.8570 -0.5154 0.0000 +vn -0.8198 0.4030 0.4069 +vn -0.6324 0.5454 0.5501 +vn 0.8193 0.4028 0.4080 +vn 0.6319 0.5454 0.5507 +vn -0.2580 -0.9657 0.0277 +vn -0.3816 -0.8474 0.3692 +vn -0.8624 -0.5058 0.0217 +vn -0.8221 -0.3833 0.4210 +vn 0.2409 -0.9702 0.0278 +vn 0.3813 -0.8473 0.3697 +vn 0.8216 -0.3831 0.4221 +vn 0.9239 -0.3826 -0.0000 +vn -0.9239 -0.3826 -0.0000 +vn -0.3827 0.9239 -0.0001 +vn -0.9986 0.0532 0.0000 +vn 0.3828 -0.9238 0.0000 +vn -0.3828 -0.9238 -0.0000 +vn 0.8661 0.4998 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8570 -0.5154 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.9915 0.1303 -0.0000 +vn -0.8661 0.4998 0.0000 +vn -0.9915 0.1303 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.5074 -0.8617 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.8733 -0.4871 0.0000 +vn 0.9659 -0.2588 0.0000 +vn -0.9659 -0.2588 -0.0000 +vn -0.8733 -0.4871 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.5074 -0.8617 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.9659 0.2588 0.0000 +vn -0.9659 0.2588 -0.0000 +vn 0.4919 -0.8707 0.0000 +vn -0.8579 -0.5139 0.0000 +vn -0.4919 -0.8707 0.0000 +vn 0.8579 -0.5139 0.0000 +vn 0.4971 0.8676 0.0152 +vn 0.8602 0.5069 0.0565 +vn 0.8607 0.5059 0.0567 +vn 0.9603 0.2673 0.0801 +vn 0.9601 0.2678 0.0802 +vn -0.8607 0.5059 0.0567 +vn -0.9603 0.2673 0.0801 +vn -0.8602 0.5069 0.0565 +vn -0.4971 0.8676 0.0152 +vn -0.4965 0.8679 0.0151 +vn 0.4965 0.8679 0.0151 +vn 0.8660 0.4973 -0.0523 +vn 0.8660 -0.4973 0.0523 +vn 0.7071 -0.7032 0.0739 +vn 0.7071 0.7032 -0.0739 +vn -0.8660 0.4973 -0.0523 +vn -0.7071 0.7032 -0.0739 +vn -0.7071 -0.7032 0.0739 +vn -0.8660 -0.4973 0.0523 +vn 0.8090 0.5846 -0.0614 +vn 0.8045 0.5702 -0.1664 +vn 0.8090 -0.5846 0.0614 +vn 0.8022 -0.5932 -0.0683 +vn 0.8045 -0.5923 -0.0442 +vn 0.8090 -0.4568 -0.3699 +vn 0.8090 -0.0614 -0.5846 +vn 0.8090 0.3699 -0.4568 +vn 0.8022 0.5660 -0.1902 +vn -0.8090 -0.5846 0.0614 +vn -0.8022 -0.5932 -0.0683 +vn -0.8045 -0.5923 -0.0442 +vn -0.8090 0.5846 -0.0614 +vn -0.8045 0.5702 -0.1664 +vn -0.8022 0.5660 -0.1902 +vn -0.8090 0.3699 -0.4568 +vn -0.8090 -0.0614 -0.5846 +vn -0.8090 -0.4568 -0.3699 +vn -0.4133 -0.9050 0.1009 +vn -0.4015 0.6881 -0.6044 +vn 0.4005 0.8976 0.1842 +vn 0.4015 0.6881 -0.6044 +vn -0.3921 -0.9116 -0.1234 +vn 0.3513 -0.9044 -0.2423 +vn -0.3513 -0.9044 -0.2423 +vn -0.3527 -0.9287 -0.1148 +vn 0.3977 -0.5316 -0.7479 +vn 0.3527 -0.9287 -0.1148 +vn 0.3921 -0.9116 -0.1234 +vn -0.3976 -0.5316 -0.7479 +vn 0.3745 -0.0856 -0.9233 +vn 0.4133 -0.9050 0.1009 +vn 0.3756 0.1302 -0.9176 +vn -0.3756 0.1302 -0.9176 +vn -0.3745 -0.0856 -0.9233 +vn 0.4365 0.7953 -0.4208 +vn -0.4568 0.8586 -0.2328 +vn -0.4365 0.7953 -0.4208 +vn -0.4739 -0.7007 0.5334 +vn 0.4553 -0.8264 0.3312 +vn -0.4553 -0.8264 0.3312 +vn 0.4568 0.8586 -0.2328 +vn -0.4373 0.8820 0.1754 +vn -0.4489 -0.3977 0.8002 +vn 0.4739 -0.7007 0.5334 +vn 0.4489 -0.3977 0.8002 +vn -0.0918 -0.2734 0.9575 +vn 0.0918 -0.2734 0.9575 +vn -0.4005 0.8976 0.1842 +vn 0.4373 0.8820 0.1754 +vn -0.4066 0.8968 -0.1747 +vn 0.4066 0.8968 -0.1747 +vn -0.3826 0.9239 0.0000 +vn -0.9067 0.4207 0.0298 +vn -0.7970 -0.5523 0.2445 +vn -0.8887 -0.4503 -0.0866 +vn -0.8033 -0.2749 0.5283 +vn -0.9298 -0.1635 -0.3296 +vn -0.3431 -0.2369 0.9089 +vn -0.9154 0.3131 -0.2530 +vn -0.9409 0.3038 -0.1495 +vn -0.9195 0.3905 -0.0445 +vn -0.9116 -0.0453 -0.4087 +vn -0.6948 -0.6947 -0.1861 +vn -0.9642 0.2475 -0.0950 +vn -0.7044 -0.7043 -0.0877 +vn -0.9575 0.2768 0.0809 +vn -0.7072 -0.7070 -0.0000 +vn -0.7551 -0.6460 0.1114 +vn -0.7561 -0.6449 0.1111 +vn 0.9195 0.3905 -0.0445 +vn 0.3826 0.9239 0.0000 +vn 0.9409 0.3038 -0.1495 +vn 0.9642 0.2475 -0.0950 +vn 0.9575 0.2768 0.0809 +vn 0.9067 0.4207 0.0298 +vn 0.9154 0.3131 -0.2530 +vn 0.9110 0.0693 -0.4065 +vn 0.9116 -0.0453 -0.4087 +vn 0.9298 -0.1635 -0.3296 +vn 0.8887 -0.4503 -0.0866 +vn 0.7551 -0.6460 0.1114 +vn 0.7044 -0.7043 -0.0877 +vn 0.6948 -0.6947 -0.1861 +vn 0.3431 -0.2369 0.9089 +vn 0.8033 -0.2749 0.5283 +vn 0.7970 -0.5523 0.2445 +vn 0.7561 -0.6449 0.1111 +vn 0.7072 -0.7070 -0.0000 +vn -0.9110 0.0693 -0.4065 +vn 0.9783 0.0000 -0.2071 +vn -0.9783 0.0000 -0.2071 +vn 0.6984 0.7157 0.0000 +vn -0.0000 0.9904 -0.1381 +vn -0.7124 0.6861 -0.1475 +vn -0.6984 0.7157 0.0000 +vn 0.7124 0.6861 -0.1475 +vn 0.9142 0.4052 0.0000 +vn 0.8992 0.3985 -0.1807 +vn -0.8992 0.3985 -0.1807 +vn -0.9142 0.4052 0.0000 +vn 0.6472 0.3875 -0.6565 +vn 0.5294 0.6630 -0.5293 +vn -0.0000 0.6630 -0.7486 +vn -0.0000 0.3827 -0.9239 +vn -0.5294 0.6630 -0.5293 +vn -0.6472 0.3875 -0.6565 +vn -0.6984 0.0000 -0.7157 +vn 0.6984 0.0000 -0.7157 +vn 0.0000 0.9808 0.1951 +vn -0.0000 0.7071 0.7071 +vn -0.0000 0.3827 0.9239 +vn -0.0000 0.4830 0.8756 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.0000 0.4830 -0.8756 +vn 0.0000 0.5773 -0.8165 +vn 0.0000 0.5773 0.8165 +vn 0.0000 0.5774 0.8165 +vn 0.0000 0.8136 -0.5814 +vn 0.0000 0.3420 -0.9397 +vn 0.0000 -0.3505 0.9366 +vn 0.0000 -0.8233 0.5676 +vn 0.0000 -0.2732 -0.9620 +vn 0.0000 -0.7339 -0.6793 +vn 0.0000 0.2755 0.9613 +vn 0.0000 -0.9718 -0.2358 +vn 0.0000 -0.9397 0.3420 +vn 0.0000 0.7144 0.6997 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 -0.5814 -0.8136 +vn 0.0000 0.8590 0.5120 +vn 0.0000 -0.7834 -0.6215 +vn 0.0000 -0.5373 0.8434 +vn 0.0000 -0.9892 -0.1465 +vn -0.0000 -0.9103 -0.4139 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.9845 0.1754 +vn 0.0000 0.9239 0.3827 +vn 0.0000 -1.0000 -0.0052 +vn 0.0000 0.9831 -0.1831 +vn 0.0000 -0.9632 -0.2688 +vn 0.0000 -0.3092 0.9510 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 -0.0161 -0.9999 +vn 0.0000 0.1644 -0.9864 +vn 0.0000 0.4082 0.9129 +vn 0.0000 0.6000 0.8000 +vn 0.0000 0.0161 0.9999 +vn 0.0000 -0.6000 -0.8000 +vn 0.0000 -0.4082 -0.9129 +vn 0.4686 0.8834 -0.0000 +vn -0.8576 0.5143 0.0065 +vn -0.9601 0.2678 0.0802 +vn -0.8145 -0.4575 0.3569 +vn 0.8145 -0.4575 0.3569 +s off +f 585/1102/142 586/1103/142 587/1104/142 +f 588/1105/142 589/1106/142 590/1107/142 +f 591/1108/142 592/1109/142 588/1105/142 +f 593/1110/142 594/1111/142 591/1108/142 +f 593/1110/142 595/1112/142 596/1113/142 +f 597/1114/142 586/1115/142 595/1112/142 +f 598/1116/142 589/1106/142 599/1117/142 +f 585/1102/142 599/1117/142 600/1118/142 +f 601/1119/143 602/1120/143 603/1121/143 +f 604/1122/144 605/1123/144 606/1124/144 +f 601/1125/144 607/1126/144 602/1127/144 +f 608/1128/145 609/1129/145 610/1130/145 +f 611/1131/146 605/1123/146 612/1132/146 +f 611/1131/147 613/1133/147 614/1134/147 +f 615/1135/143 616/1136/143 617/1137/143 +f 617/1137/148 618/1138/148 619/1139/148 +f 618/1138/149 620/1140/149 619/1139/149 +f 621/1141/142 615/1135/142 620/1142/142 +f 616/1143/144 621/1144/144 618/1145/144 +f 622/1146/149 604/1147/149 606/1148/149 +f 623/1149/145 624/1150/145 625/1151/145 +f 626/1152/142 627/1153/142 628/1154/142 +f 629/1155/142 605/1156/142 614/1157/142 +f 630/1158/150 631/1159/150 632/1160/150 +f 625/1161/145 633/1162/145 630/1158/145 +f 634/1163/151 632/1160/151 631/1159/151 +f 635/1164/142 636/1165/142 637/1166/142 +f 638/1167/142 639/1168/142 640/1169/142 +f 641/1170/142 642/1171/142 643/1172/142 +f 644/1173/149 645/1174/149 646/1175/149 +f 647/1176/143 648/1177/143 649/1178/143 +f 650/1179/143 651/1180/143 652/1181/143 +f 653/1182/149 654/1183/149 655/1184/149 +f 656/1185/152 657/1186/152 658/1187/152 +f 659/1188/153 660/1189/153 661/1190/153 +f 662/1191/153 663/1192/153 664/1193/153 +f 665/1194/153 666/1195/153 667/1196/153 +f 668/1197/149 669/1198/149 670/1199/149 +f 671/1200/143 672/1201/143 673/1202/143 +f 674/1203/145 655/1204/145 675/1205/145 +f 676/1206/142 677/1207/142 678/1208/142 +f 679/1209/149 680/1210/149 681/1211/149 +f 682/1212/142 677/1207/142 676/1206/142 +f 683/1213/145 684/1214/145 685/1215/145 +f 679/1209/145 684/1214/145 683/1213/145 +f 682/1212/143 686/1216/143 687/1217/143 +f 688/1218/142 676/1206/142 678/1208/142 +f 689/1219/149 690/1220/149 691/1221/149 +f 688/1222/150 692/1223/150 685/1224/150 +f 685/1215/145 686/1216/145 683/1213/145 +f 687/1217/145 689/1225/145 691/1226/145 +f 681/1227/142 693/1228/142 694/1229/142 +f 684/1230/154 688/1222/154 685/1224/154 +f 678/1231/155 689/1219/155 692/1223/155 +f 693/1228/142 680/1232/142 688/1218/142 +f 683/1213/144 676/1233/144 680/1234/144 +f 693/1235/143 695/1236/143 694/1237/143 +f 689/1225/145 686/1216/145 692/1238/145 +f 696/1239/144 697/1240/144 698/1241/144 +f 699/1242/156 700/1243/156 701/1244/156 +f 702/1245/144 699/1242/144 701/1244/144 +f 703/1246/150 704/1247/150 705/1248/150 +f 700/1243/157 696/1239/157 698/1241/157 +f 703/1246/143 706/1249/143 707/1250/143 +f 708/1251/149 709/1252/149 710/1253/149 +f 709/1252/142 711/1254/142 712/1255/142 +f 713/1256/142 714/1257/142 706/1249/142 +f 704/1258/143 711/1259/143 702/1260/143 +f 697/1261/149 715/1262/149 705/1263/149 +f 702/1245/144 716/1264/144 708/1251/144 +f 706/1265/144 697/1240/144 707/1250/144 +f 705/1248/150 713/1266/150 703/1246/150 +f 709/1267/150 704/1247/150 710/1253/150 +f 717/1268/145 710/1253/145 703/1246/145 +f 705/1263/142 704/1258/142 700/1269/142 +f 718/1270/158 719/1271/158 720/1272/158 +f 719/1271/144 721/1273/144 720/1272/144 +f 722/1274/159 723/1275/159 724/1276/159 +f 725/1277/143 719/1278/143 726/1279/143 +f 726/1279/143 727/1280/143 725/1277/143 +f 723/1281/143 727/1280/143 724/1282/143 +f 728/1283/149 722/1284/149 729/1285/149 +f 718/1286/149 729/1285/149 722/1284/149 +f 720/1287/149 730/1288/149 718/1286/149 +f 731/1289/158 732/1290/158 733/1291/158 +f 734/1292/144 735/1293/144 732/1290/144 +f 736/1294/159 737/1295/159 738/1296/159 +f 739/1297/143 734/1298/143 731/1299/143 +f 731/1299/143 740/1300/143 739/1297/143 +f 737/1301/143 740/1300/143 738/1302/143 +f 741/1303/149 736/1304/149 742/1305/149 +f 733/1306/149 742/1305/149 736/1304/149 +f 732/1307/149 743/1308/149 733/1306/149 +f 690/1309/144 695/1310/144 691/1311/144 +f 744/1312/149 745/1313/149 746/1314/149 +f 747/1315/149 748/1316/149 749/1317/149 +f 744/1312/149 746/1314/149 749/1317/149 +f 750/1318/149 751/1319/149 752/1320/149 +f 753/1321/149 752/1320/149 754/1322/149 +f 755/1323/149 753/1321/149 754/1324/149 +f 756/1325/149 754/1326/149 757/1327/149 +f 758/1328/149 757/1327/149 759/1329/149 +f 760/1330/149 759/1329/149 761/1331/149 +f 762/1332/149 761/1333/149 763/1334/149 +f 764/1335/149 763/1336/149 765/1337/149 +f 765/1337/149 766/1338/149 764/1335/149 +f 767/1339/149 766/1340/149 768/1341/149 +f 767/1339/149 769/1342/149 746/1343/149 +f 747/1344/149 746/1345/149 769/1346/149 +f 770/1347/149 745/1348/149 771/1349/149 +f 772/1350/143 773/1351/143 774/1352/143 +f 775/1353/143 776/1354/143 777/1355/143 +f 774/1352/143 778/1356/143 779/1357/143 +f 779/1357/143 780/1358/143 781/1359/143 +f 782/1360/143 781/1361/143 780/1358/143 +f 781/1362/143 783/1363/143 784/1364/143 +f 784/1364/143 785/1365/143 786/1366/143 +f 786/1366/143 787/1367/143 788/1368/143 +f 788/1369/143 789/1370/143 790/1371/143 +f 790/1372/143 791/1373/143 792/1374/143 +f 792/1374/143 793/1375/143 794/1376/143 +f 795/1377/143 794/1378/143 793/1379/143 +f 795/1377/143 796/1380/143 794/1378/143 +f 797/1381/143 772/1382/143 796/1383/143 +f 798/1384/149 799/1385/149 800/1386/149 +f 799/1385/149 801/1387/149 800/1386/149 +f 802/1388/149 803/1389/149 801/1387/149 +f 804/1390/143 805/1391/143 806/1392/143 +f 807/1393/143 805/1391/143 808/1394/143 +f 809/1395/143 810/1396/143 807/1393/143 +f 804/1397/160 811/1398/160 798/1399/160 +f 812/1400/150 803/1401/150 813/1402/150 +f 804/1390/143 814/1403/143 815/1404/143 +f 798/1384/149 816/1405/149 817/1406/149 +f 818/1407/142 819/1408/142 820/1409/142 +f 821/1410/142 822/1411/142 647/1412/142 +f 823/1413/142 824/1414/142 825/1415/142 +f 644/1416/142 649/1417/142 824/1414/142 +f 775/1418/143 826/1419/143 797/1420/143 +f 826/1419/143 827/1421/143 797/1420/143 +f 828/1422/145 654/1423/145 651/1424/145 +f 829/1425/145 830/1426/145 654/1423/145 +f 585/1102/142 600/1118/142 586/1103/142 +f 588/1105/142 592/1109/142 589/1106/142 +f 591/1108/142 594/1111/142 592/1109/142 +f 593/1110/142 596/1113/142 594/1111/142 +f 593/1110/142 597/1114/142 595/1112/142 +f 597/1114/142 587/1427/142 586/1115/142 +f 598/1116/142 590/1107/142 589/1106/142 +f 585/1102/142 598/1116/142 599/1117/142 +f 831/1428/143 832/1429/143 603/1121/143 +f 832/1429/143 601/1119/143 603/1121/143 +f 604/1122/144 612/1132/144 605/1123/144 +f 601/1125/144 613/1133/144 607/1126/144 +f 610/1130/145 833/1430/145 834/1431/145 +f 834/1431/145 831/1432/145 608/1128/145 +f 608/1128/145 835/1433/145 836/1434/145 +f 609/1129/145 837/1435/145 838/1436/145 +f 608/1128/145 836/1434/145 609/1129/145 +f 610/1130/145 834/1431/145 608/1128/145 +f 839/1437/145 840/1438/145 610/1130/145 +f 838/1436/145 841/1439/145 609/1129/145 +f 841/1439/145 839/1437/145 610/1130/145 +f 609/1129/145 841/1439/145 610/1130/145 +f 611/1131/146 614/1134/146 605/1123/146 +f 611/1131/147 607/1126/147 613/1133/147 +f 615/1135/143 842/1440/143 616/1136/143 +f 617/1137/148 616/1136/148 618/1138/148 +f 618/1138/149 621/1441/149 620/1140/149 +f 621/1141/142 842/1440/142 615/1135/142 +f 616/1143/144 842/1440/144 621/1144/144 +f 606/1148/149 629/1155/149 622/1146/149 +f 629/1155/149 608/1442/149 622/1146/149 +f 625/1151/145 843/1443/145 623/1149/145 +f 843/1443/145 844/1444/145 623/1149/145 +f 844/1444/145 845/1445/145 846/1446/145 +f 846/1446/145 847/1447/145 844/1444/145 +f 847/1447/145 623/1149/145 844/1444/145 +f 628/1154/142 848/1448/142 849/1449/142 +f 848/1448/142 850/1450/142 849/1449/142 +f 850/1450/142 634/1451/142 849/1449/142 +f 849/1449/142 851/1452/142 628/1154/142 +f 851/1452/142 626/1152/142 628/1154/142 +f 601/1119/142 832/1429/142 613/1453/142 +f 832/1429/142 629/1155/142 614/1157/142 +f 629/1155/142 606/1148/142 605/1156/142 +f 614/1157/142 613/1453/142 832/1429/142 +f 630/1158/150 633/1162/150 631/1159/150 +f 625/1161/145 624/1454/145 633/1162/145 +f 634/1163/151 850/1455/151 632/1160/151 +f 641/1170/142 852/1456/142 853/1457/142 +f 853/1457/142 854/1458/142 641/1170/142 +f 854/1458/142 642/1171/142 641/1170/142 +f 642/1171/142 855/1459/142 643/1172/142 +f 855/1459/142 856/1460/142 643/1172/142 +f 856/1460/142 857/1461/142 643/1172/142 +f 644/1173/149 824/1462/149 645/1174/149 +f 647/1176/143 858/1463/143 648/1177/143 +f 650/1179/143 828/1464/143 651/1180/143 +f 653/1182/149 859/1465/149 654/1183/149 +f 860/1466/152 861/1467/152 862/1468/152 +f 862/1468/152 863/1469/152 656/1185/152 +f 656/1185/152 864/1470/152 657/1186/152 +f 657/1186/152 865/1471/152 658/1187/152 +f 658/1187/152 866/1472/152 867/1473/152 +f 867/1473/152 868/1474/152 658/1187/152 +f 868/1474/152 860/1466/152 658/1187/152 +f 860/1466/152 862/1468/152 658/1187/152 +f 862/1468/152 656/1185/152 658/1187/152 +f 661/1190/153 869/1475/153 870/1476/153 +f 870/1476/153 871/1477/153 659/1188/153 +f 659/1188/153 872/1478/153 660/1189/153 +f 872/1478/153 873/1479/153 660/1189/153 +f 873/1479/153 874/1480/153 660/1189/153 +f 660/1189/153 875/1481/153 661/1190/153 +f 875/1481/153 876/1482/153 661/1190/153 +f 876/1482/153 877/1483/153 661/1190/153 +f 661/1190/153 870/1476/153 659/1188/153 +f 664/1193/153 878/1484/153 879/1485/153 +f 879/1485/153 662/1191/153 664/1193/153 +f 880/1486/153 881/1487/153 667/1196/153 +f 881/1487/153 665/1194/153 667/1196/153 +f 669/1198/149 882/1488/149 670/1199/149 +f 670/1199/149 883/1489/149 884/1490/149 +f 884/1490/149 885/1491/149 670/1199/149 +f 885/1491/149 668/1197/149 670/1199/149 +f 886/1492/143 887/1493/143 673/1202/143 +f 887/1493/143 888/1494/143 673/1202/143 +f 888/1494/143 889/1495/143 673/1202/143 +f 889/1495/143 671/1200/143 673/1202/143 +f 890/1496/145 891/1497/145 674/1203/145 +f 674/1203/145 892/1498/145 655/1204/145 +f 655/1204/145 828/1422/145 675/1205/145 +f 675/1205/145 890/1496/145 674/1203/145 +f 679/1209/149 683/1213/149 680/1210/149 +f 682/1212/142 690/1499/142 677/1207/142 +f 679/1209/145 695/1500/145 684/1214/145 +f 682/1212/143 676/1206/143 686/1216/143 +f 688/1218/142 680/1232/142 676/1206/142 +f 689/1219/149 677/1501/149 690/1220/149 +f 688/1222/150 678/1231/150 692/1223/150 +f 685/1215/145 692/1238/145 686/1216/145 +f 687/1217/145 686/1216/145 689/1225/145 +f 681/1227/142 680/1232/142 693/1228/142 +f 684/1230/154 693/1235/154 688/1222/154 +f 678/1231/155 677/1501/155 689/1219/155 +f 683/1213/144 686/1216/144 676/1233/144 +f 693/1235/143 684/1230/143 695/1236/143 +f 696/1239/144 707/1250/144 697/1240/144 +f 699/1242/156 717/1502/156 700/1243/156 +f 702/1245/144 708/1251/144 699/1242/144 +f 703/1246/150 710/1253/150 704/1247/150 +f 700/1243/157 717/1502/157 696/1239/157 +f 703/1246/143 713/1256/143 706/1249/143 +f 708/1251/149 716/1503/149 709/1252/149 +f 709/1252/142 716/1503/142 711/1254/142 +f 713/1256/142 715/1262/142 714/1257/142 +f 704/1258/143 712/1504/143 711/1259/143 +f 697/1261/149 714/1257/149 715/1262/149 +f 702/1245/144 711/1505/144 716/1264/144 +f 706/1265/144 714/1506/144 697/1240/144 +f 705/1248/150 715/1507/150 713/1266/150 +f 709/1267/150 712/1508/150 704/1247/150 +f 703/1246/145 707/1250/145 696/1239/145 +f 717/1268/145 699/1242/145 710/1253/145 +f 699/1242/145 708/1251/145 710/1253/145 +f 703/1246/145 696/1239/145 717/1268/145 +f 698/1509/142 697/1261/142 705/1263/142 +f 704/1258/142 702/1260/142 701/1510/142 +f 700/1269/142 698/1509/142 705/1263/142 +f 704/1258/142 701/1510/142 700/1269/142 +f 718/1270/158 726/1511/158 719/1271/158 +f 719/1271/144 893/1512/144 721/1273/144 +f 722/1274/159 728/1513/159 723/1275/159 +f 725/1277/143 893/1514/143 719/1278/143 +f 726/1279/143 724/1282/143 727/1280/143 +f 718/1286/149 730/1288/149 729/1285/149 +f 720/1287/149 721/1515/149 730/1288/149 +f 731/1289/158 734/1292/158 732/1290/158 +f 734/1292/144 894/1516/144 735/1293/144 +f 736/1294/159 741/1517/159 737/1295/159 +f 739/1297/143 894/1518/143 734/1298/143 +f 731/1299/143 738/1302/143 740/1300/143 +f 733/1306/149 743/1308/149 742/1305/149 +f 732/1307/149 735/1519/149 743/1308/149 +f 690/1309/144 694/1520/144 695/1310/144 +f 744/1312/149 771/1349/149 745/1313/149 +f 747/1315/149 751/1319/149 748/1316/149 +f 750/1318/149 748/1316/149 751/1319/149 +f 753/1321/149 750/1318/149 752/1320/149 +f 756/1325/149 755/1323/149 754/1326/149 +f 758/1328/149 756/1325/149 757/1327/149 +f 760/1330/149 758/1328/149 759/1329/149 +f 762/1332/149 760/1330/149 761/1333/149 +f 764/1335/149 762/1332/149 763/1336/149 +f 765/1337/149 768/1521/149 766/1338/149 +f 767/1339/149 768/1341/149 769/1342/149 +f 747/1344/149 749/1522/149 746/1345/149 +f 772/1350/143 827/1421/143 773/1351/143 +f 774/1352/143 773/1351/143 778/1356/143 +f 779/1357/143 778/1356/143 780/1358/143 +f 781/1362/143 782/1360/143 783/1363/143 +f 784/1364/143 783/1363/143 785/1365/143 +f 786/1366/143 785/1365/143 787/1367/143 +f 788/1369/143 787/1367/143 789/1370/143 +f 790/1372/143 789/1370/143 791/1373/143 +f 792/1374/143 791/1373/143 793/1375/143 +f 795/1377/143 797/1523/143 796/1380/143 +f 797/1381/143 827/1524/143 772/1382/143 +f 798/1384/149 817/1406/149 799/1385/149 +f 799/1385/149 802/1388/149 801/1387/149 +f 802/1388/149 813/1402/149 803/1389/149 +f 804/1390/143 808/1394/143 805/1391/143 +f 807/1393/143 810/1396/143 805/1391/143 +f 809/1395/143 812/1400/143 810/1396/143 +f 804/1397/160 815/1525/160 811/1398/160 +f 812/1400/150 809/1526/150 803/1401/150 +f 804/1390/143 806/1392/143 814/1403/143 +f 798/1384/149 811/1527/149 816/1405/149 +f 819/1408/142 895/1528/142 896/1529/142 +f 896/1529/142 897/1530/142 819/1408/142 +f 897/1530/142 898/1531/142 820/1409/142 +f 819/1408/142 897/1530/142 820/1409/142 +f 898/1531/142 899/1532/142 820/1409/142 +f 820/1409/142 900/1533/142 832/1534/142 +f 900/1533/142 901/1535/142 832/1534/142 +f 901/1535/142 629/1536/142 832/1534/142 +f 832/1534/142 902/1537/142 818/1407/142 +f 832/1534/142 818/1407/142 820/1409/142 +f 821/1410/142 903/1538/142 822/1411/142 +f 822/1411/142 904/1539/142 647/1412/142 +f 647/1412/142 644/1416/142 905/1540/142 +f 905/1540/142 821/1410/142 647/1412/142 +f 649/1417/142 906/1541/142 824/1414/142 +f 906/1541/142 825/1415/142 824/1414/142 +f 825/1415/142 907/1542/142 908/1543/142 +f 908/1543/142 823/1413/142 825/1415/142 +f 644/1416/142 647/1412/142 649/1417/142 +f 775/1418/143 777/1355/143 826/1419/143 +f 828/1422/145 655/1204/145 654/1423/145 +f 829/1425/145 909/1544/145 830/1426/145 +f 830/1426/145 651/1424/145 654/1423/145 +f 654/1423/145 910/1545/145 911/1546/145 +f 911/1546/145 829/1425/145 654/1423/145 +s 1 +f 587/1547/161 912/1548/162 913/1549/161 +f 597/1550/162 914/1551/163 912/1548/162 +f 593/1552/163 915/1553/164 914/1551/163 +f 591/1554/164 916/1555/165 915/1553/164 +f 588/1556/165 917/1557/166 916/1555/165 +f 590/1558/166 918/1559/167 917/1557/166 +f 598/1560/167 919/1561/168 918/1559/167 +f 585/1562/168 913/1563/161 919/1561/168 +f 594/1111/168 920/1564/161 592/1109/161 +f 592/1109/161 921/1565/162 589/1106/162 +f 589/1106/162 922/1566/163 599/1117/163 +f 599/1117/163 923/1567/164 600/1118/164 +f 595/1112/166 924/1568/165 925/1569/166 +f 595/1112/166 926/1570/167 596/1113/167 +f 596/1113/167 927/1571/168 594/1111/168 +f 600/1118/164 924/1572/165 586/1103/165 +f 900/1573/163 835/1574/162 901/1575/162 +f 902/1576/167 833/1577/166 818/1578/166 +f 820/1579/169 836/1580/163 900/1573/163 +f 629/1581/157 835/1574/162 608/1582/157 +f 832/1583/156 834/1584/167 902/1576/167 +f 818/1578/166 610/1585/170 819/1586/170 +f 899/1587/171 838/1588/155 837/1589/171 +f 831/1428/172 603/1590/173 611/1591/174 +f 603/1590/173 607/1592/145 611/1591/174 +f 622/1593/173 612/1594/145 604/1595/145 +f 928/1596/164 929/1597/163 930/1598/163 +f 931/1599/162 932/1600/161 933/1601/161 +f 934/1602/168 935/1603/167 936/1604/167 +f 937/1605/165 938/1606/166 939/1607/165 +f 937/1605/165 940/1608/164 928/1596/164 +f 930/1598/163 941/1609/162 931/1599/162 +f 933/1610/161 942/1611/168 934/1602/168 +f 936/1604/167 938/1606/166 943/1612/166 +f 624/1613/175 849/1614/175 634/1615/176 +f 847/1616/162 626/1617/161 851/1618/162 +f 845/1619/168 628/1620/167 627/1621/168 +f 843/1622/177 850/1623/178 848/1624/177 +f 624/1613/175 631/1159/149 633/1162/149 +f 623/1625/175 851/1618/162 849/1614/175 +f 846/1626/161 627/1627/168 626/1617/161 +f 844/1628/167 848/1624/177 628/1620/167 +f 944/1629/179 945/1630/180 946/1631/181 +f 636/1632/182 947/1633/183 948/1634/184 +f 949/1635/185 950/1636/186 640/1637/187 +f 638/1638/188 950/1636/186 951/1639/189 +f 636/1632/182 952/1640/190 953/1641/191 +f 954/1642/192 955/1643/193 950/1636/186 +f 951/1639/189 950/1636/186 955/1643/193 +f 956/1644/194 948/1634/184 957/1645/195 +f 947/1633/183 957/1645/195 948/1634/184 +f 958/1646/196 959/1647/197 960/1648/198 +f 959/1647/197 961/1649/199 960/1648/198 +f 962/1650/200 952/1640/190 963/1651/201 +f 963/1651/201 952/1640/190 964/1652/202 +f 963/1651/201 958/1646/196 962/1650/200 +f 952/1640/190 948/1634/184 956/1644/194 +f 956/1644/194 964/1653/202 952/1640/190 +f 960/1648/198 954/1642/192 950/1636/186 +f 954/1642/192 960/1648/198 961/1654/199 +f 963/1655/201 956/1644/194 957/1656/195 +f 959/1657/197 954/1642/192 961/1654/199 +f 965/1658/168 857/1659/167 966/1660/167 +f 967/1661/203 852/1662/162 968/1663/162 +f 966/1660/167 639/1664/204 969/1665/204 +f 970/1666/161 643/1667/168 965/1658/205 +f 970/1668/161 852/1662/162 641/1669/161 +f 971/1670/144 972/1671/157 973/1672/144 +f 974/1673/149 975/1674/155 976/1675/149 +f 977/1676/150 978/1677/154 979/1678/150 +f 980/1679/143 981/1680/156 982/1681/143 +f 983/1682/157 976/1675/149 972/1671/157 +f 984/1683/155 979/1678/150 975/1674/155 +f 985/1684/154 982/1681/143 978/1677/154 +f 986/1685/156 973/1686/144 981/1680/156 +f 820/1579/169 837/1589/171 609/1687/169 +f 896/1688/154 840/1689/206 839/1690/154 +f 897/1691/150 839/1690/154 841/1692/150 +f 898/1693/155 841/1692/150 838/1588/155 +f 819/1586/170 840/1689/206 895/1694/206 +f 625/1695/177 632/1160/143 850/1623/178 +f 987/1696/207 637/1697/203 967/1661/203 +f 969/1665/204 638/1698/208 988/1699/208 +f 635/1700/207 988/1699/208 638/1698/208 +f 853/1701/209 989/1702/210 854/1703/210 +f 946/1631/181 990/1704/211 944/1629/179 +f 854/1703/210 991/1705/144 642/1706/144 +f 642/1706/144 992/1707/212 855/1708/212 +f 852/1709/213 993/1710/209 853/1701/209 +f 855/1708/212 994/1711/214 856/1712/214 +f 856/1712/214 995/1713/215 857/1714/215 +f 996/1715/213 852/1709/213 637/1166/149 +f 640/1169/143 639/1168/143 995/1716/215 +f 945/1630/180 997/1717/191 953/1718/191 +f 945/1719/180 952/1640/190 962/1650/200 +f 960/1648/198 946/1720/181 958/1646/196 +f 958/1646/196 945/1719/180 962/1650/200 +f 908/1721/216 998/1722/150 999/1723/217 +f 823/1724/218 999/1723/217 1000/1725/219 +f 824/1462/220 1000/1725/219 645/1174/220 +f 649/1178/221 1001/1726/222 906/1727/223 +f 906/1727/223 1002/1728/224 825/1729/225 +f 892/1730/226 821/1731/210 905/1732/226 +f 825/1729/225 998/1722/150 907/1733/150 +f 891/1734/144 822/1735/212 903/1736/144 +f 890/1737/212 904/1738/227 822/1735/212 +f 674/1739/210 903/1736/144 821/1731/210 +f 653/1740/228 655/1741/228 892/1730/226 +f 858/1742/229 675/1743/227 650/1744/229 +f 1003/1745/230 829/1746/150 911/1747/216 +f 1004/1748/231 909/1749/225 1005/1750/232 +f 1006/1751/233 911/1747/216 910/1752/218 +f 1005/1750/232 829/1746/150 1007/1753/150 +f 859/1465/220 910/1752/218 654/1183/220 +f 652/1181/221 830/1754/223 1004/1748/231 +f 863/1755/234 876/1756/235 656/1757/236 +f 656/1757/236 875/1758/237 864/1759/238 +f 860/1760/239 871/1761/240 870/1762/241 +f 861/1763/242 870/1764/241 869/1765/243 +f 862/1766/144 869/1767/243 661/1768/144 +f 862/1766/144 877/1769/244 863/1755/234 +f 1008/1770/245 879/1771/149 1009/1772/149 +f 1010/1773/246 664/1774/247 1011/1775/247 +f 663/1776/248 1008/1770/245 1012/1777/248 +f 1009/1772/149 878/1778/246 1010/1773/246 +f 1013/1779/249 880/1780/250 1014/1781/250 +f 667/1782/251 1015/1783/252 1016/1784/251 +f 1017/1785/143 881/1786/249 1013/1779/249 +f 666/1787/252 1017/1785/143 1015/1783/252 +f 669/1198/253 1018/1788/254 1019/1789/253 +f 1020/1790/255 670/1791/256 882/1488/255 +f 1021/1792/257 883/1793/258 670/1791/256 +f 1022/1794/258 884/1795/259 883/1793/258 +f 1023/1796/260 884/1797/259 1024/1798/259 +f 668/1799/261 1023/1796/260 1018/1788/254 +f 1025/1800/262 673/1801/263 1026/1802/264 +f 887/1493/265 1027/1803/266 888/1804/267 +f 888/1804/267 1028/1805/268 889/1806/268 +f 1028/1805/268 671/1807/269 889/1806/268 +f 1029/1808/270 671/1809/269 1030/1810/269 +f 673/1801/263 1029/1808/270 1026/1802/264 +f 1031/1811/271 1032/1812/164 1033/1813/165 +f 1034/1814/272 1035/1815/273 1036/1816/274 +f 1037/1817/275 1038/1818/276 1039/1819/277 +f 1040/1820/278 1041/1821/279 1042/1822/280 +f 1043/1823/271 1044/1824/281 1037/1817/275 +f 1045/1825/282 1046/1826/283 1041/1821/279 +f 1040/1827/278 1047/1828/284 1043/1823/271 +f 1034/1829/272 1048/1830/285 1049/1831/286 +f 1049/1831/286 1046/1826/283 1050/1832/287 +f 1051/1833/288 1052/1834/289 1053/1835/290 +f 1054/1836/291 1055/1837/292 1056/1838/293 +f 1057/1839/294 1058/1840/295 1052/1834/289 +f 1059/1841/296 1060/1842/297 1054/1836/291 +f 1056/1838/293 1061/1843/284 1031/1811/271 +f 1062/1844/298 1039/1819/299 1038/1818/300 +f 1063/1845/301 1064/1846/302 1035/1815/273 +f 1051/1833/288 1065/1847/303 1066/1848/304 +f 1067/1849/305 1066/1848/304 1065/1847/303 +f 1034/1814/272 1068/1850/306 1063/1845/301 +f 1069/1851/307 1054/1836/291 1056/1838/293 +f 1070/1852/308 1045/1825/282 1040/1820/278 +f 1054/1836/291 1071/1853/309 1059/1841/296 +f 1072/1854/310 1050/1832/287 1045/1825/282 +f 1059/1841/296 1073/1855/311 1039/1819/299 +f 1049/1831/286 1074/1856/312 1034/1829/272 +f 1075/1857/313 1065/1847/303 1053/1835/290 +f 1076/1858/314 1067/1849/305 1065/1847/303 +f 1077/1859/315 1049/1831/286 1050/1832/287 +f 1073/1855/316 1037/1817/275 1039/1819/277 +f 1078/1860/317 1053/1835/290 1052/1834/289 +f 1079/1861/318 1043/1823/271 1037/1817/275 +f 1080/1862/319 1052/1834/289 1058/1840/295 +f 1081/1863/320 1031/1811/271 1033/1813/165 +f 1082/1864/321 1040/1827/278 1043/1823/271 +f 1063/1845/301 1080/1862/319 1058/1840/295 +f 1083/1865/322 1056/1838/293 1031/1811/271 +f 1084/1866/162 1085/1867/149 1086/1868/323 +f 1087/1869/324 1086/1870/323 1066/1848/304 +f 1066/1848/304 1088/1871/325 1051/1833/288 +f 1051/1833/288 1089/1872/326 1057/1839/294 +f 1057/1839/294 1090/1873/327 1064/1846/302 +f 1090/1873/327 1035/1815/273 1064/1846/302 +f 1036/1816/274 1091/1874/328 1092/1875/329 +f 1048/1830/285 1092/1876/329 1093/1877/330 +f 1048/1830/285 1094/1878/331 1046/1826/283 +f 1046/1826/283 1095/1879/332 1041/1821/279 +f 1041/1821/279 1096/1880/333 1042/1822/280 +f 1042/1881/280 1097/1882/334 1047/1828/284 +f 1047/1828/284 1098/1883/335 1044/1824/281 +f 1044/1824/281 1099/1884/336 1038/1818/276 +f 1062/1844/298 1099/1884/337 1100/1885/338 +f 1100/1885/338 1060/1842/297 1062/1844/298 +f 1060/1842/297 1101/1886/339 1055/1837/292 +f 1055/1837/292 1085/1887/340 1061/1843/284 +f 1061/1843/284 1102/1888/341 1032/1812/164 +f 1103/1889/167 1083/1890/143 1081/1891/143 +f 1069/1892/143 1076/1893/314 1075/1894/313 +f 1104/1895/143 1075/1894/313 1078/1896/317 +f 1071/1897/143 1104/1895/143 1078/1896/317 +f 1080/1898/319 1079/1899/143 1078/1896/317 +f 1079/1899/143 1071/1897/143 1078/1896/317 +f 1080/1898/319 1082/1900/143 1079/1899/143 +f 1082/1900/143 1074/1901/312 1070/1902/308 +f 1072/1903/310 1070/1902/308 1077/1904/315 +f 1105/1905/342 1077/1904/315 1074/1901/312 +f 1074/1901/312 1077/1904/315 1070/1902/308 +f 1086/1868/323 1101/1906/149 1088/1907/325 +f 1106/1908/149 1088/1907/325 1101/1906/149 +f 1100/1909/149 1089/1910/326 1106/1908/149 +f 1098/1911/149 1100/1909/149 1099/1912/149 +f 1089/1910/326 1098/1911/149 1090/1913/327 +f 1097/1914/149 1090/1913/327 1098/1911/149 +f 1092/1915/329 1097/1914/149 1096/1916/333 +f 1095/1917/332 1094/1918/331 1096/1916/333 +f 1093/1919/330 1092/1915/329 1094/1918/331 +f 1092/1915/329 1096/1916/333 1094/1918/331 +f 1107/1920/343 1108/1921/149 1109/1922/149 +f 1110/1923/344 1111/1924/143 1112/1925/143 +f 1113/1926/345 1114/1927/346 1115/1928/144 +f 1115/1929/144 1116/1930/347 1117/1931/348 +f 1118/1932/349 1108/1921/350 1119/1933/351 +f 1117/1931/348 1110/1923/352 1112/1925/353 +f 1120/1934/354 1118/1932/349 1119/1933/351 +f 1118/1932/349 1121/1935/355 1114/1936/346 +f 1122/1937/356 1114/1938/346 1121/1935/355 +f 1122/1937/356 1120/1934/354 1123/1939/357 +f 1122/1937/356 1124/1940/358 1114/1941/346 +f 1125/1942/359 1122/1937/356 1123/1939/357 +f 1116/1930/347 1125/1942/359 1110/1923/352 +f 1114/1943/346 1124/1940/358 1116/1930/347 +f 1110/1923/344 1126/1944/360 1127/1945/344 +f 1126/1944/360 1123/1939/145 1128/1946/145 +f 1123/1939/145 1129/1947/361 1128/1946/145 +f 1129/1947/361 1119/1933/343 1107/1920/343 +f 728/1513/144 727/1948/362 723/1275/144 +f 730/1949/363 893/1512/364 725/1950/363 +f 729/1951/362 725/1950/363 727/1948/362 +f 741/1517/144 740/1952/362 737/1295/144 +f 743/1953/363 894/1516/364 739/1954/363 +f 743/1953/363 740/1952/362 742/1955/362 +f 1130/1956/365 1131/1957/142 1132/1958/142 +f 1133/1959/150 1134/1960/366 1135/1961/366 +f 1132/1958/142 1136/1962/367 1137/1963/367 +f 1138/1964/368 1139/1965/145 1140/1966/368 +f 1135/1961/366 1139/1965/145 1141/1967/145 +f 1137/1963/367 1142/1968/150 1133/1959/150 +f 691/1969/369 695/1970/369 1138/1964/368 +f 694/1520/370 690/1309/371 1143/1971/365 +f 759/1972/372 788/1973/373 761/1974/373 +f 760/1330/374 785/1365/375 758/1328/375 +f 788/1973/373 763/1975/376 761/1974/373 +f 790/1976/376 765/1977/377 763/1975/376 +f 789/1370/378 760/1330/374 762/1332/378 +f 765/1977/377 794/1378/379 768/1341/379 +f 794/1378/379 769/1342/380 768/1341/379 +f 764/1335/381 789/1370/378 762/1332/378 +f 750/1318/382 773/1351/383 748/1316/383 +f 793/1375/384 764/1335/381 766/1338/384 +f 780/1358/385 750/1318/382 753/1321/385 +f 769/1346/380 772/1382/386 747/1344/386 +f 782/1360/387 753/1321/385 755/1323/387 +f 747/1344/386 774/1978/142 751/1979/142 +f 748/1316/383 827/1421/388 749/1317/388 +f 751/1979/142 779/1980/389 752/1981/389 +f 749/1317/388 826/1419/150 744/1312/150 +f 783/1363/390 755/1323/387 756/1325/390 +f 779/1980/389 754/1982/391 752/1981/389 +f 744/1312/150 777/1355/392 771/1349/392 +f 781/1983/391 757/1984/393 754/1982/391 +f 777/1355/392 770/1347/394 771/1349/392 +f 758/1328/375 783/1363/390 756/1325/390 +f 784/1985/393 759/1972/372 757/1984/393 +f 806/1392/395 816/1405/396 814/1403/396 +f 808/1986/397 798/1399/398 800/1987/397 +f 810/1396/399 813/1402/400 802/1388/399 +f 799/1385/401 810/1396/399 802/1388/399 +f 806/1392/395 799/1385/401 817/1406/395 +f 809/1526/402 801/1988/403 803/1401/402 +f 807/1989/403 800/1987/397 801/1988/403 +f 587/1547/161 597/1550/162 912/1548/162 +f 597/1550/162 593/1552/163 914/1551/163 +f 593/1552/163 591/1554/164 915/1553/164 +f 591/1554/164 588/1556/165 916/1555/165 +f 588/1556/165 590/1558/166 917/1557/166 +f 590/1558/166 598/1560/167 918/1559/167 +f 598/1560/167 585/1562/168 919/1561/168 +f 585/1562/168 587/1990/161 913/1563/161 +f 594/1111/168 927/1571/168 920/1564/161 +f 592/1109/161 920/1564/161 921/1565/162 +f 589/1106/162 921/1565/162 922/1566/163 +f 599/1117/163 922/1566/163 923/1567/164 +f 595/1112/166 586/1115/165 924/1568/165 +f 595/1112/166 925/1569/166 926/1570/167 +f 596/1113/167 926/1570/167 927/1571/168 +f 600/1118/164 923/1567/164 924/1572/165 +f 900/1573/163 836/1580/163 835/1574/162 +f 902/1576/167 834/1584/167 833/1577/166 +f 820/1579/169 609/1687/169 836/1580/163 +f 629/1581/157 901/1575/162 835/1574/162 +f 832/1583/156 831/1991/156 834/1584/167 +f 818/1578/166 833/1577/166 610/1585/170 +f 899/1587/171 898/1693/155 838/1588/155 +f 622/1593/173 608/1992/172 611/1591/174 +f 608/1992/172 831/1428/172 611/1591/174 +f 603/1590/173 602/1993/145 607/1592/145 +f 622/1593/173 611/1591/174 612/1594/145 +f 928/1596/164 940/1608/164 929/1597/163 +f 931/1599/162 941/1609/162 932/1600/161 +f 934/1602/168 942/1611/168 935/1603/167 +f 937/1605/165 943/1612/166 938/1606/166 +f 937/1605/165 939/1607/165 940/1608/164 +f 930/1598/163 929/1597/163 941/1609/162 +f 933/1610/161 932/1994/161 942/1611/168 +f 936/1604/167 935/1603/167 938/1606/166 +f 624/1613/175 623/1625/175 849/1614/175 +f 847/1616/162 846/1626/161 626/1617/161 +f 845/1619/168 844/1628/167 628/1620/167 +f 843/1622/177 625/1695/177 850/1623/178 +f 624/1613/175 634/1615/176 631/1159/149 +f 623/1625/175 847/1616/162 851/1618/162 +f 846/1626/161 845/1995/168 627/1627/168 +f 844/1628/167 843/1622/177 848/1624/177 +f 944/1629/179 1144/1996/180 945/1630/180 +f 636/1632/182 635/1997/404 947/1633/183 +f 949/1635/185 960/1648/198 950/1636/186 +f 638/1638/188 640/1637/405 950/1636/186 +f 636/1632/182 948/1634/184 952/1640/190 +f 963/1651/201 959/1647/197 958/1646/196 +f 963/1655/201 964/1653/202 956/1644/194 +f 959/1657/197 955/1998/193 954/1642/192 +f 965/1658/205 643/1667/168 857/1659/167 +f 967/1661/203 637/1697/203 852/1662/162 +f 966/1660/167 857/1659/167 639/1664/204 +f 970/1666/161 641/1999/161 643/1667/168 +f 970/1668/161 968/1663/162 852/1662/162 +f 971/1670/144 983/1682/157 972/1671/157 +f 974/1673/149 984/1683/155 975/1674/155 +f 977/1676/150 985/1684/154 978/1677/154 +f 980/1679/143 986/1685/156 981/1680/156 +f 983/1682/157 974/1673/149 976/1675/149 +f 984/1683/155 977/1676/150 979/1678/150 +f 985/1684/154 980/1679/143 982/1681/143 +f 986/1685/156 971/2000/144 973/1686/144 +f 820/1579/169 899/1587/171 837/1589/171 +f 896/1688/154 895/1694/206 840/1689/206 +f 897/1691/150 896/1688/154 839/1690/154 +f 898/1693/155 897/1691/150 841/1692/150 +f 819/1586/170 610/1585/170 840/1689/206 +f 625/1695/177 630/1158/143 632/1160/143 +f 987/1696/207 635/1700/207 637/1697/203 +f 969/1665/204 639/1664/204 638/1698/208 +f 635/1700/207 987/1696/207 988/1699/208 +f 853/1701/209 993/1710/209 989/1702/210 +f 946/1631/181 949/2001/185 990/1704/211 +f 854/1703/210 989/1702/210 991/1705/144 +f 642/1706/144 991/1705/144 992/1707/212 +f 852/1709/213 996/1715/213 993/1710/209 +f 855/1708/212 992/1707/212 994/1711/214 +f 856/1712/214 994/1711/214 995/1713/215 +f 637/1166/149 636/1165/149 996/1715/213 +f 636/1165/149 953/1718/191 997/1717/191 +f 996/1715/213 636/1165/149 997/1717/191 +f 990/1704/211 949/2001/185 640/1169/143 +f 639/1168/143 857/2002/215 995/1716/215 +f 990/1704/211 640/1169/143 995/1716/215 +f 945/1630/180 1144/1996/180 997/1717/191 +f 945/1719/180 953/1641/191 952/1640/190 +f 960/1648/198 949/1635/185 946/1720/181 +f 958/1646/196 946/1720/181 945/1719/180 +f 908/1721/216 907/1733/150 998/1722/150 +f 823/1724/218 908/1721/216 999/1723/217 +f 824/1462/220 823/1724/218 1000/1725/219 +f 649/1178/221 648/1177/221 1001/1726/222 +f 906/1727/223 1001/1726/222 1002/1728/224 +f 892/1730/226 674/1739/210 821/1731/210 +f 825/1729/225 1002/1728/224 998/1722/150 +f 891/1734/144 890/1737/212 822/1735/212 +f 890/1737/212 675/1743/227 904/1738/227 +f 674/1739/210 891/1734/144 903/1736/144 +f 644/1173/228 646/1175/228 905/1732/226 +f 646/1175/228 653/1740/228 892/1730/226 +f 905/1732/226 646/1175/228 892/1730/226 +f 858/1742/229 647/2003/229 904/1738/227 +f 904/1738/227 675/1743/227 858/1742/229 +f 675/1743/227 828/2004/229 650/1744/229 +f 1003/1745/230 1007/1753/150 829/1746/150 +f 1004/1748/231 830/1754/223 909/1749/225 +f 1006/1751/233 1003/1745/230 911/1747/216 +f 1005/1750/232 909/1749/225 829/1746/150 +f 859/1465/220 1006/1751/233 910/1752/218 +f 652/1181/221 651/1180/221 830/1754/223 +f 863/1755/234 877/2005/244 876/1756/235 +f 656/1757/236 876/2006/235 875/1758/237 +f 860/1760/239 868/2007/406 871/1761/240 +f 861/1763/242 860/1760/239 870/1764/241 +f 862/1766/144 861/1763/242 869/1767/243 +f 862/1766/144 661/2008/144 877/1769/244 +f 1008/1770/245 662/2009/245 879/1771/149 +f 1010/1773/246 878/1778/246 664/1774/247 +f 663/1776/248 662/2009/245 1008/1770/245 +f 1009/1772/149 879/1771/149 878/1778/246 +f 1013/1779/249 881/1786/249 880/1780/250 +f 667/1782/251 666/1787/252 1015/1783/252 +f 1017/1785/143 665/2010/143 881/1786/249 +f 666/1787/252 665/2010/143 1017/1785/143 +f 669/1198/253 668/1799/261 1018/1788/254 +f 1020/1790/255 1021/1792/257 670/1791/256 +f 1021/1792/257 1022/1794/258 883/1793/258 +f 1022/1794/258 1024/2011/259 884/1795/259 +f 1023/1796/260 885/2012/260 884/1797/259 +f 668/1799/261 885/2012/260 1023/1796/260 +f 1025/1800/262 886/1492/262 673/1801/263 +f 887/1493/265 1145/2013/265 1027/1803/266 +f 888/1804/267 1027/1803/266 1028/1805/268 +f 1028/1805/268 1030/2014/269 671/1807/269 +f 1029/1808/270 672/2015/270 671/1809/269 +f 673/1801/263 672/2015/270 1029/1808/270 +f 1031/1811/271 1061/1843/284 1032/1812/164 +f 1034/1814/272 1063/1845/301 1035/1815/273 +f 1037/1817/275 1044/1824/281 1038/1818/276 +f 1040/1820/278 1045/1825/282 1041/1821/279 +f 1043/1823/271 1047/1828/284 1044/1824/281 +f 1045/1825/282 1050/1832/287 1046/1826/283 +f 1040/1827/278 1042/1881/280 1047/1828/284 +f 1034/1829/272 1036/2016/274 1048/1830/285 +f 1049/1831/286 1048/1830/285 1046/1826/283 +f 1051/1833/288 1057/1839/294 1052/1834/289 +f 1054/1836/291 1060/1842/297 1055/1837/292 +f 1057/1839/294 1064/1846/302 1058/1840/295 +f 1059/1841/296 1062/1844/298 1060/1842/297 +f 1056/1838/293 1055/1837/292 1061/1843/284 +f 1062/1844/298 1059/1841/296 1039/1819/299 +f 1063/1845/301 1058/1840/295 1064/1846/302 +f 1051/1833/288 1053/1835/290 1065/1847/303 +f 1067/1849/305 1087/1869/324 1066/1848/304 +f 1034/1814/272 1074/2017/312 1068/1850/306 +f 1069/1851/307 1104/2018/407 1054/1836/291 +f 1070/1852/308 1072/1854/310 1045/1825/282 +f 1054/1836/291 1104/2018/407 1071/1853/309 +f 1072/1854/310 1077/1859/315 1050/1832/287 +f 1059/1841/296 1071/1853/309 1073/1855/311 +f 1049/1831/286 1105/2019/342 1074/1856/312 +f 1075/1857/313 1076/1858/314 1065/1847/303 +f 1076/1858/314 1103/2020/167 1067/1849/305 +f 1077/1859/315 1105/2019/342 1049/1831/286 +f 1073/1855/316 1079/1861/318 1037/1817/275 +f 1078/1860/317 1075/1857/313 1053/1835/290 +f 1079/1861/318 1082/1864/321 1043/1823/271 +f 1080/1862/319 1078/1860/317 1052/1834/289 +f 1081/1863/320 1083/1865/322 1031/1811/271 +f 1082/1864/321 1070/2021/308 1040/1827/278 +f 1063/1845/301 1068/1850/306 1080/1862/319 +f 1083/1865/322 1069/1851/307 1056/1838/293 +f 1084/1866/162 1102/2022/149 1085/1867/149 +f 1087/1869/324 1084/2023/162 1086/1870/323 +f 1066/1848/304 1086/1870/323 1088/1871/325 +f 1051/1833/288 1088/1871/325 1089/1872/326 +f 1057/1839/294 1089/1872/326 1090/1873/327 +f 1090/1873/327 1091/1874/328 1035/1815/273 +f 1036/1816/274 1035/1815/273 1091/1874/328 +f 1048/1830/285 1036/2016/274 1092/1876/329 +f 1048/1830/285 1093/1877/330 1094/1878/331 +f 1046/1826/283 1094/1878/331 1095/1879/332 +f 1041/1821/279 1095/1879/332 1096/1880/333 +f 1042/1881/280 1096/2024/333 1097/1882/334 +f 1047/1828/284 1097/1882/334 1098/1883/335 +f 1044/1824/281 1098/1883/335 1099/1884/336 +f 1062/1844/298 1038/1818/300 1099/1884/337 +f 1100/1885/338 1106/2025/408 1060/1842/297 +f 1060/1842/297 1106/2025/408 1101/1886/339 +f 1055/1837/292 1101/1886/339 1085/1887/340 +f 1061/1843/284 1085/1887/340 1102/1888/341 +f 1103/1889/167 1076/1893/314 1083/1890/143 +f 1069/1892/143 1083/1890/143 1076/1893/314 +f 1104/1895/143 1069/1892/143 1075/1894/313 +f 1079/1899/143 1073/2026/143 1071/1897/143 +f 1080/1898/319 1068/2027/306 1082/1900/143 +f 1082/1900/143 1068/2027/306 1074/1901/312 +f 1086/1868/323 1085/1867/149 1101/1906/149 +f 1106/1908/149 1089/1910/326 1088/1907/325 +f 1098/1911/149 1089/1910/326 1100/1909/149 +f 1097/1914/149 1091/2028/328 1090/1913/327 +f 1092/1915/329 1091/2028/328 1097/1914/149 +f 1107/1920/343 1119/1933/343 1108/1921/149 +f 1110/1923/344 1127/1945/344 1111/1924/143 +f 1113/1926/345 1118/1932/349 1114/1927/346 +f 1115/1929/144 1114/2029/346 1116/1930/347 +f 1118/1932/349 1113/1926/345 1108/1921/350 +f 1117/1931/348 1116/1930/347 1110/1923/352 +f 1120/1934/354 1121/1935/355 1118/1932/349 +f 1122/1937/356 1121/1935/355 1120/1934/354 +f 1125/1942/359 1124/1940/358 1122/1937/356 +f 1116/1930/347 1124/1940/358 1125/1942/359 +f 1110/1923/344 1125/1942/360 1126/1944/360 +f 1126/1944/360 1125/1942/360 1123/1939/145 +f 1123/1939/145 1120/1934/361 1129/1947/361 +f 1129/1947/361 1120/1934/361 1119/1933/343 +f 728/1513/144 729/1951/362 727/1948/362 +f 730/1949/363 721/1273/364 893/1512/364 +f 729/1951/362 730/1949/363 725/1950/363 +f 741/1517/144 742/1955/362 740/1952/362 +f 743/1953/363 735/1293/364 894/1516/364 +f 743/1953/363 739/1954/363 740/1952/362 +f 1130/1956/365 1143/1971/365 1131/1957/142 +f 1133/1959/150 1142/1968/150 1134/1960/366 +f 1132/1958/142 1131/1957/142 1136/1962/367 +f 1138/1964/368 1141/1967/145 1139/1965/145 +f 1135/1961/366 1134/1960/366 1139/1965/145 +f 1137/1963/367 1136/1962/367 1142/1968/150 +f 695/1970/369 679/2030/369 1138/1964/368 +f 1138/1964/368 1140/1966/368 691/1969/369 +f 1140/1966/368 687/2031/369 691/1969/369 +f 690/1309/371 682/2032/370 1143/1971/365 +f 1143/1971/365 1130/1956/365 694/1520/370 +f 1130/1956/365 681/2033/370 694/1520/370 +f 759/1972/372 786/2034/372 788/1973/373 +f 760/1330/374 787/1367/374 785/1365/375 +f 788/1973/373 790/1976/376 763/1975/376 +f 790/1976/376 792/2035/377 765/1977/377 +f 789/1370/378 787/1367/374 760/1330/374 +f 765/1977/377 792/2035/377 794/1378/379 +f 794/1378/379 796/1380/380 769/1342/380 +f 764/1335/381 791/1373/381 789/1370/378 +f 750/1318/382 778/1356/382 773/1351/383 +f 793/1375/384 791/1373/381 764/1335/381 +f 780/1358/385 778/1356/382 750/1318/382 +f 769/1346/380 796/1383/380 772/1382/386 +f 782/1360/387 780/1358/385 753/1321/385 +f 747/1344/386 772/1382/386 774/1978/142 +f 748/1316/383 773/1351/383 827/1421/388 +f 751/1979/142 774/1978/142 779/1980/389 +f 749/1317/388 827/1421/388 826/1419/150 +f 783/1363/390 782/1360/387 755/1323/387 +f 779/1980/389 781/1983/391 754/1982/391 +f 744/1312/150 826/1419/150 777/1355/392 +f 781/1983/391 784/1985/393 757/1984/393 +f 777/1355/392 776/1354/394 770/1347/394 +f 758/1328/375 785/1365/375 783/1363/390 +f 784/1985/393 786/2034/372 759/1972/372 +f 806/1392/395 817/1406/395 816/1405/396 +f 808/1986/397 804/1397/398 798/1399/398 +f 810/1396/399 812/1400/400 813/1402/400 +f 799/1385/401 805/1391/401 810/1396/399 +f 806/1392/395 805/1391/401 799/1385/401 +f 809/1526/402 807/1989/403 801/1988/403 +f 807/1989/403 808/1986/397 800/1987/397 +l 1111 1109 diff --git a/src/main/resources/assets/hbm/models/weapons/henry.obj b/src/main/resources/assets/hbm/models/weapons/henry.obj new file mode 100644 index 000000000..03ba3df7f --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/henry.obj @@ -0,0 +1,1694 @@ +# Blender v2.79 (sub 0) OBJ File: 'henry.blend' +# www.blender.org +o Sight +v -0.125000 1.250000 -0.218750 +v 0.125000 1.250000 -0.218750 +v -0.125000 1.250000 -0.156250 +v 0.125000 1.250000 -0.156250 +v -0.125000 2.000000 -0.218750 +v 0.125000 2.000000 -0.218750 +v -0.125000 2.000000 -0.156250 +v 0.125000 2.000000 -0.156250 +v -0.062500 1.875000 -0.218750 +v 0.062500 1.875000 -0.218750 +v -0.062500 1.875000 -0.156250 +v 0.062500 1.875000 -0.156250 +v -0.062500 1.250000 -0.218750 +v 0.062500 1.250000 -0.218750 +v -0.062500 1.250000 -0.156250 +v 0.062500 1.250000 -0.156250 +vt 0.017857 0.456522 +vt -0.000000 0.478261 +vt 0.005952 0.456522 +vt 0.017857 0.445652 +vt 0.053571 0.489130 +vt 0.029762 0.478261 +vt 0.053571 0.478261 +vt 0.059524 0.478261 +vt 0.053571 0.347826 +vt 0.059524 0.347826 +vt 0.023810 0.347826 +vt 0.023810 0.478261 +vt 0.035714 0.456522 +vt 0.047619 0.456522 +vt 0.041667 0.456522 +vt 0.047619 0.347826 +vt 0.041667 0.347826 +vt 0.041667 0.456522 +vt 0.029762 0.347826 +vt -0.000000 0.347826 +vt 0.005952 0.445652 +vt 0.029762 0.489130 +vt 0.041667 0.347826 +vt 0.035714 0.347826 +vt 0.017857 0.347826 +vt 0.005952 0.347826 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 12/1/1 7/2/1 11/3/1 +f 11/3/2 10/4/2 12/1/2 +f 7/5/3 6/6/3 5/7/3 +f 7/8/4 1/9/4 3/10/4 +f 4/11/5 6/6/5 8/12/5 +f 5/7/6 10/13/6 9/14/6 +f 11/15/5 13/16/5 9/14/5 +f 10/13/4 16/17/4 12/18/4 +f 12/1/1 4/11/1 8/12/1 +f 2/19/6 10/13/6 6/6/6 +f 3/20/1 11/3/1 7/2/1 +f 9/14/6 1/9/6 5/7/6 +f 12/1/1 8/12/1 7/2/1 +f 11/3/2 9/21/2 10/4/2 +f 7/5/3 8/22/3 6/6/3 +f 7/8/4 5/7/4 1/9/4 +f 4/11/5 2/19/5 6/6/5 +f 5/7/6 6/6/6 10/13/6 +f 11/15/5 15/23/5 13/16/5 +f 10/13/4 14/24/4 16/17/4 +f 12/1/1 16/25/1 4/11/1 +f 2/19/6 14/24/6 10/13/6 +f 3/20/1 15/26/1 11/3/1 +f 9/14/6 13/16/6 1/9/6 +o Bullet +v -0.099437 0.786939 5.875000 +v 0.000000 0.828127 5.875000 +v -0.140625 0.687502 5.875000 +v -0.099437 0.588065 5.875000 +v 0.000000 0.546877 5.875000 +v 0.099437 0.588065 5.875000 +v 0.140625 0.687502 5.875000 +v 0.099437 0.786939 5.875000 +v -0.099437 0.786939 6.375000 +v 0.000000 0.828127 6.375000 +v -0.140625 0.687502 6.375000 +v -0.099437 0.588065 6.375000 +v 0.000000 0.546877 6.375000 +v 0.099437 0.588065 6.375000 +v 0.140625 0.687502 6.375000 +v 0.099437 0.786939 6.375000 +v -0.049718 0.737221 6.625000 +v 0.000000 0.757815 6.625000 +v -0.070312 0.687502 6.625000 +v -0.049718 0.637784 6.625000 +v 0.000000 0.617190 6.625000 +v 0.049718 0.637784 6.625000 +v 0.070312 0.687502 6.625000 +v 0.049718 0.737221 6.625000 +vt 0.023809 0.923983 +vt 0.015419 0.930330 +vt 0.011943 0.945652 +vt 0.015419 0.960974 +vt 0.023809 0.967321 +vt 0.032200 0.960974 +vt 0.035676 0.945652 +vt 0.032200 0.930330 +vt 0.023810 0.880435 +vt -0.000000 0.891304 +vt -0.000000 0.880435 +vt 0.071429 0.815217 +vt 0.023810 0.793478 +vt 0.071429 0.793478 +vt 0.071429 0.771739 +vt 0.023810 0.750000 +vt 0.071429 0.750000 +vt 0.071429 0.902174 +vt 0.071429 0.880435 +vt 0.071429 0.858696 +vt 0.023810 0.836957 +vt 0.071429 0.836957 +vt 0.023810 0.815217 +vt 0.023810 0.771739 +vt 0.071429 0.923913 +vt 0.023810 0.902174 +vt 0.023810 0.858696 +vt 0.011629 0.934783 +vt 0.009966 0.942113 +vt 0.005952 0.945149 +vt -0.000000 0.836957 +vt -0.000000 0.826087 +vt -0.000000 0.815217 +vt -0.000000 0.771739 +vt -0.000000 0.913043 +vt -0.000000 0.902174 +vt -0.000000 0.858696 +vt -0.000000 0.804348 +vt -0.000000 0.793478 +vt -0.000000 0.750000 +vt 0.023810 0.923913 +vt 0.001938 0.942113 +vt 0.000276 0.934783 +vt 0.001938 0.927453 +vt 0.005952 0.924417 +vt 0.009966 0.927453 +vt -0.000000 0.847826 +vt -0.000000 0.782609 +vt -0.000000 0.869565 +vt -0.000000 0.760870 +vn 0.0000 0.0000 -1.0000 +vn -0.9627 -0.0000 0.2707 +vn -0.4833 -0.4833 0.7300 +vn -0.6835 -0.0000 0.7300 +vn 0.7071 0.7071 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.6835 -0.0000 0.7300 +vn 0.4833 0.4833 0.7300 +vn 0.0000 0.6835 0.7300 +vn -0.6807 0.6807 0.2707 +vn 0.0000 0.9627 0.2707 +vn 0.6807 0.6807 0.2707 +vn 0.9627 0.0000 0.2707 +vn 0.4833 -0.4833 0.7300 +vn 0.6807 -0.6807 0.2707 +vn -0.6807 -0.6807 0.2707 +vn 0.0000 -0.6835 0.7300 +vn -0.4833 0.4833 0.7300 +vn 0.0000 -0.9627 0.2707 +s off +f 21/27/7 20/28/7 19/29/7 +f 19/29/7 17/30/7 18/31/7 +f 18/31/7 24/32/7 19/29/7 +f 24/32/7 23/33/7 19/29/7 +f 23/33/7 22/34/7 19/29/7 +f 22/34/7 21/27/7 19/29/7 +s 1 +f 27/35/8 36/36/9 35/37/10 +f 24/38/11 31/39/12 23/40/12 +f 22/41/13 29/42/14 21/43/14 +f 20/44/15 27/35/16 19/45/16 +f 17/46/17 26/47/18 18/48/18 +f 18/48/18 32/49/11 24/38/11 +f 23/40/12 30/50/13 22/41/13 +f 21/51/14 28/52/15 20/44/15 +f 19/45/16 25/53/17 17/46/17 +f 39/54/19 40/55/20 34/56/21 +f 25/53/22 34/57/21 26/47/23 +f 32/49/24 34/58/21 40/59/20 +f 31/39/25 38/60/26 30/50/27 +f 28/52/28 37/61/29 36/62/9 +f 27/35/8 33/63/30 25/53/22 +f 31/39/25 40/64/20 39/65/19 +f 30/50/27 37/66/29 29/42/31 +f 27/35/8 28/52/28 36/36/9 +f 24/38/11 32/49/11 31/39/12 +f 22/41/13 30/50/13 29/42/14 +f 20/44/15 28/52/15 27/35/16 +f 17/46/17 25/53/17 26/47/18 +f 18/48/18 26/47/18 32/49/11 +f 23/40/12 31/39/12 30/50/13 +f 21/51/14 29/67/14 28/52/15 +f 19/45/16 27/35/16 25/53/17 +f 34/56/21 33/68/30 35/69/10 +f 35/69/10 36/70/9 34/56/21 +f 36/70/9 37/71/29 34/56/21 +f 37/71/29 38/72/26 34/56/21 +f 38/72/26 39/54/19 34/56/21 +f 25/53/22 33/73/30 34/57/21 +f 32/49/24 26/47/23 34/58/21 +f 31/39/25 39/74/19 38/60/26 +f 28/52/28 29/67/31 37/61/29 +f 27/35/8 35/75/10 33/63/30 +f 31/39/25 32/49/24 40/64/20 +f 30/50/27 38/76/26 37/66/29 +o Front +v 0.062500 1.187500 6.000000 +v 0.187500 1.062500 6.000000 +v -0.187500 1.062500 6.000000 +v -0.062500 1.187500 6.000000 +v 0.187500 0.937500 6.000000 +v 0.062500 0.812500 6.000000 +v -0.062500 0.812500 6.000000 +v -0.187500 0.937500 6.000000 +v 0.062500 0.812499 8.000000 +v -0.062500 0.812499 8.000000 +v 0.187500 0.937499 8.000000 +v 0.187500 1.062499 8.000000 +v 0.062500 1.187499 8.000000 +v -0.062500 1.187499 8.000000 +v -0.187500 0.937499 8.000000 +v -0.187500 1.062499 8.000000 +v -0.125000 0.937499 8.000000 +v -0.125000 1.062499 8.000000 +v 0.062500 0.874999 8.000000 +v -0.062500 0.874999 8.000000 +v 0.062500 1.124999 8.000000 +v -0.062500 1.124999 8.000000 +v 0.125000 0.937499 8.000000 +v 0.125000 1.062499 8.000000 +v -0.125000 0.937499 7.000000 +v -0.125000 1.062499 7.000000 +v 0.062500 0.874999 7.000000 +v -0.062500 0.874999 7.000000 +v 0.062500 1.124999 7.000000 +v -0.062500 1.124999 7.000000 +v 0.125000 0.937499 7.000000 +v 0.125000 1.062499 7.000000 +v 0.000000 0.875000 5.937500 +v -0.132582 0.820082 5.937500 +v -0.187500 0.687500 5.937500 +v -0.132582 0.554917 5.937500 +v 0.000000 0.500000 5.937500 +v 0.132582 0.554917 5.937500 +v 0.187500 0.687500 5.937500 +v 0.132582 0.820082 5.937500 +v -0.132582 0.820085 7.875000 +v 0.000000 0.875002 7.875000 +v -0.187500 0.687502 7.875000 +v -0.132582 0.554920 7.875000 +v 0.000000 0.500002 7.875000 +v 0.132582 0.554920 7.875000 +v 0.187500 0.687502 7.875000 +v 0.132582 0.820085 7.875000 +v -0.125000 1.062499 7.937500 +v -0.125000 1.312499 7.937500 +v -0.125000 1.062499 7.687500 +v -0.125000 1.312499 7.687500 +v 0.125000 1.062499 7.937500 +v 0.125000 1.312499 7.937500 +v 0.125000 1.062499 7.687500 +v 0.125000 1.312499 7.687500 +v 0.062500 1.124999 7.687500 +v -0.062500 1.124999 7.687500 +v -0.062500 1.124999 7.937500 +v 0.062500 1.124999 7.937500 +vt 0.238095 0.108696 +vt 0.267857 0.076087 +vt 0.285714 0.130435 +vt 0.029762 0.163043 +vt 0.041667 0.130435 +vt 0.047619 0.130435 +vt 0.238095 0.054348 +vt 0.047619 0.021739 +vt 0.238095 0.021739 +vt 0.238095 0.130435 +vt 0.047619 0.108696 +vt 0.238095 0.163043 +vt 0.047619 0.000000 +vt 0.238095 -0.000000 +vt 0.238095 0.217391 +vt 0.047619 0.184783 +vt 0.238095 0.184783 +vt 0.047619 0.163043 +vt 0.238095 0.076087 +vt 0.047619 0.054348 +vt 0.047619 0.076087 +vt 0.000000 0.130435 +vt 0.017857 0.152174 +vt 0.017857 0.163043 +vt 0.041667 0.108696 +vt 0.029762 0.152174 +vt 0.029762 0.086957 +vt 0.029762 0.076087 +vt 0.017857 0.086957 +vt 0.017857 0.076087 +vt 0.005952 0.108696 +vt 0.000000 0.108696 +vt 0.005952 0.130435 +vt 0.113095 0.293478 +vt 0.095238 0.282609 +vt 0.101190 0.250000 +vt 0.149477 0.292260 +vt 0.154684 0.315217 +vt 0.119125 0.315217 +vt 0.154685 0.250000 +vt 0.149477 0.272958 +vt 0.136905 0.282467 +vt 0.851190 0.434783 +vt 0.827381 0.478261 +vt 0.827381 0.434783 +vt 0.851190 0.478261 +vt 0.875000 0.478261 +vt 0.869048 0.510870 +vt 0.898810 0.434783 +vt 0.898810 0.478261 +vt 0.875000 0.434783 +vt 0.857143 0.402174 +vt 0.267857 0.163043 +vt 0.255952 0.163043 +vt 0.255952 0.076087 +vt 0.285714 0.108696 +vt 0.047619 0.217391 +vt 0.113095 0.250000 +vt 0.119048 0.260870 +vt 0.119048 0.282609 +vt 0.101190 0.293478 +vt 0.095238 0.260870 +vt 0.149477 0.338175 +vt 0.136905 0.347684 +vt 0.124333 0.338175 +vt 0.124333 0.292260 +vt 0.136905 0.282750 +vt 0.124333 0.272958 +vt 0.119125 0.250000 +vt 0.124333 0.227043 +vt 0.136905 0.217533 +vt 0.149477 0.227043 +vt 0.857143 0.510870 +vt 0.851190 0.521739 +vt 0.875000 0.521739 +vt 0.869048 0.402174 +vt 0.875000 0.391304 +vt 0.851190 0.391304 +vt -0.000000 0.315217 +vt 0.095238 0.326087 +vt 0.000000 0.326087 +vt -0.000000 0.260870 +vt 0.000000 0.282609 +vt 0.000000 0.228261 +vt 0.095238 0.250000 +vt 0.000000 0.250000 +vt 0.000000 0.217391 +vt 0.095238 0.228261 +vt -0.000000 0.293478 +vt 0.095238 0.315217 +vt 0.095238 0.347826 +vt 0.000000 0.347826 +vt 0.095238 0.293478 +vt 0.339286 0.369565 +vt 0.154762 0.391304 +vt 0.154762 0.369565 +vt 0.339286 0.326087 +vt 0.154762 0.347826 +vt 0.154762 0.326087 +vt 0.339286 0.282609 +vt 0.154762 0.260870 +vt 0.339286 0.260870 +vt 0.339286 0.239130 +vt 0.154762 0.217391 +vt 0.339286 0.217391 +vt 0.339286 0.347826 +vt 0.339286 0.304348 +vt 0.154762 0.304348 +vt 0.154762 0.282609 +vt 0.154762 0.239130 +vt 0.095238 0.217391 +vt 0.339286 0.391304 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +s off +f 41/77/32 45/78/32 47/79/32 +f 56/80/33 62/81/33 54/82/33 +f 45/83/34 49/84/34 46/85/34 +f 44/86/35 53/87/35 41/77/35 +f 43/88/36 54/82/36 44/86/36 +f 46/85/37 50/89/37 47/90/37 +f 47/91/38 55/92/38 48/93/38 +f 48/93/39 56/94/39 43/88/39 +f 42/95/40 51/96/40 45/83/40 +f 41/77/41 52/97/41 42/95/41 +f 50/98/33 57/99/33 55/100/33 +f 54/82/33 61/101/33 53/87/33 +f 55/100/33 58/102/33 56/80/33 +f 53/87/33 64/103/33 52/104/33 +f 52/104/33 63/105/33 51/106/33 +f 51/106/33 59/107/33 49/108/33 +f 49/108/33 60/109/33 50/98/33 +f 71/110/33 69/111/33 66/112/33 +f 76/113/32 75/114/32 79/115/32 +f 87/116/33 88/117/33 82/118/33 +f 90/119/39 91/120/39 89/121/39 +f 92/122/32 96/123/32 97/124/32 +f 96/123/40 93/125/40 95/126/40 +f 94/127/33 90/119/33 99/128/33 +f 92/122/35 94/127/35 96/123/35 +f 47/79/32 48/129/32 43/130/32 +f 43/130/32 44/86/32 41/77/32 +f 41/77/32 42/131/32 45/78/32 +f 45/78/32 46/132/32 47/79/32 +f 47/79/32 43/130/32 41/77/32 +f 56/80/33 58/102/33 62/81/33 +f 45/83/34 51/96/34 49/84/34 +f 44/86/35 54/82/35 53/87/35 +f 43/88/36 56/94/36 54/82/36 +f 46/85/37 49/84/37 50/89/37 +f 47/91/38 50/133/38 55/92/38 +f 48/93/39 55/92/39 56/94/39 +f 42/95/40 52/97/40 51/96/40 +f 41/77/41 53/87/41 52/97/41 +f 50/98/33 60/109/33 57/99/33 +f 54/82/33 62/81/33 61/101/33 +f 55/100/33 57/99/33 58/102/33 +f 53/87/33 61/101/33 64/103/33 +f 52/104/33 64/103/33 63/105/33 +f 51/106/33 63/105/33 59/107/33 +f 49/108/33 59/107/33 60/109/33 +f 66/112/33 65/134/33 68/135/33 +f 68/135/33 67/136/33 71/110/33 +f 71/110/33 72/137/33 69/111/33 +f 69/111/33 70/138/33 66/112/33 +f 66/112/33 68/135/33 71/110/33 +f 75/114/32 74/139/32 73/140/32 +f 73/140/32 80/141/32 75/114/32 +f 80/141/32 79/115/32 75/114/32 +f 79/115/32 78/142/32 77/143/32 +f 77/143/32 76/113/32 79/115/32 +f 82/118/33 81/144/33 83/145/33 +f 83/145/33 84/146/33 82/118/33 +f 84/146/33 85/147/33 82/118/33 +f 85/147/33 86/148/33 82/118/33 +f 86/148/33 87/116/33 82/118/33 +f 90/119/39 92/122/39 91/120/39 +f 98/149/32 91/150/32 92/122/32 +f 96/123/32 95/151/32 97/124/32 +f 97/124/32 98/149/32 92/122/32 +f 96/123/40 94/127/40 93/125/40 +f 100/152/33 93/153/33 94/127/33 +f 90/119/33 89/154/33 99/128/33 +f 99/128/33 100/152/33 94/127/33 +f 92/122/35 90/119/35 94/127/35 +s 1 +f 63/155/42 67/156/43 59/157/43 +f 62/158/44 69/111/45 61/159/45 +f 57/160/46 66/161/47 58/162/47 +f 58/162/47 70/138/44 62/158/44 +f 60/163/48 65/164/46 57/160/46 +f 64/165/49 71/166/42 63/155/42 +f 59/157/43 68/167/48 60/168/48 +f 61/159/45 72/169/49 64/165/49 +f 76/170/38 85/171/37 84/172/38 +f 74/173/36 83/174/39 81/175/36 +f 80/176/41 87/177/40 79/178/40 +f 78/179/34 85/180/37 77/181/37 +f 75/182/39 84/172/38 83/174/39 +f 73/183/35 81/175/36 82/184/35 +f 73/183/35 88/185/41 80/176/41 +f 79/178/40 86/186/34 78/179/34 +f 63/155/42 71/166/42 67/156/43 +f 62/158/44 70/138/44 69/111/45 +f 57/160/46 65/164/46 66/161/47 +f 58/162/47 66/161/47 70/138/44 +f 60/163/48 68/187/48 65/164/46 +f 64/165/49 72/169/49 71/166/42 +f 59/157/43 67/156/43 68/167/48 +f 61/159/45 69/111/45 72/169/49 +f 76/170/38 77/188/37 85/171/37 +f 74/173/36 75/182/39 83/174/39 +f 80/176/41 88/185/41 87/177/40 +f 78/179/34 86/186/34 85/180/37 +f 75/182/39 76/170/38 84/172/38 +f 73/183/35 74/173/36 81/175/36 +f 73/183/35 82/184/35 88/185/41 +f 79/178/40 87/177/40 86/186/34 +o Hammer +v 0.000000 1.250000 -2.625000 +v -0.044194 1.231694 -2.625000 +v -0.062500 1.187500 -2.625000 +v -0.044194 1.143306 -2.625000 +v 0.000000 1.125000 -2.625000 +v 0.044194 1.143306 -2.625000 +v 0.062500 1.187500 -2.625000 +v 0.044194 1.231694 -2.625000 +v -0.044194 1.231694 -2.875000 +v 0.000000 1.250000 -2.875000 +v -0.062500 1.187500 -2.875000 +v -0.044194 1.143306 -2.875000 +v 0.000000 1.125000 -2.875000 +v 0.044194 1.143306 -2.875000 +v 0.062500 1.187500 -2.875000 +v 0.044194 1.231694 -2.875000 +v -0.062500 0.750000 -2.875000 +v 0.062500 0.750000 -2.875000 +v -0.062500 1.375000 -2.875000 +v 0.062500 1.375000 -2.875000 +v -0.062500 1.500000 -3.000000 +v 0.062500 1.500000 -3.000000 +v -0.062500 1.375000 -2.937500 +v 0.062500 1.375000 -2.937500 +v -0.062500 1.250000 -2.937500 +v 0.062500 1.250000 -2.937500 +v -0.062500 1.125000 -3.062500 +v 0.062500 1.125000 -3.062500 +v -0.062500 1.062500 -3.187500 +v 0.062500 1.062500 -3.187500 +v -0.062500 0.937500 -3.312500 +v 0.062500 0.937500 -3.312500 +v -0.062500 0.812500 -3.375000 +v 0.062500 0.812500 -3.375000 +v -0.062500 0.750000 -3.375000 +v 0.062500 0.750000 -3.375000 +vt 0.928571 0.478234 +vt 0.934539 0.489131 +vt 0.928571 0.500027 +vt 0.845238 0.630435 +vt 0.857143 0.608696 +vt 0.839286 0.543478 +vt 0.839286 0.543478 +vt 0.845238 0.630435 +vt 0.839286 0.652174 +vt 0.924352 0.496836 +vt 0.922604 0.489131 +vt 0.924352 0.481426 +vt 0.932791 0.481426 +vt 0.932791 0.496836 +vt 0.839286 0.652174 +vt 0.845238 0.673913 +vt 0.845238 0.652174 +vt 0.886905 0.554348 +vt 0.886905 0.543478 +vt 0.880952 0.576087 +vt 0.869048 0.597826 +vt 0.886905 0.543478 +vt 0.880952 0.576087 +vt 0.886905 0.554348 +vt 0.869048 0.597826 +vt 0.857143 0.608696 +vt 0.845238 0.652174 +vt 0.845238 0.673913 +vt 0.827381 0.673913 +vt 0.827381 0.652174 +vt 0.898810 0.532609 +vt 0.922619 0.521739 +vt 0.922619 0.532609 +vt 0.898810 0.510870 +vt 0.898810 0.521739 +vt 0.898810 0.489130 +vt 0.922619 0.500000 +vt 0.898810 0.500000 +vt 0.898810 0.565217 +vt 0.922619 0.554348 +vt 0.922619 0.565217 +vt 0.922619 0.543478 +vt 0.898810 0.543478 +vt 0.922619 0.510870 +vt 0.898810 0.478261 +vt 0.922619 0.489130 +vt 0.898810 0.554348 +vt 0.827381 0.543478 +vt 0.886905 0.684783 +vt 0.898810 0.663043 +vt 0.898810 0.684783 +vt 0.886905 0.663043 +vt 0.898810 0.641304 +vt 0.886905 0.641304 +vt 0.898810 0.619565 +vt 0.886905 0.619565 +vt 0.898810 0.597826 +vt 0.886905 0.597826 +vt 0.898810 0.576087 +vt 0.886905 0.576087 +vt 0.898810 0.554348 +vt 0.898810 0.543478 +vt 0.839286 0.673913 +vt 0.922619 0.478261 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.7071 0.7071 +vn -0.7071 0.7071 -0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 -0.2298 -0.9732 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.8112 -0.5847 +vn 0.0000 0.5847 -0.8112 +vn 0.0000 0.2298 -0.9732 +vn 0.0000 0.0000 -1.0000 +s off +f 105/189/50 107/190/50 101/191/50 +f 125/192/51 127/193/51 117/194/51 +f 118/195/52 126/196/52 120/197/52 +f 101/191/50 102/198/50 103/199/50 +f 103/199/50 104/200/50 105/189/50 +f 105/189/50 106/201/50 107/190/50 +f 107/190/50 108/202/50 101/191/50 +f 101/191/50 103/199/50 105/189/50 +f 119/203/51 121/204/51 123/205/51 +f 119/203/51 123/205/51 125/192/51 +f 133/206/51 135/207/51 131/208/51 +f 135/207/51 117/194/51 131/208/51 +f 129/209/51 131/208/51 117/194/51 +f 127/193/51 129/209/51 117/194/51 +f 117/194/51 119/203/51 125/192/51 +f 118/195/52 136/210/52 132/211/52 +f 136/210/52 134/212/52 132/211/52 +f 132/211/52 130/213/52 118/195/52 +f 130/213/52 128/214/52 118/195/52 +f 124/215/52 122/216/52 120/197/52 +f 128/214/52 126/196/52 118/195/52 +f 126/196/52 124/215/52 120/197/52 +s 1 +f 120/197/53 121/217/54 119/218/53 +f 102/219/55 110/220/56 109/221/55 +f 108/222/57 110/220/56 101/223/56 +f 106/224/58 115/225/52 107/226/52 +f 105/227/59 112/228/60 113/229/59 +f 102/219/55 111/230/51 103/231/51 +f 107/226/52 116/232/57 108/222/57 +f 105/233/59 114/234/58 106/224/58 +f 103/231/51 112/228/60 104/235/60 +f 118/195/50 119/218/53 117/236/50 +f 122/237/61 123/238/62 121/239/61 +f 124/240/62 125/241/63 123/238/62 +f 126/242/63 127/243/64 125/241/63 +f 128/244/64 129/245/64 127/243/64 +f 130/246/64 131/247/65 129/245/64 +f 132/248/65 133/249/66 131/247/65 +f 134/212/66 135/250/67 133/249/66 +f 120/197/53 122/251/54 121/217/54 +f 102/219/55 101/223/56 110/220/56 +f 108/222/57 116/232/57 110/220/56 +f 106/224/58 114/234/58 115/225/52 +f 105/227/59 104/235/60 112/228/60 +f 102/219/55 109/221/55 111/230/51 +f 107/226/52 115/225/52 116/232/57 +f 105/233/59 113/252/59 114/234/58 +f 103/231/51 111/230/51 112/228/60 +f 118/195/50 120/197/53 119/218/53 +f 122/237/61 124/240/62 123/238/62 +f 124/240/62 126/242/63 125/241/63 +f 126/242/63 128/244/64 127/243/64 +f 128/244/64 130/246/64 129/245/64 +f 130/246/64 132/248/65 131/247/65 +f 132/248/65 134/212/66 133/249/66 +f 134/212/66 136/210/67 135/250/67 +o Lever +v -0.125000 0.198188 -2.345635 +v 0.125000 0.198188 -2.345635 +v -0.125000 -0.036735 -2.260129 +v 0.125000 -0.036735 -2.260129 +v -0.125000 -0.426690 -2.783309 +v 0.125000 -0.426690 -2.783309 +v -0.125000 0.176812 -2.404365 +v 0.125000 0.176812 -2.404365 +v -0.125000 -0.058111 -2.318860 +v 0.125000 -0.058111 -2.318860 +v -0.125000 -0.485421 -2.761932 +v 0.125000 -0.485421 -2.761932 +v 0.125000 -0.357163 -2.409548 +v -0.125000 -0.357163 -2.409548 +v 0.125000 -0.298432 -2.430924 +v -0.125000 -0.298432 -2.430924 +v -0.125000 -0.437486 -3.178446 +v 0.125000 -0.437486 -3.178446 +v -0.125000 -0.496217 -3.157070 +v 0.125000 -0.496217 -3.157070 +v -0.125000 -0.736754 -4.000677 +v 0.125000 -0.736754 -4.000677 +v -0.125000 -0.795484 -3.979300 +v 0.125000 -0.795484 -3.979300 +v -0.125000 -0.720741 -4.139421 +v 0.125000 -0.720741 -4.139421 +v -0.125000 -0.699365 -4.080690 +v 0.125000 -0.699365 -4.080690 +v -0.125000 -0.485818 -4.224926 +v 0.125000 -0.485818 -4.224926 +v -0.125000 -0.464442 -4.166195 +v 0.125000 -0.464442 -4.166195 +v -0.125000 -0.325638 -4.150311 +v 0.125000 -0.325638 -4.150311 +v -0.125000 -0.384369 -4.128934 +v 0.125000 -0.384369 -4.128934 +v -0.125000 -0.026370 -3.328080 +v 0.125000 -0.026370 -3.328080 +v -0.125000 -0.085101 -3.306704 +v 0.125000 -0.085101 -3.306704 +v -0.125000 -0.101079 -3.167866 +v 0.125000 -0.101079 -3.167866 +v -0.125000 -0.122456 -3.226596 +v 0.125000 -0.122456 -3.226596 +v -0.125000 -0.336003 -3.082361 +v 0.125000 -0.336003 -3.082361 +v -0.125000 -0.357379 -3.141091 +v 0.125000 -0.357379 -3.141091 +v -0.125000 -0.277272 -3.103737 +v 0.125000 -0.277272 -3.103737 +v -0.125000 -0.336003 -3.082361 +v 0.125000 -0.336003 -3.082361 +vt 0.827381 0.804348 +vt 0.851190 0.793478 +vt 0.851190 0.804348 +vt 0.851190 0.847826 +vt 0.827381 0.858696 +vt 0.827381 0.847826 +vt 0.886905 0.804348 +vt 0.922619 0.793478 +vt 0.922619 0.804348 +vt 0.886905 0.847826 +vt 0.922619 0.858696 +vt 0.886905 0.858696 +vt 0.880952 0.858696 +vt 0.857143 0.858696 +vt 0.880952 0.793478 +vt 0.857143 0.793478 +vt 0.958333 0.728261 +vt 0.970238 0.739130 +vt 0.952381 0.739130 +vt 0.970238 0.782609 +vt 0.958333 0.793478 +vt 0.952381 0.782609 +vt 0.952381 0.728261 +vt 0.869048 0.739130 +vt 0.869048 0.728261 +vt 0.952381 0.793478 +vt 0.869048 0.782609 +vt 0.863095 0.793478 +vt 0.851190 0.782609 +vt 0.851190 0.739130 +vt 0.863095 0.728261 +vt 0.827381 0.793478 +vt 0.827381 0.782609 +vt 0.827381 0.728261 +vt 0.851190 0.728261 +vt 0.970238 0.782609 +vt 0.958333 0.793478 +vt 0.952381 0.782609 +vt 0.970238 0.739130 +vt 0.958333 0.728261 +vt 0.964286 0.728261 +vt 0.952381 0.739130 +vt 0.869048 0.728261 +vt 0.952381 0.728261 +vt 0.869048 0.793478 +vt 0.869048 0.782609 +vt 0.869048 0.739130 +vt 0.857143 0.728261 +vt 0.863095 0.728261 +vt 0.857143 0.793478 +vt 0.851190 0.782609 +vt 0.851190 0.728261 +vt 0.827381 0.739130 +vt 0.827381 0.728261 +vt 0.851190 0.793478 +vt 0.827381 0.782609 +vt 0.958333 0.804348 +vt 0.958333 0.847826 +vt 0.958333 0.858696 +vt 0.827381 0.793478 +vt 0.851190 0.858696 +vt 0.886905 0.793478 +vt 0.922619 0.847826 +vt 0.964286 0.728261 +vt 0.964286 0.793478 +vt 0.869048 0.793478 +vt 0.857143 0.793478 +vt 0.857143 0.728261 +vt 0.851190 0.793478 +vt 0.827381 0.739130 +vt 0.964286 0.793478 +vt 0.952381 0.793478 +vt 0.851190 0.739130 +vt 0.863095 0.793478 +vt 0.827381 0.793478 +vt 0.958333 0.793478 +vt 0.922619 0.902174 +vt 0.886905 0.902174 +vt 0.851190 0.902174 +vt 0.880952 0.902174 +vt 0.857143 0.902174 +vt 0.952381 0.684783 +vt 0.958333 0.728261 +vt 0.869048 0.684783 +vt 0.863095 0.728261 +vt 0.839286 0.684783 +vt 0.863095 0.684783 +vt 0.958333 0.728261 +vt 0.952381 0.684783 +vt 0.958333 0.684783 +vt 0.869048 0.684783 +vt 0.863095 0.684783 +vt 0.863095 0.728261 +vt 0.839286 0.684783 +vt 0.958333 0.902174 +vt 0.827381 0.902174 +vt 0.958333 0.684783 +vt 0.839286 0.728261 +vt 0.839286 0.728261 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.3420 0.9397 +vn 0.0000 -0.0436 0.9990 +vn 0.0000 -0.7373 0.6756 +vn 0.0000 -0.9990 -0.0436 +vn 0.0000 0.7373 -0.6756 +vn 0.0000 0.9990 0.0436 +vn 0.0000 0.0436 -0.9990 +vn 0.0000 -0.3420 -0.9397 +vn 0.0000 -0.9990 -0.0438 +vn 0.0000 0.9990 0.0440 +vn 0.0000 -0.6754 -0.7374 +vn 0.0000 0.0434 -0.9991 +vn 0.0000 0.6753 0.7375 +vn 0.0000 -0.0432 0.9991 +vn 0.0000 -0.7370 0.6759 +vn 0.0000 0.7371 -0.6757 +vn 0.0000 -0.6756 -0.7373 +vn 0.0000 0.6756 0.7373 +vn 0.0000 0.9063 0.4226 +vn 0.0000 -0.9063 -0.4226 +s off +f 137/253/68 145/254/68 139/255/68 +f 140/256/69 144/257/69 138/258/69 +f 150/259/68 141/260/68 147/261/68 +f 149/262/69 142/263/69 151/264/69 +f 140/256/69 151/265/69 146/266/69 +f 152/267/68 139/255/68 145/268/68 +f 154/269/69 182/270/69 156/271/69 +f 181/272/68 153/273/68 155/274/68 +f 154/275/69 160/276/69 158/277/69 +f 153/278/68 159/279/68 155/274/68 +f 157/280/68 161/281/68 159/279/68 +f 162/282/69 158/283/69 160/276/69 +f 161/281/68 167/284/68 165/285/68 +f 162/282/69 168/286/69 164/287/69 +f 165/288/68 171/289/68 169/290/68 +f 166/291/69 172/292/69 168/293/69 +f 170/294/69 176/295/69 172/296/69 +f 169/290/68 175/297/68 173/298/68 +f 174/299/69 180/300/69 176/301/69 +f 173/298/68 179/302/68 177/303/68 +f 180/304/69 182/305/69 184/306/69 +f 179/307/68 181/308/68 177/303/68 +f 141/260/68 187/309/68 147/261/68 +f 142/263/69 188/310/69 186/311/69 +f 137/253/68 143/312/68 145/254/68 +f 140/256/69 146/313/69 144/257/69 +f 150/259/68 152/314/68 141/260/68 +f 149/262/69 148/315/69 142/263/69 +f 140/256/69 149/262/69 151/265/69 +f 152/267/68 150/259/68 139/255/68 +f 154/269/69 184/316/69 182/270/69 +f 181/272/68 183/317/68 153/273/68 +f 154/275/69 156/271/69 160/276/69 +f 153/278/68 157/318/68 159/279/68 +f 157/280/68 163/319/68 161/281/68 +f 162/282/69 164/320/69 158/283/69 +f 161/281/68 163/321/68 167/284/68 +f 162/282/69 166/322/69 168/286/69 +f 165/288/68 167/323/68 171/289/68 +f 166/291/69 170/294/69 172/292/69 +f 170/294/69 174/299/69 176/295/69 +f 169/290/68 171/324/68 175/297/68 +f 174/299/69 178/325/69 180/300/69 +f 173/298/68 175/326/68 179/302/68 +f 180/304/69 178/325/69 182/305/69 +f 179/307/68 183/327/68 181/308/68 +f 141/260/68 185/328/68 187/309/68 +f 142/263/69 148/315/69 188/310/69 +s 1 +f 137/253/70 140/256/71 138/258/70 +f 150/259/72 148/315/73 149/262/72 +f 151/264/74 141/329/75 152/330/74 +f 145/331/76 144/257/77 146/313/76 +f 139/255/71 149/262/72 140/256/71 +f 146/266/76 152/332/74 145/333/76 +f 182/270/71 155/274/72 156/271/72 +f 153/334/74 184/335/76 154/275/74 +f 155/274/72 160/276/78 156/271/72 +f 154/275/74 157/336/79 153/334/74 +f 159/279/78 162/282/80 160/276/78 +f 161/281/80 166/322/81 162/282/80 +f 164/337/82 157/336/79 158/277/79 +f 164/337/82 167/338/83 163/339/82 +f 168/340/83 171/341/84 167/342/83 +f 165/288/81 170/294/85 166/291/81 +f 169/290/85 174/299/75 170/294/85 +f 172/296/84 175/343/73 171/341/84 +f 176/295/73 179/344/86 175/343/73 +f 173/298/75 178/325/87 174/299/75 +f 180/345/86 183/346/76 179/344/86 +f 177/303/87 182/305/71 178/325/87 +f 142/263/75 185/347/88 141/329/75 +f 147/261/73 188/310/89 148/315/73 +f 137/253/70 139/255/71 140/256/71 +f 150/259/72 147/261/73 148/315/73 +f 151/264/74 142/263/75 141/329/75 +f 145/331/76 143/348/77 144/257/77 +f 139/255/71 150/259/72 149/262/72 +f 146/266/76 151/265/74 152/332/74 +f 182/270/71 181/272/71 155/274/72 +f 153/334/74 183/349/76 184/335/76 +f 155/274/72 159/279/78 160/276/78 +f 154/275/74 158/277/79 157/336/79 +f 159/279/78 161/281/80 162/282/80 +f 161/281/80 165/285/81 166/322/81 +f 164/337/82 163/339/82 157/336/79 +f 164/337/82 168/350/83 167/338/83 +f 168/340/83 172/296/84 171/341/84 +f 165/288/81 169/290/85 170/294/85 +f 169/290/85 173/298/75 174/299/75 +f 172/296/84 176/295/73 175/343/73 +f 176/295/73 180/345/86 179/344/86 +f 173/298/75 177/303/87 178/325/87 +f 180/345/86 184/351/76 183/346/76 +f 177/303/87 181/308/71 182/305/71 +f 142/263/75 186/311/88 185/347/88 +f 147/261/73 187/309/89 188/310/89 +o Gun +v -0.187500 0.937500 6.000000 +v -0.062500 0.812500 6.000000 +v 0.062500 0.812500 6.000000 +v 0.187500 0.937500 6.000000 +v -0.062500 1.187500 6.000000 +v -0.187500 1.062500 6.000000 +v 0.187500 1.062500 6.000000 +v 0.062500 1.187500 6.000000 +v 0.062500 1.187500 -0.625000 +v 0.187500 1.062500 -0.625000 +v -0.187500 1.062500 -0.625000 +v -0.062500 1.187500 -0.625000 +v 0.187500 0.937500 -0.625000 +v 0.062500 0.812500 -0.625000 +v -0.062500 0.812500 -0.625000 +v -0.187500 0.937500 -0.625000 +v 0.000000 0.875000 -0.625000 +v -0.132582 0.820082 -0.625000 +v -0.187500 0.687500 -0.625000 +v -0.132582 0.554917 -0.625000 +v 0.000000 0.500000 -0.625000 +v 0.132582 0.554917 -0.625000 +v 0.187500 0.687500 -0.625000 +v 0.132582 0.820082 -0.625000 +v 0.000000 0.875000 5.937500 +v -0.132582 0.820082 5.937500 +v -0.187500 0.687500 5.937500 +v -0.132582 0.554917 5.937500 +v 0.000000 0.500000 5.937500 +v 0.132582 0.554917 5.937500 +v 0.187500 0.687500 5.937500 +v 0.132582 0.820082 5.937500 +v -0.250000 0.312500 -1.000000 +v -0.125000 0.187500 -1.000000 +v 0.125000 0.187500 -1.000000 +v 0.250000 0.312500 -1.000000 +v 0.250000 0.500000 -0.875000 +v 0.125000 0.375000 -0.875000 +v -0.125000 0.375000 -0.875000 +v -0.250000 0.500000 -0.875000 +v -0.250000 0.562500 -0.625000 +v -0.125000 0.437500 -0.625000 +v 0.125000 0.437500 -0.625000 +v 0.250000 0.562500 -0.625000 +v -0.125000 1.250000 -0.625000 +v -0.250000 1.125000 -0.625000 +v 0.250000 1.125000 -0.625000 +v 0.125000 1.250000 -0.625000 +v -0.250000 1.125000 -2.625000 +v -0.125000 1.250000 -2.625000 +v -0.250000 0.312500 -2.625000 +v 0.250000 0.312500 -2.625000 +v 0.125000 1.250000 -2.625000 +v 0.250000 1.125000 -2.625000 +v -0.250000 0.312500 -2.000000 +v -0.125000 0.187500 -2.000000 +v 0.125000 0.187500 -2.000000 +v 0.250000 0.312500 -2.000000 +v -0.250000 0.062500 -2.312500 +v -0.125000 -0.062500 -2.312500 +v 0.125000 -0.062500 -2.312500 +v 0.250000 0.062500 -2.312500 +v -0.125000 0.187500 -2.625000 +v 0.125000 0.187500 -2.625000 +v -0.250000 1.000000 -2.687500 +v -0.125000 1.125000 -2.687500 +v 0.125000 1.125000 -2.687500 +v 0.250000 1.000000 -2.687500 +v -0.250000 0.625000 -3.500000 +v -0.125000 0.750000 -3.500000 +v 0.125000 0.750000 -3.500000 +v 0.250000 0.625000 -3.500000 +v -0.250000 0.312500 -2.875000 +v 0.250000 0.312500 -2.875000 +v -0.125000 0.187500 -2.875000 +v 0.125000 0.187500 -2.875000 +v -0.250000 0.062500 -3.500000 +v 0.250000 0.062500 -3.500000 +v -0.125000 -0.062500 -3.500000 +v 0.125000 -0.062500 -3.500000 +v -0.250000 0.250000 -4.500000 +v -0.125000 0.375000 -4.500000 +v 0.125000 0.375000 -4.500000 +v 0.250000 0.250000 -4.500000 +v -0.250000 -1.625000 -8.000000 +v 0.250000 -1.625000 -8.000000 +v -0.125000 -1.750000 -8.000000 +v 0.125000 -1.750000 -8.000000 +v -0.125000 -0.250000 -8.000000 +v 0.125000 -0.250000 -8.000000 +v -0.250000 -0.375000 -8.000000 +v 0.250000 -0.375000 -8.000000 +v -0.125000 0.875000 -5.000000 +v 0.125000 0.875000 -5.000000 +v -0.250000 0.750000 -5.000000 +v 0.250000 0.750000 -5.000000 +v -0.250000 -1.375000 -7.875000 +v -0.250000 -0.625000 -7.875000 +v 0.250000 -1.375000 -7.875000 +v 0.250000 -0.625000 -7.875000 +v 0.062500 1.250000 -2.625000 +v -0.062500 1.125000 -2.625000 +v -0.062500 1.250000 -2.625000 +v 0.062500 1.125000 -2.687500 +v 0.062500 1.125000 -2.625000 +v -0.062500 1.125000 -2.687500 +v -0.062500 0.187500 -2.750000 +v 0.062500 0.187500 -2.750000 +v -0.062500 0.187500 -2.812500 +v 0.062500 0.187500 -2.812500 +v -0.062500 0.061500 -2.812500 +v 0.062500 0.061500 -2.812500 +v -0.062500 0.061500 -2.875000 +v 0.062500 0.061500 -2.875000 +v -0.062500 -0.063500 -2.812500 +v 0.062500 -0.063500 -2.812500 +v -0.062500 -0.063500 -2.875000 +v 0.062500 -0.063500 -2.875000 +v -0.062500 -0.188500 -2.750000 +v 0.062500 -0.188500 -2.750000 +v -0.125000 1.250000 -0.250000 +v 0.125000 1.250000 -0.250000 +v -0.125000 1.250000 -0.125000 +v 0.125000 1.250000 -0.125000 +v 0.125000 1.125000 -0.250000 +v -0.125000 1.125000 -0.250000 +v 0.125000 1.125000 -0.125000 +v -0.125000 1.125000 -0.125000 +v -0.187500 1.250000 -0.281250 +v 0.187500 1.250000 -0.281250 +v -0.187500 1.183709 -0.253791 +v 0.187500 1.183709 -0.253791 +v -0.187500 1.156250 -0.187500 +v 0.187500 1.156250 -0.187500 +v -0.187500 1.183709 -0.121209 +v 0.187500 1.183709 -0.121209 +v -0.187500 1.250000 -0.093750 +v 0.187500 1.250000 -0.093750 +v -0.187500 1.316291 -0.121209 +v 0.187500 1.316291 -0.121209 +v -0.187500 1.343750 -0.187500 +v 0.187500 1.343750 -0.187500 +v -0.187500 1.316291 -0.253791 +v 0.187500 1.316291 -0.253791 +vt 0.964286 0.130435 +vt 0.333333 0.108696 +vt 0.964286 0.108696 +vt 0.303571 0.076087 +vt 0.315476 0.163043 +vt 0.964286 0.184783 +vt 0.333333 0.163043 +vt 0.964286 0.163043 +vt 0.964286 0.076087 +vt 0.333333 0.054348 +vt 0.964286 0.054348 +vt 0.333333 0.076087 +vt 0.333333 0.217391 +vt 0.333333 0.184783 +vt 0.964286 0.021739 +vt 0.333333 0.000000 +vt 0.964286 0.000000 +vt 0.369715 0.272958 +vt 0.357143 0.282467 +vt 0.357143 0.217533 +vt 0.238095 0.478261 +vt 0.267857 0.521739 +vt 0.208333 0.521739 +vt 0.077381 0.684783 +vt 0.077381 0.728261 +vt 0.065476 0.750000 +vt 0.238095 0.934783 +vt 0.208333 0.891304 +vt 0.267857 0.891304 +vt 0.101190 0.858696 +vt 0.077381 0.750000 +vt 0.291667 0.521739 +vt 0.351190 0.576087 +vt 0.273810 0.641304 +vt 0.351190 0.836957 +vt 0.351190 0.934783 +vt 0.291667 0.891304 +vt 0.267857 0.663043 +vt 0.273810 0.771739 +vt 0.267857 0.750000 +vt 0.077381 0.663043 +vt 0.101190 0.554348 +vt 0.059524 0.663043 +vt 0.071429 0.641304 +vt 0.071429 0.663043 +vt 0.077381 0.641304 +vt 0.071429 0.630435 +vt 0.059524 0.641304 +vt 0.059524 0.630435 +vt 0.053571 0.641304 +vt 0.970238 0.413043 +vt 0.976190 0.413043 +vt 0.976190 0.434783 +vt 0.952381 0.413043 +vt 0.958333 0.413043 +vt 0.958333 0.434783 +vt 0.886905 0.543478 +vt 0.898810 0.521739 +vt 0.898810 0.543478 +vt 0.863095 0.543478 +vt 0.886905 0.521739 +vt 0.851190 0.543478 +vt 0.863095 0.521739 +vt 0.827381 0.543478 +vt 0.851190 0.521739 +vt 0.937166 0.396130 +vt 0.943452 0.391375 +vt 0.943452 0.423842 +vt 0.943453 0.456450 +vt 0.937166 0.451696 +vt 0.949738 0.428738 +vt 0.333333 0.130435 +vt 0.303571 0.163043 +vt 0.285714 0.130435 +vt 0.285714 0.108696 +vt 0.315476 0.076087 +vt 0.964286 0.217391 +vt 0.333333 0.021739 +vt 0.344571 0.272958 +vt 0.339363 0.250000 +vt 0.344571 0.227042 +vt 0.369715 0.227042 +vt 0.374922 0.250000 +vt 0.011905 0.750000 +vt 0.011905 0.663043 +vt -0.000000 0.728261 +vt 0.000000 0.684783 +vt 0.065476 0.663043 +vt 0.113095 0.891304 +vt 0.077381 0.847826 +vt 0.351190 0.478261 +vt 0.113095 0.521739 +vt 0.077381 0.565217 +vt 0.970238 0.456522 +vt 0.970238 0.434783 +vt 0.976190 0.391304 +vt 0.976190 0.456522 +vt 0.958333 0.456522 +vt 0.952381 0.434783 +vt 0.952381 0.456522 +vt 0.952381 0.391304 +vt 0.827381 0.521739 +vt 0.949738 0.396130 +vt 0.952342 0.407609 +vt 0.949738 0.419087 +vt 0.937166 0.419087 +vt 0.934563 0.407609 +vt 0.934563 0.440217 +vt 0.937166 0.428738 +vt 0.943453 0.423984 +vt 0.952342 0.440217 +vt 0.949738 0.451696 +vt 1.000000 0.260870 +vt 0.375000 0.239130 +vt 1.000000 0.239130 +vt 1.000000 0.391304 +vt 0.375000 0.369565 +vt 1.000000 0.369565 +vt 1.000000 0.347826 +vt 0.375000 0.326087 +vt 1.000000 0.326087 +vt 1.000000 0.282609 +vt 0.375000 0.260870 +vt 0.375000 0.217391 +vt 1.000000 0.217391 +vt 0.375000 0.347826 +vt 0.375000 0.304348 +vt 1.000000 0.304348 +vt 0.375000 0.282609 +vt 0.095238 0.413043 +vt 0.113095 0.456522 +vt 0.095238 0.456522 +vt 0.208333 0.391304 +vt 0.113095 0.413043 +vt 0.113095 0.391304 +vt 0.113095 0.478261 +vt 0.095238 0.478261 +vt 0.071429 0.413043 +vt 0.095238 0.391304 +vt 0.071429 0.456522 +vt 0.071429 0.478261 +vt 0.208333 0.456522 +vt 0.267857 0.717391 +vt 0.267857 0.728261 +vt 0.267857 0.413043 +vt 0.238095 0.391304 +vt 0.267857 0.391304 +vt 0.267857 0.684783 +vt 0.279762 0.695652 +vt 0.267857 0.695652 +vt 0.208333 0.413043 +vt 0.238095 0.456522 +vt 0.208333 0.478261 +vt 0.238095 0.413043 +vt 0.267857 0.456522 +vt 0.267857 0.478261 +vt 0.279762 0.728261 +vt 0.279762 0.750000 +vt 0.279762 0.684783 +vt 0.351190 0.684783 +vt 0.351190 0.728261 +vt 0.351190 0.750000 +vt 0.279762 0.663043 +vt 0.291667 0.456522 +vt 0.291667 0.413043 +vt 0.291667 0.478261 +vt 0.351190 0.456522 +vt 0.351190 0.391304 +vt 0.351190 0.413043 +vt 0.351190 0.913043 +vt 0.446429 0.956522 +vt 0.351190 0.956522 +vt 0.351190 0.978261 +vt 0.446429 0.978261 +vt 0.351190 0.891304 +vt 0.446429 0.913043 +vt 0.779762 0.456522 +vt 0.779762 0.391304 +vt 0.779762 0.413043 +vt 0.779762 0.478261 +vt 0.815476 0.456522 +vt 0.791667 0.456522 +vt 0.779762 0.695652 +vt 0.815476 0.717391 +vt 0.791667 0.717391 +vt 0.779762 0.913043 +vt 0.494048 0.891304 +vt 0.779762 0.891304 +vt 0.779762 0.956522 +vt 0.494048 0.978261 +vt 0.494048 0.956522 +vt 0.494048 0.913043 +vt 0.767857 0.652174 +vt 0.446429 0.804348 +vt 0.494048 0.891304 +vt 0.779762 0.478261 +vt 0.351190 0.771739 +vt 0.351190 0.869565 +vt 0.827381 0.521739 +vt 0.779762 0.652174 +vt 0.779762 0.521739 +vt 0.446429 0.804348 +vt 0.351190 0.771739 +vt 0.351190 0.869565 +vt 0.827381 0.478261 +vt 0.767857 0.521739 +vt 0.767857 0.652174 +vt 0.988095 0.434783 +vt 0.988095 0.456522 +vt 0.988095 0.413043 +vt 0.988095 0.391304 +vt 0.958333 0.391304 +vt 0.934524 0.456522 +vt 0.898810 0.467391 +vt 0.898810 0.456522 +vt 0.934524 0.467391 +vt 0.898810 0.478261 +vt 0.934524 0.391304 +vt 0.898810 0.402174 +vt 0.898810 0.391304 +vt 0.934524 0.402174 +vt 0.898810 0.413043 +vt 0.934524 0.413043 +vt 0.898810 0.423913 +vt 0.934524 0.423913 +vt 0.898810 0.434783 +vt 0.934524 0.434783 +vt 0.898810 0.445652 +vt 0.934524 0.445652 +vt 0.827381 0.652174 +vt 0.375000 0.391304 +vt 0.071429 0.391304 +vt 0.279762 0.717391 +vt 0.351190 0.663043 +vt 0.291667 0.391304 +vt 0.446429 0.891304 +vt 0.827381 0.695652 +vt 0.779762 0.978261 +vt 0.779762 0.695652 +vt 0.767857 0.521739 +vt 0.970238 0.391304 +vt 0.934524 0.478261 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.8174 0.5760 +vn 0.0000 -0.5547 0.8321 +vn -0.6912 -0.6912 0.2110 +vn 0.5959 -0.5959 0.5384 +vn 0.4851 -0.4851 0.7276 +vn 0.6523 -0.6523 0.3860 +vn -0.5959 -0.5959 0.5384 +vn -0.4851 -0.4851 0.7276 +vn -0.6963 -0.6963 0.1741 +vn -0.6523 -0.6523 0.3860 +vn 0.6963 -0.6963 0.1741 +vn 0.0000 -0.9701 0.2425 +vn 0.6774 -0.6774 0.2868 +vn 0.0000 -0.9436 0.3310 +vn 0.0000 0.9392 -0.3433 +vn 0.0000 0.8507 -0.5257 +vn -0.6679 0.6679 -0.3282 +vn -0.5953 0.5953 -0.5397 +vn 0.5953 0.5953 -0.5397 +vn -0.6774 -0.6774 -0.2868 +vn -0.6912 -0.6912 -0.2110 +vn 0.0000 0.7940 -0.6079 +vn 0.6912 -0.6912 0.2110 +vn -0.6774 -0.6774 0.2868 +vn 0.0000 -0.9436 -0.3310 +vn 0.6774 -0.6774 -0.2868 +vn 0.6912 -0.6912 -0.2110 +vn -0.5280 0.5280 -0.6652 +vn -0.6145 0.6145 -0.4947 +vn 0.6679 0.6679 -0.3282 +vn 0.5280 0.5280 -0.6652 +vn 0.0000 0.9080 -0.4191 +vn -0.6722 0.6722 -0.3103 +vn 0.6145 0.6145 -0.4947 +vn 0.6722 0.6722 -0.3103 +vn 0.0000 -0.9820 0.1891 +vn -0.6993 -0.6993 0.1481 +vn 0.7016 -0.7016 0.1247 +vn 0.0000 -0.9285 0.3714 +vn -0.6804 -0.6804 0.2722 +vn 0.6993 -0.6993 0.1481 +vn 0.6804 -0.6804 0.2722 +vn 0.3354 0.8821 -0.3308 +vn -0.3945 0.8604 -0.3227 +vn -0.3354 0.8821 -0.3308 +vn -0.8795 0.4457 -0.1671 +vn -0.9668 0.2515 0.0444 +vn 0.8795 0.4457 -0.1671 +vn 0.3945 0.8604 -0.3227 +vn -0.3945 -0.8604 0.3227 +vn 0.3354 -0.8821 0.3308 +vn 0.3945 -0.8604 0.3227 +vn -0.8319 -0.5196 0.1948 +vn -0.3354 -0.8821 0.3308 +vn 0.8319 -0.5196 0.1948 +vn 0.9467 -0.3016 0.1131 +vn 0.0000 0.3054 -0.9522 +vn 0.0000 -0.3054 -0.9522 +vn 0.8665 0.4777 0.1445 +vn 0.9263 0.3529 -0.1323 +vn -0.8665 0.4777 0.1445 +vn 0.3458 0.6635 0.6635 +vn 0.2418 0.6861 0.6861 +vn -0.3458 0.6635 0.6635 +vn -0.9467 -0.3016 0.1131 +vn 0.0000 0.2298 -0.9732 +vn 0.0000 -0.2298 -0.9732 +vn 0.9668 0.2515 0.0444 +vn 0.0000 0.7181 -0.6960 +vn 0.0000 0.2282 -0.9736 +vn 0.0000 0.4444 -0.8958 +vn 0.0000 -0.4444 0.8958 +vn 0.0000 -0.2282 0.9736 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.2298 0.9732 +vn 0.0000 0.4472 0.8944 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7016 -0.7016 0.1247 +vn -0.9263 0.3529 -0.1323 +vn -0.2418 0.6861 0.6861 +s off +f 200/352/90 196/353/90 197/354/90 +f 192/355/91 196/353/91 194/356/91 +f 204/357/92 194/358/92 199/359/92 +f 198/360/93 192/361/93 201/362/93 +f 198/360/94 196/353/94 195/363/94 +f 194/358/95 200/352/95 199/359/95 +f 204/357/96 190/364/96 189/365/96 +f 192/361/97 202/366/97 201/362/97 +f 202/366/98 190/367/98 203/368/98 +f 220/369/91 213/370/91 217/371/91 +f 250/372/93 240/373/93 246/374/93 +f 236/375/91 233/376/91 234/377/91 +f 247/378/92 243/379/92 239/380/92 +f 243/379/92 228/381/92 234/382/92 +f 262/383/93 260/384/93 256/385/93 +f 257/386/92 265/387/92 261/388/92 +f 256/385/93 242/389/93 240/373/93 +f 253/390/92 239/380/92 237/391/92 +f 246/374/93 235/392/93 225/393/93 +f 289/394/99 290/395/99 291/396/99 +f 294/397/93 291/396/93 290/395/93 +f 294/398/90 293/399/90 292/400/90 +f 293/399/92 289/394/92 292/401/92 +f 305/402/92 303/403/92 299/404/92 +f 304/405/93 306/406/93 302/407/93 +f 309/408/92 316/409/92 311/410/92 +f 310/411/99 314/412/99 309/408/99 +f 312/413/93 313/414/93 310/411/93 +f 311/415/91 315/416/91 312/413/91 +f 324/417/93 322/418/93 330/419/93 +f 329/420/92 331/421/92 323/422/92 +f 200/352/90 193/423/90 196/353/90 +f 194/356/91 189/424/91 190/425/91 +f 190/425/91 191/426/91 192/355/91 +f 192/355/91 195/427/91 196/353/91 +f 196/353/91 193/423/91 194/356/91 +f 194/356/91 190/425/91 192/355/91 +f 204/357/92 189/365/92 194/358/92 +f 198/360/93 195/363/93 192/361/93 +f 198/360/94 197/354/94 196/353/94 +f 194/358/95 193/423/95 200/352/95 +f 204/357/96 203/428/96 190/364/96 +f 192/361/97 191/429/97 202/366/97 +f 202/366/98 191/429/98 190/367/98 +f 213/370/91 214/430/91 215/431/91 +f 215/431/91 216/432/91 213/370/91 +f 216/432/91 217/371/91 213/370/91 +f 217/371/91 218/433/91 219/434/91 +f 219/434/91 220/369/91 217/371/91 +f 234/377/91 229/435/91 232/436/91 +f 229/435/91 230/437/91 232/436/91 +f 230/437/91 231/438/91 232/436/91 +f 232/436/91 235/439/91 234/377/91 +f 235/439/91 236/375/91 234/377/91 +f 243/379/92 221/440/92 228/381/92 +f 228/381/92 229/441/92 234/382/92 +f 234/382/92 237/391/92 243/379/92 +f 237/391/92 239/380/92 243/379/92 +f 256/385/93 240/373/93 262/383/93 +f 262/383/93 266/442/93 260/384/93 +f 261/388/92 239/380/92 253/390/92 +f 253/390/92 257/386/92 261/388/92 +f 225/393/93 224/443/93 246/374/93 +f 246/374/93 240/373/93 242/389/93 +f 242/389/93 235/392/93 246/374/93 +f 235/392/93 232/444/93 225/393/93 +f 289/394/99 293/399/99 290/395/99 +f 294/398/90 290/395/90 293/399/90 +f 297/445/92 301/446/92 299/404/92 +f 301/446/92 305/402/92 299/404/92 +f 305/402/92 307/447/92 303/403/92 +f 299/404/92 295/448/92 297/445/92 +f 302/407/93 298/449/93 300/450/93 +f 298/449/93 296/451/93 300/450/93 +f 304/405/93 308/452/93 306/406/93 +f 302/407/93 300/450/93 304/405/93 +f 309/408/92 314/412/92 316/409/92 +f 310/411/99 313/414/99 314/412/99 +f 312/413/93 315/416/93 313/414/93 +f 311/415/91 316/453/91 315/416/91 +f 322/418/93 320/454/93 330/419/93 +f 320/454/93 318/455/93 330/419/93 +f 318/455/93 332/456/93 330/419/93 +f 330/419/93 328/457/93 326/458/93 +f 326/458/93 324/417/93 330/419/93 +f 331/421/92 317/459/92 323/422/92 +f 317/459/92 319/460/92 323/422/92 +f 319/460/92 321/461/92 323/422/92 +f 323/422/92 325/462/92 327/463/92 +f 327/463/92 329/420/92 323/422/92 +s 1 +f 211/464/93 218/465/97 210/466/97 +f 209/467/98 216/468/96 208/469/96 +f 207/470/92 214/471/95 206/472/95 +f 212/473/94 219/474/93 211/464/93 +f 210/466/97 217/475/98 209/476/98 +f 208/469/96 215/477/92 207/470/92 +f 206/472/95 213/478/90 205/479/90 +f 205/479/90 220/480/94 212/473/94 +f 227/481/100 223/482/101 226/483/100 +f 243/484/102 222/485/96 221/486/96 +f 226/483/103 224/487/104 225/488/105 +f 227/481/106 221/486/107 222/485/107 +f 230/489/108 228/490/109 227/481/106 +f 231/491/110 225/488/105 232/492/110 +f 230/489/111 226/483/100 231/491/111 +f 245/493/112 224/487/97 223/482/97 +f 222/485/98 245/493/113 223/482/98 +f 233/376/90 291/494/114 238/495/115 +f 234/382/95 238/495/116 237/391/117 +f 242/389/118 236/375/94 235/392/94 +f 251/496/119 247/497/96 239/498/120 +f 241/499/115 292/500/121 289/501/114 +f 244/502/113 249/503/98 245/493/113 +f 245/493/112 250/372/97 246/504/122 +f 247/497/96 244/502/123 243/484/102 +f 248/505/98 252/506/124 249/503/98 +f 250/372/97 252/506/125 240/507/126 +f 237/391/117 254/508/127 253/509/128 +f 241/499/129 242/389/118 255/510/130 +f 292/500/121 259/511/131 258/512/131 +f 253/509/128 258/512/132 257/513/132 +f 256/514/133 259/511/134 255/510/130 +f 251/496/124 264/515/135 252/506/124 +f 239/498/120 263/516/136 251/496/119 +f 252/506/125 262/517/137 240/507/126 +f 263/516/135 268/518/138 264/515/135 +f 263/516/136 265/519/139 267/520/139 +f 264/515/140 266/442/141 262/517/137 +f 259/521/142 270/522/143 258/523/144 +f 257/524/145 270/522/143 269/525/146 +f 260/526/147 271/527/148 259/521/142 +f 267/520/149 276/528/150 268/518/151 +f 267/520/149 273/529/152 275/530/153 +f 268/518/151 274/531/154 266/442/155 +f 275/532/99 274/531/156 276/533/99 +f 280/534/157 277/535/99 278/536/99 +f 278/537/148 284/538/158 280/539/159 +f 277/540/143 283/541/160 281/542/144 +f 277/540/143 282/543/142 278/537/148 +f 271/527/161 284/538/158 282/543/162 +f 282/543/162 270/522/163 271/527/161 +f 270/522/163 283/541/160 269/525/146 +f 286/544/92 269/545/146 283/546/160 +f 269/545/146 273/547/152 265/548/164 +f 257/549/145 269/545/146 265/548/164 +f 285/550/165 288/551/166 287/552/165 +f 274/531/154 272/553/167 266/554/155 +f 272/553/167 260/555/147 266/554/155 +f 273/556/156 287/552/165 274/531/156 +f 272/553/167 287/557/93 288/558/93 +f 255/510/130 242/389/118 256/514/133 +f 254/508/127 237/391/117 238/495/116 +f 291/494/114 254/508/168 238/495/115 +f 302/407/169 297/445/170 298/449/170 +f 295/448/171 300/559/172 296/560/171 +f 306/406/173 301/446/169 302/407/169 +f 299/404/172 304/561/174 300/559/172 +f 303/403/174 308/562/175 304/561/174 +f 308/563/176 305/402/173 306/406/173 +f 289/501/114 236/375/90 241/499/115 +f 233/376/90 289/501/114 291/494/114 +f 318/564/99 319/565/176 317/566/99 +f 320/567/176 321/568/98 319/565/176 +f 322/569/98 323/570/177 321/571/98 +f 324/572/177 325/573/91 323/570/177 +f 326/574/91 327/575/178 325/573/91 +f 328/576/178 329/577/90 327/575/178 +f 330/578/90 331/579/179 329/577/90 +f 332/580/179 317/566/99 331/579/179 +f 236/375/94 242/389/118 241/499/129 +f 238/495/116 234/382/95 233/376/95 +f 286/581/166 280/534/157 288/551/166 +f 211/464/93 219/474/93 218/465/97 +f 209/467/98 217/582/98 216/468/96 +f 207/470/92 215/477/92 214/471/95 +f 212/473/94 220/480/94 219/474/93 +f 210/466/97 218/465/97 217/475/98 +f 208/469/96 216/468/96 215/477/92 +f 206/472/95 214/471/95 213/478/90 +f 205/479/90 213/478/90 220/480/94 +f 227/481/100 222/485/101 223/482/101 +f 243/484/102 244/502/123 222/485/96 +f 226/483/103 223/482/104 224/487/104 +f 227/481/106 228/490/109 221/486/107 +f 230/489/108 229/583/108 228/490/109 +f 231/491/110 226/483/103 225/488/105 +f 230/489/111 227/481/100 226/483/100 +f 245/493/112 246/504/122 224/487/97 +f 222/485/98 244/502/113 245/493/113 +f 251/496/119 248/505/96 247/497/96 +f 241/499/115 255/510/168 292/500/121 +f 244/502/113 248/505/98 249/503/98 +f 245/493/112 249/503/97 250/372/97 +f 247/497/96 248/505/96 244/502/123 +f 248/505/98 251/496/124 252/506/124 +f 250/372/97 249/503/97 252/506/125 +f 258/512/131 254/508/168 294/584/121 +f 292/500/121 255/510/168 259/511/131 +f 258/512/131 294/584/121 292/500/121 +f 253/509/128 254/508/127 258/512/132 +f 256/514/133 260/585/134 259/511/134 +f 251/496/124 263/516/135 264/515/135 +f 239/498/120 261/586/180 263/516/136 +f 252/506/125 264/515/140 262/517/137 +f 263/516/135 267/520/138 268/518/138 +f 263/516/136 261/586/180 265/519/139 +f 264/515/140 268/518/141 266/442/141 +f 259/521/142 271/527/148 270/522/143 +f 257/524/145 258/523/144 270/522/143 +f 260/526/147 272/587/167 271/527/148 +f 267/520/149 275/530/153 276/528/150 +f 267/520/149 265/519/164 273/529/152 +f 268/518/151 276/528/150 274/531/154 +f 275/532/99 273/556/156 274/531/156 +f 280/534/157 279/588/157 277/535/99 +f 278/537/148 282/543/142 284/538/158 +f 277/540/143 279/589/181 283/541/160 +f 277/540/143 281/542/144 282/543/142 +f 271/527/161 272/587/167 284/538/158 +f 282/543/162 281/542/182 270/522/163 +f 270/522/163 281/542/182 283/541/160 +f 283/546/160 279/590/181 286/544/92 +f 286/544/92 285/591/92 269/545/146 +f 269/545/146 285/591/92 273/547/152 +f 285/550/165 286/581/166 288/551/166 +f 274/531/154 287/557/93 272/553/167 +f 273/556/156 285/550/165 287/552/165 +f 288/558/93 280/534/159 284/538/158 +f 284/538/158 272/553/167 288/558/93 +f 291/494/114 294/584/121 254/508/168 +f 302/407/169 301/446/169 297/445/170 +f 295/448/171 299/404/172 300/559/172 +f 306/406/173 305/402/173 301/446/169 +f 299/404/172 303/403/174 304/561/174 +f 303/403/174 307/447/175 308/562/175 +f 308/563/176 307/592/176 305/402/173 +f 233/376/90 236/375/90 289/501/114 +f 318/564/99 320/567/176 319/565/176 +f 320/567/176 322/593/98 321/568/98 +f 322/569/98 324/572/177 323/570/177 +f 324/572/177 326/574/91 325/573/91 +f 326/574/91 328/576/178 327/575/178 +f 328/576/178 330/578/90 329/577/90 +f 330/578/90 332/580/179 331/579/179 +f 332/580/179 318/564/99 317/566/99 +f 286/581/166 279/588/157 280/534/157 diff --git a/src/main/resources/assets/hbm/models/weapons/ks23.obj b/src/main/resources/assets/hbm/models/weapons/ks23.obj index 3ead6136b..7cd975554 100644 --- a/src/main/resources/assets/hbm/models/weapons/ks23.obj +++ b/src/main/resources/assets/hbm/models/weapons/ks23.obj @@ -1,1807 +1,604 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender 4.0.1 # www.blender.org -o Cube.016_Cube.025 -v 1.745492 0.611074 -0.008405 -v 1.745492 0.611074 0.008405 -v 1.745492 0.626074 0.000000 -v 1.548361 0.523926 -0.025216 -v 1.548361 0.546074 -0.025216 -v 1.745492 0.596074 -0.025216 -v 1.851639 0.596074 -0.025216 -v 1.851639 0.523926 -0.025216 -v 1.745492 0.523926 -0.025216 -v 1.851639 0.611074 -0.008405 -v 1.851639 0.626074 0.000000 -v 1.745492 0.596074 0.008405 -v 1.851639 0.596074 0.008405 -v 1.851639 0.611074 0.008405 -v 1.745492 0.596074 0.025216 -v 1.851639 0.596074 0.025216 -v 1.745492 0.596074 -0.008405 -v 1.851639 0.523926 0.025216 -v 1.548361 0.546074 0.025216 -v 1.548361 0.523926 0.025216 -v 1.745492 0.523926 0.025216 -v 1.851639 0.596074 -0.008405 -vt 0.680946 0.743152 -vt 0.680946 0.743152 -vt 0.680946 0.747663 -vt 0.712868 0.738640 -vt 0.712868 0.716943 -vt 0.680946 0.716943 -vt 0.712868 0.747663 -vt 0.712868 0.743152 -vt 0.712868 0.738640 -vt 0.680946 0.738640 -vt 0.712868 0.738640 -vt 0.680946 0.738640 -vt 0.621661 0.723604 -vt 0.621661 0.716943 -vt 0.680946 0.716943 -vt 0.621661 0.716943 -vt 0.680946 0.738640 -vt 0.712868 0.738640 -vt 0.712868 0.743152 -vt 0.621661 0.723604 -vt 0.712868 0.716943 -vt 0.680946 0.738640 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.4888 -0.8724 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.4888 0.8724 -vn -0.2459 0.9693 0.0000 -vn 1.0000 0.0000 0.0000 -s off -f 1/1/1 2/2/1 3/3/1 -f 7/4/2 8/5/2 9/6/2 -f 1/1/3 11/7/3 10/8/3 -f 13/9/4 2/2/4 12/10/4 -f 12/10/5 16/11/5 13/9/5 -f 12/10/1 1/1/1 17/12/1 -f 19/13/4 20/14/4 21/15/4 -f 9/6/6 20/14/6 4/16/6 -f 6/17/5 22/18/5 7/4/5 -f 14/19/7 3/3/7 2/2/7 -f 12/10/8 17/12/8 5/20/8 -f 17/12/2 10/8/2 22/18/2 -f 8/5/6 21/15/6 9/6/6 -f 22/18/9 14/19/9 13/9/9 -f 22/18/9 13/9/9 18/21/9 -f 14/19/9 10/8/9 11/7/9 -f 19/13/1 4/16/1 20/14/1 -f 9/6/2 4/16/2 5/20/2 -f 5/20/2 6/17/2 9/6/2 -f 6/17/2 7/4/2 9/6/2 -f 1/1/3 3/3/3 11/7/3 -f 13/9/4 14/19/4 2/2/4 -f 12/10/5 15/22/5 16/11/5 -f 12/10/1 2/2/1 1/1/1 -f 21/15/4 18/21/4 16/11/4 -f 16/11/4 15/22/4 21/15/4 -f 15/22/4 19/13/4 21/15/4 -f 9/6/6 21/15/6 20/14/6 -f 6/17/5 17/12/5 22/18/5 -f 14/19/7 11/7/7 3/3/7 -f 17/12/8 6/17/8 5/20/8 -f 5/20/8 19/13/8 12/10/8 -f 19/13/8 15/22/8 12/10/8 -f 17/12/2 1/1/2 10/8/2 -f 8/5/6 18/21/6 21/15/6 -f 22/18/9 10/8/9 14/19/9 -f 18/21/9 8/5/9 22/18/9 -f 8/5/9 7/4/9 22/18/9 -f 13/9/9 16/11/9 18/21/9 -f 19/13/1 5/20/1 4/16/1 -o Cube.011_Cube.023 -v -1.092482 0.577098 -0.054925 -v -1.092482 0.577098 0.056150 -v -1.092482 0.603150 0.056150 -v -1.092482 0.603150 -0.054925 -v -0.448868 0.627935 -0.054925 -v -0.448868 0.603150 -0.054925 -v -0.448868 0.603150 0.056150 -v -0.448868 0.627935 0.056150 -v -0.448868 0.627935 0.025312 -v -0.448868 0.603235 0.000612 -v -0.448868 0.627935 -0.024087 -v -0.419549 0.603150 -0.054925 -v -0.419549 0.603150 0.056150 -v -0.419549 0.577098 0.056150 -v -0.419549 0.577098 -0.054925 -v -0.448868 0.577098 -0.054925 -v -0.448868 0.577098 0.056150 -v -0.419549 0.627935 0.056150 -v -0.419549 0.627935 0.025312 -v -0.419549 0.627935 -0.054925 -v -0.419549 0.627935 -0.024087 -v -0.419549 0.603235 0.000612 -vt 0.394791 0.688361 -vt 0.394791 0.696196 -vt 0.394791 0.688361 -vt 0.588350 0.696196 -vt 0.588350 0.696196 -vt 0.588350 0.696221 -vt 0.597168 0.696196 -vt 0.597168 0.688361 -vt 0.597168 0.696196 -vt 0.588350 0.688361 -vt 0.588350 0.688361 -vt 0.394791 0.696196 -vt 0.597168 0.688361 -vt 0.588350 0.703650 -vt 0.597168 0.703650 -vt 0.588350 0.703650 -vt 0.588350 0.703650 -vt 0.597168 0.703650 -vt 0.597168 0.703650 -vt 0.597168 0.696221 -vt 0.588350 0.703650 -vt 0.597168 0.703650 -vn -1.0000 0.0000 0.0000 -vn -1.0000 0.0004 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.7071 0.7071 -s off -f 24/23/10 26/24/10 23/25/10 -f 28/26/11 29/27/11 32/28/11 -f 35/29/12 37/30/12 34/31/12 -f 39/32/13 23/25/13 38/33/13 -f 34/31/14 38/33/14 28/26/14 -f 25/34/15 39/32/15 29/27/15 -f 29/27/15 36/35/15 35/29/15 -f 28/26/14 23/25/14 26/24/14 -f 36/35/13 38/33/13 37/30/13 -f 25/34/16 28/26/16 26/24/16 -f 30/36/16 41/37/16 31/38/16 -f 27/39/16 43/40/16 42/41/16 -f 35/29/12 34/31/12 44/42/12 -f 35/29/15 30/36/15 29/27/15 -f 28/26/14 42/41/14 34/31/14 -f 32/28/17 41/37/17 44/42/17 -f 33/43/18 44/42/18 43/40/18 -f 24/23/10 25/34/10 26/24/10 -f 33/43/10 27/39/10 28/26/10 -f 29/27/10 30/36/10 31/38/10 -f 32/28/10 33/43/10 28/26/10 -f 29/27/10 31/38/10 32/28/10 -f 35/29/12 36/35/12 37/30/12 -f 39/32/13 24/23/13 23/25/13 -f 34/31/14 37/30/14 38/33/14 -f 25/34/15 24/23/15 39/32/15 -f 29/27/15 39/32/15 36/35/15 -f 28/26/14 38/33/14 23/25/14 -f 36/35/13 39/32/13 38/33/13 -f 25/34/16 29/27/16 28/26/16 -f 30/36/16 40/44/16 41/37/16 -f 27/39/16 33/43/16 43/40/16 -f 44/42/12 41/37/12 35/29/12 -f 41/37/12 40/44/12 35/29/12 -f 34/31/12 42/41/12 43/40/12 -f 34/31/12 43/40/12 44/42/12 -f 35/29/15 40/44/15 30/36/15 -f 28/26/14 27/39/14 42/41/14 -f 32/28/17 31/38/17 41/37/17 -f 33/43/18 32/28/18 44/42/18 -o Plane.002 -v -1.380449 0.181206 0.012697 -v -1.291923 0.180872 0.012697 -v -1.254413 0.180730 0.011096 -v -1.241522 0.180681 0.006436 -v -1.241522 0.180681 -0.005212 -v -1.254413 0.180730 -0.009871 -v -1.291923 0.180872 -0.011473 -v -1.380449 0.181206 -0.011473 -v -1.433398 0.075307 0.012697 -v -1.418719 0.040182 0.012697 -v -1.418719 0.040182 0.012697 -v -1.429194 0.076073 0.012697 -v -1.423724 0.117095 0.012697 -v -1.410405 0.144311 0.012697 -v -1.356401 0.173001 0.012697 -v -1.415574 0.151323 0.012697 -v -1.430253 0.120917 0.012697 -v -1.403516 0.140314 0.006436 -v -1.415574 0.115674 0.006436 -v -1.415574 0.115674 -0.005212 -v -1.403516 0.140314 -0.005212 -v -1.420816 0.076355 0.006436 -v -1.420816 0.076355 -0.005212 -v -1.412952 0.045424 0.006436 -v -1.412952 0.045424 -0.005212 -v -1.398798 0.023366 0.006436 -v -1.398798 0.023366 -0.005212 -v -1.403893 0.027667 0.011096 -v -1.418719 0.040182 -0.011473 -v -1.418719 0.040182 -0.011473 -v -1.403893 0.027667 -0.009871 -v -1.433398 0.075307 -0.011473 -v -1.430253 0.120917 -0.011473 -v -1.415574 0.151323 -0.011473 -v -1.356401 0.173001 -0.011473 -v -1.410405 0.144311 -0.011473 -v -1.423724 0.117095 -0.011473 -v -1.429194 0.076073 -0.011473 -v -1.353188 0.167051 0.006436 -v -1.353188 0.167051 -0.005212 -v -1.354010 0.168573 0.011096 -v -1.405278 0.141336 0.011096 -v -1.417658 0.116037 0.011096 -v -1.422959 0.076283 0.011096 -v -1.414984 0.044916 0.011096 -v -1.354010 0.168573 -0.009871 -v -1.405278 0.141336 -0.009871 -v -1.417658 0.116037 -0.009871 -v -1.422959 0.076283 -0.009871 -v -1.414984 0.044916 -0.009871 -vt 0.559609 0.765930 -vt 0.494705 0.766175 -vt 0.559609 0.765930 -vt 0.462977 0.719170 -vt 0.472742 0.739125 -vt 0.458190 0.721973 -vt 0.468953 0.718129 -vt 0.477793 0.736194 -vt 0.477793 0.736194 -vt 0.465109 0.689302 -vt 0.468953 0.718129 -vt 0.470874 0.666624 -vt 0.465109 0.689302 -vt 0.481252 0.650452 -vt 0.470874 0.666624 -vt 0.466646 0.662781 -vt 0.466646 0.662781 -vt 0.481252 0.650452 -vt 0.455884 0.688533 -vt 0.458190 0.721973 -vt 0.462977 0.719170 -vt 0.455884 0.688533 -vt 0.466646 0.662781 -vt 0.468953 0.744266 -vt 0.494705 0.766175 -vt 0.468953 0.744266 -vt 0.514692 0.755797 -vt 0.514692 0.755797 -vt 0.514090 0.756913 -vt 0.587110 0.765826 -vt 0.596562 0.765790 -vt 0.512336 0.760159 -vt 0.476501 0.736944 -vt 0.467424 0.718395 -vt 0.463538 0.689249 -vt 0.458967 0.689095 -vt 0.469385 0.666251 -vt 0.466646 0.662781 -vt 0.477517 0.653605 -vt 0.587110 0.765826 -vt 0.596562 0.765790 -vt 0.514090 0.756913 -vt 0.476501 0.736944 -vt 0.512336 0.760159 -vt 0.467424 0.718395 -vt 0.472742 0.739125 -vt 0.463538 0.689249 -vt 0.469385 0.666251 -vt 0.458967 0.689095 -vt 0.477517 0.653605 -vn 0.0038 1.0000 0.0000 -vn -0.3434 0.9392 0.0000 -vn 0.1101 -0.0321 0.9934 -vn 0.0801 -0.0721 0.9942 +o Bolt +v 0.161448 0.393839 -0.026408 +v 0.161448 0.393839 0.021028 +v 0.175965 0.393896 0.023362 +v 0.175965 0.393564 -0.028355 +v -0.139708 0.393839 -1.037985 +v -0.139708 0.100576 -1.037985 +v -0.141234 0.099485 -1.013396 +v -0.141233 0.393839 -1.013400 +v -0.091905 0.047403 -1.660505 +v 0.093151 0.047403 -1.660505 +v 0.092973 0.047403 -1.037985 +v -0.091727 0.047403 -1.037985 +v 0.146160 0.393839 -0.995425 +v 0.146166 0.096349 -0.995410 +v 0.142480 0.099485 -1.013396 +v 0.142477 0.393839 -1.013400 +v 0.161448 0.392465 -0.226861 +v 0.161448 0.179659 -0.226861 +v 0.161448 0.176783 -0.269772 +v 0.161448 0.184279 -0.293139 +v 0.161448 0.392465 -0.293139 +v 0.161448 0.156742 -0.176861 +v 0.161448 0.179659 -0.193139 +v 0.161448 0.392465 -0.193139 +v 0.161448 0.098712 -0.026381 +v 0.161448 0.124456 -0.093139 +v 0.161448 0.392051 -0.093139 +v 0.161448 0.392051 -0.126861 +v 0.161448 0.137460 -0.126861 +v 0.161448 0.143738 -0.143139 +v 0.161448 0.392051 -0.143139 +v 0.161448 0.392051 -0.176861 +v 0.161448 0.167893 -0.516984 +v 0.161448 0.163019 -0.510000 +v 0.161448 0.163019 -0.410000 +v 0.161448 0.163019 -0.310000 +v 0.161448 0.167893 -0.303016 +v 0.161448 0.179659 -0.293139 +v 0.161448 0.163019 -0.210000 +v 0.161448 0.100073 -0.176861 +v 0.161448 0.088307 -0.166984 +v 0.161448 0.083433 -0.160000 +v 0.161448 0.088307 -0.153016 +v 0.161448 0.100073 -0.143139 +v 0.161448 0.100073 -0.126861 +v 0.161448 0.088307 -0.116984 +v 0.161448 0.083433 -0.110000 +v 0.161448 0.088307 -0.103016 +v 0.161448 0.100073 -0.093139 +v 0.161448 0.080437 -0.026379 +v 0.161448 0.080575 -0.927107 +v 0.161448 0.393839 -0.927107 +v 0.161448 0.392465 -0.326861 +v 0.161448 0.392465 -0.393139 +v 0.161448 0.392465 -0.426861 +v 0.161448 0.392465 -0.493139 +v 0.161448 0.392465 -0.526861 +v 0.161448 0.392465 -0.593139 +v 0.161448 0.392465 -0.626861 +v 0.161448 0.392465 -0.693139 +v 0.161448 0.392465 -0.726861 +v 0.161448 0.392465 -0.793139 +v 0.161448 0.392465 -0.826861 +v 0.161448 0.179659 -0.826861 +v 0.161448 0.167893 -0.816984 +v 0.161448 0.163019 -0.810000 +v 0.161448 0.163019 -0.710000 +v 0.161448 0.163019 -0.610000 +v 0.140953 0.100576 -1.037985 +v 0.140953 0.393839 -1.037985 +v 0.159923 0.393839 -0.951692 +v 0.156242 0.393839 -0.969667 +v 0.140953 0.393839 -1.660505 +v -0.139708 0.393839 -1.660505 +v -0.144914 0.393839 -0.995425 +v -0.154997 0.393839 -0.969667 +v -0.158678 0.393839 -0.951692 +v -0.160203 0.393839 -0.927107 +v -0.160203 0.393839 -0.026414 +v -0.160203 0.393839 0.021028 +v -0.144920 0.096349 -0.995410 +v -0.154991 0.086522 -0.969682 +v -0.139708 0.100430 -1.660505 +v 0.140953 0.100430 -1.660505 +v 0.137546 0.034507 0.021028 +v 0.155043 0.053917 0.021028 +v 0.161448 0.080430 0.021028 +v -0.160203 0.080430 0.021028 +v -0.153799 0.053917 0.021028 +v -0.136302 0.034507 0.021028 +v -0.112400 0.027403 0.021028 +v 0.113645 0.027403 0.021028 +v 0.156235 0.086522 -0.969682 +v 0.159921 0.082465 -0.951696 +v 0.094000 0.045913 -1.013395 +v -0.092755 0.045913 -1.013395 +v -0.095793 0.042316 -0.995407 +v 0.097038 0.042316 -0.995407 +v 0.107106 0.032491 -0.969685 +v -0.105861 0.032491 -0.969685 +v -0.158677 0.082465 -0.951696 +v -0.160203 0.080575 -0.927107 +v 0.113467 0.027403 -0.927107 +v -0.112223 0.027403 -0.927107 +v -0.110196 0.028893 -0.951697 +v 0.111441 0.028893 -0.951697 +v -0.115806 0.054507 -1.660505 +v -0.133303 0.073917 -1.660505 +v 0.134549 0.073917 -1.660505 +v 0.117052 0.054507 -1.660505 +v 0.118240 0.053090 -1.013395 +v 0.121602 0.049555 -0.995408 +v 0.135985 0.072699 -1.013395 +v 0.139584 0.069332 -0.995409 +v 0.116963 0.054527 -1.037985 +v 0.134525 0.073989 -1.037985 +v -0.116995 0.053090 -1.013395 +v -0.115718 0.054527 -1.037985 +v -0.134739 0.072699 -1.013395 +v -0.133280 0.073989 -1.037985 +v -0.120357 0.049555 -0.995408 +v -0.138339 0.069332 -0.995409 +v -0.134436 0.036070 -0.951697 +v -0.130425 0.039729 -0.969685 +v -0.152181 0.055679 -0.951697 +v -0.148408 0.059506 -0.969684 +v -0.136212 0.034527 -0.927107 +v -0.153775 0.053989 -0.927107 +v 0.135681 0.036070 -0.951697 +v 0.137458 0.034527 -0.927107 +v 0.153426 0.055679 -0.951697 +v 0.155020 0.053989 -0.927107 +v 0.131670 0.039729 -0.969685 +v 0.149653 0.059506 -0.969684 +v -0.174720 0.393564 -0.028361 +v -0.174720 0.393896 0.023362 +v 0.155042 0.053920 -0.026379 +v 0.175964 0.077206 -0.028324 +v 0.168981 0.048295 -0.028324 +v -0.167737 0.048291 0.023362 +v -0.148661 0.027130 0.023362 +v 0.113637 0.027403 -0.026379 +v 0.137542 0.034508 -0.026379 +v -0.160203 0.180122 -0.393139 +v -0.160203 0.168028 -0.403016 +v -0.160203 0.163019 -0.410000 +v -0.160203 0.162014 -0.310637 +v -0.160203 0.392465 -0.326861 +v -0.160203 0.392465 -0.393139 +v 0.182426 0.392465 -0.326861 +v 0.182426 0.179659 -0.326861 +v 0.161448 0.179659 -0.326861 +v -0.160203 0.180122 -0.426861 +v -0.181181 0.180122 -0.426861 +v -0.181181 0.392465 -0.426861 +v -0.160203 0.392465 -0.426861 +v 0.182426 0.392465 -0.193139 +v 0.182426 0.392465 -0.226861 +v -0.181181 0.392465 -0.226861 +v -0.181181 0.392465 -0.193139 +v -0.160203 0.392465 -0.193139 +v -0.160203 0.392465 -0.226861 +v -0.160203 0.137460 -0.126861 +v -0.160203 0.392051 -0.126861 +v -0.160203 0.392051 -0.093139 +v -0.160203 0.124456 -0.093139 +v -0.160203 0.098712 -0.026381 +v -0.160203 0.180122 -0.193139 +v -0.160203 0.156742 -0.176861 +v -0.160203 0.392051 -0.176861 +v -0.160203 0.392051 -0.143139 +v -0.160203 0.143738 -0.143139 +v 0.182426 0.179659 -0.193139 +v -0.181181 0.180122 -0.193139 +v 0.182426 0.392465 -0.526861 +v 0.182426 0.179659 -0.526861 +v 0.161448 0.179659 -0.526861 +v -0.160203 0.180122 -0.526861 +v -0.181181 0.180122 -0.526861 +v -0.181181 0.392465 -0.526861 +v -0.160203 0.392465 -0.526861 +v 0.182426 0.392465 -0.293139 +v -0.181181 0.392465 -0.326861 +v -0.181181 0.392465 -0.293139 +v -0.160203 0.392465 -0.293139 +v 0.182426 0.179659 -0.226861 +v -0.160203 0.180122 -0.226861 +v -0.181181 0.180122 -0.226861 +v 0.182426 0.179659 -0.293139 +v -0.160203 0.184279 -0.293139 +v -0.181181 0.180122 -0.293139 +v -0.160203 0.180122 -0.293139 +v -0.181270 0.162019 -0.310622 +v -0.160364 0.167861 -0.318624 +v -0.181431 0.167866 -0.318609 +v 0.182426 0.167893 -0.303016 +v 0.182426 0.163019 -0.310000 +v 0.182426 0.167893 -0.316984 +v -0.181181 0.392465 -0.393139 +v -0.181181 0.168028 -0.416984 +v -0.181181 0.163019 -0.410000 +v -0.181181 0.168028 -0.403016 +v -0.181181 0.180122 -0.393139 +v 0.182426 0.392465 -0.393139 +v 0.182426 0.392465 -0.426861 +v 0.182426 0.167893 -0.203016 +v 0.182426 0.163019 -0.210000 +v 0.182426 0.167893 -0.216984 +v -0.181181 0.180122 -0.326861 +v 0.182426 0.179659 -0.393139 +v 0.161448 0.179659 -0.393139 +v -0.160203 0.180122 -0.626861 +v -0.181181 0.180122 -0.626861 +v -0.181181 0.392465 -0.626861 +v -0.160203 0.392465 -0.626861 +v 0.182426 0.392465 -0.626861 +v 0.182426 0.179659 -0.626861 +v 0.161448 0.179659 -0.626861 +v -0.160203 0.180122 -0.726861 +v -0.181181 0.180122 -0.726861 +v -0.181181 0.392465 -0.726861 +v -0.160203 0.392465 -0.726861 +v 0.182426 0.392465 -0.493139 +v -0.181181 0.392465 -0.493139 +v -0.160203 0.392465 -0.493139 +v 0.182426 0.179659 -0.426861 +v 0.161448 0.179659 -0.426861 +v -0.181181 0.168028 -0.216984 +v -0.181181 0.163019 -0.210000 +v -0.181181 0.168028 -0.203016 +v 0.182426 0.179659 -0.493139 +v 0.161448 0.179659 -0.493139 +v -0.181181 0.180122 -0.493139 +v -0.160203 0.180122 -0.493139 +v 0.182426 0.392465 -0.726861 +v 0.182426 0.179659 -0.726861 +v 0.161448 0.179659 -0.726861 +v -0.160203 0.180122 -0.826861 +v -0.181181 0.180122 -0.826861 +v -0.181181 0.392465 -0.826861 +v -0.160203 0.392465 -0.826861 +v 0.182426 0.392465 -0.593139 +v -0.181181 0.392465 -0.593139 +v -0.160203 0.392465 -0.593139 +v 0.182426 0.167893 -0.403016 +v 0.182426 0.163019 -0.410000 +v 0.182426 0.167893 -0.416984 +v 0.182426 0.179659 -0.593139 +v 0.161448 0.179659 -0.593139 +v -0.181181 0.180122 -0.593139 +v -0.160203 0.180122 -0.593139 +v 0.182426 0.392465 -0.826861 +v 0.182426 0.179659 -0.826861 +v -0.160203 0.100536 -0.126861 +v -0.181181 0.100536 -0.126861 +v -0.181181 0.392051 -0.126861 +v 0.182426 0.392465 -0.693139 +v -0.181181 0.392465 -0.693139 +v -0.160203 0.392465 -0.693139 +v 0.182426 0.167893 -0.503016 +v 0.182426 0.163019 -0.510000 +v 0.182426 0.167893 -0.516984 +v 0.182426 0.179659 -0.693139 +v 0.161448 0.179659 -0.693139 +v -0.181181 0.180122 -0.693139 +v -0.160203 0.180122 -0.693139 +v 0.182426 0.392051 -0.176861 +v 0.182426 0.100073 -0.176861 +v -0.181181 0.392051 -0.093139 +v -0.181181 0.088442 -0.116984 +v -0.181181 0.083433 -0.110000 +v -0.181181 0.088442 -0.103016 +v -0.181181 0.100536 -0.093139 +v 0.182426 0.392465 -0.793139 +v -0.181181 0.392465 -0.793139 +v -0.160203 0.392465 -0.793139 +v 0.182426 0.167893 -0.603016 +v 0.182426 0.163019 -0.610000 +v 0.182426 0.167893 -0.616984 +v -0.181181 0.168028 -0.516984 +v -0.181181 0.163019 -0.510000 +v -0.181181 0.168028 -0.503016 +v 0.182426 0.179659 -0.793139 +v 0.161448 0.179659 -0.793139 +v -0.181181 0.180122 -0.793139 +v -0.160203 0.180122 -0.793139 +v 0.182426 0.167893 -0.803016 +v 0.182426 0.163019 -0.810000 +v 0.182426 0.167893 -0.816984 +v 0.182426 0.392051 -0.093139 +v 0.182426 0.392051 -0.126861 +v 0.182426 0.167893 -0.703016 +v 0.182426 0.163019 -0.710000 +v 0.182426 0.167893 -0.716984 +v -0.181181 0.168028 -0.616984 +v -0.181181 0.163019 -0.610000 +v -0.181181 0.168028 -0.603016 +v 0.182426 0.100073 -0.093139 +v -0.160203 0.100536 -0.176861 +v -0.181181 0.100536 -0.176861 +v -0.181181 0.392051 -0.176861 +v -0.160203 0.100536 -0.093139 +v 0.182426 0.088307 -0.103016 +v 0.182426 0.083433 -0.110000 +v 0.182426 0.088307 -0.116984 +v 0.182426 0.100073 -0.126861 +v -0.181181 0.168028 -0.816984 +v -0.181181 0.163019 -0.810000 +v -0.181181 0.168028 -0.803016 +v 0.182426 0.392051 -0.143139 +v -0.181181 0.392051 -0.143139 +v -0.181181 0.168028 -0.716984 +v -0.181181 0.163019 -0.710000 +v -0.181181 0.168028 -0.703016 +v 0.182426 0.100073 -0.143139 +v -0.181181 0.100536 -0.143139 +v -0.160203 0.100536 -0.143139 +v 0.161448 0.167893 -0.203016 +v 0.161448 0.167893 -0.216984 +v 0.161448 0.167893 -0.316984 +v 0.161448 0.167893 -0.403016 +v 0.161448 0.167893 -0.416984 +v 0.161448 0.167893 -0.503016 +v 0.161448 0.167893 -0.603016 +v 0.161448 0.167893 -0.616984 +v 0.161448 0.167893 -0.703016 +v 0.161448 0.167893 -0.716984 +v 0.161448 0.167893 -0.803016 +v 0.182426 0.083433 -0.160000 +v 0.182426 0.088307 -0.166984 +v 0.182426 0.088307 -0.153016 +v -0.160203 0.168028 -0.203016 +v -0.160203 0.163019 -0.210000 +v -0.160203 0.168028 -0.216984 +v -0.160203 0.168028 -0.416984 +v -0.160203 0.168028 -0.503016 +v -0.160203 0.163019 -0.510000 +v -0.160203 0.168028 -0.516984 +v -0.160203 0.168028 -0.603016 +v -0.160203 0.163019 -0.610000 +v -0.160203 0.168028 -0.303016 +v -0.160203 0.168028 -0.616984 +v -0.160203 0.163019 -0.710000 +v -0.160203 0.163019 -0.810000 +v -0.160203 0.168028 -0.816984 +v -0.160203 0.080437 -0.026379 +v -0.160203 0.088442 -0.103016 +v -0.160203 0.083433 -0.110000 +v -0.160203 0.088442 -0.116984 +v -0.160203 0.088442 -0.153016 +v -0.160203 0.083433 -0.160000 +v -0.160203 0.088442 -0.166984 +v -0.160203 0.168028 -0.703016 +v -0.160203 0.168028 -0.716984 +v -0.160203 0.168028 -0.803016 +v -0.181181 0.083433 -0.160000 +v -0.181181 0.088442 -0.153016 +v -0.181181 0.088442 -0.166984 +v -0.181431 0.168028 -0.303126 +v -0.160114 0.180117 -0.326876 +v -0.112391 0.027403 -0.026379 +v 0.123837 0.019385 -0.028324 +v -0.122592 0.019385 -0.028324 +v 0.175964 0.077198 0.023362 +v -0.136297 0.034508 -0.026379 +v -0.148656 0.027131 -0.028324 +v -0.153798 0.053920 -0.026379 +v 0.123847 0.019385 0.023362 +v -0.122602 0.019385 0.023362 +v 0.175964 0.097130 -0.028325 +v -0.174720 0.077198 0.023362 +v -0.167736 0.048295 -0.028324 +v 0.168982 0.048291 0.023362 +v -0.174720 0.077206 -0.028324 +v 0.149905 0.027130 0.023362 +v 0.149901 0.027131 -0.028324 +v -0.174720 0.097130 -0.028326 +v 0.079173 0.413916 0.706758 +v 0.133032 0.413916 0.706758 +v 0.133032 0.467775 0.706758 +v 0.079173 0.467775 0.706758 +v 0.079173 0.467775 0.274201 +v 0.133032 0.467775 0.638249 +v 0.132611 0.467775 0.638244 +v 0.132611 0.467775 0.274201 +v 0.132804 0.413916 0.274201 +v 0.079173 0.413916 0.274201 +v 0.132805 0.466244 0.274201 +v 0.132804 0.413916 0.638765 +v 0.133032 0.413916 0.638765 +v 0.133032 0.466254 0.638765 +v 0.120479 0.520191 0.602429 +v 0.120479 0.520191 0.201794 +v 0.104105 0.551348 0.201794 +v 0.104105 0.551348 0.558765 +v 0.130619 0.493740 0.629471 +v 0.130619 0.493740 0.201794 +v 0.134105 0.466292 0.638765 +v 0.134105 0.466292 0.201794 +v 0.134105 0.350993 0.638765 +v 0.134105 0.350993 0.201794 +v 0.119244 0.519875 0.602429 +v 0.102899 0.550972 0.558765 +v 0.102899 0.550972 0.201794 +v 0.119250 0.519861 0.201794 +v 0.129342 0.493549 0.201794 +v 0.129338 0.493568 0.629471 +v 0.132805 0.466243 0.201794 +v 0.132804 0.350993 0.201794 +v 0.132804 0.350993 0.638765 +vn 0.0004 1.0000 -0.0028 +vn 0.0146 0.9999 -0.0013 +vn 0.0067 1.0000 -0.0000 +vn -0.9926 -0.1169 -0.0334 +vn -0.9913 -0.0000 -0.1316 +vn -0.9995 -0.0000 -0.0310 +vn 0.1440 -0.9896 -0.0000 +vn -0.1422 -0.9893 -0.0330 +vn -0.1440 -0.9896 -0.0000 +vn 0.9589 -0.0000 -0.2836 +vn 0.9832 -0.1132 -0.1432 +vn 0.9913 -0.0000 -0.1316 +vn 1.0000 -0.0000 -0.0000 +vn 0.9926 -0.1169 -0.0334 +vn 0.9995 -0.0000 -0.0310 +vn -0.0000 1.0000 -0.0000 +vn -0.9589 -0.0000 -0.2836 +vn -0.9449 -0.1072 -0.3093 +vn -0.9430 -0.1154 -0.3120 +vn -1.0000 -0.0000 -0.0000 +vn 0.9930 -0.1183 -0.0000 +vn 0.0095 0.1424 0.9898 +vn -0.0095 0.1424 0.9898 +vn 0.0836 0.0092 0.9965 +vn 0.9449 -0.1072 -0.3093 +vn 0.9814 -0.1217 -0.1484 +vn 0.1373 -0.9803 -0.1420 +vn 0.1423 -0.9893 -0.0330 +vn -0.1283 -0.9426 -0.3084 +vn 0.1375 -0.9399 -0.3125 +vn -0.1375 -0.9399 -0.3125 +vn -0.9832 -0.1132 -0.1432 +vn 0.1283 -0.9426 -0.3084 +vn -0.9814 -0.1217 -0.1484 +vn 0.1469 -0.9885 -0.0359 +vn -0.1468 -0.9778 -0.1497 +vn 0.1468 -0.9778 -0.1497 +vn 0.9430 -0.1154 -0.3120 +vn -0.0000 -0.0000 -1.0000 +vn 0.5211 -0.8364 -0.1702 +vn 0.4874 -0.7903 -0.3714 +vn 0.8246 -0.4304 -0.3672 +vn 0.8732 -0.4571 -0.1689 +vn 0.5318 -0.8460 -0.0388 +vn 0.8843 -0.4652 -0.0387 +vn -0.1373 -0.9803 -0.1420 +vn -0.5318 -0.8460 -0.0387 +vn -0.8732 -0.4571 -0.1689 +vn -0.8844 -0.4652 -0.0387 +vn -0.5211 -0.8364 -0.1702 +vn -0.8246 -0.4304 -0.3672 +vn -0.4936 -0.7869 -0.3704 +vn -0.8676 -0.4633 -0.1804 +vn -0.8215 -0.4371 -0.3662 +vn -0.1469 -0.9885 -0.0359 +vn -0.5265 -0.8301 -0.1835 +vn -0.8823 -0.4685 -0.0445 +vn -0.9920 -0.1209 -0.0355 +vn 0.5265 -0.8302 -0.1835 +vn 0.5348 -0.8437 -0.0454 +vn 0.8823 -0.4685 -0.0446 +vn 0.8676 -0.4633 -0.1804 +vn 0.9920 -0.1209 -0.0355 +vn 0.4936 -0.7869 -0.3704 +vn 0.8215 -0.4371 -0.3662 +vn -0.5338 -0.8456 0.0001 +vn -0.8845 -0.4665 0.0001 +vn -0.9930 -0.1182 -0.0000 +vn -0.4874 -0.7903 -0.3714 +vn 0.8845 -0.4665 0.0001 +vn -0.0004 1.0000 -0.0028 +vn -0.0146 0.9999 -0.0013 +vn 0.0029 1.0000 -0.0064 +vn -0.1131 0.0626 -0.9916 +vn -0.1292 0.0162 -0.9915 +vn -0.1147 0.0586 -0.9917 +vn 0.0784 0.0434 0.9960 +vn 0.1020 0.1407 0.9848 +vn 0.0494 0.1002 0.9937 +vn 0.5338 -0.8456 -0.0001 +vn 0.8845 -0.4665 -0.0001 +vn -0.0000 -0.3421 -0.9397 +vn -0.0000 -0.3358 -0.9419 +vn -0.0000 -0.3421 0.9397 vn -0.0000 -0.0000 1.0000 -vn 0.9341 -0.2854 0.2145 -vn 0.6960 -0.6878 -0.2064 -vn 0.6960 -0.6878 0.2063 -vn 0.9739 0.0574 0.2195 -vn 0.9341 -0.2853 -0.2146 -vn 0.8951 0.3928 0.2112 -vn 0.9739 0.0574 -0.2195 -vn 0.8357 0.5363 0.1183 -vn 0.8951 0.3928 -0.2112 -vn -0.7148 -0.5030 0.4859 -vn -0.0627 -0.0742 0.9953 -vn -0.6450 -0.7641 -0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.1102 -0.0321 -0.9934 -vn -0.9867 -0.1628 0.0000 -vn -0.6524 -0.2727 0.7071 -vn -0.9666 0.2564 0.0000 -vn -0.7913 0.6114 0.0000 -vn 0.2917 -0.9400 -0.1772 -vn 0.2917 -0.9400 0.1772 -vn 0.0377 -0.3088 0.9504 -vn 0.1989 -0.6358 0.7458 -vn 0.1130 -0.9257 0.3609 -vn 0.1209 -0.9907 0.0625 -vn 0.0437 -0.1306 0.9905 -vn 0.4336 -0.4244 0.7949 -vn 0.5920 -0.1790 0.7858 -vn 0.6069 0.0354 0.7940 -vn 0.1100 0.0064 0.9939 -vn 0.5873 0.2461 0.7710 -vn 0.1549 0.0753 0.9851 -vn 0.7426 0.4766 0.4706 -vn 0.1130 -0.9257 -0.3610 -vn 0.1209 -0.9907 -0.0625 -vn 0.1989 -0.6359 -0.7457 -vn 0.0377 -0.3086 -0.9504 -vn 0.4336 -0.4245 -0.7949 -vn 0.0437 -0.1307 -0.9905 -vn 0.5920 -0.1790 -0.7858 -vn 0.0801 -0.0721 -0.9942 -vn 0.6070 0.0354 -0.7939 -vn 0.5873 0.2462 -0.7710 -vn 0.1101 0.0064 -0.9939 -vn 0.7425 0.4766 -0.4706 -vn 0.5300 0.2577 -0.8079 -vn 0.8357 0.5363 -0.1183 -vn -0.4437 -0.5256 0.7259 -vn -0.6450 -0.7642 -0.0000 -s 1 -f 51/45/19 52/46/20 46/47/19 -f 57/48/21 58/49/22 61/50/23 -f 63/51/24 65/52/25 62/53/26 -f 66/54/27 64/55/28 63/51/24 -f 68/56/29 67/57/30 66/54/27 -f 70/58/31 69/59/32 68/56/29 -f 73/60/33 74/61/34 71/62/35 -f 76/63/36 77/64/36 81/65/37 -f 53/66/38 73/60/33 54/67/39 -f 61/50/40 76/63/38 53/66/38 -f 60/68/41 77/64/40 61/50/40 -f 45/69/20 78/70/41 60/68/41 -f 62/53/26 84/71/42 83/72/43 -f 46/47/44 85/73/45 47/74/46 -f 47/74/46 83/72/43 48/75/47 -f 59/76/48 86/77/49 85/73/45 -f 85/73/45 62/53/26 83/72/43 -f 58/49/22 87/78/50 86/77/49 -f 86/77/49 63/51/24 62/53/26 -f 57/48/21 88/79/51 87/78/50 -f 87/78/50 66/54/27 63/51/24 -f 56/80/52 89/81/53 88/79/51 -f 89/81/53 66/54/27 88/79/51 -f 55/82/54 72/83/55 89/81/53 -f 72/83/55 68/56/29 89/81/53 -f 84/71/42 50/84/56 49/85/57 -f 90/86/58 51/45/59 50/84/56 -f 65/52/25 90/86/58 84/71/42 -f 91/87/60 79/88/61 90/86/58 -f 64/55/28 91/87/60 65/52/25 -f 92/89/62 80/90/63 91/87/60 -f 67/57/30 92/89/62 64/55/28 -f 93/91/64 81/65/37 92/89/62 -f 67/57/30 94/92/65 93/91/64 -f 94/92/65 82/93/66 93/91/64 -f 69/59/32 75/94/67 94/92/65 -f 94/92/65 75/94/67 74/61/68 -f 83/72/43 49/85/57 48/75/47 -f 52/46/20 45/69/20 46/47/19 -f 46/47/19 47/74/19 50/84/19 -f 47/74/19 48/75/19 50/84/19 -f 48/75/19 49/85/19 50/84/19 -f 50/84/19 51/45/19 46/47/19 -f 53/66/23 54/67/23 55/82/54 -f 53/66/23 55/82/54 56/80/52 -f 45/69/23 60/68/23 58/49/22 -f 60/68/23 61/50/23 58/49/22 -f 59/76/48 46/47/44 45/69/23 -f 58/49/22 59/76/48 45/69/23 -f 61/50/23 53/66/23 57/48/21 -f 53/66/23 56/80/52 57/48/21 -f 63/51/24 64/55/28 65/52/25 -f 66/54/27 67/57/30 64/55/28 -f 68/56/29 69/59/32 67/57/30 -f 70/58/31 71/62/69 69/59/32 -f 71/62/35 70/58/35 72/83/35 -f 55/82/70 54/67/39 73/60/33 -f 71/62/35 72/83/35 73/60/33 -f 72/83/35 55/82/70 73/60/33 -f 74/61/34 75/94/71 71/62/35 -f 77/64/36 78/70/36 80/90/63 -f 78/70/36 52/46/36 80/90/63 -f 52/46/36 51/45/59 79/88/61 -f 52/46/36 79/88/61 80/90/63 -f 74/61/68 73/60/23 76/63/36 -f 82/93/66 74/61/68 76/63/36 -f 81/65/37 82/93/66 76/63/36 -f 77/64/36 80/90/63 81/65/37 -f 53/66/38 76/63/38 73/60/33 -f 61/50/40 77/64/40 76/63/38 -f 60/68/41 78/70/41 77/64/40 -f 45/69/20 52/46/20 78/70/41 -f 62/53/26 65/52/25 84/71/42 -f 46/47/44 59/76/48 85/73/45 -f 47/74/46 85/73/45 83/72/43 -f 59/76/48 58/49/22 86/77/49 -f 85/73/45 86/77/49 62/53/26 -f 58/49/22 57/48/21 87/78/50 -f 86/77/49 87/78/50 63/51/24 -f 57/48/21 56/80/52 88/79/51 -f 87/78/50 88/79/51 66/54/27 -f 56/80/52 55/82/54 89/81/53 -f 89/81/53 68/56/29 66/54/27 -f 72/83/55 70/58/31 68/56/29 -f 84/71/42 90/86/58 50/84/56 -f 90/86/58 79/88/61 51/45/59 -f 65/52/25 91/87/60 90/86/58 -f 91/87/60 80/90/63 79/88/61 -f 64/55/28 92/89/62 91/87/60 -f 92/89/62 81/65/37 80/90/63 -f 67/57/30 93/91/64 92/89/62 -f 93/91/64 82/93/66 81/65/37 -f 67/57/30 69/59/32 94/92/65 -f 94/92/65 74/61/68 82/93/66 -f 69/59/32 71/62/69 75/94/67 -f 83/72/43 84/71/42 49/85/57 -o Plane.001 -v -0.706758 0.413916 0.079173 -v -0.706758 0.413916 0.133032 -v -0.706758 0.467775 0.133032 -v -0.706758 0.467775 0.079173 -v -0.274201 0.467775 0.079173 -v -0.638249 0.467775 0.133032 -v -0.638244 0.467775 0.132611 -v -0.274201 0.467775 0.132611 -v -0.274201 0.413916 0.132804 -v -0.274201 0.413916 0.079173 -v -0.274201 0.466244 0.132805 -v -0.638765 0.413916 0.132804 -v -0.638765 0.413916 0.133032 -v -0.638765 0.466254 0.133032 -v -0.602429 0.520191 0.120479 -v -0.201794 0.520191 0.120479 -v -0.201794 0.551348 0.104105 -v -0.558765 0.551348 0.104105 -v -0.629471 0.493740 0.130619 -v -0.201794 0.493740 0.130619 -v -0.638765 0.466292 0.134105 -v -0.201794 0.466292 0.134105 -v -0.638765 0.350993 0.134105 -v -0.201794 0.350993 0.134105 -v -0.602429 0.519875 0.119244 -v -0.558765 0.550972 0.102899 -v -0.201794 0.550972 0.102899 -v -0.201794 0.519861 0.119250 -v -0.201794 0.493549 0.129342 -v -0.629471 0.493568 0.129338 -v -0.201794 0.466243 0.132805 -v -0.201794 0.350993 0.132804 -v -0.638765 0.350993 0.132804 -vt 0.515296 0.663237 -vt 0.515296 0.682674 -vt 0.515296 0.663237 -vt 0.515296 0.682674 -vt 0.540019 0.682674 -vt 0.540021 0.682674 -vt 0.671399 0.682674 -vt 0.671399 0.682674 -vt 0.671399 0.682121 -vt 0.671399 0.663237 -vt 0.671399 0.663237 -vt 0.539833 0.663237 -vt 0.539833 0.663237 -vt 0.539833 0.682125 -vt 0.697530 0.701590 -vt 0.568704 0.712834 -vt 0.552946 0.701590 -vt 0.697530 0.692045 -vt 0.543187 0.692045 -vt 0.697530 0.682139 -vt 0.697530 0.640529 -vt 0.539833 0.682139 -vt 0.539833 0.640529 -vt 0.568704 0.712699 -vt 0.697530 0.701471 -vt 0.552946 0.701476 -vt 0.697530 0.691975 -vt 0.697530 0.682121 -vt 0.539833 0.640529 -vt 0.697530 0.640529 -vt 0.697530 0.712834 -vt 0.543187 0.691982 -vt 0.697530 0.712699 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 1.0000 -0.0002 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.4123 0.9111 -vn 0.0000 0.4652 0.8852 -vn 0.0000 0.3826 0.9239 -vn 0.0000 0.2437 0.9698 -vn 0.0000 0.1966 0.9805 -vn 0.0000 0.0631 0.9980 -vn 0.0000 0.0559 0.9984 -vn -0.0000 -0.4653 -0.8852 -vn 0.0000 -0.4124 -0.9110 -vn -0.0000 -0.3828 -0.9239 -vn -0.0000 -0.2437 -0.9698 -vn 0.0000 -0.0630 -0.9980 -vn 0.0000 -0.1258 -0.9921 -vn 0.0000 0.9547 -0.2976 -vn -0.3161 0.9058 -0.2821 -vn -0.3399 0.8980 -0.2793 -vn -0.6735 0.7163 -0.1824 -vn -0.8466 0.5274 -0.0712 -vn -0.8587 0.5080 -0.0675 -vn -0.9474 0.3198 -0.0136 -vn -0.9872 0.1592 -0.0056 -vn -0.9872 0.1597 -0.0062 -vn -0.6661 0.7225 -0.1852 -vn 0.0000 -0.4652 -0.8852 -vn -0.0000 -0.1964 -0.9805 -vn 0.0000 -0.1259 -0.9920 -vn -0.9471 0.3207 -0.0112 -s off -f 96/95/72 98/96/72 95/97/72 -f 97/98/73 100/99/73 101/100/73 -f 99/101/74 102/102/74 105/103/74 -f 104/104/75 103/105/75 106/106/75 -f 99/101/76 95/97/76 98/96/76 -f 96/95/77 107/107/77 108/108/77 -f 96/95/72 97/98/72 98/96/72 -f 102/102/78 99/101/78 101/100/78 -f 99/101/78 98/96/78 101/100/78 -f 98/96/78 97/98/78 101/100/78 -f 105/103/74 103/105/74 104/104/74 -f 104/104/74 99/101/74 105/103/74 -f 107/107/75 96/95/75 106/106/75 -f 96/95/75 95/97/75 106/106/75 -f 95/97/75 104/104/75 106/106/75 -f 99/101/76 104/104/76 95/97/76 -f 108/108/77 100/99/77 97/98/77 -f 97/98/77 96/95/77 108/108/77 -s 1 -f 110/109/79 112/110/80 109/111/81 -f 109/111/81 114/112/82 110/109/79 -f 113/113/83 116/114/84 114/112/82 -f 118/115/77 115/116/85 117/117/77 -f 120/118/86 122/119/87 119/120/88 -f 123/121/89 119/120/88 122/119/87 -f 125/122/90 105/103/90 102/102/91 -f 127/123/76 106/106/76 103/105/76 -f 117/117/75 126/124/75 118/115/75 -f 111/125/92 120/118/93 112/110/94 -f 110/109/74 123/121/74 122/119/74 -f 109/111/95 124/126/96 113/113/97 -f 114/112/74 125/122/74 123/121/74 -f 100/99/98 108/108/99 115/116/100 -f 115/116/100 108/108/99 107/107/72 -f 118/115/74 125/122/74 116/114/74 -f 112/110/94 119/120/101 109/111/95 -f 111/125/74 122/119/74 121/127/74 -f 110/109/79 111/125/80 112/110/80 -f 109/111/81 113/113/83 114/112/82 -f 113/113/83 115/116/85 116/114/84 -f 118/115/77 116/114/84 115/116/85 -f 120/118/86 121/127/102 122/119/87 -f 123/121/89 124/126/103 119/120/88 -f 102/102/91 101/100/104 124/126/103 -f 124/126/103 123/121/89 102/102/91 -f 123/121/89 125/122/90 102/102/91 -f 105/103/90 125/122/90 103/105/76 -f 125/122/90 126/124/76 103/105/76 -f 126/124/76 127/123/76 103/105/76 -f 117/117/75 127/123/75 126/124/75 -f 111/125/92 121/127/92 120/118/93 -f 110/109/74 114/112/74 123/121/74 -f 109/111/95 119/120/101 124/126/96 -f 114/112/74 116/114/74 125/122/74 -f 115/116/100 113/113/97 100/99/98 -f 113/113/97 124/126/96 100/99/98 -f 124/126/96 101/100/105 100/99/98 -f 106/106/72 127/123/72 107/107/72 -f 127/123/72 117/117/72 107/107/72 -f 117/117/72 115/116/100 107/107/72 -f 118/115/74 126/124/74 125/122/74 -f 112/110/94 120/118/93 119/120/101 -f 111/125/74 110/109/74 122/119/74 -o Cube.005_Cube.007 -v -0.849928 0.170624 -0.075429 -v -0.849928 0.170624 0.076654 -v -0.849928 0.210654 0.076654 -v -0.849928 0.210654 -0.075429 -v -0.731509 0.170624 -0.075429 -v -0.731509 0.170624 0.076654 -v -0.288424 0.100624 -0.062753 -v -0.288424 0.100624 0.063977 -v -0.334112 0.100624 0.063977 -v -0.334112 0.100624 -0.062753 -v -0.523278 0.140624 -0.062753 -v -0.523278 0.140624 0.063977 -v -0.627054 0.161879 0.063977 -v -0.627054 0.161879 -0.062753 -v -0.428800 0.170654 -0.075429 -v -0.428800 0.170654 0.076654 -v -0.328424 0.130654 0.076654 -v -0.328424 0.130654 -0.075429 -v -0.569176 0.210654 -0.075429 -v -0.569176 0.210654 0.076654 -v -0.300640 0.109795 0.076654 -v -0.291549 0.102969 0.073412 -v -0.291549 0.102970 -0.072187 -v -0.300640 0.109795 -0.075429 -v -0.375389 0.104504 0.063977 -v -0.375389 0.104504 -0.062753 -v -0.357071 0.101616 -0.062753 -v -0.357071 0.101616 0.063977 -v -0.674625 0.168387 0.076654 -v -0.596451 0.168877 0.076654 -v -0.488050 0.146675 0.076654 -v -0.342077 0.111023 0.076654 -v -0.336278 0.110109 0.076654 -v -0.329011 0.109795 0.076654 -v -0.674625 0.168387 0.063977 -v -0.674625 0.168387 -0.062753 -v -0.674625 0.168387 -0.075429 -v -0.366869 0.106172 0.073412 -v -0.351753 0.103789 0.073412 -v -0.342077 0.111023 -0.075429 -v -0.336278 0.110109 -0.075429 -v -0.351753 0.103789 -0.072187 -v -0.366869 0.106172 -0.072187 -v -0.332807 0.102969 0.073412 -v -0.329011 0.109795 -0.075429 -v -0.332807 0.102970 -0.072187 -v -0.514267 0.142171 0.073412 -v -0.488050 0.146675 -0.075429 -v -0.514267 0.142171 -0.072187 -v -0.619227 0.163669 0.073412 -v -0.596451 0.168877 -0.075429 -v -0.619227 0.163669 -0.072187 -vt 0.437463 0.717486 -vt 0.437463 0.729525 -vt 0.437463 0.717486 -vt 0.473076 0.717486 -vt 0.473076 0.717486 -vt 0.606328 0.696434 -vt 0.592588 0.696434 -vt 0.606328 0.696434 -vt 0.535699 0.708464 -vt 0.504490 0.714856 -vt 0.535699 0.708464 -vt 0.564112 0.717495 -vt 0.594299 0.705466 -vt 0.564112 0.717495 -vt 0.521896 0.729525 -vt 0.521896 0.729525 -vt 0.437463 0.729525 -vt 0.605389 0.697140 -vt 0.602655 0.699193 -vt 0.580175 0.697602 -vt 0.585684 0.696733 -vt 0.580175 0.697602 -vt 0.513693 0.716961 -vt 0.546293 0.710284 -vt 0.585684 0.696733 -vt 0.592588 0.696434 -vt 0.490183 0.716814 -vt 0.504490 0.714856 -vt 0.490183 0.716814 -vt 0.590193 0.699562 -vt 0.587283 0.697386 -vt 0.591937 0.699287 -vt 0.582737 0.698103 -vt 0.590193 0.699562 -vt 0.587283 0.697386 -vt 0.582737 0.698103 -vt 0.592981 0.697140 -vt 0.594123 0.699193 -vt 0.591937 0.699287 -vt 0.592981 0.697140 -vt 0.538409 0.708929 -vt 0.605389 0.697140 -vt 0.602655 0.699193 -vt 0.594123 0.699193 -vt 0.546293 0.710284 -vt 0.538409 0.708929 -vt 0.490183 0.716814 -vt 0.506844 0.715395 -vt 0.490183 0.716814 -vt 0.513693 0.716961 -vt 0.506844 0.715395 -vt 0.594299 0.705466 -vn -1.0000 0.0000 0.0000 -vn -0.0197 -0.9998 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 -0.9941 0.1081 -vn -0.0223 -0.9922 -0.1228 -vn 0.0000 -0.9941 -0.1082 -vn -0.2118 -0.9619 0.1730 -vn -0.1403 -0.9820 -0.1261 -vn -0.2118 -0.9619 -0.1730 -vn 0.3225 0.9466 0.0000 -vn 0.4896 0.8720 -0.0000 -vn 0.1384 0.9904 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.6004 0.7997 -0.0000 -vn -0.2019 -0.9639 -0.1737 -vn -0.1067 -0.9841 0.1419 -vn -0.2019 -0.9639 0.1737 -vn 0.0000 0.0000 1.0000 -vn -0.0276 -0.1577 0.9871 -vn -0.0343 -0.1438 0.9890 -vn -0.1067 -0.9841 -0.1420 -vn -0.0223 -0.9922 0.1228 -vn -0.0875 -0.9962 0.0000 -vn -0.1403 -0.9821 0.1260 -vn -0.0295 -0.1760 0.9839 -vn -0.0722 -0.7453 0.6628 -vn -0.0130 -0.2157 0.9764 -vn -0.1341 -0.6933 0.7080 -vn -0.0295 -0.1760 -0.9839 -vn -0.0722 -0.7453 -0.6628 -vn -0.1341 -0.6933 -0.7080 -vn -0.0172 -0.7737 0.6334 -vn -0.0034 -0.2211 0.9752 -vn -0.0130 -0.2157 -0.9764 -vn -0.0172 -0.7736 -0.6334 -vn -0.1529 -0.6729 0.7238 -vn 0.0000 -0.8913 0.4534 -vn 0.0000 -0.3452 0.9385 -vn 0.0000 -0.3453 -0.9385 -vn -0.0034 -0.2212 -0.9752 -vn 0.0000 -0.8913 -0.4535 -vn -0.0343 -0.1438 -0.9890 -vn -0.1529 -0.6728 -0.7238 -vn -0.0562 -0.6938 0.7179 -vn -0.0844 -0.7745 0.6269 -vn -0.0562 -0.6938 -0.7179 -vn -0.0276 -0.1577 -0.9871 -vn -0.0844 -0.7745 -0.6269 -vn 0.0000 0.0000 -1.0000 -vn 0.6005 0.7996 0.0001 -s 1 -f 129/128/106 131/129/106 128/130/106 -f 133/131/107 128/130/108 132/132/107 -f 135/133/109 137/134/110 134/135/111 -f 139/136/112 141/137/113 138/138/114 -f 143/139/115 145/140/116 142/141/115 -f 147/142/117 142/141/115 146/143/117 -f 130/144/118 146/143/117 131/129/118 -f 134/135/119 150/145/119 151/146/119 -f 153/147/120 155/148/121 152/149/122 -f 147/142/123 157/150/124 158/151/125 -f 154/152/126 136/153/127 155/148/121 -f 163/154/128 140/155/129 162/156/128 -f 132/132/107 163/154/128 162/156/128 -f 152/149/122 138/138/114 153/147/120 -f 159/157/130 166/158/131 160/159/132 -f 165/160/133 155/148/121 166/158/131 -f 167/161/134 169/162/135 170/163/136 -f 170/163/136 154/152/126 153/147/120 -f 160/159/132 171/164/137 161/165/138 -f 166/158/131 136/153/127 171/164/137 -f 168/166/139 173/167/140 169/162/135 -f 169/162/135 137/134/110 154/152/126 -f 152/149/122 174/168/141 139/136/112 -f 165/160/133 158/151/125 174/168/141 -f 136/153/127 149/169/142 171/164/137 -f 171/164/137 148/170/143 161/165/138 -f 151/146/144 173/167/140 172/171/145 -f 150/145/146 137/134/110 173/167/140 -f 175/172/147 170/163/136 176/173/148 -f 176/173/148 153/147/120 138/138/114 -f 157/150/124 156/174/149 177/175/150 -f 156/174/149 140/155/129 177/175/150 -f 164/176/151 178/177/152 179/178/153 -f 164/176/151 141/137/113 163/154/128 -f 178/177/152 176/173/148 179/178/153 -f 179/178/153 138/138/114 141/137/113 -f 157/150/124 174/168/141 158/151/125 -f 177/175/150 139/136/112 174/168/141 -f 146/143/154 175/172/147 178/177/152 -f 129/128/106 130/144/106 131/129/106 -f 133/131/107 129/128/108 128/130/108 -f 135/133/109 136/153/127 137/134/110 -f 139/136/112 140/155/129 141/137/113 -f 143/139/115 144/179/116 145/140/116 -f 147/142/117 143/139/115 142/141/115 -f 130/144/118 147/142/117 146/143/117 -f 151/146/119 145/140/116 134/135/119 -f 145/140/116 144/179/116 134/135/119 -f 144/179/116 148/170/119 135/133/119 -f 148/170/119 149/169/155 135/133/119 -f 135/133/119 134/135/119 144/179/116 -f 153/147/120 154/152/126 155/148/121 -f 148/170/143 144/179/123 161/165/138 -f 144/179/123 143/139/123 159/157/130 -f 161/165/138 144/179/123 160/159/132 -f 143/139/123 147/142/123 158/151/125 -f 147/142/123 130/144/123 133/131/123 -f 157/150/124 147/142/123 156/174/149 -f 130/144/123 129/128/123 133/131/123 -f 133/131/123 156/174/149 147/142/123 -f 158/151/125 159/157/130 143/139/123 -f 159/157/130 160/159/132 144/179/123 -f 154/152/126 137/134/110 136/153/127 -f 163/154/128 141/137/113 140/155/129 -f 156/174/149 133/131/107 162/156/128 -f 133/131/107 132/132/107 162/156/128 -f 132/132/107 164/176/151 163/154/128 -f 152/149/122 139/136/112 138/138/114 -f 159/157/130 165/160/133 166/158/131 -f 165/160/133 152/149/122 155/148/121 -f 167/161/134 168/166/139 169/162/135 -f 170/163/136 169/162/135 154/152/126 -f 160/159/132 166/158/131 171/164/137 -f 166/158/131 155/148/121 136/153/127 -f 168/166/139 172/171/145 173/167/140 -f 169/162/135 173/167/140 137/134/110 -f 152/149/122 165/160/133 174/168/141 -f 165/160/133 159/157/130 158/151/125 -f 136/153/127 135/133/109 149/169/142 -f 171/164/137 149/169/142 148/170/143 -f 151/146/144 150/145/146 173/167/140 -f 150/145/146 134/135/111 137/134/110 -f 175/172/147 167/161/134 170/163/136 -f 176/173/148 170/163/136 153/147/120 -f 156/174/149 162/156/128 140/155/129 -f 164/176/151 179/178/153 141/137/113 -f 178/177/152 175/172/147 176/173/148 -f 179/178/153 176/173/148 138/138/114 -f 157/150/124 177/175/150 174/168/141 -f 177/175/150 140/155/129 139/136/112 -f 128/130/154 131/129/154 132/132/154 -f 131/129/154 146/143/154 132/132/154 -f 146/143/154 142/141/154 175/172/147 -f 142/141/154 145/140/154 167/161/134 -f 167/161/134 145/140/154 168/166/139 -f 145/140/154 151/146/144 172/171/145 -f 172/171/145 168/166/139 145/140/154 -f 167/161/134 175/172/147 142/141/154 -f 178/177/152 164/176/151 146/143/154 -f 164/176/151 132/132/154 146/143/154 -o Cube.004_Cube.005 -v -0.288131 0.078364 0.100627 -v -0.398224 0.190299 0.100627 -v -0.398224 0.190299 -0.099403 -v -0.288131 0.078364 -0.099403 -v -0.288131 0.078364 -0.081922 -v -0.396897 0.188950 -0.081922 -v -0.396897 0.188950 0.083147 -v -0.288131 0.078364 0.083147 -v -0.189154 0.190299 0.100627 -v -0.189154 0.190299 -0.099403 -v -0.189154 0.078364 0.100627 -v -0.189154 0.078364 -0.099403 -v -0.246637 0.078364 0.083147 -v -0.246637 0.078364 -0.081922 -v -0.246637 0.188950 -0.081922 -v -0.246637 0.188950 0.083147 -vt 0.371558 0.219091 -vt 0.371558 0.219091 -vt 0.371159 0.219497 -vt 0.434034 0.219497 -vt 0.371159 0.219497 -vt 0.434034 0.219497 -vt 0.434034 0.185834 -vt 0.434034 0.185834 -vt 0.416747 0.185834 -vt 0.404268 0.185834 -vt 0.404268 0.185834 -vt 0.416747 0.219091 -vt 0.416747 0.219091 -vt 0.416747 0.185834 -vt 0.404268 0.185834 -vt 0.404268 0.185834 -vn -0.7129 -0.7012 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -vn -1.0000 -0.0000 0.0000 -vn -0.7129 -0.7013 0.0000 -s off -f 185/180/156 186/181/156 181/182/156 -f 181/182/157 189/183/157 182/184/157 -f 188/185/158 191/186/158 189/183/158 -f 191/186/159 190/187/159 193/188/159 -f 189/183/160 183/189/160 182/184/160 -f 188/185/161 180/190/161 190/187/161 -f 195/191/159 185/180/159 194/192/159 -f 194/192/162 192/193/162 195/191/162 -f 194/192/161 184/194/161 193/188/161 -f 195/191/160 187/195/160 186/181/160 -f 187/195/156 180/190/156 186/181/156 -f 180/190/156 181/182/156 186/181/156 -f 182/184/156 183/189/156 185/180/156 -f 183/189/156 184/194/156 185/180/156 -f 182/184/163 185/180/163 181/182/163 -f 181/182/157 188/185/157 189/183/157 -f 188/185/158 190/187/158 191/186/158 -f 193/188/159 184/194/159 183/189/159 -f 190/187/159 180/190/159 192/193/159 -f 180/190/159 187/195/159 192/193/159 -f 193/188/159 183/189/159 191/186/159 -f 190/187/159 192/193/159 193/188/159 -f 189/183/160 191/186/160 183/189/160 -f 188/185/161 181/182/161 180/190/161 -f 195/191/159 186/181/159 185/180/159 -f 194/192/162 193/188/162 192/193/162 -f 194/192/161 185/180/161 184/194/161 -f 195/191/160 192/193/160 187/195/160 -o Cylinder.007 -v -1.092410 0.183821 -0.054357 -v -1.092410 0.183821 0.062757 -v -1.068940 0.174100 0.062757 -v -1.068940 0.174100 -0.054357 -v -1.059218 0.150630 0.062757 -v -1.059218 0.150630 -0.054357 -v -1.068940 0.127160 0.062757 -v -1.068940 0.127160 -0.054357 -v -1.092410 0.117438 0.062757 -v -1.092410 0.117438 -0.054357 -v -1.115880 0.127160 0.062757 -v -1.115880 0.127160 -0.054357 -v -1.125601 0.150630 0.062757 -v -1.125601 0.150630 -0.054357 -v -1.115880 0.174100 0.062757 -v -1.115880 0.174100 -0.054357 -vt 0.486610 0.403096 -vt 0.493668 0.400172 -vt 0.486610 0.403096 -vt 0.493668 0.400172 -vt 0.496592 0.393114 -vt 0.496592 0.393114 -vt 0.493668 0.386056 -vt 0.493668 0.386056 -vt 0.486610 0.383132 -vt 0.486610 0.383132 -vt 0.479552 0.386056 -vt 0.479552 0.386056 -vt 0.476628 0.393114 -vt 0.476628 0.393114 -vt 0.479552 0.400172 -vt 0.479552 0.400172 -vn 0.0000 1.0000 0.0000 -vn 0.7071 0.7071 0.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.7071 -0.7071 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn -0.7071 0.7071 0.0000 -vn 0.0000 0.0000 -1.0000 -s 1 -f 197/196/164 199/197/165 196/198/164 -f 198/199/165 201/200/166 199/197/165 -f 200/201/166 203/202/167 201/200/166 -f 202/203/167 205/204/168 203/202/167 -f 204/205/168 207/206/169 205/204/168 -f 206/207/169 209/208/170 207/206/169 -f 200/201/171 197/196/171 208/209/171 -f 208/209/170 211/210/172 209/208/170 -f 210/211/172 196/198/164 211/210/172 -f 209/208/173 211/210/173 203/202/173 -f 197/196/164 198/199/165 199/197/165 -f 198/199/165 200/201/166 201/200/166 -f 200/201/166 202/203/167 203/202/167 -f 202/203/167 204/205/168 205/204/168 -f 204/205/168 206/207/169 207/206/169 -f 206/207/169 208/209/170 209/208/170 -f 200/201/171 198/199/171 197/196/171 -f 197/196/171 210/211/171 208/209/171 -f 208/209/171 206/207/171 204/205/171 -f 204/205/171 202/203/171 208/209/171 -f 202/203/171 200/201/171 208/209/171 -f 208/209/170 210/211/172 211/210/172 -f 210/211/172 197/196/164 196/198/164 -f 211/210/173 196/198/173 203/202/173 -f 196/198/173 199/197/173 203/202/173 -f 199/197/173 201/200/173 203/202/173 -f 203/202/173 205/204/173 207/206/173 -f 207/206/173 209/208/173 203/202/173 -o Cube.003_Cube -v -1.578045 0.212030 -0.054842 -v -1.578045 0.212030 0.057698 -v -0.861955 0.212030 0.057698 -v -0.861955 0.212030 -0.054842 -v -1.578045 0.203298 -0.054842 -v -1.578045 0.203298 0.057698 -v -1.128281 0.027130 0.057698 -v -1.128281 0.027130 -0.054842 -v -1.114436 0.065059 -0.054842 -v -1.114436 0.065059 0.057698 -v -1.454635 0.065231 -0.054842 -v -1.454635 0.065231 0.057698 -v -1.481781 0.118060 0.057698 -v -1.481781 0.118060 -0.054842 -v -1.527702 0.168281 0.057698 -v -1.527702 0.168281 -0.054842 -v -0.861955 0.202811 0.057698 -v -0.861955 0.202811 -0.054842 -v -1.450844 0.044421 -0.054842 -v -1.450844 0.044421 0.057698 -v -1.062335 0.121520 -0.054842 -v -1.062335 0.121520 0.057698 -v -0.962640 0.167855 -0.054842 -v -0.962640 0.167855 0.057698 -v -1.074680 0.124782 -0.054842 -v -1.125464 0.065837 -0.054842 -v -1.125464 0.116276 -0.054842 -v -1.130869 0.139630 -0.054842 -v -1.121683 0.141171 -0.054842 -v -1.115880 0.127160 -0.054842 -v -1.092410 0.117438 -0.054842 -v -1.125601 0.150630 -0.054842 -v -1.148853 0.159885 -0.054842 -v -1.174411 0.171886 -0.054842 -v -1.206501 0.174873 -0.054842 -v -1.364767 0.174873 -0.054842 -v -1.396858 0.171886 -0.054842 -v -1.422416 0.159885 -0.054842 -v -1.440399 0.139630 -0.054842 -v -1.445804 0.116276 -0.054842 -v -1.445804 0.065837 -0.054842 -v -1.068940 0.127160 -0.054842 -v -1.059218 0.150630 -0.054842 -v -1.068940 0.174100 -0.054842 -v -1.092410 0.183821 -0.054842 -v -1.115880 0.174100 -0.054842 -v -1.144751 0.003110 -0.054842 -v -1.181248 -0.005077 -0.054842 -v -1.396052 -0.003671 -0.054842 -v -1.435488 0.014101 -0.054842 -v -1.440399 0.042483 -0.054842 -v -1.422416 0.022228 -0.054842 -v -1.396858 0.010226 -0.054842 -v -1.364767 0.007240 -0.054842 -v -1.206501 0.007240 -0.054842 -v -1.174411 0.010226 -0.054842 -v -1.148853 0.022228 -0.054842 -v -1.130869 0.042483 -0.054842 -v -1.181248 -0.005077 0.057698 -v -1.144751 0.003110 0.057698 -v -1.435488 0.014101 0.057698 -v -1.396052 -0.003671 0.057698 -v -1.440399 0.042483 0.057698 -v -1.445804 0.065837 0.057698 -v -1.125464 0.065837 0.057698 -v -1.130869 0.042483 0.057698 -v -1.148853 0.022228 0.057698 -v -1.174411 0.010226 0.057698 -v -1.206501 0.007240 0.057698 -v -1.364767 0.007240 0.057698 -v -1.396858 0.010226 0.057698 -v -1.422416 0.022228 0.057698 -v -1.121683 0.141171 0.057698 -v -1.130869 0.139630 0.057698 -v -1.125464 0.116276 0.057698 -v -1.074680 0.124782 0.057698 -v -1.092410 0.117438 0.057698 -v -1.115880 0.127160 0.057698 -v -1.068940 0.127160 0.057698 -v -1.445804 0.116276 0.057698 -v -1.440399 0.139630 0.057698 -v -1.422416 0.159885 0.057698 -v -1.396858 0.171886 0.057698 -v -1.364767 0.174873 0.057698 -v -1.206501 0.174873 0.057698 -v -1.174411 0.171886 0.057698 -v -1.148853 0.159885 0.057698 -v -1.125601 0.150630 0.057698 -v -1.115880 0.174100 0.057698 -v -1.092410 0.183821 0.057698 -v -1.068940 0.174100 0.057698 -v -1.059218 0.150630 0.057698 -vt 0.176155 0.159372 -vt 0.351182 0.159372 -vt 0.176155 0.159372 -vt 0.176155 0.157238 -vt 0.176155 0.157238 -vt 0.286086 0.114179 -vt 0.289470 0.123449 -vt 0.286086 0.114179 -vt 0.206319 0.123491 -vt 0.199684 0.136404 -vt 0.206319 0.123491 -vt 0.199684 0.136404 -vt 0.188460 0.148679 -vt 0.188460 0.148679 -vt 0.351182 0.159372 -vt 0.351182 0.157119 -vt 0.207246 0.118405 -vt 0.207246 0.118405 -vt 0.289470 0.123449 -vt 0.302205 0.137250 -vt 0.302205 0.137250 -vt 0.326572 0.148575 -vt 0.326572 0.148575 -vt 0.351182 0.157119 -vt 0.289117 0.138628 -vt 0.294854 0.136252 -vt 0.286775 0.135968 -vt 0.220441 0.149560 -vt 0.214194 0.146627 -vt 0.220638 0.106650 -vt 0.220441 0.110047 -vt 0.228285 0.109317 -vt 0.273140 0.106307 -vt 0.282061 0.108308 -vt 0.273140 0.106307 -vt 0.282061 0.108308 -vt 0.210999 0.110994 -vt 0.210999 0.110994 -vt 0.220638 0.106650 -vt 0.228285 0.109317 -vt 0.220441 0.110047 -vt 0.286775 0.135968 -vt 0.294854 0.136252 -vt 0.266968 0.150290 -vt 0.294854 0.152477 -vt 0.286775 0.123640 -vt 0.208478 0.123640 -vt 0.208478 0.135968 -vt 0.208478 0.123640 -vt 0.266968 0.109317 -vt 0.266968 0.109317 -vt 0.228285 0.150290 -vt 0.228285 0.150290 -vt 0.214194 0.112981 -vt 0.214194 0.112981 -vt 0.209799 0.117931 -vt 0.209799 0.117931 -vt 0.220441 0.149560 -vt 0.214194 0.146627 -vt 0.209799 0.141676 -vt 0.209799 0.141676 -vt 0.208478 0.135968 -vt 0.285454 0.141676 -vt 0.285454 0.141676 -vt 0.281058 0.146627 -vt 0.281058 0.146627 -vt 0.274811 0.149560 -vt 0.274811 0.149560 -vt 0.266968 0.150290 -vt 0.274811 0.110047 -vt 0.274811 0.110047 -vt 0.281058 0.112981 -vt 0.281058 0.112981 -vt 0.285454 0.117931 -vt 0.285454 0.117931 -vt 0.286775 0.123640 -vt 0.300590 0.150101 -vt 0.294854 0.152477 -vt 0.302967 0.144365 -vt 0.300590 0.150101 -vt 0.300590 0.138628 -vt 0.302967 0.144365 -vt 0.299187 0.138047 -vt 0.299187 0.138047 -vt 0.289117 0.138628 -vt 0.287699 0.142053 -vt 0.286741 0.144365 -vt 0.287699 0.142053 -vt 0.289117 0.150101 -vt 0.286741 0.144365 -vt 0.289117 0.150101 -vt 0.300590 0.138628 -vn 0.0000 1.0000 0.0000 -vn -0.8863 -0.4631 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.8891 -0.4578 -0.0000 -vn 0.8538 -0.5207 0.0000 -vn -0.9469 -0.3216 0.0000 -vn -0.8210 -0.5710 0.0000 -vn -0.6586 -0.7525 0.0000 -vn 1.0000 0.0000 0.0000 -vn -0.9478 -0.3188 -0.0000 -vn 0.5894 -0.8078 0.0000 -vn 0.3752 -0.9269 0.0000 -vn 0.3280 -0.9447 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.1069 -0.9943 -0.0000 -vn 0.5607 -0.8280 -0.0000 -vn -0.6909 -0.7230 -0.0000 -vn -0.2133 -0.9770 -0.0000 -vn 0.0000 0.0000 1.0000 -vn -0.9935 0.1135 0.0000 -vn -0.9935 -0.1135 0.0000 -vn 0.9935 0.1135 0.0000 -vn 0.9935 -0.1135 0.0000 -vn 0.0464 0.9989 0.0000 -vn -0.0464 0.9989 0.0000 -vn 0.0464 -0.9989 0.0000 -vn -0.0464 -0.9989 0.0000 -vn 0.2628 0.9649 0.0000 -vn 0.5987 0.8010 0.0000 -vn 0.8885 0.4589 0.0000 -vn 0.2628 -0.9649 0.0000 -vn 0.5987 -0.8010 0.0000 -vn 0.8885 -0.4589 0.0000 -vn -0.8885 -0.4589 0.0000 -vn -0.5987 -0.8010 0.0000 -vn -0.2628 -0.9649 0.0000 -vn -0.2628 0.9649 0.0000 -vn -0.5987 0.8010 0.0000 -vn -0.8885 0.4589 0.0000 -vn -0.7071 -0.7071 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.7071 0.7071 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.7071 -0.7071 0.0000 -s 1 -f 213/212/174 215/213/174 212/214/174 -f 217/215/175 212/214/176 216/216/175 -f 219/217/177 221/218/178 218/219/177 -f 223/220/179 225/221/180 222/222/179 -f 224/223/180 227/224/181 225/221/180 -f 226/225/181 216/216/175 227/224/181 -f 214/226/182 229/227/182 215/213/182 -f 231/228/183 222/222/179 230/229/183 -f 220/230/178 233/231/184 221/218/178 -f 232/232/184 235/233/185 233/231/184 -f 234/234/185 228/235/186 235/233/185 -f 241/236/187 242/237/187 238/238/187 -f 248/239/187 249/240/187 227/224/187 -f 260/241/187 264/242/187 265/243/187 -f 259/244/188 271/245/189 270/246/188 -f 258/247/189 218/219/177 271/245/189 -f 230/229/183 272/248/190 231/228/183 -f 261/249/190 273/250/191 272/248/190 -f 273/250/191 259/244/188 270/246/188 -f 281/251/192 282/252/192 273/250/192 -f 286/253/192 221/218/192 288/254/192 -f 296/255/192 301/256/192 213/212/192 -f 237/257/193 286/253/194 238/238/194 -f 252/258/195 291/259/196 275/260/195 -f 265/243/197 280/261/198 266/262/198 -f 247/263/199 296/255/200 295/264/199 -f 264/242/201 281/251/197 265/243/197 -f 264/242/201 283/265/202 282/252/201 -f 263/266/202 274/267/203 283/265/202 -f 262/268/203 275/260/195 274/267/203 -f 248/239/204 295/264/199 294/269/204 -f 249/240/205 294/269/204 293/270/205 -f 250/271/206 293/270/205 292/272/206 -f 292/272/206 251/273/196 250/271/206 -f 238/238/194 285/274/207 239/275/207 -f 239/275/207 298/276/208 244/277/208 -f 244/277/208 297/278/209 245/279/209 -f 246/280/200 297/278/209 296/255/200 -f 266/262/198 279/281/210 267/282/210 -f 267/282/210 278/283/211 268/284/211 -f 268/284/211 277/285/212 269/286/212 -f 269/286/212 276/287/193 237/257/193 -f 255/288/213 301/256/214 256/289/214 -f 254/290/176 302/291/213 255/288/213 -f 253/292/215 303/293/176 254/290/176 -f 236/294/216 288/254/174 287/295/216 -f 242/237/174 289/296/217 288/254/174 -f 240/297/218 299/298/182 284/299/218 -f 300/300/219 243/301/182 257/302/219 -f 257/302/219 301/256/214 300/300/219 -f 213/212/174 214/226/174 215/213/174 -f 217/215/175 213/212/176 212/214/176 -f 219/217/177 220/230/178 221/218/178 -f 223/220/179 224/223/180 225/221/180 -f 224/223/180 226/225/181 227/224/181 -f 226/225/181 217/215/175 216/216/175 -f 214/226/182 228/235/182 229/227/182 -f 231/228/183 223/220/179 222/222/179 -f 220/230/178 232/232/184 233/231/184 -f 232/232/184 234/234/185 235/233/185 -f 234/234/185 229/227/186 228/235/186 -f 242/237/187 236/294/187 232/232/187 -f 232/232/187 220/230/187 242/237/187 -f 220/230/187 237/257/187 238/238/187 -f 242/237/187 220/230/187 238/238/187 -f 238/238/187 239/275/187 241/236/187 -f 239/275/187 240/297/187 241/236/187 -f 243/301/187 240/297/187 239/275/187 -f 243/301/187 239/275/187 244/277/187 -f 257/302/187 243/301/187 244/277/187 -f 257/302/187 244/277/187 245/279/187 -f 256/289/187 257/302/187 245/279/187 -f 256/289/187 245/279/187 246/280/187 -f 256/289/187 246/280/187 212/214/187 -f 246/280/187 247/263/187 212/214/187 -f 232/232/187 236/294/187 253/292/187 -f 215/213/187 229/227/187 234/234/187 -f 234/234/187 232/232/187 254/290/187 -f 232/232/187 253/292/187 254/290/187 -f 216/216/187 212/214/187 227/224/187 -f 212/214/187 215/213/187 256/289/187 -f 212/214/187 247/263/187 248/239/187 -f 227/224/187 212/214/187 248/239/187 -f 215/213/187 234/234/187 256/289/187 -f 234/234/187 254/290/187 255/288/187 -f 234/234/187 255/288/187 256/289/187 -f 252/258/187 222/222/187 251/273/187 -f 222/222/187 225/221/187 251/273/187 -f 251/273/187 225/221/187 250/271/187 -f 225/221/187 227/224/187 250/271/187 -f 249/240/187 250/271/187 227/224/187 -f 269/286/187 237/257/187 220/230/187 -f 220/230/187 219/217/187 269/286/187 -f 219/217/187 258/247/187 268/284/187 -f 269/286/187 219/217/187 268/284/187 -f 258/247/187 259/244/187 267/282/187 -f 259/244/187 260/241/187 265/243/187 -f 260/241/187 261/249/187 263/266/187 -f 261/249/187 230/229/187 262/268/187 -f 263/266/187 261/249/187 262/268/187 -f 230/229/187 222/222/187 252/258/187 -f 230/229/187 252/258/187 262/268/187 -f 267/282/187 268/284/187 258/247/187 -f 266/262/187 267/282/187 259/244/187 -f 260/241/187 263/266/187 264/242/187 -f 265/243/187 266/262/187 259/244/187 -f 259/244/188 258/247/189 271/245/189 -f 258/247/189 219/217/177 218/219/177 -f 230/229/183 261/249/190 272/248/190 -f 261/249/190 260/241/191 273/250/191 -f 273/250/191 260/241/191 259/244/188 -f 274/267/192 275/260/192 231/228/192 -f 275/260/192 223/220/192 231/228/192 -f 231/228/192 272/248/192 274/267/192 -f 273/250/192 270/246/192 281/251/192 -f 270/246/192 271/245/192 279/281/192 -f 281/251/192 270/246/192 280/261/192 -f 271/245/192 218/219/192 278/283/192 -f 218/219/192 221/218/192 277/285/192 -f 221/218/192 276/287/192 277/285/192 -f 218/219/192 277/285/192 278/283/192 -f 283/265/192 274/267/192 272/248/192 -f 271/245/192 278/283/192 279/281/192 -f 283/265/192 272/248/192 273/250/192 -f 282/252/192 283/265/192 273/250/192 -f 279/281/192 280/261/192 270/246/192 -f 289/296/192 284/299/192 285/274/192 -f 286/253/192 276/287/192 221/218/192 -f 289/296/192 285/274/192 286/253/192 -f 233/231/192 287/295/192 288/254/192 -f 288/254/192 289/296/192 286/253/192 -f 221/218/192 233/231/192 288/254/192 -f 290/303/192 287/295/192 233/231/192 -f 235/233/192 228/235/192 214/226/192 -f 290/303/192 233/231/192 303/293/192 -f 233/231/192 235/233/192 303/293/192 -f 214/226/192 213/212/192 301/256/192 -f 213/212/192 217/215/192 226/225/192 -f 295/264/192 213/212/192 294/269/192 -f 213/212/192 295/264/192 296/255/192 -f 213/212/192 226/225/192 294/269/192 -f 303/293/192 235/233/192 302/291/192 -f 235/233/192 214/226/192 301/256/192 -f 302/291/192 235/233/192 301/256/192 -f 224/223/192 223/220/192 291/259/192 -f 223/220/192 275/260/192 291/259/192 -f 226/225/192 224/223/192 292/272/192 -f 224/223/192 291/259/192 292/272/192 -f 285/274/192 284/299/192 299/298/192 -f 298/276/192 285/274/192 299/298/192 -f 298/276/192 299/298/192 300/300/192 -f 297/278/192 298/276/192 300/300/192 -f 297/278/192 300/300/192 301/256/192 -f 296/255/192 297/278/192 301/256/192 -f 226/225/192 292/272/192 293/270/192 -f 226/225/192 293/270/192 294/269/192 -f 237/257/193 276/287/193 286/253/194 -f 252/258/195 251/273/196 291/259/196 -f 265/243/197 281/251/197 280/261/198 -f 247/263/199 246/280/200 296/255/200 -f 264/242/201 282/252/201 281/251/197 -f 264/242/201 263/266/202 283/265/202 -f 263/266/202 262/268/203 274/267/203 -f 262/268/203 252/258/195 275/260/195 -f 248/239/204 247/263/199 295/264/199 -f 249/240/205 248/239/204 294/269/204 -f 250/271/206 249/240/205 293/270/205 -f 292/272/206 291/259/196 251/273/196 -f 238/238/194 286/253/194 285/274/207 -f 239/275/207 285/274/207 298/276/208 -f 244/277/208 298/276/208 297/278/209 -f 246/280/200 245/279/209 297/278/209 -f 266/262/198 280/261/198 279/281/210 -f 267/282/210 279/281/210 278/283/211 -f 268/284/211 278/283/211 277/285/212 -f 269/286/212 277/285/212 276/287/193 -f 255/288/213 302/291/213 301/256/214 -f 254/290/176 303/293/176 302/291/213 -f 253/292/215 290/303/215 303/293/176 -f 290/303/215 253/292/215 236/294/216 -f 236/294/216 242/237/174 288/254/174 -f 287/295/216 290/303/215 236/294/216 -f 242/237/174 241/236/217 289/296/217 -f 284/299/218 289/296/217 241/236/217 -f 240/297/218 243/301/182 299/298/182 -f 284/299/218 241/236/217 240/297/218 -f 300/300/219 299/298/182 243/301/182 -f 257/302/219 256/289/214 301/256/214 -o Cube.002_Cube.004 -v 0.026408 0.393839 0.139055 -v -0.021028 0.393839 0.139055 -v -0.023362 0.393896 0.151552 -v 0.028355 0.393564 0.151552 -v 1.037985 0.393839 -0.120188 -v 1.037985 0.100576 -0.120188 -v 1.013396 0.099485 -0.121502 -v 1.013400 0.393839 -0.121501 -v 1.660505 0.047403 -0.079038 -v 1.660505 0.047403 0.080263 -v 1.037985 0.047403 0.080110 -v 1.037985 0.047403 -0.078885 -v 0.995425 0.393839 0.125895 -v 0.995410 0.096349 0.125900 -v 1.013396 0.099485 0.122727 -v 1.013400 0.393839 0.122725 -v 0.226861 0.392465 0.139055 -v 0.226861 0.179659 0.139055 -v 0.269772 0.176783 0.139055 -v 0.293139 0.184279 0.139055 -v 0.293139 0.392465 0.139055 -v 0.176861 0.156742 0.139055 -v 0.193139 0.179659 0.139055 -v 0.193139 0.392465 0.139055 -v 0.026381 0.098712 0.139055 -v 0.093139 0.124456 0.139055 -v 0.093139 0.392051 0.139055 -v 0.126861 0.392051 0.139055 -v 0.126861 0.137460 0.139055 -v 0.143139 0.143738 0.139055 -v 0.143139 0.392051 0.139055 -v 0.176861 0.392051 0.139055 -v 0.516984 0.167893 0.139055 -v 0.510000 0.163019 0.139055 -v 0.410000 0.163019 0.139055 -v 0.310000 0.163019 0.139055 -v 0.303016 0.167893 0.139055 -v 0.293139 0.179659 0.139055 -v 0.210000 0.163019 0.139055 -v 0.176861 0.100073 0.139055 -v 0.166984 0.088307 0.139055 -v 0.160000 0.083433 0.139055 -v 0.153016 0.088307 0.139055 -v 0.143139 0.100073 0.139055 -v 0.126861 0.100073 0.139055 -v 0.116984 0.088307 0.139055 -v 0.110000 0.083433 0.139055 -v 0.103016 0.088307 0.139055 -v 0.093139 0.100073 0.139055 -v 0.026379 0.080437 0.139055 -v 0.927107 0.080575 0.139055 -v 0.927107 0.393839 0.139055 -v 0.326861 0.392465 0.139055 -v 0.393139 0.392465 0.139055 -v 0.426861 0.392465 0.139055 -v 0.493139 0.392465 0.139055 -v 0.526861 0.392465 0.139055 -v 0.593139 0.392465 0.139055 -v 0.626861 0.392465 0.139055 -v 0.693139 0.392465 0.139055 -v 0.726861 0.392465 0.139055 -v 0.793139 0.392465 0.139055 -v 0.826861 0.392465 0.139055 -v 0.826861 0.179659 0.139055 -v 0.816984 0.167893 0.139055 -v 0.810000 0.163019 0.139055 -v 0.710000 0.163019 0.139055 -v 0.610000 0.163019 0.139055 -v 1.037985 0.100576 0.121413 -v 1.037985 0.393839 0.121413 -v 0.951692 0.393839 0.137743 -v 0.969667 0.393839 0.134574 -v 1.660505 0.393839 0.121413 -v 1.660505 0.393839 -0.120188 -v 0.995425 0.393839 -0.124670 -v 0.969667 0.393839 -0.133349 -v 0.951692 0.393839 -0.136518 -v 0.927107 0.393839 -0.137831 -v 0.026414 0.393839 -0.137831 -v -0.021028 0.393839 -0.137831 -v 0.995410 0.096349 -0.124675 -v 0.969682 0.086522 -0.133344 -v 1.660505 0.100430 -0.120188 -v 1.660505 0.100430 0.121413 -v -0.021028 0.034507 0.118480 -v -0.021028 0.053917 0.133542 -v -0.021028 0.080430 0.139055 -v -0.021028 0.080430 -0.137831 -v -0.021028 0.053917 -0.132318 -v -0.021028 0.034507 -0.117256 -v -0.021028 0.027403 -0.096681 -v -0.021028 0.027403 0.097905 -v 0.969682 0.086522 0.134568 -v 0.951696 0.082465 0.137741 -v 1.013395 0.045913 0.080994 -v 1.013395 0.045913 -0.079770 -v 0.995407 0.042316 -0.082385 -v 0.995407 0.042316 0.083609 -v 0.969685 0.032491 0.092276 -v 0.969685 0.032491 -0.091052 -v 0.951696 0.082465 -0.136517 -v 0.927107 0.080575 -0.137831 -v 0.927107 0.027403 0.097752 -v 0.927107 0.027403 -0.096528 -v 0.951697 0.028893 -0.094783 -v 0.951697 0.028893 0.096008 -v 1.660505 0.054507 -0.099613 -v 1.660505 0.073917 -0.114675 -v 1.660505 0.073917 0.115900 -v 1.660505 0.054507 0.100838 -v 1.013395 0.053090 0.101861 -v 0.995408 0.049555 0.104755 -v 1.013395 0.072699 0.117136 -v 0.995409 0.069332 0.120234 -v 1.037985 0.054527 0.100761 -v 1.037985 0.073989 0.115879 -v 1.013395 0.053090 -0.100636 -v 1.037985 0.054527 -0.099537 -v 1.013395 0.072699 -0.115911 -v 1.037985 0.073989 -0.114655 -v 0.995408 0.049555 -0.103530 -v 0.995409 0.069332 -0.119010 -v 0.951697 0.036070 -0.115650 -v 0.969685 0.039729 -0.112197 -v 0.951697 0.055679 -0.130925 -v 0.969684 0.059506 -0.127677 -v 0.927107 0.034527 -0.117179 -v 0.927107 0.053989 -0.132297 -v 0.951697 0.036070 0.116874 -v 0.927107 0.034527 0.118404 -v 0.951697 0.055679 0.132150 -v 0.927107 0.053989 0.133522 -v 0.969685 0.039729 0.113422 -v 0.969684 0.059506 0.128902 -v 0.028361 0.393564 -0.150327 -v -0.023362 0.393896 -0.150327 -v 0.026379 0.053920 0.133541 -v 0.028324 0.077206 0.151551 -v 0.028324 0.048295 0.145540 -v -0.023362 0.048291 -0.144316 -v -0.023362 0.027130 -0.127895 -v 0.026379 0.027403 0.097898 -v 0.026379 0.034508 0.118476 -v 0.393139 0.180122 -0.137831 -v 0.403016 0.168028 -0.137831 -v 0.410000 0.163019 -0.137831 -v 0.310637 0.162014 -0.137831 -v 0.326861 0.392465 -0.137831 -v 0.393139 0.392465 -0.137831 -v 0.326861 0.392465 0.157114 -v 0.326861 0.179659 0.157114 -v 0.326861 0.179659 0.139055 -v 0.426861 0.180122 -0.137831 -v 0.426861 0.180122 -0.155889 -v 0.426861 0.392465 -0.155889 -v 0.426861 0.392465 -0.137831 -v 0.193139 0.392465 0.157114 -v 0.226861 0.392465 0.157114 -v 0.226861 0.392465 -0.155889 -v 0.193139 0.392465 -0.155889 -v 0.193139 0.392465 -0.137831 -v 0.226861 0.392465 -0.137831 -v 0.126861 0.137460 -0.137831 -v 0.126861 0.392051 -0.137831 -v 0.093139 0.392051 -0.137831 -v 0.093139 0.124456 -0.137831 -v 0.026381 0.098712 -0.137831 -v 0.193139 0.180122 -0.137831 -v 0.176861 0.156742 -0.137831 -v 0.176861 0.392051 -0.137831 -v 0.143139 0.392051 -0.137831 -v 0.143139 0.143738 -0.137831 -v 0.193139 0.179659 0.157114 -v 0.193139 0.180122 -0.155889 -v 0.526861 0.392465 0.157114 -v 0.526861 0.179659 0.157114 -v 0.526861 0.179659 0.139055 -v 0.526861 0.180122 -0.137831 -v 0.526861 0.180122 -0.155889 -v 0.526861 0.392465 -0.155889 -v 0.526861 0.392465 -0.137831 -v 0.293139 0.392465 0.157114 -v 0.326861 0.392465 -0.155889 -v 0.293139 0.392465 -0.155889 -v 0.293139 0.392465 -0.137831 -v 0.226861 0.179659 0.157114 -v 0.226861 0.180122 -0.137831 -v 0.226861 0.180122 -0.155889 -v 0.293139 0.179659 0.157114 -v 0.293139 0.184279 -0.137831 -v 0.293139 0.180122 -0.155889 -v 0.293139 0.180122 -0.137831 -v 0.310622 0.162019 -0.155966 -v 0.318624 0.167861 -0.137969 -v 0.318609 0.167866 -0.156104 -v 0.303016 0.167893 0.157114 -v 0.310000 0.163019 0.157114 -v 0.316984 0.167893 0.157114 -v 0.393139 0.392465 -0.155889 -v 0.416984 0.168028 -0.155889 -v 0.410000 0.163019 -0.155889 -v 0.403016 0.168028 -0.155889 -v 0.393139 0.180122 -0.155889 -v 0.393139 0.392465 0.157114 -v 0.426861 0.392465 0.157114 -v 0.203016 0.167893 0.157114 -v 0.210000 0.163019 0.157114 -v 0.216984 0.167893 0.157114 -v 0.326861 0.180122 -0.155889 -v 0.393139 0.179659 0.157114 -v 0.393139 0.179659 0.139055 -v 0.626861 0.180122 -0.137831 -v 0.626861 0.180122 -0.155889 -v 0.626861 0.392465 -0.155889 -v 0.626861 0.392465 -0.137831 -v 0.626861 0.392465 0.157114 -v 0.626861 0.179659 0.157114 -v 0.626861 0.179659 0.139055 -v 0.726861 0.180122 -0.137831 -v 0.726861 0.180122 -0.155889 -v 0.726861 0.392465 -0.155889 -v 0.726861 0.392465 -0.137831 -v 0.493139 0.392465 0.157114 -v 0.493139 0.392465 -0.155889 -v 0.493139 0.392465 -0.137831 -v 0.426861 0.179659 0.157114 -v 0.426861 0.179659 0.139055 -v 0.216984 0.168028 -0.155889 -v 0.210000 0.163019 -0.155889 -v 0.203016 0.168028 -0.155889 -v 0.493139 0.179659 0.157114 -v 0.493139 0.179659 0.139055 -v 0.493139 0.180122 -0.155889 -v 0.493139 0.180122 -0.137831 -v 0.726861 0.392465 0.157114 -v 0.726861 0.179659 0.157114 -v 0.726861 0.179659 0.139055 -v 0.826861 0.180122 -0.137831 -v 0.826861 0.180122 -0.155889 -v 0.826861 0.392465 -0.155889 -v 0.826861 0.392465 -0.137831 -v 0.593139 0.392465 0.157114 -v 0.593139 0.392465 -0.155889 -v 0.593139 0.392465 -0.137831 -v 0.403016 0.167893 0.157114 -v 0.410000 0.163019 0.157114 -v 0.416984 0.167893 0.157114 -v 0.593139 0.179659 0.157114 -v 0.593139 0.179659 0.139055 -v 0.593139 0.180122 -0.155889 -v 0.593139 0.180122 -0.137831 -v 0.826861 0.392465 0.157114 -v 0.826861 0.179659 0.157114 -v 0.126861 0.100536 -0.137831 -v 0.126861 0.100536 -0.155889 -v 0.126861 0.392051 -0.155889 -v 0.693139 0.392465 0.157114 -v 0.693139 0.392465 -0.155889 -v 0.693139 0.392465 -0.137831 -v 0.503016 0.167893 0.157114 -v 0.510000 0.163019 0.157114 -v 0.516984 0.167893 0.157114 -v 0.693139 0.179659 0.157114 -v 0.693139 0.179659 0.139055 -v 0.693139 0.180122 -0.155889 -v 0.693139 0.180122 -0.137831 -v 0.176861 0.392051 0.157114 -v 0.176861 0.100073 0.157114 -v 0.093139 0.392051 -0.155889 -v 0.116984 0.088442 -0.155889 -v 0.110000 0.083433 -0.155889 -v 0.103016 0.088442 -0.155889 -v 0.093139 0.100536 -0.155889 -v 0.793139 0.392465 0.157114 -v 0.793139 0.392465 -0.155889 -v 0.793139 0.392465 -0.137831 -v 0.603016 0.167893 0.157114 -v 0.610000 0.163019 0.157114 -v 0.616984 0.167893 0.157114 -v 0.516984 0.168028 -0.155889 -v 0.510000 0.163019 -0.155889 -v 0.503016 0.168028 -0.155889 -v 0.793139 0.179659 0.157114 -v 0.793139 0.179659 0.139055 -v 0.793139 0.180122 -0.155889 -v 0.793139 0.180122 -0.137831 -v 0.803016 0.167893 0.157114 -v 0.810000 0.163019 0.157114 -v 0.816984 0.167893 0.157114 -v 0.093139 0.392051 0.157114 -v 0.126861 0.392051 0.157114 -v 0.703016 0.167893 0.157114 -v 0.710000 0.163019 0.157114 -v 0.716984 0.167893 0.157114 -v 0.616984 0.168028 -0.155889 -v 0.610000 0.163019 -0.155889 -v 0.603016 0.168028 -0.155889 -v 0.093139 0.100073 0.157114 -v 0.176861 0.100536 -0.137831 -v 0.176861 0.100536 -0.155889 -v 0.176861 0.392051 -0.155889 -v 0.093139 0.100536 -0.137831 -v 0.103016 0.088307 0.157114 -v 0.110000 0.083433 0.157114 -v 0.116984 0.088307 0.157114 -v 0.126861 0.100073 0.157114 -v 0.816984 0.168028 -0.155889 -v 0.810000 0.163019 -0.155889 -v 0.803016 0.168028 -0.155889 -v 0.143139 0.392051 0.157114 -v 0.143139 0.392051 -0.155889 -v 0.716984 0.168028 -0.155889 -v 0.710000 0.163019 -0.155889 -v 0.703016 0.168028 -0.155889 -v 0.143139 0.100073 0.157114 -v 0.143139 0.100536 -0.155889 -v 0.143139 0.100536 -0.137831 -v 0.203016 0.167893 0.139055 -v 0.216984 0.167893 0.139055 -v 0.316984 0.167893 0.139055 -v 0.403016 0.167893 0.139055 -v 0.416984 0.167893 0.139055 -v 0.503016 0.167893 0.139055 -v 0.603016 0.167893 0.139055 -v 0.616984 0.167893 0.139055 -v 0.703016 0.167893 0.139055 -v 0.716984 0.167893 0.139055 -v 0.803016 0.167893 0.139055 -v 0.160000 0.083433 0.157114 -v 0.166984 0.088307 0.157114 -v 0.153016 0.088307 0.157114 -v 0.203016 0.168028 -0.137831 -v 0.210000 0.163019 -0.137831 -v 0.216984 0.168028 -0.137831 -v 0.416984 0.168028 -0.137831 -v 0.503016 0.168028 -0.137831 -v 0.510000 0.163019 -0.137831 -v 0.516984 0.168028 -0.137831 -v 0.603016 0.168028 -0.137831 -v 0.610000 0.163019 -0.137831 -v 0.303016 0.168028 -0.137831 -v 0.616984 0.168028 -0.137831 -v 0.710000 0.163019 -0.137831 -v 0.810000 0.163019 -0.137831 -v 0.816984 0.168028 -0.137831 -v 0.026379 0.080437 -0.137831 -v 0.103016 0.088442 -0.137831 -v 0.110000 0.083433 -0.137831 -v 0.116984 0.088442 -0.137831 -v 0.153016 0.088442 -0.137831 -v 0.160000 0.083433 -0.137831 -v 0.166984 0.088442 -0.137831 -v 0.703016 0.168028 -0.137831 -v 0.716984 0.168028 -0.137831 -v 0.803016 0.168028 -0.137831 -v 0.160000 0.083433 -0.155889 -v 0.153016 0.088442 -0.155889 -v 0.166984 0.088442 -0.155889 -v 0.303126 0.168028 -0.156104 -v 0.326876 0.180117 -0.137754 -v 0.026379 0.027403 -0.096673 -v 0.028324 0.019385 0.106679 -v 0.028324 0.019385 -0.105454 -v -0.023362 0.077198 0.151551 -v 0.026379 0.034508 -0.117252 -v 0.028324 0.027131 -0.127891 -v 0.026379 0.053920 -0.132317 -v -0.023362 0.019385 0.106687 -v -0.023362 0.019385 -0.105463 -v 0.028325 0.097130 0.151551 -v -0.023362 0.077198 -0.150327 -v 0.028324 0.048295 -0.144315 -v -0.023362 0.048291 0.145541 -v 0.028324 0.077206 -0.150327 -v -0.023362 0.027130 0.129119 -v 0.028324 0.027131 0.129115 -v 0.028326 0.097130 -0.150327 +vn -0.0000 -0.3358 0.9419 +vn -0.0013 -0.3390 0.9408 +vn -0.0006 -0.8069 -0.5907 +vn -0.0007 -0.6930 -0.7209 +vn -0.0000 -0.7379 0.6749 +vn -0.0000 -0.8200 0.5723 +vn -0.0000 -0.8200 -0.5723 +vn -0.0000 -0.7379 -0.6749 +vn -0.0000 -0.8126 0.5828 +vn -0.0000 -0.7289 0.6846 +vn -0.0000 -0.7289 -0.6846 +vn -0.0000 -0.8126 -0.5828 +vn -1.0000 0.0078 -0.0000 +vn -1.0000 0.0074 -0.0000 +vn -0.0023 -0.7816 0.6238 +vn -0.0012 -0.7129 0.7013 +vn -0.0036 -0.7124 0.7018 +vn -0.0008 -0.3029 -0.9530 +vn -0.0007 -0.6931 -0.7208 +vn -0.0007 0.0001 -1.0000 +vn -0.0008 -0.2904 -0.9569 +vn -0.0145 0.2183 -0.9758 +vn 0.0392 0.1881 -0.9814 +vn 0.0145 0.2183 -0.9758 +vn -0.0836 0.0092 0.9965 +vn -0.1587 -0.0000 0.9873 +vn -0.0797 -0.0000 0.9968 +vn 0.0702 0.1427 -0.9873 +vn 0.0854 0.1178 -0.9894 +vn -0.9930 -0.1183 -0.0000 +vn -0.5348 -0.8437 -0.0454 +vn -0.8845 -0.4665 -0.0001 +vn -0.1439 -0.9896 -0.0000 +vn -0.1327 -0.0001 -0.9911 +vn -0.1329 -0.0001 -0.9911 +vn -0.1328 -0.0001 -0.9911 +vn 0.1587 -0.0000 0.9873 +vn 0.1545 0.0195 0.9878 +vn 0.1131 0.0626 -0.9916 +vn 0.1147 0.0586 -0.9917 +vn -0.0784 0.0434 0.9960 +vn -0.1545 0.0195 0.9878 +vn -0.5337 -0.8457 -0.0001 +vn 0.9930 -0.1182 -0.0000 +vn 0.5337 -0.8457 -0.0001 +vn -0.0854 0.1178 -0.9894 +vn -0.0702 0.1427 -0.9873 +vn 0.1297 0.0143 -0.9915 +vn 0.1328 -0.0001 -0.9911 +vn -0.1020 0.1407 0.9848 +vn -0.1372 0.0701 0.9881 +vn 0.1372 0.0701 0.9881 +vn 0.0467 0.2240 0.9735 +vn -0.0392 0.1881 -0.9814 +vn -0.1296 0.0143 -0.9915 +vn -0.0467 0.2240 0.9735 +vn -0.0494 0.1002 0.9937 +vn 0.1292 0.0162 -0.9915 +vn 0.1329 -0.0001 -0.9911 +vn -0.0029 1.0000 -0.0064 +vn -0.0067 1.0000 -0.0000 +vn 0.0797 -0.0000 0.9968 +vn 0.5338 -0.8456 0.0001 +vn 0.5794 -0.0572 -0.8130 +vn 0.3708 -0.3967 -0.8397 +vn 0.4890 -0.1952 -0.8502 +vn 0.0998 -0.6565 -0.7477 +vn -1.0000 0.0094 -0.0001 +vn -1.0000 0.0098 -0.0000 +vn -0.9996 -0.0270 0.0003 +vn 0.0003 -0.7850 0.6195 +vn -0.5337 -0.8456 -0.0001 +vn 0.1439 -0.9896 -0.0000 +vn -0.5338 -0.8456 -0.0001 +vn -0.0002 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.9111 0.4123 -0.0000 +vn 0.8852 0.4652 -0.0000 +vn 0.9239 0.3826 -0.0000 +vn 0.9698 0.2437 -0.0000 +vn 0.9805 0.1966 -0.0000 +vn 0.9980 0.0631 -0.0000 +vn 0.9984 0.0559 -0.0000 +vn -0.8852 -0.4653 -0.0000 +vn -0.9110 -0.4124 -0.0000 +vn -0.9239 -0.3828 -0.0000 +vn -0.9698 -0.2437 -0.0000 +vn -0.9980 -0.0630 -0.0000 +vn -0.9921 -0.1258 -0.0000 +vn -0.2976 0.9547 -0.0000 +vn -0.2824 0.9057 0.3162 +vn -0.2796 0.8979 0.3399 +vn -0.1824 0.7163 0.6735 +vn -0.0715 0.5275 0.8465 +vn -0.0679 0.5079 0.8588 +vn -0.0136 0.3198 0.9474 +vn -0.0056 0.1592 0.9872 +vn -0.0062 0.1597 0.9872 +vn -0.1852 0.7225 0.6661 +vn -0.8852 -0.4652 -0.0000 +vn -0.9805 -0.1964 -0.0000 +vn -0.9920 -0.1259 -0.0000 +vn -0.0112 0.3207 0.9471 vt 0.164335 0.434657 vt 0.179187 0.434574 vt 0.178601 0.434657 @@ -1810,10 +607,8 @@ vt 0.475427 0.434657 vt 0.482821 0.434657 vt 0.670036 0.330470 vt 0.482821 0.330470 -vt 0.670036 0.330470 vt 0.470021 0.434657 vt 0.475425 0.346133 -vt 0.475427 0.434657 vt 0.238885 0.370245 vt 0.251790 0.369380 vt 0.258817 0.371634 @@ -1822,69 +617,37 @@ vt 0.213706 0.434119 vt 0.263888 0.365240 vt 0.223848 0.346310 vt 0.220877 0.342772 -vt 0.482821 0.346461 -vt 0.482821 0.434657 vt 0.462275 0.434657 vt 0.470016 0.345190 vt 0.462279 0.342235 vt 0.670036 0.434657 -vt 0.670036 0.434657 vt 0.670036 0.346418 vt 0.164335 0.324456 -vt 0.164335 0.324456 vt 0.164335 0.340403 -vt 0.462275 0.434657 -vt 0.470016 0.345190 vt 0.449475 0.434657 vt 0.456870 0.341015 vt 0.456869 0.434657 vt 0.475425 0.330022 -vt 0.482821 0.330470 vt 0.470016 0.328940 vt 0.462280 0.325986 -vt 0.462280 0.325986 -vt 0.475425 0.346133 -vt 0.470021 0.434657 -vt 0.470016 0.328940 -vt 0.456870 0.341015 -vt 0.449475 0.434657 -vt 0.456869 0.434657 vt 0.449475 0.324456 vt 0.456870 0.324904 -vt 0.456870 0.324904 -vt 0.462279 0.342235 vt 0.475425 0.332181 vt 0.470016 0.331117 vt 0.470016 0.337065 vt 0.475425 0.338078 vt 0.482821 0.332613 vt 0.482821 0.338466 -vt 0.475425 0.330022 -vt 0.482821 0.332613 -vt 0.475425 0.338078 -vt 0.482821 0.338466 -vt 0.475425 0.332181 -vt 0.470016 0.337065 vt 0.462280 0.328162 vt 0.456870 0.332959 vt 0.462280 0.334110 -vt 0.449475 0.324456 vt 0.456870 0.327062 vt 0.449475 0.332451 vt 0.449475 0.340446 -vt 0.456870 0.327062 vt 0.449475 0.326598 -vt 0.449475 0.332451 -vt 0.456870 0.332959 -vt 0.449475 0.340446 vt 0.462280 0.328163 -vt 0.462280 0.334110 vt 0.670036 0.332607 vt 0.670036 0.338444 -vt 0.670036 0.346418 -vt 0.470016 0.331117 -vt 0.670036 0.338444 -vt 0.164335 0.434657 vt 0.179188 0.434574 vt 0.163633 0.434674 vt 0.178592 0.332430 @@ -1901,1895 +664,2364 @@ vt 0.291861 0.366747 vt 0.264079 0.364938 vt 0.268958 0.434243 vt 0.268958 0.370245 -vt 0.268958 0.434243 vt 0.299032 0.370384 vt 0.299032 0.434243 -vt 0.299032 0.370384 vt 0.228743 0.434243 vt 0.238885 0.434243 -vt 0.228743 0.434243 -vt 0.228743 0.434243 -vt 0.238885 0.434243 -vt 0.238885 0.434243 -vt 0.213706 0.434119 vt 0.178603 0.434657 -vt 0.228743 0.434243 -vt 0.228743 0.370245 vt 0.228743 0.370245 vt 0.228743 0.370384 vt 0.329106 0.434243 vt 0.329106 0.370245 -vt 0.329106 0.434243 -vt 0.329106 0.370384 -vt 0.329106 0.434243 vt 0.329106 0.370384 vt 0.258817 0.434243 -vt 0.258817 0.434243 -vt 0.258817 0.434243 -vt 0.268958 0.434243 -vt 0.268958 0.434243 -vt 0.238885 0.434243 -vt 0.238885 0.370384 vt 0.238885 0.370384 vt 0.258817 0.370384 -vt 0.258817 0.371634 vt 0.264075 0.364940 vt 0.266481 0.366696 vt 0.265988 0.366706 -vt 0.268958 0.370245 vt 0.258817 0.370245 -vt 0.291861 0.366747 -vt 0.288891 0.370384 vt 0.288891 0.434243 -vt 0.299032 0.434243 -vt 0.288891 0.434243 -vt 0.288891 0.434243 -vt 0.299032 0.434243 vt 0.235914 0.366706 -vt 0.238885 0.370245 vt 0.268958 0.370384 vt 0.288891 0.370245 -vt 0.288891 0.370245 -vt 0.288891 0.434243 -vt 0.359180 0.370384 -vt 0.359180 0.434243 vt 0.359180 0.370384 vt 0.359180 0.434243 vt 0.359180 0.370245 -vt 0.359180 0.434243 vt 0.389254 0.370384 vt 0.389254 0.434243 -vt 0.389254 0.370384 vt 0.318965 0.434243 -vt 0.318965 0.434243 -vt 0.318965 0.434243 -vt 0.329106 0.434243 -vt 0.299032 0.434243 vt 0.299032 0.370245 vt 0.231714 0.366747 vt 0.318965 0.370245 -vt 0.318965 0.370245 vt 0.318965 0.370384 -vt 0.318965 0.434243 -vt 0.389254 0.434243 vt 0.389254 0.370245 -vt 0.389254 0.434243 vt 0.419327 0.370384 vt 0.419327 0.434243 -vt 0.419327 0.370384 vt 0.349038 0.434243 -vt 0.349038 0.434243 -vt 0.349038 0.434243 -vt 0.359180 0.434243 vt 0.296062 0.366706 -vt 0.299032 0.370245 -vt 0.349038 0.370245 vt 0.349038 0.370245 vt 0.349038 0.370384 -vt 0.349038 0.434243 -vt 0.419327 0.434243 vt 0.419327 0.370245 -vt 0.419327 0.434243 -vt 0.208811 0.434119 vt 0.208811 0.357554 vt 0.208811 0.346449 vt 0.379112 0.434243 -vt 0.379112 0.434243 -vt 0.379112 0.434243 -vt 0.389254 0.434243 vt 0.326136 0.366706 -vt 0.329106 0.370245 -vt 0.379112 0.370245 vt 0.379112 0.370245 vt 0.379112 0.370384 -vt 0.379112 0.434243 -vt 0.223848 0.346310 vt 0.223848 0.363353 vt 0.201640 0.342812 vt 0.198670 0.346449 vt 0.409186 0.434243 -vt 0.409186 0.434243 -vt 0.409186 0.434243 -vt 0.419327 0.434243 vt 0.356209 0.366706 -vt 0.359180 0.370245 vt 0.321935 0.366747 vt 0.409186 0.370245 -vt 0.409186 0.370245 vt 0.409186 0.370384 -vt 0.409186 0.434243 vt 0.416357 0.366706 -vt 0.419327 0.370245 vt 0.198670 0.434119 -vt 0.198670 0.434119 -vt 0.198670 0.434119 -vt 0.208811 0.434119 vt 0.386283 0.366706 -vt 0.389254 0.370245 vt 0.352009 0.366747 vt 0.198670 0.353643 vt 0.198670 0.346310 vt 0.223848 0.434119 -vt 0.223848 0.434119 -vt 0.223848 0.363353 -vt 0.198670 0.346449 -vt 0.198670 0.353643 vt 0.205841 0.342772 vt 0.208811 0.346310 vt 0.412156 0.366747 -vt 0.213706 0.434119 -vt 0.223848 0.434119 -vt 0.213706 0.434119 -vt 0.208811 0.357554 -vt 0.208811 0.434119 vt 0.382083 0.366747 vt 0.213706 0.359442 vt 0.213706 0.346449 -vt 0.213706 0.346449 -vt 0.213706 0.359442 vt 0.233814 0.365240 vt 0.231714 0.366706 -vt 0.235914 0.366706 vt 0.291861 0.366706 vt 0.321935 0.366706 vt 0.382083 0.366706 vt 0.412156 0.366706 -vt 0.198670 0.346310 -vt 0.201640 0.342772 vt 0.201640 0.342772 vt 0.203740 0.341306 -vt 0.412156 0.366706 vt 0.414257 0.365240 -vt 0.258817 0.370245 vt 0.261787 0.366706 -vt 0.261787 0.366706 -vt 0.263888 0.365240 -vt 0.291861 0.366706 vt 0.293962 0.365240 -vt 0.321935 0.366706 vt 0.324035 0.365240 vt 0.352009 0.366706 -vt 0.352009 0.366706 vt 0.354109 0.365240 -vt 0.382083 0.366706 vt 0.384183 0.365240 vt 0.218777 0.341306 -vt 0.220877 0.342772 -vt 0.218777 0.341306 -vt 0.231714 0.366706 -vt 0.233814 0.365240 -vt 0.265988 0.366706 -vt 0.293962 0.365240 -vt 0.296062 0.366706 -vt 0.354109 0.365240 -vt 0.356209 0.366706 -vt 0.384183 0.365240 -vt 0.386283 0.366706 -vt 0.414257 0.365240 -vt 0.416357 0.366706 vt 0.213706 0.346310 vt 0.216677 0.342772 -vt 0.213706 0.346310 -vt 0.216677 0.342772 -vt 0.324035 0.365240 -vt 0.326136 0.366706 -vt 0.203740 0.341306 -vt 0.205841 0.342772 -vt 0.228743 0.370384 -vt 0.231714 0.366747 -vt 0.233814 0.365240 -vt 0.258817 0.434243 -vt 0.318965 0.370384 -vt 0.321935 0.366747 -vt 0.349038 0.370384 -vt 0.352009 0.366747 -vt 0.379112 0.370384 -vt 0.382083 0.366747 vt 0.386283 0.366747 -vt 0.409186 0.370384 -vt 0.412156 0.366747 -vt 0.293962 0.365240 -vt 0.293962 0.365240 vt 0.235914 0.366747 -vt 0.235914 0.366747 -vt 0.233814 0.365240 -vt 0.296062 0.366747 vt 0.296062 0.366747 vt 0.326136 0.366747 -vt 0.326136 0.366747 -vt 0.324035 0.365240 -vt 0.386283 0.366747 -vt 0.384183 0.365240 -vt 0.208811 0.346449 vt 0.205841 0.342812 -vt 0.205841 0.342812 -vt 0.203740 0.341306 -vt 0.218777 0.341306 vt 0.216677 0.342812 -vt 0.218777 0.341306 -vt 0.216677 0.342812 -vt 0.354109 0.365240 -vt 0.354109 0.365240 vt 0.356209 0.366747 -vt 0.356209 0.366747 -vt 0.384183 0.365240 -vt 0.414257 0.365240 -vt 0.414257 0.365240 -vt 0.416357 0.366747 vt 0.416357 0.366747 vt 0.223848 0.346449 vt 0.220877 0.342812 -vt 0.223848 0.346449 -vt 0.220877 0.342812 -vt 0.324035 0.365240 vt 0.261787 0.366747 vt 0.261821 0.366747 -vt 0.203740 0.341306 -vt 0.201640 0.342812 vt 0.266477 0.366698 vt 0.268963 0.370382 vt 0.179177 0.322044 -vt 0.178592 0.324456 -vt 0.164335 0.340403 -vt 0.163633 0.434674 -vt 0.178592 0.326592 vt 0.179177 0.324374 -vt 0.178592 0.340405 -vt 0.449475 0.326598 -vt 0.178592 0.332430 -vt 0.163633 0.322044 vt 0.163633 0.322044 vt 0.178593 0.345901 vt 0.179178 0.345425 vt 0.163633 0.339431 -vt 0.179177 0.330739 -vt 0.164335 0.332429 -vt 0.163633 0.339431 vt 0.163633 0.330737 -vt 0.179177 0.339433 -vt 0.163633 0.330737 -vt 0.179177 0.324374 -vt 0.163633 0.324373 -vt 0.179178 0.345425 -vt 0.178593 0.345901 -vt 0.179177 0.322044 -vt 0.164335 0.326592 -vt 0.208811 0.346310 -vt 0.670036 0.332607 -vt 0.198670 0.434119 -vt 0.258817 0.370384 -vt 0.223848 0.434119 -vn 0.0029 1.0000 0.0001 -vn 0.0011 0.9998 0.0176 -vn 0.0000 1.0000 0.0078 -vn 0.0288 -0.1011 -0.9945 -vn 0.1137 0.0000 -0.9935 -vn 0.0267 0.0000 -0.9996 -vn -0.0000 -0.9862 0.1655 -vn 0.0329 -0.9859 -0.1639 -vn -0.0000 -0.9862 -0.1655 -vn 0.2472 0.0000 0.9690 -vn 0.1238 -0.0981 0.9874 -vn 0.1137 0.0000 0.9935 -vn -0.0000 -0.0000 1.0000 -vn 0.0288 -0.1011 0.9945 -vn 0.0267 -0.0000 0.9996 -vn 0.0000 1.0000 0.0000 -vn 0.2472 -0.0000 -0.9690 -vn 0.2701 -0.0937 -0.9583 -vn 0.2739 -0.1017 -0.9564 -vn 0.0000 0.0000 -1.0000 -vn -0.0000 -0.1023 0.9947 -vn -0.9897 0.1430 0.0124 -vn -0.9897 0.1430 -0.0124 -vn -0.9954 0.0088 0.0959 -vn 0.2701 -0.0938 0.9583 -vn 0.1289 -0.1059 0.9860 -vn 0.1418 -0.9771 0.1589 -vn 0.0329 -0.9859 0.1639 -vn 0.3083 -0.9396 -0.1488 -vn 0.3106 -0.9374 0.1576 -vn 0.3106 -0.9374 -0.1576 -vn 0.1238 -0.0981 -0.9875 -vn 0.3083 -0.9396 0.1487 -vn 0.1289 -0.1059 -0.9860 -vn 0.0356 -0.9851 0.1682 -vn 0.1486 -0.9746 -0.1676 -vn 0.1486 -0.9746 0.1676 -vn 0.2739 -0.1017 0.9564 -vn 1.0000 0.0000 0.0000 -vn 0.1628 -0.8041 0.5718 -vn 0.3575 -0.7630 0.5386 -vn 0.3300 -0.3908 0.8593 -vn 0.1501 -0.4107 0.8993 -vn 0.0370 -0.8129 0.5813 -vn 0.0343 -0.4175 0.9080 -vn 0.1418 -0.9771 -0.1589 -vn 0.0370 -0.8129 -0.5813 -vn 0.1501 -0.4107 -0.8993 -vn 0.0343 -0.4175 -0.9080 -vn 0.1628 -0.8041 -0.5718 -vn 0.3300 -0.3908 -0.8593 -vn 0.3552 -0.7617 -0.5419 -vn 0.1620 -0.4190 -0.8934 -vn 0.3323 -0.3993 -0.8545 -vn 0.0356 -0.9851 -0.1682 -vn 0.1749 -0.8002 -0.5737 -vn 0.0397 -0.4217 -0.9059 -vn 0.0307 -0.1047 -0.9940 -vn 0.1749 -0.8002 0.5737 -vn 0.0432 -0.8117 0.5825 -vn 0.0397 -0.4217 0.9059 -vn 0.1620 -0.4190 0.8934 -vn 0.0307 -0.1047 0.9940 -vn 0.3552 -0.7617 0.5419 -vn 0.3323 -0.3992 0.8545 -vn -0.0001 -0.8129 -0.5824 -vn -0.0001 -0.4191 -0.9079 -vn -0.0000 -0.1023 -0.9947 -vn 0.3574 -0.7630 -0.5386 -vn -0.0001 -0.4191 0.9079 -vn 0.0029 1.0000 -0.0001 -vn 0.0011 0.9998 -0.0176 -vn 0.0064 1.0000 0.0034 -vn 0.9894 0.0607 -0.1319 -vn 0.9886 0.0167 -0.1496 -vn 0.9894 0.0610 -0.1318 -vn -0.9950 0.0416 0.0904 -vn -0.9827 0.1451 0.1150 -vn -0.9933 0.0989 0.0592 -vn 0.0001 -0.8129 0.5824 -vn 0.0001 -0.4192 0.9079 -vn 0.9397 -0.3421 0.0000 -vn 0.9419 -0.3358 0.0000 -vn -0.9397 -0.3421 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.9419 -0.3358 0.0000 -vn -0.9409 -0.3386 -0.0014 -vn 0.5907 -0.8069 -0.0007 -vn 0.7209 -0.6930 -0.0008 -vn -0.6749 -0.7379 0.0000 -vn -0.5723 -0.8200 0.0000 -vn 0.5723 -0.8200 0.0000 -vn 0.6749 -0.7379 0.0000 -vn -0.5828 -0.8126 0.0000 -vn -0.6846 -0.7289 0.0000 -vn 0.6846 -0.7289 0.0000 -vn 0.5828 -0.8126 0.0000 -vn 0.0000 0.0068 -1.0000 -vn 0.0000 0.0064 -1.0000 -vn -0.6236 -0.7818 -0.0025 -vn -0.7013 -0.7128 -0.0015 -vn -0.7018 -0.7124 -0.0042 -vn 0.9535 -0.3014 -0.0009 -vn 0.7208 -0.6931 -0.0008 -vn 1.0000 0.0001 -0.0008 -vn 0.9568 -0.2906 -0.0009 -vn 0.9761 0.2164 -0.0186 -vn 0.9808 0.1900 0.0438 -vn 0.9761 0.2164 0.0186 -vn -0.9954 0.0088 -0.0959 -vn -0.9830 0.0000 -0.1836 -vn -0.9957 0.0000 -0.0923 -vn 0.9867 0.1398 0.0835 -vn 0.9879 0.1215 0.0964 -vn 0.0432 -0.8117 -0.5825 -vn 0.0001 -0.4192 -0.9079 -vn 0.0000 -0.9862 -0.1654 -vn 0.9881 -0.0001 -0.1537 -vn 0.9881 -0.0001 -0.1539 -vn -0.9830 -0.0000 0.1836 -vn -0.9837 0.0200 0.1786 -vn 0.9894 0.0607 0.1319 -vn 0.9894 0.0610 0.1318 -vn -0.9950 0.0416 -0.0904 -vn -0.9837 0.0200 -0.1786 -vn 0.0001 -0.8129 -0.5824 -vn 0.0001 -0.4191 -0.9079 -vn 0.0000 -0.4191 -0.9079 -vn 0.0000 -0.1023 -0.9948 -vn 0.0000 -0.4191 0.9079 -vn 0.0000 -0.1023 0.9948 -vn 0.0001 -0.4191 0.9079 -vn 0.9879 0.1215 -0.0964 -vn 0.9867 0.1398 -0.0835 -vn 0.9885 0.0138 0.1503 -vn 0.9881 -0.0001 0.1538 -vn -0.9827 0.1451 -0.1150 -vn -0.9848 0.0728 -0.1574 -vn -0.9848 0.0728 0.1574 -vn -0.9727 0.2262 0.0520 -vn 0.9808 0.1900 -0.0438 -vn 0.9885 0.0138 -0.1503 -vn -0.9727 0.2262 -0.0520 -vn -0.9933 0.0989 -0.0592 -vn 0.9886 0.0167 0.1496 -vn 0.9881 -0.0001 0.1540 -vn 0.0064 1.0000 -0.0034 -vn 0.0000 1.0000 -0.0078 -vn -0.9957 0.0000 0.0923 -vn -0.0001 -0.8129 0.5824 -vn 0.7692 -0.0542 0.6367 -vn 0.8164 -0.4249 0.3911 -vn 0.8145 -0.1795 0.5517 -vn 0.7502 -0.6504 0.1190 -vn 0.0001 0.0081 -1.0000 -vn -0.0000 0.0084 -1.0000 -vn -0.0002 -0.0233 -0.9997 -vn -0.6195 -0.7850 0.0003 -vn 0.0000 -0.9862 0.1654 +vt 0.515296 0.663237 +vt 0.515296 0.682674 +vt 0.540019 0.682674 +vt 0.540021 0.682674 +vt 0.671399 0.682674 +vt 0.671399 0.682121 +vt 0.671399 0.663237 +vt 0.539833 0.663237 +vt 0.539833 0.682125 +vt 0.697530 0.701590 +vt 0.568704 0.712834 +vt 0.552946 0.701590 +vt 0.697530 0.692045 +vt 0.543187 0.692045 +vt 0.697530 0.682139 +vt 0.697530 0.640529 +vt 0.539833 0.682139 +vt 0.539833 0.640529 +vt 0.568704 0.712699 +vt 0.697530 0.701471 +vt 0.552946 0.701476 +vt 0.697530 0.691975 +vt 0.697530 0.682121 +vt 0.697530 0.712834 +vt 0.543187 0.691982 +vt 0.697530 0.712699 s 1 -f 305/304/220 307/305/221 304/306/222 -f 309/307/223 311/308/224 308/309/225 -f 313/310/226 315/311/227 312/312/228 -f 316/313/229 318/314/230 319/315/231 -f 321/316/232 322/317/232 323/318/232 -f 304/306/232 331/319/232 334/320/232 -f 339/321/232 343/322/232 344/323/232 -f 319/315/231 372/324/233 373/325/234 -f 308/309/235 311/308/235 373/325/235 -f 379/326/236 384/327/237 385/328/238 -f 377/329/239 309/307/223 308/309/225 -f 376/330/232 372/324/233 387/331/240 -f 394/332/241 395/333/242 391/334/243 -f 375/335/229 317/336/244 316/313/229 -f 355/337/234 397/338/245 374/339/231 -f 398/340/246 315/311/227 314/341/247 -f 400/342/248 402/343/249 403/344/250 -f 310/345/251 378/346/236 311/308/224 -f 400/342/248 398/340/246 401/347/252 -f 404/348/253 381/349/225 380/350/224 -f 406/351/254 408/352/255 409/353/256 -f 385/328/238 380/350/224 379/326/236 -f 408/352/255 402/343/249 409/353/256 -f 374/339/231 396/354/257 375/335/229 -f 313/310/258 312/312/258 387/331/258 -f 401/347/252 414/355/259 415/356/260 -f 414/355/259 417/357/261 415/356/260 -f 416/358/262 317/336/244 417/357/261 -f 398/340/246 418/359/263 414/355/259 -f 418/359/263 416/358/262 414/355/259 -f 419/360/264 318/314/230 416/358/262 -f 399/361/265 421/362/266 315/311/227 -f 421/362/266 422/363/267 423/364/268 -f 423/364/268 310/345/251 309/307/223 -f 400/342/248 420/365/269 399/361/265 -f 420/365/269 425/366/270 422/363/267 -f 422/363/267 384/327/237 310/345/251 -f 408/352/255 427/367/271 403/344/250 -f 427/367/271 428/368/272 429/369/273 -f 429/369/273 404/348/253 385/328/238 -f 407/370/274 426/371/275 408/352/255 -f 426/371/275 431/372/276 428/368/272 -f 428/368/272 405/373/277 404/348/253 -f 406/351/254 432/374/278 433/375/279 -f 432/374/278 435/376/280 433/375/279 -f 434/377/281 354/378/282 435/376/280 -f 409/353/256 436/379/283 432/374/278 -f 436/379/283 434/377/281 432/374/278 -f 437/380/284 397/338/245 434/377/281 -f 312/312/228 421/362/266 410/381/285 -f 421/362/266 411/382/286 410/381/285 -f 423/364/268 386/383/287 411/382/286 -f 403/344/250 424/384/288 400/342/248 -f 424/384/288 429/369/273 425/366/270 -f 425/366/270 385/328/238 384/327/237 -f 313/310/226 418/359/263 314/341/247 -f 418/359/263 412/385/289 419/360/264 -f 419/360/264 387/331/240 372/324/233 -f 402/343/249 415/356/260 436/379/283 -f 415/356/260 437/380/284 436/379/283 -f 417/357/261 396/354/257 437/380/284 -f 383/386/290 438/387/291 439/388/292 -f 440/389/293 441/390/294 442/391/295 -f 392/392/296 444/393/297 393/394/298 -f 445/395/226 433/375/279 446/396/299 -f 433/375/279 440/389/300 446/396/299 -f 435/376/280 353/397/240 440/389/300 -f 447/398/239 448/399/239 450/400/239 -f 453/401/258 455/402/301 356/403/258 -f 457/404/302 459/405/258 456/406/302 -f 460/407/235 320/408/235 327/409/235 -f 463/410/235 465/411/235 462/412/235 -f 474/413/239 382/414/239 464/415/239 -f 476/416/303 327/409/304 326/417/303 -f 477/418/305 464/415/304 463/410/304 -f 478/419/258 480/420/301 360/421/258 -f 482/422/302 484/423/258 481/424/302 -f 485/425/235 356/403/235 324/426/235 -f 487/427/235 451/428/235 486/429/235 -f 461/430/258 321/316/301 320/408/258 -f 491/431/302 465/411/258 490/432/302 -f 485/425/304 324/426/304 323/318/304 -f 494/433/306 493/434/304 487/427/304 -f 496/435/307 497/436/308 450/400/307 -f 501/437/232 454/438/232 492/439/232 -f 505/440/239 506/441/239 457/404/239 -f 507/442/235 358/443/235 357/444/235 -f 502/445/235 459/405/235 458/446/235 -f 511/447/232 489/448/232 476/416/232 -f 512/449/258 486/429/258 451/428/258 -f 507/442/304 514/450/303 513/451/303 -f 506/441/305 452/452/304 502/445/304 -f 516/453/302 518/454/258 515/455/302 -f 519/456/258 521/457/301 362/458/258 -f 523/459/302 525/460/258 522/461/302 -f 526/462/235 360/421/235 359/463/235 -f 527/464/235 484/423/235 483/465/235 -f 508/466/258 530/467/301 358/443/258 -f 533/468/239 477/418/239 491/431/239 -f 526/462/304 535/469/303 534/470/303 -f 536/471/305 528/472/304 527/464/304 -f 538/473/258 540/474/301 364/475/258 -f 542/476/302 544/477/258 541/478/302 -f 545/479/235 362/458/235 361/480/235 -f 546/481/235 518/454/235 517/482/235 -f 550/483/232 529/484/232 513/451/232 -f 545/479/304 552/485/303 551/486/303 -f 553/487/305 547/488/304 546/481/304 -f 555/489/258 367/490/301 366/491/258 -f 559/492/258 466/493/258 558/494/302 -f 560/495/235 364/475/235 363/496/235 -f 561/497/235 525/460/235 524/498/235 -f 565/499/232 479/500/232 534/470/232 -f 560/495/304 567/501/303 566/502/303 -f 568/503/305 562/504/304 561/497/304 -f 571/505/301 343/322/301 325/506/258 -f 575/507/239 576/508/239 558/494/239 -f 577/509/235 366/491/235 365/510/235 -f 578/511/235 544/477/235 543/512/235 -f 582/513/232 520/514/232 551/486/232 -f 585/515/239 536/471/239 482/422/239 -f 577/509/304 587/516/303 586/517/303 -f 588/518/305 579/519/304 578/511/304 -f 592/520/232 556/521/232 586/517/232 -f 593/522/235 331/319/235 330/523/235 -f 572/524/235 467/525/235 559/492/235 -f 597/526/232 539/527/232 566/502/232 -f 600/528/239 553/487/239 516/453/239 -f 593/522/304 329/529/304 601/530/303 -f 604/531/258 473/532/258 472/533/258 -f 576/508/305 605/534/305 469/535/304 -f 608/536/232 609/537/232 601/530/232 -f 612/538/239 588/518/239 542/476/239 -f 613/539/235 335/540/235 334/320/235 -f 614/541/235 473/532/235 604/531/235 -f 609/537/301 332/542/258 594/543/258 -f 617/544/239 568/503/239 523/459/239 -f 613/539/304 334/320/304 333/545/304 -f 619/546/305 620/547/305 475/548/304 -f 342/549/232 621/550/232 325/506/232 -f 621/550/232 326/417/232 325/506/232 -f 321/316/232 622/551/232 322/317/232 -f 622/551/232 342/549/232 322/317/232 -f 455/402/232 624/552/232 514/450/232 -f 530/467/232 626/553/232 535/469/232 -f 480/420/232 552/485/232 361/480/232 -f 521/457/232 629/554/232 567/501/232 -f 540/474/232 631/555/232 587/516/232 -f 352/556/303 606/557/309 601/530/303 -f 351/558/309 607/559/310 606/557/309 -f 587/516/303 590/560/309 586/517/303 -f 631/555/309 591/561/310 590/560/309 -f 341/562/303 499/563/309 492/439/303 -f 340/564/309 500/565/310 499/563/309 -f 514/450/303 548/566/309 513/451/303 -f 624/552/309 549/567/310 548/566/309 -f 535/469/303 563/568/309 534/470/303 -f 626/553/309 564/569/310 563/568/309 -f 552/485/303 580/570/309 551/486/303 -f 627/571/309 581/572/310 580/570/309 -f 567/501/303 595/573/309 566/502/303 -f 629/554/309 596/574/310 595/573/309 -f 345/575/311 633/576/312 632/577/311 -f 344/323/312 571/505/301 633/576/312 -f 326/417/303 509/578/309 476/416/303 -f 621/550/309 510/579/310 509/578/309 -f 339/321/311 501/437/312 500/565/311 -f 623/580/312 454/438/301 501/437/312 -f 338/581/311 550/483/312 549/567/311 -f 625/582/312 529/484/301 550/483/312 -f 371/583/311 582/513/312 581/572/311 -f 628/584/312 520/514/301 582/513/312 -f 370/585/311 597/526/312 596/574/311 -f 630/586/312 539/527/301 597/526/312 -f 369/587/311 592/520/312 591/561/311 -f 368/588/312 556/521/301 592/520/312 -f 347/589/303 634/590/309 618/591/303 -f 346/592/309 632/577/310 634/590/309 -f 342/549/311 511/447/312 510/579/311 -f 622/551/312 489/448/301 511/447/312 -f 337/593/311 565/499/312 564/569/311 -f 336/594/312 479/500/301 565/499/312 -f 350/595/311 608/536/312 607/559/311 -f 349/596/312 609/537/301 608/536/312 -f 633/576/232 571/505/232 618/591/232 -f 471/597/239 635/598/239 472/533/239 -f 635/598/239 636/599/239 472/533/239 -f 465/411/239 488/600/239 493/434/239 -f 456/406/239 537/601/239 639/602/239 -f 481/424/239 554/603/239 642/604/239 -f 544/477/239 579/519/239 381/349/225 -f 515/455/239 569/605/239 656/606/239 -f 657/607/239 589/608/239 658/609/239 -f 449/610/313 505/440/314 504/611/313 -f 448/399/314 506/441/305 505/440/314 -f 490/432/302 531/612/315 491/431/302 -f 637/613/315 532/614/316 531/612/315 -f 456/406/302 503/615/315 457/404/302 -f 638/616/315 504/611/316 503/615/315 -f 481/424/302 583/617/315 482/422/302 -f 641/618/315 584/619/316 583/617/315 -f 522/461/302 615/620/315 523/459/302 -f 657/607/315 616/621/316 615/620/315 -f 557/622/302 573/623/315 558/494/302 -f 652/624/315 574/625/316 573/623/315 -f 654/626/313 660/627/314 659/628/313 -f 653/629/314 619/546/305 660/627/314 -f 643/630/313 600/528/314 599/631/313 -f 642/604/314 553/487/305 600/528/314 -f 515/455/302 598/632/315 516/453/302 -f 645/633/315 599/631/316 598/632/315 -f 646/634/313 617/544/314 616/621/313 -f 656/606/314 568/503/305 617/544/314 -f 647/635/313 612/538/314 611/636/313 -f 658/609/314 588/518/305 612/538/314 -f 541/478/302 610/637/315 542/476/302 -f 648/638/315 611/636/316 610/637/315 -f 602/639/302 661/640/315 603/641/302 -f 655/642/315 659/628/316 661/640/315 -f 486/429/239 512/449/317 494/433/318 -f 640/643/313 585/515/314 584/619/313 -f 639/602/314 536/471/305 585/515/314 -f 636/599/313 533/468/314 532/614/313 -f 635/598/314 477/418/305 533/468/314 -f 496/435/319 644/644/320 662/645/321 -f 644/644/320 494/433/306 662/645/321 -f 651/646/313 575/507/314 574/625/313 -f 650/647/314 576/508/305 575/507/314 -f 660/627/239 619/546/239 603/641/239 -f 512/449/322 497/436/308 498/648/323 -f 512/449/322 451/428/324 663/649/325 -f 445/395/326 666/650/327 664/651/328 -f 390/652/329 306/653/330 305/304/331 -f 668/654/332 666/650/327 669/655/333 -f 431/372/276 649/656/287 405/373/277 -f 430/657/334 670/658/335 431/372/276 -f 664/651/228 430/657/334 407/370/274 -f 406/351/254 664/651/228 407/370/274 -f 666/650/336 671/659/226 672/660/228 -f 328/661/337 307/305/338 673/662/337 -f 391/334/243 439/388/339 674/663/340 -f 670/658/341 669/655/333 675/664/342 -f 389/665/343 667/666/344 390/652/329 -f 672/660/228 669/655/345 666/650/336 -f 669/655/345 443/667/346 675/664/347 -f 675/664/347 674/663/287 677/668/348 -f 442/391/349 667/666/350 676/669/351 -f 679/670/299 676/669/351 678/671/299 -f 671/659/226 679/670/299 678/671/299 -f 441/390/350 673/662/232 667/666/350 -f 673/662/232 306/653/232 667/666/350 -f 680/672/239 677/668/348 674/663/287 -f 680/672/239 439/388/239 438/387/239 -f 440/389/293 679/670/352 446/396/353 -f 649/656/354 680/672/355 470/673/355 -f 389/665/343 678/671/356 676/669/357 -f 392/392/296 674/663/340 443/667/358 -f 393/394/298 672/660/359 394/332/241 -f 446/396/353 665/674/360 445/395/326 -f 353/397/361 673/662/337 441/390/294 -f 394/332/241 671/659/362 395/333/242 -f 388/675/363 671/659/362 678/671/356 -f 670/658/341 677/668/364 649/656/354 -f 470/673/355 438/387/365 382/414/365 -f 305/304/220 306/653/366 307/305/221 -f 309/307/223 310/345/251 311/308/224 -f 313/310/226 314/341/247 315/311/227 -f 316/313/229 317/336/244 318/314/230 -f 324/426/232 320/408/232 323/318/232 -f 320/408/232 321/316/232 323/318/232 -f 335/540/232 325/506/232 326/417/232 -f 304/306/232 328/661/232 329/529/232 -f 304/306/232 329/529/232 330/523/232 -f 335/540/232 326/417/232 327/409/232 -f 332/542/232 333/545/232 331/319/232 -f 333/545/232 334/320/232 331/319/232 -f 334/320/232 335/540/232 327/409/232 -f 327/409/232 304/306/232 334/320/232 -f 304/306/232 330/523/232 331/319/232 -f 371/583/232 336/594/232 337/593/232 -f 337/593/232 338/581/232 345/575/232 -f 338/581/232 339/321/232 344/323/232 -f 337/593/232 345/575/232 354/378/282 -f 369/587/232 370/585/232 354/378/282 -f 370/585/232 371/583/232 354/378/282 -f 371/583/232 337/593/232 354/378/282 -f 364/475/232 365/510/232 355/337/234 -f 365/510/232 366/491/232 355/337/234 -f 361/480/232 362/458/232 355/337/234 -f 362/458/232 363/496/232 355/337/234 -f 363/496/232 364/475/232 355/337/234 -f 359/463/232 360/421/232 355/337/234 -f 360/421/232 361/480/232 355/337/234 -f 357/444/232 358/443/232 304/306/232 -f 358/443/232 359/463/232 304/306/232 -f 304/306/232 359/463/232 355/337/234 -f 324/426/232 356/403/232 304/306/232 -f 356/403/232 357/444/232 304/306/232 -f 327/409/232 320/408/232 304/306/232 -f 320/408/232 324/426/232 304/306/232 -f 329/529/232 328/661/232 352/556/232 -f 328/661/232 353/397/240 352/556/232 -f 351/558/232 352/556/232 353/397/240 -f 350/595/232 351/558/232 353/397/240 -f 354/378/282 355/337/234 367/490/232 -f 355/337/234 366/491/232 367/490/232 -f 350/595/232 353/397/240 345/575/232 -f 353/397/240 354/378/282 345/575/232 -f 354/378/282 367/490/232 368/588/232 -f 354/378/282 368/588/232 369/587/232 -f 333/545/232 332/542/232 347/589/232 -f 332/542/232 348/676/232 347/589/232 -f 347/589/232 348/676/232 346/592/232 -f 348/676/232 349/596/232 346/592/232 -f 345/575/232 338/581/232 344/323/232 -f 346/592/232 349/596/232 350/595/232 -f 345/575/232 346/592/232 350/595/232 -f 341/562/232 323/318/232 322/317/232 -f 342/549/232 325/506/232 343/322/232 -f 341/562/232 322/317/232 340/564/232 -f 322/317/232 342/549/232 343/322/232 -f 340/564/232 322/317/232 339/321/232 -f 322/317/232 343/322/232 339/321/232 -f 319/315/231 318/314/230 372/324/233 -f 355/337/235 374/339/235 381/349/235 -f 374/339/235 375/335/235 380/350/235 -f 381/349/235 374/339/235 380/350/235 -f 375/335/235 316/313/235 379/326/235 -f 383/386/290 305/304/220 304/306/222 -f 304/306/222 355/337/235 381/349/235 -f 316/313/235 319/315/235 378/346/235 -f 382/414/367 383/386/290 304/306/222 -f 381/349/235 382/414/367 304/306/222 -f 375/335/235 379/326/235 380/350/235 -f 378/346/235 379/326/235 316/313/235 -f 373/325/235 376/330/235 377/329/235 -f 319/315/235 373/325/235 311/308/235 -f 311/308/235 378/346/235 319/315/235 -f 373/325/235 377/329/235 308/309/235 -f 379/326/236 378/346/236 384/327/237 -f 377/329/239 386/383/287 309/307/223 -f 376/330/232 373/325/234 372/324/233 -f 395/333/242 388/675/363 389/665/343 -f 389/665/343 390/652/329 395/333/242 -f 390/652/329 305/304/331 391/334/243 -f 395/333/242 390/652/329 391/334/243 -f 305/304/331 383/386/368 391/334/243 -f 391/334/243 392/392/296 394/332/241 -f 392/392/296 393/394/298 394/332/241 -f 375/335/229 396/354/257 317/336/244 -f 355/337/234 354/378/282 397/338/245 -f 398/340/246 399/361/265 315/311/227 -f 400/342/248 401/347/252 402/343/249 -f 310/345/251 384/327/237 378/346/236 -f 400/342/248 399/361/265 398/340/246 -f 404/348/253 405/373/277 381/349/225 -f 406/351/254 407/370/274 408/352/255 -f 385/328/238 404/348/253 380/350/224 -f 408/352/255 403/344/250 402/343/249 -f 374/339/231 397/338/245 396/354/257 -f 312/312/258 410/381/258 411/382/258 -f 411/382/258 386/383/258 312/312/258 -f 386/383/258 377/329/258 387/331/258 -f 312/312/258 386/383/258 387/331/258 -f 377/329/258 376/330/258 387/331/258 -f 387/331/258 412/385/258 313/310/258 -f 412/385/258 413/677/258 313/310/258 -f 401/347/252 398/340/246 414/355/259 -f 414/355/259 416/358/262 417/357/261 -f 416/358/262 318/314/230 317/336/244 -f 398/340/246 314/341/247 418/359/263 -f 418/359/263 419/360/264 416/358/262 -f 419/360/264 372/324/233 318/314/230 -f 399/361/265 420/365/269 421/362/266 -f 421/362/266 420/365/269 422/363/267 -f 423/364/268 422/363/267 310/345/251 -f 400/342/248 424/384/288 420/365/269 -f 420/365/269 424/384/288 425/366/270 -f 422/363/267 425/366/270 384/327/237 -f 408/352/255 426/371/275 427/367/271 -f 427/367/271 426/371/275 428/368/272 -f 429/369/273 428/368/272 404/348/253 -f 407/370/274 430/657/334 426/371/275 -f 426/371/275 430/657/334 431/372/276 -f 428/368/272 431/372/276 405/373/277 -f 406/351/254 409/353/256 432/374/278 -f 432/374/278 434/377/281 435/376/280 -f 434/377/281 397/338/245 354/378/282 -f 409/353/256 402/343/249 436/379/283 -f 436/379/283 437/380/284 434/377/281 -f 437/380/284 396/354/257 397/338/245 -f 312/312/228 315/311/227 421/362/266 -f 421/362/266 423/364/268 411/382/286 -f 423/364/268 309/307/223 386/383/287 -f 403/344/250 427/367/271 424/384/288 -f 424/384/288 427/367/271 429/369/273 -f 425/366/270 429/369/273 385/328/238 -f 313/310/226 413/677/369 418/359/263 -f 418/359/263 413/677/369 412/385/289 -f 419/360/264 412/385/289 387/331/240 -f 402/343/249 401/347/252 415/356/260 -f 415/356/260 417/357/261 437/380/284 -f 417/357/261 317/336/244 396/354/257 -f 383/386/290 382/414/367 438/387/291 -f 440/389/293 353/397/361 441/390/294 -f 392/392/296 443/667/358 444/393/297 -f 445/395/226 406/351/254 433/375/279 -f 433/375/279 435/376/280 440/389/300 -f 435/376/280 354/378/282 353/397/240 -f 448/399/239 449/610/239 450/400/239 -f 450/400/239 451/428/239 447/398/239 -f 451/428/239 452/452/239 447/398/239 -f 453/401/258 454/438/301 455/402/301 -f 457/404/302 458/446/258 459/405/258 -f 460/407/235 461/430/235 320/408/235 -f 463/410/235 464/415/235 465/411/235 -f 475/548/239 466/493/239 467/525/239 -f 468/678/239 469/535/239 382/414/239 -f 469/535/239 470/673/239 382/414/239 -f 474/413/239 475/548/239 467/525/239 -f 473/532/239 474/413/239 464/415/239 -f 474/413/239 467/525/239 382/414/239 -f 467/525/239 468/678/239 382/414/239 -f 464/415/239 471/597/239 473/532/239 -f 471/597/239 472/533/239 473/532/239 -f 476/416/303 460/407/304 327/409/304 -f 477/418/305 471/597/305 464/415/304 -f 478/419/258 479/500/301 480/420/301 -f 482/422/302 483/465/258 484/423/258 -f 485/425/235 453/401/235 356/403/235 -f 487/427/235 488/600/235 451/428/235 -f 461/430/258 489/448/301 321/316/301 -f 491/431/302 462/412/258 465/411/258 -f 323/318/304 341/562/303 492/439/303 -f 492/439/303 485/425/304 323/318/304 -f 495/679/305 493/434/304 494/433/306 -f 493/434/304 488/600/304 487/427/304 -f 496/435/307 498/648/323 497/436/308 -f 454/438/232 453/401/232 485/425/232 -f 485/425/232 492/439/232 454/438/232 -f 492/439/232 499/563/232 501/437/232 -f 499/563/232 500/565/232 501/437/232 -f 506/441/239 502/445/239 458/446/239 -f 458/446/239 457/404/239 506/441/239 -f 457/404/239 503/615/239 505/440/239 -f 503/615/239 504/611/239 505/440/239 -f 507/442/235 508/466/235 358/443/235 -f 502/445/235 452/452/235 459/405/235 -f 489/448/232 461/430/232 460/407/232 -f 460/407/232 476/416/232 489/448/232 -f 476/416/232 509/578/232 511/447/232 -f 509/578/232 510/579/232 511/447/232 -f 451/428/370 450/400/371 512/449/372 -f 450/400/371 496/435/307 498/648/373 -f 512/449/372 450/400/371 498/648/373 -f 507/442/304 357/444/304 514/450/303 -f 506/441/305 447/398/305 452/452/304 -f 516/453/302 517/482/258 518/454/258 -f 519/456/258 520/514/301 521/457/301 -f 523/459/302 524/498/258 525/460/258 -f 526/462/235 478/419/235 360/421/235 -f 527/464/235 528/472/235 484/423/235 -f 508/466/258 529/484/301 530/467/301 -f 477/418/239 463/410/239 462/412/239 -f 462/412/239 491/431/239 477/418/239 -f 491/431/239 531/612/239 533/468/239 -f 531/612/239 532/614/239 533/468/239 -f 526/462/304 359/463/304 535/469/303 -f 536/471/305 537/601/305 528/472/304 -f 538/473/258 539/527/301 540/474/301 -f 542/476/302 543/512/258 544/477/258 -f 545/479/235 519/456/235 362/458/235 -f 546/481/235 547/488/235 518/454/235 -f 529/484/232 508/466/232 507/442/232 -f 507/442/232 513/451/232 529/484/232 -f 513/451/232 548/566/232 550/483/232 -f 548/566/232 549/567/232 550/483/232 -f 545/479/304 361/480/304 552/485/303 -f 553/487/305 554/603/305 547/488/304 -f 555/489/258 556/521/301 367/490/301 -f 467/525/258 466/493/258 559/492/258 -f 466/493/258 557/622/302 558/494/302 -f 560/495/235 538/473/235 364/475/235 -f 561/497/235 562/504/235 525/460/235 -f 479/500/232 478/419/232 526/462/232 -f 526/462/232 534/470/232 479/500/232 -f 534/470/232 563/568/232 565/499/232 -f 563/568/232 564/569/232 565/499/232 -f 560/495/304 363/496/304 567/501/303 -f 568/503/305 569/605/305 562/504/304 -f 325/506/258 335/540/258 570/680/258 -f 570/680/258 571/505/301 325/506/258 -f 576/508/239 572/524/239 559/492/239 -f 559/492/239 558/494/239 576/508/239 -f 558/494/239 573/623/239 575/507/239 -f 573/623/239 574/625/239 575/507/239 -f 577/509/235 555/489/235 366/491/235 -f 578/511/235 579/519/235 544/477/235 -f 520/514/232 519/456/232 545/479/232 -f 545/479/232 551/486/232 520/514/232 -f 551/486/232 580/570/232 582/513/232 -f 580/570/232 581/572/232 582/513/232 -f 536/471/239 527/464/239 483/465/239 -f 483/465/239 482/422/239 536/471/239 -f 482/422/239 583/617/239 585/515/239 -f 583/617/239 584/619/239 585/515/239 -f 577/509/304 365/510/304 587/516/303 -f 588/518/305 589/608/305 579/519/304 -f 556/521/232 555/489/232 577/509/232 -f 577/509/232 586/517/232 556/521/232 -f 586/517/232 590/560/232 592/520/232 -f 590/560/232 591/561/232 592/520/232 -f 593/522/235 594/543/235 331/319/235 -f 572/524/235 468/678/235 467/525/235 -f 539/527/232 538/473/232 560/495/232 -f 560/495/232 566/502/232 539/527/232 -f 566/502/232 595/573/232 597/526/232 -f 595/573/232 596/574/232 597/526/232 -f 553/487/239 546/481/239 517/482/239 -f 517/482/239 516/453/239 553/487/239 -f 516/453/239 598/632/239 600/528/239 -f 598/632/239 599/631/239 600/528/239 -f 330/523/304 329/529/304 593/522/304 -f 329/529/304 352/556/303 601/530/303 -f 472/533/258 602/639/302 603/641/302 -f 603/641/302 604/531/258 472/533/258 -f 469/535/304 468/678/304 572/524/304 -f 572/524/304 576/508/305 469/535/304 -f 609/537/232 594/543/232 593/522/232 -f 593/522/232 601/530/232 609/537/232 -f 601/530/232 606/557/232 608/536/232 -f 606/557/232 607/559/232 608/536/232 -f 588/518/239 578/511/239 543/512/239 -f 543/512/239 542/476/239 588/518/239 -f 542/476/239 610/637/239 612/538/239 -f 610/637/239 611/636/239 612/538/239 -f 613/539/235 570/680/235 335/540/235 -f 614/541/235 474/413/235 473/532/235 -f 348/676/301 332/542/258 609/537/301 -f 332/542/258 331/319/258 594/543/258 -f 568/503/239 561/497/239 524/498/239 -f 524/498/239 523/459/239 568/503/239 -f 523/459/239 615/620/239 617/544/239 -f 615/620/239 616/621/239 617/544/239 -f 347/589/303 618/591/303 333/545/304 -f 618/591/303 613/539/304 333/545/304 -f 475/548/304 474/413/304 614/541/304 -f 614/541/304 619/546/305 475/548/304 -f 623/580/232 339/321/232 338/581/232 -f 623/580/232 338/581/232 624/552/232 -f 357/444/232 356/403/232 455/402/232 -f 455/402/232 623/580/232 624/552/232 -f 514/450/232 357/444/232 455/402/232 -f 625/582/232 338/581/232 337/593/232 -f 625/582/232 337/593/232 626/553/232 -f 359/463/232 358/443/232 530/467/232 -f 530/467/232 625/582/232 626/553/232 -f 535/469/232 359/463/232 530/467/232 -f 480/420/232 336/594/232 627/571/232 -f 336/594/232 371/583/232 627/571/232 -f 361/480/232 360/421/232 480/420/232 -f 480/420/232 627/571/232 552/485/232 -f 628/584/232 371/583/232 370/585/232 -f 628/584/232 370/585/232 629/554/232 -f 363/496/232 362/458/232 521/457/232 -f 521/457/232 628/584/232 629/554/232 -f 567/501/232 363/496/232 521/457/232 -f 630/586/232 370/585/232 369/587/232 -f 630/586/232 369/587/232 631/555/232 -f 365/510/232 364/475/232 540/474/232 -f 540/474/232 630/586/232 631/555/232 -f 587/516/232 365/510/232 540/474/232 -f 352/556/303 351/558/309 606/557/309 -f 351/558/309 350/595/310 607/559/310 -f 587/516/303 631/555/309 590/560/309 -f 631/555/309 369/587/310 591/561/310 -f 341/562/303 340/564/309 499/563/309 -f 340/564/309 339/321/310 500/565/310 -f 514/450/303 624/552/309 548/566/309 -f 624/552/309 338/581/310 549/567/310 -f 535/469/303 626/553/309 563/568/309 -f 626/553/309 337/593/310 564/569/310 -f 552/485/303 627/571/309 580/570/309 -f 627/571/309 371/583/310 581/572/310 -f 567/501/303 629/554/309 595/573/309 -f 629/554/309 370/585/310 596/574/310 -f 345/575/311 344/323/312 633/576/312 -f 344/323/312 343/322/301 571/505/301 -f 326/417/303 621/550/309 509/578/309 -f 621/550/309 342/549/310 510/579/310 -f 339/321/311 623/580/312 501/437/312 -f 623/580/312 455/402/301 454/438/301 -f 338/581/311 625/582/312 550/483/312 -f 625/582/312 530/467/301 529/484/301 -f 371/583/311 628/584/312 582/513/312 -f 628/584/312 521/457/301 520/514/301 -f 370/585/311 630/586/312 597/526/312 -f 630/586/312 540/474/301 539/527/301 -f 369/587/311 368/588/312 592/520/312 -f 368/588/312 367/490/301 556/521/301 -f 347/589/303 346/592/309 634/590/309 -f 346/592/309 345/575/310 632/577/310 -f 342/549/311 622/551/312 511/447/312 -f 622/551/312 321/316/301 489/448/301 -f 337/593/311 336/594/312 565/499/312 -f 336/594/312 480/420/301 479/500/301 -f 350/595/311 349/596/312 608/536/312 -f 349/596/312 348/676/301 609/537/301 -f 571/505/232 570/680/232 613/539/232 -f 613/539/232 618/591/232 571/505/232 -f 618/591/232 634/590/232 633/576/232 -f 634/590/232 632/577/232 633/576/232 -f 493/434/239 637/613/239 490/432/239 -f 490/432/239 465/411/239 493/434/239 -f 640/643/239 638/616/239 639/602/239 -f 638/616/239 456/406/239 639/602/239 -f 456/406/239 459/405/239 528/472/239 -f 456/406/239 528/472/239 537/601/239 -f 643/630/239 641/618/239 642/604/239 -f 641/618/239 481/424/239 642/604/239 -f 481/424/239 484/423/239 547/488/239 -f 481/424/239 547/488/239 554/603/239 -f 636/599/239 637/613/239 450/400/239 -f 637/613/239 493/434/239 495/679/239 -f 637/613/239 495/679/239 644/644/239 -f 602/639/239 472/533/239 636/599/239 -f 602/639/239 636/599/239 450/400/239 -f 637/613/239 644/644/239 450/400/239 -f 655/642/239 602/639/239 450/400/239 -f 654/626/239 655/642/239 449/610/239 -f 655/642/239 450/400/239 449/610/239 -f 449/610/239 638/616/239 640/643/239 -f 654/626/239 449/610/239 640/643/239 -f 640/643/239 641/618/239 643/630/239 -f 643/630/239 645/633/239 646/634/239 -f 643/630/239 646/634/239 405/373/277 -f 646/634/239 647/635/239 405/373/277 -f 643/630/239 405/373/277 640/643/239 -f 654/626/239 640/643/239 405/373/277 -f 466/493/239 475/548/239 620/547/239 -f 557/622/239 466/493/239 620/547/239 -f 557/622/239 620/547/239 653/629/239 -f 652/624/239 557/622/239 653/629/239 -f 652/624/239 653/629/239 654/626/239 -f 651/646/239 652/624/239 654/626/239 -f 470/673/239 469/535/239 605/534/239 -f 464/415/239 382/414/239 465/411/239 -f 382/414/239 381/349/225 528/472/239 -f 465/411/239 382/414/239 488/600/239 -f 451/428/239 488/600/239 382/414/239 -f 451/428/239 382/414/239 452/452/239 -f 649/656/287 470/673/239 605/534/239 -f 649/656/287 605/534/239 650/647/239 -f 452/452/239 382/414/239 459/405/239 -f 528/472/239 459/405/239 382/414/239 -f 649/656/287 650/647/239 651/646/239 -f 649/656/287 651/646/239 654/626/239 -f 518/454/239 547/488/239 381/349/225 -f 547/488/239 484/423/239 381/349/225 -f 484/423/239 528/472/239 381/349/225 -f 405/373/277 649/656/287 654/626/239 -f 579/519/239 525/460/239 381/349/225 -f 525/460/239 562/504/239 381/349/225 -f 562/504/239 518/454/239 381/349/225 -f 405/373/277 647/635/239 648/638/239 -f 405/373/277 648/638/239 541/478/239 -f 405/373/277 541/478/239 381/349/225 -f 541/478/239 544/477/239 381/349/225 -f 646/634/239 645/633/239 656/606/239 -f 645/633/239 515/455/239 656/606/239 -f 515/455/239 518/454/239 562/504/239 -f 515/455/239 562/504/239 569/605/239 -f 522/461/239 525/460/239 579/519/239 -f 522/461/239 579/519/239 589/608/239 -f 647/635/239 646/634/239 657/607/239 -f 657/607/239 522/461/239 589/608/239 -f 658/609/239 647/635/239 657/607/239 -f 449/610/313 448/399/314 505/440/314 -f 448/399/314 447/398/305 506/441/305 -f 490/432/302 637/613/315 531/612/315 -f 637/613/315 636/599/316 532/614/316 -f 456/406/302 638/616/315 503/615/315 -f 638/616/315 449/610/316 504/611/316 -f 481/424/302 641/618/315 583/617/315 -f 641/618/315 640/643/316 584/619/316 -f 522/461/302 657/607/315 615/620/315 -f 657/607/315 646/634/316 616/621/316 -f 557/622/302 652/624/315 573/623/315 -f 652/624/315 651/646/316 574/625/316 -f 654/626/313 653/629/314 660/627/314 -f 653/629/314 620/547/305 619/546/305 -f 643/630/313 642/604/314 600/528/314 -f 642/604/314 554/603/305 553/487/305 -f 515/455/302 645/633/315 598/632/315 -f 645/633/315 643/630/316 599/631/316 -f 646/634/313 656/606/314 617/544/314 -f 656/606/314 569/605/305 568/503/305 -f 647/635/313 658/609/314 612/538/314 -f 658/609/314 589/608/305 588/518/305 -f 541/478/302 648/638/315 610/637/315 -f 648/638/315 647/635/316 611/636/316 -f 602/639/302 655/642/315 661/640/315 -f 655/642/315 654/626/316 659/628/316 -f 512/449/317 498/648/374 662/645/375 -f 498/648/374 496/435/376 662/645/375 -f 662/645/375 494/433/318 512/449/317 -f 494/433/318 487/427/239 486/429/239 -f 640/643/313 639/602/314 585/515/314 -f 639/602/314 537/601/305 536/471/305 -f 636/599/313 635/598/314 533/468/314 -f 635/598/314 471/597/305 477/418/305 -f 496/435/319 450/400/377 644/644/320 -f 644/644/320 495/679/305 494/433/306 -f 651/646/313 650/647/314 575/507/314 -f 650/647/314 605/534/305 576/508/305 -f 619/546/239 614/541/239 604/531/239 -f 604/531/239 603/641/239 619/546/239 -f 603/641/239 661/640/239 660/627/239 -f 661/640/239 659/628/239 660/627/239 -f 512/449/322 663/649/325 497/436/308 -f 512/449/258 486/429/258 451/428/258 -f 445/395/326 665/674/360 666/650/327 -f 390/652/329 667/666/344 306/653/330 -f 668/654/332 664/651/328 666/650/327 -f 431/372/276 670/658/335 649/656/287 -f 430/657/334 668/654/345 670/658/335 -f 664/651/228 668/654/345 430/657/334 -f 406/351/254 445/395/226 664/651/228 -f 666/650/336 665/674/378 671/659/226 -f 328/661/337 304/306/338 307/305/338 -f 391/334/243 383/386/368 439/388/339 -f 670/658/341 668/654/332 669/655/333 -f 389/665/343 676/669/357 667/666/344 -f 672/660/228 444/393/345 669/655/345 -f 669/655/345 444/393/345 443/667/346 -f 675/664/347 443/667/346 674/663/287 -f 442/391/349 441/390/350 667/666/350 -f 679/670/299 442/391/349 676/669/351 -f 671/659/226 665/674/378 679/670/299 -f 673/662/232 307/305/232 306/653/232 -f 680/672/239 674/663/287 439/388/239 -f 440/389/293 442/391/295 679/670/352 -f 649/656/354 677/668/364 680/672/355 -f 389/665/343 388/675/363 678/671/356 -f 392/392/296 391/334/243 674/663/340 -f 393/394/298 444/393/297 672/660/359 -f 446/396/353 679/670/352 665/674/360 -f 353/397/361 328/661/337 673/662/337 -f 394/332/241 672/660/359 671/659/362 -f 388/675/363 395/333/242 671/659/362 -f 670/658/341 675/664/342 677/668/364 -f 470/673/355 680/672/355 438/387/365 -o Cube.001_Cube.002 -v 1.702443 0.284738 -0.011919 -v 1.702443 0.284738 0.013144 -v 1.702443 0.395269 0.013144 -v 1.702443 0.395269 -0.011919 -v 1.749322 0.395269 0.013144 -v 1.749322 0.395269 -0.011919 -v 1.749322 0.284738 0.013144 -v 1.749322 0.284738 -0.011919 -vt 0.703156 0.520987 -vt 0.703156 0.554227 -vt 0.703156 0.520987 -vt 0.703156 0.554227 -vt 0.717254 0.554227 -vt 0.717254 0.554227 -vt 0.717254 0.520987 -vt 0.717254 0.520987 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -s off -f 682/681/379 684/682/379 681/683/379 -f 683/684/380 686/685/380 684/682/380 -f 685/686/381 688/687/381 686/685/381 -f 687/688/382 681/683/382 688/687/382 -f 686/685/383 681/683/383 684/682/383 -f 683/684/384 687/688/384 685/686/384 -f 682/681/379 683/684/379 684/682/379 -f 683/684/380 685/686/380 686/685/380 -f 685/686/381 687/688/381 688/687/381 -f 687/688/382 682/681/382 681/683/382 -f 686/685/383 688/687/383 681/683/383 -f 683/684/384 682/681/384 687/688/384 -o Cylinder.006 -v 1.669013 0.315957 0.000612 -v 1.750267 0.315957 0.000612 -v 1.750267 0.278978 -0.088663 -v 1.669013 0.278978 -0.088663 -v 1.750267 0.189702 -0.125642 -v 1.669013 0.189702 -0.125642 -v 1.750267 0.100427 -0.088663 -v 1.669013 0.100427 -0.088663 -v 1.750267 0.063448 0.000612 -v 1.669013 0.063448 0.000612 -v 1.750267 0.100427 0.089888 -v 1.669013 0.100427 0.089888 -v 1.750267 0.189702 0.126867 -v 1.669013 0.189702 0.126867 -v 1.750267 0.278978 0.089888 -v 1.669013 0.278978 0.089888 -vt 0.729257 0.590922 -vt 0.704821 0.579801 -vt 0.704821 0.590922 -vt 0.729257 0.579801 -vt 0.704821 0.552952 -vt 0.729257 0.552952 -vt 0.704821 0.526104 -vt 0.729257 0.526104 -vt 0.704821 0.514983 -vt 0.729257 0.514983 -vt 0.704821 0.526104 -vt 0.729257 0.526104 -vt 0.704821 0.552952 -vt 0.729257 0.552952 -vt 0.704821 0.579801 -vt 0.729257 0.579801 -vn 0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.0000 1.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -1.0000 0.0000 0.0000 +f 2/1/1 4/2/2 1/3/3 +f 6/4/4 8/5/5 5/6/6 +f 10/7/7 12/8/8 9/7/9 +f 13/9/10 15/10/11 16/5/12 +f 18/11/13 19/12/13 20/13/13 +f 1/3/13 28/14/13 31/15/13 +f 36/16/13 40/17/13 41/18/13 +f 16/5/12 69/4/14 70/6/15 +f 5/6/16 8/5/16 70/6/16 +f 76/19/17 81/20/18 82/21/19 +f 74/22/20 6/4/4 5/6/6 +f 73/22/13 69/4/14 84/23/21 +f 91/24/22 92/24/23 88/25/24 +f 72/19/10 14/20/25 13/9/10 +f 52/26/15 94/27/26 71/28/12 +f 95/29/27 12/8/8 11/8/28 +f 97/30/29 99/31/30 100/31/31 +f 7/10/32 75/9/17 8/5/5 +f 97/30/29 95/29/27 98/30/33 +f 101/27/34 78/26/6 77/28/5 +f 103/32/35 105/33/36 106/33/37 +f 82/21/19 77/28/5 76/19/17 +f 105/33/36 99/31/30 106/33/37 +f 71/28/12 93/21/38 72/19/10 +f 10/7/39 9/7/39 84/23/39 +f 98/30/33 111/34/40 112/35/41 +f 111/34/40 114/36/42 112/35/41 +f 113/37/43 14/20/25 114/36/42 +f 95/29/27 115/38/44 111/34/40 +f 115/38/44 113/37/43 111/34/40 +f 116/39/45 15/10/11 113/37/43 +f 96/29/46 118/38/47 12/8/8 +f 118/38/47 119/37/48 120/39/49 +f 120/39/49 7/10/32 6/4/4 +f 97/30/29 117/34/50 96/29/46 +f 117/34/50 122/36/51 119/37/48 +f 119/37/48 81/20/18 7/10/32 +f 105/33/36 124/40/52 100/31/31 +f 124/40/52 125/41/53 126/42/54 +f 126/42/54 101/27/34 82/21/19 +f 104/32/55 123/43/56 105/33/36 +f 123/43/56 128/44/57 125/41/53 +f 125/41/53 102/45/58 101/27/34 +f 103/32/35 129/43/59 130/46/60 +f 129/43/59 132/44/61 130/46/60 +f 131/41/62 51/45/63 132/44/61 +f 106/33/37 133/47/64 129/43/59 +f 133/47/64 131/41/62 129/43/59 +f 134/42/65 94/27/26 131/41/62 +f 9/7/9 118/38/47 107/48/66 +f 118/38/47 108/49/67 107/48/66 +f 120/39/49 83/23/68 108/49/67 +f 100/31/31 121/35/69 97/30/29 +f 121/35/69 126/42/54 122/36/51 +f 122/36/51 82/21/19 81/20/18 +f 10/7/7 115/38/44 11/8/28 +f 115/38/44 109/49/70 116/39/45 +f 116/39/45 84/23/21 69/4/14 +f 99/31/30 112/35/41 133/47/64 +f 112/35/41 134/42/65 133/47/64 +f 114/36/42 93/21/38 134/42/65 +f 80/1/71 135/50/72 136/51/73 +f 137/52/74 138/53/75 139/54/76 +f 89/55/77 141/56/78 90/57/79 +f 142/58/7 130/46/60 143/59/80 +f 130/46/60 137/52/81 143/59/80 +f 132/44/61 50/60/21 137/52/81 +f 144/61/20 145/62/20 147/63/20 +f 150/64/39 152/65/82 53/64/39 +f 154/66/83 156/67/39 153/66/83 +f 157/68/16 17/69/16 24/68/16 +f 160/68/16 162/69/16 159/69/16 +f 171/15/20 79/70/20 161/68/20 +f 173/71/84 24/68/85 23/71/84 +f 174/72/86 161/68/85 160/68/85 +f 175/73/39 177/74/82 57/73/39 +f 179/75/83 181/73/39 178/75/83 +f 182/76/16 53/64/16 21/76/16 +f 184/76/16 148/64/16 183/64/16 +f 158/69/39 18/11/82 17/69/39 +f 188/77/83 162/69/39 187/77/83 +f 182/76/85 21/76/85 20/13/85 +f 191/78/87 190/13/85 184/76/85 +f 193/79/88 194/80/89 147/63/88 +f 198/81/13 151/65/13 189/82/13 +f 202/62/20 203/61/20 154/66/20 +f 204/83/16 55/67/16 54/83/16 +f 199/83/16 156/67/16 155/67/16 +f 208/84/13 186/11/13 173/71/13 +f 209/85/39 183/64/39 148/64/39 +f 204/83/85 211/86/84 210/86/84 +f 203/61/86 149/83/85 199/83/85 +f 213/87/83 215/88/39 212/87/83 +f 216/88/39 218/89/82 59/88/39 +f 220/90/83 222/91/39 219/90/83 +f 223/92/16 57/73/16 56/92/16 +f 224/92/16 181/73/16 180/73/16 +f 205/67/39 227/93/82 55/67/39 +f 230/94/20 174/72/20 188/77/20 +f 223/92/85 232/95/84 231/95/84 +f 233/96/86 225/92/85 224/92/85 +f 235/91/39 237/97/82 61/91/39 +f 239/98/83 241/99/39 238/98/83 +f 242/100/16 59/88/16 58/100/16 +f 243/100/16 215/88/16 214/88/16 +f 247/101/13 226/93/13 210/86/13 +f 242/100/85 249/102/84 248/102/84 +f 250/103/86 244/100/85 243/100/85 +f 252/99/39 64/104/82 63/99/39 +f 256/14/39 163/105/39 255/106/83 +f 257/107/16 61/91/16 60/107/16 +f 258/107/16 222/91/16 221/91/16 +f 262/108/13 176/74/13 231/95/13 +f 257/107/85 264/109/84 263/109/84 +f 265/110/86 259/107/85 258/107/85 +f 268/17/82 40/17/82 22/111/39 +f 272/112/20 273/113/20 255/106/20 +f 274/114/16 63/99/16 62/114/16 +f 275/114/16 241/99/16 240/99/16 +f 279/115/13 217/89/13 248/102/13 +f 282/116/20 233/96/20 179/75/20 +f 274/114/85 284/117/84 283/117/84 +f 285/118/86 276/114/85 275/114/85 +f 289/119/13 253/104/13 283/117/13 +f 290/120/16 28/14/16 27/120/16 +f 269/120/16 164/14/16 256/14/16 +f 294/121/13 236/97/13 263/109/13 +f 297/122/20 250/103/20 213/87/20 +f 290/120/85 26/123/85 298/124/84 +f 301/125/39 170/125/39 169/111/39 +f 273/113/86 302/113/86 166/123/85 +f 305/126/13 306/127/13 298/124/13 +f 309/128/20 285/118/20 239/98/20 +f 310/15/16 32/125/16 31/15/16 +f 311/15/16 170/125/16 301/125/16 +f 306/127/82 29/105/39 291/14/39 +f 314/129/20 265/110/20 220/90/20 +f 310/15/85 31/15/85 30/130/85 +f 316/131/86 317/131/86 172/130/85 +f 39/132/13 318/133/13 22/111/13 +f 318/133/13 23/71/13 22/111/13 +f 18/11/13 319/84/13 19/12/13 +f 319/84/13 39/132/13 19/12/13 +f 152/65/13 321/134/13 211/86/13 +f 227/93/13 323/135/13 232/95/13 +f 177/74/13 249/102/13 58/100/13 +f 218/89/13 326/136/13 264/109/13 +f 237/97/13 328/137/13 284/117/13 +f 49/124/84 303/138/90 298/124/84 +f 48/138/90 304/139/91 303/138/90 +f 284/117/84 287/137/90 283/117/84 +f 328/137/90 288/140/91 287/137/90 +f 38/82/84 196/141/90 189/82/84 +f 37/141/90 197/16/91 196/141/90 +f 211/86/84 245/134/90 210/86/84 +f 321/134/90 246/142/91 245/134/90 +f 232/95/84 260/135/90 231/95/84 +f 323/135/90 261/143/91 260/135/90 +f 249/102/84 277/144/90 248/102/84 +f 324/144/90 278/145/91 277/144/90 +f 264/109/84 292/136/90 263/109/84 +f 326/136/90 293/146/91 292/136/90 +f 42/147/92 330/18/93 329/147/92 +f 41/18/93 268/17/82 330/18/93 +f 23/71/84 206/133/90 173/71/84 +f 318/133/90 207/132/91 206/133/90 +f 36/16/92 198/81/93 197/16/92 +f 320/81/93 151/65/82 198/81/93 +f 35/142/92 247/101/93 246/142/92 +f 322/101/93 226/93/82 247/101/93 +f 68/145/92 279/115/93 278/145/92 +f 325/115/93 217/89/82 279/115/93 +f 67/146/92 294/121/93 293/146/92 +f 327/121/93 236/97/82 294/121/93 +f 66/140/92 289/119/93 288/140/92 +f 65/119/93 253/104/82 289/119/93 +f 44/148/84 331/149/90 315/148/84 +f 43/149/90 329/147/91 331/149/90 +f 39/132/92 208/84/93 207/132/92 +f 319/84/93 186/11/82 208/84/93 +f 34/143/92 262/108/93 261/143/92 +f 33/108/93 176/74/82 262/108/93 +f 47/139/92 305/126/93 304/139/92 +f 46/126/93 306/127/82 305/126/93 +f 330/18/13 268/17/13 315/148/13 +f 168/72/20 332/94/20 169/111/20 +f 332/94/20 333/132/20 169/111/20 +f 162/69/20 185/76/20 190/13/20 +f 153/66/20 234/96/20 336/116/20 +f 178/75/20 251/103/20 339/122/20 +f 241/99/20 276/114/20 78/26/6 +f 212/87/20 266/110/20 353/129/20 +f 354/150/20 286/118/20 355/128/20 +f 146/142/94 202/62/95 201/142/94 +f 145/62/95 203/61/86 202/62/95 +f 187/77/83 228/151/96 188/77/83 +f 334/151/96 229/132/97 228/151/96 +f 153/66/83 200/152/96 154/66/83 +f 335/152/96 201/142/97 200/152/96 +f 178/75/83 280/153/96 179/75/83 +f 338/153/96 281/143/97 280/153/96 +f 219/90/83 312/150/96 220/90/83 +f 354/150/96 313/146/97 312/150/96 +f 254/106/83 270/154/96 255/106/83 +f 349/154/96 271/139/97 270/154/96 +f 351/147/94 357/155/95 356/147/94 +f 350/155/95 316/131/86 357/155/95 +f 340/145/94 297/122/95 296/145/94 +f 339/122/95 250/103/86 297/122/95 +f 212/87/83 295/156/96 213/87/83 +f 342/156/96 296/145/97 295/156/96 +f 343/146/94 314/129/95 313/146/94 +f 353/129/95 265/110/86 314/129/95 +f 344/140/94 309/128/95 308/140/94 +f 355/128/95 285/118/86 309/128/95 +f 238/98/83 307/157/96 239/98/83 +f 345/157/96 308/140/97 307/157/96 +f 299/158/83 358/159/96 300/158/83 +f 352/159/96 356/147/97 358/159/96 +f 183/64/20 209/85/98 191/78/99 +f 337/143/94 282/116/95 281/143/94 +f 336/116/95 233/96/86 282/116/95 +f 333/132/94 230/94/95 229/132/94 +f 332/94/95 174/72/86 230/94/95 +f 193/79/100 341/160/101 359/161/102 +f 341/160/101 191/78/87 359/161/102 +f 348/139/94 272/112/95 271/139/94 +f 347/112/95 273/113/86 272/112/95 +f 357/155/20 316/131/20 300/158/20 +f 209/85/103 194/80/89 195/162/104 +f 209/85/103 148/64/105 360/163/106 +f 142/58/107 363/164/108 361/58/109 +f 87/25/110 3/51/111 2/1/112 +f 365/59/113 363/164/108 366/165/114 +f 128/44/57 346/60/115 102/45/58 +f 127/46/116 367/52/117 128/44/57 +f 361/58/9 127/46/116 104/32/55 +f 103/32/35 361/58/9 104/32/55 +f 363/164/118 368/166/7 369/166/9 +f 25/167/119 4/2/120 370/168/121 +f 88/25/24 136/51/122 371/169/123 +f 367/52/124 366/165/114 372/54/125 +f 86/55/126 364/169/127 87/25/110 +f 369/166/9 366/165/128 363/164/118 +f 366/165/128 140/170/117 372/54/117 +f 372/54/117 371/169/68 374/53/68 +f 139/54/81 364/169/129 373/170/81 +f 376/165/130 373/170/81 375/56/80 +f 368/166/7 376/165/130 375/56/80 +f 138/53/129 370/168/13 364/169/129 +f 370/168/13 3/51/13 364/169/129 +f 377/168/20 374/53/68 371/169/68 +f 377/168/20 136/51/20 135/50/20 +f 137/52/74 376/165/131 143/59/132 +f 346/60/133 377/168/134 167/167/134 +f 86/55/126 375/56/135 373/170/136 +f 89/55/77 371/169/123 140/170/137 +f 90/57/79 369/166/138 91/24/22 +f 143/59/132 362/164/139 142/58/107 +f 50/60/140 370/168/121 138/53/75 +f 91/24/22 368/166/141 92/24/23 +f 85/57/142 368/166/141 375/56/135 +f 367/52/124 374/53/143 346/60/133 +f 167/167/134 135/50/144 79/70/144 +f 2/1/1 3/51/145 4/2/2 +f 6/4/4 7/10/32 8/5/5 +f 10/7/7 11/8/28 12/8/8 +f 13/9/10 14/20/25 15/10/11 +f 21/76/13 17/69/13 20/13/13 +f 17/69/13 18/11/13 20/13/13 +f 32/125/13 22/111/13 23/71/13 +f 1/3/13 25/167/13 26/123/13 +f 1/3/13 26/123/13 27/120/13 +f 32/125/13 23/71/13 24/68/13 +f 29/105/13 30/130/13 28/14/13 +f 30/130/13 31/15/13 28/14/13 +f 31/15/13 32/125/13 24/68/13 +f 24/68/13 1/3/13 31/15/13 +f 1/3/13 27/120/13 28/14/13 +f 68/145/13 33/108/13 34/143/13 +f 34/143/13 35/142/13 42/147/13 +f 35/142/13 36/16/13 41/18/13 +f 34/143/13 42/147/13 51/45/63 +f 66/140/13 67/146/13 51/45/63 +f 67/146/13 68/145/13 51/45/63 +f 68/145/13 34/143/13 51/45/63 +f 61/91/13 62/114/13 52/26/15 +f 62/114/13 63/99/13 52/26/15 +f 58/100/13 59/88/13 52/26/15 +f 59/88/13 60/107/13 52/26/15 +f 60/107/13 61/91/13 52/26/15 +f 56/92/13 57/73/13 52/26/15 +f 57/73/13 58/100/13 52/26/15 +f 54/83/13 55/67/13 1/3/13 +f 55/67/13 56/92/13 1/3/13 +f 1/3/13 56/92/13 52/26/15 +f 21/76/13 53/64/13 1/3/13 +f 53/64/13 54/83/13 1/3/13 +f 24/68/13 17/69/13 1/3/13 +f 17/69/13 21/76/13 1/3/13 +f 26/123/13 25/167/13 49/124/13 +f 25/167/13 50/60/21 49/124/13 +f 48/138/13 49/124/13 50/60/21 +f 47/139/13 48/138/13 50/60/21 +f 51/45/63 52/26/15 64/104/13 +f 52/26/15 63/99/13 64/104/13 +f 47/139/13 50/60/21 42/147/13 +f 50/60/21 51/45/63 42/147/13 +f 51/45/63 64/104/13 65/119/13 +f 51/45/63 65/119/13 66/140/13 +f 30/130/13 29/105/13 44/148/13 +f 29/105/13 45/127/13 44/148/13 +f 44/148/13 45/127/13 43/149/13 +f 45/127/13 46/126/13 43/149/13 +f 42/147/13 35/142/13 41/18/13 +f 43/149/13 46/126/13 47/139/13 +f 42/147/13 43/149/13 47/139/13 +f 38/82/13 20/13/13 19/12/13 +f 39/132/13 22/111/13 40/17/13 +f 38/82/13 19/12/13 37/141/13 +f 19/12/13 39/132/13 40/17/13 +f 37/141/13 19/12/13 36/16/13 +f 19/12/13 40/17/13 36/16/13 +f 16/5/12 15/10/11 69/4/14 +f 52/26/16 71/28/16 78/26/16 +f 71/28/16 72/19/16 77/28/16 +f 78/26/16 71/28/16 77/28/16 +f 72/19/16 13/9/16 76/19/16 +f 80/1/71 2/1/1 1/3/3 +f 1/3/3 52/26/16 78/26/16 +f 13/9/16 16/5/16 75/9/16 +f 79/70/146 80/1/71 1/3/3 +f 78/26/16 79/70/146 1/3/3 +f 72/19/16 76/19/16 77/28/16 +f 75/9/16 76/19/16 13/9/16 +f 70/6/16 73/22/16 74/22/16 +f 16/5/16 70/6/16 8/5/16 +f 8/5/16 75/9/16 16/5/16 +f 70/6/16 74/22/16 5/6/16 +f 76/19/17 75/9/17 81/20/18 +f 74/22/20 83/23/68 6/4/4 +f 73/22/13 70/6/15 69/4/14 +f 92/24/23 85/57/142 86/55/126 +f 86/55/126 87/25/110 92/24/23 +f 87/25/110 2/1/112 88/25/24 +f 92/24/23 87/25/110 88/25/24 +f 2/1/112 80/1/147 88/25/24 +f 88/25/24 89/55/77 91/24/22 +f 89/55/77 90/57/79 91/24/22 +f 72/19/10 93/21/38 14/20/25 +f 52/26/15 51/45/63 94/27/26 +f 95/29/27 96/29/46 12/8/8 +f 97/30/29 98/30/33 99/31/30 +f 7/10/32 81/20/18 75/9/17 +f 97/30/29 96/29/46 95/29/27 +f 101/27/34 102/45/58 78/26/6 +f 103/32/35 104/32/55 105/33/36 +f 82/21/19 101/27/34 77/28/5 +f 105/33/36 100/31/31 99/31/30 +f 71/28/12 94/27/26 93/21/38 +f 9/7/39 107/48/39 108/49/39 +f 108/49/39 83/23/39 9/7/39 +f 83/23/39 74/22/39 84/23/39 +f 9/7/39 83/23/39 84/23/39 +f 74/22/39 73/22/39 84/23/39 +f 84/23/39 109/49/39 10/7/39 +f 109/49/39 110/48/39 10/7/39 +f 98/30/33 95/29/27 111/34/40 +f 111/34/40 113/37/43 114/36/42 +f 113/37/43 15/10/11 14/20/25 +f 95/29/27 11/8/28 115/38/44 +f 115/38/44 116/39/45 113/37/43 +f 116/39/45 69/4/14 15/10/11 +f 96/29/46 117/34/50 118/38/47 +f 118/38/47 117/34/50 119/37/48 +f 120/39/49 119/37/48 7/10/32 +f 97/30/29 121/35/69 117/34/50 +f 117/34/50 121/35/69 122/36/51 +f 119/37/48 122/36/51 81/20/18 +f 105/33/36 123/43/56 124/40/52 +f 124/40/52 123/43/56 125/41/53 +f 126/42/54 125/41/53 101/27/34 +f 104/32/55 127/46/116 123/43/56 +f 123/43/56 127/46/116 128/44/57 +f 125/41/53 128/44/57 102/45/58 +f 103/32/35 106/33/37 129/43/59 +f 129/43/59 131/41/62 132/44/61 +f 131/41/62 94/27/26 51/45/63 +f 106/33/37 99/31/30 133/47/64 +f 133/47/64 134/42/65 131/41/62 +f 134/42/65 93/21/38 94/27/26 +f 9/7/9 12/8/8 118/38/47 +f 118/38/47 120/39/49 108/49/67 +f 120/39/49 6/4/4 83/23/68 +f 100/31/31 124/40/52 121/35/69 +f 121/35/69 124/40/52 126/42/54 +f 122/36/51 126/42/54 82/21/19 +f 10/7/7 110/48/148 115/38/44 +f 115/38/44 110/48/148 109/49/70 +f 116/39/45 109/49/70 84/23/21 +f 99/31/30 98/30/33 112/35/41 +f 112/35/41 114/36/42 134/42/65 +f 114/36/42 14/20/25 93/21/38 +f 80/1/71 79/70/146 135/50/72 +f 137/52/74 50/60/140 138/53/75 +f 89/55/77 140/170/137 141/56/78 +f 142/58/7 103/32/35 130/46/60 +f 130/46/60 132/44/61 137/52/81 +f 132/44/61 51/45/63 50/60/21 +f 145/62/20 146/142/20 147/63/20 +f 147/63/20 148/64/20 144/61/20 +f 148/64/20 149/83/20 144/61/20 +f 150/64/39 151/65/82 152/65/82 +f 154/66/83 155/67/39 156/67/39 +f 157/68/16 158/69/16 17/69/16 +f 160/68/16 161/68/16 162/69/16 +f 172/130/20 163/105/20 164/14/20 +f 165/120/20 166/123/20 79/70/20 +f 166/123/20 167/167/20 79/70/20 +f 171/15/20 172/130/20 164/14/20 +f 170/125/20 171/15/20 161/68/20 +f 171/15/20 164/14/20 79/70/20 +f 164/14/20 165/120/20 79/70/20 +f 161/68/20 168/72/20 170/125/20 +f 168/72/20 169/111/20 170/125/20 +f 173/71/84 157/68/85 24/68/85 +f 174/72/86 168/72/86 161/68/85 +f 175/73/39 176/74/82 177/74/82 +f 179/75/83 180/73/39 181/73/39 +f 182/76/16 150/64/16 53/64/16 +f 184/76/16 185/76/16 148/64/16 +f 158/69/39 186/11/82 18/11/82 +f 188/77/83 159/69/39 162/69/39 +f 20/13/85 38/82/84 189/82/84 +f 189/82/84 182/76/85 20/13/85 +f 192/78/86 190/13/85 191/78/87 +f 190/13/85 185/76/85 184/76/85 +f 193/79/88 195/162/104 194/80/89 +f 151/65/13 150/64/13 182/76/13 +f 182/76/13 189/82/13 151/65/13 +f 189/82/13 196/141/13 198/81/13 +f 196/141/13 197/16/13 198/81/13 +f 203/61/20 199/83/20 155/67/20 +f 155/67/20 154/66/20 203/61/20 +f 154/66/20 200/152/20 202/62/20 +f 200/152/20 201/142/20 202/62/20 +f 204/83/16 205/67/16 55/67/16 +f 199/83/16 149/83/16 156/67/16 +f 186/11/13 158/69/13 157/68/13 +f 157/68/13 173/71/13 186/11/13 +f 173/71/13 206/133/13 208/84/13 +f 206/133/13 207/132/13 208/84/13 +f 148/64/149 147/63/150 209/85/151 +f 147/63/150 193/79/88 195/162/152 +f 209/85/151 147/63/150 195/162/152 +f 204/83/85 54/83/85 211/86/84 +f 203/61/86 144/61/86 149/83/85 +f 213/87/83 214/88/39 215/88/39 +f 216/88/39 217/89/82 218/89/82 +f 220/90/83 221/91/39 222/91/39 +f 223/92/16 175/73/16 57/73/16 +f 224/92/16 225/92/16 181/73/16 +f 205/67/39 226/93/82 227/93/82 +f 174/72/20 160/68/20 159/69/20 +f 159/69/20 188/77/20 174/72/20 +f 188/77/20 228/151/20 230/94/20 +f 228/151/20 229/132/20 230/94/20 +f 223/92/85 56/92/85 232/95/84 +f 233/96/86 234/96/86 225/92/85 +f 235/91/39 236/97/82 237/97/82 +f 239/98/83 240/99/39 241/99/39 +f 242/100/16 216/88/16 59/88/16 +f 243/100/16 244/100/16 215/88/16 +f 226/93/13 205/67/13 204/83/13 +f 204/83/13 210/86/13 226/93/13 +f 210/86/13 245/134/13 247/101/13 +f 245/134/13 246/142/13 247/101/13 +f 242/100/85 58/100/85 249/102/84 +f 250/103/86 251/103/86 244/100/85 +f 252/99/39 253/104/82 64/104/82 +f 164/14/39 163/105/39 256/14/39 +f 163/105/39 254/106/83 255/106/83 +f 257/107/16 235/91/16 61/91/16 +f 258/107/16 259/107/16 222/91/16 +f 176/74/13 175/73/13 223/92/13 +f 223/92/13 231/95/13 176/74/13 +f 231/95/13 260/135/13 262/108/13 +f 260/135/13 261/143/13 262/108/13 +f 257/107/85 60/107/85 264/109/84 +f 265/110/86 266/110/86 259/107/85 +f 22/111/39 32/125/39 267/125/39 +f 267/125/39 268/17/82 22/111/39 +f 273/113/20 269/120/20 256/14/20 +f 256/14/20 255/106/20 273/113/20 +f 255/106/20 270/154/20 272/112/20 +f 270/154/20 271/139/20 272/112/20 +f 274/114/16 252/99/16 63/99/16 +f 275/114/16 276/114/16 241/99/16 +f 217/89/13 216/88/13 242/100/13 +f 242/100/13 248/102/13 217/89/13 +f 248/102/13 277/144/13 279/115/13 +f 277/144/13 278/145/13 279/115/13 +f 233/96/20 224/92/20 180/73/20 +f 180/73/20 179/75/20 233/96/20 +f 179/75/20 280/153/20 282/116/20 +f 280/153/20 281/143/20 282/116/20 +f 274/114/85 62/114/85 284/117/84 +f 285/118/86 286/118/86 276/114/85 +f 253/104/13 252/99/13 274/114/13 +f 274/114/13 283/117/13 253/104/13 +f 283/117/13 287/137/13 289/119/13 +f 287/137/13 288/140/13 289/119/13 +f 290/120/16 291/14/16 28/14/16 +f 269/120/16 165/120/16 164/14/16 +f 236/97/13 235/91/13 257/107/13 +f 257/107/13 263/109/13 236/97/13 +f 263/109/13 292/136/13 294/121/13 +f 292/136/13 293/146/13 294/121/13 +f 250/103/20 243/100/20 214/88/20 +f 214/88/20 213/87/20 250/103/20 +f 213/87/20 295/156/20 297/122/20 +f 295/156/20 296/145/20 297/122/20 +f 27/120/85 26/123/85 290/120/85 +f 26/123/85 49/124/84 298/124/84 +f 169/111/39 299/158/83 300/158/83 +f 300/158/83 301/125/39 169/111/39 +f 166/123/85 165/120/85 269/120/85 +f 269/120/85 273/113/86 166/123/85 +f 306/127/13 291/14/13 290/120/13 +f 290/120/13 298/124/13 306/127/13 +f 298/124/13 303/138/13 305/126/13 +f 303/138/13 304/139/13 305/126/13 +f 285/118/20 275/114/20 240/99/20 +f 240/99/20 239/98/20 285/118/20 +f 239/98/20 307/157/20 309/128/20 +f 307/157/20 308/140/20 309/128/20 +f 310/15/16 267/125/16 32/125/16 +f 311/15/16 171/15/16 170/125/16 +f 45/127/82 29/105/39 306/127/82 +f 29/105/39 28/14/39 291/14/39 +f 265/110/20 258/107/20 221/91/20 +f 221/91/20 220/90/20 265/110/20 +f 220/90/20 312/150/20 314/129/20 +f 312/150/20 313/146/20 314/129/20 +f 44/148/84 315/148/84 30/130/85 +f 315/148/84 310/15/85 30/130/85 +f 172/130/85 171/15/85 311/15/85 +f 311/15/85 316/131/86 172/130/85 +f 320/81/13 36/16/13 35/142/13 +f 320/81/13 35/142/13 321/134/13 +f 54/83/13 53/64/13 152/65/13 +f 152/65/13 320/81/13 321/134/13 +f 211/86/13 54/83/13 152/65/13 +f 322/101/13 35/142/13 34/143/13 +f 322/101/13 34/143/13 323/135/13 +f 56/92/13 55/67/13 227/93/13 +f 227/93/13 322/101/13 323/135/13 +f 232/95/13 56/92/13 227/93/13 +f 177/74/13 33/108/13 324/144/13 +f 33/108/13 68/145/13 324/144/13 +f 58/100/13 57/73/13 177/74/13 +f 177/74/13 324/144/13 249/102/13 +f 325/115/13 68/145/13 67/146/13 +f 325/115/13 67/146/13 326/136/13 +f 60/107/13 59/88/13 218/89/13 +f 218/89/13 325/115/13 326/136/13 +f 264/109/13 60/107/13 218/89/13 +f 327/121/13 67/146/13 66/140/13 +f 327/121/13 66/140/13 328/137/13 +f 62/114/13 61/91/13 237/97/13 +f 237/97/13 327/121/13 328/137/13 +f 284/117/13 62/114/13 237/97/13 +f 49/124/84 48/138/90 303/138/90 +f 48/138/90 47/139/91 304/139/91 +f 284/117/84 328/137/90 287/137/90 +f 328/137/90 66/140/91 288/140/91 +f 38/82/84 37/141/90 196/141/90 +f 37/141/90 36/16/91 197/16/91 +f 211/86/84 321/134/90 245/134/90 +f 321/134/90 35/142/91 246/142/91 +f 232/95/84 323/135/90 260/135/90 +f 323/135/90 34/143/91 261/143/91 +f 249/102/84 324/144/90 277/144/90 +f 324/144/90 68/145/91 278/145/91 +f 264/109/84 326/136/90 292/136/90 +f 326/136/90 67/146/91 293/146/91 +f 42/147/92 41/18/93 330/18/93 +f 41/18/93 40/17/82 268/17/82 +f 23/71/84 318/133/90 206/133/90 +f 318/133/90 39/132/91 207/132/91 +f 36/16/92 320/81/93 198/81/93 +f 320/81/93 152/65/82 151/65/82 +f 35/142/92 322/101/93 247/101/93 +f 322/101/93 227/93/82 226/93/82 +f 68/145/92 325/115/93 279/115/93 +f 325/115/93 218/89/82 217/89/82 +f 67/146/92 327/121/93 294/121/93 +f 327/121/93 237/97/82 236/97/82 +f 66/140/92 65/119/93 289/119/93 +f 65/119/93 64/104/82 253/104/82 +f 44/148/84 43/149/90 331/149/90 +f 43/149/90 42/147/91 329/147/91 +f 39/132/92 319/84/93 208/84/93 +f 319/84/93 18/11/82 186/11/82 +f 34/143/92 33/108/93 262/108/93 +f 33/108/93 177/74/82 176/74/82 +f 47/139/92 46/126/93 305/126/93 +f 46/126/93 45/127/82 306/127/82 +f 268/17/13 267/125/13 310/15/13 +f 310/15/13 315/148/13 268/17/13 +f 315/148/13 331/149/13 330/18/13 +f 331/149/13 329/147/13 330/18/13 +f 190/13/20 334/151/20 187/77/20 +f 187/77/20 162/69/20 190/13/20 +f 337/143/20 335/152/20 336/116/20 +f 335/152/20 153/66/20 336/116/20 +f 153/66/20 156/67/20 225/92/20 +f 153/66/20 225/92/20 234/96/20 +f 340/145/20 338/153/20 339/122/20 +f 338/153/20 178/75/20 339/122/20 +f 178/75/20 181/73/20 244/100/20 +f 178/75/20 244/100/20 251/103/20 +f 333/132/20 334/151/20 147/63/20 +f 334/151/20 190/13/20 192/78/20 +f 334/151/20 192/78/20 341/160/20 +f 299/158/20 169/111/20 333/132/20 +f 299/158/20 333/132/20 147/63/20 +f 334/151/20 341/160/20 147/63/20 +f 352/159/20 299/158/20 147/63/20 +f 351/147/20 352/159/20 146/142/20 +f 352/159/20 147/63/20 146/142/20 +f 146/142/20 335/152/20 337/143/20 +f 351/147/20 146/142/20 337/143/20 +f 337/143/20 338/153/20 340/145/20 +f 340/145/20 342/156/20 343/146/20 +f 340/145/20 343/146/20 102/45/58 +f 343/146/20 344/140/20 102/45/58 +f 340/145/20 102/45/58 337/143/20 +f 351/147/20 337/143/20 102/45/58 +f 163/105/20 172/130/20 317/131/20 +f 254/106/20 163/105/20 317/131/20 +f 254/106/20 317/131/20 350/155/20 +f 349/154/20 254/106/20 350/155/20 +f 349/154/20 350/155/20 351/147/20 +f 348/139/20 349/154/20 351/147/20 +f 167/167/20 166/123/20 302/113/20 +f 161/68/20 79/70/20 162/69/20 +f 79/70/20 78/26/6 225/92/20 +f 162/69/20 79/70/20 185/76/20 +f 148/64/20 185/76/20 79/70/20 +f 148/64/20 79/70/20 149/83/20 +f 346/60/115 167/167/20 302/113/20 +f 346/60/115 302/113/20 347/112/20 +f 149/83/20 79/70/20 156/67/20 +f 225/92/20 156/67/20 79/70/20 +f 346/60/115 347/112/20 348/139/20 +f 346/60/115 348/139/20 351/147/20 +f 215/88/20 244/100/20 78/26/6 +f 244/100/20 181/73/20 78/26/6 +f 181/73/20 225/92/20 78/26/6 +f 102/45/58 346/60/115 351/147/20 +f 276/114/20 222/91/20 78/26/6 +f 222/91/20 259/107/20 78/26/6 +f 259/107/20 215/88/20 78/26/6 +f 102/45/58 344/140/20 345/157/20 +f 102/45/58 345/157/20 238/98/20 +f 102/45/58 238/98/20 78/26/6 +f 238/98/20 241/99/20 78/26/6 +f 343/146/20 342/156/20 353/129/20 +f 342/156/20 212/87/20 353/129/20 +f 212/87/20 215/88/20 259/107/20 +f 212/87/20 259/107/20 266/110/20 +f 219/90/20 222/91/20 276/114/20 +f 219/90/20 276/114/20 286/118/20 +f 344/140/20 343/146/20 354/150/20 +f 354/150/20 219/90/20 286/118/20 +f 355/128/20 344/140/20 354/150/20 +f 146/142/94 145/62/95 202/62/95 +f 145/62/95 144/61/86 203/61/86 +f 187/77/83 334/151/96 228/151/96 +f 334/151/96 333/132/97 229/132/97 +f 153/66/83 335/152/96 200/152/96 +f 335/152/96 146/142/97 201/142/97 +f 178/75/83 338/153/96 280/153/96 +f 338/153/96 337/143/97 281/143/97 +f 219/90/83 354/150/96 312/150/96 +f 354/150/96 343/146/97 313/146/97 +f 254/106/83 349/154/96 270/154/96 +f 349/154/96 348/139/97 271/139/97 +f 351/147/94 350/155/95 357/155/95 +f 350/155/95 317/131/86 316/131/86 +f 340/145/94 339/122/95 297/122/95 +f 339/122/95 251/103/86 250/103/86 +f 212/87/83 342/156/96 295/156/96 +f 342/156/96 340/145/97 296/145/97 +f 343/146/94 353/129/95 314/129/95 +f 353/129/95 266/110/86 265/110/86 +f 344/140/94 355/128/95 309/128/95 +f 355/128/95 286/118/86 285/118/86 +f 238/98/83 345/157/96 307/157/96 +f 345/157/96 344/140/97 308/140/97 +f 299/158/83 352/159/96 358/159/96 +f 352/159/96 351/147/97 356/147/97 +f 209/85/98 195/162/153 359/161/154 +f 195/162/153 193/79/155 359/161/154 +f 359/161/154 191/78/99 209/85/98 +f 191/78/99 184/76/20 183/64/20 +f 337/143/94 336/116/95 282/116/95 +f 336/116/95 234/96/86 233/96/86 +f 333/132/94 332/94/95 230/94/95 +f 332/94/95 168/72/86 174/72/86 +f 193/79/100 147/63/156 341/160/101 +f 341/160/101 192/78/86 191/78/87 +f 348/139/94 347/112/95 272/112/95 +f 347/112/95 302/113/86 273/113/86 +f 316/131/20 311/15/20 301/125/20 +f 301/125/20 300/158/20 316/131/20 +f 300/158/20 358/159/20 357/155/20 +f 358/159/20 356/147/20 357/155/20 +f 209/85/103 360/163/106 194/80/89 +f 209/85/39 183/64/39 148/64/39 +f 142/58/107 362/164/139 363/164/108 +f 87/25/110 364/169/127 3/51/111 +f 365/59/113 361/58/109 363/164/108 +f 128/44/57 367/52/117 346/60/115 +f 127/46/116 365/59/157 367/52/117 +f 361/58/9 365/59/157 127/46/116 +f 103/32/35 142/58/7 361/58/9 +f 363/164/118 362/164/158 368/166/7 +f 25/167/119 1/3/120 4/2/120 +f 88/25/24 80/1/147 136/51/122 +f 367/52/124 365/59/113 366/165/114 +f 86/55/126 373/170/136 364/169/127 +f 369/166/9 141/56/159 366/165/128 +f 366/165/128 141/56/159 140/170/117 +f 372/54/117 140/170/117 371/169/68 +f 139/54/81 138/53/129 364/169/129 +f 376/165/130 139/54/81 373/170/81 +f 368/166/7 362/164/158 376/165/130 +f 370/168/13 4/2/13 3/51/13 +f 377/168/20 371/169/68 136/51/20 +f 137/52/74 139/54/76 376/165/131 +f 346/60/133 374/53/143 377/168/134 +f 86/55/126 85/57/142 375/56/135 +f 89/55/77 88/25/24 371/169/123 +f 90/57/79 141/56/78 369/166/138 +f 143/59/132 376/165/131 362/164/139 +f 50/60/140 25/167/119 370/168/121 +f 91/24/22 369/166/138 368/166/141 +f 85/57/142 92/24/23 368/166/141 +f 367/52/124 372/54/125 374/53/143 +f 167/167/134 377/168/134 135/50/144 +s 0 +f 379/171/85 381/172/85 378/171/85 +f 380/172/160 383/173/160 384/174/160 +f 382/175/39 385/175/39 388/176/39 +f 387/177/161 386/177/161 389/178/161 +f 382/175/20 378/171/20 381/172/20 +f 379/171/13 390/178/13 391/179/13 +f 379/171/85 380/172/85 381/172/85 +f 385/175/16 382/175/16 384/174/16 +f 382/175/16 381/172/16 384/174/16 +f 381/172/16 380/172/16 384/174/16 +f 388/176/39 386/177/39 387/177/39 +f 387/177/39 382/175/39 388/176/39 +f 390/178/161 379/171/161 389/178/161 +f 379/171/161 378/171/161 389/178/161 +f 378/171/161 387/177/161 389/178/161 +f 382/175/20 387/177/20 378/171/20 +f 391/179/13 383/173/13 380/172/13 +f 380/172/13 379/171/13 391/179/13 s 1 -f 690/689/385 692/690/386 689/691/385 -f 691/692/386 694/693/387 692/690/386 -f 693/694/387 696/695/388 694/693/387 -f 695/696/388 698/697/389 696/695/388 -f 697/698/389 700/699/390 698/697/389 -f 699/700/390 702/701/391 700/699/390 -f 701/702/392 697/698/392 693/694/392 -f 701/702/391 704/703/393 702/701/391 -f 703/704/393 689/691/385 704/703/393 -f 700/699/394 702/701/394 704/703/394 -f 690/689/385 691/692/386 692/690/386 -f 691/692/386 693/694/387 694/693/387 -f 693/694/387 695/696/388 696/695/388 -f 695/696/388 697/698/389 698/697/389 -f 697/698/389 699/700/390 700/699/390 -f 699/700/390 701/702/391 702/701/391 -f 693/694/392 691/692/392 690/689/392 -f 690/689/392 703/704/392 701/702/392 -f 701/702/392 699/700/392 697/698/392 -f 697/698/392 695/696/392 693/694/392 -f 693/694/392 690/689/392 701/702/392 -f 701/702/391 703/704/393 704/703/393 -f 703/704/393 690/689/385 689/691/385 -f 704/703/394 689/691/394 692/690/394 -f 692/690/394 694/693/394 704/703/394 -f 694/693/394 696/695/394 704/703/394 -f 696/695/394 698/697/394 704/703/394 -f 698/697/394 700/699/394 704/703/394 -o Cylinder.005 -v 1.793664 0.315957 0.000612 -v 1.874918 0.315957 0.000612 -v 1.874919 0.278978 -0.088663 -v 1.793664 0.278978 -0.088663 -v 1.874919 0.189702 -0.125642 -v 1.793664 0.189702 -0.125642 -v 1.874919 0.100427 -0.088663 -v 1.793664 0.100427 -0.088663 -v 1.874919 0.063448 0.000612 -v 1.793664 0.063448 0.000612 -v 1.874918 0.100427 0.089888 -v 1.793664 0.100427 0.089888 -v 1.874918 0.189702 0.126867 -v 1.793664 0.189702 0.126867 -v 1.874918 0.278978 0.089888 -v 1.793664 0.278978 0.089888 -vt 0.771627 0.571391 -vt 0.747191 0.560270 -vt 0.747191 0.571391 -vt 0.771627 0.560270 -vt 0.747191 0.533421 -vt 0.771627 0.533421 -vt 0.747191 0.506573 -vt 0.771627 0.506573 -vt 0.747191 0.495452 -vt 0.771627 0.506573 -vt 0.747191 0.506573 -vt 0.747191 0.533421 -vt 0.771627 0.533421 -vt 0.771627 0.495452 -vt 0.747191 0.560270 -vt 0.771627 0.560270 -vn 0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -1.0000 0.0000 0.0000 -s 1 -f 706/705/395 708/706/396 705/707/395 -f 707/708/396 710/709/397 708/706/396 -f 709/710/397 712/711/398 710/709/397 -f 711/712/398 714/713/399 712/711/398 -f 714/713/399 715/714/400 716/715/400 -f 715/714/400 718/716/401 716/715/400 -f 717/717/402 713/718/402 709/710/402 -f 717/717/401 720/719/403 718/716/401 -f 719/720/403 705/707/395 720/719/403 -f 716/715/404 718/716/404 720/719/404 -f 706/705/395 707/708/396 708/706/396 -f 707/708/396 709/710/397 710/709/397 -f 709/710/397 711/712/398 712/711/398 -f 711/712/398 713/718/399 714/713/399 -f 714/713/399 713/718/399 715/714/400 -f 715/714/400 717/717/401 718/716/401 -f 709/710/402 707/708/402 706/705/402 -f 706/705/402 719/720/402 717/717/402 -f 717/717/402 715/714/402 713/718/402 -f 713/718/402 711/712/402 709/710/402 -f 709/710/402 706/705/402 717/717/402 -f 717/717/401 719/720/403 720/719/403 -f 719/720/403 706/705/395 705/707/395 -f 720/719/404 705/707/404 708/706/404 -f 708/706/404 710/709/404 720/719/404 -f 710/709/404 712/711/404 720/719/404 -f 712/711/404 714/713/404 720/719/404 -f 714/713/404 716/715/404 720/719/404 -o Cylinder.004 -v 1.646873 0.577354 0.000612 -v 1.749518 0.577354 0.000612 -v 1.749518 0.539888 -0.089839 -v 1.646873 0.539888 -0.089839 -v 1.749518 0.449436 -0.127305 -v 1.646873 0.449436 -0.127305 -v 1.749518 0.358985 -0.089839 -v 1.646873 0.358985 -0.089839 -v 1.749518 0.321519 0.000612 -v 1.646873 0.321519 0.000612 -v 1.749518 0.358985 0.091064 -v 1.646873 0.358985 0.091064 -v 1.749518 0.449436 0.128530 -v 1.646873 0.449436 0.128530 -v 1.749518 0.539888 0.091064 -v 1.646873 0.539888 0.091064 -vt 0.729032 0.553323 -vt 0.698162 0.542055 -vt 0.698162 0.553323 -vt 0.729032 0.542055 -vt 0.698162 0.514853 -vt 0.729032 0.514853 -vt 0.698162 0.487651 -vt 0.729032 0.487651 -vt 0.698162 0.476384 -vt 0.729032 0.476384 -vt 0.698162 0.487651 -vt 0.729032 0.487651 -vt 0.698162 0.514853 -vt 0.729032 0.514853 -vt 0.698162 0.542055 -vt 0.729032 0.542055 -vn 0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -1.0000 0.0000 0.0000 -s 1 -f 722/721/405 724/722/406 721/723/405 -f 723/724/406 726/725/407 724/722/406 -f 725/726/407 728/727/408 726/725/407 -f 727/728/408 730/729/409 728/727/408 -f 729/730/409 732/731/410 730/729/409 -f 731/732/410 734/733/411 732/731/410 -f 733/734/412 729/730/412 725/726/412 -f 733/734/411 736/735/413 734/733/411 -f 735/736/413 721/723/405 736/735/413 -f 734/733/414 736/735/414 728/727/414 -f 722/721/405 723/724/406 724/722/406 -f 723/724/406 725/726/407 726/725/407 -f 725/726/407 727/728/408 728/727/408 -f 727/728/408 729/730/409 730/729/409 -f 729/730/409 731/732/410 732/731/410 -f 731/732/410 733/734/411 734/733/411 -f 725/726/412 723/724/412 722/721/412 -f 722/721/412 735/736/412 733/734/412 -f 733/734/412 731/732/412 729/730/412 -f 729/730/412 727/728/412 725/726/412 -f 725/726/412 722/721/412 733/734/412 -f 733/734/411 735/736/413 736/735/413 -f 735/736/413 722/721/405 721/723/405 -f 736/735/414 721/723/414 728/727/414 -f 721/723/414 724/722/414 728/727/414 -f 724/722/414 726/725/414 728/727/414 -f 728/727/414 730/729/414 732/731/414 -f 732/731/414 734/733/414 728/727/414 -o Cylinder.003 -v 1.870045 0.577354 0.000612 -v 2.097808 0.577354 0.000612 -v 2.097808 0.539888 -0.089839 -v 1.870045 0.539888 -0.089839 -v 2.097808 0.449436 -0.127305 -v 1.870045 0.449436 -0.127305 -v 2.097808 0.358985 -0.089839 -v 1.870045 0.358985 -0.089839 -v 2.097808 0.321519 0.000612 -v 1.870045 0.321519 0.000612 -v 2.097808 0.358985 0.091064 -v 1.870045 0.358985 0.091064 -v 2.097808 0.449436 0.128530 -v 1.870045 0.449436 0.128530 -v 2.097808 0.523628 0.074804 -v 2.097808 0.539888 0.091064 -v 2.097808 0.344513 0.000612 -v 2.097808 0.375244 0.074804 -v 2.097808 0.449436 0.105535 -v 2.097808 0.554359 0.000612 -v 2.097808 0.523628 -0.073580 -v 2.097808 0.449436 -0.104311 -v 2.097808 0.375244 -0.073580 -v 1.870045 0.539888 0.091064 -v 1.870045 0.344513 0.000612 -v 1.870045 0.523628 0.074804 -v 1.870045 0.449436 0.105535 -v 1.870045 0.375244 0.074804 -v 1.870045 0.375244 -0.073580 -v 1.870045 0.449436 -0.104311 -v 1.870045 0.523628 -0.073580 -v 1.870045 0.554359 0.000612 -vt 0.782994 0.575784 -vt 0.714498 0.564516 -vt 0.714498 0.575784 -vt 0.782994 0.564516 -vt 0.714498 0.537314 -vt 0.782994 0.537314 -vt 0.714498 0.510112 -vt 0.782994 0.510112 -vt 0.714498 0.498845 -vt 0.782994 0.498845 -vt 0.714498 0.510112 -vt 0.782994 0.510112 -vt 0.714498 0.537314 -vt 0.782994 0.537314 -vt 0.782994 0.537314 -vt 0.782994 0.559627 -vt 0.782994 0.537314 -vt 0.714498 0.564516 -vt 0.782994 0.564516 -vt 0.714498 0.537314 -vt 0.714498 0.515002 -vt 0.714498 0.559627 -vt 0.714498 0.568869 -vt 0.714498 0.537314 -vt 0.714498 0.515002 -vt 0.782994 0.515002 -vt 0.714498 0.505760 -vt 0.782994 0.505760 -vt 0.782994 0.515002 -vt 0.782994 0.559627 -vt 0.714498 0.559627 -vt 0.782994 0.568869 -vn 0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -1.0000 0.0000 0.0000 -s 1 -f 738/737/415 740/738/416 737/739/415 -f 739/740/416 742/741/417 740/738/416 -f 741/742/417 744/743/418 742/741/417 -f 743/744/418 746/745/419 744/743/418 -f 745/746/419 748/747/420 746/745/419 -f 747/748/420 750/749/421 748/747/420 -f 749/750/422 747/748/422 755/751/422 -f 757/752/422 758/753/422 741/742/422 -f 749/750/421 760/754/423 750/749/421 -f 752/755/423 737/739/415 760/754/423 -f 763/756/424 764/757/424 748/747/424 -f 740/738/424 742/741/424 767/758/424 -f 757/752/420 768/759/419 767/758/420 -f 757/752/420 766/760/421 758/753/421 -f 758/753/421 765/761/423 759/762/423 -f 759/762/423 761/763/415 753/764/415 -f 753/764/415 764/757/416 754/765/416 -f 755/751/417 764/757/416 763/756/417 -f 751/766/418 763/756/417 762/767/418 -f 756/768/419 762/767/418 768/759/419 -f 738/737/415 739/740/416 740/738/416 -f 739/740/416 741/742/417 742/741/417 -f 741/742/417 743/744/418 744/743/418 -f 743/744/418 745/746/419 746/745/419 -f 745/746/419 747/748/420 748/747/420 -f 747/748/420 749/750/421 750/749/421 -f 755/751/422 751/766/422 749/750/422 -f 751/766/422 752/755/422 749/750/422 -f 747/748/422 745/746/422 754/765/422 -f 745/746/422 753/764/422 754/765/422 -f 747/748/422 754/765/422 755/751/422 -f 759/762/422 753/764/422 745/746/422 -f 738/737/422 752/755/422 751/766/422 -f 738/737/422 751/766/422 756/768/422 -f 759/762/422 745/746/422 743/744/422 -f 758/753/422 759/762/422 741/742/422 -f 759/762/422 743/744/422 741/742/422 -f 739/740/422 738/737/422 756/768/422 -f 739/740/422 756/768/422 757/752/422 -f 739/740/422 757/752/422 741/742/422 -f 749/750/421 752/755/423 760/754/423 -f 752/755/423 738/737/415 737/739/415 -f 764/757/424 761/763/424 746/745/424 -f 750/749/424 760/754/424 762/767/424 -f 750/749/424 762/767/424 763/756/424 -f 764/757/424 746/745/424 748/747/424 -f 750/749/424 763/756/424 748/747/424 -f 762/767/424 760/754/424 737/739/424 -f 744/743/424 746/745/424 765/761/424 -f 746/745/424 761/763/424 765/761/424 -f 768/759/424 762/767/424 737/739/424 -f 767/758/424 768/759/424 740/738/424 -f 768/759/424 737/739/424 740/738/424 -f 742/741/424 744/743/424 765/761/424 -f 742/741/424 765/761/424 766/760/424 -f 742/741/424 766/760/424 767/758/424 -f 757/752/420 756/768/419 768/759/419 -f 757/752/420 767/758/420 766/760/421 -f 758/753/421 766/760/421 765/761/423 -f 759/762/423 765/761/423 761/763/415 -f 753/764/415 761/763/415 764/757/416 -f 755/751/417 754/765/416 764/757/416 -f 751/766/418 755/751/417 763/756/417 -f 756/768/419 751/766/418 762/767/418 -o Cylinder.001 -v -0.200670 0.307371 0.000612 -v 1.799330 0.307371 0.000612 -v 1.799330 0.272907 -0.082592 -v -0.200670 0.272906 -0.082592 -v 1.799330 0.189702 -0.117056 -v -0.200670 0.189702 -0.117056 -v 1.799330 0.106498 -0.082592 -v -0.200670 0.106498 -0.082592 -v 1.799330 0.072034 0.000612 -v -0.200670 0.072034 0.000612 -v 1.799330 0.106498 0.083817 -v -0.200670 0.106498 0.083816 -v 1.799330 0.189702 0.118281 -v -0.200670 0.189702 0.118281 -v 1.799330 0.272906 0.083817 -v -0.200670 0.272906 0.083816 -vt 0.743036 0.769004 -vt 0.141560 0.758639 -vt 0.141560 0.769004 -vt 0.743036 0.758639 -vt 0.141560 0.733616 -vt 0.743036 0.733616 -vt 0.141560 0.708594 -vt 0.743036 0.708594 -vt 0.141560 0.698229 -vt 0.743036 0.698229 -vt 0.141560 0.708594 -vt 0.743036 0.708594 -vt 0.141560 0.733616 -vt 0.743036 0.733617 -vt 0.141560 0.758639 -vt 0.743036 0.758639 -vn 0.6303 0.7764 0.0000 -vn -0.6303 0.5490 -0.5490 -vn -0.6303 0.7764 0.0000 -vn 0.6303 0.5490 -0.5490 -vn -0.6303 0.0000 -0.7764 -vn 0.6303 -0.0000 -0.7764 -vn -0.6303 -0.5490 -0.5490 -vn 0.6303 -0.5490 -0.5490 -vn -0.6303 -0.7764 0.0000 -vn 0.6303 -0.7764 -0.0000 -vn -0.6303 -0.5490 0.5490 -vn 0.6303 -0.5490 0.5490 -vn -0.6303 0.0000 0.7764 -vn 0.6303 -0.0000 0.7764 -vn -0.6303 0.5490 0.5490 -vn 0.6303 0.5490 0.5490 -s 1 -f 770/769/425 772/770/426 769/771/427 -f 771/772/428 774/773/429 772/770/426 -f 773/774/430 776/775/431 774/773/429 -f 775/776/432 778/777/433 776/775/431 -f 777/778/434 780/779/435 778/777/433 -f 779/780/436 782/781/437 780/779/435 -f 781/782/438 777/778/434 773/774/430 -f 781/782/438 784/783/439 782/781/437 -f 784/783/439 770/769/425 769/771/427 -f 780/779/435 782/781/437 784/783/439 -f 770/769/425 771/772/428 772/770/426 -f 771/772/428 773/774/430 774/773/429 -f 773/774/430 775/776/432 776/775/431 -f 775/776/432 777/778/434 778/777/433 -f 777/778/434 779/780/436 780/779/435 -f 779/780/436 781/782/438 782/781/437 -f 773/774/430 771/772/428 770/769/425 -f 770/769/425 783/784/440 773/774/430 -f 783/784/440 781/782/438 773/774/430 -f 781/782/438 779/780/436 777/778/434 -f 777/778/434 775/776/432 773/774/430 -f 781/782/438 783/784/440 784/783/439 -f 784/783/439 783/784/440 770/769/425 -f 784/783/439 769/771/427 772/770/426 -f 772/770/426 774/773/429 784/783/439 -f 774/773/429 776/775/431 784/783/439 -f 776/775/431 778/777/433 784/783/439 -f 778/777/433 780/779/435 784/783/439 -o Cylinder -v -0.093059 0.567105 0.000612 -v 1.906941 0.567105 0.000612 -v 1.906941 0.532640 -0.082592 -v -0.093059 0.532640 -0.082592 -v 1.906941 0.449436 -0.117056 -v -0.093059 0.449436 -0.117056 -v 1.906941 0.366232 -0.082592 -v -0.093059 0.366232 -0.082592 -v 1.906941 0.331768 0.000612 -v -0.093059 0.331768 0.000612 -v 1.906941 0.366232 0.083817 -v -0.093059 0.366232 0.083816 -v 1.906941 0.449436 0.118281 -v -0.093059 0.449436 0.118281 -v 1.906941 0.532640 0.083817 -v -0.093059 0.532640 0.083816 -vt 0.766609 0.756295 -vt 0.165134 0.745931 -vt 0.165134 0.756295 -vt 0.766609 0.745931 -vt 0.165134 0.720908 -vt 0.766609 0.720908 -vt 0.165134 0.695885 -vt 0.766609 0.695885 -vt 0.165134 0.685521 -vt 0.766609 0.685521 -vt 0.165134 0.695885 -vt 0.766609 0.695885 -vt 0.165134 0.720908 -vt 0.766609 0.720908 -vt 0.165134 0.745931 -vt 0.766609 0.745931 +f 393/180/162 395/181/163 392/182/164 +f 392/182/164 397/183/165 393/180/162 +f 396/184/166 399/185/167 397/183/165 +f 401/186/13 398/187/168 400/188/13 +f 403/189/169 405/190/170 402/191/171 +f 406/192/172 402/191/171 405/190/170 +f 408/193/173 388/176/173 385/175/174 +f 410/188/20 389/178/20 386/177/20 +f 400/188/161 409/186/161 401/186/161 +f 394/194/175 403/189/176 395/181/177 +f 393/180/39 406/192/39 405/190/39 +f 392/182/178 407/195/179 396/184/180 +f 397/183/39 408/193/39 406/192/39 +f 383/173/181 391/179/182 398/187/183 +f 398/187/183 391/179/182 390/178/85 +f 401/186/39 408/193/39 399/185/39 +f 395/181/177 402/191/184 392/182/178 +f 394/194/39 405/190/39 404/196/39 +f 393/180/162 394/194/163 395/181/163 +f 392/182/164 396/184/166 397/183/165 +f 396/184/166 398/187/168 399/185/167 +f 401/186/13 399/185/167 398/187/168 +f 403/189/169 404/196/185 405/190/170 +f 406/192/172 407/195/186 402/191/171 +f 385/175/174 384/174/187 407/195/186 +f 407/195/186 406/192/172 385/175/174 +f 406/192/172 408/193/173 385/175/174 +f 388/176/173 408/193/173 386/177/20 +f 408/193/173 409/186/20 386/177/20 +f 409/186/20 410/188/20 386/177/20 +f 400/188/161 410/188/161 409/186/161 +f 394/194/175 404/196/175 403/189/176 +f 393/180/39 397/183/39 406/192/39 +f 392/182/178 402/191/184 407/195/179 +f 397/183/39 399/185/39 408/193/39 +f 398/187/183 396/184/180 383/173/181 +f 396/184/180 407/195/179 383/173/181 +f 407/195/179 384/174/188 383/173/181 +f 389/178/85 410/188/85 390/178/85 +f 410/188/85 400/188/85 390/178/85 +f 400/188/85 398/187/183 390/178/85 +f 401/186/39 409/186/39 408/193/39 +f 395/181/177 403/189/176 402/191/184 +f 394/194/39 393/180/39 405/190/39 +o Body +v 0.100627 0.078364 0.288131 +v 0.100627 0.190299 0.398224 +v -0.099403 0.190299 0.398224 +v -0.099403 0.078364 0.288131 +v -0.081922 0.078364 0.288131 +v -0.081922 0.188950 0.396897 +v 0.083147 0.188950 0.396897 +v 0.083147 0.078364 0.288131 +v 0.100627 0.190299 0.189154 +v -0.099403 0.190299 0.189154 +v 0.100627 0.078364 0.189154 +v -0.099403 0.078364 0.189154 +v 0.083147 0.078364 0.246637 +v -0.081922 0.078364 0.246637 +v -0.081922 0.188950 0.246637 +v 0.083147 0.188950 0.246637 +v 0.139055 0.234647 1.316254 +v 0.148771 0.234647 1.316254 +v 0.148771 0.312137 1.316254 +v 0.139055 0.312137 1.316254 +v 0.148771 0.312137 0.330263 +v 0.139055 0.312137 0.330263 +v 0.148771 0.234647 0.330263 +v 0.139055 0.234647 0.330263 +v -0.152849 0.339450 1.361672 +v -0.152849 0.236034 1.361672 +v -0.137831 0.236034 1.361672 +v -0.137831 0.339450 1.361672 +v -0.152849 0.339450 0.429618 +v -0.137831 0.339450 0.429618 +v -0.152849 0.236034 0.429618 +v -0.152849 0.339450 0.307960 +v -0.152849 0.236034 0.307960 +v -0.137831 0.236034 0.429618 +v -0.137831 0.236034 0.307960 +v -0.137831 0.339450 0.307960 +v -0.152849 0.470230 0.429618 +v -0.152849 0.470230 0.307960 +v -0.137831 0.470230 0.429618 +v -0.137831 0.470230 0.307960 +v 0.139055 0.184312 0.204392 +v 0.139055 0.062676 0.204784 +v 0.139055 0.064132 0.029043 +v 0.139055 0.474619 0.027466 +v 0.139055 0.474619 0.202227 +v 0.139055 0.408506 0.202227 +v 0.139055 0.386874 0.206744 +v 0.139055 0.371302 0.223773 +v 0.139055 0.367172 0.247428 +v 0.139055 0.408506 0.760419 +v 0.139055 0.474619 0.760419 +v 0.139055 0.474619 1.160748 +v 0.139055 0.476751 1.212867 +v 0.139055 0.523317 1.554436 +v 0.139055 0.470462 1.584164 +v 0.139055 0.182561 1.584164 +v 0.139055 0.367172 0.715218 +v 0.139055 0.371302 0.738873 +v 0.139055 0.386874 0.755902 +v 0.079700 0.592632 1.193615 +v -0.078476 0.592632 1.193615 +v -0.078476 0.587917 1.343072 +v 0.079700 0.587917 1.343072 +v -0.137831 0.182561 1.584164 +v -0.137831 0.470462 1.584164 +v -0.137831 0.523317 1.554436 +v -0.137831 0.476751 1.212867 +v -0.137831 0.474619 1.160748 +v -0.137831 0.474619 0.027466 +v -0.137831 0.064132 0.029043 +v -0.137831 0.062676 0.204784 +v -0.137831 0.184312 0.204392 +v -0.078476 0.568125 1.469775 +v 0.079700 0.568125 1.469775 +v 0.121671 0.555001 1.494572 +v 0.102414 0.564714 1.476220 +v -0.101190 0.564714 1.476220 +v -0.120446 0.555001 1.494572 +v -0.133313 0.540464 1.522038 +v 0.134537 0.540464 1.522038 +v 0.079700 0.592632 0.027466 +v -0.078476 0.592632 0.027466 +v 0.134537 0.519780 1.173326 +v 0.134537 0.519292 1.262694 +v 0.121671 0.558066 1.183989 +v 0.121671 0.555357 1.304936 +v 0.102414 0.583648 1.191113 +v 0.102414 0.579455 1.333161 +v -0.133313 0.519292 1.262694 +v -0.133313 0.519780 1.173326 +v -0.120446 0.555357 1.304936 +v -0.120446 0.558066 1.183989 +v -0.101190 0.579455 1.333161 +v -0.101190 0.583648 1.191113 +v -0.101190 0.583648 0.027466 +v -0.120446 0.558066 0.027466 +v -0.133313 0.519780 0.027466 +v 0.135374 0.511418 0.202227 +v 0.134537 0.519780 0.027466 +v 0.134537 0.519780 0.203973 +v 0.135374 0.511418 0.760419 +v 0.134537 0.519780 0.758673 +v 0.130078 0.533050 0.206744 +v 0.121671 0.558066 0.027466 +v 0.130078 0.533050 0.755902 +v 0.124844 0.548622 0.738873 +v 0.123456 0.552752 0.715218 +v 0.123456 0.552752 0.247428 +v 0.124844 0.548622 0.223773 +v 0.102414 0.583648 0.027466 +v 0.006857 0.386874 0.206744 +v 0.006857 0.371302 0.223773 +v 0.006857 0.371302 0.738873 +v 0.006857 0.386874 0.755902 +v 0.006857 0.367172 0.247428 +v 0.006857 0.367172 0.715218 +v -0.012342 0.524577 0.649440 +v -0.012342 0.510011 0.652482 +v -0.012342 0.409913 0.652482 +v -0.012342 0.395347 0.649440 +v -0.012342 0.395347 0.313206 +v -0.012342 0.409913 0.310165 +v -0.012342 0.510011 0.310165 +v -0.012342 0.524577 0.313206 +v 0.006857 0.533050 0.755902 +v 0.006857 0.511418 0.760419 +v 0.006857 0.408506 0.760419 +v 0.006857 0.548622 0.738873 +v 0.006857 0.408506 0.202227 +v 0.006857 0.552752 0.715218 +v 0.006857 0.548622 0.223773 +v 0.006857 0.533050 0.206744 +v 0.006857 0.552752 0.247428 +v 0.006857 0.511418 0.202227 +v -0.007431 0.376935 0.253872 +v -0.007431 0.376935 0.708774 +v -0.007431 0.378372 0.717005 +v -0.007431 0.389041 0.233974 +v -0.007431 0.408866 0.229835 +v -0.007431 0.378372 0.245641 +v -0.007431 0.511059 0.229835 +v -0.007431 0.530883 0.233974 +v -0.007431 0.541552 0.245641 +v -0.007431 0.541552 0.717005 +v -0.007431 0.530883 0.728672 +v -0.007431 0.389041 0.728672 +v -0.007431 0.408866 0.732811 +v -0.007431 0.511059 0.732811 +v -0.007431 0.542989 0.708774 +v -0.007431 0.542989 0.253872 +v -0.054842 0.212030 1.578045 +v 0.057698 0.212030 1.578045 +v 0.057698 0.212030 0.861955 +v -0.054842 0.212030 0.861955 +v -0.054842 0.203298 1.578045 +v 0.057698 0.203298 1.578045 +v 0.057698 0.027130 1.128281 +v -0.054842 0.027130 1.128281 +v -0.054842 0.065059 1.114436 +v 0.057698 0.065059 1.114436 +v -0.054842 0.065231 1.454635 +v 0.057698 0.065231 1.454635 +v 0.057698 0.118060 1.481781 +v -0.054842 0.118060 1.481781 +v 0.057698 0.168281 1.527702 +v -0.054842 0.168281 1.527702 +v 0.057698 0.202811 0.861955 +v -0.054842 0.202811 0.861955 +v -0.054842 0.044421 1.450844 +v 0.057698 0.044421 1.450844 +v -0.054842 0.121520 1.062335 +v 0.057698 0.121520 1.062335 +v -0.054842 0.167855 0.962640 +v 0.057698 0.167855 0.962640 +v -0.054842 0.124782 1.074680 +v -0.054842 0.065837 1.125464 +v -0.054842 0.116276 1.125464 +v -0.054842 0.139630 1.130869 +v -0.054842 0.141171 1.121683 +v -0.054842 0.127160 1.115880 +v -0.054842 0.117438 1.092410 +v -0.054842 0.150630 1.125601 +v -0.054842 0.159885 1.148853 +v -0.054842 0.171886 1.174411 +v -0.054842 0.174873 1.206501 +v -0.054842 0.174873 1.364767 +v -0.054842 0.171886 1.396858 +v -0.054842 0.159885 1.422416 +v -0.054842 0.139630 1.440399 +v -0.054842 0.116276 1.445804 +v -0.054842 0.065837 1.445804 +v -0.054842 0.127160 1.068940 +v -0.054842 0.150630 1.059218 +v -0.054842 0.174100 1.068940 +v -0.054842 0.183821 1.092410 +v -0.054842 0.174100 1.115880 +v -0.054842 0.003110 1.144751 +v -0.054842 -0.005077 1.181248 +v -0.054842 -0.003671 1.396052 +v -0.054842 0.014101 1.435488 +v -0.054842 0.042483 1.440399 +v -0.054842 0.022228 1.422416 +v -0.054842 0.010226 1.396858 +v -0.054842 0.007240 1.364767 +v -0.054842 0.007240 1.206501 +v -0.054842 0.010226 1.174411 +v -0.054842 0.022228 1.148853 +v -0.054842 0.042483 1.130869 +v 0.057698 -0.005077 1.181248 +v 0.057698 0.003110 1.144751 +v 0.057698 0.014101 1.435488 +v 0.057698 -0.003671 1.396052 +v 0.057698 0.042483 1.440399 +v 0.057698 0.065837 1.445804 +v 0.057698 0.065837 1.125464 +v 0.057698 0.042483 1.130869 +v 0.057698 0.022228 1.148853 +v 0.057698 0.010226 1.174411 +v 0.057698 0.007240 1.206501 +v 0.057698 0.007240 1.364767 +v 0.057698 0.010226 1.396858 +v 0.057698 0.022228 1.422416 +v 0.057698 0.141171 1.121683 +v 0.057698 0.139630 1.130869 +v 0.057698 0.116276 1.125464 +v 0.057698 0.124782 1.074680 +v 0.057698 0.117438 1.092410 +v 0.057698 0.127160 1.115880 +v 0.057698 0.127160 1.068940 +v 0.057698 0.116276 1.445804 +v 0.057698 0.139630 1.440399 +v 0.057698 0.159885 1.422416 +v 0.057698 0.171886 1.396858 +v 0.057698 0.174873 1.364767 +v 0.057698 0.174873 1.206501 +v 0.057698 0.171886 1.174411 +v 0.057698 0.159885 1.148853 +v 0.057698 0.150630 1.125601 +v 0.057698 0.174100 1.115880 +v 0.057698 0.183821 1.092410 +v 0.057698 0.174100 1.068940 +v 0.057698 0.150630 1.059218 +v -0.054925 0.577098 1.092482 +v 0.056150 0.577098 1.092482 +v 0.056150 0.603150 1.092482 +v -0.054925 0.603150 1.092482 +v -0.054925 0.627935 0.448868 +v -0.054925 0.603150 0.448868 +v 0.056150 0.603150 0.448868 +v 0.056150 0.627935 0.448868 +v 0.025312 0.627935 0.448868 +v 0.000612 0.603235 0.448868 +v -0.024087 0.627935 0.448868 +v -0.054925 0.603150 0.419549 +v 0.056150 0.603150 0.419549 +v 0.056150 0.577098 0.419549 +v -0.054925 0.577098 0.419549 +v -0.054925 0.577098 0.448868 +v 0.056150 0.577098 0.448868 +v 0.056150 0.627935 0.419549 +v 0.025312 0.627935 0.419549 +v -0.054925 0.627935 0.419549 +v -0.024087 0.627935 0.419549 +v 0.000612 0.603235 0.419549 +v -0.054357 0.183821 1.092410 +v 0.062757 0.183821 1.092410 +v 0.062757 0.174100 1.068940 +v -0.054357 0.174100 1.068940 +v 0.062757 0.150630 1.059218 +v -0.054357 0.150630 1.059218 +v 0.062757 0.127160 1.068940 +v -0.054357 0.127160 1.068940 +v 0.062757 0.117438 1.092410 +v -0.054357 0.117438 1.092410 +v 0.062757 0.127160 1.115880 +v -0.054357 0.127160 1.115880 +v 0.062757 0.150630 1.125601 +v -0.054357 0.150630 1.125601 +v 0.062757 0.174100 1.115880 +v -0.054357 0.174100 1.115880 +v -0.152938 0.517962 1.538719 +v -0.137431 0.544138 1.539156 +v -0.095064 0.563301 1.539476 +v -0.037191 0.570315 1.539593 +v 0.038415 0.570315 1.539593 +v 0.096289 0.563301 1.539476 +v 0.138655 0.544138 1.539156 +v 0.154162 0.517962 1.538719 +v 0.154162 0.227849 1.533876 +v -0.152938 0.227849 1.533876 +v 0.012483 0.109525 2.094905 +v -0.011259 0.109525 2.094905 +v -0.011259 0.036699 2.150966 +v 0.012483 0.036699 2.150966 +v 0.012483 0.187910 2.023875 +v -0.011259 0.187910 2.023875 +v 0.012483 -0.213929 2.264097 +v 0.012483 -0.203596 2.264255 +v -0.011259 -0.203596 2.264255 +v -0.011259 -0.213929 2.264097 +v 0.013017 0.059583 1.797079 +v -0.011793 0.059583 1.797079 +v -0.011892 0.100282 1.765046 +v 0.013116 0.100282 1.765046 +v -0.088740 0.447951 1.762607 +v -0.077230 0.429221 1.760241 +v -0.014565 0.430912 1.762832 +v -0.023152 0.457644 1.766291 +v 0.012483 0.250853 1.956909 +v 0.012483 0.360493 1.799493 +v -0.011259 0.360493 1.799493 +v -0.011259 0.250853 1.956909 +v 0.012483 -0.130294 2.241662 +v -0.011259 -0.130294 2.241662 +v -0.011259 -0.152255 2.252959 +v 0.012483 -0.152255 2.252959 +v 0.012483 -0.179086 2.261228 +v -0.011259 -0.179086 2.261228 +v 0.012483 0.376760 1.785496 +v -0.011259 0.376760 1.785496 +v -0.111561 -0.183903 1.955881 +v -0.069363 -0.185223 1.935984 +v -0.069363 -0.185223 1.924661 +v -0.111561 -0.183903 1.944557 +v 0.096289 0.462296 1.755752 +v 0.096289 0.501026 1.692113 +v 0.038415 0.485570 1.734405 +v 0.038415 0.470835 1.758670 +v 0.012961 0.021307 1.820971 +v -0.011736 0.021307 1.820971 +v 0.011434 0.413383 1.766037 +v -0.011069 0.413356 1.766043 +v 0.038415 0.510485 1.688728 +v 0.038415 0.535784 1.634369 +v -0.037191 0.535784 1.634369 +v -0.037191 0.510485 1.688728 +v -0.037191 0.485570 1.734405 +v 0.141134 0.380985 1.735899 +v 0.148146 0.393971 1.738122 +v 0.132688 0.425226 1.752230 +v 0.124334 0.410947 1.750383 +v -0.018635 0.194290 1.607360 +v 0.019860 0.194290 1.607360 +v 0.019117 0.188526 1.641579 +v 0.000612 0.188526 1.641579 +v -0.017893 0.188526 1.641579 +v -0.012042 0.132498 1.733455 +v 0.013266 0.132498 1.733455 +v 0.013479 0.155364 1.707226 +v -0.012254 0.155364 1.707226 +v -0.012546 0.174279 1.678132 +v 0.013771 0.174279 1.678132 +v -0.012941 0.187380 1.644519 +v 0.014166 0.187380 1.644519 +v 0.154162 0.195123 1.575692 +v 0.154162 0.194290 1.607360 +v 0.109395 0.194290 1.607360 +v 0.064627 0.194290 1.607360 +v -0.063403 0.194290 1.607360 +v -0.108170 0.194290 1.607360 +v -0.152938 0.194290 1.607360 +v -0.152938 0.195123 1.575692 +v 0.154162 0.410681 1.733274 +v 0.154162 0.397386 1.736517 +v 0.154162 0.234366 1.662416 +v 0.154162 0.507794 1.568848 +v 0.154162 0.489887 1.614762 +v 0.154162 0.465930 1.666237 +v -0.037191 0.554689 1.585895 +v 0.038415 0.554689 1.585895 +v 0.138655 0.488208 1.677482 +v 0.138655 0.440323 1.746489 +v 0.014930 0.428644 1.762824 +v 0.000612 0.429258 1.762496 +v -0.014572 0.188370 1.641979 +v -0.013588 0.187942 1.643078 +v 0.141182 0.232641 1.666578 +v 0.131601 0.357945 1.735431 +v 0.131678 0.228796 1.676320 +v -0.126973 0.223882 1.688855 +v -0.126890 0.339948 1.738139 +v -0.130376 0.357945 1.735431 +v -0.130453 0.228796 1.676320 +v -0.152938 0.465930 1.666237 +v -0.152938 0.410674 1.733283 +v -0.137362 0.440289 1.746708 +v -0.137431 0.488208 1.677482 +v 0.015790 0.430912 1.762832 +v 0.023719 0.457946 1.765303 +v -0.131438 0.425246 1.752361 +v -0.123109 0.410947 1.750383 +v -0.013705 0.428644 1.762824 +v 0.015797 0.188370 1.641979 +v 0.014812 0.187942 1.643078 +v -0.139910 0.380985 1.735899 +v -0.139957 0.232641 1.666578 +v 0.128114 0.339948 1.738139 +v 0.128198 0.223882 1.688855 +v 0.128229 0.146669 1.969466 +v 0.128229 0.207250 1.905013 +v 0.112723 0.232183 1.940354 +v 0.112723 0.170421 2.006064 +v 0.070357 0.245850 1.952473 +v 0.070357 0.183224 2.019103 +v -0.127005 0.207250 1.905013 +v -0.127005 0.146669 1.969466 +v -0.111498 0.170421 2.006064 +v -0.111498 0.232183 1.940354 +v -0.069132 0.183224 2.019103 +v -0.069132 0.245850 1.952473 +v 0.128229 0.071248 2.037810 +v 0.112722 0.093518 2.075751 +v 0.070357 0.105235 2.089773 +v -0.127004 0.071248 2.037810 +v -0.111498 0.093518 2.075751 +v -0.069132 0.105235 2.089773 +v 0.128228 0.001156 2.091766 +v 0.112722 0.022059 2.130760 +v 0.070357 0.032777 2.145552 +v -0.127004 0.001156 2.091767 +v -0.111498 0.022059 2.130760 +v -0.069132 0.032776 2.145552 +v 0.128231 -0.171157 2.206585 +v 0.128228 -0.155841 2.198706 +v 0.112722 -0.143067 2.220184 +v 0.112723 -0.161706 2.229772 +v 0.070357 -0.133717 2.235907 +v 0.070357 -0.154788 2.246746 +v -0.127004 -0.155841 2.198706 +v -0.127006 -0.171157 2.206585 +v -0.111499 -0.161706 2.229772 +v -0.111498 -0.143067 2.220184 +v -0.069132 -0.154788 2.246746 +v -0.069132 -0.133717 2.235907 +v 0.128231 -0.189571 2.212260 +v 0.112723 -0.184328 2.236744 +v 0.070357 -0.180491 2.254668 +v -0.127006 -0.189571 2.212260 +v -0.111499 -0.184328 2.236744 +v -0.069132 -0.180491 2.254668 +v 0.128226 -0.206665 2.214371 +v 0.112721 -0.205130 2.239313 +v 0.070356 -0.204007 2.257572 +v -0.127002 -0.206665 2.214371 +v -0.111497 -0.205130 2.239313 +v -0.069132 -0.204007 2.257572 +v 0.128231 -0.225906 2.215671 +v 0.112723 -0.219918 2.239884 +v 0.070357 -0.215534 2.257609 +v -0.127006 -0.225906 2.215671 +v -0.111499 -0.219918 2.239884 +v -0.069132 -0.215534 2.257609 +v 0.128230 0.324851 1.764352 +v 0.112464 0.374810 1.752502 +v 0.112723 0.342672 1.781922 +v 0.070522 0.377964 1.775645 +v 0.070357 0.355718 1.794785 +v -0.127004 0.324851 1.764352 +v -0.111498 0.342672 1.781922 +v -0.111355 0.374806 1.752502 +v -0.069132 0.355718 1.794785 +v -0.069298 0.377964 1.775645 +v 0.128233 0.088301 1.837957 +v 0.128233 0.046066 1.864320 +v 0.112789 0.033687 1.842645 +v 0.112796 0.073942 1.817518 +v 0.070596 0.024625 1.826778 +v 0.070624 0.063431 1.802556 +v -0.127009 0.046066 1.864320 +v -0.127009 0.088301 1.837957 +v -0.111572 0.073942 1.817518 +v -0.111564 0.033687 1.842645 +v -0.069400 0.063431 1.802556 +v -0.069371 0.024625 1.826778 +v 0.128232 0.133269 1.802565 +v 0.112809 0.116775 1.783805 +v 0.070674 0.104701 1.770073 +v -0.127008 0.133269 1.802565 +v -0.111585 0.116775 1.783805 +v -0.069449 0.104701 1.770073 +v 0.128232 0.168817 1.767706 +v 0.112829 0.150657 1.750581 +v 0.070749 0.137363 1.738044 +v -0.127008 0.168817 1.767706 +v -0.111605 0.150657 1.750581 +v -0.069524 0.137363 1.738044 +v -0.011721 -0.185706 1.928702 +v -0.011721 -0.185706 1.917378 +v -0.127007 -0.182100 1.983060 +v -0.127007 -0.182100 1.971736 +v -0.127006 -0.225399 1.994269 +v -0.127006 0.219480 1.700124 +v -0.127007 0.195273 1.737359 +v 0.128231 0.219481 1.700124 +v 0.128231 0.195273 1.737359 +v 0.112857 0.175319 1.722292 +v 0.112896 0.196880 1.689128 +v 0.070855 0.160711 1.711263 +v 0.071001 0.180335 1.681079 +v -0.111671 0.196880 1.689128 +v -0.111633 0.175319 1.722292 +v -0.069776 0.180335 1.681079 +v -0.069630 0.160711 1.711263 +v -0.152938 0.234366 1.662416 +v -0.134845 0.211446 1.651997 +v -0.123164 0.210034 1.655489 +v -0.085415 0.194668 1.644370 +v -0.077270 0.193829 1.646486 +v 0.069756 0.401689 1.762713 +v -0.152938 0.397386 1.736517 +v -0.152938 0.489887 1.614763 +v -0.152938 0.507794 1.568848 +v 0.090168 0.448031 1.762079 +v 0.078455 0.429221 1.760241 +v -0.146999 0.394115 1.738147 +v -0.036751 0.470543 1.760212 +v 0.138655 0.531241 1.577372 +v 0.138655 0.512836 1.624566 +v 0.096289 0.548406 1.583611 +v 0.096289 0.529635 1.631743 +v -0.137431 0.512836 1.624566 +v -0.137431 0.531241 1.577372 +v -0.095064 0.529635 1.631743 +v -0.095064 0.548406 1.583611 +v 0.096289 0.504516 1.685715 +v -0.095064 0.504516 1.685715 +v -0.095064 0.501026 1.692113 +v 0.136070 0.211446 1.651997 +v 0.086640 0.194668 1.644370 +v 0.124389 0.210034 1.655489 +v 0.078495 0.193829 1.646486 +v -0.068961 0.401675 1.762716 +v 0.116031 0.206608 1.664217 +v 0.073255 0.191655 1.652049 +v 0.112932 0.202101 1.675743 +v 0.071194 0.188741 1.659515 +v -0.114806 0.206608 1.664217 +v -0.111708 0.202101 1.675743 +v -0.072030 0.191655 1.652049 +v -0.069969 0.188741 1.659515 +v 0.115955 0.391463 1.750106 +v 0.073251 0.417340 1.760133 +v -0.094811 0.462186 1.756545 +v -0.114731 0.391463 1.750106 +v -0.072026 0.417340 1.760133 +v 0.012945 -0.185706 1.928702 +v 0.012945 -0.185706 1.917378 +v 0.112786 -0.183903 1.955881 +v 0.128231 -0.182100 1.983060 +v 0.128231 -0.182100 1.971736 +v 0.112786 -0.183903 1.944557 +v 0.070588 -0.185223 1.935984 +v 0.012942 -0.224991 1.937822 +v -0.011718 -0.224991 1.937822 +v 0.128231 -0.225399 1.994269 +v 0.112785 -0.225195 1.966046 +v 0.070586 -0.225046 1.945385 +v 0.070588 -0.185223 1.924661 +v -0.069362 -0.225046 1.945385 +v -0.111560 -0.225195 1.966046 +v 0.123056 0.134956 1.982661 +v 0.123056 0.136958 1.973533 +v 0.123056 0.127921 1.971152 +v 0.123056 0.120445 1.971734 +v 0.123056 -0.181151 2.156088 +v 0.123056 -0.185078 2.162477 +v 0.123056 -0.187080 2.171605 +v 0.123056 -0.178043 2.173986 +v 0.123056 -0.170567 2.173404 +v 0.123056 0.131030 1.989050 +v 0.136146 0.127921 1.971152 +v 0.136146 0.120445 1.971734 +v 0.136146 0.136958 1.973533 +v 0.136146 0.134956 1.982661 +v 0.136146 0.131030 1.989050 +v 0.136145 -0.170567 2.173404 +v 0.136145 -0.178043 2.173986 +v 0.136145 -0.187080 2.171605 +v 0.136145 -0.185078 2.162477 +v 0.136145 -0.181151 2.156088 +v 0.123056 0.130753 1.939820 +v 0.123056 0.132780 1.930677 +v 0.123056 0.123718 1.928312 +v 0.123056 0.116215 1.928909 +v 0.123056 -0.185225 2.113168 +v 0.123056 -0.189178 2.119573 +v 0.123056 -0.191205 2.128717 +v 0.123056 -0.182143 2.131082 +v 0.123056 -0.174640 2.130484 +v 0.123056 0.126799 1.946226 +v 0.136146 0.123718 1.928312 +v 0.136146 0.116215 1.928909 +v 0.136146 0.132780 1.930677 +v 0.136146 0.130753 1.939820 +v 0.136146 0.126799 1.946226 +v 0.136145 -0.174640 2.130484 +v 0.136145 -0.182143 2.131082 +v 0.136145 -0.191205 2.128717 +v 0.136145 -0.189178 2.119573 +v 0.136145 -0.185225 2.113168 +v 0.123056 0.126959 1.849913 +v 0.123056 0.129007 1.840757 +v 0.123056 0.119925 1.838404 +v 0.123056 0.112400 1.839015 +v 0.123056 -0.188916 2.023198 +v 0.123056 -0.192890 2.029616 +v 0.123056 -0.194937 2.038772 +v 0.123056 -0.185855 2.041124 +v 0.123056 -0.178331 2.040514 +v 0.123056 0.122985 1.856331 +v 0.136145 0.119925 1.838404 +v 0.136145 0.112400 1.839015 +v 0.136145 0.129007 1.840757 +v 0.136145 0.126959 1.849913 +v 0.136145 0.122985 1.856331 +v 0.136145 -0.178331 2.040514 +v 0.136145 -0.185855 2.041124 +v 0.136145 -0.194937 2.038772 +v 0.136145 -0.192890 2.029616 +v 0.136145 -0.188916 2.023198 +v 0.123056 0.130504 1.893210 +v 0.123056 0.132552 1.884055 +v 0.123056 0.123470 1.881702 +v 0.123056 0.115945 1.882312 +v 0.123056 -0.185371 2.066495 +v 0.123056 -0.189345 2.072913 +v 0.123056 -0.191392 2.082069 +v 0.123056 -0.182310 2.084422 +v 0.123056 -0.174786 2.083811 +v 0.123056 0.126530 1.899628 +v 0.136145 0.123470 1.881702 +v 0.136145 0.115945 1.882312 +v 0.136145 0.132552 1.884055 +v 0.136145 0.130504 1.893210 +v 0.136145 0.126530 1.899628 +v 0.136145 -0.174786 2.083811 +v 0.136145 -0.182310 2.084422 +v 0.136145 -0.191392 2.082069 +v 0.136145 -0.189345 2.072913 +v 0.136145 -0.185371 2.066495 +v -0.134921 0.134956 1.982661 +v -0.134921 0.136958 1.973533 +v -0.134921 0.127921 1.971152 +v -0.134921 0.120445 1.971734 +v -0.134921 -0.181151 2.156088 +v -0.134921 -0.185078 2.162477 +v -0.134921 -0.187080 2.171605 +v -0.134921 -0.178043 2.173986 +v -0.134921 -0.170567 2.173404 +v -0.134921 0.131030 1.989050 +v -0.121832 0.127921 1.971152 +v -0.121832 0.120445 1.971734 +v -0.121832 0.136958 1.973533 +v -0.121832 0.134956 1.982661 +v -0.121832 0.131030 1.989050 +v -0.121832 -0.170567 2.173404 +v -0.121832 -0.178043 2.173986 +v -0.121832 -0.187080 2.171605 +v -0.121832 -0.185078 2.162477 +v -0.121832 -0.181151 2.156088 +v -0.134921 0.130753 1.939820 +v -0.134921 0.132780 1.930677 +v -0.134921 0.123718 1.928312 +v -0.134921 0.116215 1.928909 +v -0.134921 -0.185225 2.113168 +v -0.134921 -0.189178 2.119573 +v -0.134921 -0.191205 2.128717 +v -0.134921 -0.182143 2.131082 +v -0.134921 -0.174640 2.130484 +v -0.134921 0.126800 1.946226 +v -0.121832 0.123718 1.928312 +v -0.121832 0.116215 1.928909 +v -0.121832 0.132780 1.930677 +v -0.121832 0.130753 1.939820 +v -0.121832 0.126800 1.946226 +v -0.121832 -0.174640 2.130484 +v -0.121832 -0.182143 2.131082 +v -0.121832 -0.191205 2.128717 +v -0.121832 -0.189178 2.119573 +v -0.121832 -0.185225 2.113168 +v -0.134921 0.126959 1.849913 +v -0.134921 0.129007 1.840757 +v -0.134921 0.119925 1.838404 +v -0.134921 0.112400 1.839015 +v -0.134921 -0.188916 2.023198 +v -0.134921 -0.192890 2.029616 +v -0.134921 -0.194937 2.038772 +v -0.134921 -0.185855 2.041124 +v -0.134921 -0.178331 2.040514 +v -0.134921 0.122985 1.856331 +v -0.121832 0.119925 1.838404 +v -0.121832 0.112400 1.839015 +v -0.121832 0.129007 1.840757 +v -0.121832 0.126959 1.849913 +v -0.121832 0.122985 1.856331 +v -0.121832 -0.178331 2.040514 +v -0.121832 -0.185855 2.041124 +v -0.121832 -0.194937 2.038772 +v -0.121832 -0.192890 2.029616 +v -0.121832 -0.188916 2.023198 +v -0.134921 0.130504 1.893210 +v -0.134921 0.132552 1.884055 +v -0.134921 0.123470 1.881702 +v -0.134921 0.115945 1.882312 +v -0.134921 -0.185371 2.066495 +v -0.134921 -0.189345 2.072913 +v -0.134921 -0.191392 2.082069 +v -0.134921 -0.182310 2.084422 +v -0.134921 -0.174786 2.083811 +v -0.134921 0.126530 1.899628 +v -0.121832 0.123470 1.881702 +v -0.121832 0.115945 1.882312 +v -0.121832 0.132552 1.884055 +v -0.121832 0.130504 1.893210 +v -0.121832 0.126530 1.899628 +v -0.121832 -0.174786 2.083811 +v -0.121832 -0.182310 2.084422 +v -0.121832 -0.191392 2.082069 +v -0.121832 -0.189345 2.072913 +v -0.121832 -0.185371 2.066495 +v 0.000612 0.577354 -1.870045 +v 0.000612 0.577354 -2.097808 +v -0.089839 0.539888 -2.097808 +v -0.089839 0.539888 -1.870045 +v -0.127305 0.449436 -2.097808 +v -0.127305 0.449436 -1.870045 +v -0.089839 0.358985 -2.097808 +v -0.089839 0.358985 -1.870045 +v 0.000612 0.321519 -2.097808 +v 0.000612 0.321519 -1.870045 +v 0.091064 0.358985 -2.097808 +v 0.091064 0.358985 -1.870045 +v 0.128530 0.449436 -2.097808 +v 0.128530 0.449436 -1.870045 +v 0.074804 0.523628 -2.097808 +v 0.091064 0.539888 -2.097808 +v 0.000612 0.344513 -2.097808 +v 0.074804 0.375244 -2.097808 +v 0.105535 0.449436 -2.097808 +v 0.000612 0.554359 -2.097808 +v -0.073580 0.523628 -2.097808 +v -0.104311 0.449436 -2.097808 +v -0.073580 0.375244 -2.097808 +v 0.091064 0.539888 -1.870045 +v 0.000612 0.344513 -1.870045 +v 0.074804 0.523628 -1.870045 +v 0.105535 0.449436 -1.870045 +v 0.074804 0.375244 -1.870045 +v -0.073580 0.375244 -1.870045 +v -0.104311 0.449436 -1.870045 +v -0.073580 0.523628 -1.870045 +v 0.000612 0.554359 -1.870045 +v -0.008405 0.611074 -1.745492 +v 0.008405 0.611074 -1.745492 +v 0.000000 0.626074 -1.745492 +v -0.025216 0.523926 -1.548361 +v -0.025216 0.546074 -1.548361 +v -0.025216 0.596074 -1.745492 +v -0.025216 0.596074 -1.851639 +v -0.025216 0.523926 -1.851639 +v -0.025216 0.523926 -1.745492 +v -0.008405 0.611074 -1.851639 +v 0.000000 0.626074 -1.851639 +v 0.008405 0.596074 -1.745492 +v 0.008405 0.596074 -1.851639 +v 0.008405 0.611074 -1.851639 +v 0.025216 0.596074 -1.745492 +v 0.025216 0.596074 -1.851639 +v -0.008405 0.596074 -1.745492 +v 0.025216 0.523926 -1.851639 +v 0.025216 0.546074 -1.548361 +v 0.025216 0.523926 -1.548361 +v 0.025216 0.523926 -1.745492 +v -0.008405 0.596074 -1.851639 +v 0.000612 0.567105 0.093059 +v 0.000612 0.567105 -1.906941 +v -0.082592 0.532640 -1.906941 +v -0.082592 0.532640 0.093059 +v -0.117056 0.449436 -1.906941 +v -0.117056 0.449436 0.093059 +v -0.082592 0.366232 -1.906941 +v -0.082592 0.366232 0.093059 +v 0.000612 0.331768 -1.906941 +v 0.000612 0.331768 0.093059 +v 0.083817 0.366232 -1.906941 +v 0.083816 0.366232 0.093059 +v 0.118281 0.449436 -1.906941 +v 0.118281 0.449436 0.093059 +v 0.083817 0.532640 -1.906941 +v 0.083816 0.532640 0.093059 +v 0.000612 0.577354 -1.646873 +v 0.000612 0.577354 -1.749518 +v -0.089839 0.539888 -1.749518 +v -0.089839 0.539888 -1.646873 +v -0.127305 0.449436 -1.749518 +v -0.127305 0.449436 -1.646873 +v -0.089839 0.358985 -1.749518 +v -0.089839 0.358985 -1.646873 +v 0.000612 0.321519 -1.749518 +v 0.000612 0.321519 -1.646873 +v 0.091064 0.358985 -1.749518 +v 0.091064 0.358985 -1.646873 +v 0.128530 0.449436 -1.749518 +v 0.128530 0.449436 -1.646873 +v 0.091064 0.539888 -1.749518 +v 0.091064 0.539888 -1.646873 +v 0.000612 0.315957 -1.669013 +v 0.000612 0.315957 -1.750267 +v -0.088663 0.278978 -1.750267 +v -0.088663 0.278978 -1.669013 +v -0.125642 0.189702 -1.750267 +v -0.125642 0.189702 -1.669013 +v -0.088663 0.100427 -1.750267 +v -0.088663 0.100427 -1.669013 +v 0.000612 0.063448 -1.750267 +v 0.000612 0.063448 -1.669013 +v 0.089888 0.100427 -1.750267 +v 0.089888 0.100427 -1.669013 +v 0.126867 0.189702 -1.750267 +v 0.126867 0.189702 -1.669013 +v 0.089888 0.278978 -1.750267 +v 0.089888 0.278978 -1.669013 +v 0.000612 0.307371 0.200670 +v 0.000612 0.307371 -1.799330 +v -0.082592 0.272907 -1.799330 +v -0.082592 0.272906 0.200670 +v -0.117056 0.189702 -1.799330 +v -0.117056 0.189702 0.200670 +v -0.082592 0.106498 -1.799330 +v -0.082592 0.106498 0.200670 +v 0.000612 0.072034 -1.799330 +v 0.000612 0.072034 0.200670 +v 0.083817 0.106498 -1.799330 +v 0.083816 0.106498 0.200670 +v 0.118281 0.189702 -1.799330 +v 0.118281 0.189702 0.200670 +v 0.083817 0.272906 -1.799330 +v 0.083816 0.272906 0.200670 +v 0.000612 0.315957 -1.793664 +v 0.000612 0.315957 -1.874918 +v -0.088663 0.278978 -1.874919 +v -0.088663 0.278978 -1.793664 +v -0.125642 0.189702 -1.874919 +v -0.125642 0.189702 -1.793664 +v -0.088663 0.100427 -1.874919 +v -0.088663 0.100427 -1.793664 +v 0.000612 0.063448 -1.874919 +v 0.000612 0.063448 -1.793664 +v 0.089888 0.100427 -1.874918 +v 0.089888 0.100427 -1.793664 +v 0.126867 0.189702 -1.874918 +v 0.126867 0.189702 -1.793664 +v 0.089888 0.278978 -1.874918 +v 0.089888 0.278978 -1.793664 +v -0.011919 0.284738 -1.702443 +v 0.013144 0.284738 -1.702443 +v 0.013144 0.395269 -1.702443 +v -0.011919 0.395269 -1.702443 +v 0.013144 0.395269 -1.749322 +v -0.011919 0.395269 -1.749322 +v 0.013144 0.284738 -1.749322 +v -0.011919 0.284738 -1.749322 +vn -0.0000 -0.7012 0.7129 vn -0.0000 1.0000 -0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.7013 0.7129 +vn 0.9988 0.0499 -0.0000 +vn -0.1873 0.9822 0.0155 +vn 0.1821 0.9796 0.0845 +vn 0.1873 0.9822 0.0155 +vn -0.9988 0.0499 -0.0000 +vn -0.0000 0.2534 0.9674 +vn -0.1821 0.9796 0.0845 +vn 0.0314 0.9534 0.3001 +vn -0.0000 0.7077 0.7065 +vn -0.0314 0.9534 0.3001 +vn -0.1872 0.9823 -0.0000 +vn 0.9986 0.0523 -0.0020 +vn 0.9774 0.2113 -0.0002 +vn 0.9736 0.2284 -0.0051 +vn 0.8843 0.4669 0.0039 +vn 0.8767 0.4808 0.0146 +vn 0.6055 0.7958 0.0108 +vn 0.6093 0.7911 0.0535 +vn -0.9986 0.0523 -0.0020 +vn -0.9774 0.2113 -0.0002 +vn -0.9988 0.0494 -0.0008 +vn -0.9736 0.2284 -0.0051 +vn -0.8843 0.4669 0.0039 +vn -0.8767 0.4808 0.0146 +vn -0.6055 0.7958 0.0108 +vn -0.6093 0.7911 0.0535 +vn 0.9987 0.0502 -0.0044 +vn 0.9511 0.3078 -0.0251 +vn 0.4449 0.8687 0.2179 +vn 0.2201 0.9452 0.2412 +vn -0.9987 0.0502 -0.0044 +vn -0.4449 0.8687 0.2179 +vn -0.2201 0.9452 0.2412 +vn -0.6061 0.7954 -0.0000 +vn -0.8848 0.4660 -0.0000 +vn -0.9776 0.2104 -0.0000 +vn 0.9776 0.2104 -0.0000 +vn 0.9745 0.2244 -0.0000 +vn 0.9950 0.0996 -0.0000 +vn 0.9988 0.0494 -0.0008 +vn 0.9988 0.0498 -0.0000 +vn 0.9479 0.3184 -0.0000 +vn 0.8848 0.4660 -0.0000 +vn 0.6061 0.7954 -0.0000 +vn 0.1872 0.9823 -0.0000 +vn -0.0000 -0.0020 -1.0000 +vn -0.0000 -1.0000 -0.0083 +vn -0.0000 -1.0000 -0.0013 +vn -0.0000 0.0032 1.0000 +vn 0.4025 0.8068 0.4324 +vn -0.0000 0.4951 0.8688 +vn 0.4662 0.4241 0.7764 +vn 0.4025 0.8068 -0.4324 +vn -0.0000 0.4951 -0.8688 +vn -0.0000 0.8975 -0.4411 +vn 0.3039 0.9485 -0.0890 +vn -0.0000 0.9963 0.0863 +vn 0.3040 0.9485 0.0890 +vn -0.0000 0.9963 -0.0863 +vn 0.9995 0.0036 0.0325 +vn 0.9995 -0.0036 0.0325 +vn 0.9995 0.0036 -0.0325 +vn -0.0000 0.8975 0.4411 +vn -0.0000 -0.4476 -0.8942 +vn -0.0000 -0.0963 -0.9954 +vn -0.0000 -0.1027 -0.9947 +vn -0.0000 0.1027 -0.9947 +vn 0.4662 -0.4241 -0.7764 +vn -0.0000 -0.8863 -0.4632 +vn -0.0000 0.1027 0.9947 +vn 0.4025 -0.8068 -0.4324 +vn -0.0000 -0.9961 -0.0879 +vn 0.4662 -0.4241 0.7764 +vn -0.0000 -0.8863 0.4632 +vn 0.4025 -0.8068 0.4324 +vn 0.3040 -0.9485 -0.0890 +vn -0.0000 -0.9961 0.0879 +vn 0.4662 0.4241 -0.7764 +vn -0.0000 -0.0963 0.9954 +vn 0.0001 -0.2044 0.9789 +vn -0.0000 -0.4476 0.8942 +vn 0.8348 0.5487 0.0451 +vn 0.8348 0.5487 -0.0451 +vn 0.9922 0.1234 -0.0159 +vn 0.8733 0.4595 -0.1616 +vn 0.9392 0.1950 0.2826 +vn 0.9601 0.0300 0.2780 +vn 0.8874 0.0451 0.4587 +vn 0.8733 0.4595 0.1616 +vn 0.9922 0.1234 0.0159 +vn 0.8874 -0.0451 0.4587 +vn 0.9922 -0.1234 0.0159 +vn 0.9392 -0.1950 0.2826 +vn 0.8733 -0.4595 0.1616 +vn 0.9922 -0.1234 -0.0159 +vn 0.8733 -0.4595 -0.1616 +vn 0.9392 -0.1950 -0.2826 +vn 0.9601 0.0300 -0.2780 +vn 0.8874 0.0451 -0.4587 +vn 0.9392 0.1950 -0.2826 +vn 0.9995 -0.0036 -0.0325 +vn 0.8874 -0.0451 -0.4587 +vn 0.8348 -0.5487 0.0451 +vn 0.3040 -0.9485 0.0890 +vn 0.8348 -0.5487 -0.0451 +vn 0.9601 -0.0300 -0.2780 +vn 0.9601 -0.0300 0.2780 +vn -0.0000 0.8838 0.4678 +vn -0.9511 0.3078 -0.0251 +vn 0.9479 0.3186 -0.0000 +vn -0.0000 -0.0038 -1.0000 +vn 0.0001 -0.2044 -0.9789 +vn -0.0000 -0.1027 0.9947 +vn -0.0000 -0.4631 0.8863 +vn -0.0000 -0.4578 -0.8891 +vn -0.0000 -0.5207 -0.8538 +vn -0.0000 -0.3216 0.9469 +vn -0.0000 -0.5710 0.8210 +vn -0.0000 -0.7525 0.6586 +vn -0.0000 -0.3188 0.9478 +vn -0.0000 -0.8078 -0.5894 +vn -0.0000 -0.9269 -0.3752 +vn -0.0000 -0.9447 -0.3280 +vn -0.0000 -0.9943 -0.1069 +vn -0.0000 -0.8280 -0.5607 +vn -0.0000 -0.7230 0.6909 +vn -0.0000 -0.9770 0.2133 +vn -0.0000 0.1135 0.9935 +vn -0.0000 -0.1135 0.9935 +vn -0.0000 0.1135 -0.9935 +vn -0.0000 -0.1135 -0.9935 +vn -0.0000 0.9989 -0.0464 +vn -0.0000 0.9989 0.0464 +vn -0.0000 -0.9989 -0.0464 +vn -0.0000 -0.9989 0.0464 +vn -0.0000 0.9649 -0.2628 +vn -0.0000 0.8010 -0.5987 +vn -0.0000 0.4589 -0.8885 +vn -0.0000 -0.9649 -0.2628 +vn -0.0000 -0.8010 -0.5987 +vn -0.0000 -0.4589 -0.8885 +vn -0.0000 -0.4589 0.8885 +vn -0.0000 -0.8010 0.5987 +vn -0.0000 -0.9649 0.2628 +vn -0.0000 0.9649 0.2628 +vn -0.0000 0.8010 0.5987 +vn -0.0000 0.4589 0.8885 vn -0.0000 -0.7071 0.7071 -vn -0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 vn -0.0000 0.7071 0.7071 -vn -1.0000 -0.0000 0.0000 -s 1 -f 786/785/441 788/786/442 785/787/441 -f 787/788/442 790/789/443 788/786/442 -f 789/790/443 792/791/444 790/789/443 -f 791/792/444 794/793/445 792/791/444 -f 793/794/445 796/795/446 794/793/445 -f 795/796/446 798/797/447 796/795/446 -f 797/798/448 793/794/448 789/790/448 -f 797/798/447 800/799/449 798/797/447 -f 800/799/449 786/785/441 785/787/441 -f 796/795/450 798/797/450 800/799/450 -f 786/785/441 787/788/442 788/786/442 -f 787/788/442 789/790/443 790/789/443 -f 789/790/443 791/792/444 792/791/444 -f 791/792/444 793/794/445 794/793/445 -f 793/794/445 795/796/446 796/795/446 -f 795/796/446 797/798/447 798/797/447 -f 789/790/448 787/788/448 786/785/448 -f 786/785/448 799/800/448 789/790/448 -f 799/800/448 797/798/448 789/790/448 -f 797/798/448 795/796/448 793/794/448 -f 793/794/448 791/792/448 789/790/448 -f 797/798/447 799/800/449 800/799/449 -f 800/799/449 799/800/449 786/785/441 -f 800/799/450 785/787/450 788/786/450 -f 788/786/450 790/789/450 800/799/450 -f 790/789/450 792/791/450 800/799/450 -f 792/791/450 794/793/450 800/799/450 -f 794/793/450 796/795/450 800/799/450 -o Cube_Cube.001 -v -1.316254 0.234647 0.139055 -v -1.316254 0.234647 0.148771 -v -1.316254 0.312137 0.148771 -v -1.316254 0.312137 0.139055 -v -0.330263 0.312137 0.148771 -v -0.330263 0.312137 0.139055 -v -0.330263 0.234647 0.148771 -v -0.330263 0.234647 0.139055 -v -1.361672 0.339450 -0.152849 -v -1.361672 0.236034 -0.152849 -v -1.361672 0.236034 -0.137831 -v -1.361672 0.339450 -0.137831 -v -0.429618 0.339450 -0.152849 -v -0.429618 0.339450 -0.137831 -v -0.429618 0.236034 -0.152849 -v -0.307960 0.339450 -0.152849 -v -0.307960 0.236034 -0.152849 -v -0.429618 0.236034 -0.137831 -v -0.307960 0.236034 -0.137831 -v -0.307960 0.339450 -0.137831 -v -0.429618 0.470230 -0.152849 -v -0.307960 0.470230 -0.152849 -v -0.429618 0.470230 -0.137831 -v -0.307960 0.470230 -0.137831 -v -0.204392 0.184312 0.139055 -v -0.204784 0.062676 0.139055 -v -0.029043 0.064132 0.139055 -v -0.027466 0.474619 0.139055 -v -0.202227 0.474619 0.139055 -v -0.202227 0.408506 0.139055 -v -0.206744 0.386874 0.139055 -v -0.223773 0.371302 0.139055 -v -0.247428 0.367172 0.139055 -v -0.760419 0.408506 0.139055 -v -0.760419 0.474619 0.139055 -v -1.160748 0.474619 0.139055 -v -1.212867 0.476751 0.139055 -v -1.554436 0.523317 0.139055 -v -1.584164 0.470462 0.139055 -v -1.584164 0.182561 0.139055 -v -0.715218 0.367172 0.139055 -v -0.738873 0.371302 0.139055 -v -0.755902 0.386874 0.139055 -v -1.193615 0.592632 0.079700 -v -1.193615 0.592632 -0.078476 -v -1.343072 0.587917 -0.078476 -v -1.343072 0.587917 0.079700 -v -1.584164 0.182561 -0.137831 -v -1.584164 0.470462 -0.137831 -v -1.554436 0.523317 -0.137831 -v -1.212867 0.476751 -0.137831 -v -1.160748 0.474619 -0.137831 -v -0.027466 0.474619 -0.137831 -v -0.029043 0.064132 -0.137831 -v -0.204784 0.062676 -0.137831 -v -0.204392 0.184312 -0.137831 -v -1.469775 0.568125 -0.078476 -v -1.469775 0.568125 0.079700 -v -1.494572 0.555001 0.121671 -v -1.476220 0.564714 0.102414 -v -1.476220 0.564714 -0.101190 -v -1.494572 0.555001 -0.120446 -v -1.522038 0.540464 -0.133313 -v -1.522038 0.540464 0.134537 -v -0.027466 0.592632 0.079700 -v -0.027466 0.592632 -0.078476 -v -1.173326 0.519780 0.134537 -v -1.262694 0.519292 0.134537 -v -1.183989 0.558066 0.121671 -v -1.304936 0.555357 0.121671 -v -1.191113 0.583648 0.102414 -v -1.333161 0.579455 0.102414 -v -1.262694 0.519292 -0.133313 -v -1.173326 0.519780 -0.133313 -v -1.304936 0.555357 -0.120446 -v -1.183989 0.558066 -0.120446 -v -1.333161 0.579455 -0.101190 -v -1.191113 0.583648 -0.101190 -v -0.027466 0.583648 -0.101190 -v -0.027466 0.558066 -0.120446 -v -0.027466 0.519780 -0.133313 -v -0.202227 0.511418 0.135374 -v -0.027466 0.519780 0.134537 -v -0.203973 0.519780 0.134537 -v -0.760419 0.511418 0.135374 -v -0.758673 0.519780 0.134537 -v -0.206744 0.533050 0.130078 -v -0.027466 0.558066 0.121671 -v -0.755902 0.533050 0.130078 -v -0.738873 0.548622 0.124844 -v -0.715218 0.552752 0.123456 -v -0.247428 0.552752 0.123456 -v -0.223773 0.548622 0.124844 -v -0.027466 0.583648 0.102414 -v -0.206744 0.386874 0.006857 -v -0.223773 0.371302 0.006857 -v -0.738873 0.371302 0.006857 -v -0.755902 0.386874 0.006857 -v -0.247428 0.367172 0.006857 -v -0.715218 0.367172 0.006857 -v -0.649440 0.524577 -0.012342 -v -0.652482 0.510011 -0.012342 -v -0.652482 0.409913 -0.012342 -v -0.649440 0.395347 -0.012342 -v -0.313206 0.395347 -0.012342 -v -0.310165 0.409913 -0.012342 -v -0.310165 0.510011 -0.012342 -v -0.313206 0.524577 -0.012342 -v -0.755902 0.533050 0.006857 -v -0.760419 0.511418 0.006857 -v -0.760419 0.408506 0.006857 -v -0.738873 0.548622 0.006857 -v -0.202227 0.408506 0.006857 -v -0.715218 0.552752 0.006857 -v -0.223773 0.548622 0.006857 -v -0.206744 0.533050 0.006857 -v -0.247428 0.552752 0.006857 -v -0.202227 0.511418 0.006857 -v -0.253872 0.376935 -0.007431 -v -0.708774 0.376935 -0.007431 -v -0.717005 0.378372 -0.007431 -v -0.233974 0.389041 -0.007431 -v -0.229835 0.408866 -0.007431 -v -0.245641 0.378372 -0.007431 -v -0.229835 0.511059 -0.007431 -v -0.233974 0.530883 -0.007431 -v -0.245641 0.541552 -0.007431 -v -0.717005 0.541552 -0.007431 -v -0.728672 0.530883 -0.007431 -v -0.728672 0.389041 -0.007431 -v -0.732811 0.408866 -0.007431 -v -0.732811 0.511059 -0.007431 -v -0.708774 0.542989 -0.007431 -v -0.253872 0.542989 -0.007431 -vt 0.105115 0.891994 -vt 0.105115 0.913274 +vn -0.0000 0.9239 0.3827 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 0.0004 1.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.0000 -0.4305 -0.9026 +vn -0.0000 0.0167 -0.9999 +vn -0.0574 0.6402 0.7661 +vn 0.0572 0.5446 0.8368 +vn 0.0574 0.6402 0.7661 +vn -0.0574 0.6995 0.7123 +vn 0.0574 0.6995 0.7123 +vn 0.0574 0.0537 0.9969 +vn -0.0577 -0.0141 0.9982 +vn 0.0577 -0.0141 0.9982 +vn -0.0579 -0.5739 -0.8168 +vn 0.0579 -0.6593 -0.7497 +vn 0.0579 -0.5739 -0.8168 +vn -0.0934 -0.1209 0.9883 +vn -0.0163 0.1563 0.9876 +vn -0.1627 0.0858 0.9829 +vn 0.0579 0.7412 0.6688 +vn -0.0573 0.7753 0.6289 +vn 0.0573 0.7753 0.6289 +vn -0.0574 0.4666 0.8826 +vn 0.0575 0.3768 0.9245 +vn 0.0574 0.4666 0.8826 +vn -0.0575 0.2090 0.9762 +vn 0.0575 0.2090 0.9762 +vn -0.0647 0.5671 0.8211 +vn 0.0650 0.5676 0.8208 +vn -0.0575 0.3768 0.9245 +vn 0.0217 0.9998 -0.0000 +vn 0.0487 0.9988 -0.0000 +vn 0.0905 0.9959 -0.0000 +vn 0.2983 0.6040 0.7390 +vn 0.0701 0.8620 0.5021 +vn 0.0815 0.6577 0.7488 +vn -0.0578 -0.4952 -0.8669 +vn 0.0578 -0.4952 -0.8669 +vn 0.0531 0.3315 0.9420 +vn 0.0574 0.9181 0.3922 +vn -0.0574 0.8912 0.4499 +vn 0.0574 0.8912 0.4499 +vn -0.0693 0.8655 0.4961 +vn 0.3900 -0.2315 0.8913 +vn 0.2335 -0.1990 0.9518 +vn 0.4280 -0.2964 0.8538 +vn -0.0000 -0.9953 -0.0964 +vn 0.0442 -0.9989 0.0174 +vn -0.0000 -0.9640 -0.2660 +vn -0.0579 -0.7265 -0.6848 +vn 0.0579 -0.7265 -0.6848 +vn -0.0582 -0.7969 -0.6013 +vn 0.0587 -0.8884 -0.4553 +vn 0.0582 -0.7969 -0.6013 +vn -0.0587 -0.8884 -0.4553 +vn -0.0490 -0.9343 -0.3532 +vn -0.0215 -0.9990 -0.0391 +vn -0.0518 -0.9952 0.0831 +vn -0.0000 -0.9410 -0.3384 +vn 0.9601 0.2571 0.1098 +vn 0.9575 0.2485 0.1465 +vn -0.0574 0.9383 0.3411 +vn 0.0568 0.9460 0.3192 +vn -0.0568 0.9460 0.3192 +vn 0.0574 0.9383 0.3411 +vn -0.0574 0.9181 0.3922 +vn 0.6494 0.3940 0.6504 +vn 0.9093 0.0917 0.4058 +vn 0.0227 0.0897 0.9957 +vn 0.0042 0.0527 0.9986 +vn -0.0389 -0.9472 -0.3182 +vn -0.0443 -0.9989 0.0170 +vn -0.0479 -0.9400 -0.3379 +vn 0.5035 -0.5061 0.7002 +vn 0.6880 -0.1719 0.7051 +vn 0.8338 -0.4425 0.3300 +vn -0.9537 0.0402 0.2979 +vn -0.8338 -0.4425 0.3300 +vn -0.9515 -0.3076 0.0061 +vn -0.0522 0.3304 0.9424 +vn -0.9575 0.2485 0.1465 +vn -0.6508 0.3924 0.6500 +vn -0.6471 0.6627 0.3770 +vn 0.0129 -0.0540 0.9985 +vn 0.0341 0.1762 0.9838 +vn -0.2325 -0.2039 0.9510 +vn -0.3995 -0.0443 0.9157 +vn -0.0200 0.0932 0.9954 +vn -0.0139 -0.0740 0.9972 +vn 0.0389 -0.9473 -0.3181 +vn 0.0479 -0.9400 -0.3379 +vn 0.0490 -0.9343 -0.3532 +vn -0.6888 -0.1718 0.7043 +vn -0.5035 -0.5061 0.7002 +vn 0.9536 0.0407 0.2983 +vn 0.9515 -0.3076 0.0061 +vn 0.9841 0.1250 0.1261 +vn 0.7159 0.5412 0.4411 +vn 0.7228 0.4835 0.4936 +vn 0.2562 0.7506 0.6091 +vn 0.2573 0.6771 0.6895 +vn -0.9841 0.1250 0.1261 +vn -0.7159 0.5412 0.4411 +vn -0.9826 0.1450 0.1162 +vn -0.7228 0.4835 0.4936 +vn -0.2562 0.7506 0.6091 +vn -0.2573 0.6771 0.6895 +vn 0.9845 0.1128 0.1339 +vn 0.7244 0.4415 0.5294 +vn 0.2573 0.6197 0.7415 +vn -0.9845 0.1128 0.1339 +vn -0.7244 0.4415 0.5294 +vn 0.9851 0.1014 0.1393 +vn 0.7168 0.3857 0.5809 +vn 0.2560 0.5273 0.8102 +vn -0.9851 0.1014 0.1393 +vn -0.2560 0.5273 0.8102 +vn -0.2573 0.6197 0.7415 +vn -0.0572 0.5446 0.8368 +vn 0.9578 0.1085 0.2661 +vn 0.6516 0.3542 0.6708 +vn 0.6454 0.2883 0.7073 +vn 0.2578 0.4513 0.8543 +vn 0.2569 0.3648 0.8950 +vn -0.9578 0.1085 0.2661 +vn -0.6516 0.3542 0.6708 +vn -0.9611 0.1301 0.2436 +vn -0.6454 0.2883 0.7073 +vn -0.2578 0.4513 0.8543 +vn -0.2569 0.3648 0.8950 +vn 0.6454 0.1599 0.7469 +vn 0.9579 0.0600 0.2808 +vn 0.2569 0.2023 0.9450 +vn -0.6454 0.1599 0.7469 +vn 0.6477 0.0601 0.7595 +vn 0.9600 0.0256 0.2788 +vn 0.2564 0.0603 0.9647 +vn -0.9579 0.0600 0.2808 +vn -0.6477 0.0601 0.7595 +vn -0.2564 0.0603 0.9647 +vn -0.2569 0.2023 0.9450 +vn -0.0574 0.0537 0.9969 +vn 0.6675 0.0320 0.7440 +vn 0.9628 0.0185 0.2698 +vn 0.2612 0.0064 0.9653 +vn -0.9600 0.0256 0.2788 +vn -0.6675 0.0320 0.7440 +vn -0.2612 0.0063 0.9653 +vn 0.9611 0.1301 0.2435 +vn -0.7168 0.3857 0.5809 +vn 0.6854 0.5529 0.4738 +vn 0.9566 0.2413 0.1631 +vn 0.2872 0.5540 0.7814 +vn 0.2613 0.7162 0.6471 +vn -0.6854 0.5525 0.4743 +vn -0.6136 0.2304 0.7553 +vn -0.2865 0.5522 0.7829 +vn -0.2613 0.7162 0.6471 +vn 0.9826 0.1450 0.1162 +vn -0.9566 0.2413 0.1631 +vn -0.0579 0.7412 0.6688 +vn 0.9637 -0.1325 -0.2320 +vn 0.6594 -0.4323 -0.6151 +vn 0.9644 -0.1520 -0.2163 +vn 0.6576 -0.3737 -0.6542 +vn 0.2606 -0.5551 -0.7899 +vn 0.2600 -0.4790 -0.8384 +vn -0.9636 -0.1325 -0.2320 +vn -0.6594 -0.4323 -0.6151 +vn -0.6576 -0.3737 -0.6542 +vn -0.2607 -0.5551 -0.7899 +vn -0.2600 -0.4790 -0.8384 +vn 0.6597 -0.4963 -0.5643 +vn 0.9645 -0.1745 -0.1985 +vn 0.2609 -0.6376 -0.7248 +vn -0.9644 -0.1520 -0.2163 +vn -0.6597 -0.4963 -0.5643 +vn -0.2609 -0.6376 -0.7248 +vn -0.0579 -0.6593 -0.7497 +vn 0.9638 -0.1940 -0.1828 +vn 0.6584 -0.5479 -0.5160 +vn 0.2606 -0.7028 -0.6619 +vn -0.9638 -0.1940 -0.1828 +vn -0.9645 -0.1745 -0.1985 +vn -0.6584 -0.5479 -0.5160 +vn 0.0044 1.0000 -0.0000 +vn 0.0175 0.9998 -0.0000 +vn -0.6906 -0.3339 -0.6416 +vn -0.9948 -0.0472 -0.0906 +vn -0.2686 -0.4447 -0.8545 +vn -0.0586 -0.4608 -0.8855 +vn 0.9654 -0.2081 -0.1570 +vn 0.6680 -0.6623 -0.3393 +vn 0.9672 -0.2254 -0.1170 +vn 0.6625 -0.5981 -0.4509 +vn 0.2646 -0.8585 -0.4392 +vn 0.2621 -0.7707 -0.5808 +vn -0.9654 -0.2081 -0.1570 +vn -0.6680 -0.6623 -0.3393 +vn -0.6625 -0.5981 -0.4509 +vn -0.2646 -0.8585 -0.4392 +vn -0.2621 -0.7707 -0.5808 +vn -0.3495 -0.7657 0.5400 +vn -0.4005 -0.8182 0.4124 +vn -0.1705 -0.9565 0.2368 +vn -0.1920 -0.9808 -0.0355 +vn -0.2606 -0.7028 -0.6619 +vn 0.2303 0.2823 0.9313 +vn 0.6115 0.2306 0.7569 +vn 0.1607 0.1057 0.9813 +vn 0.0945 -0.1055 0.9899 +vn -0.3912 -0.2301 0.8911 +vn -0.0768 0.6528 0.7537 +vn 0.6503 0.7140 0.2595 +vn 0.6496 0.6992 0.2987 +vn 0.2575 0.9081 0.3301 +vn 0.2574 0.8886 0.3796 +vn -0.9601 0.2571 0.1098 +vn -0.6503 0.7140 0.2595 +vn -0.9605 0.2615 0.0951 +vn -0.6496 0.6992 0.2987 +vn -0.2575 0.9081 0.3301 +vn -0.2574 0.8886 0.3796 +vn 0.6470 0.6627 0.3772 +vn 0.2574 0.8626 0.4355 +vn 0.2735 0.8303 0.4856 +vn -0.2735 0.8307 0.4849 +vn -0.2574 0.8626 0.4355 +vn -0.2504 0.9173 0.3096 +vn -0.6210 0.7427 0.2506 +vn -0.9457 0.3079 0.1039 +vn 0.9457 0.3079 0.1039 +vn 0.9605 0.2615 0.0951 +vn 0.6210 0.7427 0.2506 +vn 0.2504 0.9173 0.3096 +vn 0.0818 -0.9767 0.1982 +vn 0.3495 -0.7657 0.5400 +vn 0.0518 -0.9952 0.0831 +vn 0.1705 -0.9565 0.2368 +vn 0.0215 -0.9990 -0.0391 +vn -0.0818 -0.9767 0.1982 +vn -0.3919 -0.5303 0.7518 +vn 0.3919 -0.5303 0.7518 +vn 0.4005 -0.8182 0.4124 +vn 0.1920 -0.9808 -0.0355 +vn -0.2352 0.2799 0.9308 +vn 0.5611 -0.8278 0.0031 +vn 0.2204 -0.9438 -0.2463 +vn 0.6321 -0.7469 -0.2063 +vn 0.2445 -0.9148 -0.3215 +vn -0.5611 -0.8278 0.0031 +vn -0.6322 -0.7469 -0.2063 +vn -0.2204 -0.9438 -0.2463 +vn -0.2445 -0.9148 -0.3215 +vn 0.3605 -0.0690 0.9302 +vn 0.1355 0.0240 0.9905 +vn 0.2505 0.0136 0.9680 +vn -0.4280 -0.2964 0.8538 +vn -0.2593 0.0104 0.9657 +vn -0.3018 0.5994 0.7414 +vn -0.3617 -0.0678 0.9298 +vn -0.1384 0.0274 0.9900 +vn -0.9672 -0.2254 -0.1170 +vn -0.0044 1.0000 -0.0000 +vn 0.0040 1.0000 -0.0000 +vn -0.0905 0.9959 -0.0000 +vn -0.1160 0.9933 -0.0000 +vn -0.0487 0.9988 -0.0000 +vn 0.0586 -0.4608 -0.8855 +vn 0.2686 -0.4447 -0.8545 +vn 0.6906 -0.3339 -0.6416 +vn 0.0567 -0.4609 -0.8856 +vn -0.0588 -0.4608 -0.8855 +vn -0.0567 -0.4609 -0.8856 +vn 0.9373 -0.1609 -0.3091 +vn 0.6970 -0.3310 -0.6361 +vn 0.6101 -0.3658 -0.7028 +vn 0.2705 -0.4444 -0.8540 +vn 0.2484 -0.4472 -0.8593 +vn 0.0588 -0.4608 -0.8855 +vn -0.2484 -0.4472 -0.8593 +vn -0.2705 -0.4444 -0.8540 +vn -0.6101 -0.3658 -0.7028 +vn -0.6970 -0.3311 -0.6361 +vn -0.9373 -0.1609 -0.3091 +vn -0.9807 -0.0903 -0.1736 +vn 0.1159 0.9933 -0.0000 +vn -0.0175 0.9998 -0.0000 +vn -0.0040 1.0000 -0.0000 +vn -0.0006 -1.0000 -0.0035 +vn -0.0000 -1.0000 -0.0072 +vn -0.0019 -1.0000 -0.0034 +vn -0.0217 0.9998 -0.0000 +vn -0.9101 0.0922 0.4040 +vn 0.3980 -0.0389 0.9166 +vn -0.0000 -0.9708 0.2401 +vn -0.0000 0.0898 -0.9960 +vn -0.0000 -0.3081 -0.9514 +vn -0.0000 0.0899 -0.9960 +vn -0.0000 0.7063 0.7079 +vn -0.0000 0.9274 0.3741 +vn -0.0000 -0.7062 -0.7080 +vn -0.0000 -0.9274 -0.3742 +vn -0.0000 0.3081 0.9514 +vn -0.0000 -0.9768 -0.2142 +vn -0.0000 -0.2548 0.9670 +vn -0.0000 -0.0899 0.9960 +vn -0.0000 0.2548 -0.9670 +vn -0.0000 0.9768 0.2142 +vn -0.0000 -0.0898 0.9960 +vn -0.0000 0.0878 -0.9961 +vn -0.0000 -0.3089 -0.9511 +vn -0.0000 0.7056 0.7086 +vn -0.0000 0.9266 0.3761 +vn -0.0000 -0.7056 -0.7086 +vn -0.0000 -0.9266 -0.3761 +vn -0.0000 0.3090 0.9511 +vn -0.0000 -0.9763 -0.2164 +vn -0.0000 -0.2525 0.9676 +vn -0.0000 -0.0878 0.9961 +vn -0.0000 0.2525 -0.9676 +vn -0.0000 0.9763 0.2164 +vn -0.0000 0.0861 -0.9963 +vn -0.0000 -0.3097 -0.9508 +vn -0.0000 0.7051 0.7091 +vn -0.0000 0.9260 0.3776 +vn -0.0000 -0.3096 -0.9509 +vn -0.0000 -0.7051 -0.7091 +vn -0.0000 -0.9260 -0.3776 +vn -0.0000 0.3096 0.9509 +vn -0.0000 -0.9759 -0.2182 +vn -0.0000 -0.2507 0.9681 +vn -0.0000 -0.0862 0.9963 +vn -0.0000 0.2508 -0.9680 +vn -0.0000 0.9759 0.2183 +vn -0.0000 -0.0861 0.9963 +vn -0.0000 0.0862 -0.9963 +vn -0.0000 0.3097 0.9508 +vn -0.0000 -0.2508 0.9680 +vn -0.0000 0.9266 0.3760 +vn -0.0000 -0.2512 0.9679 +vn -0.9628 0.0184 0.2697 +vn 0.9948 -0.0471 -0.0906 +vn 0.9807 -0.0903 -0.1736 +vn -0.0006 -1.0000 -0.0030 +vn 0.0006 -1.0000 -0.0030 +vn 0.0006 -1.0000 -0.0035 +vn 0.0019 -1.0000 -0.0034 +vn -0.7071 -0.7071 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.8724 0.4888 -0.0000 +vn 0.8724 0.4888 -0.0000 +vn -0.0000 0.9693 0.2459 +vn -0.0000 0.7764 -0.6303 +vn -0.5490 0.5490 0.6303 +vn -0.0000 0.7764 0.6303 +vn -0.5490 0.5490 -0.6303 +vn -0.7764 -0.0000 0.6303 +vn -0.7764 -0.0000 -0.6303 +vn -0.5490 -0.5490 0.6303 +vn -0.5490 -0.5490 -0.6303 +vn -0.0000 -0.7764 0.6303 +vn -0.0000 -0.7764 -0.6303 +vn 0.5490 -0.5490 0.6303 +vn 0.5490 -0.5490 -0.6303 +vn 0.7764 -0.0000 0.6303 +vn 0.7764 -0.0000 -0.6303 +vn 0.5490 0.5490 0.6303 +vn 0.5490 0.5490 -0.6303 +vt 0.371558 0.219091 +vt 0.371159 0.219497 +vt 0.434034 0.219497 +vt 0.434034 0.185834 +vt 0.416747 0.185834 +vt 0.404268 0.185834 +vt 0.416747 0.219091 vt 0.105115 0.891994 vt 0.105115 0.913274 vt 0.375880 0.913274 -vt 0.375880 0.913274 -vt 0.375880 0.891994 vt 0.375880 0.891994 vt 0.092643 0.892375 vt 0.092643 0.920774 -vt 0.092643 0.920774 -vt 0.348596 0.920774 vt 0.348596 0.920774 vt 0.382005 0.892375 vt 0.348596 0.892375 -vt 0.348596 0.892375 -vt 0.092643 0.892375 vt 0.382005 0.920774 -vt 0.382005 0.892375 -vt 0.382005 0.956688 -vt 0.382005 0.920774 -vt 0.348596 0.956688 vt 0.382005 0.956688 vt 0.348596 0.956688 vt 0.410446 0.878172 @@ -3799,17 +3031,10 @@ vt 0.270167 0.928387 vt 0.263671 0.929521 vt 0.138793 0.990301 vt 0.097751 0.989006 -vt 0.138793 0.990301 -vt 0.459032 0.957893 -vt 0.031544 0.877691 vt 0.031544 0.877691 vt 0.031544 0.956752 -vt 0.097751 0.989006 vt 0.062956 0.983571 vt 0.039707 0.971267 -vt 0.039707 0.971267 -vt 0.062956 0.983571 -vt 0.031544 0.956752 vt 0.459032 0.990301 vt 0.133506 0.958479 vt 0.144365 0.970295 @@ -3818,64 +3043,33 @@ vt 0.141437 0.980809 vt 0.108223 0.980065 vt 0.139480 0.987834 vt 0.100472 0.986683 -vt 0.133506 0.958479 -vt 0.144365 0.970295 vt 0.147819 0.957893 -vt 0.119823 0.970161 -vt 0.141437 0.980809 -vt 0.108223 0.980065 -vt 0.139480 0.987834 -vt 0.100472 0.986683 vt 0.048604 0.975975 vt 0.056147 0.979967 vt 0.061187 0.982635 -vt 0.056147 0.979967 -vt 0.061187 0.982635 vt 0.459032 0.987834 vt 0.459032 0.980809 vt 0.459032 0.970295 -vt 0.459032 0.970295 vt 0.410561 0.970295 vt 0.411041 0.967999 -vt 0.147819 0.957893 vt 0.257754 0.957893 vt 0.257754 0.967999 vt 0.270167 0.979350 vt 0.398628 0.979350 -vt 0.459032 0.980809 -vt 0.459032 0.987834 -vt 0.459032 0.990301 vt 0.458599 0.845169 vt 0.410339 0.844769 -vt 0.458599 0.845169 -vt 0.410446 0.878172 -vt 0.410339 0.844769 vt 0.405124 0.929521 -vt 0.409800 0.933798 -vt 0.263671 0.929521 vt 0.258995 0.933798 -vt 0.270167 0.928387 -vt 0.398628 0.928387 vt 0.398628 0.928387 vt 0.381400 0.940125 vt 0.381400 0.967613 vt 0.287395 0.940125 -vt 0.405124 0.929521 vt 0.258995 0.973940 -vt 0.257754 0.967999 vt 0.257754 0.939738 -vt 0.257754 0.939738 -vt 0.258995 0.973940 vt 0.263671 0.978216 vt 0.411041 0.939738 -vt 0.411041 0.939738 -vt 0.263671 0.978216 vt 0.409800 0.973940 vt 0.405124 0.978216 -vt 0.405124 0.978216 -vt 0.270167 0.979350 -vt 0.258995 0.933798 -vt 0.409800 0.973940 vt 0.411041 0.957893 vt 0.396858 0.931068 vt 0.271936 0.931068 @@ -3885,7 +3079,6 @@ vt 0.402323 0.934393 vt 0.403459 0.939837 vt 0.399119 0.931463 vt 0.380565 0.936125 -vt 0.411041 0.967999 vt 0.380565 0.971613 vt 0.402323 0.973344 vt 0.399119 0.976274 @@ -3896,866 +3089,92 @@ vt 0.265336 0.939837 vt 0.266472 0.934393 vt 0.287395 0.967613 vt 0.396858 0.976669 -vt 0.398628 0.979350 vt 0.271937 0.976669 vt 0.265336 0.967900 vt 0.403459 0.967900 -vt 0.048604 0.975975 vt 0.258234 0.970295 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0499 0.9988 -vn -0.0155 0.9822 -0.1873 -vn -0.0845 0.9796 0.1821 -vn -0.0155 0.9822 0.1873 -vn -0.0000 0.0499 -0.9988 -vn -0.9674 0.2534 0.0000 -vn -0.0845 0.9796 -0.1821 -vn -0.3001 0.9534 0.0314 -vn -0.7065 0.7077 -0.0000 -vn -0.3001 0.9534 -0.0314 -vn 0.0000 0.9823 -0.1872 -vn 0.0020 0.0523 0.9986 -vn 0.0002 0.2113 0.9774 -vn 0.0051 0.2284 0.9736 -vn -0.0039 0.4669 0.8843 -vn -0.0146 0.4808 0.8767 -vn -0.0108 0.7958 0.6055 -vn -0.0535 0.7911 0.6093 -vn 0.0020 0.0523 -0.9986 -vn 0.0002 0.2113 -0.9774 -vn 0.0008 0.0494 -0.9988 -vn 0.0051 0.2284 -0.9736 -vn -0.0039 0.4669 -0.8843 -vn -0.0146 0.4808 -0.8767 -vn -0.0108 0.7958 -0.6055 -vn -0.0535 0.7911 -0.6093 -vn 0.0044 0.0502 0.9987 -vn 0.0251 0.3078 0.9511 -vn -0.2179 0.8687 0.4449 -vn -0.2412 0.9452 0.2201 -vn 0.0044 0.0502 -0.9987 -vn -0.2179 0.8687 -0.4449 -vn -0.2412 0.9452 -0.2201 -vn 0.0000 0.7954 -0.6061 -vn 0.0000 0.4660 -0.8848 -vn 0.0000 0.2104 -0.9776 -vn 0.0000 0.2104 0.9776 -vn 0.0000 0.2244 0.9745 -vn 0.0000 0.0996 0.9950 -vn 0.0008 0.0494 0.9988 -vn 0.0000 0.0498 0.9988 -vn 0.0000 0.3184 0.9479 -vn -0.0000 0.4660 0.8848 -vn 0.0000 0.7954 0.6061 -vn 0.0000 0.9823 0.1872 -vn 1.0000 -0.0020 0.0000 -vn 0.0083 -1.0000 -0.0000 -vn 0.0013 -1.0000 0.0000 -vn -1.0000 0.0032 0.0000 -vn -0.4324 0.8068 0.4025 -vn -0.8688 0.4951 0.0000 -vn -0.7764 0.4241 0.4662 -vn 0.4324 0.8068 0.4025 -vn 0.8688 0.4951 0.0000 -vn 0.4411 0.8975 0.0000 -vn 0.0890 0.9485 0.3039 -vn -0.0863 0.9963 0.0000 -vn -0.0890 0.9485 0.3040 -vn 0.0863 0.9963 0.0000 -vn -0.0325 0.0036 0.9995 -vn -0.0325 -0.0036 0.9995 -vn 0.0325 0.0036 0.9995 -vn -0.4411 0.8975 0.0000 -vn 0.8942 -0.4476 0.0000 -vn 0.9954 -0.0963 0.0000 -vn 0.9947 -0.1027 0.0000 -vn 0.9947 0.1027 0.0000 -vn 0.7764 -0.4241 0.4662 -vn 0.4632 -0.8863 0.0000 -vn -0.9947 0.1027 0.0000 -vn 0.4324 -0.8068 0.4025 -vn 0.0879 -0.9961 0.0000 -vn -0.7764 -0.4241 0.4662 -vn -0.4632 -0.8863 0.0000 -vn -0.4324 -0.8068 0.4025 -vn 0.0890 -0.9485 0.3040 -vn -0.0879 -0.9961 0.0000 -vn 0.7764 0.4241 0.4662 -vn -0.9954 -0.0963 0.0000 -vn -0.9789 -0.2044 0.0001 -vn -0.8942 -0.4476 0.0000 -vn -0.0451 0.5487 0.8348 -vn 0.0451 0.5487 0.8348 -vn 0.0159 0.1234 0.9922 -vn 0.1616 0.4595 0.8733 -vn -0.2826 0.1950 0.9392 -vn -0.2780 0.0300 0.9601 -vn -0.4587 0.0451 0.8874 -vn -0.1616 0.4595 0.8733 -vn -0.0159 0.1234 0.9922 -vn -0.4587 -0.0451 0.8874 -vn -0.0159 -0.1234 0.9922 -vn -0.2826 -0.1950 0.9392 -vn -0.1616 -0.4595 0.8733 -vn 0.0159 -0.1234 0.9922 -vn 0.1616 -0.4595 0.8733 -vn 0.2826 -0.1950 0.9392 -vn 0.2780 0.0300 0.9601 -vn 0.4587 0.0451 0.8874 -vn 0.2826 0.1950 0.9392 -vn 0.0325 -0.0036 0.9995 -vn 0.4587 -0.0451 0.8874 -vn -0.0451 -0.5487 0.8348 -vn -0.0890 -0.9485 0.3040 -vn 0.0451 -0.5487 0.8348 -vn 0.2780 -0.0300 0.9601 -vn -0.2780 -0.0300 0.9601 -vn -0.4678 0.8838 0.0000 -vn 0.0251 0.3078 -0.9511 -vn -0.0000 0.3186 0.9479 -vn 1.0000 -0.0038 0.0000 -vn 0.9789 -0.2044 0.0001 -vn -0.9947 -0.1027 0.0000 -s off -f 802/801/451 804/802/451 801/803/451 -f 803/804/452 806/805/452 804/802/452 -f 805/806/453 808/807/453 806/805/453 -f 807/808/454 801/803/454 808/807/454 -f 803/804/455 807/808/455 805/806/455 -f 810/809/451 812/810/451 809/811/451 -f 809/811/452 814/812/452 813/813/452 -f 813/813/456 817/814/456 815/815/456 -f 810/809/454 818/816/454 811/817/454 -f 813/813/456 810/809/456 809/811/456 -f 817/814/453 820/818/453 819/819/453 -f 813/813/456 822/820/456 816/821/456 -f 815/815/454 819/819/454 818/816/454 -f 821/822/452 824/823/452 822/820/452 -f 816/821/453 824/823/453 820/818/453 -f 813/813/451 823/824/451 821/822/451 -f 802/801/451 803/804/451 804/802/451 -f 803/804/452 805/806/452 806/805/452 -f 805/806/453 807/808/453 808/807/453 -f 807/808/454 802/801/454 801/803/454 -f 803/804/455 802/801/455 807/808/455 -f 810/809/451 811/817/451 812/810/451 -f 809/811/452 812/810/452 814/812/452 -f 813/813/456 816/821/456 817/814/456 -f 810/809/454 815/815/454 818/816/454 -f 813/813/456 815/815/456 810/809/456 -f 817/814/453 816/821/453 820/818/453 -f 813/813/456 821/822/456 822/820/456 -f 815/815/454 817/814/454 819/819/454 -f 821/822/452 823/824/452 824/823/452 -f 816/821/453 822/820/453 824/823/453 -f 813/813/451 814/812/451 823/824/451 -s 1 -f 825/825/455 828/826/457 831/827/455 -f 804/802/455 841/828/455 842/829/455 -f 845/830/458 847/831/459 844/832/460 -f 824/823/456 823/824/456 853/833/461 -f 848/834/456 811/817/456 818/816/456 -f 840/835/451 849/836/462 848/834/451 -f 846/837/463 858/838/464 847/831/459 -f 850/839/465 838/840/465 857/841/466 -f 850/839/465 839/842/462 838/840/465 -f 844/832/460 866/843/467 845/830/458 -f 837/844/468 867/845/469 868/846/470 -f 868/846/470 869/847/471 870/848/472 -f 870/848/472 871/849/473 872/850/474 -f 872/850/474 844/832/460 847/831/459 -f 851/851/475 874/852/476 852/853/477 -f 873/854/478 876/855/479 874/852/476 -f 875/856/480 878/857/481 876/855/479 -f 877/858/482 845/830/458 878/857/481 -f 838/840/483 868/846/470 864/859/484 -f 868/846/470 859/860/485 864/859/484 -f 870/848/472 860/861/486 859/860/485 -f 860/861/486 847/831/459 858/838/464 -f 850/839/487 873/854/478 851/851/475 -f 873/854/478 862/862/488 875/856/480 -f 875/856/480 861/863/489 877/858/482 -f 861/863/489 846/837/463 877/858/482 -f 866/843/467 878/857/481 845/830/458 -f 879/864/490 876/855/479 878/857/481 -f 880/865/491 874/852/476 876/855/479 -f 881/866/492 852/853/477 874/852/476 -f 883/867/493 884/868/494 882/869/495 -f 836/870/496 835/871/497 885/872/495 -f 891/873/498 892/874/498 888/875/499 -f 869/847/471 894/876/500 871/849/473 -f 871/849/473 865/877/501 844/832/460 -f 853/833/502 865/877/453 828/826/502 -f 827/878/503 855/879/503 854/880/503 -f 825/825/504 848/834/504 856/881/504 -f 826/882/505 856/881/505 855/879/505 -f 896/883/506 831/827/507 895/884/508 -f 897/885/509 843/886/510 842/829/511 -f 900/887/512 833/888/513 899/889/514 -f 897/885/509 841/828/515 900/887/512 -f 906/890/516 907/891/517 903/892/518 -f 899/889/514 832/893/519 896/883/506 -f 889/894/520 885/872/521 910/895/522 -f 835/871/453 834/896/523 911/897/523 -f 909/898/524 890/899/525 889/894/520 -f 895/884/508 830/900/526 913/901/526 -f 912/902/527 891/873/528 890/899/525 -f 916/903/529 893/904/530 915/905/531 -f 914/906/532 892/874/533 891/873/528 -f 898/907/534 834/896/523 843/886/510 -f 882/869/535 884/868/536 887/908/537 -f 913/901/526 830/900/526 829/909/451 -f 900/887/512 919/910/538 920/911/539 -f 919/910/538 904/912/540 920/911/539 -f 904/912/540 921/913/541 920/911/539 -f 921/913/541 900/887/512 920/911/539 -f 906/890/516 922/914/542 923/915/543 -f 923/915/543 895/884/508 913/901/544 -f 899/889/514 924/916/545 919/910/538 -f 919/910/538 924/916/545 905/917/546 -f 918/918/547 923/915/543 913/901/544 -f 923/915/543 907/891/517 906/890/516 -f 908/919/548 926/920/549 927/921/550 -f 926/920/549 915/905/531 927/921/550 -f 901/922/551 928/923/552 929/924/553 -f 929/924/553 912/902/527 909/898/524 -f 898/907/534 931/925/554 911/897/555 -f 930/926/556 903/892/518 931/925/554 -f 902/927/557 931/925/554 903/892/518 -f 931/925/554 910/895/558 911/897/555 -f 914/906/532 934/928/559 917/929/560 -f 933/930/561 908/919/548 934/928/559 -f 902/927/557 929/924/553 932/931/562 -f 932/931/562 909/898/524 910/895/558 -f 914/906/532 928/923/552 933/930/561 -f 933/930/561 928/923/552 901/922/551 -f 908/919/548 927/921/550 934/928/559 -f 927/921/550 917/929/560 934/928/559 -f 916/903/529 925/932/563 918/918/547 -f 926/920/549 907/891/517 925/932/563 -f 904/912/540 930/926/556 921/913/541 -f 930/926/556 897/885/509 921/913/541 -f 905/917/546 924/916/545 922/914/542 -f 922/914/542 896/883/506 895/884/508 -f 892/874/533 915/905/531 893/904/530 -f 833/888/455 806/805/455 808/807/455 -f 825/825/455 826/882/455 827/878/455 -f 833/888/455 808/807/455 825/825/455 -f 832/893/455 833/888/455 825/825/455 -f 825/825/455 827/878/455 828/826/457 -f 828/826/457 829/909/497 830/900/455 -f 831/827/455 832/893/455 825/825/455 -f 828/826/457 830/900/455 831/827/455 -f 834/896/455 835/871/497 836/870/496 -f 837/844/468 838/840/483 804/802/455 -f 838/840/483 839/842/455 804/802/455 -f 834/896/455 836/870/496 843/886/455 -f 836/870/496 837/844/468 804/802/455 -f 843/886/455 836/870/496 804/802/455 -f 839/842/455 840/835/455 804/802/455 -f 840/835/455 825/825/455 801/803/455 -f 825/825/455 808/807/455 801/803/455 -f 842/829/455 843/886/455 804/802/455 -f 806/805/455 833/888/455 841/828/455 -f 804/802/455 806/805/455 841/828/455 -f 840/835/455 801/803/455 804/802/455 -f 845/830/458 846/837/463 847/831/459 -f 812/810/456 811/817/456 848/834/456 -f 848/834/456 849/836/456 812/810/456 -f 849/836/456 850/839/487 812/810/456 -f 850/839/487 851/851/475 812/810/456 -f 823/824/456 814/812/456 852/853/477 -f 814/812/456 812/810/456 852/853/477 -f 812/810/456 851/851/475 852/853/477 -f 853/833/461 854/880/456 856/881/456 -f 854/880/456 855/879/456 856/881/456 -f 856/881/456 819/819/456 820/818/456 -f 823/824/456 852/853/477 853/833/461 -f 856/881/456 820/818/456 853/833/461 -f 820/818/456 824/823/456 853/833/461 -f 818/816/456 819/819/456 856/881/456 -f 856/881/456 848/834/456 818/816/456 -f 840/835/451 839/842/462 849/836/462 -f 846/837/463 857/841/466 858/838/464 -f 864/859/564 859/860/485 858/838/464 -f 859/860/485 860/861/486 858/838/464 -f 858/838/464 857/841/466 838/840/465 -f 864/859/564 858/838/464 838/840/465 -f 857/841/466 861/863/489 862/862/488 -f 862/862/488 863/933/564 857/841/466 -f 863/933/564 850/839/465 857/841/466 -f 850/839/465 849/836/462 839/842/462 -f 844/832/460 865/877/501 866/843/467 -f 837/844/468 836/870/496 867/845/469 -f 868/846/470 867/845/469 869/847/471 -f 870/848/472 869/847/471 871/849/473 -f 872/850/474 871/849/473 844/832/460 -f 851/851/475 873/854/478 874/852/476 -f 873/854/478 875/856/480 876/855/479 -f 875/856/480 877/858/482 878/857/481 -f 877/858/482 846/837/463 845/830/458 -f 838/840/483 837/844/468 868/846/470 -f 868/846/470 870/848/472 859/860/485 -f 870/848/472 872/850/474 860/861/486 -f 860/861/486 872/850/474 847/831/459 -f 850/839/487 863/933/565 873/854/478 -f 873/854/478 863/933/565 862/862/488 -f 875/856/480 862/862/488 861/863/489 -f 861/863/489 857/841/466 846/837/463 -f 866/843/467 879/864/490 878/857/481 -f 879/864/490 880/865/491 876/855/479 -f 880/865/491 881/866/492 874/852/476 -f 881/866/492 853/833/461 852/853/477 -f 882/869/495 829/909/497 828/826/457 -f 828/826/457 883/867/493 882/869/495 -f 885/872/495 886/934/494 867/845/469 -f 867/845/469 836/870/496 885/872/495 -f 887/908/566 884/868/494 888/875/499 -f 884/868/494 883/867/493 888/875/499 -f 869/847/471 867/845/469 889/894/566 -f 867/845/469 886/934/494 889/894/566 -f 893/904/566 887/908/566 888/875/499 -f 869/847/471 889/894/566 890/899/566 -f 869/847/471 890/899/566 891/873/498 -f 892/874/498 893/904/566 888/875/499 -f 869/847/471 891/873/498 888/875/499 -f 869/847/471 888/875/499 894/876/500 -f 871/849/473 894/876/500 865/877/501 -f 894/876/453 888/875/453 865/877/453 -f 888/875/453 883/867/453 865/877/453 -f 883/867/453 828/826/502 865/877/453 -f 828/826/502 827/878/567 853/833/502 -f 827/878/567 854/880/567 853/833/502 -f 853/833/502 881/866/453 866/843/453 -f 881/866/453 880/865/453 866/843/453 -f 880/865/453 879/864/453 866/843/453 -f 866/843/453 865/877/453 853/833/502 -f 827/878/503 826/882/503 855/879/503 -f 825/825/504 840/835/504 848/834/504 -f 826/882/505 825/825/505 856/881/505 -f 896/883/506 832/893/519 831/827/507 -f 897/885/509 898/907/534 843/886/510 -f 900/887/512 841/828/515 833/888/513 -f 897/885/509 842/829/511 841/828/515 -f 908/919/548 901/922/551 902/927/557 -f 902/927/557 903/892/518 907/891/517 -f 903/892/518 904/912/540 906/890/516 -f 902/927/557 907/891/517 908/919/548 -f 904/912/540 905/917/546 906/890/516 -f 899/889/514 833/888/513 832/893/519 -f 910/895/522 909/898/524 889/894/520 -f 889/894/520 886/934/568 885/872/521 -f 911/897/523 910/895/522 835/871/453 -f 910/895/522 885/872/521 835/871/453 -f 909/898/524 912/902/527 890/899/525 -f 895/884/508 831/827/507 830/900/526 -f 912/902/527 914/906/532 891/873/528 -f 916/903/529 887/908/537 893/904/530 -f 914/906/532 917/929/560 892/874/533 -f 898/907/534 911/897/523 834/896/523 -f 887/908/537 916/903/529 918/918/569 -f 918/918/569 882/869/535 887/908/537 -f 882/869/535 918/918/569 829/909/451 -f 918/918/569 913/901/526 829/909/451 -f 900/887/512 899/889/514 919/910/538 -f 919/910/538 905/917/546 904/912/540 -f 921/913/541 897/885/509 900/887/512 -f 906/890/516 905/917/546 922/914/542 -f 923/915/543 922/914/542 895/884/508 -f 899/889/514 896/883/506 924/916/545 -f 918/918/547 925/932/563 923/915/543 -f 923/915/543 925/932/563 907/891/517 -f 926/920/549 916/903/529 915/905/531 -f 929/924/553 928/923/552 912/902/527 -f 898/907/534 930/926/556 931/925/554 -f 930/926/556 904/912/540 903/892/518 -f 902/927/557 932/931/562 931/925/554 -f 931/925/554 932/931/562 910/895/558 -f 914/906/532 933/930/561 934/928/559 -f 933/930/561 901/922/551 908/919/548 -f 902/927/557 901/922/551 929/924/553 -f 932/931/562 929/924/553 909/898/524 -f 914/906/532 912/902/527 928/923/552 -f 927/921/550 915/905/531 917/929/560 -f 916/903/529 926/920/549 925/932/563 -f 926/920/549 908/919/548 907/891/517 -f 930/926/556 898/907/534 897/885/509 -f 922/914/542 924/916/545 896/883/506 -f 892/874/533 917/929/560 915/905/531 -o Plane -v -1.538719 0.517962 -0.152938 -v -1.539156 0.544138 -0.137431 -v -1.539476 0.563301 -0.095064 -v -1.539593 0.570315 -0.037191 -v -1.539593 0.570315 0.038415 -v -1.539476 0.563301 0.096289 -v -1.539156 0.544138 0.138655 -v -1.538719 0.517962 0.154162 -v -1.533876 0.227849 0.154162 -v -1.533876 0.227849 -0.152938 -v -2.094905 0.109525 0.012483 -v -2.094905 0.109525 -0.011259 -v -2.150966 0.036699 -0.011259 -v -2.150966 0.036699 0.012483 -v -2.023875 0.187910 0.012483 -v -2.023875 0.187910 -0.011259 -v -2.264097 -0.213929 0.012483 -v -2.264255 -0.203596 0.012483 -v -2.264255 -0.203596 -0.011259 -v -2.264097 -0.213929 -0.011259 -v -1.797079 0.059583 0.013017 -v -1.797079 0.059583 -0.011793 -v -1.765046 0.100282 -0.011892 -v -1.765046 0.100282 0.013116 -v -1.762607 0.447951 -0.088740 -v -1.760241 0.429221 -0.077230 -v -1.762832 0.430912 -0.014565 -v -1.766291 0.457644 -0.023152 -v -1.956909 0.250853 0.012483 -v -1.799493 0.360493 0.012483 -v -1.799493 0.360493 -0.011259 -v -1.956909 0.250853 -0.011259 -v -2.241662 -0.130294 0.012483 -v -2.241662 -0.130294 -0.011259 -v -2.252959 -0.152255 -0.011259 -v -2.252959 -0.152255 0.012483 -v -2.261228 -0.179086 0.012483 -v -2.261228 -0.179086 -0.011259 -v -1.785496 0.376760 0.012483 -v -1.785496 0.376760 -0.011259 -v -1.955881 -0.183903 -0.111561 -v -1.935984 -0.185223 -0.069363 -v -1.924661 -0.185223 -0.069363 -v -1.944557 -0.183903 -0.111561 -v -1.755752 0.462296 0.096289 -v -1.692113 0.501026 0.096289 -v -1.734405 0.485570 0.038415 -v -1.758670 0.470835 0.038415 -v -1.820971 0.021307 0.012961 -v -1.820971 0.021307 -0.011736 -v -1.766037 0.413383 0.011434 -v -1.766043 0.413356 -0.011069 -v -1.688728 0.510485 0.038415 -v -1.634369 0.535784 0.038415 -v -1.634369 0.535784 -0.037191 -v -1.688728 0.510485 -0.037191 -v -1.734405 0.485570 -0.037191 -v -1.735899 0.380985 0.141134 -v -1.738122 0.393971 0.148146 -v -1.752230 0.425226 0.132688 -v -1.750383 0.410947 0.124334 -v -1.607360 0.194290 -0.018635 -v -1.607360 0.194290 0.019860 -v -1.641579 0.188526 0.019117 -v -1.641579 0.188526 0.000612 -v -1.641579 0.188526 -0.017893 -v -1.733455 0.132498 -0.012042 -v -1.733455 0.132498 0.013266 -v -1.707226 0.155364 0.013479 -v -1.707226 0.155364 -0.012254 -v -1.678132 0.174279 -0.012546 -v -1.678132 0.174279 0.013771 -v -1.644519 0.187380 -0.012941 -v -1.644519 0.187380 0.014166 -v -1.575692 0.195123 0.154162 -v -1.607360 0.194290 0.154162 -v -1.607360 0.194290 0.109395 -v -1.607360 0.194290 0.064627 -v -1.607360 0.194290 -0.063403 -v -1.607360 0.194290 -0.108170 -v -1.607360 0.194290 -0.152938 -v -1.575692 0.195123 -0.152938 -v -1.733274 0.410681 0.154162 -v -1.736517 0.397386 0.154162 -v -1.662416 0.234366 0.154162 -v -1.568848 0.507794 0.154162 -v -1.614762 0.489887 0.154162 -v -1.666237 0.465930 0.154162 -v -1.585895 0.554689 -0.037191 -v -1.585895 0.554689 0.038415 -v -1.677482 0.488208 0.138655 -v -1.746489 0.440323 0.138655 -v -1.762824 0.428644 0.014930 -v -1.762496 0.429258 0.000612 -v -1.641979 0.188370 -0.014572 -v -1.643078 0.187942 -0.013588 -v -1.666578 0.232641 0.141182 -v -1.735431 0.357945 0.131601 -v -1.676320 0.228796 0.131678 -v -1.688855 0.223882 -0.126973 -v -1.738139 0.339948 -0.126890 -v -1.735431 0.357945 -0.130376 -v -1.676320 0.228796 -0.130453 -v -1.666237 0.465930 -0.152938 -v -1.733283 0.410674 -0.152938 -v -1.746708 0.440289 -0.137362 -v -1.677482 0.488208 -0.137431 -v -1.762832 0.430912 0.015790 -v -1.765303 0.457946 0.023719 -v -1.752361 0.425246 -0.131438 -v -1.750383 0.410947 -0.123109 -v -1.762824 0.428644 -0.013705 -v -1.641979 0.188370 0.015797 -v -1.643078 0.187942 0.014812 -v -1.735899 0.380985 -0.139910 -v -1.666578 0.232641 -0.139957 -v -1.738139 0.339948 0.128114 -v -1.688855 0.223882 0.128198 -v -1.969466 0.146669 0.128229 -v -1.905013 0.207250 0.128229 -v -1.940354 0.232183 0.112723 -v -2.006064 0.170421 0.112723 -v -1.952473 0.245850 0.070357 -v -2.019103 0.183224 0.070357 -v -1.905013 0.207250 -0.127005 -v -1.969466 0.146669 -0.127005 -v -2.006064 0.170421 -0.111498 -v -1.940354 0.232183 -0.111498 -v -2.019103 0.183224 -0.069132 -v -1.952473 0.245850 -0.069132 -v -2.037810 0.071248 0.128229 -v -2.075751 0.093518 0.112722 -v -2.089773 0.105235 0.070357 -v -2.037810 0.071248 -0.127004 -v -2.075751 0.093518 -0.111498 -v -2.089773 0.105235 -0.069132 -v -2.091766 0.001156 0.128228 -v -2.130760 0.022059 0.112722 -v -2.145552 0.032777 0.070357 -v -2.091767 0.001156 -0.127004 -v -2.130760 0.022059 -0.111498 -v -2.145552 0.032776 -0.069132 -v -2.206585 -0.171157 0.128231 -v -2.198706 -0.155841 0.128228 -v -2.220184 -0.143067 0.112722 -v -2.229772 -0.161706 0.112723 -v -2.235907 -0.133717 0.070357 -v -2.246746 -0.154788 0.070357 -v -2.198706 -0.155841 -0.127004 -v -2.206585 -0.171157 -0.127006 -v -2.229772 -0.161706 -0.111499 -v -2.220184 -0.143067 -0.111498 -v -2.246746 -0.154788 -0.069132 -v -2.235907 -0.133717 -0.069132 -v -2.212260 -0.189571 0.128231 -v -2.236744 -0.184328 0.112723 -v -2.254668 -0.180491 0.070357 -v -2.212260 -0.189571 -0.127006 -v -2.236744 -0.184328 -0.111499 -v -2.254668 -0.180491 -0.069132 -v -2.214371 -0.206665 0.128226 -v -2.239313 -0.205130 0.112721 -v -2.257572 -0.204007 0.070356 -v -2.214371 -0.206665 -0.127002 -v -2.239313 -0.205130 -0.111497 -v -2.257572 -0.204007 -0.069132 -v -2.215671 -0.225906 0.128231 -v -2.239884 -0.219918 0.112723 -v -2.257609 -0.215534 0.070357 -v -2.215671 -0.225906 -0.127006 -v -2.239884 -0.219918 -0.111499 -v -2.257609 -0.215534 -0.069132 -v -1.764352 0.324851 0.128230 -v -1.752502 0.374810 0.112464 -v -1.781922 0.342672 0.112723 -v -1.775645 0.377964 0.070522 -v -1.794785 0.355718 0.070357 -v -1.764352 0.324851 -0.127004 -v -1.781922 0.342672 -0.111498 -v -1.752502 0.374806 -0.111355 -v -1.794785 0.355718 -0.069132 -v -1.775645 0.377964 -0.069298 -v -1.837957 0.088301 0.128233 -v -1.864320 0.046066 0.128233 -v -1.842645 0.033687 0.112789 -v -1.817518 0.073942 0.112796 -v -1.826778 0.024625 0.070596 -v -1.802556 0.063431 0.070624 -v -1.864320 0.046066 -0.127009 -v -1.837957 0.088301 -0.127009 -v -1.817518 0.073942 -0.111572 -v -1.842645 0.033687 -0.111564 -v -1.802556 0.063431 -0.069400 -v -1.826778 0.024625 -0.069371 -v -1.802565 0.133269 0.128232 -v -1.783805 0.116775 0.112809 -v -1.770073 0.104701 0.070674 -v -1.802565 0.133269 -0.127008 -v -1.783805 0.116775 -0.111585 -v -1.770073 0.104701 -0.069449 -v -1.767706 0.168817 0.128232 -v -1.750581 0.150657 0.112829 -v -1.738044 0.137363 0.070749 -v -1.767706 0.168817 -0.127008 -v -1.750581 0.150657 -0.111605 -v -1.738044 0.137363 -0.069524 -v -1.928702 -0.185706 -0.011721 -v -1.917378 -0.185706 -0.011721 -v -1.983060 -0.182100 -0.127007 -v -1.971736 -0.182100 -0.127007 -v -1.994269 -0.225399 -0.127006 -v -1.700124 0.219480 -0.127006 -v -1.737359 0.195273 -0.127007 -v -1.700124 0.219481 0.128231 -v -1.737359 0.195273 0.128231 -v -1.722292 0.175319 0.112857 -v -1.689128 0.196880 0.112896 -v -1.711263 0.160711 0.070855 -v -1.681079 0.180335 0.071001 -v -1.689128 0.196880 -0.111671 -v -1.722292 0.175319 -0.111633 -v -1.681079 0.180335 -0.069776 -v -1.711263 0.160711 -0.069630 -v -1.662416 0.234366 -0.152938 -v -1.651997 0.211446 -0.134845 -v -1.655489 0.210034 -0.123164 -v -1.644370 0.194668 -0.085415 -v -1.646486 0.193829 -0.077270 -v -1.762713 0.401689 0.069756 -v -1.736517 0.397386 -0.152938 -v -1.614763 0.489887 -0.152938 -v -1.568848 0.507794 -0.152938 -v -1.762079 0.448031 0.090168 -v -1.760241 0.429221 0.078455 -v -1.738147 0.394115 -0.146999 -v -1.760212 0.470543 -0.036751 -v -1.577372 0.531241 0.138655 -v -1.624566 0.512836 0.138655 -v -1.583611 0.548406 0.096289 -v -1.631743 0.529635 0.096289 -v -1.624566 0.512836 -0.137431 -v -1.577372 0.531241 -0.137431 -v -1.631743 0.529635 -0.095064 -v -1.583611 0.548406 -0.095064 -v -1.685715 0.504516 0.096289 -v -1.685715 0.504516 -0.095064 -v -1.692113 0.501026 -0.095064 -v -1.651997 0.211446 0.136070 -v -1.644370 0.194668 0.086640 -v -1.655489 0.210034 0.124389 -v -1.646486 0.193829 0.078495 -v -1.762716 0.401675 -0.068961 -v -1.664217 0.206608 0.116031 -v -1.652049 0.191655 0.073255 -v -1.675743 0.202101 0.112932 -v -1.659515 0.188741 0.071194 -v -1.664217 0.206608 -0.114806 -v -1.675743 0.202101 -0.111708 -v -1.652049 0.191655 -0.072030 -v -1.659515 0.188741 -0.069969 -v -1.750106 0.391463 0.115955 -v -1.760133 0.417340 0.073251 -v -1.756545 0.462186 -0.094811 -v -1.750106 0.391463 -0.114731 -v -1.760133 0.417340 -0.072026 -v -1.928702 -0.185706 0.012945 -v -1.917378 -0.185706 0.012945 -v -1.955881 -0.183903 0.112786 -v -1.983060 -0.182100 0.128231 -v -1.971736 -0.182100 0.128231 -v -1.944557 -0.183903 0.112786 -v -1.935984 -0.185223 0.070588 -v -1.937822 -0.224991 0.012942 -v -1.937822 -0.224991 -0.011718 -v -1.994269 -0.225399 0.128231 -v -1.966046 -0.225195 0.112785 -v -1.945385 -0.225046 0.070586 -v -1.924661 -0.185223 0.070588 -v -1.945385 -0.225046 -0.069362 -v -1.966046 -0.225195 -0.111560 -v -1.982661 0.134956 0.123056 -v -1.973533 0.136958 0.123056 -v -1.971152 0.127921 0.123056 -v -1.971734 0.120445 0.123056 -v -2.156088 -0.181151 0.123056 -v -2.162477 -0.185078 0.123056 -v -2.171605 -0.187080 0.123056 -v -2.173986 -0.178043 0.123056 -v -2.173404 -0.170567 0.123056 -v -1.989050 0.131030 0.123056 -v -1.971152 0.127921 0.136146 -v -1.971734 0.120445 0.136146 -v -1.973533 0.136958 0.136146 -v -1.982661 0.134956 0.136146 -v -1.989050 0.131030 0.136146 -v -2.173404 -0.170567 0.136145 -v -2.173986 -0.178043 0.136145 -v -2.171605 -0.187080 0.136145 -v -2.162477 -0.185078 0.136145 -v -2.156088 -0.181151 0.136145 -v -1.939820 0.130753 0.123056 -v -1.930677 0.132780 0.123056 -v -1.928312 0.123718 0.123056 -v -1.928909 0.116215 0.123056 -v -2.113168 -0.185225 0.123056 -v -2.119573 -0.189178 0.123056 -v -2.128717 -0.191205 0.123056 -v -2.131082 -0.182143 0.123056 -v -2.130484 -0.174640 0.123056 -v -1.946226 0.126799 0.123056 -v -1.928312 0.123718 0.136146 -v -1.928909 0.116215 0.136146 -v -1.930677 0.132780 0.136146 -v -1.939820 0.130753 0.136146 -v -1.946226 0.126799 0.136146 -v -2.130484 -0.174640 0.136145 -v -2.131082 -0.182143 0.136145 -v -2.128717 -0.191205 0.136145 -v -2.119573 -0.189178 0.136145 -v -2.113168 -0.185225 0.136145 -v -1.849913 0.126959 0.123056 -v -1.840757 0.129007 0.123056 -v -1.838404 0.119925 0.123056 -v -1.839015 0.112400 0.123056 -v -2.023198 -0.188916 0.123056 -v -2.029616 -0.192890 0.123056 -v -2.038772 -0.194937 0.123056 -v -2.041124 -0.185855 0.123056 -v -2.040514 -0.178331 0.123056 -v -1.856331 0.122985 0.123056 -v -1.838404 0.119925 0.136145 -v -1.839015 0.112400 0.136145 -v -1.840757 0.129007 0.136145 -v -1.849913 0.126959 0.136145 -v -1.856331 0.122985 0.136145 -v -2.040514 -0.178331 0.136145 -v -2.041124 -0.185855 0.136145 -v -2.038772 -0.194937 0.136145 -v -2.029616 -0.192890 0.136145 -v -2.023198 -0.188916 0.136145 -v -1.893210 0.130504 0.123056 -v -1.884055 0.132552 0.123056 -v -1.881702 0.123470 0.123056 -v -1.882312 0.115945 0.123056 -v -2.066495 -0.185371 0.123056 -v -2.072913 -0.189345 0.123056 -v -2.082069 -0.191392 0.123056 -v -2.084422 -0.182310 0.123056 -v -2.083811 -0.174786 0.123056 -v -1.899628 0.126530 0.123056 -v -1.881702 0.123470 0.136145 -v -1.882312 0.115945 0.136145 -v -1.884055 0.132552 0.136145 -v -1.893210 0.130504 0.136145 -v -1.899628 0.126530 0.136145 -v -2.083811 -0.174786 0.136145 -v -2.084422 -0.182310 0.136145 -v -2.082069 -0.191392 0.136145 -v -2.072913 -0.189345 0.136145 -v -2.066495 -0.185371 0.136145 -v -1.982661 0.134956 -0.134921 -v -1.973533 0.136958 -0.134921 -v -1.971152 0.127921 -0.134921 -v -1.971734 0.120445 -0.134921 -v -2.156088 -0.181151 -0.134921 -v -2.162477 -0.185078 -0.134921 -v -2.171605 -0.187080 -0.134921 -v -2.173986 -0.178043 -0.134921 -v -2.173404 -0.170567 -0.134921 -v -1.989050 0.131030 -0.134921 -v -1.971152 0.127921 -0.121832 -v -1.971734 0.120445 -0.121832 -v -1.973533 0.136958 -0.121832 -v -1.982661 0.134956 -0.121832 -v -1.989050 0.131030 -0.121832 -v -2.173404 -0.170567 -0.121832 -v -2.173986 -0.178043 -0.121832 -v -2.171605 -0.187080 -0.121832 -v -2.162477 -0.185078 -0.121832 -v -2.156088 -0.181151 -0.121832 -v -1.939820 0.130753 -0.134921 -v -1.930677 0.132780 -0.134921 -v -1.928312 0.123718 -0.134921 -v -1.928909 0.116215 -0.134921 -v -2.113168 -0.185225 -0.134921 -v -2.119573 -0.189178 -0.134921 -v -2.128717 -0.191205 -0.134921 -v -2.131082 -0.182143 -0.134921 -v -2.130484 -0.174640 -0.134921 -v -1.946226 0.126800 -0.134921 -v -1.928312 0.123718 -0.121832 -v -1.928909 0.116215 -0.121832 -v -1.930677 0.132780 -0.121832 -v -1.939820 0.130753 -0.121832 -v -1.946226 0.126800 -0.121832 -v -2.130484 -0.174640 -0.121832 -v -2.131082 -0.182143 -0.121832 -v -2.128717 -0.191205 -0.121832 -v -2.119573 -0.189178 -0.121832 -v -2.113168 -0.185225 -0.121832 -v -1.849913 0.126959 -0.134921 -v -1.840757 0.129007 -0.134921 -v -1.838404 0.119925 -0.134921 -v -1.839015 0.112400 -0.134921 -v -2.023198 -0.188916 -0.134921 -v -2.029616 -0.192890 -0.134921 -v -2.038772 -0.194937 -0.134921 -v -2.041124 -0.185855 -0.134921 -v -2.040514 -0.178331 -0.134921 -v -1.856331 0.122985 -0.134921 -v -1.838404 0.119925 -0.121832 -v -1.839015 0.112400 -0.121832 -v -1.840757 0.129007 -0.121832 -v -1.849913 0.126959 -0.121832 -v -1.856331 0.122985 -0.121832 -v -2.040514 -0.178331 -0.121832 -v -2.041124 -0.185855 -0.121832 -v -2.038772 -0.194937 -0.121832 -v -2.029616 -0.192890 -0.121832 -v -2.023198 -0.188916 -0.121832 -v -1.893210 0.130504 -0.134921 -v -1.884055 0.132552 -0.134921 -v -1.881702 0.123470 -0.134921 -v -1.882312 0.115945 -0.134921 -v -2.066495 -0.185371 -0.134921 -v -2.072913 -0.189345 -0.134921 -v -2.082069 -0.191392 -0.134921 -v -2.084422 -0.182310 -0.134921 -v -2.083811 -0.174786 -0.134921 -v -1.899628 0.126530 -0.134921 -v -1.881702 0.123470 -0.121832 -v -1.882312 0.115945 -0.121832 -v -1.884055 0.132552 -0.121832 -v -1.893210 0.130504 -0.121832 -v -1.899628 0.126530 -0.121832 -v -2.083811 -0.174786 -0.121832 -v -2.084422 -0.182310 -0.121832 -v -2.082069 -0.191392 -0.121832 -v -2.072913 -0.189345 -0.121832 -v -2.066495 -0.185371 -0.121832 -vt 0.628329 0.321805 +vt 0.176155 0.159372 +vt 0.351182 0.159372 +vt 0.176155 0.157238 +vt 0.286086 0.114179 +vt 0.289470 0.123449 +vt 0.206319 0.123491 +vt 0.199684 0.136404 +vt 0.188460 0.148679 +vt 0.351182 0.157119 +vt 0.207246 0.118405 +vt 0.302205 0.137250 +vt 0.326572 0.148575 +vt 0.289117 0.138628 +vt 0.294854 0.136252 +vt 0.286775 0.135968 +vt 0.220441 0.149560 +vt 0.214194 0.146627 +vt 0.220638 0.106650 +vt 0.220441 0.110047 +vt 0.228285 0.109317 +vt 0.273140 0.106307 +vt 0.282061 0.108308 +vt 0.210999 0.110994 +vt 0.266968 0.150290 +vt 0.294854 0.152477 +vt 0.286775 0.123640 +vt 0.208478 0.123640 +vt 0.208478 0.135968 +vt 0.266968 0.109317 +vt 0.228285 0.150290 +vt 0.214194 0.112981 +vt 0.209799 0.117931 +vt 0.209799 0.141676 +vt 0.285454 0.141676 +vt 0.281058 0.146627 +vt 0.274811 0.149560 +vt 0.274811 0.110047 +vt 0.281058 0.112981 +vt 0.285454 0.117931 +vt 0.300590 0.150101 +vt 0.302967 0.144365 +vt 0.300590 0.138628 +vt 0.299187 0.138047 +vt 0.287699 0.142053 +vt 0.286741 0.144365 +vt 0.289117 0.150101 +vt 0.394791 0.688361 +vt 0.394791 0.696196 +vt 0.588350 0.696196 +vt 0.588350 0.696221 +vt 0.597168 0.696196 +vt 0.597168 0.688361 +vt 0.588350 0.688361 +vt 0.588350 0.703650 +vt 0.597168 0.703650 +vt 0.597168 0.696221 +vt 0.486610 0.403096 +vt 0.493668 0.400172 +vt 0.496592 0.393114 +vt 0.493668 0.386056 +vt 0.486610 0.383132 +vt 0.479552 0.386056 +vt 0.476628 0.393114 +vt 0.479552 0.400172 vt 0.628329 0.321805 vt 0.723547 0.410717 vt 0.451913 0.450017 vt 0.417065 0.447278 -vt 0.451913 0.450017 -vt 0.492148 0.449947 vt 0.492148 0.449947 vt 0.320353 0.418005 vt 0.317476 0.415326 -vt 0.317476 0.415326 vt 0.513735 0.353212 vt 0.533389 0.354544 -vt 0.513735 0.353212 vt 0.627472 0.437038 vt 0.633953 0.445991 vt 0.632155 0.442480 vt 0.598064 0.430599 vt 0.526987 0.447088 -vt 0.526987 0.447088 vt 0.346805 0.430312 vt 0.337725 0.427903 -vt 0.346805 0.430312 -vt 0.328043 0.423398 vt 0.328043 0.423398 vt 0.606224 0.430794 -vt 0.606224 0.430794 -vt 0.337725 0.427903 vt 0.409219 0.330020 vt 0.407407 0.332776 vt 0.404520 0.335973 @@ -4763,154 +3182,83 @@ vt 0.637952 0.444202 vt 0.649964 0.444108 vt 0.639619 0.447202 vt 0.496840 0.350199 -vt 0.496840 0.350199 vt 0.621523 0.434636 vt 0.689639 0.428669 vt 0.668641 0.437565 -vt 0.668641 0.437565 -vt 0.649964 0.444108 vt 0.623159 0.421808 vt 0.624826 0.429596 vt 0.620060 0.417870 vt 0.600123 0.333994 vt 0.589773 0.342184 -vt 0.589773 0.342184 vt 0.550537 0.353838 -vt 0.550537 0.353838 -vt 0.563678 0.352263 -vt 0.576433 0.348871 vt 0.563678 0.352263 vt 0.576433 0.348871 vt 0.588701 0.342722 -vt 0.600123 0.333994 -vt 0.600123 0.333994 vt 0.608431 0.325267 vt 0.681681 0.411435 vt 0.661797 0.419859 -vt 0.608431 0.325267 vt 0.707333 0.419804 -vt 0.723547 0.410717 -vt 0.707333 0.419804 -vt 0.689639 0.428669 vt 0.634111 0.435986 vt 0.629112 0.424699 vt 0.626650 0.437620 vt 0.626907 0.437684 vt 0.589627 0.342258 -vt 0.589773 0.342184 vt 0.589226 0.342459 vt 0.595854 0.360487 vt 0.613675 0.411865 vt 0.592285 0.362257 vt 0.607904 0.408042 -vt 0.592285 0.362257 vt 0.587703 0.364543 vt 0.621514 0.434631 -vt 0.661797 0.419859 vt 0.634046 0.436039 vt 0.665219 0.428712 vt 0.627288 0.438200 vt 0.634290 0.445789 -vt 0.624826 0.429596 vt 0.628358 0.433800 -vt 0.626650 0.437620 -vt 0.627288 0.438200 -vt 0.589627 0.342258 -vt 0.589226 0.342459 -vt 0.588701 0.342722 -vt 0.613675 0.411865 -vt 0.595854 0.360487 -vt 0.607904 0.408042 -vt 0.587703 0.364543 vt 0.494375 0.424075 vt 0.525936 0.437655 vt 0.491751 0.440461 vt 0.526705 0.444560 vt 0.492041 0.447405 -vt 0.494375 0.424075 -vt 0.525936 0.437655 vt 0.527906 0.421323 -vt 0.491751 0.440461 -vt 0.526705 0.444560 -vt 0.492041 0.447405 vt 0.455663 0.424142 vt 0.452277 0.440529 vt 0.452011 0.447475 -vt 0.455663 0.424142 -vt 0.452277 0.440529 vt 0.422122 0.421506 vt 0.418083 0.437842 vt 0.417338 0.444750 -vt 0.422122 0.421506 -vt 0.417338 0.444750 -vt 0.452011 0.447475 -vt 0.417065 0.447278 vt 0.344211 0.409994 vt 0.348674 0.420993 vt 0.340968 0.418949 vt 0.347305 0.427815 vt 0.338594 0.425504 -vt 0.344211 0.409994 -vt 0.348674 0.420993 vt 0.350543 0.411674 -vt 0.340968 0.418949 -vt 0.347305 0.427815 -vt 0.338594 0.425504 vt 0.332805 0.415150 vt 0.337566 0.406902 vt 0.329319 0.421188 -vt 0.332805 0.415150 vt 0.326277 0.410573 vt 0.332202 0.403141 vt 0.321940 0.416013 -vt 0.337566 0.406902 -vt 0.326277 0.410573 -vt 0.321940 0.416013 -vt 0.329319 0.421188 -vt 0.320353 0.418005 vt 0.321958 0.406964 vt 0.326439 0.398603 vt 0.318677 0.413085 -vt 0.332202 0.403141 -vt 0.321958 0.406964 -vt 0.318677 0.413085 -vt 0.350543 0.411674 -vt 0.418083 0.437842 vt 0.597512 0.421096 vt 0.596961 0.411593 vt 0.609075 0.428320 vt 0.597916 0.428052 -vt 0.597512 0.421096 vt 0.614083 0.420982 -vt 0.609075 0.428320 -vt 0.597916 0.428052 -vt 0.527906 0.421323 -vt 0.596961 0.411593 -vt 0.598064 0.430599 vt 0.492779 0.368748 vt 0.512578 0.362642 vt 0.511421 0.372072 vt 0.494809 0.359474 vt 0.513425 0.355739 vt 0.496296 0.352684 -vt 0.492779 0.368748 -vt 0.512578 0.362642 -vt 0.494809 0.359474 -vt 0.513425 0.355739 -vt 0.496296 0.352684 vt 0.533263 0.364044 vt 0.533137 0.373544 vt 0.533356 0.357089 -vt 0.511421 0.372072 -vt 0.533263 0.364044 -vt 0.533356 0.357089 -vt 0.533389 0.354544 vt 0.552058 0.372765 vt 0.551297 0.363302 vt 0.550740 0.356374 -vt 0.552058 0.372765 -vt 0.533137 0.373544 -vt 0.551297 0.363302 vt 0.410939 0.327841 vt 0.412106 0.326823 vt 0.398101 0.344105 @@ -4920,1443 +3268,2538 @@ vt 0.583588 0.366602 vt 0.565470 0.361603 vt 0.577392 0.351247 vt 0.564158 0.354765 -vt 0.567262 0.370942 -vt 0.580011 0.357736 vt 0.565470 0.361602 -vt 0.577392 0.351247 -vt 0.564158 0.354765 vt 0.593588 0.350968 vt 0.592299 0.351594 vt 0.590796 0.344538 vt 0.590020 0.344921 -vt 0.550740 0.356374 vt 0.619069 0.430717 vt 0.614084 0.420983 -vt 0.600123 0.333994 vt 0.597402 0.359752 vt 0.632313 0.442352 -vt 0.627472 0.437038 vt 0.623193 0.421852 vt 0.639144 0.447563 vt 0.702887 0.411421 vt 0.685660 0.420052 vt 0.706141 0.417558 vt 0.688573 0.426360 -vt 0.681681 0.411435 -vt 0.702887 0.411421 vt 0.698440 0.403038 -vt 0.685660 0.420052 -vt 0.706141 0.417558 -vt 0.688573 0.426360 -vt 0.665219 0.428712 vt 0.667724 0.435193 vt 0.665108 0.436110 -vt 0.665108 0.436110 -vt 0.667724 0.435193 vt 0.721597 0.408896 vt 0.716269 0.403921 vt 0.708991 0.397125 -vt 0.708991 0.397125 -vt 0.698440 0.403038 -vt 0.716269 0.403921 -vt 0.721597 0.408896 -vt 0.600123 0.333994 -vt 0.593588 0.350968 -vt 0.600123 0.333994 -vt 0.590796 0.344538 -vt 0.600123 0.333994 -vt 0.597402 0.359752 -vt 0.592299 0.351594 -vt 0.590020 0.344921 vt 0.619065 0.430715 vt 0.589107 0.353184 vt 0.587987 0.345938 vt 0.584897 0.355289 vt 0.585262 0.347302 -vt 0.589107 0.353184 -vt 0.584897 0.355289 vt 0.587987 0.345937 -vt 0.585262 0.347302 vt 0.619396 0.424552 vt 0.624145 0.433979 vt 0.624532 0.422226 -vt 0.620060 0.417870 -vt 0.624532 0.422226 vt 0.637719 0.444398 -vt 0.619396 0.424552 -vt 0.624145 0.433979 -vt 0.583588 0.366602 -vt 0.410939 0.327841 vt 0.413826 0.324644 -vt 0.404520 0.335973 vt 0.400987 0.340908 -vt 0.407407 0.332776 -vt 0.409219 0.330020 -vt 0.413826 0.324644 vt 0.397524 0.320401 vt 0.390272 0.328317 vt 0.395581 0.322522 -vt 0.412106 0.326823 -vt 0.397524 0.320401 -vt 0.395581 0.322522 -vt 0.390272 0.328317 -vt 0.400987 0.340908 -vt 0.383020 0.336232 vt 0.383020 0.336232 vt 0.629108 0.424700 vt 0.628386 0.433758 -vt 0.326439 0.398603 vt 0.352835 0.400778 vt 0.484968 0.425617 vt 0.486394 0.418030 vt 0.488653 0.419772 -vt 0.488653 0.419772 vt 0.354262 0.393192 -vt 0.486394 0.418030 -vt 0.484968 0.425617 vt 0.487705 0.424814 -vt 0.354262 0.393192 vt 0.351525 0.393994 -vt 0.352835 0.400778 -vt 0.351525 0.393994 -vt 0.348633 0.396061 vt 0.348633 0.396061 vt 0.350577 0.399036 vt 0.490597 0.422747 -vt 0.490597 0.422747 -vt 0.487705 0.424814 -vt 0.350577 0.399036 vt 0.362627 0.387623 vt 0.494690 0.412449 vt 0.496116 0.404863 vt 0.498387 0.406607 -vt 0.498387 0.406607 vt 0.364053 0.380037 -vt 0.496116 0.404863 -vt 0.494690 0.412449 vt 0.497439 0.411649 -vt 0.364053 0.380037 vt 0.361304 0.380838 -vt 0.362627 0.387623 -vt 0.361304 0.380838 -vt 0.358401 0.382902 vt 0.358401 0.382902 vt 0.360356 0.385880 vt 0.500342 0.409584 -vt 0.500342 0.409584 -vt 0.497439 0.411649 -vt 0.360356 0.385880 vt 0.384519 0.361285 vt 0.516529 0.386100 vt 0.517955 0.378514 vt 0.520235 0.380260 -vt 0.520235 0.380260 vt 0.385945 0.353698 -vt 0.517955 0.378514 -vt 0.516529 0.386100 vt 0.519287 0.385301 -vt 0.385945 0.353698 vt 0.383187 0.354497 -vt 0.384519 0.361285 -vt 0.383187 0.354497 -vt 0.380275 0.356560 vt 0.380275 0.356560 vt 0.382239 0.359539 vt 0.522198 0.383239 -vt 0.522198 0.383239 -vt 0.519287 0.385301 -vt 0.382239 0.359539 vt 0.374483 0.374411 vt 0.506492 0.399226 vt 0.507919 0.391640 vt 0.510198 0.393386 -vt 0.510198 0.393386 vt 0.375909 0.366825 -vt 0.507919 0.391640 -vt 0.506492 0.399226 vt 0.509250 0.398428 -vt 0.375909 0.366825 vt 0.373151 0.367623 -vt 0.374483 0.374411 -vt 0.373151 0.367623 -vt 0.370239 0.369686 vt 0.370239 0.369686 vt 0.372203 0.372665 vt 0.512162 0.396365 -vt 0.512162 0.396365 -vt 0.509250 0.398428 -vt 0.372203 0.372665 -vt 0.352835 0.400778 -vt 0.484968 0.425617 -vt 0.486394 0.418030 -vt 0.488653 0.419772 -vt 0.488653 0.419772 -vt 0.354262 0.393192 -vt 0.486394 0.418030 -vt 0.484968 0.425617 -vt 0.487705 0.424814 -vt 0.354262 0.393192 -vt 0.351525 0.393994 -vt 0.352835 0.400778 -vt 0.351525 0.393994 -vt 0.348633 0.396061 -vt 0.348633 0.396061 -vt 0.350577 0.399036 -vt 0.490597 0.422747 -vt 0.490597 0.422747 -vt 0.487705 0.424814 -vt 0.350577 0.399036 -vt 0.362627 0.387623 -vt 0.494690 0.412449 -vt 0.496116 0.404863 -vt 0.498387 0.406607 -vt 0.498387 0.406607 -vt 0.364053 0.380037 -vt 0.496116 0.404863 -vt 0.494690 0.412449 -vt 0.497439 0.411649 -vt 0.364053 0.380037 vt 0.361304 0.380837 -vt 0.362627 0.387623 -vt 0.361304 0.380838 -vt 0.358401 0.382902 -vt 0.358401 0.382902 -vt 0.360356 0.385880 -vt 0.500342 0.409584 -vt 0.500342 0.409584 -vt 0.497439 0.411649 -vt 0.360356 0.385880 -vt 0.384519 0.361285 -vt 0.516529 0.386100 -vt 0.517955 0.378514 -vt 0.520235 0.380260 -vt 0.520235 0.380260 -vt 0.385945 0.353698 -vt 0.517955 0.378514 -vt 0.516529 0.386100 -vt 0.519287 0.385301 -vt 0.385945 0.353698 -vt 0.383187 0.354497 -vt 0.384519 0.361285 -vt 0.383187 0.354497 -vt 0.380275 0.356560 -vt 0.380275 0.356560 -vt 0.382239 0.359539 -vt 0.522198 0.383239 -vt 0.522198 0.383239 -vt 0.519287 0.385301 -vt 0.382239 0.359539 -vt 0.374483 0.374411 -vt 0.506492 0.399226 -vt 0.507919 0.391640 -vt 0.510198 0.393386 -vt 0.510198 0.393386 -vt 0.375909 0.366825 -vt 0.507919 0.391640 -vt 0.506492 0.399226 -vt 0.509250 0.398428 -vt 0.375909 0.366825 -vt 0.373151 0.367623 -vt 0.374483 0.374411 -vt 0.373151 0.367623 -vt 0.370239 0.369686 -vt 0.370239 0.369686 -vt 0.372203 0.372665 -vt 0.512162 0.396365 -vt 0.512162 0.396365 -vt 0.509250 0.398428 -vt 0.372203 0.372665 -vt 0.600123 0.333994 -vt 0.398101 0.344105 -vn 0.9026 -0.4305 0.0000 -vn 0.9999 0.0167 -0.0000 -vn -0.7661 0.6402 -0.0574 -vn -0.8368 0.5446 0.0572 -vn -0.7661 0.6402 0.0574 -vn -0.7123 0.6995 -0.0574 -vn -0.7123 0.6995 0.0574 -vn -0.9969 0.0537 0.0574 -vn -0.9982 -0.0141 -0.0577 -vn -0.9982 -0.0141 0.0577 -vn 0.8168 -0.5740 -0.0579 -vn 0.7497 -0.6593 0.0579 -vn 0.8168 -0.5740 0.0579 -vn -0.9883 -0.1209 -0.0934 -vn -0.9876 0.1563 -0.0163 -vn -0.9829 0.0858 -0.1627 -vn -0.6688 0.7412 0.0579 -vn -0.6289 0.7753 -0.0573 -vn -0.6289 0.7753 0.0573 -vn -0.8826 0.4666 -0.0574 -vn -0.9245 0.3768 0.0575 -vn -0.8826 0.4666 0.0574 -vn -0.9762 0.2090 -0.0575 -vn -0.9762 0.2090 0.0575 -vn -0.8211 0.5671 -0.0647 -vn -0.8208 0.5676 0.0650 -vn -0.9245 0.3768 -0.0575 -vn 0.0000 0.9998 0.0217 -vn 0.0000 0.9988 0.0487 -vn 0.0000 0.9959 0.0905 -vn -0.7390 0.6040 0.2983 -vn -0.5021 0.8620 0.0701 -vn -0.7488 0.6577 0.0815 -vn 0.8669 -0.4952 -0.0578 -vn 0.8669 -0.4952 0.0578 -vn -0.9420 0.3315 0.0531 -vn -0.3922 0.9181 0.0574 -vn -0.4499 0.8912 -0.0574 -vn -0.4499 0.8912 0.0574 -vn -0.4961 0.8655 -0.0693 -vn -0.8913 -0.2315 0.3900 -vn -0.9518 -0.1990 0.2335 -vn -0.8538 -0.2964 0.4280 -vn 0.0964 -0.9953 0.0000 -vn -0.0173 -0.9989 0.0442 -vn 0.2660 -0.9640 -0.0000 -vn 0.6848 -0.7265 -0.0579 -vn 0.6848 -0.7265 0.0579 -vn 0.6013 -0.7969 -0.0582 -vn 0.4553 -0.8884 0.0587 -vn 0.6013 -0.7969 0.0582 -vn 0.4553 -0.8884 -0.0587 -vn 0.3532 -0.9343 -0.0490 -vn 0.0391 -0.9990 -0.0215 -vn -0.0831 -0.9952 -0.0518 -vn 0.3384 -0.9410 0.0000 -vn -0.1098 0.2571 0.9601 -vn -0.1465 0.2485 0.9575 -vn -0.0000 -0.0000 1.0000 -vn -0.3411 0.9383 -0.0574 -vn -0.3192 0.9460 0.0568 -vn -0.3192 0.9460 -0.0568 -vn -0.3411 0.9383 0.0574 -vn -0.3922 0.9181 -0.0574 -vn -0.6504 0.3940 0.6494 -vn -0.4058 0.0917 0.9093 -vn -0.9957 0.0897 0.0227 -vn -0.9986 0.0527 0.0042 -vn 0.3181 -0.9473 -0.0389 -vn -0.0170 -0.9989 -0.0443 -vn 0.3379 -0.9400 -0.0479 -vn -0.7002 -0.5061 0.5035 -vn -0.7051 -0.1719 0.6880 -vn -0.3300 -0.4425 0.8338 -vn -0.2979 0.0402 -0.9537 -vn -0.3300 -0.4425 -0.8338 -vn -0.0061 -0.3076 -0.9515 -vn -0.9424 0.3304 -0.0522 -vn -0.1465 0.2485 -0.9575 -vn -0.6500 0.3924 -0.6508 -vn -0.3770 0.6627 -0.6471 -vn -0.9985 -0.0540 0.0129 -vn -0.9838 0.1762 0.0341 -vn -0.9510 -0.2039 -0.2325 -vn -0.9157 -0.0443 -0.3995 -vn -0.9954 0.0932 -0.0200 -vn -0.9972 -0.0740 -0.0139 -vn 0.3181 -0.9472 0.0389 -vn 0.3379 -0.9400 0.0479 -vn 0.3532 -0.9342 0.0490 -vn -0.7043 -0.1718 -0.6888 -vn -0.7002 -0.5061 -0.5035 -vn -0.2983 0.0407 0.9536 -vn -0.0061 -0.3076 0.9515 -vn -0.1261 0.1250 0.9841 -vn -0.4411 0.5412 0.7159 -vn -0.4936 0.4835 0.7228 -vn -0.6091 0.7506 0.2562 -vn -0.6895 0.6771 0.2573 -vn -0.1261 0.1250 -0.9841 -vn -0.4411 0.5412 -0.7159 -vn -0.1162 0.1450 -0.9826 -vn -0.4937 0.4835 -0.7228 -vn -0.6091 0.7506 -0.2562 -vn -0.6895 0.6771 -0.2573 -vn -0.1339 0.1128 0.9845 -vn -0.5294 0.4415 0.7244 -vn -0.7415 0.6197 0.2573 -vn -0.1339 0.1128 -0.9845 -vn -0.5294 0.4415 -0.7244 -vn -0.1393 0.1014 0.9851 -vn -0.5809 0.3857 0.7168 -vn -0.8102 0.5273 0.2560 -vn -0.1393 0.1014 -0.9851 -vn -0.8102 0.5273 -0.2560 -vn -0.7415 0.6197 -0.2573 -vn -0.8368 0.5446 -0.0572 -vn -0.2661 0.1085 0.9578 -vn -0.6708 0.3542 0.6516 -vn -0.7073 0.2883 0.6454 -vn -0.8543 0.4513 0.2578 -vn -0.8950 0.3648 0.2569 -vn -0.2661 0.1085 -0.9578 -vn -0.6708 0.3542 -0.6516 -vn -0.2436 0.1301 -0.9611 -vn -0.7073 0.2883 -0.6454 -vn -0.8543 0.4513 -0.2578 -vn -0.8950 0.3648 -0.2569 -vn -0.7469 0.1599 0.6454 -vn -0.2808 0.0600 0.9579 -vn -0.9450 0.2023 0.2569 -vn -0.7469 0.1599 -0.6454 -vn -0.7595 0.0601 0.6477 -vn -0.2788 0.0256 0.9600 -vn -0.9647 0.0604 0.2564 -vn -0.2808 0.0600 -0.9579 -vn -0.7595 0.0601 -0.6477 -vn -0.9647 0.0603 -0.2564 -vn -0.9450 0.2023 -0.2569 -vn -0.9969 0.0537 -0.0574 -vn -0.7440 0.0320 0.6675 -vn -0.2698 0.0185 0.9628 -vn -0.9653 0.0064 0.2612 -vn -0.2788 0.0256 -0.9600 -vn -0.7440 0.0320 -0.6675 -vn -0.9653 0.0063 -0.2612 -vn -0.2435 0.1301 0.9611 -vn -0.5809 0.3857 -0.7168 -vn -0.4738 0.5529 0.6854 -vn -0.1631 0.2413 0.9566 -vn -0.7814 0.5540 0.2872 -vn -0.6471 0.7162 0.2613 -vn -0.4743 0.5525 -0.6854 -vn -0.7553 0.2304 -0.6136 -vn -0.7829 0.5522 -0.2865 -vn -0.6471 0.7162 -0.2613 -vn -0.1162 0.1450 0.9826 -vn -0.1631 0.2413 -0.9566 -vn -0.6688 0.7412 -0.0579 -vn 0.2320 -0.1325 0.9637 -vn 0.6151 -0.4323 0.6594 -vn 0.2163 -0.1520 0.9644 -vn 0.6542 -0.3737 0.6576 -vn 0.7899 -0.5551 0.2606 -vn 0.8384 -0.4790 0.2600 -vn 0.2320 -0.1325 -0.9636 -vn 0.6151 -0.4323 -0.6594 -vn 0.6542 -0.3737 -0.6576 -vn 0.7899 -0.5551 -0.2607 -vn 0.8384 -0.4790 -0.2600 -vn 0.5643 -0.4963 0.6597 -vn 0.1985 -0.1745 0.9645 -vn 0.7248 -0.6376 0.2609 -vn 0.2163 -0.1520 -0.9644 -vn 0.5643 -0.4963 -0.6597 -vn 0.7248 -0.6376 -0.2609 -vn 0.7497 -0.6593 -0.0579 -vn 0.1828 -0.1940 0.9638 -vn 0.5160 -0.5479 0.6584 -vn 0.6619 -0.7028 0.2606 -vn 0.1828 -0.1940 -0.9638 -vn 0.1985 -0.1745 -0.9645 -vn 0.5160 -0.5479 -0.6584 -vn 0.0000 1.0000 0.0044 -vn 0.0000 0.9998 0.0175 -vn 0.6416 -0.3339 -0.6906 -vn 0.0906 -0.0472 -0.9948 -vn 0.8545 -0.4447 -0.2686 -vn 0.8855 -0.4608 -0.0586 -vn 0.1570 -0.2081 0.9654 -vn 0.3393 -0.6623 0.6680 -vn 0.1170 -0.2254 0.9672 -vn 0.4509 -0.5981 0.6625 -vn 0.4392 -0.8585 0.2646 -vn 0.5808 -0.7707 0.2621 -vn 0.1570 -0.2081 -0.9654 -vn 0.3393 -0.6623 -0.6680 -vn 0.4509 -0.5981 -0.6625 -vn 0.4392 -0.8585 -0.2646 -vn 0.5808 -0.7707 -0.2621 -vn -0.5400 -0.7657 -0.3495 -vn -0.4124 -0.8182 -0.4005 -vn -0.2368 -0.9565 -0.1705 -vn 0.0355 -0.9808 -0.1920 -vn 0.6619 -0.7028 -0.2606 -vn -0.9313 0.2823 0.2303 -vn -0.7569 0.2306 0.6115 -vn 0.0000 0.0000 -1.0000 -vn -0.9813 0.1057 0.1607 -vn -0.9899 -0.1055 0.0945 -vn -0.8911 -0.2301 -0.3912 -vn -0.7537 0.6528 -0.0768 -vn -0.2595 0.7140 0.6503 -vn -0.2987 0.6992 0.6496 -vn -0.3301 0.9081 0.2575 -vn -0.3796 0.8886 0.2574 -vn -0.1098 0.2571 -0.9601 -vn -0.2595 0.7140 -0.6503 -vn -0.0951 0.2615 -0.9605 -vn -0.2987 0.6992 -0.6496 -vn -0.3301 0.9081 -0.2575 -vn -0.3796 0.8886 -0.2574 -vn -0.3772 0.6627 0.6470 -vn -0.4355 0.8626 0.2574 -vn -0.4856 0.8303 0.2735 -vn -0.4849 0.8307 -0.2735 -vn -0.4355 0.8626 -0.2574 -vn -0.3096 0.9173 -0.2504 -vn -0.2506 0.7427 -0.6210 -vn -0.1039 0.3079 -0.9457 -vn -0.1039 0.3079 0.9457 -vn -0.0951 0.2615 0.9605 -vn -0.2506 0.7427 0.6210 -vn -0.3096 0.9173 0.2504 -vn -0.1982 -0.9767 0.0818 -vn -0.5400 -0.7657 0.3495 -vn -0.0831 -0.9952 0.0518 -vn -0.2368 -0.9565 0.1705 -vn 0.0391 -0.9990 0.0215 -vn -0.1982 -0.9767 -0.0818 -vn -0.7518 -0.5303 -0.3919 -vn -0.7518 -0.5303 0.3919 -vn -0.4124 -0.8182 0.4005 -vn 0.0355 -0.9808 0.1920 -vn -0.9308 0.2799 -0.2352 -vn -0.0031 -0.8278 0.5611 -vn 0.2463 -0.9438 0.2204 -vn 0.2063 -0.7469 0.6321 -vn 0.3215 -0.9148 0.2445 -vn -0.0031 -0.8278 -0.5611 -vn 0.2063 -0.7469 -0.6322 -vn 0.2463 -0.9438 -0.2204 -vn 0.3215 -0.9148 -0.2445 -vn -0.9302 -0.0690 0.3605 -vn -0.9905 0.0240 0.1355 -vn -0.9680 0.0136 0.2505 -vn -0.8538 -0.2964 -0.4280 -vn -0.9657 0.0104 -0.2593 -vn -0.7414 0.5994 -0.3018 -vn -0.9298 -0.0678 -0.3617 -vn -0.9900 0.0274 -0.1384 -vn 0.1170 -0.2254 -0.9672 -vn 0.0000 1.0000 -0.0044 -vn 0.0000 1.0000 0.0040 -vn 0.0000 0.9959 -0.0905 -vn 0.0000 0.9933 -0.1160 -vn 0.0000 0.9988 -0.0487 -vn 0.8855 -0.4608 0.0586 -vn 0.8545 -0.4447 0.2686 -vn 0.6416 -0.3339 0.6906 -vn 0.8856 -0.4609 0.0567 -vn 0.8855 -0.4608 -0.0588 -vn 0.8856 -0.4609 -0.0567 -vn 0.3091 -0.1609 0.9373 -vn 0.6361 -0.3310 0.6970 -vn 0.7028 -0.3658 0.6101 -vn 0.8540 -0.4444 0.2705 -vn 0.8593 -0.4472 0.2484 -vn 0.8855 -0.4608 0.0588 -vn 0.8593 -0.4472 -0.2484 -vn 0.8540 -0.4444 -0.2705 -vn 0.7028 -0.3658 -0.6101 -vn 0.6361 -0.3311 -0.6970 -vn 0.3091 -0.1609 -0.9373 -vn 0.1736 -0.0903 -0.9807 -vn 0.0000 0.9933 0.1159 -vn 0.0000 0.9998 -0.0175 -vn 0.0000 1.0000 -0.0040 -vn 0.0035 -1.0000 -0.0006 -vn 0.0072 -1.0000 -0.0000 -vn 0.0034 -1.0000 -0.0019 -vn 0.0000 0.9998 -0.0217 -vn -0.4040 0.0922 -0.9101 -vn -0.9166 -0.0389 0.3980 -vn -0.2401 -0.9708 0.0000 -vn 0.9960 0.0898 0.0000 -vn 0.9514 -0.3081 0.0000 -vn 0.9960 0.0899 0.0000 -vn -0.7079 0.7063 0.0000 -vn -0.3741 0.9274 0.0000 -vn 0.7080 -0.7062 0.0000 -vn 0.3742 -0.9274 0.0000 -vn -0.9514 0.3081 0.0000 -vn 0.2142 -0.9768 0.0000 -vn -0.9670 -0.2548 0.0000 -vn -0.9960 -0.0898 0.0000 -vn 0.9670 0.2548 0.0000 -vn -0.2142 0.9768 0.0000 -vn 0.9961 0.0878 0.0000 -vn 0.9511 -0.3089 0.0000 -vn -0.7086 0.7056 0.0000 -vn -0.3761 0.9266 0.0000 -vn 0.7086 -0.7056 0.0000 -vn 0.3761 -0.9266 0.0000 -vn -0.9511 0.3090 0.0000 -vn 0.2164 -0.9763 0.0000 -vn -0.9676 -0.2525 0.0000 -vn -0.9961 -0.0878 0.0000 -vn 0.9676 0.2525 0.0000 -vn -0.2164 0.9763 0.0000 -vn 0.9963 0.0861 0.0000 -vn 0.9508 -0.3097 0.0000 -vn -0.7091 0.7051 0.0000 -vn -0.3776 0.9260 0.0000 -vn 0.9509 -0.3096 0.0000 -vn 0.7091 -0.7051 0.0000 -vn 0.3776 -0.9260 0.0000 -vn -0.9509 0.3096 0.0000 -vn 0.2182 -0.9759 0.0000 -vn -0.9681 -0.2507 0.0000 -vn -0.9963 -0.0862 0.0000 -vn 0.9680 0.2508 0.0000 -vn -0.2183 0.9759 0.0000 -vn 0.9963 0.0862 0.0000 -vn -0.9508 0.3097 0.0000 -vn -0.9680 -0.2508 0.0000 -vn -0.9963 -0.0861 0.0000 -vn -0.3760 0.9266 0.0000 -vn -0.9680 -0.2510 -0.0000 -vn -0.3776 0.9259 0.0000 -vn -0.2697 0.0184 -0.9628 -vn 0.0906 -0.0471 0.9948 -vn 0.1736 -0.0903 0.9807 -vn 0.0030 -1.0000 -0.0006 -vn 0.0030 -1.0000 0.0006 -vn 0.0035 -1.0000 0.0006 -vn 0.0034 -1.0000 0.0019 +vt 0.782994 0.575784 +vt 0.714498 0.564516 +vt 0.714498 0.575784 +vt 0.782994 0.564516 +vt 0.714498 0.537314 +vt 0.782994 0.537314 +vt 0.714498 0.510112 +vt 0.782994 0.510112 +vt 0.714498 0.498845 +vt 0.782994 0.498845 +vt 0.782994 0.559627 +vt 0.714498 0.515002 +vt 0.714498 0.559627 +vt 0.714498 0.568869 +vt 0.782994 0.515002 +vt 0.714498 0.505760 +vt 0.782994 0.505760 +vt 0.782994 0.568869 +vt 0.680946 0.743152 +vt 0.680946 0.747663 +vt 0.712868 0.738640 +vt 0.712868 0.716943 +vt 0.680946 0.716943 +vt 0.712868 0.747663 +vt 0.712868 0.743152 +vt 0.680946 0.738640 +vt 0.621661 0.723604 +vt 0.621661 0.716943 +vt 0.766609 0.756295 +vt 0.165134 0.745931 +vt 0.165134 0.756295 +vt 0.766609 0.745931 +vt 0.165134 0.720908 +vt 0.766609 0.720908 +vt 0.165134 0.695885 +vt 0.766609 0.695885 +vt 0.165134 0.685521 +vt 0.766609 0.685521 +vt 0.729032 0.553323 +vt 0.698162 0.542055 +vt 0.698162 0.553323 +vt 0.729032 0.542055 +vt 0.698162 0.514853 +vt 0.729032 0.514853 +vt 0.698162 0.487651 +vt 0.729032 0.487651 +vt 0.698162 0.476384 +vt 0.729032 0.476384 +vt 0.729257 0.590922 +vt 0.704821 0.579801 +vt 0.704821 0.590922 +vt 0.729257 0.579801 +vt 0.704821 0.552952 +vt 0.729257 0.552952 +vt 0.704821 0.526104 +vt 0.729257 0.526104 +vt 0.704821 0.514983 +vt 0.729257 0.514983 +vt 0.743036 0.769004 +vt 0.141560 0.758639 +vt 0.141560 0.769004 +vt 0.743036 0.758639 +vt 0.141560 0.733616 +vt 0.743036 0.733616 +vt 0.141560 0.708594 +vt 0.743036 0.708594 +vt 0.141560 0.698229 +vt 0.743036 0.698229 +vt 0.743036 0.733617 +vt 0.771627 0.571391 +vt 0.747191 0.560270 +vt 0.747191 0.571391 +vt 0.771627 0.560270 +vt 0.747191 0.533421 +vt 0.771627 0.533421 +vt 0.747191 0.506573 +vt 0.771627 0.506573 +vt 0.747191 0.495452 +vt 0.771627 0.495452 +vt 0.703156 0.520987 +vt 0.703156 0.554227 +vt 0.717254 0.554227 +vt 0.717254 0.520987 +s 0 +f 416/197/189 417/197/189 412/198/189 +f 412/198/190 420/199/190 413/198/190 +f 419/199/191 422/200/191 420/199/191 +f 422/200/192 421/200/192 424/201/192 +f 420/199/193 414/202/193 413/198/193 +f 419/199/194 411/202/194 421/200/194 +f 426/203/192 416/197/192 425/203/192 +f 425/203/195 423/201/195 426/203/195 +f 425/203/194 415/202/194 424/201/194 +f 426/203/193 418/202/193 417/197/193 +f 418/202/189 411/202/189 417/197/189 +f 411/202/189 412/198/189 417/197/189 +f 413/198/189 414/202/189 416/197/189 +f 414/202/189 415/202/189 416/197/189 +f 413/198/196 416/197/196 412/198/196 +f 412/198/190 419/199/190 420/199/190 +f 419/199/191 421/200/191 422/200/191 +f 424/201/192 415/202/192 414/202/192 +f 421/200/192 411/202/192 423/201/192 +f 411/202/192 418/202/192 423/201/192 +f 424/201/192 414/202/192 422/200/192 +f 421/200/192 423/201/192 424/201/192 +f 420/199/193 422/200/193 414/202/193 +f 419/199/194 412/198/194 411/202/194 +f 426/203/192 417/197/192 416/197/192 +f 425/203/195 424/201/195 423/201/195 +f 425/203/194 416/197/194 415/202/194 +f 426/203/193 423/201/193 418/202/193 +f 428/204/195 430/205/195 427/204/195 +f 429/205/190 432/206/190 430/205/190 +f 431/206/191 434/207/191 432/206/191 +f 433/207/192 427/204/192 434/207/192 +f 429/205/194 433/207/194 431/206/194 +f 436/208/195 438/209/195 435/209/195 +f 435/209/190 440/210/190 439/210/190 +f 439/210/193 443/211/193 441/212/193 +f 436/208/192 444/212/192 437/208/192 +f 439/210/193 436/208/193 435/209/193 +f 443/211/191 446/213/191 445/211/191 +f 439/210/193 448/214/193 442/213/193 +f 441/212/192 445/211/192 444/212/192 +f 447/215/190 450/214/190 448/214/190 +f 442/213/191 450/214/191 446/213/191 +f 439/210/195 449/215/195 447/215/195 +f 428/204/195 429/205/195 430/205/195 +f 429/205/190 431/206/190 432/206/190 +f 431/206/191 433/207/191 434/207/191 +f 433/207/192 428/204/192 427/204/192 +f 429/205/194 428/204/194 433/207/194 +f 436/208/195 437/208/195 438/209/195 +f 435/209/190 438/209/190 440/210/190 +f 439/210/193 442/213/193 443/211/193 +f 436/208/192 441/212/192 444/212/192 +f 439/210/193 441/212/193 436/208/193 +f 443/211/191 442/213/191 446/213/191 +f 439/210/193 447/215/193 448/214/193 +f 441/212/192 443/211/192 445/211/192 +f 447/215/190 449/215/190 450/214/190 +f 442/213/191 448/214/191 450/214/191 +f 439/210/195 440/210/195 449/215/195 s 1 -f 943/935/570 944/936/570 938/937/571 -f 946/938/572 948/939/573 945/940/574 -f 950/941/575 945/940/574 949/942/576 -f 952/943/577 954/944/578 951/945/579 -f 956/946/580 958/947/581 955/948/582 -f 960/949/583 962/950/584 959/951/585 -f 964/952/586 966/953/587 963/954/588 -f 968/955/589 970/956/590 967/957/591 -f 948/939/573 968/955/589 967/957/591 -f 972/958/592 952/943/577 971/959/593 -f 974/960/594 964/952/586 973/961/595 -f 969/962/596 971/959/593 970/956/590 -f 976/963/597 978/964/598 975/965/599 -f 979/966/600 981/967/601 982/968/602 -f 984/969/603 955/948/582 983/970/604 -f 985/971/605 974/960/594 973/961/595 -f 988/972/606 990/973/607 987/974/608 -f 987/974/608 991/975/609 981/967/601 -f 993/976/610 995/977/611 992/978/612 -f 997/979/613 998/980/614 999/981/615 -f 958/947/581 1001/982/616 1002/983/617 -f 1004/984/618 1006/985/619 1003/986/620 -f 1002/983/617 1004/984/618 1003/986/620 -f 1005/987/621 1007/988/622 999/981/615 -f 1013/989/623 1014/990/624 1016/991/625 -f 1021/992/626 1022/993/627 943/935/628 -f 1016/991/625 943/935/570 1009/994/625 -f 966/953/587 949/942/576 963/954/588 -f 1023/995/629 939/996/630 938/937/631 -f 1024/997/632 989/998/633 988/972/606 -f 1022/993/627 1026/999/634 1017/1000/635 -f 985/971/605 1027/1001/636 1028/1002/637 -f 1029/1003/638 1000/1004/639 999/981/615 -f 1007/988/622 1030/1005/640 999/981/615 -f 1031/1006/641 1032/1007/642 1033/1008/643 -f 1035/1009/644 1037/1010/645 1034/1011/646 -f 986/1012/647 985/971/605 1028/1002/637 -f 1038/1013/648 1040/1014/649 1041/1015/650 -f 1042/1016/651 1043/1017/652 1028/1002/637 -f 1045/1018/653 959/951/585 1044/1019/654 -f 1027/1001/636 1042/1016/651 1028/1002/637 -f 1046/1020/655 986/1012/647 1028/1002/637 -f 961/1021/656 1046/1020/655 1028/1002/637 -f 998/980/614 1047/1022/657 999/981/615 -f 1047/1022/657 1048/1023/658 999/981/615 -f 1048/1023/658 1008/1024/659 999/981/615 -f 1036/1025/660 1050/1026/661 1037/1010/645 -f 1030/1005/640 1029/1003/638 999/981/615 -f 1033/1008/643 1051/1027/662 1052/1028/663 -f 1053/1029/664 1055/1030/665 1056/1031/666 -f 1056/1031/666 1057/1032/667 1058/1033/668 -f 1058/1033/668 963/954/588 949/942/576 -f 1060/1034/669 1062/1035/670 1059/1036/671 -f 1061/1037/672 1064/1038/673 1062/1035/670 -f 1063/1039/674 966/953/587 1064/1038/673 -f 1065/1040/675 1056/1031/666 1066/1041/676 -f 1066/1041/676 1058/1033/668 1067/1042/677 -f 1058/1033/668 945/940/574 1067/1042/677 -f 1068/1043/678 1061/1037/672 1060/1034/669 -f 1069/1044/679 1063/1039/674 1061/1037/672 -f 1063/1039/674 946/938/572 950/941/575 -f 1071/1045/680 1066/1041/676 1072/1046/681 -f 1066/1041/676 1073/1047/682 1072/1046/681 -f 1067/1042/677 948/939/573 1073/1047/682 -f 1074/1048/683 1069/1044/679 1068/1043/678 -f 1069/1044/679 1076/1049/684 1070/1050/685 -f 1070/1050/685 947/1051/686 946/938/572 -f 1077/1052/687 1079/1053/688 1080/1054/689 -f 1080/1054/689 1081/1055/690 1082/1056/691 -f 1082/1056/691 967/957/591 970/956/590 -f 1084/1057/692 1086/1058/693 1083/1059/694 -f 1085/1060/695 1088/1061/696 1086/1058/693 -f 1087/1062/697 968/955/589 1088/1061/696 -f 1077/1052/687 1090/1063/698 1089/1064/699 -f 1090/1063/698 1082/1056/691 1091/1065/700 -f 1082/1056/691 971/959/593 1091/1065/700 -f 1084/1057/692 1093/1066/701 1085/1060/695 -f 1093/1066/701 1087/1062/697 1085/1060/695 -f 1087/1062/697 972/958/592 969/962/596 -f 1089/1064/699 1096/1067/702 1095/1068/703 -f 1090/1063/698 1097/1069/704 1096/1067/702 -f 1091/1065/700 952/943/577 1097/1069/704 -f 1092/1070/705 1099/1071/706 1093/1066/701 -f 1093/1066/701 1100/1072/707 1094/1073/708 -f 1094/1073/708 953/1074/709 972/958/592 -f 1095/1068/703 1102/1075/710 1101/1076/711 -f 1096/1067/702 1103/1077/712 1102/1075/710 -f 1097/1069/704 951/945/579 1103/1077/712 -f 1098/1078/713 1105/1079/714 1099/1071/706 -f 1099/1071/706 1106/1080/715 1100/1072/707 -f 1100/1072/707 954/944/578 953/1074/709 -f 1078/1081/716 1072/1046/681 1079/1053/688 -f 1072/1046/681 1081/1055/690 1079/1053/688 -f 1073/1047/682 967/957/591 1081/1055/690 -f 1083/1059/694 1075/1082/717 1074/1048/683 -f 1075/1082/717 1088/1061/696 1076/1049/684 -f 1076/1049/684 968/955/589 947/1051/686 -f 1051/1027/662 1109/1083/718 1107/1084/719 -f 1109/1083/718 1110/1085/720 1111/1086/721 -f 1111/1086/721 973/961/595 964/952/586 -f 1035/1009/644 1113/1087/722 1114/1088/723 -f 1113/1087/722 1116/1089/724 1114/1088/723 -f 1115/1090/725 974/960/594 1116/1089/724 -f 1054/1091/726 1109/1083/718 1055/1030/665 -f 1055/1030/665 1111/1086/721 1057/1032/667 -f 1057/1032/667 964/952/586 963/954/588 -f 1059/1036/671 1113/1087/722 1112/1092/727 -f 1062/1035/670 1115/1090/725 1113/1087/722 -f 1064/1038/673 965/1093/728 1115/1090/725 -f 1118/1094/729 1120/1095/730 1117/1096/731 -f 1119/1097/732 1122/1098/733 1120/1095/730 -f 1121/1099/734 955/948/582 1122/1098/733 -f 1123/1100/735 1125/1101/736 1126/1102/737 -f 1126/1102/737 1127/1103/738 1128/1104/739 -f 1128/1104/739 956/946/580 984/969/603 -f 1117/1096/731 1130/1105/740 1129/1106/741 -f 1120/1095/730 1131/1107/742 1130/1105/740 -f 1122/1098/733 958/947/581 1131/1107/742 -f 1124/1108/743 1133/1109/744 1125/1101/736 -f 1125/1101/736 1134/1110/745 1127/1103/738 -f 1127/1103/738 957/1111/746 956/946/580 -f 1135/1112/747 1130/1105/740 1136/1113/748 -f 1136/1113/748 1131/1107/742 1137/1114/749 -f 1131/1107/742 1002/983/617 1137/1114/749 -f 1138/1115/750 1133/1109/744 1132/1116/751 -f 1139/1117/752 1134/1110/745 1133/1109/744 -f 1134/1110/745 1001/982/616 957/1111/746 -f 1141/1118/753 977/1119/754 976/963/597 -f 1132/1116/751 1059/1036/671 1138/1115/750 -f 1123/1100/735 975/965/755 1143/1120/756 -f 1126/1102/737 976/963/757 975/965/755 -f 1128/1104/739 1141/1118/758 976/963/757 -f 1149/1121/759 1151/1122/760 1148/1123/761 -f 1150/1124/762 1153/1125/763 1151/1122/760 -f 1152/1126/764 1006/985/619 1153/1125/763 -f 1147/1127/765 1154/1128/766 1155/1129/767 -f 1155/1129/767 1156/1130/768 1157/1131/769 -f 1157/1131/769 1005/987/621 1004/984/618 -f 1050/1026/661 1159/1132/770 1160/1133/771 -f 1160/1133/771 1161/1134/772 1162/1135/773 -f 1162/1135/773 1000/1004/639 1029/1003/638 -f 1135/1112/747 1150/1124/762 1149/1121/759 -f 1136/1113/748 1152/1126/764 1150/1124/762 -f 1137/1114/749 1003/986/620 1152/1126/764 -f 1138/1115/750 1155/1129/767 1139/1117/752 -f 1139/1117/752 1157/1131/769 1140/1136/774 -f 1140/1136/774 1004/984/618 1001/982/616 -f 973/961/595 1163/1137/775 985/971/605 -f 1163/1137/775 1110/1085/720 1108/1138/776 -f 1015/1139/777 1158/1140/777 944/936/777 -f 962/950/584 961/1021/656 1028/1002/637 -f 995/977/611 1167/1141/778 1168/1142/779 -f 1169/1143/780 1045/1018/653 1044/1019/654 -f 982/968/602 991/975/609 1170/1144/781 -f 1021/992/626 1171/1145/782 1172/1146/783 -f 1172/1146/783 1173/1147/784 1174/1148/785 -f 1174/1148/785 1024/997/632 988/972/606 -f 1165/1149/786 1176/1150/787 1166/1151/788 -f 1175/1152/789 1178/1153/790 1176/1150/787 -f 1177/1154/791 1023/995/629 1178/1153/790 -f 1021/992/626 1025/1155/792 1022/993/627 -f 1025/1155/792 1174/1148/785 1179/1156/793 -f 1174/1148/785 987/974/608 1179/1156/793 -f 1165/1149/786 1041/1015/650 1175/1152/789 -f 1041/1015/650 1177/1154/791 1175/1152/789 -f 1177/1154/791 990/973/607 989/998/633 -f 1025/1155/792 1179/1156/793 980/1157/794 -f 980/1157/794 987/974/608 981/967/601 -f 1041/1015/650 1181/1158/795 1180/1159/796 -f 1181/1158/795 990/973/607 1180/1159/796 -f 1023/995/629 937/1160/797 1178/1153/790 -f 1178/1153/790 936/1161/798 1176/1150/787 -f 1176/1150/787 935/1162/799 1166/1151/788 -f 942/1163/800 1171/1145/782 1020/1164/801 -f 941/1165/802 1173/1147/784 1171/1145/782 -f 940/1166/803 1024/997/632 1173/1147/784 -f 1010/1167/804 1182/1168/805 1011/1169/806 -f 1011/1169/806 1183/1170/807 1012/1171/808 -f 1012/1171/808 998/980/614 997/979/613 -f 1015/1139/809 1159/1132/770 1158/1140/810 -f 1014/990/624 1161/1134/772 1159/1132/770 -f 1013/989/623 1000/1004/639 1161/1134/772 -f 1031/1006/641 1182/1168/805 1019/1172/811 -f 1184/1173/812 1183/1170/807 1182/1168/805 -f 1185/1174/813 998/980/614 1183/1170/807 -f 974/960/594 1186/1175/814 1116/1089/724 -f 1116/1089/724 1186/1175/814 1114/1088/723 -f 1033/1008/643 1184/1173/812 1031/1006/641 -f 1187/1176/815 1185/1174/813 1184/1173/812 -f 1188/1177/816 1047/1022/657 1185/1174/813 -f 1052/1028/663 1187/1176/815 1033/1008/643 -f 1189/1178/817 1188/1177/816 1187/1176/815 -f 1190/1179/818 1048/1023/658 1188/1177/816 -f 1034/1011/646 1191/1180/819 1192/1181/820 -f 1192/1181/820 1193/1182/821 1194/1183/822 -f 1194/1183/822 1030/1005/640 1007/988/622 -f 1037/1010/645 1160/1133/771 1191/1180/819 -f 1191/1180/819 1162/1135/773 1193/1182/821 -f 1193/1182/821 1029/1003/638 1030/1005/640 -f 1032/1007/642 1108/1138/776 1051/1027/662 -f 1195/1184/823 1163/1137/775 1108/1138/776 -f 1163/1137/775 1027/1001/636 985/971/605 -f 992/978/612 1195/1184/823 1032/1007/642 -f 995/977/611 1196/1185/824 1195/1184/823 -f 1196/1185/824 1042/1016/651 1027/1001/636 -f 1018/1186/825 993/976/610 992/978/612 -f 1026/999/634 980/1157/794 979/966/600 -f 962/950/584 1028/1002/637 1043/1017/652 -f 1049/1187/826 1164/1188/827 1158/1140/810 -f 1040/1014/649 1181/1158/795 1041/1015/650 -f 1197/1189/828 991/975/609 1181/1158/795 -f 1049/1187/826 1198/1190/829 1045/1018/653 -f 1045/1018/653 1199/1191/830 960/949/583 -f 1199/1191/830 961/1021/656 960/949/583 -f 1036/1025/660 1114/1088/723 1198/1190/829 -f 1198/1190/829 1186/1175/814 1199/1191/830 -f 1199/1191/830 986/1012/647 1046/1020/655 -f 1006/985/619 1190/1179/818 1153/1125/763 -f 1153/1125/763 1189/1178/817 1151/1122/760 -f 1151/1122/760 1052/1028/663 1148/1123/761 -f 1034/1011/646 1154/1128/766 1146/1192/831 -f 1192/1181/820 1156/1130/768 1154/1128/766 -f 1194/1183/822 1005/987/621 1156/1130/768 -f 1200/1193/832 1142/1194/833 1141/1118/753 -f 1202/1195/834 1204/1196/835 1205/1197/836 -f 1121/1099/734 1200/1193/837 983/970/604 -f 1119/1097/732 1206/1198/838 1121/1099/734 -f 1118/1094/729 1202/1195/839 1119/1097/732 -f 1200/1193/837 984/969/603 983/970/604 -f 1201/1199/840 1208/1200/841 1142/1194/842 -f 1204/1196/843 1210/1201/844 1205/1197/845 -f 1205/1197/845 1211/1202/846 1212/1203/847 -f 1212/1203/847 1207/1204/848 1201/1199/840 -f 977/1119/849 1208/1200/841 1213/1205/850 -f 978/964/851 1213/1205/850 1214/1206/852 -f 1144/1207/853 1214/1206/852 1145/1208/854 -f 975/965/599 1144/1207/855 1143/1120/855 -f 1200/1193/832 1212/1203/856 1201/1199/857 -f 1207/1204/858 1211/1202/859 1209/1209/860 -f 1129/1106/741 1135/1112/747 1054/1091/726 -f 1206/1198/861 1205/1197/836 1212/1203/856 -f 1017/1000/635 993/976/610 1018/1186/825 -f 1169/1143/780 1039/1210/862 1164/1188/827 -f 1044/1019/654 1039/1210/862 1169/1143/780 -f 959/951/585 1040/1014/649 1044/1019/654 -f 959/951/585 1170/1144/781 1197/1189/828 -f 994/1211/863 1017/1000/635 1026/999/634 -f 1167/1141/778 1026/999/634 979/966/600 -f 1167/1141/778 982/968/602 1043/1017/652 -f 1043/1017/652 1170/1144/781 962/950/584 -f 1168/1142/779 1043/1017/652 1042/1016/651 -f 954/944/864 1106/1080/864 1104/1212/864 -f 1223/1213/777 1224/1214/777 1218/1215/777 -f 1225/1216/865 1218/1215/866 1217/1217/867 -f 1234/1218/628 1226/1219/628 1229/1220/628 -f 1229/1220/868 1215/1221/869 1224/1214/868 -f 1226/1219/866 1219/1222/870 1218/1215/866 -f 1234/1218/870 1220/1223/871 1219/1222/870 -f 1230/1224/872 1224/1214/868 1223/1213/872 -f 1233/1225/871 1221/1226/873 1220/1223/871 -f 1232/1227/874 1222/1228/875 1221/1226/874 -f 1217/1217/867 1227/1229/876 1225/1216/865 -f 1216/1230/877 1228/1231/869 1227/1229/877 -f 1231/1232/875 1223/1213/872 1222/1228/875 -f 1243/1233/777 1244/1234/777 1238/1235/777 -f 1245/1236/878 1238/1235/879 1237/1237/878 -f 1254/1238/628 1246/1239/628 1249/1240/628 -f 1249/1240/880 1235/1241/881 1244/1234/880 -f 1246/1239/879 1239/1242/882 1238/1235/879 -f 1254/1238/882 1240/1243/883 1239/1242/882 -f 1250/1244/884 1244/1234/880 1243/1233/884 -f 1253/1245/883 1241/1246/885 1240/1243/883 -f 1252/1247/886 1242/1248/887 1241/1246/886 -f 1237/1237/878 1247/1249/888 1245/1236/878 -f 1236/1250/889 1248/1251/881 1247/1249/889 -f 1251/1252/887 1243/1233/884 1242/1248/887 -f 1263/1253/777 1264/1254/777 1258/1255/777 -f 1265/1256/890 1258/1255/891 1257/1257/890 -f 1274/1258/628 1266/1259/628 1269/1260/628 -f 1269/1260/892 1255/1261/893 1264/1254/892 -f 1266/1259/894 1259/1262/895 1258/1255/891 -f 1274/1258/895 1260/1263/896 1259/1262/895 -f 1270/1264/897 1264/1254/892 1263/1253/897 -f 1273/1265/896 1261/1266/898 1260/1263/896 -f 1272/1267/899 1262/1268/900 1261/1266/899 -f 1257/1257/890 1267/1269/901 1265/1256/890 -f 1256/1270/902 1268/1271/893 1267/1269/902 -f 1271/1272/900 1263/1253/897 1262/1268/900 -f 1283/1273/777 1284/1274/777 1278/1275/777 -f 1285/1276/903 1278/1275/894 1277/1277/903 -f 1294/1278/628 1286/1279/628 1289/1280/628 -f 1289/1280/892 1275/1281/893 1284/1274/892 -f 1286/1279/894 1279/1282/895 1278/1275/894 -f 1294/1278/895 1280/1283/896 1279/1282/895 -f 1290/1284/904 1284/1274/892 1283/1273/904 -f 1293/1285/896 1281/1286/898 1280/1283/896 -f 1292/1287/905 1282/1288/906 1281/1286/905 -f 1277/1277/903 1287/1289/901 1285/1276/903 -f 1276/1290/902 1288/1291/893 1287/1289/902 -f 1291/1292/906 1283/1273/904 1282/1288/906 -f 1303/1293/777 1304/1294/777 1298/1295/777 -f 1305/1296/865 1298/1295/866 1297/1297/867 -f 1314/1298/628 1306/1299/628 1309/1300/628 -f 1309/1300/868 1295/1301/869 1304/1294/868 -f 1306/1299/866 1299/1302/870 1298/1295/866 -f 1314/1298/870 1300/1303/871 1299/1302/870 -f 1310/1304/872 1304/1294/868 1303/1293/872 -f 1313/1305/871 1301/1306/873 1300/1303/871 -f 1312/1307/874 1302/1308/875 1301/1306/874 -f 1297/1297/867 1307/1309/876 1305/1296/865 -f 1296/1310/877 1308/1311/869 1307/1309/877 -f 1311/1312/875 1303/1293/872 1302/1308/875 -f 1323/1313/777 1324/1314/777 1318/1315/777 -f 1325/1316/878 1318/1315/879 1317/1317/878 -f 1334/1318/628 1326/1319/628 1329/1320/628 -f 1329/1320/880 1315/1321/907 1324/1314/880 -f 1326/1319/879 1319/1322/882 1318/1315/879 -f 1334/1318/882 1320/1323/883 1319/1322/882 -f 1330/1324/884 1324/1314/880 1323/1313/884 -f 1333/1325/883 1321/1326/885 1320/1323/883 -f 1332/1327/886 1322/1328/887 1321/1326/886 -f 1317/1317/878 1327/1329/888 1325/1316/878 -f 1316/1330/889 1328/1331/881 1327/1329/889 -f 1331/1332/887 1323/1313/884 1322/1328/887 -f 1343/1333/777 1344/1334/777 1338/1335/777 -f 1345/1336/890 1338/1335/891 1337/1337/890 -f 1354/1338/628 1346/1339/628 1349/1340/628 -f 1349/1340/892 1335/1341/893 1344/1334/892 -f 1346/1339/894 1339/1342/895 1338/1335/891 -f 1354/1338/895 1340/1343/896 1339/1342/895 -f 1350/1344/897 1344/1334/892 1343/1333/897 -f 1353/1345/896 1341/1346/898 1340/1343/896 -f 1352/1347/908 1342/1348/900 1341/1346/908 -f 1337/1337/890 1347/1349/901 1345/1336/890 -f 1336/1350/902 1348/1351/893 1347/1349/902 -f 1351/1352/906 1343/1333/897 1342/1348/900 -f 1363/1353/777 1364/1354/777 1358/1355/777 -f 1365/1356/903 1358/1355/894 1357/1357/903 -f 1374/1358/628 1366/1359/628 1369/1360/628 -f 1369/1360/892 1355/1361/893 1364/1354/892 -f 1366/1359/894 1359/1362/895 1358/1355/894 -f 1374/1358/895 1360/1363/896 1359/1362/895 -f 1370/1364/904 1364/1354/892 1363/1353/904 -f 1373/1365/896 1361/1366/898 1360/1363/896 -f 1372/1367/905 1362/1368/906 1361/1366/905 -f 1357/1357/903 1367/1369/901 1365/1356/903 -f 1356/1370/902 1368/1371/909 1367/1369/902 -f 1371/1372/906 1363/1353/904 1362/1368/906 -f 944/936/570 935/1162/571 938/937/571 -f 935/1162/571 936/1161/571 937/1160/571 -f 938/937/571 935/1162/571 937/1160/571 -f 938/937/571 939/996/571 943/935/570 -f 939/996/571 940/1166/571 942/1163/571 -f 940/1166/571 941/1165/571 942/1163/571 -f 942/1163/571 943/935/570 939/996/571 -f 946/938/572 947/1051/686 948/939/573 -f 950/941/575 946/938/572 945/940/574 -f 952/943/577 953/1074/709 954/944/578 -f 956/946/580 957/1111/746 958/947/581 -f 960/949/583 961/1021/656 962/950/584 -f 964/952/586 965/1093/728 966/953/587 -f 968/955/589 969/962/596 970/956/590 -f 948/939/573 947/1051/686 968/955/589 -f 972/958/592 953/1074/709 952/943/577 -f 974/960/594 965/1093/728 964/952/586 -f 969/962/596 972/958/592 971/959/593 -f 976/963/597 977/1119/754 978/964/598 -f 979/966/600 980/1157/794 981/967/601 -f 984/969/603 956/946/580 955/948/582 -f 985/971/605 986/1012/647 974/960/594 -f 988/972/606 989/998/633 990/973/607 -f 987/974/608 990/973/607 991/975/609 -f 993/976/610 994/1211/863 995/977/611 -f 1000/1004/639 996/1373/613 999/981/615 -f 996/1373/613 997/979/613 999/981/615 -f 958/947/581 957/1111/746 1001/982/616 -f 1004/984/618 1005/987/621 1006/985/619 -f 1002/983/617 1001/982/616 1004/984/618 -f 1008/1024/659 1006/985/619 999/981/615 -f 1006/985/619 1005/987/621 999/981/615 -f 1016/991/625 1009/994/625 997/979/613 -f 1009/994/625 1010/1167/804 1011/1169/806 -f 1011/1169/806 1012/1171/808 1009/994/625 -f 1012/1171/808 997/979/613 1009/994/625 -f 1014/990/624 1015/1139/809 1016/991/625 -f 997/979/613 996/1373/613 1016/991/625 -f 996/1373/613 1013/989/623 1016/991/625 -f 1022/993/627 1017/1000/635 1018/1186/628 -f 1018/1186/628 1019/1172/628 1022/993/627 -f 1019/1172/628 1010/1167/628 943/935/628 -f 1022/993/627 1019/1172/628 943/935/628 -f 1010/1167/628 1009/994/628 943/935/628 -f 943/935/628 942/1163/800 1020/1164/801 -f 1020/1164/801 1021/992/626 943/935/628 -f 1016/991/625 944/936/570 943/935/570 -f 966/953/587 950/941/575 949/942/576 -f 1023/995/629 1024/997/632 939/996/630 -f 1024/997/632 1023/995/629 989/998/633 -f 1022/993/627 1025/1155/792 1026/999/634 -f 1031/1006/641 992/978/612 1032/1007/642 -f 1035/1009/644 1036/1025/660 1037/1010/645 -f 1038/1013/648 1039/1210/862 1040/1014/649 -f 1045/1018/653 960/949/583 959/951/585 -f 1036/1025/660 1049/1187/826 1050/1026/661 -f 1033/1008/643 1032/1007/642 1051/1027/662 -f 1053/1029/664 1054/1091/726 1055/1030/665 -f 1056/1031/666 1055/1030/665 1057/1032/667 -f 1058/1033/668 1057/1032/667 963/954/588 -f 1060/1034/669 1061/1037/672 1062/1035/670 -f 1061/1037/672 1063/1039/674 1064/1038/673 -f 1063/1039/674 950/941/575 966/953/587 -f 1065/1040/675 1053/1029/664 1056/1031/666 -f 1066/1041/676 1056/1031/666 1058/1033/668 -f 1058/1033/668 949/942/576 945/940/574 -f 1068/1043/678 1069/1044/679 1061/1037/672 -f 1069/1044/679 1070/1050/685 1063/1039/674 -f 1063/1039/674 1070/1050/685 946/938/572 -f 1071/1045/680 1065/1040/675 1066/1041/676 -f 1066/1041/676 1067/1042/677 1073/1047/682 -f 1067/1042/677 945/940/574 948/939/573 -f 1074/1048/683 1075/1082/717 1069/1044/679 -f 1069/1044/679 1075/1082/717 1076/1049/684 -f 1070/1050/685 1076/1049/684 947/1051/686 -f 1077/1052/687 1078/1081/716 1079/1053/688 -f 1080/1054/689 1079/1053/688 1081/1055/690 -f 1082/1056/691 1081/1055/690 967/957/591 -f 1084/1057/692 1085/1060/695 1086/1058/693 -f 1085/1060/695 1087/1062/697 1088/1061/696 -f 1087/1062/697 969/962/596 968/955/589 -f 1077/1052/687 1080/1054/689 1090/1063/698 -f 1090/1063/698 1080/1054/689 1082/1056/691 -f 1082/1056/691 970/956/590 971/959/593 -f 1084/1057/692 1092/1070/705 1093/1066/701 -f 1093/1066/701 1094/1073/708 1087/1062/697 -f 1087/1062/697 1094/1073/708 972/958/592 -f 1089/1064/699 1090/1063/698 1096/1067/702 -f 1090/1063/698 1091/1065/700 1097/1069/704 -f 1091/1065/700 971/959/593 952/943/577 -f 1092/1070/705 1098/1078/713 1099/1071/706 -f 1093/1066/701 1099/1071/706 1100/1072/707 -f 1094/1073/708 1100/1072/707 953/1074/709 -f 1095/1068/703 1096/1067/702 1102/1075/710 -f 1096/1067/702 1097/1069/704 1103/1077/712 -f 1097/1069/704 952/943/577 951/945/579 -f 1098/1078/713 1104/1212/910 1105/1079/714 -f 1099/1071/706 1105/1079/714 1106/1080/715 -f 1100/1072/707 1106/1080/715 954/944/578 -f 1078/1081/716 1071/1045/680 1072/1046/681 -f 1072/1046/681 1073/1047/682 1081/1055/690 -f 1073/1047/682 948/939/573 967/957/591 -f 1083/1059/694 1086/1058/693 1075/1082/717 -f 1075/1082/717 1086/1058/693 1088/1061/696 -f 1076/1049/684 1088/1061/696 968/955/589 -f 1051/1027/662 1108/1138/776 1109/1083/718 -f 1109/1083/718 1108/1138/776 1110/1085/720 -f 1111/1086/721 1110/1085/720 973/961/595 -f 1035/1009/644 1112/1092/727 1113/1087/722 -f 1113/1087/722 1115/1090/725 1116/1089/724 -f 1115/1090/725 965/1093/728 974/960/594 -f 1054/1091/726 1107/1084/719 1109/1083/718 -f 1055/1030/665 1109/1083/718 1111/1086/721 -f 1057/1032/667 1111/1086/721 964/952/586 -f 1059/1036/671 1062/1035/670 1113/1087/722 -f 1062/1035/670 1064/1038/673 1115/1090/725 -f 1064/1038/673 966/953/587 965/1093/728 -f 1118/1094/729 1119/1097/732 1120/1095/730 -f 1119/1097/732 1121/1099/734 1122/1098/733 -f 1121/1099/734 983/970/604 955/948/582 -f 1123/1100/735 1124/1108/743 1125/1101/736 -f 1126/1102/737 1125/1101/736 1127/1103/738 -f 1128/1104/739 1127/1103/738 956/946/580 -f 1117/1096/731 1120/1095/730 1130/1105/740 -f 1120/1095/730 1122/1098/733 1131/1107/742 -f 1122/1098/733 955/948/582 958/947/581 -f 1124/1108/743 1132/1116/751 1133/1109/744 -f 1125/1101/736 1133/1109/744 1134/1110/745 -f 1127/1103/738 1134/1110/745 957/1111/746 -f 1135/1112/747 1129/1106/741 1130/1105/740 -f 1136/1113/748 1130/1105/740 1131/1107/742 -f 1131/1107/742 958/947/581 1002/983/617 -f 1138/1115/750 1139/1117/752 1133/1109/744 -f 1139/1117/752 1140/1136/774 1134/1110/745 -f 1134/1110/745 1140/1136/774 1001/982/616 -f 1141/1118/753 1142/1194/833 977/1119/754 -f 1143/1120/756 1144/1207/853 1145/1208/854 -f 1145/1208/854 1104/1212/910 1098/1078/713 -f 1098/1078/713 1092/1070/705 1084/1057/692 -f 1084/1057/692 1083/1059/694 1098/1078/713 -f 1083/1059/694 1074/1048/683 1143/1120/756 -f 1074/1048/683 1068/1043/678 1123/1100/735 -f 1068/1043/678 1060/1034/669 1123/1100/735 -f 1060/1034/669 1059/1036/671 1124/1108/743 -f 1059/1036/671 1112/1092/727 1138/1115/750 -f 1060/1034/669 1124/1108/743 1123/1100/735 -f 1112/1092/727 1035/1009/644 1146/1192/831 -f 1035/1009/644 1034/1011/646 1146/1192/831 -f 1083/1059/694 1143/1120/756 1145/1208/854 -f 1145/1208/854 1098/1078/713 1083/1059/694 -f 1123/1100/735 1143/1120/756 1074/1048/683 -f 1112/1092/727 1146/1192/831 1147/1127/765 -f 1112/1092/727 1147/1127/765 1138/1115/750 -f 1124/1108/743 1059/1036/671 1132/1116/751 -f 1123/1100/735 1126/1102/737 975/965/755 -f 1126/1102/737 1128/1104/739 976/963/757 -f 1128/1104/739 984/969/603 1141/1118/758 -f 1149/1121/759 1150/1124/762 1151/1122/760 -f 1150/1124/762 1152/1126/764 1153/1125/763 -f 1152/1126/764 1003/986/620 1006/985/619 -f 1147/1127/765 1146/1192/831 1154/1128/766 -f 1155/1129/767 1154/1128/766 1156/1130/768 -f 1157/1131/769 1156/1130/768 1005/987/621 -f 1050/1026/661 1158/1140/810 1159/1132/770 -f 1160/1133/771 1159/1132/770 1161/1134/772 -f 1162/1135/773 1161/1134/772 1000/1004/639 -f 1135/1112/747 1136/1113/748 1150/1124/762 -f 1136/1113/748 1137/1114/749 1152/1126/764 -f 1137/1114/749 1002/983/617 1003/986/620 -f 1138/1115/750 1147/1127/765 1155/1129/767 -f 1139/1117/752 1155/1129/767 1157/1131/769 -f 1140/1136/774 1157/1131/769 1004/984/618 -f 973/961/595 1110/1085/720 1163/1137/775 -f 1158/1140/777 1164/1188/777 1038/1013/648 -f 1164/1188/777 1039/1210/862 1038/1013/648 -f 1038/1013/648 1165/1149/786 944/936/777 -f 1158/1140/777 1038/1013/648 944/936/777 -f 1165/1149/786 1166/1151/788 944/936/777 -f 1166/1151/788 935/1162/799 944/936/777 -f 944/936/777 1016/991/777 1015/1139/777 -f 995/977/611 994/1211/863 1167/1141/778 -f 1169/1143/780 1049/1187/826 1045/1018/653 -f 982/968/602 981/967/601 991/975/609 -f 1021/992/626 1020/1164/801 1171/1145/782 -f 1172/1146/783 1171/1145/782 1173/1147/784 -f 1174/1148/785 1173/1147/784 1024/997/632 -f 1165/1149/786 1175/1152/789 1176/1150/787 -f 1175/1152/789 1177/1154/791 1178/1153/790 -f 1177/1154/791 989/998/633 1023/995/629 -f 1021/992/626 1172/1146/783 1025/1155/792 -f 1025/1155/792 1172/1146/783 1174/1148/785 -f 1174/1148/785 988/972/606 987/974/608 -f 1165/1149/786 1038/1013/648 1041/1015/650 -f 1041/1015/650 1180/1159/796 1177/1154/791 -f 1177/1154/791 1180/1159/796 990/973/607 -f 980/1157/794 1179/1156/793 987/974/608 -f 1181/1158/795 991/975/609 990/973/607 -f 1023/995/629 938/937/631 937/1160/797 -f 1178/1153/790 937/1160/797 936/1161/798 -f 1176/1150/787 936/1161/798 935/1162/799 -f 942/1163/800 941/1165/802 1171/1145/782 -f 941/1165/802 940/1166/803 1173/1147/784 -f 940/1166/803 939/996/630 1024/997/632 -f 1010/1167/804 1019/1172/811 1182/1168/805 -f 1011/1169/806 1182/1168/805 1183/1170/807 -f 1012/1171/808 1183/1170/807 998/980/614 -f 1015/1139/809 1014/990/624 1159/1132/770 -f 1014/990/624 1013/989/623 1161/1134/772 -f 1013/989/623 996/1373/613 1000/1004/639 -f 1031/1006/641 1184/1173/812 1182/1168/805 -f 1184/1173/812 1185/1174/813 1183/1170/807 -f 1185/1174/813 1047/1022/657 998/980/614 -f 974/960/594 986/1012/647 1186/1175/814 -f 1033/1008/643 1187/1176/815 1184/1173/812 -f 1187/1176/815 1188/1177/816 1185/1174/813 -f 1188/1177/816 1048/1023/658 1047/1022/657 -f 1052/1028/663 1189/1178/817 1187/1176/815 -f 1189/1178/817 1190/1179/818 1188/1177/816 -f 1190/1179/818 1008/1024/659 1048/1023/658 -f 1034/1011/646 1037/1010/645 1191/1180/819 -f 1192/1181/820 1191/1180/819 1193/1182/821 -f 1194/1183/822 1193/1182/821 1030/1005/640 -f 1037/1010/645 1050/1026/661 1160/1133/771 -f 1191/1180/819 1160/1133/771 1162/1135/773 -f 1193/1182/821 1162/1135/773 1029/1003/638 -f 1032/1007/642 1195/1184/823 1108/1138/776 -f 1195/1184/823 1196/1185/824 1163/1137/775 -f 1163/1137/775 1196/1185/824 1027/1001/636 -f 992/978/612 995/977/611 1195/1184/823 -f 995/977/611 1168/1142/779 1196/1185/824 -f 1196/1185/824 1168/1142/779 1042/1016/651 -f 1031/1006/641 1019/1172/811 992/978/612 -f 1019/1172/811 1018/1186/825 992/978/612 -f 1026/999/634 1025/1155/792 980/1157/794 -f 1158/1140/810 1050/1026/661 1049/1187/826 -f 1049/1187/826 1169/1143/780 1164/1188/827 -f 1040/1014/649 1197/1189/828 1181/1158/795 -f 1197/1189/828 1170/1144/781 991/975/609 -f 1049/1187/826 1036/1025/660 1198/1190/829 -f 1045/1018/653 1198/1190/829 1199/1191/830 -f 1199/1191/830 1046/1020/655 961/1021/656 -f 1036/1025/660 1035/1009/644 1114/1088/723 -f 1198/1190/829 1114/1088/723 1186/1175/814 -f 1199/1191/830 1186/1175/814 986/1012/647 -f 1006/985/619 1008/1024/659 1190/1179/818 -f 1153/1125/763 1190/1179/818 1189/1178/817 -f 1151/1122/760 1189/1178/817 1052/1028/663 -f 1034/1011/646 1192/1181/820 1154/1128/766 -f 1192/1181/820 1194/1183/822 1156/1130/768 -f 1194/1183/822 1007/988/622 1005/987/621 -f 1200/1193/832 1201/1199/857 1142/1194/833 -f 1202/1195/834 1203/1374/835 1204/1196/835 -f 1121/1099/734 1206/1198/838 1200/1193/837 -f 1119/1097/732 1202/1195/839 1206/1198/838 -f 1118/1094/729 1203/1374/911 1202/1195/839 -f 1200/1193/837 1141/1118/758 984/969/603 -f 1201/1199/840 1207/1204/848 1208/1200/841 -f 1204/1196/843 1209/1209/912 1210/1201/844 -f 1205/1197/845 1210/1201/844 1211/1202/846 -f 1212/1203/847 1211/1202/846 1207/1204/848 -f 977/1119/849 1142/1194/842 1208/1200/841 -f 978/964/851 977/1119/849 1213/1205/850 -f 1144/1207/853 978/964/851 1214/1206/852 -f 975/965/599 978/964/598 1144/1207/855 -f 1200/1193/832 1206/1198/861 1212/1203/856 -f 1211/1202/859 1210/1201/859 1209/1209/860 -f 1209/1209/860 1101/1076/913 1207/1204/858 -f 1101/1076/913 1104/1212/914 1208/1200/915 -f 1104/1212/914 1145/1208/916 1208/1200/915 -f 1145/1208/916 1214/1206/859 1213/1205/859 -f 1208/1200/915 1145/1208/916 1213/1205/859 -f 1208/1200/915 1207/1204/858 1101/1076/913 -f 1148/1123/761 1052/1028/663 1051/1027/662 -f 1051/1027/662 1107/1084/719 1148/1123/761 -f 1107/1084/719 1054/1091/726 1135/1112/747 -f 1148/1123/761 1107/1084/719 1149/1121/759 -f 1054/1091/726 1053/1029/664 1117/1096/731 -f 1053/1029/664 1065/1040/675 1118/1094/729 -f 1065/1040/675 1071/1045/680 1118/1094/729 -f 1071/1045/680 1078/1081/716 1203/1374/911 -f 1078/1081/716 1077/1052/687 1089/1064/699 -f 1089/1064/699 1095/1068/703 1078/1081/716 -f 1095/1068/703 1101/1076/711 1209/1209/912 -f 1209/1209/912 1204/1196/843 1203/1374/911 -f 1209/1209/912 1203/1374/911 1078/1081/716 -f 1095/1068/703 1209/1209/912 1078/1081/716 -f 1053/1029/664 1118/1094/729 1117/1096/731 -f 1071/1045/680 1203/1374/911 1118/1094/729 -f 1149/1121/759 1107/1084/719 1135/1112/747 -f 1117/1096/731 1129/1106/741 1054/1091/726 -f 1206/1198/861 1202/1195/834 1205/1197/836 -f 1044/1019/654 1040/1014/649 1039/1210/862 -f 959/951/585 1197/1189/828 1040/1014/649 -f 959/951/585 962/950/584 1170/1144/781 -f 994/1211/863 993/976/610 1017/1000/635 -f 1167/1141/778 994/1211/863 1026/999/634 -f 1167/1141/778 979/966/600 982/968/602 -f 1043/1017/652 982/968/602 1170/1144/781 -f 1168/1142/779 1167/1141/778 1043/1017/652 -f 1105/1079/864 1104/1212/864 1106/1080/864 -f 1104/1212/864 1101/1076/864 954/944/864 -f 1101/1076/864 1102/1075/864 1103/1077/864 -f 1103/1077/864 951/945/864 1101/1076/864 -f 951/945/864 954/944/864 1101/1076/864 -f 1224/1214/777 1215/1221/777 1218/1215/777 -f 1215/1221/777 1216/1230/777 1217/1217/777 -f 1218/1215/777 1215/1221/777 1217/1217/777 -f 1218/1215/777 1219/1222/777 1223/1213/777 -f 1219/1222/777 1220/1223/777 1222/1228/777 -f 1220/1223/777 1221/1226/777 1222/1228/777 -f 1222/1228/777 1223/1213/777 1219/1222/777 -f 1225/1216/865 1226/1219/866 1218/1215/866 -f 1226/1219/628 1225/1216/628 1228/1231/628 -f 1225/1216/628 1227/1229/628 1228/1231/628 -f 1228/1231/628 1229/1220/628 1226/1219/628 -f 1229/1220/628 1230/1224/628 1234/1218/628 -f 1230/1224/628 1231/1232/628 1233/1225/628 -f 1231/1232/628 1232/1227/628 1233/1225/628 -f 1233/1225/628 1234/1218/628 1230/1224/628 -f 1229/1220/868 1228/1231/869 1215/1221/869 -f 1226/1219/866 1234/1218/870 1219/1222/870 -f 1234/1218/870 1233/1225/871 1220/1223/871 -f 1230/1224/872 1229/1220/868 1224/1214/868 -f 1233/1225/871 1232/1227/873 1221/1226/873 -f 1232/1227/874 1231/1232/875 1222/1228/875 -f 1217/1217/867 1216/1230/876 1227/1229/876 -f 1216/1230/877 1215/1221/869 1228/1231/869 -f 1231/1232/875 1230/1224/872 1223/1213/872 -f 1244/1234/777 1235/1241/777 1237/1237/777 -f 1235/1241/777 1236/1250/777 1237/1237/777 -f 1237/1237/777 1238/1235/777 1244/1234/777 -f 1238/1235/777 1239/1242/777 1243/1233/777 -f 1239/1242/777 1240/1243/777 1242/1248/777 -f 1240/1243/777 1241/1246/777 1242/1248/777 -f 1242/1248/777 1243/1233/777 1239/1242/777 -f 1245/1236/878 1246/1239/879 1238/1235/879 -f 1246/1239/628 1245/1236/628 1249/1240/628 -f 1245/1236/628 1247/1249/628 1248/1251/628 -f 1249/1240/628 1245/1236/628 1248/1251/628 -f 1249/1240/628 1250/1244/628 1254/1238/628 -f 1250/1244/628 1251/1252/628 1253/1245/628 -f 1251/1252/628 1252/1247/628 1253/1245/628 -f 1253/1245/628 1254/1238/628 1250/1244/628 -f 1249/1240/880 1248/1251/881 1235/1241/881 -f 1246/1239/879 1254/1238/882 1239/1242/882 -f 1254/1238/882 1253/1245/883 1240/1243/883 -f 1250/1244/884 1249/1240/880 1244/1234/880 -f 1253/1245/883 1252/1247/885 1241/1246/885 -f 1252/1247/886 1251/1252/887 1242/1248/887 -f 1237/1237/878 1236/1250/888 1247/1249/888 -f 1236/1250/889 1235/1241/881 1248/1251/881 -f 1251/1252/887 1250/1244/884 1243/1233/884 -f 1264/1254/777 1255/1261/777 1258/1255/777 -f 1255/1261/777 1256/1270/777 1257/1257/777 -f 1258/1255/777 1255/1261/777 1257/1257/777 -f 1258/1255/777 1259/1262/777 1263/1253/777 -f 1259/1262/777 1260/1263/777 1262/1268/777 -f 1260/1263/777 1261/1266/777 1262/1268/777 -f 1262/1268/777 1263/1253/777 1259/1262/777 -f 1265/1256/890 1266/1259/894 1258/1255/891 -f 1266/1259/628 1265/1256/628 1268/1271/628 -f 1265/1256/628 1267/1269/628 1268/1271/628 -f 1268/1271/628 1269/1260/628 1266/1259/628 -f 1269/1260/628 1270/1264/628 1274/1258/628 -f 1270/1264/628 1271/1272/628 1273/1265/628 -f 1271/1272/628 1272/1267/628 1273/1265/628 -f 1273/1265/628 1274/1258/628 1270/1264/628 -f 1269/1260/892 1268/1271/893 1255/1261/893 -f 1266/1259/894 1274/1258/895 1259/1262/895 -f 1274/1258/895 1273/1265/896 1260/1263/896 -f 1270/1264/897 1269/1260/892 1264/1254/892 -f 1273/1265/896 1272/1267/898 1261/1266/898 -f 1272/1267/899 1271/1272/900 1262/1268/900 -f 1257/1257/890 1256/1270/901 1267/1269/901 -f 1256/1270/902 1255/1261/893 1268/1271/893 -f 1271/1272/900 1270/1264/897 1263/1253/897 -f 1284/1274/777 1275/1281/777 1277/1277/777 -f 1275/1281/777 1276/1290/777 1277/1277/777 -f 1277/1277/777 1278/1275/777 1284/1274/777 -f 1278/1275/777 1279/1282/777 1283/1273/777 -f 1279/1282/777 1280/1283/777 1282/1288/777 -f 1280/1283/777 1281/1286/777 1282/1288/777 -f 1282/1288/777 1283/1273/777 1279/1282/777 -f 1285/1276/903 1286/1279/894 1278/1275/894 -f 1286/1279/628 1285/1276/628 1289/1280/628 -f 1285/1276/628 1287/1289/628 1288/1291/628 -f 1289/1280/628 1285/1276/628 1288/1291/628 -f 1289/1280/628 1290/1284/628 1294/1278/628 -f 1290/1284/628 1291/1292/628 1293/1285/628 -f 1291/1292/628 1292/1287/628 1293/1285/628 -f 1293/1285/628 1294/1278/628 1290/1284/628 -f 1289/1280/892 1288/1291/893 1275/1281/893 -f 1286/1279/894 1294/1278/895 1279/1282/895 -f 1294/1278/895 1293/1285/896 1280/1283/896 -f 1290/1284/904 1289/1280/892 1284/1274/892 -f 1293/1285/896 1292/1287/898 1281/1286/898 -f 1292/1287/905 1291/1292/906 1282/1288/906 -f 1277/1277/903 1276/1290/901 1287/1289/901 -f 1276/1290/902 1275/1281/893 1288/1291/893 -f 1291/1292/906 1290/1284/904 1283/1273/904 -f 1304/1294/777 1295/1301/777 1298/1295/777 -f 1295/1301/777 1296/1310/777 1297/1297/777 -f 1298/1295/777 1295/1301/777 1297/1297/777 -f 1298/1295/777 1299/1302/777 1303/1293/777 -f 1299/1302/777 1300/1303/777 1302/1308/777 -f 1300/1303/777 1301/1306/777 1302/1308/777 -f 1302/1308/777 1303/1293/777 1299/1302/777 -f 1305/1296/865 1306/1299/866 1298/1295/866 -f 1306/1299/628 1305/1296/628 1308/1311/628 -f 1305/1296/628 1307/1309/628 1308/1311/628 -f 1308/1311/628 1309/1300/628 1306/1299/628 -f 1309/1300/628 1310/1304/628 1314/1298/628 -f 1310/1304/628 1311/1312/628 1313/1305/628 -f 1311/1312/628 1312/1307/628 1313/1305/628 -f 1313/1305/628 1314/1298/628 1310/1304/628 -f 1309/1300/868 1308/1311/869 1295/1301/869 -f 1306/1299/866 1314/1298/870 1299/1302/870 -f 1314/1298/870 1313/1305/871 1300/1303/871 -f 1310/1304/872 1309/1300/868 1304/1294/868 -f 1313/1305/871 1312/1307/873 1301/1306/873 -f 1312/1307/874 1311/1312/875 1302/1308/875 -f 1297/1297/867 1296/1310/876 1307/1309/876 -f 1296/1310/877 1295/1301/869 1308/1311/869 -f 1311/1312/875 1310/1304/872 1303/1293/872 -f 1324/1314/777 1315/1321/777 1318/1315/777 -f 1315/1321/777 1316/1330/777 1317/1317/777 -f 1318/1315/777 1315/1321/777 1317/1317/777 -f 1318/1315/777 1319/1322/777 1323/1313/777 -f 1319/1322/777 1320/1323/777 1322/1328/777 -f 1320/1323/777 1321/1326/777 1322/1328/777 -f 1322/1328/777 1323/1313/777 1319/1322/777 -f 1325/1316/878 1326/1319/879 1318/1315/879 -f 1326/1319/628 1325/1316/628 1328/1331/628 -f 1325/1316/628 1327/1329/628 1328/1331/628 -f 1328/1331/628 1329/1320/628 1326/1319/628 -f 1329/1320/628 1330/1324/628 1334/1318/628 -f 1330/1324/628 1331/1332/628 1333/1325/628 -f 1331/1332/628 1332/1327/628 1333/1325/628 -f 1333/1325/628 1334/1318/628 1330/1324/628 -f 1329/1320/880 1328/1331/881 1315/1321/907 -f 1326/1319/879 1334/1318/882 1319/1322/882 -f 1334/1318/882 1333/1325/883 1320/1323/883 -f 1330/1324/884 1329/1320/880 1324/1314/880 -f 1333/1325/883 1332/1327/885 1321/1326/885 -f 1332/1327/886 1331/1332/887 1322/1328/887 -f 1317/1317/878 1316/1330/888 1327/1329/888 -f 1316/1330/889 1315/1321/907 1328/1331/881 -f 1331/1332/887 1330/1324/884 1323/1313/884 -f 1344/1334/777 1335/1341/777 1338/1335/777 -f 1335/1341/777 1336/1350/777 1337/1337/777 -f 1338/1335/777 1335/1341/777 1337/1337/777 -f 1338/1335/777 1339/1342/777 1343/1333/777 -f 1339/1342/777 1340/1343/777 1342/1348/777 -f 1340/1343/777 1341/1346/777 1342/1348/777 -f 1342/1348/777 1343/1333/777 1339/1342/777 -f 1345/1336/890 1346/1339/894 1338/1335/891 -f 1346/1339/628 1345/1336/628 1348/1351/628 -f 1345/1336/628 1347/1349/628 1348/1351/628 -f 1348/1351/628 1349/1340/628 1346/1339/628 -f 1349/1340/628 1350/1344/628 1354/1338/628 -f 1350/1344/628 1351/1352/628 1353/1345/628 -f 1351/1352/628 1352/1347/628 1353/1345/628 -f 1353/1345/628 1354/1338/628 1350/1344/628 -f 1349/1340/892 1348/1351/893 1335/1341/893 -f 1346/1339/894 1354/1338/895 1339/1342/895 -f 1354/1338/895 1353/1345/896 1340/1343/896 -f 1350/1344/897 1349/1340/892 1344/1334/892 -f 1353/1345/896 1352/1347/898 1341/1346/898 -f 1352/1347/908 1351/1352/906 1342/1348/900 -f 1337/1337/890 1336/1350/901 1347/1349/901 -f 1336/1350/902 1335/1341/893 1348/1351/893 -f 1351/1352/906 1350/1344/897 1343/1333/897 -f 1364/1354/777 1355/1361/777 1357/1357/777 -f 1355/1361/777 1356/1370/777 1357/1357/777 -f 1357/1357/777 1358/1355/777 1364/1354/777 -f 1358/1355/777 1359/1362/777 1363/1353/777 -f 1359/1362/777 1360/1363/777 1362/1368/777 -f 1360/1363/777 1361/1366/777 1362/1368/777 -f 1362/1368/777 1363/1353/777 1359/1362/777 -f 1365/1356/903 1366/1359/894 1358/1355/894 -f 1366/1359/628 1365/1356/628 1369/1360/628 -f 1365/1356/628 1367/1369/628 1368/1371/628 -f 1369/1360/628 1365/1356/628 1368/1371/628 -f 1369/1360/628 1370/1364/628 1374/1358/628 -f 1370/1364/628 1371/1372/628 1373/1365/628 -f 1371/1372/628 1372/1367/628 1373/1365/628 -f 1373/1365/628 1374/1358/628 1370/1364/628 -f 1369/1360/892 1368/1371/909 1355/1361/893 -f 1366/1359/894 1374/1358/895 1359/1362/895 -f 1374/1358/895 1373/1365/896 1360/1363/896 -f 1370/1364/904 1369/1360/892 1364/1354/892 -f 1373/1365/896 1372/1367/898 1361/1366/898 -f 1372/1367/905 1371/1372/906 1362/1368/906 -f 1357/1357/903 1356/1370/901 1367/1369/901 -f 1356/1370/902 1355/1361/893 1368/1371/909 -f 1371/1372/906 1370/1364/904 1363/1353/904 +f 451/216/194 454/217/197 457/218/194 +f 430/205/194 467/219/194 468/220/194 +f 471/221/198 473/222/199 470/221/200 +f 450/214/193 449/215/193 479/217/201 +f 474/223/193 437/208/193 444/212/193 +f 466/223/195 475/224/202 474/223/195 +f 472/222/203 484/225/204 473/222/199 +f 476/226/205 464/226/205 483/225/206 +f 476/226/205 465/224/202 464/226/205 +f 470/221/200 492/227/207 471/221/198 +f 463/228/208 493/229/209 494/230/210 +f 494/230/210 495/231/211 496/232/212 +f 496/232/212 497/233/213 498/234/214 +f 498/234/214 470/221/200 473/222/199 +f 477/228/215 500/229/216 478/235/217 +f 499/230/218 502/231/219 500/229/216 +f 501/232/220 504/233/221 502/231/219 +f 503/234/222 471/221/198 504/233/221 +f 464/226/223 494/230/210 490/236/224 +f 494/230/210 485/237/225 490/236/224 +f 496/232/212 486/238/226 485/237/225 +f 486/238/226 473/222/199 484/225/204 +f 476/226/227 499/230/218 477/228/215 +f 499/230/218 488/237/228 501/232/220 +f 501/232/220 487/238/229 503/234/222 +f 487/238/229 472/222/203 503/234/222 +f 492/227/207 504/233/221 471/221/198 +f 505/239/230 502/231/219 504/233/221 +f 506/240/231 500/229/216 502/231/219 +f 507/241/232 478/235/217 500/229/216 +f 509/241/233 510/242/234 508/243/235 +f 462/235/236 461/244/237 511/245/235 +f 517/246/238 518/247/238 514/240/239 +f 495/231/211 520/239/240 497/233/213 +f 497/233/213 491/227/241 470/221/200 +f 479/217/242 491/227/191 454/217/242 +f 453/248/243 481/249/243 480/248/243 +f 451/216/244 474/223/244 482/216/244 +f 452/249/245 482/216/245 481/249/245 +f 522/250/246 457/218/247 521/218/248 +f 523/220/249 469/251/250 468/220/251 +f 526/219/252 459/252/253 525/252/254 +f 523/220/249 467/219/255 526/219/252 +f 532/253/256 533/254/257 529/255/258 +f 525/252/254 458/250/259 522/250/246 +f 515/256/260 511/245/261 536/245/262 +f 461/244/191 460/257/263 537/257/263 +f 535/256/264 516/258/265 515/256/260 +f 521/218/248 456/259/266 539/259/266 +f 538/258/267 517/246/268 516/258/265 +f 542/260/269 519/261/270 541/261/271 +f 540/246/272 518/247/273 517/246/268 +f 524/251/274 460/257/263 469/251/250 +f 508/243/275 510/242/276 513/260/277 +f 539/259/266 456/259/266 455/262/195 +f 526/219/252 545/263/278 546/264/279 +f 545/263/278 530/265/280 546/264/279 +f 530/265/280 547/266/281 546/264/279 +f 547/266/281 526/219/252 546/264/279 +f 532/253/256 548/267/282 549/268/283 +f 549/268/283 521/218/248 539/259/284 +f 525/252/254 550/269/285 545/263/278 +f 545/263/278 550/269/285 531/270/286 +f 544/243/287 549/268/283 539/259/284 +f 549/268/283 533/254/257 532/253/256 +f 534/271/288 552/272/289 553/273/290 +f 552/272/289 541/261/271 553/273/290 +f 527/274/291 554/275/292 555/276/293 +f 555/276/293 538/258/267 535/256/264 +f 524/251/274 557/277/294 537/257/295 +f 556/278/296 529/255/258 557/277/294 +f 528/279/297 557/277/294 529/255/258 +f 557/277/294 536/245/298 537/257/295 +f 540/246/272 560/280/299 543/247/300 +f 559/281/301 534/271/288 560/280/299 +f 528/279/297 555/276/293 558/282/302 +f 558/282/302 535/256/264 536/245/298 +f 540/246/272 554/275/292 559/281/301 +f 559/281/301 554/275/292 527/274/291 +f 534/271/288 553/273/290 560/280/299 +f 553/273/290 543/247/300 560/280/299 +f 542/260/269 551/283/303 544/243/287 +f 552/272/289 533/254/257 551/283/303 +f 530/265/280 556/278/296 547/266/281 +f 556/278/296 523/220/249 547/266/281 +f 531/270/286 550/269/285 548/267/282 +f 548/267/282 522/250/246 521/218/248 +f 518/247/273 541/261/271 519/261/270 +f 459/252/194 432/206/194 434/207/194 +f 451/216/194 452/249/194 453/248/194 +f 459/252/194 434/207/194 451/216/194 +f 458/250/194 459/252/194 451/216/194 +f 451/216/194 453/248/194 454/217/197 +f 454/217/197 455/262/237 456/259/194 +f 457/218/194 458/250/194 451/216/194 +f 454/217/197 456/259/194 457/218/194 +f 460/257/194 461/244/237 462/235/236 +f 463/228/208 464/226/223 430/205/194 +f 464/226/223 465/224/194 430/205/194 +f 460/257/194 462/235/236 469/251/194 +f 462/235/236 463/228/208 430/205/194 +f 469/251/194 462/235/236 430/205/194 +f 465/224/194 466/223/194 430/205/194 +f 466/223/194 451/216/194 427/204/194 +f 451/216/194 434/207/194 427/204/194 +f 468/220/194 469/251/194 430/205/194 +f 432/206/194 459/252/194 467/219/194 +f 430/205/194 432/206/194 467/219/194 +f 466/223/194 427/204/194 430/205/194 +f 471/221/198 472/222/203 473/222/199 +f 438/209/193 437/208/193 474/223/193 +f 474/223/193 475/224/193 438/209/193 +f 475/224/193 476/226/227 438/209/193 +f 476/226/227 477/228/215 438/209/193 +f 449/215/193 440/210/193 478/235/217 +f 440/210/193 438/209/193 478/235/217 +f 438/209/193 477/228/215 478/235/217 +f 479/217/201 480/248/193 482/216/193 +f 480/248/193 481/249/193 482/216/193 +f 482/216/193 445/211/193 446/213/193 +f 449/215/193 478/235/217 479/217/201 +f 482/216/193 446/213/193 479/217/201 +f 446/213/193 450/214/193 479/217/201 +f 444/212/193 445/211/193 482/216/193 +f 482/216/193 474/223/193 444/212/193 +f 466/223/195 465/224/202 475/224/202 +f 472/222/203 483/225/206 484/225/204 +f 490/236/304 485/237/225 484/225/204 +f 485/237/225 486/238/226 484/225/204 +f 484/225/204 483/225/206 464/226/205 +f 490/236/304 484/225/204 464/226/205 +f 483/225/206 487/238/229 488/237/228 +f 488/237/228 489/236/304 483/225/206 +f 489/236/304 476/226/205 483/225/206 +f 476/226/205 475/224/202 465/224/202 +f 470/221/200 491/227/241 492/227/207 +f 463/228/208 462/235/236 493/229/209 +f 494/230/210 493/229/209 495/231/211 +f 496/232/212 495/231/211 497/233/213 +f 498/234/214 497/233/213 470/221/200 +f 477/228/215 499/230/218 500/229/216 +f 499/230/218 501/232/220 502/231/219 +f 501/232/220 503/234/222 504/233/221 +f 503/234/222 472/222/203 471/221/198 +f 464/226/223 463/228/208 494/230/210 +f 494/230/210 496/232/212 485/237/225 +f 496/232/212 498/234/214 486/238/226 +f 486/238/226 498/234/214 473/222/199 +f 476/226/227 489/236/305 499/230/218 +f 499/230/218 489/236/305 488/237/228 +f 501/232/220 488/237/228 487/238/229 +f 487/238/229 483/225/206 472/222/203 +f 492/227/207 505/239/230 504/233/221 +f 505/239/230 506/240/231 502/231/219 +f 506/240/231 507/241/232 500/229/216 +f 507/241/232 479/217/201 478/235/217 +f 508/243/235 455/262/237 454/217/197 +f 454/217/197 509/241/233 508/243/235 +f 511/245/235 512/284/234 493/229/209 +f 493/229/209 462/235/236 511/245/235 +f 513/260/306 510/242/234 514/240/239 +f 510/242/234 509/241/233 514/240/239 +f 495/231/211 493/229/209 515/256/306 +f 493/229/209 512/284/234 515/256/306 +f 519/261/306 513/260/306 514/240/239 +f 495/231/211 515/256/306 516/258/306 +f 495/231/211 516/258/306 517/246/238 +f 518/247/238 519/261/306 514/240/239 +f 495/231/211 517/246/238 514/240/239 +f 495/231/211 514/240/239 520/239/240 +f 497/233/213 520/239/240 491/227/241 +f 520/239/191 514/240/191 491/227/191 +f 514/240/191 509/241/191 491/227/191 +f 509/241/191 454/217/242 491/227/191 +f 454/217/242 453/248/307 479/217/242 +f 453/248/307 480/248/307 479/217/242 +f 479/217/242 507/241/191 492/227/191 +f 507/241/191 506/240/191 492/227/191 +f 506/240/191 505/239/191 492/227/191 +f 492/227/191 491/227/191 479/217/242 +f 453/248/243 452/249/243 481/249/243 +f 451/216/244 466/223/244 474/223/244 +f 452/249/245 451/216/245 482/216/245 +f 522/250/246 458/250/259 457/218/247 +f 523/220/249 524/251/274 469/251/250 +f 526/219/252 467/219/255 459/252/253 +f 523/220/249 468/220/251 467/219/255 +f 534/271/288 527/274/291 528/279/297 +f 528/279/297 529/255/258 533/254/257 +f 529/255/258 530/265/280 532/253/256 +f 528/279/297 533/254/257 534/271/288 +f 530/265/280 531/270/286 532/253/256 +f 525/252/254 459/252/253 458/250/259 +f 536/245/262 535/256/264 515/256/260 +f 515/256/260 512/284/308 511/245/261 +f 537/257/263 536/245/262 461/244/191 +f 536/245/262 511/245/261 461/244/191 +f 535/256/264 538/258/267 516/258/265 +f 521/218/248 457/218/247 456/259/266 +f 538/258/267 540/246/272 517/246/268 +f 542/260/269 513/260/277 519/261/270 +f 540/246/272 543/247/300 518/247/273 +f 524/251/274 537/257/263 460/257/263 +f 513/260/277 542/260/269 544/243/309 +f 544/243/309 508/243/275 513/260/277 +f 508/243/275 544/243/309 455/262/195 +f 544/243/309 539/259/266 455/262/195 +f 526/219/252 525/252/254 545/263/278 +f 545/263/278 531/270/286 530/265/280 +f 547/266/281 523/220/249 526/219/252 +f 532/253/256 531/270/286 548/267/282 +f 549/268/283 548/267/282 521/218/248 +f 525/252/254 522/250/246 550/269/285 +f 544/243/287 551/283/303 549/268/283 +f 549/268/283 551/283/303 533/254/257 +f 552/272/289 542/260/269 541/261/271 +f 555/276/293 554/275/292 538/258/267 +f 524/251/274 556/278/296 557/277/294 +f 556/278/296 530/265/280 529/255/258 +f 528/279/297 558/282/302 557/277/294 +f 557/277/294 558/282/302 536/245/298 +f 540/246/272 559/281/301 560/280/299 +f 559/281/301 527/274/291 534/271/288 +f 528/279/297 527/274/291 555/276/293 +f 558/282/302 555/276/293 535/256/264 +f 540/246/272 538/258/267 554/275/292 +f 553/273/290 541/261/271 543/247/300 +f 542/260/269 552/272/289 551/283/303 +f 552/272/289 534/271/288 533/254/257 +f 556/278/296 524/251/274 523/220/249 +f 548/267/282 550/269/285 522/250/246 +f 518/247/273 543/247/300 541/261/271 +f 562/285/190 564/286/190 561/285/190 +f 566/287/310 561/285/195 565/287/310 +f 568/288/311 570/289/312 567/288/311 +f 572/290/313 574/291/314 571/290/313 +f 573/291/314 576/292/315 574/291/314 +f 575/292/315 565/287/310 576/292/315 +f 563/286/191 578/293/191 564/286/191 +f 580/294/316 571/290/313 579/294/316 +f 569/289/312 582/295/317 570/289/312 +f 581/295/317 584/296/318 582/295/317 +f 583/296/318 577/293/319 584/296/318 +f 590/297/193 591/298/193 587/299/193 +f 597/300/193 598/301/193 576/292/193 +f 609/302/193 613/303/193 614/304/193 +f 608/305/320 620/306/321 619/305/320 +f 607/306/321 567/288/311 620/306/321 +f 579/294/316 621/307/322 580/294/316 +f 610/307/322 622/302/323 621/307/322 +f 622/302/323 608/305/320 619/305/320 +f 630/304/194 631/303/194 622/302/194 +f 635/299/194 570/289/194 637/298/194 +f 645/308/194 650/309/194 562/285/194 +f 586/310/324 635/299/325 587/299/325 +f 601/311/326 640/312/327 624/311/326 +f 614/304/328 629/313/329 615/313/329 +f 596/314/330 645/308/331 644/314/330 +f 613/303/332 630/304/328 614/304/328 +f 613/303/332 632/315/333 631/303/332 +f 612/315/333 623/316/334 632/315/333 +f 611/316/334 624/311/326 623/316/334 +f 597/300/335 644/314/330 643/300/335 +f 598/301/336 643/300/335 642/301/336 +f 599/317/337 642/301/336 641/317/337 +f 641/317/337 600/312/327 599/317/337 +f 587/299/325 634/318/338 588/318/338 +f 588/318/338 647/319/339 593/319/339 +f 593/319/339 646/320/340 594/320/340 +f 595/308/331 646/320/340 645/308/331 +f 615/313/329 628/321/341 616/321/341 +f 616/321/341 627/322/342 617/322/342 +f 617/322/342 626/323/343 618/323/343 +f 618/323/343 625/310/324 586/310/324 +f 604/324/344 650/309/192 605/309/192 +f 603/325/195 651/324/344 604/324/344 +f 602/326/345 652/325/195 603/325/195 +f 585/327/346 637/298/190 636/327/346 +f 591/298/190 638/297/347 637/298/190 +f 589/328/348 648/329/191 633/328/348 +f 649/330/349 592/329/191 606/330/349 +f 606/330/349 650/309/192 649/330/349 +f 562/285/190 563/286/190 564/286/190 +f 566/287/310 562/285/195 561/285/195 +f 568/288/311 569/289/312 570/289/312 +f 572/290/313 573/291/314 574/291/314 +f 573/291/314 575/292/315 576/292/315 +f 575/292/315 566/287/310 565/287/310 +f 563/286/191 577/293/191 578/293/191 +f 580/294/316 572/290/313 571/290/313 +f 569/289/312 581/295/317 582/295/317 +f 581/295/317 583/296/318 584/296/318 +f 583/296/318 578/293/319 577/293/319 +f 591/298/193 585/327/193 581/295/193 +f 581/295/193 569/289/193 591/298/193 +f 569/289/193 586/310/193 587/299/193 +f 591/298/193 569/289/193 587/299/193 +f 587/299/193 588/318/193 590/297/193 +f 588/318/193 589/328/193 590/297/193 +f 592/329/193 589/328/193 588/318/193 +f 592/329/193 588/318/193 593/319/193 +f 606/330/193 592/329/193 593/319/193 +f 606/330/193 593/319/193 594/320/193 +f 605/309/193 606/330/193 594/320/193 +f 605/309/193 594/320/193 595/308/193 +f 605/309/193 595/308/193 561/285/193 +f 595/308/193 596/314/193 561/285/193 +f 581/295/193 585/327/193 602/326/193 +f 564/286/193 578/293/193 583/296/193 +f 583/296/193 581/295/193 603/325/193 +f 581/295/193 602/326/193 603/325/193 +f 565/287/193 561/285/193 576/292/193 +f 561/285/193 564/286/193 605/309/193 +f 561/285/193 596/314/193 597/300/193 +f 576/292/193 561/285/193 597/300/193 +f 564/286/193 583/296/193 605/309/193 +f 583/296/193 603/325/193 604/324/193 +f 583/296/193 604/324/193 605/309/193 +f 601/311/193 571/290/193 600/312/193 +f 571/290/193 574/291/193 600/312/193 +f 600/312/193 574/291/193 599/317/193 +f 574/291/193 576/292/193 599/317/193 +f 598/301/193 599/317/193 576/292/193 +f 618/323/193 586/310/193 569/289/193 +f 569/289/193 568/288/193 618/323/193 +f 568/288/193 607/306/193 617/322/193 +f 618/323/193 568/288/193 617/322/193 +f 607/306/193 608/305/193 616/321/193 +f 608/305/193 609/302/193 614/304/193 +f 609/302/193 610/307/193 612/315/193 +f 610/307/193 579/294/193 611/316/193 +f 612/315/193 610/307/193 611/316/193 +f 579/294/193 571/290/193 601/311/193 +f 579/294/193 601/311/193 611/316/193 +f 616/321/193 617/322/193 607/306/193 +f 615/313/193 616/321/193 608/305/193 +f 609/302/193 612/315/193 613/303/193 +f 614/304/193 615/313/193 608/305/193 +f 608/305/320 607/306/321 620/306/321 +f 607/306/321 568/288/311 567/288/311 +f 579/294/316 610/307/322 621/307/322 +f 610/307/322 609/302/323 622/302/323 +f 622/302/323 609/302/323 608/305/320 +f 623/316/194 624/311/194 580/294/194 +f 624/311/194 572/290/194 580/294/194 +f 580/294/194 621/307/194 623/316/194 +f 622/302/194 619/305/194 630/304/194 +f 619/305/194 620/306/194 628/321/194 +f 630/304/194 619/305/194 629/313/194 +f 620/306/194 567/288/194 627/322/194 +f 567/288/194 570/289/194 626/323/194 +f 570/289/194 625/310/194 626/323/194 +f 567/288/194 626/323/194 627/322/194 +f 632/315/194 623/316/194 621/307/194 +f 620/306/194 627/322/194 628/321/194 +f 632/315/194 621/307/194 622/302/194 +f 631/303/194 632/315/194 622/302/194 +f 628/321/194 629/313/194 619/305/194 +f 638/297/194 633/328/194 634/318/194 +f 635/299/194 625/310/194 570/289/194 +f 638/297/194 634/318/194 635/299/194 +f 582/295/194 636/327/194 637/298/194 +f 637/298/194 638/297/194 635/299/194 +f 570/289/194 582/295/194 637/298/194 +f 639/326/194 636/327/194 582/295/194 +f 584/296/194 577/293/194 563/286/194 +f 639/326/194 582/295/194 652/325/194 +f 582/295/194 584/296/194 652/325/194 +f 563/286/194 562/285/194 650/309/194 +f 562/285/194 566/287/194 575/292/194 +f 644/314/194 562/285/194 643/300/194 +f 562/285/194 644/314/194 645/308/194 +f 562/285/194 575/292/194 643/300/194 +f 652/325/194 584/296/194 651/324/194 +f 584/296/194 563/286/194 650/309/194 +f 651/324/194 584/296/194 650/309/194 +f 573/291/194 572/290/194 640/312/194 +f 572/290/194 624/311/194 640/312/194 +f 575/292/194 573/291/194 641/317/194 +f 573/291/194 640/312/194 641/317/194 +f 634/318/194 633/328/194 648/329/194 +f 647/319/194 634/318/194 648/329/194 +f 647/319/194 648/329/194 649/330/194 +f 646/320/194 647/319/194 649/330/194 +f 646/320/194 649/330/194 650/309/194 +f 645/308/194 646/320/194 650/309/194 +f 575/292/194 641/317/194 642/301/194 +f 575/292/194 642/301/194 643/300/194 +f 586/310/324 625/310/324 635/299/325 +f 601/311/326 600/312/327 640/312/327 +f 614/304/328 630/304/328 629/313/329 +f 596/314/330 595/308/331 645/308/331 +f 613/303/332 631/303/332 630/304/328 +f 613/303/332 612/315/333 632/315/333 +f 612/315/333 611/316/334 623/316/334 +f 611/316/334 601/311/326 624/311/326 +f 597/300/335 596/314/330 644/314/330 +f 598/301/336 597/300/335 643/300/335 +f 599/317/337 598/301/336 642/301/336 +f 641/317/337 640/312/327 600/312/327 +f 587/299/325 635/299/325 634/318/338 +f 588/318/338 634/318/338 647/319/339 +f 593/319/339 647/319/339 646/320/340 +f 595/308/331 594/320/340 646/320/340 +f 615/313/329 629/313/329 628/321/341 +f 616/321/341 628/321/341 627/322/342 +f 617/322/342 627/322/342 626/323/343 +f 618/323/343 626/323/343 625/310/324 +f 604/324/344 651/324/344 650/309/192 +f 603/325/195 652/325/195 651/324/344 +f 602/326/345 639/326/345 652/325/195 +f 639/326/345 602/326/345 585/327/346 +f 585/327/346 591/298/190 637/298/190 +f 636/327/346 639/326/345 585/327/346 +f 591/298/190 590/297/347 638/297/347 +f 633/328/348 638/297/347 590/297/347 +f 589/328/348 592/329/191 648/329/191 +f 633/328/348 590/297/347 589/328/348 +f 649/330/349 648/329/191 592/329/191 +f 606/330/349 605/309/192 650/309/192 +s 0 +f 654/331/195 656/332/195 653/331/195 +f 658/333/350 659/333/350 662/334/350 +f 665/335/191 667/336/191 664/335/191 +f 669/337/192 653/331/192 668/337/192 +f 664/335/193 668/337/193 658/333/193 +f 655/332/194 669/337/194 659/333/194 +f 659/333/194 666/336/194 665/335/194 +f 658/333/193 653/331/193 656/332/193 +f 666/336/192 668/337/192 667/336/192 +f 655/332/190 658/333/190 656/332/190 +f 660/338/190 671/339/190 661/338/190 +f 657/338/190 673/339/190 672/339/190 +f 665/335/191 664/335/191 674/340/191 +f 665/335/194 660/338/194 659/333/194 +f 658/333/193 672/339/193 664/335/193 +f 662/334/351 671/339/351 674/340/351 +f 663/338/352 674/340/352 673/339/352 +f 654/331/195 655/332/195 656/332/195 +f 663/338/195 657/338/195 658/333/195 +f 659/333/195 660/338/195 661/338/195 +f 662/334/195 663/338/195 658/333/195 +f 659/333/195 661/338/195 662/334/195 +f 665/335/191 666/336/191 667/336/191 +f 669/337/192 654/331/192 653/331/192 +f 664/335/193 667/336/193 668/337/193 +f 655/332/194 654/331/194 669/337/194 +f 659/333/194 669/337/194 666/336/194 +f 658/333/193 668/337/193 653/331/193 +f 666/336/192 669/337/192 668/337/192 +f 655/332/190 659/333/190 658/333/190 +f 660/338/190 670/339/190 671/339/190 +f 657/338/190 663/338/190 673/339/190 +f 674/340/191 671/339/191 665/335/191 +f 671/339/191 670/339/191 665/335/191 +f 664/335/191 672/339/191 673/339/191 +f 664/335/191 673/339/191 674/340/191 +f 665/335/194 670/339/194 660/338/194 +f 658/333/193 657/338/193 672/339/193 +f 662/334/351 661/338/351 671/339/351 +f 663/338/352 662/334/352 674/340/352 +s 1 +f 676/341/190 678/342/347 675/341/190 +f 677/342/347 680/343/191 678/342/347 +f 679/343/191 682/344/349 680/343/191 +f 681/344/349 684/345/192 682/344/349 +f 683/345/192 686/346/344 684/345/192 +f 685/346/344 688/347/195 686/346/344 +f 679/343/194 676/341/194 687/347/194 +f 687/347/195 690/348/345 688/347/195 +f 689/348/345 675/341/190 690/348/345 +f 688/347/193 690/348/193 682/344/193 +f 676/341/190 677/342/347 678/342/347 +f 677/342/347 679/343/191 680/343/191 +f 679/343/191 681/344/349 682/344/349 +f 681/344/349 683/345/192 684/345/192 +f 683/345/192 685/346/344 686/346/344 +f 685/346/344 687/347/195 688/347/195 +f 679/343/194 677/342/194 676/341/194 +f 676/341/194 689/348/194 687/347/194 +f 687/347/194 685/346/194 683/345/194 +f 683/345/194 681/344/194 687/347/194 +f 681/344/194 679/343/194 687/347/194 +f 687/347/195 689/348/345 690/348/345 +f 689/348/345 676/341/190 675/341/190 +f 690/348/193 675/341/193 682/344/193 +f 675/341/193 678/342/193 682/344/193 +f 678/342/193 680/343/193 682/344/193 +f 682/344/193 684/345/193 686/346/193 +f 686/346/193 688/347/193 682/344/193 +f 699/349/353 700/349/353 694/350/354 +f 702/351/355 704/352/356 701/351/357 +f 706/353/358 701/351/357 705/353/359 +f 708/354/360 710/355/361 707/355/362 +f 712/356/363 714/357/364 711/356/365 +f 716/358/366 718/359/367 715/360/368 +f 720/361/369 722/362/370 719/362/371 +f 724/363/372 726/364/373 723/363/374 +f 704/352/356 724/363/372 723/363/374 +f 728/365/375 708/354/360 727/365/376 +f 730/366/377 720/361/369 729/366/378 +f 725/364/379 727/365/376 726/364/373 +f 732/367/380 734/368/381 731/369/382 +f 735/370/383 737/371/384 738/372/385 +f 740/373/386 711/356/365 739/373/387 +f 741/374/388 730/366/377 729/366/378 +f 744/375/389 746/376/390 743/376/391 +f 743/376/391 747/371/392 737/371/384 +f 749/377/393 751/378/394 748/379/395 +f 753/380/396 754/381/397 755/381/398 +f 714/357/364 757/382/399 758/382/400 +f 760/383/401 762/384/402 759/383/403 +f 758/382/400 760/383/401 759/383/403 +f 761/384/404 763/385/405 755/381/398 +f 769/380/406 770/380/407 772/386/408 +f 777/387/409 778/388/410 699/349/194 +f 772/386/408 699/349/353 765/386/408 +f 722/362/370 705/353/359 719/362/371 +f 779/389/411 695/350/412 694/350/413 +f 780/389/414 745/375/415 744/375/389 +f 778/388/410 782/390/416 773/391/417 +f 741/374/388 783/392/418 784/393/419 +f 785/394/420 756/381/421 755/381/398 +f 763/385/405 786/395/422 755/381/398 +f 787/396/423 788/397/424 789/398/425 +f 791/399/426 793/398/427 790/400/428 +f 742/401/429 741/374/388 784/393/419 +f 794/388/430 796/402/431 797/403/432 +f 798/404/433 799/405/434 784/393/419 +f 801/378/435 715/360/368 800/406/436 +f 783/392/418 798/404/433 784/393/419 +f 802/392/437 742/401/429 784/393/419 +f 717/404/438 802/392/437 784/393/419 +f 754/381/397 803/394/439 755/381/398 +f 803/394/439 804/395/440 755/381/398 +f 804/395/440 764/385/441 755/381/398 +f 792/397/442 806/396/443 793/398/427 +f 786/395/422 785/394/420 755/381/398 +f 789/398/425 807/399/444 808/400/445 +f 809/407/446 811/408/447 812/409/448 +f 812/409/448 813/410/449 814/411/450 +f 814/411/450 719/362/371 705/353/359 +f 816/407/451 818/408/452 815/412/453 +f 817/409/454 820/410/455 818/408/452 +f 819/411/456 722/362/370 820/410/455 +f 821/413/457 812/409/448 822/414/458 +f 822/414/458 814/411/450 823/415/459 +f 814/411/450 701/351/357 823/415/459 +f 824/413/460 817/409/454 816/407/451 +f 825/414/461 819/411/456 817/409/454 +f 819/411/456 702/351/355 706/353/358 +f 827/416/462 822/414/458 828/417/463 +f 822/414/458 829/418/464 828/417/463 +f 823/415/459 704/352/356 829/418/464 +f 830/416/465 825/414/461 824/413/460 +f 825/414/461 832/418/466 826/415/467 +f 826/415/467 703/352/468 702/351/355 +f 833/419/469 835/420/470 836/421/471 +f 836/421/471 837/422/472 838/423/473 +f 838/423/473 723/363/374 726/364/373 +f 840/419/474 842/420/475 839/424/476 +f 841/421/477 844/422/478 842/420/475 +f 843/423/479 724/363/372 844/422/478 +f 833/419/469 846/425/480 845/426/481 +f 846/425/480 838/423/473 847/427/482 +f 838/423/473 727/365/376 847/427/482 +f 840/419/474 849/425/483 841/421/477 +f 849/425/483 843/423/479 841/421/477 +f 843/423/479 728/365/375 725/364/379 +f 845/426/481 852/428/484 851/429/485 +f 846/425/480 853/430/486 852/428/484 +f 847/427/482 708/354/360 853/430/486 +f 848/426/487 855/428/488 849/425/483 +f 849/425/483 856/430/489 850/427/490 +f 850/427/490 709/354/491 728/365/375 +f 851/429/485 858/431/492 857/432/493 +f 852/428/484 859/433/494 858/431/492 +f 853/430/486 707/355/362 859/433/494 +f 854/429/495 861/431/496 855/428/488 +f 855/428/488 862/433/497 856/430/489 +f 856/430/489 710/355/361 709/354/491 +f 834/424/498 828/417/463 835/420/470 +f 828/417/463 837/422/472 835/420/470 +f 829/418/464 723/363/374 837/422/472 +f 839/424/476 831/417/499 830/416/465 +f 831/417/499 844/422/478 832/418/466 +f 832/418/466 724/363/372 703/352/468 +f 807/399/444 865/434/500 863/435/501 +f 865/434/500 866/436/502 867/437/503 +f 867/437/503 729/366/378 720/361/369 +f 791/399/426 869/434/504 870/438/505 +f 869/434/504 872/436/506 870/438/505 +f 871/437/507 730/366/377 872/436/506 +f 810/412/508 865/434/500 811/408/447 +f 811/408/447 867/437/503 813/410/449 +f 813/410/449 720/361/369 719/362/371 +f 815/412/453 869/434/504 868/435/509 +f 818/408/452 871/437/507 869/434/504 +f 820/410/455 721/361/510 871/437/507 +f 874/439/511 876/440/512 873/441/513 +f 875/442/514 878/443/515 876/440/512 +f 877/444/516 711/356/365 878/443/515 +f 879/439/517 881/440/518 882/442/519 +f 882/442/519 883/443/520 884/444/521 +f 884/444/521 712/356/363 740/373/386 +f 873/441/513 886/445/522 885/446/523 +f 876/440/512 887/447/524 886/445/522 +f 878/443/515 714/357/364 887/447/524 +f 880/441/525 889/445/526 881/440/518 +f 881/440/518 890/447/527 883/443/520 +f 883/443/520 713/357/528 712/356/363 +f 891/448/529 886/445/522 892/449/530 +f 892/449/530 887/447/524 893/450/531 +f 887/447/524 758/382/400 893/450/531 +f 894/448/532 889/445/526 888/446/533 +f 895/449/534 890/447/527 889/445/526 +f 890/447/527 757/382/399 713/357/528 +f 897/451/535 733/452/536 732/367/380 +f 888/446/533 815/412/453 894/448/532 +f 879/439/517 731/369/537 899/453/538 +f 882/442/519 732/367/539 731/369/537 +f 884/444/521 897/451/540 732/367/539 +f 905/454/541 907/455/542 904/456/543 +f 906/457/544 909/458/545 907/455/542 +f 908/459/546 762/384/402 909/458/545 +f 903/454/547 910/455/548 911/460/549 +f 911/460/549 912/458/550 913/459/551 +f 913/459/551 761/384/404 760/383/401 +f 806/396/443 915/461/552 916/462/553 +f 916/462/553 917/463/554 918/464/555 +f 918/464/555 756/381/421 785/394/420 +f 891/448/529 906/457/544 905/454/541 +f 892/449/530 908/459/546 906/457/544 +f 893/450/531 759/383/403 908/459/546 +f 894/448/532 911/460/549 895/449/534 +f 895/449/534 913/459/551 896/450/556 +f 896/450/556 760/383/401 757/382/399 +f 729/366/378 919/465/557 741/374/388 +f 919/465/557 866/436/502 864/466/558 +f 771/380/193 914/467/193 700/349/193 +f 718/359/367 717/404/438 784/393/419 +f 751/378/394 923/468/559 924/358/560 +f 925/469/561 801/378/435 800/406/436 +f 738/372/385 747/371/392 926/470/562 +f 777/387/409 927/471/563 928/472/564 +f 928/472/564 929/473/565 930/474/566 +f 930/474/566 780/389/414 744/375/389 +f 921/387/567 932/471/568 922/475/569 +f 931/472/570 934/473/571 932/471/568 +f 933/474/572 779/389/411 934/473/571 +f 777/387/409 781/403/573 778/388/410 +f 781/403/573 930/474/566 935/476/574 +f 930/474/566 743/376/391 935/476/574 +f 921/387/567 797/403/432 931/472/570 +f 797/403/432 933/474/572 931/472/570 +f 933/474/572 746/376/390 745/375/415 +f 781/403/573 935/476/574 736/477/575 +f 736/477/575 743/376/391 737/371/384 +f 797/403/432 937/477/576 936/476/577 +f 937/477/576 746/376/390 936/476/577 +f 779/389/411 693/478/578 934/473/571 +f 934/473/571 692/479/579 932/471/568 +f 932/471/568 691/480/580 922/475/569 +f 698/480/581 927/471/563 776/475/582 +f 697/479/583 929/473/565 927/471/563 +f 696/478/584 780/389/414 929/473/565 +f 766/380/585 938/461/586 767/380/587 +f 767/380/587 939/463/588 768/380/589 +f 768/380/589 754/381/397 753/380/396 +f 771/380/590 915/461/552 914/467/591 +f 770/380/407 917/463/554 915/461/552 +f 769/380/406 756/381/421 917/463/554 +f 787/396/423 938/461/586 775/467/592 +f 940/462/593 939/463/588 938/461/586 +f 941/464/594 754/381/397 939/463/588 +f 730/366/377 942/481/595 872/436/506 +f 872/436/506 942/481/595 870/438/505 +f 789/398/425 940/462/593 787/396/423 +f 943/482/596 941/464/594 940/462/593 +f 944/483/597 803/394/439 941/464/594 +f 808/400/445 943/482/596 789/398/425 +f 945/484/598 944/483/597 943/482/596 +f 946/485/599 804/395/440 944/483/597 +f 790/400/428 947/482/600 948/484/601 +f 948/484/601 949/486/602 950/485/603 +f 950/485/603 786/395/422 763/385/405 +f 793/398/427 916/462/553 947/482/600 +f 947/482/600 918/464/555 949/486/602 +f 949/486/602 785/394/420 786/395/422 +f 788/397/424 864/466/558 807/399/444 +f 951/487/604 919/465/557 864/466/558 +f 919/465/557 783/392/418 741/374/388 +f 748/379/395 951/487/604 788/397/424 +f 751/378/394 952/488/605 951/487/604 +f 952/488/605 798/404/433 783/392/418 +f 774/489/606 749/377/393 748/379/395 +f 782/390/416 736/477/575 735/370/383 +f 718/359/367 784/393/419 799/405/434 +f 805/379/607 920/489/608 914/467/591 +f 796/402/431 937/477/576 797/403/432 +f 953/490/609 747/371/392 937/477/576 +f 805/379/607 954/487/610 801/378/435 +f 801/378/435 955/488/611 716/358/366 +f 955/488/611 717/404/438 716/358/366 +f 792/397/442 870/438/505 954/487/610 +f 954/487/610 942/481/595 955/488/611 +f 955/488/611 742/401/429 802/392/437 +f 762/384/402 946/485/599 909/458/545 +f 909/458/545 945/484/598 907/455/542 +f 907/455/542 808/400/445 904/456/543 +f 790/400/428 910/455/548 902/456/612 +f 948/484/601 912/458/550 910/455/548 +f 950/485/603 761/384/404 912/458/550 +f 956/451/613 898/491/614 897/451/535 +f 958/369/615 960/492/616 961/368/617 +f 877/444/516 956/451/618 739/373/387 +f 875/442/514 962/367/619 877/444/516 +f 874/439/511 958/369/620 875/442/514 +f 956/451/618 740/373/386 739/373/387 +f 957/491/621 964/493/622 898/491/623 +f 960/492/624 966/494/625 961/368/626 +f 961/368/626 967/495/627 968/452/628 +f 968/452/628 963/493/629 957/491/621 +f 733/452/630 964/493/622 969/495/631 +f 734/368/632 969/495/631 970/494/633 +f 900/492/634 970/494/633 901/496/635 +f 731/369/382 900/492/636 899/453/636 +f 956/451/613 968/452/637 957/491/638 +f 963/493/639 967/495/640 965/496/641 +f 885/446/523 891/448/529 810/412/508 +f 962/367/642 961/368/617 968/452/637 +f 773/391/417 749/377/393 774/489/606 +f 925/469/561 795/497/643 920/489/608 +f 800/406/436 795/497/643 925/469/561 +f 715/360/368 796/402/431 800/406/436 +f 715/360/368 926/470/562 953/490/609 +f 750/498/644 773/391/417 782/390/416 +f 923/468/559 782/390/416 735/370/383 +f 923/468/559 738/372/385 799/405/434 +f 799/405/434 926/470/562 718/359/367 +f 924/358/560 799/405/434 798/404/433 +f 710/355/645 862/433/645 860/432/645 +f 979/499/193 980/500/193 974/501/193 +f 981/502/646 974/501/647 973/502/648 +f 990/503/194 982/501/194 985/500/194 +f 985/500/649 971/504/650 980/500/649 +f 982/501/647 975/503/651 974/501/647 +f 990/503/651 976/505/652 975/503/651 +f 986/499/653 980/500/649 979/499/653 +f 989/505/652 977/506/654 976/505/652 +f 988/506/655 978/507/656 977/506/655 +f 973/502/648 983/508/657 981/502/646 +f 972/508/658 984/504/650 983/508/658 +f 987/507/659 979/499/653 978/507/656 +f 999/509/193 1000/510/193 994/511/193 +f 1001/512/660 994/511/661 993/512/660 +f 1010/513/194 1002/511/194 1005/510/194 +f 1005/510/662 991/514/663 1000/510/662 +f 1002/511/661 995/513/664 994/511/661 +f 1010/513/664 996/515/665 995/513/664 +f 1006/509/666 1000/510/662 999/509/666 +f 1009/515/665 997/516/667 996/515/665 +f 1008/516/668 998/517/669 997/516/668 +f 993/512/660 1003/518/670 1001/512/660 +f 992/518/671 1004/514/663 1003/518/671 +f 1007/517/669 999/509/666 998/517/669 +f 1019/519/193 1020/520/193 1014/521/193 +f 1021/522/672 1014/521/673 1013/522/672 +f 1030/523/194 1022/521/194 1025/520/194 +f 1025/520/674 1011/524/675 1020/520/674 +f 1022/521/676 1015/523/677 1014/521/673 +f 1030/523/677 1016/525/678 1015/523/677 +f 1026/519/679 1020/520/674 1019/519/679 +f 1029/525/678 1017/526/680 1016/525/678 +f 1028/526/681 1018/527/682 1017/526/681 +f 1013/522/672 1023/528/683 1021/522/672 +f 1012/528/684 1024/524/675 1023/528/684 +f 1027/527/685 1019/519/679 1018/527/682 +f 1039/529/193 1040/530/193 1034/531/193 +f 1041/532/686 1034/531/676 1033/532/686 +f 1050/533/194 1042/531/194 1045/530/194 +f 1045/530/674 1031/534/675 1040/530/674 +f 1042/531/676 1035/533/677 1034/531/676 +f 1050/533/677 1036/535/678 1035/533/677 +f 1046/529/687 1040/530/674 1039/529/687 +f 1049/535/678 1037/536/680 1036/535/678 +f 1048/536/688 1038/537/685 1037/536/688 +f 1033/532/686 1043/538/683 1041/532/686 +f 1032/538/684 1044/534/675 1043/538/684 +f 1047/537/685 1039/529/687 1038/537/685 +f 1059/499/193 1060/500/193 1054/501/193 +f 1061/502/646 1054/501/647 1053/502/648 +f 1070/503/194 1062/501/194 1065/500/194 +f 1065/500/649 1051/504/650 1060/500/649 +f 1062/501/647 1055/503/651 1054/501/647 +f 1070/503/651 1056/505/652 1055/503/651 +f 1066/499/653 1060/500/649 1059/499/653 +f 1069/505/652 1057/506/654 1056/505/652 +f 1068/506/655 1058/507/659 1057/506/655 +f 1053/502/648 1063/508/657 1061/502/646 +f 1052/508/658 1064/504/650 1063/508/658 +f 1067/507/659 1059/499/653 1058/507/659 +f 1079/509/193 1080/510/193 1074/511/193 +f 1081/512/660 1074/511/661 1073/512/660 +f 1090/513/194 1082/511/194 1085/510/194 +f 1085/510/662 1071/514/663 1080/510/662 +f 1082/511/661 1075/513/664 1074/511/661 +f 1090/513/664 1076/539/665 1075/513/664 +f 1086/509/666 1080/510/662 1079/509/666 +f 1089/515/665 1077/516/667 1076/539/665 +f 1088/516/668 1078/517/669 1077/516/668 +f 1073/512/660 1083/518/670 1081/512/660 +f 1072/518/671 1084/514/689 1083/518/671 +f 1087/517/669 1079/509/666 1078/517/669 +f 1099/519/193 1100/520/193 1094/521/193 +f 1101/522/672 1094/521/673 1093/522/672 +f 1110/523/194 1102/521/194 1105/520/194 +f 1105/520/674 1091/524/675 1100/520/674 +f 1102/521/676 1095/523/677 1094/521/673 +f 1110/523/677 1096/525/678 1095/523/677 +f 1106/519/679 1100/520/674 1099/519/679 +f 1109/525/678 1097/526/680 1096/525/678 +f 1108/526/690 1098/527/682 1097/526/681 +f 1093/522/672 1103/528/683 1101/522/672 +f 1092/528/684 1104/524/675 1103/528/684 +f 1107/527/682 1099/519/679 1098/527/682 +f 1119/529/193 1120/530/193 1114/531/193 +f 1121/532/686 1114/531/676 1113/532/686 +f 1130/533/194 1122/531/194 1125/530/194 +f 1125/530/674 1111/534/675 1120/530/674 +f 1122/531/676 1115/533/677 1114/531/676 +f 1130/533/677 1116/535/678 1115/533/677 +f 1126/529/687 1120/530/674 1119/529/687 +f 1129/535/678 1117/536/680 1116/535/678 +f 1128/536/688 1118/537/685 1117/536/688 +f 1113/532/686 1123/538/683 1121/532/686 +f 1112/538/684 1124/534/675 1123/538/684 +f 1127/537/685 1119/529/687 1118/537/685 +f 700/349/353 691/480/354 694/350/354 +f 691/480/354 692/479/354 693/478/354 +f 694/350/354 691/480/354 693/478/354 +f 694/350/354 695/350/354 699/349/353 +f 695/350/354 696/478/354 698/480/354 +f 696/478/354 697/479/354 698/480/354 +f 698/480/354 699/349/353 695/350/354 +f 702/351/355 703/352/468 704/352/356 +f 706/353/358 702/351/355 701/351/357 +f 708/354/360 709/354/491 710/355/361 +f 712/356/363 713/357/528 714/357/364 +f 716/358/366 717/404/438 718/359/367 +f 720/361/369 721/361/510 722/362/370 +f 724/363/372 725/364/379 726/364/373 +f 704/352/356 703/352/468 724/363/372 +f 728/365/375 709/354/491 708/354/360 +f 730/366/377 721/361/510 720/361/369 +f 725/364/379 728/365/375 727/365/376 +f 732/367/380 733/452/536 734/368/381 +f 735/370/383 736/477/575 737/371/384 +f 740/373/386 712/356/363 711/356/365 +f 741/374/388 742/401/429 730/366/377 +f 744/375/389 745/375/415 746/376/390 +f 743/376/391 746/376/390 747/371/392 +f 749/377/393 750/498/644 751/378/394 +f 756/381/421 752/380/396 755/381/398 +f 752/380/396 753/380/396 755/381/398 +f 714/357/364 713/357/528 757/382/399 +f 760/383/401 761/384/404 762/384/402 +f 758/382/400 757/382/399 760/383/401 +f 764/385/441 762/384/402 755/381/398 +f 762/384/402 761/384/404 755/381/398 +f 772/386/408 765/386/408 753/380/396 +f 765/386/408 766/380/585 767/380/587 +f 767/380/587 768/380/589 765/386/408 +f 768/380/589 753/380/396 765/386/408 +f 770/380/407 771/380/590 772/386/408 +f 753/380/396 752/380/396 772/386/408 +f 752/380/396 769/380/406 772/386/408 +f 778/388/410 773/391/417 774/489/194 +f 774/489/194 775/467/194 778/388/410 +f 775/467/194 766/380/194 699/349/194 +f 778/388/410 775/467/194 699/349/194 +f 766/380/194 765/386/194 699/349/194 +f 699/349/194 698/480/581 776/475/582 +f 776/475/582 777/387/409 699/349/194 +f 772/386/408 700/349/353 699/349/353 +f 722/362/370 706/353/358 705/353/359 +f 779/389/411 780/389/414 695/350/412 +f 780/389/414 779/389/411 745/375/415 +f 778/388/410 781/403/573 782/390/416 +f 787/396/423 748/379/395 788/397/424 +f 791/399/426 792/397/442 793/398/427 +f 794/388/430 795/497/643 796/402/431 +f 801/378/435 716/358/366 715/360/368 +f 792/397/442 805/379/607 806/396/443 +f 789/398/425 788/397/424 807/399/444 +f 809/407/446 810/412/508 811/408/447 +f 812/409/448 811/408/447 813/410/449 +f 814/411/450 813/410/449 719/362/371 +f 816/407/451 817/409/454 818/408/452 +f 817/409/454 819/411/456 820/410/455 +f 819/411/456 706/353/358 722/362/370 +f 821/413/457 809/407/446 812/409/448 +f 822/414/458 812/409/448 814/411/450 +f 814/411/450 705/353/359 701/351/357 +f 824/413/460 825/414/461 817/409/454 +f 825/414/461 826/415/467 819/411/456 +f 819/411/456 826/415/467 702/351/355 +f 827/416/462 821/413/457 822/414/458 +f 822/414/458 823/415/459 829/418/464 +f 823/415/459 701/351/357 704/352/356 +f 830/416/465 831/417/499 825/414/461 +f 825/414/461 831/417/499 832/418/466 +f 826/415/467 832/418/466 703/352/468 +f 833/419/469 834/424/498 835/420/470 +f 836/421/471 835/420/470 837/422/472 +f 838/423/473 837/422/472 723/363/374 +f 840/419/474 841/421/477 842/420/475 +f 841/421/477 843/423/479 844/422/478 +f 843/423/479 725/364/379 724/363/372 +f 833/419/469 836/421/471 846/425/480 +f 846/425/480 836/421/471 838/423/473 +f 838/423/473 726/364/373 727/365/376 +f 840/419/474 848/426/487 849/425/483 +f 849/425/483 850/427/490 843/423/479 +f 843/423/479 850/427/490 728/365/375 +f 845/426/481 846/425/480 852/428/484 +f 846/425/480 847/427/482 853/430/486 +f 847/427/482 727/365/376 708/354/360 +f 848/426/487 854/429/495 855/428/488 +f 849/425/483 855/428/488 856/430/489 +f 850/427/490 856/430/489 709/354/491 +f 851/429/485 852/428/484 858/431/492 +f 852/428/484 853/430/486 859/433/494 +f 853/430/486 708/354/360 707/355/362 +f 854/429/495 860/432/691 861/431/496 +f 855/428/488 861/431/496 862/433/497 +f 856/430/489 862/433/497 710/355/361 +f 834/424/498 827/416/462 828/417/463 +f 828/417/463 829/418/464 837/422/472 +f 829/418/464 704/352/356 723/363/374 +f 839/424/476 842/420/475 831/417/499 +f 831/417/499 842/420/475 844/422/478 +f 832/418/466 844/422/478 724/363/372 +f 807/399/444 864/466/558 865/434/500 +f 865/434/500 864/466/558 866/436/502 +f 867/437/503 866/436/502 729/366/378 +f 791/399/426 868/435/509 869/434/504 +f 869/434/504 871/437/507 872/436/506 +f 871/437/507 721/361/510 730/366/377 +f 810/412/508 863/435/501 865/434/500 +f 811/408/447 865/434/500 867/437/503 +f 813/410/449 867/437/503 720/361/369 +f 815/412/453 818/408/452 869/434/504 +f 818/408/452 820/410/455 871/437/507 +f 820/410/455 722/362/370 721/361/510 +f 874/439/511 875/442/514 876/440/512 +f 875/442/514 877/444/516 878/443/515 +f 877/444/516 739/373/387 711/356/365 +f 879/439/517 880/441/525 881/440/518 +f 882/442/519 881/440/518 883/443/520 +f 884/444/521 883/443/520 712/356/363 +f 873/441/513 876/440/512 886/445/522 +f 876/440/512 878/443/515 887/447/524 +f 878/443/515 711/356/365 714/357/364 +f 880/441/525 888/446/533 889/445/526 +f 881/440/518 889/445/526 890/447/527 +f 883/443/520 890/447/527 713/357/528 +f 891/448/529 885/446/523 886/445/522 +f 892/449/530 886/445/522 887/447/524 +f 887/447/524 714/357/364 758/382/400 +f 894/448/532 895/449/534 889/445/526 +f 895/449/534 896/450/556 890/447/527 +f 890/447/527 896/450/556 757/382/399 +f 897/451/535 898/491/614 733/452/536 +f 899/453/538 900/492/634 901/496/635 +f 901/496/635 860/432/691 854/429/495 +f 854/429/495 848/426/487 840/419/474 +f 840/419/474 839/424/476 854/429/495 +f 839/424/476 830/416/465 899/453/538 +f 830/416/465 824/413/460 879/439/517 +f 824/413/460 816/407/451 879/439/517 +f 816/407/451 815/412/453 880/441/525 +f 815/412/453 868/435/509 894/448/532 +f 816/407/451 880/441/525 879/439/517 +f 868/435/509 791/399/426 902/456/612 +f 791/399/426 790/400/428 902/456/612 +f 839/424/476 899/453/538 901/496/635 +f 901/496/635 854/429/495 839/424/476 +f 879/439/517 899/453/538 830/416/465 +f 868/435/509 902/456/612 903/454/547 +f 868/435/509 903/454/547 894/448/532 +f 880/441/525 815/412/453 888/446/533 +f 879/439/517 882/442/519 731/369/537 +f 882/442/519 884/444/521 732/367/539 +f 884/444/521 740/373/386 897/451/540 +f 905/454/541 906/457/544 907/455/542 +f 906/457/544 908/459/546 909/458/545 +f 908/459/546 759/383/403 762/384/402 +f 903/454/547 902/456/612 910/455/548 +f 911/460/549 910/455/548 912/458/550 +f 913/459/551 912/458/550 761/384/404 +f 806/396/443 914/467/591 915/461/552 +f 916/462/553 915/461/552 917/463/554 +f 918/464/555 917/463/554 756/381/421 +f 891/448/529 892/449/530 906/457/544 +f 892/449/530 893/450/531 908/459/546 +f 893/450/531 758/382/400 759/383/403 +f 894/448/532 903/454/547 911/460/549 +f 895/449/534 911/460/549 913/459/551 +f 896/450/556 913/459/551 760/383/401 +f 729/366/378 866/436/502 919/465/557 +f 914/467/193 920/489/193 794/388/430 +f 920/489/193 795/497/643 794/388/430 +f 794/388/430 921/387/567 700/349/193 +f 914/467/193 794/388/430 700/349/193 +f 921/387/567 922/475/569 700/349/193 +f 922/475/569 691/480/580 700/349/193 +f 700/349/193 772/386/193 771/380/193 +f 751/378/394 750/498/644 923/468/559 +f 925/469/561 805/379/607 801/378/435 +f 738/372/385 737/371/384 747/371/392 +f 777/387/409 776/475/582 927/471/563 +f 928/472/564 927/471/563 929/473/565 +f 930/474/566 929/473/565 780/389/414 +f 921/387/567 931/472/570 932/471/568 +f 931/472/570 933/474/572 934/473/571 +f 933/474/572 745/375/415 779/389/411 +f 777/387/409 928/472/564 781/403/573 +f 781/403/573 928/472/564 930/474/566 +f 930/474/566 744/375/389 743/376/391 +f 921/387/567 794/388/430 797/403/432 +f 797/403/432 936/476/577 933/474/572 +f 933/474/572 936/476/577 746/376/390 +f 736/477/575 935/476/574 743/376/391 +f 937/477/576 747/371/392 746/376/390 +f 779/389/411 694/350/413 693/478/578 +f 934/473/571 693/478/578 692/479/579 +f 932/471/568 692/479/579 691/480/580 +f 698/480/581 697/479/583 927/471/563 +f 697/479/583 696/478/584 929/473/565 +f 696/478/584 695/350/412 780/389/414 +f 766/380/585 775/467/592 938/461/586 +f 767/380/587 938/461/586 939/463/588 +f 768/380/589 939/463/588 754/381/397 +f 771/380/590 770/380/407 915/461/552 +f 770/380/407 769/380/406 917/463/554 +f 769/380/406 752/380/396 756/381/421 +f 787/396/423 940/462/593 938/461/586 +f 940/462/593 941/464/594 939/463/588 +f 941/464/594 803/394/439 754/381/397 +f 730/366/377 742/401/429 942/481/595 +f 789/398/425 943/482/596 940/462/593 +f 943/482/596 944/483/597 941/464/594 +f 944/483/597 804/395/440 803/394/439 +f 808/400/445 945/484/598 943/482/596 +f 945/484/598 946/485/599 944/483/597 +f 946/485/599 764/385/441 804/395/440 +f 790/400/428 793/398/427 947/482/600 +f 948/484/601 947/482/600 949/486/602 +f 950/485/603 949/486/602 786/395/422 +f 793/398/427 806/396/443 916/462/553 +f 947/482/600 916/462/553 918/464/555 +f 949/486/602 918/464/555 785/394/420 +f 788/397/424 951/487/604 864/466/558 +f 951/487/604 952/488/605 919/465/557 +f 919/465/557 952/488/605 783/392/418 +f 748/379/395 751/378/394 951/487/604 +f 751/378/394 924/358/560 952/488/605 +f 952/488/605 924/358/560 798/404/433 +f 787/396/423 775/467/592 748/379/395 +f 775/467/592 774/489/606 748/379/395 +f 782/390/416 781/403/573 736/477/575 +f 914/467/591 806/396/443 805/379/607 +f 805/379/607 925/469/561 920/489/608 +f 796/402/431 953/490/609 937/477/576 +f 953/490/609 926/470/562 747/371/392 +f 805/379/607 792/397/442 954/487/610 +f 801/378/435 954/487/610 955/488/611 +f 955/488/611 802/392/437 717/404/438 +f 792/397/442 791/399/426 870/438/505 +f 954/487/610 870/438/505 942/481/595 +f 955/488/611 942/481/595 742/401/429 +f 762/384/402 764/385/441 946/485/599 +f 909/458/545 946/485/599 945/484/598 +f 907/455/542 945/484/598 808/400/445 +f 790/400/428 948/484/601 910/455/548 +f 948/484/601 950/485/603 912/458/550 +f 950/485/603 763/385/405 761/384/404 +f 956/451/613 957/491/638 898/491/614 +f 958/369/615 959/453/616 960/492/616 +f 877/444/516 962/367/619 956/451/618 +f 875/442/514 958/369/620 962/367/619 +f 874/439/511 959/453/692 958/369/620 +f 956/451/618 897/451/540 740/373/386 +f 957/491/621 963/493/629 964/493/622 +f 960/492/624 965/496/693 966/494/625 +f 961/368/626 966/494/625 967/495/627 +f 968/452/628 967/495/627 963/493/629 +f 733/452/630 898/491/623 964/493/622 +f 734/368/632 733/452/630 969/495/631 +f 900/492/634 734/368/632 970/494/633 +f 731/369/382 734/368/381 900/492/636 +f 956/451/613 962/367/642 968/452/637 +f 967/495/640 966/494/640 965/496/641 +f 965/496/641 857/432/694 963/493/639 +f 857/432/694 860/432/695 964/493/696 +f 860/432/695 901/496/697 964/493/696 +f 901/496/697 970/494/640 969/495/640 +f 964/493/696 901/496/697 969/495/640 +f 964/493/696 963/493/639 857/432/694 +f 904/456/543 808/400/445 807/399/444 +f 807/399/444 863/435/501 904/456/543 +f 863/435/501 810/412/508 891/448/529 +f 904/456/543 863/435/501 905/454/541 +f 810/412/508 809/407/446 873/441/513 +f 809/407/446 821/413/457 874/439/511 +f 821/413/457 827/416/462 874/439/511 +f 827/416/462 834/424/498 959/453/692 +f 834/424/498 833/419/469 845/426/481 +f 845/426/481 851/429/485 834/424/498 +f 851/429/485 857/432/493 965/496/693 +f 965/496/693 960/492/624 959/453/692 +f 965/496/693 959/453/692 834/424/498 +f 851/429/485 965/496/693 834/424/498 +f 809/407/446 874/439/511 873/441/513 +f 827/416/462 959/453/692 874/439/511 +f 905/454/541 863/435/501 891/448/529 +f 873/441/513 885/446/523 810/412/508 +f 962/367/642 958/369/615 961/368/617 +f 800/406/436 796/402/431 795/497/643 +f 715/360/368 953/490/609 796/402/431 +f 715/360/368 718/359/367 926/470/562 +f 750/498/644 749/377/393 773/391/417 +f 923/468/559 750/498/644 782/390/416 +f 923/468/559 735/370/383 738/372/385 +f 799/405/434 738/372/385 926/470/562 +f 924/358/560 923/468/559 799/405/434 +f 861/431/645 860/432/645 862/433/645 +f 860/432/645 857/432/645 710/355/645 +f 857/432/645 858/431/645 859/433/645 +f 859/433/645 707/355/645 857/432/645 +f 707/355/645 710/355/645 857/432/645 +f 980/500/193 971/504/193 974/501/193 +f 971/504/193 972/508/193 973/502/193 +f 974/501/193 971/504/193 973/502/193 +f 974/501/193 975/503/193 979/499/193 +f 975/503/193 976/505/193 978/507/193 +f 976/505/193 977/506/193 978/507/193 +f 978/507/193 979/499/193 975/503/193 +f 981/502/646 982/501/647 974/501/647 +f 982/501/194 981/502/194 984/504/194 +f 981/502/194 983/508/194 984/504/194 +f 984/504/194 985/500/194 982/501/194 +f 985/500/194 986/499/194 990/503/194 +f 986/499/194 987/507/194 989/505/194 +f 987/507/194 988/506/194 989/505/194 +f 989/505/194 990/503/194 986/499/194 +f 985/500/649 984/504/650 971/504/650 +f 982/501/647 990/503/651 975/503/651 +f 990/503/651 989/505/652 976/505/652 +f 986/499/653 985/500/649 980/500/649 +f 989/505/652 988/506/654 977/506/654 +f 988/506/655 987/507/659 978/507/656 +f 973/502/648 972/508/657 983/508/657 +f 972/508/658 971/504/650 984/504/650 +f 987/507/659 986/499/653 979/499/653 +f 1000/510/193 991/514/193 993/512/193 +f 991/514/193 992/518/193 993/512/193 +f 993/512/193 994/511/193 1000/510/193 +f 994/511/193 995/513/193 999/509/193 +f 995/513/193 996/515/193 998/517/193 +f 996/515/193 997/516/193 998/517/193 +f 998/517/193 999/509/193 995/513/193 +f 1001/512/660 1002/511/661 994/511/661 +f 1002/511/194 1001/512/194 1005/510/194 +f 1001/512/194 1003/518/194 1004/514/194 +f 1005/510/194 1001/512/194 1004/514/194 +f 1005/510/194 1006/509/194 1010/513/194 +f 1006/509/194 1007/517/194 1009/515/194 +f 1007/517/194 1008/516/194 1009/515/194 +f 1009/515/194 1010/513/194 1006/509/194 +f 1005/510/662 1004/514/663 991/514/663 +f 1002/511/661 1010/513/664 995/513/664 +f 1010/513/664 1009/515/665 996/515/665 +f 1006/509/666 1005/510/662 1000/510/662 +f 1009/515/665 1008/516/667 997/516/667 +f 1008/516/668 1007/517/669 998/517/669 +f 993/512/660 992/518/670 1003/518/670 +f 992/518/671 991/514/663 1004/514/663 +f 1007/517/669 1006/509/666 999/509/666 +f 1020/520/193 1011/524/193 1014/521/193 +f 1011/524/193 1012/528/193 1013/522/193 +f 1014/521/193 1011/524/193 1013/522/193 +f 1014/521/193 1015/523/193 1019/519/193 +f 1015/523/193 1016/525/193 1018/527/193 +f 1016/525/193 1017/526/193 1018/527/193 +f 1018/527/193 1019/519/193 1015/523/193 +f 1021/522/672 1022/521/676 1014/521/673 +f 1022/521/194 1021/522/194 1024/524/194 +f 1021/522/194 1023/528/194 1024/524/194 +f 1024/524/194 1025/520/194 1022/521/194 +f 1025/520/194 1026/519/194 1030/523/194 +f 1026/519/194 1027/527/194 1029/525/194 +f 1027/527/194 1028/526/194 1029/525/194 +f 1029/525/194 1030/523/194 1026/519/194 +f 1025/520/674 1024/524/675 1011/524/675 +f 1022/521/676 1030/523/677 1015/523/677 +f 1030/523/677 1029/525/678 1016/525/678 +f 1026/519/679 1025/520/674 1020/520/674 +f 1029/525/678 1028/526/680 1017/526/680 +f 1028/526/681 1027/527/685 1018/527/682 +f 1013/522/672 1012/528/683 1023/528/683 +f 1012/528/684 1011/524/675 1024/524/675 +f 1027/527/685 1026/519/679 1019/519/679 +f 1040/530/193 1031/534/193 1033/532/193 +f 1031/534/193 1032/538/193 1033/532/193 +f 1033/532/193 1034/531/193 1040/530/193 +f 1034/531/193 1035/533/193 1039/529/193 +f 1035/533/193 1036/535/193 1038/537/193 +f 1036/535/193 1037/536/193 1038/537/193 +f 1038/537/193 1039/529/193 1035/533/193 +f 1041/532/686 1042/531/676 1034/531/676 +f 1042/531/194 1041/532/194 1045/530/194 +f 1041/532/194 1043/538/194 1044/534/194 +f 1045/530/194 1041/532/194 1044/534/194 +f 1045/530/194 1046/529/194 1050/533/194 +f 1046/529/194 1047/537/194 1049/535/194 +f 1047/537/194 1048/536/194 1049/535/194 +f 1049/535/194 1050/533/194 1046/529/194 +f 1045/530/674 1044/534/675 1031/534/675 +f 1042/531/676 1050/533/677 1035/533/677 +f 1050/533/677 1049/535/678 1036/535/678 +f 1046/529/687 1045/530/674 1040/530/674 +f 1049/535/678 1048/536/680 1037/536/680 +f 1048/536/688 1047/537/685 1038/537/685 +f 1033/532/686 1032/538/683 1043/538/683 +f 1032/538/684 1031/534/675 1044/534/675 +f 1047/537/685 1046/529/687 1039/529/687 +f 1060/500/193 1051/504/193 1054/501/193 +f 1051/504/193 1052/508/193 1053/502/193 +f 1054/501/193 1051/504/193 1053/502/193 +f 1054/501/193 1055/503/193 1059/499/193 +f 1055/503/193 1056/505/193 1058/507/193 +f 1056/505/193 1057/506/193 1058/507/193 +f 1058/507/193 1059/499/193 1055/503/193 +f 1061/502/646 1062/501/647 1054/501/647 +f 1062/501/194 1061/502/194 1064/504/194 +f 1061/502/194 1063/508/194 1064/504/194 +f 1064/504/194 1065/500/194 1062/501/194 +f 1065/500/194 1066/499/194 1070/503/194 +f 1066/499/194 1067/507/194 1069/505/194 +f 1067/507/194 1068/506/194 1069/505/194 +f 1069/505/194 1070/503/194 1066/499/194 +f 1065/500/649 1064/504/650 1051/504/650 +f 1062/501/647 1070/503/651 1055/503/651 +f 1070/503/651 1069/505/652 1056/505/652 +f 1066/499/653 1065/500/649 1060/500/649 +f 1069/505/652 1068/506/654 1057/506/654 +f 1068/506/655 1067/507/659 1058/507/659 +f 1053/502/648 1052/508/657 1063/508/657 +f 1052/508/658 1051/504/650 1064/504/650 +f 1067/507/659 1066/499/653 1059/499/653 +f 1080/510/193 1071/514/193 1074/511/193 +f 1071/514/193 1072/518/193 1073/512/193 +f 1074/511/193 1071/514/193 1073/512/193 +f 1074/511/193 1075/513/193 1079/509/193 +f 1075/513/193 1076/539/193 1078/517/193 +f 1076/539/193 1077/516/193 1078/517/193 +f 1078/517/193 1079/509/193 1075/513/193 +f 1081/512/660 1082/511/661 1074/511/661 +f 1082/511/194 1081/512/194 1084/514/194 +f 1081/512/194 1083/518/194 1084/514/194 +f 1084/514/194 1085/510/194 1082/511/194 +f 1085/510/194 1086/509/194 1090/513/194 +f 1086/509/194 1087/517/194 1089/515/194 +f 1087/517/194 1088/516/194 1089/515/194 +f 1089/515/194 1090/513/194 1086/509/194 +f 1085/510/662 1084/514/689 1071/514/663 +f 1082/511/661 1090/513/664 1075/513/664 +f 1090/513/664 1089/515/665 1076/539/665 +f 1086/509/666 1085/510/662 1080/510/662 +f 1089/515/665 1088/516/667 1077/516/667 +f 1088/516/668 1087/517/669 1078/517/669 +f 1073/512/660 1072/518/670 1083/518/670 +f 1072/518/671 1071/514/663 1084/514/689 +f 1087/517/669 1086/509/666 1079/509/666 +f 1100/520/193 1091/524/193 1094/521/193 +f 1091/524/193 1092/528/193 1093/522/193 +f 1094/521/193 1091/524/193 1093/522/193 +f 1094/521/193 1095/523/193 1099/519/193 +f 1095/523/193 1096/525/193 1098/527/193 +f 1096/525/193 1097/526/193 1098/527/193 +f 1098/527/193 1099/519/193 1095/523/193 +f 1101/522/672 1102/521/676 1094/521/673 +f 1102/521/194 1101/522/194 1104/524/194 +f 1101/522/194 1103/528/194 1104/524/194 +f 1104/524/194 1105/520/194 1102/521/194 +f 1105/520/194 1106/519/194 1110/523/194 +f 1106/519/194 1107/527/194 1109/525/194 +f 1107/527/194 1108/526/194 1109/525/194 +f 1109/525/194 1110/523/194 1106/519/194 +f 1105/520/674 1104/524/675 1091/524/675 +f 1102/521/676 1110/523/677 1095/523/677 +f 1110/523/677 1109/525/678 1096/525/678 +f 1106/519/679 1105/520/674 1100/520/674 +f 1109/525/678 1108/526/680 1097/526/680 +f 1108/526/690 1107/527/682 1098/527/682 +f 1093/522/672 1092/528/683 1103/528/683 +f 1092/528/684 1091/524/675 1104/524/675 +f 1107/527/682 1106/519/679 1099/519/679 +f 1120/530/193 1111/534/193 1113/532/193 +f 1111/534/193 1112/538/193 1113/532/193 +f 1113/532/193 1114/531/193 1120/530/193 +f 1114/531/193 1115/533/193 1119/529/193 +f 1115/533/193 1116/535/193 1118/537/193 +f 1116/535/193 1117/536/193 1118/537/193 +f 1118/537/193 1119/529/193 1115/533/193 +f 1121/532/686 1122/531/676 1114/531/676 +f 1122/531/194 1121/532/194 1125/530/194 +f 1121/532/194 1123/538/194 1124/534/194 +f 1125/530/194 1121/532/194 1124/534/194 +f 1125/530/194 1126/529/194 1130/533/194 +f 1126/529/194 1127/537/194 1129/535/194 +f 1127/537/194 1128/536/194 1129/535/194 +f 1129/535/194 1130/533/194 1126/529/194 +f 1125/530/674 1124/534/675 1111/534/675 +f 1122/531/676 1130/533/677 1115/533/677 +f 1130/533/677 1129/535/678 1116/535/678 +f 1126/529/687 1125/530/674 1120/530/674 +f 1129/535/678 1128/536/680 1117/536/680 +f 1128/536/688 1127/537/685 1118/537/685 +f 1113/532/686 1112/538/683 1123/538/683 +f 1112/538/684 1111/534/675 1124/534/675 +f 1127/537/685 1126/529/687 1119/529/687 +f 1132/540/190 1134/541/351 1131/542/190 +f 1133/543/351 1136/544/193 1134/541/351 +f 1135/545/193 1138/546/698 1136/544/193 +f 1137/547/698 1140/548/192 1138/546/698 +f 1139/549/192 1142/546/699 1140/548/192 +f 1141/547/699 1144/544/194 1142/546/699 +f 1143/545/191 1141/547/191 1149/545/191 +f 1151/550/191 1152/545/191 1135/545/191 +f 1143/545/194 1154/541/352 1144/544/194 +f 1146/543/352 1131/542/190 1154/541/352 +f 1157/544/195 1158/551/195 1142/546/195 +f 1134/541/195 1136/544/195 1161/552/195 +f 1151/550/699 1162/553/192 1161/552/699 +f 1151/550/699 1160/544/194 1152/545/194 +f 1152/545/194 1159/551/352 1153/554/352 +f 1153/554/352 1155/555/190 1147/556/190 +f 1147/556/190 1158/551/351 1148/554/351 +f 1149/545/193 1158/551/351 1157/544/193 +f 1145/550/698 1157/544/193 1156/552/698 +f 1150/557/192 1156/552/698 1162/553/192 +f 1132/540/190 1133/543/351 1134/541/351 +f 1133/543/351 1135/545/193 1136/544/193 +f 1135/545/193 1137/547/698 1138/546/698 +f 1137/547/698 1139/549/192 1140/548/192 +f 1139/549/192 1141/547/699 1142/546/699 +f 1141/547/699 1143/545/194 1144/544/194 +f 1149/545/191 1145/550/191 1143/545/191 +f 1145/550/191 1146/543/191 1143/545/191 +f 1141/547/191 1139/549/191 1148/554/191 +f 1139/549/191 1147/556/191 1148/554/191 +f 1141/547/191 1148/554/191 1149/545/191 +f 1153/554/191 1147/556/191 1139/549/191 +f 1132/540/191 1146/543/191 1145/550/191 +f 1132/540/191 1145/550/191 1150/557/191 +f 1153/554/191 1139/549/191 1137/547/191 +f 1152/545/191 1153/554/191 1135/545/191 +f 1153/554/191 1137/547/191 1135/545/191 +f 1133/543/191 1132/540/191 1150/557/191 +f 1133/543/191 1150/557/191 1151/550/191 +f 1133/543/191 1151/550/191 1135/545/191 +f 1143/545/194 1146/543/352 1154/541/352 +f 1146/543/352 1132/540/190 1131/542/190 +f 1158/551/195 1155/555/195 1140/548/195 +f 1144/544/195 1154/541/195 1156/552/195 +f 1144/544/195 1156/552/195 1157/544/195 +f 1158/551/195 1140/548/195 1142/546/195 +f 1144/544/195 1157/544/195 1142/546/195 +f 1156/552/195 1154/541/195 1131/542/195 +f 1138/546/195 1140/548/195 1159/551/195 +f 1140/548/195 1155/555/195 1159/551/195 +f 1162/553/195 1156/552/195 1131/542/195 +f 1161/552/195 1162/553/195 1134/541/195 +f 1162/553/195 1131/542/195 1134/541/195 +f 1136/544/195 1138/546/195 1159/551/195 +f 1136/544/195 1159/551/195 1160/544/195 +f 1136/544/195 1160/544/195 1161/552/195 +f 1151/550/699 1150/557/192 1162/553/192 +f 1151/550/699 1161/552/699 1160/544/194 +f 1152/545/194 1160/544/194 1159/551/352 +f 1153/554/352 1159/551/352 1155/555/190 +f 1147/556/190 1155/555/190 1158/551/351 +f 1149/545/193 1148/554/351 1158/551/351 +f 1145/550/698 1149/545/193 1157/544/193 +f 1150/557/192 1145/550/698 1156/552/698 +s 0 +f 1163/558/195 1164/558/195 1165/559/195 +f 1169/560/193 1170/561/193 1171/562/193 +f 1163/558/700 1173/563/700 1172/564/700 +f 1175/560/194 1164/558/194 1174/565/194 +f 1174/565/190 1178/560/190 1175/560/190 +f 1174/565/195 1163/558/195 1179/565/195 +f 1181/566/194 1182/567/194 1183/562/194 +f 1171/562/192 1182/567/192 1166/567/192 +f 1168/565/190 1184/560/190 1169/560/190 +f 1176/564/701 1165/559/701 1164/558/701 +f 1174/565/702 1179/565/702 1167/566/702 +f 1179/565/193 1172/564/193 1184/560/193 +f 1170/561/192 1183/562/192 1171/562/192 +f 1184/560/191 1176/564/191 1175/560/191 +f 1184/560/191 1175/560/191 1180/561/191 +f 1176/564/191 1172/564/191 1173/563/191 +f 1181/566/195 1166/567/195 1182/567/195 +f 1171/562/193 1166/567/193 1167/566/193 +f 1167/566/193 1168/565/193 1171/562/193 +f 1168/565/193 1169/560/193 1171/562/193 +f 1163/558/700 1165/559/700 1173/563/700 +f 1175/560/194 1176/564/194 1164/558/194 +f 1174/565/190 1177/565/190 1178/560/190 +f 1174/565/195 1164/558/195 1163/558/195 +f 1183/562/194 1180/561/194 1178/560/194 +f 1178/560/194 1177/565/194 1183/562/194 +f 1177/565/194 1181/566/194 1183/562/194 +f 1171/562/192 1183/562/192 1182/567/192 +f 1168/565/190 1179/565/190 1184/560/190 +f 1176/564/701 1173/563/701 1165/559/701 +f 1179/565/702 1168/565/702 1167/566/702 +f 1167/566/702 1181/566/702 1174/565/702 +f 1181/566/702 1177/565/702 1174/565/702 +f 1179/565/193 1163/558/193 1172/564/193 +f 1170/561/192 1180/561/192 1183/562/192 +f 1184/560/191 1172/564/191 1176/564/191 +f 1180/561/191 1170/561/191 1184/560/191 +f 1170/561/191 1169/560/191 1184/560/191 +f 1175/560/191 1178/560/191 1180/561/191 +f 1181/566/195 1167/566/195 1166/567/195 +s 1 +f 1186/568/190 1188/569/351 1185/570/190 +f 1187/571/351 1190/572/193 1188/569/351 +f 1189/573/193 1192/574/698 1190/572/193 +f 1191/575/698 1194/576/192 1192/574/698 +f 1193/577/192 1196/574/699 1194/576/192 +f 1195/575/699 1198/572/194 1196/574/699 +f 1197/573/191 1193/577/191 1189/573/191 +f 1197/573/194 1200/569/352 1198/572/194 +f 1200/569/352 1186/568/190 1185/570/190 +f 1196/574/195 1198/572/195 1200/569/195 +f 1186/568/190 1187/571/351 1188/569/351 +f 1187/571/351 1189/573/193 1190/572/193 +f 1189/573/193 1191/575/698 1192/574/698 +f 1191/575/698 1193/577/192 1194/576/192 +f 1193/577/192 1195/575/699 1196/574/699 +f 1195/575/699 1197/573/194 1198/572/194 +f 1189/573/191 1187/571/191 1186/568/191 +f 1186/568/191 1199/571/191 1189/573/191 +f 1199/571/191 1197/573/191 1189/573/191 +f 1197/573/191 1195/575/191 1193/577/191 +f 1193/577/191 1191/575/191 1189/573/191 +f 1197/573/194 1199/571/352 1200/569/352 +f 1200/569/352 1199/571/352 1186/568/190 +f 1200/569/195 1185/570/195 1188/569/195 +f 1188/569/195 1190/572/195 1200/569/195 +f 1190/572/195 1192/574/195 1200/569/195 +f 1192/574/195 1194/576/195 1200/569/195 +f 1194/576/195 1196/574/195 1200/569/195 +f 1202/578/190 1204/579/351 1201/580/190 +f 1203/581/351 1206/582/193 1204/579/351 +f 1205/583/193 1208/584/698 1206/582/193 +f 1207/585/698 1210/586/192 1208/584/698 +f 1209/587/192 1212/584/699 1210/586/192 +f 1211/585/699 1214/582/194 1212/584/699 +f 1213/583/191 1209/587/191 1205/583/191 +f 1213/583/194 1216/579/352 1214/582/194 +f 1215/581/352 1201/580/190 1216/579/352 +f 1214/582/195 1216/579/195 1208/584/195 +f 1202/578/190 1203/581/351 1204/579/351 +f 1203/581/351 1205/583/193 1206/582/193 +f 1205/583/193 1207/585/698 1208/584/698 +f 1207/585/698 1209/587/192 1210/586/192 +f 1209/587/192 1211/585/699 1212/584/699 +f 1211/585/699 1213/583/194 1214/582/194 +f 1205/583/191 1203/581/191 1202/578/191 +f 1202/578/191 1215/581/191 1213/583/191 +f 1213/583/191 1211/585/191 1209/587/191 +f 1209/587/191 1207/585/191 1205/583/191 +f 1205/583/191 1202/578/191 1213/583/191 +f 1213/583/194 1215/581/352 1216/579/352 +f 1215/581/352 1202/578/190 1201/580/190 +f 1216/579/195 1201/580/195 1208/584/195 +f 1201/580/195 1204/579/195 1208/584/195 +f 1204/579/195 1206/582/195 1208/584/195 +f 1208/584/195 1210/586/195 1212/584/195 +f 1212/584/195 1214/582/195 1208/584/195 +f 1218/588/190 1220/589/351 1217/590/190 +f 1219/591/351 1222/592/193 1220/589/351 +f 1221/593/193 1224/594/698 1222/592/193 +f 1223/595/698 1226/596/192 1224/594/698 +f 1225/597/192 1228/594/699 1226/596/192 +f 1227/595/699 1230/592/194 1228/594/699 +f 1229/593/191 1225/597/191 1221/593/191 +f 1229/593/194 1232/589/352 1230/592/194 +f 1231/591/352 1217/590/190 1232/589/352 +f 1228/594/195 1230/592/195 1232/589/195 +f 1218/588/190 1219/591/351 1220/589/351 +f 1219/591/351 1221/593/193 1222/592/193 +f 1221/593/193 1223/595/698 1224/594/698 +f 1223/595/698 1225/597/192 1226/596/192 +f 1225/597/192 1227/595/699 1228/594/699 +f 1227/595/699 1229/593/194 1230/592/194 +f 1221/593/191 1219/591/191 1218/588/191 +f 1218/588/191 1231/591/191 1229/593/191 +f 1229/593/191 1227/595/191 1225/597/191 +f 1225/597/191 1223/595/191 1221/593/191 +f 1221/593/191 1218/588/191 1229/593/191 +f 1229/593/194 1231/591/352 1232/589/352 +f 1231/591/352 1218/588/190 1217/590/190 +f 1232/589/195 1217/590/195 1220/589/195 +f 1220/589/195 1222/592/195 1232/589/195 +f 1222/592/195 1224/594/195 1232/589/195 +f 1224/594/195 1226/596/195 1232/589/195 +f 1226/596/195 1228/594/195 1232/589/195 +f 1234/598/703 1236/599/704 1233/600/705 +f 1235/601/706 1238/602/707 1236/599/704 +f 1237/603/708 1240/604/709 1238/602/707 +f 1239/605/710 1242/606/711 1240/604/709 +f 1241/607/712 1244/604/713 1242/606/711 +f 1243/605/714 1246/602/715 1244/604/713 +f 1245/608/716 1241/607/712 1237/603/708 +f 1245/608/716 1248/599/717 1246/602/715 +f 1248/599/717 1234/598/703 1233/600/705 +f 1244/604/713 1246/602/715 1248/599/717 +f 1234/598/703 1235/601/706 1236/599/704 +f 1235/601/706 1237/603/708 1238/602/707 +f 1237/603/708 1239/605/710 1240/604/709 +f 1239/605/710 1241/607/712 1242/606/711 +f 1241/607/712 1243/605/714 1244/604/713 +f 1243/605/714 1245/608/716 1246/602/715 +f 1237/603/708 1235/601/706 1234/598/703 +f 1234/598/703 1247/601/718 1237/603/708 +f 1247/601/718 1245/608/716 1237/603/708 +f 1245/608/716 1243/605/714 1241/607/712 +f 1241/607/712 1239/605/710 1237/603/708 +f 1245/608/716 1247/601/718 1248/599/717 +f 1248/599/717 1247/601/718 1234/598/703 +f 1248/599/717 1233/600/705 1236/599/704 +f 1236/599/704 1238/602/707 1248/599/717 +f 1238/602/707 1240/604/709 1248/599/717 +f 1240/604/709 1242/606/711 1248/599/717 +f 1242/606/711 1244/604/713 1248/599/717 +f 1250/609/190 1252/610/351 1249/611/190 +f 1251/612/351 1254/613/193 1252/610/351 +f 1253/614/193 1256/615/698 1254/613/193 +f 1255/616/698 1258/617/192 1256/615/698 +f 1258/617/192 1259/616/699 1260/615/699 +f 1259/616/699 1262/613/194 1260/615/699 +f 1261/614/191 1257/618/191 1253/614/191 +f 1261/614/194 1264/610/352 1262/613/194 +f 1263/612/352 1249/611/190 1264/610/352 +f 1260/615/195 1262/613/195 1264/610/195 +f 1250/609/190 1251/612/351 1252/610/351 +f 1251/612/351 1253/614/193 1254/613/193 +f 1253/614/193 1255/616/698 1256/615/698 +f 1255/616/698 1257/618/192 1258/617/192 +f 1258/617/192 1257/618/192 1259/616/699 +f 1259/616/699 1261/614/194 1262/613/194 +f 1253/614/191 1251/612/191 1250/609/191 +f 1250/609/191 1263/612/191 1261/614/191 +f 1261/614/191 1259/616/191 1257/618/191 +f 1257/618/191 1255/616/191 1253/614/191 +f 1253/614/191 1250/609/191 1261/614/191 +f 1261/614/194 1263/612/352 1264/610/352 +f 1263/612/352 1250/609/190 1249/611/190 +f 1264/610/195 1249/611/195 1252/610/195 +f 1252/610/195 1254/613/195 1264/610/195 +f 1254/613/195 1256/615/195 1264/610/195 +f 1256/615/195 1258/617/195 1264/610/195 +f 1258/617/195 1260/615/195 1264/610/195 +s 0 +f 1266/619/195 1268/620/195 1265/619/195 +f 1267/620/190 1270/621/190 1268/620/190 +f 1269/621/191 1272/622/191 1270/621/191 +f 1271/622/192 1265/619/192 1272/622/192 +f 1270/621/193 1265/619/193 1268/620/193 +f 1267/620/194 1271/622/194 1269/621/194 +f 1266/619/195 1267/620/195 1268/620/195 +f 1267/620/190 1269/621/190 1270/621/190 +f 1269/621/191 1271/622/191 1272/622/191 +f 1271/622/192 1266/619/192 1265/619/192 +f 1270/621/193 1272/622/193 1265/619/193 +f 1267/620/194 1266/619/194 1271/622/194 +o Guard +v -0.075429 0.170624 0.849928 +v 0.076654 0.170624 0.849928 +v 0.076654 0.210654 0.849928 +v -0.075429 0.210654 0.849928 +v -0.075429 0.170624 0.731509 +v 0.076654 0.170624 0.731509 +v -0.062753 0.100624 0.288424 +v 0.063977 0.100624 0.288424 +v 0.063977 0.100624 0.334112 +v -0.062753 0.100624 0.334112 +v -0.062753 0.140624 0.523278 +v 0.063977 0.140624 0.523278 +v 0.063977 0.161879 0.627054 +v -0.062753 0.161879 0.627054 +v -0.075429 0.170654 0.428800 +v 0.076654 0.170654 0.428800 +v 0.076654 0.130654 0.328424 +v -0.075429 0.130654 0.328424 +v -0.075429 0.210654 0.569176 +v 0.076654 0.210654 0.569176 +v 0.076654 0.109795 0.300640 +v 0.073412 0.102969 0.291549 +v -0.072187 0.102970 0.291549 +v -0.075429 0.109795 0.300640 +v 0.063977 0.104504 0.375389 +v -0.062753 0.104504 0.375389 +v -0.062753 0.101616 0.357071 +v 0.063977 0.101616 0.357071 +v 0.076654 0.168387 0.674625 +v 0.076654 0.168877 0.596451 +v 0.076654 0.146675 0.488050 +v 0.076654 0.111023 0.342077 +v 0.076654 0.110109 0.336278 +v 0.076654 0.109795 0.329011 +v 0.063977 0.168387 0.674625 +v -0.062753 0.168387 0.674625 +v -0.075429 0.168387 0.674625 +v 0.073412 0.106172 0.366869 +v 0.073412 0.103789 0.351753 +v -0.075429 0.111023 0.342077 +v -0.075429 0.110109 0.336278 +v -0.072187 0.103789 0.351753 +v -0.072187 0.106172 0.366869 +v 0.073412 0.102969 0.332807 +v -0.075429 0.109795 0.329011 +v -0.072187 0.102970 0.332807 +v 0.073412 0.142171 0.514267 +v -0.075429 0.146675 0.488050 +v -0.072187 0.142171 0.514267 +v 0.073412 0.163669 0.619227 +v -0.075429 0.168877 0.596451 +v -0.072187 0.163669 0.619227 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.9998 0.0197 +vn -0.0000 -1.0000 -0.0000 +vn 0.1081 -0.9941 -0.0000 +vn -0.1228 -0.9922 0.0223 +vn -0.1082 -0.9941 -0.0000 +vn 0.1730 -0.9619 0.2118 +vn -0.1261 -0.9820 0.1403 +vn -0.1730 -0.9619 0.2118 +vn -0.0000 0.9466 -0.3225 +vn -0.0000 0.8720 -0.4896 +vn -0.0000 0.9904 -0.1384 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 0.7997 -0.6004 +vn -0.1737 -0.9639 0.2019 +vn 0.1419 -0.9841 0.1067 +vn 0.1737 -0.9639 0.2019 +vn 1.0000 -0.0000 -0.0000 +vn 0.9871 -0.1577 0.0276 +vn 0.9890 -0.1438 0.0343 +vn -0.1420 -0.9841 0.1067 +vn 0.1228 -0.9922 0.0223 +vn -0.0000 -0.9962 0.0875 +vn 0.1260 -0.9821 0.1403 +vn 0.9839 -0.1760 0.0295 +vn 0.6628 -0.7453 0.0722 +vn 0.9764 -0.2157 0.0130 +vn 0.7080 -0.6933 0.1341 +vn -0.9839 -0.1760 0.0295 +vn -0.6628 -0.7453 0.0722 +vn -0.7080 -0.6933 0.1341 +vn 0.6334 -0.7737 0.0172 +vn 0.9752 -0.2211 0.0034 +vn -0.9764 -0.2157 0.0130 +vn -0.6334 -0.7736 0.0172 +vn 0.7238 -0.6729 0.1529 +vn 0.4534 -0.8913 -0.0000 +vn 0.9385 -0.3452 -0.0000 +vn -0.9385 -0.3453 -0.0000 +vn -0.9752 -0.2212 0.0034 +vn -0.4535 -0.8913 -0.0000 +vn -0.9890 -0.1438 0.0343 +vn -0.7238 -0.6728 0.1529 +vn 0.7179 -0.6938 0.0562 +vn 0.6269 -0.7745 0.0844 +vn -0.7179 -0.6938 0.0562 +vn -0.9871 -0.1577 0.0276 +vn -0.6269 -0.7745 0.0844 +vn -1.0000 -0.0000 -0.0000 +vn 0.0001 0.7996 -0.6005 +vt 0.437463 0.717486 +vt 0.437463 0.729525 +vt 0.473076 0.717486 +vt 0.606328 0.696434 +vt 0.592588 0.696434 +vt 0.535699 0.708464 +vt 0.504490 0.714856 +vt 0.564112 0.717495 +vt 0.594299 0.705466 +vt 0.521896 0.729525 +vt 0.605389 0.697140 +vt 0.602655 0.699193 +vt 0.580175 0.697602 +vt 0.585684 0.696733 +vt 0.513693 0.716961 +vt 0.546293 0.710284 +vt 0.490183 0.716814 +vt 0.590193 0.699562 +vt 0.587283 0.697386 +vt 0.591937 0.699287 +vt 0.582737 0.698103 +vt 0.592981 0.697140 +vt 0.594123 0.699193 +vt 0.538409 0.708929 +vt 0.506844 0.715395 +s 1 +f 1274/623/719 1276/624/719 1273/623/719 +f 1278/625/720 1273/623/721 1277/625/720 +f 1280/626/722 1282/627/723 1279/626/724 +f 1284/628/725 1286/629/726 1283/628/727 +f 1288/630/728 1290/631/729 1287/630/728 +f 1292/632/730 1287/630/728 1291/632/730 +f 1275/624/731 1291/632/730 1276/624/731 +f 1279/626/732 1295/633/732 1296/634/732 +f 1298/635/733 1300/636/734 1297/635/735 +f 1292/632/736 1302/637/737 1303/638/738 +f 1299/636/739 1281/627/740 1300/636/734 +f 1308/639/741 1285/629/742 1307/639/741 +f 1277/625/720 1308/639/741 1307/639/741 +f 1297/635/735 1283/628/727 1298/635/733 +f 1304/640/743 1311/641/744 1305/642/745 +f 1310/643/746 1300/636/734 1311/641/744 +f 1312/640/747 1314/641/748 1315/643/749 +f 1315/643/749 1299/636/739 1298/635/733 +f 1305/642/745 1316/644/750 1306/645/751 +f 1311/641/744 1281/627/740 1316/644/750 +f 1313/642/752 1318/644/753 1314/641/748 +f 1314/641/748 1282/627/723 1299/636/739 +f 1297/635/735 1319/646/754 1284/628/725 +f 1310/643/746 1303/638/738 1319/646/754 +f 1281/627/740 1294/633/755 1316/644/750 +f 1316/644/750 1293/634/756 1306/645/751 +f 1296/634/757 1318/644/753 1317/645/758 +f 1295/633/759 1282/627/723 1318/644/753 +f 1320/638/760 1315/643/749 1321/646/761 +f 1321/646/761 1298/635/733 1283/628/727 +f 1302/637/737 1301/639/762 1322/647/763 +f 1301/639/762 1285/629/742 1322/647/763 +f 1309/639/764 1323/637/765 1324/647/766 +f 1309/639/764 1286/629/726 1308/639/741 +f 1323/637/765 1321/646/761 1324/647/766 +f 1324/647/766 1283/628/727 1286/629/726 +f 1302/637/737 1319/646/754 1303/638/738 +f 1322/647/763 1284/628/725 1319/646/754 +f 1291/632/767 1320/638/760 1323/637/765 +f 1274/623/719 1275/624/719 1276/624/719 +f 1278/625/720 1274/623/721 1273/623/721 +f 1280/626/722 1281/627/740 1282/627/723 +f 1284/628/725 1285/629/742 1286/629/726 +f 1288/630/728 1289/631/729 1290/631/729 +f 1292/632/730 1288/630/728 1287/630/728 +f 1275/624/731 1292/632/730 1291/632/730 +f 1296/634/732 1290/631/729 1279/626/732 +f 1290/631/729 1289/631/729 1279/626/732 +f 1289/631/729 1293/634/732 1280/626/732 +f 1293/634/732 1294/633/768 1280/626/732 +f 1280/626/732 1279/626/732 1289/631/729 +f 1298/635/733 1299/636/739 1300/636/734 +f 1293/634/756 1289/631/736 1306/645/751 +f 1289/631/736 1288/630/736 1304/640/743 +f 1306/645/751 1289/631/736 1305/642/745 +f 1288/630/736 1292/632/736 1303/638/738 +f 1292/632/736 1275/624/736 1278/625/736 +f 1302/637/737 1292/632/736 1301/639/762 +f 1275/624/736 1274/623/736 1278/625/736 +f 1278/625/736 1301/639/762 1292/632/736 +f 1303/638/738 1304/640/743 1288/630/736 +f 1304/640/743 1305/642/745 1289/631/736 +f 1299/636/739 1282/627/723 1281/627/740 +f 1308/639/741 1286/629/726 1285/629/742 +f 1301/639/762 1278/625/720 1307/639/741 +f 1278/625/720 1277/625/720 1307/639/741 +f 1277/625/720 1309/639/764 1308/639/741 +f 1297/635/735 1284/628/725 1283/628/727 +f 1304/640/743 1310/643/746 1311/641/744 +f 1310/643/746 1297/635/735 1300/636/734 +f 1312/640/747 1313/642/752 1314/641/748 +f 1315/643/749 1314/641/748 1299/636/739 +f 1305/642/745 1311/641/744 1316/644/750 +f 1311/641/744 1300/636/734 1281/627/740 +f 1313/642/752 1317/645/758 1318/644/753 +f 1314/641/748 1318/644/753 1282/627/723 +f 1297/635/735 1310/643/746 1319/646/754 +f 1310/643/746 1304/640/743 1303/638/738 +f 1281/627/740 1280/626/722 1294/633/755 +f 1316/644/750 1294/633/755 1293/634/756 +f 1296/634/757 1295/633/759 1318/644/753 +f 1295/633/759 1279/626/724 1282/627/723 +f 1320/638/760 1312/640/747 1315/643/749 +f 1321/646/761 1315/643/749 1298/635/733 +f 1301/639/762 1307/639/741 1285/629/742 +f 1309/639/764 1324/647/766 1286/629/726 +f 1323/637/765 1320/638/760 1321/646/761 +f 1324/647/766 1321/646/761 1283/628/727 +f 1302/637/737 1322/647/763 1319/646/754 +f 1322/647/763 1285/629/742 1284/628/725 +f 1273/623/767 1276/624/767 1277/625/767 +f 1276/624/767 1291/632/767 1277/625/767 +f 1291/632/767 1287/630/767 1320/638/760 +f 1287/630/767 1290/631/767 1312/640/747 +f 1312/640/747 1290/631/767 1313/642/752 +f 1290/631/767 1296/634/757 1317/645/758 +f 1317/645/758 1313/642/752 1290/631/767 +f 1312/640/747 1320/638/760 1287/630/767 +f 1323/637/765 1309/639/764 1291/632/767 +f 1309/639/764 1277/625/767 1291/632/767 +o Trigger +v 0.012697 0.181206 1.380449 +v 0.012697 0.180872 1.291923 +v 0.011096 0.180730 1.254413 +v 0.006436 0.180681 1.241522 +v -0.005212 0.180681 1.241522 +v -0.009871 0.180730 1.254413 +v -0.011473 0.180872 1.291923 +v -0.011473 0.181206 1.380449 +v 0.012697 0.075307 1.433398 +v 0.012697 0.040182 1.418719 +v 0.012697 0.040182 1.418719 +v 0.012697 0.076073 1.429194 +v 0.012697 0.117095 1.423724 +v 0.012697 0.144311 1.410405 +v 0.012697 0.173001 1.356401 +v 0.012697 0.151323 1.415574 +v 0.012697 0.120917 1.430253 +v 0.006436 0.140314 1.403516 +v 0.006436 0.115674 1.415574 +v -0.005212 0.115674 1.415574 +v -0.005212 0.140314 1.403516 +v 0.006436 0.076355 1.420816 +v -0.005212 0.076355 1.420816 +v 0.006436 0.045424 1.412952 +v -0.005212 0.045424 1.412952 +v 0.006436 0.023366 1.398798 +v -0.005212 0.023366 1.398798 +v 0.011096 0.027667 1.403893 +v -0.011473 0.040182 1.418719 +v -0.011473 0.040182 1.418719 +v -0.009871 0.027667 1.403893 +v -0.011473 0.075307 1.433398 +v -0.011473 0.120917 1.430253 +v -0.011473 0.151323 1.415574 +v -0.011473 0.173001 1.356401 +v -0.011473 0.144311 1.410405 +v -0.011473 0.117095 1.423724 +v -0.011473 0.076073 1.429194 +v 0.006436 0.167051 1.353188 +v -0.005212 0.167051 1.353188 +v 0.011096 0.168573 1.354010 +v 0.011096 0.141336 1.405278 +v 0.011096 0.116037 1.417658 +v 0.011096 0.076283 1.422959 +v 0.011096 0.044916 1.414984 +v -0.009871 0.168573 1.354010 +v -0.009871 0.141336 1.405278 +v -0.009871 0.116037 1.417658 +v -0.009871 0.076283 1.422959 +v -0.009871 0.044916 1.414984 +vn -0.0000 1.0000 -0.0038 +vn -0.0000 0.9392 0.3434 +vn 0.9934 -0.0321 -0.1101 +vn 0.9942 -0.0721 -0.0801 +vn 1.0000 -0.0000 -0.0000 +vn 0.2145 -0.2854 -0.9341 +vn -0.2064 -0.6878 -0.6960 +vn 0.2063 -0.6878 -0.6960 +vn 0.2195 0.0574 -0.9739 +vn -0.2146 -0.2854 -0.9341 +vn 0.2112 0.3928 -0.8951 +vn -0.2195 0.0574 -0.9739 +vn 0.1183 0.5363 -0.8357 +vn -0.2112 0.3928 -0.8951 +vn -0.0000 -0.0238 0.9997 +vn -0.0000 0.9977 0.0679 +vn -0.0000 -0.7641 0.6450 +vn -1.0000 -0.0000 -0.0000 +vn -0.9934 -0.0321 -0.1102 +vn -0.0000 -0.1628 0.9867 +vn -0.0000 0.5543 0.8323 +vn -0.0000 0.2564 0.9666 +vn -0.0000 0.6114 0.7913 +vn -0.1772 -0.9400 -0.2917 +vn 0.1772 -0.9400 -0.2917 +vn 0.9504 -0.3088 -0.0377 +vn 0.7458 -0.6358 -0.1989 +vn 0.3609 -0.9257 -0.1130 +vn 0.0625 -0.9907 -0.1209 +vn 0.9905 -0.1306 -0.0437 +vn 0.7949 -0.4244 -0.4336 +vn 0.7858 -0.1790 -0.5920 +vn 0.7940 0.0354 -0.6069 +vn 0.9939 0.0064 -0.1100 +vn 0.7710 0.2461 -0.5873 +vn 0.7889 0.5810 -0.2001 +vn 0.4706 0.4766 -0.7426 +vn -0.3610 -0.9257 -0.1130 +vn -0.0625 -0.9907 -0.1209 +vn -0.7457 -0.6359 -0.1989 +vn -0.9503 -0.3089 -0.0377 +vn -0.7949 -0.4245 -0.4336 +vn -0.9905 -0.1307 -0.0437 +vn -0.7858 -0.1790 -0.5920 +vn -0.9942 -0.0721 -0.0801 +vn -0.7939 0.0354 -0.6070 +vn -0.7710 0.2462 -0.5873 +vn -0.9939 0.0064 -0.1101 +vn -0.4706 0.4766 -0.7425 +vn -0.7889 0.5810 -0.2002 +vn -0.0000 1.0000 -0.0000 +vn -0.1183 0.5363 -0.8357 +vn -0.0000 -0.7641 0.6451 +vn -0.0000 0.4114 0.9114 +vn -0.0000 -0.7642 0.6450 +vt 0.559609 0.765930 +vt 0.494705 0.766175 +vt 0.462977 0.719170 +vt 0.472742 0.739125 +vt 0.458190 0.721973 +vt 0.468953 0.718129 +vt 0.477793 0.736194 +vt 0.465109 0.689302 +vt 0.470874 0.666624 +vt 0.481252 0.650452 +vt 0.466646 0.662781 +vt 0.455884 0.688533 +vt 0.468953 0.744266 +vt 0.514692 0.755797 +vt 0.514090 0.756913 +vt 0.587110 0.765826 +vt 0.596562 0.765790 +vt 0.512336 0.760159 +vt 0.476501 0.736944 +vt 0.467424 0.718395 +vt 0.463538 0.689249 +vt 0.458967 0.689095 +vt 0.469385 0.666251 +vt 0.477517 0.653605 +s 1 +f 1331/648/769 1332/649/770 1326/648/769 +f 1337/650/771 1338/651/772 1341/652/773 +f 1343/653/774 1345/654/775 1342/654/776 +f 1346/655/777 1344/653/778 1343/653/774 +f 1348/656/779 1347/655/780 1346/655/777 +f 1350/657/781 1349/656/782 1348/656/779 +f 1353/658/783 1354/658/784 1351/657/785 +f 1356/659/786 1357/652/786 1361/650/787 +f 1333/659/788 1353/658/783 1334/658/789 +f 1341/652/790 1356/659/788 1333/659/788 +f 1340/660/791 1357/652/790 1341/652/790 +f 1325/649/770 1358/660/791 1340/660/791 +f 1342/654/776 1364/661/792 1363/661/793 +f 1326/648/794 1365/662/795 1327/663/796 +f 1327/663/796 1363/661/793 1328/664/797 +f 1339/665/798 1366/666/799 1365/662/795 +f 1365/662/795 1342/654/776 1363/661/793 +f 1338/651/772 1367/667/800 1366/666/799 +f 1366/666/799 1343/653/774 1342/654/776 +f 1337/650/771 1368/668/801 1367/667/800 +f 1367/667/800 1346/655/777 1343/653/774 +f 1336/669/802 1369/670/803 1368/668/801 +f 1369/670/803 1346/655/777 1368/668/801 +f 1335/658/804 1352/671/805 1369/670/803 +f 1352/671/805 1348/656/779 1369/670/803 +f 1364/661/792 1330/663/806 1329/664/807 +f 1370/662/808 1331/648/809 1330/663/806 +f 1345/654/775 1370/662/808 1364/661/792 +f 1371/666/810 1359/665/811 1370/662/808 +f 1344/653/778 1371/666/810 1345/654/775 +f 1372/667/812 1360/651/813 1371/666/810 +f 1347/655/780 1372/667/812 1344/653/778 +f 1373/668/814 1361/650/787 1372/667/812 +f 1347/655/780 1374/670/815 1373/668/814 +f 1374/670/815 1362/669/816 1373/668/814 +f 1349/656/782 1355/671/817 1374/670/815 +f 1374/670/815 1355/671/817 1354/658/818 +f 1363/661/793 1329/664/807 1328/664/797 +f 1332/649/770 1325/649/770 1326/648/769 +f 1326/648/769 1327/663/769 1330/663/769 +f 1327/663/769 1328/664/769 1330/663/769 +f 1328/664/769 1329/664/769 1330/663/769 +f 1330/663/769 1331/648/769 1326/648/769 +f 1333/659/773 1334/658/819 1335/658/804 +f 1333/659/773 1335/658/804 1336/669/802 +f 1325/649/773 1340/660/773 1338/651/772 +f 1340/660/773 1341/652/773 1338/651/772 +f 1339/665/798 1326/648/794 1325/649/773 +f 1338/651/772 1339/665/798 1325/649/773 +f 1341/652/773 1333/659/773 1337/650/771 +f 1333/659/773 1336/669/802 1337/650/771 +f 1343/653/774 1344/653/778 1345/654/775 +f 1346/655/777 1347/655/780 1344/653/778 +f 1348/656/779 1349/656/782 1347/655/780 +f 1350/657/781 1351/657/820 1349/656/782 +f 1351/657/785 1350/657/821 1352/671/785 +f 1335/658/822 1334/658/789 1353/658/783 +f 1351/657/785 1352/671/785 1353/658/783 +f 1352/671/785 1335/658/822 1353/658/783 +f 1354/658/784 1355/671/823 1351/657/785 +f 1357/652/786 1358/660/786 1360/651/813 +f 1358/660/786 1332/649/786 1360/651/813 +f 1332/649/786 1331/648/809 1359/665/811 +f 1332/649/786 1359/665/811 1360/651/813 +f 1354/658/818 1353/658/819 1356/659/786 +f 1362/669/816 1354/658/818 1356/659/786 +f 1361/650/787 1362/669/816 1356/659/786 +f 1357/652/786 1360/651/813 1361/650/787 +f 1333/659/788 1356/659/788 1353/658/783 +f 1341/652/790 1357/652/790 1356/659/788 +f 1340/660/791 1358/660/791 1357/652/790 +f 1325/649/770 1332/649/770 1358/660/791 +f 1342/654/776 1345/654/775 1364/661/792 +f 1326/648/794 1339/665/798 1365/662/795 +f 1327/663/796 1365/662/795 1363/661/793 +f 1339/665/798 1338/651/772 1366/666/799 +f 1365/662/795 1366/666/799 1342/654/776 +f 1338/651/772 1337/650/771 1367/667/800 +f 1366/666/799 1367/667/800 1343/653/774 +f 1337/650/771 1336/669/802 1368/668/801 +f 1367/667/800 1368/668/801 1346/655/777 +f 1336/669/802 1335/658/804 1369/670/803 +f 1369/670/803 1348/656/779 1346/655/777 +f 1352/671/805 1350/657/781 1348/656/779 +f 1364/661/792 1370/662/808 1330/663/806 +f 1370/662/808 1359/665/811 1331/648/809 +f 1345/654/775 1371/666/810 1370/662/808 +f 1371/666/810 1360/651/813 1359/665/811 +f 1344/653/778 1372/667/812 1371/666/810 +f 1372/667/812 1361/650/787 1360/651/813 +f 1347/655/780 1373/668/814 1372/667/812 +f 1373/668/814 1362/669/816 1361/650/787 +f 1347/655/780 1349/656/782 1374/670/815 +f 1374/670/815 1354/658/818 1362/669/816 +f 1349/656/782 1351/657/820 1355/671/817 +f 1363/661/793 1364/661/792 1329/664/807 +o Shell +v 0.099482 0.451316 0.176171 +v 0.070235 0.521924 0.176171 +v -0.000373 0.551171 0.176171 +v -0.070981 0.521924 0.176171 +v -0.100228 0.451316 0.176171 +v -0.070981 0.380707 0.176171 +v -0.000373 0.351461 0.176171 +v 0.070235 0.380707 0.176171 +v 0.112264 0.451316 0.176171 +v 0.079273 0.530962 0.176171 +v -0.000373 0.563952 0.176171 +v -0.080019 0.530962 0.176171 +v -0.113009 0.451316 0.176171 +v -0.080019 0.371670 0.176171 +v -0.000373 0.338679 0.176171 +v 0.079273 0.371670 0.176171 +v 0.112264 0.451316 0.210923 +v 0.079273 0.530962 0.210923 +v -0.000373 0.563952 0.210923 +v -0.080019 0.530962 0.210923 +v -0.113009 0.451316 0.210923 +v -0.080019 0.371670 0.210923 +v -0.000373 0.338679 0.210923 +v 0.079273 0.371670 0.210923 +v 0.099482 0.451316 0.066321 +v 0.070235 0.521924 0.066321 +v -0.000373 0.551171 0.066321 +v -0.070981 0.521924 0.066321 +v -0.100228 0.451316 0.066321 +v -0.070981 0.380707 0.066321 +v -0.000373 0.351461 0.066321 +v 0.070235 0.380707 0.066321 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vt 0.207020 0.712433 +vt 0.247848 0.790812 +vt 0.207020 0.790812 +vt 0.166191 0.790812 +vt 0.166191 0.712433 +vt 0.125363 0.712433 +vt 0.084534 0.712433 +vt 0.288676 0.712433 +vt 0.329504 0.712433 +vt 0.002878 0.712433 +vt 0.043706 0.712433 +vt 0.247848 0.712433 +vt 0.334095 0.764304 +vt 0.358730 0.803066 +vt 0.477679 0.725541 +vt 0.477679 0.803066 +vt 0.502314 0.764304 +vt 0.358730 0.725541 +vt 0.288676 0.790812 +vt 0.002878 0.790812 +vt 0.043706 0.790812 +vt 0.084534 0.790812 +vt 0.125363 0.790812 +vt 0.418204 0.819122 +vt 0.418204 0.709486 +vt 0.329504 0.790812 +s 0 +f 1378/672/824 1401/673/824 1402/674/824 +f 1378/672/825 1403/675/825 1379/676/825 +f 1380/677/826 1389/678/826 1388/677/826 +f 1376/679/826 1383/680/826 1375/680/826 +f 1375/681/826 1390/682/826 1382/682/826 +f 1377/683/826 1386/672/826 1385/683/826 +f 1397/684/827 1398/685/827 1394/686/827 +f 1386/672/824 1393/683/824 1385/683/824 +f 1389/678/828 1396/677/828 1388/677/828 +f 1387/676/825 1394/672/825 1386/672/825 +f 1390/682/829 1397/678/829 1389/678/829 +f 1385/683/830 1392/679/830 1384/679/830 +f 1387/676/831 1396/677/831 1395/676/831 +f 1383/681/832 1398/682/832 1390/682/832 +f 1384/679/833 1391/680/833 1383/680/833 +f 1379/676/826 1386/672/826 1378/672/826 +f 1377/683/826 1384/679/826 1376/679/826 +f 1382/682/826 1389/678/826 1381/678/826 +f 1392/687/827 1393/688/827 1394/686/827 +f 1380/677/826 1387/676/826 1379/676/826 +f 1396/689/827 1397/684/827 1394/686/827 +f 1376/679/830 1401/673/830 1377/683/830 +f 1375/680/833 1400/690/833 1376/679/833 +f 1382/682/832 1399/691/832 1375/681/832 +f 1381/678/829 1406/692/829 1382/682/829 +f 1380/677/828 1405/693/828 1381/678/828 +f 1380/677/831 1403/675/831 1404/694/831 +f 1380/677/826 1381/678/826 1389/678/826 +f 1376/679/826 1384/679/826 1383/680/826 +f 1375/681/826 1383/681/826 1390/682/826 +f 1377/683/826 1378/672/826 1386/672/826 +f 1398/685/827 1391/695/827 1392/687/827 +f 1386/672/824 1394/672/824 1393/683/824 +f 1389/678/828 1397/678/828 1396/677/828 +f 1387/676/825 1395/676/825 1394/672/825 +f 1390/682/829 1398/682/829 1397/678/829 +f 1385/683/830 1393/683/830 1392/679/830 +f 1387/676/831 1388/677/831 1396/677/831 +f 1383/681/832 1391/681/832 1398/682/832 +f 1384/679/833 1392/679/833 1391/680/833 +f 1379/676/826 1387/676/826 1386/672/826 +f 1377/683/826 1385/683/826 1384/679/826 +f 1382/682/826 1390/682/826 1389/678/826 +f 1380/677/826 1388/677/826 1387/676/826 +f 1394/686/827 1395/696/827 1396/689/827 +f 1398/685/827 1392/687/827 1394/686/827 +f 1378/672/824 1377/683/824 1401/673/824 +f 1378/672/825 1402/674/825 1403/675/825 +f 1376/679/830 1400/690/830 1401/673/830 +f 1375/680/833 1399/697/833 1400/690/833 +f 1382/682/832 1406/692/832 1399/691/832 +f 1381/678/829 1405/693/829 1406/692/829 +f 1380/677/828 1404/694/828 1405/693/828 +f 1380/677/831 1379/676/831 1403/675/831 +o ShellFore +v 0.034390 0.451316 -0.097256 +v 0.024208 0.475897 -0.097256 +v -0.000373 0.486078 -0.097256 +v -0.024954 0.475897 -0.097256 +v -0.035135 0.451316 -0.097256 +v -0.024954 0.426735 -0.097256 +v -0.000373 0.416553 -0.097256 +v 0.024208 0.426735 -0.097256 +v 0.099482 0.451316 0.066321 +v 0.070235 0.521924 0.066321 +v -0.000373 0.551171 0.066321 +v -0.070981 0.521924 0.066321 +v -0.100228 0.451316 0.066321 +v -0.070981 0.380707 0.066321 +v -0.000373 0.351461 0.066321 +v 0.070235 0.380707 0.066321 +v 0.070235 0.521924 -0.238119 +v 0.099482 0.451316 -0.238119 +v -0.000373 0.551171 -0.238119 +v -0.070981 0.521924 -0.238119 +v -0.100228 0.451316 -0.238119 +v -0.070981 0.380707 -0.238119 +v -0.000373 0.351461 -0.238119 +v 0.070235 0.380707 -0.238119 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.8497 -0.3520 -0.3926 +vn -0.3520 -0.8497 -0.3926 +vn 0.3520 -0.8497 -0.3926 +vn 0.8497 -0.3520 -0.3926 +vn 0.8497 0.3520 -0.3926 +vn 0.3519 0.8497 -0.3926 +vn -0.3519 0.8497 -0.3926 +vn -0.8497 0.3520 -0.3926 +vn 0.3519 -0.8497 -0.3926 +vn 0.3520 0.8497 -0.3926 +vn -0.3520 0.8497 -0.3926 +vn -0.8497 0.3519 -0.3926 +vt 0.043550 0.791975 +vt 0.002178 0.930026 +vt 0.002178 0.791975 +vt 0.333158 0.791975 +vt 0.291785 0.930026 +vt 0.291785 0.791975 +vt 0.250413 0.930026 +vt 0.250413 0.791975 +vt 0.167668 0.791975 +vt 0.126295 0.930026 +vt 0.126295 0.791975 +vt 0.084923 0.791975 +vt 0.084923 0.930026 +vt 0.043550 0.930026 +vt 0.209040 0.930026 +vt 0.209040 0.791975 +vt 0.167668 0.930026 +vt 0.050685 0.998106 +vt 0.166073 0.998106 +vt 0.281460 0.998106 +vt 0.057134 0.998830 +vt 0.116907 0.930226 +vt 0.118548 0.999962 +vt 0.001433 0.999043 +vt 0.060207 0.931062 +vt 0.331484 0.999525 +vt 0.247738 0.930700 +vt 0.333277 0.931090 +vt 0.001218 0.996208 +vt 0.139723 0.930508 +vt 0.137063 0.995766 +vt 0.000345 0.997602 +vt 0.139908 0.933364 +vt 0.136182 0.998674 +vt 0.001907 0.998589 +vt 0.087835 0.929331 +vt 0.090634 0.998073 +vt 0.000235 0.999789 +vt 0.056663 0.931708 +vt 0.053753 0.998957 +vt 0.000699 0.998101 +vt -0.000302 0.930474 +vt 0.333158 0.930026 +vt 0.329256 0.998106 +vt 0.281460 0.998106 +vt 0.002889 0.998106 +vt 0.001473 0.930410 +vt 0.247782 0.999431 +vt 0.003911 0.932253 +vt -0.001634 0.932333 +vt 0.002007 0.930529 +vt -0.000503 0.931244 +s 0 +f 1422/698/834 1424/699/834 1415/700/834 +f 1415/701/835 1423/702/835 1416/703/835 +f 1416/703/836 1425/704/836 1417/705/836 +f 1419/706/837 1428/707/837 1420/708/837 +f 1421/709/838 1428/707/838 1429/710/838 +f 1421/709/839 1430/711/839 1422/698/839 +f 1426/712/840 1417/705/840 1425/704/840 +f 1418/713/841 1427/714/841 1419/706/841 +f 1412/715/842 1411/716/842 1410/717/842 +f 1408/718/843 1424/719/843 1407/720/843 +f 1409/721/844 1423/722/844 1408/718/844 +f 1409/723/845 1426/724/845 1425/725/845 +f 1411/726/846 1426/727/846 1410/728/846 +f 1412/729/847 1427/730/847 1411/731/847 +f 1413/732/848 1428/733/848 1412/734/848 +f 1414/735/849 1429/736/849 1413/737/849 +f 1414/738/850 1424/719/850 1430/739/850 +f 1422/698/834 1430/711/834 1424/699/834 +f 1415/701/835 1424/740/835 1423/702/835 +f 1416/703/836 1423/702/836 1425/704/836 +f 1419/706/837 1427/714/837 1428/707/837 +f 1421/709/838 1420/708/838 1428/707/838 +f 1421/709/839 1429/710/839 1430/711/839 +f 1426/712/840 1418/713/840 1417/705/840 +f 1418/713/841 1426/712/841 1427/714/841 +f 1410/717/842 1409/741/842 1408/742/842 +f 1408/742/842 1407/716/842 1410/717/842 +f 1407/716/842 1414/715/842 1410/717/842 +f 1414/715/842 1413/743/842 1410/717/842 +f 1413/743/842 1412/715/842 1410/717/842 +f 1408/718/843 1423/722/843 1424/719/843 +f 1409/721/844 1425/744/844 1423/722/844 +f 1409/723/851 1410/745/851 1426/724/851 +f 1411/726/846 1427/746/846 1426/727/846 +f 1412/729/847 1428/747/847 1427/730/847 +f 1413/732/852 1429/748/852 1428/733/852 +f 1414/735/853 1430/749/853 1429/736/853 +f 1414/738/854 1407/720/854 1424/719/854 diff --git a/src/main/resources/assets/hbm/models/weapons/lasrifle.obj b/src/main/resources/assets/hbm/models/weapons/lasrifle.obj new file mode 100644 index 000000000..5cb099694 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/lasrifle.obj @@ -0,0 +1,4007 @@ +# Blender v2.79 (sub 0) OBJ File: 'lasrifle.blend' +# www.blender.org +o Scope +v -0.750000 2.437500 -1.500000 +v 0.750000 2.437500 -1.500000 +v -0.750000 2.437500 -4.500000 +v 0.750000 2.437500 -4.500000 +v -0.750000 3.437500 -4.500000 +v 0.750000 3.437500 -4.500000 +v -0.750000 3.437500 -1.500000 +v 0.750000 3.437500 -1.500000 +v 1.000000 3.187500 -1.500000 +v 1.000000 3.187500 -4.500000 +v -1.000000 3.187500 -4.500000 +v -1.000000 3.187500 -1.500000 +v -1.000000 2.687500 -4.500000 +v 1.000000 2.687500 -4.500000 +v -1.000000 2.687500 -1.500000 +v 1.000000 2.687500 -1.500000 +v 1.000000 2.812500 -1.750000 +v 1.000000 2.812500 -4.250000 +v 1.000000 3.062500 -4.250000 +v 1.000000 3.062500 -1.750000 +v 1.125000 2.812500 -4.250000 +v 1.125000 2.812500 -1.750000 +v 1.125000 3.062500 -4.250000 +v 1.125000 3.062500 -1.750000 +v -1.125000 2.812500 -1.750000 +v -1.125000 2.812500 -4.250000 +v -1.125000 3.062500 -4.250000 +v -1.125000 3.062500 -1.750000 +v -1.000000 2.812500 -4.250000 +v -1.000000 2.812500 -1.750000 +v -1.000000 3.062500 -4.250000 +v -1.000000 3.062500 -1.750000 +v -0.750000 3.437500 -2.000000 +v 0.750000 3.437500 -2.000000 +v 1.000000 3.187500 -2.000000 +v -1.000000 3.187500 -2.000000 +v -0.750000 3.437500 -2.250000 +v 0.750000 3.437500 -2.250000 +v 1.000000 3.187500 -2.250000 +v -1.000000 3.187500 -2.250000 +v -0.750000 3.562500 -2.000000 +v 0.750000 3.562500 -2.000000 +v -0.750000 3.562500 -2.250000 +v 0.750000 3.562500 -2.250000 +v -1.125000 3.187500 -2.000000 +v -1.125000 3.187500 -2.250000 +v 1.112500 3.187500 -2.000000 +v 1.112500 3.187500 -2.250000 +v -1.000000 3.062500 -2.000000 +v -1.000000 3.062500 -2.250000 +v -1.125000 3.062500 -2.000000 +v -1.125000 3.062500 -2.250000 +v 1.000000 3.062500 -2.000000 +v 1.000000 3.062500 -2.250000 +v 1.112500 3.062500 -2.000000 +v 1.112500 3.062500 -2.250000 +v -0.750000 3.437500 -3.750000 +v 0.750000 3.437500 -3.750000 +v 1.000000 3.187500 -3.750000 +v -1.000000 3.187500 -3.750000 +v -0.750000 3.437500 -4.000000 +v 0.750000 3.437500 -4.000000 +v 1.000000 3.187500 -4.000000 +v -1.000000 3.187500 -4.000000 +v -0.750000 3.562500 -3.750000 +v 0.750000 3.562500 -3.750000 +v -0.750000 3.562500 -4.000000 +v 0.750000 3.562500 -4.000000 +v -1.125000 3.187500 -3.750000 +v -1.125000 3.187500 -4.000000 +v 1.112500 3.187500 -3.750000 +v 1.112500 3.187500 -4.000000 +v -1.000000 3.062500 -3.750000 +v -1.000000 3.062500 -4.000000 +v -1.125000 3.062500 -3.750000 +v -1.125000 3.062500 -4.000000 +v 1.000000 3.062500 -3.750000 +v 1.000000 3.062500 -4.000000 +v 1.112500 3.062500 -3.750000 +v 1.112500 3.062500 -4.000000 +v -0.750000 2.437500 -3.750000 +v 0.750000 2.437500 -3.750000 +v -1.000000 2.687500 -3.750000 +v 1.000000 2.687500 -3.750000 +v 1.000000 2.812500 -3.750000 +v -1.000000 2.812500 -3.750000 +v -1.125000 2.687500 -3.750000 +v -1.125000 2.812500 -3.750000 +v 1.125000 2.687500 -3.750000 +v 1.125000 2.812500 -3.750000 +v -0.750000 2.312500 -3.750000 +v 0.750000 2.312500 -3.750000 +v -0.750000 2.437500 -3.000000 +v 0.750000 2.437500 -3.000000 +v -1.000000 2.687500 -3.000000 +v 1.000000 2.687500 -3.000000 +v 1.000000 2.812500 -3.000000 +v -1.000000 2.812500 -3.000000 +v -1.125000 2.687500 -3.000000 +v -1.125000 2.812500 -3.000000 +v 1.125000 2.687500 -3.000000 +v 1.125000 2.812500 -3.000000 +v -0.750000 2.312500 -3.000000 +v 0.750000 2.312500 -3.000000 +v 0.375000 1.937500 -2.250000 +v 0.375000 1.937500 -4.000000 +v 0.250000 1.937500 -2.250000 +v 0.250000 1.937500 -4.000000 +v 0.375000 2.312500 -3.750000 +v 0.375000 2.312500 -3.000000 +v 0.250000 2.312500 -3.750000 +v 0.250000 2.312500 -3.000000 +v 0.000000 3.312500 -1.500000 +v -0.265165 3.202665 -1.500000 +v -0.375000 2.937500 -1.500000 +v -0.265165 2.672335 -1.500000 +v 0.000000 2.562500 -1.500000 +v 0.265165 2.672335 -1.500000 +v 0.375000 2.937500 -1.500000 +v 0.265165 3.202665 -1.500000 +v 0.000000 3.187500 -1.250000 +v -0.176777 3.114277 -1.250000 +v -0.250000 2.937500 -1.250000 +v -0.176777 2.760723 -1.250000 +v 0.000000 2.687500 -1.250000 +v 0.176777 2.760723 -1.250000 +v 0.250000 2.937500 -1.250000 +v 0.176777 3.114277 -1.250000 +v 0.000000 3.312500 -1.250000 +v -0.265165 3.202665 -1.250000 +v -0.375000 2.937500 -1.250000 +v -0.265165 2.672335 -1.250000 +v 0.000000 2.562500 -1.250000 +v 0.265165 2.672335 -1.250000 +v 0.375000 2.937500 -1.250000 +v 0.265165 3.202665 -1.250000 +v -0.176777 3.114277 -1.375000 +v 0.000000 3.187500 -1.375000 +v -0.250000 2.937500 -1.375000 +v -0.176777 2.760723 -1.375000 +v 0.000000 2.687500 -1.375000 +v 0.176777 2.760723 -1.375000 +v 0.250000 2.937500 -1.375000 +v 0.176777 3.114277 -1.375000 +v 0.000000 3.437500 -4.500000 +v -0.353553 3.291053 -4.500000 +v -0.500000 2.937500 -4.500000 +v -0.353553 2.583947 -4.500000 +v 0.000000 2.437500 -4.500000 +v 0.353553 2.583947 -4.500000 +v 0.500000 2.937500 -4.500000 +v 0.353553 3.291053 -4.500000 +v 0.000000 3.437500 -4.750000 +v -0.353553 3.291053 -4.750000 +v -0.500000 2.937500 -4.750000 +v -0.353553 2.583947 -4.750000 +v 0.000000 2.437500 -4.750000 +v 0.353553 2.583947 -4.750000 +v 0.500000 2.937500 -4.750000 +v 0.353553 3.291053 -4.750000 +v 0.000000 3.375000 -4.750000 +v -0.309359 3.246859 -4.750000 +v -0.437500 2.937500 -4.750000 +v -0.309359 2.628140 -4.750000 +v 0.000000 2.500000 -4.750000 +v 0.309359 2.628140 -4.750000 +v 0.437500 2.937500 -4.750000 +v 0.309359 3.246859 -4.750000 +v -0.309359 3.246859 -4.625000 +v 0.000000 3.375000 -4.625000 +v -0.437500 2.937500 -4.625000 +v -0.309359 2.628140 -4.625000 +v 0.000000 2.500000 -4.625000 +v 0.309359 2.628140 -4.625000 +v 0.437500 2.937500 -4.625000 +v 0.309359 3.246859 -4.625000 +v 0.687500 2.687500 -1.583333 +v 0.437500 2.937500 -1.583333 +v 0.687500 3.187500 -1.583333 +v 0.937500 2.937500 -1.583333 +v 0.687500 2.697015 -0.964502 +v 0.437500 2.937500 -0.916667 +v 0.687500 3.177985 -0.868831 +v 0.937500 2.937500 -0.916667 +v 0.687500 2.608627 -0.761224 +v 0.437500 2.812500 -0.625000 +v 0.687500 3.016373 -0.488776 +v 0.937500 2.812500 -0.625000 +v 0.681811 2.422350 -0.577025 +v 0.441523 2.536601 -0.357146 +v 0.693189 2.702650 -0.172975 +v 0.933477 2.588399 -0.392854 +v 0.722653 2.249909 -0.486269 +v 0.519337 2.231758 -0.207932 +v 0.777347 2.375091 -0.013731 +v 0.980663 2.393242 -0.292068 +v -0.773145 0.072642 1.675515 +v -0.636767 0.165643 1.346271 +v -0.601855 -0.197642 1.261985 +v -0.738233 -0.290643 1.591229 +v 1.125500 0.516159 -0.732972 +v 0.945310 0.574363 -0.440360 +v 1.249500 0.608841 -0.267028 +v 1.429690 0.550637 -0.559640 +v 1.125500 0.180532 -0.572504 +v 0.945310 0.346283 -0.324439 +v 1.249500 0.444468 -0.177496 +v 1.429690 0.278717 -0.425561 +v -0.778419 -0.124500 1.688246 +v -0.710775 0.179690 1.524941 +v -0.596581 -0.000500 1.249254 +v -0.664225 -0.304690 1.412559 +v -1.415643 0.386138 -0.264792 +v -1.052358 0.436814 -0.188951 +v -0.959357 0.238862 -0.485208 +v -1.322642 0.188186 -0.561049 +v -1.416543 0.984159 -0.548853 +v -1.240701 0.926448 -0.249011 +v -0.937624 0.911674 -0.430313 +v -1.113466 0.969385 -0.730156 +v -1.159538 2.017962 -0.310374 +v -0.988901 1.916991 -0.017733 +v -0.705046 1.836205 -0.210460 +v -0.875682 1.937175 -0.503100 +v -0.875000 3.125000 -1.583333 +v -0.500000 3.125000 -1.583333 +v -0.500000 2.750000 -1.583333 +v -0.875000 2.750000 -1.583333 +v -1.429690 0.278717 -0.425561 +v -1.249500 0.444468 -0.177496 +v -0.945310 0.346283 -0.324439 +v -1.125500 0.180532 -0.572504 +v -0.937500 2.937500 -0.916667 +v -0.687500 3.177985 -0.868831 +v -0.437500 2.937500 -0.916667 +v -0.687500 2.697015 -0.964502 +v 0.875000 2.750000 -1.583333 +v 0.500000 2.750000 -1.583333 +v 0.500000 3.125000 -1.583333 +v 0.875000 3.125000 -1.583333 +v 0.875000 2.757136 -0.952543 +v 0.500000 2.757136 -0.952543 +v 0.500000 3.117864 -0.880790 +v 0.875000 3.117864 -0.880790 +v 0.875000 2.659595 -0.727168 +v 0.500000 2.659595 -0.727168 +v 0.500000 2.965405 -0.522832 +v 0.875000 2.965405 -0.522832 +v 0.867716 2.476812 -0.539909 +v 0.498750 2.437963 -0.513129 +v 0.507284 2.648188 -0.210091 +v 0.876250 2.687037 -0.236871 +v 0.902487 2.326114 -0.458753 +v 0.556493 2.205001 -0.395651 +v 0.597513 2.298886 -0.041247 +v 0.943507 2.419999 -0.104349 +v 0.875682 1.937175 -0.503100 +v 0.705046 1.836205 -0.210460 +v 0.988901 1.916991 -0.017733 +v 1.159538 2.017962 -0.310374 +v 1.113466 0.969385 -0.730156 +v 0.937624 0.911674 -0.430313 +v 1.240701 0.926448 -0.249011 +v 1.416543 0.984159 -0.548853 +v -1.363015 0.072642 1.075228 +v -1.033771 0.165643 0.938851 +v -0.949485 -0.197642 0.903938 +v -1.278729 -0.290643 1.040316 +v -1.415643 0.091229 0.061149 +v -1.052358 0.175515 0.096062 +v -0.959357 -0.153729 -0.040316 +v -1.322642 -0.238015 -0.075228 +v 1.322642 0.518847 -0.719459 +v -1.145183 1.987673 -0.115872 +v 0.959357 0.536642 -0.629999 +v -0.804314 1.851356 -0.040936 +v 1.052358 0.606153 -0.280541 +v -0.719400 1.866494 -0.404961 +v 1.415643 0.588358 -0.370001 +v -1.060269 2.002811 -0.479897 +v 1.322642 0.188186 -0.561049 +v -1.375746 -0.124500 1.080502 +v 0.959357 0.238862 -0.485208 +v -1.212440 0.179690 1.012858 +v 1.052358 0.436814 -0.188951 +v -0.936754 -0.000500 0.898665 +v 1.415643 0.386138 -0.264792 +v -1.100060 -0.304690 0.966308 +v -1.429690 -0.123910 0.330368 +v 1.125500 -0.250746 -0.080502 +v -1.249500 0.177385 0.344919 +v 0.945310 0.024940 0.033692 +v -0.945310 -0.001090 0.336299 +v 1.249500 0.188246 0.101335 +v -1.125500 -0.302385 0.321748 +v 1.429690 -0.087440 -0.012858 +v -1.415643 0.588358 -0.370001 +v 1.125500 -0.302385 0.321748 +v -1.052358 0.606153 -0.280541 +v 0.945310 -0.001090 0.336299 +v -0.959357 0.536642 -0.629999 +v 1.249500 0.177385 0.344919 +v -1.322642 0.518847 -0.719459 +v 1.429690 -0.123910 0.330368 +v -0.943507 2.419999 -0.104349 +v -0.597513 2.298886 -0.041247 +v -0.556493 2.205001 -0.395651 +v -0.902487 2.326114 -0.458753 +v -0.876250 2.687037 -0.236871 +v -0.507284 2.648188 -0.210091 +v -0.498750 2.437963 -0.513129 +v -0.867716 2.476812 -0.539909 +v -0.875000 2.965405 -0.522832 +v 1.100060 -0.304690 0.966308 +v -0.500000 2.965405 -0.522832 +v 0.936754 -0.000500 0.898665 +v -0.500000 2.659595 -0.727168 +v 1.212440 0.179690 1.012858 +v -0.875000 2.659595 -0.727168 +v 1.375746 -0.124500 1.080502 +v -1.429690 0.550637 -0.559640 +v -1.249500 0.608841 -0.267028 +v -0.945310 0.574363 -0.440360 +v -1.125500 0.516159 -0.732972 +v -0.980663 2.393242 -0.292068 +v -0.777347 2.375091 -0.013731 +v -0.519337 2.231758 -0.207932 +v -0.722653 2.249909 -0.486269 +v -0.933477 2.588399 -0.392854 +v 0.664225 -0.304690 1.412559 +v -0.693189 2.702650 -0.172975 +v 0.596581 -0.000500 1.249254 +v -0.441523 2.536601 -0.357146 +v 0.710775 0.179690 1.524941 +v -0.681811 2.422350 -0.577025 +v 0.778419 -0.124500 1.688246 +v -0.937500 2.937500 -1.583333 +v 0.434534 -0.304690 1.438590 +v -0.687500 3.187500 -1.583333 +v 0.425915 -0.000500 1.260115 +v -0.437500 2.937500 -1.583333 +v 0.440466 0.179690 1.561410 +v -0.687500 2.687500 -1.583333 +v 0.449085 -0.124500 1.739885 +v 1.060269 2.002811 -0.479897 +v 0.719400 1.866494 -0.404961 +v 0.804314 1.851356 -0.040936 +v 1.145183 1.987673 -0.115872 +v 1.308965 0.991199 -0.714465 +v 0.949776 0.936836 -0.625560 +v 1.045201 0.904634 -0.264701 +v 1.404391 0.958997 -0.353606 +v -0.449085 -0.124500 1.739885 +v -0.440466 0.179690 1.561410 +v -0.425915 -0.000500 1.260115 +v -0.434534 -0.304690 1.438590 +v 1.322642 -0.238015 -0.075228 +v 0.959357 -0.153729 -0.040316 +v 1.052358 0.175515 0.096062 +v 1.415643 0.091229 0.061149 +v 1.278729 -0.290643 1.040316 +v 0.949485 -0.197642 0.903938 +v 1.033771 0.165643 0.938851 +v 1.363015 0.072642 1.075228 +v 0.738233 -0.290643 1.591229 +v 0.601855 -0.197642 1.261985 +v 0.636767 0.165643 1.346271 +v 0.773145 0.072642 1.675515 +v -0.448413 0.072642 1.725972 +v -0.431036 0.165643 1.366144 +v -0.426587 -0.197642 1.274028 +v -0.443964 -0.290643 1.633857 +v -1.415643 0.071356 0.339798 +v -1.052358 0.163472 0.344247 +v -0.959357 -0.196356 0.326869 +v -1.322642 -0.288472 0.322420 +v -1.404391 0.958997 -0.353606 +v -1.045201 0.904634 -0.264701 +v -0.949776 0.936836 -0.625560 +v -1.308965 0.991199 -0.714465 +v -1.429690 -0.087440 -0.012858 +v -1.249500 0.188246 0.101335 +v -0.945310 0.024940 0.033692 +v -1.125500 -0.250746 -0.080502 +v 1.322642 -0.288472 0.322420 +v 0.959357 -0.196356 0.326869 +v 1.052358 0.163472 0.344247 +v 1.415643 0.071356 0.339798 +v -0.875000 3.117864 -0.880790 +v -0.500000 3.117864 -0.880790 +v -0.500000 2.757136 -0.952543 +v -0.875000 2.757136 -0.952543 +v -0.937500 2.812500 -0.625000 +v -0.687500 3.016373 -0.488776 +v -0.437500 2.812500 -0.625000 +v -0.687500 2.608627 -0.761224 +v 0.443964 -0.290643 1.633857 +v 0.426587 -0.197642 1.274028 +v 0.431036 0.165643 1.366144 +v 0.448413 0.072642 1.725972 +v -0.250000 1.937500 -2.250000 +v -0.250000 1.937500 -4.000000 +v -0.375000 1.937500 -2.250000 +v -0.375000 1.937500 -4.000000 +v -0.250000 2.312500 -3.750000 +v -0.250000 2.312500 -3.000000 +v -0.375000 2.312500 -3.750000 +v -0.375000 2.312500 -3.000000 +vt 0.588462 0.886792 +vt 0.496154 1.000000 +vt 0.496154 0.886792 +vt 0.496154 0.867925 +vt 0.588462 0.830189 +vt 0.588462 0.867925 +vt 0.619231 0.811321 +vt 0.611538 0.830189 +vt 0.588462 0.811321 +vt 0.588462 0.641509 +vt 0.496154 0.679245 +vt 0.496154 0.641509 +vt 0.588462 0.679245 +vt 0.496154 0.698113 +vt 0.384615 0.698113 +vt 0.461538 0.688679 +vt 0.461538 0.698113 +vt 0.588462 0.622642 +vt 0.496154 0.622642 +vt 0.465385 0.698113 +vt 0.473077 0.679245 +vt 0.496154 0.811321 +vt 0.496154 0.830189 +vt 0.461538 0.698113 +vt 0.384615 0.716981 +vt 0.384615 0.698113 +vt 0.461538 0.688679 +vt 0.384615 0.688679 +vt 0.465385 0.716981 +vt 0.465385 0.698113 +vt 0.384615 0.726415 +vt 0.461538 0.716981 +vt 0.461538 0.726415 +vt 0.380769 0.698113 +vt 0.380769 0.716981 +vt 0.384615 0.716981 +vt 0.380769 0.698113 +vt 0.461538 0.716981 +vt 0.384615 0.726415 +vt 0.465385 0.716981 +vt 0.061538 0.820755 +vt 0.015385 0.811321 +vt 0.061538 0.811321 +vt 0.015385 0.849057 +vt 0.061538 0.839623 +vt 0.061538 0.849057 +vt 0.011538 0.811321 +vt 0.003846 0.820755 +vt 0.007692 0.811321 +vt 0.003846 0.839623 +vt 0.011538 0.849057 +vt 0.007692 0.849057 +vt 0.069231 0.811321 +vt 0.065385 0.811321 +vt 0.069231 0.849057 +vt 0.065385 0.849057 +vt 0.076923 0.811321 +vt 0.073077 0.820755 +vt 0.073077 0.811321 +vt 0.073077 0.839623 +vt 0.076923 0.849057 +vt 0.073077 0.849057 +vt 0.000000 0.820755 +vt 0.003846 0.811321 +vt 0.003846 0.849057 +vt -0.000000 0.839623 +vt 0.015385 0.820755 +vt 0.015385 0.839623 +vt 0.076923 0.839623 +vt 0.076923 0.820755 +vt 0.061538 0.820755 +vt 0.015385 0.811321 +vt 0.061538 0.811321 +vt 0.015385 0.849057 +vt 0.061538 0.839623 +vt 0.061538 0.849057 +vt 0.011538 0.811321 +vt 0.003846 0.820755 +vt 0.007692 0.811321 +vt 0.003846 0.839623 +vt 0.011538 0.849057 +vt 0.007692 0.849057 +vt 0.069231 0.811321 +vt 0.065385 0.811321 +vt 0.069231 0.849057 +vt 0.065385 0.849057 +vt 0.076923 0.811321 +vt 0.073077 0.820755 +vt 0.073077 0.811321 +vt 0.073077 0.839623 +vt 0.076923 0.849057 +vt 0.073077 0.849057 +vt 0.000000 0.820755 +vt 0.003846 0.811321 +vt 0.003846 0.849057 +vt -0.000000 0.839623 +vt 0.015385 0.820755 +vt 0.015385 0.839623 +vt 0.076923 0.839623 +vt 0.076923 0.820755 +vt 0.003846 0.745283 +vt -0.000000 0.735849 +vt 0.003846 0.735849 +vt 0.076923 0.735849 +vt 0.073077 0.745283 +vt 0.073077 0.735849 +vt 0.061538 0.735849 +vt 0.015385 0.745283 +vt 0.015385 0.735849 +vt 0.069231 0.735849 +vt 0.061538 0.745283 +vt 0.065385 0.735849 +vt 0.007692 0.735849 +vt 0.011538 0.735849 +vt -0.000000 0.811321 +vt 0.003846 0.801887 +vt 0.003846 0.811321 +vt 0.073077 0.801887 +vt 0.076923 0.811321 +vt 0.073077 0.811321 +vt 0.015385 0.801887 +vt 0.061538 0.811321 +vt 0.015385 0.811321 +vt 0.061538 0.801887 +vt 0.069231 0.811321 +vt 0.065385 0.811321 +vt 0.007692 0.811321 +vt 0.011538 0.811321 +vt 0.076923 0.745283 +vt -0.000000 0.745283 +vt 0.407692 0.650943 +vt 0.430769 0.660377 +vt 0.407692 0.660377 +vt 0.461538 0.622642 +vt 0.430769 0.650943 +vt 0.407692 0.622642 +vt 0.465385 0.660377 +vt 0.453846 0.650943 +vt 0.465385 0.650943 +vt 0.461538 0.688679 +vt 0.453846 0.660377 +vt 0.092308 0.754717 +vt 0.100000 0.764151 +vt 0.092308 0.764151 +vt 0.100000 0.754717 +vt 0.107692 0.764151 +vt 0.115385 0.754717 +vt 0.115385 0.764151 +vt 0.123077 0.754717 +vt 0.123077 0.764151 +vt 0.130769 0.764151 +vt 0.130769 0.754717 +vt 0.138462 0.764151 +vt 0.076923 0.764151 +vt 0.084615 0.754717 +vt 0.084615 0.764151 +vt 0.084615 0.774010 +vt 0.092115 0.792408 +vt 0.084615 0.810806 +vt 0.219231 0.754717 +vt 0.207692 0.764151 +vt 0.207692 0.754717 +vt 0.196154 0.764151 +vt 0.196154 0.754717 +vt 0.184615 0.764151 +vt 0.184615 0.754717 +vt 0.173077 0.754717 +vt 0.173077 0.764151 +vt 0.161538 0.754717 +vt 0.161538 0.764151 +vt 0.150000 0.754717 +vt 0.150000 0.764151 +vt 0.138462 0.754717 +vt 0.230769 0.754717 +vt 0.219231 0.764151 +vt 0.161419 0.783263 +vt 0.165301 0.806249 +vt 0.138795 0.806249 +vt 0.407692 0.650943 +vt 0.430769 0.660377 +vt 0.407692 0.660377 +vt 0.461538 0.622642 +vt 0.430769 0.650943 +vt 0.407692 0.622642 +vt 0.465385 0.660377 +vt 0.453846 0.650943 +vt 0.465385 0.650943 +vt 0.461538 0.688679 +vt 0.453846 0.660377 +vt 0.588462 1.000000 +vt 0.596154 0.830189 +vt 0.588462 0.698113 +vt 0.619231 0.698113 +vt 0.596154 0.679245 +vt 0.611538 0.679245 +vt 0.384615 0.688679 +vt 0.488462 0.679245 +vt 0.465385 0.811321 +vt 0.488462 0.830189 +vt 0.473077 0.830189 +vt 0.380769 0.716981 +vt 0.461538 0.726415 +vt 0.465385 0.698113 +vt 0.000000 0.811321 +vt -0.000000 0.849057 +vt 0.000000 0.811321 +vt -0.000000 0.849057 +vt -0.000000 0.801887 +vt 0.076923 0.801887 +vt 0.407692 0.688679 +vt 0.107692 0.754717 +vt 0.138462 0.754717 +vt 0.076923 0.754717 +vt 0.079311 0.805418 +vt 0.077114 0.792408 +vt 0.079311 0.779398 +vt 0.089919 0.779398 +vt 0.089919 0.805418 +vt 0.138462 0.764151 +vt 0.230769 0.764151 +vt 0.161419 0.829236 +vt 0.152048 0.838757 +vt 0.142677 0.829236 +vt 0.142677 0.783263 +vt 0.152048 0.773742 +vt 0.407692 0.688679 +vt 0.100000 0.735849 +vt 0.092308 0.735849 +vt 0.084615 0.735849 +vt 0.076923 0.735849 +vt 0.130769 0.735849 +vt 0.123077 0.735849 +vt 0.115385 0.735849 +vt 0.107692 0.735849 +vt 0.138462 0.735849 +vt 0.107692 0.773585 +vt 0.100000 0.773585 +vt 0.084615 0.773585 +vt 0.130769 0.773585 +vt 0.115385 0.773585 +vt 0.092308 0.773585 +vt 0.076923 0.773585 +vt 0.123077 0.773585 +vt 0.184615 0.735849 +vt 0.196154 0.735849 +vt 0.207692 0.735849 +vt 0.219231 0.735849 +vt 0.138462 0.735849 +vt 0.150000 0.735849 +vt 0.161538 0.735849 +vt 0.173077 0.735849 +vt 0.230769 0.735849 +vt 0.207692 0.773585 +vt 0.138462 0.773585 +vt 0.161538 0.773585 +vt 0.196154 0.773585 +vt 0.219231 0.773585 +vt 0.150000 0.773585 +vt 0.173077 0.773585 +vt 0.184615 0.773585 +vt 0.365385 0.735849 +vt 0.380769 0.745283 +vt 0.365385 0.745283 +vt 0.357692 0.801887 +vt 0.365385 0.811321 +vt 0.357692 0.811321 +vt 0.357692 0.792453 +vt 0.365385 0.801887 +vt 0.380769 0.792453 +vt 0.365385 0.792453 +vt 0.380769 0.801887 +vt 0.357692 0.783019 +vt 0.357692 0.773585 +vt 0.365385 0.783019 +vt 0.380769 0.773585 +vt 0.365385 0.773585 +vt 0.380769 0.783019 +vt 0.365385 0.764151 +vt 0.365385 0.754717 +vt 0.357692 0.764151 +vt 0.357692 0.754717 +vt 0.380769 0.764151 +vt 0.357692 0.735849 +vt 0.350000 0.745283 +vt 0.350000 0.735849 +vt 0.357692 0.745283 +vt 0.380769 0.754717 +vt 0.350000 0.811321 +vt 0.350000 0.792453 +vt 0.350000 0.801887 +vt 0.350000 0.783019 +vt 0.350000 0.773585 +vt 0.350000 0.764151 +vt 0.350000 0.754717 +vt 0.342308 0.745283 +vt 0.342308 0.735849 +vt 0.342308 0.811321 +vt 0.342308 0.801887 +vt 0.342308 0.792453 +vt 0.342308 0.773585 +vt 0.342308 0.783019 +vt 0.342308 0.764151 +vt 0.342308 0.754717 +vt 0.330769 0.801887 +vt 0.330769 0.811321 +vt 0.330769 0.792453 +vt 0.330769 0.783019 +vt 0.330769 0.773585 +vt 0.330769 0.764151 +vt 0.330769 0.754717 +vt 0.330769 0.745283 +vt 0.330769 0.735849 +vt 0.307692 0.745283 +vt 0.307692 0.735849 +vt 0.307692 0.792453 +vt 0.307692 0.801887 +vt 0.307692 0.783019 +vt 0.307692 0.773585 +vt 0.307692 0.811321 +vt 0.307692 0.764151 +vt 0.307692 0.754717 +vt 0.238462 0.745283 +vt 0.253846 0.754717 +vt 0.253846 0.745283 +vt 0.230769 0.811321 +vt 0.238462 0.801887 +vt 0.230769 0.801887 +vt 0.238462 0.735849 +vt 0.253846 0.735849 +vt 0.230769 0.754717 +vt 0.238462 0.764151 +vt 0.238462 0.754717 +vt 0.238462 0.773585 +vt 0.253846 0.764151 +vt 0.230769 0.773585 +vt 0.238462 0.783019 +vt 0.253846 0.773585 +vt 0.238462 0.792453 +vt 0.253846 0.783019 +vt 0.230769 0.792453 +vt 0.230769 0.764151 +vt 0.296154 0.745283 +vt 0.296154 0.735849 +vt 0.253846 0.811321 +vt 0.253846 0.801887 +vt 0.230769 0.745283 +vt 0.230769 0.735849 +vt 0.230769 0.783019 +vt 0.288462 0.811321 +vt 0.296154 0.801887 +vt 0.296154 0.811321 +vt 0.296154 0.792453 +vt 0.288462 0.801887 +vt 0.288462 0.792453 +vt 0.296154 0.783019 +vt 0.296154 0.773585 +vt 0.288462 0.783019 +vt 0.288462 0.773585 +vt 0.288462 0.764151 +vt 0.288462 0.754717 +vt 0.296154 0.764151 +vt 0.296154 0.754717 +vt 0.288462 0.745283 +vt 0.269231 0.811321 +vt 0.276923 0.801887 +vt 0.269231 0.801887 +vt 0.288462 0.735849 +vt 0.276923 0.801887 +vt 0.276923 0.811321 +vt 0.276923 0.792453 +vt 0.269231 0.754717 +vt 0.269231 0.745283 +vt 0.269231 0.735849 +vt 0.276923 0.783019 +vt 0.276923 0.773585 +vt 0.253846 0.792453 +vt 0.269231 0.764151 +vt 0.276923 0.764151 +vt 0.276923 0.754717 +vt 0.269231 0.783019 +vt 0.276923 0.745283 +vt 0.269231 0.811321 +vt 0.269231 0.801887 +vt 0.269231 0.773585 +vt 0.276923 0.764151 +vt 0.288462 0.754717 +vt 0.276923 0.754717 +vt 0.276923 0.745283 +vt 0.288462 0.735849 +vt 0.276923 0.735849 +vt 0.269231 0.792453 +vt 0.276923 0.773585 +vt 0.288462 0.783019 +vt 0.288462 0.773585 +vt 0.288462 0.745283 +vt 0.276923 0.792453 +vt 0.288462 0.801887 +vt 0.288462 0.792453 +vt 0.288462 0.764151 +vt 0.276923 0.735849 +vt 0.276923 0.783019 +vt 0.269231 0.792453 +vt 0.269231 0.783019 +vt 0.269231 0.735849 +vt 0.269231 0.745283 +vt 0.288462 0.811321 +vt 0.307692 0.745283 +vt 0.296154 0.754717 +vt 0.307692 0.754717 +vt 0.269231 0.764151 +vt 0.269231 0.773585 +vt 0.296154 0.745283 +vt 0.296154 0.735849 +vt 0.296154 0.773585 +vt 0.307692 0.764151 +vt 0.296154 0.764151 +vt 0.253846 0.801887 +vt 0.253846 0.792453 +vt 0.269231 0.754717 +vt 0.253846 0.783019 +vt 0.253846 0.773585 +vt 0.253846 0.811321 +vt 0.296154 0.783019 +vt 0.307692 0.792453 +vt 0.307692 0.783019 +vt 0.307692 0.773585 +vt 0.253846 0.754717 +vt 0.253846 0.764151 +vt 0.238462 0.792453 +vt 0.238462 0.801887 +vt 0.296154 0.811321 +vt 0.307692 0.801887 +vt 0.296154 0.801887 +vt 0.296154 0.792453 +vt 0.330769 0.735849 +vt 0.342308 0.745283 +vt 0.342308 0.735849 +vt 0.253846 0.745283 +vt 0.330769 0.764151 +vt 0.342308 0.754717 +vt 0.330769 0.754717 +vt 0.307692 0.735849 +vt 0.330769 0.745283 +vt 0.330769 0.783019 +vt 0.342308 0.773585 +vt 0.330769 0.773585 +vt 0.330769 0.792453 +vt 0.342308 0.801887 +vt 0.342308 0.792453 +vt 0.342308 0.764151 +vt 0.330769 0.811321 +vt 0.330769 0.801887 +vt 0.253846 0.735849 +vt 0.342308 0.783019 +vt 0.238462 0.783019 +vt 0.238462 0.773585 +vt 0.238462 0.811321 +vt 0.342308 0.811321 +vt 0.350000 0.754717 +vt 0.238462 0.764151 +vt 0.238462 0.754717 +vt 0.350000 0.764151 +vt 0.350000 0.773585 +vt 0.230769 0.811321 +vt 0.230769 0.801887 +vt 0.350000 0.783019 +vt 0.357692 0.745283 +vt 0.365385 0.735849 +vt 0.357692 0.735849 +vt 0.238462 0.745283 +vt 0.350000 0.792453 +vt 0.350000 0.801887 +vt 0.357692 0.754717 +vt 0.365385 0.745283 +vt 0.380769 0.754717 +vt 0.380769 0.745283 +vt 0.350000 0.735849 +vt 0.350000 0.745283 +vt 0.365385 0.754717 +vt 0.380769 0.764151 +vt 0.357692 0.764151 +vt 0.357692 0.773585 +vt 0.365385 0.764151 +vt 0.380769 0.773585 +vt 0.357692 0.783019 +vt 0.357692 0.792453 +vt 0.238462 0.735849 +vt 0.357692 0.801887 +vt 0.350000 0.811321 +vt 0.230769 0.783019 +vt 0.230769 0.792453 +vt 0.230769 0.745283 +vt 0.230769 0.735849 +vt 0.365385 0.792453 +vt 0.380769 0.783019 +vt 0.365385 0.783019 +vt 0.365385 0.773585 +vt 0.230769 0.764151 +vt 0.230769 0.773585 +vt 0.230769 0.754717 +vt 0.365385 0.811321 +vt 0.380769 0.801887 +vt 0.365385 0.801887 +vt 0.380769 0.792453 +vt 0.380769 0.735849 +vt 0.357692 0.811321 +vt 0.138462 0.773585 +vt 0.230769 0.773585 +vt 0.380769 0.735849 +vt 0.380769 0.811321 +vt 0.238462 0.811321 +vt 0.276923 0.811321 +vt 0.307692 0.811321 +vt 0.380769 0.811321 +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.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7190 0.6950 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.0000 0.5547 -0.8321 +vn 0.0000 -0.9803 -0.1973 +vn 0.7046 -0.7095 0.0098 +vn 0.7345 -0.6651 -0.1347 +vn -0.7327 -0.5610 -0.3853 +vn 0.0051 -0.8266 -0.5628 +vn -0.9991 0.0299 0.0285 +vn -0.7345 -0.6651 -0.1347 +vn -1.0000 -0.0011 0.0015 +vn -0.9992 0.0397 0.0092 +vn -0.7046 -0.7095 0.0098 +vn -0.6787 0.6056 0.4155 +vn -0.0021 0.8304 0.5572 +vn -0.6766 0.7206 0.1516 +vn -0.0000 0.9999 0.0107 +vn 0.0000 0.9786 0.2058 +vn -0.7049 0.7092 0.0057 +vn 0.6766 0.7206 0.1516 +vn 0.9992 0.0397 0.0092 +vn 0.6787 0.6108 0.4078 +vn 0.9993 0.0274 0.0255 +vn 0.7049 0.7092 0.0057 +vn 0.7007 -0.3797 -0.6040 +vn -0.0219 -0.5940 -0.8041 +vn 0.7302 -0.5717 -0.3742 +vn 1.0000 -0.0011 0.0015 +vn -0.9920 -0.0671 0.1066 +vn -0.7437 -0.4510 -0.4935 +vn -0.6863 0.3489 0.6382 +vn -0.0193 0.5797 0.8146 +vn 0.6678 0.4985 0.5528 +vn 0.9947 0.0919 -0.0457 +vn 0.6096 0.0346 -0.7919 +vn -0.1225 -0.2678 -0.9557 +vn -0.7719 -0.3964 -0.4970 +vn -0.9325 -0.2861 0.2203 +vn 0.0670 0.2527 0.9652 +vn -0.5836 -0.0202 0.8118 +vn 0.6886 0.3935 0.6091 +vn 0.9416 0.3085 -0.1354 +vn -0.8125 -0.2178 -0.5407 +vn -0.2181 0.0656 -0.9737 +vn -0.9075 -0.3545 0.2254 +vn -0.4534 -0.2680 0.8501 +vn 0.2400 -0.0379 0.9700 +vn 0.8049 0.2163 0.5526 +vn 0.9161 0.3583 -0.1802 +vn 0.5073 0.3058 -0.8057 +vn 0.5060 0.1704 -0.8455 +vn -0.2276 0.0850 -0.9700 +vn -0.9609 -0.1599 0.2260 +vn -0.8340 -0.0454 -0.5499 +vn -0.4834 -0.1880 0.8550 +vn 0.2786 -0.0975 0.9555 +vn 0.8741 0.0535 0.4828 +vn 0.9545 0.1608 -0.2513 +vn -0.2667 -0.8177 0.5102 +vn -0.8878 -0.2294 0.3989 +vn -0.5285 -0.8145 0.2394 +vn 0.0215 -0.9701 -0.2419 +vn 0.3568 -0.5584 -0.7489 +vn 0.0577 -0.5092 -0.8587 +vn 0.0780 -0.9828 -0.1673 +vn 0.1648 -0.9837 -0.0712 +vn -0.1468 -0.2381 0.9601 +vn -0.4012 0.4696 0.7864 +vn -0.4414 -0.2304 0.8672 +vn -0.1475 0.9501 0.2748 +vn -0.8066 0.4668 0.3625 +vn -0.0363 0.9640 0.2636 +vn 0.1865 0.9016 -0.3902 +vn -0.2876 0.9487 0.1312 +vn 0.4107 0.2668 -0.8719 +vn 0.3926 0.9040 -0.1690 +vn 0.0615 0.2471 -0.9670 +vn -0.1302 0.4906 0.8616 +vn 0.4828 -0.1837 -0.8563 +vn -0.2328 -0.2132 -0.9489 +vn 0.7635 -0.5595 -0.3226 +vn -0.0758 -0.8459 0.5279 +vn 0.0418 0.8619 -0.5054 +vn -0.2342 -0.5860 -0.7757 +vn -0.8280 -0.1316 -0.5451 +vn -0.9790 0.0319 0.2013 +vn -0.8325 -0.3371 -0.4396 +vn -0.9759 0.1320 0.1739 +vn -0.5432 0.1788 0.8204 +vn 0.2644 0.2167 0.9398 +vn -0.5256 0.5249 0.6695 +vn 0.2518 0.5976 0.7612 +vn 0.8785 0.2916 0.3783 +vn 0.9576 -0.1768 -0.2275 +vn 0.8916 0.1116 0.4389 +vn 0.9560 -0.0509 -0.2890 +vn 0.4805 -0.5291 -0.6994 +vn 0.2405 -0.9686 -0.0635 +vn 0.8210 -0.5200 -0.2355 +vn 0.8513 -0.5234 -0.0378 +vn -0.8210 -0.5200 -0.2355 +vn -0.2317 -0.8873 -0.3987 +vn -0.9821 0.1734 0.0738 +vn -0.9663 -0.2569 0.0179 +vn -0.5055 -0.8620 -0.0389 +vn -0.5564 0.7654 0.3234 +vn 0.2663 0.8888 0.3731 +vn 0.8888 0.2666 -0.3727 +vn -0.8654 0.4991 0.0433 +vn 0.8995 0.4017 0.1717 +vn 0.9518 -0.2791 -0.1275 +vn 0.5091 0.8606 0.0138 +vn 0.4724 -0.8039 -0.3614 +vn -0.2405 -0.9686 -0.0635 +vn -0.8513 -0.5234 -0.0378 +vn -0.2526 0.9672 0.0273 +vn -0.8995 0.4017 0.1717 +vn -0.9576 -0.1768 -0.2275 +vn -0.9518 -0.2791 -0.1275 +vn -0.4724 -0.8039 -0.3614 +vn 0.2342 -0.5860 -0.7757 +vn 0.2317 -0.8873 -0.3987 +vn 0.9696 0.2449 -0.0005 +vn -0.2663 0.8888 0.3731 +vn 0.5256 0.5249 0.6695 +vn -0.2518 0.5976 0.7612 +vn -0.4805 -0.5291 -0.6994 +vn 0.9821 0.1734 0.0738 +vn 0.8325 -0.3371 -0.4396 +vn 0.9759 0.1320 0.1739 +vn -0.8785 0.2916 0.3783 +vn 0.5564 0.7654 0.3234 +vn -0.9696 0.2449 -0.0005 +vn -0.5091 0.8606 0.0138 +vn 0.5055 -0.8620 -0.0389 +vn -0.5060 0.1704 -0.8455 +vn -0.9560 -0.0509 -0.2890 +vn -0.9545 0.1608 -0.2513 +vn 0.8654 0.4991 0.0433 +vn 0.2526 0.9672 0.0273 +vn -0.4828 -0.1837 -0.8563 +vn 0.2328 -0.2132 -0.9489 +vn -0.2644 0.2167 0.9398 +vn -0.8741 0.0535 0.4828 +vn -0.8916 0.1116 0.4389 +vn -0.7635 -0.5595 -0.3226 +vn -0.8888 0.2666 -0.3727 +vn 0.9663 -0.2569 0.0179 +vn -0.3926 0.9040 -0.1690 +vn 0.2876 0.9487 0.1312 +vn -0.1648 -0.9837 -0.0712 +vn 0.5432 0.1788 0.8204 +vn 0.9609 -0.1599 0.2260 +vn 0.4834 -0.1880 0.8550 +vn -0.2786 -0.0975 0.9555 +vn 0.8878 -0.2294 0.3989 +vn 0.8066 0.4668 0.3625 +vn -0.4107 0.2668 -0.8719 +vn -0.3568 -0.5584 -0.7489 +vn 0.8340 -0.0454 -0.5499 +vn 0.8280 -0.1316 -0.5451 +vn 0.9790 0.0319 0.2013 +vn 0.2181 0.0656 -0.9737 +vn -0.6096 0.0346 -0.7919 +vn 0.1225 -0.2678 -0.9557 +vn 0.5285 -0.8145 0.2394 +vn -0.8049 0.2163 0.5526 +vn -0.9416 0.3085 -0.1354 +vn -0.9161 0.3583 -0.1802 +vn 0.2276 0.0850 -0.9700 +vn -0.5073 0.3058 -0.8057 +vn 0.4534 -0.2680 0.8501 +vn -0.0670 0.2527 0.9652 +vn -0.2400 -0.0379 0.9700 +vn 0.9075 -0.3545 0.2254 +vn 0.7719 -0.3964 -0.4970 +vn 0.9325 -0.2861 0.2203 +vn -0.6886 0.3935 0.6091 +vn 0.8125 -0.2178 -0.5407 +vn 0.5836 -0.0202 0.8118 +vn -0.1865 0.9016 -0.3902 +vn 0.1475 0.9501 0.2748 +vn -0.0780 -0.9828 -0.1673 +vn -0.9947 0.0919 -0.0457 +vn 0.4012 0.4696 0.7864 +vn 0.4414 -0.2304 0.8672 +vn -0.6678 0.4985 0.5528 +vn 0.0193 0.5797 0.8146 +vn -0.0215 -0.9701 -0.2419 +vn -0.0577 -0.5092 -0.8587 +vn 0.6863 0.3489 0.6382 +vn -0.7302 -0.5717 -0.3742 +vn -0.0051 -0.8266 -0.5628 +vn 0.2667 -0.8177 0.5102 +vn 0.9920 -0.0671 0.1066 +vn 0.7437 -0.4510 -0.4935 +vn -0.9993 0.0274 0.0255 +vn 0.0219 -0.5940 -0.8041 +vn -0.7007 -0.3797 -0.6040 +vn -0.6787 0.6108 0.4078 +vn 0.0021 0.8304 0.5572 +vn 0.6787 0.6056 0.4155 +vn 0.9991 0.0299 0.0285 +vn 0.7327 -0.5610 -0.3853 +vn -0.0418 0.8619 -0.5054 +vn -0.0615 0.2471 -0.9670 +vn 0.0758 -0.8459 0.5279 +vn 0.1302 0.4906 0.8616 +vn 0.0363 0.9640 0.2636 +vn 0.1468 -0.2381 0.9601 +vn 0.0000 -0.9999 0.0154 +s off +f 3/1/1 2/2/1 1/3/1 +f 15/4/2 11/5/2 13/6/2 +f 3/7/3 13/8/3 5/9/3 +f 14/10/4 9/11/4 16/12/4 +f 10/13/5 8/14/5 9/11/5 +f 26/15/1 30/16/1 25/17/1 +f 4/18/6 16/12/6 2/19/6 +f 2/20/7 16/21/7 8/14/7 +f 1/3/8 13/6/8 3/1/8 +f 8/14/9 5/9/9 7/22/9 +f 12/23/10 5/9/10 11/5/10 +f 21/24/4 24/25/4 22/26/4 +f 18/27/1 22/26/1 17/28/1 +f 19/29/3 21/24/3 18/30/3 +f 20/31/9 23/32/9 19/33/9 +f 17/34/7 24/25/7 20/35/7 +f 27/36/3 29/37/3 26/15/3 +f 28/38/9 31/39/9 27/36/9 +f 25/17/7 32/40/7 28/38/7 +f 28/38/2 26/15/2 25/17/2 +f 43/41/3 38/42/3 37/43/3 +f 34/44/7 41/45/7 33/46/7 +f 38/47/3 48/48/3 39/49/3 +f 47/50/7 34/51/7 35/52/7 +f 40/53/3 43/41/3 37/54/3 +f 41/45/7 36/55/7 33/56/7 +f 50/57/3 46/58/3 40/59/3 +f 45/60/7 49/61/7 36/62/7 +f 56/63/3 39/64/3 48/48/3 +f 35/65/7 55/66/7 47/50/7 +f 47/50/4 56/63/4 48/48/4 +f 44/67/11 47/50/11 48/48/11 +f 42/68/9 43/41/9 41/45/9 +f 45/60/10 43/41/10 46/58/10 +f 51/69/2 46/58/2 52/70/2 +f 67/71/3 62/72/3 61/73/3 +f 58/74/7 65/75/7 57/76/7 +f 62/77/3 72/78/3 63/79/3 +f 71/80/7 58/81/7 59/82/7 +f 64/83/3 67/71/3 61/84/3 +f 65/75/7 60/85/7 57/86/7 +f 74/87/3 70/88/3 64/89/3 +f 69/90/7 73/91/7 60/92/7 +f 80/93/3 63/94/3 72/78/3 +f 59/95/7 79/96/7 71/80/7 +f 71/80/4 80/93/4 72/78/4 +f 68/97/11 71/80/11 72/78/11 +f 66/98/9 67/71/9 65/75/9 +f 69/90/10 67/71/10 70/88/10 +f 75/99/2 70/88/2 76/100/2 +f 87/101/3 86/102/3 83/103/3 +f 85/104/3 89/105/3 84/106/3 +f 82/107/3 91/108/3 81/109/3 +f 84/110/3 92/111/3 82/112/3 +f 91/108/3 83/113/3 81/114/3 +f 98/115/7 99/116/7 95/117/7 +f 101/118/7 97/119/7 96/120/7 +f 103/121/7 94/122/7 93/123/7 +f 104/124/7 96/125/7 94/126/7 +f 95/127/7 103/121/7 93/128/7 +f 92/111/1 103/121/1 91/108/1 +f 89/105/6 104/124/6 92/111/6 +f 90/129/4 101/118/4 89/105/4 +f 103/121/8 87/101/8 91/108/8 +f 99/116/2 88/130/2 87/101/2 +f 105/131/12 112/132/12 107/133/12 +f 106/134/4 110/135/4 105/136/4 +f 108/137/13 109/138/13 106/139/13 +f 108/140/2 112/132/2 111/141/2 +f 135/142/7 128/143/7 127/144/7 +f 136/145/7 121/146/7 128/143/7 +f 121/146/7 130/147/7 122/148/7 +f 122/148/7 131/149/7 123/150/7 +f 131/149/7 124/151/7 123/150/7 +f 132/152/7 125/153/7 124/151/7 +f 125/154/7 134/155/7 126/156/7 +f 126/156/7 135/142/7 127/144/7 +f 141/157/7 143/158/7 138/159/7 +f 158/160/3 167/161/3 159/162/3 +f 159/162/3 168/163/3 160/164/3 +f 160/164/3 161/165/3 153/166/3 +f 161/165/3 154/167/3 153/166/3 +f 162/168/3 155/169/3 154/167/3 +f 163/170/3 156/171/3 155/169/3 +f 164/172/3 157/173/3 156/171/3 +f 157/174/3 166/175/3 158/160/3 +f 172/176/3 171/177/3 175/178/3 +f 401/179/12 408/180/12 403/181/12 +f 402/182/4 406/183/4 401/184/4 +f 404/185/13 405/186/13 402/187/13 +f 404/188/2 408/180/2 407/189/2 +f 3/1/1 4/190/1 2/2/1 +f 15/4/2 12/23/2 11/5/2 +f 13/8/3 11/191/3 5/9/3 +f 5/9/3 6/192/3 4/193/3 +f 6/192/3 10/194/3 4/193/3 +f 10/194/3 14/195/3 4/193/3 +f 4/193/3 3/7/3 5/9/3 +f 14/10/4 10/13/4 9/11/4 +f 10/13/5 6/192/5 8/14/5 +f 26/15/1 29/196/1 30/16/1 +f 4/18/6 14/10/6 16/12/6 +f 16/21/7 9/197/7 8/14/7 +f 8/14/7 7/22/7 1/198/7 +f 7/22/7 12/199/7 1/198/7 +f 12/199/7 15/200/7 1/198/7 +f 1/198/7 2/20/7 8/14/7 +f 1/3/8 15/4/8 13/6/8 +f 8/14/9 6/192/9 5/9/9 +f 12/23/10 7/22/10 5/9/10 +f 21/24/4 23/32/4 24/25/4 +f 18/27/1 21/24/1 22/26/1 +f 19/29/3 23/32/3 21/24/3 +f 20/31/9 24/25/9 23/32/9 +f 17/34/7 22/26/7 24/25/7 +f 27/36/3 31/201/3 29/37/3 +f 28/38/9 32/202/9 31/39/9 +f 25/17/7 30/203/7 32/40/7 +f 28/38/2 27/36/2 26/15/2 +f 43/41/3 44/67/3 38/42/3 +f 34/44/7 42/68/7 41/45/7 +f 38/47/3 44/67/3 48/48/3 +f 47/50/7 42/68/7 34/51/7 +f 40/53/3 46/58/3 43/41/3 +f 41/45/7 45/60/7 36/55/7 +f 50/57/3 52/70/3 46/58/3 +f 45/60/7 51/69/7 49/61/7 +f 56/63/3 54/204/3 39/64/3 +f 35/65/7 53/205/7 55/66/7 +f 47/50/4 55/66/4 56/63/4 +f 44/67/11 42/68/11 47/50/11 +f 42/68/9 44/67/9 43/41/9 +f 45/60/10 41/45/10 43/41/10 +f 51/69/2 45/60/2 46/58/2 +f 67/71/3 68/97/3 62/72/3 +f 58/74/7 66/98/7 65/75/7 +f 62/77/3 68/97/3 72/78/3 +f 71/80/7 66/98/7 58/81/7 +f 64/83/3 70/88/3 67/71/3 +f 65/75/7 69/90/7 60/85/7 +f 74/87/3 76/100/3 70/88/3 +f 69/90/7 75/99/7 73/91/7 +f 80/93/3 78/206/3 63/94/3 +f 59/95/7 77/207/7 79/96/7 +f 71/80/4 79/96/4 80/93/4 +f 68/97/11 66/98/11 71/80/11 +f 66/98/9 68/97/9 67/71/9 +f 69/90/10 65/75/10 67/71/10 +f 75/99/2 69/90/2 70/88/2 +f 87/101/3 88/130/3 86/102/3 +f 85/104/3 90/129/3 89/105/3 +f 82/107/3 92/111/3 91/108/3 +f 84/110/3 89/105/3 92/111/3 +f 91/108/3 87/101/3 83/113/3 +f 98/115/7 100/208/7 99/116/7 +f 101/118/7 102/209/7 97/119/7 +f 103/121/7 104/124/7 94/122/7 +f 104/124/7 101/118/7 96/125/7 +f 95/127/7 99/116/7 103/121/7 +f 92/111/1 104/124/1 103/121/1 +f 89/105/6 101/118/6 104/124/6 +f 90/129/4 102/209/4 101/118/4 +f 103/121/8 99/116/8 87/101/8 +f 99/116/2 100/208/2 88/130/2 +f 105/131/12 110/135/12 112/132/12 +f 106/134/4 109/138/4 110/135/4 +f 108/137/13 111/141/13 109/138/13 +f 108/140/2 107/210/2 112/132/2 +f 135/142/7 136/145/7 128/143/7 +f 136/145/7 129/211/7 121/146/7 +f 121/146/7 129/211/7 130/147/7 +f 122/148/7 130/147/7 131/149/7 +f 131/149/7 132/152/7 124/151/7 +f 132/152/7 133/212/7 125/153/7 +f 125/154/7 133/213/7 134/155/7 +f 126/156/7 134/155/7 135/142/7 +f 138/159/7 137/214/7 139/215/7 +f 139/215/7 140/216/7 141/157/7 +f 141/157/7 142/217/7 143/158/7 +f 143/158/7 144/218/7 138/159/7 +f 138/159/7 139/215/7 141/157/7 +f 158/160/3 166/175/3 167/161/3 +f 159/162/3 167/161/3 168/163/3 +f 160/164/3 168/163/3 161/165/3 +f 161/165/3 162/168/3 154/167/3 +f 162/168/3 163/170/3 155/169/3 +f 163/170/3 164/172/3 156/171/3 +f 164/172/3 165/219/3 157/173/3 +f 157/174/3 165/220/3 166/175/3 +f 171/177/3 169/221/3 170/222/3 +f 170/222/3 176/223/3 171/177/3 +f 176/223/3 175/178/3 171/177/3 +f 175/178/3 174/224/3 173/225/3 +f 173/225/3 172/176/3 175/178/3 +f 401/179/12 406/183/12 408/180/12 +f 402/182/4 405/186/4 406/183/4 +f 404/185/13 407/189/13 405/186/13 +f 404/188/2 403/226/2 408/180/2 +s 1 +f 120/227/5 135/142/4 119/228/4 +f 118/229/6 133/213/1 117/230/1 +f 116/231/8 131/149/2 115/232/2 +f 114/233/10 129/211/9 113/234/9 +f 113/234/9 136/145/5 120/227/5 +f 119/228/4 134/155/6 118/229/6 +f 117/235/1 132/152/8 116/231/8 +f 115/232/2 130/147/10 114/233/10 +f 122/148/6 138/236/1 121/146/1 +f 121/146/1 144/237/8 128/143/8 +f 127/144/2 142/238/10 126/156/10 +f 125/153/9 140/239/5 124/151/5 +f 123/150/4 137/240/6 122/148/6 +f 128/143/8 143/241/2 127/144/2 +f 126/156/10 141/242/9 125/154/9 +f 124/151/5 139/243/4 123/150/4 +f 160/164/5 145/244/9 152/245/5 +f 158/160/6 151/246/4 150/247/6 +f 156/171/8 149/248/1 148/249/8 +f 154/167/10 147/250/2 146/251/10 +f 159/162/4 152/245/5 151/246/4 +f 157/174/1 150/247/6 149/252/1 +f 155/169/2 148/249/8 147/250/2 +f 153/166/9 146/251/10 145/244/9 +f 166/175/10 175/253/2 167/161/2 +f 164/172/5 173/254/9 165/219/9 +f 162/168/6 171/255/4 163/170/4 +f 167/161/2 176/256/8 168/163/8 +f 165/220/9 174/257/10 166/175/10 +f 163/170/4 172/258/5 164/172/5 +f 161/165/1 169/259/6 162/168/6 +f 168/163/8 170/260/1 161/165/1 +f 181/261/14 237/262/15 241/263/16 +f 246/264/17 181/265/14 185/266/18 +f 186/267/19 242/268/20 246/264/17 +f 178/269/21 242/268/20 182/270/22 +f 238/271/23 181/265/14 242/268/20 +f 247/272/24 182/270/22 186/267/19 +f 187/273/25 243/274/26 247/272/24 +f 179/275/27 243/274/26 183/276/28 +f 239/277/29 182/270/22 243/274/26 +f 187/273/25 244/278/30 183/276/28 +f 184/279/31 248/280/32 188/281/33 +f 184/279/31 240/282/34 244/278/30 +f 244/278/30 179/275/27 183/276/28 +f 188/281/33 241/263/16 184/279/31 +f 185/283/18 249/284/35 189/285/36 +f 181/261/14 245/286/37 185/283/18 +f 180/287/38 241/263/16 237/262/15 +f 189/288/36 246/264/17 185/266/18 +f 190/289/39 246/264/17 250/290/40 +f 251/291/41 186/267/19 190/289/39 +f 191/292/42 247/272/24 251/291/41 +f 252/293/43 187/273/25 191/292/42 +f 192/294/44 248/280/32 252/293/43 +f 192/294/44 245/286/37 188/281/33 +f 189/285/36 253/295/45 193/296/46 +f 193/297/46 250/290/40 189/288/36 +f 190/289/39 254/298/47 194/299/48 +f 194/299/48 251/291/41 190/289/39 +f 195/300/49 251/291/41 255/301/50 +f 256/302/51 191/292/42 195/300/49 +f 196/303/52 252/293/43 256/302/51 +f 253/295/45 192/294/44 196/303/52 +f 346/304/53 193/297/46 257/305/54 +f 258/306/55 254/298/47 346/304/53 +f 347/307/56 194/299/48 258/306/55 +f 195/300/49 347/307/56 259/308/57 +f 256/302/51 259/308/57 348/309/58 +f 196/303/52 348/309/58 260/310/59 +f 253/295/45 260/310/59 345/311/60 +f 257/312/54 253/295/45 345/311/60 +f 257/312/54 349/313/61 261/314/62 +f 262/315/63 346/304/53 350/316/64 +f 259/308/57 351/317/65 263/318/66 +f 350/316/64 257/305/54 261/319/62 +f 260/310/59 352/320/67 264/321/68 +f 351/317/65 258/306/55 262/315/63 +f 200/322/69 282/323/70 268/324/71 +f 348/309/58 263/318/66 352/320/67 +f 345/311/60 264/321/68 349/313/61 +f 356/325/72 199/326/73 371/327/74 +f 212/328/75 268/324/71 288/329/76 +f 353/330/77 197/331/78 209/332/79 +f 197/331/78 282/323/70 209/332/79 +f 210/333/80 265/334/81 197/331/78 +f 354/335/82 198/336/83 210/333/80 +f 200/322/69 353/330/77 209/332/79 +f 198/336/83 284/337/84 210/333/80 +f 211/338/85 266/339/86 198/336/83 +f 371/327/74 211/338/85 355/340/87 +f 369/341/88 210/333/80 197/331/78 +f 261/314/62 273/342/89 201/343/90 +f 199/326/73 288/344/76 267/345/91 +f 372/346/92 212/328/75 356/347/72 +f 370/348/93 211/338/85 198/336/83 +f 205/349/94 275/350/95 201/351/90 +f 202/352/96 283/353/97 206/354/98 +f 202/352/96 350/316/64 275/350/95 +f 350/316/64 201/351/90 275/350/95 +f 206/354/98 277/355/99 202/352/96 +f 203/356/100 285/357/101 207/358/102 +f 203/356/100 351/317/65 277/355/99 +f 277/355/99 262/315/63 202/352/96 +f 287/359/103 203/356/100 207/358/102 +f 208/360/104 279/361/105 287/359/103 +f 264/321/68 279/361/105 204/362/106 +f 352/320/67 203/356/100 279/361/105 +f 281/363/107 204/362/106 208/360/104 +f 295/364/108 271/365/109 375/366/110 +f 205/367/94 273/342/89 281/363/107 +f 349/313/61 204/362/106 273/342/89 +f 358/368/111 205/349/94 290/369/112 +f 292/370/113 283/353/97 358/368/111 +f 268/324/71 289/371/114 376/372/115 +f 288/329/76 376/372/115 295/373/108 +f 359/374/116 206/354/98 292/370/113 +f 294/375/117 285/357/101 359/374/116 +f 211/338/85 267/345/91 286/376/118 +f 284/337/84 373/377/119 265/334/81 +f 287/359/103 294/375/117 360/378/120 +f 208/360/104 360/378/120 296/379/121 +f 282/323/70 373/377/119 289/371/114 +f 286/376/118 374/380/122 266/339/86 +f 281/363/107 296/379/121 357/381/123 +f 358/368/111 298/382/124 386/383/125 +f 266/339/86 291/384/126 284/337/84 +f 267/345/91 295/364/108 375/366/110 +f 269/385/127 229/386/128 381/387/129 +f 272/388/130 232/389/131 384/390/132 +f 289/371/114 269/385/127 381/387/129 +f 267/345/91 293/391/133 286/376/118 +f 382/392/134 214/393/135 230/394/136 +f 216/395/137 381/387/129 229/386/128 +f 374/380/122 382/392/134 291/384/126 +f 376/372/115 381/387/129 272/388/130 +f 383/396/138 215/397/139 231/398/140 +f 382/392/134 213/399/141 269/385/127 +f 375/366/110 383/396/138 293/391/133 +f 373/377/119 382/392/134 269/385/127 +f 205/367/94 357/381/123 290/400/112 +f 270/401/142 231/398/140 214/393/135 +f 295/373/108 272/388/130 384/390/132 +f 293/391/133 270/401/142 374/380/122 +f 359/374/116 300/402/143 387/403/144 +f 298/404/124 357/381/123 385/405/145 +f 271/365/109 232/406/131 215/397/139 +f 380/407/146 321/408/147 217/409/148 +f 388/410/149 294/375/117 302/411/150 +f 292/370/113 386/383/125 300/402/143 +f 232/389/131 303/412/151 324/413/152 +f 321/408/147 216/395/137 229/386/128 +f 296/379/121 385/405/145 357/381/123 +f 294/375/117 387/403/144 302/411/150 +f 322/414/153 377/415/154 297/416/155 +f 297/416/155 217/409/148 321/408/147 +f 300/402/143 362/417/156 316/418/157 +f 304/419/158 360/378/120 388/410/149 +f 229/386/128 297/416/155 321/408/147 +f 322/414/153 213/399/141 230/394/136 +f 302/411/150 363/420/159 318/421/160 +f 362/417/156 298/382/124 314/422/161 +f 299/423/162 219/424/163 378/425/164 +f 322/414/153 378/425/164 218/426/165 +f 320/427/166 388/410/149 364/428/167 +f 387/403/144 316/418/157 363/420/159 +f 214/393/135 322/414/153 230/394/136 +f 231/398/140 299/423/162 214/393/135 +f 332/429/168 362/417/156 366/430/169 +f 388/410/149 318/421/160 364/428/167 +f 324/431/152 379/432/170 301/433/171 +f 323/434/172 379/432/170 219/424/163 +f 224/435/173 308/436/174 328/437/175 +f 304/419/158 361/438/176 385/405/145 +f 215/397/139 323/434/172 231/398/140 +f 232/406/131 301/433/171 215/397/139 +f 274/439/177 325/440/178 221/441/179 +f 380/407/146 224/435/173 220/442/180 +f 303/412/151 220/442/180 324/413/152 +f 280/443/181 217/409/148 221/441/179 +f 276/444/182 326/445/183 222/446/184 +f 308/436/174 221/441/179 325/440/178 +f 218/426/165 274/439/177 377/415/154 +f 378/425/164 223/447/185 276/444/182 +f 223/447/185 307/448/186 327/449/187 +f 222/446/184 305/450/188 274/439/177 +f 377/415/154 221/441/179 217/409/148 +f 379/432/170 224/451/173 278/452/189 +f 314/453/161 385/405/145 361/438/176 +f 276/444/182 327/449/187 306/454/190 +f 378/425/164 222/446/184 218/426/165 +f 219/424/163 278/452/189 223/447/185 +f 318/421/160 367/455/191 334/456/192 +f 366/430/169 314/422/161 330/457/193 +f 278/452/189 328/458/175 307/448/186 +f 329/459/194 308/436/174 325/440/178 +f 320/427/166 368/460/195 336/461/196 +f 363/420/159 332/429/168 367/455/191 +f 325/440/178 309/462/197 329/459/194 +f 331/463/198 305/450/188 326/445/183 +f 366/430/169 338/464/199 398/465/200 +f 364/428/167 334/456/192 368/460/195 +f 326/445/183 310/466/201 331/463/198 +f 327/449/187 310/466/201 306/454/190 +f 319/467/202 236/468/14 396/469/203 +f 320/427/166 365/470/204 361/438/176 +f 307/448/186 333/471/205 327/449/187 +f 328/458/175 311/472/206 307/448/186 +f 393/473/207 392/474/20 319/467/202 +f 392/474/20 337/475/21 228/476/23 +f 308/436/174 335/477/208 328/437/175 +f 329/459/194 319/467/202 312/478/209 +f 233/479/22 225/480/29 337/475/21 +f 312/478/209 396/469/203 335/477/208 +f 329/459/194 313/481/210 393/473/207 +f 394/482/211 309/462/197 331/463/198 +f 394/482/211 389/483/26 313/481/210 +f 389/483/26 339/484/27 225/480/29 +f 331/463/198 315/485/212 394/482/211 +f 395/486/213 310/466/201 333/471/205 +f 330/487/193 361/438/176 365/470/204 +f 313/481/210 233/479/22 393/473/207 +f 333/471/205 317/488/214 395/486/213 +f 335/489/208 317/488/214 311/472/206 +f 399/490/215 332/429/168 340/491/216 +f 330/487/193 397/492/217 338/493/199 +f 235/494/31 226/495/34 390/496/30 +f 390/496/30 339/484/27 234/497/28 +f 400/498/218 334/456/192 342/499/219 +f 332/429/168 398/465/200 340/491/216 +f 394/482/211 390/496/30 234/497/28 +f 235/494/31 315/485/212 395/486/213 +f 365/470/204 344/500/220 397/492/217 +f 342/499/219 367/455/191 399/490/215 +f 236/501/14 227/502/15 391/503/16 +f 391/503/16 341/504/38 235/494/31 +f 236/468/14 228/476/23 343/505/221 +f 344/500/220 368/460/195 400/498/218 +f 395/486/213 391/503/16 235/494/31 +f 236/501/14 317/488/214 396/506/203 +f 120/227/5 136/145/5 135/142/4 +f 118/229/6 134/155/6 133/213/1 +f 116/231/8 132/152/8 131/149/2 +f 114/233/10 130/147/10 129/211/9 +f 113/234/9 129/211/9 136/145/5 +f 119/228/4 135/142/4 134/155/6 +f 117/235/1 133/212/1 132/152/8 +f 115/232/2 131/149/2 130/147/10 +f 122/148/6 137/240/6 138/236/1 +f 121/146/1 138/236/1 144/237/8 +f 127/144/2 143/241/2 142/238/10 +f 125/153/9 141/507/9 140/239/5 +f 123/150/4 139/243/4 137/240/6 +f 128/143/8 144/237/8 143/241/2 +f 126/156/10 142/238/10 141/242/9 +f 124/151/5 140/239/5 139/243/4 +f 160/164/5 153/166/9 145/244/9 +f 158/160/6 159/162/4 151/246/4 +f 156/171/8 157/173/1 149/248/1 +f 154/167/10 155/169/2 147/250/2 +f 159/162/4 160/164/5 152/245/5 +f 157/174/1 158/160/6 150/247/6 +f 155/169/2 156/171/8 148/249/8 +f 153/166/9 154/167/10 146/251/10 +f 166/175/10 174/257/10 175/253/2 +f 164/172/5 172/258/5 173/254/9 +f 162/168/6 169/259/6 171/255/4 +f 167/161/2 175/253/2 176/256/8 +f 165/220/9 173/508/9 174/257/10 +f 163/170/4 171/255/4 172/258/5 +f 161/165/1 170/260/1 169/259/6 +f 168/163/8 176/256/8 170/260/1 +f 181/261/14 177/509/221 237/262/15 +f 246/264/17 242/268/20 181/265/14 +f 186/267/19 182/270/22 242/268/20 +f 178/269/21 238/271/23 242/268/20 +f 238/271/23 177/510/221 181/265/14 +f 247/272/24 243/274/26 182/270/22 +f 187/273/25 183/276/28 243/274/26 +f 179/275/27 239/277/29 243/274/26 +f 239/277/29 178/269/21 182/270/22 +f 187/273/25 248/280/32 244/278/30 +f 184/279/31 244/278/30 248/280/32 +f 184/279/31 180/287/38 240/282/34 +f 244/278/30 240/282/34 179/275/27 +f 188/281/33 245/286/37 241/263/16 +f 185/283/18 245/286/37 249/284/35 +f 181/261/14 241/263/16 245/286/37 +f 180/287/38 184/279/31 241/263/16 +f 189/288/36 250/290/40 246/264/17 +f 190/289/39 186/267/19 246/264/17 +f 251/291/41 247/272/24 186/267/19 +f 191/292/42 187/273/25 247/272/24 +f 252/293/43 248/280/32 187/273/25 +f 192/294/44 188/281/33 248/280/32 +f 192/294/44 249/284/35 245/286/37 +f 189/285/36 249/284/35 253/295/45 +f 193/297/46 254/298/47 250/290/40 +f 190/289/39 250/290/40 254/298/47 +f 194/299/48 255/301/50 251/291/41 +f 195/300/49 191/292/42 251/291/41 +f 256/302/51 252/293/43 191/292/42 +f 196/303/52 192/294/44 252/293/43 +f 253/295/45 249/284/35 192/294/44 +f 346/304/53 254/298/47 193/297/46 +f 258/306/55 194/299/48 254/298/47 +f 347/307/56 255/301/50 194/299/48 +f 195/300/49 255/301/50 347/307/56 +f 256/302/51 195/300/49 259/308/57 +f 196/303/52 256/302/51 348/309/58 +f 253/295/45 196/303/52 260/310/59 +f 257/312/54 193/296/46 253/295/45 +f 257/312/54 345/311/60 349/313/61 +f 262/315/63 258/306/55 346/304/53 +f 259/308/57 347/307/56 351/317/65 +f 350/316/64 346/304/53 257/305/54 +f 260/310/59 348/309/58 352/320/67 +f 351/317/65 347/307/56 258/306/55 +f 200/322/69 209/332/79 282/323/70 +f 348/309/58 259/308/57 263/318/66 +f 345/311/60 260/310/59 264/321/68 +f 356/325/72 212/511/75 199/326/73 +f 212/328/75 200/322/69 268/324/71 +f 353/330/77 369/341/88 197/331/78 +f 197/331/78 265/334/81 282/323/70 +f 210/333/80 284/337/84 265/334/81 +f 354/335/82 370/348/93 198/336/83 +f 200/322/69 372/346/92 353/330/77 +f 198/336/83 266/339/86 284/337/84 +f 211/338/85 286/376/118 266/339/86 +f 371/327/74 199/326/73 211/338/85 +f 369/341/88 354/335/82 210/333/80 +f 261/314/62 349/313/61 273/342/89 +f 199/326/73 212/511/75 288/344/76 +f 372/346/92 200/322/69 212/328/75 +f 370/348/93 355/340/87 211/338/85 +f 205/349/94 283/353/97 275/350/95 +f 202/352/96 275/350/95 283/353/97 +f 202/352/96 262/315/63 350/316/64 +f 350/316/64 261/319/62 201/351/90 +f 206/354/98 285/357/101 277/355/99 +f 203/356/100 277/355/99 285/357/101 +f 203/356/100 263/318/66 351/317/65 +f 277/355/99 351/317/65 262/315/63 +f 287/359/103 279/361/105 203/356/100 +f 208/360/104 204/362/106 279/361/105 +f 264/321/68 352/320/67 279/361/105 +f 352/320/67 263/318/66 203/356/100 +f 281/363/107 273/342/89 204/362/106 +f 295/364/108 384/512/132 271/365/109 +f 205/367/94 201/343/90 273/342/89 +f 349/313/61 264/321/68 204/362/106 +f 358/368/111 283/353/97 205/349/94 +f 292/370/113 206/354/98 283/353/97 +f 268/324/71 282/323/70 289/371/114 +f 288/329/76 268/324/71 376/372/115 +f 359/374/116 285/357/101 206/354/98 +f 294/375/117 207/358/102 285/357/101 +f 211/338/85 199/326/73 267/345/91 +f 284/337/84 291/384/126 373/377/119 +f 287/359/103 207/358/102 294/375/117 +f 208/360/104 287/359/103 360/378/120 +f 282/323/70 265/334/81 373/377/119 +f 286/376/118 293/391/133 374/380/122 +f 281/363/107 208/360/104 296/379/121 +f 358/368/111 290/369/112 298/382/124 +f 266/339/86 374/380/122 291/384/126 +f 267/345/91 288/344/76 295/364/108 +f 269/385/127 213/399/141 229/386/128 +f 272/388/130 216/395/137 232/389/131 +f 289/371/114 373/377/119 269/385/127 +f 267/345/91 375/366/110 293/391/133 +f 382/392/134 270/401/142 214/393/135 +f 216/395/137 272/388/130 381/387/129 +f 374/380/122 270/401/142 382/392/134 +f 376/372/115 289/371/114 381/387/129 +f 383/396/138 271/365/109 215/397/139 +f 382/392/134 230/394/136 213/399/141 +f 375/366/110 271/365/109 383/396/138 +f 373/377/119 291/384/126 382/392/134 +f 205/367/94 281/363/107 357/381/123 +f 270/401/142 383/396/138 231/398/140 +f 295/373/108 376/372/115 272/388/130 +f 293/391/133 383/396/138 270/401/142 +f 359/374/116 292/370/113 300/402/143 +f 298/404/124 290/400/112 357/381/123 +f 271/365/109 384/512/132 232/406/131 +f 380/407/146 303/412/151 321/408/147 +f 388/410/149 360/378/120 294/375/117 +f 292/370/113 358/368/111 386/383/125 +f 232/389/131 216/395/137 303/412/151 +f 321/408/147 303/412/151 216/395/137 +f 296/379/121 304/419/158 385/405/145 +f 294/375/117 359/374/116 387/403/144 +f 322/414/153 218/426/165 377/415/154 +f 297/416/155 377/415/154 217/409/148 +f 300/402/143 386/383/125 362/417/156 +f 304/419/158 296/379/121 360/378/120 +f 229/386/128 213/399/141 297/416/155 +f 322/414/153 297/416/155 213/399/141 +f 302/411/150 387/403/144 363/420/159 +f 362/417/156 386/383/125 298/382/124 +f 299/423/162 323/434/172 219/424/163 +f 322/414/153 299/423/162 378/425/164 +f 320/427/166 304/419/158 388/410/149 +f 387/403/144 300/402/143 316/418/157 +f 214/393/135 299/423/162 322/414/153 +f 231/398/140 323/434/172 299/423/162 +f 332/429/168 316/418/157 362/417/156 +f 388/410/149 302/411/150 318/421/160 +f 324/431/152 220/513/180 379/432/170 +f 323/434/172 301/433/171 379/432/170 +f 224/435/173 280/443/181 308/436/174 +f 304/419/158 320/427/166 361/438/176 +f 215/397/139 301/433/171 323/434/172 +f 232/406/131 324/431/152 301/433/171 +f 274/439/177 305/450/188 325/440/178 +f 380/407/146 280/443/181 224/435/173 +f 303/412/151 380/407/146 220/442/180 +f 280/443/181 380/407/146 217/409/148 +f 276/444/182 306/454/190 326/445/183 +f 308/436/174 280/443/181 221/441/179 +f 218/426/165 222/446/184 274/439/177 +f 378/425/164 219/424/163 223/447/185 +f 223/447/185 278/452/189 307/448/186 +f 222/446/184 326/445/183 305/450/188 +f 377/415/154 274/439/177 221/441/179 +f 379/432/170 220/513/180 224/451/173 +f 314/453/161 298/404/124 385/405/145 +f 276/444/182 223/447/185 327/449/187 +f 378/425/164 276/444/182 222/446/184 +f 219/424/163 379/432/170 278/452/189 +f 318/421/160 363/420/159 367/455/191 +f 366/430/169 362/417/156 314/422/161 +f 278/452/189 224/451/173 328/458/175 +f 329/459/194 312/478/209 308/436/174 +f 320/427/166 364/428/167 368/460/195 +f 363/420/159 316/418/157 332/429/168 +f 325/440/178 305/450/188 309/462/197 +f 331/463/198 309/462/197 305/450/188 +f 366/430/169 330/457/193 338/464/199 +f 364/428/167 318/421/160 334/456/192 +f 326/445/183 306/454/190 310/466/201 +f 327/449/187 333/471/205 310/466/201 +f 319/467/202 392/474/20 236/468/14 +f 320/427/166 336/461/196 365/470/204 +f 307/448/186 311/472/206 333/471/205 +f 328/458/175 335/489/208 311/472/206 +f 393/473/207 233/479/22 392/474/20 +f 392/474/20 233/479/22 337/475/21 +f 308/436/174 312/478/209 335/477/208 +f 329/459/194 393/473/207 319/467/202 +f 233/479/22 389/483/26 225/480/29 +f 312/478/209 319/467/202 396/469/203 +f 329/459/194 309/462/197 313/481/210 +f 394/482/211 313/481/210 309/462/197 +f 394/482/211 234/497/28 389/483/26 +f 389/483/26 234/497/28 339/484/27 +f 331/463/198 310/466/201 315/485/212 +f 395/486/213 315/485/212 310/466/201 +f 330/487/193 314/453/161 361/438/176 +f 313/481/210 389/483/26 233/479/22 +f 333/471/205 311/472/206 317/488/214 +f 335/489/208 396/506/203 317/488/214 +f 399/490/215 367/455/191 332/429/168 +f 330/487/193 365/470/204 397/492/217 +f 235/494/31 341/504/38 226/495/34 +f 390/496/30 226/495/34 339/484/27 +f 400/498/218 368/460/195 334/456/192 +f 332/429/168 366/430/169 398/465/200 +f 394/482/211 315/485/212 390/496/30 +f 235/494/31 390/496/30 315/485/212 +f 365/470/204 336/461/196 344/500/220 +f 342/499/219 334/456/192 367/455/191 +f 236/501/14 343/514/221 227/502/15 +f 391/503/16 227/502/15 341/504/38 +f 236/468/14 392/474/20 228/476/23 +f 344/500/220 336/461/196 368/460/195 +f 395/486/213 317/488/214 391/503/16 +f 236/501/14 391/503/16 317/488/214 +o Stock +v -0.500000 1.187500 -9.750000 +v -0.250000 1.437500 -9.750000 +v -0.250000 1.437500 -4.750000 +v -0.500000 1.187500 -4.750000 +v 0.500000 1.187500 -4.750000 +v 0.250000 1.437500 -4.750000 +v 0.250000 1.437500 -9.750000 +v 0.500000 1.187500 -9.750000 +v -0.250000 -1.062500 -9.750000 +v -0.500000 -0.812500 -9.750000 +v 0.500000 0.687500 -4.750000 +v -0.250000 0.437500 -4.750000 +v 0.250000 0.437500 -4.750000 +v -0.500000 0.687500 -4.750000 +v 0.500000 -0.812500 -9.750000 +v 0.250000 -1.062500 -9.750000 +v -0.500000 -0.802500 -8.250000 +v -0.250000 -1.062500 -8.250000 +v 0.250000 -1.062500 -8.250000 +v 0.500000 -0.812500 -8.250000 +v -0.500000 0.687500 -9.500000 +v -0.500000 -0.312500 -9.500000 +v 0.500000 0.687500 -9.500000 +v 0.500000 -0.312500 -9.500000 +vt 0.769231 0.018868 +vt 0.876923 0.056604 +vt 0.769231 0.056604 +vt 0.992308 0.301887 +vt 1.000000 0.245283 +vt 1.000000 0.283019 +vt 0.923077 0.000000 +vt 0.876923 0.018868 +vt 0.876923 0.000000 +vt 0.923077 0.283019 +vt 0.769231 0.301887 +vt 0.769231 0.283019 +vt 0.923077 0.226415 +vt 0.769231 0.245283 +vt 0.769231 0.226415 +vt 0.876923 0.075472 +vt 0.769231 0.075472 +vt 0.915385 0.113208 +vt 0.923077 0.075472 +vt 0.923077 0.056604 +vt 0.930769 0.301887 +vt 0.923077 0.245283 +vt 0.930769 0.226415 +vt 0.946154 0.301887 +vt 0.946154 0.226415 +vt 0.976923 0.226415 +vt 0.992308 0.226415 +vt 0.976923 0.301887 +vt 0.915385 0.339623 +vt 0.876923 0.452830 +vt 0.915385 0.188679 +vt 0.915385 0.415094 +vt 0.923077 0.452830 +vt 0.923077 0.018868 +vt 0.923077 0.301887 +vt 0.769231 0.000000 +vt 0.769231 0.339623 +vt 0.769231 0.188679 +vn -0.3936 -0.8453 0.3612 +vn 0.3627 -0.9141 0.1815 +vn 0.3929 -0.8452 0.3622 +vn 0.0000 0.3054 -0.9522 +vn 0.0000 0.0000 -1.0000 +vn -0.8941 -0.4478 0.0004 +vn -0.3703 -0.9109 0.1819 +vn -0.9078 -0.4085 0.0944 +vn -0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.8941 0.4478 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9032 -0.4186 0.0951 +vn 0.9487 -0.2905 0.1245 +vn 1.0000 0.0000 0.0000 +vn 0.8941 -0.4478 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.0000 -0.3054 -0.9522 +vn 0.0000 -0.2298 -0.9732 +vn 0.0000 0.2298 -0.9732 +vn -1.0000 0.0000 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.8941 0.4478 0.0000 +vn -0.9486 -0.2911 0.1239 +s 1 +f 420/515/222 427/516/223 421/517/224 +f 418/518/225 424/519/226 417/520/226 +f 418/521/227 426/522/228 425/523/229 +f 410/524/230 412/525/231 411/526/230 +f 416/527/232 414/528/233 413/529/234 +f 414/528/233 410/524/230 411/526/230 +f 421/517/224 428/530/235 419/531/236 +f 420/515/222 425/523/229 426/522/228 +f 432/532/237 428/530/235 423/533/238 +f 426/522/228 424/534/239 427/516/223 +f 409/535/240 415/536/226 416/537/240 +f 429/538/241 416/537/240 431/539/241 +f 418/518/225 432/540/242 423/541/225 +f 430/542/242 431/539/241 432/540/242 +f 428/530/235 424/534/239 423/533/238 +f 412/525/231 429/543/243 425/544/229 +f 413/529/234 428/530/235 431/545/237 +f 425/544/229 430/546/243 418/547/227 +f 420/515/222 426/522/228 427/516/223 +f 418/518/225 423/541/225 424/519/226 +f 418/521/227 417/548/244 426/522/228 +f 410/524/230 409/549/245 412/525/231 +f 416/527/232 415/536/233 414/528/233 +f 414/528/233 415/536/233 410/524/230 +f 421/517/224 427/516/223 428/530/235 +f 420/515/222 422/550/246 425/523/229 +f 426/522/228 417/548/244 424/534/239 +f 409/535/240 410/524/226 415/536/226 +f 429/538/241 409/535/240 416/537/240 +f 418/518/225 430/542/242 432/540/242 +f 430/542/242 429/538/241 431/539/241 +f 428/530/235 427/516/223 424/534/239 +f 422/551/246 412/525/231 425/544/229 +f 412/525/231 409/549/245 429/543/243 +f 429/543/243 430/546/243 425/544/229 +f 431/545/237 416/527/232 413/529/234 +f 413/529/234 419/552/236 428/530/235 +f 428/530/235 432/532/237 431/545/237 +o Barrel +v 0.000000 1.875000 4.000000 +v -0.250000 1.808013 4.000000 +v -0.433012 1.625000 4.000000 +v -0.500000 1.375000 4.000000 +v -0.433012 1.125000 4.000000 +v -0.250000 0.941987 4.000000 +v 0.000000 0.875000 4.000000 +v 0.250000 0.941987 4.000000 +v 0.433012 1.125000 4.000000 +v 0.500000 1.375000 4.000000 +v 0.433013 1.625000 4.000000 +v 0.250000 1.808012 4.000000 +v 0.000000 1.875000 11.500000 +v -0.250000 1.808013 11.500000 +v -0.433012 1.625000 11.500000 +v -0.500000 1.375000 11.500000 +v -0.433012 1.125000 11.500000 +v -0.250000 0.941987 11.500000 +v 0.000000 0.875000 11.500000 +v 0.250000 0.941987 11.500000 +v 0.433012 1.125000 11.500000 +v 0.500000 1.375000 11.500000 +v 0.433013 1.625000 11.500000 +v 0.250000 1.808012 11.500000 +v 0.000000 1.812500 12.000000 +v -0.218750 1.753886 12.000000 +v -0.378886 1.593750 12.000000 +v -0.437500 1.375000 12.000000 +v -0.378886 1.156250 12.000000 +v -0.218750 0.996114 12.000000 +v 0.000000 0.937500 12.000000 +v 0.218750 0.996114 12.000000 +v 0.378886 1.156250 12.000000 +v 0.437500 1.375000 12.000000 +v 0.378886 1.593750 12.000000 +v 0.218750 1.753886 12.000000 +v -0.218750 1.753892 4.500000 +v 0.000000 1.812506 4.500000 +v -0.378886 1.593756 4.500000 +v -0.437500 1.375006 4.500000 +v -0.378886 1.156256 4.500000 +v -0.218750 0.996120 4.500000 +v 0.000000 0.937506 4.500000 +v 0.218750 0.996120 4.500000 +v 0.378886 1.156256 4.500000 +v 0.437500 1.375006 4.500000 +v 0.378886 1.593756 4.500000 +v 0.218750 1.753892 4.500000 +vt 0.002103 0.018927 +vt 0.015385 0.000117 +vt 0.028667 0.018927 +vt 0.017308 0.226425 +vt 0.028962 0.242929 +vt 0.017308 0.292443 +vt 0.015385 0.075355 +vt 0.007716 0.070315 +vt 0.002103 0.056545 +vt 0.000048 0.037736 +vt 0.007716 0.005157 +vt 0.023053 0.005157 +vt 0.030721 0.037736 +vt 0.028667 0.056545 +vt 0.023053 0.070315 +vt 0.010579 0.288021 +vt 0.005653 0.275939 +vt 0.003850 0.259434 +vt 0.005653 0.242929 +vt 0.010579 0.230847 +vt 0.024036 0.230847 +vt 0.030765 0.259434 +vt 0.028962 0.275939 +vt 0.024036 0.288021 +vt 0.261538 0.169811 +vt 0.030769 0.150943 +vt 0.261538 0.150943 +vt 0.261538 0.075472 +vt 0.030769 0.056604 +vt 0.261538 0.056604 +vt 0.261538 0.018868 +vt 0.030769 -0.000000 +vt 0.261538 -0.000000 +vt 0.261538 0.188679 +vt 0.030769 0.169811 +vt 0.261538 0.094340 +vt 0.030769 0.075472 +vt 0.261538 0.132075 +vt 0.030769 0.113208 +vt 0.261538 0.113208 +vt 0.261538 0.037736 +vt 0.030769 0.018868 +vt 0.261538 0.207547 +vt 0.030769 0.188679 +vt 0.030769 0.094340 +vt 0.030769 0.132075 +vt 0.030769 0.037736 +vt 0.261538 0.226415 +vt 0.030769 0.207547 +vt 0.030769 0.415094 +vt 0.261538 0.433962 +vt 0.030769 0.433962 +vt 0.030769 0.320755 +vt 0.261538 0.339623 +vt 0.030769 0.339623 +vt 0.030769 0.358491 +vt 0.261538 0.377358 +vt 0.030769 0.377358 +vt 0.030769 0.264151 +vt 0.261538 0.283019 +vt 0.030769 0.283019 +vt 0.261538 0.452830 +vt 0.030769 0.452830 +vt 0.261538 0.396226 +vt 0.030769 0.396226 +vt 0.261538 0.301887 +vt 0.030769 0.301887 +vt 0.030769 0.226415 +vt 0.261538 0.245283 +vt 0.030769 0.245283 +vt 0.261538 0.415094 +vt 0.261538 0.320755 +vt 0.261538 0.358491 +vt 0.261538 0.264151 +vt 0.030769 0.226415 +vt 0.261538 0.226415 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +s off +f 449/553/247 451/554/247 453/555/247 +f 463/556/247 465/557/247 457/558/247 +f 445/559/247 446/560/247 447/561/247 +f 447/561/247 448/562/247 449/553/247 +f 449/553/247 450/563/247 451/554/247 +f 451/554/247 452/564/247 453/555/247 +f 453/555/247 454/565/247 455/566/247 +f 455/566/247 456/567/247 453/555/247 +f 456/567/247 445/559/247 453/555/247 +f 445/559/247 447/561/247 453/555/247 +f 447/561/247 449/553/247 453/555/247 +f 457/558/247 458/568/247 459/569/247 +f 459/569/247 460/570/247 457/558/247 +f 460/570/247 461/571/247 457/558/247 +f 461/571/247 462/572/247 463/556/247 +f 463/556/247 464/573/247 465/557/247 +f 465/557/247 466/574/247 457/558/247 +f 466/574/247 467/575/247 457/558/247 +f 467/575/247 468/576/247 457/558/247 +f 461/571/247 463/556/247 457/558/247 +s 1 +f 436/577/248 447/578/249 435/579/249 +f 443/580/250 454/581/251 442/582/251 +f 440/583/252 451/584/253 439/585/253 +f 437/586/254 448/587/248 436/577/248 +f 444/588/255 455/589/250 443/580/250 +f 434/590/256 445/591/257 433/592/257 +f 441/593/258 452/594/252 440/583/252 +f 438/595/259 449/596/254 437/586/254 +f 433/592/257 456/597/255 444/588/255 +f 435/579/249 446/598/256 434/590/256 +f 442/582/251 453/599/258 441/593/258 +f 439/600/253 450/601/259 438/595/259 +f 461/602/254 474/603/259 462/604/259 +f 468/605/255 470/606/257 457/607/257 +f 458/608/256 471/609/249 459/610/249 +f 465/611/258 478/612/251 466/613/251 +f 462/604/259 475/614/253 463/615/253 +f 459/610/249 472/616/248 460/617/248 +f 466/613/251 479/618/250 467/619/250 +f 463/620/253 476/621/252 464/622/252 +f 460/617/248 473/623/254 461/602/254 +f 467/619/250 480/624/255 468/605/255 +f 457/607/257 469/625/256 458/608/256 +f 464/622/252 477/626/258 465/611/258 +f 436/577/248 448/587/248 447/578/249 +f 443/580/250 455/589/250 454/581/251 +f 440/583/252 452/594/252 451/584/253 +f 437/586/254 449/596/254 448/587/248 +f 444/588/255 456/597/255 455/589/250 +f 434/590/256 446/598/256 445/591/257 +f 441/593/258 453/599/258 452/594/252 +f 438/595/259 450/601/259 449/596/254 +f 433/592/257 445/591/257 456/597/255 +f 435/579/249 447/578/249 446/598/256 +f 442/582/251 454/581/251 453/599/258 +f 439/600/253 451/627/253 450/601/259 +f 461/602/254 473/623/254 474/603/259 +f 468/605/255 480/624/255 470/606/257 +f 458/608/256 469/625/256 471/609/249 +f 465/611/258 477/626/258 478/612/251 +f 462/604/259 474/603/259 475/614/253 +f 459/610/249 471/609/249 472/616/248 +f 466/613/251 478/612/251 479/618/250 +f 463/620/253 475/628/253 476/621/252 +f 460/617/248 472/616/248 473/623/254 +f 467/619/250 479/618/250 480/624/255 +f 457/607/257 470/606/257 469/625/256 +f 464/622/252 476/621/252 477/626/258 +o Battery +v -0.562500 -1.000000 -1.500000 +v 0.562500 -1.000000 -1.500000 +v -0.562500 -1.000000 2.000000 +v 0.562500 -1.000000 2.000000 +v 0.437500 -0.750000 -1.375000 +v -0.437500 -0.750000 -1.375000 +v -0.437500 -0.750000 1.875000 +v 0.437500 -0.750000 1.875000 +v 0.562500 -0.750000 -1.500000 +v -0.562500 -0.750000 -1.500000 +v -0.562500 -0.750000 2.000000 +v 0.562500 -0.750000 2.000000 +v 0.437500 0.750000 -1.375000 +v -0.437500 0.750000 -1.375000 +v -0.437500 0.750000 1.875000 +v 0.437500 0.750000 1.875000 +v 0.062500 0.750000 -1.000000 +v 0.312500 0.750000 -1.000000 +v 0.062500 0.750000 -1.250000 +v 0.312500 0.750000 -1.250000 +v -0.312500 0.750000 -1.000000 +v -0.062500 0.750000 -1.000000 +v -0.312500 0.750000 -1.250000 +v -0.062500 0.750000 -1.250000 +v 0.062500 0.875000 -1.250000 +v 0.062500 0.875000 -1.000000 +v 0.312500 0.875000 -1.000000 +v 0.312500 0.875000 -1.250000 +v -0.312500 0.875000 -1.250000 +v -0.312500 0.875000 -1.000000 +v -0.062500 0.875000 -1.000000 +v -0.062500 0.875000 -1.250000 +vt 0.115385 0.556604 +vt 0.007692 0.471698 +vt 0.115385 0.471698 +vt 0.376923 0.452830 +vt 0.276923 0.566038 +vt 0.276923 0.452830 +vt 0.007692 0.575472 +vt 0.007692 0.556604 +vt 0.123077 0.556604 +vt 0.115385 0.452830 +vt -0.000000 0.471698 +vt 0.111538 0.584906 +vt 0.115385 0.660377 +vt 0.111538 0.650943 +vt 0.011538 0.650943 +vt 0.011538 0.584906 +vt 0.115385 0.575472 +vt 0.007692 0.660377 +vt 0.150000 0.632075 +vt 0.250000 0.566038 +vt 0.250000 0.632075 +vt 0.150000 0.452830 +vt 0.123077 0.566038 +vt 0.123077 0.452830 +vt 0.250000 0.452830 +vt 0.150000 0.566038 +vt 0.138462 0.575472 +vt 0.146154 0.594340 +vt 0.138462 0.594340 +vt 0.123077 0.575472 +vt 0.130769 0.594340 +vt 0.123077 0.594340 +vt 0.146154 0.566038 +vt 0.138462 0.566038 +vt 0.138462 0.603774 +vt 0.146154 0.603774 +vt 0.134615 0.594340 +vt 0.130769 0.575472 +vt 0.134615 0.575472 +vt 0.119231 0.575472 +vt 0.119231 0.594340 +vt 0.150000 0.594340 +vt 0.146154 0.575472 +vt 0.150000 0.575472 +vt 0.134615 0.575472 +vt 0.134615 0.594340 +vt 0.130769 0.566038 +vt 0.123077 0.566038 +vt 0.123077 0.603774 +vt 0.130769 0.603774 +vt 0.376923 0.566038 +vt 0.123077 0.471698 +vt 0.007692 0.452830 +vt -0.000000 0.556604 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +s off +f 482/629/260 483/630/260 481/631/260 +f 487/632/261 494/633/261 486/634/261 +f 482/629/262 492/635/262 484/636/262 +f 481/631/263 489/637/263 482/629/263 +f 483/630/261 490/638/261 481/631/261 +f 484/636/264 491/639/264 483/630/264 +f 485/640/265 490/641/265 486/642/265 +f 487/643/265 492/635/265 488/644/265 +f 488/644/265 489/645/265 485/640/265 +f 486/642/265 491/646/265 487/643/265 +f 495/647/265 493/648/265 494/649/265 +f 488/650/264 495/651/264 487/652/264 +f 485/653/262 496/654/262 488/650/262 +f 486/634/263 493/648/263 485/653/263 +f 507/655/265 505/656/265 506/657/265 +f 511/658/265 509/659/265 510/660/265 +f 500/661/262 507/655/262 498/662/262 +f 497/663/261 505/656/261 499/664/261 +f 503/665/263 512/666/263 504/667/263 +f 502/668/264 510/660/264 501/669/264 +f 499/670/263 508/671/263 500/672/263 +f 498/673/264 506/657/264 497/674/264 +f 504/675/262 511/658/262 502/676/262 +f 501/677/261 509/659/261 503/678/261 +f 482/629/260 484/636/260 483/630/260 +f 487/632/261 495/679/261 494/633/261 +f 482/629/262 489/645/262 492/635/262 +f 481/631/263 490/680/263 489/637/263 +f 483/630/261 491/681/261 490/638/261 +f 484/636/264 492/682/264 491/639/264 +f 485/640/265 489/645/265 490/641/265 +f 487/643/265 491/646/265 492/635/265 +f 488/644/265 492/635/265 489/645/265 +f 486/642/265 490/641/265 491/646/265 +f 495/647/265 496/654/265 493/648/265 +f 488/650/264 496/654/264 495/651/264 +f 485/653/262 493/648/262 496/654/262 +f 486/634/263 494/633/263 493/648/263 +f 507/655/265 508/671/265 505/656/265 +f 511/658/265 512/666/265 509/659/265 +f 500/661/262 508/671/262 507/655/262 +f 497/663/261 506/657/261 505/656/261 +f 503/665/263 509/659/263 512/666/263 +f 502/668/264 511/658/264 510/660/264 +f 499/670/263 505/656/263 508/671/263 +f 498/673/264 507/655/264 506/657/264 +f 504/675/262 512/666/262 511/658/262 +f 501/677/261 510/660/261 509/659/261 +o Lever +v 0.562500 -0.375000 2.000000 +v 0.562500 -0.109835 2.109835 +v 0.562500 0.000000 2.375000 +v 0.562500 -0.109835 2.640165 +v 0.562500 -0.375000 2.750000 +v 0.562500 -0.640165 2.640165 +v 0.562500 -0.750000 2.375000 +v 0.562500 -0.640165 2.109835 +v 1.062500 -0.375000 2.000000 +v 1.062500 -0.109835 2.109835 +v 1.062500 0.000000 2.375000 +v 1.062500 -0.109835 2.640165 +v 1.062500 -0.375000 2.750000 +v 1.062500 -0.640165 2.640165 +v 1.062500 -0.750000 2.375000 +v 1.062500 -0.640165 2.109835 +v 0.812500 -0.625000 2.250000 +v 0.724112 -0.625000 2.286612 +v 0.687500 -0.625000 2.375000 +v 0.724112 -0.625000 2.463388 +v 0.812500 -0.625000 2.500000 +v 0.900888 -0.625000 2.463388 +v 0.937500 -0.625000 2.375000 +v 0.900888 -0.625000 2.286612 +v 0.812500 -1.125000 2.250000 +v 0.724112 -1.125000 2.286612 +v 0.687500 -1.125000 2.375000 +v 0.724112 -1.125000 2.463388 +v 0.812500 -1.125000 2.500000 +v 0.900888 -1.125000 2.463388 +v 0.937500 -1.125000 2.375000 +v 0.900888 -1.125000 2.286612 +v 0.724112 -1.150888 2.275888 +v 0.687500 -1.213388 2.338388 +v 0.724112 -1.275888 2.400888 +v 0.812500 -1.301777 2.426777 +v 0.900888 -1.275888 2.400888 +v 0.937500 -1.213388 2.338388 +v 0.900888 -1.150888 2.275888 +v 0.724112 -1.161612 2.250000 +v 0.687500 -1.250000 2.250000 +v 0.724112 -1.338388 2.250000 +v 0.812500 -1.375000 2.250000 +v 0.900888 -1.338388 2.250000 +v 0.937500 -1.250000 2.250000 +v 0.900888 -1.161612 2.250000 +v 0.812500 -1.125000 -0.750000 +v 0.724112 -1.161612 -0.750000 +v 0.687500 -1.250000 -0.750000 +v 0.724112 -1.338388 -0.750000 +v 0.812500 -1.375000 -0.750000 +v 0.900888 -1.338388 -0.750000 +v 0.937500 -1.250000 -0.750000 +v 0.900888 -1.161612 -0.750000 +v -0.812500 -0.625000 2.250000 +v -0.900888 -0.625000 2.286612 +v -0.937500 -0.625000 2.375000 +v -0.900888 -0.625000 2.463388 +v -0.812500 -0.625000 2.500000 +v -0.724112 -0.625000 2.463388 +v -0.687500 -0.625000 2.375000 +v -0.724112 -0.625000 2.286612 +v -0.812500 -1.125000 2.250000 +v -0.900888 -1.125000 2.286612 +v -0.937500 -1.125000 2.375000 +v -0.900888 -1.125000 2.463388 +v -0.812500 -1.125000 2.500000 +v -0.724112 -1.125000 2.463388 +v -0.687500 -1.125000 2.375000 +v -0.724112 -1.125000 2.286612 +v -0.900888 -1.150888 2.275888 +v -0.937500 -1.213388 2.338388 +v -0.900888 -1.275888 2.400888 +v -0.812500 -1.301777 2.426777 +v -0.724112 -1.275888 2.400888 +v -0.687500 -1.213388 2.338388 +v -0.724112 -1.150888 2.275888 +v -0.900888 -1.161612 2.250000 +v -0.937500 -1.250000 2.250000 +v -0.900888 -1.338388 2.250000 +v -0.812500 -1.375000 2.250000 +v -0.724112 -1.338388 2.250000 +v -0.687500 -1.250000 2.250000 +v -0.724112 -1.161612 2.250000 +v -0.812500 -1.125000 -0.750000 +v -0.900888 -1.161612 -0.750000 +v -0.937500 -1.250000 -0.750000 +v -0.900888 -1.338388 -0.750000 +v -0.812500 -1.375000 -0.750000 +v -0.724112 -1.338388 -0.750000 +v -0.687500 -1.250000 -0.750000 +v -0.724112 -1.161612 -0.750000 +v 0.775888 -1.125000 -0.838388 +v 0.713388 -1.161612 -0.775888 +v 0.713388 -1.338388 -0.775888 +v 0.775888 -1.375000 -0.838388 +v 0.838388 -1.338388 -0.900888 +v 0.864277 -1.250000 -0.926777 +v 0.838388 -1.161612 -0.900888 +v 0.687500 -1.125000 -0.875000 +v 0.687500 -1.161612 -0.786612 +v 0.687500 -1.338388 -0.786612 +v 0.687500 -1.375000 -0.875000 +v 0.687500 -1.338388 -0.963388 +v 0.687500 -1.250000 -1.000000 +v 0.687500 -1.161612 -0.963388 +v -0.775888 -1.125000 -0.838388 +v -0.838388 -1.161612 -0.900888 +v -0.864277 -1.250000 -0.926777 +v -0.838388 -1.338388 -0.900888 +v -0.775888 -1.375000 -0.838388 +v -0.713388 -1.338388 -0.775888 +v -0.713388 -1.161612 -0.775888 +v -0.687500 -1.125000 -0.875000 +v -0.687500 -1.161612 -0.963388 +v -0.687500 -1.250000 -1.000000 +v -0.687500 -1.338388 -0.963388 +v -0.687500 -1.375000 -0.875000 +v -0.687500 -1.338388 -0.786612 +v -0.687500 -1.161612 -0.786612 +v -0.562500 -0.375000 2.000000 +v -0.562500 -0.109835 2.109835 +v -0.562500 0.000000 2.375000 +v -0.562500 -0.109835 2.640165 +v -0.562500 -0.375000 2.750000 +v -0.562500 -0.640165 2.640165 +v -0.562500 -0.750000 2.375000 +v -0.562500 -0.640165 2.109835 +v -1.062500 -0.375000 2.000000 +v -1.062500 -0.109835 2.109835 +v -1.062500 0.000000 2.375000 +v -1.062500 -0.109835 2.640165 +v -1.062500 -0.375000 2.750000 +v -1.062500 -0.640165 2.640165 +v -1.062500 -0.750000 2.375000 +v -1.062500 -0.640165 2.109835 +vt 0.392282 0.481132 +vt 0.403846 0.452768 +vt 0.415410 0.481132 +vt 0.403846 0.452768 +vt 0.392282 0.481132 +vt 0.403846 0.509497 +vt 0.412023 0.501189 +vt 0.403846 0.509497 +vt 0.395669 0.501189 +vt 0.395669 0.461075 +vt 0.412023 0.461075 +vt 0.412023 0.501189 +vt 0.415410 0.481132 +vt 0.412023 0.461075 +vt 0.395669 0.461075 +vt 0.395669 0.501189 +vt 0.376923 0.509434 +vt 0.392308 0.528302 +vt 0.376923 0.528302 +vt 0.376923 0.547170 +vt 0.392308 0.566038 +vt 0.376923 0.566038 +vt 0.392308 0.584906 +vt 0.376923 0.584906 +vt 0.376923 0.452830 +vt 0.392308 0.471698 +vt 0.376923 0.471698 +vt 0.376923 0.490566 +vt 0.392308 0.509434 +vt 0.392308 0.547170 +vt 0.392308 0.603774 +vt 0.376923 0.603774 +vt 0.392308 0.490566 +vt 0.303846 0.688679 +vt 0.319231 0.679245 +vt 0.319231 0.688679 +vt 0.303846 0.707547 +vt 0.319231 0.698113 +vt 0.319231 0.707547 +vt 0.303846 0.726415 +vt 0.319231 0.716981 +vt 0.319231 0.726415 +vt 0.303846 0.669811 +vt 0.319231 0.660377 +vt 0.319231 0.669811 +vt 0.303846 0.698113 +vt 0.303846 0.716981 +vt 0.303846 0.735849 +vt 0.319231 0.735849 +vt 0.303846 0.679245 +vt 0.300000 0.660377 +vt 0.296154 0.669811 +vt 0.296154 0.660377 +vt 0.300000 0.688679 +vt 0.296154 0.698113 +vt 0.296154 0.688679 +vt 0.296154 0.707547 +vt 0.296154 0.735849 +vt 0.296154 0.726415 +vt 0.300000 0.698113 +vt 0.296154 0.716981 +vt 0.292308 0.698113 +vt 0.292308 0.688679 +vt 0.288462 0.707547 +vt 0.292308 0.735849 +vt 0.288462 0.726415 +vt 0.288462 0.716981 +vt 0.292308 0.669811 +vt 0.292308 0.660377 +vt 0.296154 0.679245 +vt 0.300000 0.669811 +vt 0.288462 0.688679 +vt 0.196154 0.679245 +vt 0.288462 0.679245 +vt 0.288462 0.698113 +vt 0.196154 0.688679 +vt 0.196154 0.669811 +vt 0.288462 0.669811 +vt 0.196154 0.707547 +vt 0.288462 0.735849 +vt 0.196154 0.726415 +vt 0.196154 0.698113 +vt 0.196154 0.716981 +vt 0.196154 0.660377 +vt 0.288462 0.660377 +vt 0.015385 0.669811 +vt -0.000000 0.679245 +vt 0.000000 0.669811 +vt 0.015385 0.726415 +vt 0.000000 0.735849 +vt -0.000000 0.726415 +vt 0.015385 0.707547 +vt 0.000000 0.716981 +vt -0.000000 0.707547 +vt 0.015385 0.688679 +vt -0.000000 0.698113 +vt -0.000000 0.688679 +vt 0.015385 0.660377 +vt 0.000000 0.660377 +vt 0.015385 0.716981 +vt 0.015385 0.698113 +vt 0.015385 0.679245 +vt 0.019231 0.698113 +vt 0.023077 0.688679 +vt 0.023077 0.698113 +vt 0.019231 0.669811 +vt 0.023077 0.660377 +vt 0.023077 0.669811 +vt 0.023077 0.716981 +vt 0.023077 0.726415 +vt 0.023077 0.707547 +vt 0.023077 0.735849 +vt 0.019231 0.735849 +vt 0.026923 0.660377 +vt 0.026923 0.669811 +vt 0.030769 0.716981 +vt 0.030769 0.726415 +vt 0.026923 0.698113 +vt 0.030769 0.707547 +vt 0.026923 0.735849 +vt 0.026923 0.688679 +vt 0.023077 0.679245 +vt 0.019231 0.688679 +vt 0.030769 0.669811 +vt 0.123077 0.679245 +vt 0.030769 0.679245 +vt 0.030769 0.660377 +vt 0.123077 0.669811 +vt 0.123077 0.688679 +vt 0.030769 0.688679 +vt 0.123077 0.726415 +vt 0.030769 0.698113 +vt 0.123077 0.707547 +vt 0.123077 0.735849 +vt 0.030769 0.735849 +vt 0.123077 0.716981 +vt 0.123077 0.698113 +vt 0.192308 0.679245 +vt 0.188462 0.669811 +vt 0.192308 0.669811 +vt 0.188462 0.707547 +vt 0.188462 0.698113 +vt 0.192308 0.716981 +vt 0.188462 0.726415 +vt 0.188462 0.716981 +vt 0.188462 0.679245 +vt 0.188462 0.688679 +vt 0.180769 0.707547 +vt 0.184615 0.679245 +vt 0.184615 0.669811 +vt 0.180769 0.698113 +vt 0.184615 0.716981 +vt 0.180769 0.688679 +vt 0.188462 0.660377 +vt 0.188462 0.735849 +vt 0.192308 0.726415 +vt 0.184615 0.726415 +vt 0.130769 0.679245 +vt 0.130769 0.688679 +vt 0.126923 0.716981 +vt 0.130769 0.707547 +vt 0.130769 0.716981 +vt 0.130769 0.698113 +vt 0.126923 0.679245 +vt 0.130769 0.669811 +vt 0.130769 0.726415 +vt 0.126923 0.726415 +vt 0.138462 0.688679 +vt 0.138462 0.707547 +vt 0.134615 0.716981 +vt 0.138462 0.698113 +vt 0.134615 0.679245 +vt 0.134615 0.726415 +vt 0.130769 0.660377 +vt 0.126923 0.669811 +vt 0.134615 0.669811 +vt 0.130769 0.735849 +vt 0.138462 0.679245 +vt 0.180769 0.669811 +vt 0.180769 0.679245 +vt 0.138462 0.660377 +vt 0.180769 0.660377 +vt 0.138462 0.735849 +vt 0.180769 0.726415 +vt 0.180769 0.735849 +vt 0.138462 0.716981 +vt 0.180769 0.716981 +vt 0.392308 0.528302 +vt 0.376923 0.509434 +vt 0.376923 0.528302 +vt 0.392308 0.566038 +vt 0.376923 0.547170 +vt 0.376923 0.566038 +vt 0.392308 0.584906 +vt 0.376923 0.584906 +vt 0.392308 0.471698 +vt 0.376923 0.452830 +vt 0.376923 0.471698 +vt 0.392308 0.509434 +vt 0.376923 0.490566 +vt 0.392308 0.547170 +vt 0.392308 0.603774 +vt 0.376923 0.603774 +vt 0.392308 0.490566 +vt 0.392308 0.452830 +vt 0.303846 0.660377 +vt 0.300000 0.735849 +vt 0.196154 0.735849 +vt 0.015385 0.735849 +vt 0.019231 0.660377 +vt 0.123077 0.660377 +vt 0.138462 0.669811 +vt 0.138462 0.726415 +vt 0.392308 0.452830 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.7263 0.1363 -0.6737 +vn 0.7071 0.0000 -0.7071 +vn 0.6794 -0.1448 0.7194 +vn 0.7071 0.0000 0.7071 +vn -0.6794 -0.1448 0.7194 +vn -0.7071 0.0000 0.7071 +vn -0.7263 0.1363 -0.6737 +vn -0.7071 0.0000 -0.7071 +vn 0.9987 -0.0196 0.0473 +vn -0.0000 -0.1866 0.9824 +vn -0.9987 -0.0196 0.0473 +vn -0.7574 0.4617 -0.4617 +vn -0.9955 -0.0671 0.0671 +vn 0.9955 -0.0671 0.0671 +vn 0.7574 0.4617 -0.4617 +vn 0.6630 -0.5294 0.5294 +vn -0.6630 -0.5294 0.5294 +vn 0.9987 -0.0473 0.0196 +vn 0.7263 0.6737 -0.1363 +vn 0.6794 -0.7194 0.1448 +vn -0.9987 -0.0473 0.0196 +vn -0.6794 -0.7194 0.1448 +vn -0.0000 -0.9824 0.1866 +vn -0.7263 0.6737 -0.1363 +vn 0.0473 0.9987 -0.0196 +vn 0.7194 0.6794 -0.1448 +vn -0.6737 0.7263 0.1363 +vn 0.7194 -0.6794 -0.1448 +vn -0.6737 -0.7263 0.1363 +vn 0.9824 -0.0000 -0.1866 +vn 0.0473 -0.9987 -0.0196 +vn -0.0473 0.9987 -0.0196 +vn 0.6737 0.7263 0.1363 +vn -0.7194 0.6794 -0.1448 +vn 0.6737 -0.7263 0.1363 +vn -0.7194 -0.6794 -0.1448 +vn -0.0473 -0.9987 -0.0196 +vn -0.9824 0.0000 -0.1866 +vn -0.4617 0.7574 0.4617 +vn 0.5294 -0.6630 -0.5294 +vn -0.4617 -0.7574 0.4617 +vn 0.0671 -0.9955 -0.0671 +vn 0.0671 0.9955 -0.0671 +vn 0.5294 0.6630 -0.5294 +vn 0.1448 -0.6794 -0.7194 +vn 0.0196 0.9987 -0.0473 +vn -0.1363 0.7263 0.6737 +vn 0.1866 -0.0000 -0.9824 +vn 0.0196 -0.9987 -0.0473 +vn 0.1448 0.6794 -0.7194 +vn -0.1363 -0.7263 0.6737 +vn -0.0671 0.9955 -0.0671 +vn -0.5294 0.6630 -0.5294 +vn -0.5294 -0.6630 -0.5294 +vn -0.0671 -0.9955 -0.0671 +vn 0.4617 0.7574 0.4617 +vn 0.4617 -0.7574 0.4617 +vn -0.1448 0.6794 -0.7194 +vn -0.1448 -0.6794 -0.7194 +vn -0.0196 -0.9987 -0.0473 +vn -0.1866 0.0000 -0.9824 +vn -0.0196 0.9987 -0.0473 +vn 0.1363 -0.7263 0.6737 +vn 0.1363 0.7263 0.6737 +s off +f 525/683/266 527/684/266 521/685/266 +f 647/686/267 645/687/267 643/688/267 +f 521/685/266 522/689/266 523/690/266 +f 523/690/266 524/691/266 525/683/266 +f 525/683/266 526/692/266 527/684/266 +f 527/684/266 528/693/266 521/685/266 +f 521/685/266 523/690/266 525/683/266 +f 643/688/267 642/694/267 641/695/267 +f 641/695/267 648/696/267 647/686/267 +f 647/686/267 646/697/267 645/687/267 +f 645/687/267 644/698/267 643/688/267 +f 643/688/267 641/695/267 647/686/267 +s 1 +f 516/699/268 523/700/269 515/701/269 +f 514/702/270 521/703/271 513/704/271 +f 513/704/271 528/705/272 520/706/272 +f 519/707/273 526/708/274 518/709/274 +f 517/710/275 524/711/268 516/699/268 +f 515/701/269 522/712/270 514/702/270 +f 520/706/272 527/713/273 519/714/273 +f 518/709/274 525/715/275 517/710/275 +f 544/716/276 529/717/271 536/718/277 +f 542/719/278 535/720/266 534/721/279 +f 540/722/280 533/723/275 532/724/281 +f 538/725/282 531/726/267 530/727/283 +f 543/728/284 536/718/277 535/720/266 +f 541/729/285 534/721/279 533/723/275 +f 539/730/286 532/724/281 531/731/267 +f 537/732/270 530/727/283 529/717/271 +f 539/733/286 545/734/287 546/735/288 +f 544/736/276 550/737/289 551/738/290 +f 541/729/285 549/739/291 542/719/278 +f 540/722/280 546/740/288 547/741/292 +f 542/719/278 550/737/289 543/742/284 +f 540/722/280 548/743/274 541/729/285 +f 551/738/290 557/744/293 558/745/294 +f 548/743/274 556/746/295 549/739/291 +f 547/741/292 553/747/296 554/748/297 +f 549/739/291 557/744/293 550/737/289 +f 547/741/292 555/749/298 548/743/274 +f 546/735/288 552/750/299 553/751/296 +f 537/752/270 545/734/287 538/753/282 +f 545/734/287 537/752/270 552/750/299 +f 544/736/276 551/738/290 537/752/270 +f 551/738/290 558/745/294 537/752/270 +f 558/754/294 559/755/300 537/756/270 +f 557/757/293 566/758/301 558/754/294 +f 537/756/270 560/759/302 552/760/299 +f 555/749/298 564/761/303 556/746/295 +f 553/762/296 562/763/304 554/748/297 +f 556/746/295 565/764/305 557/757/293 +f 554/748/297 563/765/306 555/749/298 +f 552/760/299 561/766/281 553/767/296 +f 582/768/276 567/769/271 574/770/277 +f 580/771/278 573/772/266 572/773/279 +f 578/774/280 571/775/275 570/776/281 +f 576/777/282 569/778/267 568/779/283 +f 581/780/284 574/770/277 573/781/266 +f 579/782/285 572/773/279 571/775/275 +f 577/783/286 570/776/281 569/778/267 +f 575/784/270 568/779/283 567/769/271 +f 577/785/286 583/786/287 584/787/288 +f 582/788/276 588/789/289 589/790/290 +f 580/771/278 586/791/274 587/792/291 +f 578/774/280 584/787/288 585/793/292 +f 580/771/278 588/794/289 581/795/284 +f 578/774/280 586/791/274 579/782/285 +f 589/790/290 595/796/293 596/797/294 +f 587/792/291 593/798/298 594/799/295 +f 585/793/292 591/800/296 592/801/297 +f 587/792/291 595/802/293 588/794/289 +f 585/793/292 593/798/298 586/791/274 +f 584/787/288 590/803/299 591/800/296 +f 575/804/270 583/786/287 576/805/282 +f 583/786/287 575/804/270 590/803/299 +f 582/788/276 589/790/290 575/804/270 +f 589/790/290 596/797/294 575/804/270 +f 596/806/294 597/807/307 575/808/270 +f 595/809/293 604/810/308 596/806/294 +f 575/808/270 598/811/309 590/812/299 +f 593/798/298 602/813/310 594/799/295 +f 591/814/296 600/815/311 592/801/297 +f 594/799/295 603/816/279 595/817/293 +f 592/801/297 601/818/312 593/798/298 +f 590/812/299 599/819/313 591/814/296 +f 559/820/300 606/821/314 560/822/302 +f 565/764/305 609/823/315 610/824/277 +f 563/825/306 607/826/316 608/827/317 +f 566/758/301 605/828/318 559/820/300 +f 566/758/301 610/824/277 611/829/319 +f 564/761/303 608/827/317 609/823/315 +f 608/827/317 616/830/320 609/823/315 +f 606/821/314 612/831/321 613/832/322 +f 609/823/315 617/833/323 610/824/277 +f 607/826/316 615/834/324 608/827/317 +f 605/828/318 618/835/325 612/831/321 +f 610/824/277 618/835/325 611/829/319 +f 560/822/302 606/821/314 561/836/281 +f 606/821/314 613/832/322 561/836/281 +f 561/837/281 607/826/316 562/838/304 +f 607/826/316 561/837/281 614/839/326 +f 598/811/309 619/840/327 620/841/328 +f 601/842/312 622/843/329 623/844/330 +f 599/819/313 620/841/328 621/845/283 +f 597/846/307 625/847/331 619/840/327 +f 601/842/312 624/848/332 602/849/310 +f 599/819/313 622/843/329 600/815/311 +f 619/840/327 627/850/333 620/841/328 +f 623/844/330 629/851/334 630/852/335 +f 620/841/328 628/853/336 621/845/283 +f 625/847/331 626/854/337 619/840/327 +f 624/848/332 630/852/335 631/855/338 +f 622/843/329 628/853/336 629/851/334 +f 603/856/279 625/847/331 604/857/308 +f 625/847/331 603/856/279 632/858/339 +f 602/849/310 624/848/332 603/859/279 +f 624/848/332 631/855/338 603/859/279 +f 626/860/337 613/861/322 612/862/321 +f 613/861/322 603/863/279 561/864/281 +f 603/865/279 614/866/326 561/867/281 +f 614/866/326 630/868/335 615/869/324 +f 615/869/324 629/851/334 616/830/320 +f 616/830/320 628/853/336 617/833/323 +f 617/833/323 627/850/333 618/835/325 +f 618/835/325 626/860/337 612/862/321 +f 643/870/269 636/871/268 635/872/269 +f 641/873/271 634/874/270 633/875/271 +f 648/876/272 633/875/271 640/877/272 +f 646/878/274 639/879/273 638/880/274 +f 644/881/268 637/882/275 636/871/268 +f 642/883/270 635/872/269 634/874/270 +f 647/884/273 640/877/272 639/885/273 +f 645/886/275 638/880/274 637/882/275 +f 516/699/268 524/711/268 523/700/269 +f 514/702/270 522/712/270 521/703/271 +f 513/704/271 521/703/271 528/705/272 +f 519/707/273 527/887/273 526/708/274 +f 517/710/275 525/715/275 524/711/268 +f 515/701/269 523/700/269 522/712/270 +f 520/706/272 528/705/272 527/713/273 +f 518/709/274 526/708/274 525/715/275 +f 544/716/276 537/732/270 529/717/271 +f 542/719/278 543/728/284 535/720/266 +f 540/722/280 541/729/285 533/723/275 +f 538/725/282 539/888/286 531/726/267 +f 543/728/284 544/716/276 536/718/277 +f 541/729/285 542/719/278 534/721/279 +f 539/730/286 540/722/280 532/724/281 +f 537/732/270 538/725/282 530/727/283 +f 539/733/286 538/753/282 545/734/287 +f 544/736/276 543/742/284 550/737/289 +f 541/729/285 548/743/274 549/739/291 +f 540/722/280 539/889/286 546/740/288 +f 542/719/278 549/739/291 550/737/289 +f 540/722/280 547/741/292 548/743/274 +f 551/738/290 550/737/289 557/744/293 +f 548/743/274 555/749/298 556/746/295 +f 547/741/292 546/740/288 553/747/296 +f 549/739/291 556/746/295 557/744/293 +f 547/741/292 554/748/297 555/749/298 +f 546/735/288 545/734/287 552/750/299 +f 558/754/294 566/758/301 559/755/300 +f 557/757/293 565/764/305 566/758/301 +f 537/756/270 559/755/300 560/759/302 +f 555/749/298 563/765/306 564/761/303 +f 553/762/296 561/890/281 562/763/304 +f 556/746/295 564/761/303 565/764/305 +f 554/748/297 562/763/304 563/765/306 +f 552/760/299 560/759/302 561/766/281 +f 582/768/276 575/784/270 567/769/271 +f 580/771/278 581/891/284 573/772/266 +f 578/774/280 579/782/285 571/775/275 +f 576/777/282 577/783/286 569/778/267 +f 581/780/284 582/768/276 574/770/277 +f 579/782/285 580/771/278 572/773/279 +f 577/783/286 578/774/280 570/776/281 +f 575/784/270 576/777/282 568/779/283 +f 577/785/286 576/805/282 583/786/287 +f 582/788/276 581/892/284 588/789/289 +f 580/771/278 579/782/285 586/791/274 +f 578/774/280 577/785/286 584/787/288 +f 580/771/278 587/792/291 588/794/289 +f 578/774/280 585/793/292 586/791/274 +f 589/790/290 588/789/289 595/796/293 +f 587/792/291 586/791/274 593/798/298 +f 585/793/292 584/787/288 591/800/296 +f 587/792/291 594/799/295 595/802/293 +f 585/793/292 592/801/297 593/798/298 +f 584/787/288 583/786/287 590/803/299 +f 596/806/294 604/810/308 597/807/307 +f 595/809/293 603/893/279 604/810/308 +f 575/808/270 597/807/307 598/811/309 +f 593/798/298 601/818/312 602/813/310 +f 591/814/296 599/819/313 600/815/311 +f 594/799/295 602/813/310 603/816/279 +f 592/801/297 600/815/311 601/818/312 +f 590/812/299 598/811/309 599/819/313 +f 559/820/300 605/828/318 606/821/314 +f 565/764/305 564/761/303 609/823/315 +f 563/825/306 562/838/304 607/826/316 +f 566/758/301 611/829/319 605/828/318 +f 566/758/301 565/764/305 610/824/277 +f 564/761/303 563/825/306 608/827/317 +f 608/827/317 615/834/324 616/830/320 +f 606/821/314 605/828/318 612/831/321 +f 609/823/315 616/830/320 617/833/323 +f 607/826/316 614/839/326 615/834/324 +f 605/828/318 611/829/319 618/835/325 +f 610/824/277 617/833/323 618/835/325 +f 598/811/309 597/846/307 619/840/327 +f 601/842/312 600/815/311 622/843/329 +f 599/819/313 598/811/309 620/841/328 +f 597/846/307 604/857/308 625/847/331 +f 601/842/312 623/844/330 624/848/332 +f 599/819/313 621/845/283 622/843/329 +f 619/840/327 626/854/337 627/850/333 +f 623/844/330 622/843/329 629/851/334 +f 620/841/328 627/850/333 628/853/336 +f 625/847/331 632/858/339 626/854/337 +f 624/848/332 623/844/330 630/852/335 +f 622/843/329 621/845/283 628/853/336 +f 626/860/337 632/894/339 613/861/322 +f 613/861/322 632/894/339 603/863/279 +f 603/865/279 631/895/338 614/866/326 +f 614/866/326 631/895/338 630/868/335 +f 615/869/324 630/868/335 629/851/334 +f 616/830/320 629/851/334 628/853/336 +f 617/833/323 628/853/336 627/850/333 +f 618/835/325 627/850/333 626/860/337 +f 643/870/269 644/881/268 636/871/268 +f 641/873/271 642/883/270 634/874/270 +f 648/876/272 641/873/271 633/875/271 +f 646/878/274 647/896/273 639/879/273 +f 644/881/268 645/886/275 637/882/275 +f 642/883/270 643/870/269 635/872/269 +f 647/884/273 648/876/272 640/877/272 +f 645/886/275 646/878/274 638/880/274 +o Gun +v -0.562500 -1.000000 3.000000 +v 0.562500 -1.000000 3.000000 +v -0.562500 -1.000000 -2.000000 +v 0.562500 -1.000000 -2.000000 +v -0.562500 2.000000 -2.000000 +v -0.562500 2.000000 2.000000 +v 0.562500 2.000000 2.000000 +v 0.562500 2.000000 -2.000000 +v 0.562500 0.750000 3.000000 +v -0.562500 0.750000 3.000000 +v -0.500000 0.187500 -2.000000 +v 0.500000 0.187500 -2.000000 +v -0.500000 1.937500 -2.000000 +v 0.500000 1.937500 -2.000000 +v -0.500000 1.937500 -4.000000 +v -0.250000 -0.062500 -2.500000 +v -0.250000 -0.062500 -2.000000 +v 0.500000 1.937500 -4.000000 +v -0.500000 1.437500 -4.750000 +v 0.500000 1.437500 -4.750000 +v -0.250000 -0.812500 -2.500000 +v 0.250000 -0.812500 -2.500000 +v 0.250000 -0.812500 -2.000000 +v -0.250000 -0.812500 -2.000000 +v 0.250000 -0.062500 -2.500000 +v 0.250000 -0.062500 -2.000000 +v -0.500000 0.437500 -4.750000 +v -0.500000 0.187500 -4.500000 +v 0.500000 0.187500 -4.500000 +v 0.500000 0.437500 -4.750000 +v 0.125000 0.187500 -3.500000 +v -0.125000 0.187500 -3.500000 +v 0.125000 -0.437500 -3.500000 +v -0.125000 -0.437500 -3.500000 +v 0.125000 -1.937500 -4.250000 +v -0.125000 -1.937500 -4.250000 +v 0.125000 -1.937500 -5.250000 +v -0.137500 -1.937500 -5.250000 +v 0.125000 -1.562500 -5.250000 +v -0.137500 -1.562500 -5.250000 +v 0.125000 0.187500 -4.500000 +v -0.137500 0.187500 -4.500000 +v 0.125000 -0.062500 -4.500000 +v -0.137500 -0.062500 -4.500000 +v 0.375000 -0.437500 -3.750000 +v 0.375000 0.187500 -3.750000 +v 0.375000 -1.937500 -4.500000 +v 0.375000 -1.937500 -5.000000 +v 0.375000 -1.562500 -5.000000 +v 0.375000 -0.062500 -4.250000 +v 0.375000 0.187500 -4.250000 +v -0.375000 0.187500 -3.750000 +v -0.375000 -0.437500 -3.750000 +v -0.375000 -1.937500 -4.500000 +v -0.375000 -1.937500 -5.000000 +v -0.375000 -1.562500 -5.000000 +v -0.375000 0.187500 -4.250000 +v -0.375000 -0.062500 -4.250000 +v -0.250000 -0.812500 -2.500000 +v 0.250000 -0.812500 -2.500000 +v -0.250000 -0.812500 -3.750000 +v 0.250000 -0.812500 -3.750000 +v -0.250000 -0.687500 -2.500000 +v 0.250000 -0.687500 -2.500000 +v -0.250000 -0.687500 -3.750000 +v 0.250000 -0.687500 -3.750000 +v -0.562500 -1.000000 -1.500000 +v 0.562500 -1.000000 -1.500000 +v -0.562500 -1.000000 2.000000 +v 0.562500 -1.000000 2.000000 +v -0.562500 -0.750000 -1.500000 +v 0.562500 -0.750000 -1.500000 +v -0.562500 -0.750000 2.000000 +v 0.562500 -0.750000 2.000000 +v 0.000000 1.875000 4.000000 +v -0.250000 1.808013 4.000000 +v -0.433012 1.625000 4.000000 +v -0.500000 1.375000 4.000000 +v -0.433012 1.125000 4.000000 +v -0.250000 0.941987 4.000000 +v 0.000000 0.875000 4.000000 +v 0.250000 0.941987 4.000000 +v 0.433012 1.125000 4.000000 +v 0.500000 1.375000 4.000000 +v 0.433013 1.625000 4.000000 +v 0.250000 1.808012 4.000000 +v -0.218750 1.753892 4.500000 +v 0.000000 1.812506 4.500000 +v -0.378886 1.593756 4.500000 +v -0.437500 1.375006 4.500000 +v -0.378886 1.156256 4.500000 +v -0.218750 0.996120 4.500000 +v 0.000000 0.937506 4.500000 +v 0.218750 0.996120 4.500000 +v 0.378886 1.156256 4.500000 +v 0.437500 1.375006 4.500000 +v 0.378886 1.593756 4.500000 +v 0.218750 1.753892 4.500000 +v 0.000000 1.875000 2.000000 +v -0.250000 1.808013 2.000000 +v -0.433012 1.625000 2.000000 +v -0.500000 1.375000 2.000000 +v -0.433012 1.125000 2.000000 +v -0.250000 0.941987 2.000000 +v 0.000000 0.875000 2.000000 +v 0.250000 0.941987 2.000000 +v 0.433012 1.125000 2.000000 +v 0.500000 1.375000 2.000000 +v 0.433013 1.625000 2.000000 +v 0.250000 1.808012 2.000000 +v -0.218750 1.753892 2.000000 +v 0.000000 1.812506 2.000000 +v -0.378886 1.593756 2.000000 +v -0.437500 1.375006 2.000000 +v -0.378886 1.156256 2.000000 +v -0.218750 0.996120 2.000000 +v 0.000000 0.937506 2.000000 +v 0.218750 0.996120 2.000000 +v 0.378886 1.156256 2.000000 +v 0.437500 1.375006 2.000000 +v 0.378886 1.593756 2.000000 +v 0.218750 1.753892 2.000000 +v 0.000000 0.562500 3.000000 +v -0.218750 0.503886 3.000000 +v -0.378886 0.343750 3.000000 +v -0.437500 0.125000 3.000000 +v -0.378886 -0.093750 3.000000 +v -0.218750 -0.253886 3.000000 +v 0.000000 -0.312500 3.000000 +v 0.218750 -0.253886 3.000000 +v 0.378886 -0.093750 3.000000 +v 0.437500 0.125000 3.000000 +v 0.378886 0.343750 3.000000 +v 0.218750 0.503886 3.000000 +v 0.000000 0.562500 3.250000 +v -0.218750 0.503886 3.250000 +v -0.378886 0.343750 3.250000 +v -0.437500 0.125000 3.250000 +v -0.378886 -0.093750 3.250000 +v -0.218750 -0.253886 3.250000 +v 0.000000 -0.312500 3.250000 +v 0.218750 -0.253886 3.250000 +v 0.378886 -0.093750 3.250000 +v 0.437500 0.125000 3.250000 +v 0.378886 0.343750 3.250000 +v 0.218750 0.503886 3.250000 +v -0.500000 0.187500 -2.500000 +v -0.500000 0.187500 -2.000000 +v 0.500000 0.187500 -2.500000 +v 0.500000 0.187500 -2.000000 +v 0.500000 0.500000 -2.750000 +v 0.500000 1.125000 -2.750000 +v 0.500000 1.125000 -2.625000 +v 0.500000 0.500000 -2.625000 +v 1.062500 0.687500 -2.750000 +v 0.875000 0.500000 -2.750000 +v 0.875000 1.125000 -2.750000 +v 1.062500 0.937500 -2.750000 +v 1.062500 0.937500 -2.625000 +v 0.875000 1.125000 -2.625000 +v 0.875000 0.500000 -2.625000 +v 1.062500 0.687500 -2.625000 +v -0.750000 1.062500 -3.250000 +v -0.750000 1.062500 -1.250000 +v -0.926777 0.989277 -3.250000 +v -0.926777 0.989277 -1.250000 +v -1.000000 0.812500 -3.250000 +v -1.000000 0.812500 -1.250000 +v -0.926777 0.635723 -3.250000 +v -0.926777 0.635723 -1.250000 +v -0.750000 0.562500 -3.250000 +v -0.750000 0.562500 -1.250000 +v -0.573223 0.635723 -3.250000 +v -0.573223 0.635723 -1.250000 +v -0.500000 0.812500 -3.250000 +v -0.500000 0.812500 -1.250000 +v -0.573223 0.989277 -3.250000 +v -0.573223 0.989277 -1.250000 +v 0.125000 0.187500 -3.250000 +v -0.125000 0.187500 -3.250000 +v 0.125000 -0.437500 -3.125000 +v -0.125000 -0.437500 -3.125000 +v 0.125000 0.187500 -3.500000 +v -0.125000 0.187500 -3.500000 +v 0.125000 -0.437500 -3.500000 +v -0.125000 -0.437500 -3.500000 +v -0.500000 0.500000 -2.750000 +v -0.500000 1.125000 -2.750000 +v -0.500000 1.125000 -2.625000 +v -0.500000 0.500000 -2.625000 +v -1.062500 0.687500 -2.750000 +v -0.875000 0.500000 -2.750000 +v -0.875000 1.125000 -2.750000 +v -1.062500 0.937500 -2.750000 +v -1.062500 0.937500 -2.625000 +v -0.875000 1.125000 -2.625000 +v -0.875000 0.500000 -2.625000 +v -1.062500 0.687500 -2.625000 +v 0.500000 0.500000 -1.875000 +v 0.500000 1.125000 -1.875000 +v 0.500000 1.125000 -1.750000 +v 0.500000 0.500000 -1.750000 +v 1.062500 0.687500 -1.875000 +v 0.875000 0.500000 -1.875000 +v 0.875000 1.125000 -1.875000 +v 1.062500 0.937500 -1.875000 +v 1.062500 0.937500 -1.750000 +v 0.875000 1.125000 -1.750000 +v 0.875000 0.500000 -1.750000 +v 1.062500 0.687500 -1.750000 +v -0.500000 0.500000 -1.875000 +v -0.500000 1.125000 -1.875000 +v -0.500000 1.125000 -1.750000 +v -0.500000 0.500000 -1.750000 +v -1.062500 0.687500 -1.875000 +v -0.875000 0.500000 -1.875000 +v -0.875000 1.125000 -1.875000 +v -1.062500 0.937500 -1.875000 +v -1.062500 0.937500 -1.750000 +v -0.875000 1.125000 -1.750000 +v -0.875000 0.500000 -1.750000 +v -1.062500 0.687500 -1.750000 +v 0.750000 1.062500 -3.250000 +v 0.750000 1.062500 -1.250000 +v 0.573223 0.989277 -3.250000 +v 0.573223 0.989277 -1.250000 +v 0.500000 0.812500 -3.250000 +v 0.500000 0.812500 -1.250000 +v 0.573223 0.635723 -3.250000 +v 0.573223 0.635723 -1.250000 +v 0.750000 0.562500 -3.250000 +v 0.750000 0.562500 -1.250000 +v 0.926777 0.635723 -3.250000 +v 0.926777 0.635723 -1.250000 +v 1.000000 0.812500 -3.250000 +v 1.000000 0.812500 -1.250000 +v 0.926777 0.989277 -3.250000 +v 0.926777 0.989277 -1.250000 +vt 0.465385 -0.000000 +vt 0.496154 0.084906 +vt 0.465385 0.084906 +vt 0.496154 0.311321 +vt 0.619231 0.396226 +vt 0.496154 0.396226 +vt 0.653846 0.084906 +vt 0.619231 0.311321 +vt 0.619231 0.084906 +vt 0.465385 0.216981 +vt 0.430769 0.311321 +vt 0.430769 0.216981 +vt 0.603846 0.000000 +vt 0.619231 0.000000 +vt 0.496154 0.000000 +vt 0.503846 0.084906 +vt 0.430769 0.084906 +vt 0.346154 0.566038 +vt 0.369231 0.603774 +vt 0.346154 0.603774 +vt 0.330769 0.660377 +vt 0.330769 0.603774 +vt 0.738462 0.169811 +vt 0.715385 0.207547 +vt 0.730769 0.075472 +vt 0.653846 0.207547 +vt 0.715385 0.283019 +vt 0.653846 0.283019 +vt 0.307692 0.566038 +vt 0.330769 0.566038 +vt 0.738462 0.283019 +vt 0.730769 -0.000000 +vt 0.653846 0.075472 +vt 0.653846 -0.000000 +vt 0.769231 0.094340 +vt 0.769231 0.169811 +vt 0.738462 0.075472 +vt 0.738462 0.000000 +vt 0.730769 0.415094 +vt 0.653846 0.415094 +vt 0.796154 0.462264 +vt 0.811538 0.462264 +vt 0.811538 0.518868 +vt 0.411538 0.622642 +vt 0.419231 0.575472 +vt 0.419231 0.622642 +vt 0.415385 0.452830 +vt 0.453846 0.490566 +vt 0.415385 0.490566 +vt 0.415385 0.547170 +vt 0.453846 0.537736 +vt 0.453846 0.547170 +vt 0.415385 0.500000 +vt 0.453846 0.500000 +vt 0.603846 0.084906 +vt 0.596154 0.000000 +vt 0.388462 0.915094 +vt 0.496154 0.830189 +vt 0.496154 0.915094 +vt 0.465385 0.490566 +vt 0.496154 0.603774 +vt 0.603846 0.103774 +vt 0.017308 0.226425 +vt 0.028962 0.242929 +vt 0.017308 0.292443 +vt 0.002103 0.018927 +vt 0.015385 0.000117 +vt 0.028667 0.018927 +vt 0.028944 0.209875 +vt 0.017308 0.226354 +vt 0.005671 0.176917 +vt 0.369231 0.566038 +vt 0.376923 0.603774 +vt 0.307692 0.603774 +vt 0.300000 0.566038 +vt 0.346154 0.660377 +vt 0.323077 0.679245 +vt 0.721154 0.462264 +vt 0.709615 0.471698 +vt 0.709615 0.462264 +vt 0.721154 0.471698 +vt 0.709615 0.518868 +vt 0.703846 0.462264 +vt 0.696154 0.471698 +vt 0.696154 0.462264 +vt 0.709615 0.528302 +vt 0.721154 0.518868 +vt 0.721154 0.528302 +vt 0.703846 0.471698 +vt 0.703846 0.518868 +vt 0.703846 0.528302 +vt 0.703846 0.448113 +vt 0.703846 0.429245 +vt 0.709615 0.415094 +vt 0.688461 0.453302 +vt 0.695961 0.471698 +vt 0.688461 0.490094 +vt 0.695961 0.433962 +vt 0.693765 0.446970 +vt 0.683158 0.420954 +vt 0.392308 0.566038 +vt 0.411538 0.547170 +vt 0.411538 0.575472 +vt 0.438462 0.566038 +vt 0.419231 0.547170 +vt 0.438462 0.547170 +vt 0.709615 0.471698 +vt 0.721154 0.462264 +vt 0.709615 0.462264 +vt 0.703846 0.485849 +vt 0.703846 0.504717 +vt 0.709615 0.518868 +vt 0.696154 0.471698 +vt 0.703846 0.462264 +vt 0.696154 0.462264 +vt 0.721154 0.518868 +vt 0.709615 0.528302 +vt 0.721154 0.528302 +vt 0.703846 0.471698 +vt 0.703846 0.518868 +vt 0.703846 0.528302 +vt 0.709615 0.415094 +vt 0.721154 0.462264 +vt 0.709615 0.471698 +vt 0.709615 0.462264 +vt 0.721154 0.471698 +vt 0.709615 0.518868 +vt 0.703846 0.462264 +vt 0.696154 0.471698 +vt 0.696154 0.462264 +vt 0.709615 0.528302 +vt 0.721154 0.518868 +vt 0.721154 0.528302 +vt 0.703846 0.471698 +vt 0.703846 0.518868 +vt 0.703846 0.528302 +vt 0.703846 0.448113 +vt 0.703846 0.429245 +vt 0.709615 0.415094 +vt 0.709615 0.471698 +vt 0.721154 0.462264 +vt 0.709615 0.462264 +vt 0.703846 0.485849 +vt 0.703846 0.504717 +vt 0.709615 0.518868 +vt 0.696154 0.471698 +vt 0.703846 0.462264 +vt 0.696154 0.462264 +vt 0.721154 0.518868 +vt 0.709615 0.528302 +vt 0.721154 0.528302 +vt 0.703846 0.471698 +vt 0.703846 0.518868 +vt 0.703846 0.528302 +vt 0.709615 0.415094 +vt 0.688461 0.453302 +vt 0.695961 0.471698 +vt 0.688461 0.490094 +vt 0.695961 0.433962 +vt 0.693765 0.446970 +vt 0.683158 0.420954 +vt 0.653846 0.311321 +vt 0.465385 0.311321 +vt 0.503846 -0.000000 +vt 0.738462 0.094340 +vt 0.738462 0.207547 +vt 0.738462 0.320755 +vt 0.738462 0.396226 +vt 0.819231 0.481132 +vt 0.819231 0.500000 +vt 0.796154 0.518868 +vt 0.788462 0.500000 +vt 0.788462 0.481132 +vt 0.453846 0.452830 +vt 0.415385 0.537736 +vt 0.596154 0.084906 +vt 0.388462 0.830189 +vt 0.619231 0.622642 +vt 0.603846 0.622642 +vt 0.603846 0.603774 +vt 0.496154 0.622642 +vt 0.465385 0.622642 +vt 0.496154 0.103774 +vt 0.010579 0.288021 +vt 0.005653 0.275939 +vt 0.003850 0.259434 +vt 0.005653 0.242929 +vt 0.010579 0.230847 +vt 0.024036 0.230847 +vt 0.030765 0.259434 +vt 0.028962 0.275939 +vt 0.024036 0.288021 +vt 0.015385 0.075355 +vt 0.007716 0.070315 +vt 0.002103 0.056545 +vt 0.000048 0.037736 +vt 0.007716 0.005157 +vt 0.023053 0.005157 +vt 0.030721 0.037736 +vt 0.028667 0.056545 +vt 0.023053 0.070315 +vt 0.010589 0.221938 +vt 0.005671 0.209875 +vt 0.003871 0.193396 +vt 0.010589 0.164854 +vt 0.017308 0.160439 +vt 0.024026 0.164854 +vt 0.028944 0.176917 +vt 0.030744 0.193396 +vt 0.024026 0.221938 +vt 0.376923 0.566038 +vt 0.300000 0.603774 +vt 0.353846 0.679245 +vt 0.703846 0.504717 +vt 0.703846 0.485849 +vt 0.721154 0.415094 +vt 0.683158 0.484706 +vt 0.680962 0.471698 +vt 0.683158 0.458690 +vt 0.693765 0.458690 +vt 0.693765 0.484706 +vt 0.688461 0.452358 +vt 0.683158 0.446970 +vt 0.680962 0.433962 +vt 0.688462 0.415566 +vt 0.693765 0.420954 +vt 0.392308 0.547170 +vt 0.721154 0.471698 +vt 0.721154 0.415094 +vt 0.703846 0.429245 +vt 0.703846 0.448113 +vt 0.703846 0.504717 +vt 0.703846 0.485849 +vt 0.721154 0.415094 +vt 0.721154 0.471698 +vt 0.721154 0.415094 +vt 0.703846 0.429245 +vt 0.703846 0.448113 +vt 0.683158 0.484706 +vt 0.680962 0.471698 +vt 0.683158 0.458690 +vt 0.693765 0.458690 +vt 0.693765 0.484706 +vt 0.688461 0.452358 +vt 0.683158 0.446970 +vt 0.680962 0.433962 +vt 0.688462 0.415566 +vt 0.693765 0.420954 +vt 0.742308 0.481132 +vt 0.742308 0.500000 +vt 0.723077 0.481132 +vt 0.723077 0.500000 +vt 0.830769 0.500000 +vt 0.876923 0.500000 +vt 0.884615 0.481132 +vt 0.884615 0.500000 +vt 0.796154 0.660377 +vt 0.811538 0.547170 +vt 0.819231 0.547170 +vt 0.796154 0.679245 +vt 0.788462 0.660377 +vt 0.773077 0.679245 +vt 0.788462 0.679245 +vt 0.819231 0.518868 +vt 0.796154 0.660377 +vt 0.811538 0.547170 +vt 0.788462 0.660377 +vt 0.788462 0.518868 +vt 0.773077 0.632075 +vt 0.765385 0.632075 +vt 0.765385 0.679245 +vt 0.773077 0.632075 +vt 0.796154 0.518868 +vt 0.773077 0.679245 +vt 0.788462 0.679245 +vt 0.796154 0.679245 +vt 0.765385 0.679245 +vt 0.765385 0.632075 +vt 0.819231 0.518868 +vt 0.819231 0.547170 +vt 0.788462 0.518868 +vt 0.830769 0.481132 +vt 0.430769 0.339623 +vt 0.338462 0.358491 +vt 0.338462 0.339623 +vt 0.400000 0.207547 +vt 0.338462 0.226415 +vt 0.338462 0.207547 +vt 0.430769 0.264151 +vt 0.338462 0.283019 +vt 0.338462 0.264151 +vt 0.430769 0.358491 +vt 0.338462 0.377358 +vt 0.400000 0.000000 +vt 0.338462 0.018868 +vt 0.338462 0.000000 +vt 0.430769 0.283019 +vt 0.338462 0.301887 +vt 0.430769 0.377358 +vt 0.338462 0.396226 +vt 0.400000 0.018868 +vt 0.338462 0.037736 +vt 0.430769 0.301887 +vt 0.338462 0.320755 +vt 0.400000 0.113208 +vt 0.338462 0.132075 +vt 0.338462 0.113208 +vt 0.430769 0.396226 +vt 0.338462 0.415094 +vt 0.400000 0.037736 +vt 0.338462 0.056604 +vt 0.430769 0.320755 +vt 0.400000 0.132075 +vt 0.338462 0.150943 +vt 0.430769 0.415094 +vt 0.338462 0.433962 +vt 0.400000 0.056604 +vt 0.338462 0.075472 +vt 0.400000 0.150943 +vt 0.338462 0.169811 +vt 0.430769 0.433962 +vt 0.338462 0.452830 +vt 0.400000 0.075472 +vt 0.338462 0.094340 +vt 0.400000 0.169811 +vt 0.338462 0.188679 +vt 0.430769 0.226415 +vt 0.338462 0.245283 +vt 0.338462 0.226415 +vt 0.400000 0.094340 +vt 0.400000 0.188679 +vt 0.430769 0.245283 +vt 0.407692 0.226415 +vt 0.400000 0.207547 +vt 0.407692 0.207547 +vt 0.407692 0.169811 +vt 0.400000 0.150943 +vt 0.407692 0.150943 +vt 0.407692 0.075472 +vt 0.400000 0.056604 +vt 0.407692 0.056604 +vt 0.407692 0.018868 +vt 0.400000 -0.000000 +vt 0.407692 -0.000000 +vt 0.407692 0.188679 +vt 0.400000 0.169811 +vt 0.407692 0.094340 +vt 0.400000 0.075472 +vt 0.407692 0.132075 +vt 0.400000 0.113208 +vt 0.407692 0.113208 +vt 0.407692 0.037736 +vt 0.400000 0.018868 +vt 0.400000 0.188679 +vt 0.400000 0.094340 +vt 0.400000 0.132075 +vt 0.400000 0.037736 +vt 0.680769 0.509434 +vt 0.619231 0.490566 +vt 0.680769 0.490566 +vt 0.680769 0.528302 +vt 0.619231 0.509434 +vt 0.680769 0.547170 +vt 0.619231 0.528302 +vt 0.680769 0.566038 +vt 0.619231 0.547170 +vt 0.680769 0.433962 +vt 0.619231 0.415094 +vt 0.680769 0.415094 +vt 0.680769 0.452830 +vt 0.619231 0.433962 +vt 0.680769 0.471698 +vt 0.619231 0.452830 +vt 0.619231 0.471698 +vt 0.811538 0.518868 +vt 0.680769 0.509434 +vt 0.619231 0.490566 +vt 0.680769 0.490566 +vt 0.680769 0.528302 +vt 0.619231 0.509434 +vt 0.680769 0.547170 +vt 0.619231 0.528302 +vt 0.680769 0.566038 +vt 0.619231 0.547170 +vt 0.680769 0.433962 +vt 0.619231 0.415094 +vt 0.680769 0.415094 +vt 0.680769 0.452830 +vt 0.619231 0.433962 +vt 0.680769 0.471698 +vt 0.619231 0.452830 +vt 0.619231 0.471698 +vt 0.876923 0.481132 +vt 0.400000 0.226415 +vt 0.430769 0.452830 +vt 0.400000 0.226415 +vt 0.619231 0.566038 +vt 0.619231 0.566038 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.6247 0.7809 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.1961 0.9806 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3595 -0.2070 0.9099 +vn 0.3897 -0.4119 0.8237 +vn 0.3595 -0.2070 0.9099 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.3945 0.0000 -0.9189 +vn 0.3595 0.2070 -0.9099 +vn 0.3827 0.0000 -0.9239 +vn 0.3954 0.2222 -0.8912 +vn 0.8994 0.1123 -0.4225 +vn 0.9414 0.0706 -0.3297 +vn 0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.4084 0.2210 -0.8856 +vn -0.9054 0.1095 -0.4102 +vn -0.9452 0.0682 -0.3193 +vn 0.8994 -0.1123 0.4225 +vn -0.8994 -0.1123 0.4225 +vn -0.9511 -0.1381 0.2762 +vn -0.9239 0.0000 0.3827 +vn -0.9287 0.0000 -0.3708 +vn -0.3703 0.2060 -0.9058 +vn -0.3897 -0.4119 0.8237 +vn -0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.9511 -0.1381 0.2762 +s off +f 649/897/340 718/898/340 650/899/340 +f 655/900/341 653/901/341 654/902/341 +f 651/903/342 656/904/342 652/905/342 +f 657/906/343 654/907/343 658/908/343 +f 652/905/340 715/909/340 651/910/340 +f 717/911/342 722/912/342 718/898/342 +f 650/899/344 658/908/344 649/913/344 +f 672/914/345 664/915/345 669/916/345 +f 669/916/342 673/917/342 670/918/342 +f 668/919/346 666/920/346 677/921/346 +f 662/922/341 663/923/341 661/924/341 +f 670/918/346 674/925/346 671/926/346 +f 666/920/347 667/927/347 663/923/347 +f 676/928/340 660/929/340 659/930/340 +f 668/919/342 675/931/342 667/932/342 +f 672/914/340 670/918/340 671/926/340 +f 678/933/348 676/928/348 675/934/348 +f 676/935/345 659/936/345 663/923/345 +f 702/937/340 703/938/340 696/939/340 +f 828/940/349 829/941/349 827/942/349 +f 707/943/340 710/944/340 708/945/340 +f 707/946/345 713/947/345 709/948/345 +f 710/944/346 712/949/346 708/945/346 +f 713/947/341 712/949/341 714/950/341 +f 716/951/344 719/952/344 715/909/344 +f 722/953/340 719/954/340 720/955/340 +f 658/956/345 654/902/345 721/957/345 +f 652/905/346 656/904/346 720/958/346 +f 741/959/344 743/960/344 736/961/344 +f 727/962/344 729/963/344 731/964/344 +f 793/965/344 783/966/344 787/967/344 +f 665/968/350 795/969/350 664/915/350 +f 673/970/351 798/971/351 674/925/351 +f 664/972/342 797/973/342 673/917/342 +f 800/974/341 808/975/341 805/976/341 +f 808/975/344 801/977/344 809/978/344 +f 806/979/346 810/980/346 803/981/346 +f 804/982/340 802/983/340 799/984/340 +f 806/979/352 808/975/352 807/985/352 +f 810/986/351 804/982/351 803/987/351 +f 806/988/342 803/989/342 804/990/342 +f 820/991/344 824/992/344 812/993/344 +f 815/994/342 813/995/342 821/996/342 +f 828/997/345 834/998/345 830/999/345 +f 827/1000/346 833/1001/346 831/1002/346 +f 830/999/340 833/1001/340 829/941/340 +f 844/1003/341 836/1004/341 841/1005/341 +f 843/1006/344 846/1007/344 845/1008/344 +f 846/1009/345 842/1010/345 839/1011/345 +f 838/1012/340 840/1013/340 835/1014/340 +f 844/1003/353 842/1010/353 843/1015/353 +f 840/1013/350 846/1016/350 839/1017/350 +f 841/1005/342 836/1004/342 840/1018/342 +f 848/1019/341 856/1020/341 853/1021/341 +f 856/1020/344 849/1022/344 857/1023/344 +f 854/1024/346 858/1025/346 851/1026/346 +f 852/1027/340 850/1028/340 847/1029/340 +f 854/1024/352 856/1020/352 855/1030/352 +f 858/1031/351 852/1027/351 851/1032/351 +f 854/1033/342 851/1034/342 852/1035/342 +f 868/1036/341 860/1037/341 865/1038/341 +f 867/1039/344 870/1040/344 869/1041/344 +f 870/1042/345 866/1043/345 863/1044/345 +f 862/1045/340 864/1046/340 859/1047/340 +f 868/1036/353 866/1043/353 867/1048/353 +f 864/1046/350 870/1049/350 863/1050/350 +f 865/1038/342 860/1037/342 864/1051/342 +f 880/1052/344 884/1053/344 872/1054/344 +f 875/1055/342 873/1056/342 881/1057/342 +f 649/897/340 717/911/340 718/898/340 +f 655/900/341 656/904/341 653/901/341 +f 651/903/342 653/1058/342 656/904/342 +f 657/906/343 655/1059/343 654/907/343 +f 652/905/340 716/951/340 715/909/340 +f 717/911/342 721/1060/342 722/912/342 +f 650/899/344 657/906/344 658/908/344 +f 672/914/345 665/968/345 664/915/345 +f 669/916/342 664/972/342 673/917/342 +f 662/922/346 660/929/346 666/920/346 +f 660/929/346 677/921/346 666/920/346 +f 677/921/346 678/1061/346 668/919/346 +f 662/922/341 666/920/341 663/923/341 +f 670/918/346 673/970/346 674/925/346 +f 666/920/347 668/1062/347 667/927/347 +f 676/928/340 677/921/340 660/929/340 +f 668/919/342 678/1061/342 675/931/342 +f 672/914/340 669/916/340 670/918/340 +f 678/933/348 677/921/348 676/928/348 +f 661/924/345 663/923/345 659/936/345 +f 663/923/345 667/1063/345 676/935/345 +f 667/1063/345 675/1064/345 676/935/345 +f 686/1065/340 685/1066/340 703/938/340 +f 685/1066/340 696/939/340 703/938/340 +f 696/939/340 695/1067/340 702/937/340 +f 695/1067/340 683/1068/340 702/937/340 +f 683/1068/340 684/1069/340 702/937/340 +f 828/940/349 830/999/349 829/941/349 +f 707/943/340 709/1070/340 710/944/340 +f 707/946/345 711/1071/345 713/947/345 +f 710/944/346 714/950/346 712/949/346 +f 713/947/341 711/1071/341 712/949/341 +f 716/951/344 720/1072/344 719/952/344 +f 722/953/340 721/1073/340 719/954/340 +f 651/1074/345 715/1075/345 719/1076/345 +f 721/957/345 717/1077/345 649/1078/345 +f 653/901/345 651/1074/345 719/1076/345 +f 721/957/345 649/1078/345 658/956/345 +f 653/901/345 719/1076/345 654/902/345 +f 719/1076/345 721/957/345 654/902/345 +f 656/904/346 655/900/346 720/958/346 +f 655/900/346 657/906/346 722/1079/346 +f 720/958/346 655/900/346 722/1079/346 +f 657/906/346 650/899/346 722/1079/346 +f 650/899/346 718/898/346 722/1079/346 +f 716/951/346 652/905/346 720/958/346 +f 736/961/344 735/1080/344 737/1081/344 +f 737/1081/344 738/1082/344 736/961/344 +f 738/1082/344 739/1083/344 736/961/344 +f 739/1083/344 740/1084/344 741/959/344 +f 741/959/344 742/1085/344 743/960/344 +f 743/960/344 744/1086/344 736/961/344 +f 744/1086/344 745/1087/344 736/961/344 +f 745/1087/344 746/1088/344 736/961/344 +f 739/1083/344 741/959/344 736/961/344 +f 723/1089/344 724/1090/344 725/1091/344 +f 725/1091/344 726/1092/344 727/962/344 +f 727/962/344 728/1093/344 729/963/344 +f 729/963/344 730/1094/344 731/964/344 +f 731/964/344 732/1095/344 733/1096/344 +f 733/1096/344 734/1097/344 731/964/344 +f 734/1097/344 723/1089/344 731/964/344 +f 723/1089/344 725/1091/344 731/964/344 +f 725/1091/344 727/962/344 731/964/344 +f 783/966/344 784/1098/344 785/1099/344 +f 785/1099/344 786/1100/344 783/966/344 +f 786/1100/344 787/967/344 783/966/344 +f 787/967/344 788/1101/344 789/1102/344 +f 789/1102/344 790/1103/344 791/1104/344 +f 791/1104/344 792/1105/344 793/965/344 +f 793/965/344 794/1106/344 783/966/344 +f 787/967/344 789/1102/344 791/1104/344 +f 791/1104/344 793/965/344 787/967/344 +f 665/968/350 796/1107/350 795/969/350 +f 673/970/351 797/1108/351 798/971/351 +f 664/972/342 795/1109/342 797/973/342 +f 800/974/341 801/977/341 808/975/341 +f 801/977/344 802/983/344 809/978/344 +f 809/978/344 810/1110/344 807/1111/344 +f 807/1111/344 808/975/344 809/978/344 +f 806/979/346 807/985/346 810/980/346 +f 804/982/340 809/978/340 802/983/340 +f 806/979/352 805/976/352 808/975/352 +f 810/986/351 809/978/351 804/982/351 +f 804/990/342 799/1112/342 800/974/342 +f 800/974/342 805/976/342 804/990/342 +f 805/976/342 806/988/342 804/990/342 +f 812/993/344 814/1113/344 816/1114/344 +f 816/1114/344 818/1115/344 820/991/344 +f 820/991/344 822/1116/344 824/992/344 +f 824/992/344 826/1117/344 812/993/344 +f 812/993/344 816/1114/344 820/991/344 +f 813/995/342 811/1118/342 821/996/342 +f 811/1118/342 825/1119/342 821/996/342 +f 825/1119/342 823/1120/342 821/996/342 +f 821/996/342 819/1121/342 817/1122/342 +f 817/1122/342 815/994/342 821/996/342 +f 828/997/345 832/1123/345 834/998/345 +f 827/1000/346 829/941/346 833/1001/346 +f 830/999/340 834/998/340 833/1001/340 +f 844/1003/341 837/1124/341 836/1004/341 +f 845/1008/344 838/1012/344 837/1124/344 +f 837/1124/344 844/1003/344 845/1008/344 +f 844/1003/344 843/1006/344 845/1008/344 +f 846/1009/345 843/1015/345 842/1010/345 +f 838/1012/340 845/1008/340 840/1013/340 +f 844/1003/353 841/1005/353 842/1010/353 +f 840/1013/350 845/1008/350 846/1016/350 +f 836/1004/342 835/1125/342 840/1018/342 +f 840/1018/342 839/1126/342 842/1127/342 +f 842/1127/342 841/1005/342 840/1018/342 +f 848/1019/341 849/1022/341 856/1020/341 +f 849/1022/344 850/1028/344 857/1023/344 +f 857/1023/344 858/1128/344 855/1129/344 +f 855/1129/344 856/1020/344 857/1023/344 +f 854/1024/346 855/1030/346 858/1025/346 +f 852/1027/340 857/1023/340 850/1028/340 +f 854/1024/352 853/1021/352 856/1020/352 +f 858/1031/351 857/1023/351 852/1027/351 +f 852/1035/342 847/1130/342 848/1019/342 +f 848/1019/342 853/1021/342 852/1035/342 +f 853/1021/342 854/1033/342 852/1035/342 +f 868/1036/341 861/1131/341 860/1037/341 +f 869/1041/344 862/1045/344 861/1131/344 +f 861/1131/344 868/1036/344 869/1041/344 +f 868/1036/344 867/1039/344 869/1041/344 +f 870/1042/345 867/1048/345 866/1043/345 +f 862/1045/340 869/1041/340 864/1046/340 +f 868/1036/353 865/1038/353 866/1043/353 +f 864/1046/350 869/1041/350 870/1049/350 +f 860/1037/342 859/1132/342 864/1051/342 +f 864/1051/342 863/1133/342 866/1134/342 +f 866/1134/342 865/1038/342 864/1051/342 +f 872/1054/344 874/1135/344 876/1136/344 +f 876/1136/344 878/1137/344 880/1052/344 +f 880/1052/344 882/1138/344 884/1053/344 +f 884/1053/344 886/1139/344 872/1054/344 +f 872/1054/344 876/1136/344 880/1052/344 +f 873/1056/342 871/1140/342 881/1057/342 +f 871/1140/342 885/1141/342 881/1057/342 +f 885/1141/342 883/1142/342 881/1057/342 +f 881/1057/342 879/1143/342 877/1144/342 +f 877/1144/342 875/1055/342 881/1057/342 +s 1 +f 682/1145/354 683/1068/355 681/1146/356 +f 680/1147/357 681/1146/356 679/1148/358 +f 686/1065/359 687/1149/360 685/1066/361 +f 691/1150/362 690/1151/359 689/1152/361 +f 691/1153/362 697/1154/363 687/1155/360 +f 689/1156/361 698/1157/364 691/1153/362 +f 694/1158/365 698/1157/364 699/1159/366 +f 687/1155/360 696/939/366 685/1160/361 +f 692/1161/367 704/1162/368 706/1163/369 +f 683/1164/355 693/1165/370 681/1166/356 +f 681/1166/356 694/1158/365 679/1167/358 +f 701/1168/371 704/1162/368 702/1169/372 +f 700/1170/373 706/1163/369 701/1168/371 +f 692/1161/367 705/1171/374 690/1172/359 +f 680/1173/357 701/1168/371 682/1174/354 +f 686/1175/359 704/1162/368 688/1176/375 +f 684/1177/376 701/1168/371 702/1169/372 +f 688/1178/375 691/1150/362 687/1149/360 +f 760/1179/341 735/1180/377 736/1181/341 +f 752/1182/378 729/1183/340 728/1184/378 +f 767/1185/379 744/1186/346 743/1187/379 +f 759/1188/377 737/1189/380 735/1180/377 +f 753/1190/340 730/1191/381 729/1192/340 +f 768/1193/346 745/1194/382 744/1186/346 +f 761/1195/380 738/1196/345 737/1189/380 +f 754/1197/381 731/1198/379 730/1191/381 +f 769/1199/382 746/1200/383 745/1194/382 +f 747/1201/341 724/1202/377 723/1203/341 +f 762/1204/345 739/1205/384 738/1196/345 +f 755/1206/379 732/1207/346 731/1198/379 +f 770/1208/383 736/1181/341 746/1200/383 +f 748/1209/377 725/1210/380 724/1202/377 +f 763/1211/384 740/1212/378 739/1205/384 +f 756/1213/346 733/1214/382 732/1207/346 +f 749/1215/380 726/1216/345 725/1210/380 +f 764/1217/378 741/1218/340 740/1212/378 +f 757/1219/382 734/1220/383 733/1214/382 +f 750/1221/345 727/1222/384 726/1216/345 +f 765/1223/340 742/1224/381 741/1225/340 +f 758/1226/383 723/1203/341 734/1220/383 +f 751/1227/384 728/1184/378 727/1222/384 +f 766/1228/381 743/1187/379 742/1224/381 +f 777/1229/340 788/1230/378 776/1231/378 +f 774/1232/345 785/1233/380 773/1234/380 +f 781/1235/382 792/1236/346 780/1237/346 +f 778/1238/381 789/1239/340 777/1240/340 +f 775/1241/384 786/1242/345 774/1232/345 +f 782/1243/383 793/1244/382 781/1235/382 +f 772/1245/377 783/1246/341 771/1247/341 +f 779/1248/379 790/1249/381 778/1238/381 +f 776/1231/378 787/1250/384 775/1241/384 +f 771/1247/341 794/1251/383 782/1243/383 +f 773/1234/380 784/1252/377 772/1245/377 +f 780/1237/346 791/1253/379 779/1248/379 +f 813/1254/353 812/1255/341 811/1256/341 +f 815/1257/345 814/1258/353 813/1254/353 +f 817/1259/350 816/1260/345 815/1257/345 +f 819/1261/340 818/1262/350 817/1259/350 +f 821/1263/351 820/1264/340 819/1265/340 +f 823/1266/346 822/1267/351 821/1263/351 +f 825/1268/352 824/1269/346 823/1266/346 +f 811/1256/341 826/1270/352 825/1268/352 +f 693/1165/370 697/1154/363 698/1157/364 +f 702/1169/372 704/1162/368 703/1271/374 +f 697/1154/363 695/1067/385 696/939/366 +f 873/1272/353 872/1273/341 871/1274/341 +f 875/1275/345 874/1276/353 873/1272/353 +f 877/1277/350 876/1278/345 875/1275/345 +f 879/1279/340 878/1280/350 877/1277/350 +f 881/1281/351 880/1282/340 879/1283/340 +f 883/1284/346 882/1285/351 881/1281/351 +f 885/1286/352 884/1287/346 883/1284/346 +f 871/1274/341 886/1288/352 885/1286/352 +f 682/1145/354 684/1069/376 683/1068/355 +f 680/1147/357 682/1145/354 681/1146/356 +f 686/1065/359 688/1178/375 687/1149/360 +f 691/1150/362 692/1289/367 690/1151/359 +f 691/1153/362 698/1157/364 697/1154/363 +f 689/1156/361 699/1159/366 698/1157/364 +f 694/1158/365 693/1165/370 698/1157/364 +f 687/1155/360 697/1154/363 696/939/366 +f 692/1161/367 688/1176/375 704/1162/368 +f 683/1164/355 695/1067/385 693/1165/370 +f 681/1166/356 693/1165/370 694/1158/365 +f 701/1168/371 706/1163/369 704/1162/368 +f 700/1170/373 705/1171/374 706/1163/369 +f 692/1161/367 706/1163/369 705/1171/374 +f 680/1173/357 700/1170/373 701/1168/371 +f 686/1175/359 703/1271/374 704/1162/368 +f 684/1177/376 682/1174/354 701/1168/371 +f 688/1178/375 692/1289/367 691/1150/362 +f 760/1179/341 759/1188/377 735/1180/377 +f 752/1182/378 753/1290/340 729/1183/340 +f 767/1185/379 768/1193/346 744/1186/346 +f 759/1188/377 761/1195/380 737/1189/380 +f 753/1190/340 754/1197/381 730/1191/381 +f 768/1193/346 769/1199/382 745/1194/382 +f 761/1195/380 762/1204/345 738/1196/345 +f 754/1197/381 755/1206/379 731/1198/379 +f 769/1199/382 770/1208/383 746/1200/383 +f 747/1201/341 748/1209/377 724/1202/377 +f 762/1204/345 763/1211/384 739/1205/384 +f 755/1206/379 756/1213/346 732/1207/346 +f 770/1208/383 760/1179/341 736/1181/341 +f 748/1209/377 749/1215/380 725/1210/380 +f 763/1211/384 764/1217/378 740/1212/378 +f 756/1213/346 757/1219/382 733/1214/382 +f 749/1215/380 750/1221/345 726/1216/345 +f 764/1217/378 765/1291/340 741/1218/340 +f 757/1219/382 758/1226/383 734/1220/383 +f 750/1221/345 751/1227/384 727/1222/384 +f 765/1223/340 766/1228/381 742/1224/381 +f 758/1226/383 747/1201/341 723/1203/341 +f 751/1227/384 752/1182/378 728/1184/378 +f 766/1228/381 767/1185/379 743/1187/379 +f 777/1229/340 789/1292/340 788/1230/378 +f 774/1232/345 786/1242/345 785/1233/380 +f 781/1235/382 793/1244/382 792/1236/346 +f 778/1238/381 790/1249/381 789/1239/340 +f 775/1241/384 787/1250/384 786/1242/345 +f 782/1243/383 794/1251/383 793/1244/382 +f 772/1245/377 784/1252/377 783/1246/341 +f 779/1248/379 791/1253/379 790/1249/381 +f 776/1231/378 788/1230/378 787/1250/384 +f 771/1247/341 783/1246/341 794/1251/383 +f 773/1234/380 785/1233/380 784/1252/377 +f 780/1237/346 792/1236/346 791/1253/379 +f 813/1254/353 814/1258/353 812/1255/341 +f 815/1257/345 816/1260/345 814/1258/353 +f 817/1259/350 818/1262/350 816/1260/345 +f 819/1261/340 820/1293/340 818/1262/350 +f 821/1263/351 822/1267/351 820/1264/340 +f 823/1266/346 824/1269/346 822/1267/351 +f 825/1268/352 826/1270/352 824/1269/346 +f 811/1256/341 812/1255/341 826/1270/352 +f 693/1165/370 695/1067/385 697/1154/363 +f 873/1272/353 874/1276/353 872/1273/341 +f 875/1275/345 876/1278/345 874/1276/353 +f 877/1277/350 878/1280/350 876/1278/345 +f 879/1279/340 880/1294/340 878/1280/350 +f 881/1281/351 882/1285/351 880/1282/340 +f 883/1284/346 884/1287/346 882/1285/351 +f 885/1286/352 886/1288/352 884/1287/346 +f 871/1274/341 872/1273/341 886/1288/352 diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj new file mode 100644 index 000000000..6e1c08cdd --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj @@ -0,0 +1,22013 @@ +# Blender v2.79 (sub 0) OBJ File: 'launch_pad_erector.blend' +# www.blender.org +o ABM_Pivot +v 0.125000 1.250000 -1.375000 +v 0.375000 1.250000 -1.375000 +v 0.125000 1.250000 -1.625000 +v 0.375000 1.250000 -1.625000 +v -0.375000 1.250000 -1.375000 +v -0.125000 1.250000 -1.375000 +v -0.375000 1.250000 -1.625000 +v -0.125000 1.250000 -1.625000 +v 0.125000 2.750000 -1.625000 +v 0.125000 2.750000 -1.375000 +v 0.375000 2.750000 -1.375000 +v 0.375000 2.750000 -1.625000 +v -0.375000 2.750000 -1.625000 +v -0.375000 2.750000 -1.375000 +v -0.125000 2.750000 -1.375000 +v -0.125000 2.750000 -1.625000 +v 0.187500 2.750000 -1.437500 +v 0.312500 2.750000 -1.437500 +v 0.187500 2.750000 -1.562500 +v 0.312500 2.750000 -1.562500 +v 0.187500 3.750000 -1.437500 +v 0.312500 3.750000 -1.437500 +v 0.187500 3.750000 -1.562500 +v 0.312500 3.750000 -1.562500 +v -0.312500 2.750000 -1.437500 +v -0.187500 2.750000 -1.437500 +v -0.312500 2.750000 -1.562500 +v -0.187500 2.750000 -1.562500 +v -0.312500 3.750000 -1.437500 +v -0.187500 3.750000 -1.437500 +v -0.312500 3.750000 -1.562500 +v -0.187500 3.750000 -1.562500 +v 0.125000 2.312500 -1.437500 +v 0.125000 2.187500 -1.437500 +v 0.125000 2.312500 -1.562500 +v 0.125000 2.187500 -1.562500 +v -0.125000 2.312500 -1.562500 +v -0.125000 2.312500 -1.437500 +v -0.125000 2.187500 -1.437500 +v -0.125000 2.187500 -1.562500 +vt 0.750000 0.227273 +vt 0.729167 0.136364 +vt 0.750000 0.136364 +vt 0.791667 0.227273 +vt 0.770833 0.136364 +vt 0.791667 0.136364 +vt 0.666667 0.159091 +vt 0.708333 0.136364 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.136364 +vt 0.708333 0.159091 +vt 0.833333 -0.000000 +vt 0.791667 0.136364 +vt 0.791667 -0.000000 +vt 0.750000 -0.000000 +vt 0.708333 -0.000000 +vt 0.833333 -0.000000 +vt 0.791667 0.136364 +vt 0.791667 -0.000000 +vt 0.750000 -0.000000 +vt 0.708333 -0.000000 +vt 0.666667 0.136364 +vt 0.666667 -0.000000 +vt 0.750000 0.136364 +vt 0.666667 0.136364 +vt 0.666667 -0.000000 +vt 0.750000 0.136364 +vt 0.729167 0.227273 +vt 0.708333 0.136364 +vt 0.770833 0.227273 +vt 0.750000 0.227273 +vt 0.729167 0.136364 +vt 0.750000 0.136364 +vt 0.791667 0.227273 +vt 0.770833 0.136364 +vt 0.791667 0.136364 +vt 0.729167 0.227273 +vt 0.708333 0.136364 +vt 0.770833 0.227273 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.833333 0.136364 +vt 0.833333 0.136364 +vt 0.708333 0.227273 +vt 0.708333 0.227273 +vt 0.708333 0.204545 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 21/1/1 19/2/1 17/3/1 +f 24/4/2 18/5/2 20/6/2 +f 11/7/3 9/8/3 10/9/3 +f 15/10/3 13/11/3 14/12/3 +f 8/13/2 15/14/2 6/15/2 +f 5/16/1 13/11/1 7/17/1 +f 4/18/2 11/19/2 2/20/2 +f 1/21/1 9/8/1 3/22/1 +f 7/17/4 16/23/4 8/24/4 +f 6/15/5 14/25/5 5/16/5 +f 3/22/4 12/26/4 4/27/4 +f 2/20/5 10/28/5 1/21/5 +f 23/29/4 20/30/4 19/2/4 +f 22/31/5 17/3/5 18/5/5 +f 29/32/1 27/33/1 25/34/1 +f 32/35/2 26/36/2 28/37/2 +f 31/38/4 28/39/4 27/33/4 +f 30/40/5 25/34/5 26/36/5 +f 40/41/4 35/42/4 36/43/4 +f 38/44/5 34/45/5 33/46/5 +f 39/47/6 36/43/6 34/48/6 +f 37/49/3 33/46/3 35/42/3 +f 21/1/1 23/29/1 19/2/1 +f 24/4/2 22/31/2 18/5/2 +f 11/7/3 12/26/3 9/8/3 +f 15/10/3 16/23/3 13/11/3 +f 8/13/2 16/50/2 15/14/2 +f 5/16/1 14/25/1 13/11/1 +f 4/18/2 12/51/2 11/19/2 +f 1/21/1 10/28/1 9/8/1 +f 7/17/4 13/11/4 16/23/4 +f 6/15/5 15/14/5 14/25/5 +f 3/22/4 9/8/4 12/26/4 +f 2/20/5 11/19/5 10/28/5 +f 23/29/4 24/52/4 20/30/4 +f 22/31/5 21/1/5 17/3/5 +f 29/32/1 31/38/1 27/33/1 +f 32/35/2 30/40/2 26/36/2 +f 31/38/4 32/53/4 28/39/4 +f 30/40/5 29/32/5 25/34/5 +f 40/41/4 37/49/4 35/42/4 +f 38/44/5 39/54/5 34/45/5 +f 39/47/6 40/41/6 36/43/6 +f 37/49/3 38/44/3 33/46/3 +o ABM_Rope +v 0.000000 10.500000 1.437500 +v 0.000000 10.375000 1.437500 +v 0.000000 10.500000 0.000000 +v 0.000000 10.375000 0.000000 +v 0.000000 10.375000 1.062500 +v 0.000000 10.250000 1.062500 +v 0.000000 10.375000 0.375000 +v 0.000000 10.250000 0.375000 +v 0.000000 10.500000 1.437500 +v 0.000000 10.375000 1.437500 +v 0.000000 10.500000 0.000000 +v 0.000000 10.375000 0.000000 +v 0.000000 10.375000 1.062500 +v 0.000000 10.250000 1.062500 +v 0.000000 10.375000 0.375000 +v 0.000000 10.250000 0.375000 +vt 0.593750 0.920455 +vt 0.656250 0.909091 +vt 0.656250 0.920455 +vt 0.593750 0.909091 +vt 0.479167 0.920455 +vt 0.479167 0.909091 +vt 0.416667 0.909091 +vt 0.416667 0.920455 +vt 0.656250 0.909091 +vt 0.593750 0.920455 +vt 0.656250 0.920455 +vt 0.479167 0.920455 +vt 0.593750 0.909091 +vt 0.479167 0.909091 +vt 0.416667 0.909091 +vt 0.416667 0.920455 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 47/55/7 44/56/7 43/57/7 +f 48/58/7 45/59/7 46/60/7 +f 42/61/7 45/59/7 41/62/7 +f 52/63/8 55/64/8 51/65/8 +f 53/66/8 56/67/8 54/68/8 +f 50/69/8 53/66/8 54/68/8 +f 47/55/7 48/58/7 44/56/7 +f 48/58/7 47/55/7 45/59/7 +f 42/61/7 46/60/7 45/59/7 +f 52/63/8 56/67/8 55/64/8 +f 53/66/8 55/64/8 56/67/8 +f 50/69/8 49/70/8 53/66/8 +o ABM_Erector +v 0.125000 2.750000 -1.625000 +v 0.125000 2.750000 -1.375000 +v 0.375000 2.750000 -1.375000 +v 0.375000 2.750000 -1.625000 +v -0.375000 2.750000 -1.625000 +v -0.375000 2.750000 -1.375000 +v -0.125000 2.750000 -1.375000 +v -0.125000 2.750000 -1.625000 +v 0.125000 9.750000 -1.625000 +v 0.125000 9.750000 -1.375000 +v 0.375000 9.750000 -1.375000 +v 0.375000 9.750000 -1.625000 +v -0.375000 9.750000 -1.625000 +v -0.375000 9.750000 -1.375000 +v -0.125000 9.750000 -1.375000 +v -0.125000 9.750000 -1.625000 +v 0.250000 4.625000 -1.500000 +v 0.500000 4.625000 -1.500000 +v 0.250000 4.875000 -1.500000 +v 0.500000 4.875000 -1.500000 +v 0.250000 4.625000 0.250000 +v 0.500000 4.625000 0.250000 +v 0.250000 4.875000 0.250000 +v 0.500000 4.875000 0.250000 +v -0.500000 4.625000 -1.500000 +v -0.250000 4.625000 -1.500000 +v -0.500000 4.875000 -1.500000 +v -0.250000 4.875000 -1.500000 +v -0.500000 4.625000 0.250000 +v -0.250000 4.625000 0.250000 +v -0.500000 4.875000 0.250000 +v -0.250000 4.875000 0.250000 +v 0.250000 4.625000 -0.250000 +v 0.250000 4.875000 -0.250000 +v -0.250000 4.625000 -0.250000 +v -0.250000 4.875000 -0.250000 +v 0.250000 4.875000 -0.500000 +v 0.250000 4.625000 -0.500000 +v -0.250000 4.625000 -0.500000 +v -0.250000 4.875000 -0.500000 +v 0.250000 9.125000 -1.500000 +v 0.500000 9.125000 -1.500000 +v 0.250000 9.375000 -1.500000 +v 0.500000 9.375000 -1.500000 +v 0.250000 9.125000 0.250000 +v 0.500000 9.125000 0.250000 +v 0.250000 9.375000 0.250000 +v 0.500000 9.375000 0.250000 +v -0.500000 9.125000 -1.500000 +v -0.250000 9.125000 -1.500000 +v -0.500000 9.375000 -1.500000 +v -0.250000 9.375000 -1.500000 +v -0.500000 9.125000 0.250000 +v -0.250000 9.125000 0.250000 +v -0.500000 9.375000 0.250000 +v -0.250000 9.375000 0.250000 +v 0.250000 9.125000 -0.250000 +v 0.250000 9.375000 -0.250000 +v -0.250000 9.125000 -0.250000 +v -0.250000 9.375000 -0.250000 +v 0.250000 9.375000 -0.500000 +v 0.250000 9.125000 -0.500000 +v -0.250000 9.125000 -0.500000 +v -0.250000 9.375000 -0.500000 +v 0.125000 9.312500 -1.437500 +v 0.125000 9.187500 -1.437500 +v 0.125000 9.312500 -1.562500 +v 0.125000 9.187500 -1.562500 +v -0.125000 9.312500 -1.562500 +v -0.125000 9.312500 -1.437500 +v -0.125000 9.187500 -1.437500 +v -0.125000 9.187500 -1.562500 +v -0.125000 8.187500 -1.562500 +v -0.125000 8.187500 -1.437500 +v -0.125000 8.312500 -1.437500 +v -0.125000 8.312500 -1.562500 +v 0.125000 8.187500 -1.562500 +v 0.125000 8.312500 -1.562500 +v 0.125000 8.187500 -1.437500 +v 0.125000 8.312500 -1.437500 +v 0.125000 7.312500 -1.437500 +v 0.125000 7.187500 -1.437500 +v 0.125000 7.312500 -1.562500 +v 0.125000 7.187500 -1.562500 +v -0.125000 7.312500 -1.562500 +v -0.125000 7.312500 -1.437500 +v -0.125000 7.187500 -1.437500 +v -0.125000 7.187500 -1.562500 +v -0.125000 6.187500 -1.562500 +v -0.125000 6.187500 -1.437500 +v -0.125000 6.312500 -1.437500 +v -0.125000 6.312500 -1.562500 +v 0.125000 6.187500 -1.562500 +v 0.125000 6.312500 -1.562500 +v 0.125000 6.187500 -1.437500 +v 0.125000 6.312500 -1.437500 +v 0.125000 3.312500 -1.437500 +v 0.125000 3.187500 -1.437500 +v 0.125000 3.312500 -1.562500 +v 0.125000 3.187500 -1.562500 +v -0.125000 3.312500 -1.562500 +v -0.125000 3.312500 -1.437500 +v -0.125000 3.187500 -1.437500 +v -0.125000 3.187500 -1.562500 +v 0.125000 5.312500 -1.437500 +v 0.125000 5.187500 -1.437500 +v 0.125000 5.312500 -1.562500 +v 0.125000 5.187500 -1.562500 +v -0.125000 5.312500 -1.562500 +v -0.125000 5.312500 -1.437500 +v -0.125000 5.187500 -1.437500 +v -0.125000 5.187500 -1.562500 +v -0.125000 4.187500 -1.562500 +v -0.125000 4.187500 -1.437500 +v -0.125000 4.312500 -1.437500 +v -0.125000 4.312500 -1.562500 +v 0.125000 4.187500 -1.562500 +v 0.125000 4.312500 -1.562500 +v 0.125000 4.187500 -1.437500 +v 0.125000 4.312500 -1.437500 +v 0.250000 4.875000 -0.625000 +v 0.250000 4.875000 -0.875000 +v 0.250000 5.625000 -1.375000 +v 0.250000 5.375000 -1.375000 +v -0.250000 4.875000 -0.625000 +v -0.250000 4.875000 -0.875000 +v -0.250000 5.625000 -1.375000 +v -0.250000 5.375000 -1.375000 +v 0.250000 9.125000 -0.625000 +v 0.250000 9.125000 -0.875000 +v -0.250000 9.125000 -0.625000 +v -0.250000 9.125000 -0.875000 +v 0.250000 8.625000 -1.375000 +v 0.250000 8.375000 -1.375000 +v -0.250000 8.625000 -1.375000 +v -0.250000 8.375000 -1.375000 +v 0.250000 4.625000 -0.625000 +v 0.250000 4.625000 -0.875000 +v -0.250000 4.625000 -0.625000 +v -0.250000 4.625000 -0.875000 +v 0.250000 4.125000 -1.375000 +v 0.250000 3.875000 -1.375000 +v -0.250000 4.125000 -1.375000 +v -0.250000 3.875000 -1.375000 +v 0.250000 4.875000 -0.625000 +v 0.250000 4.875000 -0.875000 +v 0.250000 5.625000 -1.375000 +v 0.250000 5.375000 -1.375000 +v -0.250000 4.875000 -0.625000 +v -0.250000 4.875000 -0.875000 +v -0.250000 5.625000 -1.375000 +v -0.250000 5.375000 -1.375000 +v 0.250000 9.125000 -0.625000 +v 0.250000 9.125000 -0.875000 +v -0.250000 9.125000 -0.625000 +v -0.250000 9.125000 -0.875000 +v 0.250000 8.625000 -1.375000 +v 0.250000 8.375000 -1.375000 +v -0.250000 8.625000 -1.375000 +v -0.250000 8.375000 -1.375000 +v 0.250000 4.625000 -0.625000 +v 0.250000 4.625000 -0.875000 +v -0.250000 4.625000 -0.625000 +v -0.250000 4.625000 -0.875000 +v 0.250000 4.125000 -1.375000 +v 0.250000 3.875000 -1.375000 +v -0.250000 4.125000 -1.375000 +v -0.250000 3.875000 -1.375000 +vt 0.708333 0.227273 +vt 0.666667 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.227273 +vt 0.666667 0.204545 +vt 0.708333 0.204545 +vt 0.666667 0.886364 +vt 0.708333 0.863636 +vt 0.708333 0.886364 +vt 0.666667 0.886364 +vt 0.708333 0.863636 +vt 0.708333 0.886364 +vt 0.833333 0.227273 +vt 0.791667 0.863636 +vt 0.791667 0.227273 +vt 0.750000 0.227273 +vt 0.666667 0.863636 +vt 0.666667 0.227273 +vt 0.791667 0.227273 +vt 0.750000 0.863636 +vt 0.750000 0.227273 +vt 0.666667 0.863636 +vt 0.666667 0.227273 +vt 0.750000 0.863636 +vt 0.833333 0.227273 +vt 0.791667 0.863636 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.250000 +vt 0.958333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.204545 +vt 0.875000 0.227273 +vt 0.875000 0.204545 +vt 0.958333 0.181818 +vt 0.875000 0.181818 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.958333 0.227273 +vt 0.958333 0.250000 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.250000 +vt 0.958333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.204545 +vt 0.875000 0.227273 +vt 0.875000 0.204545 +vt 0.958333 0.181818 +vt 0.875000 0.181818 +vt 0.958333 0.227273 +vt 0.958333 0.250000 +vt 0.708333 0.159091 +vt 0.666667 0.170455 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.666667 0.193182 +vt 0.666667 0.181818 +vt 0.708333 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.181818 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.159091 +vt 0.666667 0.170455 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.666667 0.193182 +vt 0.666667 0.181818 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.708333 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.181818 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.159091 +vt 0.666667 0.170455 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.666667 0.193182 +vt 0.666667 0.181818 +vt 0.708333 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.708333 0.181818 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.958333 0.340909 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.875000 0.272727 +vt 0.958333 0.318182 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.875000 0.272727 +vt 0.958333 0.318182 +vt 0.958333 0.340909 +vt 0.875000 0.272727 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.958333 0.318182 +vt 0.833333 0.863636 +vt 0.833333 0.863636 +vt 1.000000 0.181818 +vt 1.000000 0.181818 +vt 1.000000 0.181818 +vt 1.000000 0.181818 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 57/71/9 59/72/9 58/73/9 +f 61/74/9 63/75/9 62/76/9 +f 67/77/10 65/78/10 66/79/10 +f 71/80/10 69/81/10 70/82/10 +f 60/83/11 67/84/11 59/85/11 +f 58/86/12 65/78/12 57/71/12 +f 61/74/13 72/87/13 64/88/13 +f 63/89/14 70/90/14 62/91/14 +f 57/71/13 68/92/13 60/93/13 +f 59/85/14 66/94/14 58/86/14 +f 64/95/11 71/96/11 63/89/11 +f 62/91/12 69/81/12 61/74/12 +f 75/97/13 74/98/13 73/99/13 +f 78/100/14 79/101/14 77/102/14 +f 73/103/12 79/101/12 75/97/12 +f 75/97/10 80/104/10 76/105/10 +f 74/106/9 77/107/9 73/103/9 +f 76/108/11 78/109/11 74/106/11 +f 83/110/13 82/111/13 81/112/13 +f 86/113/14 87/114/14 85/115/14 +f 81/116/12 87/114/12 83/110/12 +f 83/110/10 88/117/10 84/118/10 +f 82/119/9 85/120/9 81/116/9 +f 84/121/11 86/122/11 82/119/11 +f 90/123/14 91/124/14 89/125/14 +f 95/126/13 93/127/13 94/128/13 +f 91/129/9 94/128/9 89/130/9 +f 102/131/14 103/132/14 101/133/14 +f 90/123/10 96/134/10 92/135/10 +f 99/136/13 98/137/13 97/138/13 +f 97/139/12 103/132/12 99/136/12 +f 99/136/10 104/140/10 100/141/10 +f 98/142/9 101/143/9 97/139/9 +f 100/144/11 102/145/11 98/142/11 +f 107/146/13 106/147/13 105/148/13 +f 110/149/14 111/150/14 109/151/14 +f 105/152/12 111/150/12 107/146/12 +f 107/146/10 112/153/10 108/154/10 +f 106/155/9 109/156/9 105/152/9 +f 108/157/11 110/158/11 106/155/11 +f 114/159/14 115/160/14 113/161/14 +f 119/162/13 117/163/13 118/164/13 +f 115/165/9 118/164/9 113/166/9 +f 114/159/10 120/167/10 116/168/10 +f 127/169/9 124/170/9 122/171/9 +f 125/172/10 121/173/10 123/174/10 +f 128/175/13 123/174/13 124/170/13 +f 126/176/14 122/177/14 121/173/14 +f 131/178/14 135/179/14 136/180/14 +f 129/181/13 134/182/13 133/183/13 +f 132/184/10 136/180/10 134/182/10 +f 130/185/9 133/183/9 135/186/9 +f 143/187/9 140/188/9 138/189/9 +f 141/190/10 137/191/10 139/192/10 +f 171/193/14 175/194/14 176/195/14 +f 169/196/13 174/197/13 173/198/13 +f 160/199/13 155/200/13 156/201/13 +f 158/202/14 154/203/14 153/204/14 +f 159/205/9 156/201/9 154/206/9 +f 157/207/10 153/204/10 155/200/10 +f 144/208/13 139/192/13 140/188/13 +f 142/209/14 138/210/14 137/191/14 +f 147/211/14 151/212/14 152/213/14 +f 145/214/13 150/215/13 149/216/13 +f 148/217/10 152/213/10 150/215/10 +f 146/218/9 149/216/9 151/219/9 +f 167/220/9 164/221/9 162/222/9 +f 165/223/10 161/224/10 163/225/10 +f 168/226/13 163/225/13 164/221/13 +f 166/227/14 162/228/14 161/224/14 +f 172/229/10 176/195/10 174/197/10 +f 170/230/9 173/198/9 175/231/9 +f 178/232/11 179/233/11 177/234/11 +f 183/235/12 182/236/12 181/237/12 +f 191/238/12 187/239/12 188/240/12 +f 185/241/11 189/242/11 186/243/11 +f 199/244/12 195/245/12 196/246/12 +f 193/247/11 197/248/11 194/249/11 +f 203/250/12 202/251/12 201/252/12 +f 206/253/11 207/254/11 205/255/11 +f 211/256/11 215/257/11 212/258/11 +f 213/259/12 209/260/12 210/261/12 +f 219/262/11 223/263/11 220/264/11 +f 221/265/12 217/266/12 218/267/12 +f 57/71/9 60/93/9 59/72/9 +f 61/74/9 64/88/9 63/75/9 +f 67/77/10 68/92/10 65/78/10 +f 71/80/10 72/87/10 69/81/10 +f 60/83/11 68/268/11 67/84/11 +f 58/86/12 66/94/12 65/78/12 +f 61/74/13 69/81/13 72/87/13 +f 63/89/14 71/96/14 70/90/14 +f 57/71/13 65/78/13 68/92/13 +f 59/85/14 67/84/14 66/94/14 +f 64/95/11 72/269/11 71/96/11 +f 62/91/12 70/90/12 69/81/12 +f 75/97/13 76/105/13 74/98/13 +f 78/100/14 80/104/14 79/101/14 +f 73/103/12 77/107/12 79/101/12 +f 75/97/10 79/101/10 80/104/10 +f 74/106/9 78/109/9 77/107/9 +f 76/108/11 80/270/11 78/109/11 +f 83/110/13 84/118/13 82/111/13 +f 86/113/14 88/117/14 87/114/14 +f 81/116/12 85/120/12 87/114/12 +f 83/110/10 87/114/10 88/117/10 +f 82/119/9 86/122/9 85/120/9 +f 84/121/11 88/271/11 86/122/11 +f 90/123/14 92/135/14 91/124/14 +f 95/126/13 96/134/13 93/127/13 +f 91/129/9 95/126/9 94/128/9 +f 102/131/14 104/140/14 103/132/14 +f 90/123/10 93/127/10 96/134/10 +f 99/136/13 100/141/13 98/137/13 +f 97/139/12 101/143/12 103/132/12 +f 99/136/10 103/132/10 104/140/10 +f 98/142/9 102/145/9 101/143/9 +f 100/144/11 104/272/11 102/145/11 +f 107/146/13 108/154/13 106/147/13 +f 110/149/14 112/153/14 111/150/14 +f 105/152/12 109/156/12 111/150/12 +f 107/146/10 111/150/10 112/153/10 +f 106/155/9 110/158/9 109/156/9 +f 108/157/11 112/273/11 110/158/11 +f 114/159/14 116/168/14 115/160/14 +f 119/162/13 120/167/13 117/163/13 +f 115/165/9 119/162/9 118/164/9 +f 114/159/10 117/163/10 120/167/10 +f 127/169/9 128/175/9 124/170/9 +f 125/172/10 126/176/10 121/173/10 +f 128/175/13 125/172/13 123/174/13 +f 126/176/14 127/274/14 122/177/14 +f 131/178/14 130/275/14 135/179/14 +f 129/181/13 132/184/13 134/182/13 +f 132/184/10 131/178/10 136/180/10 +f 130/185/9 129/181/9 133/183/9 +f 143/187/9 144/208/9 140/188/9 +f 141/190/10 142/209/10 137/191/10 +f 171/193/14 170/276/14 175/194/14 +f 169/196/13 172/229/13 174/197/13 +f 160/199/13 157/207/13 155/200/13 +f 158/202/14 159/277/14 154/203/14 +f 159/205/9 160/199/9 156/201/9 +f 157/207/10 158/202/10 153/204/10 +f 144/208/13 141/190/13 139/192/13 +f 142/209/14 143/278/14 138/210/14 +f 147/211/14 146/279/14 151/212/14 +f 145/214/13 148/217/13 150/215/13 +f 148/217/10 147/211/10 152/213/10 +f 146/218/9 145/214/9 149/216/9 +f 167/220/9 168/226/9 164/221/9 +f 165/223/10 166/227/10 161/224/10 +f 168/226/13 165/223/13 163/225/13 +f 166/227/14 167/280/14 162/228/14 +f 172/229/10 171/193/10 176/195/10 +f 170/230/9 169/196/9 173/198/9 +f 178/232/11 180/281/11 179/233/11 +f 183/235/12 184/282/12 182/236/12 +f 191/238/12 192/283/12 187/239/12 +f 185/241/11 190/284/11 189/242/11 +f 199/244/12 200/285/12 195/245/12 +f 193/247/11 198/286/11 197/248/11 +f 203/250/12 204/287/12 202/251/12 +f 206/253/11 208/288/11 207/254/11 +f 211/256/11 216/289/11 215/257/11 +f 213/259/12 214/290/12 209/260/12 +f 219/262/11 224/291/11 223/263/11 +f 221/265/12 222/292/12 217/266/12 +o ABM_Pad +v -1.000000 2.000000 1.000000 +v 1.000000 2.000000 1.000000 +v -1.000000 2.000000 -1.000000 +v 1.000000 2.000000 -1.000000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v -1.000000 1.750000 -1.000000 +v -1.000000 1.750000 1.000000 +v 1.000000 1.750000 1.000000 +v 1.000000 1.750000 -1.000000 +v -0.500000 1.750000 -0.500000 +v -0.500000 1.750000 0.500000 +v 0.500000 1.750000 0.500000 +v 0.500000 1.750000 -0.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v 0.562500 1.750000 0.937500 +v 0.937500 1.750000 0.937500 +v 0.562500 1.750000 0.562500 +v 0.937500 1.750000 0.562500 +v 0.562500 1.000000 0.937500 +v 0.937500 1.000000 0.937500 +v 0.562500 1.000000 0.562500 +v 0.937500 1.000000 0.562500 +v -0.500000 1.000000 -1.250000 +v 0.500000 1.000000 -1.250000 +v -0.500000 1.000000 -1.750000 +v 0.500000 1.000000 -1.750000 +v -0.500000 1.500000 -1.625000 +v -0.500000 1.375000 -1.750000 +v -0.500000 1.375000 -1.250000 +v -0.500000 1.500000 -1.375000 +v 0.500000 1.500000 -1.375000 +v 0.500000 1.375000 -1.250000 +v 0.500000 1.375000 -1.750000 +v 0.500000 1.500000 -1.625000 +v 0.750000 1.750000 0.562500 +v 0.750000 1.000000 0.562500 +v 0.750000 1.750000 -0.562500 +v 0.750000 1.000000 -0.562500 +v 0.500000 1.000000 1.750000 +v 1.000000 1.000000 1.750000 +v 0.500000 1.000000 1.250000 +v 1.000000 1.000000 1.250000 +v -1.000000 1.000000 1.750000 +v -0.500000 1.000000 1.750000 +v -1.000000 1.000000 1.250000 +v -0.500000 1.000000 1.250000 +v 0.500000 11.000000 1.250000 +v 0.500000 11.000000 1.750000 +v 1.000000 11.000000 1.750000 +v 1.000000 11.000000 1.250000 +v -1.000000 11.000000 1.250000 +v -1.000000 11.000000 1.750000 +v -0.500000 11.000000 1.750000 +v -0.500000 11.000000 1.250000 +v -0.500000 10.750000 1.562500 +v 0.500000 10.000000 1.562500 +v -0.500000 11.000000 1.562500 +v 0.500000 10.250000 1.562500 +v -0.500000 1.250000 1.437500 +v 0.500000 2.000000 1.437500 +v -0.500000 1.000000 1.437500 +v 0.500000 1.750000 1.437500 +v 0.500000 1.250000 1.562500 +v -0.500000 2.000000 1.562500 +v 0.500000 1.000000 1.562500 +v -0.500000 1.750000 1.562500 +v -0.500000 4.750000 1.562500 +v 0.500000 4.000000 1.562500 +v -0.500000 5.000000 1.562500 +v 0.500000 4.250000 1.562500 +v 0.500000 4.750000 1.437500 +v -0.500000 4.000000 1.437500 +v 0.500000 5.000000 1.437500 +v -0.500000 4.250000 1.437500 +v -0.500000 2.500000 1.562500 +v 0.500000 1.750000 1.562500 +v -0.500000 2.750000 1.562500 +v 0.500000 2.000000 1.562500 +v 0.500000 2.500000 1.437500 +v -0.500000 1.750000 1.437500 +v 0.500000 2.750000 1.437500 +v -0.500000 2.000000 1.437500 +v -0.500000 2.750000 1.437500 +v 0.500000 3.500000 1.437500 +v -0.500000 2.500000 1.437500 +v 0.500000 3.250000 1.437500 +v 0.500000 2.750000 1.562500 +v -0.500000 3.500000 1.562500 +v 0.500000 2.500000 1.562500 +v -0.500000 3.250000 1.562500 +v -0.500000 3.500000 1.437500 +v 0.500000 4.250000 1.437500 +v -0.500000 3.250000 1.437500 +v 0.500000 4.000000 1.437500 +v 0.500000 3.500000 1.562500 +v -0.500000 4.250000 1.562500 +v 0.500000 3.250000 1.562500 +v -0.500000 4.000000 1.562500 +v -0.500000 7.000000 1.562500 +v 0.500000 6.250000 1.562500 +v -0.500000 7.250000 1.562500 +v 0.500000 6.500000 1.562500 +v 0.500000 7.000000 1.437500 +v -0.500000 6.250000 1.437500 +v 0.500000 7.250000 1.437500 +v -0.500000 6.500000 1.437500 +v 0.500000 10.750000 1.437500 +v -0.500000 10.000000 1.437500 +v 0.500000 11.000000 1.437500 +v -0.500000 10.250000 1.437500 +v -0.500000 6.250000 1.562500 +v 0.500000 5.500000 1.562500 +v -0.500000 6.500000 1.562500 +v 0.500000 5.750000 1.562500 +v 0.500000 6.250000 1.437500 +v -0.500000 5.500000 1.437500 +v 0.500000 6.500000 1.437500 +v -0.500000 5.750000 1.437500 +v -0.500000 5.000000 1.437500 +v 0.500000 5.750000 1.437500 +v -0.500000 4.750000 1.437500 +v 0.500000 5.500000 1.437500 +v 0.500000 5.000000 1.562500 +v -0.500000 5.750000 1.562500 +v 0.500000 4.750000 1.562500 +v -0.500000 5.500000 1.562500 +v -0.500000 7.250000 1.437500 +v 0.500000 8.000000 1.437500 +v -0.500000 7.000000 1.437500 +v 0.500000 7.750000 1.437500 +v 0.500000 7.250000 1.562500 +v -0.500000 8.000000 1.562500 +v 0.500000 7.000000 1.562500 +v -0.500000 7.750000 1.562500 +v -0.500000 8.500000 1.562500 +v 0.500000 7.750000 1.562500 +v -0.500000 8.750000 1.562500 +v 0.500000 8.000000 1.562500 +v 0.500000 8.500000 1.437500 +v -0.500000 7.750000 1.437500 +v 0.500000 8.750000 1.437500 +v -0.500000 8.000000 1.437500 +v -0.500000 8.750000 1.437500 +v 0.500000 9.500000 1.437500 +v -0.500000 8.500000 1.437500 +v 0.500000 9.250000 1.437500 +v 0.500000 8.750000 1.562500 +v -0.500000 9.500000 1.562500 +v 0.500000 8.500000 1.562500 +v -0.500000 9.250000 1.562500 +v -0.500000 9.500000 1.437500 +v 0.500000 10.250000 1.437500 +v -0.500000 9.250000 1.437500 +v 0.500000 10.000000 1.437500 +v 0.500000 9.500000 1.562500 +v -0.500000 10.250000 1.562500 +v 0.500000 9.250000 1.562500 +v -0.500000 10.000000 1.562500 +v -0.937500 1.000000 3.937500 +v -0.562500 1.000000 3.937500 +v -0.937500 1.000000 3.562500 +v -0.562500 1.000000 3.562500 +v -0.937500 2.812500 1.750000 +v -0.562500 2.812500 1.750000 +v -0.937500 3.187500 1.750000 +v -0.562500 3.187500 1.750000 +v 0.562500 1.000000 3.937500 +v 0.937500 1.000000 3.937500 +v 0.562500 1.000000 3.562500 +v 0.937500 1.000000 3.562500 +v 0.562500 2.812500 1.750000 +v 0.937500 2.812500 1.750000 +v 0.562500 3.187500 1.750000 +v 0.937500 3.187500 1.750000 +v -0.500000 10.750000 1.562500 +v 0.500000 10.000000 1.562500 +v -0.500000 11.000000 1.562500 +v 0.500000 10.250000 1.562500 +v -0.500000 1.250000 1.437500 +v 0.500000 2.000000 1.437500 +v -0.500000 1.000000 1.437500 +v 0.500000 1.750000 1.437500 +v 0.500000 1.250000 1.562500 +v -0.500000 2.000000 1.562500 +v 0.500000 1.000000 1.562500 +v -0.500000 1.750000 1.562500 +v -0.500000 4.750000 1.562500 +v 0.500000 4.000000 1.562500 +v -0.500000 5.000000 1.562500 +v 0.500000 4.250000 1.562500 +v 0.500000 4.750000 1.437500 +v -0.500000 4.000000 1.437500 +v 0.500000 5.000000 1.437500 +v -0.500000 4.250000 1.437500 +v -0.500000 2.500000 1.562500 +v 0.500000 1.750000 1.562500 +v -0.500000 2.750000 1.562500 +v 0.500000 2.000000 1.562500 +v 0.500000 2.500000 1.437500 +v -0.500000 1.750000 1.437500 +v 0.500000 2.750000 1.437500 +v -0.500000 2.000000 1.437500 +v -0.500000 2.750000 1.437500 +v 0.500000 3.500000 1.437500 +v -0.500000 2.500000 1.437500 +v 0.500000 3.250000 1.437500 +v 0.500000 2.750000 1.562500 +v -0.500000 3.500000 1.562500 +v 0.500000 2.500000 1.562500 +v -0.500000 3.250000 1.562500 +v -0.500000 3.500000 1.437500 +v 0.500000 4.250000 1.437500 +v -0.500000 3.250000 1.437500 +v 0.500000 4.000000 1.437500 +v 0.500000 3.500000 1.562500 +v -0.500000 4.250000 1.562500 +v 0.500000 3.250000 1.562500 +v -0.500000 4.000000 1.562500 +v -0.500000 7.000000 1.562500 +v 0.500000 6.250000 1.562500 +v -0.500000 7.250000 1.562500 +v 0.500000 6.500000 1.562500 +v 0.500000 7.000000 1.437500 +v -0.500000 6.250000 1.437500 +v 0.500000 7.250000 1.437500 +v -0.500000 6.500000 1.437500 +v 0.500000 10.750000 1.437500 +v -0.500000 10.000000 1.437500 +v 0.500000 11.000000 1.437500 +v -0.500000 10.250000 1.437500 +v -0.500000 6.250000 1.562500 +v 0.500000 5.500000 1.562500 +v -0.500000 6.500000 1.562500 +v 0.500000 5.750000 1.562500 +v 0.500000 6.250000 1.437500 +v -0.500000 5.500000 1.437500 +v 0.500000 6.500000 1.437500 +v -0.500000 5.750000 1.437500 +v -0.500000 5.000000 1.437500 +v 0.500000 5.750000 1.437500 +v -0.500000 4.750000 1.437500 +v 0.500000 5.500000 1.437500 +v 0.500000 5.000000 1.562500 +v -0.500000 5.750000 1.562500 +v 0.500000 4.750000 1.562500 +v -0.500000 5.500000 1.562500 +v -0.500000 7.250000 1.437500 +v 0.500000 8.000000 1.437500 +v -0.500000 7.000000 1.437500 +v 0.500000 7.750000 1.437500 +v 0.500000 7.250000 1.562500 +v -0.500000 8.000000 1.562500 +v 0.500000 7.000000 1.562500 +v -0.500000 7.750000 1.562500 +v -0.500000 8.500000 1.562500 +v 0.500000 7.750000 1.562500 +v -0.500000 8.750000 1.562500 +v 0.500000 8.000000 1.562500 +v 0.500000 8.500000 1.437500 +v -0.500000 7.750000 1.437500 +v 0.500000 8.750000 1.437500 +v -0.500000 8.000000 1.437500 +v -0.500000 8.750000 1.437500 +v 0.500000 9.500000 1.437500 +v -0.500000 8.500000 1.437500 +v 0.500000 9.250000 1.437500 +v 0.500000 8.750000 1.562500 +v -0.500000 9.500000 1.562500 +v 0.500000 8.500000 1.562500 +v -0.500000 9.250000 1.562500 +v -0.500000 9.500000 1.437500 +v 0.500000 10.250000 1.437500 +v -0.500000 9.250000 1.437500 +v 0.500000 10.000000 1.437500 +v 0.500000 9.500000 1.562500 +v -0.500000 10.250000 1.562500 +v 0.500000 9.250000 1.562500 +v -0.500000 10.000000 1.562500 +v 0.562500 1.750000 -0.562500 +v 0.937500 1.750000 -0.562500 +v 0.562500 1.750000 -0.937500 +v 0.937500 1.750000 -0.937500 +v 0.562500 1.000000 -0.562500 +v 0.937500 1.000000 -0.562500 +v 0.562500 1.000000 -0.937500 +v 0.937500 1.000000 -0.937500 +v -0.937500 1.750000 0.937500 +v -0.562500 1.750000 0.937500 +v -0.937500 1.750000 0.562500 +v -0.562500 1.750000 0.562500 +v -0.937500 1.000000 0.937500 +v -0.562500 1.000000 0.937500 +v -0.937500 1.000000 0.562500 +v -0.562500 1.000000 0.562500 +v -0.937500 1.750000 -0.562500 +v -0.562500 1.750000 -0.562500 +v -0.937500 1.750000 -0.937500 +v -0.562500 1.750000 -0.937500 +v -0.937500 1.000000 -0.562500 +v -0.562500 1.000000 -0.562500 +v -0.937500 1.000000 -0.937500 +v -0.562500 1.000000 -0.937500 +v -0.750000 1.750000 -0.562500 +v -0.750000 1.000000 -0.562500 +v -0.750000 1.750000 0.562500 +v -0.750000 1.000000 0.562500 +v 0.562500 1.750000 -0.750000 +v 0.562500 1.000000 -0.750000 +v -0.562500 1.750000 -0.750000 +v -0.562500 1.000000 -0.750000 +v -0.562500 1.750000 0.750000 +v -0.562500 1.000000 0.750000 +v 0.562500 1.750000 0.750000 +v 0.562500 1.000000 0.750000 +vt 0.083333 0.250000 +vt 0.000000 0.386364 +vt 0.000000 0.204545 +vt 0.000000 0.000000 +vt 0.083333 0.136364 +vt 0.000000 0.181818 +vt 0.083333 0.340909 +vt 0.333333 0.386364 +vt 0.250000 0.340909 +vt 0.333333 0.204545 +vt 0.250000 0.250000 +vt 0.333333 -0.000000 +vt 0.083333 0.045455 +vt 0.333333 0.181818 +vt 0.250000 0.045455 +vt 0.250000 0.136364 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt -0.000000 0.204545 +vt 0.333333 0.181818 +vt 0.333333 0.204545 +vt -0.000000 0.204545 +vt 0.333333 0.181818 +vt 0.333333 0.204545 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt -0.000000 0.204545 +vt 0.333333 0.181818 +vt 0.333333 0.204545 +vt 0.083333 0.340909 +vt 0.250000 0.250000 +vt 0.250000 0.340909 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.208333 0.954545 +vt 0.145833 0.863636 +vt 0.208333 0.863636 +vt 0.083333 0.863636 +vt 0.125000 0.954545 +vt 0.083333 0.954545 +vt 0.000000 0.863636 +vt 0.062500 0.954545 +vt 0.000000 0.954545 +vt 0.125000 0.863636 +vt 0.062500 0.852273 +vt 0.062500 0.863636 +vt 0.145833 0.954545 +vt 0.145833 0.965909 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.333333 0.909091 +vt 0.416667 0.954545 +vt 0.333333 0.954545 +vt 0.333333 0.909091 +vt 0.416667 0.954545 +vt 0.333333 0.954545 +vt 0.666667 0.000000 +vt 0.583333 0.909091 +vt 0.583333 0.000000 +vt 0.416667 -0.000000 +vt 0.333333 -0.000000 +vt 0.583333 0.000000 +vt 0.500000 0.909091 +vt 0.500000 0.000000 +vt 0.416667 -0.000000 +vt 0.333333 -0.000000 +vt 0.500000 0.909091 +vt 0.500000 0.000000 +vt 0.416667 0.909091 +vt 0.666667 0.000000 +vt 0.583333 0.909091 +vt 0.416667 0.909091 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.062500 0.545455 +vt 0.000000 0.784091 +vt -0.000000 0.579545 +vt 0.125000 0.545455 +vt 0.062500 0.818182 +vt 0.250000 0.579545 +vt 0.187500 0.784091 +vt 0.187500 0.579545 +vt 0.125000 0.818182 +vt 0.062500 0.545455 +vt 0.000000 0.784091 +vt -0.000000 0.579545 +vt 0.125000 0.545455 +vt 0.062500 0.818182 +vt 0.250000 0.579545 +vt 0.187500 0.784091 +vt 0.187500 0.579545 +vt 0.125000 0.818182 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.083333 0.113636 +vt 0.083333 0.113636 +vt -0.000000 0.181818 +vt -0.000000 0.181818 +vt 0.083333 0.113636 +vt 0.083333 0.113636 +vt -0.000000 0.181818 +vt 0.083333 0.250000 +vt -0.000000 0.386364 +vt 0.062500 0.818182 +vt 0.145833 0.818182 +vt 0.145833 0.852273 +vt 0.145833 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.965909 +vt 0.187500 0.522727 +vt 0.666667 0.909091 +vt 0.666667 0.909091 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.250000 0.784091 +vt 0.250000 0.784091 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.386364 +vt -0.000000 0.386364 +vt -0.000000 0.386364 +vt 0.187500 0.522727 +vt 0.187500 0.522727 +vt 0.187500 0.522727 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +s off +f 230/293/15 225/294/15 226/295/15 +f 234/296/16 239/297/16 235/298/16 +f 229/299/15 227/300/15 225/294/15 +f 231/301/15 228/302/15 227/300/15 +f 232/303/15 226/295/15 228/302/15 +f 233/304/16 238/305/16 234/296/16 +f 236/306/16 237/307/16 233/304/16 +f 235/298/16 240/308/16 236/306/16 +f 231/309/17 240/310/17 232/311/17 +f 230/312/18 238/313/18 229/314/18 +f 228/315/18 233/316/18 227/317/18 +f 225/318/17 235/319/17 226/320/17 +f 232/321/19 239/322/19 230/323/19 +f 229/324/20 237/325/20 231/326/20 +f 226/295/20 236/306/20 228/302/20 +f 227/327/19 234/328/19 225/329/19 +f 241/330/15 244/331/15 243/332/15 +f 246/333/20 252/334/20 248/335/20 +f 247/336/19 249/337/19 245/338/19 +f 248/335/18 251/339/18 247/340/18 +f 245/338/17 250/341/17 246/333/17 +f 255/342/18 263/343/18 256/344/18 +f 261/345/15 257/346/15 260/347/15 +f 254/348/17 259/349/17 253/350/17 +f 264/351/20 261/345/20 262/352/20 +f 262/353/21 260/347/21 259/349/21 +f 258/354/22 264/351/22 263/343/22 +f 260/347/19 257/346/19 258/355/19 +f 268/356/20 265/357/20 266/358/20 +f 279/359/15 277/360/15 278/361/15 +f 283/362/15 281/363/15 282/364/15 +f 270/365/17 278/366/17 269/367/17 +f 276/368/20 283/362/20 274/369/20 +f 273/370/19 281/371/19 275/372/19 +f 272/373/20 279/359/20 270/374/20 +f 269/367/19 277/375/19 271/376/19 +f 275/372/18 284/377/18 276/368/18 +f 274/378/17 282/379/17 273/370/17 +f 271/376/18 280/380/18 272/373/18 +f 285/381/18 288/382/18 286/383/18 +f 292/384/18 289/385/18 290/386/18 +f 296/387/18 293/388/18 295/389/18 +f 297/390/18 300/391/18 298/392/18 +f 301/393/18 304/394/18 303/395/18 +f 305/396/18 308/397/18 306/398/18 +f 309/399/18 312/400/18 311/401/18 +f 316/402/18 313/403/18 314/404/18 +f 320/405/18 317/406/18 319/407/18 +f 324/408/18 321/409/18 322/410/18 +f 328/411/18 325/412/18 327/413/18 +f 329/414/18 332/415/18 330/416/18 +f 333/417/18 336/418/18 335/419/18 +f 337/420/18 340/421/18 339/422/18 +f 341/423/18 344/424/18 342/425/18 +f 345/426/18 348/427/18 347/428/18 +f 352/429/18 349/430/18 350/431/18 +f 356/432/18 353/433/18 355/434/18 +f 360/435/18 357/436/18 358/437/18 +f 364/438/18 361/439/18 363/440/18 +f 365/441/18 368/442/18 366/443/18 +f 369/444/18 372/445/18 371/446/18 +f 376/447/18 373/448/18 374/449/18 +f 380/450/18 377/451/18 379/452/18 +f 384/453/18 381/454/18 382/455/18 +f 388/456/18 385/457/18 387/458/18 +f 389/459/19 393/460/19 391/461/19 +f 390/462/21 395/463/21 389/459/21 +f 391/464/23 394/465/23 392/466/23 +f 392/466/20 396/467/20 390/462/20 +f 397/468/19 401/469/19 399/470/19 +f 398/471/21 403/472/21 397/468/21 +f 399/473/23 402/474/23 400/475/23 +f 400/475/20 404/476/20 398/471/20 +f 405/477/17 408/478/17 407/479/17 +f 412/480/17 409/481/17 411/482/17 +f 416/483/17 413/484/17 414/485/17 +f 417/486/17 420/487/17 419/488/17 +f 421/489/17 424/490/17 422/491/17 +f 425/492/17 428/493/17 427/494/17 +f 429/495/17 432/496/17 430/497/17 +f 436/498/17 433/499/17 435/500/17 +f 440/501/17 437/502/17 438/503/17 +f 444/504/17 441/505/17 443/506/17 +f 448/507/17 445/508/17 446/509/17 +f 449/510/17 452/511/17 451/512/17 +f 453/513/17 456/514/17 454/515/17 +f 457/516/17 460/517/17 458/518/17 +f 461/519/17 464/520/17 463/521/17 +f 465/522/17 468/523/17 466/524/17 +f 472/525/17 469/526/17 471/527/17 +f 476/528/17 473/529/17 474/530/17 +f 480/531/17 477/532/17 479/533/17 +f 484/534/17 481/535/17 482/536/17 +f 485/537/17 488/538/17 487/539/17 +f 489/540/17 492/541/17 490/542/17 +f 496/543/17 493/544/17 495/545/17 +f 500/546/17 497/547/17 498/548/17 +f 504/549/17 501/550/17 503/551/17 +f 508/552/17 505/553/17 506/554/17 +f 510/555/20 516/556/20 512/557/20 +f 511/558/19 513/559/19 509/560/19 +f 512/557/18 515/561/18 511/562/18 +f 509/560/17 514/563/17 510/555/17 +f 518/564/20 524/565/20 520/566/20 +f 519/567/19 521/568/19 517/569/19 +f 520/566/18 523/570/18 519/571/18 +f 517/569/17 522/572/17 518/564/17 +f 526/573/20 532/574/20 528/575/20 +f 527/576/19 529/577/19 525/578/19 +f 528/575/18 531/579/18 527/580/18 +f 525/578/17 530/581/17 526/573/17 +f 536/582/19 533/583/19 534/584/19 +f 540/585/18 537/586/18 538/587/18 +f 544/588/17 541/589/17 542/590/17 +f 230/293/15 229/299/15 225/294/15 +f 234/296/16 238/305/16 239/297/16 +f 229/299/15 231/301/15 227/300/15 +f 231/301/15 232/303/15 228/302/15 +f 232/303/15 230/293/15 226/295/15 +f 233/304/16 237/307/16 238/305/16 +f 236/306/16 240/308/16 237/307/16 +f 235/298/16 239/297/16 240/308/16 +f 231/309/17 237/591/17 240/310/17 +f 230/312/18 239/592/18 238/313/18 +f 228/315/18 236/593/18 233/316/18 +f 225/318/17 234/594/17 235/319/17 +f 232/321/19 240/595/19 239/322/19 +f 229/324/20 238/596/20 237/325/20 +f 226/295/20 235/298/20 236/306/20 +f 227/327/19 233/597/19 234/328/19 +f 241/330/15 242/598/15 244/331/15 +f 246/333/20 250/341/20 252/334/20 +f 247/336/19 251/599/19 249/337/19 +f 248/335/18 252/334/18 251/339/18 +f 245/338/17 249/337/17 250/341/17 +f 255/342/18 258/354/18 263/343/18 +f 261/345/15 264/351/15 257/346/15 +f 254/348/17 262/353/17 259/349/17 +f 262/352/20 254/600/20 256/601/20 +f 256/601/20 263/602/20 262/352/20 +f 263/602/20 264/351/20 262/352/20 +f 262/353/21 261/345/21 260/347/21 +f 258/354/22 257/346/22 264/351/22 +f 258/355/19 255/603/19 253/604/19 +f 253/604/19 259/605/19 258/355/19 +f 259/605/19 260/347/19 258/355/19 +f 268/356/20 267/606/20 265/357/20 +f 279/359/15 280/380/15 277/360/15 +f 283/362/15 284/377/15 281/363/15 +f 270/365/17 279/607/17 278/366/17 +f 276/368/20 284/377/20 283/362/20 +f 273/370/19 282/379/19 281/371/19 +f 272/373/20 280/380/20 279/359/20 +f 269/367/19 278/366/19 277/375/19 +f 275/372/18 281/371/18 284/377/18 +f 274/378/17 283/608/17 282/379/17 +f 271/376/18 277/375/18 280/380/18 +f 285/381/18 287/609/18 288/382/18 +f 292/384/18 291/610/18 289/385/18 +f 296/387/18 294/611/18 293/388/18 +f 297/390/18 299/612/18 300/391/18 +f 301/393/18 302/613/18 304/394/18 +f 305/396/18 307/614/18 308/397/18 +f 309/399/18 310/615/18 312/400/18 +f 316/402/18 315/616/18 313/403/18 +f 320/405/18 318/617/18 317/406/18 +f 324/408/18 323/618/18 321/409/18 +f 328/411/18 326/619/18 325/412/18 +f 329/414/18 331/620/18 332/415/18 +f 333/417/18 334/621/18 336/418/18 +f 337/420/18 338/622/18 340/421/18 +f 341/423/18 343/623/18 344/424/18 +f 345/426/18 346/624/18 348/427/18 +f 352/429/18 351/625/18 349/430/18 +f 356/432/18 354/626/18 353/433/18 +f 360/435/18 359/627/18 357/436/18 +f 364/438/18 362/628/18 361/439/18 +f 365/441/18 367/629/18 368/442/18 +f 369/444/18 370/630/18 372/445/18 +f 376/447/18 375/631/18 373/448/18 +f 380/450/18 378/632/18 377/451/18 +f 384/453/18 383/633/18 381/454/18 +f 388/456/18 386/634/18 385/457/18 +f 389/459/19 395/463/19 393/460/19 +f 390/462/21 396/467/21 395/463/21 +f 391/464/23 393/635/23 394/465/23 +f 392/466/20 394/465/20 396/467/20 +f 397/468/19 403/472/19 401/469/19 +f 398/471/21 404/476/21 403/472/21 +f 399/473/23 401/636/23 402/474/23 +f 400/475/20 402/474/20 404/476/20 +f 405/477/17 406/637/17 408/478/17 +f 412/480/17 410/638/17 409/481/17 +f 416/483/17 415/639/17 413/484/17 +f 417/486/17 418/640/17 420/487/17 +f 421/489/17 423/641/17 424/490/17 +f 425/492/17 426/642/17 428/493/17 +f 429/495/17 431/643/17 432/496/17 +f 436/498/17 434/644/17 433/499/17 +f 440/501/17 439/645/17 437/502/17 +f 444/504/17 442/646/17 441/505/17 +f 448/507/17 447/647/17 445/508/17 +f 449/510/17 450/648/17 452/511/17 +f 453/513/17 455/649/17 456/514/17 +f 457/516/17 459/650/17 460/517/17 +f 461/519/17 462/651/17 464/520/17 +f 465/522/17 467/652/17 468/523/17 +f 472/525/17 470/653/17 469/526/17 +f 476/528/17 475/654/17 473/529/17 +f 480/531/17 478/655/17 477/532/17 +f 484/534/17 483/656/17 481/535/17 +f 485/537/17 486/657/17 488/538/17 +f 489/540/17 491/658/17 492/541/17 +f 496/543/17 494/659/17 493/544/17 +f 500/546/17 499/660/17 497/547/17 +f 504/549/17 502/661/17 501/550/17 +f 508/552/17 507/662/17 505/553/17 +f 510/555/20 514/563/20 516/556/20 +f 511/558/19 515/663/19 513/559/19 +f 512/557/18 516/556/18 515/561/18 +f 509/560/17 513/559/17 514/563/17 +f 518/564/20 522/572/20 524/565/20 +f 519/567/19 523/664/19 521/568/19 +f 520/566/18 524/565/18 523/570/18 +f 517/569/17 521/568/17 522/572/17 +f 526/573/20 530/581/20 532/574/20 +f 527/576/19 531/665/19 529/577/19 +f 528/575/18 532/574/18 531/579/18 +f 525/578/17 529/577/17 530/581/17 +f 536/582/19 535/666/19 533/583/19 +f 540/585/18 539/667/18 537/586/18 +f 544/588/17 543/668/17 541/589/17 +o Atlas_Rope +v -2.116117 11.000000 2.292893 +v -2.292893 11.000000 2.116117 +v -2.292893 11.000000 2.469670 +v -2.469670 11.000000 2.292893 +v -1.762563 16.250000 1.939340 +v -1.939340 16.250000 1.762563 +v -1.939340 16.250000 2.116117 +v -2.116117 16.250000 1.939340 +v -1.409010 16.750000 1.585786 +v -1.585786 16.750000 1.409010 +v -1.409010 17.000000 1.585786 +v -1.585786 17.000000 1.409010 +v -1.055456 17.000000 0.878680 +v -0.878680 17.000000 1.055456 +v -0.701903 16.750000 0.878680 +v -0.878680 16.750000 0.701903 +v -0.878680 16.750000 1.055456 +v -1.055456 16.750000 0.878680 +v -0.701903 15.250000 0.878680 +v -0.878680 15.250000 0.701903 +v -0.878680 15.250000 1.055456 +v -1.055456 15.250000 0.878680 +v 0.005204 14.250000 0.171573 +v -0.171573 14.250000 -0.005204 +v -0.171573 14.250000 0.348350 +v -0.348350 14.250000 0.171573 +vt 0.897436 0.395161 +vt 0.884615 0.346774 +vt 0.897436 0.346774 +vt 0.846154 -0.000000 +vt 0.858974 0.338710 +vt 0.846154 0.338710 +vt 0.884615 -0.000000 +vt 0.871795 0.338710 +vt 0.871795 -0.000000 +vt 0.858974 -0.000000 +vt 0.897436 -0.000000 +vt 0.884615 0.338710 +vt 0.858974 0.451613 +vt 0.846154 0.467742 +vt 0.846154 0.451613 +vt 0.858974 0.403226 +vt 0.846154 0.346774 +vt 0.884615 0.395161 +vt 0.871795 0.451613 +vt 0.897436 0.403226 +vt 0.884615 0.451613 +vt 0.884615 0.403226 +vt 0.871795 0.403226 +vt 0.871795 0.467742 +vt 0.884615 0.532258 +vt 0.897436 0.467742 +vt 0.897436 0.532258 +vt 0.884615 0.629032 +vt 0.897436 0.629032 +vt 0.871795 0.629032 +vt 0.858974 0.629032 +vt 0.871795 0.532258 +vt 0.846154 0.629032 +vt 0.858974 0.532258 +vt 0.884615 0.467742 +vt 0.858974 0.467742 +vt 0.871795 0.467742 +vt 0.846154 0.532258 +vt 0.897436 0.338710 +vt 0.846154 0.403226 +vt 0.846154 0.395161 +vt 0.897436 0.451613 +vt 0.884615 0.467742 +vt 0.858974 0.467742 +vt 0.846154 0.467742 +vn 0.5000 -0.7071 -0.5000 +vn -0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.7039 0.0948 0.7039 +vn 0.7039 -0.0948 -0.7039 +vn -0.5000 0.7071 0.5000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 0.7071 -0.5000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.5000 -0.7071 0.5000 +s off +f 554/669/24 549/670/24 550/671/24 +f 546/672/25 552/673/25 550/674/25 +f 545/675/26 551/676/26 547/677/26 +f 547/677/27 552/673/27 548/678/27 +f 546/679/28 549/680/28 545/675/28 +f 557/681/25 560/682/25 562/683/25 +f 556/684/25 550/685/25 552/673/25 +f 551/676/29 556/684/29 552/673/29 +f 553/686/26 551/676/26 549/670/26 +f 556/684/30 558/687/30 557/681/30 +f 554/688/31 561/689/31 553/690/31 +f 561/689/26 558/687/26 555/691/26 +f 559/692/32 557/681/32 558/687/32 +f 564/693/25 570/694/25 566/695/25 +f 560/696/25 566/695/25 562/697/25 +f 559/698/33 564/693/33 560/696/33 +f 561/699/26 563/700/26 559/698/26 +f 562/701/34 565/702/34 561/699/34 +f 563/700/32 568/703/32 564/693/32 +f 563/700/26 569/704/26 567/705/26 +f 566/706/35 569/704/35 565/702/35 +f 554/669/24 553/686/24 549/670/24 +f 546/672/25 548/678/25 552/673/25 +f 545/675/26 549/680/26 551/676/26 +f 547/677/27 551/676/27 552/673/27 +f 546/679/28 550/707/28 549/680/28 +f 562/683/25 554/708/25 556/684/25 +f 556/684/25 557/681/25 562/683/25 +f 556/684/25 554/709/25 550/685/25 +f 551/676/29 555/691/29 556/684/29 +f 553/686/26 555/691/26 551/676/26 +f 556/684/30 555/691/30 558/687/30 +f 554/688/31 562/710/31 561/689/31 +f 555/691/26 553/690/26 561/689/26 +f 561/689/26 559/711/26 558/687/26 +f 559/692/32 560/712/32 557/681/32 +f 564/693/25 568/703/25 570/694/25 +f 560/696/25 564/693/25 566/695/25 +f 559/698/33 563/700/33 564/693/33 +f 561/699/26 565/702/26 563/700/26 +f 562/701/34 566/706/34 565/702/34 +f 563/700/32 567/705/32 568/703/32 +f 563/700/26 565/702/26 569/704/26 +f 566/706/35 570/713/35 569/704/35 +o Atlas_Pivot +v 0.750000 1.500000 -3.750000 +v 1.250000 1.500000 -3.750000 +v 0.750000 1.500000 -4.250000 +v 1.250000 1.500000 -4.250000 +v -1.250000 1.500000 -3.750000 +v -0.750000 1.500000 -3.750000 +v -1.250000 1.500000 -4.250000 +v -0.750000 1.500000 -4.250000 +v 0.750000 2.000000 -2.250000 +v 1.250000 2.000000 -2.250000 +v 0.750000 2.000000 -2.750000 +v 1.250000 2.000000 -2.750000 +v -1.250000 2.000000 -2.250000 +v -0.750000 2.000000 -2.250000 +v -1.250000 2.000000 -2.750000 +v -0.750000 2.000000 -2.750000 +v 0.750000 3.500000 -4.250000 +v 0.750000 3.500000 -3.750000 +v 1.250000 3.500000 -3.750000 +v 1.250000 3.500000 -4.250000 +v -1.250000 3.500000 -4.250000 +v -1.250000 3.500000 -3.750000 +v -0.750000 3.500000 -3.750000 +v -0.750000 3.500000 -4.250000 +v 0.750000 3.500000 -2.750000 +v 0.750000 3.500000 -2.250000 +v 1.250000 3.500000 -2.250000 +v 1.250000 3.500000 -2.750000 +v -1.250000 3.500000 -2.750000 +v -1.250000 3.500000 -2.250000 +v -0.750000 3.500000 -2.250000 +v -0.750000 3.500000 -2.750000 +v 0.812500 3.500000 -3.812500 +v 1.187500 3.500000 -3.812500 +v 0.812500 3.500000 -4.187500 +v 1.187500 3.500000 -4.187500 +v 0.812500 4.500000 -3.812500 +v 1.187500 4.500000 -3.812500 +v 0.812500 4.500000 -4.187500 +v 1.187500 4.500000 -4.187500 +v 0.812500 3.500000 -2.312500 +v 1.187500 3.500000 -2.312500 +v 0.812500 3.500000 -2.687500 +v 1.187500 3.500000 -2.687500 +v 0.812500 4.500000 -2.312500 +v 1.187500 4.500000 -2.312500 +v 0.812500 4.500000 -2.687500 +v 1.187500 4.500000 -2.687500 +v -1.187500 3.500000 -3.812500 +v -0.812500 3.500000 -3.812500 +v -1.187500 3.500000 -4.187500 +v -0.812500 3.500000 -4.187500 +v -1.187500 4.500000 -3.812500 +v -0.812500 4.500000 -3.812500 +v -1.187500 4.500000 -4.187500 +v -0.812500 4.500000 -4.187500 +v -1.187500 3.500000 -2.312500 +v -0.812500 3.500000 -2.312500 +v -1.187500 3.500000 -2.687500 +v -0.812500 3.500000 -2.687500 +v -1.187500 4.500000 -2.312500 +v -0.812500 4.500000 -2.312500 +v -1.187500 4.500000 -2.687500 +v -0.812500 4.500000 -2.687500 +v 1.000000 3.000000 -2.750000 +v 1.000000 2.500000 -2.750000 +v 1.000000 3.000000 -3.750000 +v 1.000000 2.500000 -3.750000 +v -1.000000 3.000000 -2.750000 +v -1.000000 2.500000 -2.750000 +v -1.000000 3.000000 -3.750000 +v -1.000000 2.500000 -3.750000 +v 0.750000 3.000000 -4.000000 +v 0.750000 2.500000 -4.000000 +v -0.750000 3.000000 -4.000000 +v -0.750000 2.500000 -4.000000 +v 0.750000 3.000000 -2.500000 +v 0.750000 2.500000 -2.500000 +v -0.750000 3.000000 -2.500000 +v -0.750000 2.500000 -2.500000 +v 1.000000 3.000000 -2.750000 +v 1.000000 2.500000 -2.750000 +v 1.000000 3.000000 -3.750000 +v 1.000000 2.500000 -3.750000 +v -1.000000 3.000000 -2.750000 +v -1.000000 2.500000 -2.750000 +v -1.000000 3.000000 -3.750000 +v -1.000000 2.500000 -3.750000 +v 0.750000 3.000000 -4.000000 +v 0.750000 2.500000 -4.000000 +v -0.750000 3.000000 -4.000000 +v -0.750000 2.500000 -4.000000 +v 0.750000 3.000000 -2.500000 +v 0.750000 2.500000 -2.500000 +v -0.750000 3.000000 -2.500000 +v -0.750000 2.500000 -2.500000 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.692308 0.870968 +vt 0.717949 0.903226 +vt 0.692308 0.903226 +vt 0.692308 0.870968 +vt 0.717949 0.903226 +vt 0.692308 0.903226 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.769231 0.709677 +vt 0.743590 0.838710 +vt 0.743590 0.709677 +vt 0.717949 0.709677 +vt 0.692308 0.838710 +vt 0.692308 0.709677 +vt 0.769231 0.709677 +vt 0.743590 0.838710 +vt 0.743590 0.709677 +vt 0.794872 0.709677 +vt 0.769231 0.838710 +vt 0.717949 0.709677 +vt 0.794872 0.709677 +vt 0.769231 0.838710 +vt 0.692308 0.838710 +vt 0.692308 0.709677 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.794872 0.741935 +vt 0.769231 0.838710 +vt 0.769231 0.741935 +vt 0.743590 0.741935 +vt 0.717949 0.741935 +vt 0.794872 0.741935 +vt 0.769231 0.838710 +vt 0.769231 0.741935 +vt 0.743590 0.741935 +vt 0.717949 0.741935 +vt 0.692308 0.838710 +vt 0.692308 0.741935 +vt 0.743590 0.838710 +vt 0.692308 0.838710 +vt 0.692308 0.741935 +vt 0.743590 0.838710 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.743590 0.870968 +vt 0.794872 0.903226 +vt 0.743590 0.903226 +vt 0.743590 0.903226 +vt 0.794872 0.870968 +vt 0.794872 0.903226 +vt 0.717949 0.838710 +vt 0.794872 0.870968 +vt 0.717949 0.870968 +vt 0.717949 0.870968 +vt 0.794872 0.838710 +vt 0.794872 0.870968 +vt 0.794872 0.903226 +vt 0.743590 0.870968 +vt 0.743590 0.903226 +vt 0.794872 0.870968 +vt 0.743590 0.903226 +vt 0.794872 0.903226 +vt 0.794872 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.794872 0.838710 +vt 0.717949 0.870968 +vt 0.794872 0.870968 +vt 0.717949 0.870968 +vt 0.717949 0.870968 +vt 0.794872 0.838710 +vt 0.794872 0.838710 +vt 0.794872 0.838710 +vt 0.794872 0.838710 +vt 0.692308 0.967742 +vt 0.692308 0.967742 +vt 0.692308 0.967742 +vt 0.692308 0.967742 +vt 0.794872 0.870968 +vt 0.743590 0.870968 +vt 0.794872 0.838710 +vt 0.717949 0.838710 +vt 0.794872 0.870968 +vt 0.743590 0.870968 +vt 0.794872 0.838710 +vt 0.717949 0.838710 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +s off +f 610/714/36 604/715/36 606/716/36 +f 608/717/37 603/718/37 604/715/37 +f 581/719/38 580/720/38 579/721/38 +f 585/722/38 584/723/38 583/724/38 +f 589/725/39 587/726/39 588/727/39 +f 593/728/39 591/729/39 592/730/39 +f 576/731/37 592/732/37 575/733/37 +f 573/734/40 590/735/40 574/736/40 +f 572/737/37 588/738/37 571/739/37 +f 578/740/36 593/741/36 576/731/36 +f 575/733/41 591/729/41 577/742/41 +f 574/743/36 589/744/36 572/737/36 +f 571/739/41 587/726/41 573/734/41 +f 577/742/40 594/745/40 578/746/40 +f 597/747/39 595/748/39 596/749/39 +f 601/750/39 599/751/39 600/752/39 +f 586/753/36 601/754/36 584/755/36 +f 583/756/41 599/751/41 585/757/41 +f 582/758/36 597/759/36 580/760/36 +f 579/761/41 595/748/41 581/762/41 +f 585/757/40 602/763/40 586/764/40 +f 584/755/37 600/765/37 583/756/37 +f 581/762/40 598/766/40 582/767/40 +f 580/760/37 596/768/37 579/761/37 +f 607/769/41 605/770/41 603/718/41 +f 609/771/40 606/772/40 605/770/40 +f 618/773/36 612/774/36 614/775/36 +f 616/776/37 611/777/37 612/774/37 +f 615/778/41 613/779/41 611/777/41 +f 617/780/40 614/781/40 613/779/40 +f 626/782/36 620/783/36 622/784/36 +f 624/785/37 619/786/37 620/783/37 +f 623/787/41 621/788/41 619/786/41 +f 625/789/40 622/790/40 621/788/40 +f 634/791/36 628/792/36 630/793/36 +f 632/794/37 627/795/37 628/792/37 +f 631/796/41 629/797/41 627/795/41 +f 633/798/40 630/799/40 629/797/40 +f 636/800/36 637/801/36 635/802/36 +f 641/803/41 640/804/41 639/805/41 +f 644/806/40 645/807/40 643/808/40 +f 649/809/37 648/810/37 647/811/37 +f 653/812/41 652/813/41 651/814/41 +f 656/815/36 657/816/36 655/817/36 +f 661/818/37 660/819/37 659/820/37 +f 664/821/40 665/822/40 663/823/40 +f 610/714/36 608/717/36 604/715/36 +f 608/717/37 607/769/37 603/718/37 +f 581/719/38 582/824/38 580/720/38 +f 585/722/38 586/825/38 584/723/38 +f 589/725/39 590/735/39 587/726/39 +f 593/728/39 594/745/39 591/729/39 +f 576/731/37 593/741/37 592/732/37 +f 573/734/40 587/726/40 590/735/40 +f 572/737/37 589/744/37 588/738/37 +f 578/740/36 594/826/36 593/741/36 +f 575/733/41 592/732/41 591/729/41 +f 574/743/36 590/827/36 589/744/36 +f 571/739/41 588/738/41 587/726/41 +f 577/742/40 591/729/40 594/745/40 +f 597/747/39 598/766/39 595/748/39 +f 601/750/39 602/763/39 599/751/39 +f 586/753/36 602/828/36 601/754/36 +f 583/756/41 600/765/41 599/751/41 +f 582/758/36 598/829/36 597/759/36 +f 579/761/41 596/768/41 595/748/41 +f 585/757/40 599/751/40 602/763/40 +f 584/755/37 601/754/37 600/765/37 +f 581/762/40 595/748/40 598/766/40 +f 580/760/37 597/759/37 596/768/37 +f 607/769/41 609/771/41 605/770/41 +f 609/771/40 610/830/40 606/772/40 +f 618/773/36 616/776/36 612/774/36 +f 616/776/37 615/778/37 611/777/37 +f 615/778/41 617/780/41 613/779/41 +f 617/780/40 618/831/40 614/781/40 +f 626/782/36 624/785/36 620/783/36 +f 624/785/37 623/787/37 619/786/37 +f 623/787/41 625/789/41 621/788/41 +f 625/789/40 626/832/40 622/790/40 +f 634/791/36 632/794/36 628/792/36 +f 632/794/37 631/796/37 627/795/37 +f 631/796/41 633/798/41 629/797/41 +f 633/798/40 634/833/40 630/799/40 +f 636/800/36 638/834/36 637/801/36 +f 641/803/41 642/835/41 640/804/41 +f 644/806/40 646/836/40 645/807/40 +f 649/809/37 650/837/37 648/810/37 +f 653/812/41 654/838/41 652/813/41 +f 656/815/36 658/839/36 657/816/36 +f 661/818/37 662/840/37 660/819/37 +f 664/821/40 666/841/40 665/822/40 +o Atlas_Erector +v 0.750000 3.500000 -4.250000 +v 0.750000 3.500000 -3.750000 +v 1.250000 3.500000 -3.750000 +v 1.250000 3.500000 -4.250000 +v -1.250000 3.500000 -4.250000 +v -1.250000 3.500000 -3.750000 +v -0.750000 3.500000 -3.750000 +v -0.750000 3.500000 -4.250000 +v 0.750000 3.500000 -2.750000 +v 0.750000 3.500000 -2.250000 +v 1.250000 3.500000 -2.250000 +v 1.250000 3.500000 -2.750000 +v -1.250000 3.500000 -2.750000 +v -1.250000 3.500000 -2.250000 +v -0.750000 3.500000 -2.250000 +v -0.750000 3.500000 -2.750000 +v 0.750000 14.750000 -4.250000 +v 0.750000 14.750000 -3.750000 +v 1.250000 14.750000 -3.750000 +v 1.250000 14.750000 -4.250000 +v -1.250000 14.750000 -4.250000 +v -1.250000 14.750000 -3.750000 +v -0.750000 14.750000 -3.750000 +v -0.750000 14.750000 -4.250000 +v 0.750000 14.750000 -2.750000 +v 0.750000 14.750000 -2.250000 +v 1.250000 14.750000 -2.250000 +v 1.250000 14.750000 -2.750000 +v -1.250000 14.750000 -2.750000 +v -1.250000 14.750000 -2.250000 +v -0.750000 14.750000 -2.250000 +v -0.750000 14.750000 -2.750000 +v 0.750000 12.750000 -2.750000 +v 0.750000 12.750000 -2.250000 +v -0.750000 12.750000 -2.250000 +v -0.750000 12.750000 -2.750000 +v 0.750000 12.250000 -2.750000 +v 0.750000 12.250000 -2.250000 +v -0.750000 12.250000 -2.250000 +v -0.750000 12.250000 -2.750000 +v 0.625000 12.750000 -1.375000 +v -0.625000 12.750000 -1.375000 +v 0.625000 12.250000 -1.375000 +v -0.625000 12.250000 -1.375000 +v 0.625000 12.750000 -1.125000 +v -0.625000 12.750000 -1.125000 +v 0.625000 12.250000 -1.125000 +v -0.625000 12.250000 -1.125000 +v -1.375000 12.749999 -0.625000 +v -1.375000 12.749999 0.250000 +v -1.375000 12.249999 -0.625000 +v -1.375000 12.249999 0.250000 +v -1.125000 12.749999 -0.625000 +v -1.125000 12.749999 0.250000 +v -1.125000 12.249999 -0.625000 +v -1.125000 12.249999 0.250000 +v 1.375000 12.749999 0.250000 +v 1.375000 12.749999 -0.625000 +v 1.375000 12.249999 0.250000 +v 1.375000 12.249999 -0.625000 +v 1.125000 12.749999 0.250000 +v 1.125000 12.749999 -0.625000 +v 1.125000 12.249999 0.250000 +v 1.125000 12.249999 -0.625000 +v 0.750000 12.750000 -4.250000 +v 0.750000 12.750000 -3.750000 +v -0.750000 12.750000 -3.750000 +v -0.750000 12.750000 -4.250000 +v 0.750000 12.250000 -4.250000 +v 0.750000 12.250000 -3.750000 +v -0.750000 12.250000 -3.750000 +v -0.750000 12.250000 -4.250000 +v 0.187500 12.312500 -1.375000 +v 0.562500 12.312500 -1.375000 +v 0.187500 12.687500 -1.375000 +v 0.562500 12.687500 -1.375000 +v 0.187500 12.312500 -3.750000 +v 0.562500 12.312500 -3.750000 +v 0.187500 12.687500 -3.750000 +v 0.562500 12.687500 -3.750000 +v -0.562500 12.312500 -1.375000 +v -0.187500 12.312500 -1.375000 +v -0.562500 12.687500 -1.375000 +v -0.187500 12.687500 -1.375000 +v -0.562500 12.312500 -3.750000 +v -0.187500 12.312500 -3.750000 +v -0.562500 12.687500 -3.750000 +v -0.187500 12.687500 -3.750000 +v 0.750000 8.750000 -2.750000 +v 0.750000 8.750000 -2.250000 +v -0.750000 8.750000 -2.250000 +v -0.750000 8.750000 -2.750000 +v 0.750000 8.250000 -2.750000 +v 0.750000 8.250000 -2.250000 +v -0.750000 8.250000 -2.250000 +v -0.750000 8.250000 -2.750000 +v 0.625000 8.750000 -1.625000 +v -0.625000 8.750000 -1.625000 +v 0.625000 8.250000 -1.625000 +v -0.625000 8.250000 -1.625000 +v 0.625000 8.750000 -1.375000 +v -0.625000 8.750000 -1.375000 +v 0.625000 8.250000 -1.375000 +v -0.625000 8.250000 -1.375000 +v -1.375000 8.749999 -0.875000 +v -1.375000 8.749999 0.250000 +v -1.375000 8.249999 -0.875000 +v -1.375000 8.249999 0.250000 +v -1.125000 8.749999 -0.875000 +v -1.125000 8.749999 0.250000 +v -1.125000 8.249999 -0.875000 +v -1.125000 8.249999 0.250000 +v 1.375000 8.749999 0.250000 +v 1.375000 8.749999 -0.875000 +v 1.375000 8.249999 0.250000 +v 1.375000 8.249999 -0.875000 +v 1.125000 8.749999 0.250000 +v 1.125000 8.749999 -0.875000 +v 1.125000 8.249999 0.250000 +v 1.125000 8.249999 -0.875000 +v 0.750000 8.750000 -4.250000 +v 0.750000 8.750000 -3.750000 +v -0.750000 8.750000 -3.750000 +v -0.750000 8.750000 -4.250000 +v 0.750000 8.250000 -4.250000 +v 0.750000 8.250000 -3.750000 +v -0.750000 8.250000 -3.750000 +v -0.750000 8.250000 -4.250000 +v 0.187500 8.312500 -1.625000 +v 0.562500 8.312500 -1.625000 +v 0.187500 8.687500 -1.625000 +v 0.562500 8.687500 -1.625000 +v 0.187500 8.312500 -3.750000 +v 0.562500 8.312500 -3.750000 +v 0.187500 8.687500 -3.750000 +v 0.562500 8.687500 -3.750000 +v -0.562500 8.312500 -1.625000 +v -0.187500 8.312500 -1.625000 +v -0.562500 8.687500 -1.625000 +v -0.187500 8.687500 -1.625000 +v -0.562500 8.312500 -3.750000 +v -0.187500 8.312500 -3.750000 +v -0.562500 8.687500 -3.750000 +v -0.187500 8.687500 -3.750000 +v 0.750000 4.750000 -2.750000 +v 0.750000 4.750000 -2.250000 +v -0.750000 4.750000 -2.250000 +v -0.750000 4.750000 -2.750000 +v 0.750000 4.250000 -2.750000 +v 0.750000 4.250000 -2.250000 +v -0.750000 4.250000 -2.250000 +v -0.750000 4.250000 -2.750000 +v 0.625000 4.750000 -1.875000 +v -0.625000 4.750000 -1.875000 +v 0.625000 4.250000 -1.875000 +v -0.625000 4.250000 -1.875000 +v 0.625000 4.750000 -1.625000 +v -0.625000 4.750000 -1.625000 +v 0.625000 4.250000 -1.625000 +v -0.625000 4.250000 -1.625000 +v -1.375000 4.749999 -1.125000 +v -1.375000 4.749999 0.250000 +v -1.375000 4.249999 -1.125000 +v -1.375000 4.249999 0.250000 +v -1.125000 4.749999 -1.125000 +v -1.125000 4.749999 0.250000 +v -1.125000 4.249999 -1.125000 +v -1.125000 4.249999 0.250000 +v 1.375000 4.749999 0.250000 +v 1.375000 4.749999 -1.125000 +v 1.375000 4.249999 0.250000 +v 1.375000 4.249999 -1.125000 +v 1.125000 4.749999 0.250000 +v 1.125000 4.749999 -1.125000 +v 1.125000 4.249999 0.250000 +v 1.125000 4.249999 -1.125000 +v 0.750000 4.750000 -4.250000 +v 0.750000 4.750000 -3.750000 +v -0.750000 4.750000 -3.750000 +v -0.750000 4.750000 -4.250000 +v 0.750000 4.250000 -4.250000 +v 0.750000 4.250000 -3.750000 +v -0.750000 4.250000 -3.750000 +v -0.750000 4.250000 -4.250000 +v 0.187500 4.312500 -1.875000 +v 0.562500 4.312500 -1.875000 +v 0.187500 4.687500 -1.875000 +v 0.562500 4.687500 -1.875000 +v 0.187500 4.312500 -3.750000 +v 0.562500 4.312500 -3.750000 +v 0.187500 4.687500 -3.750000 +v 0.562500 4.687500 -3.750000 +v -0.562500 4.312500 -1.875000 +v -0.187500 4.312500 -1.875000 +v -0.562500 4.687500 -1.875000 +v -0.187500 4.687500 -1.875000 +v -0.562500 4.312500 -3.750000 +v -0.187500 4.312500 -3.750000 +v -0.562500 4.687500 -3.750000 +v -0.187500 4.687500 -3.750000 +v 0.750000 12.250000 -4.062500 +v 0.750000 11.750000 -4.062500 +v -0.750000 10.750000 -4.062500 +v -0.750000 10.250000 -4.062500 +v 0.750000 10.750000 -4.062500 +v 0.750000 10.250000 -4.062500 +v -0.750000 9.250000 -4.062500 +v -0.750000 8.750000 -4.062500 +v 0.750000 10.750000 -3.937500 +v 0.750000 10.250000 -3.937500 +v -0.750000 12.250000 -3.937500 +v -0.750000 11.750000 -3.937500 +v 0.750000 9.250000 -3.937500 +v 0.750000 8.750000 -3.937500 +v -0.750000 10.750000 -3.937500 +v -0.750000 10.250000 -3.937500 +v 0.750000 8.250000 -4.062500 +v 0.750000 7.750000 -4.062500 +v -0.750000 6.750000 -4.062500 +v -0.750000 6.250000 -4.062500 +v 0.750000 6.750000 -4.062500 +v 0.750000 6.250000 -4.062500 +v -0.750000 5.250000 -4.062500 +v -0.750000 4.750000 -4.062500 +v 0.750000 6.750000 -3.937500 +v 0.750000 6.250000 -3.937500 +v -0.750000 8.250000 -3.937500 +v -0.750000 7.750000 -3.937500 +v 0.750000 5.250000 -3.937500 +v 0.750000 4.750000 -3.937500 +v -0.750000 6.750000 -3.937500 +v -0.750000 6.250000 -3.937500 +v 0.750000 12.250000 -2.562500 +v 0.750000 11.750000 -2.562500 +v -0.750000 10.750000 -2.562500 +v -0.750000 10.250000 -2.562500 +v 0.750000 10.750000 -2.562500 +v 0.750000 10.250000 -2.562500 +v -0.750000 9.250000 -2.562500 +v -0.750000 8.750000 -2.562500 +v 0.750000 10.750000 -2.437500 +v 0.750000 10.250000 -2.437500 +v -0.750000 12.250000 -2.437500 +v -0.750000 11.750000 -2.437500 +v 0.750000 9.250000 -2.437500 +v 0.750000 8.750000 -2.437500 +v -0.750000 10.750000 -2.437500 +v -0.750000 10.250000 -2.437500 +v 0.750000 8.250000 -2.562500 +v 0.750000 7.750000 -2.562500 +v -0.750000 6.750000 -2.562500 +v -0.750000 6.250000 -2.562500 +v 0.750000 6.750000 -2.562500 +v 0.750000 6.250000 -2.562500 +v -0.750000 5.250000 -2.562500 +v -0.750000 4.750000 -2.562500 +v 0.750000 6.750000 -2.437500 +v 0.750000 6.250000 -2.437500 +v -0.750000 8.250000 -2.437500 +v -0.750000 7.750000 -2.437500 +v 0.750000 5.250000 -2.437500 +v 0.750000 4.750000 -2.437500 +v -0.750000 6.750000 -2.437500 +v -0.750000 6.250000 -2.437500 +v 0.750000 14.750000 -4.062500 +v 0.750000 14.250000 -4.062500 +v -0.750000 13.250000 -4.062500 +v -0.750000 12.750000 -4.062500 +v 0.750000 13.250000 -3.937500 +v 0.750000 12.750000 -3.937500 +v -0.750000 14.750000 -3.937500 +v -0.750000 14.250000 -3.937500 +v 0.750000 14.750000 -2.562500 +v 0.750000 14.250000 -2.562500 +v -0.750000 13.250000 -2.562500 +v -0.750000 12.750000 -2.562500 +v 0.750000 13.250000 -2.437500 +v 0.750000 12.750000 -2.437500 +v -0.750000 14.750000 -2.437500 +v -0.750000 14.250000 -2.437500 +v 1.062500 14.750000 -2.750000 +v 1.062500 14.250000 -2.750000 +v 1.062500 13.250000 -3.750000 +v 1.062500 12.750000 -3.750000 +v 0.937500 13.250000 -2.750000 +v 0.937500 12.750000 -2.750000 +v 0.937500 14.750000 -3.750000 +v 0.937500 14.250000 -3.750000 +v 1.062500 12.250000 -2.750000 +v 1.062500 11.750000 -2.750000 +v 1.062500 10.750000 -3.750000 +v 1.062500 10.250000 -3.750000 +v 0.937500 10.750000 -2.750000 +v 0.937500 10.250000 -2.750000 +v 0.937500 12.250000 -3.750000 +v 0.937500 11.750000 -3.750000 +v 1.062500 10.750000 -2.750000 +v 1.062500 10.250000 -2.750000 +v 1.062500 9.250000 -3.750000 +v 1.062500 8.750000 -3.750000 +v 0.937500 9.250000 -2.750000 +v 0.937500 8.750000 -2.750000 +v 0.937500 10.750000 -3.750000 +v 0.937500 10.250000 -3.750000 +v 1.062500 8.250000 -2.750000 +v 1.062500 7.750000 -2.750000 +v 1.062500 6.750000 -3.750000 +v 1.062500 6.250000 -3.750000 +v 0.937500 6.750000 -2.750000 +v 0.937500 6.250000 -2.750000 +v 0.937500 8.250000 -3.750000 +v 0.937500 7.750000 -3.750000 +v 1.062500 6.750000 -2.750000 +v 1.062500 6.250000 -2.750000 +v 1.062500 5.250000 -3.750000 +v 1.062500 4.750000 -3.750000 +v 0.937500 5.250000 -2.750000 +v 0.937500 4.750000 -2.750000 +v 0.937500 6.750000 -3.750000 +v 0.937500 6.250000 -3.750000 +v -0.937500 14.750000 -2.750000 +v -0.937500 14.250000 -2.750000 +v -0.937500 13.250000 -3.750000 +v -0.937500 12.750000 -3.750000 +v -1.062500 13.250000 -2.750000 +v -1.062500 12.750000 -2.750000 +v -1.062500 14.750000 -3.750000 +v -1.062500 14.250000 -3.750000 +v -0.937500 12.250000 -2.750000 +v -0.937500 11.750000 -2.750000 +v -0.937500 10.750000 -3.750000 +v -0.937500 10.250000 -3.750000 +v -1.062500 10.750000 -2.750000 +v -1.062500 10.250000 -2.750000 +v -1.062500 12.250000 -3.750000 +v -1.062500 11.750000 -3.750000 +v -0.937500 10.750000 -2.750000 +v -0.937500 10.250000 -2.750000 +v -0.937500 9.250000 -3.750000 +v -0.937500 8.750000 -3.750000 +v -1.062500 9.250000 -2.750000 +v -1.062500 8.750000 -2.750000 +v -1.062500 10.750000 -3.750000 +v -1.062500 10.250000 -3.750000 +v -0.937500 8.250000 -2.750000 +v -0.937500 7.750000 -2.750000 +v -0.937500 6.750000 -3.750000 +v -0.937500 6.250000 -3.750000 +v -1.062500 6.750000 -2.750000 +v -1.062500 6.250000 -2.750000 +v -1.062500 8.250000 -3.750000 +v -1.062500 7.750000 -3.750000 +v -0.937500 6.750000 -2.750000 +v -0.937500 6.250000 -2.750000 +v -0.937500 5.250000 -3.750000 +v -0.937500 4.750000 -3.750000 +v -1.062500 5.250000 -2.750000 +v -1.062500 4.750000 -2.750000 +v -1.062500 6.750000 -3.750000 +v -1.062500 6.250000 -3.750000 +v 0.750000 12.250000 -4.062500 +v 0.750000 11.750000 -4.062500 +v -0.750000 10.750000 -4.062500 +v -0.750000 10.250000 -4.062500 +v 0.750000 10.750000 -4.062500 +v 0.750000 10.250000 -4.062500 +v -0.750000 9.250000 -4.062500 +v -0.750000 8.750000 -4.062500 +v 0.750000 10.750000 -3.937500 +v 0.750000 10.250000 -3.937500 +v -0.750000 12.250000 -3.937500 +v -0.750000 11.750000 -3.937500 +v 0.750000 9.250000 -3.937500 +v 0.750000 8.750000 -3.937500 +v -0.750000 10.750000 -3.937500 +v -0.750000 10.250000 -3.937500 +v 0.750000 8.250000 -4.062500 +v 0.750000 7.750000 -4.062500 +v -0.750000 6.750000 -4.062500 +v -0.750000 6.250000 -4.062500 +v 0.750000 6.750000 -4.062500 +v 0.750000 6.250000 -4.062500 +v -0.750000 5.250000 -4.062500 +v -0.750000 4.750000 -4.062500 +v 0.750000 6.750000 -3.937500 +v 0.750000 6.250000 -3.937500 +v -0.750000 8.250000 -3.937500 +v -0.750000 7.750000 -3.937500 +v 0.750000 5.250000 -3.937500 +v 0.750000 4.750000 -3.937500 +v -0.750000 6.750000 -3.937500 +v -0.750000 6.250000 -3.937500 +v 0.750000 12.250000 -2.562500 +v 0.750000 11.750000 -2.562500 +v -0.750000 10.750000 -2.562500 +v -0.750000 10.250000 -2.562500 +v 0.750000 10.750000 -2.562500 +v 0.750000 10.250000 -2.562500 +v -0.750000 9.250000 -2.562500 +v -0.750000 8.750000 -2.562500 +v 0.750000 10.750000 -2.437500 +v 0.750000 10.250000 -2.437500 +v -0.750000 12.250000 -2.437500 +v -0.750000 11.750000 -2.437500 +v 0.750000 9.250000 -2.437500 +v 0.750000 8.750000 -2.437500 +v -0.750000 10.750000 -2.437500 +v -0.750000 10.250000 -2.437500 +v 0.750000 8.250000 -2.562500 +v 0.750000 7.750000 -2.562500 +v -0.750000 6.750000 -2.562500 +v -0.750000 6.250000 -2.562500 +v 0.750000 6.750000 -2.562500 +v 0.750000 6.250000 -2.562500 +v -0.750000 5.250000 -2.562500 +v -0.750000 4.750000 -2.562500 +v 0.750000 6.750000 -2.437500 +v 0.750000 6.250000 -2.437500 +v -0.750000 8.250000 -2.437500 +v -0.750000 7.750000 -2.437500 +v 0.750000 5.250000 -2.437500 +v 0.750000 4.750000 -2.437500 +v -0.750000 6.750000 -2.437500 +v -0.750000 6.250000 -2.437500 +v 0.750000 14.750000 -4.062500 +v 0.750000 14.250000 -4.062500 +v -0.750000 13.250000 -4.062500 +v -0.750000 12.750000 -4.062500 +v 0.750000 13.250000 -3.937500 +v 0.750000 12.750000 -3.937500 +v -0.750000 14.750000 -3.937500 +v -0.750000 14.250000 -3.937500 +v 0.750000 14.750000 -2.562500 +v 0.750000 14.250000 -2.562500 +v -0.750000 13.250000 -2.562500 +v -0.750000 12.750000 -2.562500 +v 0.750000 13.250000 -2.437500 +v 0.750000 12.750000 -2.437500 +v -0.750000 14.750000 -2.437500 +v -0.750000 14.250000 -2.437500 +v 1.062500 14.750000 -2.750000 +v 1.062500 14.250000 -2.750000 +v 1.062500 13.250000 -3.750000 +v 1.062500 12.750000 -3.750000 +v 0.937500 13.250000 -2.750000 +v 0.937500 12.750000 -2.750000 +v 0.937500 14.750000 -3.750000 +v 0.937500 14.250000 -3.750000 +v 1.062500 12.250000 -2.750000 +v 1.062500 11.750000 -2.750000 +v 1.062500 10.750000 -3.750000 +v 1.062500 10.250000 -3.750000 +v 0.937500 10.750000 -2.750000 +v 0.937500 10.250000 -2.750000 +v 0.937500 12.250000 -3.750000 +v 0.937500 11.750000 -3.750000 +v 1.062500 10.750000 -2.750000 +v 1.062500 10.250000 -2.750000 +v 1.062500 9.250000 -3.750000 +v 1.062500 8.750000 -3.750000 +v 0.937500 9.250000 -2.750000 +v 0.937500 8.750000 -2.750000 +v 0.937500 10.750000 -3.750000 +v 0.937500 10.250000 -3.750000 +v 1.062500 8.250000 -2.750000 +v 1.062500 7.750000 -2.750000 +v 1.062500 6.750000 -3.750000 +v 1.062500 6.250000 -3.750000 +v 0.937500 6.750000 -2.750000 +v 0.937500 6.250000 -2.750000 +v 0.937500 8.250000 -3.750000 +v 0.937500 7.750000 -3.750000 +v 1.062500 6.750000 -2.750000 +v 1.062500 6.250000 -2.750000 +v 1.062500 5.250000 -3.750000 +v 1.062500 4.750000 -3.750000 +v 0.937500 5.250000 -2.750000 +v 0.937500 4.750000 -2.750000 +v 0.937500 6.750000 -3.750000 +v 0.937500 6.250000 -3.750000 +v -0.937500 14.750000 -2.750000 +v -0.937500 14.250000 -2.750000 +v -0.937500 13.250000 -3.750000 +v -0.937500 12.750000 -3.750000 +v -1.062500 13.250000 -2.750000 +v -1.062500 12.750000 -2.750000 +v -1.062500 14.750000 -3.750000 +v -1.062500 14.250000 -3.750000 +v -0.937500 12.250000 -2.750000 +v -0.937500 11.750000 -2.750000 +v -0.937500 10.750000 -3.750000 +v -0.937500 10.250000 -3.750000 +v -1.062500 10.750000 -2.750000 +v -1.062500 10.250000 -2.750000 +v -1.062500 12.250000 -3.750000 +v -1.062500 11.750000 -3.750000 +v -0.937500 10.750000 -2.750000 +v -0.937500 10.250000 -2.750000 +v -0.937500 9.250000 -3.750000 +v -0.937500 8.750000 -3.750000 +v -1.062500 9.250000 -2.750000 +v -1.062500 8.750000 -2.750000 +v -1.062500 10.750000 -3.750000 +v -1.062500 10.250000 -3.750000 +v -0.937500 8.250000 -2.750000 +v -0.937500 7.750000 -2.750000 +v -0.937500 6.750000 -3.750000 +v -0.937500 6.250000 -3.750000 +v -1.062500 6.750000 -2.750000 +v -1.062500 6.250000 -2.750000 +v -1.062500 8.250000 -3.750000 +v -1.062500 7.750000 -3.750000 +v -0.937500 6.750000 -2.750000 +v -0.937500 6.250000 -2.750000 +v -0.937500 5.250000 -3.750000 +v -0.937500 4.750000 -3.750000 +v -1.062500 5.250000 -2.750000 +v -1.062500 4.750000 -2.750000 +v -1.062500 6.750000 -3.750000 +v -1.062500 6.250000 -3.750000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.974359 0.032258 +vt 0.948718 0.758065 +vt 0.948718 0.032258 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 0.974359 0.032258 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.948718 0.032258 +vt 0.948718 0.032258 +vt 0.974359 0.032258 +vt 0.948718 0.758065 +vt 0.974359 0.032258 +vt 0.948718 0.758065 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.948718 0.032258 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.948718 0.758065 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.448718 0.822581 +vt 0.512821 0.854839 +vt 0.448718 0.854839 +vt 0.275641 0.919355 +vt 0.211538 0.951613 +vt 0.211538 0.919355 +vt 0.512821 0.854839 +vt 0.538462 0.903226 +vt 0.512821 0.870968 +vt 0.448718 0.870968 +vt 0.448718 0.854839 +vt 0.384615 0.854839 +vt 0.410256 0.903226 +vt 0.384615 0.903226 +vt 0.448718 0.870968 +vt 0.576923 0.903226 +vt 0.551282 0.959677 +vt 0.551282 0.903226 +vt 0.346154 0.919355 +vt 0.301282 0.951613 +vt 0.301282 0.919355 +vt 0.384615 0.951613 +vt 0.371795 0.919355 +vt 0.384615 0.919355 +vt 0.410256 0.903226 +vt 0.423077 0.959677 +vt 0.410256 0.959677 +vt 0.538462 0.903226 +vt 0.384615 0.959677 +vt 0.410256 0.959677 +vt 0.185897 0.919355 +vt 0.141026 0.951613 +vt 0.141026 0.919355 +vt 0.551282 0.959677 +vt 0.551282 0.903226 +vt 0.102564 0.919355 +vt 0.115385 0.951613 +vt 0.102564 0.951613 +vt 0.423077 0.959677 +vt 0.275641 0.951613 +vt 0.512821 0.870968 +vt 0.576923 0.854839 +vt 0.551282 0.854839 +vt 0.423077 0.903226 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.794872 0.846774 +vt 0.814103 0.693548 +vt 0.814103 0.846774 +vt 0.833333 0.846774 +vt 0.852564 0.693548 +vt 0.852564 0.846774 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.846774 +vt 0.794872 0.846774 +vt 0.814103 0.693548 +vt 0.814103 0.846774 +vt 0.833333 0.846774 +vt 0.852564 0.693548 +vt 0.852564 0.846774 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.846774 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.448718 0.822581 +vt 0.512821 0.854839 +vt 0.448718 0.854839 +vt 0.275641 0.919355 +vt 0.211538 0.951613 +vt 0.211538 0.919355 +vt 0.512821 0.854839 +vt 0.538462 0.903226 +vt 0.512821 0.870968 +vt 0.448718 0.870968 +vt 0.448718 0.854839 +vt 0.384615 0.854839 +vt 0.410256 0.903226 +vt 0.384615 0.903226 +vt 0.448718 0.870968 +vt 0.576923 0.903226 +vt 0.551282 0.975806 +vt 0.551282 0.903226 +vt 0.358974 0.919355 +vt 0.301282 0.951613 +vt 0.301282 0.919355 +vt 0.384615 0.951613 +vt 0.371795 0.919355 +vt 0.384615 0.919355 +vt 0.410256 0.903226 +vt 0.423077 0.975806 +vt 0.410256 0.975806 +vt 0.538462 0.903226 +vt 0.384615 0.975806 +vt 0.410256 0.975806 +vt 0.185897 0.919355 +vt 0.128205 0.951613 +vt 0.128205 0.919355 +vt 0.551282 0.975806 +vt 0.551282 0.903226 +vt 0.102564 0.919355 +vt 0.115385 0.951613 +vt 0.102564 0.951613 +vt 0.423077 0.975806 +vt 0.275641 0.951613 +vt 0.512821 0.870968 +vt 0.576923 0.854839 +vt 0.551282 0.854839 +vt 0.423077 0.903226 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.794872 0.830645 +vt 0.814103 0.693548 +vt 0.814103 0.830645 +vt 0.833333 0.830645 +vt 0.852564 0.693548 +vt 0.852564 0.830645 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.830645 +vt 0.794872 0.830645 +vt 0.814103 0.693548 +vt 0.814103 0.830645 +vt 0.833333 0.830645 +vt 0.852564 0.693548 +vt 0.852564 0.830645 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.830645 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.448718 0.822581 +vt 0.512821 0.854839 +vt 0.448718 0.854839 +vt 0.275641 0.919355 +vt 0.211538 0.951613 +vt 0.211538 0.919355 +vt 0.512821 0.854839 +vt 0.538462 0.903226 +vt 0.512821 0.870968 +vt 0.448718 0.870968 +vt 0.448718 0.854839 +vt 0.384615 0.854839 +vt 0.410256 0.903226 +vt 0.384615 0.903226 +vt 0.448718 0.870968 +vt 0.576923 0.903226 +vt 0.551282 0.991935 +vt 0.551282 0.903226 +vt 0.371795 0.919355 +vt 0.301282 0.951613 +vt 0.301282 0.919355 +vt 0.384615 0.951613 +vt 0.384615 0.919355 +vt 0.410256 0.903226 +vt 0.423077 0.991935 +vt 0.410256 0.991935 +vt 0.538462 0.903226 +vt 0.384615 0.991935 +vt 0.410256 0.991935 +vt 0.185897 0.919355 +vt 0.115385 0.951613 +vt 0.115385 0.919355 +vt 0.551282 0.991935 +vt 0.551282 0.903226 +vt 0.102564 0.919355 +vt 0.102564 0.951613 +vt 0.423077 0.991935 +vt 0.275641 0.951613 +vt 0.512821 0.870968 +vt 0.576923 0.854839 +vt 0.551282 0.854839 +vt 0.423077 0.903226 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.794872 0.814516 +vt 0.814103 0.693548 +vt 0.814103 0.814516 +vt 0.833333 0.814516 +vt 0.852564 0.693548 +vt 0.852564 0.814516 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.814516 +vt 0.794872 0.814516 +vt 0.814103 0.693548 +vt 0.814103 0.814516 +vt 0.833333 0.814516 +vt 0.852564 0.693548 +vt 0.852564 0.814516 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.814516 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.974359 0.919355 +vt 0.512821 0.822581 +vt 0.410256 0.854839 +vt 0.576923 0.959677 +vt 0.346154 0.951613 +vt 0.371795 0.951613 +vt 0.423077 0.903226 +vt 0.538462 0.959677 +vt 0.185897 0.951613 +vt 0.538462 0.959677 +vt 0.115385 0.919355 +vt 0.974359 0.919355 +vt 0.794872 0.693548 +vt 0.794872 0.693548 +vt 0.974359 0.919355 +vt 0.512821 0.822581 +vt 0.410256 0.854839 +vt 0.576923 0.975806 +vt 0.358974 0.951613 +vt 0.371795 0.951613 +vt 0.423077 0.903226 +vt 0.538462 0.975806 +vt 0.185897 0.951613 +vt 0.538462 0.975806 +vt 0.115385 0.919355 +vt 0.974359 0.919355 +vt 0.794872 0.693548 +vt 0.794872 0.693548 +vt 0.974359 0.919355 +vt 0.512821 0.822581 +vt 0.410256 0.854839 +vt 0.576923 0.991935 +vt 0.371795 0.951613 +vt 0.423077 0.903226 +vt 0.538462 0.991935 +vt 0.185897 0.951613 +vt 0.538462 0.991935 +vt 0.974359 0.919355 +vt 0.794872 0.693548 +vt 0.794872 0.693548 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +s off +f 667/842/42 669/843/42 668/844/42 +f 671/845/42 673/846/42 672/847/42 +f 675/848/42 677/849/42 676/850/42 +f 679/851/42 681/852/42 680/853/42 +f 685/854/43 683/855/43 684/856/43 +f 689/857/43 687/858/43 688/859/43 +f 693/860/43 691/861/43 692/862/43 +f 697/863/43 695/864/43 696/865/43 +f 677/866/44 692/867/44 676/868/44 +f 670/869/45 685/870/45 669/871/45 +f 678/872/45 693/873/45 677/866/45 +f 667/842/46 686/874/46 670/875/46 +f 675/848/46 694/876/46 678/877/46 +f 672/878/47 687/858/47 671/845/47 +f 680/879/47 695/864/47 679/851/47 +f 673/880/44 688/881/44 672/878/44 +f 681/882/44 696/883/44 680/879/44 +f 674/884/45 689/885/45 673/880/45 +f 682/886/45 697/887/45 681/882/45 +f 671/845/46 690/888/46 674/889/46 +f 668/890/47 683/855/47 667/842/47 +f 679/851/46 698/891/46 682/892/46 +f 676/868/47 691/861/47 675/848/47 +f 669/871/44 684/893/44 668/890/44 +f 699/894/43 701/895/43 700/896/43 +f 705/897/42 703/898/42 704/899/42 +f 699/894/46 706/900/46 702/901/46 +f 701/895/44 704/902/44 700/896/44 +f 709/903/46 708/904/46 707/905/46 +f 712/906/44 713/907/44 711/908/44 +f 709/909/42 730/910/42 713/911/42 +f 709/909/42 714/912/42 710/913/42 +f 709/914/48 724/915/48 726/916/48 +f 708/904/43 711/917/43 707/905/43 +f 717/918/47 716/919/47 715/920/47 +f 720/921/45 721/922/45 719/923/45 +f 718/924/44 720/925/44 716/926/44 +f 717/927/42 722/928/42 718/929/42 +f 711/917/43 724/915/43 707/905/43 +f 716/919/43 719/930/43 715/920/43 +f 725/931/45 724/915/45 723/932/45 +f 728/933/47 729/934/47 727/935/47 +f 713/907/49 728/933/49 711/908/49 +f 725/936/42 730/910/42 726/937/42 +f 723/938/44 729/939/44 725/940/44 +f 724/915/43 727/941/43 723/932/43 +f 714/942/50 719/923/50 721/922/50 +f 708/904/43 719/930/43 712/943/43 +f 710/944/51 715/920/51 708/945/51 +f 721/946/42 710/913/42 714/912/42 +f 731/947/43 733/948/43 732/949/43 +f 737/950/42 735/951/42 736/952/42 +f 731/947/46 738/953/46 734/954/46 +f 733/948/44 736/955/44 732/949/44 +f 740/956/45 746/957/45 742/958/45 +f 741/959/47 743/960/47 739/961/47 +f 742/958/43 745/962/43 741/959/43 +f 739/961/42 744/963/42 740/964/42 +f 748/965/45 754/966/45 750/967/45 +f 749/968/47 751/969/47 747/970/47 +f 750/967/43 753/971/43 749/968/43 +f 747/970/42 752/972/42 748/973/42 +f 755/974/43 757/975/43 756/976/43 +f 761/977/42 759/978/42 760/979/42 +f 755/974/46 762/980/46 758/981/46 +f 757/975/44 760/982/44 756/976/44 +f 765/983/46 764/984/46 763/985/46 +f 768/986/44 769/987/44 767/988/44 +f 765/989/42 786/990/42 769/991/42 +f 765/989/42 770/992/42 766/993/42 +f 765/994/48 780/995/48 782/996/48 +f 764/984/43 767/997/43 763/985/43 +f 773/998/47 772/999/47 771/1000/47 +f 776/1001/45 777/1002/45 775/1003/45 +f 774/1004/44 776/1005/44 772/1006/44 +f 773/1007/42 778/1008/42 774/1009/42 +f 767/997/43 780/995/43 763/985/43 +f 772/999/43 775/1010/43 771/1000/43 +f 781/1011/45 780/995/45 779/1012/45 +f 784/1013/47 785/1014/47 783/1015/47 +f 769/987/49 784/1013/49 767/988/49 +f 781/1016/42 786/990/42 782/1017/42 +f 779/1018/44 785/1019/44 781/1020/44 +f 780/995/43 783/1021/43 779/1012/43 +f 770/1022/50 775/1003/50 777/1002/50 +f 764/984/43 775/1010/43 768/1023/43 +f 766/1024/51 771/1000/51 764/1025/51 +f 777/1026/42 766/993/42 770/992/42 +f 787/1027/43 789/1028/43 788/1029/43 +f 793/1030/42 791/1031/42 792/1032/42 +f 787/1027/46 794/1033/46 790/1034/46 +f 789/1028/44 792/1035/44 788/1029/44 +f 796/1036/45 802/1037/45 798/1038/45 +f 797/1039/47 799/1040/47 795/1041/47 +f 798/1038/43 801/1042/43 797/1039/43 +f 795/1041/42 800/1043/42 796/1044/42 +f 804/1045/45 810/1046/45 806/1047/45 +f 805/1048/47 807/1049/47 803/1050/47 +f 806/1047/43 809/1051/43 805/1048/43 +f 803/1050/42 808/1052/42 804/1053/42 +f 811/1054/43 813/1055/43 812/1056/43 +f 817/1057/42 815/1058/42 816/1059/42 +f 811/1054/46 818/1060/46 814/1061/46 +f 813/1055/44 816/1062/44 812/1056/44 +f 821/1063/46 820/1064/46 819/1065/46 +f 824/1066/44 825/1067/44 823/1068/44 +f 821/1069/42 842/1070/42 825/1071/42 +f 821/1069/42 826/1072/42 822/1073/42 +f 821/1074/48 836/1075/48 838/1076/48 +f 820/1064/43 823/1077/43 819/1065/43 +f 829/1078/47 828/1079/47 827/1080/47 +f 832/1081/45 833/1082/45 831/1083/45 +f 830/1084/44 832/1081/44 828/1085/44 +f 829/1086/42 834/1087/42 830/1088/42 +f 823/1077/43 836/1075/43 819/1065/43 +f 828/1079/43 831/1089/43 827/1080/43 +f 837/1090/45 836/1075/45 835/1091/45 +f 840/1092/47 841/1093/47 839/1094/47 +f 825/1067/49 840/1092/49 823/1068/49 +f 837/1095/42 842/1070/42 838/1096/42 +f 835/1097/44 841/1093/44 837/1098/44 +f 836/1075/43 839/1099/43 835/1091/43 +f 826/1100/50 831/1083/50 833/1082/50 +f 820/1064/43 831/1089/43 824/1101/43 +f 822/1102/51 827/1080/51 820/1103/51 +f 833/1104/42 822/1073/42 826/1072/42 +f 843/1105/43 845/1106/43 844/1107/43 +f 849/1108/42 847/1109/42 848/1110/42 +f 843/1105/46 850/1111/46 846/1112/46 +f 845/1106/44 848/1113/44 844/1107/44 +f 852/1114/45 858/1115/45 854/1116/45 +f 853/1117/47 855/1118/47 851/1119/47 +f 854/1116/43 857/1120/43 853/1117/43 +f 851/1119/42 856/1121/42 852/1122/42 +f 860/1123/45 866/1124/45 862/1125/45 +f 861/1126/47 863/1127/47 859/1128/47 +f 862/1125/43 865/1129/43 861/1126/43 +f 859/1128/42 864/1130/42 860/1131/42 +f 868/1132/46 869/1133/46 867/1134/46 +f 872/1135/46 873/1136/46 871/1137/46 +f 875/1138/46 878/1139/46 877/1140/46 +f 879/1141/46 882/1142/46 881/1143/46 +f 884/1144/46 885/1145/46 883/1146/46 +f 888/1147/46 889/1148/46 887/1149/46 +f 891/1150/46 894/1151/46 893/1152/46 +f 895/1153/46 898/1154/46 897/1155/46 +f 901/1156/44 900/1157/44 899/1158/44 +f 905/1159/44 904/1160/44 903/1161/44 +f 907/1162/44 910/1163/44 908/1164/44 +f 911/1165/44 914/1166/44 912/1167/44 +f 917/1168/44 916/1169/44 915/1170/44 +f 921/1171/44 920/1172/44 919/1173/44 +f 923/1174/44 926/1175/44 924/1176/44 +f 927/1177/44 930/1178/44 928/1179/44 +f 932/1180/46 933/1181/46 931/1182/46 +f 935/1183/46 938/1184/46 937/1185/46 +f 941/1186/44 940/1187/44 939/1188/44 +f 943/1189/44 946/1190/44 944/1191/44 +f 948/1192/45 949/1193/45 947/1194/45 +f 951/1195/45 954/1196/45 953/1197/45 +f 956/1198/45 957/1199/45 955/1200/45 +f 959/1201/45 962/1202/45 961/1203/45 +f 964/1204/45 965/1205/45 963/1206/45 +f 967/1207/45 970/1208/45 969/1209/45 +f 972/1210/45 973/1211/45 971/1212/45 +f 975/1213/45 978/1214/45 977/1215/45 +f 980/1216/45 981/1217/45 979/1218/45 +f 983/1219/45 986/1220/45 985/1221/45 +f 989/1222/47 988/1223/47 987/1224/47 +f 991/1225/47 994/1226/47 992/1227/47 +f 997/1228/47 996/1229/47 995/1230/47 +f 999/1231/47 1002/1232/47 1000/1233/47 +f 1005/1234/47 1004/1235/47 1003/1236/47 +f 1007/1237/47 1010/1238/47 1008/1239/47 +f 1013/1240/47 1012/1241/47 1011/1242/47 +f 1015/1243/47 1018/1244/47 1016/1245/47 +f 1021/1246/47 1020/1247/47 1019/1248/47 +f 1023/1249/47 1026/1250/47 1024/1251/47 +f 1029/1252/44 1028/1253/44 1027/1254/44 +f 1033/1255/44 1032/1256/44 1031/1257/44 +f 1035/1258/44 1038/1259/44 1036/1260/44 +f 1039/1261/44 1042/1262/44 1040/1263/44 +f 1045/1264/44 1044/1265/44 1043/1266/44 +f 1049/1267/44 1048/1268/44 1047/1269/44 +f 1051/1270/44 1054/1271/44 1052/1272/44 +f 1055/1273/44 1058/1274/44 1056/1275/44 +f 1060/1276/46 1061/1277/46 1059/1278/46 +f 1064/1279/46 1065/1280/46 1063/1281/46 +f 1067/1282/46 1070/1283/46 1069/1284/46 +f 1071/1285/46 1074/1286/46 1073/1287/46 +f 1076/1288/46 1077/1289/46 1075/1290/46 +f 1080/1291/46 1081/1292/46 1079/1293/46 +f 1083/1294/46 1086/1295/46 1085/1296/46 +f 1087/1297/46 1090/1298/46 1089/1299/46 +f 1093/1300/44 1092/1301/44 1091/1302/44 +f 1095/1303/44 1098/1304/44 1096/1305/44 +f 1100/1306/46 1101/1307/46 1099/1308/46 +f 1103/1309/46 1106/1310/46 1105/1311/46 +f 1109/1312/47 1108/1313/47 1107/1314/47 +f 1111/1315/47 1114/1316/47 1112/1317/47 +f 1117/1318/47 1116/1319/47 1115/1320/47 +f 1119/1321/47 1122/1322/47 1120/1323/47 +f 1125/1324/47 1124/1325/47 1123/1326/47 +f 1127/1327/47 1130/1328/47 1128/1329/47 +f 1133/1330/47 1132/1331/47 1131/1332/47 +f 1135/1333/47 1138/1334/47 1136/1335/47 +f 1141/1336/47 1140/1337/47 1139/1338/47 +f 1143/1339/47 1146/1340/47 1144/1341/47 +f 1148/1342/45 1149/1343/45 1147/1344/45 +f 1151/1345/45 1154/1346/45 1153/1347/45 +f 1156/1348/45 1157/1349/45 1155/1350/45 +f 1159/1351/45 1162/1352/45 1161/1353/45 +f 1164/1354/45 1165/1355/45 1163/1356/45 +f 1167/1357/45 1170/1358/45 1169/1359/45 +f 1172/1360/45 1173/1361/45 1171/1362/45 +f 1175/1363/45 1178/1364/45 1177/1365/45 +f 1180/1366/45 1181/1367/45 1179/1368/45 +f 1183/1369/45 1186/1370/45 1185/1371/45 +f 667/842/42 670/875/42 669/843/42 +f 671/845/42 674/889/42 673/846/42 +f 675/848/42 678/877/42 677/849/42 +f 679/851/42 682/892/42 681/852/42 +f 685/854/43 686/874/43 683/855/43 +f 689/857/43 690/888/43 687/858/43 +f 693/860/43 694/876/43 691/861/43 +f 697/863/43 698/891/43 695/864/43 +f 677/866/44 693/873/44 692/867/44 +f 670/869/45 686/1372/45 685/870/45 +f 678/872/45 694/1373/45 693/873/45 +f 667/842/46 683/855/46 686/874/46 +f 675/848/46 691/861/46 694/876/46 +f 672/878/47 688/881/47 687/858/47 +f 680/879/47 696/883/47 695/864/47 +f 673/880/44 689/885/44 688/881/44 +f 681/882/44 697/887/44 696/883/44 +f 674/884/45 690/1374/45 689/885/45 +f 682/886/45 698/1375/45 697/887/45 +f 671/845/46 687/858/46 690/888/46 +f 668/890/47 684/893/47 683/855/47 +f 679/851/46 695/864/46 698/891/46 +f 676/868/47 692/867/47 691/861/47 +f 669/871/44 685/870/44 684/893/44 +f 699/894/43 702/901/43 701/895/43 +f 705/897/42 706/900/42 703/898/42 +f 699/894/46 703/898/46 706/900/46 +f 701/895/44 705/1376/44 704/902/44 +f 709/903/46 710/1377/46 708/904/46 +f 712/906/44 714/942/44 713/907/44 +f 709/909/42 726/937/42 730/910/42 +f 709/909/42 713/911/42 714/912/42 +f 709/914/48 707/1378/48 724/915/48 +f 708/904/43 712/943/43 711/917/43 +f 717/918/47 718/1379/47 716/919/47 +f 720/921/45 722/1380/45 721/922/45 +f 718/924/44 722/1381/44 720/925/44 +f 717/927/42 721/946/42 722/928/42 +f 711/917/43 728/1382/43 724/915/43 +f 716/919/43 720/1383/43 719/930/43 +f 725/931/45 726/916/45 724/915/45 +f 728/933/47 730/1384/47 729/934/47 +f 713/907/49 730/1384/49 728/933/49 +f 725/936/42 729/1385/42 730/910/42 +f 723/938/44 727/1386/44 729/939/44 +f 724/915/43 728/1382/43 727/941/43 +f 714/942/50 712/906/50 719/923/50 +f 708/904/43 715/920/43 719/930/43 +f 710/944/51 717/918/51 715/920/51 +f 721/946/42 717/927/42 710/913/42 +f 731/947/43 734/954/43 733/948/43 +f 737/950/42 738/953/42 735/951/42 +f 731/947/46 735/951/46 738/953/46 +f 733/948/44 737/1387/44 736/955/44 +f 740/956/45 744/1388/45 746/957/45 +f 741/959/47 745/962/47 743/960/47 +f 742/958/43 746/957/43 745/962/43 +f 739/961/42 743/960/42 744/963/42 +f 748/965/45 752/1389/45 754/966/45 +f 749/968/47 753/971/47 751/969/47 +f 750/967/43 754/966/43 753/971/43 +f 747/970/42 751/969/42 752/972/42 +f 755/974/43 758/981/43 757/975/43 +f 761/977/42 762/980/42 759/978/42 +f 755/974/46 759/978/46 762/980/46 +f 757/975/44 761/1390/44 760/982/44 +f 765/983/46 766/1391/46 764/984/46 +f 768/986/44 770/1022/44 769/987/44 +f 765/989/42 782/1017/42 786/990/42 +f 765/989/42 769/991/42 770/992/42 +f 765/994/48 763/1392/48 780/995/48 +f 764/984/43 768/1023/43 767/997/43 +f 773/998/47 774/1393/47 772/999/47 +f 776/1001/45 778/1394/45 777/1002/45 +f 774/1004/44 778/1395/44 776/1005/44 +f 773/1007/42 777/1026/42 778/1008/42 +f 767/997/43 784/1396/43 780/995/43 +f 772/999/43 776/1397/43 775/1010/43 +f 781/1011/45 782/996/45 780/995/45 +f 784/1013/47 786/1398/47 785/1014/47 +f 769/987/49 786/1398/49 784/1013/49 +f 781/1016/42 785/1399/42 786/990/42 +f 779/1018/44 783/1400/44 785/1019/44 +f 780/995/43 784/1396/43 783/1021/43 +f 770/1022/50 768/986/50 775/1003/50 +f 764/984/43 771/1000/43 775/1010/43 +f 766/1024/51 773/998/51 771/1000/51 +f 777/1026/42 773/1007/42 766/993/42 +f 787/1027/43 790/1034/43 789/1028/43 +f 793/1030/42 794/1033/42 791/1031/42 +f 787/1027/46 791/1031/46 794/1033/46 +f 789/1028/44 793/1401/44 792/1035/44 +f 796/1036/45 800/1402/45 802/1037/45 +f 797/1039/47 801/1042/47 799/1040/47 +f 798/1038/43 802/1037/43 801/1042/43 +f 795/1041/42 799/1040/42 800/1043/42 +f 804/1045/45 808/1403/45 810/1046/45 +f 805/1048/47 809/1051/47 807/1049/47 +f 806/1047/43 810/1046/43 809/1051/43 +f 803/1050/42 807/1049/42 808/1052/42 +f 811/1054/43 814/1061/43 813/1055/43 +f 817/1057/42 818/1060/42 815/1058/42 +f 811/1054/46 815/1058/46 818/1060/46 +f 813/1055/44 817/1404/44 816/1062/44 +f 821/1063/46 822/1405/46 820/1064/46 +f 824/1066/44 826/1100/44 825/1067/44 +f 821/1069/42 838/1096/42 842/1070/42 +f 821/1069/42 825/1071/42 826/1072/42 +f 821/1074/48 819/1406/48 836/1075/48 +f 820/1064/43 824/1101/43 823/1077/43 +f 829/1078/47 830/1407/47 828/1079/47 +f 832/1081/45 834/1408/45 833/1082/45 +f 830/1084/44 834/1408/44 832/1081/44 +f 829/1086/42 833/1104/42 834/1087/42 +f 823/1077/43 840/1409/43 836/1075/43 +f 828/1079/43 832/1410/43 831/1089/43 +f 837/1090/45 838/1076/45 836/1075/45 +f 840/1092/47 842/1411/47 841/1093/47 +f 825/1067/49 842/1411/49 840/1092/49 +f 837/1095/42 841/1412/42 842/1070/42 +f 835/1097/44 839/1094/44 841/1093/44 +f 836/1075/43 840/1409/43 839/1099/43 +f 826/1100/50 824/1066/50 831/1083/50 +f 820/1064/43 827/1080/43 831/1089/43 +f 822/1102/51 829/1078/51 827/1080/51 +f 833/1104/42 829/1086/42 822/1073/42 +f 843/1105/43 846/1112/43 845/1106/43 +f 849/1108/42 850/1111/42 847/1109/42 +f 843/1105/46 847/1109/46 850/1111/46 +f 845/1106/44 849/1413/44 848/1113/44 +f 852/1114/45 856/1414/45 858/1115/45 +f 853/1117/47 857/1120/47 855/1118/47 +f 854/1116/43 858/1115/43 857/1120/43 +f 851/1119/42 855/1118/42 856/1121/42 +f 860/1123/45 864/1415/45 866/1124/45 +f 861/1126/47 865/1129/47 863/1127/47 +f 862/1125/43 866/1124/43 865/1129/43 +f 859/1128/42 863/1127/42 864/1130/42 +f 868/1132/46 870/1416/46 869/1133/46 +f 872/1135/46 874/1417/46 873/1136/46 +f 875/1138/46 876/1418/46 878/1139/46 +f 879/1141/46 880/1419/46 882/1142/46 +f 884/1144/46 886/1420/46 885/1145/46 +f 888/1147/46 890/1421/46 889/1148/46 +f 891/1150/46 892/1422/46 894/1151/46 +f 895/1153/46 896/1423/46 898/1154/46 +f 901/1156/44 902/1424/44 900/1157/44 +f 905/1159/44 906/1425/44 904/1160/44 +f 907/1162/44 909/1426/44 910/1163/44 +f 911/1165/44 913/1427/44 914/1166/44 +f 917/1168/44 918/1428/44 916/1169/44 +f 921/1171/44 922/1429/44 920/1172/44 +f 923/1174/44 925/1430/44 926/1175/44 +f 927/1177/44 929/1431/44 930/1178/44 +f 932/1180/46 934/1432/46 933/1181/46 +f 935/1183/46 936/1433/46 938/1184/46 +f 941/1186/44 942/1434/44 940/1187/44 +f 943/1189/44 945/1435/44 946/1190/44 +f 948/1192/45 950/1436/45 949/1193/45 +f 951/1195/45 952/1437/45 954/1196/45 +f 956/1198/45 958/1438/45 957/1199/45 +f 959/1201/45 960/1439/45 962/1202/45 +f 964/1204/45 966/1440/45 965/1205/45 +f 967/1207/45 968/1441/45 970/1208/45 +f 972/1210/45 974/1442/45 973/1211/45 +f 975/1213/45 976/1443/45 978/1214/45 +f 980/1216/45 982/1444/45 981/1217/45 +f 983/1219/45 984/1445/45 986/1220/45 +f 989/1222/47 990/1446/47 988/1223/47 +f 991/1225/47 993/1447/47 994/1226/47 +f 997/1228/47 998/1448/47 996/1229/47 +f 999/1231/47 1001/1449/47 1002/1232/47 +f 1005/1234/47 1006/1450/47 1004/1235/47 +f 1007/1237/47 1009/1451/47 1010/1238/47 +f 1013/1240/47 1014/1452/47 1012/1241/47 +f 1015/1243/47 1017/1453/47 1018/1244/47 +f 1021/1246/47 1022/1454/47 1020/1247/47 +f 1023/1249/47 1025/1455/47 1026/1250/47 +f 1029/1252/44 1030/1456/44 1028/1253/44 +f 1033/1255/44 1034/1457/44 1032/1256/44 +f 1035/1258/44 1037/1458/44 1038/1259/44 +f 1039/1261/44 1041/1459/44 1042/1262/44 +f 1045/1264/44 1046/1460/44 1044/1265/44 +f 1049/1267/44 1050/1461/44 1048/1268/44 +f 1051/1270/44 1053/1462/44 1054/1271/44 +f 1055/1273/44 1057/1463/44 1058/1274/44 +f 1060/1276/46 1062/1464/46 1061/1277/46 +f 1064/1279/46 1066/1465/46 1065/1280/46 +f 1067/1282/46 1068/1466/46 1070/1283/46 +f 1071/1285/46 1072/1467/46 1074/1286/46 +f 1076/1288/46 1078/1468/46 1077/1289/46 +f 1080/1291/46 1082/1469/46 1081/1292/46 +f 1083/1294/46 1084/1470/46 1086/1295/46 +f 1087/1297/46 1088/1471/46 1090/1298/46 +f 1093/1300/44 1094/1472/44 1092/1301/44 +f 1095/1303/44 1097/1473/44 1098/1304/44 +f 1100/1306/46 1102/1474/46 1101/1307/46 +f 1103/1309/46 1104/1475/46 1106/1310/46 +f 1109/1312/47 1110/1476/47 1108/1313/47 +f 1111/1315/47 1113/1477/47 1114/1316/47 +f 1117/1318/47 1118/1478/47 1116/1319/47 +f 1119/1321/47 1121/1479/47 1122/1322/47 +f 1125/1324/47 1126/1480/47 1124/1325/47 +f 1127/1327/47 1129/1481/47 1130/1328/47 +f 1133/1330/47 1134/1482/47 1132/1331/47 +f 1135/1333/47 1137/1483/47 1138/1334/47 +f 1141/1336/47 1142/1484/47 1140/1337/47 +f 1143/1339/47 1145/1485/47 1146/1340/47 +f 1148/1342/45 1150/1486/45 1149/1343/45 +f 1151/1345/45 1152/1487/45 1154/1346/45 +f 1156/1348/45 1158/1488/45 1157/1349/45 +f 1159/1351/45 1160/1489/45 1162/1352/45 +f 1164/1354/45 1166/1490/45 1165/1355/45 +f 1167/1357/45 1168/1491/45 1170/1358/45 +f 1172/1360/45 1174/1492/45 1173/1361/45 +f 1175/1363/45 1176/1493/45 1178/1364/45 +f 1180/1366/45 1182/1494/45 1181/1367/45 +f 1183/1369/45 1184/1495/45 1186/1370/45 +o Atlas_Pad +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v -3.500000 2.000000 3.500000 +v 3.500000 2.000000 3.500000 +v -3.500000 2.000000 -3.500000 +v 3.500000 2.000000 -3.500000 +v -3.500000 1.750000 -3.500000 +v -3.500000 1.750000 3.500000 +v 3.500000 1.750000 3.500000 +v 3.500000 1.750000 -3.500000 +v -3.250000 1.750000 3.250000 +v 3.250000 1.750000 3.250000 +v -3.250000 1.750000 -3.250000 +v 3.250000 1.750000 -3.250000 +v -3.250000 1.000000 -3.250000 +v -3.250000 1.000000 3.250000 +v 3.250000 1.000000 3.250000 +v 3.250000 1.000000 -3.250000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v -2.000000 2.000000 -3.500000 +v 2.000000 2.000000 -3.500000 +v -2.000000 1.000000 -4.500000 +v -2.000000 1.000000 -3.500000 +v 2.000000 1.000000 -3.500000 +v 2.000000 1.000000 -4.500000 +v -2.000000 2.000000 -4.000000 +v -2.000000 1.500000 -4.500000 +v 2.000000 1.500000 -4.500000 +v 2.000000 2.000000 -4.000000 +v -1.500000 1.750000 3.500000 +v -3.250000 1.750000 1.500000 +v -1.500000 1.000000 3.250000 +v -1.500000 1.750000 3.250000 +v -1.500000 2.000000 3.500000 +v -1.500000 2.000000 4.500000 +v -1.500000 1.000000 4.500000 +v -4.500000 1.000000 4.500000 +v -4.500000 2.000000 4.500000 +v -3.250000 1.000000 1.500000 +v -3.500000 1.750000 1.500000 +v -3.500000 2.000000 1.500000 +v -4.500000 2.000000 1.500000 +v -4.500000 1.000000 1.500000 +v -3.500000 2.000000 3.500000 +v -4.500000 2.000000 2.000000 +v -4.000000 2.000000 2.000000 +v -4.500000 2.000000 1.500000 +v -4.000000 2.000000 1.500000 +v -4.500000 2.000000 4.500000 +v -4.000000 2.000000 4.500000 +v -4.500000 2.000000 4.000000 +v -4.000000 2.000000 4.000000 +v -2.000000 2.000000 2.000000 +v -1.500000 2.000000 2.000000 +v -2.000000 2.000000 1.500000 +v -1.500000 2.000000 1.500000 +v -2.000000 2.000000 4.500000 +v -1.500000 2.000000 4.500000 +v -2.000000 2.000000 4.000000 +v -1.500000 2.000000 4.000000 +v -4.500000 4.000000 1.500000 +v -4.500000 4.000000 2.000000 +v -4.000000 4.000000 2.000000 +v -4.000000 4.000000 1.500000 +v -4.500000 4.000000 4.000000 +v -4.500000 4.000000 4.500000 +v -4.000000 4.000000 4.500000 +v -4.000000 4.000000 4.000000 +v -2.000000 4.000000 1.500000 +v -2.000000 4.000000 2.000000 +v -1.500000 4.000000 2.000000 +v -1.500000 4.000000 1.500000 +v -2.000000 4.000000 4.000000 +v -2.000000 4.000000 4.500000 +v -1.500000 4.000000 4.500000 +v -1.500000 4.000000 4.000000 +v -4.500000 4.000000 4.500000 +v -1.500000 4.000000 4.500000 +v -4.500000 4.000000 1.500000 +v -1.500000 4.000000 1.500000 +v -4.500000 4.250000 1.500000 +v -4.500000 4.250000 4.500000 +v -1.500000 4.250000 4.500000 +v -1.500000 4.250000 1.500000 +v -4.000000 2.000000 4.250000 +v -2.000000 2.000000 4.250000 +v -4.000000 4.000000 4.250000 +v -2.000000 4.000000 4.250000 +v -2.000000 4.000000 1.750000 +v -4.000000 4.000000 1.750000 +v -2.000000 2.000000 1.750000 +v -4.000000 2.000000 1.750000 +v -1.750000 2.000000 2.000000 +v -1.750000 2.000000 4.000000 +v -1.750000 4.000000 2.000000 +v -1.750000 4.000000 4.000000 +v -4.250000 4.000000 4.000000 +v -4.250000 4.000000 2.000000 +v -4.250000 2.000000 4.000000 +v -4.250000 2.000000 2.000000 +v -4.500000 4.250000 2.000000 +v -4.000000 4.250000 2.000000 +v -4.500000 4.250000 1.500000 +v -4.000000 4.250000 1.500000 +v -4.500000 4.250000 4.500000 +v -4.000000 4.250000 4.500000 +v -4.500000 4.250000 4.000000 +v -4.000000 4.250000 4.000000 +v -2.000000 4.250000 2.000000 +v -1.500000 4.250000 2.000000 +v -2.000000 4.250000 1.500000 +v -1.500000 4.250000 1.500000 +v -2.000000 4.250000 4.500000 +v -1.500000 4.250000 4.500000 +v -2.000000 4.250000 4.000000 +v -1.500000 4.250000 4.000000 +v -4.500000 6.250000 1.500000 +v -4.500000 6.250000 2.000000 +v -4.000000 6.250000 2.000000 +v -4.000000 6.250000 1.500000 +v -4.500000 6.250000 4.000000 +v -4.500000 6.250000 4.500000 +v -4.000000 6.250000 4.500000 +v -4.000000 6.250000 4.000000 +v -2.000000 6.250000 1.500000 +v -2.000000 6.250000 2.000000 +v -1.500000 6.250000 2.000000 +v -1.500000 6.250000 1.500000 +v -2.000000 6.250000 4.000000 +v -2.000000 6.250000 4.500000 +v -1.500000 6.250000 4.500000 +v -1.500000 6.250000 4.000000 +v -4.500000 6.250000 4.500000 +v -1.500000 6.250000 4.500000 +v -4.500000 6.250000 1.500000 +v -1.500000 6.250000 1.500000 +v -4.500000 6.500000 1.500000 +v -4.500000 6.500000 4.500000 +v -1.500000 6.500000 4.500000 +v -1.500000 6.500000 1.500000 +v -4.000000 4.250000 4.250000 +v -2.000000 4.250000 4.250000 +v -4.000000 6.250000 4.250000 +v -2.000000 6.250000 4.250000 +v -2.000000 6.250000 1.750000 +v -4.000000 6.250000 1.750000 +v -2.000000 4.250000 1.750000 +v -4.000000 4.250000 1.750000 +v -1.750000 4.250000 2.000000 +v -1.750000 4.250000 4.000000 +v -1.750000 6.250000 2.000000 +v -1.750000 6.250000 4.000000 +v -4.250000 6.250000 4.000000 +v -4.250000 6.250000 2.000000 +v -4.250000 4.250000 4.000000 +v -4.250000 4.250000 2.000000 +v -4.500000 6.500000 2.000000 +v -4.000000 6.500000 2.000000 +v -4.500000 6.500000 1.500000 +v -4.000000 6.500000 1.500000 +v -4.500000 6.500000 4.500000 +v -4.000000 6.500000 4.500000 +v -4.500000 6.500000 4.000000 +v -4.000000 6.500000 4.000000 +v -2.000000 6.500000 2.000000 +v -1.500000 6.500000 2.000000 +v -2.000000 6.500000 1.500000 +v -1.500000 6.500000 1.500000 +v -2.000000 6.500000 4.500000 +v -1.500000 6.500000 4.500000 +v -2.000000 6.500000 4.000000 +v -1.500000 6.500000 4.000000 +v -4.500000 8.500000 1.500000 +v -4.500000 8.500000 2.000000 +v -4.000000 8.500000 2.000000 +v -4.000000 8.500000 1.500000 +v -4.500000 8.500000 4.000000 +v -4.500000 8.500000 4.500000 +v -4.000000 8.500000 4.500000 +v -4.000000 8.500000 4.000000 +v -2.000000 8.500000 1.500000 +v -2.000000 8.500000 2.000000 +v -1.500000 8.500000 2.000000 +v -1.500000 8.500000 1.500000 +v -2.000000 8.500000 4.000000 +v -2.000000 8.500000 4.500000 +v -1.500000 8.500000 4.500000 +v -1.500000 8.500000 4.000000 +v -4.500000 8.500000 4.500000 +v -1.500000 8.500000 4.500000 +v -4.500000 8.500000 1.500000 +v -1.500000 8.500000 1.500000 +v -4.500000 8.750000 1.500000 +v -4.500000 8.750000 4.500000 +v -1.500000 8.750000 4.500000 +v -1.500000 8.750000 1.500000 +v -4.000000 6.500000 4.250000 +v -2.000000 6.500000 4.250000 +v -4.000000 8.500000 4.250000 +v -2.000000 8.500000 4.250000 +v -2.000000 8.500000 1.750000 +v -4.000000 8.500000 1.750000 +v -2.000000 6.500000 1.750000 +v -4.000000 6.500000 1.750000 +v -1.750000 6.500000 2.000000 +v -1.750000 6.500000 4.000000 +v -1.750000 8.500000 2.000000 +v -1.750000 8.500000 4.000000 +v -4.250000 8.500000 4.000000 +v -4.250000 8.500000 2.000000 +v -4.250000 6.500000 4.000000 +v -4.250000 6.500000 2.000000 +v -4.500000 8.750000 2.000000 +v -4.000000 8.750000 2.000000 +v -4.500000 8.750000 1.500000 +v -4.000000 8.750000 1.500000 +v -4.500000 8.750000 4.500000 +v -4.000000 8.750000 4.500000 +v -4.500000 8.750000 4.000000 +v -4.000000 8.750000 4.000000 +v -2.000000 8.750000 2.000000 +v -1.500000 8.750000 2.000000 +v -2.000000 8.750000 1.500000 +v -1.500000 8.750000 1.500000 +v -2.000000 8.750000 4.500000 +v -1.500000 8.750000 4.500000 +v -2.000000 8.750000 4.000000 +v -1.500000 8.750000 4.000000 +v -4.500000 10.750000 1.500000 +v -4.500000 10.750000 2.000000 +v -4.000000 10.750000 2.000000 +v -4.000000 10.750000 1.500000 +v -4.500000 10.750000 4.000000 +v -4.500000 10.750000 4.500000 +v -4.000000 10.750000 4.500000 +v -4.000000 10.750000 4.000000 +v -2.000000 10.750000 1.500000 +v -2.000000 10.750000 2.000000 +v -1.500000 10.750000 2.000000 +v -1.500000 10.750000 1.500000 +v -2.000000 10.750000 4.000000 +v -2.000000 10.750000 4.500000 +v -1.500000 10.750000 4.500000 +v -1.500000 10.750000 4.000000 +v -4.500000 10.750000 4.500000 +v -1.500000 10.750000 4.500000 +v -4.500000 10.750000 1.500000 +v -1.500000 10.750000 1.500000 +v -4.500000 11.000000 1.500000 +v -4.500000 11.000000 4.500000 +v -1.500000 11.000000 4.500000 +v -1.500000 11.000000 1.500000 +v -4.000000 8.750000 4.250000 +v -2.000000 8.750000 4.250000 +v -4.000000 10.750000 4.250000 +v -2.000000 10.750000 4.250000 +v -2.000000 10.750000 1.750000 +v -4.000000 10.750000 1.750000 +v -2.000000 8.750000 1.750000 +v -4.000000 8.750000 1.750000 +v -1.750000 8.750000 2.000000 +v -1.750000 8.750000 4.000000 +v -1.750000 10.750000 2.000000 +v -1.750000 10.750000 4.000000 +v -4.250000 10.750000 4.000000 +v -4.250000 10.750000 2.000000 +v -4.250000 8.750000 4.000000 +v -4.250000 8.750000 2.000000 +v -3.750000 15.250000 4.625000 +v -4.625000 15.250000 3.750000 +v -3.187500 13.250000 3.750000 +v -3.750000 13.250000 3.187500 +v -3.750000 15.250000 3.187500 +v -3.187500 15.250000 3.750000 +v -3.750000 15.500000 4.625000 +v -4.625000 15.500000 3.750000 +v -4.625000 15.250000 3.750000 +v -3.750000 15.250000 4.625000 +v -2.250000 15.500000 1.375000 +v -2.250000 15.250000 1.375000 +v -1.375000 15.500000 2.250000 +v -1.375000 15.250000 2.250000 +v -3.375000 15.500000 1.750000 +v -2.625000 15.500000 1.750000 +v -1.750000 15.500000 2.625000 +v -1.750000 15.500000 3.375000 +v -2.625000 15.500000 4.250000 +v -3.375000 15.500000 4.250000 +v -4.250000 15.500000 3.375000 +v -4.250000 15.500000 2.625000 +v -4.250000 15.250000 2.625000 +v -4.250000 15.250000 3.375000 +v -1.750000 15.250000 2.625000 +v -1.750000 15.250000 3.375000 +v -2.625000 15.250000 1.750000 +v -3.375000 15.250000 1.750000 +v -2.625000 15.250000 4.250000 +v -3.375000 15.250000 4.250000 +v -3.187500 2.000000 2.437500 +v -2.812500 2.000000 2.437500 +v -3.187500 2.000000 2.062500 +v -2.812500 2.000000 2.062500 +v -3.187500 2.000000 3.937500 +v -2.812500 2.000000 3.937500 +v -3.187500 2.000000 3.562500 +v -2.812500 2.000000 3.562500 +v -3.562500 2.000000 3.187500 +v -3.562500 2.000000 2.812500 +v -3.937500 2.000000 3.187500 +v -3.937500 2.000000 2.812500 +v -2.062500 2.000000 3.187500 +v -2.062500 2.000000 2.812500 +v -2.437500 2.000000 3.187500 +v -2.437500 2.000000 2.812500 +v -3.187500 17.500000 3.562500 +v -2.812500 17.500000 3.562500 +v -2.812500 17.500000 3.937500 +v -3.187500 17.500000 3.937500 +v -3.187500 17.500000 2.062500 +v -2.812500 17.500000 2.062500 +v -2.812500 17.500000 2.437500 +v -3.187500 17.500000 2.437500 +v -3.187500 2.000000 2.250000 +v -2.812500 2.000000 2.250000 +v -3.187500 2.000000 3.750000 +v -2.812500 2.000000 3.750000 +v -3.750000 2.000000 3.187500 +v -3.750000 2.000000 2.812500 +v -2.250000 2.000000 3.187500 +v -2.250000 2.000000 2.812500 +v -3.562500 17.500000 3.187500 +v -3.562500 17.500000 2.812500 +v -3.937500 17.500000 2.812500 +v -3.937500 17.500000 3.187500 +v -2.062500 17.500000 3.187500 +v -2.062500 17.500000 2.812500 +v -2.437500 17.500000 2.812500 +v -2.437500 17.500000 3.187500 +v -3.187500 17.500000 2.250000 +v -2.812500 17.500000 2.250000 +v -3.187500 17.500000 3.750000 +v -2.812500 17.500000 3.750000 +v -3.750000 17.500000 3.187500 +v -3.750000 17.500000 2.812500 +v -2.250000 17.500000 3.187500 +v -2.250000 17.500000 2.812500 +v -3.375000 13.000000 4.250000 +v -2.625000 13.000000 4.250000 +v -3.375000 13.000000 1.750000 +v -2.625000 13.000000 1.750000 +v -1.750000 13.000000 3.375000 +v -1.750000 13.000000 2.625000 +v -4.250000 13.000000 3.375000 +v -4.250000 13.000000 2.625000 +v -4.250000 13.250000 2.625000 +v -4.250000 13.250000 3.375000 +v -3.375000 13.250000 4.250000 +v -2.625000 13.250000 4.250000 +v -1.750000 13.250000 3.375000 +v -1.750000 13.250000 2.625000 +v -2.625000 13.250000 1.750000 +v -3.375000 13.250000 1.750000 +v -4.250000 17.500000 2.625000 +v -4.250000 17.500000 3.375000 +v -3.375000 17.500000 4.250000 +v -2.625000 17.500000 4.250000 +v -1.750000 17.500000 3.375000 +v -1.750000 17.500000 2.625000 +v -2.625000 17.500000 1.750000 +v -3.375000 17.500000 1.750000 +v -4.250000 17.750000 2.625000 +v -4.250000 17.750000 3.375000 +v -3.375000 17.750000 4.250000 +v -2.625000 17.750000 4.250000 +v -1.750000 17.750000 3.375000 +v -1.750000 17.750000 2.625000 +v -2.625000 17.750000 1.750000 +v -3.375000 17.750000 1.750000 +v -1.375000 13.000000 2.250000 +v -1.375000 13.250000 2.250000 +v -2.250000 13.000000 1.375000 +v -2.250000 13.250000 1.375000 +v -3.750000 13.000000 4.625000 +v -4.625000 13.000000 3.750000 +v -4.625000 13.250000 3.750000 +v -3.750000 13.250000 4.625000 +v 1.375000 4.000000 0.250000 +v 1.375000 3.000000 0.250000 +v 1.375000 4.000000 -0.250000 +v 1.375000 3.000000 -0.250000 +v 1.125000 4.000000 -0.250000 +v 1.125000 4.000000 0.250000 +v 1.125000 3.000000 0.250000 +v 1.125000 3.000000 -0.250000 +v 2.500000 2.000000 0.250000 +v 3.500000 2.000000 0.250000 +v 2.500000 2.000000 -0.250000 +v 3.500000 2.000000 -0.250000 +v 2.500000 2.250000 -0.250000 +v 2.500000 2.250000 0.250000 +v 3.500000 2.250000 0.250000 +v 3.500000 2.250000 -0.250000 +v 2.919652 2.029244 0.125000 +v 3.080348 2.220756 0.125000 +v 2.919652 2.029244 -0.125000 +v 3.080348 2.220756 -0.125000 +v 2.125000 2.000000 0.375000 +v 1.875000 2.000000 0.375000 +v 2.125000 2.000000 0.625000 +v 1.875000 2.000000 0.625000 +v 1.196051 3.475517 -0.125000 +v 1.196051 3.475517 0.125000 +v 1.356748 3.667028 0.125000 +v 1.356748 3.667028 -0.125000 +v 1.875000 3.000000 0.125000 +v 2.125000 3.000000 0.125000 +v 2.125000 3.000000 -0.125000 +v 1.875000 3.000000 -0.125000 +v 1.875000 2.000000 -0.375000 +v 2.125000 2.000000 -0.375000 +v 1.875000 2.000000 -0.625000 +v 2.125000 2.000000 -0.625000 +v 1.875000 3.000000 -0.125000 +v 1.875000 3.000000 0.125000 +v 2.125000 3.000000 0.125000 +v 2.125000 3.000000 -0.125000 +v -1.615781 2.783195 1.792558 +v -1.792558 2.783195 1.615781 +v -1.502151 2.591684 1.678928 +v -1.678928 2.591684 1.502151 +v -0.757348 3.475517 0.934124 +v -0.934124 3.475517 0.757348 +v -1.047754 3.667028 0.870978 +v -0.870978 3.667028 1.047755 +v -3.750000 15.250000 4.625000 +v -4.625000 15.250000 3.750000 +v -3.187500 13.250000 3.750000 +v -3.750000 13.250000 3.187500 +v -3.750000 15.250000 3.187500 +v -3.187500 15.250000 3.750000 +v -3.187500 2.000000 2.250000 +v -2.812500 2.000000 2.250000 +v -3.187500 2.000000 3.750000 +v -2.812500 2.000000 3.750000 +v -3.750000 2.000000 3.187500 +v -3.750000 2.000000 2.812500 +v -2.250000 2.000000 3.187500 +v -2.250000 2.000000 2.812500 +v -3.187500 17.500000 2.250000 +v -2.812500 17.500000 2.250000 +v -3.187500 17.500000 3.750000 +v -2.812500 17.500000 3.750000 +v -3.750000 17.500000 3.187500 +v -3.750000 17.500000 2.812500 +v -2.250000 17.500000 3.187500 +v -2.250000 17.500000 2.812500 +v -4.000000 2.000000 4.250000 +v -2.000000 2.000000 4.250000 +v -4.000000 4.000000 4.250000 +v -2.000000 4.000000 4.250000 +v -2.000000 4.000000 1.750000 +v -4.000000 4.000000 1.750000 +v -2.000000 2.000000 1.750000 +v -4.000000 2.000000 1.750000 +v -1.750000 2.000000 2.000000 +v -1.750000 2.000000 4.000000 +v -1.750000 4.000000 2.000000 +v -1.750000 4.000000 4.000000 +v -4.250000 4.000000 4.000000 +v -4.250000 4.000000 2.000000 +v -4.250000 2.000000 4.000000 +v -4.250000 2.000000 2.000000 +v -4.000000 4.250000 4.250000 +v -2.000000 4.250000 4.250000 +v -4.000000 6.250000 4.250000 +v -2.000000 6.250000 4.250000 +v -2.000000 6.250000 1.750000 +v -4.000000 6.250000 1.750000 +v -2.000000 4.250000 1.750000 +v -4.000000 4.250000 1.750000 +v -1.750000 4.250000 2.000000 +v -1.750000 4.250000 4.000000 +v -1.750000 6.250000 2.000000 +v -1.750000 6.250000 4.000000 +v -4.250000 6.250000 4.000000 +v -4.250000 6.250000 2.000000 +v -4.250000 4.250000 4.000000 +v -4.250000 4.250000 2.000000 +v -4.000000 6.500000 4.250000 +v -2.000000 6.500000 4.250000 +v -4.000000 8.500000 4.250000 +v -2.000000 8.500000 4.250000 +v -2.000000 8.500000 1.750000 +v -4.000000 8.500000 1.750000 +v -2.000000 6.500000 1.750000 +v -4.000000 6.500000 1.750000 +v -1.750000 6.500000 2.000000 +v -1.750000 6.500000 4.000000 +v -1.750000 8.500000 2.000000 +v -1.750000 8.500000 4.000000 +v -4.250000 8.500000 4.000000 +v -4.250000 8.500000 2.000000 +v -4.250000 6.500000 4.000000 +v -4.250000 6.500000 2.000000 +v -4.000000 8.750000 4.250000 +v -2.000000 8.750000 4.250000 +v -4.000000 10.750000 4.250000 +v -2.000000 10.750000 4.250000 +v -2.000000 10.750000 1.750000 +v -4.000000 10.750000 1.750000 +v -2.000000 8.750000 1.750000 +v -4.000000 8.750000 1.750000 +v -1.750000 8.750000 2.000000 +v -1.750000 8.750000 4.000000 +v -1.750000 10.750000 2.000000 +v -1.750000 10.750000 4.000000 +v -4.250000 10.750000 4.000000 +v -4.250000 10.750000 2.000000 +v -4.250000 8.750000 4.000000 +v -4.250000 8.750000 2.000000 +v 1.149048 4.000000 -0.795495 +v 1.149048 3.000000 -0.795495 +v 0.795495 4.000000 -1.149048 +v 0.795495 3.000000 -1.149048 +v 0.618718 4.000000 -0.972272 +v 0.972272 4.000000 -0.618718 +v 0.972272 3.000000 -0.618718 +v 0.618718 3.000000 -0.972272 +v 1.944544 2.000000 -1.590990 +v 2.651650 2.000000 -2.298097 +v 1.590990 2.000000 -1.944544 +v 2.298097 2.000000 -2.651650 +v 1.590990 2.250000 -1.944544 +v 1.944544 2.250000 -1.590990 +v 2.651650 2.250000 -2.298097 +v 2.298097 2.250000 -2.651650 +v 2.152894 2.029244 -1.976117 +v 2.266524 2.220756 -2.089747 +v 1.976117 2.029244 -2.152894 +v 2.089747 2.220756 -2.266524 +v 1.767767 2.000000 -1.237437 +v 1.590990 2.000000 -1.060660 +v 1.944544 2.000000 -1.060660 +v 1.767767 2.000000 -0.883883 +v 0.757348 3.475517 -0.934124 +v 0.934124 3.475517 -0.757348 +v 1.047754 3.667028 -0.870978 +v 0.870978 3.667028 -1.047754 +v 1.414214 3.000000 -1.237437 +v 1.590990 3.000000 -1.414214 +v 1.414214 3.000000 -1.590990 +v 1.237437 3.000000 -1.414214 +v 1.060660 2.000000 -1.590990 +v 1.237437 2.000000 -1.767767 +v 0.883883 2.000000 -1.767767 +v 1.060660 2.000000 -1.944544 +v 1.237437 3.000000 -1.414214 +v 1.414214 3.000000 -1.237437 +v 1.590990 3.000000 -1.414214 +v 1.414214 3.000000 -1.590990 +v 0.795495 4.000000 1.149048 +v 0.795495 3.000000 1.149048 +v 1.149048 4.000000 0.795495 +v 1.149048 3.000000 0.795495 +v 0.972272 4.000000 0.618719 +v 0.618718 4.000000 0.972272 +v 0.618718 3.000000 0.972272 +v 0.972272 3.000000 0.618719 +v 1.590990 2.000000 1.944544 +v 2.298097 2.000000 2.651650 +v 1.944543 2.000000 1.590990 +v 2.651650 2.000000 2.298097 +v 1.944543 2.250000 1.590990 +v 1.590990 2.250000 1.944544 +v 2.298097 2.250000 2.651650 +v 2.651650 2.250000 2.298097 +v 1.976117 2.029244 2.152894 +v 2.089747 2.220755 2.266524 +v 2.152894 2.029244 1.976117 +v 2.266524 2.220755 2.089747 +v 1.237437 2.000000 1.767767 +v 1.060660 2.000000 1.590990 +v 1.060660 2.000000 1.944544 +v 0.883883 2.000000 1.767767 +v 0.934124 3.475517 0.757348 +v 0.757348 3.475517 0.934125 +v 0.870978 3.667028 1.047755 +v 1.047754 3.667028 0.870978 +v 1.237437 3.000000 1.414214 +v 1.414213 3.000000 1.590990 +v 1.590990 3.000000 1.414214 +v 1.414214 3.000000 1.237437 +v 1.590990 2.000000 1.060660 +v 1.767767 2.000000 1.237437 +v 1.767767 2.000000 0.883883 +v 1.944544 2.000000 1.060660 +v 1.414214 3.000000 1.237437 +v 1.237437 3.000000 1.414214 +v 1.414213 3.000000 1.590990 +v 1.590990 3.000000 1.414214 +v -1.375000 4.000000 -0.250000 +v -1.375000 3.000000 -0.250000 +v -1.375000 4.000000 0.250000 +v -1.375000 3.000000 0.250000 +v -1.125000 4.000000 0.250000 +v -1.125000 4.000000 -0.250000 +v -1.125000 3.000000 -0.250000 +v -1.125000 3.000000 0.250000 +v -2.500000 2.000000 -0.250000 +v -3.500000 2.000000 -0.250000 +v -2.500000 2.000000 0.250000 +v -3.500000 2.000000 0.250000 +v -2.500000 2.250000 0.250000 +v -2.500000 2.250000 -0.250000 +v -3.500000 2.250000 -0.250000 +v -3.500000 2.250000 0.250000 +v -2.919652 2.029244 -0.125000 +v -3.080348 2.220756 -0.125000 +v -2.919652 2.029244 0.125000 +v -3.080348 2.220756 0.125000 +v -2.125000 2.000000 -0.375000 +v -1.875000 2.000000 -0.375000 +v -2.125000 2.000000 -0.625000 +v -1.875000 2.000000 -0.625000 +v -1.196051 3.475517 0.125000 +v -1.196051 3.475517 -0.125000 +v -1.356748 3.667028 -0.125000 +v -1.356748 3.667028 0.125000 +v -1.875000 3.000000 -0.125000 +v -2.125000 3.000000 -0.125000 +v -2.125000 3.000000 0.125000 +v -1.875000 3.000000 0.125000 +v -1.875000 2.000000 0.375000 +v -2.125000 2.000000 0.375000 +v -1.875000 2.000000 0.625000 +v -2.125000 2.000000 0.625000 +v -1.875000 3.000000 0.125000 +v -1.875000 3.000000 -0.125000 +v -2.125000 3.000000 -0.125000 +v -2.125000 3.000000 0.125000 +v -0.795495 4.000000 -1.149048 +v -0.795495 3.000000 -1.149048 +v -1.149049 4.000000 -0.795495 +v -1.149049 3.000000 -0.795495 +v -0.972272 4.000000 -0.618719 +v -0.618718 4.000000 -0.972272 +v -0.618718 3.000000 -0.972272 +v -0.972272 3.000000 -0.618719 +v -1.590990 2.000000 -1.944544 +v -2.298097 2.000000 -2.651650 +v -1.944544 2.000000 -1.590990 +v -2.651650 2.000000 -2.298097 +v -1.944544 2.250000 -1.590990 +v -1.590990 2.250000 -1.944544 +v -2.298097 2.250000 -2.651650 +v -2.651650 2.250000 -2.298097 +v -1.976117 2.029244 -2.152894 +v -2.089747 2.220755 -2.266523 +v -2.152894 2.029244 -1.976117 +v -2.266524 2.220755 -2.089746 +v -1.237437 2.000000 -1.767767 +v -1.060660 2.000000 -1.590990 +v -1.060660 2.000000 -1.944544 +v -0.883884 2.000000 -1.767767 +v -0.934124 3.475517 -0.757348 +v -0.757348 3.475517 -0.934124 +v -0.870978 3.667028 -1.047755 +v -1.047755 3.667028 -0.870978 +v -1.237437 3.000000 -1.414213 +v -1.414213 3.000000 -1.590990 +v -1.590990 3.000000 -1.414213 +v -1.414214 3.000000 -1.237437 +v -1.590990 2.000000 -1.060660 +v -1.767767 2.000000 -1.237437 +v -1.767767 2.000000 -0.883883 +v -1.944544 2.000000 -1.060660 +v -1.414214 3.000000 -1.237437 +v -1.237437 3.000000 -1.414213 +v -1.414213 3.000000 -1.590990 +v -1.590990 3.000000 -1.414213 +v -1.149048 4.000000 0.795495 +v -1.149048 3.000000 0.795495 +v -0.795495 4.000000 1.149049 +v -0.795495 3.000000 1.149049 +v -0.618718 4.000000 0.972272 +v -0.972272 4.000000 0.618719 +v -0.972272 3.000000 0.618719 +v -0.618718 3.000000 0.972272 +v -1.767767 2.000000 1.237437 +v -1.590990 2.000000 1.060660 +v -1.944543 2.000000 1.060660 +v -1.767767 2.000000 0.883884 +v -1.414213 3.000000 1.237437 +v -1.590990 3.000000 1.414214 +v -1.414213 3.000000 1.590990 +v -1.237437 3.000000 1.414214 +v -1.060660 2.000000 1.590990 +v -1.237437 2.000000 1.767767 +v -0.883883 2.000000 1.767767 +v -1.060660 2.000000 1.944544 +v -1.237437 3.000000 1.414214 +v -1.414213 3.000000 1.237437 +v -1.590990 3.000000 1.414214 +v -1.414213 3.000000 1.590990 +vt 0.269231 0.532258 +vt 0.115385 0.725806 +vt 0.115385 0.532258 +vt 0.102564 0.403226 +vt 0.000000 0.080645 +vt 0.102564 0.209677 +vt 0.000000 0.064516 +vt 0.346154 0.048387 +vt 0.358974 0.064516 +vt 0.358974 0.080645 +vt -0.000000 0.080645 +vt 0.358974 0.064516 +vt 0.358974 0.080645 +vt -0.000000 0.080645 +vt 0.358974 0.064516 +vt 0.358974 0.080645 +vt -0.000000 0.080645 +vt 0.358974 0.064516 +vt 0.358974 0.080645 +vt 0.012821 0.048387 +vt 0.346154 -0.000000 +vt 0.346154 0.048387 +vt -0.000000 0.064516 +vt -0.000000 0.064516 +vt 0.346154 0.048387 +vt -0.000000 0.064516 +vt 0.346154 0.048387 +vt 0.256410 0.403226 +vt -0.000000 0.532258 +vt 0.012821 0.048387 +vt 0.346154 -0.000000 +vt 0.012821 0.048387 +vt 0.346154 0.000000 +vt 0.012821 0.048387 +vt 0.346154 -0.000000 +vt 0.256410 0.209677 +vt 0.358974 0.532258 +vt 0.153846 0.274194 +vt 0.153846 0.338710 +vt 0.205128 0.338710 +vt 0.205128 0.274194 +vt 0.371795 0.596774 +vt 0.397436 0.854839 +vt 0.371795 0.854839 +vt 0.320513 0.596774 +vt 0.346154 0.854839 +vt 0.320513 0.854839 +vt 0.346154 0.596774 +vt 0.320513 0.532258 +vt 0.269231 0.596774 +vt 0.371795 0.887097 +vt 0.371795 0.919355 +vt 0.320513 0.919355 +vt 0.205128 0.806452 +vt 0.205128 0.741935 +vt 0.217949 0.741935 +vt 0.051282 0.806452 +vt 0.205128 0.870968 +vt 0.051282 0.870968 +vt -0.000000 0.612903 +vt 0.000000 0.806452 +vt 0.102564 0.596774 +vt 0.051282 0.612903 +vt 0.051282 0.548387 +vt 0.102564 0.741935 +vt 0.410256 0.500000 +vt 0.564103 0.693548 +vt 0.410256 0.693548 +vt 0.564103 0.483871 +vt 0.410256 0.500000 +vt 0.410256 0.483871 +vt 0.564103 0.500000 +vt 0.410256 0.693548 +vt 0.410256 0.709677 +vt 0.564103 0.693548 +vt 0.564103 0.709677 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.397436 0.500000 +vt 0.397436 0.693548 +vt 0.576923 0.693548 +vt 0.576923 0.500000 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.384615 0.129032 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.410256 0.274194 +vt 0.564103 0.467742 +vt 0.410256 0.467742 +vt 0.564103 0.258065 +vt 0.410256 0.274194 +vt 0.410256 0.258065 +vt 0.564103 0.274194 +vt 0.410256 0.467742 +vt 0.410256 0.483871 +vt 0.564103 0.467742 +vt 0.564103 0.483871 +vt 0.461538 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.397436 0.274194 +vt 0.397436 0.467742 +vt 0.576923 0.467742 +vt 0.576923 0.274194 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.384615 -0.000000 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.410256 0.500000 +vt 0.564103 0.693548 +vt 0.410256 0.693548 +vt 0.564103 0.483871 +vt 0.410256 0.500000 +vt 0.410256 0.483871 +vt 0.564103 0.500000 +vt 0.410256 0.693548 +vt 0.410256 0.709677 +vt 0.564103 0.693548 +vt 0.564103 0.709677 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.397436 0.500000 +vt 0.397436 0.693548 +vt 0.576923 0.693548 +vt 0.576923 0.500000 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.384615 0.129032 +vt 0.384615 0.129032 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.410256 0.129032 +vt 0.384615 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.358974 0.258065 +vt 0.358974 0.129032 +vt 0.435897 0.129032 +vt 0.410256 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.129032 +vt 0.435897 0.258065 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.258065 +vt 0.410256 0.274194 +vt 0.564103 0.467742 +vt 0.410256 0.467742 +vt 0.564103 0.258065 +vt 0.410256 0.274194 +vt 0.410256 0.258065 +vt 0.564103 0.274194 +vt 0.410256 0.467742 +vt 0.410256 0.483871 +vt 0.564103 0.467742 +vt 0.564103 0.483871 +vt 0.461538 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.397436 0.274194 +vt 0.397436 0.467742 +vt 0.576923 0.467742 +vt 0.576923 0.274194 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.384615 -0.000000 +vt 0.384615 -0.000000 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.410256 -0.000000 +vt 0.384615 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.358974 0.129032 +vt 0.358974 -0.000000 +vt 0.435897 0.000000 +vt 0.410256 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.000000 +vt 0.435897 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.743590 0.612903 +vt 0.692308 0.612903 +vt 0.743590 0.483871 +vt 0.743590 0.612903 +vt 0.743590 0.483871 +vt 0.692308 0.612903 +vt 0.807692 0.387097 +vt 0.833333 0.467742 +vt 0.807692 0.467742 +vt 0.833333 0.467742 +vt 0.846154 0.387097 +vt 0.846154 0.467742 +vt 0.807692 0.387097 +vt 0.807692 0.467742 +vt 0.833333 0.483871 +vt 0.807692 0.483871 +vt 0.833333 0.387097 +vt 0.807692 0.467742 +vt 0.807692 0.387097 +vt 0.807692 0.387097 +vt 0.833333 0.467742 +vt 0.807692 0.467742 +vt 0.846154 0.467742 +vt 0.833333 0.387097 +vt 0.846154 0.387097 +vt 0.833333 0.483871 +vt 0.807692 0.483871 +vt 0.692308 0.072581 +vt 0.705128 0.120968 +vt 0.692308 0.120968 +vt 0.846154 0.120968 +vt 0.833333 0.072581 +vt 0.846154 0.072581 +vt 0.807692 0.370968 +vt 0.833333 0.387097 +vt 0.807692 0.370968 +vt 0.788462 -0.000000 +vt 0.750000 0.016129 +vt 0.750000 -0.000000 +vt 0.750000 0.193548 +vt 0.788462 0.177419 +vt 0.788462 0.193548 +vt 0.833333 0.072581 +vt 0.788462 0.177419 +vt 0.705128 0.120968 +vt 0.788462 0.016129 +vt 0.833333 0.120968 +vt 0.750000 0.177419 +vt 0.833333 0.016129 +vt 0.846154 0.016129 +vt 0.705128 0.177419 +vt 0.692308 0.177419 +vt 0.692308 0.314516 +vt 0.705128 0.370968 +vt 0.692308 0.370968 +vt 0.692308 -0.000000 +vt 0.673077 1.000000 +vt 0.673077 -0.000000 +vt 0.846154 0.266129 +vt 0.833333 0.209677 +vt 0.846154 0.209677 +vt 0.788462 0.209677 +vt 0.833333 0.314516 +vt 0.750000 0.370968 +vt 0.833333 0.266129 +vt 0.788462 0.370968 +vt 0.705128 0.314516 +vt 0.692308 -0.000000 +vt 0.673077 1.000000 +vt 0.673077 -0.000000 +vt 0.653846 -0.000000 +vt 0.634615 1.000000 +vt 0.634615 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.692308 -0.000000 +vt 0.673077 1.000000 +vt 0.673077 -0.000000 +vt 0.653846 -0.000000 +vt 0.634615 1.000000 +vt 0.634615 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.653846 1.000000 +vt 0.653846 -0.000000 +vt 0.673077 -0.000000 +vt 0.653846 1.000000 +vt 0.692308 -0.000000 +vt 0.673077 1.000000 +vt 0.634615 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.634615 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.653846 1.000000 +vt 0.653846 -0.000000 +vt 0.634615 1.000000 +vt 0.634615 1.000000 +vt 0.653846 1.000000 +vt 0.615385 1.000000 +vt 0.576923 -0.000000 +vt 0.615385 -0.000000 +vt 0.615385 1.000000 +vt 0.576923 -0.000000 +vt 0.615385 -0.000000 +vt 0.615385 -0.000000 +vt 0.576923 1.000000 +vt 0.576923 -0.000000 +vt 0.615385 -0.000000 +vt 0.576923 1.000000 +vt 0.576923 -0.000000 +vt 0.750000 0.387097 +vt 0.788462 0.370968 +vt 0.788462 0.387097 +vt 0.788462 0.193548 +vt 0.750000 0.209677 +vt 0.750000 0.193548 +vt 0.730769 0.483871 +vt 0.705128 0.467742 +vt 0.730769 0.467742 +vt 0.730769 0.483871 +vt 0.705128 0.467742 +vt 0.730769 0.467742 +vt 0.846154 0.314516 +vt 0.833333 0.266129 +vt 0.692308 0.266129 +vt 0.705128 0.314516 +vt 0.833333 0.266129 +vt 0.788462 0.370968 +vt 0.705128 0.314516 +vt 0.788462 0.209677 +vt 0.833333 0.314516 +vt 0.750000 0.370968 +vt 0.846154 0.266129 +vt 0.833333 0.209677 +vt 0.846154 0.209677 +vt 0.692308 0.314516 +vt 0.705128 0.370968 +vt 0.692308 0.370968 +vt 0.750000 0.387097 +vt 0.788462 0.370968 +vt 0.788462 0.387097 +vt 0.788462 0.193548 +vt 0.750000 0.209677 +vt 0.750000 0.193548 +vt 0.846154 0.370968 +vt 0.846154 0.314516 +vt 0.692308 0.209677 +vt 0.705128 0.266129 +vt 0.692308 0.266129 +vt 0.833333 0.266129 +vt 0.705128 0.314516 +vt 0.730769 0.387097 +vt 0.705128 0.370968 +vt 0.730769 0.370968 +vt 0.692308 0.387097 +vt 0.692308 0.467742 +vt 0.705128 0.387097 +vt 0.705128 0.467742 +vt 0.730769 0.387097 +vt 0.730769 0.467742 +vt 0.730769 0.387097 +vt 0.705128 0.370968 +vt 0.730769 0.370968 +vt 0.705128 0.387097 +vt 0.692308 0.467742 +vt 0.692308 0.387097 +vt 0.730769 0.467742 +vt 0.705128 0.387097 +vt 0.730769 0.387097 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.833333 0.540323 +vt 0.846154 0.629032 +vt 0.833333 0.629032 +vt 0.820513 0.540323 +vt 0.820513 0.629032 +vt 0.807692 0.540323 +vt 0.807692 0.629032 +vt 0.794872 0.540323 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.612903 +vt 0.743590 0.483871 +vt 0.692308 0.612903 +vt 0.743590 0.612903 +vt 0.692308 0.612903 +vt 0.743590 0.483871 +vt 0.576923 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.576923 -0.000000 +vt 0.615385 1.000000 +vt 0.615385 -0.000000 +vt 0.576923 1.000000 +vt 0.615385 -0.000000 +vt 0.576923 -0.000000 +vt 0.576923 1.000000 +vt 0.615385 -0.000000 +vt 0.576923 -0.000000 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.258065 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.258065 +vt 0.564103 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.258065 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.129032 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.730769 0.709677 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.730769 0.709677 +vt 0.705128 0.709677 +vt 0.756410 0.500000 +vt 0.782051 0.564516 +vt 0.756410 0.564516 +vt 0.782051 0.483871 +vt 0.756410 0.483871 +vt 0.756410 0.580645 +vt 0.782051 0.580645 +vt 0.794872 0.564516 +vt 0.782051 0.500000 +vt 0.794872 0.500000 +vt 0.743590 0.500000 +vt 0.743590 0.564516 +vt 0.833333 0.629032 +vt 0.820513 0.483871 +vt 0.833333 0.483871 +vt 0.807692 0.629032 +vt 0.807692 0.483871 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.794872 0.483871 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.846154 0.483871 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.705128 0.629032 +vt 0.730769 0.693548 +vt 0.705128 0.693548 +vt 0.743590 0.693548 +vt 0.769231 0.629032 +vt 0.769231 0.693548 +vt 0.730769 0.629032 +vt 0.692308 0.629032 +vt 0.730769 0.612903 +vt 0.705128 0.709677 +vt 0.833333 0.629032 +vt 0.846154 0.693548 +vt 0.833333 0.693548 +vt 0.820513 0.693548 +vt 0.820513 0.629032 +vt 0.807692 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.807692 0.693548 +vt 0.807692 0.629032 +vt 0.820513 0.693548 +vt 0.807692 0.693548 +vt 0.846154 0.629032 +vt 0.833333 0.693548 +vt 0.833333 0.629032 +vt 0.820513 0.629032 +vt 0.794872 0.693548 +vt 0.794872 0.629032 +vt 0.269231 0.725806 +vt 0.012821 0.000000 +vt 0.012821 0.000000 +vt 0.012821 0.000000 +vt 0.012821 0.000000 +vt 0.397436 0.596774 +vt 0.371795 0.532258 +vt 0.371795 0.564516 +vt 0.269231 0.854839 +vt 0.217949 0.725806 +vt 0.256410 0.725806 +vt 0.256410 0.806452 +vt 0.115385 0.548387 +vt 0.115385 0.596774 +vt 0.102564 0.612903 +vt 0.564103 0.500000 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.274194 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.000000 +vt 0.564103 0.000000 +vt 0.564103 0.500000 +vt 0.564103 0.129032 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.258065 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.274194 +vt 0.564103 0.000000 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.000000 +vt 0.461538 0.000000 +vt 0.564103 0.000000 +vt 0.833333 0.387097 +vt 0.833333 0.467742 +vt 0.705128 0.072581 +vt 0.833333 0.370968 +vt 0.833333 0.370968 +vt 0.705128 0.072581 +vt 0.750000 0.016129 +vt 0.788462 0.016129 +vt 0.833333 0.120968 +vt 0.750000 0.177419 +vt 0.692308 1.000000 +vt 0.705128 0.266129 +vt 0.705128 0.266129 +vt 0.750000 0.209677 +vt 0.788462 0.209677 +vt 0.833333 0.314516 +vt 0.750000 0.370968 +vt 0.692308 1.000000 +vt 0.692308 1.000000 +vt 0.692308 1.000000 +vt 0.576923 1.000000 +vt 0.576923 1.000000 +vt 0.615385 1.000000 +vt 0.615385 1.000000 +vt 0.705128 0.483871 +vt 0.705128 0.483871 +vt 0.705128 0.266129 +vt 0.750000 0.209677 +vt 0.788462 0.209677 +vt 0.833333 0.314516 +vt 0.750000 0.370968 +vt 0.833333 0.370968 +vt 0.705128 0.209677 +vt 0.705128 0.387097 +vt 0.705128 0.467742 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.730769 0.709677 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.693548 +vt 0.846154 0.540323 +vt 0.576923 1.000000 +vt 0.576923 1.000000 +vt 0.615385 1.000000 +vt 0.615385 1.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.000000 +vt 0.461538 0.000000 +vt 0.564103 0.000000 +vt 0.564103 0.129032 +vt 0.461538 0.129032 +vt 0.461538 0.129032 +vt 0.564103 0.129032 +vt 0.564103 0.000000 +vt 0.461538 0.000000 +vt 0.461538 0.000000 +vt 0.564103 0.000000 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.730769 0.709677 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.693548 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.693548 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.730769 0.709677 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.693548 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.820513 0.629032 +vt 0.846154 0.629032 +vt 0.794872 0.629032 +vt 0.846154 0.629032 +vt 0.846154 0.693548 +vt 0.743590 0.629032 +vt 0.692308 0.693548 +vt 0.705128 0.612903 +vt 0.730769 0.709677 +vt 0.846154 0.629032 +vt 0.846154 0.693548 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.8412 0.0000 0.5408 +vn -0.5408 0.0000 -0.8412 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.6428 0.7660 0.0000 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 0.4472 0.8944 +vn -0.6428 -0.7660 0.0000 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 -0.4472 0.8944 +vn 0.4545 -0.7660 -0.4545 +vn -0.4545 0.7660 0.4545 +vn -0.8412 0.0000 -0.5408 +vn 0.5408 0.0000 0.8412 +vn 0.4545 0.7660 -0.4545 +vn -0.6325 -0.4472 -0.6325 +vn 0.6325 0.4472 0.6325 +vn -0.4545 -0.7660 0.4545 +vn -0.6325 0.4472 -0.6325 +vn 0.6325 -0.4472 0.6325 +vn 0.4545 0.7660 0.4545 +vn 0.6325 -0.4472 -0.6325 +vn -0.6325 0.4472 0.6325 +vn -0.4545 -0.7660 -0.4545 +vn 0.6325 0.4472 -0.6325 +vn -0.6325 -0.4472 0.6325 +vn -0.6428 0.7660 0.0000 +vn 0.6428 -0.7660 0.0000 +vn -0.4545 0.7660 -0.4545 +vn 0.4545 -0.7660 0.4545 +s off +f 1214/1496/52 1211/1497/52 1212/1498/52 +f 1187/1499/52 1192/1500/52 1188/1501/52 +f 1197/1502/53 1202/1503/53 1198/1504/53 +f 1192/1500/54 1198/1504/54 1194/1505/54 +f 1193/1506/55 1196/1507/55 1191/1508/55 +f 1194/1509/56 1195/1510/56 1193/1511/56 +f 1191/1512/57 1197/1513/57 1192/1514/57 +f 1202/1515/56 1203/1516/56 1201/1517/56 +f 1198/1518/53 1201/1517/53 1195/1510/53 +f 1195/1519/53 1199/1520/53 1196/1507/53 +f 1196/1521/53 1200/1522/53 1197/1513/53 +f 1189/1523/52 1191/1524/52 1187/1499/52 +f 1199/1525/57 1205/1526/57 1200/1522/57 +f 1200/1527/54 1206/1528/54 1202/1503/54 +f 1201/1529/55 1204/1530/55 1199/1520/55 +f 1190/1531/52 1193/1532/52 1189/1523/52 +f 1188/1501/52 1194/1505/52 1190/1531/52 +f 1208/1533/58 1187/1499/58 1188/1501/58 +f 1207/1534/59 1189/1523/59 1187/1499/59 +f 1209/1535/60 1190/1531/60 1189/1523/60 +f 1210/1536/61 1188/1501/61 1190/1531/61 +f 1223/1537/56 1217/1538/56 1222/1539/56 +f 1216/1540/52 1221/1541/52 1215/1542/52 +f 1224/1543/54 1216/1540/54 1219/1544/54 +f 1215/1542/57 1219/1545/57 1216/1540/57 +f 1222/1539/58 1224/1543/58 1223/1537/58 +f 1222/1546/55 1217/1547/55 1218/1548/55 +f 1237/1549/56 1236/1550/56 1235/1551/56 +f 1233/1552/55 1238/1553/55 1232/1554/55 +f 1231/1555/57 1233/1552/57 1232/1556/57 +f 1225/1557/54 1230/1558/54 1231/1559/54 +f 1239/1560/52 1237/1549/52 1233/1552/52 +f 1274/1561/53 1273/1562/53 1272/1563/53 +f 1273/1564/57 1277/1565/57 1272/1566/57 +f 1278/1567/52 1276/1568/52 1277/1565/52 +f 1274/1569/56 1279/1570/56 1275/1571/56 +f 1280/1572/57 1283/1573/57 1282/1574/57 +f 1272/1575/55 1276/1568/55 1274/1576/55 +f 1275/1577/54 1278/1567/54 1273/1578/54 +f 1249/1579/57 1265/1580/57 1248/1581/57 +f 1243/1582/54 1258/1583/54 1241/1584/54 +f 1251/1585/54 1266/1586/54 1249/1579/54 +f 1242/1587/56 1259/1588/56 1243/1582/56 +f 1250/1589/56 1267/1590/56 1251/1585/56 +f 1244/1591/55 1260/1592/55 1246/1593/55 +f 1252/1594/55 1268/1595/55 1254/1596/55 +f 1245/1597/57 1261/1598/57 1244/1591/57 +f 1253/1599/57 1269/1600/57 1252/1594/57 +f 1247/1601/54 1262/1602/54 1245/1597/54 +f 1255/1603/54 1270/1604/54 1253/1599/54 +f 1246/1593/56 1263/1605/56 1247/1606/56 +f 1240/1607/55 1256/1608/55 1242/1587/55 +f 1254/1609/56 1271/1610/56 1255/1603/56 +f 1248/1611/55 1264/1612/55 1250/1589/55 +f 1241/1613/57 1257/1614/57 1240/1607/57 +f 1284/1615/56 1287/1616/56 1285/1617/56 +f 1291/1618/54 1288/1619/54 1290/1620/54 +f 1295/1621/55 1292/1622/55 1293/1623/55 +f 1330/1624/53 1329/1625/53 1328/1626/53 +f 1329/1627/57 1333/1628/57 1328/1629/57 +f 1334/1630/52 1332/1631/52 1333/1628/52 +f 1330/1632/56 1335/1633/56 1331/1634/56 +f 1336/1635/57 1339/1636/57 1338/1637/57 +f 1328/1638/55 1332/1631/55 1330/1639/55 +f 1331/1640/54 1334/1630/54 1329/1641/54 +f 1305/1642/57 1321/1643/57 1304/1644/57 +f 1299/1645/54 1314/1646/54 1297/1647/54 +f 1307/1648/54 1322/1649/54 1305/1642/54 +f 1298/1650/56 1315/1651/56 1299/1645/56 +f 1306/1652/56 1323/1653/56 1307/1648/56 +f 1300/1654/55 1316/1655/55 1302/1656/55 +f 1308/1657/55 1324/1658/55 1310/1659/55 +f 1301/1660/57 1317/1661/57 1300/1654/57 +f 1309/1662/57 1325/1663/57 1308/1657/57 +f 1303/1664/54 1318/1665/54 1301/1660/54 +f 1311/1666/54 1326/1667/54 1309/1662/54 +f 1302/1656/56 1319/1668/56 1303/1669/56 +f 1296/1670/55 1312/1671/55 1298/1650/55 +f 1310/1672/56 1327/1673/56 1311/1666/56 +f 1304/1674/55 1320/1675/55 1306/1652/55 +f 1297/1676/57 1313/1677/57 1296/1670/57 +f 1340/1678/56 1343/1679/56 1341/1680/56 +f 1347/1681/54 1344/1682/54 1346/1683/54 +f 1351/1684/55 1348/1685/55 1349/1686/55 +f 1386/1687/53 1385/1688/53 1384/1689/53 +f 1385/1690/57 1389/1691/57 1384/1692/57 +f 1390/1693/52 1388/1694/52 1389/1691/52 +f 1386/1695/56 1391/1696/56 1387/1697/56 +f 1392/1698/57 1395/1699/57 1394/1700/57 +f 1384/1701/55 1388/1694/55 1386/1702/55 +f 1387/1703/54 1390/1693/54 1385/1704/54 +f 1361/1705/57 1377/1706/57 1360/1707/57 +f 1355/1708/54 1370/1709/54 1353/1710/54 +f 1363/1711/54 1378/1712/54 1361/1705/54 +f 1354/1713/56 1371/1714/56 1355/1708/56 +f 1362/1715/56 1379/1716/56 1363/1711/56 +f 1356/1717/55 1372/1718/55 1358/1719/55 +f 1364/1720/55 1380/1721/55 1366/1722/55 +f 1357/1723/57 1373/1724/57 1356/1717/57 +f 1365/1725/57 1381/1726/57 1364/1720/57 +f 1359/1727/54 1374/1728/54 1357/1723/54 +f 1367/1729/54 1382/1730/54 1365/1725/54 +f 1358/1719/56 1375/1731/56 1359/1732/56 +f 1352/1733/55 1368/1734/55 1354/1713/55 +f 1366/1735/56 1383/1736/56 1367/1729/56 +f 1360/1737/55 1376/1738/55 1362/1715/55 +f 1353/1739/57 1369/1740/57 1352/1733/57 +f 1396/1741/56 1399/1742/56 1397/1743/56 +f 1403/1744/54 1400/1745/54 1402/1746/54 +f 1407/1747/55 1404/1748/55 1405/1749/55 +f 1442/1750/53 1441/1751/53 1440/1752/53 +f 1441/1753/57 1445/1754/57 1440/1755/57 +f 1446/1756/52 1444/1757/52 1445/1754/52 +f 1442/1758/56 1447/1759/56 1443/1760/56 +f 1448/1761/57 1451/1762/57 1450/1763/57 +f 1440/1764/55 1444/1757/55 1442/1765/55 +f 1443/1766/54 1446/1756/54 1441/1767/54 +f 1417/1768/57 1433/1769/57 1416/1770/57 +f 1411/1771/54 1426/1772/54 1409/1773/54 +f 1419/1774/54 1434/1775/54 1417/1768/54 +f 1410/1776/56 1427/1777/56 1411/1771/56 +f 1418/1778/56 1435/1779/56 1419/1774/56 +f 1412/1780/55 1428/1781/55 1414/1782/55 +f 1420/1783/55 1436/1784/55 1422/1785/55 +f 1413/1786/57 1429/1787/57 1412/1780/57 +f 1421/1788/57 1437/1789/57 1420/1783/57 +f 1415/1790/54 1430/1791/54 1413/1786/54 +f 1423/1792/54 1438/1793/54 1421/1788/54 +f 1414/1782/56 1431/1794/56 1415/1795/56 +f 1408/1796/55 1424/1797/55 1410/1776/55 +f 1422/1798/56 1439/1799/56 1423/1792/56 +f 1416/1800/55 1432/1801/55 1418/1778/55 +f 1409/1802/57 1425/1803/57 1408/1796/57 +f 1452/1804/56 1455/1805/56 1453/1806/56 +f 1459/1807/54 1456/1808/54 1458/1809/54 +f 1463/1810/55 1460/1811/55 1461/1812/55 +f 1469/1813/62 1464/1814/62 1466/1815/62 +f 1468/1816/63 1467/1817/63 1465/1818/63 +f 1493/1819/53 1472/1820/53 1487/1821/53 +f 1470/1822/64 1472/1823/64 1473/1824/64 +f 1484/1825/52 1470/1822/52 1483/1826/52 +f 1483/1826/65 1473/1827/65 1493/1828/65 +f 1475/1829/53 1488/1830/53 1490/1831/53 +f 1480/1832/52 1474/1833/52 1479/1834/52 +f 1475/1835/66 1476/1836/66 1477/1837/66 +f 1479/1834/67 1475/1838/67 1490/1839/67 +f 1487/1840/55 1485/1841/55 1486/1842/55 +f 1488/1843/54 1481/1844/54 1489/1845/54 +f 1487/1846/67 1471/1847/67 1484/1825/67 +f 1488/1848/65 1476/1836/65 1480/1832/65 +f 1492/1849/57 1483/1850/57 1493/1851/57 +f 1491/1852/56 1479/1853/56 1490/1854/56 +f 1488/1855/53 1492/1856/53 1487/1857/53 +f 1482/1858/52 1480/1859/52 1478/1860/52 +f 1489/1845/65 1482/1861/65 1492/1862/65 +f 1486/1842/67 1478/1863/67 1491/1864/67 +f 1549/1865/67 1557/1866/67 1544/1867/67 +f 1505/1868/56 1527/1869/56 1503/1870/56 +f 1546/1871/65 1553/1872/65 1543/1873/65 +f 1553/1874/52 1555/1875/52 1557/1876/52 +f 1547/1877/53 1543/1878/53 1548/1879/53 +f 1500/1880/56 1511/1881/56 1501/1882/56 +f 1506/1883/57 1533/1884/57 1508/1885/57 +f 1508/1885/55 1532/1886/55 1509/1887/55 +f 1509/1888/56 1531/1889/56 1507/1890/56 +f 1495/1891/57 1517/1892/57 1494/1893/57 +f 1494/1893/55 1514/1894/55 1496/1895/55 +f 1503/1870/54 1526/1896/54 1502/1897/54 +f 1497/1898/54 1516/1899/54 1495/1891/54 +f 1496/1900/56 1515/1901/56 1497/1898/56 +f 1498/1902/55 1510/1903/55 1500/1904/55 +f 1504/1905/55 1528/1906/55 1505/1907/55 +f 1501/1882/54 1512/1908/54 1499/1909/54 +f 1499/1909/57 1513/1910/57 1498/1902/57 +f 1502/1897/57 1529/1911/57 1504/1905/57 +f 1507/1890/54 1530/1912/54 1506/1883/54 +f 1539/1913/67 1518/1914/67 1523/1915/67 +f 1540/1916/65 1521/1917/65 1524/1918/65 +f 1520/1919/64 1538/1920/64 1522/1921/64 +f 1519/1922/66 1541/1923/66 1525/1924/66 +f 1544/1925/56 1556/1926/56 1545/1927/56 +f 1543/1928/57 1552/1929/57 1542/1930/57 +f 1547/1931/65 1575/1932/65 1555/1933/65 +f 1548/1934/67 1580/1935/67 1551/1936/67 +f 1547/1937/54 1554/1938/54 1546/1871/54 +f 1548/1939/55 1550/1940/55 1549/1865/55 +f 1563/1941/53 1561/1942/53 1559/1943/53 +f 1569/1944/52 1571/1945/52 1573/1946/52 +f 1562/1947/65 1569/1948/65 1561/1949/65 +f 1558/1950/67 1573/1951/67 1565/1952/67 +f 1565/1953/56 1572/1954/56 1564/1955/56 +f 1561/1956/57 1568/1957/57 1560/1958/57 +f 1564/1959/66 1571/1945/66 1563/1960/66 +f 1560/1961/64 1567/1962/64 1559/1963/64 +f 1563/1960/54 1570/1964/54 1562/1947/54 +f 1559/1963/55 1566/1965/55 1558/1950/55 +f 1556/1966/67 1576/1967/67 1545/1968/67 +f 1576/1969/66 1575/1932/66 1574/1970/66 +f 1555/1933/52 1577/1971/52 1556/1966/52 +f 1576/1972/53 1547/1973/53 1545/1974/53 +f 1552/1975/65 1578/1976/65 1542/1977/65 +f 1551/1936/52 1581/1978/52 1552/1975/52 +f 1581/1978/64 1579/1979/64 1578/1980/64 +f 1542/1981/53 1579/1982/53 1548/1983/53 +f 1583/1984/54 1584/1985/54 1582/1986/54 +f 1586/1987/55 1588/1988/55 1587/1989/55 +f 1585/1990/56 1586/1987/56 1584/1985/56 +f 1582/1986/57 1588/1991/57 1583/1984/57 +f 1583/1984/53 1589/1992/53 1585/1990/53 +f 1584/1985/52 1587/1993/52 1582/1986/52 +f 1596/1994/52 1594/1995/52 1595/1996/52 +f 1593/1997/54 1596/1994/54 1591/1998/54 +f 1590/1999/55 1594/1995/55 1592/2000/55 +f 1592/2001/56 1597/2002/56 1593/2003/56 +f 1591/2004/57 1595/1996/57 1590/2005/57 +f 1606/2006/56 1601/2007/56 1600/2008/56 +f 1601/2007/68 1608/2009/68 1599/2010/68 +f 1603/2011/55 1610/2012/55 1613/2013/55 +f 1608/2009/57 1598/2014/57 1599/2010/57 +f 1603/2011/69 1612/2015/69 1602/2016/69 +f 1604/2017/70 1610/2018/70 1605/2019/70 +f 1607/2020/71 1600/2008/71 1598/2021/71 +f 1602/2016/54 1611/2022/54 1604/2017/54 +f 1615/2023/54 1621/2024/54 1620/2025/54 +f 1614/2026/55 1618/2027/55 1616/2028/55 +f 1616/2028/72 1621/2024/72 1617/2029/72 +f 1615/2023/73 1619/2030/73 1614/2031/73 +f 1624/2032/74 1627/2033/74 1626/2034/74 +f 1622/2035/65 1626/2034/65 1629/2036/65 +f 1623/2037/75 1629/2036/75 1628/2038/75 +f 1625/2039/67 1628/2038/67 1627/2040/67 +f 1717/2041/66 1718/2042/66 1716/2043/66 +f 1635/2044/76 1632/2045/76 1630/2046/76 +f 1634/2047/77 1631/2048/77 1633/2049/77 +f 1636/2050/65 1649/2051/65 1641/2052/65 +f 1639/2053/67 1650/2054/67 1642/2055/67 +f 1648/2056/66 1638/2057/66 1640/2058/66 +f 1651/2059/64 1637/2060/64 1643/2061/64 +f 1655/2062/56 1652/2063/56 1654/2064/56 +f 1659/2065/57 1656/2066/57 1657/2067/57 +f 1660/2068/55 1663/2069/55 1662/2070/55 +f 1664/2071/54 1667/2072/54 1665/2073/54 +f 1671/2074/56 1668/2075/56 1670/2076/56 +f 1675/2077/57 1672/2078/57 1673/2079/57 +f 1676/2080/55 1679/2081/55 1678/2082/55 +f 1680/2083/54 1683/2084/54 1681/2085/54 +f 1687/2086/56 1684/2087/56 1686/2088/56 +f 1691/2089/57 1688/2090/57 1689/2091/57 +f 1692/2092/55 1695/2093/55 1694/2094/55 +f 1696/2095/54 1699/2096/54 1697/2097/54 +f 1703/2098/56 1700/2099/56 1702/2100/56 +f 1707/2101/57 1704/2102/57 1705/2103/57 +f 1708/2104/55 1711/2105/55 1710/2106/55 +f 1712/2107/54 1715/2108/54 1713/2109/54 +f 1720/2110/64 1722/2111/64 1721/2112/64 +f 1719/2113/67 1720/2110/67 1718/2042/67 +f 1716/2043/65 1722/2114/65 1717/2041/65 +f 1717/2041/53 1723/2115/53 1719/2113/53 +f 1718/2042/52 1721/2116/52 1716/2043/52 +f 1730/2117/52 1728/2118/52 1729/2119/52 +f 1727/2120/66 1730/2117/66 1725/2121/66 +f 1724/2122/64 1728/2118/64 1726/2123/64 +f 1726/2124/67 1731/2125/67 1727/2126/67 +f 1725/2127/65 1729/2119/65 1724/2128/65 +f 1740/2129/67 1735/2130/67 1734/2131/67 +f 1735/2130/78 1742/2132/78 1733/2133/78 +f 1737/2134/64 1744/2135/64 1747/2136/64 +f 1742/2132/65 1732/2137/65 1733/2133/65 +f 1737/2134/79 1746/2138/79 1736/2139/79 +f 1738/2140/80 1744/2141/80 1739/2142/80 +f 1741/2143/81 1734/2131/81 1732/2144/81 +f 1736/2139/66 1745/2145/66 1738/2140/66 +f 1749/2146/66 1755/2147/66 1754/2148/66 +f 1748/2149/64 1752/2150/64 1750/2151/64 +f 1750/2151/82 1755/2147/82 1751/2152/82 +f 1749/2146/83 1753/2153/83 1748/2154/83 +f 1757/2155/65 1758/2156/65 1756/2157/65 +f 1760/2158/67 1762/2159/67 1761/2160/67 +f 1759/2161/66 1760/2158/66 1758/2156/66 +f 1756/2157/64 1762/2162/64 1757/2155/64 +f 1757/2155/53 1763/2163/53 1759/2161/53 +f 1756/2157/52 1760/2164/52 1761/2165/52 +f 1770/2166/52 1768/2167/52 1769/2168/52 +f 1767/2169/65 1770/2166/65 1765/2170/65 +f 1764/2171/67 1768/2167/67 1766/2172/67 +f 1766/2173/66 1771/2174/66 1767/2175/66 +f 1765/2176/64 1769/2168/64 1764/2177/64 +f 1780/2178/66 1775/2179/66 1774/2180/66 +f 1775/2179/84 1782/2181/84 1773/2182/84 +f 1777/2183/67 1784/2184/67 1787/2185/67 +f 1782/2181/64 1772/2186/64 1773/2182/64 +f 1777/2183/85 1786/2187/85 1776/2188/85 +f 1778/2189/86 1784/2190/86 1779/2191/86 +f 1781/2192/87 1774/2180/87 1772/2193/87 +f 1776/2188/65 1785/2194/65 1778/2189/65 +f 1789/2195/65 1795/2196/65 1794/2197/65 +f 1788/2198/67 1792/2199/67 1790/2200/67 +f 1791/2201/88 1792/2199/88 1795/2196/88 +f 1789/2195/89 1793/2202/89 1788/2203/89 +f 1797/2204/55 1798/2205/55 1796/2206/55 +f 1800/2207/54 1802/2208/54 1801/2209/54 +f 1799/2210/57 1800/2207/57 1798/2205/57 +f 1796/2206/56 1802/2211/56 1797/2204/56 +f 1797/2204/53 1803/2212/53 1799/2210/53 +f 1798/2205/52 1801/2213/52 1796/2206/52 +f 1810/2214/52 1808/2215/52 1809/2216/52 +f 1807/2217/55 1810/2214/55 1805/2218/55 +f 1804/2219/54 1808/2215/54 1806/2220/54 +f 1806/2221/57 1811/2222/57 1807/2223/57 +f 1805/2224/56 1809/2216/56 1804/2225/56 +f 1820/2226/57 1815/2227/57 1814/2228/57 +f 1815/2227/90 1822/2229/90 1813/2230/90 +f 1817/2231/54 1824/2232/54 1827/2233/54 +f 1822/2229/56 1812/2234/56 1813/2230/56 +f 1817/2231/73 1826/2235/73 1816/2236/73 +f 1818/2237/72 1824/2238/72 1819/2239/72 +f 1812/2240/91 1820/2226/91 1814/2228/91 +f 1816/2236/55 1825/2241/55 1818/2237/55 +f 1829/2242/55 1835/2243/55 1834/2244/55 +f 1828/2245/54 1832/2246/54 1830/2247/54 +f 1830/2247/70 1835/2243/70 1831/2248/70 +f 1829/2242/69 1833/2249/69 1828/2250/69 +f 1837/2251/67 1838/2252/67 1836/2253/67 +f 1840/2254/65 1842/2255/65 1841/2256/65 +f 1839/2257/64 1840/2254/64 1838/2252/64 +f 1836/2253/66 1842/2258/66 1837/2251/66 +f 1837/2251/53 1843/2259/53 1839/2257/53 +f 1836/2253/52 1840/2260/52 1841/2261/52 +f 1850/2262/52 1848/2263/52 1849/2264/52 +f 1847/2265/67 1850/2262/67 1845/2266/67 +f 1844/2267/65 1848/2263/65 1846/2268/65 +f 1846/2269/64 1851/2270/64 1847/2271/64 +f 1845/2272/66 1849/2264/66 1844/2273/66 +f 1860/2274/64 1855/2275/64 1854/2276/64 +f 1855/2275/92 1862/2277/92 1853/2278/92 +f 1857/2279/65 1864/2280/65 1867/2281/65 +f 1862/2277/66 1852/2282/66 1853/2278/66 +f 1857/2279/89 1866/2283/89 1856/2284/89 +f 1858/2285/88 1864/2286/88 1859/2287/88 +f 1852/2288/93 1860/2274/93 1854/2276/93 +f 1856/2284/67 1865/2289/67 1858/2285/67 +f 1869/2290/67 1875/2291/67 1874/2292/67 +f 1868/2293/65 1872/2294/65 1870/2295/65 +f 1871/2296/86 1872/2294/86 1875/2291/86 +f 1869/2290/85 1873/2297/85 1868/2298/85 +f 1877/2299/64 1878/2300/64 1876/2301/64 +f 1880/2302/66 1882/2303/66 1881/2304/66 +f 1879/2305/65 1880/2302/65 1878/2300/65 +f 1876/2301/67 1882/2306/67 1877/2299/67 +f 1877/2299/53 1883/2307/53 1879/2305/53 +f 1878/2300/52 1881/2308/52 1876/2301/52 +f 1885/2309/66 1888/2310/66 1891/2311/66 +f 1885/2309/83 1890/2312/83 1884/2313/83 +f 1886/2314/82 1888/2315/82 1887/2316/82 +f 1884/2313/64 1889/2317/64 1886/2314/64 +f 1893/2318/64 1899/2319/64 1898/2320/64 +f 1892/2321/66 1896/2322/66 1894/2323/66 +f 1894/2323/80 1899/2319/80 1895/2324/80 +f 1893/2318/79 1897/2325/79 1892/2326/79 +f 1214/1496/52 1213/2327/52 1211/1497/52 +f 1187/1499/52 1191/1524/52 1192/1500/52 +f 1197/1502/53 1200/1527/53 1202/1503/53 +f 1192/1500/54 1197/1502/54 1198/1504/54 +f 1193/1506/55 1195/1519/55 1196/1507/55 +f 1194/1509/56 1198/1518/56 1195/1510/56 +f 1191/1512/57 1196/1521/57 1197/1513/57 +f 1202/1515/56 1206/2328/56 1203/1516/56 +f 1198/1518/53 1202/1515/53 1201/1517/53 +f 1195/1519/53 1201/1529/53 1199/1520/53 +f 1196/1521/53 1199/1525/53 1200/1522/53 +f 1189/1523/52 1193/1532/52 1191/1524/52 +f 1199/1525/57 1204/2329/57 1205/1526/57 +f 1200/1527/54 1205/2330/54 1206/1528/54 +f 1201/1529/55 1203/2331/55 1204/1530/55 +f 1190/1531/52 1194/1505/52 1193/1532/52 +f 1188/1501/52 1192/1500/52 1194/1505/52 +f 1208/1533/58 1207/1534/58 1187/1499/58 +f 1207/1534/59 1209/1535/59 1189/1523/59 +f 1209/1535/60 1210/1536/60 1190/1531/60 +f 1210/1536/61 1208/1533/61 1188/1501/61 +f 1223/1537/56 1220/2332/56 1217/1538/56 +f 1216/1540/52 1224/1543/52 1221/1541/52 +f 1220/2333/54 1223/2334/54 1219/1544/54 +f 1223/2334/54 1224/1543/54 1219/1544/54 +f 1215/1542/57 1218/2335/57 1219/1545/57 +f 1222/1539/58 1221/1541/58 1224/1543/58 +f 1218/1548/55 1215/1542/55 1221/1541/55 +f 1221/1541/55 1222/1546/55 1218/1548/55 +f 1235/1551/56 1226/2336/56 1234/2337/56 +f 1234/2337/56 1238/2338/56 1235/1551/56 +f 1238/2338/56 1237/1549/56 1235/1551/56 +f 1233/1552/55 1237/1549/55 1238/1553/55 +f 1231/1555/57 1230/1558/57 1233/1552/57 +f 1231/1559/54 1227/2339/54 1225/1557/54 +f 1227/2339/54 1228/2340/54 1225/1557/54 +f 1225/1557/54 1229/2341/54 1230/1558/54 +f 1230/1558/52 1229/2341/52 1239/1560/52 +f 1239/1560/52 1236/1550/52 1237/1549/52 +f 1233/1552/52 1230/1558/52 1239/1560/52 +f 1274/1561/53 1275/2342/53 1273/1562/53 +f 1273/1564/57 1278/1567/57 1277/1565/57 +f 1278/1567/52 1279/1570/52 1276/1568/52 +f 1274/1569/56 1276/1568/56 1279/1570/56 +f 1280/1572/57 1281/2343/57 1283/1573/57 +f 1272/1575/55 1277/1565/55 1276/1568/55 +f 1275/1577/54 1279/1570/54 1278/1567/54 +f 1249/1579/57 1266/1586/57 1265/1580/57 +f 1243/1582/54 1259/1588/54 1258/1583/54 +f 1251/1585/54 1267/1590/54 1266/1586/54 +f 1242/1587/56 1256/1608/56 1259/1588/56 +f 1250/1589/56 1264/1612/56 1267/1590/56 +f 1244/1591/55 1261/1598/55 1260/1592/55 +f 1252/1594/55 1269/1600/55 1268/1595/55 +f 1245/1597/57 1262/1602/57 1261/1598/57 +f 1253/1599/57 1270/1604/57 1269/1600/57 +f 1247/1601/54 1263/2344/54 1262/1602/54 +f 1255/1603/54 1271/1610/54 1270/1604/54 +f 1246/1593/56 1260/1592/56 1263/1605/56 +f 1240/1607/55 1257/1614/55 1256/1608/55 +f 1254/1609/56 1268/2345/56 1271/1610/56 +f 1248/1611/55 1265/2346/55 1264/1612/55 +f 1241/1613/57 1258/2347/57 1257/1614/57 +f 1284/1615/56 1286/2348/56 1287/1616/56 +f 1291/1618/54 1289/2349/54 1288/1619/54 +f 1295/1621/55 1294/2350/55 1292/1622/55 +f 1330/1624/53 1331/2351/53 1329/1625/53 +f 1329/1627/57 1334/1630/57 1333/1628/57 +f 1334/1630/52 1335/1633/52 1332/1631/52 +f 1330/1632/56 1332/1631/56 1335/1633/56 +f 1336/1635/57 1337/2352/57 1339/1636/57 +f 1328/1638/55 1333/1628/55 1332/1631/55 +f 1331/1640/54 1335/1633/54 1334/1630/54 +f 1305/1642/57 1322/1649/57 1321/1643/57 +f 1299/1645/54 1315/1651/54 1314/1646/54 +f 1307/1648/54 1323/1653/54 1322/1649/54 +f 1298/1650/56 1312/1671/56 1315/1651/56 +f 1306/1652/56 1320/1675/56 1323/1653/56 +f 1300/1654/55 1317/1661/55 1316/1655/55 +f 1308/1657/55 1325/1663/55 1324/1658/55 +f 1301/1660/57 1318/1665/57 1317/1661/57 +f 1309/1662/57 1326/1667/57 1325/1663/57 +f 1303/1664/54 1319/2353/54 1318/1665/54 +f 1311/1666/54 1327/1673/54 1326/1667/54 +f 1302/1656/56 1316/1655/56 1319/1668/56 +f 1296/1670/55 1313/1677/55 1312/1671/55 +f 1310/1672/56 1324/2354/56 1327/1673/56 +f 1304/1674/55 1321/2355/55 1320/1675/55 +f 1297/1676/57 1314/2356/57 1313/1677/57 +f 1340/1678/56 1342/2357/56 1343/1679/56 +f 1347/1681/54 1345/2358/54 1344/1682/54 +f 1351/1684/55 1350/2359/55 1348/1685/55 +f 1386/1687/53 1387/2360/53 1385/1688/53 +f 1385/1690/57 1390/1693/57 1389/1691/57 +f 1390/1693/52 1391/1696/52 1388/1694/52 +f 1386/1695/56 1388/1694/56 1391/1696/56 +f 1392/1698/57 1393/2361/57 1395/1699/57 +f 1384/1701/55 1389/1691/55 1388/1694/55 +f 1387/1703/54 1391/1696/54 1390/1693/54 +f 1361/1705/57 1378/1712/57 1377/1706/57 +f 1355/1708/54 1371/1714/54 1370/1709/54 +f 1363/1711/54 1379/1716/54 1378/1712/54 +f 1354/1713/56 1368/1734/56 1371/1714/56 +f 1362/1715/56 1376/1738/56 1379/1716/56 +f 1356/1717/55 1373/1724/55 1372/1718/55 +f 1364/1720/55 1381/1726/55 1380/1721/55 +f 1357/1723/57 1374/1728/57 1373/1724/57 +f 1365/1725/57 1382/1730/57 1381/1726/57 +f 1359/1727/54 1375/2362/54 1374/1728/54 +f 1367/1729/54 1383/1736/54 1382/1730/54 +f 1358/1719/56 1372/1718/56 1375/1731/56 +f 1352/1733/55 1369/1740/55 1368/1734/55 +f 1366/1735/56 1380/2363/56 1383/1736/56 +f 1360/1737/55 1377/2364/55 1376/1738/55 +f 1353/1739/57 1370/2365/57 1369/1740/57 +f 1396/1741/56 1398/2366/56 1399/1742/56 +f 1403/1744/54 1401/2367/54 1400/1745/54 +f 1407/1747/55 1406/2368/55 1404/1748/55 +f 1442/1750/53 1443/2369/53 1441/1751/53 +f 1441/1753/57 1446/1756/57 1445/1754/57 +f 1446/1756/52 1447/1759/52 1444/1757/52 +f 1442/1758/56 1444/1757/56 1447/1759/56 +f 1448/1761/57 1449/2370/57 1451/1762/57 +f 1440/1764/55 1445/1754/55 1444/1757/55 +f 1443/1766/54 1447/1759/54 1446/1756/54 +f 1417/1768/57 1434/1775/57 1433/1769/57 +f 1411/1771/54 1427/1777/54 1426/1772/54 +f 1419/1774/54 1435/1779/54 1434/1775/54 +f 1410/1776/56 1424/1797/56 1427/1777/56 +f 1418/1778/56 1432/1801/56 1435/1779/56 +f 1412/1780/55 1429/1787/55 1428/1781/55 +f 1420/1783/55 1437/1789/55 1436/1784/55 +f 1413/1786/57 1430/1791/57 1429/1787/57 +f 1421/1788/57 1438/1793/57 1437/1789/57 +f 1415/1790/54 1431/2371/54 1430/1791/54 +f 1423/1792/54 1439/1799/54 1438/1793/54 +f 1414/1782/56 1428/1781/56 1431/1794/56 +f 1408/1796/55 1425/1803/55 1424/1797/55 +f 1422/1798/56 1436/2372/56 1439/1799/56 +f 1416/1800/55 1433/2373/55 1432/1801/55 +f 1409/1802/57 1426/2374/57 1425/1803/57 +f 1452/1804/56 1454/2375/56 1455/1805/56 +f 1459/1807/54 1457/2376/54 1456/1808/54 +f 1463/1810/55 1462/2377/55 1460/1811/55 +f 1493/1819/53 1473/2378/53 1472/1820/53 +f 1470/1822/64 1471/1847/64 1472/1823/64 +f 1484/1825/52 1471/1847/52 1470/1822/52 +f 1483/1826/65 1470/1822/65 1473/1827/65 +f 1475/1829/53 1477/2379/53 1488/1830/53 +f 1480/1832/52 1476/1836/52 1474/1833/52 +f 1475/1835/66 1474/1833/66 1476/1836/66 +f 1479/1834/67 1474/1833/67 1475/1838/67 +f 1487/1840/55 1484/2380/55 1485/1841/55 +f 1488/1843/54 1480/1859/54 1481/1844/54 +f 1487/1846/67 1472/2381/67 1471/1847/67 +f 1488/1848/65 1477/2382/65 1476/1836/65 +f 1492/1849/57 1482/1858/57 1483/1850/57 +f 1491/1852/56 1478/1860/56 1479/1853/56 +f 1487/1857/53 1486/2383/53 1491/2384/53 +f 1491/2384/53 1490/2385/53 1488/1855/53 +f 1488/1855/53 1489/2386/53 1492/1856/53 +f 1492/1856/53 1493/2387/53 1487/1857/53 +f 1487/1857/53 1491/2384/53 1488/1855/53 +f 1478/1860/52 1485/1841/52 1484/2380/52 +f 1484/2380/52 1483/1850/52 1482/1858/52 +f 1482/1858/52 1481/1844/52 1480/1859/52 +f 1480/1859/52 1479/1853/52 1478/1860/52 +f 1478/1860/52 1484/2380/52 1482/1858/52 +f 1489/1845/65 1481/1844/65 1482/1861/65 +f 1486/1842/67 1485/1841/67 1478/1863/67 +f 1549/1865/67 1550/1940/67 1557/1866/67 +f 1505/1868/56 1528/2388/56 1527/1869/56 +f 1546/1871/65 1554/1938/65 1553/1872/65 +f 1557/1876/52 1550/1940/52 1551/2389/52 +f 1551/2389/52 1552/1929/52 1553/1874/52 +f 1553/1874/52 1554/1938/52 1555/1875/52 +f 1555/1875/52 1556/1926/52 1557/1876/52 +f 1557/1876/52 1551/2389/52 1553/1874/52 +f 1548/1879/53 1549/2390/53 1544/2391/53 +f 1544/2391/53 1545/2392/53 1547/1877/53 +f 1547/1877/53 1546/2393/53 1543/1878/53 +f 1543/1878/53 1542/2394/53 1548/1879/53 +f 1548/1879/53 1544/2391/53 1547/1877/53 +f 1500/1880/56 1510/2395/56 1511/1881/56 +f 1506/1883/57 1530/1912/57 1533/1884/57 +f 1508/1885/55 1533/1884/55 1532/1886/55 +f 1509/1888/56 1532/2396/56 1531/1889/56 +f 1495/1891/57 1516/1899/57 1517/1892/57 +f 1494/1893/55 1517/1892/55 1514/1894/55 +f 1503/1870/54 1527/1869/54 1526/1896/54 +f 1497/1898/54 1515/1901/54 1516/1899/54 +f 1496/1900/56 1514/2397/56 1515/1901/56 +f 1498/1902/55 1513/1910/55 1510/1903/55 +f 1504/1905/55 1529/1911/55 1528/1906/55 +f 1501/1882/54 1511/1881/54 1512/1908/54 +f 1499/1909/57 1512/1908/57 1513/1910/57 +f 1502/1897/57 1526/1896/57 1529/1911/57 +f 1507/1890/54 1531/1889/54 1530/1912/54 +f 1539/1913/67 1534/2398/67 1518/1914/67 +f 1540/1916/65 1537/2399/65 1521/1917/65 +f 1520/1919/64 1536/2400/64 1538/1920/64 +f 1519/1922/66 1535/2401/66 1541/1923/66 +f 1544/1925/56 1557/1876/56 1556/1926/56 +f 1543/1928/57 1553/1874/57 1552/1929/57 +f 1547/1931/65 1574/2402/65 1575/1932/65 +f 1548/1934/67 1579/2403/67 1580/1935/67 +f 1547/1937/54 1555/1875/54 1554/1938/54 +f 1548/1939/55 1551/2389/55 1550/1940/55 +f 1559/1943/53 1558/2404/53 1565/2405/53 +f 1565/2405/53 1564/2406/53 1563/1941/53 +f 1563/1941/53 1562/2407/53 1561/1942/53 +f 1561/1942/53 1560/2408/53 1559/1943/53 +f 1559/1943/53 1565/2405/53 1563/1941/53 +f 1573/1946/52 1566/1965/52 1567/1962/52 +f 1567/1962/52 1568/1957/52 1569/1944/52 +f 1569/1944/52 1570/1964/52 1571/1945/52 +f 1571/1945/52 1572/1954/52 1573/1946/52 +f 1573/1946/52 1567/1962/52 1569/1944/52 +f 1562/1947/65 1570/1964/65 1569/1948/65 +f 1558/1950/67 1566/1965/67 1573/1951/67 +f 1565/1953/56 1573/1946/56 1572/1954/56 +f 1561/1956/57 1569/1944/57 1568/1957/57 +f 1564/1959/66 1572/2409/66 1571/1945/66 +f 1560/1961/64 1568/2410/64 1567/1962/64 +f 1563/1960/54 1571/1945/54 1570/1964/54 +f 1559/1963/55 1567/1962/55 1566/1965/55 +f 1556/1966/67 1577/1971/67 1576/1967/67 +f 1576/1969/66 1577/1971/66 1575/1932/66 +f 1555/1933/52 1575/1932/52 1577/1971/52 +f 1576/1972/53 1574/2411/53 1547/1973/53 +f 1552/1975/65 1581/1978/65 1578/1976/65 +f 1551/1936/52 1580/1935/52 1581/1978/52 +f 1581/1978/64 1580/1935/64 1579/1979/64 +f 1542/1981/53 1578/2412/53 1579/1982/53 +f 1583/1984/54 1585/1990/54 1584/1985/54 +f 1586/1987/55 1589/2413/55 1588/1988/55 +f 1585/1990/56 1589/2413/56 1586/1987/56 +f 1582/1986/57 1587/2414/57 1588/1991/57 +f 1583/1984/53 1588/2415/53 1589/1992/53 +f 1584/1985/52 1586/2416/52 1587/1993/52 +f 1596/1994/52 1597/2002/52 1594/1995/52 +f 1593/1997/54 1597/2002/54 1596/1994/54 +f 1590/1999/55 1595/1996/55 1594/1995/55 +f 1592/2001/56 1594/1995/56 1597/2002/56 +f 1591/2004/57 1596/1994/57 1595/1996/57 +f 1606/2006/56 1609/2417/56 1601/2007/56 +f 1601/2007/68 1609/2417/68 1608/2009/68 +f 1603/2011/55 1605/2418/55 1610/2012/55 +f 1608/2009/57 1607/2419/57 1598/2014/57 +f 1603/2011/69 1613/2013/69 1612/2015/69 +f 1604/2017/70 1611/2022/70 1610/2018/70 +f 1607/2020/71 1606/2006/71 1600/2008/71 +f 1602/2016/54 1612/2015/54 1611/2022/54 +f 1615/2023/54 1617/2029/54 1621/2024/54 +f 1614/2026/55 1619/2420/55 1618/2027/55 +f 1616/2028/72 1618/2027/72 1621/2024/72 +f 1615/2023/73 1620/2025/73 1619/2030/73 +f 1624/2032/74 1625/2421/74 1627/2033/74 +f 1622/2035/65 1624/2032/65 1626/2034/65 +f 1623/2037/75 1622/2035/75 1629/2036/75 +f 1625/2039/67 1623/2037/67 1628/2038/67 +f 1717/2041/66 1719/2113/66 1718/2042/66 +f 1636/2050/65 1644/2422/65 1649/2051/65 +f 1639/2053/67 1647/2423/67 1650/2054/67 +f 1648/2056/66 1646/2424/66 1638/2057/66 +f 1651/2059/64 1645/2425/64 1637/2060/64 +f 1655/2062/56 1653/2426/56 1652/2063/56 +f 1659/2065/57 1658/2427/57 1656/2066/57 +f 1660/2068/55 1661/2428/55 1663/2069/55 +f 1664/2071/54 1666/2429/54 1667/2072/54 +f 1671/2074/56 1669/2430/56 1668/2075/56 +f 1675/2077/57 1674/2431/57 1672/2078/57 +f 1676/2080/55 1677/2432/55 1679/2081/55 +f 1680/2083/54 1682/2433/54 1683/2084/54 +f 1687/2086/56 1685/2434/56 1684/2087/56 +f 1691/2089/57 1690/2435/57 1688/2090/57 +f 1692/2092/55 1693/2436/55 1695/2093/55 +f 1696/2095/54 1698/2437/54 1699/2096/54 +f 1703/2098/56 1701/2438/56 1700/2099/56 +f 1707/2101/57 1706/2439/57 1704/2102/57 +f 1708/2104/55 1709/2440/55 1711/2105/55 +f 1712/2107/54 1714/2441/54 1715/2108/54 +f 1720/2110/64 1723/2442/64 1722/2111/64 +f 1719/2113/67 1723/2442/67 1720/2110/67 +f 1716/2043/65 1721/2443/65 1722/2114/65 +f 1717/2041/53 1722/2444/53 1723/2115/53 +f 1718/2042/52 1720/2445/52 1721/2116/52 +f 1730/2117/52 1731/2125/52 1728/2118/52 +f 1727/2120/66 1731/2125/66 1730/2117/66 +f 1724/2122/64 1729/2119/64 1728/2118/64 +f 1726/2124/67 1728/2118/67 1731/2125/67 +f 1725/2127/65 1730/2117/65 1729/2119/65 +f 1740/2129/67 1743/2446/67 1735/2130/67 +f 1735/2130/78 1743/2446/78 1742/2132/78 +f 1737/2134/64 1739/2447/64 1744/2135/64 +f 1742/2132/65 1741/2448/65 1732/2137/65 +f 1737/2134/79 1747/2136/79 1746/2138/79 +f 1738/2140/80 1745/2145/80 1744/2141/80 +f 1741/2143/81 1740/2129/81 1734/2131/81 +f 1736/2139/66 1746/2138/66 1745/2145/66 +f 1749/2146/66 1751/2152/66 1755/2147/66 +f 1748/2149/64 1753/2449/64 1752/2150/64 +f 1750/2151/82 1752/2150/82 1755/2147/82 +f 1749/2146/83 1754/2148/83 1753/2153/83 +f 1757/2155/65 1759/2161/65 1758/2156/65 +f 1760/2158/67 1763/2450/67 1762/2159/67 +f 1759/2161/66 1763/2450/66 1760/2158/66 +f 1756/2157/64 1761/2451/64 1762/2162/64 +f 1757/2155/53 1762/2452/53 1763/2163/53 +f 1756/2157/52 1758/2156/52 1760/2164/52 +f 1770/2166/52 1771/2174/52 1768/2167/52 +f 1767/2169/65 1771/2174/65 1770/2166/65 +f 1764/2171/67 1769/2168/67 1768/2167/67 +f 1766/2173/66 1768/2167/66 1771/2174/66 +f 1765/2176/64 1770/2166/64 1769/2168/64 +f 1780/2178/66 1783/2453/66 1775/2179/66 +f 1775/2179/84 1783/2453/84 1782/2181/84 +f 1777/2183/67 1779/2454/67 1784/2184/67 +f 1782/2181/64 1781/2455/64 1772/2186/64 +f 1777/2183/85 1787/2185/85 1786/2187/85 +f 1778/2189/86 1785/2194/86 1784/2190/86 +f 1781/2192/87 1780/2178/87 1774/2180/87 +f 1776/2188/65 1786/2187/65 1785/2194/65 +f 1789/2195/65 1791/2201/65 1795/2196/65 +f 1788/2198/67 1793/2456/67 1792/2199/67 +f 1791/2201/88 1790/2200/88 1792/2199/88 +f 1789/2195/89 1794/2197/89 1793/2202/89 +f 1797/2204/55 1799/2210/55 1798/2205/55 +f 1800/2207/54 1803/2457/54 1802/2208/54 +f 1799/2210/57 1803/2457/57 1800/2207/57 +f 1796/2206/56 1801/2458/56 1802/2211/56 +f 1797/2204/53 1802/2459/53 1803/2212/53 +f 1798/2205/52 1800/2460/52 1801/2213/52 +f 1810/2214/52 1811/2222/52 1808/2215/52 +f 1807/2217/55 1811/2222/55 1810/2214/55 +f 1804/2219/54 1809/2216/54 1808/2215/54 +f 1806/2221/57 1808/2215/57 1811/2222/57 +f 1805/2224/56 1810/2214/56 1809/2216/56 +f 1820/2226/57 1823/2461/57 1815/2227/57 +f 1815/2227/90 1823/2461/90 1822/2229/90 +f 1817/2231/54 1819/2462/54 1824/2232/54 +f 1822/2229/56 1821/2463/56 1812/2234/56 +f 1817/2231/73 1827/2233/73 1826/2235/73 +f 1818/2237/72 1825/2241/72 1824/2238/72 +f 1812/2240/91 1821/2464/91 1820/2226/91 +f 1816/2236/55 1826/2235/55 1825/2241/55 +f 1829/2242/55 1831/2248/55 1835/2243/55 +f 1828/2245/54 1833/2465/54 1832/2246/54 +f 1830/2247/70 1832/2246/70 1835/2243/70 +f 1829/2242/69 1834/2244/69 1833/2249/69 +f 1837/2251/67 1839/2257/67 1838/2252/67 +f 1840/2254/65 1843/2466/65 1842/2255/65 +f 1839/2257/64 1843/2466/64 1840/2254/64 +f 1836/2253/66 1841/2467/66 1842/2258/66 +f 1837/2251/53 1842/2468/53 1843/2259/53 +f 1836/2253/52 1838/2252/52 1840/2260/52 +f 1850/2262/52 1851/2270/52 1848/2263/52 +f 1847/2265/67 1851/2270/67 1850/2262/67 +f 1844/2267/65 1849/2264/65 1848/2263/65 +f 1846/2269/64 1848/2263/64 1851/2270/64 +f 1845/2272/66 1850/2262/66 1849/2264/66 +f 1860/2274/64 1863/2469/64 1855/2275/64 +f 1855/2275/92 1863/2469/92 1862/2277/92 +f 1857/2279/65 1859/2470/65 1864/2280/65 +f 1862/2277/66 1861/2471/66 1852/2282/66 +f 1857/2279/89 1867/2281/89 1866/2283/89 +f 1858/2285/88 1865/2289/88 1864/2286/88 +f 1852/2288/93 1861/2472/93 1860/2274/93 +f 1856/2284/67 1866/2283/67 1865/2289/67 +f 1869/2290/67 1871/2296/67 1875/2291/67 +f 1868/2293/65 1873/2473/65 1872/2294/65 +f 1871/2296/86 1870/2295/86 1872/2294/86 +f 1869/2290/85 1874/2292/85 1873/2297/85 +f 1877/2299/64 1879/2305/64 1878/2300/64 +f 1880/2302/66 1883/2474/66 1882/2303/66 +f 1879/2305/65 1883/2474/65 1880/2302/65 +f 1876/2301/67 1881/2475/67 1882/2306/67 +f 1877/2299/53 1882/2476/53 1883/2307/53 +f 1878/2300/52 1880/2477/52 1881/2308/52 +f 1885/2309/66 1887/2478/66 1888/2310/66 +f 1885/2309/83 1891/2311/83 1890/2312/83 +f 1886/2314/82 1889/2317/82 1888/2315/82 +f 1884/2313/64 1890/2312/64 1889/2317/64 +f 1893/2318/64 1895/2324/64 1899/2319/64 +f 1892/2321/66 1897/2479/66 1896/2322/66 +f 1894/2323/80 1896/2322/80 1899/2319/80 +f 1893/2318/79 1898/2320/79 1897/2325/79 +o Huge_Rope +v 0.375000 5.500000 2.500000 +v 0.198223 5.573223 2.500000 +v 0.125000 5.750000 2.500000 +v 0.198223 5.926777 2.500000 +v 0.375000 6.000000 2.500000 +v 0.551777 5.926777 2.500000 +v 0.625000 5.750000 2.500000 +v 0.551777 5.573223 2.500000 +v 0.375000 5.500000 1.000000 +v 0.198223 5.573223 1.000000 +v 0.125000 5.750000 1.000000 +v 0.198223 5.926777 1.000000 +v 0.375000 6.000000 1.000000 +v 0.551777 5.926777 1.000000 +v 0.625000 5.750000 1.000000 +v 0.551777 5.573223 1.000000 +v -0.375000 5.500000 2.500000 +v -0.551777 5.573223 2.500000 +v -0.625000 5.750000 2.500000 +v -0.551777 5.926777 2.500000 +v -0.375000 6.000000 2.500000 +v -0.198223 5.926777 2.500000 +v -0.125000 5.750000 2.500000 +v -0.198223 5.573223 2.500000 +v -0.375000 5.500000 1.000000 +v -0.551777 5.573223 1.000000 +v -0.625000 5.750000 1.000000 +v -0.551777 5.926777 1.000000 +v -0.375000 6.000000 1.000000 +v -0.198223 5.926777 1.000000 +v -0.125000 5.750000 1.000000 +v -0.198223 5.573223 1.000000 +v 0.375000 10.000000 2.250000 +v 0.198223 10.073223 2.250000 +v 0.125000 10.250000 2.250000 +v 0.198223 10.426777 2.250000 +v 0.375000 10.500000 2.250000 +v 0.551777 10.426777 2.250000 +v 0.625000 10.250000 2.250000 +v 0.551777 10.073223 2.250000 +v 0.375000 10.000000 0.750000 +v 0.198223 10.073223 0.750000 +v 0.125000 10.250000 0.750000 +v 0.198223 10.426777 0.750000 +v 0.375000 10.500000 0.750000 +v 0.551777 10.426777 0.750000 +v 0.625000 10.250000 0.750000 +v 0.551777 10.073223 0.750000 +v -0.375000 10.000000 2.250000 +v -0.551777 10.073223 2.250000 +v -0.625000 10.250000 2.250000 +v -0.551777 10.426777 2.250000 +v -0.375000 10.500000 2.250000 +v -0.198223 10.426777 2.250000 +v -0.125000 10.250000 2.250000 +v -0.198223 10.073223 2.250000 +v -0.375000 10.000000 0.750000 +v -0.551777 10.073223 0.750000 +v -0.625000 10.250000 0.750000 +v -0.551777 10.426777 0.750000 +v -0.375000 10.500000 0.750000 +v -0.198223 10.426777 0.750000 +v -0.125000 10.250000 0.750000 +v -0.198223 10.073223 0.750000 +vt 0.538961 0.500000 +vt 0.529221 0.625000 +vt 0.529221 0.500000 +vt 0.519481 0.625000 +vt 0.519481 0.500000 +vt 0.587662 0.500000 +vt 0.577922 0.625000 +vt 0.577922 0.500000 +vt 0.597403 0.625000 +vt 0.587662 0.625000 +vt 0.568182 0.500000 +vt 0.558442 0.625000 +vt 0.558442 0.500000 +vt 0.548701 0.500000 +vt 0.538961 0.625000 +vt 0.568182 0.625000 +vt 0.548701 0.625000 +vt 0.616883 0.500000 +vt 0.607143 0.625000 +vt 0.607143 0.500000 +vt 0.597403 0.625000 +vt 0.597403 0.500000 +vt 0.665585 0.500000 +vt 0.655844 0.625000 +vt 0.655844 0.500000 +vt 0.675325 0.625000 +vt 0.665585 0.625000 +vt 0.646104 0.500000 +vt 0.636364 0.625000 +vt 0.636364 0.500000 +vt 0.626623 0.500000 +vt 0.616883 0.625000 +vt 0.646104 0.625000 +vt 0.626623 0.625000 +vt 0.538961 0.500000 +vt 0.529221 0.625000 +vt 0.529221 0.500000 +vt 0.519481 0.625000 +vt 0.519481 0.500000 +vt 0.587662 0.500000 +vt 0.577922 0.625000 +vt 0.577922 0.500000 +vt 0.597403 0.625000 +vt 0.587662 0.625000 +vt 0.568182 0.500000 +vt 0.558442 0.625000 +vt 0.558442 0.500000 +vt 0.548701 0.500000 +vt 0.538961 0.625000 +vt 0.568182 0.625000 +vt 0.548701 0.625000 +vt 0.616883 0.500000 +vt 0.607143 0.625000 +vt 0.607143 0.500000 +vt 0.597403 0.625000 +vt 0.597403 0.500000 +vt 0.665585 0.500000 +vt 0.655844 0.625000 +vt 0.655844 0.500000 +vt 0.675325 0.625000 +vt 0.665585 0.625000 +vt 0.646104 0.500000 +vt 0.636364 0.625000 +vt 0.636364 0.500000 +vt 0.626623 0.500000 +vt 0.616883 0.625000 +vt 0.646104 0.625000 +vt 0.626623 0.625000 +vt 0.597403 0.500000 +vt 0.675325 0.500000 +vt 0.597403 0.500000 +vt 0.675325 0.500000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +s 1 +f 1902/2480/94 1909/2481/95 1901/2482/95 +f 1901/2482/95 1908/2483/96 1900/2484/96 +f 1907/2485/97 1914/2486/98 1906/2487/98 +f 1907/2485/97 1908/2488/96 1915/2489/97 +f 1905/2490/99 1912/2491/100 1904/2492/100 +f 1903/2493/101 1910/2494/94 1902/2480/94 +f 1906/2487/98 1913/2495/99 1905/2490/99 +f 1904/2492/100 1911/2496/101 1903/2493/101 +f 1918/2497/94 1925/2498/95 1917/2499/95 +f 1917/2499/95 1924/2500/96 1916/2501/96 +f 1923/2502/97 1930/2503/98 1922/2504/98 +f 1923/2502/97 1924/2505/96 1931/2506/97 +f 1921/2507/99 1928/2508/100 1920/2509/100 +f 1919/2510/101 1926/2511/94 1918/2497/94 +f 1922/2504/98 1929/2512/99 1921/2507/99 +f 1920/2509/100 1927/2513/101 1919/2510/101 +f 1934/2514/94 1941/2515/95 1933/2516/95 +f 1933/2516/95 1940/2517/96 1932/2518/96 +f 1939/2519/97 1946/2520/98 1938/2521/98 +f 1939/2519/97 1940/2522/96 1947/2523/97 +f 1937/2524/99 1944/2525/100 1936/2526/100 +f 1935/2527/101 1942/2528/94 1934/2514/94 +f 1938/2521/98 1945/2529/99 1937/2524/99 +f 1936/2526/100 1943/2530/101 1935/2527/101 +f 1950/2531/94 1957/2532/95 1949/2533/95 +f 1949/2533/95 1956/2534/96 1948/2535/96 +f 1955/2536/97 1962/2537/98 1954/2538/98 +f 1955/2536/97 1956/2539/96 1963/2540/97 +f 1953/2541/99 1960/2542/100 1952/2543/100 +f 1951/2544/101 1958/2545/94 1950/2531/94 +f 1954/2538/98 1961/2546/99 1953/2541/99 +f 1952/2543/100 1959/2547/101 1951/2544/101 +f 1902/2480/94 1910/2494/94 1909/2481/95 +f 1901/2482/95 1909/2481/95 1908/2483/96 +f 1907/2485/97 1915/2489/97 1914/2486/98 +f 1907/2485/97 1900/2548/96 1908/2488/96 +f 1905/2490/99 1913/2495/99 1912/2491/100 +f 1903/2493/101 1911/2496/101 1910/2494/94 +f 1906/2487/98 1914/2486/98 1913/2495/99 +f 1904/2492/100 1912/2491/100 1911/2496/101 +f 1918/2497/94 1926/2511/94 1925/2498/95 +f 1917/2499/95 1925/2498/95 1924/2500/96 +f 1923/2502/97 1931/2506/97 1930/2503/98 +f 1923/2502/97 1916/2549/96 1924/2505/96 +f 1921/2507/99 1929/2512/99 1928/2508/100 +f 1919/2510/101 1927/2513/101 1926/2511/94 +f 1922/2504/98 1930/2503/98 1929/2512/99 +f 1920/2509/100 1928/2508/100 1927/2513/101 +f 1934/2514/94 1942/2528/94 1941/2515/95 +f 1933/2516/95 1941/2515/95 1940/2517/96 +f 1939/2519/97 1947/2523/97 1946/2520/98 +f 1939/2519/97 1932/2550/96 1940/2522/96 +f 1937/2524/99 1945/2529/99 1944/2525/100 +f 1935/2527/101 1943/2530/101 1942/2528/94 +f 1938/2521/98 1946/2520/98 1945/2529/99 +f 1936/2526/100 1944/2525/100 1943/2530/101 +f 1950/2531/94 1958/2545/94 1957/2532/95 +f 1949/2533/95 1957/2532/95 1956/2534/96 +f 1955/2536/97 1963/2540/97 1962/2537/98 +f 1955/2536/97 1948/2551/96 1956/2539/96 +f 1953/2541/99 1961/2546/99 1960/2542/100 +f 1951/2544/101 1959/2547/101 1958/2545/94 +f 1954/2538/98 1962/2537/98 1961/2546/99 +f 1952/2543/100 1960/2542/100 1959/2547/101 +o Huge_Pivot +v 0.562500 1.500000 -2.812500 +v 0.937500 1.500000 -2.812500 +v 0.562500 1.500000 -3.187500 +v 0.937500 1.500000 -3.187500 +v -0.937500 1.500000 -2.812500 +v -0.562500 1.500000 -2.812500 +v -0.937500 1.500000 -3.187500 +v -0.562500 1.500000 -3.187500 +v 0.562500 2.000000 -1.812500 +v 0.937500 2.000000 -1.812500 +v 0.562500 2.000000 -2.187500 +v 0.937500 2.000000 -2.187500 +v -0.937500 2.000000 -1.812500 +v -0.562500 2.000000 -1.812500 +v -0.937500 2.000000 -2.187500 +v -0.562500 2.000000 -2.187500 +v 0.562500 3.500000 -3.187500 +v 0.562500 3.500000 -2.812500 +v 0.937500 3.500000 -2.812500 +v 0.937500 3.500000 -3.187500 +v -0.937500 3.500000 -3.187500 +v -0.937500 3.500000 -2.812500 +v -0.562500 3.500000 -2.812500 +v -0.562500 3.500000 -3.187500 +v 0.562500 3.500000 -2.187500 +v 0.562500 3.500000 -1.812500 +v 0.937500 3.500000 -1.812500 +v 0.937500 3.500000 -2.187500 +v -0.937500 3.500000 -2.187500 +v -0.937500 3.500000 -1.812500 +v -0.562500 3.500000 -1.812500 +v -0.562500 3.500000 -2.187500 +v 0.625000 3.500000 -2.875000 +v 0.875000 3.500000 -2.875000 +v 0.625000 3.500000 -3.125000 +v 0.875000 3.500000 -3.125000 +v 0.625000 4.500000 -3.125000 +v 0.625000 4.500000 -2.875000 +v 0.875000 4.500000 -2.875000 +v 0.875000 4.500000 -3.125000 +v 0.625000 3.500000 -1.875000 +v 0.875000 3.500000 -1.875000 +v 0.625000 3.500000 -2.125000 +v 0.875000 3.500000 -2.125000 +v 0.625000 4.500000 -2.125000 +v 0.625000 4.500000 -1.875000 +v 0.875000 4.500000 -1.875000 +v 0.875000 4.500000 -2.125000 +v -0.875000 3.500000 -2.875000 +v -0.625000 3.500000 -2.875000 +v -0.875000 3.500000 -3.125000 +v -0.625000 3.500000 -3.125000 +v -0.875000 4.500000 -3.125000 +v -0.875000 4.500000 -2.875000 +v -0.625000 4.500000 -2.875000 +v -0.625000 4.500000 -3.125000 +v -0.875000 3.500000 -1.875000 +v -0.625000 3.500000 -1.875000 +v -0.875000 3.500000 -2.125000 +v -0.625000 3.500000 -2.125000 +v -0.875000 4.500000 -2.125000 +v -0.875000 4.500000 -1.875000 +v -0.625000 4.500000 -1.875000 +v -0.625000 4.500000 -2.125000 +v 0.750000 2.000000 -2.187500 +v 0.750000 3.500000 -2.187500 +v 0.750000 2.000000 -2.812500 +v 0.750000 3.500000 -2.812500 +v -0.750000 2.000000 -2.187500 +v -0.750000 3.500000 -2.187500 +v -0.750000 2.000000 -2.812500 +v -0.750000 3.500000 -2.812500 +v 0.562500 2.000000 -2.000000 +v -0.562500 2.000000 -2.000000 +v 0.562500 3.500000 -2.000000 +v -0.562500 3.500000 -2.000000 +v 0.562500 2.000000 -3.000000 +v -0.562500 2.000000 -3.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 3.500000 -3.000000 +v 0.750000 2.000000 -2.187500 +v 0.750000 3.500000 -2.187500 +v 0.750000 2.000000 -2.812500 +v 0.750000 3.500000 -2.812500 +v -0.750000 2.000000 -2.187500 +v -0.750000 3.500000 -2.187500 +v -0.750000 2.000000 -2.812500 +v -0.750000 3.500000 -2.812500 +v 0.562500 2.000000 -2.000000 +v -0.562500 2.000000 -2.000000 +v 0.562500 3.500000 -2.000000 +v -0.562500 3.500000 -2.000000 +v 0.562500 2.000000 -3.000000 +v -0.562500 2.000000 -3.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 3.500000 -3.000000 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.051948 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.051948 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.071429 0.541667 +vt 0.051948 0.708333 +vt 0.051948 0.541667 +vt 0.110390 0.541667 +vt 0.090909 0.708333 +vt 0.090909 0.541667 +vt 0.071429 0.541667 +vt 0.051948 0.708333 +vt 0.051948 0.541667 +vt 0.110390 0.541667 +vt 0.090909 0.708333 +vt 0.090909 0.541667 +vt 0.129870 0.541667 +vt 0.110390 0.708333 +vt 0.129870 0.541667 +vt 0.110390 0.708333 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.110390 0.583333 +vt 0.090909 0.708333 +vt 0.090909 0.583333 +vt 0.129870 0.583333 +vt 0.110390 0.708333 +vt 0.110390 0.583333 +vt 0.090909 0.583333 +vt 0.071429 0.583333 +vt 0.129870 0.583333 +vt 0.110390 0.708333 +vt 0.071429 0.583333 +vt 0.051948 0.708333 +vt 0.051948 0.583333 +vt 0.090909 0.708333 +vt 0.051948 0.708333 +vt 0.051948 0.583333 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.240260 0.541667 +vt 0.272727 0.666667 +vt 0.240260 0.666667 +vt 0.240260 0.666667 +vt 0.272727 0.541667 +vt 0.272727 0.666667 +vt 0.181818 0.541667 +vt 0.240260 0.666667 +vt 0.181818 0.666667 +vt 0.181818 0.666667 +vt 0.240260 0.541667 +vt 0.240260 0.666667 +vt 0.272727 0.666667 +vt 0.240260 0.541667 +vt 0.240260 0.666667 +vt 0.272727 0.541667 +vt 0.240260 0.666667 +vt 0.272727 0.666667 +vt 0.240260 0.666667 +vt 0.181818 0.541667 +vt 0.181818 0.666667 +vt 0.240260 0.541667 +vt 0.181818 0.666667 +vt 0.240260 0.666667 +vt 0.071429 0.708333 +vt 0.071429 0.708333 +vt 0.129870 0.708333 +vt 0.129870 0.708333 +vt 0.129870 0.708333 +vt 0.129870 0.708333 +vt 0.181818 0.625000 +vt 0.181818 0.625000 +vt 0.181818 0.625000 +vt 0.181818 0.625000 +vt 0.272727 0.541667 +vt 0.240260 0.541667 +vt 0.240260 0.541667 +vt 0.181818 0.541667 +vt 0.272727 0.541667 +vt 0.240260 0.541667 +vt 0.240260 0.541667 +vt 0.181818 0.541667 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 2005/2552/102 2009/2553/102 2004/2554/102 +f 2006/2555/103 2011/2556/103 2007/2557/103 +f 1974/2558/104 1973/2559/104 1972/2560/104 +f 1978/2561/104 1977/2562/104 1976/2563/104 +f 1982/2564/105 1980/2565/105 1981/2566/105 +f 1986/2567/105 1984/2568/105 1985/2569/105 +f 1970/2570/103 1987/2571/103 1971/2572/103 +f 1969/2573/102 1985/2574/102 1968/2575/102 +f 1966/2576/103 1983/2577/103 1967/2578/103 +f 1965/2579/102 1981/2580/102 1964/2581/102 +f 1971/2582/106 1986/2583/106 1969/2573/106 +f 1968/2575/107 1984/2568/107 1970/2570/107 +f 1967/2584/106 1982/2585/106 1965/2579/106 +f 1964/2581/107 1980/2565/107 1966/2576/107 +f 1990/2586/105 1988/2587/105 1989/2588/105 +f 1994/2589/105 1992/2590/105 1993/2591/105 +f 1973/2592/102 1989/2593/102 1972/2594/102 +f 1979/2595/106 1994/2596/106 1977/2597/106 +f 1976/2598/107 1992/2590/107 1978/2599/107 +f 1975/2600/106 1990/2601/106 1973/2592/106 +f 1972/2594/107 1988/2587/107 1974/2602/107 +f 1978/2599/103 1995/2603/103 1979/2604/103 +f 1977/2597/102 1993/2605/102 1976/2598/102 +f 1974/2602/103 1991/2606/103 1975/2607/103 +f 1998/2608/103 2003/2609/103 1999/2610/103 +f 1997/2611/102 2001/2612/102 1996/2613/102 +f 1999/2614/106 2002/2615/106 1997/2611/106 +f 1996/2613/107 2000/2616/107 1998/2608/107 +f 2007/2617/106 2010/2618/106 2005/2552/106 +f 2004/2554/107 2008/2619/107 2006/2555/107 +f 2021/2620/102 2025/2621/102 2020/2622/102 +f 2022/2623/103 2027/2624/103 2023/2625/103 +f 2014/2626/103 2019/2627/103 2015/2628/103 +f 2013/2629/102 2017/2630/102 2012/2631/102 +f 2015/2632/106 2018/2633/106 2013/2629/106 +f 2012/2631/107 2016/2634/107 2014/2626/107 +f 2023/2635/106 2026/2636/106 2021/2620/106 +f 2020/2622/107 2024/2637/107 2022/2623/107 +f 2028/2638/106 2031/2639/106 2029/2640/106 +f 2035/2641/107 2032/2642/107 2033/2643/107 +f 2037/2644/102 2038/2645/102 2039/2646/102 +f 2042/2647/103 2041/2648/103 2043/2649/103 +f 2047/2650/107 2044/2651/107 2045/2652/107 +f 2048/2653/106 2051/2654/106 2049/2655/106 +f 2054/2656/103 2053/2657/103 2055/2658/103 +f 2057/2659/102 2058/2660/102 2059/2661/102 +f 2005/2552/102 2010/2618/102 2009/2553/102 +f 2006/2555/103 2008/2619/103 2011/2556/103 +f 1974/2558/104 1975/2662/104 1973/2559/104 +f 1978/2561/104 1979/2663/104 1977/2562/104 +f 1982/2564/105 1983/2577/105 1980/2565/105 +f 1986/2567/105 1987/2571/105 1984/2568/105 +f 1970/2570/103 1984/2568/103 1987/2571/103 +f 1969/2573/102 1986/2583/102 1985/2574/102 +f 1966/2576/103 1980/2565/103 1983/2577/103 +f 1965/2579/102 1982/2585/102 1981/2580/102 +f 1971/2582/106 1987/2664/106 1986/2583/106 +f 1968/2575/107 1985/2574/107 1984/2568/107 +f 1967/2584/106 1983/2665/106 1982/2585/106 +f 1964/2581/107 1981/2580/107 1980/2565/107 +f 1990/2586/105 1991/2606/105 1988/2587/105 +f 1994/2589/105 1995/2603/105 1992/2590/105 +f 1973/2592/102 1990/2601/102 1989/2593/102 +f 1979/2595/106 1995/2666/106 1994/2596/106 +f 1976/2598/107 1993/2605/107 1992/2590/107 +f 1975/2600/106 1991/2667/106 1990/2601/106 +f 1972/2594/107 1989/2593/107 1988/2587/107 +f 1978/2599/103 1992/2590/103 1995/2603/103 +f 1977/2597/102 1994/2596/102 1993/2605/102 +f 1974/2602/103 1988/2587/103 1991/2606/103 +f 1998/2608/103 2000/2616/103 2003/2609/103 +f 1997/2611/102 2002/2615/102 2001/2612/102 +f 1999/2614/106 2003/2668/106 2002/2615/106 +f 1996/2613/107 2001/2612/107 2000/2616/107 +f 2007/2617/106 2011/2669/106 2010/2618/106 +f 2004/2554/107 2009/2553/107 2008/2619/107 +f 2021/2620/102 2026/2636/102 2025/2621/102 +f 2022/2623/103 2024/2637/103 2027/2624/103 +f 2014/2626/103 2016/2634/103 2019/2627/103 +f 2013/2629/102 2018/2633/102 2017/2630/102 +f 2015/2632/106 2019/2670/106 2018/2633/106 +f 2012/2631/107 2017/2630/107 2016/2634/107 +f 2023/2635/106 2027/2671/106 2026/2636/106 +f 2020/2622/107 2025/2621/107 2024/2637/107 +f 2028/2638/106 2030/2672/106 2031/2639/106 +f 2035/2641/107 2034/2673/107 2032/2642/107 +f 2037/2644/102 2036/2674/102 2038/2645/102 +f 2042/2647/103 2040/2675/103 2041/2648/103 +f 2047/2650/107 2046/2676/107 2044/2651/107 +f 2048/2653/106 2050/2677/106 2051/2654/106 +f 2054/2656/103 2052/2678/103 2053/2657/103 +f 2057/2659/102 2056/2679/102 2058/2660/102 +o Huge_Erector +v 0.562500 3.500000 -3.187500 +v 0.562500 3.500000 -2.812500 +v 0.937500 3.500000 -2.812500 +v 0.937500 3.500000 -3.187500 +v 0.562500 14.500000 -3.187500 +v 0.562500 14.500000 -2.812500 +v 0.937500 14.500000 -2.812500 +v 0.937500 14.500000 -3.187500 +v 0.937500 5.750000 -1.812500 +v -0.937500 5.750000 -1.812500 +v 0.937500 6.125000 -1.812500 +v -0.937500 6.125000 -1.812500 +v 0.937500 5.750000 -0.812500 +v -0.937500 5.750000 -0.812500 +v 0.937500 6.125000 -0.812500 +v -0.937500 6.125000 -0.812500 +v 0.562500 5.750000 -1.187500 +v -0.562500 5.750000 -1.187500 +v 0.562500 6.125000 -1.187500 +v -0.562500 6.125000 -1.187500 +v 0.937500 8.750000 -1.812500 +v -0.937500 8.750000 -1.812500 +v 0.937500 9.125000 -1.812500 +v -0.937500 9.125000 -1.812500 +v 0.937500 8.750000 -0.562500 +v -0.937500 8.750000 -0.562500 +v 0.937500 9.125000 -0.562500 +v -0.937500 9.125000 -0.562500 +v 0.562500 8.750000 -0.937500 +v -0.562500 8.750000 -0.937500 +v 0.562500 9.125000 -0.937500 +v -0.562500 9.125000 -0.937500 +v 0.937500 10.750000 -1.812500 +v -0.937500 10.750000 -1.812500 +v 0.937500 11.125000 -1.812500 +v -0.937500 11.125000 -1.812500 +v 0.937500 10.750000 -0.562500 +v -0.937500 10.750000 -0.562500 +v 0.937500 11.125000 -0.562500 +v -0.937500 11.125000 -0.562500 +v 0.562500 10.750000 -0.937500 +v -0.562500 10.750000 -0.937500 +v 0.562500 11.125000 -0.937500 +v -0.562500 11.125000 -0.937500 +v -0.562500 10.812500 -1.812500 +v 0.562500 10.812500 -1.812500 +v -0.562500 11.062500 -1.812500 +v 0.562500 11.062500 -1.812500 +v -0.562500 11.062500 -2.062500 +v -0.562500 10.812500 -2.062500 +v 0.562500 10.812500 -2.062500 +v 0.562500 11.062500 -2.062500 +v -0.562500 8.812500 -1.812500 +v 0.562500 8.812500 -1.812500 +v -0.562500 9.062500 -1.812500 +v 0.562500 9.062500 -1.812500 +v -0.562500 9.062500 -2.062500 +v -0.562500 8.812500 -2.062500 +v 0.562500 8.812500 -2.062500 +v 0.562500 9.062500 -2.062500 +v -0.562500 5.812500 -1.812500 +v 0.562500 5.812500 -1.812500 +v -0.562500 6.062500 -1.812500 +v 0.562500 6.062500 -1.812500 +v -0.562500 6.062500 -2.062500 +v -0.562500 5.812500 -2.062500 +v 0.562500 5.812500 -2.062500 +v 0.562500 6.062500 -2.062500 +v 0.750000 3.500000 -2.187500 +v 0.750000 3.500000 -2.812500 +v -0.750000 3.500000 -2.187500 +v -0.750000 3.500000 -2.812500 +v 0.562500 3.500000 -2.000000 +v -0.562500 3.500000 -2.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 3.500000 -3.000000 +v 0.750000 14.500000 -2.187500 +v 0.750000 14.500000 -2.812500 +v -0.750000 14.500000 -2.187500 +v -0.750000 14.500000 -2.812500 +v 0.562500 14.500000 -2.000000 +v -0.562500 14.500000 -2.000000 +v 0.562500 14.500000 -3.000000 +v -0.562500 14.500000 -3.000000 +v 0.562500 3.500000 -2.187500 +v 0.562500 3.500000 -1.812500 +v 0.937500 3.500000 -1.812500 +v 0.937500 3.500000 -2.187500 +v 0.562500 14.500000 -2.187500 +v 0.562500 14.500000 -1.812500 +v 0.937500 14.500000 -1.812500 +v 0.937500 14.500000 -2.187500 +v -0.937500 3.500000 -3.187500 +v -0.937500 3.500000 -2.812500 +v -0.562500 3.500000 -2.812500 +v -0.562500 3.500000 -3.187500 +v -0.937500 14.500000 -3.187500 +v -0.937500 14.500000 -2.812500 +v -0.562500 14.500000 -2.812500 +v -0.562500 14.500000 -3.187500 +v -0.937500 3.500000 -2.187500 +v -0.937500 3.500000 -1.812500 +v -0.562500 3.500000 -1.812500 +v -0.562500 3.500000 -2.187500 +v -0.937500 14.500000 -2.187500 +v -0.937500 14.500000 -1.812500 +v -0.562500 14.500000 -1.812500 +v -0.562500 14.500000 -2.187500 +v 0.750000 3.500000 -2.187500 +v 0.750000 3.500000 -2.812500 +v -0.750000 3.500000 -2.187500 +v -0.750000 3.500000 -2.812500 +v 0.562500 3.500000 -2.000000 +v -0.562500 3.500000 -2.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 3.500000 -3.000000 +v 0.750000 14.500000 -2.187500 +v 0.750000 14.500000 -2.812500 +v -0.750000 14.500000 -2.187500 +v -0.750000 14.500000 -2.812500 +v 0.562500 14.500000 -2.000000 +v -0.562500 14.500000 -2.000000 +v 0.562500 14.500000 -3.000000 +v -0.562500 14.500000 -3.000000 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.136364 0.739583 +vt 0.038961 0.770833 +vt 0.038961 0.739583 +vt 0.116883 0.875000 +vt 0.136364 0.906250 +vt 0.116883 0.906250 +vt 0.155844 0.791667 +vt 0.136364 0.875000 +vt 0.136364 0.791667 +vt 0.038961 0.791667 +vt 0.136364 0.791667 +vt 0.058442 0.843750 +vt 0.038961 0.791667 +vt 0.019481 0.875000 +vt 0.019481 0.791667 +vt 0.058442 0.843750 +vt 0.038961 0.875000 +vt 0.058442 0.906250 +vt 0.038961 0.906250 +vt 0.058442 0.875000 +vt 0.136364 0.739583 +vt 0.038961 0.770833 +vt 0.038961 0.739583 +vt 0.116883 0.875000 +vt 0.136364 0.906250 +vt 0.116883 0.906250 +vt 0.155844 0.770833 +vt 0.136364 0.875000 +vt 0.136364 0.770833 +vt 0.038961 0.770833 +vt 0.136364 0.770833 +vt 0.058442 0.843750 +vt 0.019481 0.875000 +vt 0.019481 0.770833 +vt 0.058442 0.843750 +vt 0.038961 0.875000 +vt 0.058442 0.906250 +vt 0.038961 0.906250 +vt 0.058442 0.875000 +vt 0.136364 0.739583 +vt 0.038961 0.770833 +vt 0.038961 0.739583 +vt 0.116883 0.875000 +vt 0.136364 0.906250 +vt 0.116883 0.906250 +vt 0.155844 0.770833 +vt 0.136364 0.875000 +vt 0.136364 0.770833 +vt 0.038961 0.770833 +vt 0.136364 0.770833 +vt 0.058442 0.843750 +vt 0.019481 0.875000 +vt 0.019481 0.770833 +vt 0.058442 0.843750 +vt 0.038961 0.875000 +vt 0.058442 0.906250 +vt 0.038961 0.906250 +vt 0.058442 0.875000 +vt 0.967532 0.916667 +vt 0.909091 0.937500 +vt 0.909091 0.916667 +vt 0.967532 0.958333 +vt 0.909091 0.937500 +vt 0.967532 0.937500 +vt 0.909091 0.979167 +vt 0.967532 0.979167 +vt 0.967532 0.916667 +vt 0.909091 0.916667 +vt 0.909091 0.979167 +vt 0.967532 0.958333 +vt 0.967532 0.979167 +vt 0.967532 0.937500 +vt 0.967532 0.916667 +vt 0.909091 0.937500 +vt 0.909091 0.916667 +vt 0.909091 0.979167 +vt 0.967532 0.958333 +vt 0.967532 0.979167 +vt 0.967532 0.937500 +vt 0.967532 0.000000 +vt 0.909091 0.916667 +vt 0.909091 -0.000000 +vt 1.000000 0.916667 +vt 0.967532 -0.000000 +vt 1.000000 -0.000000 +vt 0.967532 0.916667 +vt 0.909091 -0.000000 +vt 0.967532 0.000000 +vt 1.000000 -0.000000 +vt 0.967532 0.916667 +vt 0.967532 -0.000000 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.909091 0.916667 +vt 0.967532 0.000000 +vt 0.909091 -0.000000 +vt 0.967532 -0.000000 +vt 1.000000 0.916667 +vt 1.000000 -0.000000 +vt 0.909091 -0.000000 +vt 0.967532 0.916667 +vt 0.967532 0.000000 +vt 0.967532 0.916667 +vt 1.000000 -0.000000 +vt 0.967532 -0.000000 +vt 0.909091 0.947917 +vt 0.136364 0.770833 +vt 0.155844 0.875000 +vt 0.136364 0.875000 +vt 0.116883 0.843750 +vt 0.038961 0.875000 +vt 0.116883 0.843750 +vt 0.155844 0.875000 +vt 0.136364 0.875000 +vt 0.116883 0.843750 +vt 0.038961 0.875000 +vt 0.116883 0.843750 +vt 0.155844 0.875000 +vt 0.136364 0.875000 +vt 0.116883 0.843750 +vt 0.038961 0.875000 +vt 0.116883 0.843750 +vt 0.909091 0.958333 +vt 0.909091 0.958333 +vt 0.909091 0.958333 +vt 0.967532 0.916667 +vt 0.967532 0.916667 +vt 0.909091 0.916667 +vt 1.000000 0.916667 +vt 0.909091 0.947917 +vt 0.909091 0.947917 +vt 0.909091 0.947917 +vt 0.967532 0.916667 +vt 0.967532 0.916667 +vt 0.909091 0.916667 +vt 1.000000 0.916667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +s off +f 2060/2680/108 2062/2681/108 2061/2682/108 +f 2066/2683/109 2064/2684/109 2065/2685/109 +f 2061/2686/110 2064/2684/110 2060/2680/110 +f 2062/2687/111 2065/2688/111 2061/2686/111 +f 2063/2689/112 2066/2690/112 2062/2687/112 +f 2060/2680/113 2067/2691/113 2063/2692/113 +f 2069/2693/113 2070/2694/113 2068/2695/113 +f 2079/2696/114 2073/2697/114 2077/2698/114 +f 2069/2699/110 2075/2700/110 2071/2701/110 +f 2069/2702/108 2068/2703/108 2077/2704/108 +f 2070/2705/112 2072/2706/112 2068/2707/112 +f 2070/2705/109 2071/2701/109 2078/2708/109 +f 2074/2709/115 2076/2710/115 2072/2711/115 +f 2078/2712/111 2077/2698/111 2076/2710/111 +f 2081/2713/113 2082/2714/113 2080/2715/113 +f 2091/2716/114 2085/2717/114 2089/2718/114 +f 2081/2719/110 2087/2720/110 2083/2721/110 +f 2081/2722/108 2080/2723/108 2089/2724/108 +f 2082/2714/112 2084/2725/112 2080/2726/112 +f 2082/2714/109 2083/2721/109 2090/2727/109 +f 2086/2728/115 2088/2729/115 2084/2730/115 +f 2090/2731/111 2089/2718/111 2088/2729/111 +f 2093/2732/113 2094/2733/113 2092/2734/113 +f 2103/2735/114 2097/2736/114 2101/2737/114 +f 2093/2738/110 2099/2739/110 2095/2740/110 +f 2093/2741/108 2092/2742/108 2101/2743/108 +f 2094/2733/112 2096/2744/112 2092/2745/112 +f 2094/2733/109 2095/2740/109 2102/2746/109 +f 2098/2747/115 2100/2748/115 2096/2749/115 +f 2102/2750/111 2101/2737/111 2100/2748/111 +f 2112/2751/108 2118/2752/108 2113/2753/108 +f 2108/2754/113 2110/2755/113 2109/2756/113 +f 2107/2757/109 2108/2754/109 2106/2758/109 +f 2104/2759/108 2110/2755/108 2105/2760/108 +f 2115/2761/109 2116/2762/109 2114/2763/109 +f 2116/2762/113 2118/2752/113 2117/2764/113 +f 2120/2765/108 2126/2766/108 2121/2767/108 +f 2123/2768/109 2124/2769/109 2122/2770/109 +f 2124/2769/113 2126/2766/113 2125/2771/113 +f 2135/2772/113 2142/2773/113 2134/2774/113 +f 2138/2775/110 2131/2776/110 2130/2777/110 +f 2140/2778/111 2133/2779/111 2132/2780/111 +f 2129/2781/112 2136/2782/112 2128/2783/112 +f 2144/2784/108 2146/2785/108 2145/2786/108 +f 2150/2787/109 2148/2788/109 2149/2789/109 +f 2145/2790/110 2148/2788/110 2144/2784/110 +f 2146/2791/111 2149/2792/111 2145/2790/111 +f 2147/2793/112 2150/2794/112 2146/2791/112 +f 2144/2784/113 2151/2795/113 2147/2796/113 +f 2152/2797/108 2154/2798/108 2153/2799/108 +f 2158/2800/109 2156/2801/109 2157/2802/109 +f 2153/2803/110 2156/2801/110 2152/2797/110 +f 2154/2804/111 2157/2805/111 2153/2803/111 +f 2155/2806/112 2158/2807/112 2154/2804/112 +f 2152/2797/113 2159/2808/113 2155/2809/113 +f 2160/2810/108 2162/2811/108 2161/2812/108 +f 2166/2813/109 2164/2814/109 2165/2815/109 +f 2161/2816/110 2164/2814/110 2160/2810/110 +f 2162/2817/111 2165/2818/111 2161/2816/111 +f 2163/2819/112 2166/2820/112 2162/2817/112 +f 2160/2810/113 2167/2821/113 2163/2822/113 +f 2182/2823/111 2175/2824/111 2174/2825/111 +f 2171/2826/112 2178/2827/112 2170/2828/112 +f 2173/2829/113 2180/2830/113 2172/2831/113 +f 2176/2832/110 2169/2833/110 2168/2834/110 +f 2060/2680/108 2063/2692/108 2062/2681/108 +f 2066/2683/109 2067/2691/109 2064/2684/109 +f 2061/2686/110 2065/2688/110 2064/2684/110 +f 2062/2687/111 2066/2690/111 2065/2688/111 +f 2063/2689/112 2067/2835/112 2066/2690/112 +f 2060/2680/113 2064/2684/113 2067/2691/113 +f 2069/2693/113 2071/2836/113 2070/2694/113 +f 2079/2696/114 2075/2700/114 2073/2697/114 +f 2069/2699/110 2073/2837/110 2075/2700/110 +f 2068/2703/108 2072/2838/108 2076/2839/108 +f 2077/2704/108 2073/2840/108 2069/2702/108 +f 2068/2703/108 2076/2839/108 2077/2704/108 +f 2070/2705/112 2074/2709/112 2072/2706/112 +f 2071/2701/109 2075/2700/109 2079/2841/109 +f 2078/2708/109 2074/2709/109 2070/2705/109 +f 2071/2701/109 2079/2841/109 2078/2708/109 +f 2074/2709/115 2078/2712/115 2076/2710/115 +f 2078/2712/111 2079/2696/111 2077/2698/111 +f 2081/2713/113 2083/2721/113 2082/2714/113 +f 2091/2716/114 2087/2720/114 2085/2717/114 +f 2081/2719/110 2085/2842/110 2087/2720/110 +f 2080/2723/108 2084/2843/108 2088/2844/108 +f 2089/2724/108 2085/2845/108 2081/2722/108 +f 2080/2723/108 2088/2844/108 2089/2724/108 +f 2082/2714/112 2086/2728/112 2084/2725/112 +f 2083/2721/109 2087/2720/109 2091/2846/109 +f 2090/2727/109 2086/2728/109 2082/2714/109 +f 2083/2721/109 2091/2846/109 2090/2727/109 +f 2086/2728/115 2090/2731/115 2088/2729/115 +f 2090/2731/111 2091/2716/111 2089/2718/111 +f 2093/2732/113 2095/2740/113 2094/2733/113 +f 2103/2735/114 2099/2739/114 2097/2736/114 +f 2093/2738/110 2097/2847/110 2099/2739/110 +f 2092/2742/108 2096/2848/108 2100/2849/108 +f 2101/2743/108 2097/2850/108 2093/2741/108 +f 2092/2742/108 2100/2849/108 2101/2743/108 +f 2094/2733/112 2098/2747/112 2096/2744/112 +f 2095/2740/109 2099/2739/109 2103/2851/109 +f 2102/2746/109 2098/2747/109 2094/2733/109 +f 2095/2740/109 2103/2851/109 2102/2746/109 +f 2098/2747/115 2102/2750/115 2100/2748/115 +f 2102/2750/111 2103/2735/111 2101/2737/111 +f 2112/2751/108 2117/2764/108 2118/2752/108 +f 2108/2754/113 2111/2852/113 2110/2755/113 +f 2107/2757/109 2111/2852/109 2108/2754/109 +f 2104/2759/108 2109/2756/108 2110/2755/108 +f 2115/2761/109 2119/2853/109 2116/2762/109 +f 2116/2762/113 2119/2853/113 2118/2752/113 +f 2120/2765/108 2125/2771/108 2126/2766/108 +f 2123/2768/109 2127/2854/109 2124/2769/109 +f 2124/2769/113 2127/2854/113 2126/2766/113 +f 2135/2772/113 2143/2855/113 2142/2773/113 +f 2138/2775/110 2139/2856/110 2131/2776/110 +f 2140/2778/111 2141/2857/111 2133/2779/111 +f 2129/2781/112 2137/2858/112 2136/2782/112 +f 2144/2784/108 2147/2796/108 2146/2785/108 +f 2150/2787/109 2151/2795/109 2148/2788/109 +f 2145/2790/110 2149/2792/110 2148/2788/110 +f 2146/2791/111 2150/2794/111 2149/2792/111 +f 2147/2793/112 2151/2859/112 2150/2794/112 +f 2144/2784/113 2148/2788/113 2151/2795/113 +f 2152/2797/108 2155/2809/108 2154/2798/108 +f 2158/2800/109 2159/2808/109 2156/2801/109 +f 2153/2803/110 2157/2805/110 2156/2801/110 +f 2154/2804/111 2158/2807/111 2157/2805/111 +f 2155/2806/112 2159/2860/112 2158/2807/112 +f 2152/2797/113 2156/2801/113 2159/2808/113 +f 2160/2810/108 2163/2822/108 2162/2811/108 +f 2166/2813/109 2167/2821/109 2164/2814/109 +f 2161/2816/110 2165/2818/110 2164/2814/110 +f 2162/2817/111 2166/2820/111 2165/2818/111 +f 2163/2819/112 2167/2861/112 2166/2820/112 +f 2160/2810/113 2164/2814/113 2167/2821/113 +f 2182/2823/111 2183/2862/111 2175/2824/111 +f 2171/2826/112 2179/2863/112 2178/2827/112 +f 2173/2829/113 2181/2864/113 2180/2830/113 +f 2176/2832/110 2177/2865/110 2169/2833/110 +o Huge_Pad +v -1.250000 2.000000 1.250000 +v 1.250000 2.000000 1.250000 +v -1.250000 2.000000 -1.250000 +v 1.250000 2.000000 -1.250000 +v -2.500000 2.000000 2.500000 +v 2.500000 2.000000 2.500000 +v -2.500000 2.000000 -2.500000 +v 2.500000 2.000000 -2.500000 +v -2.500000 1.500000 2.500000 +v 2.500000 1.500000 2.500000 +v -2.500000 1.500000 -2.500000 +v 2.500000 1.500000 -2.500000 +v -3.000000 1.500000 3.000000 +v 3.000000 1.500000 3.000000 +v -3.000000 1.500000 -3.000000 +v 3.000000 1.500000 -3.000000 +v -3.000000 1.000000 3.000000 +v 3.000000 1.000000 3.000000 +v -3.000000 1.000000 -3.000000 +v 3.000000 1.000000 -3.000000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -1.250000 2.000000 1.250000 +v 1.250000 2.000000 1.250000 +v -1.250000 2.000000 -1.250000 +v 1.250000 2.000000 -1.250000 +v -1.500000 1.000000 -2.500000 +v 1.500000 1.000000 -2.500000 +v -1.500000 1.000000 -3.500000 +v 1.500000 1.000000 -3.500000 +v -1.500000 2.000000 -3.500000 +v -1.500000 2.000000 -2.500000 +v 1.500000 2.000000 -2.500000 +v 1.500000 2.000000 -3.500000 +v -2.000000 1.000000 4.000000 +v 2.000000 1.000000 4.000000 +v -2.000000 1.000000 2.500000 +v 2.000000 1.000000 2.500000 +v -2.000000 2.000000 2.500000 +v -2.000000 2.000000 4.000000 +v 2.000000 2.000000 4.000000 +v 2.000000 2.000000 2.500000 +v 0.812500 2.000000 3.687500 +v 1.187500 2.000000 3.687500 +v 0.812500 2.000000 3.312500 +v 1.187500 2.000000 3.312500 +v -1.187500 2.000000 3.687500 +v -0.812500 2.000000 3.687500 +v -1.187500 2.000000 3.312500 +v -0.812500 2.000000 3.312500 +v 0.812500 2.000000 2.187500 +v 1.187500 2.000000 2.187500 +v 0.812500 2.000000 1.812500 +v 1.187500 2.000000 1.812500 +v -1.187500 2.000000 2.187500 +v -0.812500 2.000000 2.187500 +v -1.187500 2.000000 1.812500 +v -0.812500 2.000000 1.812500 +v 0.812500 8.000000 3.312500 +v 0.812500 8.000000 3.687500 +v 1.187500 8.000000 3.687500 +v 1.187500 8.000000 3.312500 +v -1.187500 8.000000 3.312500 +v -1.187500 8.000000 3.687500 +v -0.812500 8.000000 3.687500 +v -0.812500 8.000000 3.312500 +v 0.812500 8.000000 1.812500 +v 0.812500 8.000000 2.187500 +v 1.187500 8.000000 2.187500 +v 1.187500 8.000000 1.812500 +v -1.187500 8.000000 1.812500 +v -1.187500 8.000000 2.187500 +v -0.812500 8.000000 2.187500 +v -0.812500 8.000000 1.812500 +v -1.500000 8.000000 4.000000 +v 1.500000 8.000000 4.000000 +v -1.500000 8.000000 1.500000 +v 1.500000 8.000000 1.500000 +v -1.500000 8.250000 1.500000 +v -1.500000 8.250000 4.000000 +v 1.500000 8.250000 4.000000 +v 1.500000 8.250000 1.500000 +v 0.812500 8.250000 2.187500 +v 1.187500 8.250000 2.187500 +v 0.812500 8.250000 1.812500 +v 1.187500 8.250000 1.812500 +v -1.187500 8.250000 2.187500 +v -0.812500 8.250000 2.187500 +v -1.187500 8.250000 1.812500 +v -0.812500 8.250000 1.812500 +v 0.812500 14.250000 1.812500 +v 0.812500 14.250000 2.187500 +v 1.187500 14.250000 2.187500 +v 1.187500 14.250000 1.812500 +v -1.187500 14.250000 1.812500 +v -1.187500 14.250000 2.187500 +v -0.812500 14.250000 2.187500 +v -0.812500 14.250000 1.812500 +v 0.812500 8.250000 3.187500 +v 1.187500 8.250000 3.187500 +v 0.812500 8.250000 2.812500 +v 1.187500 8.250000 2.812500 +v -1.187500 8.250000 3.187500 +v -0.812500 8.250000 3.187500 +v -1.187500 8.250000 2.812500 +v -0.812500 8.250000 2.812500 +v 0.812500 14.250000 2.812500 +v 0.812500 14.250000 3.187500 +v 1.187500 14.250000 3.187500 +v 1.187500 14.250000 2.812500 +v -1.187500 14.250000 2.812500 +v -1.187500 14.250000 3.187500 +v -0.812500 14.250000 3.187500 +v -0.812500 14.250000 2.812500 +v 0.812500 2.000000 2.000000 +v -0.812500 2.000000 2.000000 +v 0.812500 8.000000 2.000000 +v -0.812500 8.000000 2.000000 +v 0.812500 2.000000 3.500000 +v -0.812500 2.000000 3.500000 +v 0.812500 8.000000 3.500000 +v -0.812500 8.000000 3.500000 +v -1.000000 2.000000 3.312500 +v -1.000000 2.000000 2.187500 +v -1.000000 8.000000 3.312500 +v -1.000000 8.000000 2.187500 +v 1.000000 2.000000 3.312500 +v 1.000000 2.000000 2.187500 +v 1.000000 8.000000 3.312500 +v 1.000000 8.000000 2.187500 +v 0.812500 8.250000 2.000000 +v -0.812500 8.250000 2.000000 +v 0.812500 14.250000 2.000000 +v -0.812500 14.250000 2.000000 +v 0.812500 8.250000 3.000000 +v -0.812500 8.250000 3.000000 +v 0.812500 14.250000 3.000000 +v -0.812500 14.250000 3.000000 +v -1.000000 8.250000 2.187500 +v -1.000000 14.250000 2.187500 +v -1.000000 8.250000 2.812500 +v -1.000000 14.250000 2.812500 +v 1.000000 8.250000 2.187500 +v 1.000000 14.250000 2.187500 +v 1.000000 8.250000 2.812500 +v 1.000000 14.250000 2.812500 +v -1.500000 14.250000 3.500000 +v 1.500000 14.250000 3.500000 +v -1.500000 14.250000 1.500000 +v 1.500000 14.250000 1.500000 +v -1.500000 14.500000 1.500000 +v -1.500000 14.500000 3.500000 +v 1.500000 14.500000 3.500000 +v 1.500000 14.500000 1.500000 +v 0.375000 2.000000 2.250000 +v 0.198223 2.000000 2.323223 +v 0.125000 2.000000 2.500000 +v 0.198223 2.000000 2.676777 +v 0.375000 2.000000 2.750000 +v 0.551777 2.000000 2.676777 +v 0.625000 2.000000 2.500000 +v 0.551777 2.000000 2.323223 +v 0.375000 10.000000 2.250000 +v 0.198223 10.000000 2.323223 +v 0.125000 10.000000 2.500000 +v 0.198223 10.000000 2.676777 +v 0.375000 10.000000 2.750000 +v 0.551777 10.000000 2.676777 +v 0.625000 10.000000 2.500000 +v 0.551777 10.000000 2.323223 +v 0.198223 10.051777 2.301777 +v 0.125000 10.176777 2.426777 +v 0.198223 10.301777 2.551777 +v 0.375000 10.353554 2.603553 +v 0.551777 10.301777 2.551777 +v 0.625000 10.176777 2.426777 +v 0.551777 10.051777 2.301777 +v 0.198223 10.073223 2.250000 +v 0.125000 10.250000 2.250000 +v 0.198223 10.426777 2.250000 +v 0.375000 10.500000 2.250000 +v 0.551777 10.426777 2.250000 +v 0.625000 10.250000 2.250000 +v 0.551777 10.073223 2.250000 +v -0.375000 2.000000 2.250000 +v -0.551777 2.000000 2.323223 +v -0.625000 2.000000 2.500000 +v -0.551777 2.000000 2.676777 +v -0.375000 2.000000 2.750000 +v -0.198223 2.000000 2.676777 +v -0.125000 2.000000 2.500000 +v -0.198223 2.000000 2.323223 +v -0.375000 10.000000 2.250000 +v -0.551777 10.000000 2.323223 +v -0.625000 10.000000 2.500000 +v -0.551777 10.000000 2.676777 +v -0.375000 10.000000 2.750000 +v -0.198223 10.000000 2.676777 +v -0.125000 10.000000 2.500000 +v -0.198223 10.000000 2.323223 +v -0.551777 10.051777 2.301777 +v -0.625000 10.176777 2.426777 +v -0.551777 10.301777 2.551777 +v -0.375000 10.353554 2.603553 +v -0.198223 10.301777 2.551777 +v -0.125000 10.176777 2.426777 +v -0.198223 10.051777 2.301777 +v -0.551777 10.073223 2.250000 +v -0.625000 10.250000 2.250000 +v -0.551777 10.426777 2.250000 +v -0.375000 10.500000 2.250000 +v -0.198223 10.426777 2.250000 +v -0.125000 10.250000 2.250000 +v -0.198223 10.073223 2.250000 +v 0.812500 2.000000 2.000000 +v -0.812500 2.000000 2.000000 +v 0.812500 8.000000 2.000000 +v -0.812500 8.000000 2.000000 +v 0.812500 2.000000 3.500000 +v -0.812500 2.000000 3.500000 +v 0.812500 8.000000 3.500000 +v -0.812500 8.000000 3.500000 +v -1.000000 2.000000 3.312500 +v -1.000000 2.000000 2.187500 +v -1.000000 8.000000 3.312500 +v -1.000000 8.000000 2.187500 +v 1.000000 2.000000 3.312500 +v 1.000000 2.000000 2.187500 +v 1.000000 8.000000 3.312500 +v 1.000000 8.000000 2.187500 +v 0.812500 8.250000 2.000000 +v -0.812500 8.250000 2.000000 +v 0.812500 14.250000 2.000000 +v -0.812500 14.250000 2.000000 +v 0.812500 8.250000 3.000000 +v -0.812500 8.250000 3.000000 +v 0.812500 14.250000 3.000000 +v -0.812500 14.250000 3.000000 +v -1.000000 8.250000 2.187500 +v -1.000000 14.250000 2.187500 +v -1.000000 8.250000 2.812500 +v -1.000000 14.250000 2.812500 +v 1.000000 8.250000 2.187500 +v 1.000000 14.250000 2.187500 +v 1.000000 8.250000 2.812500 +v 1.000000 14.250000 2.812500 +vt 0.155844 0.875000 +vt 0.285714 0.666667 +vt 0.285714 0.875000 +vt 0.090909 0.437500 +vt 0.025974 0.125000 +vt 0.090909 0.229167 +vt 0.220779 0.437500 +vt 0.025974 0.541667 +vt 0.220779 0.229167 +vt 0.285714 0.541667 +vt 0.285714 0.125000 +vt 0.025974 0.125000 +vt 0.285714 0.083333 +vt 0.285714 0.125000 +vt 0.025974 0.125000 +vt 0.285714 0.083333 +vt 0.285714 0.125000 +vt 0.285714 0.083333 +vt 0.025974 0.125000 +vt 0.285714 0.083333 +vt 0.285714 0.125000 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt -0.000000 0.041667 +vt 0.311688 -0.000000 +vt 0.000000 0.041667 +vt 0.311688 0.000000 +vt 0.000000 0.041667 +vt 0.311688 0.000000 +vt 0.000000 0.041667 +vt 0.311688 0.000000 +vt 0.129870 0.291667 +vt 0.129870 0.375000 +vt 0.181818 0.375000 +vt 0.181818 0.291667 +vt 0.441558 0.625000 +vt 0.493506 0.875000 +vt 0.441558 0.875000 +vt 0.545455 0.875000 +vt 0.493506 0.625000 +vt 0.545455 0.625000 +vt 0.493506 0.541667 +vt 0.441558 0.541667 +vt 0.441558 0.958333 +vt 0.493506 0.958333 +vt 0.337662 0.083333 +vt 0.415584 0.416667 +vt 0.337662 0.416667 +vt 0.415584 -0.000000 +vt 0.337662 -0.000000 +vt 0.337662 0.500000 +vt 0.415584 0.500000 +vt 0.285714 0.083333 +vt 0.285714 0.416667 +vt 0.324675 0.500000 +vt 0.305195 1.000000 +vt 0.305195 0.500000 +vt 0.344156 0.500000 +vt 0.324675 1.000000 +vt 0.324675 0.500000 +vt 0.344156 0.500000 +vt 0.324675 1.000000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.344156 0.500000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.344156 0.500000 +vt 0.305195 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.305195 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.324675 0.500000 +vt 0.305195 1.000000 +vt 0.324675 0.500000 +vt 0.305195 1.000000 +vt 0.324675 1.000000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.324675 1.000000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.305195 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.305195 1.000000 +vt 0.675325 0.750000 +vt 0.545455 1.000000 +vt 0.545455 0.750000 +vt 0.545455 0.750000 +vt 0.675325 1.000000 +vt 0.545455 1.000000 +vt 0.688312 1.000000 +vt 0.675325 0.750000 +vt 0.688312 0.750000 +vt 0.688312 1.000000 +vt 0.675325 0.750000 +vt 0.688312 0.750000 +vt 0.675325 0.729167 +vt 0.545455 0.729167 +vt 0.675325 0.729167 +vt 0.545455 0.750000 +vt 0.545455 0.729167 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.383117 0.500000 +vt 0.422078 0.500000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.422078 0.500000 +vt 0.383117 0.500000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.383117 0.500000 +vt 0.422078 0.500000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.422078 0.500000 +vt 0.383117 0.500000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.792208 0.750000 +vt 0.688312 1.000000 +vt 0.688312 0.750000 +vt 0.415584 0.500000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.415584 0.000000 +vt 0.500000 0.500000 +vt 0.415584 0.500000 +vt 0.500000 0.000000 +vt 0.558442 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.500000 +vt 0.558442 0.000000 +vt 0.558442 0.500000 +vt 0.558442 0.500000 +vt 0.642857 0.000000 +vt 0.642857 0.500000 +vt 0.558442 0.000000 +vt 0.642857 0.500000 +vt 0.558442 0.500000 +vt 0.642857 0.000000 +vt 0.675325 0.500000 +vt 0.642857 0.500000 +vt 0.642857 0.500000 +vt 0.675325 0.000000 +vt 0.675325 0.500000 +vt 0.688312 0.750000 +vt 0.792208 1.000000 +vt 0.688312 1.000000 +vt 0.805195 1.000000 +vt 0.792208 0.750000 +vt 0.805195 0.750000 +vt 0.805195 1.000000 +vt 0.792208 0.750000 +vt 0.805195 0.750000 +vt 0.792208 0.729167 +vt 0.688312 0.729167 +vt 0.792208 0.729167 +vt 0.688312 0.750000 +vt 0.688312 0.729167 +vt 0.636364 0.625272 +vt 0.645427 0.631294 +vt 0.627300 0.660373 +vt 0.662338 0.624730 +vt 0.671640 0.630911 +vt 0.653036 0.660756 +vt 0.500000 0.000000 +vt 0.415584 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.500000 +vt 0.415584 0.000000 +vt 0.415584 0.500000 +vt 0.558442 0.500000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.558442 0.000000 +vt 0.500000 0.500000 +vt 0.558442 0.500000 +vt 0.642857 0.000000 +vt 0.558442 0.500000 +vt 0.642857 0.500000 +vt 0.642857 0.500000 +vt 0.558442 0.000000 +vt 0.558442 0.500000 +vt 0.675325 0.500000 +vt 0.642857 0.000000 +vt 0.642857 0.500000 +vt 0.675325 0.000000 +vt 0.642857 0.500000 +vt 0.675325 0.500000 +vt 0.155844 0.666667 +vt -0.000000 -0.000000 +vt -0.000000 -0.000000 +vt -0.000000 -0.000000 +vt -0.000000 -0.000000 +vt 0.415584 0.083333 +vt 0.363636 1.000000 +vt 0.363636 1.000000 +vt 0.363636 1.000000 +vt 0.363636 1.000000 +vt 0.675325 1.000000 +vt 0.675325 1.000000 +vt 0.441558 1.000000 +vt 0.441558 1.000000 +vt 0.441558 1.000000 +vt 0.441558 1.000000 +vt 0.792208 1.000000 +vt 0.415584 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.642857 0.000000 +vt 0.675325 0.000000 +vt 0.642857 0.000000 +vt 0.792208 1.000000 +vt 0.649182 0.645834 +vt 0.645427 0.660374 +vt 0.636364 0.666396 +vt 0.623546 0.645834 +vt 0.627300 0.631294 +vt 0.675493 0.645833 +vt 0.671640 0.660756 +vt 0.662338 0.666937 +vt 0.649182 0.645833 +vt 0.653035 0.630911 +vt 0.415584 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.642857 0.000000 +vt 0.675325 0.000000 +vt 0.642857 0.000000 +vt 0.724026 -0.000000 +vt 0.714286 0.666667 +vt 0.714286 0.000000 +vt 0.704545 -0.000000 +vt 0.694805 0.666667 +vt 0.694805 0.000000 +vt 0.685065 0.000000 +vt 0.675325 0.666667 +vt 0.675325 -0.000000 +vt 0.753247 0.000000 +vt 0.743506 0.666667 +vt 0.743506 -0.000000 +vt 0.733766 -0.000000 +vt 0.724026 0.666667 +vt 0.704545 0.666667 +vt 0.685065 0.666667 +vt 0.733766 0.666667 +vt 0.724026 0.671875 +vt 0.733766 0.697917 +vt 0.724026 0.697917 +vt 0.704545 0.671875 +vt 0.714286 0.697917 +vt 0.704545 0.697917 +vt 0.685065 0.692708 +vt 0.694805 0.697917 +vt 0.685065 0.697917 +vt 0.733766 0.682292 +vt 0.743506 0.697917 +vt 0.694805 0.682292 +vt 0.704545 0.723958 +vt 0.694805 0.713542 +vt 0.685065 0.703125 +vt 0.733766 0.713542 +vt 0.724026 0.723958 +vt 0.714286 0.729167 +vt 0.743506 0.692708 +vt 0.753247 0.697917 +vt 0.743506 0.703125 +vt 0.675325 0.697917 +vt 0.801948 0.000000 +vt 0.792208 0.666667 +vt 0.792208 0.000000 +vt 0.782468 0.000000 +vt 0.772727 0.666667 +vt 0.772727 0.000000 +vt 0.762987 -0.000000 +vt 0.753247 0.666667 +vt 0.753247 0.000000 +vt 0.831169 0.000000 +vt 0.821429 0.666667 +vt 0.821429 -0.000000 +vt 0.811688 -0.000000 +vt 0.801948 0.666667 +vt 0.782468 0.666667 +vt 0.762987 0.666667 +vt 0.811688 0.666667 +vt 0.801948 0.671875 +vt 0.811688 0.697917 +vt 0.801948 0.697917 +vt 0.782468 0.697917 +vt 0.782468 0.671875 +vt 0.772727 0.682292 +vt 0.762987 0.697917 +vt 0.762987 0.692708 +vt 0.821429 0.692708 +vt 0.811688 0.682292 +vt 0.792208 0.697917 +vt 0.772727 0.697917 +vt 0.782468 0.723958 +vt 0.772727 0.713542 +vt 0.762987 0.703125 +vt 0.821429 0.697917 +vt 0.811688 0.713542 +vt 0.801948 0.723958 +vt 0.792208 0.729167 +vt 0.831169 0.697917 +vt 0.821429 0.703125 +vt 0.753247 0.697917 +vt 0.753247 0.666667 +vt 0.831169 0.666667 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.6000 -0.8000 +vn 0.8000 0.6000 0.0000 +vn 0.0000 0.6000 0.8000 +vn -0.8000 0.6000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.1866 0.9824 +vn -0.7071 0.0000 0.7071 +vn -0.9987 0.0196 0.0473 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 -0.1944 -0.9809 +vn 0.7263 -0.1363 -0.6737 +vn 0.7071 0.0000 -0.7071 +vn 0.6794 0.1448 0.7194 +vn -0.6794 0.1448 0.7194 +vn -0.7263 -0.1363 -0.6737 +vn 0.9987 0.0196 0.0473 +vn 0.9955 0.0671 0.0671 +vn 0.6630 0.5294 0.5294 +vn -0.0000 0.7071 0.7071 +vn -0.6630 0.5294 0.5294 +vn -0.9955 0.0671 0.0671 +vn -0.7574 -0.4617 -0.4617 +vn 0.7574 -0.4617 -0.4617 +vn -0.6333 0.7150 0.2962 +vn -0.9947 0.0948 0.0393 +vn -0.7311 -0.6303 -0.2611 +vn 0.9947 0.0948 0.0393 +vn 0.6333 0.7150 0.2962 +vn 0.0000 0.9239 0.3827 +vn 0.7311 -0.6303 -0.2611 +s off +f 2208/2866/116 2211/2867/116 2210/2868/116 +f 2184/2869/116 2189/2870/116 2185/2871/116 +f 2186/2872/116 2188/2873/116 2184/2869/116 +f 2187/2874/116 2190/2875/116 2186/2872/116 +f 2185/2871/116 2191/2876/116 2187/2874/116 +f 2191/2877/117 2194/2878/117 2190/2879/117 +f 2188/2880/118 2193/2881/118 2189/2882/118 +f 2189/2870/119 2195/2883/119 2191/2876/119 +f 2190/2884/120 2192/2885/120 2188/2886/120 +f 2193/2887/116 2199/2888/116 2195/2883/116 +f 2192/2889/116 2197/2890/116 2193/2881/116 +f 2194/2891/116 2196/2892/116 2192/2885/116 +f 2195/2893/116 2198/2894/116 2194/2878/116 +f 2197/2895/119 2203/2896/119 2199/2888/119 +f 2198/2897/120 2200/2898/120 2196/2892/120 +f 2199/2899/117 2202/2900/117 2198/2894/117 +f 2196/2901/118 2201/2902/118 2197/2890/118 +f 2205/2903/121 2184/2869/121 2185/2871/121 +f 2204/2904/122 2186/2872/122 2184/2869/122 +f 2206/2905/123 2187/2874/123 2186/2872/123 +f 2207/2906/124 2185/2871/124 2187/2874/124 +f 2218/2907/116 2216/2908/116 2217/2909/116 +f 2214/2910/117 2219/2911/117 2215/2912/117 +f 2215/2913/119 2218/2907/119 2213/2914/119 +f 2212/2915/120 2216/2908/120 2214/2916/120 +f 2226/2917/116 2224/2918/116 2225/2919/116 +f 2223/2920/119 2226/2917/119 2221/2921/119 +f 2220/2922/120 2224/2918/120 2222/2923/120 +f 2221/2924/118 2225/2919/118 2220/2925/118 +f 2239/2926/119 2254/2927/119 2237/2928/119 +f 2230/2929/117 2247/2930/117 2231/2931/117 +f 2238/2932/117 2255/2933/117 2239/2926/117 +f 2232/2934/120 2248/2935/120 2234/2936/120 +f 2240/2937/120 2256/2938/120 2242/2939/120 +f 2233/2940/118 2249/2941/118 2232/2942/118 +f 2241/2943/118 2257/2944/118 2240/2945/118 +f 2235/2946/119 2250/2947/119 2233/2940/119 +f 2243/2948/119 2258/2949/119 2241/2943/119 +f 2234/2936/117 2251/2950/117 2235/2946/117 +f 2228/2951/120 2244/2952/120 2230/2929/120 +f 2242/2939/117 2259/2953/117 2243/2948/117 +f 2236/2954/120 2252/2955/120 2238/2932/120 +f 2229/2956/118 2245/2957/118 2228/2958/118 +f 2237/2928/118 2253/2959/118 2236/2960/118 +f 2231/2931/119 2246/2961/119 2229/2956/119 +f 2262/2962/125 2261/2963/125 2260/2964/125 +f 2266/2965/116 2264/2966/116 2265/2967/116 +f 2262/2968/117 2267/2969/117 2263/2970/117 +f 2261/2971/118 2265/2972/118 2260/2973/118 +f 2263/2974/119 2266/2965/119 2261/2975/119 +f 2260/2976/120 2264/2977/120 2262/2978/120 +f 2271/2979/119 2278/2980/119 2269/2981/119 +f 2270/2982/117 2279/2983/117 2271/2979/117 +f 2272/2984/120 2280/2985/120 2274/2986/120 +f 2273/2987/118 2281/2988/118 2272/2989/118 +f 2275/2990/119 2282/2991/119 2273/2987/119 +f 2274/2986/117 2283/2992/117 2275/2990/117 +f 2268/2993/120 2276/2994/120 2270/2982/120 +f 2269/2981/118 2277/2995/118 2268/2996/118 +f 2287/2997/119 2294/2998/119 2285/2999/119 +f 2286/3000/117 2295/3001/117 2287/2997/117 +f 2288/3002/120 2296/3003/120 2290/3004/120 +f 2289/3005/118 2297/3006/118 2288/3007/118 +f 2291/3008/119 2298/3009/119 2289/3005/119 +f 2290/3004/117 2299/3010/117 2291/3008/117 +f 2284/3011/120 2292/3012/120 2286/3000/120 +f 2285/2999/118 2293/3013/118 2284/3014/118 +f 2334/3015/125 2333/3016/125 2332/3017/125 +f 2302/3018/117 2301/3019/117 2303/3020/117 +f 2305/3021/118 2306/3022/118 2307/3023/118 +f 2309/3024/120 2310/3025/120 2311/3026/120 +f 2314/3027/119 2313/3028/119 2315/3029/119 +f 2318/3030/117 2317/3031/117 2319/3032/117 +f 2321/3033/118 2322/3034/118 2323/3035/118 +f 2324/3036/120 2327/3037/120 2325/3038/120 +f 2331/3039/119 2328/3040/119 2329/3041/119 +f 2338/3042/116 2336/3043/116 2337/3044/116 +f 2334/3045/117 2339/3046/117 2335/3047/117 +f 2333/3048/118 2337/3049/118 2332/3050/118 +f 2335/3051/119 2338/3042/119 2333/3052/119 +f 2332/3053/120 2336/3054/120 2334/3055/120 +f 2348/3056/117 2363/3057/117 2367/3058/117 +f 2378/3059/117 2393/3060/117 2397/3061/117 +f 2401/3062/118 2402/3063/118 2403/3064/118 +f 2406/3065/117 2405/3066/117 2407/3067/117 +f 2410/3068/119 2409/3069/119 2411/3070/119 +f 2413/3071/120 2414/3072/120 2415/3073/120 +f 2417/3074/118 2418/3075/118 2419/3076/118 +f 2422/3077/117 2421/3078/117 2423/3079/117 +f 2427/3080/119 2424/3081/119 2425/3082/119 +f 2428/3083/120 2431/3084/120 2429/3085/120 +f 2208/2866/116 2209/3086/116 2211/2867/116 +f 2184/2869/116 2188/2873/116 2189/2870/116 +f 2186/2872/116 2190/2875/116 2188/2873/116 +f 2187/2874/116 2191/2876/116 2190/2875/116 +f 2185/2871/116 2189/2870/116 2191/2876/116 +f 2191/2877/117 2195/2893/117 2194/2878/117 +f 2188/2880/118 2192/2889/118 2193/2881/118 +f 2189/2870/119 2193/2887/119 2195/2883/119 +f 2190/2884/120 2194/2891/120 2192/2885/120 +f 2193/2887/116 2197/2895/116 2199/2888/116 +f 2192/2889/116 2196/2901/116 2197/2890/116 +f 2194/2891/116 2198/2897/116 2196/2892/116 +f 2195/2893/116 2199/2899/116 2198/2894/116 +f 2197/2895/119 2201/3087/119 2203/2896/119 +f 2198/2897/120 2202/3088/120 2200/2898/120 +f 2199/2899/117 2203/3089/117 2202/2900/117 +f 2196/2901/118 2200/3090/118 2201/2902/118 +f 2205/2903/121 2204/2904/121 2184/2869/121 +f 2204/2904/122 2206/2905/122 2186/2872/122 +f 2206/2905/123 2207/2906/123 2187/2874/123 +f 2207/2906/124 2205/2903/124 2185/2871/124 +f 2218/2907/116 2219/2911/116 2216/2908/116 +f 2214/2910/117 2216/2908/117 2219/2911/117 +f 2215/2913/119 2219/2911/119 2218/2907/119 +f 2212/2915/120 2217/2909/120 2216/2908/120 +f 2226/2917/116 2227/3091/116 2224/2918/116 +f 2223/2920/119 2227/3091/119 2226/2917/119 +f 2220/2922/120 2225/2919/120 2224/2918/120 +f 2221/2924/118 2226/2917/118 2225/2919/118 +f 2239/2926/119 2255/2933/119 2254/2927/119 +f 2230/2929/117 2244/2952/117 2247/2930/117 +f 2238/2932/117 2252/2955/117 2255/2933/117 +f 2232/2934/120 2249/3092/120 2248/2935/120 +f 2240/2937/120 2257/3093/120 2256/2938/120 +f 2233/2940/118 2250/2947/118 2249/2941/118 +f 2241/2943/118 2258/2949/118 2257/2944/118 +f 2235/2946/119 2251/2950/119 2250/2947/119 +f 2243/2948/119 2259/2953/119 2258/2949/119 +f 2234/2936/117 2248/2935/117 2251/2950/117 +f 2228/2951/120 2245/3094/120 2244/2952/120 +f 2242/2939/117 2256/2938/117 2259/2953/117 +f 2236/2954/120 2253/3095/120 2252/2955/120 +f 2229/2956/118 2246/2961/118 2245/2957/118 +f 2237/2928/118 2254/2927/118 2253/2959/118 +f 2231/2931/119 2247/2930/119 2246/2961/119 +f 2262/2962/125 2263/3096/125 2261/2963/125 +f 2266/2965/116 2267/2969/116 2264/2966/116 +f 2262/2968/117 2264/2966/117 2267/2969/117 +f 2261/2971/118 2266/3097/118 2265/2972/118 +f 2263/2974/119 2267/2969/119 2266/2965/119 +f 2260/2976/120 2265/2972/120 2264/2977/120 +f 2271/2979/119 2279/2983/119 2278/2980/119 +f 2270/2982/117 2276/2994/117 2279/2983/117 +f 2272/2984/120 2281/3098/120 2280/2985/120 +f 2273/2987/118 2282/2991/118 2281/2988/118 +f 2275/2990/119 2283/2992/119 2282/2991/119 +f 2274/2986/117 2280/2985/117 2283/2992/117 +f 2268/2993/120 2277/3099/120 2276/2994/120 +f 2269/2981/118 2278/2980/118 2277/2995/118 +f 2287/2997/119 2295/3001/119 2294/2998/119 +f 2286/3000/117 2292/3012/117 2295/3001/117 +f 2288/3002/120 2297/3100/120 2296/3003/120 +f 2289/3005/118 2298/3009/118 2297/3006/118 +f 2291/3008/119 2299/3010/119 2298/3009/119 +f 2290/3004/117 2296/3003/117 2299/3010/117 +f 2284/3011/120 2293/3101/120 2292/3012/120 +f 2285/2999/118 2294/2998/118 2293/3013/118 +f 2334/3015/125 2335/3102/125 2333/3016/125 +f 2302/3018/117 2300/3103/117 2301/3019/117 +f 2305/3021/118 2304/3104/118 2306/3022/118 +f 2309/3024/120 2308/3105/120 2310/3025/120 +f 2314/3027/119 2312/3106/119 2313/3028/119 +f 2318/3030/117 2316/3107/117 2317/3031/117 +f 2321/3033/118 2320/3108/118 2322/3034/118 +f 2324/3036/120 2326/3109/120 2327/3037/120 +f 2331/3039/119 2330/3110/119 2328/3040/119 +f 2338/3042/116 2339/3046/116 2336/3043/116 +f 2334/3045/117 2336/3043/117 2339/3046/117 +f 2333/3048/118 2338/3111/118 2337/3049/118 +f 2335/3051/119 2339/3046/119 2338/3042/119 +f 2332/3053/120 2337/3049/120 2336/3054/120 +f 2363/3057/117 2364/3112/117 2365/3113/117 +f 2365/3113/117 2366/3114/117 2363/3057/117 +f 2366/3114/117 2367/3058/117 2363/3057/117 +f 2367/3058/117 2368/3115/117 2369/3116/117 +f 2369/3116/117 2348/3056/117 2367/3058/117 +f 2393/3060/117 2394/3117/117 2395/3118/117 +f 2395/3118/117 2396/3119/117 2393/3060/117 +f 2396/3119/117 2397/3061/117 2393/3060/117 +f 2397/3061/117 2398/3120/117 2399/3121/117 +f 2399/3121/117 2378/3059/117 2397/3061/117 +f 2401/3062/118 2400/3122/118 2402/3063/118 +f 2406/3065/117 2404/3123/117 2405/3066/117 +f 2410/3068/119 2408/3124/119 2409/3069/119 +f 2413/3071/120 2412/3125/120 2414/3072/120 +f 2417/3074/118 2416/3126/118 2418/3075/118 +f 2422/3077/117 2420/3127/117 2421/3078/117 +f 2427/3080/119 2426/3128/119 2424/3081/119 +f 2428/3083/120 2430/3129/120 2431/3084/120 +s 1 +f 2345/3130/126 2352/3131/127 2344/3132/118 +f 2343/3133/128 2350/3134/129 2342/3135/120 +f 2341/3136/130 2348/3137/131 2340/3138/117 +f 2340/3139/117 2355/3140/132 2347/3141/133 +f 2346/3142/119 2353/3143/134 2345/3130/126 +f 2344/3132/118 2351/3144/135 2343/3133/128 +f 2342/3135/120 2349/3145/136 2341/3136/130 +f 2347/3141/133 2354/3146/137 2346/3142/119 +f 2353/3147/134 2361/3148/138 2360/3149/139 +f 2351/3150/135 2359/3151/140 2358/3152/141 +f 2349/3153/136 2357/3154/142 2356/3155/143 +f 2354/3156/137 2362/3157/144 2361/3148/138 +f 2352/3131/127 2360/3149/139 2359/3151/140 +f 2351/3150/135 2357/3154/142 2350/3158/129 +f 2359/3151/140 2365/3159/145 2358/3152/141 +f 2356/3155/143 2364/3160/146 2363/3161/147 +f 2362/3157/144 2368/3162/148 2361/3148/138 +f 2359/3151/140 2367/3163/149 2366/3164/150 +f 2357/3154/142 2365/3159/145 2364/3160/146 +f 2361/3148/138 2367/3163/149 2360/3149/139 +f 2355/3165/132 2348/3166/131 2362/3157/144 +f 2362/3157/144 2348/3166/131 2369/3167/151 +f 2349/3153/136 2356/3155/143 2348/3168/131 +f 2356/3155/143 2363/3161/147 2348/3168/131 +f 2375/3169/126 2382/3170/127 2374/3171/118 +f 2373/3172/128 2380/3173/129 2372/3174/120 +f 2371/3175/130 2378/3176/131 2370/3177/117 +f 2370/3178/117 2385/3179/132 2377/3180/133 +f 2376/3181/119 2383/3182/134 2375/3169/126 +f 2374/3171/118 2381/3183/135 2373/3172/128 +f 2372/3174/120 2379/3184/136 2371/3175/130 +f 2377/3180/133 2384/3185/137 2376/3181/119 +f 2383/3186/134 2391/3187/138 2390/3188/139 +f 2382/3170/127 2388/3189/141 2381/3190/135 +f 2380/3191/129 2386/3192/143 2379/3193/136 +f 2385/3194/132 2391/3187/138 2384/3195/137 +f 2382/3170/127 2390/3188/139 2389/3196/140 +f 2381/3190/135 2387/3197/142 2380/3191/129 +f 2389/3196/140 2395/3198/145 2388/3189/141 +f 2386/3192/143 2394/3199/146 2393/3200/147 +f 2392/3201/144 2398/3202/148 2391/3187/138 +f 2389/3196/140 2397/3203/149 2396/3204/150 +f 2387/3197/142 2395/3198/145 2394/3199/146 +f 2391/3187/138 2397/3203/149 2390/3188/139 +f 2385/3194/132 2378/3205/131 2392/3201/144 +f 2392/3201/144 2378/3205/131 2399/3206/151 +f 2379/3193/136 2386/3192/143 2378/3207/131 +f 2386/3192/143 2393/3200/147 2378/3207/131 +f 2345/3130/126 2353/3143/134 2352/3131/127 +f 2343/3133/128 2351/3144/135 2350/3134/129 +f 2341/3136/130 2349/3145/136 2348/3137/131 +f 2340/3139/117 2348/3208/131 2355/3140/132 +f 2346/3142/119 2354/3146/137 2353/3143/134 +f 2344/3132/118 2352/3131/127 2351/3144/135 +f 2342/3135/120 2350/3134/129 2349/3145/136 +f 2347/3141/133 2355/3140/132 2354/3146/137 +f 2353/3147/134 2354/3156/137 2361/3148/138 +f 2351/3150/135 2352/3131/127 2359/3151/140 +f 2349/3153/136 2350/3158/129 2357/3154/142 +f 2354/3156/137 2355/3165/132 2362/3157/144 +f 2352/3131/127 2353/3147/134 2360/3149/139 +f 2351/3150/135 2358/3152/141 2357/3154/142 +f 2359/3151/140 2366/3164/150 2365/3159/145 +f 2356/3155/143 2357/3154/142 2364/3160/146 +f 2362/3157/144 2369/3167/151 2368/3162/148 +f 2359/3151/140 2360/3149/139 2367/3163/149 +f 2357/3154/142 2358/3152/141 2365/3159/145 +f 2361/3148/138 2368/3162/148 2367/3163/149 +f 2375/3169/126 2383/3182/134 2382/3170/127 +f 2373/3172/128 2381/3183/135 2380/3173/129 +f 2371/3175/130 2379/3184/136 2378/3176/131 +f 2370/3178/117 2378/3209/131 2385/3179/132 +f 2376/3181/119 2384/3185/137 2383/3182/134 +f 2374/3171/118 2382/3170/127 2381/3183/135 +f 2372/3174/120 2380/3173/129 2379/3184/136 +f 2377/3180/133 2385/3179/132 2384/3185/137 +f 2383/3186/134 2384/3195/137 2391/3187/138 +f 2382/3170/127 2389/3196/140 2388/3189/141 +f 2380/3191/129 2387/3197/142 2386/3192/143 +f 2385/3194/132 2392/3201/144 2391/3187/138 +f 2382/3170/127 2383/3186/134 2390/3188/139 +f 2381/3190/135 2388/3189/141 2387/3197/142 +f 2389/3196/140 2396/3204/150 2395/3198/145 +f 2386/3192/143 2387/3197/142 2394/3199/146 +f 2392/3201/144 2399/3206/151 2398/3202/148 +f 2389/3196/140 2390/3188/139 2397/3203/149 +f 2387/3197/142 2388/3189/141 2395/3198/145 +f 2391/3187/138 2398/3202/148 2397/3203/149 +o Strong_Pad +v -2.500000 2.000000 2.500000 +v 2.500000 2.000000 2.500000 +v -2.500000 2.000000 -2.500000 +v 2.500000 2.000000 -2.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v 2.500000 1.000000 2.500000 +v -2.500000 1.000000 -2.500000 +v -2.500000 1.000000 2.500000 +v 2.500000 1.000000 -2.500000 +v 2.500000 1.000000 1.500000 +v -2.500000 1.000000 1.500000 +v -2.500000 1.000000 -1.500000 +v 2.500000 1.000000 -1.500000 +v -1.500000 1.000000 -2.500000 +v -1.500000 1.000000 2.500000 +v 1.500000 1.000000 2.500000 +v 1.500000 1.000000 -2.500000 +v 2.500000 1.500000 0.500000 +v -2.500000 1.500000 0.500000 +v -2.500000 1.500000 -0.500000 +v 2.500000 1.500000 -0.500000 +v -0.500000 1.500000 -2.500000 +v -0.500000 1.500000 2.500000 +v 0.500000 1.500000 2.500000 +v 0.500000 1.500000 -2.500000 +v -0.500000 1.500000 0.500000 +v 0.500000 1.500000 0.500000 +v -0.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -2.500000 +v 1.500000 1.000000 -2.500000 +v -1.500000 1.000000 -3.500000 +v 1.500000 1.000000 -3.500000 +v -1.500000 2.000000 -2.500000 +v 1.500000 2.000000 -2.500000 +v -1.500000 2.000000 -3.000000 +v -1.500000 1.500000 -3.500000 +v 1.500000 1.500000 -3.500000 +v 1.500000 2.000000 -3.000000 +v -1.000000 1.000000 3.500000 +v 1.000000 1.000000 3.500000 +v -1.000000 1.000000 2.500000 +v 1.000000 1.000000 2.500000 +v -1.000000 11.000000 2.500000 +v -1.000000 11.000000 3.500000 +v 1.000000 11.000000 3.500000 +v 1.000000 11.000000 2.500000 +v 3.250000 1.000000 2.500000 +v 3.500000 1.250000 2.500000 +v 2.500000 1.250000 2.500000 +v 2.750000 1.000000 2.500000 +v 3.500000 1.250000 4.500000 +v 3.250000 1.000000 4.500000 +v 2.750000 1.000000 4.500000 +v 2.500000 1.250000 4.500000 +v 1.500000 1.250000 4.500000 +v 1.750000 1.000000 4.500000 +v 2.250000 1.000000 4.500000 +v 2.500000 1.250000 4.500000 +v 1.750000 1.000000 2.500000 +v 1.500000 1.250000 2.500000 +v 2.500000 1.250000 2.500000 +v 2.250000 1.000000 2.500000 +v 1.500000 1.750000 2.500000 +v 1.750000 2.000000 2.500000 +v 1.750000 2.000000 4.500000 +v 1.500000 1.750000 4.500000 +v 2.500000 1.750000 4.500000 +v 2.250000 2.000000 4.500000 +v 2.250000 2.000000 2.500000 +v 2.500000 1.750000 2.500000 +v 2.500000 1.750000 2.500000 +v 2.750000 2.000000 2.500000 +v 2.750000 2.000000 4.500000 +v 2.500000 1.750000 4.500000 +v 3.500000 1.750000 4.500000 +v 3.250000 2.000000 4.500000 +v 3.250000 2.000000 2.500000 +v 3.500000 1.750000 2.500000 +v 3.000000 2.000000 2.625000 +v 2.911612 2.000000 2.661612 +v 2.875000 2.000000 2.750000 +v 2.911612 2.000000 2.838388 +v 3.000000 2.000000 2.875000 +v 3.088388 2.000000 2.838388 +v 3.125000 2.000000 2.750000 +v 3.088388 2.000000 2.661612 +v 2.963388 2.088388 2.625000 +v 2.900888 2.025888 2.661612 +v 2.900888 2.025888 2.838388 +v 2.963388 2.088388 2.875000 +v 3.025888 2.150888 2.838388 +v 3.051777 2.176777 2.750000 +v 3.025888 2.150888 2.661612 +v 2.875000 2.125000 2.625000 +v 2.875000 2.036612 2.661612 +v 2.875000 2.036612 2.838388 +v 2.875000 2.125000 2.875000 +v 2.875000 2.213388 2.838388 +v 2.875000 2.250000 2.750000 +v 2.875000 2.213388 2.661612 +v 1.000000 2.000000 2.750000 +v 1.000000 2.125000 2.625000 +v 1.000000 2.036612 2.661612 +v 1.000000 2.036612 2.838388 +v 1.000000 2.125000 2.875000 +v 1.000000 2.213388 2.838388 +v 1.000000 2.250000 2.750000 +v 1.000000 2.213388 2.661612 +v 2.000000 2.000000 3.125000 +v 1.911612 2.000000 3.161612 +v 1.875000 2.000000 3.250000 +v 1.911612 2.000000 3.338388 +v 2.000000 2.000000 3.375000 +v 2.088388 2.000000 3.338388 +v 2.125000 2.000000 3.250000 +v 2.088388 2.000000 3.161612 +v 1.963388 2.088388 3.125000 +v 1.900888 2.025888 3.161612 +v 1.900888 2.025888 3.338388 +v 1.963388 2.088388 3.375000 +v 2.025888 2.150888 3.338388 +v 2.051777 2.176777 3.250000 +v 2.025888 2.150888 3.161612 +v 1.875000 2.125000 3.125000 +v 1.875000 2.036612 3.161612 +v 1.875000 2.036612 3.338388 +v 1.875000 2.125000 3.375000 +v 1.875000 2.213388 3.338388 +v 1.875000 2.250000 3.250000 +v 1.875000 2.213388 3.161612 +v 1.000000 2.000000 3.250000 +v 1.000000 2.125000 3.125000 +v 1.000000 2.036612 3.161612 +v 1.000000 2.036612 3.338388 +v 1.000000 2.125000 3.375000 +v 1.000000 2.213388 3.338388 +v 1.000000 2.250000 3.250000 +v 1.000000 2.213388 3.161612 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v -1.750000 1.000000 2.500000 +v -1.500000 1.250000 2.500000 +v -2.500000 1.250000 2.500000 +v -2.250000 1.000000 2.500000 +v -1.500000 1.250000 4.500000 +v -1.750000 1.000000 4.500000 +v -2.250000 1.000000 4.500000 +v -2.500000 1.250000 4.500000 +v -3.500000 1.250000 4.500000 +v -3.250000 1.000000 4.500000 +v -2.750000 1.000000 4.500000 +v -2.500000 1.250000 4.500000 +v -3.250000 1.000000 2.500000 +v -3.500000 1.250000 2.500000 +v -2.500000 1.250000 2.500000 +v -2.750000 1.000000 2.500000 +v -3.500000 1.750000 2.500000 +v -3.250000 2.000000 2.500000 +v -3.250000 2.000000 4.500000 +v -3.500000 1.750000 4.500000 +v -2.500000 1.750000 4.500000 +v -2.750000 2.000000 4.500000 +v -2.750000 2.000000 2.500000 +v -2.500000 1.750000 2.500000 +v -2.500000 1.750000 2.500000 +v -2.250000 2.000000 2.500000 +v -2.250000 2.000000 4.500000 +v -2.500000 1.750000 4.500000 +v -1.500000 1.750000 4.500000 +v -1.750000 2.000000 4.500000 +v -1.750000 2.000000 2.500000 +v -1.500000 1.750000 2.500000 +v -3.000000 2.000000 3.375000 +v -2.911612 2.000000 3.338389 +v -2.875000 2.000000 3.250000 +v -2.911612 2.000000 3.161612 +v -3.000000 2.000000 3.125000 +v -3.088388 2.000000 3.161612 +v -3.125000 2.000000 3.250000 +v -3.088388 2.000000 3.338389 +v -2.963388 2.088388 3.375000 +v -2.900888 2.025888 3.338389 +v -2.900888 2.025888 3.161612 +v -2.963388 2.088388 3.125000 +v -3.025888 2.150888 3.161612 +v -3.051777 2.176777 3.250000 +v -3.025888 2.150888 3.338389 +v -2.875000 2.125000 3.375000 +v -2.875000 2.036612 3.338389 +v -2.875000 2.036612 3.161612 +v -2.875000 2.125000 3.125000 +v -2.875000 2.213388 3.161612 +v -2.875000 2.250000 3.250000 +v -2.875000 2.213388 3.338389 +v -1.000000 2.000000 3.250000 +v -1.000000 2.125000 3.375000 +v -1.000000 2.036612 3.338388 +v -1.000000 2.036612 3.161612 +v -1.000000 2.125000 3.125000 +v -1.000000 2.213388 3.161612 +v -1.000000 2.250000 3.250000 +v -1.000000 2.213388 3.338388 +v -2.000000 2.000000 2.875000 +v -1.911612 2.000000 2.838389 +v -1.875000 2.000000 2.750000 +v -1.911612 2.000000 2.661612 +v -2.000000 2.000000 2.625000 +v -2.088388 2.000000 2.661612 +v -2.125000 2.000000 2.750000 +v -2.088388 2.000000 2.838389 +v -1.963388 2.088388 2.875000 +v -1.900888 2.025888 2.838389 +v -1.900888 2.025888 2.661612 +v -1.963388 2.088388 2.625000 +v -2.025888 2.150888 2.661612 +v -2.051777 2.176777 2.750000 +v -2.025888 2.150888 2.838389 +v -1.875000 2.125000 2.875000 +v -1.875000 2.036612 2.838389 +v -1.875000 2.036612 2.661612 +v -1.875000 2.125000 2.625000 +v -1.875000 2.213388 2.661612 +v -1.875000 2.250000 2.750000 +v -1.875000 2.213388 2.838389 +v -1.000000 2.000000 2.750000 +v -1.000000 2.125000 2.875000 +v -1.000000 2.036612 2.838388 +v -1.000000 2.036612 2.661612 +v -1.000000 2.125000 2.625000 +v -1.000000 2.213388 2.661612 +v -1.000000 2.250000 2.750000 +v -1.000000 2.213388 2.838388 +vt 0.102564 0.719101 +vt -0.000000 0.988764 +vt -0.000000 0.539326 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.808989 +vt 0.256410 0.988764 +vt 0.153846 0.808989 +vt 0.256410 0.539326 +vt 0.153846 0.719101 +vt 0.256410 0.539326 +vt -0.000000 0.539326 +vt 0.153846 0.494382 +vt 0.256410 0.539326 +vt -0.000000 0.539326 +vt 0.153846 0.494382 +vt 0.256410 0.539326 +vt -0.000000 0.539326 +vt 0.153846 0.494382 +vt 0.153846 0.494382 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.449438 +vt 0.153846 0.269663 +vt 0.153846 0.449438 +vt -0.000000 0.179775 +vt 0.102564 0.269663 +vt -0.000000 0.269663 +vt 0.153846 0.000000 +vt 0.102564 0.179775 +vt 0.102564 -0.000000 +vt 0.256410 0.269663 +vt 0.153846 0.179775 +vt 0.256410 0.179775 +vt 0.051282 0.359551 +vt 0.051282 0.449438 +vt 0.205128 0.359551 +vt 0.205128 0.449438 +vt 0.205128 0.089888 +vt 0.205128 0.000000 +vt 0.051282 0.089888 +vt 0.051282 -0.000000 +vt 0.794872 0.359551 +vt 0.769231 0.089888 +vt 0.794872 0.089888 +vt 0.717949 0.089888 +vt 0.743590 0.359551 +vt 0.717949 0.359551 +vt 0.743590 0.089888 +vt 0.717949 -0.000000 +vt 0.769231 0.044944 +vt 0.666667 0.089888 +vt 0.666667 0.359551 +vt 0.769231 0.359551 +vt 0.717949 0.449438 +vt 0.769231 0.404494 +vt 0.615385 0.651685 +vt 0.602564 0.719101 +vt 0.564103 0.696629 +vt 0.358974 0.898876 +vt 0.256410 0.988764 +vt 0.256410 0.898876 +vt 0.410256 -0.000000 +vt 0.358974 -0.000000 +vt 0.564103 -0.000000 +vt 0.512821 0.898876 +vt 0.512821 -0.000000 +vt 0.410256 0.898876 +vt 0.256410 -0.000000 +vt 0.615385 0.292135 +vt 0.602564 0.359551 +vt 0.564103 0.337079 +vt 0.564103 0.449438 +vt 0.666667 0.494382 +vt 0.564103 0.494382 +vt 0.666667 0.382022 +vt 0.564103 0.426966 +vt 0.564103 0.382022 +vt 0.666667 0.651685 +vt 0.653846 0.719101 +vt 0.615385 0.696629 +vt 0.666667 0.584270 +vt 0.564103 0.629214 +vt 0.564103 0.584270 +vt 0.666667 0.561798 +vt 0.666667 0.359551 +vt 0.564103 0.359551 +vt 0.564103 0.516854 +vt 0.666667 0.516854 +vt 0.666667 0.426966 +vt 0.564103 0.561798 +vt 0.564103 0.089888 +vt 0.666667 0.134831 +vt 0.564103 0.134831 +vt 0.666667 0.022472 +vt 0.564103 0.067416 +vt 0.564103 0.022472 +vt 0.666667 0.292135 +vt 0.653846 0.359551 +vt 0.615385 0.337079 +vt 0.666667 0.224719 +vt 0.564103 0.269663 +vt 0.564103 0.224719 +vt 0.666667 0.202247 +vt 0.666667 0.000000 +vt 0.564103 -0.000000 +vt 0.564103 0.157303 +vt 0.666667 0.157303 +vt 0.666667 0.067416 +vt 0.564103 0.202247 +vt 0.102564 0.808989 +vt 0.153846 0.719101 +vt 0.153846 0.808989 +vt 0.615385 0.651685 +vt 0.602564 0.719101 +vt 0.564103 0.696629 +vt 0.615385 0.292135 +vt 0.602564 0.359551 +vt 0.564103 0.337079 +vt 0.564103 0.449438 +vt 0.666667 0.494382 +vt 0.564103 0.494382 +vt 0.666667 0.382022 +vt 0.564103 0.426966 +vt 0.564103 0.382022 +vt 0.666667 0.651685 +vt 0.653846 0.719101 +vt 0.615385 0.696629 +vt 0.666667 0.584270 +vt 0.564103 0.629214 +vt 0.564103 0.584270 +vt 0.666667 0.561798 +vt 0.666667 0.359551 +vt 0.564103 0.359551 +vt 0.564103 0.516854 +vt 0.666667 0.516854 +vt 0.666667 0.426966 +vt 0.564103 0.561798 +vt 0.564103 0.089888 +vt 0.666667 0.134831 +vt 0.564103 0.134831 +vt 0.666667 0.022472 +vt 0.564103 0.067416 +vt 0.564103 0.022472 +vt 0.666667 0.292135 +vt 0.653846 0.359551 +vt 0.615385 0.337079 +vt 0.666667 0.224719 +vt 0.564103 0.269663 +vt 0.564103 0.224719 +vt 0.666667 0.202247 +vt 0.666667 0.000000 +vt 0.564103 -0.000000 +vt 0.564103 0.157303 +vt 0.666667 0.157303 +vt 0.666667 0.067416 +vt 0.564103 0.202247 +vt 0.102564 0.224719 +vt 0.205128 0.449438 +vt 0.256410 0.449438 +vt 0.000000 0.449438 +vt 0.051282 0.449438 +vt 0.102564 0.494382 +vt 0.205128 0.449438 +vt 0.256410 0.449438 +vt -0.000000 0.449438 +vt 0.051282 0.449438 +vt 0.102564 0.494382 +vt 0.205128 0.449438 +vt 0.256410 0.449438 +vt 0.000000 0.449438 +vt 0.051282 0.449438 +vt 0.102564 0.494382 +vt 0.256410 0.449438 +vt -0.000000 0.449438 +vt 0.102564 0.494382 +vt 0.102564 0.224719 +vt 0.102564 0.224719 +vt 0.102564 0.224719 +vt -0.000000 0.359551 +vt 0.256410 0.359551 +vt 0.256410 0.089888 +vt -0.000000 0.089888 +vt 0.769231 -0.000000 +vt 0.769231 0.449438 +vt 0.564103 0.651685 +vt 0.576923 0.629214 +vt 0.602564 0.629214 +vt 0.615385 0.696629 +vt 0.576923 0.719101 +vt 0.358974 0.988764 +vt 0.564103 0.898876 +vt 0.564103 0.292135 +vt 0.576923 0.269663 +vt 0.602564 0.269663 +vt 0.615385 0.337079 +vt 0.576923 0.359551 +vt 0.666667 0.449438 +vt 0.615385 0.651685 +vt 0.628205 0.629214 +vt 0.653846 0.629214 +vt 0.666667 0.696629 +vt 0.628205 0.719101 +vt 0.666667 0.629214 +vt 0.666667 0.089888 +vt 0.615385 0.292135 +vt 0.628205 0.269663 +vt 0.653846 0.269663 +vt 0.666667 0.337079 +vt 0.628205 0.359551 +vt 0.666667 0.269663 +vt 0.102564 0.719101 +vt 0.564103 0.651685 +vt 0.576923 0.629214 +vt 0.602564 0.629214 +vt 0.615385 0.696629 +vt 0.576923 0.719101 +vt 0.564103 0.292135 +vt 0.576923 0.269663 +vt 0.602564 0.269663 +vt 0.615385 0.337079 +vt 0.576923 0.359551 +vt 0.666667 0.449438 +vt 0.615385 0.651685 +vt 0.628205 0.629214 +vt 0.653846 0.629214 +vt 0.666667 0.696629 +vt 0.628205 0.719101 +vt 0.666667 0.629214 +vt 0.666667 0.089888 +vt 0.615385 0.292135 +vt 0.628205 0.269663 +vt 0.653846 0.269663 +vt 0.666667 0.337079 +vt 0.628205 0.359551 +vt 0.666667 0.269663 +vt 0.634615 0.904494 +vt 0.641026 0.921348 +vt 0.634615 0.921348 +vt 0.647436 0.921348 +vt 0.653846 0.904494 +vt 0.653846 0.915730 +vt 0.621795 0.904494 +vt 0.628205 0.915730 +vt 0.621795 0.910112 +vt 0.628205 0.904494 +vt 0.641026 0.904494 +vt 0.660256 0.904494 +vt 0.660256 0.910112 +vt 0.647436 0.887640 +vt 0.647436 0.904494 +vt 0.621795 0.898876 +vt 0.628205 0.893258 +vt 0.641026 0.887640 +vt 0.660256 0.898876 +vt 0.666667 0.904494 +vt 0.615385 0.904494 +vt 0.621795 0.887640 +vt 0.628205 0.719101 +vt 0.628205 0.887640 +vt 0.615385 0.887640 +vt 0.621795 0.719101 +vt 0.634615 0.719101 +vt 0.634615 0.887640 +vt 0.660256 0.887640 +vt 0.666667 0.719101 +vt 0.666667 0.887640 +vt 0.647436 0.719101 +vt 0.653846 0.887640 +vt 0.660256 0.719101 +vt 0.641026 0.719101 +vt 0.653846 0.719101 +vt 0.583333 0.831461 +vt 0.589744 0.814607 +vt 0.589744 0.831461 +vt 0.596154 0.814607 +vt 0.602564 0.825843 +vt 0.596154 0.831461 +vt 0.570513 0.814607 +vt 0.576923 0.825843 +vt 0.570513 0.820225 +vt 0.576923 0.814607 +vt 0.602564 0.814607 +vt 0.608974 0.820225 +vt 0.602564 0.803371 +vt 0.570513 0.808989 +vt 0.583333 0.797753 +vt 0.583333 0.814607 +vt 0.589744 0.797753 +vt 0.608974 0.808989 +vt 0.608974 0.814607 +vt 0.615385 0.814607 +vt 0.564103 0.814607 +vt 0.570513 0.797753 +vt 0.576923 0.719101 +vt 0.576923 0.797753 +vt 0.564103 0.797753 +vt 0.570513 0.719101 +vt 0.583333 0.719101 +vt 0.608974 0.797753 +vt 0.615385 0.719101 +vt 0.615385 0.797753 +vt 0.596154 0.719101 +vt 0.596154 0.797753 +vt 0.602564 0.797753 +vt 0.608974 0.719101 +vt 0.589744 0.719101 +vt 0.602564 0.719101 +vt 0.634615 0.921348 +vt 0.641026 0.904494 +vt 0.641026 0.921348 +vt 0.647436 0.921348 +vt 0.653846 0.904494 +vt 0.653846 0.915730 +vt 0.621795 0.904494 +vt 0.628205 0.915730 +vt 0.621795 0.910112 +vt 0.628205 0.904494 +vt 0.647436 0.904494 +vt 0.660256 0.904494 +vt 0.660256 0.910112 +vt 0.653846 0.893258 +vt 0.621795 0.898876 +vt 0.628205 0.893258 +vt 0.634615 0.904494 +vt 0.641026 0.887640 +vt 0.660256 0.898876 +vt 0.666667 0.904494 +vt 0.615385 0.904494 +vt 0.621795 0.887640 +vt 0.628205 0.719101 +vt 0.628205 0.887640 +vt 0.615385 0.887640 +vt 0.621795 0.719101 +vt 0.634615 0.719101 +vt 0.634615 0.887640 +vt 0.660256 0.887640 +vt 0.666667 0.719101 +vt 0.666667 0.887640 +vt 0.647436 0.719101 +vt 0.647436 0.887640 +vt 0.653846 0.887640 +vt 0.660256 0.719101 +vt 0.641026 0.719101 +vt 0.653846 0.719101 +vt 0.583333 0.831461 +vt 0.589744 0.814607 +vt 0.589744 0.831461 +vt 0.596154 0.814607 +vt 0.602564 0.825843 +vt 0.596154 0.831461 +vt 0.570513 0.814607 +vt 0.576923 0.825843 +vt 0.570513 0.820225 +vt 0.576923 0.814607 +vt 0.608974 0.814607 +vt 0.608974 0.820225 +vt 0.596154 0.797753 +vt 0.602564 0.814607 +vt 0.576923 0.803371 +vt 0.583333 0.814607 +vt 0.589744 0.797753 +vt 0.608974 0.808989 +vt 0.583333 0.797753 +vt 0.615385 0.814607 +vt 0.564103 0.814607 +vt 0.570513 0.808989 +vt 0.570513 0.797753 +vt 0.576923 0.719101 +vt 0.576923 0.797753 +vt 0.564103 0.797753 +vt 0.570513 0.719101 +vt 0.583333 0.719101 +vt 0.608974 0.797753 +vt 0.615385 0.719101 +vt 0.615385 0.797753 +vt 0.596154 0.719101 +vt 0.602564 0.797753 +vt 0.608974 0.719101 +vt 0.589744 0.719101 +vt 0.602564 0.719101 +vt 0.653846 0.893258 +vt 0.615385 0.719101 +vt 0.576923 0.803371 +vt 0.564103 0.719101 +vt 0.615385 0.719101 +vt 0.602564 0.803371 +vt 0.564103 0.719101 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.4472 -0.8944 0.0000 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.4472 -0.8944 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.5293 0.5293 -0.6630 +vn 0.9239 0.3827 0.0000 +vn 0.7150 0.2962 -0.6332 +vn 0.7150 0.2962 0.6332 +vn 0.0670 0.0670 0.9955 +vn 0.0948 0.0392 0.9947 +vn -0.4617 -0.4617 -0.7573 +vn 0.0948 0.0392 -0.9947 +vn -0.6303 -0.2611 -0.7311 +vn 0.0670 0.0670 -0.9955 +vn -0.4617 -0.4617 0.7573 +vn -0.6303 -0.2611 0.7311 +vn 0.1447 0.7194 0.6794 +vn 0.5293 0.5293 0.6630 +vn -0.1363 -0.6737 -0.7263 +vn 0.0196 0.0473 -0.9987 +vn 0.1866 0.9824 0.0000 +vn -0.1363 -0.6737 0.7263 +vn -0.1944 -0.9809 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.1447 0.7194 -0.6794 +vn 0.0000 0.7071 0.7071 +vn 0.0196 0.0473 0.9987 +vn 0.0000 -0.7071 0.7071 +vn -0.7150 0.2962 0.6332 +vn -0.9239 0.3827 0.0000 +vn -0.7150 0.2962 -0.6332 +vn -0.0670 0.0670 -0.9955 +vn -0.0948 0.0392 -0.9947 +vn 0.4617 -0.4617 0.7573 +vn -0.0948 0.0392 0.9947 +vn 0.6303 -0.2611 0.7311 +vn -0.0670 0.0670 0.9955 +vn -0.5293 0.5293 -0.6630 +vn 0.4617 -0.4617 -0.7573 +vn 0.6303 -0.2611 -0.7311 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.5293 0.5293 0.6630 +vn -0.1866 0.9824 0.0000 +vn 0.1363 -0.6737 -0.7263 +vn 0.1944 -0.9809 0.0000 +vn -0.1447 0.7194 0.6794 +vn -0.1447 0.7194 -0.6794 +s off +f 2437/3210/152 2432/3211/152 2433/3212/152 +f 2439/3213/153 2461/3214/153 2437/3215/153 +f 2436/3216/152 2434/3217/152 2432/3211/152 +f 2438/3218/152 2435/3219/152 2434/3217/152 +f 2439/3220/152 2433/3212/152 2435/3219/152 +f 2433/3221/154 2432/3222/154 2458/3223/154 +f 2432/3224/153 2434/3225/153 2453/3226/153 +f 2434/3227/155 2435/3228/155 2456/3229/155 +f 2435/3219/156 2433/3212/156 2455/3230/156 +f 2436/3231/156 2462/3232/156 2438/3233/156 +f 2438/3234/154 2463/3235/154 2439/3236/154 +f 2437/3237/155 2460/3238/155 2436/3239/155 +f 2452/3240/157 2463/3241/157 2455/3242/157 +f 2457/3243/157 2461/3244/157 2458/3245/157 +f 2454/3246/157 2460/3247/157 2453/3248/157 +f 2459/3249/157 2462/3250/157 2456/3251/157 +f 2467/3252/158 2458/3245/158 2461/3244/158 +f 2467/3252/159 2452/3240/159 2444/3253/159 +f 2455/3242/160 2465/3254/160 2447/3255/160 +f 2459/3249/158 2465/3254/158 2463/3241/158 +f 2464/3256/161 2456/3251/161 2462/3250/161 +f 2464/3256/160 2454/3246/160 2446/3257/160 +f 2453/3248/159 2466/3258/159 2445/3259/159 +f 2457/3243/161 2466/3258/161 2460/3247/161 +f 2470/3260/155 2476/3261/155 2471/3262/155 +f 2473/3263/152 2474/3264/152 2472/3265/152 +f 2477/3266/156 2469/3267/156 2476/3268/156 +f 2469/3269/154 2472/3265/154 2468/3270/154 +f 2475/3271/162 2477/3266/162 2476/3261/162 +f 2468/3272/153 2474/3264/153 2475/3273/153 +f 2497/3274/154 2507/3275/154 2505/3276/154 +f 2484/3277/152 2482/3278/152 2483/3279/152 +f 2481/3280/156 2484/3277/156 2479/3281/156 +f 2478/3282/153 2482/3283/153 2480/3284/153 +f 2480/3284/155 2485/3285/155 2481/3280/155 +f 2479/3281/154 2483/3279/154 2478/3286/154 +f 2490/3287/154 2515/3288/154 2513/3289/154 +f 2507/3290/152 2503/3291/152 2504/3292/152 +f 2500/3293/156 2506/3294/156 2497/3295/156 +f 2499/3296/155 2503/3297/155 2509/3298/155 +f 2498/3299/157 2496/3300/157 2495/3301/157 +f 2495/3301/163 2499/3302/163 2498/3299/163 +f 2501/3303/164 2497/3295/164 2496/3304/164 +f 2505/3305/165 2503/3291/165 2502/3306/165 +f 2509/3307/166 2507/3290/166 2506/3294/166 +f 2494/3308/153 2502/3306/153 2499/3302/153 +f 2515/3309/152 2511/3310/152 2512/3311/152 +f 2487/3312/156 2514/3313/156 2490/3314/156 +f 2488/3315/155 2511/3316/155 2517/3317/155 +f 2489/3318/157 2491/3319/157 2492/3320/157 +f 2492/3320/163 2488/3321/163 2489/3318/163 +f 2486/3322/164 2490/3314/164 2491/3323/164 +f 2513/3324/165 2511/3310/165 2510/3325/165 +f 2517/3326/166 2515/3309/166 2514/3313/166 +f 2493/3327/153 2510/3325/153 2488/3321/153 +f 2578/3328/152 2581/3329/152 2580/3330/152 +f 2593/3331/154 2603/3332/154 2601/3333/154 +f 2586/3334/154 2611/3335/154 2609/3336/154 +f 2603/3337/152 2599/3338/152 2600/3339/152 +f 2596/3340/156 2602/3341/156 2593/3342/156 +f 2595/3343/155 2599/3344/155 2605/3345/155 +f 2594/3346/157 2592/3347/157 2591/3348/157 +f 2591/3348/163 2595/3349/163 2594/3346/163 +f 2597/3350/164 2593/3342/164 2592/3351/164 +f 2601/3352/165 2599/3338/165 2598/3353/165 +f 2605/3354/166 2603/3337/166 2602/3341/166 +f 2590/3355/153 2598/3353/153 2595/3349/153 +f 2611/3356/152 2607/3357/152 2608/3358/152 +f 2583/3359/156 2610/3360/156 2586/3361/156 +f 2584/3362/155 2607/3363/155 2613/3364/155 +f 2585/3365/157 2587/3366/157 2588/3367/157 +f 2588/3367/163 2584/3368/163 2585/3365/163 +f 2582/3369/164 2586/3361/164 2587/3370/164 +f 2609/3371/165 2607/3357/165 2606/3372/165 +f 2613/3373/166 2611/3356/166 2610/3360/166 +f 2589/3374/153 2606/3372/153 2584/3368/153 +f 2437/3210/152 2436/3216/152 2432/3211/152 +f 2439/3213/153 2463/3375/153 2461/3214/153 +f 2436/3216/152 2438/3218/152 2434/3217/152 +f 2438/3218/152 2439/3220/152 2435/3219/152 +f 2439/3220/152 2437/3210/152 2433/3212/152 +f 2450/3376/154 2440/3377/154 2433/3221/154 +f 2432/3222/154 2442/3378/154 2449/3379/154 +f 2432/3222/154 2449/3379/154 2457/3380/154 +f 2458/3223/154 2450/3376/154 2433/3221/154 +f 2432/3222/154 2457/3380/154 2458/3223/154 +f 2445/3381/153 2442/3382/153 2432/3224/153 +f 2434/3225/153 2441/3383/153 2446/3384/153 +f 2434/3225/153 2446/3384/153 2454/3385/153 +f 2453/3226/153 2445/3381/153 2432/3224/153 +f 2434/3225/153 2454/3385/153 2453/3226/153 +f 2448/3386/155 2441/3387/155 2434/3227/155 +f 2435/3228/155 2443/3388/155 2451/3389/155 +f 2435/3228/155 2451/3389/155 2459/3390/155 +f 2456/3229/155 2448/3386/155 2434/3227/155 +f 2435/3228/155 2459/3390/155 2456/3229/155 +f 2447/3255/156 2443/3391/156 2435/3219/156 +f 2433/3212/156 2440/3392/156 2444/3253/156 +f 2433/3212/156 2444/3253/156 2452/3393/156 +f 2455/3230/156 2447/3255/156 2435/3219/156 +f 2433/3212/156 2452/3393/156 2455/3230/156 +f 2436/3231/156 2460/3394/156 2462/3232/156 +f 2438/3234/154 2462/3395/154 2463/3235/154 +f 2437/3237/155 2461/3396/155 2460/3238/155 +f 2452/3240/157 2461/3244/157 2463/3241/157 +f 2457/3243/157 2460/3247/157 2461/3244/157 +f 2454/3246/157 2462/3250/157 2460/3247/157 +f 2459/3249/157 2463/3241/157 2462/3250/157 +f 2467/3252/158 2450/3397/158 2458/3245/158 +f 2467/3252/159 2461/3244/159 2452/3240/159 +f 2455/3242/160 2463/3241/160 2465/3254/160 +f 2459/3249/158 2451/3398/158 2465/3254/158 +f 2464/3256/161 2448/3399/161 2456/3251/161 +f 2464/3256/160 2462/3250/160 2454/3246/160 +f 2453/3248/159 2460/3247/159 2466/3258/159 +f 2457/3243/161 2449/3400/161 2466/3258/161 +f 2470/3260/155 2475/3271/155 2476/3261/155 +f 2473/3263/152 2477/3266/152 2474/3264/152 +f 2473/3263/156 2469/3267/156 2477/3266/156 +f 2469/3267/156 2471/3401/156 2476/3268/156 +f 2469/3269/154 2473/3263/154 2472/3265/154 +f 2475/3271/162 2474/3264/162 2477/3266/162 +f 2475/3273/153 2470/3402/153 2468/3272/153 +f 2468/3272/153 2472/3265/153 2474/3264/153 +f 2505/3276/154 2494/3403/154 2495/3404/154 +f 2495/3404/154 2496/3405/154 2497/3274/154 +f 2497/3274/154 2506/3406/154 2507/3275/154 +f 2507/3275/154 2504/3407/154 2505/3276/154 +f 2505/3276/154 2495/3404/154 2497/3274/154 +f 2484/3277/152 2485/3408/152 2482/3278/152 +f 2481/3280/156 2485/3285/156 2484/3277/156 +f 2478/3282/153 2483/3409/153 2482/3283/153 +f 2480/3284/155 2482/3283/155 2485/3285/155 +f 2479/3281/154 2484/3277/154 2483/3279/154 +f 2513/3289/154 2493/3410/154 2492/3411/154 +f 2492/3411/154 2491/3412/154 2490/3287/154 +f 2490/3287/154 2514/3413/154 2515/3288/154 +f 2515/3288/154 2512/3414/154 2513/3289/154 +f 2513/3289/154 2492/3411/154 2490/3287/154 +f 2507/3290/152 2508/3415/152 2503/3291/152 +f 2500/3293/156 2509/3307/156 2506/3294/156 +f 2509/3298/155 2500/3416/155 2501/3417/155 +f 2501/3417/155 2498/3418/155 2499/3296/155 +f 2499/3296/155 2502/3419/155 2503/3297/155 +f 2503/3297/155 2508/3420/155 2509/3298/155 +f 2509/3298/155 2501/3417/155 2499/3296/155 +f 2498/3299/157 2501/3421/157 2496/3300/157 +f 2495/3301/163 2494/3308/163 2499/3302/163 +f 2501/3303/164 2500/3293/164 2497/3295/164 +f 2505/3305/165 2504/3292/165 2503/3291/165 +f 2509/3307/166 2508/3415/166 2507/3290/166 +f 2494/3308/153 2505/3305/153 2502/3306/153 +f 2515/3309/152 2516/3422/152 2511/3310/152 +f 2487/3312/156 2517/3326/156 2514/3313/156 +f 2517/3317/155 2487/3423/155 2486/3424/155 +f 2486/3424/155 2489/3425/155 2488/3315/155 +f 2488/3315/155 2510/3426/155 2511/3316/155 +f 2511/3316/155 2516/3427/155 2517/3317/155 +f 2517/3317/155 2486/3424/155 2488/3315/155 +f 2489/3318/157 2486/3428/157 2491/3319/157 +f 2492/3320/163 2493/3327/163 2488/3321/163 +f 2486/3322/164 2487/3312/164 2490/3314/164 +f 2513/3324/165 2512/3311/165 2511/3310/165 +f 2517/3326/166 2516/3422/166 2515/3309/166 +f 2493/3327/153 2513/3324/153 2510/3325/153 +f 2578/3328/152 2579/3429/152 2581/3329/152 +f 2601/3333/154 2590/3430/154 2591/3431/154 +f 2591/3431/154 2592/3432/154 2593/3331/154 +f 2593/3331/154 2602/3433/154 2603/3332/154 +f 2603/3332/154 2600/3434/154 2601/3333/154 +f 2601/3333/154 2591/3431/154 2593/3331/154 +f 2609/3336/154 2589/3435/154 2588/3436/154 +f 2588/3436/154 2587/3437/154 2586/3334/154 +f 2586/3334/154 2610/3438/154 2611/3335/154 +f 2611/3335/154 2608/3439/154 2609/3336/154 +f 2609/3336/154 2588/3436/154 2586/3334/154 +f 2603/3337/152 2604/3440/152 2599/3338/152 +f 2596/3340/156 2605/3354/156 2602/3341/156 +f 2605/3345/155 2596/3441/155 2597/3442/155 +f 2597/3442/155 2594/3443/155 2595/3343/155 +f 2595/3343/155 2598/3444/155 2599/3344/155 +f 2599/3344/155 2604/3445/155 2605/3345/155 +f 2605/3345/155 2597/3442/155 2595/3343/155 +f 2594/3346/157 2597/3446/157 2592/3347/157 +f 2591/3348/163 2590/3355/163 2595/3349/163 +f 2597/3350/164 2596/3340/164 2593/3342/164 +f 2601/3352/165 2600/3339/165 2599/3338/165 +f 2605/3354/166 2604/3440/166 2603/3337/166 +f 2590/3355/153 2601/3352/153 2598/3353/153 +f 2611/3356/152 2612/3447/152 2607/3357/152 +f 2583/3359/156 2613/3373/156 2610/3360/156 +f 2613/3364/155 2583/3448/155 2582/3449/155 +f 2582/3449/155 2585/3450/155 2584/3362/155 +f 2584/3362/155 2606/3451/155 2607/3363/155 +f 2607/3363/155 2612/3452/155 2613/3364/155 +f 2613/3364/155 2582/3449/155 2584/3362/155 +f 2585/3365/157 2582/3453/157 2587/3366/157 +f 2588/3367/163 2589/3374/163 2584/3368/163 +f 2582/3369/164 2583/3359/164 2586/3361/164 +f 2609/3371/165 2608/3358/165 2607/3357/165 +f 2613/3373/166 2612/3447/166 2611/3356/166 +f 2589/3374/153 2609/3371/153 2606/3372/153 +s 1 +f 2532/3454/167 2524/3455/168 2525/3456/169 +f 2523/3457/170 2529/3458/171 2522/3459/172 +f 2527/3460/173 2518/3461/174 2519/3462/175 +f 2526/3463/176 2525/3456/169 2518/3461/174 +f 2531/3464/166 2523/3457/170 2524/3455/168 +f 2522/3459/172 2528/3465/177 2521/3466/178 +f 2537/3467/179 2529/3458/171 2530/3468/180 +f 2534/3469/181 2526/3463/176 2527/3460/173 +f 2533/3470/182 2532/3454/167 2526/3463/176 +f 2538/3471/183 2530/3468/180 2531/3464/166 +f 2529/3458/171 2535/3472/184 2528/3465/177 +f 2532/3454/167 2538/3471/183 2531/3464/166 +f 2520/3473/185 2521/3466/178 2528/3465/177 +f 2528/3465/177 2535/3472/184 2520/3473/185 +f 2519/3462/175 2520/3474/185 2527/3460/173 +f 2527/3460/173 2520/3474/185 2534/3469/181 +f 2534/3475/181 2541/3476/155 2533/3477/182 +f 2520/3478/185 2542/3479/186 2534/3475/181 +f 2533/3477/182 2547/3480/162 2539/3481/187 +f 2535/3482/184 2540/3483/157 2520/3484/185 +f 2538/3471/183 2545/3485/188 2537/3467/179 +f 2536/3486/189 2543/3487/190 2535/3482/184 +f 2539/3481/187 2546/3488/152 2538/3471/183 +f 2537/3467/179 2544/3489/154 2536/3486/189 +f 2555/3490/169 2561/3491/166 2554/3492/168 +f 2560/3493/180 2552/3494/172 2553/3495/170 +f 2557/3496/173 2548/3497/174 2549/3498/175 +f 2556/3499/176 2555/3490/169 2548/3497/174 +f 2561/3491/166 2553/3495/170 2554/3492/168 +f 2559/3500/171 2551/3501/178 2552/3494/172 +f 2560/3493/180 2566/3502/189 2559/3500/171 +f 2564/3503/181 2556/3499/176 2557/3496/173 +f 2556/3499/176 2569/3504/187 2562/3505/167 +f 2568/3506/183 2560/3493/180 2561/3491/166 +f 2559/3500/171 2565/3507/184 2558/3508/177 +f 2562/3505/167 2568/3506/183 2561/3491/166 +f 2550/3509/185 2551/3501/178 2558/3508/177 +f 2558/3508/177 2565/3507/184 2550/3509/185 +f 2549/3498/175 2550/3510/185 2557/3496/173 +f 2557/3496/173 2550/3510/185 2564/3503/181 +f 2564/3511/181 2571/3512/155 2563/3513/182 +f 2550/3514/185 2572/3515/186 2564/3511/181 +f 2563/3513/182 2577/3516/162 2569/3504/187 +f 2565/3517/184 2570/3518/157 2550/3519/185 +f 2568/3506/183 2575/3520/188 2567/3521/179 +f 2566/3522/189 2573/3523/190 2565/3517/184 +f 2569/3504/187 2576/3524/152 2568/3506/183 +f 2567/3521/179 2574/3525/154 2566/3522/189 +f 2621/3526/191 2627/3527/165 2620/3528/192 +f 2619/3529/193 2625/3530/194 2618/3531/195 +f 2623/3532/196 2614/3533/197 2615/3534/198 +f 2622/3535/199 2621/3526/191 2614/3533/197 +f 2620/3528/192 2626/3536/200 2619/3529/193 +f 2618/3531/195 2624/3537/201 2617/3538/202 +f 2626/3536/200 2632/3539/203 2625/3530/194 +f 2630/3540/204 2622/3535/199 2623/3532/196 +f 2629/3541/205 2628/3542/206 2622/3535/199 +f 2634/3543/207 2626/3536/200 2627/3527/165 +f 2625/3530/194 2631/3544/208 2624/3537/201 +f 2628/3542/206 2634/3543/207 2627/3527/165 +f 2616/3545/209 2617/3538/202 2624/3537/201 +f 2624/3537/201 2631/3544/208 2616/3545/209 +f 2615/3534/198 2616/3546/209 2623/3532/196 +f 2623/3532/196 2616/3546/209 2630/3540/204 +f 2630/3547/204 2637/3548/154 2629/3549/205 +f 2616/3550/209 2638/3551/190 2630/3547/204 +f 2629/3549/205 2643/3552/188 2635/3553/210 +f 2631/3554/208 2636/3555/157 2616/3556/209 +f 2634/3543/207 2641/3557/162 2633/3558/211 +f 2632/3559/203 2639/3560/186 2631/3554/208 +f 2635/3553/210 2642/3561/152 2634/3543/207 +f 2633/3558/211 2640/3562/155 2632/3559/203 +f 2651/3563/191 2657/3564/165 2650/3565/192 +f 2656/3566/200 2648/3567/195 2649/3568/193 +f 2653/3569/196 2644/3570/197 2645/3571/198 +f 2652/3572/199 2651/3563/191 2644/3570/197 +f 2657/3564/165 2649/3568/193 2650/3565/192 +f 2648/3567/195 2654/3573/201 2647/3574/202 +f 2663/3575/211 2655/3576/194 2656/3566/200 +f 2653/3569/196 2659/3577/205 2652/3572/199 +f 2659/3577/205 2658/3578/206 2652/3572/199 +f 2664/3579/207 2656/3566/200 2657/3564/165 +f 2655/3576/194 2661/3580/208 2654/3573/201 +f 2665/3581/210 2657/3564/165 2658/3578/206 +f 2646/3582/209 2647/3574/202 2654/3573/201 +f 2654/3573/201 2661/3580/208 2646/3582/209 +f 2645/3571/198 2646/3583/209 2653/3569/196 +f 2653/3569/196 2646/3583/209 2660/3584/204 +f 2660/3585/204 2667/3586/154 2659/3587/205 +f 2646/3588/209 2668/3589/190 2660/3585/204 +f 2659/3587/205 2673/3590/188 2665/3581/210 +f 2661/3591/208 2666/3592/157 2646/3593/209 +f 2664/3579/207 2671/3594/162 2663/3575/211 +f 2662/3595/203 2669/3596/186 2661/3591/208 +f 2664/3579/207 2673/3590/188 2672/3597/152 +f 2662/3595/203 2671/3594/162 2670/3598/155 +f 2532/3454/167 2531/3464/166 2524/3455/168 +f 2523/3457/170 2530/3468/180 2529/3458/171 +f 2527/3460/173 2526/3463/176 2518/3461/174 +f 2526/3463/176 2532/3454/167 2525/3456/169 +f 2531/3464/166 2530/3468/180 2523/3457/170 +f 2522/3459/172 2529/3458/171 2528/3465/177 +f 2537/3467/179 2536/3599/189 2529/3458/171 +f 2534/3469/181 2533/3470/182 2526/3463/176 +f 2533/3470/182 2539/3481/187 2532/3454/167 +f 2538/3471/183 2537/3467/179 2530/3468/180 +f 2529/3458/171 2536/3599/189 2535/3472/184 +f 2532/3454/167 2539/3481/187 2538/3471/183 +f 2534/3475/181 2542/3479/186 2541/3476/155 +f 2520/3478/185 2540/3600/157 2542/3479/186 +f 2533/3477/182 2541/3476/155 2547/3480/162 +f 2535/3482/184 2543/3487/190 2540/3483/157 +f 2538/3471/183 2546/3488/152 2545/3485/188 +f 2536/3486/189 2544/3489/154 2543/3487/190 +f 2539/3481/187 2547/3480/162 2546/3488/152 +f 2537/3467/179 2545/3485/188 2544/3489/154 +f 2555/3490/169 2562/3505/167 2561/3491/166 +f 2560/3493/180 2559/3500/171 2552/3494/172 +f 2557/3496/173 2556/3499/176 2548/3497/174 +f 2556/3499/176 2562/3505/167 2555/3490/169 +f 2561/3491/166 2560/3493/180 2553/3495/170 +f 2559/3500/171 2558/3508/177 2551/3501/178 +f 2560/3493/180 2567/3521/179 2566/3502/189 +f 2564/3503/181 2563/3601/182 2556/3499/176 +f 2556/3499/176 2563/3601/182 2569/3504/187 +f 2568/3506/183 2567/3521/179 2560/3493/180 +f 2559/3500/171 2566/3502/189 2565/3507/184 +f 2562/3505/167 2569/3504/187 2568/3506/183 +f 2564/3511/181 2572/3515/186 2571/3512/155 +f 2550/3514/185 2570/3602/157 2572/3515/186 +f 2563/3513/182 2571/3512/155 2577/3516/162 +f 2565/3517/184 2573/3523/190 2570/3518/157 +f 2568/3506/183 2576/3524/152 2575/3520/188 +f 2566/3522/189 2574/3525/154 2573/3523/190 +f 2569/3504/187 2577/3516/162 2576/3524/152 +f 2567/3521/179 2575/3520/188 2574/3525/154 +f 2621/3526/191 2628/3542/206 2627/3527/165 +f 2619/3529/193 2626/3536/200 2625/3530/194 +f 2623/3532/196 2622/3535/199 2614/3533/197 +f 2622/3535/199 2628/3542/206 2621/3526/191 +f 2620/3528/192 2627/3527/165 2626/3536/200 +f 2618/3531/195 2625/3530/194 2624/3537/201 +f 2626/3536/200 2633/3558/211 2632/3539/203 +f 2630/3540/204 2629/3541/205 2622/3535/199 +f 2629/3541/205 2635/3553/210 2628/3542/206 +f 2634/3543/207 2633/3558/211 2626/3536/200 +f 2625/3530/194 2632/3539/203 2631/3544/208 +f 2628/3542/206 2635/3553/210 2634/3543/207 +f 2630/3547/204 2638/3551/190 2637/3548/154 +f 2616/3550/209 2636/3603/157 2638/3551/190 +f 2629/3549/205 2637/3548/154 2643/3552/188 +f 2631/3554/208 2639/3560/186 2636/3555/157 +f 2634/3543/207 2642/3561/152 2641/3557/162 +f 2632/3559/203 2640/3562/155 2639/3560/186 +f 2635/3553/210 2643/3552/188 2642/3561/152 +f 2633/3558/211 2641/3557/162 2640/3562/155 +f 2651/3563/191 2658/3578/206 2657/3564/165 +f 2656/3566/200 2655/3576/194 2648/3567/195 +f 2653/3569/196 2652/3572/199 2644/3570/197 +f 2652/3572/199 2658/3578/206 2651/3563/191 +f 2657/3564/165 2656/3566/200 2649/3568/193 +f 2648/3567/195 2655/3576/194 2654/3573/201 +f 2663/3575/211 2662/3604/203 2655/3576/194 +f 2653/3569/196 2660/3584/204 2659/3577/205 +f 2659/3577/205 2665/3581/210 2658/3578/206 +f 2664/3579/207 2663/3575/211 2656/3566/200 +f 2655/3576/194 2662/3604/203 2661/3580/208 +f 2665/3581/210 2664/3579/207 2657/3564/165 +f 2660/3585/204 2668/3589/190 2667/3586/154 +f 2646/3588/209 2666/3605/157 2668/3589/190 +f 2659/3587/205 2667/3586/154 2673/3590/188 +f 2661/3591/208 2669/3596/186 2666/3592/157 +f 2664/3579/207 2672/3597/152 2671/3594/162 +f 2662/3595/203 2670/3598/155 2669/3596/186 +f 2664/3579/207 2665/3581/210 2673/3590/188 +f 2662/3595/203 2663/3575/211 2671/3594/162 +o Strong_Rope +v 0.625000 7.661612 0.088388 +v 0.625000 7.625000 0.000000 +v 0.625000 7.661612 -0.088388 +v 0.625000 7.750000 -0.125000 +v 0.625000 7.838388 -0.088388 +v 0.625000 7.875000 0.000000 +v 0.625000 7.838388 0.088388 +v 0.625000 7.750000 0.125000 +v 1.000000 7.661612 0.088388 +v 1.000000 7.625000 0.000000 +v 1.000000 7.661612 -0.088388 +v 1.000000 7.750000 -0.125000 +v 1.000000 7.838388 -0.088388 +v 1.000000 7.875000 0.000000 +v 1.000000 7.838388 0.088388 +v 1.025888 7.661612 0.099112 +v 1.088388 7.625000 0.036612 +v 1.150888 7.661612 -0.025888 +v 1.176777 7.750000 -0.051777 +v 1.150888 7.838388 -0.025888 +v 1.088388 7.875000 0.036612 +v 1.025888 7.838388 0.099112 +v 1.036612 7.661612 0.125000 +v 1.125000 7.625000 0.125000 +v 1.213388 7.661612 0.125000 +v 1.250000 7.750000 0.125000 +v 1.213388 7.838388 0.125000 +v 1.125000 7.875000 0.125000 +v 1.036612 7.838388 0.125000 +v 1.000000 7.750000 0.125000 +v 1.036612 7.661612 2.875000 +v 1.125000 7.625000 2.875000 +v 1.213388 7.661612 2.875000 +v 1.250000 7.750000 2.875000 +v 1.213388 7.838388 2.875000 +v 1.125000 7.875000 2.875000 +v 1.036612 7.838388 2.875000 +v 1.025888 7.661612 2.900888 +v 1.088388 7.625000 2.963388 +v 1.150888 7.661612 3.025888 +v 1.176777 7.750000 3.051777 +v 1.150888 7.838388 3.025888 +v 1.088388 7.875000 2.963388 +v 1.025888 7.838388 2.900888 +v 1.000000 7.661612 2.911612 +v 1.000000 7.625000 3.000000 +v 1.000000 7.661612 3.088388 +v 1.000000 7.750000 3.125000 +v 1.000000 7.838388 3.088388 +v 1.000000 7.875000 3.000000 +v 1.000000 7.838388 2.911612 +v 1.000000 7.750000 2.875000 +v 1.000000 5.500000 2.875000 +v 1.000000 5.588388 2.911612 +v 1.000000 5.625000 3.000000 +v 1.000000 5.588388 3.088388 +v 1.000000 5.500000 3.125000 +v 1.000000 5.411612 3.088388 +v 1.000000 5.375000 3.000000 +v 1.000000 5.411612 2.911612 +v 1.025888 5.588388 2.900888 +v 1.088388 5.625000 2.963388 +v 1.150888 5.588388 3.025888 +v 1.176777 5.500000 3.051777 +v 1.150888 5.411612 3.025888 +v 1.088388 5.375000 2.963388 +v 1.025888 5.411612 2.900888 +v 1.036612 5.588388 2.875000 +v 1.125000 5.625000 2.875000 +v 1.213388 5.588388 2.875000 +v 1.250000 5.500000 2.875000 +v 1.213388 5.411612 2.875000 +v 1.125000 5.375000 2.875000 +v 1.036612 5.411612 2.875000 +v 1.000000 5.500000 0.125000 +v 1.036612 5.588388 0.125000 +v 1.125000 5.625000 0.125000 +v 1.213388 5.588388 0.125000 +v 1.250000 5.500000 0.125000 +v 1.213388 5.411612 0.125000 +v 1.125000 5.375000 0.125000 +v 1.036612 5.411612 0.125000 +v 1.025888 5.588388 0.099112 +v 1.088388 5.625000 0.036612 +v 1.150888 5.588388 -0.025888 +v 1.176777 5.500000 -0.051777 +v 1.150888 5.411612 -0.025888 +v 1.088388 5.375000 0.036612 +v 1.025888 5.411612 0.099112 +v 1.000000 5.588388 0.088388 +v 1.000000 5.625000 0.000000 +v 1.000000 5.588388 -0.088388 +v 1.000000 5.500000 -0.125000 +v 1.000000 5.411612 -0.088388 +v 1.000000 5.375000 0.000000 +v 1.000000 5.411612 0.088388 +v 0.625000 5.500000 0.125000 +v 0.625000 5.588388 0.088388 +v 0.625000 5.625000 0.000000 +v 0.625000 5.588388 -0.088388 +v 0.625000 5.500000 -0.125000 +v 0.625000 5.411612 -0.088388 +v 0.625000 5.375000 0.000000 +v 0.625000 5.411612 0.088388 +v -0.250000 8.500000 2.500000 +v 0.250000 8.500000 2.500000 +v -0.250000 9.000000 2.500000 +v 0.250000 9.000000 2.500000 +v -0.250000 8.500000 0.250000 +v 0.250000 8.500000 0.250000 +v -0.250000 9.000000 0.250000 +v 0.250000 9.000000 0.250000 +v 0.000000 11.000000 2.500000 +v 0.000000 10.875000 2.500000 +v 0.000000 11.000000 0.000000 +v 0.000000 10.875000 0.000000 +v 0.000000 10.812500 0.500000 +v 0.000000 10.750000 1.000000 +v 0.000000 10.750000 1.500000 +v 0.000000 10.812500 2.000000 +v 0.000000 10.687500 2.000000 +v 0.000000 10.625000 1.500000 +v 0.000000 10.625000 1.000000 +v 0.000000 10.687500 0.500000 +v 0.000000 11.000000 2.500000 +v 0.000000 10.875000 2.500000 +v 0.000000 11.000000 0.000000 +v 0.000000 10.875000 0.000000 +v 0.000000 10.812500 0.500000 +v 0.000000 10.750000 1.000000 +v 0.000000 10.750000 1.500000 +v 0.000000 10.812500 2.000000 +v 0.000000 10.687500 2.000000 +v 0.000000 10.625000 1.500000 +v 0.000000 10.625000 1.000000 +v 0.000000 10.687500 0.500000 +vt 0.692308 0.449438 +vt 0.666667 0.651685 +vt 0.666667 0.449438 +vt 0.769231 0.449438 +vt 0.743590 0.651685 +vt 0.743590 0.449438 +vt 0.717949 0.449438 +vt 0.692308 0.651685 +vt 0.717949 0.651685 +vt 0.461538 0.910112 +vt 0.487179 0.898876 +vt 0.487179 0.910112 +vt 0.358974 0.898876 +vt 0.384615 0.910112 +vt 0.358974 0.910112 +vt 0.384615 0.898876 +vt 0.410256 0.910112 +vt 0.410256 0.898876 +vt 0.435897 0.910112 +vt 0.461538 0.898876 +vt 0.461538 0.910112 +vt 0.487179 0.898876 +vt 0.461538 0.898876 +vt 0.384615 0.910112 +vt 0.358974 0.898876 +vt 0.358974 0.910112 +vt 0.410256 0.910112 +vt 0.384615 0.898876 +vt 0.435897 0.910112 +vt 0.410256 0.898876 +vt 0.435897 0.898876 +vt 0.769231 0.651685 +vt 0.435897 0.898876 +vt 0.487179 0.910112 +vt 0.705128 0.966292 +vt 0.698718 1.000000 +vt 0.698718 0.966292 +vt 0.685897 0.966292 +vt 0.679487 1.000000 +vt 0.679487 0.966292 +vt 0.692308 1.000000 +vt 0.692308 0.966292 +vt 0.673077 0.966292 +vt 0.666667 1.000000 +vt 0.666667 0.966292 +vt 0.711538 0.966292 +vt 0.705128 1.000000 +vt 0.717949 0.966292 +vt 0.711538 1.000000 +vt 0.673077 1.000000 +vt 0.685897 1.000000 +vt 0.711538 0.949438 +vt 0.717949 0.949438 +vt 0.711538 0.955056 +vt 0.711538 0.943820 +vt 0.673077 0.949438 +vt 0.673077 0.955056 +vt 0.666667 0.949438 +vt 0.673077 0.943820 +vt 0.685897 0.949438 +vt 0.679487 0.960674 +vt 0.679487 0.949438 +vt 0.698718 0.949438 +vt 0.692308 0.949438 +vt 0.705128 0.960674 +vt 0.705128 0.949438 +vt 0.685897 0.932584 +vt 0.698718 0.932584 +vt 0.679487 0.938202 +vt 0.692308 0.932584 +vt 0.705128 0.938202 +vt 0.685897 0.685393 +vt 0.679487 0.932584 +vt 0.679487 0.685393 +vt 0.698718 0.685393 +vt 0.692308 0.685393 +vt 0.673077 0.685393 +vt 0.666667 0.932584 +vt 0.666667 0.685393 +vt 0.711538 0.685393 +vt 0.705128 0.932584 +vt 0.705128 0.685393 +vt 0.717949 0.685393 +vt 0.711538 0.932584 +vt 0.673077 0.932584 +vt 0.711538 0.668539 +vt 0.717949 0.668539 +vt 0.711538 0.674157 +vt 0.711538 0.662921 +vt 0.673077 0.668539 +vt 0.673077 0.674157 +vt 0.666667 0.668539 +vt 0.673077 0.662921 +vt 0.679487 0.668539 +vt 0.685897 0.668539 +vt 0.692308 0.668539 +vt 0.698718 0.668539 +vt 0.705128 0.679775 +vt 0.705128 0.668539 +vt 0.679487 0.679775 +vt 0.698718 0.651685 +vt 0.705128 0.657303 +vt 0.685897 0.651685 +vt 0.679487 0.657303 +vt 0.692308 0.651685 +vt 0.692308 0.668539 +vt 0.685897 0.651685 +vt 0.692308 0.651685 +vt 0.679487 0.657303 +vt 0.673077 0.668539 +vt 0.673077 0.662921 +vt 0.711538 0.662921 +vt 0.705128 0.668539 +vt 0.705128 0.657303 +vt 0.698718 0.651685 +vt 0.679487 0.668539 +vt 0.698718 0.685393 +vt 0.698718 0.668539 +vt 0.685897 0.685393 +vt 0.685897 0.668539 +vt 0.679487 0.679775 +vt 0.711538 0.668539 +vt 0.705128 0.679775 +vt 0.666667 0.668539 +vt 0.673077 0.674157 +vt 0.717949 0.668539 +vt 0.711538 0.674157 +vt 0.705128 0.685393 +vt 0.698718 0.932584 +vt 0.692308 0.685393 +vt 0.685897 0.932584 +vt 0.679487 0.685393 +vt 0.673077 0.932584 +vt 0.673077 0.685393 +vt 0.717949 0.685393 +vt 0.711538 0.932584 +vt 0.711538 0.685393 +vt 0.705128 0.932584 +vt 0.666667 0.932584 +vt 0.666667 0.685393 +vt 0.692308 0.932584 +vt 0.679487 0.932584 +vt 0.711538 0.943820 +vt 0.705128 0.949438 +vt 0.705128 0.938202 +vt 0.692308 0.949438 +vt 0.679487 0.949438 +vt 0.679487 0.938202 +vt 0.698718 0.949438 +vt 0.685897 0.949438 +vt 0.673077 0.943820 +vt 0.673077 0.949438 +vt 0.705128 0.960674 +vt 0.698718 0.966292 +vt 0.692308 0.966292 +vt 0.685897 0.966292 +vt 0.673077 0.955056 +vt 0.711538 0.949438 +vt 0.679487 0.960674 +vt 0.666667 0.949438 +vt 0.717949 0.949438 +vt 0.711538 0.955056 +vt 0.685897 1.000000 +vt 0.679487 0.966292 +vt 0.673077 1.000000 +vt 0.673077 0.966292 +vt 0.717949 0.966292 +vt 0.711538 1.000000 +vt 0.711538 0.966292 +vt 0.705128 1.000000 +vt 0.705128 0.966292 +vt 0.666667 1.000000 +vt 0.666667 0.966292 +vt 0.692308 1.000000 +vt 0.679487 1.000000 +vt 0.698718 1.000000 +vt 0.717949 1.000000 +vt 0.717949 0.932584 +vt 0.717949 0.932584 +vt 0.717949 1.000000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0196 -0.9987 -0.0473 +vn 0.0000 -0.7071 -0.7071 +vn 0.1447 -0.6794 -0.7194 +vn 0.1447 0.6794 -0.7194 +vn 0.0196 0.9987 -0.0473 +vn 0.0000 0.0000 -1.0000 +vn 0.1866 0.0000 -0.9824 +vn -0.1363 0.7263 0.6737 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 0.7071 +vn -0.1363 -0.7263 0.6737 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.4617 -0.7573 0.4617 +vn -0.6737 -0.7263 0.1363 +vn -0.4617 0.7573 0.4617 +vn -0.6737 0.7263 0.1363 +vn 0.5293 0.6630 -0.5293 +vn 0.0670 0.9955 -0.0670 +vn 0.5293 -0.6630 -0.5293 +vn 0.7071 0.0000 -0.7071 +vn 0.0670 -0.9955 -0.0670 +vn 0.7194 0.6794 -0.1447 +vn 0.7194 -0.6794 -0.1447 +vn 0.0473 0.9987 -0.0196 +vn 0.9824 0.0000 -0.1866 +vn 0.0473 -0.9987 -0.0196 +vn 0.7194 0.6794 0.1447 +vn 0.0473 0.9987 0.0196 +vn 0.7194 -0.6794 0.1447 +vn 0.9824 0.0000 0.1866 +vn -0.6737 0.7263 -0.1363 +vn -0.9809 0.0000 -0.1944 +vn -0.6737 -0.7263 -0.1363 +vn 0.0473 -0.9987 0.0196 +vn -0.4617 -0.7573 -0.4617 +vn -0.2611 -0.7311 -0.6303 +vn -0.4617 0.7573 -0.4617 +vn -0.2611 0.7311 -0.6303 +vn 0.0670 0.9955 0.0670 +vn 0.5293 0.6630 0.5293 +vn 0.7071 0.0000 0.7071 +vn 0.5293 -0.6630 0.5293 +vn 0.0670 -0.9955 0.0670 +vn 0.2962 -0.6332 0.7150 +vn 0.0392 -0.9947 0.0948 +vn 0.2962 0.6332 0.7150 +vn 0.0392 0.9947 0.0948 +vn 0.3827 0.0000 0.9239 +s off +f 2778/3606/212 2783/3607/212 2779/3608/212 +f 2779/3609/213 2785/3610/213 2781/3611/213 +f 2780/3612/214 2782/3613/214 2778/3606/214 +f 2781/3611/215 2784/3614/215 2780/3612/215 +f 2790/3615/213 2789/3616/213 2788/3617/213 +f 2787/3618/213 2793/3619/213 2786/3620/213 +f 2794/3621/213 2792/3622/213 2793/3619/213 +f 2795/3623/213 2791/3624/213 2792/3622/213 +f 2791/3624/213 2797/3625/213 2790/3615/213 +f 2802/3626/214 2801/3627/214 2809/3628/214 +f 2805/3629/214 2799/3630/214 2798/3631/214 +f 2804/3632/214 2806/3633/214 2805/3629/214 +f 2803/3634/214 2807/3635/214 2804/3632/214 +f 2803/3634/214 2809/3628/214 2808/3636/214 +f 2778/3606/212 2782/3613/212 2783/3607/212 +f 2779/3609/213 2783/3637/213 2785/3610/213 +f 2780/3612/214 2784/3614/214 2782/3613/214 +f 2781/3611/215 2785/3610/215 2784/3614/215 +f 2790/3615/213 2797/3625/213 2789/3616/213 +f 2787/3618/213 2794/3621/213 2793/3619/213 +f 2794/3621/213 2795/3623/213 2792/3622/213 +f 2795/3623/213 2796/3638/213 2791/3624/213 +f 2791/3624/213 2796/3638/213 2797/3625/213 +f 2802/3626/214 2800/3639/214 2801/3627/214 +f 2805/3629/214 2806/3633/214 2799/3630/214 +f 2804/3632/214 2807/3635/214 2806/3633/214 +f 2803/3634/214 2808/3636/214 2807/3635/214 +f 2803/3634/214 2802/3626/214 2809/3628/214 +s 1 +f 2683/3640/216 2676/3641/217 2684/3642/218 +f 2686/3643/219 2679/3644/215 2687/3645/220 +f 2684/3642/218 2677/3646/221 2685/3647/222 +f 2688/3648/223 2681/3649/224 2703/3650/225 +f 2682/3651/226 2675/3652/212 2683/3640/216 +f 2703/3653/225 2674/3654/227 2682/3651/226 +f 2687/3645/220 2680/3655/228 2688/3648/223 +f 2685/3647/222 2678/3656/229 2686/3643/219 +f 2689/3657/230 2703/3658/225 2682/3659/226 +f 2703/3658/225 2689/3657/230 2696/3660/231 +f 2695/3661/232 2688/3662/223 2703/3663/225 +f 2702/3664/233 2695/3661/232 2703/3663/225 +f 2693/3665/234 2687/3666/220 2694/3667/235 +f 2691/3668/236 2685/3647/222 2692/3669/237 +f 2689/3657/230 2683/3670/216 2690/3671/238 +f 2694/3667/235 2688/3662/223 2695/3661/232 +f 2693/3665/234 2685/3647/222 2686/3643/219 +f 2690/3671/238 2684/3642/218 2691/3668/236 +f 2702/3664/233 2694/3667/235 2695/3661/232 +f 2700/3672/239 2692/3669/237 2693/3665/234 +f 2698/3673/240 2690/3671/238 2691/3668/236 +f 2700/3672/239 2694/3667/235 2701/3674/241 +f 2698/3673/240 2692/3669/237 2699/3675/242 +f 2697/3676/243 2689/3657/230 2690/3671/238 +f 2708/3677/244 2701/3678/241 2709/3679/245 +f 2706/3680/246 2699/3675/242 2707/3681/247 +f 2710/3682/248 2703/3683/225 2725/3684/249 +f 2704/3685/250 2697/3686/243 2705/3687/251 +f 2725/3688/249 2696/3689/231 2704/3685/250 +f 2709/3679/245 2702/3690/233 2710/3682/248 +f 2707/3681/247 2700/3672/239 2708/3677/244 +f 2705/3687/251 2698/3673/240 2706/3680/246 +f 2711/3691/252 2725/3692/249 2704/3693/250 +f 2718/3694/253 2725/3692/249 2711/3691/252 +f 2717/3695/254 2710/3696/248 2725/3697/249 +f 2725/3697/249 2724/3698/255 2717/3695/254 +f 2708/3677/244 2716/3699/256 2715/3700/257 +f 2706/3680/246 2714/3701/258 2713/3702/259 +f 2711/3691/252 2705/3703/251 2712/3704/260 +f 2709/3705/245 2717/3695/254 2716/3699/256 +f 2714/3701/258 2708/3677/244 2715/3700/257 +f 2712/3704/260 2706/3680/246 2713/3702/259 +f 2712/3704/260 2720/3706/261 2719/3707/262 +f 2722/3708/263 2716/3699/256 2723/3709/264 +f 2720/3706/261 2714/3701/258 2721/3710/265 +f 2718/3694/253 2712/3704/260 2719/3707/262 +f 2723/3709/264 2717/3695/254 2724/3698/255 +f 2714/3701/258 2722/3708/263 2721/3710/265 +f 2737/3711/258 2729/3712/263 2730/3713/265 +f 2728/3714/264 2734/3715/254 2727/3716/255 +f 2733/3717/253 2739/3718/260 2732/3719/262 +f 2731/3720/261 2737/3711/258 2730/3713/265 +f 2729/3712/263 2735/3721/256 2728/3714/264 +f 2739/3718/260 2731/3720/261 2732/3719/262 +f 2739/3718/260 2745/3722/246 2738/3723/259 +f 2737/3711/258 2743/3724/244 2736/3725/257 +f 2742/3726/245 2734/3715/254 2735/3721/256 +f 2740/3727/252 2746/3728/251 2739/3718/260 +f 2745/3722/246 2737/3711/258 2738/3723/259 +f 2743/3724/244 2735/3721/256 2736/3725/257 +f 2726/3729/249 2727/3716/255 2734/3715/254 +f 2734/3715/254 2741/3730/248 2726/3729/249 +f 2733/3717/253 2726/3731/249 2740/3727/252 +f 2740/3727/252 2726/3731/249 2747/3732/250 +f 2746/3733/251 2753/3734/240 2745/3722/246 +f 2744/3735/247 2751/3736/239 2743/3724/244 +f 2742/3737/245 2749/3738/233 2741/3739/248 +f 2726/3740/249 2755/3741/231 2747/3742/250 +f 2747/3742/250 2754/3743/243 2746/3733/251 +f 2741/3739/248 2748/3744/225 2726/3745/249 +f 2745/3722/246 2752/3746/242 2744/3735/247 +f 2743/3724/244 2750/3747/241 2742/3737/245 +f 2755/3748/231 2761/3749/238 2754/3750/243 +f 2753/3734/240 2759/3751/237 2752/3746/242 +f 2751/3736/239 2757/3752/235 2750/3753/241 +f 2754/3750/243 2760/3754/236 2753/3734/240 +f 2751/3736/239 2759/3751/237 2758/3755/234 +f 2749/3756/233 2757/3752/235 2756/3757/232 +f 2760/3754/236 2768/3758/216 2767/3759/218 +f 2758/3755/234 2766/3760/222 2765/3761/219 +f 2757/3752/235 2763/3762/223 2756/3757/232 +f 2762/3763/230 2768/3758/216 2761/3749/238 +f 2760/3754/236 2766/3760/222 2759/3751/237 +f 2758/3755/234 2764/3764/220 2757/3752/235 +f 2749/3756/233 2756/3757/232 2748/3765/225 +f 2756/3757/232 2763/3762/223 2748/3765/225 +f 2748/3766/225 2762/3763/230 2755/3748/231 +f 2762/3763/230 2748/3766/225 2769/3767/226 +f 2766/3760/222 2773/3768/229 2765/3761/219 +f 2764/3769/220 2771/3770/228 2763/3771/223 +f 2748/3772/225 2777/3773/227 2769/3774/226 +f 2769/3774/226 2776/3775/212 2768/3776/216 +f 2763/3771/223 2770/3777/224 2748/3778/225 +f 2767/3759/218 2774/3779/221 2766/3760/222 +f 2765/3761/219 2772/3780/215 2764/3769/220 +f 2768/3776/216 2775/3781/217 2767/3759/218 +f 2683/3640/216 2675/3652/212 2676/3641/217 +f 2686/3643/219 2678/3656/229 2679/3644/215 +f 2684/3642/218 2676/3641/217 2677/3646/221 +f 2688/3648/223 2680/3655/228 2681/3649/224 +f 2682/3651/226 2674/3654/227 2675/3652/212 +f 2703/3653/225 2681/3782/224 2674/3654/227 +f 2687/3645/220 2679/3644/215 2680/3655/228 +f 2685/3647/222 2677/3646/221 2678/3656/229 +f 2693/3665/234 2686/3643/219 2687/3666/220 +f 2691/3668/236 2684/3642/218 2685/3647/222 +f 2689/3657/230 2682/3659/226 2683/3670/216 +f 2694/3667/235 2687/3666/220 2688/3662/223 +f 2693/3665/234 2692/3669/237 2685/3647/222 +f 2690/3671/238 2683/3670/216 2684/3642/218 +f 2702/3664/233 2701/3674/241 2694/3667/235 +f 2700/3672/239 2699/3675/242 2692/3669/237 +f 2698/3673/240 2697/3676/243 2690/3671/238 +f 2700/3672/239 2693/3665/234 2694/3667/235 +f 2698/3673/240 2691/3668/236 2692/3669/237 +f 2697/3676/243 2696/3660/231 2689/3657/230 +f 2708/3677/244 2700/3672/239 2701/3678/241 +f 2706/3680/246 2698/3673/240 2699/3675/242 +f 2710/3682/248 2702/3690/233 2703/3683/225 +f 2704/3685/250 2696/3689/231 2697/3686/243 +f 2725/3688/249 2703/3783/225 2696/3689/231 +f 2709/3679/245 2701/3678/241 2702/3690/233 +f 2707/3681/247 2699/3675/242 2700/3672/239 +f 2705/3687/251 2697/3686/243 2698/3673/240 +f 2708/3677/244 2709/3705/245 2716/3699/256 +f 2706/3680/246 2707/3681/247 2714/3701/258 +f 2711/3691/252 2704/3693/250 2705/3703/251 +f 2709/3705/245 2710/3696/248 2717/3695/254 +f 2714/3701/258 2707/3681/247 2708/3677/244 +f 2712/3704/260 2705/3703/251 2706/3680/246 +f 2712/3704/260 2713/3702/259 2720/3706/261 +f 2722/3708/263 2715/3700/257 2716/3699/256 +f 2720/3706/261 2713/3702/259 2714/3701/258 +f 2718/3694/253 2711/3691/252 2712/3704/260 +f 2723/3709/264 2716/3699/256 2717/3695/254 +f 2714/3701/258 2715/3700/257 2722/3708/263 +f 2737/3711/258 2736/3725/257 2729/3712/263 +f 2728/3714/264 2735/3721/256 2734/3715/254 +f 2733/3717/253 2740/3727/252 2739/3718/260 +f 2731/3720/261 2738/3723/259 2737/3711/258 +f 2729/3712/263 2736/3725/257 2735/3721/256 +f 2739/3718/260 2738/3723/259 2731/3720/261 +f 2739/3718/260 2746/3728/251 2745/3722/246 +f 2737/3711/258 2744/3735/247 2743/3724/244 +f 2742/3726/245 2741/3730/248 2734/3715/254 +f 2740/3727/252 2747/3732/250 2746/3728/251 +f 2745/3722/246 2744/3735/247 2737/3711/258 +f 2743/3724/244 2742/3726/245 2735/3721/256 +f 2746/3733/251 2754/3743/243 2753/3734/240 +f 2744/3735/247 2752/3746/242 2751/3736/239 +f 2742/3737/245 2750/3747/241 2749/3738/233 +f 2726/3740/249 2748/3784/225 2755/3741/231 +f 2747/3742/250 2755/3741/231 2754/3743/243 +f 2741/3739/248 2749/3738/233 2748/3744/225 +f 2745/3722/246 2753/3734/240 2752/3746/242 +f 2743/3724/244 2751/3736/239 2750/3747/241 +f 2755/3748/231 2762/3763/230 2761/3749/238 +f 2753/3734/240 2760/3754/236 2759/3751/237 +f 2751/3736/239 2758/3755/234 2757/3752/235 +f 2754/3750/243 2761/3749/238 2760/3754/236 +f 2751/3736/239 2752/3746/242 2759/3751/237 +f 2749/3756/233 2750/3753/241 2757/3752/235 +f 2760/3754/236 2761/3749/238 2768/3758/216 +f 2758/3755/234 2759/3751/237 2766/3760/222 +f 2757/3752/235 2764/3764/220 2763/3762/223 +f 2762/3763/230 2769/3767/226 2768/3758/216 +f 2760/3754/236 2767/3759/218 2766/3760/222 +f 2758/3755/234 2765/3761/219 2764/3764/220 +f 2766/3760/222 2774/3779/221 2773/3768/229 +f 2764/3769/220 2772/3780/215 2771/3770/228 +f 2748/3772/225 2770/3785/224 2777/3773/227 +f 2769/3774/226 2777/3773/227 2776/3775/212 +f 2763/3771/223 2771/3770/228 2770/3777/224 +f 2767/3759/218 2775/3781/217 2774/3779/221 +f 2765/3761/219 2773/3768/229 2772/3780/215 +f 2768/3776/216 2776/3775/212 2775/3781/217 +o Strong_Pivot +v 0.750000 1.500000 -2.750000 +v 0.250000 1.500000 -2.750000 +v 0.250000 1.500000 -3.250000 +v 0.750000 1.500000 -3.250000 +v 0.250000 3.500000 -2.750000 +v 0.750000 3.500000 -2.750000 +v 0.750000 3.500000 -3.250000 +v 0.250000 3.500000 -3.250000 +v -0.250000 1.500000 -2.750000 +v -0.750000 1.500000 -2.750000 +v -0.750000 1.500000 -3.250000 +v -0.250000 1.500000 -3.250000 +v -0.750000 3.500000 -2.750000 +v -0.250000 3.500000 -2.750000 +v -0.250000 3.500000 -3.250000 +v -0.750000 3.500000 -3.250000 +v 0.312500 3.500000 -2.812500 +v 0.687500 3.500000 -2.812500 +v 0.312500 3.500000 -3.187500 +v 0.687500 3.500000 -3.187500 +v 0.312500 4.500000 -2.812500 +v 0.687500 4.500000 -2.812500 +v 0.312500 4.500000 -3.187500 +v 0.687500 4.500000 -3.187500 +v -0.687500 3.500000 -2.812500 +v -0.312500 3.500000 -2.812500 +v -0.687500 3.500000 -3.187500 +v -0.312500 3.500000 -3.187500 +v -0.687500 4.500000 -2.812500 +v -0.312500 4.500000 -2.812500 +v -0.687500 4.500000 -3.187500 +v -0.312500 4.500000 -3.187500 +vt 0.794872 0.224719 +vt 0.820513 0.179775 +vt 0.820513 0.224719 +vt 0.897436 0.000000 +vt 0.871795 0.179775 +vt 0.871795 0.000000 +vt 0.820513 0.000000 +vt 0.794872 0.179775 +vt 0.794872 0.000000 +vt 0.846154 0.000000 +vt 0.846154 0.179775 +vt 0.794872 0.224719 +vt 0.820513 0.179775 +vt 0.820513 0.224719 +vt 0.897436 0.000000 +vt 0.871795 0.179775 +vt 0.871795 0.000000 +vt 0.820513 0.000000 +vt 0.794872 0.179775 +vt 0.794872 0.000000 +vt 0.846154 0.000000 +vt 0.846154 0.179775 +vt 0.839744 0.269663 +vt 0.820513 0.179775 +vt 0.839744 0.179775 +vt 0.878205 0.269663 +vt 0.858974 0.179775 +vt 0.878205 0.179775 +vt 0.897436 0.269663 +vt 0.897436 0.179775 +vt 0.858974 0.269663 +vt 0.839744 0.269663 +vt 0.820513 0.179775 +vt 0.839744 0.179775 +vt 0.878205 0.269663 +vt 0.858974 0.179775 +vt 0.878205 0.179775 +vt 0.897436 0.269663 +vt 0.897436 0.179775 +vt 0.858974 0.269663 +vt 0.897436 0.179775 +vt 0.897436 0.179775 +vt 0.820513 0.269663 +vt 0.820513 0.269663 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 2815/3786/266 2817/3787/266 2814/3788/266 +f 2813/3789/267 2815/3790/267 2810/3791/267 +f 2812/3792/268 2816/3793/268 2813/3794/268 +f 2811/3795/269 2817/3787/269 2812/3792/269 +f 2810/3791/270 2814/3796/270 2811/3795/270 +f 2823/3797/266 2825/3798/266 2822/3799/266 +f 2821/3800/267 2823/3801/267 2818/3802/267 +f 2820/3803/268 2824/3804/268 2821/3805/268 +f 2819/3806/269 2825/3798/269 2820/3803/269 +f 2818/3802/270 2822/3807/270 2819/3806/270 +f 2832/3808/268 2829/3809/268 2828/3810/268 +f 2831/3811/270 2826/3812/270 2827/3813/270 +f 2833/3814/267 2827/3813/267 2829/3815/267 +f 2830/3816/269 2828/3810/269 2826/3812/269 +f 2840/3817/268 2837/3818/268 2836/3819/268 +f 2839/3820/270 2834/3821/270 2835/3822/270 +f 2841/3823/267 2835/3822/267 2837/3824/267 +f 2838/3825/269 2836/3819/269 2834/3821/269 +f 2815/3786/266 2816/3793/266 2817/3787/266 +f 2813/3789/267 2816/3826/267 2815/3790/267 +f 2812/3792/268 2817/3787/268 2816/3793/268 +f 2811/3795/269 2814/3796/269 2817/3787/269 +f 2810/3791/270 2815/3790/270 2814/3796/270 +f 2823/3797/266 2824/3804/266 2825/3798/266 +f 2821/3800/267 2824/3827/267 2823/3801/267 +f 2820/3803/268 2825/3798/268 2824/3804/268 +f 2819/3806/269 2822/3807/269 2825/3798/269 +f 2818/3802/270 2823/3801/270 2822/3807/270 +f 2832/3808/268 2833/3828/268 2829/3809/268 +f 2831/3811/270 2830/3816/270 2826/3812/270 +f 2833/3814/267 2831/3811/267 2827/3813/267 +f 2830/3816/269 2832/3808/269 2828/3810/269 +f 2840/3817/268 2841/3829/268 2837/3818/268 +f 2839/3820/270 2838/3825/270 2834/3821/270 +f 2841/3823/267 2839/3820/267 2835/3822/267 +f 2838/3825/269 2840/3817/269 2836/3819/269 +o Strong_Erector +v 0.250000 3.500000 -2.750000 +v 0.750000 3.500000 -2.750000 +v 0.750000 3.500000 -3.250000 +v 0.250000 3.500000 -3.250000 +v -0.750000 3.500000 -2.750000 +v -0.250000 3.500000 -2.750000 +v -0.250000 3.500000 -3.250000 +v -0.750000 3.500000 -3.250000 +v 0.250000 10.000000 -2.750000 +v 0.750000 10.000000 -2.750000 +v 0.750000 10.000000 -3.250000 +v 0.250000 10.000000 -3.250000 +v -0.750000 10.000000 -2.750000 +v -0.250000 10.000000 -2.750000 +v -0.250000 10.000000 -3.250000 +v -0.750000 10.000000 -3.250000 +v 0.250000 9.000000 -1.000000 +v 0.250000 9.000000 -3.500000 +v -0.250000 9.000000 -1.000000 +v -0.250000 9.000000 -3.500000 +v 0.250000 8.500000 -3.500000 +v 0.250000 8.500000 -1.000000 +v -0.250000 8.500000 -1.000000 +v -0.250000 8.500000 -3.500000 +v 0.375000 9.125000 -1.000000 +v -0.375000 9.125000 -1.000000 +v 0.375000 8.375000 -1.000000 +v -0.375000 8.375000 -1.000000 +v 0.375000 9.125000 -0.750000 +v -0.375000 9.125000 -0.750000 +v 0.375000 8.375000 -0.750000 +v -0.375000 8.375000 -0.750000 +v -0.375000 3.875000 -0.750000 +v 0.375000 3.875000 -0.750000 +v -0.375000 4.625000 -0.750000 +v 0.375000 4.625000 -0.750000 +v -0.375000 3.875000 -1.000000 +v 0.375000 3.875000 -1.000000 +v -0.375000 4.625000 -1.000000 +v 0.375000 4.625000 -1.000000 +v -0.250000 4.000000 -3.500000 +v -0.250000 4.000000 -1.000000 +v 0.250000 4.000000 -1.000000 +v 0.250000 4.000000 -3.500000 +v -0.250000 4.500000 -3.500000 +v -0.250000 4.500000 -1.000000 +v 0.250000 4.500000 -3.500000 +v 0.250000 4.500000 -1.000000 +v 0.250000 7.000000 -2.750000 +v 0.750000 7.000000 -2.750000 +v -0.750000 7.000000 -2.750000 +v -0.250000 7.000000 -2.750000 +v 0.250000 6.500000 -2.750000 +v 0.750000 6.500000 -2.750000 +v -0.750000 6.500000 -2.750000 +v -0.250000 6.500000 -2.750000 +v 0.250000 7.000000 -1.250000 +v 0.750000 7.000000 -1.250000 +v -0.750000 7.000000 -1.250000 +v -0.250000 7.000000 -1.250000 +v 0.250000 6.500000 -1.250000 +v 0.750000 6.500000 -1.250000 +v -0.750000 6.500000 -1.250000 +v -0.250000 6.500000 -1.250000 +v 0.750000 7.000000 -1.250000 +v -0.750000 7.000000 -1.250000 +v 0.750000 6.500000 -1.250000 +v -0.750000 6.500000 -1.250000 +v -0.750000 7.000000 -0.750000 +v -0.750000 6.500000 -0.750000 +v 0.750000 6.500000 -0.750000 +v 0.750000 7.000000 -0.750000 +v -1.250000 7.000000 -0.750000 +v -1.250000 6.500000 -0.750000 +v 1.250000 6.500000 -0.750000 +v 1.250000 7.000000 -0.750000 +v -0.750000 7.000000 0.750000 +v -0.750000 6.500000 0.750000 +v 0.750000 6.500000 0.750000 +v 0.750000 7.000000 0.750000 +v -1.250000 7.000000 0.750000 +v -1.250000 6.500000 0.750000 +v 1.250000 6.500000 0.750000 +v 1.250000 7.000000 0.750000 +vt 0.820513 0.269663 +vt 0.794872 0.224719 +vt 0.820513 0.224719 +vt 0.820513 0.269663 +vt 0.794872 0.224719 +vt 0.820513 0.224719 +vt 0.794872 0.898876 +vt 0.820513 0.853933 +vt 0.820513 0.898876 +vt 0.794872 0.898876 +vt 0.820513 0.853933 +vt 0.820513 0.898876 +vt 0.897436 0.269663 +vt 0.871795 0.853933 +vt 0.871795 0.269663 +vt 0.794872 0.853933 +vt 0.794872 0.269663 +vt 0.897436 0.269663 +vt 0.871795 0.853933 +vt 0.871795 0.269663 +vt 0.794872 0.853933 +vt 0.794872 0.269663 +vt 0.846154 0.269663 +vt 0.846154 0.853933 +vt 0.846154 0.269663 +vt 0.846154 0.853933 +vt 0.544872 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.416667 0.921348 +vt 0.544872 0.966292 +vt 0.416667 0.966292 +vt 0.410256 0.910112 +vt 0.544872 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.570513 0.966292 +vt 0.544872 0.966292 +vt 0.416667 0.966292 +vt 0.544872 0.921348 +vt 0.544872 0.966292 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.410256 0.910112 +vt 0.416667 0.921348 +vt 0.410256 0.910112 +vt 0.397436 0.977528 +vt 0.358974 0.910112 +vt 0.397436 0.910112 +vt 0.410256 0.977528 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.397436 0.977528 +vt 0.358974 0.910112 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.416667 0.966292 +vt 0.410256 0.910112 +vt 0.416667 0.921348 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.544872 0.921348 +vt 0.544872 0.966292 +vt 0.544872 0.921348 +vt 0.570513 0.966292 +vt 0.544872 0.966292 +vt 0.544872 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.544872 0.966292 +vt 1.000000 0.134831 +vt 0.974359 -0.000000 +vt 1.000000 -0.000000 +vt 0.923077 0.134831 +vt 0.897436 -0.000000 +vt 0.923077 0.000000 +vt 0.948718 -0.000000 +vt 0.923077 0.134831 +vt 0.923077 0.000000 +vt 0.974359 0.134831 +vt 0.974359 0.134831 +vt 0.948718 -0.000000 +vt 0.974359 -0.000000 +vt 1.000000 0.134831 +vt 1.000000 -0.000000 +vt 0.897436 -0.000000 +vt 0.948718 0.494382 +vt 0.974359 0.359551 +vt 0.974359 0.494382 +vt 0.897436 0.359551 +vt 0.923077 0.494382 +vt 0.897436 0.494382 +vt 0.923077 0.359551 +vt 0.948718 0.359551 +vt 0.923077 0.314607 +vt 0.948718 0.179775 +vt 0.948718 0.314607 +vt 1.000000 0.494382 +vt 1.000000 0.539326 +vt 0.974359 0.674157 +vt 0.974359 0.539326 +vt 1.000000 0.359551 +vt 1.000000 0.314607 +vt 0.923077 0.314607 +vt 1.000000 0.539326 +vt 0.923077 0.539326 +vt 0.974359 0.134831 +vt 0.948718 0.134831 +vt 0.948718 0.719101 +vt 0.974359 0.719101 +vt 0.897436 0.314607 +vt 0.923077 0.179775 +vt 0.948718 0.539326 +vt 0.923077 0.674157 +vt 0.923077 0.539326 +vt 0.948718 0.674157 +vt 0.974359 0.314607 +vt 1.000000 0.179775 +vt 1.000000 0.314607 +vt 0.974359 0.179775 +vt 0.897436 0.674157 +vt 0.897436 0.539326 +vt 0.897436 0.853933 +vt 0.897436 0.853933 +vt 0.544872 0.921348 +vt 0.544872 0.966292 +vt 0.570513 0.921348 +vt 0.397436 0.977528 +vt 0.358974 0.977528 +vt 0.397436 0.977528 +vt 0.397436 0.977528 +vt 0.397436 0.977528 +vt 0.397436 0.977528 +vt 0.358974 0.977528 +vt 0.397436 0.977528 +vt 0.570513 0.921348 +vt 0.544872 0.966292 +vt 0.544872 0.921348 +vt 0.897436 0.134831 +vt 0.948718 0.134831 +vt 0.948718 0.134831 +vt 0.897436 0.134831 +vt 1.000000 0.674157 +vt 0.897436 0.179775 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +s off +f 2845/3830/271 2843/3831/271 2842/3832/271 +f 2849/3833/271 2847/3834/271 2846/3835/271 +f 2851/3836/272 2853/3837/272 2850/3838/272 +f 2855/3839/272 2857/3840/272 2854/3841/272 +f 2848/3842/273 2855/3843/273 2847/3844/273 +f 2849/3833/274 2856/3845/274 2848/3846/274 +f 2844/3847/273 2851/3848/273 2843/3849/273 +f 2845/3830/274 2852/3850/274 2844/3851/274 +f 2846/3852/275 2857/3840/275 2849/3833/275 +f 2847/3844/276 2854/3853/276 2846/3852/276 +f 2842/3854/275 2853/3837/275 2845/3830/275 +f 2843/3849/276 2850/3855/276 2842/3854/276 +f 2859/3856/272 2860/3857/272 2858/3858/272 +f 2864/3859/271 2862/3860/271 2863/3861/271 +f 2860/3857/274 2866/3862/274 2858/3858/274 +f 2861/3863/275 2864/3864/275 2860/3865/275 +f 2859/3856/274 2865/3866/274 2861/3867/274 +f 2858/3868/273 2862/3869/273 2859/3870/273 +f 2869/3871/275 2871/3872/275 2867/3873/275 +f 2864/3864/274 2867/3873/274 2860/3865/274 +f 2858/3868/274 2868/3874/274 2863/3875/274 +f 2863/3861/274 2869/3876/274 2864/3859/274 +f 2871/3877/276 2872/3878/276 2870/3879/276 +f 2867/3880/272 2870/3879/272 2866/3862/272 +f 2866/3881/273 2872/3882/273 2868/3874/273 +f 2868/3883/271 2873/3884/271 2869/3876/271 +f 2879/3885/271 2874/3886/271 2878/3887/271 +f 2881/3888/273 2875/3889/273 2879/3890/273 +f 2880/3891/272 2877/3892/272 2881/3893/272 +f 2876/3894/276 2875/3895/276 2877/3892/276 +f 2884/3896/274 2878/3887/274 2883/3897/274 +f 2889/3898/274 2879/3890/274 2884/3899/274 +f 2883/3900/274 2880/3901/274 2887/3902/274 +f 2878/3903/275 2876/3904/275 2880/3901/275 +f 2889/3898/273 2885/3905/273 2888/3906/273 +f 2888/3907/274 2882/3908/274 2886/3909/274 +f 2886/3910/275 2883/3900/275 2887/3902/275 +f 2887/3911/274 2881/3893/274 2889/3912/274 +f 2883/3897/271 2885/3913/271 2884/3896/271 +f 2888/3907/272 2887/3911/272 2889/3912/272 +f 2903/3914/271 2894/3915/271 2895/3916/271 +f 2901/3917/273 2897/3918/273 2893/3919/273 +f 2890/3920/272 2899/3921/272 2891/3922/272 +f 2902/3923/275 2890/3920/275 2894/3915/275 +f 2904/3924/275 2892/3925/275 2896/3926/275 +f 2905/3927/271 2896/3926/271 2897/3928/271 +f 2892/3925/272 2901/3917/272 2893/3919/272 +f 2899/3921/273 2895/3929/273 2891/3922/273 +f 2907/3930/274 2908/3931/274 2909/3932/274 +f 2912/3933/276 2910/3934/276 2911/3935/276 +f 2907/3930/272 2913/3936/272 2906/3937/272 +f 2913/3938/272 2925/3939/272 2917/3940/272 +f 2908/3931/271 2911/3941/271 2909/3932/271 +f 2911/3942/271 2923/3943/271 2915/3944/271 +f 2912/3945/271 2908/3931/271 2916/3946/271 +f 2913/3936/272 2917/3947/272 2906/3937/272 +f 2917/3940/277 2908/3931/277 2906/3937/277 +f 2911/3941/271 2915/3948/271 2909/3932/271 +f 2910/3934/272 2907/3930/272 2914/3949/272 +f 2915/3944/278 2907/3930/278 2909/3932/278 +f 2920/3950/276 2925/3939/276 2921/3951/276 +f 2918/3952/276 2923/3943/276 2919/3953/276 +f 2912/3954/275 2921/3955/275 2913/3938/275 +f 2914/3956/272 2918/3957/272 2910/3958/272 +f 2915/3944/275 2922/3959/275 2914/3956/275 +f 2916/3960/271 2920/3961/271 2912/3962/271 +f 2917/3940/273 2924/3963/273 2916/3960/273 +f 2910/3958/273 2919/3964/273 2911/3965/273 +f 2845/3830/271 2844/3851/271 2843/3831/271 +f 2849/3833/271 2848/3846/271 2847/3834/271 +f 2851/3836/272 2852/3850/272 2853/3837/272 +f 2855/3839/272 2856/3845/272 2857/3840/272 +f 2848/3842/273 2856/3966/273 2855/3843/273 +f 2849/3833/274 2857/3840/274 2856/3845/274 +f 2844/3847/273 2852/3967/273 2851/3848/273 +f 2845/3830/274 2853/3837/274 2852/3850/274 +f 2846/3852/275 2854/3853/275 2857/3840/275 +f 2847/3844/276 2855/3843/276 2854/3853/276 +f 2842/3854/275 2850/3855/275 2853/3837/275 +f 2843/3849/276 2851/3848/276 2850/3855/276 +f 2859/3856/272 2861/3867/272 2860/3857/272 +f 2864/3859/271 2865/3968/271 2862/3860/271 +f 2860/3857/274 2867/3880/274 2866/3862/274 +f 2861/3863/275 2865/3969/275 2864/3864/275 +f 2859/3856/274 2862/3970/274 2865/3866/274 +f 2858/3868/273 2863/3875/273 2862/3869/273 +f 2869/3871/275 2873/3971/275 2871/3872/275 +f 2864/3864/274 2869/3871/274 2867/3873/274 +f 2858/3868/274 2866/3881/274 2868/3874/274 +f 2863/3861/274 2868/3883/274 2869/3876/274 +f 2871/3877/276 2873/3972/276 2872/3878/276 +f 2867/3880/272 2871/3877/272 2870/3879/272 +f 2866/3881/273 2870/3973/273 2872/3882/273 +f 2868/3883/271 2872/3974/271 2873/3884/271 +f 2879/3885/271 2875/3975/271 2874/3886/271 +f 2881/3888/273 2877/3976/273 2875/3889/273 +f 2880/3891/272 2876/3894/272 2877/3892/272 +f 2876/3894/276 2874/3977/276 2875/3895/276 +f 2884/3896/274 2879/3885/274 2878/3887/274 +f 2889/3898/274 2881/3888/274 2879/3890/274 +f 2883/3900/274 2878/3903/274 2880/3901/274 +f 2878/3903/275 2874/3978/275 2876/3904/275 +f 2889/3898/273 2884/3899/273 2885/3905/273 +f 2888/3907/274 2885/3979/274 2882/3908/274 +f 2886/3910/275 2882/3980/275 2883/3900/275 +f 2887/3911/274 2880/3891/274 2881/3893/274 +f 2883/3897/271 2882/3981/271 2885/3913/271 +f 2888/3907/272 2886/3909/272 2887/3911/272 +f 2903/3914/271 2902/3923/271 2894/3915/271 +f 2901/3917/273 2905/3982/273 2897/3918/273 +f 2890/3920/272 2898/3983/272 2899/3921/272 +f 2902/3923/275 2898/3983/275 2890/3920/275 +f 2904/3924/275 2900/3984/275 2892/3925/275 +f 2905/3927/271 2904/3924/271 2896/3926/271 +f 2892/3925/272 2900/3984/272 2901/3917/272 +f 2899/3921/273 2903/3985/273 2895/3929/273 +f 2907/3930/274 2906/3937/274 2908/3931/274 +f 2912/3933/276 2913/3936/276 2910/3934/276 +f 2907/3930/272 2910/3934/272 2913/3936/272 +f 2913/3938/272 2921/3955/272 2925/3939/272 +f 2908/3931/271 2912/3945/271 2911/3941/271 +f 2911/3942/271 2919/3986/271 2923/3943/271 +f 2917/3940/277 2916/3960/277 2908/3931/277 +f 2915/3944/278 2914/3956/278 2907/3930/278 +f 2920/3950/276 2924/3963/276 2925/3939/276 +f 2918/3952/276 2922/3959/276 2923/3943/276 +f 2912/3954/275 2920/3987/275 2921/3955/275 +f 2914/3956/272 2922/3959/272 2918/3957/272 +f 2915/3944/275 2923/3943/275 2922/3959/275 +f 2916/3960/271 2924/3963/271 2920/3961/271 +f 2917/3940/273 2925/3939/273 2924/3963/273 +f 2910/3958/273 2918/3957/273 2919/3964/273 +o Micro_Rope +v -0.187500 5.250000 1.375000 +v -0.275888 5.213388 1.375000 +v -0.312500 5.125000 1.375000 +v -0.275888 5.036612 1.375000 +v -0.187500 5.000000 1.375000 +v -0.099112 5.036612 1.375000 +v -0.062500 5.125000 1.375000 +v -0.099112 5.213388 1.375000 +v -0.187500 5.250000 0.125000 +v -0.275888 5.213388 0.125000 +v -0.312500 5.125000 0.125000 +v -0.275888 5.036612 0.125000 +v -0.187500 5.000000 0.125000 +v -0.099112 5.036612 0.125000 +v -0.062500 5.125000 0.125000 +v -0.099112 5.213388 0.125000 +v 0.187500 4.250000 1.375000 +v 0.099112 4.213388 1.375000 +v 0.062500 4.125000 1.375000 +v 0.099112 4.036612 1.375000 +v 0.187500 4.000000 1.375000 +v 0.275888 4.036612 1.375000 +v 0.312500 4.125000 1.375000 +v 0.275888 4.213388 1.375000 +v 0.187500 4.250000 0.125000 +v 0.099112 4.213388 0.125000 +v 0.062500 4.125000 0.125000 +v 0.099112 4.036612 0.125000 +v 0.187500 4.000000 0.125000 +v 0.275888 4.036612 0.125000 +v 0.312500 4.125000 0.125000 +v 0.275888 4.213388 0.125000 +vt 0.711111 0.896552 +vt 0.700000 0.724138 +vt 0.711111 0.724138 +vt 0.722222 0.896552 +vt 0.722222 0.724138 +vt 0.744444 0.896552 +vt 0.733333 0.724138 +vt 0.744444 0.724138 +vt 0.677778 0.896552 +vt 0.666667 0.724138 +vt 0.677778 0.724138 +vt 0.700000 0.896552 +vt 0.688889 0.724138 +vt 0.733333 0.896552 +vt 0.755556 0.896552 +vt 0.755556 0.724138 +vt 0.688889 0.896552 +vt 0.711111 0.896552 +vt 0.700000 0.724138 +vt 0.711111 0.724138 +vt 0.722222 0.896552 +vt 0.722222 0.724138 +vt 0.744444 0.896552 +vt 0.733333 0.724138 +vt 0.744444 0.724138 +vt 0.677778 0.896552 +vt 0.666667 0.724138 +vt 0.677778 0.724138 +vt 0.700000 0.896552 +vt 0.688889 0.724138 +vt 0.733333 0.896552 +vt 0.755556 0.896552 +vt 0.755556 0.724138 +vt 0.688889 0.896552 +vt 0.666667 0.896552 +vt 0.666667 0.896552 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s 1 +f 2934/3988/279 2927/3989/280 2926/3990/279 +f 2941/3991/281 2926/3990/279 2933/3992/281 +f 2939/3993/282 2932/3994/283 2931/3995/282 +f 2937/3996/284 2930/3997/285 2929/3998/284 +f 2935/3999/280 2928/4000/286 2927/3989/280 +f 2940/4001/283 2933/3992/281 2932/3994/283 +f 2938/4002/285 2931/3995/282 2930/4003/285 +f 2936/4004/286 2929/3998/284 2928/4000/286 +f 2950/4005/279 2943/4006/280 2942/4007/279 +f 2957/4008/281 2942/4007/279 2949/4009/281 +f 2955/4010/282 2948/4011/283 2947/4012/282 +f 2953/4013/284 2946/4014/285 2945/4015/284 +f 2951/4016/280 2944/4017/286 2943/4006/280 +f 2956/4018/283 2949/4009/281 2948/4011/283 +f 2954/4019/285 2947/4012/282 2946/4020/285 +f 2952/4021/286 2945/4015/284 2944/4017/286 +f 2934/3988/279 2935/3999/280 2927/3989/280 +f 2941/3991/281 2934/3988/279 2926/3990/279 +f 2939/3993/282 2940/4001/283 2932/3994/283 +f 2937/3996/284 2938/4022/285 2930/3997/285 +f 2935/3999/280 2936/4004/286 2928/4000/286 +f 2940/4001/283 2941/3991/281 2933/3992/281 +f 2938/4002/285 2939/3993/282 2931/3995/282 +f 2936/4004/286 2937/3996/284 2929/3998/284 +f 2950/4005/279 2951/4016/280 2943/4006/280 +f 2957/4008/281 2950/4005/279 2942/4007/279 +f 2955/4010/282 2956/4018/283 2948/4011/283 +f 2953/4013/284 2954/4023/285 2946/4014/285 +f 2951/4016/280 2952/4021/286 2944/4017/286 +f 2956/4018/283 2957/4008/281 2949/4009/281 +f 2954/4019/285 2955/4010/282 2947/4012/282 +f 2952/4021/286 2953/4013/284 2945/4015/284 +o Micro_Pivot +v -0.125000 1.250000 -1.375000 +v 0.125000 1.250000 -1.375000 +v -0.125000 1.250000 -1.625000 +v 0.125000 1.250000 -1.625000 +v -0.125000 3.250000 -1.625000 +v -0.125000 3.250000 -1.375000 +v 0.125000 3.250000 -1.375000 +v 0.125000 3.250000 -1.625000 +v -0.062500 3.250000 -1.437500 +v 0.062500 3.250000 -1.437500 +v -0.062500 3.250000 -1.562500 +v 0.062500 3.250000 -1.562500 +v -0.062500 4.250000 -1.562500 +v -0.062500 4.250000 -1.437500 +v 0.062500 4.250000 -1.437500 +v 0.062500 4.250000 -1.562500 +vt 0.755556 0.310345 +vt 0.777778 0.275862 +vt 0.777778 0.310345 +vt 0.844444 -0.000000 +vt 0.822222 0.275862 +vt 0.822222 -0.000000 +vt 0.800000 -0.000000 +vt 0.777778 -0.000000 +vt 0.755556 0.275862 +vt 0.755556 -0.000000 +vt 0.800000 0.275862 +vt 0.788889 0.275862 +vt 0.777778 0.413793 +vt 0.777778 0.275862 +vt 0.811111 0.275862 +vt 0.800000 0.413793 +vt 0.800000 0.275862 +vt 0.822222 0.275862 +vt 0.811111 0.413793 +vt 0.788889 0.413793 +vt 0.844444 0.275862 +vt 0.822222 0.413793 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 2964/4024/287 2962/4025/287 2963/4026/287 +f 2961/4027/288 2964/4028/288 2959/4029/288 +f 2958/4030/289 2962/4025/289 2960/4031/289 +f 2960/4031/290 2965/4032/290 2961/4033/290 +f 2959/4029/291 2963/4034/291 2958/4030/291 +f 2968/4035/290 2973/4036/290 2969/4037/290 +f 2967/4038/291 2971/4039/291 2966/4040/291 +f 2969/4041/288 2972/4042/288 2967/4038/288 +f 2966/4040/289 2970/4043/289 2968/4035/289 +f 2964/4024/287 2965/4032/287 2962/4025/287 +f 2961/4027/288 2965/4044/288 2964/4028/288 +f 2958/4030/289 2963/4034/289 2962/4025/289 +f 2960/4031/290 2962/4025/290 2965/4032/290 +f 2959/4029/291 2964/4028/291 2963/4034/291 +f 2968/4035/290 2970/4043/290 2973/4036/290 +f 2967/4038/291 2972/4042/291 2971/4039/291 +f 2969/4041/288 2973/4045/288 2972/4042/288 +f 2966/4040/289 2971/4039/289 2970/4043/289 +o Micro_Erector +v -0.125000 3.250000 -1.625000 +v -0.125000 3.250000 -1.375000 +v 0.125000 3.250000 -1.375000 +v 0.125000 3.250000 -1.625000 +v -0.125000 6.000000 -1.625000 +v -0.125000 6.250000 -1.375000 +v 0.125000 6.250000 -1.375000 +v 0.125000 6.000000 -1.625000 +v -0.125000 6.250000 -1.375000 +v 0.125000 6.250000 -1.375000 +v -0.125000 6.000000 -1.375000 +v 0.125000 6.000000 -1.375000 +v -0.125000 6.250000 -0.625000 +v 0.125000 6.250000 -0.625000 +v -0.125000 6.000000 -0.625000 +v 0.125000 6.000000 -0.625000 +v 0.375000 6.250000 -0.125000 +v 0.625000 6.250000 -0.125000 +v 0.375000 6.000000 -0.125000 +v 0.625000 6.000000 -0.125000 +v 0.375000 6.250000 0.375000 +v 0.625000 6.250000 0.125000 +v 0.375000 6.000000 0.375000 +v 0.625000 6.000000 0.125000 +v -0.625000 6.250000 -0.125000 +v -0.375000 6.250000 -0.125000 +v -0.625000 6.000000 -0.125000 +v -0.375000 6.000000 -0.125000 +v -0.625000 6.250000 0.125000 +v -0.375000 6.250000 0.375000 +v -0.625000 6.000000 0.125000 +v -0.375000 6.000000 0.375000 +v -0.125000 6.250000 -0.375000 +v 0.125000 6.250000 -0.375000 +v -0.125000 6.000000 -0.375000 +v 0.125000 6.000000 -0.375000 +v 0.000000 6.250000 -0.625000 +v 0.000000 6.000000 -0.625000 +v 0.000000 5.500000 -1.375000 +v 0.000000 5.250000 -1.375000 +v 0.000000 5.000000 -1.375000 +v 0.000000 4.750000 -1.375000 +v 0.000000 4.250000 -0.625000 +v 0.000000 4.000000 -0.625000 +v 0.125000 4.000000 -0.375000 +v -0.125000 4.000000 -0.375000 +v 0.125000 4.250000 -0.375000 +v -0.125000 4.250000 -0.375000 +v -0.375000 4.000000 0.375000 +v -0.625000 4.000000 0.125000 +v -0.375000 4.250000 0.375000 +v -0.625000 4.250000 0.125000 +v -0.375000 4.000000 -0.125000 +v -0.625000 4.000000 -0.125000 +v -0.375000 4.250000 -0.125000 +v -0.625000 4.250000 -0.125000 +v 0.625000 4.000000 0.125000 +v 0.375000 4.000000 0.375000 +v 0.625000 4.250000 0.125000 +v 0.375000 4.250000 0.375000 +v 0.625000 4.000000 -0.125000 +v 0.375000 4.000000 -0.125000 +v 0.625000 4.250000 -0.125000 +v 0.375000 4.250000 -0.125000 +v 0.125000 4.000000 -0.625000 +v -0.125000 4.000000 -0.625000 +v 0.125000 4.250000 -0.625000 +v -0.125000 4.250000 -0.625000 +v 0.125000 4.000000 -1.375000 +v -0.125000 4.000000 -1.375000 +v 0.125000 4.250000 -1.375000 +v -0.125000 4.250000 -1.375000 +v 0.000000 6.250000 -0.625000 +v 0.000000 6.000000 -0.625000 +v 0.000000 5.500000 -1.375000 +v 0.000000 5.250000 -1.375000 +v 0.000000 5.000000 -1.375000 +v 0.000000 4.750000 -1.375000 +v 0.000000 4.250000 -0.625000 +v 0.000000 4.000000 -0.625000 +vt 0.800000 0.448276 +vt 0.777778 0.413793 +vt 0.800000 0.413793 +vt 0.777778 0.862069 +vt 0.800000 0.827586 +vt 0.800000 0.862069 +vt 0.777778 0.827586 +vt 0.777778 0.448276 +vt 0.844444 0.448276 +vt 0.822222 0.862069 +vt 0.822222 0.448276 +vt 0.755556 0.448276 +vt 0.755556 0.862069 +vt 0.866667 0.172414 +vt 0.911111 0.137931 +vt 0.888889 0.172414 +vt 1.000000 0.172414 +vt 0.977778 0.103448 +vt 1.000000 0.103448 +vt 0.866667 -0.000000 +vt 0.844444 0.103448 +vt 0.844444 -0.000000 +vt 0.933333 0.000000 +vt 0.911111 0.103448 +vt 0.911111 0.000000 +vt 1.000000 -0.000000 +vt 0.977778 -0.000000 +vt 0.933333 -0.000000 +vt 0.911111 0.103448 +vt 0.911111 -0.000000 +vt 0.866667 0.241379 +vt 0.844444 0.206897 +vt 0.866667 0.206897 +vt 0.955556 0.172414 +vt 0.977778 0.206897 +vt 0.955556 0.241379 +vt 0.866667 0.172414 +vt 0.844444 0.172414 +vt 0.888889 0.172414 +vt 0.844444 0.310345 +vt 0.866667 0.310345 +vt 0.955556 0.172414 +vt 0.933333 0.103448 +vt 0.977778 0.172414 +vt 0.977778 0.206897 +vt 1.000000 0.241379 +vt 0.977778 0.241379 +vt 0.866667 0.206897 +vt 0.977778 0.310345 +vt 1.000000 0.310345 +vt 0.955556 0.241379 +vt 0.933333 0.137931 +vt 0.911111 0.172414 +vt 0.911111 0.137931 +vt 0.933333 0.103448 +vt 1.000000 0.344828 +vt 0.866667 0.344828 +vt 0.866667 0.103448 +vt 0.933333 0.137931 +vt 0.977778 0.172414 +vt 0.444444 0.000000 +vt 0.511111 0.034483 +vt 0.444444 0.034483 +vt 0.444444 0.034483 +vt 0.511111 0.000000 +vt 0.511111 0.034483 +vt 0.933333 0.103448 +vt 0.911111 0.137931 +vt 0.911111 0.103448 +vt 0.933333 0.137931 +vt 0.911111 0.172414 +vt 0.911111 0.137931 +vt 1.000000 0.172414 +vt 0.977778 0.206897 +vt 0.977778 0.172414 +vt 0.955556 0.172414 +vt 0.955556 0.241379 +vt 0.977778 0.310345 +vt 1.000000 0.241379 +vt 1.000000 0.310345 +vt 0.888889 0.172414 +vt 0.866667 0.206897 +vt 0.866667 0.172414 +vt 0.977778 0.241379 +vt 0.933333 0.103448 +vt 0.844444 0.310345 +vt 0.866667 0.241379 +vt 0.866667 0.310345 +vt 0.888889 0.172414 +vt 0.866667 0.206897 +vt 0.866667 0.172414 +vt 0.844444 0.206897 +vt 0.844444 0.172414 +vt 0.955556 0.172414 +vt 0.977778 0.206897 +vt 0.955556 0.241379 +vt 0.933333 -0.000000 +vt 0.911111 -0.000000 +vt 1.000000 -0.000000 +vt 0.977778 0.103448 +vt 0.977778 -0.000000 +vt 0.933333 0.000000 +vt 0.911111 0.103448 +vt 0.911111 0.000000 +vt 0.866667 -0.000000 +vt 0.844444 0.103448 +vt 0.844444 -0.000000 +vt 1.000000 0.103448 +vt 0.511111 0.034483 +vt 0.444444 0.000000 +vt 0.444444 0.034483 +vt 0.511111 0.000000 +vt 0.444444 0.034483 +vt 0.511111 0.034483 +vt 1.000000 0.344828 +vt 0.866667 0.344828 +vt 0.866667 0.103448 +vt 0.933333 0.137931 +vt 0.977778 0.172414 +vt 0.844444 0.862069 +vt 0.844444 0.241379 +vt 0.888889 0.241379 +vt 1.000000 0.206897 +vt 0.888889 0.241379 +vt 0.933333 0.172414 +vt 0.977778 0.344828 +vt 0.844444 0.344828 +vt 0.511111 0.000000 +vt 0.444444 -0.000000 +vt 0.933333 0.172414 +vt 1.000000 0.206897 +vt 0.888889 0.241379 +vt 0.844444 0.241379 +vt 0.888889 0.241379 +vt 0.511111 0.000000 +vt 0.444444 -0.000000 +vt 0.977778 0.344828 +vt 0.844444 0.344828 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +s off +f 2974/4046/292 2976/4047/292 2975/4048/292 +f 2980/4049/293 2978/4050/293 2979/4051/293 +f 2974/4046/294 2981/4052/294 2977/4053/294 +f 2976/4054/295 2979/4055/295 2975/4056/295 +f 2976/4057/296 2981/4052/296 2980/4058/296 +f 2975/4056/297 2978/4050/297 2974/4046/297 +f 3000/4059/292 3008/4060/292 3001/4061/292 +f 3000/4062/298 2986/4063/298 2988/4064/298 +f 2983/4065/296 2989/4066/296 2985/4067/296 +f 2982/4068/299 2987/4069/299 2983/4070/299 +f 2984/4071/297 2986/4063/297 2982/4072/297 +f 2985/4073/292 2988/4074/292 2984/4075/292 +f 2994/4076/300 2997/4077/300 2995/4078/300 +f 2992/4079/292 2997/4080/292 2996/4081/292 +f 2991/4082/296 2997/4077/296 2993/4083/296 +f 2990/4084/299 2995/4078/299 2991/4082/299 +f 2992/4085/297 2994/4076/297 2990/4086/297 +f 2999/4087/299 2986/4088/299 2998/4089/299 +f 3002/4090/301 3005/4091/301 3003/4092/301 +f 3001/4061/292 3004/4093/292 3000/4059/292 +f 2999/4094/296 3005/4091/296 3001/4095/296 +f 2999/4087/299 3002/4090/299 3003/4096/299 +f 3000/4062/297 3002/4090/297 2998/4089/297 +f 3006/4097/295 3009/4098/295 3007/4099/295 +f 2989/4100/292 3008/4060/292 2988/4074/292 +f 3008/4101/300 2999/4094/300 3001/4095/300 +f 2986/4088/299 3007/4099/299 2987/4069/299 +f 3007/4102/301 2992/4085/301 2990/4086/301 +f 2991/4082/299 3007/4099/299 2990/4084/299 +f 2991/4082/302 2989/4066/302 2987/4103/302 +f 3009/4104/292 2993/4105/292 2992/4079/292 +f 3011/4106/296 3012/4107/296 3010/4108/296 +f 3016/4109/296 3015/4110/296 3014/4111/296 +f 3038/4112/292 3019/4113/292 3039/4114/292 +f 3021/4115/295 3018/4116/295 3020/4117/295 +f 3027/4118/297 3025/4119/297 3029/4120/297 +f 3028/4121/299 3025/4119/299 3024/4122/299 +f 3028/4123/296 3022/4124/296 3026/4125/296 +f 3026/4126/292 3023/4127/292 3027/4128/292 +f 3025/4119/301 3022/4124/301 3024/4129/301 +f 3028/4121/299 3041/4130/299 3029/4120/299 +f 3035/4131/297 3033/4132/297 3037/4133/297 +f 3037/4134/299 3032/4135/299 3036/4136/299 +f 3036/4136/296 3030/4137/296 3034/4138/296 +f 3035/4139/292 3030/4140/292 3031/4141/292 +f 3033/4132/300 3030/4137/300 3032/4135/300 +f 3042/4142/292 3039/4114/292 3043/4143/292 +f 3043/4144/297 3041/4145/297 3045/4146/297 +f 3045/4147/299 3040/4148/299 3044/4149/299 +f 3044/4150/296 3038/4151/296 3042/4152/296 +f 3027/4118/298 3041/4145/298 3039/4153/298 +f 3027/4128/292 3019/4113/292 3026/4126/292 +f 3048/4154/297 3047/4155/297 3046/4156/297 +f 3051/4157/297 3052/4158/297 3050/4159/297 +f 3019/4160/300 3028/4123/300 3026/4125/300 +f 3041/4130/299 3020/4117/299 3040/4148/299 +f 3020/4161/301 3035/4131/301 3037/4133/301 +f 3036/4136/299 3020/4117/299 3037/4134/299 +f 3036/4136/302 3038/4151/302 3040/4162/302 +f 3018/4163/292 3034/4164/292 3035/4139/292 +f 2974/4046/292 2977/4053/292 2976/4047/292 +f 2980/4049/293 2981/4052/293 2978/4050/293 +f 2974/4046/294 2978/4050/294 2981/4052/294 +f 2976/4054/295 2980/4165/295 2979/4055/295 +f 2976/4057/296 2977/4053/296 2981/4052/296 +f 2975/4056/297 2979/4055/297 2978/4050/297 +f 3000/4059/292 2988/4074/292 3008/4060/292 +f 3000/4062/298 2998/4089/298 2986/4063/298 +f 2983/4065/296 2987/4103/296 2989/4066/296 +f 2982/4068/299 2986/4088/299 2987/4069/299 +f 2984/4071/297 2988/4064/297 2986/4063/297 +f 2985/4073/292 2989/4100/292 2988/4074/292 +f 2994/4076/300 2996/4166/300 2997/4077/300 +f 2992/4079/292 2993/4105/292 2997/4080/292 +f 2991/4082/296 2995/4078/296 2997/4077/296 +f 2990/4084/299 2994/4167/299 2995/4078/299 +f 2992/4085/297 2996/4166/297 2994/4076/297 +f 2999/4087/299 3006/4097/299 2986/4088/299 +f 3002/4090/301 3004/4168/301 3005/4091/301 +f 3001/4061/292 3005/4169/292 3004/4093/292 +f 2999/4094/296 3003/4092/296 3005/4091/296 +f 2999/4087/299 2998/4089/299 3002/4090/299 +f 3000/4062/297 3004/4168/297 3002/4090/297 +f 3006/4097/295 3008/4170/295 3009/4098/295 +f 2989/4100/292 3009/4104/292 3008/4060/292 +f 3008/4101/300 3006/4171/300 2999/4094/300 +f 2986/4088/299 3006/4097/299 3007/4099/299 +f 3007/4102/301 3009/4172/301 2992/4085/301 +f 2991/4082/299 2987/4069/299 3007/4099/299 +f 2991/4082/302 2993/4083/302 2989/4066/302 +f 3009/4104/292 2989/4100/292 2993/4105/292 +f 3011/4106/296 3013/4173/296 3012/4107/296 +f 3016/4109/296 3017/4174/296 3015/4110/296 +f 3038/4112/292 3018/4163/292 3019/4113/292 +f 3021/4115/295 3019/4175/295 3018/4116/295 +f 3027/4118/297 3023/4176/297 3025/4119/297 +f 3028/4121/299 3029/4120/299 3025/4119/299 +f 3028/4123/296 3024/4129/296 3022/4124/296 +f 3026/4126/292 3022/4177/292 3023/4127/292 +f 3025/4119/301 3023/4176/301 3022/4124/301 +f 3028/4121/299 3021/4115/299 3041/4130/299 +f 3035/4131/297 3031/4178/297 3033/4132/297 +f 3037/4134/299 3033/4179/299 3032/4135/299 +f 3036/4136/296 3032/4135/296 3030/4137/296 +f 3035/4139/292 3034/4164/292 3030/4140/292 +f 3033/4132/300 3031/4178/300 3030/4137/300 +f 3042/4142/292 3038/4112/292 3039/4114/292 +f 3043/4144/297 3039/4153/297 3041/4145/297 +f 3045/4147/299 3041/4130/299 3040/4148/299 +f 3044/4150/296 3040/4162/296 3038/4151/296 +f 3027/4118/298 3029/4120/298 3041/4145/298 +f 3027/4128/292 3039/4114/292 3019/4113/292 +f 3048/4154/297 3049/4180/297 3047/4155/297 +f 3051/4157/297 3053/4181/297 3052/4158/297 +f 3019/4160/300 3021/4182/300 3028/4123/300 +f 3041/4130/299 3021/4115/299 3020/4117/299 +f 3020/4161/301 3018/4183/301 3035/4131/301 +f 3036/4136/299 3040/4148/299 3020/4117/299 +f 3036/4136/302 3034/4138/302 3038/4151/302 +f 3018/4163/292 3038/4112/292 3034/4164/292 +o Micro_Pad +v -1.250000 2.000000 1.250000 +v 1.250000 2.000000 1.250000 +v -1.250000 2.000000 -1.250000 +v 1.250000 2.000000 -1.250000 +v -1.250000 1.500000 -1.250000 +v -1.250000 1.500000 1.250000 +v 1.250000 1.500000 1.250000 +v 1.250000 1.500000 -1.250000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v -0.500000 1.500000 0.500000 +v 0.500000 1.500000 0.500000 +v -0.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v 1.250000 1.500000 -1.250000 +v 1.250000 1.000000 -1.250000 +v 0.250000 1.500000 -1.250000 +v 0.500000 1.000000 -1.250000 +v 1.250000 1.500000 -0.250000 +v 1.250000 1.000000 -0.500000 +v 0.500000 1.500000 -0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 1.250000 -1.250000 +v 1.250000 1.250000 -0.500000 +v 0.500000 1.250000 -0.500000 +v 0.250000 1.500000 -0.500000 +v 0.500000 1.500000 -0.250000 +v -0.500000 1.000000 -1.250000 +v 0.500000 1.000000 -1.250000 +v -0.500000 1.000000 -1.750000 +v 0.500000 1.000000 -1.750000 +v -0.500000 1.500000 -1.750000 +v -0.500000 1.500000 -1.250000 +v 0.500000 1.500000 -1.250000 +v 0.500000 1.500000 -1.750000 +v -0.875000 1.000000 2.000000 +v -0.625000 1.000000 2.000000 +v -0.875000 1.000000 1.750000 +v -0.625000 1.000000 1.750000 +v 0.625000 1.000000 2.000000 +v 0.875000 1.000000 2.000000 +v 0.625000 1.000000 1.750000 +v 0.875000 1.000000 1.750000 +v -0.875000 2.000000 1.000000 +v -0.625000 2.000000 1.000000 +v -0.875000 2.000000 0.750000 +v -0.625000 2.000000 0.750000 +v 0.625000 2.000000 1.000000 +v 0.875000 2.000000 1.000000 +v 0.625000 2.000000 0.750000 +v 0.875000 2.000000 0.750000 +v -0.875000 8.000000 1.750000 +v -0.875000 8.000000 2.000000 +v -0.625000 8.000000 2.000000 +v -0.625000 8.000000 1.750000 +v 0.625000 8.000000 1.750000 +v 0.625000 8.000000 2.000000 +v 0.875000 8.000000 2.000000 +v 0.875000 8.000000 1.750000 +v -0.875000 8.000000 0.750000 +v -0.875000 8.000000 1.000000 +v -0.625000 8.000000 1.000000 +v -0.625000 8.000000 0.750000 +v 0.625000 8.000000 0.750000 +v 0.625000 8.000000 1.000000 +v 0.875000 8.000000 1.000000 +v 0.875000 8.000000 0.750000 +v -0.625000 1.000000 1.875000 +v 0.625000 1.000000 1.875000 +v -0.625000 8.000000 1.875000 +v 0.625000 8.000000 1.875000 +v -0.625000 2.000000 0.875000 +v 0.625000 2.000000 0.875000 +v -0.625000 8.000000 0.875000 +v 0.625000 8.000000 0.875000 +v 0.750000 1.000000 1.750000 +v 0.750000 8.000000 1.750000 +v 0.750000 1.000000 1.000000 +v 0.750000 8.000000 1.000000 +v -0.750000 1.000000 1.750000 +v -0.750000 8.000000 1.750000 +v -0.750000 1.000000 1.000000 +v -0.750000 8.000000 1.000000 +v -0.312500 1.000000 1.625000 +v -0.062500 1.000000 1.625000 +v -0.312500 1.000000 1.375000 +v -0.062500 1.000000 1.375000 +v 0.062500 1.000000 1.625000 +v 0.312500 1.000000 1.625000 +v 0.062500 1.000000 1.375000 +v 0.312500 1.000000 1.375000 +v -0.312500 6.000000 1.375000 +v -0.312500 6.000000 1.625000 +v -0.062500 6.000000 1.625000 +v -0.062500 6.000000 1.375000 +v 0.062500 6.000000 1.375000 +v 0.062500 6.000000 1.625000 +v 0.312500 6.000000 1.625000 +v 0.312500 6.000000 1.375000 +v -1.250000 1.500000 1.250000 +v -1.250000 1.000000 1.250000 +v -0.250000 1.500000 1.250000 +v -0.500000 1.000000 1.250000 +v -1.250000 1.500000 0.250000 +v -1.250000 1.000000 0.500000 +v -0.500000 1.500000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 1.250000 1.250000 +v -1.250000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v -0.250000 1.500000 0.500000 +v -0.500000 1.500000 0.250000 +v -1.250000 1.500000 -1.250000 +v -1.250000 1.000000 -1.250000 +v -1.250000 1.500000 -0.250000 +v -1.250000 1.000000 -0.500000 +v -0.250000 1.500000 -1.250000 +v -0.500000 1.000000 -1.250000 +v -0.500000 1.500000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -1.250000 1.250000 -0.500000 +v -0.500000 1.250000 -1.250000 +v -0.500000 1.250000 -0.500000 +v -0.500000 1.500000 -0.250000 +v -0.250000 1.500000 -0.500000 +v 1.250000 1.500000 1.250000 +v 1.250000 1.000000 1.250000 +v 1.250000 1.500000 0.250000 +v 1.250000 1.000000 0.500000 +v 0.250000 1.500000 1.250000 +v 0.500000 1.000000 1.250000 +v 0.500000 1.500000 0.500000 +v 0.500000 1.000000 0.500000 +v 1.250000 1.250000 0.500000 +v 0.500000 1.250000 1.250000 +v 0.500000 1.250000 0.500000 +v 0.500000 1.500000 0.250000 +v 0.250000 1.500000 0.500000 +v -0.625000 1.000000 1.875000 +v 0.625000 1.000000 1.875000 +v -0.625000 8.000000 1.875000 +v 0.625000 8.000000 1.875000 +v -0.625000 2.000000 0.875000 +v 0.625000 2.000000 0.875000 +v -0.625000 8.000000 0.875000 +v 0.625000 8.000000 0.875000 +v 0.750000 1.000000 1.750000 +v 0.750000 8.000000 1.750000 +v 0.750000 1.000000 1.000000 +v 0.750000 8.000000 1.000000 +v -0.750000 1.000000 1.750000 +v -0.750000 8.000000 1.750000 +v -0.750000 1.000000 1.000000 +v -0.750000 8.000000 1.000000 +vt 0.066667 0.655172 +vt 0.222222 0.758621 +vt 0.000000 0.758621 +vt 0.066667 0.517241 +vt 0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt 0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt 0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt -0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.155556 0.655172 +vt 0.155556 0.517241 +vt 0.000000 -0.000000 +vt 0.066667 0.241379 +vt 0.000000 0.344828 +vt 0.155556 0.241379 +vt 0.155556 0.103448 +vt 0.222222 -0.000000 +vt 0.066667 0.103448 +vt 0.066667 0.517241 +vt 0.155556 0.655172 +vt 0.066667 0.655172 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.888889 0.655172 +vt 0.933333 0.793103 +vt 0.888889 0.793103 +vt 0.888889 0.862069 +vt 0.933333 0.862069 +vt 0.977778 0.793103 +vt 0.933333 0.655172 +vt 0.977778 0.655172 +vt 0.844444 0.655172 +vt 0.844444 0.793103 +vt 0.933333 0.586207 +vt 0.888889 0.586207 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.600000 0.137931 +vt 0.577778 0.137931 +vt 0.622222 0.000000 +vt 0.600000 0.965517 +vt 0.600000 0.000000 +vt 0.622222 0.137931 +vt 0.600000 0.965517 +vt 0.644444 0.000000 +vt 0.622222 0.965517 +vt 0.622222 0.000000 +vt 0.644444 0.137931 +vt 0.622222 0.965517 +vt 0.622222 0.137931 +vt 0.666667 0.000000 +vt 0.644444 0.965517 +vt 0.666667 0.137931 +vt 0.644444 0.965517 +vt 0.600000 0.000000 +vt 0.577778 0.000000 +vt 0.600000 0.137931 +vt 0.577778 0.137931 +vt 0.600000 0.965517 +vt 0.644444 0.000000 +vt 0.622222 0.965517 +vt 0.600000 0.965517 +vt 0.644444 0.137931 +vt 0.622222 0.965517 +vt 0.666667 0.000000 +vt 0.644444 0.965517 +vt 0.666667 0.137931 +vt 0.644444 0.965517 +vt 0.577778 0.000000 +vt 0.222222 0.965517 +vt 0.333333 -0.000000 +vt 0.333333 0.965517 +vt 0.511111 0.965517 +vt 0.400000 0.137931 +vt 0.511111 0.137931 +vt 0.333333 0.000000 +vt 0.400000 0.965517 +vt 0.333333 0.965517 +vt 0.511111 0.965517 +vt 0.577778 0.000000 +vt 0.577778 0.965517 +vt 0.666667 0.689655 +vt 0.688889 0.724138 +vt 0.666667 0.724138 +vt 0.666667 0.689655 +vt 0.688889 0.724138 +vt 0.666667 0.724138 +vt 0.688889 0.000000 +vt 0.666667 0.000000 +vt 0.733333 0.000000 +vt 0.711111 0.689655 +vt 0.711111 0.000000 +vt 0.711111 0.000000 +vt 0.688889 0.689655 +vt 0.688889 0.000000 +vt 0.755556 0.000000 +vt 0.733333 0.689655 +vt 0.733333 0.000000 +vt 0.688889 0.689655 +vt 0.755556 0.000000 +vt 0.733333 0.689655 +vt 0.666667 0.000000 +vt 0.711111 0.689655 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.022222 0.896552 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.022222 0.896552 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.333333 -0.000000 +vt 0.222222 0.965517 +vt 0.333333 0.965517 +vt 0.400000 0.137931 +vt 0.511111 0.965517 +vt 0.511111 0.137931 +vt 0.400000 0.965517 +vt 0.333333 0.000000 +vt 0.333333 0.965517 +vt 0.577778 0.000000 +vt 0.511111 0.965517 +vt 0.577778 0.965517 +vt 0.000000 0.344828 +vt 0.000000 0.344828 +vt -0.000000 0.344828 +vt 0.155556 0.172414 +vt 0.155556 0.517241 +vt 0.155556 0.172414 +vt 0.155556 0.172414 +vt 0.155556 0.172414 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.022222 0.896552 +vt 0.666667 0.965517 +vt 0.666667 0.965517 +vt 0.666667 0.965517 +vt 0.666667 0.965517 +vt 0.222222 0.000000 +vt 0.400000 0.965517 +vt 0.400000 0.000000 +vt 0.511111 0.000000 +vt 0.755556 0.689655 +vt 0.755556 0.689655 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.022222 0.896552 +vt 0.222222 0.000000 +vt 0.400000 0.965517 +vt 0.400000 0.000000 +vt 0.511111 0.000000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 -0.0000 +vn -0.0000 -0.7071 -0.7071 +s off +f 3062/4184/303 3056/4185/303 3054/4186/303 +f 3063/4187/303 3054/4186/303 3055/4188/303 +f 3055/4188/304 3061/4189/304 3057/4190/304 +f 3056/4191/305 3059/4192/305 3054/4193/305 +f 3057/4194/306 3058/4195/306 3056/4196/306 +f 3054/4197/307 3060/4198/307 3055/4199/307 +f 3066/4200/304 3064/4201/304 3062/4202/304 +f 3064/4203/303 3057/4190/303 3056/4185/303 +f 3065/4204/303 3055/4188/303 3057/4190/303 +f 3059/4205/308 3067/4206/308 3060/4207/308 +f 3060/4207/308 3069/4208/308 3061/4189/308 +f 3061/4189/308 3068/4209/308 3058/4210/308 +f 3058/4210/308 3066/4211/308 3059/4205/308 +f 3071/4212/303 3072/4213/303 3070/4214/303 +f 3068/4215/307 3065/4216/307 3064/4217/307 +f 3069/4218/305 3063/4219/305 3065/4220/305 +f 3067/4221/306 3062/4222/306 3063/4223/306 +f 3075/4224/306 3077/4225/306 3082/4226/306 +f 3077/4227/305 3084/4228/305 3082/4229/305 +f 3074/4230/304 3078/4231/304 3083/4232/304 +f 3085/4233/309 3082/4229/309 3084/4228/309 +f 3083/4234/307 3081/4235/307 3079/4236/307 +f 3085/4237/307 3084/4238/307 3080/4239/307 +f 3084/4238/305 3086/4240/305 3080/4239/305 +f 3086/4241/310 3083/4234/310 3078/4242/310 +f 3093/4243/303 3091/4244/303 3092/4245/303 +f 3087/4246/305 3091/4244/305 3089/4247/305 +f 3089/4248/306 3094/4249/306 3090/4250/306 +f 3088/4251/307 3092/4245/307 3087/4252/307 +f 3090/4253/304 3093/4243/304 3088/4254/304 +f 3113/4255/303 3111/4256/303 3112/4257/303 +f 3117/4258/303 3115/4259/303 3116/4260/303 +f 3121/4261/303 3119/4262/303 3120/4263/303 +f 3125/4264/303 3123/4265/303 3124/4266/303 +f 3106/4267/304 3121/4261/304 3104/4268/304 +f 3097/4269/306 3114/4270/306 3098/4271/306 +f 3105/4272/306 3122/4273/306 3106/4267/306 +f 3099/4274/305 3115/4275/305 3101/4276/305 +f 3107/4277/305 3123/4278/305 3109/4279/305 +f 3100/4280/307 3116/4281/307 3099/4274/307 +f 3108/4282/307 3124/4283/307 3107/4277/307 +f 3102/4284/304 3117/4258/304 3100/4285/304 +f 3110/4286/304 3125/4264/304 3108/4287/304 +f 3101/4276/306 3118/4288/306 3102/4284/306 +f 3095/4289/305 3111/4290/305 3097/4269/305 +f 3109/4279/306 3126/4291/306 3110/4286/306 +f 3103/4292/305 3119/4293/305 3105/4272/305 +f 3096/4294/307 3112/4295/307 3095/4289/307 +f 3104/4296/307 3120/4297/307 3103/4292/307 +f 3098/4271/304 3113/4255/304 3096/4298/304 +f 3129/4299/307 3128/4300/307 3130/4301/307 +f 3133/4302/306 3132/4303/306 3131/4304/306 +f 3135/4305/304 3138/4306/304 3136/4307/304 +f 3142/4308/305 3139/4309/305 3140/4310/305 +f 3153/4311/303 3151/4312/303 3152/4313/303 +f 3157/4314/303 3155/4315/303 3156/4316/303 +f 3146/4317/304 3153/4311/304 3144/4318/304 +f 3143/4319/305 3151/4320/305 3145/4321/305 +f 3149/4322/306 3158/4323/306 3150/4324/306 +f 3148/4325/307 3156/4326/307 3147/4327/307 +f 3145/4321/306 3154/4328/306 3146/4317/306 +f 3144/4329/307 3152/4330/307 3143/4319/307 +f 3150/4324/304 3157/4314/304 3148/4331/304 +f 3147/4327/305 3155/4332/305 3149/4322/305 +f 3160/4333/307 3162/4334/307 3167/4335/307 +f 3162/4336/304 3169/4337/304 3167/4338/304 +f 3159/4339/305 3163/4340/305 3168/4341/305 +f 3161/4342/311 3169/4337/311 3170/4343/311 +f 3168/4344/306 3166/4345/306 3164/4346/306 +f 3170/4347/306 3169/4348/306 3165/4349/306 +f 3169/4348/304 3171/4350/304 3165/4349/304 +f 3171/4351/312 3168/4344/312 3163/4352/312 +f 3173/4353/305 3175/4354/305 3180/4355/305 +f 3175/4356/307 3182/4357/307 3180/4358/307 +f 3172/4359/306 3176/4360/306 3181/4361/306 +f 3174/4362/310 3182/4357/310 3183/4363/310 +f 3181/4364/304 3179/4365/304 3177/4366/304 +f 3183/4367/304 3182/4368/304 3178/4369/304 +f 3182/4368/307 3184/4370/307 3178/4369/307 +f 3184/4371/311 3181/4364/311 3176/4372/311 +f 3186/4373/304 3188/4374/304 3193/4375/304 +f 3188/4376/306 3195/4377/306 3193/4378/306 +f 3185/4379/307 3189/4380/307 3194/4381/307 +f 3196/4382/312 3193/4378/312 3195/4377/312 +f 3194/4383/305 3192/4384/305 3190/4385/305 +f 3196/4386/305 3195/4387/305 3191/4388/305 +f 3195/4387/306 3197/4389/306 3191/4388/306 +f 3197/4390/309 3194/4383/309 3189/4391/309 +f 3199/4392/306 3200/4393/306 3201/4394/306 +f 3203/4395/307 3204/4396/307 3202/4397/307 +f 3209/4398/305 3206/4399/305 3207/4400/305 +f 3210/4401/304 3213/4402/304 3211/4403/304 +f 3062/4184/303 3064/4203/303 3056/4185/303 +f 3063/4187/303 3062/4184/303 3054/4186/303 +f 3055/4188/304 3060/4207/304 3061/4189/304 +f 3056/4191/305 3058/4404/305 3059/4192/305 +f 3057/4194/306 3061/4405/306 3058/4195/306 +f 3054/4197/307 3059/4406/307 3060/4198/307 +f 3066/4200/304 3068/4407/304 3064/4201/304 +f 3064/4203/303 3065/4204/303 3057/4190/303 +f 3065/4204/303 3063/4187/303 3055/4188/303 +f 3059/4205/308 3066/4211/308 3067/4206/308 +f 3060/4207/308 3067/4206/308 3069/4208/308 +f 3061/4189/308 3069/4208/308 3068/4209/308 +f 3058/4210/308 3068/4209/308 3066/4211/308 +f 3071/4212/303 3073/4408/303 3072/4213/303 +f 3068/4215/307 3069/4409/307 3065/4216/307 +f 3069/4218/305 3067/4410/305 3063/4219/305 +f 3067/4221/306 3066/4411/306 3062/4222/306 +f 3076/4412/306 3074/4230/306 3082/4226/306 +f 3074/4230/306 3075/4224/306 3082/4226/306 +f 3077/4227/305 3081/4235/305 3084/4228/305 +f 3079/4413/304 3075/4224/304 3083/4232/304 +f 3075/4224/304 3074/4230/304 3083/4232/304 +f 3085/4233/309 3076/4414/309 3082/4229/309 +f 3083/4234/307 3084/4228/307 3081/4235/307 +f 3086/4241/310 3084/4228/310 3083/4234/310 +f 3093/4243/303 3094/4249/303 3091/4244/303 +f 3087/4246/305 3092/4245/305 3091/4244/305 +f 3089/4248/306 3091/4244/306 3094/4249/306 +f 3088/4251/307 3093/4243/307 3092/4245/307 +f 3090/4253/304 3094/4249/304 3093/4243/304 +f 3113/4255/303 3114/4270/303 3111/4256/303 +f 3117/4258/303 3118/4288/303 3115/4259/303 +f 3121/4261/303 3122/4273/303 3119/4262/303 +f 3125/4264/303 3126/4291/303 3123/4265/303 +f 3106/4267/304 3122/4273/304 3121/4261/304 +f 3097/4269/306 3111/4290/306 3114/4270/306 +f 3105/4272/306 3119/4293/306 3122/4273/306 +f 3099/4274/305 3116/4281/305 3115/4275/305 +f 3107/4277/305 3124/4283/305 3123/4278/305 +f 3100/4280/307 3117/4415/307 3116/4281/307 +f 3108/4282/307 3125/4416/307 3124/4283/307 +f 3102/4284/304 3118/4288/304 3117/4258/304 +f 3110/4286/304 3126/4291/304 3125/4264/304 +f 3101/4276/306 3115/4275/306 3118/4288/306 +f 3095/4289/305 3112/4295/305 3111/4290/305 +f 3109/4279/306 3123/4278/306 3126/4291/306 +f 3103/4292/305 3120/4297/305 3119/4293/305 +f 3096/4294/307 3113/4417/307 3112/4295/307 +f 3104/4296/307 3121/4418/307 3120/4297/307 +f 3098/4271/304 3114/4270/304 3113/4255/304 +f 3129/4299/307 3127/4419/307 3128/4300/307 +f 3133/4302/306 3134/4420/306 3132/4303/306 +f 3135/4305/304 3137/4421/304 3138/4306/304 +f 3142/4308/305 3141/4422/305 3139/4309/305 +f 3153/4311/303 3154/4328/303 3151/4312/303 +f 3157/4314/303 3158/4323/303 3155/4315/303 +f 3146/4317/304 3154/4328/304 3153/4311/304 +f 3143/4319/305 3152/4330/305 3151/4320/305 +f 3149/4322/306 3155/4332/306 3158/4323/306 +f 3148/4325/307 3157/4423/307 3156/4326/307 +f 3145/4321/306 3151/4320/306 3154/4328/306 +f 3144/4329/307 3153/4424/307 3152/4330/307 +f 3150/4324/304 3158/4323/304 3157/4314/304 +f 3147/4327/305 3156/4326/305 3155/4332/305 +f 3161/4425/307 3159/4339/307 3167/4335/307 +f 3159/4339/307 3160/4333/307 3167/4335/307 +f 3162/4336/304 3166/4345/304 3169/4337/304 +f 3164/4426/305 3160/4333/305 3168/4341/305 +f 3160/4333/305 3159/4339/305 3168/4341/305 +f 3161/4342/311 3167/4338/311 3169/4337/311 +f 3168/4344/306 3169/4337/306 3166/4345/306 +f 3171/4351/312 3169/4337/312 3168/4344/312 +f 3174/4427/305 3172/4359/305 3180/4355/305 +f 3172/4359/305 3173/4353/305 3180/4355/305 +f 3175/4356/307 3179/4365/307 3182/4357/307 +f 3177/4428/306 3173/4353/306 3181/4361/306 +f 3173/4353/306 3172/4359/306 3181/4361/306 +f 3174/4362/310 3180/4358/310 3182/4357/310 +f 3181/4364/304 3182/4357/304 3179/4365/304 +f 3184/4371/311 3182/4357/311 3181/4364/311 +f 3187/4429/304 3185/4379/304 3193/4375/304 +f 3185/4379/304 3186/4373/304 3193/4375/304 +f 3188/4376/306 3192/4384/306 3195/4377/306 +f 3190/4430/307 3186/4373/307 3194/4381/307 +f 3186/4373/307 3185/4379/307 3194/4381/307 +f 3196/4382/312 3187/4431/312 3193/4378/312 +f 3194/4383/305 3195/4377/305 3192/4384/305 +f 3197/4390/309 3195/4377/309 3194/4383/309 +f 3199/4392/306 3198/4432/306 3200/4393/306 +f 3203/4395/307 3205/4433/307 3204/4396/307 +f 3209/4398/305 3208/4434/305 3206/4399/305 +f 3210/4401/304 3212/4435/304 3213/4402/304 +o V2_Pad +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v 0.500000 2.000000 -0.500000 +v -0.500000 2.000000 -0.500000 +v -1.500000 1.500000 -1.500000 +v 1.500000 1.500000 -1.500000 +v -1.500000 1.500000 -2.000000 +v 1.500000 1.500000 -2.000000 +v -1.500000 1.000000 -2.000000 +v 1.500000 1.000000 -2.000000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v 0.500000 2.000000 -0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 1.750000 -0.500000 +v 0.500000 1.750000 0.500000 +v -0.500000 1.750000 -0.500000 +v -0.500000 1.750000 0.500000 +v -1.500000 1.750000 -1.500000 +v -1.500000 1.750000 1.500000 +v 1.500000 1.750000 1.500000 +v 1.500000 1.750000 -1.500000 +v 0.750000 1.125000 1.250000 +v 1.250000 1.125000 1.250000 +v 0.750000 1.125000 0.750000 +v 1.250000 1.125000 0.750000 +v 0.750000 1.625000 1.250000 +v 1.250000 1.625000 1.250000 +v 0.750000 1.625000 0.750000 +v 1.250000 1.625000 0.750000 +v 0.625000 1.000000 1.375000 +v 1.375000 1.000000 1.375000 +v 0.625000 1.000000 0.625000 +v 1.375000 1.000000 0.625000 +v 0.625000 1.125000 1.375000 +v 1.375000 1.125000 1.375000 +v 0.625000 1.125000 0.625000 +v 1.375000 1.125000 0.625000 +v 0.625000 1.625000 1.375000 +v 1.375000 1.625000 1.375000 +v 0.625000 1.625000 0.625000 +v 1.375000 1.625000 0.625000 +v 0.625000 1.750000 1.375000 +v 1.375000 1.750000 1.375000 +v 0.625000 1.750000 0.625000 +v 1.375000 1.750000 0.625000 +v -0.250000 1.000000 2.250000 +v 0.250000 1.000000 2.250000 +v -0.250000 1.000000 1.750000 +v 0.250000 1.000000 1.750000 +v -0.250000 10.000000 1.750000 +v -0.250000 10.000000 2.250000 +v 0.250000 10.000000 2.250000 +v 0.250000 10.000000 1.750000 +v 4.000000 2.750000 1.500000 +v 3.750000 2.750000 1.500000 +v 3.750000 2.750000 1.750000 +v 4.000000 2.750000 1.750000 +v 0.750001 2.000000 1.500000 +v 3.750000 2.000000 1.500000 +v 0.750001 1.500000 1.633975 +v 3.750000 1.500000 1.633975 +v 0.750001 1.133975 2.000000 +v 3.750000 1.133975 2.000000 +v 0.750001 1.000000 2.500000 +v 3.750000 1.000000 2.500000 +v 0.750001 1.133975 3.000000 +v 3.750000 1.133975 3.000000 +v 0.750001 1.500000 3.366025 +v 3.750000 1.500000 3.366025 +v 0.750001 2.000000 3.500000 +v 3.750000 2.000000 3.500000 +v 0.750001 2.500000 3.366025 +v 3.750000 2.500000 3.366025 +v 0.750001 2.866026 3.000000 +v 3.750000 2.866026 3.000000 +v 0.750001 3.000000 2.500000 +v 3.750000 3.000000 2.500000 +v 0.750001 2.866026 2.000000 +v 3.750000 2.866026 2.000000 +v 0.750001 2.500001 1.633975 +v 3.750000 2.500001 1.633975 +v 4.000000 1.000000 1.750000 +v 3.750000 1.000000 1.750000 +v 3.750000 1.000000 1.500000 +v 4.000000 1.000000 1.500000 +v 4.000000 1.250000 1.500000 +v 3.750000 1.250000 1.500000 +v 3.750000 1.250000 1.750000 +v 4.000000 1.250000 1.750000 +v 4.000000 1.250000 3.500000 +v 3.750000 1.250000 3.500000 +v 3.750000 1.250000 3.250000 +v 4.000000 1.250000 3.250000 +v 4.000000 1.000000 3.250000 +v 3.750000 1.000000 3.250000 +v 3.750000 1.000000 3.500000 +v 4.000000 1.000000 3.500000 +v 0.750000 1.000000 1.750000 +v 0.500000 1.000000 1.750000 +v 0.500000 1.000000 1.500000 +v 0.750000 1.000000 1.500000 +v 0.750000 1.250000 1.500000 +v 0.500000 1.250000 1.500000 +v 0.500000 1.250000 1.750000 +v 0.750000 1.250000 1.750000 +v 0.750000 1.250000 3.500000 +v 0.500000 1.250000 3.500000 +v 0.500000 1.250000 3.250000 +v 0.750000 1.250000 3.250000 +v 0.750000 1.000000 3.250000 +v 0.500000 1.000000 3.250000 +v 0.500000 1.000000 3.500000 +v 0.750000 1.000000 3.500000 +v 4.000000 3.000000 1.500000 +v 3.750000 3.000000 1.500000 +v 3.750000 3.000000 1.750000 +v 4.000000 3.000000 1.750000 +v 4.000000 3.000000 3.500000 +v 3.750000 3.000000 3.500000 +v 3.750000 3.000000 3.250000 +v 4.000000 3.000000 3.250000 +v 4.000000 2.750000 3.250000 +v 3.750000 2.750000 3.250000 +v 3.750000 2.750000 3.500000 +v 4.000000 2.750000 3.500000 +v 0.750000 2.750000 1.750000 +v 0.500000 2.750000 1.750000 +v 0.500000 2.750000 1.500000 +v 0.750000 2.750000 1.500000 +v 0.750000 3.000000 1.500000 +v 0.500000 3.000000 1.500000 +v 0.500000 3.000000 1.750000 +v 0.750000 3.000000 1.750000 +v 0.750000 3.000000 3.500000 +v 0.500000 3.000000 3.500000 +v 0.500000 3.000000 3.250000 +v 0.750000 3.000000 3.250000 +v 0.750000 2.750000 3.250000 +v 0.500000 2.750000 3.250000 +v 0.500000 2.750000 3.500000 +v 0.750000 2.750000 3.500000 +v 4.000000 1.000000 1.750000 +v 4.000000 1.000000 3.250000 +v 3.875000 1.000000 1.750000 +v 3.875000 1.000000 3.250000 +v 4.000000 1.125000 1.750000 +v 4.000000 1.125000 3.250000 +v 3.875000 1.125000 1.750000 +v 3.875000 1.125000 3.250000 +v 0.625000 1.000000 1.750000 +v 0.625000 1.000000 3.250000 +v 0.500000 1.000000 1.750000 +v 0.500000 1.000000 3.250000 +v 0.625000 1.125000 1.750000 +v 0.625000 1.125000 3.250000 +v 0.500000 1.125000 1.750000 +v 0.500000 1.125000 3.250000 +v 4.000000 2.875000 1.750000 +v 4.000000 2.875000 3.250000 +v 3.875000 2.875000 1.750000 +v 3.875000 2.875000 3.250000 +v 4.000000 3.000000 1.750000 +v 4.000000 3.000000 3.250000 +v 3.875000 3.000000 1.750000 +v 3.875000 3.000000 3.250000 +v 0.625000 2.875000 1.750000 +v 0.625000 2.875000 3.250000 +v 0.500000 2.875000 1.750000 +v 0.500000 2.875000 3.250000 +v 0.625000 3.000000 1.750000 +v 0.625000 3.000000 3.250000 +v 0.500000 3.000000 1.750000 +v 0.500000 3.000000 3.250000 +v 4.000000 2.750000 1.500000 +v 4.000000 1.250000 1.500000 +v 3.875000 2.750000 1.500000 +v 3.875000 1.250000 1.500000 +v 4.000000 2.750000 1.625000 +v 4.000000 1.250000 1.625000 +v 3.875000 2.750000 1.625000 +v 3.875000 1.250000 1.625000 +v 0.625000 2.750000 1.500000 +v 0.625000 1.250000 1.500000 +v 0.500000 2.750000 1.500000 +v 0.500000 1.250000 1.500000 +v 0.625000 2.750000 1.625000 +v 0.625000 1.250000 1.625000 +v 0.500000 2.750000 1.625000 +v 0.500000 1.250000 1.625000 +v 4.000000 2.750000 3.375000 +v 4.000000 1.250000 3.375000 +v 3.875000 2.750000 3.375000 +v 3.875000 1.250000 3.375000 +v 4.000000 2.750000 3.500000 +v 4.000000 1.250000 3.500000 +v 3.875000 2.750000 3.500000 +v 3.875000 1.250000 3.500000 +v 0.625000 2.750000 3.375000 +v 0.625000 1.250000 3.375000 +v 0.500000 2.750000 3.375000 +v 0.500000 1.250000 3.375000 +v 0.625000 2.750000 3.500000 +v 0.625000 1.250000 3.500000 +v 0.500000 2.750000 3.500000 +v 0.500000 1.250000 3.500000 +v 3.750000 1.000000 3.500000 +v 0.750000 1.000000 3.500000 +v 3.750000 1.000000 3.375000 +v 0.750000 1.000000 3.375000 +v 3.750000 1.125000 3.500000 +v 0.750000 1.125000 3.500000 +v 3.750000 1.125000 3.375000 +v 0.750000 1.125000 3.375000 +v 3.750000 2.875000 3.500000 +v 0.750000 2.875000 3.500000 +v 3.750000 2.875000 3.375000 +v 0.750000 2.875000 3.375000 +v 3.750000 3.000000 3.500000 +v 0.750000 3.000000 3.500000 +v 3.750000 3.000000 3.375000 +v 0.750000 3.000000 3.375000 +v 3.750000 1.000000 1.625000 +v 0.750000 1.000000 1.625000 +v 3.750000 1.000000 1.500000 +v 0.750000 1.000000 1.500000 +v 3.750000 1.125000 1.625000 +v 0.750000 1.125000 1.625000 +v 3.750000 1.125000 1.500000 +v 0.750000 1.125000 1.500000 +v 3.750000 2.875000 1.625000 +v 0.750000 2.875000 1.625000 +v 3.750000 2.875000 1.500000 +v 0.750000 2.875000 1.500000 +v 3.750000 3.000000 1.625000 +v 0.750000 3.000000 1.625000 +v 3.750000 3.000000 1.500000 +v 0.750000 3.000000 1.500000 +v 4.000000 1.625000 1.850481 +v 4.000000 2.000000 1.750000 +v 4.000000 1.350481 2.125000 +v 4.000000 1.250000 2.500000 +v 4.000000 1.350481 2.875000 +v 4.000000 1.625000 3.149519 +v 4.000000 2.000000 3.250000 +v 4.000000 2.375000 3.149519 +v 4.000000 2.649519 2.875000 +v 4.000000 2.750000 2.500000 +v 4.000000 2.649520 2.125000 +v 4.000000 2.375001 1.850481 +v 0.500001 2.000000 1.750000 +v 0.500001 1.625000 1.850481 +v 0.500001 1.350481 2.125000 +v 0.500001 1.250000 2.500000 +v 0.500001 1.350481 2.875000 +v 0.500001 1.625000 3.149519 +v 0.500001 2.000000 3.250000 +v 0.500001 2.375000 3.149519 +v 0.500001 2.649519 2.875000 +v 0.500001 2.750000 2.500000 +v 0.500001 2.649520 2.125000 +v 0.500001 2.375001 1.850481 +v 0.750000 1.125000 -0.750000 +v 1.250000 1.125000 -0.750000 +v 0.750000 1.125000 -1.250000 +v 1.250000 1.125000 -1.250000 +v 0.750000 1.625000 -0.750000 +v 1.250000 1.625000 -0.750000 +v 0.750000 1.625000 -1.250000 +v 1.250000 1.625000 -1.250000 +v 0.625000 1.000000 -0.625000 +v 1.375000 1.000000 -0.625000 +v 0.625000 1.000000 -1.375000 +v 1.375000 1.000000 -1.375000 +v 0.625000 1.125000 -0.625000 +v 1.375000 1.125000 -0.625000 +v 0.625000 1.125000 -1.375000 +v 1.375000 1.125000 -1.375000 +v 0.625000 1.625000 -0.625000 +v 1.375000 1.625000 -0.625000 +v 0.625000 1.625000 -1.375000 +v 1.375000 1.625000 -1.375000 +v 0.625000 1.750000 -0.625000 +v 1.375000 1.750000 -0.625000 +v 0.625000 1.750000 -1.375000 +v 1.375000 1.750000 -1.375000 +v -1.250000 1.125000 1.250000 +v -0.750000 1.125000 1.250000 +v -1.250000 1.125000 0.750000 +v -0.750000 1.125000 0.750000 +v -1.250000 1.625000 1.250000 +v -0.750000 1.625000 1.250000 +v -1.250000 1.625000 0.750000 +v -0.750000 1.625000 0.750000 +v -1.375000 1.000000 1.375000 +v -0.625000 1.000000 1.375000 +v -1.375000 1.000000 0.625000 +v -0.625000 1.000000 0.625000 +v -1.375000 1.125000 1.375000 +v -0.625000 1.125000 1.375000 +v -1.375000 1.125000 0.625000 +v -0.625000 1.125000 0.625000 +v -1.375000 1.625000 1.375000 +v -0.625000 1.625000 1.375000 +v -1.375000 1.625000 0.625000 +v -0.625000 1.625000 0.625000 +v -1.375000 1.750000 1.375000 +v -0.625000 1.750000 1.375000 +v -1.375000 1.750000 0.625000 +v -0.625000 1.750000 0.625000 +v -1.250000 1.125000 -0.750000 +v -0.750000 1.125000 -0.750000 +v -1.250000 1.125000 -1.250000 +v -0.750000 1.125000 -1.250000 +v -1.250000 1.625000 -0.750000 +v -0.750000 1.625000 -0.750000 +v -1.250000 1.625000 -1.250000 +v -0.750000 1.625000 -1.250000 +v -1.375000 1.000000 -0.625000 +v -0.625000 1.000000 -0.625000 +v -1.375000 1.000000 -1.375000 +v -0.625000 1.000000 -1.375000 +v -1.375000 1.125000 -0.625000 +v -0.625000 1.125000 -0.625000 +v -1.375000 1.125000 -1.375000 +v -0.625000 1.125000 -1.375000 +v -1.375000 1.625000 -0.625000 +v -0.625000 1.625000 -0.625000 +v -1.375000 1.625000 -1.375000 +v -0.625000 1.625000 -1.375000 +v -1.375000 1.750000 -0.625000 +v -0.625000 1.750000 -0.625000 +v -1.375000 1.750000 -1.375000 +v -0.625000 1.750000 -1.375000 +vt 0.265306 0.763158 +vt 0.510204 0.710526 +vt 0.510204 0.763158 +vt 0.265306 0.815789 +vt 0.510204 0.815789 +vt 0.265306 0.710526 +vt 0.510204 0.657895 +vt 0.224490 0.710526 +vt 0.224490 0.763158 +vt 0.551020 0.710526 +vt 0.551020 0.763158 +vt 0.244898 0.552632 +vt 0.163265 0.342105 +vt 0.244898 0.447368 +vt 0.408163 0.342105 +vt 0.326531 0.447368 +vt 0.408163 0.657895 +vt 0.326531 0.552632 +vt 0.163265 0.657895 +vt 0.326531 0.447368 +vt 0.244898 0.552632 +vt 0.244898 0.447368 +vt 0.163265 0.315789 +vt 0.244898 0.105263 +vt 0.244898 0.210526 +vt 0.408163 0.315789 +vt 0.326531 0.210526 +vt 0.408163 -0.000000 +vt 0.326531 0.105263 +vt 0.163265 -0.000000 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.163265 0.342105 +vt 0.408163 0.315789 +vt 0.408163 0.342105 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.163265 0.342105 +vt 0.408163 0.315789 +vt 0.408163 0.342105 +vt 0.163265 0.342105 +vt 0.408163 0.315789 +vt 0.408163 0.342105 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.040816 0.947368 +vt 0.081633 1.000000 +vt 0.040816 1.000000 +vt 0.081633 0.000000 +vt 0.040816 0.000000 +vt 0.163265 0.000000 +vt 0.122449 0.947368 +vt 0.122449 0.000000 +vt 0.081633 0.947368 +vt 0.000000 0.947368 +vt 0.000000 0.000000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.765306 0.315789 +vt 0.775510 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.315789 +vt 0.785714 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.315789 +vt 0.775510 0.473684 +vt 0.765306 0.315789 +vt 0.795918 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.765306 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.775510 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.473684 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.785714 0.473684 +vt 0.775510 0.315789 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.765306 0.315789 +vt 0.775510 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.473684 +vt 0.775510 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.473684 +vt 0.765306 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.315789 +vt 0.775510 0.473684 +vt 0.765306 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.473684 +vt 0.755102 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.785714 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.315789 +vt 0.775510 0.473684 +vt 0.765306 0.315789 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.765306 0.315789 +vt 0.775510 0.473684 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.785714 0.473684 +vt 0.775510 0.315789 +vt 0.724490 0.631579 +vt 0.734694 0.315789 +vt 0.734694 0.631579 +vt 0.714286 0.631579 +vt 0.724490 0.315789 +vt 0.744898 0.315789 +vt 0.755102 0.631579 +vt 0.744898 0.631579 +vt 0.714286 0.631579 +vt 0.724490 0.315789 +vt 0.724490 0.631579 +vt 0.744898 0.631579 +vt 0.755102 0.315789 +vt 0.755102 0.631579 +vt 0.734694 0.315789 +vt 0.734694 0.631579 +vt 0.734694 0.631579 +vt 0.744898 0.315789 +vt 0.744898 0.631579 +vt 0.724490 0.631579 +vt 0.734694 0.315789 +vt 0.755102 0.315789 +vt 0.714286 0.315789 +vt 0.714286 0.631579 +vt 0.744898 0.631579 +vt 0.755102 0.315789 +vt 0.755102 0.631579 +vt 0.734694 0.631579 +vt 0.744898 0.315789 +vt 0.724490 0.315789 +vt 0.714286 0.631579 +vt 0.714286 0.315789 +vt 0.724490 0.631579 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.265306 0.657895 +vt 0.326531 0.552632 +vt 0.244898 0.184211 +vt 0.163265 0.315789 +vt 0.244898 0.184211 +vt 0.244898 0.184211 +vt 0.163265 0.315789 +vt 0.163265 0.315789 +vt 0.244898 0.184211 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.163265 0.947368 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.795918 0.315789 +vt 0.795918 0.315789 +vt 0.755102 0.473684 +vt 0.795918 0.315789 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.795918 0.315789 +vt 0.714286 0.315789 +vt 0.755102 0.315789 +vt 0.714286 0.315789 +vt 0.744898 0.315789 +vt 0.724490 0.315789 +vt 0.755102 0.631579 +vt 0.734694 0.315789 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.683673 0.473684 +vt 0.438776 0.526316 +vt 0.438776 0.473684 +vt 0.683673 0.526316 +vt 0.438776 0.578947 +vt 0.683673 0.578947 +vt 0.438776 0.631579 +vt 0.683673 -0.000000 +vt 0.438776 0.052632 +vt 0.438776 -0.000000 +vt 0.683673 0.052632 +vt 0.438776 0.105263 +vt 0.683673 0.105263 +vt 0.438776 0.157895 +vt 0.683673 0.157895 +vt 0.438776 0.210526 +vt 0.683673 0.210526 +vt 0.438776 0.263158 +vt 0.683673 0.263158 +vt 0.438776 0.315789 +vt 0.683673 0.315789 +vt 0.438776 0.368421 +vt 0.714286 0.256579 +vt 0.683673 0.368421 +vt 0.438776 0.421053 +vt 0.683673 0.421053 +vt 0.408163 0.151316 +vt 0.408163 0.111842 +vt 0.745408 0.011716 +vt 0.805612 0.011716 +vt 0.805612 0.146179 +vt 0.714286 0.164474 +vt 0.714286 0.203947 +vt 0.714286 0.151316 +vt 0.714286 0.098684 +vt 0.714286 0.046053 +vt 0.714286 0.427632 +vt 0.714286 0.467105 +vt 0.714286 0.519737 +vt 0.683673 0.631579 +vt 0.714286 0.585526 +vt 0.714286 0.625000 +vt 0.714286 0.375000 +vt 0.714286 0.414474 +vt 0.714286 0.532895 +vt 0.714286 0.572368 +vt 0.714286 0.322368 +vt 0.714286 0.361842 +vt 0.714286 0.309211 +vt 0.775510 0.159210 +vt 0.827649 0.275658 +vt 0.723372 0.275658 +vt 0.408163 0.059211 +vt 0.408163 0.046053 +vt 0.408163 0.006579 +vt 0.408163 0.467105 +vt 0.408163 0.427632 +vt 0.408163 0.519737 +vt 0.408163 0.480263 +vt 0.408163 0.585526 +vt 0.408163 0.375000 +vt 0.408163 0.532895 +vt 0.408163 0.322368 +vt 0.408163 0.309211 +vt 0.408163 0.269737 +vt 0.408163 0.217105 +vt 0.408163 0.164474 +vt 0.714286 0.217105 +vt 0.827649 0.040131 +vt 0.835715 0.078947 +vt 0.827649 0.117763 +vt 0.775510 0.156579 +vt 0.745408 0.146179 +vt 0.723372 0.117763 +vt 0.715306 0.078947 +vt 0.723372 0.040131 +vt 0.775510 0.001315 +vt 0.714286 0.111842 +vt 0.714286 0.059211 +vt 0.714286 0.006579 +vt 0.714286 0.480263 +vt 0.714286 0.269737 +vt 0.715306 0.236842 +vt 0.723372 0.198026 +vt 0.745408 0.169611 +vt 0.805612 0.169611 +vt 0.827649 0.198026 +vt 0.835715 0.236842 +vt 0.805612 0.304073 +vt 0.775510 0.314474 +vt 0.745408 0.304073 +vt 0.408163 0.098684 +vt 0.408163 0.625000 +vt 0.408163 0.414474 +vt 0.408163 0.572368 +vt 0.408163 0.361842 +vt 0.408163 0.256579 +vt 0.408163 0.203947 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3620 0.0000 -0.9322 +vn -0.3620 -0.4661 -0.8073 +vn -0.3620 0.0000 -0.9322 +vn 0.3620 -0.4661 -0.8073 +vn -0.3620 -0.8073 -0.4661 +vn 0.3620 -0.8073 -0.4661 +vn -0.3620 -0.9322 0.0000 +vn 0.3620 -0.9322 0.0000 +vn -0.3620 -0.8073 0.4661 +vn 0.3620 -0.8073 0.4661 +vn -0.3620 -0.4661 0.8073 +vn 0.3620 -0.4661 0.8073 +vn -0.3620 0.0000 0.9322 +vn 0.3620 0.0000 0.9322 +vn -0.3620 0.4661 0.8073 +vn 0.3620 0.4661 0.8073 +vn -0.3620 0.8073 0.4661 +vn 0.3620 0.8073 0.4661 +vn -0.3620 0.9322 0.0000 +vn 0.3620 0.9322 0.0000 +vn -0.3620 0.8073 -0.4661 +vn 0.9007 0.3762 0.2172 +vn 0.3620 0.8073 -0.4661 +vn -0.3620 0.4661 -0.8073 +vn 0.3620 0.4661 -0.8073 +vn -0.9007 0.0000 0.4343 +vn -0.9007 -0.2172 0.3762 +vn 0.9007 -0.3762 0.2172 +vn 0.9007 -0.3762 -0.2172 +vn 0.9007 0.3762 -0.2172 +vn 0.9007 0.0000 0.4343 +vn 0.9007 0.2172 0.3762 +vn 0.9007 -0.2172 0.3762 +vn 0.9007 0.2172 -0.3762 +vn 0.9007 0.0000 -0.4343 +vn 0.9007 -0.2172 -0.3762 +vn 0.9007 -0.4343 0.0000 +vn 0.9007 0.4343 0.0000 +vn -0.9007 -0.4343 0.0000 +vn -0.9007 0.2172 0.3762 +vn -0.9007 0.2172 -0.3762 +vn -0.9007 -0.3762 0.2172 +vn -0.9007 0.0000 -0.4343 +vn -0.9007 -0.2172 -0.3762 +vn -0.9007 -0.3762 -0.2172 +vn -0.9007 0.3762 -0.2172 +vn -0.9007 0.4343 0.0000 +vn -0.9007 0.3762 0.2172 +s off +f 3219/4436/313 3220/4437/313 3218/4438/313 +f 3225/4439/314 3218/4438/314 3224/4440/314 +f 3221/4441/315 3222/4442/315 3220/4437/315 +f 3223/4443/316 3219/4436/316 3225/4444/316 +f 3218/4438/317 3222/4445/317 3224/4446/317 +f 3214/4447/313 3227/4448/313 3215/4449/313 +f 3215/4449/313 3229/4450/313 3216/4451/313 +f 3216/4451/313 3228/4452/313 3217/4453/313 +f 3217/4453/313 3226/4454/313 3214/4447/313 +f 3232/4455/313 3230/4456/313 3231/4457/313 +f 3240/4458/318 3237/4459/318 3235/4460/318 +f 3241/4461/318 3235/4460/318 3234/4462/318 +f 3238/4463/318 3234/4462/318 3236/4464/318 +f 3239/4465/318 3236/4464/318 3237/4459/318 +f 3216/4466/317 3235/4467/317 3215/4468/317 +f 3227/4448/316 3241/4461/316 3229/4450/316 +f 3228/4469/317 3239/4470/317 3226/4471/317 +f 3215/4472/315 3237/4473/315 3214/4474/315 +f 3214/4475/316 3236/4476/316 3217/4477/316 +f 3229/4478/315 3238/4479/315 3228/4480/315 +f 3226/4481/314 3240/4482/314 3227/4483/314 +f 3217/4484/314 3234/4485/314 3216/4486/314 +f 3244/4487/315 3249/4488/315 3245/4489/315 +f 3243/4490/314 3246/4491/314 3242/4492/314 +f 3245/4493/316 3247/4494/316 3243/4495/316 +f 3242/4496/317 3248/4497/317 3244/4498/317 +f 3261/4499/316 3263/4500/316 3259/4501/316 +f 3255/4502/313 3256/4503/313 3254/4504/313 +f 3253/4505/316 3255/4502/316 3251/4506/316 +f 3250/4507/317 3256/4508/317 3252/4509/317 +f 3252/4510/315 3257/4511/315 3253/4512/315 +f 3251/4513/314 3254/4514/314 3250/4515/314 +f 3258/4516/317 3264/4517/317 3260/4518/317 +f 3260/4519/315 3265/4520/315 3261/4521/315 +f 3259/4522/314 3262/4523/314 3258/4524/314 +f 3261/4499/318 3258/4525/318 3260/4526/318 +f 3272/4527/313 3270/4528/313 3271/4529/313 +f 3269/4530/316 3272/4527/316 3267/4531/316 +f 3266/4532/317 3270/4533/317 3268/4534/317 +f 3268/4534/315 3273/4535/315 3269/4530/315 +f 3267/4531/314 3271/4536/314 3266/4537/314 +f 3276/4538/318 3274/4539/318 3277/4540/318 +f 3303/4541/318 3305/4542/318 3302/4543/318 +f 3306/4544/313 3308/4545/313 3309/4546/313 +f 3309/4547/314 3303/4548/314 3302/4549/314 +f 3308/4545/317 3304/4550/317 3303/4551/317 +f 3307/4552/315 3305/4542/315 3304/4553/315 +f 3306/4554/316 3302/4555/316 3305/4542/316 +f 3313/4556/316 3317/4557/316 3314/4558/316 +f 3312/4559/315 3314/4560/315 3315/4561/315 +f 3311/4562/317 3315/4563/317 3316/4564/317 +f 3310/4565/314 3316/4566/314 3317/4557/314 +f 3313/4567/313 3311/4568/313 3310/4569/313 +f 3316/4570/318 3314/4571/318 3317/4557/318 +f 3319/4572/318 3321/4573/318 3318/4574/318 +f 3322/4575/313 3324/4576/313 3325/4577/313 +f 3325/4577/314 3319/4578/314 3318/4579/314 +f 3324/4580/317 3320/4581/317 3319/4582/317 +f 3323/4583/315 3321/4584/315 3320/4581/315 +f 3322/4585/316 3318/4586/316 3321/4587/316 +f 3329/4588/316 3333/4589/316 3330/4590/316 +f 3328/4591/315 3330/4592/315 3331/4593/315 +f 3327/4594/317 3331/4595/317 3332/4596/317 +f 3326/4597/314 3332/4596/314 3333/4598/314 +f 3329/4588/313 3327/4599/313 3326/4600/313 +f 3332/4596/318 3330/4601/318 3333/4602/318 +f 3334/4603/313 3336/4604/313 3337/4605/313 +f 3337/4606/314 3276/4538/314 3277/4607/314 +f 3336/4608/317 3275/4609/317 3276/4538/317 +f 3335/4610/315 3274/4611/315 3275/4612/315 +f 3334/4603/316 3277/4613/316 3274/4614/316 +f 3341/4615/316 3345/4616/316 3342/4617/316 +f 3340/4618/315 3342/4619/315 3343/4620/315 +f 3339/4621/317 3343/4620/317 3344/4622/317 +f 3338/4623/314 3344/4624/314 3345/4625/314 +f 3341/4626/313 3339/4627/313 3338/4623/313 +f 3344/4628/318 3342/4629/318 3345/4630/318 +f 3347/4631/318 3349/4632/318 3346/4633/318 +f 3350/4634/313 3352/4635/313 3353/4636/313 +f 3353/4637/314 3347/4638/314 3346/4633/314 +f 3352/4639/317 3348/4640/317 3347/4641/317 +f 3351/4642/315 3349/4643/315 3348/4644/315 +f 3350/4645/316 3346/4633/316 3349/4646/316 +f 3357/4647/316 3361/4648/316 3358/4649/316 +f 3356/4650/315 3358/4649/315 3359/4651/315 +f 3355/4652/317 3359/4653/317 3360/4654/317 +f 3354/4655/314 3360/4656/314 3361/4657/314 +f 3357/4658/313 3355/4652/313 3354/4659/313 +f 3360/4660/318 3358/4649/318 3361/4661/318 +f 3363/4662/318 3364/4663/318 3362/4664/318 +f 3365/4665/317 3368/4666/317 3364/4663/317 +f 3362/4664/316 3367/4667/316 3363/4662/316 +f 3366/4668/313 3369/4669/313 3367/4667/313 +f 3371/4670/318 3372/4671/318 3370/4672/318 +f 3373/4673/317 3376/4674/317 3372/4671/317 +f 3370/4672/316 3375/4675/316 3371/4670/316 +f 3374/4676/313 3377/4677/313 3375/4678/313 +f 3379/4679/318 3380/4680/318 3378/4681/318 +f 3381/4682/317 3384/4683/317 3380/4684/317 +f 3378/4681/316 3383/4685/316 3379/4679/316 +f 3382/4686/313 3385/4687/313 3383/4685/313 +f 3387/4688/318 3388/4689/318 3386/4690/318 +f 3389/4691/317 3392/4692/317 3388/4689/317 +f 3386/4693/316 3391/4694/316 3387/4695/316 +f 3390/4696/313 3393/4697/313 3391/4694/313 +f 3395/4698/315 3396/4699/315 3394/4700/315 +f 3397/4701/317 3400/4702/317 3396/4699/317 +f 3394/4700/316 3399/4703/316 3395/4698/316 +f 3398/4704/314 3401/4705/314 3399/4703/314 +f 3403/4706/315 3404/4707/315 3402/4708/315 +f 3405/4709/317 3408/4710/317 3404/4707/317 +f 3402/4708/316 3407/4711/316 3403/4706/316 +f 3406/4712/314 3409/4713/314 3407/4714/314 +f 3411/4715/315 3412/4716/315 3410/4717/315 +f 3413/4718/317 3416/4719/317 3412/4720/317 +f 3410/4717/316 3415/4721/316 3411/4715/316 +f 3414/4722/314 3417/4723/314 3415/4721/314 +f 3419/4724/315 3420/4725/315 3418/4726/315 +f 3421/4727/317 3424/4728/317 3420/4725/317 +f 3418/4729/316 3423/4730/316 3419/4731/316 +f 3422/4732/314 3425/4733/314 3423/4730/314 +f 3429/4734/318 3426/4735/318 3427/4736/318 +f 3433/4737/315 3428/4738/315 3429/4734/315 +f 3430/4739/314 3427/4736/314 3426/4735/314 +f 3430/4739/313 3433/4740/313 3431/4741/313 +f 3437/4742/318 3434/4743/318 3435/4744/318 +f 3441/4745/315 3436/4746/315 3437/4747/315 +f 3438/4748/314 3435/4744/314 3434/4743/314 +f 3438/4748/313 3441/4745/313 3439/4749/313 +f 3445/4750/318 3442/4751/318 3443/4752/318 +f 3449/4753/315 3444/4754/315 3445/4750/315 +f 3446/4755/314 3443/4752/314 3442/4751/314 +f 3446/4756/313 3449/4753/313 3447/4757/313 +f 3453/4758/318 3450/4759/318 3451/4760/318 +f 3457/4761/315 3452/4762/315 3453/4758/315 +f 3454/4763/314 3451/4764/314 3450/4765/314 +f 3454/4763/313 3457/4761/313 3455/4766/313 +f 3484/4767/315 3489/4768/315 3485/4769/315 +f 3483/4770/314 3486/4771/314 3482/4772/314 +f 3485/4773/316 3487/4774/316 3483/4775/316 +f 3482/4776/317 3488/4777/317 3484/4778/317 +f 3501/4779/316 3503/4780/316 3499/4781/316 +f 3495/4782/313 3496/4783/313 3494/4784/313 +f 3493/4785/316 3495/4782/316 3491/4786/316 +f 3490/4787/317 3496/4788/317 3492/4789/317 +f 3492/4790/315 3497/4791/315 3493/4792/315 +f 3491/4793/314 3494/4794/314 3490/4795/314 +f 3498/4796/317 3504/4797/317 3500/4798/317 +f 3500/4799/315 3505/4800/315 3501/4801/315 +f 3499/4802/314 3502/4803/314 3498/4804/314 +f 3501/4779/318 3498/4805/318 3500/4806/318 +f 3508/4807/315 3513/4808/315 3509/4809/315 +f 3507/4810/314 3510/4811/314 3506/4812/314 +f 3509/4813/316 3511/4814/316 3507/4815/316 +f 3506/4816/317 3512/4817/317 3508/4818/317 +f 3525/4819/316 3527/4820/316 3523/4821/316 +f 3519/4822/313 3520/4823/313 3518/4824/313 +f 3517/4825/316 3519/4822/316 3515/4826/316 +f 3514/4827/317 3520/4828/317 3516/4829/317 +f 3516/4830/315 3521/4831/315 3517/4832/315 +f 3515/4833/314 3518/4834/314 3514/4835/314 +f 3522/4836/317 3528/4837/317 3524/4838/317 +f 3524/4839/315 3529/4840/315 3525/4841/315 +f 3523/4842/314 3526/4843/314 3522/4844/314 +f 3525/4819/318 3522/4845/318 3524/4846/318 +f 3532/4847/315 3537/4848/315 3533/4849/315 +f 3531/4850/314 3534/4851/314 3530/4852/314 +f 3533/4853/316 3535/4854/316 3531/4855/316 +f 3530/4856/317 3536/4857/317 3532/4858/317 +f 3549/4859/316 3551/4860/316 3547/4861/316 +f 3543/4862/313 3544/4863/313 3542/4864/313 +f 3541/4865/316 3543/4862/316 3539/4866/316 +f 3538/4867/317 3544/4868/317 3540/4869/317 +f 3540/4870/315 3545/4871/315 3541/4872/315 +f 3539/4873/314 3542/4874/314 3538/4875/314 +f 3546/4876/317 3552/4877/317 3548/4878/317 +f 3548/4879/315 3553/4880/315 3549/4881/315 +f 3547/4882/314 3550/4883/314 3546/4884/314 +f 3549/4859/318 3546/4885/318 3548/4886/318 +f 3219/4436/313 3221/4441/313 3220/4437/313 +f 3225/4439/314 3219/4436/314 3218/4438/314 +f 3221/4441/315 3223/4887/315 3222/4442/315 +f 3223/4443/316 3221/4441/316 3219/4436/316 +f 3218/4438/317 3220/4437/317 3222/4445/317 +f 3214/4447/313 3226/4454/313 3227/4448/313 +f 3215/4449/313 3227/4448/313 3229/4450/313 +f 3216/4451/313 3229/4450/313 3228/4452/313 +f 3217/4453/313 3228/4452/313 3226/4454/313 +f 3232/4455/313 3233/4888/313 3230/4456/313 +f 3240/4458/318 3239/4465/318 3237/4459/318 +f 3241/4461/318 3240/4458/318 3235/4460/318 +f 3238/4463/318 3241/4461/318 3234/4462/318 +f 3239/4465/318 3238/4463/318 3236/4464/318 +f 3216/4466/317 3234/4889/317 3235/4467/317 +f 3227/4448/316 3240/4458/316 3241/4461/316 +f 3228/4469/317 3238/4890/317 3239/4470/317 +f 3215/4472/315 3235/4891/315 3237/4473/315 +f 3214/4475/316 3237/4892/316 3236/4476/316 +f 3229/4478/315 3241/4893/315 3238/4479/315 +f 3226/4481/314 3239/4894/314 3240/4482/314 +f 3217/4484/314 3236/4895/314 3234/4485/314 +f 3244/4487/315 3248/4896/315 3249/4488/315 +f 3243/4490/314 3247/4897/314 3246/4491/314 +f 3245/4493/316 3249/4898/316 3247/4494/316 +f 3242/4496/317 3246/4899/317 3248/4497/317 +f 3261/4499/316 3265/4900/316 3263/4500/316 +f 3255/4502/313 3257/4901/313 3256/4503/313 +f 3253/4505/316 3257/4901/316 3255/4502/316 +f 3250/4507/317 3254/4902/317 3256/4508/317 +f 3252/4510/315 3256/4903/315 3257/4511/315 +f 3251/4513/314 3255/4904/314 3254/4514/314 +f 3258/4516/317 3262/4905/317 3264/4517/317 +f 3260/4519/315 3264/4906/315 3265/4520/315 +f 3259/4522/314 3263/4907/314 3262/4523/314 +f 3261/4499/318 3259/4501/318 3258/4525/318 +f 3272/4527/313 3273/4535/313 3270/4528/313 +f 3269/4530/316 3273/4535/316 3272/4527/316 +f 3266/4532/317 3271/4908/317 3270/4533/317 +f 3268/4534/315 3270/4533/315 3273/4535/315 +f 3267/4531/314 3272/4527/314 3271/4536/314 +f 3276/4538/318 3275/4909/318 3274/4539/318 +f 3303/4541/318 3304/4910/318 3305/4542/318 +f 3306/4544/313 3307/4911/313 3308/4545/313 +f 3309/4547/314 3308/4545/314 3303/4548/314 +f 3308/4545/317 3307/4912/317 3304/4550/317 +f 3307/4552/315 3306/4913/315 3305/4542/315 +f 3306/4554/316 3309/4914/316 3302/4555/316 +f 3313/4556/316 3310/4915/316 3317/4557/316 +f 3312/4559/315 3313/4916/315 3314/4560/315 +f 3311/4562/317 3312/4559/317 3315/4563/317 +f 3310/4565/314 3311/4917/314 3316/4566/314 +f 3313/4567/313 3312/4559/313 3311/4568/313 +f 3316/4570/318 3315/4918/318 3314/4571/318 +f 3319/4572/318 3320/4581/318 3321/4573/318 +f 3322/4575/313 3323/4919/313 3324/4576/313 +f 3325/4577/314 3324/4920/314 3319/4578/314 +f 3324/4580/317 3323/4921/317 3320/4581/317 +f 3323/4583/315 3322/4922/315 3321/4584/315 +f 3322/4585/316 3325/4577/316 3318/4586/316 +f 3329/4588/316 3326/4923/316 3333/4589/316 +f 3328/4591/315 3329/4588/315 3330/4592/315 +f 3327/4594/317 3328/4924/317 3331/4595/317 +f 3326/4597/314 3327/4925/314 3332/4596/314 +f 3329/4588/313 3328/4926/313 3327/4599/313 +f 3332/4596/318 3331/4927/318 3330/4601/318 +f 3334/4603/313 3335/4928/313 3336/4604/313 +f 3337/4606/314 3336/4929/314 3276/4538/314 +f 3336/4608/317 3335/4930/317 3275/4609/317 +f 3335/4610/315 3334/4603/315 3274/4611/315 +f 3334/4603/316 3337/4931/316 3277/4613/316 +f 3341/4615/316 3338/4623/316 3345/4616/316 +f 3340/4618/315 3341/4932/315 3342/4619/315 +f 3339/4621/317 3340/4933/317 3343/4620/317 +f 3338/4623/314 3339/4934/314 3344/4624/314 +f 3341/4626/313 3340/4935/313 3339/4627/313 +f 3344/4628/318 3343/4620/318 3342/4629/318 +f 3347/4631/318 3348/4936/318 3349/4632/318 +f 3350/4634/313 3351/4642/313 3352/4635/313 +f 3353/4637/314 3352/4937/314 3347/4638/314 +f 3352/4639/317 3351/4642/317 3348/4640/317 +f 3351/4642/315 3350/4938/315 3349/4643/315 +f 3350/4645/316 3353/4939/316 3346/4633/316 +f 3357/4647/316 3354/4940/316 3361/4648/316 +f 3356/4650/315 3357/4941/315 3358/4649/315 +f 3355/4652/317 3356/4942/317 3359/4653/317 +f 3354/4655/314 3355/4652/314 3360/4656/314 +f 3357/4658/313 3356/4943/313 3355/4652/313 +f 3360/4660/318 3359/4944/318 3358/4649/318 +f 3363/4662/318 3365/4665/318 3364/4663/318 +f 3365/4665/317 3369/4945/317 3368/4666/317 +f 3362/4664/316 3366/4668/316 3367/4667/316 +f 3366/4668/313 3368/4946/313 3369/4669/313 +f 3371/4670/318 3373/4673/318 3372/4671/318 +f 3373/4673/317 3377/4677/317 3376/4674/317 +f 3370/4672/316 3374/4947/316 3375/4675/316 +f 3374/4676/313 3376/4674/313 3377/4677/313 +f 3379/4679/318 3381/4948/318 3380/4680/318 +f 3381/4682/317 3385/4687/317 3384/4683/317 +f 3378/4681/316 3382/4686/316 3383/4685/316 +f 3382/4686/313 3384/4683/313 3385/4687/313 +f 3387/4688/318 3389/4691/318 3388/4689/318 +f 3389/4691/317 3393/4697/317 3392/4692/317 +f 3386/4693/316 3390/4696/316 3391/4694/316 +f 3390/4696/313 3392/4692/313 3393/4697/313 +f 3395/4698/315 3397/4701/315 3396/4699/315 +f 3397/4701/317 3401/4949/317 3400/4702/317 +f 3394/4700/316 3398/4704/316 3399/4703/316 +f 3398/4704/314 3400/4950/314 3401/4705/314 +f 3403/4706/315 3405/4709/315 3404/4707/315 +f 3405/4709/317 3409/4713/317 3408/4710/317 +f 3402/4708/316 3406/4951/316 3407/4711/316 +f 3406/4712/314 3408/4710/314 3409/4713/314 +f 3411/4715/315 3413/4952/315 3412/4716/315 +f 3413/4718/317 3417/4723/317 3416/4719/317 +f 3410/4717/316 3414/4722/316 3415/4721/316 +f 3414/4722/314 3416/4719/314 3417/4723/314 +f 3419/4724/315 3421/4727/315 3420/4725/315 +f 3421/4727/317 3425/4733/317 3424/4728/317 +f 3418/4729/316 3422/4732/316 3423/4730/316 +f 3422/4732/314 3424/4728/314 3425/4733/314 +f 3429/4734/318 3428/4738/318 3426/4735/318 +f 3433/4737/315 3432/4953/315 3428/4738/315 +f 3430/4739/314 3431/4741/314 3427/4736/314 +f 3430/4739/313 3432/4954/313 3433/4740/313 +f 3437/4742/318 3436/4955/318 3434/4743/318 +f 3441/4745/315 3440/4956/315 3436/4746/315 +f 3438/4748/314 3439/4749/314 3435/4744/314 +f 3438/4748/313 3440/4956/313 3441/4745/313 +f 3445/4750/318 3444/4754/318 3442/4751/318 +f 3449/4753/315 3448/4957/315 3444/4754/315 +f 3446/4755/314 3447/4958/314 3443/4752/314 +f 3446/4756/313 3448/4957/313 3449/4753/313 +f 3453/4758/318 3452/4762/318 3450/4759/318 +f 3457/4761/315 3456/4959/315 3452/4762/315 +f 3454/4763/314 3455/4766/314 3451/4764/314 +f 3454/4763/313 3456/4959/313 3457/4761/313 +f 3484/4767/315 3488/4960/315 3489/4768/315 +f 3483/4770/314 3487/4961/314 3486/4771/314 +f 3485/4773/316 3489/4962/316 3487/4774/316 +f 3482/4776/317 3486/4963/317 3488/4777/317 +f 3501/4779/316 3505/4964/316 3503/4780/316 +f 3495/4782/313 3497/4965/313 3496/4783/313 +f 3493/4785/316 3497/4965/316 3495/4782/316 +f 3490/4787/317 3494/4966/317 3496/4788/317 +f 3492/4790/315 3496/4967/315 3497/4791/315 +f 3491/4793/314 3495/4968/314 3494/4794/314 +f 3498/4796/317 3502/4969/317 3504/4797/317 +f 3500/4799/315 3504/4970/315 3505/4800/315 +f 3499/4802/314 3503/4971/314 3502/4803/314 +f 3501/4779/318 3499/4781/318 3498/4805/318 +f 3508/4807/315 3512/4972/315 3513/4808/315 +f 3507/4810/314 3511/4973/314 3510/4811/314 +f 3509/4813/316 3513/4974/316 3511/4814/316 +f 3506/4816/317 3510/4975/317 3512/4817/317 +f 3525/4819/316 3529/4976/316 3527/4820/316 +f 3519/4822/313 3521/4977/313 3520/4823/313 +f 3517/4825/316 3521/4977/316 3519/4822/316 +f 3514/4827/317 3518/4978/317 3520/4828/317 +f 3516/4830/315 3520/4979/315 3521/4831/315 +f 3515/4833/314 3519/4980/314 3518/4834/314 +f 3522/4836/317 3526/4981/317 3528/4837/317 +f 3524/4839/315 3528/4982/315 3529/4840/315 +f 3523/4842/314 3527/4983/314 3526/4843/314 +f 3525/4819/318 3523/4821/318 3522/4845/318 +f 3532/4847/315 3536/4984/315 3537/4848/315 +f 3531/4850/314 3535/4985/314 3534/4851/314 +f 3533/4853/316 3537/4986/316 3535/4854/316 +f 3530/4856/317 3534/4987/317 3536/4857/317 +f 3549/4859/316 3553/4988/316 3551/4860/316 +f 3543/4862/313 3545/4989/313 3544/4863/313 +f 3541/4865/316 3545/4989/316 3543/4862/316 +f 3538/4867/317 3542/4990/317 3544/4868/317 +f 3540/4870/315 3544/4991/315 3545/4871/315 +f 3539/4873/314 3543/4992/314 3542/4874/314 +f 3546/4876/317 3550/4993/317 3552/4877/317 +f 3548/4879/315 3552/4994/315 3553/4880/315 +f 3547/4882/314 3551/4995/314 3550/4883/314 +f 3549/4859/318 3547/4861/318 3546/4885/318 +s 1 +f 3279/4996/319 3280/4997/320 3278/4998/321 +f 3281/4999/322 3282/5000/323 3280/4997/320 +f 3283/5001/324 3284/5002/325 3282/5000/323 +f 3285/5003/326 3286/5004/327 3284/5005/325 +f 3287/5006/328 3288/5007/329 3286/5004/327 +f 3289/5008/330 3290/5009/331 3288/5007/329 +f 3291/5010/332 3292/5011/333 3290/5009/331 +f 3293/5012/334 3294/5013/335 3292/5011/333 +f 3295/5014/336 3296/5015/337 3294/5013/335 +f 3297/5016/338 3298/5017/339 3296/5015/337 +f 3293/5012/334 3466/5018/340 3295/5014/336 +f 3299/5019/341 3300/5020/342 3298/5017/339 +f 3301/5021/343 3278/4998/321 3300/5020/342 +f 3288/5007/329 3476/5022/344 3475/5023/345 +f 3462/5024/346 3460/5025/347 3468/5026/348 +f 3293/5012/334 3464/5027/349 3465/5028/350 +f 3289/5008/330 3464/5029/349 3291/5010/332 +f 3287/5006/328 3463/5030/351 3289/5008/330 +f 3285/5003/326 3462/5031/346 3287/5006/328 +f 3279/4996/319 3469/5032/352 3459/5033/353 +f 3279/4996/319 3458/5034/354 3281/4999/322 +f 3285/5035/326 3460/5036/347 3461/5037/355 +f 3301/5021/343 3468/5038/348 3469/5039/352 +f 3283/5001/324 3458/5040/354 3460/5041/347 +f 3299/5019/341 3467/5042/356 3468/5043/348 +f 3295/5014/336 3467/5044/356 3297/5016/338 +f 3473/5045/357 3477/5046/358 3481/5047/359 +f 3288/5007/329 3474/5048/360 3286/5004/327 +f 3284/5005/325 3474/5049/360 3473/5050/357 +f 3300/5020/342 3470/5051/361 3481/5052/359 +f 3278/4998/321 3471/5053/362 3470/5054/361 +f 3284/5002/325 3472/5055/363 3282/5000/323 +f 3300/5020/342 3480/5056/364 3298/5017/339 +f 3282/5000/323 3471/5057/362 3280/4997/320 +f 3298/5017/339 3479/5058/365 3296/5015/337 +f 3294/5013/335 3479/5059/365 3478/5060/366 +f 3294/5013/335 3477/5061/358 3292/5011/333 +f 3292/5011/333 3476/5062/344 3290/5009/331 +f 3279/4996/319 3281/4999/322 3280/4997/320 +f 3281/4999/322 3283/5001/324 3282/5000/323 +f 3283/5001/324 3285/5035/326 3284/5002/325 +f 3285/5003/326 3287/5006/328 3286/5004/327 +f 3287/5006/328 3289/5008/330 3288/5007/329 +f 3289/5008/330 3291/5010/332 3290/5009/331 +f 3291/5010/332 3293/5012/334 3292/5011/333 +f 3293/5012/334 3295/5014/336 3294/5013/335 +f 3295/5014/336 3297/5016/338 3296/5015/337 +f 3297/5016/338 3299/5019/341 3298/5017/339 +f 3293/5012/334 3465/5063/350 3466/5018/340 +f 3299/5019/341 3301/5021/343 3300/5020/342 +f 3301/5021/343 3279/4996/319 3278/4998/321 +f 3288/5007/329 3290/5009/331 3476/5022/344 +f 3460/5025/347 3458/5064/354 3459/5065/353 +f 3459/5065/353 3469/5066/352 3460/5025/347 +f 3469/5066/352 3468/5026/348 3460/5025/347 +f 3468/5026/348 3467/5067/356 3466/5068/340 +f 3466/5068/340 3465/5069/350 3468/5026/348 +f 3465/5069/350 3464/5070/349 3468/5026/348 +f 3464/5070/349 3463/5071/351 3462/5024/346 +f 3462/5024/346 3461/5072/355 3460/5025/347 +f 3464/5070/349 3462/5024/346 3468/5026/348 +f 3293/5012/334 3291/5010/332 3464/5027/349 +f 3289/5008/330 3463/5073/351 3464/5029/349 +f 3287/5006/328 3462/5074/346 3463/5030/351 +f 3285/5003/326 3461/5075/355 3462/5031/346 +f 3279/4996/319 3301/5021/343 3469/5032/352 +f 3279/4996/319 3459/5076/353 3458/5034/354 +f 3285/5035/326 3283/5001/324 3460/5036/347 +f 3301/5021/343 3299/5019/341 3468/5038/348 +f 3283/5001/324 3281/4999/322 3458/5040/354 +f 3299/5019/341 3297/5016/338 3467/5042/356 +f 3295/5014/336 3466/5077/340 3467/5044/356 +f 3481/5047/359 3470/5078/361 3471/5079/362 +f 3471/5079/362 3472/5080/363 3481/5047/359 +f 3472/5080/363 3473/5045/357 3481/5047/359 +f 3473/5045/357 3474/5081/360 3475/5082/345 +f 3475/5082/345 3476/5083/344 3477/5046/358 +f 3477/5046/358 3478/5084/366 3479/5085/365 +f 3479/5085/365 3480/5086/364 3477/5046/358 +f 3480/5086/364 3481/5047/359 3477/5046/358 +f 3473/5045/357 3475/5082/345 3477/5046/358 +f 3288/5007/329 3475/5087/345 3474/5048/360 +f 3284/5005/325 3286/5004/327 3474/5049/360 +f 3300/5020/342 3278/4998/321 3470/5051/361 +f 3278/4998/321 3280/4997/320 3471/5053/362 +f 3284/5002/325 3473/5088/357 3472/5055/363 +f 3300/5020/342 3481/5089/359 3480/5056/364 +f 3282/5000/323 3472/5090/363 3471/5057/362 +f 3298/5017/339 3480/5091/364 3479/5058/365 +f 3294/5013/335 3296/5015/337 3479/5059/365 +f 3294/5013/335 3478/5092/366 3477/5061/358 +f 3292/5011/333 3477/5093/358 3476/5062/344 +o V2_Rope +v 0.000000 9.000000 1.750000 +v 0.000000 8.875000 1.750000 +v 0.000000 9.000000 0.000000 +v 0.000000 8.875000 0.000000 +v 0.000000 8.875000 1.375000 +v 0.000000 8.750000 1.375000 +v 0.000000 8.875000 0.375000 +v 0.000000 8.750000 0.375000 +v 0.312500 2.062500 1.937500 +v 0.268306 2.062500 1.955806 +v 0.250000 2.062500 2.000000 +v 0.268306 2.062500 2.044194 +v 0.312500 2.062500 2.062500 +v 0.356694 2.062500 2.044194 +v 0.375000 2.062500 2.000000 +v 0.356694 2.062500 1.955806 +v 0.330806 2.018306 1.937500 +v 0.299556 1.987056 1.955806 +v 0.286612 1.974112 2.000000 +v 0.299556 1.987056 2.044194 +v 0.330806 2.018306 2.062500 +v 0.362056 2.049556 2.044194 +v 0.362056 2.049556 1.955806 +v 0.375000 2.000000 1.937500 +v 0.375000 1.955806 1.955806 +v 0.375000 1.937500 2.000000 +v 0.375000 1.955806 2.044194 +v 0.375000 2.000000 2.062500 +v 0.375000 2.044194 2.044194 +v 0.375000 2.044194 1.955806 +v 0.500000 2.062500 2.000000 +v 0.500000 2.000000 1.937500 +v 0.500000 1.955806 1.955806 +v 0.500000 1.937500 2.000000 +v 0.500000 1.955806 2.044194 +v 0.500000 2.000000 2.062500 +v 0.500000 2.044194 2.044194 +v 0.500000 2.044194 1.955806 +v 0.312500 5.312500 1.937500 +v 0.268306 5.312500 1.955806 +v 0.250000 5.312500 2.000000 +v 0.268306 5.312500 2.044194 +v 0.312500 5.312500 2.062500 +v 0.356694 5.312500 2.044194 +v 0.375000 5.312500 2.000000 +v 0.356694 5.312500 1.955806 +v 0.312500 4.625000 2.000000 +v 0.268306 4.606694 2.000000 +v 0.250000 4.562500 2.000000 +v 0.268306 4.518306 2.000000 +v 0.312500 4.500000 2.000000 +v 0.356694 4.518306 2.000000 +v 0.375000 4.562500 2.000000 +v 0.356694 4.606694 2.000000 +v 0.312500 4.625000 0.250000 +v 0.268306 4.606694 0.250000 +v 0.250000 4.562500 0.250000 +v 0.268306 4.518306 0.250000 +v 0.312500 4.500000 0.250000 +v 0.356694 4.518306 0.250000 +v 0.375000 4.562500 0.250000 +v 0.356694 4.606694 0.250000 +v 0.268306 5.325444 1.950444 +v 0.250000 5.356694 1.981694 +v 0.268306 5.387944 2.012944 +v 0.312500 5.400888 2.025888 +v 0.356694 5.387944 2.012944 +v 0.375000 5.356694 1.981694 +v 0.356694 5.325444 1.950444 +v 0.268306 5.330806 1.937500 +v 0.250000 5.375000 1.937500 +v 0.268306 5.419194 1.937500 +v 0.312500 5.437500 1.937500 +v 0.356694 5.419194 1.937500 +v 0.375000 5.375000 1.937500 +v 0.356694 5.330806 1.937500 +v 0.312500 5.312500 0.187500 +v 0.268306 5.330806 0.187500 +v 0.250000 5.375000 0.187500 +v 0.268306 5.419194 0.187500 +v 0.312500 5.437500 0.187500 +v 0.356694 5.419194 0.187500 +v 0.375000 5.375000 0.187500 +v 0.356694 5.330806 0.187500 +v 0.000000 9.000000 1.750000 +v 0.000000 8.875000 1.750000 +v 0.000000 9.000000 0.000000 +v 0.000000 8.875000 0.000000 +v 0.000000 8.875000 1.375000 +v 0.000000 8.750000 1.375000 +v 0.000000 8.875000 0.375000 +v 0.000000 8.750000 0.375000 +vt 0.408163 0.631579 +vt 0.438776 0.644737 +vt 0.408163 0.644737 +vt 0.520408 0.644737 +vt 0.551020 0.631579 +vt 0.551020 0.644737 +vt 0.438776 0.631579 +vt 0.408163 0.631579 +vt 0.438776 0.644737 +vt 0.438776 0.631579 +vt 0.551020 0.631579 +vt 0.520408 0.644737 +vt 0.551020 0.644737 +vt 0.520408 0.631579 +vt 0.408163 0.644737 +vt 0.520408 0.631579 +vt 0.816327 0.342105 +vt 0.821429 0.335526 +vt 0.821429 0.342105 +vt 0.806122 0.342105 +vt 0.811224 0.335526 +vt 0.811224 0.342105 +vt 0.795918 0.342105 +vt 0.801020 0.335526 +vt 0.801020 0.342105 +vt 0.836735 0.342105 +vt 0.831633 0.335526 +vt 0.836735 0.335526 +vt 0.816327 0.335526 +vt 0.806122 0.335526 +vt 0.836735 0.328947 +vt 0.816327 0.328947 +vt 0.801020 0.328947 +vt 0.806122 0.328947 +vt 0.821429 0.328947 +vt 0.811224 0.328947 +vt 0.795918 0.328947 +vt 0.826531 0.335526 +vt 0.831633 0.342105 +vt 0.831633 0.328947 +vt 0.826531 0.315789 +vt 0.831633 0.315789 +vt 0.836735 0.315789 +vt 0.826531 0.328947 +vt 0.816327 0.315789 +vt 0.801020 0.315789 +vt 0.806122 0.315789 +vt 0.821429 0.315789 +vt 0.811224 0.315789 +vt 0.826531 0.684211 +vt 0.826531 0.342105 +vt 0.816327 0.684211 +vt 0.806122 0.684211 +vt 0.795918 0.684211 +vt 0.831633 0.684211 +vt 0.821429 0.684211 +vt 0.811224 0.684211 +vt 0.801020 0.684211 +vt 0.806122 0.828947 +vt 0.801020 0.697368 +vt 0.806122 0.697368 +vt 0.816327 0.828947 +vt 0.811224 0.697368 +vt 0.816327 0.697368 +vt 0.821429 0.828947 +vt 0.821429 0.697368 +vt 0.831633 0.828947 +vt 0.826531 0.697368 +vt 0.831633 0.697368 +vt 0.801020 0.828947 +vt 0.795918 0.697368 +vt 0.811224 0.828947 +vt 0.826531 0.828947 +vt 0.836735 0.828947 +vt 0.836735 0.697368 +vt 0.821429 0.690789 +vt 0.811224 0.690789 +vt 0.801020 0.690789 +vt 0.831633 0.690789 +vt 0.826531 0.690789 +vt 0.816327 0.690789 +vt 0.806122 0.690789 +vt 0.806122 0.697368 +vt 0.801020 0.697368 +vt 0.826531 0.697368 +vt 0.816327 0.697368 +vt 0.811224 0.697368 +vt 0.821429 0.697368 +vt 0.795918 0.690789 +vt 0.836735 0.690789 +vt 0.831633 0.697368 +vt 0.836735 0.828947 +vt 0.831633 0.828947 +vt 0.826531 0.828947 +vt 0.795918 0.828947 +vt 0.795918 0.697368 +vt 0.816327 0.828947 +vt 0.806122 0.828947 +vt 0.821429 0.828947 +vt 0.811224 0.828947 +vt 0.801020 0.828947 +vt 0.795918 0.335526 +vt 0.795918 0.315789 +vt 0.836735 0.684211 +vt 0.795918 0.828947 +vt 0.836735 0.697368 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0473 -0.0196 0.9987 +vn 0.4617 0.4617 0.7573 +vn 0.6737 0.1363 0.7263 +vn -0.9824 -0.1866 0.0000 +vn -0.5293 -0.5293 0.6630 +vn -0.7194 -0.1447 0.6794 +vn -0.0473 -0.0196 -0.9987 +vn -0.5293 -0.5293 -0.6630 +vn -0.7194 -0.1447 -0.6794 +vn 0.4617 0.4617 -0.7573 +vn -0.0670 -0.0670 -0.9955 +vn -0.0670 -0.0670 0.9955 +vn -0.7071 -0.7071 0.0000 +vn -0.0196 -0.0473 -0.9987 +vn -0.0196 -0.0473 0.9987 +vn -0.1447 -0.7194 -0.6794 +vn -0.1866 -0.9824 0.0000 +vn 0.1363 0.6737 0.7263 +vn -0.1447 -0.7194 0.6794 +vn 0.7071 0.7071 0.0000 +vn 0.6737 0.1363 -0.7263 +vn 0.1363 0.6737 -0.7263 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.9987 0.0196 0.0473 +vn 0.0000 0.1866 0.9824 +vn -0.9987 0.0196 0.0473 +vn 0.7263 -0.1363 -0.6737 +vn 0.6794 0.1447 0.7194 +vn -0.6794 0.1447 0.7194 +vn -0.7263 -0.1363 -0.6737 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.6630 0.5293 0.5293 +vn -0.6630 0.5293 0.5293 +vn -0.7573 -0.4617 -0.4617 +vn 0.7573 -0.4617 -0.4617 +vn 0.9955 0.0670 0.0670 +vn -0.9955 0.0670 0.0670 +vn -0.9987 0.0473 0.0196 +vn -0.7263 -0.6737 -0.1363 +vn 0.9987 0.0473 0.0196 +vn 0.0000 0.9824 0.1866 +vn -0.6794 0.7194 0.1447 +vn 0.6794 0.7194 0.1447 +vn 0.7263 -0.6737 -0.1363 +s off +f 3555/5094/367 3558/5095/367 3554/5096/367 +f 3560/5097/367 3557/5098/367 3556/5099/367 +f 3559/5100/367 3560/5097/367 3558/5095/367 +f 3639/5101/368 3642/5102/368 3643/5103/368 +f 3641/5104/368 3644/5105/368 3640/5106/368 +f 3644/5105/368 3643/5103/368 3642/5102/368 +f 3555/5094/367 3559/5100/367 3558/5095/367 +f 3560/5097/367 3561/5107/367 3557/5098/367 +f 3559/5100/367 3561/5107/367 3560/5097/367 +f 3639/5101/368 3638/5108/368 3642/5102/368 +f 3641/5104/368 3645/5109/368 3644/5105/368 +f 3644/5105/368 3645/5109/368 3643/5103/368 +s 1 +f 3566/5110/369 3575/5111/370 3567/5112/371 +f 3564/5113/372 3573/5114/373 3565/5115/374 +f 3562/5116/375 3571/5117/376 3563/5118/377 +f 3562/5119/375 3576/5120/378 3570/5121/379 +f 3566/5110/369 3573/5114/373 3574/5122/380 +f 3563/5118/377 3572/5123/381 3564/5113/372 +f 3576/5120/378 3577/5124/382 3570/5121/379 +f 3573/5114/373 3581/5125/383 3574/5122/380 +f 3572/5123/381 3578/5126/384 3579/5127/385 +f 3575/5111/370 3581/5125/383 3582/5128/386 +f 3572/5123/381 3580/5129/387 3573/5114/373 +f 3571/5117/376 3577/5130/382 3578/5126/384 +f 3567/5112/371 3575/5111/370 3568/5131/388 +f 3575/5111/370 3582/5128/386 3568/5131/388 +f 3568/5131/388 3576/5120/378 3569/5132/389 +f 3576/5120/378 3568/5131/388 3583/5133/390 +f 3583/5133/390 3584/5134/391 3591/5135/392 +f 3583/5133/390 3585/5136/393 3577/5124/382 +f 3582/5128/386 3584/5134/391 3568/5137/388 +f 3580/5129/387 3589/5138/394 3581/5125/383 +f 3579/5127/385 3586/5139/395 3587/5140/396 +f 3581/5125/383 3590/5141/397 3582/5128/386 +f 3579/5127/385 3588/5142/398 3580/5129/387 +f 3577/5130/382 3586/5139/395 3578/5126/384 +f 3569/5132/389 3598/5143/399 3568/5144/388 +f 3567/5112/371 3596/5145/400 3566/5110/369 +f 3565/5115/374 3594/5146/401 3564/5113/372 +f 3563/5118/377 3592/5147/395 3562/5116/375 +f 3562/5119/375 3599/5148/402 3569/5132/389 +f 3568/5144/388 3597/5149/403 3567/5112/371 +f 3566/5110/369 3595/5150/404 3565/5115/374 +f 3564/5113/372 3593/5151/405 3563/5118/377 +f 3610/5152/368 3603/5153/381 3602/5154/368 +f 3608/5155/391 3601/5156/406 3600/5157/391 +f 3615/5158/388 3600/5157/391 3607/5159/388 +f 3613/5160/407 3606/5161/367 3605/5162/407 +f 3611/5163/381 3604/5164/396 3603/5153/381 +f 3609/5165/406 3602/5154/368 3601/5156/406 +f 3614/5166/367 3607/5159/388 3606/5161/367 +f 3612/5167/396 3605/5162/407 3604/5168/396 +f 3598/5143/399 3620/5169/408 3597/5149/403 +f 3596/5145/400 3618/5170/409 3595/5150/404 +f 3594/5146/401 3616/5171/410 3593/5151/405 +f 3598/5143/399 3622/5172/411 3621/5173/412 +f 3597/5149/403 3619/5174/397 3596/5145/400 +f 3594/5146/401 3618/5170/409 3617/5175/413 +f 3616/5171/410 3624/5176/414 3623/5177/415 +f 3622/5172/411 3628/5178/416 3621/5173/412 +f 3620/5169/408 3626/5179/417 3619/5174/397 +f 3617/5175/413 3625/5180/418 3624/5176/414 +f 3620/5169/408 3628/5178/416 3627/5181/419 +f 3618/5170/409 3626/5179/417 3625/5180/418 +f 3593/5151/405 3616/5171/410 3592/5182/395 +f 3616/5171/410 3623/5177/415 3592/5182/395 +f 3599/5148/402 3592/5183/395 3622/5172/411 +f 3622/5172/411 3592/5183/395 3629/5184/420 +f 3629/5184/420 3630/5185/396 3637/5186/407 +f 3629/5184/420 3636/5187/367 3628/5178/416 +f 3623/5177/415 3630/5188/396 3592/5189/395 +f 3627/5181/419 3634/5190/391 3626/5179/417 +f 3625/5180/418 3632/5191/368 3624/5176/414 +f 3628/5178/416 3635/5192/388 3627/5181/419 +f 3626/5179/417 3633/5193/406 3625/5180/418 +f 3623/5177/415 3632/5191/368 3631/5194/381 +f 3566/5110/369 3574/5122/380 3575/5111/370 +f 3564/5113/372 3572/5123/381 3573/5114/373 +f 3562/5116/375 3570/5195/379 3571/5117/376 +f 3562/5119/375 3569/5132/389 3576/5120/378 +f 3566/5110/369 3565/5115/374 3573/5114/373 +f 3563/5118/377 3571/5117/376 3572/5123/381 +f 3576/5120/378 3583/5133/390 3577/5124/382 +f 3573/5114/373 3580/5129/387 3581/5125/383 +f 3572/5123/381 3571/5117/376 3578/5126/384 +f 3575/5111/370 3574/5122/380 3581/5125/383 +f 3572/5123/381 3579/5127/385 3580/5129/387 +f 3571/5117/376 3570/5195/379 3577/5130/382 +f 3583/5133/390 3568/5137/388 3584/5134/391 +f 3583/5133/390 3591/5135/392 3585/5136/393 +f 3582/5128/386 3590/5141/397 3584/5134/391 +f 3580/5129/387 3588/5142/398 3589/5138/394 +f 3579/5127/385 3578/5126/384 3586/5139/395 +f 3581/5125/383 3589/5138/394 3590/5141/397 +f 3579/5127/385 3587/5140/396 3588/5142/398 +f 3577/5130/382 3585/5196/393 3586/5139/395 +f 3569/5132/389 3599/5148/402 3598/5143/399 +f 3567/5112/371 3597/5149/403 3596/5145/400 +f 3565/5115/374 3595/5150/404 3594/5146/401 +f 3563/5118/377 3593/5151/405 3592/5147/395 +f 3562/5119/375 3592/5197/395 3599/5148/402 +f 3568/5144/388 3598/5143/399 3597/5149/403 +f 3566/5110/369 3596/5145/400 3595/5150/404 +f 3564/5113/372 3594/5146/401 3593/5151/405 +f 3610/5152/368 3611/5163/381 3603/5153/381 +f 3608/5155/391 3609/5165/406 3601/5156/406 +f 3615/5158/388 3608/5155/391 3600/5157/391 +f 3613/5160/407 3614/5166/367 3606/5161/367 +f 3611/5163/381 3612/5198/396 3604/5164/396 +f 3609/5165/406 3610/5152/368 3602/5154/368 +f 3614/5166/367 3615/5158/388 3607/5159/388 +f 3612/5167/396 3613/5160/407 3605/5162/407 +f 3598/5143/399 3621/5173/412 3620/5169/408 +f 3596/5145/400 3619/5174/397 3618/5170/409 +f 3594/5146/401 3617/5175/413 3616/5171/410 +f 3598/5143/399 3599/5148/402 3622/5172/411 +f 3597/5149/403 3620/5169/408 3619/5174/397 +f 3594/5146/401 3595/5150/404 3618/5170/409 +f 3616/5171/410 3617/5175/413 3624/5176/414 +f 3622/5172/411 3629/5184/420 3628/5178/416 +f 3620/5169/408 3627/5181/419 3626/5179/417 +f 3617/5175/413 3618/5170/409 3625/5180/418 +f 3620/5169/408 3621/5173/412 3628/5178/416 +f 3618/5170/409 3619/5174/397 3626/5179/417 +f 3629/5184/420 3592/5199/395 3630/5185/396 +f 3629/5184/420 3637/5186/407 3636/5187/367 +f 3623/5177/415 3631/5194/381 3630/5188/396 +f 3627/5181/419 3635/5192/388 3634/5190/391 +f 3625/5180/418 3633/5193/406 3632/5191/368 +f 3628/5178/416 3636/5187/367 3635/5192/388 +f 3626/5179/417 3634/5190/391 3633/5193/406 +f 3623/5177/415 3624/5176/414 3632/5191/368 +o V2_Pivot +v 0.500000 1.250000 -1.625000 +v 0.750000 1.250000 -1.625000 +v 0.500000 1.250000 -1.875000 +v 0.750000 1.250000 -1.875000 +v 0.500000 2.750000 -1.875000 +v 0.500000 2.750000 -1.625000 +v 0.750000 2.750000 -1.625000 +v 0.750000 2.750000 -1.875000 +v -0.750000 1.250000 -1.625000 +v -0.500000 1.250000 -1.625000 +v -0.750000 1.250000 -1.875000 +v -0.500000 1.250000 -1.875000 +v -0.750000 2.750000 -1.875000 +v -0.750000 2.750000 -1.625000 +v -0.500000 2.750000 -1.625000 +v -0.500000 2.750000 -1.875000 +v 0.562500 2.750000 -1.687500 +v 0.687500 2.750000 -1.687500 +v 0.562500 2.750000 -1.812500 +v 0.687500 2.750000 -1.812500 +v 0.562500 3.750000 -1.812500 +v 0.562500 3.750000 -1.687500 +v 0.687500 3.750000 -1.687500 +v 0.687500 3.750000 -1.812500 +v -0.687500 2.750000 -1.687500 +v -0.562500 2.750000 -1.687500 +v -0.687500 2.750000 -1.812500 +v -0.562500 2.750000 -1.812500 +v -0.687500 3.750000 -1.812500 +v -0.687500 3.750000 -1.687500 +v -0.562500 3.750000 -1.687500 +v -0.562500 3.750000 -1.812500 +vt 0.836735 0.184211 +vt 0.857143 0.157895 +vt 0.857143 0.184211 +vt 0.918367 -0.000000 +vt 0.897959 0.157895 +vt 0.897959 -0.000000 +vt 0.877551 -0.000000 +vt 0.857143 -0.000000 +vt 0.836735 0.157895 +vt 0.836735 -0.000000 +vt 0.877551 0.157895 +vt 0.836735 0.184211 +vt 0.857143 0.157895 +vt 0.857143 0.184211 +vt 0.918367 -0.000000 +vt 0.897959 0.157895 +vt 0.897959 -0.000000 +vt 0.877551 -0.000000 +vt 0.857143 -0.000000 +vt 0.836735 0.157895 +vt 0.836735 -0.000000 +vt 0.877551 0.157895 +vt 0.897959 0.157895 +vt 0.887755 0.263158 +vt 0.887755 0.157895 +vt 0.877551 0.157895 +vt 0.867347 0.263158 +vt 0.867347 0.157895 +vt 0.857143 0.263158 +vt 0.857143 0.157895 +vt 0.877551 0.263158 +vt 0.897959 0.157895 +vt 0.887755 0.263158 +vt 0.887755 0.157895 +vt 0.877551 0.157895 +vt 0.867347 0.263158 +vt 0.867347 0.157895 +vt 0.857143 0.263158 +vt 0.857143 0.157895 +vt 0.877551 0.263158 +vt 0.918367 0.157895 +vt 0.918367 0.157895 +vt 0.897959 0.263158 +vt 0.897959 0.263158 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 3652/5200/421 3650/5201/421 3651/5202/421 +f 3649/5203/422 3652/5204/422 3647/5205/422 +f 3646/5206/423 3650/5201/423 3648/5207/423 +f 3648/5207/424 3653/5208/424 3649/5209/424 +f 3647/5205/425 3651/5210/425 3646/5206/425 +f 3660/5211/421 3658/5212/421 3659/5213/421 +f 3657/5214/422 3660/5215/422 3655/5216/422 +f 3654/5217/423 3658/5212/423 3656/5218/423 +f 3656/5218/424 3661/5219/424 3657/5220/424 +f 3655/5216/425 3659/5221/425 3654/5217/425 +f 3665/5222/422 3668/5223/422 3663/5224/422 +f 3662/5225/423 3666/5226/423 3664/5227/423 +f 3664/5227/424 3669/5228/424 3665/5229/424 +f 3663/5224/425 3667/5230/425 3662/5225/425 +f 3673/5231/422 3676/5232/422 3671/5233/422 +f 3670/5234/423 3674/5235/423 3672/5236/423 +f 3672/5236/424 3677/5237/424 3673/5238/424 +f 3671/5233/425 3675/5239/425 3670/5234/425 +f 3652/5200/421 3653/5208/421 3650/5201/421 +f 3649/5203/422 3653/5240/422 3652/5204/422 +f 3646/5206/423 3651/5210/423 3650/5201/423 +f 3648/5207/424 3650/5201/424 3653/5208/424 +f 3647/5205/425 3652/5204/425 3651/5210/425 +f 3660/5211/421 3661/5219/421 3658/5212/421 +f 3657/5214/422 3661/5241/422 3660/5215/422 +f 3654/5217/423 3659/5221/423 3658/5212/423 +f 3656/5218/424 3658/5212/424 3661/5219/424 +f 3655/5216/425 3660/5215/425 3659/5221/425 +f 3665/5222/422 3669/5242/422 3668/5223/422 +f 3662/5225/423 3667/5230/423 3666/5226/423 +f 3664/5227/424 3666/5226/424 3669/5228/424 +f 3663/5224/425 3668/5223/425 3667/5230/425 +f 3673/5231/422 3677/5243/422 3676/5232/422 +f 3670/5234/423 3675/5239/423 3674/5235/423 +f 3672/5236/424 3674/5235/424 3677/5237/424 +f 3671/5233/425 3676/5232/425 3675/5239/425 +o V2_Erector +v 0.500000 2.750000 -1.875000 +v 0.500000 2.750000 -1.625000 +v 0.750000 2.750000 -1.625000 +v 0.750000 2.750000 -1.875000 +v -0.750000 2.750000 -1.875000 +v -0.750000 2.750000 -1.625000 +v -0.500000 2.750000 -1.625000 +v -0.500000 2.750000 -1.875000 +v 0.500000 7.750000 -1.875000 +v 0.500000 7.750000 -1.625000 +v 0.750000 7.750000 -1.625000 +v 0.750000 7.750000 -1.875000 +v -0.750000 7.750000 -1.875000 +v -0.750000 7.750000 -1.625000 +v -0.500000 7.750000 -1.625000 +v -0.500000 7.750000 -1.875000 +v 0.500000 4.250000 -0.125000 +v 0.500000 4.250000 0.125000 +v 0.750000 4.250000 0.125000 +v 0.750000 4.250000 -0.125000 +v -0.750000 4.250000 -0.125000 +v -0.750000 4.250000 0.125000 +v -0.500000 4.250000 0.125000 +v -0.500000 4.250000 -0.125000 +v 0.500000 7.750000 -0.125000 +v 0.500000 7.750000 0.125000 +v 0.750000 7.750000 0.125000 +v 0.750000 7.750000 -0.125000 +v -0.750000 7.750000 -0.125000 +v -0.750000 7.750000 0.125000 +v -0.500000 7.750000 0.125000 +v -0.500000 7.750000 -0.125000 +v -0.250000 7.250000 -0.625000 +v 0.250000 7.250000 -0.625000 +v -0.250000 7.250000 -0.375000 +v 0.250000 7.250000 -0.375000 +v -0.500000 7.250000 -0.125000 +v -0.750000 7.250000 -0.125000 +v 0.750000 7.250000 -0.125000 +v 0.500000 7.250000 -0.125000 +v 0.500000 5.000000 -0.125000 +v 0.750000 5.000000 -0.125000 +v -0.750000 5.000000 -0.125000 +v -0.500000 5.000000 -0.125000 +v 0.250000 5.000000 -0.375000 +v -0.250000 5.000000 -0.375000 +v 0.250000 5.000000 -0.625000 +v -0.250000 5.000000 -0.625000 +v 0.500000 4.750000 -0.125000 +v 0.750000 4.750000 -0.125000 +v -0.750000 4.750000 -0.125000 +v -0.500000 4.750000 -0.125000 +v 0.250000 4.750000 -0.375000 +v -0.250000 4.750000 -0.375000 +v 0.250000 4.750000 -0.625000 +v -0.250000 4.750000 -0.625000 +v 0.500000 7.625000 -0.125000 +v 0.750000 7.625000 -0.125000 +v 0.500000 7.375000 -0.125000 +v 0.750000 7.375000 -0.125000 +v 0.500000 7.625000 -1.625000 +v 0.750000 7.625000 -1.625000 +v 0.500000 7.375000 -1.625000 +v 0.750000 7.375000 -1.625000 +v -0.750000 7.625000 -0.125000 +v -0.500000 7.625000 -0.125000 +v -0.750000 7.375000 -0.125000 +v -0.500000 7.375000 -0.125000 +v -0.750000 7.625000 -1.625000 +v -0.500000 7.625000 -1.625000 +v -0.750000 7.375000 -1.625000 +v -0.500000 7.375000 -1.625000 +v 0.500000 4.625000 -0.125000 +v 0.750000 4.625000 -0.125000 +v 0.500000 4.375000 -0.125000 +v 0.750000 4.375000 -0.125000 +v 0.500000 4.625000 -1.625000 +v 0.750000 4.625000 -1.625000 +v 0.500000 4.375000 -1.625000 +v 0.750000 4.375000 -1.625000 +v -0.750000 4.625000 -0.125000 +v -0.500000 4.625000 -0.125000 +v -0.750000 4.375000 -0.125000 +v -0.500000 4.375000 -0.125000 +v -0.750000 4.625000 -1.625000 +v -0.500000 4.625000 -1.625000 +v -0.750000 4.375000 -1.625000 +v -0.500000 4.375000 -1.625000 +v 0.500000 6.125000 -0.125000 +v 0.750000 6.125000 -0.125000 +v 0.500000 5.875000 -0.125000 +v 0.750000 5.875000 -0.125000 +v 0.500000 6.125000 -1.625000 +v 0.750000 6.125000 -1.625000 +v 0.500000 5.875000 -1.625000 +v 0.750000 5.875000 -1.625000 +v -0.750000 6.125000 -0.125000 +v -0.500000 6.125000 -0.125000 +v -0.750000 5.875000 -0.125000 +v -0.500000 5.875000 -0.125000 +v -0.750000 6.125000 -1.625000 +v -0.500000 6.125000 -1.625000 +v -0.750000 5.875000 -1.625000 +v -0.500000 5.875000 -1.625000 +v 0.500000 7.375000 -1.812500 +v 0.500000 7.125000 -1.812500 +v -0.500000 7.375000 -1.687500 +v -0.500000 7.125000 -1.687500 +v -0.500000 6.375000 -1.812500 +v -0.500000 6.125000 -1.812500 +v 0.500000 6.375000 -1.687500 +v 0.500000 6.125000 -1.687500 +v 0.500000 5.875000 -1.812500 +v 0.500000 5.625000 -1.812500 +v -0.500000 5.875000 -1.687500 +v -0.500000 5.625000 -1.687500 +v -0.500000 4.875000 -1.812500 +v -0.500000 4.625000 -1.812500 +v 0.500000 4.875000 -1.687500 +v 0.500000 4.625000 -1.687500 +v 0.500000 4.375000 -1.812500 +v 0.500000 4.125000 -1.812500 +v -0.500000 4.375000 -1.687500 +v -0.500000 4.125000 -1.687500 +v -0.500000 3.375000 -1.812500 +v -0.500000 3.125000 -1.812500 +v 0.500000 3.375000 -1.687500 +v 0.500000 3.125000 -1.687500 +v 0.500000 7.000000 -0.125000 +v 0.750000 7.000000 -0.125000 +v -0.750000 7.000000 -0.125000 +v -0.500000 7.000000 -0.125000 +v 0.250000 7.000000 -0.375000 +v -0.250000 7.000000 -0.375000 +v 0.250000 7.000000 -0.625000 +v -0.250000 7.000000 -0.625000 +v 0.500000 7.375000 -1.812500 +v 0.500000 7.125000 -1.812500 +v -0.500000 7.375000 -1.687500 +v -0.500000 7.125000 -1.687500 +v -0.500000 6.375000 -1.812500 +v -0.500000 6.125000 -1.812500 +v 0.500000 6.375000 -1.687500 +v 0.500000 6.125000 -1.687500 +v 0.500000 5.875000 -1.812500 +v 0.500000 5.625000 -1.812500 +v -0.500000 5.875000 -1.687500 +v -0.500000 5.625000 -1.687500 +v -0.500000 4.875000 -1.812500 +v -0.500000 4.625000 -1.812500 +v 0.500000 4.875000 -1.687500 +v 0.500000 4.625000 -1.687500 +v 0.500000 4.375000 -1.812500 +v 0.500000 4.125000 -1.812500 +v -0.500000 4.375000 -1.687500 +v -0.500000 4.125000 -1.687500 +v -0.500000 3.375000 -1.812500 +v -0.500000 3.125000 -1.812500 +v 0.500000 3.375000 -1.687500 +v 0.500000 3.125000 -1.687500 +vt 0.918367 0.421053 +vt 0.938776 0.394737 +vt 0.938776 0.421053 +vt 0.918367 0.421053 +vt 0.938776 0.394737 +vt 0.938776 0.421053 +vt 0.938776 0.026316 +vt 0.918367 -0.000000 +vt 0.938776 -0.000000 +vt 0.938776 0.026316 +vt 0.918367 -0.000000 +vt 0.938776 -0.000000 +vt 0.857143 0.263158 +vt 0.836735 0.236842 +vt 0.857143 0.236842 +vt 0.857143 0.263158 +vt 0.836735 0.236842 +vt 0.857143 0.236842 +vt 0.836735 0.815789 +vt 0.857143 0.789474 +vt 0.857143 0.815789 +vt 0.836735 0.815789 +vt 0.857143 0.789474 +vt 0.857143 0.815789 +vt 0.918367 0.263158 +vt 0.897959 0.789474 +vt 0.897959 0.263158 +vt 0.877551 0.263158 +vt 0.918367 0.263158 +vt 0.897959 0.789474 +vt 0.897959 0.263158 +vt 0.877551 0.263158 +vt 0.836735 0.789474 +vt 0.836735 0.263158 +vt 0.877551 0.789474 +vt 0.836735 0.789474 +vt 0.836735 0.263158 +vt 0.877551 0.789474 +vt 1.000000 0.026316 +vt 0.979592 0.394737 +vt 0.979592 0.026316 +vt 0.959184 0.026316 +vt 1.000000 0.026316 +vt 0.979592 0.394737 +vt 0.979592 0.026316 +vt 0.959184 0.026316 +vt 0.918367 0.394737 +vt 0.918367 0.026316 +vt 0.959184 0.394737 +vt 0.918367 0.394737 +vt 0.918367 0.026316 +vt 0.959184 0.394737 +vt 0.653061 0.763158 +vt 0.632653 0.710526 +vt 0.673469 0.763158 +vt 0.551020 0.763158 +vt 0.591837 0.736842 +vt 0.571429 0.763158 +vt 0.591837 0.710526 +vt 0.632653 0.710526 +vt 0.591837 0.736842 +vt 0.591837 0.710526 +vt 0.551020 0.763158 +vt 0.571429 0.763158 +vt 0.653061 0.763158 +vt 0.673469 0.763158 +vt 0.632653 0.763158 +vt 0.591837 0.789474 +vt 0.591837 0.763158 +vt 0.673469 0.684211 +vt 0.673469 0.710526 +vt 0.571429 0.789474 +vt 0.632653 0.684211 +vt 0.632653 0.789474 +vt 0.551020 0.710526 +vt 0.591149 0.684899 +vt 0.551020 0.631579 +vt 0.591837 0.657895 +vt 0.632653 0.657895 +vt 0.653061 0.631579 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.605263 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.605263 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.605263 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 0.918367 0.578947 +vt 0.632653 0.763158 +vt 0.591837 0.789474 +vt 0.591837 0.763158 +vt 0.673469 0.684211 +vt 0.673469 0.710526 +vt 0.571429 0.789474 +vt 0.632653 0.684211 +vt 0.632653 0.789474 +vt 0.551020 0.710526 +vt 0.591149 0.684899 +vt 0.551020 0.631579 +vt 0.591837 0.657895 +vt 0.632653 0.657895 +vt 0.653061 0.631579 +vt 1.000000 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.605263 +vt 1.000000 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.605263 +vt 1.000000 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.605263 +vt 0.918367 0.789474 +vt 0.918367 0.789474 +vt 1.000000 0.394737 +vt 1.000000 0.394737 +vt 0.632653 0.736842 +vt 0.632653 0.736842 +vt 0.653061 0.789474 +vt 0.551020 0.684211 +vt 0.571429 0.631579 +vt 0.673469 0.631579 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 1.000000 0.578947 +vt 1.000000 0.605263 +vt 1.000000 0.578947 +vt 1.000000 0.605263 +vt 1.000000 0.578947 +vt 1.000000 0.605263 +vt 0.653061 0.789474 +vt 0.551020 0.684211 +vt 0.571429 0.631579 +vt 0.673469 0.631579 +vt 1.000000 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.578947 +vt 0.918367 0.578947 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +s off +f 3708/5244/426 3706/5245/426 3707/5246/426 +f 3704/5247/426 3702/5248/426 3703/5249/426 +f 3698/5250/427 3700/5251/427 3699/5252/427 +f 3694/5253/427 3696/5254/427 3695/5255/427 +f 3678/5256/427 3680/5257/427 3679/5258/427 +f 3682/5259/427 3684/5260/427 3683/5261/427 +f 3688/5262/426 3686/5263/426 3687/5264/426 +f 3692/5265/426 3690/5266/426 3691/5267/426 +f 3685/5268/428 3692/5269/428 3684/5270/428 +f 3683/5271/429 3690/5266/429 3682/5259/429 +f 3681/5272/428 3688/5273/428 3680/5274/428 +f 3679/5275/429 3686/5263/429 3678/5256/429 +f 3682/5259/430 3693/5276/430 3685/5277/430 +f 3684/5270/431 3691/5278/431 3683/5271/431 +f 3678/5256/430 3689/5279/430 3681/5280/430 +f 3680/5274/431 3687/5281/431 3679/5275/431 +f 3701/5282/428 3708/5283/428 3700/5284/428 +f 3699/5285/429 3706/5245/429 3698/5250/429 +f 3697/5286/428 3704/5287/428 3696/5288/428 +f 3695/5289/429 3702/5248/429 3694/5253/429 +f 3698/5250/430 3709/5290/430 3701/5291/430 +f 3700/5284/431 3707/5292/431 3699/5285/431 +f 3694/5253/430 3705/5293/430 3697/5294/430 +f 3696/5288/431 3703/5295/431 3695/5289/431 +f 3714/5296/426 3710/5297/426 3715/5298/426 +f 3716/5299/426 3713/5300/426 3717/5301/426 +f 3710/5297/426 3713/5300/426 3711/5302/426 +f 3725/5303/426 3722/5304/426 3724/5305/426 +f 3719/5306/426 3722/5304/426 3718/5307/426 +f 3721/5308/426 3725/5303/426 3720/5309/426 +f 3723/5310/431 3730/5311/431 3722/5312/431 +f 3725/5303/432 3728/5313/432 3720/5314/432 +f 3722/5312/433 3726/5315/433 3718/5307/433 +f 3724/5305/430 3733/5316/430 3725/5303/430 +f 3721/5308/434 3731/5317/434 3723/5310/434 +f 3719/5318/435 3732/5319/435 3724/5305/435 +f 3727/5320/427 3730/5321/427 3732/5319/427 +f 3733/5316/427 3730/5321/427 3731/5322/427 +f 3729/5323/427 3733/5316/427 3731/5322/427 +f 3741/5324/428 3735/5325/428 3737/5326/428 +f 3740/5327/427 3737/5328/427 3736/5329/427 +f 3738/5330/429 3736/5329/429 3734/5331/429 +f 3735/5325/426 3738/5330/426 3734/5331/426 +f 3749/5332/428 3743/5333/428 3745/5334/428 +f 3748/5335/427 3745/5336/427 3744/5337/427 +f 3746/5338/429 3744/5337/429 3742/5339/429 +f 3743/5333/426 3746/5338/426 3742/5339/426 +f 3757/5340/428 3751/5341/428 3753/5342/428 +f 3756/5343/427 3753/5344/427 3752/5345/427 +f 3754/5346/429 3752/5345/429 3750/5347/429 +f 3751/5341/426 3754/5346/426 3750/5347/426 +f 3765/5348/428 3759/5349/428 3761/5350/428 +f 3764/5351/427 3761/5352/427 3760/5353/427 +f 3762/5354/429 3760/5353/429 3758/5355/429 +f 3759/5349/426 3762/5354/426 3758/5355/426 +f 3773/5356/428 3767/5357/428 3769/5358/428 +f 3772/5359/427 3769/5360/427 3768/5361/427 +f 3770/5362/429 3768/5361/429 3766/5363/429 +f 3767/5357/426 3770/5362/426 3766/5363/426 +f 3781/5364/428 3775/5365/428 3777/5366/428 +f 3780/5367/427 3777/5368/427 3776/5369/427 +f 3778/5370/429 3776/5369/429 3774/5371/429 +f 3775/5365/426 3778/5370/426 3774/5371/426 +f 3783/5372/430 3786/5373/430 3782/5374/430 +f 3785/5375/430 3788/5376/430 3789/5377/430 +f 3791/5378/430 3794/5379/430 3790/5380/430 +f 3793/5381/430 3796/5382/430 3797/5383/430 +f 3799/5384/430 3802/5385/430 3798/5386/430 +f 3801/5387/430 3804/5388/430 3805/5389/430 +f 3712/5390/431 3810/5391/431 3713/5392/431 +f 3710/5297/432 3808/5393/432 3715/5394/432 +f 3713/5392/433 3806/5395/433 3717/5301/433 +f 3711/5302/430 3813/5396/430 3710/5297/430 +f 3714/5296/434 3811/5397/434 3712/5390/434 +f 3716/5398/435 3812/5399/435 3711/5302/435 +f 3807/5400/427 3810/5401/427 3812/5399/427 +f 3813/5396/427 3810/5401/427 3811/5402/427 +f 3809/5403/427 3813/5396/427 3811/5402/427 +f 3818/5404/431 3815/5405/431 3814/5406/431 +f 3817/5407/431 3820/5408/431 3816/5409/431 +f 3826/5410/431 3823/5411/431 3822/5412/431 +f 3825/5413/431 3828/5414/431 3824/5415/431 +f 3834/5416/431 3831/5417/431 3830/5418/431 +f 3833/5419/431 3836/5420/431 3832/5421/431 +f 3708/5244/426 3709/5290/426 3706/5245/426 +f 3704/5247/426 3705/5293/426 3702/5248/426 +f 3698/5250/427 3701/5291/427 3700/5251/427 +f 3694/5253/427 3697/5294/427 3696/5254/427 +f 3678/5256/427 3681/5280/427 3680/5257/427 +f 3682/5259/427 3685/5277/427 3684/5260/427 +f 3688/5262/426 3689/5279/426 3686/5263/426 +f 3692/5265/426 3693/5276/426 3690/5266/426 +f 3685/5268/428 3693/5422/428 3692/5269/428 +f 3683/5271/429 3691/5278/429 3690/5266/429 +f 3681/5272/428 3689/5423/428 3688/5273/428 +f 3679/5275/429 3687/5281/429 3686/5263/429 +f 3682/5259/430 3690/5266/430 3693/5276/430 +f 3684/5270/431 3692/5269/431 3691/5278/431 +f 3678/5256/430 3686/5263/430 3689/5279/430 +f 3680/5274/431 3688/5273/431 3687/5281/431 +f 3701/5282/428 3709/5424/428 3708/5283/428 +f 3699/5285/429 3707/5292/429 3706/5245/429 +f 3697/5286/428 3705/5425/428 3704/5287/428 +f 3695/5289/429 3703/5295/429 3702/5248/429 +f 3698/5250/430 3706/5245/430 3709/5290/430 +f 3700/5284/431 3708/5283/431 3707/5292/431 +f 3694/5253/430 3702/5248/430 3705/5293/430 +f 3696/5288/431 3704/5287/431 3703/5295/431 +f 3714/5296/426 3712/5426/426 3710/5297/426 +f 3716/5299/426 3711/5302/426 3713/5300/426 +f 3710/5297/426 3712/5426/426 3713/5300/426 +f 3725/5303/426 3723/5427/426 3722/5304/426 +f 3719/5306/426 3724/5305/426 3722/5304/426 +f 3721/5308/426 3723/5427/426 3725/5303/426 +f 3723/5310/431 3731/5317/431 3730/5311/431 +f 3725/5303/432 3733/5316/432 3728/5313/432 +f 3722/5312/433 3730/5311/433 3726/5315/433 +f 3724/5305/430 3732/5319/430 3733/5316/430 +f 3721/5308/434 3729/5428/434 3731/5317/434 +f 3719/5318/435 3727/5429/435 3732/5319/435 +f 3727/5320/427 3726/5430/427 3730/5321/427 +f 3733/5316/427 3732/5319/427 3730/5321/427 +f 3729/5323/427 3728/5431/427 3733/5316/427 +f 3741/5324/428 3739/5432/428 3735/5325/428 +f 3740/5327/427 3741/5433/427 3737/5328/427 +f 3738/5330/429 3740/5327/429 3736/5329/429 +f 3735/5325/426 3739/5432/426 3738/5330/426 +f 3749/5332/428 3747/5434/428 3743/5333/428 +f 3748/5335/427 3749/5435/427 3745/5336/427 +f 3746/5338/429 3748/5335/429 3744/5337/429 +f 3743/5333/426 3747/5434/426 3746/5338/426 +f 3757/5340/428 3755/5436/428 3751/5341/428 +f 3756/5343/427 3757/5437/427 3753/5344/427 +f 3754/5346/429 3756/5343/429 3752/5345/429 +f 3751/5341/426 3755/5436/426 3754/5346/426 +f 3765/5348/428 3763/5438/428 3759/5349/428 +f 3764/5351/427 3765/5439/427 3761/5352/427 +f 3762/5354/429 3764/5351/429 3760/5353/429 +f 3759/5349/426 3763/5438/426 3762/5354/426 +f 3773/5356/428 3771/5440/428 3767/5357/428 +f 3772/5359/427 3773/5441/427 3769/5360/427 +f 3770/5362/429 3772/5359/429 3768/5361/429 +f 3767/5357/426 3771/5440/426 3770/5362/426 +f 3781/5364/428 3779/5442/428 3775/5365/428 +f 3780/5367/427 3781/5443/427 3777/5368/427 +f 3778/5370/429 3780/5367/429 3776/5369/429 +f 3775/5365/426 3779/5442/426 3778/5370/426 +f 3783/5372/430 3787/5444/430 3786/5373/430 +f 3785/5375/430 3784/5445/430 3788/5376/430 +f 3791/5378/430 3795/5446/430 3794/5379/430 +f 3793/5381/430 3792/5447/430 3796/5382/430 +f 3799/5384/430 3803/5448/430 3802/5385/430 +f 3801/5387/430 3800/5449/430 3804/5388/430 +f 3712/5390/431 3811/5397/431 3810/5391/431 +f 3710/5297/432 3813/5396/432 3808/5393/432 +f 3713/5392/433 3810/5391/433 3806/5395/433 +f 3711/5302/430 3812/5399/430 3813/5396/430 +f 3714/5296/434 3809/5450/434 3811/5397/434 +f 3716/5398/435 3807/5451/435 3812/5399/435 +f 3807/5400/427 3806/5452/427 3810/5401/427 +f 3813/5396/427 3812/5399/427 3810/5401/427 +f 3809/5403/427 3808/5453/427 3813/5396/427 +f 3818/5404/431 3819/5454/431 3815/5405/431 +f 3817/5407/431 3821/5455/431 3820/5408/431 +f 3826/5410/431 3827/5456/431 3823/5411/431 +f 3825/5413/431 3829/5457/431 3828/5414/431 +f 3834/5416/431 3835/5458/431 3831/5417/431 +f 3833/5419/431 3837/5459/431 3836/5420/431 +o Pad +v -4.500000 0.000000 4.500000 +v 4.500000 0.000000 4.500000 +v -4.500000 0.000000 -4.500000 +v 4.500000 0.000000 -4.500000 +v -4.500000 1.000000 4.500000 +v 4.500000 1.000000 4.500000 +v -4.500000 1.000000 -4.500000 +v 4.500000 1.000000 -4.500000 +v -4.500000 0.000000 0.500000 +v 4.500000 0.000000 0.500000 +v -4.500000 1.000000 0.500000 +v 4.500000 1.000000 0.500000 +v 4.500000 0.000000 -0.500000 +v -4.500000 0.000000 -0.500000 +v 4.500000 1.000000 -0.500000 +v -4.500000 1.000000 -0.500000 +v -4.500000 1.000000 0.500000 +v 4.500000 1.000000 0.500000 +v 4.500000 1.000000 -0.500000 +v -4.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 4.500000 0.750000 0.500000 +v 0.500000 0.750000 0.500000 +v 4.500000 1.000000 0.250000 +v 0.500000 1.000000 0.250000 +v 4.500000 1.000000 -0.250000 +v 0.500000 1.000000 -0.250000 +v 4.500000 0.750000 -0.500000 +v 0.500000 0.750000 -0.500000 +v 4.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 4.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -4.500000 1.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -4.500000 1.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -4.500000 0.750000 -0.500000 +v -0.500000 0.750000 -0.500000 +v -4.500000 1.000000 -0.250000 +v -0.500000 1.000000 -0.250000 +v -4.500000 1.000000 0.250000 +v -0.500000 1.000000 0.250000 +v -4.500000 0.750000 0.500000 +v -0.500000 0.750000 0.500000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.000000 0.500000 0.500000 +v 0.000000 0.500000 -0.500000 +vt 0.000000 0.473684 +vt 0.400000 0.526316 +vt 0.000000 0.526316 +vt 0.900000 0.526316 +vt 0.000000 0.473684 +vt 0.900000 0.473684 +vt 0.400000 1.000000 +vt 0.000000 1.000000 +vt 0.900000 0.473684 +vt -0.000000 0.526316 +vt -0.000000 0.473684 +vt 0.900000 0.473684 +vt -0.000000 0.526316 +vt -0.000000 0.473684 +vt 0.900000 0.526316 +vt 0.500000 0.473684 +vt 0.900000 0.473684 +vt 0.000000 0.000000 +vt 0.400000 0.473684 +vt 0.900000 0.526316 +vt -0.000000 0.473684 +vt 0.900000 0.473684 +vt 0.900000 0.526316 +vt 0.500000 0.473684 +vt 0.900000 0.473684 +vt 0.000000 0.473684 +vt 0.400000 0.526316 +vt 0.000000 0.526316 +vt 0.900000 1.000000 +vt 0.500000 0.526316 +vt 0.500000 0.000000 +vt 0.900000 0.000000 +vt 0.500000 0.736842 +vt 0.400000 0.526316 +vt 0.500000 0.526316 +vt 0.400000 1.000000 +vt 0.500000 0.789474 +vt 0.500000 1.000000 +vt 0.925000 0.539474 +vt 0.900000 0.750000 +vt 0.900000 0.539474 +vt 0.975000 0.539474 +vt 0.925000 0.750000 +vt 1.000000 0.539474 +vt 0.975000 0.750000 +vt 1.000000 0.763158 +vt 1.000000 0.776316 +vt 0.975000 0.776316 +vt 0.900000 0.763158 +vt 0.925000 0.776316 +vt 0.900000 0.776316 +vt 1.000000 0.763158 +vt 0.975000 0.750000 +vt 1.000000 0.750000 +vt 0.900000 0.763158 +vt 0.900000 0.750000 +vt 0.925000 0.750000 +vt 0.900000 0.526316 +vt 0.925000 0.539474 +vt 0.900000 0.539474 +vt 1.000000 0.526316 +vt 1.000000 0.539474 +vt 0.975000 0.539474 +vt 0.900000 1.000000 +vt 0.900000 0.986842 +vt 0.925000 0.986842 +vt 1.000000 1.000000 +vt 0.975000 0.986842 +vt 1.000000 0.986842 +vt 1.000000 0.776316 +vt 0.975000 0.986842 +vt 0.975000 0.776316 +vt 0.925000 0.986842 +vt 0.925000 0.776316 +vt 0.900000 0.986842 +vt 0.900000 0.776316 +vt 0.900000 0.473684 +vt 1.000000 0.500000 +vt 0.900000 0.500000 +vt 1.000000 0.526316 +vt 0.900000 0.526316 +vt 1.000000 0.473684 +vt 0.900000 0.421053 +vt 1.000000 0.421053 +vt 0.000000 0.526316 +vt 0.900000 0.526316 +vt 0.900000 0.526316 +vt 0.500000 0.526316 +vt 0.400000 0.000000 +vt -0.000000 0.526316 +vt 0.400000 0.473684 +vt 0.500000 1.000000 +vt 0.400000 0.736842 +vt 0.400000 0.789474 +vt 1.000000 0.750000 +vt 1.000000 0.986842 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +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 +s off +f 3839/5460/436 3849/5461/436 3843/5462/436 +f 3848/5463/437 3847/5464/437 3846/5465/437 +f 3843/5462/438 3848/5466/438 3842/5467/438 +f 3840/5468/437 3845/5469/437 3841/5470/437 +f 3839/5471/439 3842/5472/439 3838/5473/439 +f 3842/5474/440 3846/5475/440 3838/5476/440 +f 3838/5477/441 3847/5478/441 3839/5460/441 +f 3852/5479/439 3851/5480/439 3850/5481/439 +f 3845/5482/436 3850/5483/436 3841/5484/436 +f 3840/5485/440 3853/5486/440 3844/5487/440 +f 3844/5488/438 3852/5489/438 3845/5482/438 +f 3841/5484/441 3851/5490/441 3840/5491/441 +f 3859/5492/438 3855/5493/438 3856/5494/438 +f 3854/5495/438 3861/5496/438 3857/5497/438 +f 3865/5498/442 3862/5499/442 3863/5500/442 +f 3867/5501/441 3864/5502/441 3865/5498/441 +f 3869/5503/443 3866/5504/443 3867/5501/443 +f 3884/5505/440 3876/5506/440 3882/5507/440 +f 3878/5508/440 3880/5509/440 3874/5510/440 +f 3862/5511/436 3864/5512/436 3870/5513/436 +f 3868/5514/436 3872/5515/436 3866/5516/436 +f 3869/5517/440 3867/5518/440 3873/5519/440 +f 3863/5520/440 3871/5521/440 3865/5522/440 +f 3879/5523/436 3875/5524/436 3881/5525/436 +f 3885/5526/436 3883/5527/436 3877/5528/436 +f 3878/5529/443 3881/5530/443 3880/5531/443 +f 3880/5531/441 3883/5532/441 3882/5533/441 +f 3882/5533/442 3885/5534/442 3884/5535/442 +f 3887/5536/444 3891/5537/444 3890/5538/444 +f 3890/5538/445 3888/5539/445 3886/5540/445 +f 3889/5541/441 3886/5542/441 3888/5543/441 +f 3839/5460/436 3847/5478/436 3849/5461/436 +f 3848/5463/437 3849/5544/437 3847/5464/437 +f 3843/5462/438 3849/5461/438 3848/5466/438 +f 3840/5468/437 3844/5545/437 3845/5469/437 +f 3839/5471/439 3843/5546/439 3842/5472/439 +f 3842/5474/440 3848/5547/440 3846/5475/440 +f 3838/5477/441 3846/5548/441 3847/5478/441 +f 3852/5479/439 3853/5549/439 3851/5480/439 +f 3845/5482/436 3852/5489/436 3850/5483/436 +f 3840/5485/440 3851/5550/440 3853/5486/440 +f 3844/5488/438 3853/5551/438 3852/5489/438 +f 3841/5484/441 3850/5483/441 3851/5490/441 +f 3859/5492/438 3858/5552/438 3855/5493/438 +f 3854/5495/438 3860/5553/438 3861/5496/438 +f 3865/5498/442 3864/5502/442 3862/5499/442 +f 3867/5501/441 3866/5504/441 3864/5502/441 +f 3869/5503/443 3868/5554/443 3866/5504/443 +f 3878/5529/443 3879/5555/443 3881/5530/443 +f 3880/5531/441 3881/5530/441 3883/5532/441 +f 3882/5533/442 3883/5532/442 3885/5534/442 +f 3887/5536/444 3889/5541/444 3891/5537/444 +f 3890/5538/445 3891/5537/445 3888/5539/445 +f 3889/5541/441 3887/5536/441 3886/5542/441 +o Micro_Missile +v 0.324760 3.500000 -0.187500 +v 0.156250 3.500000 -0.270633 +v 0.270633 3.500000 -0.156250 +v 0.187500 3.500000 -0.324759 +v 0.000000 3.500000 -0.312500 +v -0.187500 3.500000 -0.324760 +v 0.000000 3.500000 -0.375000 +v -0.324760 3.500000 -0.187500 +v -0.156250 3.500000 -0.270633 +v -0.375000 3.500000 0.000000 +v -0.270633 3.500000 -0.156250 +v -0.324760 3.500000 0.187500 +v -0.312500 3.500000 0.000000 +v -0.187500 3.500000 0.324760 +v -0.270633 3.500000 0.156250 +v 0.000000 3.500000 0.375000 +v -0.156250 3.500000 0.270633 +v 0.156250 3.500000 0.270633 +v 0.000000 3.500000 0.312500 +v 0.187500 3.500000 0.324760 +v 0.270633 3.500000 0.156250 +v 0.375000 3.500000 0.000000 +v 0.324759 3.500000 0.187500 +v 0.312500 3.500000 0.000000 +v 0.312500 3.750000 0.000000 +v 0.324759 3.750000 0.187500 +v 0.270633 3.750000 0.156250 +v 0.270633 3.750000 -0.156250 +v 0.375000 3.750000 0.000000 +v 0.156250 3.750000 -0.270633 +v 0.324760 3.750000 -0.187500 +v 0.000000 3.750000 -0.312500 +v 0.187500 3.750000 -0.324759 +v -0.156250 3.750000 -0.270633 +v 0.000000 3.750000 -0.375000 +v -0.324760 3.750000 -0.187500 +v -0.187500 3.750000 -0.324760 +v -0.270633 3.750000 -0.156250 +v -0.375000 3.750000 0.000000 +v -0.270633 3.750000 0.156250 +v -0.312500 3.750000 0.000000 +v -0.156250 3.750000 0.270633 +v -0.324760 3.750000 0.187500 +v 0.000000 3.750000 0.375000 +v -0.187500 3.750000 0.324760 +v 0.156250 3.750000 0.270633 +v 0.000000 3.750000 0.312500 +v 0.187500 3.750000 0.324760 +v 0.312500 4.750000 0.000000 +v 0.324759 4.750000 0.187500 +v 0.270633 4.750000 0.156250 +v 0.270633 4.750000 -0.156250 +v 0.375000 4.750000 0.000000 +v 0.156250 4.750000 -0.270633 +v 0.324760 4.750000 -0.187500 +v 0.000000 4.750000 -0.312500 +v 0.187500 4.750000 -0.324759 +v -0.156250 4.750000 -0.270633 +v 0.000000 4.750000 -0.375000 +v -0.324760 4.750000 -0.187500 +v -0.187500 4.750000 -0.324760 +v -0.270633 4.750000 -0.156250 +v -0.375000 4.750000 0.000000 +v -0.270633 4.750000 0.156250 +v -0.312500 4.750000 0.000000 +v -0.156250 4.750000 0.270633 +v -0.324760 4.750000 0.187500 +v 0.000000 4.750000 0.375000 +v -0.187500 4.750000 0.324760 +v 0.156250 4.750000 0.270633 +v 0.000000 4.750000 0.312500 +v 0.187500 4.750000 0.324760 +v 0.312500 5.750000 0.000000 +v 0.324759 5.750000 0.187500 +v 0.270633 5.750000 0.156250 +v 0.270633 5.750000 -0.156250 +v 0.375000 5.750000 0.000000 +v 0.156250 5.750000 -0.270633 +v 0.324760 5.750000 -0.187500 +v 0.000000 5.750000 -0.312500 +v 0.187500 5.750000 -0.324759 +v -0.156250 5.750000 -0.270633 +v 0.000000 5.750000 -0.375000 +v -0.324760 5.750000 -0.187500 +v -0.187500 5.750000 -0.324760 +v -0.270633 5.750000 -0.156250 +v -0.375000 5.750000 0.000000 +v -0.270633 5.750000 0.156250 +v -0.312500 5.750000 0.000000 +v -0.156250 5.750000 0.270633 +v -0.324760 5.750000 0.187500 +v 0.000000 5.750000 0.375000 +v -0.187500 5.750000 0.324760 +v 0.156250 5.750000 0.270633 +v 0.000000 5.750000 0.312500 +v 0.187500 5.750000 0.324760 +v 0.375000 4.500000 0.000000 +v 0.270633 4.500000 0.156250 +v 0.324759 4.500000 0.187500 +v 0.324760 4.500000 -0.187500 +v 0.312500 4.500000 0.000000 +v 0.156250 4.500000 -0.270633 +v 0.270633 4.500000 -0.156250 +v 0.187500 4.500000 -0.324759 +v 0.000000 4.500000 -0.312500 +v -0.187500 4.500000 -0.324760 +v 0.000000 4.500000 -0.375000 +v -0.324760 4.500000 -0.187500 +v -0.156250 4.500000 -0.270633 +v -0.375000 4.500000 0.000000 +v -0.270633 4.500000 -0.156250 +v -0.324760 4.500000 0.187500 +v -0.312500 4.500000 0.000000 +v -0.187500 4.500000 0.324760 +v -0.270633 4.500000 0.156250 +v 0.000000 4.500000 0.375000 +v -0.156250 4.500000 0.270633 +v 0.156250 4.500000 0.270633 +v 0.000000 4.500000 0.312500 +v 0.187500 4.500000 0.324760 +v 0.375000 5.500000 0.000000 +v 0.270633 5.500000 0.156250 +v 0.324759 5.500000 0.187500 +v 0.324760 5.500000 -0.187500 +v 0.312500 5.500000 0.000000 +v 0.156250 5.500000 -0.270633 +v 0.270633 5.500000 -0.156250 +v 0.187500 5.500000 -0.324759 +v 0.000000 5.500000 -0.312500 +v -0.187500 5.500000 -0.324760 +v 0.000000 5.500000 -0.375000 +v -0.324760 5.500000 -0.187500 +v -0.156250 5.500000 -0.270633 +v -0.375000 5.500000 0.000000 +v -0.270633 5.500000 -0.156250 +v -0.324760 5.500000 0.187500 +v -0.312500 5.500000 0.000000 +v -0.187500 5.500000 0.324760 +v -0.270633 5.500000 0.156250 +v 0.000000 5.500000 0.375000 +v -0.156250 5.500000 0.270633 +v 0.156250 5.500000 0.270633 +v 0.000000 5.500000 0.312500 +v 0.187500 5.500000 0.324760 +v -0.530330 2.031250 -0.530330 +v -0.154680 2.031250 -0.198874 +v -0.198874 2.031250 -0.154680 +v -0.154680 3.531250 -0.198874 +v -0.530330 3.031250 -0.530330 +v -0.198874 3.531250 -0.154680 +v 0.530330 3.031250 0.530330 +v 0.154680 2.031250 0.198874 +v 0.530330 2.031250 0.530330 +v 0.198874 2.031250 0.154680 +v 0.154680 3.531250 0.198874 +v 0.198874 3.531250 0.154680 +v -0.530330 2.031250 0.530330 +v -0.198874 2.031250 0.154680 +v -0.154680 2.031250 0.198874 +v -0.198874 3.531250 0.154680 +v -0.530330 3.031250 0.530330 +v -0.154680 3.531250 0.198874 +v 0.530330 3.031250 -0.530330 +v 0.198874 2.031250 -0.154680 +v 0.530330 2.031250 -0.530330 +v 0.154680 2.031250 -0.198874 +v 0.198874 3.531250 -0.154680 +v 0.154680 3.531250 -0.198874 +v 0.000000 2.000000 0.250000 +v 0.187500 2.000000 0.324760 +v 0.000000 2.000000 0.375000 +v 0.125000 2.000000 0.216506 +v 0.324759 2.000000 0.187500 +v 0.216506 2.000000 0.125000 +v 0.375000 2.000000 0.000000 +v 0.250000 2.000000 0.000000 +v 0.324760 2.000000 -0.187500 +v 0.125000 2.000000 -0.216506 +v 0.187500 2.000000 -0.324759 +v 0.000000 2.000000 -0.375000 +v 0.000000 2.000000 -0.250000 +v -0.187500 2.000000 -0.324760 +v -0.125000 2.000000 -0.216506 +v -0.324760 2.000000 -0.187500 +v -0.216506 2.000000 -0.125000 +v -0.375000 2.000000 0.000000 +v -0.250000 2.000000 0.000000 +v -0.324760 2.000000 0.187500 +v -0.216506 2.000000 0.125000 +v -0.187500 2.000000 0.324760 +v -0.125000 2.000000 0.216506 +v 0.216506 2.000000 -0.125000 +v 0.324760 6.500000 -0.187500 +v 0.000000 6.500000 -0.375000 +v 0.187500 6.500000 0.324760 +v -0.324760 6.500000 0.187500 +v 0.187500 6.500000 -0.324759 +v -0.187500 6.500000 -0.324760 +v 0.324759 6.500000 0.187500 +v -0.187500 6.500000 0.324760 +v -0.324760 6.500000 -0.187500 +v 0.375000 6.500000 0.000000 +v 0.000000 6.500000 0.375000 +v -0.375000 6.500000 0.000000 +v -0.164063 6.750000 0.284165 +v -0.284165 6.750000 -0.164062 +v 0.284165 6.750000 -0.164062 +v 0.328125 6.750000 0.000000 +v 0.000000 6.750000 0.328125 +v -0.284165 6.750000 0.164063 +v -0.328125 6.750000 0.000000 +v 0.000000 6.750000 -0.328125 +v 0.284165 6.750000 0.164063 +v 0.164062 6.750000 0.284165 +v 0.164063 6.750000 -0.284164 +v -0.164062 6.750000 -0.284165 +v 0.000000 7.000000 0.000000 +v 0.000000 2.500000 0.000000 +v 0.385000 4.937500 0.000000 +v 0.334759 5.312500 0.187500 +v 0.334759 4.937500 0.187500 +v 0.334760 4.937500 -0.187500 +v 0.385000 5.312500 0.000000 +v -0.385000 4.937500 0.000000 +v -0.334760 5.312500 -0.187500 +v -0.334760 4.937500 -0.187500 +v -0.334760 4.937500 0.187500 +v -0.385000 5.312500 0.000000 +v 0.334760 5.312500 -0.187500 +v -0.334760 5.312500 0.187500 +vt 0.576923 0.354167 +vt 0.634615 0.364583 +vt 0.576923 0.364583 +vt 0.634615 0.354167 +vt 0.692308 0.364583 +vt 0.057692 0.354167 +vt 0.000000 0.364583 +vt 0.000000 0.354167 +vt 0.115385 0.354167 +vt 0.057692 0.364583 +vt 0.173077 0.354167 +vt 0.115385 0.364583 +vt 0.230769 0.354167 +vt 0.173077 0.364583 +vt 0.288462 0.354167 +vt 0.230769 0.364583 +vt 0.346154 0.354167 +vt 0.288462 0.364583 +vt 0.403846 0.364583 +vt 0.346154 0.364583 +vt 0.403846 0.354167 +vt 0.461538 0.364583 +vt 0.519231 0.354167 +vt 0.461538 0.354167 +vt 0.519231 0.364583 +vt 0.519231 0.406250 +vt 0.461538 0.416667 +vt 0.461538 0.406250 +vt 0.576923 0.406250 +vt 0.519231 0.416667 +vt 0.634615 0.406250 +vt 0.576923 0.416667 +vt 0.692308 0.406250 +vt 0.634615 0.416667 +vt 0.057692 0.406250 +vt 0.000000 0.416667 +vt 0.000000 0.406250 +vt 0.115385 0.416667 +vt 0.057692 0.416667 +vt 0.115385 0.406250 +vt 0.173077 0.416667 +vt 0.230769 0.406250 +vt 0.173077 0.406250 +vt 0.288462 0.406250 +vt 0.230769 0.416667 +vt 0.346154 0.416667 +vt 0.288462 0.416667 +vt 0.403846 0.406250 +vt 0.346154 0.406250 +vt 0.403846 0.416667 +vt 0.519231 0.593750 +vt 0.461538 0.604167 +vt 0.461538 0.593750 +vt 0.576923 0.593750 +vt 0.519231 0.604167 +vt 0.634615 0.593750 +vt 0.576923 0.604167 +vt 0.692308 0.593750 +vt 0.634615 0.604167 +vt 0.057692 0.593750 +vt 0.000000 0.604167 +vt 0.000000 0.593750 +vt 0.115385 0.604167 +vt 0.057692 0.604167 +vt 0.115385 0.593750 +vt 0.173077 0.604167 +vt 0.230769 0.593750 +vt 0.173077 0.593750 +vt 0.288462 0.593750 +vt 0.230769 0.604167 +vt 0.346154 0.604167 +vt 0.288462 0.604167 +vt 0.403846 0.593750 +vt 0.346154 0.593750 +vt 0.403846 0.604167 +vt 0.519231 0.781250 +vt 0.461538 0.791667 +vt 0.461538 0.781250 +vt 0.576923 0.781250 +vt 0.519231 0.791667 +vt 0.634615 0.781250 +vt 0.576923 0.791667 +vt 0.692308 0.781250 +vt 0.634615 0.791667 +vt 0.057692 0.781250 +vt 0.000000 0.791667 +vt 0.000000 0.781250 +vt 0.115385 0.791667 +vt 0.057692 0.791667 +vt 0.115385 0.781250 +vt 0.173077 0.791667 +vt 0.230769 0.781250 +vt 0.173077 0.781250 +vt 0.288462 0.781250 +vt 0.230769 0.791667 +vt 0.346154 0.791667 +vt 0.288462 0.791667 +vt 0.403846 0.781250 +vt 0.346154 0.781250 +vt 0.403846 0.791667 +vt 0.519231 0.541667 +vt 0.461538 0.552083 +vt 0.461538 0.541667 +vt 0.576923 0.541667 +vt 0.519231 0.552083 +vt 0.634615 0.552083 +vt 0.576923 0.552083 +vt 0.634615 0.541667 +vt 0.692308 0.552083 +vt 0.057692 0.541667 +vt 0.000000 0.552083 +vt 0.000000 0.541667 +vt 0.115385 0.541667 +vt 0.057692 0.552083 +vt 0.173077 0.541667 +vt 0.115385 0.552083 +vt 0.230769 0.541667 +vt 0.173077 0.552083 +vt 0.288462 0.541667 +vt 0.230769 0.552083 +vt 0.346154 0.541667 +vt 0.288462 0.552083 +vt 0.403846 0.552083 +vt 0.346154 0.552083 +vt 0.403846 0.541667 +vt 0.519231 0.729167 +vt 0.461538 0.739583 +vt 0.461538 0.729167 +vt 0.576923 0.729167 +vt 0.519231 0.739583 +vt 0.634615 0.739583 +vt 0.576923 0.739583 +vt 0.634615 0.729167 +vt 0.692308 0.739583 +vt 0.057692 0.729167 +vt 0.000000 0.739583 +vt 0.000000 0.729167 +vt 0.115385 0.729167 +vt 0.057692 0.739583 +vt 0.173077 0.729167 +vt 0.115385 0.739583 +vt 0.230769 0.729167 +vt 0.173077 0.739583 +vt 0.288462 0.729167 +vt 0.230769 0.739583 +vt 0.346154 0.729167 +vt 0.288462 0.739583 +vt 0.403846 0.739583 +vt 0.346154 0.739583 +vt 0.403846 0.729167 +vt 0.846154 0.000000 +vt 0.692308 0.010417 +vt 0.692308 0.000000 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.692308 0.010417 +vt 0.846154 0.177083 +vt 0.846154 0.010417 +vt 0.846154 0.177083 +vt 0.692308 0.010417 +vt 0.846154 0.010417 +vt 0.692308 0.010417 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.846154 0.000000 +vt 0.692308 0.000000 +vt 0.846154 0.000000 +vt 0.692308 0.010417 +vt 0.692308 0.000000 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.692308 0.010417 +vt 0.846154 0.177083 +vt 0.846154 0.010417 +vt 0.846154 0.177083 +vt 0.692308 0.010417 +vt 0.846154 0.010417 +vt 0.692308 0.010417 +vt 0.692308 0.260417 +vt 0.846154 0.270833 +vt 0.692308 0.270833 +vt 0.846154 0.000000 +vt 0.692308 0.000000 +vt 0.346154 0.083333 +vt 0.403846 0.104167 +vt 0.346154 0.104167 +vt 0.403846 0.083333 +vt 0.461538 0.104167 +vt 0.461538 0.083333 +vt 0.519231 0.104167 +vt 0.519231 0.083333 +vt 0.576923 0.104167 +vt 0.615385 0.083333 +vt 0.634615 0.104167 +vt 0.634615 0.083333 +vt 0.692308 0.104167 +vt 0.000000 0.083333 +vt 0.057692 0.104167 +vt 0.000000 0.104167 +vt 0.057692 0.083333 +vt 0.115385 0.104167 +vt 0.115385 0.083333 +vt 0.173077 0.104167 +vt 0.173077 0.083333 +vt 0.230769 0.104167 +vt 0.230769 0.083333 +vt 0.288462 0.104167 +vt 0.288462 0.083333 +vt 0.692308 0.354167 +vt 0.692308 0.416667 +vt 0.692308 0.604167 +vt 0.692308 0.791667 +vt 0.692308 0.541667 +vt 0.692308 0.729167 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.692308 0.260417 +vt 0.384615 0.083333 +vt 0.442308 0.083333 +vt 0.500000 0.083333 +vt 0.557692 0.083333 +vt 0.576923 0.083333 +vt 0.673077 0.083333 +vt 0.038462 0.083333 +vt 0.096154 0.083333 +vt 0.153846 0.083333 +vt 0.211538 0.083333 +vt 0.269231 0.083333 +vt 0.326923 0.083333 +vt 0.576923 0.916667 +vt 0.000000 0.916667 +vt 0.403846 0.916667 +vt 0.230769 0.916667 +vt 0.634615 0.916667 +vt 0.057692 0.916667 +vt 0.461538 0.916667 +vt 0.288462 0.916667 +vt 0.115385 0.916667 +vt 0.519231 0.916667 +vt 0.346154 0.916667 +vt 0.173077 0.916667 +vt 0.288462 0.958333 +vt 0.115385 0.958333 +vt 0.557692 0.958333 +vt 0.519231 0.958333 +vt 0.346154 0.958333 +vt 0.211538 0.958333 +vt 0.173077 0.958333 +vt 0.576923 0.958333 +vt 0.000000 0.958333 +vt 0.442308 0.958333 +vt 0.403846 0.958333 +vt 0.230769 0.958333 +vt 0.692308 0.916667 +vt 0.634615 0.958333 +vt 0.057692 0.958333 +vt 0.461538 0.958333 +vt 0.038462 0.958333 +vt 0.019231 1.000000 +vt 0.096154 0.958333 +vt 0.076923 1.000000 +vt 0.153846 0.958333 +vt 0.134615 1.000000 +vt 0.192308 1.000000 +vt 0.269231 0.958333 +vt 0.250000 1.000000 +vt 0.326923 0.958333 +vt 0.307692 1.000000 +vt 0.384615 0.958333 +vt 0.365385 1.000000 +vt 0.423077 1.000000 +vt 0.500000 0.958333 +vt 0.480769 1.000000 +vt 0.538462 1.000000 +vt 0.615385 0.958333 +vt 0.596154 1.000000 +vt 0.673077 0.958333 +vt 0.653846 1.000000 +vt 0.019231 0.000000 +vt 0.653846 0.000000 +vt 0.596154 0.000000 +vt 0.538462 0.000000 +vt 0.480769 0.000000 +vt 0.423077 0.000000 +vt 0.365385 0.000000 +vt 0.307692 0.000000 +vt 0.250000 0.000000 +vt 0.192308 0.000000 +vt 0.134615 0.000000 +vt 0.076923 0.000000 +vt 0.846154 0.270833 +vt 0.692308 0.437500 +vt 0.692308 0.270833 +vt 1.000000 0.270833 +vt 0.846154 0.437500 +vt 0.846154 0.270833 +vt 0.692308 0.437500 +vt 0.692308 0.270833 +vt 1.000000 0.270833 +vt 0.846154 0.437500 +vt 1.000000 0.437500 +vt 1.000000 0.437500 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.5000 0.7071 -0.5000 +vn -0.7498 -0.0000 0.6616 +vn 0.6616 0.0000 -0.7498 +vn -0.6616 -0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.6616 -0.0000 0.7498 +vn -0.7498 0.0000 -0.6616 +vn 0.7498 0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn 0.5000 0.7071 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 -0.0000 0.8660 +vn 0.0000 -0.0000 1.0000 +vn -0.8660 -0.0000 0.5000 +vn -1.0000 -0.0000 0.0000 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.0000 0.0000 -1.0000 +vn 0.8660 -0.0000 0.5000 +vn -0.5000 -0.0000 0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.8624 0.0912 -0.4979 +vn 0.0000 0.0912 -0.9958 +vn 0.4979 0.0912 0.8624 +vn -0.8624 0.0912 0.4979 +vn 0.4979 0.0912 -0.8624 +vn -0.4979 0.0912 -0.8624 +vn 0.8624 0.0912 0.4979 +vn -0.4979 0.0912 0.8624 +vn -0.8624 0.0912 -0.4979 +vn 0.9958 0.0912 0.0000 +vn 0.0000 0.0912 0.9958 +vn -0.9958 0.0912 -0.0000 +vn -0.4330 0.5000 0.7500 +vn -0.7500 0.5000 -0.4330 +vn 0.7500 0.5000 -0.4330 +vn 0.8660 0.5000 0.0000 +vn 0.0000 0.5000 0.8660 +vn -0.7500 0.5000 0.4330 +vn -0.8660 0.5000 -0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.7500 0.5000 0.4330 +vn 0.4330 0.5000 0.7500 +vn 0.4330 0.5000 -0.7500 +vn -0.4330 0.5000 -0.7500 +vn 0.4472 -0.4472 0.7746 +vn 0.0000 -0.4472 0.8944 +vn -0.4472 -0.4472 0.7746 +vn -0.7746 -0.4472 0.4472 +vn -0.8944 -0.4472 0.0000 +vn -0.7746 -0.4472 -0.4472 +vn -0.4472 -0.4472 -0.7746 +vn 0.0000 -0.4472 -0.8944 +vn 0.4472 -0.4472 -0.7746 +vn 0.7746 -0.4472 -0.4472 +vn 0.8944 -0.4472 0.0000 +vn 0.7746 -0.4472 0.4472 +vn 0.9659 -0.0000 0.2588 +vn 0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 0.2588 +s off +f 3892/5556/446 3893/5557/446 3894/5558/446 +f 3895/5559/446 3896/5560/446 3893/5557/446 +f 3897/5561/446 3896/5562/446 3898/5563/446 +f 3899/5564/446 3900/5565/446 3897/5561/446 +f 3901/5566/446 3902/5567/446 3899/5564/446 +f 3903/5568/446 3904/5569/446 3901/5566/446 +f 3905/5570/446 3906/5571/446 3903/5568/446 +f 3907/5572/446 3908/5573/446 3905/5570/446 +f 3907/5572/446 3909/5574/446 3910/5575/446 +f 3911/5576/446 3912/5577/446 3909/5574/446 +f 3913/5578/446 3912/5577/446 3914/5579/446 +f 3892/5556/446 3915/5580/446 3913/5578/446 +f 3916/5581/447 3917/5582/447 3918/5583/447 +f 3919/5584/447 3920/5585/447 3916/5581/447 +f 3921/5586/447 3922/5587/447 3919/5584/447 +f 3923/5588/447 3924/5589/447 3921/5586/447 +f 3925/5590/447 3926/5591/447 3923/5592/447 +f 3925/5590/447 3927/5593/447 3928/5594/447 +f 3929/5595/447 3930/5596/447 3927/5593/447 +f 3931/5597/447 3930/5596/447 3932/5598/447 +f 3933/5599/447 3934/5600/447 3931/5597/447 +f 3933/5599/447 3935/5601/447 3936/5602/447 +f 3937/5603/447 3935/5601/447 3938/5604/447 +f 3918/5583/447 3939/5605/447 3937/5603/447 +f 3940/5606/447 3941/5607/447 3942/5608/447 +f 3943/5609/447 3944/5610/447 3940/5606/447 +f 3945/5611/447 3946/5612/447 3943/5609/447 +f 3947/5613/447 3948/5614/447 3945/5611/447 +f 3949/5615/447 3950/5616/447 3947/5617/447 +f 3949/5615/447 3951/5618/447 3952/5619/447 +f 3953/5620/447 3954/5621/447 3951/5618/447 +f 3955/5622/447 3954/5621/447 3956/5623/447 +f 3957/5624/447 3958/5625/447 3955/5622/447 +f 3957/5624/447 3959/5626/447 3960/5627/447 +f 3961/5628/447 3959/5626/447 3962/5629/447 +f 3942/5608/447 3963/5630/447 3961/5628/447 +f 3964/5631/447 3965/5632/447 3966/5633/447 +f 3967/5634/447 3968/5635/447 3964/5631/447 +f 3969/5636/447 3970/5637/447 3967/5634/447 +f 3971/5638/447 3972/5639/447 3969/5636/447 +f 3973/5640/447 3974/5641/447 3971/5642/447 +f 3973/5640/447 3975/5643/447 3976/5644/447 +f 3977/5645/447 3978/5646/447 3975/5643/447 +f 3979/5647/447 3978/5646/447 3980/5648/447 +f 3981/5649/447 3982/5650/447 3979/5647/447 +f 3981/5649/447 3983/5651/447 3984/5652/447 +f 3985/5653/447 3983/5651/447 3986/5654/447 +f 3966/5633/447 3987/5655/447 3985/5653/447 +f 3988/5656/446 3989/5657/446 3990/5658/446 +f 3991/5659/446 3992/5660/446 3988/5656/446 +f 3991/5659/446 3993/5661/446 3994/5662/446 +f 3995/5663/446 3996/5664/446 3993/5661/446 +f 3997/5665/446 3996/5666/446 3998/5667/446 +f 3999/5668/446 4000/5669/446 3997/5665/446 +f 4001/5670/446 4002/5671/446 3999/5668/446 +f 4003/5672/446 4004/5673/446 4001/5670/446 +f 4005/5674/446 4006/5675/446 4003/5672/446 +f 4007/5676/446 4008/5677/446 4005/5674/446 +f 4007/5676/446 4009/5678/446 4010/5679/446 +f 4011/5680/446 3989/5657/446 4009/5678/446 +f 4012/5681/446 4013/5682/446 4014/5683/446 +f 4015/5684/446 4016/5685/446 4012/5681/446 +f 4015/5684/446 4017/5686/446 4018/5687/446 +f 4019/5688/446 4020/5689/446 4017/5686/446 +f 4021/5690/446 4020/5691/446 4022/5692/446 +f 4023/5693/446 4024/5694/446 4021/5690/446 +f 4025/5695/446 4026/5696/446 4023/5693/446 +f 4027/5697/446 4028/5698/446 4025/5695/446 +f 4029/5699/446 4030/5700/446 4027/5697/446 +f 4031/5701/446 4032/5702/446 4029/5699/446 +f 4031/5701/446 4033/5703/446 4034/5704/446 +f 4035/5705/446 4013/5682/446 4033/5703/446 +f 4036/5706/447 4037/5707/447 4038/5708/447 +f 4039/5709/448 4040/5710/448 4041/5711/448 +f 4038/5712/449 4040/5713/449 4036/5714/449 +f 4040/5713/450 4037/5707/450 4036/5714/450 +f 4042/5715/451 4043/5716/451 4044/5717/451 +f 4045/5718/452 4042/5715/452 4044/5717/452 +f 4046/5719/453 4042/5720/453 4047/5721/453 +f 4044/5722/447 4043/5716/447 4045/5723/447 +f 4048/5724/447 4049/5725/447 4050/5726/447 +f 4051/5727/454 4052/5728/454 4053/5729/454 +f 4050/5730/455 4052/5731/455 4048/5732/455 +f 4052/5731/456 4049/5725/456 4048/5732/456 +f 4054/5733/457 4055/5734/457 4056/5735/457 +f 4057/5736/458 4054/5733/458 4056/5735/458 +f 4058/5737/459 4054/5738/459 4059/5739/459 +f 4056/5740/447 4055/5734/447 4057/5741/447 +f 4060/5742/447 4061/5743/447 4062/5744/447 +f 4063/5745/447 4064/5746/447 4061/5743/447 +f 4065/5747/447 4066/5748/447 4064/5746/447 +f 4067/5749/447 4068/5750/447 4066/5748/447 +f 4068/5750/447 4069/5751/447 4070/5752/447 +f 4069/5753/447 4071/5754/447 4070/5752/447 +f 4072/5755/447 4073/5756/447 4071/5757/447 +f 4074/5758/447 4075/5759/447 4073/5756/447 +f 4076/5760/447 4077/5761/447 4075/5759/447 +f 4078/5762/447 4079/5763/447 4077/5761/447 +f 4080/5764/447 4081/5765/447 4079/5763/447 +f 4082/5766/447 4062/5744/447 4081/5765/447 +f 3892/5556/446 3895/5559/446 3893/5557/446 +f 3895/5559/446 3898/5767/446 3896/5560/446 +f 3897/5561/446 3900/5565/446 3896/5562/446 +f 3899/5564/446 3902/5567/446 3900/5565/446 +f 3901/5566/446 3904/5569/446 3902/5567/446 +f 3903/5568/446 3906/5571/446 3904/5569/446 +f 3905/5570/446 3908/5573/446 3906/5571/446 +f 3907/5572/446 3910/5575/446 3908/5573/446 +f 3907/5572/446 3911/5576/446 3909/5574/446 +f 3911/5576/446 3914/5579/446 3912/5577/446 +f 3913/5578/446 3915/5580/446 3912/5577/446 +f 3892/5556/446 3894/5558/446 3915/5580/446 +f 3916/5581/447 3920/5585/447 3917/5582/447 +f 3919/5584/447 3922/5587/447 3920/5585/447 +f 3921/5586/447 3924/5589/447 3922/5587/447 +f 3923/5588/447 3926/5768/447 3924/5589/447 +f 3925/5590/447 3928/5594/447 3926/5591/447 +f 3925/5590/447 3929/5595/447 3927/5593/447 +f 3929/5595/447 3932/5598/447 3930/5596/447 +f 3931/5597/447 3934/5600/447 3930/5596/447 +f 3933/5599/447 3936/5602/447 3934/5600/447 +f 3933/5599/447 3938/5604/447 3935/5601/447 +f 3937/5603/447 3939/5605/447 3935/5601/447 +f 3918/5583/447 3917/5582/447 3939/5605/447 +f 3940/5606/447 3944/5610/447 3941/5607/447 +f 3943/5609/447 3946/5612/447 3944/5610/447 +f 3945/5611/447 3948/5614/447 3946/5612/447 +f 3947/5613/447 3950/5769/447 3948/5614/447 +f 3949/5615/447 3952/5619/447 3950/5616/447 +f 3949/5615/447 3953/5620/447 3951/5618/447 +f 3953/5620/447 3956/5623/447 3954/5621/447 +f 3955/5622/447 3958/5625/447 3954/5621/447 +f 3957/5624/447 3960/5627/447 3958/5625/447 +f 3957/5624/447 3962/5629/447 3959/5626/447 +f 3961/5628/447 3963/5630/447 3959/5626/447 +f 3942/5608/447 3941/5607/447 3963/5630/447 +f 3964/5631/447 3968/5635/447 3965/5632/447 +f 3967/5634/447 3970/5637/447 3968/5635/447 +f 3969/5636/447 3972/5639/447 3970/5637/447 +f 3971/5638/447 3974/5770/447 3972/5639/447 +f 3973/5640/447 3976/5644/447 3974/5641/447 +f 3973/5640/447 3977/5645/447 3975/5643/447 +f 3977/5645/447 3980/5648/447 3978/5646/447 +f 3979/5647/447 3982/5650/447 3978/5646/447 +f 3981/5649/447 3984/5652/447 3982/5650/447 +f 3981/5649/447 3986/5654/447 3983/5651/447 +f 3985/5653/447 3987/5655/447 3983/5651/447 +f 3966/5633/447 3965/5632/447 3987/5655/447 +f 3988/5656/446 3992/5660/446 3989/5657/446 +f 3991/5659/446 3994/5662/446 3992/5660/446 +f 3991/5659/446 3995/5663/446 3993/5661/446 +f 3995/5663/446 3998/5771/446 3996/5664/446 +f 3997/5665/446 4000/5669/446 3996/5666/446 +f 3999/5668/446 4002/5671/446 4000/5669/446 +f 4001/5670/446 4004/5673/446 4002/5671/446 +f 4003/5672/446 4006/5675/446 4004/5673/446 +f 4005/5674/446 4008/5677/446 4006/5675/446 +f 4007/5676/446 4010/5679/446 4008/5677/446 +f 4007/5676/446 4011/5680/446 4009/5678/446 +f 4011/5680/446 3990/5658/446 3989/5657/446 +f 4012/5681/446 4016/5685/446 4013/5682/446 +f 4015/5684/446 4018/5687/446 4016/5685/446 +f 4015/5684/446 4019/5688/446 4017/5686/446 +f 4019/5688/446 4022/5772/446 4020/5689/446 +f 4021/5690/446 4024/5694/446 4020/5691/446 +f 4023/5693/446 4026/5696/446 4024/5694/446 +f 4025/5695/446 4028/5698/446 4026/5696/446 +f 4027/5697/446 4030/5700/446 4028/5698/446 +f 4029/5699/446 4032/5702/446 4030/5700/446 +f 4031/5701/446 4034/5704/446 4032/5702/446 +f 4031/5701/446 4035/5705/446 4033/5703/446 +f 4035/5705/446 4014/5683/446 4013/5682/446 +f 4038/5712/449 4041/5773/449 4040/5713/449 +f 4040/5713/450 4039/5709/450 4037/5707/450 +f 4042/5715/451 4046/5719/451 4043/5716/451 +f 4045/5718/452 4047/5774/452 4042/5715/452 +f 4050/5730/455 4053/5775/455 4052/5731/455 +f 4052/5731/456 4051/5727/456 4049/5725/456 +f 4054/5733/457 4058/5737/457 4055/5734/457 +f 4057/5736/458 4059/5776/458 4054/5733/458 +f 4060/5742/447 4063/5777/447 4061/5743/447 +f 4063/5745/447 4065/5778/447 4064/5746/447 +f 4065/5747/447 4067/5779/447 4066/5748/447 +f 4067/5749/447 4083/5780/447 4068/5750/447 +f 4068/5750/447 4083/5781/447 4069/5751/447 +f 4069/5753/447 4072/5782/447 4071/5754/447 +f 4072/5755/447 4074/5783/447 4073/5756/447 +f 4074/5758/447 4076/5784/447 4075/5759/447 +f 4076/5760/447 4078/5785/447 4077/5761/447 +f 4078/5762/447 4080/5786/447 4079/5763/447 +f 4080/5764/447 4082/5787/447 4081/5765/447 +f 4082/5766/447 4060/5788/447 4062/5744/447 +s 1 +f 4068/5750/460 3913/5578/461 4066/5748/461 +f 4061/5743/462 3907/5572/463 4062/5744/463 +f 4079/5763/464 3901/5566/465 4077/5761/465 +f 4070/5752/466 3892/5556/460 4068/5750/460 +f 4073/5756/467 3898/5563/468 4071/5757/468 +f 4064/5746/469 3911/5576/462 4061/5743/462 +f 4081/5765/470 3903/5568/464 4079/5763/464 +f 4071/5754/468 3895/5559/466 4070/5752/466 +f 4075/5759/471 3897/5561/467 4073/5756/467 +f 4066/5748/461 3914/5579/469 4064/5746/469 +f 4062/5744/463 3905/5570/470 4081/5765/470 +f 4077/5761/465 3899/5564/471 4075/5759/471 +f 3912/5577/469 3937/5603/462 3909/5574/462 +f 3908/5573/470 3931/5597/464 3906/5571/464 +f 3896/5560/468 3921/5586/466 3893/5557/466 +f 3902/5567/471 3925/5590/467 3900/5565/467 +f 3915/5580/461 3918/5583/469 3912/5577/469 +f 3910/5575/463 3933/5599/470 3908/5573/470 +f 3904/5569/465 3929/5595/471 3902/5567/471 +f 3894/5558/460 3916/5581/461 3915/5580/461 +f 3909/5574/462 3938/5604/463 3910/5575/463 +f 3906/5571/464 3932/5598/465 3904/5569/465 +f 3893/5557/466 3919/5584/460 3894/5558/460 +f 3900/5565/467 3923/5592/468 3896/5562/468 +f 3924/5589/466 3991/5659/460 3922/5587/460 +f 3928/5594/467 3998/5667/468 3926/5591/468 +f 3917/5582/469 4011/5680/462 3939/5605/462 +f 3936/5602/470 4003/5672/464 3934/5600/464 +f 3926/5768/468 3995/5663/466 3924/5589/466 +f 3927/5593/471 3997/5665/467 3928/5594/467 +f 3920/5585/461 3990/5658/469 3917/5582/469 +f 3935/5601/463 4005/5674/470 3936/5602/470 +f 3930/5596/465 3999/5668/471 3927/5593/471 +f 3922/5587/460 3988/5656/461 3920/5585/461 +f 3939/5605/462 4007/5676/463 3935/5601/463 +f 3934/5600/464 4001/5670/465 3930/5596/465 +f 3989/5657/469 3961/5628/462 4009/5678/462 +f 4008/5677/470 3955/5622/464 4006/5675/464 +f 3996/5664/468 3945/5611/466 3993/5661/466 +f 4002/5671/471 3949/5615/467 4000/5669/467 +f 3992/5660/461 3942/5608/469 3989/5657/469 +f 4010/5679/463 3957/5624/470 4008/5677/470 +f 4004/5673/465 3953/5620/471 4002/5671/471 +f 3994/5662/460 3940/5606/461 3992/5660/461 +f 4009/5678/462 3962/5629/463 4010/5679/463 +f 4006/5675/464 3956/5623/465 4004/5673/465 +f 3993/5661/466 3943/5609/460 3994/5662/460 +f 4000/5669/467 3947/5617/468 3996/5666/468 +f 3948/5614/466 4015/5684/460 3946/5612/460 +f 3952/5619/467 4022/5692/468 3950/5616/468 +f 3941/5607/469 4035/5705/462 3963/5630/462 +f 3960/5627/470 4027/5697/464 3958/5625/464 +f 3950/5769/468 4019/5688/466 3948/5614/466 +f 3951/5618/471 4021/5690/467 3952/5619/467 +f 3944/5610/461 4014/5683/469 3941/5607/469 +f 3959/5626/463 4029/5699/470 3960/5627/470 +f 3954/5621/465 4023/5693/471 3951/5618/471 +f 3946/5612/460 4012/5681/461 3944/5610/461 +f 3963/5630/462 4031/5701/463 3959/5626/463 +f 3958/5625/464 4025/5695/465 3954/5621/465 +f 4013/5682/469 3985/5653/462 4033/5703/462 +f 4032/5702/470 3979/5647/464 4030/5700/464 +f 4020/5689/468 3969/5636/466 4017/5686/466 +f 4026/5696/471 3973/5640/467 4024/5694/467 +f 4016/5685/461 3966/5633/469 4013/5682/469 +f 4034/5704/463 3981/5649/470 4032/5702/470 +f 4028/5698/465 3977/5645/471 4026/5696/471 +f 4018/5687/460 3964/5631/461 4016/5685/461 +f 4033/5703/462 3986/5654/463 4034/5704/463 +f 4030/5700/464 3980/5648/465 4028/5698/465 +f 4017/5686/466 3967/5634/460 4018/5687/460 +f 4024/5694/467 3971/5642/468 4020/5691/468 +f 3972/5639/466 4084/5789/472 3970/5637/460 +f 3976/5644/467 4085/5790/473 3974/5641/468 +f 3965/5632/469 4086/5791/474 3987/5655/462 +f 3984/5652/470 4087/5792/475 3982/5650/464 +f 3974/5770/468 4088/5793/476 3972/5639/466 +f 3975/5643/471 4089/5794/477 3976/5644/467 +f 3968/5635/461 4090/5795/478 3965/5632/469 +f 3983/5651/463 4091/5796/479 3984/5652/470 +f 3978/5646/465 4092/5797/480 3975/5643/471 +f 3970/5637/460 4093/5798/481 3968/5635/461 +f 3987/5655/462 4094/5799/482 3983/5651/463 +f 3982/5650/464 4095/5800/483 3978/5646/465 +f 4094/5799/482 4096/5801/484 4091/5796/479 +f 4095/5800/483 4097/5802/485 4092/5797/480 +f 4093/5798/481 4098/5803/486 4099/5804/487 +f 4086/5791/474 4100/5805/488 4094/5799/482 +f 4095/5800/483 4101/5806/489 4102/5807/490 +f 4088/5793/476 4098/5808/486 4084/5789/472 +f 4089/5794/477 4103/5809/491 4085/5790/473 +f 4086/5791/474 4104/5810/492 4105/5811/493 +f 4091/5796/479 4101/5812/489 4087/5792/475 +f 4085/5813/473 4106/5814/494 4088/5793/476 +f 4092/5797/480 4107/5815/495 4089/5794/477 +f 4093/5798/481 4104/5816/492 4090/5795/478 +f 4103/5809/491 4107/5817/495 4108/5818/446 +f 4107/5815/495 4097/5819/485 4108/5820/446 +f 4097/5802/485 4102/5821/490 4108/5822/446 +f 4102/5807/490 4101/5806/489 4108/5823/446 +f 4101/5812/489 4096/5824/484 4108/5825/446 +f 4096/5801/484 4100/5826/488 4108/5827/446 +f 4100/5805/488 4105/5828/493 4108/5829/446 +f 4105/5811/493 4104/5810/492 4108/5830/446 +f 4104/5816/492 4099/5831/487 4108/5832/446 +f 4099/5804/487 4098/5803/486 4108/5833/446 +f 4098/5808/486 4106/5834/494 4108/5835/446 +f 4106/5814/494 4103/5836/491 4108/5837/446 +f 4074/5783/496 4072/5755/497 4109/5838/447 +f 4072/5782/497 4069/5753/498 4109/5839/447 +f 4069/5751/498 4083/5781/499 4109/5840/447 +f 4083/5780/499 4067/5749/500 4109/5841/447 +f 4067/5779/500 4065/5747/501 4109/5842/447 +f 4065/5778/501 4063/5745/502 4109/5843/447 +f 4063/5777/502 4060/5742/503 4109/5844/447 +f 4060/5788/503 4082/5766/504 4109/5845/447 +f 4082/5787/504 4080/5764/505 4109/5846/447 +f 4080/5786/505 4078/5762/506 4109/5847/447 +f 4078/5785/506 4076/5760/507 4109/5848/447 +f 4076/5784/507 4074/5758/496 4109/5849/447 +f 4110/5850/461 4111/5851/508 4112/5852/508 +f 4113/5853/509 4114/5854/461 4110/5850/461 +f 4115/5855/465 4116/5856/510 4117/5857/510 +f 4118/5858/511 4119/5859/465 4115/5855/465 +f 4068/5750/460 3892/5556/460 3913/5578/461 +f 4061/5743/462 3911/5576/462 3907/5572/463 +f 4079/5763/464 3903/5568/464 3901/5566/465 +f 4070/5752/466 3895/5559/466 3892/5556/460 +f 4073/5756/467 3897/5561/467 3898/5563/468 +f 4064/5746/469 3914/5579/469 3911/5576/462 +f 4081/5765/470 3905/5570/470 3903/5568/464 +f 4071/5754/468 3898/5767/468 3895/5559/466 +f 4075/5759/471 3899/5564/471 3897/5561/467 +f 4066/5748/461 3913/5578/461 3914/5579/469 +f 4062/5744/463 3907/5572/463 3905/5570/470 +f 4077/5761/465 3901/5566/465 3899/5564/471 +f 3912/5577/469 3918/5583/469 3937/5603/462 +f 3908/5573/470 3933/5599/470 3931/5597/464 +f 3896/5560/468 3923/5588/468 3921/5586/466 +f 3902/5567/471 3929/5595/471 3925/5590/467 +f 3915/5580/461 3916/5581/461 3918/5583/469 +f 3910/5575/463 3938/5604/463 3933/5599/470 +f 3904/5569/465 3932/5598/465 3929/5595/471 +f 3894/5558/460 3919/5584/460 3916/5581/461 +f 3909/5574/462 3937/5603/462 3938/5604/463 +f 3906/5571/464 3931/5597/464 3932/5598/465 +f 3893/5557/466 3921/5586/466 3919/5584/460 +f 3900/5565/467 3925/5590/467 3923/5592/468 +f 3924/5589/466 3995/5663/466 3991/5659/460 +f 3928/5594/467 3997/5665/467 3998/5667/468 +f 3917/5582/469 3990/5658/469 4011/5680/462 +f 3936/5602/470 4005/5674/470 4003/5672/464 +f 3926/5768/468 3998/5771/468 3995/5663/466 +f 3927/5593/471 3999/5668/471 3997/5665/467 +f 3920/5585/461 3988/5656/461 3990/5658/469 +f 3935/5601/463 4007/5676/463 4005/5674/470 +f 3930/5596/465 4001/5670/465 3999/5668/471 +f 3922/5587/460 3991/5659/460 3988/5656/461 +f 3939/5605/462 4011/5680/462 4007/5676/463 +f 3934/5600/464 4003/5672/464 4001/5670/465 +f 3989/5657/469 3942/5608/469 3961/5628/462 +f 4008/5677/470 3957/5624/470 3955/5622/464 +f 3996/5664/468 3947/5613/468 3945/5611/466 +f 4002/5671/471 3953/5620/471 3949/5615/467 +f 3992/5660/461 3940/5606/461 3942/5608/469 +f 4010/5679/463 3962/5629/463 3957/5624/470 +f 4004/5673/465 3956/5623/465 3953/5620/471 +f 3994/5662/460 3943/5609/460 3940/5606/461 +f 4009/5678/462 3961/5628/462 3962/5629/463 +f 4006/5675/464 3955/5622/464 3956/5623/465 +f 3993/5661/466 3945/5611/466 3943/5609/460 +f 4000/5669/467 3949/5615/467 3947/5617/468 +f 3948/5614/466 4019/5688/466 4015/5684/460 +f 3952/5619/467 4021/5690/467 4022/5692/468 +f 3941/5607/469 4014/5683/469 4035/5705/462 +f 3960/5627/470 4029/5699/470 4027/5697/464 +f 3950/5769/468 4022/5772/468 4019/5688/466 +f 3951/5618/471 4023/5693/471 4021/5690/467 +f 3944/5610/461 4012/5681/461 4014/5683/469 +f 3959/5626/463 4031/5701/463 4029/5699/470 +f 3954/5621/465 4025/5695/465 4023/5693/471 +f 3946/5612/460 4015/5684/460 4012/5681/461 +f 3963/5630/462 4035/5705/462 4031/5701/463 +f 3958/5625/464 4027/5697/464 4025/5695/465 +f 4013/5682/469 3966/5633/469 3985/5653/462 +f 4032/5702/470 3981/5649/470 3979/5647/464 +f 4020/5689/468 3971/5638/468 3969/5636/466 +f 4026/5696/471 3977/5645/471 3973/5640/467 +f 4016/5685/461 3964/5631/461 3966/5633/469 +f 4034/5704/463 3986/5654/463 3981/5649/470 +f 4028/5698/465 3980/5648/465 3977/5645/471 +f 4018/5687/460 3967/5634/460 3964/5631/461 +f 4033/5703/462 3985/5653/462 3986/5654/463 +f 4030/5700/464 3979/5647/464 3980/5648/465 +f 4017/5686/466 3969/5636/466 3967/5634/460 +f 4024/5694/467 3973/5640/467 3971/5642/468 +f 3972/5639/466 4088/5793/476 4084/5789/472 +f 3976/5644/467 4089/5794/477 4085/5790/473 +f 3965/5632/469 4090/5795/478 4086/5791/474 +f 3984/5652/470 4091/5796/479 4087/5792/475 +f 3974/5770/468 4085/5813/473 4088/5793/476 +f 3975/5643/471 4092/5797/480 4089/5794/477 +f 3968/5635/461 4093/5798/481 4090/5795/478 +f 3983/5651/463 4094/5799/482 4091/5796/479 +f 3978/5646/465 4095/5800/483 4092/5797/480 +f 3970/5637/460 4084/5789/472 4093/5798/481 +f 3987/5655/462 4086/5791/474 4094/5799/482 +f 3982/5650/464 4087/5792/475 4095/5800/483 +f 4094/5799/482 4100/5826/488 4096/5801/484 +f 4095/5800/483 4102/5821/490 4097/5802/485 +f 4093/5798/481 4084/5789/472 4098/5803/486 +f 4086/5791/474 4105/5828/493 4100/5805/488 +f 4095/5800/483 4087/5792/475 4101/5806/489 +f 4088/5793/476 4106/5834/494 4098/5808/486 +f 4089/5794/477 4107/5817/495 4103/5809/491 +f 4086/5791/474 4090/5795/478 4104/5810/492 +f 4091/5796/479 4096/5824/484 4101/5812/489 +f 4085/5813/473 4103/5836/491 4106/5814/494 +f 4092/5797/480 4097/5819/485 4107/5815/495 +f 4093/5798/481 4099/5831/487 4104/5816/492 +f 4110/5850/461 4114/5854/461 4111/5851/508 +f 4113/5853/509 4120/5860/509 4114/5854/461 +f 4115/5855/465 4119/5859/465 4116/5856/510 +f 4118/5858/511 4121/5861/511 4119/5859/465 +o ABM_Missile +v -0.176777 3.500000 -0.176777 +v 0.176777 3.500000 -0.176777 +v 0.176777 3.500000 0.176777 +v 0.154329 2.250000 -0.019030 +v 0.161612 2.250000 -0.161612 +v 0.202165 2.250000 -0.134515 +v 0.250000 2.250000 0.000000 +v 0.250000 2.250000 -0.125000 +v 0.297835 2.250000 -0.134515 +v 0.345671 2.250000 -0.019030 +v 0.338388 2.250000 -0.161612 +v 0.426777 2.250000 -0.073223 +v 0.480970 2.250000 -0.154329 +v 0.365485 2.250000 -0.202165 +v 0.500000 2.250000 -0.250000 +v 0.375000 2.250000 -0.250000 +v 0.480970 2.250000 -0.345671 +v 0.365485 2.250000 -0.297835 +v 0.338388 2.250000 -0.338388 +v 0.426777 2.250000 -0.426777 +v 0.345671 2.250000 -0.480970 +v 0.297835 2.250000 -0.365485 +v 0.250000 2.250000 -0.500000 +v 0.250000 2.250000 -0.375000 +v 0.202165 2.250000 -0.365485 +v 0.154329 2.250000 -0.480970 +v 0.161612 2.250000 -0.338388 +v 0.073223 2.250000 -0.426777 +v 0.000000 2.250000 -0.250000 +v 0.134515 2.250000 -0.202165 +v 0.019030 2.250000 -0.154329 +v 0.019030 2.250000 -0.345671 +v 0.134515 2.250000 -0.297835 +v 0.073223 2.250000 -0.073223 +v 0.125000 2.250000 -0.250000 +v 0.426777 2.000000 -0.426777 +v 0.426777 2.000000 -0.073223 +v 0.073223 2.000000 -0.073223 +v -0.031250 8.000000 -0.125000 +v 0.000000 6.500000 -0.875000 +v -0.031250 6.000000 -0.125000 +v 0.000000 7.500000 -0.875000 +v 0.031250 6.000000 -0.125000 +v 0.031250 8.000000 -0.125000 +v 0.031250 2.500000 -0.125000 +v -0.031250 2.500000 -0.125000 +v 0.000000 2.500000 -1.125000 +v 0.031250 4.500000 -0.125000 +v 0.000000 4.000000 -1.125000 +v -0.031250 4.500000 -0.125000 +v -0.062500 7.750000 -0.875000 +v 0.031250 7.750000 -0.820873 +v 0.031250 7.750000 -0.929127 +v 0.062500 6.250000 -0.875000 +v 0.031250 6.250000 -0.820873 +v -0.031250 6.250000 -0.820873 +v -0.154329 2.250000 0.019030 +v -0.161612 2.250000 0.161612 +v -0.202165 2.250000 0.134515 +v -0.250000 2.250000 0.000000 +v -0.250000 2.250000 0.125000 +v -0.297835 2.250000 0.134515 +v -0.345671 2.250000 0.019030 +v -0.338388 2.250000 0.161612 +v -0.426777 2.250000 0.073223 +v -0.480970 2.250000 0.154329 +v -0.365485 2.250000 0.202165 +v -0.500000 2.250000 0.250000 +v -0.375000 2.250000 0.250000 +v -0.480970 2.250000 0.345671 +v -0.365485 2.250000 0.297835 +v -0.338388 2.250000 0.338388 +v -0.426777 2.250000 0.426777 +v -0.345671 2.250000 0.480970 +v -0.297835 2.250000 0.365485 +v -0.250000 2.250000 0.500000 +v -0.250000 2.250000 0.375000 +v -0.202164 2.250000 0.365485 +v -0.154329 2.250000 0.480970 +v -0.161612 2.250000 0.338388 +v -0.073223 2.250000 0.426777 +v 0.000000 2.250000 0.250000 +v -0.134515 2.250000 0.202165 +v -0.019030 2.250000 0.154329 +v -0.019030 2.250000 0.345671 +v -0.134515 2.250000 0.297835 +v -0.073223 2.250000 0.073223 +v -0.125000 2.250000 0.250000 +v -0.426777 2.000000 0.073223 +v -0.250000 2.000000 0.000000 +v -0.073223 2.000000 0.073223 +v -0.031250 2.500000 0.125000 +v 0.031250 2.500000 0.125000 +v 0.000000 2.500000 1.125000 +v -0.031250 4.500000 0.125000 +v 0.000000 4.000000 1.125000 +v 0.031250 4.500000 0.125000 +v -0.019030 2.250000 -0.154329 +v -0.161612 2.250000 -0.161612 +v -0.134515 2.250000 -0.202165 +v 0.000000 2.250000 -0.250000 +v -0.125000 2.250000 -0.250000 +v -0.134515 2.250000 -0.297835 +v -0.019030 2.250000 -0.345671 +v -0.161612 2.250000 -0.338388 +v -0.073223 2.250000 -0.426777 +v -0.154329 2.250000 -0.480970 +v -0.202165 2.250000 -0.365485 +v -0.250000 2.250000 -0.500000 +v -0.250000 2.250000 -0.375000 +v -0.345671 2.250000 -0.480970 +v -0.297835 2.250000 -0.365485 +v -0.338388 2.250000 -0.338388 +v -0.426777 2.250000 -0.426777 +v -0.480970 2.250000 -0.345671 +v -0.365485 2.250000 -0.297835 +v -0.375000 2.250000 -0.250000 +v -0.500000 2.250000 -0.250000 +v -0.365485 2.250000 -0.202164 +v -0.480970 2.250000 -0.154329 +v -0.338388 2.250000 -0.161612 +v -0.426777 2.250000 -0.073223 +v -0.250000 2.250000 0.000000 +v -0.202165 2.250000 -0.134515 +v -0.154329 2.250000 -0.019030 +v -0.345671 2.250000 -0.019030 +v -0.297835 2.250000 -0.134515 +v -0.073223 2.250000 -0.073223 +v -0.250000 2.250000 -0.125000 +v -0.426777 2.000000 -0.426777 +v -0.073223 2.000000 -0.426777 +v -0.073223 2.000000 -0.073223 +v -0.125000 2.500000 -0.031250 +v -0.125000 2.500000 0.031250 +v -1.125000 2.500000 0.000000 +v -0.125000 4.500000 -0.031250 +v -1.125000 4.000000 0.000000 +v -0.125000 4.500000 0.031250 +v 0.019030 2.250000 0.154329 +v 0.161612 2.250000 0.161612 +v 0.134515 2.250000 0.202165 +v 0.000000 2.250000 0.250000 +v 0.125000 2.250000 0.250000 +v 0.134515 2.250000 0.297835 +v 0.019030 2.250000 0.345671 +v 0.161612 2.250000 0.338388 +v 0.073223 2.250000 0.426777 +v 0.154329 2.250000 0.480970 +v 0.202165 2.250000 0.365485 +v 0.250000 2.250000 0.500000 +v 0.250000 2.250000 0.375000 +v 0.345671 2.250000 0.480970 +v 0.297835 2.250000 0.365485 +v 0.338388 2.250000 0.338388 +v 0.426777 2.250000 0.426777 +v 0.480970 2.250000 0.345671 +v 0.365485 2.250000 0.297835 +v 0.500000 2.250000 0.250000 +v 0.375000 2.250000 0.250000 +v 0.365485 2.250000 0.202164 +v 0.480970 2.250000 0.154329 +v 0.338388 2.250000 0.161612 +v 0.426777 2.250000 0.073223 +v 0.250000 2.250000 0.000000 +v 0.202165 2.250000 0.134515 +v 0.154329 2.250000 0.019030 +v 0.345671 2.250000 0.019030 +v 0.297835 2.250000 0.134515 +v 0.073223 2.250000 0.073223 +v 0.250000 2.250000 0.125000 +v 0.426777 2.000000 0.426777 +v 0.073223 2.000000 0.426777 +v 0.073223 2.000000 0.073223 +v 0.125000 2.500000 0.031250 +v 0.125000 2.500000 -0.031250 +v 1.125000 2.500000 0.000000 +v 0.125000 4.500000 0.031250 +v 1.125000 4.000000 0.000000 +v 0.125000 4.500000 -0.031250 +v 0.031250 8.000000 0.125000 +v 0.000000 6.500000 0.875000 +v 0.031250 6.000000 0.125000 +v 0.000000 7.500000 0.875000 +v -0.031250 6.000000 0.125000 +v -0.031250 8.000000 0.125000 +v -0.062500 7.750000 0.875000 +v -0.031250 7.750000 0.929127 +v 0.062500 7.750000 0.875000 +v -0.062500 6.250000 0.875000 +v -0.031250 6.250000 0.820873 +v 0.031250 6.250000 0.820873 +v -0.125000 8.000000 0.031250 +v -0.875000 6.500000 0.000000 +v -0.125000 6.000000 0.031250 +v -0.875000 7.500000 0.000000 +v -0.125000 6.000000 -0.031250 +v -0.125000 8.000000 -0.031250 +v -0.875000 7.750000 0.062500 +v -0.820873 7.750000 -0.031250 +v -0.929127 7.750000 -0.031250 +v -0.875000 6.250000 -0.062500 +v -0.820873 6.250000 -0.031250 +v -0.820873 6.250000 0.031250 +v 0.125000 6.000000 -0.031250 +v 0.875000 7.500000 0.000000 +v 0.875000 6.500000 0.000000 +v 0.125000 6.000000 0.031250 +v 0.125000 8.000000 0.031250 +v 0.125000 8.000000 -0.031250 +v 0.875000 7.750000 -0.062500 +v 0.820873 7.750000 0.031250 +v 0.929127 7.750000 0.031250 +v 0.875000 6.250000 0.062500 +v 0.820873 6.250000 0.031250 +v 0.820873 6.250000 -0.031250 +v -0.095671 3.500000 -0.230970 +v 0.000000 3.500000 -0.250000 +v 0.095671 3.500000 -0.230970 +v 0.230970 3.500000 -0.095671 +v 0.250000 3.500000 0.000000 +v 0.230970 3.500000 0.095671 +v 0.095671 3.500000 0.230970 +v 0.000000 3.500000 0.250000 +v -0.095671 3.500000 0.230970 +v -0.176777 3.500000 0.176777 +v -0.230970 3.500000 0.095671 +v -0.250000 3.500000 0.000000 +v -0.230970 3.500000 -0.095671 +v 0.019030 2.000000 -0.154329 +v 0.000000 2.000000 -0.250000 +v 0.019030 2.000000 -0.345671 +v 0.073223 2.000000 -0.426777 +v 0.154329 2.000000 -0.480970 +v 0.250000 2.000000 -0.500000 +v 0.345671 2.000000 -0.480970 +v 0.480970 2.000000 -0.345671 +v 0.500000 2.000000 -0.250000 +v 0.480970 2.000000 -0.154329 +v 0.345671 2.000000 -0.019030 +v 0.250000 2.000000 0.000000 +v 0.154329 2.000000 -0.019030 +v -0.031250 7.750000 -0.929127 +v -0.031250 7.750000 -0.820873 +v 0.062500 7.750000 -0.875000 +v -0.062500 6.250000 -0.875000 +v -0.031250 6.250000 -0.929127 +v 0.031250 6.250000 -0.929127 +v -0.019030 2.000000 0.154329 +v 0.000000 2.000000 0.250000 +v -0.019030 2.000000 0.345671 +v -0.073223 2.000000 0.426777 +v -0.154329 2.000000 0.480970 +v -0.250000 2.000000 0.500000 +v -0.345671 2.000000 0.480970 +v -0.426777 2.000000 0.426777 +v -0.480970 2.000000 0.345671 +v -0.500000 2.000000 0.250000 +v -0.480970 2.000000 0.154329 +v -0.345671 2.000000 0.019030 +v -0.154329 2.000000 0.019030 +v -0.154329 2.000000 -0.019030 +v -0.250000 2.000000 0.000000 +v -0.345671 2.000000 -0.019030 +v -0.426777 2.000000 -0.073223 +v -0.480970 2.000000 -0.154329 +v -0.500000 2.000000 -0.250000 +v -0.480970 2.000000 -0.345671 +v -0.345671 2.000000 -0.480970 +v -0.250000 2.000000 -0.500000 +v -0.154329 2.000000 -0.480970 +v -0.019030 2.000000 -0.345671 +v 0.000000 2.000000 -0.250000 +v -0.019030 2.000000 -0.154329 +v 0.154329 2.000000 0.019030 +v 0.250000 2.000000 0.000000 +v 0.345671 2.000000 0.019030 +v 0.426777 2.000000 0.073223 +v 0.480970 2.000000 0.154329 +v 0.500000 2.000000 0.250000 +v 0.480970 2.000000 0.345671 +v 0.345671 2.000000 0.480970 +v 0.250000 2.000000 0.500000 +v 0.154329 2.000000 0.480970 +v 0.019030 2.000000 0.345671 +v 0.000000 2.000000 0.250000 +v 0.019030 2.000000 0.154329 +v 0.031250 7.750000 0.929127 +v 0.031250 7.750000 0.820873 +v -0.031250 7.750000 0.820873 +v 0.062500 6.250000 0.875000 +v 0.031250 6.250000 0.929127 +v -0.031250 6.250000 0.929127 +v -0.929127 7.750000 0.031250 +v -0.820873 7.750000 0.031250 +v -0.875000 7.750000 -0.062500 +v -0.875000 6.250000 0.062500 +v -0.929127 6.250000 0.031250 +v -0.929127 6.250000 -0.031250 +v 0.929127 7.750000 -0.031250 +v 0.820873 7.750000 -0.031250 +v 0.875000 7.750000 0.062500 +v 0.875000 6.250000 -0.062500 +v 0.929127 6.250000 -0.031250 +v 0.929127 6.250000 0.031250 +v 0.143506 9.000000 -0.346455 +v 0.000000 9.000000 -0.375000 +v 0.000000 10.500000 0.000000 +v 0.265165 9.000000 -0.265165 +v 0.346455 9.000000 -0.143506 +v 0.375000 9.000000 0.000000 +v 0.346455 9.000000 0.143506 +v 0.265165 9.000000 0.265165 +v 0.143506 9.000000 0.346455 +v 0.000000 9.000000 0.375000 +v -0.143506 9.000000 0.346455 +v -0.265165 9.000000 0.265165 +v -0.346455 9.000000 0.143506 +v -0.375000 9.000000 0.000000 +v -0.346455 9.000000 -0.143506 +v -0.265165 9.000000 -0.265165 +v -0.143506 9.000000 -0.346455 +v -0.375000 7.500000 0.000000 +v 0.375000 7.500000 0.000000 +v -0.346455 7.500000 0.143506 +v 0.346455 7.500000 -0.143506 +v -0.265165 7.500000 0.265165 +v 0.265165 7.500000 -0.265165 +v -0.143506 7.500000 0.346455 +v 0.143506 7.500000 -0.346455 +v 0.000000 7.500000 0.375000 +v -0.143506 7.500000 -0.346455 +v 0.000000 7.500000 -0.375000 +v 0.143506 7.500000 0.346455 +v -0.265165 7.500000 -0.265165 +v 0.265165 7.500000 0.265165 +v -0.346455 7.500000 -0.143506 +v 0.346455 7.500000 0.143506 +v 0.095671 6.500000 0.230970 +v -0.176777 6.500000 -0.176777 +v 0.176777 6.500000 0.176777 +v -0.230970 6.500000 -0.095671 +v 0.230970 6.500000 0.095671 +v -0.250000 6.500000 0.000000 +v 0.250000 6.500000 0.000000 +v -0.230970 6.500000 0.095671 +v 0.230970 6.500000 -0.095671 +v -0.176777 6.500000 0.176777 +v 0.176777 6.500000 -0.176777 +v -0.095671 6.500000 0.230970 +v 0.095671 6.500000 -0.230970 +v 0.000000 6.500000 0.250000 +v -0.095671 6.500000 -0.230970 +v 0.000000 6.500000 -0.250000 +v 0.019030 3.500000 -0.154329 +v 0.480970 3.500000 -0.345671 +v 0.073223 3.500000 -0.073223 +v 0.426777 3.500000 -0.426777 +v 0.154329 3.500000 -0.019030 +v 0.345671 3.500000 -0.480970 +v 0.250000 3.500000 0.000000 +v 0.250000 3.500000 -0.500000 +v 0.345671 3.500000 -0.019030 +v 0.154329 3.500000 -0.480970 +v 0.426777 3.500000 -0.073223 +v 0.073223 3.500000 -0.426777 +v 0.480970 3.500000 -0.154329 +v 0.000000 3.500000 -0.250000 +v 0.019030 3.500000 -0.345671 +v 0.500000 3.500000 -0.250000 +v 0.125000 4.500000 -0.125000 +v -0.019030 3.500000 0.154329 +v -0.480970 3.500000 0.345671 +v -0.073223 3.500000 0.073223 +v -0.426777 3.500000 0.426777 +v -0.154329 3.500000 0.019030 +v -0.345671 3.500000 0.480970 +v -0.250000 3.500000 0.000000 +v -0.250000 3.500000 0.500000 +v -0.345671 3.500000 0.019030 +v -0.154329 3.500000 0.480970 +v -0.426777 3.500000 0.073223 +v -0.073223 3.500000 0.426777 +v -0.480970 3.500000 0.154329 +v 0.000000 3.500000 0.250000 +v -0.019030 3.500000 0.345671 +v -0.500000 3.500000 0.250000 +v -0.125000 4.500000 0.125000 +v -0.154329 3.500000 -0.019030 +v -0.345671 3.500000 -0.480970 +v -0.073223 3.500000 -0.073223 +v -0.426777 3.500000 -0.426777 +v -0.019030 3.500000 -0.154329 +v -0.480970 3.500000 -0.345671 +v 0.000000 3.500000 -0.250000 +v -0.500000 3.500000 -0.250000 +v -0.019030 3.500000 -0.345671 +v -0.480970 3.500000 -0.154329 +v -0.073223 3.500000 -0.426777 +v -0.426777 3.500000 -0.073223 +v -0.154329 3.500000 -0.480970 +v -0.250000 3.500000 0.000000 +v -0.345671 3.500000 -0.019030 +v -0.250000 3.500000 -0.500000 +v -0.125000 4.500000 -0.125000 +v 0.154329 3.500000 0.019030 +v 0.345671 3.500000 0.480970 +v 0.073223 3.500000 0.073223 +v 0.426777 3.500000 0.426777 +v 0.019030 3.500000 0.154329 +v 0.480970 3.500000 0.345671 +v 0.000000 3.500000 0.250000 +v 0.500000 3.500000 0.250000 +v 0.019030 3.500000 0.345671 +v 0.480970 3.500000 0.154329 +v 0.073223 3.500000 0.426777 +v 0.426777 3.500000 0.073223 +v 0.154329 3.500000 0.480970 +v 0.250000 3.500000 0.000000 +v 0.345671 3.500000 0.019030 +v 0.250000 3.500000 0.500000 +v 0.125000 4.500000 0.125000 +vt 0.720253 0.439829 +vt 0.720253 0.488743 +vt 0.648168 0.488743 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.633240 0.535715 +vt 0.648169 0.511257 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.671053 0.035714 +vt 0.684211 0.053571 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.763158 0.035714 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.946709 0.330357 +vt 0.940460 0.337702 +vt 0.921712 0.330357 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.731302 0.451050 +vt 0.735182 0.464286 +vt 0.731302 0.477522 +vt 0.703716 0.496241 +vt 0.684211 0.498873 +vt 0.664705 0.496241 +vt 0.637119 0.477522 +vt 0.633239 0.464286 +vt 0.637119 0.451050 +vt 0.648169 0.439829 +vt 0.664705 0.432331 +vt 0.684211 0.429698 +vt 0.703716 0.432331 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.684211 0.570302 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.657895 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.940460 0.323013 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.842105 0.294643 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.434211 0.785714 +vt 0.473684 0.785714 +vt 0.447368 1.000000 +vt 0.394737 0.785714 +vt 0.407895 1.000000 +vt 0.355263 0.785714 +vt 0.368421 1.000000 +vt 0.315789 0.785714 +vt 0.328947 1.000000 +vt 0.276316 0.785714 +vt 0.289474 1.000000 +vt 0.236842 0.785714 +vt 0.250000 1.000000 +vt 0.197368 0.785714 +vt 0.210526 1.000000 +vt 0.157895 0.785714 +vt 0.171053 1.000000 +vt 0.131579 1.000000 +vt 0.118421 0.785714 +vt 0.078947 0.785714 +vt 0.092105 1.000000 +vt 0.039474 0.785714 +vt 0.052632 1.000000 +vt 0.000000 0.785714 +vt 0.013158 1.000000 +vt 0.592105 0.785714 +vt 0.631579 0.785714 +vt 0.605263 1.000000 +vt 0.552632 0.785714 +vt 0.565789 1.000000 +vt 0.513158 0.785714 +vt 0.526316 1.000000 +vt 0.486842 1.000000 +vt 0.631579 0.571429 +vt 0.315789 0.571429 +vt 0.039474 0.571429 +vt 0.355263 0.571429 +vt 0.078947 0.571429 +vt 0.394737 0.571429 +vt 0.118421 0.571429 +vt 0.434211 0.571429 +vt 0.157895 0.571429 +vt 0.513158 0.571429 +vt 0.473684 0.571429 +vt 0.197368 0.571429 +vt 0.552632 0.571429 +vt 0.236842 0.571429 +vt 0.592105 0.571429 +vt 0.276316 0.571429 +vt 0.184211 0.428571 +vt 0.539474 0.428571 +vt 0.223684 0.428571 +vt 0.578947 0.428571 +vt 0.263158 0.428571 +vt 0.618421 0.428571 +vt 0.302632 0.428571 +vt 0.000000 0.571429 +vt 0.026316 0.428571 +vt 0.342105 0.428571 +vt 0.065789 0.428571 +vt 0.381579 0.428571 +vt 0.105263 0.428571 +vt 0.421053 0.428571 +vt 0.144737 0.428571 +vt 0.500000 0.428571 +vt 0.460526 0.428571 +vt 0.236842 0.428571 +vt 0.263158 -0.000000 +vt 0.263158 0.428571 +vt 0.052632 0.428571 +vt 0.078947 -0.000000 +vt 0.078947 0.428571 +vt 0.289474 -0.000000 +vt 0.289474 0.428571 +vt 0.105263 -0.000000 +vt 0.105263 0.428571 +vt 0.315789 0.428571 +vt 0.342105 -0.000000 +vt 0.342105 0.428571 +vt 0.315789 -0.000000 +vt 0.131579 -0.000000 +vt 0.131579 0.428571 +vt 0.368421 -0.000000 +vt 0.368421 0.428571 +vt 0.157895 -0.000000 +vt 0.157895 0.428571 +vt 0.394737 -0.000000 +vt 0.394737 0.428571 +vt 0.184211 -0.000000 +vt 0.184211 0.428571 +vt 0.421053 -0.000000 +vt 0.421053 0.428571 +vt 0.210526 -0.000000 +vt 0.210526 0.428571 +vt 0.000000 0.428571 +vt 0.026316 -0.000000 +vt 0.236842 -0.000000 +vt 0.052632 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.789474 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.605263 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.157895 0.428571 +vt 0.513158 0.428571 +vt 0.197368 0.428571 +vt 0.552632 0.428571 +vt 0.236842 0.428571 +vt 0.592105 0.428571 +vt 0.276316 0.428571 +vt 0.315789 0.428571 +vt 0.039474 0.428571 +vt 0.355263 0.428571 +vt 0.078947 0.428571 +vt 0.394737 0.428571 +vt 0.118421 0.428571 +vt 0.473684 0.428571 +vt 0.434211 0.428571 +vt 0.000000 -0.000000 +vt 0.842105 0.517857 +vt 0.421053 -0.000000 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vn 0.0000 -1.0000 0.0000 +vn -0.9991 0.0000 -0.0416 +vn 0.9991 0.0000 -0.0416 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 0.8944 -0.4472 +vn 0.9995 0.0000 -0.0312 +vn -0.9995 0.0000 -0.0312 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn -0.9995 -0.0000 0.0312 +vn 0.9995 -0.0000 0.0312 +vn -0.4472 0.8944 0.0000 +vn -0.0312 0.0000 -0.9995 +vn -0.0312 -0.0000 0.9995 +vn 0.4472 0.8944 0.0000 +vn 0.0312 -0.0000 0.9995 +vn 0.0312 0.0000 -0.9995 +vn 0.9991 -0.0000 0.0416 +vn -0.9991 -0.0000 0.0416 +vn 0.0000 0.8321 0.5547 +vn 0.0000 -0.8321 0.5547 +vn -0.0416 -0.0000 0.9991 +vn -0.0416 0.0000 -0.9991 +vn -0.5547 0.8321 0.0000 +vn -0.5547 -0.8321 0.0000 +vn 0.0416 0.0000 -0.9991 +vn 0.0416 -0.0000 0.9991 +vn 0.5547 0.8321 0.0000 +vn 0.5547 -0.8321 0.0000 +vn 0.3713 0.2425 -0.8963 +vn 0.0000 0.2425 -0.9701 +vn 0.6860 0.2425 -0.6860 +vn 0.8963 0.2425 -0.3713 +vn 0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn 0.6860 0.2425 0.6860 +vn 0.3713 0.2425 0.8963 +vn 0.0000 0.2425 0.9701 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn -0.8963 0.2425 0.3713 +vn -0.9701 0.2425 -0.0000 +vn -0.8963 0.2425 -0.3713 +vn -0.6860 0.2425 -0.6860 +vn -0.3713 0.2425 -0.8963 +vn -0.9239 0.0000 -0.3827 +vn -1.0000 -0.0000 -0.0000 +vn 0.9239 0.0000 0.3827 +vn 1.0000 -0.0000 0.0000 +vn -0.9239 -0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 -0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 -0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 -0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn 0.0000 -0.1240 0.9923 +vn 0.3797 -0.1240 0.9167 +vn -0.3797 -0.1240 -0.9167 +vn -0.7016 -0.1240 -0.7016 +vn 0.7016 -0.1240 0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 0.0000 +vn 0.9923 -0.1240 -0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 -0.9923 +vn 0.0127 0.3525 -0.9357 +vn -0.1164 0.9864 0.1164 +vn 0.3598 0.3824 -0.8511 +vn 0.6504 0.3925 -0.6504 +vn 0.8511 0.3824 -0.3598 +vn 0.9357 0.3525 -0.0127 +vn 0.8863 0.3053 0.3484 +vn 0.6991 0.2457 0.6714 +vn 0.3936 0.1823 0.9010 +vn 0.0149 0.1259 0.9919 +vn -0.3736 0.0869 0.9235 +vn -0.7052 0.0730 0.7052 +vn -0.9235 0.0869 0.3736 +vn -0.9919 0.1259 -0.0149 +vn -0.9010 0.1823 -0.3936 +vn -0.6714 0.2457 -0.6991 +vn -0.3484 0.3053 -0.8863 +vn 0.6325 0.4472 -0.6325 +vn 0.8263 0.4472 -0.3423 +vn 0.3423 0.4472 -0.8263 +vn 0.0000 0.4472 -0.8944 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn -0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 0.0000 +vn -0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 -0.0000 0.8660 +vn -0.5000 -0.0000 0.8660 +vn -0.0127 0.3525 0.9357 +vn 0.1164 0.9864 -0.1164 +vn -0.3598 0.3824 0.8511 +vn -0.6504 0.3925 0.6504 +vn -0.8511 0.3824 0.3598 +vn -0.9357 0.3525 0.0127 +vn -0.8863 0.3053 -0.3484 +vn -0.6991 0.2457 -0.6714 +vn -0.3936 0.1823 -0.9010 +vn -0.0149 0.1259 -0.9919 +vn 0.3736 0.0869 -0.9235 +vn 0.7052 0.0730 -0.7052 +vn 0.9235 0.0869 -0.3736 +vn 0.9919 0.1259 0.0149 +vn 0.9010 0.1823 0.3936 +vn 0.6714 0.2457 0.6991 +vn 0.3484 0.3053 0.8863 +vn -0.9357 0.3525 -0.0127 +vn 0.1164 0.9864 0.1164 +vn -0.8511 0.3824 -0.3598 +vn -0.6504 0.3925 -0.6504 +vn -0.3598 0.3824 -0.8511 +vn -0.0127 0.3525 -0.9357 +vn 0.3484 0.3053 -0.8863 +vn 0.6714 0.2457 -0.6991 +vn 0.9010 0.1823 -0.3936 +vn 0.9919 0.1259 -0.0149 +vn 0.9235 0.0869 0.3736 +vn 0.7052 0.0730 0.7052 +vn 0.3736 0.0869 0.9235 +vn -0.0149 0.1259 0.9919 +vn -0.3936 0.1823 0.9010 +vn -0.6991 0.2457 0.6714 +vn -0.8863 0.3053 0.3484 +vn 0.9357 0.3525 0.0127 +vn -0.1164 0.9864 -0.1164 +vn 0.8511 0.3824 0.3598 +vn 0.6504 0.3925 0.6504 +vn 0.3598 0.3824 0.8511 +vn 0.0127 0.3525 0.9357 +vn -0.3484 0.3053 0.8863 +vn -0.6714 0.2457 0.6991 +vn -0.9010 0.1823 0.3936 +vn -0.9919 0.1259 0.0149 +vn -0.9235 0.0869 -0.3736 +vn -0.7052 0.0730 -0.7052 +vn -0.3736 0.0869 -0.9235 +vn 0.0149 0.1259 -0.9919 +vn 0.3936 0.1823 -0.9010 +vn 0.6991 0.2457 -0.6714 +vn 0.8863 0.3053 -0.3484 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 -0.0000 -0.5000 +vn 0.8660 -0.0000 0.5000 +s off +f 4122/5862/512 4123/5863/512 4124/5864/512 +f 4125/5865/512 4126/5866/512 4127/5867/512 +f 4128/5868/512 4127/5869/512 4129/5870/512 +f 4128/5868/512 4130/5871/512 4131/5872/512 +f 4131/5872/512 4132/5873/512 4133/5874/512 +f 4134/5875/512 4132/5876/512 4135/5877/512 +f 4136/5878/512 4135/5879/512 4137/5880/512 +f 4138/5881/512 4137/5882/512 4139/5883/512 +f 4138/5881/512 4140/5884/512 4141/5885/512 +f 4142/5886/512 4140/5887/512 4143/5888/512 +f 4144/5889/512 4143/5890/512 4145/5891/512 +f 4144/5889/512 4146/5892/512 4147/5893/512 +f 4147/5893/512 4148/5894/512 4149/5895/512 +f 4150/5896/512 4151/5897/512 4152/5898/512 +f 4153/5899/512 4148/5900/512 4154/5901/512 +f 4152/5898/512 4126/5902/512 4155/5903/512 +f 4153/5899/512 4156/5904/512 4150/5896/512 +f 4157/5905/512 4158/5906/512 4159/5907/512 +f 4160/5908/513 4161/5909/513 4162/5910/513 +f 4163/5911/514 4164/5912/514 4161/5909/514 +f 4165/5913/515 4163/5914/515 4160/5915/515 +f 4164/5912/516 4162/5916/516 4161/5917/516 +f 4166/5918/512 4167/5919/512 4168/5920/512 +f 4169/5921/517 4170/5922/517 4171/5923/517 +f 4170/5924/518 4166/5918/518 4168/5920/518 +f 4167/5925/519 4170/5924/519 4168/5920/519 +f 4172/5926/520 4173/5927/520 4174/5928/520 +f 4175/5929/512 4176/5930/512 4177/5931/512 +f 4178/5932/512 4179/5933/512 4180/5934/512 +f 4181/5935/512 4180/5936/512 4182/5937/512 +f 4181/5935/512 4183/5938/512 4184/5939/512 +f 4184/5939/512 4185/5940/512 4186/5941/512 +f 4187/5942/512 4185/5943/512 4188/5944/512 +f 4189/5945/512 4188/5946/512 4190/5947/512 +f 4191/5948/512 4190/5949/512 4192/5950/512 +f 4191/5948/512 4193/5951/512 4194/5952/512 +f 4195/5953/512 4193/5954/512 4196/5955/512 +f 4197/5956/512 4196/5957/512 4198/5958/512 +f 4197/5956/512 4199/5959/512 4200/5960/512 +f 4200/5960/512 4201/5961/512 4202/5962/512 +f 4203/5963/512 4204/5964/512 4205/5965/512 +f 4206/5966/512 4201/5967/512 4207/5968/512 +f 4205/5965/512 4179/5969/512 4208/5970/512 +f 4206/5966/512 4209/5971/512 4203/5963/512 +f 4210/5972/512 4211/5973/512 4212/5974/512 +f 4213/5975/512 4214/5976/512 4215/5977/512 +f 4216/5978/521 4217/5979/521 4218/5980/521 +f 4217/5981/522 4213/5975/522 4215/5977/522 +f 4214/5982/523 4217/5981/523 4215/5977/523 +f 4219/5983/512 4220/5984/512 4221/5985/512 +f 4222/5986/512 4221/5987/512 4223/5988/512 +f 4222/5986/512 4224/5989/512 4225/5990/512 +f 4225/5990/512 4226/5991/512 4227/5992/512 +f 4228/5993/512 4226/5994/512 4229/5995/512 +f 4230/5996/512 4229/5997/512 4231/5998/512 +f 4232/5999/512 4231/6000/512 4233/6001/512 +f 4232/5999/512 4234/6002/512 4235/6003/512 +f 4236/6004/512 4234/6005/512 4237/6006/512 +f 4236/6004/512 4238/6007/512 4239/6008/512 +f 4239/6008/512 4240/6009/512 4241/6010/512 +f 4241/6010/512 4242/6011/512 4243/6012/512 +f 4244/6013/512 4245/6014/512 4246/6015/512 +f 4247/6016/512 4242/6017/512 4248/6018/512 +f 4246/6015/512 4220/6019/512 4249/6020/512 +f 4247/6016/512 4250/6021/512 4244/6013/512 +f 4251/6022/512 4252/6023/512 4253/6024/512 +f 4254/6025/512 4255/6026/512 4256/6027/512 +f 4257/6028/524 4258/6029/524 4259/6030/524 +f 4258/6031/525 4254/6025/525 4256/6027/525 +f 4255/6032/526 4258/6031/526 4256/6027/526 +f 4260/6033/512 4261/6034/512 4262/6035/512 +f 4263/6036/512 4262/6037/512 4264/6038/512 +f 4263/6036/512 4265/6039/512 4266/6040/512 +f 4266/6040/512 4267/6041/512 4268/6042/512 +f 4269/6043/512 4267/6044/512 4270/6045/512 +f 4271/6046/512 4270/6047/512 4272/6048/512 +f 4273/6049/512 4272/6050/512 4274/6051/512 +f 4273/6049/512 4275/6052/512 4276/6053/512 +f 4277/6054/512 4275/6055/512 4278/6056/512 +f 4279/6057/512 4278/6058/512 4280/6059/512 +f 4279/6057/512 4281/6060/512 4282/6061/512 +f 4282/6061/512 4283/6062/512 4284/6063/512 +f 4285/6064/512 4286/6065/512 4287/6066/512 +f 4288/6067/512 4283/6068/512 4289/6069/512 +f 4287/6066/512 4261/6070/512 4290/6071/512 +f 4285/6064/512 4289/6072/512 4291/6073/512 +f 4292/6074/512 4293/6075/512 4294/6076/512 +f 4295/6077/512 4296/6078/512 4297/6079/512 +f 4298/6080/527 4299/6081/527 4300/6082/527 +f 4299/6083/528 4295/6077/528 4297/6079/528 +f 4296/6084/529 4299/6083/529 4297/6079/529 +f 4301/6085/530 4302/6086/530 4303/6087/530 +f 4304/6088/531 4305/6089/531 4302/6086/531 +f 4306/6090/532 4304/6091/532 4301/6092/532 +f 4305/6089/533 4303/6093/533 4302/6094/533 +f 4307/6095/520 4308/6096/520 4309/6097/520 +f 4310/6098/512 4311/6099/512 4312/6100/512 +f 4313/6101/534 4314/6102/534 4315/6103/534 +f 4316/6104/535 4317/6105/535 4314/6102/535 +f 4318/6106/536 4316/6107/536 4313/6108/536 +f 4317/6105/537 4315/6109/537 4314/6110/537 +f 4319/6111/520 4320/6112/520 4321/6113/520 +f 4322/6114/512 4323/6115/512 4324/6116/512 +f 4325/6117/538 4326/6118/538 4327/6119/538 +f 4326/6118/539 4328/6120/539 4327/6119/539 +f 4329/6121/540 4326/6122/540 4330/6123/540 +f 4328/6120/541 4325/6124/541 4327/6125/541 +f 4331/6126/520 4332/6127/520 4333/6128/520 +f 4334/6129/512 4335/6130/512 4336/6131/512 +f 4122/5862/512 4337/6132/512 4338/6133/512 +f 4338/6133/512 4339/6134/512 4122/5862/512 +f 4339/6134/512 4123/5863/512 4122/5862/512 +f 4123/5863/512 4340/6135/512 4341/6136/512 +f 4341/6136/512 4342/6137/512 4124/5864/512 +f 4124/5864/512 4343/6138/512 4344/6139/512 +f 4344/6139/512 4345/6140/512 4346/6141/512 +f 4346/6141/512 4347/6142/512 4122/5862/512 +f 4347/6142/512 4348/6143/512 4122/5862/512 +f 4348/6143/512 4349/6144/512 4122/5862/512 +f 4123/5863/512 4341/6136/512 4124/5864/512 +f 4124/5864/512 4344/6139/512 4122/5862/512 +f 4344/6139/512 4346/6141/512 4122/5862/512 +f 4125/5865/512 4155/6145/512 4126/5866/512 +f 4128/5868/512 4125/5865/512 4127/5869/512 +f 4128/5868/512 4129/6146/512 4130/5871/512 +f 4131/5872/512 4130/6147/512 4132/5873/512 +f 4134/5875/512 4133/5874/512 4132/5876/512 +f 4136/5878/512 4134/5875/512 4135/5879/512 +f 4138/5881/512 4136/5878/512 4137/5882/512 +f 4138/5881/512 4139/6148/512 4140/5884/512 +f 4142/5886/512 4141/5885/512 4140/5887/512 +f 4144/5889/512 4142/5886/512 4143/5890/512 +f 4144/5889/512 4145/6149/512 4146/5892/512 +f 4147/5893/512 4146/6150/512 4148/5894/512 +f 4150/5896/512 4156/6151/512 4151/5897/512 +f 4153/5899/512 4149/5895/512 4148/5900/512 +f 4152/5898/512 4151/6152/512 4126/5902/512 +f 4153/5899/512 4154/6153/512 4156/5904/512 +f 4159/5907/512 4350/6154/512 4351/6155/512 +f 4351/6155/512 4352/6156/512 4159/5907/512 +f 4352/6156/512 4353/6157/512 4159/5907/512 +f 4353/6157/512 4354/6158/512 4355/6159/512 +f 4355/6159/512 4356/6160/512 4157/5905/512 +f 4157/5905/512 4357/6161/512 4158/5906/512 +f 4357/6161/512 4358/6162/512 4158/5906/512 +f 4358/6162/512 4359/6163/512 4158/5906/512 +f 4158/5906/512 4360/6164/512 4361/6165/512 +f 4361/6165/512 4362/6166/512 4159/5907/512 +f 4353/6157/512 4355/6159/512 4159/5907/512 +f 4355/6159/512 4157/5905/512 4159/5907/512 +f 4158/5906/512 4361/6165/512 4159/5907/512 +f 4160/5908/513 4163/5911/513 4161/5909/513 +f 4163/5911/514 4165/5913/514 4164/5912/514 +f 4170/5924/518 4169/5921/518 4166/5918/518 +f 4167/5925/519 4171/6167/519 4170/5924/519 +f 4174/5928/520 4363/6168/520 4172/5926/520 +f 4172/5926/520 4364/6169/520 4173/5927/520 +f 4173/5927/520 4365/6170/520 4174/5928/520 +f 4177/5931/512 4366/6171/512 4367/6172/512 +f 4367/6172/512 4368/6173/512 4177/5931/512 +f 4368/6173/512 4175/5929/512 4177/5931/512 +f 4178/5932/512 4208/6174/512 4179/5933/512 +f 4181/5935/512 4178/5932/512 4180/5936/512 +f 4181/5935/512 4182/6175/512 4183/5938/512 +f 4184/5939/512 4183/6176/512 4185/5940/512 +f 4187/5942/512 4186/5941/512 4185/5943/512 +f 4189/5945/512 4187/5942/512 4188/5946/512 +f 4191/5948/512 4189/5945/512 4190/5949/512 +f 4191/5948/512 4192/6177/512 4193/5951/512 +f 4195/5953/512 4194/5952/512 4193/5954/512 +f 4197/5956/512 4195/5953/512 4196/5957/512 +f 4197/5956/512 4198/6178/512 4199/5959/512 +f 4200/5960/512 4199/6179/512 4201/5961/512 +f 4203/5963/512 4209/6180/512 4204/5964/512 +f 4206/5966/512 4202/5962/512 4201/5967/512 +f 4205/5965/512 4204/6181/512 4179/5969/512 +f 4206/5966/512 4207/6182/512 4209/5971/512 +f 4212/5974/512 4369/6183/512 4370/6184/512 +f 4370/6184/512 4371/6185/512 4372/6186/512 +f 4372/6186/512 4373/6187/512 4374/6188/512 +f 4374/6188/512 4375/6189/512 4376/6190/512 +f 4376/6190/512 4377/6191/512 4378/6192/512 +f 4378/6192/512 4379/6193/512 4210/5972/512 +f 4210/5972/512 4380/6194/512 4211/5973/512 +f 4211/5973/512 4381/6195/512 4212/5974/512 +f 4212/5974/512 4370/6184/512 4376/6190/512 +f 4370/6184/512 4372/6186/512 4376/6190/512 +f 4372/6186/512 4374/6188/512 4376/6190/512 +f 4376/6190/512 4378/6192/512 4212/5974/512 +f 4378/6192/512 4210/5972/512 4212/5974/512 +f 4217/5981/522 4216/5978/522 4213/5975/522 +f 4214/5982/523 4218/6196/523 4217/5981/523 +f 4219/5983/512 4249/6197/512 4220/5984/512 +f 4222/5986/512 4219/5983/512 4221/5987/512 +f 4222/5986/512 4223/6198/512 4224/5989/512 +f 4225/5990/512 4224/6199/512 4226/5991/512 +f 4228/5993/512 4227/5992/512 4226/5994/512 +f 4230/5996/512 4228/5993/512 4229/5997/512 +f 4232/5999/512 4230/5996/512 4231/6000/512 +f 4232/5999/512 4233/6200/512 4234/6002/512 +f 4236/6004/512 4235/6003/512 4234/6005/512 +f 4236/6004/512 4237/6201/512 4238/6007/512 +f 4239/6008/512 4238/6202/512 4240/6009/512 +f 4241/6010/512 4240/6203/512 4242/6011/512 +f 4244/6013/512 4250/6204/512 4245/6014/512 +f 4247/6016/512 4243/6012/512 4242/6017/512 +f 4246/6015/512 4245/6205/512 4220/6019/512 +f 4247/6016/512 4248/6206/512 4250/6021/512 +f 4253/6024/512 4382/6207/512 4383/6208/512 +f 4383/6208/512 4384/6209/512 4385/6210/512 +f 4385/6210/512 4386/6211/512 4387/6212/512 +f 4387/6212/512 4388/6213/512 4251/6022/512 +f 4251/6022/512 4389/6214/512 4252/6023/512 +f 4389/6214/512 4390/6215/512 4252/6023/512 +f 4390/6215/512 4391/6216/512 4252/6023/512 +f 4252/6023/512 4392/6217/512 4393/6218/512 +f 4393/6218/512 4394/6219/512 4253/6024/512 +f 4253/6024/512 4383/6208/512 4385/6210/512 +f 4385/6210/512 4387/6212/512 4253/6024/512 +f 4387/6212/512 4251/6022/512 4253/6024/512 +f 4252/6023/512 4393/6218/512 4253/6024/512 +f 4258/6031/525 4257/6028/525 4254/6025/525 +f 4255/6032/526 4259/6220/526 4258/6031/526 +f 4260/6033/512 4290/6221/512 4261/6034/512 +f 4263/6036/512 4260/6033/512 4262/6037/512 +f 4263/6036/512 4264/6222/512 4265/6039/512 +f 4266/6040/512 4265/6223/512 4267/6041/512 +f 4269/6043/512 4268/6042/512 4267/6044/512 +f 4271/6046/512 4269/6043/512 4270/6047/512 +f 4273/6049/512 4271/6046/512 4272/6050/512 +f 4273/6049/512 4274/6224/512 4275/6052/512 +f 4277/6054/512 4276/6053/512 4275/6055/512 +f 4279/6057/512 4277/6054/512 4278/6058/512 +f 4279/6057/512 4280/6225/512 4281/6060/512 +f 4282/6061/512 4281/6226/512 4283/6062/512 +f 4285/6064/512 4291/6227/512 4286/6065/512 +f 4288/6067/512 4284/6063/512 4283/6068/512 +f 4287/6066/512 4286/6228/512 4261/6070/512 +f 4285/6064/512 4288/6067/512 4289/6072/512 +f 4294/6076/512 4395/6229/512 4396/6230/512 +f 4396/6230/512 4397/6231/512 4294/6076/512 +f 4397/6231/512 4398/6232/512 4294/6076/512 +f 4398/6232/512 4399/6233/512 4400/6234/512 +f 4400/6234/512 4401/6235/512 4292/6074/512 +f 4292/6074/512 4402/6236/512 4293/6075/512 +f 4402/6236/512 4403/6237/512 4293/6075/512 +f 4403/6237/512 4404/6238/512 4293/6075/512 +f 4293/6075/512 4405/6239/512 4406/6240/512 +f 4406/6240/512 4407/6241/512 4294/6076/512 +f 4398/6232/512 4400/6234/512 4294/6076/512 +f 4400/6234/512 4292/6074/512 4294/6076/512 +f 4293/6075/512 4406/6240/512 4294/6076/512 +f 4299/6083/528 4298/6080/528 4295/6077/528 +f 4296/6084/529 4300/6242/529 4299/6083/529 +f 4301/6085/530 4304/6088/530 4302/6086/530 +f 4304/6088/531 4306/6090/531 4305/6089/531 +f 4308/6096/520 4408/6243/520 4309/6097/520 +f 4309/6097/520 4409/6244/520 4410/6245/520 +f 4410/6245/520 4307/6095/520 4309/6097/520 +f 4312/6100/512 4411/6246/512 4412/6247/512 +f 4412/6247/512 4413/6248/512 4312/6100/512 +f 4413/6248/512 4310/6098/512 4312/6100/512 +f 4313/6101/534 4316/6104/534 4314/6102/534 +f 4316/6104/535 4318/6106/535 4317/6105/535 +f 4321/6113/520 4414/6249/520 4319/6111/520 +f 4319/6111/520 4415/6250/520 4320/6112/520 +f 4320/6112/520 4416/6251/520 4321/6113/520 +f 4324/6116/512 4417/6252/512 4418/6253/512 +f 4418/6253/512 4419/6254/512 4324/6116/512 +f 4419/6254/512 4322/6114/512 4324/6116/512 +f 4325/6117/538 4330/6255/538 4326/6118/538 +f 4326/6118/539 4329/6121/539 4328/6120/539 +f 4333/6128/520 4420/6256/520 4331/6126/520 +f 4331/6126/520 4421/6257/520 4332/6127/520 +f 4332/6127/520 4422/6258/520 4333/6128/520 +f 4336/6131/512 4423/6259/512 4424/6260/512 +f 4424/6260/512 4425/6261/512 4336/6131/512 +f 4425/6261/512 4334/6129/512 4336/6131/512 +s 1 +f 4426/6262/542 4427/6263/543 4428/6264/520 +f 4429/6265/544 4426/6262/542 4428/6266/520 +f 4430/6267/545 4429/6265/544 4428/6268/520 +f 4431/6269/546 4430/6267/545 4428/6270/520 +f 4432/6271/547 4431/6269/546 4428/6272/520 +f 4433/6273/548 4432/6271/547 4428/6274/520 +f 4434/6275/549 4433/6273/548 4428/6276/520 +f 4435/6277/550 4434/6275/549 4428/6278/520 +f 4435/6277/550 4428/6279/520 4436/6280/551 +f 4437/6281/552 4436/6280/551 4428/6282/520 +f 4438/6283/553 4437/6281/552 4428/6284/520 +f 4439/6285/554 4438/6283/553 4428/6286/520 +f 4440/6287/555 4439/6288/554 4428/6289/520 +f 4441/6290/556 4440/6287/555 4428/6291/520 +f 4442/6292/557 4441/6290/556 4428/6293/520 +f 4427/6263/543 4442/6292/557 4428/6294/520 +f 4440/6287/558 4443/6295/559 4439/6288/559 +f 4432/6271/560 4444/6296/561 4431/6269/561 +f 4439/6285/559 4445/6297/562 4438/6283/562 +f 4431/6269/561 4446/6298/563 4430/6267/563 +f 4438/6283/562 4447/6299/564 4437/6281/564 +f 4430/6267/563 4448/6300/565 4429/6265/565 +f 4437/6281/564 4449/6301/566 4436/6280/566 +f 4429/6265/565 4450/6302/567 4426/6262/567 +f 4436/6280/566 4451/6303/568 4435/6277/568 +f 4427/6263/569 4452/6304/570 4442/6292/570 +f 4426/6262/567 4453/6305/569 4427/6263/569 +f 4435/6277/568 4454/6306/571 4434/6275/571 +f 4442/6292/570 4455/6307/572 4441/6290/572 +f 4434/6275/571 4456/6308/573 4433/6273/573 +f 4441/6290/572 4457/6309/558 4440/6287/558 +f 4433/6273/573 4458/6310/560 4432/6271/560 +f 4451/6303/574 4459/6311/575 4454/6306/575 +f 4452/6304/576 4460/6312/577 4455/6307/577 +f 4454/6306/575 4461/6313/578 4456/6308/578 +f 4455/6307/577 4462/6314/579 4457/6309/579 +f 4456/6308/578 4463/6315/580 4458/6310/580 +f 4457/6309/579 4464/6316/581 4443/6295/581 +f 4458/6310/580 4465/6317/582 4444/6296/582 +f 4443/6318/581 4466/6319/583 4445/6297/583 +f 4444/6296/582 4467/6320/584 4446/6298/584 +f 4445/6297/583 4468/6321/585 4447/6299/585 +f 4446/6298/584 4469/6322/586 4448/6300/586 +f 4447/6299/585 4470/6323/587 4449/6301/587 +f 4448/6300/586 4471/6324/588 4450/6302/588 +f 4449/6301/587 4472/6325/574 4451/6303/574 +f 4453/6305/589 4473/6326/576 4452/6304/576 +f 4450/6302/588 4474/6327/589 4453/6305/589 +f 4467/6328/563 4123/6329/565 4469/6330/565 +f 4468/6331/564 4345/6332/566 4470/6333/566 +f 4469/6330/565 4339/6334/567 4471/6335/567 +f 4470/6333/566 4344/6336/568 4472/6337/568 +f 4474/6338/569 4337/6339/570 4473/6340/570 +f 4471/6335/567 4338/6341/569 4474/6338/569 +f 4472/6337/568 4343/6342/571 4459/6343/571 +f 4473/6340/570 4122/6344/572 4460/6345/572 +f 4459/6343/571 4124/6346/573 4461/6347/573 +f 4460/6345/572 4349/6348/558 4462/6349/558 +f 4461/6347/573 4342/6350/560 4463/6351/560 +f 4462/6349/558 4348/6352/559 4464/6353/559 +f 4463/6351/560 4341/6354/561 4465/6355/561 +f 4464/6356/559 4347/6357/562 4466/6319/562 +f 4465/6355/561 4340/6358/563 4467/6328/563 +f 4466/6319/562 4346/6359/564 4468/6331/564 +f 4155/5903/564 4475/6360/562 4152/5898/562 +f 4141/5885/565 4476/6361/563 4138/5881/563 +f 4125/5865/566 4477/6362/564 4155/6145/564 +f 4142/5886/567 4478/6363/565 4141/5885/565 +f 4128/5868/568 4479/6364/566 4125/5865/566 +f 4144/5889/569 4480/6365/567 4142/5886/567 +f 4131/5872/571 4481/6366/568 4128/5868/568 +f 4147/5893/570 4482/6367/569 4144/5889/569 +f 4133/5874/573 4483/6368/571 4131/5872/571 +f 4149/5895/572 4484/6369/570 4147/5893/570 +f 4134/5875/560 4485/6370/573 4133/5874/573 +f 4153/5899/558 4486/6371/572 4149/5895/572 +f 4136/5878/561 4487/6372/560 4134/5875/560 +f 4152/5898/562 4488/6373/559 4150/5896/559 +f 4150/5896/559 4489/6374/558 4153/5899/558 +f 4138/5881/563 4490/6375/561 4136/5878/561 +f 4482/6367/590 4491/6376/591 4480/6365/592 +f 4478/6363/593 4480/6365/592 4491/6377/591 +f 4476/6361/594 4478/6363/593 4491/6378/591 +f 4490/6375/595 4476/6361/594 4491/6379/591 +f 4487/6372/596 4490/6375/595 4491/6380/591 +f 4485/6370/597 4487/6372/596 4491/6381/591 +f 4483/6368/598 4485/6370/597 4491/6382/591 +f 4481/6366/599 4483/6368/598 4491/6383/591 +f 4479/6364/600 4481/6366/599 4491/6384/591 +f 4477/6362/601 4479/6364/600 4491/6385/591 +f 4475/6360/602 4477/6386/601 4491/6387/591 +f 4488/6373/603 4475/6360/602 4491/6388/591 +f 4489/6374/604 4488/6373/603 4491/6389/591 +f 4486/6371/605 4489/6374/604 4491/6390/591 +f 4484/6369/606 4486/6371/605 4491/6391/591 +f 4482/6367/590 4484/6369/606 4491/6392/591 +f 4140/5884/607 4357/6393/608 4157/6394/607 +f 4140/5887/607 4356/6395/609 4143/5888/609 +f 4143/5890/609 4355/6396/610 4145/5891/610 +f 4145/6149/610 4354/6397/611 4146/5892/611 +f 4148/5894/612 4354/6397/611 4353/6398/612 +f 4151/5897/613 4351/6399/614 4350/6400/613 +f 4148/5900/612 4352/6401/615 4154/5901/615 +f 4151/6152/613 4159/6402/616 4126/5902/616 +f 4154/6153/615 4351/6399/614 4156/5904/614 +f 4127/5867/617 4159/6403/616 4362/6404/617 +f 4127/5869/617 4361/6405/618 4129/5870/618 +f 4129/6146/618 4360/6406/619 4130/5871/619 +f 4130/6147/619 4158/6407/620 4132/5873/620 +f 4132/5876/620 4359/6408/621 4135/5877/621 +f 4135/5879/621 4358/6409/622 4137/5880/622 +f 4137/5882/622 4357/6393/608 4139/5883/608 +f 4172/6410/559 4367/6411/623 4366/6412/559 +f 4363/6413/623 4368/6414/624 4367/6411/623 +f 4174/6415/624 4175/6416/561 4368/6414/624 +f 4365/6417/561 4176/6418/625 4175/6416/561 +f 4173/6419/625 4177/6420/626 4176/6418/625 +f 4364/6421/626 4366/6412/559 4177/6422/626 +f 4208/5970/565 4492/6423/563 4205/5965/563 +f 4194/5952/564 4493/6424/562 4191/5948/562 +f 4178/5932/567 4494/6425/565 4208/6174/565 +f 4195/5953/566 4495/6426/564 4194/5952/564 +f 4181/5935/569 4496/6427/567 4178/5932/567 +f 4197/5956/568 4497/6428/566 4195/5953/566 +f 4184/5939/570 4498/6429/569 4181/5935/569 +f 4200/5960/571 4499/6430/568 4197/5956/568 +f 4186/5941/572 4500/6431/570 4184/5939/570 +f 4202/5962/573 4501/6432/571 4200/5960/571 +f 4187/5942/558 4502/6433/572 4186/5941/572 +f 4206/5966/560 4503/6434/573 4202/5962/573 +f 4189/5945/559 4504/6435/558 4187/5942/558 +f 4205/5965/563 4505/6436/561 4203/5963/561 +f 4203/5963/561 4506/6437/560 4206/5966/560 +f 4191/5948/562 4507/6438/559 4189/5945/559 +f 4499/6430/627 4508/6439/628 4497/6428/629 +f 4495/6426/630 4497/6428/629 4508/6440/628 +f 4493/6424/631 4495/6426/630 4508/6441/628 +f 4507/6438/632 4493/6424/631 4508/6442/628 +f 4504/6435/633 4507/6438/632 4508/6443/628 +f 4502/6433/634 4504/6435/633 4508/6444/628 +f 4500/6431/635 4502/6433/634 4508/6445/628 +f 4498/6429/636 4500/6431/635 4508/6446/628 +f 4496/6427/637 4498/6429/636 4508/6447/628 +f 4494/6425/638 4496/6427/637 4508/6448/628 +f 4492/6423/639 4494/6449/638 4508/6450/628 +f 4505/6436/640 4492/6423/639 4508/6451/628 +f 4506/6437/641 4505/6436/640 4508/6452/628 +f 4503/6434/642 4506/6437/641 4508/6453/628 +f 4501/6432/643 4503/6434/642 4508/6454/628 +f 4499/6430/627 4501/6432/643 4508/6455/628 +f 4193/5951/616 4377/6456/613 4376/6457/616 +f 4193/5954/616 4375/6458/617 4196/5955/617 +f 4196/5957/617 4374/6459/618 4198/5958/618 +f 4199/5959/619 4374/6459/618 4373/6460/619 +f 4201/5961/620 4373/6460/619 4372/6461/620 +f 4209/6180/622 4369/6462/608 4204/5964/608 +f 4201/5967/620 4371/6463/621 4207/5968/621 +f 4179/5969/607 4369/6462/608 4212/6464/607 +f 4207/6182/621 4370/6465/622 4209/5971/622 +f 4179/5933/607 4381/6466/609 4180/5934/609 +f 4180/5936/609 4211/6467/610 4182/5937/610 +f 4182/6175/610 4380/6468/611 4183/5938/611 +f 4183/6176/611 4210/6469/612 4185/5940/612 +f 4185/5943/612 4379/6470/615 4188/5944/615 +f 4188/5946/615 4378/6471/614 4190/5947/614 +f 4190/5949/614 4377/6456/613 4192/5950/613 +f 4249/6020/573 4509/6472/571 4246/6015/571 +f 4235/6003/572 4510/6473/570 4232/5999/570 +f 4219/5983/560 4511/6474/573 4249/6197/573 +f 4236/6004/558 4512/6475/572 4235/6003/572 +f 4222/5986/561 4513/6476/560 4219/5983/560 +f 4239/6008/559 4514/6477/558 4236/6004/558 +f 4225/5990/563 4515/6478/561 4222/5986/561 +f 4241/6010/562 4516/6479/559 4239/6008/559 +f 4227/5992/565 4517/6480/563 4225/5990/563 +f 4243/6012/564 4518/6481/562 4241/6010/562 +f 4228/5993/567 4519/6482/565 4227/5992/565 +f 4247/6016/566 4520/6483/564 4243/6012/564 +f 4230/5996/569 4521/6484/567 4228/5993/567 +f 4246/6015/571 4522/6485/568 4244/6013/568 +f 4244/6013/568 4523/6486/566 4247/6016/566 +f 4232/5999/570 4524/6487/569 4230/5996/569 +f 4516/6479/644 4525/6488/645 4514/6477/646 +f 4512/6475/647 4514/6477/646 4525/6489/645 +f 4510/6473/648 4512/6475/647 4525/6490/645 +f 4524/6487/649 4510/6473/648 4525/6491/645 +f 4521/6484/650 4524/6487/649 4525/6492/645 +f 4519/6482/651 4521/6484/650 4525/6493/645 +f 4517/6480/652 4519/6482/651 4525/6494/645 +f 4515/6478/653 4517/6480/652 4525/6495/645 +f 4513/6476/654 4515/6478/653 4525/6496/645 +f 4511/6474/655 4513/6476/654 4525/6497/645 +f 4509/6472/656 4511/6498/655 4525/6499/645 +f 4522/6485/657 4509/6472/656 4525/6500/645 +f 4523/6486/658 4522/6485/657 4525/6501/645 +f 4520/6483/659 4523/6486/658 4525/6502/645 +f 4518/6481/660 4520/6483/659 4525/6503/645 +f 4516/6479/644 4518/6481/660 4525/6504/645 +f 4233/6200/611 4251/6505/612 4234/6002/612 +f 4234/6005/612 4388/6506/615 4237/6006/615 +f 4237/6201/615 4387/6507/614 4238/6007/614 +f 4238/6202/614 4386/6508/613 4240/6009/613 +f 4242/6011/616 4386/6508/613 4385/6509/616 +f 4250/6204/618 4382/6510/619 4245/6014/619 +f 4242/6017/616 4384/6511/617 4248/6018/617 +f 4245/6205/619 4253/6512/620 4220/6019/620 +f 4248/6206/617 4383/6513/618 4250/6021/618 +f 4221/5985/621 4253/6514/620 4394/6515/621 +f 4221/5987/621 4393/6516/622 4223/5988/622 +f 4223/6198/622 4392/6517/608 4224/5989/608 +f 4224/6199/608 4252/6518/607 4226/5991/607 +f 4226/5994/607 4391/6519/609 4229/5995/609 +f 4229/5997/609 4390/6520/610 4231/5998/610 +f 4231/6000/610 4389/6521/611 4233/6001/611 +f 4290/6071/572 4526/6522/570 4287/6066/570 +f 4276/6053/573 4527/6523/571 4273/6049/571 +f 4260/6033/558 4528/6524/572 4290/6221/572 +f 4277/6054/560 4529/6525/573 4276/6053/573 +f 4263/6036/559 4530/6526/558 4260/6033/558 +f 4279/6057/561 4531/6527/560 4277/6054/560 +f 4266/6040/562 4532/6528/559 4263/6036/559 +f 4282/6061/563 4533/6529/561 4279/6057/561 +f 4268/6042/564 4534/6530/562 4266/6040/562 +f 4284/6063/565 4535/6531/563 4282/6061/563 +f 4269/6043/566 4536/6532/564 4268/6042/564 +f 4288/6067/567 4537/6533/565 4284/6063/565 +f 4271/6046/568 4538/6534/566 4269/6043/566 +f 4287/6066/570 4539/6535/569 4285/6064/569 +f 4285/6064/569 4540/6536/567 4288/6067/567 +f 4273/6049/571 4541/6537/568 4271/6046/568 +f 4533/6529/661 4542/6538/662 4531/6527/663 +f 4529/6525/664 4531/6527/663 4542/6539/662 +f 4527/6523/665 4529/6525/664 4542/6540/662 +f 4541/6537/666 4527/6523/665 4542/6541/662 +f 4538/6534/667 4541/6537/666 4542/6542/662 +f 4536/6532/668 4538/6534/667 4542/6543/662 +f 4534/6530/669 4536/6532/668 4542/6544/662 +f 4532/6528/670 4534/6530/669 4542/6545/662 +f 4530/6526/671 4532/6528/670 4542/6546/662 +f 4528/6524/672 4530/6526/671 4542/6547/662 +f 4526/6522/673 4528/6548/672 4542/6549/662 +f 4539/6535/674 4526/6522/673 4542/6550/662 +f 4540/6536/675 4539/6535/674 4542/6551/662 +f 4537/6533/676 4540/6536/675 4542/6552/662 +f 4535/6531/677 4537/6533/676 4542/6553/662 +f 4533/6529/661 4535/6531/677 4542/6554/662 +f 4275/6052/620 4402/6555/619 4292/6556/620 +f 4275/6055/620 4401/6557/621 4278/6056/621 +f 4278/6058/621 4400/6558/622 4280/6059/622 +f 4281/6060/608 4400/6558/622 4399/6559/608 +f 4281/6226/608 4398/6560/607 4283/6062/607 +f 4291/6227/610 4395/6561/611 4286/6065/611 +f 4289/6069/609 4398/6560/607 4397/6562/609 +f 4261/6070/612 4395/6561/611 4294/6563/612 +f 4289/6072/609 4396/6564/610 4291/6073/610 +f 4262/6035/615 4294/6565/612 4407/6566/615 +f 4262/6037/615 4406/6567/614 4264/6038/614 +f 4265/6039/613 4406/6567/614 4405/6568/613 +f 4265/6223/613 4293/6569/616 4267/6041/616 +f 4267/6044/616 4404/6570/617 4270/6045/617 +f 4270/6047/617 4403/6571/618 4272/6048/618 +f 4272/6050/618 4402/6555/619 4274/6051/619 +f 4309/6572/561 4412/6573/625 4411/6574/561 +f 4408/6575/625 4413/6576/626 4412/6573/625 +f 4308/6577/626 4310/6578/559 4413/6576/626 +f 4307/6579/559 4311/6580/623 4310/6578/559 +f 4410/6581/623 4312/6582/624 4311/6580/623 +f 4409/6583/624 4411/6574/561 4312/6584/624 +f 4319/6585/568 4418/6586/678 4417/6587/568 +f 4414/6588/678 4419/6589/679 4418/6586/678 +f 4321/6590/679 4322/6591/569 4419/6589/679 +f 4416/6592/569 4323/6593/680 4322/6591/569 +f 4320/6594/680 4324/6595/681 4323/6593/680 +f 4415/6596/681 4417/6587/568 4324/6597/681 +f 4331/6598/569 4424/6599/680 4423/6600/569 +f 4420/6601/680 4425/6602/681 4424/6599/680 +f 4333/6603/681 4334/6604/568 4425/6602/681 +f 4422/6605/568 4335/6606/678 4334/6604/568 +f 4332/6607/678 4336/6608/679 4335/6606/678 +f 4421/6609/679 4423/6600/569 4336/6610/679 +f 4440/6287/558 4457/6309/558 4443/6295/559 +f 4432/6271/560 4458/6310/560 4444/6296/561 +f 4439/6285/559 4443/6318/559 4445/6297/562 +f 4431/6269/561 4444/6296/561 4446/6298/563 +f 4438/6283/562 4445/6297/562 4447/6299/564 +f 4430/6267/563 4446/6298/563 4448/6300/565 +f 4437/6281/564 4447/6299/564 4449/6301/566 +f 4429/6265/565 4448/6300/565 4450/6302/567 +f 4436/6280/566 4449/6301/566 4451/6303/568 +f 4427/6263/569 4453/6305/569 4452/6304/570 +f 4426/6262/567 4450/6302/567 4453/6305/569 +f 4435/6277/568 4451/6303/568 4454/6306/571 +f 4442/6292/570 4452/6304/570 4455/6307/572 +f 4434/6275/571 4454/6306/571 4456/6308/573 +f 4441/6290/572 4455/6307/572 4457/6309/558 +f 4433/6273/573 4456/6308/573 4458/6310/560 +f 4451/6303/574 4472/6611/574 4459/6311/575 +f 4452/6304/576 4473/6612/576 4460/6312/577 +f 4454/6306/575 4459/6613/575 4461/6313/578 +f 4455/6307/577 4460/6614/577 4462/6314/579 +f 4456/6308/578 4461/6615/578 4463/6315/580 +f 4457/6309/579 4462/6616/579 4464/6316/581 +f 4458/6310/580 4463/6617/580 4465/6317/582 +f 4443/6318/581 4464/6356/581 4466/6319/583 +f 4444/6296/582 4465/6618/582 4467/6320/584 +f 4445/6297/583 4466/6619/583 4468/6321/585 +f 4446/6298/584 4467/6620/584 4469/6322/586 +f 4447/6299/585 4468/6621/585 4470/6323/587 +f 4448/6300/586 4469/6622/586 4471/6324/588 +f 4449/6301/587 4470/6623/587 4472/6325/574 +f 4453/6305/589 4474/6624/589 4473/6326/576 +f 4450/6302/588 4471/6625/588 4474/6327/589 +f 4467/6328/563 4340/6358/563 4123/6329/565 +f 4468/6331/564 4346/6359/564 4345/6332/566 +f 4469/6330/565 4123/6329/565 4339/6334/567 +f 4470/6333/566 4345/6332/566 4344/6336/568 +f 4474/6338/569 4338/6341/569 4337/6339/570 +f 4471/6335/567 4339/6334/567 4338/6341/569 +f 4472/6337/568 4344/6336/568 4343/6342/571 +f 4473/6340/570 4337/6339/570 4122/6344/572 +f 4459/6343/571 4343/6342/571 4124/6346/573 +f 4460/6345/572 4122/6344/572 4349/6348/558 +f 4461/6347/573 4124/6346/573 4342/6350/560 +f 4462/6349/558 4349/6348/558 4348/6352/559 +f 4463/6351/560 4342/6350/560 4341/6354/561 +f 4464/6356/559 4348/6626/559 4347/6357/562 +f 4465/6355/561 4341/6354/561 4340/6358/563 +f 4466/6319/562 4347/6357/562 4346/6359/564 +f 4155/5903/564 4477/6386/564 4475/6360/562 +f 4141/5885/565 4478/6363/565 4476/6361/563 +f 4125/5865/566 4479/6364/566 4477/6362/564 +f 4142/5886/567 4480/6365/567 4478/6363/565 +f 4128/5868/568 4481/6366/568 4479/6364/566 +f 4144/5889/569 4482/6367/569 4480/6365/567 +f 4131/5872/571 4483/6368/571 4481/6366/568 +f 4147/5893/570 4484/6369/570 4482/6367/569 +f 4133/5874/573 4485/6370/573 4483/6368/571 +f 4149/5895/572 4486/6371/572 4484/6369/570 +f 4134/5875/560 4487/6372/560 4485/6370/573 +f 4153/5899/558 4489/6374/558 4486/6371/572 +f 4136/5878/561 4490/6375/561 4487/6372/560 +f 4152/5898/562 4475/6360/562 4488/6373/559 +f 4150/5896/559 4488/6373/559 4489/6374/558 +f 4138/5881/563 4476/6361/563 4490/6375/561 +f 4140/5884/607 4139/6148/608 4357/6393/608 +f 4140/5887/607 4157/6394/607 4356/6395/609 +f 4143/5890/609 4356/6395/609 4355/6396/610 +f 4145/6149/610 4355/6396/610 4354/6397/611 +f 4148/5894/612 4146/6150/611 4354/6397/611 +f 4151/5897/613 4156/6151/614 4351/6399/614 +f 4148/5900/612 4353/6398/612 4352/6401/615 +f 4151/6152/613 4350/6400/613 4159/6402/616 +f 4154/6153/615 4352/6401/615 4351/6399/614 +f 4127/5867/617 4126/5866/616 4159/6403/616 +f 4127/5869/617 4362/6404/617 4361/6405/618 +f 4129/6146/618 4361/6405/618 4360/6406/619 +f 4130/6147/619 4360/6406/619 4158/6407/620 +f 4132/5876/620 4158/6407/620 4359/6408/621 +f 4135/5879/621 4359/6408/621 4358/6409/622 +f 4137/5882/622 4358/6409/622 4357/6393/608 +f 4172/6410/559 4363/6413/623 4367/6411/623 +f 4363/6413/623 4174/6415/624 4368/6414/624 +f 4174/6415/624 4365/6417/561 4175/6416/561 +f 4365/6417/561 4173/6419/625 4176/6418/625 +f 4173/6419/625 4364/6627/626 4177/6420/626 +f 4364/6421/626 4172/6410/559 4366/6412/559 +f 4208/5970/565 4494/6449/565 4492/6423/563 +f 4194/5952/564 4495/6426/564 4493/6424/562 +f 4178/5932/567 4496/6427/567 4494/6425/565 +f 4195/5953/566 4497/6428/566 4495/6426/564 +f 4181/5935/569 4498/6429/569 4496/6427/567 +f 4197/5956/568 4499/6430/568 4497/6428/566 +f 4184/5939/570 4500/6431/570 4498/6429/569 +f 4200/5960/571 4501/6432/571 4499/6430/568 +f 4186/5941/572 4502/6433/572 4500/6431/570 +f 4202/5962/573 4503/6434/573 4501/6432/571 +f 4187/5942/558 4504/6435/558 4502/6433/572 +f 4206/5966/560 4506/6437/560 4503/6434/573 +f 4189/5945/559 4507/6438/559 4504/6435/558 +f 4205/5965/563 4492/6423/563 4505/6436/561 +f 4203/5963/561 4505/6436/561 4506/6437/560 +f 4191/5948/562 4493/6424/562 4507/6438/559 +f 4193/5951/616 4192/6177/613 4377/6456/613 +f 4193/5954/616 4376/6457/616 4375/6458/617 +f 4196/5957/617 4375/6458/617 4374/6459/618 +f 4199/5959/619 4198/6178/618 4374/6459/618 +f 4201/5961/620 4199/6179/619 4373/6460/619 +f 4209/6180/622 4370/6465/622 4369/6462/608 +f 4201/5967/620 4372/6461/620 4371/6463/621 +f 4179/5969/607 4204/6181/608 4369/6462/608 +f 4207/6182/621 4371/6463/621 4370/6465/622 +f 4179/5933/607 4212/6628/607 4381/6466/609 +f 4180/5936/609 4381/6466/609 4211/6467/610 +f 4182/6175/610 4211/6467/610 4380/6468/611 +f 4183/6176/611 4380/6468/611 4210/6469/612 +f 4185/5943/612 4210/6469/612 4379/6470/615 +f 4188/5946/615 4379/6470/615 4378/6471/614 +f 4190/5949/614 4378/6471/614 4377/6456/613 +f 4249/6020/573 4511/6498/573 4509/6472/571 +f 4235/6003/572 4512/6475/572 4510/6473/570 +f 4219/5983/560 4513/6476/560 4511/6474/573 +f 4236/6004/558 4514/6477/558 4512/6475/572 +f 4222/5986/561 4515/6478/561 4513/6476/560 +f 4239/6008/559 4516/6479/559 4514/6477/558 +f 4225/5990/563 4517/6480/563 4515/6478/561 +f 4241/6010/562 4518/6481/562 4516/6479/559 +f 4227/5992/565 4519/6482/565 4517/6480/563 +f 4243/6012/564 4520/6483/564 4518/6481/562 +f 4228/5993/567 4521/6484/567 4519/6482/565 +f 4247/6016/566 4523/6486/566 4520/6483/564 +f 4230/5996/569 4524/6487/569 4521/6484/567 +f 4246/6015/571 4509/6472/571 4522/6485/568 +f 4244/6013/568 4522/6485/568 4523/6486/566 +f 4232/5999/570 4510/6473/570 4524/6487/569 +f 4233/6200/611 4389/6521/611 4251/6505/612 +f 4234/6005/612 4251/6505/612 4388/6506/615 +f 4237/6201/615 4388/6506/615 4387/6507/614 +f 4238/6202/614 4387/6507/614 4386/6508/613 +f 4242/6011/616 4240/6203/613 4386/6508/613 +f 4250/6204/618 4383/6513/618 4382/6510/619 +f 4242/6017/616 4385/6509/616 4384/6511/617 +f 4245/6205/619 4382/6510/619 4253/6512/620 +f 4248/6206/617 4384/6511/617 4383/6513/618 +f 4221/5985/621 4220/5984/620 4253/6514/620 +f 4221/5987/621 4394/6515/621 4393/6516/622 +f 4223/6198/622 4393/6516/622 4392/6517/608 +f 4224/6199/608 4392/6517/608 4252/6518/607 +f 4226/5994/607 4252/6518/607 4391/6519/609 +f 4229/5997/609 4391/6519/609 4390/6520/610 +f 4231/6000/610 4390/6520/610 4389/6521/611 +f 4290/6071/572 4528/6548/572 4526/6522/570 +f 4276/6053/573 4529/6525/573 4527/6523/571 +f 4260/6033/558 4530/6526/558 4528/6524/572 +f 4277/6054/560 4531/6527/560 4529/6525/573 +f 4263/6036/559 4532/6528/559 4530/6526/558 +f 4279/6057/561 4533/6529/561 4531/6527/560 +f 4266/6040/562 4534/6530/562 4532/6528/559 +f 4282/6061/563 4535/6531/563 4533/6529/561 +f 4268/6042/564 4536/6532/564 4534/6530/562 +f 4284/6063/565 4537/6533/565 4535/6531/563 +f 4269/6043/566 4538/6534/566 4536/6532/564 +f 4288/6067/567 4540/6536/567 4537/6533/565 +f 4271/6046/568 4541/6537/568 4538/6534/566 +f 4287/6066/570 4526/6522/570 4539/6535/569 +f 4285/6064/569 4539/6535/569 4540/6536/567 +f 4273/6049/571 4527/6523/571 4541/6537/568 +f 4275/6052/620 4274/6224/619 4402/6555/619 +f 4275/6055/620 4292/6556/620 4401/6557/621 +f 4278/6058/621 4401/6557/621 4400/6558/622 +f 4281/6060/608 4280/6225/622 4400/6558/622 +f 4281/6226/608 4399/6559/608 4398/6560/607 +f 4291/6227/610 4396/6564/610 4395/6561/611 +f 4289/6069/609 4283/6068/607 4398/6560/607 +f 4261/6070/612 4286/6228/611 4395/6561/611 +f 4289/6072/609 4397/6562/609 4396/6564/610 +f 4262/6035/615 4261/6034/612 4294/6565/612 +f 4262/6037/615 4407/6566/615 4406/6567/614 +f 4265/6039/613 4264/6222/614 4406/6567/614 +f 4265/6223/613 4405/6568/613 4293/6569/616 +f 4267/6044/616 4293/6569/616 4404/6570/617 +f 4270/6047/617 4404/6570/617 4403/6571/618 +f 4272/6050/618 4403/6571/618 4402/6555/619 +f 4309/6572/561 4408/6575/625 4412/6573/625 +f 4408/6575/625 4308/6577/626 4413/6576/626 +f 4308/6577/626 4307/6579/559 4310/6578/559 +f 4307/6579/559 4410/6581/623 4311/6580/623 +f 4410/6581/623 4409/6629/624 4312/6582/624 +f 4409/6583/624 4309/6572/561 4411/6574/561 +f 4319/6585/568 4414/6588/678 4418/6586/678 +f 4414/6588/678 4321/6590/679 4419/6589/679 +f 4321/6590/679 4416/6592/569 4322/6591/569 +f 4416/6592/569 4320/6594/680 4323/6593/680 +f 4320/6594/680 4415/6630/681 4324/6595/681 +f 4415/6596/681 4319/6585/568 4417/6587/568 +f 4331/6598/569 4420/6601/680 4424/6599/680 +f 4420/6601/680 4333/6603/681 4425/6602/681 +f 4333/6603/681 4422/6605/568 4334/6604/568 +f 4422/6605/568 4332/6607/678 4335/6606/678 +f 4332/6607/678 4421/6631/679 4336/6608/679 +f 4421/6609/679 4331/6598/569 4423/6600/569 +o Huge_Missile +v 0.923880 8.500000 0.382684 +v 0.618718 8.500000 0.618719 +v 0.808395 8.500000 0.334848 +v -0.707107 8.500000 -0.707107 +v -0.808395 8.500000 -0.334848 +v -0.923880 8.500000 -0.382683 +v 0.382683 8.500000 0.923880 +v 0.707107 8.500000 0.707107 +v -0.382683 8.500000 -0.923880 +v -0.618718 8.500000 -0.618719 +v 0.000000 8.500000 0.875000 +v 0.334848 8.500000 0.808394 +v 0.000000 8.500000 -1.000000 +v 0.334848 8.500000 -0.808395 +v 0.000000 8.500000 -0.875000 +v -0.334848 8.500000 -0.808394 +v -0.382683 8.500000 0.923880 +v 0.000000 8.500000 1.000000 +v 0.707107 8.500000 -0.707107 +v 0.382683 8.500000 -0.923880 +v -0.707107 8.500000 0.707107 +v -0.334848 8.500000 0.808394 +v 0.808394 8.500000 -0.334848 +v 0.618718 8.500000 -0.618719 +v -0.923880 8.500000 0.382684 +v -0.618718 8.500000 0.618719 +v 0.923879 8.500000 -0.382684 +v 0.875000 8.500000 0.000000 +v -1.000000 8.500000 0.000000 +v -0.808395 8.500000 0.334848 +v 1.000000 8.500000 0.000000 +v 0.265165 2.000000 -0.359835 +v -0.265165 2.000000 -0.359835 +v -0.265165 2.000000 -0.890165 +v -0.875000 8.500000 0.000000 +v 1.000000 8.250000 0.000000 +v 0.808395 8.250000 0.334848 +v 0.923880 8.250000 0.382684 +v 0.923879 8.250000 -0.382684 +v 0.875000 8.250000 0.000000 +v 0.707107 8.250000 -0.707107 +v 0.808394 8.250000 -0.334848 +v 0.382683 8.250000 -0.923880 +v 0.618718 8.250000 -0.618719 +v 0.000000 8.250000 -1.000000 +v 0.334848 8.250000 -0.808395 +v -0.382683 8.250000 -0.923880 +v 0.000000 8.250000 -0.875000 +v -0.618718 8.250000 -0.618719 +v -0.334848 8.250000 -0.808394 +v -0.707107 8.250000 -0.707107 +v -0.808395 8.250000 -0.334848 +v -0.923880 8.250000 -0.382683 +v -0.875000 8.250000 0.000000 +v -1.000000 8.250000 0.000000 +v -0.808395 8.250000 0.334848 +v -0.923880 8.250000 0.382684 +v -0.618718 8.250000 0.618719 +v -0.382683 8.250000 0.923880 +v -0.707107 8.250000 0.707107 +v 0.000000 8.250000 0.875000 +v -0.334848 8.250000 0.808394 +v 0.382683 8.250000 0.923880 +v 0.000000 8.250000 1.000000 +v 0.707107 8.250000 0.707107 +v 0.334848 8.250000 0.808394 +v 0.618718 8.250000 0.618719 +v -0.883883 2.500000 -0.883883 +v 0.883883 2.500000 -0.883884 +v 0.883883 2.500000 0.883884 +v 1.502602 2.375000 -1.502602 +v 0.839689 2.375000 -0.751301 +v 0.751301 2.375000 -0.839689 +v 0.839689 5.375000 -0.751301 +v 1.502602 3.375000 -1.502602 +v 0.751301 5.375000 -0.839689 +v 0.265165 2.000000 0.890165 +v -0.265165 2.000000 0.890165 +v -0.265165 2.000000 0.359835 +v 0.890165 2.000000 0.265165 +v 0.359835 2.000000 0.265165 +v 0.359835 2.000000 -0.265165 +v -0.359835 2.000000 0.265165 +v -0.890165 2.000000 0.265165 +v -0.890165 2.000000 -0.265165 +v -1.502602 2.375000 1.502602 +v -0.839689 2.375000 0.751301 +v -0.751301 2.375000 0.839689 +v -0.839689 5.375000 0.751301 +v -1.502602 3.375000 1.502602 +v -0.751301 5.375000 0.839689 +v -1.502602 2.375000 -1.502602 +v -0.751301 2.375000 -0.839689 +v -0.839689 2.375000 -0.751301 +v -0.751301 5.375000 -0.839689 +v -1.502602 3.375000 -1.502602 +v -0.839689 5.375000 -0.751301 +v 1.502602 2.375000 1.502601 +v 0.751301 2.375000 0.839689 +v 0.839689 2.375000 0.751301 +v 0.751301 5.375000 0.839689 +v 1.502602 3.375000 1.502601 +v 0.839689 5.375000 0.751301 +v -0.143506 2.000000 -0.971455 +v 0.265165 2.000000 -0.890165 +v 0.000000 2.000000 -1.000000 +v 0.143506 2.000000 -0.971455 +v 0.346455 2.000000 -0.768507 +v 0.375000 2.000000 -0.625000 +v 0.346455 2.000000 -0.481493 +v 0.143506 2.000000 -0.278545 +v 0.000000 2.000000 -0.250000 +v -0.143506 2.000000 -0.278545 +v -0.346455 2.000000 -0.481494 +v -0.375000 2.000000 -0.625000 +v -0.346455 2.000000 -0.768506 +v -0.478354 2.500000 -1.154850 +v 0.000000 2.500000 -1.250000 +v 0.478354 2.500000 -1.154850 +v 1.154849 2.500000 -0.478354 +v 1.250000 2.500000 0.000000 +v 1.154849 2.500000 0.478354 +v 0.478354 2.500000 1.154850 +v 0.000000 2.500000 1.250000 +v -0.478354 2.500000 1.154850 +v -0.883883 2.500000 0.883883 +v -1.154849 2.500000 0.478354 +v -1.250000 2.500000 0.000000 +v -1.154849 2.500000 -0.478354 +v -0.143506 2.000000 0.278545 +v 0.265165 2.000000 0.359835 +v 0.000000 2.000000 0.250000 +v 0.143506 2.000000 0.278545 +v 0.346455 2.000000 0.481493 +v 0.375000 2.000000 0.625000 +v 0.346455 2.000000 0.768507 +v 0.143506 2.000000 0.971455 +v 0.000000 2.000000 1.000000 +v -0.143506 2.000000 0.971455 +v -0.346455 2.000000 0.768506 +v -0.375000 2.000000 0.625000 +v -0.346455 2.000000 0.481494 +v 0.481494 2.000000 -0.346455 +v 0.890165 2.000000 -0.265165 +v 0.625000 2.000000 -0.375000 +v 0.768506 2.000000 -0.346455 +v 0.971455 2.000000 -0.143507 +v 1.000000 2.000000 0.000000 +v 0.971455 2.000000 0.143507 +v 0.768506 2.000000 0.346455 +v 0.625000 2.000000 0.375000 +v 0.481494 2.000000 0.346455 +v 0.278545 2.000000 0.143506 +v 0.250000 2.000000 0.000000 +v 0.278545 2.000000 -0.143506 +v -0.768506 2.000000 -0.346455 +v -0.359835 2.000000 -0.265165 +v -0.625000 2.000000 -0.375000 +v -0.481494 2.000000 -0.346455 +v -0.278545 2.000000 -0.143507 +v -0.250000 2.000000 0.000000 +v -0.278545 2.000000 0.143507 +v -0.481494 2.000000 0.346455 +v -0.625000 2.000000 0.375000 +v -0.768506 2.000000 0.346455 +v -0.971455 2.000000 0.143506 +v -1.000000 2.000000 0.000000 +v -0.971455 2.000000 -0.143506 +v -1.250000 7.250000 0.000000 +v -1.154849 7.250000 0.478354 +v -0.707107 11.500000 -0.707107 +v -0.334848 13.000000 -0.808394 +v -0.382683 11.500000 -0.923880 +v 0.707107 11.500000 0.707107 +v 0.334848 13.000000 0.808394 +v 0.382683 11.500000 0.923880 +v -0.923880 11.500000 -0.382683 +v -0.618718 13.000000 -0.618719 +v 0.923880 11.500000 0.382684 +v 0.618718 13.000000 0.618719 +v -1.000000 11.500000 0.000000 +v -0.808395 13.000000 -0.334848 +v 0.875000 13.000000 0.000000 +v 0.808395 13.000000 0.334848 +v -0.923880 11.500000 0.382684 +v -0.875000 13.000000 0.000000 +v 0.923879 11.500000 -0.382684 +v 1.000000 11.500000 0.000000 +v -0.707107 11.500000 0.707107 +v -0.808395 13.000000 0.334848 +v 0.707107 11.500000 -0.707107 +v 0.808394 13.000000 -0.334848 +v -0.382683 11.500000 0.923880 +v -0.618718 13.000000 0.618719 +v 0.382683 11.500000 -0.923880 +v 0.618718 13.000000 -0.618719 +v 0.000000 11.500000 1.000000 +v -0.334848 13.000000 0.808394 +v 0.000000 13.000000 -0.875000 +v 0.000000 11.500000 -1.000000 +v 0.334848 13.000000 -0.808395 +v 0.000000 13.000000 0.875000 +v 1.154849 7.250000 0.478354 +v 1.250000 7.250000 0.000000 +v 0.000000 15.499999 0.000001 +v -1.154849 7.250000 -0.478354 +v 0.883883 7.250000 0.883884 +v -0.883883 7.250000 -0.883883 +v 0.478354 7.250000 1.154850 +v -0.478354 7.250000 -1.154850 +v 0.000000 7.250000 1.250000 +v 0.478354 7.250000 -1.154850 +v 0.000000 7.250000 -1.250000 +v -0.478354 7.250000 1.154850 +v 0.883883 7.250000 -0.883884 +v 0.346455 2.250000 -0.481493 +v 0.176777 2.500000 -0.448223 +v 0.265165 2.250000 -0.359835 +v 0.143506 2.250000 -0.278545 +v 0.095671 2.500000 -0.394030 +v 0.000000 2.500000 -0.375000 +v 0.000000 2.250000 -0.250000 +v -0.143506 2.250000 -0.278545 +v -0.095671 2.500000 -0.394030 +v -0.176777 2.500000 -0.448223 +v -0.265165 2.250000 -0.359835 +v -0.230970 2.500000 -0.529329 +v -0.346455 2.250000 -0.481494 +v -0.250000 2.500000 -0.625000 +v -0.375000 2.250000 -0.625000 +v -0.230970 2.500000 -0.720671 +v -0.346455 2.250000 -0.768506 +v -0.176777 2.500000 -0.801777 +v -0.265165 2.250000 -0.890165 +v -0.143506 2.250000 -0.971455 +v -0.095671 2.500000 -0.855970 +v 0.000000 2.500000 -0.875000 +v 0.000000 2.250000 -1.000000 +v 0.095671 2.500000 -0.855970 +v 0.143506 2.250000 -0.971455 +v 0.176777 2.500000 -0.801777 +v 0.265165 2.250000 -0.890165 +v 0.346455 2.250000 -0.768507 +v 0.230970 2.500000 -0.720671 +v 0.375000 2.250000 -0.625000 +v 0.250000 2.500000 -0.625000 +v 0.230970 2.500000 -0.529329 +v 1.154849 7.250000 -0.478354 +v -0.883883 7.250000 0.883883 +v 0.717107 9.313000 -0.717107 +v 0.392683 10.500000 -0.933880 +v 0.717107 10.500000 -0.717107 +v 0.933879 9.313000 -0.392684 +v 0.933879 10.500000 -0.392684 +v 1.010000 9.313000 -0.010000 +v 1.010000 10.500000 -0.010000 +v 0.346455 2.250000 0.768507 +v 0.176777 2.500000 0.801777 +v 0.265165 2.250000 0.890165 +v 0.143506 2.250000 0.971455 +v 0.095671 2.500000 0.855970 +v 0.000000 2.500000 0.875000 +v 0.000000 2.250000 1.000000 +v -0.143506 2.250000 0.971455 +v -0.095671 2.500000 0.855970 +v -0.176777 2.500000 0.801777 +v -0.265165 2.250000 0.890165 +v -0.230970 2.500000 0.720671 +v -0.346455 2.250000 0.768506 +v -0.250000 2.500000 0.625000 +v -0.375000 2.250000 0.625000 +v -0.346455 2.250000 0.481494 +v -0.230970 2.500000 0.529329 +v -0.176777 2.500000 0.448223 +v -0.265165 2.250000 0.359835 +v -0.143506 2.250000 0.278545 +v -0.095671 2.500000 0.394030 +v 0.000000 2.250000 0.250000 +v 0.000000 2.500000 0.375000 +v 0.095671 2.500000 0.394030 +v 0.143506 2.250000 0.278545 +v 0.265165 2.250000 0.359835 +v 0.176777 2.500000 0.448223 +v 0.346455 2.250000 0.481493 +v 0.230970 2.500000 0.529329 +v 0.375000 2.250000 0.625000 +v 0.250000 2.500000 0.625000 +v 0.230970 2.500000 0.720671 +v 0.971455 2.250000 0.143507 +v 0.801777 2.500000 0.176777 +v 0.890165 2.250000 0.265165 +v 0.768506 2.250000 0.346455 +v 0.720671 2.500000 0.230970 +v 0.625000 2.500000 0.250000 +v 0.625000 2.250000 0.375000 +v 0.481494 2.250000 0.346455 +v 0.529329 2.500000 0.230970 +v 0.448223 2.500000 0.176777 +v 0.359835 2.250000 0.265165 +v 0.394030 2.500000 0.095671 +v 0.278545 2.250000 0.143506 +v 0.375000 2.500000 0.000000 +v 0.250000 2.250000 0.000000 +v 0.278545 2.250000 -0.143506 +v 0.394030 2.500000 -0.095671 +v 0.448223 2.500000 -0.176777 +v 0.359835 2.250000 -0.265165 +v 0.481494 2.250000 -0.346455 +v 0.529329 2.500000 -0.230970 +v 0.625000 2.500000 -0.250000 +v 0.625000 2.250000 -0.375000 +v 0.720671 2.500000 -0.230970 +v 0.768506 2.250000 -0.346455 +v 0.801777 2.500000 -0.176777 +v 0.890165 2.250000 -0.265165 +v 0.971455 2.250000 -0.143507 +v 0.855970 2.500000 -0.095671 +v 1.000000 2.250000 0.000000 +v 0.875000 2.500000 0.000000 +v 0.855970 2.500000 0.095671 +v -0.278545 2.250000 0.143507 +v -0.448223 2.500000 0.176777 +v -0.359835 2.250000 0.265165 +v -0.481494 2.250000 0.346455 +v -0.529329 2.500000 0.230970 +v -0.625000 2.500000 0.250000 +v -0.625000 2.250000 0.375000 +v -0.768506 2.250000 0.346455 +v -0.720671 2.500000 0.230970 +v -0.801777 2.500000 0.176777 +v -0.890165 2.250000 0.265165 +v -0.855970 2.500000 0.095671 +v -0.971455 2.250000 0.143506 +v -0.875000 2.500000 0.000000 +v -1.000000 2.250000 0.000000 +v -0.971455 2.250000 -0.143506 +v -0.855970 2.500000 -0.095671 +v -0.801777 2.500000 -0.176777 +v -0.890165 2.250000 -0.265165 +v -0.768506 2.250000 -0.346455 +v -0.720671 2.500000 -0.230970 +v -0.625000 2.500000 -0.250000 +v -0.625000 2.250000 -0.375000 +v -0.529329 2.500000 -0.230970 +v -0.481494 2.250000 -0.346455 +v -0.448223 2.500000 -0.176777 +v -0.359835 2.250000 -0.265165 +v -0.278545 2.250000 -0.143507 +v -0.394030 2.500000 -0.095671 +v -0.250000 2.250000 0.000000 +v -0.375000 2.500000 0.000000 +v -0.394030 2.500000 0.095671 +v -0.717106 9.313000 0.717107 +v -0.392683 10.500000 0.933880 +v -0.717106 10.500000 0.717107 +v -0.933879 9.313000 0.392684 +v -0.933879 10.500000 0.392684 +v -1.010000 9.313000 0.010000 +v -1.010000 10.500000 0.010000 +v 0.392683 9.313000 -0.933880 +v -0.392683 9.313000 0.933880 +vt 0.291667 0.471698 +vt 0.250000 0.462264 +vt 0.291667 0.462264 +vt 0.583333 0.471698 +vt 0.625000 0.462264 +vt 0.625000 0.471698 +vt 0.208333 0.471698 +vt 0.250000 0.471698 +vt 0.541667 0.471698 +vt 0.583333 0.462264 +vt 0.166667 0.462264 +vt 0.208333 0.462264 +vt 0.500000 0.471698 +vt 0.458333 0.462264 +vt 0.500000 0.462264 +vt 0.541667 0.462264 +vt 0.125000 0.471698 +vt 0.166667 0.471698 +vt 0.416667 0.471698 +vt 0.458333 0.471698 +vt 0.083333 0.471698 +vt 0.125000 0.462264 +vt 0.375000 0.462264 +vt 0.416667 0.462264 +vt 0.041667 0.471698 +vt 0.083333 0.462264 +vt 0.375000 0.471698 +vt 0.333333 0.462264 +vt -0.000000 0.471698 +vt 0.041667 0.462264 +vt 0.333333 0.471698 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.666667 0.462264 +vt 0.666667 0.471698 +vt 0.333333 0.433962 +vt 0.291667 0.443396 +vt 0.291667 0.433962 +vt 0.375000 0.433962 +vt 0.333333 0.443396 +vt 0.416667 0.433962 +vt 0.375000 0.443396 +vt 0.458333 0.433962 +vt 0.416667 0.443396 +vt 0.500000 0.433962 +vt 0.458333 0.443396 +vt 0.541667 0.433962 +vt 0.500000 0.443396 +vt 0.583333 0.443396 +vt 0.541667 0.443396 +vt 0.583333 0.433962 +vt 0.625000 0.443396 +vt 0.625000 0.433962 +vt 0.666667 0.443396 +vt 0.000000 0.433962 +vt 0.041667 0.443396 +vt 0.000000 0.443396 +vt 0.041667 0.433962 +vt 0.083333 0.443396 +vt 0.125000 0.433962 +vt 0.083333 0.433962 +vt 0.166667 0.443396 +vt 0.125000 0.443396 +vt 0.208333 0.433962 +vt 0.166667 0.433962 +vt 0.250000 0.433962 +vt 0.208333 0.443396 +vt 0.250000 0.443396 +vt 0.903652 0.461671 +vt 0.903652 0.594933 +vt 0.707459 0.594933 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.000000 0.462264 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.666667 0.433962 +vt 0.933724 0.492241 +vt 0.944284 0.528302 +vt 0.933724 0.564363 +vt 0.858645 0.615360 +vt 0.805556 0.622533 +vt 0.752466 0.615360 +vt 0.677387 0.564362 +vt 0.666827 0.528302 +vt 0.677387 0.492241 +vt 0.707459 0.461671 +vt 0.752466 0.441244 +vt 0.805556 0.434071 +vt 0.858645 0.441244 +vt 0.888889 0.231132 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt -0.000000 0.358491 +vt 0.055556 0.000000 +vt 0.055556 0.358491 +vt 0.583333 0.698113 +vt 0.541667 0.811321 +vt 0.541667 0.698113 +vt 0.250000 0.698113 +vt 0.208333 0.811321 +vt 0.208333 0.698113 +vt 0.625000 0.698113 +vt 0.583333 0.811321 +vt 0.291667 0.698113 +vt 0.250000 0.811321 +vt 0.666667 0.698113 +vt 0.625000 0.811321 +vt 0.326389 0.811321 +vt 0.291667 0.811321 +vt 0.041667 0.698113 +vt 0.000000 0.811321 +vt -0.000000 0.698113 +vt 0.375000 0.698113 +vt 0.333333 0.811321 +vt 0.333333 0.698113 +vt 0.083333 0.698113 +vt 0.041667 0.811321 +vt 0.416667 0.698113 +vt 0.375000 0.811321 +vt 0.125000 0.698113 +vt 0.083333 0.811321 +vt 0.458333 0.698113 +vt 0.416667 0.811321 +vt 0.166667 0.698113 +vt 0.125000 0.811321 +vt 0.500000 0.811321 +vt 0.500000 0.698113 +vt 0.458333 0.811321 +vt 0.166667 0.811321 +vt 0.388889 0.358491 +vt 0.444444 0.000000 +vt 0.444444 0.358491 +vt 0.576389 0.811321 +vt 0.562500 1.000000 +vt 0.618056 0.811321 +vt 0.604167 1.000000 +vt 0.659722 0.811321 +vt 0.645833 1.000000 +vt 0.034722 0.811321 +vt 0.020833 1.000000 +vt 0.076389 0.811321 +vt 0.062500 1.000000 +vt 0.118056 0.811321 +vt 0.104167 1.000000 +vt 0.159722 0.811321 +vt 0.145833 1.000000 +vt 0.194444 0.811321 +vt 0.187500 1.000000 +vt 0.243056 0.811321 +vt 0.229167 1.000000 +vt 0.284722 0.811321 +vt 0.270833 1.000000 +vt 0.312500 1.000000 +vt 0.368056 0.811321 +vt 0.354167 1.000000 +vt 0.409722 0.811321 +vt 0.395833 1.000000 +vt 0.451389 0.811321 +vt 0.437500 1.000000 +vt 0.493056 0.811321 +vt 0.479167 1.000000 +vt 0.534722 0.811321 +vt 0.520833 1.000000 +vt 0.833333 0.358491 +vt 0.888889 0.000000 +vt 0.888889 0.358491 +vt 0.333333 0.358491 +vt 0.388889 -0.000000 +vt 0.777778 0.358491 +vt 0.833333 0.000000 +vt 0.277778 0.358491 +vt 0.333333 -0.000000 +vt 0.722222 0.358491 +vt 0.777778 0.000000 +vt 0.222222 0.358491 +vt 0.277778 0.000000 +vt 0.611111 0.358491 +vt 0.666667 0.000000 +vt 0.666667 0.358491 +vt 0.729167 0.000000 +vt 0.166667 0.358491 +vt 0.222222 -0.000000 +vt 0.555556 0.358491 +vt 0.611111 0.000000 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.660377 +vt 0.819444 0.641509 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.555556 0.433962 +vt 0.611111 0.433962 +vt 0.500000 0.000000 +vt 0.500000 0.358491 +vt 0.166667 0.433962 +vt 0.111111 0.358491 +vt 0.500000 0.433962 +vt 0.055556 0.433962 +vt 0.111111 0.433962 +vt 0.444444 0.433962 +vt 0.833333 0.433962 +vt 0.888889 0.433962 +vt 0.333333 0.433962 +vt 0.388889 0.433962 +vt 0.777778 0.433962 +vt 0.722222 0.433962 +vt 0.222222 0.433962 +vt 0.277778 0.433962 +vt 0.666667 0.433962 +vt 0.166667 -0.000000 +vt 0.555556 -0.000000 +vt 0.111111 -0.000000 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.641509 +vt 0.777778 0.660377 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.641509 +vt 0.750000 0.660377 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.000000 0.000000 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.6325 0.4472 -0.6325 +vn 0.7498 -0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn -0.6325 0.4472 0.6325 +vn -0.7498 0.0000 -0.6616 +vn 0.6616 -0.0000 0.7498 +vn -0.6325 0.4472 -0.6325 +vn 0.6616 0.0000 -0.7498 +vn -0.7498 -0.0000 0.6616 +vn 0.6325 0.4472 0.6325 +vn -0.6616 0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn -1.0000 0.0000 0.0000 +vn -0.9239 -0.0000 0.3827 +vn -0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 -0.9207 +vn 0.7047 0.0830 0.7047 +vn 0.3814 0.0830 0.9207 +vn -0.9207 0.0830 -0.3814 +vn 0.9207 0.0830 0.3814 +vn -0.9965 0.0830 0.0000 +vn 0.9965 0.0830 -0.0000 +vn -0.9207 0.0830 0.3814 +vn 0.9207 0.0830 -0.3814 +vn -0.7047 0.0830 0.7047 +vn 0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 0.9207 +vn 0.3814 0.0830 -0.9207 +vn -0.0000 0.0830 0.9965 +vn -0.0000 0.0830 -0.9965 +vn 0.9239 -0.0000 0.3827 +vn 1.0000 -0.0000 -0.0000 +vn -0.3612 0.3304 -0.8720 +vn -0.6674 0.3304 -0.6674 +vn -0.8720 0.3304 -0.3612 +vn -0.9439 0.3304 -0.0000 +vn -0.8720 0.3304 0.3612 +vn -0.6674 0.3304 0.6674 +vn -0.3612 0.3304 0.8720 +vn 0.0000 0.3304 0.9439 +vn 0.3612 0.3304 0.8720 +vn 0.6674 0.3304 0.6674 +vn 0.8720 0.3304 0.3612 +vn 0.9439 0.3304 -0.0000 +vn 0.8720 0.3304 -0.3612 +vn 0.6674 0.3304 -0.6674 +vn 0.3612 0.3304 -0.8720 +vn -0.0000 0.3304 -0.9439 +vn -0.9239 0.0000 -0.3827 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 -0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.0000 -0.0000 1.0000 +vn 0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 -0.0000 0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.8263 0.4472 0.3423 +vn 0.3423 0.4472 0.8263 +vn 0.0000 0.4472 0.8944 +vn -0.3423 0.4472 0.8263 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.3423 0.4472 -0.8263 +vn -0.0000 0.4472 -0.8944 +vn 0.3423 0.4472 -0.8263 +vn 0.8263 0.4472 -0.3423 +vn 0.8944 0.4472 0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.9239 0.0000 -0.3827 +vn 0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 -0.8963 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn 0.8963 0.2425 -0.3713 +vn -0.8963 0.2425 0.3713 +vn 0.9701 0.2425 -0.0000 +vn -0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn -0.8963 0.2425 -0.3713 +vn 0.6860 0.2425 0.6860 +vn -0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 0.8963 +vn -0.3713 0.2425 -0.8963 +vn -0.0000 0.2425 0.9701 +vn 0.0000 0.2425 -0.9701 +vn 0.5556 0.0000 -0.8315 +vn 0.9808 0.0000 -0.1951 +vn -0.5556 -0.0000 0.8315 +vn -0.9808 -0.0000 0.1951 +s off +f 4543/6632/682 4544/6633/682 4545/6634/682 +f 4546/6635/682 4547/6636/682 4548/6637/682 +f 4549/6638/682 4544/6633/682 4550/6639/682 +f 4551/6640/682 4552/6641/682 4546/6635/682 +f 4549/6638/682 4553/6642/682 4554/6643/682 +f 4555/6644/682 4556/6645/682 4557/6646/682 +f 4551/6640/682 4557/6646/682 4558/6647/682 +f 4559/6648/682 4553/6642/682 4560/6649/682 +f 4561/6650/682 4556/6645/682 4562/6651/682 +f 4563/6652/682 4564/6653/682 4559/6648/682 +f 4561/6650/682 4565/6654/682 4566/6655/682 +f 4567/6656/682 4568/6657/682 4563/6652/682 +f 4569/6658/682 4570/6659/682 4565/6654/682 +f 4571/6660/682 4572/6661/682 4567/6656/682 +f 4573/6662/682 4545/6634/682 4570/6659/682 +f 4574/6663/682 4575/6664/682 4576/6665/682 +f 4548/6637/682 4577/6666/682 4571/6667/682 +f 4578/6668/683 4579/6669/683 4580/6670/683 +f 4581/6671/683 4582/6672/683 4578/6668/683 +f 4583/6673/683 4584/6674/683 4581/6671/683 +f 4585/6675/683 4586/6676/683 4583/6673/683 +f 4587/6677/683 4588/6678/683 4585/6675/683 +f 4589/6679/683 4590/6680/683 4587/6677/683 +f 4589/6679/683 4591/6681/683 4592/6682/683 +f 4593/6683/683 4594/6684/683 4591/6681/683 +f 4595/6685/683 4596/6686/683 4594/6684/683 +f 4597/6687/683 4598/6688/683 4596/6689/683 +f 4599/6690/683 4600/6691/683 4598/6688/683 +f 4601/6692/683 4600/6691/683 4602/6693/683 +f 4601/6692/683 4603/6694/683 4604/6695/683 +f 4605/6696/683 4603/6694/683 4606/6697/683 +f 4607/6698/683 4608/6699/683 4605/6696/683 +f 4580/6670/683 4609/6700/683 4607/6698/683 +f 4610/6701/682 4611/6702/682 4612/6703/682 +f 4613/6704/682 4614/6705/682 4615/6706/682 +f 4616/6707/684 4617/6708/684 4618/6709/684 +f 4614/6705/685 4617/6710/685 4616/6707/685 +f 4615/6711/686 4617/6710/686 4613/6704/686 +f 4619/6712/682 4620/6713/682 4621/6714/682 +f 4622/6715/682 4623/6716/682 4624/6717/682 +f 4625/6718/682 4626/6719/682 4627/6720/682 +f 4628/6721/682 4629/6722/682 4630/6723/682 +f 4631/6724/687 4632/6725/687 4633/6726/687 +f 4629/6722/688 4632/6727/688 4631/6724/688 +f 4630/6728/689 4632/6727/689 4628/6721/689 +f 4634/6729/682 4635/6730/682 4636/6731/682 +f 4637/6732/690 4638/6733/690 4639/6734/690 +f 4635/6730/691 4638/6735/691 4637/6732/691 +f 4636/6736/692 4638/6735/692 4634/6729/692 +f 4640/6737/682 4641/6738/682 4642/6739/682 +f 4643/6740/693 4644/6741/693 4645/6742/693 +f 4641/6738/694 4644/6743/694 4643/6740/694 +f 4642/6744/695 4644/6743/695 4640/6737/695 +f 4543/6632/682 4550/6639/682 4544/6633/682 +f 4546/6635/682 4552/6641/682 4547/6636/682 +f 4549/6638/682 4554/6643/682 4544/6633/682 +f 4551/6640/682 4558/6647/682 4552/6641/682 +f 4549/6638/682 4560/6649/682 4553/6642/682 +f 4555/6644/682 4562/6651/682 4556/6645/682 +f 4551/6640/682 4555/6644/682 4557/6646/682 +f 4559/6648/682 4564/6653/682 4553/6642/682 +f 4561/6650/682 4566/6655/682 4556/6645/682 +f 4563/6652/682 4568/6657/682 4564/6653/682 +f 4561/6650/682 4569/6658/682 4565/6654/682 +f 4567/6656/682 4572/6661/682 4568/6657/682 +f 4569/6658/682 4573/6662/682 4570/6659/682 +f 4571/6660/682 4577/6745/682 4572/6661/682 +f 4573/6662/682 4543/6632/682 4545/6634/682 +f 4576/6665/682 4646/6746/682 4647/6747/682 +f 4646/6746/682 4648/6748/682 4647/6747/682 +f 4648/6748/682 4649/6749/682 4647/6747/682 +f 4647/6747/682 4650/6750/682 4651/6751/682 +f 4651/6751/682 4652/6752/682 4574/6663/682 +f 4574/6663/682 4653/6753/682 4575/6664/682 +f 4653/6753/682 4654/6754/682 4575/6664/682 +f 4654/6754/682 4655/6755/682 4575/6664/682 +f 4575/6664/682 4656/6756/682 4657/6757/682 +f 4657/6757/682 4658/6758/682 4575/6664/682 +f 4658/6758/682 4576/6665/682 4575/6664/682 +f 4647/6747/682 4651/6751/682 4576/6665/682 +f 4651/6751/682 4574/6663/682 4576/6665/682 +f 4548/6637/682 4547/6636/682 4577/6666/682 +f 4578/6668/683 4582/6672/683 4579/6669/683 +f 4581/6671/683 4584/6674/683 4582/6672/683 +f 4583/6673/683 4586/6676/683 4584/6674/683 +f 4585/6675/683 4588/6678/683 4586/6676/683 +f 4587/6677/683 4590/6680/683 4588/6678/683 +f 4589/6679/683 4592/6682/683 4590/6680/683 +f 4589/6679/683 4593/6683/683 4591/6681/683 +f 4593/6683/683 4595/6685/683 4594/6684/683 +f 4595/6685/683 4597/6759/683 4596/6686/683 +f 4597/6687/683 4599/6690/683 4598/6688/683 +f 4599/6690/683 4602/6693/683 4600/6691/683 +f 4601/6692/683 4604/6695/683 4600/6691/683 +f 4601/6692/683 4606/6697/683 4603/6694/683 +f 4605/6696/683 4608/6699/683 4603/6694/683 +f 4607/6698/683 4609/6700/683 4608/6699/683 +f 4580/6670/683 4579/6669/683 4609/6700/683 +f 4610/6701/682 4659/6760/682 4660/6761/682 +f 4660/6761/682 4661/6762/682 4610/6701/682 +f 4661/6762/682 4611/6702/682 4610/6701/682 +f 4611/6702/682 4662/6763/682 4663/6764/682 +f 4663/6764/682 4664/6765/682 4612/6703/682 +f 4612/6703/682 4665/6766/682 4666/6767/682 +f 4666/6767/682 4667/6768/682 4668/6769/682 +f 4668/6769/682 4669/6770/682 4670/6771/682 +f 4670/6771/682 4671/6772/682 4610/6701/682 +f 4611/6702/682 4663/6764/682 4612/6703/682 +f 4612/6703/682 4666/6767/682 4610/6701/682 +f 4666/6767/682 4668/6769/682 4610/6701/682 +f 4668/6769/682 4670/6771/682 4610/6701/682 +f 4614/6705/685 4613/6704/685 4617/6710/685 +f 4615/6711/686 4618/6773/686 4617/6710/686 +f 4621/6714/682 4672/6774/682 4673/6775/682 +f 4672/6774/682 4674/6776/682 4673/6775/682 +f 4674/6776/682 4675/6777/682 4673/6775/682 +f 4673/6775/682 4676/6778/682 4677/6779/682 +f 4677/6779/682 4678/6780/682 4619/6712/682 +f 4619/6712/682 4679/6781/682 4620/6713/682 +f 4679/6781/682 4680/6782/682 4620/6713/682 +f 4680/6782/682 4681/6783/682 4620/6713/682 +f 4620/6713/682 4682/6784/682 4683/6785/682 +f 4683/6785/682 4684/6786/682 4620/6713/682 +f 4684/6786/682 4621/6714/682 4620/6713/682 +f 4673/6775/682 4677/6779/682 4621/6714/682 +f 4677/6779/682 4619/6712/682 4621/6714/682 +f 4624/6717/682 4685/6787/682 4686/6788/682 +f 4685/6787/682 4687/6789/682 4686/6788/682 +f 4687/6789/682 4688/6790/682 4686/6788/682 +f 4686/6788/682 4689/6791/682 4690/6792/682 +f 4690/6792/682 4691/6793/682 4622/6715/682 +f 4622/6715/682 4692/6794/682 4623/6716/682 +f 4692/6794/682 4693/6795/682 4623/6716/682 +f 4693/6795/682 4694/6796/682 4623/6716/682 +f 4623/6716/682 4695/6797/682 4696/6798/682 +f 4696/6798/682 4697/6799/682 4623/6716/682 +f 4697/6799/682 4624/6717/682 4623/6716/682 +f 4686/6788/682 4690/6792/682 4624/6717/682 +f 4690/6792/682 4622/6715/682 4624/6717/682 +f 4627/6720/682 4698/6800/682 4699/6801/682 +f 4698/6800/682 4700/6802/682 4699/6801/682 +f 4700/6802/682 4701/6803/682 4699/6801/682 +f 4699/6801/682 4702/6804/682 4703/6805/682 +f 4703/6805/682 4704/6806/682 4625/6718/682 +f 4625/6718/682 4705/6807/682 4626/6719/682 +f 4705/6807/682 4706/6808/682 4626/6719/682 +f 4706/6808/682 4707/6809/682 4626/6719/682 +f 4626/6719/682 4708/6810/682 4709/6811/682 +f 4709/6811/682 4710/6812/682 4626/6719/682 +f 4710/6812/682 4627/6720/682 4626/6719/682 +f 4699/6801/682 4703/6805/682 4627/6720/682 +f 4703/6805/682 4625/6718/682 4627/6720/682 +f 4629/6722/688 4628/6721/688 4632/6727/688 +f 4630/6728/689 4633/6813/689 4632/6727/689 +f 4635/6730/691 4634/6729/691 4638/6735/691 +f 4636/6736/692 4639/6814/692 4638/6735/692 +f 4641/6738/694 4640/6737/694 4644/6743/694 +f 4642/6744/695 4645/6815/695 4644/6743/695 +s 1 +f 4711/6816/696 4669/6817/697 4712/6818/697 +f 4713/6819/698 4714/6820/699 4715/6821/699 +f 4716/6822/700 4717/6823/701 4718/6824/701 +f 4719/6825/702 4720/6826/698 4713/6819/698 +f 4721/6827/703 4722/6828/700 4716/6822/700 +f 4723/6829/704 4724/6830/702 4719/6825/702 +f 4721/6827/703 4725/6831/705 4726/6832/703 +f 4727/6833/706 4728/6834/704 4723/6835/704 +f 4729/6836/707 4725/6837/705 4730/6838/705 +f 4731/6839/708 4732/6840/706 4727/6833/706 +f 4733/6841/709 4734/6842/707 4729/6836/707 +f 4735/6843/710 4736/6844/708 4731/6839/708 +f 4737/6845/711 4738/6846/709 4733/6841/709 +f 4739/6847/712 4740/6848/710 4735/6843/710 +f 4715/6821/699 4741/6849/713 4742/6850/713 +f 4742/6850/713 4743/6851/711 4737/6845/711 +f 4718/6824/701 4744/6852/712 4739/6847/712 +f 4745/6853/714 4663/6854/715 4746/6855/715 +f 4714/6820/716 4720/6856/717 4747/6857/683 +f 4720/6826/717 4724/6858/718 4747/6859/683 +f 4724/6830/718 4728/6860/719 4747/6861/683 +f 4728/6834/719 4732/6862/720 4747/6863/683 +f 4732/6840/720 4736/6864/721 4747/6865/683 +f 4736/6844/721 4740/6866/722 4747/6867/683 +f 4740/6848/722 4744/6868/723 4747/6869/683 +f 4744/6852/723 4717/6870/724 4747/6871/683 +f 4717/6823/724 4722/6872/725 4747/6873/683 +f 4722/6828/725 4726/6874/726 4747/6875/683 +f 4726/6832/726 4725/6831/727 4747/6876/683 +f 4725/6837/727 4734/6877/728 4747/6878/683 +f 4734/6842/728 4738/6879/729 4747/6880/683 +f 4738/6846/729 4743/6881/730 4747/6882/683 +f 4743/6851/730 4741/6883/731 4747/6884/683 +f 4741/6849/731 4714/6885/716 4747/6886/683 +f 4748/6887/732 4670/6888/696 4711/6889/696 +f 4749/6890/733 4664/6891/714 4745/6853/714 +f 4750/6892/734 4671/6893/732 4748/6887/732 +f 4751/6894/735 4612/6895/733 4749/6890/733 +f 4752/6896/736 4610/6897/734 4750/6892/734 +f 4753/6898/737 4665/6899/735 4751/6894/735 +f 4754/6900/738 4660/6901/739 4755/6902/739 +f 4755/6902/739 4659/6903/736 4752/6896/736 +f 4756/6904/740 4666/6905/737 4753/6898/737 +f 4757/6906/741 4661/6907/738 4754/6900/738 +f 4758/6908/742 4759/6909/693 4760/6910/693 +f 4761/6911/743 4759/6909/693 4762/6912/743 +f 4761/6911/743 4763/6913/744 4764/6914/744 +f 4765/6915/745 4763/6916/744 4766/6917/745 +f 4765/6915/745 4767/6918/687 4768/6919/687 +f 4768/6919/687 4769/6920/746 4770/6921/746 +f 4770/6921/746 4771/6922/747 4772/6923/747 +f 4772/6923/747 4773/6924/748 4774/6925/748 +f 4774/6925/748 4775/6926/690 4776/6927/690 +f 4777/6928/749 4775/6926/690 4778/6929/749 +f 4777/6928/749 4779/6930/750 4780/6931/750 +f 4780/6931/750 4781/6932/751 4782/6933/751 +f 4782/6933/751 4783/6934/684 4784/6935/684 +f 4785/6936/752 4783/6934/684 4786/6937/752 +f 4787/6938/753 4786/6937/752 4788/6939/753 +f 4658/6940/732 4776/6927/734 4576/6941/734 +f 4574/6942/733 4761/6911/735 4653/6943/735 +f 4576/6941/734 4777/6928/736 4646/6944/736 +f 4653/6943/735 4764/6914/737 4654/6945/737 +f 4648/6946/739 4782/6933/738 4649/6947/738 +f 4646/6944/736 4780/6931/739 4648/6946/739 +f 4654/6948/737 4765/6915/740 4655/6949/740 +f 4649/6947/738 4784/6935/741 4647/6950/741 +f 4655/6949/740 4768/6919/754 4575/6951/754 +f 4647/6950/741 4785/6936/755 4650/6952/755 +f 4575/6951/754 4770/6921/697 4656/6953/697 +f 4650/6952/755 4787/6938/715 4651/6954/715 +f 4656/6953/697 4772/6923/696 4657/6955/696 +f 4651/6954/715 4758/6908/714 4652/6956/714 +f 4657/6955/696 4774/6925/732 4658/6940/732 +f 4652/6956/714 4760/6910/733 4574/6942/733 +f 4787/6938/753 4789/6957/742 4758/6908/742 +f 4583/6958/756 4754/6900/757 4585/6959/757 +f 4746/6855/715 4662/6960/755 4790/6961/755 +f 4558/6647/736 4591/6681/734 4552/6641/734 +f 4554/6643/735 4609/6700/733 4544/6633/733 +f 4552/6641/734 4594/6684/732 4547/6636/732 +f 4544/6633/733 4579/6669/714 4545/6634/714 +f 4547/6636/732 4596/6686/696 4577/6666/696 +f 4545/6634/714 4582/6672/715 4570/6659/715 +f 4577/6745/696 4598/6688/697 4572/6661/697 +f 4570/6659/715 4584/6674/755 4565/6654/755 +f 4572/6661/697 4600/6691/754 4568/6657/754 +f 4565/6654/755 4586/6676/741 4566/6655/741 +f 4568/6657/754 4604/6695/740 4564/6653/740 +f 4566/6655/741 4588/6678/738 4556/6645/738 +f 4564/6653/740 4603/6694/737 4553/6642/737 +f 4557/6646/739 4592/6682/736 4558/6647/736 +f 4556/6645/738 4590/6680/739 4557/6646/739 +f 4553/6642/737 4608/6699/735 4554/6643/735 +f 4601/6962/758 4791/6963/759 4756/6904/758 +f 4581/6964/760 4757/6906/756 4583/6958/756 +f 4599/6965/761 4791/6963/759 4602/6966/759 +f 4578/6967/762 4790/6961/760 4581/6964/760 +f 4599/6965/761 4711/6816/763 4712/6818/761 +f 4578/6967/762 4745/6853/764 4746/6855/762 +f 4595/6968/765 4711/6889/763 4597/6969/763 +f 4607/6970/766 4745/6853/764 4580/6971/764 +f 4593/6972/767 4748/6887/765 4595/6968/765 +f 4607/6970/766 4751/6894/768 4749/6890/766 +f 4589/6973/769 4750/6892/767 4593/6972/767 +f 4606/6974/770 4751/6894/768 4605/6975/768 +f 4587/6976/771 4754/6900/757 4755/6902/771 +f 4587/6976/771 4752/6896/769 4589/6973/769 +f 4601/6962/758 4753/6898/770 4606/6974/770 +f 4791/6963/754 4667/6977/740 4756/6904/740 +f 4790/6961/755 4611/6978/741 4757/6906/741 +f 4712/6818/697 4668/6979/754 4791/6963/754 +f 4543/6632/714 4730/6838/715 4721/6827/714 +f 4573/6662/715 4729/6836/755 4730/6838/715 +f 4569/6658/755 4733/6841/741 4729/6836/755 +f 4561/6650/741 4737/6845/738 4733/6841/741 +f 4562/6651/738 4742/6850/739 4737/6845/738 +f 4555/6644/739 4715/6821/736 4742/6850/739 +f 4551/6640/736 4713/6819/734 4715/6821/736 +f 4546/6635/734 4719/6825/732 4713/6819/734 +f 4548/6637/732 4723/6829/696 4719/6825/732 +f 4571/6660/696 4727/6833/697 4723/6835/696 +f 4567/6656/697 4731/6839/754 4727/6833/697 +f 4563/6652/754 4735/6843/740 4731/6839/754 +f 4559/6648/740 4739/6847/737 4735/6843/740 +f 4560/6649/737 4718/6824/735 4739/6847/737 +f 4549/6638/735 4716/6822/733 4718/6824/735 +f 4550/6639/733 4721/6827/714 4716/6822/733 +f 4792/6980/741 4793/6981/772 4794/6982/741 +f 4795/6983/755 4794/6982/741 4796/6984/755 +f 4797/6985/773 4796/6984/755 4798/6986/773 +f 4799/6987/742 4800/6988/693 4801/6989/693 +f 4802/6990/743 4800/6988/693 4803/6991/743 +f 4802/6990/743 4804/6992/744 4805/6993/744 +f 4806/6994/745 4804/6995/744 4807/6996/745 +f 4806/6994/745 4808/6997/687 4809/6998/687 +f 4809/6998/687 4810/6999/746 4811/7000/746 +f 4811/7000/746 4812/7001/747 4813/7002/747 +f 4814/7003/748 4812/7001/747 4815/7004/748 +f 4814/7003/748 4816/7005/690 4817/7006/690 +f 4818/7007/749 4816/7005/690 4819/7008/749 +f 4820/7009/750 4819/7008/749 4821/7010/750 +f 4820/7009/750 4822/7011/751 4823/7012/751 +f 4824/7013/684 4822/7011/751 4825/7014/684 +f 4826/7015/752 4825/7014/684 4827/7016/752 +f 4828/7017/753 4827/7016/752 4829/7018/753 +f 4684/7019/732 4817/7006/734 4621/7020/734 +f 4619/7021/733 4802/6990/735 4679/7022/735 +f 4621/7020/734 4818/7007/736 4672/7023/736 +f 4679/7022/735 4805/6993/737 4680/7024/737 +f 4674/7025/739 4823/7012/738 4675/7026/738 +f 4672/7023/736 4820/7009/739 4674/7025/739 +f 4680/7027/737 4806/6994/740 4681/7028/740 +f 4675/7026/738 4824/7013/741 4673/7029/741 +f 4681/7028/740 4809/6998/754 4620/7030/754 +f 4673/7029/741 4826/7015/755 4676/7031/755 +f 4620/7030/754 4811/7000/697 4682/7032/697 +f 4676/7031/755 4828/7017/715 4677/7033/715 +f 4682/7032/697 4813/7002/696 4683/7034/696 +f 4677/7033/715 4799/6987/714 4678/7035/714 +f 4683/7034/696 4814/7003/732 4684/7019/732 +f 4678/7035/714 4801/6989/733 4619/7021/733 +f 4828/7017/753 4830/7036/742 4799/6987/742 +f 4831/7037/742 4832/7038/693 4833/7039/693 +f 4834/7040/743 4832/7038/693 4835/7041/743 +f 4834/7040/743 4836/7042/744 4837/7043/744 +f 4838/7044/745 4836/7045/744 4839/7046/745 +f 4838/7044/745 4840/7047/687 4841/7048/687 +f 4841/7048/687 4842/7049/746 4843/7050/746 +f 4843/7050/746 4844/7051/747 4845/7052/747 +f 4846/7053/748 4844/7051/747 4847/7054/748 +f 4846/7053/748 4848/7055/690 4849/7056/690 +f 4850/7057/749 4848/7055/690 4851/7058/749 +f 4850/7057/749 4852/7059/750 4853/7060/750 +f 4853/7060/750 4854/7061/751 4855/7062/751 +f 4855/7062/751 4856/7063/684 4857/7064/684 +f 4858/7065/752 4856/7063/684 4859/7066/752 +f 4860/7067/753 4859/7066/752 4861/7068/753 +f 4697/7069/732 4849/7056/734 4624/7070/734 +f 4622/7071/733 4834/7040/735 4692/7072/735 +f 4624/7070/734 4850/7057/736 4685/7073/736 +f 4692/7072/735 4837/7043/737 4693/7074/737 +f 4687/7075/739 4855/7062/738 4688/7076/738 +f 4685/7073/736 4853/7060/739 4687/7075/739 +f 4693/7077/737 4838/7044/740 4694/7078/740 +f 4688/7076/738 4857/7064/741 4686/7079/741 +f 4694/7078/740 4841/7048/754 4623/7080/754 +f 4686/7079/741 4858/7065/755 4689/7081/755 +f 4623/7080/754 4843/7050/697 4695/7082/697 +f 4689/7081/755 4860/7067/715 4690/7083/715 +f 4695/7082/697 4845/7052/696 4696/7084/696 +f 4690/7083/715 4831/7037/714 4691/7085/714 +f 4696/7084/696 4846/7053/732 4697/7069/732 +f 4691/7085/714 4833/7039/733 4622/7071/733 +f 4860/7067/753 4862/7086/742 4831/7037/742 +f 4863/7087/742 4864/7088/693 4865/7089/693 +f 4866/7090/743 4864/7088/693 4867/7091/743 +f 4866/7090/743 4868/7092/744 4869/7093/744 +f 4870/7094/745 4868/7095/744 4871/7096/745 +f 4870/7094/745 4872/7097/687 4873/7098/687 +f 4873/7098/687 4874/7099/746 4875/7100/746 +f 4875/7100/746 4876/7101/747 4877/7102/747 +f 4878/7103/748 4876/7101/747 4879/7104/748 +f 4878/7103/748 4880/7105/690 4881/7106/690 +f 4882/7107/749 4880/7105/690 4883/7108/749 +f 4882/7107/749 4884/7109/750 4885/7110/750 +f 4885/7110/750 4886/7111/751 4887/7112/751 +f 4887/7112/751 4888/7113/684 4889/7114/684 +f 4890/7115/752 4888/7113/684 4891/7116/752 +f 4892/7117/753 4891/7116/752 4893/7118/753 +f 4710/7119/732 4881/7106/734 4627/7120/734 +f 4625/7121/733 4866/7090/735 4705/7122/735 +f 4627/7120/734 4882/7107/736 4698/7123/736 +f 4705/7122/735 4869/7093/737 4706/7124/737 +f 4700/7125/739 4887/7112/738 4701/7126/738 +f 4698/7123/736 4885/7110/739 4700/7125/739 +f 4706/7127/737 4870/7094/740 4707/7128/740 +f 4701/7126/738 4889/7114/741 4699/7129/741 +f 4707/7128/740 4873/7098/754 4626/7130/754 +f 4699/7129/741 4890/7115/755 4702/7131/755 +f 4626/7130/754 4875/7100/697 4708/7132/697 +f 4702/7131/755 4892/7117/715 4703/7133/715 +f 4708/7132/697 4877/7102/696 4709/7134/696 +f 4703/7133/715 4863/7087/714 4704/7135/714 +f 4709/7134/696 4878/7103/732 4710/7119/732 +f 4704/7135/714 4865/7089/733 4625/7121/733 +f 4892/7117/753 4894/7136/742 4863/7087/742 +f 4895/7137/754 4896/7138/774 4897/7139/754 +f 4898/7140/697 4897/7139/754 4899/7141/697 +f 4900/7142/775 4899/7141/697 4901/7143/775 +f 4711/6816/696 4670/7144/696 4669/6817/697 +f 4713/6819/698 4720/6856/698 4714/6820/699 +f 4716/6822/700 4722/6872/700 4717/6823/701 +f 4719/6825/702 4724/6858/702 4720/6826/698 +f 4721/6827/703 4726/6874/703 4722/6828/700 +f 4723/6829/704 4728/6860/704 4724/6830/702 +f 4721/6827/703 4730/6838/705 4725/6831/705 +f 4727/6833/706 4732/6862/706 4728/6834/704 +f 4729/6836/707 4734/6877/707 4725/6837/705 +f 4731/6839/708 4736/6864/708 4732/6840/706 +f 4733/6841/709 4738/6879/709 4734/6842/707 +f 4735/6843/710 4740/6866/710 4736/6844/708 +f 4737/6845/711 4743/6881/711 4738/6846/709 +f 4739/6847/712 4744/6868/712 4740/6848/710 +f 4715/6821/699 4714/6885/699 4741/6849/713 +f 4742/6850/713 4741/6883/713 4743/6851/711 +f 4718/6824/701 4717/6870/701 4744/6852/712 +f 4745/6853/714 4664/6891/714 4663/6854/715 +f 4748/6887/732 4671/6893/732 4670/6888/696 +f 4749/6890/733 4612/6895/733 4664/6891/714 +f 4750/6892/734 4610/6897/734 4671/6893/732 +f 4751/6894/735 4665/6899/735 4612/6895/733 +f 4752/6896/736 4659/6903/736 4610/6897/734 +f 4753/6898/737 4666/6905/737 4665/6899/735 +f 4754/6900/738 4661/6907/738 4660/6901/739 +f 4755/6902/739 4660/6901/739 4659/6903/736 +f 4756/6904/740 4667/6977/740 4666/6905/737 +f 4757/6906/741 4611/6978/741 4661/6907/738 +f 4758/6908/742 4789/6957/742 4759/6909/693 +f 4761/6911/743 4760/6910/693 4759/6909/693 +f 4761/6911/743 4762/6912/743 4763/6913/744 +f 4765/6915/745 4764/7145/744 4763/6916/744 +f 4765/6915/745 4766/6917/745 4767/6918/687 +f 4768/6919/687 4767/6918/687 4769/6920/746 +f 4770/6921/746 4769/6920/746 4771/6922/747 +f 4772/6923/747 4771/6922/747 4773/6924/748 +f 4774/6925/748 4773/6924/748 4775/6926/690 +f 4777/6928/749 4776/6927/690 4775/6926/690 +f 4777/6928/749 4778/6929/749 4779/6930/750 +f 4780/6931/750 4779/6930/750 4781/6932/751 +f 4782/6933/751 4781/6932/751 4783/6934/684 +f 4785/6936/752 4784/6935/684 4783/6934/684 +f 4787/6938/753 4785/6936/752 4786/6937/752 +f 4658/6940/732 4774/6925/732 4776/6927/734 +f 4574/6942/733 4760/6910/733 4761/6911/735 +f 4576/6941/734 4776/6927/734 4777/6928/736 +f 4653/6943/735 4761/6911/735 4764/6914/737 +f 4648/6946/739 4780/6931/739 4782/6933/738 +f 4646/6944/736 4777/6928/736 4780/6931/739 +f 4654/6948/737 4764/7145/737 4765/6915/740 +f 4649/6947/738 4782/6933/738 4784/6935/741 +f 4655/6949/740 4765/6915/740 4768/6919/754 +f 4647/6950/741 4784/6935/741 4785/6936/755 +f 4575/6951/754 4768/6919/754 4770/6921/697 +f 4650/6952/755 4785/6936/755 4787/6938/715 +f 4656/6953/697 4770/6921/697 4772/6923/696 +f 4651/6954/715 4787/6938/715 4758/6908/714 +f 4657/6955/696 4772/6923/696 4774/6925/732 +f 4652/6956/714 4758/6908/714 4760/6910/733 +f 4787/6938/753 4788/6939/753 4789/6957/742 +f 4583/6958/756 4757/6906/756 4754/6900/757 +f 4746/6855/715 4663/6854/715 4662/6960/755 +f 4558/6647/736 4592/6682/736 4591/6681/734 +f 4554/6643/735 4608/6699/735 4609/6700/733 +f 4552/6641/734 4591/6681/734 4594/6684/732 +f 4544/6633/733 4609/6700/733 4579/6669/714 +f 4547/6636/732 4594/6684/732 4596/6686/696 +f 4545/6634/714 4579/6669/714 4582/6672/715 +f 4577/6745/696 4596/6689/696 4598/6688/697 +f 4570/6659/715 4582/6672/715 4584/6674/755 +f 4572/6661/697 4598/6688/697 4600/6691/754 +f 4565/6654/755 4584/6674/755 4586/6676/741 +f 4568/6657/754 4600/6691/754 4604/6695/740 +f 4566/6655/741 4586/6676/741 4588/6678/738 +f 4564/6653/740 4604/6695/740 4603/6694/737 +f 4557/6646/739 4590/6680/739 4592/6682/736 +f 4556/6645/738 4588/6678/738 4590/6680/739 +f 4553/6642/737 4603/6694/737 4608/6699/735 +f 4601/6962/758 4602/6966/759 4791/6963/759 +f 4581/6964/760 4790/6961/760 4757/6906/756 +f 4599/6965/761 4712/6818/761 4791/6963/759 +f 4578/6967/762 4746/6855/762 4790/6961/760 +f 4599/6965/761 4597/6687/763 4711/6816/763 +f 4578/6967/762 4580/6971/764 4745/6853/764 +f 4595/6968/765 4748/6887/765 4711/6889/763 +f 4607/6970/766 4749/6890/766 4745/6853/764 +f 4593/6972/767 4750/6892/767 4748/6887/765 +f 4607/6970/766 4605/6975/768 4751/6894/768 +f 4589/6973/769 4752/6896/769 4750/6892/767 +f 4606/6974/770 4753/6898/770 4751/6894/768 +f 4587/6976/771 4585/6959/757 4754/6900/757 +f 4587/6976/771 4755/6902/771 4752/6896/769 +f 4601/6962/758 4756/6904/758 4753/6898/770 +f 4791/6963/754 4668/6979/754 4667/6977/740 +f 4790/6961/755 4662/6960/755 4611/6978/741 +f 4712/6818/697 4669/6817/697 4668/6979/754 +f 4543/6632/714 4573/6662/715 4730/6838/715 +f 4573/6662/715 4569/6658/755 4729/6836/755 +f 4569/6658/755 4561/6650/741 4733/6841/741 +f 4561/6650/741 4562/6651/738 4737/6845/738 +f 4562/6651/738 4555/6644/739 4742/6850/739 +f 4555/6644/739 4551/6640/736 4715/6821/736 +f 4551/6640/736 4546/6635/734 4713/6819/734 +f 4546/6635/734 4548/6637/732 4719/6825/732 +f 4548/6637/732 4571/6667/696 4723/6829/696 +f 4571/6660/696 4567/6656/697 4727/6833/697 +f 4567/6656/697 4563/6652/754 4731/6839/754 +f 4563/6652/754 4559/6648/740 4735/6843/740 +f 4559/6648/740 4560/6649/737 4739/6847/737 +f 4560/6649/737 4549/6638/735 4718/6824/735 +f 4549/6638/735 4550/6639/733 4716/6822/733 +f 4550/6639/733 4543/6632/714 4721/6827/714 +f 4792/6980/741 4902/7146/772 4793/6981/772 +f 4795/6983/755 4792/6980/741 4794/6982/741 +f 4797/6985/773 4795/6983/755 4796/6984/755 +f 4799/6987/742 4830/7036/742 4800/6988/693 +f 4802/6990/743 4801/6989/693 4800/6988/693 +f 4802/6990/743 4803/6991/743 4804/6992/744 +f 4806/6994/745 4805/7147/744 4804/6995/744 +f 4806/6994/745 4807/6996/745 4808/6997/687 +f 4809/6998/687 4808/6997/687 4810/6999/746 +f 4811/7000/746 4810/6999/746 4812/7001/747 +f 4814/7003/748 4813/7002/747 4812/7001/747 +f 4814/7003/748 4815/7004/748 4816/7005/690 +f 4818/7007/749 4817/7006/690 4816/7005/690 +f 4820/7009/750 4818/7007/749 4819/7008/749 +f 4820/7009/750 4821/7010/750 4822/7011/751 +f 4824/7013/684 4823/7012/751 4822/7011/751 +f 4826/7015/752 4824/7013/684 4825/7014/684 +f 4828/7017/753 4826/7015/752 4827/7016/752 +f 4684/7019/732 4814/7003/732 4817/7006/734 +f 4619/7021/733 4801/6989/733 4802/6990/735 +f 4621/7020/734 4817/7006/734 4818/7007/736 +f 4679/7022/735 4802/6990/735 4805/6993/737 +f 4674/7025/739 4820/7009/739 4823/7012/738 +f 4672/7023/736 4818/7007/736 4820/7009/739 +f 4680/7027/737 4805/7147/737 4806/6994/740 +f 4675/7026/738 4823/7012/738 4824/7013/741 +f 4681/7028/740 4806/6994/740 4809/6998/754 +f 4673/7029/741 4824/7013/741 4826/7015/755 +f 4620/7030/754 4809/6998/754 4811/7000/697 +f 4676/7031/755 4826/7015/755 4828/7017/715 +f 4682/7032/697 4811/7000/697 4813/7002/696 +f 4677/7033/715 4828/7017/715 4799/6987/714 +f 4683/7034/696 4813/7002/696 4814/7003/732 +f 4678/7035/714 4799/6987/714 4801/6989/733 +f 4828/7017/753 4829/7018/753 4830/7036/742 +f 4831/7037/742 4862/7086/742 4832/7038/693 +f 4834/7040/743 4833/7039/693 4832/7038/693 +f 4834/7040/743 4835/7041/743 4836/7042/744 +f 4838/7044/745 4837/7148/744 4836/7045/744 +f 4838/7044/745 4839/7046/745 4840/7047/687 +f 4841/7048/687 4840/7047/687 4842/7049/746 +f 4843/7050/746 4842/7049/746 4844/7051/747 +f 4846/7053/748 4845/7052/747 4844/7051/747 +f 4846/7053/748 4847/7054/748 4848/7055/690 +f 4850/7057/749 4849/7056/690 4848/7055/690 +f 4850/7057/749 4851/7058/749 4852/7059/750 +f 4853/7060/750 4852/7059/750 4854/7061/751 +f 4855/7062/751 4854/7061/751 4856/7063/684 +f 4858/7065/752 4857/7064/684 4856/7063/684 +f 4860/7067/753 4858/7065/752 4859/7066/752 +f 4697/7069/732 4846/7053/732 4849/7056/734 +f 4622/7071/733 4833/7039/733 4834/7040/735 +f 4624/7070/734 4849/7056/734 4850/7057/736 +f 4692/7072/735 4834/7040/735 4837/7043/737 +f 4687/7075/739 4853/7060/739 4855/7062/738 +f 4685/7073/736 4850/7057/736 4853/7060/739 +f 4693/7077/737 4837/7148/737 4838/7044/740 +f 4688/7076/738 4855/7062/738 4857/7064/741 +f 4694/7078/740 4838/7044/740 4841/7048/754 +f 4686/7079/741 4857/7064/741 4858/7065/755 +f 4623/7080/754 4841/7048/754 4843/7050/697 +f 4689/7081/755 4858/7065/755 4860/7067/715 +f 4695/7082/697 4843/7050/697 4845/7052/696 +f 4690/7083/715 4860/7067/715 4831/7037/714 +f 4696/7084/696 4845/7052/696 4846/7053/732 +f 4691/7085/714 4831/7037/714 4833/7039/733 +f 4860/7067/753 4861/7068/753 4862/7086/742 +f 4863/7087/742 4894/7136/742 4864/7088/693 +f 4866/7090/743 4865/7089/693 4864/7088/693 +f 4866/7090/743 4867/7091/743 4868/7092/744 +f 4870/7094/745 4869/7149/744 4868/7095/744 +f 4870/7094/745 4871/7096/745 4872/7097/687 +f 4873/7098/687 4872/7097/687 4874/7099/746 +f 4875/7100/746 4874/7099/746 4876/7101/747 +f 4878/7103/748 4877/7102/747 4876/7101/747 +f 4878/7103/748 4879/7104/748 4880/7105/690 +f 4882/7107/749 4881/7106/690 4880/7105/690 +f 4882/7107/749 4883/7108/749 4884/7109/750 +f 4885/7110/750 4884/7109/750 4886/7111/751 +f 4887/7112/751 4886/7111/751 4888/7113/684 +f 4890/7115/752 4889/7114/684 4888/7113/684 +f 4892/7117/753 4890/7115/752 4891/7116/752 +f 4710/7119/732 4878/7103/732 4881/7106/734 +f 4625/7121/733 4865/7089/733 4866/7090/735 +f 4627/7120/734 4881/7106/734 4882/7107/736 +f 4705/7122/735 4866/7090/735 4869/7093/737 +f 4700/7125/739 4885/7110/739 4887/7112/738 +f 4698/7123/736 4882/7107/736 4885/7110/739 +f 4706/7127/737 4869/7149/737 4870/7094/740 +f 4701/7126/738 4887/7112/738 4889/7114/741 +f 4707/7128/740 4870/7094/740 4873/7098/754 +f 4699/7129/741 4889/7114/741 4890/7115/755 +f 4626/7130/754 4873/7098/754 4875/7100/697 +f 4702/7131/755 4890/7115/755 4892/7117/715 +f 4708/7132/697 4875/7100/697 4877/7102/696 +f 4703/7133/715 4892/7117/715 4863/7087/714 +f 4709/7134/696 4877/7102/696 4878/7103/732 +f 4704/7135/714 4863/7087/714 4865/7089/733 +f 4892/7117/753 4893/7118/753 4894/7136/742 +f 4895/7137/754 4903/7150/774 4896/7138/774 +f 4898/7140/697 4895/7137/754 4897/7139/754 +f 4900/7142/775 4898/7140/697 4899/7141/697 +o Strong_Missile +v 0.866138 2.750000 0.358766 +v 0.750000 2.750000 0.000000 +v 0.937500 2.750000 0.000000 +v 0.692910 2.750000 -0.287013 +v 0.866138 2.750000 -0.358765 +v 0.662913 2.750000 -0.662913 +v 0.530329 2.750000 -0.530331 +v 0.358766 2.750000 -0.866137 +v 0.287012 2.750000 -0.692910 +v 0.000000 2.750000 -0.937500 +v 0.000000 2.750000 -0.750000 +v -0.358766 2.750000 -0.866137 +v -0.287013 2.750000 -0.692910 +v -0.662913 2.750000 -0.662913 +v -0.692910 2.750000 -0.287013 +v -0.866138 2.750000 -0.358765 +v -0.937500 2.750000 0.000000 +v -0.692910 2.750000 0.287013 +v -0.866138 2.750000 0.358766 +v -0.530329 2.750000 0.530330 +v -0.662913 2.750000 0.662913 +v -0.358766 2.750000 0.866138 +v -0.287013 2.750000 0.692910 +v 0.000000 2.750000 0.937500 +v 0.287013 2.750000 0.692910 +v 0.358766 2.750000 0.866138 +v 0.662913 2.750000 0.662913 +v 0.530329 2.750000 0.530331 +v -0.530329 2.000000 -0.530329 +v 0.530329 2.000000 -0.530331 +v 0.530329 2.000000 0.530331 +v 1.328476 8.750000 -1.328476 +v 0.499836 8.375000 -0.566127 +v 0.499836 9.125000 -0.566127 +v 0.566127 8.375000 -0.499836 +v 0.566127 9.125000 -0.499836 +v 1.328476 8.375000 -1.328476 +v 1.328478 8.750000 1.328477 +v 0.566127 8.375000 0.499836 +v 0.566127 9.125000 0.499836 +v 0.499836 8.375000 0.566127 +v 0.499836 9.125000 0.566127 +v 1.328478 8.375000 1.328477 +v 1.325826 4.250000 1.325825 +v 0.563477 2.375000 0.497184 +v 0.563477 5.375000 0.497184 +v 0.497184 2.375000 0.563475 +v 0.497184 5.375000 0.563475 +v 1.325826 2.375000 1.325824 +v -0.563477 2.375000 -0.497184 +v -1.325826 2.375000 -1.325824 +v -0.497184 2.375000 -0.563475 +v -1.325826 4.250000 -1.325824 +v -0.563477 5.375000 -0.497184 +v -0.497184 5.375000 -0.563475 +v 1.325824 4.250000 -1.325824 +v 0.497184 2.375000 -0.563475 +v 0.497184 5.375000 -0.563475 +v 0.563475 2.375000 -0.497184 +v 0.563475 5.375000 -0.497184 +v 1.325824 2.375000 -1.325824 +v -0.566127 8.375000 -0.499836 +v -1.328476 8.375000 -1.328476 +v -0.499836 8.375000 -0.566127 +v -1.328476 8.750000 -1.328476 +v -0.566127 9.125000 -0.499836 +v -0.499836 9.125000 -0.566127 +v -0.497184 2.375000 0.563477 +v -1.325824 2.375000 1.325824 +v -0.563475 2.375000 0.497184 +v -1.325824 4.250000 1.325825 +v -0.497184 5.375000 0.563477 +v -0.563475 5.375000 0.497184 +v -0.499836 8.375000 0.566127 +v -1.328476 8.375000 1.328477 +v -0.566127 8.375000 0.499836 +v -1.328476 8.750000 1.328477 +v -0.499836 9.125000 0.566127 +v -0.566127 9.125000 0.499836 +v 0.692910 2.750000 0.287013 +v -0.530329 2.750000 -0.530329 +v -0.750000 2.750000 0.000000 +v 0.000000 2.750000 0.750000 +v -0.287013 2.000000 -0.692910 +v 0.000000 2.000000 -0.750000 +v 0.287012 2.000000 -0.692910 +v 0.692910 2.000000 -0.287013 +v 0.750000 2.000000 0.000000 +v 0.692910 2.000000 0.287013 +v 0.287013 2.000000 0.692910 +v 0.000000 2.000000 0.750000 +v -0.287013 2.000000 0.692910 +v -0.530329 2.000000 0.530329 +v -0.692910 2.000000 0.287013 +v -0.750000 2.000000 0.000000 +v -0.692910 2.000000 -0.287013 +v -0.662913 8.187500 -0.662913 +v -0.361636 9.312500 -0.873066 +v -0.358766 8.187500 -0.866137 +v 0.662913 8.187500 0.662913 +v 0.361635 9.312500 0.873066 +v 0.358766 8.187500 0.866138 +v -0.866138 8.187500 -0.358765 +v -0.668216 9.312500 -0.668215 +v 0.866138 8.187500 0.358766 +v 0.668216 9.312500 0.668216 +v -0.937500 8.187500 0.000000 +v -0.873066 9.312500 -0.361636 +v 0.937500 8.187500 0.000000 +v 0.873066 9.312500 0.361637 +v -0.866138 8.187500 0.358766 +v -0.945000 9.312500 0.000000 +v 0.866138 8.187500 -0.358765 +v 0.945000 9.312500 0.000000 +v -0.662913 8.187500 0.662913 +v -0.873066 9.312500 0.361637 +v 0.662913 8.187500 -0.662913 +v 0.873066 9.312500 -0.361636 +v -0.358766 8.187500 0.866138 +v -0.668216 9.312500 0.668216 +v 0.358766 8.187500 -0.866137 +v 0.668216 9.312500 -0.668215 +v 0.000000 8.187500 0.937500 +v -0.361636 9.312500 0.873066 +v 0.000000 9.312500 -0.945000 +v 0.000000 8.187500 -0.937500 +v 0.361635 9.312500 -0.873066 +v 0.000000 9.312500 0.945000 +v -0.287013 9.500000 0.692910 +v 0.000000 9.500000 -0.750000 +v 0.287012 9.500000 -0.692910 +v 0.000000 9.500000 0.750000 +v -0.287013 9.500000 -0.692910 +v 0.287013 9.500000 0.692910 +v -0.530329 9.500000 -0.530329 +v 0.692910 9.500000 0.287013 +v 0.530329 9.500000 0.530331 +v -0.692910 9.500000 -0.287013 +v -0.750000 9.500000 0.000000 +v 0.692910 9.500000 -0.287013 +v 0.750000 9.500000 0.000000 +v -0.692910 9.500000 0.287013 +v -0.530329 9.500000 0.530330 +v 0.530329 9.500000 -0.530331 +v 0.530329 8.000000 0.530331 +v 0.000000 11.000000 0.000000 +v 0.692910 8.000000 0.287013 +v 0.750000 8.000000 0.000000 +v 0.692910 8.000000 -0.287013 +v 0.530329 8.000000 -0.530331 +v 0.000000 8.000000 -0.750000 +v -0.287013 8.000000 -0.692910 +v -0.530329 8.000000 -0.530329 +v -0.692910 8.000000 -0.287013 +v -0.750000 8.000000 0.000000 +v -0.692910 8.000000 0.287013 +v -0.530329 8.000000 0.530330 +v -0.287013 8.000000 0.692910 +v 0.000000 8.000000 0.750000 +v 0.287013 8.000000 0.692910 +v -0.530329 7.250000 -0.530329 +v 0.530329 7.250000 0.530331 +v -0.692910 7.250000 -0.287013 +v 0.692910 7.250000 0.287013 +v -0.750000 7.250000 0.000000 +v 0.750000 7.250000 0.000000 +v -0.692910 7.250000 0.287013 +v 0.692910 7.250000 -0.287013 +v -0.530329 7.250000 0.530330 +v 0.530329 7.250000 -0.530331 +v -0.287013 7.250000 0.692910 +v 0.287012 7.250000 -0.692910 +v 0.287012 8.000000 -0.692910 +v 0.000000 7.250000 0.750000 +v -0.287013 7.250000 -0.692910 +v 0.000000 7.250000 -0.750000 +v 0.287013 7.250000 0.692910 +v -0.358766 5.750000 0.866138 +v 0.358766 5.750000 -0.866137 +v 0.000000 5.750000 0.937500 +v -0.358766 5.750000 -0.866137 +v 0.000000 5.750000 -0.937500 +v 0.358766 5.750000 0.866138 +v -0.662913 5.750000 -0.662913 +v 0.662913 5.750000 0.662913 +v -0.866138 5.750000 -0.358765 +v 0.866138 5.750000 0.358766 +v -0.937500 5.750000 0.000000 +v 0.937500 5.750000 0.000000 +v -0.866138 5.750000 0.358766 +v 0.866138 5.750000 -0.358765 +v -0.662913 5.750000 0.662913 +v 0.662913 5.750000 -0.662913 +vt 0.350000 0.102041 +vt 0.387500 0.081633 +vt 0.400000 0.102041 +vt 0.437500 0.081633 +vt 0.450000 0.102041 +vt 0.450000 0.081633 +vt 0.500000 0.102041 +vt 0.500000 0.081633 +vt 0.550000 0.102041 +vt 0.550000 0.081633 +vt 0.600000 0.102041 +vt 0.600000 0.081633 +vt 0.650000 0.102041 +vt 0.650000 0.081633 +vt 0.700000 0.102041 +vt 0.737500 0.081633 +vt 0.750000 0.102041 +vt 0.750000 0.081633 +vt 0.800000 0.102041 +vt 0.000000 0.102041 +vt 0.037500 0.081633 +vt 0.050000 0.102041 +vt 0.087500 0.081633 +vt 0.100000 0.102041 +vt 0.100000 0.081633 +vt 0.150000 0.102041 +vt 0.150000 0.081633 +vt 0.200000 0.102041 +vt 0.237500 0.081633 +vt 0.250000 0.102041 +vt 0.250000 0.081633 +vt 0.300000 0.102041 +vt 0.300000 0.081633 +vt 0.970508 0.024075 +vt 0.970508 0.139190 +vt 0.829492 0.139190 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.350000 0.081633 +vt 0.400000 0.081633 +vt 0.487500 0.081633 +vt 0.537500 0.081633 +vt 0.587500 0.081633 +vt 0.637500 0.081633 +vt 0.687500 0.081633 +vt 0.700000 0.081633 +vt 0.787500 0.081633 +vt 0.000000 0.081633 +vt 0.050000 0.081633 +vt 0.137500 0.081633 +vt 0.187500 0.081633 +vt 0.200000 0.081633 +vt 0.287500 0.081633 +vt 0.337500 0.081633 +vt 0.992123 0.050483 +vt 0.999714 0.081633 +vt 0.992123 0.112783 +vt 0.938159 0.156836 +vt 0.900000 0.163032 +vt 0.861841 0.156836 +vt 0.807876 0.112783 +vt 0.800286 0.081633 +vt 0.807877 0.050483 +vt 0.829492 0.024075 +vt 0.861841 0.006430 +vt 0.900000 0.000234 +vt 0.938159 0.006430 +vt 0.700000 0.693878 +vt 0.650000 0.816327 +vt 0.650000 0.693878 +vt 0.300000 0.693878 +vt 0.250000 0.816327 +vt 0.250000 0.693878 +vt 0.750000 0.693878 +vt 0.700000 0.816327 +vt 0.350000 0.693878 +vt 0.300000 0.816327 +vt 0.800000 0.693878 +vt 0.750000 0.816327 +vt 0.400000 0.693878 +vt 0.350000 0.816327 +vt 0.050000 0.693878 +vt 0.000000 0.816327 +vt -0.000000 0.693878 +vt 0.450000 0.693878 +vt 0.400000 0.816327 +vt 0.100000 0.693878 +vt 0.050000 0.816327 +vt 0.500000 0.693878 +vt 0.450000 0.816327 +vt 0.150000 0.693878 +vt 0.100000 0.816327 +vt 0.550000 0.693878 +vt 0.500000 0.816327 +vt 0.200000 0.693878 +vt 0.150000 0.816327 +vt 0.600000 0.816327 +vt 0.600000 0.693878 +vt 0.550000 0.816327 +vt 0.200000 0.816327 +vt 0.150000 0.836735 +vt 0.600000 0.836735 +vt 0.550000 0.836735 +vt 0.200000 0.836735 +vt 0.650000 0.836735 +vt 0.250000 0.836735 +vt 0.700000 0.836735 +vt 0.337500 0.836735 +vt 0.300000 0.836735 +vt 0.800000 0.816327 +vt 0.750000 0.836735 +vt 0.350000 0.836735 +vt -0.000000 0.836735 +vt 0.437500 0.836735 +vt 0.400000 0.836735 +vt 0.050000 0.836735 +vt 0.450000 0.836735 +vt 0.100000 0.836735 +vt 0.500000 0.836735 +vt 0.300000 0.673469 +vt 0.687500 0.836735 +vt 0.662500 1.000000 +vt 0.737500 0.836735 +vt 0.712500 1.000000 +vt 0.787500 0.836735 +vt 0.762500 1.000000 +vt 0.037500 0.836735 +vt 0.012500 1.000000 +vt 0.087500 0.836735 +vt 0.062500 1.000000 +vt 0.137500 0.836735 +vt 0.112500 1.000000 +vt 0.187500 0.836735 +vt 0.162500 1.000000 +vt 0.237500 0.836735 +vt 0.212500 1.000000 +vt 0.287500 0.836735 +vt 0.262500 1.000000 +vt 0.312500 1.000000 +vt 0.387500 0.836735 +vt 0.362500 1.000000 +vt 0.412500 1.000000 +vt 0.487500 0.836735 +vt 0.462500 1.000000 +vt 0.537500 0.836735 +vt 0.512500 1.000000 +vt 0.587500 0.836735 +vt 0.562500 1.000000 +vt 0.637500 0.836735 +vt 0.612500 1.000000 +vt 0.350000 0.673469 +vt 0.400000 0.673469 +vt 0.450000 0.673469 +vt 0.500000 0.673469 +vt 0.587500 0.673469 +vt 0.600000 0.673469 +vt 0.650000 0.673469 +vt 0.700000 0.673469 +vt 0.750000 0.673469 +vt 0.000000 0.673469 +vt 0.050000 0.673469 +vt 0.100000 0.673469 +vt 0.150000 0.673469 +vt 0.200000 0.673469 +vt 0.250000 0.673469 +vt 0.687500 0.591837 +vt 0.687500 0.673469 +vt 0.287500 0.591837 +vt 0.287500 0.673469 +vt 0.737500 0.591837 +vt 0.737500 0.673469 +vt 0.337500 0.591837 +vt 0.337500 0.673469 +vt 0.787500 0.591837 +vt 0.787500 0.673469 +vt 0.387500 0.591837 +vt 0.387500 0.673469 +vt 0.037500 0.591837 +vt 0.037500 0.673469 +vt 0.437500 0.591837 +vt 0.437500 0.673469 +vt 0.087500 0.591837 +vt 0.087500 0.673469 +vt 0.487500 0.591837 +vt 0.487500 0.673469 +vt 0.137500 0.591837 +vt 0.137500 0.673469 +vt 0.537500 0.591837 +vt 0.537500 0.673469 +vt 0.187500 0.591837 +vt 0.187500 0.673469 +vt 0.637500 0.591837 +vt 0.637500 0.673469 +vt 0.550000 0.673469 +vt 0.587500 0.591837 +vt 0.237500 0.591837 +vt 0.237500 0.673469 +vt 0.100000 0.591837 +vt 0.150000 0.428571 +vt 0.500000 0.591837 +vt 0.550000 0.428571 +vt 0.150000 0.591837 +vt 0.200000 0.428571 +vt 0.600000 0.591837 +vt 0.650000 0.428571 +vt 0.550000 0.591837 +vt 0.600000 0.428571 +vt 0.250000 0.428571 +vt 0.650000 0.591837 +vt 0.700000 0.428571 +vt 0.250000 0.591837 +vt 0.300000 0.428571 +vt 0.700000 0.591837 +vt 0.750000 0.428571 +vt 0.300000 0.591837 +vt 0.350000 0.428571 +vt 0.750000 0.591837 +vt 0.800000 0.428571 +vt 0.350000 0.591837 +vt 0.400000 0.428571 +vt -0.000000 0.591837 +vt 0.050000 0.428571 +vt 0.400000 0.591837 +vt 0.450000 0.428571 +vt 0.050000 0.591837 +vt 0.100000 0.428571 +vt 0.450000 0.591837 +vt 0.500000 0.428571 +vt 0.000000 0.428571 +vt 0.537500 -0.000000 +vt 0.187500 0.000000 +vt 0.637500 0.000000 +vt 0.587500 0.000000 +vt 0.237500 0.000000 +vt 0.687500 0.000000 +vt 0.287500 0.000000 +vt 0.737500 -0.000000 +vt 0.337500 0.000000 +vt 0.787500 -0.000000 +vt 0.387500 0.000000 +vt 0.037500 -0.000000 +vt 0.437500 0.000000 +vt 0.087500 -0.000000 +vt 0.487500 0.000000 +vt 0.137500 0.000000 +vt 0.200000 0.591837 +vt 0.500000 -0.000000 +vt 0.150000 0.000000 +vt 0.600000 0.000000 +vt 0.550000 0.000000 +vt 0.200000 -0.000000 +vt 0.650000 0.000000 +vt 0.250000 -0.000000 +vt 0.700000 0.000000 +vt 0.300000 -0.000000 +vt 0.750000 0.000000 +vt 0.350000 -0.000000 +vt -0.000000 0.000000 +vt 0.400000 -0.000000 +vt 0.050000 -0.000000 +vt 0.450000 0.000000 +vt 0.100000 0.000000 +vn 0.0000 -1.0000 0.0000 +vn -0.6771 0.0000 -0.7359 +vn 0.7359 0.0000 0.6771 +vn 0.2236 0.9487 -0.2236 +vn 0.7359 0.0000 -0.6771 +vn -0.6771 0.0000 0.7359 +vn 0.2236 0.9487 0.2236 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 -0.5000 +vn 0.6771 0.0000 -0.7359 +vn -0.7359 -0.0000 0.6771 +vn 0.5000 0.7071 -0.5000 +vn -0.2236 0.9487 -0.2236 +vn -0.5000 0.7071 0.5000 +vn -0.7359 0.0000 -0.6771 +vn 0.6771 -0.0000 0.7359 +vn -0.2236 0.9487 0.2236 +vn -0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 -0.9239 +vn 0.7071 -0.0067 0.7071 +vn 0.3827 -0.0067 0.9239 +vn -0.9239 -0.0067 -0.3827 +vn 0.9239 -0.0067 0.3827 +vn -1.0000 -0.0067 -0.0000 +vn 1.0000 -0.0067 0.0000 +vn -0.9239 -0.0067 0.3827 +vn 0.9239 -0.0067 -0.3827 +vn -0.7071 -0.0067 0.7071 +vn 0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 0.9239 +vn 0.3827 -0.0067 -0.9239 +vn -0.0000 -0.0067 1.0000 +vn 0.0000 -0.0067 -1.0000 +vn 0.0000 0.7208 0.6931 +vn -0.2652 0.7208 0.6403 +vn -0.2652 0.7208 -0.6403 +vn 0.0000 0.7208 -0.6931 +vn 0.2652 0.7208 -0.6403 +vn 0.2652 0.7208 -0.6404 +vn 0.2652 0.7208 0.6404 +vn -0.4901 0.7208 -0.4901 +vn 0.4901 0.7208 0.4901 +vn -0.6403 0.7208 -0.2652 +vn 0.6403 0.7208 0.2652 +vn -0.6931 0.7208 0.0000 +vn 0.6931 0.7208 0.0000 +vn -0.6403 0.7208 0.2652 +vn 0.6403 0.7208 -0.2652 +vn -0.4901 0.7208 0.4901 +vn 0.4901 0.7208 -0.4901 +vn 0.5000 -0.7071 0.5000 +vn 0.6533 -0.7071 0.2706 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn 0.0000 1.0000 -0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn 0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 0.0000 +vn 0.8263 0.4472 -0.3423 +vn 0.6325 0.4472 -0.6325 +vn 0.3423 0.4472 -0.8263 +vn 0.0000 0.4472 -0.8944 +vn 0.7071 -0.7071 0.0000 +vn 0.6533 -0.7071 -0.2706 +vn 0.5000 -0.7071 -0.5000 +vn 0.2706 -0.7071 -0.6533 +vn 0.0000 -0.7071 -0.7071 +vn -0.2706 -0.7071 -0.6533 +vn -0.5000 -0.7071 -0.5000 +vn -0.6533 -0.7071 -0.2706 +vn -0.7071 -0.7071 -0.0000 +vn -0.6533 -0.7071 0.2706 +vn -0.5000 -0.7071 0.5000 +vn -0.2706 -0.7071 0.6533 +vn -0.0000 -0.7071 0.7071 +vn 0.2706 -0.7071 0.6533 +vn -0.3827 0.0000 -0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 -0.0000 0.3827 +vn -1.0000 -0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.9239 -0.0000 0.3827 +vn 0.9239 -0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7016 0.1240 0.7016 +vn -0.3797 0.1240 0.9167 +vn 0.7016 0.1240 -0.7016 +vn 0.3797 0.1240 -0.9167 +vn 0.0000 0.1240 0.9923 +vn 0.0000 0.1240 -0.9923 +vn -0.3797 0.1240 -0.9167 +vn 0.3797 0.1240 0.9167 +vn -0.7016 0.1240 -0.7016 +vn 0.7016 0.1240 0.7016 +vn -0.9167 0.1240 -0.3797 +vn 0.9167 0.1240 0.3797 +vn -0.9923 0.1240 -0.0000 +vn 0.9923 0.1240 -0.0000 +vn -0.9167 0.1240 0.3797 +vn 0.9167 0.1240 -0.3797 +s off +f 4904/7151/776 4905/7152/776 4906/7153/776 +f 4906/7153/776 4907/7154/776 4908/7155/776 +f 4907/7156/776 4909/7157/776 4908/7155/776 +f 4910/7158/776 4911/7159/776 4909/7157/776 +f 4912/7160/776 4913/7161/776 4911/7159/776 +f 4914/7162/776 4915/7163/776 4913/7161/776 +f 4916/7164/776 4917/7165/776 4915/7163/776 +f 4917/7165/776 4918/7166/776 4919/7167/776 +f 4918/7168/776 4920/7169/776 4919/7167/776 +f 4920/7170/776 4921/7171/776 4922/7172/776 +f 4922/7172/776 4923/7173/776 4924/7174/776 +f 4923/7175/776 4925/7176/776 4924/7174/776 +f 4926/7177/776 4927/7178/776 4925/7176/776 +f 4927/7178/776 4928/7179/776 4929/7180/776 +f 4928/7181/776 4930/7182/776 4929/7180/776 +f 4931/7183/776 4904/7151/776 4930/7182/776 +f 4932/7184/776 4933/7185/776 4934/7186/776 +f 4935/7187/777 4936/7188/777 4937/7189/777 +f 4938/7190/778 4935/7187/778 4939/7191/778 +f 4935/7192/779 4937/7193/779 4939/7191/779 +f 4936/7194/776 4940/7195/776 4938/7190/776 +f 4941/7196/780 4942/7197/780 4943/7198/780 +f 4944/7199/781 4941/7196/781 4945/7200/781 +f 4941/7201/782 4943/7202/782 4945/7200/782 +f 4942/7203/776 4946/7204/776 4944/7199/776 +f 4947/7205/780 4948/7206/780 4949/7207/780 +f 4950/7208/781 4947/7205/781 4951/7209/781 +f 4947/7210/783 4949/7211/783 4951/7209/783 +f 4948/7212/776 4952/7213/776 4950/7208/776 +f 4953/7214/776 4954/7215/776 4955/7216/776 +f 4956/7217/784 4957/7218/784 4958/7219/784 +f 4955/7216/785 4956/7220/785 4958/7219/785 +f 4956/7220/786 4953/7221/786 4957/7222/786 +f 4959/7223/777 4960/7224/777 4961/7225/777 +f 4962/7226/778 4959/7223/778 4963/7227/778 +f 4959/7228/787 4961/7229/787 4963/7227/787 +f 4960/7230/776 4964/7231/776 4962/7226/776 +f 4965/7232/776 4966/7233/776 4967/7234/776 +f 4968/7235/788 4969/7236/788 4970/7237/788 +f 4967/7234/785 4968/7238/785 4970/7237/785 +f 4968/7238/786 4965/7239/786 4969/7240/786 +f 4971/7241/776 4972/7242/776 4973/7243/776 +f 4974/7244/789 4975/7245/789 4976/7246/789 +f 4973/7243/790 4974/7247/790 4976/7246/790 +f 4974/7247/791 4971/7248/791 4975/7249/791 +f 4977/7250/776 4978/7251/776 4979/7252/776 +f 4980/7253/792 4981/7254/792 4982/7255/792 +f 4979/7252/790 4980/7256/790 4982/7255/790 +f 4980/7256/791 4977/7257/791 4981/7258/791 +f 4904/7151/776 4983/7259/776 4905/7152/776 +f 4906/7153/776 4905/7260/776 4907/7154/776 +f 4907/7156/776 4910/7261/776 4909/7157/776 +f 4910/7158/776 4912/7262/776 4911/7159/776 +f 4912/7160/776 4914/7263/776 4913/7161/776 +f 4914/7162/776 4916/7264/776 4915/7163/776 +f 4916/7164/776 4984/7265/776 4917/7165/776 +f 4917/7165/776 4984/7266/776 4918/7166/776 +f 4918/7168/776 4985/7267/776 4920/7169/776 +f 4920/7170/776 4985/7268/776 4921/7171/776 +f 4922/7172/776 4921/7269/776 4923/7173/776 +f 4923/7175/776 4926/7270/776 4925/7176/776 +f 4926/7177/776 4986/7271/776 4927/7178/776 +f 4927/7178/776 4986/7272/776 4928/7179/776 +f 4928/7181/776 4931/7273/776 4930/7182/776 +f 4931/7183/776 4983/7274/776 4904/7151/776 +f 4932/7184/776 4987/7275/776 4988/7276/776 +f 4988/7276/776 4989/7277/776 4933/7185/776 +f 4933/7185/776 4990/7278/776 4991/7279/776 +f 4991/7279/776 4992/7280/776 4934/7186/776 +f 4934/7186/776 4993/7281/776 4994/7282/776 +f 4994/7282/776 4995/7283/776 4996/7284/776 +f 4996/7284/776 4997/7285/776 4998/7286/776 +f 4998/7286/776 4999/7287/776 4996/7284/776 +f 4999/7287/776 4932/7184/776 4996/7284/776 +f 4932/7184/776 4988/7276/776 4933/7185/776 +f 4933/7185/776 4991/7279/776 4934/7186/776 +f 4934/7186/776 4994/7282/776 4932/7184/776 +f 4994/7282/776 4996/7284/776 4932/7184/776 +f 4935/7187/777 4940/7195/777 4936/7188/777 +f 4938/7190/778 4940/7195/778 4935/7187/778 +f 4941/7196/780 4946/7204/780 4942/7197/780 +f 4944/7199/781 4946/7204/781 4941/7196/781 +f 4947/7205/780 4952/7213/780 4948/7206/780 +f 4950/7208/781 4952/7213/781 4947/7205/781 +f 4955/7216/785 4954/7215/785 4956/7220/785 +f 4956/7220/786 4954/7215/786 4953/7221/786 +f 4959/7223/777 4964/7231/777 4960/7224/777 +f 4962/7226/778 4964/7231/778 4959/7223/778 +f 4967/7234/785 4966/7233/785 4968/7238/785 +f 4968/7238/786 4966/7233/786 4965/7239/786 +f 4973/7243/790 4972/7242/790 4974/7247/790 +f 4974/7247/791 4972/7242/791 4971/7248/791 +f 4979/7252/790 4978/7251/790 4980/7256/790 +f 4980/7256/791 4978/7251/791 4977/7257/791 +s 1 +f 5000/7288/793 5001/7289/794 5002/7290/794 +f 5003/7291/795 5004/7292/796 5005/7293/796 +f 5006/7294/797 5007/7295/793 5000/7288/793 +f 5008/7296/798 5009/7297/795 5003/7291/795 +f 5010/7298/799 5011/7299/797 5006/7294/797 +f 5012/7300/800 5013/7301/798 5008/7296/798 +f 5014/7302/801 5015/7303/799 5010/7304/799 +f 5016/7305/802 5017/7306/800 5012/7300/800 +f 5018/7307/803 5019/7308/801 5014/7302/801 +f 5020/7309/804 5021/7310/802 5016/7305/802 +f 5022/7311/805 5023/7312/803 5018/7307/803 +f 5024/7313/806 5025/7314/804 5020/7309/804 +f 5026/7315/807 5027/7316/805 5022/7311/805 +f 5002/7290/794 5028/7317/808 5029/7318/808 +f 5029/7318/808 5030/7319/806 5024/7313/806 +f 5005/7293/796 5031/7320/807 5026/7315/807 +f 5031/7320/809 5032/7321/810 5027/7316/810 +f 5001/7289/811 5033/7322/812 5028/7317/812 +f 5028/7317/812 5034/7323/813 5030/7319/814 +f 5004/7292/815 5035/7324/809 5031/7320/809 +f 5007/7295/816 5036/7325/811 5001/7289/811 +f 5009/7297/817 5037/7326/815 5004/7292/815 +f 5011/7299/818 5038/7327/816 5007/7295/816 +f 5009/7297/817 5039/7328/819 5040/7329/817 +f 5015/7330/820 5041/7331/818 5011/7299/818 +f 5017/7306/821 5039/7332/819 5013/7301/819 +f 5019/7308/822 5042/7333/820 5015/7303/820 +f 5017/7306/821 5043/7334/823 5044/7335/821 +f 5023/7312/824 5045/7336/822 5019/7308/822 +f 5025/7314/825 5043/7337/823 5021/7310/823 +f 5027/7316/810 5046/7338/824 5023/7312/824 +f 5030/7319/814 5047/7339/825 5025/7314/825 +f 5048/7340/826 5008/7296/827 5003/7291/826 +f 5036/7325/828 5038/7341/829 5049/7342/830 +f 5038/7327/829 5041/7343/831 5049/7344/830 +f 5041/7331/831 5042/7345/832 5049/7346/830 +f 5042/7333/832 5045/7347/833 5049/7348/830 +f 5045/7336/833 5046/7349/834 5049/7350/830 +f 5046/7338/834 5032/7351/835 5049/7352/830 +f 5032/7321/835 5035/7353/836 5049/7354/830 +f 5035/7324/836 5037/7355/837 5049/7356/830 +f 5037/7326/837 5040/7357/838 5049/7358/830 +f 5040/7329/838 5039/7328/839 5049/7359/830 +f 5039/7332/839 5044/7360/840 5049/7361/830 +f 5044/7335/840 5043/7334/841 5049/7362/830 +f 5043/7337/841 5047/7363/842 5049/7364/830 +f 5047/7339/842 5034/7365/843 5049/7366/830 +f 5034/7323/843 5033/7367/844 5049/7368/830 +f 5033/7322/844 5036/7369/828 5049/7370/830 +f 5050/7371/827 5012/7300/845 5008/7296/827 +f 5051/7372/845 5016/7305/846 5012/7300/845 +f 5052/7373/846 5020/7309/847 5016/7305/846 +f 5053/7374/847 5024/7313/848 5020/7309/847 +f 5024/7313/848 5054/7375/849 5029/7318/849 +f 5054/7376/849 5002/7290/850 5029/7318/849 +f 5055/7377/850 5000/7288/851 5002/7290/850 +f 5056/7378/851 5006/7294/852 5000/7288/851 +f 5057/7379/852 5010/7298/853 5006/7294/852 +f 5058/7380/853 5014/7302/854 5010/7304/853 +f 5059/7381/854 5018/7307/855 5014/7302/854 +f 5060/7382/855 5022/7311/856 5018/7307/855 +f 5061/7383/856 5026/7315/857 5022/7311/856 +f 5062/7384/857 5005/7293/858 5026/7315/857 +f 5063/7385/858 5003/7291/826 5005/7293/858 +f 5055/7377/859 5064/7386/860 5056/7387/860 +f 5063/7385/861 5065/7388/862 5048/7389/862 +f 5056/7378/860 5066/7390/863 5057/7391/863 +f 5048/7340/862 5067/7392/864 5050/7393/864 +f 5057/7379/863 5068/7394/865 5058/7395/865 +f 5050/7371/864 5069/7396/866 5051/7397/866 +f 5058/7380/865 5070/7398/867 5059/7399/867 +f 5051/7372/866 5071/7400/868 5052/7401/868 +f 5059/7381/867 5072/7402/869 5060/7403/869 +f 5052/7373/868 5073/7404/870 5053/7405/870 +f 5060/7382/869 5074/7406/871 5061/7407/871 +f 5053/7374/870 5075/7408/872 5076/7409/872 +f 5061/7383/871 5077/7410/873 5062/7411/873 +f 5054/7376/874 5078/7412/859 5055/7413/859 +f 5076/7414/872 5079/7415/874 5054/7375/874 +f 5062/7384/873 5080/7416/861 5063/7417/861 +f 5072/7418/875 5081/7419/876 5074/7406/876 +f 5073/7420/877 5082/7421/878 5075/7408/878 +f 5074/7422/876 5083/7423/879 5077/7410/879 +f 5079/7424/880 5084/7425/881 5078/7412/881 +f 5075/7426/878 5085/7427/880 5079/7415/880 +f 5080/7416/882 5083/7423/879 5086/7428/882 +f 5078/7429/881 5087/7430/883 5064/7386/883 +f 5080/7431/882 5088/7432/884 5065/7388/884 +f 5064/7433/883 5089/7434/885 5066/7390/885 +f 5065/7435/884 5090/7436/886 5067/7392/886 +f 5066/7437/885 5091/7438/887 5068/7394/887 +f 5067/7439/886 5092/7440/888 5069/7396/888 +f 5068/7441/887 5093/7442/889 5070/7398/889 +f 5069/7443/888 5094/7444/890 5071/7400/890 +f 5070/7445/889 5095/7446/875 5072/7402/875 +f 5071/7447/890 5096/7448/877 5073/7404/877 +f 5090/7436/864 4906/7153/866 5092/7440/866 +f 5091/7449/865 4922/7172/867 5093/7442/867 +f 5092/7440/866 4908/7155/868 5094/7444/868 +f 5093/7442/867 4924/7174/869 5095/7446/869 +f 5094/7444/868 4909/7157/870 5096/7448/870 +f 5095/7446/869 4925/7176/871 5081/7419/871 +f 5096/7448/870 4911/7159/872 5082/7421/872 +f 5081/7419/871 4927/7178/873 5083/7423/873 +f 5085/7427/874 4915/7163/859 5084/7425/859 +f 5082/7421/872 4913/7161/874 5085/7427/874 +f 5083/7423/873 4929/7180/861 5086/7428/861 +f 5084/7425/859 4917/7165/860 5087/7430/860 +f 5086/7428/861 4930/7182/862 5088/7432/862 +f 5087/7430/860 4919/7167/863 5089/7434/863 +f 5088/7432/862 4904/7151/864 5090/7436/864 +f 5089/7434/863 4920/7169/865 5091/7438/865 +f 4910/7158/870 4989/7450/872 4912/7262/872 +f 4926/7177/871 4994/7451/873 4986/7271/873 +f 4914/7162/874 4987/7452/859 4916/7264/859 +f 4912/7160/872 4988/7453/874 4914/7263/874 +f 4986/7272/873 4993/7454/861 4928/7179/861 +f 4916/7164/859 4932/7455/860 4984/7265/860 +f 4928/7181/861 4934/7456/862 4931/7273/862 +f 4984/7266/860 4999/7457/863 4918/7166/863 +f 4931/7183/862 4992/7458/864 4983/7274/864 +f 4918/7168/863 4998/7459/865 4985/7267/865 +f 4983/7259/864 4991/7460/866 4905/7152/866 +f 4985/7268/865 4997/7461/867 4921/7171/867 +f 4905/7260/866 4990/7462/868 4907/7154/868 +f 4921/7269/867 4996/7463/869 4923/7173/869 +f 4907/7156/868 4933/7464/870 4910/7261/870 +f 4923/7175/869 4995/7465/871 4926/7270/871 +f 5000/7288/793 5007/7295/793 5001/7289/794 +f 5003/7291/795 5009/7297/795 5004/7292/796 +f 5006/7294/797 5011/7299/797 5007/7295/793 +f 5008/7296/798 5013/7301/798 5009/7297/795 +f 5010/7298/799 5015/7330/799 5011/7299/797 +f 5012/7300/800 5017/7306/800 5013/7301/798 +f 5014/7302/801 5019/7308/801 5015/7303/799 +f 5016/7305/802 5021/7310/802 5017/7306/800 +f 5018/7307/803 5023/7312/803 5019/7308/801 +f 5020/7309/804 5025/7314/804 5021/7310/802 +f 5022/7311/805 5027/7316/805 5023/7312/803 +f 5024/7313/806 5030/7319/806 5025/7314/804 +f 5026/7315/807 5031/7320/807 5027/7316/805 +f 5002/7290/794 5001/7289/794 5028/7317/808 +f 5029/7318/808 5028/7317/808 5030/7319/806 +f 5005/7293/796 5004/7292/796 5031/7320/807 +f 5031/7320/809 5035/7353/809 5032/7321/810 +f 5001/7289/811 5036/7369/811 5033/7322/812 +f 5028/7317/812 5033/7367/812 5034/7323/813 +f 5004/7292/815 5037/7355/815 5035/7324/809 +f 5007/7295/816 5038/7341/816 5036/7325/811 +f 5009/7297/817 5040/7357/817 5037/7326/815 +f 5011/7299/818 5041/7343/818 5038/7327/816 +f 5009/7297/817 5013/7301/819 5039/7328/819 +f 5015/7330/820 5042/7345/820 5041/7331/818 +f 5017/7306/821 5044/7360/821 5039/7332/819 +f 5019/7308/822 5045/7347/822 5042/7333/820 +f 5017/7306/821 5021/7310/823 5043/7334/823 +f 5023/7312/824 5046/7349/824 5045/7336/822 +f 5025/7314/825 5047/7363/825 5043/7337/823 +f 5027/7316/810 5032/7351/810 5046/7338/824 +f 5030/7319/814 5034/7365/813 5047/7339/825 +f 5048/7340/826 5050/7393/827 5008/7296/827 +f 5050/7371/827 5051/7397/845 5012/7300/845 +f 5051/7372/845 5052/7401/846 5016/7305/846 +f 5052/7373/846 5053/7405/847 5020/7309/847 +f 5053/7374/847 5076/7409/848 5024/7313/848 +f 5024/7313/848 5076/7414/848 5054/7375/849 +f 5054/7376/849 5055/7413/850 5002/7290/850 +f 5055/7377/850 5056/7387/851 5000/7288/851 +f 5056/7378/851 5057/7391/852 5006/7294/852 +f 5057/7379/852 5058/7395/853 5010/7298/853 +f 5058/7380/853 5059/7399/854 5014/7302/854 +f 5059/7381/854 5060/7403/855 5018/7307/855 +f 5060/7382/855 5061/7407/856 5022/7311/856 +f 5061/7383/856 5062/7411/857 5026/7315/857 +f 5062/7384/857 5063/7417/858 5005/7293/858 +f 5063/7385/858 5048/7389/826 5003/7291/826 +f 5055/7377/859 5078/7429/859 5064/7386/860 +f 5063/7385/861 5080/7431/861 5065/7388/862 +f 5056/7378/860 5064/7433/860 5066/7390/863 +f 5048/7340/862 5065/7435/862 5067/7392/864 +f 5057/7379/863 5066/7437/863 5068/7394/865 +f 5050/7371/864 5067/7439/864 5069/7396/866 +f 5058/7380/865 5068/7441/865 5070/7398/867 +f 5051/7372/866 5069/7443/866 5071/7400/868 +f 5059/7381/867 5070/7445/867 5072/7402/869 +f 5052/7373/868 5071/7447/868 5073/7404/870 +f 5060/7382/869 5072/7418/869 5074/7406/871 +f 5053/7374/870 5073/7420/870 5075/7408/872 +f 5061/7383/871 5074/7422/871 5077/7410/873 +f 5054/7376/874 5079/7424/874 5078/7412/859 +f 5076/7414/872 5075/7426/872 5079/7415/874 +f 5062/7384/873 5077/7466/873 5080/7416/861 +f 5072/7418/875 5095/7446/875 5081/7419/876 +f 5073/7420/877 5096/7448/877 5082/7421/878 +f 5074/7422/876 5081/7419/876 5083/7423/879 +f 5079/7424/880 5085/7427/880 5084/7425/881 +f 5075/7426/878 5082/7421/878 5085/7427/880 +f 5080/7416/882 5077/7466/879 5083/7423/879 +f 5078/7429/881 5084/7425/881 5087/7430/883 +f 5080/7431/882 5086/7428/882 5088/7432/884 +f 5064/7433/883 5087/7430/883 5089/7434/885 +f 5065/7435/884 5088/7432/884 5090/7436/886 +f 5066/7437/885 5089/7434/885 5091/7438/887 +f 5067/7439/886 5090/7436/886 5092/7440/888 +f 5068/7441/887 5091/7449/887 5093/7442/889 +f 5069/7443/888 5092/7440/888 5094/7444/890 +f 5070/7445/889 5093/7442/889 5095/7446/875 +f 5071/7447/890 5094/7444/890 5096/7448/877 +f 5090/7436/864 4904/7151/864 4906/7153/866 +f 5091/7449/865 4920/7170/865 4922/7172/867 +f 5092/7440/866 4906/7153/866 4908/7155/868 +f 5093/7442/867 4922/7172/867 4924/7174/869 +f 5094/7444/868 4908/7155/868 4909/7157/870 +f 5095/7446/869 4924/7174/869 4925/7176/871 +f 5096/7448/870 4909/7157/870 4911/7159/872 +f 5081/7419/871 4925/7176/871 4927/7178/873 +f 5085/7427/874 4913/7161/874 4915/7163/859 +f 5082/7421/872 4911/7159/872 4913/7161/874 +f 5083/7423/873 4927/7178/873 4929/7180/861 +f 5084/7425/859 4915/7163/859 4917/7165/860 +f 5086/7428/861 4929/7180/861 4930/7182/862 +f 5087/7430/860 4917/7165/860 4919/7167/863 +f 5088/7432/862 4930/7182/862 4904/7151/864 +f 5089/7434/863 4919/7167/863 4920/7169/865 +f 4910/7158/870 4933/7467/870 4989/7450/872 +f 4926/7177/871 4995/7468/871 4994/7451/873 +f 4914/7162/874 4988/7469/874 4987/7452/859 +f 4912/7160/872 4989/7470/872 4988/7453/874 +f 4986/7272/873 4994/7471/873 4993/7454/861 +f 4916/7164/859 4987/7472/859 4932/7455/860 +f 4928/7181/861 4993/7473/861 4934/7456/862 +f 4984/7266/860 4932/7474/860 4999/7457/863 +f 4931/7183/862 4934/7475/862 4992/7458/864 +f 4918/7168/863 4999/7476/863 4998/7459/865 +f 4983/7259/864 4992/7477/864 4991/7460/866 +f 4985/7268/865 4998/7478/865 4997/7461/867 +f 4905/7260/866 4991/7479/866 4990/7462/868 +f 4921/7269/867 4997/7480/867 4996/7463/869 +f 4907/7156/868 4990/7481/868 4933/7464/870 +f 4923/7175/869 4996/7482/869 4995/7465/871 +o V2_Missile +v 0.265165 2.500000 -0.265165 +v 0.265165 2.500000 0.265165 +v -0.265165 2.500000 0.265165 +v 0.729204 3.500000 -0.773398 +v 0.773398 2.000000 -0.729204 +v 0.729204 2.000000 -0.773398 +v -0.773398 3.500000 -0.729204 +v -0.729204 2.000000 -0.773398 +v -0.773398 2.000000 -0.729204 +v -0.198874 2.500000 -0.243068 +v -0.596621 2.000000 -0.552427 +v -0.552427 2.000000 -0.596621 +v 0.243068 2.500000 -0.198874 +v 0.552427 2.000000 -0.596621 +v 0.596621 2.000000 -0.552427 +v -0.729204 3.500000 -0.773398 +v 0.773398 3.500000 -0.729204 +v -0.243068 2.500000 -0.198874 +v 0.198874 2.500000 -0.243068 +v -0.243068 4.500000 -0.198874 +v -0.198874 4.500000 -0.243068 +v 0.198874 4.500000 -0.243068 +v 0.243068 4.500000 -0.198874 +v -0.243068 4.500000 0.198874 +v -0.729204 3.500000 0.773398 +v -0.198874 4.500000 0.243068 +v -0.552427 2.000000 0.596621 +v -0.773398 2.000000 0.729204 +v -0.596621 2.000000 0.552427 +v -0.729204 2.000000 0.773398 +v -0.198874 2.500000 0.243068 +v -0.773398 3.500000 0.729204 +v -0.243068 2.500000 0.198874 +v 0.729204 3.500000 0.773398 +v 0.243068 4.500000 0.198874 +v 0.198874 4.500000 0.243068 +v 0.552427 2.000000 0.596621 +v 0.773398 2.000000 0.729204 +v 0.729204 2.000000 0.773398 +v 0.773398 3.500000 0.729204 +v 0.243068 2.500000 0.198874 +v 0.198874 2.500000 0.243068 +v -0.265165 2.500000 -0.265165 +v -0.143506 2.500000 -0.346455 +v 0.000000 2.500000 -0.375000 +v 0.143506 2.500000 -0.346455 +v 0.346455 2.500000 -0.143506 +v 0.375000 2.500000 0.000000 +v 0.346455 2.500000 0.143506 +v 0.143506 2.500000 0.346455 +v 0.000000 2.500000 0.375000 +v -0.143506 2.500000 0.346455 +v -0.346455 2.500000 0.143506 +v -0.375000 2.500000 0.000000 +v -0.346455 2.500000 -0.143506 +v 0.596621 2.000000 0.552427 +v 0.353553 3.500000 0.353553 +v 0.191342 6.000000 0.461940 +v 0.191342 3.500000 0.461940 +v -0.461940 3.500000 -0.191342 +v -0.353553 6.000000 -0.353553 +v -0.353553 3.500000 -0.353553 +v 0.461940 3.500000 0.191342 +v 0.353553 6.000000 0.353554 +v -0.500000 3.500000 0.000000 +v -0.461940 6.000000 -0.191342 +v 0.500000 3.500000 0.000000 +v 0.461940 6.000000 0.191342 +v -0.461940 3.500000 0.191342 +v -0.500000 6.000000 0.000000 +v 0.461940 3.500000 -0.191342 +v 0.500000 6.000000 0.000000 +v -0.353553 3.500000 0.353553 +v -0.461940 6.000000 0.191342 +v 0.353553 3.500000 -0.353554 +v 0.461940 6.000000 -0.191342 +v -0.191342 3.500000 0.461940 +v -0.353553 6.000000 0.353553 +v 0.191341 3.500000 -0.461940 +v 0.353553 6.000000 -0.353554 +v 0.000000 6.000000 0.500000 +v -0.191342 6.000000 0.461940 +v -0.191342 3.500000 -0.461940 +v 0.000000 6.000000 -0.500000 +v 0.000000 3.500000 -0.500000 +v 0.191341 6.000000 -0.461940 +v 0.000000 3.500000 0.500000 +v -0.191342 6.000000 -0.461940 +v 0.000000 7.500000 -0.375000 +v 0.143506 7.500000 -0.346455 +v 0.000000 7.500000 0.375000 +v -0.265165 7.500000 -0.265165 +v -0.143506 7.500000 -0.346455 +v 0.265165 7.500000 0.265165 +v 0.143506 7.500000 0.346455 +v -0.375000 7.500000 0.000000 +v -0.346455 7.500000 -0.143506 +v 0.375000 7.500000 0.000000 +v 0.346455 7.500000 0.143506 +v -0.265165 7.500000 0.265165 +v -0.346455 7.500000 0.143506 +v 0.346455 7.500000 -0.143506 +v 0.265165 7.500000 -0.265165 +v -0.143506 7.500000 0.346455 +v 0.000000 9.000000 0.000000 +vt 0.954652 0.411214 +vt 0.954652 0.492632 +vt 0.815840 0.492632 +vt 0.803279 0.240385 +vt 0.786885 0.009615 +vt 0.803279 0.009615 +vt 0.803279 0.750000 +vt 0.786885 0.519231 +vt 0.803279 0.519231 +vt 1.000000 0.509615 +vt 0.868852 0.519231 +vt 0.868852 0.509615 +vt 1.000000 -0.000000 +vt 0.868852 0.009615 +vt 0.868852 -0.000000 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 0.596154 +vt 1.000000 0.086538 +vt 0.803279 0.509615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.803279 0.000000 +vt 0.786885 0.240385 +vt 0.803279 0.394231 +vt 0.786885 0.394231 +vt 0.786885 0.394231 +vt 0.803279 0.240385 +vt 0.803279 0.394231 +vt 0.868852 0.009615 +vt 0.803279 0.000000 +vt 0.868852 -0.000000 +vt 0.803279 0.009615 +vt 1.000000 0.086538 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 -0.000000 +vt 0.786885 0.009615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.868852 0.509615 +vt 0.803279 0.519231 +vt 0.803279 0.509615 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 1.000000 0.519231 +vt 1.000000 0.509615 +vt 0.786885 0.519231 +vt 0.815840 0.411214 +vt 0.847684 0.398734 +vt 0.885246 0.394352 +vt 0.922808 0.398734 +vt 0.975929 0.429891 +vt 0.983401 0.451923 +vt 0.975929 0.473955 +vt 0.922808 0.505112 +vt 0.885246 0.509494 +vt 0.847684 0.505112 +vt 0.794563 0.473955 +vt 0.787091 0.451923 +vt 0.794563 0.429891 +vt 1.000000 0.519231 +vt 1.000000 0.009615 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.903846 +vt 1.000000 0.394231 +vt 0.786885 0.240385 +vt 1.000000 0.394231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.009615 +vt 0.868852 0.519231 +vt 1.000000 0.903846 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 0.295082 0.153846 +vt 0.245902 0.538462 +vt 0.245902 0.153846 +vt 0.737705 0.153846 +vt 0.688525 0.538462 +vt 0.688525 0.153846 +vt 0.344262 0.153846 +vt 0.295082 0.538462 +vt 0.786885 0.153846 +vt 0.737705 0.538462 +vt 0.393443 0.153846 +vt 0.344262 0.538462 +vt 0.049180 0.153846 +vt -0.000000 0.538462 +vt -0.000000 0.153846 +vt 0.442623 0.153846 +vt 0.393443 0.538462 +vt 0.098361 0.153846 +vt 0.049180 0.538462 +vt 0.491803 0.153846 +vt 0.442623 0.538462 +vt 0.147541 0.153846 +vt 0.098361 0.538462 +vt 0.540984 0.153846 +vt 0.491803 0.538462 +vt 0.196721 0.538462 +vt 0.147541 0.538462 +vt 0.639344 0.153846 +vt 0.590164 0.538462 +vt 0.590164 0.153846 +vt 0.540984 0.538462 +vt 0.196721 0.153846 +vt 0.639344 0.538462 +vt 0.573770 0.769231 +vt 0.540984 0.769231 +vt 0.196721 0.769231 +vt 0.672131 0.769231 +vt 0.639344 0.769231 +vt 0.278689 0.769231 +vt 0.245902 0.769231 +vt 0.688525 0.769231 +vt 0.295082 0.769231 +vt 0.770492 0.769231 +vt 0.737705 0.769231 +vt 0.377049 0.769231 +vt 0.344262 0.769231 +vt -0.000000 0.769231 +vt 0.393443 0.769231 +vt 0.081967 0.769231 +vt 0.049180 0.769231 +vt 0.442623 0.769231 +vt 0.098361 0.769231 +vt 0.491803 0.769231 +vt 0.147541 0.769231 +vt 0.590164 0.769231 +vt 0.655738 1.000000 +vt 0.721311 0.769231 +vt 0.704918 1.000000 +vt 0.754098 1.000000 +vt 0.032787 0.769231 +vt 0.016393 1.000000 +vt 0.065574 1.000000 +vt 0.131148 0.769231 +vt 0.114754 1.000000 +vt 0.180328 0.769231 +vt 0.163934 1.000000 +vt 0.229508 0.769231 +vt 0.213115 1.000000 +vt 0.262295 1.000000 +vt 0.327869 0.769231 +vt 0.311475 1.000000 +vt 0.360656 1.000000 +vt 0.426230 0.769231 +vt 0.409836 1.000000 +vt 0.475410 0.769231 +vt 0.459016 1.000000 +vt 0.524590 0.769231 +vt 0.508197 1.000000 +vt 0.557377 1.000000 +vt 0.622951 0.769231 +vt 0.606557 1.000000 +vt 0.278689 0.000000 +vt 0.688525 0.000000 +vt 0.721311 0.000000 +vt 0.295082 0.000000 +vt 0.327869 0.000000 +vt 0.737705 0.000000 +vt 0.770492 0.000000 +vt 0.344262 0.000000 +vt 0.377049 0.000000 +vt -0.000000 0.000000 +vt 0.032787 0.000000 +vt 0.426230 0.000000 +vt 0.081967 0.000000 +vt 0.475410 0.000000 +vt 0.131148 0.000000 +vt 0.491803 0.000000 +vt 0.524590 0.000000 +vt 0.180328 0.000000 +vt 0.622951 0.000000 +vt 0.573770 0.000000 +vt 0.196721 0.000000 +vt 0.229508 0.000000 +vt 0.639344 0.000000 +vt 0.672131 0.000000 +vt 0.786885 0.538462 +vt 0.245902 0.000000 +vt 0.393443 0.000000 +vt 0.049180 0.000000 +vt 0.442623 0.000000 +vt 0.098361 0.000000 +vt 0.147541 0.000000 +vt 0.590164 0.000000 +vt 0.540984 0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.5000 -0.7071 0.5000 +vn -0.5000 -0.7071 0.5000 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn -0.5657 0.6000 -0.5657 +vn 0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 0.5657 +vn 0.5000 -0.7071 -0.5000 +vn 0.5657 0.6000 0.5657 +vn -0.5000 -0.7071 -0.5000 +vn 0.7058 -0.0617 0.7058 +vn 0.3824 0.0413 0.9231 +vn 0.3820 -0.0617 0.9221 +vn -0.9221 -0.0617 -0.3820 +vn -0.7065 0.0413 -0.7065 +vn -0.7058 -0.0617 -0.7058 +vn 0.9221 -0.0617 0.3820 +vn 0.7065 0.0413 0.7065 +vn -0.9981 -0.0617 -0.0000 +vn -0.9231 0.0413 -0.3824 +vn 0.9981 -0.0617 0.0000 +vn 0.9231 0.0413 0.3824 +vn -0.9221 -0.0617 0.3820 +vn -0.9991 0.0413 0.0000 +vn 0.9221 -0.0617 -0.3820 +vn 0.9991 0.0413 -0.0000 +vn -0.7058 -0.0617 0.7058 +vn -0.9231 0.0413 0.3824 +vn 0.7058 -0.0617 -0.7058 +vn 0.9231 0.0413 -0.3824 +vn -0.3820 -0.0617 0.9221 +vn -0.7065 0.0413 0.7065 +vn 0.3820 -0.0617 -0.9221 +vn 0.7065 0.0413 -0.7065 +vn -0.0000 0.0413 0.9991 +vn -0.3824 0.0413 0.9231 +vn -0.3820 -0.0617 -0.9221 +vn 0.0000 0.0413 -0.9991 +vn 0.0000 -0.0617 -0.9981 +vn 0.3824 0.0413 -0.9231 +vn 0.0000 -0.0617 0.9981 +vn -0.3824 0.0413 -0.9231 +vn -0.0000 0.1617 -0.9868 +vn 0.3776 0.1617 -0.9117 +vn 0.0000 0.1617 0.9868 +vn -0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 -0.9117 +vn 0.6978 0.1617 0.6978 +vn 0.3776 0.1617 0.9117 +vn -0.9868 0.1617 -0.0000 +vn -0.9117 0.1617 -0.3776 +vn 0.9868 0.1617 -0.0000 +vn 0.9117 0.1617 0.3776 +vn -0.6978 0.1617 0.6978 +vn -0.9117 0.1617 0.3776 +vn 0.9117 0.1617 -0.3776 +vn 0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 0.9117 +vn 0.0000 1.0000 0.0000 +vn 0.7016 -0.1240 0.7016 +vn -0.7016 -0.1240 -0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 0.9923 +vn -0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 -0.9923 +vn 0.3797 -0.1240 0.9167 +s off +f 5097/7483/891 5098/7484/891 5099/7485/891 +f 5100/7486/892 5101/7487/892 5102/7488/892 +f 5103/7489/893 5104/7490/893 5105/7491/893 +f 5106/7492/894 5107/7493/894 5108/7494/894 +f 5109/7495/895 5110/7496/895 5111/7497/895 +f 5112/7498/892 5106/7499/892 5104/7500/892 +f 5113/7501/896 5109/7502/896 5101/7503/896 +f 5103/7489/897 5105/7491/897 5114/7504/897 +f 5100/7486/893 5102/7488/893 5115/7505/893 +f 5107/7493/891 5104/7506/891 5108/7494/891 +f 5112/7507/898 5116/7508/898 5117/7509/898 +f 5111/7497/891 5102/7488/891 5101/7510/891 +f 5113/7511/899 5118/7512/899 5119/7513/899 +f 5120/7514/900 5121/7515/900 5122/7516/900 +f 5123/7517/891 5124/7518/891 5125/7519/891 +f 5121/7515/896 5126/7520/896 5127/7521/896 +f 5128/7522/893 5129/7523/893 5124/7524/893 +f 5129/7525/901 5123/7517/901 5125/7519/901 +f 5121/7515/897 5124/7526/897 5126/7520/897 +f 5130/7527/902 5131/7528/902 5132/7529/902 +f 5133/7530/891 5134/7531/891 5135/7532/891 +f 5136/7533/892 5134/7531/892 5137/7534/892 +f 5130/7535/897 5138/7536/897 5135/7537/897 +f 5137/7538/903 5133/7530/903 5138/7539/903 +f 5136/7533/896 5135/7540/896 5134/7531/896 +f 5139/7541/891 5140/7542/891 5141/7543/891 +f 5141/7543/891 5142/7544/891 5097/7483/891 +f 5097/7483/891 5143/7545/891 5098/7484/891 +f 5143/7545/891 5144/7546/891 5098/7484/891 +f 5144/7546/891 5145/7547/891 5098/7484/891 +f 5098/7484/891 5146/7548/891 5099/7485/891 +f 5146/7548/891 5147/7549/891 5099/7485/891 +f 5147/7549/891 5148/7550/891 5099/7485/891 +f 5099/7485/891 5149/7551/891 5150/7552/891 +f 5150/7552/891 5151/7553/891 5139/7541/891 +f 5139/7541/891 5141/7543/891 5097/7483/891 +f 5099/7485/891 5150/7552/891 5139/7541/891 +f 5139/7541/891 5097/7483/891 5099/7485/891 +f 5100/7486/892 5113/7511/892 5101/7487/892 +f 5103/7489/893 5112/7507/893 5104/7490/893 +f 5106/7492/894 5114/7554/894 5107/7493/894 +f 5109/7495/895 5115/7555/895 5110/7496/895 +f 5117/7556/892 5106/7499/892 5112/7498/892 +f 5106/7499/892 5108/7557/892 5104/7500/892 +f 5119/7558/896 5109/7502/896 5113/7501/896 +f 5109/7502/896 5111/7559/896 5101/7503/896 +f 5107/7493/897 5114/7504/897 5105/7491/897 +f 5114/7504/897 5116/7560/897 5103/7489/897 +f 5110/7496/893 5115/7505/893 5102/7488/893 +f 5115/7505/893 5118/7561/893 5100/7486/893 +f 5107/7493/891 5105/7491/891 5104/7506/891 +f 5112/7507/898 5103/7489/898 5116/7508/898 +f 5111/7497/891 5110/7496/891 5102/7488/891 +f 5113/7511/899 5100/7486/899 5118/7512/899 +f 5120/7514/900 5128/7562/900 5121/7515/900 +f 5123/7517/891 5126/7520/891 5124/7518/891 +f 5123/7517/896 5127/7521/896 5126/7520/896 +f 5127/7521/896 5122/7563/896 5121/7515/896 +f 5120/7564/893 5129/7523/893 5128/7522/893 +f 5129/7523/893 5125/7565/893 5124/7524/893 +f 5129/7525/901 5127/7566/901 5123/7517/901 +f 5121/7515/897 5128/7562/897 5124/7526/897 +f 5130/7527/902 5136/7533/902 5131/7528/902 +f 5133/7530/891 5152/7567/891 5134/7531/891 +f 5152/7567/892 5137/7534/892 5134/7531/892 +f 5137/7534/892 5131/7568/892 5136/7533/892 +f 5132/7569/897 5138/7536/897 5130/7535/897 +f 5138/7536/897 5133/7570/897 5135/7537/897 +f 5137/7538/903 5152/7567/903 5133/7530/903 +f 5136/7533/896 5130/7527/896 5135/7540/896 +s 1 +f 5153/7571/904 5154/7572/905 5155/7573/906 +f 5156/7574/907 5157/7575/908 5158/7576/909 +f 5159/7577/910 5160/7578/911 5153/7571/904 +f 5161/7579/912 5162/7580/913 5156/7574/907 +f 5163/7581/914 5164/7582/915 5159/7577/910 +f 5165/7583/916 5166/7584/917 5161/7585/912 +f 5167/7586/918 5168/7587/919 5163/7581/914 +f 5169/7588/920 5170/7589/921 5165/7583/916 +f 5171/7590/922 5172/7591/923 5167/7586/918 +f 5173/7592/924 5174/7593/925 5169/7588/920 +f 5175/7594/926 5176/7595/927 5171/7590/922 +f 5173/7592/924 5177/7596/928 5178/7597/929 +f 5179/7598/930 5180/7599/931 5181/7600/932 +f 5181/7600/932 5182/7601/933 5175/7594/926 +f 5155/7573/906 5177/7596/928 5183/7602/934 +f 5158/7576/909 5184/7603/935 5179/7598/930 +f 5182/7601/933 5185/7604/936 5186/7605/937 +f 5154/7572/905 5187/7606/938 5177/7596/928 +f 5184/7603/935 5188/7607/939 5189/7608/940 +f 5154/7572/905 5190/7609/941 5191/7610/942 +f 5162/7580/913 5188/7611/939 5157/7575/908 +f 5164/7582/915 5190/7612/941 5160/7578/911 +f 5162/7580/913 5192/7613/943 5193/7614/944 +f 5164/7582/915 5194/7615/945 5195/7616/946 +f 5170/7589/921 5192/7617/943 5166/7584/917 +f 5172/7591/923 5194/7618/945 5168/7587/919 +f 5170/7589/921 5196/7619/947 5197/7620/948 +f 5176/7595/927 5198/7621/949 5172/7591/923 +f 5178/7597/929 5196/7622/947 5174/7593/925 +f 5182/7601/933 5199/7623/950 5176/7595/927 +f 5177/7596/928 5200/7624/951 5178/7597/929 +f 5184/7603/935 5185/7625/936 5180/7599/931 +f 5189/7608/940 5188/7607/939 5201/7626/952 +f 5188/7611/939 5193/7627/944 5201/7628/952 +f 5193/7614/944 5192/7613/943 5201/7629/952 +f 5192/7617/943 5197/7630/948 5201/7631/952 +f 5197/7620/948 5196/7619/947 5201/7632/952 +f 5196/7622/947 5200/7633/951 5201/7634/952 +f 5200/7624/951 5187/7635/938 5201/7636/952 +f 5187/7606/938 5191/7637/942 5201/7638/952 +f 5191/7610/942 5190/7609/941 5201/7639/952 +f 5190/7612/941 5195/7640/946 5201/7641/952 +f 5195/7616/946 5194/7615/945 5201/7642/952 +f 5194/7618/945 5198/7643/949 5201/7644/952 +f 5198/7621/949 5199/7645/950 5201/7646/952 +f 5199/7623/950 5186/7647/937 5201/7648/952 +f 5186/7605/937 5185/7604/936 5201/7649/952 +f 5185/7625/936 5189/7650/940 5201/7651/952 +f 5155/7573/906 5098/7652/953 5153/7571/904 +f 5156/7574/907 5139/7653/954 5151/7654/955 +f 5159/7577/910 5098/7655/953 5145/7656/956 +f 5161/7579/912 5151/7657/955 5150/7658/957 +f 5163/7581/914 5145/7659/956 5144/7660/958 +f 5165/7583/916 5150/7661/957 5149/7662/959 +f 5163/7581/914 5143/7663/960 5167/7586/918 +f 5165/7583/916 5099/7664/961 5169/7588/920 +f 5167/7586/918 5097/7665/962 5171/7590/922 +f 5169/7588/920 5148/7666/963 5173/7592/924 +f 5175/7594/926 5097/7667/962 5142/7668/964 +f 5173/7592/924 5147/7669/965 5183/7602/934 +f 5181/7600/932 5140/7670/966 5179/7598/930 +f 5175/7594/926 5141/7671/967 5181/7600/932 +f 5155/7573/906 5147/7672/965 5146/7673/968 +f 5158/7576/909 5140/7674/966 5139/7675/954 +f 5153/7571/904 5160/7578/911 5154/7572/905 +f 5156/7574/907 5162/7580/913 5157/7575/908 +f 5159/7577/910 5164/7582/915 5160/7578/911 +f 5161/7579/912 5166/7676/917 5162/7580/913 +f 5163/7581/914 5168/7587/919 5164/7582/915 +f 5165/7583/916 5170/7589/921 5166/7584/917 +f 5167/7586/918 5172/7591/923 5168/7587/919 +f 5169/7588/920 5174/7593/925 5170/7589/921 +f 5171/7590/922 5176/7595/927 5172/7591/923 +f 5173/7592/924 5178/7597/929 5174/7593/925 +f 5175/7594/926 5182/7601/933 5176/7595/927 +f 5173/7592/924 5183/7602/934 5177/7596/928 +f 5179/7598/930 5184/7603/935 5180/7599/931 +f 5181/7600/932 5180/7599/931 5182/7601/933 +f 5155/7573/906 5154/7572/905 5177/7596/928 +f 5158/7576/909 5157/7575/908 5184/7603/935 +f 5182/7601/933 5180/7599/931 5185/7604/936 +f 5154/7572/905 5191/7637/942 5187/7606/938 +f 5184/7603/935 5157/7575/908 5188/7607/939 +f 5154/7572/905 5160/7578/911 5190/7609/941 +f 5162/7580/913 5193/7627/944 5188/7611/939 +f 5164/7582/915 5195/7640/946 5190/7612/941 +f 5162/7580/913 5166/7676/917 5192/7613/943 +f 5164/7582/915 5168/7587/919 5194/7615/945 +f 5170/7589/921 5197/7630/948 5192/7617/943 +f 5172/7591/923 5198/7643/949 5194/7618/945 +f 5170/7589/921 5174/7593/925 5196/7619/947 +f 5176/7595/927 5199/7645/950 5198/7621/949 +f 5178/7597/929 5200/7633/951 5196/7622/947 +f 5182/7601/933 5186/7647/937 5199/7623/950 +f 5177/7596/928 5187/7635/938 5200/7624/951 +f 5184/7603/935 5189/7650/940 5185/7625/936 +f 5155/7573/906 5146/7677/968 5098/7652/953 +f 5156/7574/907 5158/7576/909 5139/7653/954 +f 5159/7577/910 5153/7571/904 5098/7655/953 +f 5161/7579/912 5156/7574/907 5151/7657/955 +f 5163/7581/914 5159/7577/910 5145/7659/956 +f 5165/7583/916 5161/7585/912 5150/7661/957 +f 5163/7581/914 5144/7678/958 5143/7663/960 +f 5165/7583/916 5149/7679/959 5099/7664/961 +f 5167/7586/918 5143/7680/960 5097/7665/962 +f 5169/7588/920 5099/7681/961 5148/7666/963 +f 5175/7594/926 5171/7590/922 5097/7667/962 +f 5173/7592/924 5148/7682/963 5147/7669/965 +f 5181/7600/932 5141/7683/967 5140/7670/966 +f 5175/7594/926 5142/7684/964 5141/7671/967 +f 5155/7573/906 5183/7602/934 5147/7672/965 +f 5158/7576/909 5179/7598/930 5140/7674/966 +o Atlas_Missile +v -1.154849 5.312499 -0.478354 +v -0.795495 5.312499 -0.795495 +v -0.883883 5.312499 -0.883883 +v -1.125000 5.312499 0.000000 +v -1.154849 5.312499 0.478354 +v -1.039364 5.312499 0.430519 +v -1.250000 5.312499 0.000000 +v -1.039364 5.312499 -0.430519 +v 0.216506 8.812498 -1.125000 +v 0.000000 9.687498 -1.125000 +v 0.180586 8.812498 -1.089079 +v -0.125000 5.312499 -1.466506 +v 0.125000 5.312499 -1.466506 +v 0.000000 5.312499 -1.500000 +v -0.795495 5.312499 0.795495 +v -0.883883 5.312499 0.883883 +v -0.430519 5.312499 1.039364 +v 0.000000 5.312499 1.250000 +v -0.478354 5.312499 1.154849 +v 0.478354 5.312499 1.154849 +v 0.000000 5.312499 1.125000 +v 0.795495 5.312499 0.795495 +v 0.430519 5.312499 1.039364 +v 1.154849 5.312499 0.478354 +v 0.883883 5.312499 0.883884 +v 1.039364 5.312499 0.430519 +v 1.250000 5.312499 0.000000 +v 1.125000 5.312499 0.000000 +v 1.154849 5.312499 -0.478355 +v 0.795495 5.312499 -0.795495 +v 1.039364 5.312499 -0.430519 +v 0.478354 5.312499 -1.154849 +v 0.883884 5.312499 -0.883883 +v -0.478354 5.312499 -1.154849 +v -0.430519 5.312499 -1.039364 +v 0.000000 5.312499 -1.250000 +v 0.000000 5.312499 -1.125000 +v 0.430519 5.312499 -1.039364 +v 0.883883 2.687500 0.883884 +v 0.687126 2.687500 1.015353 +v 1.154849 2.687500 0.478354 +v 0.750000 2.687500 -1.250000 +v 0.687126 2.687500 -1.015352 +v 0.649519 2.687500 -1.625000 +v -0.649519 2.687500 -1.625000 +v 0.000000 2.687500 -2.000000 +v 0.375000 2.687500 -1.899519 +v -0.375000 2.687500 -1.899519 +v -0.750000 2.687500 -1.250000 +v -0.687126 2.687500 -1.015352 +v 0.000000 2.000000 -1.750000 +v 0.250000 2.000000 -1.683013 +v -0.250000 2.000000 -1.683013 +v 0.000000 2.000000 -0.750000 +v -0.250000 2.000000 -0.816987 +v 0.250000 2.000000 -0.816987 +v 0.500000 2.000000 -1.250000 +v 0.433013 2.000000 -1.000000 +v 0.433013 2.000000 -1.500000 +v -0.500000 2.000000 -1.250000 +v -0.433013 2.000000 -1.500000 +v -0.433013 2.000000 -1.000000 +v 0.000000 2.000000 -0.500000 +v 0.250000 2.000000 -0.433013 +v -0.250000 2.000000 -0.433013 +v 0.000000 2.000000 0.500000 +v -0.250000 2.000000 0.433013 +v 0.250000 2.000000 0.433013 +v 0.500000 2.000000 0.000000 +v 0.433013 2.000000 0.250000 +v 0.433013 2.000000 -0.250000 +v -0.500000 2.000000 -0.000000 +v -0.433013 2.000000 -0.250000 +v -0.433013 2.000000 0.250000 +v 1.250000 2.687500 0.000000 +v 1.154849 2.687500 -0.478355 +v -1.250000 2.687500 0.000000 +v -1.154849 2.687500 -0.478354 +v -1.154849 2.687500 0.478354 +v -0.883883 2.687500 -0.883883 +v 0.883884 2.687500 -0.883883 +v -0.125000 5.376628 -1.642699 +v 0.125000 5.376628 -1.642699 +v -0.216506 8.812498 1.125000 +v 0.000000 9.687498 1.125000 +v -0.180586 8.812498 1.089079 +v -0.750000 2.687500 1.250000 +v -0.687126 2.687500 1.015352 +v -0.649519 2.687500 1.625000 +v 0.649519 2.687500 1.625000 +v 0.000000 2.687500 2.000000 +v -0.375000 2.687500 1.899519 +v 0.375000 2.687500 1.899519 +v 0.750000 2.687500 1.250000 +v 0.000000 2.000000 1.750000 +v -0.250000 2.000000 1.683013 +v 0.250000 2.000000 1.683013 +v 0.000000 2.000000 0.750000 +v 0.250000 2.000000 0.816987 +v -0.250000 2.000000 0.816987 +v -0.500000 2.000000 1.250000 +v -0.433013 2.000000 1.000000 +v -0.433013 2.000000 1.500000 +v 0.500000 2.000000 1.250000 +v 0.433013 2.000000 1.500000 +v 0.433013 2.000000 1.000000 +v -0.883883 2.687500 0.883883 +v -0.478354 4.249999 -1.154849 +v 0.000000 12.812498 -1.125000 +v -0.430519 12.812498 -1.039364 +v 1.039364 12.812498 0.430519 +v -1.125000 12.812498 0.000000 +v 1.125000 12.812498 0.000000 +v -1.039364 12.812498 0.430519 +v 1.039364 12.812498 -0.430519 +v -0.795495 12.812498 0.795496 +v 0.795495 12.812498 -0.795494 +v -0.430519 12.812498 1.039364 +v 0.430519 12.812498 -1.039364 +v 0.000000 12.812498 1.125000 +v 0.430519 12.812498 1.039364 +v -0.795495 12.812498 -0.795494 +v 0.795495 12.812498 0.795495 +v -1.039364 12.812498 -0.430519 +v 0.562500 15.312498 0.000001 +v 0.519682 15.312498 -0.215259 +v 0.397748 15.312498 -0.397747 +v 0.215259 15.312498 -0.519681 +v 0.000000 15.312498 -0.562499 +v -0.215259 15.312498 -0.519681 +v -0.397748 15.312498 -0.397747 +v -0.519682 15.312498 -0.215258 +v -0.519682 15.312498 0.215260 +v -0.562500 15.312498 0.000001 +v -0.215259 15.312498 0.519683 +v -0.397748 15.312498 0.397749 +v 0.000000 15.312498 0.562501 +v 0.215259 15.312498 0.519683 +v 0.397747 15.312498 0.397749 +v 0.519682 15.312498 0.215261 +v 0.000000 16.437496 0.000001 +v 0.000000 4.249999 -1.750000 +v 0.250000 4.249999 -1.683013 +v -0.250000 4.249999 -1.683013 +v -0.433013 4.249999 -1.500000 +v -0.500000 4.249999 -1.250000 +v 0.433013 4.249999 -1.500000 +v 0.500000 4.249999 -1.250000 +v 0.478354 4.249999 -1.154849 +v 0.250000 5.312499 -1.250000 +v 0.216506 5.312499 -1.125000 +v 0.216506 5.312499 -1.375000 +v -0.216506 5.312499 -1.375000 +v -0.250000 5.312499 -1.250000 +v -0.216506 5.312499 -1.125000 +v -0.180586 5.312499 -1.089079 +v -0.216506 8.812498 -1.125000 +v -0.250000 8.812498 -1.250000 +v 0.180586 5.312499 -1.089079 +v 0.216506 8.812498 -1.375000 +v 0.250000 8.812498 -1.250000 +v -0.216506 8.812498 -1.375000 +v -0.125000 8.812498 -1.466506 +v 0.125000 8.812498 -1.466506 +v -0.180586 8.812498 -1.089079 +v 0.478354 4.249999 1.154849 +v 0.324760 2.687500 -1.437500 +v 0.187500 2.687500 -1.574759 +v 0.375000 2.687500 -1.250000 +v 0.324760 2.687500 -1.062500 +v 0.187500 2.687500 -0.925241 +v 0.000000 2.687500 -0.875000 +v 0.500000 2.375000 0.000000 +v 0.433013 2.375000 -0.250000 +v 0.000000 2.375000 0.500000 +v 0.250000 2.375000 0.433013 +v -0.500000 2.375000 0.000000 +v -0.433013 2.375000 0.250000 +v 0.250000 2.375000 -0.433013 +v 0.000000 2.375000 -0.500000 +v -0.250000 2.375000 -0.433013 +v 0.433013 2.375000 0.250000 +v -0.250000 2.375000 0.433013 +v -0.433013 2.375000 -0.250000 +v 0.324760 2.687500 -0.187500 +v 0.375000 2.687500 0.000000 +v 0.187500 2.687500 -0.324759 +v 0.000000 2.687500 -0.375000 +v -0.187500 2.687500 -0.324759 +v -0.324760 2.687500 -0.187500 +v -0.375000 2.687500 0.000000 +v -0.324760 2.687500 0.187500 +v -0.187500 2.687500 0.324759 +v 0.000000 2.687500 0.375000 +v 0.187500 2.687500 0.324759 +v 0.324760 2.687500 0.187500 +v 0.000000 2.687500 -1.625000 +v -0.187500 2.687500 -1.574759 +v -0.324760 2.687500 -1.437500 +v -0.375000 2.687500 -1.250000 +v -0.324760 2.687500 -1.062500 +v -0.187500 2.687500 -0.925241 +v 0.062500 5.687499 -1.466506 +v -0.062500 5.687499 -1.466506 +v 0.000000 4.249999 1.750000 +v -0.250000 4.249999 1.683013 +v 0.250000 4.249999 1.683013 +v 0.433013 4.249999 1.500000 +v 0.500000 4.249999 1.250000 +v -0.433013 4.249999 1.500000 +v -0.500000 4.249999 1.250000 +v -0.478354 4.249999 1.154849 +v -0.250000 5.312499 1.250000 +v -0.216506 5.312499 1.125000 +v -0.216506 5.312499 1.375000 +v 0.000000 5.312499 1.500000 +v 0.125000 5.312499 1.466506 +v 0.216506 5.312499 1.375000 +v 0.250000 5.312499 1.250000 +v 0.216506 5.312499 1.125000 +v 0.218750 5.437499 1.722636 +v -0.218750 6.562499 1.722636 +v -0.218750 5.437499 1.722636 +v 0.125000 7.437499 1.466506 +v -0.125000 7.437499 1.466506 +v 0.250000 7.437499 1.250000 +v 0.216506 7.437499 1.375000 +v 0.378886 6.562499 1.500000 +v -0.378886 5.312499 1.500000 +v 0.378886 6.562499 1.049635 +v 0.216506 7.437499 1.125000 +v 0.180586 7.437499 1.089079 +v 0.218750 6.562499 1.722636 +v -0.250000 8.812498 1.250000 +v -0.216506 8.812498 1.375000 +v -0.125000 8.812498 1.466506 +v 0.125000 8.812498 1.466506 +v 0.216506 8.812498 1.375000 +v 0.250000 8.812498 1.250000 +v 0.216506 8.812498 1.125000 +v 0.180586 8.812498 1.089079 +v -0.324760 2.687500 1.437500 +v -0.187500 2.687500 1.574759 +v -0.324760 2.687500 1.062500 +v -0.375000 2.687500 1.250000 +v -0.187500 2.687500 0.925241 +v 0.000000 2.687500 0.875000 +v 0.000000 2.687500 1.625000 +v 0.187500 2.687500 1.574759 +v 0.324759 2.687500 1.437500 +v 0.375000 2.687500 1.250000 +v 0.324759 2.687500 1.062500 +v 0.187500 2.687500 0.925241 +v -0.378886 6.562499 1.500000 +v -0.216506 7.437499 1.375000 +v -0.378886 5.312499 1.049635 +v 0.378886 5.312499 1.049635 +v 0.378886 5.312499 1.500000 +v -0.250000 7.437499 1.250000 +v -0.378886 6.562499 1.049635 +v -0.216506 7.437499 1.125000 +v -0.180586 7.437499 1.089079 +v 1.140000 12.093748 0.000000 +v 1.053223 10.124998 -0.436259 +v 1.053223 12.093748 -0.436259 +v 0.806102 12.093748 0.806102 +v 1.053223 10.124998 0.436259 +v 1.053223 12.093748 0.436259 +v -1.140000 12.093748 0.000000 +v -1.053223 10.124998 0.436259 +v -1.053223 12.093748 0.436259 +v -0.806102 12.093748 -0.806102 +v -1.053223 10.124998 -0.436259 +v -1.053223 12.093748 -0.436259 +v 0.806102 10.124998 -0.806102 +v 0.806102 12.093748 -0.806102 +v 1.140000 10.124998 0.000000 +v -0.806102 10.124998 0.806102 +v -0.806102 12.093748 0.806102 +v -1.140000 10.124998 0.000000 +v 0.145625 8.406248 1.475167 +v 0.225166 7.874999 1.380000 +v 0.225166 8.406248 1.380000 +v -0.145625 7.874999 1.475167 +v -0.145625 8.406248 1.475167 +v -0.225167 8.406248 1.380000 +v -0.145625 8.406248 -1.475167 +v -0.225167 7.874999 -1.380000 +v -0.225167 8.406248 -1.380000 +v 0.145625 7.874999 -1.475167 +v 0.145625 8.406248 -1.475167 +v 0.225166 8.406248 -1.380000 +v -0.125000 5.312499 1.466506 +v 0.806102 10.124998 0.806102 +v -0.806102 10.124998 -0.806102 +v 0.145625 7.874999 1.475167 +v -0.225167 7.874999 1.380000 +v -0.145625 7.874999 -1.475167 +v 0.225166 7.874999 -1.380000 +v -0.180586 5.312499 1.089079 +v 0.180586 5.312499 1.089079 +vt 0.107143 0.186667 +vt 0.071429 0.195556 +vt 0.071429 0.186667 +vt 0.142857 0.195556 +vt 0.178571 0.186667 +vt 0.178571 0.195556 +vt 0.142857 0.186667 +vt 0.107143 0.195556 +vt 0.576531 0.622222 +vt 0.576531 0.684444 +vt 0.571429 0.622222 +vt 0.790816 0.577778 +vt 0.770408 0.577778 +vt 0.780612 0.573333 +vt 0.214286 0.195556 +vt 0.214286 0.186667 +vt 0.250000 0.195556 +vt 0.285714 0.186667 +vt 0.250000 0.186667 +vt 0.321429 0.186667 +vt 0.285714 0.195556 +vt 0.357143 0.195556 +vt 0.321429 0.195556 +vt 0.392857 0.186667 +vt 0.357143 0.186667 +vt 0.392857 0.195556 +vt 0.428571 0.186667 +vt 0.428571 0.195556 +vt 0.464286 0.186667 +vt 0.500000 0.195556 +vt 0.464286 0.195556 +vt 0.535714 0.186667 +vt 0.500000 0.186667 +vt 0.035714 0.186667 +vt 0.035714 0.195556 +vt 0.000000 0.186667 +vt 0.571429 0.195556 +vt 0.535714 0.195556 +vt 0.744173 0.160632 +vt 0.733441 0.146640 +vt 0.777277 0.179900 +vt 0.918367 0.151111 +vt 0.899213 0.146640 +vt 0.948980 0.143966 +vt 0.948980 0.051590 +vt 0.979592 0.097778 +vt 0.971389 0.124444 +vt 0.971389 0.071111 +vt 0.918367 0.044444 +vt 0.899213 0.048915 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.816327 0.186667 +vt 0.855376 0.179900 +vt 0.816327 0.008889 +vt 0.855376 0.015655 +vt 0.777277 0.015655 +vt 0.888480 0.034924 +vt 0.888480 0.160632 +vt 0.790816 0.591111 +vt 0.770408 0.591111 +vt 0.668367 0.622222 +vt 0.668367 0.684444 +vt 0.663265 0.622222 +vt 0.714286 0.044444 +vt 0.733441 0.048915 +vt 0.683674 0.051590 +vt 0.683674 0.143966 +vt 0.653061 0.097778 +vt 0.661264 0.071111 +vt 0.661264 0.124444 +vt 0.714286 0.151111 +vt 0.877551 0.320000 +vt 0.872083 0.302222 +vt 0.872083 0.337778 +vt 0.795918 0.320000 +vt 0.801387 0.337778 +vt 0.801387 0.302222 +vt 0.836735 0.284444 +vt 0.816327 0.289208 +vt 0.857143 0.289208 +vt 0.836735 0.355556 +vt 0.857143 0.350792 +vt 0.816327 0.350792 +vt 0.744173 0.034924 +vt 0.000000 0.195556 +vt 0.571429 0.186667 +vt 0.040816 0.111111 +vt 0.061224 -0.000000 +vt 0.081633 -0.000000 +vt -0.000000 0.728889 +vt 0.035714 0.728889 +vt 0.392857 0.728889 +vt 0.142857 0.728889 +vt 0.428571 0.728889 +vt 0.178571 0.728889 +vt 0.464286 0.728889 +vt 0.214286 0.728889 +vt 0.500000 0.728889 +vt 0.250000 0.728889 +vt 0.535714 0.728889 +vt 0.571429 0.728889 +vt 0.285714 0.728889 +vt 0.321429 0.728889 +vt 0.071429 0.728889 +vt 0.357143 0.728889 +vt 0.107143 0.728889 +vt 0.438776 0.911111 +vt 0.474490 0.911111 +vt 0.510204 0.911111 +vt 0.545918 0.911111 +vt 0.010204 0.911111 +vt 0.045918 0.911111 +vt 0.081633 0.911111 +vt 0.117347 0.911111 +vt 0.168367 0.911111 +vt 0.153061 0.911111 +vt 0.188776 0.911111 +vt 0.239796 0.911111 +vt 0.224490 0.911111 +vt 0.260204 0.911111 +vt 0.295918 0.911111 +vt 0.331633 0.911111 +vt 0.367347 0.911111 +vt 0.403061 0.911111 +vt 0.489796 0.911111 +vt 0.482143 1.000000 +vt 0.232143 1.000000 +vt 0.525510 0.911111 +vt 0.517857 1.000000 +vt 0.275510 0.911111 +vt 0.267857 1.000000 +vt 0.025510 0.911111 +vt 0.017857 1.000000 +vt 0.561224 0.911111 +vt 0.553571 1.000000 +vt 0.311224 0.911111 +vt 0.303571 1.000000 +vt 0.061224 0.911111 +vt 0.053571 1.000000 +vt 0.346939 0.911111 +vt 0.339286 1.000000 +vt 0.096939 0.911111 +vt 0.089286 1.000000 +vt 0.382653 0.911111 +vt 0.375000 1.000000 +vt 0.132653 0.911111 +vt 0.125000 1.000000 +vt 0.418367 0.911111 +vt 0.410714 1.000000 +vt 0.160714 1.000000 +vt 0.454082 0.911111 +vt 0.446429 1.000000 +vt 0.204082 0.911111 +vt 0.196429 1.000000 +vt 0.653061 0.186667 +vt 0.678571 0.297778 +vt 0.658163 0.297778 +vt 0.683673 0.186667 +vt 0.709184 0.297778 +vt 0.688776 0.297778 +vt 0.714286 0.186667 +vt 0.739796 0.297778 +vt 0.719388 0.297778 +vt 0.744898 0.186667 +vt 0.770408 0.297778 +vt 0.750000 0.297778 +vt 0.785714 0.297778 +vt 0.775510 0.186667 +vt 0.795918 0.186667 +vt 0.622449 0.186667 +vt 0.647959 0.297778 +vt 0.627551 0.297778 +vt 0.591837 0.186667 +vt 0.617347 0.297778 +vt 0.596939 0.297778 +vt 0.581633 0.297778 +vt 0.591837 0.297778 +vt 0.591837 0.373333 +vt 0.581633 0.373333 +vt 0.602041 0.373333 +vt 0.632653 0.373333 +vt 0.693878 0.373333 +vt 0.673469 0.373333 +vt 0.724490 0.373333 +vt 0.755102 0.373333 +vt 0.775510 0.373333 +vt 0.785714 0.373333 +vt 0.663265 0.373333 +vt 0.658163 0.622222 +vt 0.658163 0.373333 +vt 0.647959 0.622222 +vt 0.647959 0.373333 +vt 0.576531 0.373333 +vt 0.571429 0.373333 +vt 0.607143 0.373333 +vt 0.596939 0.622222 +vt 0.596939 0.373333 +vt 0.586735 0.622222 +vt 0.586735 0.373333 +vt 0.637755 0.622222 +vt 0.637755 0.373333 +vt 0.627551 0.622222 +vt 0.627551 0.373333 +vt 0.581633 0.688889 +vt 0.591837 0.688889 +vt 0.607143 0.622222 +vt 0.602041 0.688889 +vt 0.632653 0.688889 +vt 0.642857 0.688889 +vt 0.653061 0.688889 +vt 0.663265 0.622222 +vt 0.658163 0.684444 +vt 0.612245 0.111111 +vt 0.571429 0.000000 +vt 0.591837 0.000000 +vt 0.571429 0.186667 +vt 0.612245 0.186667 +vt 0.653061 0.186667 +vt 0.040816 0.186667 +vt 0.081633 0.186667 +vt 0.122449 -0.000000 +vt 0.163265 0.000000 +vt 0.122449 0.186667 +vt 0.204082 0.000000 +vt 0.163265 0.186667 +vt 0.244898 -0.000000 +vt 0.204082 0.186667 +vt 0.367347 0.186667 +vt 0.326531 0.186667 +vt 0.367347 0.111111 +vt 0.408163 0.186667 +vt 0.387755 -0.000000 +vt 0.408163 -0.000000 +vt 0.448980 0.000000 +vt 0.489796 -0.000000 +vt 0.448980 0.186667 +vt 0.530612 -0.000000 +vt 0.489796 0.186667 +vt 0.530612 0.186667 +vt 0.948980 0.235556 +vt 0.964286 0.186667 +vt 0.964286 0.235556 +vt 0.918367 0.186667 +vt 0.933673 0.235556 +vt 0.918367 0.235556 +vt 0.887755 0.186667 +vt 0.903061 0.235556 +vt 0.887755 0.235556 +vt 0.903061 0.186667 +vt 0.933673 0.186667 +vt 0.933673 0.262222 +vt 0.948980 0.235556 +vt 0.948980 0.262222 +vt 0.887755 0.262222 +vt 0.903061 0.235556 +vt 0.903061 0.262222 +vt 0.841837 0.262222 +vt 0.857143 0.235556 +vt 0.857143 0.262222 +vt 0.964286 0.235556 +vt 0.964286 0.262222 +vt 0.795918 0.262222 +vt 0.811224 0.235556 +vt 0.811224 0.262222 +vt 0.918367 0.235556 +vt 0.918367 0.262222 +vt 0.872449 0.235556 +vt 0.872449 0.262222 +vt 0.979592 0.235556 +vt 0.979592 0.262222 +vt 0.826531 0.235556 +vt 0.826531 0.262222 +vt 0.933673 0.235556 +vt 0.887755 0.235556 +vt 0.841837 0.235556 +vt 0.948980 0.284444 +vt 0.933673 0.284444 +vt 0.964286 0.284444 +vt 0.979592 0.284444 +vt 0.811224 0.284444 +vt 0.795918 0.284444 +vt 0.826531 0.284444 +vt 0.841837 0.284444 +vt 0.857143 0.284444 +vt 0.872449 0.284444 +vt 0.887755 0.284444 +vt 0.903061 0.284444 +vt 0.918367 0.284444 +vt 0.979592 0.235556 +vt 0.795918 0.186667 +vt 0.811224 0.235556 +vt 0.795918 0.235556 +vt 0.811224 0.186667 +vt 0.826531 0.235556 +vt 0.826531 0.186667 +vt 0.841837 0.235556 +vt 0.841837 0.186667 +vt 0.857143 0.235556 +vt 0.857143 0.186667 +vt 0.872449 0.235556 +vt 0.872449 0.186667 +vt 0.770408 0.617778 +vt 0.755102 0.591111 +vt 0.806122 0.591111 +vt 0.790816 0.617778 +vt 0.775510 0.617778 +vt 0.785714 0.617778 +vt 0.617347 0.688889 +vt 0.653061 0.186667 +vt 0.678571 0.297778 +vt 0.658163 0.297778 +vt 0.683673 0.186667 +vt 0.709184 0.297778 +vt 0.688776 0.297778 +vt 0.714286 0.186667 +vt 0.739796 0.297778 +vt 0.719388 0.297778 +vt 0.744898 0.186667 +vt 0.770408 0.297778 +vt 0.750000 0.297778 +vt 0.785714 0.297778 +vt 0.775510 0.186667 +vt 0.795918 0.186667 +vt 0.622449 0.186667 +vt 0.647959 0.297778 +vt 0.627551 0.297778 +vt 0.591837 0.186667 +vt 0.617347 0.297778 +vt 0.596939 0.297778 +vt 0.581633 0.297778 +vt 0.591837 0.297778 +vt 0.591837 0.373333 +vt 0.581633 0.373333 +vt 0.602041 0.373333 +vt 0.632653 0.373333 +vt 0.693878 0.373333 +vt 0.673469 0.373333 +vt 0.724490 0.373333 +vt 0.755102 0.373333 +vt 0.775510 0.373333 +vt 0.785714 0.373333 +vt 0.760204 0.382222 +vt 0.724490 0.462222 +vt 0.724490 0.382222 +vt 0.760204 0.524444 +vt 0.724490 0.524444 +vt 0.798469 0.524444 +vt 0.785714 0.524444 +vt 0.780612 0.462222 +vt 0.755102 0.555556 +vt 0.806122 0.573333 +vt 0.765306 0.573333 +vt 0.816327 0.462222 +vt 0.811224 0.524444 +vt 0.816327 0.524444 +vt 0.765306 0.524444 +vt 0.760204 0.462222 +vt 0.678571 0.622222 +vt 0.673469 0.688889 +vt 0.688776 0.622222 +vt 0.683673 0.688889 +vt 0.698980 0.622222 +vt 0.693878 0.688889 +vt 0.719388 0.622222 +vt 0.729592 0.622222 +vt 0.724490 0.688889 +vt 0.739796 0.622222 +vt 0.734694 0.688889 +vt 0.750000 0.622222 +vt 0.744898 0.688889 +vt 0.755102 0.622222 +vt 0.750000 0.684444 +vt 0.857143 0.235556 +vt 0.872449 0.186667 +vt 0.872449 0.235556 +vt 0.826531 0.235556 +vt 0.841837 0.186667 +vt 0.841837 0.235556 +vt 0.795918 0.186667 +vt 0.811224 0.235556 +vt 0.795918 0.235556 +vt 0.811224 0.186667 +vt 0.887755 0.235556 +vt 0.887755 0.186667 +vt 0.903061 0.235556 +vt 0.903061 0.186667 +vt 0.918367 0.235556 +vt 0.933673 0.186667 +vt 0.933673 0.235556 +vt 0.948980 0.235556 +vt 0.948980 0.186667 +vt 0.964286 0.235556 +vt 0.964286 0.186667 +vt 0.979592 0.235556 +vt 0.709184 0.688889 +vt 0.704082 0.462222 +vt 0.719388 0.524444 +vt 0.704082 0.524444 +vt 0.285714 0.111111 +vt 0.285714 0.186667 +vt 0.244898 0.186667 +vt 0.265306 0.000000 +vt 0.668367 0.373333 +vt 0.704082 0.373333 +vt 0.816327 0.373333 +vt 0.780612 0.373333 +vt 0.686224 0.524444 +vt 0.698980 0.524444 +vt 0.668367 0.462222 +vt 0.673469 0.524444 +vt 0.668367 0.524444 +vt 0.750000 0.524444 +vt 0.739796 0.524444 +vt 0.729592 0.524444 +vt 0.719388 0.524444 +vt 0.678571 0.524444 +vt 0.668367 0.524444 +vt 0.663265 0.524444 +vt 0.816327 0.524444 +vt 0.755102 0.524444 +vt 0.688776 0.524444 +vt 0.714286 0.968889 +vt 0.785714 0.688889 +vt 0.785714 0.968889 +vt 0.571429 0.968889 +vt 0.642857 0.688889 +vt 0.642857 0.968889 +vt 0.714286 0.968889 +vt 0.785714 0.688889 +vt 0.785714 0.968889 +vt 0.571429 0.968889 +vt 0.642857 0.688889 +vt 0.642857 0.968889 +vt 0.857143 0.688889 +vt 0.857143 0.968889 +vt 0.714286 0.688889 +vt 0.857143 0.688889 +vt 0.857143 0.968889 +vt 0.714286 0.688889 +vt 0.923469 0.764444 +vt 0.943878 0.688889 +vt 0.943878 0.764444 +vt 0.877551 0.688889 +vt 0.877551 0.764444 +vt 0.857143 0.764444 +vt 0.923469 0.764444 +vt 0.943878 0.688889 +vt 0.943878 0.764444 +vt 0.877551 0.688889 +vt 0.877551 0.764444 +vt 0.857143 0.764444 +vt 0.775510 0.297778 +vt 0.571429 0.186667 +vt 0.612245 0.373333 +vt 0.642857 0.373333 +vt 0.704082 0.373333 +vt 0.663265 0.373333 +vt 0.734694 0.373333 +vt 0.765306 0.373333 +vt 0.948980 0.186667 +vt 0.795918 0.235556 +vt 0.979592 0.186667 +vt 0.775510 0.297778 +vt 0.571429 0.186667 +vt 0.612245 0.373333 +vt 0.642857 0.373333 +vt 0.704082 0.373333 +vt 0.663265 0.373333 +vt 0.734694 0.373333 +vt 0.765306 0.373333 +vt 0.816327 0.555556 +vt 0.780612 0.524444 +vt 0.857143 0.186667 +vt 0.826531 0.186667 +vt 0.918367 0.186667 +vt 0.979592 0.186667 +vt 0.755102 0.524444 +vt 0.698980 0.524444 +vt 0.571429 0.688889 +vt 0.571429 0.688889 +vt 0.923469 0.688889 +vt 0.857143 0.688889 +vt 0.923469 0.688889 +vt 0.857143 0.688889 +vn 0.0000 1.0000 -0.0000 +vn 0.6965 0.1723 0.6965 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.9397 -0.3420 +vn -0.6965 0.1723 -0.6965 +vn -0.5144 -0.0000 -0.8575 +vn -0.5556 0.0000 -0.8315 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 -0.9239 +vn 1.0000 -0.0000 0.0000 +vn 0.9239 -0.0000 0.3827 +vn -0.9239 -0.0000 0.3827 +vn -1.0000 -0.0000 0.0000 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 -0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 -0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 -0.0000 1.0000 +vn 0.3827 -0.0000 0.9239 +vn 0.7071 -0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9013 0.2195 -0.3734 +vn 0.9436 0.3312 -0.0000 +vn 0.9756 0.2195 -0.0000 +vn 0.6899 0.2195 -0.6899 +vn 0.8717 0.3312 -0.3611 +vn 0.3734 0.2195 -0.9013 +vn 0.6672 0.3312 -0.6672 +vn 0.0000 0.2195 -0.9756 +vn 0.3611 0.3312 -0.8717 +vn -0.3733 0.2195 -0.9013 +vn -0.0000 0.3312 -0.9436 +vn -0.6899 0.2195 -0.6899 +vn -0.3611 0.3312 -0.8717 +vn -0.9013 0.2195 -0.3733 +vn -0.6672 0.3312 -0.6672 +vn -0.9756 0.2195 0.0000 +vn -0.8717 0.3312 -0.3611 +vn -0.8717 0.3312 0.3611 +vn -0.9436 0.3312 -0.0000 +vn -0.6899 0.2195 0.6899 +vn -0.9013 0.2195 0.3733 +vn -0.3611 0.3312 0.8717 +vn -0.6672 0.3312 0.6672 +vn -0.0000 0.2195 0.9756 +vn -0.3734 0.2195 0.9013 +vn 0.3734 0.2195 0.9013 +vn -0.0000 0.3312 0.9436 +vn 0.6899 0.2195 0.6899 +vn 0.3611 0.3312 0.8717 +vn 0.9013 0.2195 0.3733 +vn 0.6672 0.3312 0.6672 +vn 0.8717 0.3312 0.3611 +vn 0.4937 0.1580 -0.8551 +vn -0.0000 0.1925 -0.9813 +vn 0.4906 0.1925 -0.8498 +vn -0.0000 0.1580 -0.9874 +vn -0.4906 0.1925 -0.8498 +vn -0.4937 0.1580 -0.8551 +vn -0.8498 0.1925 -0.4906 +vn -0.8551 0.1580 -0.4937 +vn -0.9811 0.1926 -0.0186 +vn -0.9568 0.1891 0.2208 +vn -0.9876 0.1569 -0.0007 +vn -0.9549 0.1504 0.2559 +vn 0.8551 0.1580 -0.4937 +vn 0.8498 0.1925 -0.4906 +vn 0.9876 0.1569 -0.0007 +vn 0.9811 0.1926 -0.0186 +vn 0.9568 0.1891 0.2208 +vn 0.9730 0.2306 -0.0011 +vn 0.9412 0.2249 0.2522 +vn 0.8430 0.2290 -0.4867 +vn -0.0000 0.2290 -0.9734 +vn -0.4867 0.2290 -0.8430 +vn -0.8430 0.2290 -0.4867 +vn -0.9730 0.2306 -0.0011 +vn -0.9412 0.2249 0.2522 +vn -0.8658 0.1046 0.4893 +vn -0.8660 -0.0000 0.5000 +vn -0.9905 0.1370 -0.0100 +vn 0.8660 0.0000 0.5000 +vn 0.8497 0.1670 -0.5001 +vn 0.8660 0.0000 -0.5000 +vn 0.9905 0.1370 -0.0100 +vn 0.9043 0.0825 0.4189 +vn 0.8660 0.0001 0.5000 +vn -0.8497 0.1670 -0.5001 +vn -0.8660 0.0000 -0.5000 +vn -0.3745 0.1870 -0.9082 +vn -0.0746 0.6706 -0.7381 +vn 0.3745 0.1870 -0.9082 +vn -0.7043 0.0895 0.7043 +vn 0.5144 -0.0000 -0.8575 +vn 0.5556 -0.0000 -0.8315 +vn 0.1951 0.0000 -0.9808 +vn -0.1951 -0.0000 -0.9808 +vn 0.1951 -0.0000 0.9808 +vn 0.5144 0.0000 0.8575 +vn 0.5556 0.0000 0.8315 +vn 0.8521 0.1789 -0.4919 +vn 0.4919 0.1789 -0.8521 +vn 0.8521 0.1789 0.4919 +vn 0.9839 0.1789 0.0000 +vn 0.0000 0.1789 0.9839 +vn 0.4919 0.1789 0.8521 +vn 0.5000 -0.0000 0.8660 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn -0.5000 -0.0000 0.8660 +vn 0.9285 0.3714 0.0000 +vn 0.8041 0.3714 -0.4642 +vn 0.4642 0.3714 -0.8041 +vn -0.0000 0.3714 -0.9285 +vn -0.4642 0.3714 -0.8041 +vn -0.8041 0.3714 -0.4642 +vn -0.9285 0.3714 -0.0000 +vn -0.8041 0.3714 0.4642 +vn -0.4642 0.3714 0.8041 +vn -0.0000 0.3714 0.9285 +vn 0.4642 0.3714 0.8041 +vn 0.8041 0.3714 0.4642 +vn -0.0000 0.1789 -0.9839 +vn -0.4919 0.1789 -0.8521 +vn -0.8521 0.1789 -0.4919 +vn -0.9839 0.1789 -0.0000 +vn -0.8521 0.1789 0.4919 +vn -0.4919 0.1789 0.8521 +vn 0.6886 0.4574 -0.5627 +vn 0.2733 0.5153 -0.8122 +vn 0.9846 0.1641 0.0597 +vn -0.6886 0.4574 -0.5627 +vn -0.9846 0.1641 0.0597 +vn -0.2733 0.5153 -0.8122 +vn -0.4937 0.1580 0.8551 +vn 0.0000 0.1925 0.9813 +vn -0.4906 0.1925 0.8498 +vn 0.0000 0.1580 0.9874 +vn 0.4906 0.1925 0.8498 +vn 0.4937 0.1580 0.8551 +vn 0.8498 0.1925 0.4906 +vn 0.8551 0.1580 0.4937 +vn 0.9811 0.1926 0.0186 +vn 0.9568 0.1891 -0.2208 +vn 0.9876 0.1569 0.0007 +vn 0.9549 0.1504 -0.2559 +vn -0.8551 0.1580 0.4937 +vn -0.8498 0.1925 0.4906 +vn -0.9876 0.1569 0.0007 +vn -0.9811 0.1926 0.0186 +vn -0.9568 0.1891 -0.2208 +vn -0.9730 0.2306 0.0011 +vn -0.9412 0.2249 -0.2522 +vn -0.8430 0.2290 0.4867 +vn 0.0000 0.2290 0.9734 +vn 0.4867 0.2290 0.8430 +vn 0.8430 0.2290 0.4867 +vn 0.9730 0.2306 0.0011 +vn 0.9412 0.2249 -0.2522 +vn 0.5098 -0.0000 0.8603 +vn -0.4475 0.1436 0.8827 +vn -0.5098 -0.0000 0.8603 +vn 0.3856 0.2768 0.8802 +vn -0.3856 0.2768 0.8802 +vn 0.9796 0.2009 -0.0044 +vn 0.8462 0.2260 0.4826 +vn 0.9417 0.1046 0.3198 +vn 0.0000 -0.9802 0.1978 +vn 0.0000 -0.8720 0.4896 +vn 0.9968 0.0762 -0.0244 +vn 0.8471 0.1996 -0.4925 +vn 0.6944 0.1887 -0.6944 +vn 0.4475 0.1436 0.8827 +vn -0.9043 0.0825 -0.4189 +vn -0.9905 0.1370 0.0100 +vn 0.0746 0.6706 0.7381 +vn -0.8497 0.1670 0.5001 +vn -0.3745 0.1870 0.9082 +vn 0.3745 0.1870 0.9082 +vn 0.8497 0.1670 0.5001 +vn 0.9905 0.1370 0.0100 +vn 0.8658 0.1046 -0.4893 +vn 0.7043 0.0895 -0.7043 +vn -0.9417 0.1046 0.3198 +vn -0.8462 0.2260 0.4826 +vn -0.5144 -0.0000 0.8575 +vn -0.1951 0.0000 0.9808 +vn -0.5556 -0.0000 0.8315 +vn -0.9661 -0.0000 0.2581 +vn 0.9661 -0.0000 0.2581 +vn -0.9796 0.2009 -0.0044 +vn -0.9968 0.0762 -0.0244 +vn -0.8471 0.1996 -0.4926 +vn -0.6944 0.1887 -0.6944 +vn 0.8315 0.0000 0.5556 +vn -0.8315 -0.0000 -0.5556 +vn 0.8315 -0.0000 -0.5556 +vn -0.8315 -0.0000 0.5556 +vn 0.4235 0.0000 0.9059 +vn 0.7673 0.0000 0.6413 +vn -0.4235 0.0000 0.9059 +vn -0.7673 0.0000 0.6413 +vn -0.4235 0.0000 -0.9059 +vn -0.7673 0.0000 -0.6413 +vn 0.4235 0.0000 -0.9059 +vn 0.7673 0.0000 -0.6413 +vn 0.9549 0.1504 0.2559 +vn 0.4867 0.2290 -0.8430 +vn -0.9549 0.1504 -0.2559 +vn -0.4867 0.2290 0.8430 +s off +f 5202/7685/969 5203/7686/969 5204/7687/969 +f 5205/7688/969 5206/7689/969 5207/7690/969 +f 5208/7691/969 5209/7692/969 5202/7685/969 +f 5210/7693/970 5211/7694/970 5212/7695/970 +f 5213/7696/969 5214/7697/969 5215/7698/969 +f 5216/7699/969 5206/7689/969 5217/7700/969 +f 5217/7700/969 5218/7701/969 5216/7699/969 +f 5219/7702/969 5218/7701/969 5220/7703/969 +f 5221/7704/969 5222/7705/969 5219/7702/969 +f 5221/7704/969 5223/7706/969 5224/7707/969 +f 5225/7708/969 5223/7706/969 5226/7709/969 +f 5227/7710/969 5228/7711/969 5229/7712/969 +f 5230/7713/969 5229/7712/969 5228/7711/969 +f 5230/7713/969 5231/7714/969 5232/7715/969 +f 5233/7716/969 5231/7714/969 5234/7717/969 +f 5235/7718/969 5203/7686/969 5236/7719/969 +f 5236/7719/969 5237/7720/969 5235/7718/969 +f 5233/7716/969 5238/7721/969 5239/7722/969 +f 5240/7723/971 5241/7724/971 5242/7725/971 +f 5243/7726/971 5244/7727/971 5245/7728/971 +f 5244/7727/971 5246/7729/971 5245/7728/971 +f 5245/7728/971 5247/7730/971 5248/7731/971 +f 5249/7732/971 5247/7730/971 5246/7729/971 +f 5250/7733/971 5246/7729/971 5251/7734/971 +f 5245/7728/971 5246/7729/971 5247/7730/971 +f 5252/7735/971 5253/7736/971 5254/7737/971 +f 5255/7738/971 5256/7739/971 5257/7740/971 +f 5258/7741/971 5259/7742/971 5260/7743/971 +f 5261/7744/971 5262/7745/971 5263/7746/971 +f 5263/7746/971 5257/7740/971 5256/7739/971 +f 5254/7737/971 5260/7743/971 5262/7745/971 +f 5263/7746/971 5260/7743/971 5259/7742/971 +f 5264/7747/971 5265/7748/971 5266/7749/971 +f 5267/7750/971 5268/7751/971 5269/7752/971 +f 5270/7753/971 5271/7754/971 5272/7755/971 +f 5273/7756/971 5274/7757/971 5275/7758/971 +f 5275/7758/971 5269/7752/971 5268/7751/971 +f 5266/7749/971 5272/7755/971 5274/7757/971 +f 5275/7758/971 5272/7755/971 5271/7754/971 +f 5276/7759/971 5242/7725/971 5277/7760/971 +f 5278/7761/971 5279/7762/971 5280/7763/971 +f 5281/7764/971 5251/7734/971 5279/7762/971 +f 5282/7765/971 5277/7760/971 5244/7727/971 +f 5277/7760/971 5251/7734/971 5244/7727/971 +f 5280/7763/971 5277/7760/971 5242/7725/971 +f 5214/7697/972 5283/7766/972 5284/7767/972 +f 5285/7768/973 5286/7769/973 5287/7770/973 +f 5288/7771/971 5289/7772/971 5290/7773/971 +f 5289/7772/971 5291/7774/971 5290/7773/971 +f 5290/7773/971 5292/7775/971 5293/7776/971 +f 5294/7777/971 5292/7775/971 5291/7774/971 +f 5295/7778/971 5291/7774/971 5241/7724/971 +f 5290/7773/971 5291/7774/971 5292/7775/971 +f 5296/7779/971 5297/7780/971 5298/7781/971 +f 5299/7782/971 5300/7783/971 5301/7784/971 +f 5302/7785/971 5303/7786/971 5304/7787/971 +f 5305/7788/971 5306/7789/971 5307/7790/971 +f 5300/7783/971 5303/7786/971 5301/7784/971 +f 5298/7781/971 5304/7787/971 5306/7789/971 +f 5307/7790/971 5304/7787/971 5303/7786/971 +f 5308/7791/971 5280/7763/971 5289/7772/971 +f 5289/7772/971 5242/7725/971 5241/7724/971 +f 5202/7685/969 5209/7692/969 5203/7686/969 +f 5205/7688/969 5208/7691/969 5206/7689/969 +f 5208/7691/969 5205/7688/969 5209/7692/969 +f 5216/7699/969 5207/7690/969 5206/7689/969 +f 5217/7700/969 5220/7703/969 5218/7701/969 +f 5219/7702/969 5222/7705/969 5218/7701/969 +f 5221/7704/969 5224/7707/969 5222/7705/969 +f 5221/7704/969 5226/7709/969 5223/7706/969 +f 5225/7708/969 5227/7710/969 5223/7706/969 +f 5227/7710/969 5225/7708/969 5228/7711/969 +f 5230/7713/969 5232/7715/969 5229/7712/969 +f 5230/7713/969 5234/7717/969 5231/7714/969 +f 5233/7716/969 5239/7722/969 5231/7714/969 +f 5235/7718/969 5204/7687/969 5203/7686/969 +f 5236/7719/969 5238/7792/969 5237/7720/969 +f 5233/7716/969 5237/7793/969 5238/7721/969 +f 5244/7727/971 5251/7734/971 5246/7729/971 +f 5263/7746/971 5259/7742/971 5257/7740/971 +f 5254/7737/971 5253/7736/971 5260/7743/971 +f 5263/7746/971 5262/7745/971 5260/7743/971 +f 5275/7758/971 5271/7754/971 5269/7752/971 +f 5266/7749/971 5265/7748/971 5272/7755/971 +f 5275/7758/971 5274/7757/971 5272/7755/971 +f 5277/7760/971 5279/7762/971 5251/7734/971 +f 5280/7763/971 5279/7762/971 5277/7760/971 +f 5214/7697/972 5213/7696/972 5283/7766/972 +f 5289/7772/971 5241/7724/971 5291/7774/971 +f 5300/7783/971 5307/7790/971 5303/7786/971 +f 5298/7781/971 5297/7780/971 5304/7787/971 +f 5307/7790/971 5306/7789/971 5304/7787/971 +f 5289/7772/971 5280/7763/971 5242/7725/971 +s 1 +f 5309/7794/974 5251/7795/975 5281/7796/976 +f 5310/7797/977 5236/7719/978 5311/7798/978 +f 5229/7712/979 5312/7799/980 5227/7710/980 +f 5207/7690/981 5313/7800/982 5205/7688/982 +f 5232/7715/983 5314/7801/979 5229/7712/979 +f 5216/7699/984 5315/7802/981 5207/7690/981 +f 5231/7714/985 5316/7803/983 5232/7715/983 +f 5218/7701/986 5317/7804/984 5216/7699/984 +f 5239/7722/987 5318/7805/985 5231/7714/985 +f 5222/7705/988 5319/7806/986 5218/7701/986 +f 5320/7807/987 5238/7721/977 5310/7808/977 +f 5224/7707/989 5321/7809/988 5222/7705/988 +f 5203/7686/976 5311/7798/978 5236/7719/978 +f 5223/7706/990 5322/7810/989 5224/7707/989 +f 5209/7692/991 5323/7811/976 5203/7686/976 +f 5227/7710/980 5324/7812/990 5223/7706/990 +f 5205/7688/982 5325/7813/991 5209/7692/991 +f 5316/7803/992 5326/7814/993 5314/7801/994 +f 5318/7805/995 5327/7815/996 5316/7803/992 +f 5320/7807/997 5328/7816/998 5318/7805/995 +f 5310/7808/999 5329/7817/1000 5320/7807/997 +f 5311/7798/1001 5330/7818/1002 5310/7797/999 +f 5323/7811/1003 5331/7819/1004 5311/7798/1001 +f 5325/7813/1005 5332/7820/1006 5323/7811/1003 +f 5313/7800/1007 5333/7821/1008 5325/7813/1005 +f 5313/7800/1007 5334/7822/1009 5335/7823/1010 +f 5317/7804/1011 5334/7824/1009 5315/7802/1012 +f 5317/7804/1011 5336/7825/1013 5337/7826/1014 +f 5321/7809/1015 5336/7827/1013 5319/7806/1016 +f 5322/7810/1017 5338/7828/1018 5321/7809/1015 +f 5324/7812/1019 5339/7829/1020 5322/7810/1017 +f 5312/7799/1021 5340/7830/1022 5324/7812/1019 +f 5314/7801/994 5341/7831/1023 5312/7799/1021 +f 5327/7815/996 5328/7832/998 5342/7833/969 +f 5337/7826/1014 5336/7825/1013 5342/7834/969 +f 5328/7816/998 5329/7835/1000 5342/7836/969 +f 5336/7827/1013 5338/7837/1018 5342/7838/969 +f 5330/7818/1002 5331/7839/1004 5342/7840/969 +f 5329/7817/1000 5330/7841/1002 5342/7842/969 +f 5338/7828/1018 5339/7843/1020 5342/7844/969 +f 5331/7819/1004 5332/7845/1006 5342/7846/969 +f 5339/7829/1020 5340/7847/1022 5342/7848/969 +f 5332/7820/1006 5333/7849/1008 5342/7850/969 +f 5340/7830/1022 5341/7851/1023 5342/7852/969 +f 5333/7821/1008 5335/7853/1010 5342/7854/969 +f 5341/7831/1023 5326/7855/993 5342/7856/969 +f 5335/7823/1010 5334/7822/1009 5342/7857/969 +f 5326/7814/993 5327/7858/996 5342/7859/969 +f 5334/7824/1009 5337/7860/1014 5342/7861/969 +f 5248/7862/1024 5343/7863/1025 5344/7864/1026 +f 5247/7865/1027 5345/7866/1028 5343/7867/1025 +f 5249/7868/1029 5346/7869/1030 5345/7870/1028 +f 5246/7871/1031 5347/7872/1032 5346/7873/1030 +f 5309/7874/1033 5250/7875/1034 5251/7876/1035 +f 5245/7877/1036 5344/7878/1026 5348/7879/1037 +f 5243/7880/1038 5348/7881/1037 5349/7882/1039 +f 5350/7883/1040 5243/7880/1038 5349/7884/1039 +f 5350/7883/1040 5351/7885/1041 5352/7886/1042 +f 5348/7881/1037 5351/7887/1041 5349/7882/1039 +f 5344/7878/1026 5353/7888/1043 5348/7879/1037 +f 5345/7866/1028 5215/7889/1044 5343/7867/1025 +f 5215/7890/1044 5344/7864/1026 5343/7863/1025 +f 5346/7869/1030 5213/7891/1045 5345/7870/1028 +f 5347/7872/1032 5354/7892/1046 5346/7873/1030 +f 5355/7893/1047 5309/7874/1033 5356/7894/1048 +f 5357/7895/984 5358/7896/1049 5356/7897/1050 +f 5356/7897/1050 5359/7898/1051 5355/7899/982 +f 5352/7900/1052 5212/7695/990 5360/7901/990 +f 5214/7902/987 5361/7903/1053 5353/7904/1054 +f 5353/7904/1054 5362/7905/1055 5351/7906/979 +f 5351/7906/979 5210/7693/1056 5352/7900/1057 +f 5355/7899/982 5363/7907/1058 5354/7908/1059 +f 5354/7908/1059 5364/7909/1060 5213/7910/978 +f 5210/7693/1056 5362/7905/1055 5211/7911/1061 +f 5362/7905/1055 5361/7903/1053 5211/7912/1061 +f 5361/7903/1053 5365/7913/1062 5211/7914/1061 +f 5364/7909/1060 5363/7907/1058 5211/7915/1061 +f 5363/7907/1058 5359/7898/1051 5211/7916/1061 +f 5359/7898/1051 5358/7896/1049 5211/7917/1061 +f 5358/7896/1049 5366/7918/1063 5211/7919/1061 +f 5350/7920/1064 5282/7921/985 5244/7922/1065 +f 5234/7923/985 5350/7920/1064 5233/7924/987 +f 5233/7924/987 5350/7920/1064 5237/7925/1066 +f 5237/7720/1067 5309/7794/974 5235/7926/978 +f 5204/7927/976 5309/7794/974 5281/7796/976 +f 5279/7928/991 5204/7927/976 5281/7796/976 +f 5278/7929/982 5202/7930/991 5279/7928/991 +f 5280/7931/981 5208/7932/982 5278/7929/982 +f 5308/7933/984 5206/7934/981 5280/7931/981 +f 5221/7935/989 5219/7936/1068 5367/7937/1069 +f 5367/7937/1069 5226/7938/990 5221/7935/989 +f 5367/7937/1069 5241/7939/1070 5240/7940/990 +f 5242/7941/980 5226/7938/990 5240/7940/990 +f 5276/7942/979 5225/7943/980 5242/7941/980 +f 5277/7944/983 5228/7945/979 5276/7942/979 +f 5282/7921/985 5230/7946/983 5277/7944/983 +f 5368/7947/1071 5253/7948/1072 5369/7949/1072 +f 5259/7950/1073 5370/7951/1074 5371/7952/1073 +f 5255/7953/1075 5372/7954/1076 5373/7955/1075 +f 5257/7956/1076 5371/7952/1073 5372/7954/1076 +f 5258/7957/1074 5368/7947/1071 5370/7951/1074 +f 5374/7958/979 5272/7959/1054 5375/7960/1054 +f 5376/7961/988 5269/7962/1077 5377/7963/1077 +f 5378/7964/982 5275/7965/1050 5379/7966/1050 +f 5375/7960/1054 5265/7967/1078 5380/7968/1078 +f 5381/7969/977 5266/7970/1079 5382/7971/1079 +f 5377/7963/1077 5271/7972/1052 5383/7973/1052 +f 5379/7966/1050 5268/7974/1080 5384/7975/1080 +f 5380/7968/1078 5264/7976/977 5381/7977/977 +f 5382/7971/1079 5274/7978/1059 5385/7979/1059 +f 5383/7973/1052 5270/7980/979 5374/7958/979 +f 5384/7975/1080 5267/7981/988 5376/7961/988 +f 5385/7979/1059 5273/7982/982 5378/7964/982 +f 5374/7958/1081 5386/7983/1082 5387/7984/1081 +f 5375/7960/1082 5388/7985/1083 5386/7983/1082 +f 5380/7968/1083 5389/7986/1084 5388/7985/1083 +f 5381/7969/1084 5390/7987/1085 5389/7988/1084 +f 5382/7971/1085 5391/7989/1086 5390/7987/1085 +f 5385/7979/1086 5392/7990/1087 5391/7989/1086 +f 5378/7964/1087 5393/7991/1088 5392/7990/1087 +f 5379/7966/1088 5394/7992/1089 5393/7991/1088 +f 5384/7975/1089 5395/7993/1090 5394/7992/1089 +f 5395/7993/1090 5377/7963/1091 5396/7994/1091 +f 5377/7963/1091 5397/7995/1092 5396/7994/1091 +f 5383/7973/1092 5387/7984/1081 5397/7995/1092 +f 5253/7948/1072 5398/7996/1093 5369/7949/1072 +f 5252/7997/1093 5399/7998/1094 5398/7999/1093 +f 5254/8000/1094 5400/8001/1095 5399/7998/1094 +f 5262/8002/1095 5401/8003/1096 5400/8001/1095 +f 5261/8004/1096 5402/8005/1097 5401/8003/1096 +f 5263/8006/1097 5403/8007/1098 5402/8005/1097 +f 5256/8008/1098 5373/7955/1075 5403/8007/1098 +f 5284/7767/1099 5404/8009/1100 5214/8010/1101 +f 5283/7766/1102 5213/8011/1103 5405/8012/1104 +f 5404/8013/1100 5283/7766/1102 5405/8014/1104 +f 5211/8015/1061 5365/7913/1062 5364/7909/1060 +f 5365/7913/1062 5213/7910/978 5364/7909/1060 +f 5293/8016/1105 5406/8017/1106 5407/8018/1107 +f 5292/8019/1108 5408/8020/1109 5406/8021/1106 +f 5294/8022/1110 5409/8023/1111 5408/8024/1109 +f 5291/8025/1112 5410/8026/1113 5409/8027/1111 +f 5367/8028/1114 5295/8029/1115 5241/8030/1116 +f 5290/8031/1117 5407/8032/1107 5411/8033/1118 +f 5288/8034/1119 5411/8035/1118 5412/8036/1120 +f 5413/8037/1121 5288/8034/1119 5412/8038/1120 +f 5413/8037/1121 5414/8039/1122 5415/8040/1123 +f 5411/8035/1118 5414/8041/1122 5412/8036/1120 +f 5407/8032/1107 5416/8042/1124 5411/8033/1118 +f 5408/8020/1109 5417/8043/1125 5406/8021/1106 +f 5417/8044/1125 5407/8018/1107 5406/8017/1106 +f 5409/8023/1111 5418/8045/1126 5408/8024/1109 +f 5410/8026/1113 5419/8046/1127 5409/8027/1111 +f 5420/8047/1128 5367/8028/1114 5421/8048/1129 +f 5422/8049/1130 5423/8050/1131 5424/8051/1132 +f 5423/8050/1131 5425/8052/1133 5426/8053/1134 +f 5427/8054/1135 5428/8055/1136 5429/8056/1137 +f 5430/8057/1138 5422/8058/1139 5424/8059/1139 +f 5427/8054/1135 5431/8060/1140 5432/8061/1141 +f 5433/8062/1142 5432/8061/1141 5431/8060/1140 +f 5429/8056/1137 5425/8063/1133 5434/8064/1143 +f 5431/8060/1140 5427/8054/1135 5429/8056/1137 +f 5285/7768/1144 5435/8065/1145 5286/8066/1146 +f 5435/8065/1145 5436/8067/1147 5286/8068/1146 +f 5436/8067/1147 5437/8069/1148 5286/8070/1146 +f 5438/8071/1149 5439/8072/1150 5286/8073/1146 +f 5439/8072/1150 5440/8074/1151 5286/8075/1146 +f 5440/8074/1151 5441/8076/1152 5286/8077/1146 +f 5441/8076/1152 5442/8078/1153 5286/8079/1146 +f 5443/8080/1097 5297/8081/1098 5444/8082/1098 +f 5445/8083/1095 5302/8084/1096 5446/8085/1096 +f 5299/8086/1093 5447/8087/1094 5448/8088/1093 +f 5301/8089/1094 5445/8083/1095 5447/8087/1094 +f 5302/8084/1096 5443/8080/1097 5446/8085/1096 +f 5297/8081/1098 5449/8090/1075 5444/8082/1098 +f 5296/8091/1075 5450/8092/1076 5449/8090/1075 +f 5298/8093/1076 5451/8094/1073 5450/8092/1076 +f 5451/8094/1073 5305/8095/1074 5452/8096/1074 +f 5305/8095/1074 5453/8097/1071 5452/8096/1074 +f 5307/8098/1071 5454/8099/1072 5453/8097/1071 +f 5300/8100/1072 5448/8101/1093 5454/8099/1072 +f 5286/8102/1146 5437/8069/1148 5438/8071/1149 +f 5455/8103/1154 5426/8104/1134 5456/8105/1155 +f 5413/8106/1156 5219/7936/1157 5220/8107/986 +f 5217/8108/984 5413/8106/1156 5220/8107/986 +f 5413/8106/1156 5308/7933/984 5289/8109/1158 +f 5455/8103/1154 5457/8110/982 5430/8111/1159 +f 5424/8051/1132 5455/8103/1154 5430/8111/1159 +f 5458/8112/979 5429/8056/1137 5459/8113/1160 +f 5429/8056/1137 5422/8049/1130 5459/8113/1160 +f 5460/8114/1161 5455/8103/1154 5456/8115/1155 +f 5460/8114/1161 5461/8116/1162 5455/8103/1154 +f 5460/8114/1161 5462/8117/1163 5461/8116/1162 +f 5463/8118/1164 5461/8116/1162 5462/8117/1163 +f 5432/8119/1054 5442/8078/1153 5441/8076/1152 +f 5427/8120/979 5441/8076/1152 5440/8074/1151 +f 5428/8121/1052 5440/8074/1151 5439/8072/1150 +f 5437/8069/1148 5425/8122/989 5438/8071/1149 +f 5460/8123/982 5436/8067/1147 5435/8065/1145 +f 5462/8124/1059 5435/8065/1145 5285/7768/1144 +f 5463/8125/976 5285/7768/1144 5287/7770/976 +f 5458/8126/971 5430/8057/1138 5457/8127/971 +f 5425/8122/989 5439/8072/1150 5438/8071/1149 +f 5456/8128/1050 5437/8069/1148 5436/8067/1147 +f 5464/8129/979 5465/8130/983 5466/8131/983 +f 5467/8132/1165 5468/8133/980 5469/8134/980 +f 5470/8135/982 5471/8136/981 5472/8137/981 +f 5473/8138/1166 5474/8139/991 5475/8140/991 +f 5466/8131/983 5476/8141/1167 5477/8142/1167 +f 5469/8134/980 5478/8143/979 5464/8129/979 +f 5472/8137/981 5479/8144/1168 5480/8145/1168 +f 5475/8140/991 5481/8146/982 5470/8135/982 +f 5482/8147/1169 5483/8148/1170 5484/8149/1170 +f 5485/8150/1171 5482/8147/1169 5486/8151/1171 +f 5487/8152/1172 5485/8150/1171 5486/8151/1171 +f 5488/8153/1173 5489/8154/1174 5490/8155/1174 +f 5491/8156/1175 5488/8153/1173 5492/8157/1175 +f 5493/8158/1176 5491/8156/1175 5492/8157/1175 +f 5310/7797/977 5238/7792/977 5236/7719/978 +f 5229/7712/979 5314/7801/979 5312/7799/980 +f 5207/7690/981 5315/7802/981 5313/7800/982 +f 5232/7715/983 5316/7803/983 5314/7801/979 +f 5216/7699/984 5317/7804/984 5315/7802/981 +f 5231/7714/985 5318/7805/985 5316/7803/983 +f 5218/7701/986 5319/7806/986 5317/7804/984 +f 5239/7722/987 5320/7807/987 5318/7805/985 +f 5222/7705/988 5321/7809/988 5319/7806/986 +f 5320/7807/987 5239/7722/987 5238/7721/977 +f 5224/7707/989 5322/7810/989 5321/7809/988 +f 5203/7686/976 5323/7811/976 5311/7798/978 +f 5223/7706/990 5324/7812/990 5322/7810/989 +f 5209/7692/991 5325/7813/991 5323/7811/976 +f 5227/7710/980 5312/7799/980 5324/7812/990 +f 5205/7688/982 5313/7800/982 5325/7813/991 +f 5316/7803/992 5327/7858/996 5326/7814/993 +f 5318/7805/995 5328/7832/998 5327/7815/996 +f 5320/7807/997 5329/7835/1000 5328/7816/998 +f 5310/7808/999 5330/7841/1002 5329/7817/1000 +f 5311/7798/1001 5331/7839/1004 5330/7818/1002 +f 5323/7811/1003 5332/7845/1006 5331/7819/1004 +f 5325/7813/1005 5333/7849/1008 5332/7820/1006 +f 5313/7800/1007 5335/7853/1010 5333/7821/1008 +f 5313/7800/1007 5315/7802/1012 5334/7822/1009 +f 5317/7804/1011 5337/7860/1014 5334/7824/1009 +f 5317/7804/1011 5319/7806/1016 5336/7825/1013 +f 5321/7809/1015 5338/7837/1018 5336/7827/1013 +f 5322/7810/1017 5339/7843/1020 5338/7828/1018 +f 5324/7812/1019 5340/7847/1022 5339/7829/1020 +f 5312/7799/1021 5341/7851/1023 5340/7830/1022 +f 5314/7801/994 5326/7855/993 5341/7831/1023 +f 5248/7862/1024 5247/7865/1027 5343/7863/1025 +f 5247/7865/1027 5249/7868/1029 5345/7866/1028 +f 5249/7868/1029 5246/7871/1031 5346/7869/1030 +f 5246/7871/1031 5250/7875/1034 5347/7872/1032 +f 5309/7874/1033 5347/8159/1032 5250/7875/1034 +f 5245/7877/1036 5248/7862/1024 5344/7878/1026 +f 5243/7880/1038 5245/7877/1036 5348/7881/1037 +f 5350/7883/1040 5244/8160/1177 5243/7880/1038 +f 5350/7883/1040 5349/7884/1039 5351/7885/1041 +f 5348/7881/1037 5353/8161/1043 5351/7887/1041 +f 5344/7878/1026 5214/8162/1178 5353/7888/1043 +f 5345/7866/1028 5213/8163/1045 5215/7889/1044 +f 5215/7890/1044 5214/8164/1178 5344/7864/1026 +f 5346/7869/1030 5354/8165/1046 5213/7891/1045 +f 5347/7872/1032 5355/8166/1047 5354/7892/1046 +f 5355/7893/1047 5347/8159/1032 5309/7874/1033 +f 5357/7895/984 5366/7918/1063 5358/7896/1049 +f 5356/7897/1050 5358/7896/1049 5359/7898/1051 +f 5352/7900/1057 5210/7693/1056 5212/7695/990 +f 5214/7902/987 5365/7913/1062 5361/7903/1053 +f 5353/7904/1054 5361/7903/1053 5362/7905/1055 +f 5351/7906/979 5362/7905/1055 5210/7693/1056 +f 5355/7899/982 5359/7898/1051 5363/7907/1058 +f 5354/7908/1059 5363/7907/1058 5364/7909/1060 +f 5234/7923/985 5282/7921/985 5350/7920/1064 +f 5204/7927/976 5235/7926/978 5309/7794/974 +f 5279/7928/991 5202/7930/991 5204/7927/976 +f 5278/7929/982 5208/7932/982 5202/7930/991 +f 5280/7931/981 5206/7934/981 5208/7932/982 +f 5308/7933/984 5217/8108/984 5206/7934/981 +f 5367/7937/1069 5240/7940/990 5226/7938/990 +f 5242/7941/980 5225/7943/980 5226/7938/990 +f 5276/7942/979 5228/7945/979 5225/7943/980 +f 5277/7944/983 5230/7946/983 5228/7945/979 +f 5282/7921/985 5234/7923/985 5230/7946/983 +f 5368/7947/1071 5260/8167/1071 5253/7948/1072 +f 5259/7950/1073 5258/7957/1074 5370/7951/1074 +f 5255/7953/1075 5257/7956/1076 5372/7954/1076 +f 5257/7956/1076 5259/7950/1073 5371/7952/1073 +f 5258/7957/1074 5260/8167/1071 5368/7947/1071 +f 5374/7958/979 5270/7980/979 5272/7959/1054 +f 5376/7961/988 5267/7981/988 5269/7962/1077 +f 5378/7964/982 5273/7982/982 5275/7965/1050 +f 5375/7960/1054 5272/7959/1054 5265/7967/1078 +f 5381/7969/977 5264/8168/977 5266/7970/1079 +f 5377/7963/1077 5269/7962/1077 5271/7972/1052 +f 5379/7966/1050 5275/7965/1050 5268/7974/1080 +f 5380/7968/1078 5265/7967/1078 5264/7976/977 +f 5382/7971/1079 5266/7970/1079 5274/7978/1059 +f 5383/7973/1052 5271/7972/1052 5270/7980/979 +f 5384/7975/1080 5268/7974/1080 5267/7981/988 +f 5385/7979/1059 5274/7978/1059 5273/7982/982 +f 5374/7958/1081 5375/7960/1082 5386/7983/1082 +f 5375/7960/1082 5380/7968/1083 5388/7985/1083 +f 5380/7968/1083 5381/7977/1084 5389/7986/1084 +f 5381/7969/1084 5382/7971/1085 5390/7987/1085 +f 5382/7971/1085 5385/7979/1086 5391/7989/1086 +f 5385/7979/1086 5378/7964/1087 5392/7990/1087 +f 5378/7964/1087 5379/7966/1088 5393/7991/1088 +f 5379/7966/1088 5384/7975/1089 5394/7992/1089 +f 5384/7975/1089 5376/7961/1090 5395/7993/1090 +f 5395/7993/1090 5376/7961/1090 5377/7963/1091 +f 5377/7963/1091 5383/7973/1092 5397/7995/1092 +f 5383/7973/1092 5374/7958/1081 5387/7984/1081 +f 5253/7948/1072 5252/8169/1093 5398/7996/1093 +f 5252/7997/1093 5254/8000/1094 5399/7998/1094 +f 5254/8000/1094 5262/8002/1095 5400/8001/1095 +f 5262/8002/1095 5261/8004/1096 5401/8003/1096 +f 5261/8004/1096 5263/8006/1097 5402/8005/1097 +f 5263/8006/1097 5256/8008/1098 5403/8007/1098 +f 5256/8008/1098 5255/7953/1075 5373/7955/1075 +f 5404/8013/1100 5284/7767/1099 5283/7766/1102 +f 5365/7913/1062 5214/7902/987 5213/7910/978 +f 5293/8016/1105 5292/8019/1108 5406/8017/1106 +f 5292/8019/1108 5294/8022/1110 5408/8020/1109 +f 5294/8022/1110 5291/8025/1112 5409/8023/1111 +f 5291/8025/1112 5295/8029/1115 5410/8026/1113 +f 5367/8028/1114 5410/8170/1113 5295/8029/1115 +f 5290/8031/1117 5293/8016/1105 5407/8032/1107 +f 5288/8034/1119 5290/8031/1117 5411/8035/1118 +f 5413/8037/1121 5289/8171/1179 5288/8034/1119 +f 5413/8037/1121 5412/8038/1120 5414/8039/1122 +f 5411/8035/1118 5416/8172/1124 5414/8041/1122 +f 5407/8032/1107 5494/8173/1180 5416/8042/1124 +f 5408/8020/1109 5418/8174/1126 5417/8043/1125 +f 5417/8044/1125 5494/8175/1180 5407/8018/1107 +f 5409/8023/1111 5419/8176/1127 5418/8045/1126 +f 5410/8026/1113 5420/8177/1128 5419/8046/1127 +f 5420/8047/1128 5410/8170/1113 5367/8028/1114 +f 5422/8049/1130 5434/8064/1143 5423/8050/1131 +f 5423/8050/1131 5434/8064/1143 5425/8052/1133 +f 5430/8057/1138 5459/8178/1138 5422/8058/1139 +f 5429/8056/1137 5428/8179/1136 5425/8063/1133 +f 5443/8080/1097 5304/8180/1097 5297/8081/1098 +f 5445/8083/1095 5303/8181/1095 5302/8084/1096 +f 5299/8086/1093 5301/8089/1094 5447/8087/1094 +f 5301/8089/1094 5303/8181/1095 5445/8083/1095 +f 5302/8084/1096 5304/8180/1097 5443/8080/1097 +f 5297/8081/1098 5296/8091/1075 5449/8090/1075 +f 5296/8091/1075 5298/8093/1076 5450/8092/1076 +f 5298/8093/1076 5306/8182/1073 5451/8094/1073 +f 5451/8094/1073 5306/8182/1073 5305/8095/1074 +f 5305/8095/1074 5307/8098/1071 5453/8097/1071 +f 5307/8098/1071 5300/8100/1072 5454/8099/1072 +f 5300/8100/1072 5299/8183/1093 5448/8101/1093 +f 5455/8103/1154 5423/8050/1131 5426/8104/1134 +f 5217/8108/984 5308/7933/984 5413/8106/1156 +f 5455/8103/1154 5461/8116/1162 5457/8110/982 +f 5424/8051/1132 5423/8050/1131 5455/8103/1154 +f 5458/8112/979 5431/8060/1140 5429/8056/1137 +f 5429/8056/1137 5434/8064/1143 5422/8049/1130 +f 5432/8119/1054 5433/8184/985 5442/8078/1153 +f 5427/8120/979 5432/8119/1054 5441/8076/1152 +f 5428/8121/1052 5427/8120/979 5440/8074/1151 +f 5437/8069/1148 5426/8185/986 5425/8122/989 +f 5460/8123/982 5456/8128/1050 5436/8067/1147 +f 5462/8124/1059 5460/8123/982 5435/8065/1145 +f 5463/8125/976 5462/8124/1059 5285/7768/1144 +f 5458/8126/971 5459/8178/1138 5430/8057/1138 +f 5425/8122/989 5428/8121/1052 5439/8072/1150 +f 5456/8128/1050 5426/8185/986 5437/8069/1148 +f 5464/8129/979 5478/8143/979 5465/8130/983 +f 5467/8132/1165 5495/8186/1165 5468/8133/980 +f 5470/8135/982 5481/8146/982 5471/8136/981 +f 5473/8138/1166 5496/8187/1166 5474/8139/991 +f 5466/8131/983 5465/8130/983 5476/8141/1167 +f 5469/8134/980 5468/8133/980 5478/8143/979 +f 5472/8137/981 5471/8136/981 5479/8144/1168 +f 5475/8140/991 5474/8139/991 5481/8146/982 +f 5482/8147/1169 5497/8188/1169 5483/8148/1170 +f 5485/8150/1171 5497/8188/1169 5482/8147/1169 +f 5487/8152/1172 5498/8189/1172 5485/8150/1171 +f 5488/8153/1173 5499/8190/1173 5489/8154/1174 +f 5491/8156/1175 5499/8190/1173 5488/8153/1173 +f 5493/8158/1176 5500/8191/1176 5491/8156/1175 +l 5502 5421 +l 5415 5501 diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_silo.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_silo.obj new file mode 100644 index 000000000..02249dc56 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_silo.obj @@ -0,0 +1,255 @@ +# Blender v2.79 (sub 0) OBJ File: 'launch_pad_silo.blend' +# www.blender.org +o Plane +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 1.500000 0.000000 -0.500000 +v 0.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v 0.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v 0.500000 0.000000 0.500000 +v 1.500000 0.000000 0.500000 +v -1.500000 0.000000 -0.500000 +v -0.500000 0.000000 -0.500000 +v -1.500000 0.000000 -1.500000 +v -0.500000 0.000000 -1.500000 +v -1.500000 0.000000 1.500000 +v -0.500000 0.000000 1.500000 +v -1.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.500000 -1.500000 +v 0.500000 0.500000 -0.500000 +v 1.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.500000 1.500000 +v 1.500000 0.500000 0.500000 +v -1.500000 0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +v -0.500000 0.500000 -1.500000 +v -0.500000 0.500000 1.500000 +v -0.500000 0.500000 0.500000 +v -1.500000 0.500000 0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +vt 0.250000 0.750000 +vt 0.750000 1.000000 +vt -0.000000 1.000000 +vt 0.250000 0.500000 +vt -0.000000 0.250000 +vt 0.500000 0.750000 +vt 0.750000 0.250000 +vt 0.500000 0.500000 +vt 0.250000 0.250000 +vt 0.500000 0.125000 +vt 0.500000 0.250000 +vt 0.250000 0.125000 +vt 0.500000 0.250000 +vt 0.250000 0.250000 +vt 0.250000 0.125000 +vt 0.500000 0.250000 +vt 0.250000 0.250000 +vt 0.250000 0.250000 +vt 0.500000 0.125000 +vt 0.500000 0.250000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 0.750000 0.250000 +vt 1.000000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 0.750000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.500000 +vt 0.750000 0.250000 +vt 1.000000 0.250000 +vt 0.750000 0.250000 +vt 1.000000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt -0.000000 -0.000000 +vt 0.250000 0.125000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 0.750000 0.000000 +vt 0.500000 0.125000 +vt 0.500000 0.000000 +vt 0.250000 0.125000 +vt 0.750000 0.250000 +vt 0.000000 0.250000 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.500000 0.125000 +vt 0.500000 0.000000 +vt 0.000000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.125000 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.500000 0.125000 +vt 0.500000 0.000000 +vt 0.000000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.125000 +vt 0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.500000 0.125000 +vt 0.750000 -0.000000 +vt 0.250000 0.750000 +vt 0.500000 0.500000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vt 0.250000 0.750000 +vt 0.500000 0.750000 +vt 0.250000 0.125000 +vt 0.500000 0.125000 +vt 0.500000 0.125000 +vt 0.250000 0.125000 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 1.000000 0.250000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 1.000000 0.250000 +vt 0.750000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 0.250000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 0.250000 -0.000000 +vt 0.750000 0.625000 +vt 0.750000 0.625000 +vt 0.500000 -0.000000 +vt 0.250000 0.500000 +vt 0.250000 0.500000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 5/1/1 3/2/1 1/3/1 +f 6/4/1 1/3/1 2/5/1 +f 7/6/1 4/7/1 3/2/1 +f 8/8/1 2/5/1 4/7/1 +f 8/9/2 28/10/2 6/11/2 +f 32/12/3 8/13/3 7/14/3 +f 35/15/4 7/16/4 5/17/4 +f 6/18/5 35/19/5 5/20/5 +f 11/21/6 10/22/6 9/23/6 +f 15/24/6 14/25/6 13/26/6 +f 19/27/6 18/28/6 17/29/6 +f 23/30/6 22/31/6 21/32/6 +f 29/33/2 15/34/2 13/35/2 +f 33/36/4 18/37/4 20/38/4 +f 27/39/6 28/40/6 26/41/6 +f 26/42/6 33/43/6 25/44/6 +f 32/45/6 36/46/6 31/47/6 +f 29/48/6 35/49/6 28/50/6 +f 35/51/4 22/52/4 24/53/4 +f 28/54/5 16/55/5 15/56/5 +f 26/57/2 11/58/2 9/59/2 +f 36/60/5 24/61/5 23/62/5 +f 14/63/4 30/64/4 2/5/4 +f 27/65/3 9/66/3 10/67/3 +f 30/64/4 4/7/4 2/5/4 +f 32/68/3 17/69/3 18/70/3 +f 14/71/3 29/72/3 13/73/3 +f 34/74/3 2/75/3 1/76/3 +f 34/74/3 21/77/3 22/78/3 +f 21/32/2 36/79/2 23/80/2 +f 3/81/2 36/79/2 1/82/2 +f 31/83/2 19/84/2 17/85/2 +f 19/86/5 33/87/5 20/88/5 +f 4/89/5 33/87/5 3/90/5 +f 25/91/5 12/92/5 11/93/5 +f 27/94/4 12/95/4 4/7/4 +f 37/96/1 40/97/1 39/98/1 +f 44/99/6 41/100/6 43/101/6 +f 5/1/1 7/6/1 3/2/1 +f 6/4/1 5/1/1 1/3/1 +f 7/6/1 8/8/1 4/7/1 +f 8/8/1 6/4/1 2/5/1 +f 8/9/2 26/102/2 28/10/2 +f 32/12/3 26/103/3 8/13/3 +f 35/15/4 32/104/4 7/16/4 +f 6/18/5 28/105/5 35/19/5 +f 11/21/6 12/106/6 10/22/6 +f 15/24/6 16/107/6 14/25/6 +f 19/27/6 20/108/6 18/28/6 +f 23/30/6 24/109/6 22/31/6 +f 29/33/2 28/110/2 15/34/2 +f 33/36/4 32/111/4 18/37/4 +f 27/39/6 30/112/6 28/40/6 +f 26/42/6 32/113/6 33/43/6 +f 32/45/6 35/114/6 36/46/6 +f 29/48/6 34/115/6 35/49/6 +f 35/51/4 34/116/4 22/52/4 +f 28/54/5 30/117/5 16/55/5 +f 26/57/2 25/118/2 11/58/2 +f 36/60/5 35/119/5 24/61/5 +f 14/63/4 16/120/4 30/64/4 +f 27/65/3 26/121/3 9/66/3 +f 30/64/4 27/94/4 4/7/4 +f 32/68/3 31/122/3 17/69/3 +f 14/71/3 2/75/3 29/72/3 +f 34/74/3 29/72/3 2/75/3 +f 34/74/3 1/76/3 21/77/3 +f 21/32/2 1/82/2 36/79/2 +f 3/81/2 31/83/2 36/79/2 +f 31/83/2 3/81/2 19/84/2 +f 19/86/5 3/90/5 33/87/5 +f 4/89/5 25/91/5 33/87/5 +f 25/91/5 4/89/5 12/92/5 +f 27/94/4 10/123/4 12/95/4 +f 37/96/1 38/124/1 40/97/1 +f 44/99/6 42/125/6 41/100/6 diff --git a/src/main/resources/assets/hbm/models/weapons/liberator.obj b/src/main/resources/assets/hbm/models/weapons/liberator.obj new file mode 100644 index 000000000..c98168d16 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/liberator.obj @@ -0,0 +1,5172 @@ +# Blender v2.79 (sub 0) OBJ File: 'liberator.blend' +# www.blender.org +o Shell4 +v -0.250000 0.437500 0.000000 +v -0.343750 0.412380 0.000000 +v -0.412380 0.343750 0.000000 +v -0.437500 0.250000 0.000000 +v -0.412380 0.156250 0.000000 +v -0.343750 0.087620 0.000000 +v -0.250000 0.062500 0.000000 +v -0.156250 0.087620 0.000000 +v -0.087620 0.156250 0.000000 +v -0.062500 0.250000 0.000000 +v -0.087620 0.343750 0.000000 +v -0.156250 0.412380 0.000000 +v -0.250000 0.437500 1.000000 +v -0.343750 0.412380 1.000000 +v -0.412380 0.343750 1.000000 +v -0.437500 0.250000 1.000000 +v -0.412380 0.156250 1.000000 +v -0.343750 0.087620 1.000000 +v -0.250000 0.062500 1.000000 +v -0.156250 0.087620 1.000000 +v -0.087620 0.156250 1.000000 +v -0.062500 0.250000 1.000000 +v -0.087620 0.343750 1.000000 +v -0.156250 0.412380 1.000000 +v -0.250000 0.460938 0.000000 +v -0.355469 0.432677 0.000000 +v -0.432677 0.355469 0.000000 +v -0.460938 0.250000 0.000000 +v -0.432677 0.144531 0.000000 +v -0.355469 0.067323 0.000000 +v -0.250000 0.039062 0.000000 +v -0.144531 0.067322 0.000000 +v -0.067323 0.144531 0.000000 +v -0.039062 0.250000 0.000000 +v -0.067323 0.355469 0.000000 +v -0.144531 0.432677 0.000000 +v -0.250000 0.460938 -0.062500 +v -0.355469 0.432677 -0.062500 +v -0.432677 0.355469 -0.062500 +v -0.460938 0.250000 -0.062500 +v -0.432677 0.144531 -0.062500 +v -0.355469 0.067323 -0.062500 +v -0.250000 0.039062 -0.062500 +v -0.144531 0.067322 -0.062500 +v -0.067323 0.144531 -0.062500 +v -0.039062 0.250000 -0.062500 +v -0.067323 0.355469 -0.062500 +v -0.144531 0.432677 -0.062500 +vt 0.185185 0.500000 +vt 0.189815 0.488636 +vt 0.189815 0.500000 +vt 0.185185 0.431818 +vt 0.189815 0.443182 +vt 0.185185 0.443182 +vt 0.185185 0.409091 +vt 0.189815 0.397727 +vt 0.189815 0.409091 +vt 0.189815 0.511364 +vt 0.185185 0.511364 +vt 0.189815 0.454545 +vt 0.185185 0.454545 +vt 0.185185 0.465909 +vt 0.189815 0.477273 +vt 0.185185 0.477273 +vt 0.189815 0.420455 +vt 0.185185 0.420455 +vt 0.189815 0.522727 +vt 0.185185 0.522727 +vt 0.189815 0.465909 +vt 0.185185 0.488636 +vt 0.189815 0.431818 +vt 0.185185 0.534091 +vt 0.189815 0.534091 +vt 0.210648 0.437320 +vt 0.196742 0.427467 +vt 0.210648 0.397907 +vt 0.196303 0.446021 +vt 0.220365 0.446021 +vt 0.208334 0.471595 +vt 0.185185 0.397727 +vt 0.224554 0.427467 +vt 0.218677 0.434680 +vt 0.202619 0.434680 +vt 0.194591 0.417614 +vt 0.196742 0.407760 +vt 0.202619 0.400547 +vt 0.218677 0.400547 +vt 0.224554 0.407760 +vt 0.226705 0.417614 +vt 0.201388 0.469311 +vt 0.196303 0.463070 +vt 0.194441 0.454545 +vt 0.201388 0.439780 +vt 0.208334 0.437496 +vt 0.215280 0.439780 +vt 0.222226 0.454545 +vt 0.220365 0.463070 +vt 0.215280 0.469311 +vt 0.111111 0.488636 +vt 0.111111 0.431818 +vt 0.111111 0.397727 +vt 0.111111 0.500000 +vt 0.111111 0.443182 +vt 0.111111 0.465909 +vt 0.111111 0.409091 +vt 0.111111 0.511364 +vt 0.111111 0.454545 +vt 0.111111 0.477273 +vt 0.111111 0.420455 +vt 0.111111 0.522727 +vt 0.194444 0.454545 +vt 0.194444 0.477273 +vt 0.194444 0.420455 +vt 0.194444 0.522727 +vt 0.194444 0.465909 +vt 0.194444 0.488636 +vt 0.194444 0.431818 +vt 0.194444 0.534091 +vt 0.194444 0.500000 +vt 0.194444 0.443182 +vt 0.194444 0.409091 +vt 0.194444 0.511364 +vt 0.111111 0.534091 +vt 0.194444 0.397727 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +s off +f 4/1/1 27/2/1 28/3/1 +f 10/4/1 35/5/1 11/6/1 +f 8/7/1 31/8/1 32/9/1 +f 4/1/1 29/10/1 5/11/1 +f 11/6/1 36/12/1 12/13/1 +f 1/14/1 26/15/1 2/16/1 +f 8/7/1 33/17/1 9/18/1 +f 5/11/1 30/19/1 6/20/1 +f 1/14/1 36/12/1 25/21/1 +f 2/16/1 27/2/1 3/22/1 +f 10/4/1 33/17/1 34/23/1 +f 7/24/1 30/19/1 31/25/1 +f 37/26/2 47/27/2 43/28/2 +f 17/29/1 21/30/1 13/31/1 +f 4/1/1 3/22/1 27/2/1 +f 10/4/1 34/23/1 35/5/1 +f 8/7/1 7/32/1 31/8/1 +f 4/1/1 28/3/1 29/10/1 +f 11/6/1 35/5/1 36/12/1 +f 1/14/1 25/21/1 26/15/1 +f 8/7/1 32/9/1 33/17/1 +f 5/11/1 29/10/1 30/19/1 +f 1/14/1 12/13/1 36/12/1 +f 2/16/1 26/15/1 27/2/1 +f 10/4/1 9/18/1 33/17/1 +f 7/24/1 6/20/1 30/19/1 +f 39/33/2 38/34/2 37/26/2 +f 37/26/2 48/35/2 47/27/2 +f 47/27/2 46/36/2 43/28/2 +f 46/36/2 45/37/2 43/28/2 +f 45/37/2 44/38/2 43/28/2 +f 43/28/2 42/39/2 41/40/2 +f 41/40/2 40/41/2 43/28/2 +f 40/41/2 39/33/2 43/28/2 +f 39/33/2 37/26/2 43/28/2 +f 13/31/1 14/42/1 15/43/1 +f 15/43/1 16/44/1 17/29/1 +f 17/29/1 18/45/1 21/30/1 +f 18/45/1 19/46/1 21/30/1 +f 19/46/1 20/47/1 21/30/1 +f 21/30/1 22/48/1 23/49/1 +f 23/49/1 24/50/1 13/31/1 +f 13/31/1 15/43/1 17/29/1 +f 21/30/1 23/49/1 13/31/1 +s 1 +f 4/1/3 15/51/4 3/22/4 +f 11/6/5 22/52/6 10/4/6 +f 8/7/7 19/53/8 7/32/8 +f 5/11/9 16/54/3 4/1/3 +f 12/13/10 23/55/5 11/6/5 +f 2/16/11 13/56/12 1/14/12 +f 9/18/13 20/57/7 8/7/7 +f 6/20/14 17/58/9 5/11/9 +f 1/14/12 24/59/10 12/13/10 +f 3/22/4 14/60/11 2/16/11 +f 10/4/6 21/61/13 9/18/13 +f 7/24/8 18/62/14 6/20/14 +f 35/5/5 48/63/10 36/12/10 +f 25/21/12 38/64/11 26/15/11 +f 32/9/7 45/65/13 33/17/13 +f 29/10/9 42/66/14 30/19/14 +f 36/12/10 37/67/12 25/21/12 +f 26/15/11 39/68/4 27/2/4 +f 33/17/13 46/69/6 34/23/6 +f 30/19/14 43/70/8 31/25/8 +f 27/2/4 40/71/3 28/3/3 +f 34/23/6 47/72/5 35/5/5 +f 31/8/8 44/73/7 32/9/7 +f 28/3/3 41/74/9 29/10/9 +f 4/1/3 16/54/3 15/51/4 +f 11/6/5 23/55/5 22/52/6 +f 8/7/7 20/57/7 19/53/8 +f 5/11/9 17/58/9 16/54/3 +f 12/13/10 24/59/10 23/55/5 +f 2/16/11 14/60/11 13/56/12 +f 9/18/13 21/61/13 20/57/7 +f 6/20/14 18/62/14 17/58/9 +f 1/14/12 13/56/12 24/59/10 +f 3/22/4 15/51/4 14/60/11 +f 10/4/6 22/52/6 21/61/13 +f 7/24/8 19/75/8 18/62/14 +f 35/5/5 47/72/5 48/63/10 +f 25/21/12 37/67/12 38/64/11 +f 32/9/7 44/73/7 45/65/13 +f 29/10/9 41/74/9 42/66/14 +f 36/12/10 48/63/10 37/67/12 +f 26/15/11 38/64/11 39/68/4 +f 33/17/13 45/65/13 46/69/6 +f 30/19/14 42/66/14 43/70/8 +f 27/2/4 39/68/4 40/71/3 +f 34/23/6 46/69/6 47/72/5 +f 31/8/8 43/76/8 44/73/7 +f 28/3/3 40/71/3 41/74/9 +o Shell2 +v -0.250000 0.937500 0.000000 +v -0.343750 0.912380 0.000000 +v -0.412380 0.843750 0.000000 +v -0.437500 0.750000 0.000000 +v -0.412380 0.656250 0.000000 +v -0.343750 0.587620 0.000000 +v -0.250000 0.562500 0.000000 +v -0.156250 0.587620 0.000000 +v -0.087620 0.656250 0.000000 +v -0.062500 0.750000 0.000000 +v -0.087620 0.843750 0.000000 +v -0.156250 0.912380 0.000000 +v -0.250000 0.937500 1.000000 +v -0.343750 0.912380 1.000000 +v -0.412380 0.843750 1.000000 +v -0.437500 0.750000 1.000000 +v -0.412380 0.656250 1.000000 +v -0.343750 0.587620 1.000000 +v -0.250000 0.562500 1.000000 +v -0.156250 0.587620 1.000000 +v -0.087620 0.656250 1.000000 +v -0.062500 0.750000 1.000000 +v -0.087620 0.843750 1.000000 +v -0.156250 0.912380 1.000000 +v -0.250000 0.960938 0.000000 +v -0.355469 0.932677 0.000000 +v -0.432677 0.855469 0.000000 +v -0.460938 0.750000 0.000000 +v -0.432677 0.644531 0.000000 +v -0.355469 0.567323 0.000000 +v -0.250000 0.539062 0.000000 +v -0.144531 0.567322 0.000000 +v -0.067323 0.644531 0.000000 +v -0.039062 0.750000 0.000000 +v -0.067323 0.855469 0.000000 +v -0.144531 0.932677 0.000000 +v -0.250000 0.960938 -0.062500 +v -0.355469 0.932677 -0.062500 +v -0.432677 0.855469 -0.062500 +v -0.460938 0.750000 -0.062500 +v -0.432677 0.644531 -0.062500 +v -0.355469 0.567323 -0.062500 +v -0.250000 0.539062 -0.062500 +v -0.144531 0.567322 -0.062500 +v -0.067323 0.644531 -0.062500 +v -0.039062 0.750000 -0.062500 +v -0.067323 0.855469 -0.062500 +v -0.144531 0.932677 -0.062500 +vt 0.185185 0.500000 +vt 0.189815 0.488636 +vt 0.189815 0.500000 +vt 0.185185 0.431818 +vt 0.189815 0.443182 +vt 0.185185 0.443182 +vt 0.185185 0.409091 +vt 0.189815 0.397727 +vt 0.189815 0.409091 +vt 0.189815 0.511364 +vt 0.185185 0.511364 +vt 0.189815 0.454545 +vt 0.185185 0.454545 +vt 0.185185 0.465909 +vt 0.189815 0.477273 +vt 0.185185 0.477273 +vt 0.189815 0.420455 +vt 0.185185 0.420455 +vt 0.189815 0.522727 +vt 0.185185 0.522727 +vt 0.189815 0.465909 +vt 0.185185 0.488636 +vt 0.189815 0.431818 +vt 0.185185 0.534091 +vt 0.189815 0.534091 +vt 0.210648 0.437320 +vt 0.196742 0.427467 +vt 0.210648 0.397907 +vt 0.196303 0.446021 +vt 0.220365 0.446021 +vt 0.208334 0.471595 +vt 0.185185 0.397727 +vt 0.224554 0.427467 +vt 0.218677 0.434680 +vt 0.202619 0.434680 +vt 0.194591 0.417614 +vt 0.196742 0.407760 +vt 0.202619 0.400547 +vt 0.218677 0.400547 +vt 0.224554 0.407760 +vt 0.226705 0.417614 +vt 0.201388 0.469311 +vt 0.196303 0.463070 +vt 0.194441 0.454545 +vt 0.201388 0.439780 +vt 0.208334 0.437496 +vt 0.215280 0.439780 +vt 0.222226 0.454545 +vt 0.220365 0.463070 +vt 0.215280 0.469311 +vt 0.111111 0.488636 +vt 0.111111 0.431818 +vt 0.111111 0.397727 +vt 0.111111 0.500000 +vt 0.111111 0.443182 +vt 0.111111 0.465909 +vt 0.111111 0.409091 +vt 0.111111 0.511364 +vt 0.111111 0.454545 +vt 0.111111 0.477273 +vt 0.111111 0.420455 +vt 0.111111 0.522727 +vt 0.194444 0.454545 +vt 0.194444 0.477273 +vt 0.194444 0.420455 +vt 0.194444 0.522727 +vt 0.194444 0.465909 +vt 0.194444 0.488636 +vt 0.194444 0.431818 +vt 0.194444 0.534091 +vt 0.194444 0.500000 +vt 0.194444 0.443182 +vt 0.194444 0.409091 +vt 0.194444 0.511364 +vt 0.111111 0.534091 +vt 0.194444 0.397727 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +s off +f 52/77/15 75/78/15 76/79/15 +f 58/80/15 83/81/15 59/82/15 +f 56/83/15 79/84/15 80/85/15 +f 52/77/15 77/86/15 53/87/15 +f 59/82/15 84/88/15 60/89/15 +f 49/90/15 74/91/15 50/92/15 +f 56/83/15 81/93/15 57/94/15 +f 53/87/15 78/95/15 54/96/15 +f 49/90/15 84/88/15 73/97/15 +f 50/92/15 75/78/15 51/98/15 +f 58/80/15 81/93/15 82/99/15 +f 55/100/15 78/95/15 79/101/15 +f 85/102/16 95/103/16 91/104/16 +f 65/105/15 69/106/15 61/107/15 +f 52/77/15 51/98/15 75/78/15 +f 58/80/15 82/99/15 83/81/15 +f 56/83/15 55/108/15 79/84/15 +f 52/77/15 76/79/15 77/86/15 +f 59/82/15 83/81/15 84/88/15 +f 49/90/15 73/97/15 74/91/15 +f 56/83/15 80/85/15 81/93/15 +f 53/87/15 77/86/15 78/95/15 +f 49/90/15 60/89/15 84/88/15 +f 50/92/15 74/91/15 75/78/15 +f 58/80/15 57/94/15 81/93/15 +f 55/100/15 54/96/15 78/95/15 +f 87/109/16 86/110/16 85/102/16 +f 85/102/16 96/111/16 95/103/16 +f 95/103/16 94/112/16 91/104/16 +f 94/112/16 93/113/16 91/104/16 +f 93/113/16 92/114/16 91/104/16 +f 91/104/16 90/115/16 89/116/16 +f 89/116/16 88/117/16 91/104/16 +f 88/117/16 87/109/16 91/104/16 +f 87/109/16 85/102/16 91/104/16 +f 61/107/15 62/118/15 63/119/15 +f 63/119/15 64/120/15 65/105/15 +f 65/105/15 66/121/15 69/106/15 +f 66/121/15 67/122/15 69/106/15 +f 67/122/15 68/123/15 69/106/15 +f 69/106/15 70/124/15 71/125/15 +f 71/125/15 72/126/15 61/107/15 +f 61/107/15 63/119/15 65/105/15 +f 69/106/15 71/125/15 61/107/15 +s 1 +f 52/77/17 63/127/18 51/98/18 +f 59/82/19 70/128/20 58/80/20 +f 56/83/21 67/129/22 55/108/22 +f 53/87/23 64/130/17 52/77/17 +f 60/89/24 71/131/19 59/82/19 +f 50/92/25 61/132/26 49/90/26 +f 57/94/27 68/133/21 56/83/21 +f 54/96/28 65/134/23 53/87/23 +f 49/90/26 72/135/24 60/89/24 +f 51/98/18 62/136/25 50/92/25 +f 58/80/20 69/137/27 57/94/27 +f 55/100/22 66/138/28 54/96/28 +f 83/81/19 96/139/24 84/88/24 +f 73/97/26 86/140/25 74/91/25 +f 80/85/21 93/141/27 81/93/27 +f 77/86/23 90/142/28 78/95/28 +f 84/88/24 85/143/26 73/97/26 +f 74/91/25 87/144/18 75/78/18 +f 81/93/27 94/145/20 82/99/20 +f 78/95/28 91/146/22 79/101/22 +f 75/78/18 88/147/17 76/79/17 +f 82/99/20 95/148/19 83/81/19 +f 79/84/22 92/149/21 80/85/21 +f 76/79/17 89/150/23 77/86/23 +f 52/77/17 64/130/17 63/127/18 +f 59/82/19 71/131/19 70/128/20 +f 56/83/21 68/133/21 67/129/22 +f 53/87/23 65/134/23 64/130/17 +f 60/89/24 72/135/24 71/131/19 +f 50/92/25 62/136/25 61/132/26 +f 57/94/27 69/137/27 68/133/21 +f 54/96/28 66/138/28 65/134/23 +f 49/90/26 61/132/26 72/135/24 +f 51/98/18 63/127/18 62/136/25 +f 58/80/20 70/128/20 69/137/27 +f 55/100/22 67/151/22 66/138/28 +f 83/81/19 95/148/19 96/139/24 +f 73/97/26 85/143/26 86/140/25 +f 80/85/21 92/149/21 93/141/27 +f 77/86/23 89/150/23 90/142/28 +f 84/88/24 96/139/24 85/143/26 +f 74/91/25 86/140/25 87/144/18 +f 81/93/27 93/141/27 94/145/20 +f 78/95/28 90/142/28 91/146/22 +f 75/78/18 87/144/18 88/147/17 +f 82/99/20 94/145/20 95/148/19 +f 79/84/22 91/152/22 92/149/21 +f 76/79/17 88/147/17 89/150/23 +o Shell1 +v 0.250000 0.937500 0.000000 +v 0.156250 0.912380 0.000000 +v 0.087620 0.843750 0.000000 +v 0.062500 0.750000 0.000000 +v 0.087620 0.656250 0.000000 +v 0.156250 0.587620 0.000000 +v 0.250000 0.562500 0.000000 +v 0.343750 0.587620 0.000000 +v 0.412380 0.656250 0.000000 +v 0.437500 0.750000 0.000000 +v 0.412380 0.843750 0.000000 +v 0.343750 0.912380 0.000000 +v 0.250000 0.937500 1.000000 +v 0.156250 0.912380 1.000000 +v 0.087620 0.843750 1.000000 +v 0.062500 0.750000 1.000000 +v 0.087620 0.656250 1.000000 +v 0.156250 0.587620 1.000000 +v 0.250000 0.562500 1.000000 +v 0.343750 0.587620 1.000000 +v 0.412380 0.656250 1.000000 +v 0.437500 0.750000 1.000000 +v 0.412380 0.843750 1.000000 +v 0.343750 0.912380 1.000000 +v 0.250000 0.960938 0.000000 +v 0.144531 0.932677 0.000000 +v 0.067323 0.855469 0.000000 +v 0.039062 0.750000 0.000000 +v 0.067323 0.644531 0.000000 +v 0.144531 0.567323 0.000000 +v 0.250000 0.539062 0.000000 +v 0.355469 0.567322 0.000000 +v 0.432677 0.644531 0.000000 +v 0.460938 0.750000 0.000000 +v 0.432677 0.855469 0.000000 +v 0.355469 0.932677 0.000000 +v 0.250000 0.960938 -0.062500 +v 0.144531 0.932677 -0.062500 +v 0.067323 0.855469 -0.062500 +v 0.039062 0.750000 -0.062500 +v 0.067323 0.644531 -0.062500 +v 0.144531 0.567323 -0.062500 +v 0.250000 0.539062 -0.062500 +v 0.355469 0.567322 -0.062500 +v 0.432677 0.644531 -0.062500 +v 0.460938 0.750000 -0.062500 +v 0.432677 0.855469 -0.062500 +v 0.355469 0.932677 -0.062500 +vt 0.185185 0.500000 +vt 0.189815 0.488636 +vt 0.189815 0.500000 +vt 0.185185 0.431818 +vt 0.189815 0.443182 +vt 0.185185 0.443182 +vt 0.185185 0.409091 +vt 0.189815 0.397727 +vt 0.189815 0.409091 +vt 0.189815 0.511364 +vt 0.185185 0.511364 +vt 0.189815 0.454545 +vt 0.185185 0.454545 +vt 0.185185 0.465909 +vt 0.189815 0.477273 +vt 0.185185 0.477273 +vt 0.189815 0.420455 +vt 0.185185 0.420455 +vt 0.189815 0.522727 +vt 0.185185 0.522727 +vt 0.189815 0.465909 +vt 0.185185 0.488636 +vt 0.189815 0.431818 +vt 0.185185 0.534091 +vt 0.189815 0.534091 +vt 0.210648 0.437320 +vt 0.196742 0.427467 +vt 0.210648 0.397907 +vt 0.196303 0.446021 +vt 0.220365 0.446021 +vt 0.208334 0.471595 +vt 0.185185 0.397727 +vt 0.224554 0.427467 +vt 0.218677 0.434680 +vt 0.202619 0.434680 +vt 0.194591 0.417614 +vt 0.196742 0.407760 +vt 0.202619 0.400547 +vt 0.218677 0.400547 +vt 0.224554 0.407760 +vt 0.226705 0.417614 +vt 0.201388 0.469311 +vt 0.196303 0.463070 +vt 0.194441 0.454545 +vt 0.201388 0.439780 +vt 0.208334 0.437496 +vt 0.215280 0.439780 +vt 0.222226 0.454545 +vt 0.220365 0.463070 +vt 0.215280 0.469311 +vt 0.111111 0.488636 +vt 0.111111 0.431818 +vt 0.111111 0.397727 +vt 0.111111 0.500000 +vt 0.111111 0.443182 +vt 0.111111 0.465909 +vt 0.111111 0.409091 +vt 0.111111 0.511364 +vt 0.111111 0.454545 +vt 0.111111 0.477273 +vt 0.111111 0.420455 +vt 0.111111 0.522727 +vt 0.194444 0.454545 +vt 0.194444 0.477273 +vt 0.194444 0.420455 +vt 0.194444 0.522727 +vt 0.194444 0.465909 +vt 0.194444 0.488636 +vt 0.194444 0.431818 +vt 0.194444 0.534091 +vt 0.194444 0.500000 +vt 0.194444 0.443182 +vt 0.194444 0.409091 +vt 0.194444 0.511364 +vt 0.111111 0.534091 +vt 0.194444 0.397727 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +s off +f 100/153/29 123/154/29 124/155/29 +f 106/156/29 131/157/29 107/158/29 +f 104/159/29 127/160/29 128/161/29 +f 100/153/29 125/162/29 101/163/29 +f 107/158/29 132/164/29 108/165/29 +f 97/166/29 122/167/29 98/168/29 +f 104/159/29 129/169/29 105/170/29 +f 101/163/29 126/171/29 102/172/29 +f 97/166/29 132/164/29 121/173/29 +f 98/168/29 123/154/29 99/174/29 +f 106/156/29 129/169/29 130/175/29 +f 103/176/29 126/171/29 127/177/29 +f 133/178/30 143/179/30 139/180/30 +f 113/181/29 117/182/29 109/183/29 +f 100/153/29 99/174/29 123/154/29 +f 106/156/29 130/175/29 131/157/29 +f 104/159/29 103/184/29 127/160/29 +f 100/153/29 124/155/29 125/162/29 +f 107/158/29 131/157/29 132/164/29 +f 97/166/29 121/173/29 122/167/29 +f 104/159/29 128/161/29 129/169/29 +f 101/163/29 125/162/29 126/171/29 +f 97/166/29 108/165/29 132/164/29 +f 98/168/29 122/167/29 123/154/29 +f 106/156/29 105/170/29 129/169/29 +f 103/176/29 102/172/29 126/171/29 +f 135/185/30 134/186/30 133/178/30 +f 133/178/30 144/187/30 143/179/30 +f 143/179/30 142/188/30 139/180/30 +f 142/188/30 141/189/30 139/180/30 +f 141/189/30 140/190/30 139/180/30 +f 139/180/30 138/191/30 137/192/30 +f 137/192/30 136/193/30 139/180/30 +f 136/193/30 135/185/30 139/180/30 +f 135/185/30 133/178/30 139/180/30 +f 109/183/29 110/194/29 111/195/29 +f 111/195/29 112/196/29 113/181/29 +f 113/181/29 114/197/29 117/182/29 +f 114/197/29 115/198/29 117/182/29 +f 115/198/29 116/199/29 117/182/29 +f 117/182/29 118/200/29 119/201/29 +f 119/201/29 120/202/29 109/183/29 +f 109/183/29 111/195/29 113/181/29 +f 117/182/29 119/201/29 109/183/29 +s 1 +f 100/153/31 111/203/32 99/174/32 +f 107/158/33 118/204/34 106/156/34 +f 104/159/35 115/205/36 103/184/36 +f 101/163/37 112/206/31 100/153/31 +f 108/165/38 119/207/33 107/158/33 +f 98/168/39 109/208/40 97/166/40 +f 105/170/41 116/209/35 104/159/35 +f 102/172/42 113/210/37 101/163/37 +f 97/166/40 120/211/38 108/165/38 +f 99/174/32 110/212/39 98/168/39 +f 106/156/34 117/213/41 105/170/41 +f 103/176/36 114/214/42 102/172/42 +f 131/157/33 144/215/38 132/164/38 +f 121/173/40 134/216/39 122/167/39 +f 128/161/35 141/217/41 129/169/41 +f 125/162/37 138/218/42 126/171/42 +f 132/164/38 133/219/40 121/173/40 +f 122/167/39 135/220/32 123/154/32 +f 129/169/41 142/221/34 130/175/34 +f 126/171/42 139/222/36 127/177/36 +f 123/154/32 136/223/31 124/155/31 +f 130/175/34 143/224/33 131/157/33 +f 127/160/36 140/225/35 128/161/35 +f 124/155/31 137/226/37 125/162/37 +f 100/153/31 112/206/31 111/203/32 +f 107/158/33 119/207/33 118/204/34 +f 104/159/35 116/209/35 115/205/36 +f 101/163/37 113/210/37 112/206/31 +f 108/165/38 120/211/38 119/207/33 +f 98/168/39 110/212/39 109/208/40 +f 105/170/41 117/213/41 116/209/35 +f 102/172/42 114/214/42 113/210/37 +f 97/166/40 109/208/40 120/211/38 +f 99/174/32 111/203/32 110/212/39 +f 106/156/34 118/204/34 117/213/41 +f 103/176/36 115/227/36 114/214/42 +f 131/157/33 143/224/33 144/215/38 +f 121/173/40 133/219/40 134/216/39 +f 128/161/35 140/225/35 141/217/41 +f 125/162/37 137/226/37 138/218/42 +f 132/164/38 144/215/38 133/219/40 +f 122/167/39 134/216/39 135/220/32 +f 129/169/41 141/217/41 142/221/34 +f 126/171/42 138/218/42 139/222/36 +f 123/154/32 135/220/32 136/223/31 +f 130/175/34 142/221/34 143/224/33 +f 127/160/36 139/228/36 140/225/35 +f 124/155/31 136/223/31 137/226/37 +o Shell3 +v 0.250000 0.437500 0.000000 +v 0.156250 0.412380 0.000000 +v 0.087620 0.343750 0.000000 +v 0.062500 0.250000 0.000000 +v 0.087620 0.156250 0.000000 +v 0.156250 0.087620 0.000000 +v 0.250000 0.062500 0.000000 +v 0.343750 0.087620 0.000000 +v 0.412380 0.156250 0.000000 +v 0.437500 0.250000 0.000000 +v 0.412380 0.343750 0.000000 +v 0.343750 0.412380 0.000000 +v 0.250000 0.437500 1.000000 +v 0.156250 0.412380 1.000000 +v 0.087620 0.343750 1.000000 +v 0.062500 0.250000 1.000000 +v 0.087620 0.156250 1.000000 +v 0.156250 0.087620 1.000000 +v 0.250000 0.062500 1.000000 +v 0.343750 0.087620 1.000000 +v 0.412380 0.156250 1.000000 +v 0.437500 0.250000 1.000000 +v 0.412380 0.343750 1.000000 +v 0.343750 0.412380 1.000000 +v 0.250000 0.460938 0.000000 +v 0.144531 0.432677 0.000000 +v 0.067323 0.355469 0.000000 +v 0.039062 0.250000 0.000000 +v 0.067323 0.144531 0.000000 +v 0.144531 0.067323 0.000000 +v 0.250000 0.039062 0.000000 +v 0.355469 0.067322 0.000000 +v 0.432677 0.144531 0.000000 +v 0.460938 0.250000 0.000000 +v 0.432677 0.355469 0.000000 +v 0.355469 0.432677 0.000000 +v 0.250000 0.460938 -0.062500 +v 0.144531 0.432677 -0.062500 +v 0.067323 0.355469 -0.062500 +v 0.039062 0.250000 -0.062500 +v 0.067323 0.144531 -0.062500 +v 0.144531 0.067323 -0.062500 +v 0.250000 0.039062 -0.062500 +v 0.355469 0.067322 -0.062500 +v 0.432677 0.144531 -0.062500 +v 0.460938 0.250000 -0.062500 +v 0.432677 0.355469 -0.062500 +v 0.355469 0.432677 -0.062500 +vt 0.185185 0.500000 +vt 0.189815 0.488636 +vt 0.189815 0.500000 +vt 0.185185 0.431818 +vt 0.189815 0.443182 +vt 0.185185 0.443182 +vt 0.185185 0.409091 +vt 0.189815 0.397727 +vt 0.189815 0.409091 +vt 0.189815 0.511364 +vt 0.185185 0.511364 +vt 0.189815 0.454545 +vt 0.185185 0.454545 +vt 0.185185 0.465909 +vt 0.189815 0.477273 +vt 0.185185 0.477273 +vt 0.189815 0.420455 +vt 0.185185 0.420455 +vt 0.189815 0.522727 +vt 0.185185 0.522727 +vt 0.189815 0.465909 +vt 0.185185 0.488636 +vt 0.189815 0.431818 +vt 0.185185 0.534091 +vt 0.189815 0.534091 +vt 0.210648 0.437320 +vt 0.196742 0.427467 +vt 0.210648 0.397907 +vt 0.196303 0.446021 +vt 0.220365 0.446021 +vt 0.208334 0.471595 +vt 0.185185 0.397727 +vt 0.224554 0.427467 +vt 0.218677 0.434680 +vt 0.202619 0.434680 +vt 0.194591 0.417614 +vt 0.196742 0.407760 +vt 0.202619 0.400547 +vt 0.218677 0.400547 +vt 0.224554 0.407760 +vt 0.226705 0.417614 +vt 0.201388 0.469311 +vt 0.196303 0.463070 +vt 0.194441 0.454545 +vt 0.201388 0.439780 +vt 0.208334 0.437496 +vt 0.215280 0.439780 +vt 0.222226 0.454545 +vt 0.220365 0.463070 +vt 0.215280 0.469311 +vt 0.111111 0.488636 +vt 0.111111 0.431818 +vt 0.111111 0.397727 +vt 0.111111 0.500000 +vt 0.111111 0.443182 +vt 0.111111 0.465909 +vt 0.111111 0.409091 +vt 0.111111 0.511364 +vt 0.111111 0.454545 +vt 0.111111 0.477273 +vt 0.111111 0.420455 +vt 0.111111 0.522727 +vt 0.194444 0.454545 +vt 0.194444 0.477273 +vt 0.194444 0.420455 +vt 0.194444 0.522727 +vt 0.194444 0.465909 +vt 0.194444 0.488636 +vt 0.194444 0.431818 +vt 0.194444 0.534091 +vt 0.194444 0.500000 +vt 0.194444 0.443182 +vt 0.194444 0.409091 +vt 0.194444 0.511364 +vt 0.111111 0.534091 +vt 0.194444 0.397727 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +s off +f 148/229/43 171/230/43 172/231/43 +f 154/232/43 179/233/43 155/234/43 +f 152/235/43 175/236/43 176/237/43 +f 148/229/43 173/238/43 149/239/43 +f 155/234/43 180/240/43 156/241/43 +f 145/242/43 170/243/43 146/244/43 +f 152/235/43 177/245/43 153/246/43 +f 149/239/43 174/247/43 150/248/43 +f 145/242/43 180/240/43 169/249/43 +f 146/244/43 171/230/43 147/250/43 +f 154/232/43 177/245/43 178/251/43 +f 151/252/43 174/247/43 175/253/43 +f 181/254/44 191/255/44 187/256/44 +f 161/257/43 165/258/43 157/259/43 +f 148/229/43 147/250/43 171/230/43 +f 154/232/43 178/251/43 179/233/43 +f 152/235/43 151/260/43 175/236/43 +f 148/229/43 172/231/43 173/238/43 +f 155/234/43 179/233/43 180/240/43 +f 145/242/43 169/249/43 170/243/43 +f 152/235/43 176/237/43 177/245/43 +f 149/239/43 173/238/43 174/247/43 +f 145/242/43 156/241/43 180/240/43 +f 146/244/43 170/243/43 171/230/43 +f 154/232/43 153/246/43 177/245/43 +f 151/252/43 150/248/43 174/247/43 +f 183/261/44 182/262/44 181/254/44 +f 181/254/44 192/263/44 191/255/44 +f 191/255/44 190/264/44 187/256/44 +f 190/264/44 189/265/44 187/256/44 +f 189/265/44 188/266/44 187/256/44 +f 187/256/44 186/267/44 185/268/44 +f 185/268/44 184/269/44 187/256/44 +f 184/269/44 183/261/44 187/256/44 +f 183/261/44 181/254/44 187/256/44 +f 157/259/43 158/270/43 159/271/43 +f 159/271/43 160/272/43 161/257/43 +f 161/257/43 162/273/43 165/258/43 +f 162/273/43 163/274/43 165/258/43 +f 163/274/43 164/275/43 165/258/43 +f 165/258/43 166/276/43 167/277/43 +f 167/277/43 168/278/43 157/259/43 +f 157/259/43 159/271/43 161/257/43 +f 165/258/43 167/277/43 157/259/43 +s 1 +f 148/229/45 159/279/46 147/250/46 +f 155/234/47 166/280/48 154/232/48 +f 152/235/49 163/281/50 151/260/50 +f 149/239/51 160/282/45 148/229/45 +f 156/241/52 167/283/47 155/234/47 +f 146/244/53 157/284/54 145/242/54 +f 153/246/55 164/285/49 152/235/49 +f 150/248/56 161/286/51 149/239/51 +f 145/242/54 168/287/52 156/241/52 +f 147/250/46 158/288/53 146/244/53 +f 154/232/48 165/289/55 153/246/55 +f 151/252/50 162/290/56 150/248/56 +f 179/233/47 192/291/52 180/240/52 +f 169/249/54 182/292/53 170/243/53 +f 176/237/49 189/293/55 177/245/55 +f 173/238/51 186/294/56 174/247/56 +f 180/240/52 181/295/54 169/249/54 +f 170/243/53 183/296/46 171/230/46 +f 177/245/55 190/297/48 178/251/48 +f 174/247/56 187/298/50 175/253/50 +f 171/230/46 184/299/45 172/231/45 +f 178/251/48 191/300/47 179/233/47 +f 175/236/50 188/301/49 176/237/49 +f 172/231/45 185/302/51 173/238/51 +f 148/229/45 160/282/45 159/279/46 +f 155/234/47 167/283/47 166/280/48 +f 152/235/49 164/285/49 163/281/50 +f 149/239/51 161/286/51 160/282/45 +f 156/241/52 168/287/52 167/283/47 +f 146/244/53 158/288/53 157/284/54 +f 153/246/55 165/289/55 164/285/49 +f 150/248/56 162/290/56 161/286/51 +f 145/242/54 157/284/54 168/287/52 +f 147/250/46 159/279/46 158/288/53 +f 154/232/48 166/280/48 165/289/55 +f 151/252/50 163/303/50 162/290/56 +f 179/233/47 191/300/47 192/291/52 +f 169/249/54 181/295/54 182/292/53 +f 176/237/49 188/301/49 189/293/55 +f 173/238/51 185/302/51 186/294/56 +f 180/240/52 192/291/52 181/295/54 +f 170/243/53 182/292/53 183/296/46 +f 177/245/55 189/293/55 190/297/48 +f 174/247/56 186/294/56 187/298/50 +f 171/230/46 183/296/46 184/299/45 +f 178/251/48 190/297/48 191/300/47 +f 175/236/50 187/304/50 188/301/49 +f 172/231/45 184/299/45 185/302/51 +o Barrel +v 0.466506 0.375000 0.000000 +v 0.466506 0.375000 7.250000 +v 0.500000 0.250000 0.000000 +v 0.500000 0.250000 7.250000 +v 0.466506 0.125000 0.000000 +v 0.466506 0.125000 7.250000 +v 0.375000 0.033494 0.000000 +v 0.375000 0.033494 7.250000 +v 0.250000 0.000000 0.000000 +v 0.250000 0.000000 7.250000 +v 0.250000 0.437500 7.250000 +v 0.156250 0.412380 7.250000 +v 0.087620 0.343750 7.250000 +v 0.062500 0.250000 7.250000 +v 0.087620 0.156250 7.250000 +v 0.156250 0.087620 7.250000 +v 0.250000 0.062500 7.250000 +v 0.343750 0.087620 7.250000 +v 0.412380 0.156250 7.250000 +v 0.437500 0.250000 7.250000 +v 0.412380 0.343750 7.250000 +v 0.343750 0.412380 7.250000 +v 0.250000 0.437500 0.000000 +v 0.156250 0.412380 0.000000 +v 0.087620 0.343750 0.000000 +v 0.062500 0.250000 0.000000 +v 0.087620 0.156250 0.000000 +v 0.156250 0.087620 0.000000 +v 0.250000 0.062500 0.000000 +v 0.343750 0.087620 0.000000 +v 0.412380 0.156250 0.000000 +v 0.437500 0.250000 0.000000 +v 0.412380 0.343750 0.000000 +v 0.343750 0.412380 0.000000 +v -0.250000 0.000000 0.000000 +v -0.250000 0.000000 7.250000 +v -0.375000 0.033494 0.000000 +v -0.375000 0.033494 7.250000 +v -0.466506 0.125000 0.000000 +v -0.466506 0.125000 7.250000 +v -0.500000 0.250000 0.000000 +v -0.500000 0.250000 7.250000 +v -0.466506 0.375000 0.000000 +v -0.466506 0.375000 7.250000 +v -0.250000 0.437500 7.250000 +v -0.343750 0.412380 7.250000 +v -0.412380 0.343750 7.250000 +v -0.437500 0.250000 7.250000 +v -0.412380 0.156250 7.250000 +v -0.343750 0.087620 7.250000 +v -0.250000 0.062500 7.250000 +v -0.156250 0.087620 7.250000 +v -0.087620 0.156250 7.250000 +v -0.062500 0.250000 7.250000 +v -0.087620 0.343750 7.250000 +v -0.156250 0.412380 7.250000 +v -0.250000 0.437500 0.000000 +v -0.343750 0.412380 0.000000 +v -0.412380 0.343750 0.000000 +v -0.437500 0.250000 0.000000 +v -0.412380 0.156250 0.000000 +v -0.343750 0.087620 0.000000 +v -0.250000 0.062500 0.000000 +v -0.156250 0.087620 0.000000 +v -0.087620 0.156250 0.000000 +v -0.062500 0.250000 0.000000 +v -0.087620 0.343750 0.000000 +v -0.156250 0.412380 0.000000 +v 0.500000 1.000000 1.000000 +v 0.250000 1.000000 7.250000 +v 0.250000 1.000000 0.000000 +v 0.375000 0.966506 7.250000 +v 0.250000 1.000000 1.000000 +v 0.466506 0.875000 7.250000 +v 0.500000 0.750000 0.000000 +v 0.500000 0.750000 7.250000 +v 0.466506 0.625000 0.000000 +v 0.466506 0.625000 7.250000 +v 0.250000 0.937500 7.250000 +v 0.156250 0.912380 7.250000 +v 0.087620 0.843750 7.250000 +v 0.062500 0.750000 7.250000 +v 0.087620 0.656250 7.250000 +v 0.156250 0.587620 7.250000 +v 0.250000 0.562500 7.250000 +v 0.343750 0.587620 7.250000 +v 0.412380 0.656250 7.250000 +v 0.437500 0.750000 7.250000 +v 0.412380 0.843750 7.250000 +v 0.343750 0.912380 7.250000 +v 0.250000 0.937500 0.000000 +v 0.156250 0.912380 0.000000 +v 0.087620 0.843750 0.000000 +v 0.062500 0.750000 0.000000 +v 0.087620 0.656250 0.000000 +v 0.156250 0.587620 0.000000 +v 0.250000 0.562500 0.000000 +v 0.343750 0.587620 0.000000 +v 0.412380 0.656250 0.000000 +v 0.437500 0.750000 0.000000 +v 0.412380 0.843750 0.000000 +v 0.343750 0.912380 0.000000 +v 0.466506 0.875000 1.000000 +v -0.250000 1.000000 7.250000 +v -0.466506 0.625000 0.000000 +v -0.466506 0.625000 7.250000 +v 0.375000 0.966506 1.000000 +v -0.500000 0.750000 7.250000 +v 0.500000 0.750000 1.000000 +v -0.466506 0.875000 7.250000 +v 0.500000 1.000000 0.000000 +v -0.375000 0.966506 7.250000 +v -0.250000 0.937500 7.250000 +v -0.343750 0.912380 7.250000 +v -0.412380 0.843750 7.250000 +v -0.437500 0.750000 7.250000 +v -0.412380 0.656250 7.250000 +v -0.343750 0.587620 7.250000 +v -0.250000 0.562500 7.250000 +v -0.156250 0.587620 7.250000 +v -0.087620 0.656250 7.250000 +v -0.062500 0.750000 7.250000 +v -0.087620 0.843750 7.250000 +v -0.156250 0.912380 7.250000 +v -0.250000 0.937500 0.000000 +v -0.343750 0.912380 0.000000 +v -0.412380 0.843750 0.000000 +v -0.437500 0.750000 0.000000 +v -0.412380 0.656250 0.000000 +v -0.343750 0.587620 0.000000 +v -0.250000 0.562500 0.000000 +v -0.156250 0.587620 0.000000 +v -0.087620 0.656250 0.000000 +v -0.062500 0.750000 0.000000 +v -0.087620 0.843750 0.000000 +v -0.156250 0.912380 0.000000 +v 0.375000 0.500000 0.000000 +v 0.375000 0.500000 7.250000 +v -0.375000 0.500000 0.000000 +v -0.375000 0.500000 7.250000 +v 0.187500 -0.750000 0.500000 +v -0.187500 -0.750000 0.500000 +v -0.625000 -0.500000 0.656250 +v 0.625000 -0.500000 0.656250 +v -0.625000 -0.566291 0.683709 +v 0.625000 -0.566291 0.683709 +v -0.625000 -0.593750 0.750000 +v 0.625000 -0.593750 0.750000 +v -0.625000 -0.566291 0.816291 +v 0.625000 -0.566291 0.816291 +v -0.625000 -0.500000 0.843750 +v 0.625000 -0.500000 0.843750 +v -0.625000 -0.433709 0.816291 +v 0.625000 -0.433709 0.816291 +v -0.625000 -0.406250 0.750000 +v 0.625000 -0.406250 0.750000 +v -0.625000 -0.433709 0.683709 +v 0.625000 -0.433709 0.683709 +v -0.187500 0.000000 0.000000 +v 0.187500 0.000000 0.000000 +v 0.187500 -0.750000 1.125000 +v -0.187500 -0.750000 1.125000 +v 0.187500 -0.250000 1.375000 +v -0.187500 -0.250000 1.375000 +v 0.187500 0.000000 1.875000 +v -0.187500 0.000000 1.875000 +v -0.500000 1.000000 1.000000 +v -0.500000 1.000000 0.000000 +v -0.250000 1.000000 1.000000 +v -0.250000 1.000000 0.000000 +v -0.500000 0.750000 1.000000 +v -0.500000 0.750000 0.000000 +v -0.375000 0.966506 1.000000 +v -0.466506 0.875000 1.000000 +v 0.500000 1.000000 1.000000 +v 0.125000 1.000000 1.000000 +v 0.500000 1.312500 1.000000 +v 0.125000 1.312500 1.000000 +v 0.500000 1.437500 0.875000 +v 0.125000 1.437500 0.875000 +v 0.500000 1.437500 0.625000 +v 0.125000 1.437500 0.625000 +v 0.500000 1.312500 0.500000 +v 0.125000 1.312500 0.500000 +v 0.500000 1.000000 0.500000 +v 0.125000 1.000000 0.500000 +v 0.125000 1.312500 0.500000 +v 0.125000 1.000000 0.500000 +v 0.125000 1.312500 0.000000 +v 0.125000 1.000000 0.000000 +v 0.250000 1.000000 0.500000 +v 0.250000 1.312500 0.500000 +v 0.250000 1.000000 0.000000 +v 0.250000 1.312500 0.000000 +v 0.250000 1.000000 1.000000 +v 0.250000 1.312500 1.000000 +v 0.250000 1.000000 2.000000 +v 0.250000 1.312500 1.250000 +v 0.125000 1.312500 1.000000 +v 0.125000 1.000000 2.000000 +v 0.125000 1.312500 1.250000 +v 0.125000 1.000000 1.000000 +v 0.125000 1.000000 1.250000 +v -0.125000 1.000000 1.250000 +v 0.125000 1.000000 7.250000 +v -0.125000 1.000000 7.250000 +v 0.125000 1.311250 1.250000 +v -0.125000 1.311250 1.250000 +v 0.125000 1.311250 6.937500 +v -0.125000 1.311250 6.937500 +v 0.125000 0.000000 7.250000 +v -0.125000 0.000000 7.250000 +v 0.125000 -0.500000 7.250000 +v -0.125000 -0.500000 7.250000 +v 0.125000 0.000000 6.250000 +v -0.125000 0.000000 6.250000 +v 0.125000 -0.500000 6.250000 +v -0.125000 -0.500000 6.250000 +v 0.125000 -2.250000 5.500000 +v -0.125000 -2.250000 5.500000 +v 0.125000 -2.250000 5.000000 +v -0.125000 -2.250000 5.000000 +v 0.125000 -2.000000 4.750000 +v -0.125000 -2.000000 4.750000 +v 0.125000 -0.750000 5.250000 +v -0.125000 -0.750000 5.250000 +v 0.125000 -0.500000 5.250000 +v -0.125000 -0.500000 5.250000 +v 0.125000 0.000000 4.750000 +v -0.125000 0.000000 4.750000 +v -0.125000 -0.250000 6.250000 +v 0.125000 -0.250000 6.250000 +v -0.125000 -0.250000 6.000000 +v 0.125000 -0.250000 6.000000 +v -0.125000 0.000000 6.000000 +v 0.125000 0.000000 6.000000 +v 0.250000 -0.250000 6.125000 +v 0.250000 -0.500000 6.125000 +v 0.250000 -2.250000 5.375000 +v 0.250000 -2.250000 5.125000 +v 0.250000 -2.000000 4.875000 +v 0.250000 -0.750000 5.375000 +v 0.250000 -0.500000 5.375000 +v 0.250000 0.000000 4.875000 +v 0.250000 -0.250000 6.000000 +v 0.250000 0.000000 6.000000 +v -0.250000 -0.500000 6.125000 +v -0.250000 -2.250000 5.375000 +v -0.250000 -2.250000 5.125000 +v -0.250000 -2.000000 4.875000 +v -0.250000 -0.750000 5.375000 +v -0.250000 -0.500000 5.375000 +v -0.250000 0.000000 4.875000 +v -0.250000 -0.250000 6.125000 +v -0.250000 -0.250000 6.000000 +v -0.250000 0.000000 6.000000 +v -0.536612 1.062500 1.224112 +v -0.500000 1.062500 1.312500 +v -0.536612 1.062500 1.400888 +v -0.625000 1.062500 1.437500 +v -0.713388 1.062500 1.400888 +v -0.750000 1.062500 1.312500 +v -0.713388 1.062500 1.224112 +v -0.625000 1.062500 1.187500 +v -0.536612 0.937500 1.224112 +v -0.500000 0.937500 1.312500 +v -0.536612 0.937500 1.400888 +v -0.625000 0.937500 1.437500 +v -0.713388 0.937500 1.400888 +v -0.750000 0.937500 1.312500 +v -0.713388 0.937500 1.224112 +v -0.625000 0.937500 1.187500 +v -0.492417 0.937500 1.179918 +v -0.437500 0.937500 1.312500 +v -0.492417 0.937500 1.445082 +v -0.625000 0.937500 1.500000 +v -0.757583 0.937500 1.445082 +v -0.812500 0.937500 1.312500 +v -0.757583 0.937500 1.179918 +v -0.625000 0.937500 1.125000 +v -0.492417 0.187500 1.179918 +v -0.437500 0.187500 1.312500 +v -0.492417 0.187500 1.445082 +v -0.625000 0.187500 1.500000 +v -0.757583 0.187500 1.445082 +v -0.812500 0.187500 1.312500 +v -0.757583 0.187500 1.179918 +v -0.625000 0.187500 1.125000 +v 0.125000 0.000000 4.750000 +v -0.125000 0.000000 4.750000 +v 0.125000 -0.750000 3.500000 +v -0.125000 -0.750000 3.500000 +v 0.125000 0.000000 2.250000 +v -0.125000 0.000000 2.250000 +v 0.125000 -0.375000 3.250000 +v -0.125000 -0.375000 3.250000 +v 0.125000 -0.375000 3.750000 +v -0.125000 -0.375000 3.750000 +v 0.625000 0.187500 1.125000 +v 0.492417 0.187500 1.179918 +v 0.437500 0.187500 1.312500 +v 0.492417 0.187500 1.445082 +v 0.625000 0.187500 1.500000 +v 0.757583 0.187500 1.445082 +v 0.812500 0.187500 1.312500 +v 0.757583 0.187500 1.179918 +v 0.625000 0.937500 1.125000 +v 0.492417 0.937500 1.179918 +v 0.437500 0.937500 1.312500 +v 0.492417 0.937500 1.445082 +v 0.625000 0.937500 1.500000 +v 0.757583 0.937500 1.445082 +v 0.812500 0.937500 1.312500 +v 0.757583 0.937500 1.179918 +v 0.625000 0.937500 1.187500 +v 0.536612 0.937500 1.224112 +v 0.500000 0.937500 1.312500 +v 0.536612 0.937500 1.400888 +v 0.625000 0.937500 1.437500 +v 0.713388 0.937500 1.400888 +v 0.750000 0.937500 1.312500 +v 0.713388 0.937500 1.224112 +v 0.625000 1.062500 1.187500 +v 0.536612 1.062500 1.224112 +v 0.500000 1.062500 1.312500 +v 0.536612 1.062500 1.400888 +v 0.625000 1.062500 1.437500 +v 0.713388 1.062500 1.400888 +v 0.750000 1.062500 1.312500 +v 0.713388 1.062500 1.224112 +v 0.125000 1.437500 0.875000 +v 0.125000 1.437500 0.625000 +v 0.125000 1.562500 0.875000 +v 0.125000 1.562500 0.625000 +v 0.187500 1.437500 0.625000 +v 0.187500 1.437500 0.875000 +v 0.187500 1.562500 0.625000 +v 0.187500 1.562500 0.875000 +v -0.062500 1.562500 6.750000 +v 0.062500 1.562500 6.750000 +v -0.062500 1.562500 6.500000 +v 0.062500 1.562500 6.500000 +v -0.062500 1.437500 6.500000 +v -0.062500 1.437500 6.750000 +v 0.062500 1.437500 6.750000 +v 0.062500 1.437500 6.500000 +v 0.187500 1.562500 6.750000 +v 0.312500 1.562500 6.750000 +v 0.187500 1.562500 6.500000 +v 0.312500 1.562500 6.500000 +v 0.187500 1.437500 6.500000 +v 0.187500 1.437500 6.750000 +v 0.312500 1.437500 6.750000 +v 0.312500 1.437500 6.500000 +v -0.312500 1.562500 6.750000 +v -0.187500 1.562500 6.750000 +v -0.312500 1.562500 6.500000 +v -0.187500 1.562500 6.500000 +v -0.312500 1.437500 6.500000 +v -0.312500 1.437500 6.750000 +v -0.187500 1.437500 6.750000 +v -0.187500 1.437500 6.500000 +v 0.312500 1.437500 6.750000 +v 0.312500 1.437500 6.500000 +v -0.312500 1.437500 6.500000 +v -0.312500 1.437500 6.750000 +v 0.125000 1.187500 7.000000 +v 0.125000 1.187500 6.500000 +v -0.125000 1.187500 6.500000 +v -0.125000 1.187500 7.000000 +v 0.510000 1.000000 1.000000 +v 0.510000 0.750000 0.000000 +v 0.510000 0.750000 1.000000 +v 0.510000 1.000000 0.000000 +v -0.510000 1.000000 1.000000 +v -0.510000 1.000000 0.000000 +v -0.510000 0.750000 1.000000 +v -0.510000 0.750000 0.000000 +v -0.125000 1.000000 1.000000 +v -0.125000 1.312500 1.000000 +v -0.125000 1.000000 2.000000 +v -0.125000 1.312500 1.250000 +v -0.250000 1.312500 1.000000 +v -0.250000 1.000000 2.000000 +v -0.250000 1.312500 1.250000 +v -0.250000 1.000000 1.000000 +v -0.125000 1.000000 1.000000 +v -0.500000 1.000000 1.000000 +v -0.125000 1.312500 1.000000 +v -0.500000 1.312500 1.000000 +v -0.125000 1.437500 0.875000 +v -0.500000 1.437500 0.875000 +v -0.125000 1.437500 0.625000 +v -0.500000 1.437500 0.625000 +v -0.125000 1.312500 0.500000 +v -0.500000 1.312500 0.500000 +v -0.125000 1.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.187500 1.437500 0.875000 +v -0.187500 1.437500 0.625000 +v -0.187500 1.562500 0.875000 +v -0.187500 1.562500 0.625000 +v -0.125000 1.437500 0.625000 +v -0.125000 1.437500 0.875000 +v -0.125000 1.562500 0.625000 +v -0.125000 1.562500 0.875000 +v -0.250000 1.312500 0.500000 +v -0.250000 1.000000 0.500000 +v -0.250000 1.312500 0.000000 +v -0.250000 1.000000 0.000000 +v -0.125000 1.000000 0.500000 +v -0.125000 1.312500 0.500000 +v -0.125000 1.000000 0.000000 +v -0.125000 1.312500 0.000000 +v 0.000000 0.687500 0.000000 +v -0.093750 0.662380 0.000000 +v -0.162380 0.593750 0.000000 +v -0.187500 0.500000 0.000000 +v -0.162380 0.406250 0.000000 +v -0.093750 0.337620 0.000000 +v 0.000000 0.312500 0.000000 +v 0.093750 0.337620 0.000000 +v 0.162380 0.406250 0.000000 +v 0.187500 0.500000 0.000000 +v 0.162380 0.593750 0.000000 +v 0.093750 0.662380 0.000000 +v 0.062500 0.608253 -0.062500 +v 0.108253 0.562500 -0.062500 +v 0.125000 0.500000 -0.062500 +v 0.108253 0.437500 -0.062500 +v 0.062500 0.391747 -0.062500 +v 0.000000 0.375000 -0.062500 +v -0.062500 0.391747 -0.062500 +v -0.108253 0.437500 -0.062500 +v -0.125000 0.500000 -0.062500 +v -0.108253 0.562500 -0.062500 +v -0.062500 0.608253 -0.062500 +v 0.000000 0.625000 -0.062500 +vt 0.055443 0.000276 +vt 0.062346 0.008193 +vt 0.055443 0.005923 +vt 0.071383 0.011570 +vt 0.064646 0.003302 +vt 0.069248 0.022865 +vt 0.067398 0.014394 +vt 0.071383 0.034160 +vt 0.073849 0.022865 +vt 0.002691 0.102479 +vt 0.004826 0.113774 +vt 0.000225 0.113774 +vt 0.002691 0.125069 +vt 0.018631 0.091185 +vt 0.011729 0.099102 +vt 0.009428 0.094211 +vt 0.006676 0.105303 +vt 0.009428 0.003302 +vt 0.006676 0.014394 +vt 0.002691 0.011570 +vt 0.018631 0.005923 +vt 0.011729 0.008193 +vt 0.002691 0.034160 +vt 0.004826 0.022865 +vt 0.006676 0.031336 +vt 0.000225 0.022865 +vt 0.071383 0.125069 +vt 0.069248 0.113774 +vt 0.073849 0.113774 +vt 0.071383 0.102479 +vt 0.067398 0.105303 +vt 0.064646 0.094211 +vt 0.055443 0.096832 +vt 0.055443 0.091185 +vt 0.087963 0.329545 +vt 0.092593 0.340909 +vt 0.083333 0.335227 +vt 0.071383 0.056749 +vt 0.069248 0.068044 +vt 0.067398 0.059573 +vt 0.071383 0.079339 +vt 0.073849 0.068044 +vt 0.064646 0.087607 +vt 0.067398 0.076515 +vt 0.055443 0.084986 +vt 0.062346 0.082716 +vt 0.002691 0.147658 +vt 0.004826 0.158953 +vt 0.000225 0.158953 +vt 0.111111 0.431818 +vt 0.111111 0.340909 +vt 0.074074 0.340909 +vt 0.092593 0.431818 +vt 0.074074 0.431818 +vt 0.037037 0.431818 +vt 0.037037 0.340909 +vt 0.018631 0.181542 +vt 0.025533 0.173625 +vt 0.048541 0.173625 +vt 0.069248 0.158953 +vt 0.071383 0.147658 +vt 0.073849 0.158953 +vt 0.073849 0.181542 +vt 0.062346 0.173625 +vt 0.067398 0.167424 +vt 0.009428 0.087607 +vt 0.018631 0.084986 +vt 0.018631 0.090633 +vt 0.006676 0.076515 +vt 0.011729 0.082716 +vt 0.002691 0.079339 +vt 0.004826 0.068044 +vt 0.002691 0.056749 +vt 0.000225 0.068044 +vt 0.000225 0.181542 +vt 0.006676 0.167424 +vt 0.011729 0.173625 +vt 0.011729 0.053372 +vt 0.009428 0.045455 +vt 0.011729 0.037537 +vt 0.048541 0.037537 +vt 0.043488 0.059573 +vt 0.025533 0.053372 +vt 0.018631 0.039807 +vt 0.018631 0.051102 +vt 0.041639 0.068044 +vt 0.030586 0.059573 +vt 0.055443 0.039807 +vt 0.048541 0.053372 +vt 0.043488 0.031336 +vt 0.032436 0.022865 +vt 0.041639 0.022865 +vt 0.062346 0.053372 +vt 0.062346 0.037537 +vt 0.064646 0.045455 +vt 0.055443 0.051102 +vt 0.030586 0.014394 +vt 0.043488 0.014394 +vt 0.025533 0.008193 +vt 0.048541 0.008193 +vt 0.043488 0.076515 +vt 0.032436 0.068044 +vt 0.048541 0.082716 +vt 0.055443 0.090633 +vt 0.025533 0.082716 +vt 0.011729 0.128446 +vt 0.006676 0.122245 +vt 0.011729 0.144281 +vt 0.009428 0.136364 +vt 0.062346 0.144281 +vt 0.064646 0.136364 +vt 0.062346 0.128446 +vt 0.018631 0.142011 +vt 0.055443 0.142011 +vt 0.055443 0.130716 +vt 0.043488 0.105303 +vt 0.032435 0.113774 +vt 0.030586 0.105303 +vt 0.025533 0.099102 +vt 0.048541 0.099102 +vt 0.041639 0.158953 +vt 0.030586 0.167424 +vt 0.032435 0.158953 +vt 0.043488 0.150482 +vt 0.030586 0.150482 +vt 0.048541 0.144281 +vt 0.048541 0.128446 +vt 0.041639 0.113774 +vt 0.030586 0.122245 +vt 0.025533 0.144281 +vt 0.018631 0.130716 +vt 0.025533 0.128446 +vt 0.502268 0.673238 +vt 0.506944 0.670861 +vt 0.506944 0.687094 +vt 0.486111 0.670455 +vt 0.430556 0.704545 +vt 0.430556 0.670455 +vt 0.497732 0.673238 +vt 0.497732 0.684717 +vt 0.488379 0.684717 +vt 0.384259 0.704545 +vt 0.347222 0.704545 +vt 0.384259 0.670455 +vt 0.310185 0.704545 +vt 0.347222 0.670455 +vt 0.365741 0.625000 +vt 0.328704 0.602273 +vt 0.467593 0.602273 +vt 0.467593 0.772727 +vt 0.328704 0.772727 +vt 0.365741 0.750000 +vt 0.018519 0.340909 +vt 0.018519 0.431818 +vt 0.000000 0.340909 +vt 0.023148 0.329545 +vt 0.027778 0.335227 +vt -0.000000 0.607955 +vt 0.023148 0.642045 +vt -0.000000 0.642045 +vt 0.023148 0.607955 +vt 0.032407 0.642045 +vt 0.032407 0.607955 +vt 0.050926 0.642045 +vt 0.050926 0.607955 +vt 0.060185 0.642045 +vt 0.060185 0.607955 +vt 0.083333 0.642045 +vt 0.060185 0.653409 +vt 0.060185 0.681818 +vt 0.023148 0.681818 +vt 0.023148 0.596591 +vt 0.120370 0.642045 +vt 0.083333 0.670455 +vt 0.083333 0.642045 +vt 0.083333 0.602273 +vt 0.120370 0.630682 +vt 0.083333 0.630682 +vt 0.143519 0.630682 +vt 0.143519 0.642045 +vt 0.166667 0.562500 +vt 0.185185 0.534091 +vt 0.185185 0.562500 +vt 0.185185 0.573864 +vt 0.166667 0.573864 +vt 0.111111 0.562500 +vt 0.185185 0.602273 +vt 0.648148 0.329545 +vt 0.611111 0.352273 +vt 0.611111 0.329545 +vt 0.134259 0.369318 +vt 0.555556 0.346591 +vt 0.555556 0.369318 +vt 0.555556 0.318182 +vt 0.134259 0.346591 +vt 0.111111 0.318182 +vt 0.111111 0.346591 +vt 0.111111 0.369318 +vt 0.555556 0.397727 +vt 0.578704 0.369318 +vt 0.578704 0.346591 +vt 0.722222 0.375000 +vt 0.722222 0.397727 +vt 0.648148 0.397727 +vt 0.722222 0.306818 +vt 0.722222 0.329545 +vt 0.648148 0.352273 +vt 0.907407 0.034091 +vt 0.916667 0.000000 +vt 0.944444 0.011364 +vt 0.740741 0.284091 +vt 0.722222 0.284091 +vt 0.740741 0.375000 +vt 0.740741 0.397727 +vt 0.750000 0.397727 +vt 0.731481 0.363636 +vt 0.740741 0.363636 +vt 0.750000 0.306818 +vt 0.740741 0.306818 +vt 0.731481 0.318182 +vt 0.805556 0.601731 +vt 0.796738 0.590909 +vt 0.805556 0.580087 +vt 0.736111 0.669642 +vt 0.722884 0.653409 +vt 0.736111 0.637176 +vt 0.777277 0.653381 +vt 0.764050 0.669614 +vt 0.750823 0.653381 +vt 0.726852 0.534091 +vt 0.837963 0.568182 +vt 0.763889 0.534091 +vt 0.763889 0.534091 +vt 0.652778 0.568182 +vt 0.726852 0.534091 +vt 0.777277 0.653381 +vt 0.764050 0.669614 +vt 0.750823 0.653381 +vt 0.736111 0.669642 +vt 0.722884 0.653409 +vt 0.736111 0.637176 +vt 0.805556 0.601731 +vt 0.796738 0.590909 +vt 0.805556 0.580087 +vt 0.069444 0.585227 +vt 0.087963 0.596591 +vt 0.069444 0.596591 +vt 0.087963 0.568182 +vt 0.069444 0.579545 +vt 0.069444 0.568182 +vt 0.087963 0.585227 +vt 0.097222 0.579545 +vt 0.097222 0.585227 +vt 0.087963 0.579545 +vt 0.060185 0.585227 +vt 0.083333 0.477273 +vt 0.101852 0.488636 +vt 0.083333 0.488636 +vt 0.083333 0.443182 +vt 0.101852 0.454545 +vt 0.083333 0.454545 +vt 0.101852 0.477273 +vt 0.111111 0.488636 +vt 0.074074 0.477273 +vt 0.101852 0.465909 +vt 0.083333 0.500000 +vt 0.101852 0.443182 +vt 0.111111 0.454545 +vt 0.074074 0.443182 +vt 0.101852 0.431818 +vt 0.083333 0.465909 +vt 0.083333 0.443182 +vt 0.101852 0.454545 +vt 0.083333 0.454545 +vt 0.101852 0.443182 +vt 0.111111 0.454545 +vt 0.074074 0.443182 +vt 0.101852 0.431818 +vt 0.083333 0.465909 +vt 0.055556 0.562500 +vt 0.037037 0.505682 +vt 0.055556 0.505682 +vt 0.111111 0.522727 +vt 0.074074 0.545455 +vt 0.074074 0.522727 +vt 0.018519 0.545455 +vt 0.018519 0.522727 +vt 0.092593 0.500000 +vt 0.074074 0.500000 +vt 0.092593 0.568182 +vt 0.111111 0.545455 +vt 1.000000 0.863636 +vt 0.555556 1.000000 +vt 0.555556 0.863636 +vt 0.555556 1.000000 +vt 1.000000 0.863636 +vt 1.000000 1.000000 +vt 0.166667 0.562500 +vt 0.185185 0.534091 +vt 0.185185 0.562500 +vt 0.185185 0.573864 +vt 0.166667 0.573864 +vt 0.111111 0.562500 +vt 0.185185 0.602273 +vt -0.000000 0.607955 +vt 0.023148 0.642045 +vt -0.000000 0.642045 +vt 0.023148 0.607955 +vt 0.032407 0.642045 +vt 0.032407 0.607955 +vt 0.050926 0.642045 +vt 0.050926 0.607955 +vt 0.060185 0.642045 +vt 0.060185 0.607955 +vt 0.083333 0.642045 +vt 0.060185 0.653409 +vt 0.060185 0.681818 +vt 0.023148 0.681818 +vt 0.023148 0.596591 +vt 0.069444 0.585227 +vt 0.087963 0.596591 +vt 0.069444 0.596591 +vt 0.087963 0.568182 +vt 0.069444 0.579545 +vt 0.069444 0.568182 +vt 0.087963 0.585227 +vt 0.097222 0.579545 +vt 0.097222 0.585227 +vt 0.087963 0.579545 +vt 0.060185 0.585227 +vt 0.120370 0.642045 +vt 0.083333 0.670455 +vt 0.083333 0.642045 +vt 0.083333 0.602273 +vt 0.120370 0.630682 +vt 0.083333 0.630682 +vt 0.143519 0.630682 +vt 0.143519 0.642045 +vt 0.196368 0.480158 +vt 0.220299 0.480158 +vt 0.208333 0.505593 +vt 0.211665 0.522687 +vt 0.203704 0.528328 +vt 0.195742 0.511404 +vt 0.067398 0.031336 +vt 0.018631 0.096832 +vt 0.018631 0.000276 +vt 0.067398 0.122245 +vt 0.062346 0.099102 +vt 0.092593 0.318182 +vt 0.006676 0.150482 +vt 0.055443 0.175895 +vt 0.055443 0.181542 +vt 0.018631 0.175895 +vt 0.043488 0.167424 +vt 0.067398 0.150482 +vt 0.006676 0.059573 +vt 0.030586 0.031336 +vt 0.025533 0.037537 +vt 0.030586 0.076515 +vt 0.043488 0.122245 +vt 0.511621 0.673238 +vt 0.513558 0.678977 +vt 0.511621 0.684717 +vt 0.502268 0.684717 +vt 0.500331 0.678977 +vt 0.486111 0.704545 +vt 0.486442 0.678978 +vt 0.488379 0.673238 +vt 0.493056 0.670861 +vt 0.499669 0.678978 +vt 0.493056 0.687094 +vt 0.310185 0.670455 +vt 0.000000 0.431818 +vt 0.018519 0.318182 +vt 0.083333 0.607955 +vt 0.023148 0.653409 +vt 0.023148 0.568182 +vt 0.060185 0.568182 +vt 0.060185 0.596591 +vt 0.120370 0.670455 +vt 0.120370 0.602273 +vt 0.111111 0.534091 +vt 0.111111 0.573864 +vt 0.111111 0.602273 +vt 0.111111 0.397727 +vt 0.722222 0.352273 +vt 0.648148 0.284091 +vt 0.944444 0.034091 +vt 0.935185 0.045455 +vt 0.916667 0.045455 +vt 0.907407 0.011364 +vt 0.935185 0.000000 +vt 0.750000 0.375000 +vt 0.750000 0.284091 +vt 0.740741 0.318182 +vt 0.811791 0.583257 +vt 0.814373 0.590909 +vt 0.811791 0.598561 +vt 0.799320 0.598561 +vt 0.799320 0.583257 +vt 0.745464 0.641931 +vt 0.749338 0.653409 +vt 0.745464 0.664888 +vt 0.726758 0.664888 +vt 0.726758 0.641931 +vt 0.754698 0.641903 +vt 0.764050 0.637148 +vt 0.773403 0.641903 +vt 0.773403 0.664860 +vt 0.754698 0.664860 +vt 0.745370 0.500000 +vt 0.652778 0.568182 +vt 0.745370 0.500000 +vt 0.837963 0.568182 +vt 0.754698 0.641903 +vt 0.764050 0.637148 +vt 0.773403 0.641903 +vt 0.773403 0.664860 +vt 0.754698 0.664860 +vt 0.745464 0.641931 +vt 0.749338 0.653409 +vt 0.745464 0.664888 +vt 0.726758 0.664888 +vt 0.726758 0.641931 +vt 0.811791 0.583257 +vt 0.814373 0.590909 +vt 0.811791 0.598561 +vt 0.799320 0.598561 +vt 0.799320 0.583257 +vt 0.060185 0.579545 +vt 0.111111 0.477273 +vt 0.074074 0.488636 +vt 0.083333 0.465909 +vt 0.101852 0.500000 +vt 0.111111 0.443182 +vt 0.074074 0.454545 +vt 0.083333 0.431818 +vt 0.101852 0.465909 +vt 0.111111 0.443182 +vt 0.074074 0.454545 +vt 0.083333 0.431818 +vt 0.101852 0.465909 +vt 0.037037 0.562500 +vt 0.074074 0.568182 +vt 1.000000 1.000000 +vt 0.555556 0.863636 +vt 0.111111 0.534091 +vt 0.111111 0.573864 +vt 0.111111 0.602273 +vt 0.083333 0.607955 +vt 0.023148 0.653409 +vt 0.023148 0.568182 +vt 0.060185 0.568182 +vt 0.060185 0.596591 +vt 0.060185 0.579545 +vt 0.120370 0.670455 +vt 0.120370 0.602273 +vt 0.201425 0.503321 +vt 0.196368 0.497115 +vt 0.194517 0.488636 +vt 0.201425 0.473951 +vt 0.208333 0.471680 +vt 0.215242 0.473951 +vt 0.222150 0.488636 +vt 0.220299 0.497115 +vt 0.215242 0.503321 +vt 0.199107 0.526816 +vt 0.195742 0.522687 +vt 0.194510 0.517045 +vt 0.199107 0.507274 +vt 0.203704 0.505763 +vt 0.208300 0.507274 +vt 0.211665 0.511404 +vt 0.212897 0.517045 +vt 0.208300 0.526816 +vt 0.074074 0.090909 +vt 0.611111 0.079545 +vt 0.611111 0.090909 +vt 0.074074 0.079545 +vt 0.611111 0.068182 +vt 0.074074 0.068182 +vt 0.611111 0.056818 +vt 0.074074 0.056818 +vt 0.611111 0.045455 +vt -0.000000 0.863636 +vt 0.532407 0.869318 +vt -0.000000 0.869318 +vt -0.000000 0.880682 +vt 0.532407 0.886364 +vt -0.000000 0.886364 +vt -0.000000 0.909091 +vt 0.532407 0.914773 +vt -0.000000 0.914773 +vt -0.000000 0.926136 +vt 0.532407 0.931818 +vt -0.000000 0.931818 +vt -0.000000 0.875000 +vt 0.532407 0.880682 +vt -0.000000 0.903409 +vt 0.532407 0.909091 +vt -0.000000 0.892045 +vt 0.532407 0.897727 +vt -0.000000 0.897727 +vt -0.000000 0.920455 +vt 0.532407 0.926136 +vt 0.532407 0.875000 +vt 0.532407 0.903409 +vt 0.532407 0.892045 +vt 0.532407 0.920455 +vt 0.074074 0.318182 +vt 0.611111 0.306818 +vt 0.611111 0.318182 +vt 0.074074 0.306818 +vt 0.611111 0.295455 +vt 0.074074 0.295455 +vt 0.611111 0.284091 +vt 0.074074 0.284091 +vt 0.611111 0.272727 +vt -0.000000 0.863636 +vt 0.532407 0.869318 +vt -0.000000 0.869318 +vt -0.000000 0.880682 +vt 0.532407 0.886364 +vt -0.000000 0.886364 +vt -0.000000 0.909091 +vt 0.532407 0.914773 +vt -0.000000 0.914773 +vt -0.000000 0.926136 +vt 0.532407 0.931818 +vt -0.000000 0.931818 +vt -0.000000 0.875000 +vt 0.532407 0.880682 +vt -0.000000 0.903409 +vt 0.532407 0.909091 +vt -0.000000 0.892045 +vt 0.532407 0.897727 +vt -0.000000 0.897727 +vt -0.000000 0.920455 +vt 0.532407 0.926136 +vt 0.532407 0.875000 +vt 0.532407 0.903409 +vt 0.532407 0.892045 +vt 0.532407 0.920455 +vt 0.074074 0.136364 +vt 0.537037 0.147727 +vt 0.074074 0.147727 +vt 0.074074 0.159091 +vt 0.537037 0.159091 +vt 0.074074 0.204545 +vt 0.074074 0.113636 +vt 0.611111 0.102273 +vt 0.611111 0.113636 +vt 0.074074 0.045455 +vt 0.611111 0.000000 +vt -0.000000 0.863636 +vt 0.532407 0.869318 +vt -0.000000 0.869318 +vt -0.000000 0.880682 +vt 0.532407 0.886364 +vt -0.000000 0.886364 +vt -0.000000 0.909091 +vt 0.532407 0.914773 +vt -0.000000 0.914773 +vt -0.000000 0.926136 +vt 0.532407 0.931818 +vt -0.000000 0.931818 +vt -0.000000 0.875000 +vt 0.532407 0.880682 +vt -0.000000 0.903409 +vt 0.532407 0.909091 +vt -0.000000 0.892045 +vt 0.532407 0.897727 +vt -0.000000 0.897727 +vt -0.000000 0.920455 +vt 0.532407 0.926136 +vt 0.532407 0.875000 +vt 0.532407 0.903409 +vt 0.532407 0.892045 +vt 0.532407 0.920455 +vt 0.611111 0.261364 +vt 0.074074 0.250000 +vt 0.611111 0.250000 +vt 0.074074 0.272727 +vt -0.000000 0.863636 +vt 0.532407 0.869318 +vt -0.000000 0.869318 +vt -0.000000 0.880682 +vt 0.532407 0.886364 +vt -0.000000 0.886364 +vt -0.000000 0.909091 +vt 0.532407 0.914773 +vt -0.000000 0.914773 +vt -0.000000 0.926136 +vt 0.532407 0.931818 +vt -0.000000 0.931818 +vt -0.000000 0.875000 +vt 0.532407 0.880682 +vt -0.000000 0.903409 +vt 0.532407 0.909091 +vt -0.000000 0.892045 +vt 0.532407 0.897727 +vt -0.000000 0.897727 +vt -0.000000 0.920455 +vt 0.532407 0.926136 +vt 0.532407 0.875000 +vt 0.532407 0.903409 +vt 0.532407 0.892045 +vt 0.532407 0.920455 +vt 0.537037 0.125000 +vt 0.074074 0.125000 +vt 0.537037 0.215909 +vt 0.074074 0.215909 +vt 0.537037 0.227273 +vt 0.074074 0.227273 +vt 0.074074 0.238636 +vt 0.560185 0.659091 +vt 0.467593 0.664773 +vt 0.467593 0.659091 +vt 0.560185 0.664773 +vt 0.467593 0.670455 +vt 0.560185 0.625000 +vt 0.467593 0.630682 +vt 0.467593 0.625000 +vt 0.560185 0.630682 +vt 0.467593 0.636364 +vt 0.560185 0.636364 +vt 0.467593 0.642045 +vt 0.560185 0.642045 +vt 0.467593 0.647727 +vt 0.560185 0.647727 +vt 0.467593 0.653409 +vt 0.560185 0.653409 +vt 0.537037 0.238636 +vt 0.611111 0.238636 +vt 0.833333 0.204545 +vt 0.851852 0.045455 +vt 0.851852 0.204545 +vt 0.981481 0.045455 +vt 0.962963 0.068182 +vt 0.962963 0.045455 +vt 0.981481 0.068182 +vt 0.962963 0.181818 +vt 0.981481 0.181818 +vt 0.962963 0.204545 +vt 0.981481 0.204545 +vt 0.962963 0.250000 +vt 0.925926 0.181818 +vt 0.953704 0.068182 +vt 0.916667 0.181818 +vt 0.907407 0.045455 +vt 0.861111 0.204545 +vt 0.953704 0.068182 +vt 0.916667 0.181818 +vt 0.861111 0.227273 +vt 0.851852 0.227273 +vt 0.925926 0.204545 +vt 0.953704 0.250000 +vt 0.916667 0.204545 +vt 0.925926 0.181818 +vt 0.944444 0.045455 +vt 0.935185 0.045455 +vt 0.916667 0.045455 +vt 0.861111 0.204545 +vt 0.861111 0.227273 +vt 0.870370 0.227273 +vt 0.851852 0.227273 +vt 0.851852 0.204545 +vt 0.944444 0.045455 +vt 0.962963 0.068182 +vt 0.907407 0.045455 +vt 0.925926 0.204545 +vt 0.953704 0.250000 +vt 0.962963 0.250000 +vt 0.916667 0.204545 +vt 0.870370 0.250000 +vt 0.870370 0.227273 +vt 0.870370 0.250000 +vt 0.870370 0.568182 +vt 0.861111 0.579545 +vt 0.861111 0.568182 +vt 0.814815 0.568182 +vt 0.805556 0.579545 +vt 0.805556 0.568182 +vt 0.833333 0.568182 +vt 0.824074 0.579545 +vt 0.824074 0.568182 +vt 0.851852 0.568182 +vt 0.842593 0.579545 +vt 0.842593 0.568182 +vt 0.851852 0.579545 +vt 0.796296 0.579545 +vt 0.796296 0.568182 +vt 0.814815 0.579545 +vt 0.833333 0.579545 +vt 0.796296 0.568182 +vt 0.787037 0.636364 +vt 0.787037 0.568182 +vt 0.740741 0.568182 +vt 0.731481 0.636364 +vt 0.731481 0.568182 +vt 0.759259 0.568182 +vt 0.750000 0.636364 +vt 0.750000 0.568182 +vt 0.777778 0.568182 +vt 0.768519 0.636364 +vt 0.768519 0.568182 +vt 0.777778 0.636364 +vt 0.722222 0.636364 +vt 0.722222 0.568182 +vt 0.740741 0.636364 +vt 0.759259 0.636364 +vt 0.726852 0.477273 +vt 0.745370 0.477273 +vt 0.652778 0.500000 +vt 0.652778 0.477273 +vt 0.763889 0.477273 +vt 0.837963 0.500000 +vt 0.837963 0.477273 +vt 0.768519 0.568182 +vt 0.759259 0.636364 +vt 0.759259 0.568182 +vt 0.750000 0.568182 +vt 0.740741 0.636364 +vt 0.740741 0.568182 +vt 0.731481 0.568182 +vt 0.722222 0.636364 +vt 0.722222 0.568182 +vt 0.787037 0.568182 +vt 0.777778 0.636364 +vt 0.777778 0.568182 +vt 0.768519 0.636364 +vt 0.750000 0.636364 +vt 0.731481 0.636364 +vt 0.796296 0.568182 +vt 0.787037 0.636364 +vt 0.842593 0.568182 +vt 0.833333 0.579545 +vt 0.833333 0.568182 +vt 0.824074 0.568182 +vt 0.814815 0.579545 +vt 0.814815 0.568182 +vt 0.805556 0.568182 +vt 0.796296 0.579545 +vt 0.796296 0.568182 +vt 0.861111 0.568182 +vt 0.851852 0.579545 +vt 0.851852 0.568182 +vt 0.842593 0.579545 +vt 0.824074 0.579545 +vt 0.805556 0.579545 +vt 0.870370 0.568182 +vt 0.861111 0.579545 +vt 0.226852 0.488636 +vt 0.222222 0.494318 +vt 0.222222 0.488636 +vt 0.222222 0.448864 +vt 0.226852 0.454545 +vt 0.222222 0.454545 +vt 0.222222 0.500000 +vt 0.226852 0.505682 +vt 0.222222 0.505682 +vt 0.226852 0.500000 +vt 0.226852 0.471591 +vt 0.222222 0.477273 +vt 0.222222 0.471591 +vt 0.222222 0.460227 +vt 0.226852 0.437500 +vt 0.222222 0.443182 +vt 0.222222 0.437500 +vt 0.226852 0.477273 +vt 0.222222 0.482955 +vt 0.226852 0.465909 +vt 0.222222 0.465909 +vt 0.226852 0.443182 +vt 0.532407 0.863636 +vt 0.532407 0.863636 +vt 0.537037 0.136364 +vt 0.537037 0.204545 +vt 0.074074 0.102273 +vt 0.074074 0.000000 +vt 0.532407 0.863636 +vt 0.074074 0.261364 +vt 0.532407 0.863636 +vt 0.560185 0.670455 +vt 0.611111 0.125000 +vt 0.833333 0.045455 +vt 0.981481 0.250000 +vt 0.870370 0.579545 +vt 0.796296 0.636364 +vt 0.726852 0.500000 +vt 0.763889 0.500000 +vt 0.796296 0.636364 +vt 0.870370 0.579545 +vt 0.226852 0.494318 +vt 0.226852 0.448864 +vt 0.226852 0.460227 +vt 0.226852 0.482955 +vn 0.0000 0.0000 1.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.5547 -0.8321 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9231 0.3846 +vn 0.0000 0.7085 0.7057 +vn 0.8000 -0.6000 0.0000 +vn -0.8000 -0.6000 0.0000 +vn 0.9018 0.4321 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.1305 -0.9914 -0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.1305 -0.9914 -0.0000 +vn -0.9018 0.4321 0.0000 +vn 0.1305 0.9914 0.0000 +vn -0.1305 0.9914 0.0000 +vn 0.9018 -0.4321 0.0000 +vn 0.8069 -0.5907 0.0000 +vn 0.8069 0.5907 0.0000 +vn -0.8069 -0.5907 0.0000 +vn -0.9018 -0.4321 0.0000 +vn -0.8069 0.5907 0.0000 +vn 0.9960 -0.0890 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.0000 -0.7071 0.7071 +vn -0.9960 -0.0890 0.0000 +vn -0.9659 -0.2588 0.0000 +vn -0.4858 -0.2432 0.8396 +vn 0.3929 -0.3622 0.8452 +vn 0.4858 -0.2432 0.8396 +vn -0.3458 -0.6635 -0.6635 +vn 0.3395 -0.1767 -0.9239 +vn 0.3458 -0.6635 -0.6635 +vn -0.3395 -0.1767 -0.9239 +vn 0.3945 0.1811 -0.9009 +vn -0.3945 0.1811 -0.9009 +vn 0.3878 -0.3878 -0.8361 +vn -0.3878 -0.3878 -0.8361 +vn 0.2418 -0.6861 -0.6861 +vn -0.8661 -0.1385 -0.4802 +vn -0.9386 0.0604 -0.3398 +vn 0.9032 -0.0951 0.4186 +vn 0.9487 -0.1245 0.2905 +vn 0.8661 -0.1385 -0.4802 +vn 0.9386 0.0604 -0.3398 +vn 0.9239 0.0000 0.3827 +vn 0.7071 0.0000 0.7071 +vn 0.7592 -0.4602 -0.4602 +vn 0.9518 -0.1020 -0.2893 +vn 0.9607 -0.1962 -0.1962 +vn -0.9607 -0.1962 -0.1962 +vn -0.9487 -0.1245 0.2905 +vn -0.9032 -0.0951 0.4186 +vn -0.9239 0.0000 0.3827 +vn -0.7071 0.0000 0.7071 +vn -0.3929 -0.3622 0.8452 +vn -0.7592 -0.4602 -0.4602 +vn -0.2418 -0.6861 -0.6861 +vn -0.9518 -0.1020 -0.2893 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 -0.5547 0.8321 +vn 0.0000 -0.7833 0.6216 +vn 0.0000 -0.9363 0.3511 +vn 0.0000 -0.7833 -0.6216 +vn 0.0000 -0.9363 -0.3511 +vn -0.6124 -0.3536 -0.7071 +vn 0.6124 -0.3536 -0.7071 +vn -0.3536 -0.6124 -0.7071 +vn -0.3536 0.6124 -0.7071 +vn 0.6124 0.3536 -0.7071 +vn 0.3536 -0.6124 -0.7071 +vn -0.6124 0.3536 -0.7071 +vn 0.3536 0.6124 -0.7071 +vn 0.9659 -0.2588 0.0000 +s off +f 202/305/57 210/306/57 209/307/57 +f 198/308/57 210/306/57 200/309/57 +f 198/308/57 212/310/57 211/311/57 +f 194/312/57 212/310/57 196/313/57 +f 197/314/58 224/315/58 195/316/58 +f 224/315/58 193/317/58 195/316/58 +f 201/318/58 222/319/58 199/320/58 +f 199/320/58 223/321/58 197/314/58 +f 230/322/57 241/323/57 232/324/57 +f 230/322/57 243/325/57 242/326/57 +f 236/327/57 240/328/57 239/329/57 +f 232/324/57 240/328/57 234/330/57 +f 235/331/58 252/332/58 233/333/58 +f 252/332/58 231/334/58 233/333/58 +f 253/335/58 229/336/58 231/334/58 +f 229/336/58 255/337/58 227/338/58 +f 295/339/57 261/340/57 299/341/57 +f 270/342/57 280/343/57 279/344/57 +f 266/345/57 280/343/57 268/346/57 +f 264/347/57 281/348/57 266/345/57 +f 264/347/57 271/349/57 282/350/57 +f 269/351/58 292/352/58 267/353/58 +f 267/354/59 261/340/59 301/355/59 +f 265/356/60 303/357/60 263/358/60 +f 265/356/60 362/359/60 361/360/60 +f 263/361/58 284/362/58 328/363/58 +f 320/364/58 297/365/58 364/366/58 +f 360/367/58 318/368/58 319/369/58 +f 304/370/57 305/371/57 296/372/57 +f 304/370/57 307/373/57 306/374/57 +f 302/375/57 308/376/57 307/373/57 +f 298/377/57 308/376/57 300/378/57 +f 303/379/58 293/380/58 294/381/58 +f 310/382/57 298/377/57 332/383/57 +f 238/384/57 236/327/57 239/329/57 +f 204/385/57 275/386/57 312/387/57 +f 237/388/57 312/387/57 311/389/57 +f 311/389/57 310/382/57 332/383/57 +f 274/390/57 313/391/57 275/386/57 +f 203/392/57 276/393/57 204/385/57 +f 205/394/57 246/395/57 206/396/57 +f 278/397/57 270/342/57 279/344/57 +f 214/398/57 194/312/57 330/399/57 +f 330/399/57 277/400/57 203/392/57 +f 206/396/57 245/401/57 207/402/57 +f 244/403/57 202/305/57 208/404/57 +f 273/405/57 314/406/57 274/390/57 +f 272/407/57 262/408/57 316/409/57 +f 226/410/58 193/317/58 225/411/58 +f 290/412/58 269/351/58 329/413/58 +f 297/365/58 322/414/58 331/415/58 +f 250/416/58 235/331/58 331/415/58 +f 289/417/58 290/412/58 329/413/58 +f 331/415/58 323/418/58 249/419/58 +f 257/420/58 218/421/58 219/422/58 +f 220/423/58 201/318/58 256/424/58 +f 326/425/58 285/426/58 286/427/58 +f 325/428/58 286/427/58 287/429/58 +f 249/419/58 324/430/58 260/431/58 +f 258/432/58 217/433/58 218/421/58 +f 288/434/58 215/435/58 216/436/58 +f 288/434/58 216/436/58 324/430/58 +f 342/437/59 340/438/59 348/439/59 +f 351/440/61 333/441/61 334/442/61 +f 341/443/62 345/444/62 349/445/62 +f 353/446/63 334/442/63 333/441/63 +f 355/447/64 354/448/64 353/446/64 +f 357/449/65 356/450/65 355/447/65 +f 356/451/62 358/452/62 351/453/62 +f 352/454/59 357/455/59 355/456/59 +f 359/457/60 362/359/60 360/458/60 +f 360/458/62 363/459/62 359/457/62 +f 366/460/57 365/461/57 359/457/57 +f 367/462/57 370/463/57 368/464/57 +f 369/465/66 372/466/66 370/463/66 +f 371/467/60 374/468/60 372/466/60 +f 373/469/67 376/470/67 374/468/67 +f 375/471/58 378/472/58 376/470/58 +f 376/473/62 378/474/62 368/475/62 +f 373/469/59 371/467/59 369/476/59 +f 381/477/62 380/478/62 379/479/62 +f 383/480/59 386/481/59 384/482/59 +f 381/477/58 385/483/58 382/484/58 +f 379/479/60 386/481/60 381/477/60 +f 390/485/59 387/486/59 388/487/59 +f 391/488/60 390/485/60 388/487/60 +f 393/489/68 389/490/68 390/485/68 +f 394/491/62 393/489/62 391/488/62 +f 406/492/57 403/493/57 404/494/57 +f 402/495/60 399/496/60 400/497/60 +f 395/498/59 401/499/59 397/500/59 +f 397/501/69 402/495/69 398/502/69 +f 396/503/62 402/495/62 400/497/62 +f 396/504/58 399/496/58 395/505/58 +f 424/506/59 407/507/59 403/508/59 +f 423/509/62 410/510/62 406/492/62 +f 410/510/63 405/511/63 406/492/63 +f 411/512/63 440/513/63 414/514/63 +f 427/515/62 423/509/62 408/516/62 +f 407/507/59 426/517/59 428/518/59 +f 426/517/57 438/519/57 428/518/57 +f 426/517/60 429/520/60 437/521/60 +f 427/515/57 447/522/57 425/523/57 +f 425/523/60 446/524/60 423/509/60 +f 452/525/60 450/526/60 456/527/60 +f 468/528/60 466/529/60 472/530/60 +f 474/531/63 476/532/63 478/533/63 +f 490/534/62 486/535/62 488/536/62 +f 487/537/59 481/538/59 489/539/59 +f 497/540/63 495/541/63 493/542/63 +f 503/543/60 505/544/60 499/545/60 +f 519/546/60 521/547/60 515/548/60 +f 525/549/62 524/550/62 523/551/62 +f 527/552/59 530/553/59 528/554/59 +f 526/555/58 527/556/58 524/557/58 +f 525/549/60 529/558/60 526/555/60 +f 523/559/57 530/553/57 525/549/57 +f 532/560/60 533/561/60 531/562/60 +f 540/563/60 541/564/60 539/565/60 +f 534/566/58 535/567/58 533/561/58 +f 531/562/57 537/568/57 532/560/57 +f 532/560/59 538/569/59 534/566/59 +f 533/561/62 536/570/62 531/562/62 +f 542/571/58 543/572/58 541/564/58 +f 539/565/57 545/573/57 540/563/57 +f 540/563/59 546/574/59 542/571/59 +f 541/564/62 544/575/62 539/565/62 +f 548/576/60 549/577/60 547/578/60 +f 550/579/58 551/580/58 549/577/58 +f 547/578/57 553/581/57 548/576/57 +f 548/576/59 554/582/59 550/579/59 +f 549/577/62 552/583/62 547/578/62 +f 557/584/60 555/585/60 556/586/60 +f 559/587/63 561/588/63 560/589/63 +f 555/585/66 562/590/66 559/591/66 +f 555/592/70 560/589/70 556/593/70 +f 556/586/58 561/588/58 557/584/58 +f 558/594/71 561/588/71 562/595/71 +f 564/596/59 563/597/59 565/598/59 +f 568/599/62 569/600/62 567/601/62 +f 574/602/59 571/603/59 572/604/59 +f 575/605/60 574/602/60 572/604/60 +f 577/606/68 573/607/68 574/602/68 +f 578/608/62 577/606/62 575/605/62 +f 579/609/57 582/610/57 580/611/57 +f 581/612/66 584/613/66 582/610/66 +f 583/614/60 586/615/60 584/613/60 +f 585/616/67 588/617/67 586/615/67 +f 587/618/58 590/619/58 588/617/58 +f 588/620/62 590/621/62 580/622/62 +f 585/616/59 583/614/59 581/623/59 +f 593/624/62 592/625/62 591/626/62 +f 595/627/59 598/628/59 596/629/59 +f 594/630/58 595/631/58 592/632/58 +f 593/624/60 597/633/60 594/630/60 +f 591/634/57 598/628/57 593/624/57 +f 601/635/62 600/636/62 599/637/62 +f 603/638/59 606/639/59 604/640/59 +f 601/635/58 605/641/58 602/642/58 +f 599/637/60 606/639/60 601/635/60 +f 611/643/57 615/644/57 607/645/57 +f 628/646/58 630/647/58 622/648/58 +f 202/305/57 200/309/57 210/306/57 +f 198/308/57 211/311/57 210/306/57 +f 198/308/57 196/313/57 212/310/57 +f 194/312/57 213/649/57 212/310/57 +f 197/314/58 223/321/58 224/315/58 +f 224/315/58 225/411/58 193/317/58 +f 201/318/58 221/650/58 222/319/58 +f 199/320/58 222/319/58 223/321/58 +f 230/322/57 242/326/57 241/323/57 +f 230/322/57 228/651/57 243/325/57 +f 236/327/57 234/330/57 240/328/57 +f 232/324/57 241/323/57 240/328/57 +f 235/331/58 251/652/58 252/332/58 +f 252/332/58 253/335/58 231/334/58 +f 253/335/58 254/653/58 229/336/58 +f 229/336/58 254/653/58 255/337/58 +f 295/339/57 301/654/57 261/340/57 +f 261/340/57 265/356/57 299/341/57 +f 270/342/57 268/346/57 280/343/57 +f 266/345/57 281/348/57 280/343/57 +f 264/347/57 282/350/57 281/348/57 +f 264/347/57 262/408/57 271/349/57 +f 269/351/58 291/655/58 292/352/58 +f 267/354/59 303/357/59 261/340/59 +f 265/356/60 261/340/60 303/357/60 +f 265/356/60 263/358/60 362/359/60 +f 317/656/58 362/657/58 328/363/58 +f 362/657/58 263/361/58 328/363/58 +f 263/361/58 283/658/58 284/362/58 +f 284/362/58 285/426/58 327/659/58 +f 284/362/58 327/659/58 328/363/58 +f 320/364/58 321/660/58 297/365/58 +f 320/364/58 364/366/58 319/369/58 +f 364/366/58 360/367/58 319/369/58 +f 360/367/58 362/657/58 318/368/58 +f 362/657/58 317/656/58 318/368/58 +f 304/370/57 306/374/57 305/371/57 +f 304/370/57 302/375/57 307/373/57 +f 302/375/57 300/378/57 308/376/57 +f 298/377/57 309/661/57 308/376/57 +f 303/379/58 267/353/58 293/380/58 +f 267/353/58 292/352/58 293/380/58 +f 283/658/58 263/361/58 294/381/58 +f 263/361/58 303/379/58 294/381/58 +f 310/382/57 309/661/57 298/377/57 +f 238/384/57 332/383/57 236/327/57 +f 247/662/57 205/394/57 204/385/57 +f 204/385/57 276/393/57 275/386/57 +f 275/386/57 313/391/57 312/387/57 +f 312/387/57 248/663/57 247/662/57 +f 247/662/57 204/385/57 312/387/57 +f 237/388/57 248/663/57 312/387/57 +f 332/383/57 238/384/57 237/388/57 +f 237/388/57 311/389/57 332/383/57 +f 274/390/57 314/406/57 313/391/57 +f 203/392/57 277/400/57 276/393/57 +f 205/394/57 247/662/57 246/395/57 +f 278/397/57 330/399/57 270/342/57 +f 214/398/57 213/649/57 194/312/57 +f 203/392/57 214/398/57 330/399/57 +f 330/399/57 278/397/57 277/400/57 +f 206/396/57 246/395/57 245/401/57 +f 208/404/57 207/402/57 244/403/57 +f 207/402/57 245/401/57 244/403/57 +f 244/403/57 243/325/57 228/651/57 +f 202/305/57 209/307/57 208/404/57 +f 244/403/57 228/651/57 202/305/57 +f 273/405/57 315/664/57 314/406/57 +f 272/407/57 271/349/57 262/408/57 +f 262/408/57 296/372/57 316/409/57 +f 296/372/57 305/371/57 316/409/57 +f 316/409/57 315/664/57 273/405/57 +f 316/409/57 273/405/57 272/407/57 +f 226/410/58 329/413/58 193/317/58 +f 290/412/58 291/655/58 269/351/58 +f 297/365/58 321/660/58 322/414/58 +f 250/416/58 251/652/58 235/331/58 +f 226/410/58 215/435/58 329/413/58 +f 215/435/58 289/417/58 329/413/58 +f 249/419/58 250/416/58 331/415/58 +f 331/415/58 322/414/58 323/418/58 +f 257/420/58 258/432/58 218/421/58 +f 257/420/58 219/422/58 256/424/58 +f 219/422/58 220/423/58 256/424/58 +f 220/423/58 221/650/58 201/318/58 +f 201/318/58 227/338/58 256/424/58 +f 227/338/58 255/337/58 256/424/58 +f 326/425/58 327/659/58 285/426/58 +f 325/428/58 326/425/58 286/427/58 +f 249/419/58 323/418/58 324/430/58 +f 258/432/58 259/665/58 217/433/58 +f 288/434/58 289/417/58 215/435/58 +f 216/436/58 217/433/58 324/430/58 +f 217/433/58 259/665/58 324/430/58 +f 259/665/58 260/431/58 324/430/58 +f 324/430/58 325/428/58 287/429/58 +f 287/429/58 288/434/58 324/430/58 +f 340/438/59 338/666/59 336/667/59 +f 336/667/59 350/668/59 340/438/59 +f 350/668/59 348/439/59 340/438/59 +f 348/439/59 346/669/59 344/670/59 +f 344/670/59 342/437/59 348/439/59 +f 351/440/61 352/671/61 333/441/61 +f 349/445/62 335/672/62 337/673/62 +f 337/673/62 339/674/62 349/445/62 +f 339/674/62 341/443/62 349/445/62 +f 341/443/62 343/675/62 345/444/62 +f 345/444/62 347/676/62 349/445/62 +f 353/446/63 354/448/63 334/442/63 +f 355/447/64 356/450/64 354/448/64 +f 357/449/65 358/677/65 356/450/65 +f 351/453/62 334/442/62 356/451/62 +f 334/442/62 354/448/62 356/451/62 +f 353/446/59 333/441/59 355/456/59 +f 333/441/59 352/454/59 355/456/59 +f 359/457/60 361/360/60 362/359/60 +f 360/458/62 364/678/62 363/459/62 +f 365/461/57 361/360/57 359/457/57 +f 359/457/57 363/679/57 366/460/57 +f 367/462/57 369/465/57 370/463/57 +f 369/465/66 371/467/66 372/466/66 +f 371/467/60 373/469/60 374/468/60 +f 373/469/67 375/471/67 376/470/67 +f 375/471/58 377/680/58 378/472/58 +f 368/475/62 370/681/62 376/473/62 +f 370/681/62 372/466/62 376/473/62 +f 372/466/62 374/468/62 376/473/62 +f 369/476/59 367/682/59 377/683/59 +f 377/683/59 375/684/59 369/476/59 +f 375/684/59 373/469/59 369/476/59 +f 381/477/62 382/685/62 380/478/62 +f 383/480/59 385/686/59 386/481/59 +f 381/477/58 386/481/58 385/483/58 +f 379/479/60 384/482/60 386/481/60 +f 390/485/59 389/687/59 387/486/59 +f 391/488/60 393/489/60 390/485/60 +f 393/489/68 392/688/68 389/490/68 +f 394/491/62 392/689/62 393/489/62 +f 406/492/57 405/511/57 403/493/57 +f 402/495/60 401/499/60 399/496/60 +f 395/498/59 399/496/59 401/499/59 +f 397/501/69 401/499/69 402/495/69 +f 396/503/62 398/690/62 402/495/62 +f 396/504/58 400/497/58 399/496/58 +f 403/508/59 405/511/59 424/506/59 +f 405/511/59 409/691/59 424/506/59 +f 406/492/62 404/692/62 423/509/62 +f 404/692/62 408/516/62 423/509/62 +f 410/510/63 409/691/63 405/511/63 +f 414/514/63 413/693/63 432/694/63 +f 432/694/63 431/695/63 411/512/63 +f 411/512/63 412/696/63 440/513/63 +f 440/513/63 441/697/63 414/514/63 +f 414/514/63 432/694/63 411/512/63 +f 427/515/62 425/523/62 423/509/62 +f 407/507/59 424/506/59 426/517/59 +f 426/517/57 437/698/57 438/519/57 +f 426/517/60 424/506/60 429/520/60 +f 427/515/57 448/699/57 447/522/57 +f 425/523/60 447/700/60 446/524/60 +f 456/527/60 455/701/60 454/702/60 +f 454/702/60 453/703/60 452/525/60 +f 452/525/60 451/704/60 450/526/60 +f 450/526/60 449/705/60 456/527/60 +f 456/527/60 454/702/60 452/525/60 +f 472/530/60 471/706/60 470/707/60 +f 470/707/60 469/708/60 468/528/60 +f 468/528/60 467/709/60 466/529/60 +f 466/529/60 465/710/60 472/530/60 +f 472/530/60 470/707/60 468/528/60 +f 478/533/63 479/711/63 480/712/63 +f 480/712/63 473/713/63 474/531/63 +f 474/531/63 475/714/63 476/532/63 +f 476/532/63 477/715/63 478/533/63 +f 478/533/63 480/712/63 474/531/63 +f 488/536/62 484/716/62 490/534/62 +f 490/534/62 482/717/62 486/535/62 +f 489/539/59 483/718/59 487/537/59 +f 487/537/59 485/719/59 481/538/59 +f 493/542/63 492/720/63 491/721/63 +f 491/721/63 498/722/63 497/540/63 +f 497/540/63 496/723/63 495/541/63 +f 495/541/63 494/724/63 493/542/63 +f 493/542/63 491/721/63 497/540/63 +f 499/545/60 500/725/60 501/726/60 +f 501/726/60 502/727/60 503/543/60 +f 503/543/60 504/728/60 505/544/60 +f 505/544/60 506/729/60 499/545/60 +f 499/545/60 501/726/60 503/543/60 +f 515/548/60 516/730/60 517/731/60 +f 517/731/60 518/732/60 519/546/60 +f 519/546/60 520/733/60 521/547/60 +f 521/547/60 522/734/60 515/548/60 +f 515/548/60 517/731/60 519/546/60 +f 525/549/62 526/555/62 524/550/62 +f 527/552/59 529/558/59 530/553/59 +f 526/555/58 529/558/58 527/556/58 +f 525/549/60 530/553/60 529/558/60 +f 523/559/57 528/735/57 530/553/57 +f 532/560/60 534/566/60 533/561/60 +f 540/563/60 542/571/60 541/564/60 +f 534/566/58 538/736/58 535/567/58 +f 531/562/57 536/737/57 537/568/57 +f 532/560/59 537/738/59 538/569/59 +f 533/561/62 535/739/62 536/570/62 +f 542/571/58 546/740/58 543/572/58 +f 539/565/57 544/741/57 545/573/57 +f 540/563/59 545/742/59 546/574/59 +f 541/564/62 543/743/62 544/575/62 +f 548/576/60 550/579/60 549/577/60 +f 550/579/58 554/744/58 551/580/58 +f 547/578/57 552/745/57 553/581/57 +f 548/576/59 553/746/59 554/582/59 +f 549/577/62 551/747/62 552/583/62 +f 557/584/60 558/748/60 555/585/60 +f 559/587/63 562/595/63 561/588/63 +f 555/585/66 558/748/66 562/590/66 +f 555/592/70 559/587/70 560/589/70 +f 556/586/58 560/589/58 561/588/58 +f 558/594/71 557/749/71 561/588/71 +f 564/596/59 566/750/59 563/597/59 +f 568/599/62 570/751/62 569/600/62 +f 574/602/59 573/752/59 571/603/59 +f 575/605/60 577/606/60 574/602/60 +f 577/606/68 576/753/68 573/607/68 +f 578/608/62 576/754/62 577/606/62 +f 579/609/57 581/612/57 582/610/57 +f 581/612/66 583/614/66 584/613/66 +f 583/614/60 585/616/60 586/615/60 +f 585/616/67 587/618/67 588/617/67 +f 587/618/58 589/755/58 590/619/58 +f 580/622/62 582/756/62 588/620/62 +f 582/756/62 584/613/62 588/620/62 +f 584/613/62 586/615/62 588/620/62 +f 581/623/59 579/757/59 589/758/59 +f 589/758/59 587/759/59 581/623/59 +f 587/759/59 585/616/59 581/623/59 +f 593/624/62 594/630/62 592/625/62 +f 595/627/59 597/633/59 598/628/59 +f 594/630/58 597/633/58 595/631/58 +f 593/624/60 598/628/60 597/633/60 +f 591/634/57 596/760/57 598/628/57 +f 601/635/62 602/761/62 600/636/62 +f 603/638/59 605/762/59 606/639/59 +f 601/635/58 606/639/58 605/641/58 +f 599/637/60 604/640/60 606/639/60 +f 607/645/57 608/763/57 609/764/57 +f 609/764/57 610/765/57 611/643/57 +f 611/643/57 612/766/57 613/767/57 +f 613/767/57 614/768/57 611/643/57 +f 614/768/57 615/644/57 611/643/57 +f 615/644/57 616/769/57 617/770/57 +f 617/770/57 618/771/57 607/645/57 +f 607/645/57 609/764/57 611/643/57 +f 615/644/57 617/770/57 607/645/57 +f 630/647/58 619/772/58 622/648/58 +f 619/772/58 620/773/58 622/648/58 +f 620/773/58 621/774/58 622/648/58 +f 622/648/58 623/775/58 624/776/58 +f 624/776/58 625/777/58 622/648/58 +f 625/777/58 626/778/58 622/648/58 +f 626/778/58 627/779/58 628/646/58 +f 628/646/58 629/780/58 630/647/58 +f 626/778/58 628/646/58 622/648/58 +s 1 +f 194/781/72 195/782/59 193/783/72 +f 196/784/59 197/785/73 195/782/59 +f 198/786/73 199/787/74 197/785/73 +f 200/788/74 201/789/75 199/787/74 +f 209/790/60 220/791/76 208/792/76 +f 206/793/59 217/794/73 205/795/73 +f 213/796/77 224/797/62 212/798/62 +f 210/799/78 221/800/60 209/801/60 +f 207/802/79 218/803/59 206/793/59 +f 214/804/80 225/805/77 213/796/77 +f 204/806/74 215/807/63 203/808/63 +f 211/809/81 222/810/78 210/799/78 +f 208/792/76 219/811/79 207/802/79 +f 203/808/63 226/812/80 214/804/80 +f 205/795/73 216/813/74 204/806/74 +f 212/798/62 223/814/81 211/809/81 +f 228/815/82 229/816/80 227/817/82 +f 230/818/80 231/819/77 229/816/80 +f 232/820/77 233/821/62 231/819/77 +f 234/822/62 235/823/83 233/821/62 +f 243/824/60 254/825/76 242/826/76 +f 240/827/59 251/828/73 239/829/73 +f 247/830/77 258/831/62 246/832/62 +f 244/833/78 255/834/60 243/835/60 +f 241/836/79 252/837/59 240/827/59 +f 248/838/80 259/839/77 247/830/77 +f 238/840/74 249/841/63 237/842/63 +f 245/843/81 256/844/78 244/833/78 +f 242/826/76 253/845/79 241/836/79 +f 237/842/63 260/846/80 248/838/80 +f 239/829/73 250/847/74 238/840/74 +f 246/832/62 257/848/81 245/843/81 +f 266/849/79 299/850/76 264/851/76 +f 299/850/76 262/852/84 264/851/76 +f 265/853/84 296/854/85 262/852/84 +f 270/855/86 329/856/87 269/857/86 +f 202/858/75 227/859/82 201/789/75 +f 329/856/88 194/781/72 193/783/72 +f 277/860/60 288/861/76 276/862/76 +f 274/863/59 285/864/73 273/865/73 +f 281/866/77 292/867/62 280/868/62 +f 278/869/78 289/870/60 277/871/60 +f 275/872/79 286/873/59 274/863/59 +f 282/874/80 293/875/77 281/866/77 +f 272/876/74 283/877/63 271/878/63 +f 279/879/81 290/880/78 278/869/78 +f 276/862/76 287/881/79 275/872/79 +f 271/878/63 294/882/80 282/874/80 +f 273/865/73 284/883/74 272/876/74 +f 280/868/62 291/884/81 279/879/81 +f 331/885/89 298/886/90 297/887/90 +f 236/888/83 331/885/91 235/823/83 +f 311/889/60 322/890/76 310/891/76 +f 308/892/59 319/893/73 307/894/73 +f 315/895/77 326/896/62 314/897/62 +f 312/898/78 323/899/60 311/900/60 +f 309/901/79 320/902/59 308/892/59 +f 316/903/80 327/904/77 315/895/77 +f 306/905/74 317/906/63 305/907/63 +f 313/908/81 324/909/78 312/898/78 +f 310/891/76 321/910/79 309/901/79 +f 305/907/63 328/911/80 316/903/80 +f 307/894/73 318/912/74 306/905/74 +f 314/897/62 325/913/81 313/908/81 +f 301/914/92 266/849/79 268/915/59 +f 296/854/85 365/916/78 304/917/78 +f 304/917/78 366/918/81 302/919/81 +f 366/918/81 300/920/62 302/919/81 +f 336/921/58 337/922/93 335/923/58 +f 338/924/93 339/925/63 337/922/93 +f 340/926/63 341/927/94 339/928/63 +f 342/929/94 343/930/57 341/927/94 +f 344/931/57 345/932/66 343/930/57 +f 346/933/66 347/934/60 345/932/66 +f 348/935/60 349/936/67 347/934/60 +f 350/937/67 335/923/58 349/936/67 +f 363/938/95 364/939/96 297/887/90 +f 301/914/92 270/855/86 269/857/86 +f 410/940/97 411/941/98 409/942/99 +f 414/943/100 415/944/101 413/945/102 +f 416/946/103 417/947/104 415/944/101 +f 418/948/105 419/949/106 417/947/104 +f 420/950/107 421/951/108 419/949/106 +f 418/952/105 442/953/109 443/954/110 +f 411/955/98 430/956/111 409/942/99 +f 431/695/112 433/957/113 434/958/114 +f 409/942/99 429/959/115 424/960/116 +f 419/961/106 436/962/117 435/963/118 +f 419/961/106 434/958/114 417/964/104 +f 417/964/104 433/957/113 415/944/101 +f 413/965/102 433/957/113 432/694/119 +f 442/953/109 441/966/120 440/967/121 +f 439/968/122 446/969/123 447/970/62 +f 423/971/124 439/968/122 410/972/97 +f 414/973/100 442/953/109 416/974/103 +f 412/975/125 439/968/122 440/967/121 +f 420/976/107 445/977/126 422/978/127 +f 418/952/105 444/979/128 420/976/107 +f 435/963/118 430/956/111 434/958/114 +f 448/980/62 444/979/128 447/970/62 +f 430/956/111 437/981/59 429/959/115 +f 435/963/118 438/982/59 437/981/59 +f 444/979/128 439/968/122 447/970/62 +f 462/983/62 455/984/129 463/985/129 +f 460/986/57 453/987/124 461/988/124 +f 458/989/59 451/990/116 459/991/116 +f 464/992/58 449/993/130 457/994/130 +f 463/985/129 456/995/58 464/992/58 +f 461/988/124 454/996/62 462/997/62 +f 459/991/116 452/998/57 460/986/57 +f 457/994/130 450/999/59 458/989/59 +f 478/1000/62 471/1001/129 479/1002/129 +f 476/1003/57 469/1004/124 477/1005/124 +f 474/1006/59 467/1007/116 475/1008/116 +f 480/1009/58 465/1010/130 473/1011/130 +f 479/1002/129 472/1012/58 480/1009/58 +f 477/1005/124 470/1013/62 478/1014/62 +f 475/1008/116 468/1015/57 476/1003/57 +f 473/1011/130 466/1016/59 474/1006/59 +f 483/718/131 490/1017/132 484/1018/131 +f 490/1017/132 481/1019/133 482/1020/133 +f 488/1021/134 483/718/61 484/1018/61 +f 485/1022/135 488/1021/134 486/1023/135 +f 498/1024/130 505/1025/59 497/1026/59 +f 496/1027/116 503/1028/57 495/1029/57 +f 494/1030/124 501/1031/62 493/1032/62 +f 492/1033/129 499/1034/58 491/1035/58 +f 491/1035/58 506/1036/130 498/1024/130 +f 497/1026/59 504/1037/116 496/1027/116 +f 495/1029/57 502/1038/124 494/1030/124 +f 493/1039/62 500/1040/129 492/1033/129 +f 514/1041/130 521/1042/59 513/1043/59 +f 512/1044/116 519/1045/57 511/1046/57 +f 510/1047/124 517/1048/62 509/1049/62 +f 508/1050/129 515/1051/58 507/1052/58 +f 507/1052/58 522/1053/130 514/1041/130 +f 513/1043/59 520/1054/116 512/1044/116 +f 511/1046/57 518/1055/124 510/1047/124 +f 509/1056/62 516/1057/129 508/1050/129 +f 627/1058/129 611/1059/136 610/1060/129 +f 615/1061/137 621/1062/130 616/1063/130 +f 612/1064/138 624/1065/93 613/1066/93 +f 611/1059/136 625/1067/138 612/1064/138 +f 630/1068/67 608/1069/139 607/1070/67 +f 621/1062/130 617/1071/140 616/1063/130 +f 624/1072/93 614/1073/141 613/1074/93 +f 629/1075/139 609/1076/142 608/1069/139 +f 617/1071/140 619/1077/143 618/1078/143 +f 623/1079/141 615/1061/137 614/1073/141 +f 609/1076/142 627/1058/129 610/1060/129 +f 618/1078/143 630/1068/67 607/1070/67 +f 194/781/72 196/784/59 195/782/59 +f 196/784/59 198/786/73 197/785/73 +f 198/786/73 200/788/74 199/787/74 +f 200/788/74 202/858/75 201/789/75 +f 209/790/60 221/1080/60 220/791/76 +f 206/793/59 218/803/59 217/794/73 +f 213/796/77 225/805/77 224/797/62 +f 210/799/78 222/810/78 221/800/60 +f 207/802/79 219/811/79 218/803/59 +f 214/804/80 226/812/80 225/805/77 +f 204/806/74 216/813/74 215/807/63 +f 211/809/81 223/814/81 222/810/78 +f 208/792/76 220/791/76 219/811/79 +f 203/808/63 215/807/63 226/812/80 +f 205/795/73 217/794/73 216/813/74 +f 212/798/62 224/797/62 223/814/81 +f 228/815/82 230/818/80 229/816/80 +f 230/818/80 232/820/77 231/819/77 +f 232/820/77 234/822/62 233/821/62 +f 234/822/62 236/888/83 235/823/83 +f 243/824/60 255/1081/60 254/825/76 +f 240/827/59 252/837/59 251/828/73 +f 247/830/77 259/839/77 258/831/62 +f 244/833/78 256/844/78 255/834/60 +f 241/836/79 253/845/79 252/837/59 +f 248/838/80 260/846/80 259/839/77 +f 238/840/74 250/847/74 249/841/63 +f 245/843/81 257/848/81 256/844/78 +f 242/826/76 254/825/76 253/845/79 +f 237/842/63 249/841/63 260/846/80 +f 239/829/73 251/828/73 250/847/74 +f 246/832/62 258/831/62 257/848/81 +f 266/849/79 295/1082/79 299/850/76 +f 299/850/76 265/853/84 262/852/84 +f 265/853/84 361/1083/85 296/854/85 +f 270/855/86 330/1084/87 329/856/87 +f 202/858/75 228/1085/82 227/859/82 +f 329/856/88 330/1084/88 194/781/72 +f 277/860/60 289/1086/60 288/861/76 +f 274/863/59 286/873/59 285/864/73 +f 281/866/77 293/875/77 292/867/62 +f 278/869/78 290/880/78 289/870/60 +f 275/872/79 287/881/79 286/873/59 +f 282/874/80 294/882/80 293/875/77 +f 272/876/74 284/883/74 283/877/63 +f 279/879/81 291/884/81 290/880/78 +f 276/862/76 288/861/76 287/881/79 +f 271/878/63 283/877/63 294/882/80 +f 273/865/73 285/864/73 284/883/74 +f 280/868/62 292/867/62 291/884/81 +f 331/885/89 332/1087/89 298/886/90 +f 236/888/83 332/1087/91 331/885/91 +f 311/889/60 323/1088/60 322/890/76 +f 308/892/59 320/902/59 319/893/73 +f 315/895/77 327/904/77 326/896/62 +f 312/898/78 324/909/78 323/899/60 +f 309/901/79 321/910/79 320/902/59 +f 316/903/80 328/911/80 327/904/77 +f 306/905/74 318/912/74 317/906/63 +f 313/908/81 325/913/81 324/909/78 +f 310/891/76 322/890/76 321/910/79 +f 305/907/63 317/906/63 328/911/80 +f 307/894/73 319/893/73 318/912/74 +f 314/897/62 326/896/62 325/913/81 +f 301/914/92 295/1082/79 266/849/79 +f 296/854/85 361/1083/85 365/916/78 +f 304/917/78 365/916/78 366/918/81 +f 366/918/81 363/938/95 300/920/62 +f 336/921/58 338/924/93 337/922/93 +f 338/924/93 340/1089/63 339/925/63 +f 340/926/63 342/929/94 341/927/94 +f 342/929/94 344/931/57 343/930/57 +f 344/931/57 346/933/66 345/932/66 +f 346/933/66 348/935/60 347/934/60 +f 348/935/60 350/937/67 349/936/67 +f 350/937/67 336/921/58 335/923/58 +f 297/887/90 298/886/90 363/938/95 +f 298/886/90 300/920/62 363/938/95 +f 269/857/86 267/1090/144 301/914/92 +f 301/914/92 268/915/59 270/855/86 +f 410/940/97 412/1091/125 411/941/98 +f 414/943/100 416/946/103 415/944/101 +f 416/946/103 418/948/105 417/947/104 +f 418/948/105 420/950/107 419/949/106 +f 420/950/107 422/1092/127 421/951/108 +f 418/952/105 416/974/103 442/953/109 +f 411/955/98 431/695/112 430/956/111 +f 434/958/114 430/956/111 431/695/112 +f 431/695/112 432/694/119 433/957/113 +f 409/942/99 430/956/111 429/959/115 +f 419/961/106 421/951/108 436/962/117 +f 419/961/106 435/963/118 434/958/114 +f 417/964/104 434/958/114 433/957/113 +f 413/965/102 415/944/101 433/957/113 +f 439/968/122 443/954/110 440/967/121 +f 443/954/110 442/953/109 440/967/121 +f 423/971/124 446/969/123 439/968/122 +f 414/973/100 441/966/120 442/953/109 +f 412/975/125 410/972/97 439/968/122 +f 420/976/107 444/979/128 445/977/126 +f 418/952/105 443/954/110 444/979/128 +f 435/963/118 437/981/59 430/956/111 +f 448/980/62 445/977/126 444/979/128 +f 435/963/118 436/962/117 438/982/59 +f 444/979/128 443/954/110 439/968/122 +f 462/983/62 454/1093/62 455/984/129 +f 460/986/57 452/998/57 453/987/124 +f 458/989/59 450/999/59 451/990/116 +f 464/992/58 456/995/58 449/993/130 +f 463/985/129 455/984/129 456/995/58 +f 461/988/124 453/987/124 454/996/62 +f 459/991/116 451/990/116 452/998/57 +f 457/994/130 449/993/130 450/999/59 +f 478/1000/62 470/1094/62 471/1001/129 +f 476/1003/57 468/1015/57 469/1004/124 +f 474/1006/59 466/1016/59 467/1007/116 +f 480/1009/58 472/1012/58 465/1010/130 +f 479/1002/129 471/1001/129 472/1012/58 +f 477/1005/124 469/1004/124 470/1013/62 +f 475/1008/116 467/1007/116 468/1015/57 +f 473/1011/130 465/1010/130 466/1016/59 +f 483/718/131 489/1095/132 490/1017/132 +f 490/1017/132 489/1095/132 481/1019/133 +f 488/1021/134 487/1096/134 483/718/61 +f 485/1022/135 487/1096/134 488/1021/134 +f 498/1024/130 506/1036/130 505/1025/59 +f 496/1027/116 504/1037/116 503/1028/57 +f 494/1030/124 502/1038/124 501/1031/62 +f 492/1033/129 500/1040/129 499/1034/58 +f 491/1035/58 499/1034/58 506/1036/130 +f 497/1026/59 505/1025/59 504/1037/116 +f 495/1029/57 503/1028/57 502/1038/124 +f 493/1039/62 501/1097/62 500/1040/129 +f 514/1041/130 522/1053/130 521/1042/59 +f 512/1044/116 520/1054/116 519/1045/57 +f 510/1047/124 518/1055/124 517/1048/62 +f 508/1050/129 516/1057/129 515/1051/58 +f 507/1052/58 515/1051/58 522/1053/130 +f 513/1043/59 521/1042/59 520/1054/116 +f 511/1046/57 519/1045/57 518/1055/124 +f 509/1056/62 517/1098/62 516/1057/129 +f 627/1058/129 626/1099/136 611/1059/136 +f 615/1061/137 622/1100/137 621/1062/130 +f 612/1064/138 625/1067/138 624/1065/93 +f 611/1059/136 626/1099/136 625/1067/138 +f 630/1068/67 629/1075/139 608/1069/139 +f 621/1062/130 620/1101/140 617/1071/140 +f 624/1072/93 623/1079/141 614/1073/141 +f 629/1075/139 628/1102/142 609/1076/142 +f 617/1071/140 620/1101/140 619/1077/143 +f 623/1079/141 622/1100/137 615/1061/137 +f 609/1076/142 628/1102/142 627/1058/129 +f 618/1078/143 619/1077/143 630/1068/67 +o Latch +v 0.125000 1.000000 1.000000 +v -0.125000 1.000000 1.000000 +v 0.125000 1.000000 -0.625000 +v -0.125000 1.000000 -0.625000 +v 0.125000 1.312500 1.000000 +v -0.125000 1.312500 1.000000 +v 0.125000 1.312500 -0.625000 +v -0.125000 1.312500 -0.625000 +v 0.500000 1.312500 -0.625000 +v 0.500000 1.000000 -0.625000 +v -0.500000 1.312500 -0.625000 +v -0.500000 1.000000 -0.625000 +v 0.500000 1.000000 -0.875000 +v 0.500000 1.312500 -0.875000 +v -0.500000 1.312500 -0.875000 +v -0.500000 1.000000 -0.875000 +v 0.500000 1.062500 -0.937500 +v 0.500000 1.250000 -0.937500 +v -0.500000 1.250000 -0.937500 +v -0.500000 1.062500 -0.937500 +vt 0.953704 0.522727 +vt 0.972222 0.522727 +vt 0.972222 0.551136 +vt 1.000000 0.323864 +vt 0.981481 0.471591 +vt 0.981481 0.323864 +vt 0.958333 0.471591 +vt 0.939815 0.323864 +vt 0.958333 0.323864 +vt 0.916667 0.323864 +vt 0.939815 0.471591 +vt 0.916667 0.471591 +vt 0.958333 0.295455 +vt 0.939815 0.295455 +vt 0.875000 0.500000 +vt 0.949074 0.471591 +vt 0.949074 0.500000 +vt 0.949074 0.522727 +vt 0.875000 0.528409 +vt 0.875000 0.522727 +vt 0.875000 0.573864 +vt 0.949074 0.551136 +vt 0.949074 0.573864 +vt 0.870370 0.551136 +vt 0.851852 0.551136 +vt 0.851852 0.522727 +vt 0.949074 0.545455 +vt 0.949074 0.528409 +vt 0.875000 0.551136 +vt 0.953704 0.551136 +vt 1.000000 0.471591 +vt 0.875000 0.471591 +vt 0.870370 0.522727 +vt 0.875000 0.545455 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +s off +f 644/1103/145 639/1104/145 640/1105/145 +f 632/1106/146 633/1107/146 631/1108/146 +f 637/1109/147 636/1110/147 635/1111/147 +f 632/1112/148 638/1113/148 634/1114/148 +f 631/1115/149 636/1110/149 632/1116/149 +f 633/1107/145 635/1111/145 631/1108/145 +f 641/1117/149 640/1118/149 639/1119/149 +f 644/1120/150 649/1121/150 645/1122/150 +f 639/1119/147 645/1122/147 641/1117/147 +f 642/1123/146 643/1124/146 640/1125/146 +f 646/1126/148 642/1127/148 641/1128/148 +f 647/1129/151 649/1121/151 648/1130/151 +f 646/1131/152 647/1129/152 643/1124/152 +f 640/1105/145 643/1132/145 644/1103/145 +f 643/1132/145 647/1129/145 644/1103/145 +f 647/1129/145 648/1130/145 644/1103/145 +f 632/1106/146 634/1133/146 633/1107/146 +f 637/1109/147 638/1113/147 636/1110/147 +f 632/1112/148 636/1110/148 638/1113/148 +f 631/1115/149 635/1111/149 636/1110/149 +f 633/1107/145 637/1109/145 635/1111/145 +f 641/1117/149 642/1134/149 640/1118/149 +f 644/1120/150 648/1130/150 649/1121/150 +f 639/1119/147 644/1120/147 645/1122/147 +f 642/1123/146 646/1131/146 643/1124/146 +f 641/1128/148 645/1135/148 646/1126/148 +f 645/1135/148 649/1121/148 646/1126/148 +f 649/1121/148 650/1136/148 646/1126/148 +f 647/1129/151 650/1136/151 649/1121/151 +f 646/1131/152 650/1136/152 647/1129/152 +o Gun +v -0.500000 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +v -0.500000 1.000000 -0.750000 +v -0.500000 1.000000 0.000000 +v 0.500000 1.000000 0.000000 +v 0.500000 1.000000 -0.750000 +v 0.500000 0.500000 0.000000 +v 0.500000 0.500000 -0.750000 +v 0.500000 0.000000 1.000000 +v -0.500000 0.000000 1.000000 +v -0.500000 0.500000 0.000000 +v -0.500000 0.500000 -0.750000 +v 0.625000 0.500000 0.000000 +v 0.625000 0.500000 -0.750000 +v 0.625000 0.000000 1.000000 +v -0.625000 0.000000 1.000000 +v -0.625000 0.500000 0.000000 +v -0.625000 0.500000 -0.750000 +v 0.500000 -0.125000 1.000000 +v -0.500000 -0.125000 1.000000 +v 0.625000 0.000000 -0.750000 +v -0.625000 0.000000 -0.750000 +v 0.500000 -0.125000 -0.750000 +v -0.500000 -0.125000 -0.750000 +v 0.187500 -0.750000 0.500000 +v 0.187500 -0.125000 0.250000 +v 0.187500 -0.750000 1.000000 +v 0.187500 -0.125000 1.000000 +v 0.437500 -0.750000 0.500000 +v 0.437500 -0.125000 0.250000 +v 0.437500 -0.750000 1.000000 +v 0.437500 -0.125000 1.000000 +v 0.437500 -0.500000 0.500000 +v 0.437500 -0.323223 0.573223 +v 0.437500 -0.250000 0.750000 +v 0.437500 -0.323223 0.926777 +v 0.437500 -0.500000 1.000000 +v 0.437500 -0.676777 0.926777 +v 0.437500 -0.750000 0.750000 +v 0.437500 -0.676777 0.573223 +v 0.559000 -0.323223 0.573223 +v 0.559000 -0.500000 0.500000 +v 0.559000 -0.250000 0.750000 +v 0.559000 -0.323223 0.926777 +v 0.559000 -0.500000 1.000000 +v 0.559000 -0.676777 0.926777 +v 0.559000 -0.750000 0.750000 +v 0.559000 -0.676777 0.573223 +v -0.500000 0.125000 -0.750000 +v -0.250000 -0.125000 -0.750000 +v 0.250000 -0.125000 -0.750000 +v 0.500000 0.125000 -0.750000 +v -0.250000 0.875000 -0.750000 +v -0.500000 0.625000 -0.750000 +v 0.500000 0.625000 -0.750000 +v 0.250000 0.875000 -0.750000 +v -0.250000 -0.125000 -2.500000 +v -0.500000 0.125000 -2.500000 +v 0.500000 0.125000 -2.500000 +v 0.250000 -0.125000 -2.500000 +v -0.500000 0.625000 -2.500000 +v -0.250000 0.875000 -2.500000 +v 0.250000 0.875000 -2.500000 +v 0.500000 0.625000 -2.500000 +v 0.695083 0.632582 -0.687500 +v 0.750000 0.500000 -0.687500 +v 0.695083 0.367418 -0.687500 +v 0.562500 0.312500 -0.687500 +v 0.429917 0.367417 -0.687500 +v 0.375000 0.500000 -0.687500 +v 0.429917 0.632583 -0.687500 +v 0.562500 0.687500 -0.687500 +v 0.695083 0.632582 -2.562500 +v 0.750000 0.500000 -2.562500 +v 0.562500 0.312500 -2.562500 +v 0.429917 0.367417 -2.562500 +v 0.375000 0.500000 -2.562500 +v 0.429917 0.632583 -2.562500 +v 0.562500 0.687500 -2.562500 +v 0.695083 0.367418 -2.562500 +v 0.125000 -0.125000 -0.500000 +v -0.125000 -0.125000 -0.500000 +v 0.125000 -2.125000 -1.250000 +v -0.125000 -2.125000 -1.250000 +v 0.125000 -2.125000 -2.000000 +v -0.125000 -2.125000 -2.000000 +v 0.125000 -1.875000 -2.250000 +v -0.125000 -1.875000 -2.250000 +v 0.125000 -0.500000 -1.625000 +v -0.125000 -0.500000 -1.625000 +v 0.125000 -0.250000 -1.625000 +v -0.125000 -0.250000 -1.625000 +v 0.125000 -0.250000 -2.500000 +v -0.125000 -0.250000 -2.500000 +v 0.125000 -0.125000 -2.500000 +v -0.125000 -0.125000 -2.500000 +v 0.125000 -0.125000 -1.500000 +v -0.125000 -0.125000 -1.500000 +v 0.250000 -0.125000 -0.625000 +v 0.250000 -2.125000 -1.375000 +v 0.250000 -2.125000 -1.875000 +v 0.250000 -1.875000 -2.125000 +v 0.250000 -0.500000 -1.500000 +v 0.250000 -0.250000 -1.500000 +v 0.250000 -0.125000 -1.375000 +v -0.250000 -2.125000 -1.375000 +v -0.250000 -0.125000 -0.625000 +v -0.250000 -2.125000 -1.875000 +v -0.250000 -1.875000 -2.125000 +v -0.250000 -0.500000 -1.500000 +v -0.250000 -0.250000 -1.500000 +v -0.250000 -0.125000 -1.375000 +v 0.062500 -2.125000 -1.250000 +v -0.062500 -2.125000 -1.250000 +v 0.062500 -0.375000 0.250000 +v -0.062500 -0.375000 0.250000 +v 0.062500 -0.125000 0.250000 +v -0.062500 -0.125000 0.250000 +v 0.062500 -0.125000 -0.500000 +v -0.062500 -0.125000 -0.500000 +v 0.093750 -0.750000 0.875000 +v -0.093750 -0.750000 0.875000 +v 0.093750 -0.750000 0.687500 +v -0.093750 -0.750000 0.687500 +v 0.093750 -1.750000 0.375000 +v -0.093750 -1.750000 0.375000 +v 0.093750 -1.625000 0.250000 +v -0.093750 -1.625000 0.250000 +v 0.093750 -2.125000 -1.250000 +v -0.093750 -2.125000 -1.250000 +v 0.093750 -2.000000 -1.250000 +v -0.093750 -2.000000 -1.250000 +v 0.562500 0.625000 -2.562500 +v 0.474112 0.588388 -2.562500 +v 0.437500 0.500000 -2.562500 +v 0.474112 0.411612 -2.562500 +v 0.562500 0.375000 -2.562500 +v 0.650888 0.411612 -2.562500 +v 0.687500 0.500000 -2.562500 +v 0.650888 0.588388 -2.562500 +v 0.562500 0.625000 -6.562500 +v 0.474112 0.588388 -6.562500 +v 0.437500 0.500000 -6.562500 +v 0.474112 0.411612 -6.562500 +v 0.562500 0.375000 -6.562500 +v 0.650888 0.411612 -6.562500 +v 0.687500 0.500000 -6.562500 +v 0.650888 0.588388 -6.562500 +v 0.562500 0.551777 -6.739277 +v 0.474112 0.525888 -6.713388 +v 0.437500 0.463388 -6.650888 +v 0.474112 0.400888 -6.588388 +v 0.650888 0.400888 -6.588388 +v 0.687500 0.463388 -6.650888 +v 0.650888 0.525888 -6.713388 +v 0.562500 0.375000 -6.812500 +v 0.474112 0.375000 -6.775888 +v 0.437500 0.375000 -6.687500 +v 0.474112 0.375000 -6.599112 +v 0.650888 0.375000 -6.599112 +v 0.687500 0.375000 -6.687500 +v 0.650888 0.375000 -6.775888 +v 0.562500 -0.250000 -6.562500 +v 0.562500 -0.250000 -6.812500 +v 0.474112 -0.250000 -6.775888 +v 0.437500 -0.250000 -6.687500 +v 0.474112 -0.250000 -6.599112 +v 0.650888 -0.250000 -6.599112 +v 0.687500 -0.250000 -6.687500 +v 0.650888 -0.250000 -6.775888 +v 0.312500 -0.250000 -6.812500 +v 0.224112 -0.286612 -6.812500 +v 0.187500 -0.375000 -6.812500 +v 0.224112 -0.463388 -6.812500 +v 0.312500 -0.500000 -6.812500 +v 0.400888 -0.463388 -6.812500 +v 0.437500 -0.375000 -6.812500 +v 0.400888 -0.286612 -6.812500 +v 0.312500 -0.250000 -7.562500 +v 0.224112 -0.286612 -7.562500 +v 0.187500 -0.375000 -7.562500 +v 0.224112 -0.463388 -7.562500 +v 0.312500 -0.500000 -7.562500 +v 0.400888 -0.463388 -7.562500 +v 0.437500 -0.375000 -7.562500 +v 0.400888 -0.286612 -7.562500 +v 0.312500 -0.323223 -7.739277 +v 0.224112 -0.349112 -7.713388 +v 0.187500 -0.411612 -7.650888 +v 0.224112 -0.474112 -7.588388 +v 0.400888 -0.474112 -7.588388 +v 0.437500 -0.411612 -7.650888 +v 0.400888 -0.349112 -7.713388 +v 0.312500 -0.500000 -7.812500 +v 0.224112 -0.500000 -7.775888 +v 0.187500 -0.500000 -7.687500 +v 0.224112 -0.500000 -7.599112 +v 0.400888 -0.500000 -7.599112 +v 0.437500 -0.500000 -7.687500 +v 0.400888 -0.500000 -7.775888 +v 0.312500 -2.250000 -7.562500 +v 0.312500 -2.250000 -7.812500 +v 0.224112 -2.250000 -7.775888 +v 0.187500 -2.250000 -7.687500 +v 0.224112 -2.250000 -7.599112 +v 0.400888 -2.250000 -7.599112 +v 0.437500 -2.250000 -7.687500 +v 0.400888 -2.250000 -7.775888 +v -0.187500 -2.463388 -7.775888 +v -0.187500 -2.500000 -7.687500 +v -0.187500 -2.463388 -7.599112 +v -0.187500 -2.286612 -7.599112 +v -0.187500 -2.286612 -7.775888 +v -0.187500 -2.375000 -7.812500 +v -0.187500 -2.375000 -7.562500 +v 0.525888 -0.338388 -6.562500 +v 0.525888 -0.338388 -6.812500 +v 0.463388 -0.275888 -6.775888 +v 0.463388 -0.275888 -6.599112 +v 0.588388 -0.400888 -6.599112 +v 0.614277 -0.426777 -6.687500 +v 0.588388 -0.400888 -6.775888 +v 0.437500 -0.375000 -6.562500 +v 0.349112 -0.250000 -6.724112 +v 0.437500 -0.286612 -6.775888 +v 0.437500 -0.286612 -6.599112 +v 0.437500 -0.463388 -6.599112 +v 0.437500 -0.500000 -6.687500 +v 0.437500 -0.463388 -6.775888 +v 0.286612 -0.286612 -6.661612 +v 0.260724 -0.375000 -6.635723 +v 0.286612 -0.463388 -6.661612 +v 0.349112 -0.500000 -6.724112 +v 0.411612 -0.463388 -6.786612 +v 0.411612 -0.286612 -6.786612 +v 0.275888 -2.338388 -7.562500 +v 0.275888 -2.338388 -7.812500 +v 0.213388 -2.275888 -7.775888 +v 0.213388 -2.275888 -7.599112 +v 0.338388 -2.400888 -7.599112 +v 0.364277 -2.426777 -7.687500 +v 0.338388 -2.400888 -7.775888 +v 0.187500 -2.375000 -7.562500 +v 0.187500 -2.375000 -7.812500 +v 0.187500 -2.286612 -7.775888 +v 0.187500 -2.286612 -7.599112 +v 0.187500 -2.463388 -7.599112 +v 0.187500 -2.500000 -7.687500 +v 0.187500 -2.463388 -7.775888 +v -0.437500 -0.750000 0.500000 +v -0.437500 -0.125000 0.250000 +v -0.437500 -0.750000 1.000000 +v -0.437500 -0.125000 1.000000 +v -0.187500 -0.750000 0.500000 +v -0.187500 -0.125000 0.250000 +v -0.187500 -0.750000 1.000000 +v -0.187500 -0.125000 1.000000 +v -0.437500 -0.500000 1.000000 +v -0.437500 -0.323223 0.926777 +v -0.437500 -0.250000 0.750000 +v -0.437500 -0.323223 0.573223 +v -0.437500 -0.500000 0.500000 +v -0.437500 -0.676777 0.573223 +v -0.437500 -0.750000 0.750000 +v -0.437500 -0.676777 0.926777 +v -0.559000 -0.323223 0.926777 +v -0.559000 -0.500000 1.000000 +v -0.559000 -0.250000 0.750000 +v -0.559000 -0.323223 0.573223 +v -0.559000 -0.500000 0.500000 +v -0.559000 -0.676777 0.573223 +v -0.559000 -0.750000 0.750000 +v -0.559000 -0.676777 0.926777 +v 0.437500 0.187500 -1.500000 +v 0.304917 0.187500 -1.445082 +v 0.250000 0.187500 -1.312500 +v 0.304917 0.187500 -1.179918 +v 0.437500 0.187500 -1.125000 +v 0.570083 0.187500 -1.179918 +v 0.625000 0.187500 -1.312500 +v 0.570083 0.187500 -1.445082 +v 0.437500 0.937500 -1.500000 +v 0.304917 0.937500 -1.445082 +v 0.250000 0.937500 -1.312500 +v 0.304917 0.937500 -1.179918 +v 0.437500 0.937500 -1.125000 +v 0.570083 0.937500 -1.179918 +v 0.625000 0.937500 -1.312500 +v 0.570083 0.937500 -1.445082 +v 0.437500 0.937500 -1.437500 +v 0.349112 0.937500 -1.400888 +v 0.312500 0.937500 -1.312500 +v 0.349112 0.937500 -1.224112 +v 0.437500 0.937500 -1.187500 +v 0.525888 0.937500 -1.224112 +v 0.562500 0.937500 -1.312500 +v 0.525888 0.937500 -1.400888 +v 0.437500 1.062500 -1.437500 +v 0.349112 1.062500 -1.400888 +v 0.312500 1.062500 -1.312500 +v 0.349112 1.062500 -1.224112 +v 0.437500 1.062500 -1.187500 +v 0.525888 1.062500 -1.224112 +v 0.562500 1.062500 -1.312500 +v 0.525888 1.062500 -1.400888 +v -0.429917 0.632582 -0.687500 +v -0.375000 0.500000 -0.687500 +v -0.429917 0.367418 -0.687500 +v -0.562500 0.312500 -0.687500 +v -0.695083 0.367417 -0.687500 +v -0.750000 0.500000 -0.687500 +v -0.695083 0.632583 -0.687500 +v -0.562500 0.687500 -0.687500 +v -0.429917 0.632582 -2.562500 +v -0.375000 0.500000 -2.562500 +v -0.562500 0.312500 -2.562500 +v -0.695083 0.367417 -2.562500 +v -0.750000 0.500000 -2.562500 +v -0.695083 0.632583 -2.562500 +v -0.562500 0.687500 -2.562500 +v -0.429917 0.367418 -2.562500 +v -0.338388 -2.400888 -7.775888 +v -0.364277 -2.426777 -7.687500 +v -0.338388 -2.400888 -7.599112 +v -0.213388 -2.275888 -7.599112 +v -0.213388 -2.275888 -7.775888 +v -0.275888 -2.338388 -7.812500 +v -0.275888 -2.338388 -7.562500 +v -0.411612 -0.286612 -6.786612 +v -0.411612 -0.463388 -6.786612 +v -0.349112 -0.500000 -6.724112 +v -0.286612 -0.463388 -6.661612 +v -0.260724 -0.375000 -6.635723 +v -0.286612 -0.286612 -6.661612 +v -0.437500 -0.463388 -6.775888 +v -0.437500 -0.500000 -6.687500 +v -0.437500 -0.463388 -6.599112 +v -0.437500 -0.286612 -6.599112 +v -0.437500 -0.286612 -6.775888 +v -0.349112 -0.250000 -6.724112 +v -0.437500 -0.375000 -6.562500 +v -0.588388 -0.400888 -6.775888 +v -0.614277 -0.426777 -6.687500 +v -0.588388 -0.400888 -6.599112 +v -0.463388 -0.275888 -6.599112 +v -0.463388 -0.275888 -6.775888 +v -0.525888 -0.338388 -6.812500 +v -0.525888 -0.338388 -6.562500 +v -0.400888 -2.250000 -7.775888 +v -0.437500 -2.250000 -7.687500 +v -0.400888 -2.250000 -7.599112 +v -0.224112 -2.250000 -7.599112 +v -0.187500 -2.250000 -7.687500 +v -0.224112 -2.250000 -7.775888 +v -0.312500 -2.250000 -7.812500 +v -0.312500 -2.250000 -7.562500 +v -0.400888 -0.500000 -7.775888 +v -0.437500 -0.500000 -7.687500 +v -0.400888 -0.500000 -7.599112 +v -0.224112 -0.500000 -7.599112 +v -0.187500 -0.500000 -7.687500 +v -0.224112 -0.500000 -7.775888 +v -0.312500 -0.500000 -7.812500 +v -0.400888 -0.349112 -7.713388 +v -0.437500 -0.411612 -7.650888 +v -0.400888 -0.474112 -7.588388 +v -0.224112 -0.474112 -7.588388 +v -0.187500 -0.411612 -7.650888 +v -0.224112 -0.349112 -7.713388 +v -0.312500 -0.323223 -7.739277 +v -0.400888 -0.286612 -7.562500 +v -0.437500 -0.375000 -7.562500 +v -0.400888 -0.463388 -7.562500 +v -0.312500 -0.500000 -7.562500 +v -0.224112 -0.463388 -7.562500 +v -0.187500 -0.375000 -7.562500 +v -0.224112 -0.286612 -7.562500 +v -0.312500 -0.250000 -7.562500 +v -0.400888 -0.286612 -6.812500 +v -0.437500 -0.375000 -6.812500 +v -0.400888 -0.463388 -6.812500 +v -0.312500 -0.500000 -6.812500 +v -0.224112 -0.463388 -6.812500 +v -0.187500 -0.375000 -6.812500 +v -0.224112 -0.286612 -6.812500 +v -0.312500 -0.250000 -6.812500 +v -0.650888 -0.250000 -6.775888 +v -0.687500 -0.250000 -6.687500 +v -0.650888 -0.250000 -6.599112 +v -0.474112 -0.250000 -6.599112 +v -0.437500 -0.250000 -6.687500 +v -0.474112 -0.250000 -6.775888 +v -0.562500 -0.250000 -6.812500 +v -0.562500 -0.250000 -6.562500 +v -0.650888 0.375000 -6.775888 +v -0.687500 0.375000 -6.687500 +v -0.650888 0.375000 -6.599112 +v -0.474112 0.375000 -6.599112 +v -0.437500 0.375000 -6.687500 +v -0.474112 0.375000 -6.775888 +v -0.562500 0.375000 -6.812500 +v -0.650888 0.525888 -6.713388 +v -0.687500 0.463388 -6.650888 +v -0.650888 0.400888 -6.588388 +v -0.474112 0.400888 -6.588388 +v -0.437500 0.463388 -6.650888 +v -0.474112 0.525888 -6.713388 +v -0.562500 0.551777 -6.739277 +v -0.650888 0.588388 -6.562500 +v -0.687500 0.500000 -6.562500 +v -0.650888 0.411612 -6.562500 +v -0.562500 0.375000 -6.562500 +v -0.474112 0.411612 -6.562500 +v -0.437500 0.500000 -6.562500 +v -0.474112 0.588388 -6.562500 +v -0.562500 0.625000 -6.562500 +v -0.650888 0.588388 -2.562500 +v -0.687500 0.500000 -2.562500 +v -0.650888 0.411612 -2.562500 +v -0.562500 0.375000 -2.562500 +v -0.474112 0.411612 -2.562500 +v -0.437500 0.500000 -2.562500 +v -0.474112 0.588388 -2.562500 +v -0.562500 0.625000 -2.562500 +v 0.500000 1.000000 0.000000 +v 0.125000 1.000000 0.000000 +v 0.500000 1.312500 -0.312500 +v 0.125000 1.312500 -0.312500 +v 0.500000 1.312500 -0.625000 +v 0.125000 1.312500 -0.625000 +v 0.500000 1.000000 -0.625000 +v 0.125000 1.000000 -0.625000 +v -0.125000 1.000000 0.000000 +v -0.500000 1.000000 0.000000 +v -0.125000 1.312500 -0.312500 +v -0.500000 1.312500 -0.312500 +v -0.125000 1.312500 -0.625000 +v -0.500000 1.312500 -0.625000 +v -0.125000 1.000000 -0.625000 +v -0.500000 1.000000 -0.625000 +vt 0.523148 0.568182 +vt 0.578704 0.613636 +vt 0.523148 0.613636 +vt 0.384259 0.465909 +vt 0.439815 0.556818 +vt 0.384259 0.556818 +vt 0.439815 0.602273 +vt 0.310185 0.602273 +vt 0.236111 0.556818 +vt 0.310185 0.556818 +vt 0.439815 0.420455 +vt 0.439815 0.465909 +vt 0.310185 0.420455 +vt 0.310185 0.465909 +vt 0.236111 0.465909 +vt 0.652778 0.409091 +vt 0.578704 0.397727 +vt 0.652778 0.397727 +vt 0.578704 0.409091 +vt 0.523148 0.397727 +vt 0.578704 0.625000 +vt 0.652778 0.613636 +vt 0.652778 0.625000 +vt 0.523148 0.625000 +vt 0.226852 0.465909 +vt 0.236111 0.568182 +vt 0.226852 0.556818 +vt 0.236111 0.454545 +vt 0.523148 0.465909 +vt 0.652778 0.454545 +vt 0.652778 0.465909 +vt 0.652778 0.568182 +vt 0.523148 0.556818 +vt 0.652778 0.556818 +vt 0.523148 0.454545 +vt 0.523148 0.409091 +vt 0.347222 0.465909 +vt 0.347222 0.556818 +vt 0.476852 0.556818 +vt 0.476852 0.465909 +vt 0.263889 0.670455 +vt 0.226852 0.613636 +vt 0.282407 0.613636 +vt 0.226852 0.750000 +vt 0.263889 0.693182 +vt 0.282407 0.750000 +vt 0.310185 0.670455 +vt 0.226852 0.693182 +vt 0.226852 0.670455 +vt 0.180556 0.693182 +vt 0.180556 0.670455 +vt 0.162037 0.659195 +vt 0.143434 0.636364 +vt 0.162037 0.613532 +vt 0.722222 -0.000000 +vt 0.685185 0.159091 +vt 0.685185 -0.000000 +vt 0.666667 0.250000 +vt 0.611111 0.227273 +vt 0.629630 0.159091 +vt 0.833333 0.000000 +vt 0.796296 0.159091 +vt 0.796296 0.000000 +vt 0.777778 -0.000000 +vt 0.740741 0.159091 +vt 0.740741 0.000000 +vt 0.722222 0.159091 +vt 0.666667 -0.000000 +vt 0.666667 0.159091 +vt 0.611111 -0.000000 +vt 0.629630 -0.000000 +vt 0.726852 0.250813 +vt 0.740079 0.267045 +vt 0.726852 0.283278 +vt 0.685847 0.267046 +vt 0.699074 0.250813 +vt 0.712301 0.267045 +vt 0.833333 0.295455 +vt 0.824074 0.284091 +vt 0.833333 0.250000 +vt 0.953704 0.261364 +vt 0.888889 0.284091 +vt 0.888889 0.261364 +vt 0.962963 0.261364 +vt 0.953704 0.284091 +vt 0.953704 0.250000 +vt 0.953704 0.295455 +vt 0.879630 0.295455 +vt 0.009259 0.670455 +vt 0.000000 0.829545 +vt 0.000000 0.670455 +vt 0.009259 0.829545 +vt 0.064815 0.852273 +vt 0.120370 0.670455 +vt 0.064815 0.852273 +vt 0.009259 0.829545 +vt 0.120370 0.670455 +vt 0.587963 0.704545 +vt 0.513889 0.721591 +vt 0.513889 0.704545 +vt 0.513889 0.687500 +vt 0.513889 0.670455 +vt 0.587963 0.687500 +vt 0.587963 0.721591 +vt 0.513889 0.738636 +vt 0.699074 0.704545 +vt 0.699074 0.721591 +vt 0.587963 0.738636 +vt 0.587963 0.670455 +vt 0.699074 0.687500 +vt 0.263889 0.670455 +vt 0.226852 0.613636 +vt 0.282407 0.613636 +vt 0.226852 0.750000 +vt 0.263889 0.693182 +vt 0.282407 0.750000 +vt 0.310185 0.670455 +vt 0.226852 0.693182 +vt 0.226852 0.670455 +vt 0.180556 0.693182 +vt 0.180556 0.670455 +vt 0.180640 0.636364 +vt 0.162037 0.659195 +vt 0.143434 0.636364 +vt 0.869870 0.664745 +vt 0.856643 0.680978 +vt 0.843416 0.664745 +vt 0.828704 0.681006 +vt 0.815477 0.664773 +vt 0.828704 0.648540 +vt 0.898148 0.613095 +vt 0.889330 0.602273 +vt 0.898148 0.591451 +vt 0.726852 0.250813 +vt 0.740079 0.267045 +vt 0.726852 0.283278 +vt 0.685847 0.267046 +vt 0.699074 0.250813 +vt 0.712301 0.267045 +vt 0.675926 0.596591 +vt 0.652778 0.630682 +vt 0.652778 0.596591 +vt 0.699074 0.596591 +vt 0.675926 0.630682 +vt 0.722222 0.596591 +vt 0.699074 0.630682 +vt 0.699074 0.659091 +vt 0.652778 0.659091 +vt 0.699074 0.568182 +vt 0.675926 0.596591 +vt 0.652778 0.630682 +vt 0.652778 0.596591 +vt 0.699074 0.596591 +vt 0.675926 0.630682 +vt 0.722222 0.596591 +vt 0.699074 0.630682 +vt 0.699074 0.659091 +vt 0.652778 0.659091 +vt 0.699074 0.568182 +vt 0.384259 0.602273 +vt 0.384259 0.420455 +vt 0.476852 0.454545 +vt 0.513889 0.454545 +vt 0.513889 0.568182 +vt 0.476852 0.568182 +vt 0.310185 0.693182 +vt 0.180640 0.636364 +vt 0.175192 0.652508 +vt 0.148882 0.652508 +vt 0.148882 0.620219 +vt 0.175192 0.620219 +vt 0.685185 0.181818 +vt 0.685185 0.227273 +vt 0.629630 0.250000 +vt 0.611111 0.181818 +vt 0.833333 0.159091 +vt 0.777778 0.159091 +vt 0.611111 0.159091 +vt 0.717499 0.278524 +vt 0.713625 0.267045 +vt 0.717499 0.255567 +vt 0.736205 0.255567 +vt 0.736205 0.278524 +vt 0.708427 0.278524 +vt 0.699074 0.283278 +vt 0.689721 0.278524 +vt 0.689721 0.255567 +vt 0.708427 0.255567 +vt 0.824074 0.261364 +vt 0.870370 0.250000 +vt 0.870370 0.295455 +vt 0.879630 0.261364 +vt 0.879630 0.284091 +vt 0.962963 0.284091 +vt 0.879630 0.250000 +vt 0.009259 0.852273 +vt 0.009259 0.852273 +vt 0.699074 0.738636 +vt 0.699074 0.670455 +vt 0.310185 0.693182 +vt 0.175192 0.652508 +vt 0.148882 0.652508 +vt 0.148882 0.620219 +vt 0.162037 0.613532 +vt 0.175192 0.620219 +vt 0.847290 0.653266 +vt 0.856643 0.648512 +vt 0.865996 0.653266 +vt 0.865996 0.676223 +vt 0.847290 0.676223 +vt 0.838056 0.653294 +vt 0.841930 0.664773 +vt 0.838056 0.676251 +vt 0.819351 0.676251 +vt 0.819351 0.653294 +vt 0.904383 0.594620 +vt 0.906966 0.602273 +vt 0.904383 0.609925 +vt 0.891913 0.609925 +vt 0.891913 0.594620 +vt 0.717499 0.278524 +vt 0.713625 0.267045 +vt 0.717499 0.255567 +vt 0.736205 0.255567 +vt 0.736205 0.278524 +vt 0.708427 0.278524 +vt 0.699074 0.283278 +vt 0.689721 0.278524 +vt 0.689721 0.255567 +vt 0.708427 0.255567 +vt 0.722222 0.630682 +vt 0.652778 0.568182 +vt 0.722222 0.630682 +vt 0.652778 0.568182 +vt 0.226852 0.613636 +vt 0.240741 0.602273 +vt 0.240741 0.613636 +vt 0.143519 0.613636 +vt 0.157407 0.602273 +vt 0.157407 0.613636 +vt 0.171296 0.613636 +vt 0.185185 0.602273 +vt 0.185185 0.613636 +vt 0.199074 0.613636 +vt 0.212963 0.602273 +vt 0.212963 0.613636 +vt 0.254630 0.602273 +vt 0.254630 0.613636 +vt 0.171296 0.602273 +vt 0.199074 0.602273 +vt 0.226852 0.602273 +vt 0.685185 0.181818 +vt 0.824074 0.193182 +vt 0.685185 0.193182 +vt 0.685185 0.159091 +vt 0.824074 0.170455 +vt 0.685185 0.170455 +vt 0.685185 0.215909 +vt 0.824074 0.227273 +vt 0.685185 0.227273 +vt 0.685185 0.238636 +vt 0.824074 0.250000 +vt 0.685185 0.250000 +vt 0.824074 0.204545 +vt 0.685185 0.204545 +vt 0.824074 0.181818 +vt 0.824074 0.215909 +vt 0.824074 0.238636 +vt 0.750000 0.295455 +vt 0.768519 0.477273 +vt 0.750000 0.477273 +vt 0.916667 0.318182 +vt 0.898148 0.295455 +vt 0.916667 0.295455 +vt 0.916667 0.443182 +vt 0.898148 0.318182 +vt 0.916667 0.465909 +vt 0.898148 0.443182 +vt 0.879630 0.295455 +vt 0.888889 0.318182 +vt 0.898148 0.318182 +vt 0.842593 0.465909 +vt 0.842593 0.477273 +vt 0.833333 0.477273 +vt 0.842593 0.443182 +vt 0.777778 0.477273 +vt 0.842593 0.465909 +vt 0.842593 0.477273 +vt 0.851852 0.465909 +vt 0.851852 0.465909 +vt 0.851852 0.443182 +vt 0.879630 0.295455 +vt 0.888889 0.318182 +vt 0.824074 0.295455 +vt 0.833333 0.295455 +vt 0.870370 0.295455 +vt 0.824074 0.295455 +vt 0.777778 0.477273 +vt 0.851852 0.443182 +vt 0.842593 0.443182 +vt 0.833333 0.477273 +vt 0.601852 0.852273 +vt 0.305556 0.863636 +vt 0.305556 0.852273 +vt 0.601852 0.829545 +vt 0.305556 0.840909 +vt 0.305556 0.829545 +vt 0.601852 0.795455 +vt 0.305556 0.806818 +vt 0.305556 0.795455 +vt 0.601852 0.772727 +vt 0.305556 0.784091 +vt 0.305556 0.772727 +vt 0.601852 0.840909 +vt 0.601852 0.818182 +vt 0.305556 0.818182 +vt 0.601852 0.806818 +vt 0.601852 0.784091 +vt 0.606481 0.795455 +vt 0.615741 0.806818 +vt 0.606481 0.840909 +vt 0.615741 0.852273 +vt 0.611111 0.852273 +vt 0.615741 0.818182 +vt 0.615741 0.829545 +vt 0.615741 0.784091 +vt 0.615741 0.795455 +vt 0.615741 0.840909 +vt 0.625000 0.840909 +vt 0.625000 0.795455 +vt 0.629630 0.806818 +vt 0.620370 0.852273 +vt 0.629630 0.818182 +vt 0.629630 0.829545 +vt 0.615741 0.863636 +vt 0.615741 0.772727 +vt 0.611111 0.784091 +vt 0.620370 0.784091 +vt 0.629630 0.784091 +vt 0.675926 0.772727 +vt 0.675926 0.784091 +vt 0.629630 0.795455 +vt 0.675926 0.806818 +vt 0.629630 0.840909 +vt 0.675926 0.852273 +vt 0.629630 0.852273 +vt 0.675926 0.829545 +vt 0.675926 0.863636 +vt 0.629630 0.863636 +vt 0.675926 0.818182 +vt 0.675926 0.795455 +vt 0.675926 0.840909 +vt 0.787037 0.784091 +vt 0.731481 0.795455 +vt 0.731481 0.784091 +vt 0.787037 0.852273 +vt 0.731481 0.863636 +vt 0.731481 0.852273 +vt 0.787037 0.818182 +vt 0.731481 0.829545 +vt 0.731481 0.818182 +vt 0.787037 0.795455 +vt 0.731481 0.806818 +vt 0.787037 0.772727 +vt 0.731481 0.772727 +vt 0.787037 0.840909 +vt 0.731481 0.840909 +vt 0.787037 0.829545 +vt 0.787037 0.806818 +vt 0.791667 0.818182 +vt 0.800926 0.829545 +vt 0.791667 0.772727 +vt 0.800926 0.784091 +vt 0.796296 0.784091 +vt 0.800926 0.852273 +vt 0.800926 0.840909 +vt 0.796296 0.806818 +vt 0.800926 0.818182 +vt 0.800926 0.863636 +vt 0.791667 0.863636 +vt 0.814815 0.852273 +vt 0.810185 0.863636 +vt 0.814815 0.829545 +vt 0.810185 0.772727 +vt 0.805556 0.784091 +vt 0.814815 0.840909 +vt 0.800926 0.806818 +vt 0.810185 0.818182 +vt 0.800926 0.795455 +vt 0.805556 0.806818 +vt 0.814815 0.795455 +vt 0.944444 0.806818 +vt 0.814815 0.806818 +vt 0.814815 0.818182 +vt 0.944444 0.829545 +vt 0.814815 0.772727 +vt 0.944444 0.784091 +vt 0.814815 0.784091 +vt 0.944444 0.852273 +vt 0.944444 0.795455 +vt 0.944444 0.840909 +vt 0.944444 0.818182 +vt 0.944444 0.863636 +vt 0.814815 0.863636 +vt 0.958333 0.852273 +vt 0.958333 0.863636 +vt 0.962963 0.852273 +vt 0.953704 0.852273 +vt 0.958333 0.784091 +vt 0.962963 0.784091 +vt 0.958333 0.772727 +vt 0.953704 0.784091 +vt 0.689815 0.806818 +vt 0.680556 0.818182 +vt 0.689815 0.829545 +vt 0.685185 0.829545 +vt 0.685185 0.852273 +vt 0.689815 0.863636 +vt 0.680556 0.863636 +vt 0.689815 0.818182 +vt 0.689815 0.795455 +vt 0.689815 0.772727 +vt 0.689815 0.784091 +vt 0.694444 0.852273 +vt 0.699074 0.863636 +vt 0.726852 0.795455 +vt 0.717593 0.806818 +vt 0.717593 0.795455 +vt 0.703704 0.784091 +vt 0.703704 0.795455 +vt 0.699074 0.772727 +vt 0.703704 0.806818 +vt 0.717593 0.772727 +vt 0.689815 0.840909 +vt 0.694444 0.829545 +vt 0.689815 0.852273 +vt 0.717593 0.840909 +vt 0.726852 0.840909 +vt 0.717593 0.829545 +vt 0.722222 0.829545 +vt 0.717593 0.784091 +vt 0.717593 0.852273 +vt 0.722222 0.806818 +vt 0.717593 0.818182 +vt 0.712963 0.806818 +vt 0.708333 0.795455 +vt 0.703704 0.772727 +vt 0.717593 0.863636 +vt 0.703704 0.852273 +vt 0.708333 0.840909 +vt 0.712963 0.829545 +vt 0.699074 0.818182 +vt 0.958333 0.818182 +vt 0.958333 0.829545 +vt 0.949074 0.840909 +vt 0.958333 0.852273 +vt 0.953704 0.852273 +vt 0.949074 0.795455 +vt 0.958333 0.784091 +vt 0.958333 0.795455 +vt 0.958333 0.840909 +vt 0.958333 0.806818 +vt 0.972222 0.806818 +vt 0.972222 0.818182 +vt 0.967593 0.795455 +vt 0.972222 0.829545 +vt 0.967593 0.840909 +vt 0.962963 0.852273 +vt 0.958333 0.772727 +vt 0.953704 0.784091 +vt 0.962963 0.784091 +vt 0.958333 0.863636 +vt 0.226852 0.613636 +vt 0.240741 0.602273 +vt 0.240741 0.613636 +vt 0.143519 0.613636 +vt 0.157407 0.602273 +vt 0.157407 0.613636 +vt 0.171296 0.613636 +vt 0.185185 0.602273 +vt 0.185185 0.613636 +vt 0.199074 0.613636 +vt 0.212963 0.602273 +vt 0.212963 0.613636 +vt 0.254630 0.602273 +vt 0.254630 0.613636 +vt 0.171296 0.602273 +vt 0.199074 0.602273 +vt 0.226852 0.602273 +vt 0.861111 0.579545 +vt 0.851852 0.647727 +vt 0.851852 0.579545 +vt 0.842593 0.579545 +vt 0.833333 0.647727 +vt 0.833333 0.579545 +vt 0.824074 0.579545 +vt 0.814815 0.647727 +vt 0.814815 0.579545 +vt 0.879630 0.579545 +vt 0.870370 0.647727 +vt 0.870370 0.579545 +vt 0.861111 0.647727 +vt 0.842593 0.647727 +vt 0.824074 0.647727 +vt 0.888889 0.579545 +vt 0.879630 0.647727 +vt 0.935185 0.579545 +vt 0.925926 0.590909 +vt 0.925926 0.579545 +vt 0.916667 0.579545 +vt 0.907407 0.590909 +vt 0.907407 0.579545 +vt 0.898148 0.579545 +vt 0.888889 0.590909 +vt 0.888889 0.579545 +vt 0.953704 0.579545 +vt 0.944444 0.590909 +vt 0.944444 0.579545 +vt 0.935185 0.590909 +vt 0.916667 0.590909 +vt 0.898148 0.590909 +vt 0.962963 0.579545 +vt 0.953704 0.590909 +vt 0.685185 0.181818 +vt 0.824074 0.193182 +vt 0.685185 0.193182 +vt 0.685185 0.159091 +vt 0.824074 0.170455 +vt 0.685185 0.170455 +vt 0.685185 0.215909 +vt 0.824074 0.227273 +vt 0.685185 0.227273 +vt 0.685185 0.238636 +vt 0.824074 0.250000 +vt 0.685185 0.250000 +vt 0.824074 0.204545 +vt 0.685185 0.204545 +vt 0.824074 0.181818 +vt 0.824074 0.215909 +vt 0.824074 0.238636 +vt 0.958333 0.840909 +vt 0.972222 0.829545 +vt 0.958333 0.829545 +vt 0.967593 0.795455 +vt 0.958333 0.795455 +vt 0.967593 0.840909 +vt 0.958333 0.818182 +vt 0.958333 0.806818 +vt 0.972222 0.806818 +vt 0.944444 0.806818 +vt 0.949074 0.795455 +vt 0.944444 0.818182 +vt 0.944444 0.829545 +vt 0.949074 0.840909 +vt 0.722222 0.829545 +vt 0.717593 0.818182 +vt 0.717593 0.829545 +vt 0.712963 0.829545 +vt 0.689815 0.818182 +vt 0.694444 0.829545 +vt 0.699074 0.818182 +vt 0.708333 0.840909 +vt 0.717593 0.852273 +vt 0.717593 0.840909 +vt 0.717593 0.863636 +vt 0.703704 0.852273 +vt 0.703704 0.863636 +vt 0.717593 0.772727 +vt 0.703704 0.784091 +vt 0.717593 0.784091 +vt 0.717593 0.795455 +vt 0.708333 0.795455 +vt 0.717593 0.806818 +vt 0.712963 0.806818 +vt 0.722222 0.806818 +vt 0.703704 0.806818 +vt 0.689815 0.806818 +vt 0.731481 0.863636 +vt 0.731481 0.852273 +vt 0.726852 0.795455 +vt 0.731481 0.784091 +vt 0.726852 0.840909 +vt 0.689815 0.852273 +vt 0.694444 0.852273 +vt 0.689815 0.840909 +vt 0.685185 0.852273 +vt 0.689815 0.829545 +vt 0.685185 0.829545 +vt 0.731481 0.772727 +vt 0.703704 0.795455 +vt 0.689815 0.795455 +vt 0.689815 0.784091 +vt 0.699074 0.772727 +vt 0.689815 0.772727 +vt 0.689815 0.863636 +vt 0.680556 0.772727 +vt 0.675926 0.784091 +vt 0.675926 0.795455 +vt 0.680556 0.818182 +vt 0.675926 0.806818 +vt 0.680556 0.863636 +vt 0.944444 0.863636 +vt 0.814815 0.852273 +vt 0.814815 0.863636 +vt 0.814815 0.806818 +vt 0.814815 0.818182 +vt 0.944444 0.840909 +vt 0.814815 0.829545 +vt 0.814815 0.840909 +vt 0.944444 0.795455 +vt 0.814815 0.784091 +vt 0.814815 0.795455 +vt 0.944444 0.852273 +vt 0.944444 0.784091 +vt 0.814815 0.772727 +vt 0.800926 0.784091 +vt 0.800926 0.795455 +vt 0.805556 0.784091 +vt 0.800926 0.806818 +vt 0.805556 0.806818 +vt 0.796296 0.806818 +vt 0.796296 0.784091 +vt 0.810185 0.818182 +vt 0.800926 0.818182 +vt 0.800926 0.840909 +vt 0.800926 0.829545 +vt 0.800926 0.852273 +vt 0.810185 0.772727 +vt 0.800926 0.772727 +vt 0.800926 0.863636 +vt 0.791667 0.863636 +vt 0.787037 0.852273 +vt 0.791667 0.818182 +vt 0.787037 0.829545 +vt 0.787037 0.840909 +vt 0.791667 0.772727 +vt 0.731481 0.818182 +vt 0.787037 0.806818 +vt 0.731481 0.806818 +vt 0.731481 0.840909 +vt 0.731481 0.829545 +vt 0.787037 0.772727 +vt 0.787037 0.795455 +vt 0.731481 0.795455 +vt 0.787037 0.818182 +vt 0.787037 0.784091 +vt 0.675926 0.840909 +vt 0.629630 0.829545 +vt 0.629630 0.840909 +vt 0.629630 0.784091 +vt 0.629630 0.795455 +vt 0.629630 0.818182 +vt 0.629630 0.806818 +vt 0.675926 0.863636 +vt 0.629630 0.852273 +vt 0.629630 0.863636 +vt 0.675926 0.829545 +vt 0.675926 0.852273 +vt 0.629630 0.772727 +vt 0.615741 0.852273 +vt 0.615741 0.863636 +vt 0.620370 0.852273 +vt 0.615741 0.784091 +vt 0.620370 0.784091 +vt 0.615741 0.772727 +vt 0.611111 0.784091 +vt 0.611111 0.852273 +vt 0.625000 0.795455 +vt 0.615741 0.795455 +vt 0.615741 0.818182 +vt 0.615741 0.806818 +vt 0.615741 0.829545 +vt 0.625000 0.840909 +vt 0.615741 0.840909 +vt 0.601852 0.829545 +vt 0.606481 0.840909 +vt 0.606481 0.795455 +vt 0.601852 0.806818 +vt 0.601852 0.818182 +vt 0.305556 0.795455 +vt 0.601852 0.784091 +vt 0.305556 0.784091 +vt 0.305556 0.818182 +vt 0.305556 0.806818 +vt 0.305556 0.829545 +vt 0.305556 0.852273 +vt 0.601852 0.840909 +vt 0.305556 0.840909 +vt 0.601852 0.772727 +vt 0.305556 0.772727 +vt 0.601852 0.795455 +vt 0.305556 0.863636 +vt 0.601852 0.852273 +vt 1.000000 0.795455 +vt 0.972222 0.806818 +vt 0.972222 0.795455 +vt 0.972222 0.818182 +vt 1.000000 0.806818 +vt 1.000000 0.818182 +vt 1.000000 0.829545 +vt 0.972222 0.829545 +vt 1.000000 0.840909 +vt 0.972222 0.840909 +vt 0.972222 0.852273 +vt 1.000000 0.852273 +vt 0.972222 0.863636 +vt 1.000000 0.772727 +vt 0.972222 0.784091 +vt 0.972222 0.772727 +vt 1.000000 0.784091 +vt 0.143519 0.602273 +vt 0.824074 0.159091 +vt 0.768519 0.295455 +vt 0.898148 0.465909 +vt 0.768519 0.477273 +vt 0.601852 0.863636 +vt 0.629630 0.772727 +vt 0.787037 0.863636 +vt 0.800926 0.772727 +vt 0.944444 0.772727 +vt 0.680556 0.772727 +vt 0.703704 0.863636 +vt 0.143519 0.602273 +vt 0.888889 0.647727 +vt 0.962963 0.590909 +vt 0.824074 0.159091 +vt 0.972222 0.818182 +vt 0.703704 0.772727 +vt 0.699074 0.863636 +vt 0.944444 0.772727 +vt 0.810185 0.863636 +vt 0.787037 0.863636 +vt 0.675926 0.818182 +vt 0.675926 0.772727 +vt 0.601852 0.863636 +vt 1.000000 0.863636 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.0000 0.0000 1.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.3714 -0.9285 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.6508 0.7593 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 -0.9744 0.2249 +vn 0.0000 0.9701 -0.2425 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.3945 -0.3227 0.8604 +vn 0.3354 -0.3308 0.8821 +vn -0.3354 -0.3308 0.8821 +vn -0.3389 -0.1566 -0.9277 +vn 0.3458 -0.6635 -0.6635 +vn -0.3458 -0.6635 -0.6635 +vn -0.3951 0.2038 -0.8957 +vn 0.3389 -0.1566 -0.9277 +vn -0.4567 0.1610 -0.8749 +vn 0.3951 0.2038 -0.8957 +vn -0.8652 -0.1255 -0.4854 +vn 0.8727 0.2257 -0.4330 +vn 0.5774 0.5774 -0.5774 +vn 0.9607 0.1962 -0.1962 +vn 0.9402 0.0662 -0.3342 +vn 0.8795 -0.1671 0.4457 +vn -0.8727 0.2257 -0.4330 +vn -0.5774 0.5774 -0.5774 +vn 0.4567 0.1610 -0.8749 +vn 0.8652 -0.1255 -0.4854 +vn 0.9607 -0.1962 -0.1962 +vn 0.3945 -0.3227 0.8604 +vn -0.9467 -0.1131 0.3016 +vn -0.9607 -0.1962 -0.1962 +vn -0.8795 -0.1671 0.4457 +vn -0.9402 0.0662 -0.3342 +vn 0.9467 -0.1131 0.3016 +vn -0.9607 0.1962 -0.1962 +vn -0.7263 -0.6737 0.1363 +vn -0.6794 0.7194 -0.1448 +vn 0.9987 0.0473 -0.0196 +vn -0.9987 0.0473 -0.0196 +vn -0.0000 0.9824 -0.1866 +vn 0.6794 0.7194 -0.1448 +vn 0.7263 -0.6737 0.1363 +vn 0.6630 0.5294 -0.5294 +vn -0.7574 -0.4617 0.4617 +vn -0.6630 0.5294 -0.5294 +vn 0.7574 -0.4617 0.4617 +vn 0.9955 0.0671 -0.0671 +vn -0.9955 0.0671 -0.0671 +vn -0.9987 0.0196 -0.0473 +vn 0.9987 0.0196 -0.0473 +vn 0.6794 0.1448 -0.7194 +vn -0.7263 -0.1363 0.6737 +vn 0.0000 0.1866 -0.9824 +vn -0.6794 0.1448 -0.7194 +vn 0.7263 -0.1363 0.6737 +vn 0.0473 -0.0196 0.9987 +vn 0.7194 -0.1448 0.6794 +vn 0.7194 -0.1448 -0.6794 +vn -0.6737 0.1363 0.7263 +vn -0.6737 0.1363 -0.7263 +vn 0.0473 -0.0196 -0.9987 +vn 0.9824 -0.1866 -0.0000 +vn -0.7203 0.6916 0.0527 +vn -0.0473 -0.9987 0.0196 +vn -0.7194 -0.6794 0.1448 +vn -0.9824 -0.0000 0.1866 +vn -0.7194 0.6794 0.1448 +vn 0.6737 0.7263 -0.1363 +vn 0.7203 -0.0527 -0.6916 +vn 0.6737 -0.7263 -0.1363 +vn -0.0473 0.9987 0.0196 +vn 0.6630 0.5294 -0.5293 +vn -0.6630 0.5294 -0.5293 +vn 0.4617 0.4617 -0.7574 +vn 0.1363 0.6737 -0.7263 +vn 0.6737 0.1363 -0.7263 +vn 0.4617 0.4617 0.7574 +vn 0.1363 0.6737 0.7263 +vn 0.6737 0.1363 0.7263 +vn 0.5294 -0.5294 -0.6630 +vn -0.4617 0.4617 -0.7574 +vn 0.0671 -0.0671 0.9955 +vn 0.0671 -0.0671 -0.9955 +vn 0.5294 -0.5294 0.6630 +vn -0.2775 0.6318 0.7237 +vn -0.1673 -0.0505 0.9846 +vn 0.4617 -0.7574 -0.4617 +vn -0.0671 -0.9955 0.0671 +vn 0.1673 -0.9846 0.0505 +vn 0.2775 -0.7237 -0.6318 +vn -0.7071 0.0000 0.7071 +vn -0.4617 0.4617 0.7574 +vn -0.0671 0.9955 0.0671 +vn 0.4617 0.7574 -0.4617 +vn -0.5294 -0.6630 0.5294 +vn -0.5294 0.6630 0.5294 +vn 0.1448 -0.7194 0.6794 +vn 0.1866 -0.9824 -0.0000 +vn 0.0196 -0.0473 0.9987 +vn 0.1448 -0.7194 -0.6794 +vn 0.0196 -0.0473 -0.9987 +vn -0.1363 0.6737 -0.7263 +vn -0.1363 0.6737 0.7263 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.0671 -0.0671 -0.9955 +vn -0.1448 -0.7194 -0.6794 +vn -0.5293 -0.5294 -0.6630 +vn -0.0196 -0.0473 0.9987 +vn -0.0671 -0.0671 0.9955 +vn -0.0196 -0.0473 -0.9987 +vn -0.5294 -0.5294 0.6630 +vn -0.1448 -0.7194 0.6794 +vn -0.7194 -0.1448 0.6794 +vn -0.0473 -0.0196 0.9987 +vn -0.9824 -0.1866 0.0000 +vn -0.7194 -0.1448 -0.6794 +vn -0.0473 -0.0196 -0.9987 +vn -0.6737 0.7263 -0.1363 +vn -0.7203 -0.0527 -0.6916 +vn -0.4617 0.7574 -0.4617 +vn 0.7203 0.6916 0.0527 +vn 0.5294 0.6630 0.5294 +vn 0.0671 0.9955 0.0671 +vn 0.2775 0.6318 0.7237 +vn 0.1673 -0.0505 0.9846 +vn 0.5294 -0.6630 0.5294 +vn 0.0671 -0.9955 0.0671 +vn -0.1673 -0.9846 0.0505 +vn -0.4617 -0.7574 -0.4617 +vn -0.2775 -0.7237 -0.6318 +vn -0.6737 -0.7263 -0.1363 +vn -0.5294 -0.5294 -0.6630 +vn 0.9824 0.0000 0.1866 +vn 0.7194 0.6794 0.1448 +vn 0.0473 -0.9987 0.0196 +vn 0.7194 -0.6794 0.1448 +vn 0.0473 0.9987 0.0196 +vn -0.1866 -0.9824 -0.0000 +s off +f 672/1137/153 667/1138/153 668/1139/153 +f 655/1140/154 653/1141/154 654/1142/154 +f 662/1143/153 654/1142/153 653/1141/153 +f 661/1144/155 660/1145/155 651/1146/155 +f 655/1140/155 658/1147/155 656/1148/155 +f 657/1149/153 652/1150/153 659/1151/153 +f 665/1152/156 657/1153/156 659/1154/156 +f 663/1155/154 658/1156/154 657/1153/154 +f 661/1157/156 666/1158/156 660/1159/156 +f 662/1160/154 667/1138/154 661/1157/154 +f 651/1146/154 659/1151/154 652/1150/154 +f 660/1145/157 669/1161/157 659/1151/157 +f 660/1145/157 666/1162/157 670/1163/157 +f 659/1151/157 669/1161/157 665/1164/157 +f 673/1165/158 665/1166/158 669/1167/158 +f 666/1168/159 674/1169/159 670/1170/159 +f 670/1170/160 673/1165/160 669/1167/160 +f 663/1155/155 671/1171/155 664/1172/155 +f 657/1173/157 654/1142/157 661/1174/157 +f 673/1165/161 662/1175/161 658/1176/161 +f 675/1177/153 678/1178/153 676/1179/153 +f 682/1180/155 679/1181/155 680/1182/155 +f 676/1183/162 679/1181/162 675/1177/162 +f 675/1177/160 681/1184/160 677/1185/160 +f 677/1185/157 682/1186/157 678/1187/157 +f 693/1188/155 695/1189/155 697/1190/155 +f 704/1191/153 708/1192/153 699/1193/153 +f 712/1194/161 714/1195/161 710/1196/161 +f 702/1197/155 714/1198/155 705/1199/155 +f 706/1200/154 712/1201/154 703/1202/154 +f 714/1198/163 706/1200/163 705/1199/163 +f 704/1191/164 712/1201/164 711/1203/164 +f 700/1204/159 708/1192/159 707/1205/159 +f 710/1196/158 702/1206/158 701/1207/158 +f 700/1204/160 710/1196/160 701/1207/160 +f 725/1208/161 727/1209/161 729/1210/161 +f 720/1211/157 718/1212/157 716/1213/157 +f 750/1214/160 733/1215/160 756/1216/160 +f 744/1217/160 741/1218/160 742/1219/160 +f 746/1220/161 743/1221/161 744/1217/161 +f 742/1219/153 746/1222/153 744/1217/153 +f 741/1218/155 745/1223/155 747/1224/155 +f 763/1225/165 766/1226/165 764/1227/165 +f 766/1228/153 770/1229/153 764/1230/153 +f 769/1231/155 765/1232/155 763/1233/155 +f 775/1234/155 773/1235/155 771/1236/155 +f 772/1237/166 775/1234/166 771/1236/166 +f 774/1238/153 776/1239/153 772/1237/153 +f 777/1240/167 774/1241/167 773/1235/167 +f 776/1239/168 779/1242/168 775/1234/168 +f 781/1243/169 778/1244/169 777/1240/169 +f 778/1245/153 780/1246/153 776/1239/153 +f 779/1242/155 777/1240/155 775/1234/155 +f 900/1247/153 903/1248/153 901/1249/153 +f 907/1250/155 904/1251/155 905/1252/155 +f 901/1253/162 904/1251/162 900/1247/162 +f 900/1247/160 906/1254/160 902/1255/160 +f 902/1255/157 907/1256/157 903/1257/157 +f 917/1258/153 918/1259/153 920/1260/153 +f 930/1261/160 928/1262/160 926/1263/160 +f 936/1264/154 938/1265/154 932/1266/154 +f 952/1267/154 954/1268/154 948/1269/154 +f 966/1270/161 968/1271/161 970/1272/161 +f 961/1273/157 959/1274/157 957/1275/157 +f 1077/1276/170 1076/1277/170 1075/1278/170 +f 1079/1279/154 1078/1280/154 1077/1276/154 +f 1081/1281/161 1080/1282/161 1079/1279/161 +f 1078/1280/153 1082/1283/153 1076/1284/153 +f 1077/1276/155 1081/1285/155 1079/1279/155 +f 1085/1286/170 1084/1287/170 1083/1288/170 +f 1087/1289/154 1086/1290/154 1085/1286/154 +f 1089/1291/161 1088/1292/161 1087/1289/161 +f 1086/1290/153 1090/1293/153 1084/1294/153 +f 1085/1286/155 1089/1295/155 1087/1289/155 +f 672/1137/153 666/1168/153 667/1138/153 +f 655/1140/154 656/1148/154 653/1141/154 +f 662/1143/153 661/1296/153 654/1142/153 +f 655/1140/155 657/1297/155 658/1147/155 +f 665/1152/156 663/1155/156 657/1153/156 +f 663/1155/154 664/1172/154 658/1156/154 +f 661/1157/156 667/1138/156 666/1158/156 +f 662/1160/154 668/1139/154 667/1138/154 +f 651/1146/154 660/1145/154 659/1151/154 +f 660/1145/157 670/1163/157 669/1161/157 +f 673/1165/158 671/1171/158 665/1166/158 +f 666/1168/159 672/1137/159 674/1169/159 +f 670/1170/160 674/1169/160 673/1165/160 +f 663/1155/155 665/1166/155 671/1171/155 +f 651/1146/157 652/1150/157 657/1173/157 +f 657/1173/157 655/1140/157 654/1142/157 +f 661/1174/157 651/1146/157 657/1173/157 +f 664/1298/161 671/1299/161 658/1176/161 +f 671/1299/161 673/1165/161 658/1176/161 +f 673/1165/161 674/1169/161 662/1175/161 +f 674/1169/161 672/1300/161 662/1175/161 +f 672/1300/161 668/1301/161 662/1175/161 +f 662/1175/161 653/1141/161 656/1148/161 +f 662/1175/161 656/1148/161 658/1176/161 +f 675/1177/153 677/1185/153 678/1178/153 +f 682/1180/155 681/1184/155 679/1181/155 +f 676/1183/162 680/1302/162 679/1181/162 +f 675/1177/160 679/1181/160 681/1184/160 +f 677/1185/157 681/1184/157 682/1186/157 +f 692/1303/155 691/1304/155 693/1188/155 +f 693/1188/155 694/1305/155 695/1189/155 +f 695/1189/155 696/1306/155 697/1190/155 +f 697/1190/155 698/1307/155 692/1303/155 +f 692/1303/155 693/1188/155 697/1190/155 +f 704/1191/153 711/1203/153 708/1192/153 +f 710/1196/161 707/1205/161 708/1308/161 +f 708/1308/161 711/1309/161 712/1194/161 +f 712/1194/161 713/1310/161 714/1195/161 +f 714/1195/161 709/1311/161 710/1196/161 +f 710/1196/161 708/1308/161 712/1194/161 +f 702/1197/155 709/1312/155 714/1198/155 +f 706/1200/154 713/1313/154 712/1201/154 +f 714/1198/163 713/1313/163 706/1200/163 +f 704/1191/164 703/1202/164 712/1201/164 +f 700/1204/159 699/1193/159 708/1192/159 +f 710/1196/158 709/1314/158 702/1206/158 +f 700/1204/160 707/1205/160 710/1196/160 +f 729/1210/161 723/1315/161 724/1316/161 +f 724/1316/161 730/1317/161 725/1208/161 +f 725/1208/161 726/1318/161 727/1209/161 +f 727/1209/161 728/1319/161 729/1210/161 +f 729/1210/161 724/1316/161 725/1208/161 +f 716/1213/157 715/1320/157 722/1321/157 +f 722/1321/157 721/1322/157 720/1211/157 +f 720/1211/157 719/1323/157 718/1212/157 +f 718/1212/157 717/1324/157 716/1213/157 +f 716/1213/157 722/1321/157 720/1211/157 +f 733/1215/160 734/1325/160 756/1216/160 +f 756/1216/160 758/1326/160 751/1327/160 +f 758/1326/160 736/1328/160 751/1327/160 +f 736/1328/160 735/1329/160 751/1327/160 +f 751/1327/160 750/1214/160 756/1216/160 +f 744/1217/160 743/1221/160 741/1218/160 +f 746/1220/161 745/1330/161 743/1221/161 +f 742/1219/153 748/1331/153 746/1222/153 +f 741/1218/155 743/1221/155 745/1223/155 +f 763/1225/165 765/1232/165 766/1226/165 +f 766/1228/153 768/1332/153 770/1229/153 +f 769/1231/155 767/1333/155 765/1232/155 +f 775/1234/155 777/1240/155 773/1235/155 +f 772/1237/166 776/1239/166 775/1234/166 +f 774/1238/153 778/1245/153 776/1239/153 +f 777/1240/167 778/1244/167 774/1241/167 +f 776/1239/168 780/1246/168 779/1242/168 +f 781/1243/169 782/1334/169 778/1244/169 +f 778/1245/153 782/1335/153 780/1246/153 +f 779/1242/155 781/1243/155 777/1240/155 +f 900/1247/153 902/1255/153 903/1248/153 +f 907/1250/155 906/1254/155 904/1251/155 +f 901/1253/162 905/1336/162 904/1251/162 +f 900/1247/160 904/1251/160 906/1254/160 +f 902/1255/157 906/1254/157 907/1256/157 +f 917/1258/153 916/1337/153 918/1259/153 +f 918/1259/153 919/1338/153 920/1260/153 +f 920/1260/153 921/1339/153 917/1258/153 +f 921/1339/153 922/1340/153 917/1258/153 +f 922/1340/153 923/1341/153 917/1258/153 +f 926/1263/160 925/1342/160 924/1343/160 +f 924/1343/160 931/1344/160 930/1261/160 +f 930/1261/160 929/1345/160 928/1262/160 +f 928/1262/160 927/1346/160 926/1263/160 +f 926/1263/160 924/1343/160 930/1261/160 +f 932/1266/154 933/1347/154 934/1348/154 +f 934/1348/154 935/1349/154 936/1264/154 +f 936/1264/154 937/1350/154 938/1265/154 +f 938/1265/154 939/1351/154 932/1266/154 +f 932/1266/154 934/1348/154 936/1264/154 +f 948/1269/154 949/1352/154 950/1353/154 +f 950/1353/154 951/1354/154 952/1267/154 +f 952/1267/154 953/1355/154 954/1268/154 +f 954/1268/154 955/1356/154 948/1269/154 +f 948/1269/154 950/1353/154 952/1267/154 +f 970/1272/161 964/1357/161 965/1358/161 +f 965/1358/161 971/1359/161 966/1270/161 +f 966/1270/161 967/1360/161 968/1271/161 +f 968/1271/161 969/1361/161 970/1272/161 +f 970/1272/161 965/1358/161 966/1270/161 +f 957/1275/157 956/1362/157 963/1363/157 +f 963/1363/157 962/1364/157 961/1273/157 +f 961/1273/157 960/1365/157 959/1274/157 +f 959/1274/157 958/1366/157 957/1275/157 +f 957/1275/157 963/1363/157 961/1273/157 +f 1077/1276/170 1078/1280/170 1076/1277/170 +f 1079/1279/154 1080/1282/154 1078/1280/154 +f 1081/1281/161 1082/1367/161 1080/1282/161 +f 1078/1280/153 1080/1282/153 1082/1283/153 +f 1077/1276/155 1075/1368/155 1081/1285/155 +f 1085/1286/170 1086/1290/170 1084/1287/170 +f 1087/1289/154 1088/1292/154 1086/1290/154 +f 1089/1291/161 1090/1369/161 1088/1292/161 +f 1086/1290/153 1088/1292/153 1090/1293/153 +f 1085/1286/155 1083/1370/155 1089/1295/155 +s 1 +f 683/1371/161 698/1372/171 690/1373/171 +f 689/1374/160 696/1375/172 688/1376/172 +f 687/1377/157 694/1378/170 686/1379/170 +f 685/1380/154 691/1381/173 684/1382/173 +f 690/1373/171 697/1383/160 689/1384/160 +f 688/1376/172 695/1385/157 687/1377/157 +f 686/1379/170 693/1386/154 685/1380/154 +f 684/1382/173 692/1387/161 683/1371/161 +f 716/1388/155 723/1389/163 715/1390/163 +f 718/1391/160 730/1392/158 717/1393/158 +f 721/1394/164 727/1395/153 720/1396/153 +f 719/1397/159 725/1398/160 718/1399/160 +f 715/1390/163 729/1400/154 722/1401/154 +f 717/1393/158 724/1402/155 716/1388/155 +f 722/1401/154 728/1403/164 721/1394/164 +f 720/1396/153 726/1404/159 719/1397/159 +f 734/1405/174 731/1406/175 732/1407/176 +f 738/1408/177 735/1409/178 736/1410/179 +f 740/1411/180 737/1412/181 738/1408/177 +f 742/1413/182 739/1414/183 740/1411/180 +f 736/1415/179 759/1416/184 738/1417/177 +f 754/1418/185 747/1419/186 755/1420/187 +f 753/1421/188 755/1420/187 749/1422/189 +f 761/1423/190 748/1424/191 742/1425/182 +f 741/1426/192 753/1421/188 739/1427/183 +f 741/1426/192 747/1419/186 754/1418/185 +f 735/1428/178 752/1429/193 751/1327/194 +f 733/1430/195 749/1422/189 731/1406/175 +f 739/1427/183 752/1429/193 737/1412/181 +f 756/1431/196 759/1416/184 758/1432/197 +f 734/1433/174 757/1434/198 756/1431/196 +f 740/1435/180 759/1416/184 760/1436/199 +f 750/1214/200 753/1421/188 749/1422/189 +f 740/1435/180 761/1423/190 742/1425/182 +f 748/1424/191 761/1423/190 762/1437/201 +f 750/1214/200 752/1429/193 753/1421/188 +f 760/1436/199 756/1431/196 757/1434/198 +f 762/1437/201 760/1436/199 757/1434/198 +f 794/1438/202 787/1439/160 786/1440/159 +f 792/1441/203 785/1442/153 784/1443/164 +f 797/1444/204 790/1445/163 789/1446/155 +f 795/1447/172 788/1448/158 787/1449/160 +f 793/1450/205 786/1440/159 785/1442/153 +f 791/1451/206 784/1443/164 783/1452/154 +f 798/1453/207 783/1452/154 790/1445/163 +f 796/1454/208 789/1446/155 788/1448/158 +f 797/1455/204 805/1456/209 798/1453/207 +f 793/1457/205 802/1458/210 794/1459/202 +f 792/1441/203 799/1460/173 800/1461/211 +f 791/1451/206 805/1456/209 799/1460/173 +f 797/1455/204 803/1462/212 804/1463/213 +f 792/1441/203 801/1464/214 793/1457/205 +f 800/1461/211 808/1465/215 801/1464/214 +f 805/1456/209 811/1466/216 812/1467/217 +f 802/1458/210 808/1465/215 809/1468/218 +f 800/1461/211 806/1469/219 807/1470/220 +f 799/1460/173 812/1467/217 806/1469/219 +f 803/1462/212 811/1466/216 804/1463/213 +f 794/1459/202 802/1458/210 795/1471/172 +f 795/1472/172 803/1462/212 796/1473/208 +f 803/1462/212 795/1472/172 810/1474/221 +f 802/1458/210 809/1468/218 795/1471/172 +f 810/1475/221 813/1476/222 818/1477/223 +f 811/1478/216 820/1479/224 812/1467/217 +f 808/1480/215 817/1481/225 809/1482/218 +f 806/1469/219 815/1483/226 807/1470/220 +f 809/1482/218 813/1484/222 795/1485/172 +f 806/1469/219 820/1479/224 814/1486/227 +f 810/1475/221 819/1487/228 811/1478/216 +f 807/1470/220 816/1488/229 808/1480/215 +f 832/1489/202 825/1490/230 824/1491/231 +f 830/1492/203 823/1493/232 822/1494/233 +f 835/1495/204 828/1496/234 827/1497/235 +f 833/1498/172 826/1499/236 825/1490/230 +f 831/1500/205 824/1491/231 823/1501/232 +f 829/1502/206 822/1494/233 821/1503/237 +f 836/1504/207 821/1503/237 828/1496/234 +f 834/1505/208 827/1497/235 826/1499/236 +f 835/1506/204 843/1507/238 836/1504/207 +f 831/1508/205 840/1509/210 832/1510/202 +f 829/1502/206 838/1511/239 830/1492/203 +f 836/1504/207 837/1512/173 829/1502/206 +f 834/1513/208 842/1514/213 835/1506/204 +f 830/1492/203 839/1515/214 831/1516/205 +f 839/1515/214 845/1517/220 846/1518/215 +f 842/1514/213 850/1519/217 843/1507/238 +f 840/1509/210 846/1520/215 847/1521/218 +f 837/1512/173 845/1517/220 838/1511/239 +f 837/1512/173 850/1519/217 844/1522/219 +f 841/1523/212 849/1524/216 842/1514/213 +f 832/1510/202 840/1509/210 833/1525/172 +f 833/1525/172 841/1523/212 834/1513/208 +f 841/1523/212 833/1525/172 848/1526/221 +f 840/1509/210 847/1521/218 833/1525/172 +f 833/1527/172 856/1528/223 848/1529/221 +f 849/1530/216 858/1531/224 850/1519/217 +f 846/1532/215 855/1533/225 847/1534/218 +f 844/1522/219 853/1535/226 845/1517/220 +f 847/1534/218 851/1536/222 833/1527/172 +f 850/1519/217 852/1537/227 844/1522/219 +f 848/1529/221 857/1538/228 849/1530/216 +f 845/1517/220 854/1539/164 846/1540/215 +f 976/1541/240 1003/1542/163 863/1543/241 +f 1004/1544/242 1003/1542/163 976/1541/240 +f 975/1545/243 862/1546/244 1003/1547/163 +f 1003/1547/163 1002/1548/245 975/1545/243 +f 819/1487/228 872/1549/246 820/1479/224 +f 814/1550/227 868/1551/247 815/1552/226 +f 817/1553/225 866/1554/248 813/1555/222 +f 820/1479/224 867/1556/249 814/1550/227 +f 818/1477/223 871/1557/158 819/1487/228 +f 818/1477/223 866/1558/248 870/1559/250 +f 866/1554/248 876/1560/251 873/1561/252 +f 825/1562/230 884/1563/253 883/1564/254 +f 871/1557/158 877/1565/172 878/1566/255 +f 870/1559/250 873/1567/252 877/1565/172 +f 872/1549/246 878/1566/255 879/1568/256 +f 824/1491/231 881/1569/257 823/1501/232 +f 815/1552/226 868/1551/247 816/1570/229 +f 868/1551/247 875/1571/173 816/1570/229 +f 816/1570/229 869/1572/258 817/1553/225 +f 869/1572/258 816/1570/229 876/1560/251 +f 822/1494/233 874/1573/259 821/1574/237 +f 821/1574/237 885/1575/260 828/1576/234 +f 825/1562/230 882/1577/261 824/1491/231 +f 823/1493/232 880/1578/262 822/1494/233 +f 879/1568/256 867/1556/249 872/1549/246 +f 826/1579/236 827/1580/235 884/1563/253 +f 879/1581/256 884/1563/253 827/1580/235 +f 878/1582/255 884/1563/253 879/1581/256 +f 877/1565/172 883/1564/254 878/1582/255 +f 882/1577/261 873/1583/252 881/1569/257 +f 881/1584/257 876/1585/251 880/1578/262 +f 880/1578/262 816/1586/229 874/1573/259 +f 885/1575/260 816/1586/229 875/1587/173 +f 827/1588/235 868/1551/247 867/1556/249 +f 885/1575/260 875/1587/173 827/1580/235 +f 828/1576/234 885/1575/260 827/1580/235 +f 858/1531/224 891/1589/158 892/1590/246 +f 852/1591/227 888/1592/247 853/1593/226 +f 851/1594/222 889/1595/258 886/1596/248 +f 858/1531/224 887/1597/249 852/1591/227 +f 856/1528/223 891/1589/158 857/1538/228 +f 856/1528/223 886/1596/248 890/1598/250 +f 891/1589/158 897/1599/263 898/1600/264 +f 890/1598/250 893/1601/265 897/1599/263 +f 891/1589/158 899/1602/266 892/1590/246 +f 888/1592/247 894/1603/267 895/1604/268 +f 889/1595/258 893/1601/265 886/1596/248 +f 887/1597/249 899/1602/266 894/1603/267 +f 854/1605/164 889/1595/258 855/1606/225 +f 889/1595/258 854/1605/164 896/1607/269 +f 853/1593/226 888/1592/247 854/1608/164 +f 888/1592/247 895/1604/268 854/1608/164 +f 908/1609/157 923/1610/172 915/1611/172 +f 914/1612/160 921/1613/171 913/1614/171 +f 912/1615/161 919/1616/173 911/1617/173 +f 910/1618/154 916/1619/170 909/1620/170 +f 915/1611/172 922/1621/160 914/1622/160 +f 913/1614/171 920/1623/161 912/1615/161 +f 911/1617/173 918/1624/154 910/1618/154 +f 909/1620/170 917/1625/157 908/1609/157 +f 931/1626/270 938/1627/155 930/1628/155 +f 929/1629/271 936/1630/157 928/1631/157 +f 927/1632/257 934/1633/153 926/1634/153 +f 925/1635/272 932/1636/161 924/1637/161 +f 924/1637/161 939/1638/270 931/1626/270 +f 930/1628/155 937/1639/271 929/1629/271 +f 928/1631/157 935/1640/257 927/1632/257 +f 926/1641/153 933/1642/272 925/1635/272 +f 947/1643/270 954/1644/155 946/1645/155 +f 945/1646/271 952/1647/157 944/1648/157 +f 943/1649/257 950/1650/153 942/1651/153 +f 941/1652/272 948/1653/161 940/1654/161 +f 940/1654/161 955/1655/270 947/1643/270 +f 946/1645/155 953/1656/271 945/1646/271 +f 944/1648/157 951/1657/257 943/1649/257 +f 942/1658/153 949/1659/272 941/1652/272 +f 957/1660/155 964/1661/163 956/1662/163 +f 959/1663/160 971/1664/158 958/1665/158 +f 962/1666/164 968/1667/153 961/1668/153 +f 960/1669/159 966/1670/160 959/1671/160 +f 956/1662/163 970/1672/154 963/1673/154 +f 958/1665/158 965/1674/155 957/1660/155 +f 963/1673/154 969/1675/164 962/1666/164 +f 961/1668/153 967/1676/159 960/1669/159 +f 977/1677/273 859/1678/274 972/1679/275 +f 865/1680/276 975/1545/243 978/1681/277 +f 976/1541/240 864/1682/278 977/1677/273 +f 859/1678/274 973/1683/159 972/1679/275 +f 974/1684/279 865/1680/276 978/1681/277 +f 973/1683/159 861/1685/280 974/1684/279 +f 1001/1686/281 978/1681/277 1006/1687/282 +f 973/1683/159 1001/1686/281 1000/1688/283 +f 977/1677/273 999/1689/284 1005/1690/285 +f 1006/1687/282 975/1545/243 1002/1548/245 +f 976/1541/240 1005/1690/285 1004/1544/242 +f 999/1689/284 973/1683/159 1000/1688/283 +f 1029/1691/286 1030/1692/287 979/1693/288 +f 979/1693/288 1030/1692/287 989/1694/173 +f 997/1695/273 989/1696/173 1030/1697/287 +f 1041/1698/289 979/1693/288 989/1694/173 +f 1041/1698/289 984/1699/290 990/1700/291 +f 983/1701/271 988/1702/292 991/1703/293 +f 983/1704/271 987/1705/172 982/1706/294 +f 987/1705/172 981/1707/295 982/1706/294 +f 986/1708/296 980/1709/297 981/1707/295 +f 985/1710/298 1030/1692/287 980/1709/297 +f 1031/1711/299 980/1709/297 1030/1692/287 +f 997/1695/273 985/1712/298 992/1713/300 +f 984/1699/290 1034/1714/301 1035/1715/302 +f 982/1706/294 1032/1716/303 1033/1717/304 +f 979/1693/288 1036/1718/305 1029/1691/286 +f 1036/1718/305 984/1699/290 1035/1715/302 +f 995/1719/243 988/1720/292 1041/1721/289 +f 1041/1721/289 1040/1722/245 995/1719/243 +f 996/1723/240 1041/1721/289 989/1696/173 +f 1042/1724/242 1041/1721/289 996/1723/240 +f 983/1704/271 1033/1717/304 1034/1725/301 +f 992/1713/300 986/1726/296 993/1727/159 +f 994/1728/279 991/1729/293 998/1730/277 +f 993/1727/159 987/1705/172 994/1728/279 +f 1032/1716/303 980/1709/297 1031/1711/299 +f 998/1731/277 988/1720/292 995/1719/243 +f 994/1728/279 1044/1732/282 1039/1733/281 +f 1038/1734/283 994/1728/279 1039/1733/281 +f 1043/1735/285 992/1713/300 1037/1736/284 +f 1044/1737/282 995/1719/243 1040/1722/245 +f 996/1723/240 1043/1735/285 1042/1724/242 +f 992/1713/300 1038/1734/283 1037/1736/284 +f 1003/1738/163 1012/1739/217 1011/1740/216 +f 1000/1688/283 1009/1741/218 1008/1742/215 +f 1005/1743/285 1007/1744/220 1013/1745/219 +f 1006/1746/282 1010/1747/221 1024/1748/172 +f 1004/1749/242 1013/1745/219 1012/1739/217 +f 1002/1750/245 1011/1751/216 1010/1747/221 +f 999/1689/284 1008/1742/215 1007/1744/220 +f 1001/1686/281 1024/1748/172 1009/1741/218 +f 1017/1752/212 1024/1753/172 1010/1754/221 +f 1016/1755/210 1009/1756/218 1024/1753/172 +f 1024/1753/172 1023/1757/202 1016/1755/210 +f 1025/1758/208 1024/1753/172 1017/1752/212 +f 1008/1759/215 1016/1755/210 1015/1760/214 +f 1020/1761/173 1007/1744/220 1014/1762/239 +f 1012/1739/217 1020/1761/173 1019/1763/238 +f 1017/1752/212 1011/1764/216 1018/1765/213 +f 1007/1744/220 1015/1760/214 1014/1762/239 +f 1018/1766/213 1012/1739/217 1019/1763/238 +f 1026/1767/204 1019/1763/238 1027/1768/207 +f 1015/1760/214 1023/1757/202 1022/1769/205 +f 1020/1761/173 1021/1770/203 1028/1771/206 +f 1019/1763/238 1028/1771/206 1027/1768/207 +f 1017/1752/212 1026/1772/204 1025/1758/208 +f 1021/1770/203 1015/1760/214 1022/1769/205 +f 1030/1773/287 1023/1774/202 1031/1775/299 +f 1036/1776/305 1021/1770/203 1029/1777/286 +f 1035/1715/302 1028/1771/206 1036/1776/305 +f 1033/1717/304 1026/1778/204 1034/1725/301 +f 1031/1775/299 1024/1779/172 1032/1780/303 +f 1029/1777/286 1022/1781/205 1030/1773/287 +f 1034/1714/301 1027/1768/207 1035/1715/302 +f 1032/1780/303 1025/1782/208 1033/1717/304 +f 1041/1783/289 1050/1784/217 1049/1785/216 +f 1038/1734/283 1047/1786/218 1046/1787/215 +f 1051/1788/219 1037/1736/284 1045/1789/220 +f 1044/1790/282 1048/1791/221 1062/1792/172 +f 1042/1793/242 1051/1788/219 1050/1784/217 +f 1040/1794/245 1049/1785/216 1048/1791/221 +f 1037/1736/284 1046/1787/215 1045/1789/220 +f 1039/1733/281 1062/1795/172 1047/1786/218 +f 1055/1796/212 1062/1797/172 1048/1798/221 +f 1054/1799/210 1047/1800/218 1062/1801/172 +f 1062/1801/172 1061/1802/202 1054/1799/210 +f 1063/1803/208 1062/1797/172 1055/1796/212 +f 1046/1804/215 1054/1799/210 1053/1805/214 +f 1058/1806/173 1045/1789/220 1052/1807/239 +f 1057/1808/209 1051/1788/219 1058/1806/173 +f 1055/1796/212 1049/1809/216 1056/1810/213 +f 1052/1807/239 1046/1804/215 1053/1805/214 +f 1049/1809/216 1057/1808/209 1056/1810/213 +f 1056/1810/213 1065/1811/207 1064/1812/204 +f 1060/1813/205 1054/1799/210 1061/1802/202 +f 1058/1806/173 1059/1814/203 1066/1815/206 +f 1065/1811/207 1058/1806/173 1066/1815/206 +f 1055/1796/212 1064/1812/204 1063/1803/208 +f 1052/1807/239 1060/1813/205 1059/1814/203 +f 1068/1816/153 1061/1817/202 1069/1818/159 +f 1074/1819/154 1059/1814/203 1067/1820/164 +f 1073/1821/163 1066/1815/206 1074/1819/154 +f 1071/1822/158 1064/1823/204 1072/1824/155 +f 1069/1818/159 1062/1825/172 1070/1826/160 +f 1067/1820/164 1060/1827/205 1068/1816/153 +f 1072/1824/155 1065/1811/207 1073/1821/163 +f 1070/1828/160 1063/1829/208 1071/1822/158 +f 864/1830/278 895/1831/268 894/1832/267 +f 854/1833/164 863/1834/241 1003/1835/163 +f 862/1836/244 854/1833/164 1003/1835/163 +f 896/1837/269 865/1838/276 893/1839/265 +f 865/1838/276 897/1840/263 893/1839/265 +f 861/1841/280 898/1842/264 897/1840/263 +f 860/1843/306 899/1844/266 898/1845/264 +f 859/1846/274 894/1832/267 899/1844/266 +f 683/1371/161 692/1387/161 698/1372/171 +f 689/1374/160 697/1847/160 696/1375/172 +f 687/1377/157 695/1385/157 694/1378/170 +f 685/1380/154 693/1386/154 691/1381/173 +f 690/1373/171 698/1372/171 697/1383/160 +f 688/1376/172 696/1375/172 695/1385/157 +f 686/1379/170 694/1378/170 693/1386/154 +f 684/1382/173 691/1381/173 692/1387/161 +f 716/1388/155 724/1402/155 723/1389/163 +f 718/1391/160 725/1848/160 730/1392/158 +f 721/1394/164 728/1403/164 727/1395/153 +f 719/1397/159 726/1404/159 725/1398/160 +f 715/1390/163 723/1389/163 729/1400/154 +f 717/1393/158 730/1392/158 724/1402/155 +f 722/1401/154 729/1400/154 728/1403/164 +f 720/1396/153 727/1395/153 726/1404/159 +f 734/1405/174 733/1849/195 731/1406/175 +f 738/1408/177 737/1412/181 735/1409/178 +f 740/1411/180 739/1414/183 737/1412/181 +f 742/1413/182 741/1850/192 739/1414/183 +f 736/1415/179 758/1432/197 759/1416/184 +f 753/1421/188 754/1418/185 755/1420/187 +f 741/1426/192 754/1418/185 753/1421/188 +f 735/1428/178 737/1412/181 752/1429/193 +f 733/1430/195 750/1214/200 749/1422/189 +f 739/1427/183 753/1421/188 752/1429/193 +f 756/1431/196 760/1436/199 759/1416/184 +f 734/1433/174 732/1851/176 757/1434/198 +f 740/1435/180 738/1417/177 759/1416/184 +f 740/1435/180 760/1436/199 761/1423/190 +f 750/1214/200 751/1327/194 752/1429/193 +f 762/1437/201 761/1423/190 760/1436/199 +f 794/1438/202 795/1852/172 787/1439/160 +f 792/1441/203 793/1450/205 785/1442/153 +f 797/1444/204 798/1453/207 790/1445/163 +f 795/1447/172 796/1454/208 788/1448/158 +f 793/1450/205 794/1438/202 786/1440/159 +f 791/1451/206 792/1441/203 784/1443/164 +f 798/1453/207 791/1451/206 783/1452/154 +f 796/1454/208 797/1444/204 789/1446/155 +f 797/1455/204 804/1463/213 805/1456/209 +f 793/1457/205 801/1464/214 802/1458/210 +f 792/1441/203 791/1451/206 799/1460/173 +f 791/1451/206 798/1453/207 805/1456/209 +f 797/1455/204 796/1473/208 803/1462/212 +f 792/1441/203 800/1461/211 801/1464/214 +f 800/1461/211 807/1470/220 808/1465/215 +f 805/1456/209 804/1463/213 811/1466/216 +f 802/1458/210 801/1464/214 808/1465/215 +f 800/1461/211 799/1460/173 806/1469/219 +f 799/1460/173 805/1456/209 812/1467/217 +f 803/1462/212 810/1474/221 811/1466/216 +f 810/1475/221 795/1853/172 813/1476/222 +f 811/1478/216 819/1487/228 820/1479/224 +f 808/1480/215 816/1488/229 817/1481/225 +f 806/1469/219 814/1486/227 815/1483/226 +f 809/1482/218 817/1481/225 813/1484/222 +f 806/1469/219 812/1467/217 820/1479/224 +f 810/1475/221 818/1477/223 819/1487/228 +f 807/1470/220 815/1483/226 816/1488/229 +f 832/1489/202 833/1498/172 825/1490/230 +f 830/1492/203 831/1854/205 823/1493/232 +f 835/1495/204 836/1504/207 828/1496/234 +f 833/1498/172 834/1505/208 826/1499/236 +f 831/1500/205 832/1489/202 824/1491/231 +f 829/1502/206 830/1492/203 822/1494/233 +f 836/1504/207 829/1502/206 821/1503/237 +f 834/1505/208 835/1495/204 827/1497/235 +f 835/1506/204 842/1514/213 843/1507/238 +f 831/1508/205 839/1855/214 840/1509/210 +f 829/1502/206 837/1512/173 838/1511/239 +f 836/1504/207 843/1507/238 837/1512/173 +f 834/1513/208 841/1523/212 842/1514/213 +f 830/1492/203 838/1511/239 839/1515/214 +f 839/1515/214 838/1511/239 845/1517/220 +f 842/1514/213 849/1524/216 850/1519/217 +f 840/1509/210 839/1855/214 846/1520/215 +f 837/1512/173 844/1522/219 845/1517/220 +f 837/1512/173 843/1507/238 850/1519/217 +f 841/1523/212 848/1526/221 849/1524/216 +f 833/1527/172 851/1536/222 856/1528/223 +f 849/1530/216 857/1538/228 858/1531/224 +f 846/1532/215 854/1856/164 855/1533/225 +f 844/1522/219 852/1537/227 853/1535/226 +f 847/1534/218 855/1533/225 851/1536/222 +f 850/1519/217 858/1531/224 852/1537/227 +f 848/1529/221 856/1528/223 857/1538/228 +f 845/1517/220 853/1535/226 854/1539/164 +f 819/1487/228 871/1557/158 872/1549/246 +f 814/1550/227 867/1556/249 868/1551/247 +f 817/1553/225 869/1572/258 866/1554/248 +f 820/1479/224 872/1549/246 867/1556/249 +f 818/1477/223 870/1559/250 871/1557/158 +f 818/1477/223 813/1857/222 866/1558/248 +f 866/1554/248 869/1572/258 876/1560/251 +f 825/1562/230 826/1579/236 884/1563/253 +f 871/1557/158 870/1559/250 877/1565/172 +f 870/1559/250 866/1558/248 873/1567/252 +f 872/1549/246 871/1557/158 878/1566/255 +f 824/1491/231 882/1577/261 881/1569/257 +f 822/1494/233 880/1578/262 874/1573/259 +f 821/1574/237 874/1573/259 885/1575/260 +f 825/1562/230 883/1564/254 882/1577/261 +f 823/1493/232 881/1584/257 880/1578/262 +f 879/1568/256 827/1588/235 867/1556/249 +f 878/1582/255 883/1564/254 884/1563/253 +f 877/1565/172 882/1577/261 883/1564/254 +f 882/1577/261 877/1565/172 873/1583/252 +f 881/1584/257 873/1858/252 876/1585/251 +f 880/1578/262 876/1585/251 816/1586/229 +f 885/1575/260 874/1573/259 816/1586/229 +f 827/1588/235 875/1571/173 868/1551/247 +f 858/1531/224 857/1538/228 891/1589/158 +f 852/1591/227 887/1597/249 888/1592/247 +f 851/1594/222 855/1606/225 889/1595/258 +f 858/1531/224 892/1590/246 887/1597/249 +f 856/1528/223 890/1598/250 891/1589/158 +f 856/1528/223 851/1594/222 886/1596/248 +f 891/1589/158 890/1598/250 897/1599/263 +f 890/1598/250 886/1596/248 893/1601/265 +f 891/1589/158 898/1600/264 899/1602/266 +f 888/1592/247 887/1597/249 894/1603/267 +f 889/1595/258 896/1607/269 893/1601/265 +f 887/1597/249 892/1590/246 899/1602/266 +f 908/1609/157 917/1625/157 923/1610/172 +f 914/1612/160 922/1859/160 921/1613/171 +f 912/1615/161 920/1623/161 919/1616/173 +f 910/1618/154 918/1624/154 916/1619/170 +f 915/1611/172 923/1610/172 922/1621/160 +f 913/1614/171 921/1613/171 920/1623/161 +f 911/1617/173 919/1616/173 918/1624/154 +f 909/1620/170 916/1619/170 917/1625/157 +f 931/1626/270 939/1638/270 938/1627/155 +f 929/1629/271 937/1639/271 936/1630/157 +f 927/1632/257 935/1640/257 934/1633/153 +f 925/1635/272 933/1642/272 932/1636/161 +f 924/1637/161 932/1636/161 939/1638/270 +f 930/1628/155 938/1627/155 937/1639/271 +f 928/1631/157 936/1630/157 935/1640/257 +f 926/1641/153 934/1860/153 933/1642/272 +f 947/1643/270 955/1655/270 954/1644/155 +f 945/1646/271 953/1656/271 952/1647/157 +f 943/1649/257 951/1657/257 950/1650/153 +f 941/1652/272 949/1659/272 948/1653/161 +f 940/1654/161 948/1653/161 955/1655/270 +f 946/1645/155 954/1644/155 953/1656/271 +f 944/1648/157 952/1647/157 951/1657/257 +f 942/1658/153 950/1861/153 949/1659/272 +f 957/1660/155 965/1674/155 964/1661/163 +f 959/1663/160 966/1862/160 971/1664/158 +f 962/1666/164 969/1675/164 968/1667/153 +f 960/1669/159 967/1676/159 966/1670/160 +f 956/1662/163 964/1661/163 970/1672/154 +f 958/1665/158 971/1664/158 965/1674/155 +f 963/1673/154 970/1672/154 969/1675/164 +f 961/1668/153 968/1667/153 967/1676/159 +f 977/1677/273 864/1682/278 859/1678/274 +f 865/1680/276 862/1546/244 975/1545/243 +f 976/1541/240 863/1543/241 864/1682/278 +f 859/1678/274 860/1863/306 973/1683/159 +f 974/1684/279 861/1685/280 865/1680/276 +f 973/1683/159 860/1863/306 861/1685/280 +f 1001/1686/281 974/1684/279 978/1681/277 +f 973/1683/159 974/1684/279 1001/1686/281 +f 977/1677/273 972/1679/275 999/1689/284 +f 1006/1687/282 978/1681/277 975/1545/243 +f 976/1541/240 977/1677/273 1005/1690/285 +f 999/1689/284 972/1679/275 973/1683/159 +f 997/1695/273 996/1723/240 989/1696/173 +f 1041/1698/289 990/1700/291 979/1693/288 +f 1041/1698/289 988/1702/292 984/1699/290 +f 983/1701/271 984/1699/290 988/1702/292 +f 983/1704/271 991/1864/293 987/1705/172 +f 987/1705/172 986/1708/296 981/1707/295 +f 986/1708/296 985/1710/298 980/1709/297 +f 997/1695/273 1030/1697/287 985/1712/298 +f 984/1699/290 983/1701/271 1034/1714/301 +f 982/1706/294 981/1707/295 1032/1716/303 +f 979/1693/288 990/1700/291 1036/1718/305 +f 1036/1718/305 990/1700/291 984/1699/290 +f 983/1704/271 982/1706/294 1033/1717/304 +f 992/1713/300 985/1712/298 986/1726/296 +f 994/1728/279 987/1705/172 991/1729/293 +f 993/1727/159 986/1726/296 987/1705/172 +f 1032/1716/303 981/1707/295 980/1709/297 +f 998/1731/277 991/1865/293 988/1720/292 +f 994/1728/279 998/1730/277 1044/1732/282 +f 1038/1734/283 993/1727/159 994/1728/279 +f 1043/1735/285 997/1695/273 992/1713/300 +f 1044/1737/282 998/1731/277 995/1719/243 +f 996/1723/240 997/1695/273 1043/1735/285 +f 992/1713/300 993/1727/159 1038/1734/283 +f 1003/1738/163 1004/1749/242 1012/1739/217 +f 1000/1688/283 1001/1686/281 1009/1741/218 +f 1005/1743/285 999/1689/284 1007/1744/220 +f 1006/1746/282 1002/1750/245 1010/1747/221 +f 1004/1749/242 1005/1743/285 1013/1745/219 +f 1002/1750/245 1003/1866/163 1011/1751/216 +f 999/1689/284 1000/1688/283 1008/1742/215 +f 1001/1686/281 1006/1746/282 1024/1748/172 +f 1008/1759/215 1009/1756/218 1016/1755/210 +f 1020/1761/173 1013/1745/219 1007/1744/220 +f 1012/1739/217 1013/1745/219 1020/1761/173 +f 1017/1752/212 1010/1754/221 1011/1764/216 +f 1007/1744/220 1008/1759/215 1015/1760/214 +f 1018/1766/213 1011/1867/216 1012/1739/217 +f 1026/1767/204 1018/1766/213 1019/1763/238 +f 1015/1760/214 1016/1755/210 1023/1757/202 +f 1020/1761/173 1014/1762/239 1021/1770/203 +f 1019/1763/238 1020/1761/173 1028/1771/206 +f 1017/1752/212 1018/1765/213 1026/1772/204 +f 1021/1770/203 1014/1762/239 1015/1760/214 +f 1030/1773/287 1022/1781/205 1023/1774/202 +f 1036/1776/305 1028/1771/206 1021/1770/203 +f 1035/1715/302 1027/1768/207 1028/1771/206 +f 1033/1717/304 1025/1782/208 1026/1778/204 +f 1031/1775/299 1023/1774/202 1024/1779/172 +f 1029/1777/286 1021/1770/203 1022/1781/205 +f 1034/1714/301 1026/1868/204 1027/1768/207 +f 1032/1780/303 1024/1779/172 1025/1782/208 +f 1041/1783/289 1042/1793/242 1050/1784/217 +f 1038/1734/283 1039/1733/281 1047/1786/218 +f 1051/1788/219 1043/1869/285 1037/1736/284 +f 1044/1790/282 1040/1794/245 1048/1791/221 +f 1042/1793/242 1043/1869/285 1051/1788/219 +f 1040/1794/245 1041/1783/289 1049/1785/216 +f 1037/1736/284 1038/1734/283 1046/1787/215 +f 1039/1733/281 1044/1870/282 1062/1795/172 +f 1046/1804/215 1047/1800/218 1054/1799/210 +f 1058/1806/173 1051/1788/219 1045/1789/220 +f 1057/1808/209 1050/1784/217 1051/1788/219 +f 1055/1796/212 1048/1798/221 1049/1809/216 +f 1052/1807/239 1045/1789/220 1046/1804/215 +f 1049/1809/216 1050/1784/217 1057/1808/209 +f 1056/1810/213 1057/1808/209 1065/1811/207 +f 1060/1813/205 1053/1805/214 1054/1799/210 +f 1058/1806/173 1052/1807/239 1059/1814/203 +f 1065/1811/207 1057/1808/209 1058/1806/173 +f 1055/1796/212 1056/1810/213 1064/1812/204 +f 1052/1807/239 1053/1805/214 1060/1813/205 +f 1068/1816/153 1060/1827/205 1061/1817/202 +f 1074/1819/154 1066/1815/206 1059/1814/203 +f 1073/1821/163 1065/1811/207 1066/1815/206 +f 1071/1822/158 1063/1829/208 1064/1823/204 +f 1069/1818/159 1061/1817/202 1062/1825/172 +f 1067/1820/164 1059/1814/203 1060/1827/205 +f 1072/1824/155 1064/1823/204 1065/1811/207 +f 1070/1828/160 1062/1871/172 1063/1829/208 +f 864/1830/278 863/1834/241 895/1831/268 +f 854/1833/164 895/1831/268 863/1834/241 +f 862/1836/244 896/1837/269 854/1833/164 +f 896/1837/269 862/1836/244 865/1838/276 +f 865/1838/276 861/1841/280 897/1840/263 +f 861/1841/280 860/1872/306 898/1842/264 +f 860/1843/306 859/1846/274 899/1844/266 +f 859/1846/274 864/1830/278 894/1832/267 diff --git a/src/main/resources/assets/hbm/models/weapons/lilmac.obj b/src/main/resources/assets/hbm/models/weapons/lilmac.obj new file mode 100644 index 000000000..1d7d326f6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/lilmac.obj @@ -0,0 +1,8226 @@ +# Blender v2.79 (sub 0) OBJ File: 'lilmac.blend' +# www.blender.org +o Pivot +v 0.000000 0.000000 -0.187500 +v 0.000000 0.132583 -0.132583 +v 0.000000 0.187500 0.000000 +v 0.000000 0.132583 0.132582 +v 0.000000 0.000000 0.187500 +v 0.000000 -0.132583 0.132582 +v 0.000000 -0.187500 0.000000 +v 0.000000 -0.132583 -0.132582 +v -0.812500 0.000000 -0.187500 +v -0.812500 0.132583 -0.132583 +v -0.812500 0.187500 0.000000 +v -0.812500 0.132583 0.132582 +v -0.812500 0.000000 0.187500 +v -0.812500 -0.132583 0.132582 +v -0.812500 -0.187500 0.000000 +v -0.812500 -0.132583 -0.132582 +v 0.062500 1.750000 -0.187500 +v 0.062500 1.882583 -0.132582 +v 0.062500 1.937500 0.000000 +v 0.062500 1.882583 0.132583 +v 0.062500 1.750000 0.187500 +v 0.062500 1.617417 0.132583 +v 0.062500 1.562500 0.000000 +v 0.062500 1.617417 -0.132582 +v -1.001000 1.750000 -0.187500 +v -1.001000 1.882583 -0.132582 +v -1.001000 1.937500 0.000000 +v -1.001000 1.882583 0.132583 +v -1.001000 1.750000 0.187500 +v -1.001000 1.617417 0.132583 +v -1.001000 1.562500 0.000000 +v -1.001000 1.617417 -0.132582 +v -1.001000 1.750000 -0.125000 +v -1.001000 1.838388 -0.088388 +v -1.001000 1.875000 0.000000 +v -1.001000 1.838388 0.088389 +v -1.001000 1.750000 0.125000 +v -1.001000 1.661612 0.088389 +v -1.001000 1.625000 0.000000 +v -1.001000 1.661612 -0.088388 +v -2.937500 1.838388 -0.088388 +v -2.937500 1.750000 -0.125000 +v -2.937500 1.875000 0.000000 +v -2.937500 1.838388 0.088388 +v -2.937500 1.750000 0.125000 +v -2.937500 1.661612 0.088388 +v -2.937500 1.625000 0.000000 +v -2.937500 1.661612 -0.088388 +v 0.000000 -0.187500 0.000000 +v 0.000000 -0.187500 0.375000 +v 0.000000 1.937500 0.000000 +v 0.000000 1.937500 0.375000 +v -0.750000 -0.187500 0.000000 +v -0.750000 -0.187500 0.375000 +v -1.000000 1.937500 0.000000 +v -1.000000 1.937500 0.375000 +v 0.000000 1.437500 0.375000 +v -1.000000 1.437500 0.375000 +v 0.000000 0.312500 0.375000 +v -0.750000 0.312500 0.375000 +v 0.000000 0.687500 0.375000 +v -0.750000 0.687500 0.375000 +v 0.000000 1.062500 0.375000 +v -1.000000 1.062500 0.375000 +v -0.750000 0.500000 0.250000 +v 0.000000 0.500000 0.250000 +v 0.000000 1.250000 0.250000 +v -1.000000 1.250000 0.250000 +v -1.000000 1.062500 0.000000 +v -0.750000 0.687500 0.000000 +vt 0.244604 0.431737 +vt 0.248147 0.442105 +vt 0.244604 0.452473 +vt 0.241007 0.378947 +vt 0.244604 0.368421 +vt 0.244604 0.378947 +vt 0.241007 0.357895 +vt 0.244604 0.357895 +vt 0.244604 0.347368 +vt 0.241007 0.431579 +vt 0.244604 0.421053 +vt 0.244604 0.431579 +vt 0.241007 0.421053 +vt 0.244604 0.410526 +vt 0.241007 0.400000 +vt 0.244604 0.400000 +vt 0.241007 0.389474 +vt 0.244604 0.389474 +vt 0.179841 0.368286 +vt 0.176305 0.357849 +vt 0.179872 0.347504 +vt 0.420863 0.568421 +vt 0.399281 0.610526 +vt 0.399281 0.568421 +vt 0.392086 0.747368 +vt 0.420863 0.705263 +vt 0.420863 0.747368 +vt 0.352518 0.747368 +vt 0.381295 0.778947 +vt 0.352518 0.778947 +vt 0.420863 0.626316 +vt 0.399281 0.642105 +vt 0.399281 0.626316 +vt 0.352518 0.536842 +vt 0.374101 0.568421 +vt 0.352518 0.568421 +vt 0.392086 0.689474 +vt 0.420863 0.673684 +vt 0.420863 0.689474 +vt 0.420863 0.642105 +vt 0.392086 0.705263 +vt 0.420863 0.610526 +vt 0.345324 0.689474 +vt 0.345324 0.626316 +vt 0.388489 0.689474 +vt 0.381295 0.747368 +vt 0.388489 0.626316 +vt 0.381295 0.642105 +vt 0.381295 0.568421 +vt 0.392086 0.673684 +vt 0.392086 0.642105 +vt 0.381295 0.673684 +vt 0.242099 0.449437 +vt 0.241061 0.442105 +vt 0.242099 0.434774 +vt 0.247110 0.434774 +vt 0.247110 0.449437 +vt 0.241007 0.368421 +vt 0.241007 0.347368 +vt 0.241007 0.410526 +vt 0.177334 0.365210 +vt 0.177356 0.350515 +vt 0.182378 0.350579 +vt 0.183407 0.357940 +vt 0.182356 0.365274 +vt 0.374101 0.536842 +vt 0.341727 0.747368 +vt 0.341727 0.705263 +vt 0.341727 0.673684 +vt 0.341727 0.642105 +vt 0.341727 0.610526 +vt 0.341727 0.568421 +vt 0.392086 0.568421 +vt 0.392086 0.610526 +vt 0.374101 0.642105 +vt 0.248201 0.442105 +vt 0.273381 0.431579 +vt 0.273381 0.442105 +vt 0.248201 0.463158 +vt 0.273381 0.452632 +vt 0.273381 0.463158 +vt 0.248201 0.484211 +vt 0.273381 0.473684 +vt 0.273381 0.484211 +vt 0.248201 0.515789 +vt 0.273381 0.505263 +vt 0.273381 0.515789 +vt 0.248201 0.452632 +vt 0.248201 0.473684 +vt 0.248201 0.494737 +vt 0.273381 0.494737 +vt 0.248201 0.505263 +vt 0.273381 0.421053 +vt 0.273381 0.431579 +vt 0.273381 0.357895 +vt 0.273381 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.389474 +vt 0.273381 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.347368 +vt 0.183453 0.357895 +vt 0.183453 0.378947 +vt 0.183453 0.400000 +vt 0.183453 0.410526 +vt 0.183453 0.347368 +vt 0.183453 0.368421 +vt 0.183453 0.389474 +vt 0.183453 0.421053 +vt 0.248201 0.431579 +vt 0.183453 0.431579 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.5547 0.8321 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.5547 0.8321 +vn 1.0000 0.0000 0.0000 +vn -0.8321 -0.5547 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +s off +f 15/1/1 13/2/1 11/3/1 +f 36/4/1 29/5/1 28/6/1 +f 29/5/1 38/7/1 30/8/1 +f 38/7/1 31/9/1 30/8/1 +f 39/10/1 32/11/1 31/12/1 +f 40/13/1 25/14/1 32/11/1 +f 25/14/1 34/15/1 26/16/1 +f 26/16/1 35/17/1 27/18/1 +f 27/18/1 36/4/1 28/6/1 +f 43/19/1 42/20/1 47/21/1 +f 50/22/2 60/23/2 54/24/2 +f 56/25/2 57/26/2 52/27/2 +f 51/28/3 56/29/3 52/30/3 +f 66/31/4 62/32/4 65/33/4 +f 50/34/5 53/35/5 49/36/5 +f 68/37/6 63/38/6 67/39/6 +f 63/38/2 62/32/2 61/40/2 +f 58/41/4 67/39/4 57/26/4 +f 59/42/6 65/33/6 60/23/6 +f 49/36/7 67/43/7 66/44/7 +f 68/45/1 58/41/1 55/46/1 +f 65/47/1 70/48/1 53/49/1 +f 64/50/8 70/48/8 62/51/8 +f 69/52/9 55/46/9 51/28/9 +f 11/3/1 10/53/1 9/54/1 +f 9/54/1 16/55/1 15/1/1 +f 15/1/1 14/56/1 13/2/1 +f 13/2/1 12/57/1 11/3/1 +f 11/3/1 9/54/1 15/1/1 +f 36/4/1 37/58/1 29/5/1 +f 29/5/1 37/58/1 38/7/1 +f 38/7/1 39/59/1 31/9/1 +f 39/10/1 40/13/1 32/11/1 +f 40/13/1 33/60/1 25/14/1 +f 25/14/1 33/60/1 34/15/1 +f 26/16/1 34/15/1 35/17/1 +f 27/18/1 35/17/1 36/4/1 +f 43/19/1 41/61/1 42/20/1 +f 42/20/1 48/62/1 47/21/1 +f 47/21/1 46/63/1 45/64/1 +f 45/64/1 44/65/1 47/21/1 +f 44/65/1 43/19/1 47/21/1 +f 50/22/2 59/42/2 60/23/2 +f 56/25/2 58/41/2 57/26/2 +f 51/28/3 55/46/3 56/29/3 +f 66/31/4 61/40/4 62/32/4 +f 50/34/5 54/66/5 53/35/5 +f 68/37/6 64/50/6 63/38/6 +f 63/38/2 64/50/2 62/32/2 +f 58/41/4 68/37/4 67/39/4 +f 59/42/6 66/31/6 65/33/6 +f 51/28/7 52/67/7 57/68/7 +f 67/43/7 63/69/7 61/70/7 +f 51/28/7 57/68/7 67/43/7 +f 59/71/7 50/72/7 49/36/7 +f 67/43/7 61/70/7 66/44/7 +f 66/44/7 59/71/7 49/36/7 +f 49/36/7 51/28/7 67/43/7 +f 56/25/1 55/46/1 58/41/1 +f 55/46/1 69/52/1 68/45/1 +f 69/52/1 64/50/1 68/45/1 +f 53/49/1 54/73/1 60/74/1 +f 65/47/1 62/51/1 70/48/1 +f 53/49/1 60/74/1 65/47/1 +f 64/50/8 69/52/8 70/48/8 +f 51/28/9 49/36/9 70/75/9 +f 49/36/9 53/35/9 70/75/9 +f 70/75/9 69/52/9 51/28/9 +s 1 +f 14/76/10 7/77/5 6/78/10 +f 12/79/11 5/80/2 4/81/11 +f 10/82/12 3/83/3 2/84/12 +f 15/85/5 8/86/13 7/87/5 +f 13/88/2 6/78/10 5/80/2 +f 11/89/3 4/81/11 3/83/3 +f 9/90/9 2/84/12 1/91/9 +f 16/92/13 1/91/9 8/86/13 +f 31/12/5 24/93/13 23/94/5 +f 29/5/2 22/95/10 21/96/2 +f 27/18/3 20/97/11 19/98/3 +f 25/14/9 18/99/12 17/100/9 +f 32/11/13 17/100/9 24/93/13 +f 30/8/10 23/101/5 22/95/10 +f 28/6/11 21/96/2 20/97/11 +f 26/16/12 19/98/3 18/99/12 +f 37/58/2 46/102/10 38/7/10 +f 35/17/3 44/103/11 36/4/11 +f 33/60/9 41/104/12 34/15/12 +f 40/13/13 42/105/9 33/60/9 +f 38/7/10 47/106/5 39/59/5 +f 36/4/11 45/107/2 37/58/2 +f 34/15/12 43/108/3 35/17/3 +f 39/10/5 48/109/13 40/13/13 +f 14/76/10 15/110/5 7/77/5 +f 12/79/11 13/88/2 5/80/2 +f 10/82/12 11/89/3 3/83/3 +f 15/85/5 16/92/13 8/86/13 +f 13/88/2 14/76/10 6/78/10 +f 11/89/3 12/79/11 4/81/11 +f 9/90/9 10/82/12 2/84/12 +f 16/92/13 9/90/9 1/91/9 +f 31/12/5 32/11/13 24/93/13 +f 29/5/2 30/8/10 22/95/10 +f 27/18/3 28/6/11 20/97/11 +f 25/14/9 26/16/12 18/99/12 +f 32/11/13 25/14/9 17/100/9 +f 30/8/10 31/9/5 23/101/5 +f 28/6/11 29/5/2 21/96/2 +f 26/16/12 27/18/3 19/98/3 +f 37/58/2 45/107/2 46/102/10 +f 35/17/3 43/108/3 44/103/11 +f 33/60/9 42/105/9 41/104/12 +f 40/13/13 48/109/13 42/105/9 +f 38/7/10 46/102/10 47/106/5 +f 36/4/11 44/103/11 45/107/2 +f 34/15/12 41/104/12 43/108/3 +f 39/10/5 47/111/5 48/109/13 +o Casings +v 2.437500 2.500000 -0.328125 +v 2.437500 2.335938 -0.284164 +v 2.437500 2.215835 -0.164062 +v 2.437500 2.171875 0.000000 +v 2.437500 2.215835 0.164062 +v 2.437500 2.335938 0.284164 +v 2.437500 2.500000 0.328125 +v 2.437500 2.664062 0.284164 +v 2.437500 2.784164 0.164062 +v 2.437500 2.828125 0.000000 +v 2.437500 2.784165 -0.164062 +v 2.437500 2.664063 -0.284164 +v 0.500000 2.500000 -0.328125 +v 0.500000 2.335938 -0.284164 +v 0.500000 2.215835 -0.164062 +v 0.500000 2.171875 0.000000 +v 0.500000 2.215835 0.164062 +v 0.500000 2.335938 0.284164 +v 0.500000 2.500000 0.328125 +v 0.500000 2.664062 0.284164 +v 0.500000 2.784164 0.164062 +v 0.500000 2.828125 0.000000 +v 0.500000 2.784165 -0.164062 +v 0.500000 2.664063 -0.284164 +v 2.437500 2.500000 -0.375000 +v 2.437500 2.312500 -0.324759 +v 2.437500 2.175241 -0.187500 +v 2.437500 2.125000 0.000000 +v 2.437500 2.175241 0.187500 +v 2.437500 2.312500 0.324759 +v 2.437500 2.500000 0.375000 +v 2.437500 2.687500 0.324759 +v 2.437500 2.824759 0.187500 +v 2.437500 2.875000 0.000000 +v 2.437500 2.824759 -0.187500 +v 2.437500 2.687500 -0.324759 +v 2.500000 2.687500 -0.324759 +v 2.500000 2.824759 -0.187500 +v 2.500000 2.875000 0.000000 +v 2.500000 2.824759 0.187500 +v 2.500000 2.687500 0.324759 +v 2.500000 2.500000 0.375000 +v 2.500000 2.312500 0.324759 +v 2.500000 2.175241 0.187500 +v 2.500000 2.125000 0.000000 +v 2.500000 2.175241 -0.187500 +v 2.500000 2.312500 -0.324759 +v 2.500000 2.500000 -0.375000 +v 2.500000 2.593750 -0.162380 +v 2.500000 2.500000 -0.187500 +v 2.500000 2.662380 -0.093750 +v 2.500000 2.687500 0.000000 +v 2.500000 2.662380 0.093750 +v 2.500000 2.593750 0.162380 +v 2.500000 2.500000 0.187500 +v 2.500000 2.406250 0.162380 +v 2.500000 2.337620 0.093750 +v 2.500000 2.312500 0.000000 +v 2.500000 2.337620 -0.093750 +v 2.500000 2.406250 -0.162380 +v 2.437500 2.593750 -0.162380 +v 2.437500 2.500000 -0.187500 +v 2.437500 2.662380 -0.093750 +v 2.437500 2.687500 0.000000 +v 2.437500 2.662380 0.093750 +v 2.437500 2.593750 0.162380 +v 2.437500 2.500000 0.187500 +v 2.437500 2.406250 0.162380 +v 2.437500 2.337620 0.093750 +v 2.437500 2.312500 0.000000 +v 2.437500 2.337620 -0.093750 +v 2.437500 2.406250 -0.162380 +v 2.500000 2.582031 -0.142082 +v 2.500000 2.500000 -0.164062 +v 2.500000 2.642082 -0.082031 +v 2.500000 2.664062 0.000000 +v 2.500000 2.642082 0.082031 +v 2.500000 2.582031 0.142082 +v 2.500000 2.500000 0.164062 +v 2.500000 2.417969 0.142082 +v 2.500000 2.357918 0.082031 +v 2.500000 2.335938 0.000000 +v 2.500000 2.357918 -0.082031 +v 2.500000 2.417969 -0.142082 +v 2.500000 2.500000 0.000000 +v 2.437500 1.000000 0.328125 +v 2.437500 1.164062 0.284164 +v 2.437500 1.284165 0.164062 +v 2.437500 1.328125 0.000000 +v 2.437500 1.284165 -0.164062 +v 2.437500 1.164062 -0.284164 +v 2.437500 1.000000 -0.328125 +v 2.437500 0.835938 -0.284164 +v 2.437500 0.715836 -0.164062 +v 2.437500 0.671875 0.000000 +v 2.437500 0.715835 0.164062 +v 2.437500 0.835937 0.284164 +v 0.500000 1.000000 0.328125 +v 0.500000 1.164062 0.284164 +v 0.500000 1.284165 0.164062 +v 0.500000 1.328125 0.000000 +v 0.500000 1.284165 -0.164062 +v 0.500000 1.164062 -0.284164 +v 0.500000 1.000000 -0.328125 +v 0.500000 0.835938 -0.284164 +v 0.500000 0.715836 -0.164062 +v 0.500000 0.671875 0.000000 +v 0.500000 0.715835 0.164062 +v 0.500000 0.835937 0.284164 +v 2.437500 1.000000 0.375000 +v 2.437500 1.187500 0.324759 +v 2.437500 1.324759 0.187500 +v 2.437500 1.375000 0.000000 +v 2.437500 1.324759 -0.187500 +v 2.437500 1.187500 -0.324759 +v 2.437500 1.000000 -0.375000 +v 2.437500 0.812500 -0.324759 +v 2.437500 0.675241 -0.187500 +v 2.437500 0.625000 0.000000 +v 2.437500 0.675241 0.187500 +v 2.437500 0.812500 0.324759 +v 2.500000 0.812500 0.324759 +v 2.500000 0.675241 0.187500 +v 2.500000 0.625000 0.000000 +v 2.500000 0.675241 -0.187500 +v 2.500000 0.812500 -0.324759 +v 2.500000 1.000000 -0.375000 +v 2.500000 1.187500 -0.324759 +v 2.500000 1.324759 -0.187500 +v 2.500000 1.375000 0.000000 +v 2.500000 1.324759 0.187500 +v 2.500000 1.187500 0.324759 +v 2.500000 1.000000 0.375000 +v 2.500000 0.906250 0.162380 +v 2.500000 1.000000 0.187500 +v 2.500000 0.837620 0.093750 +v 2.500000 0.812500 0.000000 +v 2.500000 0.837620 -0.093750 +v 2.500000 0.906250 -0.162380 +v 2.500000 1.000000 -0.187500 +v 2.500000 1.093750 -0.162380 +v 2.500000 1.162380 -0.093750 +v 2.500000 1.187500 0.000000 +v 2.500000 1.162380 0.093750 +v 2.500000 1.093750 0.162380 +v 2.437500 0.906250 0.162380 +v 2.437500 1.000000 0.187500 +v 2.437500 0.837620 0.093750 +v 2.437500 0.812500 0.000000 +v 2.437500 0.837620 -0.093750 +v 2.437500 0.906250 -0.162380 +v 2.437500 1.000000 -0.187500 +v 2.437500 1.093750 -0.162380 +v 2.437500 1.162380 -0.093750 +v 2.437500 1.187500 0.000000 +v 2.437500 1.162380 0.093750 +v 2.437500 1.093750 0.162380 +v 2.500000 0.917969 0.142082 +v 2.500000 1.000000 0.164062 +v 2.500000 0.857918 0.082031 +v 2.500000 0.835938 0.000000 +v 2.500000 0.857918 -0.082031 +v 2.500000 0.917969 -0.142082 +v 2.500000 1.000000 -0.164062 +v 2.500000 1.082031 -0.142082 +v 2.500000 1.142082 -0.082031 +v 2.500000 1.164062 0.000000 +v 2.500000 1.142082 0.082031 +v 2.500000 1.082031 0.142082 +v 2.500000 1.000000 0.000000 +v 2.437500 2.409164 0.485456 +v 2.437500 2.289062 0.365355 +v 2.437500 2.125000 0.321394 +v 2.437500 1.960938 0.365355 +v 2.437500 1.840835 0.485456 +v 2.437500 1.796875 0.649519 +v 2.437500 1.840835 0.813581 +v 2.437500 1.960938 0.933684 +v 2.437500 2.125000 0.977644 +v 2.437500 2.289062 0.933684 +v 2.437500 2.409164 0.813582 +v 2.437500 2.453125 0.649519 +v 0.500000 2.409164 0.485456 +v 0.500000 2.289062 0.365355 +v 0.500000 2.125000 0.321394 +v 0.500000 1.960938 0.365355 +v 0.500000 1.840835 0.485456 +v 0.500000 1.796875 0.649519 +v 0.500000 1.840835 0.813581 +v 0.500000 1.960938 0.933684 +v 0.500000 2.125000 0.977644 +v 0.500000 2.289062 0.933684 +v 0.500000 2.409164 0.813582 +v 0.500000 2.453125 0.649519 +v 2.437500 2.449759 0.462019 +v 2.437500 2.312500 0.324759 +v 2.437500 2.125000 0.274519 +v 2.437500 1.937500 0.324759 +v 2.437500 1.800241 0.462019 +v 2.437500 1.750000 0.649519 +v 2.437500 1.800240 0.837019 +v 2.437500 1.937500 0.974278 +v 2.437500 2.125000 1.024519 +v 2.437500 2.312500 0.974279 +v 2.437500 2.449759 0.837019 +v 2.437500 2.500000 0.649519 +v 2.500000 2.500000 0.649519 +v 2.500000 2.449759 0.837019 +v 2.500000 2.312500 0.974279 +v 2.500000 2.125000 1.024519 +v 2.500000 1.937500 0.974278 +v 2.500000 1.800240 0.837019 +v 2.500000 1.750000 0.649519 +v 2.500000 1.800241 0.462019 +v 2.500000 1.937500 0.324759 +v 2.500000 2.125000 0.274519 +v 2.500000 2.312500 0.324759 +v 2.500000 2.449759 0.462019 +v 2.500000 2.312500 0.649519 +v 2.500000 2.287380 0.555769 +v 2.500000 2.287380 0.743269 +v 2.500000 2.218750 0.811899 +v 2.500000 2.125000 0.837019 +v 2.500000 2.031250 0.811899 +v 2.500000 1.962620 0.743269 +v 2.500000 1.937500 0.649519 +v 2.500000 1.962620 0.555769 +v 2.500000 2.031250 0.487139 +v 2.500000 2.125000 0.462019 +v 2.500000 2.218750 0.487139 +v 2.437500 2.312500 0.649519 +v 2.437500 2.287380 0.555769 +v 2.437500 2.287380 0.743269 +v 2.437500 2.218750 0.811899 +v 2.437500 2.125000 0.837019 +v 2.437500 2.031250 0.811899 +v 2.437500 1.962620 0.743269 +v 2.437500 1.937500 0.649519 +v 2.437500 1.962620 0.555769 +v 2.437500 2.031250 0.487139 +v 2.437500 2.125000 0.462019 +v 2.437500 2.218750 0.487139 +v 2.500000 2.289062 0.649519 +v 2.500000 2.267082 0.567488 +v 2.500000 2.267082 0.731550 +v 2.500000 2.207031 0.791601 +v 2.500000 2.125000 0.813581 +v 2.500000 2.042969 0.791601 +v 2.500000 1.982918 0.731550 +v 2.500000 1.960938 0.649519 +v 2.500000 1.982918 0.567488 +v 2.500000 2.042969 0.507437 +v 2.500000 2.125000 0.485457 +v 2.500000 2.207031 0.507437 +v 2.500000 2.125000 0.649519 +v 2.437500 1.090835 -0.485456 +v 2.437500 1.210938 -0.365355 +v 2.437500 1.375000 -0.321394 +v 2.437500 1.539062 -0.365355 +v 2.437500 1.659165 -0.485456 +v 2.437500 1.703125 -0.649519 +v 2.437500 1.659165 -0.813581 +v 2.437500 1.539062 -0.933684 +v 2.437500 1.375000 -0.977644 +v 2.437500 1.210938 -0.933684 +v 2.437500 1.090835 -0.813582 +v 2.437500 1.046875 -0.649519 +v 0.500000 1.090835 -0.485456 +v 0.500000 1.210938 -0.365355 +v 0.500000 1.375000 -0.321394 +v 0.500000 1.539062 -0.365355 +v 0.500000 1.659165 -0.485456 +v 0.500000 1.703125 -0.649519 +v 0.500000 1.659165 -0.813581 +v 0.500000 1.539062 -0.933684 +v 0.500000 1.375000 -0.977644 +v 0.500000 1.210938 -0.933684 +v 0.500000 1.090835 -0.813582 +v 0.500000 1.046875 -0.649519 +v 2.437500 1.050241 -0.462019 +v 2.437500 1.187500 -0.324759 +v 2.437500 1.375000 -0.274519 +v 2.437500 1.562500 -0.324759 +v 2.437500 1.699759 -0.462019 +v 2.437500 1.750000 -0.649519 +v 2.437500 1.699760 -0.837019 +v 2.437500 1.562500 -0.974278 +v 2.437500 1.375000 -1.024519 +v 2.437500 1.187500 -0.974279 +v 2.437500 1.050241 -0.837019 +v 2.437500 1.000000 -0.649519 +v 2.500000 1.000000 -0.649519 +v 2.500000 1.050241 -0.837019 +v 2.500000 1.187500 -0.974279 +v 2.500000 1.375000 -1.024519 +v 2.500000 1.562500 -0.974278 +v 2.500000 1.699760 -0.837019 +v 2.500000 1.750000 -0.649519 +v 2.500000 1.699759 -0.462019 +v 2.500000 1.562500 -0.324759 +v 2.500000 1.375000 -0.274519 +v 2.500000 1.187500 -0.324759 +v 2.500000 1.050241 -0.462019 +v 2.500000 1.187500 -0.649519 +v 2.500000 1.212620 -0.555769 +v 2.500000 1.212620 -0.743269 +v 2.500000 1.281250 -0.811899 +v 2.500000 1.375000 -0.837019 +v 2.500000 1.468750 -0.811899 +v 2.500000 1.537380 -0.743269 +v 2.500000 1.562500 -0.649519 +v 2.500000 1.537380 -0.555769 +v 2.500000 1.468750 -0.487139 +v 2.500000 1.375000 -0.462019 +v 2.500000 1.281250 -0.487139 +v 2.437500 1.187500 -0.649519 +v 2.437500 1.212620 -0.555769 +v 2.437500 1.212620 -0.743269 +v 2.437500 1.281250 -0.811899 +v 2.437500 1.375000 -0.837019 +v 2.437500 1.468750 -0.811899 +v 2.437500 1.537380 -0.743269 +v 2.437500 1.562500 -0.649519 +v 2.437500 1.537380 -0.555769 +v 2.437500 1.468750 -0.487139 +v 2.437500 1.375000 -0.462019 +v 2.437500 1.281250 -0.487139 +v 2.500000 1.210938 -0.649519 +v 2.500000 1.232918 -0.567488 +v 2.500000 1.232918 -0.731550 +v 2.500000 1.292969 -0.791601 +v 2.500000 1.375000 -0.813581 +v 2.500000 1.457031 -0.791601 +v 2.500000 1.517082 -0.731550 +v 2.500000 1.539062 -0.649519 +v 2.500000 1.517082 -0.567488 +v 2.500000 1.457031 -0.507437 +v 2.500000 1.375000 -0.485457 +v 2.500000 1.292969 -0.507437 +v 2.500000 1.375000 -0.649519 +v 2.437500 1.659165 0.813581 +v 2.437500 1.703125 0.649519 +v 2.437500 1.659165 0.485456 +v 2.437500 1.539062 0.365355 +v 2.437500 1.375000 0.321394 +v 2.437500 1.210938 0.365355 +v 2.437500 1.090835 0.485456 +v 2.437500 1.046875 0.649519 +v 2.437500 1.090835 0.813581 +v 2.437500 1.210937 0.933684 +v 2.437500 1.375000 0.977644 +v 2.437500 1.539062 0.933684 +v 0.500000 1.659165 0.813581 +v 0.500000 1.703125 0.649519 +v 0.500000 1.659165 0.485456 +v 0.500000 1.539062 0.365355 +v 0.500000 1.375000 0.321394 +v 0.500000 1.210938 0.365355 +v 0.500000 1.090835 0.485456 +v 0.500000 1.046875 0.649519 +v 0.500000 1.090835 0.813581 +v 0.500000 1.210937 0.933684 +v 0.500000 1.375000 0.977644 +v 0.500000 1.539062 0.933684 +v 2.437500 1.699759 0.837019 +v 2.437500 1.750000 0.649519 +v 2.437500 1.699759 0.462019 +v 2.437500 1.562500 0.324759 +v 2.437500 1.375000 0.274519 +v 2.437500 1.187500 0.324759 +v 2.437500 1.050241 0.462019 +v 2.437500 1.000000 0.649519 +v 2.437500 1.050241 0.837019 +v 2.437500 1.187500 0.974279 +v 2.437500 1.375000 1.024519 +v 2.437500 1.562500 0.974279 +v 2.500000 1.562500 0.974279 +v 2.500000 1.375000 1.024519 +v 2.500000 1.187500 0.974279 +v 2.500000 1.050241 0.837019 +v 2.500000 1.000000 0.649519 +v 2.500000 1.050241 0.462019 +v 2.500000 1.187500 0.324759 +v 2.500000 1.375000 0.274519 +v 2.500000 1.562500 0.324759 +v 2.500000 1.699759 0.462019 +v 2.500000 1.750000 0.649519 +v 2.500000 1.699759 0.837019 +v 2.500000 1.468750 0.811899 +v 2.500000 1.537380 0.743269 +v 2.500000 1.375000 0.837019 +v 2.500000 1.281250 0.811899 +v 2.500000 1.212620 0.743269 +v 2.500000 1.187500 0.649519 +v 2.500000 1.212620 0.555769 +v 2.500000 1.281250 0.487139 +v 2.500000 1.375000 0.462019 +v 2.500000 1.468750 0.487139 +v 2.500000 1.537380 0.555769 +v 2.500000 1.562500 0.649519 +v 2.437500 1.468750 0.811899 +v 2.437500 1.537380 0.743269 +v 2.437500 1.375000 0.837019 +v 2.437500 1.281250 0.811899 +v 2.437500 1.212620 0.743269 +v 2.437500 1.187500 0.649519 +v 2.437500 1.212620 0.555769 +v 2.437500 1.281250 0.487139 +v 2.437500 1.375000 0.462019 +v 2.437500 1.468750 0.487139 +v 2.437500 1.537380 0.555769 +v 2.437500 1.562500 0.649519 +v 2.500000 1.457031 0.791601 +v 2.500000 1.517082 0.731550 +v 2.500000 1.375000 0.813581 +v 2.500000 1.292969 0.791601 +v 2.500000 1.232918 0.731550 +v 2.500000 1.210937 0.649519 +v 2.500000 1.232918 0.567488 +v 2.500000 1.292969 0.507437 +v 2.500000 1.375000 0.485456 +v 2.500000 1.457031 0.507437 +v 2.500000 1.517082 0.567488 +v 2.500000 1.539062 0.649519 +v 2.500000 1.375000 0.649519 +v 2.437500 1.840835 -0.813581 +v 2.437500 1.796875 -0.649519 +v 2.437500 1.840835 -0.485456 +v 2.437500 1.960938 -0.365355 +v 2.437500 2.125000 -0.321394 +v 2.437500 2.289062 -0.365355 +v 2.437500 2.409165 -0.485456 +v 2.437500 2.453125 -0.649519 +v 2.437500 2.409165 -0.813581 +v 2.437500 2.289062 -0.933684 +v 2.437500 2.125000 -0.977644 +v 2.437500 1.960938 -0.933684 +v 0.500000 1.840835 -0.813581 +v 0.500000 1.796875 -0.649519 +v 0.500000 1.840835 -0.485456 +v 0.500000 1.960938 -0.365355 +v 0.500000 2.125000 -0.321394 +v 0.500000 2.289062 -0.365355 +v 0.500000 2.409165 -0.485456 +v 0.500000 2.453125 -0.649519 +v 0.500000 2.409165 -0.813581 +v 0.500000 2.289062 -0.933684 +v 0.500000 2.125000 -0.977644 +v 0.500000 1.960938 -0.933684 +v 2.437500 1.800241 -0.837019 +v 2.437500 1.750000 -0.649519 +v 2.437500 1.800241 -0.462019 +v 2.437500 1.937500 -0.324759 +v 2.437500 2.125000 -0.274519 +v 2.437500 2.312500 -0.324759 +v 2.437500 2.449759 -0.462019 +v 2.437500 2.500000 -0.649519 +v 2.437500 2.449760 -0.837019 +v 2.437500 2.312500 -0.974279 +v 2.437500 2.125000 -1.024519 +v 2.437500 1.937500 -0.974279 +v 2.500000 1.937500 -0.974279 +v 2.500000 2.125000 -1.024519 +v 2.500000 2.312500 -0.974279 +v 2.500000 2.449760 -0.837019 +v 2.500000 2.500000 -0.649519 +v 2.500000 2.449759 -0.462019 +v 2.500000 2.312500 -0.324759 +v 2.500000 2.125000 -0.274519 +v 2.500000 1.937500 -0.324759 +v 2.500000 1.800241 -0.462019 +v 2.500000 1.750000 -0.649519 +v 2.500000 1.800241 -0.837019 +v 2.500000 2.031250 -0.811899 +v 2.500000 1.962620 -0.743269 +v 2.500000 2.125000 -0.837019 +v 2.500000 2.218750 -0.811899 +v 2.500000 2.287380 -0.743269 +v 2.500000 2.312500 -0.649519 +v 2.500000 2.287380 -0.555769 +v 2.500000 2.218750 -0.487139 +v 2.500000 2.125000 -0.462019 +v 2.500000 2.031250 -0.487139 +v 2.500000 1.962620 -0.555769 +v 2.500000 1.937500 -0.649519 +v 2.437500 2.031250 -0.811899 +v 2.437500 1.962620 -0.743269 +v 2.437500 2.125000 -0.837019 +v 2.437500 2.218750 -0.811899 +v 2.437500 2.287380 -0.743269 +v 2.437500 2.312500 -0.649519 +v 2.437500 2.287380 -0.555769 +v 2.437500 2.218750 -0.487139 +v 2.437500 2.125000 -0.462019 +v 2.437500 2.031250 -0.487139 +v 2.437500 1.962620 -0.555769 +v 2.437500 1.937500 -0.649519 +v 2.500000 2.042969 -0.791601 +v 2.500000 1.982918 -0.731550 +v 2.500000 2.125000 -0.813581 +v 2.500000 2.207031 -0.791601 +v 2.500000 2.267082 -0.731550 +v 2.500000 2.289062 -0.649519 +v 2.500000 2.267082 -0.567488 +v 2.500000 2.207031 -0.507437 +v 2.500000 2.125000 -0.485456 +v 2.500000 2.042969 -0.507437 +v 2.500000 1.982918 -0.567488 +v 2.500000 1.960938 -0.649519 +v 2.500000 2.125000 -0.649519 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.547368 +vt 0.097122 0.536842 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.064748 0.526316 +vt 0.071942 0.494737 +vt 0.075540 0.526316 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.107914 0.526316 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.547368 +vt 0.097122 0.536842 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.064748 0.526316 +vt 0.071942 0.494737 +vt 0.075540 0.526316 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.107914 0.526316 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.053957 0.547368 +vt 0.043165 0.536842 +vt 0.053957 0.536842 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.547368 +vt 0.118705 0.536842 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.547368 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.043165 0.526316 +vt 0.032374 0.494737 +vt 0.039568 0.494737 +vt 0.075540 0.526316 +vt 0.064748 0.494737 +vt 0.071942 0.494737 +vt 0.129496 0.526316 +vt 0.118705 0.494737 +vt 0.125899 0.494737 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.032374 0.526316 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.064748 0.526316 +vt 0.118705 0.526316 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.043165 0.526316 +vt 0.032374 0.494737 +vt 0.039568 0.494737 +vt 0.075540 0.526316 +vt 0.064748 0.494737 +vt 0.071942 0.494737 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.032374 0.526316 +vt 0.064748 0.526316 +vt 0.053957 0.494737 +vt 0.061151 0.494737 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.053957 0.526316 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt 0.010791 0.526316 +vt 0.000000 0.494737 +vt 0.007194 0.494737 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.075540 0.526316 +vt 0.064748 0.494737 +vt 0.071942 0.494737 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.064748 0.526316 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.536842 +vt 0.064748 0.547368 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.000000 0.547368 +vt 0.010791 0.536842 +vt 0.010791 0.547368 +vt 0.021583 0.536842 +vt 0.021583 0.547368 +vt 0.032374 0.536842 +vt 0.032374 0.547368 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.064748 0.526316 +vt 0.071942 0.494737 +vt 0.075540 0.526316 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.032374 0.494737 +vt 0.064748 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.107914 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.032374 0.494737 +vt 0.064748 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.107914 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt -0.000000 0.526316 +vt 0.032374 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.536842 +vt 0.000000 0.494737 +vt 0.032374 0.494737 +vt 0.064748 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.064748 0.484211 +vt 0.010791 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt 0.064748 0.484211 +vt 0.118705 0.484211 +vt 0.021583 0.484211 +vt 0.086331 0.484211 +vt 0.010791 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt 0.064748 0.484211 +vt 0.021583 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.086331 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.897306 +vt 0.132184 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt 0.064748 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.086331 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.053957 0.484211 +vt 0.086331 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.897306 +vt 0.132184 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.107914 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.129496 0.873684 +vt 0.118705 0.484211 +vt 0.021583 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.086331 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt 0.097122 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.166377 0.839536 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.021583 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt 0.064748 0.484211 +vt 0.021583 0.484211 +vt 0.107914 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.166377 0.839536 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt 0.064748 0.484211 +vt 0.021583 0.484211 +vt 0.053957 0.484211 +vt 0.086331 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.3511 0.0000 -0.9363 +vn 0.3511 -0.4682 -0.8109 +vn 0.3511 0.8109 -0.4682 +vn 0.3511 0.4682 -0.8109 +vn 0.3511 -0.9363 0.0000 +vn 0.3511 -0.8109 0.4682 +vn 0.3511 0.0000 0.9363 +vn 0.3511 0.4682 0.8109 +vn 0.3511 0.9363 0.0000 +vn 0.3511 -0.8109 -0.4682 +vn 0.3511 -0.4682 0.8109 +vn 0.3511 0.8109 0.4682 +s off +f 78/112/14 103/113/14 79/114/14 +f 80/115/14 103/113/14 104/116/14 +f 81/117/14 104/116/14 105/118/14 +f 82/119/14 105/118/14 106/120/14 +f 71/121/14 106/120/14 95/122/14 +f 71/121/14 96/123/14 72/124/14 +f 72/124/14 97/125/14 73/126/14 +f 73/126/14 98/127/14 74/128/14 +f 75/129/14 98/130/14 99/131/14 +f 76/132/14 99/131/14 100/133/14 +f 77/134/14 100/133/14 101/135/14 +f 77/134/14 102/136/14 78/112/14 +f 115/137/15 127/138/15 114/139/15 +f 112/140/15 124/141/15 111/142/15 +f 109/143/15 121/144/15 108/145/15 +f 116/146/15 128/147/15 115/148/15 +f 113/149/15 125/150/15 112/140/15 +f 110/151/15 122/152/15 109/143/15 +f 117/153/15 129/154/15 116/146/15 +f 118/155/15 119/156/15 120/157/15 +f 114/139/15 126/158/15 113/149/15 +f 111/142/15 123/159/15 110/151/15 +f 118/155/15 130/160/15 117/153/15 +f 107/161/15 121/162/15 119/163/15 +f 143/164/15 145/165/15 155/166/15 +f 145/167/15 146/168/15 155/169/15 +f 146/170/15 147/171/15 155/172/15 +f 147/173/15 148/174/15 155/175/15 +f 148/176/15 149/177/15 155/178/15 +f 149/179/15 150/180/15 155/181/15 +f 150/182/15 151/183/15 155/184/15 +f 151/185/15 152/186/15 155/187/15 +f 152/188/15 153/189/15 155/190/15 +f 153/191/15 154/192/15 155/193/15 +f 154/194/15 144/195/15 155/196/15 +f 144/197/15 143/198/15 155/199/15 +f 163/200/14 188/201/14 164/202/14 +f 165/203/14 188/201/14 189/204/14 +f 166/205/14 189/204/14 190/206/14 +f 167/207/14 190/206/14 191/208/14 +f 156/209/14 191/208/14 180/210/14 +f 156/209/14 181/211/14 157/212/14 +f 157/212/14 182/213/14 158/214/14 +f 158/214/14 183/215/14 159/216/14 +f 160/217/14 183/218/14 184/219/14 +f 161/220/14 184/219/14 185/221/14 +f 162/222/14 185/221/14 186/223/14 +f 162/222/14 187/224/14 163/200/14 +f 200/225/15 212/226/15 199/227/15 +f 197/228/15 209/229/15 196/230/15 +f 194/231/15 206/232/15 193/233/15 +f 201/234/15 213/235/15 200/236/15 +f 198/237/15 210/238/15 197/228/15 +f 195/239/15 207/240/15 194/231/15 +f 202/241/15 214/242/15 201/234/15 +f 203/243/15 204/244/15 205/245/15 +f 199/227/15 211/246/15 198/237/15 +f 196/230/15 208/247/15 195/239/15 +f 203/243/15 215/248/15 202/241/15 +f 192/249/15 206/250/15 204/251/15 +f 228/252/15 230/253/15 240/254/15 +f 230/255/15 231/256/15 240/257/15 +f 231/258/15 232/259/15 240/260/15 +f 232/261/15 233/262/15 240/263/15 +f 233/264/15 234/265/15 240/266/15 +f 234/267/15 235/268/15 240/269/15 +f 235/270/15 236/271/15 240/272/15 +f 236/273/15 237/274/15 240/275/15 +f 237/276/15 238/277/15 240/278/15 +f 238/279/15 239/280/15 240/281/15 +f 239/282/15 229/283/15 240/284/15 +f 229/285/15 228/286/15 240/287/15 +f 249/288/14 272/289/14 273/290/14 +f 250/291/14 273/290/14 274/292/14 +f 251/293/14 274/292/14 275/294/14 +f 252/295/14 275/294/14 276/296/14 +f 252/295/14 265/297/14 241/298/14 +f 241/298/14 266/299/14 242/300/14 +f 243/301/14 266/299/14 267/302/14 +f 243/301/14 268/303/14 244/304/14 +f 245/305/14 268/306/14 269/307/14 +f 246/308/14 269/307/14 270/309/14 +f 247/310/14 270/309/14 271/311/14 +f 247/310/14 272/289/14 248/312/14 +f 285/313/15 297/314/15 284/315/15 +f 281/316/15 295/317/15 294/318/15 +f 278/319/15 292/320/15 291/321/15 +f 285/322/15 299/323/15 298/324/15 +f 283/325/15 295/326/15 282/327/15 +f 280/328/15 292/329/15 279/330/15 +f 286/331/15 300/332/15 299/333/15 +f 288/334/15 289/335/15 290/336/15 +f 284/315/15 296/337/15 283/325/15 +f 281/316/15 293/338/15 280/328/15 +f 288/334/15 300/339/15 287/340/15 +f 277/341/15 291/342/15 289/343/15 +f 313/344/15 315/345/15 325/346/15 +f 315/347/15 316/348/15 325/349/15 +f 316/350/15 317/351/15 325/352/15 +f 317/353/15 318/354/15 325/355/15 +f 318/356/15 319/357/15 325/358/15 +f 319/359/15 320/360/15 325/361/15 +f 320/362/15 321/363/15 325/364/15 +f 321/365/15 322/366/15 325/367/15 +f 322/368/15 323/369/15 325/370/15 +f 323/371/15 324/372/15 325/373/15 +f 324/374/15 314/375/15 325/376/15 +f 314/377/15 313/378/15 325/379/15 +f 333/380/14 358/381/14 334/382/14 +f 335/383/14 358/381/14 359/384/14 +f 336/385/14 359/384/14 360/386/14 +f 337/387/14 360/386/14 361/388/14 +f 337/387/14 350/389/14 326/390/14 +f 326/390/14 351/391/14 327/392/14 +f 327/392/14 352/393/14 328/394/14 +f 328/394/14 353/395/14 329/396/14 +f 330/397/14 353/398/14 354/399/14 +f 331/400/14 354/399/14 355/401/14 +f 332/402/14 355/401/14 356/403/14 +f 332/402/14 357/404/14 333/380/14 +f 370/405/15 382/406/15 369/407/15 +f 366/408/15 380/409/15 379/410/15 +f 363/411/15 377/412/15 376/413/15 +f 371/414/15 383/415/15 370/416/15 +f 368/417/15 380/418/15 367/419/15 +f 364/420/15 378/421/15 377/422/15 +f 371/414/15 385/423/15 384/424/15 +f 373/425/15 374/426/15 375/427/15 +f 369/407/15 381/428/15 368/417/15 +f 366/408/15 378/429/15 365/430/15 +f 373/425/15 385/431/15 372/432/15 +f 362/433/15 376/434/15 374/435/15 +f 398/436/15 400/437/15 410/438/15 +f 400/439/15 401/440/15 410/441/15 +f 401/442/15 402/443/15 410/444/15 +f 402/445/15 403/446/15 410/447/15 +f 403/448/15 404/449/15 410/450/15 +f 404/451/15 405/452/15 410/453/15 +f 405/454/15 406/455/15 410/456/15 +f 406/457/15 407/458/15 410/459/15 +f 407/460/15 408/461/15 410/462/15 +f 408/463/15 409/464/15 410/465/15 +f 409/466/15 399/467/15 410/468/15 +f 399/469/15 398/470/15 410/471/15 +f 418/472/14 443/473/14 419/474/14 +f 420/475/14 443/473/14 444/476/14 +f 421/477/14 444/476/14 445/478/14 +f 422/479/14 445/478/14 446/480/14 +f 422/479/14 435/481/14 411/482/14 +f 411/482/14 436/483/14 412/484/14 +f 412/484/14 437/485/14 413/486/14 +f 413/486/14 438/487/14 414/488/14 +f 415/489/14 438/490/14 439/491/14 +f 416/492/14 439/491/14 440/493/14 +f 417/494/14 440/493/14 441/495/14 +f 417/494/14 442/496/14 418/472/14 +f 454/497/15 468/498/15 467/499/15 +f 452/500/15 464/501/15 451/502/15 +f 448/503/15 462/504/15 461/505/15 +f 456/506/15 468/507/15 455/508/15 +f 453/509/15 465/510/15 452/500/15 +f 450/511/15 462/512/15 449/513/15 +f 456/506/15 470/514/15 469/515/15 +f 458/516/15 459/517/15 460/518/15 +f 454/497/15 466/519/15 453/509/15 +f 451/502/15 463/520/15 450/511/15 +f 458/516/15 470/521/15 457/522/15 +f 447/523/15 461/524/15 459/525/15 +f 483/526/15 485/527/15 495/528/15 +f 485/529/15 486/530/15 495/531/15 +f 486/532/15 487/533/15 495/534/15 +f 487/535/15 488/536/15 495/537/15 +f 488/538/15 489/539/15 495/540/15 +f 489/541/15 490/542/15 495/543/15 +f 490/544/15 491/545/15 495/546/15 +f 491/547/15 492/548/15 495/549/15 +f 492/550/15 493/551/15 495/552/15 +f 493/553/15 494/554/15 495/555/15 +f 494/556/15 484/557/15 495/558/15 +f 484/559/15 483/560/15 495/561/15 +f 503/562/14 528/563/14 504/564/14 +f 504/564/14 529/565/14 505/566/14 +f 506/567/14 529/565/14 530/568/14 +f 507/569/14 530/568/14 531/570/14 +f 507/569/14 520/571/14 496/572/14 +f 496/572/14 521/573/14 497/574/14 +f 497/574/14 522/575/14 498/576/14 +f 498/576/14 523/577/14 499/578/14 +f 499/579/14 524/580/14 500/581/14 +f 500/581/14 525/582/14 501/583/14 +f 501/583/14 526/584/14 502/585/14 +f 502/585/14 527/586/14 503/562/14 +f 540/587/15 552/588/15 539/589/15 +f 537/590/15 549/591/15 536/592/15 +f 534/593/15 546/594/15 533/595/15 +f 541/596/15 553/597/15 540/598/15 +f 538/599/15 550/600/15 537/590/15 +f 535/601/15 547/602/15 534/593/15 +f 541/596/15 555/603/15 554/604/15 +f 543/605/15 544/606/15 545/607/15 +f 539/589/15 551/608/15 538/599/15 +f 536/592/15 548/609/15 535/601/15 +f 543/605/15 555/610/15 542/611/15 +f 532/612/15 546/613/15 544/614/15 +f 568/615/15 570/616/15 580/617/15 +f 570/618/15 571/619/15 580/620/15 +f 571/621/15 572/622/15 580/623/15 +f 572/624/15 573/625/15 580/626/15 +f 573/627/15 574/628/15 580/629/15 +f 574/630/15 575/631/15 580/632/15 +f 575/633/15 576/634/15 580/635/15 +f 576/636/15 577/637/15 580/638/15 +f 577/639/15 578/640/15 580/641/15 +f 578/642/15 579/643/15 580/644/15 +f 579/645/15 569/646/15 580/647/15 +f 569/648/15 568/649/15 580/650/15 +f 78/112/14 102/136/14 103/113/14 +f 80/115/14 79/114/14 103/113/14 +f 81/117/14 80/115/14 104/116/14 +f 82/119/14 81/117/14 105/118/14 +f 71/121/14 82/119/14 106/120/14 +f 71/121/14 95/122/14 96/123/14 +f 72/124/14 96/123/14 97/125/14 +f 73/126/14 97/125/14 98/127/14 +f 75/129/14 74/651/14 98/130/14 +f 76/132/14 75/129/14 99/131/14 +f 77/134/14 76/132/14 100/133/14 +f 77/134/14 101/135/14 102/136/14 +f 115/137/15 128/652/15 127/138/15 +f 112/140/15 125/653/15 124/141/15 +f 109/143/15 122/654/15 121/144/15 +f 116/146/15 129/655/15 128/147/15 +f 113/149/15 126/656/15 125/150/15 +f 110/151/15 123/657/15 122/152/15 +f 117/153/15 130/658/15 129/154/15 +f 118/155/15 107/161/15 119/156/15 +f 114/139/15 127/659/15 126/158/15 +f 111/142/15 124/660/15 123/159/15 +f 118/155/15 120/661/15 130/160/15 +f 107/161/15 108/145/15 121/162/15 +f 163/200/14 187/224/14 188/201/14 +f 165/203/14 164/202/14 188/201/14 +f 166/205/14 165/203/14 189/204/14 +f 167/207/14 166/205/14 190/206/14 +f 156/209/14 167/207/14 191/208/14 +f 156/209/14 180/210/14 181/211/14 +f 157/212/14 181/211/14 182/213/14 +f 158/214/14 182/213/14 183/215/14 +f 160/217/14 159/662/14 183/218/14 +f 161/220/14 160/217/14 184/219/14 +f 162/222/14 161/220/14 185/221/14 +f 162/222/14 186/223/14 187/224/14 +f 200/225/15 213/663/15 212/226/15 +f 197/228/15 210/664/15 209/229/15 +f 194/231/15 207/665/15 206/232/15 +f 201/234/15 214/666/15 213/235/15 +f 198/237/15 211/667/15 210/238/15 +f 195/239/15 208/668/15 207/240/15 +f 202/241/15 215/669/15 214/242/15 +f 203/243/15 192/249/15 204/244/15 +f 199/227/15 212/670/15 211/246/15 +f 196/230/15 209/671/15 208/247/15 +f 203/243/15 205/672/15 215/248/15 +f 192/249/15 193/233/15 206/250/15 +f 249/288/14 248/312/14 272/289/14 +f 250/291/14 249/288/14 273/290/14 +f 251/293/14 250/291/14 274/292/14 +f 252/295/14 251/293/14 275/294/14 +f 252/295/14 276/296/14 265/297/14 +f 241/298/14 265/297/14 266/299/14 +f 243/301/14 242/300/14 266/299/14 +f 243/301/14 267/302/14 268/303/14 +f 245/305/14 244/673/14 268/306/14 +f 246/308/14 245/305/14 269/307/14 +f 247/310/14 246/308/14 270/309/14 +f 247/310/14 271/311/14 272/289/14 +f 285/313/15 298/674/15 297/314/15 +f 281/316/15 282/327/15 295/317/15 +f 278/319/15 279/330/15 292/320/15 +f 285/322/15 286/331/15 299/323/15 +f 283/325/15 296/675/15 295/326/15 +f 280/328/15 293/676/15 292/329/15 +f 286/331/15 287/340/15 300/332/15 +f 288/334/15 277/341/15 289/335/15 +f 284/315/15 297/677/15 296/337/15 +f 281/316/15 294/678/15 293/338/15 +f 288/334/15 290/679/15 300/339/15 +f 277/341/15 278/319/15 291/342/15 +f 333/380/14 357/404/14 358/381/14 +f 335/383/14 334/382/14 358/381/14 +f 336/385/14 335/383/14 359/384/14 +f 337/387/14 336/385/14 360/386/14 +f 337/387/14 361/388/14 350/389/14 +f 326/390/14 350/389/14 351/391/14 +f 327/392/14 351/391/14 352/393/14 +f 328/394/14 352/393/14 353/395/14 +f 330/397/14 329/680/14 353/398/14 +f 331/400/14 330/397/14 354/399/14 +f 332/402/14 331/400/14 355/401/14 +f 332/402/14 356/403/14 357/404/14 +f 370/405/15 383/681/15 382/406/15 +f 366/408/15 367/419/15 380/409/15 +f 363/411/15 364/420/15 377/412/15 +f 371/414/15 384/682/15 383/415/15 +f 368/417/15 381/683/15 380/418/15 +f 364/420/15 365/430/15 378/421/15 +f 371/414/15 372/432/15 385/423/15 +f 373/425/15 362/433/15 374/426/15 +f 369/407/15 382/684/15 381/428/15 +f 366/408/15 379/685/15 378/429/15 +f 373/425/15 375/686/15 385/431/15 +f 362/433/15 363/411/15 376/434/15 +f 418/472/14 442/496/14 443/473/14 +f 420/475/14 419/474/14 443/473/14 +f 421/477/14 420/475/14 444/476/14 +f 422/479/14 421/477/14 445/478/14 +f 422/479/14 446/480/14 435/481/14 +f 411/482/14 435/481/14 436/483/14 +f 412/484/14 436/483/14 437/485/14 +f 413/486/14 437/485/14 438/487/14 +f 415/489/14 414/687/14 438/490/14 +f 416/492/14 415/489/14 439/491/14 +f 417/494/14 416/492/14 440/493/14 +f 417/494/14 441/495/14 442/496/14 +f 454/497/15 455/688/15 468/498/15 +f 452/500/15 465/689/15 464/501/15 +f 448/503/15 449/513/15 462/504/15 +f 456/506/15 469/690/15 468/507/15 +f 453/509/15 466/691/15 465/510/15 +f 450/511/15 463/692/15 462/512/15 +f 456/506/15 457/522/15 470/514/15 +f 458/516/15 447/523/15 459/517/15 +f 454/497/15 467/693/15 466/519/15 +f 451/502/15 464/694/15 463/520/15 +f 458/516/15 460/695/15 470/521/15 +f 447/523/15 448/503/15 461/524/15 +f 503/562/14 527/586/14 528/563/14 +f 504/564/14 528/563/14 529/565/14 +f 506/567/14 505/566/14 529/565/14 +f 507/569/14 506/567/14 530/568/14 +f 507/569/14 531/570/14 520/571/14 +f 496/572/14 520/571/14 521/573/14 +f 497/574/14 521/573/14 522/575/14 +f 498/576/14 522/575/14 523/577/14 +f 499/579/14 523/696/14 524/580/14 +f 500/581/14 524/580/14 525/582/14 +f 501/583/14 525/582/14 526/584/14 +f 502/585/14 526/584/14 527/586/14 +f 540/587/15 553/697/15 552/588/15 +f 537/590/15 550/698/15 549/591/15 +f 534/593/15 547/699/15 546/594/15 +f 541/596/15 554/700/15 553/597/15 +f 538/599/15 551/701/15 550/600/15 +f 535/601/15 548/702/15 547/602/15 +f 541/596/15 542/611/15 555/603/15 +f 543/605/15 532/612/15 544/606/15 +f 539/589/15 552/703/15 551/608/15 +f 536/592/15 549/704/15 548/609/15 +f 543/605/15 545/705/15 555/610/15 +f 532/612/15 533/595/15 546/613/15 +s 1 +f 101/135/16 113/149/17 112/140/16 +f 79/114/18 90/706/19 78/112/19 +f 76/132/17 87/707/20 75/129/20 +f 71/121/21 94/708/22 82/119/22 +f 73/126/23 84/709/24 72/124/24 +f 80/115/25 91/710/18 79/114/18 +f 77/134/16 88/711/17 76/132/17 +f 74/128/26 85/712/23 73/126/23 +f 81/117/27 92/713/25 80/115/25 +f 78/112/19 89/714/16 77/134/16 +f 75/129/20 86/715/26 74/651/26 +f 82/119/22 93/716/27 81/117/27 +f 72/124/24 83/717/21 71/121/21 +f 98/127/26 116/146/23 115/148/26 +f 105/118/27 109/143/25 108/145/27 +f 102/136/19 112/140/16 111/142/19 +f 99/131/20 115/137/26 114/139/20 +f 106/120/22 108/145/27 107/161/22 +f 96/123/24 118/155/21 117/153/24 +f 103/113/18 111/142/19 110/151/18 +f 100/133/17 114/139/20 113/149/17 +f 95/122/21 107/161/22 118/155/21 +f 97/125/23 117/153/24 116/146/23 +f 104/116/25 110/151/18 109/143/25 +f 121/162/20 131/718/17 119/163/17 +f 132/719/28 154/194/29 142/720/29 +f 128/652/25 139/721/27 127/138/27 +f 125/653/21 136/722/24 124/141/24 +f 122/654/26 133/723/20 121/144/20 +f 129/655/18 140/724/25 128/147/25 +f 126/656/22 137/725/21 125/150/21 +f 123/657/23 134/726/26 122/152/26 +f 130/658/19 141/727/18 129/154/18 +f 119/156/17 132/728/16 120/157/16 +f 127/659/27 138/729/22 126/158/22 +f 124/660/24 135/730/23 123/159/23 +f 120/661/16 142/720/19 130/160/19 +f 133/731/30 143/164/31 131/718/31 +f 140/732/32 151/185/33 139/721/33 +f 137/733/34 148/176/35 136/722/35 +f 134/734/36 145/167/30 133/723/30 +f 140/724/32 153/189/37 152/188/32 +f 137/725/34 150/180/38 149/179/34 +f 134/726/36 147/171/39 146/170/36 +f 141/727/37 154/192/29 153/191/37 +f 132/728/28 143/198/31 144/197/28 +f 139/735/33 150/182/38 138/729/38 +f 135/730/39 148/174/35 147/173/39 +f 86/736/14 88/737/14 90/738/14 +f 186/223/21 198/237/22 197/228/21 +f 164/202/23 175/739/24 163/200/24 +f 161/220/22 172/740/27 160/217/27 +f 156/209/16 179/741/17 167/207/17 +f 158/214/18 169/742/19 157/212/19 +f 165/203/26 176/743/23 164/202/23 +f 162/222/21 173/744/22 161/220/22 +f 159/216/25 170/745/18 158/214/18 +f 166/205/20 177/746/26 165/203/26 +f 163/200/24 174/747/21 162/222/21 +f 160/217/27 171/748/25 159/662/25 +f 167/207/17 178/749/20 166/205/20 +f 157/212/19 168/750/16 156/209/16 +f 183/215/25 201/234/18 200/236/25 +f 190/206/20 194/231/26 193/233/20 +f 187/224/24 197/228/21 196/230/24 +f 184/219/27 200/225/25 199/227/27 +f 191/208/17 193/233/20 192/249/17 +f 181/211/19 203/243/16 202/241/19 +f 188/201/23 196/230/24 195/239/23 +f 185/221/22 199/227/27 198/237/22 +f 180/210/16 192/249/17 203/243/16 +f 182/213/18 202/241/19 201/234/18 +f 189/204/26 195/239/23 194/231/26 +f 206/250/27 216/751/22 204/251/22 +f 227/752/35 229/283/34 239/282/35 +f 213/663/26 224/753/20 212/226/20 +f 210/664/16 221/754/19 209/229/19 +f 207/665/25 218/755/27 206/232/27 +f 214/666/23 225/756/26 213/235/26 +f 211/667/17 222/757/16 210/238/16 +f 208/668/18 219/758/25 207/240/25 +f 215/669/24 226/759/23 214/242/23 +f 204/244/22 217/760/21 205/245/21 +f 212/670/20 223/761/17 211/246/17 +f 209/671/19 220/762/18 208/247/18 +f 205/672/21 227/752/24 215/248/24 +f 218/763/33 228/252/38 216/751/38 +f 224/753/30 237/274/36 236/273/30 +f 221/754/29 234/265/28 233/264/29 +f 219/764/32 230/255/33 218/755/33 +f 226/765/39 237/276/36 225/756/36 +f 223/766/31 234/267/28 222/757/28 +f 219/758/32 232/259/37 231/258/32 +f 226/759/39 239/280/35 238/279/39 +f 216/767/38 229/285/34 217/760/34 +f 224/768/30 235/270/31 223/761/31 +f 220/762/37 233/262/29 232/261/37 +f 171/769/14 173/770/14 175/771/14 +f 271/311/20 283/325/26 282/327/20 +f 249/288/16 260/772/17 248/312/17 +f 246/308/26 257/773/23 245/305/23 +f 241/298/27 264/774/25 252/295/25 +f 243/301/21 254/775/22 242/300/22 +f 250/291/19 261/776/16 249/288/16 +f 247/310/20 258/777/26 246/308/26 +f 244/304/24 255/778/21 243/301/21 +f 251/293/18 262/779/19 250/291/19 +f 248/312/17 259/780/20 247/310/20 +f 245/305/23 256/781/24 244/673/24 +f 252/295/25 263/782/18 251/293/18 +f 242/300/22 253/783/27 241/298/27 +f 268/303/24 286/331/21 285/322/24 +f 275/294/18 279/330/19 278/319/18 +f 272/289/17 282/327/20 281/316/17 +f 269/307/23 285/313/24 284/315/23 +f 276/296/25 278/319/18 277/341/25 +f 266/299/22 288/334/27 287/340/22 +f 273/290/16 281/316/17 280/328/16 +f 270/309/26 284/315/23 283/325/26 +f 265/297/27 277/341/25 288/334/27 +f 267/302/21 287/340/22 286/331/21 +f 274/292/19 280/328/16 279/330/19 +f 291/342/23 301/784/26 289/343/26 +f 302/785/30 324/374/31 312/786/31 +f 298/674/19 309/787/18 297/314/18 +f 295/317/27 306/788/22 294/318/22 +f 292/320/24 303/789/23 291/321/23 +f 299/323/16 310/790/19 298/324/19 +f 296/675/25 307/791/27 295/326/27 +f 293/676/21 304/792/24 292/329/24 +f 300/332/17 311/793/16 299/333/16 +f 289/335/26 302/794/20 290/336/20 +f 297/677/18 308/795/25 296/337/25 +f 294/678/22 305/796/21 293/338/21 +f 290/679/20 312/786/17 300/339/17 +f 303/797/39 313/344/36 301/784/36 +f 309/787/37 322/366/29 321/365/37 +f 306/788/38 319/357/33 318/356/38 +f 304/798/35 315/347/39 303/789/39 +f 310/790/29 323/369/28 322/368/29 +f 308/799/32 319/359/33 307/791/33 +f 305/800/34 316/350/35 304/792/35 +f 312/801/31 323/371/28 311/793/28 +f 301/802/36 314/377/30 302/794/30 +f 308/795/32 321/363/37 320/362/32 +f 305/796/34 318/354/38 317/353/34 +f 256/803/14 260/804/14 264/805/14 +f 356/403/27 368/417/25 367/419/27 +f 334/382/21 345/806/22 333/380/22 +f 331/400/25 342/807/18 330/397/18 +f 326/390/20 349/808/26 337/387/26 +f 328/394/16 339/809/17 327/392/17 +f 335/383/24 346/810/21 334/382/21 +f 332/402/27 343/811/25 331/400/25 +f 329/396/19 340/812/16 328/394/16 +f 336/385/23 347/813/24 335/383/24 +f 333/380/22 344/814/27 332/402/27 +f 330/397/18 341/815/19 329/680/19 +f 337/387/26 348/816/23 336/385/23 +f 327/392/17 338/817/20 326/390/20 +f 353/395/19 371/414/16 370/416/19 +f 360/386/23 364/420/24 363/411/23 +f 357/404/22 367/419/27 366/408/22 +f 354/399/18 370/405/19 369/407/18 +f 361/388/26 363/411/23 362/433/26 +f 351/391/17 373/425/20 372/432/17 +f 358/381/21 366/408/22 365/430/21 +f 355/401/25 369/407/18 368/417/25 +f 350/389/20 362/433/26 373/425/20 +f 352/393/16 372/432/17 371/414/16 +f 359/384/24 365/430/21 364/420/24 +f 376/434/18 386/818/25 374/435/25 +f 387/819/33 409/466/38 397/820/38 +f 383/681/24 394/821/23 382/406/23 +f 380/409/20 391/822/17 379/410/17 +f 377/412/19 388/823/18 376/413/18 +f 384/682/21 395/824/24 383/415/24 +f 381/683/26 392/825/20 380/418/20 +f 378/421/16 389/826/19 377/422/19 +f 385/423/22 396/827/21 384/424/21 +f 374/426/25 387/828/27 375/427/27 +f 382/684/23 393/829/26 381/428/26 +f 379/685/17 390/830/16 378/429/16 +f 375/686/27 397/820/22 385/431/22 +f 388/831/37 398/436/32 386/818/32 +f 394/821/39 407/458/35 406/457/39 +f 391/822/31 404/449/30 403/448/31 +f 389/832/29 400/439/37 388/823/37 +f 395/824/35 408/461/34 407/460/35 +f 392/825/30 405/452/36 404/451/30 +f 390/833/28 401/442/29 389/826/29 +f 397/834/38 408/463/34 396/827/34 +f 386/835/32 399/469/33 387/828/33 +f 393/829/36 406/455/39 405/454/36 +f 390/830/28 403/446/31 402/445/28 +f 341/836/14 343/837/14 345/838/14 +f 441/495/23 453/509/24 452/500/23 +f 419/474/20 430/839/26 418/472/26 +f 416/492/24 427/840/21 415/489/21 +f 411/482/18 434/841/19 422/479/19 +f 413/486/27 424/842/25 412/484/25 +f 420/475/17 431/843/20 419/474/20 +f 417/494/23 428/844/24 416/492/24 +f 414/488/22 425/845/27 413/486/27 +f 421/477/16 432/846/17 420/475/17 +f 418/472/26 429/847/23 417/494/23 +f 415/489/21 426/848/22 414/687/22 +f 422/479/19 433/849/16 421/477/16 +f 412/484/25 423/850/18 411/482/18 +f 438/487/22 456/506/27 455/508/22 +f 445/478/16 449/513/17 448/503/16 +f 442/496/26 452/500/23 451/502/26 +f 439/491/21 455/688/22 454/497/21 +f 446/480/19 448/503/16 447/523/19 +f 436/483/25 458/516/18 457/522/25 +f 443/473/20 451/502/26 450/511/20 +f 440/493/24 454/497/21 453/509/24 +f 435/481/18 447/523/19 458/516/18 +f 437/485/27 457/522/25 456/506/27 +f 444/476/17 450/511/20 449/513/17 +f 461/524/21 471/851/24 459/525/24 +f 472/852/39 494/556/36 482/853/36 +f 468/498/17 479/854/16 467/499/16 +f 465/689/18 476/855/25 464/501/25 +f 462/504/22 473/856/21 461/505/21 +f 469/690/20 480/857/17 468/507/17 +f 466/691/19 477/858/18 465/510/18 +f 463/692/27 474/859/22 462/512/22 +f 470/514/26 481/860/20 469/515/20 +f 459/517/24 472/861/23 460/518/23 +f 467/693/16 478/862/19 466/519/19 +f 464/694/25 475/863/27 463/520/27 +f 460/695/23 482/853/26 470/521/26 +f 473/864/34 483/526/35 471/851/35 +f 480/865/31 491/547/28 479/854/28 +f 477/866/37 488/538/32 476/855/32 +f 473/856/34 486/530/38 485/529/34 +f 481/867/30 492/550/31 480/857/31 +f 477/858/37 490/542/29 489/541/37 +f 475/868/33 486/532/38 474/859/38 +f 481/860/30 494/554/36 493/553/30 +f 471/869/35 484/559/39 472/861/39 +f 478/862/29 491/545/28 490/544/29 +f 475/863/33 488/536/32 487/535/33 +f 426/870/14 430/871/14 434/872/14 +f 526/584/18 538/599/19 537/590/18 +f 504/564/27 515/873/25 503/562/25 +f 501/583/19 512/874/16 500/581/16 +f 496/572/23 519/875/24 507/569/24 +f 498/576/20 509/876/26 497/574/26 +f 505/566/22 516/877/27 504/564/27 +f 502/585/18 513/878/19 501/583/19 +f 499/578/17 510/879/20 498/576/20 +f 506/567/21 517/880/22 505/566/22 +f 503/562/25 514/881/18 502/585/18 +f 500/581/16 511/882/17 499/579/17 +f 507/569/24 518/883/21 506/567/21 +f 497/574/26 508/884/23 496/572/23 +f 523/577/17 541/596/20 540/598/17 +f 530/568/21 534/593/22 533/595/21 +f 527/586/25 537/590/18 536/592/25 +f 524/580/16 540/587/17 539/589/16 +f 531/570/24 533/595/21 532/612/24 +f 521/573/26 543/605/23 542/611/26 +f 528/563/27 536/592/25 535/601/27 +f 525/582/19 539/589/16 538/599/19 +f 520/571/23 532/612/24 543/605/23 +f 522/575/20 542/611/26 541/596/20 +f 529/565/22 535/601/27 534/593/22 +f 546/613/16 556/885/19 544/614/19 +f 557/886/37 579/645/32 567/887/32 +f 553/697/22 564/888/21 552/588/21 +f 550/698/23 561/889/26 549/591/26 +f 547/699/17 558/890/16 546/594/16 +f 554/700/27 565/891/22 553/597/22 +f 551/701/24 562/892/23 550/600/23 +f 548/702/20 559/893/17 547/602/17 +f 555/603/25 566/894/27 554/604/27 +f 544/606/19 557/895/18 545/607/18 +f 552/703/21 563/896/24 551/608/24 +f 549/704/26 560/897/20 548/609/20 +f 545/705/18 567/887/25 555/610/25 +f 558/898/28 568/615/29 556/885/29 +f 565/899/38 576/636/34 564/888/34 +f 562/900/39 573/627/36 561/889/36 +f 558/890/28 571/619/31 570/618/28 +f 566/901/33 577/639/38 565/891/38 +f 562/892/39 575/631/35 574/630/39 +f 559/893/31 572/622/30 571/621/31 +f 567/902/32 578/642/33 566/894/33 +f 557/895/37 568/649/29 569/648/37 +f 563/896/35 576/634/34 575/633/35 +f 560/897/30 573/625/36 572/624/30 +f 511/903/14 513/904/14 515/905/14 +f 101/135/16 100/133/17 113/149/17 +f 79/114/18 91/710/18 90/706/19 +f 76/132/17 88/711/17 87/707/20 +f 71/121/21 83/717/21 94/708/22 +f 73/126/23 85/712/23 84/709/24 +f 80/115/25 92/713/25 91/710/18 +f 77/134/16 89/714/16 88/711/17 +f 74/128/26 86/906/26 85/712/23 +f 81/117/27 93/716/27 92/713/25 +f 78/112/19 90/706/19 89/714/16 +f 75/129/20 87/707/20 86/715/26 +f 82/119/22 94/708/22 93/716/27 +f 72/124/24 84/709/24 83/717/21 +f 98/127/26 97/125/23 116/146/23 +f 105/118/27 104/116/25 109/143/25 +f 102/136/19 101/135/16 112/140/16 +f 99/131/20 98/130/26 115/137/26 +f 106/120/22 105/118/27 108/145/27 +f 96/123/24 95/122/21 118/155/21 +f 103/113/18 102/136/19 111/142/19 +f 100/133/17 99/131/20 114/139/20 +f 95/122/21 106/120/22 107/161/22 +f 97/125/23 96/123/24 117/153/24 +f 104/116/25 103/113/18 110/151/18 +f 121/162/20 133/731/20 131/718/17 +f 132/719/28 144/195/28 154/194/29 +f 128/652/25 140/732/25 139/721/27 +f 125/653/21 137/733/21 136/722/24 +f 122/654/26 134/734/26 133/723/20 +f 129/655/18 141/907/18 140/724/25 +f 126/656/22 138/908/22 137/725/21 +f 123/657/23 135/909/23 134/726/26 +f 130/658/19 142/910/19 141/727/18 +f 119/156/17 131/911/17 132/728/16 +f 127/659/27 139/735/27 138/729/22 +f 124/660/24 136/912/24 135/730/23 +f 120/661/16 132/719/16 142/720/19 +f 133/731/30 145/165/30 143/164/31 +f 140/732/32 152/186/32 151/185/33 +f 137/733/34 149/177/34 148/176/35 +f 134/734/36 146/168/36 145/167/30 +f 140/724/32 141/907/37 153/189/37 +f 137/725/34 138/908/38 150/180/38 +f 134/726/36 135/909/39 147/171/39 +f 141/727/37 142/910/29 154/192/29 +f 132/728/28 131/911/31 143/198/31 +f 139/735/33 151/183/33 150/182/38 +f 135/730/39 136/912/35 148/174/35 +f 94/913/14 83/914/14 84/915/14 +f 84/915/14 85/916/14 86/736/14 +f 86/736/14 87/917/14 88/737/14 +f 88/737/14 89/918/14 90/738/14 +f 90/738/14 91/919/14 94/913/14 +f 91/919/14 92/920/14 94/913/14 +f 92/920/14 93/921/14 94/913/14 +f 94/913/14 84/915/14 90/738/14 +f 84/915/14 86/736/14 90/738/14 +f 186/223/21 185/221/22 198/237/22 +f 164/202/23 176/743/23 175/739/24 +f 161/220/22 173/744/22 172/740/27 +f 156/209/16 168/750/16 179/741/17 +f 158/214/18 170/745/18 169/742/19 +f 165/203/26 177/746/26 176/743/23 +f 162/222/21 174/747/21 173/744/22 +f 159/216/25 171/922/25 170/745/18 +f 166/205/20 178/749/20 177/746/26 +f 163/200/24 175/739/24 174/747/21 +f 160/217/27 172/740/27 171/748/25 +f 167/207/17 179/741/17 178/749/20 +f 157/212/19 169/742/19 168/750/16 +f 183/215/25 182/213/18 201/234/18 +f 190/206/20 189/204/26 194/231/26 +f 187/224/24 186/223/21 197/228/21 +f 184/219/27 183/218/25 200/225/25 +f 191/208/17 190/206/20 193/233/20 +f 181/211/19 180/210/16 203/243/16 +f 188/201/23 187/224/24 196/230/24 +f 185/221/22 184/219/27 199/227/27 +f 180/210/16 191/208/17 192/249/17 +f 182/213/18 181/211/19 202/241/19 +f 189/204/26 188/201/23 195/239/23 +f 206/250/27 218/763/27 216/751/22 +f 227/752/35 217/923/34 229/283/34 +f 213/663/26 225/924/26 224/753/20 +f 210/664/16 222/925/16 221/754/19 +f 207/665/25 219/764/25 218/755/27 +f 214/666/23 226/765/23 225/756/26 +f 211/667/17 223/766/17 222/757/16 +f 208/668/18 220/926/18 219/758/25 +f 215/669/24 227/927/24 226/759/23 +f 204/244/22 216/767/22 217/760/21 +f 212/670/20 224/768/20 223/761/17 +f 209/671/19 221/928/19 220/762/18 +f 205/672/21 217/923/21 227/752/24 +f 218/763/33 230/253/33 228/252/38 +f 224/753/30 225/924/36 237/274/36 +f 221/754/29 222/925/28 234/265/28 +f 219/764/32 231/256/32 230/255/33 +f 226/765/39 238/277/39 237/276/36 +f 223/766/31 235/268/31 234/267/28 +f 219/758/32 220/926/37 232/259/37 +f 226/759/39 227/927/35 239/280/35 +f 216/767/38 228/286/38 229/285/34 +f 224/768/30 236/271/30 235/270/31 +f 220/762/37 221/928/29 233/262/29 +f 179/929/14 168/930/14 169/931/14 +f 169/931/14 170/932/14 171/769/14 +f 171/769/14 172/933/14 173/770/14 +f 173/770/14 174/934/14 175/771/14 +f 175/771/14 176/935/14 179/929/14 +f 176/935/14 177/936/14 179/929/14 +f 177/936/14 178/937/14 179/929/14 +f 179/929/14 169/931/14 175/771/14 +f 169/931/14 171/769/14 175/771/14 +f 271/311/20 270/309/26 283/325/26 +f 249/288/16 261/776/16 260/772/17 +f 246/308/26 258/777/26 257/773/23 +f 241/298/27 253/783/27 264/774/25 +f 243/301/21 255/778/21 254/775/22 +f 250/291/19 262/779/19 261/776/16 +f 247/310/20 259/780/20 258/777/26 +f 244/304/24 256/938/24 255/778/21 +f 251/293/18 263/782/18 262/779/19 +f 248/312/17 260/772/17 259/780/20 +f 245/305/23 257/773/23 256/781/24 +f 252/295/25 264/774/25 263/782/18 +f 242/300/22 254/775/22 253/783/27 +f 268/303/24 267/302/21 286/331/21 +f 275/294/18 274/292/19 279/330/19 +f 272/289/17 271/311/20 282/327/20 +f 269/307/23 268/306/24 285/313/24 +f 276/296/25 275/294/18 278/319/18 +f 266/299/22 265/297/27 288/334/27 +f 273/290/16 272/289/17 281/316/17 +f 270/309/26 269/307/23 284/315/23 +f 265/297/27 276/296/25 277/341/25 +f 267/302/21 266/299/22 287/340/22 +f 274/292/19 273/290/16 280/328/16 +f 291/342/23 303/797/23 301/784/26 +f 302/785/30 314/375/30 324/374/31 +f 298/674/19 310/939/19 309/787/18 +f 295/317/27 307/940/27 306/788/22 +f 292/320/24 304/798/24 303/789/23 +f 299/323/16 311/941/16 310/790/19 +f 296/675/25 308/799/25 307/791/27 +f 293/676/21 305/800/21 304/792/24 +f 300/332/17 312/801/17 311/793/16 +f 289/335/26 301/802/26 302/794/20 +f 297/677/18 309/942/18 308/795/25 +f 294/678/22 306/943/22 305/796/21 +f 290/679/20 302/785/20 312/786/17 +f 303/797/39 315/345/39 313/344/36 +f 309/787/37 310/939/29 322/366/29 +f 306/788/38 307/940/33 319/357/33 +f 304/798/35 316/348/35 315/347/39 +f 310/790/29 311/941/28 323/369/28 +f 308/799/32 320/360/32 319/359/33 +f 305/800/34 317/351/34 316/350/35 +f 312/801/31 324/372/31 323/371/28 +f 301/802/36 313/378/36 314/377/30 +f 308/795/32 309/942/37 321/363/37 +f 305/796/34 306/943/38 318/354/38 +f 264/805/14 253/944/14 256/803/14 +f 253/944/14 254/945/14 256/803/14 +f 254/945/14 255/946/14 256/803/14 +f 256/803/14 257/947/14 258/948/14 +f 258/948/14 259/949/14 260/804/14 +f 260/804/14 261/950/14 264/805/14 +f 261/950/14 262/951/14 264/805/14 +f 262/951/14 263/952/14 264/805/14 +f 256/803/14 258/948/14 260/804/14 +f 356/403/27 355/401/25 368/417/25 +f 334/382/21 346/810/21 345/806/22 +f 331/400/25 343/811/25 342/807/18 +f 326/390/20 338/817/20 349/808/26 +f 328/394/16 340/812/16 339/809/17 +f 335/383/24 347/813/24 346/810/21 +f 332/402/27 344/814/27 343/811/25 +f 329/396/19 341/953/19 340/812/16 +f 336/385/23 348/816/23 347/813/24 +f 333/380/22 345/806/22 344/814/27 +f 330/397/18 342/807/18 341/815/19 +f 337/387/26 349/808/26 348/816/23 +f 327/392/17 339/809/17 338/817/20 +f 353/395/19 352/393/16 371/414/16 +f 360/386/23 359/384/24 364/420/24 +f 357/404/22 356/403/27 367/419/27 +f 354/399/18 353/398/19 370/405/19 +f 361/388/26 360/386/23 363/411/23 +f 351/391/17 350/389/20 373/425/20 +f 358/381/21 357/404/22 366/408/22 +f 355/401/25 354/399/18 369/407/18 +f 350/389/20 361/388/26 362/433/26 +f 352/393/16 351/391/17 372/432/17 +f 359/384/24 358/381/21 365/430/21 +f 376/434/18 388/831/18 386/818/25 +f 387/819/33 399/467/33 409/466/38 +f 383/681/24 395/954/24 394/821/23 +f 380/409/20 392/955/20 391/822/17 +f 377/412/19 389/832/19 388/823/18 +f 384/682/21 396/956/21 395/824/24 +f 381/683/26 393/957/26 392/825/20 +f 378/421/16 390/833/16 389/826/19 +f 385/423/22 397/834/22 396/827/21 +f 374/426/25 386/835/25 387/828/27 +f 382/684/23 394/958/23 393/829/26 +f 379/685/17 391/959/17 390/830/16 +f 375/686/27 387/819/27 397/820/22 +f 388/831/37 400/437/37 398/436/32 +f 394/821/39 395/954/35 407/458/35 +f 391/822/31 392/955/30 404/449/30 +f 389/832/29 401/440/29 400/439/37 +f 395/824/35 396/956/34 408/461/34 +f 392/825/30 393/957/36 405/452/36 +f 390/833/28 402/443/28 401/442/29 +f 397/834/38 409/464/38 408/463/34 +f 386/835/32 398/470/32 399/469/33 +f 393/829/36 394/958/39 406/455/39 +f 390/830/28 391/959/31 403/446/31 +f 349/960/14 338/961/14 339/962/14 +f 339/962/14 340/963/14 341/836/14 +f 341/836/14 342/964/14 343/837/14 +f 343/837/14 344/965/14 345/838/14 +f 345/838/14 346/966/14 349/960/14 +f 346/966/14 347/967/14 349/960/14 +f 347/967/14 348/968/14 349/960/14 +f 349/960/14 339/962/14 345/838/14 +f 339/962/14 341/836/14 345/838/14 +f 441/495/23 440/493/24 453/509/24 +f 419/474/20 431/843/20 430/839/26 +f 416/492/24 428/844/24 427/840/21 +f 411/482/18 423/850/18 434/841/19 +f 413/486/27 425/845/27 424/842/25 +f 420/475/17 432/846/17 431/843/20 +f 417/494/23 429/847/23 428/844/24 +f 414/488/22 426/969/22 425/845/27 +f 421/477/16 433/849/16 432/846/17 +f 418/472/26 430/839/26 429/847/23 +f 415/489/21 427/840/21 426/848/22 +f 422/479/19 434/841/19 433/849/16 +f 412/484/25 424/842/25 423/850/18 +f 438/487/22 437/485/27 456/506/27 +f 445/478/16 444/476/17 449/513/17 +f 442/496/26 441/495/23 452/500/23 +f 439/491/21 438/490/22 455/688/22 +f 446/480/19 445/478/16 448/503/16 +f 436/483/25 435/481/18 458/516/18 +f 443/473/20 442/496/26 451/502/26 +f 440/493/24 439/491/21 454/497/21 +f 435/481/18 446/480/19 447/523/19 +f 437/485/27 436/483/25 457/522/25 +f 444/476/17 443/473/20 450/511/20 +f 461/524/21 473/864/21 471/851/24 +f 472/852/39 484/557/39 494/556/36 +f 468/498/17 480/865/17 479/854/16 +f 465/689/18 477/866/18 476/855/25 +f 462/504/22 474/970/22 473/856/21 +f 469/690/20 481/867/20 480/857/17 +f 466/691/19 478/971/19 477/858/18 +f 463/692/27 475/868/27 474/859/22 +f 470/514/26 482/972/26 481/860/20 +f 459/517/24 471/869/24 472/861/23 +f 467/693/16 479/973/16 478/862/19 +f 464/694/25 476/974/25 475/863/27 +f 460/695/23 472/852/23 482/853/26 +f 473/864/34 485/527/34 483/526/35 +f 480/865/31 492/548/31 491/547/28 +f 477/866/37 489/539/37 488/538/32 +f 473/856/34 474/970/38 486/530/38 +f 481/867/30 493/551/30 492/550/31 +f 477/858/37 478/971/29 490/542/29 +f 475/868/33 487/533/33 486/532/38 +f 481/860/30 482/972/36 494/554/36 +f 471/869/35 483/560/35 484/559/39 +f 478/862/29 479/973/28 491/545/28 +f 475/863/33 476/974/32 488/536/32 +f 434/872/14 423/975/14 424/976/14 +f 424/976/14 425/977/14 426/870/14 +f 426/870/14 427/978/14 428/979/14 +f 428/979/14 429/980/14 430/871/14 +f 430/871/14 431/981/14 432/982/14 +f 432/982/14 433/983/14 430/871/14 +f 433/983/14 434/872/14 430/871/14 +f 434/872/14 424/976/14 426/870/14 +f 426/870/14 428/979/14 430/871/14 +f 526/584/18 525/582/19 538/599/19 +f 504/564/27 516/877/27 515/873/25 +f 501/583/19 513/878/19 512/874/16 +f 496/572/23 508/884/23 519/875/24 +f 498/576/20 510/879/20 509/876/26 +f 505/566/22 517/880/22 516/877/27 +f 502/585/18 514/881/18 513/878/19 +f 499/578/17 511/984/17 510/879/20 +f 506/567/21 518/883/21 517/880/22 +f 503/562/25 515/873/25 514/881/18 +f 500/581/16 512/874/16 511/882/17 +f 507/569/24 519/875/24 518/883/21 +f 497/574/26 509/876/26 508/884/23 +f 523/577/17 522/575/20 541/596/20 +f 530/568/21 529/565/22 534/593/22 +f 527/586/25 526/584/18 537/590/18 +f 524/580/16 523/696/17 540/587/17 +f 531/570/24 530/568/21 533/595/21 +f 521/573/26 520/571/23 543/605/23 +f 528/563/27 527/586/25 536/592/25 +f 525/582/19 524/580/16 539/589/16 +f 520/571/23 531/570/24 532/612/24 +f 522/575/20 521/573/26 542/611/26 +f 529/565/22 528/563/27 535/601/27 +f 546/613/16 558/898/16 556/885/19 +f 557/886/37 569/646/37 579/645/32 +f 553/697/22 565/899/22 564/888/21 +f 550/698/23 562/900/23 561/889/26 +f 547/699/17 559/985/17 558/890/16 +f 554/700/27 566/901/27 565/891/22 +f 551/701/24 563/986/24 562/892/23 +f 548/702/20 560/987/20 559/893/17 +f 555/603/25 567/902/25 566/894/27 +f 544/606/19 556/988/19 557/895/18 +f 552/703/21 564/989/21 563/896/24 +f 549/704/26 561/990/26 560/897/20 +f 545/705/18 557/886/18 567/887/25 +f 558/898/28 570/616/28 568/615/29 +f 565/899/38 577/637/38 576/636/34 +f 562/900/39 574/628/39 573/627/36 +f 558/890/28 559/985/31 571/619/31 +f 566/901/33 578/640/33 577/639/38 +f 562/892/39 563/986/35 575/631/35 +f 559/893/31 560/987/30 572/622/30 +f 567/902/32 579/643/32 578/642/33 +f 557/895/37 556/988/29 568/649/29 +f 563/896/35 564/989/34 576/634/34 +f 560/897/30 561/990/36 573/625/36 +f 519/991/14 508/992/14 509/993/14 +f 509/993/14 510/994/14 511/903/14 +f 511/903/14 512/995/14 513/904/14 +f 513/904/14 514/996/14 515/905/14 +f 515/905/14 516/997/14 517/998/14 +f 517/998/14 518/999/14 515/905/14 +f 518/999/14 519/991/14 515/905/14 +f 519/991/14 509/993/14 515/905/14 +f 509/993/14 511/903/14 515/905/14 +o Bullets +v 0.250000 2.541016 -0.071041 +v 0.250000 2.571041 -0.041016 +v 0.250000 2.582031 0.000000 +v 0.250000 2.571041 0.041016 +v 0.250000 2.541016 0.071041 +v 0.250000 2.500000 0.082031 +v 0.250000 2.458984 0.071041 +v 0.250000 2.428959 0.041016 +v 0.250000 2.417969 0.000000 +v 0.250000 2.428959 -0.041016 +v 0.250000 2.458984 -0.071041 +v 0.250000 2.500000 -0.082031 +v 0.125000 2.541016 -0.071041 +v 0.125000 2.571041 -0.041016 +v 0.125000 2.582031 0.000000 +v 0.125000 2.571041 0.041016 +v 0.125000 2.541016 0.071041 +v 0.125000 2.500000 0.082031 +v 0.125000 2.458984 0.071041 +v 0.125000 2.428959 0.041016 +v 0.125000 2.417969 0.000000 +v 0.125000 2.428959 -0.041016 +v 0.125000 2.458984 -0.071041 +v 0.125000 2.500000 -0.082031 +v 0.125000 2.582031 -0.142082 +v 0.125000 2.642082 -0.082031 +v 0.125000 2.664062 0.000000 +v 0.125000 2.642082 0.082031 +v 0.125000 2.582031 0.142082 +v 0.125000 2.500000 0.164062 +v 0.125000 2.417969 0.142082 +v 0.125000 2.357918 0.082031 +v 0.125000 2.335938 0.000000 +v 0.125000 2.357918 -0.082031 +v 0.125000 2.417969 -0.142082 +v 0.125000 2.500000 -0.164062 +v 0.500000 2.664063 -0.284164 +v 0.500000 2.784165 -0.164062 +v 0.500000 2.828125 0.000000 +v 0.500000 2.784164 0.164062 +v 0.500000 2.664062 0.284164 +v 0.500000 2.500000 0.328125 +v 0.500000 2.335938 0.284164 +v 0.500000 2.215835 0.164062 +v 0.500000 2.171875 0.000000 +v 0.500000 2.215835 -0.164062 +v 0.500000 2.335938 -0.284164 +v 0.500000 2.500000 -0.328125 +v 0.250000 0.958984 0.071041 +v 0.250000 0.928959 0.041016 +v 0.250000 0.917969 0.000000 +v 0.250000 0.928959 -0.041016 +v 0.250000 0.958984 -0.071041 +v 0.250000 1.000000 -0.082031 +v 0.250000 1.041016 -0.071041 +v 0.250000 1.071041 -0.041016 +v 0.250000 1.082031 0.000000 +v 0.250000 1.071041 0.041016 +v 0.250000 1.041016 0.071041 +v 0.250000 1.000000 0.082031 +v 0.125000 0.958984 0.071041 +v 0.125000 0.928959 0.041016 +v 0.125000 0.917969 0.000000 +v 0.125000 0.928959 -0.041016 +v 0.125000 0.958984 -0.071041 +v 0.125000 1.000000 -0.082031 +v 0.125000 1.041016 -0.071041 +v 0.125000 1.071041 -0.041016 +v 0.125000 1.082031 0.000000 +v 0.125000 1.071041 0.041016 +v 0.125000 1.041016 0.071041 +v 0.125000 1.000000 0.082031 +v 0.125000 0.917969 0.142082 +v 0.125000 0.857918 0.082031 +v 0.125000 0.835938 0.000000 +v 0.125000 0.857918 -0.082031 +v 0.125000 0.917969 -0.142082 +v 0.125000 1.000000 -0.164062 +v 0.125000 1.082031 -0.142082 +v 0.125000 1.142082 -0.082031 +v 0.125000 1.164062 0.000000 +v 0.125000 1.142082 0.082031 +v 0.125000 1.082031 0.142082 +v 0.125000 1.000000 0.164062 +v 0.500000 0.835937 0.284164 +v 0.500000 0.715835 0.164062 +v 0.500000 0.671875 0.000000 +v 0.500000 0.715836 -0.164062 +v 0.500000 0.835938 -0.284164 +v 0.500000 1.000000 -0.328125 +v 0.500000 1.164062 -0.284164 +v 0.500000 1.284165 -0.164062 +v 0.500000 1.328125 0.000000 +v 0.500000 1.284165 0.164062 +v 0.500000 1.164062 0.284164 +v 0.500000 1.000000 0.328125 +v 0.250000 2.207031 0.649519 +v 0.250000 2.196041 0.690535 +v 0.250000 2.166016 0.720560 +v 0.250000 2.125000 0.731550 +v 0.250000 2.083984 0.720560 +v 0.250000 2.053959 0.690535 +v 0.250000 2.042969 0.649519 +v 0.250000 2.053959 0.608504 +v 0.250000 2.083984 0.578478 +v 0.250000 2.125000 0.567488 +v 0.250000 2.166016 0.578478 +v 0.250000 2.196041 0.608503 +v 0.125000 2.207031 0.649519 +v 0.125000 2.196041 0.690535 +v 0.125000 2.166016 0.720560 +v 0.125000 2.125000 0.731550 +v 0.125000 2.083984 0.720560 +v 0.125000 2.053959 0.690535 +v 0.125000 2.042969 0.649519 +v 0.125000 2.053959 0.608504 +v 0.125000 2.083984 0.578478 +v 0.125000 2.125000 0.567488 +v 0.125000 2.166016 0.578478 +v 0.125000 2.196041 0.608503 +v 0.125000 2.289062 0.649519 +v 0.125000 2.267082 0.731550 +v 0.125000 2.207031 0.791601 +v 0.125000 2.125000 0.813581 +v 0.125000 2.042969 0.791601 +v 0.125000 1.982918 0.731550 +v 0.125000 1.960938 0.649519 +v 0.125000 1.982918 0.567488 +v 0.125000 2.042969 0.507437 +v 0.125000 2.125000 0.485457 +v 0.125000 2.207031 0.507437 +v 0.125000 2.267082 0.567488 +v 0.500000 2.453125 0.649519 +v 0.500000 2.409164 0.813582 +v 0.500000 2.289062 0.933684 +v 0.500000 2.125000 0.977644 +v 0.500000 1.960938 0.933684 +v 0.500000 1.840835 0.813581 +v 0.500000 1.796875 0.649519 +v 0.500000 1.840835 0.485456 +v 0.500000 1.960938 0.365355 +v 0.500000 2.125000 0.321394 +v 0.500000 2.289062 0.365355 +v 0.500000 2.409164 0.485456 +v 0.250000 1.292969 -0.649519 +v 0.250000 1.303959 -0.690535 +v 0.250000 1.333984 -0.720560 +v 0.250000 1.375000 -0.731550 +v 0.250000 1.416016 -0.720560 +v 0.250000 1.446041 -0.690535 +v 0.250000 1.457031 -0.649519 +v 0.250000 1.446041 -0.608504 +v 0.250000 1.416016 -0.578478 +v 0.250000 1.375000 -0.567488 +v 0.250000 1.333984 -0.578478 +v 0.250000 1.303959 -0.608503 +v 0.125000 1.292969 -0.649519 +v 0.125000 1.303959 -0.690535 +v 0.125000 1.333984 -0.720560 +v 0.125000 1.375000 -0.731550 +v 0.125000 1.416016 -0.720560 +v 0.125000 1.446041 -0.690535 +v 0.125000 1.457031 -0.649519 +v 0.125000 1.446041 -0.608504 +v 0.125000 1.416016 -0.578478 +v 0.125000 1.375000 -0.567488 +v 0.125000 1.333984 -0.578478 +v 0.125000 1.303959 -0.608503 +v 0.125000 1.210938 -0.649519 +v 0.125000 1.232918 -0.731550 +v 0.125000 1.292969 -0.791601 +v 0.125000 1.375000 -0.813581 +v 0.125000 1.457031 -0.791601 +v 0.125000 1.517082 -0.731550 +v 0.125000 1.539062 -0.649519 +v 0.125000 1.517082 -0.567488 +v 0.125000 1.457031 -0.507437 +v 0.125000 1.375000 -0.485457 +v 0.125000 1.292969 -0.507437 +v 0.125000 1.232918 -0.567488 +v 0.500000 1.046875 -0.649519 +v 0.500000 1.090835 -0.813582 +v 0.500000 1.210938 -0.933684 +v 0.500000 1.375000 -0.977644 +v 0.500000 1.539062 -0.933684 +v 0.500000 1.659165 -0.813581 +v 0.500000 1.703125 -0.649519 +v 0.500000 1.659165 -0.485456 +v 0.500000 1.539062 -0.365355 +v 0.500000 1.375000 -0.321394 +v 0.500000 1.210938 -0.365355 +v 0.500000 1.090835 -0.485456 +v 0.250000 1.416016 0.720560 +v 0.250000 1.375000 0.731550 +v 0.250000 1.333984 0.720560 +v 0.250000 1.303959 0.690535 +v 0.250000 1.292969 0.649519 +v 0.250000 1.303959 0.608503 +v 0.250000 1.333984 0.578478 +v 0.250000 1.375000 0.567488 +v 0.250000 1.416016 0.578478 +v 0.250000 1.446041 0.608503 +v 0.250000 1.457031 0.649519 +v 0.250000 1.446041 0.690535 +v 0.125000 1.416016 0.720560 +v 0.125000 1.375000 0.731550 +v 0.125000 1.333984 0.720560 +v 0.125000 1.303959 0.690535 +v 0.125000 1.292969 0.649519 +v 0.125000 1.303959 0.608503 +v 0.125000 1.333984 0.578478 +v 0.125000 1.375000 0.567488 +v 0.125000 1.416016 0.578478 +v 0.125000 1.446041 0.608503 +v 0.125000 1.457031 0.649519 +v 0.125000 1.446041 0.690535 +v 0.125000 1.457031 0.791601 +v 0.125000 1.375000 0.813581 +v 0.125000 1.292969 0.791601 +v 0.125000 1.232918 0.731550 +v 0.125000 1.210937 0.649519 +v 0.125000 1.232918 0.567488 +v 0.125000 1.292969 0.507437 +v 0.125000 1.375000 0.485456 +v 0.125000 1.457031 0.507437 +v 0.125000 1.517082 0.567488 +v 0.125000 1.539062 0.649519 +v 0.125000 1.517082 0.731550 +v 0.500000 1.539062 0.933684 +v 0.500000 1.375000 0.977644 +v 0.500000 1.210937 0.933684 +v 0.500000 1.090835 0.813581 +v 0.500000 1.046875 0.649519 +v 0.500000 1.090835 0.485456 +v 0.500000 1.210938 0.365355 +v 0.500000 1.375000 0.321394 +v 0.500000 1.539062 0.365355 +v 0.500000 1.659165 0.485456 +v 0.500000 1.703125 0.649519 +v 0.500000 1.659165 0.813581 +v 0.250000 2.083984 -0.720560 +v 0.250000 2.125000 -0.731550 +v 0.250000 2.166016 -0.720560 +v 0.250000 2.196041 -0.690535 +v 0.250000 2.207031 -0.649519 +v 0.250000 2.196041 -0.608503 +v 0.250000 2.166016 -0.578478 +v 0.250000 2.125000 -0.567488 +v 0.250000 2.083984 -0.578478 +v 0.250000 2.053959 -0.608503 +v 0.250000 2.042969 -0.649519 +v 0.250000 2.053959 -0.690535 +v 0.125000 2.083984 -0.720560 +v 0.125000 2.125000 -0.731550 +v 0.125000 2.166016 -0.720560 +v 0.125000 2.196041 -0.690535 +v 0.125000 2.207031 -0.649519 +v 0.125000 2.196041 -0.608503 +v 0.125000 2.166016 -0.578478 +v 0.125000 2.125000 -0.567488 +v 0.125000 2.083984 -0.578478 +v 0.125000 2.053959 -0.608503 +v 0.125000 2.042969 -0.649519 +v 0.125000 2.053959 -0.690535 +v 0.125000 2.042969 -0.791601 +v 0.125000 2.125000 -0.813581 +v 0.125000 2.207031 -0.791601 +v 0.125000 2.267082 -0.731550 +v 0.125000 2.289062 -0.649519 +v 0.125000 2.267082 -0.567488 +v 0.125000 2.207031 -0.507437 +v 0.125000 2.125000 -0.485456 +v 0.125000 2.042969 -0.507437 +v 0.125000 1.982918 -0.567488 +v 0.125000 1.960938 -0.649519 +v 0.125000 1.982918 -0.731550 +v 0.500000 1.960938 -0.933684 +v 0.500000 2.125000 -0.977644 +v 0.500000 2.289062 -0.933684 +v 0.500000 2.409165 -0.813581 +v 0.500000 2.453125 -0.649519 +v 0.500000 2.409165 -0.485456 +v 0.500000 2.289062 -0.365355 +v 0.500000 2.125000 -0.321394 +v 0.500000 1.960938 -0.365355 +v 0.500000 1.840835 -0.485456 +v 0.500000 1.796875 -0.649519 +v 0.500000 1.840835 -0.813581 +vt 0.000769 0.976393 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.089928 0.936842 +vt 0.093525 0.947368 +vt 0.089928 0.947368 +vt 0.017986 0.936842 +vt 0.014388 0.947368 +vt 0.014388 0.936842 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.039568 0.936842 +vt 0.035971 0.947368 +vt 0.035971 0.936842 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.025180 0.936842 +vt 0.028777 0.947368 +vt 0.025180 0.947368 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.089928 0.936842 +vt 0.093525 0.947368 +vt 0.089928 0.947368 +vt 0.017986 0.936842 +vt 0.014388 0.947368 +vt 0.014388 0.936842 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.039568 0.936842 +vt 0.035971 0.947368 +vt 0.035971 0.936842 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.025180 0.936842 +vt 0.028777 0.947368 +vt 0.025180 0.947368 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.046763 0.936842 +vt 0.050360 0.947368 +vt 0.046763 0.947368 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.046763 0.936842 +vt 0.050360 0.947368 +vt 0.046763 0.947368 +vt 0.100719 0.936842 +vt 0.104317 0.947368 +vt 0.100719 0.947368 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.100719 0.936842 +vt 0.104317 0.947368 +vt 0.100719 0.947368 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.000769 0.992028 +vt 0.000053 0.984211 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.936842 +vt 0.017986 0.947368 +vt 0.050360 0.947368 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.947368 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.936842 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.936842 +vt 0.017986 0.947368 +vt 0.050360 0.947368 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.947368 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.936842 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.936842 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.936842 +vt 0.104317 0.936842 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.947368 +vt 0.104317 0.936842 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.947368 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.032374 0.873684 +vt 0.021583 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.064748 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.107914 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.097122 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.032374 0.873684 +vt 0.118705 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.032374 0.873684 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.021583 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.032374 0.873684 +vt 0.064748 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.032374 0.873684 +vt 0.129496 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.032374 0.873684 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.107914 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.097122 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.118705 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.8660 0.5000 +vn -0.4008 0.0000 0.9162 +vn -0.4008 -0.4581 0.7934 +vn -0.4008 0.7934 0.4581 +vn -0.4008 0.9162 0.0000 +vn -0.4008 -0.7934 -0.4581 +vn -0.4008 -0.4581 -0.7934 +vn -0.4008 -0.0000 -0.9162 +vn -0.4008 0.4581 -0.7934 +vn -0.4008 -0.7934 0.4581 +vn -0.4008 0.4581 0.7934 +vn -0.4008 0.7934 -0.4581 +vn -0.4008 -0.9162 0.0000 +s off +f 591/1000/40 589/1001/40 585/1002/40 +f 608/1003/40 595/1004/40 596/1005/40 +f 614/1006/40 603/1007/40 615/1008/40 +f 605/1009/40 604/1010/40 593/1011/40 +f 611/1012/40 600/1013/40 612/1014/40 +f 608/1015/40 597/1016/40 609/1017/40 +f 615/1018/40 604/1019/40 616/1020/40 +f 605/1021/40 594/1022/40 606/1023/40 +f 612/1024/40 601/1025/40 613/1026/40 +f 609/1027/40 598/1028/40 610/1029/40 +f 606/1030/40 595/1031/40 607/1032/40 +f 614/1033/40 601/1034/40 602/1035/40 +f 611/1036/40 598/1037/40 599/1038/40 +f 637/1039/40 633/1040/40 629/1041/40 +f 656/1042/40 643/1043/40 644/1044/40 +f 662/1045/40 651/1046/40 663/1047/40 +f 653/1048/40 652/1049/40 641/1050/40 +f 659/1051/40 648/1052/40 660/1053/40 +f 656/1054/40 645/1055/40 657/1056/40 +f 663/1057/40 652/1058/40 664/1059/40 +f 653/1060/40 642/1061/40 654/1062/40 +f 660/1063/40 649/1064/40 661/1065/40 +f 657/1066/40 646/1067/40 658/1068/40 +f 654/1069/40 643/1070/40 655/1071/40 +f 662/1072/40 649/1073/40 650/1074/40 +f 659/1075/40 646/1076/40 647/1077/40 +f 685/1078/40 681/1079/40 677/1080/40 +f 704/1081/40 691/1082/40 692/1083/40 +f 710/1084/40 699/1085/40 711/1086/40 +f 712/1087/40 689/1088/40 701/1089/40 +f 708/1090/40 695/1091/40 696/1092/40 +f 705/1093/40 692/1094/40 693/1095/40 +f 711/1096/40 700/1097/40 712/1098/40 +f 701/1099/40 690/1100/40 702/1101/40 +f 708/1102/40 697/1103/40 709/1104/40 +f 706/1105/40 693/1106/40 694/1107/40 +f 702/1108/40 691/1109/40 703/1110/40 +f 710/1111/40 697/1112/40 698/1113/40 +f 706/1114/40 695/1115/40 707/1116/40 +f 733/1117/40 729/1118/40 725/1119/40 +f 752/1120/40 739/1121/40 740/1122/40 +f 758/1123/40 747/1124/40 759/1125/40 +f 760/1126/40 737/1127/40 749/1128/40 +f 756/1129/40 743/1130/40 744/1131/40 +f 753/1132/40 740/1133/40 741/1134/40 +f 760/1135/40 747/1136/40 748/1137/40 +f 749/1138/40 738/1139/40 750/1140/40 +f 756/1141/40 745/1142/40 757/1143/40 +f 754/1144/40 741/1145/40 742/1146/40 +f 750/1147/40 739/1148/40 751/1149/40 +f 758/1150/40 745/1151/40 746/1152/40 +f 754/1153/40 743/1154/40 755/1155/40 +f 781/1156/40 777/1157/40 773/1158/40 +f 800/1159/40 787/1160/40 788/1161/40 +f 806/1162/40 795/1163/40 807/1164/40 +f 808/1165/40 785/1166/40 797/1167/40 +f 804/1168/40 791/1169/40 792/1170/40 +f 800/1171/40 789/1172/40 801/1173/40 +f 808/1174/40 795/1175/40 796/1176/40 +f 797/1177/40 786/1178/40 798/1179/40 +f 804/1180/40 793/1181/40 805/1182/40 +f 802/1183/40 789/1184/40 790/1185/40 +f 798/1186/40 787/1187/40 799/1188/40 +f 806/1189/40 793/1190/40 794/1191/40 +f 802/1192/40 791/1193/40 803/1194/40 +f 829/1195/40 825/1196/40 821/1197/40 +f 848/1198/40 835/1199/40 836/1200/40 +f 854/1201/40 843/1202/40 855/1203/40 +f 856/1204/40 833/1205/40 845/1206/40 +f 852/1207/40 839/1208/40 840/1209/40 +f 848/1210/40 837/1211/40 849/1212/40 +f 855/1213/40 844/1214/40 856/1215/40 +f 845/1216/40 834/1217/40 846/1218/40 +f 852/1219/40 841/1220/40 853/1221/40 +f 850/1222/40 837/1223/40 838/1224/40 +f 846/1225/40 835/1226/40 847/1227/40 +f 854/1228/40 841/1229/40 842/1230/40 +f 850/1231/40 839/1232/40 851/1233/40 +f 581/1234/40 592/1235/40 591/1000/40 +f 591/1000/40 590/1236/40 589/1001/40 +f 589/1001/40 588/1237/40 585/1002/40 +f 588/1237/40 587/1238/40 585/1002/40 +f 587/1238/40 586/1239/40 585/1002/40 +f 585/1002/40 584/1240/40 581/1234/40 +f 584/1240/40 583/1241/40 581/1234/40 +f 583/1241/40 582/1242/40 581/1234/40 +f 581/1234/40 591/1000/40 585/1002/40 +f 608/1003/40 607/1243/40 595/1004/40 +f 614/1006/40 602/1244/40 603/1007/40 +f 605/1009/40 616/1245/40 604/1010/40 +f 611/1012/40 599/1246/40 600/1013/40 +f 608/1015/40 596/1247/40 597/1016/40 +f 615/1018/40 603/1248/40 604/1019/40 +f 605/1021/40 593/1249/40 594/1022/40 +f 612/1024/40 600/1250/40 601/1025/40 +f 609/1027/40 597/1251/40 598/1028/40 +f 606/1030/40 594/1252/40 595/1031/40 +f 614/1033/40 613/1253/40 601/1034/40 +f 611/1036/40 610/1254/40 598/1037/40 +f 629/1041/40 640/1255/40 639/1256/40 +f 639/1256/40 638/1257/40 629/1041/40 +f 638/1257/40 637/1039/40 629/1041/40 +f 637/1039/40 636/1258/40 633/1040/40 +f 636/1258/40 635/1259/40 633/1040/40 +f 635/1259/40 634/1260/40 633/1040/40 +f 633/1040/40 632/1261/40 631/1262/40 +f 631/1262/40 630/1263/40 633/1040/40 +f 630/1263/40 629/1041/40 633/1040/40 +f 656/1042/40 655/1264/40 643/1043/40 +f 662/1045/40 650/1265/40 651/1046/40 +f 653/1048/40 664/1266/40 652/1049/40 +f 659/1051/40 647/1267/40 648/1052/40 +f 656/1054/40 644/1268/40 645/1055/40 +f 663/1057/40 651/1269/40 652/1058/40 +f 653/1060/40 641/1270/40 642/1061/40 +f 660/1063/40 648/1271/40 649/1064/40 +f 657/1066/40 645/1272/40 646/1067/40 +f 654/1069/40 642/1273/40 643/1070/40 +f 662/1072/40 661/1274/40 649/1073/40 +f 659/1075/40 658/1275/40 646/1076/40 +f 677/1080/40 688/1276/40 687/1277/40 +f 687/1277/40 686/1278/40 677/1080/40 +f 686/1278/40 685/1078/40 677/1080/40 +f 685/1078/40 684/1279/40 681/1079/40 +f 684/1279/40 683/1280/40 681/1079/40 +f 683/1280/40 682/1281/40 681/1079/40 +f 681/1079/40 680/1282/40 679/1283/40 +f 679/1283/40 678/1284/40 681/1079/40 +f 678/1284/40 677/1080/40 681/1079/40 +f 704/1081/40 703/1285/40 691/1082/40 +f 710/1084/40 698/1286/40 699/1085/40 +f 712/1087/40 700/1287/40 689/1088/40 +f 708/1090/40 707/1288/40 695/1091/40 +f 705/1093/40 704/1289/40 692/1094/40 +f 711/1096/40 699/1290/40 700/1097/40 +f 701/1099/40 689/1291/40 690/1100/40 +f 708/1102/40 696/1292/40 697/1103/40 +f 706/1105/40 705/1293/40 693/1106/40 +f 702/1108/40 690/1294/40 691/1109/40 +f 710/1111/40 709/1295/40 697/1112/40 +f 706/1114/40 694/1296/40 695/1115/40 +f 725/1119/40 736/1297/40 735/1298/40 +f 735/1298/40 734/1299/40 725/1119/40 +f 734/1299/40 733/1117/40 725/1119/40 +f 733/1117/40 732/1300/40 729/1118/40 +f 732/1300/40 731/1301/40 729/1118/40 +f 731/1301/40 730/1302/40 729/1118/40 +f 729/1118/40 728/1303/40 727/1304/40 +f 727/1304/40 726/1305/40 729/1118/40 +f 726/1305/40 725/1119/40 729/1118/40 +f 752/1120/40 751/1306/40 739/1121/40 +f 758/1123/40 746/1307/40 747/1124/40 +f 760/1126/40 748/1308/40 737/1127/40 +f 756/1129/40 755/1309/40 743/1130/40 +f 753/1132/40 752/1310/40 740/1133/40 +f 760/1135/40 759/1311/40 747/1136/40 +f 749/1138/40 737/1312/40 738/1139/40 +f 756/1141/40 744/1313/40 745/1142/40 +f 754/1144/40 753/1314/40 741/1145/40 +f 750/1147/40 738/1315/40 739/1148/40 +f 758/1150/40 757/1316/40 745/1151/40 +f 754/1153/40 742/1317/40 743/1154/40 +f 773/1158/40 784/1318/40 783/1319/40 +f 783/1319/40 782/1320/40 773/1158/40 +f 782/1320/40 781/1156/40 773/1158/40 +f 781/1156/40 780/1321/40 777/1157/40 +f 780/1321/40 779/1322/40 777/1157/40 +f 779/1322/40 778/1323/40 777/1157/40 +f 777/1157/40 776/1324/40 773/1158/40 +f 776/1324/40 775/1325/40 773/1158/40 +f 775/1325/40 774/1326/40 773/1158/40 +f 800/1159/40 799/1327/40 787/1160/40 +f 806/1162/40 794/1328/40 795/1163/40 +f 808/1165/40 796/1329/40 785/1166/40 +f 804/1168/40 803/1330/40 791/1169/40 +f 800/1171/40 788/1331/40 789/1172/40 +f 808/1174/40 807/1332/40 795/1175/40 +f 797/1177/40 785/1333/40 786/1178/40 +f 804/1180/40 792/1334/40 793/1181/40 +f 802/1183/40 801/1335/40 789/1184/40 +f 798/1186/40 786/1336/40 787/1187/40 +f 806/1189/40 805/1337/40 793/1190/40 +f 802/1192/40 790/1338/40 791/1193/40 +f 821/1197/40 832/1339/40 831/1340/40 +f 831/1340/40 830/1341/40 821/1197/40 +f 830/1341/40 829/1195/40 821/1197/40 +f 829/1195/40 828/1342/40 825/1196/40 +f 828/1342/40 827/1343/40 825/1196/40 +f 827/1343/40 826/1344/40 825/1196/40 +f 825/1196/40 824/1345/40 821/1197/40 +f 824/1345/40 823/1346/40 821/1197/40 +f 823/1346/40 822/1347/40 821/1197/40 +f 848/1198/40 847/1348/40 835/1199/40 +f 854/1201/40 842/1349/40 843/1202/40 +f 856/1204/40 844/1350/40 833/1205/40 +f 852/1207/40 851/1351/40 839/1208/40 +f 848/1210/40 836/1352/40 837/1211/40 +f 855/1213/40 843/1353/40 844/1214/40 +f 845/1216/40 833/1354/40 834/1217/40 +f 852/1219/40 840/1355/40 841/1220/40 +f 850/1222/40 849/1356/40 837/1223/40 +f 846/1225/40 834/1357/40 835/1226/40 +f 854/1228/40 853/1358/40 841/1229/40 +f 850/1231/40 838/1359/40 839/1232/40 +s 1 +f 599/1246/41 588/1360/42 600/1013/42 +f 596/1247/43 585/1361/44 597/1016/44 +f 603/1248/45 592/1362/46 604/1019/46 +f 593/1249/47 582/1363/48 594/1022/48 +f 600/1250/42 589/1364/49 601/1025/49 +f 597/1251/44 586/1365/50 598/1028/50 +f 594/1252/48 583/1366/51 595/1031/51 +f 601/1034/49 590/1367/52 602/1035/52 +f 598/1037/50 587/1368/41 599/1038/41 +f 595/1004/51 584/1369/43 596/1005/43 +f 602/1244/52 591/1370/45 603/1007/45 +f 604/1010/46 581/1371/47 593/1011/47 +f 622/1372/53 611/1036/54 623/1373/54 +f 620/1374/55 607/1243/56 608/1003/55 +f 626/1375/57 615/1008/58 627/1376/58 +f 628/1377/59 605/1009/60 617/1378/60 +f 623/1373/54 612/1014/61 624/1379/61 +f 620/1374/55 609/1017/62 621/1380/62 +f 627/1376/58 616/1020/59 628/1377/59 +f 617/1378/60 606/1023/63 618/1381/63 +f 624/1379/61 613/1026/64 625/1382/64 +f 621/1380/62 610/1029/53 622/1372/53 +f 618/1381/63 607/1032/56 619/1383/56 +f 626/1375/57 613/1253/64 614/1033/57 +f 647/1267/47 636/1384/48 648/1052/48 +f 644/1268/52 633/1385/45 645/1055/45 +f 651/1269/44 640/1386/50 652/1058/50 +f 641/1270/41 630/1387/42 642/1061/42 +f 648/1271/48 637/1388/51 649/1064/51 +f 645/1272/45 634/1389/46 646/1067/46 +f 642/1273/42 631/1390/49 643/1070/49 +f 649/1073/51 638/1391/43 650/1074/43 +f 646/1076/46 635/1392/47 647/1077/47 +f 643/1043/49 632/1393/52 644/1044/52 +f 650/1265/43 639/1394/44 651/1046/44 +f 652/1049/50 629/1395/41 641/1050/41 +f 671/1396/60 658/1275/59 659/1075/60 +f 667/1397/64 656/1042/57 668/1398/57 +f 675/1399/62 662/1045/55 663/1047/62 +f 665/1400/54 664/1266/53 653/1048/54 +f 671/1396/60 660/1053/63 672/1401/63 +f 668/1398/57 657/1056/58 669/1402/58 +f 675/1399/62 664/1059/53 676/1403/53 +f 666/1404/61 653/1060/54 654/1062/61 +f 672/1401/63 661/1065/56 673/1405/56 +f 669/1402/58 658/1068/59 670/1406/59 +f 666/1404/61 655/1071/64 667/1397/64 +f 674/1407/55 661/1274/56 662/1072/55 +f 695/1091/49 684/1408/52 696/1092/52 +f 692/1094/50 681/1409/41 693/1095/41 +f 699/1290/47 688/1410/48 700/1097/48 +f 689/1291/51 678/1411/43 690/1100/43 +f 696/1292/52 685/1412/45 697/1103/45 +f 693/1106/41 682/1413/42 694/1107/42 +f 690/1294/43 679/1414/44 691/1109/44 +f 697/1112/45 686/1415/46 698/1113/46 +f 694/1296/42 683/1416/49 695/1115/49 +f 691/1082/44 680/1417/50 692/1083/50 +f 698/1286/46 687/1418/47 699/1085/47 +f 700/1287/48 677/1419/51 689/1088/51 +f 718/1420/61 707/1116/64 719/1421/64 +f 715/1422/62 704/1081/53 716/1423/53 +f 722/1424/59 711/1086/60 723/1425/60 +f 724/1426/63 701/1089/56 713/1427/56 +f 719/1421/64 708/1090/57 720/1428/57 +f 716/1423/53 705/1093/54 717/1429/54 +f 724/1426/63 711/1096/60 712/1098/63 +f 713/1427/56 702/1101/55 714/1430/55 +f 720/1428/57 709/1104/58 721/1431/58 +f 718/1420/61 705/1293/54 706/1105/61 +f 714/1430/55 703/1110/62 715/1422/62 +f 722/1424/59 709/1295/58 710/1111/59 +f 743/1130/51 732/1432/43 744/1131/43 +f 740/1133/46 729/1433/47 741/1134/47 +f 747/1136/41 736/1434/42 748/1137/42 +f 737/1312/49 726/1435/52 738/1139/52 +f 744/1313/43 733/1436/44 745/1142/44 +f 741/1145/47 730/1437/48 742/1146/48 +f 738/1315/52 727/1438/45 739/1148/45 +f 745/1151/44 734/1439/50 746/1152/50 +f 742/1317/48 731/1440/51 743/1154/51 +f 739/1121/45 728/1441/46 740/1122/46 +f 746/1307/50 735/1442/41 747/1124/41 +f 748/1308/42 725/1443/49 737/1127/49 +f 767/1444/56 754/1153/63 755/1155/56 +f 764/1445/59 751/1306/58 752/1120/59 +f 770/1446/53 759/1125/54 771/1447/54 +f 772/1448/61 749/1128/64 761/1449/64 +f 767/1444/56 756/1129/55 768/1450/55 +f 764/1445/59 753/1132/60 765/1451/60 +f 771/1447/54 760/1135/61 772/1448/61 +f 761/1449/64 750/1140/57 762/1452/57 +f 768/1450/55 757/1143/62 769/1453/62 +f 765/1451/60 754/1144/63 766/1454/63 +f 762/1452/57 751/1149/58 763/1455/58 +f 770/1446/53 757/1316/62 758/1150/53 +f 791/1169/45 780/1456/46 792/1170/46 +f 788/1331/42 777/1457/49 789/1172/49 +f 795/1175/51 784/1458/43 796/1176/43 +f 785/1333/44 774/1459/50 786/1178/50 +f 792/1334/46 781/1460/47 793/1181/47 +f 789/1184/49 778/1461/52 790/1185/52 +f 786/1336/50 775/1462/41 787/1187/41 +f 793/1190/47 782/1463/48 794/1191/48 +f 790/1338/52 779/1464/45 791/1193/45 +f 787/1160/41 776/1465/42 788/1161/42 +f 794/1328/48 783/1466/51 795/1163/51 +f 796/1329/43 773/1467/44 785/1166/44 +f 815/1468/58 802/1192/57 803/1194/58 +f 811/1469/54 800/1159/61 812/1470/61 +f 818/1471/63 807/1164/56 819/1472/56 +f 820/1473/55 797/1167/62 809/1474/62 +f 815/1468/58 804/1168/59 816/1475/59 +f 813/1476/64 800/1171/61 801/1173/64 +f 819/1472/56 808/1174/55 820/1473/55 +f 809/1474/62 798/1179/53 810/1477/53 +f 817/1478/60 804/1180/59 805/1182/60 +f 814/1479/57 801/1335/64 802/1183/57 +f 810/1477/53 799/1188/54 811/1469/54 +f 817/1480/60 806/1189/63 818/1471/63 +f 839/1208/44 828/1481/50 840/1209/50 +f 836/1352/48 825/1482/51 837/1211/51 +f 843/1353/49 832/1483/52 844/1214/52 +f 833/1354/45 822/1484/46 834/1217/46 +f 840/1355/50 829/1485/41 841/1220/41 +f 837/1223/51 826/1486/43 838/1224/43 +f 834/1357/46 823/1487/47 835/1226/47 +f 841/1229/41 830/1488/42 842/1230/42 +f 838/1359/43 827/1489/44 839/1232/44 +f 835/1199/47 824/1490/48 836/1200/48 +f 842/1349/42 831/1491/49 843/1202/49 +f 844/1350/52 821/1492/45 833/1205/45 +f 862/1493/55 851/1233/62 863/1494/62 +f 859/1495/60 848/1198/63 860/1496/63 +f 867/1497/64 854/1201/61 855/1203/64 +f 857/1498/58 856/1204/57 845/1206/58 +f 863/1494/62 852/1207/53 864/1499/53 +f 860/1496/63 849/1212/56 861/1500/56 +f 867/1497/64 856/1215/57 868/1501/57 +f 857/1498/58 846/1218/59 858/1502/59 +f 864/1499/53 853/1221/54 865/1503/54 +f 862/1493/55 849/1356/56 850/1222/55 +f 858/1502/59 847/1227/60 859/1495/60 +f 866/1504/61 853/1358/54 854/1228/61 +f 599/1246/41 587/1505/41 588/1360/42 +f 596/1247/43 584/1506/43 585/1361/44 +f 603/1248/45 591/1507/45 592/1362/46 +f 593/1249/47 581/1508/47 582/1363/48 +f 600/1250/42 588/1509/42 589/1364/49 +f 597/1251/44 585/1510/44 586/1365/50 +f 594/1252/48 582/1511/48 583/1366/51 +f 601/1034/49 589/1512/49 590/1367/52 +f 598/1037/50 586/1513/50 587/1368/41 +f 595/1004/51 583/1514/51 584/1369/43 +f 602/1244/52 590/1515/52 591/1370/45 +f 604/1010/46 592/1516/46 581/1371/47 +f 622/1372/53 610/1254/53 611/1036/54 +f 620/1374/55 619/1383/56 607/1243/56 +f 626/1375/57 614/1006/57 615/1008/58 +f 628/1377/59 616/1245/59 605/1009/60 +f 623/1373/54 611/1012/54 612/1014/61 +f 620/1374/55 608/1015/55 609/1017/62 +f 627/1376/58 615/1018/58 616/1020/59 +f 617/1378/60 605/1021/60 606/1023/63 +f 624/1379/61 612/1024/61 613/1026/64 +f 621/1380/62 609/1027/62 610/1029/53 +f 618/1381/63 606/1030/63 607/1032/56 +f 626/1375/57 625/1517/64 613/1253/64 +f 647/1267/47 635/1518/47 636/1384/48 +f 644/1268/52 632/1519/52 633/1385/45 +f 651/1269/44 639/1520/44 640/1386/50 +f 641/1270/41 629/1521/41 630/1387/42 +f 648/1271/48 636/1522/48 637/1388/51 +f 645/1272/45 633/1523/45 634/1389/46 +f 642/1273/42 630/1524/42 631/1390/49 +f 649/1073/51 637/1525/51 638/1391/43 +f 646/1076/46 634/1526/46 635/1392/47 +f 643/1043/49 631/1527/49 632/1393/52 +f 650/1265/43 638/1528/43 639/1394/44 +f 652/1049/50 640/1529/50 629/1395/41 +f 671/1396/60 670/1406/59 658/1275/59 +f 667/1397/64 655/1264/64 656/1042/57 +f 675/1399/62 674/1407/55 662/1045/55 +f 665/1400/54 676/1403/53 664/1266/53 +f 671/1396/60 659/1051/60 660/1053/63 +f 668/1398/57 656/1054/57 657/1056/58 +f 675/1399/62 663/1057/62 664/1059/53 +f 666/1404/61 665/1400/54 653/1060/54 +f 672/1401/63 660/1063/63 661/1065/56 +f 669/1402/58 657/1066/58 658/1068/59 +f 666/1404/61 654/1069/61 655/1071/64 +f 674/1407/55 673/1530/56 661/1274/56 +f 695/1091/49 683/1531/49 684/1408/52 +f 692/1094/50 680/1532/50 681/1409/41 +f 699/1290/47 687/1533/47 688/1410/48 +f 689/1291/51 677/1534/51 678/1411/43 +f 696/1292/52 684/1535/52 685/1412/45 +f 693/1106/41 681/1536/41 682/1413/42 +f 690/1294/43 678/1537/43 679/1414/44 +f 697/1112/45 685/1538/45 686/1415/46 +f 694/1296/42 682/1539/42 683/1416/49 +f 691/1082/44 679/1540/44 680/1417/50 +f 698/1286/46 686/1541/46 687/1418/47 +f 700/1287/48 688/1542/48 677/1419/51 +f 718/1420/61 706/1114/61 707/1116/64 +f 715/1422/62 703/1285/62 704/1081/53 +f 722/1424/59 710/1084/59 711/1086/60 +f 724/1426/63 712/1087/63 701/1089/56 +f 719/1421/64 707/1288/64 708/1090/57 +f 716/1423/53 704/1289/53 705/1093/54 +f 724/1426/63 723/1425/60 711/1096/60 +f 713/1427/56 701/1099/56 702/1101/55 +f 720/1428/57 708/1102/57 709/1104/58 +f 718/1420/61 717/1429/54 705/1293/54 +f 714/1430/55 702/1108/55 703/1110/62 +f 722/1424/59 721/1543/58 709/1295/58 +f 743/1130/51 731/1544/51 732/1432/43 +f 740/1133/46 728/1545/46 729/1433/47 +f 747/1136/41 735/1546/41 736/1434/42 +f 737/1312/49 725/1547/49 726/1435/52 +f 744/1313/43 732/1548/43 733/1436/44 +f 741/1145/47 729/1549/47 730/1437/48 +f 738/1315/52 726/1550/52 727/1438/45 +f 745/1151/44 733/1551/44 734/1439/50 +f 742/1317/48 730/1552/48 731/1440/51 +f 739/1121/45 727/1553/45 728/1441/46 +f 746/1307/50 734/1554/50 735/1442/41 +f 748/1308/42 736/1555/42 725/1443/49 +f 767/1444/56 766/1454/63 754/1153/63 +f 764/1445/59 763/1455/58 751/1306/58 +f 770/1446/53 758/1123/53 759/1125/54 +f 772/1448/61 760/1126/61 749/1128/64 +f 767/1444/56 755/1309/56 756/1129/55 +f 764/1445/59 752/1310/59 753/1132/60 +f 771/1447/54 759/1311/54 760/1135/61 +f 761/1449/64 749/1138/64 750/1140/57 +f 768/1450/55 756/1141/55 757/1143/62 +f 765/1451/60 753/1314/60 754/1144/63 +f 762/1452/57 750/1147/57 751/1149/58 +f 770/1446/53 769/1556/62 757/1316/62 +f 791/1169/45 779/1557/45 780/1456/46 +f 788/1331/42 776/1558/42 777/1457/49 +f 795/1175/51 783/1559/51 784/1458/43 +f 785/1333/44 773/1560/44 774/1459/50 +f 792/1334/46 780/1561/46 781/1460/47 +f 789/1184/49 777/1562/49 778/1461/52 +f 786/1336/50 774/1563/50 775/1462/41 +f 793/1190/47 781/1564/47 782/1463/48 +f 790/1338/52 778/1565/52 779/1464/45 +f 787/1160/41 775/1566/41 776/1465/42 +f 794/1328/48 782/1567/48 783/1466/51 +f 796/1329/43 784/1568/43 773/1467/44 +f 815/1468/58 814/1479/57 802/1192/57 +f 811/1469/54 799/1327/54 800/1159/61 +f 818/1471/63 806/1162/63 807/1164/56 +f 820/1473/55 808/1165/55 797/1167/62 +f 815/1468/58 803/1330/58 804/1168/59 +f 813/1476/64 812/1470/61 800/1171/61 +f 819/1472/56 807/1332/56 808/1174/55 +f 809/1474/62 797/1177/62 798/1179/53 +f 817/1478/60 816/1475/59 804/1180/59 +f 814/1479/57 813/1476/64 801/1335/64 +f 810/1477/53 798/1186/53 799/1188/54 +f 817/1480/60 805/1337/60 806/1189/63 +f 839/1208/44 827/1569/44 828/1481/50 +f 836/1352/48 824/1570/48 825/1482/51 +f 843/1353/49 831/1571/49 832/1483/52 +f 833/1354/45 821/1572/45 822/1484/46 +f 840/1355/50 828/1573/50 829/1485/41 +f 837/1223/51 825/1574/51 826/1486/43 +f 834/1357/46 822/1575/46 823/1487/47 +f 841/1229/41 829/1576/41 830/1488/42 +f 838/1359/43 826/1577/43 827/1489/44 +f 835/1199/47 823/1578/47 824/1490/48 +f 842/1349/42 830/1579/42 831/1491/49 +f 844/1350/52 832/1580/52 821/1492/45 +f 862/1493/55 850/1231/55 851/1233/62 +f 859/1495/60 847/1348/60 848/1198/63 +f 867/1497/64 866/1504/61 854/1201/61 +f 857/1498/58 868/1501/57 856/1204/57 +f 863/1494/62 851/1351/62 852/1207/53 +f 860/1496/63 848/1210/63 849/1212/56 +f 867/1497/64 855/1213/64 856/1215/57 +f 857/1498/58 845/1216/58 846/1218/59 +f 864/1499/53 852/1219/53 853/1221/54 +f 862/1493/55 861/1500/56 849/1356/56 +f 858/1502/59 846/1225/59 847/1227/60 +f 866/1504/61 865/1581/54 853/1358/54 +o Hammer +v 4.000000 2.687500 0.250000 +v 4.000000 2.687500 -0.250000 +v 3.250000 2.687500 0.250000 +v 3.250000 2.687500 -0.250000 +v 4.125000 2.187500 0.250000 +v 4.125000 2.187500 -0.250000 +v 4.562500 2.437500 0.250000 +v 4.562500 2.437500 -0.250000 +v 4.812500 2.437500 0.375000 +v 4.812500 2.437500 -0.375000 +v 5.062500 2.437500 0.375000 +v 5.062500 2.437500 -0.375000 +v 5.312500 2.437500 0.250000 +v 5.312500 2.437500 -0.250000 +v 4.562500 2.312500 0.250000 +v 4.562500 2.312500 -0.250000 +v 4.812500 2.312500 0.375000 +v 4.812500 2.312500 -0.375000 +v 5.062500 2.312500 0.375000 +v 5.062500 2.312500 -0.375000 +v 5.312500 2.312500 0.250000 +v 5.312500 2.312500 -0.250000 +v 4.312500 2.187500 0.250000 +v 4.312500 2.187500 -0.250000 +v 4.812500 1.812500 0.250000 +v 4.812500 1.812500 -0.250000 +v 4.812500 1.562500 0.250000 +v 4.812500 1.562500 -0.250000 +v 3.250000 2.437500 0.250000 +v 3.250000 2.437500 -0.250000 +v 3.750000 2.437500 0.250000 +v 3.750000 2.437500 -0.250000 +v 4.000000 1.687500 0.250000 +v 4.000000 1.687500 -0.250000 +vt 0.370504 0.905263 +vt 0.392086 0.863158 +vt 0.392086 0.905263 +vt 0.406475 0.863158 +vt 0.287770 0.484211 +vt 0.273381 0.526316 +vt 0.273381 0.484211 +vt 0.294964 0.473684 +vt 0.287770 0.526316 +vt 0.302158 0.473684 +vt 0.294964 0.536842 +vt 0.309353 0.484211 +vt 0.302158 0.536842 +vt 0.287770 0.463158 +vt 0.287770 0.473684 +vt 0.309353 0.547368 +vt 0.309353 0.536842 +vt 0.312950 0.484211 +vt 0.309353 0.526316 +vt 0.294964 0.463158 +vt 0.294964 0.547368 +vt 0.287770 0.536842 +vt 0.302158 0.463158 +vt 0.309353 0.473684 +vt 0.302158 0.547368 +vt 0.320144 0.536842 +vt 0.312950 0.526316 +vt 0.327338 0.473684 +vt 0.320144 0.473684 +vt 0.334532 0.484211 +vt 0.327338 0.536842 +vt 0.341727 0.526316 +vt 0.334532 0.526316 +vt 0.273381 0.547368 +vt 0.291367 0.589474 +vt 0.273381 0.589474 +vt 0.291367 0.547368 +vt 0.298561 0.589474 +vt 0.363309 0.863158 +vt 0.370504 0.863158 +vt 0.363309 0.905263 +vt 0.348921 0.863158 +vt 0.348921 0.905263 +vt 0.327338 0.863158 +vt 0.384892 0.926316 +vt 0.384892 0.842105 +vt 0.395683 0.947368 +vt 0.395683 0.821053 +vt 0.276978 0.463158 +vt 0.276978 0.473684 +vt 0.276978 0.547368 +vt 0.276978 0.536842 +vt 0.392086 0.989474 +vt 0.402878 0.947368 +vt 0.392086 0.778947 +vt 0.420863 0.768421 +vt 0.420863 0.789474 +vt 0.406475 0.905263 +vt 0.287770 0.547368 +vt 0.309353 0.463158 +vt 0.341727 0.484211 +vt 0.298561 0.547368 +vt 0.327338 0.905263 +vt 0.370504 0.926316 +vt 0.370504 0.842105 +vt 0.420863 0.978947 +vt 0.420863 1.000000 +vt 0.402878 0.821053 +vn 0.0000 1.0000 0.0000 +vn 0.9701 0.2425 0.0000 +vn -0.4961 0.8682 0.0000 +vn -0.4472 0.0000 0.8944 +vn 0.4472 0.0000 -0.8944 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.4472 0.0000 -0.8944 +vn 0.4472 0.0000 0.8944 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.4472 -0.8944 0.0000 +vn 0.6000 0.8000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9487 -0.3162 0.0000 +s off +f 872/1582/65 869/1583/65 870/1584/65 +f 873/1585/66 870/1584/66 869/1583/66 +f 875/1586/67 874/1587/67 873/1588/67 +f 877/1589/65 876/1590/65 875/1586/65 +f 879/1591/65 878/1592/65 877/1589/65 +f 881/1593/65 880/1594/65 879/1591/65 +f 883/1595/68 877/1589/68 875/1596/68 +f 890/1597/69 880/1594/69 882/1598/69 +f 889/1599/70 882/1600/70 881/1593/70 +f 885/1601/71 879/1591/71 877/1589/71 +f 886/1602/72 876/1603/72 878/1592/72 +f 887/1604/73 881/1605/73 879/1591/73 +f 888/1606/74 878/1592/74 880/1594/74 +f 889/1599/75 888/1607/75 890/1608/75 +f 885/1609/75 888/1607/75 887/1610/75 +f 883/1611/75 886/1612/75 885/1609/75 +f 883/1611/76 892/1613/76 884/1614/76 +f 891/1615/77 894/1616/77 892/1617/77 +f 893/1618/70 896/1619/70 894/1616/70 +f 872/1582/78 897/1620/78 871/1621/78 +f 898/1622/75 899/1623/75 897/1620/75 +f 900/1624/79 901/1625/79 899/1623/79 +f 900/1626/74 872/1582/74 870/1584/74 +f 871/1621/71 899/1627/71 869/1583/71 +f 874/1628/74 900/1626/74 870/1584/74 +f 899/1627/71 873/1629/71 869/1583/71 +f 891/1630/71 875/1596/71 873/1631/71 +f 876/1603/74 892/1632/74 874/1633/74 +f 902/1634/74 874/1628/74 892/1635/74 +f 901/1636/71 895/1637/71 893/1638/71 +f 872/1582/65 871/1621/65 869/1583/65 +f 873/1585/66 874/1639/66 870/1584/66 +f 875/1586/67 876/1590/67 874/1587/67 +f 877/1589/65 878/1592/65 876/1590/65 +f 879/1591/65 880/1594/65 878/1592/65 +f 881/1593/65 882/1600/65 880/1594/65 +f 883/1595/68 885/1601/68 877/1589/68 +f 890/1597/69 888/1606/69 880/1594/69 +f 889/1599/70 890/1608/70 882/1600/70 +f 885/1601/71 887/1604/71 879/1591/71 +f 886/1602/72 884/1640/72 876/1603/72 +f 887/1604/73 889/1641/73 881/1605/73 +f 888/1606/74 886/1602/74 878/1592/74 +f 889/1599/75 887/1610/75 888/1607/75 +f 885/1609/75 886/1612/75 888/1607/75 +f 883/1611/75 884/1614/75 886/1612/75 +f 883/1611/76 891/1642/76 892/1613/76 +f 891/1615/77 893/1618/77 894/1616/77 +f 893/1618/70 895/1643/70 896/1619/70 +f 872/1582/78 898/1622/78 897/1620/78 +f 898/1622/75 900/1624/75 899/1623/75 +f 900/1624/79 902/1644/79 901/1625/79 +f 900/1626/74 898/1645/74 872/1582/74 +f 871/1621/71 897/1646/71 899/1627/71 +f 874/1628/74 902/1634/74 900/1626/74 +f 899/1627/71 901/1636/71 873/1629/71 +f 891/1630/71 883/1595/71 875/1596/71 +f 876/1603/74 884/1640/74 892/1632/74 +f 892/1635/74 894/1647/74 902/1634/74 +f 894/1647/74 896/1648/74 902/1634/74 +f 893/1638/71 891/1649/71 901/1636/71 +f 891/1649/71 873/1629/71 901/1636/71 +o Cylinder +v 2.437500 1.750000 -1.187500 +v 2.437500 2.343750 -1.028405 +v 2.437500 2.778405 -0.593750 +v 2.437500 2.937500 0.000000 +v 2.437500 2.778405 0.593750 +v 2.437500 2.343750 1.028405 +v 2.437500 1.750000 1.187500 +v 2.437500 1.156250 1.028405 +v 2.437500 0.721595 0.593750 +v 2.437500 0.562500 0.000001 +v 2.437500 0.721594 -0.593749 +v 2.437500 1.156249 -1.028404 +v 0.062500 1.750000 -1.187500 +v 0.062500 2.343750 -1.028405 +v 0.062500 2.778405 -0.593750 +v 0.062500 2.937500 0.000000 +v 0.062500 2.778405 0.593750 +v 0.062500 2.343750 1.028405 +v 0.062500 1.750000 1.187500 +v 0.062500 1.156250 1.028405 +v 0.062500 0.721595 0.593750 +v 0.062500 0.562500 0.000001 +v 0.062500 0.721594 -0.593749 +v 0.062500 1.156249 -1.028404 +v 0.062500 2.500000 -0.328125 +v 0.062500 2.335938 -0.284164 +v 0.062500 2.215835 -0.164062 +v 0.062500 2.171875 0.000000 +v 0.062500 2.215835 0.164062 +v 0.062500 2.335938 0.284164 +v 0.062500 2.500000 0.328125 +v 0.062500 2.664062 0.284164 +v 0.062500 2.784164 0.164062 +v 0.062500 2.828125 0.000000 +v 0.062500 2.784165 -0.164062 +v 0.062500 2.664063 -0.284164 +v 2.437500 2.500000 -0.328125 +v 2.437500 2.335938 -0.284164 +v 2.437500 2.215835 -0.164062 +v 2.437500 2.171875 0.000000 +v 2.437500 2.215835 0.164062 +v 2.437500 2.335938 0.284164 +v 2.437500 2.500000 0.328125 +v 2.437500 2.664062 0.284164 +v 2.437500 2.784164 0.164062 +v 2.437500 2.828125 0.000000 +v 2.437500 2.784165 -0.164062 +v 2.437500 2.664063 -0.284164 +v 0.062500 1.000000 0.328126 +v 0.062500 1.164062 0.284165 +v 0.062500 1.284165 0.164063 +v 0.062500 1.328125 0.000001 +v 0.062500 1.284165 -0.164062 +v 0.062500 1.164063 -0.284164 +v 0.062500 1.000000 -0.328124 +v 0.062500 0.835938 -0.284164 +v 0.062500 0.715836 -0.164062 +v 0.062500 0.671875 0.000000 +v 0.062500 0.715835 0.164063 +v 0.062500 0.835937 0.284165 +v 2.437500 1.000000 0.328126 +v 2.437500 1.164062 0.284165 +v 2.437500 1.284165 0.164063 +v 2.437500 1.328125 0.000001 +v 2.437500 1.284165 -0.164062 +v 2.437500 1.164063 -0.284164 +v 2.437500 1.000000 -0.328124 +v 2.437500 0.835938 -0.284164 +v 2.437500 0.715836 -0.164062 +v 2.437500 0.671875 0.000000 +v 2.437500 0.715835 0.164063 +v 2.437500 0.835937 0.284165 +v 0.062500 2.409165 0.485456 +v 0.062500 2.289063 0.365355 +v 0.062500 2.125000 0.321394 +v 0.062500 1.960938 0.365355 +v 0.062500 1.840836 0.485456 +v 0.062500 1.796875 0.649519 +v 0.062500 1.840836 0.813581 +v 0.062500 1.960938 0.933684 +v 0.062500 2.125000 0.977644 +v 0.062500 2.289063 0.933684 +v 0.062500 2.409165 0.813582 +v 0.062500 2.453125 0.649519 +v 2.437500 2.409165 0.485456 +v 2.437500 2.289063 0.365355 +v 2.437500 2.125000 0.321394 +v 2.437500 1.960938 0.365355 +v 2.437500 1.840836 0.485456 +v 2.437500 1.796875 0.649519 +v 2.437500 1.840836 0.813581 +v 2.437500 1.960938 0.933684 +v 2.437500 2.125000 0.977644 +v 2.437500 2.289063 0.933684 +v 2.437500 2.409165 0.813582 +v 2.437500 2.453125 0.649519 +v 0.062500 1.090835 -0.485456 +v 0.062500 1.210937 -0.365354 +v 0.062500 1.375000 -0.321393 +v 0.062500 1.539062 -0.365354 +v 0.062500 1.659164 -0.485456 +v 0.062500 1.703125 -0.649518 +v 0.062500 1.659164 -0.813581 +v 0.062500 1.539062 -0.933683 +v 0.062500 1.375000 -0.977643 +v 0.062500 1.210938 -0.933683 +v 0.062500 1.090835 -0.813581 +v 0.062500 1.046875 -0.649519 +v 2.437500 1.090835 -0.485456 +v 2.437500 1.210937 -0.365354 +v 2.437500 1.375000 -0.321393 +v 2.437500 1.539062 -0.365354 +v 2.437500 1.659164 -0.485456 +v 2.437500 1.703125 -0.649518 +v 2.437500 1.659164 -0.813581 +v 2.437500 1.539062 -0.933683 +v 2.437500 1.375000 -0.977643 +v 2.437500 1.210938 -0.933683 +v 2.437500 1.090835 -0.813581 +v 2.437500 1.046875 -0.649519 +v 0.062500 1.659165 0.813582 +v 0.062500 1.703125 0.649520 +v 0.062500 1.659165 0.485457 +v 0.062500 1.539063 0.365355 +v 0.062500 1.375000 0.321394 +v 0.062500 1.210938 0.365355 +v 0.062500 1.090836 0.485457 +v 0.062500 1.046875 0.649519 +v 0.062500 1.090836 0.813582 +v 0.062500 1.210938 0.933684 +v 0.062500 1.375000 0.977644 +v 0.062500 1.539062 0.933684 +v 2.437500 1.659165 0.813582 +v 2.437500 1.703125 0.649520 +v 2.437500 1.659165 0.485457 +v 2.437500 1.539063 0.365355 +v 2.437500 1.375000 0.321394 +v 2.437500 1.210938 0.365355 +v 2.437500 1.090836 0.485457 +v 2.437500 1.046875 0.649519 +v 2.437500 1.090836 0.813582 +v 2.437500 1.210938 0.933684 +v 2.437500 1.375000 0.977644 +v 2.437500 1.539062 0.933684 +v 0.062500 1.840835 -0.813581 +v 0.062500 1.796875 -0.649519 +v 0.062500 1.840835 -0.485456 +v 0.062500 1.960937 -0.365355 +v 0.062500 2.125000 -0.321394 +v 0.062500 2.289062 -0.365354 +v 0.062500 2.409164 -0.485456 +v 0.062500 2.453125 -0.649518 +v 0.062500 2.409164 -0.813581 +v 0.062500 2.289062 -0.933683 +v 0.062500 2.125000 -0.977644 +v 0.062500 1.960938 -0.933683 +v 2.437500 1.840835 -0.813581 +v 2.437500 1.796875 -0.649519 +v 2.437500 1.840835 -0.485456 +v 2.437500 1.960937 -0.365355 +v 2.437500 2.125000 -0.321394 +v 2.437500 2.289062 -0.365354 +v 2.437500 2.409164 -0.485456 +v 2.437500 2.453125 -0.649518 +v 2.437500 2.409164 -0.813581 +v 2.437500 2.289062 -0.933683 +v 2.437500 2.125000 -0.977644 +v 2.437500 1.960938 -0.933683 +vt 0.365512 0.481693 +vt 0.371235 0.475600 +vt 0.367820 0.485593 +vt 0.386287 0.481693 +vt 0.385229 0.499243 +vt 0.383979 0.485593 +vt 0.394366 0.432942 +vt 0.399031 0.444400 +vt 0.394366 0.440742 +vt 0.386287 0.391992 +vt 0.380564 0.398084 +vt 0.383979 0.388092 +vt 0.365512 0.391992 +vt 0.366570 0.374441 +vt 0.367820 0.388092 +vt 0.357432 0.440742 +vt 0.352768 0.429284 +vt 0.357432 0.432942 +vt 0.375899 0.401742 +vt 0.386287 0.419292 +vt 0.375899 0.471942 +vt 0.349353 0.419292 +vt 0.342136 0.436842 +vt 0.362097 0.381999 +vt 0.357432 0.378341 +vt 0.359018 0.351278 +vt 0.385229 0.374441 +vt 0.383979 0.360791 +vt 0.392781 0.351278 +vt 0.399031 0.429285 +vt 0.402446 0.419292 +vt 0.409662 0.436842 +vt 0.389702 0.491685 +vt 0.394366 0.495343 +vt 0.392781 0.522406 +vt 0.366570 0.499243 +vt 0.367820 0.512893 +vt 0.359018 0.522406 +vt 0.433857 0.481693 +vt 0.435107 0.468042 +vt 0.436165 0.485593 +vt 0.454632 0.481693 +vt 0.458047 0.491685 +vt 0.452324 0.485593 +vt 0.462712 0.440742 +vt 0.458047 0.444400 +vt 0.462712 0.432942 +vt 0.454632 0.391992 +vt 0.453383 0.405642 +vt 0.452324 0.388092 +vt 0.433857 0.391992 +vt 0.430442 0.381999 +vt 0.436165 0.388092 +vt 0.425778 0.432942 +vt 0.430442 0.429285 +vt 0.425778 0.440742 +vt 0.454632 0.419292 +vt 0.454632 0.454392 +vt 0.433857 0.419292 +vt 0.417698 0.419292 +vt 0.421113 0.429285 +vt 0.410482 0.436842 +vt 0.436165 0.360791 +vt 0.434915 0.374441 +vt 0.427363 0.351278 +vt 0.462712 0.378341 +vt 0.458047 0.381999 +vt 0.461126 0.351278 +vt 0.467376 0.429284 +vt 0.470791 0.419292 +vt 0.478008 0.436842 +vt 0.452324 0.512893 +vt 0.453574 0.499243 +vt 0.461126 0.522406 +vt 0.425778 0.495343 +vt 0.430442 0.491685 +vt 0.427363 0.522406 +vt 0.362097 0.491685 +vt 0.366761 0.468042 +vt 0.380564 0.475600 +vt 0.385037 0.468042 +vt 0.389702 0.444400 +vt 0.389702 0.429285 +vt 0.389702 0.381999 +vt 0.385037 0.405642 +vt 0.371235 0.398084 +vt 0.366761 0.405642 +vt 0.362097 0.429284 +vt 0.362097 0.444400 +vt 0.352768 0.444400 +vt 0.365512 0.454392 +vt 0.386287 0.454392 +vt 0.365512 0.419292 +vt 0.349353 0.481693 +vt 0.346660 0.486243 +vt 0.348103 0.468042 +vt 0.346660 0.387441 +vt 0.348103 0.405642 +vt 0.349353 0.391992 +vt 0.349353 0.454392 +vt 0.375899 0.338041 +vt 0.371235 0.350799 +vt 0.375899 0.347141 +vt 0.352768 0.381999 +vt 0.367820 0.360791 +vt 0.405139 0.387442 +vt 0.399031 0.381999 +vt 0.402446 0.391992 +vt 0.380564 0.350799 +vt 0.394366 0.378341 +vt 0.405139 0.486243 +vt 0.403696 0.468042 +vt 0.402446 0.481693 +vt 0.403696 0.405642 +vt 0.402446 0.454392 +vt 0.375899 0.535643 +vt 0.380564 0.522886 +vt 0.375899 0.526543 +vt 0.399031 0.491685 +vt 0.383979 0.512893 +vt 0.352768 0.491685 +vt 0.371235 0.522886 +vt 0.357432 0.495343 +vt 0.439580 0.475600 +vt 0.434915 0.499243 +vt 0.448909 0.475600 +vt 0.453383 0.468042 +vt 0.458047 0.429284 +vt 0.467376 0.444400 +vt 0.448909 0.398084 +vt 0.453574 0.374441 +vt 0.439580 0.398084 +vt 0.435107 0.405642 +vt 0.430442 0.444400 +vt 0.421113 0.444400 +vt 0.444245 0.471942 +vt 0.433857 0.454392 +vt 0.444245 0.401742 +vt 0.417698 0.481693 +vt 0.415005 0.486243 +vt 0.416448 0.468042 +vt 0.415005 0.387442 +vt 0.416448 0.405642 +vt 0.417698 0.391992 +vt 0.417698 0.454392 +vt 0.421113 0.381999 +vt 0.444245 0.338041 +vt 0.439580 0.350799 +vt 0.444245 0.347141 +vt 0.425778 0.378341 +vt 0.448909 0.350799 +vt 0.473484 0.387441 +vt 0.467376 0.381999 +vt 0.470791 0.391992 +vt 0.452324 0.360791 +vt 0.473484 0.486243 +vt 0.472041 0.468042 +vt 0.470791 0.481693 +vt 0.472041 0.405642 +vt 0.470791 0.454392 +vt 0.467376 0.491685 +vt 0.444245 0.535643 +vt 0.448909 0.522886 +vt 0.444245 0.526543 +vt 0.462712 0.495343 +vt 0.439580 0.522886 +vt 0.421113 0.491685 +vt 0.436165 0.512893 +vt 0.517986 0.157895 +vt 0.586331 0.105263 +vt 0.586331 0.157895 +vt 0.517986 0.315789 +vt 0.586331 0.263158 +vt 0.586331 0.315789 +vt 0.517986 0.578947 +vt 0.586331 0.526316 +vt 0.586331 0.578947 +vt 0.517986 0.473684 +vt 0.586331 0.421053 +vt 0.586331 0.473684 +vt 0.517986 0.105263 +vt 0.586331 0.052632 +vt 0.517986 0.263158 +vt 0.586331 0.210526 +vt 0.517986 0.526316 +vt 0.517986 0.421053 +vt 0.586331 0.368421 +vt 0.517986 0.052632 +vt 0.586331 0.000000 +vt 0.517986 0.210526 +vt 0.517986 0.368421 +vt 0.517986 0.631579 +vt 0.586331 0.631579 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.517986 0.000000 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -1.0000 0.0000 +s off +f 1052/1650/80 929/1651/80 928/1652/80 +f 976/1653/80 933/1654/80 932/1655/80 +f 1024/1656/80 981/1657/80 980/1658/80 +f 1028/1659/80 953/1660/80 952/1661/80 +f 1000/1662/80 957/1663/80 956/1664/80 +f 1048/1665/80 1005/1666/80 1004/1667/80 +f 954/1668/80 1026/1669/80 930/1670/80 +f 1006/1671/80 1005/1666/80 915/1672/80 +f 999/1673/80 1010/1674/80 925/1675/80 +f 951/1676/80 962/1677/80 923/1678/80 +f 1023/1679/80 1034/1680/80 921/1681/80 +f 975/1682/80 986/1683/80 919/1684/80 +f 927/1685/80 938/1686/80 917/1687/80 +f 988/1688/81 989/1689/81 944/1690/81 +f 1064/1691/81 1065/1692/81 940/1693/81 +f 1060/1694/81 1061/1695/81 1016/1696/81 +f 1012/1697/81 1013/1698/81 968/1699/81 +f 1040/1700/81 1041/1701/81 964/1702/81 +f 1036/1703/81 1037/1704/81 992/1705/81 +f 1014/1706/81 1062/1707/81 1038/1708/81 +f 1046/1709/81 1035/1710/81 909/1711/81 +f 974/1712/81 963/1713/81 911/1714/81 +f 1022/1715/81 1011/1716/81 913/1717/81 +f 1017/1718/81 1018/1719/81 903/1720/81 +f 950/1721/81 939/1722/81 905/1723/81 +f 998/1724/81 987/1725/81 907/1726/81 +f 928/1652/80 927/1685/80 1053/1727/80 +f 1052/1650/80 1051/1728/80 929/1651/80 +f 928/1652/80 1053/1727/80 1052/1650/80 +f 932/1655/80 931/1729/80 977/1730/80 +f 976/1653/80 975/1682/80 933/1654/80 +f 932/1655/80 977/1730/80 976/1653/80 +f 980/1658/80 979/1731/80 1025/1732/80 +f 1024/1656/80 1023/1679/80 981/1657/80 +f 980/1658/80 1025/1732/80 1024/1656/80 +f 952/1661/80 951/1676/80 1029/1733/80 +f 1028/1659/80 1027/1734/80 953/1660/80 +f 952/1661/80 1029/1733/80 1028/1659/80 +f 956/1664/80 955/1735/80 1001/1736/80 +f 1000/1662/80 999/1673/80 957/1663/80 +f 956/1664/80 1001/1736/80 1000/1662/80 +f 1004/1667/80 1003/1737/80 1049/1738/80 +f 1048/1665/80 1047/1739/80 1005/1666/80 +f 1004/1667/80 1049/1738/80 1048/1665/80 +f 930/1670/80 929/1651/80 1051/1728/80 +f 1050/1740/80 1049/1738/80 1003/1737/80 +f 930/1670/80 1051/1728/80 1050/1740/80 +f 977/1730/80 931/1729/80 978/1741/80 +f 931/1729/80 930/1670/80 978/1741/80 +f 1025/1732/80 979/1731/80 978/1741/80 +f 930/1670/80 1050/1740/80 1002/1742/80 +f 1050/1740/80 1003/1737/80 1002/1742/80 +f 1002/1742/80 1001/1736/80 955/1735/80 +f 1025/1732/80 978/1741/80 1026/1669/80 +f 978/1741/80 930/1670/80 1026/1669/80 +f 953/1660/80 1027/1734/80 954/1668/80 +f 1027/1734/80 1026/1669/80 954/1668/80 +f 930/1670/80 1002/1742/80 954/1668/80 +f 1002/1742/80 955/1735/80 954/1668/80 +f 1056/1743/80 916/1744/80 1057/1745/80 +f 916/1744/80 915/1672/80 1057/1745/80 +f 915/1672/80 926/1746/80 1007/1747/80 +f 926/1746/80 1008/1748/80 1007/1747/80 +f 1005/1666/80 1047/1739/80 915/1672/80 +f 1047/1739/80 1058/1749/80 915/1672/80 +f 1058/1749/80 1057/1745/80 915/1672/80 +f 915/1672/80 1007/1747/80 1006/1671/80 +f 925/1675/80 924/1750/80 959/1751/80 +f 924/1750/80 960/1752/80 959/1751/80 +f 1008/1748/80 926/1746/80 1009/1753/80 +f 926/1746/80 925/1675/80 1009/1753/80 +f 925/1675/80 959/1751/80 958/1754/80 +f 958/1754/80 957/1663/80 925/1675/80 +f 957/1663/80 999/1673/80 925/1675/80 +f 1010/1674/80 1009/1753/80 925/1675/80 +f 923/1678/80 922/1755/80 1031/1756/80 +f 922/1755/80 1032/1757/80 1031/1756/80 +f 960/1752/80 924/1750/80 961/1758/80 +f 924/1750/80 923/1678/80 961/1758/80 +f 923/1678/80 1031/1756/80 1030/1759/80 +f 1030/1759/80 1029/1733/80 923/1678/80 +f 1029/1733/80 951/1676/80 923/1678/80 +f 962/1677/80 961/1758/80 923/1678/80 +f 921/1681/80 920/1760/80 983/1761/80 +f 920/1760/80 984/1762/80 983/1761/80 +f 1032/1757/80 922/1755/80 1033/1763/80 +f 922/1755/80 921/1681/80 1033/1763/80 +f 921/1681/80 983/1761/80 982/1764/80 +f 982/1764/80 981/1657/80 921/1681/80 +f 981/1657/80 1023/1679/80 921/1681/80 +f 1034/1680/80 1033/1763/80 921/1681/80 +f 919/1684/80 918/1765/80 935/1766/80 +f 918/1765/80 936/1767/80 935/1766/80 +f 984/1762/80 920/1760/80 985/1768/80 +f 920/1760/80 919/1684/80 985/1768/80 +f 919/1684/80 935/1766/80 934/1769/80 +f 934/1769/80 933/1654/80 919/1684/80 +f 933/1654/80 975/1682/80 919/1684/80 +f 986/1683/80 985/1768/80 919/1684/80 +f 917/1687/80 916/1744/80 1055/1770/80 +f 916/1744/80 1056/1743/80 1055/1770/80 +f 936/1767/80 918/1765/80 937/1771/80 +f 918/1765/80 917/1687/80 937/1771/80 +f 917/1687/80 1055/1770/80 1054/1772/80 +f 1054/1772/80 1053/1727/80 917/1687/80 +f 1053/1727/80 927/1685/80 917/1687/80 +f 938/1686/80 937/1771/80 917/1687/80 +f 989/1689/81 943/1773/81 944/1690/81 +f 944/1690/81 945/1774/81 988/1688/81 +f 945/1774/81 987/1725/81 988/1688/81 +f 1065/1692/81 939/1722/81 940/1693/81 +f 940/1693/81 941/1775/81 1064/1691/81 +f 941/1775/81 1063/1776/81 1064/1691/81 +f 1061/1695/81 1015/1777/81 1016/1696/81 +f 1016/1696/81 1017/1718/81 1060/1694/81 +f 1017/1718/81 1059/1778/81 1060/1694/81 +f 1013/1698/81 967/1779/81 968/1699/81 +f 968/1699/81 969/1780/81 1012/1697/81 +f 969/1780/81 1011/1716/81 1012/1697/81 +f 1041/1701/81 963/1713/81 964/1702/81 +f 964/1702/81 965/1781/81 1040/1700/81 +f 965/1781/81 1039/1782/81 1040/1700/81 +f 1037/1704/81 991/1783/81 992/1705/81 +f 992/1705/81 993/1784/81 1036/1703/81 +f 993/1784/81 1035/1710/81 1036/1703/81 +f 1063/1776/81 941/1775/81 942/1785/81 +f 942/1785/81 943/1773/81 990/1786/81 +f 943/1773/81 989/1689/81 990/1786/81 +f 990/1786/81 991/1783/81 1038/1708/81 +f 991/1783/81 1037/1704/81 1038/1708/81 +f 1062/1707/81 1063/1776/81 942/1785/81 +f 1015/1777/81 1061/1695/81 1062/1707/81 +f 967/1779/81 1013/1698/81 1014/1706/81 +f 1014/1706/81 1015/1777/81 1062/1707/81 +f 1062/1707/81 942/1785/81 990/1786/81 +f 1038/1708/81 1039/1782/81 966/1787/81 +f 1039/1782/81 965/1781/81 966/1787/81 +f 966/1787/81 967/1779/81 1014/1706/81 +f 1062/1707/81 990/1786/81 1038/1708/81 +f 966/1787/81 1014/1706/81 1038/1708/81 +f 996/1788/81 908/1789/81 995/1790/81 +f 908/1789/81 909/1711/81 995/1790/81 +f 909/1711/81 910/1791/81 1045/1792/81 +f 910/1791/81 1044/1793/81 1045/1792/81 +f 1035/1710/81 993/1784/81 909/1711/81 +f 993/1784/81 994/1794/81 909/1711/81 +f 994/1794/81 995/1790/81 909/1711/81 +f 909/1711/81 1045/1792/81 1046/1709/81 +f 1044/1793/81 910/1791/81 1043/1795/81 +f 910/1791/81 911/1714/81 1043/1795/81 +f 911/1714/81 912/1796/81 973/1797/81 +f 912/1796/81 972/1798/81 973/1797/81 +f 963/1713/81 1041/1701/81 911/1714/81 +f 1041/1701/81 1042/1799/81 911/1714/81 +f 1042/1799/81 1043/1795/81 911/1714/81 +f 911/1714/81 973/1797/81 974/1712/81 +f 972/1798/81 912/1796/81 971/1800/81 +f 912/1796/81 913/1717/81 971/1800/81 +f 913/1717/81 914/1801/81 1021/1802/81 +f 914/1801/81 1020/1803/81 1021/1802/81 +f 1011/1716/81 969/1780/81 913/1717/81 +f 969/1780/81 970/1804/81 913/1717/81 +f 970/1804/81 971/1800/81 913/1717/81 +f 913/1717/81 1021/1802/81 1022/1715/81 +f 903/1720/81 904/1805/81 1069/1806/81 +f 904/1805/81 1068/1807/81 1069/1806/81 +f 1020/1803/81 914/1801/81 1019/1808/81 +f 914/1801/81 903/1720/81 1019/1808/81 +f 903/1720/81 1069/1806/81 1070/1809/81 +f 1070/1809/81 1059/1778/81 903/1720/81 +f 1059/1778/81 1017/1718/81 903/1720/81 +f 1018/1719/81 1019/1808/81 903/1720/81 +f 1068/1807/81 904/1805/81 1067/1810/81 +f 904/1805/81 905/1723/81 1067/1810/81 +f 905/1723/81 906/1811/81 949/1812/81 +f 906/1811/81 948/1813/81 949/1812/81 +f 939/1722/81 1065/1692/81 905/1723/81 +f 1065/1692/81 1066/1814/81 905/1723/81 +f 1066/1814/81 1067/1810/81 905/1723/81 +f 905/1723/81 949/1812/81 950/1721/81 +f 948/1813/81 906/1811/81 947/1815/81 +f 906/1811/81 907/1726/81 947/1815/81 +f 907/1726/81 908/1789/81 997/1816/81 +f 908/1789/81 996/1788/81 997/1816/81 +f 987/1725/81 945/1774/81 907/1726/81 +f 945/1774/81 946/1817/81 907/1726/81 +f 946/1817/81 947/1815/81 907/1726/81 +f 907/1726/81 997/1816/81 998/1724/81 +s 1 +f 921/1818/82 910/1819/83 909/1820/82 +f 918/1821/84 907/1822/85 906/1823/84 +f 925/1824/86 914/1825/87 913/1826/86 +f 915/1827/88 904/1828/89 903/1829/88 +f 922/1830/83 911/1831/90 910/1819/83 +f 919/1832/85 908/1833/91 907/1822/85 +f 926/1834/87 903/1829/88 914/1825/87 +f 916/1835/89 905/1836/92 904/1828/89 +f 923/1837/90 912/1838/93 911/1831/90 +f 920/1839/91 909/1820/82 908/1833/91 +f 917/1840/92 906/1823/84 905/1836/92 +f 924/1841/93 913/1826/86 912/1842/93 +f 944/1843/89 931/1844/92 932/1845/89 +f 939/1846/82 938/1847/83 927/1848/82 +f 941/1849/85 928/1850/91 929/1851/85 +f 948/1852/93 935/1853/86 936/1854/93 +f 945/1855/88 932/1845/89 933/1856/88 +f 942/1857/84 929/1851/85 930/1858/84 +f 949/1859/90 936/1854/93 937/1860/90 +f 946/1861/87 933/1856/88 934/1862/87 +f 943/1863/92 930/1864/84 931/1844/92 +f 950/1865/83 937/1860/90 938/1847/83 +f 940/1866/91 927/1848/82 928/1850/91 +f 947/1867/86 934/1862/87 935/1853/86 +f 968/1868/83 955/1869/90 956/1870/83 +f 963/1871/88 962/1872/89 951/1873/88 +f 965/1874/86 952/1875/87 953/1876/86 +f 972/1877/84 959/1878/85 960/1879/84 +f 969/1880/82 956/1870/83 957/1881/82 +f 966/1882/93 953/1876/86 954/1883/93 +f 973/1884/92 960/1879/84 961/1885/92 +f 970/1886/91 957/1881/82 958/1887/91 +f 967/1888/90 954/1889/93 955/1869/90 +f 974/1890/89 961/1885/92 962/1872/89 +f 964/1891/87 951/1873/88 952/1875/87 +f 971/1892/85 958/1887/91 959/1878/85 +f 992/1893/84 979/1894/85 980/1895/84 +f 987/1896/90 986/1897/93 975/1898/90 +f 989/1899/82 976/1900/83 977/1901/82 +f 996/1902/87 983/1903/88 984/1904/87 +f 993/1905/92 980/1895/84 981/1906/92 +f 990/1907/91 977/1901/82 978/1908/91 +f 997/1909/86 984/1904/87 985/1910/86 +f 994/1911/89 981/1906/92 982/1912/89 +f 991/1913/85 978/1914/91 979/1894/85 +f 998/1915/93 985/1910/86 986/1897/93 +f 988/1916/83 975/1898/90 976/1900/83 +f 995/1917/88 982/1912/89 983/1903/88 +f 1016/1918/93 1003/1919/86 1004/1920/93 +f 1011/1921/92 1010/1922/84 999/1923/92 +f 1013/1924/88 1000/1925/89 1001/1926/88 +f 1020/1927/91 1007/1928/82 1008/1929/91 +f 1017/1930/90 1004/1920/93 1005/1931/90 +f 1014/1932/87 1001/1926/88 1002/1933/87 +f 1021/1934/85 1008/1929/91 1009/1935/85 +f 1018/1936/83 1005/1931/90 1006/1937/83 +f 1015/1938/86 1002/1939/87 1003/1919/86 +f 1022/1940/84 1009/1935/85 1010/1922/84 +f 1012/1941/89 999/1923/92 1000/1925/89 +f 1019/1942/82 1006/1937/83 1007/1928/82 +f 1040/1943/91 1027/1944/82 1028/1945/91 +f 1035/1946/86 1034/1947/87 1023/1948/86 +f 1037/1949/90 1024/1950/93 1025/1951/90 +f 1044/1952/89 1031/1953/92 1032/1954/89 +f 1041/1955/85 1028/1945/91 1029/1956/85 +f 1038/1957/83 1025/1951/90 1026/1958/83 +f 1045/1959/88 1032/1954/89 1033/1960/88 +f 1042/1961/84 1029/1956/85 1030/1962/84 +f 1039/1963/82 1026/1964/83 1027/1944/82 +f 1046/1965/87 1033/1960/88 1034/1947/87 +f 1036/1966/93 1023/1948/86 1024/1950/93 +f 1043/1967/92 1030/1962/84 1031/1953/92 +f 1064/1968/87 1051/1969/88 1052/1970/87 +f 1059/1971/85 1058/1972/91 1047/1973/85 +f 1061/1974/92 1048/1975/84 1049/1976/92 +f 1068/1977/83 1055/1978/90 1056/1979/83 +f 1065/1980/86 1052/1970/87 1053/1981/86 +f 1062/1982/89 1049/1976/92 1050/1983/89 +f 1069/1984/82 1056/1979/83 1057/1985/82 +f 1066/1986/93 1053/1981/86 1054/1987/93 +f 1063/1988/88 1050/1989/89 1051/1969/88 +f 1070/1990/91 1057/1985/82 1058/1972/91 +f 1060/1991/84 1047/1973/85 1048/1975/84 +f 1067/1992/90 1054/1987/93 1055/1978/90 +f 921/1818/82 922/1830/83 910/1819/83 +f 918/1821/84 919/1832/85 907/1822/85 +f 925/1824/86 926/1834/87 914/1825/87 +f 915/1827/88 916/1835/89 904/1828/89 +f 922/1830/83 923/1837/90 911/1831/90 +f 919/1832/85 920/1839/91 908/1833/91 +f 926/1834/87 915/1827/88 903/1829/88 +f 916/1835/89 917/1840/92 905/1836/92 +f 923/1837/90 924/1993/93 912/1838/93 +f 920/1839/91 921/1818/82 909/1820/82 +f 917/1840/92 918/1821/84 906/1823/84 +f 924/1841/93 925/1824/86 913/1826/86 +f 944/1843/89 943/1863/92 931/1844/92 +f 939/1846/82 950/1865/83 938/1847/83 +f 941/1849/85 940/1866/91 928/1850/91 +f 948/1852/93 947/1867/86 935/1853/86 +f 945/1855/88 944/1843/89 932/1845/89 +f 942/1857/84 941/1849/85 929/1851/85 +f 949/1859/90 948/1852/93 936/1854/93 +f 946/1861/87 945/1855/88 933/1856/88 +f 943/1863/92 942/1994/84 930/1864/84 +f 950/1865/83 949/1859/90 937/1860/90 +f 940/1866/91 939/1846/82 927/1848/82 +f 947/1867/86 946/1861/87 934/1862/87 +f 968/1868/83 967/1888/90 955/1869/90 +f 963/1871/88 974/1890/89 962/1872/89 +f 965/1874/86 964/1891/87 952/1875/87 +f 972/1877/84 971/1892/85 959/1878/85 +f 969/1880/82 968/1868/83 956/1870/83 +f 966/1882/93 965/1874/86 953/1876/86 +f 973/1884/92 972/1877/84 960/1879/84 +f 970/1886/91 969/1880/82 957/1881/82 +f 967/1888/90 966/1995/93 954/1889/93 +f 974/1890/89 973/1884/92 961/1885/92 +f 964/1891/87 963/1871/88 951/1873/88 +f 971/1892/85 970/1886/91 958/1887/91 +f 992/1893/84 991/1913/85 979/1894/85 +f 987/1896/90 998/1915/93 986/1897/93 +f 989/1899/82 988/1916/83 976/1900/83 +f 996/1902/87 995/1917/88 983/1903/88 +f 993/1905/92 992/1893/84 980/1895/84 +f 990/1907/91 989/1899/82 977/1901/82 +f 997/1909/86 996/1902/87 984/1904/87 +f 994/1911/89 993/1905/92 981/1906/92 +f 991/1913/85 990/1996/91 978/1914/91 +f 998/1915/93 997/1909/86 985/1910/86 +f 988/1916/83 987/1896/90 975/1898/90 +f 995/1917/88 994/1911/89 982/1912/89 +f 1016/1918/93 1015/1938/86 1003/1919/86 +f 1011/1921/92 1022/1940/84 1010/1922/84 +f 1013/1924/88 1012/1941/89 1000/1925/89 +f 1020/1927/91 1019/1942/82 1007/1928/82 +f 1017/1930/90 1016/1918/93 1004/1920/93 +f 1014/1932/87 1013/1924/88 1001/1926/88 +f 1021/1934/85 1020/1927/91 1008/1929/91 +f 1018/1936/83 1017/1930/90 1005/1931/90 +f 1015/1938/86 1014/1997/87 1002/1939/87 +f 1022/1940/84 1021/1934/85 1009/1935/85 +f 1012/1941/89 1011/1921/92 999/1923/92 +f 1019/1942/82 1018/1936/83 1006/1937/83 +f 1040/1943/91 1039/1963/82 1027/1944/82 +f 1035/1946/86 1046/1965/87 1034/1947/87 +f 1037/1949/90 1036/1966/93 1024/1950/93 +f 1044/1952/89 1043/1967/92 1031/1953/92 +f 1041/1955/85 1040/1943/91 1028/1945/91 +f 1038/1957/83 1037/1949/90 1025/1951/90 +f 1045/1959/88 1044/1952/89 1032/1954/89 +f 1042/1961/84 1041/1955/85 1029/1956/85 +f 1039/1963/82 1038/1998/83 1026/1964/83 +f 1046/1965/87 1045/1959/88 1033/1960/88 +f 1036/1966/93 1035/1946/86 1023/1948/86 +f 1043/1967/92 1042/1961/84 1030/1962/84 +f 1064/1968/87 1063/1988/88 1051/1969/88 +f 1059/1971/85 1070/1990/91 1058/1972/91 +f 1061/1974/92 1060/1991/84 1048/1975/84 +f 1068/1977/83 1067/1992/90 1055/1978/90 +f 1065/1980/86 1064/1968/87 1052/1970/87 +f 1062/1982/89 1061/1974/92 1049/1976/92 +f 1069/1984/82 1068/1977/83 1056/1979/83 +f 1066/1986/93 1065/1980/86 1053/1981/86 +f 1063/1988/88 1062/1999/89 1050/1989/89 +f 1070/1990/91 1069/1984/82 1057/1985/82 +f 1060/1991/84 1059/1971/85 1047/1973/85 +f 1067/1992/90 1066/1986/93 1054/1987/93 +o Scope +v -3.125000 3.437500 0.375000 +v 3.125000 3.437500 0.375000 +v -3.125000 3.437500 -0.375000 +v 3.125000 3.437500 -0.375000 +v -3.125000 3.812500 -0.375000 +v -3.125000 3.812500 0.375000 +v 3.125000 3.812500 0.375000 +v 3.125000 3.812500 -0.375000 +v 3.125000 3.437500 0.125000 +v 3.000000 3.187500 0.125000 +v 3.125000 3.437500 -0.125000 +v 3.000000 3.187500 -0.125000 +v -1.125000 3.437500 0.125000 +v -1.000000 3.187500 0.125000 +v -1.125000 3.437500 -0.125000 +v -1.000000 3.187500 -0.125000 +v 2.875000 4.875000 -0.625000 +v 2.875000 5.187500 -0.541266 +v 2.875000 5.416266 -0.312500 +v 2.875000 5.500000 0.000000 +v 2.875000 5.416266 0.312500 +v 2.875000 5.187500 0.541266 +v 2.875000 4.875000 0.625000 +v 2.875000 4.562500 0.541266 +v 2.875000 4.333735 0.312500 +v 2.875000 4.250000 0.000000 +v 2.875000 4.333734 -0.312500 +v 2.875000 4.562500 -0.541265 +v -2.625000 4.875000 -0.625000 +v -2.625000 5.187500 -0.541266 +v -2.625000 5.416266 -0.312500 +v -2.625000 5.500000 0.000000 +v -2.625000 5.416266 0.312500 +v -2.625000 5.187500 0.541266 +v -2.625000 4.875000 0.625000 +v -2.625000 4.562500 0.541266 +v -2.625000 4.333735 0.312500 +v -2.625000 4.250000 0.000000 +v -2.625000 4.333734 -0.312500 +v -2.625000 4.562500 -0.541265 +v 3.875000 4.875000 -0.750000 +v 3.875000 5.250000 -0.649519 +v 3.875000 5.524519 -0.375000 +v 3.875000 5.625000 0.000000 +v 3.875000 5.524519 0.375000 +v 3.875000 5.250000 0.649519 +v 3.875000 4.875000 0.750000 +v 3.875000 4.500000 0.649519 +v 3.875000 4.225481 0.375000 +v 3.875000 4.125000 0.000000 +v 3.875000 4.225481 -0.374999 +v 3.875000 4.500000 -0.649518 +v 5.125000 4.875000 -0.750000 +v 5.125000 5.250000 -0.649519 +v 5.125000 5.524519 -0.375000 +v 5.125000 5.625000 0.000000 +v 5.125000 5.524519 0.375000 +v 5.125000 5.250000 0.649519 +v 5.125000 4.875000 0.750000 +v 5.125000 4.500000 0.649519 +v 5.125000 4.225481 0.375000 +v 5.125000 4.125000 0.000000 +v 5.125000 4.225481 -0.374999 +v 5.125000 4.500000 -0.649518 +v 5.125000 4.875000 -0.625000 +v 5.125000 5.187500 -0.541266 +v 5.125000 5.416266 -0.312500 +v 5.125000 5.500000 0.000000 +v 5.125000 5.416266 0.312500 +v 5.125000 5.187500 0.541266 +v 5.125000 4.875000 0.625000 +v 5.125000 4.562500 0.541266 +v 5.125000 4.333735 0.312500 +v 5.125000 4.250000 0.000000 +v 5.125000 4.333734 -0.312500 +v 5.125000 4.562500 -0.541265 +v 4.875000 4.875000 -0.625000 +v 4.875000 5.187500 -0.541266 +v 4.875000 5.416266 -0.312500 +v 4.875000 5.500000 0.000000 +v 4.875000 5.416266 0.312500 +v 4.875000 5.187500 0.541266 +v 4.875000 4.875000 0.625000 +v 4.875000 4.562500 0.541266 +v 4.875000 4.333735 0.312500 +v 4.875000 4.250000 0.000000 +v 4.875000 4.333734 -0.312500 +v 4.875000 4.562500 -0.541265 +v -3.125000 4.875000 -0.750000 +v -3.125000 5.250000 -0.649519 +v -3.125000 5.524519 -0.375000 +v -3.125000 5.625000 0.000000 +v -3.125000 5.524519 0.375000 +v -3.125000 5.250000 0.649519 +v -3.125000 4.875000 0.750000 +v -3.125000 4.500000 0.649519 +v -3.125000 4.225481 0.375000 +v -3.125000 4.125000 0.000000 +v -3.125000 4.225481 -0.374999 +v -3.125000 4.500000 -0.649518 +v -3.625000 4.875000 -0.750000 +v -3.625000 5.250000 -0.649519 +v -3.625000 5.524519 -0.375000 +v -3.625000 5.625000 0.000000 +v -3.625000 5.524519 0.375000 +v -3.625000 5.250000 0.649519 +v -3.625000 4.875000 0.750000 +v -3.625000 4.500000 0.649519 +v -3.625000 4.225481 0.375000 +v -3.625000 4.125000 0.000000 +v -3.625000 4.225481 -0.374999 +v -3.625000 4.500000 -0.649518 +v -4.125001 4.875000 -0.937500 +v -4.125001 5.343750 -0.811898 +v -4.125001 5.686898 -0.468750 +v -4.125001 5.812499 0.000000 +v -4.125001 5.686898 0.468750 +v -4.125001 5.343750 0.811899 +v -4.125001 4.875000 0.937500 +v -4.125001 4.406250 0.811899 +v -4.125001 4.063101 0.468750 +v -4.125001 3.937500 0.000001 +v -4.125001 4.063101 -0.468749 +v -4.125001 4.406249 -0.811898 +v -5.375001 4.875000 -0.937500 +v -5.375001 5.343750 -0.811898 +v -5.375001 5.686898 -0.468750 +v -5.375001 5.812499 0.000000 +v -5.375001 5.686898 0.468750 +v -5.375001 5.343750 0.811899 +v -5.375001 4.875000 0.937500 +v -5.375001 4.406250 0.811899 +v -5.375001 4.063101 0.468750 +v -5.375001 3.937500 0.000001 +v -5.375001 4.063101 -0.468749 +v -5.375001 4.406249 -0.811898 +v -5.375001 4.875000 -0.812500 +v -5.375001 5.281250 -0.703645 +v -5.375001 5.578646 -0.406250 +v -5.375001 5.687500 0.000000 +v -5.375001 5.578646 0.406250 +v -5.375001 5.281250 0.703646 +v -5.375001 4.875000 0.812500 +v -5.375001 4.468750 0.703646 +v -5.375001 4.171354 0.406251 +v -5.375001 4.062500 0.000001 +v -5.375001 4.171353 -0.406249 +v -5.375001 4.468750 -0.703645 +v -5.125001 4.875000 -0.812500 +v -5.125001 5.281250 -0.703645 +v -5.125001 5.578646 -0.406250 +v -5.125001 5.687500 0.000000 +v -5.125001 5.578646 0.406250 +v -5.125001 5.281250 0.703646 +v -5.125001 4.875000 0.812500 +v -5.125001 4.468750 0.703646 +v -5.125001 4.171354 0.406251 +v -5.125001 4.062500 0.000001 +v -5.125001 4.171353 -0.406249 +v -5.125001 4.468750 -0.703645 +v 1.375000 5.625000 0.000000 +v 1.375000 5.558013 0.500000 +v 1.375000 5.125000 1.000000 +v 1.375000 4.191987 -0.500000 +v 1.375000 4.125000 0.000000 +v 1.375000 4.191988 0.500000 +v 1.375000 4.625000 1.000000 +v 1.375000 4.625000 -1.000000 +v 1.375000 5.558013 -0.500000 +v 1.375000 5.125000 -1.000000 +v 2.625000 4.625000 -1.000000 +v 2.625000 4.625000 1.000000 +v 2.625000 4.191988 0.500000 +v 2.625000 4.125000 0.000000 +v 2.625000 4.191987 -0.500000 +v 2.625000 5.125000 1.000000 +v 2.625000 5.558013 0.500000 +v 2.625000 5.625000 0.000000 +v 2.625000 5.558013 -0.500000 +v 2.625000 5.125000 -1.000000 +v 1.500000 4.191988 0.500000 +v 1.500000 4.191987 -0.500000 +v 2.500000 4.191988 0.500000 +v 2.500000 4.191987 -0.500000 +v 1.500000 3.566988 0.500000 +v 1.500000 3.566987 -0.500000 +v 2.500000 3.566988 0.500000 +v 2.500000 3.566987 -0.500000 +v -0.625000 4.187500 0.687500 +v -0.625000 5.562500 0.687500 +v -0.625000 4.187500 -0.687500 +v -0.625000 5.562500 -0.687500 +v 0.875000 4.187500 0.687500 +v 0.875000 5.562500 0.687500 +v 0.875000 4.187500 -0.687500 +v 0.875000 5.562500 -0.687500 +v -0.750000 4.312500 -0.562500 +v -0.750000 4.312500 0.562500 +v -0.750000 5.437500 0.562500 +v -0.750000 5.437500 -0.562500 +v 0.125000 5.562500 -0.562500 +v -0.156250 5.562500 -0.487139 +v -0.362139 5.562500 -0.281250 +v -0.437500 5.562500 0.000000 +v -0.362139 5.562500 0.281250 +v -0.156250 5.562500 0.487139 +v 0.125000 5.562500 0.562500 +v 0.406250 5.562500 0.487140 +v 0.612139 5.562500 0.281250 +v 0.687500 5.562500 0.000000 +v 0.612139 5.562500 -0.281250 +v 0.406250 5.562500 -0.487139 +v 0.125000 5.687500 -0.562500 +v -0.156250 5.687500 -0.487139 +v -0.362139 5.687500 -0.281250 +v -0.437500 5.687500 0.000000 +v -0.362139 5.687500 0.281250 +v -0.156250 5.687500 0.487139 +v 0.125000 5.687500 0.562500 +v 0.406250 5.687500 0.487140 +v 0.612139 5.687500 0.281250 +v 0.687500 5.687500 0.000000 +v 0.612139 5.687500 -0.281250 +v 0.406250 5.687500 -0.487139 +v 0.125000 5.687500 -0.656250 +v -0.203125 5.687500 -0.568329 +v -0.443329 5.687500 -0.328125 +v -0.531250 5.687500 0.000000 +v -0.443329 5.687500 0.328125 +v -0.203125 5.687500 0.568330 +v 0.125000 5.687500 0.656250 +v 0.453125 5.687500 0.568330 +v 0.693329 5.687500 0.328126 +v 0.781250 5.687500 0.000001 +v 0.693329 5.687500 -0.328124 +v 0.453125 5.687500 -0.568328 +v 0.125000 6.062500 -0.656250 +v -0.203125 6.062500 -0.568329 +v -0.443329 6.062500 -0.328125 +v -0.531250 6.062500 0.000000 +v -0.443329 6.062500 0.328125 +v -0.203125 6.062500 0.568330 +v 0.125000 6.062500 0.656250 +v 0.453125 6.062500 0.568330 +v 0.693329 6.062500 0.328126 +v 0.781250 6.062500 0.000001 +v 0.693329 6.062500 -0.328124 +v 0.453125 6.062500 -0.568328 +v -2.375000 5.625000 0.000000 +v -2.375000 5.558013 0.500000 +v -2.375000 5.125000 1.000000 +v -2.375000 4.191987 -0.500000 +v -2.375000 4.125000 0.000000 +v -2.375000 4.191988 0.500000 +v -2.375000 4.625000 1.000000 +v -2.375000 4.625000 -1.000000 +v -2.375000 5.558013 -0.500000 +v -2.375000 5.125000 -1.000000 +v -1.125000 4.625000 -1.000000 +v -1.125000 4.625000 1.000000 +v -1.125000 4.191988 0.500000 +v -1.125000 4.125000 0.000000 +v -1.125000 4.191987 -0.500000 +v -1.125000 5.125000 1.000000 +v -1.125000 5.558013 0.500000 +v -1.125000 5.625000 0.000000 +v -1.125000 5.558013 -0.500000 +v -1.125000 5.125000 -1.000000 +v 0.125000 5.437500 0.687500 +v -0.156250 5.362139 0.687500 +v -0.362139 5.156250 0.687500 +v -0.437500 4.875000 0.687500 +v -0.362139 4.593750 0.687500 +v -0.156250 4.387861 0.687500 +v 0.125000 4.312500 0.687500 +v 0.406250 4.387860 0.687500 +v 0.612139 4.593750 0.687500 +v 0.687500 4.875000 0.687500 +v 0.612139 5.156250 0.687500 +v 0.406250 5.362139 0.687500 +v 0.125000 5.437500 0.812500 +v -0.156250 5.362139 0.812500 +v -0.362139 5.156250 0.812500 +v -0.437500 4.875000 0.812500 +v -0.362139 4.593750 0.812500 +v -0.156250 4.387861 0.812500 +v 0.125000 4.312500 0.812500 +v 0.406250 4.387860 0.812500 +v 0.612139 4.593750 0.812500 +v 0.687500 4.875000 0.812500 +v 0.612139 5.156250 0.812500 +v 0.406250 5.362139 0.812500 +v 0.125000 5.531250 0.812500 +v -0.203125 5.443329 0.812500 +v -0.443329 5.203125 0.812500 +v -0.531250 4.875000 0.812500 +v -0.443329 4.546875 0.812500 +v -0.203125 4.306671 0.812500 +v 0.125000 4.218750 0.812500 +v 0.453125 4.306670 0.812500 +v 0.693329 4.546875 0.812500 +v 0.781250 4.875000 0.812500 +v 0.693329 5.203125 0.812500 +v 0.453125 5.443328 0.812500 +v 0.125000 5.531250 1.187500 +v -0.203125 5.443329 1.187500 +v -0.443329 5.203125 1.187500 +v -0.531250 4.875000 1.187500 +v -0.443329 4.546875 1.187500 +v -0.203125 4.306671 1.187500 +v 0.125000 4.218750 1.187500 +v 0.453125 4.306670 1.187500 +v 0.693329 4.546875 1.187500 +v 0.781250 4.875000 1.187500 +v 0.693329 5.203125 1.187500 +v 0.453125 5.443328 1.187500 +v -2.250000 4.191988 0.500000 +v -2.250000 4.191987 -0.500000 +v -1.250000 4.191988 0.500000 +v -1.250000 4.191987 -0.500000 +v -2.250000 3.566988 0.500000 +v -2.250000 3.566987 -0.500000 +v -1.250000 3.566988 0.500000 +v -1.250000 3.566987 -0.500000 +vt 0.436170 0.387097 +vt 0.968085 0.451613 +vt 0.436170 0.451613 +vt 0.968085 0.483871 +vt 0.436170 0.548387 +vt 0.436170 0.483871 +vt 1.000000 0.548387 +vt 1.000000 0.483871 +vt 0.404255 0.483871 +vt 0.404255 0.548387 +vt 0.436170 0.580645 +vt 0.968085 0.548387 +vt 0.968085 0.580645 +vt 0.978723 0.580645 +vt 1.000000 0.602151 +vt 0.978723 0.602151 +vt 0.968085 0.623656 +vt 0.617021 0.602151 +vt 0.978723 0.602151 +vt 0.627660 0.580645 +vt 0.968085 0.580645 +vt 0.595745 0.602151 +vt 0.617021 0.580645 +vt 0.617021 0.602151 +vt 0.968085 0.193548 +vt 0.978723 0.161290 +vt 0.978723 0.193548 +vt 0.968085 0.225806 +vt 0.978723 0.225806 +vt 0.968085 0.258065 +vt 0.978723 0.258065 +vt 0.968085 0.290323 +vt 0.978723 0.290323 +vt 0.978723 0.322581 +vt 0.968085 0.322581 +vt 0.978723 0.354839 +vt 0.968085 0.354839 +vt 0.978723 0.387097 +vt 0.968085 0.387097 +vt 0.968085 -0.000000 +vt 0.978723 0.032258 +vt 0.968085 0.032258 +vt 0.978723 0.064516 +vt 0.968085 0.064516 +vt 0.978723 0.096774 +vt 0.968085 0.096774 +vt 0.978723 0.129032 +vt 0.968085 0.129032 +vt 0.968085 0.161290 +vt 0.026755 0.616174 +vt 0.026755 0.523611 +vt 0.106064 0.569892 +vt 0.031915 0.258065 +vt 0.021277 0.215054 +vt 0.031915 0.215054 +vt 0.031915 0.172043 +vt 0.021277 0.172043 +vt 0.031915 0.129032 +vt 0.021277 0.129032 +vt 0.031915 0.086022 +vt 0.021277 0.043011 +vt 0.031915 0.043011 +vt 0.021277 0.000000 +vt 0.031915 0.000000 +vt 0.031915 0.516129 +vt 0.021277 0.473118 +vt 0.031915 0.473118 +vt 0.021277 0.430108 +vt 0.031915 0.430108 +vt 0.021277 0.387097 +vt 0.031915 0.387097 +vt 0.021277 0.344086 +vt 0.031915 0.344086 +vt 0.021277 0.301075 +vt 0.031915 0.301075 +vt 0.327040 0.396614 +vt 0.361527 0.456989 +vt 0.258066 0.517365 +vt 0.638298 0.677696 +vt 0.680669 0.683433 +vt 0.638298 0.806175 +vt 0.872523 0.800438 +vt 0.830152 0.763349 +vt 0.872523 0.683433 +vt 0.861702 1.000000 +vt 0.946809 0.946237 +vt 0.946809 1.000000 +vt 0.946809 0.860215 +vt 0.861702 0.806452 +vt 0.946809 0.806452 +vt 0.861702 0.946237 +vt 0.808511 0.860215 +vt 0.861702 0.860215 +vt 1.000000 0.860215 +vt 1.000000 0.946237 +vt 0.202128 0.881720 +vt 0.191489 0.774194 +vt 0.202128 0.763441 +vt 0.329787 0.881720 +vt 0.329787 0.763441 +vt 0.446809 0.645161 +vt 0.446809 0.763441 +vt 0.329787 0.645161 +vt 0.202128 0.526882 +vt 0.329787 0.526882 +vt 0.202128 1.000000 +vt 0.191489 0.655914 +vt 0.095745 0.752688 +vt 0.095745 0.655914 +vt 0.202128 0.645161 +vt 0.191489 0.537634 +vt 0.191489 0.892473 +vt 0.553191 0.870968 +vt 0.521277 0.881720 +vt 0.521277 0.870968 +vt 0.585106 0.870968 +vt 0.553191 0.881720 +vt 0.617021 0.870968 +vt 0.585106 0.881720 +vt 0.648936 0.870968 +vt 0.617021 0.881720 +vt 0.680851 0.881720 +vt 0.648936 0.881720 +vt 0.680851 0.870968 +vt 0.712766 0.881720 +vt 0.712766 0.870968 +vt 0.744681 0.881720 +vt 0.744681 0.870968 +vt 0.776596 0.881720 +vt 0.776596 0.870968 +vt 0.808511 0.881720 +vt 0.457447 0.870968 +vt 0.425532 0.881720 +vt 0.425532 0.870968 +vt 0.489362 0.870968 +vt 0.457447 0.881720 +vt 0.489362 0.881720 +vt 0.103745 0.863006 +vt 0.103745 0.760650 +vt 0.191446 0.811828 +vt 0.638298 0.677696 +vt 0.680669 0.683433 +vt 0.638298 0.806175 +vt 0.872523 0.800438 +vt 0.830152 0.763349 +vt 0.872523 0.683433 +vt 0.553191 0.870968 +vt 0.521277 0.881720 +vt 0.521277 0.870968 +vt 0.585106 0.870968 +vt 0.553191 0.881720 +vt 0.617021 0.870968 +vt 0.585106 0.881720 +vt 0.648936 0.870968 +vt 0.617021 0.881720 +vt 0.680851 0.881720 +vt 0.648936 0.881720 +vt 0.712766 0.870968 +vt 0.680851 0.870968 +vt 0.744681 0.870968 +vt 0.712766 0.881720 +vt 0.776596 0.881720 +vt 0.744681 0.881720 +vt 0.776596 0.870968 +vt 0.808511 0.881720 +vt 0.457447 0.870968 +vt 0.425532 0.881720 +vt 0.425532 0.870968 +vt 0.489362 0.870968 +vt 0.457447 0.881720 +vt 0.489362 0.881720 +vt 0.103745 0.863006 +vt 0.103745 0.760650 +vt 0.191446 0.811828 +vt 0.861702 1.000000 +vt 0.946809 0.946237 +vt 0.946809 1.000000 +vt 0.946809 0.860215 +vt 0.861702 0.806452 +vt 0.946809 0.806452 +vt 0.861702 0.946237 +vt 0.808511 0.860215 +vt 0.861702 0.860215 +vt 1.000000 0.860215 +vt 1.000000 0.946237 +vt 0.968085 0.387097 +vt 1.000000 0.580645 +vt 0.627660 0.623656 +vt 0.595745 0.580645 +vt 0.978723 0.000000 +vt 0.098980 0.596613 +vt 0.079628 0.616174 +vt 0.053191 0.623333 +vt 0.007403 0.596613 +vt 0.000319 0.569892 +vt 0.007403 0.543172 +vt 0.053191 0.516451 +vt 0.079628 0.523611 +vt 0.098980 0.543172 +vt 0.021277 0.258065 +vt 0.021277 0.086022 +vt 0.021277 0.516129 +vt 0.232820 0.491847 +vt 0.223579 0.456989 +vt 0.232820 0.422131 +vt 0.258066 0.396614 +vt 0.292553 0.387274 +vt 0.352286 0.422131 +vt 0.352286 0.491847 +vt 0.327040 0.517365 +vt 0.292553 0.526705 +vt 0.723040 0.720522 +vt 0.723040 0.763349 +vt 0.680669 0.800438 +vt 0.595927 0.800438 +vt 0.595927 0.683433 +vt 0.553556 0.763349 +vt 0.553556 0.720522 +vt 0.830152 0.720522 +vt 0.914894 0.677696 +vt 0.914894 0.806175 +vt 0.957264 0.683433 +vt 0.999636 0.720522 +vt 0.999636 0.763349 +vt 0.957264 0.800438 +vt 0.808511 0.946237 +vt 0.191489 0.870968 +vt 0.329787 1.000000 +vt 0.191489 0.752688 +vt 0.191489 0.634409 +vt 0.191489 0.989247 +vt 0.808511 0.870968 +vt 0.183613 0.841376 +vt 0.162212 0.863006 +vt 0.132979 0.870924 +vt 0.082345 0.841376 +vt 0.074512 0.811828 +vt 0.082345 0.782280 +vt 0.132979 0.752732 +vt 0.162212 0.760650 +vt 0.183613 0.782280 +vt 0.723040 0.720522 +vt 0.723040 0.763349 +vt 0.680669 0.800438 +vt 0.595927 0.800438 +vt 0.595927 0.683433 +vt 0.553556 0.763349 +vt 0.553556 0.720522 +vt 0.830152 0.720522 +vt 0.914894 0.677696 +vt 0.914894 0.806175 +vt 0.957264 0.683433 +vt 0.999636 0.720522 +vt 0.999636 0.763349 +vt 0.957264 0.800438 +vt 0.808511 0.870968 +vt 0.183613 0.841376 +vt 0.162212 0.863006 +vt 0.132979 0.870924 +vt 0.082345 0.841376 +vt 0.074512 0.811828 +vt 0.082345 0.782280 +vt 0.132979 0.752732 +vt 0.162212 0.760650 +vt 0.183613 0.782280 +vt 0.808511 0.946237 +vt 0.308511 0.258065 +vt 0.776596 0.225806 +vt 0.776596 0.258065 +vt 0.308511 0.032258 +vt 0.776596 -0.000000 +vt 0.776596 0.032258 +vt 0.308511 0.129032 +vt 0.776596 0.096774 +vt 0.776596 0.129032 +vt 0.308511 0.225806 +vt 0.776596 0.193548 +vt 0.308511 0.387097 +vt 0.776596 0.354839 +vt 0.776596 0.387097 +vt 0.308511 0.096774 +vt 0.776596 0.064516 +vt 0.308511 0.193548 +vt 0.776596 0.161290 +vt 0.308511 0.354839 +vt 0.776596 0.322581 +vt 0.308511 0.290323 +vt 0.776596 0.290323 +vt 0.308511 0.064516 +vt 0.308511 0.161290 +vt 0.308511 0.322581 +vt 0.861702 0.161290 +vt 0.861702 0.193548 +vt 0.861702 0.225806 +vt 0.861702 0.258065 +vt 0.861702 0.290323 +vt 0.861702 0.322581 +vt 0.861702 0.354839 +vt 0.861702 0.387097 +vt 0.861702 0.032258 +vt 0.861702 0.064516 +vt 0.861702 0.096774 +vt 0.861702 0.129032 +vt 0.861702 -0.000000 +vt 1.000000 0.225806 +vt 1.000000 0.387097 +vt 1.000000 0.096774 +vt 1.000000 0.193548 +vt 1.000000 0.354839 +vt 1.000000 0.290323 +vt 1.000000 0.064516 +vt 1.000000 0.161290 +vt 1.000000 0.322581 +vt 1.000000 0.258065 +vt 1.000000 0.032258 +vt 1.000000 0.129032 +vt 0.265957 0.129032 +vt 0.265957 0.193548 +vt 0.265957 0.225806 +vt 0.265957 0.258065 +vt 0.265957 0.290323 +vt 0.265957 0.322581 +vt 0.265957 0.354839 +vt 0.265957 0.000000 +vt 0.308511 -0.000000 +vt 0.265957 0.064516 +vt 0.265957 0.096774 +vt 0.223404 0.096774 +vt 0.223404 0.193548 +vt 0.265957 0.387097 +vt 0.223404 0.354839 +vt 0.223404 0.064516 +vt 0.223404 0.161290 +vt 0.265957 0.161290 +vt 0.223404 0.322581 +vt 0.223404 0.258065 +vt 0.223404 0.032258 +vt 0.265957 0.032258 +vt 0.223404 0.129032 +vt 0.223404 0.290323 +vt 0.223404 0.225806 +vt 0.223404 0.000000 +vt 0.138298 0.215054 +vt 0.223404 0.172043 +vt 0.223404 0.204301 +vt 0.138298 0.258065 +vt 0.223404 0.215054 +vt 0.223404 0.247312 +vt 0.223404 0.290323 +vt 0.223404 0.258065 +vt 0.223404 0.333333 +vt 0.138298 0.301075 +vt 0.223404 0.301075 +vt 0.138298 0.387097 +vt 0.223404 0.344086 +vt 0.223404 0.376344 +vt 0.223404 0.419355 +vt 0.223404 0.387097 +vt 0.138298 0.473118 +vt 0.223404 0.430108 +vt 0.223404 0.462366 +vt 0.138298 0.516129 +vt 0.223404 0.473118 +vt 0.223404 0.505376 +vt 0.138298 0.043011 +vt 0.138298 0.086022 +vt 0.223404 0.043011 +vt 0.223404 0.075269 +vt 0.223404 0.118280 +vt 0.223404 0.086022 +vt 0.138298 0.172043 +vt 0.223404 0.129032 +vt 0.223404 0.161290 +vt 0.138298 0.000000 +vt 0.138298 0.129032 +vt 0.138298 0.430108 +vt 0.138298 0.344086 +vt 0.000000 0.172043 +vt 0.000000 0.387097 +vt -0.000000 0.301075 +vt -0.000000 0.000000 +vt 0.000000 0.129032 +vt -0.000000 0.258065 +vt 0.000000 0.473118 +vt -0.000000 0.086022 +vt -0.000000 0.215054 +vt 0.000000 0.430108 +vt 0.000000 0.344086 +vt 0.000000 0.043011 +vt 0.446809 0.666667 +vt 0.553191 0.720430 +vt 0.446809 0.720430 +vt 0.829787 0.763441 +vt 0.723404 0.720430 +vt 0.829787 0.720430 +vt 0.829787 0.666667 +vt 0.723404 0.623656 +vt 0.829787 0.623656 +vt 0.829787 0.817204 +vt 0.723404 0.763441 +vt 0.553191 0.763441 +vt 0.723404 0.666667 +vt 0.446809 0.817204 +vt 0.553191 0.860215 +vt 0.446809 0.860215 +vt 0.446809 0.623656 +vt 0.553191 0.666667 +vt 0.829787 0.860215 +vt 0.723404 0.817204 +vt 0.446809 0.763441 +vt 0.553191 0.817204 +vt 0.617021 0.860215 +vt 0.585106 0.860215 +vt 0.521277 0.860215 +vt 0.489362 0.860215 +vt 0.744681 0.860215 +vt 0.712766 0.860215 +vt 0.648936 0.860215 +vt 0.553191 0.860215 +vt 0.776596 0.860215 +vt 0.457447 0.860215 +vt 0.425532 0.860215 +vt 0.680851 0.860215 +vt 0.808511 0.860215 +vt 0.521277 0.913979 +vt 0.744681 0.913979 +vt 0.425532 0.913979 +vt 0.648936 0.913979 +vt 0.553191 0.913979 +vt 0.776596 0.913979 +vt 0.457447 0.913979 +vt 0.680851 0.913979 +vt 0.585106 0.913979 +vt 0.489362 0.913979 +vt 0.712766 0.913979 +vt 0.617021 0.913979 +vt 0.446809 0.666667 +vt 0.553191 0.720430 +vt 0.446809 0.720430 +vt 0.829787 0.763441 +vt 0.723404 0.720430 +vt 0.829787 0.720430 +vt 0.829787 0.666667 +vt 0.723404 0.623656 +vt 0.829787 0.623656 +vt 0.829787 0.817204 +vt 0.723404 0.763441 +vt 0.553191 0.763441 +vt 0.723404 0.666667 +vt 0.446809 0.817204 +vt 0.553191 0.860215 +vt 0.446809 0.860215 +vt 0.446809 0.623656 +vt 0.553191 0.666667 +vt 0.829787 0.860215 +vt 0.723404 0.817204 +vt 0.446809 0.763441 +vt 0.553191 0.817204 +vt 0.617021 0.860215 +vt 0.585106 0.860215 +vt 0.521277 0.860215 +vt 0.489362 0.860215 +vt 0.744681 0.860215 +vt 0.712766 0.860215 +vt 0.648936 0.860215 +vt 0.553191 0.860215 +vt 0.776596 0.860215 +vt 0.457447 0.860215 +vt 0.425532 0.860215 +vt 0.680851 0.860215 +vt 0.808511 0.860215 +vt 0.521277 0.913979 +vt 0.744681 0.913979 +vt 0.425532 0.913979 +vt 0.648936 0.913979 +vt 0.553191 0.913979 +vt 0.776596 0.913979 +vt 0.457447 0.913979 +vt 0.680851 0.913979 +vt 0.585106 0.913979 +vt 0.489362 0.913979 +vt 0.712766 0.913979 +vt 0.617021 0.913979 +vt 1.000000 -0.000000 +vt 0.223404 0.387097 +vt -0.000000 0.516129 +vt 0.553191 0.623656 +vt 0.723404 0.860215 +vt 0.808511 0.913979 +vt 0.553191 0.623656 +vt 0.723404 0.860215 +vt 0.808511 0.913979 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8944 -0.4472 0.0000 +vn -0.8944 -0.4472 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.5000 -0.8660 +vn -0.1240 0.4961 0.8593 +vn -0.1240 0.8593 0.4961 +vn -0.1240 0.9923 0.0000 +vn -0.1240 0.8593 -0.4961 +vn -0.1240 0.4961 -0.8593 +vn -0.1240 -0.0000 -0.9923 +vn -0.1240 -0.4961 -0.8593 +vn -0.1240 -0.8593 -0.4961 +vn -0.1240 -0.9923 0.0000 +vn -0.1240 -0.8593 0.4961 +vn -0.1240 -0.4961 0.8593 +vn -0.1240 0.0000 0.9923 +vn 0.2425 0.8402 0.4851 +vn 0.2425 0.4851 0.8402 +vn 0.2425 0.9701 0.0000 +vn 0.2425 0.8402 -0.4851 +vn 0.2425 0.4851 -0.8402 +vn 0.2425 -0.0000 -0.9701 +vn 0.2425 -0.4851 -0.8402 +vn 0.2425 -0.8402 -0.4851 +vn 0.2425 -0.9701 0.0000 +vn 0.2425 -0.8402 0.4851 +vn 0.2425 -0.4851 0.8402 +vn 0.2425 -0.0000 0.9701 +vn 0.3511 0.8109 0.4682 +vn 0.3511 0.4682 0.8109 +vn 0.3511 0.9363 -0.0000 +vn 0.3511 0.8109 -0.4682 +vn 0.3511 0.4682 -0.8109 +vn 0.3511 0.0000 -0.9363 +vn 0.3511 -0.4682 -0.8109 +vn 0.3511 -0.8109 -0.4682 +vn 0.3511 -0.9363 -0.0000 +vn 0.3511 -0.8109 0.4682 +vn 0.3511 -0.4682 0.8109 +vn 0.3511 0.0000 0.9363 +vn 0.0000 -0.9117 0.4109 +vn 0.0000 -0.4155 0.9096 +vn 0.0000 0.4155 -0.9096 +vn 0.0000 -0.4155 -0.9096 +vn 0.0000 -0.9117 -0.4109 +vn 0.0000 0.9117 -0.4109 +vn 0.0000 0.4155 0.9096 +vn 0.0000 0.9117 0.4109 +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 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +s off +f 1073/2000/94 1072/2001/94 1071/2002/94 +f 1077/2003/95 1075/2004/95 1076/2005/95 +f 1074/2006/96 1077/2003/96 1072/2007/96 +f 1071/2008/97 1075/2004/97 1073/2009/97 +f 1073/2010/98 1078/2011/98 1074/2012/98 +f 1072/2001/99 1076/2005/99 1071/2002/99 +f 1080/2013/100 1081/2014/100 1079/2015/100 +f 1082/2016/98 1085/2017/98 1081/2018/98 +f 1079/2015/99 1084/2019/99 1080/2020/99 +f 1085/2021/101 1084/2022/101 1083/2023/101 +f 1126/2024/96 1139/2025/96 1138/2026/96 +f 1125/2027/96 1138/2026/96 1137/2028/96 +f 1124/2029/96 1137/2028/96 1136/2030/96 +f 1123/2031/96 1136/2030/96 1135/2032/96 +f 1123/2031/96 1146/2033/96 1134/2034/96 +f 1134/2034/96 1145/2035/96 1133/2036/96 +f 1133/2036/96 1144/2037/96 1132/2038/96 +f 1132/2039/96 1143/2040/96 1131/2041/96 +f 1131/2041/96 1142/2042/96 1130/2043/96 +f 1130/2043/96 1141/2044/96 1129/2045/96 +f 1129/2045/96 1140/2046/96 1128/2047/96 +f 1127/2048/96 1140/2046/96 1139/2025/96 +f 1151/2049/96 1155/2050/96 1147/2051/96 +f 1198/2052/97 1211/2053/97 1199/2054/97 +f 1211/2053/97 1200/2055/97 1199/2054/97 +f 1212/2056/97 1201/2057/97 1200/2055/97 +f 1213/2058/97 1202/2059/97 1201/2057/97 +f 1202/2059/97 1215/2060/97 1203/2061/97 +f 1203/2061/97 1216/2062/97 1204/2063/97 +f 1204/2064/97 1217/2065/97 1205/2066/97 +f 1205/2066/97 1218/2067/97 1206/2068/97 +f 1206/2068/97 1207/2069/97 1195/2070/97 +f 1195/2070/97 1208/2071/97 1196/2072/97 +f 1196/2072/97 1209/2073/97 1197/2074/97 +f 1209/2073/97 1198/2052/97 1197/2074/97 +f 1227/2075/97 1225/2076/97 1221/2077/97 +f 1244/2078/96 1245/2079/96 1248/2080/96 +f 1239/2081/97 1240/2082/97 1234/2083/97 +f 1251/2084/99 1257/2085/99 1253/2086/99 +f 1258/2087/98 1252/2088/98 1254/2089/98 +f 1255/2090/97 1252/2091/97 1256/2092/97 +f 1257/2085/94 1256/2092/94 1258/2087/94 +f 1257/2085/96 1254/2093/96 1253/2094/96 +f 1261/2095/102 1270/2096/102 1262/2097/102 +f 1262/2097/98 1265/2098/98 1261/2095/98 +f 1266/2099/96 1263/2100/96 1265/2101/96 +f 1264/2102/99 1259/2103/99 1263/2104/99 +f 1265/2098/94 1259/2105/94 1261/2095/94 +f 1262/2097/95 1264/2102/95 1266/2099/95 +f 1269/2106/97 1267/2107/97 1268/2108/97 +f 1260/2109/103 1268/2110/103 1259/2103/103 +f 1262/2097/104 1269/2106/104 1260/2109/104 +f 1259/2105/105 1267/2111/105 1261/2095/105 +f 1287/2112/94 1298/2113/94 1286/2114/94 +f 1288/2115/94 1299/2116/94 1287/2112/94 +f 1289/2117/94 1300/2118/94 1288/2115/94 +f 1290/2119/94 1301/2120/94 1289/2117/94 +f 1290/2119/94 1303/2121/94 1302/2122/94 +f 1291/2123/94 1304/2124/94 1303/2121/94 +f 1292/2125/94 1305/2126/94 1304/2124/94 +f 1293/2127/94 1306/2128/94 1305/2126/94 +f 1294/2129/94 1295/2130/94 1306/2128/94 +f 1284/2131/94 1295/2132/94 1283/2133/94 +f 1285/2134/94 1296/2135/94 1284/2131/94 +f 1286/2114/94 1297/2136/94 1285/2134/94 +f 1311/2137/95 1315/2138/95 1307/2139/95 +f 1332/2140/96 1333/2141/96 1336/2142/96 +f 1327/2143/97 1328/2144/97 1322/2145/97 +f 1355/2146/98 1366/2147/98 1354/2148/98 +f 1356/2149/98 1367/2150/98 1355/2146/98 +f 1357/2151/98 1368/2152/98 1356/2149/98 +f 1358/2153/98 1369/2154/98 1357/2151/98 +f 1358/2153/98 1371/2155/98 1370/2156/98 +f 1360/2157/98 1371/2155/98 1359/2158/98 +f 1361/2159/98 1372/2160/98 1360/2157/98 +f 1361/2159/98 1374/2161/98 1373/2162/98 +f 1362/2163/98 1363/2164/98 1374/2161/98 +f 1352/2165/98 1363/2166/98 1351/2167/98 +f 1353/2168/98 1364/2169/98 1352/2165/98 +f 1354/2148/98 1365/2170/98 1353/2168/98 +f 1379/2171/99 1383/2172/99 1375/2173/99 +f 1387/2174/99 1393/2175/99 1389/2176/99 +f 1394/2177/98 1388/2178/98 1390/2179/98 +f 1391/2180/97 1388/2181/97 1392/2182/97 +f 1393/2175/94 1392/2182/94 1394/2177/94 +f 1393/2175/96 1390/2183/96 1389/2184/96 +f 1073/2000/94 1074/2185/94 1072/2001/94 +f 1077/2003/95 1078/2011/95 1075/2004/95 +f 1074/2006/96 1078/2011/96 1077/2003/96 +f 1071/2008/97 1076/2005/97 1075/2004/97 +f 1073/2010/98 1075/2004/98 1078/2011/98 +f 1072/2001/99 1077/2003/99 1076/2005/99 +f 1080/2013/100 1082/2186/100 1081/2014/100 +f 1082/2016/98 1086/2187/98 1085/2017/98 +f 1079/2015/99 1083/2023/99 1084/2019/99 +f 1085/2021/101 1086/2188/101 1084/2022/101 +f 1126/2024/96 1127/2048/96 1139/2025/96 +f 1125/2027/96 1126/2024/96 1138/2026/96 +f 1124/2029/96 1125/2027/96 1137/2028/96 +f 1123/2031/96 1124/2029/96 1136/2030/96 +f 1123/2031/96 1135/2032/96 1146/2033/96 +f 1134/2034/96 1146/2033/96 1145/2035/96 +f 1133/2036/96 1145/2035/96 1144/2037/96 +f 1132/2039/96 1144/2189/96 1143/2040/96 +f 1131/2041/96 1143/2040/96 1142/2042/96 +f 1130/2043/96 1142/2042/96 1141/2044/96 +f 1129/2045/96 1141/2044/96 1140/2046/96 +f 1127/2048/96 1128/2047/96 1140/2046/96 +f 1147/2051/96 1148/2190/96 1149/2191/96 +f 1149/2191/96 1150/2192/96 1147/2051/96 +f 1150/2192/96 1151/2049/96 1147/2051/96 +f 1151/2049/96 1152/2193/96 1153/2194/96 +f 1153/2194/96 1154/2195/96 1155/2050/96 +f 1155/2050/96 1156/2196/96 1157/2197/96 +f 1157/2197/96 1158/2198/96 1155/2050/96 +f 1158/2198/96 1147/2051/96 1155/2050/96 +f 1151/2049/96 1153/2194/96 1155/2050/96 +f 1198/2052/97 1210/2199/97 1211/2053/97 +f 1211/2053/97 1212/2056/97 1200/2055/97 +f 1212/2056/97 1213/2058/97 1201/2057/97 +f 1213/2058/97 1214/2200/97 1202/2059/97 +f 1202/2059/97 1214/2200/97 1215/2060/97 +f 1203/2061/97 1215/2060/97 1216/2062/97 +f 1204/2064/97 1216/2201/97 1217/2065/97 +f 1205/2066/97 1217/2065/97 1218/2067/97 +f 1206/2068/97 1218/2067/97 1207/2069/97 +f 1195/2070/97 1207/2069/97 1208/2071/97 +f 1196/2072/97 1208/2071/97 1209/2073/97 +f 1209/2073/97 1210/2199/97 1198/2052/97 +f 1221/2077/97 1220/2202/97 1219/2203/97 +f 1219/2203/97 1230/2204/97 1221/2077/97 +f 1230/2204/97 1229/2205/97 1221/2077/97 +f 1229/2205/97 1228/2206/97 1227/2075/97 +f 1227/2075/97 1226/2207/97 1225/2076/97 +f 1225/2076/97 1224/2208/97 1223/2209/97 +f 1223/2209/97 1222/2210/97 1225/2076/97 +f 1222/2210/97 1221/2077/97 1225/2076/97 +f 1229/2205/97 1227/2075/97 1221/2077/97 +f 1245/2079/96 1241/2211/96 1250/2212/96 +f 1250/2212/96 1249/2213/96 1245/2079/96 +f 1249/2213/96 1248/2080/96 1245/2079/96 +f 1248/2080/96 1247/2214/96 1243/2215/96 +f 1247/2214/96 1246/2216/96 1243/2215/96 +f 1246/2216/96 1242/2217/96 1243/2215/96 +f 1243/2215/96 1244/2078/96 1248/2080/96 +f 1240/2082/97 1238/2218/97 1234/2083/97 +f 1234/2083/97 1235/2219/97 1231/2220/97 +f 1235/2219/97 1236/2221/97 1231/2220/97 +f 1236/2221/97 1237/2222/97 1233/2223/97 +f 1233/2223/97 1232/2224/97 1236/2221/97 +f 1232/2224/97 1231/2220/97 1236/2221/97 +f 1231/2220/97 1239/2081/97 1234/2083/97 +f 1251/2084/99 1255/2090/99 1257/2085/99 +f 1258/2087/98 1256/2092/98 1252/2088/98 +f 1255/2090/97 1251/2225/97 1252/2091/97 +f 1257/2085/94 1255/2090/94 1256/2092/94 +f 1257/2085/96 1258/2087/96 1254/2093/96 +f 1261/2095/102 1267/2226/102 1270/2096/102 +f 1262/2097/98 1266/2099/98 1265/2098/98 +f 1266/2099/96 1264/2102/96 1263/2100/96 +f 1264/2102/99 1260/2109/99 1259/2103/99 +f 1265/2098/94 1263/2227/94 1259/2105/94 +f 1262/2097/95 1260/2109/95 1264/2102/95 +f 1269/2106/97 1270/2228/97 1267/2107/97 +f 1260/2109/103 1269/2229/103 1268/2110/103 +f 1262/2097/104 1270/2228/104 1269/2106/104 +f 1259/2105/105 1268/2230/105 1267/2111/105 +f 1287/2112/94 1299/2116/94 1298/2113/94 +f 1288/2115/94 1300/2118/94 1299/2116/94 +f 1289/2117/94 1301/2120/94 1300/2118/94 +f 1290/2119/94 1302/2122/94 1301/2120/94 +f 1290/2119/94 1291/2123/94 1303/2121/94 +f 1291/2123/94 1292/2125/94 1304/2124/94 +f 1292/2125/94 1293/2127/94 1305/2126/94 +f 1293/2127/94 1294/2129/94 1306/2128/94 +f 1294/2129/94 1283/2231/94 1295/2130/94 +f 1284/2131/94 1296/2135/94 1295/2132/94 +f 1285/2134/94 1297/2136/94 1296/2135/94 +f 1286/2114/94 1298/2113/94 1297/2136/94 +f 1307/2139/95 1308/2232/95 1311/2137/95 +f 1308/2232/95 1309/2233/95 1311/2137/95 +f 1309/2233/95 1310/2234/95 1311/2137/95 +f 1311/2137/95 1312/2235/95 1313/2236/95 +f 1313/2236/95 1314/2237/95 1315/2138/95 +f 1315/2138/95 1316/2238/95 1317/2239/95 +f 1317/2239/95 1318/2240/95 1315/2138/95 +f 1318/2240/95 1307/2139/95 1315/2138/95 +f 1311/2137/95 1313/2236/95 1315/2138/95 +f 1333/2141/96 1329/2241/96 1338/2242/96 +f 1338/2242/96 1337/2243/96 1333/2141/96 +f 1337/2243/96 1336/2142/96 1333/2141/96 +f 1336/2142/96 1335/2244/96 1331/2245/96 +f 1335/2244/96 1334/2246/96 1331/2245/96 +f 1334/2246/96 1330/2247/96 1331/2245/96 +f 1331/2245/96 1332/2140/96 1336/2142/96 +f 1328/2144/97 1326/2248/97 1322/2145/97 +f 1322/2145/97 1323/2249/97 1319/2250/97 +f 1323/2249/97 1324/2251/97 1319/2250/97 +f 1324/2251/97 1325/2252/97 1321/2253/97 +f 1321/2253/97 1320/2254/97 1324/2251/97 +f 1320/2254/97 1319/2250/97 1324/2251/97 +f 1319/2250/97 1327/2143/97 1322/2145/97 +f 1355/2146/98 1367/2150/98 1366/2147/98 +f 1356/2149/98 1368/2152/98 1367/2150/98 +f 1357/2151/98 1369/2154/98 1368/2152/98 +f 1358/2153/98 1370/2156/98 1369/2154/98 +f 1358/2153/98 1359/2158/98 1371/2155/98 +f 1360/2157/98 1372/2160/98 1371/2155/98 +f 1361/2159/98 1373/2162/98 1372/2160/98 +f 1361/2159/98 1362/2163/98 1374/2161/98 +f 1362/2163/98 1351/2255/98 1363/2164/98 +f 1352/2165/98 1364/2169/98 1363/2166/98 +f 1353/2168/98 1365/2170/98 1364/2169/98 +f 1354/2148/98 1366/2147/98 1365/2170/98 +f 1375/2173/99 1376/2256/99 1377/2257/99 +f 1377/2257/99 1378/2258/99 1379/2171/99 +f 1379/2171/99 1380/2259/99 1383/2172/99 +f 1380/2259/99 1381/2260/99 1383/2172/99 +f 1381/2260/99 1382/2261/99 1383/2172/99 +f 1383/2172/99 1384/2262/99 1385/2263/99 +f 1385/2263/99 1386/2264/99 1383/2172/99 +f 1386/2264/99 1375/2173/99 1383/2172/99 +f 1375/2173/99 1377/2257/99 1379/2171/99 +f 1387/2174/99 1391/2180/99 1393/2175/99 +f 1394/2177/98 1392/2182/98 1388/2178/98 +f 1391/2180/97 1387/2265/97 1388/2181/97 +f 1393/2175/94 1391/2180/94 1392/2182/94 +f 1393/2175/96 1394/2177/96 1390/2183/96 +s 1 +f 1100/2266/106 1089/2267/107 1088/2268/106 +f 1107/2269/108 1096/2270/94 1095/2271/108 +f 1104/2272/109 1093/2273/99 1092/2274/109 +f 1101/2275/107 1090/2276/95 1089/2267/107 +f 1108/2277/94 1097/2278/110 1096/2279/94 +f 1105/2280/99 1094/2281/111 1093/2273/99 +f 1102/2282/95 1091/2283/112 1090/2276/95 +f 1109/2284/110 1098/2285/113 1097/2278/110 +f 1099/2286/98 1088/2268/106 1087/2287/98 +f 1106/2288/111 1095/2271/108 1094/2281/111 +f 1103/2289/112 1092/2274/109 1091/2283/112 +f 1110/2290/113 1087/2287/98 1098/2285/113 +f 1092/2274/114 1115/2291/115 1091/2283/115 +f 1091/2283/115 1114/2292/116 1090/2276/116 +f 1090/2276/116 1113/2293/117 1089/2267/117 +f 1089/2267/117 1112/2294/118 1088/2268/118 +f 1088/2268/118 1111/2295/119 1087/2287/119 +f 1087/2287/119 1122/2296/120 1098/2285/120 +f 1097/2278/121 1122/2296/120 1121/2297/121 +f 1096/2279/122 1121/2297/121 1120/2298/122 +f 1096/2270/122 1119/2299/123 1095/2271/123 +f 1095/2271/123 1118/2300/124 1094/2281/124 +f 1094/2281/124 1117/2301/125 1093/2273/125 +f 1092/2274/114 1117/2301/125 1116/2302/114 +f 1118/2300/111 1129/2045/99 1117/2301/99 +f 1115/2291/112 1126/2024/95 1114/2292/95 +f 1122/2296/113 1133/2036/110 1121/2297/110 +f 1112/2294/106 1123/2031/98 1111/2295/98 +f 1119/2299/108 1130/2043/111 1118/2300/111 +f 1116/2302/109 1127/2048/112 1115/2291/112 +f 1111/2295/98 1134/2034/113 1122/2296/113 +f 1113/2293/107 1124/2029/106 1112/2294/106 +f 1120/2303/94 1131/2041/108 1119/2299/108 +f 1117/2301/99 1128/2047/109 1116/2302/109 +f 1114/2292/95 1125/2027/107 1113/2293/107 +f 1121/2297/110 1132/2038/94 1120/2298/94 +f 1138/2026/94 1149/2304/108 1137/2028/108 +f 1145/2035/112 1156/2305/95 1144/2037/95 +f 1142/2042/106 1153/2306/98 1141/2044/98 +f 1139/2025/110 1150/2307/94 1138/2026/94 +f 1146/2033/109 1157/2308/112 1145/2035/112 +f 1136/2030/111 1147/2309/99 1135/2032/99 +f 1143/2040/107 1154/2310/106 1142/2042/106 +f 1140/2046/113 1151/2311/110 1139/2025/110 +f 1135/2032/99 1158/2312/109 1146/2033/109 +f 1137/2028/108 1148/2313/111 1136/2030/111 +f 1144/2189/95 1155/2314/107 1143/2040/107 +f 1141/2044/98 1152/2315/113 1140/2046/113 +f 1103/2289/126 1164/2316/127 1104/2272/127 +f 1162/2317/128 1103/2289/126 1102/2282/128 +f 1161/2318/129 1102/2282/128 1101/2275/129 +f 1100/2266/130 1161/2318/129 1101/2275/129 +f 1099/2286/131 1160/2319/130 1100/2266/130 +f 1110/2290/132 1159/2320/131 1099/2286/131 +f 1109/2284/133 1170/2321/132 1110/2290/132 +f 1108/2277/134 1169/2322/133 1109/2284/133 +f 1107/2269/135 1168/2323/134 1108/2324/134 +f 1166/2325/136 1107/2269/135 1106/2288/136 +f 1165/2326/137 1106/2288/136 1105/2280/137 +f 1164/2316/127 1105/2280/137 1104/2272/127 +f 1164/2316/109 1177/2327/99 1165/2326/99 +f 1161/2318/107 1174/2328/95 1162/2317/95 +f 1168/2329/94 1181/2330/110 1169/2322/110 +f 1165/2326/99 1178/2331/111 1166/2325/111 +f 1162/2317/95 1175/2332/112 1163/2333/112 +f 1169/2322/110 1182/2334/113 1170/2321/113 +f 1159/2320/98 1172/2335/106 1160/2319/106 +f 1166/2325/111 1179/2336/108 1167/2337/108 +f 1163/2333/112 1176/2338/109 1164/2316/109 +f 1170/2321/113 1171/2339/98 1159/2320/98 +f 1160/2319/106 1173/2340/107 1161/2318/107 +f 1167/2337/108 1180/2341/94 1168/2323/94 +f 1187/2342/138 1176/2343/139 1175/2344/138 +f 1186/2345/140 1175/2346/138 1174/2347/140 +f 1173/2348/141 1186/2345/140 1174/2349/140 +f 1172/2350/142 1185/2351/141 1173/2352/141 +f 1183/2353/143 1172/2354/142 1171/2355/143 +f 1182/2356/144 1183/2353/143 1171/2357/143 +f 1193/2358/145 1182/2359/144 1181/2360/145 +f 1192/2361/146 1181/2362/145 1180/2363/146 +f 1191/2364/147 1180/2341/146 1179/2336/147 +f 1190/2365/148 1179/2366/147 1178/2367/148 +f 1177/2368/149 1190/2365/148 1178/2369/148 +f 1188/2370/139 1177/2371/149 1176/2372/139 +f 1191/2364/108 1204/2063/94 1192/2373/94 +f 1188/2370/109 1201/2057/99 1189/2374/99 +f 1185/2351/107 1198/2052/95 1186/2345/95 +f 1192/2361/94 1205/2066/110 1193/2358/110 +f 1189/2374/99 1202/2059/111 1190/2365/111 +f 1186/2345/95 1199/2054/112 1187/2342/112 +f 1193/2358/110 1206/2068/113 1194/2375/113 +f 1183/2353/98 1196/2072/106 1184/2376/106 +f 1190/2365/111 1203/2061/108 1191/2364/108 +f 1187/2342/112 1200/2055/109 1188/2370/109 +f 1194/2375/113 1195/2070/98 1183/2353/98 +f 1184/2376/106 1197/2074/107 1185/2351/107 +f 1211/2053/110 1224/2377/113 1212/2056/113 +f 1218/2067/109 1219/2378/99 1207/2069/99 +f 1208/2071/111 1221/2379/108 1209/2073/108 +f 1215/2060/107 1228/2380/95 1216/2062/95 +f 1212/2056/113 1225/2381/98 1213/2058/98 +f 1209/2073/108 1222/2382/94 1210/2199/94 +f 1216/2201/95 1229/2383/112 1217/2065/112 +f 1213/2058/98 1226/2384/106 1214/2200/106 +f 1210/2199/94 1223/2385/110 1211/2053/110 +f 1217/2065/112 1230/2386/109 1218/2067/109 +f 1207/2069/99 1220/2387/111 1208/2071/111 +f 1214/2200/106 1227/2388/107 1215/2060/107 +f 1236/2389/150 1242/2390/151 1237/2391/151 +f 1240/2392/152 1241/2393/153 1238/2394/153 +f 1234/2395/154 1244/2396/94 1235/2397/94 +f 1239/2398/155 1250/2399/152 1240/2392/152 +f 1246/2400/156 1237/2391/151 1242/2390/151 +f 1238/2394/153 1245/2401/154 1234/2395/154 +f 1232/2402/157 1248/2403/95 1231/2404/95 +f 1235/2405/94 1243/2406/150 1236/2389/150 +f 1231/2407/95 1249/2408/155 1239/2398/155 +f 1233/2409/156 1247/2410/157 1232/2402/157 +f 1277/2411/99 1288/2115/158 1276/2412/158 +f 1274/2413/97 1285/2134/159 1273/2414/159 +f 1281/2415/160 1292/2125/96 1280/2416/96 +f 1278/2417/161 1289/2117/99 1277/2411/99 +f 1275/2418/162 1286/2114/97 1274/2413/97 +f 1282/2419/163 1293/2127/160 1281/2415/160 +f 1272/2420/164 1283/2133/98 1271/2421/98 +f 1279/2422/165 1290/2119/161 1278/2417/161 +f 1276/2412/158 1287/2112/162 1275/2418/162 +f 1271/2423/98 1294/2129/163 1282/2419/163 +f 1273/2414/159 1284/2131/164 1272/2420/164 +f 1280/2416/96 1291/2123/165 1279/2422/165 +f 1299/2116/162 1310/2424/97 1298/2113/97 +f 1306/2128/163 1317/2425/160 1305/2126/160 +f 1296/2135/164 1307/2426/98 1295/2132/98 +f 1303/2121/165 1314/2427/161 1302/2122/161 +f 1300/2118/158 1311/2428/162 1299/2116/162 +f 1295/2130/98 1318/2429/163 1306/2128/163 +f 1297/2136/159 1308/2430/164 1296/2135/164 +f 1304/2124/96 1315/2431/165 1303/2121/165 +f 1301/2120/99 1312/2432/158 1300/2118/158 +f 1298/2113/97 1309/2433/159 1297/2136/159 +f 1305/2126/160 1316/2434/96 1304/2124/96 +f 1302/2122/161 1313/2435/99 1301/2120/99 +f 1324/2436/150 1330/2437/151 1325/2438/151 +f 1328/2439/152 1329/2440/153 1326/2441/153 +f 1322/2442/154 1332/2443/94 1323/2444/94 +f 1327/2445/155 1338/2446/152 1328/2439/152 +f 1334/2447/156 1325/2438/151 1330/2437/151 +f 1326/2441/153 1333/2448/154 1322/2442/154 +f 1320/2449/157 1336/2450/95 1319/2451/95 +f 1323/2452/94 1331/2453/150 1324/2436/150 +f 1319/2454/95 1337/2455/155 1327/2445/155 +f 1321/2456/156 1335/2457/157 1320/2449/157 +f 1345/2458/94 1356/2149/166 1344/2459/166 +f 1342/2460/97 1353/2168/167 1341/2461/167 +f 1349/2462/168 1360/2157/96 1348/2463/96 +f 1346/2464/169 1357/2151/94 1345/2458/94 +f 1343/2465/170 1354/2148/97 1342/2460/97 +f 1350/2466/171 1361/2159/168 1349/2462/168 +f 1340/2467/172 1351/2167/95 1339/2468/95 +f 1347/2469/173 1358/2153/169 1346/2464/169 +f 1344/2459/166 1355/2146/170 1343/2465/170 +f 1339/2470/95 1362/2163/171 1350/2466/171 +f 1341/2461/167 1352/2165/172 1340/2467/172 +f 1348/2463/96 1359/2158/173 1347/2469/173 +f 1367/2150/170 1378/2471/97 1366/2147/97 +f 1374/2161/171 1385/2472/168 1373/2162/168 +f 1364/2169/172 1375/2473/95 1363/2166/95 +f 1371/2155/173 1382/2474/169 1370/2156/169 +f 1368/2152/166 1379/2475/170 1367/2150/170 +f 1363/2164/95 1386/2476/171 1374/2161/171 +f 1365/2170/167 1376/2477/172 1364/2169/172 +f 1372/2160/96 1383/2478/173 1371/2155/173 +f 1369/2154/94 1380/2479/166 1368/2152/166 +f 1366/2147/97 1377/2480/167 1365/2170/167 +f 1373/2162/168 1384/2481/96 1372/2160/96 +f 1370/2156/169 1381/2482/94 1369/2154/94 +f 1100/2266/106 1101/2275/107 1089/2267/107 +f 1107/2269/108 1108/2324/94 1096/2270/94 +f 1104/2272/109 1105/2280/99 1093/2273/99 +f 1101/2275/107 1102/2282/95 1090/2276/95 +f 1108/2277/94 1109/2284/110 1097/2278/110 +f 1105/2280/99 1106/2288/111 1094/2281/111 +f 1102/2282/95 1103/2289/112 1091/2283/112 +f 1109/2284/110 1110/2290/113 1098/2285/113 +f 1099/2286/98 1100/2266/106 1088/2268/106 +f 1106/2288/111 1107/2269/108 1095/2271/108 +f 1103/2289/112 1104/2272/109 1092/2274/109 +f 1110/2290/113 1099/2286/98 1087/2287/98 +f 1092/2274/114 1116/2302/114 1115/2291/115 +f 1091/2283/115 1115/2291/115 1114/2292/116 +f 1090/2276/116 1114/2292/116 1113/2293/117 +f 1089/2267/117 1113/2293/117 1112/2294/118 +f 1088/2268/118 1112/2294/118 1111/2295/119 +f 1087/2287/119 1111/2295/119 1122/2296/120 +f 1097/2278/121 1098/2285/120 1122/2296/120 +f 1096/2279/122 1097/2278/121 1121/2297/121 +f 1096/2270/122 1120/2303/122 1119/2299/123 +f 1095/2271/123 1119/2299/123 1118/2300/124 +f 1094/2281/124 1118/2300/124 1117/2301/125 +f 1092/2274/114 1093/2273/125 1117/2301/125 +f 1118/2300/111 1130/2043/111 1129/2045/99 +f 1115/2291/112 1127/2048/112 1126/2024/95 +f 1122/2296/113 1134/2034/113 1133/2036/110 +f 1112/2294/106 1124/2029/106 1123/2031/98 +f 1119/2299/108 1131/2041/108 1130/2043/111 +f 1116/2302/109 1128/2047/109 1127/2048/112 +f 1111/2295/98 1123/2031/98 1134/2034/113 +f 1113/2293/107 1125/2027/107 1124/2029/106 +f 1120/2303/94 1132/2039/94 1131/2041/108 +f 1117/2301/99 1129/2045/99 1128/2047/109 +f 1114/2292/95 1126/2024/95 1125/2027/107 +f 1121/2297/110 1133/2036/110 1132/2038/94 +f 1138/2026/94 1150/2307/94 1149/2304/108 +f 1145/2035/112 1157/2308/112 1156/2305/95 +f 1142/2042/106 1154/2310/106 1153/2306/98 +f 1139/2025/110 1151/2311/110 1150/2307/94 +f 1146/2033/109 1158/2312/109 1157/2308/112 +f 1136/2030/111 1148/2313/111 1147/2309/99 +f 1143/2040/107 1155/2314/107 1154/2310/106 +f 1140/2046/113 1152/2315/113 1151/2311/110 +f 1135/2032/99 1147/2309/99 1158/2312/109 +f 1137/2028/108 1149/2304/108 1148/2313/111 +f 1144/2189/95 1156/2483/95 1155/2314/107 +f 1141/2044/98 1153/2306/98 1152/2315/113 +f 1103/2289/126 1163/2333/126 1164/2316/127 +f 1162/2317/128 1163/2333/126 1103/2289/126 +f 1161/2318/129 1162/2317/128 1102/2282/128 +f 1100/2266/130 1160/2319/130 1161/2318/129 +f 1099/2286/131 1159/2320/131 1160/2319/130 +f 1110/2290/132 1170/2321/132 1159/2320/131 +f 1109/2284/133 1169/2322/133 1170/2321/132 +f 1108/2277/134 1168/2329/134 1169/2322/133 +f 1107/2269/135 1167/2337/135 1168/2323/134 +f 1166/2325/136 1167/2337/135 1107/2269/135 +f 1165/2326/137 1166/2325/136 1106/2288/136 +f 1164/2316/127 1165/2326/137 1105/2280/137 +f 1164/2316/109 1176/2338/109 1177/2327/99 +f 1161/2318/107 1173/2340/107 1174/2328/95 +f 1168/2329/94 1180/2484/94 1181/2330/110 +f 1165/2326/99 1177/2327/99 1178/2331/111 +f 1162/2317/95 1174/2328/95 1175/2332/112 +f 1169/2322/110 1181/2330/110 1182/2334/113 +f 1159/2320/98 1171/2339/98 1172/2335/106 +f 1166/2325/111 1178/2331/111 1179/2336/108 +f 1163/2333/112 1175/2332/112 1176/2338/109 +f 1170/2321/113 1182/2334/113 1171/2339/98 +f 1160/2319/106 1172/2335/106 1173/2340/107 +f 1167/2337/108 1179/2336/108 1180/2341/94 +f 1187/2342/138 1188/2370/139 1176/2343/139 +f 1186/2345/140 1187/2342/138 1175/2346/138 +f 1173/2348/141 1185/2351/141 1186/2345/140 +f 1172/2350/142 1184/2376/142 1185/2351/141 +f 1183/2353/143 1184/2376/142 1172/2354/142 +f 1182/2356/144 1194/2375/144 1183/2353/143 +f 1193/2358/145 1194/2375/144 1182/2359/144 +f 1192/2361/146 1193/2358/145 1181/2362/145 +f 1191/2364/147 1192/2373/146 1180/2341/146 +f 1190/2365/148 1191/2364/147 1179/2366/147 +f 1177/2368/149 1189/2374/149 1190/2365/148 +f 1188/2370/139 1189/2374/149 1177/2371/149 +f 1191/2364/108 1203/2061/108 1204/2063/94 +f 1188/2370/109 1200/2055/109 1201/2057/99 +f 1185/2351/107 1197/2074/107 1198/2052/95 +f 1192/2361/94 1204/2064/94 1205/2066/110 +f 1189/2374/99 1201/2057/99 1202/2059/111 +f 1186/2345/95 1198/2052/95 1199/2054/112 +f 1193/2358/110 1205/2066/110 1206/2068/113 +f 1183/2353/98 1195/2070/98 1196/2072/106 +f 1190/2365/111 1202/2059/111 1203/2061/108 +f 1187/2342/112 1199/2054/112 1200/2055/109 +f 1194/2375/113 1206/2068/113 1195/2070/98 +f 1184/2376/106 1196/2072/106 1197/2074/107 +f 1211/2053/110 1223/2385/110 1224/2377/113 +f 1218/2067/109 1230/2386/109 1219/2378/99 +f 1208/2071/111 1220/2387/111 1221/2379/108 +f 1215/2060/107 1227/2388/107 1228/2380/95 +f 1212/2056/113 1224/2377/113 1225/2381/98 +f 1209/2073/108 1221/2379/108 1222/2382/94 +f 1216/2201/95 1228/2485/95 1229/2383/112 +f 1213/2058/98 1225/2381/98 1226/2384/106 +f 1210/2199/94 1222/2382/94 1223/2385/110 +f 1217/2065/112 1229/2383/112 1230/2386/109 +f 1207/2069/99 1219/2378/99 1220/2387/111 +f 1214/2200/106 1226/2384/106 1227/2388/107 +f 1236/2389/150 1243/2406/150 1242/2390/151 +f 1240/2392/152 1250/2399/152 1241/2393/153 +f 1234/2395/154 1245/2401/154 1244/2396/94 +f 1239/2398/155 1249/2408/155 1250/2399/152 +f 1246/2400/156 1233/2409/156 1237/2391/151 +f 1238/2394/153 1241/2393/153 1245/2401/154 +f 1232/2402/157 1247/2410/157 1248/2403/95 +f 1235/2405/94 1244/2486/94 1243/2406/150 +f 1231/2407/95 1248/2487/95 1249/2408/155 +f 1233/2409/156 1246/2400/156 1247/2410/157 +f 1277/2411/99 1289/2117/99 1288/2115/158 +f 1274/2413/97 1286/2114/97 1285/2134/159 +f 1281/2415/160 1293/2127/160 1292/2125/96 +f 1278/2417/161 1290/2119/161 1289/2117/99 +f 1275/2418/162 1287/2112/162 1286/2114/97 +f 1282/2419/163 1294/2129/163 1293/2127/160 +f 1272/2420/164 1284/2131/164 1283/2133/98 +f 1279/2422/165 1291/2123/165 1290/2119/161 +f 1276/2412/158 1288/2115/158 1287/2112/162 +f 1271/2423/98 1283/2231/98 1294/2129/163 +f 1273/2414/159 1285/2134/159 1284/2131/164 +f 1280/2416/96 1292/2125/96 1291/2123/165 +f 1299/2116/162 1311/2428/162 1310/2424/97 +f 1306/2128/163 1318/2429/163 1317/2425/160 +f 1296/2135/164 1308/2430/164 1307/2426/98 +f 1303/2121/165 1315/2431/165 1314/2427/161 +f 1300/2118/158 1312/2432/158 1311/2428/162 +f 1295/2130/98 1307/2488/98 1318/2429/163 +f 1297/2136/159 1309/2433/159 1308/2430/164 +f 1304/2124/96 1316/2434/96 1315/2431/165 +f 1301/2120/99 1313/2435/99 1312/2432/158 +f 1298/2113/97 1310/2424/97 1309/2433/159 +f 1305/2126/160 1317/2425/160 1316/2434/96 +f 1302/2122/161 1314/2427/161 1313/2435/99 +f 1324/2436/150 1331/2453/150 1330/2437/151 +f 1328/2439/152 1338/2446/152 1329/2440/153 +f 1322/2442/154 1333/2448/154 1332/2443/94 +f 1327/2445/155 1337/2455/155 1338/2446/152 +f 1334/2447/156 1321/2456/156 1325/2438/151 +f 1326/2441/153 1329/2440/153 1333/2448/154 +f 1320/2449/157 1335/2457/157 1336/2450/95 +f 1323/2452/94 1332/2489/94 1331/2453/150 +f 1319/2454/95 1336/2490/95 1337/2455/155 +f 1321/2456/156 1334/2447/156 1335/2457/157 +f 1345/2458/94 1357/2151/94 1356/2149/166 +f 1342/2460/97 1354/2148/97 1353/2168/167 +f 1349/2462/168 1361/2159/168 1360/2157/96 +f 1346/2464/169 1358/2153/169 1357/2151/94 +f 1343/2465/170 1355/2146/170 1354/2148/97 +f 1350/2466/171 1362/2163/171 1361/2159/168 +f 1340/2467/172 1352/2165/172 1351/2167/95 +f 1347/2469/173 1359/2158/173 1358/2153/169 +f 1344/2459/166 1356/2149/166 1355/2146/170 +f 1339/2470/95 1351/2255/95 1362/2163/171 +f 1341/2461/167 1353/2168/167 1352/2165/172 +f 1348/2463/96 1360/2157/96 1359/2158/173 +f 1367/2150/170 1379/2475/170 1378/2471/97 +f 1374/2161/171 1386/2476/171 1385/2472/168 +f 1364/2169/172 1376/2477/172 1375/2473/95 +f 1371/2155/173 1383/2478/173 1382/2474/169 +f 1368/2152/166 1380/2479/166 1379/2475/170 +f 1363/2164/95 1375/2491/95 1386/2476/171 +f 1365/2170/167 1377/2480/167 1376/2477/172 +f 1372/2160/96 1384/2481/96 1383/2478/173 +f 1369/2154/94 1381/2482/94 1380/2479/166 +f 1366/2147/97 1378/2471/97 1377/2480/167 +f 1373/2162/168 1385/2472/168 1384/2481/96 +f 1370/2156/169 1382/2474/169 1381/2482/94 +o Gun +v -8.750000 2.500000 -0.500000 +v -1.000000 2.500000 -0.500000 +v -8.750000 2.250000 -0.433013 +v -1.000000 2.250000 -0.433013 +v -8.750000 2.066987 -0.250000 +v -1.000000 2.066987 -0.250000 +v -8.750000 2.000000 0.000000 +v -1.000000 2.000000 0.000000 +v -8.750000 2.066987 0.250000 +v -1.000000 2.066987 0.250000 +v -8.750000 2.250000 0.433013 +v -1.000000 2.250000 0.433013 +v -8.750000 2.500000 0.500000 +v -1.000000 2.500000 0.500000 +v -8.750000 2.750000 0.433013 +v -1.000000 2.750000 0.433013 +v -8.750000 2.933012 0.250000 +v -1.000000 2.933012 0.250000 +v -8.750000 3.000000 0.000000 +v -1.000000 3.000000 0.000000 +v -8.750000 2.933013 -0.250000 +v -1.000000 2.933013 -0.250000 +v -8.750000 2.750000 -0.433012 +v -1.000000 2.750000 -0.433012 +v -8.750000 2.500000 -0.375000 +v -8.750000 2.312500 -0.324759 +v -8.750000 2.175241 -0.187500 +v -8.750000 2.125000 0.000000 +v -8.750000 2.175241 0.187500 +v -8.750000 2.312500 0.324759 +v -8.750000 2.500000 0.375000 +v -8.750000 2.687500 0.324759 +v -8.750000 2.824759 0.187500 +v -8.750000 2.875000 0.000000 +v -8.750000 2.824759 -0.187500 +v -8.750000 2.687500 -0.324759 +v 0.001000 2.500000 -0.375000 +v 0.001000 2.312500 -0.324759 +v 0.001000 2.175241 -0.187500 +v 0.001000 2.125000 0.000000 +v 0.001000 2.175241 0.187500 +v 0.001000 2.312500 0.324759 +v 0.001000 2.500000 0.375000 +v 0.001000 2.687500 0.324759 +v 0.001000 2.824759 0.187500 +v 0.001000 2.875000 0.000000 +v 0.001000 2.824759 -0.187500 +v 0.001000 2.687500 -0.324759 +v -1.000000 2.500000 -0.625000 +v -1.000000 2.187500 -0.541266 +v -1.000000 1.958734 -0.312500 +v -1.000000 1.875000 0.000000 +v -1.000000 1.958734 0.312500 +v -1.000000 2.187500 0.541265 +v -1.000000 2.500000 0.625000 +v -1.000000 2.812500 0.541266 +v -1.000000 3.041266 0.312500 +v -1.000000 3.125000 0.000000 +v -1.000000 3.041266 -0.312500 +v -1.000000 2.812500 -0.541265 +v 0.001000 2.500000 -0.625000 +v 0.001000 2.187500 -0.541266 +v 0.001000 1.958734 -0.312500 +v 0.001000 1.875000 0.000000 +v 0.001000 1.958734 0.312500 +v 0.001000 2.187500 0.541265 +v 0.001000 2.500000 0.625000 +v 0.001000 2.812500 0.541266 +v 0.001000 3.041266 0.312500 +v 0.001000 3.125000 0.000000 +v 0.001000 3.041266 -0.312500 +v 0.001000 2.812500 -0.541265 +v 0.000000 0.562500 0.500000 +v 2.500000 0.562500 0.500000 +v 0.000000 0.562500 -0.500000 +v 2.500000 0.562500 -0.500000 +v 2.500000 -0.187500 0.500000 +v 2.500000 -0.187500 -0.500000 +v 0.000000 -0.187500 -0.500000 +v 0.000000 -0.187500 0.500000 +v 2.500000 2.937500 0.500000 +v 2.500000 2.937500 -0.500000 +v -0.999000 3.187500 0.500000 +v -0.999000 3.187500 -0.500000 +v 0.625000 3.187500 0.500000 +v 0.625000 3.187500 -0.500000 +v 1.375000 3.437500 0.500000 +v 1.375000 3.437500 -0.500000 +v 2.750000 3.437500 0.500000 +v 2.750000 3.437500 -0.500000 +v 2.750000 3.187500 0.500000 +v 2.750000 3.187500 -0.500000 +v 3.000000 3.187500 0.500000 +v 3.000000 3.187500 -0.500000 +v 0.000000 2.937500 -0.500000 +v 0.000000 2.937500 0.500000 +v 0.000000 -0.187500 -0.500000 +v 0.000000 -0.187500 0.000000 +v -0.750000 -0.187500 -0.500000 +v 0.000000 2.187500 -0.500000 +v -3.750000 1.250000 0.250000 +v -1.000000 1.250000 0.250000 +v -3.750000 1.250000 -0.250000 +v -1.000000 1.250000 -0.250000 +v 0.000000 1.750000 -0.187500 +v 0.000000 1.882583 -0.132582 +v 0.000000 1.937500 0.000000 +v 0.000000 1.562500 0.000000 +v 0.000000 1.617417 -0.132582 +v -1.000000 1.750000 -0.187500 +v -1.000000 1.882583 -0.132582 +v -1.000000 1.937500 0.000000 +v -1.000000 1.562500 0.000000 +v -1.000000 1.617417 -0.132582 +v -0.750000 -0.187500 0.000000 +v -1.000000 2.187500 -0.500000 +v -0.750000 0.687500 -0.500000 +v -0.750000 0.687500 0.000000 +v -1.000000 1.062500 -0.500000 +v -1.000000 1.062500 0.000000 +v -4.250000 2.125000 -0.250000 +v -4.250000 2.125000 0.250000 +v -1.000000 2.125000 0.250000 +v -1.000000 2.125000 -0.250000 +v -1.000000 1.625000 0.250000 +v -3.000000 1.625000 0.250000 +v -3.000000 1.875000 0.250000 +v -1.000000 1.875000 0.250000 +v -1.000000 1.625000 -0.125000 +v -3.000000 1.625000 -0.125000 +v -3.000000 1.875000 -0.125000 +v -1.000000 1.875000 -0.125000 +v 3.625000 2.437500 0.500000 +v 3.625000 2.437500 -0.500000 +v 4.875000 1.687500 0.500000 +v 4.875000 1.687500 -0.500000 +v 5.875000 1.312500 0.500000 +v 5.875000 1.312500 -0.500000 +v 5.875000 0.687500 0.500000 +v 5.875000 0.687500 -0.500000 +v 7.875000 -3.687500 -0.500000 +v 7.875000 -3.687500 0.500000 +v 6.875000 -0.937500 0.500000 +v 6.875000 -0.937500 -0.500000 +v 4.750000 -3.687500 -0.500000 +v 4.750000 -3.687500 0.500000 +v 4.750000 -2.937500 -0.500000 +v 4.750000 -2.937500 0.500000 +v 4.500000 -1.937500 -0.500000 +v 4.500000 -1.937500 0.500000 +v 3.875000 -1.062500 -0.500000 +v 3.875000 -1.062500 0.500000 +v 3.125000 -0.937500 -0.500000 +v 3.125000 -0.937500 0.500000 +v 2.875000 -0.437500 -0.500000 +v 2.875000 -0.437500 0.500000 +v 4.750000 -4.312500 -0.500000 +v 7.875000 -4.312500 0.500000 +v 7.875000 -4.312500 -0.500000 +v 4.750000 -4.312500 0.500000 +v 5.500000 1.312500 0.500000 +v 5.750000 0.687500 0.500000 +v 7.750000 -3.687500 0.500000 +v 6.750000 -0.937500 0.500000 +v 4.750000 1.062500 0.500000 +v 3.500000 -0.187500 0.500000 +v 4.875000 -3.687500 0.500000 +v 4.875000 -2.937500 0.500000 +v 4.625000 -1.937500 0.500000 +v 4.000000 -0.937500 0.500000 +v 3.250000 -0.812500 0.500000 +v 7.625000 -4.062500 1.000000 +v 5.000000 -4.062500 1.000000 +v 5.250000 0.687500 0.750000 +v 7.500000 -3.687500 1.000000 +v 6.500000 -0.937500 1.000000 +v 5.125000 -3.687500 1.000000 +v 5.125000 -2.937500 1.000000 +v 4.875000 -1.937500 1.000000 +v 4.250000 -0.812500 1.000000 +v 3.750000 -0.562500 0.750000 +v 5.500000 1.312500 -0.500000 +v 5.750000 0.687500 -0.500000 +v 7.750000 -3.687500 -0.500000 +v 6.750000 -0.937500 -0.500000 +v 4.750000 1.062500 -0.500000 +v 3.500000 -0.187500 -0.500000 +v 4.875000 -3.687500 -0.500000 +v 4.875000 -2.937500 -0.500000 +v 4.625000 -1.937500 -0.500000 +v 4.000000 -0.937500 -0.500000 +v 3.250000 -0.812500 -0.500000 +v 7.625000 -4.062500 -1.000000 +v 5.000000 -4.062500 -1.000000 +v 5.250000 0.625000 -0.750000 +v 7.500000 -3.687500 -1.000000 +v 6.500000 -0.937500 -1.000000 +v 5.125000 -3.687500 -1.000000 +v 5.125000 -2.937500 -1.000000 +v 4.875000 -1.937500 -1.000000 +v 4.250000 -0.687500 -1.000000 +v 3.750000 -0.562500 -0.750000 +v 3.625000 2.437500 0.250000 +v 3.187500 2.812500 0.250000 +v 3.625000 2.437500 -0.250000 +v 4.875000 1.687500 0.250000 +v 3.500000 2.312500 -0.250000 +v 4.875000 1.687500 -0.250000 +v 3.312500 2.812500 -0.250000 +v 3.500000 2.312500 0.250000 +v 4.875000 1.562500 -0.250000 +v 3.187500 2.812500 -0.250000 +v 3.312500 2.812500 0.250000 +v 4.875000 1.562500 0.250000 +v 2.853553 2.169845 -0.729640 +v 2.500000 2.778405 -0.687500 +v 2.853553 2.477192 -0.632583 +v 2.853553 0.910311 0.500000 +v 2.500000 0.562500 0.500000 +v 2.500000 2.937500 -0.500000 +v 2.853553 1.022808 0.632583 +v 2.500000 0.721595 0.687500 +v 2.853553 2.589689 -0.500000 +v 2.853553 1.330155 0.729640 +v 2.500000 1.156250 0.824759 +v 3.000000 1.750000 -0.500000 +v 2.853553 1.750000 0.765165 +v 2.500000 1.750000 0.875000 +v 2.500000 0.562500 -0.500000 +v 2.853553 2.169845 0.729640 +v 2.500000 2.343750 0.824759 +v 2.853553 0.910311 -0.500000 +v 3.000000 1.750000 0.500000 +v 2.853553 2.477192 0.632583 +v 2.500000 2.778405 0.687500 +v 2.500000 0.721595 -0.687500 +v 2.853553 2.589689 0.500000 +v 2.500000 2.937500 0.500000 +v 2.853553 1.022808 -0.632583 +v 2.500000 1.156250 -0.824759 +v 2.853553 1.330155 -0.729640 +v 2.500000 1.750000 -0.875000 +v 2.500000 2.343750 -0.824759 +v 2.853553 1.750000 -0.765165 +v -8.749000 3.125000 -0.250000 +v -1.000000 3.125000 -0.250000 +v -8.749000 3.125000 0.250000 +v -1.000000 3.125000 0.250000 +v -8.749000 2.875000 -0.250000 +v -1.000000 2.875000 -0.250000 +v -8.749000 2.875000 0.250000 +v -1.000000 2.875000 0.250000 +v -8.500000 3.125000 -0.187500 +v -8.500000 3.125000 0.187500 +v -6.250000 3.125000 -0.187500 +v -6.250000 3.125000 0.187500 +v -8.500000 3.437500 0.187500 +v -8.500000 3.437500 -0.187500 +v -7.125000 3.437500 0.187500 +v -7.125000 3.437500 -0.187500 +v -8.437500 3.437500 -0.125000 +v -8.437500 3.437500 0.125000 +v -7.312500 3.437500 -0.125000 +v -7.312500 3.437500 0.125000 +v -8.312500 3.812500 0.062500 +v -8.312500 3.812500 -0.062500 +v -8.187500 3.812500 0.062500 +v -8.187500 3.812500 -0.062500 +v 0.500000 -0.187500 0.375000 +v 0.875000 -0.187500 0.375000 +v 0.500000 -0.187500 -0.375000 +v 0.875000 -0.187500 -0.375000 +v 0.750000 -0.937500 0.375000 +v 0.750000 -0.937500 -0.375000 +v 1.500000 -1.562500 0.375000 +v 1.500000 -1.562500 -0.375000 +v 2.500000 -1.562500 0.375000 +v 2.500000 -1.562500 -0.375000 +v 2.884670 -1.312500 0.375000 +v 2.884670 -1.312500 -0.375000 +v 3.125000 -0.925000 0.375000 +v 3.125000 -0.925000 -0.375000 +v 1.000000 -0.937500 0.375000 +v 1.000000 -0.937500 -0.375000 +v 1.500000 -1.312500 0.375000 +v 1.500000 -1.312500 -0.375000 +v 2.500000 -1.312500 0.375000 +v 2.500000 -1.312500 -0.375000 +v 2.750000 -1.187500 0.375000 +v 2.750000 -1.187500 -0.375000 +v 2.875000 -0.437500 0.375000 +v 2.875000 -0.437500 -0.375000 +v 1.875000 -0.187500 0.250000 +v 1.875000 -0.187500 -0.250000 +v 2.062500 -0.562500 0.250000 +v 2.062500 -0.562500 -0.250000 +v 2.062500 -0.937500 0.250000 +v 2.062500 -0.937500 -0.250000 +v 1.812500 -1.187500 0.250000 +v 1.812500 -1.187500 -0.250000 +v 2.000000 -1.187500 0.250000 +v 2.000000 -1.187500 -0.250000 +v 2.250000 -0.937500 0.250000 +v 2.250000 -0.937500 -0.250000 +v 2.250000 -0.437500 0.250000 +v 2.250000 -0.437500 -0.250000 +v 2.500000 -0.187500 0.250000 +v 2.500000 -0.187500 -0.250000 +v 0.000000 2.812500 0.500000 +v -0.999000 2.812500 0.500000 +v 0.000000 2.812500 -0.500000 +v -0.999000 2.812500 -0.500000 +v 0.000000 2.937500 0.000000 +v -0.999000 2.937500 0.000000 +v 0.000000 2.812500 0.250000 +v 0.000000 2.812500 -0.250000 +v -0.999000 2.812500 0.250000 +v -0.999000 2.812500 -0.250000 +v 5.187500 -3.312500 1.010000 +v 6.687500 -3.312500 1.010000 +v 5.187500 -1.812500 1.010000 +v 6.687500 -1.812500 1.010000 +vt 0.255396 0.168421 +vt 0.251799 0.147368 +vt 0.255396 0.147368 +vt 0.255396 0.252632 +vt 0.251799 0.231579 +vt 0.255396 0.231579 +vt 0.251799 0.210526 +vt 0.255396 0.210526 +vt 0.251799 0.126316 +vt 0.255396 0.126316 +vt 0.251799 0.105263 +vt 0.255396 0.105263 +vt 0.251799 0.084211 +vt 0.255396 0.084211 +vt 0.251799 0.063158 +vt 0.255396 0.063158 +vt 0.255396 0.042105 +vt 0.251799 0.042105 +vt 0.255396 0.021053 +vt 0.251799 0.021053 +vt 0.251799 0.000000 +vt 0.255396 -0.000000 +vt 0.255396 0.189474 +vt 0.251799 0.168421 +vt 0.251799 0.189474 +vt 0.478417 0.031579 +vt 0.482014 0.063158 +vt 0.478417 0.052632 +vt 0.478417 -0.000000 +vt 0.482014 0.031579 +vt 0.478417 0.021053 +vt 0.478417 0.273684 +vt 0.482014 0.252632 +vt 0.482014 0.284211 +vt 0.478417 0.305263 +vt 0.482014 0.315789 +vt 0.478417 0.347368 +vt 0.482014 0.378947 +vt 0.478417 0.368421 +vt 0.478417 0.221053 +vt 0.478417 0.242105 +vt 0.478417 0.315789 +vt 0.482014 0.347368 +vt 0.478417 0.336842 +vt 0.478417 0.210526 +vt 0.482014 0.189474 +vt 0.482014 0.221053 +vt 0.478417 0.178947 +vt 0.482014 0.157895 +vt 0.478417 0.126316 +vt 0.478417 0.147368 +vt 0.478417 0.115789 +vt 0.482014 0.094737 +vt 0.482014 0.126316 +vt 0.478417 0.063158 +vt 0.478417 0.084211 +vt 0.517986 0.178947 +vt 0.510791 0.157895 +vt 0.517986 0.157895 +vt 0.517986 0.210526 +vt 0.510791 0.189474 +vt 0.517986 0.189474 +vt 0.517986 0.221053 +vt 0.510791 0.252632 +vt 0.510791 0.221053 +vt 0.517986 0.273684 +vt 0.517986 0.252632 +vt 0.517986 0.305263 +vt 0.510791 0.284211 +vt 0.517986 0.284211 +vt 0.517986 0.336842 +vt 0.510791 0.315789 +vt 0.517986 0.315789 +vt 0.517986 0.368421 +vt 0.510791 0.347368 +vt 0.517986 0.347368 +vt 0.517986 0.000000 +vt 0.510791 0.031579 +vt 0.510791 -0.000000 +vt 0.517986 0.031579 +vt 0.510791 0.063158 +vt 0.517986 0.084211 +vt 0.517986 0.063158 +vt 0.517986 0.094737 +vt 0.510791 0.126316 +vt 0.510791 0.094737 +vt 0.517986 0.126316 +vt 0.687050 0.442105 +vt 0.615108 0.526316 +vt 0.615108 0.442105 +vt 0.586331 0.442105 +vt 0.615108 0.378947 +vt 0.812950 0.452632 +vt 0.784173 0.652632 +vt 0.784173 0.452632 +vt 0.586331 0.684211 +vt 0.633094 0.768421 +vt 0.586331 0.768421 +vt 0.633094 0.684211 +vt 0.654676 0.768421 +vt 0.654676 0.684211 +vt 0.694245 0.768421 +vt 0.694245 0.684211 +vt 0.701439 0.768421 +vt 0.701439 0.684211 +vt 0.708633 0.768421 +vt 0.687050 0.642105 +vt 0.615108 0.642105 +vt 0.615108 0.600000 +vt 0.507194 0.578947 +vt 0.507194 0.778947 +vt 0.496648 0.730873 +vt 0.025180 0.326316 +vt 0.104317 0.368421 +vt 0.025180 0.368421 +vt 0.687050 0.378947 +vt 0.615108 0.442105 +vt 0.687050 0.442105 +vt 0.492806 0.578947 +vt 0.471223 0.536842 +vt 0.492806 0.536842 +vt 0.464029 0.652632 +vt 0.449640 0.684211 +vt 0.449640 0.652632 +vt 0.464029 0.578947 +vt 0.449640 0.578947 +vt 0.449640 0.778947 +vt 0.420863 0.778947 +vt 0.458633 0.742105 +vt 0.460214 0.753268 +vt 0.471223 0.652632 +vt 0.471223 0.578947 +vt 0.000000 0.326316 +vt 0.104317 0.252632 +vt 0.104317 0.326316 +vt 0.046763 0.421053 +vt 0.010791 0.442105 +vt 0.046763 0.400000 +vt 0.104317 0.400000 +vt 0.104317 0.442105 +vt 0.118705 0.410526 +vt 0.176259 0.378947 +vt 0.176259 0.410526 +vt 0.107914 0.357895 +vt 0.118705 0.378947 +vt 0.107914 0.378947 +vt 0.176259 0.326316 +vt 0.118705 0.357895 +vt 0.118705 0.326316 +vt 0.176259 0.357895 +vt 0.715827 0.778947 +vt 0.719424 0.821053 +vt 0.715827 0.821053 +vt 0.730216 0.684211 +vt 0.766187 0.705263 +vt 0.730216 0.705263 +vt 0.794964 0.684211 +vt 0.794964 0.768421 +vt 0.841727 0.084211 +vt 0.751799 0.000000 +vt 0.841727 0.000000 +vt 0.615108 0.642105 +vt 0.586331 0.631579 +vt 0.586331 0.663158 +vt 0.751799 0.147368 +vt 0.751799 0.084211 +vt 0.812950 0.315789 +vt 0.751799 0.147368 +vt 0.744604 0.231579 +vt 0.726619 0.305263 +vt 0.784173 0.452632 +vt 0.755396 0.536842 +vt 0.726619 0.305263 +vt 0.697842 0.357895 +vt 0.755396 0.536842 +vt 0.701439 0.663158 +vt 0.694245 0.663158 +vt 0.730216 0.747368 +vt 0.766187 0.768421 +vt 0.730216 0.768421 +vt 0.719424 0.705263 +vt 0.708633 0.684211 +vt 0.719424 0.747368 +vt 0.769784 0.821053 +vt 0.766187 0.778947 +vt 0.769784 0.778947 +vt 0.730216 0.821053 +vt 0.723022 0.831579 +vt 0.762590 0.831579 +vt 0.730216 0.831579 +vt 0.723022 0.768421 +vt 0.730216 0.778947 +vt 0.719424 0.778947 +vt 0.762590 0.768421 +vt 0.766187 0.821053 +vt 0.161880 0.631283 +vt 0.161880 0.431875 +vt 0.172639 0.531579 +vt 0.152543 0.581431 +vt 0.151102 0.531579 +vt 0.161861 0.631283 +vt 0.255396 0.273684 +vt 0.478417 0.315789 +vt 0.255396 0.315789 +vt 0.255396 0.252632 +vt 0.478417 0.273684 +vt 0.478417 0.336842 +vt 0.248201 0.315789 +vt 0.183453 0.284211 +vt 0.223022 0.315789 +vt 0.183453 0.315789 +vt 0.183453 0.257895 +vt 0.223022 0.284211 +vt 0.248201 0.315789 +vt 0.248201 0.284211 +vt 0.183453 0.342105 +vt 0.248201 0.342105 +vt 0.174460 0.284211 +vt 0.174460 0.315789 +vt 0.143885 0.284211 +vt 0.147482 0.294737 +vt 0.143885 0.294737 +vt 0.140288 0.326316 +vt 0.172662 0.326316 +vt 0.133094 0.284211 +vt 0.133094 0.294737 +vt 0.140288 0.252632 +vt 0.147482 0.284211 +vt 0.172662 0.294737 +vt 0.172662 0.284211 +vt 0.262590 0.821053 +vt 0.269784 0.757895 +vt 0.273381 0.821053 +vt 0.262590 0.757895 +vt 0.269784 0.694737 +vt 0.262590 0.694737 +vt 0.269784 0.610526 +vt 0.262590 0.610526 +vt 0.269784 0.578947 +vt 0.262590 0.578947 +vt 0.273381 0.547368 +vt 0.233813 0.757895 +vt 0.241007 0.821053 +vt 0.230216 0.821053 +vt 0.233813 0.694737 +vt 0.241007 0.757895 +vt 0.241007 0.610526 +vt 0.233813 0.610526 +vt 0.233813 0.578947 +vt 0.230216 0.547368 +vt 0.241007 0.578947 +vt 0.302158 0.673684 +vt 0.312950 0.705263 +vt 0.305755 0.705263 +vt 0.312950 0.736842 +vt 0.305755 0.736842 +vt 0.312950 0.768421 +vt 0.305755 0.768421 +vt 0.305755 0.842105 +vt 0.312950 0.810526 +vt 0.312950 0.842105 +vt 0.305755 0.873684 +vt 0.312950 0.873684 +vt 0.302158 0.905263 +vt 0.320144 0.905263 +vt 0.575540 0.768421 +vt 0.546763 0.747368 +vt 0.575540 0.747368 +vt 0.586331 0.631579 +vt 0.586331 0.663158 +vt 0.687050 0.642105 +vt 0.633094 0.663158 +vt 0.633094 0.663158 +vt 0.543165 0.684211 +vt 0.546763 0.705263 +vt 0.543165 0.726316 +vt 0.579137 0.726316 +vt 0.543165 0.768421 +vt 0.546763 0.768421 +vt 0.575540 0.705263 +vt 0.546763 0.684211 +vt 0.575540 0.684211 +vt 0.575540 0.726316 +vt 0.546763 0.726316 +vt 0.187050 0.642105 +vt 0.129496 0.810526 +vt 0.129496 0.642105 +vt 0.115108 0.284211 +vt 0.104317 0.252632 +vt 0.118705 0.252632 +vt 0.118705 0.326316 +vt 0.115108 0.305263 +vt 0.104317 0.326316 +vt 0.104317 0.305263 +vt 0.251799 0.252632 +vt 0.482014 -0.000000 +vt 0.478417 0.252632 +vt 0.478417 0.284211 +vt 0.478417 0.189474 +vt 0.478417 0.157895 +vt 0.478417 0.094737 +vt 0.517986 0.242105 +vt 0.510791 0.378947 +vt 0.517986 0.021053 +vt 0.517986 0.052632 +vt 0.517986 0.115789 +vt 0.517986 0.147368 +vt 0.687050 0.526316 +vt 0.586331 0.378947 +vt 0.812950 0.652632 +vt 0.615108 0.557895 +vt 0.687050 0.557895 +vt 0.492806 0.726316 +vt 0.492806 0.757895 +vt 0.496648 0.753357 +vt 0.498202 0.742118 +vt 0.687050 0.378947 +vt 0.615108 0.378947 +vt 0.464029 0.684211 +vt 0.420863 0.578947 +vt 0.442446 0.652632 +vt 0.442446 0.578947 +vt 0.464029 0.757895 +vt 0.460214 0.730942 +vt 0.464029 0.726316 +vt 0.000000 0.368421 +vt 0.010791 0.252632 +vt 0.104317 0.421053 +vt 0.766187 0.684211 +vt 0.766187 0.747368 +vt 0.615108 0.631579 +vt 0.812950 0.315789 +vt 0.744604 0.231579 +vt 0.841727 0.084211 +vt 0.751799 0.084211 +vt 0.784173 0.452632 +vt 0.784173 0.505263 +vt 0.697842 0.357895 +vt 0.705036 0.315789 +vt 0.784173 0.505263 +vt 0.705036 0.315789 +vt 0.719424 0.600000 +vt 0.719424 0.600000 +vt 0.694245 0.663158 +vt 0.701439 0.663158 +vt 0.730216 0.768421 +vt 0.167259 0.445233 +vt 0.171198 0.481727 +vt 0.171198 0.581431 +vt 0.167259 0.617925 +vt 0.152543 0.481727 +vt 0.161861 0.431875 +vt 0.156482 0.445233 +vt 0.156482 0.617925 +vt 0.478417 0.252632 +vt 0.255396 0.336842 +vt 0.248201 0.273684 +vt 0.248201 0.257895 +vt 0.172662 0.252632 +vt 0.262590 0.515789 +vt 0.241007 0.694737 +vt 0.241007 0.515789 +vt 0.320144 0.673684 +vt 0.305755 0.810526 +vt 0.615108 0.631579 +vt 0.654676 0.684211 +vt 0.694245 0.684211 +vt 0.187050 0.810526 +vt 0.104317 0.284211 +vt 0.478417 0.189474 +vt 0.478417 0.210526 +vt 0.478417 0.231579 +vt 0.478417 0.042105 +vt 0.478417 0.063158 +vt 0.478417 0.084211 +vt 0.478417 0.105263 +vt 0.478417 0.126316 +vt 0.478417 0.147368 +vt 0.478417 0.168421 +vt 0.000000 0.042105 +vt -0.000000 0.231579 +vt -0.000000 0.126316 +vt 0.000000 0.063158 +vt 0.000000 0.000000 +vt 0.000000 0.147368 +vt -0.000000 0.189474 +vt -0.000000 0.084211 +vt 0.000000 0.021053 +vt 0.000000 0.168421 +vt 0.000000 0.210526 +vt 0.000000 0.105263 +vt 0.615108 0.168421 +vt 0.492806 0.750000 +vt 0.464029 0.742105 +vt 0.492806 0.742105 +vt 0.464029 0.734210 +vt 0.492806 0.734210 +vt 0.464029 0.750000 +vt 0.812950 0.768421 +vt 0.859712 0.684211 +vt 0.938849 0.768421 +vt 0.859712 0.768421 +vt 0.812950 0.684211 +vt 0.730216 -0.000000 +vt 0.730216 0.084211 +vt 0.701439 0.000000 +vt 0.701439 0.084211 +vt 0.676259 0.000000 +vt 0.676259 0.084211 +vt 0.654676 0.000000 +vt 0.615108 0.094737 +vt 0.586331 0.136842 +vt 0.586331 0.094737 +vt 0.586331 0.168421 +vt 0.870504 0.105263 +vt 0.946043 0.084211 +vt 0.859712 0.084211 +vt 0.946043 0.084211 +vt 0.870504 0.105263 +vt 0.859712 0.084211 +vt 0.859712 0.200000 +vt 0.863309 0.284211 +vt 0.852518 0.284211 +vt 0.845324 0.378947 +vt 0.834532 0.368421 +vt 0.881295 0.557895 +vt 0.859712 0.536842 +vt 0.874101 0.505263 +vt 0.917266 0.368421 +vt 0.935252 0.136842 +vt 0.946043 0.136842 +vt 0.834532 0.368421 +vt 0.812950 0.378947 +vt 0.830935 0.400000 +vt 0.859712 0.136842 +vt 0.870504 0.200000 +vt 0.888489 0.505263 +vt 0.906475 0.357895 +vt 0.935252 0.105263 +vt 0.812950 0.378947 +vt 0.830935 0.400000 +vt 0.823741 0.431579 +vt 0.863309 0.284211 +vt 0.859712 0.200000 +vt 0.852518 0.284211 +vt 0.845324 0.378947 +vt 0.881295 0.557895 +vt 0.874101 0.505263 +vt 0.859712 0.536842 +vt 0.935252 0.136842 +vt 0.917266 0.368421 +vt 0.946043 0.136842 +vt 0.870504 0.200000 +vt 0.859712 0.136842 +vt 0.906475 0.357895 +vt 0.888489 0.505263 +vt 0.870504 0.136842 +vt 0.935252 0.105263 +vt 0.823741 0.431579 +vt 0.964029 0.000000 +vt 0.964029 0.084211 +vt 0.946043 0.000000 +vt 0.859712 0.000000 +vt 0.841727 0.000000 +vt 0.841727 0.084211 +vt 0.183453 0.431579 +vt 0.194245 0.442105 +vt 0.183453 0.452632 +vt 0.172662 0.452632 +vt 0.172662 0.431579 +vt 0.172662 0.494737 +vt 0.194245 0.473684 +vt 0.183453 0.494737 +vt 0.172662 0.536842 +vt 0.194245 0.515789 +vt 0.183453 0.536842 +vt 0.140288 0.578947 +vt 0.151079 0.536842 +vt 0.151079 0.578947 +vt 0.183453 0.578947 +vt 0.172662 0.578947 +vt 0.129496 0.557895 +vt 0.140288 0.536842 +vt 0.194245 0.557895 +vt 0.140288 0.621053 +vt 0.151079 0.621053 +vt 0.183453 0.621053 +vt 0.172662 0.621053 +vt 0.129496 0.600000 +vt 0.194245 0.600000 +vt 0.140288 0.642105 +vt 0.151079 0.642105 +vt 0.183453 0.642105 +vt 0.172662 0.642105 +vt 0.129496 0.631579 +vt 0.194245 0.631579 +vt 0.151079 0.452632 +vt 0.140288 0.431579 +vt 0.151079 0.431579 +vt 0.140288 0.452632 +vt 0.129496 0.442105 +vt 0.151079 0.494737 +vt 0.140288 0.494737 +vt 0.129496 0.473684 +vt 0.129496 0.515789 +vt 0.208633 0.821053 +vt 0.230216 0.757895 +vt 0.208633 0.757895 +vt 0.230216 0.694737 +vt 0.208633 0.694737 +vt 0.230216 0.610526 +vt 0.208633 0.610526 +vt 0.230216 0.578947 +vt 0.208633 0.578947 +vt 0.230216 0.515789 +vt 0.284173 0.768421 +vt 0.273381 0.810526 +vt 0.273381 0.768421 +vt 0.294964 0.768421 +vt 0.284173 0.810526 +vt 0.294964 0.810526 +vt 0.323741 0.768421 +vt 0.334532 0.768421 +vt 0.323741 0.810526 +vt 0.345324 0.768421 +vt 0.334532 0.810526 +vt 0.870504 0.136842 +vt 0.478417 0.252632 +vt 0.000000 0.252632 +vt 0.938849 0.684211 +vt 0.654676 0.084211 +vt 0.615108 0.136842 +vt 0.208633 0.515789 +vt 0.345324 0.810526 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.3162 0.9487 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.8321 -0.5547 0.0000 +vn -0.8682 -0.4961 0.0000 +vn 0.5145 0.8575 0.0000 +vn 0.3511 0.9363 0.0000 +vn 0.7682 0.6402 0.0000 +vn 0.8480 0.5300 0.0000 +vn 0.4789 0.8779 0.0000 +vn 0.3363 0.9417 0.0000 +vn 0.0000 0.1644 -0.9864 +vn -0.9487 0.3162 0.0000 +vn 0.0000 0.1644 0.9864 +vn 0.3939 0.9191 0.0000 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5000 -0.8660 +vn -0.2898 -0.9571 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 0.3827 +vn 0.9622 0.2723 0.0000 +vn 0.9004 0.4352 0.0000 +vn 0.9398 0.3417 0.0000 +vn -0.9925 -0.1222 0.0000 +vn -0.9079 -0.4192 0.0000 +vn -0.5294 -0.8484 0.0000 +vn -0.1644 -0.9864 0.0000 +vn -0.8944 -0.4472 0.0000 +vn -0.7497 -0.6618 0.0000 +vn -0.5007 -0.3427 -0.7949 +vn 0.7406 -0.6169 -0.2663 +vn -0.7406 -0.6169 -0.2663 +vn 0.7406 -0.6169 0.2663 +vn -0.5007 -0.3427 0.7949 +vn -0.7406 -0.6169 0.2663 +vn -0.8887 -0.1134 0.4443 +vn -0.4707 -0.1788 0.8640 +vn -0.8315 -0.3492 0.4322 +vn -0.4194 -0.1220 0.8996 +vn -0.5483 -0.5987 0.5839 +vn 0.1422 0.3181 0.9373 +vn -0.2154 0.3448 0.9136 +vn 0.0554 0.3108 0.9489 +vn 0.8250 0.3864 0.4125 +vn 0.5084 0.1779 0.8426 +vn 0.9294 0.2459 0.2753 +vn -0.4982 -0.5710 -0.6525 +vn -0.3586 -0.1955 -0.9128 +vn -0.3854 -0.0823 -0.9191 +vn -0.9463 0.1453 0.2889 +vn -0.4925 -0.0586 0.8683 +vn 0.4609 0.3511 0.8150 +vn 0.4887 0.2771 0.8273 +vn 0.5007 -0.3427 0.7949 +vn -0.3586 -0.1955 0.9128 +vn -0.3986 -0.0784 0.9137 +vn -0.4147 0.2969 0.8601 +vn -0.4784 -0.1713 -0.8613 +vn -0.8887 -0.1134 -0.4443 +vn -0.8319 -0.3300 -0.4461 +vn -0.3833 -0.0513 -0.9222 +vn 0.1298 0.2968 -0.9461 +vn 0.0450 0.3020 -0.9522 +vn -0.2014 0.3023 -0.9317 +vn 0.5084 0.1779 -0.8426 +vn 0.8250 0.3864 -0.4125 +vn 0.9294 0.2459 -0.2753 +vn -0.4925 -0.0586 -0.8683 +vn -0.9463 0.1453 -0.2889 +vn 0.4890 0.2775 -0.8270 +vn 0.4349 0.3349 -0.8359 +vn -0.4808 0.0746 -0.8736 +vn 0.5007 -0.3427 -0.7949 +vn -0.3802 0.3015 -0.8744 +vn 0.7513 -0.5032 0.4270 +vn 0.9061 0.0000 0.4231 +vn 0.7541 -0.3297 0.5681 +vn 0.5431 -0.5168 0.6618 +vn 0.6001 -0.6100 0.5176 +vn 0.3474 -0.2058 0.9149 +vn 0.6619 -0.1418 0.7361 +vn 0.2967 -0.0000 0.9550 +vn 0.6220 -0.0000 0.7830 +vn 0.6619 0.1418 -0.7361 +vn 0.2967 -0.0000 -0.9550 +vn 0.3474 0.2058 -0.9149 +vn 0.6619 0.1418 0.7361 +vn 0.3474 0.2058 0.9149 +vn 0.9061 0.0000 -0.4231 +vn 0.6220 -0.0000 -0.7830 +vn 0.7541 0.3297 -0.5681 +vn 0.5431 0.5168 -0.6618 +vn 0.7541 0.3297 0.5681 +vn 0.5431 0.5168 0.6618 +vn 0.7513 0.5032 -0.4270 +vn 0.6001 0.6100 -0.5176 +vn 0.7513 0.5032 0.4270 +vn 0.6001 0.6100 0.5176 +vn 0.5431 -0.5168 -0.6618 +vn 0.7513 -0.5032 -0.4270 +vn 0.6001 -0.6100 -0.5176 +vn 0.7541 -0.3297 -0.5681 +vn 0.3474 -0.2058 -0.9149 +vn 0.6619 -0.1418 -0.7361 +vn -0.9487 -0.3162 0.0000 +vn -0.8260 -0.5637 0.0000 +vn -0.3404 -0.9403 0.0000 +vn 0.2842 -0.9588 0.0000 +vn 0.7146 -0.6996 0.0000 +vn 0.7145 -0.6996 0.0000 +vn 0.8498 -0.5271 0.0000 +vn 0.9864 0.1644 0.0000 +vn 0.8545 0.5195 0.0000 +vn 0.3162 0.9487 0.0000 +vn -0.2298 0.9732 0.0000 +vn -0.8044 0.5941 0.0000 +vn -0.9864 0.1644 0.0000 +vn -0.9732 -0.2298 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.4808 0.0746 0.8736 +s off +f 1417/2492/174 1429/2493/174 1415/2494/174 +f 1401/2495/174 1421/2496/174 1399/2497/174 +f 1399/2497/174 1420/2498/174 1397/2499/174 +f 1415/2494/174 1428/2500/174 1413/2501/174 +f 1413/2501/174 1427/2502/174 1411/2503/174 +f 1411/2503/174 1426/2504/174 1409/2505/174 +f 1409/2505/174 1425/2506/174 1407/2507/174 +f 1405/2508/174 1425/2506/174 1424/2509/174 +f 1403/2510/174 1424/2509/174 1423/2511/174 +f 1403/2510/174 1422/2512/174 1401/2513/174 +f 1395/2514/174 1430/2515/174 1417/2492/174 +f 1397/2499/174 1419/2516/174 1395/2514/174 +f 1404/2517/174 1448/2518/174 1406/2519/174 +f 1402/2520/174 1447/2521/174 1404/2522/174 +f 1396/2523/174 1454/2524/174 1443/2525/174 +f 1398/2526/174 1443/2525/174 1444/2527/174 +f 1400/2528/174 1446/2529/174 1402/2530/174 +f 1416/2531/174 1454/2524/174 1418/2532/174 +f 1398/2533/174 1445/2534/174 1400/2535/174 +f 1416/2536/174 1452/2537/174 1453/2538/174 +f 1414/2539/174 1451/2540/174 1452/2537/174 +f 1410/2541/174 1451/2540/174 1412/2542/174 +f 1410/2543/174 1449/2544/174 1450/2545/174 +f 1406/2546/174 1449/2544/174 1408/2547/174 +f 1440/2548/175 1463/2549/175 1439/2550/175 +f 1441/2551/175 1464/2552/175 1440/2553/175 +f 1441/2554/175 1466/2555/175 1465/2556/175 +f 1431/2557/175 1466/2555/175 1442/2558/175 +f 1432/2559/175 1455/2560/175 1431/2561/175 +f 1433/2562/175 1456/2563/175 1432/2564/175 +f 1434/2565/175 1457/2566/175 1433/2567/175 +f 1434/2568/175 1459/2569/175 1458/2570/175 +f 1435/2571/175 1460/2572/175 1459/2569/175 +f 1437/2573/175 1460/2572/175 1436/2574/175 +f 1437/2575/175 1462/2576/175 1461/2577/175 +f 1438/2578/175 1463/2549/175 1462/2576/175 +f 1468/2579/176 1469/2580/176 1467/2581/176 +f 1469/2582/174 1474/2583/174 1467/2581/174 +f 1468/2584/174 1476/2585/174 1470/2586/174 +f 1477/2587/176 1480/2588/176 1478/2589/176 +f 1479/2590/177 1482/2591/177 1480/2588/177 +f 1481/2592/176 1484/2593/176 1482/2591/176 +f 1483/2594/175 1486/2595/175 1484/2593/175 +f 1485/2596/176 1488/2597/176 1486/2595/176 +f 1475/2598/178 1490/2599/178 1707/2600/178 +f 1491/2601/175 1494/2602/175 1503/2603/175 +f 1497/2604/178 1496/2605/178 1495/2606/178 +f 1474/2583/179 1468/2579/179 1467/2581/179 +f 1472/2607/180 1469/2608/180 1470/2609/180 +f 1492/2610/178 1493/2611/178 1491/2612/178 +f 1512/2613/181 1513/2614/181 1511/2615/181 +f 1509/2616/174 1511/2615/174 1493/2617/174 +f 1513/2614/180 1510/2618/180 1494/2619/180 +f 1504/2620/174 1505/2621/174 1510/2618/174 +f 1512/2622/179 1509/2623/179 1492/2610/179 +f 1495/2606/182 1515/2624/182 1497/2604/182 +f 1497/2604/180 1518/2625/180 1498/2626/180 +f 1495/2606/179 1521/2627/179 1516/2628/179 +f 1520/2629/179 1496/2605/179 1519/2630/179 +f 1521/2627/179 1517/2631/179 1516/2628/179 +f 1521/2632/178 1526/2633/178 1522/2634/178 +f 1520/2635/175 1525/2636/175 1521/2637/175 +f 1519/2638/176 1524/2639/176 1520/2640/176 +f 1526/2633/179 1524/2639/179 1523/2641/179 +f 1607/2642/178 1606/2643/178 1603/2644/178 +f 1527/2645/183 1600/2646/183 1597/2647/183 +f 1600/2646/184 1531/2648/184 1532/2649/184 +f 1536/2650/178 1539/2651/178 1535/2652/178 +f 1489/2653/180 1706/2654/180 1478/2655/180 +f 1542/2656/179 1540/2657/179 1536/2650/179 +f 1538/2658/180 1541/2659/180 1543/2660/180 +f 1546/2661/179 1533/2662/179 1529/2663/179 +f 1545/2664/180 1549/2665/180 1530/2666/180 +f 1487/2667/179 1485/2668/179 1475/2598/179 +f 1530/2666/180 1472/2607/180 1470/2609/180 +f 1599/2669/183 1530/2670/183 1528/2671/183 +f 1607/2672/185 1527/2645/185 1597/2647/185 +f 1487/2673/185 1603/2674/185 1488/2597/185 +f 1602/2675/174 1608/2676/174 1600/2677/174 +f 1603/2674/185 1528/2671/185 1488/2597/185 +f 1601/2678/179 1603/2679/179 1606/2643/179 +f 1601/2678/179 1602/2680/179 1599/2681/179 +f 1607/2682/180 1604/2683/180 1598/2684/180 +f 1604/2683/180 1600/2685/180 1608/2676/180 +f 1601/2678/186 1598/2684/186 1604/2683/186 +f 1604/2683/187 1605/2686/187 1601/2678/187 +f 1632/2687/174 1613/2688/174 1622/2689/174 +f 1637/2690/174 1636/2691/174 1614/2692/174 +f 1641/2693/176 1640/2694/176 1639/2695/176 +f 1645/2696/179 1642/2697/179 1641/2693/179 +f 1644/2698/180 1639/2695/180 1640/2694/180 +f 1643/2699/174 1641/2693/174 1639/2695/174 +f 1651/2700/176 1654/2701/176 1652/2702/176 +f 1648/2703/179 1653/2704/179 1651/2700/179 +f 1649/2705/188 1653/2704/188 1650/2706/188 +f 1647/2707/180 1654/2701/180 1649/2708/180 +f 1648/2709/174 1652/2702/174 1647/2710/174 +f 1659/2711/176 1662/2712/176 1660/2713/176 +f 1655/2714/189 1662/2712/189 1657/2715/189 +f 1656/2716/190 1660/2713/190 1655/2717/190 +f 1656/2718/191 1661/2719/191 1659/2711/191 +f 1657/2720/192 1661/2719/192 1658/2721/192 +f 1666/2722/180 1668/2723/180 1665/2724/180 +f 1678/2725/180 1670/2726/180 1668/2723/180 +f 1680/2727/180 1672/2728/180 1670/2726/180 +f 1682/2729/180 1674/2730/180 1672/2728/180 +f 1684/2731/180 1676/2732/180 1674/2730/180 +f 1667/2733/179 1664/2734/179 1663/2735/179 +f 1669/2736/179 1677/2737/179 1667/2733/179 +f 1681/2738/179 1669/2736/179 1671/2739/179 +f 1673/2740/179 1681/2738/179 1671/2739/179 +f 1675/2741/179 1683/2742/179 1673/2740/179 +f 1688/2743/180 1700/2744/180 1690/2745/180 +f 1690/2745/180 1698/2746/180 1692/2747/180 +f 1692/2747/180 1696/2748/180 1694/2749/180 +f 1691/2750/179 1695/2751/179 1697/2752/179 +f 1689/2753/179 1697/2752/179 1699/2754/179 +f 1687/2755/179 1699/2754/179 1701/2756/179 +f 1706/2757/178 1710/2758/178 1712/2759/178 +f 1704/2760/179 1490/2599/179 1477/2761/179 +f 1476/2762/180 1489/2653/180 1480/2763/180 +f 1481/2592/179 1479/2764/179 1475/2598/179 +f 1490/2765/175 1709/2766/175 1707/2767/175 +f 1478/2589/174 1712/2759/174 1708/2768/174 +f 1489/2769/175 1710/2758/175 1705/2770/175 +f 1711/2771/178 1703/2772/178 1704/2773/178 +f 1709/2766/193 1708/2774/193 1707/2775/193 +f 1708/2774/194 1710/2758/194 1707/2775/194 +f 1714/2776/179 1715/2777/179 1713/2778/179 +f 1523/2779/175 1496/2780/175 1498/2781/175 +f 1518/2782/175 1523/2779/175 1498/2781/175 +f 1526/2783/175 1517/2784/175 1522/2785/175 +f 1417/2492/174 1430/2515/174 1429/2493/174 +f 1401/2495/174 1422/2786/174 1421/2496/174 +f 1399/2497/174 1421/2496/174 1420/2498/174 +f 1415/2494/174 1429/2493/174 1428/2500/174 +f 1413/2501/174 1428/2500/174 1427/2502/174 +f 1411/2503/174 1427/2502/174 1426/2504/174 +f 1409/2505/174 1426/2504/174 1425/2506/174 +f 1405/2508/174 1407/2507/174 1425/2506/174 +f 1403/2510/174 1405/2508/174 1424/2509/174 +f 1403/2510/174 1423/2511/174 1422/2512/174 +f 1395/2514/174 1419/2516/174 1430/2515/174 +f 1397/2499/174 1420/2498/174 1419/2516/174 +f 1404/2517/174 1447/2521/174 1448/2518/174 +f 1402/2520/174 1446/2787/174 1447/2521/174 +f 1396/2523/174 1418/2788/174 1454/2524/174 +f 1398/2526/174 1396/2789/174 1443/2525/174 +f 1400/2528/174 1445/2534/174 1446/2529/174 +f 1416/2531/174 1453/2538/174 1454/2524/174 +f 1398/2533/174 1444/2527/174 1445/2534/174 +f 1416/2536/174 1414/2790/174 1452/2537/174 +f 1414/2539/174 1412/2791/174 1451/2540/174 +f 1410/2541/174 1450/2545/174 1451/2540/174 +f 1410/2543/174 1408/2792/174 1449/2544/174 +f 1406/2546/174 1448/2518/174 1449/2544/174 +f 1440/2548/175 1464/2552/175 1463/2549/175 +f 1441/2551/175 1465/2556/175 1464/2552/175 +f 1441/2554/175 1442/2793/175 1466/2555/175 +f 1431/2557/175 1455/2560/175 1466/2555/175 +f 1432/2559/175 1456/2563/175 1455/2560/175 +f 1433/2562/175 1457/2566/175 1456/2563/175 +f 1434/2565/175 1458/2794/175 1457/2566/175 +f 1434/2568/175 1435/2795/175 1459/2569/175 +f 1435/2571/175 1436/2796/175 1460/2572/175 +f 1437/2573/175 1461/2577/175 1460/2572/175 +f 1437/2575/175 1438/2797/175 1462/2576/175 +f 1438/2578/175 1439/2798/175 1463/2549/175 +f 1468/2579/176 1470/2799/176 1469/2580/176 +f 1469/2582/174 1473/2800/174 1474/2583/174 +f 1468/2584/174 1475/2801/174 1476/2585/174 +f 1477/2587/176 1479/2590/176 1480/2588/176 +f 1479/2590/177 1481/2592/177 1482/2591/177 +f 1481/2592/176 1483/2594/176 1484/2593/176 +f 1483/2594/175 1485/2596/175 1486/2595/175 +f 1485/2596/176 1487/2673/176 1488/2597/176 +f 1489/2802/178 1476/2803/178 1707/2600/178 +f 1476/2803/178 1475/2598/178 1707/2600/178 +f 1502/2804/175 1492/2610/175 1491/2601/175 +f 1494/2602/175 1501/2805/175 1500/2806/175 +f 1494/2602/175 1500/2806/175 1499/2807/175 +f 1503/2603/175 1502/2804/175 1491/2601/175 +f 1494/2602/175 1499/2807/175 1503/2603/175 +f 1497/2604/178 1498/2626/178 1496/2605/178 +f 1474/2583/179 1471/2808/179 1468/2579/179 +f 1472/2607/180 1473/2809/180 1469/2608/180 +f 1492/2610/178 1509/2623/178 1493/2611/178 +f 1512/2613/181 1514/2810/181 1513/2614/181 +f 1509/2616/174 1512/2613/174 1511/2615/174 +f 1494/2619/180 1491/2811/180 1511/2812/180 +f 1491/2811/180 1493/2813/180 1511/2812/180 +f 1511/2812/180 1513/2614/180 1494/2619/180 +f 1505/2621/174 1506/2814/174 1510/2618/174 +f 1510/2618/174 1513/2614/174 1504/2620/174 +f 1513/2614/174 1514/2810/174 1508/2815/174 +f 1504/2620/174 1513/2614/174 1508/2815/174 +f 1514/2810/174 1507/2816/174 1508/2815/174 +f 1492/2610/179 1502/2804/179 1512/2622/179 +f 1502/2804/179 1507/2816/179 1514/2810/179 +f 1512/2622/179 1502/2804/179 1514/2810/179 +f 1495/2606/182 1516/2817/182 1515/2624/182 +f 1497/2604/180 1515/2818/180 1518/2625/180 +f 1495/2606/179 1520/2629/179 1521/2627/179 +f 1520/2629/179 1495/2606/179 1496/2605/179 +f 1521/2627/179 1522/2819/179 1517/2631/179 +f 1521/2632/178 1525/2636/178 1526/2633/178 +f 1520/2635/175 1524/2639/175 1525/2636/175 +f 1519/2638/176 1523/2641/176 1524/2639/176 +f 1526/2633/179 1525/2636/179 1524/2639/179 +f 1607/2642/178 1598/2684/178 1606/2643/178 +f 1527/2645/183 1529/2820/183 1600/2646/183 +f 1532/2649/184 1530/2670/184 1602/2821/184 +f 1600/2646/184 1529/2820/184 1531/2648/184 +f 1532/2649/184 1602/2821/184 1600/2646/184 +f 1536/2650/178 1540/2657/178 1539/2651/178 +f 1489/2653/180 1705/2822/180 1706/2654/180 +f 1536/2650/179 1537/2823/179 1542/2656/179 +f 1537/2823/179 1533/2662/179 1544/2824/179 +f 1542/2656/179 1537/2823/179 1544/2824/179 +f 1533/2662/179 1546/2661/179 1544/2824/179 +f 1538/2658/180 1535/2825/180 1541/2659/180 +f 1535/2825/180 1539/2826/180 1541/2659/180 +f 1545/2664/180 1534/2827/180 1543/2660/180 +f 1534/2827/180 1538/2658/180 1543/2660/180 +f 1531/2828/179 1529/2663/179 1533/2662/179 +f 1529/2663/179 1471/2808/179 1550/2829/179 +f 1550/2829/179 1548/2830/179 1546/2661/179 +f 1529/2663/179 1550/2829/179 1546/2661/179 +f 1530/2666/180 1532/2831/180 1534/2827/180 +f 1534/2827/180 1545/2664/180 1530/2666/180 +f 1545/2664/180 1547/2832/180 1549/2665/180 +f 1549/2665/180 1472/2607/180 1530/2666/180 +f 1475/2598/179 1468/2579/179 1527/2833/179 +f 1468/2579/179 1471/2808/179 1529/2663/179 +f 1475/2598/179 1527/2833/179 1487/2667/179 +f 1529/2663/179 1527/2833/179 1468/2579/179 +f 1470/2609/180 1476/2762/180 1528/2834/180 +f 1476/2762/180 1486/2835/180 1488/2836/180 +f 1528/2834/180 1476/2762/180 1488/2836/180 +f 1528/2834/180 1530/2666/180 1470/2609/180 +f 1599/2669/183 1602/2821/183 1530/2670/183 +f 1607/2672/185 1487/2673/185 1527/2645/185 +f 1487/2673/185 1607/2672/185 1603/2674/185 +f 1602/2675/174 1605/2686/174 1608/2676/174 +f 1603/2674/185 1599/2669/185 1528/2671/185 +f 1601/2678/179 1599/2681/179 1603/2679/179 +f 1601/2678/179 1605/2686/179 1602/2680/179 +f 1607/2682/180 1597/2837/180 1604/2683/180 +f 1604/2683/180 1597/2837/180 1600/2685/180 +f 1601/2678/186 1606/2643/186 1598/2684/186 +f 1604/2683/187 1608/2676/187 1605/2686/187 +f 1613/2688/174 1616/2838/174 1619/2839/174 +f 1619/2839/174 1622/2689/174 1613/2688/174 +f 1622/2689/174 1625/2840/174 1632/2687/174 +f 1625/2840/174 1629/2841/174 1632/2687/174 +f 1636/2691/174 1634/2842/174 1623/2843/174 +f 1634/2842/174 1630/2844/174 1623/2843/174 +f 1623/2843/174 1614/2692/174 1636/2691/174 +f 1614/2692/174 1610/2845/174 1637/2690/174 +f 1641/2693/176 1642/2697/176 1640/2694/176 +f 1645/2696/179 1646/2846/179 1642/2697/179 +f 1644/2698/180 1643/2847/180 1639/2695/180 +f 1643/2699/174 1645/2848/174 1641/2693/174 +f 1651/2700/176 1653/2704/176 1654/2701/176 +f 1648/2703/179 1650/2849/179 1653/2704/179 +f 1649/2705/188 1654/2701/188 1653/2704/188 +f 1647/2707/180 1652/2702/180 1654/2701/180 +f 1648/2709/174 1651/2700/174 1652/2702/174 +f 1659/2711/176 1661/2719/176 1662/2712/176 +f 1655/2714/189 1660/2713/189 1662/2712/189 +f 1656/2716/190 1659/2711/190 1660/2713/190 +f 1656/2718/191 1658/2850/191 1661/2719/191 +f 1657/2720/192 1662/2712/192 1661/2719/192 +f 1666/2722/180 1678/2725/180 1668/2723/180 +f 1678/2725/180 1680/2727/180 1670/2726/180 +f 1680/2727/180 1682/2729/180 1672/2728/180 +f 1682/2729/180 1684/2731/180 1674/2730/180 +f 1684/2731/180 1686/2851/180 1676/2732/180 +f 1667/2733/179 1677/2737/179 1664/2734/179 +f 1669/2736/179 1679/2852/179 1677/2737/179 +f 1681/2738/179 1679/2852/179 1669/2736/179 +f 1673/2740/179 1683/2742/179 1681/2738/179 +f 1675/2741/179 1685/2853/179 1683/2742/179 +f 1688/2743/180 1702/2854/180 1700/2744/180 +f 1690/2745/180 1700/2744/180 1698/2746/180 +f 1692/2747/180 1698/2746/180 1696/2748/180 +f 1691/2750/179 1693/2855/179 1695/2751/179 +f 1689/2753/179 1691/2750/179 1697/2752/179 +f 1687/2755/179 1689/2753/179 1699/2754/179 +f 1706/2757/178 1705/2770/178 1710/2758/178 +f 1704/2760/179 1703/2856/179 1490/2599/179 +f 1489/2653/180 1478/2655/180 1480/2763/180 +f 1480/2763/180 1482/2857/180 1476/2762/180 +f 1482/2857/180 1484/2858/180 1476/2762/180 +f 1484/2858/180 1486/2835/180 1476/2762/180 +f 1477/2761/179 1490/2599/179 1479/2764/179 +f 1490/2599/179 1475/2598/179 1479/2764/179 +f 1475/2598/179 1485/2668/179 1483/2594/179 +f 1483/2594/179 1481/2592/179 1475/2598/179 +f 1490/2765/175 1703/2772/175 1709/2766/175 +f 1704/2773/174 1477/2587/174 1711/2771/174 +f 1477/2587/174 1478/2589/174 1708/2768/174 +f 1478/2589/174 1706/2757/174 1712/2759/174 +f 1708/2768/174 1711/2771/174 1477/2587/174 +f 1489/2769/175 1707/2767/175 1710/2758/175 +f 1711/2771/178 1709/2766/178 1703/2772/178 +f 1709/2766/193 1711/2771/193 1708/2774/193 +f 1708/2774/194 1712/2759/194 1710/2758/194 +f 1714/2776/179 1716/2859/179 1715/2777/179 +f 1523/2779/175 1519/2860/175 1496/2780/175 +f 1518/2782/175 1526/2783/175 1523/2779/175 +f 1526/2783/175 1518/2782/175 1517/2784/175 +s 1 +f 1396/2861/180 1397/2499/195 1395/2514/180 +f 1398/2862/195 1399/2497/196 1397/2499/195 +f 1400/2863/196 1401/2495/178 1399/2497/196 +f 1402/2520/178 1403/2510/197 1401/2513/178 +f 1404/2522/197 1405/2508/198 1403/2510/197 +f 1406/2864/198 1407/2507/179 1405/2508/198 +f 1408/2865/179 1409/2505/199 1407/2507/179 +f 1410/2866/199 1411/2503/200 1409/2505/199 +f 1412/2867/200 1413/2501/176 1411/2503/200 +f 1414/2868/176 1415/2494/201 1413/2501/176 +f 1416/2869/201 1417/2492/202 1415/2494/201 +f 1418/2870/202 1395/2514/180 1417/2492/202 +f 1425/2506/180 1436/2871/202 1424/2509/202 +f 1422/2786/176 1433/2872/200 1421/2496/200 +f 1429/2493/197 1440/2873/178 1428/2500/178 +f 1426/2504/195 1437/2874/180 1425/2506/180 +f 1423/2511/201 1434/2875/176 1422/2512/176 +f 1430/2515/198 1441/2876/197 1429/2493/197 +f 1420/2498/199 1431/2877/179 1419/2516/179 +f 1427/2502/196 1438/2878/195 1426/2504/195 +f 1424/2509/202 1435/2879/201 1423/2511/201 +f 1419/2516/179 1442/2880/198 1430/2515/198 +f 1421/2496/200 1432/2881/199 1420/2498/199 +f 1428/2500/178 1439/2882/196 1427/2502/196 +f 1451/2540/200 1464/2552/176 1452/2537/176 +f 1448/2518/198 1461/2577/179 1449/2544/179 +f 1445/2534/196 1458/2794/178 1446/2529/178 +f 1452/2537/176 1465/2556/201 1453/2538/201 +f 1449/2544/179 1462/2576/199 1450/2545/199 +f 1446/2787/178 1459/2569/197 1447/2521/197 +f 1453/2538/201 1466/2555/202 1454/2524/202 +f 1443/2525/180 1456/2563/195 1444/2527/195 +f 1450/2545/199 1463/2549/200 1451/2540/200 +f 1447/2521/197 1460/2572/198 1448/2518/198 +f 1443/2525/180 1466/2555/202 1455/2560/180 +f 1444/2527/195 1457/2566/196 1445/2534/196 +f 1473/2800/178 1471/2883/203 1474/2583/178 +f 1500/2884/204 1504/2885/179 1499/2886/179 +f 1499/2886/179 1508/2887/205 1503/2888/205 +f 1501/2805/206 1505/2889/204 1500/2884/204 +f 1503/2888/205 1507/2816/207 1502/2804/207 +f 1531/2648/175 1534/2890/208 1532/2649/175 +f 1537/2891/209 1535/2892/210 1538/2893/209 +f 1537/2891/209 1534/2890/208 1533/2894/208 +f 1540/2657/174 1541/2895/211 1539/2651/174 +f 1542/2896/211 1543/2897/212 1541/2895/211 +f 1544/2898/212 1545/2899/213 1543/2897/212 +f 1546/2900/213 1547/2901/214 1545/2899/213 +f 1548/2902/215 1549/2903/216 1547/2904/215 +f 1549/2903/216 1471/2883/203 1472/2905/203 +f 1588/2906/217 1553/2907/218 1551/2908/219 +f 1552/2909/220 1567/2910/221 1554/2911/222 +f 1562/2912/223 1573/2913/224 1563/2914/225 +f 1563/2914/225 1574/2915/226 1564/2916/227 +f 1555/2917/228 1559/2918/229 1568/2919/230 +f 1558/2920/231 1569/2921/232 1557/2922/233 +f 1585/2923/234 1586/2924/235 1596/2925/236 +f 1561/2926/237 1572/2927/238 1562/2912/223 +f 1558/2920/231 1556/2928/239 1570/2929/240 +f 1556/2928/239 1555/2917/228 1568/2919/230 +f 1567/2910/221 1561/2926/237 1554/2911/222 +f 1552/2909/220 1557/2922/233 1566/2930/241 +f 1565/2931/242 1575/2932/243 1560/2933/244 +f 1575/2932/243 1559/2918/229 1560/2933/244 +f 1569/2921/232 1567/2910/221 1566/2930/241 +f 1594/2934/245 1583/2935/246 1584/2936/247 +f 1574/2915/226 1570/2929/240 1568/2919/230 +f 1568/2919/230 1575/2932/243 1574/2915/226 +f 1595/2937/248 1584/2936/247 1585/2923/234 +f 1576/2938/249 1589/2939/250 1580/2940/251 +f 1590/2941/252 1579/2942/253 1578/2943/254 +f 1596/2925/236 1595/2937/248 1585/2923/234 +f 1593/2944/255 1582/2945/256 1583/2935/246 +f 1579/2942/253 1591/2946/257 1577/2947/258 +f 1577/2947/258 1589/2939/250 1576/2938/249 +f 1588/2906/217 1582/2945/256 1592/2948/259 +f 1553/2907/218 1587/2949/260 1578/2943/254 +f 1586/2924/235 1581/2950/261 1596/2925/236 +f 1581/2950/261 1589/2939/250 1596/2925/236 +f 1588/2906/217 1590/2941/252 1587/2949/260 +f 1595/2937/248 1589/2939/250 1591/2946/257 +f 1589/2939/250 1595/2937/248 1596/2925/236 +f 1552/2909/220 1578/2951/254 1557/2952/233 +f 1553/2953/218 1554/2911/222 1551/2954/219 +f 1582/2955/256 1554/2911/222 1561/2956/237 +f 1612/2957/262 1627/2958/263 1615/2959/264 +f 1612/2957/262 1616/2960/265 1613/2961/266 +f 1615/2959/264 1619/2962/267 1616/2960/265 +f 1615/2959/264 1627/2963/263 1618/2964/268 +f 1618/2964/268 1622/2965/269 1619/2962/267 +f 1618/2964/268 1627/2966/263 1621/2967/270 +f 1609/2968/271 1636/2969/272 1637/2970/273 +f 1622/2965/269 1624/2971/274 1625/2972/275 +f 1609/2968/271 1620/2973/276 1638/2974/277 +f 1621/2967/270 1627/2975/263 1624/2971/274 +f 1611/2976/278 1637/2970/273 1610/2977/279 +f 1625/2972/275 1628/2978/280 1629/2979/281 +f 1611/2976/278 1620/2980/276 1609/2968/271 +f 1624/2971/274 1627/2981/263 1628/2978/280 +f 1617/2982/282 1610/2977/279 1614/2983/283 +f 1629/2979/281 1631/2984/284 1632/2985/285 +f 1617/2982/282 1620/2986/276 1611/2976/278 +f 1628/2978/280 1627/2987/263 1631/2984/284 +f 1630/2988/286 1626/2989/287 1623/2990/288 +f 1633/2991/289 1620/2992/276 1626/2989/287 +f 1634/2993/290 1633/2991/289 1630/2988/286 +f 1635/2994/291 1620/2995/276 1633/2991/289 +f 1636/2969/272 1635/2994/291 1634/2993/290 +f 1638/2974/277 1620/2996/276 1635/2994/291 +f 1572/2927/238 1570/2929/240 1573/2913/224 +f 1573/2913/224 1570/2929/240 1574/2915/226 +f 1591/2946/257 1594/2934/245 1595/2937/248 +f 1593/2944/255 1591/2946/257 1590/2941/252 +f 1575/2932/243 1564/2916/227 1574/2915/226 +f 1565/2931/242 1564/2916/227 1575/2932/243 +f 1665/2997/292 1667/2998/293 1663/2735/292 +f 1668/2999/293 1669/3000/294 1667/2998/293 +f 1670/3001/294 1671/3002/295 1669/3000/294 +f 1672/3003/295 1673/3004/296 1671/3002/295 +f 1674/3005/297 1675/3006/298 1673/3004/296 +f 1664/2734/299 1678/2725/300 1666/2722/299 +f 1677/2737/300 1680/2727/301 1678/2725/300 +f 1679/2852/301 1682/2729/302 1680/2727/301 +f 1681/2738/302 1684/2731/303 1682/2729/302 +f 1683/2742/303 1686/2851/304 1684/2731/303 +f 1690/3007/305 1687/3008/215 1688/3009/215 +f 1692/3010/306 1689/3011/305 1690/3007/305 +f 1694/2749/307 1691/3012/306 1692/3010/306 +f 1696/2748/308 1693/2855/307 1694/2749/307 +f 1698/3013/309 1695/2751/308 1696/2748/308 +f 1700/3014/309 1697/3015/309 1698/3013/309 +f 1702/3016/310 1699/3017/309 1700/3014/309 +f 1570/2929/240 1556/2928/239 1568/2919/230 +f 1577/2947/258 1591/2946/257 1589/2939/250 +f 1571/3018/311 1569/2921/232 1572/2927/238 +f 1590/2941/252 1592/2948/259 1593/2944/255 +f 1566/2930/241 1557/2922/233 1569/2921/232 +f 1578/2943/254 1587/2949/260 1590/2941/252 +f 1396/2861/180 1398/2862/195 1397/2499/195 +f 1398/2862/195 1400/2863/196 1399/2497/196 +f 1400/2863/196 1402/3019/178 1401/2495/178 +f 1402/2520/178 1404/2522/197 1403/2510/197 +f 1404/2522/197 1406/2864/198 1405/2508/198 +f 1406/2864/198 1408/2865/179 1407/2507/179 +f 1408/2865/179 1410/2866/199 1409/2505/199 +f 1410/2866/199 1412/2867/200 1411/2503/200 +f 1412/2867/200 1414/2868/176 1413/2501/176 +f 1414/2868/176 1416/2869/201 1415/2494/201 +f 1416/2869/201 1418/2870/202 1417/2492/202 +f 1418/2870/202 1396/2861/180 1395/2514/180 +f 1425/2506/180 1437/2874/180 1436/2871/202 +f 1422/2786/176 1434/3020/176 1433/2872/200 +f 1429/2493/197 1441/2876/197 1440/2873/178 +f 1426/2504/195 1438/2878/195 1437/2874/180 +f 1423/2511/201 1435/2879/201 1434/2875/176 +f 1430/2515/198 1442/2880/198 1441/2876/197 +f 1420/2498/199 1432/2881/199 1431/2877/179 +f 1427/2502/196 1439/2882/196 1438/2878/195 +f 1424/2509/202 1436/2871/202 1435/2879/201 +f 1419/2516/179 1431/2877/179 1442/2880/198 +f 1421/2496/200 1433/2872/200 1432/2881/199 +f 1428/2500/178 1440/2873/178 1439/2882/196 +f 1451/2540/200 1463/2549/200 1464/2552/176 +f 1448/2518/198 1460/2572/198 1461/2577/179 +f 1445/2534/196 1457/2566/196 1458/2794/178 +f 1452/2537/176 1464/2552/176 1465/2556/201 +f 1449/2544/179 1461/2577/179 1462/2576/199 +f 1446/2787/178 1458/2570/178 1459/2569/197 +f 1453/2538/201 1465/2556/201 1466/2555/202 +f 1443/2525/180 1455/2560/180 1456/2563/195 +f 1450/2545/199 1462/2576/199 1463/2549/200 +f 1447/2521/197 1459/2569/197 1460/2572/198 +f 1443/2525/180 1454/2524/202 1466/2555/202 +f 1444/2527/195 1456/2563/195 1457/2566/196 +f 1473/2800/178 1472/2905/203 1471/2883/203 +f 1500/2884/204 1505/2889/204 1504/2885/179 +f 1499/2886/179 1504/2885/179 1508/2887/205 +f 1501/2805/206 1506/2814/206 1505/2889/204 +f 1503/2888/205 1508/2887/205 1507/2816/207 +f 1531/2648/175 1533/2894/208 1534/2890/208 +f 1537/2891/209 1536/3021/210 1535/2892/210 +f 1537/2891/209 1538/2893/209 1534/2890/208 +f 1540/2657/174 1542/2896/211 1541/2895/211 +f 1542/2896/211 1544/2898/212 1543/2897/212 +f 1544/2898/212 1546/2900/213 1545/2899/213 +f 1546/2900/213 1548/3022/214 1547/2901/214 +f 1548/2902/215 1550/3023/216 1549/2903/216 +f 1549/2903/216 1550/3023/216 1471/2883/203 +f 1588/2906/217 1587/2949/260 1553/2907/218 +f 1552/2909/220 1566/2930/241 1567/2910/221 +f 1562/2912/223 1572/2927/238 1573/2913/224 +f 1563/2914/225 1573/2913/224 1574/2915/226 +f 1558/2920/231 1570/2929/240 1569/2921/232 +f 1561/2926/237 1571/3018/311 1572/2927/238 +f 1567/2910/221 1571/3018/311 1561/2926/237 +f 1575/2932/243 1568/2919/230 1559/2918/229 +f 1569/2921/232 1571/3018/311 1567/2910/221 +f 1594/2934/245 1593/2944/255 1583/2935/246 +f 1595/2937/248 1594/2934/245 1584/2936/247 +f 1590/2941/252 1591/2946/257 1579/2942/253 +f 1593/2944/255 1592/2948/259 1582/2945/256 +f 1588/2906/217 1551/2908/219 1582/2945/256 +f 1581/2950/261 1580/2940/251 1589/2939/250 +f 1588/2906/217 1592/2948/259 1590/2941/252 +f 1552/2909/220 1553/2953/218 1578/2951/254 +f 1553/2953/218 1552/2909/220 1554/2911/222 +f 1582/2955/256 1551/2954/219 1554/2911/222 +f 1612/2957/262 1615/2959/264 1616/2960/265 +f 1615/2959/264 1618/2964/268 1619/2962/267 +f 1618/2964/268 1621/2967/270 1622/2965/269 +f 1609/2968/271 1638/2974/277 1636/2969/272 +f 1622/2965/269 1621/2967/270 1624/2971/274 +f 1611/2976/278 1609/2968/271 1637/2970/273 +f 1625/2972/275 1624/2971/274 1628/2978/280 +f 1617/2982/282 1611/2976/278 1610/2977/279 +f 1629/2979/281 1628/2978/280 1631/2984/284 +f 1630/2988/286 1633/2991/289 1626/2989/287 +f 1634/2993/290 1635/2994/291 1633/2991/289 +f 1636/2969/272 1638/2974/277 1635/2994/291 +f 1572/2927/238 1569/2921/232 1570/2929/240 +f 1593/2944/255 1594/2934/245 1591/2946/257 +f 1665/2997/292 1668/2999/293 1667/2998/293 +f 1668/2999/293 1670/3001/294 1669/3000/294 +f 1670/3001/294 1672/3003/295 1671/3002/295 +f 1672/3003/295 1674/3005/297 1673/3004/296 +f 1674/3005/297 1676/3024/298 1675/3006/298 +f 1664/2734/299 1677/2737/300 1678/2725/300 +f 1677/2737/300 1679/2852/301 1680/2727/301 +f 1679/2852/301 1681/2738/302 1682/2729/302 +f 1681/2738/302 1683/2742/303 1684/2731/303 +f 1683/2742/303 1685/2853/304 1686/2851/304 +f 1690/3007/305 1689/3011/305 1687/3008/215 +f 1692/3010/306 1691/3012/306 1689/3011/305 +f 1694/2749/307 1693/2855/307 1691/3012/306 +f 1696/2748/308 1695/2751/308 1693/2855/307 +f 1698/3013/309 1697/3015/309 1695/2751/308 +f 1700/3014/309 1699/3017/309 1697/3015/309 +f 1702/3016/310 1701/3025/310 1699/3017/309 diff --git a/src/main/resources/assets/hbm/models/weapons/maresleg.obj b/src/main/resources/assets/hbm/models/weapons/maresleg.obj index 22d8e64fa..d6ae6b853 100644 --- a/src/main/resources/assets/hbm/models/weapons/maresleg.obj +++ b/src/main/resources/assets/hbm/models/weapons/maresleg.obj @@ -1,3783 +1,2369 @@ # Blender v2.79 (sub 0) OBJ File: 'maresleg.blend' # www.blender.org -o Grip -v 0.026200 -0.016789 0.733764 -v 0.026200 -0.103402 0.697888 -v 0.026200 0.060944 0.546101 -v 0.026200 -0.025670 0.510225 -v -0.036300 0.060944 0.546101 -v -0.036300 -0.025670 0.510225 -v -0.036300 -0.016789 0.733764 -v -0.036300 -0.103402 0.697888 -v 0.026219 -0.093905 0.743458 -v 0.026219 -0.187655 0.743458 -v 0.026219 -0.093905 0.680958 -v 0.026219 -0.187655 0.680958 -v -0.036281 -0.093905 0.680958 -v -0.036281 -0.187655 0.680958 -v -0.036281 -0.093905 0.743458 -v -0.036281 -0.187655 0.743458 -v 0.026225 -0.091559 0.708804 -v 0.026225 -0.163738 0.738701 -v 0.026225 -0.115477 0.651061 -v 0.026225 -0.187655 0.680958 -v -0.036275 -0.115477 0.651061 -v -0.036275 -0.187655 0.680958 -v -0.036275 -0.091559 0.708804 -v -0.036275 -0.163738 0.738701 -v 0.026231 0.002670 0.634943 -v 0.026231 -0.085718 0.723331 -v 0.026231 -0.052573 0.579700 -v 0.026231 -0.140961 0.668089 -v -0.036269 -0.052573 0.579700 -v -0.036269 -0.140961 0.668089 -v -0.036269 0.002670 0.634943 -v -0.036269 -0.085718 0.723331 -v 0.026187 -0.111974 0.762847 -v 0.026187 -0.169717 0.786765 -v 0.026187 -0.129913 0.719540 -v 0.026187 -0.187655 0.743458 -v -0.036312 -0.129913 0.719540 -v -0.036312 -0.187655 0.743458 -v -0.036312 -0.111974 0.762847 -v -0.036312 -0.169717 0.786765 -v 0.026214 -0.037134 0.720474 -v 0.026214 -0.136571 0.819911 -v 0.026214 -0.070280 0.687328 -v 0.026214 -0.169717 0.786765 -v -0.036286 -0.070280 0.687328 -v -0.036286 -0.169717 0.786765 -v -0.036286 -0.037134 0.720474 -v -0.036286 -0.136571 0.819911 -v 0.041839 0.117489 0.123705 -v 0.041839 0.039364 0.123705 -v 0.041839 0.117489 -0.380670 -v 0.041839 0.039364 -0.380670 -v -0.051911 0.117489 -0.380670 -v -0.051911 0.039364 -0.380670 -v -0.051911 0.117489 0.123705 -v -0.051911 0.039364 0.123705 -v 0.041839 0.039364 0.123705 -v 0.029880 0.010493 0.123705 -v 0.041839 0.039364 -0.380670 -v 0.029880 0.010493 -0.380670 -v 0.012967 0.051323 -0.380670 -v 0.001008 0.022452 -0.380670 -v 0.012967 0.051323 0.123705 -v 0.001008 0.022452 0.123705 -v 0.005962 0.068236 0.123705 -v 0.029880 0.010493 0.123705 -v 0.005962 0.068236 -0.380670 -v 0.029880 0.010493 -0.380670 -v -0.022909 0.056277 -0.380670 -v 0.001008 -0.001466 -0.380670 -v -0.022909 0.056277 0.123705 -v 0.001008 -0.001466 0.123705 -v -0.023040 0.051323 0.123705 -v -0.011081 0.022452 0.123705 -v -0.023040 0.051323 -0.380670 -v -0.011081 0.022452 -0.380670 -v -0.051911 0.039364 -0.380670 -v -0.039952 0.010493 -0.380670 -v -0.051911 0.039364 0.123705 -v -0.039952 0.010493 0.123705 -v 0.012836 0.056277 0.123705 -v -0.011081 -0.001466 0.123705 -v 0.012836 0.056277 -0.380670 -v -0.011081 -0.001466 -0.380670 -v -0.016035 0.068235 -0.380670 -v -0.039952 0.010493 -0.380670 -v -0.016035 0.068235 0.123705 -v -0.039952 0.010493 0.123705 -v 0.001419 0.061034 0.123705 -v 0.001419 -0.001466 0.123705 -v 0.001419 0.061034 -0.380670 -v 0.001419 -0.001466 -0.380670 -v -0.011081 0.061034 -0.380670 -v -0.011081 -0.001466 -0.380670 -v -0.011081 0.061034 0.123705 -v -0.011081 -0.001466 0.123705 -v 0.041839 0.117489 -0.380670 -v 0.041839 0.039364 -0.380670 -v 0.041839 0.117489 -0.416295 -v 0.041839 0.039364 -0.416295 -v -0.051911 0.117489 -0.416295 -v -0.051911 0.039364 -0.416295 -v -0.051911 0.117489 -0.380670 -v -0.051911 0.039364 -0.380670 -v -0.023040 0.051323 -0.380670 -v -0.011081 0.022452 -0.380670 -v -0.023040 0.051323 -0.416295 -v -0.011081 0.022452 -0.416295 -v -0.051911 0.039364 -0.416295 -v -0.039952 0.010493 -0.416295 -v -0.051911 0.039364 -0.380670 -v -0.039952 0.010493 -0.380670 -v 0.012836 0.056277 -0.380670 -v -0.011081 -0.001466 -0.380670 -v 0.012836 0.056277 -0.416295 -v -0.011081 -0.001466 -0.416295 -v -0.016035 0.068235 -0.416295 -v -0.039952 0.010493 -0.416295 -v -0.016035 0.068235 -0.380670 -v -0.039952 0.010493 -0.380670 -v 0.005962 0.068236 -0.380670 -v 0.029880 0.010493 -0.380670 -v 0.005962 0.068236 -0.416295 -v 0.029880 0.010493 -0.416295 -v -0.022909 0.056277 -0.416295 -v 0.001008 -0.001466 -0.416295 -v -0.022909 0.056277 -0.380670 -v 0.001008 -0.001466 -0.380670 -v 0.001419 0.045409 -0.380670 -v 0.001419 -0.001466 -0.380670 -v 0.001419 0.045409 -0.416295 -v 0.001419 -0.001466 -0.416295 -v -0.011081 0.045409 -0.416295 -v -0.011081 -0.001466 -0.416295 -v -0.011081 0.045409 -0.380670 -v -0.011081 -0.001466 -0.380670 -v 0.041839 0.039364 -0.380670 -v 0.029880 0.010493 -0.380670 -v 0.041839 0.039364 -0.416295 -v 0.029880 0.010493 -0.416295 -v 0.012967 0.051323 -0.416295 -v 0.001008 0.022452 -0.416295 -v 0.012967 0.051323 -0.380670 -v 0.001008 0.022452 -0.380670 -v 0.026206 -0.015446 0.733253 -v 0.026206 -0.119302 0.837110 -v 0.026206 -0.048591 0.700108 -v 0.026206 -0.152448 0.803964 -v -0.036294 -0.048591 0.700108 -v -0.036294 -0.152448 0.803964 -v -0.036294 -0.015446 0.733253 -v -0.036294 -0.119302 0.837110 -vt 0.875000 0.250000 -vt 0.875000 0.062500 -vt 0.468750 0.250000 -vt 0.468750 0.062500 -vt 0.906250 0.250000 -vt 0.906250 0.062500 -vt 0.468750 0.250000 -vt 0.468750 0.062500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.468750 0.250000 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.468750 0.250000 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.718750 0.250000 -vt 0.718750 0.125000 -vt 0.468750 0.250000 -vt 0.468750 0.125000 -vt 0.750000 0.250000 -vt 0.750000 0.125000 -vt 0.468750 0.250000 -vt 0.468750 0.125000 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.468750 0.250000 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.468750 0.250000 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 1.000000 0.250000 -vt 1.000000 0.000000 -vt 0.468750 0.250000 -vt 0.468750 0.000000 -vt 0.843750 0.250000 -vt 0.843750 0.093750 -vt 0.468750 0.250000 -vt 0.468750 0.093750 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.812500 0.250000 -vt 0.812500 0.125000 -vt 0.468750 0.250000 -vt 0.468750 0.125000 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.937500 0.250000 -vt 0.937500 0.062500 -vt 0.468750 0.250000 -vt 0.468750 0.062500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.843750 0.250000 -vt 0.843750 0.093750 -vt 0.468750 0.250000 -vt 0.468750 0.093750 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.906250 0.250000 -vt 0.906250 0.093750 -vt 0.468750 0.250000 -vt 0.468750 0.093750 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.875000 0.250000 -vt 0.875000 0.062500 -vt 0.468750 0.250000 -vt 0.468750 0.062500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.468750 0.250000 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.500000 0.250000 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.468750 0.187500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.9239 0.3827 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 -0.9239 -vn 0.0000 1.0000 0.0000 +o Lever +v -0.187500 0.769607 -3.582107 +v -0.187500 0.445183 -3.798880 +v 0.187500 1.187500 -2.375000 +v -0.187500 1.187500 -2.375000 +v 0.187500 0.437500 -2.375000 +v -0.187500 0.437500 -2.375000 +v -0.187500 0.437500 -2.875000 +v 0.187500 0.437500 -2.875000 +v -0.187500 1.187500 -2.500000 +v 0.187500 1.187500 -2.500000 +v -0.187500 -0.062500 -2.875000 +v 0.187500 -0.062500 -2.875000 +v -0.187500 0.062500 -3.875000 +v 0.187500 0.062500 -3.875000 +v 0.187500 0.445183 -3.798880 +v 0.187500 0.769607 -3.582107 +v 0.187500 0.986380 -3.257684 +v 0.187500 1.062500 -2.875000 +v -0.187500 0.986380 -3.257684 +v -0.187500 1.062500 -2.875000 +v 0.187500 -0.062500 -3.875000 +v -0.187500 -0.062500 -3.875000 +v -0.187500 1.062500 -2.625000 +v 0.187500 1.062500 -2.625000 +v 0.125000 -0.062500 -3.750000 +v -0.125000 -0.062500 -3.750000 +v -0.125000 -0.062500 -3.625000 +v 0.125000 -0.062500 -3.625000 +v 0.125000 -0.812500 -4.875000 +v -0.125000 -0.812500 -4.875000 +v 0.125000 -1.062500 -4.875000 +v -0.125000 -1.062500 -4.875000 +v 0.125000 -1.187500 -4.750000 +v -0.125000 -1.187500 -4.750000 +v 0.125000 -1.187500 -4.500000 +v -0.125000 -1.187500 -4.500000 +v 0.125000 -0.687500 -3.750000 +v -0.125000 -0.687500 -3.750000 +v 0.125000 -0.437500 -3.750000 +v -0.125000 -0.437500 -3.750000 +v 0.125000 -0.437500 -3.250000 +v -0.125000 -0.437500 -3.250000 +v 0.125000 -0.187500 -3.000000 +v -0.125000 -0.187500 -3.000000 +v 0.125000 -0.062500 -3.000000 +v -0.125000 -0.062500 -3.000000 +v 0.125000 -0.187500 -3.062500 +v -0.125000 -0.187500 -3.062500 +v 0.125000 -0.062500 -3.062500 +v -0.125000 -0.062500 -3.062500 +v 0.125000 -0.375000 -3.625000 +v -0.125000 -0.375000 -3.625000 +v 0.125000 -0.375000 -3.250000 +v -0.125000 -0.375000 -3.250000 +v 0.125000 -0.250000 -3.812500 +v -0.125000 -0.250000 -3.812500 +v 0.125000 -1.125000 -4.750000 +v -0.125000 -1.125000 -4.750000 +v 0.125000 -1.125000 -4.500000 +v -0.125000 -1.125000 -4.500000 +v 0.125000 -0.812500 -4.812500 +v -0.125000 -0.812500 -4.812500 +v 0.125000 -1.062500 -4.812500 +v -0.125000 -1.062500 -4.812500 +v 0.125000 -0.750000 -3.937500 +v -0.125000 -0.750000 -3.937500 +v 0.125000 -0.500000 -3.937500 +v -0.125000 -0.500000 -3.937500 +v 0.125000 -0.437500 -4.250000 +v -0.125000 -0.437500 -4.250000 +v 0.125000 -0.437500 -4.000000 +v -0.125000 -0.437500 -4.000000 +vt 0.975410 0.317757 +vt 0.909836 0.261682 +vt 0.975410 0.261682 +vt 0.852459 0.504673 +vt 0.877049 0.392523 +vt 0.877049 0.504673 +vt 0.975410 0.635514 +vt 1.000000 0.616822 +vt 1.000000 0.635514 +vt 0.975410 0.598131 +vt 1.000000 0.598131 +vt 0.852459 0.392523 +vt 0.877049 0.317757 +vt 0.885246 0.392523 +vt 0.909836 0.317757 +vt 0.909836 0.392523 +vt 0.893443 0.485981 +vt 0.909836 0.392523 +vt 0.877049 0.392523 +vt 0.893443 0.485981 +vt 0.885246 0.504673 +vt 0.934942 0.474589 +vt 0.956208 0.442187 +vt 0.970412 0.393687 +vt 0.336066 0.878505 +vt 0.344262 0.887850 +vt 0.336066 0.887850 +vt 0.344262 0.934579 +vt 0.336066 0.925234 +vt 0.344262 0.925234 +vt 0.368852 0.887850 +vt 0.393443 0.878505 +vt 0.401639 0.887850 +vt 0.393443 0.934579 +vt 0.368852 0.925234 +vt 0.401639 0.925234 +vt 0.364754 0.878505 +vt 0.364754 0.934579 +vt 0.241803 0.738318 +vt 0.258197 0.728972 +vt 0.241803 0.728972 +vt 0.258197 0.738318 +vt 0.241803 0.728972 +vt 0.258197 0.728972 +vt 0.262295 0.747664 +vt 0.266393 0.785047 +vt 0.266393 0.747664 +vt 0.262295 0.785047 +vt 0.266393 0.747664 +vt 0.266393 0.785047 +vt 0.262295 0.747664 +vt 0.204918 0.794393 +vt 0.192623 0.803738 +vt 0.204918 0.831776 +vt 0.204918 0.794393 +vt 0.192623 0.803738 +vt 0.204918 0.831776 +vt 0.192623 0.841121 +vt 0.196721 0.869159 +vt 0.209016 0.841121 +vt 0.209016 0.841121 +vt 0.196721 0.869159 +vt 0.225410 0.841121 +vt 0.192623 0.897196 +vt 0.225410 0.841121 +vt 0.975410 0.616822 +vt 0.852459 0.317757 +vt 0.885246 0.317757 +vt 0.877049 0.504673 +vt 0.885246 0.504673 +vt 0.909836 0.485981 +vt 0.909836 0.485981 +vt 0.970417 0.393693 +vt 0.975410 0.336449 +vt 0.909836 0.317757 +vt 0.975410 0.317757 +vt 0.975410 0.336449 +vt 0.956204 0.442175 +vt 0.934941 0.474575 +vt 0.344262 0.878505 +vt 0.336066 0.934579 +vt 0.368852 0.878505 +vt 0.368852 0.934579 +vt 0.348361 0.878505 +vt 0.348361 0.934579 +vt 0.258197 0.738318 +vt 0.241803 0.738318 +vt 0.262295 0.785047 +vt 0.192623 0.841121 +vt 0.184426 0.850467 +vt 0.184426 0.850467 +vt 0.192623 0.897196 +vt 0.184426 0.897196 +vt 0.184426 0.897196 +vt 1.000000 0.504673 +vt 0.975410 0.560748 +vt 0.975410 0.504673 +vt 1.000000 0.336449 +vt 0.975410 0.392523 +vt 1.000000 0.317757 +vt 1.000000 0.392523 +vt 0.975410 0.448598 +vt 1.000000 0.560748 +vt 1.000000 0.448598 +vt 0.147541 0.897196 +vt 0.057377 0.934579 +vt 0.057377 0.897196 +vt 0.163934 0.897196 +vt 0.147541 0.934579 +vt 0.176230 0.897196 +vt 0.163934 0.934579 +vt 0.192623 0.897196 +vt 0.176230 0.934579 +vt 0.250000 0.897196 +vt 0.192623 0.934579 +vt 0.266393 0.897196 +vt 0.250000 0.934579 +vt 0.336066 0.971963 +vt 0.348361 0.971963 +vt 0.364754 0.971963 +vt 0.368852 0.971963 +vt 0.409836 0.934579 +vt 0.393443 0.971963 +vt 0.409836 0.971963 +vt 0.426230 0.934579 +vt 0.426230 0.971963 +vt 0.077869 0.728972 +vt 0.061475 0.766355 +vt 0.061475 0.728972 +vt 0.077869 0.766355 +vt 0.086066 0.728972 +vt 0.086066 0.766355 +vt 0.102459 0.728972 +vt 0.020492 0.766355 +vt 0.168033 0.766355 +vt 0.184426 0.728972 +vt 0.184426 0.766355 +vt 0.143443 0.728972 +vt 0.102459 0.766355 +vt 0.159836 0.728972 +vt 0.143443 0.766355 +vt 0.159836 0.766355 +vt 0.168033 0.728972 +vt 0.266393 0.934579 +vt 0.344262 0.971963 +vt 0.020492 0.728972 vn 0.0000 -1.0000 0.0000 vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 0.3827 0.9239 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 -0.7071 -vn 0.9239 -0.3827 -0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn -0.3827 -0.9239 -0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.9239 -0.3827 -0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.3827 -0.9239 -0.0000 -s off -f 1/1/1 2/2/1 3/3/1 -f 2/2/1 4/4/1 3/3/1 -f 5/5/2 6/6/2 7/7/2 -f 6/6/2 8/8/2 7/7/2 -f 5/9/3 7/10/3 3/3/3 -f 7/10/3 1/11/3 3/3/3 -f 8/12/4 6/13/4 2/14/4 -f 6/13/4 4/15/4 2/14/4 -f 7/16/5 8/17/5 1/18/5 -f 8/17/5 2/19/5 1/18/5 -f 3/20/6 4/21/6 5/22/6 -f 4/21/6 6/23/6 5/22/6 -f 9/24/1 10/25/1 11/26/1 -f 10/25/1 12/27/1 11/26/1 -f 13/28/2 14/29/2 15/30/2 -f 14/29/2 16/31/2 15/30/2 -f 13/28/7 15/32/7 11/26/7 -f 15/32/7 9/33/7 11/26/7 -f 16/34/8 14/29/8 10/35/8 -f 14/29/8 12/27/8 10/35/8 -f 15/36/9 16/37/9 9/38/9 -f 16/37/9 10/39/9 9/38/9 -f 11/40/10 12/41/10 13/42/10 -f 12/41/10 14/43/10 13/42/10 -f 17/44/1 18/45/1 19/46/1 -f 18/45/1 20/47/1 19/46/1 -f 21/48/2 22/49/2 23/50/2 -f 22/49/2 24/51/2 23/50/2 -f 21/48/11 23/52/11 19/46/11 -f 23/52/11 17/53/11 19/46/11 -f 24/54/12 22/49/12 18/55/12 -f 22/49/12 20/47/12 18/55/12 -f 23/56/13 24/57/13 17/58/13 -f 24/57/13 18/59/13 17/58/13 -f 19/60/14 20/61/14 21/62/14 -f 20/61/14 22/63/14 21/62/14 -f 25/64/1 26/65/1 27/66/1 -f 26/65/1 28/67/1 27/66/1 -f 29/68/2 30/69/2 31/70/2 -f 30/69/2 32/71/2 31/70/2 -f 29/72/15 31/73/15 27/66/15 -f 31/73/15 25/74/15 27/66/15 -f 32/75/16 30/76/16 26/77/16 -f 30/76/16 28/78/16 26/77/16 -f 31/79/17 32/80/17 25/81/17 -f 32/80/17 26/82/17 25/81/17 -f 27/83/18 28/84/18 29/85/18 -f 28/84/18 30/86/18 29/85/18 -f 33/87/1 34/88/1 35/89/1 -f 34/88/1 36/90/1 35/89/1 -f 37/91/2 38/92/2 39/93/2 -f 38/92/2 40/94/2 39/93/2 -f 37/91/11 39/95/11 35/89/11 -f 39/95/11 33/96/11 35/89/11 -f 40/97/12 38/92/12 34/98/12 -f 38/92/12 36/90/12 34/98/12 -f 39/99/13 40/100/13 33/101/13 -f 40/100/13 34/102/13 33/101/13 -f 35/103/14 36/104/14 37/105/14 -f 36/104/14 38/106/14 37/105/14 -f 41/107/1 42/108/1 43/109/1 -f 42/108/1 44/110/1 43/109/1 -f 45/111/2 46/112/2 47/113/2 -f 46/112/2 48/114/2 47/113/2 -f 45/111/15 47/115/15 43/109/15 -f 47/115/15 41/116/15 43/109/15 -f 48/117/16 46/112/16 42/118/16 -f 46/112/16 44/110/16 42/118/16 -f 47/119/17 48/120/17 41/121/17 -f 48/120/17 42/122/17 41/121/17 -f 43/123/18 44/124/18 45/125/18 -f 44/124/18 46/126/18 45/125/18 -f 49/127/1 50/128/1 51/129/1 -f 50/128/1 52/130/1 51/129/1 -f 53/131/2 54/132/2 55/133/2 -f 54/132/2 56/134/2 55/133/2 -f 53/135/7 55/136/7 51/129/7 -f 55/136/7 49/137/7 51/129/7 -f 56/138/8 54/139/8 50/140/8 -f 54/139/8 52/141/8 50/140/8 -f 55/142/9 56/143/9 49/144/9 -f 56/143/9 50/145/9 49/144/9 -f 51/146/10 52/147/10 53/148/10 -f 52/147/10 54/149/10 53/148/10 -f 57/150/19 58/151/19 59/152/19 -f 58/151/19 60/153/19 59/152/19 -f 61/154/20 62/155/20 63/156/20 -f 62/155/20 64/157/20 63/156/20 -f 61/154/21 63/158/21 59/152/21 -f 63/158/21 57/159/21 59/152/21 -f 64/160/22 62/155/22 58/161/22 -f 62/155/22 60/162/22 58/161/22 -f 63/163/9 64/164/9 57/165/9 -f 64/164/9 58/166/9 57/165/9 -f 59/167/10 60/168/10 61/169/10 -f 60/168/10 62/170/10 61/169/10 -f 65/171/23 66/172/23 67/173/23 -f 66/172/23 68/174/23 67/173/23 -f 69/175/24 70/176/24 71/177/24 -f 70/176/24 72/178/24 71/177/24 -f 69/175/25 71/179/25 67/173/25 -f 71/179/25 65/180/25 67/173/25 -f 72/181/26 70/182/26 66/183/26 -f 70/182/26 68/184/26 66/183/26 -f 71/185/9 72/186/9 65/187/9 -f 72/186/9 66/188/9 65/187/9 -f 67/189/10 68/190/10 69/191/10 -f 68/190/10 70/192/10 69/191/10 -f 73/193/23 74/194/23 75/195/23 -f 74/194/23 76/196/23 75/195/23 -f 77/197/24 78/198/24 79/199/24 -f 78/198/24 80/200/24 79/199/24 -f 77/201/25 79/202/25 75/195/25 -f 79/202/25 73/203/25 75/195/25 -f 80/204/26 78/205/26 74/206/26 -f 78/205/26 76/196/26 74/206/26 -f 79/207/9 80/208/9 73/209/9 -f 80/208/9 74/210/9 73/209/9 -f 75/211/10 76/212/10 77/213/10 -f 76/212/10 78/214/10 77/213/10 -f 81/215/19 82/216/19 83/217/19 -f 82/216/19 84/218/19 83/217/19 -f 85/219/20 86/220/20 87/221/20 -f 86/220/20 88/222/20 87/221/20 -f 85/219/21 87/223/21 83/217/21 -f 87/223/21 81/224/21 83/217/21 -f 88/225/22 86/226/22 82/227/22 -f 86/226/22 84/228/22 82/227/22 -f 87/229/9 88/230/9 81/231/9 -f 88/230/9 82/232/9 81/231/9 -f 83/233/10 84/234/10 85/235/10 -f 84/234/10 86/236/10 85/235/10 -f 89/237/1 90/238/1 91/239/1 -f 90/238/1 92/240/1 91/239/1 -f 93/241/2 94/242/2 95/243/2 -f 94/242/2 96/244/2 95/243/2 -f 93/241/7 95/245/7 91/239/7 -f 95/245/7 89/246/7 91/239/7 -f 96/247/8 94/248/8 90/249/8 -f 94/248/8 92/250/8 90/249/8 -f 95/251/9 96/252/9 89/253/9 -f 96/252/9 90/254/9 89/253/9 -f 91/255/10 92/256/10 93/257/10 -f 92/256/10 94/258/10 93/257/10 -f 145/259/1 146/260/1 147/261/1 -f 146/260/1 148/262/1 147/261/1 -f 149/263/2 150/264/2 151/265/2 -f 150/264/2 152/266/2 151/265/2 -f 149/263/15 151/267/15 147/261/15 -f 151/267/15 145/268/15 147/261/15 -f 152/269/16 150/264/16 146/270/16 -f 150/264/16 148/262/16 146/270/16 -f 151/271/17 152/272/17 145/273/17 -f 152/272/17 146/274/17 145/273/17 -f 147/275/18 148/276/18 149/277/18 -f 148/276/18 150/278/18 149/277/18 -f 97/279/1 98/280/1 99/281/1 -f 98/280/1 100/282/1 99/281/1 -f 101/283/2 102/284/2 103/285/2 -f 102/284/2 104/286/2 103/285/2 -f 101/283/7 103/287/7 99/281/7 -f 103/287/7 97/288/7 99/281/7 -f 104/289/8 102/284/8 98/290/8 -f 102/284/8 100/282/8 98/290/8 -f 103/291/9 104/292/9 97/293/9 -f 104/292/9 98/294/9 97/293/9 -f 99/295/10 100/296/10 101/297/10 -f 100/296/10 102/298/10 101/297/10 -f 105/299/23 106/300/23 107/301/23 -f 106/300/23 108/302/23 107/301/23 -f 109/303/24 110/304/24 111/305/24 -f 110/304/24 112/306/24 111/305/24 -f 109/303/25 111/307/25 107/301/25 -f 111/307/25 105/308/25 107/301/25 -f 112/309/26 110/304/26 106/310/26 -f 110/304/26 108/302/26 106/310/26 -f 111/311/9 112/312/9 105/313/9 -f 112/312/9 106/314/9 105/313/9 -f 107/315/10 108/316/10 109/317/10 -f 108/316/10 110/318/10 109/317/10 -f 113/319/19 114/320/19 115/321/19 -f 114/320/19 116/322/19 115/321/19 -f 117/323/20 118/324/20 119/325/20 -f 118/324/20 120/326/20 119/325/20 -f 117/323/21 119/327/21 115/321/21 -f 119/327/21 113/328/21 115/321/21 -f 120/329/22 118/324/22 114/330/22 -f 118/324/22 116/322/22 114/330/22 -f 119/331/9 120/332/9 113/333/9 -f 120/332/9 114/334/9 113/333/9 -f 115/335/10 116/336/10 117/337/10 -f 116/336/10 118/338/10 117/337/10 -f 121/339/23 122/340/23 123/341/23 -f 122/340/23 124/342/23 123/341/23 -f 125/343/24 126/344/24 127/345/24 -f 126/344/24 128/346/24 127/345/24 -f 125/343/25 127/347/25 123/341/25 -f 127/347/25 121/348/25 123/341/25 -f 128/349/26 126/344/26 122/350/26 -f 126/344/26 124/342/26 122/350/26 -f 127/351/9 128/352/9 121/353/9 -f 128/352/9 122/354/9 121/353/9 -f 123/355/10 124/356/10 125/357/10 -f 124/356/10 126/358/10 125/357/10 -f 129/359/1 130/360/1 131/361/1 -f 130/360/1 132/362/1 131/361/1 -f 133/363/2 134/364/2 135/365/2 -f 134/364/2 136/366/2 135/365/2 -f 133/363/7 135/367/7 131/361/7 -f 135/367/7 129/368/7 131/361/7 -f 136/369/8 134/364/8 130/370/8 -f 134/364/8 132/362/8 130/370/8 -f 135/371/9 136/372/9 129/373/9 -f 136/372/9 130/374/9 129/373/9 -f 131/375/10 132/376/10 133/377/10 -f 132/376/10 134/378/10 133/377/10 -f 137/379/19 138/380/19 139/381/19 -f 138/380/19 140/382/19 139/381/19 -f 141/383/20 142/384/20 143/385/20 -f 142/384/20 144/386/20 143/385/20 -f 141/383/21 143/387/21 139/381/21 -f 143/387/21 137/388/21 139/381/21 -f 144/389/22 142/384/22 138/390/22 -f 142/384/22 140/382/22 138/390/22 -f 143/391/9 144/392/9 137/393/9 -f 144/392/9 138/394/9 137/393/9 -f 139/395/10 140/396/10 141/397/10 -f 140/396/10 142/398/10 141/397/10 -o Lever -v 0.019964 0.080214 0.281241 -v 0.019964 0.024971 0.336484 -v 0.019964 0.024971 0.225999 -v 0.019964 -0.030272 0.281241 -v -0.030036 0.024971 0.225999 -v -0.030036 -0.030272 0.281241 -v -0.030036 0.080214 0.281241 -v -0.030036 0.024971 0.336484 -v 0.019964 0.008853 0.262532 -v 0.019964 -0.020018 0.274490 -v 0.019964 0.002874 0.248096 -v 0.019964 -0.025998 0.260055 -v -0.030036 0.002874 0.248096 -v -0.030036 -0.025998 0.260055 -v -0.030036 0.008853 0.262532 -v -0.030036 -0.020018 0.274490 -v 0.019964 -0.014949 0.271104 -v 0.019964 -0.037046 0.293201 -v 0.019964 -0.025997 0.260055 -v 0.019964 -0.048094 0.282152 -v -0.030036 -0.025997 0.260055 -v -0.030036 -0.048094 0.282152 -v -0.030036 -0.014949 0.271104 -v -0.030036 -0.037046 0.293201 -v 0.019964 -0.022610 0.299180 -v 0.019964 -0.037046 0.293200 -v 0.019964 -0.010651 0.270308 -v 0.019964 -0.025087 0.264329 -v -0.030036 -0.010651 0.270308 -v -0.030036 -0.025087 0.264329 -v -0.030036 -0.022610 0.299180 -v -0.030036 -0.037046 0.293200 -v 0.019964 0.038612 0.362084 -v 0.019964 -0.027679 0.295793 -v 0.019964 0.049660 0.351036 -v 0.019964 -0.016631 0.284744 -v -0.030036 0.049660 0.351036 -v -0.030036 -0.016631 0.284744 -v -0.030036 0.038612 0.362084 -v -0.030036 -0.027679 0.295793 -v 0.007464 0.015470 0.337208 -v 0.007464 -0.031405 0.337208 -v 0.007464 0.015470 0.274708 -v 0.007464 -0.031405 0.274708 -v -0.017536 0.015470 0.274708 -v -0.017536 -0.031405 0.274708 -v -0.017536 0.015470 0.337208 -v -0.017536 -0.031405 0.337208 -v 0.007464 0.011902 0.355146 -v 0.007464 -0.031405 0.337208 -v 0.007464 0.035819 0.297404 -v 0.007464 -0.007487 0.279466 -v -0.017536 0.035819 0.297404 -v -0.017536 -0.007487 0.279466 -v -0.017536 0.011902 0.355146 -v -0.017536 -0.031405 0.337208 -v 0.007464 -0.016969 0.331229 -v 0.007464 -0.074712 0.355146 -v 0.007464 -0.022949 0.316793 -v 0.007464 -0.080691 0.340711 -v -0.017536 -0.022949 0.316793 -v -0.017536 -0.080691 0.340711 -v -0.017536 -0.016969 0.331229 -v -0.017536 -0.074712 0.355146 -v 0.007464 -0.084194 0.389997 -v 0.007464 -0.098629 0.384018 -v 0.007464 -0.066255 0.346690 -v 0.007464 -0.080691 0.340711 -v -0.017536 -0.066255 0.346690 -v -0.017536 -0.080691 0.340711 -v -0.017536 -0.084194 0.389997 -v -0.017536 -0.098629 0.384018 -v 0.007464 -0.083004 0.430892 -v 0.007464 -0.098629 0.430892 -v 0.007464 -0.083004 0.384017 -v 0.007464 -0.098629 0.384017 -v -0.017536 -0.083004 0.384017 -v -0.017536 -0.098629 0.384017 -v -0.017536 -0.083004 0.430892 -v -0.017536 -0.098629 0.430892 -v 0.007464 -0.054436 0.452989 -v 0.007464 -0.065484 0.464038 -v 0.007464 -0.087581 0.419844 -v 0.007464 -0.098630 0.430892 -v -0.017536 -0.087581 0.419844 -v -0.017536 -0.098630 0.430892 -v -0.017536 -0.054436 0.452989 -v -0.017536 -0.065484 0.464038 -v 0.007464 -0.182975 0.584708 -v 0.007464 -0.197410 0.578729 -v 0.007464 -0.165036 0.541401 -v 0.007464 -0.179472 0.535422 -v -0.017536 -0.165036 0.541401 -v -0.017536 -0.179472 0.535422 -v -0.017536 -0.182975 0.584708 -v -0.017536 -0.197410 0.578729 -v 0.007464 -0.171016 0.601620 -v 0.007464 -0.185451 0.607599 -v 0.007464 -0.182975 0.572749 -v 0.007464 -0.197410 0.578728 -v -0.017536 -0.182975 0.572749 -v -0.017536 -0.197410 0.578728 -v -0.017536 -0.171016 0.601620 -v -0.017536 -0.185451 0.607599 -v 0.007464 -0.156580 0.619558 -v 0.007464 -0.185451 0.607599 -v 0.007464 -0.150601 0.605123 -v 0.007464 -0.179472 0.593164 -v -0.017536 -0.150601 0.605123 -v -0.017536 -0.179472 0.593164 -v -0.017536 -0.156580 0.619558 -v -0.017536 -0.185451 0.607599 -v 0.007464 -0.113273 0.601620 -v 0.007464 -0.156580 0.619558 -v 0.007464 -0.119253 0.587184 -v 0.007464 -0.162560 0.605123 -v -0.017536 -0.119253 0.587184 -v -0.017536 -0.162560 0.605123 -v -0.017536 -0.113273 0.601620 -v -0.017536 -0.156580 0.619558 -v 0.007464 -0.069079 0.557426 -v 0.007464 -0.113273 0.601620 -v 0.007464 -0.080128 0.546377 -v 0.007464 -0.124322 0.590572 -v -0.017536 -0.080128 0.546377 -v -0.017536 -0.124322 0.590572 -v -0.017536 -0.069079 0.557426 -v -0.017536 -0.113273 0.601620 -v 0.007464 -0.069079 0.557426 -v 0.007464 -0.083515 0.551446 -v 0.007464 -0.033203 0.470812 -v 0.007464 -0.047638 0.464833 -v -0.017536 -0.033203 0.470812 -v -0.017536 -0.047638 0.464833 -v -0.017536 -0.069079 0.557426 -v -0.017536 -0.083515 0.551446 -v 0.007464 -0.102132 0.480179 -v 0.007464 -0.116568 0.474199 -v 0.007464 -0.084194 0.436872 -v 0.007464 -0.098629 0.430892 -v -0.017536 -0.084194 0.436872 -v -0.017536 -0.098629 0.430892 -v -0.017536 -0.102132 0.480179 -v -0.017536 -0.116568 0.474199 -v 0.007464 -0.168423 0.546470 -v 0.007464 -0.179472 0.535422 -v 0.007464 -0.102132 0.480179 -v 0.007464 -0.113181 0.469131 -v -0.017536 -0.102132 0.480179 -v -0.017536 -0.113181 0.469131 -v -0.017536 -0.168423 0.546470 -v -0.017536 -0.179472 0.535422 -v 0.007464 -0.022177 0.481976 -v 0.007464 -0.065484 0.464038 -v 0.007464 -0.016197 0.467541 -v 0.007464 -0.059504 0.449602 -v -0.017536 -0.016197 0.467541 -v -0.017536 -0.059504 0.449602 -v -0.017536 -0.022177 0.481976 -v -0.017536 -0.065484 0.464038 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 0.3827 0.9239 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 -0.9239 vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.7071 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.9952 -0.0980 +vn 0.0000 0.0980 -0.9952 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.4719 -0.8817 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9571 0.2898 +vn 0.0000 -0.4719 0.8817 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9571 0.2898 +vn 0.0000 0.0985 0.9951 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9571 -0.2898 +vn 0.0000 0.3827 0.9239 +s off +f 21/1/1 11/2/1 22/3/1 +f 4/4/2 5/5/2 3/6/2 +f 3/7/3 9/8/3 4/9/3 +f 9/8/4 24/10/4 23/11/4 +f 6/12/1 8/13/1 5/5/1 +f 7/14/2 12/15/2 8/16/2 +f 23/17/5 7/18/5 6/19/5 +f 24/20/6 10/21/6 3/6/6 +f 19/22/5 1/23/5 7/18/5 +f 8/16/6 12/15/6 15/24/6 +f 50/25/5 44/26/5 46/27/5 +f 47/28/6 45/29/6 43/30/6 +f 42/31/5 52/32/5 40/33/5 +f 51/34/6 41/35/6 39/36/6 +f 44/26/5 54/37/5 42/31/5 +f 53/38/6 43/30/6 41/35/6 +f 60/39/5 34/40/5 36/41/5 +f 57/42/6 35/43/6 33/44/6 +f 64/45/5 30/46/5 32/47/5 +f 61/48/6 31/49/6 29/50/6 +f 34/40/5 64/45/5 32/47/5 +f 63/51/6 33/44/6 31/49/6 +f 36/41/5 66/52/5 60/39/5 +f 38/53/5 68/54/5 66/52/5 +f 35/43/6 65/55/6 37/56/6 +f 37/56/6 67/57/6 39/58/6 +f 56/59/5 72/60/5 68/54/5 +f 39/58/6 71/61/6 55/62/6 +f 30/46/5 70/63/5 26/64/5 +f 29/50/6 69/65/6 61/48/6 +f 70/63/5 72/60/5 56/59/5 +f 55/62/6 71/61/6 69/65/6 +f 21/1/1 12/15/1 11/2/1 +f 4/4/2 6/12/2 5/5/2 +f 3/7/3 10/66/3 9/8/3 +f 9/8/4 10/66/4 24/10/4 +f 6/12/1 7/67/1 8/13/1 +f 7/14/2 11/68/2 12/15/2 +f 6/19/5 4/69/5 23/17/5 +f 4/69/5 9/70/5 23/17/5 +f 23/17/5 20/71/5 7/18/5 +f 3/6/6 5/5/6 24/20/6 +f 5/5/6 8/16/6 24/20/6 +f 8/16/6 18/72/6 24/20/6 +f 1/23/5 2/73/5 7/18/5 +f 2/73/5 13/74/5 11/75/5 +f 7/18/5 2/73/5 11/75/5 +f 13/74/5 22/76/5 11/75/5 +f 7/18/5 20/71/5 19/22/5 +f 12/15/6 21/1/6 14/77/6 +f 14/77/6 15/24/6 12/15/6 +f 15/24/6 16/78/6 8/16/6 +f 16/78/6 17/79/6 8/16/6 +f 17/79/6 18/72/6 8/16/6 +f 50/25/5 48/80/5 44/26/5 +f 47/28/6 49/81/6 45/29/6 +f 42/31/5 54/82/5 52/32/5 +f 51/34/6 53/83/6 41/35/6 +f 44/26/5 48/84/5 54/37/5 +f 53/38/6 47/85/6 43/30/6 +f 60/39/5 58/86/5 34/40/5 +f 57/42/6 59/87/6 35/43/6 +f 64/45/5 62/88/5 30/46/5 +f 61/48/6 63/51/6 31/49/6 +f 34/40/5 58/86/5 64/45/5 +f 63/51/6 57/42/6 33/44/6 +f 36/41/5 38/53/5 66/52/5 +f 38/53/5 40/89/5 68/54/5 +f 35/43/6 59/87/6 65/55/6 +f 37/56/6 65/55/6 67/57/6 +f 68/54/5 40/89/5 56/59/5 +f 40/89/5 52/90/5 56/59/5 +f 55/62/6 51/91/6 39/58/6 +f 39/58/6 67/57/6 71/61/6 +f 30/46/5 62/88/5 70/63/5 +f 29/50/6 25/92/6 69/65/6 +f 27/93/5 26/64/5 56/59/5 +f 26/64/5 70/63/5 56/59/5 +f 69/65/6 25/92/6 55/62/6 +f 25/92/6 28/94/6 55/62/6 +s 1 +f 19/95/7 18/96/8 17/97/7 +f 13/98/9 15/99/10 14/77/9 +f 14/77/9 22/100/11 13/98/9 +f 2/101/10 16/102/4 15/99/10 +f 20/103/8 24/10/3 18/96/8 +f 1/104/4 17/97/7 16/102/4 +f 29/105/12 26/106/13 25/107/13 +f 31/108/14 30/109/12 29/105/12 +f 33/110/15 32/111/14 31/108/14 +f 35/112/16 34/113/15 33/110/15 +f 37/114/17 36/115/16 35/112/16 +f 39/116/2 38/117/17 37/114/17 +f 41/35/18 40/33/1 39/36/1 +f 43/30/19 42/31/18 41/35/18 +f 45/29/2 44/26/19 43/30/19 +f 47/28/10 50/118/11 49/81/11 +f 48/119/10 53/38/7 54/120/7 +f 51/34/20 54/121/7 53/83/7 +f 55/122/21 52/123/20 51/34/20 +f 56/124/21 28/125/22 27/126/22 +f 57/127/23 60/128/24 59/129/24 +f 58/130/23 63/131/25 64/132/25 +f 61/133/17 64/132/25 63/131/25 +f 66/134/12 59/129/24 60/128/24 +f 68/135/14 65/136/12 66/137/12 +f 69/138/16 62/139/17 61/133/17 +f 71/140/15 70/141/16 69/138/16 +f 72/142/15 67/143/14 68/135/14 +f 19/95/7 20/103/8 18/96/8 +f 13/98/9 2/101/10 15/99/10 +f 14/77/9 21/1/11 22/100/11 +f 2/101/10 1/104/4 16/102/4 +f 20/103/8 23/11/3 24/10/3 +f 1/104/4 19/95/7 17/97/7 +f 29/105/12 30/109/12 26/106/13 +f 31/108/14 32/111/14 30/109/12 +f 33/110/15 34/113/15 32/111/14 +f 35/112/16 36/115/16 34/113/15 +f 37/114/17 38/117/17 36/115/16 +f 39/116/2 40/144/2 38/117/17 +f 41/35/18 42/31/18 40/33/1 +f 43/30/19 44/26/19 42/31/18 +f 45/29/2 46/27/2 44/26/19 +f 47/28/10 48/145/10 50/118/11 +f 48/119/10 47/85/10 53/38/7 +f 51/34/20 52/123/20 54/121/7 +f 55/122/21 56/124/21 52/123/20 +f 56/124/21 55/122/21 28/125/22 +f 57/127/23 58/130/23 60/128/24 +f 58/130/23 57/127/23 63/131/25 +f 61/133/17 62/139/17 64/132/25 +f 66/134/12 65/146/12 59/129/24 +f 68/135/14 67/143/14 65/136/12 +f 69/138/16 70/141/16 62/139/17 +f 71/140/15 72/142/15 70/141/16 +f 72/142/15 71/140/15 67/143/14 +o Stock +v -0.375000 -0.375000 -5.562500 +v -0.375000 -0.625000 -5.437500 +v -0.375000 -1.375000 -8.000000 +v -0.375000 0.000000 -5.562500 +v -0.375000 -0.125000 -8.000000 +v 0.375000 -0.375000 -5.562500 +v 0.375000 -0.625000 -5.437500 +v 0.375000 -1.375000 -8.000000 +v 0.375000 0.000000 -5.562500 +v 0.375000 -0.125000 -8.000000 +v 0.250000 0.000000 -8.000000 +v -0.250000 0.000000 -8.000000 +v -0.250000 -1.500000 -8.000000 +v 0.250000 -1.500000 -8.000000 +v 0.250000 -0.750000 -5.375000 +v -0.250000 -0.750000 -5.375000 +v 0.250000 0.125000 -5.562500 +v -0.250000 0.125000 -5.562500 +vt 0.803279 0.803738 +vt 0.721311 0.803738 +vt 0.803279 0.691589 +vt 0.520492 0.691589 +vt 0.520492 0.803738 +vt 0.495902 0.710280 +vt 0.545082 0.691589 +vt 0.553279 0.710280 +vt 0.713115 0.785047 +vt 0.713115 0.710280 +vt 0.721311 0.691589 +vt 0.811475 0.710280 +vt 0.811475 0.785047 +vt 0.504098 0.803738 +vt 0.495902 0.785047 +vt 0.504098 0.691589 +vt 0.553279 0.785047 +vt 0.545082 0.803738 +vt 0.553279 0.813084 +vt 0.536885 0.392523 +vt 0.713115 0.364486 +vt 0.713115 0.392523 +vt 0.553279 0.682243 +vt 0.713115 0.682243 +vt 0.536885 0.467290 +vt 0.713115 0.495327 +vt 0.536885 0.495327 +vt 0.713115 1.000000 +vt 0.553279 0.869159 +vt 0.713115 0.813084 +vt 0.553279 0.626168 +vt 0.545082 0.588785 +vt 0.536885 0.364486 +vt 0.713115 0.467290 +vt 0.545082 0.906542 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.4472 0.8944 +vn 0.0000 0.0000 1.0000 +vn -0.3867 0.9210 -0.0472 +vn -0.9193 0.3932 -0.0202 +vn -0.3779 0.9246 -0.0474 +vn -0.3846 -0.8870 0.2557 +vn -0.8923 -0.4340 0.1241 +vn -0.3487 -0.9012 0.2575 +vn 0.3867 0.9210 -0.0472 +vn 0.9193 0.3932 -0.0202 +vn 0.9281 0.3719 -0.0191 +vn 0.3846 -0.8870 0.2557 +vn 0.8923 -0.4340 0.1241 +vn 0.9180 -0.3806 0.1114 +vn 0.3779 0.9246 -0.0474 +vn -1.0000 0.0000 0.0000 +vn -0.9281 0.3719 -0.0191 +vn 1.0000 0.0000 0.0000 +vn -0.9180 -0.3806 0.1114 +vn 0.3487 -0.9012 0.2575 +s off +f 75/147/26 77/148/26 80/149/26 +f 78/150/27 73/151/27 87/152/27 +f 78/150/28 81/153/28 89/154/28 +f 77/148/26 84/155/26 83/156/26 +f 83/156/26 82/157/26 77/148/26 +f 82/157/26 80/149/26 77/148/26 +f 80/149/26 86/158/26 85/159/26 +f 85/159/26 75/147/26 80/149/26 +f 74/160/27 88/161/27 73/151/27 +f 88/161/27 87/152/27 73/151/27 +f 87/152/27 79/162/27 78/150/27 +f 89/154/28 90/163/28 73/151/28 +f 90/163/28 76/164/28 73/151/28 +f 73/151/28 78/150/28 89/154/28 +s 1 +f 84/155/29 76/165/30 90/163/31 +f 88/166/32 75/167/33 85/168/34 +f 83/156/35 81/169/36 82/170/37 +f 87/171/38 80/172/39 79/173/40 +f 89/154/41 84/155/29 90/163/31 +f 85/168/34 87/171/38 88/166/32 +f 75/174/33 73/175/42 77/176/43 +f 80/172/39 78/177/44 79/178/40 +f 78/177/44 82/170/37 81/169/36 +f 77/176/43 73/175/42 76/165/30 +f 84/155/29 77/176/43 76/165/30 +f 88/166/32 74/179/45 75/167/33 +f 83/156/35 89/154/41 81/169/36 +f 87/171/38 86/180/46 80/172/39 +f 89/154/41 83/156/35 84/155/29 +f 85/168/34 86/180/46 87/171/38 +f 75/174/33 74/181/45 73/175/42 +f 80/172/39 82/170/37 78/177/44 +o Shell +v 0.000000 1.625000 -2.375000 +v -0.062500 1.608253 -2.375000 +v -0.108253 1.562500 -2.375000 +v -0.125000 1.500000 -2.375000 +v -0.108253 1.437500 -2.375000 +v -0.062500 1.391747 -2.375000 +v 0.000000 1.375000 -2.375000 +v 0.062500 1.391747 -2.375000 +v 0.108253 1.437500 -2.375000 +v 0.125000 1.500000 -2.375000 +v 0.108253 1.562500 -2.375000 +v 0.062500 1.608253 -2.375000 +v 0.000000 1.625000 -1.625000 +v -0.062500 1.608253 -1.625000 +v -0.108253 1.562500 -1.625000 +v -0.125000 1.500000 -1.625000 +v -0.108253 1.437500 -1.625000 +v -0.062500 1.391747 -1.625000 +v 0.000000 1.375000 -1.625000 +v 0.062500 1.391747 -1.625000 +v 0.108253 1.437500 -1.625000 +v 0.125000 1.500000 -1.625000 +v 0.108253 1.562500 -1.625000 +v 0.062500 1.608253 -1.625000 +v 0.000000 1.640625 -2.375000 +v -0.070312 1.621785 -2.375000 +v -0.121785 1.570312 -2.375000 +v -0.140625 1.500000 -2.375000 +v -0.121785 1.429688 -2.375000 +v -0.070312 1.378215 -2.375000 +v 0.000000 1.359375 -2.375000 +v 0.070312 1.378215 -2.375000 +v 0.121785 1.429688 -2.375000 +v 0.140625 1.500000 -2.375000 +v 0.121785 1.570312 -2.375000 +v 0.070312 1.621785 -2.375000 +v 0.000000 1.640625 -2.437500 +v -0.070312 1.621785 -2.437500 +v -0.121785 1.570312 -2.437500 +v -0.140625 1.500000 -2.437500 +v -0.121785 1.429688 -2.437500 +v -0.070312 1.378215 -2.437500 +v 0.000000 1.359375 -2.437500 +v 0.070312 1.378215 -2.437500 +v 0.121785 1.429688 -2.437500 +v 0.140625 1.500000 -2.437500 +v 0.121785 1.570312 -2.437500 +v 0.070312 1.621785 -2.437500 +vt 0.778689 0.803764 +vt 0.785777 0.813097 +vt 0.778689 0.841096 +vt 0.762295 0.878505 +vt 0.766393 0.869159 +vt 0.766393 0.878505 +vt 0.762295 0.822430 +vt 0.766393 0.831776 +vt 0.762295 0.831776 +vt 0.762295 0.906542 +vt 0.766393 0.915888 +vt 0.762295 0.915888 +vt 0.766393 0.887850 +vt 0.762295 0.887850 +vt 0.762295 0.841121 +vt 0.766393 0.841121 +vt 0.762295 0.813084 +vt 0.766393 0.803738 +vt 0.766393 0.813084 +vt 0.762295 0.897196 +vt 0.766393 0.897196 +vt 0.766393 0.850467 +vt 0.762295 0.850467 +vt 0.762295 0.859813 +vt 0.762295 0.869159 +vt 0.766393 0.822430 +vt 0.766393 0.906542 +vt 0.766393 0.859813 +vt 0.787992 0.831765 +vt 0.795082 0.803760 +vt 0.802173 0.831765 +vt 0.774596 0.838595 +vt 0.771600 0.813097 +vt 0.771600 0.831763 +vt 0.770503 0.822430 +vt 0.774596 0.806265 +vt 0.782781 0.806265 +vt 0.786874 0.822430 +vt 0.785777 0.831763 +vt 0.782781 0.838595 +vt 0.762295 0.803738 +vt 0.799176 0.838599 +vt 0.795082 0.841100 +vt 0.790989 0.838599 +vt 0.786895 0.822430 +vt 0.787992 0.813095 +vt 0.790989 0.806261 +vt 0.799176 0.806261 +vt 0.802173 0.813095 +vt 0.803269 0.822430 +vt 0.713115 0.850467 +vt 0.713115 0.897196 +vt 0.713115 0.906542 +vt 0.713115 0.803738 +vt 0.713115 0.813084 +vt 0.713115 0.859813 +vt 0.713115 0.822430 +vt 0.713115 0.869159 +vt 0.713115 0.831776 +vt 0.713115 0.878505 +vt 0.713115 0.841121 +vt 0.713115 0.887850 +vt 0.770492 0.813084 +vt 0.770492 0.897196 +vt 0.770492 0.850467 +vt 0.770492 0.869159 +vt 0.770492 0.822430 +vt 0.770492 0.906542 +vt 0.770492 0.859813 +vt 0.770492 0.878505 +vt 0.770492 0.831776 +vt 0.770492 0.915888 +vt 0.770492 0.887850 +vt 0.770492 0.841121 +vt 0.713115 0.915888 +vt 0.770492 0.803738 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 +vn -0.0000 1.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn -1.0000 -0.0000 0.0000 s off -f 153/399/27 154/400/27 155/401/27 -f 154/400/27 156/402/27 155/401/27 -f 157/403/28 158/404/28 159/405/28 -f 158/404/28 160/406/28 159/405/28 -f 157/403/29 159/407/29 155/401/29 -f 159/407/29 153/408/29 155/401/29 -f 160/409/30 158/404/30 154/410/30 -f 158/404/30 156/402/30 154/410/30 -f 159/411/31 160/412/31 153/413/31 -f 160/412/31 154/414/31 153/413/31 -f 155/415/32 156/416/32 157/417/32 -f 156/416/32 158/418/32 157/417/32 -f 161/419/27 162/420/27 163/421/27 -f 162/420/27 164/422/27 163/421/27 -f 165/423/28 166/424/28 167/425/28 -f 166/424/28 168/426/28 167/425/28 -f 165/423/33 167/427/33 163/421/33 -f 167/427/33 161/428/33 163/421/33 -f 168/429/34 166/424/34 162/430/34 -f 166/424/34 164/422/34 162/430/34 -f 167/431/35 168/432/35 161/433/35 -f 168/432/35 162/434/35 161/433/35 -f 163/435/36 164/436/36 165/437/36 -f 164/436/36 166/438/36 165/437/36 -f 169/439/27 170/440/27 171/441/27 -f 170/440/27 172/442/27 171/441/27 -f 173/443/28 174/444/28 175/445/28 -f 174/444/28 176/446/28 175/445/28 -f 173/443/29 175/447/29 171/441/29 -f 175/447/29 169/448/29 171/441/29 -f 176/449/30 174/444/30 170/450/30 -f 174/444/30 172/442/30 170/450/30 -f 175/451/31 176/452/31 169/453/31 -f 176/452/31 170/454/31 169/453/31 -f 171/455/32 172/456/32 173/457/32 -f 172/456/32 174/458/32 173/457/32 -f 177/459/27 178/460/27 179/461/27 -f 178/460/27 180/462/27 179/461/27 -f 181/463/28 182/464/28 183/465/28 -f 182/464/28 184/466/28 183/465/28 -f 181/463/37 183/467/37 179/461/37 -f 183/467/37 177/468/37 179/461/37 -f 184/469/38 182/464/38 178/470/38 -f 182/464/38 180/462/38 178/470/38 -f 183/471/39 184/472/39 177/473/39 -f 184/472/39 178/474/39 177/473/39 -f 179/475/40 180/476/40 181/477/40 -f 180/476/40 182/478/40 181/477/40 -f 185/479/27 186/480/27 187/481/27 -f 186/480/27 188/482/27 187/481/27 -f 189/483/28 190/484/28 191/485/28 -f 190/484/28 192/486/28 191/485/28 -f 189/483/31 191/487/31 187/481/31 -f 191/487/31 185/488/31 187/481/31 -f 192/489/32 190/484/32 186/490/32 -f 190/484/32 188/482/32 186/490/32 -f 191/491/30 192/492/30 185/493/30 -f 192/492/30 186/494/30 185/493/30 -f 187/495/29 188/496/29 189/497/29 -f 188/496/29 190/498/29 189/497/29 -f 193/499/27 194/500/27 195/501/27 -f 194/500/27 196/502/27 195/501/27 -f 197/503/28 198/504/28 199/505/28 -f 198/504/28 200/506/28 199/505/28 -f 197/503/41 199/507/41 195/501/41 -f 199/507/41 193/508/41 195/501/41 -f 200/509/42 198/504/42 194/510/42 -f 198/504/42 196/502/42 194/510/42 -f 199/511/43 200/512/43 193/513/43 -f 200/512/43 194/514/43 193/513/43 -f 195/515/44 196/516/44 197/517/44 -f 196/516/44 198/518/44 197/517/44 -f 201/519/27 202/520/27 203/521/27 -f 202/520/27 204/522/27 203/521/27 -f 205/523/28 206/524/28 207/525/28 -f 206/524/28 208/526/28 207/525/28 -f 205/523/37 207/527/37 203/521/37 -f 207/527/37 201/528/37 203/521/37 -f 208/529/38 206/524/38 202/530/38 -f 206/524/38 204/522/38 202/530/38 -f 207/531/39 208/532/39 201/533/39 -f 208/532/39 202/534/39 201/533/39 -f 203/535/40 204/536/40 205/537/40 -f 204/536/40 206/538/40 205/537/40 -f 209/539/27 210/540/27 211/541/27 -f 210/540/27 212/542/27 211/541/27 -f 213/543/28 214/544/28 215/545/28 -f 214/544/28 216/546/28 215/545/28 -f 213/543/33 215/547/33 211/541/33 -f 215/547/33 209/548/33 211/541/33 -f 216/549/34 214/544/34 210/550/34 -f 214/544/34 212/542/34 210/550/34 -f 215/551/35 216/552/35 209/553/35 -f 216/552/35 210/554/35 209/553/35 -f 211/555/36 212/556/36 213/557/36 -f 212/556/36 214/558/36 213/557/36 -f 217/559/27 218/560/27 219/561/27 -f 218/560/27 220/562/27 219/561/27 -f 221/563/28 222/564/28 223/565/28 -f 222/564/28 224/566/28 223/565/28 -f 221/563/37 223/567/37 219/561/37 -f 223/567/37 217/568/37 219/561/37 -f 224/569/38 222/564/38 218/570/38 -f 222/564/38 220/562/38 218/570/38 -f 223/571/39 224/572/39 217/573/39 -f 224/572/39 218/574/39 217/573/39 -f 219/575/40 220/576/40 221/577/40 -f 220/576/40 222/578/40 221/577/40 -f 225/579/27 226/580/27 227/581/27 -f 226/580/27 228/582/27 227/581/27 -f 229/583/28 230/584/28 231/585/28 -f 230/584/28 232/586/28 231/585/28 -f 229/583/41 231/587/41 227/581/41 -f 231/587/41 225/588/41 227/581/41 -f 232/589/42 230/584/42 226/590/42 -f 230/584/42 228/582/42 226/590/42 -f 231/591/43 232/592/43 225/593/43 -f 232/592/43 226/594/43 225/593/43 -f 227/595/44 228/596/44 229/597/44 -f 228/596/44 230/598/44 229/597/44 -f 233/599/27 234/600/27 235/601/27 -f 234/600/27 236/602/27 235/601/27 -f 237/603/28 238/604/28 239/605/28 -f 238/604/28 240/606/28 239/605/28 -f 237/603/29 239/607/29 235/601/29 -f 239/607/29 233/608/29 235/601/29 -f 240/609/30 238/604/30 234/610/30 -f 238/604/30 236/602/30 234/610/30 -f 239/611/31 240/612/31 233/613/31 -f 240/612/31 234/614/31 233/613/31 -f 235/615/32 236/616/32 237/617/32 -f 236/616/32 238/618/32 237/617/32 -f 241/619/27 242/620/27 243/621/27 -f 242/620/27 244/622/27 243/621/27 -f 245/623/28 246/624/28 247/625/28 -f 246/624/28 248/626/28 247/625/28 -f 245/623/37 247/627/37 243/621/37 -f 247/627/37 241/628/37 243/621/37 -f 248/629/38 246/624/38 242/630/38 -f 246/624/38 244/622/38 242/630/38 -f 247/631/39 248/632/39 241/633/39 -f 248/632/39 242/634/39 241/633/39 -f 243/635/40 244/636/40 245/637/40 -f 244/636/40 246/638/40 245/637/40 -f 249/639/27 250/640/27 251/641/27 -f 250/640/27 252/642/27 251/641/27 -f 253/643/28 254/644/28 255/645/28 -f 254/644/28 256/646/28 255/645/28 -f 253/643/33 255/647/33 251/641/33 -f 255/647/33 249/648/33 251/641/33 -f 256/649/34 254/644/34 250/650/34 -f 254/644/34 252/642/34 250/650/34 -f 255/651/35 256/652/35 249/653/35 -f 256/652/35 250/654/35 249/653/35 -f 251/655/36 252/656/36 253/657/36 -f 252/656/36 254/658/36 253/657/36 -f 257/659/27 258/660/27 259/661/27 -f 258/660/27 260/662/27 259/661/27 -f 261/663/28 262/664/28 263/665/28 -f 262/664/28 264/666/28 263/665/28 -f 261/663/37 263/667/37 259/661/37 -f 263/667/37 257/668/37 259/661/37 -f 264/669/38 262/664/38 258/670/38 -f 262/664/38 260/662/38 258/670/38 -f 263/671/39 264/672/39 257/673/39 -f 264/672/39 258/674/39 257/673/39 -f 259/675/40 260/676/40 261/677/40 -f 260/676/40 262/678/40 261/677/40 -f 265/679/27 266/680/27 267/681/27 -f 266/680/27 268/682/27 267/681/27 -f 269/683/28 270/684/28 271/685/28 -f 270/684/28 272/686/28 271/685/28 -f 269/683/33 271/687/33 267/681/33 -f 271/687/33 265/688/33 267/681/33 -f 272/689/34 270/684/34 266/690/34 -f 270/684/34 268/682/34 266/690/34 -f 271/691/35 272/692/35 265/693/35 -f 272/692/35 266/694/35 265/693/35 -f 267/695/36 268/696/36 269/697/36 -f 268/696/36 270/698/36 269/697/36 -f 273/699/27 274/700/27 275/701/27 -f 274/700/27 276/702/27 275/701/27 -f 277/703/28 278/704/28 279/705/28 -f 278/704/28 280/706/28 279/705/28 -f 277/703/29 279/707/29 275/701/29 -f 279/707/29 273/708/29 275/701/29 -f 280/709/30 278/704/30 274/710/30 -f 278/704/30 276/702/30 274/710/30 -f 279/711/31 280/712/31 273/713/31 -f 280/712/31 274/714/31 273/713/31 -f 275/715/32 276/716/32 277/717/32 -f 276/716/32 278/718/32 277/717/32 -f 281/719/27 282/720/27 283/721/27 -f 282/720/27 284/722/27 283/721/27 -f 285/723/28 286/724/28 287/725/28 -f 286/724/28 288/726/28 287/725/28 -f 285/723/37 287/727/37 283/721/37 -f 287/727/37 281/728/37 283/721/37 -f 288/729/38 286/724/38 282/730/38 -f 286/724/38 284/722/38 282/730/38 -f 287/731/39 288/732/39 281/733/39 -f 288/732/39 282/734/39 281/733/39 -f 283/735/40 284/736/40 285/737/40 -f 284/736/40 286/738/40 285/737/40 -f 289/739/27 290/740/27 291/741/27 -f 290/740/27 292/742/27 291/741/27 -f 293/743/28 294/744/28 295/745/28 -f 294/744/28 296/746/28 295/745/28 -f 293/743/37 295/747/37 291/741/37 -f 295/747/37 289/748/37 291/741/37 -f 296/749/38 294/744/38 290/750/38 -f 294/744/38 292/742/38 290/750/38 -f 295/751/39 296/752/39 289/753/39 -f 296/752/39 290/754/39 289/753/39 -f 291/755/40 292/756/40 293/757/40 -f 292/756/40 294/758/40 293/757/40 -f 297/759/27 298/760/27 299/761/27 -f 298/760/27 300/762/27 299/761/27 -f 301/763/28 302/764/28 303/765/28 -f 302/764/28 304/766/28 303/765/28 -f 301/763/31 303/767/31 299/761/31 -f 303/767/31 297/768/31 299/761/31 -f 304/769/32 302/764/32 298/770/32 -f 302/764/32 300/762/32 298/770/32 -f 303/771/30 304/772/30 297/773/30 -f 304/772/30 298/774/30 297/773/30 -f 299/775/29 300/776/29 301/777/29 -f 300/776/29 302/778/29 301/777/29 -f 305/779/27 306/780/27 307/781/27 -f 306/780/27 308/782/27 307/781/27 -f 309/783/28 310/784/28 311/785/28 -f 310/784/28 312/786/28 311/785/28 -f 309/783/37 311/787/37 307/781/37 -f 311/787/37 305/788/37 307/781/37 -f 312/789/38 310/784/38 306/790/38 -f 310/784/38 308/782/38 306/790/38 -f 311/791/39 312/792/39 305/793/39 -f 312/792/39 306/794/39 305/793/39 -f 307/795/40 308/796/40 309/797/40 -f 308/796/40 310/798/40 309/797/40 +f 109/182/47 111/183/47 103/184/47 +f 93/185/47 116/186/47 117/187/47 +f 99/188/47 124/189/47 100/190/47 +f 96/191/47 121/192/47 97/193/47 +f 93/185/47 118/194/47 94/195/47 +f 101/196/47 124/189/47 125/197/47 +f 98/198/47 121/199/47 122/200/47 +f 95/201/47 118/194/47 119/202/47 +f 101/196/47 126/203/47 102/204/47 +f 91/205/47 116/186/47 92/206/47 +f 98/198/47 123/207/47 99/188/47 +f 96/191/47 119/202/47 120/208/47 +f 91/205/47 126/203/47 115/209/47 +f 137/210/48 133/211/48 129/212/48 +f 103/184/47 104/213/47 107/214/47 +f 104/213/47 105/215/47 107/214/47 +f 105/215/47 106/216/47 107/214/47 +f 107/214/47 108/217/47 109/182/47 +f 109/182/47 110/218/47 111/183/47 +f 111/183/47 112/219/47 113/220/47 +f 113/220/47 114/221/47 111/183/47 +f 114/221/47 103/184/47 111/183/47 +f 107/214/47 109/182/47 103/184/47 +f 93/185/47 92/206/47 116/186/47 +f 99/188/47 123/207/47 124/189/47 +f 96/191/47 120/208/47 121/192/47 +f 93/185/47 117/187/47 118/194/47 +f 101/196/47 100/190/47 124/189/47 +f 98/198/47 97/222/47 121/199/47 +f 95/201/47 94/195/47 118/194/47 +f 101/196/47 125/197/47 126/203/47 +f 91/205/47 115/209/47 116/186/47 +f 98/198/47 122/200/47 123/207/47 +f 96/191/47 95/201/47 119/202/47 +f 91/205/47 102/204/47 126/203/47 +f 129/212/48 128/223/48 127/224/48 +f 127/224/48 138/225/48 129/212/48 +f 138/225/48 137/210/48 129/212/48 +f 137/210/48 136/226/48 133/211/48 +f 136/226/48 135/227/48 133/211/48 +f 135/227/48 134/228/48 133/211/48 +f 133/211/48 132/229/48 131/230/48 +f 131/230/48 130/231/48 133/211/48 +f 130/231/48 129/212/48 133/211/48 +s 1 +f 91/205/49 114/232/50 102/204/50 +f 96/191/51 107/233/52 95/201/52 +f 97/193/53 108/234/51 96/191/51 +f 98/198/54 109/235/53 97/222/53 +f 99/188/55 110/236/54 98/198/54 +f 92/206/56 103/237/49 91/205/49 +f 100/190/57 111/238/55 99/188/55 +f 93/185/58 104/239/56 92/206/56 +f 101/196/59 112/240/57 100/190/57 +f 94/195/60 105/241/58 93/185/58 +f 102/204/50 113/242/59 101/196/59 +f 95/201/52 106/243/60 94/195/60 +f 121/199/53 134/244/54 122/200/54 +f 118/194/60 131/245/52 119/202/52 +f 125/197/59 138/246/50 126/203/50 +f 115/209/49 128/247/56 116/186/56 +f 122/200/54 135/248/55 123/207/55 +f 119/202/52 132/249/51 120/208/51 +f 126/203/50 127/250/49 115/209/49 +f 116/186/56 129/251/58 117/187/58 +f 123/207/55 136/252/57 124/189/57 +f 120/208/51 133/253/53 121/192/53 +f 117/187/58 130/254/60 118/194/60 +f 124/189/57 137/255/59 125/197/59 +f 91/205/49 103/237/49 114/232/50 +f 96/191/51 108/234/51 107/233/52 +f 97/193/53 109/256/53 108/234/51 +f 98/198/54 110/236/54 109/235/53 +f 99/188/55 111/238/55 110/236/54 +f 92/206/56 104/239/56 103/237/49 +f 100/190/57 112/240/57 111/238/55 +f 93/185/58 105/241/58 104/239/56 +f 101/196/59 113/242/59 112/240/57 +f 94/195/60 106/243/60 105/241/58 +f 102/204/50 114/232/50 113/242/59 +f 95/201/52 107/233/52 106/243/60 +f 121/199/53 133/257/53 134/244/54 +f 118/194/60 130/254/60 131/245/52 +f 125/197/59 137/255/59 138/246/50 +f 115/209/49 127/250/49 128/247/56 +f 122/200/54 134/244/54 135/248/55 +f 119/202/52 131/245/52 132/249/51 +f 126/203/50 138/246/50 127/250/49 +f 116/186/56 128/247/56 129/251/58 +f 123/207/55 135/248/55 136/252/57 +f 120/208/51 132/249/51 133/253/53 +f 117/187/58 129/251/58 130/254/60 +f 124/189/57 136/252/57 137/255/59 +o Barrel +v 0.000000 1.187500 8.000000 +v -0.093750 1.162380 8.000000 +v -0.162380 1.093750 8.000000 +v -0.187500 1.000000 8.000000 +v -0.162380 0.906250 8.000000 +v -0.093750 0.837620 8.000000 +v 0.000000 0.812500 8.000000 +v 0.093750 0.837620 8.000000 +v 0.162380 0.906250 8.000000 +v 0.187500 1.000000 8.000000 +v 0.162380 1.093750 8.000000 +v 0.093750 1.162380 8.000000 +v 0.000000 1.187500 3.750000 +v -0.093750 1.162380 3.750000 +v -0.162380 1.093750 3.750000 +v -0.187500 1.000000 3.750000 +v -0.162380 0.906250 3.750000 +v -0.093750 0.837620 3.750000 +v 0.000000 0.812500 3.750000 +v 0.093750 0.837620 3.750000 +v 0.162380 0.906250 3.750000 +v 0.187500 1.000000 3.750000 +v 0.162380 1.093750 3.750000 +v 0.093750 1.162380 3.750000 +v 0.000000 1.125000 8.000000 +v -0.062500 1.108253 8.000000 +v -0.108253 1.062500 8.000000 +v -0.125000 1.000000 8.000000 +v -0.108253 0.937500 8.000000 +v -0.062500 0.891747 8.000000 +v 0.000000 0.875000 8.000000 +v 0.062500 0.891747 8.000000 +v 0.108253 0.937500 8.000000 +v 0.125000 1.000000 8.000000 +v 0.108253 1.062500 8.000000 +v 0.062500 1.108253 8.000000 +v 0.000000 1.125000 7.000000 +v -0.062500 1.108253 7.000000 +v -0.108253 1.062500 7.000000 +v -0.125000 1.000000 7.000000 +v -0.108253 0.937500 7.000000 +v -0.062500 0.891747 7.000000 +v 0.000000 0.875000 7.000000 +v 0.062500 0.891747 7.000000 +v 0.108253 0.937500 7.000000 +v 0.125000 1.000000 7.000000 +v 0.108253 1.062500 7.000000 +v 0.062500 1.108253 7.000000 +vt 0.004098 0.224299 +vt 0.000000 0.205607 +vt 0.004098 0.205607 +vt 0.004098 -0.000000 +vt 0.000000 0.009346 +vt 0.000000 -0.000000 +vt 0.004098 0.037383 +vt 0.000000 0.018692 +vt 0.004098 0.018692 +vt 0.004098 0.056075 +vt 0.000000 0.037383 +vt 0.000000 0.065421 +vt 0.000000 0.056075 +vt 0.004098 0.093458 +vt 0.000000 0.074766 +vt 0.004098 0.074766 +vt 0.000000 0.102804 +vt 0.000000 0.093458 +vt 0.004098 0.130841 +vt 0.000000 0.112150 +vt 0.004098 0.112150 +vt 0.000000 0.140187 +vt 0.000000 0.130841 +vt 0.004098 0.168224 +vt 0.000000 0.149533 +vt 0.004098 0.149533 +vt 0.000000 0.177570 +vt 0.000000 0.168224 +vt 0.004098 0.186916 +vt 0.000000 0.196262 +vt 0.000000 0.186916 +vt 0.073770 0.224346 +vt 0.080851 0.233668 +vt 0.073770 0.261635 +vt 0.000000 0.214953 +vt 0.000000 0.028037 +vt 0.000000 0.046729 +vt 0.000000 0.084112 +vt 0.000000 0.121495 +vt 0.000000 0.158879 +vt 0.069682 0.259137 +vt 0.066690 0.233668 +vt 0.066690 0.252313 +vt 0.065594 0.242991 +vt 0.069682 0.226844 +vt 0.077859 0.226844 +vt 0.081947 0.242991 +vt 0.080851 0.252313 +vt 0.077858 0.259137 +vt 0.282787 0.149533 +vt 0.282787 0.130841 +vt 0.282787 0.018692 +vt 0.282787 0.074766 +vt 0.282787 0.205607 +vt 0.282787 0.093458 +vt 0.282787 0.112150 +vt 0.282787 0.168224 +vt 0.282787 -0.000000 +vt 0.282787 0.056075 +vt 0.282787 0.037383 +vt 0.282787 0.186916 +vt -0.000000 0.252336 +vt 0.065574 0.261682 +vt -0.000000 0.261682 +vt -0.000000 0.299065 +vt 0.065574 0.308411 +vt -0.000000 0.308411 +vt -0.000000 0.327103 +vt 0.065574 0.336449 +vt -0.000000 0.336449 +vt -0.000000 0.242991 +vt 0.065574 0.252336 +vt -0.000000 0.289720 +vt 0.065574 0.299065 +vt -0.000000 0.271028 +vt 0.065574 0.280374 +vt -0.000000 0.280374 +vt -0.000000 0.317757 +vt 0.065574 0.327103 +vt -0.000000 0.233645 +vt 0.065574 0.242991 +vt 0.065574 0.289720 +vt 0.065574 0.271028 +vt 0.065574 0.317757 +vt -0.000000 0.224299 +vt 0.065574 0.233645 +vt 0.282787 0.224299 +vt 0.065574 0.224299 +vn 0.0000 0.0000 1.0000 +vn -0.8660 0.5000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +s off +f 145/258/61 168/259/61 144/260/61 +f 145/261/61 170/262/61 169/263/61 +f 147/264/61 170/265/61 146/266/61 +f 148/267/61 171/268/61 147/264/61 +f 148/267/61 173/269/61 172/270/61 +f 150/271/61 173/272/61 149/273/61 +f 150/271/61 163/274/61 174/275/61 +f 140/276/61 163/277/61 139/278/61 +f 140/276/61 165/279/61 164/280/61 +f 142/281/61 165/282/61 141/283/61 +f 142/281/61 167/284/61 166/285/61 +f 143/286/61 168/287/61 167/288/61 +f 181/289/61 183/290/61 175/291/61 +f 145/258/61 169/292/61 168/259/61 +f 145/261/61 146/266/61 170/262/61 +f 147/264/61 171/293/61 170/265/61 +f 148/267/61 172/294/61 171/268/61 +f 148/267/61 149/273/61 173/269/61 +f 150/271/61 174/295/61 173/272/61 +f 150/271/61 139/278/61 163/274/61 +f 140/276/61 164/296/61 163/277/61 +f 140/276/61 141/283/61 165/279/61 +f 142/281/61 166/297/61 165/282/61 +f 142/281/61 143/286/61 167/284/61 +f 143/286/61 144/260/61 168/287/61 +f 175/291/61 176/298/61 179/299/61 +f 176/298/61 177/300/61 179/299/61 +f 177/300/61 178/301/61 179/299/61 +f 179/299/61 180/302/61 181/289/61 +f 181/289/61 182/303/61 183/290/61 +f 183/290/61 184/304/61 185/305/61 +f 185/305/61 186/306/61 183/290/61 +f 186/306/61 175/291/61 183/290/61 +f 179/299/61 181/289/61 175/291/61 +s 1 +f 153/307/62 142/281/63 141/283/62 +f 152/308/64 141/283/62 140/276/64 +f 158/309/65 147/264/66 146/266/65 +f 161/310/67 150/271/68 149/273/67 +f 156/311/69 145/258/70 144/260/69 +f 162/312/68 139/278/71 150/271/68 +f 151/313/71 140/276/64 139/278/71 +f 154/314/63 143/286/72 142/281/63 +f 157/315/70 146/266/65 145/261/70 +f 160/316/73 149/273/67 148/267/73 +f 159/317/66 148/267/73 147/264/66 +f 155/318/72 144/260/69 143/286/72 +f 166/319/73 177/320/66 165/321/66 +f 173/322/72 184/323/63 172/324/63 +f 170/325/64 181/326/71 169/327/71 +f 167/328/67 178/329/73 166/319/73 +f 174/330/69 185/331/72 173/322/72 +f 164/332/65 175/333/70 163/334/70 +f 171/335/62 182/336/64 170/325/64 +f 168/337/68 179/338/67 167/328/67 +f 163/334/70 186/339/69 174/330/69 +f 165/321/66 176/340/65 164/332/65 +f 172/324/63 183/341/62 171/335/62 +f 169/342/71 180/343/68 168/337/68 +f 153/307/62 154/314/63 142/281/63 +f 152/308/64 153/307/62 141/283/62 +f 158/309/65 159/317/66 147/264/66 +f 161/310/67 162/312/68 150/271/68 +f 156/311/69 157/344/70 145/258/70 +f 162/312/68 151/313/71 139/278/71 +f 151/313/71 152/308/64 140/276/64 +f 154/314/63 155/318/72 143/286/72 +f 157/315/70 158/309/65 146/266/65 +f 160/316/73 161/310/67 149/273/67 +f 159/317/66 160/316/73 148/267/73 +f 155/318/72 156/311/69 144/260/69 +f 166/319/73 178/329/73 177/320/66 +f 173/322/72 185/331/72 184/323/63 +f 170/325/64 182/336/64 181/326/71 +f 167/328/67 179/338/67 178/329/73 +f 174/330/69 186/339/69 185/331/72 +f 164/332/65 176/340/65 175/333/70 +f 171/335/62 183/341/62 182/336/64 +f 168/337/68 180/343/68 179/338/67 +f 163/334/70 175/333/70 186/339/69 +f 165/321/66 177/320/66 176/340/65 +f 172/324/63 184/323/63 183/341/62 +f 169/342/71 181/345/71 180/343/68 o Gun -v 0.032464 0.062345 0.555958 -v 0.032464 -0.000155 0.555958 -v 0.032464 0.062345 0.446583 -v 0.032464 -0.000155 0.446583 -v -0.042536 0.062345 0.446583 -v -0.042536 -0.000155 0.446583 -v -0.042536 0.062345 0.555958 -v -0.042536 -0.000155 0.555958 -v 0.032464 0.060031 0.568015 -v 0.032464 0.016725 0.550077 -v 0.032464 0.101887 0.466966 -v 0.032464 0.058581 0.449028 -v -0.042536 0.101887 0.466966 -v -0.042536 0.058581 0.449028 -v -0.042536 0.060031 0.568015 -v -0.042536 0.016725 0.550077 -v 0.032464 0.153125 0.468417 -v 0.032464 0.080947 0.498314 -v 0.032464 0.117248 0.381803 -v 0.032464 0.045070 0.411700 -v -0.042536 0.117248 0.381803 -v -0.042536 0.045070 0.411700 -v -0.042536 0.153125 0.468417 -v -0.042536 0.080947 0.498314 -v 0.032464 0.153125 0.468416 -v 0.032464 0.121875 0.468416 -v 0.032464 0.153125 0.359041 -v 0.032464 0.121875 0.359041 -v -0.042536 0.153125 0.359041 -v -0.042536 0.121875 0.359041 -v -0.042536 0.153125 0.468416 -v -0.042536 0.121875 0.468416 -v 0.032464 0.153125 0.171541 -v 0.032464 0.121875 0.171541 -v 0.032464 0.153125 0.124666 -v 0.032464 0.121875 0.124666 -v -0.042536 0.153125 0.124666 -v -0.042536 0.121875 0.124666 -v -0.042536 0.153125 0.171541 -v -0.042536 0.121875 0.171541 -v -0.015852 0.152219 0.468416 -v -0.019440 0.143558 0.468416 -v -0.015852 0.152219 0.124666 -v -0.019440 0.143558 0.124666 -v -0.038949 0.161786 0.124666 -v -0.042537 0.153125 0.124666 -v -0.038949 0.161786 0.468416 -v -0.042537 0.153125 0.468416 -v -0.014642 0.150738 0.468416 -v -0.021271 0.144109 0.468416 -v -0.014642 0.150738 0.124666 -v -0.021271 0.144109 0.124666 -v -0.032320 0.168416 0.124666 -v -0.038949 0.161786 0.124666 -v -0.032320 0.168416 0.468416 -v -0.038949 0.161786 0.468416 -v -0.023658 0.172003 0.468416 -v -0.014091 0.148906 0.468416 -v -0.023658 0.172003 0.124666 -v -0.014091 0.148906 0.124666 -v -0.032320 0.168415 0.124666 -v -0.022753 0.145318 0.124666 -v -0.032320 0.168415 0.468416 -v -0.022753 0.145318 0.468416 -v 0.001342 0.172003 0.468416 -v 0.001342 0.147003 0.468416 -v 0.001342 0.172003 0.124666 -v 0.001342 0.147003 0.124666 -v -0.023658 0.172003 0.124666 -v -0.023658 0.147003 0.124666 -v -0.023658 0.172003 0.468416 -v -0.023658 0.147003 0.468416 -v 0.013586 0.172003 0.468416 -v 0.013586 0.147003 0.468416 -v 0.013586 0.172003 0.124666 -v 0.013586 0.147003 0.124666 -v -0.011414 0.172003 0.124666 -v -0.011414 0.147003 0.124666 -v -0.011414 0.172003 0.468416 -v -0.011414 0.147003 0.468416 -v 0.028876 0.161786 0.468416 -v 0.032463 0.153125 0.468416 -v 0.028876 0.161786 0.124666 -v 0.032463 0.153125 0.124666 -v 0.005779 0.152219 0.124666 -v 0.009366 0.143558 0.124666 -v 0.005779 0.152219 0.468416 -v 0.009366 0.143558 0.468416 -v 0.022247 0.168416 0.468416 -v 0.028876 0.161786 0.468416 -v 0.022247 0.168416 0.124666 -v 0.028876 0.161786 0.124666 -v 0.004569 0.150738 0.124666 -v 0.011198 0.144109 0.124666 -v 0.004569 0.150738 0.468416 -v 0.011198 0.144109 0.468416 -v 0.022247 0.168415 0.468416 -v 0.012680 0.145318 0.468416 -v 0.022247 0.168415 0.124666 -v 0.012680 0.145318 0.124666 -v 0.013585 0.172003 0.124666 -v 0.004018 0.148906 0.124666 -v 0.013585 0.172003 0.468416 -v 0.004018 0.148906 0.468416 -v 0.032464 0.121211 0.171541 -v 0.032464 0.011836 0.171541 -v 0.032464 0.121211 0.124666 -v 0.032464 0.011836 0.124666 -v -0.042536 0.121211 0.124666 -v -0.042536 0.011836 0.124666 -v -0.042536 0.121211 0.171541 -v -0.042536 0.011836 0.171541 -v 0.001214 0.136836 0.359041 -v 0.001214 0.105586 0.359041 -v 0.001214 0.136836 0.171541 -v 0.001214 0.105586 0.171541 -v -0.042536 0.136836 0.171541 -v -0.042536 0.105586 0.171541 -v -0.042536 0.136836 0.359041 -v -0.042536 0.105586 0.359041 -v 0.032464 0.136836 0.437166 -v 0.032464 0.089961 0.437166 -v 0.032464 0.136836 0.359041 -v 0.032464 0.089961 0.359041 -v -0.042536 0.136836 0.359041 -v -0.042536 0.089961 0.359041 -v -0.042536 0.136836 0.437166 -v -0.042536 0.089961 0.437166 -v 0.032464 0.105586 0.390291 -v 0.032464 0.011836 0.390291 -v 0.032464 0.105586 0.171541 -v 0.032464 0.011836 0.171541 -v -0.042536 0.105586 0.171541 -v -0.042536 0.011836 0.171541 -v -0.042536 0.105586 0.390291 -v -0.042536 0.011836 0.390291 -v 0.032444 0.030200 0.550109 -v 0.032444 -0.041978 0.520212 -v 0.032444 0.101953 0.376882 -v 0.032444 0.029775 0.346985 -v -0.042556 0.101953 0.376882 -v -0.042556 0.029775 0.346985 -v -0.042556 0.030200 0.550109 -v -0.042556 -0.041978 0.520212 -v 0.032464 -0.000155 0.555958 -v 0.032464 -0.033301 0.522812 -v 0.032464 0.021942 0.533861 -v 0.032464 -0.011204 0.500715 -v -0.042536 0.021942 0.533861 -v -0.042536 -0.011204 0.500715 -v -0.042536 -0.000155 0.555958 -v -0.042536 -0.033301 0.522812 -v 0.000124 0.168316 0.364050 -v 0.000124 0.106638 0.364050 -v 0.000124 0.168316 -1.179536 -v 0.000124 0.106638 -1.179536 -v -0.012211 0.168316 -1.179536 -v -0.012211 0.106638 -1.179536 -v -0.012211 0.168316 0.364050 -v -0.012211 0.106638 0.364050 -v 0.011521 0.163595 0.364050 -v -0.012082 0.106613 0.364050 -v 0.011521 0.163595 -1.179536 -v -0.012082 0.106613 -1.179536 -v 0.000124 0.168315 -1.179536 -v -0.023479 0.111333 -1.179536 -v 0.000124 0.168315 0.364050 -v -0.023479 0.111333 0.364050 -v 0.020243 0.155210 0.364050 -v -0.023370 0.111597 0.364050 -v 0.020243 0.155210 -1.179536 -v -0.023370 0.111597 -1.179536 -v 0.011521 0.163932 -1.179536 -v -0.032092 0.120319 -1.179536 -v 0.011521 0.163932 0.364050 -v -0.032092 0.120319 0.364050 -v 0.020243 0.155210 0.364050 -v 0.024963 0.143813 0.364050 -v 0.020243 0.155210 -1.179536 -v 0.024963 0.143813 -1.179536 -v -0.036739 0.131607 -1.179536 -v -0.032019 0.120210 -1.179536 -v -0.036739 0.131607 0.364050 -v -0.032019 0.120210 0.364050 -v 0.024964 0.143813 0.364050 -v 0.024964 0.131477 0.364050 -v 0.024964 0.143813 -1.179536 -v 0.024964 0.131478 -1.179536 -v -0.036714 0.143813 -1.179536 -v -0.036714 0.131478 -1.179536 -v -0.036714 0.143813 0.364050 -v -0.036714 0.131477 0.364050 -v 0.024964 0.131478 0.364050 -v 0.020243 0.120081 0.364050 -v 0.024964 0.131478 -1.179536 -v 0.020243 0.120081 -1.179536 -v -0.032019 0.155081 -1.179536 -v -0.036739 0.143684 -1.179536 -v -0.032019 0.155081 0.364050 -v -0.036739 0.143684 0.364050 -v 0.020243 0.120081 0.364050 -v 0.011520 0.111359 0.364050 -v 0.020243 0.120082 -1.179536 -v 0.011520 0.111359 -1.179536 -v -0.023370 0.163694 -1.179536 -v -0.032092 0.154971 -1.179536 -v -0.023370 0.163694 0.364050 -v -0.032092 0.154971 0.364050 -v -0.012082 0.168341 0.364050 -v 0.011520 0.111359 0.364050 -v -0.012082 0.168341 -1.179536 -v 0.011520 0.111359 -1.179536 -v -0.023479 0.163621 -1.179536 -v 0.000124 0.106639 -1.179536 -v -0.023479 0.163620 0.364050 -v 0.000124 0.106638 0.364050 -v -0.012082 0.090216 0.285925 -v 0.011520 0.033234 0.285925 -v -0.012082 0.090216 -1.023286 -v 0.011520 0.033234 -1.023286 -v -0.023479 0.085496 -1.023286 -v 0.000124 0.028513 -1.023286 -v -0.023479 0.085495 0.285925 -v 0.000124 0.028513 0.285925 -v 0.020243 0.041956 0.285925 -v 0.011520 0.033234 0.285925 -v 0.020243 0.041957 -1.023286 -v 0.011520 0.033234 -1.023286 -v -0.023370 0.085569 -1.023286 -v -0.032092 0.076846 -1.023286 -v -0.023370 0.085569 0.285925 -v -0.032092 0.076846 0.285925 -v 0.024964 0.053353 0.285925 -v 0.020243 0.041956 0.285925 -v 0.024964 0.053353 -1.023286 -v 0.020243 0.041956 -1.023286 -v -0.032019 0.076956 -1.023286 -v -0.036739 0.065559 -1.023286 -v -0.032019 0.076956 0.285925 -v -0.036739 0.065559 0.285925 -v 0.024964 0.065688 0.285925 -v 0.024964 0.053352 0.285925 -v 0.024964 0.065688 -1.023286 -v 0.024964 0.053353 -1.023286 -v -0.036714 0.065688 -1.023286 -v -0.036714 0.053353 -1.023286 -v -0.036714 0.065688 0.285925 -v -0.036714 0.053352 0.285925 -v 0.020243 0.077085 0.285925 -v 0.024963 0.065688 0.285925 -v 0.020243 0.077085 -1.023286 -v 0.024963 0.065688 -1.023286 -v -0.036739 0.053482 -1.023286 -v -0.032019 0.042085 -1.023286 -v -0.036739 0.053482 0.285925 -v -0.032019 0.042085 0.285925 -v 0.020243 0.077085 0.285925 -v -0.023370 0.033472 0.285925 -v 0.020243 0.077085 -1.023286 -v -0.023370 0.033472 -1.023286 -v 0.011521 0.085807 -1.023286 -v -0.032092 0.042194 -1.023286 -v 0.011521 0.085807 0.285925 -v -0.032092 0.042194 0.285925 -v 0.011521 0.085470 0.285925 -v -0.012082 0.028488 0.285925 -v 0.011521 0.085470 -1.023286 -v -0.012082 0.028488 -1.023286 -v 0.000124 0.090190 -1.023286 -v -0.023479 0.033208 -1.023286 -v 0.000124 0.090190 0.285925 -v -0.023479 0.033208 0.285925 -v 0.000124 0.090191 0.285925 -v 0.000124 0.028513 0.285925 -v 0.000124 0.090191 -1.023286 -v 0.000124 0.028513 -1.023286 -v -0.012211 0.090191 -1.023286 -v -0.012211 0.028513 -1.023286 -v -0.012211 0.090191 0.285925 -v -0.012211 0.028513 0.285925 -v -0.012212 0.102587 -0.867036 -v 0.016112 0.034209 -0.867036 -v -0.012212 0.102587 -0.938088 -v 0.016112 0.034209 -0.938088 -v -0.025887 0.096923 -0.938088 -v 0.002436 0.028544 -0.938088 -v -0.025887 0.096923 -0.867036 -v 0.002436 0.028544 -0.867036 -v 0.026579 0.044675 -0.867036 -v 0.016112 0.034208 -0.867036 -v 0.026579 0.044675 -0.938088 -v 0.016112 0.034208 -0.938088 -v -0.025756 0.097010 -0.938088 -v -0.036223 0.086543 -0.938088 -v -0.025756 0.097010 -0.867036 -v -0.036223 0.086543 -0.867036 -v 0.016112 0.096892 -0.867036 -v -0.012211 0.028513 -0.867036 -v 0.016112 0.096892 -0.938088 -v -0.012211 0.028513 -0.938088 -v 0.002436 0.102556 -0.938088 -v -0.025887 0.034178 -0.938088 -v 0.002436 0.102556 -0.867036 -v -0.025887 0.034178 -0.867036 -v 0.026579 0.086830 -0.867036 -v -0.025756 0.034495 -0.867036 -v 0.026579 0.086830 -0.938088 -v -0.025756 0.034495 -0.938088 -v 0.016112 0.097297 -0.938088 -v -0.036223 0.044962 -0.938088 -v 0.016112 0.097297 -0.867036 -v -0.036223 0.044962 -0.867036 -v 0.026579 0.086830 -0.867036 -v 0.032243 0.073154 -0.867036 -v 0.026579 0.086830 -0.938088 -v 0.032243 0.073154 -0.938088 -v -0.041800 0.058507 -0.938088 -v -0.036135 0.044831 -0.938088 -v -0.041800 0.058507 -0.867036 -v -0.036135 0.044831 -0.867036 -v 0.032244 0.073154 -0.867036 -v 0.032244 0.058351 -0.867036 -v 0.032244 0.073154 -0.938088 -v 0.032244 0.058351 -0.938088 -v -0.041769 0.073154 -0.938088 -v -0.041769 0.058351 -0.938088 -v -0.041769 0.073154 -0.867036 -v -0.041769 0.058351 -0.867036 -v 0.032244 0.058351 -0.867036 -v 0.026579 0.044675 -0.867036 -v 0.032244 0.058351 -0.938088 -v 0.026579 0.044675 -0.938088 -v -0.036135 0.086674 -0.938088 -v -0.041800 0.072999 -0.938088 -v -0.036135 0.086674 -0.867036 -v -0.041800 0.072999 -0.867036 -v 0.002436 0.133807 -0.867036 -v 0.002436 0.028544 -0.867036 -v 0.002436 0.133807 -0.938088 -v 0.002436 0.028544 -0.938088 -v -0.012366 0.133807 -0.938088 -v -0.012366 0.028544 -0.938088 -v -0.012366 0.133807 -0.867036 -v -0.012366 0.028544 -0.867036 -v 0.004339 -0.006552 0.435101 -v 0.004339 -0.049859 0.417163 -v 0.004339 -0.002964 0.426440 -v 0.004339 -0.046271 0.408502 -v -0.008161 -0.002964 0.426440 -v -0.008161 -0.046271 0.408502 -v -0.008161 -0.006552 0.435101 -v -0.008161 -0.049859 0.417163 -v 0.004339 -0.049859 0.417163 -v 0.004339 -0.069746 0.397276 -v 0.004339 -0.043230 0.410534 -v 0.004339 -0.063117 0.390646 -v -0.008161 -0.043230 0.410534 -v -0.008161 -0.063117 0.390646 -v -0.008161 -0.049859 0.417163 -v -0.008161 -0.069746 0.397276 -v 0.000124 0.174566 0.145300 -v 0.000124 0.168316 0.145300 -v 0.000124 0.174566 0.054839 -v 0.000124 0.168316 0.054839 -v -0.012211 0.174566 0.054839 -v -0.012211 0.168316 0.054839 -v -0.012211 0.174566 0.145300 -v -0.012211 0.168316 0.145300 -v 0.000124 0.174566 -1.104700 -v 0.000124 0.168316 -1.104700 -v 0.000124 0.174566 -1.163911 -v 0.000124 0.168316 -1.163911 -v -0.012211 0.174566 -1.163911 -v -0.012211 0.168316 -1.163911 -v -0.012211 0.174566 -1.104700 -v -0.012211 0.168316 -1.104700 -v 0.000124 0.173511 -1.111308 -v 0.000124 0.153301 -1.119679 -v 0.000124 0.190190 -1.151576 -v 0.000124 0.169980 -1.159947 -v -0.012211 0.190190 -1.151576 -v -0.012211 0.169980 -1.159947 -v -0.012211 0.173511 -1.111308 -v -0.012211 0.153301 -1.119679 -v -0.009820 0.174090 0.082800 -v -0.012211 0.168316 0.082800 -v -0.009820 0.174090 0.054839 -v -0.012211 0.168316 0.054839 -v -0.021216 0.178810 0.054839 -v -0.023607 0.173036 0.054839 -v -0.021216 0.178810 0.082800 -v -0.023607 0.173036 0.082800 -v -0.022554 0.186824 0.082800 -v -0.017834 0.175428 0.082800 -v -0.022554 0.186824 0.054839 -v -0.017834 0.175428 0.054839 -v -0.028329 0.184432 0.054839 -v -0.023608 0.173036 0.054839 -v -0.028329 0.184432 0.082800 -v -0.023608 0.173036 0.082800 -v 0.009129 0.178810 0.082800 -v 0.011520 0.173036 0.082800 -v 0.009129 0.178810 0.054839 -v 0.011520 0.173036 0.054839 -v -0.002268 0.174089 0.054839 -v 0.000124 0.168315 0.054839 -v -0.002268 0.174089 0.082800 -v 0.000124 0.168315 0.082800 -v 0.016241 0.184432 0.082800 -v 0.011521 0.173036 0.082800 -v 0.016241 0.184432 0.054839 -v 0.011521 0.173036 0.054839 -v 0.010467 0.186824 0.054839 -v 0.005747 0.175428 0.054839 -v 0.010467 0.186824 0.082800 -v 0.005747 0.175428 0.082800 -v 0.000124 0.193316 -1.151575 -v 0.000124 0.168316 -1.151575 -v 0.000124 0.193316 -1.163911 -v 0.000124 0.168316 -1.163911 -v -0.012211 0.193316 -1.163911 -v -0.012211 0.168316 -1.163911 -v -0.012211 0.193316 -1.151575 -v -0.012211 0.168316 -1.151575 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.812500 -vt 0.187500 0.937500 -vt 0.187500 0.812500 -vt 0.187500 0.937500 -vt 0.187500 0.812500 -vt 0.000000 0.937500 -vt 0.000000 0.812500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.921875 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.000000 0.937500 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vt 0.015625 0.937500 -vt 0.015625 0.921875 -vt 0.000000 0.937500 -vt 0.000000 0.921875 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 +v 0.000000 1.187500 -2.000000 +v -0.093750 1.162380 -2.000000 +v -0.162380 1.093750 -2.000000 +v -0.187500 1.000000 -2.000000 +v -0.162380 0.906250 -2.000000 +v -0.093750 0.837620 -2.000000 +v 0.000000 0.812500 -2.000000 +v 0.093750 0.837620 -2.000000 +v 0.162380 0.906250 -2.000000 +v 0.187500 1.000000 -2.000000 +v 0.162380 1.093750 -2.000000 +v 0.093750 1.162380 -2.000000 +v 0.000000 1.187500 3.750000 +v -0.093750 1.162380 3.750000 +v -0.162380 1.093750 3.750000 +v -0.187500 1.000000 3.750000 +v -0.162380 0.906250 3.750000 +v -0.093750 0.837620 3.750000 +v 0.000000 0.812500 3.750000 +v 0.093750 0.837620 3.750000 +v 0.162380 0.906250 3.750000 +v 0.187500 1.000000 3.750000 +v 0.162380 1.093750 3.750000 +v 0.093750 1.162380 3.750000 +v 0.000000 1.125000 3.750000 +v -0.062500 1.108253 3.750000 +v -0.108253 1.062500 3.750000 +v -0.125000 1.000000 3.750000 +v -0.108253 0.937500 3.750000 +v -0.062500 0.891747 3.750000 +v 0.000000 0.875000 3.750000 +v 0.062500 0.891747 3.750000 +v 0.108253 0.937500 3.750000 +v 0.125000 1.000000 3.750000 +v 0.108253 1.062500 3.750000 +v 0.062500 1.108253 3.750000 +v 0.000000 1.125000 2.750000 +v -0.062500 1.108253 2.750000 +v -0.108253 1.062500 2.750000 +v -0.125000 1.000000 2.750000 +v -0.108253 0.937500 2.750000 +v -0.062500 0.891747 2.750000 +v 0.000000 0.875000 2.750000 +v 0.062500 0.891747 2.750000 +v 0.108253 0.937500 2.750000 +v 0.125000 1.000000 2.750000 +v 0.108253 1.062500 2.750000 +v 0.062500 1.108253 2.750000 +v 0.000000 1.187500 3.000000 +v -0.093750 1.162380 3.000000 +v -0.162380 1.093750 3.000000 +v -0.187500 1.000000 3.000000 +v -0.162380 0.906250 3.000000 +v -0.093750 0.837620 3.000000 +v 0.000000 0.812500 3.000000 +v 0.093750 0.837620 3.000000 +v 0.162380 0.906250 3.000000 +v 0.187500 1.000000 3.000000 +v 0.162380 1.093750 3.000000 +v 0.093750 1.162380 3.000000 +v 0.000000 1.250000 3.000000 +v -0.125000 1.216506 3.000000 +v -0.216506 1.125000 3.000000 +v -0.250000 1.000000 3.000000 +v 0.250000 1.000000 3.000000 +v 0.216506 1.125000 3.000000 +v 0.125000 1.216506 3.000000 +v 0.000000 1.250000 3.250000 +v -0.125000 1.216506 3.250000 +v -0.216506 1.125000 3.250000 +v -0.250000 1.000000 3.250000 +v 0.250000 1.000000 3.250000 +v 0.216506 1.125000 3.250000 +v 0.125000 1.216506 3.250000 +v 0.000000 1.187500 3.250000 +v -0.093750 1.162380 3.250000 +v -0.162380 1.093750 3.250000 +v -0.187500 1.000000 3.250000 +v -0.162380 0.906250 3.250000 +v -0.093750 0.837620 3.250000 +v 0.000000 0.812500 3.250000 +v 0.093750 0.837620 3.250000 +v 0.162380 0.906250 3.250000 +v 0.187500 1.000000 3.250000 +v 0.162380 1.093750 3.250000 +v 0.093750 1.162380 3.250000 +v 0.000000 0.750000 -2.000000 +v -0.093750 0.724880 -2.000000 +v -0.162380 0.656250 -2.000000 +v -0.187500 0.562500 -2.000000 +v -0.162380 0.468750 -2.000000 +v -0.093750 0.400120 -2.000000 +v 0.000000 0.375000 -2.000000 +v 0.093750 0.400120 -2.000000 +v 0.162380 0.468750 -2.000000 +v 0.187500 0.562500 -2.000000 +v 0.162380 0.656250 -2.000000 +v 0.093750 0.724880 -2.000000 +v 0.000000 0.750000 3.000000 +v -0.093750 0.724880 3.000000 +v -0.162380 0.656250 3.000000 +v -0.187500 0.562500 3.000000 +v -0.162380 0.468750 3.000000 +v -0.093750 0.400120 3.000000 +v 0.000000 0.375000 3.000000 +v 0.093750 0.400120 3.000000 +v 0.162380 0.468750 3.000000 +v 0.187500 0.562500 3.000000 +v 0.162380 0.656250 3.000000 +v 0.093750 0.724880 3.000000 +v -0.250000 0.562500 3.000000 +v -0.216506 0.437500 3.000000 +v -0.125000 0.345994 3.000000 +v 0.000000 0.312500 3.000000 +v 0.125000 0.345994 3.000000 +v 0.216506 0.437500 3.000000 +v 0.250000 0.562500 3.000000 +v -0.250000 0.562500 3.250000 +v -0.216506 0.437500 3.250000 +v -0.125000 0.345994 3.250000 +v 0.000000 0.312500 3.250000 +v 0.125000 0.345994 3.250000 +v 0.216506 0.437500 3.250000 +v 0.250000 0.562500 3.250000 +v 0.000000 1.250000 -2.000000 +v -0.125000 1.216506 -2.000000 +v -0.216506 1.125000 -2.000000 +v -0.250000 1.000000 -2.000000 +v 0.250000 1.000000 -2.000000 +v 0.216506 1.125000 -2.000000 +v 0.125000 1.216506 -2.000000 +v -0.250000 0.562500 -2.000000 +v -0.216506 0.437500 -2.000000 +v -0.125000 0.345994 -2.000000 +v 0.000000 0.312500 -2.000000 +v 0.125000 0.345994 -2.000000 +v 0.216506 0.437500 -2.000000 +v 0.250000 0.562500 -2.000000 +v -0.125000 1.216506 -2.375000 +v 0.000000 1.250000 -2.375000 +v -0.216506 1.125000 -2.375000 +v -0.250000 1.000000 -2.375000 +v 0.216506 1.125000 -2.375000 +v 0.250000 1.000000 -2.375000 +v 0.125000 1.216506 -2.375000 +v -0.250000 0.562500 -2.375000 +v 0.250000 0.562500 -2.375000 +v -0.216506 0.437500 -2.375000 +v -0.125000 0.345994 -2.375000 +v 0.000000 0.312500 -2.375000 +v 0.125000 0.345994 -2.375000 +v 0.216506 0.437500 -2.375000 +v 0.000000 1.125000 -2.375000 +v -0.062500 1.108253 -2.375000 +v -0.108253 1.062500 -2.375000 +v -0.125000 1.000000 -2.375000 +v -0.108253 0.937500 -2.375000 +v -0.062500 0.891747 -2.375000 +v 0.000000 0.875000 -2.375000 +v 0.062500 0.891747 -2.375000 +v 0.108253 0.937500 -2.375000 +v 0.125000 1.000000 -2.375000 +v 0.108253 1.062500 -2.375000 +v 0.062500 1.108253 -2.375000 +v 0.000000 0.687500 -2.375000 +v -0.062500 0.670753 -2.375000 +v -0.108253 0.625000 -2.375000 +v -0.125000 0.562500 -2.375000 +v -0.108253 0.500000 -2.375000 +v -0.062500 0.454247 -2.375000 +v 0.000000 0.437500 -2.375000 +v 0.062500 0.454247 -2.375000 +v 0.108253 0.500000 -2.375000 +v 0.125000 0.562500 -2.375000 +v 0.108253 0.625000 -2.375000 +v 0.062500 0.670753 -2.375000 +v 0.000000 1.125000 -1.375000 +v -0.062500 1.108253 -1.375000 +v -0.108253 1.062500 -1.375000 +v -0.125000 1.000000 -1.375000 +v -0.108253 0.937500 -1.375000 +v -0.062500 0.891747 -1.375000 +v 0.000000 0.875000 -1.375000 +v 0.062500 0.891747 -1.375000 +v 0.108253 0.937500 -1.375000 +v 0.125000 1.000000 -1.375000 +v 0.108253 1.062500 -1.375000 +v 0.062500 1.108253 -1.375000 +v 0.000000 0.687500 -1.375000 +v -0.062500 0.670753 -1.375000 +v -0.108253 0.625000 -1.375000 +v -0.125000 0.562500 -1.375000 +v -0.108253 0.500000 -1.375000 +v -0.062500 0.454247 -1.375000 +v 0.000000 0.437500 -1.375000 +v 0.062500 0.454247 -1.375000 +v 0.108253 0.500000 -1.375000 +v 0.125000 0.562500 -1.375000 +v 0.108253 0.625000 -1.375000 +v 0.062500 0.670753 -1.375000 +v 0.312500 1.125000 -2.125000 +v 0.312500 1.125000 -2.500000 +v 0.187500 1.125000 -2.125000 +v 0.187500 1.125000 -2.500000 +v 0.312500 0.437500 -2.125000 +v 0.187500 0.437500 -2.125000 +v 0.312500 0.187500 -2.375000 +v 0.312500 1.000000 -2.625000 +v 0.187500 1.000000 -2.625000 +v 0.312500 1.000000 -3.000000 +v 0.187500 1.000000 -3.000000 +v 0.312500 0.562500 -3.750000 +v 0.312500 0.875000 -3.375000 +v 0.187500 0.875000 -3.375000 +v 0.312500 -0.062500 -2.875000 +v 0.312500 -0.062500 -3.875000 +v -0.187500 1.125000 -2.125000 +v -0.187500 1.125000 -2.500000 +v -0.312500 1.125000 -2.125000 +v -0.312500 1.125000 -2.500000 +v -0.187500 0.437500 -2.125000 +v -0.312500 0.437500 -2.125000 +v -0.312500 0.187500 -2.375000 +v -0.187500 1.000000 -2.625000 +v -0.312500 1.000000 -2.625000 +v -0.187500 1.000000 -3.000000 +v -0.312500 1.000000 -3.000000 +v -0.312500 0.562500 -3.750000 +v -0.187500 0.875000 -3.375000 +v -0.312500 0.875000 -3.375000 +v -0.312500 -0.062500 -2.875000 +v -0.312500 -0.062500 -3.875000 +v 0.250000 0.562500 -2.000000 +v -0.250000 0.562500 -2.000000 +v 0.250000 1.000000 -2.000000 +v -0.250000 1.000000 -2.000000 +v 0.250000 0.562500 1.625000 +v -0.250000 0.562500 1.625000 +v 0.250000 1.000000 1.625000 +v -0.250000 1.000000 1.625000 +v 0.250000 0.687500 1.750000 +v -0.250000 0.687500 1.750000 +v 0.250000 0.874000 1.750000 +v -0.250000 0.874000 1.750000 +v 0.187500 0.562500 -2.000000 +v 0.187500 1.000000 -2.000000 +v -0.187500 0.562500 -2.000000 +v -0.187500 1.000000 -2.000000 +v 0.187500 0.562500 -1.375000 +v 0.187500 1.000000 -1.375000 +v -0.187500 0.562500 -1.375000 +v -0.187500 1.000000 -1.375000 +v 0.187500 -0.062500 -2.875000 +v -0.187500 -0.062500 -2.875000 +v 0.187500 -0.062500 -3.875000 +v -0.187500 -0.062500 -3.875000 +v -0.187500 0.562500 -3.750000 +v 0.187500 0.562500 -3.750000 +v 0.312500 0.437500 -4.125000 +v -0.312500 0.437500 -4.125000 +v 0.312500 -0.187500 -4.125000 +v -0.312500 -0.187500 -4.125000 +v -0.187500 0.437500 -3.500000 +v 0.187500 0.437500 -3.500000 +v -0.250000 -0.250000 -4.125000 +v 0.250000 -0.250000 -4.125000 +v -0.250000 0.500000 -4.125000 +v 0.250000 0.500000 -4.125000 +v -0.250000 -0.250000 -5.625000 +v -0.250000 -1.000000 -5.250000 +v 0.250000 -1.000000 -5.250000 +v 0.250000 -0.250000 -5.625000 +v 0.375000 -0.125000 -4.125000 +v 0.375000 0.375000 -4.125000 +v 0.375000 -0.875000 -5.312500 +v 0.375000 -0.375000 -5.562500 +v -0.375000 0.375000 -4.125000 +v -0.375000 -0.125000 -4.125000 +v -0.375000 -0.375000 -5.562500 +v -0.375000 -0.875000 -5.312500 +v -0.250000 -0.500000 -5.750000 +v -0.250000 -1.000000 -5.500000 +v 0.250000 -1.000000 -5.500000 +v 0.250000 -0.500000 -5.750000 +v 0.062500 -0.062500 -3.562500 +v -0.062500 -0.062500 -3.562500 +v 0.062500 -0.062500 -3.500000 +v -0.062500 -0.062500 -3.500000 +v 0.062500 -0.187500 -3.562500 +v -0.062500 -0.187500 -3.562500 +v 0.062500 -0.187500 -3.500000 +v -0.062500 -0.187500 -3.500000 +v 0.062500 -0.312500 -3.437500 +v -0.062500 -0.312500 -3.437500 +vt 0.073770 0.336468 +vt 0.080862 0.345804 +vt 0.073770 0.373812 +vt 0.286885 0.224299 +vt 0.282787 0.205607 +vt 0.286885 0.205607 +vt 0.286885 0.186916 +vt 0.282787 0.196262 +vt 0.282787 0.186916 +vt 0.286885 0.168224 +vt 0.282787 0.177570 +vt 0.282787 0.168224 +vt 0.282787 0.149533 +vt 0.286885 0.149533 +vt 0.286885 0.130841 +vt 0.282787 0.140187 +vt 0.282787 0.130841 +vt 0.282787 0.112150 +vt 0.286885 0.112150 +vt 0.286885 0.093458 +vt 0.282787 0.102804 +vt 0.282787 0.093458 +vt 0.282787 0.074766 +vt 0.286885 0.074766 +vt 0.286885 0.056075 +vt 0.282787 0.065421 +vt 0.282787 0.056075 +vt 0.282787 0.037383 +vt 0.286885 0.037383 +vt 0.282787 0.018692 +vt 0.286885 0.018692 +vt 0.286885 0.000000 +vt 0.282787 0.009346 +vt 0.282787 -0.000000 +vt 0.571329 0.341081 +vt 0.573778 0.359421 +vt 0.567782 0.345750 +vt 0.575825 0.351334 +vt 0.581967 0.364425 +vt 0.581967 0.355087 +vt 0.590157 0.359421 +vt 0.588109 0.351334 +vt 0.596152 0.345750 +vt 0.594252 0.327074 +vt 0.592606 0.341081 +vt 0.588109 0.302814 +vt 0.596152 0.243035 +vt 0.592606 0.313068 +vt 0.569683 0.327074 +vt 0.565588 0.327074 +vt 0.557370 0.359421 +vt 0.559819 0.341081 +vt 0.563365 0.345750 +vt 0.549180 0.364425 +vt 0.555323 0.351334 +vt 0.540991 0.359421 +vt 0.549180 0.355087 +vt 0.534996 0.345750 +vt 0.543038 0.351334 +vt 0.532801 0.327074 +vt 0.538542 0.341081 +vt 0.598346 0.327074 +vt 0.598346 0.261711 +vt 0.565588 0.261711 +vt 0.571329 0.313068 +vt 0.575825 0.302814 +vt 0.567782 0.243035 +vt 0.573778 0.229364 +vt 0.581967 0.299061 +vt 0.581967 0.224360 +vt 0.590157 0.229364 +vt 0.561465 0.327074 +vt 0.565560 0.327074 +vt 0.532801 0.261711 +vt 0.538542 0.313068 +vt 0.559819 0.313068 +vt 0.555323 0.302814 +vt 0.563365 0.243035 +vt 0.549180 0.299061 +vt 0.557370 0.229364 +vt 0.540991 0.229364 +vt 0.543038 0.302814 +vt 0.534996 0.243035 +vt 0.476516 0.252326 +vt 0.483607 0.224321 +vt 0.490697 0.252326 +vt 0.476543 0.364441 +vt 0.483607 0.336542 +vt 0.490670 0.364441 +vt 0.620900 0.302820 +vt 0.625399 0.275706 +vt 0.625399 0.313079 +vt 0.614754 0.299064 +vt 0.620900 0.285965 +vt 0.608608 0.302820 +vt 0.614754 0.289721 +vt 0.604109 0.313079 +vt 0.608608 0.285965 +vt 0.602462 0.327095 +vt 0.604109 0.275706 +vt 0.627046 0.261690 +vt 0.627046 0.327095 +vt 0.631143 0.327095 +vt 0.631143 0.261690 +vt 0.602462 0.261690 +vt 0.598365 0.327095 +vt 0.598365 0.261690 +vt 0.600561 0.345781 +vt 0.604109 0.341110 +vt 0.608608 0.351370 +vt 0.614754 0.355125 +vt 0.606559 0.359461 +vt 0.620900 0.351370 +vt 0.614754 0.364468 +vt 0.625399 0.341110 +vt 0.622949 0.359461 +vt 0.628948 0.345781 +vt 0.628948 0.243004 +vt 0.625399 0.247675 +vt 0.620900 0.237416 +vt 0.614754 0.233660 +vt 0.622949 0.229324 +vt 0.606559 0.229324 +vt 0.608608 0.237416 +vt 0.600561 0.243004 +vt 0.604109 0.247675 +vt 0.643444 0.310911 +vt 0.647541 0.280377 +vt 0.647541 0.308408 +vt 0.651638 0.310911 +vt 0.654638 0.271034 +vt 0.654638 0.317751 +vt 0.655736 0.327095 +vt 0.640444 0.271034 +vt 0.640444 0.317751 +vt 0.639346 0.261690 +vt 0.639346 0.327095 +vt 0.631152 0.327095 +vt 0.631152 0.261690 +vt 0.663930 0.327095 +vt 0.655736 0.261690 +vt 0.663930 0.261690 +vt 0.654638 0.336438 +vt 0.661735 0.345781 +vt 0.651638 0.343278 +vt 0.655736 0.359461 +vt 0.647541 0.345781 +vt 0.647541 0.364468 +vt 0.639346 0.359461 +vt 0.640444 0.336438 +vt 0.633347 0.345781 +vt 0.640444 0.252347 +vt 0.633347 0.243004 +vt 0.643444 0.245507 +vt 0.639346 0.229324 +vt 0.647541 0.224317 +vt 0.651638 0.245507 +vt 0.655736 0.229324 +vt 0.661735 0.243004 +vt 0.654638 0.252347 +vt 0.713115 0.186916 +vt 0.721311 0.289720 +vt 0.713115 0.289720 +vt 0.803279 0.252336 +vt 0.778689 0.271028 +vt 0.770492 0.112150 +vt 0.721311 0.485981 +vt 0.713115 0.383178 +vt 0.721311 0.383178 +vt 0.803279 0.420561 +vt 0.827869 0.467290 +vt 0.770492 0.560748 +vt 0.028689 0.728972 +vt 0.266393 0.663551 +vt 0.266393 0.728972 +vt 0.266393 0.588785 +vt 0.028689 0.523364 +vt 0.266393 0.523364 +vt 0.020492 0.570093 +vt 0.028689 0.588785 +vt 0.020492 0.682243 +vt 0.028689 0.663551 +vt 0.836066 0.112150 +vt 0.852459 0.186916 +vt 0.827869 0.205607 +vt 0.836066 0.560748 +vt 0.852459 0.485981 +vt 0.852459 0.579439 +vt 0.852459 0.102804 +vt 0.852459 0.000000 +vt 0.885246 0.018692 +vt 0.959016 0.158879 +vt 0.942623 0.102804 +vt 0.959016 0.102804 +vt 0.959016 0.084112 +vt 0.934426 0.037383 +vt 0.942623 0.158879 +vt 0.909836 0.242991 +vt 0.885246 0.242991 +vt 0.852459 0.158879 +vt 0.934426 0.224299 +vt 0.959016 0.177570 +vt 0.266393 0.738318 +vt 0.274590 0.644860 +vt 0.315574 0.663551 +vt 0.168033 0.785047 +vt 0.172131 0.766355 +vt 0.172131 0.785047 +vt 0.180328 0.803738 +vt 0.184426 0.785047 +vt 0.184426 0.803738 +vt 0.168033 0.803738 +vt 0.172131 0.803738 +vt 0.180328 0.785047 +vt 0.180328 0.766355 +vt 0.069676 0.371311 +vt 0.066679 0.345804 +vt 0.066679 0.364476 +vt 0.065582 0.355140 +vt 0.069676 0.338970 +vt 0.077865 0.338970 +vt 0.081959 0.355140 +vt 0.080862 0.364476 +vt 0.077865 0.371311 +vt 0.282787 0.214953 +vt 0.282787 0.158879 +vt 0.282787 0.121495 +vt 0.282787 0.084112 +vt 0.282787 0.046729 +vt 0.282787 0.028037 +vt 0.536896 0.327074 +vt 0.565560 0.261711 +vt 0.549180 0.224360 +vt 0.487700 0.259160 +vt 0.483607 0.261661 +vt 0.479513 0.259160 +vt 0.475419 0.242991 +vt 0.476516 0.233656 +vt 0.479513 0.226822 +vt 0.487700 0.226822 +vt 0.490697 0.233656 +vt 0.491794 0.242991 +vt 0.487685 0.371248 +vt 0.483607 0.373740 +vt 0.479529 0.371248 +vt 0.475451 0.355141 +vt 0.476543 0.345842 +vt 0.479529 0.339034 +vt 0.487685 0.339034 +vt 0.490670 0.345842 +vt 0.491763 0.355141 +vt 0.614754 0.224317 +vt 0.643444 0.277874 +vt 0.651638 0.277874 +vt 0.643444 0.343278 +vt 0.647541 0.243004 +vt 0.721311 0.186916 +vt 0.745902 0.289720 +vt 0.754098 0.271028 +vt 0.737705 0.149533 +vt 0.713115 0.485981 +vt 0.754098 0.401869 +vt 0.745902 0.383178 +vt 0.778689 0.401869 +vt 0.737705 0.523364 +vt 0.020492 0.542056 +vt 0.020492 0.710280 +vt 0.852459 0.093458 +vt 0.877049 0.000000 +vt 0.909836 0.018692 +vt 0.877049 0.261682 +vt 0.852459 0.261682 +vt 0.315574 0.738318 +vt 0.307377 0.757009 +vt 0.274590 0.757009 +vt 0.266393 0.663551 +vt 0.307377 0.644860 +vt 0.663934 0.224299 +vt 0.663934 0.205607 +vt 0.663934 0.186916 +vt 0.663934 0.168224 +vt 0.663934 0.149533 +vt 0.663934 0.130841 +vt 0.663934 0.112150 +vt 0.663934 0.093458 +vt 0.663934 0.074766 +vt 0.663934 0.056075 +vt 0.663934 0.037383 +vt 0.663934 0.018692 +vt 0.663934 0.000000 +vt -0.000000 0.364486 +vt 0.065574 0.373832 +vt -0.000000 0.373832 +vt -0.000000 0.411215 +vt 0.065574 0.420561 +vt -0.000000 0.420561 +vt -0.000000 0.439252 +vt 0.065574 0.448598 +vt -0.000000 0.448598 +vt -0.000000 0.355140 +vt 0.065574 0.364486 +vt -0.000000 0.401869 +vt 0.065574 0.411215 +vt -0.000000 0.383178 +vt 0.065574 0.392523 +vt -0.000000 0.392523 +vt -0.000000 0.429907 +vt 0.065574 0.439252 +vt -0.000000 0.345794 +vt 0.065574 0.355140 +vt 0.065574 0.401869 +vt 0.065574 0.383178 +vt 0.065574 0.429907 +vt -0.000000 0.336449 +vt 0.065574 0.345794 +vt 0.688525 0.196262 +vt 0.704918 0.214953 +vt 0.688525 0.214953 +vt 0.688525 0.158879 +vt 0.704918 0.177570 +vt 0.688525 0.177570 +vt 0.704918 0.196262 +vt 0.688525 0.140187 +vt 0.704918 0.158879 +vt 0.688525 0.121495 +vt 0.704918 0.140187 +vt 0.704918 0.233645 +vt 0.688525 0.233645 +vt 0.688525 0.299065 +vt 0.704918 0.299065 +vt 0.409836 0.448598 +vt 0.081967 0.429907 +vt 0.409836 0.429907 +vt 0.081967 0.411215 +vt 0.409836 0.411215 +vt 0.081967 0.392523 +vt 0.409836 0.392523 +vt 0.081967 0.373832 +vt 0.409836 0.373832 +vt 0.081967 0.355140 +vt 0.409836 0.355140 +vt 0.081967 0.336449 +vt 0.409836 0.336449 +vt 0.081967 0.317757 +vt 0.409836 0.317757 +vt 0.081967 0.299065 +vt 0.409836 0.299065 +vt 0.081967 0.280374 +vt 0.409836 0.280374 +vt 0.081967 0.261682 +vt 0.409836 0.261682 +vt 0.081967 0.242991 +vt 0.409836 0.242991 +vt 0.081967 0.224299 +vt 0.409836 0.224299 +vt 0.704918 0.056075 +vt 0.688525 0.056075 +vt 0.688525 0.336449 +vt 0.704918 0.355140 +vt 0.688525 0.355140 +vt 0.688525 0.037383 +vt 0.688525 0.317757 +vt 0.704918 0.336449 +vt 0.688525 0.018692 +vt 0.704918 0.037383 +vt 0.704918 0.317757 +vt 0.688525 -0.000000 +vt 0.704918 0.018692 +vt 0.663934 0.317757 +vt 0.688525 0.336449 +vt 0.663934 0.336449 +vt 0.663934 0.214953 +vt 0.688525 0.233645 +vt 0.663934 0.233645 +vt 0.688525 0.355140 +vt 0.663934 0.355140 +vt 0.663934 0.121495 +vt 0.688525 0.140187 +vt 0.663934 0.140187 +vt 0.663934 -0.000000 +vt 0.688525 0.018692 +vt 0.663934 0.018692 +vt 0.688525 0.158879 +vt 0.663934 0.158879 +vt 0.688525 0.037383 +vt 0.663934 0.037383 +vt 0.688525 0.177570 +vt 0.663934 0.177570 +vt 0.688525 0.056075 +vt 0.663934 0.056075 +vt 0.688525 0.299065 +vt 0.663934 0.299065 +vt 0.688525 0.121495 +vt 0.688525 0.196262 +vt 0.663934 0.196262 +vt 0.688525 0.317757 +vt 0.688525 0.214953 +vt 0.409836 0.401869 +vt 0.475410 0.392523 +vt 0.475410 0.401869 +vt 0.409836 0.355140 +vt 0.475410 0.345794 +vt 0.475410 0.355140 +vt 0.409836 0.327103 +vt 0.475410 0.317757 +vt 0.475410 0.327103 +vt 0.409836 0.280374 +vt 0.475410 0.271028 +vt 0.475410 0.280374 +vt 0.409836 0.345794 +vt 0.475410 0.336449 +vt 0.409836 0.317757 +vt 0.475410 0.308411 +vt 0.409836 0.271028 +vt 0.475410 0.261682 +vt 0.409836 0.448598 +vt 0.475410 0.439252 +vt 0.475410 0.448598 +vt 0.409836 0.308411 +vt 0.475410 0.299065 +vt 0.409836 0.261682 +vt 0.475410 0.252336 +vt 0.409836 0.439252 +vt 0.475410 0.429907 +vt 0.409836 0.299065 +vt 0.475410 0.289720 +vt 0.409836 0.392523 +vt 0.475410 0.383178 +vt 0.409836 0.252336 +vt 0.475410 0.242991 +vt 0.409836 0.429907 +vt 0.475410 0.420561 +vt 0.409836 0.289720 +vt 0.409836 0.383178 +vt 0.475410 0.373832 +vt 0.409836 0.242991 +vt 0.475410 0.233645 +vt 0.409836 0.420561 +vt 0.475410 0.411215 +vt 0.409836 0.373832 +vt 0.475410 0.364486 +vt 0.409836 0.233645 +vt 0.475410 0.224299 +vt 0.409836 0.411215 +vt 0.409836 0.364486 +vt 0.409836 0.336449 +vt 0.475410 0.336449 +vt 0.745902 0.308411 +vt 0.754098 0.289720 +vt 0.778689 0.289720 +vt 0.754098 0.308411 +vt 0.803279 0.289720 +vt 0.778689 0.308411 +vt 0.721311 0.018692 +vt 0.737705 0.093458 +vt 0.721311 0.074766 +vt 0.721311 0.364486 +vt 0.745902 0.364486 +vt 0.754098 0.364486 +vt 0.778689 0.364486 +vt 0.754098 0.383178 +vt 0.803279 0.364486 +vt 0.778689 0.383178 +vt 0.827869 0.383178 +vt 0.827869 0.364486 +vt 0.852459 0.383178 +vt 0.770492 0.093458 +vt 0.836066 0.074766 +vt 0.840164 0.093458 +vt 0.000000 0.588785 +vt 0.008197 0.663551 +vt 0.000000 0.663551 +vt 0.020492 0.588785 +vt 0.020492 0.663551 +vt 0.008197 0.588785 +vt 0.225410 0.514019 +vt 0.028689 0.448598 +vt 0.225410 0.654206 +vt 0.836066 0.018692 +vt 0.770492 0.000000 +vt 0.836066 0.000000 +vt 0.770492 0.074766 +vt 0.827869 0.308411 +vt 0.803279 0.308411 +vt 0.803279 0.383178 +vt 0.852459 0.289720 +vt 0.827869 0.289720 +vt 0.852459 -0.000000 +vt 0.426230 0.663551 +vt 0.442623 0.738318 +vt 0.426230 0.738318 +vt 0.336066 0.448598 +vt 0.426230 0.523364 +vt 0.336066 0.523364 +vt 0.319672 0.635514 +vt 0.426230 0.635514 +vt 0.319672 0.766355 +vt 0.331967 0.551402 +vt 0.426230 0.850467 +vt 0.442623 0.766355 +vt 0.442623 0.850467 +vt 0.426230 0.551402 +vt 0.331967 0.850467 +vt 0.426230 0.766355 +vt 0.336066 0.878505 +vt 0.426230 0.878505 +vt 0.475410 0.663551 +vt 0.475410 0.738318 +vt 0.491803 0.738318 +vt 0.491803 0.663551 +vt 0.442623 0.635514 +vt 0.442623 0.551402 +vt 0.159836 0.803738 +vt 0.159836 0.785047 +vt 0.168033 0.766355 +vt 0.770492 0.018692 +vt 0.737705 0.000000 +vt 0.721311 -0.000000 +vt 0.721311 0.093458 +vt 0.065574 0.336449 +vt 0.704918 0.121495 +vt 0.081967 0.448598 +vt 0.704918 0.000000 +vt 0.688525 -0.000000 +vt 0.409836 0.336449 +vt 0.409836 0.224299 +vt 0.721311 0.308411 +vt 0.266393 0.448598 +vt 0.225410 0.457944 +vt 0.266393 0.457944 +vt 0.266393 0.514019 +vt 0.225410 0.598131 +vt 0.266393 0.598131 +vt 0.266393 0.654206 +vt 0.442623 0.663551 +vt 0.426230 0.448598 +vt 0.159836 0.766355 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.9239 0.3827 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 -0.9239 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.9914 0.1305 0.0000 +vn 0.9914 0.1305 0.0000 +vn 0.9914 -0.1305 0.0000 +vn -0.9914 -0.1305 0.0000 vn 0.0000 0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 0.3827 0.9239 -vn 0.0000 -0.3827 -0.9239 -vn 0.9239 -0.3827 0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn -0.3827 -0.9239 -0.0000 -vn 0.7071 -0.7071 0.0000 -vn -0.7071 0.7071 0.0000 -vn 0.7071 0.7071 0.0000 -vn -0.7071 -0.7071 -0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.9239 -0.3827 -0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.3827 -0.9239 0.0000 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.9871 -0.1602 +vn 0.0000 0.8736 -0.4866 vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.8112 0.5847 +vn 0.0000 0.9024 -0.4308 +vn 0.0000 0.9487 -0.3162 +vn 0.0000 -0.9732 0.2298 +vn 0.0000 -0.9522 0.3054 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9231 0.3845 +vn 0.0000 0.3808 0.9246 +vn 0.0000 -0.8944 0.4472 +vn 0.3702 0.6646 -0.6490 +vn -0.4346 -0.0292 -0.9002 +vn -0.3702 0.6646 -0.6490 +vn 0.3158 0.8487 -0.4243 +vn -0.3158 0.8487 -0.4243 +vn -0.3875 -0.7728 0.5027 +vn 0.3803 -0.8832 0.2744 +vn 0.3875 -0.7728 0.5027 +vn 0.8592 0.4574 -0.2292 +vn 0.9085 0.1932 -0.3706 +vn -0.8592 0.4574 -0.2292 +vn 0.9547 -0.2517 0.1590 +vn -0.9201 -0.3912 -0.0217 +vn -0.4362 -0.7533 -0.4922 +vn 0.9201 -0.3912 -0.0217 +vn -0.9547 -0.2517 0.1590 +vn -0.9085 0.1932 -0.3706 +vn -0.3803 -0.8832 0.2744 +vn 0.4362 -0.7533 -0.4922 +vn 0.4346 -0.0292 -0.9002 +vn 0.0000 0.2298 0.9732 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.4472 0.8944 +vn 0.0000 -0.7071 -0.7071 s off -f 313/799/45 314/800/45 315/801/45 -f 314/800/45 316/802/45 315/801/45 -f 317/803/46 318/804/46 319/805/46 -f 318/804/46 320/806/46 319/805/46 -f 317/803/47 319/807/47 315/801/47 -f 319/807/47 313/808/47 315/801/47 -f 320/809/48 318/804/48 314/810/48 -f 318/804/48 316/802/48 314/810/48 -f 319/811/49 320/812/49 313/813/49 -f 320/812/49 314/814/49 313/813/49 -f 315/815/50 316/816/50 317/817/50 -f 316/816/50 318/818/50 317/817/50 -f 321/819/45 322/820/45 323/821/45 -f 322/820/45 324/822/45 323/821/45 -f 325/823/46 326/824/46 327/825/46 -f 326/824/46 328/826/46 327/825/46 -f 325/823/51 327/827/51 323/821/51 -f 327/827/51 321/828/51 323/821/51 -f 328/829/52 326/824/52 322/830/52 -f 326/824/52 324/822/52 322/830/52 -f 327/831/53 328/832/53 321/833/53 -f 328/832/53 322/834/53 321/833/53 -f 323/835/54 324/836/54 325/837/54 -f 324/836/54 326/838/54 325/837/54 -f 329/839/45 330/840/45 331/841/45 -f 330/840/45 332/842/45 331/841/45 -f 333/843/46 334/844/46 335/845/46 -f 334/844/46 336/846/46 335/845/46 -f 333/843/55 335/847/55 331/841/55 -f 335/847/55 329/848/55 331/841/55 -f 336/849/56 334/844/56 330/850/56 -f 334/844/56 332/842/56 330/850/56 -f 335/851/57 336/852/57 329/853/57 -f 336/852/57 330/854/57 329/853/57 -f 331/855/58 332/856/58 333/857/58 -f 332/856/58 334/858/58 333/857/58 -f 337/859/45 338/860/45 339/861/45 -f 338/860/45 340/862/45 339/861/45 -f 341/863/46 342/864/46 343/865/46 -f 342/864/46 344/866/46 343/865/46 -f 341/863/47 343/867/47 339/861/47 -f 343/867/47 337/868/47 339/861/47 -f 344/869/48 342/864/48 338/870/48 -f 342/864/48 340/862/48 338/870/48 -f 343/871/49 344/872/49 337/873/49 -f 344/872/49 338/874/49 337/873/49 -f 339/875/50 340/876/50 341/877/50 -f 340/876/50 342/878/50 341/877/50 -f 345/879/45 346/880/45 347/881/45 -f 346/880/45 348/882/45 347/881/45 -f 349/883/46 350/884/46 351/885/46 -f 350/884/46 352/886/46 351/885/46 -f 349/883/47 351/887/47 347/881/47 -f 351/887/47 345/888/47 347/881/47 -f 352/889/48 350/884/48 346/890/48 -f 350/884/48 348/882/48 346/890/48 -f 351/891/49 352/892/49 345/893/49 -f 352/892/49 346/894/49 345/893/49 -f 347/895/50 348/896/50 349/897/50 -f 348/896/50 350/898/50 349/897/50 -f 353/899/59 354/900/59 355/901/59 -f 354/900/59 356/902/59 355/901/59 -f 357/903/60 358/904/60 359/905/60 -f 358/904/60 360/906/60 359/905/60 -f 357/903/61 359/907/61 355/901/61 -f 359/907/61 353/908/61 355/901/61 -f 360/909/62 358/904/62 354/910/62 -f 358/904/62 356/902/62 354/910/62 -f 359/911/49 360/912/49 353/913/49 -f 360/912/49 354/914/49 353/913/49 -f 355/915/50 356/916/50 357/917/50 -f 356/916/50 358/918/50 357/917/50 -f 361/919/63 362/920/63 363/921/63 -f 362/920/63 364/922/63 363/921/63 -f 365/923/64 366/924/64 367/925/64 -f 366/924/64 368/926/64 367/925/64 -f 365/923/65 367/927/65 363/921/65 -f 367/927/65 361/928/65 363/921/65 -f 368/929/66 366/924/66 362/930/66 -f 366/924/66 364/922/66 362/930/66 -f 367/931/49 368/932/49 361/933/49 -f 368/932/49 362/934/49 361/933/49 -f 363/935/50 364/936/50 365/937/50 -f 364/936/50 366/938/50 365/937/50 -f 369/939/67 370/940/67 371/941/67 -f 370/940/67 372/942/67 371/941/67 -f 373/943/68 374/944/68 375/945/68 -f 374/944/68 376/946/68 375/945/68 -f 373/943/69 375/947/69 371/941/69 -f 375/947/69 369/948/69 371/941/69 -f 376/949/70 374/944/70 370/950/70 -f 374/944/70 372/942/70 370/950/70 -f 375/951/49 376/952/49 369/953/49 -f 376/952/49 370/954/49 369/953/49 -f 371/955/50 372/956/50 373/957/50 -f 372/956/50 374/958/50 373/957/50 -f 377/959/45 378/960/45 379/961/45 -f 378/960/45 380/962/45 379/961/45 -f 381/963/46 382/964/46 383/965/46 -f 382/964/46 384/966/46 383/965/46 -f 381/963/47 383/967/47 379/961/47 -f 383/967/47 377/968/47 379/961/47 -f 384/969/48 382/964/48 378/970/48 -f 382/964/48 380/962/48 378/970/48 -f 383/971/49 384/972/49 377/973/49 -f 384/972/49 378/974/49 377/973/49 -f 379/975/50 380/976/50 381/977/50 -f 380/976/50 382/978/50 381/977/50 -f 385/979/45 386/980/45 387/981/45 -f 386/980/45 388/982/45 387/981/45 -f 389/983/46 390/984/46 391/985/46 -f 390/984/46 392/986/46 391/985/46 -f 389/983/47 391/987/47 387/981/47 -f 391/987/47 385/988/47 387/981/47 -f 392/989/48 390/984/48 386/990/48 -f 390/984/48 388/982/48 386/990/48 -f 391/991/49 392/992/49 385/993/49 -f 392/992/49 386/994/49 385/993/49 -f 387/995/50 388/996/50 389/997/50 -f 388/996/50 390/998/50 389/997/50 -f 393/999/67 394/1000/67 395/1001/67 -f 394/1000/67 396/1002/67 395/1001/67 -f 397/1003/68 398/1004/68 399/1005/68 -f 398/1004/68 400/1006/68 399/1005/68 -f 397/1003/69 399/1007/69 395/1001/69 -f 399/1007/69 393/1008/69 395/1001/69 -f 400/1009/70 398/1004/70 394/1010/70 -f 398/1004/70 396/1002/70 394/1010/70 -f 399/1011/49 400/1012/49 393/1013/49 -f 400/1012/49 394/1014/49 393/1013/49 -f 395/1015/50 396/1016/50 397/1017/50 -f 396/1016/50 398/1018/50 397/1017/50 -f 401/1019/65 402/1020/65 403/1021/65 -f 402/1020/65 404/1022/65 403/1021/65 -f 405/1023/66 406/1024/66 407/1025/66 -f 406/1024/66 408/1026/66 407/1025/66 -f 405/1023/64 407/1027/64 403/1021/64 -f 407/1027/64 401/1028/64 403/1021/64 -f 408/1029/63 406/1024/63 402/1030/63 -f 406/1024/63 404/1022/63 402/1030/63 -f 407/1031/49 408/1032/49 401/1033/49 -f 408/1032/49 402/1034/49 401/1033/49 -f 403/1035/50 404/1036/50 405/1037/50 -f 404/1036/50 406/1038/50 405/1037/50 -f 409/1039/59 410/1040/59 411/1041/59 -f 410/1040/59 412/1042/59 411/1041/59 -f 413/1043/60 414/1044/60 415/1045/60 -f 414/1044/60 416/1046/60 415/1045/60 -f 413/1043/61 415/1047/61 411/1041/61 -f 415/1047/61 409/1048/61 411/1041/61 -f 416/1049/62 414/1044/62 410/1050/62 -f 414/1044/62 412/1042/62 410/1050/62 -f 415/1051/49 416/1052/49 409/1053/49 -f 416/1052/49 410/1054/49 409/1053/49 -f 411/1055/50 412/1056/50 413/1057/50 -f 412/1056/50 414/1058/50 413/1057/50 -f 417/1059/45 418/1060/45 419/1061/45 -f 418/1060/45 420/1062/45 419/1061/45 -f 421/1063/46 422/1064/46 423/1065/46 -f 422/1064/46 424/1066/46 423/1065/46 -f 421/1063/47 423/1067/47 419/1061/47 -f 423/1067/47 417/1068/47 419/1061/47 -f 424/1069/48 422/1064/48 418/1070/48 -f 422/1064/48 420/1062/48 418/1070/48 -f 423/1071/49 424/1072/49 417/1073/49 -f 424/1072/49 418/1074/49 417/1073/49 -f 419/1075/50 420/1076/50 421/1077/50 -f 420/1076/50 422/1078/50 421/1077/50 -f 425/1079/45 426/1080/45 427/1081/45 -f 426/1080/45 428/1082/45 427/1081/45 -f 429/1083/46 430/1084/46 431/1085/46 -f 430/1084/46 432/1086/46 431/1085/46 -f 429/1083/47 431/1087/47 427/1081/47 -f 431/1087/47 425/1088/47 427/1081/47 -f 432/1089/48 430/1084/48 426/1090/48 -f 430/1084/48 428/1082/48 426/1090/48 -f 431/1091/49 432/1092/49 425/1093/49 -f 432/1092/49 426/1094/49 425/1093/49 -f 427/1095/50 428/1096/50 429/1097/50 -f 428/1096/50 430/1098/50 429/1097/50 -f 433/1099/45 434/1100/45 435/1101/45 -f 434/1100/45 436/1102/45 435/1101/45 -f 437/1103/46 438/1104/46 439/1105/46 -f 438/1104/46 440/1106/46 439/1105/46 -f 437/1103/47 439/1107/47 435/1101/47 -f 439/1107/47 433/1108/47 435/1101/47 -f 440/1109/48 438/1104/48 434/1110/48 -f 438/1104/48 436/1102/48 434/1110/48 -f 439/1111/49 440/1112/49 433/1113/49 -f 440/1112/49 434/1114/49 433/1113/49 -f 435/1115/50 436/1116/50 437/1117/50 -f 436/1116/50 438/1118/50 437/1117/50 -f 441/1119/45 442/1120/45 443/1121/45 -f 442/1120/45 444/1122/45 443/1121/45 -f 445/1123/46 446/1124/46 447/1125/46 -f 446/1124/46 448/1126/46 447/1125/46 -f 445/1127/47 447/1128/47 443/1129/47 -f 447/1128/47 441/1130/47 443/1129/47 -f 448/1131/48 446/1132/48 442/1133/48 -f 446/1132/48 444/1134/48 442/1133/48 -f 447/1135/49 448/1136/49 441/1119/49 -f 448/1136/49 442/1137/49 441/1119/49 -f 443/1138/50 444/1139/50 445/1140/50 -f 444/1139/50 446/1141/50 445/1140/50 -f 449/1142/45 450/1143/45 451/1144/45 -f 450/1143/45 452/1145/45 451/1144/45 -f 453/1146/46 454/1147/46 455/1148/46 -f 454/1147/46 456/1149/46 455/1148/46 -f 453/1146/51 455/1150/51 451/1144/51 -f 455/1150/51 449/1151/51 451/1144/51 -f 456/1152/52 454/1147/52 450/1153/52 -f 454/1147/52 452/1145/52 450/1153/52 -f 455/1154/53 456/1155/53 449/1156/53 -f 456/1155/53 450/1157/53 449/1156/53 -f 451/1158/54 452/1159/54 453/1160/54 -f 452/1159/54 454/1161/54 453/1160/54 -f 457/1162/45 458/1163/45 459/1164/45 -f 458/1163/45 460/1165/45 459/1164/45 -f 461/1166/46 462/1167/46 463/1168/46 -f 462/1167/46 464/1169/46 463/1168/46 -f 461/1166/71 463/1170/71 459/1164/71 -f 463/1170/71 457/1171/71 459/1164/71 -f 464/1172/72 462/1167/72 458/1173/72 -f 462/1167/72 460/1165/72 458/1173/72 -f 463/1174/73 464/1175/73 457/1176/73 -f 464/1175/73 458/1177/73 457/1176/73 -f 459/1178/74 460/1179/74 461/1180/74 -f 460/1179/74 462/1181/74 461/1180/74 -f 465/1182/45 466/1183/45 467/1184/45 -f 466/1183/45 468/1185/45 467/1184/45 -f 469/1186/46 470/1187/46 471/1188/46 -f 470/1187/46 472/1189/46 471/1188/46 -f 469/1186/47 471/1190/47 467/1184/47 -f 471/1190/47 465/1191/47 467/1184/47 -f 472/1192/48 470/1187/48 466/1193/48 -f 470/1187/48 468/1185/48 466/1193/48 -f 471/1194/49 472/1195/49 465/1196/49 -f 472/1195/49 466/1197/49 465/1196/49 -f 467/1198/50 468/1199/50 469/1200/50 -f 468/1199/50 470/1201/50 469/1200/50 -f 473/1202/59 474/1203/59 475/1204/59 -f 474/1203/59 476/1205/59 475/1204/59 -f 477/1206/60 478/1207/60 479/1208/60 -f 478/1207/60 480/1209/60 479/1208/60 -f 477/1206/61 479/1210/61 475/1204/61 -f 479/1210/61 473/1211/61 475/1204/61 -f 480/1212/62 478/1207/62 474/1213/62 -f 478/1207/62 476/1205/62 474/1213/62 -f 479/1214/49 480/1215/49 473/1216/49 -f 480/1215/49 474/1217/49 473/1216/49 -f 475/1218/50 476/1219/50 477/1220/50 -f 476/1219/50 478/1221/50 477/1220/50 -f 481/1222/63 482/1223/63 483/1224/63 -f 482/1223/63 484/1225/63 483/1224/63 -f 485/1226/64 486/1227/64 487/1228/64 -f 486/1227/64 488/1229/64 487/1228/64 -f 485/1226/65 487/1230/65 483/1224/65 -f 487/1230/65 481/1231/65 483/1224/65 -f 488/1232/66 486/1227/66 482/1233/66 -f 486/1227/66 484/1225/66 482/1233/66 -f 487/1234/49 488/1235/49 481/1236/49 -f 488/1235/49 482/1237/49 481/1236/49 -f 483/1238/50 484/1239/50 485/1240/50 -f 484/1239/50 486/1241/50 485/1240/50 -f 489/1242/67 490/1243/67 491/1244/67 -f 490/1243/67 492/1245/67 491/1244/67 -f 493/1246/68 494/1247/68 495/1248/68 -f 494/1247/68 496/1249/68 495/1248/68 -f 493/1246/69 495/1250/69 491/1244/69 -f 495/1250/69 489/1251/69 491/1244/69 -f 496/1252/70 494/1247/70 490/1253/70 -f 494/1247/70 492/1245/70 490/1253/70 -f 495/1254/49 496/1255/49 489/1256/49 -f 496/1255/49 490/1257/49 489/1256/49 -f 491/1258/50 492/1259/50 493/1260/50 -f 492/1259/50 494/1261/50 493/1260/50 -f 497/1262/45 498/1263/45 499/1264/45 -f 498/1263/45 500/1265/45 499/1264/45 -f 501/1266/46 502/1267/46 503/1268/46 -f 502/1267/46 504/1269/46 503/1268/46 -f 501/1266/47 503/1270/47 499/1264/47 -f 503/1270/47 497/1271/47 499/1264/47 -f 504/1272/48 502/1267/48 498/1273/48 -f 502/1267/48 500/1265/48 498/1273/48 -f 503/1274/49 504/1275/49 497/1276/49 -f 504/1275/49 498/1277/49 497/1276/49 -f 499/1278/50 500/1279/50 501/1280/50 -f 500/1279/50 502/1281/50 501/1280/50 -f 505/1282/59 506/1283/59 507/1284/59 -f 506/1283/59 508/1285/59 507/1284/59 -f 509/1286/60 510/1287/60 511/1288/60 -f 510/1287/60 512/1289/60 511/1288/60 -f 509/1286/61 511/1290/61 507/1284/61 -f 511/1290/61 505/1291/61 507/1284/61 -f 512/1292/62 510/1287/62 506/1293/62 -f 510/1287/62 508/1285/62 506/1293/62 -f 511/1294/49 512/1295/49 505/1296/49 -f 512/1295/49 506/1297/49 505/1296/49 -f 507/1298/50 508/1299/50 509/1300/50 -f 508/1299/50 510/1301/50 509/1300/50 -f 513/1302/63 514/1303/63 515/1304/63 -f 514/1303/63 516/1305/63 515/1304/63 -f 517/1306/64 518/1307/64 519/1308/64 -f 518/1307/64 520/1309/64 519/1308/64 -f 517/1306/65 519/1310/65 515/1304/65 -f 519/1310/65 513/1311/65 515/1304/65 -f 520/1312/66 518/1307/66 514/1313/66 -f 518/1307/66 516/1305/66 514/1313/66 -f 519/1314/49 520/1315/49 513/1316/49 -f 520/1315/49 514/1317/49 513/1316/49 -f 515/1318/50 516/1319/50 517/1320/50 -f 516/1319/50 518/1321/50 517/1320/50 -f 521/1322/67 522/1323/67 523/1324/67 -f 522/1323/67 524/1325/67 523/1324/67 -f 525/1326/68 526/1327/68 527/1328/68 -f 526/1327/68 528/1329/68 527/1328/68 -f 525/1326/69 527/1330/69 523/1324/69 -f 527/1330/69 521/1331/69 523/1324/69 -f 528/1332/70 526/1327/70 522/1333/70 -f 526/1327/70 524/1325/70 522/1333/70 -f 527/1334/49 528/1335/49 521/1336/49 -f 528/1335/49 522/1337/49 521/1336/49 -f 523/1338/50 524/1339/50 525/1340/50 -f 524/1339/50 526/1341/50 525/1340/50 -f 529/1342/67 530/1343/67 531/1344/67 -f 530/1343/67 532/1345/67 531/1344/67 -f 533/1346/68 534/1347/68 535/1348/68 -f 534/1347/68 536/1349/68 535/1348/68 -f 533/1346/69 535/1350/69 531/1344/69 -f 535/1350/69 529/1351/69 531/1344/69 -f 536/1352/70 534/1347/70 530/1353/70 -f 534/1347/70 532/1345/70 530/1353/70 -f 535/1354/49 536/1355/49 529/1356/49 -f 536/1355/49 530/1357/49 529/1356/49 -f 531/1358/50 532/1359/50 533/1360/50 -f 532/1359/50 534/1361/50 533/1360/50 -f 537/1362/63 538/1363/63 539/1364/63 -f 538/1363/63 540/1365/63 539/1364/63 -f 541/1366/64 542/1367/64 543/1368/64 -f 542/1367/64 544/1369/64 543/1368/64 -f 541/1366/65 543/1370/65 539/1364/65 -f 543/1370/65 537/1371/65 539/1364/65 -f 544/1372/66 542/1367/66 538/1373/66 -f 542/1367/66 540/1365/66 538/1373/66 -f 543/1374/49 544/1375/49 537/1376/49 -f 544/1375/49 538/1377/49 537/1376/49 -f 539/1378/50 540/1379/50 541/1380/50 -f 540/1379/50 542/1381/50 541/1380/50 -f 545/1382/59 546/1383/59 547/1384/59 -f 546/1383/59 548/1385/59 547/1384/59 -f 549/1386/60 550/1387/60 551/1388/60 -f 550/1387/60 552/1389/60 551/1388/60 -f 549/1386/61 551/1390/61 547/1384/61 -f 551/1390/61 545/1391/61 547/1384/61 -f 552/1392/62 550/1387/62 546/1393/62 -f 550/1387/62 548/1385/62 546/1393/62 -f 551/1394/49 552/1395/49 545/1396/49 -f 552/1395/49 546/1397/49 545/1396/49 -f 547/1398/50 548/1399/50 549/1400/50 -f 548/1399/50 550/1401/50 549/1400/50 -f 553/1402/45 554/1403/45 555/1404/45 -f 554/1403/45 556/1405/45 555/1404/45 -f 557/1406/46 558/1407/46 559/1408/46 -f 558/1407/46 560/1409/46 559/1408/46 -f 557/1406/47 559/1410/47 555/1404/47 -f 559/1410/47 553/1411/47 555/1404/47 -f 560/1412/48 558/1407/48 554/1413/48 -f 558/1407/48 556/1405/48 554/1413/48 -f 559/1414/49 560/1415/49 553/1416/49 -f 560/1415/49 554/1417/49 553/1416/49 -f 555/1418/50 556/1419/50 557/1420/50 -f 556/1419/50 558/1421/50 557/1420/50 -f 561/1422/67 562/1423/67 563/1424/67 -f 562/1423/67 564/1425/67 563/1424/67 -f 565/1426/68 566/1427/68 567/1428/68 -f 566/1427/68 568/1429/68 567/1428/68 -f 565/1426/69 567/1430/69 563/1424/69 -f 567/1430/69 561/1431/69 563/1424/69 -f 568/1432/70 566/1427/70 562/1433/70 -f 566/1427/70 564/1425/70 562/1433/70 -f 567/1434/49 568/1435/49 561/1436/49 -f 568/1435/49 562/1437/49 561/1436/49 -f 563/1438/50 564/1439/50 565/1440/50 -f 564/1439/50 566/1441/50 565/1440/50 -f 569/1442/63 570/1443/63 571/1444/63 -f 570/1443/63 572/1445/63 571/1444/63 -f 573/1446/64 574/1447/64 575/1448/64 -f 574/1447/64 576/1449/64 575/1448/64 -f 573/1446/65 575/1450/65 571/1444/65 -f 575/1450/65 569/1451/65 571/1444/65 -f 576/1452/66 574/1447/66 570/1453/66 -f 574/1447/66 572/1445/66 570/1453/66 -f 575/1454/49 576/1455/49 569/1456/49 -f 576/1455/49 570/1457/49 569/1456/49 -f 571/1458/50 572/1459/50 573/1460/50 -f 572/1459/50 574/1461/50 573/1460/50 -f 577/1462/59 578/1463/59 579/1464/59 -f 578/1463/59 580/1465/59 579/1464/59 -f 581/1466/60 582/1467/60 583/1468/60 -f 582/1467/60 584/1469/60 583/1468/60 -f 581/1466/61 583/1470/61 579/1464/61 -f 583/1470/61 577/1471/61 579/1464/61 -f 584/1472/62 582/1467/62 578/1473/62 -f 582/1467/62 580/1465/62 578/1473/62 -f 583/1474/49 584/1475/49 577/1476/49 -f 584/1475/49 578/1477/49 577/1476/49 -f 579/1478/50 580/1479/50 581/1480/50 -f 580/1479/50 582/1481/50 581/1480/50 -f 585/1482/45 586/1483/45 587/1484/45 -f 586/1483/45 588/1485/45 587/1484/45 -f 589/1486/46 590/1487/46 591/1488/46 -f 590/1487/46 592/1489/46 591/1488/46 -f 589/1486/47 591/1490/47 587/1484/47 -f 591/1490/47 585/1491/47 587/1484/47 -f 592/1492/48 590/1487/48 586/1493/48 -f 590/1487/48 588/1485/48 586/1493/48 -f 591/1494/49 592/1495/49 585/1496/49 -f 592/1495/49 586/1497/49 585/1496/49 -f 587/1498/50 588/1499/50 589/1500/50 -f 588/1499/50 590/1501/50 589/1500/50 -f 593/1502/67 594/1503/67 595/1504/67 -f 594/1503/67 596/1505/67 595/1504/67 -f 597/1506/68 598/1507/68 599/1508/68 -f 598/1507/68 600/1509/68 599/1508/68 -f 597/1506/69 599/1510/69 595/1504/69 -f 599/1510/69 593/1511/69 595/1504/69 -f 600/1512/70 598/1507/70 594/1513/70 -f 598/1507/70 596/1505/70 594/1513/70 -f 599/1514/49 600/1515/49 593/1516/49 -f 600/1515/49 594/1517/49 593/1516/49 -f 595/1518/50 596/1519/50 597/1520/50 -f 596/1519/50 598/1521/50 597/1520/50 -f 601/1522/63 602/1523/63 603/1524/63 -f 602/1523/63 604/1525/63 603/1524/63 -f 605/1526/64 606/1527/64 607/1528/64 -f 606/1527/64 608/1529/64 607/1528/64 -f 605/1526/65 607/1530/65 603/1524/65 -f 607/1530/65 601/1531/65 603/1524/65 -f 608/1532/66 606/1527/66 602/1533/66 -f 606/1527/66 604/1525/66 602/1533/66 -f 607/1534/49 608/1535/49 601/1536/49 -f 608/1535/49 602/1537/49 601/1536/49 -f 603/1538/50 604/1539/50 605/1540/50 -f 604/1539/50 606/1541/50 605/1540/50 -f 609/1542/59 610/1543/59 611/1544/59 -f 610/1543/59 612/1545/59 611/1544/59 -f 613/1546/60 614/1547/60 615/1548/60 -f 614/1547/60 616/1549/60 615/1548/60 -f 613/1546/61 615/1550/61 611/1544/61 -f 615/1550/61 609/1551/61 611/1544/61 -f 616/1552/62 614/1547/62 610/1553/62 -f 614/1547/62 612/1545/62 610/1553/62 -f 615/1554/49 616/1555/49 609/1556/49 -f 616/1555/49 610/1557/49 609/1556/49 -f 611/1558/50 612/1559/50 613/1560/50 -f 612/1559/50 614/1561/50 613/1560/50 -f 617/1562/63 618/1563/63 619/1564/63 -f 618/1563/63 620/1565/63 619/1564/63 -f 621/1566/64 622/1567/64 623/1568/64 -f 622/1567/64 624/1569/64 623/1568/64 -f 621/1566/65 623/1570/65 619/1564/65 -f 623/1570/65 617/1571/65 619/1564/65 -f 624/1572/66 622/1567/66 618/1573/66 -f 622/1567/66 620/1565/66 618/1573/66 -f 623/1574/49 624/1575/49 617/1576/49 -f 624/1575/49 618/1577/49 617/1576/49 -f 619/1578/50 620/1579/50 621/1580/50 -f 620/1579/50 622/1581/50 621/1580/50 -f 625/1582/67 626/1583/67 627/1584/67 -f 626/1583/67 628/1585/67 627/1584/67 -f 629/1586/68 630/1587/68 631/1588/68 -f 630/1587/68 632/1589/68 631/1588/68 -f 629/1586/69 631/1590/69 627/1584/69 -f 631/1590/69 625/1591/69 627/1584/69 -f 632/1592/70 630/1587/70 626/1593/70 -f 630/1587/70 628/1585/70 626/1593/70 -f 631/1594/49 632/1595/49 625/1596/49 -f 632/1595/49 626/1597/49 625/1596/49 -f 627/1598/50 628/1599/50 629/1600/50 -f 628/1599/50 630/1601/50 629/1600/50 -f 633/1602/45 634/1603/45 635/1604/45 -f 634/1603/45 636/1605/45 635/1604/45 -f 637/1606/46 638/1607/46 639/1608/46 -f 638/1607/46 640/1609/46 639/1608/46 -f 637/1606/47 639/1610/47 635/1604/47 -f 639/1610/47 633/1611/47 635/1604/47 -f 640/1612/48 638/1607/48 634/1613/48 -f 638/1607/48 636/1605/48 634/1613/48 -f 639/1614/49 640/1615/49 633/1616/49 -f 640/1615/49 634/1617/49 633/1616/49 -f 635/1618/50 636/1619/50 637/1620/50 -f 636/1619/50 638/1621/50 637/1620/50 -f 641/1622/59 642/1623/59 643/1624/59 -f 642/1623/59 644/1625/59 643/1624/59 -f 645/1626/60 646/1627/60 647/1628/60 -f 646/1627/60 648/1629/60 647/1628/60 -f 645/1626/61 647/1630/61 643/1624/61 -f 647/1630/61 641/1631/61 643/1624/61 -f 648/1632/62 646/1627/62 642/1633/62 -f 646/1627/62 644/1625/62 642/1633/62 -f 647/1634/49 648/1635/49 641/1636/49 -f 648/1635/49 642/1637/49 641/1636/49 -f 643/1638/50 644/1639/50 645/1640/50 -f 644/1639/50 646/1641/50 645/1640/50 -f 649/1642/45 650/1643/45 651/1644/45 -f 650/1643/45 652/1645/45 651/1644/45 -f 653/1646/46 654/1647/46 655/1648/46 -f 654/1647/46 656/1649/46 655/1648/46 -f 653/1646/47 655/1650/47 651/1644/47 -f 655/1650/47 649/1651/47 651/1644/47 -f 656/1652/48 654/1647/48 650/1653/48 -f 654/1647/48 652/1645/48 650/1653/48 -f 655/1654/49 656/1655/49 649/1656/49 -f 656/1655/49 650/1657/49 649/1656/49 -f 651/1658/50 652/1659/50 653/1660/50 -f 652/1659/50 654/1661/50 653/1660/50 -f 657/1662/45 658/1663/45 659/1664/45 -f 658/1663/45 660/1665/45 659/1664/45 -f 661/1666/46 662/1667/46 663/1668/46 -f 662/1667/46 664/1669/46 663/1668/46 -f 661/1666/51 663/1670/51 659/1664/51 -f 663/1670/51 657/1671/51 659/1664/51 -f 664/1672/52 662/1667/52 658/1673/52 -f 662/1667/52 660/1665/52 658/1673/52 -f 663/1674/53 664/1675/53 657/1676/53 -f 664/1675/53 658/1677/53 657/1676/53 -f 659/1678/54 660/1679/54 661/1680/54 -f 660/1679/54 662/1681/54 661/1680/54 -f 665/1682/45 666/1683/45 667/1684/45 -f 666/1683/45 668/1685/45 667/1684/45 -f 669/1686/46 670/1687/46 671/1688/46 -f 670/1687/46 672/1689/46 671/1688/46 -f 669/1686/71 671/1690/71 667/1684/71 -f 671/1690/71 665/1691/71 667/1684/71 -f 672/1692/72 670/1687/72 666/1693/72 -f 670/1687/72 668/1685/72 666/1693/72 -f 671/1694/73 672/1695/73 665/1696/73 -f 672/1695/73 666/1697/73 665/1696/73 -f 667/1698/74 668/1699/74 669/1700/74 -f 668/1699/74 670/1701/74 669/1700/74 -f 673/1702/45 674/1703/45 675/1704/45 -f 674/1703/45 676/1705/45 675/1704/45 -f 677/1706/46 678/1707/46 679/1708/46 -f 678/1707/46 680/1709/46 679/1708/46 -f 677/1706/47 679/1710/47 675/1704/47 -f 679/1710/47 673/1711/47 675/1704/47 -f 680/1712/48 678/1707/48 674/1713/48 -f 678/1707/48 676/1705/48 674/1713/48 -f 679/1714/49 680/1715/49 673/1716/49 -f 680/1715/49 674/1717/49 673/1716/49 -f 675/1718/50 676/1719/50 677/1720/50 -f 676/1719/50 678/1721/50 677/1720/50 -f 681/1722/45 682/1723/45 683/1724/45 -f 682/1723/45 684/1725/45 683/1724/45 -f 685/1726/46 686/1727/46 687/1728/46 -f 686/1727/46 688/1729/46 687/1728/46 -f 685/1726/47 687/1730/47 683/1724/47 -f 687/1730/47 681/1731/47 683/1724/47 -f 688/1732/48 686/1727/48 682/1733/48 -f 686/1727/48 684/1725/48 682/1733/48 -f 687/1734/49 688/1735/49 681/1736/49 -f 688/1735/49 682/1737/49 681/1736/49 -f 683/1738/50 684/1739/50 685/1740/50 -f 684/1739/50 686/1741/50 685/1740/50 -f 689/1742/45 690/1743/45 691/1744/45 -f 690/1743/45 692/1745/45 691/1744/45 -f 693/1746/46 694/1747/46 695/1748/46 -f 694/1747/46 696/1749/46 695/1748/46 -f 693/1746/51 695/1750/51 691/1744/51 -f 695/1750/51 689/1751/51 691/1744/51 -f 696/1752/52 694/1747/52 690/1753/52 -f 694/1747/52 692/1745/52 690/1753/52 -f 695/1754/53 696/1755/53 689/1756/53 -f 696/1755/53 690/1757/53 689/1756/53 -f 691/1758/54 692/1759/54 693/1760/54 -f 692/1759/54 694/1761/54 693/1760/54 -f 697/1762/59 698/1763/59 699/1764/59 -f 698/1763/59 700/1765/59 699/1764/59 -f 701/1766/60 702/1767/60 703/1768/60 -f 702/1767/60 704/1769/60 703/1768/60 -f 701/1766/61 703/1770/61 699/1764/61 -f 703/1770/61 697/1771/61 699/1764/61 -f 704/1772/62 702/1767/62 698/1773/62 -f 702/1767/62 700/1765/62 698/1773/62 -f 703/1774/49 704/1775/49 697/1776/49 -f 704/1775/49 698/1777/49 697/1776/49 -f 699/1778/50 700/1779/50 701/1780/50 -f 700/1779/50 702/1781/50 701/1780/50 -f 705/1782/67 706/1783/67 707/1784/67 -f 706/1783/67 708/1785/67 707/1784/67 -f 709/1786/68 710/1787/68 711/1788/68 -f 710/1787/68 712/1789/68 711/1788/68 -f 709/1786/69 711/1790/69 707/1784/69 -f 711/1790/69 705/1791/69 707/1784/69 -f 712/1792/70 710/1787/70 706/1793/70 -f 710/1787/70 708/1785/70 706/1793/70 -f 711/1794/49 712/1795/49 705/1796/49 -f 712/1795/49 706/1797/49 705/1796/49 -f 707/1798/50 708/1799/50 709/1800/50 -f 708/1799/50 710/1801/50 709/1800/50 -f 713/1802/67 714/1803/67 715/1804/67 -f 714/1803/67 716/1805/67 715/1804/67 -f 717/1806/68 718/1807/68 719/1808/68 -f 718/1807/68 720/1809/68 719/1808/68 -f 717/1806/69 719/1810/69 715/1804/69 -f 719/1810/69 713/1811/69 715/1804/69 -f 720/1812/70 718/1807/70 714/1813/70 -f 718/1807/70 716/1805/70 714/1813/70 -f 719/1814/49 720/1815/49 713/1816/49 -f 720/1815/49 714/1817/49 713/1816/49 -f 715/1818/50 716/1819/50 717/1820/50 -f 716/1819/50 718/1821/50 717/1820/50 -f 721/1822/59 722/1823/59 723/1824/59 -f 722/1823/59 724/1825/59 723/1824/59 -f 725/1826/60 726/1827/60 727/1828/60 -f 726/1827/60 728/1829/60 727/1828/60 -f 725/1826/61 727/1830/61 723/1824/61 -f 727/1830/61 721/1831/61 723/1824/61 -f 728/1832/62 726/1827/62 722/1833/62 -f 726/1827/62 724/1825/62 722/1833/62 -f 727/1834/49 728/1835/49 721/1836/49 -f 728/1835/49 722/1837/49 721/1836/49 -f 723/1838/50 724/1839/50 725/1840/50 -f 724/1839/50 726/1841/50 725/1840/50 -f 729/1842/45 730/1843/45 731/1844/45 -f 730/1843/45 732/1845/45 731/1844/45 -f 733/1846/46 734/1847/46 735/1848/46 -f 734/1847/46 736/1849/46 735/1848/46 -f 733/1846/47 735/1850/47 731/1844/47 -f 735/1850/47 729/1851/47 731/1844/47 -f 736/1852/48 734/1847/48 730/1853/48 -f 734/1847/48 732/1845/48 730/1853/48 -f 735/1854/49 736/1855/49 729/1856/49 -f 736/1855/49 730/1857/49 729/1856/49 -f 731/1858/50 732/1859/50 733/1860/50 -f 732/1859/50 734/1861/50 733/1860/50 +f 229/346/74 231/347/74 223/348/74 +f 205/349/74 216/350/74 204/351/74 +f 203/352/74 216/353/74 215/354/74 +f 202/355/74 215/356/74 214/357/74 +f 202/355/74 213/358/74 201/359/74 +f 200/360/74 213/361/74 212/362/74 +f 200/360/74 211/363/74 199/364/74 +f 210/365/74 211/366/74 222/367/74 +f 210/365/74 221/368/74 209/369/74 +f 208/370/74 221/371/74 220/372/74 +f 208/370/74 219/373/74 207/374/74 +f 207/374/74 218/375/74 206/376/74 +f 205/377/74 218/378/74 217/379/74 +f 245/380/75 253/381/75 252/382/75 +f 246/383/75 247/384/75 253/381/75 +f 235/385/75 248/386/75 247/384/75 +f 236/387/75 249/388/75 248/386/75 +f 238/389/75 249/388/75 237/390/75 +f 240/391/75 298/392/75 239/393/75 +f 244/394/75 252/382/75 251/395/75 +f 260/396/74 271/397/74 259/398/74 +f 254/399/74 272/400/74 260/396/74 +f 255/401/74 261/402/74 254/399/74 +f 256/403/74 262/404/74 255/401/74 +f 257/405/74 263/406/74 256/403/74 +f 250/407/75 239/393/75 297/408/75 +f 303/409/75 243/410/75 251/395/75 +f 242/411/75 302/412/75 301/413/75 +f 241/414/75 301/413/75 300/415/75 +f 241/414/75 299/416/75 240/391/75 +f 259/398/74 270/417/74 258/418/74 +f 304/419/74 265/420/74 257/405/74 +f 258/418/74 270/417/74 269/421/74 +f 268/422/74 309/423/74 269/421/74 +f 267/424/74 308/425/74 268/422/74 +f 306/426/74 267/424/74 266/427/74 +f 305/428/74 266/427/74 265/420/74 +f 385/429/75 381/430/75 377/431/75 +f 373/432/75 369/433/75 365/434/75 +f 194/435/74 283/436/74 195/437/74 +f 193/438/74 284/439/74 194/435/74 +f 192/440/74 273/441/74 193/438/74 +f 191/442/74 274/443/74 192/440/74 +f 190/444/74 275/445/74 191/442/74 +f 195/437/74 282/446/74 196/447/74 +f 315/448/74 282/446/74 324/449/74 +f 276/450/74 314/451/74 318/452/74 +f 313/453/74 190/444/74 189/454/74 +f 188/455/74 313/453/74 189/454/74 +f 187/456/74 312/457/74 188/455/74 +f 198/458/74 311/459/74 187/456/74 +f 197/460/74 317/461/74 198/458/74 +f 196/447/74 316/462/74 197/460/74 +f 323/463/74 282/446/74 281/464/74 +f 280/465/74 323/463/74 281/464/74 +f 279/466/74 322/467/74 280/465/74 +f 320/468/74 279/466/74 278/469/74 +f 319/470/74 278/469/74 277/471/74 +f 318/452/74 277/471/74 276/450/74 +f 346/472/75 351/473/75 345/474/75 +f 351/473/75 344/475/75 345/474/75 +f 344/475/75 353/476/75 343/477/75 +f 353/476/75 342/478/75 343/477/75 +f 361/479/75 346/472/75 347/480/75 +f 360/481/75 347/480/75 348/482/75 +f 360/481/75 330/483/75 333/484/75 +f 328/485/75 354/486/75 332/487/75 +f 341/488/75 328/485/75 327/489/75 +f 340/490/75 327/489/75 325/491/75 +f 339/492/75 325/491/75 326/493/75 +f 331/494/75 339/492/75 326/493/75 +f 349/495/75 331/494/75 329/496/75 +f 330/483/75 349/495/75 329/496/75 +f 359/497/75 333/484/75 338/498/75 +f 358/499/75 338/498/75 337/500/75 +f 336/501/75 358/499/75 337/500/75 +f 356/502/75 336/501/75 335/503/75 +f 334/504/75 356/502/75 335/503/75 +f 332/487/75 355/505/75 334/504/75 +f 392/506/74 387/507/74 389/508/74 +f 399/509/76 396/510/76 401/511/76 +f 408/512/74 403/513/74 405/514/74 +f 416/515/77 414/516/77 417/517/77 +f 424/518/77 422/519/77 420/520/77 +f 421/521/76 423/522/76 419/523/76 +f 429/524/76 423/522/76 425/525/76 +f 424/518/77 430/526/77 426/527/77 +f 402/528/76 445/529/76 398/530/76 +f 418/531/77 446/532/77 448/533/77 +f 392/534/77 389/535/77 395/536/77 +f 443/537/78 450/538/78 444/539/78 +f 444/540/77 450/538/77 400/541/77 +f 449/542/76 412/543/76 410/544/76 +f 392/534/79 449/542/79 407/545/79 +f 415/546/76 449/542/76 443/547/76 +f 451/548/74 459/549/74 454/550/74 +f 476/551/77 480/552/77 478/553/77 +f 473/554/76 475/555/76 471/556/76 +f 472/557/77 478/553/77 474/558/77 +f 477/559/76 479/560/76 475/555/76 +f 223/348/74 224/561/74 227/562/74 +f 224/561/74 225/563/74 227/562/74 +f 225/563/74 226/564/74 227/562/74 +f 227/562/74 228/565/74 229/346/74 +f 229/346/74 230/566/74 231/347/74 +f 231/347/74 232/567/74 233/568/74 +f 233/568/74 234/569/74 231/347/74 +f 234/569/74 223/348/74 231/347/74 +f 227/562/74 229/346/74 223/348/74 +f 205/349/74 217/570/74 216/350/74 +f 203/352/74 204/351/74 216/353/74 +f 202/355/74 203/352/74 215/356/74 +f 202/355/74 214/571/74 213/358/74 +f 200/360/74 201/359/74 213/361/74 +f 200/360/74 212/572/74 211/363/74 +f 210/365/74 199/364/74 211/366/74 +f 210/365/74 222/573/74 221/368/74 +f 208/370/74 209/369/74 221/371/74 +f 208/370/74 220/574/74 219/373/74 +f 207/374/74 219/575/74 218/375/74 +f 205/377/74 206/376/74 218/378/74 +f 245/380/75 246/383/75 253/381/75 +f 246/383/75 235/385/75 247/384/75 +f 235/385/75 236/387/75 248/386/75 +f 236/387/75 237/390/75 249/388/75 +f 238/389/75 250/407/75 249/388/75 +f 240/391/75 299/416/75 298/392/75 +f 244/394/75 245/380/75 252/382/75 +f 260/396/74 272/400/74 271/397/74 +f 254/399/74 261/402/74 272/400/74 +f 255/401/74 262/404/74 261/402/74 +f 256/403/74 263/406/74 262/404/74 +f 257/405/74 264/576/74 263/406/74 +f 238/389/75 239/393/75 250/407/75 +f 239/393/75 298/392/75 297/408/75 +f 302/412/75 243/410/75 303/409/75 +f 243/410/75 244/394/75 251/395/75 +f 242/411/75 243/410/75 302/412/75 +f 241/414/75 242/411/75 301/413/75 +f 241/414/75 300/415/75 299/416/75 +f 259/398/74 271/397/74 270/417/74 +f 305/428/74 265/420/74 304/419/74 +f 265/420/74 264/576/74 257/405/74 +f 309/423/74 310/577/74 269/421/74 +f 310/577/74 258/418/74 269/421/74 +f 268/422/74 308/425/74 309/423/74 +f 267/424/74 307/578/74 308/425/74 +f 306/426/74 307/578/74 267/424/74 +f 305/428/74 306/426/74 266/427/74 +f 377/431/75 376/579/75 375/580/75 +f 375/580/75 386/581/75 377/431/75 +f 386/581/75 385/429/75 377/431/75 +f 385/429/75 384/582/75 381/430/75 +f 384/582/75 383/583/75 381/430/75 +f 383/583/75 382/584/75 381/430/75 +f 381/430/75 380/585/75 379/586/75 +f 379/586/75 378/587/75 381/430/75 +f 378/587/75 377/431/75 381/430/75 +f 365/434/75 364/588/75 363/589/75 +f 363/589/75 374/590/75 365/434/75 +f 374/590/75 373/432/75 365/434/75 +f 373/432/75 372/591/75 369/433/75 +f 372/591/75 371/592/75 369/433/75 +f 371/592/75 370/593/75 369/433/75 +f 369/433/75 368/594/75 367/595/75 +f 367/595/75 366/596/75 369/433/75 +f 366/596/75 365/434/75 369/433/75 +f 194/435/74 284/439/74 283/436/74 +f 193/438/74 273/441/74 284/439/74 +f 192/440/74 274/443/74 273/441/74 +f 191/442/74 275/445/74 274/443/74 +f 190/444/74 276/450/74 275/445/74 +f 195/437/74 283/436/74 282/446/74 +f 315/448/74 196/447/74 282/446/74 +f 276/450/74 190/444/74 314/451/74 +f 313/453/74 314/451/74 190/444/74 +f 188/455/74 312/457/74 313/453/74 +f 187/456/74 311/459/74 312/457/74 +f 198/458/74 317/461/74 311/459/74 +f 197/460/74 316/462/74 317/461/74 +f 196/447/74 315/448/74 316/462/74 +f 323/463/74 324/449/74 282/446/74 +f 280/465/74 322/467/74 323/463/74 +f 279/466/74 321/597/74 322/467/74 +f 320/468/74 321/597/74 279/466/74 +f 319/470/74 320/468/74 278/469/74 +f 318/452/74 319/470/74 277/471/74 +f 346/472/75 362/598/75 351/473/75 +f 351/473/75 352/599/75 344/475/75 +f 344/475/75 352/599/75 353/476/75 +f 353/476/75 354/486/75 342/478/75 +f 361/479/75 362/598/75 346/472/75 +f 360/481/75 361/479/75 347/480/75 +f 360/481/75 348/482/75 330/483/75 +f 328/485/75 342/478/75 354/486/75 +f 341/488/75 342/478/75 328/485/75 +f 340/490/75 341/488/75 327/489/75 +f 339/492/75 340/490/75 325/491/75 +f 331/494/75 350/600/75 339/492/75 +f 349/495/75 350/600/75 331/494/75 +f 330/483/75 348/482/75 349/495/75 +f 359/497/75 360/481/75 333/484/75 +f 358/499/75 359/497/75 338/498/75 +f 336/501/75 357/601/75 358/499/75 +f 356/502/75 357/601/75 336/501/75 +f 334/504/75 355/505/75 356/502/75 +f 332/487/75 354/486/75 355/505/75 +f 392/506/74 391/602/74 387/507/74 +f 388/603/76 387/507/76 394/604/76 +f 387/507/76 391/602/76 394/604/76 +f 391/602/76 393/605/76 394/604/76 +f 393/605/76 401/511/76 396/510/76 +f 394/604/76 393/605/76 396/510/76 +f 401/511/76 402/528/76 398/530/76 +f 398/530/76 399/509/76 401/511/76 +f 408/512/74 407/606/74 403/513/74 +f 408/512/77 405/514/77 411/607/77 +f 405/514/77 406/608/77 411/607/77 +f 411/607/77 413/609/77 409/610/77 +f 413/609/77 416/515/77 417/517/77 +f 417/517/77 409/610/77 413/609/77 +f 409/610/77 408/512/77 411/607/77 +f 414/516/77 418/531/77 417/517/77 +f 424/518/77 426/527/77 422/519/77 +f 421/521/76 425/525/76 423/522/76 +f 429/524/76 427/611/76 423/522/76 +f 424/518/77 428/612/77 430/526/77 +f 402/528/76 447/613/76 445/529/76 +f 418/531/77 414/516/77 446/532/77 +f 389/535/77 390/614/77 395/536/77 +f 395/536/77 397/615/77 450/538/77 +f 397/615/77 400/541/77 450/538/77 +f 450/538/77 392/534/77 395/536/77 +f 443/537/78 449/542/78 450/538/78 +f 410/544/76 404/616/76 403/617/76 +f 403/617/76 407/545/76 410/544/76 +f 407/545/76 449/542/76 410/544/76 +f 449/542/76 415/546/76 412/543/76 +f 392/534/79 450/538/79 449/542/79 +f 454/550/74 453/618/74 463/619/74 +f 463/619/74 464/620/74 451/548/74 +f 451/548/74 452/621/74 459/549/74 +f 459/549/74 460/622/74 454/550/74 +f 454/550/74 463/619/74 451/548/74 +f 473/554/76 477/559/76 475/555/76 +f 472/557/77 476/551/77 478/553/77 +s 1 +f 193/623/80 204/351/81 192/624/81 +f 192/624/81 203/352/82 191/625/82 +f 191/625/82 202/355/77 190/626/77 +f 190/626/77 201/359/83 189/627/83 +f 189/627/83 200/360/84 188/628/84 +f 188/628/84 199/364/79 187/629/79 +f 187/629/79 210/365/85 198/630/85 +f 198/630/85 209/369/86 197/631/86 +f 197/631/86 208/370/76 196/632/76 +f 196/632/76 207/374/87 195/633/87 +f 195/633/87 206/376/88 194/634/88 +f 194/634/88 205/377/80 193/635/80 +f 214/636/76 225/637/87 213/638/87 +f 221/639/82 232/640/77 220/641/77 +f 218/642/84 229/643/79 217/644/79 +f 215/645/86 226/646/76 214/636/76 +f 222/647/81 233/648/82 221/639/82 +f 212/649/88 223/650/80 211/651/80 +f 219/652/83 230/653/84 218/642/84 +f 216/654/85 227/655/86 215/645/86 +f 211/651/80 234/656/81 222/647/81 +f 213/638/87 224/657/88 212/649/88 +f 220/641/77 231/658/83 219/652/83 +f 217/659/79 228/660/85 216/654/85 +f 253/661/85 259/662/86 252/663/86 +f 248/664/84 254/665/79 247/666/79 +f 247/666/79 260/667/85 253/661/85 +f 249/668/83 255/669/84 248/664/84 +f 250/670/89 256/671/83 249/668/83 +f 252/663/86 258/672/90 251/673/90 +f 303/674/91 258/672/90 310/675/91 +f 279/676/80 290/677/81 278/678/81 +f 278/678/81 289/679/82 277/680/82 +f 277/680/82 288/681/77 276/682/77 +f 276/682/77 287/683/83 275/684/83 +f 275/684/83 286/685/84 274/686/84 +f 274/686/84 285/687/79 273/688/79 +f 273/688/79 296/689/85 284/690/85 +f 284/690/85 295/691/86 283/692/86 +f 283/692/86 294/693/76 282/694/76 +f 282/694/76 293/695/87 281/696/87 +f 281/696/87 292/697/88 280/698/88 +f 280/698/88 291/699/80 279/700/80 +f 304/701/92 250/670/89 297/702/92 +f 301/703/88 307/704/80 300/705/80 +f 298/706/82 304/701/92 297/702/92 +f 302/707/87 308/708/88 301/703/88 +f 299/709/81 305/710/82 298/706/82 +f 303/674/91 309/711/87 302/707/87 +f 300/712/80 306/713/81 299/709/81 +f 319/714/82 335/715/81 320/716/81 +f 313/717/83 328/718/89 314/719/89 +f 320/716/81 336/720/80 321/721/80 +f 315/722/90 329/723/86 316/724/86 +f 321/725/80 337/726/88 322/727/88 +f 316/724/86 331/728/85 317/729/85 +f 322/727/88 338/730/87 323/731/87 +f 317/729/85 326/732/79 311/733/79 +f 323/731/87 333/734/91 324/735/91 +f 314/719/89 332/736/92 318/737/92 +f 324/735/91 330/738/90 315/722/90 +f 311/733/79 325/739/84 312/740/84 +f 318/737/92 334/741/82 319/714/82 +f 312/740/84 327/742/83 313/717/83 +f 374/743/81 339/744/80 350/745/81 +f 367/746/86 344/747/85 343/748/86 +f 382/749/84 359/750/83 358/751/84 +f 375/752/80 352/753/88 351/754/80 +f 368/755/85 345/756/79 344/747/85 +f 383/757/83 360/758/77 359/750/83 +f 376/759/88 353/760/87 352/753/88 +f 369/761/79 346/762/84 345/763/79 +f 384/764/77 361/765/82 360/758/77 +f 377/766/87 354/767/76 353/760/87 +f 370/768/84 347/769/83 346/762/84 +f 385/770/82 362/771/81 361/765/82 +f 363/772/80 340/773/88 339/744/80 +f 378/774/76 355/775/86 354/767/76 +f 371/776/83 348/777/77 347/769/83 +f 386/778/81 351/754/80 362/771/81 +f 364/779/88 341/780/87 340/773/88 +f 379/781/86 356/782/85 355/775/86 +f 372/783/77 349/784/82 348/777/77 +f 365/785/87 342/786/76 341/780/87 +f 380/787/85 357/788/79 356/782/85 +f 373/789/82 350/745/81 349/784/82 +f 366/790/76 343/748/86 342/786/76 +f 381/791/79 358/751/84 357/792/79 +f 390/793/93 387/507/79 388/603/93 +f 394/794/93 390/793/93 388/603/93 +f 396/795/94 395/796/93 394/794/93 +f 399/797/95 397/798/94 396/795/94 +f 407/799/96 393/800/97 392/801/96 +f 406/608/93 403/802/79 404/803/93 +f 410/804/93 406/608/93 404/803/93 +f 412/805/94 411/806/93 410/804/93 +f 415/807/95 413/808/94 412/805/94 +f 414/809/95 443/810/98 446/811/99 +f 401/812/100 441/813/101 402/814/100 +f 423/815/102 428/816/103 424/817/102 +f 426/527/104 429/818/105 425/525/104 +f 430/819/105 427/820/103 429/818/105 +f 435/821/80 423/522/102 424/822/102 +f 426/527/104 425/525/104 438/823/79 +f 442/824/101 417/825/100 418/826/100 +f 401/812/100 393/800/97 439/827/101 +f 399/797/95 444/828/98 400/829/95 +f 443/810/98 416/830/95 415/807/95 +f 443/810/98 445/831/99 446/811/99 +f 402/814/100 441/813/101 447/613/106 +f 445/831/99 444/828/98 398/832/95 +f 441/813/101 448/833/106 447/613/106 +f 448/833/106 442/824/101 418/826/100 +f 458/834/107 467/835/108 455/836/109 +f 454/550/110 455/836/109 453/618/111 +f 451/837/112 457/838/113 452/839/114 +f 458/834/107 460/840/115 462/841/116 +f 455/836/109 463/842/117 453/618/111 +f 459/843/118 462/841/116 460/840/115 +f 466/844/119 467/845/108 468/846/120 +f 452/839/114 461/847/121 459/843/118 +f 464/848/122 465/849/123 466/844/119 +f 451/850/112 466/844/119 456/851/124 +f 465/849/123 455/836/109 467/845/108 +f 467/835/108 469/852/125 468/853/120 +f 456/854/124 469/852/125 457/855/113 +f 468/846/120 456/851/124 466/844/119 +f 461/847/121 470/856/126 462/841/116 +f 458/834/107 462/841/116 470/856/126 +f 457/838/113 469/857/125 461/847/121 +f 474/558/74 477/559/127 473/554/74 +f 471/858/75 476/551/128 472/557/75 +f 478/553/127 479/560/129 477/559/127 +f 475/859/128 480/860/130 476/551/128 +f 440/861/101 409/862/97 417/825/100 +f 393/800/97 440/861/101 439/827/101 +f 409/862/97 407/799/96 408/863/96 +f 393/800/97 391/864/96 392/801/96 +f 193/623/80 205/349/80 204/351/81 +f 192/624/81 204/351/81 203/352/82 +f 191/625/82 203/352/82 202/355/77 +f 190/626/77 202/355/77 201/359/83 +f 189/627/83 201/359/83 200/360/84 +f 188/628/84 200/360/84 199/364/79 +f 187/629/79 199/364/79 210/365/85 +f 198/630/85 210/365/85 209/369/86 +f 197/631/86 209/369/86 208/370/76 +f 196/632/76 208/370/76 207/374/87 +f 195/633/87 207/374/87 206/376/88 +f 194/634/88 206/376/88 205/377/80 +f 214/636/76 226/646/76 225/637/87 +f 221/639/82 233/648/82 232/640/77 +f 218/642/84 230/653/84 229/643/79 +f 215/645/86 227/655/86 226/646/76 +f 222/647/81 234/656/81 233/648/82 +f 212/649/88 224/657/88 223/650/80 +f 219/652/83 231/658/83 230/653/84 +f 216/654/85 228/660/85 227/655/86 +f 211/651/80 223/650/80 234/656/81 +f 213/638/87 225/637/87 224/657/88 +f 220/641/77 232/640/77 231/658/83 +f 217/659/79 229/865/79 228/660/85 +f 253/661/85 260/667/85 259/662/86 +f 248/664/84 255/669/84 254/665/79 +f 247/666/79 254/665/79 260/667/85 +f 249/668/83 256/671/83 255/669/84 +f 250/670/89 257/866/89 256/671/83 +f 252/663/86 259/662/86 258/672/90 +f 303/674/91 251/673/90 258/672/90 +f 279/676/80 291/867/80 290/677/81 +f 278/678/81 290/677/81 289/679/82 +f 277/680/82 289/679/82 288/681/77 +f 276/682/77 288/681/77 287/683/83 +f 275/684/83 287/683/83 286/685/84 +f 274/686/84 286/685/84 285/687/79 +f 273/688/79 285/687/79 296/689/85 +f 284/690/85 296/689/85 295/691/86 +f 283/692/86 295/691/86 294/693/76 +f 282/694/76 294/693/76 293/695/87 +f 281/696/87 293/695/87 292/697/88 +f 280/698/88 292/697/88 291/699/80 +f 304/701/92 257/866/89 250/670/89 +f 301/703/88 308/708/88 307/704/80 +f 298/706/82 305/710/82 304/701/92 +f 302/707/87 309/711/87 308/708/88 +f 299/709/81 306/713/81 305/710/82 +f 303/674/91 310/675/91 309/711/87 +f 300/712/80 307/868/80 306/713/81 +f 319/714/82 334/741/82 335/715/81 +f 313/717/83 327/742/83 328/718/89 +f 320/716/81 335/715/81 336/720/80 +f 315/722/90 330/738/90 329/723/86 +f 321/725/80 336/869/80 337/726/88 +f 316/724/86 329/723/86 331/728/85 +f 322/727/88 337/726/88 338/730/87 +f 317/729/85 331/728/85 326/732/79 +f 323/731/87 338/730/87 333/734/91 +f 314/719/89 328/718/89 332/736/92 +f 324/735/91 333/734/91 330/738/90 +f 311/733/79 326/732/79 325/739/84 +f 318/737/92 332/736/92 334/741/82 +f 312/740/84 325/739/84 327/742/83 +f 374/743/81 363/772/80 339/744/80 +f 367/746/86 368/755/85 344/747/85 +f 382/749/84 383/757/83 359/750/83 +f 375/752/80 376/759/88 352/753/88 +f 368/755/85 369/870/79 345/756/79 +f 383/757/83 384/764/77 360/758/77 +f 376/759/88 377/766/87 353/760/87 +f 369/761/79 370/768/84 346/762/84 +f 384/764/77 385/770/82 361/765/82 +f 377/766/87 378/774/76 354/767/76 +f 370/768/84 371/776/83 347/769/83 +f 385/770/82 386/778/81 362/771/81 +f 363/772/80 364/779/88 340/773/88 +f 378/774/76 379/781/86 355/775/86 +f 371/776/83 372/783/77 348/777/77 +f 386/778/81 375/752/80 351/754/80 +f 364/779/88 365/785/87 341/780/87 +f 379/781/86 380/787/85 356/782/85 +f 372/783/77 373/789/82 349/784/82 +f 365/785/87 366/790/76 342/786/76 +f 380/787/85 381/871/79 357/788/79 +f 373/789/82 374/743/81 350/745/81 +f 366/790/76 367/746/86 343/748/86 +f 381/791/79 382/749/84 358/751/84 +f 390/793/93 389/872/79 387/507/79 +f 394/794/93 395/796/93 390/793/93 +f 396/795/94 397/798/94 395/796/93 +f 399/797/95 400/829/95 397/798/94 +f 407/799/96 409/862/97 393/800/97 +f 406/608/93 405/514/79 403/802/79 +f 410/804/93 411/806/93 406/608/93 +f 412/805/94 413/808/94 411/806/93 +f 415/807/95 416/830/95 413/808/94 +f 401/812/100 439/827/101 441/813/101 +f 423/815/102 427/820/103 428/816/103 +f 426/527/104 430/819/105 429/818/105 +f 430/819/105 428/816/103 427/820/103 +f 424/822/102 420/873/80 437/874/80 +f 420/873/80 433/875/80 437/874/80 +f 431/876/80 419/523/80 435/821/80 +f 419/523/80 423/522/102 435/821/80 +f 424/822/102 437/874/80 435/821/80 +f 425/525/104 421/521/79 436/877/79 +f 421/521/79 432/878/79 436/877/79 +f 434/879/79 422/519/79 438/823/79 +f 422/519/79 426/527/104 438/823/79 +f 425/525/104 436/877/79 438/823/79 +f 442/824/101 440/861/101 417/825/100 +f 399/797/95 398/832/95 444/828/98 +f 443/810/98 414/809/95 416/830/95 +f 443/810/98 444/828/98 445/831/99 +f 441/813/101 442/824/101 448/833/106 +f 458/834/107 470/880/126 467/835/108 +f 454/550/110 458/834/107 455/836/109 +f 451/837/112 456/881/124 457/838/113 +f 458/834/107 454/550/110 460/840/115 +f 455/836/109 465/849/123 463/842/117 +f 459/843/118 461/847/121 462/841/116 +f 466/844/119 465/849/123 467/845/108 +f 452/839/114 457/838/113 461/847/121 +f 464/848/122 463/842/117 465/849/123 +f 451/850/112 464/848/122 466/844/119 +f 467/835/108 470/880/126 469/852/125 +f 456/854/124 468/853/120 469/852/125 +f 461/847/121 469/857/125 470/856/126 +f 474/558/74 478/553/127 477/559/127 +f 471/858/75 475/859/128 476/551/128 +f 478/553/127 480/552/129 479/560/129 +f 475/859/128 479/882/130 480/860/130 +f 393/800/97 409/862/97 440/861/101 diff --git a/src/main/resources/assets/hbm/models/weapons/maresleg_mk2.obj b/src/main/resources/assets/hbm/models/weapons/maresleg_mk2.obj new file mode 100644 index 000000000..420992dda --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/maresleg_mk2.obj @@ -0,0 +1,2314 @@ +# Blender v2.79 (sub 0) OBJ File: 'maresleg.blend' +# www.blender.org +o Circle +v 0.000000 1.187500 8.000000 +v -0.093750 1.162380 8.000000 +v -0.162380 1.093750 8.000000 +v -0.187500 1.000000 8.000000 +v -0.162380 0.906250 8.000000 +v -0.093750 0.837620 8.000000 +v 0.000000 0.812500 8.000000 +v 0.093750 0.837620 8.000000 +v 0.162380 0.906250 8.000000 +v 0.187500 1.000000 8.000000 +v 0.162380 1.093750 8.000000 +v 0.093750 1.162380 8.000000 +v 0.000000 1.187500 -2.000000 +v -0.093750 1.162380 -2.000000 +v -0.162380 1.093750 -2.000000 +v -0.187500 1.000000 -2.000000 +v -0.162380 0.906250 -2.000000 +v -0.093750 0.837620 -2.000000 +v 0.000000 0.812500 -2.000000 +v 0.093750 0.837620 -2.000000 +v 0.162380 0.906250 -2.000000 +v 0.187500 1.000000 -2.000000 +v 0.162380 1.093750 -2.000000 +v 0.093750 1.162380 -2.000000 +v 0.000000 1.187500 3.750000 +v -0.093750 1.162380 3.750000 +v -0.162380 1.093750 3.750000 +v -0.187500 1.000000 3.750000 +v -0.162380 0.906250 3.750000 +v -0.093750 0.837620 3.750000 +v 0.000000 0.812500 3.750000 +v 0.093750 0.837620 3.750000 +v 0.162380 0.906250 3.750000 +v 0.187500 1.000000 3.750000 +v 0.162380 1.093750 3.750000 +v 0.093750 1.162380 3.750000 +v 0.000000 1.187500 3.750000 +v -0.093750 1.162380 3.750000 +v -0.162380 1.093750 3.750000 +v -0.187500 1.000000 3.750000 +v -0.162380 0.906250 3.750000 +v -0.093750 0.837620 3.750000 +v 0.000000 0.812500 3.750000 +v 0.093750 0.837620 3.750000 +v 0.162380 0.906250 3.750000 +v 0.187500 1.000000 3.750000 +v 0.162380 1.093750 3.750000 +v 0.093750 1.162380 3.750000 +v 0.000000 1.125000 8.000000 +v -0.062500 1.108253 8.000000 +v -0.108253 1.062500 8.000000 +v -0.125000 1.000000 8.000000 +v -0.108253 0.937500 8.000000 +v -0.062500 0.891747 8.000000 +v 0.000000 0.875000 8.000000 +v 0.062500 0.891747 8.000000 +v 0.108253 0.937500 8.000000 +v 0.125000 1.000000 8.000000 +v 0.108253 1.062500 8.000000 +v 0.062500 1.108253 8.000000 +v 0.000000 1.125000 7.000000 +v -0.062500 1.108253 7.000000 +v -0.108253 1.062500 7.000000 +v -0.125000 1.000000 7.000000 +v -0.108253 0.937500 7.000000 +v -0.062500 0.891747 7.000000 +v 0.000000 0.875000 7.000000 +v 0.062500 0.891747 7.000000 +v 0.108253 0.937500 7.000000 +v 0.125000 1.000000 7.000000 +v 0.108253 1.062500 7.000000 +v 0.062500 1.108253 7.000000 +v 0.000000 1.125000 3.750000 +v -0.062500 1.108253 3.750000 +v -0.108253 1.062500 3.750000 +v -0.125000 1.000000 3.750000 +v -0.108253 0.937500 3.750000 +v -0.062500 0.891747 3.750000 +v 0.000000 0.875000 3.750000 +v 0.062500 0.891747 3.750000 +v 0.108253 0.937500 3.750000 +v 0.125000 1.000000 3.750000 +v 0.108253 1.062500 3.750000 +v 0.062500 1.108253 3.750000 +v 0.000000 1.125000 2.750000 +v -0.062500 1.108253 2.750000 +v -0.108253 1.062500 2.750000 +v -0.125000 1.000000 2.750000 +v -0.108253 0.937500 2.750000 +v -0.062500 0.891747 2.750000 +v 0.000000 0.875000 2.750000 +v 0.062500 0.891747 2.750000 +v 0.108253 0.937500 2.750000 +v 0.125000 1.000000 2.750000 +v 0.108253 1.062500 2.750000 +v 0.062500 1.108253 2.750000 +v 0.000000 1.187500 3.000000 +v -0.093750 1.162380 3.000000 +v -0.162380 1.093750 3.000000 +v -0.187500 1.000000 3.000000 +v -0.162380 0.906250 3.000000 +v -0.093750 0.837620 3.000000 +v 0.000000 0.812500 3.000000 +v 0.093750 0.837620 3.000000 +v 0.162380 0.906250 3.000000 +v 0.187500 1.000000 3.000000 +v 0.162380 1.093750 3.000000 +v 0.093750 1.162380 3.000000 +v 0.000000 1.250000 3.000000 +v -0.125000 1.216506 3.000000 +v -0.216506 1.125000 3.000000 +v -0.250000 1.000000 3.000000 +v 0.250000 1.000000 3.000000 +v 0.216506 1.125000 3.000000 +v 0.125000 1.216506 3.000000 +v 0.000000 1.250000 3.250000 +v -0.125000 1.216506 3.250000 +v -0.216506 1.125000 3.250000 +v -0.250000 1.000000 3.250000 +v 0.250000 1.000000 3.250000 +v 0.216506 1.125000 3.250000 +v 0.125000 1.216506 3.250000 +v 0.000000 1.187500 3.250000 +v -0.093750 1.162380 3.250000 +v -0.162380 1.093750 3.250000 +v -0.187500 1.000000 3.250000 +v -0.162380 0.906250 3.250000 +v -0.093750 0.837620 3.250000 +v 0.000000 0.812500 3.250000 +v 0.093750 0.837620 3.250000 +v 0.162380 0.906250 3.250000 +v 0.187500 1.000000 3.250000 +v 0.162380 1.093750 3.250000 +v 0.093750 1.162380 3.250000 +v 0.000000 0.750000 -2.000000 +v -0.093750 0.724880 -2.000000 +v -0.162380 0.656250 -2.000000 +v -0.187500 0.562500 -2.000000 +v -0.162380 0.468750 -2.000000 +v -0.093750 0.400120 -2.000000 +v 0.000000 0.375000 -2.000000 +v 0.093750 0.400120 -2.000000 +v 0.162380 0.468750 -2.000000 +v 0.187500 0.562500 -2.000000 +v 0.162380 0.656250 -2.000000 +v 0.093750 0.724880 -2.000000 +v 0.000000 0.750000 3.000000 +v -0.093750 0.724880 3.000000 +v -0.162380 0.656250 3.000000 +v -0.187500 0.562500 3.000000 +v -0.162380 0.468750 3.000000 +v -0.093750 0.400120 3.000000 +v 0.000000 0.375000 3.000000 +v 0.093750 0.400120 3.000000 +v 0.162380 0.468750 3.000000 +v 0.187500 0.562500 3.000000 +v 0.162380 0.656250 3.000000 +v 0.093750 0.724880 3.000000 +v -0.250000 0.562500 3.000000 +v -0.216506 0.437500 3.000000 +v -0.125000 0.345994 3.000000 +v 0.000000 0.312500 3.000000 +v 0.125000 0.345994 3.000000 +v 0.216506 0.437500 3.000000 +v 0.250000 0.562500 3.000000 +v -0.250000 0.562500 3.250000 +v -0.216506 0.437500 3.250000 +v -0.125000 0.345994 3.250000 +v 0.000000 0.312500 3.250000 +v 0.125000 0.345994 3.250000 +v 0.216506 0.437500 3.250000 +v 0.250000 0.562500 3.250000 +v 0.000000 1.250000 -2.000000 +v -0.125000 1.216506 -2.000000 +v -0.216506 1.125000 -2.000000 +v -0.250000 1.000000 -2.000000 +v 0.250000 1.000000 -2.000000 +v 0.216506 1.125000 -2.000000 +v 0.125000 1.216506 -2.000000 +v -0.250000 0.562500 -2.000000 +v -0.216506 0.437500 -2.000000 +v -0.125000 0.345994 -2.000000 +v 0.000000 0.312500 -2.000000 +v 0.125000 0.345994 -2.000000 +v 0.216506 0.437500 -2.000000 +v 0.250000 0.562500 -2.000000 +v -0.125000 1.216506 -2.375000 +v 0.000000 1.250000 -2.375000 +v -0.216506 1.125000 -2.375000 +v -0.250000 1.000000 -2.375000 +v 0.216506 1.125000 -2.375000 +v 0.250000 1.000000 -2.375000 +v 0.125000 1.216506 -2.375000 +v -0.250000 0.562500 -2.375000 +v 0.250000 0.562500 -2.375000 +v -0.216506 0.437500 -2.375000 +v -0.125000 0.345994 -2.375000 +v 0.000000 0.312500 -2.375000 +v 0.125000 0.345994 -2.375000 +v 0.216506 0.437500 -2.375000 +v 0.000000 1.125000 -2.375000 +v -0.062500 1.108253 -2.375000 +v -0.108253 1.062500 -2.375000 +v -0.125000 1.000000 -2.375000 +v -0.108253 0.937500 -2.375000 +v -0.062500 0.891747 -2.375000 +v 0.000000 0.875000 -2.375000 +v 0.062500 0.891747 -2.375000 +v 0.108253 0.937500 -2.375000 +v 0.125000 1.000000 -2.375000 +v 0.108253 1.062500 -2.375000 +v 0.062500 1.108253 -2.375000 +v 0.000000 0.687500 -2.375000 +v -0.062500 0.670753 -2.375000 +v -0.108253 0.625000 -2.375000 +v -0.125000 0.562500 -2.375000 +v -0.108253 0.500000 -2.375000 +v -0.062500 0.454247 -2.375000 +v 0.000000 0.437500 -2.375000 +v 0.062500 0.454247 -2.375000 +v 0.108253 0.500000 -2.375000 +v 0.125000 0.562500 -2.375000 +v 0.108253 0.625000 -2.375000 +v 0.062500 0.670753 -2.375000 +v 0.000000 1.125000 -1.375000 +v -0.062500 1.108253 -1.375000 +v -0.108253 1.062500 -1.375000 +v -0.125000 1.000000 -1.375000 +v -0.108253 0.937500 -1.375000 +v -0.062500 0.891747 -1.375000 +v 0.000000 0.875000 -1.375000 +v 0.062500 0.891747 -1.375000 +v 0.108253 0.937500 -1.375000 +v 0.125000 1.000000 -1.375000 +v 0.108253 1.062500 -1.375000 +v 0.062500 1.108253 -1.375000 +v 0.000000 0.687500 -1.375000 +v -0.062500 0.670753 -1.375000 +v -0.108253 0.625000 -1.375000 +v -0.125000 0.562500 -1.375000 +v -0.108253 0.500000 -1.375000 +v -0.062500 0.454247 -1.375000 +v 0.000000 0.437500 -1.375000 +v 0.062500 0.454247 -1.375000 +v 0.108253 0.500000 -1.375000 +v 0.125000 0.562500 -1.375000 +v 0.108253 0.625000 -1.375000 +v 0.062500 0.670753 -1.375000 +v 0.312500 1.125000 -2.125000 +v 0.312500 1.125000 -2.500000 +v 0.187500 1.125000 -2.125000 +v 0.187500 1.125000 -2.500000 +v 0.312500 0.437500 -2.125000 +v 0.187500 0.437500 -2.125000 +v 0.312500 0.187500 -2.375000 +v 0.312500 1.000000 -2.625000 +v 0.187500 1.000000 -2.625000 +v 0.312500 1.000000 -3.000000 +v 0.187500 1.000000 -3.000000 +v 0.312500 0.562500 -3.750000 +v 0.312500 0.875000 -3.375000 +v 0.187500 0.875000 -3.375000 +v 0.312500 -0.062500 -2.875000 +v 0.312500 -0.062500 -3.875000 +v -0.187500 1.125000 -2.125000 +v -0.187500 1.125000 -2.500000 +v -0.312500 1.125000 -2.125000 +v -0.312500 1.125000 -2.500000 +v -0.187500 0.437500 -2.125000 +v -0.312500 0.437500 -2.125000 +v -0.312500 0.187500 -2.375000 +v -0.187500 1.000000 -2.625000 +v -0.312500 1.000000 -2.625000 +v -0.187500 1.000000 -3.000000 +v -0.312500 1.000000 -3.000000 +v -0.312500 0.562500 -3.750000 +v -0.187500 0.875000 -3.375000 +v -0.312500 0.875000 -3.375000 +v -0.312500 -0.062500 -2.875000 +v -0.312500 -0.062500 -3.875000 +v -0.187500 0.769607 -3.582107 +v -0.187500 0.445183 -3.798880 +v 0.250000 0.562500 -2.000000 +v -0.250000 0.562500 -2.000000 +v 0.250000 1.000000 -2.000000 +v -0.250000 1.000000 -2.000000 +v 0.250000 0.562500 1.625000 +v -0.250000 0.562500 1.625000 +v 0.250000 1.000000 1.625000 +v -0.250000 1.000000 1.625000 +v 0.250000 0.687500 1.750000 +v -0.250000 0.687500 1.750000 +v 0.250000 0.874000 1.750000 +v -0.250000 0.874000 1.750000 +v 0.187500 0.562500 -2.000000 +v 0.187500 1.000000 -2.000000 +v -0.187500 0.562500 -2.000000 +v -0.187500 1.000000 -2.000000 +v 0.187500 0.562500 -1.375000 +v 0.187500 1.000000 -1.375000 +v -0.187500 0.562500 -1.375000 +v -0.187500 1.000000 -1.375000 +v 0.187500 1.187500 -2.375000 +v -0.187500 1.187500 -2.375000 +v 0.187500 0.437500 -2.375000 +v -0.187500 0.437500 -2.375000 +v -0.187500 0.437500 -2.875000 +v 0.187500 0.437500 -2.875000 +v -0.187500 1.187500 -2.500000 +v 0.187500 1.187500 -2.500000 +v -0.187500 -0.062500 -2.875000 +v 0.187500 -0.062500 -2.875000 +v 0.187500 -0.062500 -2.875000 +v -0.187500 -0.062500 -2.875000 +v -0.187500 0.062500 -3.875000 +v 0.187500 -0.062500 -3.875000 +v -0.187500 -0.062500 -3.875000 +v -0.187500 0.562500 -3.750000 +v 0.187500 0.562500 -3.750000 +v 0.187500 0.062500 -3.875000 +v 0.187500 0.445183 -3.798880 +v 0.187500 0.769607 -3.582107 +v 0.187500 0.986380 -3.257684 +v 0.187500 1.062500 -2.875000 +v -0.187500 0.986380 -3.257684 +v -0.187500 1.062500 -2.875000 +v 0.187500 -0.062500 -3.875000 +v -0.187500 -0.062500 -3.875000 +v -0.187500 1.062500 -2.625000 +v 0.187500 1.062500 -2.625000 +v 0.312500 0.437500 -4.125000 +v -0.312500 0.437500 -4.125000 +v 0.312500 -0.187500 -4.125000 +v -0.312500 -0.187500 -4.125000 +v -0.187500 0.437500 -3.500000 +v 0.187500 0.437500 -3.500000 +v -0.250000 -0.250000 -4.125000 +v 0.250000 -0.250000 -4.125000 +v -0.250000 0.500000 -4.125000 +v 0.250000 0.500000 -4.125000 +v -0.250000 -0.250000 -5.625000 +v -0.250000 -1.000000 -5.250000 +v 0.250000 -1.000000 -5.250000 +v 0.250000 -0.250000 -5.625000 +v 0.375000 -0.125000 -4.125000 +v 0.375000 0.375000 -4.125000 +v 0.375000 -0.875000 -5.312500 +v 0.375000 -0.375000 -5.562500 +v -0.375000 0.375000 -4.125000 +v -0.375000 -0.125000 -4.125000 +v -0.375000 -0.375000 -5.562500 +v -0.375000 -0.875000 -5.312500 +v -0.250000 -0.500000 -5.750000 +v -0.250000 -1.000000 -5.500000 +v 0.250000 -1.000000 -5.500000 +v 0.250000 -0.500000 -5.750000 +v -0.375000 -0.375000 -5.562500 +v -0.375000 -0.625000 -5.437500 +v -0.375000 -1.375000 -8.000000 +v -0.375000 0.000000 -5.562500 +v -0.375000 -0.125000 -8.000000 +v 0.375000 -0.375000 -5.562500 +v 0.375000 -0.625000 -5.437500 +v 0.375000 -1.375000 -8.000000 +v 0.375000 0.000000 -5.562500 +v 0.375000 -0.125000 -8.000000 +v 0.250000 0.000000 -8.000000 +v -0.250000 0.000000 -8.000000 +v -0.250000 -1.500000 -8.000000 +v 0.250000 -1.500000 -8.000000 +v 0.250000 -0.750000 -5.375000 +v -0.250000 -0.750000 -5.375000 +v 0.250000 0.125000 -5.562500 +v -0.250000 0.125000 -5.562500 +v 0.125000 -0.062500 -3.750000 +v -0.125000 -0.062500 -3.750000 +v -0.125000 -0.062500 -3.625000 +v 0.125000 -0.062500 -3.625000 +v 0.125000 -0.812500 -4.875000 +v -0.125000 -0.812500 -4.875000 +v 0.125000 -1.062500 -4.875000 +v -0.125000 -1.062500 -4.875000 +v 0.125000 -1.187500 -4.750000 +v -0.125000 -1.187500 -4.750000 +v 0.125000 -1.187500 -4.500000 +v -0.125000 -1.187500 -4.500000 +v 0.125000 -0.687500 -3.750000 +v -0.125000 -0.687500 -3.750000 +v 0.125000 -0.437500 -3.750000 +v -0.125000 -0.437500 -3.750000 +v 0.125000 -0.437500 -3.250000 +v -0.125000 -0.437500 -3.250000 +v 0.125000 -0.187500 -3.000000 +v -0.125000 -0.187500 -3.000000 +v 0.125000 -0.062500 -3.000000 +v -0.125000 -0.062500 -3.000000 +v 0.125000 -0.187500 -3.062500 +v -0.125000 -0.187500 -3.062500 +v 0.125000 -0.062500 -3.062500 +v -0.125000 -0.062500 -3.062500 +v 0.125000 -0.375000 -3.625000 +v -0.125000 -0.375000 -3.625000 +v 0.125000 -0.375000 -3.250000 +v -0.125000 -0.375000 -3.250000 +v 0.125000 -0.250000 -3.812500 +v -0.125000 -0.250000 -3.812500 +v 0.125000 -1.125000 -4.750000 +v -0.125000 -1.125000 -4.750000 +v 0.125000 -1.125000 -4.500000 +v -0.125000 -1.125000 -4.500000 +v 0.125000 -0.812500 -4.812500 +v -0.125000 -0.812500 -4.812500 +v 0.125000 -1.062500 -4.812500 +v -0.125000 -1.062500 -4.812500 +v 0.125000 -0.750000 -3.937500 +v -0.125000 -0.750000 -3.937500 +v 0.125000 -0.500000 -3.937500 +v -0.125000 -0.500000 -3.937500 +v 0.125000 -0.437500 -4.250000 +v -0.125000 -0.437500 -4.250000 +v 0.125000 -0.437500 -4.000000 +v -0.125000 -0.437500 -4.000000 +v 0.062500 -0.062500 -3.562500 +v -0.062500 -0.062500 -3.562500 +v 0.062500 -0.062500 -3.500000 +v -0.062500 -0.062500 -3.500000 +v 0.062500 -0.187500 -3.562500 +v -0.062500 -0.187500 -3.562500 +v 0.062500 -0.187500 -3.500000 +v -0.062500 -0.187500 -3.500000 +v 0.062500 -0.312500 -3.437500 +v -0.062500 -0.312500 -3.437500 +v 0.000000 1.625000 -2.375000 +v -0.062500 1.608253 -2.375000 +v -0.108253 1.562500 -2.375000 +v -0.125000 1.500000 -2.375000 +v -0.108253 1.437500 -2.375000 +v -0.062500 1.391747 -2.375000 +v 0.000000 1.375000 -2.375000 +v 0.062500 1.391747 -2.375000 +v 0.108253 1.437500 -2.375000 +v 0.125000 1.500000 -2.375000 +v 0.108253 1.562500 -2.375000 +v 0.062500 1.608253 -2.375000 +v 0.000000 1.625000 -1.625000 +v -0.062500 1.608253 -1.625000 +v -0.108253 1.562500 -1.625000 +v -0.125000 1.500000 -1.625000 +v -0.108253 1.437500 -1.625000 +v -0.062500 1.391747 -1.625000 +v 0.000000 1.375000 -1.625000 +v 0.062500 1.391747 -1.625000 +v 0.108253 1.437500 -1.625000 +v 0.125000 1.500000 -1.625000 +v 0.108253 1.562500 -1.625000 +v 0.062500 1.608253 -1.625000 +v 0.000000 1.640625 -2.375000 +v -0.070312 1.621785 -2.375000 +v -0.121785 1.570312 -2.375000 +v -0.140625 1.500000 -2.375000 +v -0.121785 1.429688 -2.375000 +v -0.070312 1.378215 -2.375000 +v 0.000000 1.359375 -2.375000 +v 0.070312 1.378215 -2.375000 +v 0.121785 1.429688 -2.375000 +v 0.140625 1.500000 -2.375000 +v 0.121785 1.570312 -2.375000 +v 0.070312 1.621785 -2.375000 +v 0.000000 1.640625 -2.437500 +v -0.070312 1.621785 -2.437500 +v -0.121785 1.570312 -2.437500 +v -0.140625 1.500000 -2.437500 +v -0.121785 1.429688 -2.437500 +v -0.070312 1.378215 -2.437500 +v 0.000000 1.359375 -2.437500 +v 0.070312 1.378215 -2.437500 +v 0.121785 1.429688 -2.437500 +v 0.140625 1.500000 -2.437500 +v 0.121785 1.570312 -2.437500 +v 0.070312 1.621785 -2.437500 +vt 0.004098 0.224299 +vt 0.000000 0.205607 +vt 0.004098 0.205607 +vt 0.004098 -0.000000 +vt 0.000000 0.009346 +vt 0.000000 -0.000000 +vt 0.004098 0.037383 +vt 0.000000 0.018692 +vt 0.004098 0.018692 +vt 0.004098 0.056075 +vt 0.000000 0.037383 +vt 0.000000 0.065421 +vt 0.000000 0.056075 +vt 0.004098 0.093458 +vt 0.000000 0.074766 +vt 0.004098 0.074766 +vt 0.000000 0.102804 +vt 0.000000 0.093458 +vt 0.004098 0.130841 +vt 0.000000 0.112150 +vt 0.004098 0.112150 +vt 0.000000 0.140187 +vt 0.000000 0.130841 +vt 0.004098 0.168224 +vt 0.000000 0.149533 +vt 0.004098 0.149533 +vt 0.000000 0.177570 +vt 0.000000 0.168224 +vt 0.004098 0.186916 +vt 0.000000 0.196262 +vt 0.000000 0.186916 +vt 0.073770 0.224346 +vt 0.080851 0.233668 +vt 0.073770 0.261635 +vt 0.073770 0.336468 +vt 0.080862 0.345804 +vt 0.073770 0.373812 +vt 0.286885 0.224299 +vt 0.282787 0.205607 +vt 0.286885 0.205607 +vt 0.286885 0.186916 +vt 0.282787 0.196262 +vt 0.282787 0.186916 +vt 0.286885 0.168224 +vt 0.282787 0.177570 +vt 0.282787 0.168224 +vt 0.282787 0.149533 +vt 0.286885 0.149533 +vt 0.286885 0.130841 +vt 0.282787 0.140187 +vt 0.282787 0.130841 +vt 0.282787 0.112150 +vt 0.286885 0.112150 +vt 0.286885 0.093458 +vt 0.282787 0.102804 +vt 0.282787 0.093458 +vt 0.282787 0.074766 +vt 0.286885 0.074766 +vt 0.286885 0.056075 +vt 0.282787 0.065421 +vt 0.282787 0.056075 +vt 0.282787 0.037383 +vt 0.286885 0.037383 +vt 0.282787 0.018692 +vt 0.286885 0.018692 +vt 0.286885 0.000000 +vt 0.282787 0.009346 +vt 0.282787 -0.000000 +vt 0.571329 0.341081 +vt 0.573778 0.359421 +vt 0.567782 0.345750 +vt 0.575825 0.351334 +vt 0.581967 0.364425 +vt 0.581967 0.355087 +vt 0.590157 0.359421 +vt 0.588109 0.351334 +vt 0.596152 0.345750 +vt 0.594252 0.327074 +vt 0.592606 0.341081 +vt 0.588109 0.302814 +vt 0.596152 0.243035 +vt 0.592606 0.313068 +vt 0.569683 0.327074 +vt 0.565588 0.327074 +vt 0.557370 0.359421 +vt 0.559819 0.341081 +vt 0.563365 0.345750 +vt 0.549180 0.364425 +vt 0.555323 0.351334 +vt 0.540991 0.359421 +vt 0.549180 0.355087 +vt 0.534996 0.345750 +vt 0.543038 0.351334 +vt 0.532801 0.327074 +vt 0.538542 0.341081 +vt 0.598346 0.327074 +vt 0.598346 0.261711 +vt 0.565588 0.261711 +vt 0.571329 0.313068 +vt 0.575825 0.302814 +vt 0.567782 0.243035 +vt 0.573778 0.229364 +vt 0.581967 0.299061 +vt 0.581967 0.224360 +vt 0.590157 0.229364 +vt 0.561465 0.327074 +vt 0.565560 0.327074 +vt 0.532801 0.261711 +vt 0.538542 0.313068 +vt 0.559819 0.313068 +vt 0.555323 0.302814 +vt 0.563365 0.243035 +vt 0.549180 0.299061 +vt 0.557370 0.229364 +vt 0.540991 0.229364 +vt 0.543038 0.302814 +vt 0.534996 0.243035 +vt 0.476516 0.252326 +vt 0.483607 0.224321 +vt 0.490697 0.252326 +vt 0.476543 0.364441 +vt 0.483607 0.336542 +vt 0.490670 0.364441 +vt 0.620900 0.302820 +vt 0.625399 0.275706 +vt 0.625399 0.313079 +vt 0.614754 0.299064 +vt 0.620900 0.285965 +vt 0.608608 0.302820 +vt 0.614754 0.289721 +vt 0.604109 0.313079 +vt 0.608608 0.285965 +vt 0.602462 0.327095 +vt 0.604109 0.275706 +vt 0.627046 0.261690 +vt 0.627046 0.327095 +vt 0.631143 0.327095 +vt 0.631143 0.261690 +vt 0.602462 0.261690 +vt 0.598365 0.327095 +vt 0.598365 0.261690 +vt 0.600561 0.345781 +vt 0.604109 0.341110 +vt 0.608608 0.351370 +vt 0.614754 0.355125 +vt 0.606559 0.359461 +vt 0.620900 0.351370 +vt 0.614754 0.364468 +vt 0.625399 0.341110 +vt 0.622949 0.359461 +vt 0.628948 0.345781 +vt 0.628948 0.243004 +vt 0.625399 0.247675 +vt 0.620900 0.237416 +vt 0.614754 0.233660 +vt 0.622949 0.229324 +vt 0.606559 0.229324 +vt 0.608608 0.237416 +vt 0.600561 0.243004 +vt 0.604109 0.247675 +vt 0.643444 0.310911 +vt 0.647541 0.280377 +vt 0.647541 0.308408 +vt 0.651638 0.310911 +vt 0.654638 0.271034 +vt 0.654638 0.317751 +vt 0.655736 0.327095 +vt 0.640444 0.271034 +vt 0.640444 0.317751 +vt 0.639346 0.261690 +vt 0.639346 0.327095 +vt 0.631152 0.327095 +vt 0.631152 0.261690 +vt 0.663930 0.327095 +vt 0.655736 0.261690 +vt 0.663930 0.261690 +vt 0.654638 0.336438 +vt 0.661735 0.345781 +vt 0.651638 0.343278 +vt 0.655736 0.359461 +vt 0.647541 0.345781 +vt 0.647541 0.364468 +vt 0.639346 0.359461 +vt 0.640444 0.336438 +vt 0.633347 0.345781 +vt 0.640444 0.252347 +vt 0.633347 0.243004 +vt 0.643444 0.245507 +vt 0.639346 0.229324 +vt 0.647541 0.224317 +vt 0.651638 0.245507 +vt 0.655736 0.229324 +vt 0.661735 0.243004 +vt 0.654638 0.252347 +vt 0.713115 0.186916 +vt 0.721311 0.289720 +vt 0.713115 0.289720 +vt 0.803279 0.252336 +vt 0.778689 0.271028 +vt 0.770492 0.112150 +vt 0.721311 0.485981 +vt 0.713115 0.383178 +vt 0.721311 0.383178 +vt 0.803279 0.420561 +vt 0.827869 0.467290 +vt 0.770492 0.560748 +vt 0.975410 0.317757 +vt 0.909836 0.261682 +vt 0.975410 0.261682 +vt 0.028689 0.728972 +vt 0.266393 0.663551 +vt 0.266393 0.728972 +vt 0.266393 0.588785 +vt 0.028689 0.523364 +vt 0.266393 0.523364 +vt 0.020492 0.570093 +vt 0.028689 0.588785 +vt 0.020492 0.682243 +vt 0.028689 0.663551 +vt 0.852459 0.504673 +vt 0.877049 0.392523 +vt 0.877049 0.504673 +vt 0.975410 0.635514 +vt 1.000000 0.616822 +vt 1.000000 0.635514 +vt 0.975410 0.598131 +vt 1.000000 0.598131 +vt 0.852459 0.392523 +vt 0.877049 0.317757 +vt 0.836066 0.112150 +vt 0.852459 0.186916 +vt 0.827869 0.205607 +vt 0.836066 0.560748 +vt 0.852459 0.485981 +vt 0.852459 0.579439 +vt 0.852459 0.102804 +vt 0.852459 0.000000 +vt 0.885246 0.018692 +vt 0.959016 0.158879 +vt 0.942623 0.102804 +vt 0.959016 0.102804 +vt 0.959016 0.084112 +vt 0.934426 0.037383 +vt 0.942623 0.158879 +vt 0.909836 0.242991 +vt 0.885246 0.242991 +vt 0.852459 0.158879 +vt 0.885246 0.392523 +vt 0.909836 0.317757 +vt 0.909836 0.392523 +vt 0.934426 0.224299 +vt 0.959016 0.177570 +vt 0.893443 0.485981 +vt 0.909836 0.392523 +vt 0.877049 0.392523 +vt 0.893443 0.485981 +vt 0.885246 0.504673 +vt 0.934942 0.474589 +vt 0.956208 0.442187 +vt 0.970412 0.393687 +vt 0.266393 0.738318 +vt 0.274590 0.644860 +vt 0.315574 0.663551 +vt 0.803279 0.803738 +vt 0.721311 0.803738 +vt 0.803279 0.691589 +vt 0.520492 0.691589 +vt 0.520492 0.803738 +vt 0.495902 0.710280 +vt 0.545082 0.691589 +vt 0.553279 0.710280 +vt 0.336066 0.878505 +vt 0.344262 0.887850 +vt 0.336066 0.887850 +vt 0.344262 0.934579 +vt 0.336066 0.925234 +vt 0.344262 0.925234 +vt 0.368852 0.887850 +vt 0.393443 0.878505 +vt 0.401639 0.887850 +vt 0.393443 0.934579 +vt 0.368852 0.925234 +vt 0.401639 0.925234 +vt 0.364754 0.878505 +vt 0.364754 0.934579 +vt 0.241803 0.738318 +vt 0.258197 0.728972 +vt 0.241803 0.728972 +vt 0.258197 0.738318 +vt 0.241803 0.728972 +vt 0.258197 0.728972 +vt 0.262295 0.747664 +vt 0.266393 0.785047 +vt 0.266393 0.747664 +vt 0.262295 0.785047 +vt 0.266393 0.747664 +vt 0.266393 0.785047 +vt 0.262295 0.747664 +vt 0.204918 0.794393 +vt 0.192623 0.803738 +vt 0.204918 0.831776 +vt 0.204918 0.794393 +vt 0.192623 0.803738 +vt 0.204918 0.831776 +vt 0.192623 0.841121 +vt 0.196721 0.869159 +vt 0.209016 0.841121 +vt 0.209016 0.841121 +vt 0.196721 0.869159 +vt 0.225410 0.841121 +vt 0.192623 0.897196 +vt 0.225410 0.841121 +vt 0.168033 0.785047 +vt 0.172131 0.766355 +vt 0.172131 0.785047 +vt 0.180328 0.803738 +vt 0.184426 0.785047 +vt 0.184426 0.803738 +vt 0.168033 0.803738 +vt 0.172131 0.803738 +vt 0.180328 0.785047 +vt 0.180328 0.766355 +vt 0.778689 0.803764 +vt 0.785777 0.813097 +vt 0.778689 0.841096 +vt 0.762295 0.878505 +vt 0.766393 0.869159 +vt 0.766393 0.878505 +vt 0.762295 0.822430 +vt 0.766393 0.831776 +vt 0.762295 0.831776 +vt 0.762295 0.906542 +vt 0.766393 0.915888 +vt 0.762295 0.915888 +vt 0.766393 0.887850 +vt 0.762295 0.887850 +vt 0.762295 0.841121 +vt 0.766393 0.841121 +vt 0.762295 0.813084 +vt 0.766393 0.803738 +vt 0.766393 0.813084 +vt 0.762295 0.897196 +vt 0.766393 0.897196 +vt 0.766393 0.850467 +vt 0.762295 0.850467 +vt 0.762295 0.859813 +vt 0.762295 0.869159 +vt 0.766393 0.822430 +vt 0.766393 0.906542 +vt 0.766393 0.859813 +vt 0.787992 0.831765 +vt 0.795082 0.803760 +vt 0.802173 0.831765 +vt 0.000000 0.214953 +vt 0.000000 0.028037 +vt 0.000000 0.046729 +vt 0.000000 0.084112 +vt 0.000000 0.121495 +vt 0.000000 0.158879 +vt 0.069682 0.259137 +vt 0.066690 0.233668 +vt 0.066690 0.252313 +vt 0.065594 0.242991 +vt 0.069682 0.226844 +vt 0.077859 0.226844 +vt 0.081947 0.242991 +vt 0.080851 0.252313 +vt 0.077858 0.259137 +vt 0.069676 0.371311 +vt 0.066679 0.345804 +vt 0.066679 0.364476 +vt 0.065582 0.355140 +vt 0.069676 0.338970 +vt 0.077865 0.338970 +vt 0.081959 0.355140 +vt 0.080862 0.364476 +vt 0.077865 0.371311 +vt 0.282787 0.214953 +vt 0.282787 0.158879 +vt 0.282787 0.121495 +vt 0.282787 0.084112 +vt 0.282787 0.046729 +vt 0.282787 0.028037 +vt 0.536896 0.327074 +vt 0.565560 0.261711 +vt 0.549180 0.224360 +vt 0.487700 0.259160 +vt 0.483607 0.261661 +vt 0.479513 0.259160 +vt 0.475419 0.242991 +vt 0.476516 0.233656 +vt 0.479513 0.226822 +vt 0.487700 0.226822 +vt 0.490697 0.233656 +vt 0.491794 0.242991 +vt 0.487685 0.371248 +vt 0.483607 0.373740 +vt 0.479529 0.371248 +vt 0.475451 0.355141 +vt 0.476543 0.345842 +vt 0.479529 0.339034 +vt 0.487685 0.339034 +vt 0.490670 0.345842 +vt 0.491763 0.355141 +vt 0.614754 0.224317 +vt 0.643444 0.277874 +vt 0.651638 0.277874 +vt 0.643444 0.343278 +vt 0.647541 0.243004 +vt 0.721311 0.186916 +vt 0.745902 0.289720 +vt 0.754098 0.271028 +vt 0.737705 0.149533 +vt 0.713115 0.485981 +vt 0.754098 0.401869 +vt 0.745902 0.383178 +vt 0.778689 0.401869 +vt 0.737705 0.523364 +vt 0.020492 0.542056 +vt 0.020492 0.710280 +vt 0.975410 0.616822 +vt 0.852459 0.317757 +vt 0.852459 0.093458 +vt 0.877049 0.000000 +vt 0.909836 0.018692 +vt 0.877049 0.261682 +vt 0.852459 0.261682 +vt 0.885246 0.317757 +vt 0.877049 0.504673 +vt 0.885246 0.504673 +vt 0.909836 0.485981 +vt 0.909836 0.485981 +vt 0.970417 0.393693 +vt 0.975410 0.336449 +vt 0.909836 0.317757 +vt 0.975410 0.317757 +vt 0.975410 0.336449 +vt 0.956204 0.442175 +vt 0.934941 0.474575 +vt 0.315574 0.738318 +vt 0.307377 0.757009 +vt 0.274590 0.757009 +vt 0.266393 0.663551 +vt 0.307377 0.644860 +vt 0.713115 0.785047 +vt 0.713115 0.710280 +vt 0.721311 0.691589 +vt 0.811475 0.710280 +vt 0.811475 0.785047 +vt 0.504098 0.803738 +vt 0.495902 0.785047 +vt 0.504098 0.691589 +vt 0.553279 0.785047 +vt 0.545082 0.803738 +vt 0.344262 0.878505 +vt 0.336066 0.934579 +vt 0.368852 0.878505 +vt 0.368852 0.934579 +vt 0.348361 0.878505 +vt 0.348361 0.934579 +vt 0.258197 0.738318 +vt 0.241803 0.738318 +vt 0.262295 0.785047 +vt 0.192623 0.841121 +vt 0.184426 0.850467 +vt 0.184426 0.850467 +vt 0.192623 0.897196 +vt 0.184426 0.897196 +vt 0.184426 0.897196 +vt 0.774596 0.838595 +vt 0.771600 0.813097 +vt 0.771600 0.831763 +vt 0.770503 0.822430 +vt 0.774596 0.806265 +vt 0.782781 0.806265 +vt 0.786874 0.822430 +vt 0.785777 0.831763 +vt 0.782781 0.838595 +vt 0.762295 0.803738 +vt 0.799176 0.838599 +vt 0.795082 0.841100 +vt 0.790989 0.838599 +vt 0.786895 0.822430 +vt 0.787992 0.813095 +vt 0.790989 0.806261 +vt 0.799176 0.806261 +vt 0.802173 0.813095 +vt 0.803269 0.822430 +vt 0.282787 0.149533 +vt 0.282787 0.130841 +vt 0.282787 0.018692 +vt 0.282787 0.074766 +vt 0.282787 0.205607 +vt 0.282787 0.093458 +vt 0.282787 0.112150 +vt 0.282787 0.168224 +vt 0.282787 -0.000000 +vt 0.282787 0.056075 +vt 0.282787 0.037383 +vt 0.282787 0.186916 +vt 0.663934 0.224299 +vt 0.663934 0.205607 +vt 0.663934 0.186916 +vt 0.663934 0.168224 +vt 0.663934 0.149533 +vt 0.663934 0.130841 +vt 0.663934 0.112150 +vt 0.663934 0.093458 +vt 0.663934 0.074766 +vt 0.663934 0.056075 +vt 0.663934 0.037383 +vt 0.663934 0.018692 +vt 0.663934 0.000000 +vt -0.000000 0.252336 +vt 0.065574 0.261682 +vt -0.000000 0.261682 +vt -0.000000 0.299065 +vt 0.065574 0.308411 +vt -0.000000 0.308411 +vt -0.000000 0.327103 +vt 0.065574 0.336449 +vt -0.000000 0.336449 +vt -0.000000 0.242991 +vt 0.065574 0.252336 +vt -0.000000 0.289720 +vt 0.065574 0.299065 +vt -0.000000 0.271028 +vt 0.065574 0.280374 +vt -0.000000 0.280374 +vt -0.000000 0.317757 +vt 0.065574 0.327103 +vt -0.000000 0.233645 +vt 0.065574 0.242991 +vt 0.065574 0.289720 +vt 0.065574 0.271028 +vt 0.065574 0.317757 +vt -0.000000 0.224299 +vt 0.065574 0.233645 +vt -0.000000 0.364486 +vt 0.065574 0.373832 +vt -0.000000 0.373832 +vt -0.000000 0.411215 +vt 0.065574 0.420561 +vt -0.000000 0.420561 +vt -0.000000 0.439252 +vt 0.065574 0.448598 +vt -0.000000 0.448598 +vt -0.000000 0.355140 +vt 0.065574 0.364486 +vt -0.000000 0.401869 +vt 0.065574 0.411215 +vt -0.000000 0.383178 +vt 0.065574 0.392523 +vt -0.000000 0.392523 +vt -0.000000 0.429907 +vt 0.065574 0.439252 +vt -0.000000 0.345794 +vt 0.065574 0.355140 +vt 0.065574 0.401869 +vt 0.065574 0.383178 +vt 0.065574 0.429907 +vt -0.000000 0.336449 +vt 0.065574 0.345794 +vt 0.688525 0.196262 +vt 0.704918 0.214953 +vt 0.688525 0.214953 +vt 0.688525 0.158879 +vt 0.704918 0.177570 +vt 0.688525 0.177570 +vt 0.704918 0.196262 +vt 0.688525 0.140187 +vt 0.704918 0.158879 +vt 0.688525 0.121495 +vt 0.704918 0.140187 +vt 0.704918 0.233645 +vt 0.688525 0.233645 +vt 0.688525 0.299065 +vt 0.704918 0.299065 +vt 0.409836 0.448598 +vt 0.081967 0.429907 +vt 0.409836 0.429907 +vt 0.081967 0.411215 +vt 0.409836 0.411215 +vt 0.081967 0.392523 +vt 0.409836 0.392523 +vt 0.081967 0.373832 +vt 0.409836 0.373832 +vt 0.081967 0.355140 +vt 0.409836 0.355140 +vt 0.081967 0.336449 +vt 0.409836 0.336449 +vt 0.081967 0.317757 +vt 0.409836 0.317757 +vt 0.081967 0.299065 +vt 0.409836 0.299065 +vt 0.081967 0.280374 +vt 0.409836 0.280374 +vt 0.081967 0.261682 +vt 0.409836 0.261682 +vt 0.081967 0.242991 +vt 0.409836 0.242991 +vt 0.081967 0.224299 +vt 0.409836 0.224299 +vt 0.704918 0.056075 +vt 0.688525 0.056075 +vt 0.688525 0.336449 +vt 0.704918 0.355140 +vt 0.688525 0.355140 +vt 0.688525 0.037383 +vt 0.688525 0.317757 +vt 0.704918 0.336449 +vt 0.688525 0.018692 +vt 0.704918 0.037383 +vt 0.704918 0.317757 +vt 0.688525 -0.000000 +vt 0.704918 0.018692 +vt 0.663934 0.317757 +vt 0.688525 0.336449 +vt 0.663934 0.336449 +vt 0.663934 0.214953 +vt 0.688525 0.233645 +vt 0.663934 0.233645 +vt 0.688525 0.355140 +vt 0.663934 0.355140 +vt 0.663934 0.121495 +vt 0.688525 0.140187 +vt 0.663934 0.140187 +vt 0.663934 -0.000000 +vt 0.688525 0.018692 +vt 0.663934 0.018692 +vt 0.688525 0.158879 +vt 0.663934 0.158879 +vt 0.688525 0.037383 +vt 0.663934 0.037383 +vt 0.688525 0.177570 +vt 0.663934 0.177570 +vt 0.688525 0.056075 +vt 0.663934 0.056075 +vt 0.688525 0.299065 +vt 0.663934 0.299065 +vt 0.688525 0.121495 +vt 0.688525 0.196262 +vt 0.663934 0.196262 +vt 0.688525 0.317757 +vt 0.688525 0.214953 +vt 0.409836 0.401869 +vt 0.475410 0.392523 +vt 0.475410 0.401869 +vt 0.409836 0.355140 +vt 0.475410 0.345794 +vt 0.475410 0.355140 +vt 0.409836 0.327103 +vt 0.475410 0.317757 +vt 0.475410 0.327103 +vt 0.409836 0.280374 +vt 0.475410 0.271028 +vt 0.475410 0.280374 +vt 0.409836 0.345794 +vt 0.475410 0.336449 +vt 0.409836 0.317757 +vt 0.475410 0.308411 +vt 0.409836 0.271028 +vt 0.475410 0.261682 +vt 0.409836 0.448598 +vt 0.475410 0.439252 +vt 0.475410 0.448598 +vt 0.409836 0.308411 +vt 0.475410 0.299065 +vt 0.409836 0.261682 +vt 0.475410 0.252336 +vt 0.409836 0.439252 +vt 0.475410 0.429907 +vt 0.409836 0.299065 +vt 0.475410 0.289720 +vt 0.409836 0.392523 +vt 0.475410 0.383178 +vt 0.409836 0.252336 +vt 0.475410 0.242991 +vt 0.409836 0.429907 +vt 0.475410 0.420561 +vt 0.409836 0.289720 +vt 0.409836 0.383178 +vt 0.475410 0.373832 +vt 0.409836 0.242991 +vt 0.475410 0.233645 +vt 0.409836 0.420561 +vt 0.475410 0.411215 +vt 0.409836 0.373832 +vt 0.475410 0.364486 +vt 0.409836 0.233645 +vt 0.475410 0.224299 +vt 0.409836 0.411215 +vt 0.409836 0.364486 +vt 0.409836 0.336449 +vt 0.475410 0.336449 +vt 0.745902 0.308411 +vt 0.754098 0.289720 +vt 0.778689 0.289720 +vt 0.754098 0.308411 +vt 0.803279 0.289720 +vt 0.778689 0.308411 +vt 0.721311 0.018692 +vt 0.737705 0.093458 +vt 0.721311 0.074766 +vt 0.721311 0.364486 +vt 0.745902 0.364486 +vt 0.754098 0.364486 +vt 0.778689 0.364486 +vt 0.754098 0.383178 +vt 0.803279 0.364486 +vt 0.778689 0.383178 +vt 0.827869 0.383178 +vt 0.827869 0.364486 +vt 0.852459 0.383178 +vt 0.770492 0.093458 +vt 0.836066 0.074766 +vt 0.840164 0.093458 +vt 0.000000 0.588785 +vt 0.008197 0.663551 +vt 0.000000 0.663551 +vt 0.020492 0.588785 +vt 0.020492 0.663551 +vt 0.008197 0.588785 +vt 0.225410 0.514019 +vt 0.028689 0.448598 +vt 0.225410 0.654206 +vt 0.836066 0.018692 +vt 0.770492 0.000000 +vt 0.836066 0.000000 +vt 0.770492 0.074766 +vt 0.827869 0.308411 +vt 0.803279 0.308411 +vt 0.803279 0.383178 +vt 1.000000 0.504673 +vt 0.975410 0.560748 +vt 0.975410 0.504673 +vt 1.000000 0.336449 +vt 0.975410 0.392523 +vt 1.000000 0.317757 +vt 1.000000 0.392523 +vt 0.975410 0.448598 +vt 1.000000 0.560748 +vt 1.000000 0.448598 +vt 0.852459 0.289720 +vt 0.827869 0.289720 +vt 0.852459 -0.000000 +vt 0.426230 0.663551 +vt 0.442623 0.738318 +vt 0.426230 0.738318 +vt 0.336066 0.448598 +vt 0.426230 0.523364 +vt 0.336066 0.523364 +vt 0.319672 0.635514 +vt 0.426230 0.635514 +vt 0.319672 0.766355 +vt 0.331967 0.551402 +vt 0.426230 0.850467 +vt 0.442623 0.766355 +vt 0.442623 0.850467 +vt 0.426230 0.551402 +vt 0.331967 0.850467 +vt 0.426230 0.766355 +vt 0.336066 0.878505 +vt 0.426230 0.878505 +vt 0.475410 0.663551 +vt 0.475410 0.738318 +vt 0.491803 0.738318 +vt 0.491803 0.663551 +vt 0.442623 0.635514 +vt 0.442623 0.551402 +vt 0.553279 0.813084 +vt 0.536885 0.392523 +vt 0.713115 0.364486 +vt 0.713115 0.392523 +vt 0.553279 0.682243 +vt 0.713115 0.682243 +vt 0.536885 0.467290 +vt 0.713115 0.495327 +vt 0.536885 0.495327 +vt 0.713115 1.000000 +vt 0.553279 0.869159 +vt 0.713115 0.813084 +vt 0.553279 0.626168 +vt 0.545082 0.588785 +vt 0.147541 0.897196 +vt 0.057377 0.934579 +vt 0.057377 0.897196 +vt 0.163934 0.897196 +vt 0.147541 0.934579 +vt 0.176230 0.897196 +vt 0.163934 0.934579 +vt 0.192623 0.897196 +vt 0.176230 0.934579 +vt 0.250000 0.897196 +vt 0.192623 0.934579 +vt 0.266393 0.897196 +vt 0.250000 0.934579 +vt 0.336066 0.971963 +vt 0.348361 0.971963 +vt 0.364754 0.971963 +vt 0.368852 0.971963 +vt 0.409836 0.934579 +vt 0.393443 0.971963 +vt 0.409836 0.971963 +vt 0.426230 0.934579 +vt 0.426230 0.971963 +vt 0.077869 0.728972 +vt 0.061475 0.766355 +vt 0.061475 0.728972 +vt 0.077869 0.766355 +vt 0.086066 0.728972 +vt 0.086066 0.766355 +vt 0.102459 0.728972 +vt 0.020492 0.766355 +vt 0.168033 0.766355 +vt 0.184426 0.728972 +vt 0.184426 0.766355 +vt 0.143443 0.728972 +vt 0.102459 0.766355 +vt 0.159836 0.728972 +vt 0.143443 0.766355 +vt 0.159836 0.766355 +vt 0.168033 0.728972 +vt 0.159836 0.803738 +vt 0.159836 0.785047 +vt 0.168033 0.766355 +vt 0.770492 0.018692 +vt 0.737705 0.000000 +vt 0.721311 -0.000000 +vt 0.721311 0.093458 +vt 0.713115 0.850467 +vt 0.713115 0.897196 +vt 0.713115 0.906542 +vt 0.713115 0.803738 +vt 0.713115 0.813084 +vt 0.713115 0.859813 +vt 0.713115 0.822430 +vt 0.713115 0.869159 +vt 0.713115 0.831776 +vt 0.713115 0.878505 +vt 0.713115 0.841121 +vt 0.713115 0.887850 +vt 0.770492 0.813084 +vt 0.770492 0.897196 +vt 0.770492 0.850467 +vt 0.770492 0.869159 +vt 0.770492 0.822430 +vt 0.770492 0.906542 +vt 0.770492 0.859813 +vt 0.770492 0.878505 +vt 0.770492 0.831776 +vt 0.770492 0.915888 +vt 0.770492 0.887850 +vt 0.770492 0.841121 +vt 0.282787 0.224299 +vt 0.065574 0.224299 +vt 0.065574 0.336449 +vt 0.704918 0.121495 +vt 0.081967 0.448598 +vt 0.704918 0.000000 +vt 0.688525 -0.000000 +vt 0.409836 0.336449 +vt 0.409836 0.224299 +vt 0.721311 0.308411 +vt 0.266393 0.448598 +vt 0.225410 0.457944 +vt 0.266393 0.457944 +vt 0.266393 0.514019 +vt 0.225410 0.598131 +vt 0.266393 0.598131 +vt 0.266393 0.654206 +vt 0.442623 0.663551 +vt 0.426230 0.448598 +vt 0.536885 0.364486 +vt 0.713115 0.467290 +vt 0.545082 0.906542 +vt 0.266393 0.934579 +vt 0.344262 0.971963 +vt 0.020492 0.728972 +vt 0.159836 0.766355 +vt 0.713115 0.915888 +vt 0.770492 0.803738 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.8944 0.4472 +vn 0.0000 0.4472 0.8944 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.9914 0.1305 0.0000 +vn 0.9914 0.1305 0.0000 +vn 0.9914 -0.1305 0.0000 +vn -0.9914 -0.1305 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.9871 -0.1602 +vn 0.0000 0.8736 -0.4866 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.8112 0.5847 +vn 0.0000 0.9024 -0.4308 +vn 0.0000 0.9487 -0.3162 +vn 0.0000 -0.9732 0.2298 +vn 0.0000 -0.9522 0.3054 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9231 0.3845 +vn 0.0000 0.3808 0.9246 +vn 0.0000 0.9952 -0.0980 +vn 0.0000 0.0980 -0.9952 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.8944 0.4472 +vn 0.3702 0.6646 -0.6490 +vn -0.4346 -0.0292 -0.9002 +vn -0.3702 0.6646 -0.6490 +vn 0.3158 0.8487 -0.4243 +vn -0.3158 0.8487 -0.4243 +vn -0.3875 -0.7728 0.5027 +vn 0.3803 -0.8832 0.2744 +vn 0.3875 -0.7728 0.5027 +vn 0.8592 0.4574 -0.2292 +vn 0.9085 0.1932 -0.3706 +vn -0.8592 0.4574 -0.2292 +vn 0.9547 -0.2517 0.1590 +vn -0.9201 -0.3912 -0.0217 +vn -0.4362 -0.7533 -0.4922 +vn 0.9201 -0.3912 -0.0217 +vn -0.9547 -0.2517 0.1590 +vn -0.9085 0.1932 -0.3706 +vn -0.3803 -0.8832 0.2744 +vn 0.4362 -0.7533 -0.4922 +vn 0.4346 -0.0292 -0.9002 +vn -0.3867 0.9210 -0.0472 +vn -0.9193 0.3932 -0.0202 +vn -0.3779 0.9246 -0.0474 +vn -0.3846 -0.8870 0.2557 +vn -0.8923 -0.4340 0.1241 +vn -0.3487 -0.9012 0.2575 +vn 0.3867 0.9210 -0.0472 +vn 0.9193 0.3932 -0.0202 +vn 0.9281 0.3719 -0.0191 +vn 0.3846 -0.8870 0.2557 +vn 0.8923 -0.4340 0.1241 +vn 0.9180 -0.3806 0.1114 +vn 0.3779 0.9246 -0.0474 +vn -0.9281 0.3719 -0.0191 +vn 0.0000 0.4719 -0.8817 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9571 0.2898 +vn 0.0000 -0.4719 0.8817 +vn 0.0000 0.9571 0.2898 +vn 0.0000 0.0985 0.9951 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9571 -0.2898 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.2298 0.9732 +vn 0.0000 -0.7071 -0.7071 +vn -0.9180 -0.3806 0.1114 +vn 0.3487 -0.9012 0.2575 +s off +f 7/1/1 54/2/1 6/3/1 +f 7/4/1 56/5/1 55/6/1 +f 9/7/1 56/8/1 8/9/1 +f 10/10/1 57/11/1 9/7/1 +f 10/10/1 59/12/1 58/13/1 +f 12/14/1 59/15/1 11/16/1 +f 12/14/1 49/17/1 60/18/1 +f 2/19/1 49/20/1 1/21/1 +f 2/19/1 51/22/1 50/23/1 +f 4/24/1 51/25/1 3/26/1 +f 4/24/1 53/27/1 52/28/1 +f 5/29/1 54/30/1 53/31/1 +f 67/32/1 69/33/1 61/34/1 +f 91/35/1 93/36/1 85/37/1 +f 43/38/1 78/39/1 42/40/1 +f 41/41/1 78/42/1 77/43/1 +f 40/44/1 77/45/1 76/46/1 +f 40/44/1 75/47/1 39/48/1 +f 38/49/1 75/50/1 74/51/1 +f 38/49/1 73/52/1 37/53/1 +f 48/54/1 73/55/1 84/56/1 +f 48/54/1 83/57/1 47/58/1 +f 46/59/1 83/60/1 82/61/1 +f 46/59/1 81/62/1 45/63/1 +f 45/63/1 80/64/1 44/65/1 +f 43/66/1 80/67/1 79/68/1 +f 107/69/2 115/70/2 114/71/2 +f 108/72/2 109/73/2 115/70/2 +f 97/74/2 110/75/2 109/73/2 +f 98/76/2 111/77/2 110/75/2 +f 100/78/2 111/77/2 99/79/2 +f 102/80/2 160/81/2 101/82/2 +f 106/83/2 114/71/2 113/84/2 +f 122/85/1 133/86/1 121/87/1 +f 116/88/1 134/89/1 122/85/1 +f 117/90/1 123/91/1 116/88/1 +f 118/92/1 124/93/1 117/90/1 +f 119/94/1 125/95/1 118/92/1 +f 112/96/2 101/82/2 159/97/2 +f 165/98/2 105/99/2 113/84/2 +f 104/100/2 164/101/2 163/102/2 +f 103/103/2 163/102/2 162/104/2 +f 103/103/2 161/105/2 102/80/2 +f 121/87/1 132/106/1 120/107/1 +f 166/108/1 127/109/1 119/94/1 +f 120/107/1 132/106/1 131/110/1 +f 130/111/1 171/112/1 131/110/1 +f 129/113/1 170/114/1 130/111/1 +f 168/115/1 129/113/1 128/116/1 +f 167/117/1 128/116/1 127/109/1 +f 247/118/2 243/119/2 239/120/2 +f 235/121/2 231/122/2 227/123/2 +f 20/124/1 145/125/1 21/126/1 +f 19/127/1 146/128/1 20/124/1 +f 18/129/1 135/130/1 19/127/1 +f 17/131/1 136/132/1 18/129/1 +f 16/133/1 137/134/1 17/131/1 +f 21/126/1 144/135/1 22/136/1 +f 177/137/1 144/135/1 186/138/1 +f 138/139/1 176/140/1 180/141/1 +f 175/142/1 16/133/1 15/143/1 +f 14/144/1 175/142/1 15/143/1 +f 13/145/1 174/146/1 14/144/1 +f 24/147/1 173/148/1 13/145/1 +f 23/149/1 179/150/1 24/147/1 +f 22/136/1 178/151/1 23/149/1 +f 185/152/1 144/135/1 143/153/1 +f 142/154/1 185/152/1 143/153/1 +f 141/155/1 184/156/1 142/154/1 +f 182/157/1 141/155/1 140/158/1 +f 181/159/1 140/158/1 139/160/1 +f 180/141/1 139/160/1 138/139/1 +f 208/161/2 213/162/2 207/163/2 +f 213/162/2 206/164/2 207/163/2 +f 206/164/2 215/165/2 205/166/2 +f 215/165/2 204/167/2 205/166/2 +f 223/168/2 208/161/2 209/169/2 +f 222/170/2 209/169/2 210/171/2 +f 222/170/2 192/172/2 195/173/2 +f 190/174/2 216/175/2 194/176/2 +f 203/177/2 190/174/2 189/178/2 +f 202/179/2 189/178/2 187/180/2 +f 201/181/2 187/180/2 188/182/2 +f 193/183/2 201/181/2 188/182/2 +f 211/184/2 193/183/2 191/185/2 +f 192/172/2 211/184/2 191/185/2 +f 221/186/2 195/173/2 200/187/2 +f 220/188/2 200/187/2 199/189/2 +f 198/190/2 220/188/2 199/189/2 +f 218/191/2 198/190/2 197/192/2 +f 196/193/2 218/191/2 197/192/2 +f 194/176/2 217/194/2 196/193/2 +f 254/195/1 249/196/1 251/197/1 +f 261/198/3 258/199/3 263/200/3 +f 270/201/1 265/202/1 267/203/1 +f 278/204/4 276/205/4 279/206/4 +f 327/207/5 311/208/5 328/209/5 +f 288/210/4 286/211/4 284/212/4 +f 285/213/3 287/214/3 283/215/3 +f 293/216/3 287/214/3 289/217/3 +f 288/210/4 294/218/4 290/219/4 +f 304/220/1 305/221/1 303/222/1 +f 303/223/6 309/224/6 304/225/6 +f 309/224/7 330/226/7 329/227/7 +f 306/228/5 308/229/5 305/221/5 +f 264/230/3 331/231/3 260/232/3 +f 280/233/4 332/234/4 334/235/4 +f 254/236/4 251/237/4 257/238/4 +f 318/239/8 336/240/8 319/241/8 +f 319/242/4 336/240/4 262/243/4 +f 335/244/3 274/245/3 272/246/3 +f 254/236/6 335/244/6 269/247/6 +f 307/248/1 312/249/1 308/250/1 +f 277/251/3 335/244/3 318/252/3 +f 329/253/4 307/254/4 306/255/4 +f 330/256/3 310/257/3 303/222/3 +f 325/258/4 281/259/4 307/254/4 +f 308/250/3 312/249/3 321/260/3 +f 337/261/1 345/262/1 340/263/1 +f 359/264/2 361/265/2 364/266/2 +f 362/267/9 357/268/9 371/269/9 +f 362/267/1 365/270/1 373/271/1 +f 400/272/4 394/273/4 396/274/4 +f 397/275/3 395/276/3 393/277/3 +f 392/278/4 402/279/4 390/280/4 +f 401/281/3 391/282/3 389/283/3 +f 394/273/4 404/284/4 392/278/4 +f 403/285/3 393/277/3 391/282/3 +f 410/286/4 384/287/4 386/288/4 +f 407/289/3 385/290/3 383/291/3 +f 414/292/4 380/293/4 382/294/4 +f 411/295/3 381/296/3 379/297/3 +f 384/287/4 414/292/4 382/294/4 +f 413/298/3 383/291/3 381/296/3 +f 386/288/4 416/299/4 410/286/4 +f 388/300/4 418/301/4 416/299/4 +f 385/290/3 415/302/3 387/303/3 +f 387/303/3 417/304/3 389/305/3 +f 406/306/4 422/307/4 418/301/4 +f 389/305/3 421/308/3 405/309/3 +f 380/293/4 420/310/4 376/311/4 +f 379/297/3 419/312/3 411/295/3 +f 420/310/4 422/307/4 406/306/4 +f 405/309/3 421/308/3 419/312/3 +f 428/313/4 432/314/4 430/315/4 +f 425/316/3 427/317/3 423/318/3 +f 424/319/4 430/315/4 426/320/4 +f 429/321/3 431/322/3 427/317/3 +f 451/323/1 453/324/1 445/325/1 +f 435/326/1 458/327/1 459/328/1 +f 441/329/1 466/330/1 442/331/1 +f 438/332/1 463/333/1 439/334/1 +f 435/326/1 460/335/1 436/336/1 +f 443/337/1 466/330/1 467/338/1 +f 440/339/1 463/340/1 464/341/1 +f 437/342/1 460/335/1 461/343/1 +f 443/337/1 468/344/1 444/345/1 +f 433/346/1 458/327/1 434/347/1 +f 440/339/1 465/348/1 441/329/1 +f 438/332/1 461/343/1 462/349/1 +f 433/346/1 468/344/1 457/350/1 +f 479/351/2 475/352/2 471/353/2 +f 7/1/1 55/354/1 54/2/1 +f 7/4/1 8/9/1 56/5/1 +f 9/7/1 57/355/1 56/8/1 +f 10/10/1 58/356/1 57/11/1 +f 10/10/1 11/16/1 59/12/1 +f 12/14/1 60/357/1 59/15/1 +f 12/14/1 1/21/1 49/17/1 +f 2/19/1 50/358/1 49/20/1 +f 2/19/1 3/26/1 51/22/1 +f 4/24/1 52/359/1 51/25/1 +f 4/24/1 5/29/1 53/27/1 +f 5/29/1 6/3/1 54/30/1 +f 61/34/1 62/360/1 65/361/1 +f 62/360/1 63/362/1 65/361/1 +f 63/362/1 64/363/1 65/361/1 +f 65/361/1 66/364/1 67/32/1 +f 67/32/1 68/365/1 69/33/1 +f 69/33/1 70/366/1 71/367/1 +f 71/367/1 72/368/1 69/33/1 +f 72/368/1 61/34/1 69/33/1 +f 65/361/1 67/32/1 61/34/1 +f 85/37/1 86/369/1 89/370/1 +f 86/369/1 87/371/1 89/370/1 +f 87/371/1 88/372/1 89/370/1 +f 89/370/1 90/373/1 91/35/1 +f 91/35/1 92/374/1 93/36/1 +f 93/36/1 94/375/1 95/376/1 +f 95/376/1 96/377/1 93/36/1 +f 96/377/1 85/37/1 93/36/1 +f 89/370/1 91/35/1 85/37/1 +f 43/38/1 79/378/1 78/39/1 +f 41/41/1 42/40/1 78/42/1 +f 40/44/1 41/41/1 77/45/1 +f 40/44/1 76/379/1 75/47/1 +f 38/49/1 39/48/1 75/50/1 +f 38/49/1 74/380/1 73/52/1 +f 48/54/1 37/53/1 73/55/1 +f 48/54/1 84/381/1 83/57/1 +f 46/59/1 47/58/1 83/60/1 +f 46/59/1 82/382/1 81/62/1 +f 45/63/1 81/383/1 80/64/1 +f 43/66/1 44/65/1 80/67/1 +f 107/69/2 108/72/2 115/70/2 +f 108/72/2 97/74/2 109/73/2 +f 97/74/2 98/76/2 110/75/2 +f 98/76/2 99/79/2 111/77/2 +f 100/78/2 112/96/2 111/77/2 +f 102/80/2 161/105/2 160/81/2 +f 106/83/2 107/69/2 114/71/2 +f 122/85/1 134/89/1 133/86/1 +f 116/88/1 123/91/1 134/89/1 +f 117/90/1 124/93/1 123/91/1 +f 118/92/1 125/95/1 124/93/1 +f 119/94/1 126/384/1 125/95/1 +f 100/78/2 101/82/2 112/96/2 +f 101/82/2 160/81/2 159/97/2 +f 164/101/2 105/99/2 165/98/2 +f 105/99/2 106/83/2 113/84/2 +f 104/100/2 105/99/2 164/101/2 +f 103/103/2 104/100/2 163/102/2 +f 103/103/2 162/104/2 161/105/2 +f 121/87/1 133/86/1 132/106/1 +f 167/117/1 127/109/1 166/108/1 +f 127/109/1 126/384/1 119/94/1 +f 171/112/1 172/385/1 131/110/1 +f 172/385/1 120/107/1 131/110/1 +f 130/111/1 170/114/1 171/112/1 +f 129/113/1 169/386/1 170/114/1 +f 168/115/1 169/386/1 129/113/1 +f 167/117/1 168/115/1 128/116/1 +f 239/120/2 238/387/2 237/388/2 +f 237/388/2 248/389/2 239/120/2 +f 248/389/2 247/118/2 239/120/2 +f 247/118/2 246/390/2 243/119/2 +f 246/390/2 245/391/2 243/119/2 +f 245/391/2 244/392/2 243/119/2 +f 243/119/2 242/393/2 241/394/2 +f 241/394/2 240/395/2 243/119/2 +f 240/395/2 239/120/2 243/119/2 +f 227/123/2 226/396/2 225/397/2 +f 225/397/2 236/398/2 227/123/2 +f 236/398/2 235/121/2 227/123/2 +f 235/121/2 234/399/2 231/122/2 +f 234/399/2 233/400/2 231/122/2 +f 233/400/2 232/401/2 231/122/2 +f 231/122/2 230/402/2 229/403/2 +f 229/403/2 228/404/2 231/122/2 +f 228/404/2 227/123/2 231/122/2 +f 20/124/1 146/128/1 145/125/1 +f 19/127/1 135/130/1 146/128/1 +f 18/129/1 136/132/1 135/130/1 +f 17/131/1 137/134/1 136/132/1 +f 16/133/1 138/139/1 137/134/1 +f 21/126/1 145/125/1 144/135/1 +f 177/137/1 22/136/1 144/135/1 +f 138/139/1 16/133/1 176/140/1 +f 175/142/1 176/140/1 16/133/1 +f 14/144/1 174/146/1 175/142/1 +f 13/145/1 173/148/1 174/146/1 +f 24/147/1 179/150/1 173/148/1 +f 23/149/1 178/151/1 179/150/1 +f 22/136/1 177/137/1 178/151/1 +f 185/152/1 186/138/1 144/135/1 +f 142/154/1 184/156/1 185/152/1 +f 141/155/1 183/405/1 184/156/1 +f 182/157/1 183/405/1 141/155/1 +f 181/159/1 182/157/1 140/158/1 +f 180/141/1 181/159/1 139/160/1 +f 208/161/2 224/406/2 213/162/2 +f 213/162/2 214/407/2 206/164/2 +f 206/164/2 214/407/2 215/165/2 +f 215/165/2 216/175/2 204/167/2 +f 223/168/2 224/406/2 208/161/2 +f 222/170/2 223/168/2 209/169/2 +f 222/170/2 210/171/2 192/172/2 +f 190/174/2 204/167/2 216/175/2 +f 203/177/2 204/167/2 190/174/2 +f 202/179/2 203/177/2 189/178/2 +f 201/181/2 202/179/2 187/180/2 +f 193/183/2 212/408/2 201/181/2 +f 211/184/2 212/408/2 193/183/2 +f 192/172/2 210/171/2 211/184/2 +f 221/186/2 222/170/2 195/173/2 +f 220/188/2 221/186/2 200/187/2 +f 198/190/2 219/409/2 220/188/2 +f 218/191/2 219/409/2 198/190/2 +f 196/193/2 217/194/2 218/191/2 +f 194/176/2 216/175/2 217/194/2 +f 254/195/1 253/410/1 249/196/1 +f 250/411/3 249/196/3 256/412/3 +f 249/196/3 253/410/3 256/412/3 +f 253/410/3 255/413/3 256/412/3 +f 255/413/3 263/200/3 258/199/3 +f 256/412/3 255/413/3 258/199/3 +f 263/200/3 264/230/3 260/232/3 +f 260/232/3 261/198/3 263/200/3 +f 270/201/1 269/414/1 265/202/1 +f 270/201/4 267/203/4 273/415/4 +f 267/203/4 268/416/4 273/415/4 +f 273/415/4 275/417/4 271/418/4 +f 275/417/4 278/204/4 279/206/4 +f 279/206/4 271/418/4 275/417/4 +f 271/418/4 270/201/4 273/415/4 +f 276/205/4 280/233/4 279/206/4 +f 327/207/5 312/249/5 311/208/5 +f 288/210/4 290/219/4 286/211/4 +f 285/213/3 289/217/3 287/214/3 +f 293/216/3 291/419/3 287/214/3 +f 288/210/4 292/420/4 294/218/4 +f 304/220/1 306/228/1 305/221/1 +f 303/223/6 310/421/6 309/224/6 +f 309/224/7 310/421/7 330/226/7 +f 306/228/5 307/422/5 308/229/5 +f 264/230/3 333/423/3 331/231/3 +f 280/233/4 276/205/4 332/234/4 +f 251/237/4 252/424/4 257/238/4 +f 257/238/4 259/425/4 336/240/4 +f 259/425/4 262/243/4 336/240/4 +f 336/240/4 254/236/4 257/238/4 +f 318/239/8 335/244/8 336/240/8 +f 272/246/3 266/426/3 265/427/3 +f 265/427/3 269/247/3 272/246/3 +f 269/247/3 335/244/3 272/246/3 +f 335/244/3 277/251/3 274/245/3 +f 254/236/6 336/240/6 335/244/6 +f 307/248/1 311/428/1 312/249/1 +f 306/255/4 304/429/4 329/253/4 +f 304/429/4 309/430/4 329/253/4 +f 329/253/4 326/431/4 307/254/4 +f 303/222/3 305/221/3 330/256/3 +f 305/221/3 308/250/3 330/256/3 +f 308/250/3 324/432/3 330/256/3 +f 281/259/4 282/433/4 307/254/4 +f 282/433/4 315/434/4 311/435/4 +f 307/254/4 282/433/4 311/435/4 +f 315/434/4 328/436/4 311/435/4 +f 307/254/4 326/431/4 325/258/4 +f 312/249/3 327/207/3 320/437/3 +f 320/437/3 321/260/3 312/249/3 +f 321/260/3 322/438/3 308/250/3 +f 322/438/3 323/439/3 308/250/3 +f 323/439/3 324/432/3 308/250/3 +f 340/263/1 339/440/1 349/441/1 +f 349/441/1 350/442/1 337/261/1 +f 337/261/1 338/443/1 345/262/1 +f 345/262/1 346/444/1 340/263/1 +f 340/263/1 349/441/1 337/261/1 +f 361/265/2 368/445/2 367/446/2 +f 367/446/2 366/447/2 361/265/2 +f 366/447/2 364/266/2 361/265/2 +f 364/266/2 370/448/2 369/449/2 +f 369/449/2 359/264/2 364/266/2 +f 358/450/9 372/451/9 357/268/9 +f 372/451/9 371/269/9 357/268/9 +f 371/269/9 363/452/9 362/267/9 +f 373/271/1 374/453/1 357/268/1 +f 374/453/1 360/454/1 357/268/1 +f 357/268/1 362/267/1 373/271/1 +f 400/272/4 398/455/4 394/273/4 +f 397/275/3 399/456/3 395/276/3 +f 392/278/4 404/457/4 402/279/4 +f 401/281/3 403/458/3 391/282/3 +f 394/273/4 398/459/4 404/284/4 +f 403/285/3 397/460/3 393/277/3 +f 410/286/4 408/461/4 384/287/4 +f 407/289/3 409/462/3 385/290/3 +f 414/292/4 412/463/4 380/293/4 +f 411/295/3 413/298/3 381/296/3 +f 384/287/4 408/461/4 414/292/4 +f 413/298/3 407/289/3 383/291/3 +f 386/288/4 388/300/4 416/299/4 +f 388/300/4 390/464/4 418/301/4 +f 385/290/3 409/462/3 415/302/3 +f 387/303/3 415/302/3 417/304/3 +f 418/301/4 390/464/4 406/306/4 +f 390/464/4 402/465/4 406/306/4 +f 405/309/3 401/466/3 389/305/3 +f 389/305/3 417/304/3 421/308/3 +f 380/293/4 412/463/4 420/310/4 +f 379/297/3 375/467/3 419/312/3 +f 377/468/4 376/311/4 406/306/4 +f 376/311/4 420/310/4 406/306/4 +f 419/312/3 375/467/3 405/309/3 +f 375/467/3 378/469/3 405/309/3 +f 425/316/3 429/321/3 427/317/3 +f 424/319/4 428/313/4 430/315/4 +f 445/325/1 446/470/1 449/471/1 +f 446/470/1 447/472/1 449/471/1 +f 447/472/1 448/473/1 449/471/1 +f 449/471/1 450/474/1 451/323/1 +f 451/323/1 452/475/1 453/324/1 +f 453/324/1 454/476/1 455/477/1 +f 455/477/1 456/478/1 453/324/1 +f 456/478/1 445/325/1 453/324/1 +f 449/471/1 451/323/1 445/325/1 +f 435/326/1 434/347/1 458/327/1 +f 441/329/1 465/348/1 466/330/1 +f 438/332/1 462/349/1 463/333/1 +f 435/326/1 459/328/1 460/335/1 +f 443/337/1 442/331/1 466/330/1 +f 440/339/1 439/479/1 463/340/1 +f 437/342/1 436/336/1 460/335/1 +f 443/337/1 467/338/1 468/344/1 +f 433/346/1 457/350/1 458/327/1 +f 440/339/1 464/341/1 465/348/1 +f 438/332/1 437/342/1 461/343/1 +f 433/346/1 444/345/1 468/344/1 +f 471/353/2 470/480/2 469/481/2 +f 469/481/2 480/482/2 471/353/2 +f 480/482/2 479/351/2 471/353/2 +f 479/351/2 478/483/2 475/352/2 +f 478/483/2 477/484/2 475/352/2 +f 477/484/2 476/485/2 475/352/2 +f 475/352/2 474/486/2 473/487/2 +f 473/487/2 472/488/2 475/352/2 +f 472/488/2 471/353/2 475/352/2 +s 1 +f 27/489/10 4/24/4 3/26/10 +f 26/490/11 3/26/10 2/19/11 +f 32/491/12 9/7/13 8/9/12 +f 35/492/14 12/14/15 11/16/14 +f 30/493/16 7/1/5 6/3/16 +f 36/494/15 1/21/6 12/14/15 +f 25/495/6 2/19/11 1/21/6 +f 28/496/4 5/29/17 4/24/4 +f 31/497/5 8/9/12 7/4/5 +f 34/498/3 11/16/14 10/10/3 +f 33/499/13 10/10/3 9/7/13 +f 29/500/17 6/3/16 5/29/17 +f 19/501/5 42/40/16 18/502/16 +f 18/502/16 41/41/17 17/503/17 +f 17/503/17 40/44/4 16/504/4 +f 16/504/4 39/48/10 15/505/10 +f 15/505/10 38/49/11 14/506/11 +f 14/506/11 37/53/6 13/507/6 +f 13/507/6 48/54/15 24/508/15 +f 24/508/15 47/58/14 23/509/14 +f 23/509/14 46/59/3 22/510/3 +f 22/510/3 45/63/13 21/511/13 +f 21/511/13 44/65/12 20/512/12 +f 20/512/12 43/66/5 19/513/5 +f 52/514/3 63/515/13 51/516/13 +f 59/517/17 70/518/4 58/519/4 +f 56/520/11 67/521/6 55/522/6 +f 53/523/14 64/524/3 52/514/3 +f 60/525/16 71/526/17 59/517/17 +f 50/527/12 61/528/5 49/529/5 +f 57/530/10 68/531/11 56/520/11 +f 54/532/15 65/533/14 53/523/14 +f 49/529/5 72/534/16 60/525/16 +f 51/516/13 62/535/12 50/527/12 +f 58/519/4 69/536/10 57/530/10 +f 55/537/6 66/538/15 54/532/15 +f 76/539/3 87/540/13 75/541/13 +f 83/542/17 94/543/4 82/544/4 +f 80/545/11 91/546/6 79/547/6 +f 77/548/14 88/549/3 76/539/3 +f 84/550/16 95/551/17 83/542/17 +f 74/552/12 85/553/5 73/554/5 +f 81/555/10 92/556/11 80/545/11 +f 78/557/15 89/558/14 77/548/14 +f 73/554/5 96/559/16 84/550/16 +f 75/541/13 86/560/12 74/552/12 +f 82/544/4 93/561/10 81/555/10 +f 79/562/6 90/563/15 78/557/15 +f 115/564/15 121/565/14 114/566/14 +f 110/567/11 116/568/6 109/569/6 +f 109/569/6 122/570/15 115/564/15 +f 111/571/10 117/572/11 110/567/11 +f 112/573/18 118/574/10 111/571/10 +f 114/566/14 120/575/19 113/576/19 +f 165/577/20 120/575/19 172/578/20 +f 141/579/5 152/580/16 140/581/16 +f 140/581/16 151/582/17 139/583/17 +f 139/583/17 150/584/4 138/585/4 +f 138/585/4 149/586/10 137/587/10 +f 137/587/10 148/588/11 136/589/11 +f 136/589/11 147/590/6 135/591/6 +f 135/591/6 158/592/15 146/593/15 +f 146/593/15 157/594/14 145/595/14 +f 145/595/14 156/596/3 144/597/3 +f 144/597/3 155/598/13 143/599/13 +f 143/599/13 154/600/12 142/601/12 +f 142/601/12 153/602/5 141/603/5 +f 166/604/21 112/573/18 159/605/21 +f 163/606/12 169/607/5 162/608/5 +f 160/609/17 166/604/21 159/605/21 +f 164/610/13 170/611/12 163/606/12 +f 161/612/16 167/613/17 160/609/17 +f 165/577/20 171/614/13 164/610/13 +f 162/615/5 168/616/16 161/612/16 +f 181/617/17 197/618/16 182/619/16 +f 175/620/10 190/621/18 176/622/18 +f 182/619/16 198/623/5 183/624/5 +f 177/625/19 191/626/14 178/627/14 +f 183/628/5 199/629/12 184/630/12 +f 178/627/14 193/631/15 179/632/15 +f 184/630/12 200/633/13 185/634/13 +f 179/632/15 188/635/6 173/636/6 +f 185/634/13 195/637/20 186/638/20 +f 176/622/18 194/639/21 180/640/21 +f 186/638/20 192/641/19 177/625/19 +f 173/636/6 187/642/11 174/643/11 +f 180/640/21 196/644/17 181/617/17 +f 174/643/11 189/645/10 175/620/10 +f 236/646/16 201/647/5 212/648/16 +f 229/649/14 206/650/15 205/651/14 +f 244/652/11 221/653/10 220/654/11 +f 237/655/5 214/656/12 213/657/5 +f 230/658/15 207/659/6 206/650/15 +f 245/660/10 222/661/4 221/653/10 +f 238/662/12 215/663/13 214/656/12 +f 231/664/6 208/665/11 207/666/6 +f 246/667/4 223/668/17 222/661/4 +f 239/669/13 216/670/3 215/663/13 +f 232/671/11 209/672/10 208/665/11 +f 247/673/17 224/674/16 223/668/17 +f 225/675/5 202/676/12 201/647/5 +f 240/677/3 217/678/14 216/670/3 +f 233/679/10 210/680/4 209/672/10 +f 248/681/16 213/657/5 224/674/16 +f 226/682/12 203/683/13 202/676/12 +f 241/684/14 218/685/15 217/678/14 +f 234/686/4 211/687/17 210/680/4 +f 227/688/13 204/689/3 203/683/13 +f 242/690/15 219/691/6 218/685/15 +f 235/692/17 212/648/16 211/687/17 +f 228/693/3 205/651/14 204/689/3 +f 243/694/6 220/654/11 219/695/6 +f 252/696/22 249/196/6 250/411/22 +f 256/697/22 252/696/22 250/411/22 +f 258/698/23 257/699/22 256/697/22 +f 261/700/24 259/701/23 258/698/23 +f 269/702/25 255/703/26 254/704/25 +f 268/416/22 265/705/6 266/706/22 +f 272/707/22 268/416/22 266/706/22 +f 274/708/23 273/709/22 272/707/22 +f 277/710/24 275/711/23 274/708/23 +f 276/712/24 318/713/27 332/714/28 +f 263/715/29 316/716/30 264/717/29 +f 287/718/31 292/719/32 288/720/31 +f 290/219/33 293/721/34 289/217/33 +f 294/722/34 291/723/32 293/721/34 +f 299/724/5 287/214/31 288/725/31 +f 290/219/33 289/217/33 302/726/6 +f 317/727/30 279/728/29 280/729/29 +f 263/715/29 255/703/26 313/730/30 +f 261/700/24 319/731/27 262/732/24 +f 318/713/27 278/733/24 277/710/24 +f 325/734/22 324/735/35 323/736/22 +f 315/737/36 321/738/37 320/437/36 +f 320/437/36 328/739/2 315/737/36 +f 282/740/37 322/741/7 321/738/37 +f 326/742/35 330/226/6 324/735/35 +f 281/743/7 323/736/22 322/741/7 +f 318/713/27 331/744/28 332/714/28 +f 264/717/29 316/716/30 333/423/38 +f 331/744/28 319/731/27 260/745/24 +f 316/716/30 334/746/38 333/423/38 +f 334/746/38 317/727/30 280/729/29 +f 344/747/39 353/748/40 341/749/41 +f 340/263/42 341/749/41 339/440/43 +f 337/750/44 343/751/45 338/752/46 +f 344/747/39 346/753/47 348/754/48 +f 341/749/41 349/755/49 339/440/43 +f 345/756/50 348/754/48 346/753/47 +f 352/757/51 353/758/40 354/759/52 +f 338/752/46 347/760/53 345/756/50 +f 350/761/54 351/762/55 352/757/51 +f 337/763/44 352/757/51 342/764/56 +f 351/762/55 341/749/41 353/758/40 +f 353/748/40 355/765/57 354/766/52 +f 342/767/56 355/765/57 343/768/45 +f 354/759/52 342/764/56 352/757/51 +f 347/760/53 356/769/58 348/754/48 +f 344/747/39 348/754/48 356/769/58 +f 343/751/45 355/770/57 347/760/53 +f 368/445/59 360/771/60 374/453/61 +f 372/772/62 359/773/63 369/774/64 +f 367/446/65 365/775/66 366/776/67 +f 371/777/68 364/778/69 363/779/70 +f 373/271/71 368/445/59 374/453/61 +f 369/774/64 371/777/68 372/772/62 +f 359/780/63 357/781/4 361/782/72 +f 364/778/69 362/783/3 363/784/70 +f 362/783/3 366/776/67 365/775/66 +f 361/782/72 357/781/4 360/771/60 +f 379/785/73 376/786/74 375/787/74 +f 381/788/75 380/789/73 379/785/73 +f 383/790/76 382/791/75 381/788/75 +f 385/792/77 384/793/76 383/790/76 +f 387/794/78 386/795/77 385/792/77 +f 389/796/1 388/797/78 387/794/78 +f 391/282/31 390/280/5 389/283/5 +f 393/277/32 392/278/31 391/282/31 +f 395/276/1 394/273/32 393/277/32 +f 397/275/37 400/798/2 399/456/2 +f 398/799/37 403/285/22 404/800/22 +f 401/281/79 404/801/22 403/458/22 +f 405/802/80 402/803/79 401/281/79 +f 406/804/80 378/805/25 377/806/25 +f 407/807/81 410/808/82 409/809/82 +f 408/810/81 413/811/83 414/812/83 +f 411/813/78 414/812/83 413/811/83 +f 416/814/73 409/809/82 410/808/82 +f 418/815/75 415/816/73 416/817/73 +f 419/818/77 412/819/78 411/813/78 +f 421/820/76 420/821/77 419/818/77 +f 422/822/76 417/823/75 418/815/75 +f 426/320/1 429/321/84 425/316/1 +f 423/824/2 428/313/75 424/319/2 +f 430/315/84 431/322/9 429/321/84 +f 427/825/75 432/826/85 428/313/75 +f 314/827/30 271/828/26 279/728/29 +f 255/703/26 314/827/30 313/730/30 +f 271/828/26 269/702/25 270/829/25 +f 255/703/26 253/830/25 254/704/25 +f 433/346/6 456/831/15 444/345/15 +f 438/332/16 449/832/17 437/342/17 +f 439/334/5 450/833/16 438/332/16 +f 440/339/12 451/834/5 439/479/5 +f 441/329/13 452/835/12 440/339/12 +f 434/347/11 445/836/6 433/346/6 +f 442/331/3 453/837/13 441/329/13 +f 435/326/10 446/838/11 434/347/11 +f 443/337/14 454/839/3 442/331/3 +f 436/336/4 447/840/10 435/326/10 +f 444/345/15 455/841/14 443/337/14 +f 437/342/17 448/842/4 436/336/4 +f 463/340/5 476/843/12 464/341/12 +f 460/335/4 473/844/17 461/343/17 +f 467/338/14 480/845/15 468/344/15 +f 457/350/6 470/846/11 458/327/11 +f 464/341/12 477/847/13 465/348/13 +f 461/343/17 474/848/16 462/349/16 +f 468/344/15 469/849/6 457/350/6 +f 458/327/11 471/850/10 459/328/10 +f 465/348/13 478/851/3 466/330/3 +f 462/349/16 475/852/5 463/333/5 +f 459/328/10 472/853/4 460/335/4 +f 466/330/3 479/854/14 467/338/14 +f 27/489/10 28/496/4 4/24/4 +f 26/490/11 27/489/10 3/26/10 +f 32/491/12 33/499/13 9/7/13 +f 35/492/14 36/494/15 12/14/15 +f 30/493/16 31/855/5 7/1/5 +f 36/494/15 25/495/6 1/21/6 +f 25/495/6 26/490/11 2/19/11 +f 28/496/4 29/500/17 5/29/17 +f 31/497/5 32/491/12 8/9/12 +f 34/498/3 35/492/14 11/16/14 +f 33/499/13 34/498/3 10/10/3 +f 29/500/17 30/493/16 6/3/16 +f 19/501/5 43/38/5 42/40/16 +f 18/502/16 42/40/16 41/41/17 +f 17/503/17 41/41/17 40/44/4 +f 16/504/4 40/44/4 39/48/10 +f 15/505/10 39/48/10 38/49/11 +f 14/506/11 38/49/11 37/53/6 +f 13/507/6 37/53/6 48/54/15 +f 24/508/15 48/54/15 47/58/14 +f 23/509/14 47/58/14 46/59/3 +f 22/510/3 46/59/3 45/63/13 +f 21/511/13 45/63/13 44/65/12 +f 20/512/12 44/65/12 43/66/5 +f 52/514/3 64/524/3 63/515/13 +f 59/517/17 71/526/17 70/518/4 +f 56/520/11 68/531/11 67/521/6 +f 53/523/14 65/533/14 64/524/3 +f 60/525/16 72/534/16 71/526/17 +f 50/527/12 62/535/12 61/528/5 +f 57/530/10 69/536/10 68/531/11 +f 54/532/15 66/538/15 65/533/14 +f 49/529/5 61/528/5 72/534/16 +f 51/516/13 63/515/13 62/535/12 +f 58/519/4 70/518/4 69/536/10 +f 55/537/6 67/856/6 66/538/15 +f 76/539/3 88/549/3 87/540/13 +f 83/542/17 95/551/17 94/543/4 +f 80/545/11 92/556/11 91/546/6 +f 77/548/14 89/558/14 88/549/3 +f 84/550/16 96/559/16 95/551/17 +f 74/552/12 86/560/12 85/553/5 +f 81/555/10 93/561/10 92/556/11 +f 78/557/15 90/563/15 89/558/14 +f 73/554/5 85/553/5 96/559/16 +f 75/541/13 87/540/13 86/560/12 +f 82/544/4 94/543/4 93/561/10 +f 79/562/6 91/857/6 90/563/15 +f 115/564/15 122/570/15 121/565/14 +f 110/567/11 117/572/11 116/568/6 +f 109/569/6 116/568/6 122/570/15 +f 111/571/10 118/574/10 117/572/11 +f 112/573/18 119/858/18 118/574/10 +f 114/566/14 121/565/14 120/575/19 +f 165/577/20 113/576/19 120/575/19 +f 141/579/5 153/859/5 152/580/16 +f 140/581/16 152/580/16 151/582/17 +f 139/583/17 151/582/17 150/584/4 +f 138/585/4 150/584/4 149/586/10 +f 137/587/10 149/586/10 148/588/11 +f 136/589/11 148/588/11 147/590/6 +f 135/591/6 147/590/6 158/592/15 +f 146/593/15 158/592/15 157/594/14 +f 145/595/14 157/594/14 156/596/3 +f 144/597/3 156/596/3 155/598/13 +f 143/599/13 155/598/13 154/600/12 +f 142/601/12 154/600/12 153/602/5 +f 166/604/21 119/858/18 112/573/18 +f 163/606/12 170/611/12 169/607/5 +f 160/609/17 167/613/17 166/604/21 +f 164/610/13 171/614/13 170/611/12 +f 161/612/16 168/616/16 167/613/17 +f 165/577/20 172/578/20 171/614/13 +f 162/615/5 169/860/5 168/616/16 +f 181/617/17 196/644/17 197/618/16 +f 175/620/10 189/645/10 190/621/18 +f 182/619/16 197/618/16 198/623/5 +f 177/625/19 192/641/19 191/626/14 +f 183/628/5 198/861/5 199/629/12 +f 178/627/14 191/626/14 193/631/15 +f 184/630/12 199/629/12 200/633/13 +f 179/632/15 193/631/15 188/635/6 +f 185/634/13 200/633/13 195/637/20 +f 176/622/18 190/621/18 194/639/21 +f 186/638/20 195/637/20 192/641/19 +f 173/636/6 188/635/6 187/642/11 +f 180/640/21 194/639/21 196/644/17 +f 174/643/11 187/642/11 189/645/10 +f 236/646/16 225/675/5 201/647/5 +f 229/649/14 230/658/15 206/650/15 +f 244/652/11 245/660/10 221/653/10 +f 237/655/5 238/662/12 214/656/12 +f 230/658/15 231/862/6 207/659/6 +f 245/660/10 246/667/4 222/661/4 +f 238/662/12 239/669/13 215/663/13 +f 231/664/6 232/671/11 208/665/11 +f 246/667/4 247/673/17 223/668/17 +f 239/669/13 240/677/3 216/670/3 +f 232/671/11 233/679/10 209/672/10 +f 247/673/17 248/681/16 224/674/16 +f 225/675/5 226/682/12 202/676/12 +f 240/677/3 241/684/14 217/678/14 +f 233/679/10 234/686/4 210/680/4 +f 248/681/16 237/655/5 213/657/5 +f 226/682/12 227/688/13 203/683/13 +f 241/684/14 242/690/15 218/685/15 +f 234/686/4 235/692/17 211/687/17 +f 227/688/13 228/693/3 204/689/3 +f 242/690/15 243/863/6 219/691/6 +f 235/692/17 236/646/16 212/648/16 +f 228/693/3 229/649/14 205/651/14 +f 243/694/6 244/652/11 220/654/11 +f 252/696/22 251/864/6 249/196/6 +f 256/697/22 257/699/22 252/696/22 +f 258/698/23 259/701/23 257/699/22 +f 261/700/24 262/732/24 259/701/23 +f 269/702/25 271/828/26 255/703/26 +f 268/416/22 267/203/6 265/705/6 +f 272/707/22 273/709/22 268/416/22 +f 274/708/23 275/711/23 273/709/22 +f 277/710/24 278/733/24 275/711/23 +f 263/715/29 313/730/30 316/716/30 +f 287/718/31 291/723/32 292/719/32 +f 290/219/33 294/722/34 293/721/34 +f 294/722/34 292/719/32 291/723/32 +f 288/725/31 284/865/5 301/866/5 +f 284/865/5 297/867/5 301/866/5 +f 295/868/5 283/215/5 299/724/5 +f 283/215/5 287/214/31 299/724/5 +f 288/725/31 301/866/5 299/724/5 +f 289/217/33 285/213/6 300/869/6 +f 285/213/6 296/870/6 300/869/6 +f 298/871/6 286/211/6 302/726/6 +f 286/211/6 290/219/33 302/726/6 +f 289/217/33 300/869/6 302/726/6 +f 317/727/30 314/827/30 279/728/29 +f 261/700/24 260/745/24 319/731/27 +f 318/713/27 276/712/24 278/733/24 +f 325/734/22 326/742/35 324/735/35 +f 315/737/36 282/740/37 321/738/37 +f 320/437/36 327/207/2 328/739/2 +f 282/740/37 281/743/7 322/741/7 +f 326/742/35 329/227/6 330/226/6 +f 281/743/7 325/734/22 323/736/22 +f 318/713/27 319/731/27 331/744/28 +f 316/716/30 317/727/30 334/746/38 +f 344/747/39 356/872/58 353/748/40 +f 340/263/42 344/747/39 341/749/41 +f 337/750/44 342/873/56 343/751/45 +f 344/747/39 340/263/42 346/753/47 +f 341/749/41 351/762/55 349/755/49 +f 345/756/50 347/760/53 348/754/48 +f 352/757/51 351/762/55 353/758/40 +f 338/752/46 343/751/45 347/760/53 +f 350/761/54 349/755/49 351/762/55 +f 337/763/44 350/761/54 352/757/51 +f 353/748/40 356/872/58 355/765/57 +f 342/767/56 354/766/52 355/765/57 +f 347/760/53 355/770/57 356/769/58 +f 368/445/59 361/782/72 360/771/60 +f 372/772/62 358/874/86 359/773/63 +f 367/446/65 373/271/71 365/775/66 +f 371/777/68 370/875/87 364/778/69 +f 373/271/71 367/446/65 368/445/59 +f 369/774/64 370/875/87 371/777/68 +f 359/780/63 358/876/86 357/781/4 +f 364/778/69 366/776/67 362/783/3 +f 379/785/73 380/789/73 376/786/74 +f 381/788/75 382/791/75 380/789/73 +f 383/790/76 384/793/76 382/791/75 +f 385/792/77 386/795/77 384/793/76 +f 387/794/78 388/797/78 386/795/77 +f 389/796/1 390/877/1 388/797/78 +f 391/282/31 392/278/31 390/280/5 +f 393/277/32 394/273/32 392/278/31 +f 395/276/1 396/274/1 394/273/32 +f 397/275/37 398/878/37 400/798/2 +f 398/799/37 397/460/37 403/285/22 +f 401/281/79 402/803/79 404/801/22 +f 405/802/80 406/804/80 402/803/79 +f 406/804/80 405/802/80 378/805/25 +f 407/807/81 408/810/81 410/808/82 +f 408/810/81 407/807/81 413/811/83 +f 411/813/78 412/819/78 414/812/83 +f 416/814/73 415/879/73 409/809/82 +f 418/815/75 417/823/75 415/816/73 +f 419/818/77 420/821/77 412/819/78 +f 421/820/76 422/822/76 420/821/77 +f 422/822/76 421/820/76 417/823/75 +f 426/320/1 430/315/84 429/321/84 +f 423/824/2 427/825/75 428/313/75 +f 430/315/84 432/314/9 431/322/9 +f 427/825/75 431/880/85 432/826/85 +f 255/703/26 271/828/26 314/827/30 +f 433/346/6 445/836/6 456/831/15 +f 438/332/16 450/833/16 449/832/17 +f 439/334/5 451/881/5 450/833/16 +f 440/339/12 452/835/12 451/834/5 +f 441/329/13 453/837/13 452/835/12 +f 434/347/11 446/838/11 445/836/6 +f 442/331/3 454/839/3 453/837/13 +f 435/326/10 447/840/10 446/838/11 +f 443/337/14 455/841/14 454/839/3 +f 436/336/4 448/842/4 447/840/10 +f 444/345/15 456/831/15 455/841/14 +f 437/342/17 449/832/17 448/842/4 +f 463/340/5 475/882/5 476/843/12 +f 460/335/4 472/853/4 473/844/17 +f 467/338/14 479/854/14 480/845/15 +f 457/350/6 469/849/6 470/846/11 +f 464/341/12 476/843/12 477/847/13 +f 461/343/17 473/844/17 474/848/16 +f 468/344/15 480/845/15 469/849/6 +f 458/327/11 470/846/11 471/850/10 +f 465/348/13 477/847/13 478/851/3 +f 462/349/16 474/848/16 475/852/5 +f 459/328/10 471/850/10 472/853/4 +f 466/330/3 478/851/3 479/854/14 diff --git a/src/main/resources/assets/hbm/models/weapons/mike_hawk.obj b/src/main/resources/assets/hbm/models/weapons/mike_hawk.obj new file mode 100644 index 000000000..79fe254f9 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/mike_hawk.obj @@ -0,0 +1,2978 @@ +# Blender v2.79 (sub 0) OBJ File: 'mike_hawk.blend' +# www.blender.org +o SlideM +v -10.000000 0.000000 0.374999 +v -10.000000 0.000000 -0.375001 +v -3.500000 0.000000 0.375000 +v -10.000000 1.000000 -0.250001 +v -10.000000 0.875000 -0.216507 +v -10.000000 0.783494 -0.125001 +v -10.000000 0.750000 -0.000001 +v -10.000000 0.783494 0.124999 +v -10.000000 0.875000 0.216506 +v -10.000000 1.000000 0.249999 +v -10.000000 1.125000 0.216506 +v -10.000000 1.216506 0.124999 +v -10.000000 1.250000 -0.000001 +v -10.000000 1.216506 -0.125000 +v -10.000000 1.125000 -0.216507 +v -10.000000 -0.250000 0.124999 +v -10.000000 -0.250000 -0.125001 +v -10.000000 1.500000 0.249999 +v -10.000000 1.375000 0.374999 +v -10.000000 1.375000 -0.375001 +v -10.000000 1.500000 -0.250001 +v -1.500000 1.500000 -0.250000 +v -1.500000 1.375000 0.375000 +v -1.500000 1.500000 0.250000 +v -1.500000 1.500000 0.000000 +v -1.500000 1.000000 0.375000 +v 0.000000 1.500000 -0.250000 +v 0.000000 1.500000 0.000000 +v 0.000000 1.000000 0.375000 +v -1.500000 1.000000 0.250000 +v 0.000000 1.000000 0.250000 +v -1.500000 1.375000 0.000000 +v 0.000000 1.375000 0.000000 +v -1.500000 1.375000 0.250000 +v 0.000000 1.375000 0.375000 +v 0.000000 1.500000 0.250000 +v 0.000000 1.375000 0.250000 +v -3.500000 -0.250000 -0.125000 +v -3.500000 -0.250000 0.125000 +v 3.000000 1.500000 -0.250000 +v 3.062500 1.375000 -0.375000 +v 3.062500 1.375000 0.375000 +v 3.000000 1.500000 0.250000 +v 3.500000 0.500000 0.375000 +v 3.500000 0.500000 -0.375000 +v 3.500000 0.000000 0.375000 +v 3.500000 0.000000 -0.375000 +v -3.500000 0.000000 -0.375000 +v 3.500000 0.500000 -0.125000 +v 3.500000 0.500000 0.125000 +v 3.125000 1.250000 -0.125000 +v 3.125000 1.250000 0.125000 +v 3.500000 0.000000 -0.125000 +v 3.500000 0.000000 0.125000 +v 1.500000 0.000000 -0.125000 +v 1.500000 0.000000 0.125000 +v 1.500000 1.250000 0.125000 +v 1.500000 1.250000 -0.125000 +v -9.812500 1.500000 -0.187501 +v -8.937500 1.500000 -0.187501 +v -9.812500 1.500000 0.187499 +v -8.937500 1.500000 0.187499 +v -9.812500 1.625000 0.187499 +v -9.812500 1.625000 -0.187501 +v -9.187500 1.625000 -0.187501 +v -9.187500 1.625000 0.187499 +v -9.750000 1.625000 -0.062501 +v -9.250000 1.625000 -0.062501 +v -9.750000 1.625000 0.062499 +v -9.250000 1.625000 0.062499 +v -9.750000 1.750000 0.062499 +v -9.750000 1.750000 -0.062501 +v -9.250000 1.750000 -0.062501 +v -9.250000 1.750000 0.062499 +v 1.812500 1.500000 -0.187500 +v 2.437500 1.500000 -0.187500 +v 1.812500 1.500000 0.187500 +v 2.437500 1.500000 0.187500 +v 2.062500 1.625000 0.187500 +v 2.062500 1.625000 -0.187500 +v 2.437500 1.625000 -0.062500 +v 2.437500 1.625000 0.062500 +v 2.437500 1.750000 -0.187500 +v 2.437500 1.750000 0.187500 +v 2.437500 1.750000 -0.062500 +v 2.437500 1.750000 0.062500 +v 2.187500 1.625000 -0.187500 +v 2.187500 1.625000 0.187500 +v 2.312500 1.750000 -0.187500 +v 2.312500 1.750000 0.187500 +v 2.312500 1.750000 -0.062500 +v 2.312500 1.750000 0.062500 +v 2.187500 1.625000 -0.062500 +v 2.187500 1.625000 0.062500 +vt 0.348718 0.713178 +vt 0.430769 0.542636 +vt 0.082051 0.542636 +vt 0.082051 0.186047 +vt 0.348718 0.217054 +vt 0.348718 0.186047 +vt 0.430769 0.527132 +vt 0.082051 0.527132 +vt 0.430769 0.496124 +vt 0.430769 0.465116 +vt 0.082051 0.465116 +vt 0.070258 0.480977 +vt 0.071623 0.496376 +vt 0.076923 0.449612 +vt 0.066529 0.469703 +vt 0.076923 0.542636 +vt 0.070258 0.511776 +vt 0.066529 0.523049 +vt 0.020513 0.542636 +vt 0.061435 0.527176 +vt 0.020513 0.449612 +vt 0.056341 0.469703 +vt 0.061435 0.465577 +vt 0.051248 0.496376 +vt 0.052612 0.480977 +vt 0.492308 0.496124 +vt 0.492308 0.573643 +vt 0.430769 0.589147 +vt 0.492308 0.589147 +vt 0.430769 0.511628 +vt 0.435897 0.527132 +vt 0.446154 0.511628 +vt 0.435897 0.511628 +vt 0.430769 0.573643 +vt 0.430769 0.527132 +vt 0.487179 0.527132 +vt 0.492308 0.527132 +vt 0.487179 0.511628 +vt 0.476923 0.511628 +vt 0.476923 0.527132 +vt 0.487179 0.573643 +vt 0.492308 0.573643 +vt 0.492308 0.542636 +vt 0.615385 0.527132 +vt 0.492308 0.527132 +vt 0.635897 0.713178 +vt 0.492308 0.465116 +vt 0.615385 0.465116 +vt 0.615385 0.449612 +vt 0.348718 0.248062 +vt 0.082051 0.279070 +vt 0.348718 0.279070 +vt 0.656410 0.449612 +vt 0.676923 0.480620 +vt 0.676923 0.449612 +vt 0.082051 0.217054 +vt 0.082051 0.248062 +vt 0.635897 0.279070 +vt 0.358974 0.279070 +vt 0.358974 0.186047 +vt 0.000000 0.883721 +vt 0.082051 0.883721 +vt 0.082051 0.821705 +vt 0.625641 0.480620 +vt 0.620513 0.449612 +vt 0.620513 0.542636 +vt 0.625641 0.511628 +vt 0.656410 0.542636 +vt 0.656410 0.480620 +vt 0.348718 0.806202 +vt 0.553846 0.775194 +vt 0.553846 0.744186 +vt 0.676923 0.542636 +vt 0.656410 0.511628 +vt 0.082051 0.604651 +vt 0.082051 0.542636 +vt 0.000000 0.542636 +vt 0.000000 0.697674 +vt 0.066667 0.728682 +vt 0.066667 0.697674 +vt 0.169231 0.775194 +vt 0.194872 0.728682 +vt 0.169231 0.728682 +vt 0.164103 0.728682 +vt 0.164103 0.775194 +vt 0.194872 0.775194 +vt 0.169231 0.790698 +vt 0.205128 0.790698 +vt 0.169231 0.713178 +vt 0.205128 0.713178 +vt 0.205128 0.775194 +vt 0.205128 0.728682 +vt 0.210256 0.744186 +vt 0.230769 0.728682 +vt 0.210256 0.728682 +vt 0.235897 0.744186 +vt 0.235897 0.728682 +vt 0.205128 0.728682 +vt 0.205128 0.744186 +vt 0.230769 0.744186 +vt 0.210256 0.759690 +vt 0.230769 0.759690 +vt 0.230769 0.713178 +vt 0.210256 0.713178 +vt 0.066667 0.217054 +vt 0.071795 0.232558 +vt 0.071795 0.217054 +vt 0.082051 0.310078 +vt 0.071795 0.325581 +vt 0.082051 0.325581 +vt 0.061538 0.279070 +vt 0.046154 0.294574 +vt 0.071795 0.294574 +vt 0.082051 0.263566 +vt 0.082051 0.217054 +vt 0.076923 0.248062 +vt 0.066667 0.341085 +vt 0.056410 0.294574 +vt 0.056410 0.341085 +vt 0.066667 0.248062 +vt 0.071795 0.263566 +vt 0.071795 0.248062 +vt 0.076923 0.341085 +vt 0.076923 0.294574 +vt 0.071795 0.310078 +vt 0.061538 0.232558 +vt 0.066667 0.232558 +vt 0.061538 0.263566 +vt 0.066667 0.263566 +vt 0.071795 0.294574 +vt 0.066667 0.294574 +vt 0.071795 0.186047 +vt 0.056410 0.201550 +vt 0.061538 0.201550 +vt 0.615385 0.542636 +vt 0.082051 0.713178 +vt 0.056341 0.523049 +vt 0.010256 0.511628 +vt 0.052612 0.511776 +vt 0.010256 0.480620 +vt 0.430769 0.573643 +vt 0.492308 0.511628 +vt 0.446154 0.527132 +vt 0.435897 0.573643 +vt 0.082051 0.449612 +vt 0.635897 0.341085 +vt 0.000000 0.728682 +vt 0.635897 0.806202 +vt 0.635897 0.775194 +vt 0.635897 0.744186 +vt 0.676923 0.511628 +vt 0.056410 0.279070 +vt 0.076923 0.232558 +vt 0.082051 0.341085 +vt 0.082051 0.294574 +vt 0.061538 0.217054 +vt 0.061538 0.248062 +vt 0.071795 0.341085 +vt 0.046154 0.186047 +vt 0.635897 0.651163 +vn -0.0000 0.0000 1.0000 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 0.7071 0.7071 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.0000 -1.0000 +vn 0.8944 0.4472 0.0000 +vn 0.4472 0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 3/1/1 23/2/1 19/3/1 +f 1/4/2 39/5/2 3/6/2 +f 19/3/3 24/7/3 18/8/3 +f 25/9/4 22/10/4 21/11/4 +f 21/11/5 14/12/5 13/13/5 +f 14/12/5 20/14/5 15/15/5 +f 19/16/5 12/17/5 11/18/5 +f 1/19/5 19/16/5 10/20/5 +f 2/21/5 5/22/5 4/23/5 +f 7/24/5 6/25/5 2/21/5 +f 28/26/4 22/10/4 25/9/4 +f 31/27/4 26/28/4 29/29/4 +f 32/30/1 28/26/1 25/9/1 +f 34/31/6 25/32/6 24/33/6 +f 26/34/6 34/31/6 23/35/6 +f 23/35/6 34/31/6 24/33/6 +f 37/36/5 35/37/5 36/38/5 +f 37/36/5 28/39/5 33/40/5 +f 35/37/5 31/41/5 29/42/5 +f 35/43/3 43/44/3 36/45/3 +f 29/29/1 3/1/1 46/46/1 +f 27/47/7 40/48/7 41/49/7 +f 28/26/4 43/44/4 40/48/4 +f 38/50/8 2/51/8 48/52/8 +f 45/53/6 53/54/6 47/55/6 +f 38/50/9 16/56/9 17/57/9 +f 48/52/10 41/49/10 47/58/10 +f 39/5/6 48/59/6 3/60/6 +f 55/61/1 53/62/1 49/63/1 +f 43/44/11 51/64/11 40/48/11 +f 40/48/11 51/64/11 41/65/11 +f 42/66/11 52/67/11 43/44/11 +f 44/68/11 52/67/11 42/66/11 +f 45/53/11 51/64/11 49/69/11 +f 48/70/9 55/71/9 56/72/9 +f 46/73/6 50/74/6 44/68/6 +f 50/75/10 54/76/10 56/77/10 +f 57/78/9 51/79/9 52/80/9 +f 63/81/4 65/82/4 64/83/4 +f 63/81/5 59/84/5 61/85/5 +f 66/86/1 61/87/1 62/88/1 +f 59/89/10 65/82/10 60/90/10 +f 65/82/12 62/91/12 60/92/12 +f 71/93/4 73/94/4 72/95/4 +f 73/94/6 70/96/6 68/97/6 +f 71/93/5 67/98/5 69/99/5 +f 74/100/1 69/101/1 70/102/1 +f 72/95/10 68/103/10 67/104/10 +f 89/105/4 85/106/4 83/107/4 +f 81/108/4 94/109/4 82/110/4 +f 88/111/1 77/112/1 78/113/1 +f 78/114/6 76/115/6 82/116/6 +f 79/117/13 75/118/13 77/119/13 +f 92/120/4 84/121/4 86/122/4 +f 92/123/10 82/110/10 94/109/10 +f 81/108/1 91/124/1 93/125/1 +f 89/105/14 93/126/14 91/127/14 +f 92/120/14 88/128/14 90/129/14 +f 93/125/4 87/130/4 80/131/4 +f 76/132/10 80/133/10 87/134/10 +f 46/46/1 42/135/1 29/29/1 +f 19/3/1 1/136/1 3/1/1 +f 3/1/1 26/28/1 23/2/1 +f 1/4/2 16/56/2 39/5/2 +f 19/3/3 23/2/3 24/7/3 +f 21/11/4 18/8/4 25/9/4 +f 18/8/4 24/7/4 25/9/4 +f 13/13/5 12/17/5 18/8/5 +f 18/8/5 21/11/5 13/13/5 +f 14/12/5 21/11/5 20/14/5 +f 19/16/5 18/8/5 12/17/5 +f 10/20/5 9/137/5 1/19/5 +f 19/16/5 11/18/5 10/20/5 +f 4/23/5 15/15/5 20/14/5 +f 20/14/5 2/21/5 4/23/5 +f 16/138/5 1/19/5 2/21/5 +f 1/19/5 9/137/5 8/139/5 +f 1/19/5 8/139/5 7/24/5 +f 2/21/5 17/140/5 16/138/5 +f 6/25/5 5/22/5 2/21/5 +f 1/19/5 7/24/5 2/21/5 +f 28/26/4 27/47/4 22/10/4 +f 31/27/4 30/141/4 26/28/4 +f 32/30/1 33/142/1 28/26/1 +f 34/31/6 32/143/6 25/32/6 +f 26/34/6 30/144/6 34/31/6 +f 37/36/5 36/38/5 28/39/5 +f 35/37/5 37/36/5 31/41/5 +f 35/43/3 42/135/3 43/44/3 +f 29/29/1 26/28/1 3/1/1 +f 41/49/7 20/145/7 22/10/7 +f 20/145/7 21/11/7 22/10/7 +f 41/49/7 22/10/7 27/47/7 +f 40/48/4 27/47/4 28/26/4 +f 28/26/4 36/45/4 43/44/4 +f 38/50/8 17/57/8 2/51/8 +f 45/53/6 49/69/6 53/54/6 +f 38/50/9 39/5/9 16/56/9 +f 48/52/10 2/51/10 20/145/10 +f 20/145/10 41/49/10 48/52/10 +f 41/49/10 45/146/10 47/58/10 +f 39/5/6 38/50/6 48/59/6 +f 49/63/1 51/79/1 55/61/1 +f 51/79/1 58/147/1 55/61/1 +f 43/44/11 52/67/11 51/64/11 +f 44/68/11 50/74/11 52/67/11 +f 45/53/11 41/65/11 51/64/11 +f 46/46/9 3/1/9 56/72/9 +f 3/1/9 48/70/9 56/72/9 +f 48/70/9 47/148/9 55/71/9 +f 47/148/9 53/149/9 55/71/9 +f 56/72/9 54/150/9 46/46/9 +f 46/73/6 54/151/6 50/74/6 +f 57/78/10 52/80/10 56/77/10 +f 52/80/10 50/75/10 56/77/10 +f 57/78/9 58/147/9 51/79/9 +f 63/81/4 66/86/4 65/82/4 +f 63/81/5 64/83/5 59/84/5 +f 66/86/1 63/81/1 61/87/1 +f 59/89/10 64/83/10 65/82/10 +f 65/82/12 66/86/12 62/91/12 +f 71/93/4 74/100/4 73/94/4 +f 73/94/6 74/100/6 70/96/6 +f 71/93/5 72/95/5 67/98/5 +f 74/100/1 71/93/1 69/101/1 +f 72/95/10 73/94/10 68/103/10 +f 89/105/4 91/127/4 85/106/4 +f 81/108/4 93/125/4 94/109/4 +f 78/113/1 84/121/1 90/129/1 +f 88/111/1 79/152/1 77/112/1 +f 78/113/1 90/129/1 88/111/1 +f 76/115/6 83/107/6 81/153/6 +f 83/107/6 85/106/6 81/153/6 +f 86/122/6 84/121/6 82/116/6 +f 84/121/6 78/114/6 82/116/6 +f 76/115/6 81/153/6 82/116/6 +f 79/117/13 80/131/13 75/118/13 +f 92/120/4 90/129/4 84/121/4 +f 92/123/10 86/154/10 82/110/10 +f 81/108/1 85/155/1 91/124/1 +f 89/105/14 87/156/14 93/126/14 +f 92/120/14 94/157/14 88/128/14 +f 80/131/4 79/117/4 94/109/4 +f 79/117/4 88/158/4 94/109/4 +f 94/109/4 93/125/4 80/131/4 +f 76/132/10 75/159/10 80/133/10 +f 87/134/10 89/105/10 76/132/10 +f 89/105/10 83/107/10 76/132/10 +f 44/160/1 42/135/1 46/46/1 +f 42/135/1 35/43/1 29/29/1 +o GripM +v 0.000000 1.000000 -0.250000 +v -10.125000 1.000000 -0.250001 +v 0.000000 0.875000 -0.216506 +v -10.125000 0.875000 -0.216507 +v 0.000000 0.783494 -0.125000 +v -10.125000 0.783494 -0.125001 +v -0.000000 0.750000 0.000000 +v -10.125000 0.750000 -0.000001 +v -0.000000 0.783494 0.125000 +v -10.125000 0.783494 0.124999 +v -0.000000 0.875000 0.216506 +v -10.125000 0.875000 0.216506 +v -0.000000 1.000000 0.250000 +v -10.125000 1.000000 0.249999 +v -0.000000 1.125000 0.216506 +v -10.125000 1.125000 0.216506 +v -0.000000 1.216506 0.125000 +v -10.125000 1.216506 0.124999 +v -0.000000 1.250000 0.000000 +v -10.125000 1.250000 -0.000001 +v 0.000000 1.216506 -0.125000 +v -10.125000 1.216506 -0.125001 +v 0.000000 1.125000 -0.216506 +v -10.125000 1.125000 -0.216507 +v -10.125000 0.906250 -0.162381 +v -10.125000 1.000000 -0.187501 +v -10.125000 0.837620 -0.093751 +v -10.125000 0.812500 -0.000001 +v -10.125000 0.837620 0.093749 +v -10.125000 0.906250 0.162379 +v -10.125000 1.000000 0.187499 +v -10.125000 1.093750 0.162379 +v -10.125000 1.162380 0.093749 +v -10.125000 1.187500 -0.000001 +v -10.125000 1.162380 -0.093751 +v -10.125000 1.093750 -0.162381 +v 0.000000 0.906250 -0.162368 +v 0.000000 1.000000 -0.187489 +v 0.000000 0.837620 -0.093739 +v -0.000000 0.812500 0.000011 +v -0.000000 0.837620 0.093761 +v -0.000000 0.906250 0.162391 +v -0.000000 1.000000 0.187511 +v -0.000000 1.093750 0.162391 +v -0.000000 1.162380 0.093761 +v -0.000000 1.187500 0.000011 +v 0.000000 1.162380 -0.093739 +v 0.000000 1.093750 -0.162368 +v 0.000000 1.125000 -0.216506 +v 0.000000 1.216506 -0.125000 +v 0.000000 1.000000 -0.250000 +v -1.500000 1.000000 0.250000 +v -1.500000 1.375000 0.000000 +v -1.500000 1.375000 0.250000 +v -0.000000 1.000000 0.250000 +v 0.000000 1.375000 0.000000 +v -0.000000 1.375000 0.250000 +v 0.000000 1.375000 -0.250000 +v 0.000000 1.250000 0.000000 +v -0.000000 1.125000 0.216506 +v -0.000000 1.216506 0.125000 +v 1.500000 1.375000 0.250000 +v 0.000000 0.875000 -0.216506 +v 0.000000 0.783494 -0.125000 +v -0.000000 0.750000 0.000000 +v -0.000000 0.783494 0.125000 +v -0.000000 0.875000 0.216506 +v 1.500000 1.000000 0.250000 +v 1.500000 1.000000 -0.250000 +v 1.500000 0.875000 -0.216506 +v 1.500000 0.783494 -0.125000 +v 1.500000 0.750000 0.000000 +v 1.500000 0.783494 0.125000 +v 1.500000 0.875000 0.216506 +v 1.500000 1.000000 0.250000 +v 1.500000 1.375000 0.000000 +v 1.500000 1.375000 -0.250000 +v -3.500000 -0.187500 -0.125000 +v 3.500000 -0.187500 -0.125000 +v -3.500000 -0.187500 0.125000 +v 3.500000 -0.187500 0.125000 +v -3.500000 0.000000 0.312500 +v -3.500000 0.000000 -0.312500 +v 3.500000 0.000000 -0.312500 +v 3.500000 0.000000 0.312500 +v 3.000000 1.250000 -0.125000 +v 3.000000 1.250000 0.125000 +v 3.000000 0.000000 0.125000 +v 3.000000 0.000000 -0.125000 +v 1.250000 -1.687500 -0.125000 +v 1.250000 -1.687500 0.125000 +v 0.500000 -1.437500 -0.125000 +v 0.500000 -1.437500 0.125000 +v -1.000000 -1.437500 -0.125000 +v -1.000000 -1.437500 0.125000 +v -1.250000 -0.687500 -0.125000 +v -1.250000 -0.687500 0.125000 +v -1.750000 -0.187500 -0.125000 +v -1.750000 -0.187500 0.125000 +v -0.750000 -0.187500 -0.125000 +v -0.750000 -0.187500 0.125000 +v -1.000000 -0.687500 -0.125000 +v -1.000000 -0.687500 0.125000 +v -0.875000 -1.187500 -0.125000 +v -0.875000 -1.187500 0.125000 +v 0.500000 -1.187500 -0.125000 +v 0.500000 -1.187500 0.125000 +v 0.750000 -0.687500 -0.125000 +v 0.750000 -0.687500 0.125000 +v 0.625000 0.062500 -0.125000 +v 0.625000 0.062500 0.125000 +v 1.000000 0.187500 -0.125000 +v 0.750000 -0.187500 -0.125000 +v 1.750000 -3.187500 -0.250000 +v 2.625000 -0.187500 -0.250000 +v 2.750000 -0.937500 -0.250000 +v 3.112560 -1.437500 -0.250000 +v 3.500000 -2.437500 -0.250000 +v 1.500000 -3.437500 -0.250000 +v 3.500000 -3.437500 -0.250000 +v 1.000000 0.187500 0.125000 +v 0.750000 -0.187500 0.125000 +v 0.000000 -0.187500 -0.125000 +v 0.000000 -0.187500 0.125000 +v 0.125000 -0.562500 -0.125000 +v 0.125000 -0.562500 0.125000 +v 0.000000 -1.062500 -0.125000 +v 0.000000 -1.062500 0.125000 +v 0.375000 -0.562500 -0.125000 +v 0.375000 -0.562500 0.125000 +v 0.437500 -0.187500 -0.125000 +v 0.437500 -0.187500 0.125000 +v 3.500000 -3.437500 0.250000 +v 1.500000 -3.437500 0.250000 +v 3.500000 -2.437500 0.250000 +v 3.112560 -1.437500 0.250000 +v 2.750000 -0.937500 0.250000 +v 2.625000 -0.187500 0.250000 +v 1.750000 -3.187500 0.250000 +v 1.250000 -1.687500 0.250000 +v 1.750000 -3.437500 0.500000 +v 3.250000 -3.437500 0.500000 +v 3.250000 -2.437500 0.500000 +v 2.862560 -1.437500 0.500000 +v 2.500000 -0.937500 0.500000 +v 2.375000 -0.187500 0.500000 +v 2.000000 -3.187500 0.500000 +v 1.000000 -0.187500 0.500000 +v 2.375000 0.187500 0.250000 +v 1.000000 0.187500 0.250000 +v 0.750000 -0.187500 0.250000 +v 1.250000 -1.687500 -0.250000 +v 3.250000 -3.437500 -0.500000 +v 1.750000 -3.437500 -0.500000 +v 3.250000 -2.437500 -0.500000 +v 2.862560 -1.437500 -0.500000 +v 2.500000 -0.937500 -0.500000 +v 2.375000 -0.187500 -0.500000 +v 2.000000 -3.187500 -0.500000 +v 2.375000 0.187500 -0.250000 +v 1.000000 -0.187500 -0.500000 +v 1.000000 0.187500 -0.250000 +v 0.750000 -0.187500 -0.250000 +v 3.000000 -0.187500 -0.250000 +v 3.000000 -0.187500 0.250000 +v 3.250000 0.062500 -0.250000 +v 3.250000 0.062500 0.250000 +v 2.750000 -0.562500 -0.250000 +v 2.750000 -0.562500 0.250000 +vt 0.420513 0.046512 +vt 0.417949 0.031008 +vt 0.417949 0.046512 +vt -0.000000 0.170543 +vt 0.002564 0.186047 +vt 0.002564 0.170543 +vt 0.420513 0.031008 +vt 0.417949 0.015504 +vt 0.420513 0.015504 +vt 0.417949 0.000000 +vt 0.420513 0.139535 +vt 0.417949 0.124031 +vt 0.417949 0.139535 +vt 0.417949 0.155039 +vt 0.420513 0.186047 +vt 0.417949 0.170543 +vt 0.417949 0.186047 +vt 0.420513 0.108527 +vt 0.417949 0.108527 +vt 0.420513 0.155039 +vt 0.420513 0.093023 +vt 0.417949 0.093023 +vt 0.417949 0.077519 +vt 0.420513 0.062016 +vt 0.417949 0.062016 +vt 0.000000 -0.000000 +vt 0.002564 0.015504 +vt 0.002564 -0.000000 +vt 0.000000 0.015504 +vt 0.002564 0.031008 +vt 0.000000 0.031008 +vt 0.002564 0.046512 +vt 0.000000 0.062016 +vt 0.002564 0.062016 +vt -0.000000 0.077519 +vt 0.002564 0.077519 +vt -0.000000 0.093023 +vt 0.002564 0.093023 +vt 0.000000 0.108527 +vt 0.002564 0.108527 +vt 0.000000 0.124031 +vt 0.002564 0.124031 +vt 0.000000 0.139535 +vt 0.002564 0.139535 +vt 0.002564 0.155039 +vt 0.000000 0.155039 +vt 0.246154 0.806202 +vt 0.184615 0.852713 +vt 0.246154 0.852713 +vt 0.246154 0.883721 +vt 0.182051 0.821705 +vt 0.179487 0.829457 +vt 0.169231 0.829457 +vt 0.166667 0.821705 +vt 0.164103 0.852713 +vt 0.102564 0.852713 +vt 0.164103 0.883721 +vt 0.082051 0.806202 +vt 0.082051 0.852713 +vt 0.092308 0.852713 +vt 0.087179 0.782946 +vt 0.084615 0.790698 +vt 0.541026 0.860465 +vt 0.253846 0.829457 +vt 0.253846 0.860465 +vt 0.253846 0.961240 +vt 0.541026 0.883721 +vt 0.253846 0.883721 +vt 0.541026 0.806202 +vt 0.541026 0.829457 +vt 0.548718 0.883721 +vt 0.246154 0.806202 +vt 0.010256 0.186047 +vt 0.000000 0.341085 +vt 0.010256 0.341085 +vt 0.805128 0.759690 +vt 0.835897 0.790698 +vt 0.835897 0.759690 +vt 0.743590 0.759690 +vt 0.805128 0.790698 +vt 0.712821 0.759690 +vt 0.743590 0.790698 +vt 0.692308 0.759690 +vt 0.712821 0.790698 +vt 0.712821 0.821705 +vt 0.692308 0.790698 +vt 0.692308 0.821705 +vt 0.733333 0.821705 +vt 0.712821 0.790698 +vt 0.789744 0.821705 +vt 0.733333 0.790698 +vt 0.810256 0.821705 +vt 0.789744 0.790698 +vt 0.841026 0.821705 +vt 0.810256 0.790698 +vt 0.884615 0.868217 +vt 0.905128 0.930233 +vt 0.894872 0.868217 +vt 0.900000 0.806202 +vt 0.894872 0.775194 +vt 0.956410 0.775194 +vt 0.956410 0.806202 +vt 0.987179 0.744186 +vt 0.966667 0.868217 +vt 0.961538 0.961240 +vt 0.966667 0.930233 +vt 0.976923 0.976744 +vt 0.956410 0.775194 +vt 0.900000 0.806202 +vt 0.894872 0.775194 +vt 0.966667 0.930233 +vt 0.976923 0.976744 +vt 0.961538 0.961240 +vt 0.966667 0.868217 +vt 0.884615 0.868217 +vt 0.894872 0.868217 +vt 0.987179 0.744186 +vt 0.905128 0.930233 +vt 0.864103 0.930233 +vt 0.661538 0.651163 +vt 0.671795 0.697674 +vt 0.671795 0.651163 +vt 0.661538 0.697674 +vt 0.671795 0.759690 +vt 0.661538 0.759690 +vt 0.671795 0.821705 +vt 0.661538 0.821705 +vt 0.671795 0.868217 +vt 0.651282 0.759690 +vt 0.651282 0.821705 +vt 0.689744 0.868217 +vt 0.682051 0.821705 +vt 0.728205 0.217054 +vt 0.728205 0.279070 +vt 0.738462 0.310078 +vt 0.846154 0.713178 +vt 0.830769 0.620155 +vt 0.830769 0.666667 +vt 0.810256 0.620155 +vt 0.794872 0.713178 +vt 0.810256 0.666667 +vt 0.866667 0.759690 +vt 0.830769 0.713178 +vt 0.830769 0.759690 +vt 0.774359 0.759690 +vt 0.810256 0.713178 +vt -0.000000 0.186047 +vt 0.420513 0.000000 +vt 0.420513 0.124031 +vt 0.420513 0.170543 +vt 0.420513 0.077519 +vt 0.000000 0.046512 +vt 0.184615 0.806202 +vt 0.184615 0.883721 +vt 0.174359 0.837209 +vt 0.174359 0.852713 +vt 0.164103 0.806202 +vt 0.102564 0.883721 +vt 0.102564 0.806202 +vt 0.100000 0.790698 +vt 0.097436 0.782946 +vt 0.092308 0.775194 +vt 0.082051 0.806202 +vt 0.541026 0.961240 +vt 0.253846 0.806202 +vt 0.548718 0.806202 +vt 0.246154 0.883721 +vt 0.000000 0.186047 +vt 0.692308 0.790698 +vt 0.841026 0.790698 +vt 0.864103 0.930233 +vt 0.956410 0.806202 +vt 0.661538 0.868217 +vt 0.643590 0.868217 +vt 0.682051 0.759690 +vt 0.800000 0.310078 +vt 0.800000 0.186047 +vt 0.810256 0.279070 +vt 0.810256 0.217054 +vt 0.738462 0.186047 +vt 0.810256 0.759690 +vt 0.835897 0.046512 +vt 0.835897 0.186047 +vt 0.835897 0.108527 +vt 0.835897 0.062016 +vt 0.835897 0.015504 +vt 0.835897 0.124031 +vt 0.835897 0.155039 +vt 0.835897 0.077519 +vt 0.835897 0.031008 +vt 0.835897 0.139535 +vt 0.835897 0.170543 +vt 0.835897 0.093023 +vt 0.102564 0.744186 +vt 0.164103 0.759690 +vt 0.164103 0.744186 +vt 0.102564 0.775194 +vt 0.164103 0.790698 +vt 0.164103 0.775194 +vt 0.102564 0.728682 +vt 0.164103 0.728682 +vt 0.102564 0.759690 +vt 0.102564 0.790698 +vt 0.164103 0.713178 +vt 0.102564 0.713178 +vt 0.830769 0.310078 +vt 0.810256 0.434109 +vt 0.830769 0.434109 +vt 0.810256 0.558140 +vt 0.830769 0.558140 +vt 0.697436 0.341085 +vt 0.676923 0.310078 +vt 0.676923 0.341085 +vt 0.682051 0.527132 +vt 0.697436 0.713178 +vt 0.692308 0.759690 +vt 0.697436 0.759690 +vt 0.748718 0.341085 +vt 0.697436 0.527132 +vt 0.692308 0.713178 +vt 0.717949 0.527132 +vt 0.738462 0.341085 +vt 0.748718 0.341085 +vt 0.784615 0.558140 +vt 0.800000 0.434109 +vt 0.707692 0.713178 +vt 0.707692 0.759690 +vt 0.764103 0.759690 +vt 0.764103 0.713178 +vt 0.774359 0.713178 +vt 0.769231 0.620155 +vt 0.779487 0.620155 +vt 0.810256 0.310078 +vt 0.794872 0.558140 +vt 0.738462 0.341085 +vt 0.728205 0.310078 +vt 0.707692 0.713178 +vt 0.769231 0.620155 +vt 0.738462 0.310078 +vt 0.810256 0.434109 +vt 0.800000 0.310078 +vt 0.810256 0.310078 +vt 0.794872 0.558140 +vt 0.800000 0.434109 +vt 0.779487 0.620155 +vt 0.784615 0.558140 +vt 0.774359 0.713178 +vt 0.764103 0.759690 +vt 0.707692 0.759690 +vt 0.764103 0.713178 +vt 0.697436 0.713178 +vt 0.676923 0.713178 +vt 0.682051 0.759690 +vt 0.682051 0.713178 +vt 0.717949 0.527132 +vt 0.835897 0.000000 +vt 0.697436 0.310078 +vt 0.676923 0.527132 +vt 0.692308 0.527132 +vt 0.728205 0.310078 +vt 0.676923 0.759690 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn -0.3162 -0.9487 0.0000 +vn -0.9487 -0.3162 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.8944 -0.4472 0.0000 +vn 0.9701 0.2425 0.0000 +vn -0.8944 0.4472 0.0000 +vn -0.9864 -0.1644 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9701 0.2425 0.0000 +vn 0.8000 -0.6000 0.0000 +vn 0.9864 -0.1644 0.0000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn -0.0000 -0.8660 0.5000 +vn -0.0000 -0.5000 0.8660 +vn -0.0000 0.5000 0.8660 +vn -0.0000 0.8660 0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5000 -0.8660 +vn -0.0000 0.1305 0.9914 +vn 0.0000 0.2588 -0.9659 +vn 0.9239 0.0000 0.3827 +vn 0.9162 0.1662 -0.3645 +vn 0.9162 0.1662 0.3645 +vn 0.8287 0.4395 -0.3465 +vn 0.8287 0.4395 0.3465 +vn 0.8603 0.3367 -0.3828 +vn 0.8603 0.3367 0.3828 +vn 0.7733 -0.6340 0.0000 +vn 0.9571 -0.2898 0.0000 +vn -0.8727 0.2440 -0.4229 +vn -0.6861 0.6861 0.2418 +vn -0.8727 0.2440 0.4229 +vn 0.7071 -0.7071 0.0000 +vn -0.9301 0.1173 -0.3481 +vn -0.8321 0.5547 0.0000 +vn -0.5496 0.6292 -0.5496 +vn -0.2557 0.0494 -0.9655 +vn 0.3827 0.0000 -0.9239 +vn -0.4602 0.4602 -0.7592 +vn -0.8812 -0.2937 -0.3705 +vn -0.9912 0.1327 0.0000 +vn -0.8812 -0.2937 0.3705 +vn -0.2557 0.0494 0.9655 +vn 0.3830 0.2240 -0.8962 +vn 0.4161 0.0853 -0.9053 +vn -0.3931 0.1897 -0.8997 +vn 0.2291 0.5399 -0.8099 +vn 0.3304 0.2876 -0.8989 +vn 0.6853 0.2467 -0.6853 +vn 0.3243 0.1224 -0.9380 +vn 0.9239 0.0000 -0.3827 +vn -0.6861 0.6861 -0.2418 +vn -0.3931 0.1897 0.8997 +vn 0.3243 0.1224 0.9380 +vn -0.4602 0.4602 0.7592 +vn 0.3827 0.0000 0.9239 +vn 0.4161 0.0853 0.9053 +vn 0.3830 0.2240 0.8962 +vn 0.6853 0.2467 0.6853 +vn 0.2291 0.5399 0.8099 +vn -0.5496 0.6292 0.5496 +vn 0.3304 0.2876 0.8989 +vn -0.9301 0.1173 0.3481 +s off +f 125/161/15 106/162/15 108/163/15 +f 133/164/16 101/165/16 99/166/16 +f 124/167/15 104/168/15 106/162/15 +f 123/169/15 102/170/15 104/168/15 +f 120/171/15 118/172/15 96/173/15 +f 98/174/15 120/171/15 96/173/15 +f 122/175/15 100/176/15 102/177/15 +f 118/172/15 129/178/15 116/179/15 +f 100/176/15 119/180/15 98/174/15 +f 116/179/15 128/181/15 114/182/15 +f 128/181/15 112/183/15 114/182/15 +f 112/183/15 126/184/15 110/185/15 +f 110/185/15 125/161/15 108/163/15 +f 134/186/16 103/187/16 101/188/16 +f 135/189/16 105/190/16 103/187/16 +f 136/191/16 107/192/16 105/190/16 +f 107/192/16 138/193/16 109/194/16 +f 109/194/16 139/195/16 111/196/16 +f 111/196/16 140/197/16 113/198/16 +f 113/198/16 141/199/16 115/200/16 +f 115/200/16 142/201/16 117/202/16 +f 117/202/16 132/203/16 95/204/16 +f 132/203/16 97/205/16 95/204/16 +f 131/206/16 99/166/16 97/205/16 +f 146/207/17 151/208/17 148/209/17 +f 151/208/18 147/210/18 148/209/18 +f 151/208/16 154/211/16 155/212/16 +f 144/213/16 143/214/16 152/215/16 +f 171/216/19 150/217/19 152/215/19 +f 162/218/15 156/219/15 170/220/15 +f 167/221/15 168/222/15 162/218/15 +f 173/223/19 174/224/19 172/225/19 +f 176/226/18 178/227/18 177/228/18 +f 179/229/20 174/224/20 175/230/20 +f 177/228/21 173/223/21 172/225/21 +f 178/231/16 175/230/16 173/223/16 +f 176/232/15 172/225/15 174/224/15 +f 182/233/16 180/234/16 181/235/16 +f 187/236/22 184/237/22 185/238/22 +f 189/239/19 186/240/19 187/236/19 +f 191/241/23 188/242/23 189/239/23 +f 193/243/24 190/244/24 191/241/24 +f 197/245/25 194/246/25 195/247/25 +f 199/248/26 196/249/26 197/245/26 +f 201/250/18 198/251/18 199/248/18 +f 203/252/27 200/253/27 201/250/27 +f 205/254/28 202/255/28 203/252/28 +f 190/256/29 194/257/29 196/258/29 +f 190/256/29 198/259/29 188/260/29 +f 186/261/29 198/259/29 200/262/29 +f 184/263/29 200/262/29 202/264/29 +f 204/265/29 207/266/29 202/264/29 +f 207/266/29 204/265/29 206/267/29 +f 187/268/17 199/269/17 189/270/17 +f 216/271/17 215/272/17 205/273/17 +f 205/273/17 203/274/17 216/271/17 +f 191/275/17 199/269/17 197/276/17 +f 185/277/17 216/271/17 203/274/17 +f 191/275/17 195/278/17 193/279/17 +f 217/280/23 220/281/23 218/282/23 +f 219/283/30 222/284/30 220/281/30 +f 221/285/31 224/286/31 222/284/31 +f 223/287/32 226/288/32 224/286/32 +f 223/287/29 221/289/29 219/290/29 +f 226/288/17 218/291/17 220/292/17 +f 228/293/19 213/294/19 248/295/19 +f 232/296/17 231/297/17 263/298/17 +f 210/299/29 209/300/29 262/301/29 +f 243/302/17 259/303/17 261/304/17 +f 254/305/29 258/306/29 209/300/29 +f 263/298/17 259/303/17 232/296/17 +f 258/306/29 262/301/29 209/300/29 +f 125/161/15 124/167/15 106/162/15 +f 133/164/16 134/307/16 101/165/16 +f 124/167/15 123/169/15 104/168/15 +f 123/169/15 122/308/15 102/170/15 +f 120/171/15 130/309/15 118/172/15 +f 98/174/15 119/180/15 120/171/15 +f 122/175/15 121/310/15 100/176/15 +f 118/172/15 130/309/15 129/178/15 +f 100/176/15 121/310/15 119/180/15 +f 116/179/15 129/178/15 128/181/15 +f 128/181/15 127/311/15 112/183/15 +f 112/183/15 127/311/15 126/184/15 +f 110/185/15 126/184/15 125/161/15 +f 134/186/16 135/189/16 103/187/16 +f 135/189/16 136/191/16 105/190/16 +f 136/191/16 137/312/16 107/192/16 +f 107/192/16 137/312/16 138/193/16 +f 109/194/16 138/193/16 139/195/16 +f 111/196/16 139/195/16 140/197/16 +f 113/198/16 140/197/16 141/199/16 +f 115/200/16 141/199/16 142/201/16 +f 117/202/16 142/201/16 132/203/16 +f 132/203/16 131/206/16 97/205/16 +f 131/206/16 133/164/16 99/166/16 +f 146/207/17 149/313/17 151/208/17 +f 151/208/18 150/314/18 147/210/18 +f 153/315/16 150/316/16 155/212/16 +f 150/316/16 151/208/16 155/212/16 +f 151/208/16 149/313/16 154/211/16 +f 143/214/16 145/317/16 152/215/16 +f 152/215/16 150/316/16 144/213/16 +f 150/316/16 153/315/16 144/213/16 +f 171/216/19 170/318/19 150/217/19 +f 170/220/15 171/216/15 163/319/15 +f 163/319/15 162/218/15 170/220/15 +f 163/319/15 164/320/15 162/218/15 +f 164/320/15 165/321/15 162/218/15 +f 165/321/15 166/322/15 167/221/15 +f 168/222/17 169/323/17 162/218/17 +f 165/321/15 167/221/15 162/218/15 +f 173/223/19 175/230/19 174/224/19 +f 176/226/18 179/324/18 178/227/18 +f 179/229/20 176/325/20 174/224/20 +f 177/228/21 178/227/21 173/223/21 +f 178/231/16 179/326/16 175/230/16 +f 176/232/15 177/327/15 172/225/15 +f 182/233/16 183/328/16 180/234/16 +f 187/236/22 186/240/22 184/237/22 +f 189/239/19 188/242/19 186/240/19 +f 191/241/23 190/244/23 188/242/23 +f 193/243/24 192/329/24 190/244/24 +f 197/245/25 196/249/25 194/246/25 +f 199/248/26 198/251/26 196/249/26 +f 201/250/18 200/253/18 198/251/18 +f 203/252/27 202/255/27 200/253/27 +f 205/254/28 204/330/28 202/255/28 +f 190/256/29 192/331/29 194/257/29 +f 190/256/29 196/258/29 198/259/29 +f 186/261/29 188/260/29 198/259/29 +f 184/263/29 186/261/29 200/262/29 +f 202/264/29 207/266/29 184/263/29 +f 187/268/17 201/332/17 199/269/17 +f 191/275/17 189/270/17 199/269/17 +f 203/274/17 201/332/17 185/277/17 +f 201/332/17 187/268/17 185/277/17 +f 191/275/17 197/276/17 195/278/17 +f 217/280/23 219/283/23 220/281/23 +f 219/283/30 221/285/30 222/284/30 +f 221/285/31 223/287/31 224/286/31 +f 223/287/32 225/333/32 226/288/32 +f 219/290/29 217/334/29 225/333/29 +f 225/333/29 223/287/29 219/290/29 +f 220/292/17 222/335/17 224/286/17 +f 224/286/17 226/288/17 220/292/17 +f 248/295/19 247/336/19 236/337/19 +f 247/336/19 214/338/19 236/337/19 +f 214/338/19 227/339/19 236/337/19 +f 236/337/19 235/340/19 248/295/19 +f 235/340/19 228/293/19 248/295/19 +f 243/302/17 232/296/17 259/303/17 +f 254/305/29 260/341/29 258/306/29 +s 1 +f 97/205/33 96/173/29 95/204/29 +f 99/166/34 98/174/33 97/205/33 +f 101/165/19 100/176/34 99/166/34 +f 103/187/35 102/170/19 101/188/19 +f 105/190/36 104/168/35 103/187/35 +f 107/192/17 106/162/36 105/190/36 +f 109/194/37 108/163/17 107/192/17 +f 111/196/38 110/185/37 109/194/37 +f 113/198/18 112/183/38 111/196/38 +f 115/200/39 114/182/18 113/198/18 +f 117/202/40 116/179/39 115/200/39 +f 95/204/29 118/172/40 117/202/40 +f 137/342/29 124/167/40 125/161/29 +f 134/343/18 121/310/38 122/175/18 +f 141/344/35 128/181/19 129/178/35 +f 138/345/33 125/161/29 126/184/33 +f 135/346/39 122/308/18 123/169/39 +f 142/347/36 129/178/35 130/309/36 +f 131/348/37 120/171/17 119/180/37 +f 139/349/34 126/184/33 127/311/34 +f 136/350/40 123/169/39 124/167/40 +f 132/351/17 130/309/36 120/171/17 +f 133/352/38 119/180/37 121/310/38 +f 140/353/19 127/311/34 128/181/19 +f 167/354/39 159/355/18 160/356/39 +f 165/357/38 157/358/37 158/359/38 +f 168/360/40 160/356/39 161/361/40 +f 166/362/18 158/359/38 159/355/18 +f 145/317/41 164/363/37 163/319/41 +f 168/360/40 149/364/42 169/365/42 +f 145/317/41 171/216/17 152/215/17 +f 227/366/43 212/367/44 229/368/45 +f 229/368/45 211/369/46 230/370/47 +f 230/370/47 210/299/48 231/297/49 +f 258/306/50 263/298/51 262/301/51 +f 208/371/52 228/372/53 233/373/54 +f 208/371/52 233/373/54 185/374/23 +f 260/341/55 259/303/50 258/306/50 +f 257/375/56 206/376/57 256/377/58 +f 253/378/59 247/336/60 248/295/61 +f 246/379/62 207/380/63 257/375/56 +f 234/381/64 233/382/54 241/383/65 +f 250/384/66 249/385/67 253/378/59 +f 255/386/68 257/375/56 256/387/58 +f 255/386/68 254/388/69 252/389/70 +f 252/389/70 254/388/69 209/390/71 +f 251/391/72 209/390/71 210/392/48 +f 247/336/60 212/367/44 214/393/73 +f 250/384/66 210/392/48 211/394/46 +f 249/385/67 211/394/46 212/367/44 +f 208/395/52 248/295/61 213/396/74 +f 242/397/75 241/383/65 239/398/76 +f 233/382/54 235/399/77 241/383/65 +f 229/400/45 236/401/78 227/402/43 +f 230/403/47 237/404/79 229/400/45 +f 231/405/49 238/406/80 230/403/47 +f 232/407/81 239/398/76 231/405/49 +f 242/397/75 243/408/82 244/409/83 +f 240/410/84 232/407/81 243/408/82 +f 244/409/83 245/411/85 242/397/75 +f 241/383/65 235/399/77 236/401/78 +f 245/412/85 215/413/57 216/414/63 +f 185/374/23 245/412/85 216/414/63 +f 262/301/51 231/297/49 210/299/48 +f 253/378/59 246/415/62 255/386/68 +f 97/205/33 98/174/33 96/173/29 +f 99/166/34 100/176/34 98/174/33 +f 101/165/19 102/177/19 100/176/34 +f 103/187/35 104/168/35 102/170/19 +f 105/190/36 106/162/36 104/168/35 +f 107/192/17 108/163/17 106/162/36 +f 109/194/37 110/185/37 108/163/17 +f 111/196/38 112/183/38 110/185/37 +f 113/198/18 114/182/18 112/183/38 +f 115/200/39 116/179/39 114/182/18 +f 117/202/40 118/172/40 116/179/39 +f 95/204/29 96/173/29 118/172/40 +f 137/342/29 136/350/40 124/167/40 +f 134/343/18 133/352/38 121/310/38 +f 141/344/35 140/353/19 128/181/19 +f 138/345/33 137/342/29 125/161/29 +f 135/346/39 134/416/18 122/308/18 +f 142/347/36 141/344/35 129/178/35 +f 131/348/37 132/351/17 120/171/17 +f 139/349/34 138/345/33 126/184/33 +f 136/350/40 135/346/39 123/169/39 +f 132/351/17 142/347/36 130/309/36 +f 133/352/38 131/348/37 119/180/37 +f 140/353/19 139/349/34 127/311/34 +f 167/354/39 166/362/18 159/355/18 +f 165/357/38 164/363/37 157/358/37 +f 168/360/40 167/354/39 160/356/39 +f 166/362/18 165/357/38 158/359/38 +f 145/317/41 157/358/37 164/363/37 +f 168/360/40 161/361/40 149/364/42 +f 145/317/41 163/319/41 171/216/17 +f 227/366/43 214/393/73 212/367/44 +f 229/368/45 212/367/44 211/369/46 +f 230/370/47 211/369/46 210/299/48 +f 258/306/50 259/303/50 263/298/51 +f 208/371/52 213/417/74 228/372/53 +f 234/418/64 185/374/23 233/373/54 +f 185/374/23 184/419/23 208/371/52 +f 184/419/23 246/379/62 208/371/52 +f 260/341/55 261/304/55 259/303/50 +f 257/375/56 207/380/63 206/376/57 +f 246/379/62 184/419/23 207/380/63 +f 241/383/65 242/397/75 234/381/64 +f 242/397/75 245/411/85 234/381/64 +f 249/385/67 247/336/60 253/378/59 +f 253/378/59 255/386/68 251/391/72 +f 255/386/68 252/389/70 251/391/72 +f 251/391/72 250/384/66 253/378/59 +f 255/386/68 256/387/58 254/388/69 +f 251/391/72 252/389/70 209/390/71 +f 247/336/60 249/385/67 212/367/44 +f 250/384/66 251/391/72 210/392/48 +f 249/385/67 250/384/66 211/394/46 +f 208/395/52 253/378/59 248/295/61 +f 241/383/65 236/401/78 237/404/79 +f 237/404/79 238/406/80 241/383/65 +f 238/406/80 239/398/76 241/383/65 +f 239/398/76 240/410/84 242/397/75 +f 233/382/54 228/420/53 235/399/77 +f 229/400/45 237/404/79 236/401/78 +f 230/403/47 238/406/80 237/404/79 +f 231/405/49 239/398/76 238/406/80 +f 232/407/81 240/410/84 239/398/76 +f 242/397/75 240/410/84 243/408/82 +f 245/412/85 244/421/83 215/413/57 +f 185/374/23 234/418/64 245/412/85 +f 262/301/51 263/298/51 231/297/49 +f 208/395/52 246/415/62 253/378/59 +f 246/415/62 257/375/56 255/386/68 +o Hammer +v 3.125000 0.375000 -0.125000 +v 3.125000 0.375000 0.125000 +v 3.301777 0.301777 -0.125000 +v 3.301777 0.301777 0.125000 +v 3.375000 0.125000 -0.125000 +v 3.375000 0.125000 0.125000 +v 3.301777 -0.051777 -0.125000 +v 3.301777 -0.051777 0.125000 +v 3.125000 -0.125000 -0.125000 +v 3.125000 -0.125000 0.125000 +v 2.948223 -0.051777 -0.125000 +v 2.948223 -0.051777 0.125000 +v 2.875000 0.125000 -0.125000 +v 2.875000 0.125000 0.125000 +v 2.948223 0.301777 -0.125000 +v 2.948223 0.301777 0.125000 +v 3.000000 0.250000 0.093750 +v 3.250000 0.250000 0.093750 +v 3.000000 0.250000 -0.093750 +v 3.250000 0.250000 -0.093750 +v 3.000000 1.125000 -0.093750 +v 3.000000 1.125000 0.093750 +v 3.250000 1.000000 0.093750 +v 3.250000 1.000000 -0.093750 +v 3.375000 1.125000 -0.125000 +v 3.375000 1.125000 0.125000 +v 3.551777 1.051777 -0.125000 +v 3.551777 1.051777 0.125000 +v 3.625000 0.875000 -0.125000 +v 3.625000 0.875000 0.125000 +v 3.551777 0.698223 -0.125000 +v 3.551777 0.698223 0.125000 +v 3.375000 0.625000 -0.125000 +v 3.375000 0.625000 0.125000 +v 3.198223 0.698223 -0.125000 +v 3.198223 0.698223 0.125000 +v 3.125000 0.875000 -0.125000 +v 3.125000 0.875000 0.125000 +v 3.198223 1.051777 -0.125000 +v 3.198223 1.051777 0.125000 +v 3.250000 0.875000 -0.125000 +v 3.250000 0.875000 0.125000 +v 3.286612 0.963388 -0.125000 +v 3.286612 0.963388 0.125000 +v 3.375000 1.000000 -0.125000 +v 3.375000 1.000000 0.125000 +v 3.463388 0.963388 -0.125000 +v 3.463388 0.963388 0.125000 +v 3.500000 0.875000 -0.125000 +v 3.500000 0.875000 0.125000 +v 3.463388 0.786612 -0.125000 +v 3.463388 0.786612 0.125000 +v 3.375000 0.750000 -0.125000 +v 3.375000 0.750000 0.125000 +v 3.286612 0.786612 -0.125000 +v 3.286612 0.786612 0.125000 +vt 0.028205 0.279070 +vt 0.035897 0.310078 +vt 0.028205 0.310078 +vt 0.035897 0.186047 +vt 0.028205 0.186047 +vt 0.017949 0.186047 +vt 0.010256 0.294574 +vt 0.010256 0.186047 +vt 0.046154 0.186047 +vt 0.035897 0.279070 +vt 0.017949 0.294574 +vt 0.051282 0.418605 +vt 0.046154 0.403101 +vt 0.051282 0.403101 +vt 0.061538 0.418605 +vt 0.056410 0.403101 +vt 0.061538 0.403101 +vt 0.051282 0.372093 +vt 0.056410 0.387597 +vt 0.051282 0.387597 +vt 0.061538 0.372093 +vt 0.061538 0.387597 +vt 0.066667 0.372093 +vt 0.071795 0.387597 +vt 0.066667 0.387597 +vt 0.071795 0.372093 +vt 0.076923 0.387597 +vt 0.071795 0.418605 +vt 0.066667 0.403101 +vt 0.071795 0.403101 +vt 0.082051 0.372093 +vt 0.082051 0.387597 +vt 0.076923 0.403101 +vt 0.041026 0.372093 +vt 0.046154 0.387597 +vt 0.041026 0.387597 +vt 0.082051 0.418605 +vt 0.082051 0.403101 +vt 0.041026 0.418605 +vt 0.041026 0.403101 +vt 0.066667 0.418605 +vt 0.046154 0.294574 +vt 0.046154 0.418605 +vt 0.056410 0.418605 +vt 0.056410 0.372093 +vt 0.076923 0.372093 +vt 0.076923 0.418605 +vt 0.046154 0.372093 +vt 0.051282 0.418605 +vt 0.058974 0.449612 +vt 0.051282 0.449612 +vt 0.058974 0.418605 +vt 0.066667 0.449612 +vt 0.066667 0.418605 +vt 0.074359 0.449612 +vt 0.074359 0.418605 +vt 0.082051 0.449612 +vt 0.020513 0.418605 +vt 0.028205 0.449612 +vt 0.020513 0.449612 +vt 0.028205 0.418605 +vt 0.035897 0.449612 +vt 0.035897 0.418605 +vt 0.043590 0.449612 +vt 0.043590 0.418605 +vt 0.051282 0.356589 +vt 0.046154 0.356589 +vt 0.056410 0.356589 +vt 0.061538 0.356589 +vt 0.066667 0.356589 +vt 0.071795 0.356589 +vt 0.076923 0.356589 +vt 0.082051 0.356589 +vt 0.041026 0.356589 +vt 0.082051 0.418605 +vn 0.4472 0.8944 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 286/422/86 284/423/86 285/424/86 +f 283/425/87 286/422/87 281/426/87 +f 280/427/88 284/428/88 282/429/88 +f 282/430/89 287/431/89 283/425/89 +f 280/427/90 286/422/90 285/432/90 +f 306/433/89 300/434/89 302/435/89 +f 310/436/89 288/437/89 290/438/89 +f 307/439/90 289/440/90 303/441/90 +f 289/440/90 311/442/90 291/443/90 +f 313/444/90 295/445/90 293/446/90 +f 311/442/90 293/446/90 291/443/90 +f 315/447/90 297/448/90 295/445/90 +f 314/449/89 292/450/89 294/451/89 +f 297/448/90 319/452/90 299/453/90 +f 296/454/89 314/449/89 294/451/89 +f 319/455/90 301/456/90 299/457/90 +f 318/458/89 296/454/89 298/459/89 +f 288/437/89 306/433/89 302/435/89 +f 300/434/89 318/460/89 298/461/89 +f 301/456/90 307/439/90 303/441/90 +f 312/462/89 290/438/89 292/450/89 +f 286/422/86 287/431/86 284/423/86 +f 283/425/87 287/431/87 286/422/87 +f 280/427/88 285/432/88 284/428/88 +f 282/430/89 284/463/89 287/431/89 +f 280/427/90 281/426/90 286/422/90 +f 306/433/89 304/464/89 300/434/89 +f 310/436/89 308/465/89 288/437/89 +f 307/439/90 309/466/90 289/440/90 +f 289/440/90 309/466/90 311/442/90 +f 313/444/90 315/447/90 295/445/90 +f 311/442/90 313/444/90 293/446/90 +f 315/447/90 317/467/90 297/448/90 +f 314/449/89 312/462/89 292/450/89 +f 297/448/90 317/467/90 319/452/90 +f 296/454/89 316/468/89 314/449/89 +f 319/455/90 305/469/90 301/456/90 +f 318/458/89 316/468/89 296/454/89 +f 288/437/89 308/465/89 306/433/89 +f 300/434/89 304/464/89 318/460/89 +f 301/456/90 305/469/90 307/439/90 +f 312/462/89 310/436/89 290/438/89 +s 1 +f 265/470/91 266/471/92 264/472/91 +f 267/473/92 268/474/87 266/471/92 +f 269/475/87 270/476/93 268/474/87 +f 271/477/93 272/478/94 270/476/93 +f 273/479/94 274/480/95 272/481/94 +f 275/482/95 276/483/88 274/480/95 +f 277/484/88 278/485/96 276/483/88 +f 279/486/96 264/472/91 278/485/96 +f 289/440/91 290/438/92 288/437/91 +f 291/443/92 292/450/87 290/438/92 +f 293/446/87 294/451/93 292/450/87 +f 295/445/93 296/454/94 294/451/93 +f 297/448/94 298/459/95 296/454/94 +f 299/457/95 300/434/88 298/461/95 +f 301/456/88 302/435/96 300/434/88 +f 303/441/96 288/437/91 302/435/96 +f 306/487/93 305/469/87 304/488/87 +f 308/489/94 307/439/93 306/487/93 +f 310/490/95 309/466/94 308/489/94 +f 312/491/88 311/442/95 310/490/95 +f 314/492/96 313/444/88 312/491/88 +f 316/493/91 315/447/96 314/492/96 +f 318/494/92 317/467/91 316/493/91 +f 304/488/87 319/455/92 318/495/92 +f 265/470/91 267/473/92 266/471/92 +f 267/473/92 269/475/87 268/474/87 +f 269/475/87 271/477/93 270/476/93 +f 271/477/93 273/496/94 272/478/94 +f 273/479/94 275/482/95 274/480/95 +f 275/482/95 277/484/88 276/483/88 +f 277/484/88 279/486/96 278/485/96 +f 279/486/96 265/470/91 264/472/91 +f 289/440/91 291/443/92 290/438/92 +f 291/443/92 293/446/87 292/450/87 +f 293/446/87 295/445/93 294/451/93 +f 295/445/93 297/448/94 296/454/94 +f 297/448/94 299/453/95 298/459/95 +f 299/457/95 301/456/88 300/434/88 +f 301/456/88 303/441/96 302/435/96 +f 303/441/96 289/440/91 288/437/91 +f 306/487/93 307/439/93 305/469/87 +f 308/489/94 309/466/94 307/439/93 +f 310/490/95 311/442/95 309/466/94 +f 312/491/88 313/444/88 311/442/95 +f 314/492/96 315/447/96 313/444/88 +f 316/493/91 317/467/91 315/447/96 +f 318/494/92 319/452/92 317/467/91 +f 304/488/87 305/469/87 319/455/92 +o Magazine +v 1.875000 -3.437500 0.437500 +v 3.250000 -3.437500 0.437500 +v 3.375000 -3.437500 0.312500 +v 3.375000 -3.437500 -0.312500 +v 1.750000 -3.437500 -0.312500 +v 1.750000 -3.437500 0.312500 +v 3.250000 -3.437500 -0.437500 +v 1.875000 -3.437500 -0.437500 +v 3.375000 -3.562500 0.312500 +v 3.375000 -3.562500 -0.312500 +v 1.750000 -3.562500 0.312500 +v 1.750000 -3.562500 -0.312500 +v 1.875000 -3.562500 0.437500 +v 3.250000 -3.562500 0.437500 +v 3.250000 -3.562500 -0.437500 +v 1.875000 -3.562500 -0.437500 +v 1.937500 -3.437500 -0.312500 +v 1.937500 -3.437500 0.312500 +v 3.312500 -3.437500 -0.312500 +v 3.312500 -3.437500 0.312500 +v 0.875000 0.562500 0.312500 +v 0.875000 0.562500 -0.312500 +v 2.250000 0.562500 0.312500 +v 2.250000 0.562500 -0.312500 +vt 0.928205 0.744186 +vt 0.923077 0.728682 +vt 0.928205 0.635659 +vt 0.984615 0.511628 +vt 0.989744 0.527132 +vt 0.984615 0.620155 +vt 0.861538 0.496124 +vt 0.917949 0.573643 +vt 0.861538 0.573643 +vt 1.000000 0.000000 +vt 0.943590 0.496124 +vt 0.943590 0.000000 +vt 0.861538 0.000000 +vt 0.835897 0.496124 +vt 0.835897 -0.000000 +vt 0.917949 0.496124 +vt 0.917949 -0.000000 +vt 0.923077 0.651163 +vt 0.984615 0.635659 +vt 0.984615 0.744186 +vt 0.989744 0.651163 +vt 0.989744 0.728682 +vt 0.989744 0.604651 +vt 0.928205 0.620155 +vt 0.928205 0.511628 +vt 0.923077 0.604651 +vt 0.923077 0.527132 +vt 1.000000 0.496124 +vt 0.917949 0.527132 +vt 0.917949 0.604651 +vt 0.989744 0.620155 +vt 0.989744 0.635659 +vt 0.928205 0.496124 +vt 0.923077 0.511628 +vt 0.923077 0.496124 +vt 0.994872 0.604651 +vt 0.994872 0.527132 +vt 0.923077 0.635659 +vt 0.989744 0.496124 +vt 0.984615 0.496124 +vt 0.923077 0.620155 +vt 0.989744 0.511628 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9665 -0.2567 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.9665 0.2567 0.0000 +vn -0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.3827 0.0000 0.9239 +vn 0.9239 0.0000 0.3827 +vn -0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn 0.9239 0.0000 -0.3827 +vn 0.3827 0.0000 -0.9239 +s off +f 327/497/97 324/498/97 320/499/97 +f 334/500/98 329/501/98 333/502/98 +f 340/503/97 343/504/97 341/505/97 +f 336/506/99 343/507/99 338/508/99 +f 337/509/100 341/510/100 336/511/100 +f 337/509/101 342/512/101 340/503/101 +f 338/508/102 342/512/102 339/513/102 +f 324/498/97 325/514/97 320/499/97 +f 320/499/97 321/515/97 326/516/97 +f 321/515/97 322/517/97 326/516/97 +f 322/517/97 323/518/97 326/516/97 +f 326/516/97 327/497/97 320/499/97 +f 329/501/98 328/519/98 333/502/98 +f 333/502/98 332/520/98 335/521/98 +f 332/520/98 330/522/98 335/521/98 +f 330/522/98 331/523/98 335/521/98 +f 335/521/98 334/500/98 333/502/98 +f 340/503/97 342/512/97 343/504/97 +f 336/506/99 341/524/99 343/507/99 +f 337/509/100 340/503/100 341/510/100 +f 337/509/101 339/513/101 342/512/101 +f 338/508/102 343/507/102 342/512/102 +s 1 +f 324/525/103 330/522/104 325/526/104 +f 321/515/105 328/527/106 322/528/106 +f 327/529/107 331/530/103 324/531/103 +f 320/499/108 333/502/105 321/515/105 +f 322/532/106 329/501/109 323/533/109 +f 325/534/104 332/520/108 320/499/108 +f 323/535/109 334/500/110 326/536/110 +f 326/536/110 335/521/107 327/529/107 +f 324/525/103 331/523/103 330/522/104 +f 321/515/105 333/502/105 328/527/106 +f 327/529/107 335/521/107 331/530/103 +f 320/499/108 332/520/108 333/502/105 +f 322/532/106 328/519/106 329/501/109 +f 325/534/104 330/537/104 332/520/108 +f 323/535/109 329/538/109 334/500/110 +f 326/536/110 334/500/110 335/521/107 +o Bullet +v 1.187500 0.562500 -0.187500 +v 2.187500 0.562500 -0.187500 +v 1.187500 0.429918 -0.132583 +v 2.187500 0.429918 -0.132583 +v 1.187500 0.375000 0.000000 +v 2.187500 0.375000 0.000000 +v 1.187500 0.429918 0.132583 +v 2.187500 0.429918 0.132583 +v 1.187500 0.562500 0.187500 +v 2.187500 0.562500 0.187500 +v 1.187500 0.695083 0.132583 +v 2.187500 0.695083 0.132583 +v 1.187500 0.750000 0.000000 +v 2.187500 0.750000 0.000000 +v 1.187500 0.695083 -0.132583 +v 2.187500 0.695083 -0.132583 +v 1.000000 0.562500 -0.093750 +v 1.000000 0.496209 -0.066291 +v 1.000000 0.468750 0.000000 +v 1.000000 0.496209 0.066291 +v 1.000000 0.562500 0.093750 +v 1.000000 0.628792 0.066291 +v 1.000000 0.656250 0.000000 +v 1.000000 0.628792 -0.066291 +vt 0.612821 0.852407 +vt 0.605230 0.829458 +vt 0.612821 0.806508 +vt 0.618188 0.813230 +vt 0.620412 0.829458 +vt 0.618188 0.845685 +vt 0.607453 0.845685 +vt 0.607453 0.813230 +vt 0.605128 0.899225 +vt 0.564103 0.914729 +vt 0.564103 0.899225 +vt 0.605128 0.914729 +vt 0.564103 0.930233 +vt 0.605128 0.806202 +vt 0.564103 0.821705 +vt 0.564103 0.806202 +vt 0.605128 0.821705 +vt 0.564103 0.837209 +vt 0.605128 0.837209 +vt 0.564103 0.852713 +vt 0.605128 0.852713 +vt 0.564103 0.868217 +vt 0.605128 0.868217 +vt 0.564103 0.883721 +vt 0.605128 0.883721 +vt 0.556410 0.844961 +vt 0.556410 0.837209 +vt 0.554054 0.807659 +vt 0.556123 0.813913 +vt 0.549060 0.822757 +vt 0.556410 0.883721 +vt 0.556410 0.906977 +vt 0.556410 0.899225 +vt 0.556410 0.813953 +vt 0.556410 0.806202 +vt 0.556410 0.852713 +vt 0.556410 0.821705 +vt 0.556410 0.868217 +vt 0.556410 0.914729 +vt 0.605128 0.930233 +vt 0.556123 0.822757 +vt 0.554054 0.829011 +vt 0.551129 0.829011 +vt 0.549060 0.813913 +vt 0.551129 0.807659 +vt 0.556410 0.891473 +vt 0.556410 0.860465 +vt 0.556410 0.829457 +vt 0.556410 0.875969 +vt 0.556410 0.922481 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.4472 0.0000 0.8944 +vn -0.7940 0.4299 0.4299 +vn -0.7940 0.0000 0.6080 +vn -0.7940 0.6080 -0.0000 +vn -0.7940 0.4299 -0.4299 +vn -0.7940 -0.4299 0.4299 +vn -0.4472 0.0000 -0.8944 +vn -0.4472 0.6325 -0.6325 +vn -0.7940 -0.4299 -0.4299 +vn -0.7940 0.0000 -0.6080 +vn -0.4472 -0.8944 0.0000 +vn -0.7940 -0.6080 0.0000 +vn -0.4472 0.8944 0.0000 +vn -0.4472 0.6325 0.6325 +vn -0.4472 -0.6325 0.6325 +vn -0.4472 -0.6325 -0.6325 +s off +f 357/539/111 353/540/111 349/541/111 +f 349/541/111 347/542/111 345/543/111 +f 345/543/111 359/544/111 357/539/111 +f 357/539/111 355/545/111 353/540/111 +f 353/540/111 351/546/111 349/541/111 +f 349/541/111 345/543/111 357/539/111 +s 1 +f 345/547/112 346/548/113 344/549/112 +f 347/550/113 348/551/114 346/548/113 +f 349/552/114 350/553/115 348/554/114 +f 351/555/115 352/556/116 350/553/115 +f 353/557/116 354/558/117 352/556/116 +f 355/559/117 356/560/118 354/558/117 +f 357/561/118 358/562/119 356/560/118 +f 359/563/119 344/549/112 358/562/119 +f 352/556/120 365/564/121 364/565/122 +f 366/566/123 367/567/124 363/568/125 +f 344/549/126 367/569/124 358/562/127 +f 344/549/126 361/570/128 360/571/129 +f 348/554/130 363/572/125 362/573/131 +f 356/560/132 365/574/121 354/558/133 +f 352/556/120 363/575/125 350/553/134 +f 358/562/127 366/576/123 356/560/132 +f 348/551/130 361/577/128 346/548/135 +f 345/547/112 347/550/113 346/548/113 +f 347/550/113 349/578/114 348/551/114 +f 349/552/114 351/555/115 350/553/115 +f 351/555/115 353/557/116 352/556/116 +f 353/557/116 355/559/117 354/558/117 +f 355/559/117 357/561/118 356/560/118 +f 357/561/118 359/563/119 358/562/119 +f 359/563/119 345/547/112 344/549/112 +f 352/556/120 354/558/133 365/564/121 +f 367/567/124 360/579/129 361/580/128 +f 361/580/128 362/581/131 367/567/124 +f 362/581/131 363/568/125 367/567/124 +f 363/568/125 364/582/122 365/583/121 +f 365/583/121 366/566/123 363/568/125 +f 344/549/126 360/584/129 367/569/124 +f 344/549/126 346/548/135 361/570/128 +f 348/554/130 350/553/134 363/572/125 +f 356/560/132 366/585/123 365/574/121 +f 352/556/120 364/586/122 363/575/125 +f 358/562/127 367/587/124 366/576/123 +f 348/551/130 362/588/131 361/577/128 +o Slide +v -10.000000 0.000000 -0.374999 +v -10.000000 0.000000 0.375001 +v -3.500000 0.000000 -0.375000 +v -10.000000 1.000000 0.250001 +v -10.000000 0.875000 0.216507 +v -10.000000 0.783494 0.125001 +v -10.000000 0.750000 0.000001 +v -10.000000 0.783494 -0.124999 +v -10.000000 0.875000 -0.216506 +v -10.000000 1.000000 -0.249999 +v -10.000000 1.125000 -0.216506 +v -10.000000 1.216506 -0.124999 +v -10.000000 1.250000 0.000001 +v -10.000000 1.216506 0.125000 +v -10.000000 1.125000 0.216507 +v -10.000000 -0.250000 -0.124999 +v -10.000000 -0.250000 0.125001 +v -10.000000 1.500000 -0.249999 +v -10.000000 1.375000 -0.374999 +v -10.000000 1.375000 0.375001 +v -10.000000 1.500000 0.250001 +v -1.500000 1.500000 0.250000 +v -1.500000 1.375000 -0.375000 +v -1.500000 1.500000 -0.250000 +v -1.500000 1.500000 0.000000 +v -1.500000 1.000000 -0.375000 +v 0.000000 1.500000 0.250000 +v 0.000000 1.500000 0.000000 +v 0.000000 1.000000 -0.375000 +v -1.500000 1.000000 -0.250000 +v 0.000000 1.000000 -0.250000 +v -1.500000 1.375000 0.000000 +v 0.000000 1.375000 0.000000 +v -1.500000 1.375000 -0.250000 +v 0.000000 1.375000 -0.375000 +v 0.000000 1.500000 -0.250000 +v 0.000000 1.375000 -0.250000 +v -3.500000 -0.250000 0.125000 +v -3.500000 -0.250000 -0.125000 +v 3.000000 1.500000 0.250000 +v 3.062500 1.375000 0.375000 +v 3.062500 1.375000 -0.375000 +v 3.000000 1.500000 -0.250000 +v 3.500000 0.500000 -0.375000 +v 3.500000 0.500000 0.375000 +v 3.500000 0.000000 -0.375000 +v 3.500000 0.000000 0.375000 +v -3.500000 0.000000 0.375000 +v 3.500000 0.500000 0.125000 +v 3.500000 0.500000 -0.125000 +v 3.125000 1.250000 0.125000 +v 3.125000 1.250000 -0.125000 +v 3.500000 0.000000 0.125000 +v 3.500000 0.000000 -0.125000 +v 1.500000 0.000000 0.125000 +v 1.500000 0.000000 -0.125000 +v 1.500000 1.250000 -0.125000 +v 1.500000 1.250000 0.125000 +v -9.812500 1.500000 0.187501 +v -8.937500 1.500000 0.187501 +v -9.812500 1.500000 -0.187499 +v -8.937500 1.500000 -0.187499 +v -9.812500 1.625000 -0.187499 +v -9.812500 1.625000 0.187501 +v -9.187500 1.625000 0.187501 +v -9.187500 1.625000 -0.187499 +v -9.750000 1.625000 0.062501 +v -9.250000 1.625000 0.062501 +v -9.750000 1.625000 -0.062499 +v -9.250000 1.625000 -0.062499 +v -9.750000 1.750000 -0.062499 +v -9.750000 1.750000 0.062501 +v -9.250000 1.750000 0.062501 +v -9.250000 1.750000 -0.062499 +v 1.812500 1.500000 0.187500 +v 2.437500 1.500000 0.187500 +v 1.812500 1.500000 -0.187500 +v 2.437500 1.500000 -0.187500 +v 2.062500 1.625000 -0.187500 +v 2.062500 1.625000 0.187500 +v 2.437500 1.625000 0.062500 +v 2.437500 1.625000 -0.062500 +v 2.437500 1.750000 0.187500 +v 2.437500 1.750000 -0.187500 +v 2.437500 1.750000 0.062500 +v 2.437500 1.750000 -0.062500 +v 2.187500 1.625000 0.187500 +v 2.187500 1.625000 -0.187500 +v 2.312500 1.750000 0.187500 +v 2.312500 1.750000 -0.187500 +v 2.312500 1.750000 0.062500 +v 2.312500 1.750000 -0.062500 +v 2.187500 1.625000 0.062500 +v 2.187500 1.625000 -0.062500 +vt 0.430769 0.542636 +vt 0.430769 0.589147 +vt 0.348718 0.713178 +vt 0.348718 0.217054 +vt 0.082051 0.186047 +vt 0.348718 0.186047 +vt 0.430769 0.527132 +vt 0.082051 0.542636 +vt 0.082051 0.527132 +vt 0.082051 0.465116 +vt 0.430769 0.465116 +vt 0.430769 0.496124 +vt 0.070258 0.511776 +vt 0.071623 0.496376 +vt 0.070258 0.480977 +vt 0.076923 0.449612 +vt 0.076923 0.542636 +vt 0.066529 0.523049 +vt 0.061435 0.527176 +vt 0.020513 0.542636 +vt 0.061435 0.465577 +vt 0.020513 0.449612 +vt 0.052612 0.511776 +vt 0.051248 0.496376 +vt 0.492308 0.496124 +vt 0.492308 0.573643 +vt 0.492308 0.589147 +vt 0.430769 0.511628 +vt 0.446154 0.511628 +vt 0.435897 0.527132 +vt 0.435897 0.511628 +vt 0.430769 0.573643 +vt 0.430769 0.527132 +vt 0.487179 0.527132 +vt 0.487179 0.511628 +vt 0.492308 0.527132 +vt 0.476923 0.511628 +vt 0.476923 0.527132 +vt 0.487179 0.573643 +vt 0.492308 0.573643 +vt 0.492308 0.542636 +vt 0.615385 0.527132 +vt 0.615385 0.542636 +vt 0.615385 0.449612 +vt 0.615385 0.465116 +vt 0.492308 0.465116 +vt 0.492308 0.527132 +vt 0.082051 0.279070 +vt 0.348718 0.248062 +vt 0.348718 0.279070 +vt 0.676923 0.480620 +vt 0.656410 0.449612 +vt 0.676923 0.449612 +vt 0.082051 0.217054 +vt 0.082051 0.248062 +vt 0.082051 0.449612 +vt 0.358974 0.279070 +vt 0.358974 0.186047 +vt 0.082051 0.821705 +vt 0.082051 0.883721 +vt 0.000000 0.883721 +vt 0.625641 0.480620 +vt 0.625641 0.511628 +vt 0.620513 0.449612 +vt 0.620513 0.542636 +vt 0.656410 0.542636 +vt 0.553846 0.744186 +vt 0.553846 0.775194 +vt 0.348718 0.806202 +vt 0.656410 0.511628 +vt 0.676923 0.542636 +vt 0.000000 0.542636 +vt 0.082051 0.542636 +vt 0.082051 0.604651 +vt 0.066667 0.728682 +vt 0.000000 0.697674 +vt 0.066667 0.697674 +vt 0.194872 0.728682 +vt 0.169231 0.775194 +vt 0.169231 0.728682 +vt 0.164103 0.728682 +vt 0.164103 0.775194 +vt 0.169231 0.790698 +vt 0.194872 0.775194 +vt 0.205128 0.790698 +vt 0.169231 0.713178 +vt 0.205128 0.775194 +vt 0.205128 0.728682 +vt 0.230769 0.728682 +vt 0.210256 0.744186 +vt 0.210256 0.728682 +vt 0.235897 0.744186 +vt 0.235897 0.728682 +vt 0.205128 0.728682 +vt 0.205128 0.744186 +vt 0.210256 0.759690 +vt 0.230769 0.744186 +vt 0.230769 0.759690 +vt 0.230769 0.713178 +vt 0.210256 0.713178 +vt 0.071795 0.232558 +vt 0.066667 0.217054 +vt 0.071795 0.217054 +vt 0.071795 0.325581 +vt 0.082051 0.310078 +vt 0.082051 0.325581 +vt 0.071795 0.294574 +vt 0.056410 0.279070 +vt 0.061538 0.279070 +vt 0.082051 0.263566 +vt 0.076923 0.232558 +vt 0.082051 0.217054 +vt 0.056410 0.294574 +vt 0.066667 0.341085 +vt 0.056410 0.341085 +vt 0.071795 0.263566 +vt 0.066667 0.248062 +vt 0.071795 0.248062 +vt 0.076923 0.341085 +vt 0.082051 0.341085 +vt 0.076923 0.294574 +vt 0.082051 0.294574 +vt 0.061538 0.232558 +vt 0.066667 0.232558 +vt 0.061538 0.263566 +vt 0.066667 0.263566 +vt 0.066667 0.294574 +vt 0.071795 0.310078 +vt 0.071795 0.186047 +vt 0.061538 0.201550 +vt 0.046154 0.186047 +vt 0.635897 0.713178 +vt 0.082051 0.713178 +vt 0.066529 0.469703 +vt 0.056341 0.523049 +vt 0.056341 0.469703 +vt 0.010256 0.511628 +vt 0.010256 0.480620 +vt 0.052612 0.480977 +vt 0.430769 0.573643 +vt 0.492308 0.511628 +vt 0.446154 0.527132 +vt 0.435897 0.573643 +vt 0.656410 0.480620 +vt 0.635897 0.279070 +vt 0.635897 0.341085 +vt 0.000000 0.728682 +vt 0.635897 0.744186 +vt 0.635897 0.775194 +vt 0.635897 0.806202 +vt 0.676923 0.511628 +vt 0.205128 0.713178 +vt 0.046154 0.294574 +vt 0.076923 0.248062 +vt 0.061538 0.217054 +vt 0.061538 0.248062 +vt 0.071795 0.341085 +vt 0.071795 0.294574 +vt 0.056410 0.201550 +vt 0.635897 0.651163 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 0.7071 -0.7071 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.8944 0.4472 0.0000 +vn 0.4472 0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 390/589/136 393/590/136 370/591/136 +f 406/592/137 368/593/137 370/594/137 +f 391/595/138 386/596/138 385/597/138 +f 388/598/139 389/599/139 392/600/139 +f 385/597/140 379/601/140 380/602/140 +f 381/603/140 387/604/140 388/598/140 +f 379/601/140 386/605/140 378/606/140 +f 377/607/140 386/605/140 368/608/140 +f 371/609/140 369/610/140 387/604/140 +f 375/611/140 368/608/140 374/612/140 +f 389/599/139 395/613/139 392/600/139 +f 393/590/139 398/614/139 396/615/139 +f 395/613/136 399/616/136 392/600/136 +f 392/617/141 401/618/141 391/619/141 +f 401/618/141 393/620/141 390/621/141 +f 390/621/141 391/619/141 401/618/141 +f 404/622/140 403/623/140 402/624/140 +f 395/625/140 404/622/140 400/626/140 +f 398/627/140 402/624/140 396/628/140 +f 402/629/138 410/630/138 409/631/138 +f 396/615/136 370/591/136 393/590/136 +f 408/632/142 407/633/142 394/634/142 +f 410/630/139 403/635/139 395/613/139 +f 369/636/143 405/637/143 415/638/143 +f 420/639/141 412/640/141 414/641/141 +f 383/642/144 405/637/144 384/643/144 +f 408/632/145 387/644/145 415/638/145 +f 415/645/141 406/592/141 370/646/141 +f 416/647/136 420/648/136 422/649/136 +f 410/630/146 418/650/146 419/651/146 +f 407/633/146 408/652/146 418/650/146 +f 409/653/146 410/630/146 419/651/146 +f 419/651/146 411/654/146 409/653/146 +f 412/640/146 418/650/146 408/652/146 +f 423/655/144 422/656/144 415/657/144 +f 417/658/141 413/659/141 411/654/141 +f 423/660/145 421/661/145 417/662/145 +f 418/663/144 424/664/144 419/665/144 +f 432/666/139 430/667/139 431/668/139 +f 426/669/140 430/667/140 428/670/140 +f 428/671/136 433/672/136 429/673/136 +f 426/674/145 432/666/145 431/668/145 +f 429/675/147 432/666/147 427/676/147 +f 440/677/139 438/678/139 439/679/139 +f 437/680/141 440/677/141 435/681/141 +f 434/682/140 438/678/140 436/683/140 +f 436/684/136 441/685/136 437/686/136 +f 435/687/145 439/679/145 434/688/145 +f 452/689/139 456/690/139 450/691/139 +f 461/692/139 448/693/139 449/694/139 +f 445/695/136 446/696/136 455/697/136 +f 445/698/141 448/699/141 443/700/141 +f 442/701/148 446/702/148 444/703/148 +f 451/704/139 459/705/139 453/706/139 +f 459/707/145 449/694/145 453/708/145 +f 448/693/136 458/709/136 452/710/136 +f 460/711/149 456/690/149 458/712/149 +f 455/713/149 459/705/149 457/714/149 +f 447/715/139 460/716/139 461/692/139 +f 443/717/145 454/718/145 442/719/145 +f 396/615/136 409/631/136 413/720/136 +f 370/591/136 368/721/136 386/596/136 +f 386/596/136 390/589/136 370/591/136 +f 406/592/137 383/642/137 368/593/137 +f 391/595/138 390/589/138 386/596/138 +f 391/595/139 385/597/139 392/600/139 +f 385/597/139 388/598/139 392/600/139 +f 380/602/140 381/603/140 388/598/140 +f 388/598/140 385/597/140 380/602/140 +f 381/603/140 382/722/140 387/604/140 +f 379/601/140 385/597/140 386/605/140 +f 368/608/140 376/723/140 377/607/140 +f 377/607/140 378/606/140 386/605/140 +f 371/609/140 372/724/140 369/610/140 +f 387/604/140 382/722/140 371/609/140 +f 376/723/140 368/608/140 375/611/140 +f 368/608/140 383/725/140 369/610/140 +f 383/725/140 384/726/140 369/610/140 +f 369/610/140 372/724/140 373/727/140 +f 369/610/140 373/727/140 374/612/140 +f 368/608/140 369/610/140 374/612/140 +f 389/599/139 394/634/139 395/613/139 +f 393/590/139 397/728/139 398/614/139 +f 395/613/136 400/729/136 399/616/136 +f 392/617/141 399/730/141 401/618/141 +f 401/618/141 397/731/141 393/620/141 +f 395/625/140 403/623/140 404/622/140 +f 398/627/140 404/622/140 402/624/140 +f 402/629/138 403/635/138 410/630/138 +f 396/615/136 413/720/136 370/591/136 +f 388/598/142 387/644/142 389/599/142 +f 387/644/142 408/632/142 389/599/142 +f 389/599/142 408/632/142 394/634/142 +f 395/613/139 394/634/139 407/633/139 +f 407/633/139 410/630/139 395/613/139 +f 369/636/143 384/643/143 405/637/143 +f 420/639/141 416/732/141 412/640/141 +f 383/642/144 406/592/144 405/637/144 +f 387/644/145 369/636/145 415/638/145 +f 415/638/145 414/733/145 408/632/145 +f 414/733/145 412/734/145 408/632/145 +f 415/645/141 405/637/141 406/592/141 +f 425/735/136 418/663/136 422/649/136 +f 418/663/136 416/647/136 422/649/136 +f 410/630/146 407/633/146 418/650/146 +f 419/651/146 417/658/146 411/654/146 +f 412/640/146 416/732/146 418/650/146 +f 415/657/144 370/591/144 423/655/144 +f 370/591/144 413/720/144 423/655/144 +f 413/720/144 421/736/144 423/655/144 +f 422/656/144 420/737/144 414/738/144 +f 422/656/144 414/738/144 415/657/144 +f 417/658/141 421/739/141 413/659/141 +f 417/662/145 419/665/145 423/660/145 +f 419/665/145 424/664/145 423/660/145 +f 418/663/144 425/735/144 424/664/144 +f 432/666/139 433/672/139 430/667/139 +f 426/669/140 431/668/140 430/667/140 +f 428/671/136 430/667/136 433/672/136 +f 426/674/145 427/740/145 432/666/145 +f 429/675/147 433/672/147 432/666/147 +f 440/677/139 441/685/139 438/678/139 +f 437/680/141 441/685/141 440/677/141 +f 434/682/140 439/679/140 438/678/140 +f 436/684/136 438/678/136 441/685/136 +f 435/687/145 440/677/145 439/679/145 +f 452/689/139 458/712/139 456/690/139 +f 461/692/139 460/716/139 448/693/139 +f 457/714/136 451/704/136 445/695/136 +f 445/695/136 444/741/136 446/696/136 +f 455/697/136 457/714/136 445/695/136 +f 445/698/141 451/704/141 449/742/141 +f 451/704/141 453/706/141 449/742/141 +f 452/689/141 450/691/141 448/699/141 +f 450/691/141 443/700/141 448/699/141 +f 445/698/141 449/742/141 448/699/141 +f 442/701/148 447/715/148 446/702/148 +f 451/704/139 457/714/139 459/705/139 +f 459/707/145 461/692/145 449/694/145 +f 448/693/136 460/716/136 458/709/136 +f 460/711/149 454/743/149 456/690/149 +f 455/713/149 461/744/149 459/705/149 +f 455/745/139 446/702/139 461/692/139 +f 446/702/139 447/715/139 461/692/139 +f 447/715/139 454/746/139 460/716/139 +f 443/717/145 450/691/145 456/690/145 +f 454/718/145 447/747/145 442/719/145 +f 443/717/145 456/690/145 454/718/145 +f 402/629/136 409/631/136 396/615/136 +f 409/631/136 411/748/136 413/720/136 +o Decal +v -3.000000 0.000000 0.385001 +v -3.000000 1.375000 0.385001 +v -1.625000 0.000000 0.385001 +v -1.625000 1.375000 0.385001 +vt -0.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 -0.003906 +vn 0.0000 0.0000 1.0000 +s off +f 462/749/150 465/750/150 463/751/150 +f 462/749/150 464/752/150 465/750/150 +o DecalM +v -3.000000 0.000000 -0.384999 +v -3.000000 1.375000 -0.384999 +v -1.625000 0.000000 -0.384999 +v -1.625000 1.375000 -0.384999 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 -0.003906 +vn 0.0000 0.0000 -1.0000 +s off +f 469/753/151 466/754/151 467/755/151 +f 469/753/151 468/756/151 466/754/151 +o TextM +v -9.000000 0.000000 -0.384999 +v -9.000000 1.375000 -0.384999 +v -3.500000 0.000000 -0.384999 +v -3.500000 1.375000 -0.384999 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vn 0.0000 0.0000 -1.0000 +s off +f 473/757/152 470/758/152 471/759/152 +f 473/757/152 472/760/152 470/758/152 +o Text +v -9.000000 0.000000 0.385001 +v -9.000000 1.375000 0.385001 +v -3.500000 0.000000 0.385001 +v -3.500000 1.375000 0.385001 +vt 0.000050 0.000050 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.999950 0.000050 +vn 0.0000 0.0000 1.0000 +s off +f 474/761/153 477/762/153 475/763/153 +f 474/761/153 476/764/153 477/762/153 +o Grip +v 0.000000 1.000000 0.250000 +v -10.125000 1.000000 0.250001 +v 0.000000 0.875000 0.216506 +v -10.125000 0.875000 0.216507 +v 0.000000 0.783494 0.125000 +v -10.125000 0.783494 0.125001 +v -0.000000 0.750000 0.000000 +v -10.125000 0.750000 0.000001 +v -0.000000 0.783494 -0.125000 +v -10.125000 0.783494 -0.124999 +v -0.000000 0.875000 -0.216506 +v -10.125000 0.875000 -0.216506 +v -0.000000 1.000000 -0.250000 +v -10.125000 1.000000 -0.249999 +v -0.000000 1.125000 -0.216506 +v -10.125000 1.125000 -0.216506 +v -0.000000 1.216506 -0.125000 +v -10.125000 1.216506 -0.124999 +v -0.000000 1.250000 0.000000 +v -10.125000 1.250000 0.000001 +v 0.000000 1.216506 0.125000 +v -10.125000 1.216506 0.125001 +v 0.000000 1.125000 0.216506 +v -10.125000 1.125000 0.216507 +v -10.125000 0.906250 0.162381 +v -10.125000 1.000000 0.187501 +v -10.125000 0.837620 0.093751 +v -10.125000 0.812500 0.000001 +v -10.125000 0.837620 -0.093749 +v -10.125000 0.906250 -0.162379 +v -10.125000 1.000000 -0.187499 +v -10.125000 1.093750 -0.162379 +v -10.125000 1.162380 -0.093749 +v -10.125000 1.187500 0.000001 +v -10.125000 1.162380 0.093751 +v -10.125000 1.093750 0.162381 +v 0.000000 0.906250 0.162368 +v 0.000000 1.000000 0.187489 +v 0.000000 0.837620 0.093739 +v -0.000000 0.812500 -0.000011 +v -0.000000 0.837620 -0.093761 +v -0.000000 0.906250 -0.162391 +v -0.000000 1.000000 -0.187511 +v -0.000000 1.093750 -0.162391 +v -0.000000 1.162380 -0.093761 +v -0.000000 1.187500 -0.000011 +v 0.000000 1.162380 0.093739 +v 0.000000 1.093750 0.162368 +v 0.000000 1.125000 0.216506 +v 0.000000 1.216506 0.125000 +v 0.000000 1.000000 0.250000 +v -1.500000 1.000000 -0.250000 +v -1.500000 1.375000 0.000000 +v -1.500000 1.375000 -0.250000 +v -0.000000 1.000000 -0.250000 +v 0.000000 1.375000 0.000000 +v -0.000000 1.375000 -0.250000 +v 0.000000 1.375000 0.250000 +v 0.000000 1.250000 0.000000 +v -0.000000 1.125000 -0.216506 +v -0.000000 1.216506 -0.125000 +v 1.500000 1.375000 -0.250000 +v 0.000000 0.875000 0.216506 +v 0.000000 0.783494 0.125000 +v -0.000000 0.750000 0.000000 +v -0.000000 0.783494 -0.125000 +v -0.000000 0.875000 -0.216506 +v 1.500000 1.000000 -0.250000 +v 1.500000 1.000000 0.250000 +v 1.500000 0.875000 0.216506 +v 1.500000 0.783494 0.125000 +v 1.500000 0.750000 0.000000 +v 1.500000 0.783494 -0.125000 +v 1.500000 0.875000 -0.216506 +v 1.500000 1.000000 -0.250000 +v 1.500000 1.375000 0.000000 +v 1.500000 1.375000 0.250000 +v -3.500000 -0.187500 0.125000 +v 3.500000 -0.187500 0.125000 +v -3.500000 -0.187500 -0.125000 +v 3.500000 -0.187500 -0.125000 +v -3.500000 0.000000 -0.312500 +v -3.500000 0.000000 0.312500 +v 3.500000 0.000000 0.312500 +v 3.500000 0.000000 -0.312500 +v 3.000000 1.250000 0.125000 +v 3.000000 1.250000 -0.125000 +v 3.000000 0.000000 -0.125000 +v 3.000000 0.000000 0.125000 +v 1.250000 -1.687500 0.125000 +v 1.250000 -1.687500 -0.125000 +v 0.500000 -1.437500 0.125000 +v 0.500000 -1.437500 -0.125000 +v -1.000000 -1.437500 0.125000 +v -1.000000 -1.437500 -0.125000 +v -1.250000 -0.687500 0.125000 +v -1.250000 -0.687500 -0.125000 +v -1.750000 -0.187500 0.125000 +v -1.750000 -0.187500 -0.125000 +v -0.750000 -0.187500 0.125000 +v -0.750000 -0.187500 -0.125000 +v -1.000000 -0.687500 0.125000 +v -1.000000 -0.687500 -0.125000 +v -0.875000 -1.187500 0.125000 +v -0.875000 -1.187500 -0.125000 +v 0.500000 -1.187500 0.125000 +v 0.500000 -1.187500 -0.125000 +v 0.750000 -0.687500 0.125000 +v 0.750000 -0.687500 -0.125000 +v 0.625000 0.062500 0.125000 +v 0.625000 0.062500 -0.125000 +v 1.000000 0.187500 0.125000 +v 0.750000 -0.187500 0.125000 +v 1.750000 -3.187500 0.250000 +v 2.625000 -0.187500 0.250000 +v 2.750000 -0.937500 0.250000 +v 3.112560 -1.437500 0.250000 +v 3.500000 -2.437500 0.250000 +v 1.500000 -3.437500 0.250000 +v 3.500000 -3.437500 0.250000 +v 1.000000 0.187500 -0.125000 +v 0.750000 -0.187500 -0.125000 +v 0.000000 -0.187500 0.125000 +v 0.000000 -0.187500 -0.125000 +v 0.125000 -0.562500 0.125000 +v 0.125000 -0.562500 -0.125000 +v 0.000000 -1.062500 0.125000 +v 0.000000 -1.062500 -0.125000 +v 0.375000 -0.562500 0.125000 +v 0.375000 -0.562500 -0.125000 +v 0.437500 -0.187500 0.125000 +v 0.437500 -0.187500 -0.125000 +v 3.500000 -3.437500 -0.250000 +v 1.500000 -3.437500 -0.250000 +v 3.500000 -2.437500 -0.250000 +v 3.112560 -1.437500 -0.250000 +v 2.750000 -0.937500 -0.250000 +v 2.625000 -0.187500 -0.250000 +v 1.750000 -3.187500 -0.250000 +v 1.250000 -1.687500 -0.250000 +v 1.750000 -3.437500 -0.500000 +v 3.250000 -3.437500 -0.500000 +v 3.250000 -2.437500 -0.500000 +v 2.862560 -1.437500 -0.500000 +v 2.500000 -0.937500 -0.500000 +v 2.375000 -0.187500 -0.500000 +v 2.000000 -3.187500 -0.500000 +v 1.000000 -0.187500 -0.500000 +v 2.375000 0.187500 -0.250000 +v 1.000000 0.187500 -0.250000 +v 0.750000 -0.187500 -0.250000 +v 1.250000 -1.687500 0.250000 +v 3.250000 -3.437500 0.500000 +v 1.750000 -3.437500 0.500000 +v 3.250000 -2.437500 0.500000 +v 2.862560 -1.437500 0.500000 +v 2.500000 -0.937500 0.500000 +v 2.375000 -0.187500 0.500000 +v 2.000000 -3.187500 0.500000 +v 2.375000 0.187500 0.250000 +v 1.000000 -0.187500 0.500000 +v 1.000000 0.187500 0.250000 +v 0.750000 -0.187500 0.250000 +v 3.000000 -0.187500 0.250000 +v 3.000000 -0.187500 -0.250000 +v 3.250000 0.062500 0.250000 +v 3.250000 0.062500 -0.250000 +v 2.750000 -0.562500 0.250000 +v 2.750000 -0.562500 -0.250000 +vt 0.417949 0.031008 +vt 0.420513 0.046512 +vt 0.417949 0.046512 +vt 0.002564 0.186047 +vt -0.000000 0.170543 +vt 0.002564 0.170543 +vt 0.417949 0.015504 +vt 0.420513 0.031008 +vt 0.417949 0.000000 +vt 0.420513 0.015504 +vt 0.417949 0.124031 +vt 0.420513 0.139535 +vt 0.417949 0.139535 +vt 0.417949 0.155039 +vt 0.420513 0.155039 +vt 0.417949 0.170543 +vt 0.420513 0.186047 +vt 0.417949 0.186047 +vt 0.420513 0.108527 +vt 0.420513 0.124031 +vt 0.420513 0.170543 +vt 0.417949 0.108527 +vt 0.420513 0.093023 +vt 0.417949 0.077519 +vt 0.417949 0.093023 +vt 0.420513 0.062016 +vt 0.420513 0.077519 +vt 0.417949 0.062016 +vt 0.002564 0.015504 +vt 0.000000 -0.000000 +vt 0.002564 -0.000000 +vt 0.002564 0.031008 +vt 0.000000 0.015504 +vt 0.002564 0.046512 +vt 0.000000 0.031008 +vt 0.000000 0.062016 +vt 0.000000 0.046512 +vt 0.002564 0.062016 +vt -0.000000 0.077519 +vt 0.002564 0.077519 +vt -0.000000 0.093023 +vt 0.002564 0.093023 +vt 0.000000 0.108527 +vt 0.002564 0.108527 +vt 0.000000 0.124031 +vt 0.002564 0.124031 +vt 0.000000 0.139535 +vt 0.002564 0.155039 +vt 0.002564 0.139535 +vt 0.000000 0.155039 +vt 0.184615 0.852713 +vt 0.246154 0.806202 +vt 0.246154 0.852713 +vt 0.246154 0.883721 +vt 0.179487 0.829457 +vt 0.182051 0.821705 +vt 0.169231 0.829457 +vt 0.174359 0.852713 +vt 0.164103 0.852713 +vt 0.164103 0.883721 +vt 0.102564 0.852713 +vt 0.092308 0.852713 +vt 0.082051 0.806202 +vt 0.102564 0.806202 +vt 0.084615 0.790698 +vt 0.087179 0.782946 +vt 0.253846 0.829457 +vt 0.541026 0.860465 +vt 0.253846 0.860465 +vt 0.541026 0.883721 +vt 0.253846 0.961240 +vt 0.253846 0.883721 +vt 0.541026 0.806202 +vt 0.541026 0.829457 +vt 0.548718 0.883721 +vt 0.246154 0.806202 +vt 0.000000 0.341085 +vt 0.010256 0.186047 +vt 0.010256 0.341085 +vt 0.835897 0.790698 +vt 0.805128 0.759690 +vt 0.835897 0.759690 +vt 0.805128 0.790698 +vt 0.743590 0.759690 +vt 0.743590 0.790698 +vt 0.712821 0.759690 +vt 0.712821 0.790698 +vt 0.692308 0.759690 +vt 0.692308 0.790698 +vt 0.712821 0.821705 +vt 0.692308 0.821705 +vt 0.712821 0.790698 +vt 0.733333 0.821705 +vt 0.733333 0.790698 +vt 0.789744 0.821705 +vt 0.789744 0.790698 +vt 0.810256 0.821705 +vt 0.810256 0.790698 +vt 0.841026 0.821705 +vt 0.884615 0.868217 +vt 0.905128 0.930233 +vt 0.864103 0.930233 +vt 0.900000 0.806202 +vt 0.894872 0.775194 +vt 0.956410 0.775194 +vt 0.956410 0.806202 +vt 0.987179 0.744186 +vt 0.961538 0.961240 +vt 0.966667 0.868217 +vt 0.966667 0.930233 +vt 0.976923 0.976744 +vt 0.900000 0.806202 +vt 0.956410 0.775194 +vt 0.894872 0.775194 +vt 0.966667 0.930233 +vt 0.961538 0.961240 +vt 0.976923 0.976744 +vt 0.966667 0.868217 +vt 0.884615 0.868217 +vt 0.987179 0.744186 +vt 0.956410 0.806202 +vt 0.905128 0.930233 +vt 0.864103 0.930233 +vt 0.671795 0.697674 +vt 0.661538 0.651163 +vt 0.671795 0.651163 +vt 0.671795 0.759690 +vt 0.661538 0.697674 +vt 0.671795 0.821705 +vt 0.661538 0.759690 +vt 0.671795 0.868217 +vt 0.661538 0.821705 +vt 0.651282 0.821705 +vt 0.661538 0.868217 +vt 0.682051 0.759690 +vt 0.682051 0.821705 +vt 0.800000 0.186047 +vt 0.810256 0.217054 +vt 0.810256 0.279070 +vt 0.846154 0.713178 +vt 0.830769 0.666667 +vt 0.830769 0.620155 +vt 0.810256 0.620155 +vt 0.810256 0.666667 +vt 0.794872 0.713178 +vt 0.866667 0.759690 +vt 0.830769 0.713178 +vt 0.810256 0.713178 +vt 0.774359 0.759690 +vt -0.000000 0.186047 +vt 0.420513 0.000000 +vt 0.184615 0.806202 +vt 0.184615 0.883721 +vt 0.174359 0.837209 +vt 0.164103 0.806202 +vt 0.166667 0.821705 +vt 0.102564 0.883721 +vt 0.082051 0.852713 +vt 0.100000 0.790698 +vt 0.082051 0.806202 +vt 0.097436 0.782946 +vt 0.092308 0.775194 +vt 0.541026 0.961240 +vt 0.253846 0.806202 +vt 0.548718 0.806202 +vt 0.246154 0.883721 +vt 0.000000 0.186047 +vt 0.692308 0.790698 +vt 0.841026 0.790698 +vt 0.894872 0.868217 +vt 0.894872 0.868217 +vt 0.643590 0.868217 +vt 0.651282 0.759690 +vt 0.689744 0.868217 +vt 0.800000 0.310078 +vt 0.738462 0.310078 +vt 0.728205 0.279070 +vt 0.728205 0.217054 +vt 0.738462 0.186047 +vt 0.830769 0.759690 +vt 0.810256 0.759690 +vt 0.835897 0.046512 +vt 0.835897 0.186047 +vt 0.835897 0.108527 +vt 0.835897 0.062016 +vt 0.835897 0.015504 +vt 0.835897 0.124031 +vt 0.835897 0.155039 +vt 0.835897 0.077519 +vt 0.835897 0.031008 +vt 0.835897 0.139535 +vt 0.835897 0.170543 +vt 0.835897 0.093023 +vt 0.164103 0.759690 +vt 0.102564 0.744186 +vt 0.164103 0.744186 +vt 0.164103 0.790698 +vt 0.102564 0.775194 +vt 0.164103 0.775194 +vt 0.102564 0.728682 +vt 0.164103 0.728682 +vt 0.102564 0.759690 +vt 0.102564 0.790698 +vt 0.164103 0.713178 +vt 0.102564 0.713178 +vt 0.810256 0.434109 +vt 0.830769 0.310078 +vt 0.830769 0.434109 +vt 0.810256 0.558140 +vt 0.830769 0.558140 +vt 0.676923 0.310078 +vt 0.697436 0.341085 +vt 0.676923 0.341085 +vt 0.697436 0.527132 +vt 0.692308 0.527132 +vt 0.692308 0.759690 +vt 0.697436 0.713178 +vt 0.697436 0.759690 +vt 0.748718 0.341085 +vt 0.692308 0.713178 +vt 0.748718 0.341085 +vt 0.738462 0.341085 +vt 0.717949 0.527132 +vt 0.707692 0.713178 +vt 0.769231 0.620155 +vt 0.707692 0.759690 +vt 0.764103 0.759690 +vt 0.764103 0.713178 +vt 0.774359 0.713178 +vt 0.779487 0.620155 +vt 0.810256 0.310078 +vt 0.784615 0.558140 +vt 0.794872 0.558140 +vt 0.800000 0.434109 +vt 0.738462 0.341085 +vt 0.784615 0.558140 +vt 0.800000 0.434109 +vt 0.738462 0.310078 +vt 0.728205 0.310078 +vt 0.800000 0.310078 +vt 0.810256 0.434109 +vt 0.810256 0.310078 +vt 0.794872 0.558140 +vt 0.779487 0.620155 +vt 0.769231 0.620155 +vt 0.774359 0.713178 +vt 0.764103 0.759690 +vt 0.707692 0.713178 +vt 0.707692 0.759690 +vt 0.764103 0.713178 +vt 0.697436 0.713178 +vt 0.682051 0.759690 +vt 0.676923 0.713178 +vt 0.682051 0.713178 +vt 0.682051 0.527132 +vt 0.717949 0.527132 +vt 0.835897 0.000000 +vt 0.697436 0.310078 +vt 0.676923 0.527132 +vt 0.728205 0.310078 +vt 0.676923 0.759690 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.3162 -0.9487 0.0000 +vn -0.9487 -0.3162 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.8944 -0.4472 0.0000 +vn 0.9701 0.2425 0.0000 +vn -0.8944 0.4472 0.0000 +vn -0.9864 -0.1644 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.9701 0.2425 0.0000 +vn 0.8000 -0.6000 0.0000 +vn 0.9864 -0.1644 0.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.8660 0.5000 +vn -0.0000 -0.8660 -0.5000 +vn -0.0000 -0.5000 -0.8660 +vn -0.0000 0.5000 -0.8660 +vn -0.0000 0.8660 -0.5000 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn -0.0000 0.1305 -0.9914 +vn 0.0000 0.2588 0.9659 +vn 0.9162 0.1662 0.3645 +vn 0.9239 0.0000 -0.3827 +vn 0.9162 0.1662 -0.3645 +vn 0.8287 0.4395 0.3465 +vn 0.8287 0.4395 -0.3465 +vn 0.8603 0.3367 0.3828 +vn 0.8603 0.3367 -0.3828 +vn 0.9571 -0.2898 0.0000 +vn 0.7733 -0.6340 0.0000 +vn -0.6861 0.6861 -0.2418 +vn -0.8727 0.2440 0.4229 +vn -0.8727 0.2440 -0.4229 +vn -0.8812 -0.2937 0.3705 +vn 0.7071 -0.7071 0.0000 +vn -0.8321 0.5547 0.0000 +vn -0.9301 0.1173 0.3481 +vn -0.5496 0.6292 0.5496 +vn -0.2557 0.0494 0.9655 +vn -0.4602 0.4602 0.7592 +vn 0.3827 0.0000 0.9239 +vn -0.9912 0.1327 0.0000 +vn -0.2557 0.0494 -0.9655 +vn -0.8812 -0.2937 -0.3705 +vn -0.3931 0.1897 0.8997 +vn 0.3243 0.1224 0.9380 +vn 0.2291 0.5399 0.8099 +vn 0.3304 0.2876 0.8989 +vn 0.6853 0.2467 0.6853 +vn 0.9239 0.0000 0.3827 +vn 0.3830 0.2240 0.8962 +vn 0.4161 0.0853 0.9053 +vn 0.3830 0.2240 -0.8962 +vn 0.4161 0.0853 -0.9053 +vn -0.4602 0.4602 -0.7592 +vn 0.3827 0.0000 -0.9239 +vn 0.3243 0.1224 -0.9380 +vn 0.6853 0.2467 -0.6853 +vn 0.2291 0.5399 -0.8099 +vn -0.3931 0.1897 -0.8997 +vn -0.5496 0.6292 -0.5496 +vn 0.3304 0.2876 -0.8989 +vn -0.9301 0.1173 -0.3481 +vn -0.6861 0.6861 0.2418 +s off +f 489/765/154 508/766/154 491/767/154 +f 484/768/155 516/769/155 482/770/155 +f 487/771/154 507/772/154 489/765/154 +f 485/773/154 506/774/154 487/771/154 +f 501/775/154 503/776/154 479/777/154 +f 481/778/154 503/776/154 502/779/154 +f 483/780/154 505/781/154 485/782/154 +f 501/775/154 512/783/154 513/784/154 +f 483/780/154 502/779/154 504/785/154 +f 499/786/154 511/787/154 512/783/154 +f 495/788/154 511/787/154 497/789/154 +f 495/788/154 509/790/154 510/791/154 +f 493/792/154 508/766/154 509/790/154 +f 486/793/155 517/794/155 484/795/155 +f 488/796/155 518/797/155 486/793/155 +f 490/798/155 519/799/155 488/796/155 +f 490/798/155 521/800/155 520/801/155 +f 492/802/155 522/803/155 521/800/155 +f 494/804/155 523/805/155 522/803/155 +f 496/806/155 524/807/155 523/805/155 +f 498/808/155 525/809/155 524/807/155 +f 500/810/155 515/811/155 525/809/155 +f 480/812/155 515/811/155 478/813/155 +f 482/770/155 514/814/155 480/812/155 +f 534/815/156 529/816/156 531/817/156 +f 530/818/157 534/815/157 531/817/157 +f 538/819/155 537/820/155 534/815/155 +f 527/821/155 533/822/155 535/823/155 +f 533/824/158 554/825/158 535/823/158 +f 553/826/154 545/827/154 546/828/154 +f 545/827/154 551/829/154 550/830/154 +f 557/831/158 556/832/158 555/833/158 +f 561/834/157 559/835/157 560/836/157 +f 557/831/159 562/837/159 558/838/159 +f 556/832/160 560/836/160 555/833/160 +f 558/838/155 561/839/155 556/832/155 +f 555/833/154 559/840/154 557/831/154 +f 563/841/155 565/842/155 564/843/155 +f 567/844/161 570/845/161 568/846/161 +f 569/847/158 572/848/158 570/845/158 +f 571/849/162 574/850/162 572/848/162 +f 573/851/163 576/852/163 574/850/163 +f 577/853/164 580/854/164 578/855/164 +f 579/856/165 582/857/165 580/854/165 +f 581/858/157 584/859/157 582/857/157 +f 583/860/166 586/861/166 584/859/166 +f 585/862/167 588/863/167 586/861/167 +f 573/864/168 577/865/168 575/866/168 +f 581/867/168 573/864/168 571/868/168 +f 569/869/168 581/867/168 571/868/168 +f 583/870/168 569/869/168 567/871/168 +f 587/872/168 585/873/168 590/874/168 +f 590/874/168 589/875/168 587/872/168 +f 582/876/156 570/877/156 572/878/156 +f 599/879/156 588/880/156 598/881/156 +f 588/880/156 599/879/156 586/882/156 +f 574/883/156 582/876/156 572/878/156 +f 586/882/156 568/884/156 584/885/156 +f 578/886/156 574/883/156 576/887/156 +f 603/888/162 600/889/162 601/890/162 +f 605/891/169 602/892/169 603/888/169 +f 607/893/170 604/894/170 605/891/170 +f 609/895/171 606/896/171 607/893/171 +f 602/897/168 606/896/168 608/898/168 +f 607/893/156 605/899/156 603/900/156 +f 619/901/158 610/902/158 597/903/158 +f 615/904/156 646/905/156 614/906/156 +f 593/907/168 645/908/168 592/909/168 +f 626/910/156 642/911/156 615/904/156 +f 641/912/168 637/913/168 592/909/168 +f 646/905/156 615/904/156 642/911/156 +f 641/912/168 592/909/168 645/908/168 +f 489/765/154 507/772/154 508/766/154 +f 484/768/155 517/914/155 516/769/155 +f 487/771/154 506/774/154 507/772/154 +f 485/773/154 505/915/154 506/774/154 +f 501/775/154 513/784/154 503/776/154 +f 481/778/154 479/777/154 503/776/154 +f 483/780/154 504/785/154 505/781/154 +f 501/775/154 499/786/154 512/783/154 +f 483/780/154 481/778/154 502/779/154 +f 499/786/154 497/789/154 511/787/154 +f 495/788/154 510/791/154 511/787/154 +f 495/788/154 493/792/154 509/790/154 +f 493/792/154 491/767/154 508/766/154 +f 486/793/155 518/797/155 517/794/155 +f 488/796/155 519/799/155 518/797/155 +f 490/798/155 520/801/155 519/799/155 +f 490/798/155 492/802/155 521/800/155 +f 492/802/155 494/804/155 522/803/155 +f 494/804/155 496/806/155 523/805/155 +f 496/806/155 498/808/155 524/807/155 +f 498/808/155 500/810/155 525/809/155 +f 500/810/155 478/813/155 515/811/155 +f 480/812/155 514/814/155 515/811/155 +f 482/770/155 516/769/155 514/814/155 +f 534/815/156 532/916/156 529/816/156 +f 530/818/157 533/917/157 534/815/157 +f 534/815/155 533/822/155 538/819/155 +f 533/822/155 536/918/155 538/819/155 +f 537/820/155 532/916/155 534/815/155 +f 527/821/155 536/918/155 533/822/155 +f 535/823/155 528/919/155 526/920/155 +f 526/920/155 527/821/155 535/823/155 +f 533/824/158 553/921/158 554/825/158 +f 546/828/154 554/825/154 553/826/154 +f 553/826/154 539/922/154 545/827/154 +f 547/923/154 546/828/154 545/827/154 +f 545/827/168 552/924/168 551/829/168 +f 548/925/154 547/923/154 550/830/154 +f 547/923/154 545/827/154 550/830/154 +f 550/830/154 549/926/154 548/925/154 +f 557/831/158 558/838/158 556/832/158 +f 561/834/157 562/927/157 559/835/157 +f 557/831/159 559/928/159 562/837/159 +f 556/832/160 561/834/160 560/836/160 +f 558/838/155 562/929/155 561/839/155 +f 555/833/154 560/930/154 559/840/154 +f 563/841/155 566/931/155 565/842/155 +f 567/844/161 569/847/161 570/845/161 +f 569/847/158 571/849/158 572/848/158 +f 571/849/162 573/851/162 574/850/162 +f 573/851/163 575/932/163 576/852/163 +f 577/853/164 579/856/164 580/854/164 +f 579/856/165 581/858/165 582/857/165 +f 581/858/157 583/860/157 584/859/157 +f 583/860/166 585/862/166 586/861/166 +f 585/862/167 587/933/167 588/863/167 +f 573/864/168 579/934/168 577/865/168 +f 581/867/168 579/934/168 573/864/168 +f 569/869/168 583/870/168 581/867/168 +f 567/871/168 590/874/168 585/873/168 +f 585/873/168 583/870/168 567/871/168 +f 582/876/156 584/885/156 570/877/156 +f 574/883/156 580/935/156 582/876/156 +f 586/882/156 599/879/156 568/884/156 +f 568/884/156 570/877/156 584/885/156 +f 578/886/156 580/935/156 574/883/156 +f 603/888/162 602/892/162 600/889/162 +f 605/891/169 604/894/169 602/892/169 +f 607/893/170 606/896/170 604/894/170 +f 609/895/171 608/898/171 606/896/171 +f 608/898/168 600/936/168 602/897/168 +f 602/897/168 604/937/168 606/896/168 +f 603/900/156 601/938/156 609/895/156 +f 609/895/156 607/893/156 603/900/156 +f 597/903/158 630/939/158 619/901/158 +f 630/939/158 631/940/158 619/901/158 +f 631/940/158 596/941/158 611/942/158 +f 611/942/158 618/943/158 631/940/158 +f 618/943/158 619/901/158 631/940/158 +f 626/910/156 644/944/156 642/911/156 +f 641/912/168 643/945/168 637/913/168 +s 1 +f 479/777/168 480/812/172 478/813/168 +f 481/778/172 482/770/173 480/812/172 +f 483/780/173 484/768/158 482/770/173 +f 485/773/158 486/793/174 484/795/158 +f 487/771/174 488/796/175 486/793/174 +f 489/765/175 490/798/156 488/796/175 +f 491/767/156 492/802/176 490/798/156 +f 493/792/176 494/804/177 492/802/176 +f 495/788/177 496/806/157 494/804/177 +f 497/789/157 498/808/178 496/806/157 +f 499/786/178 500/810/179 498/808/178 +f 501/775/179 478/813/168 500/810/179 +f 507/772/179 520/946/168 508/766/168 +f 504/785/177 517/947/157 505/781/157 +f 511/787/158 524/948/174 512/783/174 +f 508/766/168 521/949/172 509/790/172 +f 505/915/157 518/950/178 506/774/178 +f 512/783/174 525/951/175 513/784/175 +f 503/776/156 514/952/176 502/779/176 +f 509/790/172 522/953/173 510/791/173 +f 506/774/178 519/954/179 507/772/179 +f 513/784/175 515/955/156 503/776/156 +f 502/779/176 516/956/177 504/785/177 +f 510/791/173 523/957/158 511/787/158 +f 542/958/157 550/959/178 543/960/178 +f 540/961/176 548/962/177 541/963/177 +f 543/960/178 551/964/179 544/965/179 +f 541/963/177 549/966/157 542/958/157 +f 547/967/176 528/919/180 546/828/180 +f 532/968/181 551/964/179 552/969/181 +f 554/825/156 528/919/180 535/823/156 +f 595/970/182 610/971/183 612/972/184 +f 594/973/185 612/972/184 613/974/186 +f 593/907/187 613/974/186 614/906/188 +f 646/905/189 641/912/190 645/908/189 +f 611/975/191 591/976/192 616/977/193 +f 591/976/192 629/978/194 567/979/162 +f 642/911/190 643/945/195 641/912/190 +f 589/980/196 640/981/197 639/982/198 +f 636/983/199 631/940/200 630/939/201 +f 590/984/202 629/978/194 640/981/197 +f 624/985/203 616/986/193 617/987/204 +f 638/988/205 636/983/199 634/989/206 +f 638/988/205 639/990/198 640/981/197 +f 637/991/207 638/988/205 635/992/208 +f 635/992/208 592/993/209 637/991/207 +f 592/993/209 634/989/206 593/994/187 +f 595/970/182 630/939/201 597/995/210 +f 593/994/187 633/996/211 594/997/185 +f 594/997/185 632/998/212 595/970/182 +f 591/999/192 631/940/200 636/983/199 +f 621/1000/213 620/1001/214 624/985/203 +f 616/986/193 618/1002/215 611/1003/191 +f 619/1004/216 612/1005/184 610/1006/183 +f 620/1001/214 613/1007/186 612/1005/184 +f 621/1000/213 614/1008/188 613/1007/186 +f 622/1009/217 615/1010/218 614/1008/188 +f 626/1011/219 625/1012/220 627/1013/221 +f 623/1014/222 626/1011/219 615/1010/218 +f 627/1013/221 625/1012/220 628/1015/223 +f 624/985/203 619/1004/216 618/1002/215 +f 598/1016/196 628/1017/223 599/1018/202 +f 628/1017/223 568/1019/162 599/1018/202 +f 614/906/188 645/908/189 593/907/187 +f 638/988/205 629/1020/194 636/983/199 +f 479/777/168 481/778/172 480/812/172 +f 481/778/172 483/780/173 482/770/173 +f 483/780/173 485/782/158 484/768/158 +f 485/773/158 487/771/174 486/793/174 +f 487/771/174 489/765/175 488/796/175 +f 489/765/175 491/767/156 490/798/156 +f 491/767/156 493/792/176 492/802/176 +f 493/792/176 495/788/177 494/804/177 +f 495/788/177 497/789/157 496/806/157 +f 497/789/157 499/786/178 498/808/178 +f 499/786/178 501/775/179 500/810/179 +f 501/775/179 479/777/168 478/813/168 +f 507/772/179 519/954/179 520/946/168 +f 504/785/177 516/956/177 517/947/157 +f 511/787/158 523/957/158 524/948/174 +f 508/766/168 520/946/168 521/949/172 +f 505/915/157 517/1021/157 518/950/178 +f 512/783/174 524/948/174 525/951/175 +f 503/776/156 515/955/156 514/952/176 +f 509/790/172 521/949/172 522/953/173 +f 506/774/178 518/950/178 519/954/179 +f 513/784/175 525/951/175 515/955/156 +f 502/779/176 514/952/176 516/956/177 +f 510/791/173 522/953/173 523/957/158 +f 542/958/157 549/966/157 550/959/178 +f 540/961/176 547/967/176 548/962/177 +f 543/960/178 550/959/178 551/964/179 +f 541/963/177 548/962/177 549/966/157 +f 547/967/176 540/961/176 528/919/180 +f 532/968/181 544/965/179 551/964/179 +f 554/825/156 546/828/180 528/919/180 +f 595/970/182 597/995/210 610/971/183 +f 594/973/185 595/970/182 612/972/184 +f 593/907/187 594/973/185 613/974/186 +f 646/905/189 642/911/190 641/912/190 +f 611/975/191 596/1022/224 591/976/192 +f 567/979/162 568/1019/162 591/976/192 +f 568/1019/162 617/1023/204 616/977/193 +f 591/976/192 568/1019/162 616/977/193 +f 642/911/190 644/944/195 643/945/195 +f 589/980/196 590/984/202 640/981/197 +f 590/984/202 567/979/162 629/978/194 +f 628/1015/223 625/1012/220 617/987/204 +f 625/1012/220 624/985/203 617/987/204 +f 636/983/199 630/939/201 632/998/212 +f 632/998/212 633/996/211 636/983/199 +f 633/996/211 634/989/206 636/983/199 +f 634/989/206 635/992/208 638/988/205 +f 637/991/207 639/990/198 638/988/205 +f 592/993/209 635/992/208 634/989/206 +f 595/970/182 632/998/212 630/939/201 +f 593/994/187 634/989/206 633/996/211 +f 594/997/185 633/996/211 632/998/212 +f 591/999/192 596/1024/224 631/940/200 +f 620/1001/214 619/1004/216 624/985/203 +f 624/985/203 625/1012/220 622/1009/217 +f 625/1012/220 623/1014/222 622/1009/217 +f 622/1009/217 621/1000/213 624/985/203 +f 616/986/193 624/985/203 618/1002/215 +f 619/1004/216 620/1001/214 612/1005/184 +f 620/1001/214 621/1000/213 613/1007/186 +f 621/1000/213 622/1009/217 614/1008/188 +f 622/1009/217 623/1014/222 615/1010/218 +f 626/1011/219 623/1014/222 625/1012/220 +f 598/1016/196 627/1025/221 628/1017/223 +f 628/1017/223 617/1023/204 568/1019/162 +f 614/906/188 646/905/189 645/908/189 +f 640/981/197 629/1020/194 638/988/205 +f 629/1020/194 591/999/192 636/983/199 diff --git a/src/main/resources/assets/hbm/models/weapons/minigun.obj b/src/main/resources/assets/hbm/models/weapons/minigun.obj new file mode 100644 index 000000000..04ed7488f --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/minigun.obj @@ -0,0 +1,5608 @@ +# Blender v2.79 (sub 0) OBJ File: 'minigun.blend' +# www.blender.org +o Barrels +v 0.000000 1.437500 -2.000000 +v -0.218750 1.378886 -2.000000 +v -0.378886 1.218750 -2.000000 +v -0.437500 1.000000 -2.000000 +v -0.378886 0.781250 -2.000000 +v -0.218750 0.621114 -2.000000 +v 0.000000 0.562500 -2.000000 +v 0.218750 0.621114 -2.000000 +v 0.378886 0.781250 -2.000000 +v 0.437500 1.000000 -2.000000 +v 0.378886 1.218750 -2.000000 +v 0.218750 1.378886 -2.000000 +v 0.000000 1.437500 2.000000 +v -0.218750 1.378886 2.000000 +v -0.378886 1.218750 2.000000 +v -0.437500 1.000000 2.000000 +v -0.378886 0.781250 2.000000 +v -0.218750 0.621114 2.000000 +v 0.000000 0.562500 2.000000 +v 0.218750 0.621114 2.000000 +v 0.378886 0.781250 2.000000 +v 0.437500 1.000000 2.000000 +v 0.378886 1.218750 2.000000 +v 0.218750 1.378886 2.000000 +v 0.000000 1.500000 2.250000 +v -0.250000 1.433012 2.250000 +v -0.433013 1.250000 2.250000 +v -0.500000 1.000000 2.250000 +v -0.433013 0.750000 2.250000 +v -0.250000 0.566987 2.250000 +v 0.000000 0.500000 2.250000 +v 0.250000 0.566987 2.250000 +v 0.433012 0.750000 2.250000 +v 0.500000 1.000000 2.250000 +v 0.433013 1.250000 2.250000 +v 0.250000 1.433012 2.250000 +v 0.000000 1.500000 3.250000 +v -0.250000 1.433012 3.250000 +v -0.433013 1.250000 3.250000 +v -0.500000 1.000000 3.250000 +v -0.433013 0.750000 3.250000 +v -0.250000 0.566987 3.250000 +v 0.000000 0.500000 3.250000 +v 0.250000 0.566987 3.250000 +v 0.433012 0.750000 3.250000 +v 0.500000 1.000000 3.250000 +v 0.433013 1.250000 3.250000 +v 0.250000 1.433012 3.250000 +v 0.000000 1.437500 3.500000 +v -0.218750 1.378886 3.500000 +v -0.378886 1.218750 3.500000 +v -0.437500 1.000000 3.500000 +v -0.378886 0.781250 3.500000 +v -0.218750 0.621114 3.500000 +v 0.000000 0.562500 3.500000 +v 0.218750 0.621114 3.500000 +v 0.378886 0.781250 3.500000 +v 0.437500 1.000000 3.500000 +v 0.378886 1.218750 3.500000 +v 0.218750 1.378886 3.500000 +v 0.000000 1.437500 8.500000 +v -0.218750 1.378886 8.500000 +v -0.378886 1.218750 8.500000 +v -0.437500 1.000000 8.500000 +v -0.378886 0.781250 8.500000 +v -0.218750 0.621114 8.500000 +v 0.000000 0.562500 8.500000 +v 0.218750 0.621114 8.500000 +v 0.378886 0.781250 8.500000 +v 0.437500 1.000000 8.500000 +v 0.378886 1.218750 8.500000 +v 0.218750 1.378886 8.500000 +v 0.000000 1.500000 8.750000 +v -0.250000 1.433012 8.750000 +v -0.433013 1.250000 8.750000 +v -0.500000 1.000000 8.750000 +v -0.433013 0.750000 8.750000 +v -0.250000 0.566987 8.750000 +v 0.000000 0.500000 8.750000 +v 0.250000 0.566987 8.750000 +v 0.433012 0.750000 8.750000 +v 0.500000 1.000000 8.750000 +v 0.433013 1.250000 8.750000 +v 0.250000 1.433012 8.750000 +v 0.000000 1.500000 11.250000 +v -0.250000 1.433012 11.250000 +v -0.433013 1.250000 11.250000 +v -0.500000 1.000000 11.250000 +v -0.433013 0.750000 11.250000 +v -0.250000 0.566987 11.250000 +v 0.000000 0.500000 11.250000 +v 0.250000 0.566987 11.250000 +v 0.433012 0.750000 11.250000 +v 0.500000 1.000000 11.250000 +v 0.433013 1.250000 11.250000 +v 0.250000 1.433012 11.250000 +v 0.000000 1.437500 11.500000 +v -0.218750 1.378886 11.500000 +v -0.378886 1.218750 11.500000 +v -0.437500 1.000000 11.500000 +v -0.378886 0.781250 11.500000 +v -0.218750 0.621114 11.500000 +v 0.000000 0.562500 11.500000 +v 0.218750 0.621114 11.500000 +v 0.378886 0.781250 11.500000 +v 0.437500 1.000000 11.500000 +v 0.378886 1.218750 11.500000 +v 0.218750 1.378886 11.500000 +v 0.000000 1.437500 12.000000 +v -0.218750 1.378886 12.000000 +v -0.378886 1.218750 12.000000 +v -0.437500 1.000000 12.000000 +v -0.378886 0.781250 12.000000 +v -0.218750 0.621114 12.000000 +v 0.000000 0.562500 12.000000 +v 0.218750 0.621114 12.000000 +v 0.378886 0.781250 12.000000 +v 0.437500 1.000000 12.000000 +v 0.378886 1.218750 12.000000 +v 0.218750 1.378886 12.000000 +v 0.000000 1.312500 12.000000 +v -0.156250 1.270633 12.000000 +v -0.270633 1.156250 12.000000 +v -0.312500 1.000000 12.000000 +v -0.270633 0.843750 12.000000 +v -0.156250 0.729367 12.000000 +v 0.000000 0.687500 12.000000 +v 0.156250 0.729367 12.000000 +v 0.270633 0.843750 12.000000 +v 0.312500 1.000000 12.000000 +v 0.270633 1.156250 12.000000 +v 0.156250 1.270633 12.000000 +v 0.000000 1.312500 11.500000 +v -0.156250 1.270633 11.500000 +v -0.270633 1.156250 11.500000 +v -0.312500 1.000000 11.500000 +v -0.270633 0.843750 11.500000 +v -0.156250 0.729367 11.500000 +v 0.000000 0.687500 11.500000 +v 0.156250 0.729367 11.500000 +v 0.270633 0.843750 11.500000 +v 0.312500 1.000000 11.500000 +v 0.270633 1.156250 11.500000 +v 0.156250 1.270633 11.500000 +v 0.000000 1.625000 11.000000 +v -0.812500 1.407292 11.000000 +v -1.407291 0.812500 11.000000 +v -1.625000 0.000000 11.000000 +v -1.407291 -0.812500 11.000000 +v -0.812500 -1.407292 11.000000 +v -0.000000 -1.625000 11.000000 +v 0.812500 -1.407292 11.000000 +v 1.407290 -0.812500 11.000000 +v 1.625000 0.000000 11.000000 +v 1.407291 0.812500 11.000000 +v 0.812501 1.407292 11.000000 +v 0.000000 1.625000 10.000000 +v -0.812500 1.407292 10.000000 +v -1.407291 0.812500 10.000000 +v -1.625000 0.000000 10.000000 +v -1.407291 -0.812500 10.000000 +v -0.812500 -1.407292 10.000000 +v -0.000000 -1.625000 10.000000 +v 0.812500 -1.407292 10.000000 +v 1.407290 -0.812500 10.000000 +v 1.625000 0.000000 10.000000 +v 1.407291 0.812500 10.000000 +v 0.812501 1.407292 10.000000 +v -0.000000 -1.437500 -2.000000 +v 0.218750 -1.378886 -2.000000 +v 0.378886 -1.218750 -2.000000 +v 0.437500 -1.000000 -2.000000 +v 0.378886 -0.781250 -2.000000 +v 0.218750 -0.621114 -2.000000 +v -0.000000 -0.562500 -2.000000 +v -0.218750 -0.621114 -2.000000 +v -0.378887 -0.781250 -2.000000 +v -0.437500 -1.000000 -2.000000 +v -0.378887 -1.218750 -2.000000 +v -0.218750 -1.378886 -2.000000 +v -0.000000 -1.437500 2.000000 +v 0.218750 -1.378886 2.000000 +v 0.378886 -1.218750 2.000000 +v 0.437500 -1.000000 2.000000 +v 0.378886 -0.781250 2.000000 +v 0.218750 -0.621114 2.000000 +v -0.000000 -0.562500 2.000000 +v -0.218750 -0.621114 2.000000 +v -0.378887 -0.781250 2.000000 +v -0.437500 -1.000000 2.000000 +v -0.378887 -1.218750 2.000000 +v -0.218750 -1.378886 2.000000 +v -0.000000 -1.500000 2.250000 +v 0.250000 -1.433012 2.250000 +v 0.433013 -1.250000 2.250000 +v 0.500000 -1.000000 2.250000 +v 0.433013 -0.750000 2.250000 +v 0.250000 -0.566987 2.250000 +v -0.000000 -0.500000 2.250000 +v -0.250000 -0.566987 2.250000 +v -0.433013 -0.750000 2.250000 +v -0.500000 -1.000000 2.250000 +v -0.433013 -1.250000 2.250000 +v -0.250000 -1.433012 2.250000 +v -0.000000 -1.500000 3.250000 +v 0.250000 -1.433012 3.250000 +v 0.433013 -1.250000 3.250000 +v 0.500000 -1.000000 3.250000 +v 0.433013 -0.750000 3.250000 +v 0.250000 -0.566987 3.250000 +v -0.000000 -0.500000 3.250000 +v -0.250000 -0.566987 3.250000 +v -0.433013 -0.750000 3.250000 +v -0.500000 -1.000000 3.250000 +v -0.433013 -1.250000 3.250000 +v -0.250000 -1.433012 3.250000 +v -0.000000 -1.437500 3.500000 +v 0.218750 -1.378886 3.500000 +v 0.378886 -1.218750 3.500000 +v 0.437500 -1.000000 3.500000 +v 0.378886 -0.781250 3.500000 +v 0.218750 -0.621114 3.500000 +v -0.000000 -0.562500 3.500000 +v -0.218750 -0.621114 3.500000 +v -0.378887 -0.781250 3.500000 +v -0.437500 -1.000000 3.500000 +v -0.378887 -1.218750 3.500000 +v -0.218750 -1.378886 3.500000 +v -0.000000 -1.437500 8.500000 +v 0.218750 -1.378886 8.500000 +v 0.378886 -1.218750 8.500000 +v 0.437500 -1.000000 8.500000 +v 0.378886 -0.781250 8.500000 +v 0.218750 -0.621114 8.500000 +v -0.000000 -0.562500 8.500000 +v -0.218750 -0.621114 8.500000 +v -0.378887 -0.781250 8.500000 +v -0.437500 -1.000000 8.500000 +v -0.378887 -1.218750 8.500000 +v -0.218750 -1.378886 8.500000 +v -0.000000 -1.500000 8.750000 +v 0.250000 -1.433012 8.750000 +v 0.433013 -1.250000 8.750000 +v 0.500000 -1.000000 8.750000 +v 0.433013 -0.750000 8.750000 +v 0.250000 -0.566987 8.750000 +v -0.000000 -0.500000 8.750000 +v -0.250000 -0.566987 8.750000 +v -0.433013 -0.750000 8.750000 +v -0.500000 -1.000000 8.750000 +v -0.433013 -1.250000 8.750000 +v -0.250000 -1.433012 8.750000 +v -0.000000 -1.500000 11.250000 +v 0.250000 -1.433012 11.250000 +v 0.433013 -1.250000 11.250000 +v 0.500000 -1.000000 11.250000 +v 0.433013 -0.750000 11.250000 +v 0.250000 -0.566987 11.250000 +v -0.000000 -0.500000 11.250000 +v -0.250000 -0.566987 11.250000 +v -0.433013 -0.750000 11.250000 +v -0.500000 -1.000000 11.250000 +v -0.433013 -1.250000 11.250000 +v -0.250000 -1.433012 11.250000 +v -0.000000 -1.437500 11.500000 +v 0.218750 -1.378886 11.500000 +v 0.378886 -1.218750 11.500000 +v 0.437500 -1.000000 11.500000 +v 0.378886 -0.781250 11.500000 +v 0.218750 -0.621114 11.500000 +v -0.000000 -0.562500 11.500000 +v -0.218750 -0.621114 11.500000 +v -0.378887 -0.781250 11.500000 +v -0.437500 -1.000000 11.500000 +v -0.378887 -1.218750 11.500000 +v -0.218750 -1.378886 11.500000 +v -0.000000 -1.437500 12.000000 +v 0.218750 -1.378886 12.000000 +v 0.378886 -1.218750 12.000000 +v 0.437500 -1.000000 12.000000 +v 0.378886 -0.781250 12.000000 +v 0.218750 -0.621114 12.000000 +v -0.000000 -0.562500 12.000000 +v -0.218750 -0.621114 12.000000 +v -0.378887 -0.781250 12.000000 +v -0.437500 -1.000000 12.000000 +v -0.378887 -1.218750 12.000000 +v -0.218750 -1.378886 12.000000 +v -0.000000 -1.312500 12.000000 +v 0.156250 -1.270633 12.000000 +v 0.270633 -1.156250 12.000000 +v 0.312500 -1.000000 12.000000 +v 0.270632 -0.843750 12.000000 +v 0.156250 -0.729367 12.000000 +v -0.000000 -0.687500 12.000000 +v -0.156250 -0.729367 12.000000 +v -0.270633 -0.843750 12.000000 +v -0.312500 -1.000000 12.000000 +v -0.270633 -1.156250 12.000000 +v -0.156250 -1.270633 12.000000 +v -0.000000 -1.312500 11.500000 +v 0.156250 -1.270633 11.500000 +v 0.270633 -1.156250 11.500000 +v 0.312500 -1.000000 11.500000 +v 0.270632 -0.843750 11.500000 +v 0.156250 -0.729367 11.500000 +v -0.000000 -0.687500 11.500000 +v -0.156250 -0.729367 11.500000 +v -0.270633 -0.843750 11.500000 +v -0.312500 -1.000000 11.500000 +v -0.270633 -1.156250 11.500000 +v -0.156250 -1.270633 11.500000 +v 1.244911 0.718750 -2.000000 +v 1.084775 0.878886 -2.000000 +v 0.866025 0.937500 -2.000000 +v 0.647275 0.878886 -2.000000 +v 0.487139 0.718750 -2.000000 +v 0.428525 0.500000 -2.000000 +v 0.487139 0.281250 -2.000000 +v 0.647275 0.121114 -2.000000 +v 0.866025 0.062500 -2.000000 +v 1.084775 0.121114 -2.000000 +v 1.244911 0.281250 -2.000000 +v 1.303525 0.500000 -2.000000 +v 1.244911 0.718750 2.000000 +v 1.084775 0.878886 2.000000 +v 0.866025 0.937500 2.000000 +v 0.647275 0.878886 2.000000 +v 0.487139 0.718750 2.000000 +v 0.428525 0.500000 2.000000 +v 0.487139 0.281250 2.000000 +v 0.647275 0.121114 2.000000 +v 0.866025 0.062500 2.000000 +v 1.084775 0.121114 2.000000 +v 1.244911 0.281250 2.000000 +v 1.303525 0.500000 2.000000 +v 1.299038 0.750000 2.250000 +v 1.116025 0.933012 2.250000 +v 0.866025 1.000000 2.250000 +v 0.616025 0.933012 2.250000 +v 0.433012 0.750000 2.250000 +v 0.366025 0.500000 2.250000 +v 0.433012 0.250000 2.250000 +v 0.616025 0.066987 2.250000 +v 0.866025 -0.000000 2.250000 +v 1.116025 0.066987 2.250000 +v 1.299038 0.249999 2.250000 +v 1.366025 0.500000 2.250000 +v 1.299038 0.750000 3.250000 +v 1.116025 0.933012 3.250000 +v 0.866025 1.000000 3.250000 +v 0.616025 0.933012 3.250000 +v 0.433012 0.750000 3.250000 +v 0.366025 0.500000 3.250000 +v 0.433012 0.250000 3.250000 +v 0.616025 0.066987 3.250000 +v 0.866025 -0.000000 3.250000 +v 1.116025 0.066987 3.250000 +v 1.299038 0.249999 3.250000 +v 1.366025 0.500000 3.250000 +v 1.244911 0.718750 3.500000 +v 1.084775 0.878886 3.500000 +v 0.866025 0.937500 3.500000 +v 0.647275 0.878886 3.500000 +v 0.487139 0.718750 3.500000 +v 0.428525 0.500000 3.500000 +v 0.487139 0.281250 3.500000 +v 0.647275 0.121114 3.500000 +v 0.866025 0.062500 3.500000 +v 1.084775 0.121114 3.500000 +v 1.244911 0.281250 3.500000 +v 1.303525 0.500000 3.500000 +v 1.244911 0.718750 8.500000 +v 1.084775 0.878886 8.500000 +v 0.866025 0.937500 8.500000 +v 0.647275 0.878886 8.500000 +v 0.487139 0.718750 8.500000 +v 0.428525 0.500000 8.500000 +v 0.487139 0.281250 8.500000 +v 0.647275 0.121114 8.500000 +v 0.866025 0.062500 8.500000 +v 1.084775 0.121114 8.500000 +v 1.244911 0.281250 8.500000 +v 1.303525 0.500000 8.500000 +v 1.299038 0.750000 8.750000 +v 1.116025 0.933012 8.750000 +v 0.866025 1.000000 8.750000 +v 0.616025 0.933012 8.750000 +v 0.433012 0.750000 8.750000 +v 0.366025 0.500000 8.750000 +v 0.433012 0.250000 8.750000 +v 0.616025 0.066987 8.750000 +v 0.866025 -0.000000 8.750000 +v 1.116025 0.066987 8.750000 +v 1.299038 0.249999 8.750000 +v 1.366025 0.500000 8.750000 +v 1.299038 0.750000 11.250000 +v 1.116025 0.933012 11.250000 +v 0.866025 1.000000 11.250000 +v 0.616025 0.933012 11.250000 +v 0.433012 0.750000 11.250000 +v 0.366025 0.500000 11.250000 +v 0.433012 0.250000 11.250000 +v 0.616025 0.066987 11.250000 +v 0.866025 -0.000000 11.250000 +v 1.116025 0.066987 11.250000 +v 1.299038 0.249999 11.250000 +v 1.366025 0.500000 11.250000 +v 1.244911 0.718750 11.500000 +v 1.084775 0.878886 11.500000 +v 0.866025 0.937500 11.500000 +v 0.647275 0.878886 11.500000 +v 0.487139 0.718750 11.500000 +v 0.428525 0.500000 11.500000 +v 0.487139 0.281250 11.500000 +v 0.647275 0.121114 11.500000 +v 0.866025 0.062500 11.500000 +v 1.084775 0.121114 11.500000 +v 1.244911 0.281250 11.500000 +v 1.303525 0.500000 11.500000 +v 1.244911 0.718750 12.000000 +v 1.084775 0.878886 12.000000 +v 0.866025 0.937500 12.000000 +v 0.647275 0.878886 12.000000 +v 0.487139 0.718750 12.000000 +v 0.428525 0.500000 12.000000 +v 0.487139 0.281250 12.000000 +v 0.647275 0.121114 12.000000 +v 0.866025 0.062500 12.000000 +v 1.084775 0.121114 12.000000 +v 1.244911 0.281250 12.000000 +v 1.303525 0.500000 12.000000 +v 1.136658 0.656250 12.000000 +v 1.022276 0.770633 12.000000 +v 0.866025 0.812500 12.000000 +v 0.709775 0.770633 12.000000 +v 0.595393 0.656250 12.000000 +v 0.553525 0.500000 12.000000 +v 0.595392 0.343750 12.000000 +v 0.709775 0.229367 12.000000 +v 0.866025 0.187500 12.000000 +v 1.022275 0.229367 12.000000 +v 1.136658 0.343750 12.000000 +v 1.178525 0.500000 12.000000 +v 1.136658 0.656250 11.500000 +v 1.022276 0.770633 11.500000 +v 0.866025 0.812500 11.500000 +v 0.709775 0.770633 11.500000 +v 0.595393 0.656250 11.500000 +v 0.553525 0.500000 11.500000 +v 0.595392 0.343750 11.500000 +v 0.709775 0.229367 11.500000 +v 0.866025 0.187500 11.500000 +v 1.022275 0.229367 11.500000 +v 1.136658 0.343750 11.500000 +v 1.178525 0.500000 11.500000 +v -1.244912 -0.718750 -2.000000 +v -1.084776 -0.878886 -2.000000 +v -0.866026 -0.937500 -2.000000 +v -0.647276 -0.878886 -2.000000 +v -0.487140 -0.718750 -2.000000 +v -0.428526 -0.500000 -2.000000 +v -0.487140 -0.281250 -2.000000 +v -0.647276 -0.121114 -2.000000 +v -0.866026 -0.062500 -2.000000 +v -1.084775 -0.121113 -2.000000 +v -1.244912 -0.281250 -2.000000 +v -1.303526 -0.500000 -2.000000 +v -1.244912 -0.718750 2.000000 +v -1.084776 -0.878886 2.000000 +v -0.866026 -0.937500 2.000000 +v -0.647276 -0.878886 2.000000 +v -0.487140 -0.718750 2.000000 +v -0.428526 -0.500000 2.000000 +v -0.487140 -0.281250 2.000000 +v -0.647276 -0.121114 2.000000 +v -0.866026 -0.062500 2.000000 +v -1.084775 -0.121113 2.000000 +v -1.244912 -0.281250 2.000000 +v -1.303526 -0.500000 2.000000 +v -1.299038 -0.750000 2.250000 +v -1.116026 -0.933012 2.250000 +v -0.866025 -1.000000 2.250000 +v -0.616026 -0.933012 2.250000 +v -0.433013 -0.750000 2.250000 +v -0.366026 -0.500000 2.250000 +v -0.433013 -0.250000 2.250000 +v -0.616025 -0.066987 2.250000 +v -0.866025 0.000000 2.250000 +v -1.116025 -0.066987 2.250000 +v -1.299038 -0.249999 2.250000 +v -1.366025 -0.500000 2.250000 +v -1.299038 -0.750000 3.250000 +v -1.116026 -0.933012 3.250000 +v -0.866025 -1.000000 3.250000 +v -0.616026 -0.933012 3.250000 +v -0.433013 -0.750000 3.250000 +v -0.366026 -0.500000 3.250000 +v -0.433013 -0.250000 3.250000 +v -0.616025 -0.066987 3.250000 +v -0.866025 0.000000 3.250000 +v -1.116025 -0.066987 3.250000 +v -1.299038 -0.249999 3.250000 +v -1.366025 -0.500000 3.250000 +v -1.244912 -0.718750 3.500000 +v -1.084776 -0.878886 3.500000 +v -0.866026 -0.937500 3.500000 +v -0.647276 -0.878886 3.500000 +v -0.487140 -0.718750 3.500000 +v -0.428526 -0.500000 3.500000 +v -0.487140 -0.281250 3.500000 +v -0.647276 -0.121114 3.500000 +v -0.866026 -0.062500 3.500000 +v -1.084775 -0.121113 3.500000 +v -1.244912 -0.281250 3.500000 +v -1.303526 -0.500000 3.500000 +v -1.244912 -0.718750 8.500000 +v -1.084776 -0.878886 8.500000 +v -0.866026 -0.937500 8.500000 +v -0.647276 -0.878886 8.500000 +v -0.487140 -0.718750 8.500000 +v -0.428526 -0.500000 8.500000 +v -0.487140 -0.281250 8.500000 +v -0.647276 -0.121114 8.500000 +v -0.866026 -0.062500 8.500000 +v -1.084775 -0.121113 8.500000 +v -1.244912 -0.281250 8.500000 +v -1.303526 -0.500000 8.500000 +v -1.299038 -0.750000 8.750000 +v -1.116026 -0.933012 8.750000 +v -0.866025 -1.000000 8.750000 +v -0.616026 -0.933012 8.750000 +v -0.433013 -0.750000 8.750000 +v -0.366026 -0.500000 8.750000 +v -0.433013 -0.250000 8.750000 +v -0.616025 -0.066987 8.750000 +v -0.866025 0.000000 8.750000 +v -1.116025 -0.066987 8.750000 +v -1.299038 -0.249999 8.750000 +v -1.366025 -0.500000 8.750000 +v -1.299038 -0.750000 11.250000 +v -1.116026 -0.933012 11.250000 +v -0.866025 -1.000000 11.250000 +v -0.616026 -0.933012 11.250000 +v -0.433013 -0.750000 11.250000 +v -0.366026 -0.500000 11.250000 +v -0.433013 -0.250000 11.250000 +v -0.616025 -0.066987 11.250000 +v -0.866025 0.000000 11.250000 +v -1.116025 -0.066987 11.250000 +v -1.299038 -0.249999 11.250000 +v -1.366025 -0.500000 11.250000 +v -1.244912 -0.718750 11.500000 +v -1.084776 -0.878886 11.500000 +v -0.866026 -0.937500 11.500000 +v -0.647276 -0.878886 11.500000 +v -0.487140 -0.718750 11.500000 +v -0.428526 -0.500000 11.500000 +v -0.487140 -0.281250 11.500000 +v -0.647276 -0.121114 11.500000 +v -0.866026 -0.062500 11.500000 +v -1.084775 -0.121113 11.500000 +v -1.244912 -0.281250 11.500000 +v -1.303526 -0.500000 11.500000 +v -1.244912 -0.718750 12.000000 +v -1.084776 -0.878886 12.000000 +v -0.866026 -0.937500 12.000000 +v -0.647276 -0.878886 12.000000 +v -0.487140 -0.718750 12.000000 +v -0.428526 -0.500000 12.000000 +v -0.487140 -0.281250 12.000000 +v -0.647276 -0.121114 12.000000 +v -0.866026 -0.062500 12.000000 +v -1.084775 -0.121113 12.000000 +v -1.244912 -0.281250 12.000000 +v -1.303526 -0.500000 12.000000 +v -1.136659 -0.656250 12.000000 +v -1.022276 -0.770633 12.000000 +v -0.866026 -0.812500 12.000000 +v -0.709776 -0.770633 12.000000 +v -0.595393 -0.656250 12.000000 +v -0.553526 -0.500000 12.000000 +v -0.595393 -0.343750 12.000000 +v -0.709775 -0.229367 12.000000 +v -0.866026 -0.187500 12.000000 +v -1.022276 -0.229367 12.000000 +v -1.136659 -0.343750 12.000000 +v -1.178526 -0.500000 12.000000 +v -1.136659 -0.656250 11.500000 +v -1.022276 -0.770633 11.500000 +v -0.866026 -0.812500 11.500000 +v -0.709776 -0.770633 11.500000 +v -0.595393 -0.656250 11.500000 +v -0.553526 -0.500000 11.500000 +v -0.595393 -0.343750 11.500000 +v -0.709775 -0.229367 11.500000 +v -0.866026 -0.187500 11.500000 +v -1.022276 -0.229367 11.500000 +v -1.136659 -0.343750 11.500000 +v -1.178526 -0.500000 11.500000 +v 1.244911 -0.718750 -2.000000 +v 1.303525 -0.500000 -2.000000 +v 1.244911 -0.281250 -2.000000 +v 1.084775 -0.121114 -2.000000 +v 0.866025 -0.062500 -2.000000 +v 0.647275 -0.121114 -2.000000 +v 0.487139 -0.281250 -2.000000 +v 0.428525 -0.500000 -2.000000 +v 0.487139 -0.718750 -2.000000 +v 0.647275 -0.878886 -2.000000 +v 0.866025 -0.937500 -2.000000 +v 1.084775 -0.878886 -2.000000 +v 1.244911 -0.718750 2.000000 +v 1.303525 -0.500000 2.000000 +v 1.244911 -0.281250 2.000000 +v 1.084775 -0.121114 2.000000 +v 0.866025 -0.062500 2.000000 +v 0.647275 -0.121114 2.000000 +v 0.487139 -0.281250 2.000000 +v 0.428525 -0.500000 2.000000 +v 0.487139 -0.718750 2.000000 +v 0.647275 -0.878886 2.000000 +v 0.866025 -0.937500 2.000000 +v 1.084775 -0.878886 2.000000 +v 1.299038 -0.750000 2.250000 +v 1.366025 -0.500000 2.250000 +v 1.299038 -0.250000 2.250000 +v 1.116025 -0.066987 2.250000 +v 0.866025 0.000000 2.250000 +v 0.616025 -0.066987 2.250000 +v 0.433012 -0.250000 2.250000 +v 0.366025 -0.500000 2.250000 +v 0.433012 -0.750000 2.250000 +v 0.616025 -0.933013 2.250000 +v 0.866024 -1.000000 2.250000 +v 1.116025 -0.933013 2.250000 +v 1.299038 -0.750000 3.250000 +v 1.366025 -0.500000 3.250000 +v 1.299038 -0.250000 3.250000 +v 1.116025 -0.066987 3.250000 +v 0.866025 0.000000 3.250000 +v 0.616025 -0.066987 3.250000 +v 0.433012 -0.250000 3.250000 +v 0.366025 -0.500000 3.250000 +v 0.433012 -0.750000 3.250000 +v 0.616025 -0.933013 3.250000 +v 0.866024 -1.000000 3.250000 +v 1.116025 -0.933013 3.250000 +v 1.244911 -0.718750 3.500000 +v 1.303525 -0.500000 3.500000 +v 1.244911 -0.281250 3.500000 +v 1.084775 -0.121114 3.500000 +v 0.866025 -0.062500 3.500000 +v 0.647275 -0.121114 3.500000 +v 0.487139 -0.281250 3.500000 +v 0.428525 -0.500000 3.500000 +v 0.487139 -0.718750 3.500000 +v 0.647275 -0.878886 3.500000 +v 0.866025 -0.937500 3.500000 +v 1.084775 -0.878886 3.500000 +v 1.244911 -0.718750 8.500000 +v 1.303525 -0.500000 8.500000 +v 1.244911 -0.281250 8.500000 +v 1.084775 -0.121114 8.500000 +v 0.866025 -0.062500 8.500000 +v 0.647275 -0.121114 8.500000 +v 0.487139 -0.281250 8.500000 +v 0.428525 -0.500000 8.500000 +v 0.487139 -0.718750 8.500000 +v 0.647275 -0.878886 8.500000 +v 0.866025 -0.937500 8.500000 +v 1.084775 -0.878886 8.500000 +v 1.299038 -0.750000 8.750000 +v 1.366025 -0.500000 8.750000 +v 1.299038 -0.250000 8.750000 +v 1.116025 -0.066987 8.750000 +v 0.866025 0.000000 8.750000 +v 0.616025 -0.066987 8.750000 +v 0.433012 -0.250000 8.750000 +v 0.366025 -0.500000 8.750000 +v 0.433012 -0.750000 8.750000 +v 0.616025 -0.933013 8.750000 +v 0.866024 -1.000000 8.750000 +v 1.116025 -0.933013 8.750000 +v 1.299038 -0.750000 11.250000 +v 1.366025 -0.500000 11.250000 +v 1.299038 -0.250000 11.250000 +v 1.116025 -0.066987 11.250000 +v 0.866025 0.000000 11.250000 +v 0.616025 -0.066987 11.250000 +v 0.433012 -0.250000 11.250000 +v 0.366025 -0.500000 11.250000 +v 0.433012 -0.750000 11.250000 +v 0.616025 -0.933013 11.250000 +v 0.866024 -1.000000 11.250000 +v 1.116025 -0.933013 11.250000 +v 1.244911 -0.718750 11.500000 +v 1.303525 -0.500000 11.500000 +v 1.244911 -0.281250 11.500000 +v 1.084775 -0.121114 11.500000 +v 0.866025 -0.062500 11.500000 +v 0.647275 -0.121114 11.500000 +v 0.487139 -0.281250 11.500000 +v 0.428525 -0.500000 11.500000 +v 0.487139 -0.718750 11.500000 +v 0.647275 -0.878886 11.500000 +v 0.866025 -0.937500 11.500000 +v 1.084775 -0.878886 11.500000 +v 1.244911 -0.718750 12.000000 +v 1.303525 -0.500000 12.000000 +v 1.244911 -0.281250 12.000000 +v 1.084775 -0.121114 12.000000 +v 0.866025 -0.062500 12.000000 +v 0.647275 -0.121114 12.000000 +v 0.487139 -0.281250 12.000000 +v 0.428525 -0.500000 12.000000 +v 0.487139 -0.718750 12.000000 +v 0.647275 -0.878886 12.000000 +v 0.866025 -0.937500 12.000000 +v 1.084775 -0.878886 12.000000 +v 1.136658 -0.656250 12.000000 +v 1.178525 -0.500000 12.000000 +v 1.136658 -0.343750 12.000000 +v 1.022275 -0.229367 12.000000 +v 0.866025 -0.187500 12.000000 +v 0.709775 -0.229367 12.000000 +v 0.595392 -0.343750 12.000000 +v 0.553525 -0.500000 12.000000 +v 0.595392 -0.656250 12.000000 +v 0.709775 -0.770633 12.000000 +v 0.866025 -0.812500 12.000000 +v 1.022275 -0.770633 12.000000 +v 1.136658 -0.656250 11.500000 +v 1.178525 -0.500000 11.500000 +v 1.136658 -0.343750 11.500000 +v 1.022275 -0.229367 11.500000 +v 0.866025 -0.187500 11.500000 +v 0.709775 -0.229367 11.500000 +v 0.595392 -0.343750 11.500000 +v 0.553525 -0.500000 11.500000 +v 0.595392 -0.656250 11.500000 +v 0.709775 -0.770633 11.500000 +v 0.866025 -0.812500 11.500000 +v 1.022275 -0.770633 11.500000 +v -1.244911 0.718750 -2.000000 +v -1.303525 0.500000 -2.000000 +v -1.244912 0.281250 -2.000000 +v -1.084775 0.121114 -2.000000 +v -0.866026 0.062500 -2.000000 +v -0.647275 0.121114 -2.000000 +v -0.487139 0.281250 -2.000000 +v -0.428525 0.500000 -2.000000 +v -0.487139 0.718750 -2.000000 +v -0.647275 0.878886 -2.000000 +v -0.866025 0.937500 -2.000000 +v -1.084775 0.878886 -2.000000 +v -1.244911 0.718750 2.000000 +v -1.303525 0.500000 2.000000 +v -1.244912 0.281250 2.000000 +v -1.084775 0.121114 2.000000 +v -0.866026 0.062500 2.000000 +v -0.647275 0.121114 2.000000 +v -0.487139 0.281250 2.000000 +v -0.428525 0.500000 2.000000 +v -0.487139 0.718750 2.000000 +v -0.647275 0.878886 2.000000 +v -0.866025 0.937500 2.000000 +v -1.084775 0.878886 2.000000 +v -1.299038 0.750000 2.250000 +v -1.366025 0.500000 2.250000 +v -1.299038 0.250000 2.250000 +v -1.116025 0.066988 2.250000 +v -0.866025 -0.000000 2.250000 +v -0.616025 0.066988 2.250000 +v -0.433013 0.250000 2.250000 +v -0.366025 0.500000 2.250000 +v -0.433013 0.750000 2.250000 +v -0.616025 0.933013 2.250000 +v -0.866025 1.000000 2.250000 +v -1.116025 0.933013 2.250000 +v -1.299038 0.750000 3.250000 +v -1.366025 0.500000 3.250000 +v -1.299038 0.250000 3.250000 +v -1.116025 0.066988 3.250000 +v -0.866025 -0.000000 3.250000 +v -0.616025 0.066988 3.250000 +v -0.433013 0.250000 3.250000 +v -0.366025 0.500000 3.250000 +v -0.433013 0.750000 3.250000 +v -0.616025 0.933013 3.250000 +v -0.866025 1.000000 3.250000 +v -1.116025 0.933013 3.250000 +v -1.244911 0.718750 3.500000 +v -1.303525 0.500000 3.500000 +v -1.244912 0.281250 3.500000 +v -1.084775 0.121114 3.500000 +v -0.866026 0.062500 3.500000 +v -0.647275 0.121114 3.500000 +v -0.487139 0.281250 3.500000 +v -0.428525 0.500000 3.500000 +v -0.487139 0.718750 3.500000 +v -0.647275 0.878886 3.500000 +v -0.866025 0.937500 3.500000 +v -1.084775 0.878886 3.500000 +v -1.244911 0.718750 8.500000 +v -1.303525 0.500000 8.500000 +v -1.244912 0.281250 8.500000 +v -1.084775 0.121114 8.500000 +v -0.866026 0.062500 8.500000 +v -0.647275 0.121114 8.500000 +v -0.487139 0.281250 8.500000 +v -0.428525 0.500000 8.500000 +v -0.487139 0.718750 8.500000 +v -0.647275 0.878886 8.500000 +v -0.866025 0.937500 8.500000 +v -1.084775 0.878886 8.500000 +v -1.299038 0.750000 8.750000 +v -1.366025 0.500000 8.750000 +v -1.299038 0.250000 8.750000 +v -1.116025 0.066988 8.750000 +v -0.866025 -0.000000 8.750000 +v -0.616025 0.066988 8.750000 +v -0.433013 0.250000 8.750000 +v -0.366025 0.500000 8.750000 +v -0.433013 0.750000 8.750000 +v -0.616025 0.933013 8.750000 +v -0.866025 1.000000 8.750000 +v -1.116025 0.933013 8.750000 +v -1.299038 0.750000 11.250000 +v -1.366025 0.500000 11.250000 +v -1.299038 0.250000 11.250000 +v -1.116025 0.066988 11.250000 +v -0.866025 -0.000000 11.250000 +v -0.616025 0.066988 11.250000 +v -0.433013 0.250000 11.250000 +v -0.366025 0.500000 11.250000 +v -0.433013 0.750000 11.250000 +v -0.616025 0.933013 11.250000 +v -0.866025 1.000000 11.250000 +v -1.116025 0.933013 11.250000 +v -1.244911 0.718750 11.500000 +v -1.303525 0.500000 11.500000 +v -1.244912 0.281250 11.500000 +v -1.084775 0.121114 11.500000 +v -0.866026 0.062500 11.500000 +v -0.647275 0.121114 11.500000 +v -0.487139 0.281250 11.500000 +v -0.428525 0.500000 11.500000 +v -0.487139 0.718750 11.500000 +v -0.647275 0.878886 11.500000 +v -0.866025 0.937500 11.500000 +v -1.084775 0.878886 11.500000 +v -1.244911 0.718750 12.000000 +v -1.303525 0.500000 12.000000 +v -1.244912 0.281250 12.000000 +v -1.084775 0.121114 12.000000 +v -0.866026 0.062500 12.000000 +v -0.647275 0.121114 12.000000 +v -0.487139 0.281250 12.000000 +v -0.428525 0.500000 12.000000 +v -0.487139 0.718750 12.000000 +v -0.647275 0.878886 12.000000 +v -0.866025 0.937500 12.000000 +v -1.084775 0.878886 12.000000 +v -1.136658 0.656250 12.000000 +v -1.178525 0.500000 12.000000 +v -1.136659 0.343750 12.000000 +v -1.022275 0.229367 12.000000 +v -0.866025 0.187500 12.000000 +v -0.709775 0.229367 12.000000 +v -0.595392 0.343750 12.000000 +v -0.553525 0.500000 12.000000 +v -0.595393 0.656250 12.000000 +v -0.709775 0.770633 12.000000 +v -0.866025 0.812500 12.000000 +v -1.022275 0.770633 12.000000 +v -1.136658 0.656250 11.500000 +v -1.178525 0.500000 11.500000 +v -1.136659 0.343750 11.500000 +v -1.022275 0.229367 11.500000 +v -0.866025 0.187500 11.500000 +v -0.709775 0.229367 11.500000 +v -0.595392 0.343750 11.500000 +v -0.553525 0.500000 11.500000 +v -0.595393 0.656250 11.500000 +v -0.709775 0.770633 11.500000 +v -0.866025 0.812500 11.500000 +v -1.022275 0.770633 11.500000 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.105263 0.531250 +vt 0.108553 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.689948 0.292980 +vt 0.726974 0.242210 +vt 0.764000 0.394520 +vt 0.689948 0.496105 +vt 0.726974 0.445335 +vt 0.764000 0.496105 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.105263 0.531250 +vt 0.108553 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.105263 0.531250 +vt 0.108553 0.531250 +vt 0.108553 0.515625 +vt 0.105263 0.527344 +vt 0.105263 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.105263 0.609375 +vt 0.108553 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.108553 0.531250 +vt 0.105263 0.542969 +vt 0.105263 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.076772 0.572282 +vt 0.090991 0.572282 +vt 0.083882 0.601529 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.108553 0.531250 +vt 0.105263 0.542969 +vt 0.105263 0.531250 +vt 0.108553 0.515625 +vt 0.105263 0.527344 +vt 0.105263 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.105263 0.609375 +vt 0.108553 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.108553 0.531250 +vt 0.105263 0.542969 +vt 0.105263 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.542969 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.748351 0.431686 +vt 0.726974 0.445290 +vt 0.705597 0.431686 +vt 0.689948 0.394520 +vt 0.684220 0.343750 +vt 0.705597 0.255814 +vt 0.748351 0.255814 +vt 0.764000 0.292980 +vt 0.769728 0.343750 +vt 0.726974 0.648415 +vt 0.705597 0.634811 +vt 0.689948 0.597645 +vt 0.684220 0.546875 +vt 0.705597 0.458939 +vt 0.748351 0.458939 +vt 0.769728 0.546875 +vt 0.764000 0.597645 +vt 0.748351 0.634811 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.542969 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.542969 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.105263 0.621094 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.092091 0.582031 +vt 0.090991 0.591780 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.105263 0.621094 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.105263 0.605469 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.332237 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.656250 +vt 0.194079 0.640625 +vt 0.200658 0.687500 +vt 0.194079 0.671875 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.640625 +vt 0.121711 0.625000 +vt 0.121711 0.671875 +vt 0.121711 0.656250 +vt 0.128289 0.687500 +vt 0.121711 0.515625 +vt 0.121711 0.500000 +vt 0.121711 0.531250 +vt 0.121711 0.546875 +vt 0.121711 0.562500 +vt 0.121711 0.687500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.769737 0.218750 +vt 0.796053 0.164062 +vt 0.796053 0.218750 +vt 0.769737 0.492188 +vt 0.796053 0.437500 +vt 0.796053 0.492188 +vt 0.769737 0.656250 +vt 0.796053 0.601562 +vt 0.796053 0.656250 +vt 0.769737 0.164062 +vt 0.796053 0.109375 +vt 0.769737 0.437500 +vt 0.796053 0.382812 +vt 0.769737 0.328125 +vt 0.796053 0.273438 +vt 0.796053 0.328125 +vt 0.769737 0.601562 +vt 0.796053 0.546875 +vt 0.769737 0.109375 +vt 0.796053 0.054688 +vt 0.769737 0.382812 +vt 0.769737 0.273438 +vt 0.769737 0.546875 +vt 0.769737 0.054688 +vt 0.796053 -0.000000 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.332237 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.671875 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.640625 +vt 0.121711 0.625000 +vt 0.121711 0.671875 +vt 0.121711 0.656250 +vt 0.128289 0.687500 +vt 0.121711 0.500000 +vt 0.121711 0.515625 +vt 0.121711 0.531250 +vt 0.121711 0.546875 +vt 0.121711 0.562500 +vt 0.121711 0.687500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.332237 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.671875 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.625000 +vt 0.121711 0.609375 +vt 0.121711 0.656250 +vt 0.121711 0.640625 +vt 0.121711 0.687500 +vt 0.121711 0.671875 +vt 0.121711 0.515625 +vt 0.121711 0.500000 +vt 0.121711 0.546875 +vt 0.121711 0.531250 +vt 0.121711 0.562500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.338816 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.332237 0.687500 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.640625 +vt 0.194079 0.625000 +vt 0.194079 0.671875 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.625000 +vt 0.121711 0.656250 +vt 0.121711 0.640625 +vt 0.121711 0.687500 +vt 0.121711 0.671875 +vt 0.121711 0.515625 +vt 0.121711 0.500000 +vt 0.121711 0.546875 +vt 0.121711 0.531250 +vt 0.121711 0.562500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.365132 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.338816 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.332237 0.609375 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.332237 0.687500 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.671875 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.625000 +vt 0.121711 0.640625 +vt 0.121711 0.671875 +vt 0.121711 0.656250 +vt 0.121711 0.687500 +vt 0.121711 0.500000 +vt 0.121711 0.515625 +vt 0.121711 0.531250 +vt 0.121711 0.546875 +vt 0.121711 0.562500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.338816 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.332237 0.687500 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.671875 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.625000 +vt 0.121711 0.640625 +vt 0.121711 0.656250 +vt 0.128289 0.687500 +vt 0.121711 0.671875 +vt 0.121711 0.500000 +vt 0.121711 0.515625 +vt 0.121711 0.546875 +vt 0.121711 0.531250 +vt 0.121711 0.562500 +vt 0.121711 0.687500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.338816 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.769737 -0.000000 +vt 0.338816 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.338816 0.687500 +vt 0.128289 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.128289 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.371711 0.687500 +vt 0.128289 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.9701 -0.0000 -0.2425 +vn -0.8402 0.4851 -0.2425 +vn -0.4851 0.8402 -0.2425 +vn 0.0000 0.9701 -0.2425 +vn 0.4851 0.8402 -0.2425 +vn 0.8402 0.4851 -0.2425 +vn 0.9701 0.0000 -0.2425 +vn 0.8402 -0.4851 -0.2425 +vn 0.4851 -0.8402 -0.2425 +vn -0.0000 -0.9701 -0.2425 +vn -0.4851 -0.8402 -0.2425 +vn -0.8402 -0.4851 -0.2425 +vn 0.0000 0.9701 0.2425 +vn -0.4851 0.8402 0.2425 +vn 0.4851 0.8402 0.2425 +vn 0.8402 0.4851 0.2425 +vn 0.9701 -0.0000 0.2425 +vn 0.8402 -0.4851 0.2425 +vn 0.4851 -0.8402 0.2425 +vn -0.0000 -0.9701 0.2425 +vn -0.4851 -0.8402 0.2425 +vn -0.8402 -0.4851 0.2425 +vn -0.9701 -0.0000 0.2425 +vn -0.8402 0.4851 0.2425 +s off +f 109/1/1 132/2/1 120/3/1 +f 120/3/1 131/4/1 119/5/1 +f 119/5/1 130/6/1 118/7/1 +f 118/7/1 129/8/1 117/9/1 +f 117/9/1 128/10/1 116/11/1 +f 115/12/1 128/13/1 127/14/1 +f 115/15/1 126/16/1 114/17/1 +f 114/17/1 125/18/1 113/19/1 +f 113/19/1 124/20/1 112/21/1 +f 112/21/1 123/22/1 111/23/1 +f 110/24/1 123/25/1 122/26/1 +f 109/1/1 122/27/1 121/28/1 +f 143/29/1 133/30/1 137/31/1 +f 165/32/2 163/33/2 159/34/2 +f 149/35/1 151/36/1 153/37/1 +f 277/38/1 300/39/1 288/40/1 +f 288/40/1 299/41/1 287/42/1 +f 287/42/1 298/43/1 286/44/1 +f 286/44/1 297/45/1 285/46/1 +f 285/46/1 296/47/1 284/48/1 +f 283/49/1 296/50/1 295/51/1 +f 283/52/1 294/53/1 282/54/1 +f 282/54/1 293/55/1 281/56/1 +f 281/56/1 292/57/1 280/58/1 +f 280/58/1 291/59/1 279/60/1 +f 278/61/1 291/62/1 290/63/1 +f 277/38/1 290/64/1 289/65/1 +f 311/66/1 301/67/1 305/68/1 +f 421/69/1 444/70/1 432/71/1 +f 432/71/1 443/72/1 431/73/1 +f 431/73/1 442/74/1 430/75/1 +f 430/75/1 441/76/1 429/77/1 +f 428/78/1 441/79/1 440/80/1 +f 427/81/1 440/82/1 439/83/1 +f 427/84/1 438/85/1 426/86/1 +f 426/86/1 437/87/1 425/88/1 +f 425/88/1 436/89/1 424/90/1 +f 424/90/1 435/91/1 423/92/1 +f 423/92/1 434/93/1 422/94/1 +f 421/69/1 434/95/1 433/96/1 +f 455/97/1 445/98/1 449/99/1 +f 565/100/1 588/101/1 576/102/1 +f 576/102/1 587/103/1 575/104/1 +f 575/104/1 586/105/1 574/106/1 +f 573/107/1 586/108/1 585/109/1 +f 573/107/1 584/110/1 572/111/1 +f 571/112/1 584/113/1 583/114/1 +f 571/115/1 582/116/1 570/117/1 +f 570/117/1 581/118/1 569/119/1 +f 569/119/1 580/120/1 568/121/1 +f 568/121/1 579/122/1 567/123/1 +f 566/124/1 579/125/1 578/126/1 +f 565/100/1 578/127/1 577/128/1 +f 593/129/1 597/130/1 589/131/1 +f 709/132/1 732/133/1 720/134/1 +f 720/134/1 731/135/1 719/136/1 +f 719/136/1 730/137/1 718/138/1 +f 717/139/1 730/140/1 729/141/1 +f 716/142/1 729/143/1 728/144/1 +f 715/145/1 728/146/1 727/147/1 +f 715/148/1 726/149/1 714/150/1 +f 714/150/1 725/151/1 713/152/1 +f 713/152/1 724/153/1 712/154/1 +f 712/154/1 723/155/1 711/156/1 +f 711/156/1 722/157/1 710/158/1 +f 709/132/1 722/159/1 721/160/1 +f 743/161/1 733/162/1 737/163/1 +f 853/164/1 876/165/1 864/166/1 +f 864/166/1 875/167/1 863/168/1 +f 863/168/1 874/169/1 862/170/1 +f 861/171/1 874/172/1 873/173/1 +f 861/171/1 872/174/1 860/175/1 +f 859/176/1 872/177/1 871/178/1 +f 859/179/1 870/180/1 858/181/1 +f 858/181/1 869/182/1 857/183/1 +f 857/183/1 868/184/1 856/185/1 +f 856/185/1 867/186/1 855/187/1 +f 854/188/1 867/189/1 866/190/1 +f 854/188/1 865/191/1 853/164/1 +f 887/192/1 877/193/1 881/194/1 +f 109/1/1 121/195/1 132/2/1 +f 120/3/1 132/196/1 131/4/1 +f 119/5/1 131/197/1 130/6/1 +f 118/7/1 130/198/1 129/8/1 +f 117/9/1 129/199/1 128/10/1 +f 115/12/1 116/11/1 128/13/1 +f 115/15/1 127/200/1 126/16/1 +f 114/17/1 126/201/1 125/18/1 +f 113/19/1 125/202/1 124/20/1 +f 112/21/1 124/203/1 123/22/1 +f 110/24/1 111/23/1 123/25/1 +f 109/1/1 110/24/1 122/27/1 +f 133/30/1 134/204/1 135/205/1 +f 135/205/1 136/206/1 133/30/1 +f 136/206/1 137/31/1 133/30/1 +f 137/31/1 138/207/1 139/208/1 +f 139/208/1 140/209/1 141/210/1 +f 141/210/1 142/211/1 143/29/1 +f 143/29/1 144/212/1 133/30/1 +f 137/31/1 139/208/1 141/210/1 +f 141/210/1 143/29/1 137/31/1 +f 159/34/2 158/213/2 157/214/2 +f 157/214/2 168/215/2 167/216/2 +f 167/216/2 166/217/2 165/32/2 +f 165/32/2 164/218/2 163/33/2 +f 163/33/2 162/219/2 161/220/2 +f 161/220/2 160/221/2 163/33/2 +f 160/221/2 159/34/2 163/33/2 +f 159/34/2 157/214/2 167/216/2 +f 167/216/2 165/32/2 159/34/2 +f 145/222/1 146/223/1 147/224/1 +f 147/224/1 148/225/1 149/35/1 +f 149/35/1 150/226/1 151/36/1 +f 151/36/1 152/227/1 153/37/1 +f 153/37/1 154/228/1 145/222/1 +f 154/228/1 155/229/1 145/222/1 +f 155/229/1 156/230/1 145/222/1 +f 145/222/1 147/224/1 153/37/1 +f 147/224/1 149/35/1 153/37/1 +f 277/38/1 289/231/1 300/39/1 +f 288/40/1 300/232/1 299/41/1 +f 287/42/1 299/233/1 298/43/1 +f 286/44/1 298/234/1 297/45/1 +f 285/46/1 297/235/1 296/47/1 +f 283/49/1 284/48/1 296/50/1 +f 283/52/1 295/236/1 294/53/1 +f 282/54/1 294/237/1 293/55/1 +f 281/56/1 293/238/1 292/57/1 +f 280/58/1 292/239/1 291/59/1 +f 278/61/1 279/60/1 291/62/1 +f 277/38/1 278/61/1 290/64/1 +f 301/67/1 302/240/1 303/241/1 +f 303/241/1 304/242/1 301/67/1 +f 304/242/1 305/68/1 301/67/1 +f 305/68/1 306/243/1 307/244/1 +f 307/244/1 308/245/1 309/246/1 +f 309/246/1 310/247/1 311/66/1 +f 311/66/1 312/248/1 301/67/1 +f 305/68/1 307/244/1 309/246/1 +f 309/246/1 311/66/1 305/68/1 +f 421/69/1 433/249/1 444/70/1 +f 432/71/1 444/250/1 443/72/1 +f 431/73/1 443/251/1 442/74/1 +f 430/75/1 442/252/1 441/76/1 +f 428/78/1 429/77/1 441/79/1 +f 427/81/1 428/78/1 440/82/1 +f 427/84/1 439/253/1 438/85/1 +f 426/86/1 438/254/1 437/87/1 +f 425/88/1 437/255/1 436/89/1 +f 424/90/1 436/256/1 435/91/1 +f 423/92/1 435/257/1 434/93/1 +f 421/69/1 422/94/1 434/95/1 +f 445/98/1 446/258/1 447/259/1 +f 447/259/1 448/260/1 445/98/1 +f 448/260/1 449/99/1 445/98/1 +f 449/99/1 450/261/1 451/262/1 +f 451/262/1 452/263/1 453/264/1 +f 453/264/1 454/265/1 455/97/1 +f 455/97/1 456/266/1 445/98/1 +f 449/99/1 451/262/1 453/264/1 +f 453/264/1 455/97/1 449/99/1 +f 565/100/1 577/267/1 588/101/1 +f 576/102/1 588/268/1 587/103/1 +f 575/104/1 587/269/1 586/105/1 +f 573/107/1 574/106/1 586/108/1 +f 573/107/1 585/270/1 584/110/1 +f 571/112/1 572/111/1 584/113/1 +f 571/115/1 583/271/1 582/116/1 +f 570/117/1 582/272/1 581/118/1 +f 569/119/1 581/273/1 580/120/1 +f 568/121/1 580/274/1 579/122/1 +f 566/124/1 567/123/1 579/125/1 +f 565/100/1 566/124/1 578/127/1 +f 589/131/1 590/275/1 593/129/1 +f 590/275/1 591/276/1 593/129/1 +f 591/276/1 592/277/1 593/129/1 +f 593/129/1 594/278/1 595/279/1 +f 595/279/1 596/280/1 597/130/1 +f 597/130/1 598/281/1 599/282/1 +f 599/282/1 600/283/1 589/131/1 +f 593/129/1 595/279/1 597/130/1 +f 597/130/1 599/282/1 589/131/1 +f 709/132/1 721/284/1 732/133/1 +f 720/134/1 732/285/1 731/135/1 +f 719/136/1 731/286/1 730/137/1 +f 717/139/1 718/138/1 730/140/1 +f 716/142/1 717/139/1 729/143/1 +f 715/145/1 716/142/1 728/146/1 +f 715/148/1 727/287/1 726/149/1 +f 714/150/1 726/288/1 725/151/1 +f 713/152/1 725/289/1 724/153/1 +f 712/154/1 724/290/1 723/155/1 +f 711/156/1 723/291/1 722/157/1 +f 709/132/1 710/158/1 722/159/1 +f 733/162/1 734/292/1 737/163/1 +f 734/292/1 735/293/1 737/163/1 +f 735/293/1 736/294/1 737/163/1 +f 737/163/1 738/295/1 739/296/1 +f 739/296/1 740/297/1 741/298/1 +f 741/298/1 742/299/1 743/161/1 +f 743/161/1 744/300/1 733/162/1 +f 737/163/1 739/296/1 741/298/1 +f 741/298/1 743/161/1 737/163/1 +f 853/164/1 865/301/1 876/165/1 +f 864/166/1 876/302/1 875/167/1 +f 863/168/1 875/303/1 874/169/1 +f 861/171/1 862/170/1 874/172/1 +f 861/171/1 873/304/1 872/174/1 +f 859/176/1 860/175/1 872/177/1 +f 859/179/1 871/305/1 870/180/1 +f 858/181/1 870/306/1 869/182/1 +f 857/183/1 869/307/1 868/184/1 +f 856/185/1 868/308/1 867/186/1 +f 854/188/1 855/187/1 867/189/1 +f 854/188/1 866/309/1 865/191/1 +f 877/193/1 878/310/1 881/194/1 +f 878/310/1 879/311/1 881/194/1 +f 879/311/1 880/312/1 881/194/1 +f 881/194/1 882/313/1 883/314/1 +f 883/314/1 884/315/1 885/316/1 +f 885/316/1 886/317/1 887/192/1 +f 887/192/1 888/318/1 877/193/1 +f 881/194/1 883/314/1 885/316/1 +f 885/316/1 887/192/1 881/194/1 +s 1 +f 2/319/3 13/320/4 1/321/4 +f 3/322/5 14/323/3 2/319/3 +f 4/324/6 15/325/5 3/322/5 +f 5/326/7 16/327/6 4/324/6 +f 6/328/8 17/329/7 5/326/7 +f 7/330/9 18/331/8 6/328/8 +f 8/332/10 19/333/9 7/334/9 +f 9/335/11 20/336/10 8/332/10 +f 10/337/12 21/338/11 9/335/11 +f 11/339/13 22/340/12 10/337/12 +f 12/341/14 23/342/13 11/339/13 +f 1/321/4 24/343/14 12/341/14 +f 16/327/15 27/344/16 15/325/16 +f 15/325/16 26/345/17 14/323/17 +f 14/323/17 25/346/18 13/320/18 +f 24/343/19 25/346/18 36/347/19 +f 23/342/20 36/347/19 35/348/20 +f 22/340/21 35/348/20 34/349/21 +f 21/338/22 34/349/21 33/350/22 +f 20/336/23 33/350/22 32/351/23 +f 19/333/24 32/351/23 31/352/24 +f 19/353/24 30/354/25 18/331/25 +f 17/329/26 30/354/25 29/355/26 +f 17/329/26 28/356/15 16/327/15 +f 26/345/3 37/357/4 25/346/4 +f 27/344/5 38/358/3 26/345/3 +f 28/356/6 39/359/5 27/344/5 +f 29/355/7 40/360/6 28/356/6 +f 30/354/8 41/361/7 29/355/7 +f 31/362/9 42/363/8 30/354/8 +f 32/351/10 43/364/9 31/352/9 +f 33/350/11 44/365/10 32/351/10 +f 34/349/12 45/366/11 33/350/11 +f 35/348/13 46/367/12 34/349/12 +f 36/347/14 47/368/13 35/348/13 +f 25/346/4 48/369/14 36/347/14 +f 37/357/27 50/370/28 49/371/27 +f 37/357/27 60/372/29 48/369/29 +f 48/369/29 59/373/30 47/368/30 +f 47/368/30 58/374/31 46/367/31 +f 46/367/31 57/375/32 45/366/32 +f 45/366/32 56/376/33 44/365/33 +f 44/365/33 55/377/34 43/364/34 +f 42/363/35 55/378/34 54/379/35 +f 42/363/35 53/380/36 41/361/36 +f 40/360/37 53/380/36 52/381/37 +f 39/359/38 52/381/37 51/382/38 +f 38/358/28 51/382/38 50/370/28 +f 50/370/3 61/383/4 49/371/4 +f 51/382/5 62/384/3 50/370/3 +f 52/381/6 63/385/5 51/382/5 +f 53/380/7 64/386/6 52/381/6 +f 54/379/8 65/387/7 53/380/7 +f 55/378/9 66/388/8 54/379/8 +f 56/376/10 67/389/9 55/377/9 +f 57/375/11 68/390/10 56/376/10 +f 58/374/12 69/391/11 57/375/11 +f 59/373/13 70/392/12 58/374/12 +f 60/372/14 71/393/13 59/373/13 +f 49/371/4 72/394/14 60/372/14 +f 70/392/21 83/395/20 82/396/21 +f 71/393/20 84/397/19 83/395/20 +f 61/383/18 84/397/19 72/394/19 +f 62/384/17 73/398/18 61/383/18 +f 63/385/16 74/399/17 62/384/17 +f 64/386/15 75/400/16 63/385/16 +f 64/386/15 77/401/26 76/402/15 +f 66/388/25 77/401/26 65/387/26 +f 67/403/24 78/404/25 66/388/25 +f 68/390/23 79/405/24 67/389/24 +f 68/390/23 81/406/22 80/407/23 +f 69/391/22 82/396/21 81/406/22 +f 74/399/3 85/408/4 73/398/4 +f 75/400/5 86/409/3 74/399/3 +f 76/402/6 87/410/5 75/400/5 +f 77/401/7 88/411/6 76/402/6 +f 78/404/8 89/412/7 77/401/7 +f 79/413/9 90/414/8 78/404/8 +f 80/407/10 91/415/9 79/405/9 +f 81/406/11 92/416/10 80/407/10 +f 82/396/12 93/417/11 81/406/11 +f 83/395/13 94/418/12 82/396/12 +f 84/397/14 95/419/13 83/395/13 +f 73/398/4 96/420/14 84/397/14 +f 96/420/29 97/421/27 108/422/29 +f 86/409/28 97/421/27 85/408/27 +f 87/410/38 98/423/28 86/409/28 +f 87/410/38 100/424/37 99/425/38 +f 89/412/36 100/424/37 88/411/37 +f 89/412/36 102/426/35 101/427/36 +f 91/428/34 102/426/35 90/414/35 +f 91/415/34 104/429/33 103/430/34 +f 93/417/32 104/429/33 92/416/33 +f 94/418/31 105/431/32 93/417/32 +f 95/419/30 106/432/31 94/418/31 +f 95/419/30 108/422/29 107/433/30 +f 98/423/3 109/1/4 97/421/4 +f 99/425/5 110/24/3 98/423/3 +f 100/424/6 111/23/5 99/425/5 +f 101/427/7 112/21/6 100/424/6 +f 102/426/8 113/19/7 101/427/7 +f 103/434/9 114/17/8 102/426/8 +f 104/429/10 115/12/9 103/430/9 +f 105/431/11 116/11/10 104/429/10 +f 106/432/12 117/9/11 105/431/11 +f 107/433/13 118/7/12 106/432/12 +f 108/422/14 119/5/13 107/433/13 +f 97/421/4 120/3/14 108/422/14 +f 122/27/10 133/435/9 121/28/9 +f 123/25/11 134/436/10 122/26/10 +f 124/203/12 135/437/11 123/22/11 +f 125/202/13 136/438/12 124/20/12 +f 126/201/14 137/439/13 125/18/13 +f 127/200/4 138/440/14 126/16/14 +f 128/13/3 139/441/4 127/14/4 +f 129/199/5 140/442/3 128/10/3 +f 130/198/6 141/443/5 129/8/5 +f 131/197/7 142/444/6 130/6/6 +f 132/196/8 143/445/7 131/4/7 +f 121/195/9 144/446/8 132/2/8 +f 159/447/5 148/448/6 147/449/5 +f 166/450/12 155/451/13 154/452/12 +f 163/453/9 152/454/10 151/455/9 +f 160/456/6 149/457/7 148/448/6 +f 167/458/13 156/459/14 155/451/13 +f 157/460/4 146/461/3 145/462/4 +f 164/463/10 153/464/11 152/454/10 +f 161/465/7 150/466/8 149/457/7 +f 168/467/14 145/462/4 156/459/14 +f 158/468/3 147/449/5 146/461/3 +f 165/469/11 154/452/12 153/464/11 +f 162/470/8 151/471/9 150/466/8 +f 171/472/11 182/473/10 170/474/10 +f 170/474/10 181/475/9 169/476/9 +f 172/477/12 183/478/11 171/472/11 +f 173/479/13 184/480/12 172/477/12 +f 174/481/14 185/482/13 173/479/13 +f 175/483/4 186/484/14 174/481/14 +f 176/485/3 187/486/4 175/487/4 +f 177/488/5 188/489/3 176/485/3 +f 178/490/6 189/491/5 177/488/5 +f 179/492/7 190/493/6 178/490/6 +f 180/494/8 191/495/7 179/492/7 +f 169/476/9 192/496/8 180/494/8 +f 184/480/21 195/497/22 183/478/22 +f 183/478/22 194/498/23 182/473/23 +f 182/473/23 193/499/24 181/475/24 +f 192/496/25 193/499/24 204/500/25 +f 191/495/26 204/500/25 203/501/26 +f 190/493/15 203/501/26 202/502/15 +f 190/493/15 201/503/16 189/491/16 +f 188/489/17 201/503/16 200/504/17 +f 187/486/18 200/504/17 199/505/18 +f 187/506/18 198/507/19 186/484/19 +f 185/482/20 198/507/19 197/508/20 +f 185/482/20 196/509/21 184/480/21 +f 194/498/10 205/510/9 193/499/9 +f 195/497/11 206/511/10 194/498/10 +f 196/509/12 207/512/11 195/497/11 +f 197/508/13 208/513/12 196/509/12 +f 198/507/14 209/514/13 197/508/13 +f 199/515/4 210/516/14 198/507/14 +f 200/504/3 211/517/4 199/505/4 +f 201/503/5 212/518/3 200/504/3 +f 202/502/6 213/519/5 201/503/5 +f 203/501/7 214/520/6 202/502/6 +f 204/500/8 215/521/7 203/501/7 +f 193/499/9 216/522/8 204/500/8 +f 205/510/34 218/523/33 217/524/34 +f 205/510/34 228/525/35 216/522/35 +f 216/522/35 227/526/36 215/521/36 +f 215/521/36 226/527/37 214/520/37 +f 214/520/37 225/528/38 213/519/38 +f 213/519/38 224/529/28 212/518/28 +f 212/518/28 223/530/27 211/517/27 +f 210/516/29 223/531/27 222/532/29 +f 210/516/29 221/533/30 209/514/30 +f 208/513/31 221/533/30 220/534/31 +f 207/512/32 220/534/31 219/535/32 +f 206/511/33 219/535/32 218/523/33 +f 218/523/10 229/536/9 217/524/9 +f 219/535/11 230/537/10 218/523/10 +f 220/534/12 231/538/11 219/535/11 +f 221/533/13 232/539/12 220/534/12 +f 222/532/14 233/540/13 221/533/13 +f 223/531/4 234/541/14 222/532/14 +f 224/529/3 235/542/4 223/530/4 +f 225/528/5 236/543/3 224/529/3 +f 226/527/6 237/544/5 225/528/5 +f 227/526/7 238/545/6 226/527/6 +f 228/525/8 239/546/7 227/526/7 +f 217/524/9 240/547/8 228/525/8 +f 238/545/15 251/548/26 250/549/15 +f 239/546/26 252/550/25 251/548/26 +f 240/547/25 241/551/24 252/550/25 +f 229/536/24 242/552/23 241/551/24 +f 230/537/23 243/553/22 242/552/23 +f 232/539/21 243/553/22 231/538/22 +f 233/540/20 244/554/21 232/539/21 +f 234/541/19 245/555/20 233/540/20 +f 235/556/18 246/557/19 234/541/19 +f 236/543/17 247/558/18 235/542/18 +f 236/543/17 249/559/16 248/560/17 +f 237/544/16 250/549/15 249/559/16 +f 242/552/10 253/561/9 241/551/9 +f 243/553/11 254/562/10 242/552/10 +f 244/554/12 255/563/11 243/553/11 +f 245/555/13 256/564/12 244/554/12 +f 246/557/14 257/565/13 245/555/13 +f 247/566/4 258/567/14 246/557/14 +f 248/560/3 259/568/4 247/558/4 +f 249/559/5 260/569/3 248/560/3 +f 250/549/6 261/570/5 249/559/5 +f 251/548/7 262/571/6 250/549/6 +f 252/550/8 263/572/7 251/548/7 +f 241/551/9 264/573/8 252/550/8 +f 264/573/35 265/574/34 276/575/35 +f 254/562/33 265/574/34 253/561/34 +f 255/563/32 266/576/33 254/562/33 +f 255/563/32 268/577/31 267/578/32 +f 257/565/30 268/577/31 256/564/31 +f 257/565/30 270/579/29 269/580/30 +f 259/581/27 270/579/29 258/567/29 +f 260/569/28 271/582/27 259/568/27 +f 261/570/38 272/583/28 260/569/28 +f 262/571/37 273/584/38 261/570/38 +f 263/572/36 274/585/37 262/571/37 +f 264/573/35 275/586/36 263/572/36 +f 266/576/10 277/38/9 265/574/9 +f 267/578/11 278/61/10 266/576/10 +f 268/577/12 279/60/11 267/578/11 +f 269/580/13 280/58/12 268/577/12 +f 270/579/14 281/56/13 269/580/13 +f 271/587/4 282/54/14 270/579/14 +f 272/583/3 283/49/4 271/582/4 +f 273/584/5 284/48/3 272/583/3 +f 274/585/6 285/46/5 273/584/5 +f 275/586/7 286/44/6 274/585/6 +f 276/575/8 287/42/7 275/586/7 +f 265/574/9 288/40/8 276/575/8 +f 290/64/3 301/588/4 289/65/4 +f 291/62/5 302/589/3 290/63/3 +f 292/239/6 303/590/5 291/59/5 +f 293/238/7 304/591/6 292/57/6 +f 294/237/8 305/592/7 293/55/7 +f 295/236/9 306/593/8 294/53/8 +f 296/50/10 307/594/9 295/51/9 +f 297/235/11 308/595/10 296/47/10 +f 298/234/12 309/596/11 297/45/11 +f 299/233/13 310/597/12 298/43/12 +f 300/232/14 311/598/13 299/41/13 +f 289/231/4 312/599/14 300/39/14 +f 314/600/14 325/601/13 313/602/13 +f 315/603/4 326/604/14 314/600/14 +f 316/605/3 327/606/4 315/603/4 +f 317/607/5 328/608/3 316/605/3 +f 318/609/6 329/610/5 317/607/5 +f 319/611/7 330/612/6 318/609/6 +f 320/613/8 331/614/7 319/615/7 +f 321/616/9 332/617/8 320/613/8 +f 322/618/10 333/619/9 321/616/9 +f 323/620/11 334/621/10 322/618/10 +f 324/622/12 335/623/11 323/620/11 +f 313/602/13 336/624/12 324/622/12 +f 328/608/17 339/625/18 327/606/18 +f 327/606/18 338/626/19 326/604/19 +f 326/604/19 337/627/20 325/601/20 +f 336/624/21 337/627/20 348/628/21 +f 335/623/22 348/628/21 347/629/22 +f 334/621/23 347/629/22 346/630/23 +f 333/619/24 346/630/23 345/631/24 +f 332/617/25 345/631/24 344/632/25 +f 331/614/26 344/632/25 343/633/26 +f 331/634/26 342/635/15 330/612/15 +f 330/612/15 341/636/16 329/610/16 +f 329/610/16 340/637/17 328/608/17 +f 338/626/14 349/638/13 337/627/13 +f 339/625/4 350/639/14 338/626/14 +f 340/637/3 351/640/4 339/625/4 +f 341/636/5 352/641/3 340/637/3 +f 342/635/6 353/642/5 341/636/5 +f 343/643/7 354/644/6 342/635/6 +f 344/632/8 355/645/7 343/633/7 +f 345/631/9 356/646/8 344/632/8 +f 346/630/10 357/647/9 345/631/9 +f 347/629/11 358/648/10 346/630/10 +f 348/628/12 359/649/11 347/629/11 +f 337/627/13 360/650/12 348/628/12 +f 349/638/30 362/651/29 361/652/30 +f 349/638/30 372/653/31 360/650/31 +f 360/650/31 371/654/32 359/649/32 +f 359/649/32 370/655/33 358/648/33 +f 358/648/33 369/656/34 357/647/34 +f 357/647/34 368/657/35 356/646/35 +f 356/646/35 367/658/36 355/645/36 +f 354/644/37 367/659/36 366/660/37 +f 354/644/37 365/661/38 353/642/38 +f 352/641/28 365/661/38 364/662/28 +f 351/640/27 364/662/28 363/663/27 +f 350/639/29 363/663/27 362/651/29 +f 362/651/14 373/664/13 361/652/13 +f 363/663/4 374/665/14 362/651/14 +f 364/662/3 375/666/4 363/663/4 +f 365/661/5 376/667/3 364/662/3 +f 366/660/6 377/668/5 365/661/5 +f 367/659/7 378/669/6 366/660/6 +f 368/657/8 379/670/7 367/658/7 +f 369/656/9 380/671/8 368/657/8 +f 370/655/10 381/672/9 369/656/9 +f 371/654/11 382/673/10 370/655/10 +f 372/653/12 383/674/11 371/654/11 +f 361/652/13 384/675/12 372/653/12 +f 383/674/22 394/676/23 382/673/23 +f 383/674/22 396/677/21 395/678/22 +f 373/664/20 396/677/21 384/675/21 +f 374/665/19 385/679/20 373/664/20 +f 375/666/18 386/680/19 374/665/19 +f 376/667/17 387/681/18 375/666/18 +f 377/668/16 388/682/17 376/667/17 +f 377/668/16 390/683/15 389/684/16 +f 379/685/26 390/683/15 378/669/15 +f 380/671/25 391/686/26 379/670/26 +f 380/671/25 393/687/24 392/688/25 +f 382/673/23 393/687/24 381/672/24 +f 386/680/14 397/689/13 385/679/13 +f 387/681/4 398/690/14 386/680/14 +f 388/682/3 399/691/4 387/681/4 +f 389/684/5 400/692/3 388/682/3 +f 390/683/6 401/693/5 389/684/5 +f 391/694/7 402/695/6 390/683/6 +f 392/688/8 403/696/7 391/686/7 +f 393/687/9 404/697/8 392/688/8 +f 394/676/10 405/698/9 393/687/9 +f 395/678/11 406/699/10 394/676/10 +f 396/677/12 407/700/11 395/678/11 +f 385/679/13 408/701/12 396/677/12 +f 408/701/31 409/702/30 420/703/31 +f 398/690/29 409/702/30 397/689/30 +f 398/690/29 411/704/27 410/705/29 +f 400/692/28 411/704/27 399/691/27 +f 400/692/28 413/706/38 412/707/28 +f 402/695/37 413/706/38 401/693/38 +f 402/695/37 415/708/36 414/709/37 +f 403/696/36 416/710/35 415/711/36 +f 405/698/34 416/710/35 404/697/35 +f 405/698/34 418/712/33 417/713/34 +f 406/699/33 419/714/32 418/712/33 +f 408/701/31 419/714/32 407/700/32 +f 410/705/14 421/69/13 409/702/13 +f 411/704/4 422/94/14 410/705/14 +f 412/707/3 423/92/4 411/704/4 +f 413/706/5 424/90/3 412/707/3 +f 414/709/6 425/88/5 413/706/5 +f 415/708/7 426/86/6 414/709/6 +f 416/710/8 427/81/7 415/711/7 +f 417/713/9 428/78/8 416/710/8 +f 418/712/10 429/77/9 417/713/9 +f 419/714/11 430/75/10 418/712/10 +f 420/703/12 431/73/11 419/714/11 +f 409/702/13 432/71/12 420/703/12 +f 434/95/8 445/715/7 433/96/7 +f 435/257/9 446/716/8 434/93/8 +f 436/256/10 447/717/9 435/91/9 +f 437/255/11 448/718/10 436/89/10 +f 438/254/12 449/719/11 437/87/11 +f 439/253/13 450/720/12 438/85/12 +f 440/82/14 451/721/13 439/83/13 +f 441/79/4 452/722/14 440/80/14 +f 442/252/3 453/723/4 441/76/4 +f 443/251/5 454/724/3 442/74/3 +f 444/250/6 455/725/5 443/72/5 +f 433/249/7 456/726/6 444/70/6 +f 459/727/9 470/728/8 458/729/8 +f 458/729/8 469/730/7 457/731/7 +f 460/732/10 471/733/9 459/727/9 +f 461/734/11 472/735/10 460/732/10 +f 462/736/12 473/737/11 461/734/11 +f 463/738/13 474/739/12 462/736/12 +f 464/740/14 475/741/13 463/742/13 +f 465/743/4 476/744/14 464/740/14 +f 466/745/3 477/746/4 465/743/4 +f 467/747/5 478/748/3 466/745/3 +f 468/749/6 479/750/5 467/747/5 +f 457/731/7 480/751/6 468/749/6 +f 472/735/23 483/752/24 471/733/24 +f 471/733/24 482/753/25 470/728/25 +f 470/728/25 481/754/26 469/730/26 +f 469/730/26 492/755/15 480/751/15 +f 479/750/16 492/755/15 491/756/16 +f 479/750/16 490/757/17 478/748/17 +f 478/748/17 489/758/18 477/746/18 +f 476/744/19 489/758/18 488/759/19 +f 476/744/19 487/760/20 475/741/20 +f 475/761/20 486/762/21 474/739/21 +f 473/737/22 486/762/21 485/763/22 +f 473/737/22 484/764/23 472/735/23 +f 482/753/8 493/765/7 481/754/7 +f 483/752/9 494/766/8 482/753/8 +f 484/764/10 495/767/9 483/752/9 +f 485/763/11 496/768/10 484/764/10 +f 486/762/12 497/769/11 485/763/11 +f 487/770/13 498/771/12 486/762/12 +f 488/759/14 499/772/13 487/760/13 +f 489/758/4 500/773/14 488/759/14 +f 490/757/3 501/774/4 489/758/4 +f 491/756/5 502/775/3 490/757/3 +f 492/755/6 503/776/5 491/756/5 +f 481/754/7 504/777/6 492/755/6 +f 493/765/36 506/778/35 505/779/36 +f 493/765/36 516/780/37 504/777/37 +f 504/777/37 515/781/38 503/776/38 +f 503/776/38 514/782/28 502/775/28 +f 502/775/28 513/783/27 501/774/27 +f 501/774/27 512/784/29 500/773/29 +f 500/773/29 511/785/30 499/772/30 +f 499/786/30 510/787/31 498/771/31 +f 498/771/31 509/788/32 497/769/32 +f 496/768/33 509/788/32 508/789/33 +f 495/767/34 508/789/33 507/790/34 +f 494/766/35 507/790/34 506/778/35 +f 506/778/8 517/791/7 505/779/7 +f 507/790/9 518/792/8 506/778/8 +f 508/789/10 519/793/9 507/790/9 +f 509/788/11 520/794/10 508/789/10 +f 510/787/12 521/795/11 509/788/11 +f 511/796/13 522/797/12 510/787/12 +f 512/784/14 523/798/13 511/785/13 +f 513/783/4 524/799/14 512/784/14 +f 514/782/3 525/800/4 513/783/4 +f 515/781/5 526/801/3 514/782/3 +f 516/780/6 527/802/5 515/781/5 +f 505/779/7 528/803/6 516/780/6 +f 527/802/16 538/804/17 526/801/17 +f 527/802/16 540/805/15 539/806/16 +f 517/791/26 540/805/15 528/803/15 +f 518/792/25 529/807/26 517/791/26 +f 519/793/24 530/808/25 518/792/25 +f 519/793/24 532/809/23 531/810/24 +f 521/795/22 532/809/23 520/794/23 +f 521/795/22 534/811/21 533/812/22 +f 523/813/20 534/811/21 522/797/21 +f 524/799/19 535/814/20 523/798/20 +f 524/799/19 537/815/18 536/816/19 +f 526/801/17 537/815/18 525/800/18 +f 530/808/8 541/817/7 529/807/7 +f 531/810/9 542/818/8 530/808/8 +f 532/809/10 543/819/9 531/810/9 +f 533/812/11 544/820/10 532/809/10 +f 534/811/12 545/821/11 533/812/11 +f 535/822/13 546/823/12 534/811/12 +f 536/816/14 547/824/13 535/814/13 +f 537/815/4 548/825/14 536/816/14 +f 538/804/3 549/826/4 537/815/4 +f 539/806/5 550/827/3 538/804/3 +f 540/805/6 551/828/5 539/806/5 +f 529/807/7 552/829/6 540/805/6 +f 552/829/37 553/830/36 564/831/37 +f 541/817/36 554/832/35 553/830/36 +f 542/818/35 555/833/34 554/832/35 +f 544/820/33 555/833/34 543/819/34 +f 544/820/33 557/834/32 556/835/33 +f 546/823/31 557/834/32 545/821/32 +f 546/823/31 559/836/30 558/837/31 +f 547/824/30 560/838/29 559/839/30 +f 549/826/27 560/838/29 548/825/29 +f 549/826/27 562/840/28 561/841/27 +f 551/828/38 562/840/28 550/827/28 +f 552/829/37 563/842/38 551/828/38 +f 554/832/8 565/100/7 553/830/7 +f 555/833/9 566/124/8 554/832/8 +f 556/835/10 567/123/9 555/833/9 +f 557/834/11 568/121/10 556/835/10 +f 558/837/12 569/119/11 557/834/11 +f 559/836/13 570/117/12 558/837/12 +f 560/838/14 571/112/13 559/839/13 +f 561/841/4 572/111/14 560/838/14 +f 562/840/3 573/107/4 561/841/4 +f 563/842/5 574/106/3 562/840/3 +f 564/831/6 575/104/5 563/842/5 +f 553/830/7 576/102/6 564/831/6 +f 578/127/14 589/843/13 577/128/13 +f 579/125/4 590/844/14 578/126/14 +f 580/274/3 591/845/4 579/122/4 +f 581/273/5 592/846/3 580/120/3 +f 582/272/6 593/847/5 581/118/5 +f 583/271/7 594/848/6 582/116/6 +f 584/113/8 595/849/7 583/114/7 +f 585/270/9 596/850/8 584/110/8 +f 586/108/10 597/851/9 585/109/9 +f 587/269/11 598/852/10 586/105/10 +f 588/268/12 599/853/11 587/103/11 +f 577/267/13 600/854/12 588/101/12 +f 602/855/12 613/856/11 601/857/11 +f 603/858/13 614/859/12 602/855/12 +f 604/860/14 615/861/13 603/858/13 +f 605/862/4 616/863/14 604/860/14 +f 606/864/3 617/865/4 605/862/4 +f 607/866/5 618/867/3 606/864/3 +f 608/868/6 619/869/5 607/870/5 +f 609/871/7 620/872/6 608/868/6 +f 610/873/8 621/874/7 609/871/7 +f 611/875/9 622/876/8 610/873/8 +f 612/877/10 623/878/9 611/875/9 +f 601/857/11 624/879/10 612/877/10 +f 616/863/19 627/880/20 615/861/20 +f 615/861/20 626/881/21 614/859/21 +f 613/856/22 626/881/21 625/882/22 +f 613/856/22 636/883/23 624/879/23 +f 623/878/24 636/883/23 635/884/24 +f 623/878/24 634/885/25 622/876/25 +f 622/876/25 633/886/26 621/874/26 +f 620/872/15 633/886/26 632/887/15 +f 619/869/16 632/887/15 631/888/16 +f 618/867/17 631/889/16 630/890/17 +f 618/867/17 629/891/18 617/865/18 +f 617/865/18 628/892/19 616/863/19 +f 626/881/12 637/893/11 625/882/11 +f 627/880/13 638/894/12 626/881/12 +f 628/892/14 639/895/13 627/880/13 +f 629/891/4 640/896/14 628/892/14 +f 630/890/3 641/897/4 629/891/4 +f 631/889/5 642/898/3 630/890/3 +f 632/887/6 643/899/5 631/888/5 +f 633/886/7 644/900/6 632/887/6 +f 634/885/8 645/901/7 633/886/7 +f 635/884/9 646/902/8 634/885/8 +f 636/883/10 647/903/9 635/884/9 +f 625/882/11 648/904/10 636/883/10 +f 638/894/31 649/905/32 637/893/32 +f 637/893/32 660/906/33 648/904/33 +f 648/904/33 659/907/34 647/903/34 +f 647/903/34 658/908/35 646/902/35 +f 646/902/35 657/909/36 645/901/36 +f 645/901/36 656/910/37 644/900/37 +f 644/900/37 655/911/38 643/899/38 +f 643/912/38 654/913/28 642/898/28 +f 641/897/27 654/913/28 653/914/27 +f 640/896/29 653/914/27 652/915/29 +f 639/895/30 652/915/29 651/916/30 +f 638/894/31 651/916/30 650/917/31 +f 650/917/12 661/918/11 649/905/11 +f 651/916/13 662/919/12 650/917/12 +f 652/915/14 663/920/13 651/916/13 +f 653/914/4 664/921/14 652/915/14 +f 654/913/3 665/922/4 653/914/4 +f 655/923/5 666/924/3 654/913/3 +f 656/910/6 667/925/5 655/911/5 +f 657/909/7 668/926/6 656/910/6 +f 658/908/8 669/927/7 657/909/7 +f 659/907/9 670/928/8 658/908/8 +f 660/906/10 671/929/9 659/907/9 +f 649/905/11 672/930/10 660/906/10 +f 670/928/25 683/931/24 682/932/25 +f 671/929/24 684/933/23 683/931/24 +f 661/918/22 684/933/23 672/930/23 +f 662/919/21 673/934/22 661/918/22 +f 663/920/20 674/935/21 662/919/21 +f 664/921/19 675/936/20 663/920/20 +f 665/922/18 676/937/19 664/921/19 +f 665/922/18 678/938/17 677/939/18 +f 667/940/16 678/938/17 666/924/17 +f 668/926/15 679/941/16 667/925/16 +f 668/926/15 681/942/26 680/943/15 +f 670/928/25 681/942/26 669/927/26 +f 674/935/12 685/944/11 673/934/11 +f 675/936/13 686/945/12 674/935/12 +f 676/937/14 687/946/13 675/936/13 +f 677/939/4 688/947/14 676/937/14 +f 678/938/3 689/948/4 677/939/4 +f 679/949/5 690/950/3 678/938/3 +f 680/943/6 691/951/5 679/941/5 +f 681/942/7 692/952/6 680/943/6 +f 682/932/8 693/953/7 681/942/7 +f 683/931/9 694/954/8 682/932/8 +f 684/933/10 695/955/9 683/931/9 +f 673/934/11 696/956/10 684/933/10 +f 696/956/33 697/957/32 708/958/33 +f 685/944/32 698/959/31 697/957/32 +f 686/945/31 699/960/30 698/959/31 +f 688/947/29 699/960/30 687/946/30 +f 689/948/27 700/961/29 688/947/29 +f 689/948/27 702/962/28 701/963/27 +f 690/950/28 703/964/38 702/962/28 +f 692/952/37 703/965/38 691/951/38 +f 693/953/36 704/966/37 692/952/37 +f 694/954/35 705/967/36 693/953/36 +f 695/955/34 706/968/35 694/954/35 +f 696/956/33 707/969/34 695/955/34 +f 698/959/12 709/132/11 697/957/11 +f 699/960/13 710/158/12 698/959/12 +f 700/961/14 711/156/13 699/960/13 +f 701/963/4 712/154/14 700/961/14 +f 702/962/3 713/152/4 701/963/4 +f 703/964/5 714/150/3 702/962/3 +f 704/966/6 715/145/5 703/965/5 +f 705/967/7 716/142/6 704/966/6 +f 706/968/8 717/139/7 705/967/7 +f 707/969/9 718/138/8 706/968/8 +f 708/958/10 719/136/9 707/969/9 +f 697/957/11 720/134/10 708/958/10 +f 722/159/6 733/970/5 721/160/5 +f 723/291/7 734/971/6 722/157/6 +f 724/290/8 735/972/7 723/155/7 +f 725/289/9 736/973/8 724/153/8 +f 726/288/10 737/974/9 725/151/9 +f 727/287/11 738/975/10 726/149/10 +f 728/146/12 739/976/11 727/147/11 +f 729/143/13 740/977/12 728/144/12 +f 730/140/14 741/978/13 729/141/13 +f 731/286/4 742/979/14 730/137/14 +f 732/285/3 743/980/4 731/135/4 +f 721/284/5 744/981/3 732/133/3 +f 747/982/7 758/983/6 746/984/6 +f 746/984/6 757/985/5 745/986/5 +f 748/987/8 759/988/7 747/982/7 +f 749/989/9 760/990/8 748/987/8 +f 750/991/10 761/992/9 749/989/9 +f 751/993/11 762/994/10 750/991/10 +f 752/995/12 763/996/11 751/997/11 +f 753/998/13 764/999/12 752/995/12 +f 754/1000/14 765/1001/13 753/998/13 +f 755/1002/4 766/1003/14 754/1000/14 +f 756/1004/3 767/1005/4 755/1002/4 +f 745/986/5 768/1006/3 756/1004/3 +f 760/990/25 771/1007/26 759/988/26 +f 759/988/26 770/1008/15 758/983/15 +f 758/983/15 769/1009/16 757/985/16 +f 768/1006/17 769/1009/16 780/1010/17 +f 767/1005/18 780/1010/17 779/1011/18 +f 767/1005/18 778/1012/19 766/1003/19 +f 766/1003/19 777/1013/20 765/1001/20 +f 764/999/21 777/1013/20 776/1014/21 +f 763/996/22 776/1014/21 775/1015/22 +f 763/1016/22 774/1017/23 762/994/23 +f 761/992/24 774/1017/23 773/1018/24 +f 761/992/24 772/1019/25 760/990/25 +f 770/1008/6 781/1020/5 769/1009/5 +f 771/1007/7 782/1021/6 770/1008/6 +f 772/1019/8 783/1022/7 771/1007/7 +f 773/1018/9 784/1023/8 772/1019/8 +f 774/1017/10 785/1024/9 773/1018/9 +f 775/1025/11 786/1026/10 774/1017/10 +f 776/1014/12 787/1027/11 775/1015/11 +f 777/1013/13 788/1028/12 776/1014/12 +f 778/1012/14 789/1029/13 777/1013/13 +f 779/1011/4 790/1030/14 778/1012/14 +f 780/1010/3 791/1031/4 779/1011/4 +f 769/1009/5 792/1032/3 780/1010/3 +f 781/1020/38 794/1033/37 793/1034/38 +f 781/1020/38 804/1035/28 792/1032/28 +f 792/1032/28 803/1036/27 791/1031/27 +f 791/1031/27 802/1037/29 790/1030/29 +f 790/1030/29 801/1038/30 789/1029/30 +f 789/1029/30 800/1039/31 788/1028/31 +f 788/1028/31 799/1040/32 787/1027/32 +f 787/1041/32 798/1042/33 786/1026/33 +f 785/1024/34 798/1042/33 797/1043/34 +f 784/1023/35 797/1043/34 796/1044/35 +f 783/1022/36 796/1044/35 795/1045/36 +f 782/1021/37 795/1045/36 794/1033/37 +f 794/1033/6 805/1046/5 793/1034/5 +f 795/1045/7 806/1047/6 794/1033/6 +f 796/1044/8 807/1048/7 795/1045/7 +f 797/1043/9 808/1049/8 796/1044/8 +f 798/1042/10 809/1050/9 797/1043/9 +f 799/1051/11 810/1052/10 798/1042/10 +f 800/1039/12 811/1053/11 799/1040/11 +f 801/1038/13 812/1054/12 800/1039/12 +f 802/1037/14 813/1055/13 801/1038/13 +f 803/1036/4 814/1056/14 802/1037/14 +f 804/1035/3 815/1057/4 803/1036/4 +f 793/1034/5 816/1058/3 804/1035/3 +f 814/1056/19 827/1059/18 826/1060/19 +f 815/1057/18 828/1061/17 827/1059/18 +f 805/1046/16 828/1061/17 816/1058/17 +f 806/1047/15 817/1062/16 805/1046/16 +f 807/1048/26 818/1063/15 806/1047/15 +f 808/1049/25 819/1064/26 807/1048/26 +f 809/1050/24 820/1065/25 808/1049/25 +f 810/1052/23 821/1066/24 809/1050/24 +f 811/1067/22 822/1068/23 810/1052/23 +f 812/1054/21 823/1069/22 811/1053/22 +f 812/1054/21 825/1070/20 824/1071/21 +f 814/1056/19 825/1070/20 813/1055/20 +f 818/1063/6 829/1072/5 817/1062/5 +f 819/1064/7 830/1073/6 818/1063/6 +f 820/1065/8 831/1074/7 819/1064/7 +f 821/1066/9 832/1075/8 820/1065/8 +f 822/1068/10 833/1076/9 821/1066/9 +f 823/1077/11 834/1078/10 822/1068/10 +f 824/1071/12 835/1079/11 823/1069/11 +f 825/1070/13 836/1080/12 824/1071/12 +f 826/1060/14 837/1081/13 825/1070/13 +f 827/1059/4 838/1082/14 826/1060/14 +f 828/1061/3 839/1083/4 827/1059/4 +f 817/1062/5 840/1084/3 828/1061/3 +f 840/1084/28 841/1085/38 852/1086/28 +f 829/1072/38 842/1087/37 841/1085/38 +f 830/1073/37 843/1088/36 842/1087/37 +f 831/1074/36 844/1089/35 843/1088/36 +f 832/1075/35 845/1090/34 844/1089/35 +f 834/1078/33 845/1090/34 833/1076/34 +f 835/1091/32 846/1092/33 834/1078/33 +f 836/1080/31 847/1093/32 835/1079/32 +f 837/1081/30 848/1094/31 836/1080/31 +f 837/1081/30 850/1095/29 849/1096/30 +f 839/1083/27 850/1095/29 838/1082/29 +f 839/1083/27 852/1086/28 851/1097/27 +f 842/1087/6 853/164/5 841/1085/5 +f 843/1088/7 854/188/6 842/1087/6 +f 844/1089/8 855/187/7 843/1088/7 +f 845/1090/9 856/185/8 844/1089/8 +f 846/1092/10 857/183/9 845/1090/9 +f 847/1098/11 858/181/10 846/1092/10 +f 848/1094/12 859/176/11 847/1093/11 +f 849/1096/13 860/175/12 848/1094/12 +f 850/1095/14 861/171/13 849/1096/13 +f 851/1097/4 862/170/14 850/1095/14 +f 852/1086/3 863/168/4 851/1097/4 +f 841/1085/5 864/166/3 852/1086/3 +f 866/309/12 877/1099/11 865/191/11 +f 867/189/13 878/1100/12 866/190/12 +f 868/308/14 879/1101/13 867/186/13 +f 869/307/4 880/1102/14 868/184/14 +f 870/306/3 881/1103/4 869/182/4 +f 871/305/5 882/1104/3 870/180/3 +f 872/177/6 883/1105/5 871/178/5 +f 873/304/7 884/1106/6 872/174/6 +f 874/172/8 885/1107/7 873/173/7 +f 875/303/9 886/1108/8 874/169/8 +f 876/302/10 887/1109/9 875/167/9 +f 865/301/11 888/1110/10 876/165/10 +f 2/319/3 14/323/3 13/320/4 +f 3/322/5 15/325/5 14/323/3 +f 4/324/6 16/327/6 15/325/5 +f 5/326/7 17/329/7 16/327/6 +f 6/328/8 18/331/8 17/329/7 +f 7/330/9 19/353/9 18/331/8 +f 8/332/10 20/336/10 19/333/9 +f 9/335/11 21/338/11 20/336/10 +f 10/337/12 22/340/12 21/338/11 +f 11/339/13 23/342/13 22/340/12 +f 12/341/14 24/343/14 23/342/13 +f 1/321/4 13/320/4 24/343/14 +f 16/327/15 28/356/15 27/344/16 +f 15/325/16 27/344/16 26/345/17 +f 14/323/17 26/345/17 25/346/18 +f 24/343/19 13/320/18 25/346/18 +f 23/342/20 24/343/19 36/347/19 +f 22/340/21 23/342/20 35/348/20 +f 21/338/22 22/340/21 34/349/21 +f 20/336/23 21/338/22 33/350/22 +f 19/333/24 20/336/23 32/351/23 +f 19/353/24 31/362/24 30/354/25 +f 17/329/26 18/331/25 30/354/25 +f 17/329/26 29/355/26 28/356/15 +f 26/345/3 38/358/3 37/357/4 +f 27/344/5 39/359/5 38/358/3 +f 28/356/6 40/360/6 39/359/5 +f 29/355/7 41/361/7 40/360/6 +f 30/354/8 42/363/8 41/361/7 +f 31/362/9 43/1111/9 42/363/8 +f 32/351/10 44/365/10 43/364/9 +f 33/350/11 45/366/11 44/365/10 +f 34/349/12 46/367/12 45/366/11 +f 35/348/13 47/368/13 46/367/12 +f 36/347/14 48/369/14 47/368/13 +f 25/346/4 37/357/4 48/369/14 +f 37/357/27 38/358/28 50/370/28 +f 37/357/27 49/371/27 60/372/29 +f 48/369/29 60/372/29 59/373/30 +f 47/368/30 59/373/30 58/374/31 +f 46/367/31 58/374/31 57/375/32 +f 45/366/32 57/375/32 56/376/33 +f 44/365/33 56/376/33 55/377/34 +f 42/363/35 43/1111/34 55/378/34 +f 42/363/35 54/379/35 53/380/36 +f 40/360/37 41/361/36 53/380/36 +f 39/359/38 40/360/37 52/381/37 +f 38/358/28 39/359/38 51/382/38 +f 50/370/3 62/384/3 61/383/4 +f 51/382/5 63/385/5 62/384/3 +f 52/381/6 64/386/6 63/385/5 +f 53/380/7 65/387/7 64/386/6 +f 54/379/8 66/388/8 65/387/7 +f 55/378/9 67/403/9 66/388/8 +f 56/376/10 68/390/10 67/389/9 +f 57/375/11 69/391/11 68/390/10 +f 58/374/12 70/392/12 69/391/11 +f 59/373/13 71/393/13 70/392/12 +f 60/372/14 72/394/14 71/393/13 +f 49/371/4 61/383/4 72/394/14 +f 70/392/21 71/393/20 83/395/20 +f 71/393/20 72/394/19 84/397/19 +f 61/383/18 73/398/18 84/397/19 +f 62/384/17 74/399/17 73/398/18 +f 63/385/16 75/400/16 74/399/17 +f 64/386/15 76/402/15 75/400/16 +f 64/386/15 65/387/26 77/401/26 +f 66/388/25 78/404/25 77/401/26 +f 67/403/24 79/413/24 78/404/25 +f 68/390/23 80/407/23 79/405/24 +f 68/390/23 69/391/22 81/406/22 +f 69/391/22 70/392/21 82/396/21 +f 74/399/3 86/409/3 85/408/4 +f 75/400/5 87/410/5 86/409/3 +f 76/402/6 88/411/6 87/410/5 +f 77/401/7 89/412/7 88/411/6 +f 78/404/8 90/414/8 89/412/7 +f 79/413/9 91/428/9 90/414/8 +f 80/407/10 92/416/10 91/415/9 +f 81/406/11 93/417/11 92/416/10 +f 82/396/12 94/418/12 93/417/11 +f 83/395/13 95/419/13 94/418/12 +f 84/397/14 96/420/14 95/419/13 +f 73/398/4 85/408/4 96/420/14 +f 96/420/29 85/408/27 97/421/27 +f 86/409/28 98/423/28 97/421/27 +f 87/410/38 99/425/38 98/423/28 +f 87/410/38 88/411/37 100/424/37 +f 89/412/36 101/427/36 100/424/37 +f 89/412/36 90/414/35 102/426/35 +f 91/428/34 103/434/34 102/426/35 +f 91/415/34 92/416/33 104/429/33 +f 93/417/32 105/431/32 104/429/33 +f 94/418/31 106/432/31 105/431/32 +f 95/419/30 107/433/30 106/432/31 +f 95/419/30 96/420/29 108/422/29 +f 98/423/3 110/24/3 109/1/4 +f 99/425/5 111/23/5 110/24/3 +f 100/424/6 112/21/6 111/23/5 +f 101/427/7 113/19/7 112/21/6 +f 102/426/8 114/17/8 113/19/7 +f 103/434/9 115/15/9 114/17/8 +f 104/429/10 116/11/10 115/12/9 +f 105/431/11 117/9/11 116/11/10 +f 106/432/12 118/7/12 117/9/11 +f 107/433/13 119/5/13 118/7/12 +f 108/422/14 120/3/14 119/5/13 +f 97/421/4 109/1/4 120/3/14 +f 122/27/10 134/1112/10 133/435/9 +f 123/25/11 135/1113/11 134/436/10 +f 124/203/12 136/1114/12 135/437/11 +f 125/202/13 137/1115/13 136/438/12 +f 126/201/14 138/1116/14 137/439/13 +f 127/200/4 139/1117/4 138/440/14 +f 128/13/3 140/1118/3 139/441/4 +f 129/199/5 141/1119/5 140/442/3 +f 130/198/6 142/1120/6 141/443/5 +f 131/197/7 143/1121/7 142/444/6 +f 132/196/8 144/1122/8 143/445/7 +f 121/195/9 133/1123/9 144/446/8 +f 159/447/5 160/456/6 148/448/6 +f 166/450/12 167/458/13 155/451/13 +f 163/453/9 164/463/10 152/454/10 +f 160/456/6 161/465/7 149/457/7 +f 167/458/13 168/467/14 156/459/14 +f 157/460/4 158/468/3 146/461/3 +f 164/463/10 165/469/11 153/464/11 +f 161/465/7 162/470/8 150/466/8 +f 168/467/14 157/460/4 145/462/4 +f 158/468/3 159/447/5 147/449/5 +f 165/469/11 166/450/12 154/452/12 +f 162/470/8 163/1124/9 151/471/9 +f 171/472/11 183/478/11 182/473/10 +f 170/474/10 182/473/10 181/475/9 +f 172/477/12 184/480/12 183/478/11 +f 173/479/13 185/482/13 184/480/12 +f 174/481/14 186/484/14 185/482/13 +f 175/483/4 187/506/4 186/484/14 +f 176/485/3 188/489/3 187/486/4 +f 177/488/5 189/491/5 188/489/3 +f 178/490/6 190/493/6 189/491/5 +f 179/492/7 191/495/7 190/493/6 +f 180/494/8 192/496/8 191/495/7 +f 169/476/9 181/475/9 192/496/8 +f 184/480/21 196/509/21 195/497/22 +f 183/478/22 195/497/22 194/498/23 +f 182/473/23 194/498/23 193/499/24 +f 192/496/25 181/475/24 193/499/24 +f 191/495/26 192/496/25 204/500/25 +f 190/493/15 191/495/26 203/501/26 +f 190/493/15 202/502/15 201/503/16 +f 188/489/17 189/491/16 201/503/16 +f 187/486/18 188/489/17 200/504/17 +f 187/506/18 199/515/18 198/507/19 +f 185/482/20 186/484/19 198/507/19 +f 185/482/20 197/508/20 196/509/21 +f 194/498/10 206/511/10 205/510/9 +f 195/497/11 207/512/11 206/511/10 +f 196/509/12 208/513/12 207/512/11 +f 197/508/13 209/514/13 208/513/12 +f 198/507/14 210/516/14 209/514/13 +f 199/515/4 211/1125/4 210/516/14 +f 200/504/3 212/518/3 211/517/4 +f 201/503/5 213/519/5 212/518/3 +f 202/502/6 214/520/6 213/519/5 +f 203/501/7 215/521/7 214/520/6 +f 204/500/8 216/522/8 215/521/7 +f 193/499/9 205/510/9 216/522/8 +f 205/510/34 206/511/33 218/523/33 +f 205/510/34 217/524/34 228/525/35 +f 216/522/35 228/525/35 227/526/36 +f 215/521/36 227/526/36 226/527/37 +f 214/520/37 226/527/37 225/528/38 +f 213/519/38 225/528/38 224/529/28 +f 212/518/28 224/529/28 223/530/27 +f 210/516/29 211/1125/27 223/531/27 +f 210/516/29 222/532/29 221/533/30 +f 208/513/31 209/514/30 221/533/30 +f 207/512/32 208/513/31 220/534/31 +f 206/511/33 207/512/32 219/535/32 +f 218/523/10 230/537/10 229/536/9 +f 219/535/11 231/538/11 230/537/10 +f 220/534/12 232/539/12 231/538/11 +f 221/533/13 233/540/13 232/539/12 +f 222/532/14 234/541/14 233/540/13 +f 223/531/4 235/556/4 234/541/14 +f 224/529/3 236/543/3 235/542/4 +f 225/528/5 237/544/5 236/543/3 +f 226/527/6 238/545/6 237/544/5 +f 227/526/7 239/546/7 238/545/6 +f 228/525/8 240/547/8 239/546/7 +f 217/524/9 229/536/9 240/547/8 +f 238/545/15 239/546/26 251/548/26 +f 239/546/26 240/547/25 252/550/25 +f 240/547/25 229/536/24 241/551/24 +f 229/536/24 230/537/23 242/552/23 +f 230/537/23 231/538/22 243/553/22 +f 232/539/21 244/554/21 243/553/22 +f 233/540/20 245/555/20 244/554/21 +f 234/541/19 246/557/19 245/555/20 +f 235/556/18 247/566/18 246/557/19 +f 236/543/17 248/560/17 247/558/18 +f 236/543/17 237/544/16 249/559/16 +f 237/544/16 238/545/15 250/549/15 +f 242/552/10 254/562/10 253/561/9 +f 243/553/11 255/563/11 254/562/10 +f 244/554/12 256/564/12 255/563/11 +f 245/555/13 257/565/13 256/564/12 +f 246/557/14 258/567/14 257/565/13 +f 247/566/4 259/581/4 258/567/14 +f 248/560/3 260/569/3 259/568/4 +f 249/559/5 261/570/5 260/569/3 +f 250/549/6 262/571/6 261/570/5 +f 251/548/7 263/572/7 262/571/6 +f 252/550/8 264/573/8 263/572/7 +f 241/551/9 253/561/9 264/573/8 +f 264/573/35 253/561/34 265/574/34 +f 254/562/33 266/576/33 265/574/34 +f 255/563/32 267/578/32 266/576/33 +f 255/563/32 256/564/31 268/577/31 +f 257/565/30 269/580/30 268/577/31 +f 257/565/30 258/567/29 270/579/29 +f 259/581/27 271/587/27 270/579/29 +f 260/569/28 272/583/28 271/582/27 +f 261/570/38 273/584/38 272/583/28 +f 262/571/37 274/585/37 273/584/38 +f 263/572/36 275/586/36 274/585/37 +f 264/573/35 276/575/35 275/586/36 +f 266/576/10 278/61/10 277/38/9 +f 267/578/11 279/60/11 278/61/10 +f 268/577/12 280/58/12 279/60/11 +f 269/580/13 281/56/13 280/58/12 +f 270/579/14 282/54/14 281/56/13 +f 271/587/4 283/52/4 282/54/14 +f 272/583/3 284/48/3 283/49/4 +f 273/584/5 285/46/5 284/48/3 +f 274/585/6 286/44/6 285/46/5 +f 275/586/7 287/42/7 286/44/6 +f 276/575/8 288/40/8 287/42/7 +f 265/574/9 277/38/9 288/40/8 +f 290/64/3 302/1126/3 301/588/4 +f 291/62/5 303/1127/5 302/589/3 +f 292/239/6 304/1128/6 303/590/5 +f 293/238/7 305/1129/7 304/591/6 +f 294/237/8 306/1130/8 305/592/7 +f 295/236/9 307/1131/9 306/593/8 +f 296/50/10 308/1132/10 307/594/9 +f 297/235/11 309/1133/11 308/595/10 +f 298/234/12 310/1134/12 309/596/11 +f 299/233/13 311/1135/13 310/597/12 +f 300/232/14 312/1136/14 311/598/13 +f 289/231/4 301/1137/4 312/599/14 +f 314/600/14 326/604/14 325/601/13 +f 315/603/4 327/606/4 326/604/14 +f 316/605/3 328/608/3 327/606/4 +f 317/607/5 329/610/5 328/608/3 +f 318/609/6 330/612/6 329/610/5 +f 319/611/7 331/634/7 330/612/6 +f 320/613/8 332/617/8 331/614/7 +f 321/616/9 333/619/9 332/617/8 +f 322/618/10 334/621/10 333/619/9 +f 323/620/11 335/623/11 334/621/10 +f 324/622/12 336/624/12 335/623/11 +f 313/602/13 325/601/13 336/624/12 +f 328/608/17 340/637/17 339/625/18 +f 327/606/18 339/625/18 338/626/19 +f 326/604/19 338/626/19 337/627/20 +f 336/624/21 325/601/20 337/627/20 +f 335/623/22 336/624/21 348/628/21 +f 334/621/23 335/623/22 347/629/22 +f 333/619/24 334/621/23 346/630/23 +f 332/617/25 333/619/24 345/631/24 +f 331/614/26 332/617/25 344/632/25 +f 331/634/26 343/643/26 342/635/15 +f 330/612/15 342/635/15 341/636/16 +f 329/610/16 341/636/16 340/637/17 +f 338/626/14 350/639/14 349/638/13 +f 339/625/4 351/640/4 350/639/14 +f 340/637/3 352/641/3 351/640/4 +f 341/636/5 353/642/5 352/641/3 +f 342/635/6 354/644/6 353/642/5 +f 343/643/7 355/1138/7 354/644/6 +f 344/632/8 356/646/8 355/645/7 +f 345/631/9 357/647/9 356/646/8 +f 346/630/10 358/648/10 357/647/9 +f 347/629/11 359/649/11 358/648/10 +f 348/628/12 360/650/12 359/649/11 +f 337/627/13 349/638/13 360/650/12 +f 349/638/30 350/639/29 362/651/29 +f 349/638/30 361/652/30 372/653/31 +f 360/650/31 372/653/31 371/654/32 +f 359/649/32 371/654/32 370/655/33 +f 358/648/33 370/655/33 369/656/34 +f 357/647/34 369/656/34 368/657/35 +f 356/646/35 368/657/35 367/658/36 +f 354/644/37 355/1138/36 367/659/36 +f 354/644/37 366/660/37 365/661/38 +f 352/641/28 353/642/38 365/661/38 +f 351/640/27 352/641/28 364/662/28 +f 350/639/29 351/640/27 363/663/27 +f 362/651/14 374/665/14 373/664/13 +f 363/663/4 375/666/4 374/665/14 +f 364/662/3 376/667/3 375/666/4 +f 365/661/5 377/668/5 376/667/3 +f 366/660/6 378/669/6 377/668/5 +f 367/659/7 379/685/7 378/669/6 +f 368/657/8 380/671/8 379/670/7 +f 369/656/9 381/672/9 380/671/8 +f 370/655/10 382/673/10 381/672/9 +f 371/654/11 383/674/11 382/673/10 +f 372/653/12 384/675/12 383/674/11 +f 361/652/13 373/664/13 384/675/12 +f 383/674/22 395/678/22 394/676/23 +f 383/674/22 384/675/21 396/677/21 +f 373/664/20 385/679/20 396/677/21 +f 374/665/19 386/680/19 385/679/20 +f 375/666/18 387/681/18 386/680/19 +f 376/667/17 388/682/17 387/681/18 +f 377/668/16 389/684/16 388/682/17 +f 377/668/16 378/669/15 390/683/15 +f 379/685/26 391/694/26 390/683/15 +f 380/671/25 392/688/25 391/686/26 +f 380/671/25 381/672/24 393/687/24 +f 382/673/23 394/676/23 393/687/24 +f 386/680/14 398/690/14 397/689/13 +f 387/681/4 399/691/4 398/690/14 +f 388/682/3 400/692/3 399/691/4 +f 389/684/5 401/693/5 400/692/3 +f 390/683/6 402/695/6 401/693/5 +f 391/694/7 403/1139/7 402/695/6 +f 392/688/8 404/697/8 403/696/7 +f 393/687/9 405/698/9 404/697/8 +f 394/676/10 406/699/10 405/698/9 +f 395/678/11 407/700/11 406/699/10 +f 396/677/12 408/701/12 407/700/11 +f 385/679/13 397/689/13 408/701/12 +f 408/701/31 397/689/30 409/702/30 +f 398/690/29 410/705/29 409/702/30 +f 398/690/29 399/691/27 411/704/27 +f 400/692/28 412/707/28 411/704/27 +f 400/692/28 401/693/38 413/706/38 +f 402/695/37 414/709/37 413/706/38 +f 402/695/37 403/1139/36 415/708/36 +f 403/696/36 404/697/35 416/710/35 +f 405/698/34 417/713/34 416/710/35 +f 405/698/34 406/699/33 418/712/33 +f 406/699/33 407/700/32 419/714/32 +f 408/701/31 420/703/31 419/714/32 +f 410/705/14 422/94/14 421/69/13 +f 411/704/4 423/92/4 422/94/14 +f 412/707/3 424/90/3 423/92/4 +f 413/706/5 425/88/5 424/90/3 +f 414/709/6 426/86/6 425/88/5 +f 415/708/7 427/84/7 426/86/6 +f 416/710/8 428/78/8 427/81/7 +f 417/713/9 429/77/9 428/78/8 +f 418/712/10 430/75/10 429/77/9 +f 419/714/11 431/73/11 430/75/10 +f 420/703/12 432/71/12 431/73/11 +f 409/702/13 421/69/13 432/71/12 +f 434/95/8 446/1140/8 445/715/7 +f 435/257/9 447/1141/9 446/716/8 +f 436/256/10 448/1142/10 447/717/9 +f 437/255/11 449/1143/11 448/718/10 +f 438/254/12 450/1144/12 449/719/11 +f 439/253/13 451/1145/13 450/720/12 +f 440/82/14 452/1146/14 451/721/13 +f 441/79/4 453/1147/4 452/722/14 +f 442/252/3 454/1148/3 453/723/4 +f 443/251/5 455/1149/5 454/724/3 +f 444/250/6 456/1150/6 455/725/5 +f 433/249/7 445/1151/7 456/726/6 +f 459/727/9 471/733/9 470/728/8 +f 458/729/8 470/728/8 469/730/7 +f 460/732/10 472/735/10 471/733/9 +f 461/734/11 473/737/11 472/735/10 +f 462/736/12 474/739/12 473/737/11 +f 463/738/13 475/761/13 474/739/12 +f 464/740/14 476/744/14 475/741/13 +f 465/743/4 477/746/4 476/744/14 +f 466/745/3 478/748/3 477/746/4 +f 467/747/5 479/750/5 478/748/3 +f 468/749/6 480/751/6 479/750/5 +f 457/731/7 469/730/7 480/751/6 +f 472/735/23 484/764/23 483/752/24 +f 471/733/24 483/752/24 482/753/25 +f 470/728/25 482/753/25 481/754/26 +f 469/730/26 481/754/26 492/755/15 +f 479/750/16 480/751/15 492/755/15 +f 479/750/16 491/756/16 490/757/17 +f 478/748/17 490/757/17 489/758/18 +f 476/744/19 477/746/18 489/758/18 +f 476/744/19 488/759/19 487/760/20 +f 475/761/20 487/770/20 486/762/21 +f 473/737/22 474/739/21 486/762/21 +f 473/737/22 485/763/22 484/764/23 +f 482/753/8 494/766/8 493/765/7 +f 483/752/9 495/767/9 494/766/8 +f 484/764/10 496/768/10 495/767/9 +f 485/763/11 497/769/11 496/768/10 +f 486/762/12 498/771/12 497/769/11 +f 487/770/13 499/786/13 498/771/12 +f 488/759/14 500/773/14 499/772/13 +f 489/758/4 501/774/4 500/773/14 +f 490/757/3 502/775/3 501/774/4 +f 491/756/5 503/776/5 502/775/3 +f 492/755/6 504/777/6 503/776/5 +f 481/754/7 493/765/7 504/777/6 +f 493/765/36 494/766/35 506/778/35 +f 493/765/36 505/779/36 516/780/37 +f 504/777/37 516/780/37 515/781/38 +f 503/776/38 515/781/38 514/782/28 +f 502/775/28 514/782/28 513/783/27 +f 501/774/27 513/783/27 512/784/29 +f 500/773/29 512/784/29 511/785/30 +f 499/786/30 511/796/30 510/787/31 +f 498/771/31 510/787/31 509/788/32 +f 496/768/33 497/769/32 509/788/32 +f 495/767/34 496/768/33 508/789/33 +f 494/766/35 495/767/34 507/790/34 +f 506/778/8 518/792/8 517/791/7 +f 507/790/9 519/793/9 518/792/8 +f 508/789/10 520/794/10 519/793/9 +f 509/788/11 521/795/11 520/794/10 +f 510/787/12 522/797/12 521/795/11 +f 511/796/13 523/813/13 522/797/12 +f 512/784/14 524/799/14 523/798/13 +f 513/783/4 525/800/4 524/799/14 +f 514/782/3 526/801/3 525/800/4 +f 515/781/5 527/802/5 526/801/3 +f 516/780/6 528/803/6 527/802/5 +f 505/779/7 517/791/7 528/803/6 +f 527/802/16 539/806/16 538/804/17 +f 527/802/16 528/803/15 540/805/15 +f 517/791/26 529/807/26 540/805/15 +f 518/792/25 530/808/25 529/807/26 +f 519/793/24 531/810/24 530/808/25 +f 519/793/24 520/794/23 532/809/23 +f 521/795/22 533/812/22 532/809/23 +f 521/795/22 522/797/21 534/811/21 +f 523/813/20 535/822/20 534/811/21 +f 524/799/19 536/816/19 535/814/20 +f 524/799/19 525/800/18 537/815/18 +f 526/801/17 538/804/17 537/815/18 +f 530/808/8 542/818/8 541/817/7 +f 531/810/9 543/819/9 542/818/8 +f 532/809/10 544/820/10 543/819/9 +f 533/812/11 545/821/11 544/820/10 +f 534/811/12 546/823/12 545/821/11 +f 535/822/13 547/1152/13 546/823/12 +f 536/816/14 548/825/14 547/824/13 +f 537/815/4 549/826/4 548/825/14 +f 538/804/3 550/827/3 549/826/4 +f 539/806/5 551/828/5 550/827/3 +f 540/805/6 552/829/6 551/828/5 +f 529/807/7 541/817/7 552/829/6 +f 552/829/37 541/817/36 553/830/36 +f 541/817/36 542/818/35 554/832/35 +f 542/818/35 543/819/34 555/833/34 +f 544/820/33 556/835/33 555/833/34 +f 544/820/33 545/821/32 557/834/32 +f 546/823/31 558/837/31 557/834/32 +f 546/823/31 547/1152/30 559/836/30 +f 547/824/30 548/825/29 560/838/29 +f 549/826/27 561/841/27 560/838/29 +f 549/826/27 550/827/28 562/840/28 +f 551/828/38 563/842/38 562/840/28 +f 552/829/37 564/831/37 563/842/38 +f 554/832/8 566/124/8 565/100/7 +f 555/833/9 567/123/9 566/124/8 +f 556/835/10 568/121/10 567/123/9 +f 557/834/11 569/119/11 568/121/10 +f 558/837/12 570/117/12 569/119/11 +f 559/836/13 571/115/13 570/117/12 +f 560/838/14 572/111/14 571/112/13 +f 561/841/4 573/107/4 572/111/14 +f 562/840/3 574/106/3 573/107/4 +f 563/842/5 575/104/5 574/106/3 +f 564/831/6 576/102/6 575/104/5 +f 553/830/7 565/100/7 576/102/6 +f 578/127/14 590/1153/14 589/843/13 +f 579/125/4 591/1154/4 590/844/14 +f 580/274/3 592/1155/3 591/845/4 +f 581/273/5 593/1156/5 592/846/3 +f 582/272/6 594/1157/6 593/847/5 +f 583/271/7 595/1158/7 594/848/6 +f 584/113/8 596/1159/8 595/849/7 +f 585/270/9 597/1160/9 596/850/8 +f 586/108/10 598/1161/10 597/851/9 +f 587/269/11 599/1162/11 598/852/10 +f 588/268/12 600/1163/12 599/853/11 +f 577/267/13 589/1164/13 600/854/12 +f 602/855/12 614/859/12 613/856/11 +f 603/858/13 615/861/13 614/859/12 +f 604/860/14 616/863/14 615/861/13 +f 605/862/4 617/865/4 616/863/14 +f 606/864/3 618/867/3 617/865/4 +f 607/866/5 619/1165/5 618/867/3 +f 608/868/6 620/872/6 619/869/5 +f 609/871/7 621/874/7 620/872/6 +f 610/873/8 622/876/8 621/874/7 +f 611/875/9 623/878/9 622/876/8 +f 612/877/10 624/879/10 623/878/9 +f 601/857/11 613/856/11 624/879/10 +f 616/863/19 628/892/19 627/880/20 +f 615/861/20 627/880/20 626/881/21 +f 613/856/22 614/859/21 626/881/21 +f 613/856/22 625/882/22 636/883/23 +f 623/878/24 624/879/23 636/883/23 +f 623/878/24 635/884/24 634/885/25 +f 622/876/25 634/885/25 633/886/26 +f 620/872/15 621/874/26 633/886/26 +f 619/869/16 620/872/15 632/887/15 +f 618/867/17 619/1165/16 631/889/16 +f 618/867/17 630/890/17 629/891/18 +f 617/865/18 629/891/18 628/892/19 +f 626/881/12 638/894/12 637/893/11 +f 627/880/13 639/895/13 638/894/12 +f 628/892/14 640/896/14 639/895/13 +f 629/891/4 641/897/4 640/896/14 +f 630/890/3 642/898/3 641/897/4 +f 631/889/5 643/912/5 642/898/3 +f 632/887/6 644/900/6 643/899/5 +f 633/886/7 645/901/7 644/900/6 +f 634/885/8 646/902/8 645/901/7 +f 635/884/9 647/903/9 646/902/8 +f 636/883/10 648/904/10 647/903/9 +f 625/882/11 637/893/11 648/904/10 +f 638/894/31 650/917/31 649/905/32 +f 637/893/32 649/905/32 660/906/33 +f 648/904/33 660/906/33 659/907/34 +f 647/903/34 659/907/34 658/908/35 +f 646/902/35 658/908/35 657/909/36 +f 645/901/36 657/909/36 656/910/37 +f 644/900/37 656/910/37 655/911/38 +f 643/912/38 655/923/38 654/913/28 +f 641/897/27 642/898/28 654/913/28 +f 640/896/29 641/897/27 653/914/27 +f 639/895/30 640/896/29 652/915/29 +f 638/894/31 639/895/30 651/916/30 +f 650/917/12 662/919/12 661/918/11 +f 651/916/13 663/920/13 662/919/12 +f 652/915/14 664/921/14 663/920/13 +f 653/914/4 665/922/4 664/921/14 +f 654/913/3 666/924/3 665/922/4 +f 655/923/5 667/940/5 666/924/3 +f 656/910/6 668/926/6 667/925/5 +f 657/909/7 669/927/7 668/926/6 +f 658/908/8 670/928/8 669/927/7 +f 659/907/9 671/929/9 670/928/8 +f 660/906/10 672/930/10 671/929/9 +f 649/905/11 661/918/11 672/930/10 +f 670/928/25 671/929/24 683/931/24 +f 671/929/24 672/930/23 684/933/23 +f 661/918/22 673/934/22 684/933/23 +f 662/919/21 674/935/21 673/934/22 +f 663/920/20 675/936/20 674/935/21 +f 664/921/19 676/937/19 675/936/20 +f 665/922/18 677/939/18 676/937/19 +f 665/922/18 666/924/17 678/938/17 +f 667/940/16 679/949/16 678/938/17 +f 668/926/15 680/943/15 679/941/16 +f 668/926/15 669/927/26 681/942/26 +f 670/928/25 682/932/25 681/942/26 +f 674/935/12 686/945/12 685/944/11 +f 675/936/13 687/946/13 686/945/12 +f 676/937/14 688/947/14 687/946/13 +f 677/939/4 689/948/4 688/947/14 +f 678/938/3 690/950/3 689/948/4 +f 679/949/5 691/1166/5 690/950/3 +f 680/943/6 692/952/6 691/951/5 +f 681/942/7 693/953/7 692/952/6 +f 682/932/8 694/954/8 693/953/7 +f 683/931/9 695/955/9 694/954/8 +f 684/933/10 696/956/10 695/955/9 +f 673/934/11 685/944/11 696/956/10 +f 696/956/33 685/944/32 697/957/32 +f 685/944/32 686/945/31 698/959/31 +f 686/945/31 687/946/30 699/960/30 +f 688/947/29 700/961/29 699/960/30 +f 689/948/27 701/963/27 700/961/29 +f 689/948/27 690/950/28 702/962/28 +f 690/950/28 691/1166/38 703/964/38 +f 692/952/37 704/966/37 703/965/38 +f 693/953/36 705/967/36 704/966/37 +f 694/954/35 706/968/35 705/967/36 +f 695/955/34 707/969/34 706/968/35 +f 696/956/33 708/958/33 707/969/34 +f 698/959/12 710/158/12 709/132/11 +f 699/960/13 711/156/13 710/158/12 +f 700/961/14 712/154/14 711/156/13 +f 701/963/4 713/152/4 712/154/14 +f 702/962/3 714/150/3 713/152/4 +f 703/964/5 715/148/5 714/150/3 +f 704/966/6 716/142/6 715/145/5 +f 705/967/7 717/139/7 716/142/6 +f 706/968/8 718/138/8 717/139/7 +f 707/969/9 719/136/9 718/138/8 +f 708/958/10 720/134/10 719/136/9 +f 697/957/11 709/132/11 720/134/10 +f 722/159/6 734/1167/6 733/970/5 +f 723/291/7 735/1168/7 734/971/6 +f 724/290/8 736/1169/8 735/972/7 +f 725/289/9 737/1170/9 736/973/8 +f 726/288/10 738/1171/10 737/974/9 +f 727/287/11 739/1172/11 738/975/10 +f 728/146/12 740/1173/12 739/976/11 +f 729/143/13 741/1174/13 740/977/12 +f 730/140/14 742/1175/14 741/978/13 +f 731/286/4 743/1176/4 742/979/14 +f 732/285/3 744/1177/3 743/980/4 +f 721/284/5 733/1178/5 744/981/3 +f 747/982/7 759/988/7 758/983/6 +f 746/984/6 758/983/6 757/985/5 +f 748/987/8 760/990/8 759/988/7 +f 749/989/9 761/992/9 760/990/8 +f 750/991/10 762/994/10 761/992/9 +f 751/993/11 763/1016/11 762/994/10 +f 752/995/12 764/999/12 763/996/11 +f 753/998/13 765/1001/13 764/999/12 +f 754/1000/14 766/1003/14 765/1001/13 +f 755/1002/4 767/1005/4 766/1003/14 +f 756/1004/3 768/1006/3 767/1005/4 +f 745/986/5 757/985/5 768/1006/3 +f 760/990/25 772/1019/25 771/1007/26 +f 759/988/26 771/1007/26 770/1008/15 +f 758/983/15 770/1008/15 769/1009/16 +f 768/1006/17 757/985/16 769/1009/16 +f 767/1005/18 768/1006/17 780/1010/17 +f 767/1005/18 779/1011/18 778/1012/19 +f 766/1003/19 778/1012/19 777/1013/20 +f 764/999/21 765/1001/20 777/1013/20 +f 763/996/22 764/999/21 776/1014/21 +f 763/1016/22 775/1025/22 774/1017/23 +f 761/992/24 762/994/23 774/1017/23 +f 761/992/24 773/1018/24 772/1019/25 +f 770/1008/6 782/1021/6 781/1020/5 +f 771/1007/7 783/1022/7 782/1021/6 +f 772/1019/8 784/1023/8 783/1022/7 +f 773/1018/9 785/1024/9 784/1023/8 +f 774/1017/10 786/1026/10 785/1024/9 +f 775/1025/11 787/1041/11 786/1026/10 +f 776/1014/12 788/1028/12 787/1027/11 +f 777/1013/13 789/1029/13 788/1028/12 +f 778/1012/14 790/1030/14 789/1029/13 +f 779/1011/4 791/1031/4 790/1030/14 +f 780/1010/3 792/1032/3 791/1031/4 +f 769/1009/5 781/1020/5 792/1032/3 +f 781/1020/38 782/1021/37 794/1033/37 +f 781/1020/38 793/1034/38 804/1035/28 +f 792/1032/28 804/1035/28 803/1036/27 +f 791/1031/27 803/1036/27 802/1037/29 +f 790/1030/29 802/1037/29 801/1038/30 +f 789/1029/30 801/1038/30 800/1039/31 +f 788/1028/31 800/1039/31 799/1040/32 +f 787/1041/32 799/1051/32 798/1042/33 +f 785/1024/34 786/1026/33 798/1042/33 +f 784/1023/35 785/1024/34 797/1043/34 +f 783/1022/36 784/1023/35 796/1044/35 +f 782/1021/37 783/1022/36 795/1045/36 +f 794/1033/6 806/1047/6 805/1046/5 +f 795/1045/7 807/1048/7 806/1047/6 +f 796/1044/8 808/1049/8 807/1048/7 +f 797/1043/9 809/1050/9 808/1049/8 +f 798/1042/10 810/1052/10 809/1050/9 +f 799/1051/11 811/1067/11 810/1052/10 +f 800/1039/12 812/1054/12 811/1053/11 +f 801/1038/13 813/1055/13 812/1054/12 +f 802/1037/14 814/1056/14 813/1055/13 +f 803/1036/4 815/1057/4 814/1056/14 +f 804/1035/3 816/1058/3 815/1057/4 +f 793/1034/5 805/1046/5 816/1058/3 +f 814/1056/19 815/1057/18 827/1059/18 +f 815/1057/18 816/1058/17 828/1061/17 +f 805/1046/16 817/1062/16 828/1061/17 +f 806/1047/15 818/1063/15 817/1062/16 +f 807/1048/26 819/1064/26 818/1063/15 +f 808/1049/25 820/1065/25 819/1064/26 +f 809/1050/24 821/1066/24 820/1065/25 +f 810/1052/23 822/1068/23 821/1066/24 +f 811/1067/22 823/1077/22 822/1068/23 +f 812/1054/21 824/1071/21 823/1069/22 +f 812/1054/21 813/1055/20 825/1070/20 +f 814/1056/19 826/1060/19 825/1070/20 +f 818/1063/6 830/1073/6 829/1072/5 +f 819/1064/7 831/1074/7 830/1073/6 +f 820/1065/8 832/1075/8 831/1074/7 +f 821/1066/9 833/1076/9 832/1075/8 +f 822/1068/10 834/1078/10 833/1076/9 +f 823/1077/11 835/1091/11 834/1078/10 +f 824/1071/12 836/1080/12 835/1079/11 +f 825/1070/13 837/1081/13 836/1080/12 +f 826/1060/14 838/1082/14 837/1081/13 +f 827/1059/4 839/1083/4 838/1082/14 +f 828/1061/3 840/1084/3 839/1083/4 +f 817/1062/5 829/1072/5 840/1084/3 +f 840/1084/28 829/1072/38 841/1085/38 +f 829/1072/38 830/1073/37 842/1087/37 +f 830/1073/37 831/1074/36 843/1088/36 +f 831/1074/36 832/1075/35 844/1089/35 +f 832/1075/35 833/1076/34 845/1090/34 +f 834/1078/33 846/1092/33 845/1090/34 +f 835/1091/32 847/1098/32 846/1092/33 +f 836/1080/31 848/1094/31 847/1093/32 +f 837/1081/30 849/1096/30 848/1094/31 +f 837/1081/30 838/1082/29 850/1095/29 +f 839/1083/27 851/1097/27 850/1095/29 +f 839/1083/27 840/1084/28 852/1086/28 +f 842/1087/6 854/188/6 853/164/5 +f 843/1088/7 855/187/7 854/188/6 +f 844/1089/8 856/185/8 855/187/7 +f 845/1090/9 857/183/9 856/185/8 +f 846/1092/10 858/181/10 857/183/9 +f 847/1098/11 859/179/11 858/181/10 +f 848/1094/12 860/175/12 859/176/11 +f 849/1096/13 861/171/13 860/175/12 +f 850/1095/14 862/170/14 861/171/13 +f 851/1097/4 863/168/4 862/170/14 +f 852/1086/3 864/166/3 863/168/4 +f 841/1085/5 853/164/5 864/166/3 +f 866/309/12 878/1179/12 877/1099/11 +f 867/189/13 879/1180/13 878/1100/12 +f 868/308/14 880/1181/14 879/1101/13 +f 869/307/4 881/1182/4 880/1102/14 +f 870/306/3 882/1183/3 881/1103/4 +f 871/305/5 883/1184/5 882/1104/3 +f 872/177/6 884/1185/6 883/1105/5 +f 873/304/7 885/1186/7 884/1106/6 +f 874/172/8 886/1187/8 885/1107/7 +f 875/303/9 887/1188/9 886/1108/8 +f 876/302/10 888/1189/10 887/1109/9 +f 865/301/11 877/1190/11 888/1110/10 +o Gun +v 0.000000 1.500000 -2.000000 +v -0.574025 1.385819 -2.000000 +v -1.060660 1.060660 -2.000000 +v -1.385819 0.574025 -2.000000 +v -1.500000 -0.000000 -2.000000 +v -1.385819 -0.574025 -2.000000 +v -1.060660 -1.060660 -2.000000 +v -0.574025 -1.385819 -2.000000 +v 0.000000 -1.500000 -2.000000 +v 0.574025 -1.385819 -2.000000 +v 1.060660 -1.060660 -2.000000 +v 1.385819 -0.574025 -2.000000 +v 1.500000 -0.000000 -2.000000 +v 1.385819 0.574025 -2.000000 +v 1.060660 1.060660 -2.000000 +v 0.574024 1.385820 -2.000000 +v 0.000000 1.500000 -5.000000 +v -0.574025 1.385819 -5.000000 +v -1.060660 1.060660 -5.000000 +v -1.385819 0.574025 -5.000000 +v -1.500000 -0.000000 -5.000000 +v -1.385819 -0.574025 -5.000000 +v -1.060660 -1.060660 -5.000000 +v -0.574025 -1.385819 -5.000000 +v 0.000000 -1.500000 -5.000000 +v 0.574025 -1.385819 -5.000000 +v 1.060660 -1.060660 -5.000000 +v 1.385819 -0.574025 -5.000000 +v 1.500000 -0.000000 -5.000000 +v 1.385819 0.574025 -5.000000 +v 1.060660 1.060660 -5.000000 +v 0.574024 1.385820 -5.000000 +v 0.000000 1.250000 -5.500000 +v -0.478354 1.154850 -5.500000 +v -0.883883 0.883883 -5.500000 +v -1.154849 0.478354 -5.500000 +v -1.250000 0.000000 -5.500000 +v -1.154849 -0.478354 -5.500000 +v -0.883883 -0.883883 -5.500000 +v -0.478354 -1.154850 -5.500000 +v 0.000000 -1.250000 -5.500000 +v 0.478354 -1.154850 -5.500000 +v 0.883883 -0.883884 -5.500000 +v 1.154849 -0.478354 -5.500000 +v 1.250000 0.000000 -5.500000 +v 1.154849 0.478354 -5.500000 +v 0.883883 0.883884 -5.500000 +v 0.478354 1.154850 -5.500000 +v 0.000000 1.250000 -9.000000 +v -0.478354 1.154850 -9.000000 +v -0.883883 0.883883 -9.000000 +v -1.154849 0.478354 -9.000000 +v -1.250000 0.000000 -9.000000 +v -1.154849 -0.478354 -9.000000 +v -0.883883 -0.883883 -9.000000 +v -0.478354 -1.154850 -9.000000 +v 0.000000 -1.250000 -9.000000 +v 0.478354 -1.154850 -9.000000 +v 0.883883 -0.883884 -9.000000 +v 1.154849 -0.478354 -9.000000 +v 1.250000 0.000000 -9.000000 +v 1.154849 0.478354 -9.000000 +v 0.883883 0.883884 -9.000000 +v 0.478354 1.154850 -9.000000 +v 0.000000 1.000000 -9.500000 +v -0.382684 0.923880 -9.500000 +v -0.707107 0.707107 -9.500000 +v -0.923880 0.382684 -9.500000 +v -1.000000 -0.000000 -9.500000 +v -0.923880 -0.382684 -9.500000 +v -0.707107 -0.707107 -9.500000 +v -0.382684 -0.923880 -9.500000 +v -0.000000 -1.000000 -9.500000 +v 0.382683 -0.923880 -9.500000 +v 0.707107 -0.707107 -9.500000 +v 0.923879 -0.382684 -9.500000 +v 1.000000 -0.000000 -9.500000 +v 0.923879 0.382684 -9.500000 +v 0.707107 0.707107 -9.500000 +v 0.382683 0.923880 -9.500000 +v -0.750000 0.000000 -6.000000 +v -0.750000 1.500000 -6.000000 +v -0.750000 0.000000 -10.500000 +v -0.750000 1.500000 -10.500000 +v 0.750000 0.000000 -6.000000 +v 0.750000 1.500000 -6.000000 +v 0.750000 0.000000 -10.500000 +v 0.750000 1.500000 -10.500000 +v -0.750000 2.000000 -8.250000 +v 0.750000 2.000000 -8.250000 +v -0.375000 -0.750000 -10.500000 +v -0.375000 -0.750000 -6.000000 +v 0.375000 -0.750000 -10.500000 +v 0.375000 -0.750000 -6.000000 +v -0.375000 2.500000 -11.250000 +v 0.375000 2.500000 -11.250000 +v -0.375000 1.750000 -12.000000 +v 0.375000 1.750000 -12.000000 +v -0.375000 0.750000 -10.500000 +v 0.375000 0.750000 -10.500000 +v -0.375000 1.750000 -7.750000 +v 0.375000 1.750000 -7.750000 +v -0.375000 4.000000 -11.250000 +v 0.375000 4.000000 -11.250000 +v -0.375000 4.000000 -7.750000 +v 0.375000 4.000000 -7.750000 +v -0.375000 4.000000 -8.250000 +v 0.375000 4.000000 -8.250000 +v -0.375000 2.500000 -8.250000 +v 0.375000 2.500000 -8.250000 +v -0.375000 4.000000 -10.750000 +v 0.375000 4.000000 -10.750000 +v -0.375000 2.500000 -10.750000 +v 0.375000 2.500000 -10.750000 +v 0.000000 3.875000 -8.250000 +v -0.265165 3.765165 -8.250000 +v -0.375000 3.500000 -8.250000 +v -0.265165 3.234835 -8.250000 +v 0.000000 3.125000 -8.250000 +v 0.265165 3.234835 -8.250000 +v 0.375000 3.500000 -8.250000 +v 0.265165 3.765165 -8.250000 +v 0.000000 3.875000 -10.750000 +v -0.265165 3.765165 -10.750000 +v -0.375000 3.500000 -10.750000 +v -0.265165 3.234835 -10.750000 +v 0.000000 3.125000 -10.750000 +v 0.265165 3.234835 -10.750000 +v 0.375000 3.500000 -10.750000 +v 0.265165 3.765165 -10.750000 +v -1.500000 0.250000 -5.750000 +v -1.500000 -0.750000 -8.250000 +v -1.500000 0.250000 -8.250000 +v 1.500000 0.250000 -5.750000 +v 1.500000 -0.750000 -8.250000 +v 1.500000 0.250000 -8.250000 +v 2.000000 0.250000 -8.000000 +v 2.000000 -0.750000 -8.000000 +v 2.000000 0.250000 -6.250000 +v -2.000000 -0.750000 -8.000000 +v -2.000000 0.250000 -6.250000 +v -2.000000 0.250000 -8.000000 +v -1.500000 0.750000 -6.250000 +v -1.500000 0.750000 -8.000000 +v 1.500000 0.750000 -8.000000 +v 1.500000 0.750000 -6.250000 +v 2.000000 0.750000 -7.750000 +v 2.000000 0.750000 -6.750000 +v -2.000000 0.750000 -6.750000 +v -2.000000 0.750000 -7.750000 +v -1.500000 -1.500000 -7.500000 +v -1.500000 -1.500000 -5.750000 +v 1.500000 -1.500000 -7.500000 +v 1.500000 -1.500000 -5.750000 +v 2.000000 -1.500000 -6.250000 +v 2.000000 -1.500000 -7.250000 +v -2.000000 -1.500000 -7.250000 +v -2.000000 -1.500000 -6.250000 +v 1.125000 0.375000 -2.000000 +v 1.125000 -0.375000 -2.000000 +v 1.125000 0.375000 -5.750000 +v 1.125000 -0.375000 -5.750000 +v 1.875000 0.375000 -5.500000 +v 1.875000 0.375000 -2.250000 +v 1.875000 -0.375000 -2.250000 +v 1.875000 -0.375000 -5.500000 +v 2.375000 0.187500 -4.500000 +v 2.375000 0.187500 -3.250000 +v 2.375000 -0.187500 -3.250000 +v 2.375000 -0.187500 -4.500000 +v -1.125000 0.375000 -2.000000 +v -1.125000 -0.375000 -2.000000 +v -1.125000 0.375000 -5.750000 +v -1.125000 -0.375000 -5.750000 +v -1.875000 0.375000 -5.500000 +v -1.875000 0.375000 -2.250000 +v -1.875000 -0.375000 -2.250000 +v -1.875000 -0.375000 -5.500000 +v -2.375000 0.187500 -4.500000 +v -2.375000 0.187500 -3.250000 +v -2.375000 -0.187500 -3.250000 +v -2.375000 -0.187500 -4.500000 +v -1.223240 1.817343 -4.000000 +v -1.223240 1.817343 -3.000000 +v -0.840556 1.741222 -4.000000 +v -0.840556 1.741222 -3.000000 +v -0.516133 1.524449 -4.000000 +v -0.516133 1.524449 -3.000000 +v -0.299360 1.200026 -4.000000 +v -0.299360 1.200026 -3.000000 +v -0.223240 0.817343 -4.000000 +v -0.223240 0.817343 -3.000000 +v -0.299360 0.434659 -4.000000 +v -0.299360 0.434659 -3.000000 +v -0.516133 0.110236 -4.000000 +v -0.516133 0.110236 -3.000000 +v -0.840556 -0.106537 -4.000000 +v -0.840556 -0.106537 -3.000000 +v -1.223239 -0.182657 -4.000000 +v -1.223239 -0.182657 -3.000000 +v -1.605923 -0.106537 -4.000000 +v -1.605923 -0.106537 -3.000000 +v -1.930346 0.110236 -4.000000 +v -1.930346 0.110236 -3.000000 +v -2.147119 0.434659 -4.000000 +v -2.147119 0.434659 -3.000000 +v -2.223239 0.817343 -4.000000 +v -2.223239 0.817343 -3.000000 +v -2.147119 1.200026 -4.000000 +v -2.147119 1.200026 -3.000000 +v -1.930346 1.524450 -4.000000 +v -1.930346 1.524450 -3.000000 +v -1.605923 1.741222 -4.000000 +v -1.605923 1.741222 -3.000000 +v 1.223239 1.817343 -4.000000 +v 1.223239 1.817343 -3.000000 +v 1.605923 1.741222 -4.000000 +v 1.605923 1.741222 -3.000000 +v 1.930346 1.524450 -4.000000 +v 1.930346 1.524450 -3.000000 +v 2.147119 1.200026 -4.000000 +v 2.147119 1.200026 -3.000000 +v 2.223239 0.817343 -4.000000 +v 2.223239 0.817343 -3.000000 +v 2.147119 0.434659 -4.000000 +v 2.147119 0.434659 -3.000000 +v 1.930346 0.110236 -4.000000 +v 1.930346 0.110236 -3.000000 +v 1.605923 -0.106537 -4.000000 +v 1.605923 -0.106537 -3.000000 +v 1.223240 -0.182657 -4.000000 +v 1.223240 -0.182657 -3.000000 +v 0.840556 -0.106537 -4.000000 +v 0.840556 -0.106537 -3.000000 +v 0.516133 0.110236 -4.000000 +v 0.516133 0.110236 -3.000000 +v 0.299360 0.434659 -4.000000 +v 0.299360 0.434659 -3.000000 +v 0.223239 0.817343 -4.000000 +v 0.223239 0.817343 -3.000000 +v 0.299360 1.200027 -4.000000 +v 0.299360 1.200027 -3.000000 +v 0.516133 1.524450 -4.000000 +v 0.516133 1.524450 -3.000000 +v 0.840557 1.741223 -4.000000 +v 0.840557 1.741223 -3.000000 +v 1.500000 -0.500000 -0.750000 +v 1.500000 0.500000 -0.750000 +v 1.500000 -0.500000 -2.250000 +v 1.500000 0.500000 -2.250000 +v 2.000000 -0.500000 -0.750000 +v 2.000000 0.500000 -0.750000 +v 2.000000 -0.500000 -2.250000 +v 2.000000 0.500000 -2.250000 +v 2.000000 0.000000 -2.125000 +v 2.000000 0.265165 -2.015165 +v 2.000000 0.375000 -1.750000 +v 2.000000 0.265165 -1.484835 +v 2.000000 0.000000 -1.375000 +v 2.000000 -0.265165 -1.484835 +v 2.000000 -0.375000 -1.750000 +v 2.000000 -0.265165 -2.015165 +v 4.500000 0.000000 -2.125000 +v 4.500000 0.265165 -2.015165 +v 4.500000 0.375000 -1.750000 +v 4.500000 0.265165 -1.484835 +v 4.500000 0.000000 -1.375000 +v 4.500000 -0.265165 -1.484835 +v 4.500000 -0.375000 -1.750000 +v 4.500000 -0.265165 -2.015165 +v 2.000000 -0.250000 -0.250000 +v 2.000000 0.250000 -0.250000 +v 4.500000 0.500000 -0.750000 +v 4.500000 -0.500000 -0.750000 +v 4.500000 0.250000 -0.250000 +v 4.500000 -0.250000 -0.250000 +v 5.000000 0.500000 -0.750000 +v 5.000000 -0.500000 -0.750000 +v 4.500000 0.500000 -2.250000 +v 4.500000 -0.500000 -2.250000 +v 5.000000 0.500000 -1.750000 +v 5.000000 -0.500000 -1.750000 +v -0.500000 -1.000000 -2.500000 +v 0.500000 -1.000000 -2.500000 +v -0.500000 -1.000000 -6.500000 +v 0.500000 -1.000000 -6.500000 +v -0.500000 -2.000000 -5.500000 +v -0.500000 -2.000000 -2.500000 +v 0.500000 -2.000000 -2.500000 +v 0.500000 -2.000000 -5.500000 +v 1.250000 0.000000 -8.000000 +v 1.250000 0.500000 -8.000000 +v 1.250000 0.000000 -9.750000 +v 1.250000 0.500000 -9.750000 +v 1.750000 0.000000 -8.000000 +v 1.750000 0.500000 -8.000000 +v 1.750000 0.000000 -9.750000 +v 1.750000 0.500000 -9.750000 +v -1.000000 1.250000 -6.500000 +v 1.250000 0.000000 -10.250000 +v 1.750000 0.000000 -10.250000 +v 1.000000 1.250000 -6.500000 +v 1.750000 -1.000000 -9.750000 +v 1.250000 -1.000000 -9.750000 +v 1.750000 -1.000000 -10.250000 +v 1.250000 -1.000000 -10.250000 +v -1.750000 0.000000 -8.000000 +v -1.750000 0.500000 -8.000000 +v -1.750000 0.000000 -9.750000 +v -1.750000 0.500000 -9.750000 +v -1.250000 0.000000 -8.000000 +v -1.250000 0.500000 -8.000000 +v -1.250000 0.000000 -9.750000 +v -1.250000 0.500000 -9.750000 +v -1.000000 1.250000 -7.750000 +v -1.750000 0.000000 -10.250000 +v -1.250000 0.000000 -10.250000 +v 1.000000 1.250000 -7.750000 +v -1.250000 -1.000000 -9.750000 +v -1.750000 -1.000000 -9.750000 +v -1.250000 -1.000000 -10.250000 +v -1.750000 -1.000000 -10.250000 +v 1.000000 0.750000 -7.750000 +v 1.250000 -1.500000 -9.750000 +v -1.000000 0.750000 -7.750000 +v 1.250000 -1.500000 -10.250000 +v -1.250000 -1.500000 -9.750000 +v 1.000000 0.750000 -6.500000 +v -1.250000 -1.500000 -10.250000 +v -1.000000 0.750000 -6.500000 +v -1.500000 -2.000000 -2.750000 +v 1.500000 -2.000000 -2.750000 +v -1.500000 -2.000000 -5.250000 +v 1.500000 -2.000000 -5.250000 +v -1.500000 -4.000000 -5.250000 +v -1.500000 -4.000000 -2.750000 +v 1.500000 -4.000000 -2.750000 +v 1.500000 -4.000000 -5.250000 +v 1.500000 -2.187501 -3.937498 +v 1.500000 -2.562501 -3.937498 +v 1.500000 -2.187501 -3.062498 +v 1.500000 -2.562501 -3.062498 +v 2.000000 -2.187501 -3.937498 +v 2.000000 -2.562501 -3.937498 +v 2.000000 -2.187501 -3.062498 +v 2.000000 -2.562501 -3.062498 +v 2.500000 -1.687501 -3.937498 +v 2.875000 -1.687501 -3.937498 +v 2.500000 -1.687501 -3.062498 +v 2.875000 -1.687501 -3.062498 +v 2.500000 0.437499 -3.937498 +v 2.875000 0.437499 -3.937498 +v 2.500000 0.437499 -3.062498 +v 2.875000 0.437499 -3.062498 +v 2.000000 0.937498 -3.937498 +v 2.000000 0.937498 -3.062498 +v 2.000000 1.312498 -3.937498 +v 2.000000 1.312498 -3.062498 +v -0.750000 1.375000 -3.250000 +v 0.750000 1.375000 -3.250000 +v 1.750000 0.000000 -4.750000 +v 1.750000 0.000000 -3.000000 +v 1.616789 -0.669696 -4.750000 +v 1.616789 -0.669696 -3.000000 +v 1.237437 -1.237437 -4.750000 +v 1.237437 -1.237437 -3.000000 +v 0.669696 -1.616789 -4.750000 +v 0.669696 -1.616789 -3.000000 +v 0.000000 -1.750000 -4.750000 +v 0.000000 -1.750000 -3.000000 +v -0.669696 -1.616789 -4.750000 +v -0.669696 -1.616789 -3.000000 +v -1.237436 -1.237437 -4.750000 +v -1.237436 -1.237437 -3.000000 +v -1.616789 -0.669696 -4.750000 +v -1.616789 -0.669696 -3.000000 +v -1.750000 0.000000 -4.750000 +v -1.750000 0.000000 -3.000000 +v -0.750000 1.375000 -3.750000 +v 0.750000 1.375000 -3.750000 +v 0.750000 1.625000 -3.750000 +v -0.750000 1.625000 -3.750000 +v 0.750000 1.625000 -3.250000 +v -0.750000 1.625000 -3.250000 +vt 0.205104 0.294129 +vt 0.205104 0.205871 +vt 0.242265 0.205871 +vt 0.592105 0.390625 +vt 0.532895 0.359375 +vt 0.532895 0.265625 +vt 0.125000 0.781250 +vt 0.171053 0.812500 +vt 0.125000 0.812500 +vt 0.414474 0.148438 +vt 0.473684 0.242188 +vt 0.414474 0.242188 +vt 0.592105 -0.000000 +vt 0.651316 0.031250 +vt 0.651316 0.125000 +vt 0.710526 0.148438 +vt 0.769737 0.242188 +vt 0.710526 0.242188 +vt 0.651316 0.218750 +vt 0.532895 0.171875 +vt 0.651316 0.171875 +vt 0.651316 0.265625 +vt 0.184211 0.812500 +vt 0.171053 0.812500 +vt 0.184211 0.781250 +vt 0.532895 0.125000 +vt 0.264746 0.027479 +vt 0.276304 0.093750 +vt 0.236842 0.187471 +vt 0.496711 0.640625 +vt 0.509868 0.546875 +vt 0.496711 0.500000 +vt 0.608553 0.437500 +vt 0.628289 0.390625 +vt 0.628289 0.437500 +vt 0.569079 0.437500 +vt 0.608553 0.390625 +vt 0.509868 0.546875 +vt 0.496711 0.640625 +vt 0.496711 0.500000 +vt 0.608553 0.546875 +vt 0.588816 0.640625 +vt 0.588816 0.546875 +vt 0.509868 0.687500 +vt 0.496711 0.687500 +vt 0.509868 0.640625 +vt 0.529605 0.546875 +vt 0.529605 0.640625 +vt 0.588816 0.687500 +vt 0.575658 0.640625 +vt 0.555921 0.640625 +vt 0.575658 0.546875 +vt 0.575658 0.640625 +vt 0.509868 0.687500 +vt 0.509868 0.640625 +vt 0.476974 0.640625 +vt 0.476974 0.500000 +vt 0.575658 0.640625 +vt 0.588816 0.546875 +vt 0.575658 0.546875 +vt 0.569079 0.437500 +vt 0.401316 0.218750 +vt 0.322368 0.156250 +vt 0.401316 0.156250 +vt 0.414474 0.218750 +vt 0.401316 0.250000 +vt 0.296053 0.250000 +vt 0.309211 0.265625 +vt 0.309211 0.328125 +vt 0.401316 0.109375 +vt 0.309211 0.218750 +vt 0.322368 0.250000 +vt 0.309211 0.250000 +vt 0.401316 0.500000 +vt 0.414474 0.390625 +vt 0.414474 0.500000 +vt 0.322368 0.218750 +vt 0.309211 0.156250 +vt 0.414474 0.328125 +vt 0.414474 0.265625 +vt 0.427632 0.250000 +vt 0.322368 0.109375 +vt 0.322368 0.359375 +vt 0.322368 0.500000 +vt 0.309211 0.390625 +vt 0.322368 0.390625 +vt 0.401316 0.359375 +vt 0.401316 0.390625 +vt 0.414474 0.359375 +vt 0.322368 -0.000000 +vt 0.309211 0.031250 +vt 0.414474 0.156250 +vt 0.414474 0.109375 +vt 0.019737 0.753906 +vt 0.046053 0.789062 +vt 0.019737 0.800781 +vt 0.125000 0.800781 +vt 0.105263 0.753906 +vt 0.125000 0.753906 +vt 0.000000 0.753906 +vt -0.000000 0.800781 +vt 0.111842 0.687500 +vt 0.019737 0.734375 +vt 0.013158 0.687500 +vt 0.013158 0.867188 +vt 0.105263 0.820312 +vt 0.111842 0.867188 +vt 0.046053 0.769531 +vt 0.078947 0.789062 +vt 0.105263 0.734375 +vt 0.019737 0.820312 +vt 0.105263 0.800781 +vt 0.078947 0.765625 +vt 0.078947 0.789062 +vt 0.105263 0.753906 +vt 0.105263 0.800781 +vt 0.019737 0.753906 +vt -0.000000 0.800781 +vt 0.000000 0.753906 +vt 0.125000 0.753906 +vt 0.125000 0.800781 +vt 0.105263 0.734375 +vt 0.013158 0.687500 +vt 0.111842 0.687500 +vt 0.019737 0.820312 +vt 0.111842 0.867188 +vt 0.013158 0.867188 +vt 0.046053 0.789062 +vt 0.078947 0.765625 +vt 0.046053 0.769531 +vt 0.019737 0.734375 +vt 0.105263 0.820312 +vt 0.019737 0.800781 +vt 0.946511 0.187500 +vt 0.939054 0.230254 +vt 0.903051 0.144746 +vt 0.858679 0.131639 +vt 0.891942 0.164362 +vt 0.878164 0.243361 +vt 0.939054 0.105254 +vt 0.903051 0.105254 +vt 0.903051 0.019746 +vt 0.858679 0.006639 +vt 0.891941 0.039361 +vt 0.878164 0.118361 +vt 0.164474 0.906250 +vt 0.125000 0.843750 +vt 0.164474 0.843750 +vt 0.125000 0.906250 +vt 0.111842 0.843750 +vt 0.125000 0.937500 +vt 0.164474 1.000000 +vt 0.125000 1.000000 +vt 0.125000 0.812500 +vt 0.164474 0.937500 +vt 0.184211 0.859375 +vt 0.250000 0.828125 +vt 0.263158 0.828125 +vt 0.250000 0.859375 +vt 0.269737 0.937500 +vt 0.309211 1.000000 +vt 0.269737 1.000000 +vt 0.184211 0.921875 +vt 0.250000 0.984375 +vt 0.184211 0.984375 +vt 0.250000 0.890625 +vt 0.184211 0.890625 +vt 0.250000 0.921875 +vt 0.269737 0.843750 +vt 0.309211 0.906250 +vt 0.296053 0.843750 +vt 0.309211 0.843750 +vt 0.269737 0.812500 +vt 0.296053 0.906250 +vt 0.309211 0.937500 +vt 0.269737 0.906250 +vt 0.671053 0.148438 +vt 0.493421 0.750000 +vt 0.414474 0.812500 +vt 0.414474 0.750000 +vt 0.519737 0.812500 +vt 0.519737 0.750000 +vt 0.388158 0.750000 +vt 0.388158 0.812500 +vt 0.414474 0.875000 +vt 0.493421 0.812500 +vt 0.519737 0.875000 +vt 0.414474 0.687500 +vt 0.171053 0.750000 +vt 0.125000 0.718750 +vt 0.171053 0.718750 +vt 0.125000 0.687500 +vt 0.171053 0.687500 +vt 0.171053 0.781250 +vt 0.125000 0.750000 +vt 0.342105 0.781250 +vt 0.328947 0.750000 +vt 0.342105 0.750000 +vt 0.171053 0.718750 +vt 0.184211 0.718750 +vt 0.184211 0.750000 +vt 0.210526 0.812500 +vt 0.230263 0.390625 +vt 0.243421 0.468750 +vt 0.230263 0.468750 +vt 0.223684 0.781250 +vt 0.210526 0.781250 +vt 0.223684 0.750000 +vt 0.184211 0.687500 +vt 0.210526 0.718750 +vt 0.210526 0.781250 +vt 0.210526 0.750000 +vt 0.388158 0.750000 +vt 0.342105 0.718750 +vt 0.388158 0.718750 +vt 0.328947 0.718750 +vt 0.342105 0.718750 +vt 0.388158 0.812500 +vt 0.342105 0.812500 +vt 0.342105 0.687500 +vt 0.388158 0.781250 +vt 0.342105 0.812500 +vt 0.328947 0.812500 +vt 0.328947 0.781250 +vt 0.302632 0.718750 +vt 0.309211 0.468750 +vt 0.296053 0.390625 +vt 0.309211 0.390625 +vt 0.296053 0.359375 +vt 0.243421 0.390625 +vt 0.243421 0.359375 +vt 0.302632 0.687500 +vt 0.328947 0.687500 +vt 0.302632 0.750000 +vt 0.302632 0.781250 +vt 0.289474 0.718750 +vt 0.296053 0.468750 +vt 0.289474 0.687500 +vt 0.302632 0.687500 +vt 0.289474 0.781250 +vt 0.223684 0.812500 +vt 0.210526 0.687500 +vt 0.223684 0.687500 +vt 0.223684 0.718750 +vt 0.302632 0.781250 +vt 0.289474 0.750000 +vt 0.243421 0.500000 +vt 0.296053 0.500000 +vt 0.618421 0.687500 +vt 0.684211 0.875000 +vt 0.618421 0.875000 +vt 0.736842 0.875000 +vt 0.802632 0.687500 +vt 0.802632 0.875000 +vt 0.684211 0.562500 +vt 0.684211 0.687500 +vt 0.618421 1.000000 +vt 0.565789 0.687500 +vt 0.835526 0.531250 +vt 0.825658 0.562500 +vt 0.825658 0.531250 +vt 0.868421 0.531250 +vt 0.858553 0.562500 +vt 0.858553 0.531250 +vt 0.835526 0.562500 +vt 0.802632 0.562500 +vt 0.802632 0.531250 +vt 0.835526 0.640625 +vt 0.825658 0.578125 +vt 0.802632 0.625000 +vt 0.802632 0.578125 +vt 0.858553 0.640625 +vt 0.835526 0.773438 +vt 0.825658 0.640625 +vt 0.802632 0.773438 +vt 0.802632 0.640625 +vt 0.825658 0.789062 +vt 0.802632 0.835938 +vt 0.802632 0.789062 +vt 0.858553 0.773438 +vt 0.835526 0.851562 +vt 0.868421 0.625000 +vt 0.868421 0.578125 +vt 0.868421 0.640625 +vt 0.858553 0.851562 +vt 0.868421 0.789062 +vt 0.868421 0.835938 +vt 0.825658 0.625000 +vt 0.825658 0.773438 +vt 0.825658 0.835938 +vt 0.684211 0.890625 +vt 0.723684 0.875000 +vt 0.723684 0.890625 +vt 0.723684 0.921875 +vt 0.684211 0.937500 +vt 0.684211 0.921875 +vt 0.799894 0.379950 +vt 0.824715 0.321000 +vt 0.859817 0.321000 +vt 0.859817 0.430375 +vt 0.874696 0.453987 +vt 0.888129 0.531009 +vt 0.513158 0.242188 +vt 0.473684 0.148438 +vt 0.242265 0.294129 +vt 0.233740 0.307657 +vt 0.223684 0.312408 +vt 0.213628 0.307658 +vt 0.199407 0.273883 +vt 0.197407 0.250000 +vt 0.199407 0.226117 +vt 0.213628 0.192342 +vt 0.223684 0.187592 +vt 0.233740 0.192343 +vt 0.247961 0.226117 +vt 0.249961 0.250000 +vt 0.247961 0.273883 +vt 0.651316 0.359375 +vt 0.532895 0.031250 +vt 0.769737 0.148438 +vt 0.532895 0.218750 +vt 0.221741 0.180337 +vt 0.208939 0.160021 +vt 0.200384 0.129615 +vt 0.197381 0.093750 +vt 0.200384 0.057884 +vt 0.208939 0.027479 +vt 0.221741 0.007163 +vt 0.236842 0.000029 +vt 0.251943 0.007163 +vt 0.273300 0.057885 +vt 0.273300 0.129616 +vt 0.264746 0.160021 +vt 0.251943 0.180337 +vt 0.509868 0.640625 +vt 0.569079 0.390625 +vt 0.608553 0.640625 +vt 0.575658 0.687500 +vt 0.555921 0.546875 +vt 0.575658 0.687500 +vt 0.588816 0.640625 +vt 0.608553 0.500000 +vt 0.608553 0.500000 +vt 0.414474 0.250000 +vt 0.296053 0.359375 +vt 0.250000 0.359375 +vt 0.250000 0.296875 +vt 0.269737 0.250000 +vt 0.453947 0.250000 +vt 0.427632 0.359375 +vt 0.473684 0.296875 +vt 0.473684 0.359375 +vt 0.309211 0.109375 +vt 0.309211 0.500000 +vt 0.309211 0.359375 +vt 0.401316 -0.000000 +vt 0.414474 0.031250 +vt 0.414474 0.093750 +vt 0.309211 0.093750 +vt 0.930795 0.243361 +vt 0.921053 0.247964 +vt 0.911310 0.243361 +vt 0.903051 0.230254 +vt 0.897532 0.210638 +vt 0.895594 0.187500 +vt 0.897532 0.164362 +vt 0.911310 0.131639 +vt 0.921053 0.127036 +vt 0.930795 0.131639 +vt 0.939054 0.144746 +vt 0.944573 0.164362 +vt 0.944573 0.210638 +vt 0.868421 0.247964 +vt 0.844901 0.210638 +vt 0.858679 0.243361 +vt 0.850419 0.230254 +vt 0.842963 0.187500 +vt 0.844901 0.164362 +vt 0.850419 0.144746 +vt 0.868421 0.127036 +vt 0.878164 0.131639 +vt 0.886423 0.144746 +vt 0.893879 0.187500 +vt 0.891942 0.210638 +vt 0.886423 0.230254 +vt 0.930795 0.118361 +vt 0.921053 0.122964 +vt 0.911310 0.118361 +vt 0.897532 0.085639 +vt 0.895594 0.062500 +vt 0.897532 0.039362 +vt 0.911310 0.006639 +vt 0.921053 0.002036 +vt 0.930795 0.006639 +vt 0.939054 0.019746 +vt 0.944573 0.039362 +vt 0.946511 0.062500 +vt 0.944573 0.085638 +vt 0.868421 0.122964 +vt 0.858679 0.118361 +vt 0.850419 0.105254 +vt 0.844901 0.085638 +vt 0.842963 0.062500 +vt 0.844901 0.039362 +vt 0.850419 0.019746 +vt 0.868421 0.002036 +vt 0.878164 0.006639 +vt 0.886423 0.019746 +vt 0.893879 0.062500 +vt 0.891941 0.085638 +vt 0.886423 0.105254 +vt 0.111842 0.906250 +vt 0.164474 0.812500 +vt 0.184211 0.828125 +vt 0.171053 0.828125 +vt 0.171053 0.921875 +vt 0.263158 0.921875 +vt 0.309211 0.812500 +vt 0.671053 0.242188 +vt 0.519737 0.687500 +vt 0.210526 0.687500 +vt 0.388158 0.687500 +vt 0.302632 0.812500 +vt 0.289474 0.812500 +vt 0.736842 0.687500 +vt 0.618421 0.562500 +vt 0.684211 1.000000 +vt 0.565789 0.875000 +vt 0.868421 0.562500 +vt 0.868421 0.773438 +vt 0.684211 0.875000 +vt 0.723684 0.937500 +vt 0.888129 0.421634 +vt 0.796403 0.421634 +vt 0.809836 0.344612 +vt 0.842266 0.312709 +vt 0.874696 0.344612 +vt 0.884638 0.379950 +vt 0.884638 0.489325 +vt 0.796403 0.531009 +vt 0.799894 0.489325 +vt 0.809836 0.453987 +vt 0.824715 0.430375 +vt 0.842266 0.422084 +vt 0.513158 0.148438 +vt 0.078947 0.175781 +vt -0.000000 0.210938 +vt -0.000000 0.175781 +vt 0.078947 0.492188 +vt 0.000000 0.527344 +vt 0.000000 0.492188 +vt 0.078947 0.210938 +vt -0.000000 0.246094 +vt 0.078947 0.527344 +vt 0.000000 0.562500 +vt 0.078947 0.281250 +vt -0.000000 0.316406 +vt -0.000000 0.281250 +vt 0.078947 0.246094 +vt 0.078947 0.000000 +vt 0.000000 0.035156 +vt 0.000000 0.000000 +vt 0.078947 0.316406 +vt -0.000000 0.351562 +vt 0.078947 0.035156 +vt 0.000000 0.070312 +vt 0.078947 0.351562 +vt -0.000000 0.386719 +vt 0.078947 0.070312 +vt 0.000000 0.105469 +vt 0.078947 0.386719 +vt 0.000000 0.421875 +vt 0.078947 0.105469 +vt -0.000000 0.140625 +vt 0.078947 0.421875 +vt 0.000000 0.457031 +vt 0.078947 0.140625 +vt 0.078947 0.457031 +vt 0.092105 0.210938 +vt 0.092105 0.246094 +vt 0.092105 0.281250 +vt 0.092105 0.316406 +vt 0.092105 0.351562 +vt 0.092105 0.417969 +vt 0.092105 0.421875 +vt 0.092105 0.488281 +vt 0.092105 0.492188 +vt 0.092105 0.527344 +vt 0.078947 0.562500 +vt 0.092105 0.000000 +vt 0.092105 0.066406 +vt 0.092105 0.101562 +vt 0.092105 0.105469 +vt 0.092105 0.140625 +vt 0.092105 0.175781 +vt 0.092105 0.312500 +vt 0.184211 0.343750 +vt 0.092105 0.343750 +vt 0.092105 0.062500 +vt 0.184211 0.093750 +vt 0.092105 0.093750 +vt 0.184211 0.375000 +vt 0.092105 0.375000 +vt 0.184211 0.125000 +vt 0.092105 0.125000 +vt 0.184211 0.406250 +vt 0.092105 0.406250 +vt 0.184211 0.156250 +vt 0.092105 0.156250 +vt 0.184211 0.437500 +vt 0.092105 0.437500 +vt 0.184211 0.187500 +vt 0.092105 0.187500 +vt 0.184211 0.468750 +vt 0.092105 0.468750 +vt 0.184211 0.218750 +vt 0.092105 0.218750 +vt 0.184211 0.500000 +vt 0.092105 0.500000 +vt 0.092105 0.250000 +vt 0.184211 0.281250 +vt 0.092105 0.281250 +vt 0.184211 0.250000 +vt 0.184211 0.031250 +vt 0.092105 0.031250 +vt 0.184211 0.312500 +vt 0.184211 0.062500 +vt 0.197368 0.183594 +vt 0.197368 0.191406 +vt 0.197368 0.222656 +vt 0.197368 0.253906 +vt 0.197368 0.285156 +vt 0.197368 0.339844 +vt 0.197368 0.371094 +vt 0.197368 0.378906 +vt 0.197368 0.410156 +vt 0.197368 0.464844 +vt 0.197368 0.496094 +vt 0.184211 0.000000 +vt 0.197368 0.027344 +vt 0.197368 0.058594 +vt 0.197368 0.066406 +vt 0.197368 0.121094 +vt 0.197368 0.128906 +vt 0.480263 0.406250 +vt 0.414474 0.421875 +vt 0.414474 0.406250 +vt 0.480263 0.375000 +vt 0.414474 0.390625 +vt 0.414474 0.375000 +vt 0.480263 0.468750 +vt 0.414474 0.484375 +vt 0.414474 0.468750 +vt 0.480263 0.437500 +vt 0.414474 0.453125 +vt 0.414474 0.437500 +vt 0.480263 0.421875 +vt 0.480263 0.390625 +vt 0.480263 0.484375 +vt 0.414474 0.500000 +vt 0.480263 0.453125 +vt 1.000000 0.187500 +vt 0.973684 0.210938 +vt 0.973684 0.187500 +vt 1.000000 0.210938 +vt 0.973684 0.234375 +vt 1.000000 0.234375 +vt 0.973684 0.257812 +vt 1.000000 0.257812 +vt 0.973684 0.281250 +vt 1.000000 0.281250 +vt 0.973684 0.304688 +vt 1.000000 0.304688 +vt 0.973684 0.328125 +vt 1.000000 0.328125 +vt 0.973684 0.351562 +vt 1.000000 0.351562 +vt 0.973684 0.375000 +vt 1.000000 -0.000000 +vt 0.973684 0.023438 +vt 0.973684 -0.000000 +vt 1.000000 0.023438 +vt 0.973684 0.046875 +vt 1.000000 0.046875 +vt 0.973684 0.070312 +vt 1.000000 0.070312 +vt 0.973684 0.093750 +vt 1.000000 0.093750 +vt 0.973684 0.117188 +vt 1.000000 0.117188 +vt 0.973684 0.140625 +vt 1.000000 0.140625 +vt 0.973684 0.164062 +vt 1.000000 0.164062 +vt 0.973684 0.187500 +vt 0.947368 0.210938 +vt 0.947368 0.187500 +vt 0.973684 0.210938 +vt 0.947368 0.234375 +vt 0.973684 0.234375 +vt 0.947368 0.257812 +vt 0.973684 0.257812 +vt 0.947368 0.281250 +vt 0.973684 0.281250 +vt 0.947368 0.304688 +vt 0.973684 0.304688 +vt 0.947368 0.328125 +vt 0.973684 0.328125 +vt 0.947368 0.351562 +vt 0.973684 0.351562 +vt 0.947368 0.375000 +vt 0.973684 0.000000 +vt 0.947368 0.023438 +vt 0.947368 0.000000 +vt 0.973684 0.023438 +vt 0.947368 0.046875 +vt 0.973684 0.070312 +vt 0.947368 0.070312 +vt 0.947368 0.093750 +vt 0.973684 0.093750 +vt 0.947368 0.117188 +vt 0.973684 0.117188 +vt 0.947368 0.140625 +vt 0.973684 0.140625 +vt 0.947368 0.164062 +vt 0.973684 0.164062 +vt 0.375000 0.843750 +vt 0.309211 0.828125 +vt 0.375000 0.828125 +vt 0.375000 0.937500 +vt 0.309211 0.921875 +vt 0.375000 0.921875 +vt 0.375000 0.906250 +vt 0.309211 0.890625 +vt 0.375000 0.890625 +vt 0.375000 0.875000 +vt 0.309211 0.859375 +vt 0.375000 0.859375 +vt 0.309211 0.812500 +vt 0.375000 0.812500 +vt 0.309211 0.906250 +vt 0.309211 0.875000 +vt 0.309211 0.843750 +vt 0.842105 -0.000000 +vt 0.796053 0.039062 +vt 0.796053 0.000000 +vt 0.842105 0.039062 +vt 0.796053 0.078125 +vt 0.842105 0.078125 +vt 0.796053 0.117188 +vt 0.842105 0.117188 +vt 0.796053 0.156250 +vt 0.842105 0.156250 +vt 0.796053 0.195312 +vt 0.842105 0.195312 +vt 0.796053 0.234375 +vt 0.842105 0.234375 +vt 0.796053 0.273438 +vt 0.842105 0.273438 +vt 0.796053 0.312500 +vt 0.092105 0.242188 +vt 0.092105 0.277344 +vt 0.092105 0.312500 +vt 0.092105 0.347656 +vt 0.092105 0.382812 +vt 0.092105 0.386719 +vt 0.092105 0.453125 +vt 0.092105 0.457031 +vt 0.092105 0.523438 +vt 0.092105 0.558594 +vt 0.092105 0.035156 +vt 0.092105 0.070312 +vt 0.092105 0.136719 +vt 0.092105 0.171875 +vt 0.092105 0.207031 +vt 0.197368 0.160156 +vt 0.197368 0.214844 +vt 0.197368 0.246094 +vt 0.197368 0.277344 +vt 0.197368 0.308594 +vt 0.197368 0.316406 +vt 0.197368 0.347656 +vt 0.197368 0.402344 +vt 0.197368 0.433594 +vt 0.197368 0.441406 +vt 0.197368 0.472656 +vt 0.197368 0.003906 +vt 0.197368 0.035156 +vt 0.197368 0.089844 +vt 0.197368 0.097656 +vt 0.197368 0.152344 +vt 0.480263 0.500000 +vt 1.000000 0.375000 +vt 0.973684 0.375000 +vt 0.973684 0.046875 +vt 0.309211 0.937500 +vt 0.842105 0.312500 +vn -0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.9762 0.2169 +vn 0.0000 0.9762 -0.2169 +vn 0.0000 -1.0000 0.0000 +vn 0.8944 -0.4472 0.0000 +vn -0.8944 -0.4472 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 1.0000 0.0000 +vn -0.4082 0.4082 -0.8165 +vn 0.0000 -0.7071 -0.7071 +vn 0.4082 0.4082 -0.8165 +vn -0.7071 0.0000 0.7071 +vn 0.4472 0.0000 -0.8944 +vn 0.3333 -0.6667 -0.6667 +vn -0.4472 0.0000 -0.8944 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.4472 -0.8944 +vn 0.5774 0.5774 0.5774 +vn -0.5774 0.5774 0.5774 +vn -0.3333 -0.6667 -0.6667 +vn 0.8944 0.0000 0.4472 +vn 0.3162 0.0000 -0.9487 +vn 0.3162 0.0000 0.9487 +vn 0.3511 -0.9363 0.0000 +vn 0.3511 0.9363 0.0000 +vn 0.8944 0.0000 -0.4472 +vn -0.8944 0.0000 0.4472 +vn -0.3162 0.0000 -0.9487 +vn -0.3162 0.0000 0.9487 +vn -0.3511 -0.9363 0.0000 +vn -0.3511 0.9363 0.0000 +vn -0.8944 0.0000 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.6325 0.6325 -0.4472 +vn 0.3423 0.8263 -0.4472 +vn -0.0000 0.8944 -0.4472 +vn -0.3423 0.8263 -0.4472 +vn -0.6325 0.6325 -0.4472 +vn -0.8263 0.3423 -0.4472 +vn -0.8263 -0.3423 -0.4472 +vn -0.6325 -0.6325 -0.4472 +vn -0.3423 -0.8263 -0.4472 +vn -0.0000 -0.8944 -0.4472 +vn 0.3423 -0.8263 -0.4472 +vn 0.6325 -0.6325 -0.4472 +vn 0.8263 -0.3423 -0.4472 +vn 0.8263 0.3423 -0.4472 +vn 0.0000 -0.7071 0.7071 +vn 0.9808 -0.1951 0.0000 +vn -0.9808 -0.1951 0.0000 +s off +f 967/1191/39 963/1192/39 959/1193/39 +f 978/1194/40 974/1195/40 973/1196/40 +f 1180/1197/41 1181/1198/41 1179/1199/41 +f 977/1200/42 974/1201/42 978/1202/42 +f 977/1203/41 972/1204/41 971/1205/41 +f 972/1206/43 978/1207/43 976/1208/43 +f 981/1209/44 980/1210/44 979/1211/44 +f 973/1196/45 981/1209/45 975/1212/45 +f 1181/1213/41 1182/1214/41 1188/1215/41 +f 971/1205/46 980/1210/46 969/1216/46 +f 899/1217/47 901/1218/47 889/1219/47 +f 993/1220/41 997/1221/41 989/1222/41 +f 986/1223/48 983/1224/48 984/1225/48 +f 988/1226/49 985/1227/49 986/1223/49 +f 998/1228/40 994/1229/40 990/1230/40 +f 983/1231/39 992/1232/39 984/1233/39 +f 994/1229/50 995/1234/50 993/1235/50 +f 996/1236/39 997/1237/39 995/1238/39 +f 991/1239/50 1000/1240/50 992/1232/50 +f 999/1241/47 1002/1242/47 1000/1240/47 +f 1002/1243/50 997/1244/50 998/1245/50 +f 990/1230/47 993/1246/47 989/1247/47 +f 999/1248/41 983/1249/41 1001/1250/41 +f 1000/1240/40 984/1233/40 992/1232/40 +f 987/1251/41 989/1222/41 997/1221/41 +f 998/1228/40 990/1230/40 988/1226/40 +f 1021/1252/39 1023/1253/39 1020/1254/39 +f 1030/1255/51 1032/1256/51 1021/1252/51 +f 1025/1257/40 1035/1258/40 1036/1259/40 +f 1023/1253/52 1039/1260/52 1020/1254/52 +f 1025/1261/53 1033/1262/53 1035/1263/53 +f 1040/1264/54 1029/1265/54 1046/1266/54 +f 1024/1267/55 1026/1268/55 1023/1253/55 +f 1037/1269/41 1038/1270/41 1030/1271/41 +f 1026/1268/56 1041/1272/56 1023/1253/56 +f 1020/1254/57 1030/1255/57 1021/1252/57 +f 1034/1273/50 1036/1259/50 1033/1262/50 +f 1042/1274/58 1027/1275/58 1022/1276/58 +f 1022/1276/59 1031/1277/59 1019/1278/59 +f 1021/1252/60 1033/1262/60 1024/1267/60 +f 1027/1275/61 1034/1273/61 1022/1276/61 +f 1029/1265/62 1031/1277/62 1037/1279/62 +f 1042/1280/44 1041/1272/44 1043/1281/44 +f 1028/1282/63 1039/1260/63 1045/1283/63 +f 1040/1264/47 1022/1276/47 1019/1278/47 +f 1053/1284/64 1056/1285/64 1052/1286/64 +f 1049/1287/65 1054/1288/65 1050/1289/65 +f 1048/1290/66 1052/1286/66 1047/1291/66 +f 1050/1292/44 1053/1293/44 1048/1294/44 +f 1047/1295/50 1051/1296/50 1049/1297/50 +f 1057/1298/40 1055/1299/40 1056/1285/40 +f 1054/1300/67 1057/1298/67 1053/1293/67 +f 1052/1301/68 1055/1299/68 1051/1296/68 +f 1051/1302/69 1058/1303/69 1054/1288/69 +f 1068/1304/70 1065/1305/70 1064/1306/70 +f 1066/1307/71 1061/1308/71 1062/1309/71 +f 1064/1306/72 1060/1310/72 1059/1311/72 +f 1065/1312/44 1062/1313/44 1060/1314/44 +f 1063/1315/50 1059/1316/50 1061/1317/50 +f 1067/1318/41 1069/1319/41 1068/1304/41 +f 1065/1312/73 1070/1320/73 1066/1321/73 +f 1063/1315/74 1068/1304/74 1064/1322/74 +f 1066/1307/75 1067/1318/75 1063/1323/75 +f 1080/1324/47 1076/1325/47 1092/1326/47 +f 1085/1327/39 1093/1328/39 1101/1329/39 +f 1108/1330/47 1132/1331/47 1124/1332/47 +f 1117/1333/39 1125/1334/39 1133/1335/39 +f 1136/1336/41 1137/1337/41 1135/1338/41 +f 1138/1339/39 1141/1340/39 1137/1337/39 +f 1142/1341/40 1139/1342/40 1141/1343/40 +f 1141/1344/44 1135/1338/44 1137/1337/44 +f 1138/1339/50 1140/1345/50 1142/1341/50 +f 1159/1346/54 1136/1336/54 1135/1338/54 +f 1162/1347/76 1166/1348/76 1164/1349/76 +f 1161/1350/41 1168/1351/41 1162/1352/41 +f 1140/1353/39 1162/1354/39 1139/1355/39 +f 1159/1346/47 1163/1356/47 1160/1357/47 +f 1163/1356/77 1161/1358/77 1140/1353/77 +f 1166/1359/58 1163/1356/58 1164/1349/58 +f 1167/1360/78 1170/1361/78 1168/1362/78 +f 1162/1363/44 1170/1361/44 1166/1359/44 +f 1161/1350/50 1169/1364/50 1167/1365/50 +f 1166/1359/40 1169/1364/40 1165/1366/40 +f 971/1367/39 972/1206/39 976/1208/39 +f 1175/1368/44 1177/1369/44 1176/1370/44 +f 1174/1371/52 1175/1368/52 1173/1372/52 +f 1171/1373/47 1177/1369/47 1172/1374/47 +f 1172/1375/40 1178/1376/40 1174/1377/40 +f 1171/1378/41 1175/1368/41 1176/1370/41 +f 1186/1379/40 1183/1380/40 1185/1381/40 +f 1185/1381/44 1179/1382/44 1181/1383/44 +f 1182/1384/50 1184/1385/50 1186/1379/50 +f 1202/1386/48 1204/1387/48 1198/1388/48 +f 1186/1389/40 1185/1390/40 1189/1391/40 +f 1188/1215/41 1192/1392/41 1181/1213/41 +f 1211/1393/40 1190/1394/40 1216/1395/40 +f 1194/1396/39 1193/1397/39 1214/1398/39 +f 1181/1399/47 1191/1400/47 1185/1390/47 +f 1189/1391/39 1194/1401/39 1188/1215/39 +f 1185/1390/40 1193/1402/40 1189/1391/40 +f 1196/1403/41 1197/1404/41 1195/1405/41 +f 1197/1406/41 1198/1407/41 1204/1387/41 +f 1202/1386/40 1199/1408/40 1201/1409/40 +f 1201/1410/44 1195/1405/44 1197/1404/44 +f 1198/1388/50 1200/1411/50 1202/1386/50 +f 1191/1400/79 1214/1398/79 1193/1402/79 +f 1202/1412/40 1201/1413/40 1205/1414/40 +f 1204/1387/41 1208/1415/41 1197/1406/41 +f 1218/1416/41 1203/1417/41 1213/1418/41 +f 1213/1419/39 1206/1420/39 1211/1421/39 +f 1197/1406/47 1207/1422/47 1201/1423/47 +f 1205/1414/39 1210/1424/39 1204/1387/39 +f 1201/1413/40 1209/1425/40 1205/1414/40 +f 1210/1424/80 1215/1426/80 1208/1415/80 +f 1190/1394/50 1203/1417/50 1187/1427/50 +f 1207/1428/47 1208/1429/47 1215/1426/47 +f 1209/1430/50 1192/1431/50 1194/1396/50 +f 1191/1432/47 1192/1433/47 1212/1434/47 +f 1215/1426/47 1192/1433/47 1207/1428/47 +f 1210/1435/39 1209/1430/39 1217/1436/39 +f 1214/1398/39 1209/1430/39 1194/1396/39 +f 1212/1434/44 1217/1436/44 1214/1398/44 +f 1186/1379/48 1188/1215/48 1182/1384/48 +f 1216/1437/47 1187/1427/47 1218/1438/47 +f 1220/1439/50 1221/1440/50 1219/1441/50 +f 1223/1442/44 1225/1443/44 1224/1444/44 +f 1220/1439/40 1226/1445/40 1222/1446/40 +f 1221/1440/41 1224/1447/41 1219/1441/41 +f 1222/1446/39 1223/1442/39 1221/1440/39 +f 1219/1441/47 1225/1448/47 1220/1439/47 +f 1230/1449/47 1233/1450/47 1229/1451/47 +f 1227/1452/39 1232/1453/39 1228/1454/39 +f 1228/1454/44 1234/1455/44 1230/1449/44 +f 1229/1451/50 1231/1456/50 1227/1457/50 +f 1232/1453/79 1238/1458/79 1234/1455/79 +f 1233/1459/81 1235/1460/81 1231/1461/81 +f 1236/1462/40 1242/1463/40 1238/1458/40 +f 1237/1464/41 1239/1465/41 1235/1466/41 +f 1241/1467/80 1243/1468/80 1239/1469/80 +f 1240/1470/82 1246/1471/82 1242/1463/82 +f 1235/1472/39 1232/1453/39 1231/1473/39 +f 1235/1474/39 1240/1470/39 1236/1462/39 +f 1245/1475/39 1239/1476/39 1243/1477/39 +f 1234/1455/47 1237/1478/47 1233/1459/47 +f 1241/1479/47 1238/1458/47 1242/1463/47 +f 1242/1463/47 1244/1480/47 1241/1467/47 +f 1269/1481/39 1267/1482/39 1270/1483/39 +f 1272/1484/47 1248/1485/47 1271/1486/47 +f 1271/1486/50 1270/1483/50 1272/1484/50 +f 1251/1487/39 1255/1488/39 1259/1489/39 +f 1256/1490/47 1254/1491/47 1250/1492/47 +f 973/1493/47 974/1201/47 970/1494/47 +f 955/1495/39 954/1496/39 953/1497/39 +f 953/1497/39 968/1498/39 955/1495/39 +f 968/1498/39 967/1191/39 955/1495/39 +f 967/1191/39 966/1499/39 965/1500/39 +f 965/1500/39 964/1501/39 967/1191/39 +f 964/1501/39 963/1192/39 967/1191/39 +f 963/1192/39 962/1502/39 959/1193/39 +f 962/1502/39 961/1503/39 959/1193/39 +f 961/1503/39 960/1504/39 959/1193/39 +f 959/1193/39 958/1505/39 957/1506/39 +f 957/1506/39 956/1507/39 955/1495/39 +f 959/1193/39 957/1506/39 955/1495/39 +f 955/1495/39 967/1191/39 959/1193/39 +f 973/1196/40 975/1212/40 978/1194/40 +f 975/1212/40 976/1508/40 978/1194/40 +f 1180/1197/41 1182/1384/41 1181/1198/41 +f 977/1200/42 970/1494/42 974/1201/42 +f 971/1205/41 969/1216/41 977/1203/41 +f 969/1216/41 970/1509/41 977/1203/41 +f 972/1206/43 977/1510/43 978/1207/43 +f 981/1209/44 982/1511/44 980/1210/44 +f 973/1196/45 982/1511/45 981/1209/45 +f 971/1205/46 979/1211/46 980/1210/46 +f 889/1219/47 890/1512/47 891/1513/47 +f 891/1513/47 892/1514/47 889/1219/47 +f 892/1514/47 893/1515/47 889/1219/47 +f 893/1515/47 894/1516/47 895/1517/47 +f 895/1517/47 896/1518/47 897/1519/47 +f 897/1519/47 898/1520/47 899/1217/47 +f 899/1217/47 900/1521/47 901/1218/47 +f 901/1218/47 902/1522/47 889/1219/47 +f 902/1522/47 903/1523/47 889/1219/47 +f 903/1523/47 904/1524/47 889/1219/47 +f 893/1515/47 895/1517/47 889/1219/47 +f 895/1517/47 897/1519/47 889/1219/47 +f 897/1519/47 899/1217/47 889/1219/47 +f 993/1220/41 995/1525/41 997/1221/41 +f 986/1223/48 985/1227/48 983/1224/48 +f 988/1226/49 987/1526/49 985/1227/49 +f 998/1228/40 996/1236/40 994/1229/40 +f 983/1231/39 991/1527/39 992/1232/39 +f 994/1229/50 996/1236/50 995/1234/50 +f 996/1236/39 998/1228/39 997/1237/39 +f 991/1239/50 999/1528/50 1000/1240/50 +f 999/1241/47 1001/1529/47 1002/1242/47 +f 1002/1243/50 1001/1530/50 997/1244/50 +f 990/1230/47 994/1229/47 993/1246/47 +f 999/1248/41 991/1531/41 983/1249/41 +f 1000/1240/40 1002/1242/40 984/1233/40 +f 997/1221/41 1001/1250/41 987/1251/41 +f 1001/1250/41 983/1249/41 987/1251/41 +f 983/1249/41 985/1532/41 987/1251/41 +f 986/1533/40 984/1233/40 988/1226/40 +f 984/1233/40 1002/1242/40 988/1226/40 +f 1002/1242/40 998/1228/40 988/1226/40 +f 1021/1252/39 1024/1267/39 1023/1253/39 +f 1030/1255/51 1038/1534/51 1032/1256/51 +f 1036/1259/40 1027/1535/40 1025/1257/40 +f 1027/1535/40 1043/1536/40 1044/1537/40 +f 1026/1538/40 1027/1535/40 1044/1537/40 +f 1026/1538/40 1025/1257/40 1027/1535/40 +f 1023/1253/52 1041/1272/52 1039/1260/52 +f 1025/1261/53 1024/1267/53 1033/1262/53 +f 1040/1264/54 1019/1278/54 1029/1265/54 +f 1024/1267/55 1025/1261/55 1026/1268/55 +f 1030/1271/41 1028/1539/41 1029/1540/41 +f 1028/1539/41 1045/1541/41 1029/1540/41 +f 1045/1541/41 1046/1542/41 1029/1540/41 +f 1029/1540/41 1037/1269/41 1030/1271/41 +f 1026/1268/56 1044/1543/56 1041/1272/56 +f 1020/1254/57 1028/1282/57 1030/1255/57 +f 1035/1258/50 1033/1262/50 1036/1259/50 +f 1033/1262/50 1032/1256/50 1034/1273/50 +f 1032/1256/50 1038/1270/50 1037/1269/50 +f 1037/1269/50 1031/1277/50 1032/1256/50 +f 1031/1277/50 1034/1273/50 1032/1256/50 +f 1042/1274/58 1043/1544/58 1027/1275/58 +f 1022/1276/59 1034/1273/59 1031/1277/59 +f 1021/1252/60 1032/1256/60 1033/1262/60 +f 1027/1275/61 1036/1545/61 1034/1273/61 +f 1029/1265/62 1019/1278/62 1031/1277/62 +f 1042/1280/44 1040/1546/44 1039/1260/44 +f 1040/1546/44 1046/1547/44 1039/1260/44 +f 1046/1547/44 1045/1548/44 1039/1260/44 +f 1039/1260/44 1041/1272/44 1042/1280/44 +f 1041/1272/44 1044/1549/44 1043/1281/44 +f 1028/1282/63 1020/1254/63 1039/1260/63 +f 1040/1264/47 1042/1274/47 1022/1276/47 +f 1053/1284/64 1057/1298/64 1056/1285/64 +f 1049/1287/65 1051/1302/65 1054/1288/65 +f 1048/1290/66 1053/1284/66 1052/1286/66 +f 1050/1292/44 1054/1300/44 1053/1293/44 +f 1047/1295/50 1052/1301/50 1051/1296/50 +f 1057/1298/40 1058/1303/40 1055/1299/40 +f 1054/1300/67 1058/1303/67 1057/1298/67 +f 1052/1301/68 1056/1285/68 1055/1299/68 +f 1051/1302/69 1055/1299/69 1058/1303/69 +f 1068/1304/70 1069/1319/70 1065/1305/70 +f 1066/1307/71 1063/1323/71 1061/1308/71 +f 1064/1306/72 1065/1305/72 1060/1310/72 +f 1065/1312/44 1066/1321/44 1062/1313/44 +f 1063/1315/50 1064/1322/50 1059/1316/50 +f 1067/1318/41 1070/1320/41 1069/1319/41 +f 1065/1312/73 1069/1319/73 1070/1320/73 +f 1063/1315/74 1067/1318/74 1068/1304/74 +f 1066/1307/75 1070/1320/75 1067/1318/75 +f 1076/1325/47 1074/1550/47 1072/1551/47 +f 1072/1551/47 1102/1552/47 1100/1553/47 +f 1100/1553/47 1098/1554/47 1096/1555/47 +f 1096/1555/47 1094/1556/47 1092/1326/47 +f 1092/1326/47 1090/1557/47 1088/1558/47 +f 1088/1558/47 1086/1559/47 1084/1560/47 +f 1084/1560/47 1082/1561/47 1080/1324/47 +f 1080/1324/47 1078/1562/47 1076/1325/47 +f 1076/1325/47 1072/1551/47 1092/1326/47 +f 1072/1551/47 1100/1553/47 1092/1326/47 +f 1100/1553/47 1096/1555/47 1092/1326/47 +f 1092/1326/47 1088/1558/47 1084/1560/47 +f 1084/1560/47 1080/1324/47 1092/1326/47 +f 1101/1329/39 1071/1563/39 1077/1564/39 +f 1071/1563/39 1073/1565/39 1077/1564/39 +f 1073/1565/39 1075/1566/39 1077/1564/39 +f 1077/1564/39 1079/1567/39 1085/1327/39 +f 1079/1567/39 1081/1568/39 1085/1327/39 +f 1081/1568/39 1083/1569/39 1085/1327/39 +f 1085/1327/39 1087/1570/39 1089/1571/39 +f 1089/1571/39 1091/1572/39 1085/1327/39 +f 1091/1572/39 1093/1328/39 1085/1327/39 +f 1093/1328/39 1095/1573/39 1101/1329/39 +f 1095/1573/39 1097/1574/39 1101/1329/39 +f 1097/1574/39 1099/1575/39 1101/1329/39 +f 1101/1329/39 1077/1564/39 1085/1327/39 +f 1108/1330/47 1106/1576/47 1132/1331/47 +f 1106/1576/47 1104/1577/47 1132/1331/47 +f 1104/1577/47 1134/1578/47 1132/1331/47 +f 1132/1331/47 1130/1579/47 1128/1580/47 +f 1128/1580/47 1126/1581/47 1132/1331/47 +f 1126/1581/47 1124/1332/47 1132/1331/47 +f 1124/1332/47 1122/1582/47 1120/1583/47 +f 1120/1583/47 1118/1584/47 1116/1585/47 +f 1116/1585/47 1114/1586/47 1112/1587/47 +f 1112/1587/47 1110/1588/47 1108/1330/47 +f 1124/1332/47 1120/1583/47 1116/1585/47 +f 1116/1585/47 1112/1587/47 1124/1332/47 +f 1112/1587/47 1108/1330/47 1124/1332/47 +f 1133/1335/39 1103/1589/39 1105/1590/39 +f 1105/1590/39 1107/1591/39 1109/1592/39 +f 1109/1592/39 1111/1593/39 1117/1333/39 +f 1111/1593/39 1113/1594/39 1117/1333/39 +f 1113/1594/39 1115/1595/39 1117/1333/39 +f 1117/1333/39 1119/1596/39 1125/1334/39 +f 1119/1596/39 1121/1597/39 1125/1334/39 +f 1121/1597/39 1123/1598/39 1125/1334/39 +f 1125/1334/39 1127/1599/39 1129/1600/39 +f 1129/1600/39 1131/1601/39 1133/1335/39 +f 1133/1335/39 1105/1590/39 1109/1592/39 +f 1125/1334/39 1129/1600/39 1133/1335/39 +f 1133/1335/39 1109/1592/39 1117/1333/39 +f 1136/1336/41 1138/1339/41 1137/1337/41 +f 1138/1339/39 1142/1602/39 1141/1340/39 +f 1142/1341/40 1140/1345/40 1139/1342/40 +f 1141/1344/44 1139/1603/44 1135/1338/44 +f 1138/1339/50 1136/1336/50 1140/1345/50 +f 1159/1346/54 1160/1357/54 1136/1336/54 +f 1164/1349/76 1159/1346/76 1139/1604/76 +f 1159/1346/76 1135/1605/76 1139/1604/76 +f 1139/1604/76 1162/1347/76 1164/1349/76 +f 1161/1350/41 1167/1365/41 1168/1351/41 +f 1140/1353/39 1161/1358/39 1162/1354/39 +f 1159/1346/47 1164/1349/47 1163/1356/47 +f 1136/1606/77 1160/1357/77 1140/1353/77 +f 1160/1357/77 1163/1356/77 1140/1353/77 +f 1163/1356/77 1165/1607/77 1161/1358/77 +f 1166/1359/58 1165/1366/58 1163/1356/58 +f 1167/1360/78 1169/1364/78 1170/1361/78 +f 1162/1363/44 1168/1608/44 1170/1361/44 +f 1161/1350/50 1165/1366/50 1169/1364/50 +f 1166/1359/40 1170/1361/40 1169/1364/40 +f 976/1208/39 975/1609/39 971/1367/39 +f 975/1609/39 981/1209/39 971/1367/39 +f 981/1209/39 979/1211/39 971/1367/39 +f 1175/1368/44 1178/1376/44 1177/1369/44 +f 1174/1371/52 1178/1376/52 1175/1368/52 +f 1171/1373/47 1176/1370/47 1177/1369/47 +f 1172/1375/40 1177/1369/40 1178/1376/40 +f 1171/1378/41 1173/1610/41 1175/1368/41 +f 1186/1379/40 1184/1385/40 1183/1380/40 +f 1185/1381/44 1183/1380/44 1179/1382/44 +f 1182/1384/50 1180/1197/50 1184/1385/50 +f 1202/1386/48 1205/1414/48 1204/1387/48 +f 1188/1215/41 1194/1401/41 1192/1392/41 +f 1211/1393/40 1206/1420/40 1190/1394/40 +f 1181/1399/47 1192/1611/47 1191/1400/47 +f 1189/1391/39 1193/1402/39 1194/1401/39 +f 1185/1390/40 1191/1400/40 1193/1402/40 +f 1196/1403/41 1198/1388/41 1197/1404/41 +f 1202/1386/40 1200/1411/40 1199/1408/40 +f 1201/1410/44 1199/1612/44 1195/1405/44 +f 1198/1388/50 1196/1403/50 1200/1411/50 +f 1191/1400/79 1212/1434/79 1214/1398/79 +f 1204/1387/41 1210/1424/41 1208/1415/41 +f 1218/1416/41 1187/1427/41 1203/1417/41 +f 1213/1419/39 1203/1417/39 1206/1420/39 +f 1197/1406/47 1208/1415/47 1207/1422/47 +f 1205/1414/39 1209/1425/39 1210/1424/39 +f 1201/1413/40 1207/1613/40 1209/1425/40 +f 1210/1424/80 1217/1436/80 1215/1426/80 +f 1190/1394/50 1206/1420/50 1203/1417/50 +f 1209/1430/50 1207/1614/50 1192/1431/50 +f 1215/1426/47 1212/1434/47 1192/1433/47 +f 1214/1398/39 1217/1436/39 1209/1430/39 +f 1212/1434/44 1215/1426/44 1217/1436/44 +f 1186/1379/48 1189/1391/48 1188/1215/48 +f 1216/1437/47 1190/1394/47 1187/1427/47 +f 1220/1439/50 1222/1446/50 1221/1440/50 +f 1223/1442/44 1226/1615/44 1225/1443/44 +f 1220/1439/40 1225/1616/40 1226/1445/40 +f 1221/1440/41 1223/1617/41 1224/1447/41 +f 1222/1446/39 1226/1615/39 1223/1442/39 +f 1219/1441/47 1224/1618/47 1225/1448/47 +f 1230/1449/47 1234/1455/47 1233/1450/47 +f 1227/1452/39 1231/1619/39 1232/1453/39 +f 1228/1454/44 1232/1453/44 1234/1455/44 +f 1229/1451/50 1233/1450/50 1231/1456/50 +f 1232/1453/79 1236/1462/79 1238/1458/79 +f 1233/1459/81 1237/1478/81 1235/1460/81 +f 1236/1462/40 1240/1470/40 1242/1463/40 +f 1237/1464/41 1241/1479/41 1239/1465/41 +f 1241/1467/80 1244/1480/80 1243/1468/80 +f 1240/1470/82 1245/1475/82 1246/1471/82 +f 1235/1472/39 1236/1462/39 1232/1453/39 +f 1235/1474/39 1239/1620/39 1240/1470/39 +f 1245/1475/39 1240/1470/39 1239/1476/39 +f 1234/1455/47 1238/1458/47 1237/1478/47 +f 1241/1479/47 1237/1464/47 1238/1458/47 +f 1242/1463/47 1246/1471/47 1244/1480/47 +f 1269/1481/39 1268/1621/39 1267/1482/39 +f 1272/1484/47 1247/1622/47 1248/1485/47 +f 1271/1486/50 1269/1481/50 1270/1483/50 +f 1265/1623/39 1249/1624/39 1251/1487/39 +f 1251/1487/39 1253/1625/39 1255/1488/39 +f 1255/1488/39 1257/1626/39 1259/1489/39 +f 1259/1489/39 1261/1627/39 1251/1487/39 +f 1261/1627/39 1263/1628/39 1251/1487/39 +f 1263/1628/39 1265/1623/39 1251/1487/39 +f 1254/1491/47 1252/1629/47 1250/1492/47 +f 1250/1492/47 1266/1630/47 1264/1631/47 +f 1264/1631/47 1262/1632/47 1250/1492/47 +f 1262/1632/47 1260/1633/47 1250/1492/47 +f 1260/1633/47 1258/1634/47 1250/1492/47 +f 1258/1634/47 1256/1490/47 1250/1492/47 +f 970/1494/47 969/1635/47 973/1493/47 +f 969/1635/47 980/1210/47 973/1493/47 +f 980/1210/47 982/1511/47 973/1493/47 +s 1 +f 918/1636/83 903/1637/82 902/1638/83 +f 911/1639/80 896/1640/84 895/1641/80 +f 919/1642/82 904/1643/85 903/1637/82 +f 912/1644/84 897/1645/44 896/1640/84 +f 905/1646/50 890/1647/86 889/1648/50 +f 920/1649/85 889/1648/50 904/1643/85 +f 913/1650/44 898/1651/87 897/1652/44 +f 906/1653/86 891/1654/81 890/1647/86 +f 914/1655/87 899/1656/79 898/1651/87 +f 907/1657/81 892/1658/88 891/1654/81 +f 915/1659/79 900/1660/89 899/1656/79 +f 908/1661/88 893/1662/41 892/1658/88 +f 916/1663/89 901/1664/40 900/1660/89 +f 909/1665/41 894/1666/90 893/1662/41 +f 917/1667/40 902/1638/83 901/1664/40 +f 910/1668/90 895/1641/80 894/1666/90 +f 935/1669/91 920/1649/92 919/1642/91 +f 936/1670/92 905/1646/93 920/1649/92 +f 921/1671/93 906/1653/94 905/1646/93 +f 922/1672/94 907/1657/95 906/1653/94 +f 923/1673/95 908/1661/96 907/1657/95 +f 908/1661/96 925/1674/75 909/1665/75 +f 925/1675/75 910/1668/97 909/1665/75 +f 910/1668/97 927/1676/98 911/1639/98 +f 927/1677/98 912/1644/99 911/1639/98 +f 928/1678/99 913/1679/100 912/1644/99 +f 929/1680/100 914/1655/101 913/1650/100 +f 914/1655/101 931/1681/102 915/1659/102 +f 915/1659/102 932/1682/103 916/1663/103 +f 932/1683/103 917/1667/69 916/1663/103 +f 933/1684/69 918/1636/104 917/1667/69 +f 934/1685/104 919/1642/91 918/1636/104 +f 923/1686/81 940/1687/88 924/1688/88 +f 931/1689/79 948/1690/89 932/1691/89 +f 924/1688/88 941/1692/41 925/1693/41 +f 932/1691/89 949/1694/40 933/1695/40 +f 925/1693/41 942/1696/90 926/1697/90 +f 933/1695/40 950/1698/83 934/1699/83 +f 926/1697/90 943/1700/80 927/1701/80 +f 934/1699/83 951/1702/82 935/1703/82 +f 927/1701/80 944/1704/84 928/1705/84 +f 935/1703/82 952/1706/85 936/1707/85 +f 928/1705/84 945/1708/44 929/1709/44 +f 921/1710/50 938/1711/86 922/1712/86 +f 936/1707/85 937/1713/50 921/1710/50 +f 929/1680/44 946/1714/87 930/1715/87 +f 922/1712/86 939/1716/81 923/1686/81 +f 930/1715/87 947/1717/79 931/1689/79 +f 950/1698/104 967/1718/91 951/1702/91 +f 967/1719/91 952/1706/92 951/1702/91 +f 968/1720/92 937/1713/93 952/1706/92 +f 953/1721/93 938/1711/94 937/1713/93 +f 954/1722/94 939/1716/95 938/1711/94 +f 939/1716/95 956/1723/96 940/1687/96 +f 940/1687/96 957/1724/75 941/1692/75 +f 957/1725/75 942/1696/97 941/1692/75 +f 958/1726/97 943/1700/98 942/1696/97 +f 943/1700/98 960/1727/99 944/1704/99 +f 944/1704/99 961/1728/100 945/1708/100 +f 945/1729/100 962/1730/101 946/1714/101 +f 946/1714/101 963/1731/102 947/1717/102 +f 963/1732/102 948/1690/103 947/1717/102 +f 948/1690/103 965/1733/69 949/1694/69 +f 965/1734/69 950/1698/104 949/1694/69 +f 1017/1735/40 1010/1736/82 1009/1737/40 +f 1015/1738/44 1008/1739/79 1007/1740/44 +f 1013/1741/41 1006/1742/80 1005/1743/41 +f 1011/1744/50 1004/1745/81 1003/1746/50 +f 1018/1747/82 1003/1746/50 1010/1736/82 +f 1016/1748/79 1009/1737/40 1008/1739/79 +f 1014/1749/80 1007/1750/44 1006/1742/80 +f 1012/1751/81 1005/1743/41 1004/1745/81 +f 1072/1752/50 1073/1753/85 1071/1754/50 +f 1074/1755/85 1075/1756/82 1073/1753/85 +f 1076/1757/82 1077/1758/83 1075/1756/82 +f 1078/1759/83 1079/1760/40 1077/1758/83 +f 1080/1761/40 1081/1762/89 1079/1760/40 +f 1082/1763/89 1083/1764/79 1081/1762/89 +f 1084/1765/79 1085/1766/87 1083/1764/79 +f 1086/1767/87 1087/1768/44 1085/1766/87 +f 1088/1769/44 1089/1770/84 1087/1771/44 +f 1090/1772/84 1091/1773/80 1089/1770/84 +f 1092/1774/80 1093/1775/90 1091/1773/80 +f 1094/1776/90 1095/1777/41 1093/1775/90 +f 1096/1778/41 1097/1779/88 1095/1777/41 +f 1098/1780/88 1099/1781/81 1097/1779/88 +f 1100/1782/81 1101/1783/86 1099/1781/81 +f 1102/1784/86 1071/1754/50 1101/1783/86 +f 1104/1785/50 1105/1786/85 1103/1787/50 +f 1106/1788/85 1107/1789/82 1105/1786/85 +f 1108/1790/82 1109/1791/83 1107/1789/82 +f 1110/1792/83 1111/1793/40 1109/1791/83 +f 1112/1794/40 1113/1795/89 1111/1793/40 +f 1114/1796/89 1115/1797/79 1113/1795/89 +f 1116/1798/79 1117/1799/87 1115/1797/79 +f 1118/1800/87 1119/1801/44 1117/1799/87 +f 1120/1802/44 1121/1803/84 1119/1804/44 +f 1122/1805/84 1123/1806/80 1121/1803/84 +f 1123/1806/80 1126/1807/90 1125/1808/90 +f 1126/1807/90 1127/1809/41 1125/1808/90 +f 1128/1810/41 1129/1811/88 1127/1809/41 +f 1130/1812/88 1131/1813/81 1129/1811/88 +f 1132/1814/81 1133/1815/86 1131/1813/81 +f 1134/1816/86 1103/1787/50 1133/1815/86 +f 1143/1817/39 1158/1818/52 1150/1819/52 +f 1149/1820/44 1156/1821/105 1148/1822/105 +f 1147/1823/47 1154/1824/59 1146/1825/59 +f 1145/1826/50 1152/1827/48 1144/1828/48 +f 1150/1819/52 1157/1829/44 1149/1830/44 +f 1148/1822/105 1155/1831/47 1147/1823/47 +f 1146/1825/59 1153/1832/50 1145/1826/50 +f 1144/1828/48 1151/1833/39 1143/1817/39 +f 1250/1834/106 1251/1835/89 1249/1836/106 +f 1252/1837/89 1253/1838/79 1251/1835/89 +f 1254/1839/79 1255/1840/87 1253/1838/79 +f 1256/1841/87 1257/1842/44 1255/1840/87 +f 1258/1843/44 1259/1844/84 1257/1842/44 +f 1260/1845/84 1261/1846/80 1259/1844/84 +f 1262/1847/80 1263/1848/90 1261/1846/80 +f 1264/1849/90 1265/1850/107 1263/1848/90 +f 918/1636/83 919/1642/82 903/1637/82 +f 911/1639/80 912/1644/84 896/1640/84 +f 919/1642/82 920/1649/85 904/1643/85 +f 912/1644/84 913/1679/44 897/1645/44 +f 905/1646/50 906/1653/86 890/1647/86 +f 920/1649/85 905/1646/50 889/1648/50 +f 913/1650/44 914/1655/87 898/1651/87 +f 906/1653/86 907/1657/81 891/1654/81 +f 914/1655/87 915/1659/79 899/1656/79 +f 907/1657/81 908/1661/88 892/1658/88 +f 915/1659/79 916/1663/89 900/1660/89 +f 908/1661/88 909/1665/41 893/1662/41 +f 916/1663/89 917/1667/40 901/1664/40 +f 909/1665/41 910/1668/90 894/1666/90 +f 917/1667/40 918/1636/83 902/1638/83 +f 910/1668/90 911/1639/80 895/1641/80 +f 935/1669/91 936/1851/92 920/1649/92 +f 936/1670/92 921/1852/93 905/1646/93 +f 921/1671/93 922/1853/94 906/1653/94 +f 922/1672/94 923/1854/95 907/1657/95 +f 923/1673/95 924/1855/96 908/1661/96 +f 908/1661/96 924/1856/96 925/1674/75 +f 925/1675/75 926/1857/97 910/1668/97 +f 910/1668/97 926/1858/97 927/1676/98 +f 927/1677/98 928/1859/99 912/1644/99 +f 928/1678/99 929/1860/100 913/1679/100 +f 929/1680/100 930/1715/101 914/1655/101 +f 914/1655/101 930/1861/101 931/1681/102 +f 915/1659/102 931/1862/102 932/1682/103 +f 932/1683/103 933/1863/69 917/1667/69 +f 933/1684/69 934/1864/104 918/1636/104 +f 934/1685/104 935/1865/91 919/1642/91 +f 923/1686/81 939/1716/81 940/1687/88 +f 931/1689/79 947/1717/79 948/1690/89 +f 924/1688/88 940/1687/88 941/1692/41 +f 932/1691/89 948/1690/89 949/1694/40 +f 925/1693/41 941/1692/41 942/1696/90 +f 933/1695/40 949/1694/40 950/1698/83 +f 926/1697/90 942/1696/90 943/1700/80 +f 934/1699/83 950/1698/83 951/1702/82 +f 927/1701/80 943/1700/80 944/1704/84 +f 935/1703/82 951/1702/82 952/1706/85 +f 928/1705/84 944/1704/84 945/1708/44 +f 921/1710/50 937/1713/50 938/1711/86 +f 936/1707/85 952/1706/85 937/1713/50 +f 929/1680/44 945/1729/44 946/1714/87 +f 922/1712/86 938/1711/86 939/1716/81 +f 930/1715/87 946/1714/87 947/1717/79 +f 950/1698/104 966/1866/104 967/1718/91 +f 967/1719/91 968/1867/92 952/1706/92 +f 968/1720/92 953/1868/93 937/1713/93 +f 953/1721/93 954/1869/94 938/1711/94 +f 954/1722/94 955/1870/95 939/1716/95 +f 939/1716/95 955/1871/95 956/1723/96 +f 940/1687/96 956/1872/96 957/1724/75 +f 957/1725/75 958/1873/97 942/1696/97 +f 958/1726/97 959/1874/98 943/1700/98 +f 943/1700/98 959/1875/98 960/1727/99 +f 944/1704/99 960/1876/99 961/1728/100 +f 945/1729/100 961/1877/100 962/1730/101 +f 946/1714/101 962/1878/101 963/1731/102 +f 963/1732/102 964/1879/103 948/1690/103 +f 948/1690/103 964/1880/103 965/1733/69 +f 965/1734/69 966/1881/104 950/1698/104 +f 1017/1735/40 1018/1747/82 1010/1736/82 +f 1015/1738/44 1016/1748/79 1008/1739/79 +f 1013/1741/41 1014/1749/80 1006/1742/80 +f 1011/1744/50 1012/1751/81 1004/1745/81 +f 1018/1747/82 1011/1744/50 1003/1746/50 +f 1016/1748/79 1017/1735/40 1009/1737/40 +f 1014/1749/80 1015/1882/44 1007/1750/44 +f 1012/1751/81 1013/1741/41 1005/1743/41 +f 1072/1752/50 1074/1755/85 1073/1753/85 +f 1074/1755/85 1076/1757/82 1075/1756/82 +f 1076/1757/82 1078/1759/83 1077/1758/83 +f 1078/1759/83 1080/1761/40 1079/1760/40 +f 1080/1761/40 1082/1763/89 1081/1762/89 +f 1082/1763/89 1084/1765/79 1083/1764/79 +f 1084/1765/79 1086/1767/87 1085/1766/87 +f 1086/1767/87 1088/1883/44 1087/1768/44 +f 1088/1769/44 1090/1772/84 1089/1770/84 +f 1090/1772/84 1092/1774/80 1091/1773/80 +f 1092/1774/80 1094/1776/90 1093/1775/90 +f 1094/1776/90 1096/1778/41 1095/1777/41 +f 1096/1778/41 1098/1780/88 1097/1779/88 +f 1098/1780/88 1100/1782/81 1099/1781/81 +f 1100/1782/81 1102/1784/86 1101/1783/86 +f 1102/1784/86 1072/1752/50 1071/1754/50 +f 1104/1785/50 1106/1788/85 1105/1786/85 +f 1106/1788/85 1108/1790/82 1107/1789/82 +f 1108/1790/82 1110/1792/83 1109/1791/83 +f 1110/1792/83 1112/1794/40 1111/1793/40 +f 1112/1794/40 1114/1796/89 1113/1795/89 +f 1114/1796/89 1116/1798/79 1115/1797/79 +f 1116/1798/79 1118/1800/87 1117/1799/87 +f 1118/1800/87 1120/1884/44 1119/1801/44 +f 1120/1802/44 1122/1805/84 1121/1803/84 +f 1122/1805/84 1124/1885/80 1123/1806/80 +f 1123/1806/80 1124/1885/80 1126/1807/90 +f 1126/1807/90 1128/1810/41 1127/1809/41 +f 1128/1810/41 1130/1812/88 1129/1811/88 +f 1130/1812/88 1132/1814/81 1131/1813/81 +f 1132/1814/81 1134/1816/86 1133/1815/86 +f 1134/1816/86 1104/1785/50 1103/1787/50 +f 1143/1817/39 1151/1833/39 1158/1818/52 +f 1149/1820/44 1157/1886/44 1156/1821/105 +f 1147/1823/47 1155/1831/47 1154/1824/59 +f 1145/1826/50 1153/1832/50 1152/1827/48 +f 1150/1819/52 1158/1818/52 1157/1829/44 +f 1148/1822/105 1156/1821/105 1155/1831/47 +f 1146/1825/59 1154/1824/59 1153/1832/50 +f 1144/1828/48 1152/1827/48 1151/1833/39 +f 1250/1834/106 1252/1837/89 1251/1835/89 +f 1252/1837/89 1254/1839/79 1253/1838/79 +f 1254/1839/79 1256/1841/87 1255/1840/87 +f 1256/1841/87 1258/1843/44 1257/1842/44 +f 1258/1843/44 1260/1845/84 1259/1844/84 +f 1260/1845/84 1262/1847/80 1261/1846/80 +f 1262/1847/80 1264/1849/90 1263/1848/90 +f 1264/1849/90 1266/1887/107 1265/1850/107 diff --git a/src/main/resources/assets/hbm/models/weapons/missile_launcher.obj b/src/main/resources/assets/hbm/models/weapons/missile_launcher.obj new file mode 100644 index 000000000..8818c225e --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/missile_launcher.obj @@ -0,0 +1,4495 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_launcher.blend' +# www.blender.org +o Front +v 0.000000 1.625000 1.687500 +v 0.312500 1.541266 1.687500 +v 0.541266 1.312500 1.687500 +v 0.625000 0.999999 1.687500 +v -0.500000 1.000000 2.187500 +v -0.433013 1.250000 2.187500 +v -0.250000 1.433012 2.187500 +v -0.250000 1.433012 1.687500 +v -0.433013 1.250000 1.687500 +v -0.625000 0.999999 1.687500 +v -0.541266 1.312500 1.687500 +v -0.312500 1.541266 1.687500 +v 0.000000 1.625000 2.187500 +v 0.312500 1.541266 2.187500 +v 0.541266 1.312500 2.187500 +v 0.625000 0.999999 2.187500 +v -0.500000 1.000000 1.687500 +v 0.500000 1.000000 1.687500 +v 0.433013 1.250000 1.687500 +v 0.250000 1.433012 1.687500 +v 0.000000 1.500000 1.687500 +v -0.625000 0.999999 2.187500 +v -0.541266 1.312500 2.187500 +v -0.312500 1.541266 2.187500 +v 0.500000 1.000000 2.187500 +v 0.433013 1.250000 2.187500 +v 0.250000 1.433012 2.187500 +v 0.000000 1.500000 2.187500 +v 0.000000 1.625000 6.437500 +v -0.250000 1.433012 6.437500 +v -0.433013 1.250000 6.437500 +v -0.500000 1.000000 6.437500 +v 0.312500 1.541266 6.437500 +v 0.541266 1.312500 6.437500 +v 0.625000 0.999999 6.437500 +v -0.625000 0.999999 6.437500 +v -0.541266 1.312500 6.437500 +v -0.312500 1.541266 6.437500 +v 0.500000 1.000000 6.437500 +v 0.433013 1.250000 6.437500 +v 0.250000 1.433012 6.437500 +v 0.000000 1.500000 6.437500 +v 0.541266 1.312500 6.562500 +v 0.312500 1.541266 6.562500 +v 0.000000 1.625000 6.562500 +v 0.000000 1.500000 6.562500 +v -0.250000 1.433012 6.562500 +v -0.433013 1.250000 6.562500 +v -0.500000 1.000000 6.562500 +v 0.500000 1.000000 6.562500 +v 0.433013 1.250000 6.562500 +v 0.625000 0.999999 6.562500 +v -0.541266 1.312500 6.562500 +v -0.625000 0.999999 6.562500 +v -0.312500 1.541266 6.562500 +v 0.250000 1.433012 6.562500 +v -0.433012 0.750000 1.687500 +v -0.250000 0.566987 1.687500 +v 0.541266 0.687500 1.687500 +v 0.312500 0.458734 1.687500 +v 0.000000 0.375000 1.687500 +v -0.312500 0.458734 1.687500 +v -0.541265 0.687499 1.687500 +v 0.000000 0.500000 1.687500 +v 0.250000 0.566987 1.687500 +v 0.433013 0.750000 1.687500 +v 0.541266 0.687500 6.562500 +v 0.312500 0.458734 6.562500 +v 0.000000 0.375000 6.562500 +v -0.312500 0.458734 6.562500 +v -0.541265 0.687499 6.562500 +v 0.433013 0.750000 6.562500 +v 0.250000 0.566987 6.562500 +v 0.000000 0.500000 6.562500 +v -0.250000 0.566987 6.562500 +v -0.433012 0.750000 6.562500 +v 0.625000 1.000000 1.687500 +v 0.750000 1.000000 1.687500 +v 0.625000 1.000000 6.437500 +v 0.750000 1.000000 6.437500 +v 0.500000 0.750000 1.812500 +v 0.750000 0.750000 1.812500 +v 0.500000 0.750000 6.437500 +v 0.750000 0.250000 1.687500 +v 0.750000 0.250000 3.125000 +v 0.500000 0.437500 3.125000 +v 0.750000 0.437500 3.125000 +v 0.500000 0.437500 1.812500 +v 0.750000 0.437500 1.812500 +v 0.500000 0.750000 3.125000 +v 0.750000 0.750000 3.125000 +v 0.500000 0.750000 3.625000 +v 0.750000 0.750000 3.625000 +v 0.750000 0.250000 3.625000 +v 0.750000 0.125000 3.250000 +v 0.750000 0.125000 3.500000 +v 0.541266 0.687500 1.687500 +v 0.312500 0.458734 1.687500 +v -0.625000 1.000000 1.687500 +v -0.750000 1.000000 1.687500 +v -0.625000 1.000000 6.437500 +v -0.750000 1.000000 6.437500 +v -0.500000 0.750000 1.812500 +v -0.750000 0.750000 1.812500 +v -0.500000 0.750000 6.437500 +v -0.750000 0.250000 1.687500 +v -0.750000 0.250000 3.125000 +v -0.500000 0.437500 3.125000 +v -0.750000 0.437500 3.125000 +v -0.500000 0.437500 1.812500 +v -0.750000 0.437500 1.812500 +v -0.500000 0.750000 3.125000 +v -0.750000 0.750000 3.125000 +v -0.500000 0.750000 3.625000 +v -0.750000 0.750000 3.625000 +v -0.750000 0.250000 3.625000 +v -0.750000 0.125000 3.250000 +v -0.750000 0.125000 3.500000 +v -0.541265 0.687500 1.687500 +v -0.312500 0.458734 1.687500 +v 0.000000 0.375000 1.687500 +v -0.250000 0.500000 3.625000 +v 0.250000 0.500000 3.625000 +v -0.062500 1.687500 6.500000 +v 0.062500 1.687500 6.500000 +v -0.062500 1.687500 6.000000 +v 0.062500 1.687500 6.000000 +v -0.062500 1.437500 5.500000 +v 0.062500 1.437500 5.500000 +v -0.062500 1.437500 6.500000 +v 0.062500 1.437500 6.500000 +v 0.564143 1.397877 6.500000 +v 0.626643 1.289623 6.500000 +v 0.564143 1.397877 6.000000 +v 0.626643 1.289623 6.000000 +v 0.347636 1.272877 5.500000 +v 0.410136 1.164623 5.500000 +v 0.347636 1.272877 6.500000 +v 0.410136 1.164623 6.500000 +v 0.289623 1.626642 6.500000 +v 0.397877 1.564142 6.500000 +v 0.289623 1.626642 6.000000 +v 0.397877 1.564142 6.000000 +v 0.164623 1.410136 5.500000 +v 0.272877 1.347636 5.500000 +v 0.164623 1.410136 6.500000 +v 0.272877 1.347636 6.500000 +v -0.397877 1.564142 6.500000 +v -0.289623 1.626642 6.500000 +v -0.397877 1.564142 6.000000 +v -0.289623 1.626642 6.000000 +v -0.272877 1.347636 5.500000 +v -0.164623 1.410136 5.500000 +v -0.272877 1.347636 6.500000 +v -0.164623 1.410136 6.500000 +v -0.626643 1.289623 6.500000 +v -0.564143 1.397877 6.500000 +v -0.626643 1.289623 6.000000 +v -0.564143 1.397877 6.000000 +v -0.410136 1.164623 5.500000 +v -0.347636 1.272877 5.500000 +v -0.410136 1.164623 6.500000 +v -0.347636 1.272877 6.500000 +v -0.750000 0.250000 5.687500 +v 0.750000 0.250000 5.687500 +v 0.750000 0.250000 6.437500 +v -0.750000 0.750000 5.687500 +v 0.750000 0.750000 5.687500 +v -0.750000 0.250000 6.437500 +v -0.250000 0.500000 6.437500 +v 0.250000 0.500000 6.437500 +v 0.500000 0.750000 5.687500 +v -0.500000 0.750000 5.687500 +v -0.250000 0.500000 5.687500 +v 0.250000 0.500000 5.687500 +v -0.250000 -0.000000 5.250000 +v 0.250000 -0.000000 5.250000 +v -0.250000 -0.000000 3.000000 +v 0.250000 -0.000000 3.000000 +v -0.500000 0.750000 5.250000 +v 0.500000 0.750000 5.250000 +v -0.500000 0.750000 3.000000 +v 0.500000 0.750000 3.000000 +v -0.250000 0.500000 5.250000 +v 0.250000 0.500000 5.250000 +v -0.250000 0.500000 3.000000 +v 0.250000 0.500000 3.000000 +v 0.408494 0.625000 4.187500 +v 0.375000 0.499999 4.187500 +v 0.408494 0.374999 4.187500 +v 0.500000 0.283493 4.187500 +v 0.625000 0.249999 4.187500 +v 0.750000 0.283493 4.187500 +v 0.841506 0.375000 4.187500 +v 0.875000 0.499999 4.187500 +v 0.841506 0.624999 4.187500 +v 0.750000 0.716506 4.187500 +v 0.625000 0.750000 4.187500 +v 0.500000 0.716506 4.187500 +v 0.375001 0.499999 5.687500 +v 0.408494 0.624999 5.687500 +v 0.408494 0.374999 5.687500 +v 0.500001 0.283493 5.687500 +v 0.625001 0.249999 5.687500 +v 0.750000 0.283493 5.687500 +v 0.841507 0.374999 5.687500 +v 0.875001 0.499999 5.687500 +v 0.841507 0.624999 5.687500 +v 0.750001 0.716505 5.687500 +v 0.625001 0.749999 5.687500 +v 0.500001 0.716505 5.687500 +v 0.570873 0.531250 4.187500 +v 0.562500 0.500000 4.187500 +v 0.570873 0.468749 4.187500 +v 0.593750 0.445873 4.187500 +v 0.625000 0.437499 4.187500 +v 0.656250 0.445873 4.187500 +v 0.679127 0.468749 4.187500 +v 0.687500 0.499999 4.187500 +v 0.679127 0.531249 4.187500 +v 0.656250 0.554126 4.187500 +v 0.625000 0.562500 4.187500 +v 0.593750 0.554126 4.187500 +v 0.570873 0.531250 3.625000 +v 0.562500 0.500000 3.625000 +v 0.570873 0.468749 3.625000 +v 0.593750 0.445873 3.625000 +v 0.625000 0.437499 3.625000 +v 0.656250 0.445873 3.625000 +v 0.679127 0.468749 3.625000 +v 0.687500 0.499999 3.625000 +v 0.679127 0.531249 3.625000 +v 0.656250 0.554126 3.625000 +v 0.625000 0.562500 3.625000 +v 0.593750 0.554126 3.625000 +v 0.437501 0.175240 5.312500 +v 0.492418 0.270359 5.577665 +v 0.625001 0.499999 5.687500 +v 0.757584 0.729639 5.577665 +v 0.812501 0.824759 5.312500 +v 1.535220 0.076546 4.599112 +v 2.602564 -1.074760 5.312500 +v 2.657482 -0.979640 5.577665 +v 2.790064 -0.750001 5.687500 +v 2.922647 -0.520361 5.577665 +v 2.977564 -0.425241 5.312500 +v 1.553526 0.108252 4.687500 +v 2.790065 -0.750001 5.625000 +v 2.900550 -0.558635 5.533471 +v 2.946315 -0.479368 5.312500 +v 1.535220 0.076546 4.775888 +v 1.491026 -0.000001 4.812500 +v 1.446832 -0.076547 4.775888 +v 2.633815 -1.020634 5.312500 +v 2.679579 -0.941367 5.533471 +v 0.625001 0.499999 5.625000 +v 0.735487 0.691365 5.533471 +v 0.781251 0.770632 5.312500 +v 1.428526 -0.108254 4.687500 +v 1.446832 -0.076547 4.599112 +v 1.491026 -0.000001 4.562500 +v 0.468751 0.229366 5.312500 +v 0.514516 0.308633 5.533471 +v 0.669195 0.576546 4.849112 +v 0.687501 0.608252 4.937500 +v 0.669195 0.576546 5.025888 +v 0.625001 0.499999 5.062500 +v 0.580807 0.423452 5.025888 +v 0.562501 0.391746 4.937500 +v 0.580807 0.423452 4.849112 +v 0.625001 0.499999 4.812500 +v 2.357052 -0.500001 4.812500 +v 2.401246 -0.423454 4.849112 +v 2.419552 -0.391748 4.937500 +v 2.401246 -0.423454 5.025888 +v 2.357052 -0.500001 5.062500 +v 2.312858 -0.576547 5.025888 +v 2.294552 -0.608254 4.937500 +v 2.312858 -0.576547 4.849112 +v 0.781250 0.999999 4.687500 +v 0.737056 0.999999 4.705806 +v 0.718750 0.999999 4.750000 +v 0.737056 0.999999 4.794194 +v 0.781250 0.999999 4.812500 +v 0.825444 0.999999 4.794194 +v 0.843750 0.999999 4.750000 +v 0.825444 0.999999 4.705806 +v 0.593750 1.187499 4.687500 +v 0.593750 1.143305 4.705806 +v 0.593750 1.124999 4.750000 +v 0.593750 1.143305 4.794194 +v 0.593750 1.187499 4.812500 +v 0.593750 1.231693 4.794194 +v 0.593750 1.249999 4.750000 +v 0.593750 1.231693 4.705806 +v 0.781250 0.499999 4.687500 +v 0.737056 0.499999 4.705806 +v 0.718750 0.499999 4.750000 +v 0.737056 0.499999 4.794194 +v 0.781250 0.499999 4.812500 +v 0.825444 0.499999 4.794194 +v 0.843750 0.499999 4.750000 +v 0.825444 0.499999 4.705806 +v 0.406250 1.187499 4.687500 +v 0.406250 1.143305 4.705806 +v 0.406250 1.124999 4.750000 +v 0.406250 1.143305 4.794194 +v 0.406250 1.187499 4.812500 +v 0.406250 1.231693 4.794194 +v 0.406250 1.249999 4.750000 +v 0.406250 1.231693 4.705806 +v 0.781250 0.999999 5.062500 +v 0.737056 0.999999 5.080806 +v 0.718750 0.999999 5.125000 +v 0.737056 0.999999 5.169194 +v 0.781250 0.999999 5.187500 +v 0.825444 0.999999 5.169194 +v 0.843750 0.999999 5.125000 +v 0.825444 0.999999 5.080806 +v 0.593750 1.187499 5.062500 +v 0.593750 1.143305 5.080806 +v 0.593750 1.124999 5.125000 +v 0.593750 1.143305 5.169194 +v 0.593750 1.187499 5.187500 +v 0.593750 1.231693 5.169194 +v 0.593750 1.249999 5.125000 +v 0.593750 1.231693 5.080806 +v 0.781250 0.499999 5.062500 +v 0.737056 0.499999 5.080806 +v 0.718750 0.499999 5.125000 +v 0.737056 0.499999 5.169194 +v 0.781250 0.499999 5.187500 +v 0.825444 0.499999 5.169194 +v 0.843750 0.499999 5.125000 +v 0.825444 0.499999 5.080806 +v 0.406250 1.187499 5.062500 +v 0.406250 1.143305 5.080806 +v 0.406250 1.124999 5.125000 +v 0.406250 1.143305 5.169194 +v 0.406250 1.187499 5.187500 +v 0.406250 1.231693 5.169194 +v 0.406250 1.249999 5.125000 +v 0.406250 1.231693 5.080806 +vt 0.185520 0.419753 +vt 0.180995 0.388889 +vt 0.185520 0.388889 +vt 0.180995 0.450617 +vt 0.185520 0.450617 +vt 0.185520 0.481481 +vt 0.180995 0.481481 +vt 0.185520 0.512346 +vt 0.180995 0.512346 +vt 0.185520 0.543210 +vt 0.180995 0.543210 +vt 0.180995 0.574074 +vt 0.185520 0.574074 +vt 0.158371 0.419753 +vt 0.162896 0.388889 +vt 0.162896 0.419753 +vt 0.162896 0.450617 +vt 0.158371 0.481481 +vt 0.162896 0.481481 +vt 0.158371 0.512346 +vt 0.162896 0.512346 +vt 0.158371 0.543210 +vt 0.162896 0.543210 +vt 0.162896 0.574074 +vt 0.158371 0.574074 +vt 0.009050 0.450617 +vt 0.013575 0.419753 +vt 0.013575 0.450617 +vt 0.009050 0.388889 +vt 0.013575 0.388889 +vt 0.013575 0.481481 +vt 0.009050 0.481481 +vt 0.013575 0.512346 +vt 0.013575 0.543210 +vt 0.009050 0.512346 +vt 0.009050 0.574074 +vt 0.013575 0.574074 +vt 0.004525 0.450617 +vt -0.000000 0.419753 +vt 0.004525 0.419753 +vt 0.004525 0.388889 +vt 0.000000 0.481481 +vt 0.004525 0.481481 +vt -0.000000 0.512346 +vt 0.004525 0.512346 +vt 0.000000 0.543210 +vt 0.004525 0.543210 +vt 0.004525 0.574074 +vt 0.000000 0.574074 +vt 0.162896 0.586420 +vt 0.162896 0.376543 +vt 0.185520 0.635802 +vt 0.180995 0.604938 +vt 0.185520 0.604938 +vt 0.180995 0.666667 +vt 0.185520 0.666667 +vt 0.185520 0.327161 +vt 0.180995 0.296296 +vt 0.185520 0.296296 +vt 0.180995 0.358025 +vt 0.180995 0.327161 +vt 0.185520 0.358025 +vt 0.004525 0.358025 +vt -0.000000 0.327161 +vt 0.004525 0.327161 +vt 0.004525 0.296296 +vt 0.004525 0.666667 +vt -0.000000 0.635802 +vt 0.004525 0.635802 +vt 0.004525 0.604938 +vt -0.000000 0.604938 +vt 0.000000 0.358025 +vt 0.000000 0.388889 +vt 0.212670 0.617284 +vt 0.384615 0.604938 +vt 0.384615 0.617284 +vt 0.296380 0.358025 +vt 0.248869 0.388889 +vt 0.248869 0.358025 +vt 0.248869 0.413580 +vt 0.296380 0.388889 +vt 0.296380 0.413580 +vt 0.384615 0.382716 +vt 0.389140 0.456790 +vt 0.384615 0.530864 +vt 0.332579 0.382716 +vt 0.332579 0.530864 +vt 0.248869 0.333333 +vt 0.305430 0.358025 +vt 0.305430 0.388889 +vt 0.380091 0.580247 +vt 0.380091 0.549383 +vt 0.239819 0.388889 +vt 0.106335 0.512346 +vt 0.124434 0.537037 +vt 0.106335 0.537037 +vt 0.124434 0.388889 +vt 0.128959 0.537037 +vt 0.138009 0.388889 +vt 0.142534 0.537037 +vt 0.138009 0.537037 +vt 0.314480 0.530864 +vt 0.319005 0.518519 +vt 0.332579 0.549383 +vt 0.128959 0.388889 +vt 0.212670 0.530864 +vt 0.239819 0.580247 +vt 0.212670 0.604938 +vt 0.040724 0.450617 +vt 0.031674 0.438272 +vt 0.040724 0.438272 +vt 0.384615 0.308642 +vt 0.212670 0.296296 +vt 0.384615 0.296296 +vt 0.296380 0.388889 +vt 0.248869 0.358025 +vt 0.296380 0.358025 +vt 0.248869 0.388889 +vt 0.296380 0.413580 +vt 0.248869 0.413580 +vt 0.296380 0.333333 +vt 0.239819 0.358025 +vt 0.239819 0.388889 +vt 0.380091 0.333333 +vt 0.380091 0.364198 +vt 0.305430 0.388889 +vt 0.319005 0.395062 +vt 0.314480 0.382716 +vt 0.332579 0.364198 +vt 0.239819 0.382716 +vt 0.212670 0.382716 +vt 0.058824 0.450617 +vt 0.411765 0.530864 +vt 0.400452 0.512346 +vt 0.058824 0.438272 +vt 0.076923 0.450617 +vt 0.400452 0.401235 +vt 0.411765 0.382716 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.040724 0.450617 +vt 0.031674 0.438272 +vt 0.040724 0.438272 +vt 0.058824 0.450617 +vt 0.058824 0.438272 +vt 0.076923 0.450617 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.040724 0.450617 +vt 0.031674 0.438272 +vt 0.040724 0.438272 +vt 0.058824 0.450617 +vt 0.058824 0.438272 +vt 0.076923 0.450617 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.040724 0.438272 +vt 0.031674 0.450617 +vt 0.031674 0.438272 +vt 0.058824 0.450617 +vt 0.040724 0.450617 +vt 0.058824 0.438272 +vt 0.076923 0.450617 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.040724 0.450617 +vt 0.031674 0.438272 +vt 0.040724 0.438272 +vt 0.058824 0.450617 +vt 0.076923 0.438272 +vt 0.076923 0.450617 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.058824 0.438272 +vt 0.203620 0.481481 +vt 0.203620 0.432099 +vt 0.031674 0.537037 +vt 0.031674 0.512346 +vt 0.031674 0.388889 +vt 0.106335 0.413580 +vt 0.031674 0.413580 +vt 0.194570 0.506173 +vt 0.185520 0.530864 +vt 0.185520 0.382716 +vt 0.194570 0.407407 +vt 0.314480 0.580247 +vt 0.332579 0.580247 +vt 0.332579 0.333333 +vt 0.314480 0.333333 +vt 0.013575 0.388889 +vt 0.108597 0.740741 +vt 0.027149 0.790123 +vt 0.027149 0.740741 +vt 0.108597 0.864198 +vt 0.108597 0.790123 +vt 0.027149 0.666667 +vt 0.126697 0.740741 +vt 0.009050 0.740741 +vt 0.678895 0.588520 +vt 0.674532 0.567901 +vt 0.687621 0.547283 +vt 0.687621 0.596665 +vt 0.687621 0.637903 +vt 0.674532 0.617284 +vt 0.934389 0.623457 +vt 0.843891 0.629630 +vt 0.843891 0.623457 +vt 0.843891 0.549383 +vt 0.934389 0.543210 +vt 0.934389 0.549383 +vt 0.843891 0.567901 +vt 0.841629 0.549383 +vt 0.841629 0.586420 +vt 0.841629 0.567901 +vt 0.843891 0.586420 +vt 0.841629 0.604938 +vt 0.843891 0.604938 +vt 0.936652 0.604938 +vt 0.934389 0.604938 +vt 0.936652 0.586420 +vt 0.934389 0.586420 +vt 0.936652 0.567901 +vt 0.934389 0.567901 +vt 0.936652 0.549383 +vt 0.846154 0.629542 +vt 0.849376 0.633184 +vt 0.842932 0.650765 +vt 0.013575 0.537037 +vt 0.022624 0.438272 +vt 0.106335 0.388889 +vt 0.239819 0.333333 +vt 0.212670 0.308642 +vt 0.115385 0.487654 +vt 0.180995 0.419753 +vt 0.158371 0.388889 +vt 0.158371 0.450617 +vt 0.009050 0.419753 +vt 0.009050 0.543210 +vt 0.000000 0.450617 +vt 0.009050 0.586420 +vt 0.009050 0.376543 +vt 0.180995 0.635802 +vt -0.000000 0.296296 +vt 0.000000 0.666667 +vt 0.391403 0.425926 +vt 0.391403 0.487654 +vt 0.296380 0.333333 +vt 0.239819 0.358025 +vt 0.142534 0.388889 +vt 0.328054 0.518519 +vt 0.239819 0.530864 +vt 0.031674 0.450617 +vt 0.248869 0.333333 +vt 0.305430 0.358025 +vt 0.328054 0.395062 +vt 0.411765 0.518519 +vt 0.076923 0.438272 +vt 0.411765 0.395062 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.031674 0.450617 +vt 0.076923 0.438272 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.031674 0.450617 +vt 0.076923 0.438272 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.076923 0.438272 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.031674 0.450617 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.185520 0.518519 +vt 0.185520 0.395062 +vt 0.027149 0.864198 +vt 0.108597 0.666667 +vt 0.126697 0.790123 +vt 0.135747 0.814815 +vt 0.135747 0.716049 +vt 0.000000 0.814815 +vt 0.009050 0.790123 +vt 0.000000 0.716049 +vt 0.690815 0.555997 +vt 0.691984 0.567902 +vt 0.690815 0.579806 +vt 0.687621 0.588520 +vt 0.683258 0.591710 +vt 0.675701 0.579806 +vt 0.675701 0.555997 +vt 0.678895 0.547283 +vt 0.683258 0.544093 +vt 0.675701 0.605380 +vt 0.678895 0.596665 +vt 0.683258 0.593476 +vt 0.690815 0.605380 +vt 0.691984 0.617284 +vt 0.690815 0.629188 +vt 0.683258 0.641092 +vt 0.678895 0.637903 +vt 0.675701 0.629188 +vt 0.934389 0.629630 +vt 0.843891 0.543210 +vt 0.841629 0.623457 +vt 0.936652 0.623457 +vt 0.850710 0.641974 +vt 0.849376 0.650765 +vt 0.846154 0.654407 +vt 0.841597 0.641974 +vt 0.842932 0.633184 +vt 0.022624 0.487654 +vt 0.115385 0.438272 +vt 0.746606 0.592593 +vt 0.692308 0.580247 +vt 0.746606 0.580247 +vt 0.746606 0.555556 +vt 0.692308 0.543210 +vt 0.746606 0.543210 +vt 0.746606 0.641975 +vt 0.692308 0.629630 +vt 0.746606 0.629630 +vt 0.746606 0.666667 +vt 0.692308 0.654321 +vt 0.746606 0.654321 +vt 0.746606 0.604938 +vt 0.692308 0.592593 +vt 0.746606 0.567901 +vt 0.692308 0.555556 +vt 0.692308 0.641975 +vt 0.746606 0.679012 +vt 0.692308 0.666667 +vt 0.746606 0.617284 +vt 0.692308 0.604938 +vt 0.692308 0.567901 +vt 0.746606 0.691358 +vt 0.692308 0.679012 +vt 0.692308 0.617284 +vt 0.692308 0.648148 +vt 0.671946 0.654321 +vt 0.671946 0.648148 +vt 0.692308 0.691358 +vt 0.671946 0.697531 +vt 0.671946 0.691358 +vt 0.692308 0.703704 +vt 0.671946 0.709877 +vt 0.671946 0.703704 +vt 0.692308 0.672840 +vt 0.671946 0.679012 +vt 0.671946 0.672840 +vt 0.692308 0.654321 +vt 0.671946 0.660494 +vt 0.692308 0.709877 +vt 0.671946 0.716049 +vt 0.692308 0.679012 +vt 0.671946 0.685185 +vt 0.692308 0.660494 +vt 0.671946 0.666667 +vt 0.692308 0.641975 +vt 0.671946 0.641975 +vt 0.692308 0.685185 +vt 0.692308 0.697531 +vt 0.692308 0.666667 +vt 0.886878 0.672840 +vt 0.923077 0.666667 +vt 0.923077 0.672840 +vt 0.843891 0.567901 +vt 0.934389 0.586420 +vt 0.934389 0.567901 +vt 0.843891 0.604938 +vt 0.934389 0.623457 +vt 0.934389 0.604938 +vt 0.843891 0.549383 +vt 0.934389 0.549383 +vt 0.850679 0.666667 +vt 0.886878 0.666667 +vt 0.886878 0.641975 +vt 0.850655 0.648888 +vt 0.850679 0.641975 +vt 0.886878 0.629630 +vt 0.850679 0.635802 +vt 0.850679 0.629630 +vt 0.850679 0.660494 +vt 0.886878 0.660494 +vt 0.886878 0.679012 +vt 0.850679 0.672840 +vt 0.886878 0.648148 +vt 0.850679 0.654321 +vt 0.886878 0.635802 +vt 0.886878 0.654321 +vt 0.923077 0.648148 +vt 0.923077 0.635802 +vt 0.923077 0.660494 +vt 0.923077 0.679012 +vt 0.923077 0.654321 +vt 0.923077 0.641975 +vt 0.954751 0.604938 +vt 0.952489 0.623457 +vt 0.952489 0.598765 +vt 0.947964 0.592593 +vt 0.945701 0.629630 +vt 0.945701 0.592593 +vt 0.943439 0.592593 +vt 0.941176 0.623457 +vt 0.941176 0.598765 +vt 0.938914 0.598765 +vt 0.936652 0.617284 +vt 0.936652 0.604938 +vt 0.950226 0.598765 +vt 0.950226 0.623457 +vt 0.947964 0.629630 +vt 0.943439 0.629630 +vt 0.938914 0.623457 +vt 0.952489 0.592593 +vt 0.954751 0.543210 +vt 0.954751 0.592593 +vt 0.947964 0.543210 +vt 0.941176 0.592593 +vt 0.943439 0.543210 +vt 0.936652 0.592593 +vt 0.938914 0.543210 +vt 0.938914 0.592593 +vt 0.950226 0.592593 +vt 0.952489 0.543210 +vt 0.950226 0.543210 +vt 0.945701 0.543210 +vt 0.941176 0.543210 +vt 0.941176 0.648148 +vt 0.941176 0.629630 +vt 0.938914 0.629630 +vt 0.936652 0.648148 +vt 0.936652 0.629630 +vt 0.952489 0.629630 +vt 0.950226 0.648148 +vt 0.950226 0.629630 +vt 0.947964 0.648148 +vt 0.943439 0.648148 +vt 0.938914 0.648148 +vt 0.954751 0.629630 +vt 0.952489 0.648148 +vt 0.945701 0.648148 +vt 0.952489 0.598765 +vt 0.954751 0.617284 +vt 0.952489 0.623457 +vt 0.945701 0.592593 +vt 0.947964 0.629630 +vt 0.945701 0.629630 +vt 0.943439 0.592593 +vt 0.941176 0.623457 +vt 0.941176 0.598765 +vt 0.936652 0.604938 +vt 0.938914 0.623457 +vt 0.936652 0.617284 +vt 0.950226 0.598765 +vt 0.950226 0.623457 +vt 0.947964 0.592593 +vt 0.943439 0.629630 +vt 0.938914 0.598765 +vt 0.952489 0.592593 +vt 0.954751 0.543210 +vt 0.954751 0.592593 +vt 0.947964 0.543210 +vt 0.941176 0.592593 +vt 0.943439 0.543210 +vt 0.936652 0.592593 +vt 0.938914 0.543210 +vt 0.938914 0.592593 +vt 0.950226 0.592593 +vt 0.952489 0.543210 +vt 0.950226 0.543210 +vt 0.945701 0.543210 +vt 0.941176 0.543210 +vt 0.941176 0.648148 +vt 0.941176 0.629630 +vt 0.938914 0.629630 +vt 0.936652 0.648148 +vt 0.936652 0.629630 +vt 0.952489 0.629630 +vt 0.950226 0.648148 +vt 0.950226 0.629630 +vt 0.947964 0.648148 +vt 0.943439 0.648148 +vt 0.938914 0.648148 +vt 0.954751 0.629630 +vt 0.952489 0.648148 +vt 0.945701 0.648148 +vt 0.692308 0.691358 +vt 0.692308 0.716049 +vt 0.843891 0.586420 +vt 0.843891 0.623457 +vt 0.850679 0.679012 +vt 0.923077 0.629630 +vt 0.954751 0.617284 +vt 0.936652 0.543210 +vt 0.954751 0.648148 +vt 0.954751 0.604938 +vt 0.936652 0.543210 +vt 0.954751 0.648148 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.8660 0.5000 0.0000 +vn 0.7746 0.4472 -0.4472 +vn -0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.4472 0.7746 -0.4472 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.4472 0.7746 -0.4472 +vn -0.8660 -0.5000 0.0000 +vn -0.7746 0.4472 -0.4472 +vn -0.5000 -0.8660 0.0000 +vn 0.9487 -0.3162 0.0000 +vn -0.9487 -0.3162 0.0000 +vn -0.9960 -0.0890 0.0000 +vn 0.9960 -0.0890 0.0000 +vn -0.5079 -0.5470 0.6654 +vn -0.5119 -0.8570 0.0595 +vn -0.4901 -0.4877 0.7224 +vn 0.3536 0.6124 0.7071 +vn 0.4619 0.8001 0.3827 +vn -0.3536 -0.6124 0.7071 +vn -0.4619 -0.8001 0.3827 +vn 0.3536 0.6124 -0.7071 +vn -0.3536 -0.6124 -0.7071 +vn -0.4619 -0.8001 -0.3827 +vn 0.4619 0.8001 -0.3827 +vn -0.2198 -0.7134 0.6654 +vn -0.4862 -0.8718 0.0595 +vn -0.5119 -0.8570 -0.0595 +vn 0.4862 0.8718 -0.0595 +vn 0.2198 0.7134 -0.6654 +vn 0.5119 0.8570 0.0595 +vn 0.2100 -0.1213 0.9701 +vn 0.4901 0.4877 0.7224 +vn -0.5079 -0.5470 -0.6654 +vn -0.4901 -0.4877 -0.7224 +vn -0.1773 -0.6683 0.7224 +vn 0.1773 0.6683 -0.7224 +vn -0.2100 0.1213 -0.9701 +vn 0.5079 0.5470 0.6654 +vn 0.5119 0.8570 -0.0595 +vn 0.5079 0.5470 -0.6654 +vn 0.4901 0.4878 -0.7224 +vn -0.2100 0.1213 0.9701 +vn 0.1773 0.6683 0.7224 +vn 0.2198 0.7134 0.6654 +vn -0.4862 -0.8718 -0.0595 +vn -0.2198 -0.7134 -0.6654 +vn 0.2100 -0.1213 -0.9701 +vn 0.4862 0.8718 0.0595 +vn -0.1773 -0.6684 -0.7224 +vn -0.9074 -0.4202 0.0000 +vn -0.2820 -0.6233 -0.7294 +vn -0.6233 -0.2820 -0.7294 +vn 0.7023 0.3032 -0.6441 +vn 0.3532 0.9356 0.0000 +vn 0.9356 0.3532 -0.0000 +vn 0.7023 0.3032 0.6441 +vn 0.0899 0.0899 0.9919 +vn -0.6233 -0.2820 0.7294 +vn -0.4202 -0.9074 -0.0000 +vn 0.0899 0.0899 -0.9919 +vn 0.3032 0.7023 -0.6441 +vn 0.3032 0.7023 0.6441 +vn -0.2820 -0.6233 0.7294 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +s off +f 19/1/1 4/2/1 18/3/1 +f 2/4/1 19/1/1 20/5/1 +f 2/4/1 21/6/1 1/7/1 +f 1/7/1 8/8/1 12/9/1 +f 12/9/1 9/10/1 11/11/1 +f 10/12/1 9/10/1 17/13/1 +f 26/14/2 16/15/2 15/16/2 +f 14/17/2 26/14/2 15/16/2 +f 28/18/2 14/17/2 13/19/2 +f 7/20/2 13/19/2 24/21/2 +f 6/22/2 24/21/2 23/23/2 +f 6/22/2 22/24/2 5/25/2 +f 33/26/1 40/27/1 41/28/1 +f 40/27/1 35/29/1 39/30/1 +f 33/26/1 42/31/1 29/32/1 +f 30/33/1 29/32/1 42/31/1 +f 31/34/1 38/35/1 30/33/1 +f 36/36/1 31/34/1 32/37/1 +f 44/38/2 51/39/2 43/40/2 +f 51/39/2 52/41/2 43/40/2 +f 46/42/2 44/38/2 45/43/2 +f 47/44/2 45/43/2 55/45/2 +f 48/46/2 55/45/2 53/47/2 +f 48/46/2 54/48/2 49/49/2 +f 36/36/3 5/50/3 22/24/3 +f 25/51/3 35/29/3 16/15/3 +f 58/52/1 63/53/1 57/54/1 +f 61/55/1 58/52/1 64/56/1 +f 65/57/1 61/58/1 64/59/1 +f 65/57/1 59/60/1 60/61/1 +f 4/2/1 66/62/1 18/3/1 +f 17/13/1 63/53/1 10/12/1 +f 67/63/2 73/64/2 68/65/2 +f 73/64/2 69/66/2 68/65/2 +f 69/67/2 75/68/2 70/69/2 +f 75/68/2 71/70/2 70/69/2 +f 49/49/2 71/70/2 76/71/2 +f 72/72/2 52/41/2 50/73/2 +f 79/74/3 78/75/3 77/76/3 +f 88/77/4 90/78/4 86/79/4 +f 91/80/5 81/81/5 82/82/5 +f 106/83/1 121/84/1 84/85/1 +f 107/86/5 84/85/5 85/87/5 +f 87/88/3 88/77/3 86/79/3 +f 81/81/2 89/89/2 82/90/2 +f 82/91/4 84/85/4 78/75/4 +f 89/92/4 85/87/4 84/85/4 +f 91/93/1 86/79/1 90/78/1 +f 92/94/2 94/95/2 93/96/2 +f 116/97/6 96/98/6 94/95/6 +f 117/99/7 85/100/7 95/101/7 +f 94/102/4 96/103/4 87/104/4 +f 118/105/5 95/101/5 96/98/5 +f 166/106/4 168/107/4 80/108/4 +f 124/109/2 131/110/2 125/111/2 +f 100/112/3 101/113/3 99/114/3 +f 112/115/8 110/116/8 108/117/8 +f 103/118/5 113/119/5 104/120/5 +f 110/116/3 109/121/3 108/117/3 +f 111/122/2 103/118/2 104/123/2 +f 104/124/8 106/83/8 111/125/8 +f 107/86/8 111/125/8 106/83/8 +f 108/117/1 113/126/1 112/115/1 +f 118/127/8 116/128/8 109/129/8 +f 164/130/5 166/106/5 169/131/5 +f 125/111/3 126/132/3 124/109/3 +f 78/133/1 84/85/1 97/134/1 +f 127/135/9 128/136/9 126/132/9 +f 119/137/1 106/83/1 100/138/1 +f 126/132/8 130/139/8 124/109/8 +f 131/140/4 127/135/4 125/111/4 +f 132/141/2 139/142/2 133/143/2 +f 133/143/10 134/144/10 132/141/10 +f 135/145/11 136/146/11 134/144/11 +f 134/144/12 138/147/12 132/141/12 +f 139/148/13 135/145/13 133/143/13 +f 140/149/2 147/150/2 141/151/2 +f 141/151/14 142/152/14 140/149/14 +f 143/153/15 144/154/15 142/152/15 +f 142/152/16 146/155/16 140/149/16 +f 147/156/17 143/153/17 141/151/17 +f 149/157/2 154/158/2 155/159/2 +f 149/157/12 150/160/12 148/161/12 +f 151/162/18 152/163/18 150/160/18 +f 150/160/19 154/164/19 148/161/19 +f 155/165/10 151/162/10 149/157/10 +f 156/166/2 163/167/2 157/168/2 +f 157/168/16 158/169/16 156/166/16 +f 158/169/20 161/170/20 160/171/20 +f 158/169/21 162/172/21 156/166/21 +f 163/173/14 159/174/14 157/168/14 +f 169/131/2 171/175/2 170/176/2 +f 92/94/5 168/177/5 172/178/5 +f 167/179/5 114/180/5 173/181/5 +f 83/182/2 166/106/2 80/183/2 +f 102/184/2 169/131/2 105/185/2 +f 93/186/4 91/187/4 78/75/4 +f 113/188/8 115/189/8 100/112/8 +f 173/181/1 164/190/1 167/179/1 +f 178/191/5 177/192/5 176/193/5 +f 183/194/22 177/192/22 179/195/22 +f 180/196/23 178/191/23 176/193/23 +f 179/195/1 178/191/1 186/197/1 +f 184/198/2 176/193/2 177/192/2 +f 196/199/1 194/200/1 190/201/1 +f 204/202/2 208/203/2 201/204/2 +f 246/205/1 258/206/1 240/207/1 +f 236/208/1 254/209/1 242/210/1 +f 237/211/16 262/212/16 236/208/16 +f 237/211/16 256/213/16 263/214/16 +f 238/215/16 257/216/16 256/213/16 +f 240/207/16 257/216/16 239/217/16 +f 249/218/17 246/205/17 245/219/17 +f 248/220/17 245/219/17 244/221/17 +f 255/222/17 244/221/17 243/223/17 +f 254/224/17 243/223/17 242/210/17 +f 278/225/17 279/226/17 275/227/17 +f 165/228/1 172/178/1 168/177/1 +f 174/229/1 165/228/1 164/190/1 +f 116/97/2 114/180/2 115/230/2 +f 167/231/8 169/131/8 102/232/8 +f 123/233/2 116/97/2 94/95/2 +f 19/1/1 3/234/1 4/2/1 +f 2/4/1 3/234/1 19/1/1 +f 2/4/1 20/5/1 21/6/1 +f 1/7/1 21/6/1 8/8/1 +f 12/9/1 8/8/1 9/10/1 +f 10/12/1 11/11/1 9/10/1 +f 26/14/2 25/235/2 16/15/2 +f 14/17/2 27/236/2 26/14/2 +f 28/18/2 27/236/2 14/17/2 +f 7/20/2 28/18/2 13/19/2 +f 6/22/2 7/20/2 24/21/2 +f 6/22/2 23/23/2 22/24/2 +f 33/26/1 34/237/1 40/27/1 +f 40/27/1 34/237/1 35/29/1 +f 33/26/1 41/28/1 42/31/1 +f 30/33/1 38/35/1 29/32/1 +f 31/34/1 37/238/1 38/35/1 +f 36/36/1 37/238/1 31/34/1 +f 44/38/2 56/239/2 51/39/2 +f 51/39/2 50/73/2 52/41/2 +f 46/42/2 56/239/2 44/38/2 +f 47/44/2 46/42/2 45/43/2 +f 48/46/2 47/44/2 55/45/2 +f 48/46/2 53/47/2 54/48/2 +f 36/36/3 32/240/3 5/50/3 +f 25/51/3 39/241/3 35/29/3 +f 58/52/1 62/242/1 63/53/1 +f 61/55/1 62/242/1 58/52/1 +f 65/57/1 60/61/1 61/58/1 +f 65/57/1 66/62/1 59/60/1 +f 4/2/1 59/60/1 66/62/1 +f 17/13/1 57/54/1 63/53/1 +f 67/63/2 72/72/2 73/64/2 +f 73/64/2 74/243/2 69/66/2 +f 69/67/2 74/244/2 75/68/2 +f 75/68/2 76/71/2 71/70/2 +f 49/49/2 54/48/2 71/70/2 +f 72/72/2 67/63/2 52/41/2 +f 79/74/3 80/108/3 78/75/3 +f 88/77/4 81/81/4 90/78/4 +f 91/80/5 90/78/5 81/81/5 +f 106/83/1 120/245/1 121/84/1 +f 121/84/1 98/246/1 84/85/1 +f 107/86/5 106/83/5 84/85/5 +f 87/88/3 89/247/3 88/77/3 +f 81/81/2 88/77/2 89/89/2 +f 82/91/4 89/92/4 84/85/4 +f 89/92/4 87/104/4 85/87/4 +f 91/93/1 87/248/1 86/79/1 +f 92/94/2 123/233/2 94/95/2 +f 116/97/6 118/105/6 96/98/6 +f 117/99/7 107/249/7 85/100/7 +f 85/87/4 87/104/4 95/250/4 +f 87/104/4 91/187/4 93/186/4 +f 95/250/4 87/104/4 96/103/4 +f 93/186/4 94/102/4 87/104/4 +f 118/105/5 117/99/5 95/101/5 +f 166/106/4 165/251/4 168/107/4 +f 124/109/2 130/252/2 131/110/2 +f 100/112/3 102/232/3 101/113/3 +f 112/115/8 103/118/8 110/116/8 +f 103/118/5 112/115/5 113/119/5 +f 110/116/3 111/253/3 109/121/3 +f 111/122/2 110/116/2 103/118/2 +f 104/124/8 100/112/8 106/83/8 +f 107/86/8 109/129/8 111/125/8 +f 108/117/1 109/254/1 113/126/1 +f 113/188/8 109/129/8 115/189/8 +f 109/129/8 107/86/8 117/255/8 +f 115/189/8 109/129/8 116/128/8 +f 117/255/8 118/127/8 109/129/8 +f 164/130/5 165/251/5 166/106/5 +f 125/111/3 127/135/3 126/132/3 +f 97/134/1 77/256/1 78/133/1 +f 84/85/1 98/246/1 97/134/1 +f 127/135/9 129/257/9 128/136/9 +f 100/138/1 99/258/1 119/137/1 +f 119/137/1 120/245/1 106/83/1 +f 126/132/8 128/259/8 130/139/8 +f 131/140/4 129/260/4 127/135/4 +f 132/141/2 138/261/2 139/142/2 +f 133/143/10 135/145/10 134/144/10 +f 135/145/11 137/262/11 136/146/11 +f 134/144/12 136/263/12 138/147/12 +f 139/148/13 137/264/13 135/145/13 +f 140/149/2 146/265/2 147/150/2 +f 141/151/14 143/153/14 142/152/14 +f 143/153/15 145/266/15 144/154/15 +f 142/152/16 144/267/16 146/155/16 +f 147/156/17 145/268/17 143/153/17 +f 149/157/2 148/161/2 154/158/2 +f 149/157/12 151/162/12 150/160/12 +f 151/162/18 153/269/18 152/163/18 +f 150/160/19 152/270/19 154/164/19 +f 155/165/10 153/271/10 151/162/10 +f 156/166/2 162/272/2 163/167/2 +f 157/168/16 159/174/16 158/169/16 +f 158/169/20 159/174/20 161/170/20 +f 158/169/21 160/273/21 162/172/21 +f 163/173/14 161/274/14 159/174/14 +f 169/131/2 166/106/2 171/175/2 +f 92/94/5 93/96/5 168/177/5 +f 167/179/5 115/230/5 114/180/5 +f 80/183/2 79/275/2 83/182/2 +f 83/182/2 171/175/2 166/106/2 +f 105/185/2 101/276/2 102/184/2 +f 169/131/2 170/176/2 105/185/2 +f 80/108/4 168/107/4 93/186/4 +f 91/187/4 82/91/4 78/75/4 +f 80/108/4 93/186/4 78/75/4 +f 115/189/8 167/231/8 102/232/8 +f 102/232/8 100/112/8 115/189/8 +f 100/112/8 104/124/8 113/188/8 +f 173/181/1 174/229/1 164/190/1 +f 178/191/5 179/195/5 177/192/5 +f 183/194/22 181/277/22 177/192/22 +f 180/196/23 182/278/23 178/191/23 +f 187/279/1 183/280/1 179/195/1 +f 178/191/1 182/281/1 186/197/1 +f 186/197/1 187/279/1 179/195/1 +f 177/192/2 181/282/2 185/283/2 +f 184/198/2 180/284/2 176/193/2 +f 177/192/2 185/283/2 184/198/2 +f 190/201/1 189/285/1 188/286/1 +f 188/286/1 199/287/1 190/201/1 +f 199/287/1 198/288/1 190/201/1 +f 198/288/1 197/289/1 196/199/1 +f 196/199/1 195/290/1 194/200/1 +f 194/200/1 193/291/1 190/201/1 +f 193/291/1 192/292/1 190/201/1 +f 192/292/1 191/293/1 190/201/1 +f 198/288/1 196/199/1 190/201/1 +f 201/204/2 200/294/2 204/202/2 +f 200/294/2 202/295/2 204/202/2 +f 202/295/2 203/296/2 204/202/2 +f 204/202/2 205/297/2 208/203/2 +f 205/297/2 206/298/2 208/203/2 +f 206/298/2 207/299/2 208/203/2 +f 208/203/2 209/300/2 210/301/2 +f 210/301/2 211/302/2 208/203/2 +f 211/302/2 201/204/2 208/203/2 +f 246/205/1 250/303/1 258/206/1 +f 236/208/1 262/304/1 254/209/1 +f 237/211/16 263/214/16 262/212/16 +f 237/211/16 238/215/16 256/213/16 +f 238/215/16 239/217/16 257/216/16 +f 240/207/16 258/305/16 257/216/16 +f 249/218/17 250/306/17 246/205/17 +f 248/220/17 249/218/17 245/219/17 +f 255/222/17 248/220/17 244/221/17 +f 254/224/17 255/222/17 243/223/17 +f 279/226/17 272/307/17 273/308/17 +f 273/308/17 274/309/17 279/226/17 +f 274/309/17 275/227/17 279/226/17 +f 275/227/17 276/310/17 277/311/17 +f 277/311/17 278/225/17 275/227/17 +f 165/228/1 175/312/1 172/178/1 +f 174/229/1 175/312/1 165/228/1 +f 116/97/2 122/313/2 114/180/2 +f 167/231/8 164/130/8 169/131/8 +f 123/233/2 122/313/2 116/97/2 +s 1 +f 15/16/10 4/2/4 3/234/10 +f 22/24/24 11/11/16 10/12/8 +f 23/23/16 12/9/12 11/11/16 +f 13/19/3 2/4/14 1/7/3 +f 24/21/12 1/7/3 12/9/12 +f 14/17/14 3/234/10 2/4/14 +f 34/237/10 52/41/4 35/29/25 +f 36/36/24 53/47/16 37/238/16 +f 33/26/14 43/40/10 34/237/10 +f 37/238/16 55/45/12 38/35/12 +f 29/32/3 44/38/14 33/26/14 +f 38/35/12 45/43/3 29/32/3 +f 61/55/5 70/69/21 62/242/21 +f 59/60/17 68/65/13 60/61/13 +f 62/242/21 71/70/19 63/53/19 +f 60/61/13 69/66/5 61/58/5 +f 36/36/24 22/24/24 71/70/19 +f 16/15/25 35/29/25 67/63/17 +f 195/314/4 206/315/17 194/316/17 +f 192/317/5 203/318/21 191/319/21 +f 199/320/12 210/321/3 198/322/3 +f 189/323/8 201/324/16 188/325/16 +f 196/326/10 207/327/4 195/314/4 +f 193/328/13 204/329/5 192/317/5 +f 188/325/16 211/330/12 199/320/12 +f 190/331/19 200/332/8 189/323/8 +f 197/333/14 208/334/10 196/326/10 +f 194/316/17 205/335/13 193/328/13 +f 191/336/21 202/337/19 190/331/19 +f 197/333/14 210/321/3 209/338/14 +f 228/339/5 217/340/13 216/341/5 +f 235/342/12 212/343/16 223/344/12 +f 225/345/8 214/346/19 213/347/8 +f 232/348/10 221/349/14 220/350/10 +f 229/351/13 218/352/17 217/340/13 +f 226/353/19 215/354/21 214/346/19 +f 233/355/14 222/356/3 221/349/14 +f 230/357/17 219/358/4 218/352/17 +f 227/359/21 216/341/5 215/360/21 +f 234/361/3 223/344/12 222/356/3 +f 224/362/16 213/347/8 212/343/16 +f 231/363/4 220/350/10 219/358/4 +f 253/364/26 278/365/27 277/366/28 +f 245/219/29 240/207/30 239/217/29 +f 243/223/31 238/215/2 237/211/31 +f 244/221/2 239/217/29 238/215/2 +f 242/210/32 237/211/31 236/208/32 +f 263/367/33 248/368/1 255/369/33 +f 257/370/34 250/371/35 249/372/34 +f 262/373/36 255/369/33 254/374/36 +f 248/368/1 257/370/34 249/372/34 +f 253/364/37 269/375/38 259/376/39 +f 247/377/40 264/378/41 265/379/42 +f 252/380/43 266/381/44 267/382/43 +f 259/376/39 270/383/45 260/384/46 +f 252/385/43 268/386/47 253/364/37 +f 241/387/48 271/388/49 264/378/41 +f 251/389/50 265/379/42 266/381/44 +f 260/384/46 271/388/49 261/390/49 +f 247/377/51 273/391/52 241/387/53 +f 252/380/54 275/392/55 251/389/56 +f 259/376/57 279/393/58 278/365/27 +f 252/385/54 277/366/28 276/394/54 +f 241/387/53 272/395/59 261/390/59 +f 251/389/56 274/396/60 247/377/51 +f 260/384/61 272/395/59 279/393/58 +f 282/397/62 289/398/63 281/399/64 +f 287/400/65 294/401/66 286/402/67 +f 285/403/68 292/404/69 284/405/69 +f 283/406/70 290/407/71 282/408/62 +f 280/409/72 289/398/63 288/410/72 +f 287/400/65 288/410/72 295/411/73 +f 286/402/67 293/412/74 285/403/68 +f 284/405/69 291/413/75 283/406/70 +f 281/414/64 298/415/8 282/416/62 +f 286/402/67 303/417/76 287/400/65 +f 284/418/69 301/419/77 285/403/68 +f 282/420/62 299/421/78 283/422/70 +f 280/423/72 297/424/79 281/414/64 +f 287/400/65 296/425/1 280/423/72 +f 285/403/68 302/426/4 286/402/67 +f 283/422/70 300/427/2 284/418/69 +f 293/412/74 308/428/2 292/429/69 +f 291/430/75 306/431/5 290/432/71 +f 289/433/63 304/434/1 288/435/72 +f 288/435/72 311/436/80 295/411/73 +f 294/401/66 309/437/81 293/412/74 +f 292/429/69 307/438/6 291/430/75 +f 290/439/71 305/440/7 289/433/63 +f 295/411/73 310/441/3 294/401/66 +f 313/442/64 322/443/71 321/444/63 +f 318/445/67 327/446/73 326/447/66 +f 317/448/68 324/449/69 316/450/69 +f 314/451/62 323/452/75 322/453/71 +f 312/454/72 321/444/63 320/455/72 +f 319/456/65 320/455/72 327/446/73 +f 318/445/67 325/457/74 317/448/68 +f 316/450/69 323/452/75 315/458/70 +f 313/459/64 330/460/8 314/461/62 +f 318/445/67 335/462/76 319/456/65 +f 316/463/69 333/464/77 317/448/68 +f 314/465/62 331/466/78 315/467/70 +f 312/468/72 329/469/79 313/459/64 +f 319/456/65 328/470/1 312/468/72 +f 317/448/68 334/471/4 318/445/67 +f 315/467/70 332/472/2 316/463/69 +f 325/457/74 340/473/2 324/474/69 +f 323/475/75 338/476/5 322/477/71 +f 321/478/63 336/479/1 320/480/72 +f 320/480/72 343/481/80 327/446/73 +f 326/447/66 341/482/81 325/457/74 +f 324/474/69 339/483/6 323/475/75 +f 322/484/71 337/485/7 321/478/63 +f 327/446/73 342/486/3 326/447/66 +f 15/16/10 16/15/25 4/2/4 +f 22/24/24 23/23/16 11/11/16 +f 23/23/16 24/21/12 12/9/12 +f 13/19/3 14/17/14 2/4/14 +f 24/21/12 13/19/3 1/7/3 +f 14/17/14 15/16/10 3/234/10 +f 34/237/10 43/40/10 52/41/4 +f 36/36/24 54/48/8 53/47/16 +f 33/26/14 44/38/14 43/40/10 +f 37/238/16 53/47/16 55/45/12 +f 29/32/3 45/43/3 44/38/14 +f 38/35/12 55/45/12 45/43/3 +f 61/55/5 69/67/5 70/69/21 +f 59/60/17 67/63/17 68/65/13 +f 62/242/21 70/69/21 71/70/19 +f 60/61/13 68/65/13 69/66/5 +f 22/24/24 10/12/8 63/53/19 +f 63/53/19 71/70/19 22/24/24 +f 71/70/19 54/48/8 36/36/24 +f 59/60/17 4/2/4 16/15/25 +f 35/29/25 52/41/4 67/63/17 +f 59/60/17 16/15/25 67/63/17 +f 195/314/4 207/327/4 206/315/17 +f 192/317/5 204/329/5 203/318/21 +f 199/320/12 211/330/12 210/321/3 +f 189/323/8 200/332/8 201/324/16 +f 196/326/10 208/334/10 207/327/4 +f 193/328/13 205/335/13 204/329/5 +f 188/325/16 201/324/16 211/330/12 +f 190/331/19 202/337/19 200/332/8 +f 197/333/14 209/338/14 208/334/10 +f 194/316/17 206/315/17 205/335/13 +f 191/336/21 203/487/21 202/337/19 +f 197/333/14 198/322/3 210/321/3 +f 228/339/5 229/351/13 217/340/13 +f 235/342/12 224/362/16 212/343/16 +f 225/345/8 226/353/19 214/346/19 +f 232/348/10 233/355/14 221/349/14 +f 229/351/13 230/357/17 218/352/17 +f 226/353/19 227/488/21 215/354/21 +f 233/355/14 234/361/3 222/356/3 +f 230/357/17 231/363/4 219/358/4 +f 227/359/21 228/339/5 216/341/5 +f 234/361/3 235/342/12 223/344/12 +f 224/362/16 225/345/8 213/347/8 +f 231/363/4 232/348/10 220/350/10 +f 253/364/26 259/376/57 278/365/27 +f 245/219/29 246/205/30 240/207/30 +f 243/223/31 244/221/2 238/215/2 +f 244/221/2 245/219/29 239/217/29 +f 242/210/32 243/223/31 237/211/31 +f 263/367/33 256/489/1 248/368/1 +f 257/370/34 258/490/35 250/371/35 +f 262/373/36 263/367/33 255/369/33 +f 248/368/1 256/489/1 257/370/34 +f 253/364/37 268/386/47 269/375/38 +f 247/377/40 241/387/48 264/378/41 +f 252/380/43 251/389/50 266/381/44 +f 259/376/39 269/375/38 270/383/45 +f 252/385/43 267/491/43 268/386/47 +f 241/387/48 261/390/49 271/388/49 +f 251/389/50 247/377/40 265/379/42 +f 260/384/46 270/383/45 271/388/49 +f 247/377/51 274/396/60 273/391/52 +f 252/380/54 276/492/54 275/392/55 +f 259/376/57 260/384/61 279/393/58 +f 252/385/54 253/364/26 277/366/28 +f 241/387/53 273/391/52 272/395/59 +f 251/389/56 275/392/55 274/396/60 +f 260/384/61 261/390/59 272/395/59 +f 282/397/62 290/493/71 289/398/63 +f 287/400/65 295/411/73 294/401/66 +f 285/403/68 293/412/74 292/404/69 +f 283/406/70 291/413/75 290/407/71 +f 280/409/72 281/399/64 289/398/63 +f 287/400/65 280/409/72 288/410/72 +f 286/402/67 294/401/66 293/412/74 +f 284/405/69 292/404/69 291/413/75 +f 281/414/64 297/424/79 298/415/8 +f 286/402/67 302/426/4 303/417/76 +f 284/418/69 300/427/2 301/419/77 +f 282/420/62 298/494/8 299/421/78 +f 280/423/72 296/425/1 297/424/79 +f 287/400/65 303/417/76 296/425/1 +f 285/403/68 301/419/77 302/426/4 +f 283/422/70 299/421/78 300/427/2 +f 293/412/74 309/437/81 308/428/2 +f 291/430/75 307/438/6 306/431/5 +f 289/433/63 305/440/7 304/434/1 +f 288/435/72 304/434/1 311/436/80 +f 294/401/66 310/441/3 309/437/81 +f 292/429/69 308/428/2 307/438/6 +f 290/439/71 306/495/5 305/440/7 +f 295/411/73 311/436/80 310/441/3 +f 313/442/64 314/496/62 322/443/71 +f 318/445/67 319/456/65 327/446/73 +f 317/448/68 325/457/74 324/449/69 +f 314/451/62 315/458/70 323/452/75 +f 312/454/72 313/442/64 321/444/63 +f 319/456/65 312/454/72 320/455/72 +f 318/445/67 326/447/66 325/457/74 +f 316/450/69 324/449/69 323/452/75 +f 313/459/64 329/469/79 330/460/8 +f 318/445/67 334/471/4 335/462/76 +f 316/463/69 332/472/2 333/464/77 +f 314/465/62 330/497/8 331/466/78 +f 312/468/72 328/470/1 329/469/79 +f 319/456/65 335/462/76 328/470/1 +f 317/448/68 333/464/77 334/471/4 +f 315/467/70 331/466/78 332/472/2 +f 325/457/74 341/482/81 340/473/2 +f 323/475/75 339/483/6 338/476/5 +f 321/478/63 337/485/7 336/479/1 +f 320/480/72 336/479/1 343/481/80 +f 326/447/66 342/486/3 341/482/81 +f 324/474/69 340/473/2 339/483/6 +f 322/484/71 338/498/5 337/485/7 +f 327/446/73 343/481/80 342/486/3 +o Barrel +v 0.000000 1.500000 6.687500 +v 0.250000 1.433012 6.687500 +v 0.433013 1.250000 6.687500 +v 0.500000 1.000000 6.687500 +v 0.433013 0.750000 6.687500 +v 0.250000 0.566987 6.687500 +v 0.000000 0.500000 6.687500 +v -0.250000 0.566987 6.687500 +v -0.433012 0.750000 6.687500 +v -0.500000 1.000000 6.687500 +v -0.433013 1.250000 6.687500 +v -0.250000 1.433012 6.687500 +v 0.000000 1.500000 0.187500 +v 0.250000 1.433012 0.187500 +v 0.433013 1.250000 0.187500 +v 0.500000 1.000000 0.187500 +v 0.433013 0.750000 0.187500 +v 0.250000 0.566987 0.187500 +v 0.000000 0.500000 0.187500 +v -0.250000 0.566987 0.187500 +v -0.433012 0.750000 0.187500 +v -0.500000 1.000000 0.187500 +v -0.433013 1.250000 0.187500 +v -0.250000 1.433012 0.187500 +v 0.218750 1.378886 6.687500 +v 0.000000 1.437500 6.687500 +v 0.378886 1.218750 6.687500 +v 0.437500 1.000000 6.687500 +v 0.378886 0.781250 6.687500 +v 0.218750 0.621114 6.687500 +v 0.000000 0.562500 6.687500 +v -0.218750 0.621114 6.687500 +v -0.378886 0.781250 6.687500 +v -0.437500 1.000000 6.687500 +v -0.378886 1.218750 6.687500 +v -0.218750 1.378886 6.687500 +v 0.218750 1.378889 0.187500 +v 0.000000 1.437503 0.187500 +v 0.378886 1.218753 0.187500 +v 0.437500 1.000003 0.187500 +v 0.378886 0.781253 0.187500 +v 0.218750 0.621117 0.187500 +v 0.000000 0.562503 0.187500 +v -0.218750 0.621117 0.187500 +v -0.378886 0.781253 0.187500 +v -0.437500 1.000003 0.187500 +v -0.378886 1.218753 0.187500 +v -0.218750 1.378889 0.187500 +vt 0.237557 0.222222 +vt 0.235294 0.246914 +vt 0.235294 0.222222 +vt 0.472851 0.049383 +vt 0.475113 0.024691 +vt 0.475113 0.049383 +vt 0.237557 0.246914 +vt 0.235294 0.271605 +vt 0.237557 0.296296 +vt 0.237557 0.271605 +vt 0.237557 0.000000 +vt 0.235294 0.024691 +vt 0.235294 0.000000 +vt 0.237557 0.024691 +vt 0.235294 0.049383 +vt 0.237557 0.049383 +vt 0.235294 0.074074 +vt 0.237557 0.172840 +vt 0.235294 0.148148 +vt 0.237557 0.148148 +vt 0.237557 0.123457 +vt 0.235294 0.123457 +vt 0.237557 0.074074 +vt 0.235294 0.098765 +vt 0.235294 0.197531 +vt 0.235294 0.172840 +vt 0.237557 0.098765 +vt 0.237557 0.197531 +vt 0.472851 0.074074 +vt 0.475113 0.074074 +vt 0.472851 0.098765 +vt 0.475113 0.098765 +vt 0.472851 0.123457 +vt 0.475113 0.123457 +vt 0.472851 0.148148 +vt 0.475113 0.148148 +vt 0.475113 0.172840 +vt 0.472851 0.172840 +vt 0.475113 0.197531 +vt 0.472851 0.197531 +vt 0.475113 0.222222 +vt 0.472851 0.222222 +vt 0.475113 0.246914 +vt 0.472851 0.246914 +vt 0.475113 0.271605 +vt 0.472851 0.271605 +vt 0.475113 0.296296 +vt 0.472851 0.296296 +vt 0.472851 0.024691 +vt 0.475113 0.000000 +vt 0.235294 0.296296 +vt 0.472851 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.074074 +vt -0.000000 0.197531 +vt 0.000000 0.271605 +vt 0.000000 0.049383 +vt 0.000000 0.172840 +vt -0.000000 0.123457 +vt 0.000000 0.246914 +vt 0.000000 0.024691 +vt 0.000000 0.148148 +vt -0.000000 0.098765 +vt 0.000000 0.222222 +vt -0.000000 0.296296 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.5000 0.8660 0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.8660 0.5000 0.0000 +s off +f 353/499/82 376/500/82 377/501/82 +f 360/502/83 385/503/83 384/504/83 +f 352/505/82 375/506/82 376/500/82 +f 350/507/82 375/506/82 351/508/82 +f 350/509/82 373/510/82 374/511/82 +f 349/512/82 372/513/82 373/510/82 +f 348/514/82 371/515/82 372/513/82 +f 355/516/82 369/517/82 344/518/82 +f 345/519/82 369/517/82 368/520/82 +f 347/521/82 370/522/82 371/515/82 +f 355/516/82 378/523/82 379/524/82 +f 345/519/82 370/522/82 346/525/82 +f 353/499/82 378/523/82 354/526/82 +f 359/527/83 384/504/83 383/528/83 +f 358/529/83 383/528/83 382/530/83 +f 357/531/83 382/530/83 380/532/83 +f 356/533/83 380/532/83 381/534/83 +f 356/533/83 391/535/83 367/536/83 +f 367/536/83 390/537/83 366/538/83 +f 366/538/83 389/539/83 365/540/83 +f 365/540/83 388/541/83 364/542/83 +f 364/542/83 387/543/83 363/544/83 +f 363/544/83 386/545/83 362/546/83 +f 361/547/83 386/548/83 385/503/83 +f 353/499/82 352/505/82 376/500/82 +f 360/502/83 361/547/83 385/503/83 +f 352/505/82 351/508/82 375/506/82 +f 350/507/82 374/549/82 375/506/82 +f 350/509/82 349/512/82 373/510/82 +f 349/512/82 348/514/82 372/513/82 +f 348/514/82 347/521/82 371/515/82 +f 355/516/82 379/524/82 369/517/82 +f 345/519/82 344/518/82 369/517/82 +f 347/521/82 346/525/82 370/522/82 +f 355/516/82 354/526/82 378/523/82 +f 345/519/82 368/520/82 370/522/82 +f 353/499/82 377/501/82 378/523/82 +f 359/527/83 360/502/83 384/504/83 +f 358/529/83 359/527/83 383/528/83 +f 357/531/83 358/529/83 382/530/83 +f 356/533/83 357/531/83 380/532/83 +f 356/533/83 381/534/83 391/535/83 +f 367/536/83 391/535/83 390/537/83 +f 366/538/83 390/537/83 389/539/83 +f 365/540/83 389/539/83 388/541/83 +f 364/542/83 388/541/83 387/543/83 +f 363/544/83 387/543/83 386/545/83 +f 361/547/83 362/550/83 386/548/83 +s 1 +f 345/519/84 356/533/85 344/518/85 +f 367/536/86 344/518/85 356/533/85 +f 366/538/87 355/516/86 367/536/86 +f 365/540/88 354/526/87 366/538/87 +f 364/542/89 353/499/88 365/540/88 +f 363/544/90 352/505/89 364/542/89 +f 362/546/91 351/508/90 363/544/90 +f 350/509/91 361/547/92 349/512/92 +f 349/512/92 360/502/93 348/514/93 +f 348/514/93 359/527/94 347/521/94 +f 347/521/94 358/529/95 346/525/95 +f 346/525/95 357/531/84 345/519/84 +f 373/510/86 386/551/85 374/511/85 +f 370/522/89 383/552/88 371/515/88 +f 377/501/94 390/553/93 378/523/93 +f 374/549/85 387/554/84 375/506/84 +f 371/515/88 384/555/87 372/513/87 +f 378/523/93 391/556/92 379/524/92 +f 369/517/91 380/557/90 368/520/90 +f 375/506/84 388/558/95 376/500/95 +f 372/513/87 385/559/86 373/510/86 +f 379/524/92 381/560/91 369/517/91 +f 370/522/89 380/557/90 382/561/89 +f 377/501/94 388/558/95 389/562/94 +f 345/519/84 357/531/84 356/533/85 +f 367/536/86 355/516/86 344/518/85 +f 366/538/87 354/526/87 355/516/86 +f 365/540/88 353/499/88 354/526/87 +f 364/542/89 352/505/89 353/499/88 +f 363/544/90 351/508/90 352/505/89 +f 362/546/91 350/507/91 351/508/90 +f 350/509/91 362/550/91 361/547/92 +f 349/512/92 361/547/92 360/502/93 +f 348/514/93 360/502/93 359/527/94 +f 347/521/94 359/527/94 358/529/95 +f 346/525/95 358/529/95 357/531/84 +f 373/510/86 385/559/86 386/551/85 +f 370/522/89 382/561/89 383/552/88 +f 377/501/94 389/562/94 390/553/93 +f 374/549/85 386/563/85 387/554/84 +f 371/515/88 383/552/88 384/555/87 +f 378/523/93 390/553/93 391/556/92 +f 369/517/91 381/560/91 380/557/90 +f 375/506/84 387/554/84 388/558/95 +f 372/513/87 384/555/87 385/559/86 +f 379/524/92 391/556/92 381/560/91 +f 370/522/89 368/520/90 380/557/90 +f 377/501/94 376/500/95 388/558/95 +o Missile +v 0.000000 1.312500 1.687500 +v -0.156250 1.270633 1.687500 +v -0.270633 1.156250 1.687500 +v -0.312500 1.000000 1.687500 +v -0.270633 0.843750 1.687500 +v -0.156250 0.729367 1.687500 +v 0.000000 0.687500 1.687500 +v 0.156250 0.729367 1.687500 +v 0.270633 0.843750 1.687500 +v 0.312500 1.000000 1.687500 +v 0.270633 1.156250 1.687500 +v 0.156250 1.270633 1.687500 +v 0.000000 1.312500 6.437500 +v -0.156250 1.270633 6.437500 +v -0.270633 1.156250 6.437500 +v -0.312500 1.000000 6.437500 +v -0.270633 0.843750 6.437500 +v -0.156250 0.729367 6.437500 +v 0.000000 0.687500 6.437500 +v 0.156250 0.729367 6.437500 +v 0.270633 0.843750 6.437500 +v 0.312500 1.000000 6.437500 +v 0.270633 1.156250 6.437500 +v 0.156250 1.270633 6.437500 +v 0.000000 1.273438 7.062500 +v -0.136719 1.236804 7.062500 +v -0.236804 1.136719 7.062500 +v -0.273438 1.000000 7.062500 +v -0.236804 0.863281 7.062500 +v -0.136719 0.763196 7.062500 +v 0.000000 0.726562 7.062500 +v 0.136719 0.763196 7.062500 +v 0.236804 0.863281 7.062500 +v 0.273438 1.000000 7.062500 +v 0.236804 1.136718 7.062500 +v 0.136719 1.236804 7.062500 +v 0.000000 1.000000 7.687499 +v 0.245813 1.363261 1.812500 +v 0.206190 1.169631 1.687500 +v 0.245813 1.363261 3.562500 +v 0.206190 1.169631 3.687500 +v 0.191687 1.394511 1.812500 +v 0.043810 1.263381 1.687500 +v 0.191687 1.394511 3.562500 +v 0.043810 1.263381 3.687500 +v -0.245813 0.636739 1.812500 +v -0.206190 0.830369 1.687500 +v -0.245813 0.636739 3.562500 +v -0.206190 0.830369 3.687500 +v -0.191687 0.605489 1.812500 +v -0.043810 0.736619 1.687500 +v -0.191687 0.605489 3.562500 +v -0.043810 0.736619 3.687500 +v 0.437500 0.968750 1.812500 +v 0.250000 0.906250 1.687500 +v 0.437500 0.968750 3.562500 +v 0.250000 0.906250 3.687500 +v 0.437500 1.031250 1.812500 +v 0.250000 1.093750 1.687500 +v 0.437500 1.031250 3.562500 +v 0.250000 1.093750 3.687500 +v -0.437500 1.031250 1.812500 +v -0.250000 1.093750 1.687500 +v -0.437500 1.031250 3.562500 +v -0.250000 1.093750 3.687500 +v -0.437500 0.968750 1.812500 +v -0.250000 0.906250 1.687500 +v -0.437500 0.968750 3.562500 +v -0.250000 0.906250 3.687500 +v 0.191687 0.605489 1.812500 +v 0.043810 0.736619 1.687500 +v 0.191687 0.605489 3.562500 +v 0.043810 0.736619 3.687500 +v 0.245813 0.636739 1.812500 +v 0.206190 0.830369 1.687500 +v 0.245813 0.636739 3.562500 +v 0.206190 0.830369 3.687500 +v -0.191687 1.394511 1.812500 +v -0.043810 1.263381 1.687500 +v -0.191687 1.394511 3.562500 +v -0.043810 1.263381 3.687500 +v -0.245813 1.363261 1.812500 +v -0.206190 1.169631 1.687500 +v -0.245813 1.363261 3.562500 +v -0.206190 1.169631 3.687500 +vt 0.374030 0.768550 +vt 0.374030 0.799351 +vt 0.354477 0.799351 +vt 0.816742 0.734568 +vt 0.748869 0.716049 +vt 0.821267 0.716049 +vt 0.753394 0.734568 +vt 0.816742 0.740741 +vt 0.753394 0.740741 +vt 0.821267 0.759259 +vt 0.746606 0.728395 +vt 0.746606 0.740741 +vt 0.823529 0.740741 +vt 0.823529 0.728395 +vt 0.816742 0.734568 +vt 0.748869 0.716049 +vt 0.821267 0.716049 +vt 0.753394 0.734568 +vt 0.816742 0.740741 +vt 0.753394 0.740741 +vt 0.821267 0.759259 +vt 0.746606 0.728395 +vt 0.746606 0.740741 +vt 0.823529 0.728395 +vt 0.816742 0.734568 +vt 0.748869 0.716049 +vt 0.821267 0.716049 +vt 0.753394 0.734568 +vt 0.816742 0.740741 +vt 0.753394 0.740741 +vt 0.821267 0.759259 +vt 0.746606 0.728395 +vt 0.746606 0.740741 +vt 0.823529 0.740741 +vt 0.823529 0.728395 +vt 0.816742 0.734568 +vt 0.748869 0.716049 +vt 0.821267 0.716049 +vt 0.753394 0.734568 +vt 0.816742 0.740741 +vt 0.753394 0.740741 +vt 0.821267 0.759259 +vt 0.746606 0.728395 +vt 0.746606 0.740741 +vt 0.823529 0.740741 +vt 0.823529 0.728395 +vt 0.821267 0.716049 +vt 0.753394 0.734568 +vt 0.748869 0.716049 +vt 0.816742 0.740741 +vt 0.753394 0.740741 +vt 0.821267 0.759259 +vt 0.746606 0.728395 +vt 0.746606 0.740741 +vt 0.823529 0.740741 +vt 0.816742 0.734568 +vt 0.823529 0.728395 +vt 0.816742 0.734568 +vt 0.748869 0.716049 +vt 0.821267 0.716049 +vt 0.753394 0.734568 +vt 0.816742 0.740741 +vt 0.753394 0.740741 +vt 0.821267 0.759259 +vt 0.746606 0.728395 +vt 0.746606 0.740741 +vt 0.823529 0.728395 +vt 0.369898 0.810626 +vt 0.364253 0.814752 +vt 0.358609 0.810626 +vt 0.352964 0.783951 +vt 0.354477 0.768550 +vt 0.358609 0.757276 +vt 0.364253 0.753149 +vt 0.369898 0.757276 +vt 0.375543 0.783951 +vt 0.748869 0.759259 +vt 0.748869 0.759259 +vt 0.823529 0.740741 +vt 0.748869 0.759259 +vt 0.748869 0.759259 +vt 0.748869 0.759259 +vt 0.748869 0.759259 +vt 0.823529 0.740741 +vt 0.352941 0.888889 +vt 0.180995 0.876543 +vt 0.352941 0.876543 +vt 0.352941 0.827160 +vt 0.180995 0.814815 +vt 0.352941 0.814815 +vt 0.352941 0.851852 +vt 0.180995 0.839506 +vt 0.352941 0.839506 +vt 0.352941 0.790123 +vt 0.180995 0.777778 +vt 0.352941 0.777778 +vt 0.352941 0.901235 +vt 0.180995 0.888889 +vt 0.352941 0.864198 +vt 0.180995 0.851852 +vt 0.352941 0.802469 +vt 0.180995 0.790123 +vt 0.352941 0.765432 +vt 0.180995 0.753086 +vt 0.352941 0.753086 +vt 0.180995 0.864198 +vt 0.180995 0.802469 +vt 0.180995 0.827160 +vt 0.180995 0.765432 +vt 0.158371 0.790123 +vt 0.158371 0.753086 +vt 0.158371 0.864198 +vt 0.158371 0.814815 +vt 0.158371 0.802469 +vt 0.158371 0.827160 +vt 0.158371 0.765432 +vt 0.158371 0.888889 +vt 0.158371 0.876543 +vt 0.158371 0.839506 +vt 0.158371 0.777778 +vt 0.158371 0.901235 +vt 0.158371 0.851852 +vt 0.135747 0.845679 +vt 0.135747 0.858025 +vt 0.135747 0.870370 +vt 0.135747 0.882716 +vt 0.135747 0.895062 +vt 0.135747 0.759259 +vt 0.135747 0.771605 +vt 0.135747 0.783951 +vt 0.135747 0.796296 +vt 0.135747 0.808642 +vt 0.135747 0.820988 +vt 0.135747 0.833333 +vt 0.180995 0.901235 +vn -0.0000 0.0000 -1.0000 +vn 0.9797 -0.2005 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.6635 0.7482 0.0000 +vn 0.2773 0.4804 0.8321 +vn 0.2773 0.4804 -0.8321 +vn -0.9797 0.2005 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.6635 -0.7482 0.0000 +vn -0.2773 -0.4804 0.8321 +vn -0.2773 -0.4804 -0.8321 +vn 0.3162 -0.9487 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.3162 0.9487 0.0000 +vn 0.5547 0.0000 0.8320 +vn 0.5547 0.0000 -0.8321 +vn -0.3162 0.9487 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.3162 -0.9487 0.0000 +vn -0.5547 0.0000 0.8320 +vn -0.5547 0.0000 -0.8321 +vn -0.6635 -0.7482 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.9797 0.2005 0.0000 +vn 0.2773 -0.4804 0.8321 +vn 0.2773 -0.4804 -0.8321 +vn 0.6635 0.7482 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.9797 -0.2005 0.0000 +vn -0.2773 0.4804 0.8321 +vn -0.2773 0.4804 -0.8321 +vn 0.5547 0.0000 0.8321 +vn -0.5547 0.0000 0.8321 +vn -0.8656 -0.4998 0.0310 +vn -0.8660 -0.5000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.4998 0.8656 0.0310 +vn -0.8660 0.5000 0.0000 +vn -0.4998 0.8656 0.0310 +vn 0.8656 -0.4998 0.0310 +vn 0.8660 -0.5000 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.4998 -0.8656 0.0310 +vn -0.8656 0.4998 0.0310 +vn 0.8660 0.5000 0.0000 +vn 0.9995 0.0000 0.0310 +vn -0.0000 -0.9995 0.0310 +vn -0.9995 -0.0000 0.0310 +vn 0.8656 0.4998 0.0310 +vn -0.0000 0.9995 0.0310 +vn 0.4998 -0.8656 0.0310 +vn 0.9735 0.0000 0.2289 +vn -0.0000 -0.9735 0.2289 +vn -0.9735 -0.0000 0.2289 +vn 0.4867 0.8430 0.2289 +vn 0.8430 0.4867 0.2289 +vn 0.0000 0.9735 0.2289 +vn 0.4867 -0.8430 0.2289 +vn -0.4867 -0.8430 0.2289 +vn -0.8430 -0.4867 0.2289 +vn -0.4867 0.8430 0.2289 +vn 0.8430 -0.4867 0.2289 +vn -0.8430 0.4867 0.2289 +vn -0.0000 0.0000 1.0000 +s off +f 396/564/96 394/565/96 402/566/96 +f 429/567/97 432/568/97 430/569/97 +f 431/570/98 433/571/98 435/572/98 +f 434/573/99 435/572/99 433/571/99 +f 432/574/100 435/572/100 436/575/100 +f 434/576/101 429/567/101 430/577/101 +f 437/578/102 440/579/102 438/580/102 +f 439/581/103 441/582/103 443/583/103 +f 442/584/104 443/583/104 441/582/104 +f 440/585/105 443/583/105 444/586/105 +f 438/587/106 441/582/106 437/578/106 +f 445/588/107 448/589/107 446/590/107 +f 447/591/108 449/592/108 451/593/108 +f 450/594/109 451/593/109 449/592/109 +f 448/595/110 451/593/110 452/596/110 +f 450/597/111 445/588/111 446/598/111 +f 453/599/112 456/600/112 454/601/112 +f 455/602/113 457/603/113 459/604/113 +f 458/605/114 459/604/114 457/603/114 +f 456/606/115 459/604/115 460/607/115 +f 458/608/116 453/599/116 454/609/116 +f 462/610/117 463/611/117 464/612/117 +f 463/611/118 465/613/118 467/614/118 +f 466/615/119 467/614/119 465/613/119 +f 464/616/120 467/614/120 468/617/120 +f 466/618/121 461/619/121 462/620/121 +f 469/621/122 472/622/122 470/623/122 +f 471/624/123 473/625/123 475/626/123 +f 474/627/124 475/626/124 473/625/124 +f 472/628/125 475/626/125 476/629/125 +f 470/630/126 473/625/126 469/621/126 +f 394/565/96 393/631/96 402/566/96 +f 393/631/96 392/632/96 402/566/96 +f 392/632/96 403/633/96 402/566/96 +f 402/566/96 401/634/96 400/635/96 +f 400/635/96 399/636/96 398/637/96 +f 398/637/96 397/638/96 396/564/96 +f 396/564/96 395/639/96 394/565/96 +f 402/566/96 400/635/96 398/637/96 +f 398/637/96 396/564/96 402/566/96 +f 429/567/97 431/570/97 432/568/97 +f 431/570/98 429/567/98 433/571/98 +f 434/573/99 436/640/99 435/572/99 +f 432/574/100 431/570/100 435/572/100 +f 434/576/101 433/571/101 429/567/101 +f 437/578/102 439/581/102 440/579/102 +f 439/581/103 437/578/103 441/582/103 +f 442/584/104 444/641/104 443/583/104 +f 440/585/105 439/581/105 443/583/105 +f 438/587/106 442/642/106 441/582/106 +f 445/588/107 447/591/107 448/589/107 +f 447/591/108 445/588/108 449/592/108 +f 450/594/109 452/643/109 451/593/109 +f 448/595/127 447/591/127 451/593/127 +f 450/597/111 449/592/111 445/588/111 +f 453/599/112 455/602/112 456/600/112 +f 455/602/113 453/599/113 457/603/113 +f 458/605/114 460/644/114 459/604/114 +f 456/606/128 455/602/128 459/604/128 +f 458/608/116 457/603/116 453/599/116 +f 462/610/117 461/619/117 463/611/117 +f 463/611/118 461/619/118 465/613/118 +f 466/615/119 468/645/119 467/614/119 +f 464/616/120 463/611/120 467/614/120 +f 466/618/121 465/613/121 461/619/121 +f 469/621/122 471/624/122 472/622/122 +f 471/624/123 469/621/123 473/625/123 +f 474/627/124 476/646/124 475/626/124 +f 472/628/125 471/624/125 475/626/125 +f 470/630/126 474/647/126 473/625/126 +s 1 +f 397/648/103 408/649/129 396/650/130 +f 392/651/131 415/652/132 403/653/98 +f 394/654/133 405/655/134 393/656/123 +f 401/657/108 412/658/135 400/659/136 +f 398/660/137 409/661/138 397/648/103 +f 395/662/113 406/663/139 394/654/133 +f 402/664/140 413/665/141 401/657/108 +f 399/666/118 410/667/142 398/668/137 +f 396/650/130 407/669/143 395/662/113 +f 403/653/98 414/670/144 402/664/140 +f 393/656/123 404/671/145 392/651/131 +f 400/659/136 411/672/146 399/666/118 +f 414/670/144 425/673/147 413/665/141 +f 411/672/146 422/674/148 410/667/142 +f 408/649/129 419/675/149 407/669/143 +f 414/670/144 427/676/150 426/677/151 +f 405/655/134 416/678/152 404/671/145 +f 412/658/135 423/679/153 411/672/146 +f 408/649/129 421/680/154 420/681/155 +f 404/671/145 427/676/150 415/652/132 +f 406/663/139 417/682/156 405/655/134 +f 413/665/141 424/683/157 412/658/135 +f 409/661/138 422/684/148 421/680/154 +f 407/669/143 418/685/158 406/663/139 +f 417/682/156 418/685/158 428/686/159 +f 418/685/158 419/675/149 428/687/159 +f 419/675/149 420/681/155 428/688/159 +f 420/681/155 421/680/154 428/689/159 +f 421/680/154 422/684/148 428/690/159 +f 422/674/148 423/679/153 428/691/159 +f 423/679/153 424/683/157 428/692/159 +f 424/683/157 425/673/147 428/693/159 +f 425/673/147 426/677/151 428/694/159 +f 426/677/151 427/676/150 428/695/159 +f 427/676/150 416/678/152 428/696/159 +f 416/678/152 417/682/156 428/697/159 +f 397/648/103 409/661/138 408/649/129 +f 392/651/131 404/671/145 415/652/132 +f 394/654/133 406/663/139 405/655/134 +f 401/657/108 413/665/141 412/658/135 +f 398/660/137 410/698/142 409/661/138 +f 395/662/113 407/669/143 406/663/139 +f 402/664/140 414/670/144 413/665/141 +f 399/666/118 411/672/146 410/667/142 +f 396/650/130 408/649/129 407/669/143 +f 403/653/98 415/652/132 414/670/144 +f 393/656/123 405/655/134 404/671/145 +f 400/659/136 412/658/135 411/672/146 +f 414/670/144 426/677/151 425/673/147 +f 411/672/146 423/679/153 422/674/148 +f 408/649/129 420/681/155 419/675/149 +f 414/670/144 415/652/132 427/676/150 +f 405/655/134 417/682/156 416/678/152 +f 412/658/135 424/683/157 423/679/153 +f 408/649/129 409/661/138 421/680/154 +f 404/671/145 416/678/152 427/676/150 +f 406/663/139 418/685/158 417/682/156 +f 413/665/141 425/673/147 424/683/157 +f 409/661/138 410/698/142 422/684/148 +f 407/669/143 419/675/149 418/685/158 +o Launcher +v -0.250000 1.433012 -1.437500 +v -0.433013 1.250000 -1.437500 +v -0.500000 1.000000 -1.437500 +v -0.433012 0.750000 -1.437500 +v -0.250000 0.566987 -1.437500 +v 0.000000 0.500000 -1.437500 +v 0.250000 0.566987 -1.437500 +v 0.433012 0.750000 -1.437500 +v 0.500000 1.000000 -1.437500 +v 0.433012 1.250000 -1.437500 +v 0.000000 1.500000 -1.437500 +v 0.250000 1.433012 -1.437500 +v 0.000000 1.500000 -6.687500 +v 0.250000 1.433012 -6.687500 +v 0.433012 1.250000 -6.687500 +v 0.500000 1.000000 -6.687500 +v 0.433012 0.750000 -6.687500 +v 0.250000 0.566987 -6.687500 +v 0.000000 0.500000 -6.687500 +v -0.250000 0.566987 -6.687500 +v -0.433012 0.750000 -6.687500 +v -0.500000 1.000000 -6.687500 +v -0.433013 1.250000 -6.687500 +v -0.250000 1.433012 -6.687500 +v 0.218750 1.378889 -6.687500 +v 0.000000 1.437503 -6.687500 +v 0.378886 1.218753 -6.687500 +v 0.437500 1.000003 -6.687500 +v 0.378886 0.781253 -6.687500 +v 0.218750 0.621117 -6.687500 +v 0.000000 0.562503 -6.687500 +v -0.218750 0.621117 -6.687500 +v -0.378886 0.781253 -6.687500 +v -0.437500 1.000003 -6.687500 +v -0.378886 1.218753 -6.687500 +v -0.218750 1.378889 -6.687500 +v 0.218750 1.378889 -1.437500 +v 0.000000 1.437503 -1.437500 +v 0.378886 1.218753 -1.437500 +v 0.437500 1.000003 -1.437500 +v 0.378886 0.781253 -1.437500 +v 0.218750 0.621117 -1.437500 +v 0.000000 0.562503 -1.437500 +v -0.218750 0.621117 -1.437500 +v -0.378886 0.781253 -1.437500 +v -0.437500 1.000003 -1.437500 +v -0.378886 1.218753 -1.437500 +v -0.218750 1.378889 -1.437500 +v 0.000000 1.625000 1.687500 +v 0.312500 1.541266 1.687500 +v 0.541266 1.312500 1.687500 +v 0.625000 0.999999 1.687500 +v -0.625000 0.999999 1.687500 +v -0.541266 1.312500 1.687500 +v -0.312500 1.541266 1.687500 +v -0.250000 1.433012 1.687500 +v -0.433013 1.250000 1.687500 +v 0.000000 1.625000 0.687500 +v 0.312500 1.541266 0.687500 +v 0.541266 1.312500 0.687500 +v 0.625000 0.999999 0.687500 +v -0.625000 0.999999 0.687500 +v -0.541266 1.312500 0.687500 +v -0.312500 1.541266 0.687500 +v 0.000000 1.625000 -1.437500 +v 0.312500 1.541266 -1.437500 +v 0.541266 1.312500 -1.437500 +v 0.625000 0.999999 -1.437500 +v -0.625000 0.999999 -1.437500 +v -0.541266 1.312500 -1.437500 +v -0.312500 1.541266 -1.437500 +v 0.000000 1.625000 -1.937500 +v 0.312500 1.541266 -1.937500 +v 0.541266 1.312500 -1.937500 +v 0.625000 0.999999 -1.937500 +v -0.625000 0.999999 -1.937500 +v -0.541266 1.312500 -1.937500 +v -0.312500 1.541266 -1.937500 +v 0.541266 0.687500 -1.437500 +v 0.312500 0.458734 -1.437500 +v 0.000000 0.375000 -1.437500 +v -0.312500 0.458734 -1.437500 +v -0.541265 0.687499 -1.437500 +v 0.541266 0.687500 -5.687500 +v 0.312500 0.458734 -5.687500 +v 0.000000 0.375000 -5.687500 +v -0.312500 0.458734 -5.687500 +v -0.541265 0.687499 -5.687500 +v 0.433012 0.750000 -5.687500 +v 0.250000 0.566987 -5.687500 +v 0.000000 0.500000 -5.687500 +v -0.250000 0.566987 -5.687500 +v -0.433012 0.750000 -5.687500 +v 0.625000 0.999999 -5.687500 +v -0.625000 0.999999 -5.687500 +v 0.500000 1.000000 -5.687500 +v -0.500000 1.000000 -5.687500 +v -0.250000 1.433012 -1.937500 +v -0.433013 1.250000 -1.937500 +v -0.500000 1.000000 -1.937500 +v 0.500000 1.000000 -1.937500 +v 0.433012 1.250000 -1.937500 +v 0.000000 1.500000 -1.937500 +v 0.250000 1.433012 -1.937500 +v 0.750000 0.250000 1.687500 +v 0.750000 1.000000 1.687500 +v -0.750000 1.000000 1.687500 +v -0.750000 0.250000 1.687500 +v -0.500000 1.000000 1.687500 +v -0.433012 0.750000 1.687500 +v -0.250000 0.566987 1.687500 +v 0.000000 0.500000 1.687500 +v 0.250000 0.566987 1.687500 +v 0.433013 0.750000 1.687500 +v 0.500000 1.000000 1.687500 +v 0.433013 1.250000 1.687500 +v 0.250000 1.433012 1.687500 +v 0.000000 1.500000 1.687500 +v 0.750000 0.250000 0.687500 +v -0.750000 0.250000 0.687500 +v 0.750000 0.750000 1.562500 +v -0.750000 0.750000 1.562500 +v 0.750000 0.750000 0.687500 +v -0.750000 0.750000 0.687500 +v 0.750000 1.000000 0.687500 +v -0.750000 1.000000 0.687500 +v 0.625000 1.000000 1.687500 +v 0.541266 0.687500 1.687500 +v 0.312500 0.458734 1.687500 +v -0.625000 1.000000 1.687500 +v -0.541265 0.687500 1.687500 +v -0.312500 0.458734 1.687500 +v 0.000000 0.375000 1.687500 +v 0.541266 0.687500 1.687500 +v 0.312500 0.458734 1.687500 +v -0.541265 0.687500 1.687500 +v -0.312500 0.458734 1.687500 +v 0.000000 0.375000 1.687500 +v 0.541266 0.687500 0.687500 +v 0.312500 0.458734 0.687500 +v -0.541265 0.687500 0.687500 +v -0.312500 0.458734 0.687500 +v 0.000000 0.375000 0.687500 +v -0.750000 0.437500 0.687500 +v 0.750000 0.437500 0.687500 +v 0.500000 0.750000 1.562500 +v -0.500000 0.750000 1.562500 +v 0.500000 0.750000 0.687500 +v 0.625000 1.000000 0.687500 +v -0.625000 0.999999 0.687500 +v -0.500000 0.750000 0.687500 +v 0.750000 0.125000 0.687500 +v -0.750000 0.125000 0.687500 +v -0.875000 0.250000 1.437500 +v 0.875000 0.249999 1.437500 +v -0.875000 0.125000 1.470994 +v 0.875000 0.124999 1.470994 +v -0.875000 0.033493 1.562500 +v 0.875000 0.033493 1.562500 +v -0.875000 -0.000000 1.687500 +v 0.875000 -0.000000 1.687500 +v -0.875000 0.033493 1.812500 +v 0.875000 0.033493 1.812500 +v -0.875000 0.125000 1.904006 +v 0.875000 0.124999 1.904006 +v -0.875000 0.250000 1.937500 +v 0.875000 0.249999 1.937500 +v -0.875000 0.375000 1.904006 +v 0.875000 0.374999 1.904006 +v -0.875000 0.466506 1.812500 +v 0.875000 0.466506 1.812500 +v -0.875000 0.500000 1.687500 +v 0.875000 0.499999 1.687500 +v -0.875000 0.466506 1.562500 +v 0.875000 0.466506 1.562500 +v -0.875000 0.375000 1.470994 +v 0.875000 0.375000 1.470994 +v -0.750000 0.125000 -1.437500 +v 0.750000 0.125000 -1.437500 +v 0.750000 1.750000 0.687500 +v -0.750000 1.750000 0.687500 +v -0.750000 1.750000 -1.437500 +v 0.750000 1.750000 -1.437500 +v -0.875000 1.750000 0.812500 +v 0.875000 1.750000 0.812500 +v -0.875000 1.750000 -1.562500 +v 0.875000 1.750000 -1.562500 +v -0.875000 2.500000 -1.562500 +v -0.875000 2.500000 0.812500 +v 0.875000 2.500000 0.812500 +v 0.875000 2.500000 -1.562500 +v 0.000000 1.875000 -6.337500 +v 0.437500 1.757772 -6.337500 +v 0.757772 1.437500 -6.337500 +v 0.875000 0.999999 -6.337500 +v 0.757772 0.562500 -6.337500 +v 0.437500 0.242228 -6.337500 +v 0.000000 0.125000 -6.337500 +v -0.437500 0.242228 -6.337500 +v -0.757772 0.562499 -6.337500 +v -0.875000 0.999999 -6.337500 +v -0.757772 1.437499 -6.337500 +v -0.437500 1.757772 -6.337500 +v 0.000000 1.500000 -6.687500 +v 0.250000 1.433012 -6.687500 +v 0.433013 1.250000 -6.687500 +v 0.500000 1.000000 -6.687500 +v 0.433013 0.750000 -6.687500 +v 0.250000 0.566987 -6.687500 +v 0.000000 0.500000 -6.687500 +v -0.250000 0.566987 -6.687500 +v -0.433012 0.750000 -6.687500 +v -0.500000 1.000000 -6.687500 +v -0.433013 1.250000 -6.687500 +v -0.250000 1.433012 -6.687500 +v 0.000000 1.500000 -5.687500 +v 0.250000 1.433012 -5.687500 +v 0.433013 1.250000 -5.687500 +v 0.500000 1.000000 -5.687500 +v 0.433013 0.750000 -5.687500 +v 0.250000 0.566987 -5.687500 +v 0.000000 0.500000 -5.687500 +v -0.250000 0.566987 -5.687500 +v -0.433012 0.750000 -5.687500 +v -0.500000 1.000000 -5.687500 +v -0.433013 1.250000 -5.687500 +v -0.250000 1.433012 -5.687500 +v 0.062500 1.687500 -6.062500 +v -0.062500 1.687500 -6.062500 +v 0.062500 1.687500 -5.562500 +v -0.062500 1.687500 -5.562500 +v 0.062500 1.437500 -5.062500 +v -0.062500 1.437500 -5.062500 +v 0.062500 1.437500 -6.062500 +v -0.062500 1.437500 -6.062500 +v -0.564143 1.397877 -6.062500 +v -0.626643 1.289623 -6.062500 +v -0.564143 1.397877 -5.562500 +v -0.626643 1.289623 -5.562500 +v -0.347636 1.272877 -5.062500 +v -0.410136 1.164623 -5.062500 +v -0.347636 1.272877 -6.062500 +v -0.410136 1.164623 -6.062500 +v -0.289623 1.626642 -6.062500 +v -0.397877 1.564142 -6.062500 +v -0.289623 1.626642 -5.562500 +v -0.397877 1.564142 -5.562500 +v -0.164623 1.410136 -5.062500 +v -0.272877 1.347636 -5.062500 +v -0.164623 1.410136 -6.062500 +v -0.272877 1.347636 -6.062500 +v 0.397877 1.564142 -6.062500 +v 0.289623 1.626642 -6.062500 +v 0.397877 1.564142 -5.562500 +v 0.289623 1.626642 -5.562500 +v 0.272877 1.347636 -5.062500 +v 0.164624 1.410136 -5.062500 +v 0.272877 1.347636 -6.062500 +v 0.164623 1.410136 -6.062500 +v 0.626643 1.289623 -6.062500 +v 0.564143 1.397877 -6.062500 +v 0.626643 1.289623 -5.562500 +v 0.564143 1.397877 -5.562500 +v 0.410136 1.164623 -5.062500 +v 0.347636 1.272877 -5.062500 +v 0.410136 1.164623 -6.062500 +v 0.347636 1.272877 -6.062500 +v -0.750000 0.750000 -1.437500 +v -0.750000 1.000000 -1.437500 +v 0.750000 0.750000 -5.562500 +v -0.750000 0.750000 -5.562500 +v 0.750000 1.000000 -5.562500 +v -0.750000 1.000000 -5.562500 +v -0.625000 1.000000 -1.437500 +v -0.500000 0.750000 -5.562500 +v -0.625000 1.000000 -5.562500 +v 0.625000 1.000000 -5.562500 +v 0.500000 0.750000 -5.562500 +v 0.750000 0.625000 0.937500 +v 0.661612 0.588388 0.937500 +v 0.625000 0.500000 0.937500 +v 0.661612 0.411612 0.937500 +v 0.750000 0.375000 0.937500 +v 0.838388 0.411612 0.937500 +v 0.875000 0.500000 0.937500 +v 0.838388 0.588388 0.937500 +v 0.750000 0.625000 -2.437500 +v 0.661612 0.588388 -2.437500 +v 0.625000 0.500000 -2.437500 +v 0.661612 0.411612 -2.437500 +v 0.750000 0.375000 -2.437500 +v 0.838388 0.411612 -2.437500 +v 0.875000 0.500000 -2.437500 +v 0.838388 0.588388 -2.437500 +v 0.786612 0.625000 -2.525888 +v 0.724112 0.588388 -2.588388 +v 0.698223 0.500000 -2.614277 +v 0.724112 0.411612 -2.588388 +v 0.786612 0.375000 -2.525888 +v 0.849112 0.411612 -2.463388 +v 0.849112 0.588388 -2.463388 +v 0.875000 0.625000 -2.562500 +v 0.875000 0.588388 -2.650888 +v 0.875000 0.500000 -2.687500 +v 0.875000 0.411612 -2.650888 +v 0.875000 0.375000 -2.562500 +v 0.875000 0.411612 -2.474112 +v 0.875000 0.588388 -2.474112 +v 0.963388 0.536612 -2.437500 +v 0.900888 0.599112 -2.650888 +v 0.963388 0.536612 -2.687500 +v 1.025888 0.474112 -2.650888 +v 1.051777 0.448223 -2.562500 +v 1.025888 0.474112 -2.474112 +v 0.900888 0.599112 -2.474112 +v 1.000000 0.625000 -2.437500 +v 0.911612 0.625000 -2.650888 +v 1.000000 0.625000 -2.687500 +v 1.088388 0.625000 -2.650888 +v 1.125000 0.625000 -2.562500 +v 1.088388 0.625000 -2.474112 +v 0.911612 0.625000 -2.474112 +v 0.875000 2.000000 -2.562500 +v 1.000000 2.000000 -2.437500 +v 0.911612 2.000000 -2.650888 +v 1.000000 2.000000 -2.687500 +v 1.088388 2.000000 -2.650888 +v 1.125000 2.000000 -2.562500 +v 1.088388 2.000000 -2.474112 +v 0.911612 2.000000 -2.474112 +v 0.963388 2.088388 -2.437500 +v 0.900888 2.025888 -2.650888 +v 0.963388 2.088388 -2.687500 +v 1.025888 2.150888 -2.650888 +v 1.051777 2.176777 -2.562500 +v 1.025888 2.150888 -2.474112 +v 0.900888 2.025888 -2.474112 +v 0.875000 2.125000 -2.437500 +v 0.875000 2.036612 -2.650888 +v 0.875000 2.125000 -2.687500 +v 0.875000 2.213388 -2.650888 +v 0.875000 2.250000 -2.562500 +v 0.875000 2.213388 -2.474112 +v 0.875000 2.036612 -2.474112 +v -1.125000 2.000000 -2.562500 +v -1.125000 2.125000 -2.437500 +v -1.125000 2.036612 -2.650888 +v -1.125000 2.125000 -2.687500 +v -1.125000 2.213388 -2.650888 +v -1.125000 2.250000 -2.562500 +v -1.125000 2.213388 -2.474112 +v -1.125000 2.036612 -2.474112 +v -1.213388 2.000000 -2.525888 +v -1.275888 2.036612 -2.588388 +v -1.301776 2.125000 -2.614277 +v -1.275888 2.213388 -2.588388 +v -1.213388 2.250000 -2.525888 +v -1.150888 2.213388 -2.463388 +v -1.150888 2.036612 -2.463388 +v -1.250000 2.000000 -2.437500 +v -1.338388 2.036612 -2.437500 +v -1.375000 2.125000 -2.437500 +v -1.338388 2.213388 -2.437500 +v -1.250000 2.250000 -2.437500 +v -1.161612 2.213388 -2.437500 +v -1.161612 2.036612 -2.437500 +v -1.125000 2.125000 1.687500 +v -1.250000 2.000000 1.687500 +v -1.338388 2.036612 1.687500 +v -1.375000 2.125000 1.687500 +v -1.338388 2.213388 1.687500 +v -1.250000 2.250000 1.687500 +v -1.161612 2.213388 1.687500 +v -1.161612 2.036612 1.687500 +v 0.750000 0.551777 1.114277 +v 0.661612 0.525888 1.088388 +v 0.625000 0.463388 1.025888 +v 0.661612 0.400888 0.963388 +v 0.838388 0.400888 0.963388 +v 0.875000 0.463388 1.025888 +v 0.838388 0.525888 1.088388 +v 0.750000 0.375000 1.187500 +v 0.661612 0.375000 1.150888 +v 0.625000 0.375000 1.062500 +v 0.661612 0.375000 0.974112 +v 0.838388 0.375000 0.974112 +v 0.875000 0.375000 1.062500 +v 0.838388 0.375000 1.150888 +v 0.713388 0.286612 0.937500 +v 0.713388 0.286612 1.187500 +v 0.650888 0.349112 1.150888 +v 0.650888 0.349112 0.974112 +v 0.775888 0.224112 0.974112 +v 0.801777 0.198223 1.062500 +v 0.775888 0.224112 1.150888 +v 0.625000 0.250000 0.937500 +v 0.625000 0.250000 1.187500 +v 0.625000 0.338388 1.150888 +v 0.625000 0.338388 0.974112 +v 0.625000 0.161612 0.974112 +v 0.625000 0.125000 1.062500 +v 0.625000 0.161612 1.150888 +v -1.125000 0.375000 1.062500 +v -1.125000 0.250000 0.937500 +v -1.125000 0.250000 1.187500 +v -1.125000 0.338388 1.150888 +v -1.125000 0.338388 0.974112 +v -1.125000 0.161612 0.974112 +v -1.125000 0.125000 1.062500 +v -1.125000 0.161612 1.150888 +v -1.125000 2.088388 1.775888 +v -1.338388 2.025889 1.713389 +v -1.375000 2.088389 1.775888 +v -1.338388 2.150889 1.838388 +v -1.250000 2.176777 1.864277 +v -1.161612 2.150889 1.838388 +v -1.161612 2.025889 1.713389 +v -1.125000 2.000000 1.812500 +v -1.338388 2.000000 1.724112 +v -1.375000 2.000000 1.812500 +v -1.338388 2.000000 1.900889 +v -1.250000 2.000000 1.937500 +v -1.161612 2.000000 1.900889 +v -1.161612 2.000000 1.724112 +v -1.250000 0.375000 1.687500 +v -1.125000 0.375000 1.812500 +v -1.338388 0.375000 1.724112 +v -1.375000 0.375000 1.812500 +v -1.338388 0.375000 1.900889 +v -1.250000 0.375000 1.937500 +v -1.161612 0.375000 1.900889 +v -1.161612 0.375000 1.724112 +v -1.213388 0.375000 1.099112 +v -1.301777 0.250000 1.010723 +v -1.150888 0.338388 1.161612 +v -1.275888 0.338388 1.036612 +v -1.275888 0.161612 1.036612 +v -1.213388 0.125000 1.099112 +v -1.150888 0.161612 1.161612 +v -1.250000 0.375000 1.187500 +v -1.375000 0.250000 1.187500 +v -1.161612 0.338388 1.187500 +v -1.338388 0.338388 1.187500 +v -1.338388 0.161612 1.187500 +v -1.250000 0.125000 1.187500 +v -1.161612 0.161612 1.187500 +v -1.125000 0.250000 1.687500 +v -1.125000 0.286612 1.775889 +v -1.375000 0.250000 1.687500 +v -1.161612 0.338388 1.687500 +v -1.338388 0.338388 1.687500 +v -1.338388 0.161612 1.687500 +v -1.250000 0.125000 1.687500 +v -1.161612 0.161612 1.687500 +v -1.338388 0.349112 1.713389 +v -1.375000 0.286612 1.775889 +v -1.338388 0.224112 1.838389 +v -1.250000 0.198223 1.864277 +v -1.161612 0.224112 1.838389 +v -1.161612 0.349112 1.713389 +v -0.750000 0.437500 1.562500 +v 0.750000 0.437500 1.562500 +v 0.500000 0.437500 1.562500 +v -0.500000 0.437500 1.562500 +v 0.500000 0.437500 0.687500 +v -0.500000 0.437500 0.687500 +v 0.625000 1.000000 -5.312500 +v 0.750000 1.000000 -5.312500 +v 0.750000 0.250000 -5.312500 +v 0.541266 0.687500 -5.312500 +v 0.312500 0.458734 -5.312500 +v -0.625000 1.000000 -5.312500 +v -0.750000 1.000000 -5.312500 +v -0.750000 0.250000 -5.312500 +v -0.541265 0.687500 -5.312500 +v -0.312500 0.458734 -5.312500 +v 0.000000 0.375000 -5.312500 +v 0.750000 0.250000 -1.437500 +v -0.750000 0.250000 -1.437500 +v 0.750000 0.437500 -1.437500 +v -0.750000 0.437500 -1.437500 +v 0.750000 0.437500 -4.812500 +v -0.750000 0.437500 -4.812500 +v 0.500000 0.437500 -1.437500 +v 0.500000 0.437500 -4.812500 +v -0.500000 0.437500 -1.437500 +v -0.500000 0.437500 -4.812500 +v 0.750000 0.750000 -4.812500 +v -0.750000 0.750000 -4.812500 +v 0.500000 0.750000 -1.437500 +v 0.500000 0.750000 -4.812500 +v -0.500000 0.750000 -1.437500 +v -0.500000 0.750000 -4.812500 +v 0.750000 0.750000 -1.437500 +v 0.750000 1.000000 -1.437500 +v 0.625000 1.000000 -1.437500 +v 0.750000 0.750000 -5.312500 +v -0.750000 0.750000 -5.312500 +v 0.750000 1.000000 -5.312500 +v -0.750000 1.000000 -5.312500 +v -0.500000 0.750000 -5.312500 +v -0.625000 1.000000 -5.312500 +v 0.625000 1.000000 -5.312500 +v 0.500000 0.750000 -5.312500 +v 0.750000 0.250000 -5.312500 +v 0.750000 -0.750000 -5.312500 +v 0.750000 -0.750000 -4.812500 +v 0.750000 -0.250000 -4.312500 +v 0.750000 -0.250000 -3.812500 +v 0.750000 0.250000 -3.312500 +v 0.625000 0.250000 -5.312500 +v 0.625000 -0.750000 -5.312500 +v 0.625000 -0.750000 -4.812500 +v 0.625000 -0.250000 -4.312500 +v 0.625000 -0.250000 -3.812500 +v 0.625000 0.250000 -3.312500 +v -0.625000 0.250000 -5.312500 +v -0.625000 -0.750000 -5.312500 +v -0.625000 -0.750000 -4.812500 +v -0.625000 -0.250000 -4.312500 +v -0.625000 -0.250000 -3.812500 +v -0.625000 0.250000 -3.312500 +v -0.750000 0.250000 -5.312500 +v -0.750000 -0.750000 -5.312500 +v -0.750000 -0.750000 -4.812500 +v -0.750000 -0.250000 -4.312500 +v -0.750000 -0.250000 -3.812500 +v -0.750000 0.250000 -3.312500 +v -0.625000 -0.375000 -4.937500 +v -0.625000 -0.625000 -4.937500 +v -0.625000 -0.375000 -5.187500 +v -0.625000 -0.625000 -5.187500 +v 0.625000 -0.375000 -4.937500 +v 0.625000 -0.625000 -4.937500 +v 0.625000 -0.375000 -5.187500 +v 0.625000 -0.625000 -5.187500 +v 0.000000 1.500000 0.687500 +v 0.250000 1.433012 0.687500 +v 0.433013 1.250000 0.687500 +v 0.500000 1.000000 0.687500 +v 0.433013 0.750000 0.687500 +v 0.250000 0.566987 0.687500 +v 0.000000 0.500000 0.687500 +v -0.250000 0.566987 0.687500 +v -0.433012 0.750000 0.687500 +v -0.500000 1.000000 0.687500 +v -0.433013 1.250000 0.687500 +v -0.250000 1.433012 0.687500 +vt 0.744344 0.246914 +vt 0.742081 0.271605 +vt 0.742081 0.246914 +vt 0.744344 0.222222 +vt 0.742081 0.222222 +vt 0.744344 0.197531 +vt 0.742081 0.197531 +vt 0.744344 0.172840 +vt 0.742081 0.172840 +vt 0.744344 0.148148 +vt 0.742081 0.148148 +vt 0.742081 0.123457 +vt 0.744344 0.123457 +vt 0.742081 0.098765 +vt 0.744344 0.098765 +vt 0.742081 0.074074 +vt 0.744344 0.074074 +vt 0.742081 0.049383 +vt 0.744344 0.049383 +vt 0.742081 0.024691 +vt 0.744344 0.024691 +vt 0.742081 0.000000 +vt 0.744344 -0.000000 +vt 0.744344 0.271605 +vt 0.742081 0.296296 +vt 0.511312 0.061728 +vt 0.515837 0.092593 +vt 0.511312 0.092593 +vt 0.515837 0.061728 +vt 0.511312 0.030864 +vt 0.515837 0.030864 +vt 0.515837 -0.000000 +vt 0.515837 0.370370 +vt 0.511312 0.339506 +vt 0.515837 0.339506 +vt 0.515837 0.308642 +vt 0.511312 0.277778 +vt 0.511312 0.308642 +vt 0.515837 0.277778 +vt 0.511312 0.246914 +vt 0.515837 0.246914 +vt 0.515837 0.216049 +vt 0.511312 0.216049 +vt 0.515837 0.185185 +vt 0.511312 0.185185 +vt 0.515837 0.154321 +vt 0.511312 0.123457 +vt 0.515837 0.123457 +vt 0.402715 0.864198 +vt 0.398190 0.839506 +vt 0.402715 0.839506 +vt 0.402715 0.888889 +vt 0.398190 0.864198 +vt 0.402715 0.592593 +vt 0.398190 0.617284 +vt 0.398190 0.592593 +vt 0.402715 0.641975 +vt 0.398190 0.641975 +vt 0.398190 0.666667 +vt 0.398190 0.814815 +vt 0.502262 0.790123 +vt 0.497738 0.814815 +vt 0.497738 0.790123 +vt 0.502262 0.765432 +vt 0.497738 0.765432 +vt 0.497738 0.740741 +vt 0.502262 0.740741 +vt 0.502262 0.716049 +vt 0.497738 0.716049 +vt 0.502262 0.691358 +vt 0.497738 0.691358 +vt 0.502262 0.666667 +vt 0.497738 0.666667 +vt 0.502262 0.654321 +vt 0.402715 0.666667 +vt 0.402715 0.814815 +vt 0.502262 0.827160 +vt 0.502262 0.814815 +vt 0.961538 0.086420 +vt 0.997738 0.234568 +vt 0.961538 0.234568 +vt 0.966063 0.283951 +vt 0.997738 0.308642 +vt 0.961538 0.308642 +vt 0.997738 0.012346 +vt 0.966063 0.037037 +vt 0.961538 0.012346 +vt 0.957014 0.160494 +vt 0.945701 0.216049 +vt 0.934389 0.234568 +vt 0.934389 0.086420 +vt 0.945701 0.104938 +vt 0.280543 0.493827 +vt 0.248869 0.469136 +vt 0.280543 0.469136 +vt 0.997738 0.320988 +vt 0.997738 -0.000000 +vt 0.248869 0.469136 +vt 0.280543 0.493827 +vt 0.248869 0.493827 +vt 0.669845 0.300369 +vt 0.678571 0.300369 +vt 0.678571 0.341606 +vt 0.945701 0.679012 +vt 0.868778 0.827160 +vt 0.868778 0.679012 +vt 0.681765 0.332892 +vt 0.674208 0.344796 +vt 0.666651 0.332892 +vt 0.841629 0.296296 +vt 0.746606 0.469136 +vt 0.746606 0.296296 +vt 0.814480 0.987654 +vt 0.814480 0.827160 +vt 0.945701 0.827160 +vt 0.868778 0.987654 +vt 1.000000 0.827160 +vt 0.945701 0.987654 +vt 0.737557 0.987654 +vt 0.737557 0.827160 +vt 0.746606 0.543210 +vt 0.841629 0.716049 +vt 0.746606 0.716049 +vt 0.904977 0.469136 +vt 0.841629 0.543210 +vt 0.841629 0.469136 +vt 0.683258 0.543210 +vt 0.683258 0.469136 +vt 1.000000 0.469136 +vt 0.904977 0.543210 +vt 0.040724 0.438272 +vt 0.058824 0.450617 +vt 0.040724 0.450617 +vt 0.058824 0.438272 +vt 0.076923 0.450617 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.040724 0.438272 +vt 0.058824 0.450617 +vt 0.040724 0.450617 +vt 0.058824 0.438272 +vt 0.076923 0.450617 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.040724 0.438272 +vt 0.058824 0.450617 +vt 0.040724 0.450617 +vt 0.058824 0.438272 +vt 0.076923 0.450617 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.040724 0.438272 +vt 0.058824 0.450617 +vt 0.040724 0.450617 +vt 0.058824 0.438272 +vt 0.076923 0.450617 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.040724 0.438272 +vt 0.058824 0.450617 +vt 0.040724 0.450617 +vt 0.058824 0.438272 +vt 0.076923 0.450617 +vt 0.040724 0.475309 +vt 0.040724 0.413580 +vt 0.502262 0.395062 +vt 0.497738 0.419753 +vt 0.493213 0.395062 +vt 0.656109 0.370370 +vt 0.638009 0.320988 +vt 0.656109 0.296296 +vt 0.484163 0.395062 +vt 0.488688 0.419753 +vt 0.484163 0.419753 +vt 0.656109 0.518519 +vt 0.552036 0.370370 +vt 0.239819 0.469136 +vt 0.248869 0.438272 +vt 0.280543 0.438272 +vt 0.289593 0.469136 +vt 0.280543 0.469136 +vt 0.280543 0.438272 +vt 0.248869 0.413580 +vt 0.280543 0.413580 +vt 0.966063 0.253086 +vt 0.280543 0.413580 +vt 0.248869 0.438272 +vt 0.248869 0.413580 +vt 0.966063 0.067901 +vt 0.997738 0.086420 +vt 0.660634 0.444444 +vt 0.683258 0.518519 +vt 0.671946 0.500000 +vt 0.671946 0.388889 +vt 0.683258 0.370370 +vt 0.647059 0.617284 +vt 0.561086 0.592593 +vt 0.647059 0.592593 +vt 0.647059 0.617284 +vt 0.561086 0.592593 +vt 0.647059 0.592593 +vt 0.647059 0.648148 +vt 0.561086 0.617284 +vt 0.552036 0.617284 +vt 0.561086 0.648148 +vt 0.552036 0.648148 +vt 0.647059 0.648148 +vt 0.561086 0.617284 +vt 0.656109 0.648148 +vt 0.656109 0.617284 +vt 0.552036 0.296296 +vt 0.552036 0.320988 +vt 0.552036 0.592593 +vt 0.638009 0.567901 +vt 0.656109 0.592593 +vt 0.656109 0.308642 +vt 0.552036 0.308642 +vt 0.638009 0.351852 +vt 0.656109 0.580247 +vt 0.552036 0.580247 +vt 0.561086 0.672840 +vt 0.561086 0.648148 +vt 0.638009 0.537037 +vt 0.552036 0.518519 +vt 0.511312 0.419753 +vt 0.502262 0.419753 +vt 0.475113 0.370370 +vt 0.484163 0.370370 +vt 0.502262 0.370370 +vt 0.511312 0.395062 +vt 0.484163 0.432099 +vt 0.475113 0.419753 +vt 0.475113 0.395062 +vt 0.511312 0.432099 +vt 0.502262 0.432099 +vt 0.556561 0.734568 +vt 0.574661 0.685185 +vt 0.592760 0.783951 +vt 0.633484 0.734568 +vt 0.669683 0.783951 +vt 0.597285 0.783951 +vt 0.520362 0.734568 +vt 0.538462 0.722222 +vt 0.538462 0.734568 +vt 0.556561 0.685185 +vt 0.574661 0.672840 +vt 0.592760 0.685185 +vt 0.556561 0.734568 +vt 0.574661 0.685185 +vt 0.592760 0.783951 +vt 0.556561 0.722222 +vt 0.592760 0.672840 +vt 0.633484 0.734568 +vt 0.669683 0.783951 +vt 0.597285 0.783951 +vt 0.520362 0.734568 +vt 0.538462 0.722222 +vt 0.538462 0.734568 +vt 0.556561 0.685185 +vt 0.574661 0.672840 +vt 0.592760 0.685185 +vt 0.556561 0.722222 +vt 0.592760 0.672840 +vt 0.886878 0.370370 +vt 0.841629 0.395062 +vt 0.841629 0.370370 +vt 0.886878 0.320988 +vt 0.841629 0.345679 +vt 0.841629 0.320988 +vt 0.886878 0.296296 +vt 0.841629 0.296296 +vt 0.886878 0.345679 +vt 0.561086 0.672840 +vt 0.647059 0.672840 +vt 0.744344 0.296296 +vt 0.511312 -0.000000 +vt 0.511312 0.370370 +vt 0.511312 0.154321 +vt 0.398190 0.888889 +vt 0.402715 0.617284 +vt 0.402715 0.654321 +vt 0.402715 0.827160 +vt 0.997738 0.283951 +vt 0.997738 0.037037 +vt 0.954751 0.191358 +vt 0.954751 0.129630 +vt 0.934389 0.222222 +vt 0.934389 0.098765 +vt 0.248869 0.493827 +vt 0.961538 0.320988 +vt 0.961538 -0.000000 +vt 0.681765 0.309083 +vt 0.682934 0.320988 +vt 0.681765 0.332892 +vt 0.674208 0.344796 +vt 0.665482 0.320988 +vt 0.669845 0.341606 +vt 0.666651 0.332892 +vt 0.666651 0.309083 +vt 0.674208 0.297179 +vt 0.665482 0.320988 +vt 0.666651 0.309083 +vt 0.669845 0.300369 +vt 0.674208 0.297179 +vt 0.678571 0.300369 +vt 0.681765 0.309083 +vt 0.682934 0.320988 +vt 0.678571 0.341606 +vt 0.669845 0.341606 +vt 1.000000 0.987654 +vt 1.000000 0.543210 +vt 0.076923 0.438272 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.076923 0.438272 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.076923 0.438272 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.076923 0.438272 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.076923 0.438272 +vt 0.076923 0.475309 +vt 0.076923 0.413580 +vt 0.493213 0.395062 +vt 0.239819 0.438272 +vt 0.289593 0.438272 +vt 0.997738 0.253086 +vt 0.997738 0.067901 +vt 0.662896 0.413580 +vt 0.662896 0.475309 +vt 0.683258 0.506173 +vt 0.683258 0.382716 +vt 0.552036 0.567901 +vt 0.552036 0.351852 +vt 0.647059 0.672840 +vt 0.552036 0.537037 +vt 0.511312 0.370370 +vt 0.475113 0.432099 +vt 0.520362 0.783951 +vt 0.597285 0.685185 +vt 0.615385 0.685185 +vt 0.651584 0.734568 +vt 0.520362 0.722222 +vt 0.556561 0.672840 +vt 0.520362 0.783951 +vt 0.597285 0.685185 +vt 0.615385 0.685185 +vt 0.651584 0.734568 +vt 0.520362 0.722222 +vt 0.556561 0.672840 +vt 0.886878 0.395062 +vt 0.552036 0.024691 +vt 0.552036 0.148148 +vt 0.934389 0.296296 +vt 0.552036 0.049383 +vt 0.552036 0.172840 +vt 0.934389 0.024691 +vt 0.552036 0.074074 +vt 0.552036 0.197531 +vt 0.934389 0.049383 +vt 0.552036 0.098765 +vt 0.934389 0.172840 +vt 0.552036 0.222222 +vt 0.934389 0.074074 +vt 0.552036 0.123457 +vt 0.934389 0.197531 +vt 0.552036 0.246914 +vt 0.934389 0.098765 +vt 0.934389 0.222222 +vt 0.552036 0.271605 +vt 0.934389 0.123457 +vt 0.934389 0.246914 +vt 0.552036 -0.000000 +vt 0.934389 0.148148 +vt 0.934389 0.271605 +vt 0.552036 0.185185 +vt 0.552036 0.246914 +vt 0.552036 0.154321 +vt 0.552036 0.216049 +vt 0.552036 0.123457 +vt 0.552036 0.277778 +vt 0.520362 0.740741 +vt 0.520362 0.716049 +vt 0.520362 0.691358 +vt 0.520362 0.666667 +vt 0.520362 0.790123 +vt 0.520362 0.765432 +vt 0.520362 0.814815 +vt 0.520362 0.617284 +vt 0.520362 0.592593 +vt 0.520362 0.864198 +vt 0.520362 0.839506 +vt 0.520362 0.641975 +vt 0.520362 0.888889 +vt 0.475113 0.246914 +vt 0.475113 0.277778 +vt 0.475113 0.092593 +vt 0.475113 0.123457 +vt 0.475113 -0.000000 +vt 0.475113 0.030864 +vt 0.475113 0.308642 +vt 0.475113 0.154321 +vt 0.475113 0.185185 +vt 0.475113 0.216049 +vt 0.475113 0.061728 +vt 0.475113 0.339506 +vt 0.475113 0.370370 +vt 0.552036 0.339506 +vt 0.552036 0.030864 +vt 0.552036 0.061728 +vt 0.552036 0.370370 +vt 0.552036 0.092593 +vt 0.552036 0.308642 +vt 0.746606 0.407407 +vt 0.683258 0.419753 +vt 0.683258 0.407407 +vt 0.746606 0.419753 +vt 0.683258 0.432099 +vt 0.746606 0.444444 +vt 0.683258 0.444444 +vt 0.746606 0.296296 +vt 0.683258 0.308642 +vt 0.683258 0.296296 +vt 0.746606 0.308642 +vt 0.683258 0.320988 +vt 0.746606 0.320988 +vt 0.683258 0.333333 +vt 0.746606 0.333333 +vt 0.683258 0.345679 +vt 0.746606 0.345679 +vt 0.683258 0.358025 +vt 0.746606 0.358025 +vt 0.683258 0.370370 +vt 0.746606 0.370370 +vt 0.683258 0.382716 +vt 0.746606 0.382716 +vt 0.683258 0.395062 +vt 0.746606 0.395062 +vt 0.909502 0.345679 +vt 0.923077 0.308642 +vt 0.923077 0.333333 +vt 0.909502 0.296296 +vt 0.923077 0.333333 +vt 0.909502 0.345679 +vt 0.909502 0.345679 +vt 0.923077 0.308642 +vt 0.923077 0.333333 +vt 0.909502 0.296296 +vt 0.923077 0.333333 +vt 0.909502 0.345679 +vt 0.909502 0.345679 +vt 0.923077 0.308642 +vt 0.923077 0.333333 +vt 0.909502 0.296296 +vt 0.923077 0.333333 +vt 0.909502 0.345679 +vt 0.909502 0.296296 +vt 0.923077 0.333333 +vt 0.909502 0.345679 +vt 0.909502 0.345679 +vt 0.923077 0.308642 +vt 0.923077 0.333333 +vt 0.909502 0.296296 +vt 0.923077 0.333333 +vt 0.909502 0.345679 +vt 0.909502 0.345679 +vt 0.923077 0.308642 +vt 0.923077 0.333333 +vt 0.909502 0.345679 +vt 0.923077 0.308642 +vt 0.923077 0.333333 +vt 0.909502 0.296296 +vt 0.923077 0.333333 +vt 0.909502 0.345679 +vt 0.886878 0.333333 +vt 0.909502 0.296296 +vt 0.886878 0.333333 +vt 0.886878 0.308642 +vt 0.909502 0.296296 +vt 0.886878 0.333333 +vt 0.886878 0.308642 +vt 0.909502 0.296296 +vt 0.886878 0.333333 +vt 0.886878 0.308642 +vt 0.886878 0.308642 +vt 0.909502 0.296296 +vt 0.886878 0.333333 +vt 0.886878 0.333333 +vt 0.909502 0.296296 +vt 0.886878 0.333333 +vt 0.909502 0.296296 +vt 0.886878 0.333333 +vt 0.484163 0.950617 +vt 0.606335 0.962963 +vt 0.484163 0.962963 +vt 0.484163 0.925926 +vt 0.606335 0.938272 +vt 0.484163 0.938272 +vt 0.484163 0.901235 +vt 0.606335 0.913580 +vt 0.484163 0.913580 +vt 0.484163 0.975309 +vt 0.606335 0.987654 +vt 0.484163 0.987654 +vt 0.606335 0.975309 +vt 0.606335 0.950617 +vt 0.606335 0.925926 +vt 0.606335 1.000000 +vt 0.484163 1.000000 +vt 0.606335 0.901235 +vt 0.613122 0.913580 +vt 0.613122 0.975309 +vt 0.613122 0.987654 +vt 0.608597 0.975309 +vt 0.613122 0.962963 +vt 0.613122 0.925926 +vt 0.608597 0.925926 +vt 0.613122 1.000000 +vt 0.613122 0.938272 +vt 0.610860 0.938272 +vt 0.613122 0.950617 +vt 0.610860 0.962963 +vt 0.617647 0.925926 +vt 0.615385 0.938272 +vt 0.619910 0.901235 +vt 0.619910 0.913580 +vt 0.619910 0.987654 +vt 0.617647 0.975309 +vt 0.619910 1.000000 +vt 0.615385 0.962963 +vt 0.000000 0.925926 +vt 0.006787 0.938272 +vt 0.000000 0.938272 +vt 0.004525 0.962963 +vt 0.006787 0.950617 +vt 0.006787 0.962963 +vt 0.000000 0.913580 +vt 0.006787 0.901235 +vt 0.006787 0.913580 +vt 0.002262 0.950617 +vt 0.006787 0.925926 +vt 0.002262 1.000000 +vt 0.006787 0.987654 +vt 0.006787 1.000000 +vt 0.011312 1.000000 +vt 0.011312 0.950617 +vt 0.013575 0.925926 +vt 0.013575 0.938272 +vt 0.011312 0.901235 +vt 0.013575 0.913580 +vt 0.009050 0.962963 +vt 0.006787 0.975309 +vt 0.004525 0.987654 +vt 0.009050 0.987654 +vt 0.013575 0.975309 +vt 0.063348 0.987654 +vt 0.013575 0.987654 +vt 0.063348 0.950617 +vt 0.013575 0.950617 +vt 0.013575 0.962963 +vt 0.063348 0.975309 +vt 0.063348 0.938272 +vt 0.063348 0.901235 +vt 0.063348 0.913580 +vt 0.063348 0.962963 +vt 0.063348 0.925926 +vt 0.063348 1.000000 +vt 0.013575 1.000000 +vt 0.070136 0.925926 +vt 0.070136 0.938272 +vt 0.070136 0.901235 +vt 0.070136 0.913580 +vt 0.065611 0.950617 +vt 0.070136 0.962963 +vt 0.067873 0.962963 +vt 0.065611 1.000000 +vt 0.070136 0.987654 +vt 0.070136 1.000000 +vt 0.070136 0.950617 +vt 0.074661 0.950617 +vt 0.076923 0.925926 +vt 0.076923 0.938272 +vt 0.074661 0.901235 +vt 0.076923 0.913580 +vt 0.072398 0.962963 +vt 0.072398 0.987654 +vt 0.074661 1.000000 +vt 0.070136 0.975309 +vt 0.067873 0.987654 +vt 0.076923 0.975309 +vt 0.149321 0.987654 +vt 0.076923 0.987654 +vt 0.149321 0.950617 +vt 0.076923 0.950617 +vt 0.076923 0.962963 +vt 0.149321 0.975309 +vt 0.149321 0.938272 +vt 0.076923 0.901235 +vt 0.149321 0.913580 +vt 0.149321 0.962963 +vt 0.149321 0.925926 +vt 0.149321 1.000000 +vt 0.076923 1.000000 +vt 0.156109 0.901235 +vt 0.156109 0.913580 +vt 0.151584 0.975309 +vt 0.156109 0.962963 +vt 0.156109 0.975309 +vt 0.151584 0.925926 +vt 0.156109 0.925926 +vt 0.156109 1.000000 +vt 0.156109 0.987654 +vt 0.156109 0.938272 +vt 0.153846 0.938272 +vt 0.162896 0.987654 +vt 0.158371 0.938272 +vt 0.162896 0.901235 +vt 0.162896 0.913580 +vt 0.158371 0.962963 +vt 0.160633 0.975309 +vt 0.160633 0.925926 +vt 0.162896 1.000000 +vt 0.156109 0.950617 +vt 0.153846 0.962963 +vt 0.162896 0.950617 +vt 0.276018 0.962963 +vt 0.162896 0.962963 +vt 0.162896 0.975309 +vt 0.276018 0.987654 +vt 0.162896 0.938272 +vt 0.276018 0.950617 +vt 0.162896 0.925926 +vt 0.276018 0.938272 +vt 0.276018 0.901235 +vt 0.276018 0.913580 +vt 0.276018 0.975309 +vt 0.276018 0.925926 +vt 0.276018 1.000000 +vt 0.481900 0.950617 +vt 0.477376 0.962963 +vt 0.477376 0.950617 +vt 0.479638 0.913580 +vt 0.477376 0.901235 +vt 0.481900 0.901235 +vt 0.477376 0.975309 +vt 0.479638 0.938272 +vt 0.477376 0.938272 +vt 0.481900 1.000000 +vt 0.477376 0.987654 +vt 0.470588 0.962963 +vt 0.475113 0.938272 +vt 0.472851 1.000000 +vt 0.470588 0.987654 +vt 0.472851 0.950617 +vt 0.477376 0.913580 +vt 0.472851 0.901235 +vt 0.470588 0.975309 +vt 0.477376 0.925926 +vt 0.475113 0.913580 +vt 0.468326 1.000000 +vt 0.463801 0.987654 +vt 0.466063 0.987654 +vt 0.470588 0.913580 +vt 0.463801 0.925926 +vt 0.463801 0.913580 +vt 0.470588 0.925926 +vt 0.463801 0.938272 +vt 0.468326 0.950617 +vt 0.463801 0.962963 +vt 0.463801 0.950617 +vt 0.463801 0.901235 +vt 0.468326 0.901235 +vt 0.470588 0.938272 +vt 0.459276 1.000000 +vt 0.461538 0.987654 +vt 0.457014 0.925926 +vt 0.459276 0.950617 +vt 0.457014 0.913580 +vt 0.459276 0.901235 +vt 0.457014 0.938272 +vt 0.463801 0.975309 +vt 0.466063 0.962963 +vt 0.461538 0.962963 +vt 0.457014 1.000000 +vt 0.393665 0.987654 +vt 0.457014 0.987654 +vt 0.393665 0.925926 +vt 0.457014 0.962963 +vt 0.393665 0.950617 +vt 0.457014 0.950617 +vt 0.457014 0.975309 +vt 0.393665 0.962963 +vt 0.393665 0.901235 +vt 0.457014 0.901235 +vt 0.393665 0.975309 +vt 0.393665 0.938272 +vt 0.393665 0.913580 +vt 0.282805 0.950617 +vt 0.278281 0.950617 +vt 0.282805 0.913580 +vt 0.282805 0.925926 +vt 0.280543 0.987654 +vt 0.282805 1.000000 +vt 0.278281 1.000000 +vt 0.282805 0.962963 +vt 0.280543 0.962963 +vt 0.282805 0.938272 +vt 0.282805 0.901235 +vt 0.287330 0.950617 +vt 0.289593 0.913580 +vt 0.289593 0.925926 +vt 0.285068 0.987654 +vt 0.287330 1.000000 +vt 0.285068 0.962963 +vt 0.289593 0.938272 +vt 0.287330 0.901235 +vt 0.282805 0.975309 +vt 0.282805 0.987654 +vt 0.348416 0.950617 +vt 0.289593 0.950617 +vt 0.348416 0.913580 +vt 0.348416 0.925926 +vt 0.289593 0.987654 +vt 0.348416 1.000000 +vt 0.289593 1.000000 +vt 0.289593 0.975309 +vt 0.348416 0.987654 +vt 0.348416 0.962963 +vt 0.289593 0.962963 +vt 0.348416 0.975309 +vt 0.348416 0.938272 +vt 0.348416 0.901235 +vt 0.391403 0.975309 +vt 0.386878 0.962963 +vt 0.389140 0.962963 +vt 0.386878 0.901235 +vt 0.391403 0.925926 +vt 0.386878 0.913580 +vt 0.386878 0.975309 +vt 0.386878 1.000000 +vt 0.386878 0.987654 +vt 0.389140 0.938272 +vt 0.386878 0.925926 +vt 0.380091 0.987654 +vt 0.382353 0.975309 +vt 0.380091 1.000000 +vt 0.382353 0.925926 +vt 0.380091 0.913580 +vt 0.384615 0.962963 +vt 0.380091 0.901235 +vt 0.386878 0.938272 +vt 0.386878 0.950617 +vt 0.384615 0.938272 +vt 0.361991 0.987654 +vt 0.361991 0.913580 +vt 0.380091 0.950617 +vt 0.361991 0.938272 +vt 0.380091 0.938272 +vt 0.350679 0.950617 +vt 0.355204 0.962963 +vt 0.352941 0.962963 +vt 0.380091 0.962963 +vt 0.361991 0.950617 +vt 0.361991 0.901235 +vt 0.361991 0.925926 +vt 0.380091 0.925926 +vt 0.355204 0.938272 +vt 0.355204 0.901235 +vt 0.355204 0.913580 +vt 0.355204 0.950617 +vt 0.355204 0.925926 +vt 0.350679 1.000000 +vt 0.355204 0.987654 +vt 0.355204 1.000000 +vt 0.355204 0.975309 +vt 0.352941 0.987654 +vt 0.359729 0.950617 +vt 0.359729 0.901235 +vt 0.359729 1.000000 +vt 0.357466 0.987654 +vt 0.357466 0.962963 +vt 0.380091 0.975309 +vt 0.361991 0.962963 +vt 0.934389 0.000000 +vt 0.552036 0.296296 +vt 0.552036 0.000000 +vt 0.746606 0.432099 +vt 0.923077 0.308642 +vt 0.923077 0.308642 +vt 0.923077 0.308642 +vt 0.923077 0.308642 +vt 0.923077 0.308642 +vt 0.923077 0.308642 +vt 0.886878 0.308642 +vt 0.886878 0.308642 +vt 0.886878 0.333333 +vt 0.886878 0.308642 +vt 0.886878 0.333333 +vt 0.886878 0.308642 +vt 0.886878 0.333333 +vt 0.886878 0.333333 +vt 0.886878 0.308642 +vt 0.886878 0.308642 +vt 0.886878 0.308642 +vt 0.886878 0.308642 +vt 0.613122 0.901235 +vt 0.002262 0.901235 +vt 0.013575 0.901235 +vt 0.065611 0.901235 +vt 0.149321 0.901235 +vt 0.477376 1.000000 +vt 0.463801 1.000000 +vt 0.393665 1.000000 +vt 0.278281 0.901235 +vt 0.289593 0.901235 +vt 0.361991 1.000000 +vt 0.350679 0.901235 +vt 0.361991 0.975309 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 0.0000 1.0000 +vn -0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn -0.8660 0.5000 0.0000 +vn -0.7746 0.4472 0.4472 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.4472 0.7746 0.4472 +vn 0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.4472 0.7746 0.4472 +vn 0.8660 -0.5000 0.0000 +vn 0.7746 0.4472 0.4472 +vn 0.5000 -0.8660 0.0000 +vn 0.0000 -0.7071 0.7071 +vn -0.9960 -0.0890 0.0000 +vn 0.9659 -0.2588 0.0000 +vn 0.9960 -0.0890 0.0000 +vn 0.0000 -0.5000 -0.8660 +vn -0.0000 -0.8660 -0.5000 +vn -0.0000 -0.8660 0.5000 +vn -0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5000 -0.8660 +vn 0.3412 0.5909 -0.7311 +vn 0.5909 0.3412 -0.7311 +vn 0.0000 0.6823 -0.7311 +vn -0.3412 0.5909 -0.7311 +vn -0.5909 0.3412 -0.7311 +vn -0.6823 -0.0000 -0.7311 +vn -0.5909 -0.3412 -0.7311 +vn -0.3412 -0.5909 -0.7311 +vn 0.0000 -0.6823 -0.7311 +vn 0.3412 -0.5909 -0.7311 +vn 0.5909 -0.3412 -0.7311 +vn 0.6823 -0.0000 -0.7311 +vn 0.4331 0.7501 0.4997 +vn 0.7501 0.4331 0.4997 +vn 0.0000 0.8662 0.4997 +vn -0.4331 0.7501 0.4997 +vn -0.7501 0.4331 0.4997 +vn -0.8662 -0.0000 0.4997 +vn -0.7501 -0.4331 0.4997 +vn -0.4331 -0.7501 0.4997 +vn -0.0000 -0.8662 0.4997 +vn 0.4331 -0.7501 0.4997 +vn 0.7501 -0.4331 0.4997 +vn 0.8662 -0.0000 0.4997 +vn 0.9987 0.0473 0.0196 +vn 0.6737 0.7263 0.1363 +vn 0.6794 0.7194 0.1448 +vn 0.0527 -0.7203 -0.6916 +vn 0.6737 -0.7263 0.1363 +vn 0.7263 -0.6737 -0.1363 +vn -0.9987 0.0473 0.0196 +vn -0.7194 -0.6794 -0.1448 +vn -0.7263 -0.6737 -0.1363 +vn -0.0000 0.9824 0.1866 +vn -0.7194 0.6794 -0.1448 +vn -0.6794 0.7194 0.1448 +vn -0.0473 0.9987 -0.0196 +vn 0.7203 -0.0527 0.6916 +vn -0.0473 -0.9987 -0.0196 +vn -0.9824 0.0000 -0.1866 +vn -0.5294 -0.6630 -0.5294 +vn -0.0671 0.9955 -0.0671 +vn -0.5294 0.6630 -0.5294 +vn 0.4617 0.7574 0.4617 +vn -0.0671 -0.9955 -0.0671 +vn -0.7071 0.0000 -0.7071 +vn 0.4617 -0.7574 0.4617 +vn 0.1673 -0.9846 -0.0505 +vn 0.2775 -0.7237 0.6318 +vn -0.1673 -0.0505 -0.9846 +vn -0.0000 -0.7071 -0.7071 +vn -0.2775 0.6318 -0.7237 +vn -0.7203 0.6916 -0.0527 +vn -0.0000 0.7071 0.7071 +vn 0.5294 -0.5294 0.6630 +vn 0.0671 -0.0671 0.9955 +vn -0.4617 0.4617 0.7574 +vn 0.0671 -0.0671 -0.9955 +vn 0.5294 -0.5294 -0.6630 +vn 0.7071 -0.7071 0.0000 +vn -0.4617 0.4617 -0.7574 +vn 0.0473 -0.0196 -0.9987 +vn 0.0473 -0.0196 0.9987 +vn 0.9824 -0.1866 0.0000 +vn 0.7194 -0.1448 0.6794 +vn 0.7194 -0.1448 -0.6794 +vn -0.6737 0.1363 0.7263 +vn -0.6737 0.1363 -0.7263 +vn -0.6737 -0.1363 -0.7263 +vn 0.0473 0.0196 0.9987 +vn -0.7071 -0.7071 0.0000 +vn 0.7194 0.1448 0.6794 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1448 -0.6794 +vn -0.6737 -0.1363 0.7263 +vn 0.9824 0.1866 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.5294 0.5294 0.6630 +vn 0.0671 0.0671 -0.9955 +vn 0.5294 0.5294 -0.6630 +vn -0.4617 -0.4617 0.7574 +vn -0.4617 -0.4617 -0.7574 +vn 0.0671 0.0671 0.9955 +vn 0.0196 0.0473 0.9987 +vn 0.1866 0.9824 0.0000 +vn 0.1448 0.7194 0.6794 +vn 0.0196 0.0473 -0.9987 +vn 0.1448 0.7194 -0.6794 +vn -0.1363 -0.6737 0.7263 +vn -0.1363 -0.6737 -0.7263 +vn -0.1448 -0.6794 -0.7194 +vn 0.7071 -0.0000 0.7071 +vn -0.0196 -0.9987 -0.0473 +vn 0.1363 0.7263 0.6737 +vn -0.1448 0.6794 -0.7194 +vn 0.1363 -0.7263 0.6737 +vn -0.0196 0.9987 -0.0473 +vn -0.1866 -0.0000 -0.9824 +vn 0.6630 0.5294 0.5294 +vn 0.9955 0.0671 0.0671 +vn -0.9955 0.0671 0.0671 +vn 0.7574 -0.4617 -0.4617 +vn -0.6630 0.5294 0.5294 +vn 0.7237 -0.2775 -0.6318 +vn -0.6916 0.7203 0.0527 +vn -0.6318 0.2775 0.7237 +vn 0.9846 -0.1673 0.0505 +vn -0.7574 -0.4617 -0.4617 +vn 0.0505 0.1673 0.9846 +vn 0.0196 -0.0473 -0.9987 +vn -0.1363 0.6737 -0.7263 +vn 0.1866 -0.9824 -0.0000 +vn 0.0196 -0.0473 0.9987 +vn 0.1448 -0.7194 -0.6794 +vn 0.1448 -0.7194 0.6794 +vn -0.1363 0.6737 0.7263 +vn 0.9987 0.0196 0.0473 +vn -0.6794 0.1448 0.7194 +vn 0.0000 0.1866 0.9824 +vn -0.7263 -0.1363 -0.6737 +vn -0.9987 0.0196 0.0473 +vn 0.7263 -0.1363 -0.6737 +vn 0.6794 0.1448 0.7194 +vn 0.9987 -0.0196 0.0473 +vn -0.6794 -0.1448 0.7194 +vn 0.0000 -0.1866 0.9824 +vn -0.9987 -0.0196 0.0473 +vn -0.7263 0.1363 -0.6737 +vn 0.7263 0.1363 -0.6737 +vn 0.0000 0.7071 -0.7071 +vn 0.6794 -0.1448 0.7194 +vn -0.7263 0.6737 -0.1363 +vn -0.6794 -0.7194 0.1448 +vn 0.6794 -0.7194 0.1448 +vn 0.7574 0.4617 -0.4617 +vn 0.9987 -0.0473 0.0196 +vn -0.9987 -0.0473 0.0196 +vn -0.0000 -0.9824 0.1866 +vn 0.6630 -0.5294 0.5294 +vn -0.9955 -0.0671 0.0671 +vn -0.6630 -0.5294 0.5294 +vn 0.9955 -0.0671 0.0671 +vn -0.7574 0.4617 -0.4617 +vn 0.7263 0.6737 -0.1363 +vn -0.9659 -0.2588 0.0000 +s off +f 493/699/160 506/700/160 505/701/160 +f 492/702/160 505/701/160 504/703/160 +f 491/704/160 504/703/160 503/705/160 +f 490/706/160 503/705/160 501/707/160 +f 489/708/160 501/707/160 502/709/160 +f 489/708/160 512/710/160 500/711/160 +f 500/711/160 511/712/160 499/713/160 +f 499/713/160 510/714/160 498/715/160 +f 498/715/160 509/716/160 497/717/160 +f 497/717/160 508/718/160 496/719/160 +f 496/719/160 507/720/160 495/721/160 +f 494/722/160 507/723/160 506/700/160 +f 590/724/161 528/725/161 591/726/161 +f 610/727/161 589/728/161 611/729/161 +f 589/728/161 614/730/161 611/729/161 +f 614/731/161 587/732/161 613/733/161 +f 587/732/161 612/734/161 613/733/161 +f 585/735/161 612/734/161 586/736/161 +f 529/737/161 533/738/161 530/739/161 +f 533/738/161 531/740/161 530/739/161 +f 532/741/161 525/742/161 531/740/161 +f 594/743/161 526/744/161 525/742/161 +f 526/744/161 592/745/161 527/746/161 +f 592/745/161 528/725/161 527/746/161 +f 561/747/160 565/748/160 560/749/160 +f 562/750/160 566/751/160 561/747/160 +f 562/752/160 568/753/160 567/754/160 +f 568/753/160 564/755/160 569/756/160 +f 564/755/160 573/757/160 569/756/160 +f 572/758/160 560/749/160 565/748/160 +f 550/759/160 577/760/160 578/761/160 +f 549/762/160 578/761/160 580/763/160 +f 549/762/160 579/764/160 548/765/160 +f 554/766/160 579/764/160 574/767/160 +f 553/768/160 574/767/160 575/769/160 +f 552/770/160 575/769/160 576/771/160 +f 576/772/162 571/773/162 552/770/162 +f 570/774/162 577/775/162 551/776/162 +f 584/777/163 595/778/163 581/779/163 +f 597/780/164 601/781/164 582/782/164 +f 602/783/165 598/784/165 583/785/165 +f 584/777/161 581/779/161 609/786/161 +f 604/787/161 581/779/161 582/788/161 +f 583/789/161 584/777/161 607/790/161 +f 599/791/163 622/792/163 624/793/163 +f 625/794/162 582/782/162 601/781/162 +f 583/785/162 626/795/162 602/783/162 +f 627/796/163 598/797/163 600/798/163 +f 639/799/164 635/800/164 651/801/164 +f 654/802/163 628/803/163 629/804/163 +f 644/805/165 648/806/165 652/807/165 +f 662/808/163 661/809/163 660/810/163 +f 628/803/161 657/811/161 629/812/161 +f 655/813/164 656/814/164 628/803/164 +f 654/815/160 659/816/160 655/813/160 +f 629/812/165 658/817/165 654/818/165 +f 666/819/162 664/820/162 665/821/162 +f 662/822/160 667/823/160 663/824/160 +f 661/809/161 665/825/161 660/826/161 +f 663/824/164 666/819/164 661/809/164 +f 660/827/165 664/828/165 662/822/165 +f 705/829/162 706/830/162 704/831/162 +f 707/832/166 708/833/166 706/830/166 +f 706/830/164 710/834/164 704/831/164 +f 711/835/165 707/832/165 705/829/165 +f 713/836/167 714/837/167 712/838/167 +f 715/839/168 716/840/168 714/837/168 +f 714/837/169 718/841/169 712/838/169 +f 719/842/170 715/839/170 713/836/170 +f 721/843/171 722/844/171 720/845/171 +f 723/846/172 724/847/172 722/844/172 +f 722/844/173 726/848/173 720/845/173 +f 727/849/174 723/846/174 721/843/174 +f 729/850/169 730/851/169 728/852/169 +f 731/853/175 732/854/175 730/851/175 +f 730/851/176 734/855/176 728/852/176 +f 735/856/167 731/853/167 729/850/167 +f 737/857/173 738/858/173 736/859/173 +f 739/860/177 740/861/177 738/858/177 +f 738/858/178 742/862/178 736/859/178 +f 743/863/171 739/860/171 737/857/171 +f 747/864/160 752/865/160 751/866/160 +f 950/867/165 965/868/165 949/869/165 +f 746/870/160 753/871/160 748/872/160 +f 945/873/163 955/874/163 950/867/163 +f 581/779/164 597/780/164 582/782/164 +f 598/784/165 584/777/165 583/785/165 +f 597/875/160 939/876/160 622/792/160 +f 940/877/160 598/878/160 623/879/160 +f 941/880/162 938/881/162 621/882/162 +f 595/778/164 938/883/164 581/779/164 +f 622/792/164 941/880/164 624/793/164 +f 937/884/162 942/885/162 620/886/162 +f 937/887/165 596/888/165 584/777/165 +f 942/885/165 623/879/165 627/796/165 +f 950/867/160 953/889/160 945/873/160 +f 944/890/160 945/873/160 946/891/160 +f 951/892/160 950/867/160 949/893/160 +f 961/894/162 956/895/162 958/896/162 +f 962/897/162 959/898/162 957/899/162 +f 967/900/164 960/901/164 961/894/164 +f 959/902/161 969/903/161 965/904/161 +f 968/905/165 963/906/165 962/897/165 +f 964/907/161 961/894/161 958/908/161 +f 745/909/165 965/868/165 744/910/165 +f 971/911/164 964/912/164 944/913/164 +f 948/914/162 745/909/162 750/915/162 +f 955/874/165 959/916/165 950/867/165 +f 971/911/162 943/917/162 972/918/162 +f 967/900/163 970/919/163 966/920/163 +f 945/873/164 964/912/164 958/921/164 +f 958/921/164 954/922/164 945/873/164 +f 747/864/165 976/923/165 749/924/165 +f 746/870/163 980/925/163 754/926/163 +f 751/927/163 974/928/163 747/864/163 +f 753/929/162 975/930/162 748/872/162 +f 748/872/164 973/931/164 746/870/164 +f 749/924/162 978/932/162 752/933/162 +f 984/934/164 983/935/164 981/936/164 +f 990/937/165 992/938/165 987/939/165 +f 986/940/179 991/941/179 985/942/179 +f 984/943/179 989/944/179 983/935/179 +f 982/945/160 987/939/160 981/936/160 +f 996/946/164 995/947/164 993/948/164 +f 985/942/163 990/949/163 984/934/163 +f 983/935/163 988/950/163 982/945/163 +f 1002/951/165 1004/952/165 999/953/165 +f 998/954/179 1003/955/179 997/956/179 +f 996/957/179 1001/958/179 995/947/179 +f 994/959/160 999/953/160 993/948/160 +f 997/956/163 1002/960/163 996/946/163 +f 995/947/163 1000/961/163 994/959/163 +f 1011/962/160 1008/963/160 1007/964/160 +f 1010/965/161 1005/966/161 1006/967/161 +f 1012/968/163 1006/967/163 1008/969/163 +f 1009/970/162 1007/964/162 1005/966/162 +f 965/971/163 968/905/163 744/972/163 +f 493/699/160 494/722/160 506/700/160 +f 492/702/160 493/699/160 505/701/160 +f 491/704/160 492/702/160 504/703/160 +f 490/706/160 491/704/160 503/705/160 +f 489/708/160 490/706/160 501/707/160 +f 489/708/160 502/709/160 512/710/160 +f 500/711/160 512/710/160 511/712/160 +f 499/713/160 511/712/160 510/714/160 +f 498/715/160 510/714/160 509/716/160 +f 497/717/160 509/716/160 508/718/160 +f 496/719/160 508/718/160 507/720/160 +f 494/722/160 495/973/160 507/723/160 +f 590/724/161 610/727/161 528/725/161 +f 610/727/161 590/724/161 589/728/161 +f 589/728/161 588/974/161 614/730/161 +f 614/731/161 588/975/161 587/732/161 +f 587/732/161 586/736/161 612/734/161 +f 585/735/161 529/737/161 612/734/161 +f 529/737/161 585/735/161 533/738/161 +f 533/738/161 532/741/161 531/740/161 +f 532/741/161 594/743/161 525/742/161 +f 594/743/161 593/976/161 526/744/161 +f 526/744/161 593/976/161 592/745/161 +f 592/745/161 591/726/161 528/725/161 +f 561/747/160 566/751/160 565/748/160 +f 562/750/160 567/977/160 566/751/160 +f 562/752/160 563/978/160 568/753/160 +f 568/753/160 563/978/160 564/755/160 +f 564/755/160 571/773/160 573/757/160 +f 572/758/160 570/774/160 560/749/160 +f 550/759/160 551/776/160 577/760/160 +f 549/762/160 550/759/160 578/761/160 +f 549/762/160 580/763/160 579/764/160 +f 554/766/160 548/765/160 579/764/160 +f 553/768/160 554/766/160 574/767/160 +f 552/770/160 553/768/160 575/769/160 +f 576/772/162 573/979/162 571/773/162 +f 570/774/162 572/980/162 577/775/162 +f 584/777/163 596/888/163 595/778/163 +f 597/780/164 599/981/164 601/781/164 +f 602/783/165 600/982/165 598/784/165 +f 581/779/161 605/983/161 609/786/161 +f 609/786/161 608/984/161 584/777/161 +f 582/788/161 603/985/161 604/787/161 +f 604/787/161 605/983/161 581/779/161 +f 607/790/161 606/986/161 583/789/161 +f 584/777/161 608/984/161 607/790/161 +f 599/791/163 597/987/163 622/792/163 +f 625/794/162 603/988/162 582/782/162 +f 583/785/162 606/989/162 626/795/162 +f 627/796/163 623/879/163 598/797/163 +f 635/800/164 633/990/164 631/991/164 +f 631/991/164 653/992/164 635/800/164 +f 653/992/164 651/801/164 635/800/164 +f 651/801/164 649/993/164 643/994/164 +f 649/993/164 647/995/164 643/994/164 +f 647/995/164 645/996/164 643/994/164 +f 643/994/164 641/997/164 639/799/164 +f 639/799/164 637/998/164 635/800/164 +f 643/994/164 639/799/164 651/801/164 +f 654/802/163 655/813/163 628/803/163 +f 652/807/165 630/999/165 632/1000/165 +f 632/1000/165 634/1001/165 636/1002/165 +f 636/1002/165 638/1003/165 644/805/165 +f 638/1003/165 640/1004/165 644/805/165 +f 640/1004/165 642/1005/165 644/805/165 +f 644/805/165 646/1006/165 648/806/165 +f 648/806/165 650/1007/165 652/807/165 +f 652/807/165 632/1000/165 644/805/165 +f 632/1000/165 636/1002/165 644/805/165 +f 662/808/163 663/824/163 661/809/163 +f 628/803/161 656/814/161 657/811/161 +f 655/813/164 659/816/164 656/814/164 +f 654/815/160 658/1008/160 659/816/160 +f 629/812/165 657/811/165 658/817/165 +f 666/819/162 667/823/162 664/820/162 +f 662/822/160 664/828/160 667/823/160 +f 661/809/161 666/819/161 665/825/161 +f 663/824/164 667/823/164 666/819/164 +f 660/827/165 665/1009/165 664/828/165 +f 705/829/162 707/832/162 706/830/162 +f 707/832/166 709/1010/166 708/833/166 +f 706/830/164 708/1011/164 710/834/164 +f 711/835/165 709/1012/165 707/832/165 +f 713/836/167 715/839/167 714/837/167 +f 715/839/168 717/1013/168 716/840/168 +f 714/837/169 716/1014/169 718/841/169 +f 719/842/170 717/1015/170 715/839/170 +f 721/843/171 723/846/171 722/844/171 +f 723/846/172 725/1016/172 724/847/172 +f 722/844/173 724/1017/173 726/848/173 +f 727/849/174 725/1018/174 723/846/174 +f 729/850/169 731/853/169 730/851/169 +f 731/853/175 733/1019/175 732/854/175 +f 730/851/176 732/1020/176 734/855/176 +f 735/856/167 733/1021/167 731/853/167 +f 737/857/173 739/860/173 738/858/173 +f 739/860/177 741/1022/177 740/861/177 +f 738/858/178 740/1023/178 742/862/178 +f 743/863/171 741/1024/171 739/860/171 +f 747/864/160 749/924/160 752/865/160 +f 950/867/165 959/916/165 965/868/165 +f 746/870/160 754/1025/160 753/871/160 +f 945/873/163 954/922/163 955/874/163 +f 581/779/164 938/883/164 597/780/164 +f 598/784/165 937/887/165 584/777/165 +f 597/875/160 938/1026/160 939/876/160 +f 940/877/160 937/1027/160 598/878/160 +f 941/880/162 939/876/162 938/881/162 +f 595/778/164 621/1028/164 938/883/164 +f 622/792/164 939/876/164 941/880/164 +f 937/884/162 940/877/162 942/885/162 +f 937/887/165 620/1029/165 596/888/165 +f 942/885/165 940/877/165 623/879/165 +f 950/867/160 952/1030/160 953/889/160 +f 953/889/160 947/1031/160 945/873/160 +f 946/891/160 943/1032/160 944/890/160 +f 945/873/160 947/1031/160 946/891/160 +f 949/893/160 948/1033/160 951/892/160 +f 951/892/160 952/1030/160 950/867/160 +f 961/894/162 960/901/162 956/895/162 +f 962/897/162 963/906/162 959/898/162 +f 967/900/164 966/920/164 960/901/164 +f 959/902/161 963/906/161 969/903/161 +f 968/905/165 969/903/165 963/906/165 +f 964/907/161 967/900/161 961/894/161 +f 745/909/165 949/869/165 965/868/165 +f 971/911/164 970/1034/164 964/912/164 +f 948/914/162 949/869/162 745/909/162 +f 955/874/165 957/1035/165 959/916/165 +f 971/911/162 944/913/162 943/917/162 +f 967/900/163 964/1036/163 970/919/163 +f 945/873/164 944/913/164 964/912/164 +f 958/921/164 956/1037/164 954/922/164 +f 747/864/165 974/928/165 976/923/165 +f 746/870/163 973/931/163 980/925/163 +f 751/927/163 977/1038/163 974/928/163 +f 753/929/162 979/1039/162 975/930/162 +f 748/872/164 975/930/164 973/931/164 +f 749/924/162 976/923/162 978/932/162 +f 983/935/164 982/945/164 981/936/164 +f 981/936/164 986/1040/164 984/934/164 +f 986/1040/164 985/942/164 984/934/164 +f 987/939/165 988/1041/165 989/1042/165 +f 990/937/165 991/1043/165 992/938/165 +f 987/939/165 989/1042/165 990/937/165 +f 986/940/179 992/1044/179 991/941/179 +f 984/943/179 990/1045/179 989/944/179 +f 982/945/160 988/1041/160 987/939/160 +f 995/947/164 994/959/164 993/948/164 +f 993/948/164 998/1046/164 996/946/164 +f 998/1046/164 997/956/164 996/946/164 +f 985/942/163 991/941/163 990/949/163 +f 983/935/163 989/944/163 988/950/163 +f 999/953/165 1000/1047/165 1001/1048/165 +f 1002/951/165 1003/1049/165 1004/952/165 +f 999/953/165 1001/1048/165 1002/951/165 +f 998/954/179 1004/1050/179 1003/955/179 +f 996/957/179 1002/1051/179 1001/958/179 +f 994/959/160 1000/1047/160 999/953/160 +f 997/956/163 1003/955/163 1002/960/163 +f 995/947/163 1001/958/163 1000/961/163 +f 1011/962/160 1012/1052/160 1008/963/160 +f 1010/965/161 1009/970/161 1005/966/161 +f 1012/968/163 1010/965/163 1006/967/163 +f 1009/970/162 1011/962/162 1007/964/162 +f 965/971/163 969/903/163 968/905/163 +s 1 +f 509/716/173 520/1053/169 508/718/169 +f 501/707/170 514/1054/163 502/709/163 +f 494/722/178 482/1055/163 495/973/163 +f 510/714/164 521/1056/173 509/716/173 +f 503/705/174 513/1057/170 501/707/170 +f 495/721/163 481/1058/170 496/719/170 +f 511/712/176 522/1059/164 510/714/164 +f 504/703/165 515/1060/174 503/705/174 +f 496/719/170 480/1061/174 497/717/174 +f 512/710/178 523/1062/176 511/712/176 +f 489/708/162 488/1063/169 490/706/169 +f 505/701/167 516/1064/165 504/703/165 +f 497/717/174 479/1065/165 498/715/165 +f 502/709/163 524/1066/178 512/710/178 +f 490/706/169 486/1067/173 491/704/173 +f 506/700/171 517/1068/167 505/701/167 +f 498/715/165 478/1069/167 499/713/167 +f 491/704/173 485/1070/164 492/702/164 +f 507/723/162 518/1071/171 506/700/171 +f 499/713/167 477/1072/171 500/711/171 +f 492/702/164 484/1073/176 493/699/176 +f 508/718/169 519/1074/162 507/720/162 +f 500/711/171 487/1075/162 489/708/162 +f 493/699/176 483/1076/178 494/722/178 +f 526/744/169 534/1077/162 525/742/162 +f 531/740/171 539/1078/167 530/739/167 +f 527/746/173 535/1079/169 526/744/169 +f 525/742/162 540/1080/171 531/740/171 +f 528/725/164 536/1081/173 527/746/173 +f 530/739/167 538/1082/165 529/737/165 +f 541/1083/162 554/766/171 547/1084/171 +f 546/1085/167 552/770/180 545/1086/165 +f 543/1087/173 549/762/169 542/1088/169 +f 547/1084/171 553/768/167 546/1085/167 +f 544/1089/164 550/759/173 543/1087/173 +f 542/1088/169 548/765/162 541/1083/162 +f 558/1090/170 562/752/163 557/1091/163 +f 556/1092/178 560/749/176 555/1093/176 +f 559/1094/174 563/978/170 558/1090/170 +f 557/1095/163 561/747/178 556/1092/178 +f 560/749/176 570/774/181 551/776/182 +f 559/1094/174 552/770/180 564/755/174 +f 1023/1096/176 585/735/164 1022/1097/164 +f 1016/1098/165 592/745/174 1015/1099/174 +f 1019/1100/162 589/728/171 1018/1101/171 +f 1022/1097/164 586/736/173 1021/1102/173 +f 1015/1099/174 593/976/170 1014/1103/170 +f 1013/1104/163 532/741/178 1024/1105/178 +f 1018/1101/171 590/724/167 1017/1106/167 +f 1021/1102/173 587/732/169 1020/1107/169 +f 1014/1103/170 594/743/163 1013/1104/163 +f 1024/1105/178 533/738/176 1023/1096/176 +f 1017/1106/167 591/726/165 1016/1098/165 +f 1020/1107/169 588/975/162 1019/1108/162 +f 612/734/174 618/1109/170 613/733/170 +f 614/730/163 616/1110/178 611/729/178 +f 611/729/178 615/1111/176 610/727/176 +f 613/733/170 619/1112/163 614/731/163 +f 610/727/176 537/1113/164 528/725/164 +f 617/1114/174 529/737/165 538/1082/165 +f 631/1115/160 632/1116/183 630/1117/160 +f 633/1118/183 634/1119/184 632/1116/183 +f 634/1119/184 637/1120/163 636/1121/163 +f 637/1122/163 638/1123/185 636/1124/163 +f 639/1125/185 640/1126/186 638/1123/185 +f 641/1127/186 642/1128/161 640/1126/186 +f 643/1129/161 644/1130/187 642/1128/161 +f 645/1131/187 646/1132/188 644/1130/187 +f 647/1133/188 648/1134/162 646/1132/188 +f 649/1135/162 650/1136/189 648/1134/162 +f 651/1137/189 652/1138/190 650/1136/189 +f 653/1139/190 630/1117/160 652/1138/190 +f 669/1140/191 682/1141/192 681/1142/191 +f 669/1143/191 680/1144/193 668/1145/193 +f 679/1146/194 680/1147/193 691/1148/194 +f 679/1149/194 690/1150/195 678/1151/195 +f 677/1152/196 690/1153/195 689/1154/196 +f 677/1155/196 688/1156/197 676/1157/197 +f 676/1158/197 687/1159/198 675/1160/198 +f 674/1161/199 687/1162/198 686/1163/199 +f 674/1164/199 685/1165/200 673/1166/200 +f 672/1167/201 685/1168/200 684/1169/201 +f 671/1170/202 684/1171/201 683/1172/202 +f 671/1173/202 682/1174/192 670/1175/192 +f 693/1176/203 670/1177/204 669/1140/203 +f 692/1178/205 669/1143/203 668/1145/205 +f 679/1146/206 692/1179/205 668/1180/205 +f 702/1181/207 679/1149/206 678/1151/207 +f 677/1152/208 702/1182/207 678/1183/207 +f 700/1184/209 677/1155/208 676/1157/209 +f 675/1160/210 700/1185/209 676/1158/209 +f 674/1161/211 699/1186/210 675/1187/210 +f 697/1188/212 674/1164/211 673/1166/212 +f 696/1189/213 673/1190/212 672/1167/213 +f 695/1191/214 672/1192/213 671/1170/214 +f 694/1193/204 671/1173/214 670/1175/204 +f 761/1194/215 770/1195/216 762/1196/217 +f 759/1197/218 768/1198/219 760/1199/220 +f 757/1200/221 766/1201/222 758/1202/223 +f 755/1203/224 764/1204/225 756/1205/226 +f 762/1196/217 763/1206/227 755/1203/224 +f 760/1199/220 769/1207/228 761/1194/215 +f 758/1202/223 767/1208/229 759/1197/218 +f 756/1205/226 765/1209/230 757/1210/221 +f 765/1211/230 774/1212/231 766/1201/222 +f 764/1204/225 771/1213/232 772/1214/233 +f 763/1215/227 777/1216/234 771/1213/232 +f 766/1201/222 775/1217/235 767/1218/229 +f 764/1204/225 773/1219/236 765/1209/230 +f 767/1218/229 776/1220/237 768/1221/219 +f 769/1222/228 777/1216/234 770/1223/216 +f 768/1221/219 776/1220/237 769/1222/228 +f 776/1220/237 782/1224/238 783/1225/239 +f 774/1212/231 780/1226/240 781/1227/241 +f 771/1213/232 779/1228/242 772/1214/233 +f 777/1216/234 778/1229/243 771/1213/232 +f 775/1217/235 781/1227/241 782/1224/238 +f 772/1214/233 780/1230/240 773/1219/236 +f 777/1216/234 769/1222/228 784/1231/244 +f 776/1220/237 783/1225/239 769/1222/228 +f 782/1232/238 790/1233/245 783/1234/239 +f 784/1235/244 785/1236/246 791/1237/247 +f 781/1238/241 787/1239/248 788/1240/249 +f 783/1234/239 785/1236/246 769/1241/228 +f 781/1238/241 789/1242/250 782/1232/238 +f 780/1243/240 786/1244/251 787/1245/248 +f 786/1244/251 794/1246/252 787/1245/248 +f 790/1233/245 792/1247/253 785/1236/246 +f 790/1233/245 796/1248/254 797/1249/255 +f 788/1240/249 794/1250/252 795/1251/256 +f 791/1237/247 792/1247/253 798/1252/257 +f 789/1242/250 795/1251/256 796/1248/254 +f 784/1235/244 791/1237/247 778/1253/243 +f 791/1237/247 798/1252/257 778/1253/243 +f 778/1253/243 786/1244/251 779/1254/242 +f 786/1244/251 778/1253/243 793/1255/258 +f 778/1256/243 801/1257/259 793/1258/258 +f 797/1249/255 800/1259/260 792/1260/253 +f 798/1261/257 799/1262/261 778/1256/243 +f 796/1248/254 805/1263/262 797/1249/255 +f 795/1251/256 802/1264/263 803/1265/264 +f 792/1260/253 806/1266/265 798/1261/257 +f 795/1251/256 804/1267/266 796/1248/254 +f 793/1258/258 802/1268/263 794/1269/252 +f 805/1263/262 811/1270/267 812/1271/268 +f 803/1265/264 809/1272/269 810/1273/270 +f 800/1274/260 813/1275/271 806/1276/265 +f 803/1265/264 811/1270/267 804/1267/266 +f 802/1277/263 808/1278/272 809/1279/269 +f 805/1263/262 807/1280/273 800/1274/260 +f 812/1271/268 814/1281/274 807/1280/273 +f 812/1271/268 818/1282/275 819/1283/276 +f 810/1273/270 816/1284/277 817/1285/278 +f 807/1280/273 820/1286/279 813/1275/271 +f 810/1273/270 818/1282/275 811/1270/267 +f 809/1279/269 815/1287/280 816/1288/277 +f 806/1276/265 813/1275/271 799/1289/261 +f 813/1275/271 820/1286/279 799/1289/261 +f 799/1289/261 808/1278/272 801/1290/259 +f 808/1278/272 799/1289/261 815/1287/280 +f 799/1291/261 823/1292/281 815/1293/280 +f 819/1283/276 822/1294/282 814/1295/274 +f 820/1296/279 821/1297/283 799/1291/261 +f 818/1282/275 827/1298/284 819/1283/276 +f 816/1299/277 825/1300/285 817/1285/278 +f 814/1295/274 828/1301/286 820/1296/279 +f 817/1285/278 826/1302/287 818/1282/275 +f 815/1293/280 824/1303/288 816/1304/277 +f 825/1300/285 831/1305/236 832/1306/233 +f 821/1307/283 835/1308/237 829/1309/235 +f 826/1310/287 832/1306/233 833/1311/232 +f 823/1292/281 831/1312/236 824/1303/288 +f 821/1307/283 830/1313/231 823/1292/281 +f 826/1310/287 834/1314/234 827/1315/284 +f 829/1309/235 837/1316/222 830/1313/231 +f 833/1311/232 841/1317/216 834/1314/234 +f 832/1306/233 838/1318/230 839/1319/225 +f 829/1309/235 842/1320/219 836/1321/229 +f 833/1311/232 839/1319/225 840/1322/227 +f 830/1313/231 838/1323/230 831/1312/236 +f 827/1315/284 834/1314/234 822/1324/282 +f 834/1314/234 841/1317/216 822/1324/282 +f 828/1325/286 822/1324/282 835/1308/237 +f 835/1308/237 822/1324/282 842/1320/219 +f 822/1326/282 850/1327/220 842/1328/219 +f 836/1329/229 845/1330/223 837/1316/222 +f 841/1331/216 843/1332/215 822/1326/282 +f 840/1333/227 849/1334/217 841/1331/216 +f 839/1319/225 846/1335/221 847/1336/226 +f 842/1328/219 844/1337/241 836/1329/229 +f 839/1319/225 848/1338/224 840/1333/227 +f 837/1316/222 846/1339/221 838/1323/230 +f 761/1340/215 857/1341/289 856/1342/290 +f 758/1343/223 853/1344/291 757/1345/221 +f 756/1205/226 851/1346/244 755/1203/224 +f 762/1196/217 851/1346/244 857/1341/289 +f 760/1347/220 856/1342/290 855/1348/292 +f 757/1349/221 852/1350/293 756/1205/226 +f 851/1346/244 864/1351/282 857/1341/289 +f 856/1342/290 862/1352/294 855/1348/292 +f 852/1350/293 860/1353/295 859/1354/296 +f 857/1341/289 863/1355/297 856/1342/290 +f 854/1356/298 860/1357/295 853/1344/291 +f 852/1350/293 858/1358/299 851/1346/244 +f 758/1343/223 759/1359/218 854/1356/298 +f 854/1356/298 759/1359/218 861/1360/236 +f 760/1347/220 855/1348/292 759/1359/218 +f 855/1348/292 862/1352/294 759/1359/218 +f 759/1361/218 868/1362/251 861/1363/236 +f 862/1364/294 870/1365/250 869/1366/249 +f 863/1367/297 871/1368/245 870/1365/250 +f 858/1369/299 867/1370/247 866/1371/246 +f 862/1364/294 865/1372/248 759/1373/218 +f 864/1374/282 866/1371/246 871/1368/245 +f 868/1362/251 872/1375/300 875/1376/301 +f 871/1368/245 877/1377/302 870/1365/250 +f 867/1370/247 873/1378/303 866/1371/246 +f 865/1372/248 876/1379/304 872/1380/300 +f 866/1371/246 878/1381/305 871/1368/245 +f 869/1366/249 877/1377/302 876/1379/304 +f 861/1363/236 868/1362/251 860/1382/295 +f 868/1362/251 875/1376/301 860/1382/295 +f 859/1383/296 860/1382/295 867/1370/247 +f 867/1370/247 860/1382/295 874/1384/306 +f 872/1385/300 883/1386/285 875/1387/301 +f 878/1381/305 885/1388/283 877/1377/302 +f 874/1389/306 881/1390/282 873/1391/303 +f 860/1392/295 882/1393/284 874/1389/306 +f 876/1379/304 880/1394/288 872/1395/300 +f 875/1387/301 879/1396/287 860/1392/295 +f 873/1391/303 886/1397/286 878/1381/305 +f 877/1377/302 884/1398/281 876/1379/304 +f 849/1334/217 887/1399/290 843/1400/215 +f 848/1338/224 890/1401/293 891/1402/244 +f 845/1403/223 889/1404/291 846/1405/221 +f 843/1400/215 893/1406/292 850/1407/220 +f 848/1338/224 892/1408/289 849/1334/217 +f 847/1336/226 889/1409/291 890/1401/293 +f 892/1408/289 894/1410/307 887/1399/290 +f 891/1402/244 897/1411/308 898/1412/309 +f 889/1404/291 895/1413/310 896/1414/311 +f 887/1399/290 900/1415/312 893/1406/292 +f 891/1402/244 899/1416/313 892/1408/289 +f 890/1401/293 896/1417/311 897/1411/308 +f 850/1407/220 893/1406/292 844/1418/241 +f 893/1406/292 900/1415/312 844/1418/241 +f 844/1418/241 888/1419/298 845/1403/223 +f 888/1419/298 844/1418/241 895/1413/310 +f 899/1416/313 902/1420/314 894/1421/307 +f 898/1412/309 905/1422/315 906/1423/316 +f 895/1424/310 904/1425/317 896/1426/311 +f 844/1427/241 903/1428/318 895/1424/310 +f 894/1421/307 908/1429/319 900/1430/312 +f 844/1427/241 908/1429/319 901/1431/320 +f 898/1412/309 907/1432/321 899/1416/313 +f 897/1411/308 904/1433/317 905/1422/315 +f 879/1434/287 911/1435/234 882/1436/284 +f 884/1398/281 910/1437/236 880/1394/288 +f 885/1438/283 913/1439/231 884/1398/281 +f 883/1386/285 909/1440/232 879/1434/287 +f 883/1386/285 910/1441/236 912/1442/233 +f 886/1443/286 914/1444/235 885/1438/283 +f 909/1440/232 919/1445/225 916/1446/227 +f 912/1442/233 917/1447/230 919/1445/225 +f 913/1439/231 921/1448/229 920/1449/222 +f 911/1435/234 916/1446/227 918/1450/216 +f 913/1439/231 917/1451/230 910/1437/236 +f 915/1452/237 921/1448/229 914/1444/235 +f 882/1436/284 911/1435/234 881/1453/282 +f 911/1435/234 918/1450/216 881/1453/282 +f 886/1443/286 881/1453/282 915/1452/237 +f 915/1452/237 881/1453/282 922/1454/219 +f 917/1447/230 927/1455/322 919/1445/225 +f 921/1448/229 928/1456/323 920/1449/222 +f 881/1457/282 930/1458/324 922/1459/219 +f 902/1460/314 936/1461/325 908/1462/319 +f 918/1463/216 923/1464/326 881/1457/282 +f 920/1449/222 925/1465/327 917/1451/230 +f 922/1459/219 929/1466/328 921/1467/229 +f 906/1423/316 935/1468/329 907/1432/321 +f 905/1422/315 932/1469/330 933/1470/331 +f 907/1432/321 924/1471/332 902/1460/314 +f 906/1423/316 933/1470/331 934/1472/179 +f 904/1473/317 931/1474/333 932/1475/330 +f 901/1476/320 931/1474/333 903/1477/318 +f 908/1462/319 936/1461/325 901/1476/320 +f 928/1456/323 934/1472/179 933/1470/331 +f 929/1466/328 935/1468/329 934/1472/179 +f 924/1471/332 930/1458/324 923/1478/326 +f 923/1478/326 936/1461/325 924/1471/332 +f 925/1479/327 933/1470/331 932/1469/330 +f 925/1480/327 931/1474/333 927/1481/322 +f 931/1474/333 901/1476/320 927/1481/322 +f 936/1461/325 926/1482/334 901/1476/320 +f 916/1483/227 926/1484/334 918/1463/216 +f 927/1455/322 916/1483/227 919/1445/225 +f 509/716/173 521/1056/173 520/1053/169 +f 501/707/170 513/1057/170 514/1054/163 +f 494/722/178 483/1076/178 482/1055/163 +f 510/714/164 522/1059/164 521/1056/173 +f 503/705/174 515/1060/174 513/1057/170 +f 495/721/163 482/1485/163 481/1058/170 +f 511/712/176 523/1062/176 522/1059/164 +f 504/703/165 516/1064/165 515/1060/174 +f 496/719/170 481/1058/170 480/1061/174 +f 512/710/178 524/1066/178 523/1062/176 +f 489/708/162 487/1075/162 488/1063/169 +f 505/701/167 517/1068/167 516/1064/165 +f 497/717/174 480/1061/174 479/1065/165 +f 502/709/163 514/1054/163 524/1066/178 +f 490/706/169 488/1063/169 486/1067/173 +f 506/700/171 518/1071/171 517/1068/167 +f 498/715/165 479/1065/165 478/1069/167 +f 491/704/173 486/1067/173 485/1070/164 +f 507/723/162 519/1486/162 518/1071/171 +f 499/713/167 478/1069/167 477/1072/171 +f 492/702/164 485/1070/164 484/1073/176 +f 508/718/169 520/1053/169 519/1074/162 +f 500/711/171 477/1072/171 487/1075/162 +f 493/699/176 484/1073/176 483/1076/178 +f 526/744/169 535/1079/169 534/1077/162 +f 531/740/171 540/1080/171 539/1078/167 +f 527/746/173 536/1081/173 535/1079/169 +f 525/742/162 534/1077/162 540/1080/171 +f 528/725/164 537/1113/164 536/1081/173 +f 530/739/167 539/1078/167 538/1082/165 +f 541/1083/162 548/765/162 554/766/171 +f 546/1085/167 553/768/167 552/770/180 +f 543/1087/173 550/759/173 549/762/169 +f 547/1084/171 554/766/171 553/768/167 +f 544/1089/164 551/776/182 550/759/173 +f 542/1088/169 549/762/169 548/765/162 +f 558/1090/170 563/978/170 562/752/163 +f 556/1092/178 561/747/178 560/749/176 +f 559/1094/174 564/755/174 563/978/170 +f 557/1095/163 562/750/163 561/747/178 +f 551/776/182 544/1089/164 555/1093/176 +f 555/1093/176 560/749/176 551/776/182 +f 545/1086/165 552/770/180 559/1094/174 +f 552/770/180 571/773/335 564/755/174 +f 1023/1096/176 533/738/176 585/735/164 +f 1016/1098/165 591/726/165 592/745/174 +f 1019/1100/162 588/974/162 589/728/171 +f 1022/1097/164 585/735/164 586/736/173 +f 1015/1099/174 592/745/174 593/976/170 +f 1013/1104/163 594/743/163 532/741/178 +f 1018/1101/171 589/728/171 590/724/167 +f 1021/1102/173 586/736/173 587/732/169 +f 1014/1103/170 593/976/170 594/743/163 +f 1024/1105/178 532/741/178 533/738/176 +f 1017/1106/167 590/724/167 591/726/165 +f 1020/1107/169 587/732/169 588/975/162 +f 612/734/174 617/1114/174 618/1109/170 +f 614/730/163 619/1487/163 616/1110/178 +f 611/729/178 616/1110/178 615/1111/176 +f 613/733/170 618/1109/170 619/1112/163 +f 610/727/176 615/1111/176 537/1113/164 +f 617/1114/174 612/734/174 529/737/165 +f 631/1115/160 633/1118/183 632/1116/183 +f 633/1118/183 635/1488/184 634/1119/184 +f 634/1119/184 635/1488/184 637/1120/163 +f 637/1122/163 639/1125/185 638/1123/185 +f 639/1125/185 641/1127/186 640/1126/186 +f 641/1127/186 643/1129/161 642/1128/161 +f 643/1129/161 645/1131/187 644/1130/187 +f 645/1131/187 647/1133/188 646/1132/188 +f 647/1133/188 649/1135/162 648/1134/162 +f 649/1135/162 651/1137/189 650/1136/189 +f 651/1137/189 653/1139/190 652/1138/190 +f 653/1139/190 631/1115/160 630/1117/160 +f 669/1140/191 670/1177/192 682/1141/192 +f 669/1143/191 681/1489/191 680/1144/193 +f 679/1146/194 668/1180/193 680/1147/193 +f 679/1149/194 691/1490/194 690/1150/195 +f 677/1152/196 678/1183/195 690/1153/195 +f 677/1155/196 689/1491/196 688/1156/197 +f 676/1158/197 688/1492/197 687/1159/198 +f 674/1161/199 675/1187/198 687/1162/198 +f 674/1164/199 686/1493/199 685/1165/200 +f 672/1167/201 673/1190/200 685/1168/200 +f 671/1170/202 672/1192/201 684/1171/201 +f 671/1173/202 683/1494/202 682/1174/192 +f 693/1176/203 694/1495/204 670/1177/204 +f 692/1178/205 693/1496/203 669/1143/203 +f 679/1146/206 703/1497/206 692/1179/205 +f 702/1181/207 703/1498/206 679/1149/206 +f 677/1152/208 701/1499/208 702/1182/207 +f 700/1184/209 701/1500/208 677/1155/208 +f 675/1160/210 699/1501/210 700/1185/209 +f 674/1161/211 698/1502/211 699/1186/210 +f 697/1188/212 698/1503/211 674/1164/211 +f 696/1189/213 697/1504/212 673/1190/212 +f 695/1191/214 696/1505/213 672/1192/213 +f 694/1193/204 695/1506/214 671/1173/214 +f 761/1194/215 769/1207/228 770/1195/216 +f 759/1197/218 767/1208/229 768/1198/219 +f 757/1200/221 765/1211/230 766/1201/222 +f 755/1203/224 763/1206/227 764/1204/225 +f 762/1196/217 770/1195/216 763/1206/227 +f 760/1199/220 768/1198/219 769/1207/228 +f 758/1202/223 766/1201/222 767/1208/229 +f 756/1205/226 764/1204/225 765/1209/230 +f 765/1211/230 773/1507/236 774/1212/231 +f 764/1204/225 763/1215/227 771/1213/232 +f 763/1215/227 770/1223/216 777/1216/234 +f 766/1201/222 774/1212/231 775/1217/235 +f 764/1204/225 772/1214/233 773/1219/236 +f 767/1218/229 775/1217/235 776/1220/237 +f 776/1220/237 775/1217/235 782/1224/238 +f 774/1212/231 773/1507/236 780/1226/240 +f 771/1213/232 778/1229/243 779/1228/242 +f 777/1216/234 784/1231/244 778/1229/243 +f 775/1217/235 774/1212/231 781/1227/241 +f 772/1214/233 779/1228/242 780/1230/240 +f 782/1232/238 789/1242/250 790/1233/245 +f 784/1235/244 769/1241/228 785/1236/246 +f 781/1238/241 780/1508/240 787/1239/248 +f 783/1234/239 790/1233/245 785/1236/246 +f 781/1238/241 788/1240/249 789/1242/250 +f 780/1243/240 779/1254/242 786/1244/251 +f 786/1244/251 793/1255/258 794/1246/252 +f 790/1233/245 797/1249/255 792/1247/253 +f 790/1233/245 789/1242/250 796/1248/254 +f 788/1240/249 787/1239/248 794/1250/252 +f 791/1237/247 785/1236/246 792/1247/253 +f 789/1242/250 788/1240/249 795/1251/256 +f 778/1256/243 799/1262/261 801/1257/259 +f 797/1249/255 805/1263/262 800/1259/260 +f 798/1261/257 806/1266/265 799/1262/261 +f 796/1248/254 804/1267/266 805/1263/262 +f 795/1251/256 794/1509/252 802/1264/263 +f 792/1260/253 800/1259/260 806/1266/265 +f 795/1251/256 803/1265/264 804/1267/266 +f 793/1258/258 801/1257/259 802/1268/263 +f 805/1263/262 804/1267/266 811/1270/267 +f 803/1265/264 802/1510/263 809/1272/269 +f 800/1274/260 807/1280/273 813/1275/271 +f 803/1265/264 810/1273/270 811/1270/267 +f 802/1277/263 801/1290/259 808/1278/272 +f 805/1263/262 812/1271/268 807/1280/273 +f 812/1271/268 819/1283/276 814/1281/274 +f 812/1271/268 811/1270/267 818/1282/275 +f 810/1273/270 809/1272/269 816/1284/277 +f 807/1280/273 814/1281/274 820/1286/279 +f 810/1273/270 817/1285/278 818/1282/275 +f 809/1279/269 808/1278/272 815/1287/280 +f 799/1291/261 821/1297/283 823/1292/281 +f 819/1283/276 827/1298/284 822/1294/282 +f 820/1296/279 828/1301/286 821/1297/283 +f 818/1282/275 826/1302/287 827/1298/284 +f 816/1299/277 824/1511/288 825/1300/285 +f 814/1295/274 822/1294/282 828/1301/286 +f 817/1285/278 825/1300/285 826/1302/287 +f 815/1293/280 823/1292/281 824/1303/288 +f 825/1300/285 824/1511/288 831/1305/236 +f 821/1307/283 828/1325/286 835/1308/237 +f 826/1310/287 825/1300/285 832/1306/233 +f 823/1292/281 830/1313/231 831/1312/236 +f 821/1307/283 829/1309/235 830/1313/231 +f 826/1310/287 833/1311/232 834/1314/234 +f 829/1309/235 836/1321/229 837/1316/222 +f 833/1311/232 840/1322/227 841/1317/216 +f 832/1306/233 831/1305/236 838/1318/230 +f 829/1309/235 835/1308/237 842/1320/219 +f 833/1311/232 832/1306/233 839/1319/225 +f 830/1313/231 837/1316/222 838/1323/230 +f 822/1326/282 843/1332/215 850/1327/220 +f 836/1329/229 844/1337/241 845/1330/223 +f 841/1331/216 849/1334/217 843/1332/215 +f 840/1333/227 848/1338/224 849/1334/217 +f 839/1319/225 838/1318/230 846/1335/221 +f 842/1328/219 850/1327/220 844/1337/241 +f 839/1319/225 847/1336/226 848/1338/224 +f 837/1316/222 845/1330/223 846/1339/221 +f 761/1340/215 762/1196/217 857/1341/289 +f 758/1343/223 854/1356/298 853/1344/291 +f 756/1205/226 852/1350/293 851/1346/244 +f 762/1196/217 755/1203/224 851/1346/244 +f 760/1347/220 761/1340/215 856/1342/290 +f 757/1349/221 853/1512/291 852/1350/293 +f 851/1346/244 858/1358/299 864/1351/282 +f 856/1342/290 863/1355/297 862/1352/294 +f 852/1350/293 853/1512/291 860/1353/295 +f 857/1341/289 864/1351/282 863/1355/297 +f 854/1356/298 861/1360/236 860/1357/295 +f 852/1350/293 859/1354/296 858/1358/299 +f 759/1361/218 865/1513/248 868/1362/251 +f 862/1364/294 863/1367/297 870/1365/250 +f 863/1367/297 864/1374/282 871/1368/245 +f 858/1369/299 859/1383/296 867/1370/247 +f 862/1364/294 869/1366/249 865/1372/248 +f 864/1374/282 858/1369/299 866/1371/246 +f 868/1362/251 865/1513/248 872/1375/300 +f 871/1368/245 878/1381/305 877/1377/302 +f 867/1370/247 874/1384/306 873/1378/303 +f 865/1372/248 869/1366/249 876/1379/304 +f 866/1371/246 873/1378/303 878/1381/305 +f 869/1366/249 870/1365/250 877/1377/302 +f 872/1385/300 880/1514/288 883/1386/285 +f 878/1381/305 886/1397/286 885/1388/283 +f 874/1389/306 882/1393/284 881/1390/282 +f 860/1392/295 879/1396/287 882/1393/284 +f 876/1379/304 884/1398/281 880/1394/288 +f 875/1387/301 883/1386/285 879/1396/287 +f 873/1391/303 881/1390/282 886/1397/286 +f 877/1377/302 885/1388/283 884/1398/281 +f 849/1334/217 892/1408/289 887/1399/290 +f 848/1338/224 847/1336/226 890/1401/293 +f 845/1403/223 888/1419/298 889/1404/291 +f 843/1400/215 887/1399/290 893/1406/292 +f 848/1338/224 891/1402/244 892/1408/289 +f 847/1336/226 846/1515/221 889/1409/291 +f 892/1408/289 899/1416/313 894/1410/307 +f 891/1402/244 890/1401/293 897/1411/308 +f 889/1404/291 888/1419/298 895/1413/310 +f 887/1399/290 894/1410/307 900/1415/312 +f 891/1402/244 898/1412/309 899/1416/313 +f 890/1401/293 889/1409/291 896/1417/311 +f 899/1416/313 907/1432/321 902/1420/314 +f 898/1412/309 897/1411/308 905/1422/315 +f 895/1424/310 903/1428/318 904/1425/317 +f 844/1427/241 901/1431/320 903/1428/318 +f 894/1421/307 902/1420/314 908/1429/319 +f 844/1427/241 900/1430/312 908/1429/319 +f 898/1412/309 906/1423/316 907/1432/321 +f 897/1411/308 896/1516/311 904/1433/317 +f 879/1434/287 909/1440/232 911/1435/234 +f 884/1398/281 913/1439/231 910/1437/236 +f 885/1438/283 914/1444/235 913/1439/231 +f 883/1386/285 912/1442/233 909/1440/232 +f 883/1386/285 880/1514/288 910/1441/236 +f 886/1443/286 915/1452/237 914/1444/235 +f 909/1440/232 912/1442/233 919/1445/225 +f 912/1442/233 910/1441/236 917/1447/230 +f 913/1439/231 914/1444/235 921/1448/229 +f 911/1435/234 909/1440/232 916/1446/227 +f 913/1439/231 920/1449/222 917/1451/230 +f 915/1452/237 922/1454/219 921/1448/229 +f 917/1447/230 925/1517/327 927/1455/322 +f 921/1448/229 929/1466/328 928/1456/323 +f 881/1457/282 923/1464/326 930/1458/324 +f 902/1460/314 924/1471/332 936/1461/325 +f 918/1463/216 926/1484/334 923/1464/326 +f 920/1449/222 928/1456/323 925/1465/327 +f 922/1459/219 930/1458/324 929/1466/328 +f 906/1423/316 934/1472/179 935/1468/329 +f 905/1422/315 904/1518/317 932/1469/330 +f 907/1432/321 935/1468/329 924/1471/332 +f 906/1423/316 905/1422/315 933/1470/331 +f 904/1473/317 903/1477/318 931/1474/333 +f 928/1456/323 929/1466/328 934/1472/179 +f 929/1466/328 930/1458/324 935/1468/329 +f 924/1471/332 935/1468/329 930/1458/324 +f 923/1478/326 926/1482/334 936/1461/325 +f 925/1479/327 928/1456/323 933/1470/331 +f 925/1480/327 932/1475/330 931/1474/333 +f 916/1483/227 901/1519/320 926/1484/334 +f 927/1455/322 901/1519/320 916/1483/227 diff --git a/src/main/resources/assets/hbm/models/weapons/novac.obj b/src/main/resources/assets/hbm/models/weapons/novac.obj index 8144b6735..7f3f04f6c 100644 --- a/src/main/resources/assets/hbm/models/weapons/novac.obj +++ b/src/main/resources/assets/hbm/models/weapons/novac.obj @@ -1,192 +1,96 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender 4.0.1 # www.blender.org -o Hammer -v 0.032000 0.588845 1.091862 -v 0.032000 0.697419 1.159147 -v 0.032000 0.639309 1.194319 -v -0.032000 0.588845 1.091862 -v -0.032000 0.697419 1.159147 -v -0.032000 0.755530 1.130092 -v 0.032000 0.842695 0.952702 -v -0.032000 0.842695 1.107154 -v 0.032000 0.842695 1.107154 -v 0.032000 0.755530 1.130092 -v -0.032000 0.718828 1.220316 -v 0.032000 0.718828 1.220316 -v 0.068452 0.772351 1.279956 -v -0.068452 0.772351 1.279956 -v -0.068452 0.776939 1.464992 -v 0.068452 0.776939 1.464992 -v -0.068452 0.737179 1.463463 -v 0.068452 0.737179 1.463463 -v -0.068452 0.735650 1.390060 -v 0.068452 0.735650 1.390060 -v 0.068452 0.724945 1.304423 -v -0.068452 0.724945 1.304423 -v -0.032000 0.663776 1.232550 -v 0.032000 0.663776 1.232550 -v -0.032000 0.639309 1.194319 -v -0.032000 0.620958 1.237138 -v 0.032000 0.620958 1.237138 -v -0.032000 0.561319 1.335008 -v 0.032000 0.561319 1.335008 -v -0.032000 0.477211 1.387001 -v 0.032000 0.477211 1.387001 -v -0.032000 0.842695 0.952702 -vt 0.343765 0.934799 -vt 0.350946 0.946383 -vt 0.354698 0.940182 -vt 0.343782 0.934821 -vt 0.350963 0.946405 -vt 0.347864 0.952606 -vt 0.390183 0.954876 -vt 0.397012 0.971356 -vt 0.390183 0.971356 -vt 0.397012 0.980973 -vt 0.390183 0.980973 -vt 0.397012 0.987905 -vt 0.390183 0.987905 -vt 0.397012 0.994820 -vt 0.390183 0.994820 -vt 0.379264 0.964780 -vt 0.387814 0.975498 -vt 0.379264 0.979388 -vt 0.359515 0.979388 -vt 0.359515 0.964780 -vt 0.355269 0.979388 -vt 0.355269 0.964780 -vt 0.347436 0.979388 -vt 0.347436 0.964780 -vt 0.338227 0.964780 -vt 0.338227 0.979388 -vt 0.328157 0.975498 -vt 0.328157 0.968670 -vt 0.397043 0.923988 -vt 0.403872 0.928831 -vt 0.397043 0.928831 -vt 0.403872 0.933801 -vt 0.397043 0.933801 -vt 0.403872 0.946030 -vt 0.397043 0.946030 -vt 0.403872 0.956580 -vt 0.397043 0.956580 -vt 0.403872 0.990249 -vt 0.397043 0.990249 -vt 0.390183 0.923988 -vt 0.397012 0.954876 -vt 0.384495 0.954648 -vt 0.384235 0.950410 -vt 0.376401 0.950426 -vt 0.357473 0.948666 -vt 0.367240 0.949494 -vt 0.358777 0.942792 -vt 0.357490 0.948689 -vt 0.367257 0.949516 -vt 0.364763 0.954633 -vt 0.376418 0.950449 -vt 0.384252 0.950432 -vt 0.384512 0.954670 -vt 0.328921 0.961887 -vt 0.347847 0.952584 -vt 0.345400 0.961884 -vt 0.369708 0.931858 -vt 0.375254 0.922884 -vt 0.359266 0.938223 -vt 0.375271 0.922906 -vt 0.369725 0.931881 -vt 0.359283 0.938246 -vt 0.354715 0.940204 -vt 0.358794 0.942814 -vt 0.345417 0.961907 -vt 0.328938 0.961909 -vt 0.387814 0.968670 -vt 0.403872 0.923988 -vt 0.397012 0.923988 -vt 0.364746 0.954610 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.2545 0.9671 -vn 0.0000 0.4472 0.8944 -vn 0.0000 0.9439 -0.3303 -vn 0.0000 0.7442 -0.6679 -vn 0.0000 0.9997 -0.0248 -vn 0.0000 -0.0384 0.9993 -vn 0.0000 -0.9998 0.0208 -vn 0.0000 -0.9923 0.1240 -vn 0.0000 -0.7615 0.6481 -vn 0.0000 -0.8423 0.5390 -vn 0.0000 0.9191 0.3939 -vn 0.0000 0.8539 0.5204 -vn 0.0000 0.5258 0.8506 -vn 0.0000 -0.9353 -0.3538 -vn 0.0000 -0.4807 -0.8769 -vn 0.9164 -0.0869 -0.3908 -vn -0.9050 -0.1951 -0.3780 -vn 0.9050 -0.1951 -0.3780 -vn -0.9164 -0.0869 -0.3908 -s off -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 8/8/3 9/9/3 -f 9/9/4 6/10/4 10/11/4 -f 10/11/5 5/12/5 2/13/5 -f 2/13/6 11/14/6 12/15/6 -f 13/16/7 11/17/7 14/18/7 -f 13/16/8 15/19/8 16/20/8 -f 16/20/9 17/21/9 18/22/9 -f 18/22/10 19/23/10 20/24/10 -f 21/25/11 19/23/11 22/26/11 -f 21/25/12 23/27/12 24/28/12 -f 24/29/13 25/30/13 3/31/13 -f 3/31/14 26/32/14 27/33/14 -f 27/33/15 28/34/15 29/35/15 -f 29/35/16 30/36/16 31/37/16 -f 31/37/17 4/38/17 1/39/17 -f 1/40/18 32/41/18 7/7/18 -f 16/42/1 18/43/1 20/44/1 -f 12/45/19 21/46/19 24/47/19 -f 11/48/20 22/49/20 14/50/20 -f 19/51/2 17/52/2 15/53/2 -f 1/1/1 7/54/1 10/55/1 -f 7/54/1 9/56/1 10/55/1 -f 29/57/1 31/58/1 1/1/1 -f 3/3/1 27/59/1 1/1/1 -f 27/59/1 29/57/1 1/1/1 -f 12/45/1 24/47/1 2/2/1 -f 24/47/1 3/3/1 2/2/1 -f 1/1/1 10/55/1 2/2/1 -f 4/4/2 30/60/2 28/61/2 -f 28/61/2 26/62/2 4/4/2 -f 26/62/2 25/63/2 4/4/2 -f 25/63/2 23/64/2 5/5/2 -f 23/64/2 11/48/2 5/5/2 -f 8/65/2 32/66/2 6/6/2 -f 32/66/2 4/4/2 6/6/2 -f 4/4/2 25/63/2 5/5/2 -f 7/7/3 32/41/3 8/8/3 -f 9/9/4 8/8/4 6/10/4 -f 10/11/5 6/10/5 5/12/5 -f 2/13/6 5/12/6 11/14/6 -f 13/16/7 12/67/7 11/17/7 -f 13/16/8 14/18/8 15/19/8 -f 16/20/9 15/19/9 17/21/9 -f 18/22/10 17/21/10 19/23/10 -f 21/25/11 20/24/11 19/23/11 -f 21/25/12 22/26/12 23/27/12 -f 24/29/13 23/68/13 25/30/13 -f 3/31/14 25/30/14 26/32/14 -f 27/33/15 26/32/15 28/34/15 -f 29/35/16 28/34/16 30/36/16 -f 31/37/17 30/36/17 4/38/17 -f 1/40/18 4/69/18 32/41/18 -f 20/44/1 21/46/1 13/70/1 -f 13/70/1 16/42/1 20/44/1 -f 12/45/21 13/70/21 21/46/21 -f 11/48/22 23/64/22 22/49/22 -f 15/53/2 14/50/2 19/51/2 -f 14/50/2 22/49/2 19/51/2 -o Gun +o Cylinder +v -0.126087 0.227980 0.137402 +v 0.126087 0.227980 0.774998 +v -0.126086 0.227980 0.774998 +v 0.126086 0.227980 0.137402 +v 0.304400 0.406294 0.774998 +v 0.304400 0.406293 0.137402 +v 0.304400 0.658466 0.774998 +v 0.304400 0.658466 0.137402 +v 0.126087 0.836780 0.774998 +v 0.126086 0.836780 0.137402 +v -0.126086 0.836780 0.774998 +v -0.126087 0.836780 0.137402 +v -0.304400 0.658467 0.774998 +v -0.304400 0.658466 0.137402 +v -0.304400 0.406294 0.774998 +v -0.304400 0.406294 0.137402 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.246533 0.894427 +vt 0.118900 0.944907 +vt 0.118900 0.894427 +vt 0.246533 0.944907 +vt 0.118900 0.995387 +vt 0.246533 0.591549 +vt 0.118900 0.642029 +vt 0.118900 0.591549 +vt 0.246533 0.642029 +vt 0.118900 0.692509 +vt 0.246533 0.692509 +vt 0.118900 0.742988 +vt 0.246533 0.742988 +vt 0.118900 0.793468 +vt 0.375332 0.627244 +vt 0.375332 0.677724 +vt 0.253463 0.627244 +vt 0.246533 0.793468 +vt 0.118900 0.843948 +vt 0.246533 0.843948 +vt 0.339638 0.713512 +vt 0.375332 0.799686 +vt 0.289158 0.835381 +vt 0.246533 0.995387 +vt 0.339638 0.713418 +vt 0.289158 0.713418 +vt 0.253463 0.677724 +vt 0.289158 0.591549 +vt 0.339638 0.591549 +vt 0.253464 0.799686 +vt 0.253463 0.749207 +vt 0.289158 0.713512 +vt 0.375332 0.749207 +vt 0.339638 0.835381 +s 1 +f 1/1/1 2/2/2 3/3/1 +f 4/4/2 5/5/3 2/2/2 +f 6/6/3 7/7/4 5/8/3 +f 8/9/4 9/10/5 7/7/4 +f 10/11/5 11/12/6 9/10/5 +f 12/13/6 13/14/7 11/12/6 +f 8/15/8 6/16/8 14/17/8 +f 14/18/7 15/19/9 13/14/7 +f 16/20/9 3/3/1 15/19/9 +f 7/21/10 11/22/10 15/23/10 +f 1/1/1 4/4/2 2/2/2 +f 4/4/2 6/24/3 5/5/3 +f 6/6/3 8/9/4 7/7/4 +f 8/9/4 10/11/5 9/10/5 +f 10/11/5 12/13/6 11/12/6 +f 12/13/6 14/18/7 13/14/7 +f 6/16/8 4/25/8 1/26/8 +f 1/26/8 16/27/8 6/16/8 +f 16/27/8 14/17/8 6/16/8 +f 14/17/8 12/28/8 10/29/8 +f 10/29/8 8/15/8 14/17/8 +f 14/18/7 16/20/9 15/19/9 +f 16/20/9 1/1/1 3/3/1 +f 15/23/10 3/30/10 2/31/10 +f 2/31/10 5/32/10 7/21/10 +f 7/21/10 9/33/10 11/22/10 +f 11/22/10 13/34/10 15/23/10 +f 15/23/10 2/31/10 7/21/10 +o Body v 0.070876 1.068409 0.865754 v 0.141753 1.068409 0.897529 v 0.141753 1.068409 0.865754 @@ -207,32 +111,6 @@ v 0.000000 1.008182 0.897529 v 0.000000 1.008182 0.865754 v 0.070876 1.068409 0.897529 v -0.141753 1.068409 0.897529 -v 0.045500 -0.120256 0.684201 -v 0.045500 -0.026668 0.645664 -v 0.045500 -0.037678 0.759438 -v -0.045500 -0.195494 0.673190 -v -0.045500 -0.241370 0.641994 -v -0.045500 -0.226690 0.735583 -v -0.045500 0.083436 0.570427 -v 0.045500 0.083436 0.570427 -v -0.045500 -0.026668 0.645664 -v 0.045500 -0.195494 0.673190 -v -0.045500 -0.120256 0.684201 -v 0.045500 -0.241370 0.641994 -v 0.045500 -0.301928 0.541066 -v 0.045500 -0.329454 0.561251 -v -0.045500 -0.301928 0.541066 -v 0.045500 -0.292752 0.676861 -v -0.045500 -0.329454 0.561251 -v 0.045500 -0.226690 0.735583 -v -0.045500 -0.292752 0.676861 -v 0.045500 -0.098235 0.761274 -v -0.045500 -0.098235 0.761274 -v 0.045500 0.006363 0.860367 -v -0.045500 -0.037678 0.759438 -v 0.045500 0.120138 0.755768 -v -0.045500 0.006363 0.860367 -v -0.045500 0.120138 0.755768 v 0.021772 0.858479 -2.163888 v 0.021772 0.977946 -2.136619 v 0.021772 0.977946 -1.813800 @@ -573,6 +451,324 @@ v -0.130093 0.275159 0.131254 v 0.130092 0.274881 0.131254 v -0.156306 0.411972 0.131254 v 0.156306 0.412767 0.131254 +v -0.065046 0.477214 1.426684 +v -0.065047 0.708668 1.058814 +v -0.065047 0.613690 1.167382 +v -0.065047 0.530807 1.307363 +v 0.065046 0.708668 1.058814 +v 0.065047 0.477214 1.426684 +v 0.065046 0.530807 1.307363 +v 0.065046 0.613690 1.167382 +v -0.065047 0.633816 1.012052 +v 0.065046 0.538838 1.120620 +v 0.065047 0.402362 1.379922 +v -0.065047 0.455955 1.260601 +v -0.065046 0.402362 1.379922 +v -0.065047 0.538838 1.120620 +v 0.065046 0.633816 1.012052 +v 0.065046 0.455955 1.260601 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.7071 -0.7071 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.7071 0.7071 +vn -0.6475 0.7620 -0.0000 +vn 0.6475 0.7620 -0.0000 +vn -0.0000 0.9761 0.2173 +vn -0.0000 0.9056 0.4242 +vn -0.0000 0.2225 -0.9749 +vn -0.0420 0.7668 -0.6406 +vn 0.0382 0.7683 -0.6390 +vn -0.0000 -1.0000 0.0061 +vn 0.0199 0.9997 0.0174 +vn 0.0205 0.9890 0.1463 +vn -0.0199 0.9997 0.0174 +vn -0.0000 0.9809 0.1946 +vn -0.0000 0.9155 -0.4023 +vn -0.0000 0.4940 -0.8694 +vn -0.0186 0.7451 -0.6667 +vn 0.0187 0.7734 -0.6336 +vn -0.0206 0.9890 0.1463 +vn -0.9292 -0.3696 -0.0000 +vn -0.9658 -0.2592 -0.0000 +vn -0.9821 -0.1882 -0.0000 +vn -0.0000 -0.7788 -0.6273 +vn -0.0000 -0.6466 -0.7629 +vn 0.9658 -0.2592 -0.0000 +vn 0.9292 -0.3696 -0.0000 +vn 0.9821 -0.1882 -0.0000 +vn 0.9538 -0.3003 -0.0000 +vn 0.9151 -0.4033 -0.0000 +vn -0.0000 -0.4648 -0.8854 +vn -0.9538 -0.3003 -0.0000 +vn -0.9151 -0.4033 -0.0000 +vn 0.0797 -0.9968 -0.0000 +vn -0.0777 -0.9970 -0.0000 +vn -0.0797 -0.9968 -0.0000 +vn -0.0000 -0.4649 -0.8853 +vn -0.0000 -0.4649 -0.8854 +vn -0.4332 -0.9013 -0.0000 +vn -0.4666 -0.8845 -0.0000 +vn 0.4332 -0.9013 -0.0000 +vn 0.0777 -0.9970 -0.0000 +vn 0.4666 -0.8845 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn 0.8801 0.4747 -0.0000 +vn -0.5493 0.8356 -0.0000 +vn -0.8801 0.4747 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.5493 0.8356 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn 0.1301 0.6195 0.7741 +vn -0.1301 0.4620 0.8773 +vn 0.1301 0.4620 0.8773 +vn -0.0000 0.5645 -0.8254 +vn -0.0000 0.8133 -0.5819 +vn 0.1295 0.0940 -0.9871 +vn -0.1323 -0.0052 -0.9912 +vn 0.1322 -0.0052 -0.9912 +vn -0.1340 -0.2621 -0.9557 +vn 0.1340 -0.2621 -0.9557 +vn -0.1365 -0.6074 -0.7826 +vn 0.1365 -0.6074 -0.7826 +vn -0.1352 -0.8771 -0.4608 +vn 0.1352 -0.8771 -0.4608 +vn -0.0808 -0.9622 -0.2603 +vn 0.0808 -0.9622 -0.2603 +vn 0.7746 -0.6264 -0.0870 +vn 0.9945 -0.0968 -0.0405 +vn 0.8887 -0.4230 -0.1767 +vn -0.0000 -0.5480 -0.8365 +vn -0.0000 0.8992 -0.4375 +vn 0.8698 0.1565 0.4679 +vn 0.9938 0.0274 0.1074 +vn 0.9228 0.0804 0.3768 +vn 0.0986 0.3350 0.9370 +vn -0.1326 0.3486 0.9278 +vn 0.1326 0.3486 0.9278 +vn -0.1335 0.5772 0.8056 +vn 0.1335 0.5772 0.8056 +vn -0.1301 0.6195 0.7741 +vn -0.9228 0.0804 0.3768 +vn -0.8698 0.1565 0.4679 +vn -0.7544 0.1070 0.6477 +vn 0.1301 0.3290 0.9353 +vn -0.1273 0.2812 0.9512 +vn 0.1273 0.2812 0.9512 +vn 0.4948 0.4049 0.7689 +vn 0.4968 0.2880 0.8187 +vn 0.8601 0.2377 0.4514 +vn 0.8626 0.1679 0.4771 +vn 0.9905 0.0642 0.1218 +vn 0.4781 0.2490 0.8423 +vn 0.8441 0.1520 0.5141 +vn 0.9881 0.0437 0.1477 +vn 0.9909 0.0446 0.1269 +vn 0.4931 0.0825 -0.8661 +vn 0.5089 -0.0045 -0.8608 +vn 0.8591 0.0485 -0.5095 +vn 0.8741 -0.0026 -0.4858 +vn 0.9904 0.0131 -0.1377 +vn 0.5163 -0.2265 -0.8259 +vn 0.8799 -0.1257 -0.4583 +vn 0.9926 -0.0006 -0.1217 +vn 0.5261 -0.5214 -0.6718 +vn 0.8869 -0.2832 -0.3649 +vn 0.9933 -0.0306 -0.1117 +vn 0.5029 -0.7822 -0.3678 +vn 0.9941 -0.0667 -0.0860 +vn -0.9945 -0.0968 -0.0405 +vn -0.7747 -0.6264 -0.0870 +vn -0.8887 -0.4230 -0.1767 +vn 0.5105 0.3024 0.8049 +vn 0.3336 0.5327 0.7778 +vn 0.7543 0.1069 0.6477 +vn 0.0001 0.8288 0.5595 +vn -0.0001 0.8288 0.5595 +vn -0.0000 0.8185 0.5745 +vn 0.5145 0.4994 0.6971 +vn 0.8785 0.2783 0.3884 +vn 0.4948 0.5430 0.6785 +vn 0.8601 0.3187 0.3982 +vn 0.9905 0.0860 0.1075 +vn 0.9931 0.0683 0.0953 +vn -0.9905 0.0642 0.1219 +vn -0.8626 0.1679 0.4771 +vn -0.8601 0.2377 0.4514 +vn -0.4968 0.2880 0.8187 +vn -0.4948 0.4049 0.7689 +vn -0.1301 0.3290 0.9353 +vn -0.9881 0.0437 0.1477 +vn -0.9909 0.0446 0.1269 +vn -0.8441 0.1520 0.5141 +vn -0.4781 0.2490 0.8423 +vn -0.9904 0.0131 -0.1377 +vn -0.8741 -0.0026 -0.4858 +vn -0.8591 0.0485 -0.5095 +vn -0.5089 -0.0045 -0.8608 +vn -0.4931 0.0825 -0.8661 +vn -0.1295 0.0940 -0.9871 +vn -0.9926 -0.0006 -0.1217 +vn -0.8799 -0.1257 -0.4583 +vn -0.5163 -0.2265 -0.8259 +vn -0.9933 -0.0306 -0.1117 +vn -0.8869 -0.2832 -0.3649 +vn -0.5261 -0.5214 -0.6718 +vn -0.9941 -0.0667 -0.0860 +vn -0.5029 -0.7822 -0.3678 +vn -0.3318 -0.9223 -0.1983 +vn 0.3318 -0.9223 -0.1983 +vn 0.4610 -0.8818 -0.0993 +vn -0.3336 0.5327 0.7778 +vn -0.5105 0.3024 0.8049 +vn -0.0986 0.3350 0.9370 +vn -0.9938 0.0274 0.1074 +vn -0.8785 0.2782 0.3884 +vn -0.5145 0.4994 0.6971 +vn -0.9905 0.0860 0.1075 +vn -0.9931 0.0682 0.0953 +vn -0.8601 0.3187 0.3982 +vn -0.4948 0.5430 0.6785 +vn 0.7184 0.6547 -0.2351 +vn 0.7258 0.6612 -0.1896 +vn 0.7397 0.6729 0.0012 +vn -0.7258 0.6612 -0.1896 +vn -0.7184 0.6547 -0.2351 +vn -0.7397 0.6729 0.0012 +vn 0.7127 0.3923 -0.5816 +vn 0.7116 0.2849 -0.6423 +vn 0.7115 0.2849 -0.6424 +vn 0.7070 0.5751 -0.4116 +vn 0.7123 0.4004 -0.5764 +vn 0.7070 0.5751 -0.4115 +vn -0.7124 0.4004 -0.5764 +vn -0.7070 0.5751 -0.4116 +vn -0.7127 0.3923 -0.5816 +vn -0.7070 0.5751 -0.4115 +vn -0.5760 -0.6122 -0.5417 +vn -0.5677 -0.6176 -0.5443 +vn -0.5896 -0.6030 -0.5373 +vn -0.7116 0.2849 -0.6423 +vn -0.7115 0.2849 -0.6424 +vn 0.5759 -0.6122 -0.5417 +vn 0.5677 -0.6176 -0.5443 +vn 0.5579 -0.6239 -0.5472 +vn -0.0000 0.4061 -0.9138 +vn 0.9813 -0.1926 -0.0011 +vn 0.7425 -0.0035 0.6698 +vn -0.7426 -0.0033 0.6697 +vn -0.9813 -0.1925 -0.0011 +vn -0.0002 0.8185 0.5746 +vn 0.0002 0.8185 0.5746 +vn -0.4610 -0.8818 -0.0993 +vn -0.5579 -0.6239 -0.5472 +vn 0.5896 -0.6030 -0.5373 +vn -0.0000 0.2108 0.9775 +vn -0.0000 0.4723 0.8814 +vn -0.0000 0.6194 0.7851 +vn -0.0000 0.6663 0.7457 +vn -0.7406 -0.3560 0.5699 +vn -0.0000 0.4372 0.8994 +vn -0.0000 0.3563 0.9344 +vn -0.0000 0.0622 -0.9981 +vn -0.0000 -0.3276 -0.9448 +vn -0.0000 0.3403 0.9403 +vn -0.0000 -0.5438 -0.8392 +vn -0.0000 -0.9411 0.3382 +vn -0.0000 -0.3867 0.9222 +vn -0.0000 -0.4862 0.8739 +vn -0.0000 -0.5780 -0.8160 +vn -0.0000 0.9933 -0.1158 +vn -0.0000 0.9943 -0.1065 +vn -0.0000 0.9998 0.0187 +vn -0.0000 0.5230 0.8523 +vn -0.0000 0.9338 0.3578 +vn -0.0000 0.8877 0.4603 +vn -0.0000 0.0182 0.9998 +vn 0.7359 0.3588 -0.5743 +vn -0.0000 -0.7290 0.6845 +vn -0.0000 -0.9616 0.2745 +vn -0.0000 -0.4386 -0.8987 +vn -0.0000 -0.3274 -0.9449 +vn -0.0000 -0.9962 -0.0866 +vn -0.0000 -0.9120 -0.4103 +vn -0.0000 -0.6722 -0.7404 +vn -0.0000 -0.9995 -0.0317 +vn 0.7080 0.3088 0.6351 +vn 0.7072 0.3698 0.6026 +vn -0.7080 0.3088 0.6351 +vn -0.7072 0.3698 0.6026 +vn 0.7072 0.2520 0.6606 +vn 0.7071 0.2406 0.6649 +vn 0.7072 0.2519 0.6607 +vn -0.7071 0.2406 0.6649 +vn -0.7072 0.2520 0.6606 +vn -0.7071 0.2519 0.6607 +vn 0.7084 0.3334 0.6221 +vn 0.7138 0.1476 0.6846 +vn -0.7084 0.3333 0.6221 +vn -0.7138 0.1476 0.6846 +vn 0.7071 0.0129 0.7070 +vn -0.7071 0.0129 0.7070 +vn -0.0000 0.9524 0.3048 +vn -0.0000 -0.2132 0.9770 +vn -0.0000 -0.6337 0.7736 +vn -0.0000 0.9308 0.3656 +vn -0.0000 0.9982 0.0595 +vn -0.0000 0.6570 0.7539 +vn -0.0000 0.2580 0.9661 +vn -0.0000 0.7484 -0.6633 +vn -0.0000 0.9693 -0.2458 +vn 0.9853 0.1709 -0.0000 +vn 0.9664 0.2570 0.0001 +vn -0.0000 -0.9442 -0.3293 +vn -0.0000 -0.9989 -0.0474 +vn -0.0000 0.4264 -0.9045 +vn -0.0000 -0.7977 0.6030 +vn 0.9757 -0.2189 -0.0000 +vn 0.9625 -0.2713 0.0001 +vn -0.9751 -0.2217 -0.0000 +vn -0.9616 -0.2746 0.0001 +vn -0.9752 -0.2212 0.0001 +vn 0.9664 0.2571 0.0001 +vn -0.9855 0.1695 -0.0000 +vn 0.9663 0.2574 -0.0000 +vn 0.9679 -0.2515 -0.0000 +vn 0.9758 -0.2185 0.0001 +vn 0.9776 0.2106 -0.0000 +vn -0.9670 0.2549 0.0001 +vn -0.9670 0.2548 0.0001 +vn -0.9673 -0.2536 -0.0000 +vn -0.9669 0.2552 -0.0000 +vn -0.9781 0.2081 -0.0000 +vn 0.5733 0.2131 0.7912 +vn 0.5789 -0.1967 0.7913 +vn 0.5756 0.1979 0.7934 +vn 0.5053 0.4828 0.7152 +vn 0.5758 -0.2183 0.7879 +vn 0.5109 -0.4883 0.7075 +vn -0.5122 -0.4895 0.7058 +vn -0.5766 -0.2205 0.7867 +vn -0.5804 -0.1975 0.7900 +vn -0.5771 0.1993 0.7920 +vn -0.5746 0.2114 0.7907 +vn -0.5052 0.4828 0.7153 +vn -0.0000 -0.6762 -0.7367 +vn -0.0000 0.6889 0.7248 +vn -0.0000 0.8100 0.5864 +vn -0.0000 0.9122 0.4097 +vn -0.0000 0.9403 0.3402 +vn -0.0000 0.7526 0.6584 +vn 0.7406 -0.3560 0.5699 +vn -0.6681 -0.3942 0.6310 +vn -0.6744 0.3912 -0.6262 +vn 0.6744 0.3912 -0.6262 +vn -0.7359 0.3588 -0.5743 +vn 0.6681 -0.3942 0.6310 vt 0.073656 0.779539 vt 0.081399 0.796810 vt 0.073656 0.796810 @@ -623,62 +819,6 @@ vt 0.071362 0.806398 vt 0.054091 0.806398 vt 0.019547 0.806398 vt 0.002275 0.806398 -vt 0.023130 0.630533 -vt 0.028439 0.641072 -vt 0.015114 0.640800 -vt 0.023687 0.621763 -vt 0.026907 0.616152 -vt 0.016156 0.618688 -vt 0.051880 0.644663 -vt 0.062490 0.660213 -vt 0.051880 0.660213 -vt 0.051880 0.632862 -vt 0.062490 0.644663 -vt 0.051880 0.623995 -vt 0.062490 0.632862 -vt 0.051880 0.617526 -vt 0.062490 0.623995 -vt 0.051880 0.603802 -vt 0.062490 0.617526 -vt 0.062519 0.663431 -vt 0.073130 0.667411 -vt 0.062519 0.667411 -vt 0.062519 0.649287 -vt 0.073130 0.663431 -vt 0.062519 0.638981 -vt 0.073130 0.649287 -vt 0.062519 0.623707 -vt 0.073130 0.638981 -vt 0.062519 0.616642 -vt 0.073130 0.623707 -vt 0.062519 0.603802 -vt 0.073130 0.616642 -vt 0.051880 0.682243 -vt 0.062490 0.700264 -vt 0.051880 0.700264 -vt 0.062490 0.682243 -vt 0.038162 0.653207 -vt 0.016938 0.659116 -vt 0.003769 0.646815 -vt 0.014364 0.633776 -vt 0.016213 0.618613 -vt 0.023743 0.621688 -vt 0.022455 0.610413 -vt 0.026964 0.616078 -vt 0.035571 0.605121 -vt 0.038162 0.608143 -vt 0.003713 0.646890 -vt 0.016882 0.659191 -vt 0.015057 0.640875 -vt 0.038105 0.653282 -vt 0.028383 0.641147 -vt 0.014307 0.633851 -vt 0.023073 0.630608 -vt 0.022398 0.610487 -vt 0.038105 0.608218 -vt 0.035515 0.605196 -vt 0.062490 0.603802 -vt 0.073130 0.603802 vt 0.050815 0.964187 vt 0.022923 0.957640 vt 0.023387 0.882167 @@ -1019,11 +1159,10 @@ vt 0.297467 0.534291 vt 0.274155 0.499064 vt 0.297243 0.498318 vt 0.227832 0.136510 -vt 0.174947 0.178032 -vt 0.174947 0.134818 -vt 0.150989 0.134818 -vt 0.123971 0.178032 -vt 0.123971 0.134818 +vt 0.174947 0.167228 +vt 0.174947 0.145622 +vt 0.069017 0.781576 +vt 0.102885 0.781576 vt 0.200788 0.500764 vt 0.132092 0.532286 vt 0.132160 0.500166 @@ -1057,8 +1196,12 @@ vt 0.288579 0.134818 vt 0.227832 0.179723 vt 0.255763 0.532612 vt 0.255630 0.500001 +vt 0.102246 0.178032 +vt 0.123971 0.167228 +vt 0.123971 0.178032 vt 0.322696 0.499422 -vt 0.102246 0.134818 +vt 0.030823 0.812121 +vt 0.000112 0.812121 vt 0.057683 0.266401 vt 0.014470 0.266401 vt 0.057683 0.248783 @@ -1090,7 +1233,6 @@ vt 0.323509 0.532260 vt 0.326077 0.540048 vt 0.274083 0.533455 vt 0.200769 0.532142 -vt 0.102246 0.178032 vt 0.072626 0.178537 vt 0.066927 0.173242 vt 0.014470 0.248783 @@ -1191,7 +1333,10 @@ vt 0.255877 0.406248 vt 0.244051 0.481199 vt 0.226791 0.437985 vt 0.244051 0.437985 -vt 0.150989 0.178032 +vt 0.174947 0.178032 +vt 0.150989 0.145622 +vt 0.123971 0.145622 +vt 0.123971 0.134818 vt 0.194395 0.128706 vt 0.194395 0.018352 vt 0.237608 0.018352 @@ -1208,11 +1353,19 @@ vt 0.241962 0.102774 vt 0.190042 0.102906 vt 0.190042 0.093797 vt 0.395586 0.178032 +vt 0.016266 0.704221 +vt 0.078614 0.704221 +vt 0.078614 0.766911 +vt 0.150989 0.167228 +vt 0.150989 0.178032 vt 0.014470 0.149002 vt 0.054613 0.579282 vt 0.022097 0.579589 vt 0.066620 0.140727 vt 0.072218 0.135325 +vt 0.102246 0.134818 +vt 0.102246 0.145622 +vt 0.102246 0.167228 vt 0.356499 0.246980 vt 0.443465 0.099671 vt 0.433400 0.210690 @@ -1319,1151 +1472,2671 @@ vt 0.252028 0.028822 vt 0.309512 0.028954 vt 0.309512 0.040967 vt 0.419487 0.090821 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn -0.6475 0.7620 0.0000 -vn 0.6475 0.7620 0.0000 -vn 0.0000 -0.4751 -0.8800 -vn 0.0000 -0.5642 -0.8256 -vn 0.0000 -0.1223 -0.9925 -vn 0.0000 0.3628 -0.9319 -vn 0.0000 0.7269 -0.6868 -vn 0.0000 0.8575 -0.5145 -vn 0.0000 -0.5913 -0.8064 -vn 0.0000 -0.8388 0.5445 -vn 0.0000 -0.9531 0.3026 -vn 0.0000 -0.4458 0.8952 -vn 0.0000 -0.0834 0.9965 -vn 0.0000 0.0303 0.9995 -vn 0.0000 -0.9165 0.3999 -vn 0.0000 0.6768 0.7362 -vn 0.0000 0.9810 -0.1943 -vn 0.0000 -0.5914 -0.8064 -vn 0.0000 0.9761 0.2173 -vn 0.0000 0.9056 0.4242 -vn 0.0000 0.2225 -0.9749 -vn -0.0420 0.7668 -0.6405 -vn 0.0382 0.7683 -0.6390 -vn 0.0000 -1.0000 0.0061 -vn 0.0199 0.9997 0.0174 -vn 0.0205 0.9890 0.1463 -vn -0.0199 0.9997 0.0174 -vn -0.0000 0.9809 0.1946 -vn 0.0000 0.9155 -0.4023 -vn -0.0000 0.4940 -0.8694 -vn -0.0186 0.7451 -0.6667 -vn 0.0187 0.7735 -0.6336 -vn -0.0206 0.9890 0.1463 -vn -0.9292 -0.3696 -0.0000 -vn -0.9658 -0.2592 -0.0000 -vn -0.9821 -0.1882 0.0000 -vn 0.0000 -0.7788 -0.6273 -vn 0.0000 -0.6466 -0.7629 -vn 0.9658 -0.2592 -0.0000 -vn 0.9292 -0.3696 -0.0000 -vn 0.9821 -0.1882 0.0000 -vn 0.9538 -0.3003 -0.0000 -vn 0.9151 -0.4033 -0.0000 -vn 0.0000 -0.4649 -0.8854 -vn -0.9538 -0.3003 -0.0000 -vn -0.9151 -0.4033 -0.0000 -vn 0.0797 -0.9968 -0.0000 -vn -0.0777 -0.9970 -0.0000 -vn -0.0797 -0.9968 -0.0000 -vn 0.0000 -0.4649 -0.8853 -vn -0.4332 -0.9013 -0.0000 -vn -0.4666 -0.8845 -0.0000 -vn 0.4332 -0.9013 -0.0000 -vn 0.0777 -0.9970 -0.0000 -vn 0.4666 -0.8845 -0.0000 -vn 0.8660 -0.5000 -0.0000 -vn 0.8801 0.4747 0.0000 -vn -0.5493 0.8356 0.0000 -vn -0.8801 0.4747 0.0000 -vn -0.8660 -0.5000 -0.0000 -vn 0.5493 0.8356 0.0000 -vn -0.8660 0.5000 0.0000 -vn 0.8660 0.5000 0.0000 -vn 0.1301 0.6195 0.7741 -vn -0.1301 0.4620 0.8773 -vn 0.1301 0.4620 0.8773 -vn -0.0000 0.5645 -0.8254 -vn -0.0000 0.8133 -0.5819 -vn 0.1295 0.0940 -0.9871 -vn -0.1323 -0.0052 -0.9912 -vn 0.1322 -0.0052 -0.9912 -vn -0.1340 -0.2621 -0.9557 -vn 0.1340 -0.2621 -0.9557 -vn -0.1365 -0.6074 -0.7826 -vn 0.1365 -0.6074 -0.7826 -vn -0.1352 -0.8771 -0.4608 -vn 0.1352 -0.8771 -0.4608 -vn -0.0808 -0.9622 -0.2603 -vn 0.0808 -0.9622 -0.2603 -vn 0.7746 -0.6264 -0.0870 -vn 0.9945 -0.0968 -0.0405 -vn 0.8887 -0.4230 -0.1767 -vn -0.0000 -0.5480 -0.8365 -vn -0.0000 0.8992 -0.4375 -vn 0.8698 0.1565 0.4679 -vn 0.9938 0.0274 0.1074 -vn 0.9228 0.0804 0.3768 -vn 0.0986 0.3350 0.9370 -vn -0.1326 0.3486 0.9278 -vn 0.1326 0.3486 0.9278 -vn -0.1335 0.5772 0.8056 -vn 0.1335 0.5772 0.8056 -vn -0.1301 0.6195 0.7741 -vn -0.9228 0.0804 0.3768 -vn -0.8698 0.1565 0.4679 -vn -0.7544 0.1070 0.6477 -vn 0.1301 0.3290 0.9353 -vn -0.1273 0.2812 0.9512 -vn 0.1273 0.2812 0.9512 -vn 0.4948 0.4049 0.7689 -vn 0.4968 0.2880 0.8187 -vn 0.8601 0.2377 0.4514 -vn 0.8626 0.1679 0.4771 -vn 0.9905 0.0642 0.1218 -vn 0.4781 0.2490 0.8423 -vn 0.8441 0.1520 0.5141 -vn 0.9881 0.0437 0.1477 -vn 0.9909 0.0446 0.1269 -vn 0.4931 0.0825 -0.8661 -vn 0.5089 -0.0045 -0.8608 -vn 0.8591 0.0485 -0.5095 -vn 0.8741 -0.0026 -0.4858 -vn 0.9904 0.0131 -0.1377 -vn 0.5163 -0.2265 -0.8259 -vn 0.8799 -0.1257 -0.4583 -vn 0.9926 -0.0006 -0.1217 -vn 0.5261 -0.5214 -0.6718 -vn 0.8869 -0.2832 -0.3649 -vn 0.9933 -0.0306 -0.1117 -vn 0.5029 -0.7822 -0.3678 -vn 0.9941 -0.0667 -0.0860 -vn -0.9945 -0.0968 -0.0405 -vn -0.7747 -0.6264 -0.0870 -vn -0.8887 -0.4230 -0.1767 -vn 0.5105 0.3024 0.8049 -vn 0.3336 0.5327 0.7778 -vn 0.7543 0.1069 0.6477 -vn 0.0001 0.8288 0.5595 -vn -0.0001 0.8288 0.5595 -vn -0.0000 0.8185 0.5745 -vn 0.5145 0.4994 0.6971 -vn 0.8785 0.2783 0.3884 -vn 0.4948 0.5430 0.6785 -vn 0.8601 0.3187 0.3982 -vn 0.9905 0.0860 0.1075 -vn 0.9931 0.0683 0.0953 -vn -0.9905 0.0642 0.1219 -vn -0.8626 0.1679 0.4771 -vn -0.8601 0.2377 0.4514 -vn -0.4968 0.2880 0.8187 -vn -0.4948 0.4049 0.7689 -vn -0.1301 0.3290 0.9353 -vn -0.9881 0.0437 0.1477 -vn -0.9909 0.0446 0.1269 -vn -0.8441 0.1520 0.5141 -vn -0.4781 0.2490 0.8423 -vn -0.9904 0.0131 -0.1377 -vn -0.8741 -0.0026 -0.4858 -vn -0.8591 0.0485 -0.5095 -vn -0.5089 -0.0045 -0.8608 -vn -0.4931 0.0825 -0.8661 -vn -0.1295 0.0940 -0.9871 -vn -0.9926 -0.0006 -0.1217 -vn -0.8799 -0.1257 -0.4583 -vn -0.5163 -0.2265 -0.8259 -vn -0.9933 -0.0306 -0.1117 -vn -0.8869 -0.2832 -0.3649 -vn -0.5261 -0.5214 -0.6718 -vn -0.9941 -0.0667 -0.0860 -vn -0.5029 -0.7822 -0.3678 -vn -0.3318 -0.9223 -0.1983 -vn 0.3318 -0.9223 -0.1983 -vn 0.4610 -0.8818 -0.0993 -vn -0.3336 0.5327 0.7778 -vn -0.5105 0.3024 0.8049 -vn -0.0986 0.3350 0.9370 -vn -0.9938 0.0274 0.1074 -vn -0.8785 0.2782 0.3884 -vn -0.5145 0.4994 0.6971 -vn -0.9905 0.0860 0.1075 -vn -0.9931 0.0682 0.0953 -vn -0.8601 0.3187 0.3982 -vn -0.4948 0.5430 0.6785 -vn 0.7184 0.6547 -0.2351 -vn 0.7258 0.6612 -0.1896 -vn 0.7397 0.6729 0.0012 -vn -0.7258 0.6612 -0.1896 -vn -0.7184 0.6547 -0.2351 -vn -0.7397 0.6729 0.0012 -vn 0.7127 0.3923 -0.5816 -vn 0.7116 0.2849 -0.6423 -vn 0.7115 0.2849 -0.6424 -vn 0.7070 0.5751 -0.4116 -vn 0.7123 0.4004 -0.5764 -vn 0.7070 0.5751 -0.4115 -vn -0.7124 0.4004 -0.5764 -vn -0.7070 0.5751 -0.4116 -vn -0.7127 0.3923 -0.5816 -vn -0.7070 0.5751 -0.4115 -vn -0.5760 -0.6122 -0.5417 -vn -0.5677 -0.6176 -0.5443 -vn -0.5896 -0.6030 -0.5373 -vn -0.7116 0.2849 -0.6423 -vn -0.7115 0.2849 -0.6424 -vn 0.5759 -0.6122 -0.5417 -vn 0.5677 -0.6176 -0.5443 -vn 0.5579 -0.6239 -0.5472 -vn 0.0000 0.4061 -0.9138 -vn 0.9813 -0.1926 -0.0011 -vn 0.7426 -0.0035 0.6698 -vn -0.7427 -0.0034 0.6697 -vn -0.9813 -0.1925 -0.0011 -vn 0.0001 0.8185 0.5745 -vn 0.0003 0.8185 0.5746 -vn -0.4610 -0.8818 -0.0993 -vn -0.5579 -0.6239 -0.5472 -vn 0.5896 -0.6030 -0.5373 -vn 0.0000 0.2108 0.9775 -vn 0.0000 0.4723 0.8814 -vn 0.0000 0.6194 0.7851 -vn 0.0000 0.6889 0.7248 -vn 0.0000 0.8100 0.5864 -vn 0.0000 0.8877 0.4603 -vn 0.0000 0.4372 0.8994 -vn 0.0000 0.3563 0.9344 -vn 0.0000 0.0622 -0.9981 -vn 0.0000 -0.3276 -0.9448 -vn 0.0000 0.3403 0.9403 -vn 0.0000 -0.5438 -0.8392 -vn 0.0000 -0.9411 0.3382 -vn 0.0000 -0.3867 0.9222 -vn 0.0000 -0.4862 0.8739 -vn 0.0000 -0.5780 -0.8160 -vn 0.0000 0.9933 -0.1158 -vn 0.0000 0.9943 -0.1065 -vn 0.0000 0.9998 0.0187 -vn 0.0000 0.5230 0.8523 -vn 0.0000 0.0182 0.9998 -vn 0.0000 0.9338 0.3578 -vn 0.0000 -0.7290 0.6845 -vn 0.0000 -0.9616 0.2745 -vn 0.0000 -0.4386 -0.8987 -vn 0.0000 -0.3274 -0.9449 -vn 0.0000 -0.9962 -0.0866 -vn 0.0000 -0.9120 -0.4103 -vn 0.0000 -0.6722 -0.7404 -vn 0.0000 -0.9995 -0.0317 -vn 0.7080 0.3088 0.6351 -vn 0.7072 0.3698 0.6026 -vn -0.7080 0.3088 0.6351 -vn -0.7072 0.3698 0.6026 -vn 0.7072 0.2520 0.6606 -vn 0.7071 0.2406 0.6649 -vn 0.7072 0.2519 0.6607 -vn -0.7071 0.2406 0.6649 -vn -0.7072 0.2520 0.6606 -vn -0.7072 0.2519 0.6607 -vn 0.7084 0.3334 0.6221 -vn 0.7138 0.1476 0.6846 -vn -0.7084 0.3333 0.6221 -vn -0.7138 0.1476 0.6846 -vn 0.7071 0.0129 0.7070 -vn -0.7071 0.0129 0.7070 -vn -0.0000 0.9524 0.3048 -vn 0.0000 -0.2132 0.9770 -vn 0.0000 -0.6337 0.7736 -vn 0.0000 0.9308 0.3656 -vn 0.0000 0.9982 0.0595 -vn 0.0000 0.6570 0.7539 -vn 0.0000 0.2580 0.9661 -vn 0.0000 0.7484 -0.6633 -vn 0.0000 0.9693 -0.2458 -vn 0.9853 0.1709 0.0000 -vn 0.9664 0.2570 0.0001 -vn 0.0000 -0.9442 -0.3293 -vn 0.0000 -0.9989 -0.0474 -vn 0.0000 0.4264 -0.9045 -vn 0.0000 -0.7977 0.6030 -vn 0.9757 -0.2189 0.0000 -vn 0.9625 -0.2713 0.0001 -vn -0.9751 -0.2217 0.0000 -vn -0.9616 -0.2746 0.0001 -vn -0.9752 -0.2212 0.0001 -vn 0.9664 0.2571 0.0001 -vn -0.9855 0.1695 0.0000 -vn 0.9663 0.2574 0.0000 -vn 0.9679 -0.2515 0.0000 -vn 0.9758 -0.2185 0.0001 -vn 0.9776 0.2106 0.0000 -vn -0.9670 0.2549 0.0001 -vn -0.9670 0.2548 0.0001 -vn -0.9673 -0.2536 0.0000 -vn -0.9669 0.2552 0.0000 -vn -0.9781 0.2081 0.0000 -vn 0.5733 0.2131 0.7912 -vn 0.5789 -0.1967 0.7913 -vn 0.5756 0.1979 0.7934 -vn 0.5053 0.4828 0.7152 -vn 0.5758 -0.2183 0.7879 -vn 0.5109 -0.4883 0.7075 -vn -0.5122 -0.4895 0.7058 -vn -0.5766 -0.2205 0.7867 -vn -0.5804 -0.1975 0.7900 -vn -0.5771 0.1993 0.7920 -vn -0.5746 0.2114 0.7907 -vn -0.5052 0.4828 0.7153 -vn 0.0000 -0.6762 -0.7367 +vt 0.174947 0.134818 +vt 0.016266 0.844874 +vt 0.078614 0.844874 +vt 0.078614 0.914007 +vt 0.016266 0.766911 +vt 0.069017 0.812121 +vt 0.102885 0.812121 +vt 0.016266 0.914007 +vt 0.150989 0.134818 +vt 0.030823 0.781576 +vt 0.000112 0.781576 s 1 -f 33/71/23 34/72/23 35/73/23 -f 36/74/24 37/75/25 38/76/24 -f 39/77/25 40/78/26 37/79/25 -f 41/80/27 39/81/27 42/82/27 -f 42/83/28 38/76/24 43/84/28 -f 44/85/29 45/86/29 43/87/29 -f 37/88/29 44/85/29 43/87/29 -f 45/89/23 46/90/23 47/91/23 -f 42/82/27 34/92/27 41/80/27 -f 48/93/26 44/94/30 40/78/26 -f 44/95/26 41/96/26 49/97/26 -f 50/98/31 51/99/31 33/71/31 -f 47/91/32 49/100/32 50/98/32 -f 42/101/24 43/102/24 50/103/24 -f 33/71/23 51/99/23 34/72/23 -f 36/74/24 39/104/25 37/75/25 -f 39/77/25 48/93/26 40/78/26 -f 48/105/27 39/81/27 41/80/27 -f 39/81/27 36/106/27 42/82/27 -f 42/83/28 36/74/24 38/76/24 -f 44/85/29 52/107/29 45/86/29 -f 43/87/29 38/108/29 37/88/29 -f 37/88/29 40/109/29 44/85/29 -f 45/89/23 52/110/23 46/90/23 -f 42/82/27 35/111/27 34/92/27 -f 48/93/26 41/112/30 44/94/30 -f 41/96/26 34/113/26 51/114/26 -f 49/97/26 46/115/26 44/95/26 -f 46/115/26 52/116/26 44/95/26 -f 41/96/26 51/114/26 49/97/26 -f 50/98/31 49/100/31 51/99/31 -f 47/91/32 46/90/32 49/100/32 -f 43/102/24 45/117/24 47/118/24 -f 50/103/24 33/119/24 42/101/24 -f 33/119/24 35/120/24 42/101/24 -f 43/102/24 47/118/24 50/103/24 -f 53/121/27 54/122/27 55/123/27 -f 56/124/29 57/125/29 58/126/29 -f 54/127/33 59/128/34 60/129/34 -f 53/130/35 61/131/33 54/127/33 -f 62/132/36 63/133/35 53/130/35 -f 64/134/37 56/135/36 62/132/36 -f 65/136/38 57/137/37 64/134/37 -f 66/138/39 67/139/39 65/140/39 -f 68/141/40 69/142/41 66/138/41 -f 70/143/42 71/144/40 68/141/40 -f 72/145/43 58/146/42 70/143/42 -f 55/147/44 73/148/43 72/145/43 -f 74/149/45 75/150/45 55/147/45 -f 76/151/46 77/152/46 74/153/46 -f 60/129/47 78/154/47 76/151/47 -f 60/155/27 76/156/27 54/122/27 -f 76/156/27 74/157/27 55/123/27 -f 55/123/27 72/158/27 53/121/27 -f 72/158/27 70/159/27 53/121/27 -f 53/121/27 70/159/27 62/160/27 -f 76/156/27 55/123/27 54/122/27 -f 70/159/27 68/161/27 64/162/27 -f 62/160/27 70/159/27 64/162/27 -f 68/161/27 66/163/27 64/162/27 -f 66/163/27 65/164/27 64/162/27 -f 77/165/29 78/166/29 75/167/29 -f 78/166/29 59/168/29 61/169/29 -f 78/166/29 61/169/29 75/167/29 -f 58/126/29 73/170/29 63/171/29 -f 73/170/29 75/167/29 63/171/29 -f 75/167/29 61/169/29 63/171/29 -f 71/172/29 58/126/29 57/125/29 -f 67/173/29 69/174/29 57/125/29 -f 69/174/29 71/172/29 57/125/29 -f 58/126/29 63/171/29 56/124/29 -f 54/127/33 61/131/33 59/128/34 -f 53/130/35 63/133/35 61/131/33 -f 62/132/36 56/135/36 63/133/35 -f 64/134/37 57/137/37 56/135/36 -f 65/136/38 67/175/38 57/137/37 -f 66/138/39 69/142/48 67/139/39 -f 68/141/40 71/144/40 69/142/41 -f 70/143/42 58/146/42 71/144/40 -f 72/145/43 73/148/43 58/146/42 -f 55/147/44 75/150/44 73/148/43 -f 74/149/45 77/176/45 75/150/45 -f 76/151/46 78/154/46 77/152/46 -f 60/129/47 59/128/47 78/154/47 -f 79/177/27 80/178/27 81/179/27 -f 82/180/27 83/181/27 84/182/27 -f 85/183/29 86/184/29 87/185/29 -f 88/186/29 89/187/29 90/188/29 -f 91/189/49 87/190/50 92/191/50 -f 79/192/51 93/193/52 80/194/53 -f 92/195/54 86/196/54 79/192/54 -f 81/197/55 94/198/49 91/189/49 -f 83/199/56 85/200/57 81/197/55 -f 82/201/58 95/202/59 90/203/58 -f 96/204/60 95/202/59 97/205/59 -f 96/204/60 88/206/61 98/207/60 -f 83/199/56 80/208/53 84/209/62 -f 89/210/63 93/211/52 85/200/57 -f 89/212/63 82/201/58 90/203/58 -f 84/209/62 93/211/52 88/213/61 -f 81/179/27 91/214/27 92/215/27 -f 92/215/27 79/177/27 81/179/27 -f 84/182/27 96/216/27 82/180/27 -f 96/216/27 97/217/27 82/180/27 -f 87/185/29 94/218/29 85/183/29 -f 85/183/29 93/219/29 86/184/29 -f 95/220/29 98/221/29 90/188/29 -f 98/221/29 88/186/29 90/188/29 -f 91/189/49 94/198/49 87/190/50 -f 79/192/51 86/196/51 93/193/52 -f 92/195/54 87/222/54 86/196/54 -f 81/197/55 85/200/57 94/198/49 -f 83/199/56 89/210/63 85/200/57 -f 82/201/58 97/205/59 95/202/59 -f 96/204/60 98/207/60 95/202/59 -f 96/204/60 84/223/62 88/206/61 -f 83/199/56 81/197/55 80/208/53 -f 89/210/63 88/213/61 93/211/52 -f 89/212/63 83/224/56 82/201/58 -f 84/209/62 80/208/53 93/211/52 -f 99/225/64 100/226/65 101/227/66 -f 102/228/67 103/229/68 100/230/68 -f 103/231/69 104/232/70 105/233/71 -f 104/234/26 101/235/26 105/236/26 -f 106/237/26 107/238/26 108/239/26 -f 102/240/23 104/232/23 109/241/23 -f 105/236/26 106/237/26 110/242/26 -f 111/243/72 105/233/71 110/244/73 -f 100/230/68 111/245/74 112/246/74 -f 101/227/66 112/247/75 106/248/76 -f 113/249/77 108/250/78 114/251/79 -f 111/245/74 115/252/80 113/253/74 -f 114/254/79 107/255/81 116/256/82 -f 116/256/82 106/248/76 112/247/75 -f 113/249/77 117/257/83 118/258/84 -f 115/259/85 110/244/73 117/257/83 -f 99/225/64 102/240/64 100/226/65 -f 102/228/67 109/260/67 103/229/68 -f 103/231/69 109/241/70 104/232/70 -f 104/234/26 99/261/26 101/235/26 -f 108/239/26 118/262/26 110/242/26 -f 118/262/26 117/263/26 110/242/26 -f 110/242/26 106/237/26 108/239/26 -f 102/240/23 99/225/23 104/232/23 -f 105/236/26 101/235/26 106/237/26 -f 111/243/72 103/231/69 105/233/71 -f 100/230/68 103/229/68 111/245/74 -f 101/227/66 100/226/65 112/247/75 -f 113/249/77 118/258/84 108/250/78 -f 113/253/74 114/264/74 112/246/74 -f 114/264/74 116/265/80 112/246/74 -f 112/246/74 111/245/74 113/253/74 -f 114/254/79 108/266/78 107/255/81 -f 116/256/82 107/255/81 106/248/76 -f 113/249/77 115/259/85 117/257/83 -f 115/259/85 111/243/72 110/244/73 -f 119/267/24 120/268/24 121/269/24 -f 122/270/25 123/271/86 124/272/25 -f 125/273/86 126/274/87 123/275/86 -f 127/276/88 128/277/89 129/278/88 -f 130/279/24 131/280/24 127/281/24 -f 132/282/89 133/283/90 128/277/89 -f 133/283/90 122/270/25 124/272/25 -f 134/284/87 135/285/91 126/274/87 -f 136/286/27 137/287/27 135/285/27 -f 129/288/26 128/289/26 133/290/26 -f 138/291/23 139/292/23 140/293/23 -f 129/278/29 140/293/29 127/276/29 -f 135/294/26 138/295/26 129/288/26 -f 127/281/24 139/296/24 136/297/24 -f 121/298/90 130/299/25 141/300/90 -f 142/301/92 141/300/90 143/302/92 -f 144/303/24 122/304/24 145/305/24 -f 144/306/23 142/301/92 143/302/92 -f 146/307/93 144/308/23 147/309/93 -f 119/310/86 147/309/93 131/311/86 -f 130/299/25 119/310/86 131/311/86 -f 121/269/24 142/312/24 119/267/24 -f 142/312/24 148/313/24 119/267/24 -f 148/313/24 146/314/24 119/267/24 -f 122/270/25 125/315/86 123/271/86 -f 125/273/86 134/284/87 126/274/87 -f 127/276/88 132/282/89 128/277/89 -f 134/316/24 125/317/24 143/318/24 -f 134/316/24 143/318/24 141/319/24 -f 127/281/24 136/297/24 130/279/24 -f 136/297/24 134/316/24 141/319/24 -f 130/279/24 136/297/24 141/319/24 -f 131/280/24 132/320/24 127/281/24 -f 132/282/89 145/321/90 133/283/90 -f 133/283/90 145/321/90 122/270/25 -f 134/284/87 136/286/91 135/285/91 -f 136/286/27 139/292/27 137/287/27 -f 133/290/26 124/322/26 129/288/26 -f 124/322/26 123/323/26 135/294/26 -f 123/323/26 126/324/26 135/294/26 -f 135/294/26 129/288/26 124/322/26 -f 138/291/23 137/287/23 139/292/23 -f 129/278/29 138/291/29 140/293/29 -f 135/294/26 137/325/26 138/295/26 -f 127/281/24 140/326/24 139/296/24 -f 121/298/90 120/327/25 130/299/25 -f 142/301/92 121/298/90 141/300/90 -f 145/305/24 132/320/24 147/328/24 -f 132/320/24 131/280/24 147/328/24 -f 143/318/24 125/317/24 144/303/24 -f 125/317/24 122/304/24 144/303/24 -f 145/305/24 147/328/24 144/303/24 -f 144/306/23 148/329/23 142/301/92 -f 146/307/93 148/330/23 144/308/23 -f 119/310/86 146/307/93 147/309/93 -f 130/299/25 120/327/25 119/310/86 -f 149/331/94 150/332/95 151/333/96 -f 152/334/97 153/335/98 154/336/98 -f 155/337/25 156/338/25 157/339/25 -f 158/340/99 159/341/100 160/342/101 -f 160/342/101 161/343/102 162/344/103 -f 162/344/103 163/345/104 164/346/105 -f 164/346/105 165/347/106 166/348/107 -f 166/348/107 167/349/108 168/350/109 -f 169/351/110 170/352/111 171/353/112 -f 172/354/113 173/355/113 174/356/113 -f 154/336/98 175/357/114 176/358/114 -f 177/359/115 178/360/116 179/361/117 -f 180/362/118 181/363/119 182/364/120 -f 182/364/120 183/365/121 184/366/122 -f 184/366/122 185/367/123 149/331/94 -f 186/368/124 187/369/125 188/370/126 -f 189/371/127 190/372/128 191/373/129 -f 189/371/127 192/374/130 151/333/96 -f 193/375/131 194/376/132 192/374/130 -f 195/377/133 196/378/134 194/376/132 -f 189/371/127 197/379/135 193/375/131 -f 193/375/131 198/380/136 195/377/133 -f 195/377/133 199/381/137 200/382/138 -f 160/342/101 201/383/139 158/340/99 -f 202/384/140 203/385/141 201/383/139 -f 204/386/142 205/387/143 203/385/141 -f 162/344/103 202/384/140 160/342/101 -f 206/388/144 204/386/142 202/384/140 -f 207/389/145 208/390/146 204/386/142 -f 164/346/105 206/388/144 162/344/103 -f 209/391/147 207/389/145 206/388/144 -f 210/392/148 211/393/149 207/389/145 -f 164/346/105 212/394/150 209/391/147 -f 209/391/147 171/353/112 210/392/148 -f 210/392/148 170/352/111 213/395/151 -f 168/350/109 212/394/150 166/348/107 -f 214/396/152 215/397/153 216/398/154 -f 205/399/143 208/400/146 200/401/138 -f 180/362/118 217/402/155 218/403/156 -f 218/403/156 177/359/115 219/404/157 -f 188/370/158 219/404/159 176/405/160 -f 184/366/122 217/402/155 182/364/120 -f 220/406/161 177/359/115 217/402/155 -f 221/407/162 178/360/116 177/359/115 -f 184/366/122 222/408/163 220/406/161 -f 220/406/161 223/409/164 221/407/162 -f 221/407/162 224/410/165 225/411/166 -f 149/331/94 192/374/130 222/408/163 -f 222/408/163 194/376/132 223/409/164 -f 223/409/164 196/378/134 224/410/165 -f 226/412/167 227/413/168 228/414/169 -f 228/414/169 229/415/170 230/416/171 -f 230/416/171 231/417/172 150/332/95 -f 232/418/173 227/413/168 233/419/174 -f 234/420/175 229/415/170 227/413/168 -f 235/421/176 231/417/172 229/415/170 -f 236/422/177 237/423/178 155/424/179 -f 155/424/179 238/425/180 156/426/181 -f 156/426/181 159/341/100 157/427/182 -f 239/428/183 240/429/184 237/423/178 -f 237/423/178 241/430/185 238/425/180 -f 238/425/180 161/343/102 159/341/100 -f 242/431/186 243/432/187 240/429/184 -f 240/429/184 244/433/188 241/430/185 -f 241/430/185 163/345/104 161/343/102 -f 214/396/152 243/432/187 245/434/189 -f 216/398/154 244/433/188 243/432/187 -f 246/435/190 163/345/104 244/433/188 -f 215/397/153 172/436/191 246/435/190 -f 246/435/190 167/349/108 165/347/106 -f 247/437/192 248/438/193 169/351/110 -f 187/369/125 249/439/194 188/370/126 -f 250/440/195 251/441/196 249/439/194 -f 252/442/197 253/443/198 187/369/125 -f 187/369/125 254/444/199 250/440/195 -f 250/440/195 183/365/121 181/363/119 -f 255/445/200 253/443/198 256/446/201 -f 257/447/202 254/444/199 253/443/198 -f 258/448/203 183/365/121 254/444/199 -f 226/412/167 257/447/202 255/445/200 -f 228/414/169 258/448/203 257/447/202 -f 230/416/171 185/367/123 258/448/203 -f 256/449/201 214/450/152 245/451/189 -f 188/370/158 218/403/156 219/404/159 -f 249/439/194 180/362/118 218/403/156 -f 151/333/96 231/417/172 189/371/127 -f 179/452/204 176/358/205 259/453/206 -f 175/357/207 186/454/208 260/455/209 -f 152/334/210 261/456/211 262/457/212 -f 154/336/213 263/458/214 152/334/210 -f 154/336/213 179/452/204 264/459/215 -f 265/460/216 153/335/217 266/461/218 -f 186/454/208 153/335/217 267/462/219 -f 174/356/220 215/463/221 268/464/222 -f 268/464/223 266/461/218 174/356/224 -f 262/457/225 169/465/226 248/466/227 -f 262/457/228 266/461/97 152/334/97 -f 149/331/94 185/367/123 150/332/95 -f 152/334/97 266/461/97 153/335/98 -f 157/339/25 158/467/25 205/468/25 -f 158/467/25 201/469/25 203/470/25 -f 205/468/25 158/467/25 203/470/25 -f 205/468/25 199/471/25 232/472/25 -f 199/471/25 198/473/25 191/474/25 -f 232/472/25 199/471/25 191/474/25 -f 198/473/25 197/475/25 191/474/25 -f 191/474/25 190/476/25 232/472/25 -f 190/476/25 235/477/25 234/478/25 -f 232/472/25 190/476/25 234/478/25 -f 232/472/25 236/479/25 205/468/25 -f 236/479/25 155/337/25 157/339/25 -f 205/468/25 236/479/25 157/339/25 -f 158/340/99 157/427/182 159/341/100 -f 160/342/101 159/341/100 161/343/102 -f 162/344/103 161/343/102 163/345/104 -f 164/346/105 163/345/104 165/347/106 -f 166/348/107 165/347/106 167/349/108 -f 169/351/110 261/480/229 170/352/111 -f 174/356/113 262/457/113 168/481/113 -f 262/457/113 248/466/113 247/482/113 -f 168/481/113 262/457/113 247/482/113 -f 168/481/113 167/483/113 174/356/113 -f 167/483/113 172/354/113 174/356/113 -f 154/336/98 153/335/98 175/357/114 -f 259/484/230 219/404/157 179/361/117 -f 219/404/157 177/359/115 179/361/117 -f 180/362/118 251/441/196 181/363/119 -f 182/364/120 181/363/119 183/365/121 -f 184/366/122 183/365/121 185/367/123 -f 188/370/126 260/485/231 186/368/124 -f 186/368/124 252/442/197 187/369/125 -f 189/371/127 231/417/172 190/372/128 -f 189/371/127 193/375/131 192/374/130 -f 193/375/131 195/377/133 194/376/132 -f 195/377/133 200/382/138 196/378/134 -f 189/371/127 191/373/129 197/379/135 -f 193/375/131 197/379/135 198/380/136 -f 195/377/133 198/380/136 199/381/137 -f 160/342/101 202/384/140 201/383/139 -f 202/384/140 204/386/142 203/385/141 -f 204/386/142 208/390/146 205/387/143 -f 162/344/103 206/388/144 202/384/140 -f 206/388/144 207/389/145 204/386/142 -f 207/389/145 211/393/149 208/390/146 -f 164/346/105 209/391/147 206/388/144 -f 209/391/147 210/392/148 207/389/145 -f 210/392/148 213/395/151 211/393/149 -f 164/346/105 166/348/107 212/394/150 -f 209/391/147 212/394/150 171/353/112 -f 210/392/148 171/353/112 170/352/111 -f 168/350/109 247/437/192 212/394/150 -f 214/396/152 268/486/232 215/397/153 -f 264/487/27 179/488/117 178/489/116 -f 225/490/166 224/491/165 213/492/151 -f 224/491/165 196/493/134 213/492/151 -f 213/492/151 196/493/134 211/494/149 -f 264/487/27 178/489/116 263/495/27 -f 178/489/116 225/490/166 170/496/111 -f 261/497/229 263/495/27 170/496/111 -f 170/496/111 263/495/27 178/489/116 -f 196/493/134 200/401/138 211/494/149 -f 213/492/151 170/496/111 225/490/166 -f 200/401/138 199/498/137 205/399/143 -f 211/494/149 200/401/138 208/400/146 -f 180/362/118 182/364/120 217/402/155 -f 218/403/156 217/402/155 177/359/115 -f 219/404/159 259/484/233 176/405/160 -f 176/405/160 175/499/160 188/370/158 -f 175/499/160 260/485/234 188/370/158 -f 184/366/122 220/406/161 217/402/155 -f 220/406/161 221/407/162 177/359/115 -f 221/407/162 225/411/166 178/360/116 -f 184/366/122 149/331/94 222/408/163 -f 220/406/161 222/408/163 223/409/164 -f 221/407/162 223/409/164 224/410/165 -f 149/331/94 151/333/96 192/374/130 -f 222/408/163 192/374/130 194/376/132 -f 223/409/164 194/376/132 196/378/134 -f 226/412/167 233/419/174 227/413/168 -f 228/414/169 227/413/168 229/415/170 -f 230/416/171 229/415/170 231/417/172 -f 232/418/173 234/420/175 227/413/168 -f 234/420/175 235/421/176 229/415/170 -f 235/421/176 190/372/128 231/417/172 -f 236/422/177 239/428/183 237/423/178 -f 155/424/179 237/423/178 238/425/180 -f 156/426/181 238/425/180 159/341/100 -f 239/428/183 242/431/186 240/429/184 -f 237/423/178 240/429/184 241/430/185 -f 238/425/180 241/430/185 161/343/102 -f 242/431/186 245/434/189 243/432/187 -f 240/429/184 243/432/187 244/433/188 -f 241/430/185 244/433/188 163/345/104 -f 214/396/152 216/398/154 243/432/187 -f 216/398/154 246/435/190 244/433/188 -f 246/435/190 165/347/106 163/345/104 -f 246/435/190 216/398/154 215/397/153 -f 215/397/153 173/500/235 172/436/191 -f 246/435/190 172/436/191 167/349/108 -f 171/353/112 212/394/150 169/351/110 -f 212/394/150 247/437/192 169/351/110 -f 187/369/125 250/440/195 249/439/194 -f 250/440/195 181/363/119 251/441/196 -f 252/442/197 256/446/201 253/443/198 -f 187/369/125 253/443/198 254/444/199 -f 250/440/195 254/444/199 183/365/121 -f 255/445/200 257/447/202 253/443/198 -f 257/447/202 258/448/203 254/444/199 -f 258/448/203 185/367/123 183/365/121 -f 226/412/167 228/414/169 257/447/202 -f 228/414/169 230/416/171 258/448/203 -f 230/416/171 150/332/95 185/367/123 -f 252/501/197 186/502/124 267/503/29 -f 267/503/29 265/504/29 252/501/197 -f 265/504/29 268/505/232 214/450/152 -f 265/504/29 214/450/152 252/501/197 -f 256/449/201 252/501/197 214/450/152 -f 226/506/167 255/507/200 245/451/189 -f 255/507/200 256/449/201 245/451/189 -f 232/508/173 233/509/174 236/510/177 -f 233/509/174 226/506/167 242/511/186 -f 239/512/183 236/510/177 233/509/174 -f 242/511/186 239/512/183 233/509/174 -f 245/451/189 242/511/186 226/506/167 -f 188/370/158 249/439/194 218/403/156 -f 249/439/194 251/441/196 180/362/118 -f 151/333/96 150/332/95 231/417/172 -f 152/334/210 263/458/214 261/456/211 -f 154/336/213 264/459/215 263/458/214 -f 154/336/213 176/358/205 179/452/204 -f 265/460/216 267/462/219 153/335/217 -f 186/454/208 175/357/207 153/335/217 -f 174/356/220 173/355/236 215/463/221 -f 268/464/223 265/460/216 266/461/218 -f 262/457/225 261/456/237 169/465/226 -f 262/457/228 174/356/228 266/461/97 -f 269/513/238 270/514/239 271/515/238 -f 272/516/240 273/517/241 274/518/241 -f 275/519/242 276/520/243 277/521/243 -f 278/522/244 279/523/245 280/524/245 -f 281/525/246 282/526/247 283/527/246 -f 280/524/245 284/528/248 285/529/248 -f 286/530/249 287/531/249 288/532/249 -f 288/532/250 289/533/250 290/534/250 -f 290/534/251 291/535/252 292/536/252 -f 293/537/25 294/538/25 295/539/25 -f 295/539/24 296/540/24 297/541/24 -f 297/542/253 298/543/253 299/544/253 -f 300/545/24 299/544/24 301/546/24 -f 302/547/23 303/548/254 304/549/254 -f 304/549/254 305/550/255 306/551/255 -f 306/551/255 307/552/256 272/516/256 -f 270/514/239 308/553/257 309/554/257 -f 273/517/241 275/519/242 274/518/241 -f 310/555/258 269/513/238 271/515/238 -f 276/520/243 311/556/259 277/521/243 -f 308/553/257 278/522/244 309/554/257 -f 291/535/252 312/557/260 292/536/252 -f 313/558/260 314/559/261 312/557/260 -f 315/560/262 316/561/263 293/537/263 -f 317/562/264 318/563/265 319/564/264 -f 320/565/265 321/566/266 318/563/265 -f 322/567/266 315/560/262 321/566/266 -f 323/568/267 324/569/267 325/570/267 -f 326/571/268 309/554/269 278/522/268 -f 327/572/270 308/553/271 328/573/271 -f 280/524/272 325/574/273 329/575/274 -f 323/576/275 279/523/276 330/577/277 -f 331/578/278 271/515/279 270/514/278 -f 332/579/280 269/513/281 333/580/281 -f 310/555/282 334/581/279 335/582/282 -f 270/514/278 336/583/269 331/578/278 -f 333/580/281 337/584/283 338/585/283 -f 328/573/271 339/586/280 332/579/280 -f 280/524/272 326/571/268 278/522/268 -f 327/572/270 279/523/276 340/587/270 -f 341/588/259 338/589/284 337/590/284 -f 342/591/261 319/564/264 314/559/261 -f 343/592/29 344/593/29 345/594/29 -f 346/595/285 347/596/286 348/597/286 -f 349/598/27 350/599/27 274/600/27 -f 351/601/287 352/602/288 353/603/287 -f 354/604/289 351/601/287 353/603/287 -f 355/605/290 356/606/289 354/604/289 -f 357/607/291 358/608/292 359/609/291 -f 358/608/292 352/602/288 360/610/288 -f 361/611/293 362/612/294 302/613/27 -f 356/614/29 363/615/29 322/616/29 -f 344/617/295 364/618/296 365/619/295 -f 366/620/297 359/609/291 367/621/297 -f 283/527/246 367/621/297 281/525/246 -f 363/622/290 368/623/285 346/624/285 -f 347/596/286 369/625/298 348/597/286 -f 370/626/26 371/627/26 372/628/26 -f 373/629/23 374/630/23 375/631/23 -f 376/632/24 350/633/24 377/634/24 -f 378/635/25 361/636/25 379/637/25 -f 321/638/27 355/639/27 354/640/27 -f 371/641/299 297/642/27 299/643/300 -f 296/644/29 370/645/301 298/646/302 -f 370/645/301 380/647/303 298/646/302 -f 361/611/293 381/648/304 362/612/294 -f 378/649/305 303/650/29 382/651/29 -f 383/652/306 384/653/307 381/648/304 -f 385/654/307 386/655/307 384/653/307 -f 387/656/308 371/641/299 299/643/300 -f 388/657/309 387/656/308 389/658/309 -f 300/659/309 388/657/309 389/658/309 -f 390/660/307 300/659/309 386/655/307 -f 391/661/310 378/649/305 392/662/311 -f 393/663/312 394/664/313 391/661/310 -f 395/665/312 396/666/312 393/663/312 -f 390/667/26 378/668/26 397/669/26 -f 398/670/314 395/665/312 301/671/314 -f 399/672/314 301/671/314 400/673/314 -f 380/647/303 399/672/314 400/673/314 -f 401/674/24 402/675/24 403/676/24 -f 402/675/24 377/634/24 403/676/24 -f 349/598/315 403/677/316 377/678/317 -f 350/599/318 349/598/315 377/678/317 -f 403/677/316 404/679/319 401/680/320 -f 343/592/321 405/681/322 402/682/323 -f 376/683/324 406/684/325 407/685/326 -f 402/682/323 406/684/325 376/683/324 -f 408/686/327 409/687/247 345/688/327 -f 345/688/327 365/619/295 408/686/327 -f 269/513/238 339/586/239 270/514/239 -f 272/516/240 307/552/240 273/517/241 -f 275/519/242 410/689/242 276/520/243 -f 278/522/244 340/587/244 279/523/245 -f 281/525/246 409/687/247 282/526/247 -f 280/524/245 279/523/245 284/528/248 -f 286/530/249 324/569/249 287/531/249 -f 288/532/250 287/531/250 289/533/250 -f 290/534/251 289/533/251 291/535/252 -f 293/537/25 316/561/25 294/538/25 -f 295/539/24 294/538/24 296/540/24 -f 297/542/253 296/690/253 298/543/253 -f 382/691/24 302/692/24 392/693/24 -f 302/692/24 362/694/24 392/693/24 -f 362/694/24 381/695/24 384/696/24 -f 362/694/24 384/696/24 386/697/24 -f 393/698/24 391/699/24 392/693/24 -f 395/700/24 393/698/24 392/693/24 -f 392/693/24 362/694/24 386/697/24 -f 300/545/24 389/701/24 299/544/24 -f 389/701/24 387/702/24 299/544/24 -f 392/693/24 386/697/24 395/700/24 -f 386/697/24 300/545/24 395/700/24 -f 301/546/24 395/700/24 300/545/24 -f 380/703/24 400/704/24 298/543/24 -f 400/704/24 301/546/24 298/543/24 -f 299/544/24 298/543/24 301/546/24 -f 302/547/23 382/705/23 303/548/254 -f 304/549/254 303/548/254 305/550/255 -f 306/551/255 305/550/255 307/552/256 -f 270/514/239 339/586/239 308/553/257 -f 273/517/241 410/689/242 275/519/242 -f 310/555/258 337/584/258 269/513/238 -f 276/520/243 341/588/259 311/556/259 -f 308/553/257 340/587/244 278/522/244 -f 291/535/252 313/558/260 312/557/260 -f 313/558/260 342/591/261 314/559/261 -f 315/560/262 411/706/262 316/561/263 -f 317/562/264 320/565/265 318/563/265 -f 320/565/265 322/567/266 321/566/266 -f 322/567/266 411/706/262 315/560/262 -f 324/569/267 286/530/267 325/570/267 -f 325/570/267 285/707/267 284/708/267 -f 284/708/267 323/568/267 325/570/267 -f 326/571/268 336/583/269 309/554/269 -f 327/572/270 340/587/270 308/553/271 -f 280/524/272 285/529/273 325/574/273 -f 323/576/275 284/528/275 279/523/276 -f 331/578/278 334/581/279 271/515/279 -f 332/579/280 339/586/280 269/513/281 -f 310/555/282 271/515/279 334/581/279 -f 270/514/278 309/554/269 336/583/269 -f 333/580/281 269/513/281 337/584/283 -f 328/573/271 308/553/271 339/586/280 -f 280/524/272 329/575/274 326/571/268 -f 327/572/270 330/577/277 279/523/276 -f 337/590/284 310/709/284 341/588/259 -f 310/709/284 335/710/284 311/556/259 -f 341/588/259 310/709/284 311/556/259 -f 342/591/261 317/562/264 319/564/264 -f 287/711/29 324/712/29 327/713/29 -f 324/712/29 323/714/29 330/715/29 -f 327/713/29 324/712/29 330/715/29 -f 327/713/29 328/716/29 287/711/29 -f 328/716/29 332/717/29 287/711/29 -f 333/718/29 338/719/29 341/720/29 -f 332/717/29 333/718/29 287/711/29 -f 333/718/29 341/720/29 287/711/29 -f 341/720/29 276/721/29 287/711/29 -f 313/722/29 291/723/29 367/724/29 -f 291/723/29 289/725/29 367/724/29 -f 289/725/29 287/711/29 409/726/29 -f 405/681/29 410/727/29 406/684/29 -f 276/721/29 410/727/29 405/681/29 -f 287/711/29 276/721/29 405/681/29 -f 410/727/29 273/728/29 406/684/29 -f 342/729/29 313/722/29 359/730/29 -f 307/731/29 305/732/29 407/685/29 -f 305/732/29 303/650/29 412/733/29 -f 407/685/29 305/732/29 412/733/29 -f 359/730/29 358/734/29 342/729/29 -f 367/724/29 359/730/29 313/722/29 -f 273/728/29 307/731/29 407/685/29 -f 273/728/29 407/685/29 406/684/29 -f 281/735/29 367/724/29 289/725/29 -f 287/711/29 405/681/29 345/594/29 -f 409/726/29 281/735/29 289/725/29 -f 345/594/29 409/726/29 287/711/29 -f 405/681/29 343/592/29 345/594/29 -f 343/592/29 375/736/29 369/737/29 -f 343/592/29 369/737/29 344/593/29 -f 346/595/285 368/738/285 347/596/286 -f 325/739/27 286/740/27 329/741/27 -f 286/740/27 288/742/27 326/743/27 -f 329/741/27 286/740/27 326/743/27 -f 290/744/27 292/745/27 366/746/27 -f 292/745/27 312/747/27 366/746/27 -f 312/747/27 314/748/27 357/749/27 -f 366/746/27 312/747/27 357/749/27 -f 336/750/27 326/743/27 288/742/27 -f 331/751/27 336/750/27 288/742/27 -f 331/751/27 288/742/27 334/752/27 -f 288/742/27 290/744/27 282/753/27 -f 334/752/27 288/742/27 311/754/27 -f 311/754/27 335/755/27 334/752/27 -f 311/754/27 288/742/27 277/756/27 -f 314/748/27 413/757/27 357/749/27 -f 277/756/27 288/742/27 404/679/27 -f 290/744/27 366/746/27 283/758/27 -f 408/759/27 288/742/27 282/753/27 -f 275/760/27 277/756/27 404/679/27 -f 288/742/27 408/759/27 404/679/27 -f 290/744/27 283/758/27 282/753/27 -f 274/600/27 275/760/27 349/598/27 -f 304/761/27 306/762/27 379/763/27 -f 306/762/27 272/764/27 350/599/27 -f 350/599/27 379/763/27 306/762/27 -f 365/765/27 364/766/27 401/680/27 -f 364/766/27 414/767/27 401/680/27 -f 275/760/27 404/679/27 349/598/27 -f 408/759/27 365/765/27 401/680/27 -f 404/679/27 408/759/27 401/680/27 -f 350/599/27 272/764/27 274/600/27 -f 351/601/287 360/610/288 352/602/288 -f 354/604/289 356/606/289 351/601/287 -f 355/605/290 363/622/290 356/606/289 -f 357/607/291 413/768/292 358/608/292 -f 358/608/292 413/768/292 352/602/288 -f 302/613/27 304/761/27 361/611/293 -f 304/761/27 379/763/27 361/611/293 -f 317/769/29 342/729/29 358/734/29 -f 317/769/29 358/734/29 360/770/29 -f 322/616/29 320/771/29 356/614/29 -f 320/771/29 317/769/29 351/772/29 -f 316/773/29 411/774/29 346/775/29 -f 411/774/29 322/616/29 363/615/29 -f 296/644/29 294/776/29 374/777/29 -f 294/776/29 316/773/29 374/777/29 -f 374/777/29 415/778/29 296/644/29 -f 369/737/29 375/736/29 348/779/29 -f 375/736/29 374/777/29 316/773/29 -f 348/779/29 375/736/29 316/773/29 -f 317/769/29 360/770/29 351/772/29 -f 320/771/29 351/772/29 356/614/29 -f 411/774/29 363/615/29 346/775/29 -f 346/775/29 348/779/29 316/773/29 -f 344/617/295 369/625/296 364/618/296 -f 366/620/297 357/607/291 359/609/291 -f 283/527/246 366/620/297 367/621/297 -f 363/622/290 355/605/290 368/623/285 -f 347/596/286 364/618/298 369/625/298 -f 415/780/26 374/781/26 416/782/26 -f 374/781/26 373/783/26 416/782/26 -f 399/784/26 417/785/26 370/626/26 -f 370/626/26 415/780/26 371/627/26 -f 415/780/26 416/782/26 371/627/26 -f 371/627/26 418/786/26 388/787/26 -f 398/788/26 399/784/26 370/626/26 -f 388/787/26 372/628/26 371/627/26 -f 372/628/26 398/788/26 370/626/26 -f 375/631/23 343/789/23 401/790/23 -f 401/790/23 414/791/23 375/631/23 -f 414/791/23 373/629/23 375/631/23 -f 376/632/24 407/792/24 350/633/24 -f 379/637/25 350/793/25 407/794/25 -f 407/794/25 412/795/25 379/637/25 -f 412/795/25 378/635/25 379/637/25 -f 295/796/27 297/642/27 373/797/27 -f 297/642/27 416/798/27 373/797/27 -f 373/797/27 414/767/27 293/799/27 -f 414/767/27 364/766/27 347/800/27 -f 321/638/27 315/801/27 355/639/27 -f 315/801/27 293/799/27 368/802/27 -f 355/639/27 315/801/27 368/802/27 -f 293/799/27 295/796/27 373/797/27 -f 414/767/27 347/800/27 293/799/27 -f 347/800/27 368/802/27 293/799/27 -f 319/803/27 318/804/27 353/805/27 -f 318/804/27 321/638/27 354/640/27 -f 353/805/27 318/804/27 354/640/27 -f 413/757/27 314/748/27 319/803/27 -f 352/806/27 413/757/27 319/803/27 -f 353/805/27 352/806/27 319/803/27 -f 371/641/299 416/798/27 297/642/27 -f 296/644/29 415/778/29 370/645/301 -f 370/645/301 417/807/301 380/647/303 -f 361/611/293 383/652/306 381/648/304 -f 382/651/29 392/662/311 378/649/305 -f 378/649/305 412/733/29 303/650/29 -f 383/652/306 385/654/307 384/653/307 -f 385/654/307 390/660/307 386/655/307 -f 387/656/308 418/808/299 371/641/299 -f 388/657/309 418/808/299 387/656/308 -f 300/659/309 372/809/309 388/657/309 -f 390/660/307 372/809/309 300/659/309 -f 391/661/310 394/664/313 378/649/305 -f 393/663/312 396/666/312 394/664/313 -f 395/665/312 397/810/312 396/666/312 -f 397/669/26 398/788/26 390/667/26 -f 398/788/26 372/628/26 390/667/26 -f 390/667/26 385/811/26 361/812/26 -f 385/811/26 383/813/26 361/812/26 -f 394/814/26 396/815/26 378/668/26 -f 396/815/26 397/669/26 378/668/26 -f 361/812/26 378/668/26 390/667/26 -f 398/670/314 397/810/312 395/665/312 -f 399/672/314 398/670/314 301/671/314 -f 380/647/303 417/807/301 399/672/314 -f 401/674/24 343/816/24 402/675/24 -f 402/675/24 376/632/24 377/634/24 -f 349/598/315 404/679/319 403/677/316 -f 402/682/323 405/681/322 406/684/325 -f 408/686/327 282/526/247 409/687/247 -f 345/688/327 344/617/295 365/619/295 -o Cylinder -v -0.126087 0.227980 0.137402 -v 0.126087 0.227980 0.774998 -v -0.126086 0.227980 0.774998 -v 0.126086 0.227980 0.137402 -v 0.304400 0.406294 0.774998 -v 0.304400 0.406293 0.137402 -v 0.304400 0.658466 0.774998 -v 0.304400 0.658466 0.137402 -v 0.126087 0.836780 0.774998 -v 0.126086 0.836780 0.137402 -v -0.126086 0.836780 0.774998 -v -0.126087 0.836780 0.137402 -v -0.304400 0.658467 0.774998 -v -0.304400 0.658466 0.137402 -v -0.304400 0.406294 0.774998 -v -0.304400 0.406294 0.137402 -vt 0.246533 0.894427 -vt 0.118900 0.944907 -vt 0.118900 0.894427 -vt 0.246533 0.944907 -vt 0.118900 0.995387 -vt 0.246533 0.591549 -vt 0.118900 0.642029 -vt 0.118900 0.591549 -vt 0.246533 0.642029 -vt 0.118900 0.692509 -vt 0.246533 0.692509 -vt 0.118900 0.742988 -vt 0.246533 0.742988 -vt 0.118900 0.793468 -vt 0.375332 0.627244 -vt 0.375332 0.677724 -vt 0.253463 0.627244 -vt 0.246533 0.793468 -vt 0.118900 0.843948 -vt 0.246533 0.843948 -vt 0.339638 0.713512 -vt 0.375332 0.799686 -vt 0.289158 0.835381 -vt 0.246533 0.995387 -vt 0.339638 0.713418 -vt 0.289158 0.713418 -vt 0.253463 0.677724 -vt 0.289158 0.591549 -vt 0.339638 0.591549 -vt 0.253464 0.799686 -vt 0.253463 0.749207 -vt 0.289158 0.713512 -vt 0.375332 0.749207 -vt 0.339638 0.835381 -vn -0.3827 -0.9239 0.0000 -vn 0.3827 -0.9239 -0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.3827 0.9239 -0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -0.9239 -0.3827 0.0000 -vn 0.0000 -0.0000 1.0000 +f 17/35/11 18/36/11 19/37/11 +f 20/38/12 21/39/13 22/40/12 +f 23/41/13 24/42/14 21/43/13 +f 25/44/15 23/45/15 26/46/15 +f 26/47/16 22/40/12 27/48/16 +f 28/49/17 29/50/17 27/51/17 +f 21/52/17 28/49/17 27/51/17 +f 29/53/11 30/54/11 31/55/11 +f 26/46/15 18/56/15 25/44/15 +f 32/57/14 28/58/18 24/42/14 +f 28/59/14 25/60/14 33/61/14 +f 34/62/19 35/63/19 17/35/19 +f 31/55/20 33/64/20 34/62/20 +f 26/65/12 27/66/12 34/67/12 +f 17/35/11 35/63/11 18/36/11 +f 20/38/12 23/68/13 21/39/13 +f 23/41/13 32/57/14 24/42/14 +f 32/69/15 23/45/15 25/44/15 +f 23/45/15 20/70/15 26/46/15 +f 26/47/16 20/38/12 22/40/12 +f 28/49/17 36/71/17 29/50/17 +f 27/51/17 22/72/17 21/52/17 +f 21/52/17 24/73/17 28/49/17 +f 29/53/11 36/74/11 30/54/11 +f 26/46/15 19/75/15 18/56/15 +f 32/57/14 25/76/18 28/58/18 +f 25/60/14 18/77/14 35/78/14 +f 33/61/14 30/79/14 28/59/14 +f 30/79/14 36/80/14 28/59/14 +f 25/60/14 35/78/14 33/61/14 +f 34/62/19 33/64/19 35/63/19 +f 31/55/20 30/54/20 33/64/20 +f 27/66/12 29/81/12 31/82/12 +f 34/67/12 17/83/12 26/65/12 +f 17/83/12 19/84/12 26/65/12 +f 27/66/12 31/82/12 34/67/12 +f 37/85/15 38/86/15 39/87/15 +f 40/88/15 41/89/15 42/90/15 +f 43/91/17 44/92/17 45/93/17 +f 46/94/17 47/95/17 48/96/17 +f 49/97/21 45/98/22 50/99/22 +f 37/100/23 51/101/24 38/102/25 +f 50/103/26 44/104/26 37/100/26 +f 39/105/27 52/106/21 49/97/21 +f 41/107/28 43/108/29 39/105/27 +f 40/109/30 53/110/31 48/111/30 +f 54/112/32 53/110/31 55/113/31 +f 54/112/32 46/114/33 56/115/32 +f 41/107/28 38/116/25 42/117/34 +f 47/118/35 51/119/24 43/108/29 +f 47/120/35 40/109/30 48/111/30 +f 42/117/34 51/119/24 46/121/33 +f 39/87/15 49/122/15 50/123/15 +f 50/123/15 37/85/15 39/87/15 +f 42/90/15 54/124/15 40/88/15 +f 54/124/15 55/125/15 40/88/15 +f 45/93/17 52/126/17 43/91/17 +f 43/91/17 51/127/17 44/92/17 +f 53/128/17 56/129/17 48/96/17 +f 56/129/17 46/94/17 48/96/17 +f 49/97/21 52/106/21 45/98/22 +f 37/100/23 44/104/23 51/101/24 +f 50/103/26 45/130/26 44/104/26 +f 39/105/27 43/108/29 52/106/21 +f 41/107/28 47/118/35 43/108/29 +f 40/109/30 55/113/31 53/110/31 +f 54/112/32 56/115/32 53/110/31 +f 54/112/32 42/131/34 46/114/33 +f 41/107/28 39/105/27 38/116/25 +f 47/118/35 46/121/33 51/119/24 +f 47/120/35 41/132/28 40/109/30 +f 42/117/34 38/116/25 51/119/24 +f 57/133/36 58/134/37 59/135/38 +f 60/136/39 61/137/40 58/138/40 +f 61/139/41 62/140/42 63/141/43 +f 62/142/14 59/143/14 63/144/14 +f 64/145/14 65/146/14 66/147/14 +f 60/148/11 62/140/11 67/149/11 +f 63/144/14 64/145/14 68/150/14 +f 69/151/44 63/141/43 68/152/45 +f 58/138/40 69/153/46 70/154/46 +f 59/135/38 70/155/47 64/156/48 +f 71/157/49 66/158/50 72/159/51 +f 69/153/46 73/160/52 71/161/53 +f 72/162/51 65/163/54 74/164/55 +f 74/164/55 64/156/48 70/155/47 +f 71/157/49 75/165/56 76/166/57 +f 73/167/58 68/152/45 75/165/56 +f 57/133/36 60/148/36 58/134/37 +f 60/136/39 67/168/39 61/137/40 +f 61/139/41 67/149/42 62/140/42 +f 62/142/14 57/169/14 59/143/14 +f 66/147/14 76/170/14 68/150/14 +f 76/170/14 75/171/14 68/150/14 +f 68/150/14 64/145/14 66/147/14 +f 60/148/11 57/133/11 62/140/11 +f 63/144/14 59/143/14 64/145/14 +f 69/151/44 61/139/41 63/141/43 +f 58/138/40 61/137/40 69/153/46 +f 59/135/38 58/134/37 70/155/47 +f 71/157/49 76/166/57 66/158/50 +f 71/161/53 72/172/53 70/154/46 +f 72/172/53 74/173/52 70/154/46 +f 70/154/46 69/153/46 71/161/53 +f 72/162/51 66/174/50 65/163/54 +f 74/164/55 65/163/54 64/156/48 +f 71/157/49 73/167/58 75/165/56 +f 73/167/58 69/151/44 68/152/45 +f 77/175/12 78/176/12 79/177/12 +f 80/178/13 81/179/59 82/180/13 +f 83/181/59 84/182/60 81/183/59 +f 85/184/61 86/185/62 87/186/61 +f 88/187/12 89/188/12 85/189/12 +f 90/190/62 91/191/63 86/185/62 +f 91/191/63 80/178/13 82/180/13 +f 92/192/60 93/193/64 84/182/60 +f 94/194/15 95/195/15 93/193/15 +f 87/196/14 86/197/14 91/198/14 +f 96/199/11 97/200/11 98/201/11 +f 87/186/17 98/201/17 85/184/17 +f 93/202/14 96/203/14 87/196/14 +f 85/189/12 97/204/12 94/205/12 +f 79/206/63 88/207/13 99/208/63 +f 100/209/65 99/208/63 101/210/65 +f 102/211/12 80/212/12 103/213/12 +f 102/214/11 100/209/65 101/210/65 +f 104/215/66 102/216/11 105/217/66 +f 77/218/59 105/217/66 89/219/59 +f 88/207/13 77/218/59 89/219/59 +f 79/177/12 100/220/12 77/175/12 +f 100/220/12 106/221/12 77/175/12 +f 106/221/12 104/222/12 77/175/12 +f 80/178/13 83/223/59 81/179/59 +f 83/181/59 92/192/60 84/182/60 +f 85/184/61 90/190/62 86/185/62 +f 92/224/12 83/225/12 101/226/12 +f 92/224/12 101/226/12 99/227/12 +f 85/189/12 94/205/12 88/187/12 +f 94/205/12 92/224/12 99/227/12 +f 88/187/12 94/205/12 99/227/12 +f 89/188/12 90/228/12 85/189/12 +f 90/190/62 103/229/63 91/191/63 +f 91/191/63 103/229/63 80/178/13 +f 92/192/60 94/194/64 93/193/64 +f 94/194/15 97/200/15 95/195/15 +f 91/198/14 82/230/14 87/196/14 +f 82/230/14 81/231/14 93/202/14 +f 81/231/14 84/232/14 93/202/14 +f 93/202/14 87/196/14 82/230/14 +f 96/199/11 95/195/11 97/200/11 +f 87/186/17 96/199/17 98/201/17 +f 93/202/14 95/233/14 96/203/14 +f 85/189/12 98/234/12 97/204/12 +f 79/206/63 78/235/13 88/207/13 +f 100/209/65 79/206/63 99/208/63 +f 103/213/12 90/228/12 105/236/12 +f 90/228/12 89/188/12 105/236/12 +f 101/226/12 83/225/12 102/211/12 +f 83/225/12 80/212/12 102/211/12 +f 103/213/12 105/236/12 102/211/12 +f 102/214/11 106/237/11 100/209/65 +f 104/215/66 106/238/11 102/216/11 +f 77/218/59 104/215/66 105/217/66 +f 88/207/13 78/235/13 77/218/59 +f 107/239/67 108/240/68 109/241/69 +f 110/242/70 111/243/71 112/244/71 +f 113/245/13 114/246/13 115/247/13 +f 116/248/72 117/249/73 118/250/74 +f 118/250/74 119/251/75 120/252/76 +f 120/252/76 121/253/77 122/254/78 +f 122/254/78 123/255/79 124/256/80 +f 124/256/80 125/257/81 126/258/82 +f 127/259/83 128/260/84 129/261/85 +f 130/262/86 131/263/86 132/264/86 +f 112/244/71 133/265/87 134/266/87 +f 135/267/88 136/268/89 137/269/90 +f 138/270/91 139/271/92 140/272/93 +f 140/272/93 141/273/94 142/274/95 +f 142/274/95 143/275/96 107/239/67 +f 144/276/97 145/277/98 146/278/99 +f 147/279/100 148/280/101 149/281/102 +f 147/279/100 150/282/103 109/241/69 +f 151/283/104 152/284/105 150/282/103 +f 153/285/106 154/286/107 152/284/105 +f 147/279/100 155/287/108 151/283/104 +f 151/283/104 156/288/109 153/285/106 +f 153/285/106 157/289/110 158/290/111 +f 118/250/74 159/291/112 116/248/72 +f 160/292/113 161/293/114 159/291/112 +f 162/294/115 163/295/116 161/293/114 +f 120/252/76 160/292/113 118/250/74 +f 164/296/117 162/294/115 160/292/113 +f 165/297/118 166/298/119 162/294/115 +f 122/254/78 164/296/117 120/252/76 +f 167/299/120 165/297/118 164/296/117 +f 168/300/121 169/301/122 165/297/118 +f 122/254/78 170/302/123 167/299/120 +f 167/299/120 129/261/85 168/300/121 +f 168/300/121 128/260/84 171/303/124 +f 126/258/82 170/302/123 124/256/80 +f 172/304/125 173/305/126 174/306/127 +f 163/307/116 166/308/119 158/309/111 +f 138/270/91 175/310/128 176/311/129 +f 176/311/129 135/267/88 177/312/130 +f 146/278/131 177/312/132 134/313/133 +f 142/274/95 175/310/128 140/272/93 +f 178/314/134 135/267/88 175/310/128 +f 179/315/135 136/268/89 135/267/88 +f 142/274/95 180/316/136 178/314/134 +f 178/314/134 181/317/137 179/315/135 +f 179/315/135 182/318/138 183/319/139 +f 107/239/67 150/282/103 180/316/136 +f 180/316/136 152/284/105 181/317/137 +f 181/317/137 154/286/107 182/318/138 +f 184/320/140 185/321/141 186/322/142 +f 186/322/142 187/323/143 188/324/144 +f 188/324/144 189/325/145 108/240/68 +f 190/326/146 185/321/141 191/327/147 +f 192/328/148 187/323/143 185/321/141 +f 193/329/149 189/325/145 187/323/143 +f 194/330/150 195/331/151 113/332/152 +f 113/332/152 196/333/153 114/334/154 +f 114/334/154 117/249/73 115/335/155 +f 197/336/156 198/337/157 195/331/151 +f 195/331/151 199/338/158 196/333/153 +f 196/333/153 119/251/75 117/249/73 +f 200/339/159 201/340/160 198/337/157 +f 198/337/157 202/341/161 199/338/158 +f 199/338/158 121/253/77 119/251/75 +f 172/304/125 201/340/160 203/342/162 +f 174/306/127 202/341/161 201/340/160 +f 204/343/163 121/253/77 202/341/161 +f 173/305/126 130/344/164 204/343/163 +f 204/343/163 125/257/81 123/255/79 +f 205/345/165 206/346/166 127/259/83 +f 145/277/98 207/347/167 146/278/99 +f 208/348/168 209/349/169 207/347/167 +f 210/350/170 211/351/171 145/277/98 +f 145/277/98 212/352/172 208/348/168 +f 208/348/168 141/273/94 139/271/92 +f 213/353/173 211/351/171 214/354/174 +f 215/355/175 212/352/172 211/351/171 +f 216/356/176 141/273/94 212/352/172 +f 184/320/140 215/355/175 213/353/173 +f 186/322/142 216/356/176 215/355/175 +f 188/324/144 143/275/96 216/356/176 +f 214/357/174 172/358/125 203/359/162 +f 146/278/131 176/311/129 177/312/132 +f 207/347/167 138/270/91 176/311/129 +f 109/241/69 189/325/145 147/279/100 +f 137/360/177 134/266/178 217/361/179 +f 133/265/180 144/362/181 218/363/182 +f 110/242/183 219/364/184 220/365/185 +f 112/244/186 221/366/187 110/242/183 +f 112/244/186 137/360/177 222/367/188 +f 223/368/189 111/243/190 224/369/191 +f 144/362/181 111/243/190 225/370/192 +f 132/264/193 173/371/194 226/372/195 +f 226/372/196 224/369/191 132/264/197 +f 220/365/198 127/373/199 206/374/200 +f 220/365/201 224/369/70 110/242/70 +f 107/239/67 143/275/96 108/240/68 +f 110/242/70 224/369/70 111/243/71 +f 115/247/13 116/375/13 163/376/13 +f 116/375/13 159/377/13 161/378/13 +f 163/376/13 116/375/13 161/378/13 +f 163/376/13 157/379/13 190/380/13 +f 157/379/13 156/381/13 149/382/13 +f 190/380/13 157/379/13 149/382/13 +f 156/381/13 155/383/13 149/382/13 +f 149/382/13 148/384/13 190/380/13 +f 148/384/13 193/385/13 192/386/13 +f 190/380/13 148/384/13 192/386/13 +f 190/380/13 194/387/13 163/376/13 +f 194/387/13 113/245/13 115/247/13 +f 163/376/13 194/387/13 115/247/13 +f 116/248/72 115/335/155 117/249/73 +f 118/250/74 117/249/73 119/251/75 +f 120/252/76 119/251/75 121/253/77 +f 122/254/78 121/253/77 123/255/79 +f 124/256/80 123/255/79 125/257/81 +f 127/259/83 219/388/202 128/260/84 +f 132/264/86 220/365/86 126/389/86 +f 220/365/86 206/374/86 205/390/86 +f 126/389/86 220/365/86 205/390/86 +f 126/389/86 125/391/86 132/264/86 +f 125/391/86 130/262/86 132/264/86 +f 112/244/71 111/243/71 133/265/87 +f 217/392/203 177/312/130 137/269/90 +f 177/312/130 135/267/88 137/269/90 +f 138/270/91 209/349/169 139/271/92 +f 140/272/93 139/271/92 141/273/94 +f 142/274/95 141/273/94 143/275/96 +f 146/278/99 218/393/204 144/276/97 +f 144/276/97 210/350/170 145/277/98 +f 147/279/100 189/325/145 148/280/101 +f 147/279/100 151/283/104 150/282/103 +f 151/283/104 153/285/106 152/284/105 +f 153/285/106 158/290/111 154/286/107 +f 147/279/100 149/281/102 155/287/108 +f 151/283/104 155/287/108 156/288/109 +f 153/285/106 156/288/109 157/289/110 +f 118/250/74 160/292/113 159/291/112 +f 160/292/113 162/294/115 161/293/114 +f 162/294/115 166/298/119 163/295/116 +f 120/252/76 164/296/117 160/292/113 +f 164/296/117 165/297/118 162/294/115 +f 165/297/118 169/301/122 166/298/119 +f 122/254/78 167/299/120 164/296/117 +f 167/299/120 168/300/121 165/297/118 +f 168/300/121 171/303/124 169/301/122 +f 122/254/78 124/256/80 170/302/123 +f 167/299/120 170/302/123 129/261/85 +f 168/300/121 129/261/85 128/260/84 +f 126/258/82 205/345/165 170/302/123 +f 172/304/125 226/394/205 173/305/126 +f 222/395/15 137/396/90 136/397/89 +f 183/398/139 182/399/138 171/400/124 +f 182/399/138 154/401/107 171/400/124 +f 171/400/124 154/401/107 169/402/122 +f 222/395/15 136/397/89 221/403/15 +f 136/397/89 183/398/139 128/404/84 +f 219/405/202 221/403/15 128/404/84 +f 128/404/84 221/403/15 136/397/89 +f 154/401/107 158/309/111 169/402/122 +f 171/400/124 128/404/84 183/398/139 +f 158/309/111 157/406/110 163/307/116 +f 169/402/122 158/309/111 166/308/119 +f 138/270/91 140/272/93 175/310/128 +f 176/311/129 175/310/128 135/267/88 +f 177/312/132 217/392/206 134/313/133 +f 134/313/133 133/407/133 146/278/131 +f 133/407/133 218/393/207 146/278/131 +f 142/274/95 178/314/134 175/310/128 +f 178/314/134 179/315/135 135/267/88 +f 179/315/135 183/319/139 136/268/89 +f 142/274/95 107/239/67 180/316/136 +f 178/314/134 180/316/136 181/317/137 +f 179/315/135 181/317/137 182/318/138 +f 107/239/67 109/241/69 150/282/103 +f 180/316/136 150/282/103 152/284/105 +f 181/317/137 152/284/105 154/286/107 +f 184/320/140 191/327/147 185/321/141 +f 186/322/142 185/321/141 187/323/143 +f 188/324/144 187/323/143 189/325/145 +f 190/326/146 192/328/148 185/321/141 +f 192/328/148 193/329/149 187/323/143 +f 193/329/149 148/280/101 189/325/145 +f 194/330/150 197/336/156 195/331/151 +f 113/332/152 195/331/151 196/333/153 +f 114/334/154 196/333/153 117/249/73 +f 197/336/156 200/339/159 198/337/157 +f 195/331/151 198/337/157 199/338/158 +f 196/333/153 199/338/158 119/251/75 +f 200/339/159 203/342/162 201/340/160 +f 198/337/157 201/340/160 202/341/161 +f 199/338/158 202/341/161 121/253/77 +f 172/304/125 174/306/127 201/340/160 +f 174/306/127 204/343/163 202/341/161 +f 204/343/163 123/255/79 121/253/77 +f 204/343/163 174/306/127 173/305/126 +f 173/305/126 131/408/208 130/344/164 +f 204/343/163 130/344/164 125/257/81 +f 129/261/85 170/302/123 127/259/83 +f 170/302/123 205/345/165 127/259/83 +f 145/277/98 208/348/168 207/347/167 +f 208/348/168 139/271/92 209/349/169 +f 210/350/170 214/354/174 211/351/171 +f 145/277/98 211/351/171 212/352/172 +f 208/348/168 212/352/172 141/273/94 +f 213/353/173 215/355/175 211/351/171 +f 215/355/175 216/356/176 212/352/172 +f 216/356/176 143/275/96 141/273/94 +f 184/320/140 186/322/142 215/355/175 +f 186/322/142 188/324/144 216/356/176 +f 188/324/144 108/240/68 143/275/96 +f 210/409/170 144/410/97 225/411/17 +f 225/411/17 223/412/17 210/409/170 +f 223/412/17 226/413/205 172/358/125 +f 223/412/17 172/358/125 210/409/170 +f 214/357/174 210/409/170 172/358/125 +f 184/414/140 213/415/173 203/359/162 +f 213/415/173 214/357/174 203/359/162 +f 190/416/146 191/417/147 194/418/150 +f 191/417/147 184/414/140 200/419/159 +f 197/420/156 194/418/150 191/417/147 +f 200/419/159 197/420/156 191/417/147 +f 203/359/162 200/419/159 184/414/140 +f 146/278/131 207/347/167 176/311/129 +f 207/347/167 209/349/169 138/270/91 +f 109/241/69 108/240/68 189/325/145 +f 110/242/183 221/366/187 219/364/184 +f 112/244/186 222/367/188 221/366/187 +f 112/244/186 134/266/178 137/360/177 +f 223/368/189 225/370/192 111/243/190 +f 144/362/181 133/265/180 111/243/190 +f 132/264/193 131/263/209 173/371/194 +f 226/372/196 223/368/189 224/369/191 +f 220/365/198 219/364/210 127/373/199 +f 220/365/201 132/264/201 224/369/70 +f 227/421/211 228/422/212 229/423/211 +f 230/424/213 378/425/214 381/426/214 +f 384/427/17 391/428/215 386/427/17 +f 236/429/216 237/430/217 238/431/217 +f 239/432/218 240/433/219 241/434/218 +f 238/431/217 242/435/220 243/436/220 +f 244/437/221 245/438/221 246/439/221 +f 246/439/222 247/440/222 248/441/222 +f 248/441/223 249/442/224 250/443/224 +f 251/444/13 252/445/13 253/446/13 +f 253/446/12 254/447/12 255/448/12 +f 255/449/225 256/450/225 257/451/225 +f 258/452/12 257/451/12 259/453/12 +f 260/454/11 261/455/226 262/456/226 +f 262/456/226 263/457/227 264/458/227 +f 264/458/227 265/459/228 230/424/228 +f 228/422/212 266/460/229 267/461/229 +f 299/462/230 380/463/231 234/464/231 +f 268/465/232 227/421/211 229/423/211 +f 380/466/15 389/467/233 388/466/15 +f 266/460/229 236/429/216 267/461/229 +f 249/442/224 270/468/234 250/443/224 +f 271/469/234 272/470/235 270/468/234 +f 273/471/236 274/472/237 251/444/237 +f 275/473/238 276/474/239 277/475/238 +f 278/476/239 279/477/240 276/474/239 +f 280/478/240 273/471/236 279/477/240 +f 281/479/241 282/480/241 283/481/241 +f 284/482/242 267/461/243 236/429/242 +f 285/483/244 266/460/245 286/484/245 +f 238/431/246 283/485/247 287/486/248 +f 281/487/249 237/430/250 288/488/251 +f 289/489/252 229/423/253 228/422/252 +f 290/490/254 227/421/255 291/491/255 +f 268/465/256 292/492/253 293/493/256 +f 228/422/252 294/494/243 289/489/252 +f 291/491/255 295/495/257 296/496/257 +f 286/484/245 297/497/254 290/490/254 +f 238/431/246 284/482/242 236/429/242 +f 285/483/244 237/430/250 298/498/244 +f 299/462/230 296/499/258 295/500/258 +f 300/501/235 277/475/238 272/470/235 +f 301/502/17 302/503/17 303/504/17 +f 304/505/259 305/506/260 306/507/260 +f 307/508/15 308/509/15 232/510/15 +f 309/511/261 310/512/262 311/513/261 +f 312/514/263 309/511/261 311/513/261 +f 313/515/264 314/516/263 312/514/263 +f 315/517/265 316/518/266 317/519/265 +f 316/518/266 310/512/262 318/520/262 +f 319/521/267 320/522/268 260/523/15 +f 314/524/17 321/525/17 280/526/17 +f 302/527/269 322/528/270 323/529/269 +f 324/530/271 317/519/265 325/531/271 +f 241/434/218 325/531/271 239/432/218 +f 321/532/264 326/533/259 304/534/259 +f 305/506/260 327/535/272 306/507/260 +f 328/536/14 329/537/14 330/538/14 +f 331/539/11 332/540/11 333/541/11 +f 334/542/12 308/543/12 335/544/12 +f 336/545/13 319/546/13 337/547/13 +f 279/548/15 313/549/15 312/550/15 +f 329/551/273 255/552/15 257/553/274 +f 254/554/17 328/555/275 256/556/276 +f 328/555/275 338/557/277 256/556/276 +f 319/521/267 339/558/278 320/522/268 +f 336/559/279 261/560/17 340/561/17 +f 341/562/280 342/563/281 339/558/278 +f 343/564/281 344/565/281 342/563/281 +f 345/566/282 329/551/273 257/553/274 +f 346/567/283 345/566/282 347/568/283 +f 258/569/283 346/567/283 347/568/283 +f 348/570/281 258/569/283 344/565/281 +f 349/571/284 336/559/279 350/572/285 +f 351/573/286 352/574/287 349/571/284 +f 353/575/286 354/576/286 351/573/286 +f 348/577/14 336/578/14 355/579/14 +f 356/580/288 353/575/286 259/581/288 +f 357/582/288 259/581/288 358/583/288 +f 338/557/277 357/582/288 358/583/288 +f 359/584/12 360/585/12 361/586/12 +f 360/585/12 335/544/12 361/586/12 +f 307/508/289 361/587/290 335/588/291 +f 308/509/292 307/508/289 335/588/291 +f 361/587/290 362/589/293 359/590/294 +f 301/502/295 363/591/296 360/592/297 +f 334/593/298 364/594/299 365/595/300 +f 360/592/297 364/594/299 334/593/298 +f 366/596/301 367/597/219 303/598/301 +f 303/598/301 323/529/269 366/596/301 +f 227/421/211 297/497/212 228/422/212 +f 230/424/213 265/459/213 231/599/302 +f 384/600/303 383/601/231 235/602/231 +f 236/429/216 298/498/216 237/430/217 +f 239/432/218 367/597/219 240/433/219 +f 238/431/217 237/430/217 242/435/220 +f 244/437/221 282/480/221 245/438/221 +f 246/439/222 245/438/222 247/440/222 +f 248/441/223 247/440/223 249/442/224 +f 251/444/13 274/472/13 252/445/13 +f 253/446/12 252/445/12 254/447/12 +f 255/449/225 254/603/225 256/450/225 +f 340/604/12 260/605/12 350/606/12 +f 260/605/12 320/607/12 350/606/12 +f 320/607/12 339/608/12 342/609/12 +f 320/607/12 342/609/12 344/610/12 +f 351/611/12 349/612/12 350/606/12 +f 353/613/12 351/611/12 350/606/12 +f 350/606/12 320/607/12 344/610/12 +f 258/452/12 347/614/12 257/451/12 +f 347/614/12 345/615/12 257/451/12 +f 350/606/12 344/610/12 353/613/12 +f 344/610/12 258/452/12 353/613/12 +f 259/453/12 353/613/12 258/452/12 +f 338/616/12 358/617/12 256/450/12 +f 358/617/12 259/453/12 256/450/12 +f 257/451/12 256/450/12 259/453/12 +f 260/454/11 340/618/11 261/455/226 +f 262/456/226 261/455/226 263/457/227 +f 264/458/227 263/457/227 265/459/228 +f 228/422/212 297/497/212 266/460/229 +f 389/619/304 387/620/304 392/621/231 +f 268/465/232 295/495/232 227/421/211 +f 380/463/231 379/622/303 368/623/303 +f 266/460/229 298/498/216 236/429/216 +f 249/442/224 271/469/234 270/468/234 +f 271/469/234 300/501/235 272/470/235 +f 273/471/236 369/624/236 274/472/237 +f 275/473/238 278/476/239 276/474/239 +f 278/476/239 280/478/240 279/477/240 +f 280/478/240 369/624/236 273/471/236 +f 282/480/241 244/437/241 283/481/241 +f 283/481/241 243/625/241 242/626/241 +f 242/626/241 281/479/241 283/481/241 +f 284/482/242 294/494/243 267/461/243 +f 285/483/244 298/498/244 266/460/245 +f 238/431/246 243/436/247 283/485/247 +f 281/487/249 242/435/249 237/430/250 +f 289/489/252 292/492/253 229/423/253 +f 290/490/254 297/497/254 227/421/255 +f 268/465/256 229/423/253 292/492/253 +f 228/422/252 267/461/243 294/494/243 +f 291/491/255 227/421/255 295/495/257 +f 286/484/245 266/460/245 297/497/254 +f 238/431/246 287/486/248 284/482/242 +f 285/483/244 288/488/251 237/430/250 +f 295/500/258 268/627/258 299/462/230 +f 268/627/258 293/628/258 269/629/230 +f 268/627/258 382/630/305 377/631/305 +f 300/501/235 275/473/238 277/475/238 +f 245/632/17 282/633/17 285/634/17 +f 282/633/17 281/635/17 288/636/17 +f 285/634/17 282/633/17 288/636/17 +f 285/634/17 286/637/17 245/632/17 +f 286/637/17 290/638/17 245/632/17 +f 291/639/17 296/640/17 299/641/17 +f 290/638/17 291/639/17 245/632/17 +f 291/639/17 299/641/17 245/632/17 +f 299/641/17 234/642/17 245/632/17 +f 271/643/17 249/644/17 325/645/17 +f 249/644/17 247/646/17 325/645/17 +f 247/646/17 245/632/17 367/647/17 +f 363/591/17 368/648/17 364/594/17 +f 234/642/17 368/648/17 363/591/17 +f 245/632/17 234/642/17 363/591/17 +f 368/648/17 231/649/17 364/594/17 +f 300/650/17 271/643/17 317/651/17 +f 265/652/17 263/653/17 365/595/17 +f 263/653/17 261/560/17 370/654/17 +f 365/595/17 263/653/17 370/654/17 +f 317/651/17 316/655/17 300/650/17 +f 325/645/17 317/651/17 271/643/17 +f 231/649/17 265/652/17 365/595/17 +f 231/649/17 365/595/17 364/594/17 +f 239/656/17 325/645/17 247/646/17 +f 245/632/17 363/591/17 303/504/17 +f 367/647/17 239/656/17 247/646/17 +f 303/504/17 367/647/17 245/632/17 +f 363/591/17 301/502/17 303/504/17 +f 301/502/17 333/657/17 327/658/17 +f 301/502/17 327/658/17 302/503/17 +f 304/505/259 326/659/259 305/506/260 +f 283/660/15 244/661/15 287/662/15 +f 244/661/15 246/663/15 284/664/15 +f 287/662/15 244/661/15 284/664/15 +f 248/665/15 250/666/15 324/667/15 +f 250/666/15 270/668/15 324/667/15 +f 270/668/15 272/669/15 315/670/15 +f 324/667/15 270/668/15 315/670/15 +f 294/671/15 284/664/15 246/663/15 +f 289/672/15 294/671/15 246/663/15 +f 289/672/15 246/663/15 292/673/15 +f 246/663/15 248/665/15 240/674/15 +f 292/673/15 246/663/15 269/675/15 +f 269/675/15 293/676/15 292/673/15 +f 269/675/15 246/663/15 235/677/15 +f 272/669/15 371/678/15 315/670/15 +f 235/677/15 246/663/15 362/589/15 +f 248/665/15 324/667/15 241/679/15 +f 366/680/15 246/663/15 240/674/15 +f 233/681/15 235/677/15 362/589/15 +f 246/663/15 366/680/15 362/589/15 +f 248/665/15 241/679/15 240/674/15 +f 232/510/15 233/681/15 307/508/15 +f 262/682/15 264/683/15 337/684/15 +f 264/683/15 230/685/15 308/509/15 +f 308/509/15 337/684/15 264/683/15 +f 323/686/15 322/687/15 359/590/15 +f 322/687/15 372/688/15 359/590/15 +f 233/681/15 362/589/15 307/508/15 +f 366/680/15 323/686/15 359/590/15 +f 362/589/15 366/680/15 359/590/15 +f 308/509/15 230/685/15 232/510/15 +f 309/511/261 318/520/262 310/512/262 +f 312/514/263 314/516/263 309/511/261 +f 313/515/264 321/532/264 314/516/263 +f 315/517/265 371/689/266 316/518/266 +f 316/518/266 371/689/266 310/512/262 +f 260/523/15 262/682/15 319/521/267 +f 262/682/15 337/684/15 319/521/267 +f 275/690/17 300/650/17 316/655/17 +f 275/690/17 316/655/17 318/691/17 +f 280/526/17 278/692/17 314/524/17 +f 278/692/17 275/690/17 309/693/17 +f 274/694/17 369/695/17 304/696/17 +f 369/695/17 280/526/17 321/525/17 +f 254/554/17 252/697/17 332/698/17 +f 252/697/17 274/694/17 332/698/17 +f 332/698/17 373/699/17 254/554/17 +f 327/658/17 333/657/17 306/700/17 +f 333/657/17 332/698/17 274/694/17 +f 306/700/17 333/657/17 274/694/17 +f 275/690/17 318/691/17 309/693/17 +f 278/692/17 309/693/17 314/524/17 +f 369/695/17 321/525/17 304/696/17 +f 304/696/17 306/700/17 274/694/17 +f 302/527/269 327/535/270 322/528/270 +f 324/530/271 315/517/265 317/519/265 +f 241/434/218 324/530/271 325/531/271 +f 321/532/264 313/515/264 326/533/259 +f 305/506/260 322/528/272 327/535/272 +f 373/701/14 332/702/14 374/703/14 +f 332/702/14 331/704/14 374/703/14 +f 357/705/14 375/706/14 328/536/14 +f 328/536/14 373/701/14 329/537/14 +f 373/701/14 374/703/14 329/537/14 +f 329/537/14 376/707/14 346/708/14 +f 356/709/14 357/705/14 328/536/14 +f 346/708/14 330/538/14 329/537/14 +f 330/538/14 356/709/14 328/536/14 +f 333/541/11 301/710/11 359/711/11 +f 359/711/11 372/712/11 333/541/11 +f 372/712/11 331/539/11 333/541/11 +f 334/542/12 365/713/12 308/543/12 +f 337/547/13 308/714/13 365/715/13 +f 365/715/13 370/716/13 337/547/13 +f 370/716/13 336/545/13 337/547/13 +f 253/717/15 255/552/15 331/718/15 +f 255/552/15 374/719/15 331/718/15 +f 331/718/15 372/688/15 251/720/15 +f 372/688/15 322/687/15 305/721/15 +f 279/548/15 273/722/15 313/549/15 +f 273/722/15 251/720/15 326/723/15 +f 313/549/15 273/722/15 326/723/15 +f 251/720/15 253/717/15 331/718/15 +f 372/688/15 305/721/15 251/720/15 +f 305/721/15 326/723/15 251/720/15 +f 277/724/15 276/725/15 311/726/15 +f 276/725/15 279/548/15 312/550/15 +f 311/726/15 276/725/15 312/550/15 +f 371/678/15 272/669/15 277/724/15 +f 310/727/15 371/678/15 277/724/15 +f 311/726/15 310/727/15 277/724/15 +f 329/551/273 374/719/15 255/552/15 +f 254/554/17 373/699/17 328/555/275 +f 328/555/275 375/728/275 338/557/277 +f 319/521/267 341/562/280 339/558/278 +f 340/561/17 350/572/285 336/559/279 +f 336/559/279 370/654/17 261/560/17 +f 341/562/280 343/564/281 342/563/281 +f 343/564/281 348/570/281 344/565/281 +f 345/566/282 376/729/273 329/551/273 +f 346/567/283 376/729/273 345/566/282 +f 258/569/283 330/730/283 346/567/283 +f 348/570/281 330/730/283 258/569/283 +f 349/571/284 352/574/287 336/559/279 +f 351/573/286 354/576/286 352/574/287 +f 353/575/286 355/731/286 354/576/286 +f 355/579/14 356/709/14 348/577/14 +f 356/709/14 330/538/14 348/577/14 +f 348/577/14 343/732/14 319/733/14 +f 343/732/14 341/734/14 319/733/14 +f 352/735/14 354/736/14 336/578/14 +f 354/736/14 355/579/14 336/578/14 +f 319/733/14 336/578/14 348/577/14 +f 356/580/288 355/731/286 353/575/286 +f 357/582/288 356/580/288 259/581/288 +f 338/557/277 375/728/275 357/582/288 +f 359/584/12 301/737/12 360/585/12 +f 360/585/12 334/542/12 335/544/12 +f 307/508/289 362/589/293 361/587/290 +f 360/592/297 363/591/296 364/594/299 +f 366/596/301 240/433/219 367/597/219 +f 303/598/301 302/527/269 323/529/269 +f 368/623/303 378/425/214 231/599/302 +f 384/600/303 232/738/302 381/426/214 +f 380/463/231 368/623/303 234/464/231 +f 390/739/303 386/740/303 391/741/306 +f 389/619/304 392/621/231 388/742/231 +f 382/630/305 269/629/230 235/602/231 +f 382/630/305 235/602/231 383/601/231 +f 379/743/15 388/466/15 390/743/15 +f 379/743/15 390/743/15 385/744/307 +f 386/740/303 388/742/231 392/621/231 +f 390/739/303 391/741/306 385/745/306 +f 386/740/303 390/739/303 388/742/231 +f 384/600/303 235/602/231 233/746/303 +f 384/427/17 381/428/308 391/428/215 +f 384/427/17 386/427/17 392/747/17 +f 299/462/230 377/631/305 380/463/231 +f 382/748/309 389/467/233 377/467/310 +f 383/747/17 387/748/311 382/748/309 +f 384/427/17 392/747/17 383/747/17 +f 379/743/15 385/744/307 378/744/312 +f 368/623/303 379/622/303 378/425/214 +f 382/748/309 387/748/311 389/467/233 +f 385/744/307 391/428/215 381/428/308 +f 384/600/303 233/746/303 232/738/302 +f 380/466/15 377/467/310 389/467/233 +f 385/744/307 381/428/308 378/744/312 +f 379/743/15 380/466/15 388/466/15 +f 383/747/17 392/747/17 387/748/311 +f 230/424/213 231/599/302 378/425/214 +f 381/426/214 232/738/302 230/424/213 +f 377/631/305 299/462/230 268/627/258 +f 268/627/258 269/629/230 382/630/305 +o Hammer +v 0.032000 0.482926 1.114100 +v 0.032000 0.624219 1.281649 +v 0.032000 0.556773 1.273590 +v -0.032000 0.482926 1.114100 +v -0.032000 0.624219 1.281649 +v -0.032000 0.687900 1.294528 +v 0.032000 0.865797 1.208403 +v -0.032000 0.770709 1.330115 +v 0.032000 0.770709 1.330115 +v 0.032000 0.687900 1.294528 +v -0.032000 0.603432 1.343032 +v 0.032000 0.603432 1.343032 +v 0.068452 0.608892 1.422981 +v -0.068452 0.608892 1.422981 +v -0.068452 0.498592 1.571619 +v 0.068452 0.498592 1.571619 +v -0.068452 0.468201 1.545936 +v 0.068452 0.468201 1.545936 +v -0.068452 0.512187 1.487151 +v 0.068452 0.512187 1.487151 +v 0.068452 0.556472 1.413076 +v -0.068452 0.556472 1.413076 +v -0.032000 0.552518 1.318780 +v 0.032000 0.552518 1.318780 +v -0.032000 0.556773 1.273590 +v -0.032000 0.515951 1.296035 +v 0.032000 0.515951 1.296035 +v -0.032000 0.408701 1.336443 +v 0.032000 0.408701 1.336443 +v -0.031291 0.259377 1.231255 +v 0.032709 0.259377 1.231255 +v -0.032000 0.865797 1.208403 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.7880 0.6156 +vn -0.0000 -0.3948 0.9188 +vn -0.0000 -0.1982 0.9802 +vn -0.0000 0.9472 0.3208 +vn -0.0000 0.9977 -0.0681 +vn -0.0000 0.8030 0.5959 +vn -0.0000 -0.6455 0.7638 +vn -0.0000 -0.8007 -0.5991 +vn -0.0000 -0.8583 -0.5131 +vn -0.0000 -0.9991 0.0419 +vn -0.0000 -0.9956 -0.0938 +vn -0.0000 0.4818 0.8763 +vn -0.0000 0.3526 0.9358 +vn -0.0000 -0.5759 0.8175 +vn -0.0000 -0.4642 -0.8857 +vn -0.0000 0.2392 -0.9710 +vn 0.9164 0.1722 -0.3615 +vn -0.9050 0.0790 -0.4180 +vn 1.0000 0.0038 0.0013 +vn -1.0000 -0.0038 -0.0013 +vn 0.9050 0.0790 -0.4180 +vn -0.9164 0.1722 -0.3615 +vt 0.343765 0.934799 +vt 0.350946 0.946383 +vt 0.354698 0.940182 +vt 0.343782 0.934821 +vt 0.350963 0.946405 +vt 0.347864 0.952606 +vt 0.390183 0.954876 +vt 0.397012 0.971356 +vt 0.390183 0.971356 +vt 0.397012 0.980973 +vt 0.390183 0.980973 +vt 0.397012 0.987905 +vt 0.390183 0.987905 +vt 0.397012 0.994820 +vt 0.390183 0.994820 +vt 0.379264 0.964780 +vt 0.387814 0.975498 +vt 0.379264 0.979388 +vt 0.359515 0.979388 +vt 0.359515 0.964780 +vt 0.355269 0.979388 +vt 0.355269 0.964780 +vt 0.347436 0.979388 +vt 0.347436 0.964780 +vt 0.338227 0.964780 +vt 0.338227 0.979388 +vt 0.328157 0.975498 +vt 0.328157 0.968670 +vt 0.397043 0.923988 +vt 0.403872 0.928831 +vt 0.397043 0.928831 +vt 0.403872 0.933801 +vt 0.397043 0.933801 +vt 0.403872 0.946030 +vt 0.397043 0.946030 +vt 0.403872 0.956580 +vt 0.397043 0.956580 +vt 0.403872 0.990249 +vt 0.397043 0.990249 +vt 0.390183 0.923988 +vt 0.397012 0.954876 +vt 0.384495 0.954648 +vt 0.384235 0.950410 +vt 0.376401 0.950426 +vt 0.357473 0.948666 +vt 0.367240 0.949494 +vt 0.358777 0.942792 +vt 0.357490 0.948689 +vt 0.367257 0.949516 +vt 0.364763 0.954633 +vt 0.376418 0.950449 +vt 0.384252 0.950432 +vt 0.384512 0.954670 +vt 0.328921 0.961887 +vt 0.347847 0.952584 +vt 0.345400 0.961884 +vt 0.369708 0.931858 +vt 0.375254 0.922884 +vt 0.359266 0.938223 +vt 0.375271 0.922906 +vt 0.369725 0.931881 +vt 0.359283 0.938246 +vt 0.354715 0.940204 +vt 0.358794 0.942814 +vt 0.345417 0.961907 +vt 0.328938 0.961909 +vt 0.387814 0.968670 +vt 0.403872 0.923988 +vt 0.397012 0.923988 +vt 0.364746 0.954610 +s 0 +f 393/749/313 394/750/313 395/751/313 +f 396/752/314 397/753/314 398/754/314 +f 399/755/315 400/756/315 401/757/315 +f 401/757/316 398/758/316 402/759/316 +f 402/759/317 397/760/317 394/761/317 +f 394/761/318 403/762/318 404/763/318 +f 405/764/319 403/765/319 406/766/319 +f 405/764/320 407/767/320 408/768/320 +f 408/768/321 409/769/321 410/770/321 +f 410/770/322 411/771/322 412/772/322 +f 413/773/323 411/771/323 414/774/323 +f 413/773/324 415/775/324 416/776/324 +f 416/777/325 417/778/325 395/779/325 +f 395/779/326 418/780/326 419/781/326 +f 419/781/327 420/782/327 421/783/327 +f 421/783/328 422/784/328 423/785/328 +f 423/785/329 396/786/329 393/787/329 +f 393/788/330 424/789/330 399/755/330 +f 408/790/313 410/791/313 412/792/313 +f 404/793/331 413/794/331 416/795/331 +f 403/796/332 414/797/332 406/798/332 +f 411/799/314 409/800/314 407/801/314 +f 393/749/313 399/802/313 402/803/313 +f 399/802/313 401/804/313 402/803/313 +f 421/805/333 423/806/333 393/749/333 +f 395/751/313 419/807/313 393/749/313 +f 419/807/313 421/805/313 393/749/313 +f 404/793/313 416/795/313 394/750/313 +f 416/795/313 395/751/313 394/750/313 +f 393/749/313 402/803/313 394/750/313 +f 396/752/334 422/808/334 420/809/334 +f 420/809/314 418/810/314 396/752/314 +f 418/810/314 417/811/314 396/752/314 +f 417/811/314 415/812/314 397/753/314 +f 415/812/314 403/796/314 397/753/314 +f 400/813/314 424/814/314 398/754/314 +f 424/814/314 396/752/314 398/754/314 +f 396/752/314 417/811/314 397/753/314 +f 399/755/315 424/789/315 400/756/315 +f 401/757/316 400/756/316 398/758/316 +f 402/759/317 398/758/317 397/760/317 +f 394/761/318 397/760/318 403/762/318 +f 405/764/319 404/815/319 403/765/319 +f 405/764/320 406/766/320 407/767/320 +f 408/768/321 407/767/321 409/769/321 +f 410/770/322 409/769/322 411/771/322 +f 413/773/323 412/772/323 411/771/323 +f 413/773/324 414/774/324 415/775/324 +f 416/777/325 415/816/325 417/778/325 +f 395/779/326 417/778/326 418/780/326 +f 419/781/327 418/780/327 420/782/327 +f 421/783/328 420/782/328 422/784/328 +f 423/785/329 422/784/329 396/786/329 +f 393/788/330 396/817/330 424/789/330 +f 412/792/313 413/794/313 405/818/313 +f 405/818/313 408/790/313 412/792/313 +f 404/793/335 405/818/335 413/794/335 +f 403/796/336 415/812/336 414/797/336 +f 407/801/314 406/798/314 411/799/314 +f 406/798/314 414/797/314 411/799/314 +o Trigger +v 0.045500 -0.120256 0.684201 +v 0.045500 -0.026668 0.645664 +v 0.045500 -0.037678 0.759438 +v -0.045500 -0.195494 0.673190 +v -0.045500 -0.241370 0.641994 +v -0.045500 -0.226690 0.735583 +v -0.045500 0.083436 0.570427 +v 0.045500 0.083436 0.570427 +v -0.045500 -0.026668 0.645664 +v 0.045500 -0.195494 0.673190 +v -0.045500 -0.120256 0.684201 +v 0.045500 -0.241370 0.641994 +v 0.045500 -0.301928 0.541066 +v 0.045500 -0.329454 0.561251 +v -0.045500 -0.301928 0.541066 +v 0.045500 -0.292752 0.676861 +v -0.045500 -0.329454 0.561251 +v 0.045500 -0.226690 0.735583 +v -0.045500 -0.292752 0.676861 +v 0.045500 -0.098235 0.761274 +v -0.045500 -0.098235 0.761274 +v 0.045500 0.006363 0.860367 +v -0.045500 -0.037678 0.759438 +v 0.045500 0.120138 0.755768 +v -0.045500 0.006363 0.860367 +v -0.045500 0.120138 0.755768 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.4751 -0.8800 +vn -0.0000 -0.5642 -0.8256 +vn -0.0000 -0.1223 -0.9925 +vn -0.0000 0.3628 -0.9319 +vn -0.0000 0.7269 -0.6868 +vn -0.0000 0.8575 -0.5145 +vn -0.0000 -0.5913 -0.8064 +vn -0.0000 -0.5914 -0.8064 +vn -0.0000 -0.8388 0.5445 +vn -0.0000 -0.9531 0.3026 +vn -0.0000 -0.4458 0.8952 +vn -0.0000 -0.0834 0.9965 +vn -0.0000 0.0303 0.9995 +vn -0.0000 -0.9165 0.3999 +vn -0.0000 0.6768 0.7362 +vn -0.0000 0.9810 -0.1943 +vt 0.023130 0.630533 +vt 0.028439 0.641072 +vt 0.015114 0.640800 +vt 0.023687 0.621763 +vt 0.026907 0.616152 +vt 0.016156 0.618688 +vt 0.051880 0.644663 +vt 0.062490 0.660213 +vt 0.051880 0.660213 +vt 0.051880 0.632862 +vt 0.062490 0.644663 +vt 0.051880 0.623995 +vt 0.062490 0.632862 +vt 0.051880 0.617526 +vt 0.062490 0.623995 +vt 0.051880 0.603802 +vt 0.062490 0.617526 +vt 0.062519 0.663431 +vt 0.073130 0.667411 +vt 0.062519 0.667411 +vt 0.062519 0.649287 +vt 0.073130 0.663431 +vt 0.062519 0.638981 +vt 0.073130 0.649287 +vt 0.062519 0.623707 +vt 0.073130 0.638981 +vt 0.062519 0.616642 +vt 0.073130 0.623707 +vt 0.062519 0.603802 +vt 0.073130 0.616642 +vt 0.051880 0.682243 +vt 0.062490 0.700264 +vt 0.051880 0.700264 +vt 0.062490 0.682243 +vt 0.038162 0.653207 +vt 0.016938 0.659116 +vt 0.003769 0.646815 +vt 0.014364 0.633776 +vt 0.016213 0.618613 +vt 0.023743 0.621688 +vt 0.022455 0.610413 +vt 0.026964 0.616078 +vt 0.035571 0.605121 +vt 0.038162 0.608143 +vt 0.003713 0.646890 +vt 0.016882 0.659191 +vt 0.015057 0.640875 +vt 0.038105 0.653282 +vt 0.028383 0.641147 +vt 0.014307 0.633851 +vt 0.023073 0.630608 +vt 0.022398 0.610487 +vt 0.038105 0.608218 +vt 0.035515 0.605196 +vt 0.062490 0.603802 +vt 0.073130 0.603802 s 1 -f 419/817/328 420/818/329 421/819/328 -f 422/820/329 423/821/330 420/818/329 -f 424/822/330 425/823/331 423/824/330 -f 426/825/331 427/826/332 425/823/331 -f 428/827/332 429/828/333 427/826/332 -f 430/829/333 431/830/334 429/828/333 -f 426/831/335 424/832/335 432/833/335 -f 432/834/334 433/835/336 431/830/334 -f 434/836/336 421/819/328 433/835/336 -f 425/837/337 429/838/337 433/839/337 -f 419/817/328 422/820/329 420/818/329 -f 422/820/329 424/840/330 423/821/330 -f 424/822/330 426/825/331 425/823/331 -f 426/825/331 428/827/332 427/826/332 -f 428/827/332 430/829/333 429/828/333 -f 430/829/333 432/834/334 431/830/334 -f 424/832/335 422/841/335 419/842/335 -f 419/842/335 434/843/335 424/832/335 -f 434/843/335 432/833/335 424/832/335 -f 432/833/335 430/844/335 428/845/335 -f 428/845/335 426/831/335 432/833/335 -f 432/834/334 434/836/336 433/835/336 -f 434/836/336 419/817/328 421/819/328 -f 433/839/337 421/846/337 420/847/337 -f 420/847/337 423/848/337 425/837/337 -f 425/837/337 427/849/337 429/838/337 -f 429/838/337 431/850/337 433/839/337 -f 433/839/337 420/847/337 425/837/337 +f 425/819/337 426/820/337 427/821/337 +f 428/822/338 429/823/338 430/824/338 +f 426/825/339 431/826/340 432/827/340 +f 425/828/341 433/829/339 426/825/339 +f 434/830/342 435/831/341 425/828/341 +f 436/832/343 428/833/342 434/830/342 +f 437/834/344 429/835/343 436/832/343 +f 438/836/345 439/837/345 437/838/346 +f 440/839/347 441/840/348 438/836/348 +f 442/841/349 443/842/347 440/839/347 +f 444/843/350 430/844/349 442/841/349 +f 427/845/351 445/846/350 444/843/350 +f 446/847/352 447/848/352 427/845/352 +f 448/849/353 449/850/353 446/851/353 +f 432/827/354 450/852/354 448/849/354 +f 432/853/337 448/854/337 426/820/337 +f 448/854/337 446/855/337 427/821/337 +f 427/821/337 444/856/337 425/819/337 +f 444/856/337 442/857/337 425/819/337 +f 425/819/337 442/857/337 434/858/337 +f 448/854/337 427/821/337 426/820/337 +f 442/857/337 440/859/337 436/860/337 +f 434/858/337 442/857/337 436/860/337 +f 440/859/337 438/861/337 436/860/337 +f 438/861/337 437/862/337 436/860/337 +f 449/863/338 450/864/338 447/865/338 +f 450/864/338 431/866/338 433/867/338 +f 450/864/338 433/867/338 447/865/338 +f 430/824/338 445/868/338 435/869/338 +f 445/868/338 447/865/338 435/869/338 +f 447/865/338 433/867/338 435/869/338 +f 443/870/338 430/824/338 429/823/338 +f 439/871/338 441/872/338 429/823/338 +f 441/872/338 443/870/338 429/823/338 +f 430/824/338 435/869/338 428/822/338 +f 426/825/339 433/829/339 431/826/340 +f 425/828/341 435/831/341 433/829/339 +f 434/830/342 428/833/342 435/831/341 +f 436/832/343 429/835/343 428/833/342 +f 437/834/344 439/873/344 429/835/343 +f 438/836/345 441/840/345 439/837/345 +f 440/839/347 443/842/347 441/840/348 +f 442/841/349 430/844/349 443/842/347 +f 444/843/350 445/846/350 430/844/349 +f 427/845/351 447/848/351 445/846/350 +f 446/847/352 449/874/352 447/848/352 +f 448/849/353 450/852/353 449/850/353 +f 432/827/354 431/826/354 450/852/354 +o Scope +v 0.000000 1.477200 0.088723 +v 0.098039 1.333949 0.145326 +v 0.000000 1.333949 0.088723 +v 0.098039 1.477200 0.145326 +v 0.098039 1.333949 0.258532 +v 0.098039 1.477200 0.258532 +v 0.000000 1.333949 0.315135 +v 0.000000 1.477200 0.315135 +v -0.098039 1.333949 0.258532 +v -0.098039 1.477200 0.258532 +v -0.098039 1.333949 0.145326 +v -0.098039 1.477200 0.145326 +v -0.052355 1.290100 0.088723 +v -0.195606 1.192061 0.145326 +v -0.195606 1.290100 0.088723 +v -0.052355 1.192061 0.145326 +v -0.195606 1.192061 0.258532 +v -0.052355 1.192061 0.258532 +v -0.195606 1.290100 0.315135 +v -0.052355 1.290100 0.315135 +v -0.195606 1.388139 0.258532 +v -0.052355 1.388139 0.258532 +v -0.195606 1.388139 0.145326 +v -0.052355 1.388139 0.145326 +v 0.122250 1.167851 -0.880258 +v 0.172888 1.290101 -0.535252 +v 0.122250 1.167851 -0.535252 +v 0.122250 1.412351 -0.880258 +v 0.122250 1.412351 -0.535252 +v 0.000000 1.462989 -0.535252 +v 0.000000 1.462989 -0.880258 +v -0.122250 1.412351 -0.535252 +v -0.122250 1.412351 -0.880258 +v -0.172888 1.290101 -0.535252 +v -0.172888 1.290101 -0.880258 +v -0.122250 1.167851 -0.535252 +v -0.148774 1.290101 -0.842944 +v 0.000000 1.438875 -0.842944 +v 0.148774 1.290101 -0.842944 +v -0.122250 1.167851 -0.880258 +v 0.000000 1.117213 -0.535252 +v 0.047857 1.242244 1.175174 +v 0.047857 1.337958 1.175174 +v -0.047857 1.337958 1.175174 +v -0.101696 1.188405 0.795065 +v 0.000000 1.118381 0.903662 +v -0.121424 1.168677 0.903662 +v -0.143820 1.290101 0.795065 +v -0.171720 1.290101 0.903662 +v -0.101696 1.391797 0.795065 +v -0.121424 1.411525 0.903662 +v 0.000000 1.433921 0.795065 +v 0.000000 1.461821 0.903662 +v 0.101696 1.391797 0.795065 +v 0.121424 1.411525 0.903662 +v 0.143820 1.290101 0.795065 +v 0.171720 1.290101 0.903662 +v 0.101696 1.188405 0.795065 +v 0.121424 1.168677 0.903662 +v 0.000000 1.146281 0.795065 +v -0.101696 1.188405 -0.426655 +v 0.000000 1.146281 -0.380929 +v -0.101696 1.188405 -0.380929 +v -0.143820 1.290101 -0.426655 +v -0.143820 1.290101 -0.380929 +v -0.101696 1.391797 -0.426655 +v -0.101696 1.391797 -0.380929 +v 0.000000 1.433921 -0.426655 +v 0.000000 1.433921 -0.380929 +v 0.101696 1.391797 -0.426655 +v 0.101696 1.391797 -0.380929 +v 0.143820 1.290101 -0.426655 +v 0.143820 1.290101 -0.380929 +v 0.101696 1.188405 -0.426655 +v 0.101696 1.188405 -0.380929 +v 0.000000 1.146281 -0.426655 +v 0.171720 1.290101 1.200607 +v 0.121424 1.411525 1.200607 +v 0.000000 1.461821 1.200607 +v -0.121424 1.411525 1.200607 +v -0.171720 1.290101 1.200607 +v -0.121424 1.168677 1.200607 +v 0.000000 1.118381 1.200607 +v 0.000000 1.146281 0.387825 +v 0.101696 1.188405 0.425211 +v 0.000000 1.146281 0.425211 +v 0.127181 1.162920 -0.019415 +v 0.127181 1.162920 0.387825 +v 0.143820 1.290101 0.387825 +v 0.143820 1.290101 0.425211 +v 0.101696 1.391797 0.425211 +v 0.143820 1.290101 -0.019415 +v 0.127181 1.417282 0.387825 +v 0.000000 1.433921 0.387825 +v 0.000000 1.433921 0.425211 +v 0.127181 1.417282 -0.019415 +v -0.101696 1.391797 0.425211 +v 0.000000 1.433921 -0.019415 +v -0.127181 1.417282 0.387825 +v -0.143820 1.290101 0.387825 +v -0.143820 1.290101 0.425211 +v -0.127181 1.417282 -0.019415 +v -0.101696 1.188405 0.425211 +v -0.143820 1.290101 -0.019415 +v -0.127181 1.162920 0.387825 +v -0.127181 1.162920 -0.019415 +v 0.000000 1.146281 0.560528 +v -0.101696 1.188405 0.560528 +v -0.143820 1.290101 0.560528 +v -0.101696 1.391797 0.560528 +v 0.000000 1.433921 0.560528 +v 0.101696 1.391797 0.560528 +v 0.143820 1.290101 0.560528 +v 0.101696 1.188405 0.560528 +v 0.000000 1.146281 -0.019415 +v 0.101696 1.188405 -0.056801 +v 0.101696 1.391797 -0.056801 +v -0.101696 1.391797 -0.056801 +v -0.101696 1.188405 -0.056801 +v 0.000000 1.146281 0.726438 +v -0.113307 1.408526 -0.380929 +v 0.000000 1.453522 -0.380929 +v 0.101696 1.188405 0.726438 +v -0.125746 1.106419 0.726438 +v 0.000000 1.113253 0.726438 +v 0.143820 1.290101 0.726438 +v 0.125746 1.106419 0.726438 +v 0.101696 1.391797 0.726438 +v 0.000000 1.433921 -0.214523 +v -0.113307 1.408526 -0.214523 +v -0.101696 1.391797 -0.214523 +v 0.000000 1.433921 0.726438 +v -0.125746 1.106419 0.560528 +v -0.160240 1.306368 0.560528 +v -0.101696 1.391797 0.726438 +v 0.113307 1.408526 -0.380929 +v -0.143820 1.290101 0.726438 +v -0.101696 1.188405 0.726438 +v 0.113307 1.408526 -0.214523 +v 0.000000 1.453522 -0.214523 +v 0.000000 1.146281 -0.056801 +v 0.101696 1.188405 -0.214523 +v -0.113307 1.408526 0.560528 +v 0.143820 1.290101 -0.056801 +v 0.160240 1.306368 -0.380929 +v 0.143820 1.290101 -0.214523 +v -0.160240 1.306368 0.726438 +v 0.101696 1.391797 -0.214523 +v 0.000000 1.433921 -0.056801 +v 0.160240 1.306368 -0.214523 +v 0.000000 1.453522 0.560528 +v -0.143820 1.290101 -0.056801 +v 0.125746 1.106419 -0.380929 +v -0.143820 1.290101 -0.214523 +v -0.113307 1.408526 0.726438 +v -0.101696 1.188405 -0.214523 +v 0.125746 1.106419 -0.214523 +v 0.000000 1.113253 0.560528 +v 0.125746 1.106419 0.560528 +v 0.160240 1.306368 0.726438 +v 0.160240 1.306368 0.560528 +v 0.113307 1.408526 0.726438 +v 0.113307 1.408526 0.560528 +v 0.000000 1.453522 0.726438 +v 0.000000 1.113253 -0.214523 +v -0.160240 1.306368 -0.214523 +v -0.125746 1.106419 -0.380929 +v -0.125746 1.106419 -0.214523 +v -0.160240 1.306368 -0.380929 +v 0.000000 1.146281 -0.214523 +v 0.000000 1.113253 -0.380929 +v -0.106302 1.396403 1.157056 +v -0.150333 1.290101 1.200607 +v -0.150333 1.290101 1.157056 +v 0.000000 1.440434 1.157056 +v -0.106302 1.396403 1.200607 +v 0.106302 1.396403 1.157056 +v 0.000000 1.440434 1.200607 +v 0.150333 1.290101 1.157056 +v 0.106302 1.396403 1.200607 +v 0.000000 1.156786 1.166115 +v 0.106302 1.183800 1.157056 +v 0.094268 1.195833 1.166115 +v 0.133315 1.290101 1.166115 +v 0.094268 1.384369 1.166115 +v 0.000000 1.423417 1.166115 +v -0.094268 1.384369 1.166115 +v -0.133315 1.290101 1.166115 +v -0.106302 1.183800 1.157056 +v -0.094268 1.195833 1.166115 +v 0.000000 1.139768 1.157056 +v 0.000000 1.178299 1.171550 +v 0.079056 1.211045 1.171550 +v 0.111802 1.290101 1.171550 +v 0.079056 1.369157 1.171550 +v 0.000000 1.401903 1.171550 +v -0.079056 1.369157 1.171550 +v -0.111802 1.290101 1.171550 +v -0.079056 1.211045 1.171550 +v 0.000000 1.222421 1.175174 +v 0.067680 1.290101 1.175174 +v 0.000000 1.357781 1.175174 +v -0.067680 1.290101 1.175174 +v -0.047857 1.242244 1.175174 +v 0.000000 1.139768 1.200607 +v 0.121424 1.168677 1.200607 +v 0.106302 1.183800 1.200607 +v 0.150333 1.290101 1.200607 +v -0.106302 1.183800 1.200607 +v -0.105199 1.184902 -0.842944 +v -0.148774 1.290101 -0.880258 +v -0.105199 1.395301 -0.880258 +v -0.105199 1.395301 -0.842944 +v 0.000000 1.438875 -0.880258 +v 0.105199 1.395301 -0.880258 +v 0.105199 1.395301 -0.842944 +v 0.105199 1.184902 -0.880258 +v 0.000000 1.117213 -0.880258 +v 0.000000 1.141327 -0.880258 +v 0.148774 1.290101 -0.880258 +v 0.172888 1.290101 -0.880258 +v -0.105199 1.184902 -0.880258 +v 0.000000 1.141327 -0.842944 +v 0.105199 1.184902 -0.842944 +v 0.127287 1.060470 -0.215130 +v -0.127287 1.060470 -0.215130 +v -0.137370 0.965631 -0.215130 +v 0.127287 1.060470 -0.381779 +v 0.127345 1.113839 -0.215130 +v 0.165068 1.014758 -0.215130 +v 0.165068 1.014758 -0.381779 +v -0.127287 1.060470 -0.381779 +v 0.137370 0.965631 -0.381779 +v -0.127345 1.113839 -0.215130 +v -0.127345 1.113839 -0.381779 +v 0.127345 1.113839 -0.381779 +v -0.165068 0.999696 -0.381779 +v -0.137370 0.965631 -0.381779 +v 0.165068 0.999696 -0.215130 +v 0.137370 0.965631 -0.215130 +v -0.165068 1.014758 -0.381779 +v -0.165068 1.014758 -0.215130 +v 0.165068 0.999696 -0.381779 +v -0.165068 0.999696 -0.215130 +v 0.127287 1.060470 0.727120 +v -0.127287 1.060470 0.727120 +v -0.137370 0.965631 0.727120 +v 0.127345 1.113839 0.560471 +v 0.127287 1.060470 0.560471 +v 0.165068 1.014758 0.727120 +v 0.165068 1.014758 0.560471 +v -0.127287 1.060470 0.560471 +v 0.137370 0.965631 0.560471 +v -0.127345 1.113839 0.727120 +v -0.127345 1.113839 0.560471 +v 0.127345 1.113839 0.727120 +v -0.165068 0.999696 0.560471 +v -0.137370 0.965631 0.560471 +v 0.165068 0.999696 0.727120 +v 0.137370 0.965631 0.727120 +v -0.165068 1.014758 0.560471 +v -0.165068 1.014758 0.727120 +v 0.165068 0.999696 0.560471 +v -0.165068 0.999696 0.727120 +v -0.128673 1.041385 0.864105 +v -0.158890 1.005824 -0.497553 +v -0.158890 1.005824 0.864105 +v 0.128673 1.041385 -0.497553 +v 0.158890 1.005824 0.864105 +v 0.158890 1.005824 -0.497553 +v -0.128673 0.970263 -0.497553 +v 0.128673 0.970263 -0.497553 +v -0.042891 0.970263 -0.078904 +v 0.128673 0.970263 0.864105 +v -0.128673 1.041385 -0.497553 +v -0.042891 1.005824 0.864105 +v -0.042891 0.970263 0.864105 +v -0.042891 0.970263 0.913056 +v -0.128673 0.970263 0.864105 +v 0.128673 1.041385 0.864105 +v 0.042891 0.970263 0.864105 +v 0.042891 0.916053 0.076168 +v 0.042891 0.970263 -0.078904 +v 0.042891 1.005824 0.953107 +v -0.042891 0.970263 0.953107 +v 0.042891 0.970263 0.953107 +v 0.042891 0.894106 0.885317 +v 0.042891 0.970263 0.913056 +v 0.042891 1.005824 0.864105 +v -0.042891 0.868174 0.915839 +v -0.042891 0.894106 0.885317 +v 0.042891 0.868174 0.915839 +v -0.042891 0.970263 -0.078904 +v 0.042891 0.916053 0.864105 +v -0.042891 0.916053 0.076168 +v -0.042891 0.916053 0.864105 +v 0.042891 0.970263 -0.078904 +v -0.042891 1.005824 0.953107 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0011 -0.0000 +vn 0.7708 0.6371 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0011 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.7759 -0.6309 -0.0000 +vn 0.7759 -0.6309 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.7708 0.6371 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7620 0.6475 -0.0000 +vn 0.7620 0.6475 -0.0000 +vn 0.7620 -0.6475 -0.0000 +vn -0.7620 -0.6475 -0.0000 +vn -0.0000 -0.7621 -0.6475 +vn -0.0000 0.3422 -0.9396 +vn -0.0000 -0.3429 0.9394 +vn -0.0000 -0.9440 -0.3300 +vn -0.0000 -0.0000 -0.0000 +vn 0.8660 -0.0000 -0.5000 +vn 0.8660 -0.0000 0.5000 +vn -0.8660 -0.0000 0.5000 +vn -0.8660 -0.0000 -0.5000 +vn -0.0000 -0.8660 -0.5000 +vn -0.0000 -0.8660 0.5000 +vn -0.0000 0.8660 0.5000 +vn -0.0000 0.8660 -0.5000 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.0362 -0.0362 0.9987 +vn 0.0362 0.0362 0.9987 +vn -0.0362 0.0362 0.9987 +vn -0.6849 -0.6849 -0.2488 +vn -0.0000 -0.9685 -0.2488 +vn -0.9685 -0.0000 -0.2488 +vn -0.6849 0.6849 -0.2488 +vn -0.0000 0.9685 -0.2488 +vn 0.6849 0.6849 -0.2488 +vn 0.9685 -0.0000 -0.2488 +vn 0.6849 -0.6849 -0.2488 +vn -0.6831 -0.6831 0.2586 +vn -0.0000 -0.9660 0.2586 +vn -0.9660 -0.0000 0.2586 +vn -0.6831 0.6831 0.2586 +vn -0.0000 0.9660 0.2586 +vn 0.6831 0.6831 0.2586 +vn 0.9660 -0.0000 0.2586 +vn 0.6831 -0.6831 0.2586 +vn -0.0000 -0.9856 0.1689 +vn 0.1560 -0.8391 0.5211 +vn 0.1297 -0.9916 -0.0000 +vn 0.8391 -0.1560 0.5211 +vn 0.9856 -0.0000 0.1689 +vn 0.9916 -0.1297 -0.0000 +vn 0.8391 0.1560 0.5211 +vn 0.9916 0.1297 -0.0000 +vn 0.1560 0.8391 0.5211 +vn -0.0000 0.9856 0.1689 +vn 0.1297 0.9916 -0.0000 +vn -0.1560 0.8391 0.5211 +vn -0.1297 0.9916 -0.0000 +vn -0.8391 0.1560 0.5211 +vn -0.9856 -0.0000 0.1689 +vn -0.9916 0.1297 -0.0000 +vn -0.8391 -0.1560 0.5211 +vn -0.9916 -0.1297 -0.0000 +vn -0.1560 -0.8391 0.5211 +vn -0.1297 -0.9916 -0.0000 +vn -0.0000 -0.9856 -0.1689 +vn 0.1560 -0.8391 -0.5211 +vn 0.1031 -0.7878 -0.6073 +vn 0.8391 -0.1560 -0.5211 +vn 0.9856 -0.0000 -0.1689 +vn 0.7878 -0.1031 -0.6073 +vn 0.8391 0.1560 -0.5211 +vn 0.7878 0.1031 -0.6073 +vn 0.1560 0.8391 -0.5211 +vn -0.0000 0.9856 -0.1689 +vn 0.1031 0.7878 -0.6073 +vn -0.1560 0.8391 -0.5211 +vn -0.1031 0.7878 -0.6073 +vn -0.8391 0.1560 -0.5211 +vn -0.9856 -0.0000 -0.1689 +vn -0.7878 0.1031 -0.6073 +vn -0.8391 -0.1560 -0.5211 +vn -0.7878 -0.1031 -0.6073 +vn -0.1560 -0.8391 -0.5211 +vn -0.1031 -0.7878 -0.6073 +vn -0.0543 -0.9985 -0.0000 +vn 0.9854 -0.1700 -0.0000 +vn 0.9916 0.1295 -0.0000 +vn 0.6883 0.7255 -0.0000 +vn -0.6883 0.7255 -0.0000 +vn -0.9916 0.1295 -0.0000 +vn -0.9854 -0.1700 -0.0000 +vn 0.0543 -0.9985 -0.0000 +vn -0.0000 -0.3856 0.9227 +vn 0.3323 -0.3323 0.8827 +vn 0.2727 -0.2727 0.9227 +vn 0.4699 -0.0000 0.8827 +vn 0.3856 -0.0000 0.9227 +vn 0.3323 0.3323 0.8827 +vn 0.2727 0.2727 0.9227 +vn -0.0000 0.4699 0.8827 +vn -0.0000 0.3856 0.9227 +vn -0.3323 0.3323 0.8827 +vn -0.2727 0.2727 0.9227 +vn -0.3856 -0.0000 0.9227 +vn -0.4699 -0.0000 0.8827 +vn -0.3323 -0.3323 0.8827 +vn -0.2727 -0.2727 0.9227 +vn -0.0000 -0.4699 0.8827 +vn -0.0000 -0.1839 0.9829 +vn 0.1300 -0.1300 0.9829 +vn 0.1839 -0.0000 0.9829 +vn 0.1300 0.1300 0.9829 +vn -0.0000 0.1839 0.9829 +vn -0.1300 0.1300 0.9829 +vn -0.1839 -0.0000 0.9829 +vn -0.1300 -0.1300 0.9829 +vn -0.0000 -0.0512 0.9987 +vn 0.0512 -0.0000 0.9987 +vn -0.0000 0.0512 0.9987 +vn -0.0512 -0.0000 0.9987 +vn -0.0362 -0.0362 0.9987 +vn 0.1031 -0.7878 0.6073 +vn 0.7878 -0.1031 0.6073 +vn 0.7878 0.1031 0.6073 +vn 0.1031 0.7878 0.6073 +vn -0.1031 0.7878 0.6073 +vn -0.7878 0.1031 0.6073 +vn -0.7878 -0.1031 0.6073 +vn -0.1031 -0.7878 0.6073 +vt 0.862112 0.382430 +vt 0.862112 0.343887 +vt 0.876470 0.342361 +vt 0.781491 0.334765 +vt 0.831474 0.326685 +vt 0.831474 0.334765 +vt 0.831474 0.343744 +vt 0.781491 0.343744 +vt 0.839614 0.332388 +vt 0.839614 0.293845 +vt 0.853972 0.292318 +vt 0.831474 0.420254 +vt 0.781491 0.412174 +vt 0.831474 0.412174 +vt 0.781491 0.288125 +vt 0.781491 0.326685 +vt 0.831474 0.394267 +vt 0.781491 0.400915 +vt 0.781491 0.394268 +vt 0.781491 0.352672 +vt 0.831474 0.346025 +vt 0.831474 0.352672 +vt 0.781491 0.403195 +vt 0.831474 0.403195 +vt 0.781491 0.346025 +vt 0.831474 0.400915 +vt 0.862112 0.332388 +vt 0.862112 0.293845 +vt 0.876470 0.292318 +vt 0.731449 0.326685 +vt 0.781432 0.334765 +vt 0.731449 0.334765 +vt 0.781432 0.343744 +vt 0.731449 0.343744 +vt 0.839614 0.382430 +vt 0.839614 0.343887 +vt 0.853972 0.342361 +vt 0.781432 0.420254 +vt 0.731449 0.412174 +vt 0.781432 0.412174 +vt 0.731449 0.288125 +vt 0.781432 0.326685 +vt 0.781432 0.394268 +vt 0.731449 0.400915 +vt 0.731449 0.394268 +vt 0.731449 0.352672 +vt 0.781432 0.346025 +vt 0.781432 0.352672 +vt 0.731449 0.403195 +vt 0.781432 0.403195 +vt 0.731449 0.346025 +vt 0.781432 0.400915 +vt 0.876470 0.383956 +vt 0.871313 0.388150 +vt 0.869033 0.388150 +vt 0.854032 0.382439 +vt 0.854032 0.343878 +vt 0.869033 0.338167 +vt 0.871313 0.338167 +vt 0.853972 0.333914 +vt 0.848815 0.338108 +vt 0.846534 0.338108 +vt 0.831533 0.332397 +vt 0.831533 0.293836 +vt 0.846534 0.288125 +vt 0.848815 0.288125 +vt 0.781491 0.420254 +vt 0.831474 0.288125 +vt 0.876470 0.333914 +vt 0.871313 0.338108 +vt 0.869033 0.338108 +vt 0.854032 0.332397 +vt 0.854032 0.293836 +vt 0.869033 0.288125 +vt 0.871313 0.288125 +vt 0.853972 0.383956 +vt 0.848815 0.388150 +vt 0.846534 0.388150 +vt 0.831533 0.382439 +vt 0.831533 0.343878 +vt 0.846534 0.338167 +vt 0.848815 0.338167 +vt 0.731449 0.420254 +vt 0.781432 0.288125 +vt 0.064605 0.000179 +vt 0.032391 0.940141 +vt 0.032391 0.000179 +vt 0.242253 0.940141 +vt 0.274466 0.000179 +vt 0.274467 0.940141 +vt 0.484329 0.940141 +vt 0.306680 0.940141 +vt 0.425112 0.651144 +vt 0.306680 0.000179 +vt 0.534226 0.414338 +vt 0.534226 0.236360 +vt 0.583414 0.236360 +vt 0.546318 0.592663 +vt 0.546318 0.568069 +vt 0.512464 0.568069 +vt 0.000178 0.940141 +vt 0.000178 0.000179 +vt 0.064605 0.940141 +vt 0.242253 0.000179 +vt 0.487811 0.005697 +vt 0.519381 0.464564 +vt 0.487811 0.554873 +vt 0.073028 1.000143 +vt 0.097622 0.940817 +vt 0.097622 1.000143 +vt 0.484684 0.568103 +vt 0.531567 0.515434 +vt 0.512383 0.568103 +vt 0.290390 1.000143 +vt 0.256536 0.940817 +vt 0.290390 0.940817 +vt 0.583463 0.236360 +vt 0.558869 0.355012 +vt 0.558869 0.295686 +vt 0.200482 1.000143 +vt 0.172783 0.940817 +vt 0.200482 0.940817 +vt 0.256536 1.000143 +vt 0.172783 1.000143 +vt 0.011475 0.940817 +vt 0.011475 1.000143 +vt 0.398353 0.604156 +vt 0.398156 0.603821 +vt 0.398353 0.604149 +vt 0.533461 0.664397 +vt 0.495970 0.605071 +vt 0.533461 0.605071 +vt 0.519381 0.005697 +vt 0.425288 0.548168 +vt 0.365961 0.661778 +vt 0.365961 0.548168 +vt 0.425288 0.003239 +vt 0.365896 0.651144 +vt 0.365896 0.000179 +vt 0.425112 0.000178 +vt 0.484329 0.000178 +vt 0.558820 0.215462 +vt 0.583414 0.414338 +vt 0.558820 0.435236 +vt 0.531648 0.515400 +vt 0.484765 0.568069 +vt 0.510539 0.497465 +vt 0.484765 0.592663 +vt 0.073028 0.940817 +vt 0.546237 0.568103 +vt 0.546237 0.592696 +vt 0.484684 0.592696 +vt 0.510458 0.497499 +vt 0.534276 0.236360 +vt 0.558869 0.215462 +vt 0.583463 0.414338 +vt 0.558869 0.435236 +vt 0.534276 0.414338 +vt 0.534276 0.355012 +vt 0.534276 0.295686 +vt 0.397971 0.604156 +vt 0.495970 0.664397 +vt 0.425288 0.661778 +vt 0.365961 0.003239 +vt 0.298927 0.396205 +vt 0.426834 0.332251 +vt 0.426834 0.396205 +vt 0.298927 0.332251 +vt 0.426834 0.268298 +vt 0.298927 0.268297 +vt 0.426834 0.204344 +vt 0.298927 0.588067 +vt 0.426834 0.524113 +vt 0.426834 0.588067 +vt 0.482312 0.332251 +vt 0.426926 0.236321 +vt 0.537698 0.236321 +vt 0.298927 0.524113 +vt 0.426834 0.460159 +vt 0.298927 0.460159 +vt 0.537698 0.364320 +vt 0.482312 0.460251 +vt 0.426926 0.364320 +vt 0.298927 0.204344 +vt 0.537698 0.300274 +vt 0.426926 0.300274 +vt 0.482312 0.204344 +vt 0.482312 0.332343 +vt 0.537698 0.428274 +vt 0.426926 0.428274 +vt 0.625763 0.415571 +vt 0.819774 0.344939 +vt 0.820219 0.412768 +vt 0.625356 0.276291 +vt 0.819329 0.277211 +vt 0.818884 0.209376 +vt 0.625153 0.206823 +vt 0.818436 0.141164 +vt 0.624951 0.137496 +vt 0.817982 0.071918 +vt 0.624748 0.068299 +vt 0.817507 -0.000475 +vt 0.739260 0.846264 +vt 0.780443 0.945689 +vt 0.681018 0.986873 +vt 0.626172 0.555444 +vt 0.820667 0.481090 +vt 0.821128 0.551376 +vt 0.696930 0.948356 +vt 0.678415 0.903416 +vt 0.723357 0.884906 +vt 0.876666 0.003400 +vt 0.816718 0.072080 +vt 0.816304 0.006550 +vt 0.876085 0.483878 +vt 0.819483 0.550860 +vt 0.819079 0.483115 +vt 0.876168 0.415340 +vt 0.818684 0.414464 +vt 0.876251 0.346487 +vt 0.818292 0.346212 +vt 0.876334 0.277480 +vt 0.817901 0.278056 +vt 0.876418 0.208392 +vt 0.817509 0.209851 +vt 0.876502 0.139291 +vt 0.817116 0.141387 +vt 0.876585 0.070439 +vt 0.876585 0.549564 +vt 0.900604 0.482520 +vt 0.900604 0.549669 +vt 0.876841 0.068823 +vt 0.900604 0.001360 +vt 0.900604 0.069103 +vt 0.876804 0.137986 +vt 0.900604 0.137993 +vt 0.876767 0.207313 +vt 0.900604 0.207190 +vt 0.876730 0.276558 +vt 0.900604 0.276413 +vt 0.876693 0.345668 +vt 0.900604 0.345495 +vt 0.876657 0.414568 +vt 0.900604 0.414254 +vt 0.876620 0.483158 +vt 0.876877 0.001414 +vt 0.626103 0.208309 +vt 0.626206 0.277009 +vt 0.626310 0.345842 +vt 0.626414 0.414767 +vt 0.626518 0.483792 +vt 0.626623 0.553016 +vt 0.625896 0.071491 +vt 0.814153 0.731675 +vt 0.754704 0.732862 +vt 0.807643 0.713695 +vt 0.837372 0.482857 +vt 0.629071 0.417250 +vt 0.837372 0.417250 +vt 0.695254 0.731675 +vt 0.701764 0.713695 +vt 0.837372 0.351644 +vt 0.648824 0.694528 +vt 0.629071 0.351644 +vt 0.837372 0.286037 +vt 0.860612 0.695197 +vt 0.814182 0.732345 +vt 0.807672 0.714365 +vt 0.629071 0.286037 +vt 0.837372 0.220430 +vt 0.754732 0.733532 +vt 0.629071 0.220430 +vt 0.837372 0.154823 +vt 0.695283 0.732345 +vt 0.701793 0.714365 +vt 0.629071 0.154823 +vt 0.837372 0.089217 +vt 0.648853 0.695197 +vt 0.629071 0.089217 +vt 0.837372 0.023610 +vt 0.860583 0.694528 +vt 0.629071 0.548464 +vt 0.837372 0.548464 +vt 0.636324 0.548220 +vt 0.705538 0.491917 +vt 0.705538 0.548220 +vt 0.705538 0.154102 +vt 0.636324 0.097799 +vt 0.705538 0.097799 +vt 0.636324 0.210405 +vt 0.705538 0.210405 +vt 0.636324 0.266707 +vt 0.705538 0.266707 +vt 0.636324 0.323010 +vt 0.705538 0.323010 +vt 0.636324 0.379312 +vt 0.705538 0.379312 +vt 0.636324 0.435615 +vt 0.705538 0.435615 +vt 0.636324 0.491917 +vt 0.695333 0.731288 +vt 0.754783 0.732474 +vt 0.754783 0.759036 +vt 0.814233 0.731288 +vt 0.860662 0.694140 +vt 0.877667 0.714545 +vt 0.649050 0.695197 +vt 0.695480 0.732345 +vt 0.632046 0.715602 +vt 0.754930 0.733532 +vt 0.754930 0.760094 +vt 0.814379 0.732345 +vt 0.860809 0.695197 +vt 0.877813 0.715602 +vt 0.648904 0.694140 +vt 0.631899 0.714545 +vt 0.900124 0.071811 +vt 0.902327 0.912035 +vt 0.960283 0.899046 +vt 0.902327 0.922061 +vt 0.900124 0.140016 +vt 0.901890 0.765040 +vt 0.837572 0.744650 +vt 0.901890 0.748146 +vt 0.900124 0.208571 +vt 0.966209 0.744650 +vt 0.953907 0.786586 +vt 0.900124 0.277204 +vt 0.902327 0.911782 +vt 0.844371 0.898793 +vt 0.850310 0.890236 +vt 0.900124 0.345738 +vt 0.975890 0.839400 +vt 0.966645 0.745448 +vt 0.984289 0.847721 +vt 0.900124 0.413996 +vt 0.844371 0.899046 +vt 0.850310 0.890489 +vt 0.900124 0.481829 +vt 0.876005 0.550176 +vt 0.828328 0.838603 +vt 0.849874 0.786586 +vt 0.900124 0.004636 +vt 0.960283 0.898792 +vt 0.902327 0.921808 +vt 0.711854 0.496239 +vt 0.631181 0.439936 +vt 0.711854 0.439936 +vt 0.954344 0.891417 +vt 0.960283 0.899974 +vt 0.711854 0.383634 +vt 0.820365 0.846792 +vt 0.828764 0.838472 +vt 0.631181 0.383634 +vt 0.711854 0.327331 +vt 0.849874 0.890620 +vt 0.819929 0.846923 +vt 0.631181 0.327331 +vt 0.711854 0.271028 +vt 0.954344 0.890236 +vt 0.984289 0.846539 +vt 0.631181 0.271028 +vt 0.711854 0.214726 +vt 0.902327 0.912963 +vt 0.902327 0.922989 +vt 0.631181 0.214726 +vt 0.711854 0.158423 +vt 0.838009 0.744520 +vt 0.850310 0.786455 +vt 0.631181 0.158423 +vt 0.711854 0.102121 +vt 0.901891 0.912166 +vt 0.843935 0.899176 +vt 0.631181 0.552542 +vt 0.711854 0.552541 +vt 0.975890 0.838219 +vt 0.966645 0.744267 +vt 0.397199 0.874901 +vt 0.482061 0.810488 +vt 0.482061 0.874901 +vt 0.397199 0.810488 +vt 0.482061 0.706705 +vt 0.397199 0.706705 +vt 0.482061 0.649202 +vt 0.397199 0.649202 +vt 0.482061 0.586843 +vt 0.397199 0.586843 +vt 0.482061 0.524485 +vt 0.397199 0.524485 +vt 0.482061 0.466981 +vt 0.397199 0.466981 +vt 0.482061 0.363198 +vt 0.397199 0.939314 +vt 0.482061 0.939314 +vt 0.396382 0.874901 +vt 0.311267 0.810488 +vt 0.396382 0.810488 +vt 0.396382 0.706705 +vt 0.311267 0.706705 +vt 0.396382 0.649202 +vt 0.311267 0.649202 +vt 0.396382 0.586843 +vt 0.311267 0.586843 +vt 0.396382 0.524485 +vt 0.311267 0.524485 +vt 0.396382 0.466981 +vt 0.311267 0.363198 +vt 0.396382 0.363198 +vt 0.311267 0.939314 +vt 0.396382 0.939314 +vt 0.902327 0.765837 +vt 0.838009 0.745448 +vt 0.902327 0.748944 +vt 0.954344 0.787383 +vt 0.820365 0.846539 +vt 0.828764 0.838219 +vt 0.975453 0.838603 +vt 0.983852 0.846923 +vt 0.954344 0.890489 +vt 0.984289 0.846793 +vt 0.828764 0.839400 +vt 0.850310 0.787383 +vt 0.838009 0.744267 +vt 0.850310 0.786202 +vt 0.953907 0.890619 +vt 0.959846 0.899176 +vt 0.975890 0.838472 +vt 0.966645 0.744520 +vt 0.850310 0.891417 +vt 0.820365 0.847721 +vt 0.902327 0.764656 +vt 0.954344 0.786202 +vt 0.902327 0.747763 +vt 0.901891 0.922191 +vt 0.902327 0.764909 +vt 0.902327 0.748016 +vt 0.954344 0.786455 +vt 0.844371 0.899974 +vt 0.640899 0.140025 +vt 0.663174 0.198878 +vt 0.640899 0.198878 +vt 0.640899 0.081173 +vt 0.663175 0.140025 +vt 0.640899 0.493140 +vt 0.663174 0.551992 +vt 0.640899 0.551992 +vt 0.640899 0.434287 +vt 0.663174 0.493140 +vt 0.736235 0.979788 +vt 0.680093 0.989178 +vt 0.683934 0.979737 +vt 0.637595 0.946681 +vt 0.646986 0.942722 +vt 0.637595 0.886581 +vt 0.647035 0.890422 +vt 0.680092 0.844083 +vt 0.684051 0.853475 +vt 0.740193 0.844085 +vt 0.736352 0.853526 +vt 0.773300 0.890541 +vt 0.782692 0.886581 +vt 0.782692 0.946682 +vt 0.773251 0.942841 +vt 0.740194 0.989180 +vt 0.731842 0.969217 +vt 0.688303 0.969155 +vt 0.657557 0.938328 +vt 0.657617 0.894790 +vt 0.688445 0.864046 +vt 0.731984 0.864107 +vt 0.762729 0.894934 +vt 0.762669 0.938473 +vt 0.723236 0.948412 +vt 0.678362 0.929721 +vt 0.697051 0.884851 +vt 0.741925 0.903542 +vt 0.741872 0.929847 +vt 0.799881 0.604423 +vt 0.785094 0.666531 +vt 0.777359 0.658796 +vt 0.722987 0.692257 +vt 0.722987 0.681318 +vt 0.660879 0.666531 +vt 0.668614 0.658796 +vt 0.635153 0.604424 +vt 0.646092 0.604424 +vt 0.799881 0.604346 +vt 0.785094 0.666454 +vt 0.777359 0.658718 +vt 0.722987 0.681240 +vt 0.722987 0.692179 +vt 0.660879 0.666454 +vt 0.668614 0.658718 +vt 0.646092 0.604346 +vt 0.635153 0.604346 +vt 0.663174 0.257730 +vt 0.640899 0.257730 +vt 0.663174 0.316582 +vt 0.640899 0.316582 +vt 0.663174 0.375435 +vt 0.640899 0.375435 +vt 0.663174 0.434287 +vt 0.625999 0.139796 +vt 0.642973 0.084114 +vt 0.662059 0.142357 +vt 0.642973 0.142357 +vt 0.662059 0.200599 +vt 0.642973 0.200599 +vt 0.662059 0.258841 +vt 0.642973 0.258841 +vt 0.662059 0.317083 +vt 0.642973 0.317083 +vt 0.723487 0.680169 +vt 0.660957 0.666602 +vt 0.669679 0.657881 +vt 0.777296 0.657881 +vt 0.723487 0.692503 +vt 0.799585 0.604072 +vt 0.786018 0.666602 +vt 0.669775 0.658077 +vt 0.635153 0.604268 +vt 0.647487 0.604268 +vt 0.723584 0.680365 +vt 0.661054 0.666798 +vt 0.777393 0.658077 +vt 0.723584 0.692699 +vt 0.799681 0.604268 +vt 0.786114 0.666798 +vt 0.635056 0.604072 +vt 0.647390 0.604072 +vt 0.642973 0.491810 +vt 0.662059 0.550052 +vt 0.642973 0.550052 +vt 0.642973 0.433568 +vt 0.662059 0.491810 +vt 0.642973 0.375326 +vt 0.662059 0.433568 +vt 0.662059 0.375326 +vt 0.625967 0.485397 +vt 0.625560 0.345878 +vt 0.624550 0.000408 +vt 0.639834 0.945689 +vt 0.639834 0.887447 +vt 0.681018 0.846264 +vt 0.780443 0.887447 +vt 0.739260 0.986873 +vt 0.625795 0.004394 +vt 0.754704 0.759424 +vt 0.629071 0.482857 +vt 0.631819 0.714933 +vt 0.877616 0.715602 +vt 0.754732 0.760094 +vt 0.631849 0.715602 +vt 0.629071 0.023610 +vt 0.877587 0.714933 +vt 0.636324 0.154102 +vt 0.701844 0.713307 +vt 0.807723 0.713307 +vt 0.701990 0.714365 +vt 0.807869 0.714365 +vt 0.900124 0.549107 +vt 0.631181 0.496239 +vt 0.631181 0.102121 +vt 0.397199 0.363198 +vt 0.311267 0.874901 +vt 0.311267 0.466981 +vt 0.663175 0.081173 +vt 0.810820 0.604423 +vt 0.810820 0.604346 +vt 0.662059 0.084114 +vt 0.811918 0.604072 +vt 0.812015 0.604268 +s 0 +f 675/875/355 676/876/355 677/877/355 +f 678/878/356 679/879/356 675/880/356 +f 678/878/357 680/881/357 681/882/357 +f 682/883/358 678/884/358 683/885/358 +f 684/886/359 682/887/359 676/888/359 +f 685/889/360 679/879/360 686/890/360 +f 677/891/361 687/892/361 688/893/361 +f 683/894/362 689/895/362 690/896/362 +f 683/894/363 677/891/363 688/893/363 +f 676/888/364 691/897/364 692/898/364 +f 681/882/365 689/895/365 693/899/365 +f 692/898/366 687/892/366 694/900/366 +f 695/901/355 696/902/355 697/903/355 +f 698/904/356 695/905/356 699/906/356 +f 699/906/357 700/907/357 701/908/357 +f 702/909/358 699/910/358 703/911/358 +f 704/912/359 702/913/359 696/914/359 +f 705/915/360 706/916/360 698/904/360 +f 697/917/361 707/918/361 708/919/361 +f 703/920/362 709/921/362 710/922/362 +f 703/920/363 697/917/363 708/919/363 +f 696/914/364 711/923/364 712/924/364 +f 701/908/365 709/921/365 713/925/365 +f 712/924/366 707/918/366 714/926/366 +f 677/877/355 690/927/355 675/875/355 +f 690/927/355 689/928/355 680/929/355 +f 675/875/355 690/927/355 680/929/355 +f 675/875/355 679/930/355 684/931/355 +f 676/876/355 692/932/355 677/877/355 +f 692/932/355 694/933/355 677/877/355 +f 675/875/355 684/931/355 676/876/355 +f 678/878/356 686/890/356 679/879/356 +f 678/878/357 675/880/357 680/881/357 +f 683/885/358 688/934/358 682/883/358 +f 688/934/358 687/935/358 691/936/358 +f 682/883/358 688/934/358 691/936/358 +f 682/883/358 685/937/358 686/938/358 +f 678/884/358 681/939/358 683/885/358 +f 681/939/358 693/940/358 683/885/358 +f 682/883/358 686/938/358 678/884/358 +f 684/886/359 685/941/359 682/887/359 +f 685/889/360 684/942/360 679/879/360 +f 677/891/361 694/900/361 687/892/361 +f 683/894/362 693/899/362 689/895/362 +f 683/894/363 690/896/363 677/891/363 +f 676/888/364 682/887/364 691/897/364 +f 681/882/365 680/881/365 689/895/365 +f 692/898/366 691/897/366 687/892/366 +f 697/903/355 710/943/355 695/901/355 +f 710/943/355 709/944/355 700/945/355 +f 695/901/355 710/943/355 700/945/355 +f 695/901/355 706/946/355 704/947/355 +f 696/902/355 712/948/355 697/903/355 +f 712/948/355 714/949/355 697/903/355 +f 695/901/355 704/947/355 696/902/355 +f 698/904/356 706/916/356 695/905/356 +f 699/906/357 695/905/357 700/907/357 +f 703/911/358 708/950/358 702/909/358 +f 708/950/358 707/951/358 711/952/358 +f 702/909/358 708/950/358 711/952/358 +f 702/909/358 705/953/358 698/954/358 +f 699/910/358 701/955/358 703/911/358 +f 701/955/358 713/956/358 703/911/358 +f 702/909/358 698/954/358 699/910/358 +f 704/912/359 705/957/359 702/913/359 +f 705/915/360 704/958/360 706/916/360 +f 697/917/361 714/926/361 707/918/361 +f 703/920/362 713/925/362 709/921/362 +f 703/920/363 710/922/363 697/917/363 +f 696/914/364 702/913/364 711/923/364 +f 701/908/365 700/907/365 709/921/365 +f 712/924/366 711/923/366 707/918/366 +f 715/959/367 716/960/367 717/961/367 +f 718/962/368 719/963/368 720/964/368 +f 721/965/363 722/966/363 723/967/363 +f 720/964/369 724/968/369 722/966/369 +f 722/969/358 721/970/358 725/971/358 +f 726/972/366 727/973/366 728/974/366 +f 717/961/370 721/975/370 729/976/370 +f 725/977/360 730/978/360 718/962/360 +f 731/979/365 732/980/365 733/981/365 +f 734/982/355 735/983/355 736/984/355 +f 736/985/365 737/986/365 738/987/365 +f 731/988/363 728/989/363 727/990/363 +f 730/991/355 726/992/355 739/993/355 +f 737/994/371 740/995/371 741/996/371 +f 738/997/372 741/996/372 728/989/372 +f 735/983/373 742/998/373 736/984/373 +f 726/999/360 734/982/360 739/1000/360 +f 723/1001/355 733/1002/355 743/1003/355 +f 727/1004/355 744/1005/355 731/1006/355 +f 745/980/366 746/1007/366 727/979/366 +f 745/1008/374 733/1009/374 732/1010/374 +f 732/1010/363 746/1011/363 745/1008/363 +f 715/959/367 725/977/367 716/960/367 +f 718/962/368 730/978/368 719/963/368 +f 722/966/363 724/968/363 747/1012/363 +f 724/968/363 731/1013/363 747/1012/363 +f 727/1014/363 729/1015/363 723/967/363 +f 729/1015/363 721/965/363 723/967/363 +f 722/966/363 747/1012/363 723/967/363 +f 720/964/369 719/963/369 724/968/369 +f 716/1016/358 725/971/358 721/970/358 +f 725/971/358 718/1017/358 722/969/358 +f 718/1017/358 720/1018/358 722/969/358 +f 728/974/366 741/1019/366 735/1020/366 +f 741/1019/366 740/1021/366 735/1020/366 +f 735/1020/366 748/1022/366 728/974/366 +f 748/1022/366 726/972/366 728/974/366 +f 717/961/370 716/960/370 721/975/370 +f 725/977/360 715/959/360 730/978/360 +f 733/981/375 747/981/375 731/979/375 +f 731/979/365 744/1007/365 732/980/365 +f 734/982/355 748/1023/355 735/983/355 +f 738/987/365 731/1024/365 739/1025/365 +f 739/1025/365 734/1026/365 738/987/365 +f 734/1026/365 736/985/365 738/987/365 +f 736/985/365 742/1027/365 737/986/365 +f 731/988/363 738/997/363 728/989/363 +f 724/1028/355 719/1029/355 730/991/355 +f 730/991/355 715/1030/355 726/992/355 +f 715/1030/355 717/1031/355 729/1032/355 +f 726/992/355 715/1030/355 729/1032/355 +f 729/1032/355 727/1033/355 726/992/355 +f 731/1034/355 724/1028/355 739/993/355 +f 724/1028/355 730/991/355 739/993/355 +f 737/994/371 742/998/371 740/995/371 +f 738/997/372 737/994/372 741/996/372 +f 735/983/373 740/995/373 742/998/373 +f 726/999/360 748/1023/360 734/982/360 +f 723/1001/355 747/1035/355 733/1002/355 +f 727/1004/355 746/1036/355 744/1005/355 +f 727/979/375 723/981/375 743/981/375 +f 743/981/366 745/980/366 727/979/366 +f 745/1008/374 743/1037/374 733/1009/374 +f 732/1010/363 744/1038/363 746/1011/363 +s 1 +f 451/1039/358 452/1040/376 453/1041/358 +f 454/1042/376 455/1043/377 452/1040/376 +f 456/1044/377 457/1045/355 455/1043/377 +f 458/1046/355 459/1047/378 457/1048/355 +f 451/1049/360 460/1050/360 456/1051/360 +f 460/1052/378 461/1053/379 459/1047/378 +f 462/1054/379 453/1041/358 461/1053/379 +f 452/1055/363 457/1056/363 461/1057/363 +f 451/1039/358 454/1042/376 452/1040/376 +f 454/1042/376 456/1044/377 455/1043/377 +f 456/1044/377 458/1058/355 457/1045/355 +f 458/1046/355 460/1052/378 459/1047/378 +f 456/1051/360 454/1059/360 451/1049/360 +f 451/1049/360 462/1060/360 460/1050/360 +f 460/1050/360 458/1061/360 456/1051/360 +f 460/1052/378 462/1054/379 461/1053/379 +f 462/1054/379 451/1039/358 453/1041/358 +f 461/1057/363 453/1062/363 452/1055/363 +f 452/1055/363 455/1063/363 457/1056/363 +f 457/1056/363 459/1064/363 461/1057/363 +f 463/1039/358 464/1040/380 465/1041/358 +f 466/1042/380 467/1043/381 464/1040/380 +f 468/1044/381 469/1045/355 467/1043/381 +f 470/1046/355 471/1047/382 469/1048/355 +f 463/1049/365 472/1050/365 468/1051/365 +f 472/1052/382 473/1053/383 471/1047/382 +f 474/1054/383 465/1041/358 473/1053/383 +f 464/1055/366 469/1056/366 473/1057/366 +f 463/1039/358 466/1042/380 464/1040/380 +f 466/1042/380 468/1044/381 467/1043/381 +f 468/1044/381 470/1058/355 469/1045/355 +f 470/1046/355 472/1052/382 471/1047/382 +f 468/1051/365 466/1059/365 463/1049/365 +f 463/1049/365 474/1060/365 472/1050/365 +f 472/1050/365 470/1061/365 468/1051/365 +f 472/1052/382 474/1054/383 473/1053/383 +f 474/1054/383 463/1039/358 465/1041/358 +f 473/1057/366 465/1062/366 464/1055/366 +f 464/1055/366 467/1063/366 469/1056/366 +f 469/1056/366 471/1064/366 473/1057/366 +f 475/1065/384 476/1066/365 477/1067/384 +f 476/1066/365 478/1068/385 479/1069/385 +f 478/1068/385 480/1070/360 479/1069/385 +f 481/1071/360 482/1072/386 480/1070/360 +f 483/1073/386 484/1074/366 482/1072/386 +f 485/1075/366 486/1076/387 484/1074/366 +f 487/1077/358 488/1078/358 489/1079/358 +f 490/1080/387 491/1081/363 486/1082/387 +f 492/1083/388 493/1084/389 494/1085/390 +f 495/1086/391 496/1087/392 497/1088/391 +f 498/1089/393 497/1090/391 499/1091/393 +f 500/1092/394 499/1091/393 501/1093/394 +f 502/1094/395 501/1093/394 503/1095/395 +f 504/1096/396 503/1095/395 505/1097/396 +f 506/1098/397 505/1097/396 507/1099/397 +f 508/1100/398 507/1099/397 509/1101/398 +f 510/1102/392 509/1101/398 496/1087/392 +f 511/1103/387 512/1104/363 513/1105/387 +f 514/1106/366 513/1107/387 515/1108/366 +f 516/1109/386 515/1108/366 517/1110/386 +f 518/1111/360 517/1110/386 519/1112/360 +f 520/1113/385 519/1112/360 521/1114/385 +f 522/1115/365 521/1114/385 523/1116/365 +f 524/1117/384 523/1116/365 525/1118/384 +f 526/1119/363 525/1118/384 512/1104/363 +f 486/1082/399 526/1119/400 511/1103/399 +f 484/1074/401 511/1120/399 514/1106/401 +f 482/1072/402 514/1106/401 516/1109/402 +f 480/1070/403 516/1109/402 518/1111/403 +f 520/1113/404 480/1070/403 518/1111/403 +f 522/1115/405 479/1069/404 520/1113/404 +f 524/1117/406 476/1066/405 522/1115/405 +f 491/1081/400 524/1117/406 526/1119/400 +f 527/1121/365 509/1101/384 507/1099/365 +f 528/1122/385 507/1099/365 505/1097/385 +f 529/1123/360 505/1097/385 503/1095/360 +f 530/1124/386 503/1095/360 501/1093/386 +f 531/1125/366 501/1093/386 499/1091/366 +f 532/1126/387 499/1091/366 497/1090/387 +f 533/1127/363 497/1088/387 496/1087/363 +f 534/1128/407 535/1129/408 536/1130/363 +f 534/1131/363 537/1132/409 538/1133/409 +f 535/1129/410 539/1134/411 540/1135/365 +f 537/1132/412 539/1136/365 538/1133/412 +f 539/1134/411 541/1137/413 540/1135/365 +f 542/1138/365 543/1139/414 539/1136/365 +f 541/1140/415 544/1141/416 545/1142/360 +f 546/1143/417 544/1144/360 543/1139/417 +f 544/1141/416 547/1145/418 545/1142/360 +f 548/1146/360 549/1147/419 544/1144/360 +f 547/1145/420 550/1148/421 551/1149/366 +f 552/1150/422 550/1151/366 549/1147/422 +f 550/1148/421 553/1152/423 551/1149/366 +f 554/1153/366 555/1154/424 550/1151/366 +f 553/1155/425 534/1128/407 536/1130/363 +f 556/1156/426 534/1131/363 555/1157/426 +f 553/1158/387 557/1159/363 558/1160/387 +f 559/1161/366 553/1162/387 558/1163/387 +f 547/1164/386 559/1161/366 560/1165/386 +f 545/1166/360 560/1165/386 561/1167/360 +f 541/1168/385 561/1167/360 562/1169/385 +f 540/1170/365 562/1169/385 563/1171/365 +f 535/1172/384 563/1171/365 564/1173/384 +f 536/1174/363 564/1173/384 557/1159/363 +f 565/1175/427 566/1176/428 537/1177/429 +f 566/1176/430 542/1178/431 537/1177/432 +f 542/1178/431 567/1179/433 546/1180/434 +f 567/1181/435 548/1182/436 546/1183/437 +f 548/1182/436 568/1184/438 552/1185/439 +f 568/1184/440 554/1186/441 552/1185/442 +f 554/1186/441 569/1187/443 556/1188/444 +f 569/1189/445 565/1175/427 556/1190/446 +f 570/1191/363 508/1100/384 510/1102/363 +f 519/1192/358 571/1193/358 572/1194/358 +f 573/1195/384 506/1098/365 508/1100/384 +f 570/1196/355 574/1197/355 575/1198/355 +f 576/1199/365 504/1096/385 506/1098/365 +f 570/1196/355 577/1200/355 573/1201/355 +f 578/1202/385 502/1094/360 504/1096/385 +f 579/1203/355 580/1204/355 581/1205/355 +f 582/1206/360 500/1092/386 502/1094/360 +f 559/1207/358 583/1208/358 584/1209/358 +f 585/1210/386 498/1089/366 500/1092/386 +f 519/1192/358 586/1211/358 521/1212/358 +f 587/1213/366 495/1214/387 498/1089/366 +f 587/1215/355 574/1197/355 588/1216/355 +f 588/1217/387 510/1102/363 495/1086/387 +f 579/1203/355 589/1218/355 590/1219/355 +f 591/1220/363 592/1221/384 566/1222/384 +f 560/1223/358 584/1209/358 593/1224/358 +f 592/1221/384 594/1225/365 566/1222/384 +f 521/1212/358 595/1226/358 523/1227/358 +f 596/1228/365 567/1229/385 594/1225/365 +f 585/1230/355 597/1231/355 587/1215/355 +f 598/1232/385 599/1233/360 567/1229/385 +f 598/1234/355 600/1235/355 589/1218/355 +f 579/1236/360 568/1237/386 599/1233/360 +f 561/1238/358 593/1224/358 601/1239/358 +f 581/1240/386 602/1241/366 568/1237/386 +f 523/1227/358 603/1242/358 525/1243/358 +f 604/1244/366 569/1245/387 602/1241/366 +f 582/1246/355 605/1247/355 585/1230/355 +f 606/1248/387 591/1220/363 569/1249/387 +f 596/1250/355 607/1251/355 600/1235/355 +f 608/1252/363 577/1253/447 575/1254/363 +f 609/1255/448 610/1256/449 577/1253/448 +f 611/1257/449 612/1258/450 610/1256/449 +f 613/1259/450 614/1260/360 612/1258/450 +f 601/1261/360 605/1262/451 614/1260/360 +f 593/1263/451 597/1264/452 605/1262/451 +f 584/1265/452 574/1266/453 597/1264/452 +f 583/1267/454 575/1254/363 574/1268/454 +f 615/1269/363 603/1270/447 607/1271/447 +f 603/1270/448 600/1272/449 607/1271/448 +f 595/1273/449 589/1274/450 600/1272/449 +f 586/1275/450 590/1276/360 589/1274/450 +f 572/1277/360 580/1278/451 590/1276/360 +f 571/1279/451 616/1280/452 580/1278/451 +f 616/1280/452 617/1281/453 618/1282/453 +f 617/1283/454 615/1269/363 618/1284/454 +f 557/1285/358 609/1286/358 608/1287/358 +f 557/1285/358 583/1208/358 558/1288/358 +f 581/1205/355 616/1289/355 604/1290/355 +f 576/1291/355 577/1200/355 610/1292/355 +f 517/1293/358 619/1294/358 571/1193/358 +f 563/1295/358 609/1286/358 564/1296/358 +f 604/1290/355 618/1297/355 606/1298/355 +f 578/1299/355 610/1292/355 612/1300/355 +f 515/1301/358 617/1302/358 619/1294/358 +f 562/1303/358 611/1304/358 563/1295/358 +f 620/1305/355 607/1251/355 592/1306/355 +f 620/1305/355 618/1297/355 615/1307/355 +f 582/1246/355 612/1300/355 614/1308/355 +f 512/1309/358 603/1242/358 621/1310/358 +f 512/1309/358 617/1302/358 513/1311/358 +f 561/1238/358 613/1312/358 562/1303/358 +f 622/1313/384 623/1314/365 624/1315/365 +f 625/1316/363 626/1317/384 622/1313/384 +f 627/1318/387 628/1319/363 625/1320/363 +f 629/1321/366 630/1322/387 627/1318/387 +f 631/1323/455 632/1324/456 633/1325/457 +f 633/1325/457 629/1326/458 634/1327/459 +f 634/1327/459 627/1328/460 635/1329/461 +f 635/1329/461 625/1330/462 636/1331/463 +f 636/1331/463 622/1332/464 637/1333/465 +f 638/1334/466 622/1332/464 624/1335/467 +f 638/1334/466 639/1336/468 640/1337/469 +f 640/1337/469 641/1338/470 631/1323/455 +f 642/1339/471 633/1325/457 643/1340/472 +f 643/1340/472 634/1327/459 644/1341/473 +f 644/1341/473 635/1329/461 645/1342/474 +f 645/1342/474 636/1331/463 646/1343/475 +f 646/1343/475 637/1333/465 647/1344/476 +f 648/1345/477 637/1333/465 638/1334/466 +f 648/1345/477 640/1337/469 649/1346/478 +f 642/1339/471 640/1337/469 631/1323/455 +f 650/1347/479 643/1340/472 492/1083/388 +f 651/1348/480 643/1340/472 644/1341/473 +f 651/1348/480 645/1342/474 493/1084/389 +f 652/1349/481 645/1342/474 646/1343/475 +f 652/1349/481 647/1344/476 494/1085/390 +f 494/1085/390 648/1345/477 653/1350/482 +f 653/1350/482 649/1346/478 654/1351/483 +f 650/1347/479 649/1346/478 642/1339/471 +f 655/1352/355 656/1353/355 657/1354/355 +f 657/1354/355 527/1355/355 658/1356/355 +f 658/1356/355 528/1357/355 630/1358/355 +f 630/1358/355 529/1359/355 628/1360/355 +f 628/1361/355 530/1362/355 626/1363/355 +f 623/1364/355 530/1362/355 531/1365/355 +f 623/1364/355 532/1366/355 659/1367/355 +f 655/1368/355 532/1366/355 533/1369/355 +f 624/1315/365 659/1370/385 639/1371/385 +f 639/1371/385 655/1372/360 641/1373/360 +f 641/1373/360 657/1374/386 632/1375/386 +f 632/1375/386 658/1376/366 629/1321/366 +f 656/1377/384 496/1087/363 509/1101/384 +f 660/1378/385 661/1379/365 487/1380/365 +f 487/1380/365 662/1381/384 663/1382/384 +f 663/1382/384 664/1383/363 488/1384/363 +f 488/1384/363 665/1385/387 666/1386/387 +f 667/1387/358 668/1388/358 669/1389/358 +f 670/1390/358 475/1391/358 667/1387/358 +f 665/1392/358 671/1393/358 670/1390/358 +f 664/1394/358 478/1395/358 665/1396/358 +f 662/1397/358 481/1398/358 664/1394/358 +f 661/1399/358 483/1400/358 662/1397/358 +f 672/1401/358 485/1402/358 661/1399/358 +f 669/1389/358 490/1403/358 672/1404/358 +f 673/1405/360 672/1406/385 660/1407/385 +f 674/1408/386 669/1409/360 673/1405/360 +f 489/1410/366 667/1411/386 674/1408/386 +f 666/1386/387 670/1412/366 489/1410/366 +f 668/1413/363 477/1067/384 491/1081/363 +f 475/1065/384 671/1414/365 476/1066/365 +f 476/1066/365 671/1414/365 478/1068/385 +f 478/1068/385 481/1071/360 480/1070/360 +f 481/1071/360 483/1073/386 482/1072/386 +f 483/1073/386 485/1075/366 484/1074/366 +f 485/1075/366 490/1415/387 486/1076/387 +f 489/1079/358 674/1416/358 487/1077/358 +f 674/1416/358 673/1417/358 487/1077/358 +f 673/1417/358 660/1418/358 487/1077/358 +f 487/1077/358 663/1419/358 488/1078/358 +f 488/1078/358 666/1420/358 489/1079/358 +f 490/1080/387 668/1413/363 491/1081/363 +f 654/1351/483 650/1347/479 492/1083/388 +f 492/1083/388 651/1348/480 493/1084/389 +f 493/1084/389 652/1349/481 494/1085/390 +f 494/1085/390 653/1350/482 654/1351/483 +f 654/1351/483 492/1083/388 494/1085/390 +f 495/1086/391 510/1102/392 496/1087/392 +f 498/1089/393 495/1214/391 497/1090/391 +f 500/1092/394 498/1089/393 499/1091/393 +f 502/1094/395 500/1092/394 501/1093/394 +f 504/1096/396 502/1094/395 503/1095/395 +f 506/1098/397 504/1096/396 505/1097/396 +f 508/1100/398 506/1098/397 507/1099/397 +f 510/1102/392 508/1100/398 509/1101/398 +f 511/1103/387 526/1119/363 512/1104/363 +f 514/1106/366 511/1120/387 513/1107/387 +f 516/1109/386 514/1106/366 515/1108/366 +f 518/1111/360 516/1109/386 517/1110/386 +f 520/1113/385 518/1111/360 519/1112/360 +f 522/1115/365 520/1113/385 521/1114/385 +f 524/1117/384 522/1115/365 523/1116/365 +f 526/1119/363 524/1117/384 525/1118/384 +f 486/1082/399 491/1081/400 526/1119/400 +f 484/1074/401 486/1076/399 511/1120/399 +f 482/1072/402 484/1074/401 514/1106/401 +f 480/1070/403 482/1072/402 516/1109/402 +f 520/1113/404 479/1069/404 480/1070/403 +f 522/1115/405 476/1066/405 479/1069/404 +f 524/1117/406 477/1067/406 476/1066/405 +f 491/1081/400 477/1067/406 524/1117/406 +f 527/1121/365 656/1377/384 509/1101/384 +f 528/1122/385 527/1121/365 507/1099/365 +f 529/1123/360 528/1122/385 505/1097/385 +f 530/1124/386 529/1123/360 503/1095/360 +f 531/1125/366 530/1124/386 501/1093/386 +f 532/1126/387 531/1125/366 499/1091/366 +f 533/1127/363 532/1421/387 497/1088/387 +f 534/1128/407 538/1422/484 535/1129/408 +f 534/1131/363 565/1423/363 537/1132/409 +f 535/1129/410 538/1422/485 539/1134/411 +f 537/1132/412 542/1138/365 539/1136/365 +f 539/1134/411 543/1424/486 541/1137/413 +f 542/1138/365 546/1143/414 543/1139/414 +f 541/1140/415 543/1425/487 544/1141/416 +f 546/1143/417 548/1146/360 544/1144/360 +f 544/1141/416 549/1426/488 547/1145/418 +f 548/1146/360 552/1150/419 549/1147/419 +f 547/1145/420 549/1426/489 550/1148/421 +f 552/1150/422 554/1153/366 550/1151/366 +f 550/1148/421 555/1427/490 553/1152/423 +f 554/1153/366 556/1428/424 555/1154/424 +f 553/1155/425 555/1429/491 534/1128/407 +f 556/1156/426 565/1423/363 534/1131/363 +f 553/1158/387 536/1174/363 557/1159/363 +f 559/1161/366 551/1430/366 553/1162/387 +f 547/1164/386 551/1430/366 559/1161/366 +f 545/1166/360 547/1164/386 560/1165/386 +f 541/1168/385 545/1166/360 561/1167/360 +f 540/1170/365 541/1168/385 562/1169/385 +f 535/1172/384 540/1170/365 563/1171/365 +f 536/1174/363 535/1172/384 564/1173/384 +f 565/1175/427 591/1431/363 566/1176/428 +f 566/1176/430 594/1432/365 542/1178/431 +f 542/1178/431 594/1432/365 567/1179/433 +f 567/1181/435 599/1433/360 548/1182/436 +f 548/1182/436 599/1433/360 568/1184/438 +f 568/1184/440 602/1434/366 554/1186/441 +f 554/1186/441 602/1434/366 569/1187/443 +f 569/1189/445 591/1431/363 565/1175/427 +f 570/1191/363 573/1195/384 508/1100/384 +f 519/1192/358 517/1293/358 571/1193/358 +f 573/1195/384 576/1199/365 506/1098/365 +f 570/1196/355 588/1216/355 574/1197/355 +f 576/1199/365 578/1202/385 504/1096/385 +f 570/1196/355 575/1198/355 577/1200/355 +f 578/1202/385 582/1206/360 502/1094/360 +f 579/1203/355 590/1219/355 580/1204/355 +f 582/1206/360 585/1210/386 500/1092/386 +f 559/1207/358 558/1288/358 583/1208/358 +f 585/1210/386 587/1213/366 498/1089/366 +f 519/1192/358 572/1194/358 586/1211/358 +f 587/1213/366 588/1435/387 495/1214/387 +f 587/1215/355 597/1231/355 574/1197/355 +f 588/1217/387 570/1191/363 510/1102/363 +f 579/1203/355 598/1234/355 589/1218/355 +f 591/1220/363 620/1436/363 592/1221/384 +f 560/1223/358 559/1207/358 584/1209/358 +f 592/1221/384 596/1228/365 594/1225/365 +f 521/1212/358 586/1211/358 595/1226/358 +f 596/1228/365 598/1232/385 567/1229/385 +f 585/1230/355 605/1247/355 597/1231/355 +f 598/1232/385 579/1236/360 599/1233/360 +f 598/1234/355 596/1250/355 600/1235/355 +f 579/1236/360 581/1240/386 568/1237/386 +f 561/1238/358 560/1223/358 593/1224/358 +f 581/1240/386 604/1244/366 602/1241/366 +f 523/1227/358 595/1226/358 603/1242/358 +f 604/1244/366 606/1437/387 569/1245/387 +f 582/1246/355 614/1308/355 605/1247/355 +f 606/1248/387 620/1436/363 591/1220/363 +f 596/1250/355 592/1306/355 607/1251/355 +f 608/1252/363 609/1255/447 577/1253/447 +f 609/1255/448 611/1257/449 610/1256/449 +f 611/1257/449 613/1259/450 612/1258/450 +f 613/1259/450 601/1261/360 614/1260/360 +f 601/1261/360 593/1263/451 605/1262/451 +f 593/1263/451 584/1265/452 597/1264/452 +f 584/1265/452 583/1438/453 574/1266/453 +f 583/1267/454 608/1252/363 575/1254/363 +f 615/1269/363 621/1439/363 603/1270/447 +f 603/1270/448 595/1273/449 600/1272/449 +f 595/1273/449 586/1275/450 589/1274/450 +f 586/1275/450 572/1277/360 590/1276/360 +f 572/1277/360 571/1279/451 580/1278/451 +f 571/1279/451 619/1440/452 616/1280/452 +f 616/1280/452 619/1440/452 617/1281/453 +f 617/1283/454 621/1439/363 615/1269/363 +f 557/1285/358 564/1296/358 609/1286/358 +f 557/1285/358 608/1287/358 583/1208/358 +f 581/1205/355 580/1204/355 616/1289/355 +f 576/1291/355 573/1201/355 577/1200/355 +f 517/1293/358 515/1301/358 619/1294/358 +f 563/1295/358 611/1304/358 609/1286/358 +f 604/1290/355 616/1289/355 618/1297/355 +f 578/1299/355 576/1291/355 610/1292/355 +f 515/1301/358 513/1311/358 617/1302/358 +f 562/1303/358 613/1312/358 611/1304/358 +f 620/1305/355 615/1307/355 607/1251/355 +f 620/1305/355 606/1298/355 618/1297/355 +f 582/1246/355 578/1299/355 612/1300/355 +f 512/1309/358 525/1243/358 603/1242/358 +f 512/1309/358 621/1310/358 617/1302/358 +f 561/1238/358 601/1239/358 613/1312/358 +f 622/1313/384 626/1317/384 623/1314/365 +f 625/1316/363 628/1441/363 626/1317/384 +f 627/1318/387 630/1322/387 628/1319/363 +f 629/1321/366 658/1376/366 630/1322/387 +f 631/1323/455 641/1338/470 632/1324/456 +f 633/1325/457 632/1324/456 629/1326/458 +f 634/1327/459 629/1326/458 627/1328/460 +f 635/1329/461 627/1328/460 625/1330/462 +f 636/1331/463 625/1330/462 622/1332/464 +f 638/1334/466 637/1333/465 622/1332/464 +f 638/1334/466 624/1335/467 639/1336/468 +f 640/1337/469 639/1336/468 641/1338/470 +f 642/1339/471 631/1323/455 633/1325/457 +f 643/1340/472 633/1325/457 634/1327/459 +f 644/1341/473 634/1327/459 635/1329/461 +f 645/1342/474 635/1329/461 636/1331/463 +f 646/1343/475 636/1331/463 637/1333/465 +f 648/1345/477 647/1344/476 637/1333/465 +f 648/1345/477 638/1334/466 640/1337/469 +f 642/1339/471 649/1346/478 640/1337/469 +f 650/1347/479 642/1339/471 643/1340/472 +f 651/1348/480 492/1083/388 643/1340/472 +f 651/1348/480 644/1341/473 645/1342/474 +f 652/1349/481 493/1084/389 645/1342/474 +f 652/1349/481 646/1343/475 647/1344/476 +f 494/1085/390 647/1344/476 648/1345/477 +f 653/1350/482 648/1345/477 649/1346/478 +f 650/1347/479 654/1351/483 649/1346/478 +f 655/1352/355 533/1442/355 656/1353/355 +f 657/1354/355 656/1353/355 527/1355/355 +f 658/1356/355 527/1355/355 528/1357/355 +f 630/1358/355 528/1357/355 529/1359/355 +f 628/1361/355 529/1443/355 530/1362/355 +f 623/1364/355 626/1363/355 530/1362/355 +f 623/1364/355 531/1365/355 532/1366/355 +f 655/1368/355 659/1367/355 532/1366/355 +f 624/1315/365 623/1314/365 659/1370/385 +f 639/1371/385 659/1370/385 655/1372/360 +f 641/1373/360 655/1372/360 657/1374/386 +f 632/1375/386 657/1374/386 658/1376/366 +f 656/1377/384 533/1127/363 496/1087/363 +f 660/1378/385 672/1444/385 661/1379/365 +f 487/1380/365 661/1379/365 662/1381/384 +f 663/1382/384 662/1381/384 664/1383/363 +f 488/1384/363 664/1383/363 665/1385/387 +f 667/1387/358 475/1391/358 668/1388/358 +f 670/1390/358 671/1393/358 475/1391/358 +f 665/1392/358 478/1445/358 671/1393/358 +f 664/1394/358 481/1398/358 478/1395/358 +f 662/1397/358 483/1400/358 481/1398/358 +f 661/1399/358 485/1402/358 483/1400/358 +f 672/1401/358 490/1446/358 485/1402/358 +f 669/1389/358 668/1388/358 490/1403/358 +f 673/1405/360 669/1409/360 672/1406/385 +f 674/1408/386 667/1411/386 669/1409/360 +f 489/1410/366 670/1412/366 667/1411/386 +f 666/1386/387 665/1385/387 670/1412/366 +f 668/1413/363 475/1065/384 477/1067/384 diff --git a/src/main/resources/assets/hbm/models/weapons/novac_scoped.obj b/src/main/resources/assets/hbm/models/weapons/novac_scoped.obj deleted file mode 100644 index 376e474b8..000000000 --- a/src/main/resources/assets/hbm/models/weapons/novac_scoped.obj +++ /dev/null @@ -1,3975 +0,0 @@ -# Blender v2.79 (sub 0) OBJ File: '' -# www.blender.org -o Scope -v 0.000000 1.477200 0.088723 -v 0.098039 1.333949 0.145326 -v 0.000000 1.333949 0.088723 -v 0.098039 1.477200 0.145326 -v 0.098039 1.333949 0.258532 -v 0.098039 1.477200 0.258532 -v 0.000000 1.333949 0.315135 -v 0.000000 1.477200 0.315135 -v -0.098039 1.333949 0.258532 -v -0.098039 1.477200 0.258532 -v -0.098039 1.333949 0.145326 -v -0.098039 1.477200 0.145326 -v -0.052355 1.290100 0.088723 -v -0.195606 1.192061 0.145326 -v -0.195606 1.290100 0.088723 -v -0.052355 1.192061 0.145326 -v -0.195606 1.192061 0.258532 -v -0.052355 1.192061 0.258532 -v -0.195606 1.290100 0.315135 -v -0.052355 1.290100 0.315135 -v -0.195606 1.388139 0.258532 -v -0.052355 1.388139 0.258532 -v -0.195606 1.388139 0.145326 -v -0.052355 1.388139 0.145326 -v 0.122250 1.167851 -0.880258 -v 0.172888 1.290101 -0.535252 -v 0.122250 1.167851 -0.535252 -v 0.122250 1.412351 -0.880258 -v 0.122250 1.412351 -0.535252 -v 0.000000 1.462989 -0.535252 -v 0.000000 1.462989 -0.880258 -v -0.122250 1.412351 -0.535252 -v -0.122250 1.412351 -0.880258 -v -0.172888 1.290101 -0.535252 -v -0.172888 1.290101 -0.880258 -v -0.122250 1.167851 -0.535252 -v -0.148774 1.290101 -0.842944 -v 0.000000 1.438875 -0.842944 -v 0.148774 1.290101 -0.842944 -v -0.122250 1.167851 -0.880258 -v 0.000000 1.117213 -0.535252 -v 0.047857 1.242244 1.175174 -v 0.047857 1.337958 1.175174 -v -0.047857 1.337958 1.175174 -v -0.101696 1.188405 0.795065 -v 0.000000 1.118381 0.903662 -v -0.121424 1.168677 0.903662 -v -0.143820 1.290101 0.795065 -v -0.171720 1.290101 0.903662 -v -0.101696 1.391797 0.795065 -v -0.121424 1.411525 0.903662 -v 0.000000 1.433921 0.795065 -v 0.000000 1.461821 0.903662 -v 0.101696 1.391797 0.795065 -v 0.121424 1.411525 0.903662 -v 0.143820 1.290101 0.795065 -v 0.171720 1.290101 0.903662 -v 0.101696 1.188405 0.795065 -v 0.121424 1.168677 0.903662 -v 0.000000 1.146281 0.795065 -v -0.101696 1.188405 -0.426655 -v 0.000000 1.146281 -0.380929 -v -0.101696 1.188405 -0.380929 -v -0.143820 1.290101 -0.426655 -v -0.143820 1.290101 -0.380929 -v -0.101696 1.391797 -0.426655 -v -0.101696 1.391797 -0.380929 -v 0.000000 1.433921 -0.426655 -v 0.000000 1.433921 -0.380929 -v 0.101696 1.391797 -0.426655 -v 0.101696 1.391797 -0.380929 -v 0.143820 1.290101 -0.426655 -v 0.143820 1.290101 -0.380929 -v 0.101696 1.188405 -0.426655 -v 0.101696 1.188405 -0.380929 -v 0.000000 1.146281 -0.426655 -v 0.171720 1.290101 1.200607 -v 0.121424 1.411525 1.200607 -v 0.000000 1.461821 1.200607 -v -0.121424 1.411525 1.200607 -v -0.171720 1.290101 1.200607 -v -0.121424 1.168677 1.200607 -v 0.000000 1.118381 1.200607 -v 0.000000 1.146281 0.387825 -v 0.101696 1.188405 0.425211 -v 0.000000 1.146281 0.425211 -v 0.127181 1.162920 -0.019415 -v 0.127181 1.162920 0.387825 -v 0.143820 1.290101 0.387825 -v 0.143820 1.290101 0.425211 -v 0.101696 1.391797 0.425211 -v 0.143820 1.290101 -0.019415 -v 0.127181 1.417282 0.387825 -v 0.000000 1.433921 0.387825 -v 0.000000 1.433921 0.425211 -v 0.127181 1.417282 -0.019415 -v -0.101696 1.391797 0.425211 -v 0.000000 1.433921 -0.019415 -v -0.127181 1.417282 0.387825 -v -0.143820 1.290101 0.387825 -v -0.143820 1.290101 0.425211 -v -0.127181 1.417282 -0.019415 -v -0.101696 1.188405 0.425211 -v -0.143820 1.290101 -0.019415 -v -0.127181 1.162920 0.387825 -v -0.127181 1.162920 -0.019415 -v 0.000000 1.146281 0.560528 -v -0.101696 1.188405 0.560528 -v -0.143820 1.290101 0.560528 -v -0.101696 1.391797 0.560528 -v 0.000000 1.433921 0.560528 -v 0.101696 1.391797 0.560528 -v 0.143820 1.290101 0.560528 -v 0.101696 1.188405 0.560528 -v 0.000000 1.146281 -0.019415 -v 0.101696 1.188405 -0.056801 -v 0.101696 1.391797 -0.056801 -v -0.101696 1.391797 -0.056801 -v -0.101696 1.188405 -0.056801 -v 0.000000 1.146281 0.726438 -v -0.113307 1.408526 -0.380929 -v 0.000000 1.453522 -0.380929 -v 0.101696 1.188405 0.726438 -v -0.125746 1.106419 0.726438 -v 0.000000 1.113253 0.726438 -v 0.143820 1.290101 0.726438 -v 0.125746 1.106419 0.726438 -v 0.101696 1.391797 0.726438 -v 0.000000 1.433921 -0.214523 -v -0.113307 1.408526 -0.214523 -v -0.101696 1.391797 -0.214523 -v 0.000000 1.433921 0.726438 -v -0.125746 1.106419 0.560528 -v -0.160240 1.306368 0.560528 -v -0.101696 1.391797 0.726438 -v 0.113307 1.408526 -0.380929 -v -0.143820 1.290101 0.726438 -v -0.101696 1.188405 0.726438 -v 0.113307 1.408526 -0.214523 -v 0.000000 1.453522 -0.214523 -v 0.000000 1.146281 -0.056801 -v 0.101696 1.188405 -0.214523 -v -0.113307 1.408526 0.560528 -v 0.143820 1.290101 -0.056801 -v 0.160240 1.306368 -0.380929 -v 0.143820 1.290101 -0.214523 -v -0.160240 1.306368 0.726438 -v 0.101696 1.391797 -0.214523 -v 0.000000 1.433921 -0.056801 -v 0.160240 1.306368 -0.214523 -v 0.000000 1.453522 0.560528 -v -0.143820 1.290101 -0.056801 -v 0.125746 1.106419 -0.380929 -v -0.143820 1.290101 -0.214523 -v -0.113307 1.408526 0.726438 -v -0.101696 1.188405 -0.214523 -v 0.125746 1.106419 -0.214523 -v 0.000000 1.113253 0.560528 -v 0.125746 1.106419 0.560528 -v 0.160240 1.306368 0.726438 -v 0.160240 1.306368 0.560528 -v 0.113307 1.408526 0.726438 -v 0.113307 1.408526 0.560528 -v 0.000000 1.453522 0.726438 -v 0.000000 1.113253 -0.214523 -v -0.160240 1.306368 -0.214523 -v -0.125746 1.106419 -0.380929 -v -0.125746 1.106419 -0.214523 -v -0.160240 1.306368 -0.380929 -v 0.000000 1.146281 -0.214523 -v 0.000000 1.113253 -0.380929 -v -0.106302 1.396403 1.157056 -v -0.150333 1.290101 1.200607 -v -0.150333 1.290101 1.157056 -v 0.000000 1.440434 1.157056 -v -0.106302 1.396403 1.200607 -v 0.106302 1.396403 1.157056 -v 0.000000 1.440434 1.200607 -v 0.150333 1.290101 1.157056 -v 0.106302 1.396403 1.200607 -v 0.000000 1.156786 1.166115 -v 0.106302 1.183800 1.157056 -v 0.094268 1.195833 1.166115 -v 0.133315 1.290101 1.166115 -v 0.094268 1.384369 1.166115 -v 0.000000 1.423417 1.166115 -v -0.094268 1.384369 1.166115 -v -0.133315 1.290101 1.166115 -v -0.106302 1.183800 1.157056 -v -0.094268 1.195833 1.166115 -v 0.000000 1.139768 1.157056 -v 0.000000 1.178299 1.171550 -v 0.079056 1.211045 1.171550 -v 0.111802 1.290101 1.171550 -v 0.079056 1.369157 1.171550 -v 0.000000 1.401903 1.171550 -v -0.079056 1.369157 1.171550 -v -0.111802 1.290101 1.171550 -v -0.079056 1.211045 1.171550 -v 0.000000 1.222421 1.175174 -v 0.067680 1.290101 1.175174 -v 0.000000 1.357781 1.175174 -v -0.067680 1.290101 1.175174 -v -0.047857 1.242244 1.175174 -v 0.000000 1.139768 1.200607 -v 0.121424 1.168677 1.200607 -v 0.106302 1.183800 1.200607 -v 0.150333 1.290101 1.200607 -v -0.106302 1.183800 1.200607 -v -0.105199 1.184902 -0.842944 -v -0.148774 1.290101 -0.880258 -v -0.105199 1.395301 -0.880258 -v -0.105199 1.395301 -0.842944 -v 0.000000 1.438875 -0.880258 -v 0.105199 1.395301 -0.880258 -v 0.105199 1.395301 -0.842944 -v 0.105199 1.184902 -0.880258 -v 0.000000 1.117213 -0.880258 -v 0.000000 1.141327 -0.880258 -v 0.148774 1.290101 -0.880258 -v 0.172888 1.290101 -0.880258 -v -0.105199 1.184902 -0.880258 -v 0.000000 1.141327 -0.842944 -v 0.105199 1.184902 -0.842944 -v 0.127287 1.060470 -0.215130 -v -0.127287 1.060470 -0.215130 -v -0.137370 0.965631 -0.215130 -v 0.127287 1.060470 -0.381779 -v 0.127345 1.113839 -0.215130 -v 0.165068 1.014758 -0.215130 -v 0.165068 1.014758 -0.381779 -v -0.127287 1.060470 -0.381779 -v 0.137370 0.965631 -0.381779 -v -0.127345 1.113839 -0.215130 -v -0.127345 1.113839 -0.381779 -v 0.127345 1.113839 -0.381779 -v -0.165068 0.999696 -0.381779 -v -0.137370 0.965631 -0.381779 -v 0.165068 0.999696 -0.215130 -v 0.137370 0.965631 -0.215130 -v -0.165068 1.014758 -0.381779 -v -0.165068 1.014758 -0.215130 -v 0.165068 0.999696 -0.381779 -v -0.165068 0.999696 -0.215130 -v 0.127287 1.060470 0.727120 -v -0.127287 1.060470 0.727120 -v -0.137370 0.965631 0.727120 -v 0.127345 1.113839 0.560471 -v 0.127287 1.060470 0.560471 -v 0.165068 1.014758 0.727120 -v 0.165068 1.014758 0.560471 -v -0.127287 1.060470 0.560471 -v 0.137370 0.965631 0.560471 -v -0.127345 1.113839 0.727120 -v -0.127345 1.113839 0.560471 -v 0.127345 1.113839 0.727120 -v -0.165068 0.999696 0.560471 -v -0.137370 0.965631 0.560471 -v 0.165068 0.999696 0.727120 -v 0.137370 0.965631 0.727120 -v -0.165068 1.014758 0.560471 -v -0.165068 1.014758 0.727120 -v 0.165068 0.999696 0.560471 -v -0.165068 0.999696 0.727120 -v -0.128673 1.041385 0.864105 -v -0.158890 1.005824 -0.497553 -v -0.158890 1.005824 0.864105 -v 0.128673 1.041385 -0.497553 -v 0.158890 1.005824 0.864105 -v 0.158890 1.005824 -0.497553 -v -0.128673 0.970263 -0.497553 -v 0.128673 0.970263 -0.497553 -v -0.042891 0.970263 -0.078904 -v 0.128673 0.970263 0.864105 -v -0.128673 1.041385 -0.497553 -v -0.042891 1.005824 0.864105 -v -0.042891 0.970263 0.864105 -v -0.042891 0.970263 0.913056 -v -0.128673 0.970263 0.864105 -v 0.128673 1.041385 0.864105 -v 0.042891 0.970263 0.864105 -v 0.042891 0.916053 0.076168 -v 0.042891 0.970263 -0.078904 -v 0.042891 1.005824 0.953107 -v -0.042891 0.970263 0.953107 -v 0.042891 0.970263 0.953107 -v 0.042891 0.894106 0.885317 -v 0.042891 0.970263 0.913056 -v 0.042891 1.005824 0.864105 -v -0.042891 0.868174 0.915839 -v -0.042891 0.894106 0.885317 -v 0.042891 0.868174 0.915839 -v -0.042891 0.970263 -0.078904 -v 0.042891 0.916053 0.864105 -v -0.042891 0.916053 0.076168 -v -0.042891 0.916053 0.864105 -v 0.042891 0.970263 -0.078904 -v -0.042891 1.005824 0.953107 -vt 0.862112 0.382430 -vt 0.862112 0.343887 -vt 0.876470 0.342361 -vt 0.781491 0.334765 -vt 0.831474 0.326685 -vt 0.831474 0.334765 -vt 0.831474 0.343744 -vt 0.781491 0.343744 -vt 0.839614 0.332388 -vt 0.839614 0.293845 -vt 0.853972 0.292318 -vt 0.831474 0.420254 -vt 0.781491 0.412174 -vt 0.831474 0.412174 -vt 0.781491 0.288125 -vt 0.781491 0.326685 -vt 0.831474 0.394267 -vt 0.781491 0.400915 -vt 0.781491 0.394268 -vt 0.781491 0.352672 -vt 0.831474 0.346025 -vt 0.831474 0.352672 -vt 0.781491 0.403195 -vt 0.831474 0.403195 -vt 0.781491 0.346025 -vt 0.831474 0.400915 -vt 0.862112 0.332388 -vt 0.862112 0.293845 -vt 0.876470 0.292318 -vt 0.731449 0.326685 -vt 0.781432 0.334765 -vt 0.731449 0.334765 -vt 0.781432 0.343744 -vt 0.731449 0.343744 -vt 0.839614 0.382430 -vt 0.839614 0.343887 -vt 0.853972 0.342361 -vt 0.781432 0.420254 -vt 0.731449 0.412174 -vt 0.781432 0.412174 -vt 0.731449 0.288125 -vt 0.781432 0.326685 -vt 0.781432 0.394268 -vt 0.731449 0.400915 -vt 0.731449 0.394268 -vt 0.731449 0.352672 -vt 0.781432 0.346025 -vt 0.781432 0.352672 -vt 0.731449 0.403195 -vt 0.781432 0.403195 -vt 0.731449 0.346025 -vt 0.781432 0.400915 -vt 0.876470 0.383956 -vt 0.871313 0.388150 -vt 0.869033 0.388150 -vt 0.854032 0.382439 -vt 0.854032 0.343878 -vt 0.869033 0.338167 -vt 0.871313 0.338167 -vt 0.853972 0.333914 -vt 0.848815 0.338108 -vt 0.846534 0.338108 -vt 0.831533 0.332397 -vt 0.831533 0.293836 -vt 0.846534 0.288125 -vt 0.848815 0.288125 -vt 0.781491 0.420254 -vt 0.831474 0.288125 -vt 0.876470 0.333914 -vt 0.871313 0.338108 -vt 0.869033 0.338108 -vt 0.854032 0.332397 -vt 0.854032 0.293836 -vt 0.869033 0.288125 -vt 0.871313 0.288125 -vt 0.853972 0.383956 -vt 0.848815 0.388150 -vt 0.846534 0.388150 -vt 0.831533 0.382439 -vt 0.831533 0.343878 -vt 0.846534 0.338167 -vt 0.848815 0.338167 -vt 0.731449 0.420254 -vt 0.781432 0.288125 -vt 0.064605 0.000179 -vt 0.032391 0.940141 -vt 0.032391 0.000179 -vt 0.242253 0.940141 -vt 0.274466 0.000179 -vt 0.274467 0.940141 -vt 0.484329 0.940141 -vt 0.306680 0.940141 -vt 0.425112 0.651144 -vt 0.306680 0.000179 -vt 0.534226 0.414338 -vt 0.534226 0.236360 -vt 0.583414 0.236360 -vt 0.546318 0.592663 -vt 0.546318 0.568069 -vt 0.512464 0.568069 -vt 0.000178 0.940141 -vt 0.000178 0.000179 -vt 0.064605 0.940141 -vt 0.242253 0.000179 -vt 0.487811 0.005697 -vt 0.519381 0.464564 -vt 0.487811 0.554873 -vt 0.073028 1.000143 -vt 0.097622 0.940817 -vt 0.097622 1.000143 -vt 0.484684 0.568103 -vt 0.531567 0.515434 -vt 0.512383 0.568103 -vt 0.290390 1.000143 -vt 0.256536 0.940817 -vt 0.290390 0.940817 -vt 0.583463 0.236360 -vt 0.558869 0.355012 -vt 0.558869 0.295686 -vt 0.200482 1.000143 -vt 0.172783 0.940817 -vt 0.200482 0.940817 -vt 0.256536 1.000143 -vt 0.172783 1.000143 -vt 0.011475 0.940817 -vt 0.011475 1.000143 -vt 0.398353 0.604156 -vt 0.398156 0.603821 -vt 0.398353 0.604149 -vt 0.533461 0.664397 -vt 0.495970 0.605071 -vt 0.533461 0.605071 -vt 0.519381 0.464564 -vt 0.519381 0.005697 -vt 0.487811 0.005697 -vt 0.425288 0.548168 -vt 0.365961 0.661778 -vt 0.365961 0.548168 -vt 0.425288 0.003239 -vt 0.365896 0.651144 -vt 0.365896 0.000179 -vt 0.425112 0.000178 -vt 0.484329 0.000178 -vt 0.558820 0.215462 -vt 0.583414 0.414338 -vt 0.558820 0.435236 -vt 0.531648 0.515400 -vt 0.484765 0.568069 -vt 0.510539 0.497465 -vt 0.484765 0.592663 -vt 0.487811 0.554873 -vt 0.519381 0.005697 -vt 0.073028 0.940817 -vt 0.546237 0.568103 -vt 0.546237 0.592696 -vt 0.484684 0.592696 -vt 0.510458 0.497499 -vt 0.534276 0.236360 -vt 0.558869 0.215462 -vt 0.583463 0.414338 -vt 0.558869 0.435236 -vt 0.534276 0.414338 -vt 0.534276 0.355012 -vt 0.534276 0.295686 -vt 0.397971 0.604156 -vt 0.495970 0.664397 -vt 0.487811 0.554873 -vt 0.487811 0.554873 -vt 0.425288 0.661778 -vt 0.365961 0.003239 -vt 0.298927 0.396205 -vt 0.426834 0.332251 -vt 0.426834 0.396205 -vt 0.298927 0.332251 -vt 0.426834 0.268298 -vt 0.298927 0.268297 -vt 0.426834 0.204344 -vt 0.298927 0.588067 -vt 0.426834 0.524113 -vt 0.426834 0.588067 -vt 0.482312 0.332251 -vt 0.426926 0.236321 -vt 0.537698 0.236321 -vt 0.298927 0.524113 -vt 0.426834 0.460159 -vt 0.298927 0.460159 -vt 0.537698 0.364320 -vt 0.482312 0.460251 -vt 0.426926 0.364320 -vt 0.298927 0.204344 -vt 0.537698 0.300274 -vt 0.426926 0.300274 -vt 0.482312 0.204344 -vt 0.482312 0.332343 -vt 0.537698 0.428274 -vt 0.426926 0.428274 -vt 0.298927 0.396205 -vt 0.426834 0.332251 -vt 0.426834 0.396205 -vt 0.298927 0.332251 -vt 0.426834 0.268298 -vt 0.298927 0.268297 -vt 0.426834 0.204344 -vt 0.298927 0.588067 -vt 0.426834 0.524113 -vt 0.426834 0.588067 -vt 0.482312 0.332251 -vt 0.426926 0.236321 -vt 0.537698 0.236321 -vt 0.298927 0.524113 -vt 0.426834 0.460159 -vt 0.298927 0.460159 -vt 0.537698 0.364320 -vt 0.482312 0.460251 -vt 0.426926 0.364320 -vt 0.298927 0.204344 -vt 0.537698 0.300274 -vt 0.426926 0.300274 -vt 0.482312 0.204344 -vt 0.482312 0.332343 -vt 0.537698 0.428274 -vt 0.426926 0.428274 -vt 0.625763 0.415571 -vt 0.819774 0.344939 -vt 0.820219 0.412768 -vt 0.625356 0.276291 -vt 0.819329 0.277211 -vt 0.818884 0.209376 -vt 0.625153 0.206823 -vt 0.818436 0.141164 -vt 0.624951 0.137496 -vt 0.817982 0.071918 -vt 0.624748 0.068299 -vt 0.817507 -0.000475 -vt 0.739260 0.846264 -vt 0.780443 0.945689 -vt 0.681018 0.986873 -vt 0.626172 0.555444 -vt 0.820667 0.481090 -vt 0.821128 0.551376 -vt 0.696930 0.948356 -vt 0.678415 0.903416 -vt 0.723357 0.884906 -vt 0.876666 0.003400 -vt 0.816718 0.072080 -vt 0.816304 0.006550 -vt 0.876085 0.483878 -vt 0.819483 0.550860 -vt 0.819079 0.483115 -vt 0.876168 0.415340 -vt 0.818684 0.414464 -vt 0.876251 0.346487 -vt 0.818292 0.346212 -vt 0.876334 0.277480 -vt 0.817901 0.278056 -vt 0.876418 0.208392 -vt 0.817509 0.209851 -vt 0.876502 0.139291 -vt 0.817116 0.141387 -vt 0.876585 0.070439 -vt 0.876585 0.549564 -vt 0.900604 0.482520 -vt 0.900604 0.549669 -vt 0.876841 0.068823 -vt 0.900604 0.001360 -vt 0.900604 0.069103 -vt 0.876804 0.137986 -vt 0.900604 0.137993 -vt 0.876767 0.207313 -vt 0.900604 0.207190 -vt 0.876730 0.276558 -vt 0.900604 0.276413 -vt 0.876693 0.345668 -vt 0.900604 0.345495 -vt 0.876657 0.414568 -vt 0.900604 0.414254 -vt 0.876620 0.483158 -vt 0.876877 0.001414 -vt 0.626103 0.208309 -vt 0.626206 0.277009 -vt 0.626310 0.345842 -vt 0.626414 0.414767 -vt 0.626518 0.483792 -vt 0.626623 0.553016 -vt 0.625896 0.071491 -vt 0.814153 0.731675 -vt 0.754704 0.732862 -vt 0.807643 0.713695 -vt 0.837372 0.482857 -vt 0.629071 0.417250 -vt 0.837372 0.417250 -vt 0.695254 0.731675 -vt 0.701764 0.713695 -vt 0.837372 0.351644 -vt 0.648824 0.694528 -vt 0.629071 0.351644 -vt 0.837372 0.286037 -vt 0.860612 0.695197 -vt 0.814182 0.732345 -vt 0.807672 0.714365 -vt 0.629071 0.286037 -vt 0.837372 0.220430 -vt 0.754732 0.733532 -vt 0.629071 0.220430 -vt 0.837372 0.154823 -vt 0.695283 0.732345 -vt 0.701793 0.714365 -vt 0.629071 0.154823 -vt 0.837372 0.089217 -vt 0.648853 0.695197 -vt 0.629071 0.089217 -vt 0.837372 0.023610 -vt 0.860583 0.694528 -vt 0.629071 0.548464 -vt 0.837372 0.548464 -vt 0.636324 0.548220 -vt 0.705538 0.491917 -vt 0.705538 0.548220 -vt 0.705538 0.154102 -vt 0.636324 0.097799 -vt 0.705538 0.097799 -vt 0.636324 0.210405 -vt 0.705538 0.210405 -vt 0.636324 0.266707 -vt 0.705538 0.266707 -vt 0.636324 0.323010 -vt 0.705538 0.323010 -vt 0.636324 0.379312 -vt 0.705538 0.379312 -vt 0.636324 0.435615 -vt 0.705538 0.435615 -vt 0.636324 0.491917 -vt 0.695333 0.731288 -vt 0.754783 0.732474 -vt 0.754783 0.759036 -vt 0.814233 0.731288 -vt 0.860662 0.694140 -vt 0.877667 0.714545 -vt 0.649050 0.695197 -vt 0.695480 0.732345 -vt 0.632046 0.715602 -vt 0.754930 0.733532 -vt 0.754930 0.760094 -vt 0.814379 0.732345 -vt 0.860809 0.695197 -vt 0.877813 0.715602 -vt 0.648904 0.694140 -vt 0.631899 0.714545 -vt 0.900124 0.071811 -vt 0.902327 0.912035 -vt 0.960283 0.899046 -vt 0.902327 0.922061 -vt 0.900124 0.140016 -vt 0.901890 0.765040 -vt 0.837572 0.744650 -vt 0.901890 0.748146 -vt 0.900124 0.208571 -vt 0.966209 0.744650 -vt 0.953907 0.786586 -vt 0.900124 0.277204 -vt 0.902327 0.911782 -vt 0.844371 0.898793 -vt 0.850310 0.890236 -vt 0.900124 0.345738 -vt 0.975890 0.839400 -vt 0.966645 0.745448 -vt 0.984289 0.847721 -vt 0.900124 0.413996 -vt 0.844371 0.899046 -vt 0.850310 0.890489 -vt 0.900124 0.481829 -vt 0.876005 0.550176 -vt 0.828328 0.838603 -vt 0.849874 0.786586 -vt 0.900124 0.004636 -vt 0.960283 0.898792 -vt 0.902327 0.921808 -vt 0.711854 0.496239 -vt 0.631181 0.439936 -vt 0.711854 0.439936 -vt 0.954344 0.891417 -vt 0.960283 0.899974 -vt 0.711854 0.383634 -vt 0.820365 0.846792 -vt 0.828764 0.838472 -vt 0.631181 0.383634 -vt 0.711854 0.327331 -vt 0.849874 0.890620 -vt 0.819929 0.846923 -vt 0.631181 0.327331 -vt 0.711854 0.271028 -vt 0.954344 0.890236 -vt 0.984289 0.846539 -vt 0.631181 0.271028 -vt 0.711854 0.214726 -vt 0.902327 0.912963 -vt 0.902327 0.922989 -vt 0.631181 0.214726 -vt 0.711854 0.158423 -vt 0.838009 0.744520 -vt 0.850310 0.786455 -vt 0.631181 0.158423 -vt 0.711854 0.102121 -vt 0.901891 0.912166 -vt 0.843935 0.899176 -vt 0.631181 0.552542 -vt 0.711854 0.552541 -vt 0.975890 0.838219 -vt 0.966645 0.744267 -vt 0.397199 0.874901 -vt 0.482061 0.810488 -vt 0.482061 0.874901 -vt 0.397199 0.810488 -vt 0.482061 0.706705 -vt 0.397199 0.706705 -vt 0.482061 0.649202 -vt 0.397199 0.649202 -vt 0.482061 0.586843 -vt 0.397199 0.586843 -vt 0.482061 0.524485 -vt 0.397199 0.524485 -vt 0.482061 0.466981 -vt 0.397199 0.466981 -vt 0.482061 0.363198 -vt 0.397199 0.939314 -vt 0.482061 0.939314 -vt 0.396382 0.874901 -vt 0.311267 0.810488 -vt 0.396382 0.810488 -vt 0.396382 0.706705 -vt 0.311267 0.706705 -vt 0.396382 0.649202 -vt 0.311267 0.649202 -vt 0.396382 0.586843 -vt 0.311267 0.586843 -vt 0.396382 0.524485 -vt 0.311267 0.524485 -vt 0.396382 0.466981 -vt 0.311267 0.363198 -vt 0.396382 0.363198 -vt 0.311267 0.939314 -vt 0.396382 0.939314 -vt 0.902327 0.765837 -vt 0.838009 0.745448 -vt 0.902327 0.748944 -vt 0.954344 0.787383 -vt 0.820365 0.846539 -vt 0.828764 0.838219 -vt 0.975453 0.838603 -vt 0.983852 0.846923 -vt 0.954344 0.890489 -vt 0.984289 0.846793 -vt 0.828764 0.839400 -vt 0.850310 0.787383 -vt 0.838009 0.744267 -vt 0.850310 0.786202 -vt 0.953907 0.890619 -vt 0.959846 0.899176 -vt 0.975890 0.838472 -vt 0.966645 0.744520 -vt 0.850310 0.891417 -vt 0.820365 0.847721 -vt 0.902327 0.764656 -vt 0.954344 0.786202 -vt 0.902327 0.747763 -vt 0.901891 0.922191 -vt 0.902327 0.764909 -vt 0.902327 0.748016 -vt 0.954344 0.786455 -vt 0.844371 0.899974 -vt 0.640899 0.140025 -vt 0.663174 0.198878 -vt 0.640899 0.198878 -vt 0.640899 0.081173 -vt 0.663175 0.140025 -vt 0.640899 0.493140 -vt 0.663174 0.551992 -vt 0.640899 0.551992 -vt 0.640899 0.434287 -vt 0.663174 0.493140 -vt 0.736235 0.979788 -vt 0.680093 0.989178 -vt 0.683934 0.979737 -vt 0.637595 0.946681 -vt 0.646986 0.942722 -vt 0.637595 0.886581 -vt 0.647035 0.890422 -vt 0.680092 0.844083 -vt 0.684051 0.853475 -vt 0.740193 0.844085 -vt 0.736352 0.853526 -vt 0.773300 0.890541 -vt 0.782692 0.886581 -vt 0.782692 0.946682 -vt 0.773251 0.942841 -vt 0.740194 0.989180 -vt 0.731842 0.969217 -vt 0.688303 0.969155 -vt 0.657557 0.938328 -vt 0.657617 0.894790 -vt 0.688445 0.864046 -vt 0.731984 0.864107 -vt 0.762729 0.894934 -vt 0.762669 0.938473 -vt 0.723236 0.948412 -vt 0.678362 0.929721 -vt 0.697051 0.884851 -vt 0.741925 0.903542 -vt 0.741872 0.929847 -vt 0.799881 0.604423 -vt 0.785094 0.666531 -vt 0.777359 0.658796 -vt 0.722987 0.692257 -vt 0.722987 0.681318 -vt 0.660879 0.666531 -vt 0.668614 0.658796 -vt 0.635153 0.604424 -vt 0.646092 0.604424 -vt 0.799881 0.604346 -vt 0.785094 0.666454 -vt 0.777359 0.658718 -vt 0.722987 0.681240 -vt 0.722987 0.692179 -vt 0.660879 0.666454 -vt 0.668614 0.658718 -vt 0.646092 0.604346 -vt 0.635153 0.604346 -vt 0.663174 0.257730 -vt 0.640899 0.257730 -vt 0.663174 0.316582 -vt 0.640899 0.316582 -vt 0.663174 0.375435 -vt 0.640899 0.375435 -vt 0.663174 0.434287 -vt 0.625999 0.139796 -vt 0.642973 0.084114 -vt 0.662059 0.142357 -vt 0.642973 0.142357 -vt 0.662059 0.200599 -vt 0.642973 0.200599 -vt 0.662059 0.258841 -vt 0.642973 0.258841 -vt 0.662059 0.317083 -vt 0.642973 0.317083 -vt 0.723487 0.680169 -vt 0.660957 0.666602 -vt 0.669679 0.657881 -vt 0.777296 0.657881 -vt 0.723487 0.692503 -vt 0.799585 0.604072 -vt 0.786018 0.666602 -vt 0.669775 0.658077 -vt 0.635153 0.604268 -vt 0.647487 0.604268 -vt 0.723584 0.680365 -vt 0.661054 0.666798 -vt 0.777393 0.658077 -vt 0.723584 0.692699 -vt 0.799681 0.604268 -vt 0.786114 0.666798 -vt 0.635056 0.604072 -vt 0.647390 0.604072 -vt 0.642973 0.491810 -vt 0.662059 0.550052 -vt 0.642973 0.550052 -vt 0.642973 0.433568 -vt 0.662059 0.491810 -vt 0.642973 0.375326 -vt 0.662059 0.433568 -vt 0.662059 0.375326 -vt 0.625967 0.485397 -vt 0.625560 0.345878 -vt 0.624550 0.000408 -vt 0.639834 0.945689 -vt 0.639834 0.887447 -vt 0.681018 0.846264 -vt 0.780443 0.887447 -vt 0.739260 0.986873 -vt 0.625795 0.004394 -vt 0.754704 0.759424 -vt 0.629071 0.482857 -vt 0.631819 0.714933 -vt 0.877616 0.715602 -vt 0.754732 0.760094 -vt 0.631849 0.715602 -vt 0.629071 0.023610 -vt 0.877587 0.714933 -vt 0.636324 0.154102 -vt 0.701844 0.713307 -vt 0.807723 0.713307 -vt 0.701990 0.714365 -vt 0.807869 0.714365 -vt 0.900124 0.549107 -vt 0.631181 0.496239 -vt 0.631181 0.102121 -vt 0.397199 0.363198 -vt 0.311267 0.874901 -vt 0.311267 0.466981 -vt 0.663175 0.081173 -vt 0.810820 0.604423 -vt 0.810820 0.604346 -vt 0.662059 0.084114 -vt 0.811918 0.604072 -vt 0.812015 0.604268 -vn 0.0000 0.0000 1.0000 -vn 1.0000 -0.0011 0.0000 -vn 0.7708 0.6371 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 -0.0011 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.7759 -0.6309 0.0000 -vn 0.7759 -0.6309 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.7708 0.6371 0.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.7620 0.6475 0.0000 -vn 0.7620 0.6475 0.0000 -vn 0.7620 -0.6475 -0.0000 -vn -0.7620 -0.6475 -0.0000 -vn 0.0000 -0.7621 -0.6475 -vn 0.0000 0.3422 -0.9396 -vn 0.0000 -0.3429 0.9394 -vn 0.0000 -0.9440 -0.3300 -vn 0.0000 0.0000 0.0000 -vn 0.8660 0.0000 -0.5000 -vn 0.8660 0.0000 0.5000 -vn -0.8660 0.0000 0.5000 -vn -0.8660 0.0000 -0.5000 -vn 0.0000 -0.8660 -0.5000 -vn 0.0000 -0.8660 0.5000 -vn 0.0000 0.8660 0.5000 -vn 0.0000 0.8660 -0.5000 -vn 0.7071 -0.7071 0.0000 -vn 0.7071 0.7071 0.0000 -vn -0.7071 0.7071 0.0000 -vn -0.7071 -0.7071 0.0000 -vn 0.0362 -0.0362 0.9987 -vn 0.0362 0.0362 0.9987 -vn -0.0362 0.0362 0.9987 -vn -0.6849 -0.6849 -0.2488 -vn 0.0000 -0.9685 -0.2488 -vn -0.9685 -0.0000 -0.2488 -vn -0.6849 0.6849 -0.2488 -vn -0.0000 0.9685 -0.2488 -vn 0.6849 0.6849 -0.2488 -vn 0.9685 0.0000 -0.2488 -vn 0.6849 -0.6849 -0.2488 -vn -0.6831 -0.6831 0.2586 -vn -0.0000 -0.9660 0.2586 -vn -0.9660 0.0000 0.2586 -vn -0.6831 0.6831 0.2586 -vn 0.0000 0.9660 0.2586 -vn 0.6831 0.6831 0.2586 -vn 0.9660 0.0000 0.2586 -vn 0.6831 -0.6831 0.2586 -vn 0.0000 -0.9856 0.1689 -vn 0.1560 -0.8391 0.5211 -vn 0.1297 -0.9916 0.0000 -vn 0.8391 -0.1560 0.5211 -vn 0.9856 0.0000 0.1689 -vn 0.9916 -0.1297 0.0000 -vn 0.8391 0.1560 0.5211 -vn 0.9916 0.1297 0.0000 -vn 0.1560 0.8391 0.5211 -vn -0.0000 0.9856 0.1689 -vn 0.1297 0.9916 0.0000 -vn -0.1560 0.8391 0.5211 -vn -0.1297 0.9916 0.0000 -vn -0.8391 0.1560 0.5211 -vn -0.9856 0.0000 0.1689 -vn -0.9916 0.1297 0.0000 -vn -0.8391 -0.1560 0.5211 -vn -0.9916 -0.1297 0.0000 -vn -0.1560 -0.8391 0.5211 -vn -0.1297 -0.9916 0.0000 -vn 0.0000 -0.9856 -0.1689 -vn 0.1560 -0.8391 -0.5211 -vn 0.1031 -0.7878 -0.6073 -vn 0.8391 -0.1560 -0.5211 -vn 0.9856 0.0000 -0.1689 -vn 0.7878 -0.1031 -0.6073 -vn 0.8391 0.1560 -0.5211 -vn 0.7878 0.1031 -0.6073 -vn 0.1560 0.8391 -0.5211 -vn -0.0000 0.9856 -0.1689 -vn 0.1031 0.7878 -0.6073 -vn -0.1560 0.8391 -0.5211 -vn -0.1031 0.7878 -0.6073 -vn -0.8391 0.1560 -0.5211 -vn -0.9856 0.0000 -0.1689 -vn -0.7878 0.1031 -0.6073 -vn -0.8391 -0.1560 -0.5211 -vn -0.7878 -0.1031 -0.6073 -vn -0.1560 -0.8391 -0.5211 -vn -0.1031 -0.7878 -0.6073 -vn -0.0543 -0.9985 0.0000 -vn 0.9854 -0.1700 0.0000 -vn 0.9916 0.1295 0.0000 -vn 0.6883 0.7255 0.0000 -vn -0.6883 0.7255 0.0000 -vn -0.9916 0.1295 0.0000 -vn -0.9854 -0.1700 0.0000 -vn 0.0543 -0.9985 0.0000 -vn 0.0000 -0.3856 0.9227 -vn 0.3323 -0.3323 0.8827 -vn 0.2727 -0.2727 0.9227 -vn 0.4699 -0.0000 0.8827 -vn 0.3856 -0.0000 0.9227 -vn 0.3323 0.3323 0.8827 -vn 0.2727 0.2727 0.9227 -vn 0.0000 0.4699 0.8827 -vn 0.0000 0.3856 0.9227 -vn -0.3323 0.3323 0.8827 -vn -0.2727 0.2727 0.9227 -vn -0.3856 -0.0000 0.9227 -vn -0.4699 -0.0000 0.8827 -vn -0.3323 -0.3323 0.8827 -vn -0.2727 -0.2727 0.9227 -vn 0.0000 -0.4699 0.8827 -vn 0.0000 -0.1839 0.9829 -vn 0.1300 -0.1300 0.9829 -vn 0.1839 -0.0000 0.9829 -vn 0.1300 0.1300 0.9829 -vn -0.0000 0.1839 0.9829 -vn -0.1300 0.1300 0.9829 -vn -0.1839 -0.0000 0.9829 -vn -0.1300 -0.1300 0.9829 -vn 0.0000 -0.0512 0.9987 -vn 0.0512 -0.0000 0.9987 -vn 0.0000 0.0512 0.9987 -vn -0.0512 0.0000 0.9987 -vn -0.0362 -0.0362 0.9987 -vn 0.1031 -0.7878 0.6073 -vn 0.7878 -0.1031 0.6073 -vn 0.7878 0.1031 0.6073 -vn 0.1031 0.7878 0.6073 -vn -0.1031 0.7878 0.6073 -vn -0.7878 0.1031 0.6073 -vn -0.7878 -0.1031 0.6073 -vn -0.1031 -0.7878 0.6073 -s off -f 225/1/1 226/2/1 227/3/1 -f 228/4/2 229/5/2 225/6/2 -f 228/4/3 230/7/3 231/8/3 -f 232/9/4 228/10/4 233/11/4 -f 234/12/5 232/13/5 226/14/5 -f 235/15/6 229/5/6 236/16/6 -f 227/17/7 237/18/7 238/19/7 -f 233/20/8 239/21/8 240/22/8 -f 233/20/9 227/17/9 238/19/9 -f 226/14/10 241/23/10 242/24/10 -f 231/8/11 239/21/11 243/25/11 -f 242/24/12 237/18/12 244/26/12 -f 245/27/1 246/28/1 247/29/1 -f 248/30/2 245/31/2 249/32/2 -f 249/32/3 250/33/3 251/34/3 -f 252/35/4 249/36/4 253/37/4 -f 254/38/5 252/39/5 246/40/5 -f 255/41/6 256/42/6 248/30/6 -f 247/43/7 257/44/7 258/45/7 -f 253/46/8 259/47/8 260/48/8 -f 253/46/9 247/43/9 258/45/9 -f 246/40/10 261/49/10 262/50/10 -f 251/34/11 259/47/11 263/51/11 -f 262/50/12 257/44/12 264/52/12 -f 227/3/1 240/53/1 225/1/1 -f 240/53/1 239/54/1 230/55/1 -f 225/1/1 240/53/1 230/55/1 -f 225/1/1 229/56/1 234/57/1 -f 226/2/1 242/58/1 227/3/1 -f 242/58/1 244/59/1 227/3/1 -f 225/1/1 234/57/1 226/2/1 -f 228/4/2 236/16/2 229/5/2 -f 228/4/3 225/6/3 230/7/3 -f 233/11/4 238/60/4 232/9/4 -f 238/60/4 237/61/4 241/62/4 -f 232/9/4 238/60/4 241/62/4 -f 232/9/4 235/63/4 236/64/4 -f 228/10/4 231/65/4 233/11/4 -f 231/65/4 243/66/4 233/11/4 -f 232/9/4 236/64/4 228/10/4 -f 234/12/5 235/67/5 232/13/5 -f 235/15/6 234/68/6 229/5/6 -f 227/17/7 244/26/7 237/18/7 -f 233/20/8 243/25/8 239/21/8 -f 233/20/9 240/22/9 227/17/9 -f 226/14/10 232/13/10 241/23/10 -f 231/8/11 230/7/11 239/21/11 -f 242/24/12 241/23/12 237/18/12 -f 247/29/1 260/69/1 245/27/1 -f 260/69/1 259/70/1 250/71/1 -f 245/27/1 260/69/1 250/71/1 -f 245/27/1 256/72/1 254/73/1 -f 246/28/1 262/74/1 247/29/1 -f 262/74/1 264/75/1 247/29/1 -f 245/27/1 254/73/1 246/28/1 -f 248/30/2 256/42/2 245/31/2 -f 249/32/3 245/31/3 250/33/3 -f 253/37/4 258/76/4 252/35/4 -f 258/76/4 257/77/4 261/78/4 -f 252/35/4 258/76/4 261/78/4 -f 252/35/4 255/79/4 248/80/4 -f 249/36/4 251/81/4 253/37/4 -f 251/81/4 263/82/4 253/37/4 -f 252/35/4 248/80/4 249/36/4 -f 254/38/5 255/83/5 252/39/5 -f 255/41/6 254/84/6 256/42/6 -f 247/43/7 264/52/7 257/44/7 -f 253/46/8 263/51/8 259/47/8 -f 253/46/9 260/48/9 247/43/9 -f 246/40/10 252/39/10 261/49/10 -f 251/34/11 250/33/11 259/47/11 -f 262/50/12 261/49/12 257/44/12 -f 265/85/13 266/86/13 267/87/13 -f 268/88/14 269/89/14 270/90/14 -f 271/91/9 272/92/9 273/93/9 -f 270/90/15 274/94/15 272/92/15 -f 272/95/4 271/96/4 275/97/4 -f 276/98/12 277/99/12 278/100/12 -f 267/87/16 271/101/16 279/102/16 -f 275/103/6 280/104/6 268/88/6 -f 281/105/11 282/106/11 283/107/11 -f 284/108/1 285/109/1 286/110/1 -f 286/111/11 287/112/11 288/113/11 -f 281/114/9 278/115/9 277/116/9 -f 280/117/1 276/118/1 289/119/1 -f 287/120/17 290/121/17 291/122/17 -f 288/123/18 291/122/18 278/115/18 -f 285/109/19 292/124/19 286/110/19 -f 276/125/6 284/108/6 289/126/6 -f 273/127/1 283/128/1 293/129/1 -f 277/130/1 294/131/1 281/132/1 -f 295/133/12 296/134/12 277/135/12 -f 295/136/20 283/137/20 282/138/20 -f 282/138/9 296/139/9 295/136/9 -f 265/85/13 275/103/13 266/86/13 -f 268/88/14 280/104/14 269/89/14 -f 272/92/9 274/94/9 297/140/9 -f 274/94/9 281/141/9 297/140/9 -f 277/142/9 279/143/9 273/93/9 -f 279/143/9 271/91/9 273/93/9 -f 272/92/9 297/140/9 273/93/9 -f 270/90/15 269/89/15 274/94/15 -f 266/144/4 275/97/4 271/96/4 -f 275/97/4 268/145/4 272/95/4 -f 268/145/4 270/146/4 272/95/4 -f 278/100/12 291/147/12 285/148/12 -f 291/147/12 290/149/12 285/148/12 -f 285/148/12 298/150/12 278/100/12 -f 298/150/12 276/98/12 278/100/12 -f 267/87/16 266/86/16 271/101/16 -f 275/103/6 265/85/6 280/104/6 -f 283/107/21 297/151/21 281/105/21 -f 281/105/11 294/152/11 282/106/11 -f 284/108/1 298/153/1 285/109/1 -f 288/113/11 281/154/11 289/155/11 -f 289/155/11 284/156/11 288/113/11 -f 284/156/11 286/111/11 288/113/11 -f 286/111/11 292/157/11 287/112/11 -f 281/114/9 288/123/9 278/115/9 -f 274/158/1 269/159/1 280/117/1 -f 280/117/1 265/160/1 276/118/1 -f 265/160/1 267/161/1 279/162/1 -f 276/118/1 265/160/1 279/162/1 -f 279/162/1 277/163/1 276/118/1 -f 281/164/1 274/158/1 289/119/1 -f 274/158/1 280/117/1 289/119/1 -f 287/120/17 292/124/17 290/121/17 -f 288/123/18 287/120/18 291/122/18 -f 285/109/19 290/121/19 292/124/19 -f 276/125/6 298/153/6 284/108/6 -f 273/127/1 297/165/1 283/128/1 -f 277/130/1 296/166/1 294/131/1 -f 277/135/21 273/167/21 293/168/21 -f 293/168/12 295/133/12 277/135/12 -f 295/136/20 293/169/20 283/137/20 -f 282/138/9 294/170/9 296/139/9 -s 1 -f 1/171/4 2/172/22 3/173/4 -f 4/174/22 5/175/23 2/172/22 -f 6/176/23 7/177/1 5/175/23 -f 8/178/1 9/179/24 7/180/1 -f 1/181/6 10/182/6 6/183/6 -f 10/184/24 11/185/25 9/179/24 -f 12/186/25 3/173/4 11/185/25 -f 2/187/9 7/188/9 11/189/9 -f 1/171/4 4/174/22 2/172/22 -f 4/174/22 6/176/23 5/175/23 -f 6/176/23 8/190/1 7/177/1 -f 8/178/1 10/184/24 9/179/24 -f 6/183/6 4/191/6 1/181/6 -f 1/181/6 12/192/6 10/182/6 -f 10/182/6 8/193/6 6/183/6 -f 10/184/24 12/186/25 11/185/25 -f 12/186/25 1/171/4 3/173/4 -f 11/189/9 3/194/9 2/187/9 -f 2/187/9 5/195/9 7/188/9 -f 7/188/9 9/196/9 11/189/9 -f 13/197/4 14/198/26 15/199/4 -f 16/200/26 17/201/27 14/198/26 -f 18/202/27 19/203/1 17/201/27 -f 20/204/1 21/205/28 19/206/1 -f 13/207/11 22/208/11 18/209/11 -f 22/210/28 23/211/29 21/205/28 -f 24/212/29 15/199/4 23/211/29 -f 14/213/12 19/214/12 23/215/12 -f 13/197/4 16/200/26 14/198/26 -f 16/200/26 18/202/27 17/201/27 -f 18/202/27 20/216/1 19/203/1 -f 20/204/1 22/210/28 21/205/28 -f 18/209/11 16/217/11 13/207/11 -f 13/207/11 24/218/11 22/208/11 -f 22/208/11 20/219/11 18/209/11 -f 22/210/28 24/212/29 23/211/29 -f 24/212/29 13/197/4 15/199/4 -f 23/215/12 15/220/12 14/213/12 -f 14/213/12 17/221/12 19/214/12 -f 19/214/12 21/222/12 23/215/12 -f 25/223/30 26/224/11 27/225/30 -f 26/224/11 28/226/31 29/227/31 -f 28/226/31 30/228/6 29/227/31 -f 31/229/6 32/230/32 30/228/6 -f 33/231/32 34/232/12 32/230/32 -f 35/233/12 36/234/33 34/232/12 -f 37/235/4 38/236/4 39/237/4 -f 40/238/33 41/239/9 36/240/33 -f 42/241/34 43/242/35 44/243/36 -f 45/244/37 46/245/38 47/246/37 -f 48/247/39 47/248/37 49/249/39 -f 50/250/40 49/249/39 51/251/40 -f 52/252/41 51/251/40 53/253/41 -f 54/254/42 53/253/41 55/255/42 -f 56/256/43 55/255/42 57/257/43 -f 58/258/44 57/257/43 59/259/44 -f 60/260/38 59/259/44 46/245/38 -f 61/261/33 62/262/9 63/263/33 -f 64/264/12 63/265/33 65/266/12 -f 66/267/32 65/266/12 67/268/32 -f 68/269/6 67/268/32 69/270/6 -f 70/271/31 69/270/6 71/272/31 -f 72/273/11 71/272/31 73/274/11 -f 74/275/30 73/274/11 75/276/30 -f 76/277/9 75/276/30 62/262/9 -f 36/240/45 76/277/46 61/261/45 -f 34/232/47 61/278/45 64/264/47 -f 32/230/48 64/264/47 66/267/48 -f 30/228/49 66/267/48 68/269/49 -f 70/271/50 30/228/49 68/269/49 -f 72/273/51 29/227/50 70/271/50 -f 74/275/52 26/224/51 72/273/51 -f 41/239/46 74/275/52 76/277/46 -f 77/279/11 59/259/30 57/257/11 -f 78/280/31 57/257/11 55/255/31 -f 79/281/6 55/255/31 53/253/6 -f 80/282/32 53/253/6 51/251/32 -f 81/283/12 51/251/32 49/249/12 -f 82/284/33 49/249/12 47/248/33 -f 83/285/9 47/246/33 46/245/9 -f 84/286/53 85/287/54 86/288/9 -f 84/289/9 87/290/55 88/291/55 -f 85/287/56 89/292/57 90/293/11 -f 87/290/58 89/294/11 88/291/58 -f 89/292/57 91/295/59 90/293/11 -f 92/296/11 93/297/60 89/294/11 -f 91/298/61 94/299/62 95/300/6 -f 96/301/63 94/302/6 93/297/63 -f 94/299/62 97/303/64 95/300/6 -f 98/304/6 99/305/65 94/302/6 -f 97/303/66 100/306/67 101/307/12 -f 102/308/68 100/309/12 99/305/68 -f 100/306/67 103/310/69 101/307/12 -f 104/311/12 105/312/70 100/309/12 -f 103/313/71 84/286/53 86/288/9 -f 106/314/72 84/289/9 105/315/72 -f 103/316/33 107/317/9 108/318/33 -f 109/319/12 103/320/33 108/321/33 -f 97/322/32 109/319/12 110/323/32 -f 95/324/6 110/323/32 111/325/6 -f 91/326/31 111/325/6 112/327/31 -f 90/328/11 112/327/31 113/329/11 -f 85/330/30 113/329/11 114/331/30 -f 86/332/9 114/331/30 107/317/9 -f 115/333/73 116/334/74 87/335/75 -f 116/334/76 92/336/77 87/335/78 -f 92/336/77 117/337/79 96/338/80 -f 117/339/81 98/340/82 96/341/83 -f 98/340/82 118/342/84 102/343/85 -f 118/342/86 104/344/87 102/343/88 -f 104/344/87 119/345/89 106/346/90 -f 119/347/91 115/333/73 106/348/92 -f 120/349/9 58/258/30 60/260/9 -f 69/350/4 121/351/4 122/352/4 -f 123/353/30 56/256/11 58/258/30 -f 120/354/1 124/355/1 125/356/1 -f 126/357/11 54/254/31 56/256/11 -f 120/354/1 127/358/1 123/359/1 -f 128/360/31 52/252/6 54/254/31 -f 129/361/1 130/362/1 131/363/1 -f 132/364/6 50/250/32 52/252/6 -f 109/365/4 133/366/4 134/367/4 -f 135/368/32 48/247/12 50/250/32 -f 69/350/4 136/369/4 71/370/4 -f 137/371/12 45/372/33 48/247/12 -f 137/373/1 124/355/1 138/374/1 -f 138/375/33 60/260/9 45/244/33 -f 129/361/1 139/376/1 140/377/1 -f 141/378/9 142/379/30 116/380/30 -f 110/381/4 134/367/4 143/382/4 -f 142/379/30 144/383/11 116/380/30 -f 71/370/4 145/384/4 73/385/4 -f 146/386/11 117/387/31 144/383/11 -f 135/388/1 147/389/1 137/373/1 -f 148/390/31 149/391/6 117/387/31 -f 148/392/1 150/393/1 139/376/1 -f 129/394/6 118/395/32 149/391/6 -f 111/396/4 143/382/4 151/397/4 -f 131/398/32 152/399/12 118/395/32 -f 73/385/4 153/400/4 75/401/4 -f 154/402/12 119/403/33 152/399/12 -f 132/404/1 155/405/1 135/388/1 -f 156/406/33 141/378/9 119/407/33 -f 146/408/1 157/409/1 150/393/1 -f 158/410/9 127/411/93 125/412/9 -f 159/413/94 160/414/95 127/411/94 -f 161/415/95 162/416/96 160/414/95 -f 163/417/96 164/418/6 162/416/96 -f 151/419/6 155/420/97 164/418/6 -f 143/421/97 147/422/98 155/420/97 -f 134/423/98 124/424/99 147/422/98 -f 133/425/100 125/412/9 124/426/100 -f 165/427/9 153/428/93 157/429/93 -f 153/428/94 150/430/95 157/429/94 -f 145/431/95 139/432/96 150/430/95 -f 136/433/96 140/434/6 139/432/96 -f 122/435/6 130/436/97 140/434/6 -f 121/437/97 166/438/98 130/436/97 -f 166/438/98 167/439/99 168/440/99 -f 167/441/100 165/427/9 168/442/100 -f 107/443/4 159/444/4 158/445/4 -f 107/443/4 133/366/4 108/446/4 -f 131/363/1 166/447/1 154/448/1 -f 126/449/1 127/358/1 160/450/1 -f 67/451/4 169/452/4 121/351/4 -f 113/453/4 159/444/4 114/454/4 -f 154/448/1 168/455/1 156/456/1 -f 128/457/1 160/450/1 162/458/1 -f 65/459/4 167/460/4 169/452/4 -f 112/461/4 161/462/4 113/453/4 -f 170/463/1 157/409/1 142/464/1 -f 170/463/1 168/455/1 165/465/1 -f 132/404/1 162/458/1 164/466/1 -f 62/467/4 153/400/4 171/468/4 -f 62/467/4 167/460/4 63/469/4 -f 111/396/4 163/470/4 112/461/4 -f 172/471/30 173/472/11 174/473/11 -f 175/474/9 176/475/30 172/471/30 -f 177/476/33 178/477/9 175/478/9 -f 179/479/12 180/480/33 177/476/33 -f 181/481/101 182/482/102 183/483/103 -f 183/483/103 179/484/104 184/485/105 -f 184/485/105 177/486/106 185/487/107 -f 185/487/107 175/488/108 186/489/109 -f 186/489/109 172/490/110 187/491/111 -f 188/492/112 172/490/110 174/493/113 -f 188/492/112 189/494/114 190/495/115 -f 190/495/115 191/496/116 181/481/101 -f 192/497/117 183/483/103 193/498/118 -f 193/498/118 184/485/105 194/499/119 -f 194/499/119 185/487/107 195/500/120 -f 195/500/120 186/489/109 196/501/121 -f 196/501/121 187/491/111 197/502/122 -f 198/503/123 187/491/111 188/492/112 -f 198/503/123 190/495/115 199/504/124 -f 192/497/117 190/495/115 181/481/101 -f 200/505/125 193/498/118 42/241/34 -f 201/506/126 193/498/118 194/499/119 -f 201/506/126 195/500/120 43/242/35 -f 202/507/127 195/500/120 196/501/121 -f 202/507/127 197/502/122 44/243/36 -f 44/243/36 198/503/123 203/508/128 -f 203/508/128 199/504/124 204/509/129 -f 200/505/125 199/504/124 192/497/117 -f 205/510/1 206/511/1 207/512/1 -f 207/512/1 77/513/1 208/514/1 -f 208/514/1 78/515/1 180/516/1 -f 180/516/1 79/517/1 178/518/1 -f 178/519/1 80/520/1 176/521/1 -f 173/522/1 80/520/1 81/523/1 -f 173/522/1 82/524/1 209/525/1 -f 205/526/1 82/524/1 83/527/1 -f 174/473/11 209/528/31 189/529/31 -f 189/529/31 205/530/6 191/531/6 -f 191/531/6 207/532/32 182/533/32 -f 182/533/32 208/534/12 179/479/12 -f 206/535/30 46/245/9 59/259/30 -f 210/536/31 211/537/11 37/538/11 -f 37/538/11 212/539/30 213/540/30 -f 213/540/30 214/541/9 38/542/9 -f 38/542/9 215/543/33 216/544/33 -f 217/545/4 218/546/4 219/547/4 -f 220/548/4 25/549/4 217/545/4 -f 215/550/4 221/551/4 220/548/4 -f 214/552/4 28/553/4 215/554/4 -f 212/555/4 31/556/4 214/552/4 -f 211/557/4 33/558/4 212/555/4 -f 222/559/4 35/560/4 211/557/4 -f 219/547/4 40/561/4 222/562/4 -f 223/563/6 222/564/31 210/565/31 -f 224/566/32 219/567/6 223/563/6 -f 39/568/12 217/569/32 224/566/32 -f 216/544/33 220/570/12 39/568/12 -f 218/571/9 27/225/30 41/239/9 -f 25/223/30 221/572/11 26/224/11 -f 26/224/11 221/572/11 28/226/31 -f 28/226/31 31/229/6 30/228/6 -f 31/229/6 33/231/32 32/230/32 -f 33/231/32 35/233/12 34/232/12 -f 35/233/12 40/573/33 36/234/33 -f 39/237/4 224/574/4 37/235/4 -f 224/574/4 223/575/4 37/235/4 -f 223/575/4 210/576/4 37/235/4 -f 37/235/4 213/577/4 38/236/4 -f 38/236/4 216/578/4 39/237/4 -f 40/238/33 218/571/9 41/239/9 -f 204/509/129 200/505/125 42/241/34 -f 42/241/34 201/506/126 43/242/35 -f 43/242/35 202/507/127 44/243/36 -f 44/243/36 203/508/128 204/509/129 -f 204/509/129 42/241/34 44/243/36 -f 45/244/37 60/260/38 46/245/38 -f 48/247/39 45/372/37 47/248/37 -f 50/250/40 48/247/39 49/249/39 -f 52/252/41 50/250/40 51/251/40 -f 54/254/42 52/252/41 53/253/41 -f 56/256/43 54/254/42 55/255/42 -f 58/258/44 56/256/43 57/257/43 -f 60/260/38 58/258/44 59/259/44 -f 61/261/33 76/277/9 62/262/9 -f 64/264/12 61/278/33 63/265/33 -f 66/267/32 64/264/12 65/266/12 -f 68/269/6 66/267/32 67/268/32 -f 70/271/31 68/269/6 69/270/6 -f 72/273/11 70/271/31 71/272/31 -f 74/275/30 72/273/11 73/274/11 -f 76/277/9 74/275/30 75/276/30 -f 36/240/45 41/239/46 76/277/46 -f 34/232/47 36/234/45 61/278/45 -f 32/230/48 34/232/47 64/264/47 -f 30/228/49 32/230/48 66/267/48 -f 70/271/50 29/227/50 30/228/49 -f 72/273/51 26/224/51 29/227/50 -f 74/275/52 27/225/52 26/224/51 -f 41/239/46 27/225/52 74/275/52 -f 77/279/11 206/535/30 59/259/30 -f 78/280/31 77/279/11 57/257/11 -f 79/281/6 78/280/31 55/255/31 -f 80/282/32 79/281/6 53/253/6 -f 81/283/12 80/282/32 51/251/32 -f 82/284/33 81/283/12 49/249/12 -f 83/285/9 82/579/33 47/246/33 -f 84/286/53 88/580/130 85/287/54 -f 84/289/9 115/581/9 87/290/55 -f 85/287/56 88/580/131 89/292/57 -f 87/290/58 92/296/11 89/294/11 -f 89/292/57 93/582/132 91/295/59 -f 92/296/11 96/301/60 93/297/60 -f 91/298/61 93/583/133 94/299/62 -f 96/301/63 98/304/6 94/302/6 -f 94/299/62 99/584/134 97/303/64 -f 98/304/6 102/308/65 99/305/65 -f 97/303/66 99/584/135 100/306/67 -f 102/308/68 104/311/12 100/309/12 -f 100/306/67 105/585/136 103/310/69 -f 104/311/12 106/586/70 105/312/70 -f 103/313/71 105/587/137 84/286/53 -f 106/314/72 115/581/9 84/289/9 -f 103/316/33 86/332/9 107/317/9 -f 109/319/12 101/588/12 103/320/33 -f 97/322/32 101/588/12 109/319/12 -f 95/324/6 97/322/32 110/323/32 -f 91/326/31 95/324/6 111/325/6 -f 90/328/11 91/326/31 112/327/31 -f 85/330/30 90/328/11 113/329/11 -f 86/332/9 85/330/30 114/331/30 -f 115/333/73 141/589/9 116/334/74 -f 116/334/76 144/590/11 92/336/77 -f 92/336/77 144/590/11 117/337/79 -f 117/339/81 149/591/6 98/340/82 -f 98/340/82 149/591/6 118/342/84 -f 118/342/86 152/592/12 104/344/87 -f 104/344/87 152/592/12 119/345/89 -f 119/347/91 141/589/9 115/333/73 -f 120/349/9 123/353/30 58/258/30 -f 69/350/4 67/451/4 121/351/4 -f 123/353/30 126/357/11 56/256/11 -f 120/354/1 138/374/1 124/355/1 -f 126/357/11 128/360/31 54/254/31 -f 120/354/1 125/356/1 127/358/1 -f 128/360/31 132/364/6 52/252/6 -f 129/361/1 140/377/1 130/362/1 -f 132/364/6 135/368/32 50/250/32 -f 109/365/4 108/446/4 133/366/4 -f 135/368/32 137/371/12 48/247/12 -f 69/350/4 122/352/4 136/369/4 -f 137/371/12 138/593/33 45/372/33 -f 137/373/1 147/389/1 124/355/1 -f 138/375/33 120/349/9 60/260/9 -f 129/361/1 148/392/1 139/376/1 -f 141/378/9 170/594/9 142/379/30 -f 110/381/4 109/365/4 134/367/4 -f 142/379/30 146/386/11 144/383/11 -f 71/370/4 136/369/4 145/384/4 -f 146/386/11 148/390/31 117/387/31 -f 135/388/1 155/405/1 147/389/1 -f 148/390/31 129/394/6 149/391/6 -f 148/392/1 146/408/1 150/393/1 -f 129/394/6 131/398/32 118/395/32 -f 111/396/4 110/381/4 143/382/4 -f 131/398/32 154/402/12 152/399/12 -f 73/385/4 145/384/4 153/400/4 -f 154/402/12 156/595/33 119/403/33 -f 132/404/1 164/466/1 155/405/1 -f 156/406/33 170/594/9 141/378/9 -f 146/408/1 142/464/1 157/409/1 -f 158/410/9 159/413/93 127/411/93 -f 159/413/94 161/415/95 160/414/95 -f 161/415/95 163/417/96 162/416/96 -f 163/417/96 151/419/6 164/418/6 -f 151/419/6 143/421/97 155/420/97 -f 143/421/97 134/423/98 147/422/98 -f 134/423/98 133/596/99 124/424/99 -f 133/425/100 158/410/9 125/412/9 -f 165/427/9 171/597/9 153/428/93 -f 153/428/94 145/431/95 150/430/95 -f 145/431/95 136/433/96 139/432/96 -f 136/433/96 122/435/6 140/434/6 -f 122/435/6 121/437/97 130/436/97 -f 121/437/97 169/598/98 166/438/98 -f 166/438/98 169/598/98 167/439/99 -f 167/441/100 171/597/9 165/427/9 -f 107/443/4 114/454/4 159/444/4 -f 107/443/4 158/445/4 133/366/4 -f 131/363/1 130/362/1 166/447/1 -f 126/449/1 123/359/1 127/358/1 -f 67/451/4 65/459/4 169/452/4 -f 113/453/4 161/462/4 159/444/4 -f 154/448/1 166/447/1 168/455/1 -f 128/457/1 126/449/1 160/450/1 -f 65/459/4 63/469/4 167/460/4 -f 112/461/4 163/470/4 161/462/4 -f 170/463/1 165/465/1 157/409/1 -f 170/463/1 156/456/1 168/455/1 -f 132/404/1 128/457/1 162/458/1 -f 62/467/4 75/401/4 153/400/4 -f 62/467/4 171/468/4 167/460/4 -f 111/396/4 151/397/4 163/470/4 -f 172/471/30 176/475/30 173/472/11 -f 175/474/9 178/599/9 176/475/30 -f 177/476/33 180/480/33 178/477/9 -f 179/479/12 208/534/12 180/480/33 -f 181/481/101 191/496/116 182/482/102 -f 183/483/103 182/482/102 179/484/104 -f 184/485/105 179/484/104 177/486/106 -f 185/487/107 177/486/106 175/488/108 -f 186/489/109 175/488/108 172/490/110 -f 188/492/112 187/491/111 172/490/110 -f 188/492/112 174/493/113 189/494/114 -f 190/495/115 189/494/114 191/496/116 -f 192/497/117 181/481/101 183/483/103 -f 193/498/118 183/483/103 184/485/105 -f 194/499/119 184/485/105 185/487/107 -f 195/500/120 185/487/107 186/489/109 -f 196/501/121 186/489/109 187/491/111 -f 198/503/123 197/502/122 187/491/111 -f 198/503/123 188/492/112 190/495/115 -f 192/497/117 199/504/124 190/495/115 -f 200/505/125 192/497/117 193/498/118 -f 201/506/126 42/241/34 193/498/118 -f 201/506/126 194/499/119 195/500/120 -f 202/507/127 43/242/35 195/500/120 -f 202/507/127 196/501/121 197/502/122 -f 44/243/36 197/502/122 198/503/123 -f 203/508/128 198/503/123 199/504/124 -f 200/505/125 204/509/129 199/504/124 -f 205/510/1 83/600/1 206/511/1 -f 207/512/1 206/511/1 77/513/1 -f 208/514/1 77/513/1 78/515/1 -f 180/516/1 78/515/1 79/517/1 -f 178/519/1 79/601/1 80/520/1 -f 173/522/1 176/521/1 80/520/1 -f 173/522/1 81/523/1 82/524/1 -f 205/526/1 209/525/1 82/524/1 -f 174/473/11 173/472/11 209/528/31 -f 189/529/31 209/528/31 205/530/6 -f 191/531/6 205/530/6 207/532/32 -f 182/533/32 207/532/32 208/534/12 -f 206/535/30 83/285/9 46/245/9 -f 210/536/31 222/602/31 211/537/11 -f 37/538/11 211/537/11 212/539/30 -f 213/540/30 212/539/30 214/541/9 -f 38/542/9 214/541/9 215/543/33 -f 217/545/4 25/549/4 218/546/4 -f 220/548/4 221/551/4 25/549/4 -f 215/550/4 28/603/4 221/551/4 -f 214/552/4 31/556/4 28/553/4 -f 212/555/4 33/558/4 31/556/4 -f 211/557/4 35/560/4 33/558/4 -f 222/559/4 40/604/4 35/560/4 -f 219/547/4 218/546/4 40/561/4 -f 223/563/6 219/567/6 222/564/31 -f 224/566/32 217/569/32 219/567/6 -f 39/568/12 220/570/12 217/569/32 -f 216/544/33 215/543/33 220/570/12 -f 218/571/9 25/223/30 27/225/30 -o Hammer -v 0.032000 0.588845 1.091862 -v 0.032000 0.697419 1.159147 -v 0.032000 0.639309 1.194319 -v -0.032000 0.588845 1.091862 -v -0.032000 0.697419 1.159147 -v -0.032000 0.755530 1.130092 -v 0.032000 0.842695 0.952702 -v -0.032000 0.842695 1.107154 -v 0.032000 0.842695 1.107154 -v 0.032000 0.755530 1.130092 -v -0.032000 0.718828 1.220316 -v 0.032000 0.718828 1.220316 -v 0.068452 0.772351 1.279956 -v -0.068452 0.772351 1.279956 -v -0.068452 0.776939 1.464992 -v 0.068452 0.776939 1.464992 -v -0.068452 0.737179 1.463463 -v 0.068452 0.737179 1.463463 -v -0.068452 0.735650 1.390060 -v 0.068452 0.735650 1.390060 -v 0.068452 0.724945 1.304423 -v -0.068452 0.724945 1.304423 -v -0.032000 0.663776 1.232550 -v 0.032000 0.663776 1.232550 -v -0.032000 0.639309 1.194319 -v -0.032000 0.620958 1.237138 -v 0.032000 0.620958 1.237138 -v -0.032000 0.561319 1.335008 -v 0.032000 0.561319 1.335008 -v -0.032000 0.477211 1.387001 -v 0.032000 0.477211 1.387001 -v -0.032000 0.842695 0.952702 -vt 0.343765 0.934799 -vt 0.350946 0.946383 -vt 0.354698 0.940182 -vt 0.343782 0.934821 -vt 0.350963 0.946405 -vt 0.347864 0.952606 -vt 0.390183 0.954876 -vt 0.397012 0.971356 -vt 0.390183 0.971356 -vt 0.397012 0.980973 -vt 0.390183 0.980973 -vt 0.397012 0.987905 -vt 0.390183 0.987905 -vt 0.397012 0.994820 -vt 0.390183 0.994820 -vt 0.379264 0.964780 -vt 0.387814 0.975498 -vt 0.379264 0.979388 -vt 0.359515 0.979388 -vt 0.359515 0.964780 -vt 0.355269 0.979388 -vt 0.355269 0.964780 -vt 0.347436 0.979388 -vt 0.347436 0.964780 -vt 0.338227 0.964780 -vt 0.338227 0.979388 -vt 0.328157 0.975498 -vt 0.328157 0.968670 -vt 0.397043 0.923988 -vt 0.403872 0.928831 -vt 0.397043 0.928831 -vt 0.403872 0.933801 -vt 0.397043 0.933801 -vt 0.403872 0.946030 -vt 0.397043 0.946030 -vt 0.403872 0.956580 -vt 0.397043 0.956580 -vt 0.403872 0.990249 -vt 0.397043 0.990249 -vt 0.390183 0.923988 -vt 0.397012 0.954876 -vt 0.384495 0.954648 -vt 0.384235 0.950410 -vt 0.376401 0.950426 -vt 0.357473 0.948666 -vt 0.367240 0.949494 -vt 0.358777 0.942792 -vt 0.357490 0.948689 -vt 0.367257 0.949516 -vt 0.364763 0.954633 -vt 0.376418 0.950449 -vt 0.384252 0.950432 -vt 0.384512 0.954670 -vt 0.328921 0.961887 -vt 0.347847 0.952584 -vt 0.345400 0.961884 -vt 0.369708 0.931858 -vt 0.375254 0.922884 -vt 0.359266 0.938223 -vt 0.375271 0.922906 -vt 0.369725 0.931881 -vt 0.359283 0.938246 -vt 0.354715 0.940204 -vt 0.358794 0.942814 -vt 0.345417 0.961907 -vt 0.328938 0.961909 -vt 0.387814 0.968670 -vt 0.403872 0.923988 -vt 0.397012 0.923988 -vt 0.364746 0.954610 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.2545 0.9671 -vn 0.0000 0.4472 0.8944 -vn 0.0000 0.9439 -0.3303 -vn 0.0000 0.7442 -0.6679 -vn 0.0000 0.9997 -0.0248 -vn 0.0000 -0.0384 0.9993 -vn 0.0000 -0.9998 0.0208 -vn 0.0000 -0.9923 0.1240 -vn 0.0000 -0.7615 0.6481 -vn 0.0000 -0.8423 0.5390 -vn 0.0000 0.9191 0.3939 -vn 0.0000 0.8539 0.5204 -vn 0.0000 0.5258 0.8506 -vn 0.0000 -0.9353 -0.3538 -vn 0.0000 -0.4807 -0.8769 -vn 0.9164 -0.0869 -0.3908 -vn -0.9050 -0.1951 -0.3780 -vn 0.9050 -0.1951 -0.3780 -vn -0.9164 -0.0869 -0.3908 -s off -f 299/605/138 300/606/138 301/607/138 -f 302/608/139 303/609/139 304/610/139 -f 305/611/140 306/612/140 307/613/140 -f 307/613/141 304/614/141 308/615/141 -f 308/615/142 303/616/142 300/617/142 -f 300/617/143 309/618/143 310/619/143 -f 311/620/144 309/621/144 312/622/144 -f 311/620/145 313/623/145 314/624/145 -f 314/624/146 315/625/146 316/626/146 -f 316/626/147 317/627/147 318/628/147 -f 319/629/148 317/627/148 320/630/148 -f 319/629/149 321/631/149 322/632/149 -f 322/633/150 323/634/150 301/635/150 -f 301/635/151 324/636/151 325/637/151 -f 325/637/152 326/638/152 327/639/152 -f 327/639/153 328/640/153 329/641/153 -f 329/641/154 302/642/154 299/643/154 -f 299/644/155 330/645/155 305/611/155 -f 314/646/138 316/647/138 318/648/138 -f 310/649/156 319/650/156 322/651/156 -f 309/652/157 320/653/157 312/654/157 -f 317/655/139 315/656/139 313/657/139 -f 299/605/138 305/658/138 308/659/138 -f 305/658/138 307/660/138 308/659/138 -f 327/661/138 329/662/138 299/605/138 -f 301/607/138 325/663/138 299/605/138 -f 325/663/138 327/661/138 299/605/138 -f 310/649/138 322/651/138 300/606/138 -f 322/651/138 301/607/138 300/606/138 -f 299/605/138 308/659/138 300/606/138 -f 302/608/139 328/664/139 326/665/139 -f 326/665/139 324/666/139 302/608/139 -f 324/666/139 323/667/139 302/608/139 -f 323/667/139 321/668/139 303/609/139 -f 321/668/139 309/652/139 303/609/139 -f 306/669/139 330/670/139 304/610/139 -f 330/670/139 302/608/139 304/610/139 -f 302/608/139 323/667/139 303/609/139 -f 305/611/140 330/645/140 306/612/140 -f 307/613/141 306/612/141 304/614/141 -f 308/615/142 304/614/142 303/616/142 -f 300/617/143 303/616/143 309/618/143 -f 311/620/144 310/671/144 309/621/144 -f 311/620/145 312/622/145 313/623/145 -f 314/624/146 313/623/146 315/625/146 -f 316/626/147 315/625/147 317/627/147 -f 319/629/148 318/628/148 317/627/148 -f 319/629/149 320/630/149 321/631/149 -f 322/633/150 321/672/150 323/634/150 -f 301/635/151 323/634/151 324/636/151 -f 325/637/152 324/636/152 326/638/152 -f 327/639/153 326/638/153 328/640/153 -f 329/641/154 328/640/154 302/642/154 -f 299/644/155 302/673/155 330/645/155 -f 318/648/138 319/650/138 311/674/138 -f 311/674/138 314/646/138 318/648/138 -f 310/649/158 311/674/158 319/650/158 -f 309/652/159 321/668/159 320/653/159 -f 313/657/139 312/654/139 317/655/139 -f 312/654/139 320/653/139 317/655/139 -o Gun -v 0.021772 0.858479 -2.163888 -v 0.021772 0.977946 -2.136619 -v 0.021772 0.977946 -1.813800 -v 0.006439 1.069528 -2.025718 -v 0.006439 0.978873 -1.822862 -v 0.006439 0.978924 -2.135519 -v -0.021772 0.977946 -1.813800 -v -0.021772 0.858479 -2.163888 -v -0.021772 0.862374 -1.530190 -v -0.006439 0.979031 -2.135490 -v -0.006439 0.978873 -1.822863 -v -0.006439 1.069528 -2.025718 -v 0.021772 0.977946 -1.776917 -v 0.021772 0.862374 -1.530190 -v -0.021772 0.977946 -2.136619 -v -0.021772 0.977946 -1.776917 -v -0.006439 1.067725 -2.088842 -v 0.006439 1.035261 -2.120404 -v 0.006439 1.067725 -2.088842 -v -0.006439 1.035261 -2.120404 -v 0.045500 -0.120256 0.684201 -v 0.045500 -0.026668 0.645664 -v 0.045500 -0.037678 0.759438 -v -0.045500 -0.195494 0.673190 -v -0.045500 -0.241370 0.641994 -v -0.045500 -0.226690 0.735583 -v -0.045500 0.083436 0.570427 -v 0.045500 0.083436 0.570427 -v -0.045500 -0.026668 0.645664 -v 0.045500 -0.195494 0.673190 -v -0.045500 -0.120256 0.684201 -v 0.045500 -0.241370 0.641994 -v 0.045500 -0.301928 0.541066 -v 0.045500 -0.329454 0.561251 -v -0.045500 -0.301928 0.541066 -v 0.045500 -0.292752 0.676861 -v -0.045500 -0.329454 0.561251 -v 0.045500 -0.226690 0.735583 -v -0.045500 -0.292752 0.676861 -v 0.045500 -0.098235 0.761274 -v -0.045500 -0.098235 0.761274 -v 0.045500 0.006363 0.860367 -v -0.045500 -0.037678 0.759438 -v 0.045500 0.120138 0.755768 -v -0.045500 0.006363 0.860367 -v -0.045500 0.120138 0.755768 -v -0.054995 0.616618 -0.028039 -v -0.033567 0.562746 -0.960018 -v -0.033567 0.562746 -0.028039 -v -0.054995 0.616618 -1.026899 -v 0.033567 0.562746 -0.960018 -v 0.054995 0.616618 -0.028039 -v 0.033567 0.562746 -0.028039 -v -0.033567 0.390368 -0.028039 -v -0.025180 0.382701 -0.028039 -v -0.004934 0.379525 -0.028039 -v 0.054995 0.616618 -1.026899 -v 0.033567 0.390368 -0.028039 -v 0.033567 0.390368 -0.869522 -v -0.033567 0.390368 -0.869522 -v 0.004934 0.379525 -0.863829 -v -0.004934 0.379525 -0.863829 -v 0.025180 0.382701 -0.865496 -v -0.025180 0.382701 -0.865496 -v 0.025180 0.382701 -0.028039 -v 0.004934 0.379525 -0.028039 -v -0.091806 0.781963 -0.305483 -v 0.000000 0.834967 -0.305483 -v 0.091806 0.781963 -0.305483 -v 0.000000 0.577301 -2.190801 -v 0.131339 0.653130 -0.116135 -v 0.000000 0.577301 -0.116135 -v 0.131339 0.653130 -2.190801 -v 0.131339 0.804788 -0.116135 -v -0.033282 0.869246 -2.190801 -v -0.131339 0.804788 -0.116135 -v -0.033282 0.869246 -0.116135 -v 0.000000 0.834967 -2.190801 -v -0.091806 0.781963 -2.190801 -v -0.131339 0.804788 -2.190801 -v -0.131339 0.653130 -0.116135 -v 0.131339 0.804788 -2.190801 -v 0.033282 0.869246 -0.116135 -v 0.033282 0.869246 -2.190801 -v 0.033282 0.893686 -0.116135 -v -0.033282 0.893686 -0.116135 -v 0.033282 0.893686 -2.190801 -v -0.033282 0.893686 -2.190801 -v 0.091806 0.781963 -2.190801 -v 0.091806 0.675955 -0.305483 -v 0.091806 0.675955 -2.190801 -v 0.000000 0.622951 -2.190801 -v -0.131339 0.653130 -2.190801 -v -0.091806 0.675955 -0.305483 -v -0.091806 0.675955 -2.190801 -v 0.000000 0.622951 -0.305483 -v 0.038663 0.010816 1.719601 -v -0.038663 -0.245511 1.887638 -v 0.038663 -0.245511 1.887638 -v 0.155101 -0.023361 0.976255 -v -0.155153 0.335495 1.332264 -v 0.155152 0.335496 1.332264 -v -0.165394 -1.094236 1.405764 -v -0.111831 -1.094236 1.351958 -v -0.038663 -1.094236 1.332264 -v 0.038663 -1.094236 1.332264 -v -0.038663 -0.735379 1.366441 -v 0.038663 -0.735379 1.366441 -v -0.038663 -0.493293 1.340808 -v 0.038663 -0.493293 1.340808 -v -0.038663 -0.356585 1.278151 -v 0.038663 -0.356585 1.278151 -v -0.038663 -0.259751 1.158532 -v 0.038663 -0.259751 1.158532 -v -0.038663 -0.208486 0.984799 -v 0.038663 -0.208486 0.984799 -v 0.165394 -0.171143 0.992864 -v 0.185000 -0.127654 1.227930 -v 0.165394 -0.193703 1.193231 -v -0.111832 -0.197420 0.977549 -v -0.124343 -0.190359 0.972923 -v -0.155012 -0.125892 0.930686 -v -0.155169 0.386761 1.437643 -v 0.155169 0.386761 1.437643 -v 0.165394 0.187100 1.505419 -v 0.185000 0.161170 1.436487 -v 0.185000 0.353967 1.437475 -v 0.038663 0.264730 1.561425 -v -0.038663 0.213029 1.574350 -v 0.038663 0.213029 1.574350 -v -0.038663 0.101954 1.631311 -v 0.038663 0.101954 1.631311 -v -0.038663 0.010816 1.719601 -v -0.185000 0.353967 1.437475 -v -0.165395 0.187099 1.505419 -v -0.165395 0.371558 1.459304 -v 0.038663 -0.641392 2.049978 -v -0.038663 -1.094236 2.183837 -v 0.038663 -1.094236 2.183837 -v 0.111832 -0.254688 1.870211 -v 0.111832 -0.647907 2.031459 -v 0.165395 -0.279760 1.822601 -v 0.165395 -0.665706 1.980867 -v 0.185000 -0.314010 1.757564 -v 0.111832 -1.094236 2.163393 -v 0.165395 -1.094236 2.107539 -v 0.185000 -1.094236 2.031240 -v 0.185000 -0.690020 1.911755 -v 0.111832 -1.094236 1.351958 -v 0.111832 -0.735275 1.386145 -v 0.165395 -1.094236 1.405764 -v 0.165395 -0.734991 1.439977 -v 0.185000 -1.094236 1.479263 -v 0.111831 -0.488039 1.359967 -v 0.165395 -0.473687 1.412310 -v 0.185000 -0.734604 1.513514 -v 0.111831 -0.344239 1.294058 -v 0.165394 -0.310507 1.337519 -v 0.185000 -0.454081 1.483811 -v 0.111831 -0.242054 1.167829 -v 0.185000 -0.264429 1.396888 -v -0.185000 -0.127654 1.227930 -v -0.165395 -0.171143 0.992864 -v -0.165395 -0.193703 1.193231 -v 0.111831 0.206081 1.555880 -v 0.111831 0.331394 1.524552 -v 0.165394 0.371558 1.459304 -v 0.111831 0.090410 1.615198 -v 0.165394 0.058870 1.571177 -v 0.111831 -0.001489 1.704225 -v 0.165394 -0.035107 1.662217 -v 0.185000 -0.081029 1.604832 -v 0.185000 0.015786 1.511043 -v -0.185000 -0.314010 1.757564 -v -0.165394 -0.665706 1.980867 -v -0.165394 -0.279760 1.822601 -v -0.111831 -0.647907 2.031460 -v -0.111831 -0.254688 1.870211 -v -0.038663 -0.641392 2.049978 -v -0.185000 -1.094236 2.031240 -v -0.185000 -0.690020 1.911756 -v -0.165394 -1.094236 2.107539 -v -0.111831 -1.094236 2.163393 -v -0.185000 -1.094236 1.479263 -v -0.165394 -0.734991 1.439977 -v -0.111831 -0.735275 1.386145 -v -0.185000 -0.734604 1.513514 -v -0.165395 -0.473687 1.412310 -v -0.111832 -0.488039 1.359967 -v -0.185000 -0.454081 1.483811 -v -0.165395 -0.310507 1.337519 -v -0.111832 -0.344239 1.294059 -v -0.185000 -0.264429 1.396888 -v -0.111832 -0.242054 1.167830 -v 0.111831 -0.197420 0.977549 -v 0.124342 -0.190359 0.972923 -v -0.111832 0.331394 1.524552 -v -0.111832 0.206081 1.555880 -v -0.038663 0.264730 1.561425 -v -0.185000 0.161170 1.436487 -v -0.165395 0.058870 1.571177 -v -0.111832 0.090410 1.615198 -v -0.185000 -0.081029 1.604832 -v -0.185000 0.015786 1.511043 -v -0.165395 -0.035107 1.662217 -v -0.111832 -0.001489 1.704225 -v 0.167489 0.373183 1.456990 -v -0.167489 0.373183 1.456990 -v 0.185000 -0.126088 0.963812 -v 0.155011 -0.125892 0.930686 -v 0.185000 -0.038447 1.002724 -v 0.185000 0.311230 1.349627 -v -0.185000 -0.038447 1.002724 -v -0.155102 -0.023361 0.976255 -v -0.185000 0.311230 1.349627 -v -0.185000 -0.126088 0.963812 -v -0.097892 0.268977 1.622983 -v 0.097892 0.149312 1.674509 -v 0.097892 0.268977 1.622983 -v 0.130092 0.958661 0.861598 -v -0.130093 0.708668 1.058814 -v 0.130092 0.708668 1.058814 -v 0.130092 0.613690 1.167382 -v -0.130093 0.530807 1.307363 -v 0.130092 0.530807 1.307363 -v 0.097892 -0.235169 1.903226 -v -0.097891 -0.628431 2.060954 -v 0.097892 -0.628431 2.060954 -v -0.130092 -0.204556 0.922148 -v 0.130093 -0.133963 0.912969 -v 0.130093 -0.204556 0.922148 -v -0.097891 -0.931319 2.170571 -v 0.097892 -0.931319 2.170571 -v 0.130093 -0.924483 1.955257 -v -0.130092 -0.070062 1.401592 -v 0.130093 -0.070062 1.401592 -v -0.130092 -0.225360 0.969494 -v 0.130093 -0.225360 0.969494 -v -0.130092 -0.300993 0.937781 -v 0.130093 -0.300993 0.937781 -v 0.130092 -0.008544 0.212238 -v -0.130093 -0.008544 -0.085101 -v 0.130092 -0.008544 -0.085101 -v -0.130093 0.275124 -0.085101 -v 0.130092 0.275124 -0.085101 -v -0.130093 0.357148 -0.143201 -v 0.130092 0.357148 -0.143201 -v 0.130092 0.525636 -0.143201 -v -0.130093 0.525636 -0.143201 -v 0.130092 0.921066 -0.143201 -v -0.130093 0.921066 0.307933 -v 0.130092 0.921066 0.307933 -v -0.130093 0.965496 0.495906 -v 0.130092 0.965496 0.495906 -v -0.130093 0.958661 0.861598 -v -0.097892 0.057929 1.734014 -v 0.097892 0.057929 1.734014 -v 0.097892 0.415249 1.620324 -v 0.130093 0.477214 1.426684 -v 0.130093 -0.386514 0.876939 -v -0.130092 -0.386514 0.876940 -v 0.130093 -0.442444 0.786799 -v 0.130092 -0.211485 0.282549 -v -0.130093 -0.008544 0.212238 -v -0.130092 -0.442590 0.623577 -v 0.130093 -0.414803 0.465864 -v 0.130093 -0.442590 0.623577 -v -0.130092 -0.414803 0.465864 -v 0.130093 -0.330356 0.359518 -v -0.130092 -0.330356 0.359518 -v -0.130092 -0.930219 2.135928 -v -0.130092 -0.924483 1.955257 -v 0.130093 -0.930219 2.135928 -v 0.130093 -0.249283 1.874193 -v -0.130092 -0.249284 1.874193 -v -0.130092 0.041082 1.706559 -v 0.130093 -0.639977 2.030890 -v -0.130092 -0.639977 2.030890 -v 0.130093 0.134048 1.646022 -v -0.130092 0.134048 1.646022 -v -0.130092 0.262060 1.590903 -v 0.130093 0.262060 1.590903 -v 0.130093 0.425615 1.587929 -v 0.130093 0.041082 1.706559 -v -0.097892 0.415249 1.620324 -v -0.130092 0.425615 1.587929 -v -0.097892 0.149312 1.674509 -v -0.097892 -0.235169 1.903226 -v -0.130092 0.477214 1.426684 -v -0.130092 -0.442444 0.786799 -v -0.130092 0.221493 0.777850 -v -0.130092 0.032680 0.752116 -v -0.130092 -0.044732 0.859700 -v -0.130092 -0.102226 0.333310 -v 0.130092 -0.022441 0.371767 -v -0.130093 -0.022441 0.371767 -v 0.130092 0.652207 0.905577 -v 0.130092 0.841407 0.777850 -v -0.130092 -0.388426 0.502954 -v 0.130093 -0.403589 0.641508 -v 0.130093 -0.388426 0.502954 -v 0.130092 -0.311756 0.399896 -v 0.130092 -0.193827 0.335099 -v -0.130092 -0.311756 0.399896 -v 0.130093 -0.361856 0.843483 -v -0.130092 -0.404840 0.766055 -v -0.130092 -0.361856 0.843483 -v -0.130092 -0.403589 0.641508 -v 0.130092 0.841407 0.131254 -v 0.130092 0.841530 -0.143201 -v -0.130092 -0.193827 0.335099 -v 0.130092 0.046415 0.462863 -v 0.130092 0.032680 0.752116 -v 0.130093 -0.280523 0.902444 -v -0.130092 -0.280523 0.902444 -v 0.130092 -0.102226 0.333310 -v -0.130093 0.046415 0.462863 -v -0.130093 0.357293 0.131254 -v 0.130092 0.357290 0.131254 -v 0.130092 0.525636 0.131254 -v 0.130092 0.221493 0.131254 -v -0.130093 0.221493 0.131254 -v -0.130093 0.221493 0.431851 -v -0.303465 0.659984 0.777850 -v 0.303465 0.659984 0.777850 -v -0.130093 0.841407 0.131254 -v 0.130092 0.841407 0.322044 -v -0.156306 0.411972 -0.143201 -v 0.173056 0.766475 -0.143201 -v -0.130093 0.921066 -0.143201 -v 0.173056 0.766475 0.131254 -v 0.173056 0.694144 -0.143201 -v 0.173056 0.694144 0.131254 -v 0.130092 0.617043 -0.143201 -v 0.156306 0.412767 -0.143201 -v 0.156306 0.467612 0.131254 -v 0.156306 0.467612 -0.143201 -v 0.130092 0.617043 0.131254 -v -0.173057 0.765680 -0.143201 -v -0.130093 0.841530 -0.143201 -v -0.173057 0.693349 -0.143201 -v -0.173057 0.765680 0.131254 -v -0.130093 0.617043 -0.143201 -v -0.173057 0.693349 0.131254 -v -0.130093 0.617043 0.131254 -v -0.130093 0.525636 0.131254 -v -0.156306 0.466817 0.131254 -v -0.156306 0.466817 -0.143201 -v 0.130092 0.221493 0.777850 -v -0.303465 0.402917 0.777850 -v 0.303465 0.402917 0.777850 -v 0.130092 0.406563 0.905577 -v -0.130093 0.405927 0.905757 -v -0.130093 0.650810 0.906495 -v -0.130093 0.841407 0.777850 -v 0.130092 -0.044732 0.859700 -v -0.130092 -0.133963 0.912969 -v -0.130093 0.613690 1.167382 -v -0.130092 -0.211485 0.282549 -v -0.130093 0.841407 0.322044 -v 0.130093 -0.404840 0.766055 -v 0.130092 0.221493 0.431851 -v -0.130093 0.275159 0.131254 -v 0.130092 0.274881 0.131254 -v -0.156306 0.411972 0.131254 -v 0.156306 0.412767 0.131254 -vt 0.050815 0.964187 -vt 0.022923 0.957640 -vt 0.023387 0.882167 -vt 0.000391 0.939742 -vt 0.021578 0.892311 -vt 0.021578 0.965410 -vt 0.023386 0.882167 -vt 0.050813 0.964187 -vt 0.050813 0.816027 -vt 0.021586 0.965403 -vt 0.021586 0.892311 -vt 0.000415 0.939749 -vt 0.065060 0.879800 -vt 0.054868 0.816027 -vt 0.065060 0.816027 -vt 0.066687 0.963664 -vt 0.076868 0.992314 -vt 0.066687 0.992314 -vt 0.066687 0.815504 -vt 0.076868 0.963664 -vt 0.065060 0.888433 -vt 0.054868 0.879800 -vt 0.061471 0.890563 -vt 0.054868 0.888433 -vt 0.006644 0.864557 -vt 0.003633 0.879321 -vt 0.003633 0.864557 -vt 0.006644 0.889907 -vt 0.006644 0.879321 -vt 0.003633 0.903518 -vt 0.003633 0.889907 -vt 0.065057 0.963856 -vt 0.061468 0.963513 -vt 0.058457 0.890564 -vt 0.054872 0.963859 -vt 0.003633 0.812609 -vt 0.058468 0.963499 -vt 0.023440 0.873544 -vt 0.050815 0.816027 -vt 0.008406 0.961878 -vt 0.000815 0.954500 -vt 0.023439 0.873544 -vt 0.022922 0.957640 -vt 0.000844 0.954507 -vt 0.008438 0.961882 -vt 0.076868 0.815504 -vt 0.006644 0.903544 -vt 0.006644 0.812609 -vt 0.023130 0.630533 -vt 0.028439 0.641072 -vt 0.015114 0.640800 -vt 0.023687 0.621763 -vt 0.026907 0.616152 -vt 0.016156 0.618688 -vt 0.051880 0.644663 -vt 0.062490 0.660213 -vt 0.051880 0.660213 -vt 0.051880 0.632862 -vt 0.062490 0.644663 -vt 0.051880 0.623995 -vt 0.062490 0.632862 -vt 0.051880 0.617526 -vt 0.062490 0.623995 -vt 0.051880 0.603802 -vt 0.062490 0.617526 -vt 0.062519 0.663431 -vt 0.073130 0.667411 -vt 0.062519 0.667411 -vt 0.062519 0.649287 -vt 0.073130 0.663431 -vt 0.062519 0.638981 -vt 0.073130 0.649287 -vt 0.062519 0.623707 -vt 0.073130 0.638981 -vt 0.062519 0.616642 -vt 0.073130 0.623707 -vt 0.062519 0.603802 -vt 0.073130 0.616642 -vt 0.051880 0.682243 -vt 0.062490 0.700264 -vt 0.051880 0.700264 -vt 0.062490 0.682243 -vt 0.038162 0.653207 -vt 0.016938 0.659116 -vt 0.003769 0.646815 -vt 0.014364 0.633776 -vt 0.016213 0.618613 -vt 0.023743 0.621688 -vt 0.022455 0.610413 -vt 0.026964 0.616078 -vt 0.035571 0.605121 -vt 0.038162 0.608143 -vt 0.003713 0.646890 -vt 0.016882 0.659191 -vt 0.015057 0.640875 -vt 0.038105 0.653282 -vt 0.028383 0.641147 -vt 0.014307 0.633851 -vt 0.023073 0.630608 -vt 0.022398 0.610487 -vt 0.038105 0.608218 -vt 0.035515 0.605196 -vt 0.062490 0.603802 -vt 0.073130 0.603802 -vt 0.646204 0.426405 -vt 0.878178 0.440836 -vt 0.646204 0.440836 -vt 0.719647 0.492539 -vt 0.698103 0.514756 -vt 0.698103 0.497914 -vt 0.878178 0.384598 -vt 0.646204 0.399029 -vt 0.646204 0.384598 -vt 0.719705 0.520131 -vt 0.733219 0.497914 -vt 0.733219 0.514756 -vt 0.776463 0.497914 -vt 0.778386 0.500018 -vt 0.779183 0.505097 -vt 0.894825 0.426405 -vt 0.894825 0.399029 -vt 0.776463 0.514756 -vt 0.855653 0.341692 -vt 0.646204 0.341692 -vt 0.649263 0.514756 -vt 0.649263 0.497914 -vt 0.855653 0.483742 -vt 0.646204 0.483742 -vt 0.853950 0.332960 -vt 0.646212 0.329338 -vt 0.853970 0.329334 -vt 0.647090 0.512652 -vt 0.646190 0.507573 -vt 0.854224 0.492481 -vt 0.646190 0.487380 -vt 0.854639 0.487380 -vt 0.646192 0.338059 -vt 0.646192 0.332964 -vt 0.854365 0.338054 -vt 0.719647 0.520131 -vt 0.719705 0.492539 -vt 0.779183 0.507573 -vt 0.778386 0.512652 -vt 0.646190 0.505097 -vt 0.647090 0.500018 -vt 0.646190 0.492481 -vt 0.625344 0.493036 -vt 0.640162 0.518702 -vt 0.625344 0.544367 -vt 0.991730 0.947997 -vt 0.418732 0.989883 -vt 0.418732 0.947997 -vt 0.991635 0.719134 -vt 0.418637 0.761020 -vt 0.418637 0.719134 -vt 0.991730 0.831816 -vt 0.418732 0.864225 -vt 0.418732 0.831816 -vt 0.490671 0.507650 -vt 0.475853 0.481984 -vt 0.500255 0.498345 -vt 0.991730 0.864225 -vt 0.418732 0.906111 -vt 0.991635 0.761020 -vt 0.418637 0.793429 -vt 0.991635 0.793430 -vt 0.418685 0.803430 -vt 0.553293 0.462750 -vt 0.580706 0.480770 -vt 0.580706 0.523168 -vt 0.418684 0.821815 -vt 0.991682 0.803430 -vt 0.991682 0.821815 -vt 0.534684 0.462750 -vt 0.553293 0.455917 -vt 0.507087 0.516954 -vt 0.500255 0.516954 -vt 0.945706 0.603823 -vt 0.418637 0.633459 -vt 0.418637 0.603823 -vt 0.945706 0.574187 -vt 0.418637 0.574187 -vt 0.431399 0.507650 -vt 0.418637 0.507650 -vt 0.439836 0.470932 -vt 0.418637 0.544551 -vt 0.945706 0.692732 -vt 0.418637 0.722368 -vt 0.418637 0.692732 -vt 0.945706 0.663096 -vt 0.418637 0.663096 -vt 0.595708 0.544367 -vt 0.580890 0.518702 -vt 0.595708 0.493036 -vt 0.991730 0.989883 -vt 0.482234 0.544367 -vt 0.439836 0.544367 -vt 0.446217 0.533315 -vt 0.475853 0.533315 -vt 0.482234 0.470932 -vt 0.991730 0.906111 -vt 0.543988 0.544367 -vt 0.507270 0.523168 -vt 0.507270 0.480770 -vt 0.534684 0.455917 -vt 0.507087 0.498345 -vt 0.945706 0.633460 -vt 0.446217 0.481984 -vt 0.945706 0.544551 -vt 0.945706 0.722369 -vt 0.943217 0.267157 -vt 0.926816 0.200969 -vt 0.943283 0.201022 -vt 0.518614 0.365977 -vt 0.408575 0.434977 -vt 0.407603 0.364763 -vt 0.691811 0.182540 -vt 0.679816 0.194589 -vt 0.663431 0.198999 -vt 0.790430 0.010515 -vt 0.806586 0.087515 -vt 0.789182 0.087383 -vt 0.807179 0.145714 -vt 0.787864 0.145480 -vt 0.807338 0.184720 -vt 0.787235 0.184419 -vt 0.806826 0.224675 -vt 0.787363 0.224372 -vt 0.804592 0.265004 -vt 0.789455 0.265203 -vt 0.762991 0.269202 -vt 0.734295 0.228422 -vt 0.750382 0.227248 -vt 0.563830 0.425463 -vt 0.561372 0.428039 -vt 0.544436 0.431268 -vt 0.380990 0.436844 -vt 0.380928 0.362943 -vt 0.979855 0.330577 -vt 0.997279 0.332894 -vt 0.977666 0.372086 -vt 0.942886 0.339656 -vt 0.925073 0.327372 -vt 0.943524 0.327508 -vt 0.924933 0.296851 -vt 0.943938 0.297107 -vt 0.926017 0.267118 -vt 0.890449 0.371970 -vt 0.888609 0.330033 -vt 0.898082 0.372863 -vt 0.944098 0.108972 -vt 0.927549 0.003861 -vt 0.945038 0.003989 -vt 0.959510 0.201115 -vt 0.960758 0.109163 -vt 0.976114 0.201189 -vt 0.977479 0.109415 -vt 0.993182 0.201234 -vt 0.962153 0.005475 -vt 0.979285 0.009325 -vt 0.996344 0.014550 -vt 0.994366 0.109702 -vt 0.775076 0.010580 -vt 0.772288 0.086759 -vt 0.759833 0.011018 -vt 0.755934 0.085737 -vt 0.744532 0.011615 -vt 0.769275 0.144608 -vt 0.751693 0.143162 -vt 0.740273 0.084551 -vt 0.767874 0.184311 -vt 0.749248 0.184148 -vt 0.735539 0.141562 -vt 0.768470 0.225353 -vt 0.732209 0.183909 -vt 0.859569 0.229149 -vt 0.830692 0.269217 -vt 0.843603 0.227804 -vt 0.468619 0.053761 -vt 0.510338 0.123074 -vt 0.595077 0.093538 -vt 0.961775 0.328544 -vt 0.957372 0.356859 -vt 0.970094 0.372916 -vt 0.967925 0.378672 -vt 0.962614 0.296741 -vt 0.981202 0.295983 -vt 0.960092 0.266798 -vt 0.976967 0.265877 -vt 0.994071 0.264483 -vt 0.999243 0.294996 -vt 0.876930 0.200545 -vt 0.893760 0.108906 -vt 0.893992 0.200716 -vt 0.910487 0.108862 -vt 0.910592 0.200854 -vt 0.927152 0.108880 -vt 0.876092 0.013774 -vt 0.876866 0.108983 -vt 0.893223 0.008764 -vt 0.910408 0.005131 -vt 0.852123 0.012128 -vt 0.839893 0.086276 -vt 0.836793 0.011364 -vt 0.823504 0.087100 -vt 0.821522 0.010763 -vt 0.806135 0.010538 -vt 0.855599 0.085278 -vt 0.843397 0.143865 -vt 0.825787 0.145081 -vt 0.859584 0.142485 -vt 0.845278 0.184879 -vt 0.826683 0.184818 -vt 0.862281 0.184873 -vt 0.825634 0.225751 -vt 0.818535 0.268782 -vt 0.775293 0.268889 -vt 0.772790 0.270569 -vt 0.910854 0.356249 -vt 0.906755 0.328195 -vt 0.925628 0.339795 -vt 0.871053 0.332174 -vt 0.887683 0.295354 -vt 0.906271 0.296322 -vt 0.875237 0.263718 -vt 0.869636 0.294124 -vt 0.892311 0.265344 -vt 0.909163 0.266501 -vt 0.582746 0.275394 -vt 0.511691 0.273824 -vt 0.532576 0.229852 -vt 0.385204 0.353185 -vt 0.378416 0.357051 -vt 0.385461 0.446926 -vt 0.378416 0.442955 -vt 0.541558 0.357450 -vt 0.542017 0.367230 -vt 0.518528 0.356368 -vt 0.407993 0.355379 -vt 0.520482 0.442763 -vt 0.520351 0.432941 -vt 0.409011 0.444549 -vt 0.558437 0.440307 -vt 0.544431 0.441003 -vt 0.555710 0.356970 -vt 0.559936 0.369073 -vt 0.646114 0.198999 -vt 0.613344 0.166080 -vt 0.629729 0.194589 -vt 0.617734 0.182540 -vt 0.613344 0.042471 -vt 0.696201 0.042471 -vt 0.617734 0.025385 -vt 0.646114 0.008299 -vt 0.629729 0.012877 -vt 0.663431 0.008299 -vt 0.679816 0.012877 -vt 0.691811 0.025385 -vt 0.696201 0.166080 -vt 0.756059 0.278834 -vt 0.569442 0.389177 -vt 0.562759 0.371542 -vt 0.568477 0.408219 -vt 0.970560 0.373529 -vt 0.897611 0.373479 -vt 0.837449 0.278834 -vt 0.578450 0.350139 -vt 0.600326 0.350269 -vt 0.581469 0.311429 -vt 0.582456 0.274854 -vt 0.592028 0.246226 -vt 0.532286 0.229312 -vt 0.600326 0.184395 -vt 0.531487 0.182600 -vt 0.474553 0.313093 -vt 0.511401 0.273284 -vt 0.458214 0.299160 -vt 0.580090 0.000344 -vt 0.900263 0.378672 -vt 0.820992 0.270468 -vt 0.581759 0.311969 -vt 0.600616 0.350809 -vt 0.578739 0.350680 -vt 0.474843 0.313633 -vt 0.458504 0.299700 -vt 0.600616 0.184935 -vt 0.592318 0.246766 -vt 0.580380 0.000884 -vt 0.595367 0.094079 -vt 0.468908 0.054301 -vt 0.531777 0.183140 -vt 0.510628 0.123614 -vt 0.297467 0.534291 -vt 0.274155 0.499064 -vt 0.297243 0.498318 -vt 0.227832 0.136510 -vt 0.174947 0.178032 -vt 0.174947 0.134818 -vt 0.150989 0.134818 -vt 0.123971 0.178032 -vt 0.123971 0.134818 -vt 0.200788 0.500764 -vt 0.132092 0.532286 -vt 0.132160 0.500166 -vt 0.214968 0.437985 -vt 0.226791 0.481199 -vt 0.214968 0.481199 -vt 0.079276 0.532213 -vt 0.079413 0.499857 -vt 0.057683 0.542811 -vt 0.014470 0.373714 -vt 0.057683 0.373714 -vt 0.014470 0.297454 -vt 0.057683 0.297454 -vt 0.014470 0.283833 -vt 0.057683 0.283833 -vt 0.057683 0.113331 -vt 0.013017 0.065497 -vt 0.056230 0.065497 -vt 0.014470 0.016834 -vt 0.057683 0.016834 -vt 0.237608 0.128706 -vt 0.194395 0.112011 -vt 0.237608 0.112011 -vt 0.237608 0.084028 -vt 0.194395 0.084028 -vt 0.395586 0.134818 -vt 0.320659 0.178032 -vt 0.320659 0.134818 -vt 0.288579 0.178032 -vt 0.288579 0.134818 -vt 0.227832 0.179723 -vt 0.255763 0.532612 -vt 0.255630 0.500001 -vt 0.322696 0.499422 -vt 0.102246 0.134818 -vt 0.057683 0.266401 -vt 0.014470 0.266401 -vt 0.057683 0.248783 -vt 0.057683 0.149002 -vt 0.014470 0.113331 -vt 0.014470 0.221674 -vt 0.057683 0.195076 -vt 0.057683 0.221674 -vt 0.014470 0.195076 -vt 0.057683 0.172522 -vt 0.014470 0.172522 -vt 0.016695 0.573883 -vt 0.014470 0.542811 -vt 0.059906 0.573475 -vt 0.200772 0.493328 -vt 0.200752 0.539591 -vt 0.255530 0.540026 -vt 0.081573 0.492375 -vt 0.132204 0.492739 -vt 0.081385 0.539720 -vt 0.132085 0.539722 -vt 0.273731 0.491419 -vt 0.273669 0.541133 -vt 0.297535 0.542407 -vt 0.297180 0.490341 -vt 0.324958 0.491786 -vt 0.255382 0.492566 -vt 0.323509 0.532260 -vt 0.326077 0.540048 -vt 0.274083 0.533455 -vt 0.200769 0.532142 -vt 0.102246 0.178032 -vt 0.072626 0.178537 -vt 0.066927 0.173242 -vt 0.014470 0.248783 -vt 0.252413 0.299074 -vt 0.247711 0.266360 -vt 0.265474 0.253139 -vt 0.347835 0.437985 -vt 0.333125 0.481199 -vt 0.333125 0.437985 -vt 0.278296 0.371798 -vt 0.255762 0.406113 -vt 0.304964 0.380163 -vt 0.126705 0.437985 -vt 0.149854 0.481199 -vt 0.126705 0.481199 -vt 0.105371 0.481199 -vt 0.083023 0.481199 -vt 0.105371 0.437985 -vt 0.185249 0.481199 -vt 0.170540 0.437985 -vt 0.185249 0.437985 -vt 0.149854 0.437985 -vt 0.142525 0.407099 -vt 0.095062 0.406915 -vt 0.094990 0.420685 -vt 0.189013 0.208764 -vt 0.178255 0.228217 -vt 0.182352 0.205687 -vt 0.266064 0.437985 -vt 0.314159 0.481199 -vt 0.266064 0.481199 -vt 0.201933 0.481199 -vt 0.201933 0.437985 -vt 0.083023 0.437985 -vt 0.067806 0.481199 -vt 0.067806 0.437985 -vt 0.314159 0.437985 -vt 0.302377 0.096782 -vt 0.259164 0.096782 -vt 0.259164 0.068822 -vt 0.140317 0.016548 -vt 0.183531 0.016548 -vt 0.183531 0.066473 -vt 0.346660 0.119615 -vt 0.316528 0.047608 -vt 0.346660 0.018813 -vt 0.134626 0.123141 -vt 0.091413 0.123141 -vt 0.091413 0.091454 -vt 0.182465 0.205434 -vt 0.178341 0.227957 -vt 0.189121 0.208518 -vt 0.142811 0.318849 -vt 0.106663 0.304088 -vt 0.096286 0.317803 -vt 0.106731 0.304422 -vt 0.142844 0.319109 -vt 0.096399 0.318133 -vt 0.096132 0.328492 -vt 0.095144 0.391955 -vt 0.142645 0.407391 -vt 0.173442 0.421287 -vt 0.095018 0.421173 -vt 0.142550 0.392168 -vt 0.095208 0.379505 -vt 0.142550 0.379683 -vt 0.095240 0.364539 -vt 0.095994 0.328301 -vt 0.142493 0.338592 -vt 0.095735 0.337534 -vt 0.095447 0.348525 -vt 0.141439 0.364519 -vt 0.095064 0.392252 -vt 0.095040 0.407371 -vt 0.095061 0.379937 -vt 0.142633 0.392298 -vt 0.095152 0.364467 -vt 0.142649 0.379782 -vt 0.259164 0.053641 -vt 0.302377 0.016377 -vt 0.302377 0.053641 -vt 0.141702 0.349557 -vt 0.095557 0.348555 -vt 0.142514 0.338724 -vt 0.095886 0.337698 -vt 0.419487 0.047607 -vt 0.389355 0.119615 -vt 0.389355 0.018813 -vt 0.243991 0.335751 -vt 0.246078 0.369705 -vt 0.275064 0.330321 -vt 0.252421 0.298907 -vt 0.275116 0.330356 -vt 0.244051 0.335934 -vt 0.246192 0.369866 -vt 0.278506 0.371699 -vt 0.255877 0.406248 -vt 0.244051 0.481199 -vt 0.226791 0.437985 -vt 0.244051 0.437985 -vt 0.150989 0.178032 -vt 0.194395 0.128706 -vt 0.194395 0.018352 -vt 0.237608 0.018352 -vt 0.194395 0.031562 -vt 0.237608 0.031562 -vt 0.244744 0.044028 -vt 0.244744 0.056041 -vt 0.237608 0.068846 -vt 0.187260 0.056173 -vt 0.187260 0.044160 -vt 0.194395 0.068846 -vt 0.241962 0.093665 -vt 0.241962 0.102774 -vt 0.190042 0.102906 -vt 0.190042 0.093797 -vt 0.395586 0.178032 -vt 0.014470 0.149002 -vt 0.054613 0.579282 -vt 0.022097 0.579589 -vt 0.066620 0.140727 -vt 0.072218 0.135325 -vt 0.356499 0.246980 -vt 0.443465 0.099671 -vt 0.433400 0.210690 -vt 0.471476 0.094183 -vt 0.456341 0.143787 -vt 0.407763 0.260852 -vt 0.398402 0.276971 -vt 0.390252 0.298924 -vt 0.391156 0.326394 -vt 0.364541 0.338678 -vt 0.344885 0.348510 -vt 0.267887 0.196031 -vt 0.278108 0.210100 -vt 0.272278 0.213559 -vt 0.283524 0.222603 -vt 0.274257 0.237995 -vt 0.322365 0.363503 -vt 0.305026 0.380279 -vt 0.252889 0.186910 -vt 0.262384 0.200164 -vt 0.271393 0.428457 -vt 0.206113 0.428467 -vt 0.175785 0.407489 -vt 0.249506 0.193155 -vt 0.275676 0.226164 -vt 0.193774 0.297327 -vt 0.199154 0.268291 -vt 0.347835 0.481199 -vt 0.471677 0.094230 -vt 0.443665 0.099691 -vt 0.456496 0.143819 -vt 0.356562 0.246916 -vt 0.433493 0.210699 -vt 0.283614 0.222464 -vt 0.278212 0.209955 -vt 0.272378 0.213407 -vt 0.268007 0.195875 -vt 0.253020 0.186738 -vt 0.262499 0.200002 -vt 0.407809 0.260835 -vt 0.398434 0.276945 -vt 0.390263 0.298890 -vt 0.274330 0.237845 -vt 0.364518 0.338619 -vt 0.391142 0.326361 -vt 0.344854 0.348432 -vt 0.249629 0.192979 -vt 0.275762 0.226016 -vt 0.265530 0.252980 -vt 0.322320 0.363406 -vt 0.173251 0.421067 -vt 0.205929 0.428299 -vt 0.175622 0.407277 -vt 0.271272 0.428353 -vt 0.247754 0.266183 -vt 0.199195 0.268058 -vt 0.193783 0.297091 -vt 0.170540 0.481199 -vt 0.225914 0.187076 -vt 0.228912 0.193503 -vt 0.199895 0.191746 -vt 0.206028 0.196086 -vt 0.157686 0.258627 -vt 0.169596 0.225253 -vt 0.177851 0.243385 -vt 0.106758 0.258651 -vt 0.143323 0.296417 -vt 0.143126 0.305374 -vt 0.184116 0.256688 -vt 0.302377 0.110423 -vt 0.302377 0.119336 -vt 0.259164 0.110469 -vt 0.259163 0.119336 -vt 0.306730 0.078591 -vt 0.306730 0.087700 -vt 0.254810 0.087568 -vt 0.254810 0.078459 -vt 0.302377 0.068822 -vt 0.183531 0.123939 -vt 0.140317 0.123939 -vt 0.140317 0.066473 -vt 0.316528 0.090821 -vt 0.091413 0.015750 -vt 0.134626 0.015750 -vt 0.134626 0.091454 -vt 0.106775 0.258282 -vt 0.143314 0.296134 -vt 0.143108 0.305052 -vt 0.157734 0.258343 -vt 0.184169 0.256437 -vt 0.169686 0.224983 -vt 0.177919 0.243125 -vt 0.226046 0.186873 -vt 0.200022 0.191514 -vt 0.206150 0.195860 -vt 0.229036 0.193303 -vt 0.142898 0.329338 -vt 0.142852 0.329212 -vt 0.141690 0.349257 -vt 0.141520 0.364833 -vt 0.252028 0.040835 -vt 0.259164 0.016377 -vt 0.252028 0.028822 -vt 0.309512 0.028954 -vt 0.309512 0.040967 -vt 0.419487 0.090821 -vn 1.0000 -0.0000 0.0000 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.9761 0.2173 -vn 0.0000 0.9056 0.4242 -vn 0.0000 0.2225 -0.9749 -vn -0.0420 0.7668 -0.6405 -vn 0.0382 0.7683 -0.6390 -vn 0.0000 -1.0000 0.0061 -vn 0.0199 0.9997 0.0174 -vn 0.0205 0.9890 0.1463 -vn -0.0199 0.9997 0.0174 -vn -0.0000 0.9809 0.1946 -vn 0.0000 0.9155 -0.4023 -vn -0.0000 0.4940 -0.8694 -vn -0.0186 0.7451 -0.6667 -vn 0.0187 0.7735 -0.6336 -vn -0.0206 0.9890 0.1463 -vn 0.0000 -0.4751 -0.8800 -vn 0.0000 -0.5642 -0.8256 -vn 0.0000 -0.1223 -0.9925 -vn 0.0000 0.3628 -0.9319 -vn 0.0000 0.7269 -0.6868 -vn 0.0000 0.8575 -0.5145 -vn 0.0000 -0.5913 -0.8064 -vn 0.0000 -0.8388 0.5445 -vn 0.0000 -0.9531 0.3026 -vn 0.0000 -0.4458 0.8952 -vn 0.0000 -0.0834 0.9965 -vn 0.0000 0.0303 0.9995 -vn 0.0000 -0.9165 0.3999 -vn 0.0000 0.6768 0.7362 -vn 0.0000 0.9810 -0.1943 -vn 0.0000 -0.5914 -0.8064 -vn -0.9292 -0.3696 -0.0000 -vn -0.9658 -0.2592 -0.0000 -vn -0.9821 -0.1882 0.0000 -vn 0.0000 -0.7788 -0.6273 -vn 0.0000 -0.6466 -0.7629 -vn 0.9658 -0.2592 -0.0000 -vn 0.9292 -0.3696 -0.0000 -vn 0.9821 -0.1882 0.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.9538 -0.3003 -0.0000 -vn 0.9151 -0.4033 -0.0000 -vn 0.0000 -0.4649 -0.8854 -vn -0.9538 -0.3003 -0.0000 -vn -0.9151 -0.4033 -0.0000 -vn 0.0797 -0.9968 -0.0000 -vn -0.0777 -0.9970 -0.0000 -vn -0.0797 -0.9968 -0.0000 -vn 0.0000 -0.4649 -0.8853 -vn -0.4332 -0.9013 -0.0000 -vn -0.4666 -0.8845 -0.0000 -vn 0.4332 -0.9013 -0.0000 -vn 0.0777 -0.9970 -0.0000 -vn 0.4666 -0.8845 -0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.5000 -0.8660 -0.0000 -vn 0.8660 -0.5000 -0.0000 -vn 0.8801 0.4747 0.0000 -vn -0.5493 0.8356 0.0000 -vn -0.8801 0.4747 0.0000 -vn -0.8660 -0.5000 -0.0000 -vn -0.5000 -0.8660 -0.0000 -vn 0.5493 0.8356 0.0000 -vn -0.8660 0.5000 0.0000 -vn 0.8660 0.5000 0.0000 -vn 0.1301 0.6195 0.7741 -vn -0.1301 0.4620 0.8773 -vn 0.1301 0.4620 0.8773 -vn -0.0000 0.5645 -0.8254 -vn -0.0000 0.8133 -0.5819 -vn 0.0000 -1.0000 -0.0000 -vn 0.1295 0.0940 -0.9871 -vn -0.1323 -0.0052 -0.9912 -vn 0.1322 -0.0052 -0.9912 -vn -0.1340 -0.2621 -0.9557 -vn 0.1340 -0.2621 -0.9557 -vn -0.1365 -0.6074 -0.7826 -vn 0.1365 -0.6074 -0.7826 -vn -0.1352 -0.8771 -0.4608 -vn 0.1352 -0.8771 -0.4608 -vn -0.0808 -0.9622 -0.2603 -vn 0.0808 -0.9622 -0.2603 -vn 0.7746 -0.6264 -0.0870 -vn 0.9945 -0.0968 -0.0405 -vn 0.8887 -0.4230 -0.1767 -vn -0.0000 -0.5480 -0.8365 -vn -0.0000 0.8992 -0.4375 -vn 0.8698 0.1565 0.4679 -vn 0.9938 0.0274 0.1074 -vn 0.9228 0.0804 0.3768 -vn 0.0986 0.3350 0.9370 -vn -0.1326 0.3486 0.9278 -vn 0.1326 0.3486 0.9278 -vn -0.1335 0.5772 0.8056 -vn 0.1335 0.5772 0.8056 -vn -0.1301 0.6195 0.7741 -vn -0.9228 0.0804 0.3768 -vn -0.8698 0.1565 0.4679 -vn -0.7544 0.1070 0.6477 -vn 0.1301 0.3290 0.9353 -vn -0.1273 0.2812 0.9512 -vn 0.1273 0.2812 0.9512 -vn 0.4948 0.4049 0.7689 -vn 0.4968 0.2880 0.8187 -vn 0.8601 0.2377 0.4514 -vn 0.8626 0.1679 0.4771 -vn 0.9905 0.0642 0.1218 -vn 0.4781 0.2490 0.8423 -vn 0.8441 0.1520 0.5141 -vn 0.9881 0.0437 0.1477 -vn 0.9909 0.0446 0.1269 -vn 0.4931 0.0825 -0.8661 -vn 0.5089 -0.0045 -0.8608 -vn 0.8591 0.0485 -0.5095 -vn 0.8741 -0.0026 -0.4858 -vn 0.9904 0.0131 -0.1377 -vn 0.5163 -0.2265 -0.8259 -vn 0.8799 -0.1257 -0.4583 -vn 0.9926 -0.0006 -0.1217 -vn 0.5261 -0.5214 -0.6718 -vn 0.8869 -0.2832 -0.3649 -vn 0.9933 -0.0306 -0.1117 -vn 0.5029 -0.7822 -0.3678 -vn 0.9941 -0.0667 -0.0860 -vn -0.9945 -0.0968 -0.0405 -vn -0.7747 -0.6264 -0.0870 -vn -0.8887 -0.4230 -0.1767 -vn 0.5105 0.3024 0.8049 -vn 0.3336 0.5327 0.7778 -vn 0.7543 0.1069 0.6477 -vn 0.0001 0.8288 0.5595 -vn -0.0001 0.8288 0.5595 -vn -0.0000 0.8185 0.5745 -vn 0.5145 0.4994 0.6971 -vn 0.8785 0.2783 0.3884 -vn 0.4948 0.5430 0.6785 -vn 0.8601 0.3187 0.3982 -vn 0.9905 0.0860 0.1075 -vn 0.9931 0.0683 0.0953 -vn -0.9905 0.0642 0.1219 -vn -0.8626 0.1679 0.4771 -vn -0.8601 0.2377 0.4514 -vn -0.4968 0.2880 0.8187 -vn -0.4948 0.4049 0.7689 -vn -0.1301 0.3290 0.9353 -vn -0.9881 0.0437 0.1477 -vn -0.9909 0.0446 0.1269 -vn -0.8441 0.1520 0.5141 -vn -0.4781 0.2490 0.8423 -vn -0.9904 0.0131 -0.1377 -vn -0.8741 -0.0026 -0.4858 -vn -0.8591 0.0485 -0.5095 -vn -0.5089 -0.0045 -0.8608 -vn -0.4931 0.0825 -0.8661 -vn -0.1295 0.0940 -0.9871 -vn -0.9926 -0.0006 -0.1217 -vn -0.8799 -0.1257 -0.4583 -vn -0.5163 -0.2265 -0.8259 -vn -0.9933 -0.0306 -0.1117 -vn -0.8869 -0.2832 -0.3649 -vn -0.5261 -0.5214 -0.6718 -vn -0.9941 -0.0667 -0.0860 -vn -0.5029 -0.7822 -0.3678 -vn -0.3318 -0.9223 -0.1983 -vn 0.3318 -0.9223 -0.1983 -vn 0.4610 -0.8818 -0.0993 -vn -0.3336 0.5327 0.7778 -vn -0.5105 0.3024 0.8049 -vn -0.0986 0.3350 0.9370 -vn -0.9938 0.0274 0.1074 -vn -0.8785 0.2782 0.3884 -vn -0.5145 0.4994 0.6971 -vn -0.9905 0.0860 0.1075 -vn -0.9931 0.0682 0.0953 -vn -0.8601 0.3187 0.3982 -vn -0.4948 0.5430 0.6785 -vn 0.7184 0.6547 -0.2351 -vn 0.7258 0.6612 -0.1896 -vn 0.7397 0.6729 0.0012 -vn -0.7258 0.6612 -0.1896 -vn -0.7184 0.6547 -0.2351 -vn -0.7397 0.6729 0.0012 -vn 0.7127 0.3923 -0.5816 -vn 0.7116 0.2849 -0.6423 -vn 0.7115 0.2849 -0.6424 -vn 0.7070 0.5751 -0.4116 -vn 0.7123 0.4004 -0.5764 -vn 0.7070 0.5751 -0.4115 -vn -0.7124 0.4004 -0.5764 -vn -0.7070 0.5751 -0.4116 -vn -0.7127 0.3923 -0.5816 -vn -0.7070 0.5751 -0.4115 -vn -0.5760 -0.6122 -0.5417 -vn -0.5677 -0.6176 -0.5443 -vn -0.5896 -0.6030 -0.5373 -vn -0.7116 0.2849 -0.6423 -vn -0.7115 0.2849 -0.6424 -vn 0.5759 -0.6122 -0.5417 -vn 0.5677 -0.6176 -0.5443 -vn 0.5579 -0.6239 -0.5472 -vn 0.0000 0.4061 -0.9138 -vn 0.9813 -0.1926 -0.0011 -vn 0.7426 -0.0035 0.6698 -vn -0.7427 -0.0034 0.6697 -vn -0.9813 -0.1925 -0.0011 -vn 0.0001 0.8185 0.5745 -vn 0.0003 0.8185 0.5746 -vn -0.4610 -0.8818 -0.0993 -vn -0.5579 -0.6239 -0.5472 -vn 0.5896 -0.6030 -0.5373 -vn 0.0000 0.2108 0.9775 -vn 0.0000 0.4723 0.8814 -vn 0.0000 0.6194 0.7851 -vn 0.0000 0.6889 0.7248 -vn 0.0000 0.8100 0.5864 -vn 0.0000 0.8877 0.4603 -vn 0.0000 0.4372 0.8994 -vn 0.0000 0.3563 0.9344 -vn 0.0000 0.0622 -0.9981 -vn 0.0000 -0.3276 -0.9448 -vn 0.0000 0.3403 0.9403 -vn 0.0000 -0.5438 -0.8392 -vn 0.0000 -0.9411 0.3382 -vn 0.0000 -0.3867 0.9222 -vn 0.0000 -0.4862 0.8739 -vn 0.0000 -0.5780 -0.8160 -vn 0.0000 0.9933 -0.1158 -vn 0.0000 0.9943 -0.1065 -vn 0.0000 0.9998 0.0187 -vn 0.0000 0.5230 0.8523 -vn 0.0000 0.0182 0.9998 -vn 0.0000 0.9338 0.3578 -vn 0.0000 -0.7290 0.6845 -vn 0.0000 -0.9616 0.2745 -vn 0.0000 -0.4386 -0.8987 -vn 0.0000 -0.3274 -0.9449 -vn 0.0000 -0.9962 -0.0866 -vn 0.0000 -0.9120 -0.4103 -vn 0.0000 -0.6722 -0.7404 -vn 0.0000 -0.9995 -0.0317 -vn 0.7080 0.3088 0.6351 -vn 0.7072 0.3698 0.6026 -vn -0.7080 0.3088 0.6351 -vn -0.7072 0.3698 0.6026 -vn 0.7072 0.2520 0.6606 -vn 0.7071 0.2406 0.6649 -vn 0.7072 0.2519 0.6607 -vn -0.7071 0.2406 0.6649 -vn -0.7072 0.2520 0.6606 -vn -0.7072 0.2519 0.6607 -vn 0.7084 0.3334 0.6221 -vn 0.7138 0.1476 0.6846 -vn -0.7084 0.3333 0.6221 -vn -0.7138 0.1476 0.6846 -vn 0.7071 0.0129 0.7070 -vn -0.7071 0.0129 0.7070 -vn -0.0000 0.9524 0.3048 -vn 0.0000 -0.2132 0.9770 -vn 0.0000 -0.6337 0.7736 -vn 0.0000 0.9308 0.3656 -vn 0.0000 0.9982 0.0595 -vn 0.0000 0.6570 0.7539 -vn 0.0000 0.2580 0.9661 -vn 0.0000 0.7484 -0.6633 -vn 0.0000 0.9693 -0.2458 -vn 0.9853 0.1709 0.0000 -vn 0.9664 0.2570 0.0001 -vn 0.0000 -0.9442 -0.3293 -vn 0.0000 -0.9989 -0.0474 -vn 0.0000 0.4264 -0.9045 -vn 0.0000 -0.7977 0.6030 -vn 0.9757 -0.2189 0.0000 -vn 0.9625 -0.2713 0.0001 -vn -0.9751 -0.2217 0.0000 -vn -0.9616 -0.2746 0.0001 -vn -0.9752 -0.2212 0.0001 -vn 0.9664 0.2571 0.0001 -vn -0.9855 0.1695 0.0000 -vn 0.9663 0.2574 0.0000 -vn 0.9679 -0.2515 0.0000 -vn 0.9758 -0.2185 0.0001 -vn 0.9776 0.2106 0.0000 -vn -0.9670 0.2549 0.0001 -vn -0.9670 0.2548 0.0001 -vn -0.9673 -0.2536 0.0000 -vn -0.9669 0.2552 0.0000 -vn -0.9781 0.2081 0.0000 -vn 0.5733 0.2131 0.7912 -vn 0.5789 -0.1967 0.7913 -vn 0.5756 0.1979 0.7934 -vn 0.5053 0.4828 0.7152 -vn 0.5758 -0.2183 0.7879 -vn 0.5109 -0.4883 0.7075 -vn -0.5122 -0.4895 0.7058 -vn -0.5766 -0.2205 0.7867 -vn -0.5804 -0.1975 0.7900 -vn -0.5771 0.1993 0.7920 -vn -0.5746 0.2114 0.7907 -vn -0.5052 0.4828 0.7153 -vn 0.0000 -0.6762 -0.7367 -s 1 -f 331/675/160 332/676/160 333/677/160 -f 334/678/160 335/679/160 336/680/160 -f 337/681/161 338/682/161 339/683/161 -f 340/684/161 341/685/161 342/686/161 -f 343/687/162 339/688/163 344/689/163 -f 331/690/164 345/691/165 332/692/166 -f 344/693/167 338/694/167 331/690/167 -f 333/695/168 346/696/162 343/687/162 -f 335/697/169 337/698/170 333/695/168 -f 334/699/171 347/700/172 342/701/171 -f 348/702/173 347/700/172 349/703/172 -f 348/702/173 340/704/174 350/705/173 -f 335/697/169 332/706/166 336/707/175 -f 341/708/176 345/709/165 337/698/170 -f 341/710/176 334/699/171 342/701/171 -f 336/707/175 345/709/165 340/711/174 -f 333/677/160 343/712/160 344/713/160 -f 344/713/160 331/675/160 333/677/160 -f 336/680/160 348/714/160 334/678/160 -f 348/714/160 349/715/160 334/678/160 -f 339/683/161 346/716/161 337/681/161 -f 337/681/161 345/717/161 338/682/161 -f 347/718/161 350/719/161 342/686/161 -f 350/719/161 340/684/161 342/686/161 -f 343/687/162 346/696/162 339/688/163 -f 331/690/164 338/694/164 345/691/165 -f 344/693/167 339/720/167 338/694/167 -f 333/695/168 337/698/170 346/696/162 -f 335/697/169 341/708/176 337/698/170 -f 334/699/171 349/703/172 347/700/172 -f 348/702/173 350/705/173 347/700/172 -f 348/702/173 336/721/175 340/704/174 -f 335/697/169 333/695/168 332/706/166 -f 341/708/176 340/711/174 345/709/165 -f 341/710/176 335/722/169 334/699/171 -f 336/707/175 332/706/166 345/709/165 -f 351/723/160 352/724/160 353/725/160 -f 354/726/161 355/727/161 356/728/161 -f 352/729/177 357/730/178 358/731/178 -f 351/732/179 359/733/177 352/729/177 -f 360/734/180 361/735/179 351/732/179 -f 362/736/181 354/737/180 360/734/180 -f 363/738/182 355/739/181 362/736/181 -f 364/740/183 365/741/183 363/742/183 -f 366/743/184 367/744/185 364/740/185 -f 368/745/186 369/746/184 366/743/184 -f 370/747/187 356/748/186 368/745/186 -f 353/749/188 371/750/187 370/747/187 -f 372/751/189 373/752/189 353/749/189 -f 374/753/190 375/754/190 372/755/190 -f 358/731/191 376/756/191 374/753/191 -f 358/757/160 374/758/160 352/724/160 -f 374/758/160 372/759/160 353/725/160 -f 353/725/160 370/760/160 351/723/160 -f 370/760/160 368/761/160 351/723/160 -f 351/723/160 368/761/160 360/762/160 -f 374/758/160 353/725/160 352/724/160 -f 368/761/160 366/763/160 362/764/160 -f 360/762/160 368/761/160 362/764/160 -f 366/763/160 364/765/160 362/764/160 -f 364/765/160 363/766/160 362/764/160 -f 375/767/161 376/768/161 373/769/161 -f 376/768/161 357/770/161 359/771/161 -f 376/768/161 359/771/161 373/769/161 -f 356/728/161 371/772/161 361/773/161 -f 371/772/161 373/769/161 361/773/161 -f 373/769/161 359/771/161 361/773/161 -f 369/774/161 356/728/161 355/727/161 -f 365/775/161 367/776/161 355/727/161 -f 367/776/161 369/774/161 355/727/161 -f 356/728/161 361/773/161 354/726/161 -f 352/729/177 359/733/177 357/730/178 -f 351/732/179 361/735/179 359/733/177 -f 360/734/180 354/737/180 361/735/179 -f 362/736/181 355/739/181 354/737/180 -f 363/738/182 365/777/182 355/739/181 -f 364/740/183 367/744/192 365/741/183 -f 366/743/184 369/746/184 367/744/185 -f 368/745/186 356/748/186 369/746/184 -f 370/747/187 371/750/187 356/748/186 -f 353/749/188 373/752/188 371/750/187 -f 372/751/189 375/778/189 373/752/189 -f 374/753/190 376/756/190 375/754/190 -f 358/731/191 357/730/191 376/756/191 -f 377/779/193 378/780/194 379/781/195 -f 380/782/196 381/783/197 378/784/197 -f 381/785/198 382/786/199 383/787/200 -f 382/788/201 379/789/201 383/790/201 -f 384/791/201 385/792/201 386/793/201 -f 380/794/202 382/786/202 387/795/202 -f 383/790/201 384/791/201 388/796/201 -f 389/797/203 383/787/200 388/798/204 -f 378/784/197 389/799/205 390/800/205 -f 379/781/195 390/801/206 384/802/207 -f 391/803/208 386/804/209 392/805/210 -f 389/799/205 393/806/211 391/807/205 -f 392/808/210 385/809/212 394/810/213 -f 394/810/213 384/802/207 390/801/206 -f 391/803/208 395/811/214 396/812/215 -f 393/813/216 388/798/204 395/811/214 -f 377/779/193 380/794/193 378/780/194 -f 380/782/196 387/814/196 381/783/197 -f 381/785/198 387/795/199 382/786/199 -f 382/788/201 377/815/201 379/789/201 -f 386/793/201 396/816/201 388/796/201 -f 396/816/201 395/817/201 388/796/201 -f 388/796/201 384/791/201 386/793/201 -f 380/794/202 377/779/202 382/786/202 -f 383/790/201 379/789/201 384/791/201 -f 389/797/203 381/785/198 383/787/200 -f 378/784/197 381/783/197 389/799/205 -f 379/781/195 378/780/194 390/801/206 -f 391/803/208 396/812/215 386/804/209 -f 391/807/205 392/818/205 390/800/205 -f 392/818/205 394/819/211 390/800/205 -f 390/800/205 389/799/205 391/807/205 -f 392/808/210 386/820/209 385/809/212 -f 394/810/213 385/809/212 384/802/207 -f 391/803/208 393/813/216 395/811/214 -f 393/813/216 389/797/203 388/798/204 -f 397/821/217 398/822/217 399/823/217 -f 400/824/218 401/825/219 402/826/218 -f 403/827/219 404/828/220 401/829/219 -f 405/830/221 406/831/222 407/832/221 -f 408/833/217 409/834/217 405/835/217 -f 410/836/222 411/837/223 406/831/222 -f 411/837/223 400/824/224 402/826/224 -f 412/838/220 413/839/225 404/828/220 -f 414/840/160 415/841/160 413/839/160 -f 407/842/201 406/843/201 411/844/201 -f 416/845/202 417/846/202 418/847/202 -f 407/832/161 418/847/161 405/830/161 -f 413/848/201 416/849/201 407/842/201 -f 405/835/217 417/850/217 414/851/217 -f 399/852/224 408/853/224 419/854/224 -f 420/855/226 419/854/161 421/856/226 -f 422/857/217 400/858/217 423/859/217 -f 422/860/202 420/855/226 421/856/226 -f 424/861/227 422/862/202 425/863/227 -f 397/864/160 425/863/227 409/865/160 -f 408/853/218 397/864/218 409/865/218 -f 399/823/217 420/866/217 397/821/217 -f 420/866/217 426/867/217 397/821/217 -f 426/867/217 424/868/217 397/821/217 -f 400/824/218 403/869/219 401/825/219 -f 403/827/219 412/838/220 404/828/220 -f 405/830/221 410/836/222 406/831/222 -f 412/870/217 403/871/217 421/872/217 -f 412/870/217 421/872/217 419/873/217 -f 405/835/217 414/851/217 408/833/217 -f 414/851/217 412/870/217 419/873/217 -f 408/833/217 414/851/217 419/873/217 -f 409/834/217 410/874/217 405/835/217 -f 410/836/222 423/875/223 411/837/223 -f 411/837/223 423/875/223 400/824/224 -f 412/838/220 414/840/225 413/839/225 -f 414/840/160 417/846/160 415/841/160 -f 411/844/201 402/876/201 407/842/201 -f 402/876/201 401/877/201 413/848/201 -f 401/877/201 404/878/201 413/848/201 -f 413/848/201 407/842/201 402/876/201 -f 416/845/202 415/841/202 417/846/202 -f 407/832/161 416/845/161 418/847/161 -f 413/848/201 415/879/201 416/849/201 -f 405/835/217 418/880/217 417/850/217 -f 399/852/224 398/881/224 408/853/224 -f 420/855/226 399/852/161 419/854/161 -f 423/859/217 410/874/217 425/882/217 -f 410/874/217 409/834/217 425/882/217 -f 421/872/217 403/871/217 422/857/217 -f 403/871/217 400/858/217 422/857/217 -f 423/859/217 425/882/217 422/857/217 -f 422/860/202 426/883/202 420/855/226 -f 424/861/227 426/884/202 422/862/202 -f 397/864/160 424/861/227 425/863/227 -f 408/853/218 398/881/218 397/864/218 -f 427/885/228 428/886/229 429/887/230 -f 430/888/231 431/889/232 432/890/232 -f 433/891/233 434/892/233 435/893/233 -f 436/894/234 437/895/235 438/896/236 -f 438/896/236 439/897/237 440/898/238 -f 440/898/238 441/899/239 442/900/240 -f 442/900/240 443/901/241 444/902/242 -f 444/902/242 445/903/243 446/904/244 -f 447/905/245 448/906/246 449/907/247 -f 450/908/248 451/909/248 452/910/248 -f 432/890/232 453/911/249 454/912/249 -f 455/913/250 456/914/251 457/915/252 -f 458/916/253 459/917/254 460/918/255 -f 460/918/255 461/919/256 462/920/257 -f 462/920/257 463/921/258 427/885/228 -f 464/922/259 465/923/260 466/924/261 -f 467/925/262 468/926/263 469/927/264 -f 467/925/262 470/928/265 429/887/230 -f 471/929/266 472/930/267 470/928/265 -f 473/931/268 474/932/269 472/930/267 -f 467/925/262 475/933/270 471/929/266 -f 471/929/266 476/934/271 473/931/268 -f 473/931/268 477/935/272 478/936/273 -f 438/896/236 479/937/274 436/894/234 -f 480/938/275 481/939/276 479/937/274 -f 482/940/277 483/941/278 481/939/276 -f 440/898/238 480/938/275 438/896/236 -f 484/942/279 482/940/277 480/938/275 -f 485/943/280 486/944/281 482/940/277 -f 442/900/240 484/942/279 440/898/238 -f 487/945/282 485/943/280 484/942/279 -f 488/946/283 489/947/284 485/943/280 -f 442/900/240 490/948/285 487/945/282 -f 487/945/282 449/907/247 488/946/283 -f 488/946/283 448/906/246 491/949/286 -f 446/904/244 490/948/285 444/902/242 -f 492/950/287 493/951/288 494/952/289 -f 483/953/278 486/954/281 478/955/273 -f 458/916/253 495/956/290 496/957/291 -f 496/957/291 455/913/250 497/958/292 -f 466/924/293 497/958/294 454/959/295 -f 462/920/257 495/956/290 460/918/255 -f 498/960/296 455/913/250 495/956/290 -f 499/961/297 456/914/251 455/913/250 -f 462/920/257 500/962/298 498/960/296 -f 498/960/296 501/963/299 499/961/297 -f 499/961/297 502/964/300 503/965/301 -f 427/885/228 470/928/265 500/962/298 -f 500/962/298 472/930/267 501/963/299 -f 501/963/299 474/932/269 502/964/300 -f 504/966/302 505/967/303 506/968/304 -f 506/968/304 507/969/305 508/970/306 -f 508/970/306 509/971/307 428/886/229 -f 510/972/308 505/967/303 511/973/309 -f 512/974/310 507/969/305 505/967/303 -f 513/975/311 509/971/307 507/969/305 -f 514/976/312 515/977/313 433/978/314 -f 433/978/314 516/979/315 434/980/316 -f 434/980/316 437/895/235 435/981/317 -f 517/982/318 518/983/319 515/977/313 -f 515/977/313 519/984/320 516/979/315 -f 516/979/315 439/897/237 437/895/235 -f 520/985/321 521/986/322 518/983/319 -f 518/983/319 522/987/323 519/984/320 -f 519/984/320 441/899/239 439/897/237 -f 492/950/287 521/986/322 523/988/324 -f 494/952/289 522/987/323 521/986/322 -f 524/989/325 441/899/239 522/987/323 -f 493/951/288 450/990/326 524/989/325 -f 524/989/325 445/903/243 443/901/241 -f 525/991/327 526/992/328 447/905/245 -f 465/923/260 527/993/329 466/924/261 -f 528/994/330 529/995/331 527/993/329 -f 530/996/332 531/997/333 465/923/260 -f 465/923/260 532/998/334 528/994/330 -f 528/994/330 461/919/256 459/917/254 -f 533/999/335 531/997/333 534/1000/336 -f 535/1001/337 532/998/334 531/997/333 -f 536/1002/338 461/919/256 532/998/334 -f 504/966/302 535/1001/337 533/999/335 -f 506/968/304 536/1002/338 535/1001/337 -f 508/970/306 463/921/258 536/1002/338 -f 534/1003/336 492/1004/287 523/1005/324 -f 466/924/293 496/957/291 497/958/294 -f 527/993/329 458/916/253 496/957/291 -f 429/887/230 509/971/307 467/925/262 -f 457/1006/339 454/912/340 537/1007/341 -f 453/911/342 464/1008/343 538/1009/344 -f 430/888/345 539/1010/346 540/1011/347 -f 432/890/348 541/1012/349 430/888/345 -f 432/890/348 457/1006/339 542/1013/350 -f 543/1014/351 431/889/352 544/1015/353 -f 464/1008/343 431/889/352 545/1016/354 -f 452/910/355 493/1017/356 546/1018/357 -f 546/1018/358 544/1015/353 452/910/359 -f 540/1011/360 447/1019/361 526/1020/362 -f 540/1011/363 544/1015/231 430/888/231 -f 427/885/228 463/921/258 428/886/229 -f 430/888/231 544/1015/231 431/889/232 -f 435/893/233 436/1021/233 483/1022/233 -f 436/1021/233 479/1023/233 481/1024/233 -f 483/1022/233 436/1021/233 481/1024/233 -f 483/1022/233 477/1025/233 510/1026/233 -f 477/1025/233 476/1027/233 469/1028/233 -f 510/1026/233 477/1025/233 469/1028/233 -f 476/1027/233 475/1029/233 469/1028/233 -f 469/1028/233 468/1030/233 510/1026/233 -f 468/1030/233 513/1031/233 512/1032/233 -f 510/1026/233 468/1030/233 512/1032/233 -f 510/1026/233 514/1033/233 483/1022/233 -f 514/1033/233 433/891/233 435/893/233 -f 483/1022/233 514/1033/233 435/893/233 -f 436/894/234 435/981/317 437/895/235 -f 438/896/236 437/895/235 439/897/237 -f 440/898/238 439/897/237 441/899/239 -f 442/900/240 441/899/239 443/901/241 -f 444/902/242 443/901/241 445/903/243 -f 447/905/245 539/1034/364 448/906/246 -f 452/910/248 540/1011/248 446/1035/248 -f 540/1011/248 526/1020/248 525/1036/248 -f 446/1035/248 540/1011/248 525/1036/248 -f 446/1035/248 445/1037/248 452/910/248 -f 445/1037/248 450/908/248 452/910/248 -f 432/890/232 431/889/232 453/911/249 -f 537/1038/365 497/958/292 457/915/252 -f 497/958/292 455/913/250 457/915/252 -f 458/916/253 529/995/331 459/917/254 -f 460/918/255 459/917/254 461/919/256 -f 462/920/257 461/919/256 463/921/258 -f 466/924/261 538/1039/366 464/922/259 -f 464/922/259 530/996/332 465/923/260 -f 467/925/262 509/971/307 468/926/263 -f 467/925/262 471/929/266 470/928/265 -f 471/929/266 473/931/268 472/930/267 -f 473/931/268 478/936/273 474/932/269 -f 467/925/262 469/927/264 475/933/270 -f 471/929/266 475/933/270 476/934/271 -f 473/931/268 476/934/271 477/935/272 -f 438/896/236 480/938/275 479/937/274 -f 480/938/275 482/940/277 481/939/276 -f 482/940/277 486/944/281 483/941/278 -f 440/898/238 484/942/279 480/938/275 -f 484/942/279 485/943/280 482/940/277 -f 485/943/280 489/947/284 486/944/281 -f 442/900/240 487/945/282 484/942/279 -f 487/945/282 488/946/283 485/943/280 -f 488/946/283 491/949/286 489/947/284 -f 442/900/240 444/902/242 490/948/285 -f 487/945/282 490/948/285 449/907/247 -f 488/946/283 449/907/247 448/906/246 -f 446/904/244 525/991/327 490/948/285 -f 492/950/287 546/1040/367 493/951/288 -f 542/1041/160 457/1042/252 456/1043/251 -f 503/1044/301 502/1045/300 491/1046/286 -f 502/1045/300 474/1047/269 491/1046/286 -f 491/1046/286 474/1047/269 489/1048/284 -f 542/1041/160 456/1043/251 541/1049/160 -f 456/1043/251 503/1044/301 448/1050/246 -f 539/1051/364 541/1049/160 448/1050/246 -f 448/1050/246 541/1049/160 456/1043/251 -f 474/1047/269 478/955/273 489/1048/284 -f 491/1046/286 448/1050/246 503/1044/301 -f 478/955/273 477/1052/272 483/953/278 -f 489/1048/284 478/955/273 486/954/281 -f 458/916/253 460/918/255 495/956/290 -f 496/957/291 495/956/290 455/913/250 -f 497/958/294 537/1038/368 454/959/295 -f 454/959/295 453/1053/295 466/924/293 -f 453/1053/295 538/1039/369 466/924/293 -f 462/920/257 498/960/296 495/956/290 -f 498/960/296 499/961/297 455/913/250 -f 499/961/297 503/965/301 456/914/251 -f 462/920/257 427/885/228 500/962/298 -f 498/960/296 500/962/298 501/963/299 -f 499/961/297 501/963/299 502/964/300 -f 427/885/228 429/887/230 470/928/265 -f 500/962/298 470/928/265 472/930/267 -f 501/963/299 472/930/267 474/932/269 -f 504/966/302 511/973/309 505/967/303 -f 506/968/304 505/967/303 507/969/305 -f 508/970/306 507/969/305 509/971/307 -f 510/972/308 512/974/310 505/967/303 -f 512/974/310 513/975/311 507/969/305 -f 513/975/311 468/926/263 509/971/307 -f 514/976/312 517/982/318 515/977/313 -f 433/978/314 515/977/313 516/979/315 -f 434/980/316 516/979/315 437/895/235 -f 517/982/318 520/985/321 518/983/319 -f 515/977/313 518/983/319 519/984/320 -f 516/979/315 519/984/320 439/897/237 -f 520/985/321 523/988/324 521/986/322 -f 518/983/319 521/986/322 522/987/323 -f 519/984/320 522/987/323 441/899/239 -f 492/950/287 494/952/289 521/986/322 -f 494/952/289 524/989/325 522/987/323 -f 524/989/325 443/901/241 441/899/239 -f 524/989/325 494/952/289 493/951/288 -f 493/951/288 451/1054/370 450/990/326 -f 524/989/325 450/990/326 445/903/243 -f 449/907/247 490/948/285 447/905/245 -f 490/948/285 525/991/327 447/905/245 -f 465/923/260 528/994/330 527/993/329 -f 528/994/330 459/917/254 529/995/331 -f 530/996/332 534/1000/336 531/997/333 -f 465/923/260 531/997/333 532/998/334 -f 528/994/330 532/998/334 461/919/256 -f 533/999/335 535/1001/337 531/997/333 -f 535/1001/337 536/1002/338 532/998/334 -f 536/1002/338 463/921/258 461/919/256 -f 504/966/302 506/968/304 535/1001/337 -f 506/968/304 508/970/306 536/1002/338 -f 508/970/306 428/886/229 463/921/258 -f 530/1055/332 464/1056/259 545/1057/161 -f 545/1057/161 543/1058/161 530/1055/332 -f 543/1058/161 546/1059/367 492/1004/287 -f 543/1058/161 492/1004/287 530/1055/332 -f 534/1003/336 530/1055/332 492/1004/287 -f 504/1060/302 533/1061/335 523/1005/324 -f 533/1061/335 534/1003/336 523/1005/324 -f 510/1062/308 511/1063/309 514/1064/312 -f 511/1063/309 504/1060/302 520/1065/321 -f 517/1066/318 514/1064/312 511/1063/309 -f 520/1065/321 517/1066/318 511/1063/309 -f 523/1005/324 520/1065/321 504/1060/302 -f 466/924/293 527/993/329 496/957/291 -f 527/993/329 529/995/331 458/916/253 -f 429/887/230 428/886/229 509/971/307 -f 430/888/345 541/1012/349 539/1010/346 -f 432/890/348 542/1013/350 541/1012/349 -f 432/890/348 454/912/340 457/1006/339 -f 543/1014/351 545/1016/354 431/889/352 -f 464/1008/343 453/911/342 431/889/352 -f 452/910/355 451/909/371 493/1017/356 -f 546/1018/358 543/1014/351 544/1015/353 -f 540/1011/360 539/1010/372 447/1019/361 -f 540/1011/363 452/910/363 544/1015/231 -f 547/1067/373 548/1068/374 549/1069/373 -f 550/1070/375 551/1071/376 552/1072/376 -f 553/1073/377 554/1074/378 555/1075/378 -f 556/1076/379 557/1077/380 558/1078/380 -f 559/1079/381 560/1080/382 561/1081/381 -f 558/1078/380 562/1082/383 563/1083/383 -f 564/1084/384 565/1085/384 566/1086/384 -f 566/1086/385 567/1087/385 568/1088/385 -f 568/1088/386 569/1089/387 570/1090/387 -f 571/1091/233 572/1092/233 573/1093/233 -f 573/1093/217 574/1094/217 575/1095/217 -f 575/1096/388 576/1097/388 577/1098/388 -f 578/1099/217 577/1098/217 579/1100/217 -f 580/1101/202 581/1102/389 582/1103/389 -f 582/1103/389 583/1104/390 584/1105/390 -f 584/1105/390 585/1106/391 550/1070/391 -f 548/1068/374 586/1107/392 587/1108/392 -f 551/1071/376 553/1073/377 552/1072/376 -f 588/1109/393 547/1067/373 549/1069/373 -f 554/1074/378 589/1110/394 555/1075/378 -f 586/1107/392 556/1076/379 587/1108/392 -f 569/1089/387 590/1111/395 570/1090/387 -f 591/1112/395 592/1113/396 590/1111/395 -f 593/1114/397 594/1115/398 571/1091/398 -f 595/1116/399 596/1117/400 597/1118/399 -f 598/1119/400 599/1120/401 596/1117/400 -f 600/1121/401 593/1114/397 599/1120/401 -f 601/1122/402 602/1123/402 603/1124/402 -f 604/1125/403 587/1108/404 556/1076/403 -f 605/1126/405 586/1107/406 606/1127/406 -f 558/1078/407 603/1128/408 607/1129/409 -f 601/1130/410 557/1077/411 608/1131/412 -f 609/1132/413 549/1069/414 548/1068/413 -f 610/1133/415 547/1067/416 611/1134/416 -f 588/1109/417 612/1135/414 613/1136/417 -f 548/1068/413 614/1137/404 609/1132/413 -f 611/1134/416 615/1138/418 616/1139/418 -f 606/1127/406 617/1140/415 610/1133/415 -f 558/1078/407 604/1125/403 556/1076/403 -f 605/1126/405 557/1077/411 618/1141/405 -f 619/1142/394 616/1143/419 615/1144/419 -f 620/1145/396 597/1118/399 592/1113/396 -f 621/1146/161 622/1147/161 623/1148/161 -f 624/1149/420 625/1150/421 626/1151/421 -f 627/1152/160 628/1153/160 552/1154/160 -f 629/1155/422 630/1156/423 631/1157/422 -f 632/1158/424 629/1155/422 631/1157/422 -f 633/1159/425 634/1160/424 632/1158/424 -f 635/1161/426 636/1162/427 637/1163/426 -f 636/1162/427 630/1156/423 638/1164/423 -f 639/1165/428 640/1166/429 580/1167/160 -f 634/1168/161 641/1169/161 600/1170/161 -f 622/1171/430 642/1172/431 643/1173/430 -f 644/1174/432 637/1163/426 645/1175/432 -f 561/1081/381 645/1175/432 559/1079/381 -f 641/1176/425 646/1177/420 624/1178/420 -f 625/1150/421 647/1179/433 626/1151/421 -f 648/1180/201 649/1181/201 650/1182/201 -f 651/1183/202 652/1184/202 653/1185/202 -f 654/1186/217 628/1187/217 655/1188/217 -f 656/1189/233 639/1190/233 657/1191/233 -f 599/1192/160 633/1193/160 632/1194/160 -f 649/1195/434 575/1196/160 577/1197/435 -f 574/1198/161 648/1199/436 576/1200/437 -f 648/1199/436 658/1201/438 576/1200/437 -f 639/1165/428 659/1202/439 640/1166/429 -f 656/1203/440 581/1204/161 660/1205/161 -f 661/1206/441 662/1207/442 659/1202/439 -f 663/1208/442 664/1209/442 662/1207/442 -f 665/1210/443 649/1195/434 577/1197/435 -f 666/1211/444 665/1210/443 667/1212/444 -f 578/1213/444 666/1211/444 667/1212/444 -f 668/1214/442 578/1213/444 664/1209/442 -f 669/1215/445 656/1203/440 670/1216/446 -f 671/1217/447 672/1218/448 669/1215/445 -f 673/1219/447 674/1220/447 671/1217/447 -f 668/1221/201 656/1222/201 675/1223/201 -f 676/1224/449 673/1219/447 579/1225/449 -f 677/1226/449 579/1225/449 678/1227/449 -f 658/1201/438 677/1226/449 678/1227/449 -f 679/1228/217 680/1229/217 681/1230/217 -f 680/1229/217 655/1188/217 681/1230/217 -f 627/1152/450 681/1231/451 655/1232/452 -f 628/1153/453 627/1152/450 655/1232/452 -f 681/1231/451 682/1233/454 679/1234/455 -f 621/1146/456 683/1235/457 680/1236/458 -f 654/1237/459 684/1238/460 685/1239/461 -f 680/1236/458 684/1238/460 654/1237/459 -f 686/1240/462 687/1241/382 623/1242/462 -f 623/1242/462 643/1173/430 686/1240/462 -f 547/1067/373 617/1140/374 548/1068/374 -f 550/1070/375 585/1106/375 551/1071/376 -f 553/1073/377 688/1243/377 554/1074/378 -f 556/1076/379 618/1141/379 557/1077/380 -f 559/1079/381 687/1241/382 560/1080/382 -f 558/1078/380 557/1077/380 562/1082/383 -f 564/1084/384 602/1123/384 565/1085/384 -f 566/1086/385 565/1085/385 567/1087/385 -f 568/1088/386 567/1087/386 569/1089/387 -f 571/1091/233 594/1115/233 572/1092/233 -f 573/1093/217 572/1092/217 574/1094/217 -f 575/1096/388 574/1244/388 576/1097/388 -f 660/1245/217 580/1246/217 670/1247/217 -f 580/1246/217 640/1248/217 670/1247/217 -f 640/1248/217 659/1249/217 662/1250/217 -f 640/1248/217 662/1250/217 664/1251/217 -f 671/1252/217 669/1253/217 670/1247/217 -f 673/1254/217 671/1252/217 670/1247/217 -f 670/1247/217 640/1248/217 664/1251/217 -f 578/1099/217 667/1255/217 577/1098/217 -f 667/1255/217 665/1256/217 577/1098/217 -f 670/1247/217 664/1251/217 673/1254/217 -f 664/1251/217 578/1099/217 673/1254/217 -f 579/1100/217 673/1254/217 578/1099/217 -f 658/1257/217 678/1258/217 576/1097/217 -f 678/1258/217 579/1100/217 576/1097/217 -f 577/1098/217 576/1097/217 579/1100/217 -f 580/1101/202 660/1259/202 581/1102/389 -f 582/1103/389 581/1102/389 583/1104/390 -f 584/1105/390 583/1104/390 585/1106/391 -f 548/1068/374 617/1140/374 586/1107/392 -f 551/1071/376 688/1243/377 553/1073/377 -f 588/1109/393 615/1138/393 547/1067/373 -f 554/1074/378 619/1142/394 589/1110/394 -f 586/1107/392 618/1141/379 556/1076/379 -f 569/1089/387 591/1112/395 590/1111/395 -f 591/1112/395 620/1145/396 592/1113/396 -f 593/1114/397 689/1260/397 594/1115/398 -f 595/1116/399 598/1119/400 596/1117/400 -f 598/1119/400 600/1121/401 599/1120/401 -f 600/1121/401 689/1260/397 593/1114/397 -f 602/1123/402 564/1084/402 603/1124/402 -f 603/1124/402 563/1261/402 562/1262/402 -f 562/1262/402 601/1122/402 603/1124/402 -f 604/1125/403 614/1137/404 587/1108/404 -f 605/1126/405 618/1141/405 586/1107/406 -f 558/1078/407 563/1083/408 603/1128/408 -f 601/1130/410 562/1082/410 557/1077/411 -f 609/1132/413 612/1135/414 549/1069/414 -f 610/1133/415 617/1140/415 547/1067/416 -f 588/1109/417 549/1069/414 612/1135/414 -f 548/1068/413 587/1108/404 614/1137/404 -f 611/1134/416 547/1067/416 615/1138/418 -f 606/1127/406 586/1107/406 617/1140/415 -f 558/1078/407 607/1129/409 604/1125/403 -f 605/1126/405 608/1131/412 557/1077/411 -f 615/1144/419 588/1263/419 619/1142/394 -f 588/1263/419 613/1264/419 589/1110/394 -f 619/1142/394 588/1263/419 589/1110/394 -f 620/1145/396 595/1116/399 597/1118/399 -f 565/1265/161 602/1266/161 605/1267/161 -f 602/1266/161 601/1268/161 608/1269/161 -f 605/1267/161 602/1266/161 608/1269/161 -f 605/1267/161 606/1270/161 565/1265/161 -f 606/1270/161 610/1271/161 565/1265/161 -f 611/1272/161 616/1273/161 619/1274/161 -f 610/1271/161 611/1272/161 565/1265/161 -f 611/1272/161 619/1274/161 565/1265/161 -f 619/1274/161 554/1275/161 565/1265/161 -f 591/1276/161 569/1277/161 645/1278/161 -f 569/1277/161 567/1279/161 645/1278/161 -f 567/1279/161 565/1265/161 687/1280/161 -f 683/1235/161 688/1281/161 684/1238/161 -f 554/1275/161 688/1281/161 683/1235/161 -f 565/1265/161 554/1275/161 683/1235/161 -f 688/1281/161 551/1282/161 684/1238/161 -f 620/1283/161 591/1276/161 637/1284/161 -f 585/1285/161 583/1286/161 685/1239/161 -f 583/1286/161 581/1204/161 690/1287/161 -f 685/1239/161 583/1286/161 690/1287/161 -f 637/1284/161 636/1288/161 620/1283/161 -f 645/1278/161 637/1284/161 591/1276/161 -f 551/1282/161 585/1285/161 685/1239/161 -f 551/1282/161 685/1239/161 684/1238/161 -f 559/1289/161 645/1278/161 567/1279/161 -f 565/1265/161 683/1235/161 623/1148/161 -f 687/1280/161 559/1289/161 567/1279/161 -f 623/1148/161 687/1280/161 565/1265/161 -f 683/1235/161 621/1146/161 623/1148/161 -f 621/1146/161 653/1290/161 647/1291/161 -f 621/1146/161 647/1291/161 622/1147/161 -f 624/1149/420 646/1292/420 625/1150/421 -f 603/1293/160 564/1294/160 607/1295/160 -f 564/1294/160 566/1296/160 604/1297/160 -f 607/1295/160 564/1294/160 604/1297/160 -f 568/1298/160 570/1299/160 644/1300/160 -f 570/1299/160 590/1301/160 644/1300/160 -f 590/1301/160 592/1302/160 635/1303/160 -f 644/1300/160 590/1301/160 635/1303/160 -f 614/1304/160 604/1297/160 566/1296/160 -f 609/1305/160 614/1304/160 566/1296/160 -f 609/1305/160 566/1296/160 612/1306/160 -f 566/1296/160 568/1298/160 560/1307/160 -f 612/1306/160 566/1296/160 589/1308/160 -f 589/1308/160 613/1309/160 612/1306/160 -f 589/1308/160 566/1296/160 555/1310/160 -f 592/1302/160 691/1311/160 635/1303/160 -f 555/1310/160 566/1296/160 682/1233/160 -f 568/1298/160 644/1300/160 561/1312/160 -f 686/1313/160 566/1296/160 560/1307/160 -f 553/1314/160 555/1310/160 682/1233/160 -f 566/1296/160 686/1313/160 682/1233/160 -f 568/1298/160 561/1312/160 560/1307/160 -f 552/1154/160 553/1314/160 627/1152/160 -f 582/1315/160 584/1316/160 657/1317/160 -f 584/1316/160 550/1318/160 628/1153/160 -f 628/1153/160 657/1317/160 584/1316/160 -f 643/1319/160 642/1320/160 679/1234/160 -f 642/1320/160 692/1321/160 679/1234/160 -f 553/1314/160 682/1233/160 627/1152/160 -f 686/1313/160 643/1319/160 679/1234/160 -f 682/1233/160 686/1313/160 679/1234/160 -f 628/1153/160 550/1318/160 552/1154/160 -f 629/1155/422 638/1164/423 630/1156/423 -f 632/1158/424 634/1160/424 629/1155/422 -f 633/1159/425 641/1176/425 634/1160/424 -f 635/1161/426 691/1322/427 636/1162/427 -f 636/1162/427 691/1322/427 630/1156/423 -f 580/1167/160 582/1315/160 639/1165/428 -f 582/1315/160 657/1317/160 639/1165/428 -f 595/1323/161 620/1283/161 636/1288/161 -f 595/1323/161 636/1288/161 638/1324/161 -f 600/1170/161 598/1325/161 634/1168/161 -f 598/1325/161 595/1323/161 629/1326/161 -f 594/1327/161 689/1328/161 624/1329/161 -f 689/1328/161 600/1170/161 641/1169/161 -f 574/1198/161 572/1330/161 652/1331/161 -f 572/1330/161 594/1327/161 652/1331/161 -f 652/1331/161 693/1332/161 574/1198/161 -f 647/1291/161 653/1290/161 626/1333/161 -f 653/1290/161 652/1331/161 594/1327/161 -f 626/1333/161 653/1290/161 594/1327/161 -f 595/1323/161 638/1324/161 629/1326/161 -f 598/1325/161 629/1326/161 634/1168/161 -f 689/1328/161 641/1169/161 624/1329/161 -f 624/1329/161 626/1333/161 594/1327/161 -f 622/1171/430 647/1179/431 642/1172/431 -f 644/1174/432 635/1161/426 637/1163/426 -f 561/1081/381 644/1174/432 645/1175/432 -f 641/1176/425 633/1159/425 646/1177/420 -f 625/1150/421 642/1172/433 647/1179/433 -f 693/1334/201 652/1335/201 694/1336/201 -f 652/1335/201 651/1337/201 694/1336/201 -f 677/1338/201 695/1339/201 648/1180/201 -f 648/1180/201 693/1334/201 649/1181/201 -f 693/1334/201 694/1336/201 649/1181/201 -f 649/1181/201 696/1340/201 666/1341/201 -f 676/1342/201 677/1338/201 648/1180/201 -f 666/1341/201 650/1182/201 649/1181/201 -f 650/1182/201 676/1342/201 648/1180/201 -f 653/1185/202 621/1343/202 679/1344/202 -f 679/1344/202 692/1345/202 653/1185/202 -f 692/1345/202 651/1183/202 653/1185/202 -f 654/1186/217 685/1346/217 628/1187/217 -f 657/1191/233 628/1347/233 685/1348/233 -f 685/1348/233 690/1349/233 657/1191/233 -f 690/1349/233 656/1189/233 657/1191/233 -f 573/1350/160 575/1196/160 651/1351/160 -f 575/1196/160 694/1352/160 651/1351/160 -f 651/1351/160 692/1321/160 571/1353/160 -f 692/1321/160 642/1320/160 625/1354/160 -f 599/1192/160 593/1355/160 633/1193/160 -f 593/1355/160 571/1353/160 646/1356/160 -f 633/1193/160 593/1355/160 646/1356/160 -f 571/1353/160 573/1350/160 651/1351/160 -f 692/1321/160 625/1354/160 571/1353/160 -f 625/1354/160 646/1356/160 571/1353/160 -f 597/1357/160 596/1358/160 631/1359/160 -f 596/1358/160 599/1192/160 632/1194/160 -f 631/1359/160 596/1358/160 632/1194/160 -f 691/1311/160 592/1302/160 597/1357/160 -f 630/1360/160 691/1311/160 597/1357/160 -f 631/1359/160 630/1360/160 597/1357/160 -f 649/1195/434 694/1352/160 575/1196/160 -f 574/1198/161 693/1332/161 648/1199/436 -f 648/1199/436 695/1361/436 658/1201/438 -f 639/1165/428 661/1206/441 659/1202/439 -f 660/1205/161 670/1216/446 656/1203/440 -f 656/1203/440 690/1287/161 581/1204/161 -f 661/1206/441 663/1208/442 662/1207/442 -f 663/1208/442 668/1214/442 664/1209/442 -f 665/1210/443 696/1362/434 649/1195/434 -f 666/1211/444 696/1362/434 665/1210/443 -f 578/1213/444 650/1363/444 666/1211/444 -f 668/1214/442 650/1363/444 578/1213/444 -f 669/1215/445 672/1218/448 656/1203/440 -f 671/1217/447 674/1220/447 672/1218/448 -f 673/1219/447 675/1364/447 674/1220/447 -f 675/1223/201 676/1342/201 668/1221/201 -f 676/1342/201 650/1182/201 668/1221/201 -f 668/1221/201 663/1365/201 639/1366/201 -f 663/1365/201 661/1367/201 639/1366/201 -f 672/1368/201 674/1369/201 656/1222/201 -f 674/1369/201 675/1223/201 656/1222/201 -f 639/1366/201 656/1222/201 668/1221/201 -f 676/1224/449 675/1364/447 673/1219/447 -f 677/1226/449 676/1224/449 579/1225/449 -f 658/1201/438 695/1361/436 677/1226/449 -f 679/1228/217 621/1370/217 680/1229/217 -f 680/1229/217 654/1186/217 655/1188/217 -f 627/1152/450 682/1233/454 681/1231/451 -f 680/1236/458 683/1235/457 684/1238/460 -f 686/1240/462 560/1080/382 687/1241/382 -f 623/1242/462 622/1171/430 643/1173/430 -o Cylinder -v -0.126087 0.227980 0.137402 -v 0.126087 0.227980 0.774998 -v -0.126086 0.227980 0.774998 -v 0.126086 0.227980 0.137402 -v 0.304400 0.406294 0.774998 -v 0.304400 0.406293 0.137402 -v 0.304400 0.658466 0.774998 -v 0.304400 0.658466 0.137402 -v 0.126087 0.836780 0.774998 -v 0.126086 0.836780 0.137402 -v -0.126086 0.836780 0.774998 -v -0.126087 0.836780 0.137402 -v -0.304400 0.658467 0.774998 -v -0.304400 0.658466 0.137402 -v -0.304400 0.406294 0.774998 -v -0.304400 0.406294 0.137402 -vt 0.246533 0.894427 -vt 0.118900 0.944907 -vt 0.118900 0.894427 -vt 0.246533 0.944907 -vt 0.118900 0.995387 -vt 0.246533 0.591549 -vt 0.118900 0.642029 -vt 0.118900 0.591549 -vt 0.246533 0.642029 -vt 0.118900 0.692509 -vt 0.246533 0.692509 -vt 0.118900 0.742988 -vt 0.246533 0.742988 -vt 0.118900 0.793468 -vt 0.375332 0.627244 -vt 0.375332 0.677724 -vt 0.253463 0.627244 -vt 0.246533 0.793468 -vt 0.118900 0.843948 -vt 0.246533 0.843948 -vt 0.339638 0.713512 -vt 0.375332 0.799686 -vt 0.289158 0.835381 -vt 0.246533 0.995387 -vt 0.339638 0.713418 -vt 0.289158 0.713418 -vt 0.253463 0.677724 -vt 0.289158 0.591549 -vt 0.339638 0.591549 -vt 0.253464 0.799686 -vt 0.253463 0.749207 -vt 0.289158 0.713512 -vt 0.375332 0.749207 -vt 0.339638 0.835381 -vn -0.3827 -0.9239 0.0000 -vn 0.3827 -0.9239 -0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.3827 0.9239 -0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -0.9239 -0.3827 0.0000 -vn 0.0000 -0.0000 1.0000 -s 1 -f 697/1371/463 698/1372/464 699/1373/463 -f 700/1374/464 701/1375/465 698/1372/464 -f 702/1376/465 703/1377/466 701/1378/465 -f 704/1379/466 705/1380/467 703/1377/466 -f 706/1381/467 707/1382/468 705/1380/467 -f 708/1383/468 709/1384/469 707/1382/468 -f 704/1385/470 702/1386/470 710/1387/470 -f 710/1388/469 711/1389/471 709/1384/469 -f 712/1390/471 699/1373/463 711/1389/471 -f 703/1391/472 707/1392/472 711/1393/472 -f 697/1371/463 700/1374/464 698/1372/464 -f 700/1374/464 702/1394/465 701/1375/465 -f 702/1376/465 704/1379/466 703/1377/466 -f 704/1379/466 706/1381/467 705/1380/467 -f 706/1381/467 708/1383/468 707/1382/468 -f 708/1383/468 710/1388/469 709/1384/469 -f 702/1386/470 700/1395/470 697/1396/470 -f 697/1396/470 712/1397/470 702/1386/470 -f 712/1397/470 710/1387/470 702/1386/470 -f 710/1387/470 708/1398/470 706/1399/470 -f 706/1399/470 704/1385/470 710/1387/470 -f 710/1388/469 712/1390/471 711/1389/471 -f 712/1390/471 697/1371/463 699/1373/463 -f 711/1393/472 699/1400/472 698/1401/472 -f 698/1401/472 701/1402/472 703/1391/472 -f 703/1391/472 705/1403/472 707/1392/472 -f 707/1392/472 709/1404/472 711/1393/472 -f 711/1393/472 698/1401/472 703/1391/472 diff --git a/src/main/resources/assets/hbm/models/weapons/panzerschreck.obj b/src/main/resources/assets/hbm/models/weapons/panzerschreck.obj new file mode 100644 index 000000000..150595f9b --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/panzerschreck.obj @@ -0,0 +1,3929 @@ +# Blender v2.79 (sub 0) OBJ File: 'panzerschreck.blend' +# www.blender.org +o Shield +v -0.500000 -1.500000 1.687500 +v 2.500000 -1.500000 1.687500 +v -0.500000 1.500000 1.687500 +v 2.500000 1.500000 1.687500 +v 0.500000 -2.000000 1.687500 +v 1.500000 -2.000000 1.687500 +v 1.500000 2.000000 1.687500 +v 0.500000 2.000000 1.687500 +v -0.500000 0.500000 1.687500 +v -0.500000 -0.500000 1.687500 +v 0.500000 0.500000 1.687500 +v 0.500000 -0.500000 1.687500 +v -0.500000 -0.500000 1.812500 +v -0.500000 -1.500000 1.812500 +v 1.500000 -2.000000 1.812500 +v 2.500000 -1.500000 1.812500 +v 2.500000 1.500000 1.812500 +v 0.500000 2.000000 1.812500 +v -0.500000 1.500000 1.812500 +v 0.500000 -2.000000 1.812500 +v 1.500000 2.000000 1.812500 +v -0.500000 0.500000 1.812500 +v 0.500000 0.500000 1.812500 +v 0.500000 -0.500000 1.812500 +v 0.375000 0.625000 1.687500 +v 1.125000 0.625000 1.687500 +v 0.375000 1.375000 1.687500 +v 1.125000 1.375000 1.687500 +v 0.375000 1.375000 1.812500 +v 0.375000 0.625000 1.812500 +v 1.125000 0.625000 1.812500 +v 1.125000 1.375000 1.812500 +vt 0.179612 0.909091 +vt 0.165049 0.984848 +vt 0.126214 0.924242 +vt 0.208738 0.818182 +vt 0.179612 0.833333 +vt 0.179612 0.818182 +vt 0.242718 0.681818 +vt 0.203883 0.696970 +vt 0.203883 0.681818 +vt -0.000000 0.560606 +vt 0.004854 0.681818 +vt -0.000000 0.681818 +vt 0.043689 1.000000 +vt 0.082524 0.984848 +vt 0.082524 1.000000 +vt 0.043689 0.484848 +vt 0.004854 0.500000 +vt 0.004854 0.484848 +vt 0.038835 0.681818 +vt 0.043689 0.803030 +vt 0.038835 0.803030 +vt 0.121359 0.484848 +vt 0.082524 0.500000 +vt 0.082524 0.484848 +vt -0.000000 0.803030 +vt 0.004854 0.924242 +vt 0.000000 0.924242 +vt 0.043689 0.500000 +vt 0.121359 0.560606 +vt 0.126214 0.560606 +vt 0.203883 0.803030 +vt 0.242718 0.787879 +vt 0.242718 0.803030 +vt 0.121359 0.984848 +vt 0.121359 1.000000 +vt 0.004854 1.000000 +vt 0.043689 0.984848 +vt 0.063107 0.818182 +vt 0.067961 0.909091 +vt 0.063107 0.909091 +vt 0.121359 0.924242 +vt 0.067961 0.818182 +vt 0.203883 0.984848 +vt 0.208738 0.909091 +vt 0.004854 0.803030 +vt 0.038835 0.818182 +vt 0.242718 0.924242 +vt 0.043689 0.681818 +vt 0.203883 0.500000 +vt 0.242718 0.560606 +vt 0.043689 0.909091 +vt 0.043689 0.818182 +vt 0.208738 0.893939 +vt 0.208738 0.833333 +vt 0.242718 0.696970 +vt 0.004854 0.560606 +vt 0.121359 0.500000 +vt 0.203883 0.787879 +vt 0.004854 0.984848 +vt 0.038835 0.909091 +vt 0.165049 0.500000 +vt 0.179612 0.893939 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.4472 -0.8944 0.0000 +vn 0.4472 -0.8944 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.4472 0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 28/1/1 7/2/1 4/3/1 +f 25/4/2 31/5/2 26/6/2 +f 10/7/2 24/8/2 12/9/2 +f 1/10/3 13/11/3 10/12/3 +f 8/13/2 21/14/2 7/15/2 +f 5/16/4 14/17/4 1/18/4 +f 12/19/3 23/20/3 11/21/3 +f 2/22/5 15/23/5 6/24/5 +f 9/25/3 19/26/3 3/27/3 +f 6/24/6 20/28/6 5/16/6 +f 4/3/7 16/29/7 2/30/7 +f 11/31/6 22/32/6 9/33/6 +f 7/15/8 17/34/8 4/35/8 +f 3/36/9 18/37/9 8/13/9 +f 26/38/3 32/39/3 28/40/3 +f 17/41/10 32/39/10 31/42/10 +f 8/43/1 28/1/1 27/44/1 +f 18/37/10 32/39/10 21/14/10 +f 19/26/10 22/45/10 30/46/10 +f 25/4/1 9/33/1 3/47/1 +f 23/20/10 24/48/10 31/42/10 +f 11/31/1 25/4/1 26/6/1 +f 20/28/10 15/23/10 24/48/10 +f 12/9/1 5/49/1 1/50/1 +f 27/51/7 30/46/7 25/52/7 +f 28/1/6 29/53/6 27/44/6 +f 4/3/1 2/30/1 26/6/1 +f 26/6/1 28/1/1 4/3/1 +f 25/4/2 30/54/2 31/5/2 +f 10/7/2 13/55/2 24/8/2 +f 1/10/3 14/56/3 13/11/3 +f 8/13/2 18/37/2 21/14/2 +f 5/16/4 20/28/4 14/17/4 +f 12/19/3 24/48/3 23/20/3 +f 2/22/5 16/57/5 15/23/5 +f 9/25/3 22/45/3 19/26/3 +f 6/24/6 15/23/6 20/28/6 +f 4/3/7 17/41/7 16/29/7 +f 11/31/6 23/58/6 22/32/6 +f 7/15/8 21/14/8 17/34/8 +f 3/36/9 19/59/9 18/37/9 +f 26/38/3 31/42/3 32/39/3 +f 31/42/10 16/29/10 17/41/10 +f 17/41/10 21/14/10 32/39/10 +f 8/43/1 7/2/1 28/1/1 +f 18/37/10 29/60/10 32/39/10 +f 29/60/10 18/37/10 19/26/10 +f 22/45/10 23/20/10 30/46/10 +f 30/46/10 29/60/10 19/26/10 +f 3/47/1 8/43/1 27/44/1 +f 25/4/1 11/31/1 9/33/1 +f 3/47/1 27/44/1 25/4/1 +f 15/23/10 16/29/10 24/48/10 +f 16/29/10 31/42/10 24/48/10 +f 31/42/10 30/46/10 23/20/10 +f 26/6/1 2/30/1 12/9/1 +f 2/30/1 6/61/1 12/9/1 +f 12/9/1 11/31/1 26/6/1 +f 24/48/10 13/11/10 14/56/10 +f 14/56/10 20/28/10 24/48/10 +f 1/50/1 10/7/1 12/9/1 +f 12/9/1 6/61/1 5/49/1 +f 27/51/7 29/60/7 30/46/7 +f 28/1/6 32/62/6 29/53/6 +o Rocket +v 0.000000 0.437500 -6.375000 +v -0.167424 0.404197 -6.375000 +v -0.309359 0.309359 -6.375000 +v -0.404197 0.167424 -6.375000 +v -0.437500 -0.000000 -6.375000 +v -0.404197 -0.167424 -6.375000 +v -0.309359 -0.309359 -6.375000 +v -0.167424 -0.404197 -6.375000 +v 0.000000 -0.437500 -6.375000 +v 0.167424 -0.404197 -6.375000 +v 0.309359 -0.309360 -6.375000 +v 0.404197 -0.167424 -6.375000 +v 0.437500 -0.000000 -6.375000 +v 0.404197 0.167424 -6.375000 +v 0.309359 0.309359 -6.375000 +v 0.167424 0.404197 -6.375000 +v 0.000000 0.437500 -5.750000 +v -0.167424 0.404197 -5.750000 +v -0.309359 0.309359 -5.750000 +v -0.404197 0.167424 -5.750000 +v -0.437500 -0.000000 -5.750000 +v -0.404197 -0.167424 -5.750000 +v -0.309359 -0.309359 -5.750000 +v -0.167424 -0.404197 -5.750000 +v 0.000000 -0.437500 -5.750000 +v 0.167424 -0.404197 -5.750000 +v 0.309359 -0.309360 -5.750000 +v 0.404197 -0.167424 -5.750000 +v 0.437500 -0.000000 -5.750000 +v 0.404197 0.167424 -5.750000 +v 0.309359 0.309359 -5.750000 +v 0.167424 0.404197 -5.750000 +v 0.000000 0.375000 -6.375000 +v -0.143507 0.346455 -6.375000 +v -0.265165 0.265165 -6.375000 +v -0.346455 0.143506 -6.375000 +v -0.375000 0.000000 -6.375000 +v -0.346455 -0.143507 -6.375000 +v -0.265165 -0.265165 -6.375000 +v -0.143507 -0.346455 -6.375000 +v 0.000000 -0.375000 -6.375000 +v 0.143506 -0.346455 -6.375000 +v 0.265165 -0.265165 -6.375000 +v 0.346455 -0.143507 -6.375000 +v 0.375000 0.000000 -6.375000 +v 0.346455 0.143507 -6.375000 +v 0.265165 0.265165 -6.375000 +v 0.143506 0.346455 -6.375000 +v 0.000000 0.375000 -5.750000 +v -0.143507 0.346455 -5.750000 +v -0.265165 0.265165 -5.750000 +v -0.346455 0.143506 -5.750000 +v -0.375000 0.000000 -5.750000 +v -0.346455 -0.143507 -5.750000 +v -0.265165 -0.265165 -5.750000 +v -0.143507 -0.346455 -5.750000 +v 0.000000 -0.375000 -5.750000 +v 0.143506 -0.346455 -5.750000 +v 0.265165 -0.265165 -5.750000 +v 0.346455 -0.143507 -5.750000 +v 0.375000 0.000000 -5.750000 +v 0.346455 0.143507 -5.750000 +v 0.265165 0.265165 -5.750000 +v 0.143506 0.346455 -5.750000 +v 0.000000 0.250000 -6.375000 +v -0.095671 0.230970 -6.375000 +v -0.176777 0.176777 -6.375000 +v -0.230970 0.095671 -6.375000 +v -0.250000 -0.000000 -6.375000 +v -0.230970 -0.095671 -6.375000 +v -0.176777 -0.176777 -6.375000 +v -0.095671 -0.230970 -6.375000 +v 0.000000 -0.250000 -6.375000 +v 0.095671 -0.230970 -6.375000 +v 0.176776 -0.176777 -6.375000 +v 0.230970 -0.095671 -6.375000 +v 0.250000 -0.000000 -6.375000 +v 0.230970 0.095671 -6.375000 +v 0.176776 0.176777 -6.375000 +v 0.095671 0.230970 -6.375000 +v -0.095671 0.230972 -3.375000 +v 0.000000 0.250002 -3.375000 +v -0.176777 0.176779 -3.375000 +v -0.230970 0.095673 -3.375000 +v -0.250000 0.000002 -3.375000 +v -0.230970 -0.095669 -3.375000 +v -0.176777 -0.176775 -3.375000 +v -0.095671 -0.230968 -3.375000 +v 0.000000 -0.249998 -3.375000 +v 0.095671 -0.230968 -3.375000 +v 0.176776 -0.176775 -3.375000 +v 0.230970 -0.095669 -3.375000 +v 0.250000 0.000002 -3.375000 +v 0.230970 0.095673 -3.375000 +v 0.176776 0.176779 -3.375000 +v 0.095671 0.230972 -3.375000 +v -0.031250 0.406250 -5.750000 +v 0.031250 0.406250 -5.750000 +v -0.031250 0.406250 -6.250000 +v 0.031250 0.406250 -6.250000 +v -0.031250 0.218750 -5.250000 +v 0.031250 0.218750 -5.250000 +v -0.031250 0.218750 -6.250000 +v 0.031250 0.218750 -6.250000 +v 0.000000 0.437500 -2.250000 +v -0.167424 0.404197 -2.250000 +v -0.309359 0.309359 -2.250000 +v -0.404197 0.167424 -2.250000 +v -0.437500 -0.000000 -2.250000 +v -0.404197 -0.167424 -2.250000 +v -0.309359 -0.309359 -2.250000 +v -0.167424 -0.404197 -2.250000 +v 0.000000 -0.437500 -2.250000 +v 0.167424 -0.404197 -2.250000 +v 0.309359 -0.309360 -2.250000 +v 0.404197 -0.167424 -2.250000 +v 0.437500 -0.000000 -2.250000 +v 0.404197 0.167424 -2.250000 +v 0.309359 0.309359 -2.250000 +v 0.167424 0.404197 -2.250000 +v 0.000000 0.437500 -1.624000 +v -0.167424 0.404197 -1.624000 +v -0.309359 0.309359 -1.624000 +v -0.404197 0.167424 -1.624000 +v -0.437500 -0.000000 -1.624000 +v -0.404197 -0.167424 -1.624000 +v -0.309359 -0.309359 -1.624000 +v -0.167424 -0.404197 -1.624000 +v 0.000000 -0.437500 -1.624000 +v 0.167424 -0.404197 -1.624000 +v 0.309359 -0.309360 -1.624000 +v 0.404197 -0.167424 -1.624000 +v 0.437500 -0.000000 -1.624000 +v 0.404197 0.167424 -1.624000 +v 0.309359 0.309359 -1.624000 +v 0.167424 0.404197 -1.624000 +v 0.000000 0.375000 -1.624000 +v -0.143507 0.346455 -1.624000 +v -0.265165 0.265165 -1.624000 +v -0.346455 0.143506 -1.624000 +v -0.375000 0.000000 -1.624000 +v -0.346455 -0.143506 -1.624000 +v -0.265165 -0.265165 -1.624000 +v -0.143507 -0.346455 -1.624000 +v 0.000000 -0.375000 -1.624000 +v 0.143506 -0.346455 -1.624000 +v 0.265165 -0.265165 -1.624000 +v 0.346455 -0.143506 -1.624000 +v 0.375000 0.000000 -1.624000 +v 0.346455 0.143506 -1.624000 +v 0.265165 0.265165 -1.624000 +v 0.143506 0.346455 -1.624000 +v 0.000000 0.187500 -1.124000 +v -0.071754 0.173228 -1.124000 +v -0.132583 0.132583 -1.124000 +v -0.173227 0.071753 -1.124000 +v -0.187500 0.000000 -1.124000 +v -0.173227 -0.071753 -1.124000 +v -0.132583 -0.132582 -1.124000 +v -0.071754 -0.173227 -1.124000 +v 0.000000 -0.187500 -1.124000 +v 0.071753 -0.173227 -1.124000 +v 0.132582 -0.132582 -1.124000 +v 0.173227 -0.071753 -1.124000 +v 0.187500 0.000000 -1.124000 +v 0.173227 0.071753 -1.124000 +v 0.132582 0.132583 -1.124000 +v 0.071753 0.173228 -1.124000 +v 0.000000 0.187500 -0.624000 +v -0.071754 0.173228 -0.624000 +v -0.132583 0.132583 -0.624000 +v -0.173227 0.071753 -0.624000 +v -0.187500 0.000000 -0.624000 +v -0.173227 -0.071753 -0.624000 +v -0.132583 -0.132582 -0.624000 +v -0.071754 -0.173227 -0.624000 +v 0.000000 -0.187500 -0.624000 +v 0.071753 -0.173227 -0.624000 +v 0.132582 -0.132582 -0.624000 +v 0.173227 -0.071753 -0.624000 +v 0.187500 0.000000 -0.624000 +v 0.173227 0.071753 -0.624000 +v 0.132582 0.132583 -0.624000 +v 0.071753 0.173228 -0.624000 +v 0.000000 0.125000 -0.499000 +v -0.047836 0.115485 -0.499000 +v -0.088388 0.088389 -0.499000 +v -0.115485 0.047836 -0.499000 +v -0.125000 0.000000 -0.499000 +v -0.115485 -0.047835 -0.499000 +v -0.088388 -0.088388 -0.499000 +v -0.047836 -0.115485 -0.499000 +v 0.000000 -0.125000 -0.499000 +v 0.047835 -0.115485 -0.499000 +v 0.088388 -0.088388 -0.499000 +v 0.115485 -0.047835 -0.499000 +v 0.125000 0.000000 -0.499000 +v 0.115485 0.047836 -0.499000 +v 0.088388 0.088389 -0.499000 +v 0.047835 0.115485 -0.499000 +v -0.095671 0.230972 -2.875000 +v 0.000000 0.250002 -2.875000 +v -0.176777 0.176779 -2.875000 +v -0.230970 0.095673 -2.875000 +v -0.250000 0.000002 -2.875000 +v -0.230970 -0.095669 -2.875000 +v -0.176777 -0.176775 -2.875000 +v -0.095671 -0.230968 -2.875000 +v 0.000000 -0.249998 -2.875000 +v 0.095671 -0.230968 -2.875000 +v 0.176776 -0.176775 -2.875000 +v 0.230970 -0.095669 -2.875000 +v 0.250000 0.000002 -2.875000 +v 0.230970 0.095673 -2.875000 +v 0.176776 0.176779 -2.875000 +v 0.095671 0.230972 -2.875000 +v 0.000000 0.187500 -3.374000 +v -0.071754 0.173228 -3.374000 +v -0.132583 0.132583 -3.374000 +v -0.173227 0.071753 -3.374000 +v -0.187500 0.000000 -3.374000 +v -0.173227 -0.071753 -3.374000 +v -0.132583 -0.132582 -3.374000 +v -0.071754 -0.173227 -3.374000 +v 0.000000 -0.187500 -3.374000 +v 0.071753 -0.173227 -3.374000 +v 0.132582 -0.132582 -3.374000 +v 0.173227 -0.071753 -3.374000 +v 0.187500 0.000000 -3.374000 +v 0.173227 0.071753 -3.374000 +v 0.132582 0.132583 -3.374000 +v 0.071753 0.173228 -3.374000 +v 0.000000 0.187500 -2.874000 +v -0.071754 0.173228 -2.874000 +v -0.132583 0.132583 -2.874000 +v -0.173227 0.071753 -2.874000 +v -0.187500 0.000000 -2.874000 +v -0.173227 -0.071753 -2.874000 +v -0.132583 -0.132582 -2.874000 +v -0.071754 -0.173227 -2.874000 +v 0.000000 -0.187500 -2.874000 +v 0.071753 -0.173227 -2.874000 +v 0.132582 -0.132582 -2.874000 +v 0.173227 -0.071753 -2.874000 +v 0.187500 0.000000 -2.874000 +v 0.173227 0.071753 -2.874000 +v 0.132582 0.132583 -2.874000 +v 0.071753 0.173228 -2.874000 +v 0.031250 -0.406250 -5.750000 +v -0.031250 -0.406250 -5.750000 +v 0.031250 -0.406250 -6.250000 +v -0.031250 -0.406250 -6.250000 +v 0.031250 -0.218750 -5.250000 +v -0.031250 -0.218750 -5.250000 +v 0.031250 -0.218750 -6.250000 +v -0.031250 -0.218750 -6.250000 +v 0.406250 0.031250 -5.750000 +v 0.406250 -0.031250 -5.750000 +v 0.406250 0.031250 -6.250000 +v 0.406250 -0.031250 -6.250000 +v 0.218750 0.031250 -5.250000 +v 0.218750 -0.031250 -5.250000 +v 0.218750 0.031250 -6.250000 +v 0.218750 -0.031250 -6.250000 +v -0.406250 -0.031250 -5.750000 +v -0.406250 0.031250 -5.750000 +v -0.406250 -0.031250 -6.250000 +v -0.406250 0.031250 -6.250000 +v -0.218750 -0.031250 -5.250000 +v -0.218750 0.031250 -5.250000 +v -0.218750 -0.031250 -6.250000 +v -0.218750 0.031250 -6.250000 +v 0.265165 0.309359 -5.750000 +v 0.309359 0.265165 -5.750000 +v 0.265165 0.309359 -6.250000 +v 0.309359 0.265165 -6.250000 +v 0.132583 0.176777 -5.250000 +v 0.176777 0.132582 -5.250000 +v 0.132583 0.176777 -6.250000 +v 0.176777 0.132582 -6.250000 +v -0.265165 -0.309359 -5.750000 +v -0.309359 -0.265165 -5.750000 +v -0.265165 -0.309359 -6.250000 +v -0.309359 -0.265165 -6.250000 +v -0.132583 -0.176777 -5.250000 +v -0.176777 -0.132583 -5.250000 +v -0.132583 -0.176777 -6.250000 +v -0.176777 -0.132583 -6.250000 +v 0.309359 -0.265165 -5.750000 +v 0.265165 -0.309359 -5.750000 +v 0.309359 -0.265165 -6.250000 +v 0.265165 -0.309359 -6.250000 +v 0.176777 -0.132583 -5.250000 +v 0.132583 -0.176777 -5.250000 +v 0.176777 -0.132583 -6.250000 +v 0.132583 -0.176777 -6.250000 +v -0.309359 0.265165 -5.750000 +v -0.265165 0.309359 -5.750000 +v -0.309359 0.265165 -6.250000 +v -0.265165 0.309359 -6.250000 +v -0.176777 0.132582 -5.250000 +v -0.132583 0.176777 -5.250000 +v -0.176777 0.132582 -6.250000 +v -0.132583 0.176777 -6.250000 +vt 0.951456 0.818182 +vt 0.946602 0.833333 +vt 0.946602 0.818182 +vt 0.951456 0.833333 +vt 0.946602 0.848485 +vt 0.951456 0.848485 +vt 0.946602 0.863636 +vt 0.951456 0.878788 +vt 0.946602 0.878788 +vt 0.946602 0.893939 +vt 0.951456 0.893939 +vt 0.946602 0.909091 +vt 0.951456 0.924242 +vt 0.946602 0.924242 +vt 0.951456 0.939394 +vt 0.946602 0.939394 +vt 0.951456 0.954545 +vt 0.946602 0.954545 +vt 0.951456 0.969697 +vt 0.946602 0.969697 +vt 0.951456 0.984848 +vt 0.946602 0.984848 +vt 0.951456 1.000000 +vt 0.946602 1.000000 +vt 0.951456 0.757576 +vt 0.946602 0.772727 +vt 0.946602 0.757576 +vt 0.951456 0.772727 +vt 0.946602 0.787879 +vt 0.951456 0.787879 +vt 0.946602 0.803030 +vt 0.951456 0.803030 +vt 0.932039 0.848485 +vt 0.927184 0.833333 +vt 0.932039 0.833333 +vt 0.932039 0.863636 +vt 0.927184 0.848485 +vt 0.927184 0.878788 +vt 0.927184 0.863636 +vt 0.932039 0.893939 +vt 0.932039 0.878788 +vt 0.932039 0.909091 +vt 0.927184 0.893939 +vt 0.927184 0.924242 +vt 0.927184 0.909091 +vt 0.932039 0.924242 +vt 0.927184 0.939394 +vt 0.932039 0.939394 +vt 0.927184 0.954545 +vt 0.932039 0.954545 +vt 0.927184 0.969697 +vt 0.932039 0.969697 +vt 0.927184 0.984848 +vt 0.932039 0.984848 +vt 0.927184 1.000000 +vt 0.932039 0.772727 +vt 0.927184 0.757576 +vt 0.932039 0.757576 +vt 0.932039 0.787879 +vt 0.927184 0.772727 +vt 0.932039 0.803030 +vt 0.927184 0.787879 +vt 0.932039 0.818182 +vt 0.927184 0.803030 +vt 0.927184 0.818182 +vt 0.970863 0.924242 +vt 0.968023 0.945646 +vt 0.954307 0.902838 +vt 0.970874 0.863636 +vt 0.951456 0.848485 +vt 0.970874 0.848485 +vt 0.990291 0.848485 +vt 1.000000 0.863636 +vt 0.990291 0.863636 +vt 0.990291 0.818182 +vt 0.990291 0.893939 +vt 0.970874 0.863636 +vt 0.951456 0.848485 +vt 0.970874 0.848485 +vt 0.718447 0.833333 +vt 0.713592 0.818182 +vt 0.718447 0.818182 +vt 0.718447 0.848485 +vt 0.713592 0.833333 +vt 0.718447 0.863636 +vt 0.713592 0.848485 +vt 0.718447 0.878788 +vt 0.713592 0.863636 +vt 0.713592 0.893939 +vt 0.713592 0.878788 +vt 0.718447 0.893939 +vt 0.713592 0.909091 +vt 0.718447 0.909091 +vt 0.713592 0.924242 +vt 0.718447 0.924242 +vt 0.713592 0.939394 +vt 0.718447 0.939394 +vt 0.713592 0.954545 +vt 0.718447 0.954545 +vt 0.713592 0.969697 +vt 0.718447 0.969697 +vt 0.713592 0.984848 +vt 0.718447 0.984848 +vt 0.713592 1.000000 +vt 0.718447 0.772727 +vt 0.713592 0.757576 +vt 0.718447 0.757576 +vt 0.718447 0.787879 +vt 0.713592 0.772727 +vt 0.718447 0.803030 +vt 0.713592 0.787879 +vt 0.713592 0.803030 +vt 0.951467 0.969697 +vt 0.956311 0.954577 +vt 0.961155 0.969697 +vt 0.796117 0.818182 +vt 0.791262 0.833333 +vt 0.791262 0.818182 +vt 0.796117 0.833333 +vt 0.791262 0.848485 +vt 0.796117 0.848485 +vt 0.791262 0.863636 +vt 0.796117 0.863636 +vt 0.791262 0.878788 +vt 0.796117 0.893939 +vt 0.796117 0.878788 +vt 0.796117 0.909091 +vt 0.791262 0.893939 +vt 0.796117 0.924242 +vt 0.791262 0.909091 +vt 0.796117 0.939394 +vt 0.791262 0.924242 +vt 0.796117 0.954545 +vt 0.791262 0.939394 +vt 0.796117 0.969697 +vt 0.791262 0.954545 +vt 0.796117 0.984848 +vt 0.791262 0.969697 +vt 0.796117 1.000000 +vt 0.791262 0.984848 +vt 0.796117 0.757576 +vt 0.791262 0.772727 +vt 0.791262 0.757576 +vt 0.796117 0.772727 +vt 0.791262 0.787879 +vt 0.796117 0.787879 +vt 0.791262 0.803030 +vt 0.796117 0.803030 +vt 0.766990 0.833333 +vt 0.771845 0.848485 +vt 0.766990 0.848485 +vt 0.771845 0.863636 +vt 0.766990 0.863636 +vt 0.771845 0.878788 +vt 0.766990 0.878788 +vt 0.766990 0.893939 +vt 0.771845 0.893939 +vt 0.766990 0.909091 +vt 0.771845 0.909091 +vt 0.766990 0.924242 +vt 0.771845 0.924242 +vt 0.766990 0.939394 +vt 0.771845 0.939394 +vt 0.766990 0.954545 +vt 0.771845 0.954545 +vt 0.766990 0.969697 +vt 0.771845 0.969697 +vt 0.766990 0.984848 +vt 0.771845 0.984848 +vt 0.766990 1.000000 +vt 0.766990 0.757576 +vt 0.771845 0.772727 +vt 0.766990 0.772727 +vt 0.771845 0.787879 +vt 0.766990 0.787879 +vt 0.771845 0.803030 +vt 0.766990 0.803030 +vt 0.771845 0.818182 +vt 0.766990 0.818182 +vt 0.771845 0.833333 +vt 0.990291 0.848485 +vt 1.000000 0.863636 +vt 0.990291 0.863636 +vt 0.990291 0.818182 +vt 0.990291 0.893939 +vt 0.970874 0.863636 +vt 0.951456 0.848485 +vt 0.970874 0.848485 +vt 0.990291 0.848485 +vt 1.000000 0.863636 +vt 0.990291 0.863636 +vt 0.990291 0.818182 +vt 0.990291 0.893939 +vt 0.970874 0.863636 +vt 0.951456 0.848485 +vt 0.970874 0.848485 +vt 0.990291 0.848485 +vt 1.000000 0.863636 +vt 0.990291 0.863636 +vt 0.990291 0.818182 +vt 0.990291 0.893939 +vt 0.970874 0.863636 +vt 0.951456 0.848485 +vt 0.970874 0.848485 +vt 0.990291 0.863636 +vt 1.000000 0.848485 +vt 1.000000 0.863636 +vt 0.990291 0.818182 +vt 0.990291 0.848485 +vt 0.990291 0.893939 +vt 0.970874 0.863636 +vt 0.951456 0.848485 +vt 0.970874 0.848485 +vt 0.990291 0.848485 +vt 1.000000 0.863636 +vt 0.990291 0.863636 +vt 0.990291 0.818182 +vt 0.990291 0.893939 +vt 0.970874 0.848485 +vt 0.951456 0.863636 +vt 0.951456 0.848485 +vt 0.990291 0.848485 +vt 1.000000 0.863636 +vt 0.990291 0.863636 +vt 0.990291 0.818182 +vt 0.990291 0.893939 +vt 0.970874 0.863636 +vt 0.970874 0.848485 +vt 0.951456 0.863636 +vt 0.951456 0.848485 +vt 0.990291 0.848485 +vt 1.000000 0.863636 +vt 0.990291 0.863636 +vt 0.990291 0.818182 +vt 0.990291 0.893939 +vt 0.970874 0.863636 +vt 0.951456 0.863636 +vt 0.951456 0.909091 +vt 0.932039 1.000000 +vt 0.964876 0.952208 +vt 0.961165 0.954512 +vt 0.957454 0.952208 +vt 0.954307 0.945646 +vt 0.952205 0.935826 +vt 0.951467 0.924242 +vt 0.952205 0.912658 +vt 0.957454 0.896276 +vt 0.961165 0.893972 +vt 0.964876 0.896276 +vt 0.968023 0.902838 +vt 0.970125 0.912658 +vt 0.970125 0.935826 +vt 0.951456 0.863636 +vt 1.000000 0.848485 +vt 0.951456 0.818182 +vt 0.951456 0.893939 +vt 0.951456 0.863636 +vt 0.718447 1.000000 +vt 0.956311 0.984817 +vt 0.954457 0.983666 +vt 0.952885 0.980388 +vt 0.951835 0.975483 +vt 0.951835 0.963911 +vt 0.952885 0.959006 +vt 0.954457 0.955728 +vt 0.958164 0.955728 +vt 0.959736 0.959006 +vt 0.960786 0.963911 +vt 0.960786 0.975483 +vt 0.959736 0.980388 +vt 0.958164 0.983666 +vt 0.791262 1.000000 +vt 0.771845 1.000000 +vt 0.771845 0.757576 +vt 1.000000 0.848485 +vt 0.951456 0.818182 +vt 0.951456 0.893939 +vt 0.951456 0.863636 +vt 1.000000 0.848485 +vt 0.951456 0.818182 +vt 0.951456 0.893939 +vt 0.951456 0.863636 +vt 1.000000 0.848485 +vt 0.951456 0.818182 +vt 0.951456 0.893939 +vt 0.951456 0.863636 +vt 0.951456 0.818182 +vt 0.951456 0.893939 +vt 0.951456 0.863636 +vt 1.000000 0.848485 +vt 0.951456 0.818182 +vt 0.951456 0.893939 +vt 1.000000 0.848485 +vt 0.951456 0.818182 +vt 0.951456 0.893939 +vt 1.000000 0.848485 +vt 0.951456 0.818182 +vt 0.951456 0.893939 +vt 0.912621 0.803030 +vt 0.912621 0.818182 +vt 0.912621 0.939394 +vt 0.912621 0.954545 +vt 0.912621 0.833333 +vt 0.912621 0.969697 +vt 0.912621 0.848485 +vt 0.912621 0.984848 +vt 0.912621 0.863636 +vt 0.912621 1.000000 +vt 0.912621 0.878788 +vt 0.912621 0.893939 +vt 0.912621 0.757576 +vt 0.912621 0.772727 +vt 0.912621 0.909091 +vt 0.912621 0.787879 +vt 0.912621 0.924242 +vt 0.742718 0.833333 +vt 0.742718 0.818182 +vt 0.912621 0.969697 +vt 0.912621 0.954545 +vt 0.912621 0.848485 +vt 0.912621 0.833333 +vt 0.912621 0.863636 +vt 0.912621 0.984848 +vt 0.912621 0.893939 +vt 0.912621 0.878788 +vt 0.912621 0.757576 +vt 0.912621 0.909091 +vt 0.912621 0.787879 +vt 0.912621 0.772727 +vt 0.912621 0.803030 +vt 0.912621 0.939394 +vt 0.912621 0.924242 +vt 0.912621 0.818182 +vt 0.742718 0.803030 +vt 0.742718 0.787879 +vt 0.742718 0.772727 +vt 0.742718 0.757576 +vt 0.742718 0.984848 +vt 0.742718 1.000000 +vt 0.742718 0.969697 +vt 0.742718 0.954545 +vt 0.742718 0.939394 +vt 0.742718 0.924242 +vt 0.742718 0.909091 +vt 0.742718 0.893939 +vt 0.742718 0.878788 +vt 0.742718 0.863636 +vt 0.742718 0.848485 +vt 0.694175 0.893939 +vt 0.694175 0.878788 +vt 0.694175 0.863636 +vt 0.694175 0.848485 +vt 0.694175 0.833333 +vt 0.694175 0.818182 +vt 0.694175 0.803030 +vt 0.694175 0.787879 +vt 0.694175 0.772727 +vt 0.694175 0.757576 +vt 0.694175 0.984848 +vt 0.694175 0.969697 +vt 0.694175 0.954545 +vt 0.694175 0.939394 +vt 0.694175 0.924242 +vt 0.694175 0.909091 +vt 0.674757 0.772727 +vt 0.674757 0.909091 +vt 0.674757 0.787879 +vt 0.674757 0.924242 +vt 0.674757 0.803030 +vt 0.674757 0.939394 +vt 0.674757 0.818182 +vt 0.674757 0.954545 +vt 0.674757 0.833333 +vt 0.674757 0.969697 +vt 0.674757 0.848485 +vt 0.694175 1.000000 +vt 0.674757 0.984848 +vt 0.674757 0.878788 +vt 0.674757 0.863636 +vt 0.674757 0.757576 +vt 0.674757 0.893939 +vt 0.669903 0.848485 +vt 0.669903 0.833333 +vt 0.669903 0.818182 +vt 0.669903 0.803030 +vt 0.669903 0.787879 +vt 0.669903 0.772727 +vt 0.669903 0.757576 +vt 0.674757 1.000000 +vt 0.669903 0.984848 +vt 0.669903 0.969697 +vt 0.669903 0.954545 +vt 0.669903 0.939394 +vt 0.669903 0.924242 +vt 0.669903 0.909091 +vt 0.669903 0.893939 +vt 0.669903 0.878788 +vt 0.669903 0.863636 +vt 0.912621 1.000000 +vt 0.669903 1.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.9363 0.3511 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.9363 0.3511 +vn 0.0160 0.0032 0.9999 +vn 0.0136 0.0091 0.9999 +vn 0.0091 0.0136 0.9999 +vn 0.0032 0.0160 0.9999 +vn -0.0032 0.0160 0.9999 +vn -0.0091 0.0136 0.9999 +vn -0.0136 0.0091 0.9999 +vn -0.0160 0.0032 0.9999 +vn -0.0160 -0.0032 0.9999 +vn -0.0136 -0.0091 0.9999 +vn -0.0091 -0.0136 0.9999 +vn -0.0032 -0.0160 0.9999 +vn 0.0032 -0.0160 0.9999 +vn 0.0091 -0.0136 0.9999 +vn 0.0136 -0.0091 0.9999 +vn 0.0160 -0.0032 0.9999 +vn -0.0136 -0.0091 -0.9999 +vn -0.0091 -0.0136 -0.9999 +vn -0.0032 -0.0160 -0.9999 +vn 0.0032 -0.0160 -0.9999 +vn 0.0091 -0.0136 -0.9999 +vn 0.0136 -0.0091 -0.9999 +vn 0.0160 -0.0032 -0.9999 +vn 0.0160 0.0032 -0.9999 +vn 0.0136 0.0091 -0.9999 +vn 0.0091 0.0136 -0.9999 +vn 0.0032 0.0160 -0.9999 +vn -0.0032 0.0160 -0.9999 +vn -0.0091 0.0136 -0.9999 +vn -0.0136 0.0091 -0.9999 +vn -0.0160 0.0032 -0.9999 +vn -0.0160 -0.0032 -0.9999 +vn 0.9363 0.0000 0.3511 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9363 0.0000 0.3511 +vn 0.6621 0.6621 0.3511 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.6621 -0.6621 0.3511 +vn 0.6621 -0.6621 0.3511 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.6621 0.6621 0.3511 +vn -0.3827 -0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9578 0.0000 -0.2873 +vn 0.8849 0.3665 -0.2873 +vn 0.8849 -0.3665 -0.2873 +vn 0.6773 -0.6773 -0.2874 +vn 0.3665 -0.8849 -0.2874 +vn 0.0000 -0.9578 -0.2874 +vn -0.3665 -0.8849 -0.2874 +vn -0.6773 -0.6773 -0.2873 +vn -0.8849 -0.3665 -0.2873 +vn -0.9578 -0.0000 -0.2873 +vn -0.8849 0.3665 -0.2873 +vn -0.6773 0.6773 -0.2873 +vn -0.3665 0.8849 -0.2873 +vn 0.0000 0.9578 -0.2873 +vn 0.3665 0.8849 -0.2873 +vn 0.6773 0.6773 -0.2873 +vn -0.3583 0.8651 0.3511 +vn 0.3583 0.8651 0.3511 +vn 0.8651 0.3583 0.3511 +vn 0.8651 -0.3583 0.3511 +vn 0.3583 -0.8651 0.3511 +vn -0.3583 -0.8651 0.3511 +vn -0.8651 -0.3583 0.3511 +vn -0.8651 0.3583 0.3511 +vn 0.3423 0.8263 0.4472 +vn 0.6325 0.6325 0.4472 +vn 0.8263 0.3423 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.8263 -0.3423 0.4472 +vn 0.6325 -0.6325 0.4472 +vn 0.3423 -0.8263 0.4472 +vn 0.0000 -0.8944 0.4472 +vn -0.3423 -0.8263 0.4472 +vn -0.6325 -0.6325 0.4472 +vn -0.8263 -0.3423 0.4472 +vn -0.8944 0.0000 0.4472 +vn -0.8263 0.3423 0.4472 +vn -0.6325 0.6325 0.4472 +vn -0.3423 0.8263 0.4472 +vn 0.0000 0.8944 0.4472 +s off +f 77/63/11 46/64/11 45/65/11 +f 78/66/11 47/67/11 46/64/11 +f 79/68/11 48/69/11 47/67/11 +f 48/69/11 65/70/11 33/71/11 +f 65/70/11 34/72/11 33/71/11 +f 66/73/11 35/74/11 34/72/11 +f 35/74/11 68/75/11 36/76/11 +f 36/76/11 69/77/11 37/78/11 +f 37/78/11 70/79/11 38/80/11 +f 38/80/11 71/81/11 39/82/11 +f 39/82/11 72/83/11 40/84/11 +f 40/84/11 73/85/11 41/86/11 +f 73/87/11 42/88/11 41/89/11 +f 74/90/11 43/91/11 42/88/11 +f 75/92/11 44/93/11 43/91/11 +f 76/94/11 45/65/11 44/93/11 +f 63/95/12 94/96/12 62/97/12 +f 64/98/12 95/99/12 63/95/12 +f 64/98/12 81/100/12 96/101/12 +f 50/102/12 81/100/12 49/103/12 +f 51/104/12 82/105/12 50/102/12 +f 51/104/12 84/106/12 83/107/12 +f 52/108/12 85/109/12 84/106/12 +f 53/110/12 86/111/12 85/109/12 +f 54/112/12 87/113/12 86/111/12 +f 55/114/12 88/115/12 87/113/12 +f 56/116/12 89/117/12 88/115/12 +f 58/118/12 89/119/12 57/120/12 +f 59/121/12 90/122/12 58/118/12 +f 60/123/12 91/124/12 59/121/12 +f 61/125/12 92/126/12 60/123/12 +f 62/97/12 93/127/12 61/125/12 +f 101/128/11 99/129/11 107/130/11 +f 129/131/13 134/132/13 130/133/13 +f 132/134/11 135/135/11 131/136/11 +f 130/133/14 136/137/14 132/134/14 +f 135/138/15 129/131/15 131/136/15 +f 281/139/16 286/140/16 282/141/16 +f 166/142/12 181/143/12 165/144/12 +f 167/145/12 182/146/12 166/142/12 +f 168/147/12 183/148/12 167/145/12 +f 153/149/12 184/150/12 168/147/12 +f 153/149/12 170/151/12 169/152/12 +f 154/153/12 171/154/12 170/151/12 +f 155/155/12 172/156/12 171/154/12 +f 156/157/12 173/158/12 172/156/12 +f 157/159/12 174/160/12 173/158/12 +f 158/161/12 175/162/12 174/160/12 +f 159/163/12 176/164/12 175/162/12 +f 160/165/12 177/166/12 176/164/12 +f 162/167/12 177/168/12 161/169/12 +f 163/170/12 178/171/12 162/167/12 +f 164/172/12 179/173/12 163/170/12 +f 165/144/12 180/174/12 164/172/12 +f 221/175/12 225/176/12 229/177/12 +f 125/178/17 262/179/17 261/180/17 +f 126/181/18 263/182/18 262/179/18 +f 127/183/19 264/184/19 263/182/19 +f 128/185/20 249/186/20 264/184/20 +f 113/187/21 249/186/21 114/188/21 +f 115/189/22 250/190/22 113/187/22 +f 116/191/23 251/192/23 115/189/23 +f 117/193/24 252/194/24 116/191/24 +f 118/195/25 253/196/25 117/193/25 +f 119/197/26 254/198/26 118/195/26 +f 120/199/27 255/200/27 119/197/27 +f 121/201/28 256/202/28 120/199/28 +f 121/203/29 258/204/29 257/205/29 +f 122/206/30 259/207/30 258/204/30 +f 123/208/31 260/209/31 259/207/31 +f 124/210/32 261/180/32 260/209/32 +f 246/211/33 279/212/33 247/213/33 +f 247/213/34 280/214/34 248/215/34 +f 248/215/35 265/216/35 234/217/35 +f 265/216/36 233/218/36 234/217/36 +f 266/219/37 235/220/37 233/218/37 +f 267/221/38 236/222/38 235/220/38 +f 268/223/39 237/224/39 236/222/39 +f 269/225/40 238/226/40 237/224/40 +f 270/227/41 239/228/41 238/226/41 +f 271/229/42 240/230/42 239/228/42 +f 272/231/43 241/232/43 240/230/43 +f 241/233/44 274/234/44 242/235/44 +f 242/235/45 275/236/45 243/237/45 +f 243/237/46 276/238/46 244/239/46 +f 244/239/47 277/240/47 245/241/47 +f 245/241/48 278/242/48 246/211/48 +f 284/243/11 287/244/11 283/245/11 +f 282/141/15 288/246/15 284/243/15 +f 287/247/14 281/139/14 283/245/14 +f 289/248/49 294/249/49 290/250/49 +f 292/251/11 295/252/11 291/253/11 +f 290/250/50 296/254/50 292/251/50 +f 295/255/51 289/248/51 291/253/51 +f 297/256/52 302/257/52 298/258/52 +f 300/259/11 303/260/11 299/261/11 +f 298/258/51 304/262/51 300/259/51 +f 303/263/50 297/256/50 299/261/50 +f 305/264/53 310/265/53 306/266/53 +f 307/267/11 312/268/11 311/269/11 +f 306/266/54 312/270/54 308/271/54 +f 311/272/55 305/264/55 307/267/55 +f 313/273/56 318/274/56 314/275/56 +f 316/276/11 319/277/11 315/278/11 +f 314/275/55 320/279/55 316/276/55 +f 319/280/54 313/273/54 315/278/54 +f 322/281/57 325/282/57 326/283/57 +f 324/284/11 327/285/11 323/286/11 +f 322/281/58 328/287/58 324/284/58 +f 327/288/59 321/289/59 323/286/59 +f 330/290/60 333/291/60 334/292/60 +f 332/293/11 335/294/11 331/295/11 +f 330/290/59 336/296/59 332/293/59 +f 335/297/58 329/298/58 331/295/58 +f 77/63/11 78/66/11 46/64/11 +f 78/66/11 79/68/11 47/67/11 +f 79/68/11 80/299/11 48/69/11 +f 48/69/11 80/299/11 65/70/11 +f 65/70/11 66/73/11 34/72/11 +f 66/73/11 67/300/11 35/74/11 +f 35/74/11 67/300/11 68/75/11 +f 36/76/11 68/75/11 69/77/11 +f 37/78/11 69/77/11 70/79/11 +f 38/80/11 70/79/11 71/81/11 +f 39/82/11 71/81/11 72/83/11 +f 40/84/11 72/83/11 73/85/11 +f 73/87/11 74/90/11 42/88/11 +f 74/90/11 75/92/11 43/91/11 +f 75/92/11 76/94/11 44/93/11 +f 76/94/11 77/63/11 45/65/11 +f 63/95/12 95/99/12 94/96/12 +f 64/98/12 96/101/12 95/99/12 +f 64/98/12 49/103/12 81/100/12 +f 50/102/12 82/105/12 81/100/12 +f 51/104/12 83/107/12 82/105/12 +f 51/104/12 52/108/12 84/106/12 +f 52/108/12 53/110/12 85/109/12 +f 53/110/12 54/112/12 86/111/12 +f 54/112/12 55/114/12 87/113/12 +f 55/114/12 56/116/12 88/115/12 +f 56/116/12 57/301/12 89/117/12 +f 58/118/12 90/122/12 89/119/12 +f 59/121/12 91/124/12 90/122/12 +f 60/123/12 92/126/12 91/124/12 +f 61/125/12 93/127/12 92/126/12 +f 62/97/12 94/96/12 93/127/12 +f 99/129/11 98/302/11 97/303/11 +f 97/303/11 112/304/11 111/305/11 +f 111/305/11 110/306/11 107/130/11 +f 110/306/11 109/307/11 107/130/11 +f 109/307/11 108/308/11 107/130/11 +f 107/130/11 106/309/11 105/310/11 +f 105/310/11 104/311/11 103/312/11 +f 103/312/11 102/313/11 101/128/11 +f 101/128/11 100/314/11 99/129/11 +f 99/129/11 97/303/11 107/130/11 +f 97/303/11 111/305/11 107/130/11 +f 107/130/11 105/310/11 103/312/11 +f 103/312/11 101/128/11 107/130/11 +f 129/131/13 133/315/13 134/132/13 +f 132/134/11 136/316/11 135/135/11 +f 130/133/14 134/317/14 136/137/14 +f 135/138/15 133/318/15 129/131/15 +f 281/139/16 285/319/16 286/140/16 +f 166/142/12 182/146/12 181/143/12 +f 167/145/12 183/148/12 182/146/12 +f 168/147/12 184/150/12 183/148/12 +f 153/149/12 169/152/12 184/150/12 +f 153/149/12 154/153/12 170/151/12 +f 154/153/12 155/155/12 171/154/12 +f 155/155/12 156/157/12 172/156/12 +f 156/157/12 157/159/12 173/158/12 +f 157/159/12 158/161/12 174/160/12 +f 158/161/12 159/163/12 175/162/12 +f 159/163/12 160/165/12 176/164/12 +f 160/165/12 161/320/12 177/166/12 +f 162/167/12 178/171/12 177/168/12 +f 163/170/12 179/173/12 178/171/12 +f 164/172/12 180/174/12 179/173/12 +f 165/144/12 181/143/12 180/174/12 +f 217/321/12 218/322/12 219/323/12 +f 219/323/12 220/324/12 221/175/12 +f 221/175/12 222/325/12 223/326/12 +f 223/326/12 224/327/12 225/176/12 +f 225/176/12 226/328/12 227/329/12 +f 227/329/12 228/330/12 229/177/12 +f 229/177/12 230/331/12 231/332/12 +f 231/332/12 232/333/12 217/321/12 +f 217/321/12 219/323/12 221/175/12 +f 221/175/12 223/326/12 225/176/12 +f 225/176/12 227/329/12 229/177/12 +f 229/177/12 231/332/12 217/321/12 +f 217/321/12 221/175/12 229/177/12 +f 125/178/17 126/181/17 262/179/17 +f 126/181/18 127/183/18 263/182/18 +f 127/183/19 128/185/19 264/184/19 +f 128/185/20 114/188/20 249/186/20 +f 113/187/21 250/190/21 249/186/21 +f 115/189/22 251/192/22 250/190/22 +f 116/191/23 252/194/23 251/192/23 +f 117/193/24 253/196/24 252/194/24 +f 118/195/25 254/198/25 253/196/25 +f 119/197/26 255/200/26 254/198/26 +f 120/199/27 256/202/27 255/200/27 +f 121/201/28 257/334/28 256/202/28 +f 121/203/29 122/206/29 258/204/29 +f 122/206/30 123/208/30 259/207/30 +f 123/208/31 124/210/31 260/209/31 +f 124/210/32 125/178/32 261/180/32 +f 246/211/33 278/242/33 279/212/33 +f 247/213/34 279/212/34 280/214/34 +f 248/215/35 280/214/35 265/216/35 +f 265/216/36 266/219/36 233/218/36 +f 266/219/37 267/221/37 235/220/37 +f 267/221/38 268/223/38 236/222/38 +f 268/223/39 269/225/39 237/224/39 +f 269/225/40 270/227/40 238/226/40 +f 270/227/41 271/229/41 239/228/41 +f 271/229/42 272/231/42 240/230/42 +f 272/231/43 273/335/43 241/232/43 +f 241/233/44 273/336/44 274/234/44 +f 242/235/45 274/234/45 275/236/45 +f 243/237/46 275/236/46 276/238/46 +f 244/239/47 276/238/47 277/240/47 +f 245/241/48 277/240/48 278/242/48 +f 284/243/11 288/337/11 287/244/11 +f 282/141/15 286/338/15 288/246/15 +f 287/247/14 285/339/14 281/139/14 +f 289/248/49 293/340/49 294/249/49 +f 292/251/11 296/341/11 295/252/11 +f 290/250/50 294/342/50 296/254/50 +f 295/255/51 293/343/51 289/248/51 +f 297/256/52 301/344/52 302/257/52 +f 300/259/11 304/345/11 303/260/11 +f 298/258/51 302/346/51 304/262/51 +f 303/263/50 301/347/50 297/256/50 +f 305/264/53 309/348/53 310/265/53 +f 307/267/11 308/271/11 312/268/11 +f 306/266/54 310/349/54 312/270/54 +f 311/272/55 309/350/55 305/264/55 +f 313/273/56 317/351/56 318/274/56 +f 316/276/11 320/352/11 319/277/11 +f 314/275/55 318/353/55 320/279/55 +f 319/280/54 317/354/54 313/273/54 +f 322/281/57 321/289/57 325/282/57 +f 324/284/11 328/355/11 327/285/11 +f 322/281/58 326/356/58 328/287/58 +f 327/288/59 325/357/59 321/289/59 +f 330/290/60 329/298/60 333/291/60 +f 332/293/11 336/358/11 335/294/11 +f 330/290/59 334/359/59 336/296/59 +f 335/297/58 333/360/58 329/298/58 +s 1 +f 41/86/50 56/116/61 40/84/61 +f 34/72/62 49/103/51 33/71/51 +f 33/71/51 64/98/63 48/69/63 +f 42/88/64 57/120/50 41/89/50 +f 35/74/55 50/102/62 34/72/62 +f 43/91/54 58/118/64 42/88/64 +f 36/76/65 51/104/55 35/74/55 +f 44/93/66 59/121/54 43/91/54 +f 37/78/15 52/108/65 36/76/65 +f 45/65/14 60/123/66 44/93/66 +f 38/80/67 53/110/15 37/78/15 +f 46/64/68 61/125/14 45/65/14 +f 39/82/58 54/112/67 38/80/67 +f 47/67/59 62/97/68 46/64/68 +f 40/84/61 55/114/58 39/82/58 +f 48/69/63 63/95/59 47/67/59 +f 76/361/65 93/127/15 77/362/15 +f 69/363/14 86/111/68 70/364/68 +f 77/362/15 94/96/67 78/365/67 +f 70/364/68 87/113/59 71/366/59 +f 78/365/67 95/99/58 79/367/58 +f 71/366/59 88/115/63 72/368/63 +f 79/367/58 96/101/61 80/369/61 +f 72/368/63 89/117/51 73/370/51 +f 65/371/50 82/105/64 66/372/64 +f 80/369/61 81/100/50 65/371/50 +f 73/373/51 90/122/62 74/374/62 +f 66/372/64 83/107/54 67/375/54 +f 74/374/62 91/124/55 75/376/55 +f 67/375/54 84/106/66 68/377/66 +f 75/376/55 92/126/65 76/361/65 +f 68/377/66 85/109/14 69/363/14 +f 245/241/69 150/378/70 149/379/69 +f 103/380/58 118/195/67 102/381/67 +f 111/382/59 126/181/68 110/383/68 +f 103/380/58 120/199/61 119/197/58 +f 112/384/63 127/183/59 111/382/59 +f 104/385/61 121/201/50 120/199/61 +f 98/386/62 114/188/51 97/387/51 +f 112/384/63 114/188/51 128/185/63 +f 105/388/50 122/206/64 121/203/50 +f 99/389/55 113/187/62 98/386/62 +f 107/390/54 122/206/64 106/391/64 +f 99/389/55 116/191/65 115/189/55 +f 108/392/66 123/208/54 107/390/54 +f 101/393/15 116/191/65 100/394/65 +f 109/395/14 124/210/66 108/392/66 +f 102/381/67 117/193/15 101/393/15 +f 110/383/68 125/178/14 109/395/14 +f 244/239/71 149/379/69 148/396/71 +f 243/237/72 148/396/71 147/397/72 +f 242/235/73 147/397/72 146/398/73 +f 241/233/74 146/398/73 145/399/74 +f 144/400/75 241/232/74 145/401/74 +f 143/402/76 240/230/75 144/400/75 +f 142/403/77 239/228/76 143/402/76 +f 141/404/78 238/226/77 142/403/77 +f 140/405/79 237/224/78 141/404/78 +f 139/406/80 236/222/79 140/405/79 +f 138/407/81 235/220/80 139/406/80 +f 137/408/82 233/218/81 138/407/81 +f 248/215/83 137/408/82 152/409/83 +f 247/213/84 152/409/83 151/410/84 +f 246/211/70 151/410/84 150/378/70 +f 147/397/54 162/167/64 146/398/64 +f 140/405/65 155/155/55 139/406/55 +f 148/396/66 163/170/54 147/397/54 +f 141/404/15 156/157/65 140/405/65 +f 149/379/14 164/172/66 148/396/66 +f 142/403/67 157/159/15 141/404/15 +f 150/378/68 165/144/14 149/379/14 +f 143/402/58 158/161/67 142/403/67 +f 151/410/59 166/142/68 150/378/68 +f 144/400/61 159/163/58 143/402/58 +f 152/409/63 167/145/59 151/410/59 +f 145/401/50 160/165/61 144/400/61 +f 138/407/62 153/149/51 137/408/51 +f 137/408/51 168/147/63 152/409/63 +f 146/398/64 161/169/50 145/399/50 +f 139/406/55 154/153/62 138/407/62 +f 169/152/13 186/411/85 185/412/13 +f 169/152/13 200/413/86 184/150/86 +f 184/150/86 199/414/53 183/148/53 +f 183/148/53 198/415/87 182/146/87 +f 182/146/87 197/416/49 181/143/49 +f 180/174/88 197/416/49 196/417/88 +f 179/173/57 196/417/88 195/418/57 +f 179/173/57 194/419/89 178/171/89 +f 178/171/89 193/420/16 177/168/16 +f 177/166/16 192/421/90 176/164/90 +f 175/162/56 192/421/90 191/422/56 +f 174/160/91 191/422/56 190/423/91 +f 174/160/91 189/424/52 173/158/52 +f 172/156/92 189/424/52 188/425/92 +f 172/156/92 187/426/60 171/154/60 +f 171/154/60 186/411/85 170/151/85 +f 195/418/54 210/427/64 194/419/64 +f 188/425/65 203/428/55 187/426/55 +f 196/417/66 211/429/54 195/418/54 +f 189/424/15 204/430/65 188/425/65 +f 197/416/14 212/431/66 196/417/66 +f 190/423/67 205/432/15 189/424/15 +f 198/415/68 213/433/14 197/416/14 +f 191/422/58 206/434/67 190/423/67 +f 199/414/59 214/435/68 198/415/68 +f 192/421/61 207/436/58 191/422/58 +f 200/413/63 215/437/59 199/414/59 +f 193/438/50 208/439/61 192/421/61 +f 186/411/62 201/440/51 185/412/51 +f 185/412/51 216/441/63 200/413/63 +f 194/419/64 209/442/50 193/420/50 +f 187/426/55 202/443/62 186/411/62 +f 216/441/93 231/444/94 215/437/94 +f 215/437/94 230/445/95 214/435/95 +f 214/435/95 229/446/96 213/433/96 +f 213/433/96 228/447/97 212/431/97 +f 211/429/98 228/447/97 227/448/98 +f 211/429/98 226/449/99 210/427/99 +f 210/427/99 225/450/100 209/442/100 +f 209/451/100 224/452/101 208/439/101 +f 207/436/102 224/452/101 223/453/102 +f 206/434/103 223/453/102 222/454/103 +f 205/432/104 222/454/103 221/455/104 +f 204/430/105 221/455/104 220/456/105 +f 203/428/106 220/456/105 219/457/106 +f 202/443/107 219/457/106 218/458/107 +f 201/440/108 218/458/107 217/459/108 +f 201/440/108 232/460/93 216/441/93 +f 258/204/64 273/336/50 257/205/50 +f 251/192/55 266/219/62 250/190/62 +f 259/207/54 274/234/64 258/204/64 +f 252/194/65 267/221/55 251/192/55 +f 260/209/66 275/236/54 259/207/54 +f 253/196/15 268/223/65 252/194/65 +f 261/180/14 276/238/66 260/209/66 +f 254/198/67 269/225/15 253/196/15 +f 262/179/68 277/240/14 261/180/14 +f 255/200/58 270/227/67 254/198/67 +f 263/182/59 278/242/68 262/179/68 +f 256/202/61 271/229/58 255/200/58 +f 264/184/63 279/212/59 263/182/59 +f 257/334/50 272/231/61 256/202/61 +f 250/190/62 265/216/51 249/186/51 +f 249/186/51 280/214/63 264/184/63 +f 41/86/50 57/301/50 56/116/61 +f 34/72/62 50/102/62 49/103/51 +f 33/71/51 49/103/51 64/98/63 +f 42/88/64 58/118/64 57/120/50 +f 35/74/55 51/104/55 50/102/62 +f 43/91/54 59/121/54 58/118/64 +f 36/76/65 52/108/65 51/104/55 +f 44/93/66 60/123/66 59/121/54 +f 37/78/15 53/110/15 52/108/65 +f 45/65/14 61/125/14 60/123/66 +f 38/80/67 54/112/67 53/110/15 +f 46/64/68 62/97/68 61/125/14 +f 39/82/58 55/114/58 54/112/67 +f 47/67/59 63/95/59 62/97/68 +f 40/84/61 56/116/61 55/114/58 +f 48/69/63 64/98/63 63/95/59 +f 76/361/65 92/126/65 93/127/15 +f 69/363/14 85/109/14 86/111/68 +f 77/362/15 93/127/15 94/96/67 +f 70/364/68 86/111/68 87/113/59 +f 78/365/67 94/96/67 95/99/58 +f 71/366/59 87/113/59 88/115/63 +f 79/367/58 95/99/58 96/101/61 +f 72/368/63 88/115/63 89/117/51 +f 65/371/50 81/100/50 82/105/64 +f 80/369/61 96/101/61 81/100/50 +f 73/373/51 89/119/51 90/122/62 +f 66/372/64 82/105/64 83/107/54 +f 74/374/62 90/122/62 91/124/55 +f 67/375/54 83/107/54 84/106/66 +f 75/376/55 91/124/55 92/126/65 +f 68/377/66 84/106/66 85/109/14 +f 245/241/69 246/211/70 150/378/70 +f 103/380/58 119/197/58 118/195/67 +f 111/382/59 127/183/59 126/181/68 +f 103/380/58 104/385/61 120/199/61 +f 112/384/63 128/185/63 127/183/59 +f 104/385/61 105/461/50 121/201/50 +f 98/386/62 113/187/62 114/188/51 +f 112/384/63 97/387/51 114/188/51 +f 105/388/50 106/391/64 122/206/64 +f 99/389/55 115/189/55 113/187/62 +f 107/390/54 123/208/54 122/206/64 +f 99/389/55 100/394/65 116/191/65 +f 108/392/66 124/210/66 123/208/54 +f 101/393/15 117/193/15 116/191/65 +f 109/395/14 125/178/14 124/210/66 +f 102/381/67 118/195/67 117/193/15 +f 110/383/68 126/181/68 125/178/14 +f 244/239/71 245/241/69 149/379/69 +f 243/237/72 244/239/71 148/396/71 +f 242/235/73 243/237/72 147/397/72 +f 241/233/74 242/235/73 146/398/73 +f 144/400/75 240/230/75 241/232/74 +f 143/402/76 239/228/76 240/230/75 +f 142/403/77 238/226/77 239/228/76 +f 141/404/78 237/224/78 238/226/77 +f 140/405/79 236/222/79 237/224/78 +f 139/406/80 235/220/80 236/222/79 +f 138/407/81 233/218/81 235/220/80 +f 137/408/82 234/217/82 233/218/81 +f 248/215/83 234/217/82 137/408/82 +f 247/213/84 248/215/83 152/409/83 +f 246/211/70 247/213/84 151/410/84 +f 147/397/54 163/170/54 162/167/64 +f 140/405/65 156/157/65 155/155/55 +f 148/396/66 164/172/66 163/170/54 +f 141/404/15 157/159/15 156/157/65 +f 149/379/14 165/144/14 164/172/66 +f 142/403/67 158/161/67 157/159/15 +f 150/378/68 166/142/68 165/144/14 +f 143/402/58 159/163/58 158/161/67 +f 151/410/59 167/145/59 166/142/68 +f 144/400/61 160/165/61 159/163/58 +f 152/409/63 168/147/63 167/145/59 +f 145/401/50 161/320/50 160/165/61 +f 138/407/62 154/153/62 153/149/51 +f 137/408/51 153/149/51 168/147/63 +f 146/398/64 162/167/64 161/169/50 +f 139/406/55 155/155/55 154/153/62 +f 169/152/13 170/151/85 186/411/85 +f 169/152/13 185/412/13 200/413/86 +f 184/150/86 200/413/86 199/414/53 +f 183/148/53 199/414/53 198/415/87 +f 182/146/87 198/415/87 197/416/49 +f 180/174/88 181/143/49 197/416/49 +f 179/173/57 180/174/88 196/417/88 +f 179/173/57 195/418/57 194/419/89 +f 178/171/89 194/419/89 193/420/16 +f 177/166/16 193/438/16 192/421/90 +f 175/162/56 176/164/90 192/421/90 +f 174/160/91 175/162/56 191/422/56 +f 174/160/91 190/423/91 189/424/52 +f 172/156/92 173/158/52 189/424/52 +f 172/156/92 188/425/92 187/426/60 +f 171/154/60 187/426/60 186/411/85 +f 195/418/54 211/429/54 210/427/64 +f 188/425/65 204/430/65 203/428/55 +f 196/417/66 212/431/66 211/429/54 +f 189/424/15 205/432/15 204/430/65 +f 197/416/14 213/433/14 212/431/66 +f 190/423/67 206/434/67 205/432/15 +f 198/415/68 214/435/68 213/433/14 +f 191/422/58 207/436/58 206/434/67 +f 199/414/59 215/437/59 214/435/68 +f 192/421/61 208/439/61 207/436/58 +f 200/413/63 216/441/63 215/437/59 +f 193/438/50 209/451/50 208/439/61 +f 186/411/62 202/443/62 201/440/51 +f 185/412/51 201/440/51 216/441/63 +f 194/419/64 210/427/64 209/442/50 +f 187/426/55 203/428/55 202/443/62 +f 216/441/93 232/460/93 231/444/94 +f 215/437/94 231/444/94 230/445/95 +f 214/435/95 230/445/95 229/446/96 +f 213/433/96 229/446/96 228/447/97 +f 211/429/98 212/431/97 228/447/97 +f 211/429/98 227/448/98 226/449/99 +f 210/427/99 226/449/99 225/450/100 +f 209/451/100 225/462/100 224/452/101 +f 207/436/102 208/439/101 224/452/101 +f 206/434/103 207/436/102 223/453/102 +f 205/432/104 206/434/103 222/454/103 +f 204/430/105 205/432/104 221/455/104 +f 203/428/106 204/430/105 220/456/105 +f 202/443/107 203/428/106 219/457/106 +f 201/440/108 202/443/107 218/458/107 +f 201/440/108 217/459/108 232/460/93 +f 258/204/64 274/234/64 273/336/50 +f 251/192/55 267/221/55 266/219/62 +f 259/207/54 275/236/54 274/234/64 +f 252/194/65 268/223/65 267/221/55 +f 260/209/66 276/238/66 275/236/54 +f 253/196/15 269/225/15 268/223/65 +f 261/180/14 277/240/14 276/238/66 +f 254/198/67 270/227/67 269/225/15 +f 262/179/68 278/242/68 277/240/14 +f 255/200/58 271/229/58 270/227/67 +f 263/182/59 279/212/59 278/242/68 +f 256/202/61 272/231/61 271/229/58 +f 264/184/63 280/214/63 279/212/59 +f 257/334/50 273/335/50 272/231/61 +f 250/190/62 266/219/62 265/216/51 +f 249/186/51 265/216/51 280/214/63 +o Tube +v 0.000000 0.500000 -6.375000 +v 0.000000 0.500000 6.375000 +v 0.191342 0.461940 -6.375000 +v 0.191342 0.461939 6.375000 +v 0.353553 0.353554 -6.375000 +v 0.353553 0.353553 6.375000 +v 0.461940 0.191342 -6.375000 +v 0.461940 0.191341 6.375000 +v 0.500000 0.000000 -6.375000 +v 0.500000 -0.000000 6.375000 +v 0.461940 -0.191341 -6.375000 +v 0.461940 -0.191342 6.375000 +v 0.353553 -0.353553 -6.375000 +v 0.353553 -0.353554 6.375000 +v 0.191342 -0.461939 -6.375000 +v 0.191342 -0.461940 6.375000 +v 0.000000 -0.500000 -6.375000 +v 0.000000 -0.500000 6.375000 +v -0.191341 -0.461939 -6.375000 +v -0.191341 -0.461940 6.375000 +v -0.353553 -0.353553 -6.375000 +v -0.353553 -0.353554 6.375000 +v -0.461940 -0.191341 -6.375000 +v -0.461940 -0.191342 6.375000 +v -0.500000 0.000000 -6.375000 +v -0.500000 -0.000000 6.375000 +v -0.461940 0.191342 -6.375000 +v -0.461940 0.191341 6.375000 +v -0.353553 0.353554 -6.375000 +v -0.353553 0.353553 6.375000 +v -0.191341 0.461940 -6.375000 +v -0.191341 0.461940 6.375000 +v 0.000000 0.437500 6.375000 +v -0.167424 0.404197 6.375000 +v -0.309359 0.309359 6.375000 +v -0.404197 0.167424 6.375000 +v -0.437500 -0.000000 6.375000 +v -0.404197 -0.167424 6.375000 +v -0.309359 -0.309359 6.375000 +v -0.167424 -0.404198 6.375000 +v 0.000000 -0.437500 6.375000 +v 0.167424 -0.404198 6.375000 +v 0.309359 -0.309360 6.375000 +v 0.404197 -0.167424 6.375000 +v 0.437500 -0.000000 6.375000 +v 0.404197 0.167424 6.375000 +v 0.309359 0.309359 6.375000 +v 0.167424 0.404197 6.375000 +v 0.000000 0.437500 -6.375000 +v -0.167424 0.404197 -6.375000 +v -0.309359 0.309359 -6.375000 +v -0.404197 0.167424 -6.375000 +v -0.437500 -0.000000 -6.375000 +v -0.404197 -0.167424 -6.375000 +v -0.309359 -0.309359 -6.375000 +v -0.167424 -0.404198 -6.375000 +v 0.000000 -0.437500 -6.375000 +v 0.167424 -0.404198 -6.375000 +v 0.309359 -0.309360 -6.375000 +v 0.404197 -0.167424 -6.375000 +v 0.437500 -0.000000 -6.375000 +v 0.404197 0.167424 -6.375000 +v 0.309359 0.309359 -6.375000 +v 0.167424 0.404197 -6.375000 +v 0.000000 0.750000 -6.875000 +v -0.287013 0.692910 -6.875000 +v -0.530330 0.530330 -6.875000 +v -0.692910 0.287013 -6.875000 +v -0.750000 0.000000 -6.875000 +v -0.692910 -0.287013 -6.875000 +v -0.530330 -0.530330 -6.875000 +v -0.287013 -0.692910 -6.875000 +v 0.000000 -0.750000 -6.875000 +v 0.287013 -0.692910 -6.875000 +v 0.530330 -0.530330 -6.875000 +v 0.692910 -0.287013 -6.875000 +v 0.750000 0.000000 -6.875000 +v 0.692910 0.287013 -6.875000 +v 0.530330 0.530330 -6.875000 +v 0.287012 0.692910 -6.875000 +v 0.000000 0.750000 -7.000000 +v -0.287013 0.692910 -7.000000 +v -0.530330 0.530330 -7.000000 +v -0.692910 0.287013 -7.000000 +v -0.750000 0.000000 -7.000000 +v -0.692910 -0.287013 -7.000000 +v -0.530330 -0.530330 -7.000000 +v -0.287013 -0.692910 -7.000000 +v 0.000000 -0.750000 -7.000000 +v 0.287013 -0.692910 -7.000000 +v 0.530330 -0.530330 -7.000000 +v 0.692910 -0.287013 -7.000000 +v 0.750000 0.000000 -7.000000 +v 0.692910 0.287013 -7.000000 +v 0.530330 0.530330 -7.000000 +v 0.287012 0.692910 -7.000000 +v 0.000000 0.625000 -6.875000 +v -0.239177 0.577425 -6.875000 +v -0.441942 0.441942 -6.875000 +v -0.577425 0.239177 -6.875000 +v -0.625000 0.000000 -6.875000 +v -0.577425 -0.239177 -6.875000 +v -0.441942 -0.441942 -6.875000 +v -0.239177 -0.577425 -6.875000 +v 0.000000 -0.625000 -6.875000 +v 0.239177 -0.577425 -6.875000 +v 0.441942 -0.441942 -6.875000 +v 0.577425 -0.239177 -6.875000 +v 0.625000 0.000000 -6.875000 +v 0.577425 0.239177 -6.875000 +v 0.441942 0.441942 -6.875000 +v 0.239177 0.577425 -6.875000 +v 0.000000 0.625000 -7.000000 +v -0.239177 0.577425 -7.000000 +v -0.441942 0.441942 -7.000000 +v -0.577425 0.239177 -7.000000 +v -0.625000 0.000000 -7.000000 +v -0.577425 -0.239177 -7.000000 +v -0.441942 -0.441942 -7.000000 +v -0.239177 -0.577425 -7.000000 +v 0.000000 -0.625000 -7.000000 +v 0.239177 -0.577425 -7.000000 +v 0.441942 -0.441942 -7.000000 +v 0.577425 -0.239177 -7.000000 +v 0.625000 0.000000 -7.000000 +v 0.577425 0.239177 -7.000000 +v 0.441942 0.441942 -7.000000 +v 0.239177 0.577425 -7.000000 +v 0.484375 0.062500 -6.375000 +v 0.484375 -0.062500 -6.375000 +v 0.671875 0.062500 -6.875000 +v 0.671875 -0.062500 -6.875000 +v -0.124479 0.624959 -5.629740 +v 0.125521 0.624959 -5.629740 +v -0.124479 0.624959 -6.629740 +v 0.125521 0.624959 -6.629740 +v -0.124479 0.437459 -6.629740 +v 0.125521 0.437459 -6.629740 +v -0.124479 0.437459 -6.379740 +v 0.125521 0.437459 -6.379740 +v -0.124479 0.562459 -5.629740 +v 0.125521 0.562459 -5.629740 +v 0.687500 0.187500 -5.687500 +v 0.687500 -0.187500 -5.687500 +v 0.687500 0.187500 -6.312500 +v 0.687500 -0.187500 -6.312500 +v 0.437500 0.187500 -6.312500 +v 0.437500 0.187500 -5.687500 +v 0.437500 -0.187500 -5.687500 +v 0.437500 -0.187500 -6.312500 +v -0.093750 -0.437500 1.125000 +v 0.093750 -0.437500 1.125000 +v -0.093750 -0.437500 0.750000 +v 0.093750 -0.437500 0.750000 +v -0.093750 -1.687500 1.125000 +v 0.093750 -1.687500 1.125000 +v -0.093750 -1.562500 0.750000 +v 0.093750 -1.562500 0.750000 +v -0.093750 -1.687500 -1.125000 +v 0.093750 -1.687500 -1.125000 +v -0.093750 -1.562500 -1.125000 +v 0.093750 -1.562500 -1.125000 +v -0.093750 -0.812500 -1.875000 +v 0.093750 -0.812500 -1.875000 +v -0.093750 -0.812500 -0.375000 +v 0.093750 -0.812500 -0.375000 +v -0.093750 -0.437500 -1.875000 +v 0.093750 -0.437500 -1.875000 +v -0.093750 -0.437500 -0.375000 +v 0.093750 -0.437500 -0.375000 +v -0.093750 -0.812500 -2.062500 +v 0.093750 -0.812500 -2.062500 +v -0.093750 -0.812500 -1.687500 +v 0.093750 -0.812500 -1.687500 +v -0.093750 -1.562500 -2.187500 +v 0.093750 -1.562500 -2.187500 +v -0.093750 -1.562500 -1.812500 +v 0.093750 -1.562500 -1.812500 +v -0.062500 -0.812500 -1.562500 +v 0.062500 -0.812500 -1.562500 +v -0.062500 -1.187500 -1.562500 +v 0.062500 -1.187500 -1.562500 +v -0.062500 -0.812500 -1.750000 +v 0.062500 -0.812500 -1.750000 +v -0.062500 -1.187500 -1.750000 +v 0.062500 -1.187500 -1.750000 +v -0.093750 -0.937500 -0.625000 +v 0.093750 -0.937500 -0.625000 +v -0.093750 -0.937500 -0.875000 +v 0.093750 -0.937500 -0.875000 +v 0.093750 -0.812500 -1.000000 +v -0.093750 -0.812500 -1.000000 +v -0.062500 -0.742418 -0.705806 +v 0.062500 -0.742418 -0.705806 +v -0.062500 -0.919195 -0.882583 +v 0.062500 -0.919195 -0.882583 +v -0.062500 -1.449525 -0.529029 +v -0.062500 -1.095971 -0.175476 +v 0.062500 -1.095971 -0.175476 +v 0.062500 -1.449525 -0.529029 +v 0.062500 -0.812500 -1.000000 +v -0.062500 -0.812500 -1.000000 +v 0.062500 -1.562500 -1.125000 +v -0.062500 -1.562500 -1.125000 +v 0.062500 -1.562500 -1.812500 +v -0.062500 -1.562500 -1.812500 +v -0.125000 -0.812500 -3.375000 +v 0.125000 -0.812500 -3.375000 +v -0.125000 -0.437500 -3.375000 +v 0.125000 -0.437500 -3.375000 +v -0.125000 -2.062500 -3.875000 +v 0.125000 -2.062500 -3.875000 +v -0.125000 -2.062500 -4.125000 +v 0.125000 -2.062500 -4.125000 +v -0.125000 -1.062500 -4.125000 +v 0.125000 -1.062500 -4.125000 +v -0.125000 -0.687500 -4.500000 +v 0.125000 -0.687500 -4.500000 +v -0.125000 -0.437500 -4.500000 +v 0.125000 -0.437500 -4.500000 +v 0.062500 -1.500000 -1.187500 +v -0.062500 -1.500000 -1.187500 +v 0.062500 -1.500000 -1.812500 +v -0.062500 -1.500000 -1.812500 +v 0.062500 -0.812500 -1.062500 +v -0.062500 -0.812500 -1.062500 +v -0.125000 -2.000000 -3.937500 +v 0.125000 -2.000000 -3.937500 +v -0.125000 -2.000000 -4.062500 +v 0.125000 -2.000000 -4.062500 +v -0.125000 -1.062500 -4.062500 +v 0.125000 -1.062500 -4.062500 +v -0.125000 -0.687500 -4.437500 +v 0.125000 -0.687500 -4.437500 +v -0.125000 -0.437500 -4.437500 +v 0.125000 -0.437500 -4.437500 +v -0.125000 -0.812500 -3.437500 +v 0.125000 -0.812500 -3.437500 +v -0.125000 -0.437500 -3.437500 +v 0.125000 -0.437500 -3.437500 +v 0.000000 -0.531250 -3.375000 +v -0.066291 -0.558709 -3.375000 +v -0.093750 -0.625000 -3.375000 +v -0.066291 -0.691292 -3.375000 +v 0.000000 -0.718750 -3.375000 +v 0.066291 -0.691292 -3.375000 +v 0.093750 -0.625000 -3.375000 +v 0.066291 -0.558709 -3.375000 +v 0.000000 -0.531250 -2.875000 +v -0.066291 -0.558709 -2.875000 +v -0.093750 -0.625000 -2.875000 +v -0.066291 -0.691292 -2.875000 +v 0.000000 -0.718750 -2.875000 +v 0.066291 -0.691292 -2.875000 +v 0.093750 -0.625000 -2.875000 +v 0.066291 -0.558709 -2.875000 +v 0.000000 -0.562500 -1.875000 +v -0.044194 -0.580806 -1.875000 +v -0.062500 -0.625000 -1.875000 +v -0.044194 -0.669195 -1.875000 +v 0.000000 -0.687500 -1.875000 +v 0.044194 -0.669195 -1.875000 +v 0.062500 -0.625000 -1.875000 +v 0.044194 -0.580806 -1.875000 +v 0.000000 -0.562500 -2.250000 +v -0.044194 -0.580806 -2.250000 +v -0.062500 -0.625000 -2.250000 +v -0.044194 -0.669195 -2.250000 +v 0.000000 -0.687500 -2.250000 +v 0.044194 -0.669195 -2.250000 +v 0.062500 -0.625000 -2.250000 +v 0.044194 -0.580806 -2.250000 +v 0.000000 -0.578125 -2.250000 +v -0.033145 -0.591855 -2.250000 +v -0.046875 -0.625000 -2.250000 +v -0.033145 -0.658146 -2.250000 +v 0.000000 -0.671875 -2.250000 +v 0.033146 -0.658146 -2.250000 +v 0.046875 -0.625000 -2.250000 +v 0.033146 -0.591855 -2.250000 +v 0.000000 -0.578125 -2.875000 +v -0.033145 -0.591855 -2.875000 +v -0.046875 -0.625000 -2.875000 +v -0.033145 -0.658146 -2.875000 +v 0.000000 -0.671875 -2.875000 +v 0.033146 -0.658146 -2.875000 +v 0.046875 -0.625000 -2.875000 +v 0.033146 -0.591855 -2.875000 +v 0.000000 -0.578125 -3.437500 +v -0.033145 -0.591855 -3.437500 +v -0.046875 -0.625000 -3.437500 +v -0.033145 -0.658146 -3.437500 +v 0.000000 -0.671875 -3.437500 +v 0.033146 -0.658146 -3.437500 +v 0.046875 -0.625000 -3.437500 +v 0.033146 -0.591855 -3.437500 +v 0.000000 -0.578125 -3.937500 +v -0.033145 -0.591855 -3.937500 +v -0.046875 -0.625000 -3.937500 +v -0.033145 -0.658146 -3.937500 +v 0.000000 -0.671875 -3.937500 +v 0.033146 -0.658146 -3.937500 +v 0.046875 -0.625000 -3.937500 +v 0.033146 -0.591855 -3.937500 +v 0.000000 -0.484375 -4.312500 +v 0.033146 -0.484375 -4.152459 +v -0.046875 -0.484375 -4.218750 +v 0.000000 -0.484375 -4.125000 +v 0.046875 -0.484375 -4.218750 +v -0.033145 -0.484375 -4.285041 +v -0.033145 -0.484375 -4.152459 +v 0.033146 -0.484375 -4.285041 +v 0.000000 -0.562500 -0.375000 +v -0.044194 -0.580806 -0.375000 +v -0.062500 -0.625000 -0.375000 +v -0.044194 -0.669195 -0.375000 +v 0.000000 -0.687500 -0.375000 +v 0.044194 -0.669195 -0.375000 +v 0.062500 -0.625000 -0.375000 +v 0.044194 -0.580806 -0.375000 +v 0.000000 -0.562500 -0.125000 +v -0.044194 -0.580806 -0.125000 +v -0.062500 -0.625000 -0.125000 +v -0.044194 -0.669195 -0.125000 +v 0.000000 -0.687500 -0.125000 +v 0.044194 -0.669195 -0.125000 +v 0.062500 -0.625000 -0.125000 +v 0.044194 -0.580806 -0.125000 +v 0.000000 0.500000 5.875000 +v 0.191342 0.461939 5.875000 +v 0.353553 0.353553 5.875000 +v 0.461940 0.191341 5.875000 +v 0.500000 -0.000000 5.875000 +v 0.461940 -0.191342 5.875000 +v 0.353553 -0.353554 5.875000 +v 0.191342 -0.461940 5.875000 +v 0.000000 -0.500000 5.875000 +v -0.191341 -0.461940 5.875000 +v -0.353553 -0.353554 5.875000 +v -0.461940 -0.191342 5.875000 +v -0.500000 -0.000000 5.875000 +v -0.461940 0.191341 5.875000 +v -0.353553 0.353553 5.875000 +v -0.191341 0.461940 5.875000 +v 0.000000 0.562500 5.875000 +v -0.215260 0.519682 5.875000 +v -0.397748 0.397747 5.875000 +v -0.519682 0.215259 5.875000 +v -0.562500 -0.000000 5.875000 +v -0.519682 -0.215260 5.875000 +v -0.397748 -0.397748 5.875000 +v -0.215260 -0.519683 5.875000 +v 0.000000 -0.562500 5.875000 +v 0.215260 -0.519683 5.875000 +v 0.397748 -0.397748 5.875000 +v 0.519682 -0.215260 5.875000 +v 0.562500 -0.000000 5.875000 +v 0.519682 0.215259 5.875000 +v 0.397748 0.397747 5.875000 +v 0.215259 0.519682 5.875000 +v 0.000000 0.500000 5.625000 +v 0.191342 0.461939 5.625000 +v 0.353553 0.353553 5.625000 +v 0.461940 0.191341 5.625000 +v 0.500000 -0.000000 5.625000 +v 0.461940 -0.191342 5.625000 +v 0.353553 -0.353554 5.625000 +v 0.191342 -0.461940 5.625000 +v 0.000000 -0.500000 5.625000 +v -0.191341 -0.461940 5.625000 +v -0.353553 -0.353554 5.625000 +v -0.461940 -0.191342 5.625000 +v -0.500000 -0.000000 5.625000 +v -0.461940 0.191341 5.625000 +v -0.353553 0.353553 5.625000 +v -0.191341 0.461940 5.625000 +v 0.000000 0.562500 5.625000 +v -0.215260 0.519682 5.625000 +v -0.397748 0.397747 5.625000 +v -0.519682 0.215259 5.625000 +v -0.562500 -0.000000 5.625000 +v -0.519682 -0.215260 5.625000 +v -0.397748 -0.397748 5.625000 +v -0.215260 -0.519683 5.625000 +v 0.000000 -0.562500 5.625000 +v 0.215260 -0.519683 5.625000 +v 0.397748 -0.397748 5.625000 +v 0.519682 -0.215260 5.625000 +v 0.562500 -0.000000 5.625000 +v 0.519682 0.215259 5.625000 +v 0.397748 0.397747 5.625000 +v 0.215259 0.519682 5.625000 +v -0.500000 -1.125000 5.812500 +v 0.500000 -1.125000 5.812500 +v -0.500000 -1.125000 5.687500 +v 0.500000 -1.125000 5.687500 +v -0.375000 -1.000000 5.687500 +v -0.375000 -1.000000 5.812500 +v 0.375000 -1.000000 5.812500 +v 0.375000 -1.000000 5.687500 +v -0.375000 -0.375000 5.687500 +v -0.375000 -0.375000 5.812500 +v 0.375000 -0.375000 5.812500 +v 0.375000 -0.375000 5.687500 +v -0.500000 -0.125000 5.812500 +v 0.500000 -0.125000 5.812500 +v -0.500000 -0.125000 5.687500 +v 0.500000 -0.125000 5.687500 +v 0.000000 0.500000 1.875000 +v 0.191342 0.461939 1.875000 +v 0.353553 0.353553 1.875000 +v 0.461940 0.191341 1.875000 +v 0.500000 -0.000000 1.875000 +v 0.461940 -0.191342 1.875000 +v 0.353553 -0.353554 1.875000 +v 0.191342 -0.461940 1.875000 +v 0.000000 -0.500000 1.875000 +v -0.191341 -0.461940 1.875000 +v -0.353553 -0.353554 1.875000 +v -0.461940 -0.191342 1.875000 +v -0.500000 -0.000000 1.875000 +v -0.461940 0.191341 1.875000 +v -0.353553 0.353553 1.875000 +v -0.191341 0.461940 1.875000 +v 0.000000 0.562500 1.875000 +v -0.215260 0.519682 1.875000 +v -0.397748 0.397747 1.875000 +v -0.519682 0.215259 1.875000 +v -0.562500 -0.000000 1.875000 +v -0.519682 -0.215260 1.875000 +v -0.397748 -0.397748 1.875000 +v -0.215260 -0.519683 1.875000 +v 0.000000 -0.562500 1.875000 +v 0.215260 -0.519683 1.875000 +v 0.397748 -0.397748 1.875000 +v 0.519682 -0.215260 1.875000 +v 0.562500 -0.000000 1.875000 +v 0.519682 0.215259 1.875000 +v 0.397748 0.397747 1.875000 +v 0.215259 0.519682 1.875000 +v 0.000000 0.500000 1.625000 +v 0.191342 0.461939 1.625000 +v 0.353553 0.353553 1.625000 +v 0.461940 0.191341 1.625000 +v 0.500000 -0.000000 1.625000 +v 0.461940 -0.191342 1.625000 +v 0.353553 -0.353554 1.625000 +v 0.191342 -0.461940 1.625000 +v 0.000000 -0.500000 1.625000 +v -0.191341 -0.461940 1.625000 +v -0.353553 -0.353554 1.625000 +v -0.461940 -0.191342 1.625000 +v -0.500000 -0.000000 1.625000 +v -0.461940 0.191341 1.625000 +v -0.353553 0.353553 1.625000 +v -0.191341 0.461940 1.625000 +v 0.000000 0.562500 1.625000 +v -0.215260 0.519682 1.625000 +v -0.397748 0.397747 1.625000 +v -0.519682 0.215259 1.625000 +v -0.562500 -0.000000 1.625000 +v -0.519682 -0.215260 1.625000 +v -0.397748 -0.397748 1.625000 +v -0.215260 -0.519683 1.625000 +v 0.000000 -0.562500 1.625000 +v 0.215260 -0.519683 1.625000 +v 0.397748 -0.397748 1.625000 +v 0.519682 -0.215260 1.625000 +v 0.562500 -0.000000 1.625000 +v 0.519682 0.215259 1.625000 +v 0.397748 0.397747 1.625000 +v 0.215259 0.519682 1.625000 +v 0.562500 0.875000 6.312500 +v 0.937500 0.875000 6.312500 +v 0.562500 1.000000 6.312500 +v 0.937500 1.000000 6.312500 +v 0.562500 1.000000 6.187500 +v 0.562500 0.875000 6.187500 +v 0.937500 0.875000 6.187500 +v 0.937500 1.000000 6.187500 +v 0.000000 0.500000 6.312500 +v 0.000000 0.500000 6.187500 +v 0.625000 -0.000000 6.312500 +v 0.625000 -0.000000 6.187500 +v 0.500000 -0.000000 6.312500 +v 0.500000 -0.000000 6.187500 +v 0.191342 0.461939 6.312500 +v 0.353553 0.353553 6.312500 +v 0.461940 0.191341 6.312500 +v 0.191342 0.461939 6.187500 +v 0.353553 0.353553 6.187500 +v 0.461940 0.191341 6.187500 +v 0.000000 0.625000 6.312500 +v 0.000000 0.625000 6.187500 +v 0.500000 1.125000 6.312500 +v 1.000000 0.375000 6.312500 +v 1.000000 1.125000 6.312500 +v 0.500000 1.125000 6.187500 +v 1.000000 0.375000 6.187500 +v 1.000000 1.125000 6.187500 +v 0.687500 0.875000 6.250000 +v 0.812500 0.875000 6.250000 +v 0.687500 0.875000 6.187500 +v 0.812500 0.875000 6.187500 +v 0.687500 0.937500 6.187500 +v 0.687500 0.937500 6.250000 +v 0.812500 0.937500 6.250000 +v 0.812500 0.937500 6.187500 +v 0.375000 1.000000 1.187500 +v 0.000000 0.625000 1.312500 +v 1.000000 1.000000 1.187500 +v 0.687500 1.000000 1.187500 +v 0.812500 1.000000 1.187500 +v 0.687500 0.875000 1.187500 +v 0.812500 0.875000 1.187500 +v 0.375000 1.000000 1.312500 +v 0.000000 0.625000 1.187500 +v 1.000000 1.000000 1.312500 +v 0.812500 1.000000 1.312500 +v 0.687500 1.000000 1.312500 +v 0.687500 0.875000 1.312500 +v 0.812500 0.875000 1.312500 +v 0.375000 0.687500 1.187500 +v 0.375000 0.687500 1.312500 +v 0.000000 0.500000 1.312500 +v 0.191342 0.461939 1.312500 +v 0.353553 0.353553 1.312500 +v 0.461940 0.191341 1.312500 +v 0.500000 -0.000000 1.312500 +v 0.000000 0.500000 1.187500 +v 0.191342 0.461939 1.187500 +v 0.353553 0.353553 1.187500 +v 0.461940 0.191341 1.187500 +v 0.500000 -0.000000 1.187500 +v 0.239177 0.577424 1.312500 +v 0.441942 0.441942 1.312500 +v 0.577425 0.239177 1.312500 +v 0.239177 0.577424 1.187500 +v 0.441942 0.441942 1.187500 +v 0.577425 0.239177 1.187500 +v 1.000000 -0.000000 1.312500 +v 1.000000 -0.000000 1.187500 +v 0.875000 0.125000 1.312500 +v 0.875000 0.125000 1.187500 +v 0.625000 0.125000 1.312500 +v 0.625000 0.125000 1.187500 +v 0.875000 0.687500 1.312500 +v 0.875000 0.687500 1.187500 +v 0.640625 0.062500 -6.875000 +v 0.453125 0.062500 -6.375000 +v 0.453125 -0.062500 -6.375000 +v 0.640625 -0.062500 -6.875000 +v -0.484375 -0.062500 -6.375000 +v -0.484375 0.062500 -6.375000 +v -0.671875 -0.062500 -6.875000 +v -0.671875 0.062500 -6.875000 +v -0.640625 -0.062500 -6.875000 +v -0.453125 -0.062500 -6.375000 +v -0.453125 0.062500 -6.375000 +v -0.640625 0.062500 -6.875000 +v 0.296314 -0.388231 -6.375000 +v 0.188061 -0.450731 -6.375000 +v 0.390064 -0.550611 -6.875000 +v 0.281811 -0.613111 -6.875000 +v 0.374439 -0.523548 -6.875000 +v 0.280689 -0.361168 -6.375000 +v 0.172436 -0.423668 -6.375000 +v 0.266186 -0.586048 -6.875000 +v -0.296314 0.388231 -6.375000 +v -0.188061 0.450731 -6.375000 +v -0.390064 0.550611 -6.875000 +v -0.281811 0.613111 -6.875000 +v -0.374439 0.523548 -6.875000 +v -0.280689 0.361168 -6.375000 +v -0.172436 0.423668 -6.375000 +v -0.266186 0.586048 -6.875000 +v -0.188061 -0.450731 -6.375000 +v -0.296314 -0.388231 -6.375000 +v -0.281811 -0.613111 -6.875000 +v -0.390064 -0.550611 -6.875000 +v -0.266186 -0.586047 -6.875000 +v -0.172436 -0.423668 -6.375000 +v -0.280689 -0.361168 -6.375000 +v -0.374439 -0.523547 -6.875000 +v 0.188061 0.450731 -6.375000 +v 0.296314 0.388231 -6.375000 +v 0.281811 0.613111 -6.875000 +v 0.390064 0.550611 -6.875000 +v 0.266186 0.586047 -6.875000 +v 0.172436 0.423668 -6.375000 +v 0.280689 0.361168 -6.375000 +v 0.374439 0.523547 -6.875000 +vt 0.500000 0.393939 +vt 0.495146 0.363636 +vt 0.500000 0.363636 +vt 0.500000 0.424242 +vt 0.495146 0.393939 +vt 0.500000 0.333333 +vt 0.495146 0.333333 +vt 0.500000 0.303030 +vt 0.495146 0.303030 +vt 0.495146 0.272727 +vt 0.500000 0.272727 +vt 0.495146 0.242424 +vt 0.500000 0.242424 +vt 0.495146 0.212121 +vt 0.500000 0.212121 +vt 0.495146 0.181818 +vt 0.500000 0.181818 +vt 0.495146 0.151515 +vt 0.500000 0.151515 +vt 0.495146 0.121212 +vt 0.500000 0.121212 +vt 0.500000 0.090909 +vt 0.495146 0.090909 +vt 0.500000 0.060606 +vt 0.495146 0.060606 +vt 0.500000 0.030303 +vt 0.495146 0.030303 +vt 0.500000 -0.000000 +vt 0.495146 -0.000000 +vt 0.500000 0.454545 +vt 0.495146 0.484848 +vt 0.495146 0.454545 +vt 0.495146 0.424242 +vt 0.995146 0.121212 +vt 1.000000 0.151515 +vt 0.995146 0.151515 +vt 1.000000 0.181818 +vt 0.995146 0.181818 +vt 0.995146 0.212121 +vt 1.000000 0.212121 +vt 0.995146 0.242424 +vt 1.000000 0.242424 +vt 0.995146 0.272727 +vt 1.000000 0.272727 +vt 0.995146 0.303030 +vt 1.000000 0.303030 +vt 0.995146 0.333333 +vt 1.000000 0.333333 +vt 0.995146 0.363636 +vt 1.000000 0.363636 +vt 0.995146 0.393939 +vt 1.000000 0.393939 +vt 0.995146 0.424242 +vt 1.000000 0.424242 +vt 0.995146 0.454545 +vt 1.000000 0.484848 +vt 0.995146 0.484848 +vt 0.995146 -0.000000 +vt 1.000000 0.030303 +vt 0.995146 0.030303 +vt 1.000000 0.060606 +vt 0.995146 0.060606 +vt 1.000000 0.090909 +vt 0.995146 0.090909 +vt 1.000000 0.121212 +vt 0.786408 0.666667 +vt 0.776699 0.651515 +vt 0.786408 0.651515 +vt 0.640777 0.666667 +vt 0.631068 0.651515 +vt 0.640777 0.651515 +vt 0.650485 0.666667 +vt 0.650485 0.651515 +vt 0.660194 0.651515 +vt 0.660194 0.666667 +vt 0.669903 0.651515 +vt 0.669903 0.666667 +vt 0.679612 0.666667 +vt 0.679612 0.651515 +vt 0.689320 0.666667 +vt 0.689320 0.651515 +vt 0.699029 0.651515 +vt 0.699029 0.666667 +vt 0.708738 0.651515 +vt 0.708738 0.666667 +vt 0.718447 0.651515 +vt 0.718447 0.666667 +vt 0.728155 0.666667 +vt 0.728155 0.651515 +vt 0.737864 0.666667 +vt 0.737864 0.651515 +vt 0.747573 0.651515 +vt 0.747573 0.666667 +vt 0.757282 0.666667 +vt 0.757282 0.651515 +vt 0.766990 0.651515 +vt 0.766990 0.666667 +vt 0.776699 0.666667 +vt 0.786408 0.681818 +vt 0.776699 0.696970 +vt 0.776699 0.681818 +vt 0.640777 0.681818 +vt 0.631068 0.696970 +vt 0.631068 0.681818 +vt 0.650485 0.681818 +vt 0.640777 0.696970 +vt 0.660194 0.696970 +vt 0.660194 0.681818 +vt 0.669903 0.696970 +vt 0.669903 0.681818 +vt 0.679612 0.681818 +vt 0.689320 0.681818 +vt 0.679612 0.696970 +vt 0.699029 0.696970 +vt 0.699029 0.681818 +vt 0.708738 0.696970 +vt 0.708738 0.681818 +vt 0.718447 0.696970 +vt 0.718447 0.681818 +vt 0.728155 0.681818 +vt 0.737864 0.681818 +vt 0.728155 0.696970 +vt 0.747573 0.696970 +vt 0.747573 0.681818 +vt 0.757282 0.681818 +vt 0.766990 0.696970 +vt 0.766990 0.681818 +vt 0.470874 0.833333 +vt 0.490291 0.848485 +vt 0.470874 0.848485 +vt 0.422330 0.863636 +vt 0.461165 0.893939 +vt 0.422330 0.893939 +vt 0.461165 0.863636 +vt 0.470874 0.893939 +vt 0.461165 0.833333 +vt 0.451456 0.803030 +vt 0.461165 0.803030 +vt 0.451456 0.833333 +vt 0.422330 0.803030 +vt 0.417476 0.893939 +vt 0.451456 0.924242 +vt 0.422330 0.909091 +vt 0.597087 0.681818 +vt 0.621359 0.727273 +vt 0.597087 0.727273 +vt 0.708738 0.515152 +vt 0.699029 0.530303 +vt 0.699029 0.515152 +vt 0.621359 0.651515 +vt 0.621359 0.681818 +vt 0.597087 0.757576 +vt 0.631068 0.727273 +vt 0.587379 0.681818 +vt 0.611650 0.484848 +vt 0.611650 0.515152 +vt 0.601942 0.651515 +vt 0.611650 0.651515 +vt 0.626214 0.530303 +vt 0.626214 0.651515 +vt 0.587379 0.530303 +vt 0.601942 0.515152 +vt 0.635922 0.530303 +vt 0.635922 0.651515 +vt 0.514563 0.560606 +vt 0.587379 0.560606 +vt 0.514563 0.515152 +vt 0.495146 0.590909 +vt 0.504854 0.621212 +vt 0.495146 0.621212 +vt 0.475728 0.803030 +vt 0.461165 0.787879 +vt 0.475728 0.787879 +vt 0.461165 0.636364 +vt 0.485437 0.681818 +vt 0.427184 0.681818 +vt 0.495146 0.636364 +vt 0.485437 0.636364 +vt 0.519417 0.636364 +vt 0.553398 0.681818 +vt 0.495146 0.681818 +vt 0.563107 0.636364 +vt 0.553398 0.636364 +vt 0.461165 0.696970 +vt 0.475728 0.681818 +vt 0.475728 0.696970 +vt 0.480583 0.696970 +vt 0.480583 0.787879 +vt 0.441748 0.787879 +vt 0.456311 0.696970 +vt 0.456311 0.787879 +vt 0.354369 0.833333 +vt 0.359223 0.787879 +vt 0.359223 0.833333 +vt 0.354369 0.787879 +vt 0.359223 0.757576 +vt 0.368932 0.833333 +vt 0.504854 0.590909 +vt 0.514563 0.621212 +vt 0.344660 0.787879 +vt 0.475728 0.621212 +vt 0.514563 0.590909 +vt 0.519417 0.621212 +vt 0.553398 0.590909 +vt 0.553398 0.621212 +vt 0.281553 0.833333 +vt 0.310680 0.848485 +vt 0.281553 0.848485 +vt 0.524272 0.757576 +vt 0.504854 0.772727 +vt 0.504854 0.757576 +vt 0.509709 0.848485 +vt 0.524272 0.772727 +vt 0.519417 0.848485 +vt 0.519417 0.681818 +vt 0.509709 0.681818 +vt 0.548544 0.772727 +vt 0.548544 0.757576 +vt 0.480583 0.757576 +vt 0.480583 0.772727 +vt 0.310680 0.833333 +vt 0.334951 0.848485 +vt 0.281553 0.924242 +vt 0.296117 0.893939 +vt 0.296117 0.924242 +vt 0.344660 0.893939 +vt 0.354369 0.893939 +vt 0.344660 0.924242 +vt 0.393204 0.893939 +vt 0.354369 0.924242 +vt 0.407767 0.893939 +vt 0.393204 0.924242 +vt 0.417476 0.893939 +vt 0.407767 0.924242 +vt 0.334951 0.833333 +vt 0.310680 0.818182 +vt 0.334951 0.818182 +vt 0.310680 0.863636 +vt 0.281553 0.818182 +vt 0.281553 0.863636 +vt 0.334951 0.878788 +vt 0.334951 0.863636 +vt 0.310680 0.878788 +vt 0.281553 0.878788 +vt 0.354369 0.939394 +vt 0.349515 0.878788 +vt 0.407767 0.878788 +vt 0.417476 0.878788 +vt 0.407767 0.939394 +vt 0.393204 0.939394 +vt 0.417476 0.924242 +vt 0.354369 0.878788 +vt 0.393204 0.878788 +vt 0.281553 0.939394 +vt 0.281553 0.893939 +vt 0.296117 0.878788 +vt 0.344660 0.878788 +vt 0.344660 0.939394 +vt 0.296117 0.939394 +vt 0.296117 0.969697 +vt 0.281553 0.969697 +vt 0.344660 0.969697 +vt 0.349515 0.969697 +vt 0.354369 0.969697 +vt 0.393204 0.969697 +vt 0.407767 0.969697 +vt 0.417476 0.939394 +vt 0.417476 0.969697 +vt 0.703883 0.485145 +vt 0.708643 0.500000 +vt 0.703883 0.514855 +vt 0.650485 0.575758 +vt 0.655340 0.590909 +vt 0.650485 0.590909 +vt 0.650485 0.560606 +vt 0.655340 0.545455 +vt 0.655340 0.560606 +vt 0.650485 0.651515 +vt 0.655340 0.636364 +vt 0.655340 0.651515 +vt 0.650485 0.606061 +vt 0.655340 0.621212 +vt 0.650485 0.621212 +vt 0.655340 0.575758 +vt 0.650485 0.545455 +vt 0.655340 0.530303 +vt 0.650485 0.636364 +vt 0.655340 0.606061 +vt 0.572816 0.560904 +vt 0.577575 0.575758 +vt 0.572816 0.590612 +vt 0.247573 0.636364 +vt 0.242718 0.666667 +vt 0.242718 0.636364 +vt 0.247573 0.666667 +vt 0.242718 0.696970 +vt 0.247573 0.696970 +vt 0.242718 0.727273 +vt 0.247573 0.727273 +vt 0.242718 0.757576 +vt 0.247573 0.757576 +vt 0.242718 0.787879 +vt 0.247573 0.818182 +vt 0.242718 0.818182 +vt 0.247573 0.848485 +vt 0.242718 0.848485 +vt 0.242718 0.878788 +vt 0.247573 0.878788 +vt 0.242718 0.909091 +vt 0.247573 0.939394 +vt 0.242718 0.939394 +vt 0.247573 0.969697 +vt 0.242718 0.969697 +vt 0.242718 0.484848 +vt 0.247573 0.515152 +vt 0.242718 0.515152 +vt 0.247573 0.545455 +vt 0.242718 0.545455 +vt 0.242718 0.575758 +vt 0.247573 0.606061 +vt 0.242718 0.606061 +vt 0.262136 0.666667 +vt 0.257282 0.636364 +vt 0.262136 0.636364 +vt 0.262136 0.696970 +vt 0.257282 0.666667 +vt 0.262136 0.727273 +vt 0.257282 0.696970 +vt 0.262136 0.757576 +vt 0.257282 0.727273 +vt 0.262136 0.787879 +vt 0.257282 0.757576 +vt 0.257282 0.818182 +vt 0.257282 0.787879 +vt 0.262136 0.818182 +vt 0.257282 0.848485 +vt 0.262136 0.878788 +vt 0.262136 0.848485 +vt 0.262136 0.909091 +vt 0.257282 0.878788 +vt 0.257282 0.939394 +vt 0.257282 0.909091 +vt 0.262136 0.939394 +vt 0.257282 0.969697 +vt 0.262136 0.484848 +vt 0.257282 0.515152 +vt 0.257282 0.484848 +vt 0.262136 0.515152 +vt 0.257282 0.545455 +vt 0.262136 0.575758 +vt 0.262136 0.545455 +vt 0.257282 0.606061 +vt 0.257282 0.575758 +vt 0.262136 0.606061 +vt 0.436893 0.545455 +vt 0.359223 0.515152 +vt 0.436893 0.515152 +vt 0.368932 0.606061 +vt 0.427184 0.575758 +vt 0.427184 0.606061 +vt 0.368932 0.575758 +vt 0.359223 0.545455 +vt 0.427184 0.484848 +vt 0.446602 0.575758 +vt 0.495146 0.606061 +vt 0.446602 0.606061 +vt 0.349515 0.606061 +vt 0.300971 0.575758 +vt 0.349515 0.575758 +vt 0.281553 0.515152 +vt 0.514563 0.545455 +vt 0.281553 0.545455 +vt 0.300971 0.484848 +vt 0.349515 0.484848 +vt 0.495146 0.575758 +vt 0.495146 0.484848 +vt 0.514563 0.515152 +vt 0.266990 0.636364 +vt 0.262136 0.666667 +vt 0.262136 0.636364 +vt 0.266990 0.666667 +vt 0.262136 0.696970 +vt 0.266990 0.696970 +vt 0.262136 0.727273 +vt 0.266990 0.727273 +vt 0.262136 0.757576 +vt 0.266990 0.757576 +vt 0.262136 0.787879 +vt 0.266990 0.818182 +vt 0.262136 0.818182 +vt 0.266990 0.848485 +vt 0.262136 0.848485 +vt 0.262136 0.878788 +vt 0.266990 0.878788 +vt 0.262136 0.909091 +vt 0.266990 0.939394 +vt 0.262136 0.939394 +vt 0.266990 0.969697 +vt 0.262136 0.969697 +vt 0.262136 0.484848 +vt 0.266990 0.515152 +vt 0.262136 0.515152 +vt 0.266990 0.545455 +vt 0.262136 0.545455 +vt 0.262136 0.575758 +vt 0.266990 0.606061 +vt 0.262136 0.606061 +vt 0.281553 0.666667 +vt 0.276699 0.636364 +vt 0.281553 0.636364 +vt 0.281553 0.696970 +vt 0.276699 0.666667 +vt 0.281553 0.727273 +vt 0.276699 0.696970 +vt 0.281553 0.757576 +vt 0.276699 0.727273 +vt 0.281553 0.787879 +vt 0.276699 0.757576 +vt 0.276699 0.818182 +vt 0.276699 0.787879 +vt 0.281553 0.818182 +vt 0.276699 0.848485 +vt 0.281553 0.878788 +vt 0.281553 0.848485 +vt 0.281553 0.909091 +vt 0.276699 0.878788 +vt 0.276699 0.939394 +vt 0.276699 0.909091 +vt 0.281553 0.939394 +vt 0.276699 0.969697 +vt 0.281553 0.484848 +vt 0.276699 0.515152 +vt 0.276699 0.484848 +vt 0.281553 0.515152 +vt 0.276699 0.545455 +vt 0.281553 0.575758 +vt 0.281553 0.545455 +vt 0.276699 0.606061 +vt 0.276699 0.575758 +vt 0.281553 0.606061 +vt 0.349515 0.727273 +vt 0.344660 0.742424 +vt 0.344660 0.727273 +vt 0.320388 0.727273 +vt 0.310680 0.712121 +vt 0.320388 0.712121 +vt 0.325243 0.666667 +vt 0.330097 0.757576 +vt 0.325243 0.757576 +vt 0.305825 0.772727 +vt 0.305825 0.757576 +vt 0.281553 0.757576 +vt 0.286408 0.772727 +vt 0.281553 0.772727 +vt 0.330097 0.621212 +vt 0.330097 0.666667 +vt 0.325243 0.621212 +vt 0.330097 0.606061 +vt 0.286408 0.757576 +vt 0.355176 0.665482 +vt 0.361363 0.678385 +vt 0.347207 0.727559 +vt 0.322755 0.727325 +vt 0.325147 0.757190 +vt 0.322755 0.742258 +vt 0.306010 0.757190 +vt 0.308403 0.742258 +vt 0.300406 0.665035 +vt 0.304554 0.645658 +vt 0.325147 0.667597 +vt 0.332904 0.727559 +vt 0.330520 0.757320 +vt 0.330520 0.668035 +vt 0.347207 0.742440 +vt 0.332904 0.742440 +vt 0.310680 0.742424 +vt 0.320388 0.757576 +vt 0.310680 0.757576 +vt 0.330097 0.742424 +vt 0.334951 0.727273 +vt 0.334951 0.742424 +vt 0.296117 0.787879 +vt 0.286408 0.803030 +vt 0.286408 0.787879 +vt 0.296117 0.772727 +vt 0.286408 0.772727 +vt 0.300971 0.803030 +vt 0.300971 0.787879 +vt 0.281553 0.787879 +vt 0.281553 0.803030 +vt 0.286408 0.818182 +vt 0.296117 0.803030 +vt 0.296117 0.818182 +vt 0.388350 0.803030 +vt 0.368932 0.787879 +vt 0.388350 0.787879 +vt 0.400485 0.803030 +vt 0.405340 0.787879 +vt 0.405340 0.803030 +vt 0.395631 0.803030 +vt 0.400485 0.787879 +vt 0.405340 0.803030 +vt 0.412621 0.787879 +vt 0.412621 0.803030 +vt 0.410194 0.787879 +vt 0.410194 0.803030 +vt 0.400485 0.787879 +vt 0.400485 0.803030 +vt 0.300971 0.772727 +vt 0.305825 0.787879 +vt 0.300971 0.787879 +vt 0.325243 0.772727 +vt 0.315534 0.787879 +vt 0.315534 0.772727 +vt 0.315534 0.803030 +vt 0.325243 0.818182 +vt 0.315534 0.818182 +vt 0.325243 0.787879 +vt 0.305825 0.772727 +vt 0.305825 0.818182 +vt 0.334951 0.787879 +vt 0.334951 0.803030 +vt 0.325243 0.803030 +vt 0.417476 0.666667 +vt 0.412621 0.606061 +vt 0.417476 0.606061 +vt 0.402913 0.742424 +vt 0.407767 0.681818 +vt 0.407767 0.742424 +vt 0.383495 0.742424 +vt 0.368932 0.803030 +vt 0.383495 0.848485 +vt 0.373786 0.848485 +vt 0.402913 0.621212 +vt 0.407767 0.651515 +vt 0.402913 0.651515 +vt 0.339806 0.803030 +vt 0.407767 0.742424 +vt 0.402913 0.681818 +vt 0.407767 0.681818 +vt 0.422330 0.742424 +vt 0.441748 0.727273 +vt 0.441748 0.742424 +vt 0.412621 0.666667 +vt 0.417476 0.787879 +vt 0.422330 0.651515 +vt 0.334951 0.818182 +vt 0.344660 0.818182 +vt 0.407767 0.621212 +vt 0.339806 0.787879 +vt 0.334951 0.772727 +vt 0.344660 0.772727 +vt 0.400485 0.772727 +vt 0.388350 0.742424 +vt 0.429612 0.772727 +vt 0.424757 0.772727 +vt 0.490291 0.803030 +vt 0.470874 0.818182 +vt 0.470874 0.803030 +vt 0.490291 0.818182 +vt 0.490291 0.833333 +vt 0.490291 0.863636 +vt 0.470874 0.863636 +vt 0.470874 0.833333 +vt 0.490291 0.848485 +vt 0.470874 0.848485 +vt 0.490291 0.803030 +vt 0.470874 0.818182 +vt 0.470874 0.803030 +vt 0.490291 0.818182 +vt 0.490291 0.833333 +vt 0.490291 0.863636 +vt 0.470874 0.863636 +vt 0.470874 0.833333 +vt 0.490291 0.848485 +vt 0.470874 0.848485 +vt 0.470874 0.803030 +vt 0.490291 0.818182 +vt 0.470874 0.818182 +vt 0.490291 0.833333 +vt 0.490291 0.863636 +vt 0.470874 0.863636 +vt 0.470874 0.833333 +vt 0.490291 0.848485 +vt 0.470874 0.848485 +vt 0.490291 0.803030 +vt 0.470874 0.818182 +vt 0.470874 0.803030 +vt 0.490291 0.818182 +vt 0.490291 0.833333 +vt 0.490291 0.863636 +vt 0.470874 0.863636 +vt 0.470874 0.848485 +vt 0.490291 0.833333 +vt 0.490291 0.848485 +vt 0.470874 0.803030 +vt 0.490291 0.818182 +vt 0.470874 0.818182 +vt 0.470874 0.833333 +vt 0.490291 0.863636 +vt 0.470874 0.863636 +vt 0.470874 0.833333 +vt 0.490291 0.848485 +vt 0.470874 0.848485 +vt 0.470874 0.803030 +vt 0.490291 0.818182 +vt 0.470874 0.818182 +vt 0.490291 0.833333 +vt 0.490291 0.863636 +vt 0.470874 0.863636 +vt 0.500000 0.484848 +vt 1.000000 0.454545 +vt 1.000000 0.000000 +vt 0.631068 0.666667 +vt 0.786408 0.696970 +vt 0.650485 0.696970 +vt 0.689320 0.696970 +vt 0.737864 0.696970 +vt 0.757282 0.696970 +vt 0.470874 0.863636 +vt 0.422330 0.833333 +vt 0.417476 0.863636 +vt 0.461165 0.924242 +vt 0.422330 0.848485 +vt 0.708738 0.530303 +vt 0.597087 0.651515 +vt 0.621359 0.757576 +vt 0.631068 0.681818 +vt 0.587379 0.727273 +vt 0.699029 0.484848 +vt 0.587379 0.651515 +vt 0.514563 0.530303 +vt 0.461165 0.803030 +vt 0.427184 0.636364 +vt 0.563107 0.681818 +vt 0.461165 0.681818 +vt 0.441748 0.696970 +vt 0.354369 0.757576 +vt 0.368932 0.787879 +vt 0.344660 0.833333 +vt 0.466019 0.621212 +vt 0.519417 0.590909 +vt 0.349515 0.939394 +vt 0.281553 0.878788 +vt 0.700518 0.510504 +vt 0.699124 0.500000 +vt 0.700518 0.489496 +vt 0.707249 0.489496 +vt 0.707249 0.510504 +vt 0.650485 0.530303 +vt 0.569451 0.586261 +vt 0.568057 0.575758 +vt 0.569451 0.565255 +vt 0.576181 0.565255 +vt 0.576181 0.586261 +vt 0.247573 0.787879 +vt 0.247573 0.909091 +vt 0.247573 0.484848 +vt 0.247573 0.575758 +vt 0.262136 0.969697 +vt 0.368932 0.484848 +vt 0.300971 0.606061 +vt 0.446602 0.484848 +vt 0.266990 0.787879 +vt 0.266990 0.909091 +vt 0.266990 0.484848 +vt 0.266990 0.575758 +vt 0.281553 0.969697 +vt 0.349515 0.742424 +vt 0.310680 0.727273 +vt 0.325243 0.772727 +vt 0.325243 0.606061 +vt 0.344823 0.623392 +vt 0.351042 0.646171 +vt 0.349591 0.623392 +vt 0.349591 0.757320 +vt 0.368661 0.682916 +vt 0.368661 0.697797 +vt 0.308403 0.727325 +vt 0.286874 0.697461 +vt 0.286874 0.682529 +vt 0.294197 0.677983 +vt 0.306010 0.622801 +vt 0.310795 0.622801 +vt 0.320388 0.742424 +vt 0.330097 0.727273 +vt 0.395631 0.787879 +vt 0.405340 0.787879 +vt 0.305825 0.803030 +vt 0.402913 0.681818 +vt 0.373786 0.742424 +vt 0.402913 0.742424 +vt 0.422330 0.727273 +vt 0.422330 0.681818 +vt 0.422330 0.621212 +vt 0.405340 0.772727 +vt 0.424757 0.787879 +vt 0.441748 0.787879 +vt 0.429612 0.787879 +vt 0.490291 0.803030 +vt 0.490291 0.803030 +vt 0.490291 0.803030 +vt 0.000000 0.181818 +vt 0.000000 0.454545 +vt 0.000000 0.242424 +vt 0.000000 0.212121 +vt -0.000000 0.000000 +vt 0.000000 0.272727 +vt -0.000000 0.030303 +vt 0.000000 0.303030 +vt 0.000000 0.060606 +vt 0.000000 0.333333 +vt 0.000000 0.090909 +vt 0.000000 0.363636 +vt 0.000000 0.121212 +vt 0.000000 0.393939 +vt 0.000000 0.151515 +vt 0.000000 0.424242 +vt 0.737864 0.712121 +vt 0.747573 0.712121 +vt 0.650485 0.712121 +vt 0.660194 0.712121 +vt 0.728155 0.712121 +vt 0.640777 0.712121 +vt 0.718447 0.712121 +vt 0.631068 0.712121 +vt 0.699029 0.712121 +vt 0.708738 0.712121 +vt 0.776699 0.712121 +vt 0.786408 0.712121 +vt 0.689320 0.712121 +vt 0.766990 0.712121 +vt 0.679612 0.712121 +vt 0.757282 0.712121 +vt 0.669903 0.712121 +vt 0.728155 0.530303 +vt 0.708738 0.515152 +vt 0.728155 0.515152 +vt 0.728155 0.500000 +vt 0.708738 0.484848 +vt 0.728155 0.484848 +vt 0.728155 0.590909 +vt 0.708738 0.575758 +vt 0.728155 0.575758 +vt 0.728155 0.560606 +vt 0.708738 0.545455 +vt 0.728155 0.545455 +vt 0.708738 0.530303 +vt 0.708738 0.500000 +vt 0.728155 0.606061 +vt 0.708738 0.590909 +vt 0.708738 0.560606 +vt 0.635922 0.545455 +vt 0.635922 0.530303 +vt 0.635922 0.636364 +vt 0.635922 0.621212 +vt 0.635922 0.606061 +vt 0.635922 0.590909 +vt 0.635922 0.575758 +vt 0.635922 0.560606 +vt 0.635922 0.651515 +vt 0.679612 0.636364 +vt 0.679612 0.606061 +vt 0.679612 0.590909 +vt 0.679612 0.560606 +vt 0.679612 0.651515 +vt 0.679612 0.621212 +vt 0.679612 0.575758 +vt 0.679612 0.545455 +vt 0.728155 0.575758 +vt 0.747573 0.590909 +vt 0.728155 0.590909 +vt 0.728155 0.545455 +vt 0.747573 0.560606 +vt 0.728155 0.560606 +vt 0.728155 0.530303 +vt 0.747573 0.545455 +vt 0.728155 0.500000 +vt 0.747573 0.515152 +vt 0.728155 0.515152 +vt 0.747573 0.606061 +vt 0.728155 0.606061 +vt 0.747573 0.575758 +vt 0.747573 0.530303 +vt 0.728155 0.484848 +vt 0.747573 0.500000 +vt 0.757282 0.530303 +vt 0.762136 0.575758 +vt 0.762136 0.590909 +vt 0.757282 0.545455 +vt 0.757282 0.560606 +vt 0.762136 0.515152 +vt 0.747573 0.484848 +vt 0.762136 0.500000 +vt 0.762136 0.606061 +vt 0.587379 0.621212 +vt 0.577670 0.606061 +vt 0.587379 0.606061 +vt 0.587379 0.590909 +vt 0.577670 0.575758 +vt 0.587379 0.575758 +vt 0.587379 0.681818 +vt 0.577670 0.666667 +vt 0.587379 0.666667 +vt 0.587379 0.651515 +vt 0.577670 0.636364 +vt 0.587379 0.636364 +vt 0.577670 0.590909 +vt 0.577670 0.560606 +vt 0.587379 0.560606 +vt 0.577670 0.651515 +vt 0.577670 0.621212 +vt -0.000000 0.484848 +vt 0.708738 0.606061 +vt 0.679612 0.530303 +vt 0.762136 0.484848 +vt 0.577670 0.681818 +vn -0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9363 0.0000 0.3511 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.9864 0.1644 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.1644 -0.9864 +vn 0.0000 -0.1644 0.9864 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.5547 -0.8321 +vn 0.0000 0.8321 0.5547 +vn 0.0000 -0.3714 0.9285 +vn 0.0000 0.1789 -0.9839 +vn 0.0000 0.3881 -0.9216 +vn 0.0000 0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.5556 0.8315 0.0000 +vn 0.8315 0.5556 0.0000 +vn 0.6296 -0.7769 0.0000 +vn 0.9231 0.3846 0.0000 +vn -0.9363 0.0000 -0.3511 +vn -0.9363 0.0000 0.3511 +vn 0.9363 0.0000 -0.3511 +vn 0.4682 -0.8109 0.3511 +vn -0.4682 0.8109 -0.3511 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 -0.0000 +vn -0.4682 0.8109 0.3511 +vn 0.4682 -0.8109 -0.3511 +vn -0.4682 -0.8109 0.3511 +vn 0.4682 0.8109 -0.3511 +vn -0.8660 0.5000 -0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.4682 0.8109 0.3511 +vn -0.4682 -0.8109 -0.3511 +vn 0.3827 0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.6736 -0.7187 -0.1724 +vn -0.7285 0.6658 0.1611 +vn -0.0000 0.9699 0.2434 +vn 0.9981 -0.0555 -0.0278 +vn -0.0000 -0.9759 -0.2181 +vn -0.9981 -0.0555 -0.0278 +vn 0.7285 0.6658 0.1611 +vn 0.6736 -0.7187 -0.1724 +vn 0.8048 0.5308 0.2654 +vn -0.9539 -0.2684 -0.1342 +vn -0.4741 -0.7875 -0.3938 +vn -0.0000 0.8944 0.4472 +vn -0.8048 0.5309 0.2654 +vn 0.9539 -0.2684 -0.1342 +vn 0.4741 -0.7875 -0.3938 +vn -0.0000 -0.8944 -0.4472 +s off +f 360/463/109 373/464/109 362/465/109 +f 358/466/109 374/467/109 360/463/109 +f 364/468/109 373/464/109 372/469/109 +f 366/470/109 372/469/109 371/471/109 +f 366/470/109 370/472/109 368/473/109 +f 368/473/109 369/474/109 338/475/109 +f 338/475/109 384/476/109 340/477/109 +f 340/477/109 383/478/109 342/479/109 +f 342/479/109 382/480/109 344/481/109 +f 344/481/109 381/482/109 346/483/109 +f 348/484/109 381/482/109 380/485/109 +f 350/486/109 380/485/109 379/487/109 +f 352/488/109 379/487/109 378/489/109 +f 354/490/109 378/489/109 377/491/109 +f 356/492/109 377/493/109 376/494/109 +f 358/466/109 376/494/109 375/495/109 +f 345/496/110 398/497/110 343/498/110 +f 343/498/110 399/499/110 341/500/110 +f 399/499/110 339/501/110 341/500/110 +f 400/502/110 337/503/110 339/501/110 +f 385/504/110 367/505/110 337/503/110 +f 386/506/110 365/507/110 367/505/110 +f 387/508/110 363/509/110 365/507/110 +f 388/510/110 361/511/110 363/509/110 +f 389/512/110 359/513/110 361/511/110 +f 390/514/110 357/515/110 359/513/110 +f 391/516/110 355/517/110 357/515/110 +f 355/517/110 393/518/110 353/519/110 +f 353/520/110 394/521/110 351/522/110 +f 351/522/110 395/523/110 349/524/110 +f 349/524/110 396/525/110 347/526/110 +f 347/526/110 397/527/110 345/496/110 +f 409/528/109 442/529/109 441/530/109 +f 408/531/109 441/532/109 440/533/109 +f 407/534/109 440/533/109 439/535/109 +f 407/534/109 438/536/109 406/537/109 +f 406/537/109 437/538/109 405/539/109 +f 404/540/109 437/538/109 436/541/109 +f 403/542/109 436/541/109 435/543/109 +f 403/542/109 434/544/109 402/545/109 +f 402/545/109 433/546/109 401/547/109 +f 401/547/109 448/548/109 416/549/109 +f 415/550/109 448/548/109 447/551/109 +f 414/552/109 447/551/109 446/553/109 +f 414/552/109 445/554/109 413/555/109 +f 412/556/109 445/554/109 444/557/109 +f 412/556/109 443/558/109 411/559/109 +f 411/559/109 442/529/109 410/560/109 +f 425/561/110 458/562/110 426/563/110 +f 424/564/110 457/565/110 425/566/110 +f 423/567/110 456/568/110 424/564/110 +f 454/569/110 423/567/110 422/570/110 +f 453/571/110 422/570/110 421/572/110 +f 420/573/110 453/571/110 421/572/110 +f 419/574/110 452/575/110 420/573/110 +f 450/576/110 419/574/110 418/577/110 +f 449/578/110 418/577/110 417/579/110 +f 464/580/110 417/579/110 432/581/110 +f 431/582/110 464/580/110 432/581/110 +f 430/583/110 463/584/110 431/582/110 +f 461/585/110 430/583/110 429/586/110 +f 428/587/110 461/585/110 429/586/110 +f 459/588/110 428/587/110 427/589/110 +f 458/562/110 427/589/110 426/563/110 +f 466/590/111 467/591/111 465/592/111 +f 470/593/112 471/594/112 469/595/112 +f 472/596/110 473/597/110 471/594/110 +f 474/598/113 475/599/113 473/600/113 +f 476/601/114 477/602/114 475/599/114 +f 477/603/109 470/593/109 469/595/109 +f 475/604/115 477/605/115 469/595/115 +f 476/601/116 474/598/116 472/596/116 +f 480/606/116 481/607/116 479/608/116 +f 495/609/110 498/610/110 496/611/110 +f 480/606/113 486/612/113 482/613/113 +f 481/607/112 484/614/112 479/608/112 +f 482/613/110 483/615/110 481/607/110 +f 479/608/109 485/616/109 480/606/109 +f 491/617/113 496/611/113 492/618/113 +f 487/619/109 492/618/109 488/620/109 +f 488/620/116 494/621/116 490/622/116 +f 487/619/115 493/623/115 491/624/115 +f 490/622/110 493/625/110 489/626/110 +f 498/627/112 493/623/112 494/628/112 +f 493/623/115 495/629/115 491/624/115 +f 496/611/116 494/621/116 492/618/116 +f 501/630/117 524/631/117 502/632/117 +f 507/633/112 510/634/112 508/635/112 +f 528/636/115 505/637/115 503/638/115 +f 502/639/109 505/637/109 501/640/109 +f 527/641/116 504/642/116 506/643/116 +f 499/644/110 504/642/110 500/645/110 +f 514/646/113 511/647/113 512/648/113 +f 508/635/116 514/646/116 512/648/116 +f 508/635/118 511/649/118 507/650/118 +f 507/651/115 513/652/115 509/653/115 +f 509/653/119 514/646/119 510/634/119 +f 515/654/109 518/655/109 516/656/109 +f 524/631/116 527/641/116 502/639/116 +f 517/657/113 522/658/113 518/655/113 +f 518/655/116 520/659/116 516/656/116 +f 523/660/113 526/661/113 524/631/113 +f 515/654/115 521/662/115 517/657/115 +f 528/636/115 523/663/115 501/640/115 +f 525/664/120 527/665/120 526/661/120 +f 527/665/113 499/666/113 500/667/113 +f 538/668/119 539/669/119 537/670/119 +f 533/671/121 535/672/121 534/673/121 +f 530/674/116 536/675/116 532/676/116 +f 531/677/115 534/673/115 529/678/115 +f 532/679/122 533/671/122 531/680/122 +f 529/681/123 535/672/123 530/682/123 +f 540/683/113 541/684/113 539/669/113 +f 546/685/109 543/686/109 544/687/109 +f 547/688/124 544/687/124 543/686/124 +f 549/689/113 548/690/113 547/688/113 +f 551/691/110 550/692/110 549/689/110 +f 553/693/120 552/694/120 551/691/120 +f 555/695/110 554/696/110 553/693/110 +f 542/697/115 558/698/115 560/699/115 +f 541/684/116 557/700/116 539/669/116 +f 558/698/115 538/668/115 562/701/115 +f 537/670/116 557/700/116 561/702/116 +f 560/703/112 557/700/112 559/704/112 +f 561/702/125 558/705/125 562/706/125 +f 566/707/116 548/690/116 550/692/116 +f 563/708/115 549/689/115 547/688/115 +f 551/691/115 569/709/115 553/693/115 +f 553/693/115 571/710/115 555/695/115 +f 552/694/116 570/711/116 568/712/116 +f 556/713/116 570/711/116 554/696/116 +f 551/691/115 565/714/115 567/715/115 +f 552/694/116 566/707/116 550/692/116 +f 544/687/116 576/716/116 546/685/116 +f 545/717/115 573/718/115 543/686/115 +f 543/686/115 563/719/115 547/688/115 +f 544/687/116 564/720/116 574/721/116 +f 576/716/110 573/722/110 575/723/110 +f 574/721/126 563/724/126 573/722/126 +f 563/725/112 566/707/112 565/726/112 +f 565/726/109 568/712/109 567/727/109 +f 567/727/127 570/711/127 569/728/127 +f 569/728/109 572/729/109 571/730/109 +f 589/731/109 591/732/109 585/733/109 +f 608/734/110 609/735/110 601/736/110 +f 607/737/110 614/738/110 615/739/110 +f 605/740/110 612/741/110 613/742/110 +f 602/743/110 611/744/110 603/745/110 +f 607/737/110 616/746/110 608/734/110 +f 606/747/110 613/748/110 614/738/110 +f 604/749/110 611/744/110 612/741/110 +f 601/736/110 610/750/110 602/743/110 +f 661/751/109 663/752/109 657/753/109 +f 694/754/109 667/755/109 668/756/109 +f 695/757/109 666/758/109 667/755/109 +f 696/759/109 665/760/109 666/758/109 +f 681/761/109 680/762/109 665/760/109 +f 682/763/109 679/764/109 680/762/109 +f 679/764/109 684/765/109 678/766/109 +f 678/766/109 685/767/109 677/768/109 +f 685/767/109 676/769/109 677/768/109 +f 686/770/109 675/771/109 676/769/109 +f 675/771/109 688/772/109 674/773/109 +f 674/773/109 689/774/109 673/775/109 +f 673/776/109 690/777/109 672/778/109 +f 672/778/109 691/779/109 671/780/109 +f 691/779/109 670/781/109 671/780/109 +f 670/781/109 693/782/109 669/783/109 +f 693/782/109 668/756/109 669/783/109 +f 699/784/110 726/785/110 700/786/110 +f 698/787/110 727/788/110 699/784/110 +f 697/789/110 728/790/110 698/787/110 +f 712/791/110 713/792/110 697/789/110 +f 711/793/110 714/794/110 712/791/110 +f 711/793/110 716/795/110 715/796/110 +f 710/797/110 717/798/110 716/795/110 +f 708/799/110 717/798/110 709/800/110 +f 707/801/110 718/802/110 708/799/110 +f 707/801/110 720/803/110 719/804/110 +f 706/805/110 721/806/110 720/803/110 +f 705/807/110 722/808/110 721/809/110 +f 704/810/110 723/811/110 722/808/110 +f 702/812/110 723/811/110 703/813/110 +f 702/812/110 725/814/110 724/815/110 +f 700/786/110 725/814/110 701/816/110 +f 731/817/113 730/818/113 729/819/113 +f 735/820/112 733/821/112 734/822/112 +f 731/817/110 736/823/110 732/824/110 +f 730/818/109 734/825/109 729/819/109 +f 733/826/116 738/827/116 734/828/116 +f 735/829/115 740/830/115 736/831/115 +f 732/824/116 742/832/116 730/818/116 +f 729/819/115 743/833/115 731/817/115 +f 732/824/110 740/830/110 744/834/110 +f 730/818/109 739/835/109 735/836/109 +f 731/817/110 737/837/110 733/826/110 +f 729/819/109 738/838/109 741/839/109 +f 774/840/109 747/841/109 748/842/109 +f 775/843/109 746/844/109 747/841/109 +f 776/845/109 745/846/109 746/844/109 +f 761/847/109 760/848/109 745/846/109 +f 762/849/109 759/850/109 760/848/109 +f 759/850/109 764/851/109 758/852/109 +f 758/852/109 765/853/109 757/854/109 +f 765/853/109 756/855/109 757/854/109 +f 766/856/109 755/857/109 756/855/109 +f 755/857/109 768/858/109 754/859/109 +f 754/859/109 769/860/109 753/861/109 +f 753/862/109 770/863/109 752/864/109 +f 752/864/109 771/865/109 751/866/109 +f 771/865/109 750/867/109 751/866/109 +f 750/867/109 773/868/109 749/869/109 +f 773/868/109 748/842/109 749/869/109 +f 779/870/110 806/871/110 780/872/110 +f 778/873/110 807/874/110 779/870/110 +f 777/875/110 808/876/110 778/873/110 +f 792/877/110 793/878/110 777/875/110 +f 791/879/110 794/880/110 792/877/110 +f 791/879/110 796/881/110 795/882/110 +f 790/883/110 797/884/110 796/881/110 +f 788/885/110 797/884/110 789/886/110 +f 787/887/110 798/888/110 788/885/110 +f 787/887/110 800/889/110 799/890/110 +f 786/891/110 801/892/110 800/889/110 +f 785/893/110 802/894/110 801/895/110 +f 784/896/110 803/897/110 802/894/110 +f 782/898/110 803/897/110 783/899/110 +f 782/898/110 805/900/110 804/901/110 +f 780/872/110 805/900/110 781/902/110 +f 814/903/116 811/904/116 809/905/116 +f 815/906/112 809/907/112 810/908/112 +f 832/909/116 836/910/116 833/911/116 +f 833/911/112 834/912/112 831/913/112 +f 817/914/115 830/915/115 818/916/115 +f 832/909/128 820/917/128 835/918/128 +f 819/919/113 822/920/113 820/917/113 +f 834/912/129 829/921/129 831/913/129 +f 827/922/110 826/923/110 814/924/110 +f 810/925/109 833/926/109 812/927/109 +f 812/927/109 831/928/109 811/929/109 +f 824/930/109 825/931/109 832/932/109 +f 815/933/110 836/934/110 835/935/110 +f 813/936/110 836/934/110 816/937/110 +f 813/938/113 812/939/113 811/940/113 +f 816/941/115 810/942/115 812/943/115 +f 843/944/112 841/945/112 842/946/112 +f 838/947/109 842/946/109 837/948/109 +f 840/949/116 843/944/116 838/950/116 +f 837/951/115 841/945/115 839/952/115 +f 839/953/110 844/954/110 840/955/110 +f 845/956/129 846/957/129 852/958/129 +f 850/959/112 858/960/112 851/961/112 +f 848/962/116 857/963/116 850/959/116 +f 849/964/112 854/965/112 847/966/112 +f 851/961/115 855/967/115 849/968/115 +f 845/956/112 856/969/112 848/970/112 +f 866/971/115 846/972/115 853/973/115 +f 863/974/109 871/975/109 862/976/109 +f 874/977/110 868/978/110 867/979/110 +f 872/980/130 874/977/130 871/975/130 +f 871/975/109 861/981/109 862/976/109 +f 866/982/110 874/977/110 867/979/110 +f 863/974/109 873/983/109 872/980/109 +f 876/984/110 868/978/110 875/985/110 +f 873/983/131 875/985/131 872/980/131 +f 878/986/113 865/987/113 870/988/113 +f 860/989/132 874/990/132 859/991/132 +f 846/957/109 860/992/109 852/958/109 +f 853/993/110 859/994/110 874/995/110 +f 882/996/112 879/997/112 880/998/112 +f 873/983/133 882/999/133 876/984/133 +f 883/1000/115 880/1001/115 879/1002/115 +f 884/1003/113 860/1004/113 859/1005/113 +f 877/1006/109 883/1000/109 879/1002/109 +f 854/965/116 878/986/116 847/1007/116 +f 878/986/110 884/1003/110 847/1007/110 +f 870/988/110 880/1008/110 878/986/110 +f 869/1009/110 882/999/110 870/1010/110 +f 877/1006/109 881/1011/109 865/987/109 +f 881/1012/109 864/1013/109 865/1014/109 +f 857/1015/109 860/1016/109 883/1000/109 +f 884/1003/110 850/1017/110 851/1018/110 +f 885/1019/134 887/1020/134 886/1021/134 +f 466/590/113 888/1022/113 468/1023/113 +f 465/592/112 885/1024/112 886/1025/112 +f 890/1026/135 891/1027/135 889/1028/135 +f 893/1029/136 895/1030/136 894/1031/136 +f 890/1026/112 896/1032/112 892/1033/112 +f 889/1028/113 893/1034/113 894/1035/113 +f 898/1036/137 899/1037/137 897/1038/137 +f 902/1039/138 904/1040/138 903/1041/138 +f 898/1036/139 904/1040/139 900/1042/139 +f 897/1038/140 901/1043/140 902/1044/140 +f 906/1045/141 907/1046/141 905/1047/141 +f 909/1048/142 911/1049/142 910/1050/142 +f 906/1045/140 912/1051/140 908/1052/140 +f 905/1047/139 909/1053/139 910/1054/139 +f 913/1055/143 916/1056/143 915/1057/143 +f 918/1058/144 920/1059/144 919/1060/144 +f 914/1061/145 920/1059/145 916/1056/145 +f 913/1055/146 917/1062/146 918/1063/146 +f 922/1064/147 923/1065/147 921/1066/147 +f 926/1067/148 928/1068/148 927/1069/148 +f 922/1064/146 928/1068/146 924/1070/146 +f 921/1066/145 925/1071/145 926/1072/145 +f 360/463/109 374/467/109 373/464/109 +f 358/466/109 375/495/109 374/467/109 +f 364/468/109 362/465/109 373/464/109 +f 366/470/109 364/468/109 372/469/109 +f 366/470/109 371/471/109 370/472/109 +f 368/473/109 370/472/109 369/474/109 +f 338/475/109 369/474/109 384/476/109 +f 340/477/109 384/476/109 383/478/109 +f 342/479/109 383/478/109 382/480/109 +f 344/481/109 382/480/109 381/482/109 +f 348/484/109 346/483/109 381/482/109 +f 350/486/109 348/484/109 380/485/109 +f 352/488/109 350/486/109 379/487/109 +f 354/490/109 352/488/109 378/489/109 +f 356/492/109 354/1073/109 377/493/109 +f 358/466/109 356/492/109 376/494/109 +f 345/496/110 397/527/110 398/497/110 +f 343/498/110 398/497/110 399/499/110 +f 399/499/110 400/502/110 339/501/110 +f 400/502/110 385/504/110 337/503/110 +f 385/504/110 386/506/110 367/505/110 +f 386/506/110 387/508/110 365/507/110 +f 387/508/110 388/510/110 363/509/110 +f 388/510/110 389/512/110 361/511/110 +f 389/512/110 390/514/110 359/513/110 +f 390/514/110 391/516/110 357/515/110 +f 391/516/110 392/1074/110 355/517/110 +f 355/517/110 392/1074/110 393/518/110 +f 353/520/110 393/1075/110 394/521/110 +f 351/522/110 394/521/110 395/523/110 +f 349/524/110 395/523/110 396/525/110 +f 347/526/110 396/525/110 397/527/110 +f 409/528/109 410/560/109 442/529/109 +f 408/531/109 409/1076/109 441/532/109 +f 407/534/109 408/531/109 440/533/109 +f 407/534/109 439/535/109 438/536/109 +f 406/537/109 438/536/109 437/538/109 +f 404/540/109 405/539/109 437/538/109 +f 403/542/109 404/540/109 436/541/109 +f 403/542/109 435/543/109 434/544/109 +f 402/545/109 434/544/109 433/546/109 +f 401/547/109 433/546/109 448/548/109 +f 415/550/109 416/549/109 448/548/109 +f 414/552/109 415/550/109 447/551/109 +f 414/552/109 446/553/109 445/554/109 +f 412/556/109 413/555/109 445/554/109 +f 412/556/109 444/557/109 443/558/109 +f 411/559/109 443/558/109 442/529/109 +f 425/561/110 457/1077/110 458/562/110 +f 424/564/110 456/568/110 457/565/110 +f 423/567/110 455/1078/110 456/568/110 +f 454/569/110 455/1078/110 423/567/110 +f 453/571/110 454/569/110 422/570/110 +f 420/573/110 452/575/110 453/571/110 +f 419/574/110 451/1079/110 452/575/110 +f 450/576/110 451/1079/110 419/574/110 +f 449/578/110 450/576/110 418/577/110 +f 464/580/110 449/578/110 417/579/110 +f 431/582/110 463/584/110 464/580/110 +f 430/583/110 462/1080/110 463/584/110 +f 461/585/110 462/1080/110 430/583/110 +f 428/587/110 460/1081/110 461/585/110 +f 459/588/110 460/1081/110 428/587/110 +f 458/562/110 459/588/110 427/589/110 +f 466/590/111 468/1023/111 467/591/111 +f 470/593/112 472/596/112 471/594/112 +f 472/596/110 474/1082/110 473/597/110 +f 474/598/113 476/601/113 475/599/113 +f 476/601/114 478/1083/114 477/602/114 +f 477/603/109 478/1084/109 470/593/109 +f 469/595/115 471/594/115 475/604/115 +f 471/594/115 473/1085/115 475/604/115 +f 472/596/116 470/593/116 476/601/116 +f 470/593/116 478/1086/116 476/601/116 +f 480/606/116 482/613/116 481/607/116 +f 495/609/110 497/1087/110 498/610/110 +f 480/606/113 485/1088/113 486/612/113 +f 481/607/112 483/1089/112 484/614/112 +f 482/613/110 486/1090/110 483/615/110 +f 479/608/109 484/1091/109 485/616/109 +f 491/617/113 495/1092/113 496/611/113 +f 487/619/109 491/624/109 492/618/109 +f 488/620/116 492/618/116 494/621/116 +f 487/619/115 489/1093/115 493/623/115 +f 490/622/110 494/621/110 493/625/110 +f 498/627/112 497/1094/112 493/623/112 +f 493/623/115 497/1094/115 495/629/115 +f 496/611/116 498/610/116 494/621/116 +f 501/630/117 523/660/117 524/631/117 +f 507/633/112 509/1095/112 510/634/112 +f 503/638/115 499/1096/115 528/636/115 +f 528/636/115 501/640/115 505/637/115 +f 502/639/109 506/643/109 505/637/109 +f 506/643/116 502/639/116 527/641/116 +f 527/641/116 500/645/116 504/642/116 +f 499/644/110 503/1097/110 504/642/110 +f 514/646/113 513/1098/113 511/647/113 +f 508/635/116 510/634/116 514/646/116 +f 508/635/118 512/648/118 511/649/118 +f 507/651/115 511/1099/115 513/652/115 +f 509/653/119 513/652/119 514/646/119 +f 515/654/109 517/657/109 518/655/109 +f 524/631/116 526/661/116 527/641/116 +f 517/657/113 521/1100/113 522/658/113 +f 518/655/116 522/1101/116 520/659/116 +f 523/660/113 525/664/113 526/661/113 +f 515/654/115 519/1102/115 521/662/115 +f 528/636/115 525/1103/115 523/663/115 +f 525/664/120 528/1104/120 527/665/120 +f 527/665/113 528/1104/113 499/666/113 +f 538/668/119 540/683/119 539/669/119 +f 533/671/121 536/675/121 535/672/121 +f 530/674/116 535/672/116 536/675/116 +f 531/677/115 533/671/115 534/673/115 +f 532/679/122 536/675/122 533/671/122 +f 529/681/123 534/673/123 535/672/123 +f 540/683/113 542/697/113 541/684/113 +f 546/685/109 545/717/109 543/686/109 +f 547/688/124 548/690/124 544/687/124 +f 549/689/113 550/692/113 548/690/113 +f 551/691/110 552/694/110 550/692/110 +f 553/693/120 554/696/120 552/694/120 +f 555/695/110 556/713/110 554/696/110 +f 542/697/115 540/683/115 558/698/115 +f 541/684/116 559/704/116 557/700/116 +f 558/698/115 540/683/115 538/668/115 +f 537/670/116 539/669/116 557/700/116 +f 560/703/112 558/705/112 557/700/112 +f 561/702/125 557/700/125 558/705/125 +f 566/707/116 564/1105/116 548/690/116 +f 563/708/115 565/714/115 549/689/115 +f 551/691/115 567/715/115 569/709/115 +f 553/693/115 569/709/115 571/710/115 +f 552/694/116 554/696/116 570/711/116 +f 556/713/116 572/729/116 570/711/116 +f 551/691/115 549/689/115 565/714/115 +f 552/694/116 568/712/116 566/707/116 +f 544/687/116 574/721/116 576/716/116 +f 545/717/115 575/1106/115 573/718/115 +f 543/686/115 573/718/115 563/719/115 +f 544/687/116 548/690/116 564/720/116 +f 576/716/110 574/721/110 573/722/110 +f 574/721/126 564/720/126 563/724/126 +f 563/725/112 564/1105/112 566/707/112 +f 565/726/109 566/707/109 568/712/109 +f 567/727/127 568/712/127 570/711/127 +f 569/728/109 570/711/109 572/729/109 +f 585/733/109 586/1107/109 587/1108/109 +f 587/1108/109 588/1109/109 589/731/109 +f 589/731/109 590/1110/109 591/732/109 +f 591/732/109 592/1111/109 585/733/109 +f 585/733/109 587/1108/109 589/731/109 +f 608/734/110 616/746/110 609/735/110 +f 607/737/110 606/747/110 614/738/110 +f 605/740/110 604/749/110 612/741/110 +f 602/743/110 610/750/110 611/744/110 +f 607/737/110 615/739/110 616/746/110 +f 606/747/110 605/1112/110 613/748/110 +f 604/749/110 603/745/110 611/744/110 +f 601/736/110 609/735/110 610/750/110 +f 657/753/109 658/1113/109 659/1114/109 +f 659/1114/109 660/1115/109 661/751/109 +f 661/751/109 662/1116/109 663/752/109 +f 663/752/109 664/1117/109 657/753/109 +f 657/753/109 659/1114/109 661/751/109 +f 694/754/109 695/757/109 667/755/109 +f 695/757/109 696/759/109 666/758/109 +f 696/759/109 681/761/109 665/760/109 +f 681/761/109 682/763/109 680/762/109 +f 682/763/109 683/1118/109 679/764/109 +f 679/764/109 683/1118/109 684/765/109 +f 678/766/109 684/765/109 685/767/109 +f 685/767/109 686/770/109 676/769/109 +f 686/770/109 687/1119/109 675/771/109 +f 675/771/109 687/1119/109 688/772/109 +f 674/773/109 688/772/109 689/774/109 +f 673/776/109 689/1120/109 690/777/109 +f 672/778/109 690/777/109 691/779/109 +f 691/779/109 692/1121/109 670/781/109 +f 670/781/109 692/1121/109 693/782/109 +f 693/782/109 694/754/109 668/756/109 +f 699/784/110 727/788/110 726/785/110 +f 698/787/110 728/790/110 727/788/110 +f 697/789/110 713/792/110 728/790/110 +f 712/791/110 714/794/110 713/792/110 +f 711/793/110 715/796/110 714/794/110 +f 711/793/110 710/797/110 716/795/110 +f 710/797/110 709/800/110 717/798/110 +f 708/799/110 718/802/110 717/798/110 +f 707/801/110 719/804/110 718/802/110 +f 707/801/110 706/805/110 720/803/110 +f 706/805/110 705/1122/110 721/806/110 +f 705/807/110 704/810/110 722/808/110 +f 704/810/110 703/813/110 723/811/110 +f 702/812/110 724/815/110 723/811/110 +f 702/812/110 701/816/110 725/814/110 +f 700/786/110 726/785/110 725/814/110 +f 731/817/113 732/824/113 730/818/113 +f 735/820/112 736/823/112 733/821/112 +f 731/817/110 733/821/110 736/823/110 +f 730/818/109 735/1123/109 734/825/109 +f 733/826/116 737/837/116 738/827/116 +f 735/829/115 739/1124/115 740/830/115 +f 732/824/116 744/834/116 742/832/116 +f 729/819/115 741/839/115 743/833/115 +f 732/824/110 736/831/110 740/830/110 +f 730/818/109 742/832/109 739/835/109 +f 731/817/110 743/833/110 737/837/110 +f 729/819/109 734/1125/109 738/838/109 +f 774/840/109 775/843/109 747/841/109 +f 775/843/109 776/845/109 746/844/109 +f 776/845/109 761/847/109 745/846/109 +f 761/847/109 762/849/109 760/848/109 +f 762/849/109 763/1126/109 759/850/109 +f 759/850/109 763/1126/109 764/851/109 +f 758/852/109 764/851/109 765/853/109 +f 765/853/109 766/856/109 756/855/109 +f 766/856/109 767/1127/109 755/857/109 +f 755/857/109 767/1127/109 768/858/109 +f 754/859/109 768/858/109 769/860/109 +f 753/862/109 769/1128/109 770/863/109 +f 752/864/109 770/863/109 771/865/109 +f 771/865/109 772/1129/109 750/867/109 +f 750/867/109 772/1129/109 773/868/109 +f 773/868/109 774/840/109 748/842/109 +f 779/870/110 807/874/110 806/871/110 +f 778/873/110 808/876/110 807/874/110 +f 777/875/110 793/878/110 808/876/110 +f 792/877/110 794/880/110 793/878/110 +f 791/879/110 795/882/110 794/880/110 +f 791/879/110 790/883/110 796/881/110 +f 790/883/110 789/886/110 797/884/110 +f 788/885/110 798/888/110 797/884/110 +f 787/887/110 799/890/110 798/888/110 +f 787/887/110 786/891/110 800/889/110 +f 786/891/110 785/1130/110 801/892/110 +f 785/893/110 784/896/110 802/894/110 +f 784/896/110 783/899/110 803/897/110 +f 782/898/110 804/901/110 803/897/110 +f 782/898/110 781/902/110 805/900/110 +f 780/872/110 806/871/110 805/900/110 +f 814/903/116 813/1131/116 811/904/116 +f 815/906/112 814/1132/112 809/907/112 +f 832/909/116 835/918/116 836/910/116 +f 833/911/112 836/1133/112 834/912/112 +f 817/914/115 829/921/115 830/915/115 +f 832/909/128 819/919/128 820/917/128 +f 819/919/113 821/1134/113 822/920/113 +f 834/912/129 830/915/129 829/921/129 +f 815/933/110 835/935/110 814/924/110 +f 835/935/110 820/1135/110 828/1136/110 +f 814/924/110 835/935/110 827/922/110 +f 820/1135/110 822/1137/110 828/1136/110 +f 828/1136/110 827/922/110 835/935/110 +f 834/1138/110 813/936/110 814/924/110 +f 818/1139/110 830/1140/110 826/923/110 +f 830/1140/110 834/1138/110 814/924/110 +f 826/923/110 830/1140/110 814/924/110 +f 810/925/109 832/932/109 833/926/109 +f 812/927/109 833/926/109 831/928/109 +f 811/929/109 831/928/109 809/1141/109 +f 831/928/109 829/1142/109 809/1141/109 +f 829/1142/109 817/1143/109 823/1144/109 +f 829/1142/109 823/1144/109 809/1141/109 +f 823/1144/109 824/930/109 809/1141/109 +f 832/932/109 810/925/109 809/1141/109 +f 821/1145/109 819/1146/109 825/931/109 +f 819/1146/109 832/932/109 825/931/109 +f 832/932/109 809/1141/109 824/930/109 +f 815/933/110 816/937/110 836/934/110 +f 813/936/110 834/1138/110 836/934/110 +f 813/938/113 816/1147/113 812/939/113 +f 816/941/115 815/1148/115 810/942/115 +f 843/944/112 844/954/112 841/945/112 +f 838/947/109 843/944/109 842/946/109 +f 840/949/116 844/954/116 843/944/116 +f 837/951/115 842/946/115 841/945/115 +f 839/953/110 841/945/110 844/954/110 +f 845/956/129 853/993/129 846/957/129 +f 850/959/112 857/963/112 858/960/112 +f 848/962/116 856/1149/116 857/963/116 +f 849/964/112 855/1150/112 854/965/112 +f 851/961/115 858/960/115 855/967/115 +f 845/956/112 852/958/112 856/969/112 +f 866/971/115 861/981/115 846/972/115 +f 863/974/109 872/980/109 871/975/109 +f 874/977/110 875/985/110 868/978/110 +f 872/980/130 875/985/130 874/977/130 +f 871/975/109 846/972/109 861/981/109 +f 866/982/110 853/1151/110 874/977/110 +f 863/974/109 864/1013/109 873/983/109 +f 876/984/110 869/1009/110 868/978/110 +f 873/983/131 876/984/131 875/985/131 +f 878/986/113 877/1006/113 865/987/113 +f 860/989/132 871/1152/132 874/990/132 +f 846/957/109 871/1153/109 860/992/109 +f 853/993/110 845/956/110 859/994/110 +f 882/996/112 881/1011/112 879/997/112 +f 873/983/133 881/1012/133 882/999/133 +f 883/1000/115 884/1154/115 880/1001/115 +f 884/1003/113 883/1155/113 860/1004/113 +f 877/1006/109 854/965/109 883/1000/109 +f 854/965/116 877/1006/116 878/986/116 +f 878/986/110 880/1156/110 884/1003/110 +f 870/988/110 882/1157/110 880/1008/110 +f 869/1009/110 876/984/110 882/999/110 +f 877/1006/109 879/997/109 881/1011/109 +f 881/1012/109 873/983/109 864/1013/109 +f 854/965/109 855/1150/109 858/1158/109 +f 857/1015/109 856/969/109 852/958/109 +f 883/1000/109 854/965/109 858/1158/109 +f 857/1015/109 852/958/109 860/1016/109 +f 883/1000/109 858/1158/109 857/1015/109 +f 851/1018/110 849/1159/110 847/1007/110 +f 884/1003/110 859/1005/110 850/1017/110 +f 859/1005/110 845/1160/110 850/1017/110 +f 845/1160/110 848/1161/110 850/1017/110 +f 851/1018/110 847/1007/110 884/1003/110 +f 885/1019/134 888/1022/134 887/1020/134 +f 466/590/113 887/1020/113 888/1022/113 +f 465/592/112 467/591/112 885/1024/112 +f 890/1026/135 892/1033/135 891/1027/135 +f 893/1029/136 896/1032/136 895/1030/136 +f 890/1026/112 895/1030/112 896/1032/112 +f 889/1028/113 891/1027/113 893/1034/113 +f 898/1036/137 900/1042/137 899/1037/137 +f 902/1039/138 901/1162/138 904/1040/138 +f 898/1036/139 903/1041/139 904/1040/139 +f 897/1038/140 899/1037/140 901/1043/140 +f 906/1045/141 908/1052/141 907/1046/141 +f 909/1048/142 912/1051/142 911/1049/142 +f 906/1045/140 911/1049/140 912/1051/140 +f 905/1047/139 907/1046/139 909/1053/139 +f 913/1055/143 914/1061/143 916/1056/143 +f 918/1058/144 917/1163/144 920/1059/144 +f 914/1061/145 919/1060/145 920/1059/145 +f 913/1055/146 915/1057/146 917/1062/146 +f 922/1064/147 924/1070/147 923/1065/147 +f 926/1067/148 925/1164/148 928/1068/148 +f 922/1064/146 927/1069/146 928/1068/146 +f 921/1066/145 923/1065/145 925/1071/145 +s 1 +f 337/503/112 340/477/149 339/501/149 +f 340/477/149 341/500/150 339/501/149 +f 342/479/150 343/498/151 341/500/150 +f 344/481/151 345/496/116 343/498/151 +f 346/483/116 347/526/152 345/496/116 +f 348/484/152 349/524/128 347/526/152 +f 350/486/128 351/522/153 349/524/128 +f 352/488/153 353/520/113 351/522/153 +f 354/1073/113 355/517/154 353/519/113 +f 356/492/154 357/515/155 355/517/154 +f 358/466/155 359/513/156 357/515/155 +f 360/463/156 361/511/115 359/513/156 +f 361/511/115 364/468/157 363/509/157 +f 364/468/157 365/507/129 363/509/157 +f 366/470/129 367/505/158 365/507/129 +f 368/473/158 337/503/112 367/505/158 +f 384/476/154 399/1165/155 383/478/155 +f 377/493/112 392/1166/149 376/494/149 +f 370/472/153 385/1167/113 369/474/113 +f 369/474/113 400/1168/154 384/476/154 +f 378/489/158 393/1169/112 377/491/112 +f 371/471/128 386/1170/153 370/472/153 +f 379/487/129 394/1171/158 378/489/158 +f 372/469/152 387/1172/128 371/471/128 +f 380/485/157 395/1173/129 379/487/129 +f 373/464/116 388/1174/152 372/469/152 +f 381/482/115 396/1175/157 380/485/157 +f 374/467/151 389/1176/116 373/464/116 +f 382/480/156 397/1177/115 381/482/115 +f 375/495/150 390/1178/151 374/467/151 +f 383/478/155 398/1179/156 382/480/156 +f 376/494/149 391/1180/150 375/495/150 +f 425/561/113 410/560/153 409/528/113 +f 418/577/158 403/542/129 402/545/158 +f 426/563/153 411/559/128 410/560/153 +f 419/574/129 404/540/157 403/542/129 +f 427/589/128 412/556/152 411/559/128 +f 420/573/157 405/539/115 404/540/157 +f 428/587/152 413/555/116 412/556/152 +f 421/572/115 406/537/156 405/539/115 +f 429/586/116 414/552/151 413/555/116 +f 422/570/156 407/534/155 406/537/156 +f 430/583/151 415/550/150 414/552/151 +f 423/567/155 408/531/154 407/534/155 +f 431/582/150 416/549/149 415/550/150 +f 424/564/154 409/1076/113 408/531/154 +f 417/579/112 402/545/158 401/547/112 +f 432/581/149 401/547/112 416/549/149 +f 446/1181/156 461/585/115 445/1182/115 +f 439/1183/150 454/569/151 438/1184/151 +f 447/1185/155 462/1080/156 446/1181/156 +f 440/1186/149 455/1078/150 439/1183/150 +f 448/1187/154 463/584/155 447/1185/155 +f 441/1188/112 456/568/149 440/1186/149 +f 434/1189/153 449/578/113 433/1190/113 +f 433/1190/113 464/580/154 448/1187/154 +f 442/1191/158 457/1077/112 441/1192/112 +f 435/1193/128 450/576/153 434/1189/153 +f 443/1194/129 458/562/158 442/1191/158 +f 436/1195/152 451/1079/128 435/1193/128 +f 444/1196/157 459/588/129 443/1194/129 +f 437/1197/116 452/575/152 436/1195/152 +f 445/1182/115 460/1081/157 444/1196/157 +f 438/1184/151 453/571/116 437/1197/116 +f 584/1198/150 591/1199/116 583/1200/116 +f 582/1201/128 589/1202/113 581/1203/113 +f 580/1204/155 587/1205/115 579/1206/115 +f 578/1207/129 585/1208/112 577/1209/112 +f 577/1209/112 592/1210/150 584/1198/150 +f 583/1200/116 590/1211/128 582/1201/128 +f 581/1212/113 588/1213/155 580/1204/155 +f 579/1206/115 586/1214/129 578/1207/129 +f 605/1112/113 598/1215/128 597/1216/113 +f 603/745/115 596/1217/155 595/1218/115 +f 601/736/112 594/1219/129 593/1220/112 +f 608/734/150 593/1220/112 600/1221/150 +f 606/747/128 599/1222/116 598/1215/128 +f 604/749/155 597/1223/113 596/1217/155 +f 602/743/129 595/1218/115 594/1219/129 +f 607/737/116 600/1221/150 599/1222/116 +f 611/744/115 620/1224/155 612/741/155 +f 609/735/112 618/1225/129 610/750/129 +f 616/746/150 617/1226/112 609/735/112 +f 614/738/128 623/1227/116 615/739/116 +f 612/741/155 621/1228/113 613/742/113 +f 610/750/129 619/1229/115 611/744/115 +f 615/739/116 624/1230/150 616/746/150 +f 613/748/113 622/1231/128 614/738/128 +f 627/1232/115 636/1233/159 628/1234/155 +f 625/1235/112 634/1236/160 626/1237/129 +f 632/1238/150 633/1239/161 625/1235/112 +f 630/1240/128 639/1241/162 631/1242/116 +f 628/1234/155 637/1243/163 629/1244/113 +f 626/1237/129 635/1245/164 627/1232/115 +f 631/1242/116 640/1246/165 632/1238/150 +f 629/1247/113 638/1248/166 630/1240/128 +f 639/1241/162 642/1249/167 640/1246/165 +f 636/1233/159 643/1250/168 646/1251/169 +f 634/1236/160 644/1252/170 647/1253/171 +f 640/1246/165 644/1252/170 633/1239/161 +f 638/1248/166 645/1254/172 639/1241/162 +f 635/1245/164 647/1253/171 643/1250/168 +f 637/1255/163 648/1256/173 638/1248/166 +f 637/1243/163 646/1251/169 641/1257/174 +f 649/1258/112 664/1259/150 656/1260/150 +f 655/1261/116 662/1262/128 654/1263/128 +f 653/1264/113 660/1265/155 652/1266/155 +f 651/1267/115 658/1268/129 650/1269/129 +f 656/1260/150 663/1270/116 655/1261/116 +f 654/1263/128 661/1271/113 653/1272/113 +f 652/1266/155 659/1273/115 651/1267/115 +f 650/1269/129 657/1274/112 649/1258/112 +f 690/777/153 723/811/128 691/779/128 +f 683/1118/129 716/795/157 684/765/157 +f 691/779/128 724/815/152 692/1121/152 +f 684/765/157 717/798/115 685/767/115 +f 692/1121/152 725/814/116 693/782/116 +f 685/767/115 718/802/156 686/770/156 +f 693/782/116 726/785/151 694/754/151 +f 686/770/156 719/804/155 687/1119/155 +f 694/754/151 727/788/150 695/757/150 +f 687/1119/155 720/803/154 688/772/154 +f 695/757/150 728/790/149 696/759/149 +f 688/772/154 721/806/113 689/774/113 +f 681/761/112 714/794/158 682/763/158 +f 696/759/149 713/792/112 681/761/112 +f 689/1120/113 722/808/153 690/777/153 +f 682/763/158 715/796/129 683/1118/129 +f 770/863/153 803/897/128 771/865/128 +f 763/1126/129 796/881/157 764/851/157 +f 771/865/128 804/901/152 772/1129/152 +f 764/851/157 797/884/115 765/853/115 +f 772/1129/152 805/900/116 773/868/116 +f 765/853/115 798/888/156 766/856/156 +f 773/868/116 806/871/151 774/840/151 +f 766/856/156 799/890/155 767/1127/155 +f 774/840/151 807/874/150 775/843/150 +f 767/1127/155 800/889/154 768/858/154 +f 775/843/150 808/876/149 776/845/149 +f 768/858/154 801/892/113 769/860/113 +f 761/847/112 794/880/158 762/849/158 +f 776/845/149 793/878/112 761/847/112 +f 769/1128/113 802/894/153 770/863/153 +f 762/849/158 795/882/129 763/1126/129 +f 337/503/112 338/475/112 340/477/149 +f 340/477/149 342/479/150 341/500/150 +f 342/479/150 344/481/151 343/498/151 +f 344/481/151 346/483/116 345/496/116 +f 346/483/116 348/484/152 347/526/152 +f 348/484/152 350/486/128 349/524/128 +f 350/486/128 352/488/153 351/522/153 +f 352/488/153 354/490/113 353/520/113 +f 354/1073/113 356/492/154 355/517/154 +f 356/492/154 358/466/155 357/515/155 +f 358/466/155 360/463/156 359/513/156 +f 360/463/156 362/465/115 361/511/115 +f 361/511/115 362/465/115 364/468/157 +f 364/468/157 366/470/129 365/507/129 +f 366/470/129 368/473/158 367/505/158 +f 368/473/158 338/475/112 337/503/112 +f 384/476/154 400/1168/154 399/1165/155 +f 377/493/112 393/1275/112 392/1166/149 +f 370/472/153 386/1170/153 385/1167/113 +f 369/474/113 385/1167/113 400/1168/154 +f 378/489/158 394/1171/158 393/1169/112 +f 371/471/128 387/1172/128 386/1170/153 +f 379/487/129 395/1173/129 394/1171/158 +f 372/469/152 388/1174/152 387/1172/128 +f 380/485/157 396/1175/157 395/1173/129 +f 373/464/116 389/1176/116 388/1174/152 +f 381/482/115 397/1177/115 396/1175/157 +f 374/467/151 390/1178/151 389/1176/116 +f 382/480/156 398/1179/156 397/1177/115 +f 375/495/150 391/1180/150 390/1178/151 +f 383/478/155 399/1165/155 398/1179/156 +f 376/494/149 392/1166/149 391/1180/150 +f 425/561/113 426/563/153 410/560/153 +f 418/577/158 419/574/129 403/542/129 +f 426/563/153 427/589/128 411/559/128 +f 419/574/129 420/573/157 404/540/157 +f 427/589/128 428/587/152 412/556/152 +f 420/573/157 421/572/115 405/539/115 +f 428/587/152 429/586/116 413/555/116 +f 421/572/115 422/570/156 406/537/156 +f 429/586/116 430/583/151 414/552/151 +f 422/570/156 423/567/155 407/534/155 +f 430/583/151 431/582/150 415/550/150 +f 423/567/155 424/564/154 408/531/154 +f 431/582/150 432/581/149 416/549/149 +f 424/564/154 425/566/113 409/1076/113 +f 417/579/112 418/577/158 402/545/158 +f 432/581/149 417/579/112 401/547/112 +f 446/1181/156 462/1080/156 461/585/115 +f 439/1183/150 455/1078/150 454/569/151 +f 447/1185/155 463/584/155 462/1080/156 +f 440/1186/149 456/568/149 455/1078/150 +f 448/1187/154 464/580/154 463/584/155 +f 441/1188/112 457/565/112 456/568/149 +f 434/1189/153 450/576/153 449/578/113 +f 433/1190/113 449/578/113 464/580/154 +f 442/1191/158 458/562/158 457/1077/112 +f 435/1193/128 451/1079/128 450/576/153 +f 443/1194/129 459/588/129 458/562/158 +f 436/1195/152 452/575/152 451/1079/128 +f 444/1196/157 460/1081/157 459/588/129 +f 437/1197/116 453/571/116 452/575/152 +f 445/1182/115 461/585/115 460/1081/157 +f 438/1184/151 454/569/151 453/571/116 +f 584/1198/150 592/1210/150 591/1199/116 +f 582/1201/128 590/1211/128 589/1202/113 +f 580/1204/155 588/1213/155 587/1205/115 +f 578/1207/129 586/1214/129 585/1208/112 +f 577/1209/112 585/1208/112 592/1210/150 +f 583/1200/116 591/1199/116 590/1211/128 +f 581/1212/113 589/1276/113 588/1213/155 +f 579/1206/115 587/1205/115 586/1214/129 +f 605/1112/113 606/747/128 598/1215/128 +f 603/745/115 604/749/155 596/1217/155 +f 601/736/112 602/743/129 594/1219/129 +f 608/734/150 601/736/112 593/1220/112 +f 606/747/128 607/737/116 599/1222/116 +f 604/749/155 605/740/113 597/1223/113 +f 602/743/129 603/745/115 595/1218/115 +f 607/737/116 608/734/150 600/1221/150 +f 611/744/115 619/1229/115 620/1224/155 +f 609/735/112 617/1226/112 618/1225/129 +f 616/746/150 624/1230/150 617/1226/112 +f 614/738/128 622/1231/128 623/1227/116 +f 612/741/155 620/1224/155 621/1228/113 +f 610/750/129 618/1225/129 619/1229/115 +f 615/739/116 623/1227/116 624/1230/150 +f 613/748/113 621/1277/113 622/1231/128 +f 627/1232/115 635/1245/164 636/1233/159 +f 625/1235/112 633/1239/161 634/1236/160 +f 632/1238/150 640/1246/165 633/1239/161 +f 630/1240/128 638/1248/166 639/1241/162 +f 628/1234/155 636/1233/159 637/1243/163 +f 626/1237/129 634/1236/160 635/1245/164 +f 631/1242/116 639/1241/162 640/1246/165 +f 629/1247/113 637/1255/163 638/1248/166 +f 639/1241/162 645/1254/172 642/1249/167 +f 636/1233/159 635/1245/164 643/1250/168 +f 634/1236/160 633/1239/161 644/1252/170 +f 640/1246/165 642/1249/167 644/1252/170 +f 638/1248/166 648/1256/173 645/1254/172 +f 635/1245/164 634/1236/160 647/1253/171 +f 637/1255/163 641/1278/174 648/1256/173 +f 637/1243/163 636/1233/159 646/1251/169 +f 649/1258/112 657/1274/112 664/1259/150 +f 655/1261/116 663/1270/116 662/1262/128 +f 653/1264/113 661/1279/113 660/1265/155 +f 651/1267/115 659/1273/115 658/1268/129 +f 656/1260/150 664/1259/150 663/1270/116 +f 654/1263/128 662/1262/128 661/1271/113 +f 652/1266/155 660/1265/155 659/1273/115 +f 650/1269/129 658/1268/129 657/1274/112 +f 690/777/153 722/808/153 723/811/128 +f 683/1118/129 715/796/129 716/795/157 +f 691/779/128 723/811/128 724/815/152 +f 684/765/157 716/795/157 717/798/115 +f 692/1121/152 724/815/152 725/814/116 +f 685/767/115 717/798/115 718/802/156 +f 693/782/116 725/814/116 726/785/151 +f 686/770/156 718/802/156 719/804/155 +f 694/754/151 726/785/151 727/788/150 +f 687/1119/155 719/804/155 720/803/154 +f 695/757/150 727/788/150 728/790/149 +f 688/772/154 720/803/154 721/806/113 +f 681/761/112 713/792/112 714/794/158 +f 696/759/149 728/790/149 713/792/112 +f 689/1120/113 721/809/113 722/808/153 +f 682/763/158 714/794/158 715/796/129 +f 770/863/153 802/894/153 803/897/128 +f 763/1126/129 795/882/129 796/881/157 +f 771/865/128 803/897/128 804/901/152 +f 764/851/157 796/881/157 797/884/115 +f 772/1129/152 804/901/152 805/900/116 +f 765/853/115 797/884/115 798/888/156 +f 773/868/116 805/900/116 806/871/151 +f 766/856/156 798/888/156 799/890/155 +f 774/840/151 806/871/151 807/874/150 +f 767/1127/155 799/890/155 800/889/154 +f 775/843/150 807/874/150 808/876/149 +f 768/858/154 800/889/154 801/892/113 +f 761/847/112 793/878/112 794/880/158 +f 776/845/149 808/876/149 793/878/112 +f 769/1128/113 801/895/113 802/894/153 +f 762/849/158 794/880/158 795/882/129 diff --git a/src/main/resources/assets/hbm/models/weapons/pch.obj b/src/main/resources/assets/hbm/models/weapons/pch.obj deleted file mode 100644 index e3634a298..000000000 --- a/src/main/resources/assets/hbm/models/weapons/pch.obj +++ /dev/null @@ -1,245 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'pch.blend' -# www.blender.org -o ponycum_Cylinder.003 -v 0.000000 -0.457474 -0.076488 -v 0.000000 0.498621 -0.076488 -v 0.063454 0.498621 -0.038244 -v 0.063454 -0.457474 -0.038244 -v 0.063454 0.498621 0.038244 -v 0.063454 -0.457474 0.038244 -v 0.000000 0.498621 0.076488 -v 0.000000 -0.457474 0.076488 -v -0.063454 0.498621 0.038244 -v -0.063454 -0.457474 0.038244 -v -0.063454 0.498621 -0.038244 -v -0.063454 -0.457474 -0.038244 -v 0.244563 0.705111 -0.261231 -v -0.244563 0.705111 -0.261231 -v -0.244563 0.821944 -0.260374 -v 0.244563 0.821944 -0.260374 -v 0.244661 0.821816 0.260308 -v -0.244661 0.821816 0.260308 -v -0.244661 0.704698 0.259606 -v 0.244661 0.704698 0.259606 -v 0.300312 0.880010 -0.277019 -v 0.300312 0.650163 -0.277880 -v 0.244563 0.705233 -0.277878 -v 0.244563 0.822066 -0.277021 -v -0.300312 0.880010 -0.277019 -v -0.300312 1.041927 -0.113884 -v 0.300312 1.041927 -0.113884 -v -0.300312 1.041066 0.115963 -v 0.300312 1.041066 0.115963 -v -0.300312 0.877932 0.277880 -v 0.300312 0.877931 0.277880 -v -0.300312 0.648084 0.277019 -v 0.300312 0.648084 0.277019 -v 0.244662 0.704449 0.277099 -v -0.244662 0.704449 0.277099 -v -0.300312 0.486167 0.113884 -v 0.300312 0.486167 0.113884 -v -0.300312 0.650163 -0.277880 -v -0.300312 0.487028 -0.115963 -v 0.300312 0.487028 -0.115963 -v -0.244662 0.821567 0.277801 -v -0.244662 0.704698 0.259606 -v -0.244662 0.821816 0.260308 -v 0.244662 0.821567 0.277801 -v 0.244662 0.821816 0.260308 -v 0.244662 0.704698 0.259606 -v -0.244563 0.705233 -0.277878 -v -0.244563 0.705111 -0.261231 -v 0.244563 0.705111 -0.261231 -v -0.244563 0.822066 -0.277021 -v 0.244563 0.821944 -0.260374 -v -0.244563 0.821944 -0.260374 -vt 0.625000 0.687500 -vt 0.625000 0.593750 -vt 1.000000 0.593750 -vt 0.625000 0.500000 -vt 1.000000 0.500000 -vt 1.000000 0.687500 -vt 0.500000 0.250000 -vt 0.437500 0.312500 -vt 0.437500 0.250000 -vt 0.687500 0.781250 -vt 1.000000 0.781250 -vt 1.000000 0.906250 -vt 0.687500 0.906250 -vt 0.468750 1.000000 -vt 0.375000 0.781250 -vt 0.437500 0.218750 -vt 0.500000 0.218750 -vt 0.718750 0.218750 -vt 0.781250 0.250000 -vt 0.781250 0.218750 -vt 1.000000 0.218750 -vt 0.718750 0.250000 -vt 1.000000 0.187500 -vt 0.718750 0.187500 -vt 0.781250 0.187500 -vt 0.500000 0.187500 -vt 0.468750 0.250000 -vt 0.500000 0.312500 -vt 0.468750 0.312500 -vt 0.906250 1.000000 -vt 0.781250 1.000000 -vt 0.781250 0.687500 -vt 0.906250 0.687500 -vt 0.468750 0.687500 -vt 0.593750 0.687500 -vt 0.593750 1.000000 -vt 0.375000 0.906250 -vt 1.000000 0.250000 -vt 0.437500 0.187500 -vt 0.437500 0.093750 -vt 1.000000 0.093750 -vt 1.000000 0.125000 -vt 1.000000 0.156250 -vt 0.437500 0.156250 -vt 1.000000 -0.000000 -vt 1.000000 0.031250 -vt 0.437500 0.031250 -vt 1.000000 0.062500 -vt 0.437500 0.062500 -vt 0.375000 0.875000 -vt 0.343750 0.843750 -vt 0.343750 0.781250 -vt 0.000000 0.750000 -vt 0.000000 0.625000 -vt 0.375000 0.625000 -vt 0.000000 0.500000 -vt 0.375000 0.500000 -vt 0.000000 0.375000 -vt -0.000000 0.250000 -vt 0.375000 0.250000 -vt 0.343750 0.281250 -vt -0.000000 0.125000 -vt 0.375000 0.125000 -vt 0.000000 0.000000 -vt 0.375000 0.000000 -vt 0.000203 0.999797 -vt 0.000000 0.875000 -vt 0.375000 0.375000 -vt 0.343750 0.343750 -vt 0.031250 0.281250 -vt 0.031250 0.343750 -vt 0.375000 0.750000 -vt 0.031250 0.781250 -vt 0.031250 0.843750 -vt 0.437500 0.125000 -vt 0.437500 0.000000 -vt 0.375000 1.000000 -vn 0.000000 0.007300 -1.000000 -vn 0.000000 -0.006000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn -1.000000 -0.000000 0.000000 -vn 1.000000 -0.000000 0.000000 -vn 0.000000 -0.999900 -0.014300 -vn 0.000000 0.999900 0.014300 -vn 0.000000 1.000000 0.007300 -vn -0.000000 -1.000000 -0.007300 -vn 0.000000 0.000000 -1.000000 -vn 0.870700 0.000000 -0.491800 -vn 0.870700 -0.000000 0.491800 -vn -0.000000 -0.000000 1.000000 -vn -0.870700 -0.000000 0.491800 -vn -0.870700 0.000000 -0.491800 -vn 0.000800 -0.379600 -0.925200 -vn 0.003600 0.003700 -1.000000 -vn -0.001200 0.002100 -1.000000 -vn 0.001000 0.385300 -0.922800 -vn 0.000000 0.925300 -0.379200 -vn 0.000000 0.922400 0.386100 -vn -0.000500 0.379500 0.925200 -vn 0.000600 -0.385600 0.922700 -vn -0.000600 -0.385600 0.922700 -vn -0.000700 -0.002700 1.000000 -vn 0.000000 -0.925300 0.379200 -vn 0.000000 -0.922400 -0.386100 -vn -0.000800 -0.379600 -0.925200 -vn 0.000500 0.379500 0.925200 -vn 0.002300 -0.003700 1.000000 -vn 0.000700 -0.002700 1.000000 -vn -0.002300 -0.003700 1.000000 -vn -0.001000 0.385300 -0.922800 -vn 0.001200 0.002100 -1.000000 -vn -0.003600 0.003700 -1.000000 -s off -f 14/1/1 15/2/1 16/3/1 -f 18/2/2 19/4/2 20/5/2 -f 13/6/1 14/1/1 16/3/1 -f 17/3/2 18/2/2 20/5/2 -f 4/7/3 10/8/3 12/9/3 -f 36/10/4 28/11/4 26/12/4 -f 29/13/5 33/14/5 40/15/5 -f 41/7/5 35/9/5 42/16/5 -f 41/7/6 43/17/6 45/18/6 -f 34/19/7 46/20/7 42/21/7 -f 44/22/4 45/18/4 46/20/4 -f 47/23/8 48/21/8 49/20/8 -f 24/24/4 23/25/4 49/20/4 -f 24/24/9 51/18/9 52/17/9 -f 50/26/5 52/17/5 48/16/5 -f 12/9/3 1/27/3 4/7/3 -f 4/7/3 6/28/3 10/8/3 -f 8/29/3 10/8/3 6/28/3 -f 26/12/4 25/30/4 38/31/4 -f 38/31/4 39/13/4 26/12/4 -f 36/10/4 32/32/4 30/33/4 -f 30/33/4 28/11/4 36/10/4 -f 26/12/4 39/13/4 36/10/4 -f 40/15/5 22/34/5 29/13/5 -f 21/35/5 27/10/5 29/13/5 -f 29/13/5 31/36/5 33/14/5 -f 33/14/5 37/37/5 40/15/5 -f 22/34/5 21/35/5 29/13/5 -f 43/17/5 41/7/5 42/16/5 -f 44/22/6 41/7/6 45/18/6 -f 35/38/7 34/19/7 42/21/7 -f 34/19/4 44/22/4 46/20/4 -f 23/25/8 47/23/8 49/20/8 -f 51/18/4 24/24/4 49/20/4 -f 50/26/9 24/24/9 52/17/9 -f 47/39/5 50/26/5 48/16/5 -s 1 -f 1/40/10 2/41/10 3/42/11 -f 3/42/11 5/43/12 6/44/12 -f 5/43/12 7/23/13 8/39/13 -f 7/45/13 9/46/14 10/47/14 -f 9/46/14 11/48/15 12/49/15 -f 11/48/15 2/41/10 1/40/10 -f 22/50/16 23/51/17 24/52/18 -f 25/53/19 26/54/20 27/55/20 -f 26/54/20 28/56/21 29/57/21 -f 29/57/21 28/56/21 30/58/22 -f 32/59/23 33/60/24 34/61/25 -f 32/59/23 36/62/26 37/63/26 -f 36/62/26 39/64/27 40/65/27 -f 39/66/27 38/67/28 22/50/16 -f 31/68/29 44/69/30 34/61/25 -f 30/58/22 32/59/23 35/70/31 -f 30/58/22 41/71/32 44/69/30 -f 21/72/33 24/52/18 50/73/34 -f 38/67/28 25/53/19 50/73/34 -f 22/50/16 38/67/28 47/74/35 -f 4/75/11 1/40/10 3/42/11 -f 4/75/11 3/42/11 6/44/12 -f 6/44/12 5/43/12 8/39/13 -f 8/76/13 7/45/13 10/47/14 -f 10/47/14 9/46/14 12/49/15 -f 12/49/15 11/48/15 1/40/10 -f 21/72/33 22/50/16 24/52/18 -f 21/72/33 25/53/19 27/55/20 -f 27/55/20 26/54/20 29/57/21 -f 31/68/29 29/57/21 30/58/22 -f 35/70/31 32/59/23 34/61/25 -f 33/60/24 32/59/23 37/63/26 -f 37/63/26 36/62/26 40/65/27 -f 40/77/27 39/66/27 22/50/16 -f 33/60/24 31/68/29 34/61/25 -f 41/71/32 30/58/22 35/70/31 -f 31/68/29 30/58/22 44/69/30 -f 25/53/19 21/72/33 50/73/34 -f 47/74/35 38/67/28 50/73/34 -f 23/51/17 22/50/16 47/74/35 diff --git a/src/main/resources/assets/hbm/models/weapons/pepperbox.obj b/src/main/resources/assets/hbm/models/weapons/pepperbox.obj new file mode 100644 index 000000000..5682c46c4 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/pepperbox.obj @@ -0,0 +1,3740 @@ +# Blender v2.79 (sub 0) OBJ File: 'pepperbox.blend' +# www.blender.org +o Cylinder +v 0.000000 0.125000 7.000000 +v -0.088388 0.088388 7.000000 +v -0.125000 -0.000000 7.000000 +v -0.088388 -0.088388 7.000000 +v 0.000000 -0.125000 7.000000 +v 0.088388 -0.088388 7.000000 +v 0.125000 0.000000 7.000000 +v 0.088388 0.088388 7.000000 +v 0.000000 0.687500 7.000000 +v -0.132583 0.632583 7.000000 +v -0.187500 0.500000 7.000000 +v -0.132583 0.367417 7.000000 +v 0.000000 0.312500 7.000000 +v 0.132583 0.367418 7.000000 +v 0.187500 0.500000 7.000000 +v 0.132583 0.632582 7.000000 +v 0.000000 -0.687500 7.000000 +v 0.132583 -0.632583 7.000000 +v 0.187500 -0.500000 7.000000 +v 0.132583 -0.367417 7.000000 +v 0.000000 -0.312500 7.000000 +v -0.132583 -0.367418 7.000000 +v -0.187500 -0.500000 7.000000 +v -0.132583 -0.632582 7.000000 +v 0.595392 0.343750 7.000000 +v 0.481541 0.431111 7.000000 +v 0.339263 0.412380 7.000000 +v 0.251902 0.298529 7.000000 +v 0.270633 0.156250 7.000000 +v 0.384484 0.068889 7.000000 +v 0.526763 0.087620 7.000000 +v 0.614124 0.201471 7.000000 +v -0.595392 -0.343750 7.000000 +v -0.481541 -0.431111 7.000000 +v -0.339263 -0.412380 7.000000 +v -0.251902 -0.298529 7.000000 +v -0.270633 -0.156250 7.000000 +v -0.384484 -0.068889 7.000000 +v -0.526763 -0.087620 7.000000 +v -0.614124 -0.201471 7.000000 +v 0.595392 -0.343750 7.000000 +v 0.614124 -0.201472 7.000000 +v 0.526763 -0.087620 7.000000 +v 0.384484 -0.068889 7.000000 +v 0.270633 -0.156250 7.000000 +v 0.251902 -0.298529 7.000000 +v 0.339263 -0.412380 7.000000 +v 0.481541 -0.431111 7.000000 +v -0.595392 0.343750 7.000000 +v -0.614124 0.201472 7.000000 +v -0.526763 0.087620 7.000000 +v -0.384484 0.068889 7.000000 +v -0.270633 0.156250 7.000000 +v -0.251902 0.298529 7.000000 +v -0.339262 0.412380 7.000000 +v -0.481541 0.431111 7.000000 +v -0.088388 0.088388 7.062500 +v 0.000000 0.125000 7.062500 +v -0.125000 -0.000000 7.062500 +v -0.088388 -0.088388 7.062500 +v 0.000000 -0.125000 7.062500 +v 0.088388 -0.088388 7.062500 +v 0.125000 -0.000000 7.062500 +v 0.088388 0.088388 7.062500 +v -0.187500 -0.812500 7.000000 +v 0.187500 -0.812500 7.000000 +v -0.187500 0.812500 7.000000 +v 0.187500 0.812500 7.000000 +v -0.797396 -0.243870 7.000000 +v -0.609896 -0.568630 7.000000 +v 0.609896 0.568630 7.000000 +v 0.797396 0.243870 7.000000 +v -0.609896 0.568630 7.000000 +v -0.797396 0.243870 7.000000 +v 0.797396 -0.243870 7.000000 +v 0.609896 -0.568630 7.000000 +v -0.452003 -0.532892 7.000000 +v -0.235497 -0.657892 7.000000 +v 0.235497 0.657892 7.000000 +v 0.452003 0.532892 7.000000 +v -0.687500 0.125000 7.000000 +v -0.687500 -0.125000 7.000000 +v 0.687500 0.125000 7.000000 +v 0.687500 -0.125000 7.000000 +v -0.235497 0.657892 7.000000 +v -0.452003 0.532892 7.000000 +v 0.452003 -0.532892 7.000000 +v 0.235497 -0.657892 7.000000 +v -0.187500 -0.812500 0.000000 +v 0.187500 -0.812500 0.000000 +v -0.187500 0.812500 0.000000 +v 0.187500 0.812500 0.000000 +v -0.797396 -0.243870 0.000000 +v -0.609896 -0.568630 0.000000 +v 0.609896 0.568630 0.000000 +v 0.797396 0.243870 0.000000 +v -0.609896 0.568630 0.000000 +v -0.797396 0.243870 0.000000 +v 0.797396 -0.243870 0.000000 +v 0.609896 -0.568630 0.000000 +v -0.452003 -0.532892 0.000000 +v -0.235497 -0.657892 0.000000 +v 0.235497 0.657892 0.000000 +v 0.452003 0.532892 0.000000 +v -0.687500 0.125000 0.000000 +v -0.687500 -0.125000 0.000000 +v 0.687500 0.125000 0.000000 +v 0.687500 -0.125000 0.000000 +v -0.235497 0.657892 0.000000 +v -0.452003 0.532892 0.000000 +v 0.452003 -0.532892 0.000000 +v 0.235497 -0.657892 0.000000 +v 0.000000 0.687500 6.000000 +v -0.132583 0.632583 6.000000 +v -0.187500 0.500000 6.000000 +v -0.132583 0.367417 6.000000 +v 0.000000 0.312500 6.000000 +v 0.132583 0.367418 6.000000 +v 0.187500 0.500000 6.000000 +v 0.132583 0.632582 6.000000 +v 0.000000 -0.687500 6.000000 +v 0.132583 -0.632583 6.000000 +v 0.187500 -0.500000 6.000000 +v 0.132583 -0.367417 6.000000 +v 0.000000 -0.312500 6.000000 +v -0.132583 -0.367418 6.000000 +v -0.187500 -0.500000 6.000000 +v -0.132583 -0.632582 6.000000 +v 0.595392 0.343750 6.000000 +v 0.481541 0.431111 6.000000 +v 0.339263 0.412380 6.000000 +v 0.251902 0.298529 6.000000 +v 0.270633 0.156250 6.000000 +v 0.384484 0.068889 6.000000 +v 0.526763 0.087620 6.000000 +v 0.614124 0.201471 6.000000 +v -0.595392 -0.343750 6.000000 +v -0.481541 -0.431111 6.000000 +v -0.339263 -0.412380 6.000000 +v -0.251902 -0.298529 6.000000 +v -0.270633 -0.156250 6.000000 +v -0.384484 -0.068889 6.000000 +v -0.526763 -0.087620 6.000000 +v -0.614124 -0.201471 6.000000 +v 0.595392 -0.343750 6.000000 +v 0.614124 -0.201472 6.000000 +v 0.526763 -0.087620 6.000000 +v 0.384484 -0.068889 6.000000 +v 0.270633 -0.156250 6.000000 +v 0.251902 -0.298529 6.000000 +v 0.339263 -0.412380 6.000000 +v 0.481541 -0.431111 6.000000 +v -0.595392 0.343750 6.000000 +v -0.614124 0.201472 6.000000 +v -0.526763 0.087620 6.000000 +v -0.384484 0.068889 6.000000 +v -0.270633 0.156250 6.000000 +v -0.251902 0.298529 6.000000 +v -0.339262 0.412380 6.000000 +v -0.481541 0.431111 6.000000 +vt 0.241282 0.246079 +vt 0.233209 0.265596 +vt 0.225136 0.246079 +vt 0.660448 0.437693 +vt 0.664133 0.453126 +vt 0.660448 0.468558 +vt 0.215016 0.297589 +vt 0.209423 0.257024 +vt 0.215449 0.269500 +vt 0.238802 0.328051 +vt 0.227616 0.328051 +vt 0.233209 0.312437 +vt 0.256994 0.257024 +vt 0.251401 0.297589 +vt 0.250969 0.269500 +vt 0.251401 0.155536 +vt 0.256994 0.196101 +vt 0.250969 0.183625 +vt 0.227616 0.125074 +vt 0.238802 0.125074 +vt 0.233209 0.140688 +vt 0.209423 0.196101 +vt 0.215016 0.155536 +vt 0.215449 0.183625 +vt 0.212702 0.242176 +vt 0.212702 0.210949 +vt 0.217496 0.215618 +vt 0.227616 0.289017 +vt 0.219726 0.293125 +vt 0.223089 0.278072 +vt 0.246692 0.293125 +vt 0.240234 0.308739 +vt 0.238802 0.289017 +vt 0.253716 0.210949 +vt 0.253716 0.242176 +vt 0.248922 0.237507 +vt 0.238802 0.164108 +vt 0.246692 0.160000 +vt 0.243329 0.175053 +vt 0.219726 0.160000 +vt 0.226184 0.144386 +vt 0.227616 0.164108 +vt 0.221740 0.235167 +vt 0.217496 0.237507 +vt 0.225136 0.207046 +vt 0.221740 0.217958 +vt 0.229254 0.272456 +vt 0.225695 0.263851 +vt 0.237164 0.272456 +vt 0.243329 0.278072 +vt 0.240723 0.263851 +vt 0.244678 0.235167 +vt 0.248922 0.215618 +vt 0.244678 0.217958 +vt 0.240723 0.189274 +vt 0.237164 0.180669 +vt 0.241282 0.207046 +vt 0.233209 0.187529 +vt 0.225695 0.189274 +vt 0.223089 0.175053 +vt 0.229254 0.180669 +vt 0.000000 0.625000 +vt 0.208955 0.671875 +vt 0.000000 0.671875 +vt 0.000000 0.406250 +vt 0.208955 0.453125 +vt 0.000000 0.453125 +vt 0.000000 0.187500 +vt 0.208955 0.234375 +vt 0.000000 0.234375 +vt 0.000000 0.515625 +vt 0.208955 0.562500 +vt 0.000000 0.562500 +vt 0.000000 0.296875 +vt 0.208955 0.343750 +vt 0.000000 0.343750 +vt 0.000000 0.734375 +vt 0.208955 0.781250 +vt 0.000000 0.781250 +vt 0.249994 0.351563 +vt 0.248356 0.368116 +vt 0.244403 0.374973 +vt 0.249994 0.351562 +vt 0.248356 0.368116 +vt 0.244403 0.374973 +vt 0.244403 0.328152 +vt 0.249994 0.351562 +vt 0.244403 0.374973 +vt 0.249994 0.351563 +vt 0.248356 0.368116 +vt 0.244403 0.374973 +vt 0.249994 0.351562 +vt 0.248356 0.368116 +vt 0.244403 0.374973 +vt 0.244403 0.328152 +vt 0.249994 0.351562 +vt 0.244403 0.374973 +vt 0.657842 0.464038 +vt 0.656762 0.453126 +vt 0.657842 0.442213 +vt 0.663054 0.442213 +vt 0.663054 0.464038 +vt 0.214890 0.251728 +vt 0.218845 0.280412 +vt 0.226184 0.308739 +vt 0.229254 0.305577 +vt 0.237164 0.305577 +vt 0.247573 0.280412 +vt 0.251528 0.251728 +vt 0.251528 0.201397 +vt 0.247573 0.172713 +vt 0.240234 0.144386 +vt 0.237164 0.147548 +vt 0.229254 0.147548 +vt 0.218845 0.172713 +vt 0.214890 0.201397 +vt 0.208955 0.625000 +vt 0.208955 0.406250 +vt 0.208955 0.187500 +vt 0.208955 0.515625 +vt 0.208955 0.296875 +vt 0.208955 0.734375 +vt 0.240450 0.368116 +vt 0.238812 0.351563 +vt 0.240450 0.335009 +vt 0.244403 0.328152 +vt 0.248356 0.335009 +vt 0.240450 0.368116 +vt 0.238812 0.351563 +vt 0.240450 0.335009 +vt 0.244403 0.328152 +vt 0.248356 0.335009 +vt 0.240450 0.368116 +vt 0.238812 0.351562 +vt 0.240450 0.335009 +vt 0.248356 0.335009 +vt 0.248356 0.368116 +vt 0.240450 0.368116 +vt 0.238812 0.351562 +vt 0.240450 0.335009 +vt 0.244403 0.328152 +vt 0.248356 0.335009 +vt 0.240450 0.368116 +vt 0.238812 0.351563 +vt 0.240450 0.335009 +vt 0.244403 0.328152 +vt 0.248356 0.335009 +vt 0.240450 0.368116 +vt 0.238812 0.351562 +vt 0.240450 0.335009 +vt 0.248356 0.335009 +vt 0.248356 0.368116 +vt 0.656716 0.531250 +vt 0.652985 0.515625 +vt 0.656716 0.515625 +vt 0.656716 0.484375 +vt 0.652985 0.468750 +vt 0.656716 0.468750 +vt 0.656716 0.453125 +vt 0.652985 0.437500 +vt 0.656716 0.437500 +vt 0.652985 0.546875 +vt 0.652985 0.531250 +vt 0.652985 0.500000 +vt 0.656716 0.500000 +vt 0.652985 0.484375 +vt 0.652985 0.453125 +vt 0.656716 0.562500 +vt 0.656716 0.546875 +vt 0.000000 0.359375 +vt 0.208955 0.390625 +vt 0.000000 0.390625 +vt 0.000000 0.171875 +vt 0.000000 0.140625 +vt 0.208955 0.171875 +vt 0.000000 0.125000 +vt 0.208955 0.140625 +vt 0.000000 0.468750 +vt 0.208955 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.718750 +vt 0.208955 0.468750 +vt 0.208955 0.687500 +vt 0.000000 0.687500 +vt 0.000000 0.250000 +vt 0.208955 0.281250 +vt 0.000000 0.281250 +vt 0.000000 0.609375 +vt 0.208955 0.359375 +vt 0.208955 0.718750 +vt 0.208955 0.578125 +vt 0.000000 0.578125 +vt 0.208955 0.609375 +vt 0.208955 0.250000 +vt 0.208955 0.328125 +vt 0.238806 0.343750 +vt 0.208955 0.343750 +vt 0.208955 0.406250 +vt 0.238806 0.421875 +vt 0.208955 0.421875 +vt 0.208955 0.406250 +vt 0.238806 0.421875 +vt 0.208955 0.421875 +vt 0.208955 0.359375 +vt 0.238806 0.375000 +vt 0.208955 0.375000 +vt 0.208955 0.437500 +vt 0.238806 0.453125 +vt 0.208955 0.453125 +vt 0.208955 0.390625 +vt 0.238806 0.406250 +vt 0.208955 0.390625 +vt 0.238806 0.406250 +vt 0.208955 0.343750 +vt 0.238806 0.359375 +vt 0.208955 0.421875 +vt 0.238806 0.437500 +vt 0.208955 0.375000 +vt 0.238806 0.390625 +vt 0.208955 0.390625 +vt 0.208955 0.328125 +vt 0.238806 0.343750 +vt 0.208955 0.406250 +vt 0.238806 0.421875 +vt 0.208955 0.359375 +vt 0.238806 0.375000 +vt 0.208955 0.437500 +vt 0.238806 0.453125 +vt 0.208955 0.453125 +vt 0.208955 0.390625 +vt 0.238806 0.406250 +vt 0.208955 0.343750 +vt 0.238806 0.359375 +vt 0.208955 0.421875 +vt 0.238806 0.437500 +vt 0.208955 0.375000 +vt 0.238806 0.390625 +vt 0.208955 0.390625 +vt 0.208955 0.328125 +vt 0.238806 0.343750 +vt 0.208955 0.406250 +vt 0.238806 0.421875 +vt 0.208955 0.359375 +vt 0.238806 0.375000 +vt 0.208955 0.437500 +vt 0.238806 0.453125 +vt 0.208955 0.453125 +vt 0.208955 0.390625 +vt 0.238806 0.406250 +vt 0.208955 0.343750 +vt 0.238806 0.359375 +vt 0.208955 0.421875 +vt 0.238806 0.437500 +vt 0.208955 0.375000 +vt 0.238806 0.390625 +vt 0.208955 0.375000 +vt 0.238806 0.390625 +vt 0.208955 0.328125 +vt 0.238806 0.343750 +vt 0.208955 0.406250 +vt 0.238806 0.421875 +vt 0.208955 0.359375 +vt 0.238806 0.375000 +vt 0.208955 0.359375 +vt 0.238806 0.375000 +vt 0.208955 0.437500 +vt 0.238806 0.453125 +vt 0.208955 0.453125 +vt 0.238806 0.406250 +vt 0.208955 0.343750 +vt 0.238806 0.359375 +vt 0.208955 0.343750 +vt 0.238806 0.359375 +vt 0.208955 0.421875 +vt 0.238806 0.437500 +vt 0.208955 0.375000 +vt 0.238806 0.390625 +vt 0.208955 0.328125 +vt 0.238806 0.343750 +vt 0.208955 0.328125 +vt 0.238806 0.343750 +vt 0.208955 0.406250 +vt 0.238806 0.421875 +vt 0.208955 0.359375 +vt 0.238806 0.375000 +vt 0.208955 0.437500 +vt 0.238806 0.453125 +vt 0.208955 0.453125 +vt 0.208955 0.437500 +vt 0.238806 0.453125 +vt 0.208955 0.453125 +vt 0.238806 0.406250 +vt 0.238806 0.359375 +vt 0.238806 0.437500 +vt 0.238806 0.437500 +vt 0.238806 0.390625 +vt 0.652985 0.562500 +vt 0.208955 0.125000 +vt 0.238806 0.328125 +vt 0.238806 0.328125 +vt 0.238806 0.328125 +vt 0.238806 0.328125 +vt 0.238806 0.328125 +vt 0.238806 0.328125 +vn 0.0000 0.0000 1.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.1499 0.9887 0.0000 +vn 0.7813 0.6242 0.0000 +vn 0.1499 -0.9887 0.0000 +vn -0.2208 -0.9753 0.0000 +vn 0.7813 -0.6242 0.0000 +vn 0.9550 -0.2965 0.0000 +vn -0.7813 0.6242 0.0000 +vn -0.1499 0.9887 0.0000 +vn -0.7813 -0.6242 0.0000 +vn -0.9550 -0.2965 0.0000 +vn -0.9550 0.2965 0.0000 +vn 0.2208 -0.9753 0.0000 +vn -0.1499 -0.9887 0.0000 +vn 0.9550 0.2965 0.0000 +vn 0.9312 0.3645 0.0000 +vn 0.9312 -0.3645 0.0000 +vn -0.9312 0.3645 0.0000 +vn -0.7343 0.6788 0.0000 +vn -0.2208 0.9753 0.0000 +vn -0.7343 -0.6788 0.0000 +vn -0.9312 -0.3645 0.0000 +vn 0.7343 -0.6788 0.0000 +vn 0.2208 0.9753 0.0000 +vn 0.7343 0.6788 0.0000 +vn 0.9659 -0.2588 0.0000 +vn 0.2588 -0.9659 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.9659 -0.2588 0.0000 +vn 0.2588 0.9659 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.9659 0.2588 0.0000 +vn 0.9659 0.2588 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.2588 0.9659 0.0000 +vn -0.2588 -0.9659 0.0000 +vn 0.5000 -0.8660 0.0000 +s off +f 29/1/1 13/2/1 53/3/1 +f 61/4/1 63/5/1 58/6/1 +f 73/7/1 74/8/1 49/9/1 +f 68/10/1 67/11/1 9/12/1 +f 72/13/1 71/14/1 25/15/1 +f 76/16/1 75/17/1 41/18/1 +f 65/19/1 66/20/1 17/21/1 +f 69/22/1 70/23/1 33/24/1 +f 81/25/1 82/26/1 39/27/1 +f 11/28/1 86/29/1 55/30/1 +f 80/31/1 79/32/1 15/33/1 +f 84/34/1 83/35/1 31/36/1 +f 19/37/1 87/38/1 47/39/1 +f 77/40/1 78/41/1 23/42/1 +f 39/27/1 52/43/1 51/44/1 +f 37/45/1 52/43/1 38/46/1 +f 12/47/1 55/30/1 54/48/1 +f 12/47/1 53/3/1 13/2/1 +f 14/49/1 27/50/1 15/33/1 +f 14/49/1 29/1/1 28/51/1 +f 30/52/1 43/53/1 31/36/1 +f 29/1/1 44/54/1 30/52/1 +f 19/37/1 46/55/1 20/56/1 +f 20/56/1 45/57/1 21/58/1 +f 23/42/1 36/59/1 35/60/1 +f 21/58/1 36/59/1 22/61/1 +f 69/62/2 94/63/2 70/64/2 +f 68/65/3 91/66/3 67/67/3 +f 76/68/4 99/69/4 75/70/4 +f 73/71/5 98/72/5 74/73/5 +f 72/74/6 95/75/6 71/76/6 +f 65/77/7 90/78/7 66/79/7 +f 135/80/1 136/81/1 129/82/1 +f 151/83/1 152/84/1 145/85/1 +f 125/86/1 127/87/1 121/88/1 +f 143/89/1 144/90/1 137/91/1 +f 159/92/1 160/93/1 153/94/1 +f 117/95/1 119/96/1 113/97/1 +f 53/3/1 37/45/1 29/1/1 +f 37/45/1 21/58/1 29/1/1 +f 21/58/1 45/57/1 29/1/1 +f 58/6/1 57/98/1 59/99/1 +f 59/99/1 60/100/1 61/4/1 +f 61/4/1 62/101/1 63/5/1 +f 63/5/1 64/102/1 58/6/1 +f 58/6/1 59/99/1 61/4/1 +f 81/25/1 50/103/1 74/8/1 +f 50/103/1 49/9/1 74/8/1 +f 49/9/1 56/104/1 73/7/1 +f 56/104/1 86/29/1 73/7/1 +f 85/105/1 10/106/1 67/11/1 +f 10/106/1 9/12/1 67/11/1 +f 9/12/1 16/107/1 68/10/1 +f 16/107/1 79/32/1 68/10/1 +f 80/31/1 26/108/1 71/14/1 +f 26/108/1 25/15/1 71/14/1 +f 25/15/1 32/109/1 72/13/1 +f 32/109/1 83/35/1 72/13/1 +f 84/34/1 42/110/1 75/17/1 +f 42/110/1 41/18/1 75/17/1 +f 41/18/1 48/111/1 76/16/1 +f 48/111/1 87/38/1 76/16/1 +f 88/112/1 18/113/1 66/20/1 +f 18/113/1 17/21/1 66/20/1 +f 17/21/1 24/114/1 65/19/1 +f 24/114/1 78/41/1 65/19/1 +f 77/40/1 34/115/1 70/23/1 +f 34/115/1 33/24/1 70/23/1 +f 33/24/1 40/116/1 69/22/1 +f 40/116/1 82/26/1 69/22/1 +f 82/26/1 40/116/1 39/27/1 +f 39/27/1 51/44/1 81/25/1 +f 51/44/1 50/103/1 81/25/1 +f 11/28/1 10/106/1 85/105/1 +f 85/105/1 86/29/1 11/28/1 +f 86/29/1 56/104/1 55/30/1 +f 79/32/1 16/107/1 15/33/1 +f 15/33/1 27/50/1 80/31/1 +f 27/50/1 26/108/1 80/31/1 +f 83/35/1 32/109/1 31/36/1 +f 31/36/1 43/53/1 84/34/1 +f 43/53/1 42/110/1 84/34/1 +f 19/37/1 18/113/1 88/112/1 +f 88/112/1 87/38/1 19/37/1 +f 87/38/1 48/111/1 47/39/1 +f 78/41/1 24/114/1 23/42/1 +f 23/42/1 35/60/1 77/40/1 +f 35/60/1 34/115/1 77/40/1 +f 39/27/1 38/46/1 52/43/1 +f 37/45/1 53/3/1 52/43/1 +f 12/47/1 11/28/1 55/30/1 +f 12/47/1 54/48/1 53/3/1 +f 14/49/1 28/51/1 27/50/1 +f 14/49/1 13/2/1 29/1/1 +f 30/52/1 44/54/1 43/53/1 +f 29/1/1 45/57/1 44/54/1 +f 19/37/1 47/39/1 46/55/1 +f 20/56/1 46/55/1 45/57/1 +f 23/42/1 22/61/1 36/59/1 +f 21/58/1 37/45/1 36/59/1 +f 69/62/2 93/117/2 94/63/2 +f 68/65/3 92/118/3 91/66/3 +f 76/68/4 100/119/4 99/69/4 +f 73/71/5 97/120/5 98/72/5 +f 72/74/6 96/121/6 95/75/6 +f 65/77/7 89/122/7 90/78/7 +f 129/82/1 130/123/1 131/124/1 +f 131/124/1 132/125/1 129/82/1 +f 132/125/1 133/126/1 129/82/1 +f 133/126/1 134/127/1 129/82/1 +f 134/127/1 135/80/1 129/82/1 +f 145/85/1 146/128/1 147/129/1 +f 147/129/1 148/130/1 145/85/1 +f 148/130/1 149/131/1 145/85/1 +f 149/131/1 150/132/1 145/85/1 +f 150/132/1 151/83/1 145/85/1 +f 121/88/1 122/133/1 123/134/1 +f 123/134/1 124/135/1 125/86/1 +f 125/86/1 126/136/1 127/87/1 +f 127/87/1 128/137/1 121/88/1 +f 121/88/1 123/134/1 125/86/1 +f 137/91/1 138/138/1 139/139/1 +f 139/139/1 140/140/1 137/91/1 +f 140/140/1 141/141/1 137/91/1 +f 141/141/1 142/142/1 137/91/1 +f 142/142/1 143/89/1 137/91/1 +f 153/94/1 154/143/1 155/144/1 +f 155/144/1 156/145/1 153/94/1 +f 156/145/1 157/146/1 153/94/1 +f 157/146/1 158/147/1 153/94/1 +f 158/147/1 159/92/1 153/94/1 +f 113/97/1 114/148/1 115/149/1 +f 115/149/1 116/150/1 117/95/1 +f 117/95/1 118/151/1 119/96/1 +f 119/96/1 120/152/1 113/97/1 +f 113/97/1 115/149/1 117/95/1 +s 1 +f 3/153/8 57/154/9 2/155/9 +f 8/156/10 63/157/11 7/158/11 +f 6/159/12 61/160/7 5/161/7 +f 3/153/8 60/162/13 59/163/8 +f 2/155/9 58/164/3 1/165/3 +f 1/165/3 64/166/10 8/156/10 +f 7/158/11 62/167/12 6/159/12 +f 5/168/7 60/162/13 4/169/13 +f 80/170/14 103/171/15 79/172/15 +f 87/173/16 100/119/17 76/68/17 +f 88/174/18 111/175/16 87/173/16 +f 66/176/19 112/177/18 88/174/18 +f 85/178/20 110/179/21 86/180/21 +f 78/181/22 89/122/23 65/77/23 +f 67/67/24 109/182/20 85/178/20 +f 70/64/25 101/183/26 77/184/26 +f 79/172/15 92/118/27 68/65/27 +f 84/185/28 107/186/29 83/187/29 +f 82/188/30 93/117/31 69/62/31 +f 71/76/32 104/189/14 80/170/14 +f 77/184/26 102/190/22 78/181/22 +f 74/73/33 105/191/34 81/192/34 +f 83/187/29 96/121/35 72/74/35 +f 81/192/34 106/193/30 82/188/30 +f 86/180/21 97/120/36 73/71/36 +f 75/70/37 108/194/28 84/185/28 +f 29/195/6 132/196/38 28/197/38 +f 56/198/39 159/199/40 55/200/40 +f 16/201/13 119/202/8 15/203/8 +f 43/204/40 146/205/41 42/206/41 +f 30/207/42 133/208/6 29/209/6 +f 49/210/4 160/211/39 56/198/39 +f 9/212/7 120/213/13 16/201/13 +f 44/214/39 147/215/40 43/204/40 +f 31/216/43 134/217/42 30/207/42 +f 18/218/9 121/219/3 17/220/3 +f 45/221/4 148/222/39 44/214/39 +f 32/223/44 135/224/43 31/216/43 +f 19/225/8 122/226/9 18/218/9 +f 46/227/45 149/228/4 45/229/4 +f 25/230/2 136/231/44 32/223/44 +f 20/232/13 123/233/8 19/225/8 +f 47/234/46 150/235/45 46/227/45 +f 34/236/42 137/237/6 33/238/6 +f 21/239/7 124/240/13 20/232/13 +f 48/241/47 151/242/46 47/234/46 +f 35/243/43 138/244/42 34/236/42 +f 22/245/12 125/246/7 21/247/7 +f 41/248/5 152/249/47 48/241/47 +f 36/250/44 139/251/43 35/243/43 +f 23/252/11 126/253/12 22/245/12 +f 50/254/45 153/255/4 49/210/4 +f 10/256/12 113/257/7 9/212/7 +f 37/258/2 140/259/44 36/250/44 +f 24/260/10 127/261/11 23/252/11 +f 51/262/46 154/263/45 50/254/45 +f 11/264/11 114/265/12 10/256/12 +f 38/266/48 141/267/2 37/268/2 +f 17/220/3 128/269/10 24/260/10 +f 52/270/47 155/271/46 51/262/46 +f 12/272/10 115/273/11 11/264/11 +f 39/274/49 142/275/48 38/266/48 +f 26/276/48 129/277/2 25/230/2 +f 53/278/5 156/279/47 52/270/47 +f 13/280/3 116/281/10 12/272/10 +f 40/282/38 143/283/49 39/274/49 +f 27/284/49 130/285/48 26/276/48 +f 54/286/41 157/287/5 53/288/5 +f 14/289/9 117/290/3 13/291/3 +f 33/238/6 144/292/38 40/282/38 +f 28/197/38 131/293/49 27/284/49 +f 55/200/40 158/294/41 54/286/41 +f 15/203/8 118/295/9 14/289/9 +f 42/206/41 145/296/5 41/248/5 +f 3/153/8 59/163/8 57/154/9 +f 8/156/10 64/166/10 63/157/11 +f 6/159/12 62/167/12 61/160/7 +f 3/153/8 4/169/13 60/162/13 +f 2/155/9 57/154/9 58/164/3 +f 1/165/3 58/164/3 64/166/10 +f 7/158/11 63/157/11 62/167/12 +f 5/168/7 61/297/7 60/162/13 +f 80/170/14 104/189/14 103/171/15 +f 87/173/16 111/175/16 100/119/17 +f 88/174/18 112/177/18 111/175/16 +f 66/176/19 90/298/19 112/177/18 +f 85/178/20 109/182/20 110/179/21 +f 78/181/22 102/190/22 89/122/23 +f 67/67/24 91/66/24 109/182/20 +f 70/64/25 94/63/25 101/183/26 +f 79/172/15 103/171/15 92/118/27 +f 84/185/28 108/194/28 107/186/29 +f 82/188/30 106/193/30 93/117/31 +f 71/76/32 95/75/32 104/189/14 +f 77/184/26 101/183/26 102/190/22 +f 74/73/33 98/72/33 105/191/34 +f 83/187/29 107/186/29 96/121/35 +f 81/192/34 105/191/34 106/193/30 +f 86/180/21 110/179/21 97/120/36 +f 75/70/37 99/69/37 108/194/28 +f 29/195/6 133/299/6 132/196/38 +f 56/198/39 160/211/39 159/199/40 +f 16/201/13 120/213/13 119/202/8 +f 43/204/40 147/215/40 146/205/41 +f 30/207/42 134/217/42 133/208/6 +f 49/210/4 153/255/4 160/211/39 +f 9/212/7 113/257/7 120/213/13 +f 44/214/39 148/222/39 147/215/40 +f 31/216/43 135/224/43 134/217/42 +f 18/218/9 122/226/9 121/219/3 +f 45/221/4 149/300/4 148/222/39 +f 32/223/44 136/231/44 135/224/43 +f 19/225/8 123/233/8 122/226/9 +f 46/227/45 150/235/45 149/228/4 +f 25/230/2 129/277/2 136/231/44 +f 20/232/13 124/240/13 123/233/8 +f 47/234/46 151/242/46 150/235/45 +f 34/236/42 138/244/42 137/237/6 +f 21/239/7 125/301/7 124/240/13 +f 48/241/47 152/249/47 151/242/46 +f 35/243/43 139/251/43 138/244/42 +f 22/245/12 126/253/12 125/246/7 +f 41/248/5 145/296/5 152/249/47 +f 36/250/44 140/259/44 139/251/43 +f 23/252/11 127/261/11 126/253/12 +f 50/254/45 154/263/45 153/255/4 +f 10/256/12 114/265/12 113/257/7 +f 37/258/2 141/302/2 140/259/44 +f 24/260/10 128/269/10 127/261/11 +f 51/262/46 155/271/46 154/263/45 +f 11/264/11 115/273/11 114/265/12 +f 38/266/48 142/275/48 141/267/2 +f 17/220/3 121/219/3 128/269/10 +f 52/270/47 156/279/47 155/271/46 +f 12/272/10 116/281/10 115/273/11 +f 39/274/49 143/283/49 142/275/48 +f 26/276/48 130/285/48 129/277/2 +f 53/278/5 157/303/5 156/279/47 +f 13/280/3 117/304/3 116/281/10 +f 40/282/38 144/292/38 143/283/49 +f 27/284/49 131/293/49 130/285/48 +f 54/286/41 158/294/41 157/287/5 +f 14/289/9 118/295/9 117/290/3 +f 33/238/6 137/237/6 144/292/38 +f 28/197/38 132/196/38 131/293/49 +f 55/200/40 159/199/40 158/294/41 +f 15/203/8 119/202/8 118/295/9 +f 42/206/41 146/205/41 145/296/5 +o Speedloader +v 0.000000 0.875000 8.062500 +v -0.437500 0.757773 8.062500 +v -0.757772 0.437500 8.062500 +v -0.875000 -0.000000 8.062500 +v -0.757772 -0.437500 8.062500 +v -0.437500 -0.757773 8.062500 +v 0.000000 -0.875000 8.062500 +v 0.437500 -0.757773 8.062500 +v 0.757772 -0.437500 8.062500 +v 0.875000 -0.000000 8.062500 +v 0.757772 0.437500 8.062500 +v 0.437500 0.757773 8.062500 +v 0.000000 0.875000 8.312500 +v -0.437500 0.757773 8.312500 +v -0.757772 0.437500 8.312500 +v -0.875000 -0.000000 8.312500 +v -0.757772 -0.437500 8.312500 +v -0.437500 -0.757773 8.312500 +v 0.000000 -0.875000 8.312500 +v 0.437500 -0.757773 8.312500 +v 0.757772 -0.437500 8.312500 +v 0.875000 -0.000000 8.312500 +v 0.757772 0.437500 8.312500 +v 0.437500 0.757773 8.312500 +v 0.187500 -0.500000 8.000000 +v -0.187500 -0.500000 8.000000 +v 0.000000 -0.312500 8.000000 +v 0.000000 -0.687500 8.000000 +v -0.132583 -0.367418 8.000000 +v 0.132583 -0.632583 8.000000 +v -0.132583 -0.632583 8.000000 +v 0.132583 -0.367418 8.000000 +v 0.000000 -0.750000 8.000000 +v 0.176776 -0.676777 8.000000 +v 0.250000 -0.500000 8.000000 +v 0.176777 -0.323224 8.000000 +v 0.000000 -0.250000 8.000000 +v -0.176777 -0.323224 8.000000 +v -0.250000 -0.500000 8.000000 +v -0.176777 -0.676777 8.000000 +v 0.000000 -0.312500 8.062500 +v -0.132583 -0.367418 8.062500 +v 0.132583 -0.367418 8.062500 +v 0.187500 -0.500000 8.062500 +v 0.132583 -0.632583 8.062500 +v 0.000000 -0.687500 8.062500 +v -0.132583 -0.632583 8.062500 +v -0.187500 -0.500000 8.062500 +v 0.176776 -0.676777 8.062500 +v 0.000000 -0.750000 8.062500 +v 0.250000 -0.500000 8.062500 +v 0.176777 -0.323224 8.062500 +v 0.000000 -0.250000 8.062500 +v -0.176777 -0.323224 8.062500 +v -0.250000 -0.500000 8.062500 +v -0.176777 -0.676777 8.062500 +v 0.000000 0.250000 8.312500 +v -0.125000 0.216506 8.312500 +v -0.216506 0.125000 8.312500 +v -0.250000 0.000000 8.312500 +v -0.216506 -0.125000 8.312500 +v -0.125000 -0.216506 8.312500 +v 0.000000 -0.250000 8.312500 +v 0.125000 -0.216506 8.312500 +v 0.216506 -0.125000 8.312500 +v 0.250000 0.000000 8.312500 +v 0.216506 0.125000 8.312500 +v 0.125000 0.216506 8.312500 +v 0.000000 0.250000 8.812500 +v -0.125000 0.216506 8.812500 +v -0.216506 0.125000 8.812500 +v -0.250000 0.000000 8.812500 +v -0.216506 -0.125000 8.812500 +v -0.125000 -0.216506 8.812500 +v 0.000000 -0.250000 8.812500 +v 0.125000 -0.216506 8.812500 +v 0.216506 -0.125000 8.812500 +v 0.250000 0.000000 8.812500 +v 0.216506 0.125000 8.812500 +v 0.125000 0.216506 8.812500 +v 0.000000 0.625000 8.812500 +v -0.312500 0.541265 8.812500 +v -0.541266 0.312500 8.812500 +v -0.625000 0.000000 8.812500 +v -0.541266 -0.312500 8.812500 +v -0.312500 -0.541265 8.812500 +v 0.000000 -0.625000 8.812500 +v 0.312500 -0.541265 8.812500 +v 0.541265 -0.312500 8.812500 +v 0.625000 0.000000 8.812500 +v 0.541266 0.312500 8.812500 +v 0.312500 0.541265 8.812500 +v 0.000000 0.625000 9.062500 +v -0.312500 0.541265 9.062500 +v -0.541266 0.312500 9.062500 +v -0.625000 0.000000 9.062500 +v -0.541266 -0.312500 9.062500 +v -0.312500 -0.541265 9.062500 +v 0.000000 -0.625000 9.062500 +v 0.312500 -0.541265 9.062500 +v 0.541265 -0.312500 9.062500 +v 0.625000 0.000000 9.062500 +v 0.541266 0.312500 9.062500 +v 0.312500 0.541265 9.062500 +v -0.187500 0.500000 8.000000 +v 0.187500 0.500000 8.000000 +v 0.000000 0.312500 8.000000 +v 0.000000 0.687500 8.000000 +v 0.132583 0.367418 8.000000 +v -0.132583 0.632583 8.000000 +v 0.132583 0.632583 8.000000 +v -0.132583 0.367418 8.000000 +v 0.000000 0.750000 8.000000 +v -0.176776 0.676777 8.000000 +v -0.250000 0.500000 8.000000 +v -0.176777 0.323224 8.000000 +v 0.000000 0.250000 8.000000 +v 0.176777 0.323224 8.000000 +v 0.250000 0.500000 8.000000 +v 0.176777 0.676777 8.000000 +v 0.000000 0.312500 8.062500 +v 0.132583 0.367418 8.062500 +v -0.132583 0.367418 8.062500 +v -0.187500 0.500000 8.062500 +v -0.132583 0.632583 8.062500 +v 0.000000 0.687500 8.062500 +v 0.132583 0.632583 8.062500 +v 0.187500 0.500000 8.062500 +v -0.176776 0.676777 8.062500 +v 0.000000 0.750000 8.062500 +v -0.250000 0.500000 8.062500 +v -0.176777 0.323224 8.062500 +v 0.000000 0.250000 8.062500 +v 0.176777 0.323224 8.062500 +v 0.250000 0.500000 8.062500 +v 0.176777 0.676777 8.062500 +v -0.339263 -0.412380 8.000000 +v -0.526763 -0.087620 8.000000 +v -0.270633 -0.156250 8.000000 +v -0.595393 -0.343750 8.000000 +v -0.384484 -0.068889 8.000000 +v -0.481542 -0.431112 8.000000 +v -0.614124 -0.201472 8.000000 +v -0.251902 -0.298529 8.000000 +v -0.649519 -0.375000 8.000000 +v -0.497718 -0.491482 8.000000 +v -0.308013 -0.466507 8.000000 +v -0.191531 -0.314705 8.000000 +v -0.216507 -0.125000 8.000000 +v -0.368308 -0.008519 8.000000 +v -0.558013 -0.033494 8.000000 +v -0.674495 -0.185295 8.000000 +v -0.270633 -0.156250 8.062500 +v -0.384484 -0.068889 8.062500 +v -0.251902 -0.298529 8.062500 +v -0.339263 -0.412380 8.062500 +v -0.481542 -0.431112 8.062500 +v -0.595393 -0.343750 8.062500 +v -0.614124 -0.201472 8.062500 +v -0.526763 -0.087620 8.062500 +v -0.497718 -0.491482 8.062500 +v -0.649519 -0.375000 8.062500 +v -0.308013 -0.466507 8.062500 +v -0.191531 -0.314705 8.062500 +v -0.216507 -0.125000 8.062500 +v -0.368308 -0.008519 8.062500 +v -0.558013 -0.033494 8.062500 +v -0.674495 -0.185295 8.062500 +v 0.339263 0.412380 8.000000 +v 0.526763 0.087620 8.000000 +v 0.270633 0.156250 8.000000 +v 0.595393 0.343750 8.000000 +v 0.384484 0.068889 8.000000 +v 0.481542 0.431112 8.000000 +v 0.614124 0.201472 8.000000 +v 0.251902 0.298529 8.000000 +v 0.649519 0.375000 8.000000 +v 0.497718 0.491482 8.000000 +v 0.308013 0.466507 8.000000 +v 0.191531 0.314705 8.000000 +v 0.216507 0.125000 8.000000 +v 0.368308 0.008519 8.000000 +v 0.558013 0.033494 8.000000 +v 0.674495 0.185295 8.000000 +v 0.270633 0.156250 8.062500 +v 0.384484 0.068889 8.062500 +v 0.251902 0.298529 8.062500 +v 0.339263 0.412380 8.062500 +v 0.481542 0.431112 8.062500 +v 0.595393 0.343750 8.062500 +v 0.614124 0.201472 8.062500 +v 0.526763 0.087620 8.062500 +v 0.497718 0.491482 8.062500 +v 0.649519 0.375000 8.062500 +v 0.308013 0.466507 8.062500 +v 0.191531 0.314705 8.062500 +v 0.216507 0.125000 8.062500 +v 0.368308 0.008519 8.062500 +v 0.558013 0.033494 8.062500 +v 0.674495 0.185295 8.062500 +v -0.526763 0.087620 8.000000 +v -0.339263 0.412380 8.000000 +v -0.270633 0.156250 8.000000 +v -0.595393 0.343750 8.000000 +v -0.251902 0.298529 8.000000 +v -0.614124 0.201472 8.000000 +v -0.481542 0.431112 8.000000 +v -0.384484 0.068889 8.000000 +v -0.649519 0.375000 8.000000 +v -0.674495 0.185296 8.000000 +v -0.558013 0.033494 8.000000 +v -0.368308 0.008518 8.000000 +v -0.216507 0.125000 8.000000 +v -0.191531 0.314705 8.000000 +v -0.308013 0.466507 8.000000 +v -0.497718 0.491482 8.000000 +v -0.270633 0.156250 8.062500 +v -0.251902 0.298529 8.062500 +v -0.384484 0.068889 8.062500 +v -0.526763 0.087620 8.062500 +v -0.614124 0.201472 8.062500 +v -0.595393 0.343750 8.062500 +v -0.481542 0.431112 8.062500 +v -0.339263 0.412380 8.062500 +v -0.674495 0.185296 8.062500 +v -0.649519 0.375000 8.062500 +v -0.558013 0.033494 8.062500 +v -0.368308 0.008518 8.062500 +v -0.216507 0.125000 8.062500 +v -0.191531 0.314705 8.062500 +v -0.308013 0.466507 8.062500 +v -0.497718 0.491482 8.062500 +v 0.526763 -0.087620 8.000000 +v 0.339263 -0.412380 8.000000 +v 0.270633 -0.156250 8.000000 +v 0.595393 -0.343750 8.000000 +v 0.251902 -0.298529 8.000000 +v 0.614124 -0.201472 8.000000 +v 0.481542 -0.431112 8.000000 +v 0.384484 -0.068889 8.000000 +v 0.649519 -0.375000 8.000000 +v 0.674495 -0.185296 8.000000 +v 0.558013 -0.033494 8.000000 +v 0.368308 -0.008518 8.000000 +v 0.216507 -0.125000 8.000000 +v 0.191531 -0.314705 8.000000 +v 0.308013 -0.466507 8.000000 +v 0.497718 -0.491482 8.000000 +v 0.270633 -0.156250 8.062500 +v 0.251902 -0.298529 8.062500 +v 0.384484 -0.068889 8.062500 +v 0.526763 -0.087620 8.062500 +v 0.614124 -0.201472 8.062500 +v 0.595393 -0.343750 8.062500 +v 0.481542 -0.431112 8.062500 +v 0.339263 -0.412380 8.062500 +v 0.674495 -0.185296 8.062500 +v 0.649519 -0.375000 8.062500 +v 0.558013 -0.033494 8.062500 +v 0.368308 -0.008518 8.062500 +v 0.216507 -0.125000 8.062500 +v 0.191531 -0.314705 8.062500 +v 0.308013 -0.466507 8.062500 +v 0.497718 -0.491482 8.062500 +vt 0.574405 0.179713 +vt 0.619624 0.179713 +vt 0.597015 0.343699 +vt 0.574406 0.507787 +vt 0.574406 0.398463 +vt 0.597015 0.343801 +vt 0.671642 0.484375 +vt 0.667910 0.468750 +vt 0.671642 0.468750 +vt 0.667910 0.500000 +vt 0.667910 0.484375 +vt 0.671642 0.500000 +vt 0.667910 0.515625 +vt 0.671642 0.515625 +vt 0.667910 0.531250 +vt 0.671642 0.546875 +vt 0.671642 0.531250 +vt 0.667910 0.562500 +vt 0.667910 0.546875 +vt 0.671642 0.453125 +vt 0.667910 0.437500 +vt 0.671642 0.437500 +vt 0.667910 0.453125 +vt 0.640568 0.398416 +vt 0.656716 0.281294 +vt 0.672865 0.398416 +vt 0.640568 0.164085 +vt 0.672864 0.164085 +vt 0.656716 0.281206 +vt 0.671642 0.484375 +vt 0.667910 0.468750 +vt 0.671642 0.468750 +vt 0.667910 0.500000 +vt 0.667910 0.484375 +vt 0.671642 0.500000 +vt 0.667910 0.515625 +vt 0.671642 0.515625 +vt 0.667910 0.531250 +vt 0.671642 0.546875 +vt 0.671642 0.531250 +vt 0.667910 0.562500 +vt 0.667910 0.546875 +vt 0.671642 0.453125 +vt 0.667910 0.437500 +vt 0.671642 0.437500 +vt 0.667910 0.453125 +vt 0.671642 0.484375 +vt 0.667910 0.468750 +vt 0.671642 0.468750 +vt 0.667910 0.500000 +vt 0.667910 0.484375 +vt 0.671642 0.500000 +vt 0.667910 0.515625 +vt 0.671642 0.515625 +vt 0.667910 0.531250 +vt 0.671642 0.546875 +vt 0.671642 0.531250 +vt 0.667910 0.562500 +vt 0.667910 0.546875 +vt 0.671642 0.453125 +vt 0.667910 0.437500 +vt 0.671642 0.437500 +vt 0.667910 0.453125 +vt 0.671642 0.484375 +vt 0.667910 0.468750 +vt 0.671642 0.468750 +vt 0.667910 0.500000 +vt 0.667910 0.484375 +vt 0.671642 0.500000 +vt 0.667910 0.515625 +vt 0.671642 0.515625 +vt 0.667910 0.531250 +vt 0.671642 0.546875 +vt 0.671642 0.531250 +vt 0.667910 0.562500 +vt 0.667910 0.546875 +vt 0.671642 0.453125 +vt 0.667910 0.437500 +vt 0.671642 0.437500 +vt 0.667910 0.453125 +vt 0.671642 0.484375 +vt 0.667910 0.468750 +vt 0.671642 0.468750 +vt 0.667910 0.500000 +vt 0.667910 0.484375 +vt 0.671642 0.500000 +vt 0.667910 0.515625 +vt 0.671642 0.515625 +vt 0.667910 0.531250 +vt 0.671642 0.546875 +vt 0.671642 0.531250 +vt 0.667910 0.562500 +vt 0.667910 0.546875 +vt 0.671642 0.453125 +vt 0.667910 0.437500 +vt 0.671642 0.437500 +vt 0.667910 0.453125 +vt 0.671642 0.484375 +vt 0.667910 0.468750 +vt 0.671642 0.468750 +vt 0.667910 0.500000 +vt 0.667910 0.484375 +vt 0.671642 0.500000 +vt 0.667910 0.515625 +vt 0.671642 0.515625 +vt 0.667910 0.531250 +vt 0.671642 0.546875 +vt 0.671642 0.531250 +vt 0.667910 0.562500 +vt 0.667910 0.546875 +vt 0.671642 0.453125 +vt 0.667910 0.437500 +vt 0.671642 0.437500 +vt 0.667910 0.453125 +vt 0.583961 0.329052 +vt 0.574405 0.289037 +vt 0.570908 0.234375 +vt 0.583961 0.139698 +vt 0.597015 0.125051 +vt 0.610068 0.139698 +vt 0.623122 0.234375 +vt 0.619624 0.289037 +vt 0.610068 0.329052 +vt 0.619624 0.507787 +vt 0.610068 0.547802 +vt 0.597015 0.562449 +vt 0.583961 0.547802 +vt 0.570908 0.453125 +vt 0.583961 0.358448 +vt 0.610068 0.358448 +vt 0.619624 0.398463 +vt 0.623122 0.453125 +vt 0.671642 0.562500 +vt 0.666040 0.426995 +vt 0.656716 0.437456 +vt 0.647393 0.426995 +vt 0.638070 0.359375 +vt 0.640568 0.320335 +vt 0.647393 0.291755 +vt 0.666040 0.291755 +vt 0.672865 0.320335 +vt 0.675363 0.359375 +vt 0.647393 0.270745 +vt 0.640568 0.242166 +vt 0.638070 0.203125 +vt 0.647393 0.135505 +vt 0.656716 0.125044 +vt 0.666039 0.135505 +vt 0.675363 0.203125 +vt 0.672864 0.242166 +vt 0.666039 0.270745 +vt 0.671642 0.562500 +vt 0.671642 0.562500 +vt 0.671642 0.562500 +vt 0.671642 0.562500 +vt 0.671642 0.562500 +vt 0.630597 0.187500 +vt 0.623134 0.125000 +vt 0.630597 0.125000 +vt 0.630597 0.750000 +vt 0.623134 0.687500 +vt 0.630597 0.687500 +vt 0.630597 0.437500 +vt 0.623134 0.375000 +vt 0.630597 0.375000 +vt 0.630597 0.562500 +vt 0.623134 0.500000 +vt 0.630597 0.500000 +vt 0.630597 0.250000 +vt 0.623134 0.187500 +vt 0.630597 0.812500 +vt 0.623134 0.750000 +vt 0.623134 0.437500 +vt 0.630597 0.625000 +vt 0.623134 0.562500 +vt 0.630597 0.312500 +vt 0.623134 0.250000 +vt 0.630597 0.875000 +vt 0.623134 0.812500 +vt 0.623134 0.625000 +vt 0.623134 0.312500 +vt 0.664179 0.468750 +vt 0.675373 0.484375 +vt 0.675373 0.453125 +vt 0.664179 0.484375 +vt 0.664179 0.500000 +vt 0.675373 0.562500 +vt 0.664179 0.515625 +vt 0.675373 0.546875 +vt 0.664179 0.531250 +vt 0.675373 0.531250 +vt 0.664179 0.546875 +vt 0.675373 0.515625 +vt 0.664179 0.437500 +vt 0.675373 0.500000 +vt 0.664179 0.453125 +vt 0.675373 0.468750 +vt 0.570895 0.265625 +vt 0.555970 0.250000 +vt 0.570895 0.250000 +vt 0.570895 0.187500 +vt 0.555970 0.171875 +vt 0.570895 0.171875 +vt 0.570895 0.140625 +vt 0.555970 0.125000 +vt 0.570895 0.125000 +vt 0.570895 0.281250 +vt 0.555970 0.265625 +vt 0.570895 0.203125 +vt 0.555970 0.187500 +vt 0.570895 0.234375 +vt 0.555970 0.218750 +vt 0.570895 0.218750 +vt 0.570895 0.156250 +vt 0.555970 0.140625 +vt 0.570895 0.296875 +vt 0.555970 0.281250 +vt 0.555970 0.203125 +vt 0.555970 0.234375 +vt 0.555970 0.156250 +vt 0.570895 0.312500 +vt 0.555970 0.296875 +vt 0.638060 0.359375 +vt 0.630597 0.312500 +vt 0.638060 0.312500 +vt 0.638060 0.453125 +vt 0.630597 0.406250 +vt 0.638060 0.406250 +vt 0.638060 0.218750 +vt 0.630597 0.171875 +vt 0.638060 0.171875 +vt 0.638060 0.640625 +vt 0.630597 0.593750 +vt 0.638060 0.593750 +vt 0.630597 0.359375 +vt 0.638060 0.500000 +vt 0.630597 0.453125 +vt 0.638060 0.265625 +vt 0.630597 0.218750 +vt 0.638060 0.687500 +vt 0.630597 0.640625 +vt 0.638060 0.546875 +vt 0.630597 0.500000 +vt 0.630597 0.265625 +vt 0.630597 0.125000 +vt 0.638060 0.125000 +vt 0.630597 0.546875 +vt 0.664179 0.468750 +vt 0.675373 0.484375 +vt 0.675373 0.453125 +vt 0.664179 0.484375 +vt 0.664179 0.500000 +vt 0.675373 0.562500 +vt 0.664179 0.515625 +vt 0.675373 0.546875 +vt 0.664179 0.531250 +vt 0.675373 0.531250 +vt 0.664179 0.546875 +vt 0.675373 0.515625 +vt 0.664179 0.437500 +vt 0.675373 0.500000 +vt 0.664179 0.453125 +vt 0.675373 0.468750 +vt 0.664179 0.468750 +vt 0.675373 0.484375 +vt 0.675373 0.453125 +vt 0.664179 0.484375 +vt 0.664179 0.500000 +vt 0.675373 0.562500 +vt 0.664179 0.515625 +vt 0.675373 0.546875 +vt 0.664179 0.531250 +vt 0.675373 0.531250 +vt 0.664179 0.546875 +vt 0.675373 0.515625 +vt 0.664179 0.437500 +vt 0.675373 0.500000 +vt 0.664179 0.453125 +vt 0.675373 0.468750 +vt 0.664179 0.468750 +vt 0.675373 0.484375 +vt 0.675373 0.453125 +vt 0.664179 0.484375 +vt 0.664179 0.500000 +vt 0.675373 0.562500 +vt 0.664179 0.515625 +vt 0.675373 0.546875 +vt 0.664179 0.531250 +vt 0.675373 0.531250 +vt 0.664179 0.546875 +vt 0.675373 0.515625 +vt 0.664179 0.437500 +vt 0.675373 0.500000 +vt 0.664179 0.453125 +vt 0.675373 0.468750 +vt 0.664179 0.468750 +vt 0.675373 0.484375 +vt 0.675373 0.453125 +vt 0.664179 0.484375 +vt 0.664179 0.500000 +vt 0.675373 0.562500 +vt 0.664179 0.515625 +vt 0.675373 0.546875 +vt 0.664179 0.531250 +vt 0.675373 0.531250 +vt 0.664179 0.546875 +vt 0.675373 0.515625 +vt 0.664179 0.437500 +vt 0.675373 0.500000 +vt 0.664179 0.453125 +vt 0.675373 0.468750 +vt 0.664179 0.468750 +vt 0.675373 0.484375 +vt 0.675373 0.453125 +vt 0.664179 0.484375 +vt 0.664179 0.500000 +vt 0.675373 0.562500 +vt 0.664179 0.515625 +vt 0.675373 0.546875 +vt 0.664179 0.531250 +vt 0.675373 0.531250 +vt 0.664179 0.546875 +vt 0.675373 0.515625 +vt 0.664179 0.437500 +vt 0.675373 0.500000 +vt 0.664179 0.453125 +vt 0.675373 0.468750 +vt 0.623134 0.875000 +vt 0.675373 0.437500 +vt 0.664179 0.562500 +vt 0.555970 0.312500 +vt 0.630597 0.687500 +vt 0.675373 0.437500 +vt 0.664179 0.562500 +vt 0.675373 0.437500 +vt 0.664179 0.562500 +vt 0.675373 0.437500 +vt 0.664179 0.562500 +vt 0.675373 0.437500 +vt 0.664179 0.562500 +vt 0.675373 0.437500 +vt 0.664179 0.562500 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.9659 0.2588 0.0000 +vn 0.9659 -0.2588 0.0000 +vn -0.2588 -0.9659 0.0000 +vn 0.2588 0.9659 0.0000 +vn -0.2588 0.9659 0.0000 +vn 0.2588 -0.9659 0.0000 +vn -0.9659 -0.2588 0.0000 +vn 0.9659 0.2588 0.0000 +s off +f 177/305/50 181/306/50 173/307/50 +f 171/308/51 169/309/51 167/310/51 +f 191/311/51 199/312/51 186/313/51 +f 191/311/51 193/314/51 200/315/51 +f 188/316/51 194/317/51 193/314/51 +f 190/318/51 195/319/51 194/317/51 +f 192/320/51 195/319/51 185/321/51 +f 192/320/51 197/322/51 196/323/51 +f 189/324/51 197/325/51 187/326/51 +f 189/324/51 199/312/51 198/327/51 +f 251/328/51 247/329/51 243/330/51 +f 257/331/50 261/332/50 253/333/50 +f 271/334/51 279/335/51 266/336/51 +f 271/334/51 273/337/51 280/338/51 +f 268/339/51 274/340/51 273/337/51 +f 270/341/51 275/342/51 274/340/51 +f 272/343/51 275/342/51 265/344/51 +f 272/343/51 277/345/51 276/346/51 +f 269/347/51 277/348/51 267/349/51 +f 269/347/51 279/335/51 278/350/51 +f 303/351/51 311/352/51 298/353/51 +f 303/351/51 305/354/51 312/355/51 +f 300/356/51 306/357/51 305/354/51 +f 302/358/51 307/359/51 306/357/51 +f 304/360/51 307/359/51 297/361/51 +f 304/360/51 309/362/51 308/363/51 +f 301/364/51 309/365/51 299/366/51 +f 301/364/51 311/352/51 310/367/51 +f 335/368/51 343/369/51 330/370/51 +f 335/368/51 337/371/51 344/372/51 +f 332/373/51 338/374/51 337/371/51 +f 334/375/51 339/376/51 338/374/51 +f 336/377/51 339/376/51 329/378/51 +f 336/377/51 341/379/51 340/380/51 +f 333/381/51 341/382/51 331/383/51 +f 333/381/51 343/369/51 342/384/51 +f 367/385/51 375/386/51 362/387/51 +f 367/385/51 369/388/51 376/389/51 +f 364/390/51 370/391/51 369/388/51 +f 366/392/51 371/393/51 370/391/51 +f 368/394/51 371/393/51 361/395/51 +f 368/394/51 373/396/51 372/397/51 +f 365/398/51 373/399/51 363/400/51 +f 365/398/51 375/386/51 374/401/51 +f 399/402/51 407/403/51 394/404/51 +f 399/402/51 401/405/51 408/406/51 +f 396/407/51 402/408/51 401/405/51 +f 398/409/51 403/410/51 402/408/51 +f 400/411/51 403/410/51 393/412/51 +f 400/411/51 405/413/51 404/414/51 +f 397/415/51 405/416/51 395/417/51 +f 397/415/51 407/403/51 406/418/51 +f 173/307/50 174/419/50 175/420/50 +f 175/420/50 176/421/50 173/307/50 +f 176/421/50 177/305/50 173/307/50 +f 177/305/50 178/422/50 179/423/50 +f 179/423/50 180/424/50 181/306/50 +f 181/306/50 182/425/50 183/426/50 +f 183/426/50 184/427/50 173/307/50 +f 177/305/50 179/423/50 181/306/50 +f 181/306/50 183/426/50 173/307/50 +f 163/428/51 162/429/51 161/430/51 +f 161/430/51 172/431/51 171/308/51 +f 171/308/51 170/432/51 169/309/51 +f 169/309/51 168/433/51 167/310/51 +f 167/310/51 166/434/51 165/435/51 +f 165/435/51 164/436/51 167/310/51 +f 164/436/51 163/428/51 167/310/51 +f 163/428/51 161/430/51 167/310/51 +f 161/430/51 171/308/51 167/310/51 +f 191/311/51 200/315/51 199/312/51 +f 191/311/51 188/316/51 193/314/51 +f 188/316/51 190/318/51 194/317/51 +f 190/318/51 185/321/51 195/319/51 +f 192/320/51 196/323/51 195/319/51 +f 192/320/51 187/437/51 197/322/51 +f 189/324/51 198/327/51 197/325/51 +f 189/324/51 186/313/51 199/312/51 +f 243/330/51 242/438/51 251/328/51 +f 242/438/51 241/439/51 251/328/51 +f 241/439/51 252/440/51 251/328/51 +f 251/328/51 250/441/51 249/442/51 +f 249/442/51 248/443/51 251/328/51 +f 248/443/51 247/329/51 251/328/51 +f 247/329/51 246/444/51 243/330/51 +f 246/444/51 245/445/51 243/330/51 +f 245/445/51 244/446/51 243/330/51 +f 253/333/50 254/447/50 257/331/50 +f 254/447/50 255/448/50 257/331/50 +f 255/448/50 256/449/50 257/331/50 +f 257/331/50 258/450/50 261/332/50 +f 258/450/50 259/451/50 261/332/50 +f 259/451/50 260/452/50 261/332/50 +f 261/332/50 262/453/50 263/454/50 +f 263/454/50 264/455/50 261/332/50 +f 264/455/50 253/333/50 261/332/50 +f 271/334/51 280/338/51 279/335/51 +f 271/334/51 268/339/51 273/337/51 +f 268/339/51 270/341/51 274/340/51 +f 270/341/51 265/344/51 275/342/51 +f 272/343/51 276/346/51 275/342/51 +f 272/343/51 267/456/51 277/345/51 +f 269/347/51 278/350/51 277/348/51 +f 269/347/51 266/336/51 279/335/51 +f 303/351/51 312/355/51 311/352/51 +f 303/351/51 300/356/51 305/354/51 +f 300/356/51 302/358/51 306/357/51 +f 302/358/51 297/361/51 307/359/51 +f 304/360/51 308/363/51 307/359/51 +f 304/360/51 299/457/51 309/362/51 +f 301/364/51 310/367/51 309/365/51 +f 301/364/51 298/353/51 311/352/51 +f 335/368/51 344/372/51 343/369/51 +f 335/368/51 332/373/51 337/371/51 +f 332/373/51 334/375/51 338/374/51 +f 334/375/51 329/378/51 339/376/51 +f 336/377/51 340/380/51 339/376/51 +f 336/377/51 331/458/51 341/379/51 +f 333/381/51 342/384/51 341/382/51 +f 333/381/51 330/370/51 343/369/51 +f 367/385/51 376/389/51 375/386/51 +f 367/385/51 364/390/51 369/388/51 +f 364/390/51 366/392/51 370/391/51 +f 366/392/51 361/395/51 371/393/51 +f 368/394/51 372/397/51 371/393/51 +f 368/394/51 363/459/51 373/396/51 +f 365/398/51 374/401/51 373/399/51 +f 365/398/51 362/387/51 375/386/51 +f 399/402/51 408/406/51 407/403/51 +f 399/402/51 396/407/51 401/405/51 +f 396/407/51 398/409/51 402/408/51 +f 398/409/51 393/412/51 403/410/51 +f 400/411/51 404/414/51 403/410/51 +f 400/411/51 395/460/51 405/413/51 +f 397/415/51 406/418/51 405/416/51 +f 397/415/51 394/404/51 407/403/51 +s 1 +f 168/461/52 179/462/53 167/463/53 +f 165/464/54 176/465/55 164/466/55 +f 172/467/56 183/468/57 171/469/57 +f 162/470/58 173/471/59 161/472/59 +f 169/473/60 180/474/52 168/461/52 +f 166/475/61 177/476/54 165/464/54 +f 161/472/59 184/477/56 172/467/56 +f 163/478/62 174/479/58 162/470/58 +f 170/480/63 181/481/60 169/473/60 +f 167/482/53 178/483/61 166/475/61 +f 164/466/55 175/484/62 163/478/62 +f 171/469/57 182/485/63 170/480/63 +f 200/315/64 215/486/55 199/312/55 +f 186/313/63 207/487/65 191/311/65 +f 187/326/53 202/488/66 189/324/66 +f 193/314/53 216/489/64 200/315/64 +f 194/317/66 210/490/53 193/314/53 +f 192/320/64 201/491/53 187/437/53 +f 195/319/63 209/492/66 194/317/66 +f 185/321/55 203/493/64 192/320/64 +f 196/323/65 211/494/63 195/319/63 +f 190/318/67 204/495/55 185/321/55 +f 197/322/59 212/496/65 196/323/65 +f 188/316/59 205/497/67 190/318/67 +f 198/327/67 213/498/59 197/325/59 +f 191/311/65 206/499/59 188/316/59 +f 199/312/55 214/500/67 198/327/67 +f 189/324/66 208/501/63 186/313/63 +f 220/502/55 231/503/62 219/504/62 +f 227/505/57 238/506/63 226/507/63 +f 224/508/52 235/509/53 223/510/53 +f 221/511/54 232/512/55 220/502/55 +f 228/513/56 239/514/57 227/505/57 +f 218/515/58 229/516/59 217/517/59 +f 225/518/60 236/519/52 224/508/52 +f 222/520/61 233/521/54 221/511/54 +f 217/517/59 240/522/56 228/513/56 +f 219/504/62 230/523/58 218/515/58 +f 226/507/63 237/524/60 225/518/60 +f 223/525/53 234/526/61 222/520/61 +f 252/527/56 263/528/57 251/529/57 +f 242/530/58 253/531/59 241/532/59 +f 249/533/60 260/534/52 248/535/52 +f 246/536/61 257/537/54 245/538/54 +f 241/532/59 264/539/56 252/527/56 +f 243/540/62 254/541/58 242/530/58 +f 250/542/63 261/543/60 249/533/60 +f 247/544/53 258/545/61 246/536/61 +f 244/546/55 255/547/62 243/540/62 +f 251/529/57 262/548/63 250/542/63 +f 248/535/52 259/549/53 247/550/53 +f 245/538/54 256/551/55 244/546/55 +f 280/338/65 295/552/63 279/335/63 +f 266/336/55 287/553/64 271/334/64 +f 267/349/59 282/554/67 269/347/67 +f 273/337/59 296/555/65 280/338/65 +f 274/340/67 290/556/59 273/337/59 +f 272/343/65 281/557/59 267/456/59 +f 275/342/55 289/558/67 274/340/67 +f 265/344/63 283/559/65 272/343/65 +f 276/346/64 291/560/55 275/342/55 +f 270/341/66 284/561/63 265/344/63 +f 277/345/53 292/562/64 276/346/64 +f 268/339/53 285/563/66 270/341/66 +f 278/350/66 293/564/53 277/348/53 +f 271/334/64 286/565/53 268/339/53 +f 279/335/63 294/566/66 278/350/66 +f 269/347/67 288/567/55 266/336/55 +f 312/355/68 327/568/58 311/352/58 +f 298/353/52 319/569/69 303/351/69 +f 299/366/54 314/570/70 301/364/70 +f 305/354/54 328/571/68 312/355/68 +f 306/357/70 322/572/54 305/354/54 +f 304/360/68 313/573/54 299/457/54 +f 307/359/52 321/574/70 306/357/70 +f 297/361/58 315/575/68 304/360/68 +f 308/363/69 323/576/52 307/359/52 +f 302/358/71 316/577/58 297/361/58 +f 309/362/57 324/578/69 308/363/69 +f 300/356/57 317/579/71 302/358/71 +f 310/367/71 325/580/57 309/365/57 +f 303/351/69 318/581/57 300/356/57 +f 311/352/58 326/582/71 310/367/71 +f 301/364/70 320/583/52 298/353/52 +f 344/372/69 359/584/52 343/369/52 +f 330/370/58 351/585/68 335/368/68 +f 331/383/57 346/586/71 333/381/71 +f 337/371/57 360/587/69 344/372/69 +f 338/374/71 354/588/57 337/371/57 +f 336/377/69 345/589/57 331/458/57 +f 339/376/58 353/590/71 338/374/71 +f 329/378/52 347/591/69 336/377/69 +f 340/380/68 355/592/58 339/376/58 +f 334/375/70 348/593/52 329/378/52 +f 341/379/54 356/594/68 340/380/68 +f 332/373/54 349/595/70 334/375/70 +f 342/384/70 357/596/54 341/382/54 +f 335/368/68 350/597/54 332/373/54 +f 343/369/52 358/598/70 342/384/70 +f 333/381/71 352/599/58 330/370/58 +f 376/389/72 391/600/56 375/386/56 +f 362/387/61 383/601/73 367/385/73 +f 363/400/62 378/602/74 365/398/74 +f 369/388/62 392/603/72 376/389/72 +f 370/391/74 386/604/62 369/388/62 +f 368/394/72 377/605/62 363/459/62 +f 371/393/61 385/606/74 370/391/74 +f 361/395/56 379/607/72 368/394/72 +f 372/397/73 387/608/61 371/393/61 +f 366/392/75 380/609/56 361/395/56 +f 373/396/60 388/610/73 372/397/73 +f 364/390/60 381/611/75 366/392/75 +f 374/401/75 389/612/60 373/399/60 +f 367/385/73 382/613/60 364/390/60 +f 375/386/56 390/614/75 374/401/75 +f 365/398/74 384/615/61 362/387/61 +f 408/406/73 423/616/61 407/403/61 +f 394/404/56 415/617/72 399/402/72 +f 395/417/60 410/618/75 397/415/75 +f 401/405/60 424/619/73 408/406/73 +f 402/408/75 418/620/60 401/405/60 +f 400/411/73 409/621/60 395/460/60 +f 403/410/56 417/622/75 402/408/75 +f 393/412/61 411/623/73 400/411/73 +f 404/414/72 419/624/56 403/410/56 +f 398/409/74 412/625/61 393/412/61 +f 405/413/62 420/626/72 404/414/72 +f 396/407/62 413/627/74 398/409/74 +f 406/418/74 421/628/62 405/416/62 +f 399/402/72 414/629/62 396/407/62 +f 407/403/61 422/630/74 406/418/74 +f 397/415/75 416/631/56 394/404/56 +f 168/461/52 180/474/52 179/462/53 +f 165/464/54 177/476/54 176/465/55 +f 172/467/56 184/477/56 183/468/57 +f 162/470/58 174/479/58 173/471/59 +f 169/473/60 181/481/60 180/474/52 +f 166/475/61 178/483/61 177/476/54 +f 161/472/59 173/471/59 184/477/56 +f 163/478/62 175/484/62 174/479/58 +f 170/480/63 182/485/63 181/481/60 +f 167/482/53 179/632/53 178/483/61 +f 164/466/55 176/465/55 175/484/62 +f 171/469/57 183/468/57 182/485/63 +f 200/315/64 216/489/64 215/486/55 +f 186/313/63 208/501/63 207/487/65 +f 187/326/53 201/633/53 202/488/66 +f 193/314/53 210/490/53 216/489/64 +f 194/317/66 209/492/66 210/490/53 +f 192/320/64 203/493/64 201/491/53 +f 195/319/63 211/494/63 209/492/66 +f 185/321/55 204/495/55 203/493/64 +f 196/323/65 212/496/65 211/494/63 +f 190/318/67 205/497/67 204/495/55 +f 197/322/59 213/634/59 212/496/65 +f 188/316/59 206/499/59 205/497/67 +f 198/327/67 214/500/67 213/498/59 +f 191/311/65 207/487/65 206/499/59 +f 199/312/55 215/486/55 214/500/67 +f 189/324/66 202/488/66 208/501/63 +f 220/502/55 232/512/55 231/503/62 +f 227/505/57 239/514/57 238/506/63 +f 224/508/52 236/519/52 235/509/53 +f 221/511/54 233/521/54 232/512/55 +f 228/513/56 240/522/56 239/514/57 +f 218/515/58 230/523/58 229/516/59 +f 225/518/60 237/524/60 236/519/52 +f 222/520/61 234/526/61 233/521/54 +f 217/517/59 229/516/59 240/522/56 +f 219/504/62 231/503/62 230/523/58 +f 226/507/63 238/506/63 237/524/60 +f 223/525/53 235/635/53 234/526/61 +f 252/527/56 264/539/56 263/528/57 +f 242/530/58 254/541/58 253/531/59 +f 249/533/60 261/543/60 260/534/52 +f 246/536/61 258/545/61 257/537/54 +f 241/532/59 253/531/59 264/539/56 +f 243/540/62 255/547/62 254/541/58 +f 250/542/63 262/548/63 261/543/60 +f 247/544/53 259/636/53 258/545/61 +f 244/546/55 256/551/55 255/547/62 +f 251/529/57 263/528/57 262/548/63 +f 248/535/52 260/534/52 259/549/53 +f 245/538/54 257/537/54 256/551/55 +f 280/338/65 296/555/65 295/552/63 +f 266/336/55 288/567/55 287/553/64 +f 267/349/59 281/637/59 282/554/67 +f 273/337/59 290/556/59 296/555/65 +f 274/340/67 289/558/67 290/556/59 +f 272/343/65 283/559/65 281/557/59 +f 275/342/55 291/560/55 289/558/67 +f 265/344/63 284/561/63 283/559/65 +f 276/346/64 292/562/64 291/560/55 +f 270/341/66 285/563/66 284/561/63 +f 277/345/53 293/638/53 292/562/64 +f 268/339/53 286/565/53 285/563/66 +f 278/350/66 294/566/66 293/564/53 +f 271/334/64 287/553/64 286/565/53 +f 279/335/63 295/552/63 294/566/66 +f 269/347/67 282/554/67 288/567/55 +f 312/355/68 328/571/68 327/568/58 +f 298/353/52 320/583/52 319/569/69 +f 299/366/54 313/639/54 314/570/70 +f 305/354/54 322/572/54 328/571/68 +f 306/357/70 321/574/70 322/572/54 +f 304/360/68 315/575/68 313/573/54 +f 307/359/52 323/576/52 321/574/70 +f 297/361/58 316/577/58 315/575/68 +f 308/363/69 324/578/69 323/576/52 +f 302/358/71 317/579/71 316/577/58 +f 309/362/57 325/640/57 324/578/69 +f 300/356/57 318/581/57 317/579/71 +f 310/367/71 326/582/71 325/580/57 +f 303/351/69 319/569/69 318/581/57 +f 311/352/58 327/568/58 326/582/71 +f 301/364/70 314/570/70 320/583/52 +f 344/372/69 360/587/69 359/584/52 +f 330/370/58 352/599/58 351/585/68 +f 331/383/57 345/641/57 346/586/71 +f 337/371/57 354/588/57 360/587/69 +f 338/374/71 353/590/71 354/588/57 +f 336/377/69 347/591/69 345/589/57 +f 339/376/58 355/592/58 353/590/71 +f 329/378/52 348/593/52 347/591/69 +f 340/380/68 356/594/68 355/592/58 +f 334/375/70 349/595/70 348/593/52 +f 341/379/54 357/642/54 356/594/68 +f 332/373/54 350/597/54 349/595/70 +f 342/384/70 358/598/70 357/596/54 +f 335/368/68 351/585/68 350/597/54 +f 343/369/52 359/584/52 358/598/70 +f 333/381/71 346/586/71 352/599/58 +f 376/389/72 392/603/72 391/600/56 +f 362/387/61 384/615/61 383/601/73 +f 363/400/62 377/643/62 378/602/74 +f 369/388/62 386/604/62 392/603/72 +f 370/391/74 385/606/74 386/604/62 +f 368/394/72 379/607/72 377/605/62 +f 371/393/61 387/608/61 385/606/74 +f 361/395/56 380/609/56 379/607/72 +f 372/397/73 388/610/73 387/608/61 +f 366/392/75 381/611/75 380/609/56 +f 373/396/60 389/644/60 388/610/73 +f 364/390/60 382/613/60 381/611/75 +f 374/401/75 390/614/75 389/612/60 +f 367/385/73 383/601/73 382/613/60 +f 375/386/56 391/600/56 390/614/75 +f 365/398/74 378/602/74 384/615/61 +f 408/406/73 424/619/73 423/616/61 +f 394/404/56 416/631/56 415/617/72 +f 395/417/60 409/645/60 410/618/75 +f 401/405/60 418/620/60 424/619/73 +f 402/408/75 417/622/75 418/620/60 +f 400/411/73 411/623/73 409/621/60 +f 403/410/56 419/624/56 417/622/75 +f 393/412/61 412/625/61 411/623/73 +f 404/414/72 420/626/72 419/624/56 +f 398/409/74 413/627/74 412/625/61 +f 405/413/62 421/646/62 420/626/72 +f 396/407/62 414/629/62 413/627/74 +f 406/418/74 422/630/74 421/628/62 +f 399/402/72 415/617/72 414/629/62 +f 407/403/61 423/616/61 422/630/74 +f 397/415/75 410/618/75 416/631/56 +o Shot +v 0.000000 0.500000 8.187500 +v -0.132583 0.500000 8.132584 +v -0.187500 0.500000 8.000000 +v -0.132583 0.500000 7.867418 +v 0.000000 0.500000 7.812500 +v 0.132583 0.500000 7.867418 +v 0.187500 0.500000 8.000000 +v 0.132583 0.500000 8.132584 +v 0.000000 0.367418 8.132584 +v 0.000000 0.312500 8.000000 +v 0.000000 0.367418 7.867418 +v 0.000000 0.632583 7.867418 +v 0.000000 0.687500 8.000000 +v 0.000000 0.632583 8.132584 +v 0.093750 0.406250 8.132584 +v 0.132583 0.367418 8.000000 +v 0.093750 0.406250 7.867418 +v -0.093750 0.593750 7.867418 +v -0.132583 0.632583 8.000000 +v -0.093750 0.593750 8.132584 +v 0.093750 0.593750 8.132584 +v 0.132583 0.632583 8.000000 +v 0.093750 0.593750 7.867418 +v -0.093750 0.406250 7.867418 +v -0.132583 0.367418 8.000000 +v -0.093750 0.406250 8.132584 +v 0.000000 -0.500000 8.187500 +v 0.132583 -0.500000 8.132584 +v 0.187500 -0.500000 8.000000 +v 0.132583 -0.500000 7.867418 +v 0.000000 -0.500000 7.812500 +v -0.132583 -0.500000 7.867418 +v -0.187500 -0.500000 8.000000 +v -0.132583 -0.500000 8.132584 +v 0.000000 -0.367418 8.132584 +v 0.000000 -0.312500 8.000000 +v 0.000000 -0.367418 7.867418 +v 0.000000 -0.632583 7.867418 +v 0.000000 -0.687500 8.000000 +v 0.000000 -0.632583 8.132584 +v -0.093750 -0.406250 8.132584 +v -0.132583 -0.367418 8.000000 +v -0.093750 -0.406250 7.867418 +v 0.093750 -0.593750 7.867418 +v 0.132583 -0.632583 8.000000 +v 0.093750 -0.593750 8.132584 +v -0.093750 -0.593750 8.132584 +v -0.132583 -0.632583 8.000000 +v -0.093750 -0.593750 7.867418 +v 0.093750 -0.406250 7.867418 +v 0.132583 -0.367418 8.000000 +v 0.093750 -0.406250 8.132584 +v 0.433013 0.250000 8.187500 +v 0.366722 0.364820 8.132584 +v 0.339263 0.412380 8.000000 +v 0.366722 0.364820 7.867418 +v 0.433013 0.250000 7.812500 +v 0.499304 0.135180 7.867418 +v 0.526763 0.087620 8.000000 +v 0.499304 0.135180 8.132584 +v 0.318193 0.183709 8.132584 +v 0.270633 0.156250 8.000000 +v 0.318193 0.183709 7.867418 +v 0.547833 0.316292 7.867418 +v 0.595393 0.343750 8.000000 +v 0.547833 0.316292 8.132584 +v 0.398698 0.121935 8.132584 +v 0.384484 0.068889 8.000000 +v 0.398698 0.121935 7.867418 +v 0.467328 0.378065 7.867418 +v 0.481542 0.431112 8.000000 +v 0.467328 0.378065 8.132584 +v 0.561078 0.215685 8.132584 +v 0.614124 0.201472 8.000000 +v 0.561078 0.215685 7.867418 +v 0.304948 0.284315 7.867418 +v 0.251902 0.298529 8.000000 +v 0.304948 0.284315 8.132584 +v -0.433013 -0.250000 8.187500 +v -0.366722 -0.364820 8.132584 +v -0.339263 -0.412380 8.000000 +v -0.366722 -0.364820 7.867418 +v -0.433013 -0.250000 7.812500 +v -0.499304 -0.135180 7.867418 +v -0.526763 -0.087620 8.000000 +v -0.499304 -0.135180 8.132584 +v -0.318193 -0.183709 8.132584 +v -0.270633 -0.156250 8.000000 +v -0.318193 -0.183709 7.867418 +v -0.547833 -0.316292 7.867418 +v -0.595393 -0.343750 8.000000 +v -0.547833 -0.316292 8.132584 +v -0.398698 -0.121935 8.132584 +v -0.384484 -0.068889 8.000000 +v -0.398698 -0.121935 7.867418 +v -0.467328 -0.378065 7.867418 +v -0.481542 -0.431112 8.000000 +v -0.467328 -0.378065 8.132584 +v -0.561078 -0.215685 8.132584 +v -0.614124 -0.201472 8.000000 +v -0.561078 -0.215685 7.867418 +v -0.304948 -0.284315 7.867418 +v -0.251902 -0.298529 8.000000 +v -0.304948 -0.284315 8.132584 +v 0.433013 -0.250000 8.187500 +v 0.499304 -0.135180 8.132584 +v 0.526763 -0.087620 8.000000 +v 0.499304 -0.135180 7.867418 +v 0.433013 -0.250000 7.812500 +v 0.366722 -0.364820 7.867418 +v 0.339263 -0.412380 8.000000 +v 0.366722 -0.364820 8.132584 +v 0.318193 -0.183709 8.132584 +v 0.270633 -0.156250 8.000000 +v 0.318193 -0.183709 7.867418 +v 0.547833 -0.316292 7.867418 +v 0.595393 -0.343750 8.000000 +v 0.547833 -0.316292 8.132584 +v 0.304948 -0.284315 8.132584 +v 0.251902 -0.298529 8.000000 +v 0.304948 -0.284315 7.867418 +v 0.561078 -0.215685 7.867418 +v 0.614124 -0.201472 8.000000 +v 0.561078 -0.215685 8.132584 +v 0.467328 -0.378065 8.132584 +v 0.481542 -0.431112 8.000000 +v 0.467328 -0.378065 7.867418 +v 0.398698 -0.121935 7.867418 +v 0.384484 -0.068889 8.000000 +v 0.398698 -0.121935 8.132584 +v -0.433013 0.250000 8.187500 +v -0.499304 0.135180 8.132584 +v -0.526763 0.087620 8.000000 +v -0.499304 0.135180 7.867418 +v -0.433013 0.250000 7.812500 +v -0.366722 0.364820 7.867418 +v -0.339263 0.412380 8.000000 +v -0.366722 0.364820 8.132584 +v -0.318193 0.183709 8.132584 +v -0.270633 0.156250 8.000000 +v -0.318193 0.183709 7.867418 +v -0.547833 0.316292 7.867418 +v -0.595393 0.343750 8.000000 +v -0.547833 0.316292 8.132584 +v -0.304948 0.284315 8.132584 +v -0.251902 0.298529 8.000000 +v -0.304948 0.284315 7.867418 +v -0.561078 0.215685 7.867418 +v -0.614124 0.201472 8.000000 +v -0.561078 0.215685 8.132584 +v -0.467328 0.378065 8.132584 +v -0.481542 0.431112 8.000000 +v -0.467328 0.378065 7.867418 +v -0.398698 0.121935 7.867418 +v -0.384484 0.068889 8.000000 +v -0.398698 0.121935 8.132584 +vt 0.641791 0.437500 +vt 0.645522 0.453125 +vt 0.641791 0.453125 +vt 0.645965 0.438018 +vt 0.649254 0.453125 +vt 0.645522 0.546875 +vt 0.641791 0.562500 +vt 0.641791 0.546875 +vt 0.649254 0.546875 +vt 0.645522 0.562500 +vt 0.645522 0.531250 +vt 0.641791 0.531250 +vt 0.649254 0.531250 +vt 0.641791 0.515625 +vt 0.645522 0.515625 +vt 0.641791 0.500000 +vt 0.645522 0.500000 +vt 0.645522 0.484375 +vt 0.641791 0.484375 +vt 0.645522 0.468750 +vt 0.641791 0.468750 +vt 0.638060 0.468750 +vt 0.638060 0.484375 +vt 0.638060 0.500000 +vt 0.638060 0.515625 +vt 0.638060 0.531250 +vt 0.638060 0.546875 +vt 0.638060 0.437500 +vt 0.638060 0.453125 +vt 0.649254 0.468750 +vt 0.649254 0.484375 +vt 0.649254 0.500000 +vt 0.652985 0.468750 +vt 0.652985 0.484375 +vt 0.649254 0.515625 +vt 0.652985 0.500000 +vt 0.652985 0.515625 +vt 0.652985 0.531250 +vt 0.652985 0.546875 +vt 0.649254 0.562500 +vt 0.649254 0.437500 +vt 0.652985 0.437500 +vt 0.652985 0.453125 +vt 0.641791 0.437500 +vt 0.645522 0.453125 +vt 0.641791 0.453125 +vt 0.645965 0.438018 +vt 0.649254 0.453125 +vt 0.645522 0.546875 +vt 0.641791 0.562500 +vt 0.641791 0.546875 +vt 0.649254 0.546875 +vt 0.645522 0.562500 +vt 0.645522 0.531250 +vt 0.641791 0.531250 +vt 0.649254 0.531250 +vt 0.641791 0.515625 +vt 0.645522 0.515625 +vt 0.641791 0.500000 +vt 0.645522 0.500000 +vt 0.645522 0.484375 +vt 0.641791 0.484375 +vt 0.645522 0.468750 +vt 0.641791 0.468750 +vt 0.638060 0.468750 +vt 0.638060 0.484375 +vt 0.638060 0.500000 +vt 0.638060 0.515625 +vt 0.638060 0.531250 +vt 0.638060 0.546875 +vt 0.638060 0.437500 +vt 0.638060 0.453125 +vt 0.649254 0.468750 +vt 0.649254 0.484375 +vt 0.649254 0.500000 +vt 0.652985 0.468750 +vt 0.652985 0.484375 +vt 0.649254 0.515625 +vt 0.652985 0.500000 +vt 0.652985 0.515625 +vt 0.652985 0.531250 +vt 0.652985 0.546875 +vt 0.649254 0.562500 +vt 0.649254 0.437500 +vt 0.652985 0.437500 +vt 0.652985 0.453125 +vt 0.641791 0.437500 +vt 0.645522 0.453125 +vt 0.641791 0.453125 +vt 0.649254 0.437500 +vt 0.645965 0.438018 +vt 0.641791 0.546875 +vt 0.645522 0.562500 +vt 0.641791 0.562500 +vt 0.649254 0.546875 +vt 0.645522 0.546875 +vt 0.645522 0.531250 +vt 0.641791 0.531250 +vt 0.649254 0.531250 +vt 0.645522 0.515625 +vt 0.641791 0.515625 +vt 0.645522 0.500000 +vt 0.641791 0.500000 +vt 0.645522 0.484375 +vt 0.641791 0.484375 +vt 0.645522 0.468750 +vt 0.641791 0.468750 +vt 0.638060 0.468750 +vt 0.638060 0.484375 +vt 0.638060 0.500000 +vt 0.638060 0.515625 +vt 0.638060 0.531250 +vt 0.638060 0.546875 +vt 0.638060 0.437500 +vt 0.638060 0.453125 +vt 0.649254 0.453125 +vt 0.649254 0.468750 +vt 0.649254 0.484375 +vt 0.649254 0.500000 +vt 0.652985 0.468750 +vt 0.652985 0.484375 +vt 0.649254 0.515625 +vt 0.652985 0.500000 +vt 0.652985 0.515625 +vt 0.652985 0.531250 +vt 0.652985 0.546875 +vt 0.649254 0.562500 +vt 0.652985 0.437500 +vt 0.652985 0.453125 +vt 0.641791 0.437500 +vt 0.645522 0.453125 +vt 0.641791 0.453125 +vt 0.649254 0.437500 +vt 0.645965 0.438018 +vt 0.641791 0.546875 +vt 0.645522 0.562500 +vt 0.641791 0.562500 +vt 0.649254 0.546875 +vt 0.645522 0.546875 +vt 0.645522 0.531250 +vt 0.641791 0.531250 +vt 0.649254 0.531250 +vt 0.645522 0.515625 +vt 0.641791 0.515625 +vt 0.645522 0.500000 +vt 0.641791 0.500000 +vt 0.645522 0.484375 +vt 0.641791 0.484375 +vt 0.645522 0.468750 +vt 0.641791 0.468750 +vt 0.638060 0.468750 +vt 0.638060 0.484375 +vt 0.638060 0.500000 +vt 0.638060 0.515625 +vt 0.638060 0.531250 +vt 0.638060 0.546875 +vt 0.638060 0.437500 +vt 0.638060 0.453125 +vt 0.649254 0.453125 +vt 0.649254 0.468750 +vt 0.649254 0.484375 +vt 0.649254 0.500000 +vt 0.652985 0.468750 +vt 0.652985 0.484375 +vt 0.649254 0.515625 +vt 0.652985 0.500000 +vt 0.652985 0.515625 +vt 0.652985 0.531250 +vt 0.652985 0.546875 +vt 0.649254 0.562500 +vt 0.652985 0.437500 +vt 0.652985 0.453125 +vt 0.645965 0.438018 +vt 0.641791 0.453125 +vt 0.641791 0.437500 +vt 0.649254 0.437500 +vt 0.645522 0.453125 +vt 0.645522 0.546875 +vt 0.641791 0.562500 +vt 0.641791 0.546875 +vt 0.649254 0.562500 +vt 0.649254 0.546875 +vt 0.645522 0.531250 +vt 0.641791 0.531250 +vt 0.649254 0.531250 +vt 0.645522 0.515625 +vt 0.641791 0.515625 +vt 0.645522 0.500000 +vt 0.641791 0.500000 +vt 0.641791 0.484375 +vt 0.645522 0.468750 +vt 0.641791 0.468750 +vt 0.645522 0.484375 +vt 0.638060 0.468750 +vt 0.638060 0.484375 +vt 0.638060 0.500000 +vt 0.638060 0.515625 +vt 0.638060 0.531250 +vt 0.638060 0.546875 +vt 0.638060 0.437500 +vt 0.638060 0.453125 +vt 0.649254 0.453125 +vt 0.649254 0.468750 +vt 0.649254 0.484375 +vt 0.649254 0.500000 +vt 0.652985 0.468750 +vt 0.652985 0.484375 +vt 0.649254 0.515625 +vt 0.652985 0.500000 +vt 0.652985 0.515625 +vt 0.652985 0.531250 +vt 0.652985 0.546875 +vt 0.652985 0.437500 +vt 0.652985 0.453125 +vt 0.645965 0.438018 +vt 0.641791 0.453125 +vt 0.641791 0.437500 +vt 0.649254 0.437500 +vt 0.645522 0.453125 +vt 0.645522 0.546875 +vt 0.641791 0.562500 +vt 0.641791 0.546875 +vt 0.649254 0.562500 +vt 0.649254 0.546875 +vt 0.645522 0.531250 +vt 0.641791 0.531250 +vt 0.649254 0.531250 +vt 0.645522 0.515625 +vt 0.641791 0.515625 +vt 0.645522 0.500000 +vt 0.641791 0.500000 +vt 0.641791 0.484375 +vt 0.645522 0.468750 +vt 0.641791 0.468750 +vt 0.645522 0.484375 +vt 0.638060 0.468750 +vt 0.638060 0.484375 +vt 0.638060 0.500000 +vt 0.638060 0.515625 +vt 0.638060 0.531250 +vt 0.638060 0.546875 +vt 0.638060 0.437500 +vt 0.638060 0.453125 +vt 0.649254 0.453125 +vt 0.649254 0.468750 +vt 0.649254 0.484375 +vt 0.649254 0.500000 +vt 0.652985 0.468750 +vt 0.652985 0.484375 +vt 0.649254 0.515625 +vt 0.652985 0.500000 +vt 0.652985 0.515625 +vt 0.652985 0.531250 +vt 0.652985 0.546875 +vt 0.652985 0.437500 +vt 0.652985 0.453125 +vt 0.645522 0.562500 +vt 0.645522 0.562500 +vn 0.0000 -0.7486 0.6630 +vn 0.7071 -0.7071 -0.0000 +vn 0.5293 -0.5294 0.6630 +vn -0.0000 -1.0000 -0.0000 +vn 0.5294 -0.5294 -0.6630 +vn -0.7071 -0.7071 -0.0000 +vn -0.5293 -0.5294 0.6630 +vn -0.5294 -0.5294 -0.6630 +vn -1.0000 0.0000 -0.0000 +vn -0.7486 -0.0000 0.6630 +vn -0.7486 -0.0000 -0.6630 +vn -0.5293 0.5294 0.6630 +vn -0.7071 0.7071 -0.0000 +vn 0.0000 0.7486 0.6630 +vn 0.0000 1.0000 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.5293 0.5294 0.6630 +vn 1.0000 0.0000 -0.0000 +vn 0.7486 -0.0000 0.6630 +vn 0.0000 -0.0000 1.0000 +vn 0.7486 -0.0000 -0.6630 +vn 0.5294 0.5294 -0.6630 +vn 0.0000 0.7486 -0.6630 +vn -0.0000 -0.0000 -1.0000 +vn -0.5294 0.5294 -0.6630 +vn 0.0000 -0.7486 -0.6630 +vn -0.6483 -0.3743 0.6630 +vn -0.2588 -0.9659 -0.0000 +vn -0.1938 -0.7231 0.6630 +vn -0.6483 -0.3743 -0.6630 +vn -0.8660 -0.5000 -0.0000 +vn -0.7231 0.1938 0.6630 +vn -0.7231 0.1938 -0.6630 +vn -0.9659 0.2588 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn -0.3743 0.6483 0.6630 +vn -0.3743 0.6483 -0.6630 +vn 0.2588 0.9659 -0.0000 +vn 0.1938 0.7231 0.6630 +vn 0.8660 0.5000 -0.0000 +vn 0.6483 0.3743 0.6630 +vn 0.9659 -0.2588 -0.0000 +vn 0.7231 -0.1938 0.6630 +vn 0.5000 -0.8660 -0.0000 +vn 0.3743 -0.6483 0.6630 +vn -0.1938 -0.7231 -0.6630 +vn 0.3743 -0.6483 -0.6630 +vn 0.7231 -0.1938 -0.6630 +vn 0.6483 0.3743 -0.6630 +vn 0.1938 0.7231 -0.6630 +vn -0.8660 0.5000 -0.0000 +vn -0.7231 -0.1938 0.6630 +vn -0.6483 0.3743 0.6630 +vn -0.6483 0.3743 -0.6630 +vn -0.9659 -0.2588 -0.0000 +vn -0.2588 0.9659 -0.0000 +vn -0.1938 0.7231 0.6630 +vn -0.1938 0.7231 -0.6630 +vn 0.5000 0.8660 -0.0000 +vn 0.3743 0.6483 0.6630 +vn 0.3743 0.6483 -0.6630 +vn 0.9659 0.2588 -0.0000 +vn 0.7231 0.1938 0.6630 +vn 0.8660 -0.5000 -0.0000 +vn 0.6483 -0.3743 0.6630 +vn 0.1938 -0.7231 0.6630 +vn -0.5000 -0.8660 -0.0000 +vn -0.3743 -0.6483 0.6630 +vn 0.2588 -0.9659 -0.0000 +vn -0.7231 -0.1938 -0.6630 +vn -0.3743 -0.6483 -0.6630 +vn 0.1938 -0.7231 -0.6630 +vn 0.6483 -0.3743 -0.6630 +vn 0.7231 0.1938 -0.6630 +s 1 +f 433/647/76 440/648/77 439/649/78 +f 434/650/79 441/651/80 440/648/77 +f 449/652/81 433/653/76 450/654/82 +f 448/655/83 434/656/79 449/652/81 +f 427/657/84 450/654/82 426/658/85 +f 448/655/83 427/657/84 428/659/86 +f 444/660/87 427/657/84 426/658/85 +f 443/661/88 438/662/89 437/663/90 +f 446/664/91 438/662/89 445/665/92 +f 439/649/78 431/666/93 432/667/94 +f 431/666/93 445/665/92 432/667/94 +f 432/667/94 445/665/92 425/668/95 +f 445/665/92 438/662/89 425/669/95 +f 444/660/87 425/670/95 438/662/89 +f 425/671/95 444/660/87 426/658/85 +f 425/672/95 426/658/85 450/654/82 +f 450/654/82 433/653/76 425/673/95 +f 439/649/78 425/674/95 433/647/76 +f 425/675/95 439/649/78 432/667/94 +f 440/648/77 430/676/96 431/666/93 +f 446/664/91 430/676/96 447/677/97 +f 437/663/90 447/677/97 436/678/98 +f 429/679/99 447/677/97 430/676/96 +f 447/677/97 429/680/99 436/678/98 +f 442/681/100 437/663/90 436/678/98 +f 427/657/84 442/681/100 428/659/86 +f 429/682/99 442/681/100 436/678/98 +f 428/659/86 442/681/100 429/683/99 +f 428/659/86 429/684/99 448/655/83 +f 448/655/83 429/685/99 435/686/101 +f 441/651/80 435/687/101 429/688/99 +f 429/689/99 430/676/96 441/651/80 +f 459/690/89 466/691/88 465/692/87 +f 460/693/90 467/694/100 466/691/88 +f 475/695/91 459/696/89 476/697/92 +f 474/698/97 460/699/90 475/695/91 +f 453/700/93 476/697/92 452/701/94 +f 474/698/97 453/700/93 454/702/96 +f 470/703/78 453/700/93 452/701/94 +f 469/704/77 464/705/76 463/706/79 +f 472/707/81 464/705/76 471/708/82 +f 465/692/87 457/709/84 458/710/85 +f 457/709/84 471/708/82 458/710/85 +f 458/710/85 471/708/82 451/711/95 +f 471/708/82 464/705/76 451/712/95 +f 470/703/78 451/713/95 464/705/76 +f 451/714/95 470/703/78 452/701/94 +f 451/715/95 452/701/94 476/697/92 +f 476/697/92 459/696/89 451/716/95 +f 465/692/87 451/717/95 459/690/89 +f 451/718/95 465/692/87 458/710/85 +f 466/691/88 456/719/86 457/709/84 +f 472/707/81 456/719/86 473/720/83 +f 463/706/79 473/720/83 462/721/101 +f 455/722/99 473/720/83 456/719/86 +f 473/720/83 455/723/99 462/721/101 +f 468/724/80 463/706/79 462/721/101 +f 453/700/93 468/724/80 454/702/96 +f 455/725/99 468/724/80 462/721/101 +f 454/702/96 468/724/80 455/726/99 +f 454/702/96 455/727/99 474/698/97 +f 474/698/97 455/728/99 461/729/98 +f 467/694/100 461/730/98 455/731/99 +f 455/732/99 456/719/86 467/694/100 +f 485/733/102 492/734/103 491/735/104 +f 487/736/105 492/734/103 486/737/106 +f 502/738/107 486/739/106 485/740/102 +f 500/741/108 486/739/106 501/742/109 +f 479/743/110 502/738/107 478/744/111 +f 500/741/108 479/743/110 480/745/112 +f 495/746/113 478/744/111 496/747/114 +f 489/748/115 496/747/114 490/749/116 +f 498/750/117 490/749/116 497/751/118 +f 491/735/104 483/752/119 484/753/120 +f 484/753/120 498/750/117 497/751/118 +f 484/753/120 497/751/118 477/754/95 +f 497/751/118 490/749/116 477/755/95 +f 496/747/114 477/756/95 490/749/116 +f 477/757/95 496/747/114 478/744/111 +f 477/758/95 478/744/111 502/738/107 +f 502/738/107 485/740/102 477/759/95 +f 491/735/104 477/760/95 485/733/102 +f 477/761/95 491/735/104 484/753/120 +f 483/752/119 493/762/121 482/763/122 +f 499/764/123 483/752/119 482/763/122 +f 489/748/115 499/764/123 488/765/124 +f 481/766/99 499/764/123 482/763/122 +f 499/764/123 481/767/99 488/765/124 +f 494/768/125 489/748/115 488/765/124 +f 480/745/112 495/746/113 494/768/125 +f 481/769/99 494/768/125 488/765/124 +f 480/745/112 494/768/125 481/770/99 +f 480/745/112 481/771/99 500/741/108 +f 500/741/108 481/772/99 487/773/105 +f 493/762/121 487/736/105 481/774/99 +f 481/775/99 482/763/122 493/762/121 +f 511/776/116 518/777/113 517/778/114 +f 513/779/124 518/777/113 512/780/115 +f 528/781/118 512/782/115 511/783/116 +f 526/784/123 512/782/115 527/785/117 +f 505/786/119 528/781/118 504/787/120 +f 526/784/123 505/786/119 506/788/122 +f 521/789/103 504/787/120 522/790/104 +f 515/791/106 522/790/104 516/792/102 +f 524/793/109 516/792/102 523/794/107 +f 517/778/114 509/795/110 510/796/111 +f 510/796/111 524/793/109 523/794/107 +f 510/796/111 523/794/107 503/797/95 +f 523/794/107 516/792/102 503/798/95 +f 522/790/104 503/799/95 516/792/102 +f 503/800/95 522/790/104 504/787/120 +f 503/801/95 504/787/120 528/781/118 +f 528/781/118 511/783/116 503/802/95 +f 517/778/114 503/803/95 511/776/116 +f 503/804/95 517/778/114 510/796/111 +f 509/795/110 519/805/125 508/806/112 +f 525/807/108 509/795/110 508/806/112 +f 515/791/106 525/807/108 514/808/105 +f 507/809/99 525/807/108 508/806/112 +f 525/807/108 507/810/99 514/808/105 +f 520/811/121 515/791/106 514/808/105 +f 506/788/122 521/789/103 520/811/121 +f 507/812/99 520/811/121 514/808/105 +f 506/788/122 520/811/121 507/813/99 +f 506/788/122 507/814/99 526/784/123 +f 526/784/123 507/815/99 513/816/124 +f 519/805/125 513/779/124 507/817/99 +f 507/818/99 508/806/112 519/805/125 +f 538/819/126 543/820/127 537/821/128 +f 539/822/129 544/823/130 538/819/126 +f 553/824/131 537/825/128 554/826/132 +f 539/827/129 553/824/131 552/828/133 +f 531/829/134 554/826/132 530/830/135 +f 532/831/136 553/824/131 531/829/134 +f 547/832/137 530/830/135 548/833/138 +f 541/834/139 548/833/138 542/835/140 +f 549/836/141 541/834/139 542/835/140 +f 543/820/127 535/837/142 536/838/143 +f 536/838/143 550/839/144 549/836/141 +f 536/838/143 549/836/141 529/840/95 +f 549/836/141 542/835/140 529/841/95 +f 548/833/138 529/842/95 542/835/140 +f 529/843/95 548/833/138 530/830/135 +f 529/844/95 530/830/135 554/826/132 +f 554/826/132 537/825/128 529/845/95 +f 543/820/127 529/846/95 537/821/128 +f 529/847/95 543/820/127 536/838/143 +f 535/837/142 545/848/145 534/849/146 +f 551/850/147 535/837/142 534/849/146 +f 541/834/139 551/850/147 540/851/148 +f 533/852/99 551/850/147 534/849/146 +f 551/850/147 533/853/99 540/851/148 +f 546/854/149 541/834/139 540/851/148 +f 531/829/134 546/854/149 532/831/136 +f 533/855/99 546/854/149 540/851/148 +f 532/831/136 546/854/149 533/856/99 +f 532/831/136 533/857/99 552/828/133 +f 552/828/133 533/858/99 539/827/129 +f 545/848/145 539/822/129 533/859/99 +f 533/860/99 534/849/146 545/848/145 +f 564/861/139 569/862/138 563/863/140 +f 565/864/148 570/865/137 564/861/139 +f 579/866/144 563/867/140 580/868/141 +f 565/869/148 579/866/144 578/870/147 +f 557/871/142 580/868/141 556/872/143 +f 558/873/146 579/866/144 557/871/142 +f 573/874/130 556/872/143 574/875/127 +f 567/876/126 574/875/127 568/877/128 +f 575/878/132 567/876/126 568/877/128 +f 569/862/138 561/879/134 562/880/135 +f 562/880/135 576/881/131 575/878/132 +f 562/880/135 575/878/132 555/882/95 +f 575/878/132 568/877/128 555/883/95 +f 574/875/127 555/884/95 568/877/128 +f 555/885/95 574/875/127 556/872/143 +f 555/886/95 556/872/143 580/868/141 +f 580/868/141 563/867/140 555/887/95 +f 569/862/138 555/888/95 563/863/140 +f 555/889/95 569/862/138 562/880/135 +f 561/879/134 571/890/149 560/891/136 +f 577/892/133 561/879/134 560/891/136 +f 567/876/126 577/892/133 566/893/129 +f 559/894/99 577/892/133 560/891/136 +f 577/892/133 559/895/99 566/893/129 +f 572/896/145 567/876/126 566/893/129 +f 557/871/142 572/896/145 558/873/146 +f 559/897/99 572/896/145 566/893/129 +f 558/873/146 572/896/145 559/898/99 +f 558/873/146 559/899/99 578/870/147 +f 578/870/147 559/900/99 565/869/148 +f 571/890/149 565/864/148 559/901/99 +f 559/902/99 560/891/136 571/890/149 +f 433/647/76 434/650/79 440/648/77 +f 434/650/79 435/687/101 441/651/80 +f 449/652/81 434/656/79 433/653/76 +f 448/655/83 435/686/101 434/656/79 +f 427/657/84 449/652/81 450/654/82 +f 448/655/83 449/652/81 427/657/84 +f 444/660/87 443/661/88 427/657/84 +f 443/661/88 444/660/87 438/662/89 +f 446/664/91 437/663/90 438/662/89 +f 439/649/78 440/648/77 431/666/93 +f 431/666/93 446/664/91 445/665/92 +f 440/648/77 441/651/80 430/676/96 +f 446/664/91 431/666/93 430/676/96 +f 437/663/90 446/664/91 447/677/97 +f 442/681/100 443/661/88 437/663/90 +f 427/657/84 443/661/88 442/681/100 +f 459/690/89 460/693/90 466/691/88 +f 460/693/90 461/730/98 467/694/100 +f 475/695/91 460/699/90 459/696/89 +f 474/698/97 461/729/98 460/699/90 +f 453/700/93 475/695/91 476/697/92 +f 474/698/97 475/695/91 453/700/93 +f 470/703/78 469/704/77 453/700/93 +f 469/704/77 470/703/78 464/705/76 +f 472/707/81 463/706/79 464/705/76 +f 465/692/87 466/691/88 457/709/84 +f 457/709/84 472/707/81 471/708/82 +f 466/691/88 467/694/100 456/719/86 +f 472/707/81 457/709/84 456/719/86 +f 463/706/79 472/707/81 473/720/83 +f 468/724/80 469/704/77 463/706/79 +f 453/700/93 469/704/77 468/724/80 +f 485/733/102 486/737/106 492/734/103 +f 487/736/105 493/762/121 492/734/103 +f 502/738/107 501/742/109 486/739/106 +f 500/741/108 487/773/105 486/739/106 +f 479/743/110 501/742/109 502/738/107 +f 500/741/108 501/742/109 479/743/110 +f 495/746/113 479/743/110 478/744/111 +f 489/748/115 495/746/113 496/747/114 +f 498/750/117 489/748/115 490/749/116 +f 491/735/104 492/734/103 483/752/119 +f 484/753/120 483/752/119 498/750/117 +f 483/752/119 492/734/103 493/762/121 +f 499/764/123 498/750/117 483/752/119 +f 489/748/115 498/750/117 499/764/123 +f 494/768/125 495/746/113 489/748/115 +f 480/745/112 479/743/110 495/746/113 +f 511/776/116 512/780/115 518/777/113 +f 513/779/124 519/805/125 518/777/113 +f 528/781/118 527/785/117 512/782/115 +f 526/784/123 513/816/124 512/782/115 +f 505/786/119 527/785/117 528/781/118 +f 526/784/123 527/785/117 505/786/119 +f 521/789/103 505/786/119 504/787/120 +f 515/791/106 521/789/103 522/790/104 +f 524/793/109 515/791/106 516/792/102 +f 517/778/114 518/777/113 509/795/110 +f 510/796/111 509/795/110 524/793/109 +f 509/795/110 518/777/113 519/805/125 +f 525/807/108 524/793/109 509/795/110 +f 515/791/106 524/793/109 525/807/108 +f 520/811/121 521/789/103 515/791/106 +f 506/788/122 505/786/119 521/789/103 +f 538/819/126 544/823/130 543/820/127 +f 539/822/129 545/848/145 544/823/130 +f 553/824/131 538/903/126 537/825/128 +f 539/827/129 538/903/126 553/824/131 +f 531/829/134 553/824/131 554/826/132 +f 532/831/136 552/828/133 553/824/131 +f 547/832/137 531/829/134 530/830/135 +f 541/834/139 547/832/137 548/833/138 +f 549/836/141 550/839/144 541/834/139 +f 543/820/127 544/823/130 535/837/142 +f 536/838/143 535/837/142 550/839/144 +f 535/837/142 544/823/130 545/848/145 +f 551/850/147 550/839/144 535/837/142 +f 541/834/139 550/839/144 551/850/147 +f 546/854/149 547/832/137 541/834/139 +f 531/829/134 547/832/137 546/854/149 +f 564/861/139 570/865/137 569/862/138 +f 565/864/148 571/890/149 570/865/137 +f 579/866/144 564/904/139 563/867/140 +f 565/869/148 564/904/139 579/866/144 +f 557/871/142 579/866/144 580/868/141 +f 558/873/146 578/870/147 579/866/144 +f 573/874/130 557/871/142 556/872/143 +f 567/876/126 573/874/130 574/875/127 +f 575/878/132 576/881/131 567/876/126 +f 569/862/138 570/865/137 561/879/134 +f 562/880/135 561/879/134 576/881/131 +f 561/879/134 570/865/137 571/890/149 +f 577/892/133 576/881/131 561/879/134 +f 567/876/126 576/881/131 577/892/133 +f 572/896/145 573/874/130 567/876/126 +f 557/871/142 573/874/130 572/896/145 +o Hammer +v 0.625000 0.375000 -2.125000 +v 0.625000 0.551777 -2.051777 +v 0.625000 0.625000 -1.875000 +v 0.625000 0.551777 -1.698223 +v 0.625000 0.375000 -1.625000 +v 0.625000 0.198223 -1.698223 +v 0.625000 0.125000 -1.875000 +v 0.625000 0.198223 -2.051777 +v 1.000000 0.375000 -2.125000 +v 1.000000 0.551777 -2.051777 +v 1.000000 0.625000 -1.875000 +v 1.000000 0.551777 -1.698223 +v 1.000000 0.375000 -1.625000 +v 1.000000 0.198223 -1.698223 +v 1.000000 0.125000 -1.875000 +v 1.000000 0.198223 -2.051777 +v 0.906250 0.500000 -1.750000 +v 0.968750 0.500000 -1.750000 +v 0.906250 0.500000 -2.000000 +v 0.968750 0.500000 -2.000000 +v 0.906250 1.375000 -1.750000 +v 0.968750 1.375000 -1.750000 +v 0.906250 1.375000 -2.000000 +v 0.968750 1.375000 -2.000000 +v 0.906250 1.500000 -2.000000 +v 0.906250 1.500000 -1.625000 +v 0.968750 1.500000 -1.625000 +v 0.968750 1.500000 -2.000000 +v -0.625000 0.375000 -2.125000 +v -0.625000 0.551777 -2.051777 +v -0.625000 0.625000 -1.875000 +v -0.625000 0.551777 -1.698223 +v -0.625000 0.375000 -1.625000 +v -0.625000 0.198223 -1.698223 +v -0.625000 0.125000 -1.875000 +v -0.625000 0.198223 -2.051777 +v -1.000000 0.375000 -2.125000 +v -1.000000 0.551777 -2.051777 +v -1.000000 0.625000 -1.875000 +v -1.000000 0.551777 -1.698223 +v -1.000000 0.375000 -1.625000 +v -1.000000 0.198223 -1.698223 +v -1.000000 0.125000 -1.875000 +v -1.000000 0.198223 -2.051777 +v -0.906250 0.500000 -1.750000 +v -0.968750 0.500000 -1.750000 +v -0.906250 0.500000 -2.000000 +v -0.968750 0.500000 -2.000000 +v -0.906250 1.375000 -1.750000 +v -0.968750 1.375000 -1.750000 +v -0.906250 1.375000 -2.000000 +v -0.968750 1.375000 -2.000000 +v -0.906250 1.500000 -2.000000 +v -0.906250 1.500000 -1.625000 +v -0.968750 1.500000 -1.625000 +v -0.968750 1.500000 -2.000000 +vt 0.735075 0.187432 +vt 0.727628 0.156250 +vt 0.735075 0.125068 +vt 0.679105 0.421875 +vt 0.690298 0.437500 +vt 0.679105 0.437500 +vt 0.682836 0.406250 +vt 0.690298 0.421875 +vt 0.690298 0.296875 +vt 0.682836 0.296875 +vt 0.701493 0.296875 +vt 0.694030 0.406250 +vt 0.694030 0.296875 +vt 0.690298 0.406250 +vt 0.679105 0.406250 +vt 0.679105 0.296875 +vt 0.701493 0.406250 +vt 0.694030 0.421875 +vt 0.675373 0.421875 +vt 0.675373 0.437500 +vt 0.729809 0.178299 +vt 0.735075 0.187432 +vt 0.735075 0.125068 +vt 0.690298 0.437500 +vt 0.679105 0.421875 +vt 0.679105 0.437500 +vt 0.682836 0.406250 +vt 0.690298 0.421875 +vt 0.690298 0.406250 +vt 0.690298 0.296875 +vt 0.682836 0.296875 +vt 0.694030 0.406250 +vt 0.701493 0.296875 +vt 0.694030 0.296875 +vt 0.679105 0.406250 +vt 0.679105 0.296875 +vt 0.694030 0.421875 +vt 0.701493 0.406250 +vt 0.675373 0.421875 +vt 0.675373 0.437500 +vt 0.742521 0.156250 +vt 0.740340 0.178299 +vt 0.729809 0.178299 +vt 0.729809 0.134201 +vt 0.740340 0.134201 +vt 0.705224 0.421875 +vt 0.740340 0.178299 +vt 0.742521 0.156250 +vt 0.740340 0.134201 +vt 0.729809 0.134201 +vt 0.727628 0.156250 +vt 0.705224 0.421875 +vt 0.727612 0.140625 +vt 0.716418 0.125000 +vt 0.727612 0.125000 +vt 0.727612 0.234375 +vt 0.716418 0.218750 +vt 0.727612 0.218750 +vt 0.727612 0.203125 +vt 0.716418 0.187500 +vt 0.727612 0.187500 +vt 0.727612 0.171875 +vt 0.716418 0.156250 +vt 0.727612 0.156250 +vt 0.716418 0.140625 +vt 0.727612 0.250000 +vt 0.716418 0.234375 +vt 0.716418 0.203125 +vt 0.716418 0.171875 +vt 0.716418 0.125000 +vt 0.727612 0.140625 +vt 0.727612 0.125000 +vt 0.716418 0.218750 +vt 0.727612 0.234375 +vt 0.727612 0.218750 +vt 0.716418 0.187500 +vt 0.727612 0.203125 +vt 0.727612 0.187500 +vt 0.716418 0.156250 +vt 0.727612 0.171875 +vt 0.727612 0.156250 +vt 0.716418 0.140625 +vt 0.716418 0.234375 +vt 0.727612 0.250000 +vt 0.716418 0.203125 +vt 0.716418 0.171875 +vt 0.716418 0.250000 +vt 0.716418 0.250000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +s off +f 591/905/150 593/906/150 595/907/150 +f 607/908/151 605/909/151 606/910/151 +f 602/911/150 608/912/150 607/908/150 +f 600/913/150 602/911/150 598/914/150 +f 597/915/152 603/916/152 599/917/152 +f 599/917/153 604/918/153 600/913/153 +f 598/914/154 601/919/154 597/920/154 +f 601/921/152 605/922/152 603/916/152 +f 603/916/153 608/912/153 604/918/153 +f 602/923/155 606/910/155 601/924/155 +f 620/925/152 619/926/152 623/927/152 +f 633/928/151 635/929/151 634/930/151 +f 630/931/152 636/932/152 632/933/152 +f 630/931/152 628/934/152 626/935/152 +f 631/936/150 625/937/150 627/938/150 +f 632/933/153 627/938/153 628/934/153 +f 629/939/154 626/935/154 625/940/154 +f 633/941/150 629/942/150 631/936/150 +f 636/932/153 631/936/153 632/933/153 +f 634/930/155 630/943/155 629/944/155 +f 589/945/150 590/946/150 591/905/150 +f 591/905/150 592/947/150 593/906/150 +f 593/906/150 594/948/150 595/907/150 +f 595/907/150 596/949/150 589/945/150 +f 589/945/150 591/905/150 595/907/150 +f 607/908/151 608/912/151 605/909/151 +f 602/911/150 604/918/150 608/912/150 +f 600/913/150 604/918/150 602/911/150 +f 597/915/152 601/921/152 603/916/152 +f 599/917/153 603/916/153 604/918/153 +f 598/914/154 602/911/154 601/919/154 +f 601/921/152 606/950/152 605/922/152 +f 603/916/153 605/922/153 608/912/153 +f 602/923/155 607/908/155 606/910/155 +f 619/926/152 618/951/152 623/927/152 +f 618/951/152 617/952/152 623/927/152 +f 617/952/152 624/953/152 623/927/152 +f 623/927/152 622/954/152 621/955/152 +f 621/955/152 620/925/152 623/927/152 +f 633/928/151 636/932/151 635/929/151 +f 630/931/152 635/929/152 636/932/152 +f 630/931/152 632/933/152 628/934/152 +f 631/936/150 629/942/150 625/937/150 +f 632/933/153 631/936/153 627/938/153 +f 629/939/154 630/931/154 626/935/154 +f 633/941/150 634/956/150 629/942/150 +f 636/932/153 633/941/153 631/936/153 +f 634/930/155 635/929/155 630/943/155 +s 1 +f 588/957/156 595/958/157 587/959/157 +f 586/960/155 593/961/154 585/962/154 +f 584/963/158 591/964/151 583/965/151 +f 582/966/159 589/967/153 581/968/153 +f 581/968/153 596/969/156 588/957/156 +f 587/970/157 594/971/155 586/960/155 +f 585/962/154 592/972/158 584/963/158 +f 583/965/151 590/973/159 582/966/159 +f 623/974/157 616/975/156 615/976/157 +f 621/977/154 614/978/155 613/979/154 +f 619/980/151 612/981/158 611/982/151 +f 617/983/153 610/984/159 609/985/153 +f 624/986/156 609/985/153 616/975/156 +f 622/987/155 615/988/157 614/978/155 +f 620/989/158 613/979/154 612/981/158 +f 618/990/159 611/982/151 610/984/159 +f 588/957/156 596/969/156 595/958/157 +f 586/960/155 594/971/155 593/961/154 +f 584/963/158 592/972/158 591/964/151 +f 582/966/159 590/973/159 589/967/153 +f 581/968/153 589/967/153 596/969/156 +f 587/970/157 595/991/157 594/971/155 +f 585/962/154 593/961/154 592/972/158 +f 583/965/151 591/964/151 590/973/159 +f 623/974/157 624/986/156 616/975/156 +f 621/977/154 622/987/155 614/978/155 +f 619/980/151 620/989/158 612/981/158 +f 617/983/153 618/990/159 610/984/159 +f 624/986/156 617/983/153 609/985/153 +f 622/987/155 623/992/157 615/988/157 +f 620/989/158 621/977/154 613/979/154 +f 618/990/159 619/980/151 611/982/151 +o Trigger +v -0.125000 -0.875000 -1.250000 +v 0.125000 -0.875000 -1.250000 +v -0.125000 -0.875000 -1.500000 +v 0.125000 -0.875000 -1.500000 +v -0.125000 -1.250000 -1.250000 +v 0.125000 -1.250000 -1.250000 +v -0.125000 -1.250000 -1.500000 +v 0.125000 -1.250000 -1.500000 +v -0.125000 -2.000000 -1.750000 +v 0.125000 -2.000000 -1.750000 +v 0.125000 -1.500000 -1.750000 +v -0.125000 -1.500000 -1.750000 +v 0.125000 -2.000000 -1.000000 +v -0.125000 -2.000000 -1.000000 +v 0.125000 -1.500000 -1.000000 +v -0.125000 -1.500000 -1.000000 +v -0.125000 -1.500000 -0.875000 +v -0.125000 -1.250000 -1.125000 +v 0.125000 -1.250000 -1.125000 +v 0.125000 -1.500000 -0.875000 +v -0.125000 -1.250000 -1.625000 +v -0.125000 -1.500000 -1.875000 +v 0.125000 -1.500000 -1.875000 +v 0.125000 -1.250000 -1.625000 +v -0.125000 -2.250000 -1.125000 +v -0.125000 -2.000000 -0.875000 +v 0.125000 -2.000000 -0.875000 +v 0.125000 -2.250000 -1.125000 +v 0.125000 -2.250000 -1.625000 +v 0.125000 -2.000000 -1.875000 +v -0.125000 -2.000000 -1.875000 +v -0.125000 -2.250000 -1.625000 +v -0.125000 -1.375000 -1.125000 +v 0.125000 -1.375000 -1.125000 +v -0.125000 -1.375000 -1.625000 +v 0.125000 -1.375000 -1.625000 +v -0.125000 -2.125000 -1.125000 +v 0.125000 -2.125000 -1.125000 +v 0.125000 -2.125000 -1.625000 +v -0.125000 -2.125000 -1.625000 +vt 0.119403 0.828125 +vt 0.126866 0.781250 +vt 0.126866 0.828125 +vt 0.104478 0.828125 +vt 0.111940 0.781250 +vt 0.111940 0.828125 +vt 0.119403 0.781250 +vt 0.134328 0.781250 +vt 0.134328 0.828125 +vt 0.041045 0.859375 +vt 0.026119 0.875000 +vt 0.026119 0.859375 +vt 0.078358 0.828125 +vt 0.093284 0.812500 +vt 0.093284 0.828125 +vt 0.026119 0.828125 +vt 0.041045 0.812500 +vt 0.041045 0.828125 +vt 0.093284 0.859375 +vt 0.078358 0.875000 +vt 0.078358 0.859375 +vt 0.067164 0.859375 +vt 0.052239 0.875000 +vt 0.052239 0.859375 +vt 0.052239 0.828125 +vt 0.067164 0.812500 +vt 0.067164 0.828125 +vt 0.000000 0.828125 +vt 0.014925 0.812500 +vt 0.014925 0.828125 +vt 0.014925 0.859375 +vt 0.000000 0.875000 +vt 0.000000 0.859375 +vt 0.018657 0.875000 +vt 0.022388 0.875000 +vt 0.022388 0.812500 +vt 0.044776 0.875000 +vt 0.048507 0.812500 +vt 0.044776 0.812500 +vt 0.070896 0.875000 +vt 0.074627 0.875000 +vt 0.074627 0.812500 +vt 0.104478 0.859375 +vt 0.097015 0.875000 +vt 0.100746 0.812500 +vt 0.097015 0.812500 +vt 0.104478 0.781250 +vt 0.041045 0.875000 +vt 0.078358 0.812500 +vt 0.026119 0.812500 +vt 0.093284 0.875000 +vt 0.067164 0.875000 +vt 0.052239 0.812500 +vt 0.000000 0.812500 +vt 0.014925 0.875000 +vt 0.018657 0.812500 +vt 0.048507 0.875000 +vt 0.070896 0.812500 +vt 0.100746 0.875000 +vt 0.104478 0.828125 +vt 0.014925 0.781250 +vt 0.000000 0.781250 +vt 0.022388 0.781250 +vt 0.018657 0.781250 +vt 0.026119 0.781250 +vt 0.044776 0.781250 +vt 0.052239 0.781250 +vt 0.070896 0.781250 +vt 0.093284 0.781250 +vt 0.078358 0.781250 +vt 0.100746 0.781250 +vt 0.041045 0.781250 +vt 0.048507 0.781250 +vt 0.067164 0.781250 +vt 0.074627 0.781250 +vt 0.097015 0.781250 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 0.3827 0.9239 +vn 0.0000 -0.3827 0.9239 +s off +f 640/993/160 643/994/160 639/995/160 +f 637/996/161 642/997/161 638/998/161 +f 638/998/162 644/999/162 640/993/162 +f 639/995/163 641/1000/163 637/1001/163 +f 653/1002/163 650/1003/163 662/1004/163 +f 659/1005/162 646/1006/162 666/1007/162 +f 663/1008/162 651/1009/162 656/1010/162 +f 667/1011/163 648/1012/163 658/1013/163 +f 657/1014/163 669/1015/163 654/1016/163 +f 655/1017/162 672/1018/162 660/1019/162 +f 665/1020/162 674/1021/162 664/1022/162 +f 661/1023/163 676/1024/163 668/1025/163 +f 673/1026/163 662/1004/163 650/1027/163 +f 664/1022/162 649/1028/162 663/1008/162 +f 654/1016/163 652/1029/163 653/1002/163 +f 670/1030/162 656/1010/162 651/1031/162 +f 671/1032/163 658/1013/163 648/1033/163 +f 660/1019/162 647/1034/162 659/1005/162 +f 668/1035/163 645/1036/163 667/1011/163 +f 675/1037/162 666/1007/162 646/1038/162 +f 640/993/160 644/999/160 643/994/160 +f 637/996/161 641/1039/161 642/997/161 +f 638/998/162 642/997/162 644/999/162 +f 639/995/163 643/994/163 641/1000/163 +f 653/1002/163 652/1040/163 650/1003/163 +f 659/1005/162 647/1041/162 646/1006/162 +f 663/1008/162 649/1042/162 651/1009/162 +f 667/1011/163 645/1043/163 648/1012/163 +f 657/1014/163 671/1044/163 669/1015/163 +f 655/1017/162 670/1045/162 672/1018/162 +f 665/1020/162 675/1046/162 674/1021/162 +f 661/1023/163 673/1047/163 676/1024/163 +f 673/1026/163 661/1023/163 662/1004/163 +f 664/1022/162 674/1048/162 649/1028/162 +f 654/1016/163 669/1049/163 652/1029/163 +f 670/1030/162 655/1017/162 656/1010/162 +f 671/1032/163 657/1014/163 658/1013/163 +f 660/1019/162 672/1050/162 647/1034/162 +f 668/1035/163 676/1051/163 645/1036/163 +f 675/1037/162 665/1052/162 666/1007/162 +s 1 +f 660/1019/164 654/1016/165 655/1017/165 +f 659/1005/166 667/1011/167 658/1013/166 +f 661/1023/168 665/1020/169 664/1022/168 +f 656/1010/170 654/1016/165 653/1002/170 +f 658/1013/166 660/1019/164 659/1005/166 +f 664/1022/168 662/1004/171 661/1023/168 +f 668/1035/169 666/1007/167 665/1052/169 +f 653/1002/170 663/1008/171 656/1010/170 +f 673/1053/164 675/1046/165 676/1054/165 +f 650/1055/166 674/1048/164 673/1056/164 +f 650/1057/166 651/1009/167 649/1042/166 +f 652/1058/167 670/1030/169 651/1031/167 +f 669/1059/169 672/1018/168 670/1045/169 +f 671/1060/168 647/1034/171 672/1050/168 +f 645/1061/170 647/1041/171 648/1062/171 +f 646/1038/170 676/1063/165 675/1037/165 +f 660/1019/164 657/1014/164 654/1016/165 +f 659/1005/166 666/1007/167 667/1011/167 +f 661/1023/168 668/1025/169 665/1020/169 +f 656/1010/170 655/1017/165 654/1016/165 +f 658/1013/166 657/1014/164 660/1019/164 +f 664/1022/168 663/1008/171 662/1004/171 +f 668/1035/169 667/1011/167 666/1007/167 +f 653/1002/170 662/1004/171 663/1008/171 +f 673/1053/164 674/1021/164 675/1046/165 +f 650/1055/166 649/1028/166 674/1048/164 +f 650/1057/166 652/1064/167 651/1009/167 +f 652/1058/167 669/1065/169 670/1030/169 +f 669/1059/169 671/1066/168 672/1018/168 +f 671/1060/168 648/1067/171 647/1034/171 +f 645/1061/170 646/1006/170 647/1041/171 +f 646/1038/170 645/1068/170 676/1063/165 +o Grip +v 0.000000 1.000000 0.000000 +v -0.500000 0.866025 0.000000 +v -0.866025 0.500000 0.000000 +v -1.000000 -0.000000 -0.000000 +v -0.866025 -0.500000 -0.000000 +v -0.500000 -0.866025 -0.000000 +v 0.000000 -1.000000 -0.000000 +v 0.500000 -0.866026 -0.000000 +v 0.866025 -0.500000 -0.000000 +v 1.000000 -0.000000 -0.000000 +v 0.866026 0.499999 0.000000 +v 0.500000 0.866025 0.000000 +v -0.500000 0.866025 -0.500000 +v 0.000000 1.000000 -0.500000 +v -0.866025 0.500000 -0.500000 +v -1.000000 -0.000000 -0.500000 +v -0.866025 -0.500000 -0.500000 +v -0.500000 -0.866025 -0.500000 +v 0.000000 -1.000000 -0.500000 +v 0.500000 -0.866026 -0.500000 +v 0.866025 -0.500000 -0.500000 +v 1.000000 -0.000000 -0.500000 +v 0.866026 0.500000 -0.500000 +v 0.500000 0.866025 -0.500000 +v 0.875000 -0.875000 -0.125000 +v 0.875000 0.125000 -0.125000 +v 0.875000 -0.875000 -0.375000 +v 0.875000 0.125000 -0.375000 +v 1.125000 -0.875000 -0.125000 +v 1.125000 -0.125000 -0.125000 +v 1.125000 -0.875000 -0.375000 +v 1.125000 -0.125000 -0.375000 +v -1.125000 -0.125000 -0.125000 +v 0.875000 -1.125000 -0.125000 +v -1.125000 -0.875000 -0.125000 +v 1.125000 -1.125000 -0.125000 +v 0.875000 -0.875000 6.125000 +v 1.125000 -0.875000 6.125000 +v 0.875000 -1.125000 6.125000 +v 1.125000 -1.125000 6.125000 +v 0.875000 -0.875000 6.375000 +v 1.125000 -0.875000 6.375000 +v -1.125000 -0.125000 -0.375000 +v -1.125000 -0.875000 -0.375000 +v 0.875000 0.625000 6.125000 +v 1.125000 0.625000 6.125000 +v 0.875000 0.625000 6.375000 +v 1.125000 0.625000 6.375000 +v 0.625000 0.875000 6.125000 +v 0.625000 0.875000 6.375000 +v -0.625000 0.875000 6.125000 +v -0.625000 0.875000 6.375000 +v 0.625000 1.125000 6.125000 +v 0.625000 1.125000 6.375000 +v -0.625000 1.125000 6.125000 +v -0.625000 1.125000 6.375000 +v -0.875000 -0.875000 -0.125000 +v -0.875000 0.125000 -0.125000 +v -0.875000 -0.875000 -0.375000 +v -0.875000 0.125000 -0.375000 +v -1.125000 -1.125000 -0.125000 +v -0.875000 -1.125000 -0.125000 +v -1.125000 -0.875000 6.125000 +v -0.875000 -0.875000 6.125000 +v -1.125000 -1.125000 6.125000 +v -0.875000 -1.125000 6.125000 +v -1.125000 -0.875000 6.375000 +v -0.875000 -0.875000 6.375000 +v -1.125000 0.625000 6.125000 +v -0.875000 0.625000 6.125000 +v -1.125000 0.625000 6.375000 +v -0.875000 0.625000 6.375000 +v -0.875000 -0.375000 -0.500000 +v 0.875000 -0.375000 -0.500000 +v -0.875000 0.375000 -0.500000 +v 0.875000 0.375000 -0.500000 +v -0.375000 0.875000 -0.500000 +v -0.375000 -0.875000 -0.500000 +v 0.375000 0.875000 -0.500000 +v 0.375000 -0.875000 -0.500000 +v -0.875000 -0.375000 -3.000000 +v 0.875000 -0.375000 -3.000000 +v -0.875000 0.375000 -3.000000 +v 0.875000 0.375000 -3.000000 +v -0.375000 0.875000 -3.000000 +v -0.375000 -0.875000 -3.000000 +v 0.375000 0.875000 -3.000000 +v 0.375000 -0.875000 -3.000000 +v -0.875000 -1.625000 -4.875000 +v 0.875000 -1.625000 -4.875000 +v -0.875000 -0.875000 -5.250000 +v 0.875000 -0.875000 -5.250000 +v -0.375000 -0.375000 -5.500000 +v -0.375000 -2.125000 -4.625000 +v 0.375000 -0.375000 -5.500000 +v 0.375000 -2.125000 -4.625000 +v -0.875000 -2.875000 -5.750000 +v 0.875000 -2.875000 -5.750000 +v -0.875000 -2.125000 -6.500000 +v 0.875000 -2.125000 -6.500000 +v -0.375000 -1.625000 -7.000000 +v -0.375000 -3.375000 -5.250000 +v 0.375000 -1.625000 -7.000000 +v 0.375000 -3.375000 -5.250000 +v 0.875000 0.250000 -0.500000 +v 1.000000 0.250000 -0.500000 +v 0.875000 0.250000 -1.000000 +v 1.000000 0.250000 -1.000000 +v 0.875000 0.375000 -1.000000 +v 0.875000 0.375000 -0.500000 +v 1.000000 0.375000 -0.500000 +v 1.000000 0.375000 -1.000000 +v -0.875000 0.250000 -0.500000 +v -1.000000 0.250000 -0.500000 +v -0.875000 0.250000 -1.000000 +v -1.000000 0.250000 -1.000000 +v -0.875000 0.375000 -1.000000 +v -0.875000 0.375000 -0.500000 +v -1.000000 0.375000 -0.500000 +v -1.000000 0.375000 -1.000000 +v -0.187500 0.875000 -0.562500 +v 0.187500 0.875000 -0.562500 +v -0.187500 0.875000 -0.937500 +v 0.187500 0.875000 -0.937500 +v -0.187500 1.375000 -0.812500 +v -0.187500 1.375000 -0.687500 +v 0.187500 1.375000 -0.687500 +v 0.187500 1.375000 -0.812500 +v -0.062500 1.375000 -0.687500 +v 0.062500 1.375000 -0.687500 +v 0.062500 1.375000 -0.812500 +v -0.062500 1.375000 -0.812500 +v -0.062500 1.125000 -0.625000 +v 0.062500 1.125000 -0.625000 +v 0.062500 1.125000 -0.875000 +v -0.062500 1.125000 -0.875000 +vt 0.276412 0.187560 +vt 0.328065 0.187560 +vt 0.302239 0.374880 +vt 0.276412 0.437560 +vt 0.302239 0.375120 +vt 0.328065 0.562440 +vt -0.000000 0.125000 +vt 0.029851 0.093750 +vt 0.029851 0.125000 +vt 0.007463 0.062500 +vt 0.029851 0.062500 +vt 0.029851 0.031250 +vt 0.007463 0.031250 +vt 0.029851 0.000000 +vt 0.037313 0.031250 +vt -0.000000 0.062500 +vt 0.619403 0.031250 +vt 0.597015 0.062500 +vt 0.597015 0.031250 +vt 0.037313 0.093750 +vt 0.223881 0.125000 +vt 0.037313 0.125000 +vt 0.619403 0.062500 +vt 0.597015 0.093750 +vt 0.037313 0.125000 +vt 0.231343 0.000000 +vt 0.276119 0.031250 +vt 0.231343 0.031250 +vt 0.037313 0.031250 +vt 0.223881 0.062500 +vt 0.037313 0.062500 +vt 0.037313 -0.000000 +vt 0.223881 0.031250 +vt 0.223881 0.093750 +vt 0.231343 0.125000 +vt 0.223881 0.125000 +vt 0.231343 0.093750 +vt 0.626866 0.093750 +vt 0.597015 0.125000 +vt 0.223881 0.031250 +vt 0.231343 0.062500 +vt 0.279851 0.093750 +vt 0.291045 0.125000 +vt 0.279851 0.125000 +vt 0.276119 0.125000 +vt 0.276119 0.093750 +vt 0.276119 0.062500 +vt 0.294776 0.093750 +vt 0.332090 0.125000 +vt 0.294776 0.125000 +vt 0.332090 0.062500 +vt 0.332090 0.093750 +vt 0.332090 0.000000 +vt 0.294776 0.031250 +vt 0.294776 0.000000 +vt 0.332090 0.031250 +vt 0.291045 0.000000 +vt 0.279851 0.000000 +vt 0.294776 0.062500 +vt 0.597015 0.000000 +vt 0.589552 0.125000 +vt 0.626866 0.031250 +vt 0.626866 0.062500 +vt 0.589552 0.062500 +vt 0.402985 0.031250 +vt 0.589552 0.031250 +vt 0.589552 0.031250 +vt 0.395522 0.031250 +vt 0.350746 0.000000 +vt 0.395522 0.000000 +vt 0.589552 0.125000 +vt 0.402985 0.093750 +vt 0.589552 0.093750 +vt 0.402985 0.000000 +vt 0.589552 0.000000 +vt 0.402985 0.062500 +vt 0.402985 0.031250 +vt 0.395522 0.062500 +vt 0.402985 0.125000 +vt 0.395522 0.125000 +vt 0.395522 0.093750 +vt 0.350746 0.031250 +vt 0.350746 0.062500 +vt 0.350746 0.093750 +vt 0.335821 0.093750 +vt 0.347015 0.125000 +vt 0.335821 0.125000 +vt 0.347015 0.000000 +vt 0.335821 0.000000 +vt 0.347015 0.093750 +vt 0.570895 0.828125 +vt 0.548507 0.671875 +vt 0.570895 0.609375 +vt 0.656716 0.562500 +vt 0.641791 0.578125 +vt 0.641791 0.562500 +vt 0.641791 0.593750 +vt 0.656716 0.609375 +vt 0.641791 0.609375 +vt 0.660448 0.578125 +vt 0.656716 0.593750 +vt 0.656716 0.578125 +vt 0.638060 0.593750 +vt 0.638060 0.578125 +vt 0.641791 0.593750 +vt 0.656716 0.609375 +vt 0.641791 0.609375 +vt 0.656716 0.562500 +vt 0.641791 0.578125 +vt 0.641791 0.562500 +vt 0.656716 0.578125 +vt 0.660448 0.593750 +vt 0.656716 0.593750 +vt 0.638060 0.578125 +vt 0.638060 0.593750 +vt 0.690298 0.203125 +vt 0.694030 0.187500 +vt 0.694030 0.203125 +vt 0.675373 0.171875 +vt 0.675373 0.218750 +vt 0.716418 0.218750 +vt 0.701493 0.187500 +vt 0.716418 0.171875 +vt 0.697761 0.203125 +vt 0.701493 0.203125 +vt 0.686567 0.281250 +vt 0.694030 0.296875 +vt 0.686567 0.296875 +vt 0.705224 0.296875 +vt 0.697761 0.265625 +vt 0.705224 0.281250 +vt 0.694030 0.234375 +vt 0.697761 0.234375 +vt 0.701493 0.265625 +vt 0.697761 0.156250 +vt 0.697761 0.187500 +vt 0.694030 0.156250 +vt 0.690298 0.187500 +vt 0.690298 0.125000 +vt 0.701493 0.125000 +vt 0.697761 0.296875 +vt 0.694030 0.265625 +vt 0.600746 0.609375 +vt 0.623134 0.765625 +vt 0.600746 0.828125 +vt 0.287328 0.358149 +vt 0.276412 0.312440 +vt 0.272417 0.250000 +vt 0.287328 0.141851 +vt 0.302239 0.125120 +vt 0.317150 0.141851 +vt 0.332061 0.250000 +vt 0.328065 0.312440 +vt 0.317150 0.358149 +vt 0.317150 0.608149 +vt 0.302239 0.624880 +vt 0.287328 0.608149 +vt 0.276412 0.562440 +vt 0.272417 0.500000 +vt 0.287328 0.391851 +vt 0.317150 0.391851 +vt 0.328065 0.437560 +vt 0.332061 0.500000 +vt -0.000000 0.093750 +vt -0.000000 0.000000 +vt -0.000000 0.031250 +vt 0.276119 0.000000 +vt 0.223881 0.000000 +vt 0.626866 0.125000 +vt 0.291045 0.093750 +vt 0.626866 0.000000 +vt 0.402985 0.125000 +vt 0.350746 0.125000 +vt 0.548507 0.765625 +vt 0.660448 0.593750 +vt 0.660448 0.578125 +vt 0.690298 0.265625 +vt 0.623134 0.671875 +vt 0.257463 0.625000 +vt 0.272388 0.687500 +vt 0.257463 0.687500 +vt 0.257463 0.312500 +vt 0.272388 0.375000 +vt 0.257463 0.375000 +vt 0.257463 0.125000 +vt 0.272388 0.187500 +vt 0.257463 0.187500 +vt 0.272388 0.750000 +vt 0.257463 0.750000 +vt 0.272388 0.437500 +vt 0.257463 0.437500 +vt 0.257463 0.500000 +vt 0.272388 0.562500 +vt 0.257463 0.562500 +vt 0.272388 0.250000 +vt 0.257463 0.250000 +vt 0.272388 0.812500 +vt 0.257463 0.812500 +vt 0.272388 0.500000 +vt 0.272388 0.625000 +vt 0.272388 0.312500 +vt 0.272388 0.875000 +vt 0.257463 0.875000 +vt 0.406716 0.406250 +vt 0.332090 0.500000 +vt 0.332090 0.406250 +vt 0.406716 0.125000 +vt 0.332090 0.218750 +vt 0.332090 0.125000 +vt 0.406716 0.500000 +vt 0.332090 0.593750 +vt 0.406716 0.593750 +vt 0.332090 0.687500 +vt 0.406716 0.781250 +vt 0.332090 0.875000 +vt 0.332090 0.781250 +vt 0.332090 0.312500 +vt 0.406716 0.218750 +vt 0.406716 0.609375 +vt 0.414179 0.515625 +vt 0.488806 0.609375 +vt 0.406716 0.703125 +vt 0.488806 0.703125 +vt 0.421642 0.906250 +vt 0.488806 0.796875 +vt 0.488806 0.906250 +vt 0.421642 0.406250 +vt 0.488806 0.312500 +vt 0.488806 0.406250 +vt 0.414179 0.796875 +vt 0.429104 0.312500 +vt 0.488806 0.218750 +vt 0.488806 0.515625 +vt 0.429104 0.218750 +vt 0.421642 0.125000 +vt 0.488806 0.671875 +vt 0.488806 0.765625 +vt 0.496269 0.562500 +vt 0.503731 0.437500 +vt 0.548507 0.578125 +vt 0.507463 0.328125 +vt 0.548507 0.328125 +vt 0.507463 0.234375 +vt 0.503731 0.125000 +vt 0.548507 0.234375 +vt 0.503731 1.000000 +vt 0.548507 0.875000 +vt 0.548507 1.000000 +vt 0.496269 0.875000 +vt 0.488806 0.125000 +vt 0.548507 0.437500 +vt 0.548507 0.125000 +vt 0.272388 0.125000 +vt 0.406716 0.687500 +vt 0.406716 0.875000 +vt 0.406716 0.312500 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 0.2425 0.9701 +vn 0.0000 0.2425 -0.9701 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.9474 -0.3073 0.0890 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9474 -0.3073 0.0890 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.8995 0.4220 -0.1137 +vn 0.3827 0.9239 0.0000 +vn 0.3595 0.9099 -0.2070 +vn -0.3827 0.9239 0.0000 +vn -0.8995 0.4220 -0.1137 +vn -0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3933 -0.8620 0.3198 +vn 0.3916 0.7677 -0.5072 +vn -0.3595 0.9099 -0.2070 +vn -0.3916 0.7677 -0.5072 +vn -0.9259 0.3078 -0.2189 +vn -0.9481 -0.2244 0.2254 +vn 0.3988 -0.5746 0.7147 +vn 0.9481 -0.2244 0.2254 +vn 0.3933 -0.8620 0.3198 +vn -0.3988 -0.5746 0.7147 +vn 0.9259 0.3078 -0.2189 +vn -0.4348 0.6780 -0.5927 +vn 0.4348 0.6780 -0.5927 +vn 0.9530 0.2142 -0.2142 +vn 0.3909 -0.4393 0.8089 +vn -0.3909 -0.4393 0.8089 +vn -0.9530 0.2142 -0.2142 +vn -0.9414 -0.1935 0.2764 +vn 0.9414 -0.1935 0.2764 +s off +f 681/1069/172 685/1070/172 677/1071/172 +f 697/1072/173 695/1073/173 691/1074/173 +f 702/1075/174 703/1076/174 701/1077/174 +f 703/1076/173 708/1078/173 707/1079/173 +f 708/1078/175 705/1080/175 707/1079/175 +f 706/1081/172 701/1082/172 705/1080/172 +f 707/1079/175 705/1080/175 712/1083/175 +f 704/1084/176 706/1081/176 708/1078/176 +f 709/1085/174 720/1086/174 711/1087/174 +f 710/1088/174 713/1089/174 701/1090/174 +f 719/1091/173 735/1092/173 720/1086/173 +f 701/1077/174 703/1076/174 710/1093/174 +f 713/1094/173 722/1095/173 714/1096/173 +f 705/1097/175 716/1098/175 712/1099/175 +f 701/1100/177 714/1101/177 705/1097/177 +f 712/1099/178 715/1102/178 710/1088/178 +f 707/1079/179 710/1088/179 703/1076/179 +f 713/1103/174 715/1104/174 717/1105/174 +f 736/1106/175 733/1107/175 735/1092/175 +f 716/1108/175 714/1096/175 718/1109/175 +f 723/1110/180 725/1111/180 721/1112/180 +f 717/1105/174 721/1113/174 713/1103/174 +f 718/1109/172 723/1114/172 717/1105/172 +f 714/1096/175 724/1115/175 718/1109/175 +f 726/1116/178 727/1117/178 725/1118/178 +f 726/1116/172 732/1119/172 728/1120/172 +f 727/1121/173 729/1122/173 725/1123/173 +f 732/1119/177 729/1122/177 731/1124/177 +f 725/1125/173 722/1095/173 721/1126/173 +f 730/1127/172 723/1110/172 724/1115/172 +f 722/1095/176 730/1127/176 724/1115/176 +f 716/1098/181 717/1105/181 715/1102/181 +f 733/1128/172 709/1085/172 711/1087/172 +f 735/1092/175 733/1107/175 738/1129/175 +f 719/1091/182 734/1130/182 736/1131/182 +f 737/1132/174 739/1133/174 711/1134/174 +f 711/1087/174 720/1086/174 737/1135/174 +f 739/1136/173 746/1137/173 740/1138/173 +f 733/1139/175 742/1140/175 738/1141/175 +f 711/1134/177 740/1142/177 733/1143/177 +f 738/1141/178 741/1144/178 737/1132/178 +f 735/1092/179 737/1132/179 720/1086/179 +f 739/1136/174 741/1145/174 743/1146/174 +f 742/1147/175 740/1148/175 744/1149/175 +f 743/1146/174 745/1150/174 739/1136/174 +f 744/1149/172 747/1151/172 743/1146/172 +f 740/1148/175 748/1152/175 744/1149/175 +f 742/1140/181 743/1146/181 741/1144/181 +f 728/1153/183 746/1154/183 727/1155/183 +f 746/1156/173 731/1124/173 727/1157/173 +f 731/1124/182 747/1151/182 732/1119/182 +f 732/1119/172 748/1158/172 728/1153/172 +f 775/1159/179 779/1160/179 776/1161/179 +f 783/1162/178 782/1163/178 781/1164/178 +f 787/1165/177 785/1166/177 786/1167/177 +f 783/1168/173 788/1169/173 784/1170/173 +f 782/1163/172 786/1171/172 781/1172/172 +f 784/1170/175 787/1165/175 782/1163/175 +f 790/1173/178 791/1174/178 789/1175/178 +f 793/1176/177 795/1177/177 794/1178/177 +f 796/1179/173 791/1180/173 792/1181/173 +f 794/1182/172 790/1173/172 789/1183/172 +f 795/1177/174 792/1181/174 790/1173/174 +f 803/1184/177 807/1185/177 806/1186/177 +f 800/1187/175 803/1184/175 798/1188/175 +f 797/1189/174 801/1190/174 799/1191/174 +f 805/1192/177 801/1190/177 802/1193/177 +f 807/1194/174 810/1195/174 806/1196/174 +f 805/1197/175 812/1198/175 808/1199/175 +f 810/1200/184 803/1184/184 806/1186/184 +f 809/1201/184 802/1193/184 797/1202/184 +f 812/1203/185 801/1190/185 808/1204/185 +f 811/1205/185 804/1206/185 800/1207/185 +f 797/1202/184 810/1200/184 809/1201/184 +f 799/1208/185 811/1205/185 800/1207/185 +f 809/1209/177 811/1210/177 812/1198/177 +f 774/1211/179 775/1159/179 776/1161/179 +f 774/1211/179 778/1212/179 773/1213/179 +f 677/1071/172 678/1214/172 679/1215/172 +f 679/1215/172 680/1216/172 677/1071/172 +f 680/1216/172 681/1069/172 677/1071/172 +f 681/1069/172 682/1217/172 685/1070/172 +f 682/1217/172 683/1218/172 685/1070/172 +f 683/1218/172 684/1219/172 685/1070/172 +f 685/1070/172 686/1220/172 687/1221/172 +f 687/1221/172 688/1222/172 685/1070/172 +f 688/1222/172 677/1071/172 685/1070/172 +f 691/1074/173 689/1223/173 690/1224/173 +f 690/1224/173 700/1225/173 691/1074/173 +f 700/1225/173 699/1226/173 691/1074/173 +f 699/1226/173 698/1227/173 697/1072/173 +f 697/1072/173 696/1228/173 695/1073/173 +f 695/1073/173 694/1229/173 691/1074/173 +f 694/1229/173 693/1230/173 691/1074/173 +f 693/1230/173 692/1231/173 691/1074/173 +f 699/1226/173 697/1072/173 691/1074/173 +f 702/1075/174 704/1232/174 703/1076/174 +f 703/1076/173 704/1232/173 708/1078/173 +f 708/1078/175 706/1081/175 705/1080/175 +f 706/1081/172 702/1233/172 701/1082/172 +f 704/1084/176 702/1234/176 706/1081/176 +f 709/1085/174 719/1091/174 720/1086/174 +f 710/1088/174 715/1102/174 713/1089/174 +f 719/1091/173 736/1106/173 735/1092/173 +f 713/1094/173 721/1235/173 722/1095/173 +f 705/1097/175 714/1101/175 716/1098/175 +f 701/1100/177 713/1236/177 714/1101/177 +f 712/1099/178 716/1098/178 715/1102/178 +f 707/1079/179 712/1099/179 710/1088/179 +f 736/1106/175 734/1237/175 733/1107/175 +f 723/1110/180 726/1238/180 725/1111/180 +f 717/1105/174 723/1114/174 721/1113/174 +f 718/1109/172 724/1115/172 723/1114/172 +f 714/1096/175 722/1095/175 724/1115/175 +f 726/1116/178 728/1120/178 727/1117/178 +f 726/1116/172 730/1127/172 732/1119/172 +f 727/1121/173 731/1124/173 729/1122/173 +f 732/1119/177 730/1127/177 729/1122/177 +f 725/1125/173 729/1122/173 722/1095/173 +f 730/1127/172 726/1238/172 723/1110/172 +f 722/1095/176 729/1122/176 730/1127/176 +f 716/1098/181 718/1109/181 717/1105/181 +f 733/1128/172 734/1239/172 709/1085/172 +f 719/1091/182 709/1085/182 734/1130/182 +f 737/1132/174 741/1144/174 739/1133/174 +f 739/1136/173 745/1150/173 746/1137/173 +f 733/1139/175 740/1240/175 742/1140/175 +f 711/1134/177 739/1133/177 740/1142/177 +f 738/1141/178 742/1140/178 741/1144/178 +f 735/1092/179 738/1141/179 737/1132/179 +f 743/1146/174 747/1151/174 745/1150/174 +f 744/1149/172 748/1152/172 747/1151/172 +f 740/1148/175 746/1241/175 748/1152/175 +f 742/1140/181 744/1149/181 743/1146/181 +f 728/1153/183 748/1158/183 746/1154/183 +f 746/1156/173 745/1150/173 731/1124/173 +f 731/1124/182 745/1150/182 747/1151/182 +f 732/1119/172 747/1151/172 748/1158/172 +f 775/1159/179 777/1242/179 779/1160/179 +f 783/1162/178 784/1170/178 782/1163/178 +f 787/1165/177 788/1169/177 785/1166/177 +f 783/1168/173 785/1243/173 788/1169/173 +f 782/1163/172 787/1165/172 786/1171/172 +f 784/1170/175 788/1169/175 787/1165/175 +f 790/1173/178 792/1181/178 791/1174/178 +f 793/1176/177 796/1179/177 795/1177/177 +f 796/1179/173 793/1244/173 791/1180/173 +f 794/1182/172 795/1177/172 790/1173/172 +f 795/1177/174 796/1179/174 792/1181/174 +f 803/1184/177 804/1206/177 807/1185/177 +f 800/1187/175 804/1206/175 803/1184/175 +f 797/1189/174 802/1193/174 801/1190/174 +f 805/1192/177 808/1204/177 801/1190/177 +f 807/1194/174 811/1210/174 810/1195/174 +f 805/1197/175 809/1209/175 812/1198/175 +f 810/1200/184 798/1245/184 803/1184/184 +f 809/1201/184 805/1192/184 802/1193/184 +f 812/1203/185 799/1208/185 801/1190/185 +f 811/1205/185 807/1185/185 804/1206/185 +f 797/1202/184 798/1245/184 810/1200/184 +f 799/1208/185 812/1203/185 811/1205/185 +f 809/1209/177 810/1195/177 811/1210/177 +f 774/1211/179 773/1213/179 775/1159/179 +f 774/1211/179 780/1246/179 778/1212/179 +s 1 +f 679/1247/186 692/1248/174 680/1249/174 +f 686/1250/175 699/1251/187 687/1252/187 +f 683/1253/178 696/1254/188 684/1255/188 +f 680/1249/174 693/1256/189 681/1257/189 +f 687/1252/187 700/1258/190 688/1259/190 +f 677/1260/177 689/1261/191 678/1262/191 +f 684/1255/188 697/1263/192 685/1264/192 +f 681/1257/189 694/1265/193 682/1266/193 +f 688/1259/190 690/1267/177 677/1260/177 +f 678/1262/191 691/1268/186 679/1247/186 +f 685/1264/192 698/1269/175 686/1250/175 +f 682/1266/193 695/1270/178 683/1271/178 +f 758/1272/194 752/1273/195 750/1274/196 +f 757/1275/197 754/1276/198 749/1277/199 +f 760/1278/200 755/1279/201 752/1273/195 +f 763/1280/202 753/1281/203 755/1279/201 +f 759/1282/204 749/1283/199 751/1284/205 +f 756/1285/206 758/1272/194 750/1274/196 +f 753/1281/203 759/1282/204 751/1284/205 +f 762/1286/207 756/1285/206 754/1276/198 +f 763/1287/202 760/1288/200 771/1289/208 +f 761/1290/209 771/1289/208 769/1291/210 +f 757/1292/197 767/1293/211 765/1294/212 +f 758/1295/194 772/1296/213 766/1297/214 +f 759/1298/204 769/1291/210 767/1293/211 +f 764/1299/215 770/1300/216 772/1296/213 +f 758/1295/194 768/1301/217 760/1288/200 +f 762/1302/207 757/1303/197 770/1300/216 +f 771/1304/208 777/1242/218 769/1305/210 +f 771/1304/208 768/1306/217 779/1160/219 +f 766/1307/214 776/1308/220 768/1306/217 +f 772/1309/213 780/1310/221 766/1307/214 +f 770/1311/216 780/1310/221 772/1309/213 +f 770/1311/216 765/1312/212 778/1313/222 +f 765/1314/212 775/1315/223 773/1316/224 +f 769/1305/210 777/1242/218 767/1317/211 +f 771/1289/208 760/1288/200 768/1301/217 +f 769/1291/210 759/1298/204 761/1290/209 +f 779/1160/219 768/1306/217 776/1308/220 +f 767/1317/211 777/1242/218 775/1315/223 +f 770/1300/216 757/1303/197 765/1318/212 +f 772/1296/213 758/1295/194 764/1299/215 +f 766/1307/214 780/1310/221 774/1319/225 +f 778/1313/222 765/1312/212 773/1320/224 +f 679/1247/186 691/1268/186 692/1248/174 +f 686/1250/175 698/1269/175 699/1251/187 +f 683/1253/178 695/1321/178 696/1254/188 +f 680/1249/174 692/1248/174 693/1256/189 +f 687/1252/187 699/1251/187 700/1258/190 +f 677/1260/177 690/1267/177 689/1261/191 +f 684/1255/188 696/1254/188 697/1263/192 +f 681/1257/189 693/1256/189 694/1265/193 +f 688/1259/190 700/1258/190 690/1267/177 +f 678/1262/191 689/1261/191 691/1268/186 +f 685/1264/192 697/1263/192 698/1269/175 +f 682/1266/193 694/1265/193 695/1270/178 +f 758/1272/194 760/1278/200 752/1273/195 +f 757/1275/197 762/1286/207 754/1276/198 +f 760/1278/200 763/1280/202 755/1279/201 +f 763/1280/202 761/1322/209 753/1281/203 +f 759/1282/204 757/1323/197 749/1283/199 +f 756/1285/206 764/1324/215 758/1272/194 +f 753/1281/203 761/1322/209 759/1282/204 +f 762/1286/207 764/1324/215 756/1285/206 +f 761/1290/209 763/1287/202 771/1289/208 +f 757/1292/197 759/1298/204 767/1293/211 +f 764/1299/215 762/1302/207 770/1300/216 +f 758/1295/194 766/1297/214 768/1301/217 +f 771/1304/208 779/1160/219 777/1242/218 +f 766/1307/214 774/1319/225 776/1308/220 +f 770/1311/216 778/1313/222 780/1310/221 +f 765/1314/212 767/1317/211 775/1315/223 diff --git a/src/main/resources/assets/hbm/models/weapons/python.obj b/src/main/resources/assets/hbm/models/weapons/python.obj index ce42559c3..dc182636a 100644 --- a/src/main/resources/assets/hbm/models/weapons/python.obj +++ b/src/main/resources/assets/hbm/models/weapons/python.obj @@ -1,1220 +1,5 @@ -# Blender v2.79 (sub 0) OBJ File: 'python.blend' +# Blender 4.0.1 # www.blender.org -o Cylinder -v 0.040155 0.134253 0.138325 -v -0.032489 0.061608 0.138325 -v 0.040155 0.134253 0.000825 -v -0.032489 0.061608 0.000825 -v 0.030419 0.143989 0.000825 -v -0.042225 0.071345 0.000825 -v 0.030419 0.143989 0.138325 -v -0.042225 0.071345 0.138325 -v 0.014778 0.156219 0.138325 -v 0.014778 0.053094 0.138325 -v 0.014778 0.156219 0.000825 -v 0.014778 0.053094 0.000825 -v -0.015300 0.156219 0.000825 -v -0.015300 0.053094 0.000825 -v -0.015300 0.156219 0.138325 -v -0.015300 0.053094 0.138325 -v 0.040951 0.136693 0.138325 -v 0.052051 0.109897 0.138325 -v 0.040951 0.136693 0.000825 -v 0.052051 0.109897 0.000825 -v -0.055316 0.096818 0.000825 -v -0.044217 0.070021 0.000825 -v -0.055316 0.096818 0.138325 -v -0.044217 0.070021 0.138325 -v 0.052632 0.096296 0.138325 -v 0.041944 0.070492 0.138325 -v 0.052632 0.096296 0.000825 -v 0.041944 0.070493 0.000825 -v -0.044628 0.136582 0.000825 -v -0.055316 0.110779 0.000825 -v -0.044628 0.136582 0.138325 -v -0.055316 0.110779 0.138325 -v 0.052103 0.110777 0.138325 -v 0.052103 0.096812 0.138325 -v 0.052103 0.110777 0.103950 -v 0.052103 0.096812 0.103950 -v -0.055319 0.110777 0.103950 -v -0.055319 0.096812 0.103950 -v -0.055319 0.110777 0.138325 -v -0.055319 0.096812 0.138325 -v 0.041306 0.136583 0.138325 -v 0.041306 0.069981 0.138325 -v 0.041306 0.136583 0.000825 -v 0.041306 0.069981 0.000825 -v -0.044631 0.136583 0.000825 -v -0.044631 0.069981 0.000825 -v -0.044631 0.136583 0.138325 -v -0.044631 0.069981 0.138325 -v -0.036145 0.147590 0.000825 -v -0.027101 0.125756 0.000825 -v -0.036145 0.147590 0.138325 -v -0.027101 0.125756 0.138325 -v -0.015304 0.156223 0.000825 -v -0.015304 0.156223 0.138325 -v -0.006260 0.134388 0.138325 -v -0.006260 0.134388 0.000825 -v 0.033630 0.148410 0.138325 -v 0.024586 0.126576 0.138325 -v 0.033630 0.148410 0.000825 -v 0.024586 0.126576 0.000825 -v 0.014774 0.156221 0.000825 -v 0.014774 0.156221 0.138325 -v 0.005730 0.134386 0.138325 -v 0.005730 0.134386 0.000825 -v 0.023594 0.082327 0.138325 -v 0.032639 0.060493 0.138325 -v 0.023594 0.082327 0.000825 -v 0.032639 0.060493 0.000825 -v 0.014774 0.053094 0.138325 -v 0.014774 0.053094 0.000825 -v 0.005730 0.074928 0.138325 -v 0.005730 0.074928 0.000825 -v -0.025114 0.082739 0.000825 -v -0.034158 0.060905 0.000825 -v -0.025114 0.082739 0.138325 -v -0.034158 0.060905 0.138325 -v -0.015301 0.053095 0.138325 -v -0.015301 0.053095 0.000825 -v -0.006257 0.074929 0.138325 -v -0.006257 0.074929 0.000825 -v 0.041811 0.073900 0.138325 -v 0.027931 0.060020 0.138325 -v 0.041811 0.073900 0.000825 -v 0.027931 0.060020 0.000825 -v -0.030834 0.146544 0.000825 -v -0.044713 0.132664 0.000825 -v -0.030834 0.146544 0.138325 -v -0.044713 0.132664 0.138325 -vt 0.232414 0.762673 -vt 0.232414 0.557205 -vt 0.507414 0.762673 -vt 0.507414 0.557205 -vt 0.492586 0.762673 -vt 0.492586 0.557205 -vt 0.767586 0.762673 -vt 0.767586 0.557205 -vt 0.419200 0.507414 -vt 0.419200 0.232414 -vt 0.446738 0.507414 -vt 0.446738 0.232414 -vt 0.419200 0.767586 -vt 0.419200 0.492586 -vt 0.446738 0.767586 -vt 0.446738 0.492586 -vt 0.419200 0.762673 -vt 0.419200 0.557205 -vt 0.446738 0.762673 -vt 0.446738 0.557205 -vt 0.553262 0.762673 -vt 0.553262 0.557205 -vt 0.580800 0.762673 -vt 0.580800 0.557205 -vt 0.232414 0.726953 -vt 0.232414 0.520703 -vt 0.507414 0.726953 -vt 0.507414 0.520703 -vt 0.492586 0.726953 -vt 0.492586 0.520703 -vt 0.767586 0.726953 -vt 0.767586 0.520703 -vt 0.473047 0.507414 -vt 0.473047 0.232414 -vt 0.533204 0.507414 -vt 0.533204 0.232414 -vt 0.473047 0.767586 -vt 0.473047 0.492586 -vt 0.533204 0.767586 -vt 0.533204 0.492586 -vt 0.473047 0.726953 -vt 0.473047 0.520703 -vt 0.533204 0.726953 -vt 0.533204 0.520703 -vt 0.466796 0.726953 -vt 0.466796 0.520703 -vt 0.526953 0.726953 -vt 0.526953 0.520703 -vt 0.232414 0.612558 -vt 0.232414 0.554549 -vt 0.507414 0.612558 -vt 0.507414 0.554549 -vt 0.492586 0.612558 -vt 0.492586 0.554549 -vt 0.767586 0.612558 -vt 0.767586 0.554549 -vt 0.415213 0.507414 -vt 0.415213 0.232414 -vt 0.623611 0.507414 -vt 0.623611 0.232414 -vt 0.415213 0.767586 -vt 0.415213 0.492586 -vt 0.623611 0.767586 -vt 0.623611 0.492586 -vt 0.415213 0.612558 -vt 0.415213 0.554549 -vt 0.623611 0.612558 -vt 0.623611 0.554549 -vt 0.376389 0.612558 -vt 0.376389 0.554549 -vt 0.584787 0.612558 -vt 0.584787 0.554549 -vt 0.232414 0.691931 -vt 0.232414 0.636072 -vt 0.507414 0.691931 -vt 0.507414 0.636072 -vt 0.492586 0.691931 -vt 0.492586 0.636072 -vt 0.767586 0.691931 -vt 0.767586 0.636072 -vt 0.393015 0.507414 -vt 0.393015 0.232414 -vt 0.603561 0.507414 -vt 0.603561 0.232414 -vt 0.393015 0.767586 -vt 0.393015 0.492586 -vt 0.603561 0.767586 -vt 0.603561 0.492586 -vt 0.393015 0.691931 -vt 0.393015 0.636072 -vt 0.603561 0.691931 -vt 0.603561 0.636072 -vt 0.396439 0.691931 -vt 0.396439 0.636072 -vt 0.606985 0.691931 -vt 0.606985 0.636072 -vt 0.232414 0.636072 -vt 0.232414 0.608142 -vt 0.301164 0.636072 -vt 0.301164 0.608142 -vt 0.698836 0.636072 -vt 0.698836 0.608142 -vt 0.767586 0.636072 -vt 0.767586 0.608142 -vt 0.393014 0.301164 -vt 0.393014 0.232414 -vt 0.607857 0.301164 -vt 0.607857 0.232414 -vt 0.393014 0.767586 -vt 0.393014 0.698836 -vt 0.607857 0.767586 -vt 0.607857 0.698836 -vt 0.393014 0.636072 -vt 0.393014 0.608142 -vt 0.607857 0.636072 -vt 0.607857 0.608142 -vt 0.392143 0.636072 -vt 0.392143 0.608142 -vt 0.606986 0.636072 -vt 0.606986 0.608142 -vt 0.232414 0.687679 -vt 0.232414 0.554476 -vt 0.507414 0.687679 -vt 0.507414 0.554476 -vt 0.492586 0.687679 -vt 0.492586 0.554476 -vt 0.767586 0.687679 -vt 0.767586 0.554476 -vt 0.414390 0.507414 -vt 0.414390 0.232414 -vt 0.586265 0.507414 -vt 0.586265 0.232414 -vt 0.414390 0.767586 -vt 0.414390 0.492586 -vt 0.586265 0.767586 -vt 0.586265 0.492586 -vt 0.414390 0.687679 -vt 0.414390 0.554476 -vt 0.586265 0.687679 -vt 0.586265 0.554476 -vt 0.413735 0.687679 -vt 0.413735 0.554476 -vt 0.585610 0.687679 -vt 0.585610 0.554476 -vt 0.492586 0.713286 -vt 0.492586 0.666019 -vt 0.767586 0.713286 -vt 0.767586 0.666019 -vt 0.449452 0.507414 -vt 0.449452 0.232414 -vt 0.494569 0.507414 -vt 0.494569 0.232414 -vt 0.449452 0.713286 -vt 0.449452 0.666019 -vt 0.494569 0.713286 -vt 0.494569 0.666019 -vt 0.505431 0.713286 -vt 0.505431 0.666019 -vt 0.550548 0.713286 -vt 0.550548 0.666019 -vt 0.232414 0.730552 -vt 0.232414 0.683285 -vt 0.507414 0.730552 -vt 0.507414 0.683285 -vt 0.515115 0.507414 -vt 0.515115 0.232414 -vt 0.555935 0.507414 -vt 0.555935 0.232414 -vt 0.515115 0.730552 -vt 0.515115 0.683285 -vt 0.555935 0.730552 -vt 0.555935 0.683285 -vt 0.444065 0.730552 -vt 0.444065 0.683285 -vt 0.484885 0.730552 -vt 0.484885 0.683285 -vt 0.232414 0.567969 -vt 0.232414 0.520703 -vt 0.507414 0.567969 -vt 0.507414 0.520703 -vt 0.533203 0.767586 -vt 0.533203 0.492586 -vt 0.571875 0.767586 -vt 0.571875 0.492586 -vt 0.533203 0.567969 -vt 0.533203 0.520703 -vt 0.571875 0.567969 -vt 0.571875 0.520703 -vt 0.428125 0.567969 -vt 0.428125 0.520703 -vt 0.466797 0.567969 -vt 0.466797 0.520703 -vt 0.492586 0.583590 -vt 0.492586 0.536324 -vt 0.767586 0.583590 -vt 0.767586 0.536324 -vt 0.435334 0.767586 -vt 0.435334 0.492586 -vt 0.476154 0.767586 -vt 0.476154 0.492586 -vt 0.435334 0.583590 -vt 0.435334 0.536324 -vt 0.476154 0.583590 -vt 0.476154 0.536324 -vt 0.523846 0.583590 -vt 0.523846 0.536324 -vt 0.564666 0.583590 -vt 0.564666 0.536324 -vt 0.232414 0.719101 -vt 0.232414 0.679843 -vt 0.507414 0.719101 -vt 0.507414 0.679843 -vt 0.492586 0.719101 -vt 0.492586 0.679843 -vt 0.767586 0.719101 -vt 0.767586 0.679843 -vt 0.414227 0.507414 -vt 0.414227 0.232414 -vt 0.619696 0.507414 -vt 0.619696 0.232414 -vt 0.414227 0.767586 -vt 0.414227 0.492586 -vt 0.619696 0.767586 -vt 0.619696 0.492586 -vt 0.414227 0.719101 -vt 0.414227 0.679843 -vt 0.619696 0.719101 -vt 0.619696 0.679843 -vt 0.380304 0.719101 -vt 0.380304 0.679843 -vt 0.585773 0.719101 -vt 0.585773 0.679843 -vn 0.7071 -0.7071 0.0000 -vn -0.7071 0.7071 0.0000 -vn 0.7071 0.7071 0.0000 -vn -0.7071 -0.7071 -0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.9239 -0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.3827 -0.9239 0.0000 -vn 0.9239 -0.3827 -0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn -0.3827 -0.9239 0.0000 -s off -f 1/1/1 2/2/1 3/3/1 -f 2/2/1 4/4/1 3/3/1 -f 5/5/2 6/6/2 7/7/2 -f 6/6/2 8/8/2 7/7/2 -f 5/9/3 7/10/3 3/11/3 -f 7/10/3 1/12/3 3/11/3 -f 8/13/4 6/14/4 2/15/4 -f 6/14/4 4/16/4 2/15/4 -f 7/17/5 8/18/5 1/19/5 -f 8/18/5 2/20/5 1/19/5 -f 3/21/6 4/22/6 5/23/6 -f 4/22/6 6/24/6 5/23/6 -f 9/25/7 10/26/7 11/27/7 -f 10/26/7 12/28/7 11/27/7 -f 13/29/8 14/30/8 15/31/8 -f 14/30/8 16/32/8 15/31/8 -f 13/33/9 15/34/9 11/35/9 -f 15/34/9 9/36/9 11/35/9 -f 16/37/10 14/38/10 10/39/10 -f 14/38/10 12/40/10 10/39/10 -f 15/41/5 16/42/5 9/43/5 -f 16/42/5 10/44/5 9/43/5 -f 11/45/6 12/46/6 13/47/6 -f 12/46/6 14/48/6 13/47/6 -f 17/49/11 18/50/11 19/51/11 -f 18/50/11 20/52/11 19/51/11 -f 21/53/12 22/54/12 23/55/12 -f 22/54/12 24/56/12 23/55/12 -f 21/57/13 23/58/13 19/59/13 -f 23/58/13 17/60/13 19/59/13 -f 24/61/14 22/62/14 18/63/14 -f 22/62/14 20/64/14 18/63/14 -f 23/65/5 24/66/5 17/67/5 -f 24/66/5 18/68/5 17/67/5 -f 19/69/6 20/70/6 21/71/6 -f 20/70/6 22/72/6 21/71/6 -f 25/73/15 26/74/15 27/75/15 -f 26/74/15 28/76/15 27/75/15 -f 29/77/16 30/78/16 31/79/16 -f 30/78/16 32/80/16 31/79/16 -f 29/81/17 31/82/17 27/83/17 -f 31/82/17 25/84/17 27/83/17 -f 32/85/18 30/86/18 26/87/18 -f 30/86/18 28/88/18 26/87/18 -f 31/89/5 32/90/5 25/91/5 -f 32/90/5 26/92/5 25/91/5 -f 27/93/6 28/94/6 29/95/6 -f 28/94/6 30/96/6 29/95/6 -f 33/97/7 34/98/7 35/99/7 -f 34/98/7 36/100/7 35/99/7 -f 37/101/8 38/102/8 39/103/8 -f 38/102/8 40/104/8 39/103/8 -f 37/105/9 39/106/9 35/107/9 -f 39/106/9 33/108/9 35/107/9 -f 40/109/10 38/110/10 34/111/10 -f 38/110/10 36/112/10 34/111/10 -f 39/113/5 40/114/5 33/115/5 -f 40/114/5 34/116/5 33/115/5 -f 35/117/6 36/118/6 37/119/6 -f 36/118/6 38/120/6 37/119/6 -f 41/121/7 42/122/7 43/123/7 -f 42/122/7 44/124/7 43/123/7 -f 45/125/8 46/126/8 47/127/8 -f 46/126/8 48/128/8 47/127/8 -f 45/129/9 47/130/9 43/131/9 -f 47/130/9 41/132/9 43/131/9 -f 48/133/10 46/134/10 42/135/10 -f 46/134/10 44/136/10 42/135/10 -f 47/137/5 48/138/5 41/139/5 -f 48/138/5 42/140/5 41/139/5 -f 43/141/6 44/142/6 45/143/6 -f 44/142/6 46/144/6 45/143/6 -f 49/145/12 50/146/12 51/147/12 -f 50/146/12 52/148/12 51/147/12 -f 49/149/13 51/150/13 53/151/13 -f 51/150/13 54/152/13 53/151/13 -f 51/153/5 52/154/5 54/155/5 -f 52/154/5 55/156/5 54/155/5 -f 53/157/6 56/158/6 49/159/6 -f 56/158/6 50/160/6 49/159/6 -f 57/161/15 58/162/15 59/163/15 -f 58/162/15 60/164/15 59/163/15 -f 61/165/17 62/166/17 59/167/17 -f 62/166/17 57/168/17 59/167/17 -f 62/169/5 63/170/5 57/171/5 -f 63/170/5 58/172/5 57/171/5 -f 59/173/6 60/174/6 61/175/6 -f 60/174/6 64/176/6 61/175/6 -f 65/177/11 66/178/11 67/179/11 -f 66/178/11 68/180/11 67/179/11 -f 69/181/14 70/182/14 66/183/14 -f 70/182/14 68/184/14 66/183/14 -f 71/185/5 69/186/5 65/187/5 -f 69/186/5 66/188/5 65/187/5 -f 67/189/6 68/190/6 72/191/6 -f 68/190/6 70/192/6 72/191/6 -f 73/193/16 74/194/16 75/195/16 -f 74/194/16 76/196/16 75/195/16 -f 76/197/18 74/198/18 77/199/18 -f 74/198/18 78/200/18 77/199/18 -f 75/201/5 76/202/5 79/203/5 -f 76/202/5 77/204/5 79/203/5 -f 80/205/6 78/206/6 73/207/6 -f 78/206/6 74/208/6 73/207/6 -f 81/209/1 82/210/1 83/211/1 -f 82/210/1 84/212/1 83/211/1 -f 85/213/2 86/214/2 87/215/2 -f 86/214/2 88/216/2 87/215/2 -f 85/217/3 87/218/3 83/219/3 -f 87/218/3 81/220/3 83/219/3 -f 88/221/4 86/222/4 82/223/4 -f 86/222/4 84/224/4 82/223/4 -f 87/225/5 88/226/5 81/227/5 -f 88/226/5 82/228/5 81/227/5 -f 83/229/6 84/230/6 85/231/6 -f 84/230/6 86/232/6 85/231/6 -o Grip -v 0.029437 0.100706 0.311919 -v 0.029437 -0.004763 0.311919 -v 0.029437 0.100706 0.268950 -v 0.029437 -0.004763 0.268950 -v -0.029156 0.100706 0.268950 -v -0.029156 -0.004763 0.268950 -v -0.029156 0.100706 0.311919 -v -0.029156 -0.004763 0.311919 -v 0.029388 0.017106 0.332156 -v 0.029388 -0.174300 0.332156 -v 0.029388 0.017106 0.285281 -v 0.029388 -0.174300 0.285281 -v -0.029181 0.017106 0.285281 -v -0.029181 -0.174300 0.285281 -v -0.029181 0.017106 0.332156 -v -0.029181 -0.174300 0.332156 -v 0.029419 0.085760 0.232858 -v 0.029419 -0.005391 0.324008 -v 0.029419 0.069187 0.216285 -v 0.029419 -0.021963 0.307436 -v -0.029175 0.069187 0.216285 -v -0.029175 -0.021963 0.307436 -v -0.029175 0.085760 0.232858 -v -0.029175 -0.005391 0.324008 -v 0.029462 0.040785 0.284858 -v 0.029462 -0.024175 0.257950 -v 0.029462 0.069187 0.216289 -v 0.029462 0.004227 0.189381 -v -0.029131 0.069187 0.216289 -v -0.029131 0.004227 0.189381 -v -0.029131 0.040785 0.284858 -v -0.029131 -0.024175 0.257950 -v 0.029425 0.004225 0.310469 -v 0.029425 -0.019213 0.310469 -v 0.029425 0.004225 0.189375 -v 0.029425 -0.019213 0.189375 -v -0.029169 0.004225 0.189375 -v -0.029169 -0.019213 0.189375 -v -0.029169 0.004225 0.310469 -v -0.029169 -0.019213 0.310469 -v 0.029456 -0.063915 0.319925 -v 0.029456 -0.080488 0.303353 -v 0.029456 0.021711 0.234299 -v 0.029456 0.005138 0.217726 -v -0.029137 0.021711 0.234299 -v -0.029137 0.005138 0.217726 -v -0.029137 -0.063915 0.319925 -v -0.029137 -0.080488 0.303353 -v 0.029406 0.100711 0.268945 -v 0.029406 -0.040037 0.327245 -v 0.029406 0.085762 0.232856 -v 0.029406 -0.054985 0.291156 -v -0.029188 0.085762 0.232856 -v -0.029188 -0.054985 0.291156 -v -0.029188 0.100711 0.268945 -v -0.029188 -0.040037 0.327245 -v 0.029375 -0.129257 0.319077 -v 0.029375 -0.205044 0.287685 -v 0.029375 -0.120288 0.297424 -v 0.029375 -0.196075 0.266032 -v -0.029188 -0.120288 0.297424 -v -0.029188 -0.196075 0.266032 -v -0.029188 -0.129257 0.319077 -v -0.029188 -0.205044 0.287685 -v 0.029450 0.100710 0.300193 -v 0.029450 -0.040037 0.358492 -v 0.029450 0.085762 0.264104 -v 0.029450 -0.054986 0.322403 -v -0.029144 0.085762 0.264104 -v -0.029144 -0.054986 0.322403 -v -0.029144 0.100710 0.300193 -v -0.029144 -0.040037 0.358492 -v 0.029469 0.075586 0.302363 -v 0.029469 0.006533 0.371416 -v 0.029469 0.047965 0.274741 -v 0.029469 -0.021088 0.343795 -v -0.029125 0.047965 0.274741 -v -0.029125 -0.021088 0.343795 -v -0.029125 0.075586 0.302363 -v -0.029125 0.006533 0.371416 -v 0.029425 0.006539 0.371413 -v 0.029425 -0.126990 0.426723 -v 0.029425 -0.032327 0.277581 -v 0.029425 -0.165857 0.332891 -v -0.029169 -0.032327 0.277581 -v -0.029169 -0.165857 0.332891 -v -0.029169 0.006539 0.371413 -v -0.029169 -0.126990 0.426723 -v 0.029419 -0.126919 0.427336 -v 0.029419 -0.205044 0.427336 -v 0.029419 -0.126919 0.287688 -v 0.029419 -0.205044 0.287688 -v -0.029163 -0.126919 0.287688 -v -0.029163 -0.205044 0.287688 -v -0.029163 -0.126919 0.427336 -v -0.029163 -0.205044 0.427336 -v 0.021613 0.096482 0.310400 -v 0.021613 -0.037047 0.365710 -v 0.021613 0.078544 0.267093 -v 0.021613 -0.054986 0.322403 -v -0.021356 0.078544 0.267093 -v -0.021356 -0.054986 0.322403 -v -0.021356 0.096482 0.310400 -v -0.021356 -0.037047 0.365710 -v 0.021613 0.081113 0.307885 -v 0.021613 0.010678 0.378319 -v 0.021613 0.047967 0.274739 -v 0.021613 -0.022467 0.345174 -v -0.021356 0.047967 0.274739 -v -0.021356 -0.022467 0.345174 -v -0.021356 0.081113 0.307885 -v -0.021356 0.010678 0.378319 -v 0.021613 -0.123013 0.435149 -v 0.021613 -0.205044 0.435149 -v 0.021613 -0.123013 0.287688 -v 0.021613 -0.205044 0.287688 -v -0.021356 -0.123013 0.287688 -v -0.021356 -0.205044 0.287688 -v -0.021356 -0.123013 0.435149 -v -0.021356 -0.205044 0.435149 -v 0.021613 0.011330 0.377885 -v 0.021613 -0.125808 0.434689 -v 0.021613 -0.030526 0.276835 -v 0.021613 -0.167664 0.333640 -v -0.021356 -0.030526 0.276835 -v -0.021356 -0.167664 0.333640 -v -0.021356 0.011330 0.377885 -v -0.021356 -0.125808 0.434689 -vt 0.000000 1.000000 -vt 0.000000 0.789062 -vt 0.085938 1.000000 -vt 0.085938 0.789062 -vt 0.000000 1.000000 -vt 0.000000 0.789062 -vt 0.085938 1.000000 -vt 0.085938 0.789062 -vt 0.890625 1.000000 -vt 0.890625 0.914062 -vt 1.007812 1.000000 -vt 1.007812 0.914062 -vt 0.562500 0.531250 -vt 0.562500 0.320312 -vt 0.679688 0.531250 -vt 0.679688 0.320312 -vt 0.562500 0.531250 -vt 0.562500 0.320312 -vt 0.679688 0.531250 -vt 0.679688 0.320312 -vt 0.000000 1.000000 -vt 0.000000 0.687500 -vt 0.093750 1.000000 -vt 0.093750 0.687500 -vt 0.000000 1.000000 -vt 0.000000 0.687500 -vt 0.093750 1.000000 -vt 0.093750 0.687500 -vt 0.437500 1.000000 -vt 0.437500 0.617188 -vt 0.554688 1.000000 -vt 0.554688 0.617188 -vt 0.000000 1.000000 -vt 0.000000 0.742188 -vt 0.046875 1.000000 -vt 0.046875 0.742188 -vt 0.000000 1.000000 -vt 0.000000 0.742188 -vt 0.046875 1.000000 -vt 0.046875 0.742188 -vt 0.531250 0.468750 -vt 0.531250 0.421875 -vt 0.648438 0.468750 -vt 0.648438 0.421875 -vt 0.562500 0.593750 -vt 0.562500 0.335938 -vt 0.679688 0.593750 -vt 0.679688 0.335938 -vt 0.562500 0.593750 -vt 0.562500 0.335938 -vt 0.679688 0.593750 -vt 0.679688 0.335938 -vt 0.000000 1.000000 -vt 0.000000 0.859375 -vt 0.130307 1.000000 -vt 0.130307 0.859375 -vt 0.000000 1.000000 -vt 0.000000 0.859375 -vt 0.130307 1.000000 -vt 0.130307 0.859375 -vt 0.500000 0.468750 -vt 0.500000 0.338443 -vt 0.617188 0.468750 -vt 0.617188 0.338443 -vt 0.531250 0.468750 -vt 0.531250 0.338443 -vt 0.648438 0.468750 -vt 0.648438 0.338443 -vt 0.500000 0.468750 -vt 0.500000 0.328125 -vt 0.617188 0.468750 -vt 0.617188 0.328125 -vt 0.500000 0.468750 -vt 0.500000 0.328125 -vt 0.617188 0.468750 -vt 0.617188 0.328125 -vt 0.000000 1.000000 -vt 0.000000 0.953125 -vt 0.130307 1.000000 -vt 0.130307 0.953125 -vt 0.015625 1.000000 -vt 0.015625 0.953125 -vt 0.145932 1.000000 -vt 0.145932 0.953125 -vt 0.500000 0.468750 -vt 0.500000 0.338443 -vt 0.617188 0.468750 -vt 0.617188 0.338443 -vt 0.343750 0.703125 -vt 0.343750 0.572818 -vt 0.460938 0.703125 -vt 0.460938 0.572818 -vt 0.500000 0.406250 -vt 0.500000 0.359375 -vt 0.617188 0.406250 -vt 0.617188 0.359375 -vt 0.000000 1.000000 -vt 0.000000 0.953125 -vt 0.218750 1.000000 -vt 0.218750 0.953125 -vt 0.000000 1.000000 -vt 0.000000 0.953125 -vt 0.265625 1.000000 -vt 0.265625 0.953125 -vt 0.890625 0.359375 -vt 0.890625 0.285771 -vt 1.007812 0.359375 -vt 1.007812 0.285771 -vt 0.000000 1.000000 -vt 0.000000 0.695312 -vt 0.078125 1.000000 -vt 0.078125 0.695312 -vt 0.000000 1.000000 -vt 0.000000 0.695312 -vt 0.078125 1.000000 -vt 0.078125 0.695312 -vt 0.890625 1.000000 -vt 0.890625 0.921875 -vt 1.007812 1.000000 -vt 1.007812 0.921875 -vt 0.562500 0.593750 -vt 0.562500 0.289062 -vt 0.679688 0.593750 -vt 0.679688 0.289062 -vt 0.531250 0.593750 -vt 0.531250 0.289062 -vt 0.648438 0.593750 -vt 0.648438 0.289062 -vt 0.000000 1.000000 -vt 0.000000 0.835938 -vt 0.046875 1.000000 -vt 0.046875 0.835938 -vt 0.000000 1.000000 -vt 0.000000 0.835938 -vt 0.046875 1.000000 -vt 0.046875 0.835938 -vt 0.484375 0.046875 -vt 0.484375 0.000000 -vt 0.601562 0.046875 -vt 0.601562 0.000000 -vt 0.687500 0.156250 -vt 0.687500 -0.007812 -vt 0.804688 0.156250 -vt 0.804688 -0.007812 -vt 0.000000 1.000000 -vt 0.000000 0.695312 -vt 0.078125 1.000000 -vt 0.078125 0.695312 -vt 0.000000 1.000000 -vt 0.000000 0.695312 -vt 0.078125 1.000000 -vt 0.078125 0.695312 -vt 0.562500 0.468750 -vt 0.562500 0.390625 -vt 0.679688 0.468750 -vt 0.679688 0.390625 -vt 0.562500 0.437500 -vt 0.562500 0.359375 -vt 0.679688 0.437500 -vt 0.679688 0.359375 -vt 0.562500 0.593750 -vt 0.562500 0.289062 -vt 0.679688 0.593750 -vt 0.679688 0.289062 -vt 0.562500 0.593750 -vt 0.562500 0.289062 -vt 0.679688 0.593750 -vt 0.679688 0.289062 -vt 0.000000 1.000000 -vt 0.000000 0.804688 -vt 0.078125 1.000000 -vt 0.078125 0.804688 -vt 0.000000 1.000000 -vt 0.000000 0.804688 -vt 0.078125 1.000000 -vt 0.078125 0.804688 -vt 0.562500 0.437500 -vt 0.562500 0.359375 -vt 0.679688 0.437500 -vt 0.679688 0.359375 -vt 0.562500 0.500000 -vt 0.562500 0.304688 -vt 0.679688 0.500000 -vt 0.679688 0.304688 -vt 0.562500 0.500000 -vt 0.562500 0.304688 -vt 0.679688 0.500000 -vt 0.679688 0.304688 -vt 0.000000 1.000000 -vt 0.000000 0.710938 -vt 0.203125 1.000000 -vt 0.203125 0.710938 -vt 0.000000 1.000000 -vt 0.000000 0.710938 -vt 0.203125 1.000000 -vt 0.203125 0.710938 -vt 0.562500 0.531250 -vt 0.562500 0.328125 -vt 0.679688 0.531250 -vt 0.679688 0.328125 -vt 0.562500 0.593750 -vt 0.562500 0.304688 -vt 0.679688 0.593750 -vt 0.679688 0.304688 -vt 0.000000 0.734375 -vt 0.000000 0.578125 -vt 0.281250 0.734375 -vt 0.281250 0.578125 -vt 0.000000 0.734375 -vt 0.000000 0.578125 -vt 0.281250 0.734375 -vt 0.281250 0.578125 -vt 0.328125 0.281250 -vt 0.328125 0.001952 -vt 0.445312 0.281250 -vt 0.445312 0.001952 -vt 0.500000 0.500000 -vt 0.500000 0.343750 -vt 0.617188 0.500000 -vt 0.617188 0.343750 -vt 0.500000 0.500000 -vt 0.500000 0.343750 -vt 0.617188 0.500000 -vt 0.617188 0.343750 -vt 0.770499 0.593601 -vt 0.770499 0.304538 -vt 0.864249 0.593601 -vt 0.864249 0.304538 -vt 0.135752 0.593601 -vt 0.135752 0.304538 -vt 0.229502 0.593601 -vt 0.229502 0.304538 -vt 0.921875 1.000000 -vt 0.921875 0.710937 -vt 1.007812 1.000000 -vt 1.007812 0.710937 -vt 0.724961 0.568802 -vt 0.724961 0.369583 -vt 0.818711 0.568802 -vt 0.818711 0.369583 -vt 0.181289 0.568802 -vt 0.181289 0.369583 -vt 0.275039 0.568802 -vt 0.275039 0.369583 -vt 0.921875 1.000000 -vt 0.921875 0.800781 -vt 1.007812 1.000000 -vt 1.007812 0.800781 -vt 0.437500 0.500000 -vt 0.437500 0.335938 -vt 0.732422 0.500000 -vt 0.732422 0.335938 -vt 0.437500 0.500000 -vt 0.437500 0.335938 -vt 0.732422 0.500000 -vt 0.732422 0.335938 -vt 0.562500 0.562500 -vt 0.562500 0.267577 -vt 0.648438 0.562500 -vt 0.648438 0.267577 -vt 0.921875 1.000000 -vt 0.921875 0.705078 -vt 1.007812 1.000000 -vt 1.007812 0.705078 -vt 0.921875 1.000000 -vt 0.921875 0.835938 -vt 1.007812 1.000000 -vt 1.007812 0.835938 -vt 0.531250 0.500000 -vt 0.531250 0.335938 -vt 0.617188 0.500000 -vt 0.617188 0.335938 -vt 0.500000 0.593750 -vt 0.500000 0.296875 -vt 0.718750 0.593750 -vt 0.718750 0.296875 -vt 0.500000 0.593750 -vt 0.500000 0.296875 -vt 0.718750 0.593750 -vt 0.718750 0.296875 -vt 0.921875 1.000000 -vt 0.921875 0.703125 -vt 1.007812 1.000000 -vt 1.007812 0.703125 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 0.9239 0.3827 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 -0.9239 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 0.9239 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.7071 0.7071 -s off -f 89/233/19 90/234/19 91/235/19 -f 90/234/19 92/236/19 91/235/19 -f 93/237/20 94/238/20 95/239/20 -f 94/238/20 96/240/20 95/239/20 -f 93/241/21 95/242/21 91/243/21 -f 95/242/21 89/244/21 91/243/21 -f 95/245/22 96/246/22 89/247/22 -f 96/246/22 90/248/22 89/247/22 -f 91/249/23 92/250/23 93/251/23 -f 92/250/23 94/252/23 93/251/23 -f 97/253/19 98/254/19 99/255/19 -f 98/254/19 100/256/19 99/255/19 -f 101/257/20 102/258/20 103/259/20 -f 102/258/20 104/260/20 103/259/20 -f 99/261/23 100/262/23 101/263/23 -f 100/262/23 102/264/23 101/263/23 -f 105/265/19 106/266/19 107/267/19 -f 106/266/19 108/268/19 107/267/19 -f 109/269/20 110/270/20 111/271/20 -f 110/270/20 112/272/20 111/271/20 -f 109/273/24 111/274/24 107/275/24 -f 111/274/24 105/276/24 107/275/24 -f 111/277/25 112/278/25 105/279/25 -f 112/278/25 106/280/25 105/279/25 -f 107/281/26 108/282/26 109/283/26 -f 108/282/26 110/284/26 109/283/26 -f 113/285/19 114/286/19 115/287/19 -f 114/286/19 116/288/19 115/287/19 -f 117/289/20 118/290/20 119/291/20 -f 118/290/20 120/292/20 119/291/20 -f 117/293/27 119/294/27 115/295/27 -f 119/294/27 113/296/27 115/295/27 -f 120/297/28 118/298/28 114/299/28 -f 118/298/28 116/300/28 114/299/28 -f 119/301/29 120/302/29 113/303/29 -f 120/302/29 114/304/29 113/303/29 -f 115/305/30 116/306/30 117/307/30 -f 116/306/30 118/308/30 117/307/30 -f 121/309/19 122/310/19 123/311/19 -f 122/310/19 124/312/19 123/311/19 -f 125/313/20 126/314/20 127/315/20 -f 126/314/20 128/316/20 127/315/20 -f 125/317/21 127/318/21 123/319/21 -f 127/318/21 121/320/21 123/319/21 -f 128/321/31 126/322/31 122/323/31 -f 126/322/31 124/324/31 122/323/31 -f 123/325/23 124/326/23 125/327/23 -f 124/326/23 126/328/23 125/327/23 -f 129/329/19 130/330/19 131/331/19 -f 130/330/19 132/332/19 131/331/19 -f 133/333/20 134/334/20 135/335/20 -f 134/334/20 136/336/20 135/335/20 -f 136/337/26 134/338/26 130/339/26 -f 134/338/26 132/340/26 130/339/26 -f 137/341/19 138/342/19 139/343/19 -f 138/342/19 140/344/19 139/343/19 -f 141/345/20 142/346/20 143/347/20 -f 142/346/20 144/348/20 143/347/20 -f 141/349/32 143/350/32 139/351/32 -f 143/350/32 137/352/32 139/351/32 -f 143/353/33 144/354/33 137/355/33 -f 144/354/33 138/356/33 137/355/33 -f 139/357/34 140/358/34 141/359/34 -f 140/358/34 142/360/34 141/359/34 -f 145/361/19 146/362/19 147/363/19 -f 146/362/19 148/364/19 147/363/19 -f 149/365/20 150/366/20 151/367/20 -f 150/366/20 152/368/20 151/367/20 -f 152/369/28 150/370/28 146/371/28 -f 150/370/28 148/372/28 146/371/28 -f 147/373/30 148/374/30 149/375/30 -f 148/374/30 150/376/30 149/375/30 -f 153/377/19 154/378/19 155/379/19 -f 154/378/19 156/380/19 155/379/19 -f 157/381/20 158/382/20 159/383/20 -f 158/382/20 160/384/20 159/383/20 -f 157/385/32 159/386/32 155/387/32 -f 159/386/32 153/388/32 155/387/32 -f 160/389/35 158/390/35 154/391/35 -f 158/390/35 156/392/35 154/391/35 -f 159/393/33 160/394/33 153/395/33 -f 160/394/33 154/396/33 153/395/33 -f 155/397/34 156/398/34 157/399/34 -f 156/398/34 158/400/34 157/399/34 -f 161/401/19 162/402/19 163/403/19 -f 162/402/19 164/404/19 163/403/19 -f 165/405/20 166/406/20 167/407/20 -f 166/406/20 168/408/20 167/407/20 -f 168/409/36 166/410/36 162/411/36 -f 166/410/36 164/412/36 162/411/36 -f 167/413/25 168/414/25 161/415/25 -f 168/414/25 162/416/25 161/415/25 -f 163/417/26 164/418/26 165/419/26 -f 164/418/26 166/420/26 165/419/26 -f 169/421/19 170/422/19 171/423/19 -f 170/422/19 172/424/19 171/423/19 -f 173/425/20 174/426/20 175/427/20 -f 174/426/20 176/428/20 175/427/20 -f 173/429/32 175/430/32 171/431/32 -f 175/430/32 169/432/32 171/431/32 -f 175/433/33 176/434/33 169/435/33 -f 176/434/33 170/436/33 169/435/33 -f 177/437/19 178/438/19 179/439/19 -f 178/438/19 180/440/19 179/439/19 -f 181/441/20 182/442/20 183/443/20 -f 182/442/20 184/444/20 183/443/20 -f 184/445/31 182/446/31 178/447/31 -f 182/446/31 180/448/31 178/447/31 -f 183/449/22 184/450/22 177/451/22 -f 184/450/22 178/452/22 177/451/22 -f 179/453/23 180/454/23 181/455/23 -f 180/454/23 182/456/23 181/455/23 -f 185/457/19 186/458/19 187/459/19 -f 186/458/19 188/460/19 187/459/19 -f 189/461/20 190/462/20 191/463/20 -f 190/462/20 192/464/20 191/463/20 -f 191/465/33 192/466/33 185/467/33 -f 192/466/33 186/468/33 185/467/33 -f 193/469/19 194/470/19 195/471/19 -f 194/470/19 196/472/19 195/471/19 -f 197/473/20 198/474/20 199/475/20 -f 198/474/20 200/476/20 199/475/20 -f 199/477/25 200/478/25 193/479/25 -f 200/478/25 194/480/25 193/479/25 -f 201/481/19 202/482/19 203/483/19 -f 202/482/19 204/484/19 203/483/19 -f 205/485/20 206/486/20 207/487/20 -f 206/486/20 208/488/20 207/487/20 -f 205/489/21 207/490/21 203/491/21 -f 207/490/21 201/492/21 203/491/21 -f 208/493/31 206/494/31 202/495/31 -f 206/494/31 204/496/31 202/495/31 -f 207/497/22 208/498/22 201/499/22 -f 208/498/22 202/500/22 201/499/22 -f 203/501/23 204/502/23 205/503/23 -f 204/502/23 206/504/23 205/503/23 -f 209/505/19 210/506/19 211/507/19 -f 210/506/19 212/508/19 211/507/19 -f 213/509/20 214/510/20 215/511/20 -f 214/510/20 216/512/20 215/511/20 -f 215/513/33 216/514/33 209/515/33 -f 216/514/33 210/516/33 209/515/33 -o Hammer -v 0.009894 0.159364 0.192004 -v 0.009894 0.127600 0.223769 -v 0.009894 0.115170 0.147810 -v 0.009894 0.083406 0.179575 -v -0.009638 0.115170 0.147810 -v -0.009638 0.083406 0.179575 -v -0.009638 0.159364 0.192004 -v -0.009638 0.127600 0.223769 -v 0.009894 0.151487 0.265041 -v 0.009894 0.135862 0.265041 -v 0.009894 0.151487 0.220119 -v 0.009894 0.135862 0.220119 -v -0.009638 0.151487 0.220119 -v -0.009638 0.135862 0.220119 -v -0.009638 0.151487 0.265041 -v -0.009638 0.135862 0.265041 -v 0.009894 0.149695 0.230343 -v 0.009894 0.138646 0.241391 -v 0.009894 0.112406 0.193054 -v 0.009894 0.101357 0.204103 -v -0.009638 0.112406 0.193054 -v -0.009638 0.101357 0.204103 -v -0.009638 0.149695 0.230343 -v -0.009638 0.138646 0.241391 -v 0.009894 0.151488 0.220120 -v 0.009894 0.140439 0.231168 -v 0.009894 0.119723 0.188355 -v 0.009894 0.108675 0.199404 -v -0.009638 0.119723 0.188355 -v -0.009638 0.108675 0.199404 -v -0.009638 0.151488 0.220120 -v -0.009638 0.140439 0.231168 -v 0.009894 0.100022 0.248635 -v 0.009894 0.065737 0.234434 -v 0.009894 0.111980 0.219764 -v 0.009894 0.077696 0.205562 -v -0.009638 0.111980 0.219764 -v -0.009638 0.077696 0.205562 -v -0.009638 0.100022 0.248635 -v -0.009638 0.065737 0.234434 -vt 0.024914 0.671166 -vt 0.024914 0.581323 -vt 0.149915 0.671166 -vt 0.149915 0.581323 -vt 0.850086 0.671166 -vt 0.850086 0.581323 -vt 0.975086 0.671166 -vt 0.975086 0.581323 -vt 0.484375 0.149914 -vt 0.484375 0.024914 -vt 0.523438 0.149914 -vt 0.523438 0.024914 -vt 0.484375 0.671166 -vt 0.484375 0.581323 -vt 0.523438 0.671166 -vt 0.523438 0.581323 -vt 0.000000 0.717492 -vt 0.000000 0.686242 -vt 0.068825 0.717492 -vt 0.068825 0.686242 -vt 0.931175 0.717492 -vt 0.931175 0.686242 -vt 1.000000 0.717492 -vt 1.000000 0.686242 -vt 0.484375 0.068825 -vt 0.484375 0.000000 -vt 0.523438 0.068825 -vt 0.523438 0.000000 -vt 0.484375 1.000000 -vt 0.484375 0.931175 -vt 0.523438 1.000000 -vt 0.523438 0.931175 -vt 0.484375 0.717492 -vt 0.484375 0.686242 -vt 0.523438 0.717492 -vt 0.523438 0.686242 -vt 0.000000 0.648480 -vt 0.000000 0.617230 -vt 0.100860 0.648480 -vt 0.100860 0.617230 -vt 0.899140 0.648480 -vt 0.899140 0.617230 -vt 1.000000 0.648480 -vt 1.000000 0.617230 -vt 0.484375 0.100860 -vt 0.484375 0.000000 -vt 0.523438 0.100860 -vt 0.523438 0.000000 -vt 0.484375 1.000000 -vt 0.484375 0.899140 -vt 0.523438 1.000000 -vt 0.523438 0.899140 -vt 0.020413 0.663117 -vt 0.020413 0.631867 -vt 0.110257 0.663117 -vt 0.110257 0.631867 -vt 0.889743 0.663117 -vt 0.889743 0.631867 -vt 0.979587 0.663117 -vt 0.979587 0.631867 -vt 0.484375 0.110257 -vt 0.484375 0.020413 -vt 0.523438 0.110257 -vt 0.523438 0.020413 -vt 0.484375 0.979587 -vt 0.484375 0.889743 -vt 0.523438 0.979587 -vt 0.523438 0.889743 -vt 0.035439 0.644131 -vt 0.035439 0.569912 -vt 0.097939 0.644131 -vt 0.097939 0.569912 -vt 0.902061 0.644131 -vt 0.902061 0.569912 -vt 0.964561 0.644131 -vt 0.964561 0.569912 -vt 0.484375 0.097939 -vt 0.484375 0.035439 -vt 0.523438 0.097939 -vt 0.523438 0.035439 -vt 0.484375 0.644131 -vt 0.484375 0.569912 -vt 0.523438 0.644131 -vt 0.523438 0.569912 -vt 0.476562 0.644131 -vt 0.476562 0.569912 -vt 0.515625 0.644131 -vt 0.515625 0.569912 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 -0.9239 -s off -f 217/517/37 218/518/37 219/519/37 -f 218/518/37 220/520/37 219/519/37 -f 221/521/38 222/522/38 223/523/38 -f 222/522/38 224/524/38 223/523/38 -f 221/525/39 223/526/39 219/527/39 -f 223/526/39 217/528/39 219/527/39 -f 223/529/40 224/530/40 217/531/40 -f 224/530/40 218/532/40 217/531/40 -f 225/533/37 226/534/37 227/535/37 -f 226/534/37 228/536/37 227/535/37 -f 229/537/38 230/538/38 231/539/38 -f 230/538/38 232/540/38 231/539/38 -f 229/541/41 231/542/41 227/543/41 -f 231/542/41 225/544/41 227/543/41 -f 232/545/42 230/546/42 226/547/42 -f 230/546/42 228/548/42 226/547/42 -f 231/549/43 232/550/43 225/551/43 -f 232/550/43 226/552/43 225/551/43 -f 233/553/37 234/554/37 235/555/37 -f 234/554/37 236/556/37 235/555/37 -f 237/557/38 238/558/38 239/559/38 -f 238/558/38 240/560/38 239/559/38 -f 237/561/39 239/562/39 235/563/39 -f 239/562/39 233/564/39 235/563/39 -f 240/565/44 238/566/44 234/567/44 -f 238/566/44 236/568/44 234/567/44 -f 241/569/37 242/570/37 243/571/37 -f 242/570/37 244/572/37 243/571/37 -f 245/573/38 246/574/38 247/575/38 -f 246/574/38 248/576/38 247/575/38 -f 245/577/39 247/578/39 243/579/39 -f 247/578/39 241/580/39 243/579/39 -f 248/581/44 246/582/44 242/583/44 -f 246/582/44 244/584/44 242/583/44 -f 249/585/37 250/586/37 251/587/37 -f 250/586/37 252/588/37 251/587/37 -f 253/589/38 254/590/38 255/591/38 -f 254/590/38 256/592/38 255/591/38 -f 253/593/45 255/594/45 251/595/45 -f 255/594/45 249/596/45 251/595/45 -f 255/597/46 256/598/46 249/599/46 -f 256/598/46 250/600/46 249/599/46 -f 251/601/47 252/602/47 253/603/47 -f 252/602/47 254/604/47 253/603/47 o Body v 0.011850 0.155047 -0.051250 v 0.011850 0.141375 -0.051250 @@ -1778,6 +563,40 @@ v -0.015494 -0.003971 0.123369 v -0.015494 -0.028275 0.123369 v -0.015494 -0.003971 0.144853 v -0.015494 -0.028275 0.144853 +v 0.009894 0.100022 0.248635 +v 0.009894 0.065737 0.234434 +v 0.009894 0.111980 0.219764 +v 0.009894 0.077696 0.205562 +v -0.009638 0.111980 0.219764 +v -0.009638 0.077696 0.205562 +v -0.009638 0.100022 0.248635 +v -0.009638 0.065737 0.234434 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.0000 0.9239 0.3827 +vn 0.7072 0.7071 -0.0000 +vn -0.0000 0.3827 0.9239 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 0.7071 0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 -0.9239 -0.3827 +vn -0.0000 -0.3827 0.9239 +vn -0.0000 0.3827 -0.9239 vt 0.611563 0.724609 vt 0.611563 0.697266 vt 1.000000 0.724609 @@ -1806,10 +625,6 @@ vt 0.480469 1.000000 vt 0.480469 0.611563 vt 0.527344 1.000000 vt 0.527344 0.611563 -vt 0.480469 0.388437 -vt 0.480469 0.000000 -vt 0.527344 0.388437 -vt 0.527344 0.000000 vt 0.472656 0.638787 vt 0.472656 0.611443 vt 0.519531 0.638787 @@ -1870,14 +685,6 @@ vt 0.525334 0.691463 vt 0.525334 0.644588 vt 0.552678 0.691463 vt 0.552678 0.644588 -vt 0.611563 0.691463 -vt 0.611563 0.644588 -vt 1.000000 0.691463 -vt 1.000000 0.644588 -vt 0.000000 0.691463 -vt 0.000000 0.644588 -vt 0.388437 0.691463 -vt 0.388437 0.644588 vt 0.533146 1.000000 vt 0.533146 0.611563 vt 0.560490 1.000000 @@ -1891,13 +698,9 @@ vt 0.439510 0.644588 vt 0.466854 0.691463 vt 0.466854 0.644588 vt 0.611563 0.658318 -vt 0.611563 0.611443 vt 1.000000 0.658318 -vt 1.000000 0.611443 vt 0.000000 0.658318 -vt 0.000000 0.611443 vt 0.388437 0.658318 -vt 0.388437 0.611443 vt 0.480469 0.658318 vt 0.480469 0.611443 vt 0.507812 0.658318 @@ -1905,7 +708,6 @@ vt 0.507812 0.611443 vt 0.492188 0.658318 vt 0.492188 0.611443 vt 0.519531 0.658318 -vt 0.519531 0.611443 vt 0.611563 0.719004 vt 0.611563 0.672129 vt 1.000000 0.719004 @@ -1923,29 +725,15 @@ vt 0.431502 0.672129 vt 0.458846 0.719004 vt 0.458846 0.672129 vt 0.611563 0.732422 -vt 0.611563 0.724609 vt 1.000000 0.732422 -vt 1.000000 0.724609 vt 0.000000 0.732422 -vt 0.000000 0.724609 vt 0.388437 0.732422 -vt 0.388437 0.724609 -vt 0.480469 1.000000 -vt 0.480469 0.611563 -vt 0.527344 1.000000 -vt 0.527344 0.611563 vt 0.472656 0.732422 -vt 0.472656 0.724609 vt 0.519531 0.732422 -vt 0.519531 0.724609 vt 0.611563 0.744141 -vt 0.611563 0.732422 vt 1.000000 0.744141 -vt 1.000000 0.732422 vt 0.000000 0.744141 -vt 0.000000 0.732422 vt 0.388437 0.744141 -vt 0.388437 0.732422 vt 0.488281 1.000000 vt 0.488281 0.611563 vt 0.519531 1.000000 @@ -1962,10 +750,6 @@ vt 0.000000 0.767578 vt 0.000000 0.759766 vt 0.388437 0.767578 vt 0.388437 0.759766 -vt 0.488281 1.000000 -vt 0.488281 0.611563 -vt 0.519531 1.000000 -vt 0.519531 0.611563 vt 0.488281 0.388437 vt 0.488281 0.000000 vt 0.519531 0.388437 @@ -1986,10 +770,6 @@ vt 0.488281 0.759766 vt 0.488281 0.744141 vt 0.519531 0.759766 vt 0.519531 0.744141 -vt 0.480469 0.759766 -vt 0.480469 0.744141 -vt 0.511719 0.759766 -vt 0.511719 0.744141 vt 0.089688 0.759766 vt 0.089688 0.744141 vt 0.212187 0.759766 @@ -1998,14 +778,6 @@ vt 0.787812 0.759766 vt 0.787812 0.744141 vt 0.910312 0.759766 vt 0.910312 0.744141 -vt 0.488281 0.759766 -vt 0.488281 0.744141 -vt 0.519531 0.759766 -vt 0.519531 0.744141 -vt 0.480469 0.759766 -vt 0.480469 0.744141 -vt 0.511719 0.759766 -vt 0.511719 0.744141 vt 0.807813 0.759766 vt 0.807813 0.744141 vt 0.930313 0.759766 @@ -2014,14 +786,6 @@ vt 0.069688 0.759766 vt 0.069688 0.744141 vt 0.192188 0.759766 vt 0.192188 0.744141 -vt 0.488281 0.759766 -vt 0.488281 0.744141 -vt 0.519531 0.759766 -vt 0.519531 0.744141 -vt 0.480469 0.759766 -vt 0.480469 0.744141 -vt 0.511719 0.759766 -vt 0.511719 0.744141 vt 0.611562 0.759766 vt 0.611562 0.744141 vt 0.664062 0.759766 @@ -2030,10 +794,6 @@ vt 0.335938 0.759766 vt 0.335938 0.744141 vt 0.388438 0.759766 vt 0.388438 0.744141 -vt 0.480469 0.759766 -vt 0.480469 0.744141 -vt 0.511719 0.759766 -vt 0.511719 0.744141 vt 0.611563 0.768173 vt 0.611563 0.760360 vt 1.000000 0.768173 @@ -2061,9 +821,7 @@ vt 0.497894 0.766339 vt 0.349688 0.798828 vt 0.349688 0.759766 vt 0.389062 0.798828 -vt 0.389062 0.759766 vt 0.610937 0.798828 -vt 0.610937 0.759766 vt 0.650312 0.798828 vt 0.650312 0.759766 vt 0.500000 0.389062 @@ -2102,17 +860,12 @@ vt 0.677282 0.778632 vt 0.677282 0.770819 vt 0.703063 0.778632 vt 0.703063 0.770819 -vt 0.611563 0.611443 vt 0.611563 0.568474 -vt 1.000000 0.611443 vt 1.000000 0.568474 -vt 0.000000 0.611443 vt 0.000000 0.568474 -vt 0.388437 0.611443 vt 0.388437 0.568474 vt 0.484375 0.611443 vt 0.484375 0.568474 -vt 0.507812 0.611443 vt 0.507812 0.568474 vt 0.611563 0.597828 vt 0.611563 0.554859 @@ -2155,33 +908,22 @@ vt 0.500948 0.571433 vt 0.524385 0.614402 vt 0.524385 0.571433 vt 0.000000 0.594871 -vt 0.000000 0.571433 vt 0.388437 0.594871 -vt 0.388437 0.571433 -vt 0.475615 1.000000 -vt 0.475615 0.611563 vt 0.518584 1.000000 vt 0.518584 0.611563 -vt 0.475615 0.388437 -vt 0.475615 0.000000 vt 0.518584 0.388437 vt 0.518584 0.000000 vt 0.481416 0.594871 vt 0.481416 0.571433 vt 0.524385 0.594871 -vt 0.524385 0.571433 vt 0.000000 0.618308 -vt 0.000000 0.594871 vt 0.388437 0.618308 -vt 0.388437 0.594871 vt 0.497042 0.618308 vt 0.497042 0.594871 vt 0.524386 0.618308 vt 0.524386 0.594871 vt 0.611563 0.594871 -vt 0.611563 0.571433 vt 1.000000 0.594871 -vt 1.000000 0.571433 vt 0.504854 1.000000 vt 0.504854 0.611563 vt 0.532197 1.000000 @@ -2282,8 +1024,6 @@ vt 0.383972 0.632275 vt 0.383972 0.597470 vt 0.488029 0.632275 vt 0.488029 0.597470 -vt 0.458917 0.616027 -vt 0.458917 0.511971 vt 0.498449 0.616027 vt 0.498449 0.511971 vt 0.458917 0.632275 @@ -2410,14 +1150,6 @@ vt 0.432683 0.693698 vt 0.432683 0.640261 vt 0.463854 0.693698 vt 0.463854 0.640261 -vt 0.512513 0.693698 -vt 0.512513 0.640261 -vt 0.615113 0.693698 -vt 0.615113 0.640261 -vt 0.384887 0.693698 -vt 0.384887 0.640261 -vt 0.487487 0.693698 -vt 0.487487 0.640261 vt 0.438307 0.615113 vt 0.438307 0.512513 vt 0.469479 0.615113 @@ -2480,9 +1212,7 @@ vt 0.454724 0.725094 vt 0.454724 0.671657 vt 0.226796 0.775391 vt 0.226796 0.740234 -vt 0.568593 0.775391 vt 0.568593 0.740234 -vt 0.431407 0.775391 vt 0.431407 0.740234 vt 0.773204 0.775391 vt 0.773204 0.740234 @@ -2510,14 +1240,10 @@ vt 0.773204 0.767578 vt 0.773204 0.453126 vt 0.835704 0.767578 vt 0.835704 0.453126 -vt 0.460938 0.226796 vt 0.460938 0.164296 -vt 0.546875 0.226796 vt 0.546875 0.164296 vt 0.460938 0.835704 -vt 0.460938 0.773204 vt 0.546875 0.835704 -vt 0.546875 0.773204 vt 0.460938 0.767578 vt 0.460938 0.453126 vt 0.546875 0.767578 @@ -2527,25 +1253,17 @@ vt 0.453125 0.453126 vt 0.539062 0.767578 vt 0.539062 0.453126 vt 0.226796 0.787109 -vt 0.226796 0.775391 vt 0.359609 0.787109 vt 0.359609 0.775391 vt 0.640391 0.787109 vt 0.640391 0.775391 vt 0.773204 0.787109 -vt 0.773204 0.775391 vt 0.460938 0.359609 -vt 0.460938 0.226796 vt 0.546875 0.359609 -vt 0.546875 0.226796 vt 0.460938 0.787109 -vt 0.460938 0.775391 vt 0.546875 0.787109 -vt 0.546875 0.775391 vt 0.453125 0.787109 -vt 0.453125 0.775391 vt 0.539062 0.787109 -vt 0.539062 0.775391 vt 0.511125 0.598432 vt 0.511125 0.504291 vt 0.616375 0.598432 @@ -2613,9 +1331,7 @@ vt 0.539062 0.646484 vt 0.171687 0.514343 vt 0.171687 0.453404 vt 0.595297 0.514343 -vt 0.595297 0.453404 vt 0.404703 0.514343 -vt 0.404703 0.453404 vt 0.828313 0.514343 vt 0.828313 0.453404 vt 0.468751 0.595297 @@ -2627,9 +1343,7 @@ vt 0.468751 0.404703 vt 0.537501 0.828313 vt 0.537501 0.404703 vt 0.462499 0.514343 -vt 0.462499 0.453404 vt 0.531249 0.514343 -vt 0.531249 0.453404 vt 0.115577 0.764836 vt 0.115577 0.643743 vt 0.146827 0.764836 @@ -2814,8 +1528,6 @@ vt 0.773204 0.798828 vt 0.773204 0.765626 vt 0.835704 0.798828 vt 0.835704 0.765626 -vt 0.460938 0.226796 -vt 0.460938 0.164296 vt 0.476562 0.226796 vt 0.476562 0.164296 vt 0.460938 0.798828 @@ -2827,23 +1539,15 @@ vt 0.523438 0.765626 vt 0.539062 0.798828 vt 0.539062 0.765626 vt 0.164296 0.800782 -vt 0.164296 0.767578 vt 0.226796 0.800782 -vt 0.226796 0.767578 vt 0.773204 0.800782 -vt 0.773204 0.767578 vt 0.835704 0.800782 -vt 0.835704 0.767578 vt 0.535156 0.226796 vt 0.535156 0.164296 -vt 0.546875 0.226796 -vt 0.546875 0.164296 vt 0.535156 0.800782 vt 0.535156 0.767578 vt 0.546875 0.800782 -vt 0.546875 0.767578 vt 0.453125 0.800782 -vt 0.453125 0.767578 vt 0.464844 0.800782 vt 0.464844 0.767578 vt 0.401391 0.545360 @@ -2951,9 +1655,7 @@ vt 0.472658 0.087111 vt 0.533595 0.166971 vt 0.533595 0.087111 vt 0.472658 0.912890 -vt 0.472658 0.833030 vt 0.533595 0.912890 -vt 0.533595 0.833030 vt 0.110501 0.463387 vt 0.110501 0.321028 vt 0.141751 0.463387 @@ -2963,13 +1665,9 @@ vt 0.858249 0.321028 vt 0.889499 0.463387 vt 0.889499 0.321028 vt 0.472658 0.463387 -vt 0.472658 0.321028 vt 0.533595 0.463387 -vt 0.533595 0.321028 vt 0.466405 0.463387 -vt 0.466405 0.321028 vt 0.527342 0.463387 -vt 0.527342 0.321028 vt 0.215787 0.468493 vt 0.215787 0.388634 vt 0.262662 0.468493 @@ -3022,651 +1720,1697 @@ vt 0.466405 0.406572 vt 0.466405 0.357963 vt 0.527342 0.406572 vt 0.527342 0.357963 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 0.0000 +vt 0.035439 0.644131 +vt 0.035439 0.569912 +vt 0.097939 0.644131 +vt 0.097939 0.569912 +vt 0.902061 0.644131 +vt 0.902061 0.569912 +vt 0.964561 0.644131 +vt 0.964561 0.569912 +vt 0.484375 0.097939 +vt 0.484375 0.035439 +vt 0.523438 0.097939 +vt 0.523438 0.035439 +vt 0.484375 0.644131 +vt 0.484375 0.569912 +vt 0.523438 0.644131 +vt 0.523438 0.569912 +vt 0.476562 0.644131 +vt 0.476562 0.569912 +vt 0.515625 0.644131 +vt 0.515625 0.569912 +s 0 +f 1/1/1 2/2/1 3/3/1 +f 2/2/1 4/4/1 3/3/1 +f 5/5/2 6/6/2 7/7/2 +f 6/6/2 8/8/2 7/7/2 +f 8/9/3 6/10/3 2/11/3 +f 6/10/3 4/12/3 2/11/3 +f 3/13/4 4/14/4 5/15/4 +f 4/14/4 6/16/4 5/15/4 +f 9/17/1 10/18/1 11/19/1 +f 10/18/1 12/20/1 11/19/1 +f 13/21/2 14/22/2 15/23/2 +f 14/22/2 16/24/2 15/23/2 +f 13/25/5 15/26/5 11/27/5 +f 15/26/5 9/28/5 11/27/5 +f 16/9/3 14/10/3 10/11/3 +f 14/10/3 12/12/3 10/11/3 +f 11/29/4 12/30/4 13/31/4 +f 12/30/4 14/32/4 13/31/4 +f 17/33/6 18/34/6 19/35/6 +f 18/34/6 20/36/6 19/35/6 +f 21/37/7 22/38/7 23/39/7 +f 22/38/7 24/40/7 23/39/7 +f 23/41/8 24/42/8 17/43/8 +f 24/42/8 18/44/8 17/43/8 +f 19/45/4 20/46/4 21/47/4 +f 20/46/4 22/48/4 21/47/4 +f 25/49/6 26/50/6 27/51/6 +f 26/50/6 28/52/6 27/51/6 +f 29/53/7 30/54/7 31/55/7 +f 30/54/7 32/56/7 31/55/7 +f 31/57/8 32/58/8 25/59/8 +f 32/58/8 26/60/8 25/59/8 +f 27/61/4 28/62/4 29/63/4 +f 28/62/4 30/64/4 29/63/4 +f 33/65/1 34/66/1 35/67/1 +f 34/66/1 36/68/1 35/67/1 +f 37/69/2 38/70/2 39/71/2 +f 38/70/2 40/72/2 39/71/2 +f 37/73/5 39/74/5 35/75/5 +f 39/74/5 33/76/5 35/75/5 +f 40/77/3 38/78/3 34/79/3 +f 38/78/3 36/80/3 34/79/3 +f 39/81/8 40/82/8 33/83/8 +f 40/82/8 34/84/8 33/83/8 +f 35/85/4 36/86/4 37/87/4 +f 36/86/4 38/88/4 37/87/4 +f 41/65/1 42/66/1 43/67/1 +f 42/66/1 44/68/1 43/67/1 +f 45/69/2 46/70/2 47/71/2 +f 46/70/2 48/72/2 47/71/2 +f 45/89/5 47/90/5 43/91/5 +f 47/90/5 41/92/5 43/91/5 +f 48/93/3 46/94/3 42/95/3 +f 46/94/3 44/96/3 42/95/3 +f 43/97/4 44/98/4 45/99/4 +f 44/98/4 46/100/4 45/99/4 +f 49/101/9 50/18/9 51/102/9 +f 50/18/9 52/20/9 51/102/9 +f 53/103/10 54/22/10 55/104/10 +f 54/22/10 56/24/10 55/104/10 +f 55/105/8 56/106/8 49/107/8 +f 56/106/8 50/108/8 49/107/8 +f 51/109/4 52/110/4 53/111/4 +f 52/110/4 54/32/4 53/111/4 +f 57/112/9 58/113/9 59/114/9 +f 58/113/9 60/115/9 59/114/9 +f 61/116/10 62/117/10 63/118/10 +f 62/117/10 64/119/10 63/118/10 +f 63/120/8 64/121/8 57/122/8 +f 64/121/8 58/123/8 57/122/8 +f 59/124/4 60/125/4 61/126/4 +f 60/125/4 62/127/4 61/126/4 +f 65/128/1 66/1/1 67/129/1 +f 66/1/1 68/3/1 67/129/1 +f 69/130/2 70/5/2 71/131/2 +f 70/5/2 72/7/2 71/131/2 +f 69/25/5 71/26/5 67/27/5 +f 71/26/5 65/28/5 67/27/5 +f 67/132/4 68/13/4 69/133/4 +f 68/13/4 70/15/4 69/133/4 +f 73/134/1 74/128/1 75/135/1 +f 74/128/1 76/129/1 75/135/1 +f 77/136/2 78/130/2 79/137/2 +f 78/130/2 80/131/2 79/137/2 +f 77/138/5 79/139/5 75/140/5 +f 79/139/5 73/141/5 75/140/5 +f 75/142/4 76/143/4 77/144/4 +f 76/143/4 78/145/4 77/144/4 +f 81/146/1 82/147/1 83/148/1 +f 82/147/1 84/149/1 83/148/1 +f 85/150/2 86/151/2 87/152/2 +f 86/151/2 88/153/2 87/152/2 +f 85/138/5 87/139/5 83/140/5 +f 87/139/5 81/141/5 83/140/5 +f 88/154/3 86/155/3 82/156/3 +f 86/155/3 84/157/3 82/156/3 +f 83/158/4 84/159/4 85/160/4 +f 84/159/4 86/161/4 85/160/4 +f 89/162/1 90/163/1 91/164/1 +f 90/163/1 92/165/1 91/164/1 +f 93/166/2 94/167/2 95/168/2 +f 94/167/2 96/169/2 95/168/2 +f 95/170/8 96/171/8 89/172/8 +f 96/171/8 90/173/8 89/172/8 +f 91/159/4 92/142/4 93/161/4 +f 92/142/4 94/144/4 93/161/4 +f 97/174/1 98/175/1 99/176/1 +f 98/175/1 100/177/1 99/176/1 +f 101/178/2 102/179/2 103/180/2 +f 102/179/2 104/181/2 103/180/2 +f 103/170/8 104/171/8 97/172/8 +f 104/171/8 98/173/8 97/172/8 +f 99/159/4 100/142/4 101/161/4 +f 100/142/4 102/144/4 101/161/4 +f 105/182/1 106/183/1 107/184/1 +f 106/183/1 108/185/1 107/184/1 +f 109/186/2 110/187/2 111/188/2 +f 110/187/2 112/189/2 111/188/2 +f 111/170/8 112/171/8 105/172/8 +f 112/171/8 106/173/8 105/172/8 +f 107/159/4 108/142/4 109/161/4 +f 108/142/4 110/144/4 109/161/4 +f 113/190/1 114/191/1 115/192/1 +f 114/191/1 116/193/1 115/192/1 +f 117/194/2 118/195/2 119/196/2 +f 118/195/2 120/197/2 119/196/2 +f 115/159/4 116/142/4 117/161/4 +f 116/142/4 118/144/4 117/161/4 +f 121/198/11 122/199/11 123/200/11 +f 122/199/11 124/201/11 123/200/11 +f 125/202/12 126/203/12 123/204/12 +f 126/203/12 121/205/12 123/204/12 +f 123/206/4 124/207/4 125/208/4 +f 124/207/4 127/209/4 125/208/4 +f 128/210/13 129/211/13 130/212/13 +f 129/211/13 131/213/13 130/212/13 +f 128/214/14 130/215/14 132/216/14 +f 130/215/14 133/217/14 132/216/14 +f 132/218/4 134/219/4 128/220/4 +f 134/219/4 129/221/4 128/220/4 +f 135/222/1 136/223/1 137/224/1 +f 136/223/1 138/164/1 137/224/1 +f 139/225/2 140/166/2 141/226/2 +f 140/166/2 142/227/2 141/226/2 +f 139/228/5 141/229/5 137/230/5 +f 141/229/5 135/231/5 137/230/5 +f 137/232/4 138/233/4 139/234/4 +f 138/233/4 140/235/4 139/234/4 +f 143/236/1 144/237/1 145/238/1 +f 144/237/1 146/239/1 145/238/1 +f 147/240/2 148/241/2 149/242/2 +f 148/241/2 150/243/2 149/242/2 +f 147/244/15 149/245/15 145/246/15 +f 149/245/15 143/247/15 145/246/15 +f 151/248/1 152/249/1 153/250/1 +f 152/249/1 154/251/1 153/250/1 +f 155/252/2 156/253/2 157/254/2 +f 156/253/2 158/255/2 157/254/2 +f 159/256/1 160/257/1 161/258/1 +f 160/257/1 162/259/1 161/258/1 +f 163/260/2 164/261/2 165/262/2 +f 164/261/2 166/263/2 165/262/2 +f 167/18/1 168/264/1 169/20/1 +f 168/264/1 170/265/1 169/20/1 +f 171/22/2 172/266/2 173/24/2 +f 172/266/2 174/267/2 173/24/2 +f 169/268/4 170/269/4 171/108/4 +f 170/269/4 172/270/4 171/108/4 +f 175/271/1 176/272/1 177/273/1 +f 176/272/1 178/274/1 177/273/1 +f 179/275/2 180/276/2 181/277/2 +f 180/276/2 182/278/2 181/277/2 +f 182/279/3 180/280/3 176/281/3 +f 180/280/3 178/282/3 176/281/3 +f 177/283/4 178/284/4 179/285/4 +f 178/284/4 180/286/4 179/285/4 +f 183/287/6 184/288/6 185/289/6 +f 184/288/6 186/290/6 185/289/6 +f 187/291/7 188/292/7 189/293/7 +f 188/292/7 190/294/7 189/293/7 +f 187/295/16 189/296/16 185/297/16 +f 189/296/9 183/298/9 185/297/9 +f 190/299/10 188/300/10 184/301/10 +f 188/300/10 186/302/10 184/301/10 +f 189/303/8 190/304/8 183/305/8 +f 190/304/8 184/306/8 183/305/8 +f 185/307/4 186/308/4 187/309/4 +f 186/308/4 188/310/4 187/309/4 +f 191/311/2 192/292/2 193/312/2 +f 192/292/2 194/294/2 193/312/2 +f 191/295/5 193/296/5 195/313/5 +f 193/296/5 196/314/5 195/313/5 +f 194/299/3 192/300/3 197/315/3 +f 192/300/3 198/316/3 197/315/3 +f 195/317/4 198/318/4 191/319/4 +f 198/318/4 192/310/4 191/319/4 +f 199/320/7 200/311/7 201/321/7 +f 200/311/7 202/312/7 201/321/7 +f 203/322/4 204/323/4 199/324/4 +f 204/323/4 200/325/4 199/324/4 +f 205/326/1 206/288/1 207/327/1 +f 206/288/1 208/290/1 207/327/1 +f 209/328/5 210/329/5 207/330/5 +f 210/329/5 205/331/5 207/330/5 +f 211/332/3 212/333/3 206/334/3 +f 212/333/3 208/335/3 206/334/3 +f 207/336/4 208/337/4 209/338/4 +f 208/337/4 212/339/4 209/338/4 +f 213/340/6 214/341/6 215/342/6 +f 214/341/6 216/343/6 215/342/6 +f 217/344/7 218/345/7 219/346/7 +f 218/345/7 220/347/7 219/346/7 +f 217/348/9 219/349/9 215/350/9 +f 219/349/9 213/351/9 215/350/9 +f 220/352/10 218/353/10 214/354/10 +f 218/353/10 216/355/10 214/354/10 +f 219/356/8 220/357/8 213/358/8 +f 220/357/8 214/359/8 213/358/8 +f 215/360/4 216/361/4 217/362/4 +f 216/361/4 218/363/4 217/362/4 +f 221/364/9 222/365/9 223/366/9 +f 222/365/9 224/367/9 223/366/9 +f 223/368/4 225/369/4 221/370/4 +f 225/369/4 226/371/4 221/370/4 +f 227/372/1 228/373/1 229/374/1 +f 228/373/1 230/375/1 229/374/1 +f 231/376/2 232/377/2 233/378/2 +f 232/377/2 234/379/2 233/378/2 +f 231/380/5 233/381/5 229/382/5 +f 233/381/5 227/383/5 229/382/5 +f 233/384/8 234/385/8 227/386/8 +f 234/385/8 228/387/8 227/386/8 +f 235/388/7 236/389/7 237/390/7 +f 236/389/7 238/391/7 237/390/7 +f 238/392/10 236/393/10 239/394/10 +f 236/393/10 240/395/10 239/394/10 +f 237/396/8 238/397/8 241/398/8 +f 238/397/8 239/399/8 241/398/8 +f 242/400/4 240/401/4 235/402/4 +f 240/401/4 236/403/4 235/402/4 +f 243/404/2 244/405/2 245/406/2 +f 244/405/2 246/407/2 245/406/2 +f 243/408/5 245/409/5 247/410/5 +f 245/409/5 248/411/5 247/410/5 +f 246/412/3 244/413/3 249/414/3 +f 244/413/3 250/415/3 249/414/3 +f 245/416/8 246/417/8 248/418/8 +f 246/417/8 249/419/8 248/418/8 +f 247/420/4 250/421/4 243/422/4 +f 250/421/4 244/423/4 243/422/4 +f 251/424/7 252/425/7 253/426/7 +f 252/425/7 254/427/7 253/426/7 +f 251/408/9 253/409/9 255/428/9 +f 253/409/9 256/429/9 255/428/9 +f 253/430/8 254/431/8 256/432/8 +f 254/431/8 257/433/8 256/432/8 +f 255/434/4 258/435/4 251/436/4 +f 258/435/4 252/437/4 251/436/4 +f 259/438/1 260/439/1 261/440/1 +f 260/439/1 262/441/1 261/440/1 +f 263/442/5 264/443/5 261/444/5 +f 264/443/5 259/445/5 261/444/5 +f 265/446/3 266/447/3 260/448/3 +f 266/447/3 262/449/3 260/448/3 +f 264/450/8 265/451/8 259/452/8 +f 265/451/8 260/453/8 259/452/8 +f 261/454/4 262/455/4 263/456/4 +f 262/455/4 266/457/4 263/456/4 +f 267/458/6 268/459/6 269/460/6 +f 268/459/6 270/461/6 269/460/6 +f 271/462/9 272/463/9 269/464/9 +f 272/463/9 267/465/9 269/464/9 +f 272/466/8 273/467/8 267/468/8 +f 273/467/8 268/469/8 267/468/8 +f 269/470/4 270/471/4 271/472/4 +f 270/471/4 274/473/4 271/472/4 +f 275/474/7 276/475/7 277/476/7 +f 276/475/7 278/477/7 277/476/7 +f 275/478/9 277/479/9 279/480/9 +f 277/479/9 280/481/9 279/480/9 +f 277/482/8 278/483/8 280/484/8 +f 278/483/8 281/485/8 280/484/8 +f 279/486/4 282/487/4 275/488/4 +f 282/487/4 276/489/4 275/488/4 +f 283/490/1 284/491/1 285/492/1 +f 284/491/1 286/493/1 285/492/1 +f 287/494/2 288/495/2 289/496/2 +f 288/495/2 290/497/2 289/496/2 +f 287/498/5 289/499/5 285/500/5 +f 289/499/5 283/501/5 285/500/5 +f 289/502/8 290/503/8 283/504/8 +f 290/503/8 284/505/8 283/504/8 +f 285/506/4 286/507/4 287/508/4 +f 286/507/4 288/509/4 287/508/4 +f 291/510/9 292/511/9 293/512/9 +f 292/511/9 294/513/9 293/512/9 +f 295/514/10 296/515/10 297/516/10 +f 296/515/10 298/517/10 297/516/10 +f 298/518/6 296/519/6 292/520/6 +f 296/519/6 294/521/6 292/520/6 +f 297/522/8 298/523/8 291/524/8 +f 298/523/8 292/525/8 291/524/8 +f 293/526/4 294/527/4 295/528/4 +f 294/527/4 296/529/4 295/528/4 +f 299/530/1 300/531/1 301/532/1 +f 300/531/1 302/533/1 301/532/1 +f 303/534/2 304/535/2 305/536/2 +f 304/535/2 306/537/2 305/536/2 +f 303/538/5 305/539/5 301/540/5 +f 305/539/5 299/541/5 301/540/5 +f 306/542/3 304/543/3 300/544/3 +f 304/543/3 302/545/3 300/544/3 +f 305/546/8 306/547/8 299/548/8 +f 306/547/8 300/549/8 299/548/8 +f 301/550/4 302/551/4 303/552/4 +f 302/551/4 304/553/4 303/552/4 +f 307/530/1 308/531/1 309/532/1 +f 308/531/1 310/533/1 309/532/1 +f 311/534/2 312/535/2 313/536/2 +f 312/535/2 314/537/2 313/536/2 +f 311/554/5 313/555/5 309/556/5 +f 313/555/5 307/557/5 309/556/5 +f 314/558/3 312/559/3 308/560/3 +f 312/559/3 310/561/3 308/560/3 +f 313/562/8 314/563/8 307/564/8 +f 314/563/8 308/565/8 307/564/8 +f 309/566/4 310/567/4 311/568/4 +f 310/567/4 312/569/4 311/568/4 +f 315/570/7 316/571/7 317/572/7 +f 316/571/7 318/573/7 317/572/7 +f 317/574/8 318/575/8 319/576/8 +f 318/575/8 320/577/8 319/576/8 +f 321/578/4 322/579/4 315/580/4 +f 322/579/4 316/581/4 315/580/4 +f 323/582/6 324/583/6 325/584/6 +f 324/583/6 326/585/6 325/584/6 +f 327/586/7 328/587/7 329/588/7 +f 328/587/7 330/589/7 329/588/7 +f 330/590/10 328/591/10 324/592/10 +f 328/591/10 326/593/10 324/592/10 +f 329/594/8 330/595/8 323/596/8 +f 330/595/8 324/597/8 323/596/8 +f 325/598/4 326/599/4 327/600/4 +f 326/599/4 328/601/4 327/600/4 +f 331/602/9 332/603/9 333/604/9 +f 332/603/9 334/605/9 333/604/9 +f 335/606/8 336/607/8 331/608/8 +f 336/607/8 332/609/8 331/608/8 +f 333/610/4 334/611/4 337/612/4 +f 334/611/4 338/613/4 337/612/4 +f 339/614/1 340/615/1 341/490/1 +f 340/615/1 342/616/1 341/490/1 +f 343/496/2 344/617/2 345/618/2 +f 344/617/2 346/619/2 345/618/2 +f 343/620/5 345/621/5 341/622/5 +f 345/621/5 339/623/5 341/622/5 +f 346/624/3 344/625/3 340/626/3 +f 344/625/3 342/627/3 340/626/3 +f 345/628/8 346/629/8 339/630/8 +f 346/629/8 340/631/8 339/630/8 +f 341/632/4 342/633/4 343/634/4 +f 342/633/4 344/635/4 343/634/4 +f 347/636/1 348/637/1 349/638/1 +f 348/637/1 350/639/1 349/638/1 +f 351/640/2 352/641/2 353/642/2 +f 352/641/2 354/643/2 353/642/2 +f 351/621/5 353/644/5 349/623/5 +f 353/644/5 347/645/5 349/623/5 +f 354/646/3 352/624/3 348/647/3 +f 352/624/3 350/626/3 348/647/3 +f 353/648/8 354/649/8 347/650/8 +f 354/649/8 348/651/8 347/650/8 +f 349/652/4 350/653/4 351/654/4 +f 350/653/4 352/655/4 351/654/4 +f 355/656/1 356/614/1 357/657/1 +f 356/614/1 358/658/1 357/657/1 +f 359/659/2 360/660/2 361/661/2 +f 360/660/2 362/618/2 361/661/2 +f 359/662/5 361/621/5 357/663/5 +f 361/621/5 355/623/5 357/663/5 +f 361/664/8 362/628/8 355/665/8 +f 362/628/8 356/630/8 355/665/8 +f 357/666/4 358/632/4 359/667/4 +f 358/632/4 360/634/4 359/667/4 +f 363/668/1 364/669/1 365/670/1 +f 364/669/1 366/671/1 365/670/1 +f 367/672/2 368/673/2 369/674/2 +f 368/673/2 370/675/2 369/674/2 +f 367/676/5 369/677/5 365/678/5 +f 369/677/5 363/679/5 365/678/5 +f 370/680/3 368/681/3 364/682/3 +f 368/681/3 366/683/3 364/682/3 +f 369/684/8 370/685/8 363/686/8 +f 370/685/8 364/687/8 363/686/8 +f 365/688/4 366/689/4 367/690/4 +f 366/689/4 368/691/4 367/690/4 +f 371/692/1 372/693/1 373/694/1 +f 372/693/1 374/695/1 373/694/1 +f 375/696/2 376/697/2 377/698/2 +f 376/697/2 378/699/2 377/698/2 +f 377/700/17 378/701/17 371/702/17 +f 378/701/17 372/703/17 371/702/17 +f 373/704/18 374/705/18 375/706/18 +f 374/705/18 376/707/18 375/706/18 +f 379/708/1 380/709/1 381/710/1 +f 380/709/1 382/711/1 381/710/1 +f 383/712/2 384/713/2 385/714/2 +f 384/713/2 386/715/2 385/714/2 +f 383/716/5 385/717/5 381/718/5 +f 385/717/5 379/719/5 381/718/5 +f 386/720/3 384/721/3 380/722/3 +f 384/721/3 382/723/3 380/722/3 +f 385/724/8 386/725/8 379/726/8 +f 386/725/8 380/727/8 379/726/8 +f 381/728/4 382/729/4 383/730/4 +f 382/729/4 384/731/4 383/730/4 +f 387/732/1 388/733/1 389/734/1 +f 388/733/1 390/695/1 389/734/1 +f 391/735/2 392/697/2 393/736/2 +f 392/697/2 394/737/2 393/736/2 +f 391/738/5 393/739/5 389/740/5 +f 393/739/5 387/741/5 389/740/5 +f 394/742/3 392/743/3 388/744/3 +f 392/743/3 390/745/3 388/744/3 +f 389/746/4 390/705/4 391/747/4 +f 390/705/4 392/707/4 391/747/4 +f 395/748/1 396/749/1 397/750/1 +f 396/749/1 398/751/1 397/750/1 +f 399/752/2 400/753/2 401/754/2 +f 400/753/2 402/755/2 401/754/2 +f 402/756/19 400/757/19 396/758/19 +f 400/757/19 398/759/19 396/758/19 +f 401/760/17 402/761/17 395/762/17 +f 402/761/17 396/763/17 395/762/17 +f 397/764/18 398/765/18 399/766/18 +f 398/765/18 400/767/18 399/766/18 +f 403/768/1 404/769/1 405/770/1 +f 404/769/1 406/771/1 405/770/1 +f 407/772/2 408/773/2 409/774/2 +f 408/773/2 410/775/2 409/774/2 +f 407/776/20 409/777/20 405/778/20 +f 409/777/20 403/779/20 405/778/20 +f 410/780/21 408/781/21 404/782/21 +f 408/781/21 406/783/21 404/782/21 +f 409/784/22 410/785/22 403/786/22 +f 410/785/22 404/787/22 403/786/22 +f 405/788/23 406/789/23 407/790/23 +f 406/789/23 408/791/23 407/790/23 +f 411/792/1 412/793/1 413/794/1 +f 412/793/1 414/795/1 413/794/1 +f 415/796/2 416/797/2 417/798/2 +f 416/797/2 418/799/2 417/798/2 +f 415/800/5 417/801/5 413/802/5 +f 417/801/5 411/803/5 413/802/5 +f 418/804/3 416/805/3 412/806/3 +f 416/805/3 414/807/3 412/806/3 +f 413/808/4 414/809/4 415/810/4 +f 414/809/4 416/811/4 415/810/4 +f 419/812/1 420/813/1 421/814/1 +f 420/813/1 422/815/1 421/814/1 +f 423/816/2 424/817/2 425/818/2 +f 424/817/2 426/819/2 425/818/2 +f 423/820/15 425/821/15 421/822/15 +f 425/821/15 419/823/15 421/822/15 +f 426/824/24 424/825/24 420/826/24 +f 424/825/24 422/827/24 420/826/24 +f 425/828/25 426/829/25 419/830/25 +f 426/829/25 420/831/25 419/830/25 +f 421/832/26 422/833/26 423/834/26 +f 422/833/26 424/835/26 423/834/26 +f 427/836/1 428/837/1 429/838/1 +f 428/837/1 430/839/1 429/838/1 +f 431/840/2 432/841/2 433/842/2 +f 432/841/2 434/843/2 433/842/2 +f 431/844/5 433/845/5 429/846/5 +f 433/845/5 427/847/5 429/846/5 +f 434/848/3 432/849/3 428/850/3 +f 432/849/3 430/851/3 428/850/3 +f 433/852/8 434/853/8 427/854/8 +f 434/853/8 428/855/8 427/854/8 +f 429/856/4 430/857/4 431/858/4 +f 430/857/4 432/859/4 431/858/4 +f 435/860/1 436/861/1 437/862/1 +f 436/861/1 438/863/1 437/862/1 +f 439/864/2 440/865/2 441/866/2 +f 440/865/2 442/867/2 441/866/2 +f 439/868/5 441/869/5 437/870/5 +f 441/869/5 435/871/5 437/870/5 +f 442/872/3 440/873/3 436/874/3 +f 440/873/3 438/875/3 436/874/3 +f 441/876/8 442/877/8 435/878/8 +f 442/877/8 436/879/8 435/878/8 +f 437/880/4 438/881/4 439/882/4 +f 438/881/4 440/883/4 439/882/4 +f 443/884/1 444/885/1 445/886/1 +f 444/885/1 446/887/1 445/886/1 +f 447/888/2 448/889/2 449/890/2 +f 448/889/2 450/891/2 449/890/2 +f 447/892/5 449/893/5 445/894/5 +f 449/893/5 443/895/5 445/894/5 +f 450/896/3 448/897/3 444/898/3 +f 448/897/3 446/899/3 444/898/3 +f 449/900/8 450/901/8 443/902/8 +f 450/901/8 444/903/8 443/902/8 +f 451/904/1 452/905/1 453/906/1 +f 452/905/1 454/907/1 453/906/1 +f 455/908/2 456/909/2 457/910/2 +f 456/909/2 458/911/2 457/910/2 +f 458/912/23 456/913/23 452/914/23 +f 456/913/23 454/915/23 452/914/23 +f 457/916/21 458/917/21 451/918/21 +f 458/917/21 452/919/21 451/918/21 +f 453/920/20 454/921/20 455/922/20 +f 454/921/20 456/923/20 455/922/20 +f 459/924/1 460/925/1 461/926/1 +f 460/925/1 462/927/1 461/926/1 +f 463/928/2 464/929/2 465/930/2 +f 464/929/2 466/931/2 465/930/2 +f 463/621/5 465/644/5 461/932/5 +f 465/644/5 459/933/5 461/932/5 +f 465/934/8 466/935/8 459/936/8 +f 466/935/8 460/937/8 459/936/8 +f 461/938/4 462/939/4 463/940/4 +f 462/939/4 464/941/4 463/940/4 +f 467/942/1 468/636/1 469/943/1 +f 468/636/1 470/638/1 469/943/1 +f 471/944/2 472/640/2 473/945/2 +f 472/640/2 474/642/2 473/945/2 +f 471/946/5 473/947/5 469/623/5 +f 473/947/5 467/645/5 469/623/5 +f 473/948/8 474/949/8 467/950/8 +f 474/949/8 468/650/8 467/950/8 +f 469/951/4 470/652/4 471/952/4 +f 470/652/4 472/953/4 471/952/4 +f 475/954/1 476/955/1 477/956/1 +f 476/955/1 478/957/1 477/956/1 +f 479/958/2 480/959/2 481/960/2 +f 480/959/2 482/961/2 481/960/2 +f 479/962/15 481/963/15 477/964/15 +f 481/963/15 475/965/15 477/964/15 +f 482/966/24 480/967/24 476/968/24 +f 480/967/24 478/969/24 476/968/24 +f 481/970/25 482/971/25 475/972/25 +f 482/971/25 476/973/25 475/972/25 +f 483/974/1 484/975/1 485/976/1 +f 484/975/1 486/977/1 485/976/1 +f 487/978/2 488/979/2 489/980/2 +f 488/979/2 490/981/2 489/980/2 +f 490/982/21 488/983/21 484/984/21 +f 488/983/21 486/985/21 484/984/21 +f 491/986/1 492/987/1 493/988/1 +f 492/987/1 494/989/1 493/988/1 +f 495/990/2 496/991/2 497/992/2 +f 496/991/2 498/993/2 497/992/2 +f 493/994/18 494/995/18 495/996/18 +f 494/995/18 496/997/18 495/996/18 +f 499/998/1 500/999/1 501/1000/1 +f 500/999/1 502/1001/1 501/1000/1 +f 503/1002/2 504/1003/2 505/1004/2 +f 504/1003/2 506/1005/2 505/1004/2 +f 505/1006/8 506/1007/8 499/1008/8 +f 506/1007/8 500/1009/8 499/1008/8 +f 501/1010/4 502/1011/4 503/1012/4 +f 502/1011/4 504/1013/4 503/1012/4 +f 507/1014/1 508/1015/1 509/1016/1 +f 508/1015/1 510/1017/1 509/1016/1 +f 511/1018/2 512/1019/2 513/1020/2 +f 512/1019/2 514/1021/2 513/1020/2 +f 511/1022/22 513/1023/22 509/1024/22 +f 513/1023/22 507/1025/22 509/1024/22 +f 514/1026/23 512/1027/23 508/1028/23 +f 512/1027/23 510/1029/23 508/1028/23 +f 515/1030/1 516/1031/1 517/1032/1 +f 516/1031/1 518/1033/1 517/1032/1 +f 519/1034/2 520/1035/2 521/1036/2 +f 520/1035/2 522/1037/2 521/1036/2 +f 519/1038/5 521/1039/5 517/1040/5 +f 521/1039/5 515/1041/5 517/1040/5 +f 522/1042/3 520/1043/3 516/1044/3 +f 520/1043/3 518/1045/3 516/1044/3 +f 523/1046/1 524/1047/1 525/1048/1 +f 524/1047/1 526/1049/1 525/1048/1 +f 527/1050/2 528/1051/2 529/1052/2 +f 528/1051/2 530/1053/2 529/1052/2 +f 527/1054/20 529/1055/20 525/1056/20 +f 529/1055/20 523/1057/20 525/1056/20 +f 530/1058/21 528/1042/21 524/1059/21 +f 528/1042/21 526/1044/21 524/1059/21 +f 531/1060/1 532/1061/1 533/1062/1 +f 532/1061/1 534/1063/1 533/1062/1 +f 535/1064/2 536/1065/2 537/1066/2 +f 536/1065/2 538/1067/2 537/1066/2 +f 537/1068/8 538/1007/8 531/1069/8 +f 538/1007/8 532/1009/8 531/1069/8 +f 533/1070/4 534/1011/4 535/1071/4 +f 534/1011/4 536/1013/4 535/1071/4 +f 539/1072/1 540/1073/1 541/1074/1 +f 540/1073/1 542/1075/1 541/1074/1 +f 543/1076/2 544/1077/2 545/1078/2 +f 544/1077/2 546/1079/2 545/1078/2 +f 545/1080/17 546/1081/17 539/1082/17 +f 546/1081/17 540/1083/17 539/1082/17 +f 541/1084/18 542/1085/18 543/1086/18 +f 542/1085/18 544/1087/18 543/1086/18 +f 547/1088/1 548/1089/1 549/1090/1 +f 548/1089/1 550/1091/1 549/1090/1 +f 551/1092/2 552/1093/2 553/1094/2 +f 552/1093/2 554/1095/2 553/1094/2 +f 551/1096/20 553/1097/20 549/1098/20 +f 553/1097/20 547/1099/20 549/1098/20 +f 554/1100/21 552/1101/21 548/1102/21 +f 552/1101/21 550/1103/21 548/1102/21 +f 549/1104/23 550/1105/23 551/1106/23 +f 550/1105/23 552/1107/23 551/1106/23 +f 555/1108/1 556/1109/1 557/1110/1 +f 556/1109/1 558/1111/1 557/1110/1 +f 559/1112/2 560/1113/2 561/1114/2 +f 560/1113/2 562/1115/2 561/1114/2 +f 561/1116/8 562/1117/8 555/1118/8 +f 562/1117/8 556/1119/8 555/1118/8 +f 557/1120/4 558/1121/4 559/1122/4 +f 558/1121/4 560/1123/4 559/1122/4 +f 563/1124/1 564/1125/1 565/1126/1 +f 564/1125/1 566/1127/1 565/1126/1 +f 567/1128/2 568/1129/2 569/1130/2 +f 568/1129/2 570/1131/2 569/1130/2 +f 567/1132/15 569/1133/15 565/1134/15 +f 569/1133/15 563/1135/15 565/1134/15 +f 569/1136/25 570/1137/25 563/1138/25 +f 570/1137/25 564/1139/25 563/1138/25 +f 565/1140/26 566/1141/26 567/1142/26 +f 566/1141/26 568/1143/26 567/1142/26 +o Cylinder +v 0.040155 0.134253 0.138325 +v -0.032489 0.061608 0.138325 +v 0.040155 0.134253 0.000825 +v -0.032489 0.061608 0.000825 +v 0.030419 0.143989 0.000825 +v -0.042225 0.071345 0.000825 +v 0.030419 0.143989 0.138325 +v -0.042225 0.071345 0.138325 +v 0.014778 0.156219 0.138325 +v 0.014778 0.053094 0.138325 +v 0.014778 0.156219 0.000825 +v 0.014778 0.053094 0.000825 +v -0.015300 0.156219 0.000825 +v -0.015300 0.053094 0.000825 +v -0.015300 0.156219 0.138325 +v -0.015300 0.053094 0.138325 +v 0.040951 0.136693 0.138325 +v 0.052051 0.109897 0.138325 +v 0.040951 0.136693 0.000825 +v 0.052051 0.109897 0.000825 +v -0.055316 0.096818 0.000825 +v -0.044217 0.070021 0.000825 +v -0.055316 0.096818 0.138325 +v -0.044217 0.070021 0.138325 +v 0.052632 0.096296 0.138325 +v 0.041944 0.070492 0.138325 +v 0.052632 0.096296 0.000825 +v 0.041944 0.070493 0.000825 +v -0.044628 0.136582 0.000825 +v -0.055316 0.110779 0.000825 +v -0.044628 0.136582 0.138325 +v -0.055316 0.110779 0.138325 +v 0.052103 0.110777 0.138325 +v 0.052103 0.096812 0.138325 +v 0.052103 0.110777 0.103950 +v 0.052103 0.096812 0.103950 +v -0.055319 0.110777 0.103950 +v -0.055319 0.096812 0.103950 +v -0.055319 0.110777 0.138325 +v -0.055319 0.096812 0.138325 +v 0.041306 0.136583 0.138325 +v 0.041306 0.069981 0.138325 +v 0.041306 0.136583 0.000825 +v 0.041306 0.069981 0.000825 +v -0.044631 0.136583 0.000825 +v -0.044631 0.069981 0.000825 +v -0.044631 0.136583 0.138325 +v -0.044631 0.069981 0.138325 +v -0.036145 0.147590 0.000825 +v -0.027101 0.125756 0.000825 +v -0.036145 0.147590 0.138325 +v -0.027101 0.125756 0.138325 +v -0.015304 0.156223 0.000825 +v -0.015304 0.156223 0.138325 +v -0.006260 0.134388 0.138325 +v -0.006260 0.134388 0.000825 +v 0.033630 0.148410 0.138325 +v 0.024586 0.126576 0.138325 +v 0.033630 0.148410 0.000825 +v 0.024586 0.126576 0.000825 +v 0.014774 0.156221 0.000825 +v 0.014774 0.156221 0.138325 +v 0.005730 0.134386 0.138325 +v 0.005730 0.134386 0.000825 +v 0.023594 0.082327 0.138325 +v 0.032639 0.060493 0.138325 +v 0.023594 0.082327 0.000825 +v 0.032639 0.060493 0.000825 +v 0.014774 0.053094 0.138325 +v 0.014774 0.053094 0.000825 +v 0.005730 0.074928 0.138325 +v 0.005730 0.074928 0.000825 +v -0.025114 0.082739 0.000825 +v -0.034158 0.060905 0.000825 +v -0.025114 0.082739 0.138325 +v -0.034158 0.060905 0.138325 +v -0.015301 0.053095 0.138325 +v -0.015301 0.053095 0.000825 +v -0.006257 0.074929 0.138325 +v -0.006257 0.074929 0.000825 +v 0.041811 0.073900 0.138325 +v 0.027931 0.060020 0.138325 +v 0.041811 0.073900 0.000825 +v 0.027931 0.060020 0.000825 +v -0.030834 0.146544 0.000825 +v -0.044713 0.132664 0.000825 +v -0.030834 0.146544 0.138325 +v -0.044713 0.132664 0.138325 vn 0.7071 -0.7071 -0.0000 -vn -0.7071 0.7071 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 vn -0.7071 -0.7071 -0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.3827 0.9239 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 -0.9239 -s off -f 257/605/48 258/606/48 259/607/48 -f 258/606/48 260/608/48 259/607/48 -f 261/609/49 262/610/49 263/611/49 -f 262/610/49 264/612/49 263/611/49 -f 264/613/50 262/614/50 258/615/50 -f 262/614/50 260/616/50 258/615/50 -f 259/617/51 260/618/51 261/619/51 -f 260/618/51 262/620/51 261/619/51 -f 265/621/48 266/622/48 267/623/48 -f 266/622/48 268/624/48 267/623/48 -f 269/625/49 270/626/49 271/627/49 -f 270/626/49 272/628/49 271/627/49 -f 269/629/52 271/630/52 267/631/52 -f 271/630/52 265/632/52 267/631/52 -f 272/633/50 270/634/50 266/635/50 -f 270/634/50 268/636/50 266/635/50 -f 267/637/51 268/638/51 269/639/51 -f 268/638/51 270/640/51 269/639/51 -f 273/641/53 274/642/53 275/643/53 -f 274/642/53 276/644/53 275/643/53 -f 277/645/54 278/646/54 279/647/54 -f 278/646/54 280/648/54 279/647/54 -f 279/649/55 280/650/55 273/651/55 -f 280/650/55 274/652/55 273/651/55 -f 275/653/51 276/654/51 277/655/51 -f 276/654/51 278/656/51 277/655/51 -f 281/657/53 282/658/53 283/659/53 -f 282/658/53 284/660/53 283/659/53 -f 285/661/54 286/662/54 287/663/54 -f 286/662/54 288/664/54 287/663/54 -f 287/665/55 288/666/55 281/667/55 -f 288/666/55 282/668/55 281/667/55 -f 283/669/51 284/670/51 285/671/51 -f 284/670/51 286/672/51 285/671/51 -f 289/673/48 290/674/48 291/675/48 -f 290/674/48 292/676/48 291/675/48 -f 293/677/49 294/678/49 295/679/49 -f 294/678/49 296/680/49 295/679/49 -f 293/681/52 295/682/52 291/683/52 -f 295/682/52 289/684/52 291/683/52 -f 296/685/50 294/686/50 290/687/50 -f 294/686/50 292/688/50 290/687/50 -f 295/689/55 296/690/55 289/691/55 -f 296/690/55 290/692/55 289/691/55 -f 291/693/51 292/694/51 293/695/51 -f 292/694/51 294/696/51 293/695/51 -f 297/697/48 298/698/48 299/699/48 -f 298/698/48 300/700/48 299/699/48 -f 301/701/49 302/702/49 303/703/49 -f 302/702/49 304/704/49 303/703/49 -f 301/705/52 303/706/52 299/707/52 -f 303/706/52 297/708/52 299/707/52 -f 304/709/50 302/710/50 298/711/50 -f 302/710/50 300/712/50 298/711/50 -f 299/713/51 300/714/51 301/715/51 -f 300/714/51 302/716/51 301/715/51 -f 305/717/56 306/718/56 307/719/56 -f 306/718/56 308/720/56 307/719/56 -f 309/721/57 310/722/57 311/723/57 -f 310/722/57 312/724/57 311/723/57 -f 311/725/55 312/726/55 305/727/55 -f 312/726/55 306/728/55 305/727/55 -f 307/729/51 308/730/51 309/731/51 -f 308/730/51 310/732/51 309/731/51 -f 313/733/56 314/734/56 315/735/56 -f 314/734/56 316/736/56 315/735/56 -f 317/737/57 318/738/57 319/739/57 -f 318/738/57 320/740/57 319/739/57 -f 319/741/55 320/742/55 313/743/55 -f 320/742/55 314/744/55 313/743/55 -f 315/745/51 316/746/51 317/747/51 -f 316/746/51 318/748/51 317/747/51 -f 321/749/48 322/750/48 323/751/48 -f 322/750/48 324/752/48 323/751/48 -f 325/753/49 326/754/49 327/755/49 -f 326/754/49 328/756/49 327/755/49 -f 325/757/52 327/758/52 323/759/52 -f 327/758/52 321/760/52 323/759/52 -f 323/761/51 324/762/51 325/763/51 -f 324/762/51 326/764/51 325/763/51 -f 329/765/48 330/766/48 331/767/48 -f 330/766/48 332/768/48 331/767/48 -f 333/769/49 334/770/49 335/771/49 -f 334/770/49 336/772/49 335/771/49 -f 333/773/52 335/774/52 331/775/52 -f 335/774/52 329/776/52 331/775/52 -f 331/777/51 332/778/51 333/779/51 -f 332/778/51 334/780/51 333/779/51 -f 337/781/48 338/782/48 339/783/48 -f 338/782/48 340/784/48 339/783/48 -f 341/785/49 342/786/49 343/787/49 -f 342/786/49 344/788/49 343/787/49 -f 341/789/52 343/790/52 339/791/52 -f 343/790/52 337/792/52 339/791/52 -f 344/793/50 342/794/50 338/795/50 -f 342/794/50 340/796/50 338/795/50 -f 339/797/51 340/798/51 341/799/51 -f 340/798/51 342/800/51 341/799/51 -f 345/801/48 346/802/48 347/803/48 -f 346/802/48 348/804/48 347/803/48 -f 349/805/49 350/806/49 351/807/49 -f 350/806/49 352/808/49 351/807/49 -f 351/809/55 352/810/55 345/811/55 -f 352/810/55 346/812/55 345/811/55 -f 347/813/51 348/814/51 349/815/51 -f 348/814/51 350/816/51 349/815/51 -f 353/817/48 354/818/48 355/819/48 -f 354/818/48 356/820/48 355/819/48 -f 357/821/49 358/822/49 359/823/49 -f 358/822/49 360/824/49 359/823/49 -f 359/825/55 360/826/55 353/827/55 -f 360/826/55 354/828/55 353/827/55 -f 355/829/51 356/830/51 357/831/51 -f 356/830/51 358/832/51 357/831/51 -f 361/833/48 362/834/48 363/835/48 -f 362/834/48 364/836/48 363/835/48 -f 365/837/49 366/838/49 367/839/49 -f 366/838/49 368/840/49 367/839/49 -f 367/841/55 368/842/55 361/843/55 -f 368/842/55 362/844/55 361/843/55 -f 363/845/51 364/846/51 365/847/51 -f 364/846/51 366/848/51 365/847/51 -f 369/849/48 370/850/48 371/851/48 -f 370/850/48 372/852/48 371/851/48 -f 373/853/49 374/854/49 375/855/49 -f 374/854/49 376/856/49 375/855/49 -f 371/857/51 372/858/51 373/859/51 -f 372/858/51 374/860/51 373/859/51 -f 377/861/58 378/862/58 379/863/58 -f 378/862/58 380/864/58 379/863/58 -f 381/865/59 382/866/59 379/867/59 -f 382/866/59 377/868/59 379/867/59 -f 379/869/51 380/870/51 381/871/51 -f 380/870/51 383/872/51 381/871/51 -f 384/873/60 385/874/60 386/875/60 -f 385/874/60 387/876/60 386/875/60 -f 384/877/61 386/878/61 388/879/61 -f 386/878/61 389/880/61 388/879/61 -f 388/881/51 390/882/51 384/883/51 -f 390/882/51 385/884/51 384/883/51 -f 391/885/48 392/886/48 393/887/48 -f 392/886/48 394/888/48 393/887/48 -f 395/889/49 396/890/49 397/891/49 -f 396/890/49 398/892/49 397/891/49 -f 395/893/52 397/894/52 393/895/52 -f 397/894/52 391/896/52 393/895/52 -f 393/897/51 394/898/51 395/899/51 -f 394/898/51 396/900/51 395/899/51 -f 399/901/48 400/902/48 401/903/48 -f 400/902/48 402/904/48 401/903/48 -f 403/905/49 404/906/49 405/907/49 -f 404/906/49 406/908/49 405/907/49 -f 403/909/62 405/910/62 401/911/62 -f 405/910/62 399/912/62 401/911/62 -f 407/913/48 408/914/48 409/915/48 -f 408/914/48 410/916/48 409/915/48 -f 411/917/49 412/918/49 413/919/49 -f 412/918/49 414/920/49 413/919/49 -f 415/921/48 416/922/48 417/923/48 -f 416/922/48 418/924/48 417/923/48 -f 419/925/49 420/926/49 421/927/49 -f 420/926/49 422/928/49 421/927/49 -f 423/929/48 424/930/48 425/931/48 -f 424/930/48 426/932/48 425/931/48 -f 427/933/49 428/934/49 429/935/49 -f 428/934/49 430/936/49 429/935/49 -f 425/937/51 426/938/51 427/939/51 -f 426/938/51 428/940/51 427/939/51 -f 431/941/48 432/942/48 433/943/48 -f 432/942/48 434/944/48 433/943/48 -f 435/945/49 436/946/49 437/947/49 -f 436/946/49 438/948/49 437/947/49 -f 438/949/50 436/950/50 432/951/50 -f 436/950/50 434/952/50 432/951/50 -f 433/953/51 434/954/51 435/955/51 -f 434/954/51 436/956/51 435/955/51 -f 439/957/53 440/958/53 441/959/53 -f 440/958/53 442/960/53 441/959/53 -f 443/961/54 444/962/54 445/963/54 -f 444/962/54 446/964/54 445/963/54 -f 443/965/56 445/966/56 441/967/56 -f 445/966/56 439/968/56 441/967/56 -f 446/969/57 444/970/57 440/971/57 -f 444/970/57 442/972/57 440/971/57 -f 445/973/55 446/974/55 439/975/55 -f 446/974/55 440/976/55 439/975/55 -f 441/977/51 442/978/51 443/979/51 -f 442/978/51 444/980/51 443/979/51 -f 447/981/49 448/982/49 449/983/49 -f 448/982/49 450/984/49 449/983/49 -f 447/985/52 449/986/52 451/987/52 -f 449/986/52 452/988/52 451/987/52 -f 450/989/50 448/990/50 453/991/50 -f 448/990/50 454/992/50 453/991/50 -f 451/993/51 454/994/51 447/995/51 -f 454/994/51 448/996/51 447/995/51 -f 455/997/54 456/998/54 457/999/54 -f 456/998/54 458/1000/54 457/999/54 -f 459/1001/51 460/1002/51 455/1003/51 -f 460/1002/51 456/1004/51 455/1003/51 -f 461/1005/48 462/1006/48 463/1007/48 -f 462/1006/48 464/1008/48 463/1007/48 -f 465/1009/52 466/1010/52 463/1011/52 -f 466/1010/52 461/1012/52 463/1011/52 -f 467/1013/50 468/1014/50 462/1015/50 -f 468/1014/50 464/1016/50 462/1015/50 -f 463/1017/51 464/1018/51 465/1019/51 -f 464/1018/51 468/1020/51 465/1019/51 -f 469/1021/53 470/1022/53 471/1023/53 -f 470/1022/53 472/1024/53 471/1023/53 -f 473/1025/54 474/1026/54 475/1027/54 -f 474/1026/54 476/1028/54 475/1027/54 -f 473/1029/56 475/1030/56 471/1031/56 -f 475/1030/56 469/1032/56 471/1031/56 -f 476/1033/57 474/1034/57 470/1035/57 -f 474/1034/57 472/1036/57 470/1035/57 -f 475/1037/55 476/1038/55 469/1039/55 -f 476/1038/55 470/1040/55 469/1039/55 -f 471/1041/51 472/1042/51 473/1043/51 -f 472/1042/51 474/1044/51 473/1043/51 -f 477/1045/56 478/1046/56 479/1047/56 -f 478/1046/56 480/1048/56 479/1047/56 -f 479/1049/51 481/1050/51 477/1051/51 -f 481/1050/51 482/1052/51 477/1051/51 -f 483/1053/48 484/1054/48 485/1055/48 -f 484/1054/48 486/1056/48 485/1055/48 -f 487/1057/49 488/1058/49 489/1059/49 -f 488/1058/49 490/1060/49 489/1059/49 -f 487/1061/52 489/1062/52 485/1063/52 -f 489/1062/52 483/1064/52 485/1063/52 -f 489/1065/55 490/1066/55 483/1067/55 -f 490/1066/55 484/1068/55 483/1067/55 -f 491/1069/54 492/1070/54 493/1071/54 -f 492/1070/54 494/1072/54 493/1071/54 -f 494/1073/57 492/1074/57 495/1075/57 -f 492/1074/57 496/1076/57 495/1075/57 -f 493/1077/55 494/1078/55 497/1079/55 -f 494/1078/55 495/1080/55 497/1079/55 -f 498/1081/51 496/1082/51 491/1083/51 -f 496/1082/51 492/1084/51 491/1083/51 -f 499/1085/49 500/1086/49 501/1087/49 -f 500/1086/49 502/1088/49 501/1087/49 -f 499/1089/52 501/1090/52 503/1091/52 -f 501/1090/52 504/1092/52 503/1091/52 -f 502/1093/50 500/1094/50 505/1095/50 -f 500/1094/50 506/1096/50 505/1095/50 -f 501/1097/55 502/1098/55 504/1099/55 -f 502/1098/55 505/1100/55 504/1099/55 -f 503/1101/51 506/1102/51 499/1103/51 -f 506/1102/51 500/1104/51 499/1103/51 -f 507/1105/54 508/1106/54 509/1107/54 -f 508/1106/54 510/1108/54 509/1107/54 -f 507/1109/56 509/1110/56 511/1111/56 -f 509/1110/56 512/1112/56 511/1111/56 -f 509/1113/55 510/1114/55 512/1115/55 -f 510/1114/55 513/1116/55 512/1115/55 -f 511/1117/51 514/1118/51 507/1119/51 -f 514/1118/51 508/1120/51 507/1119/51 -f 515/1121/48 516/1122/48 517/1123/48 -f 516/1122/48 518/1124/48 517/1123/48 -f 519/1125/52 520/1126/52 517/1127/52 -f 520/1126/52 515/1128/52 517/1127/52 -f 521/1129/50 522/1130/50 516/1131/50 -f 522/1130/50 518/1132/50 516/1131/50 -f 520/1133/55 521/1134/55 515/1135/55 -f 521/1134/55 516/1136/55 515/1135/55 -f 517/1137/51 518/1138/51 519/1139/51 -f 518/1138/51 522/1140/51 519/1139/51 -f 523/1141/53 524/1142/53 525/1143/53 -f 524/1142/53 526/1144/53 525/1143/53 -f 527/1145/56 528/1146/56 525/1147/56 -f 528/1146/56 523/1148/56 525/1147/56 -f 528/1149/55 529/1150/55 523/1151/55 -f 529/1150/55 524/1152/55 523/1151/55 -f 525/1153/51 526/1154/51 527/1155/51 -f 526/1154/51 530/1156/51 527/1155/51 -f 531/1157/54 532/1158/54 533/1159/54 -f 532/1158/54 534/1160/54 533/1159/54 -f 531/1161/56 533/1162/56 535/1163/56 -f 533/1162/56 536/1164/56 535/1163/56 -f 533/1165/55 534/1166/55 536/1167/55 -f 534/1166/55 537/1168/55 536/1167/55 -f 535/1169/51 538/1170/51 531/1171/51 -f 538/1170/51 532/1172/51 531/1171/51 -f 539/1173/48 540/1174/48 541/1175/48 -f 540/1174/48 542/1176/48 541/1175/48 -f 543/1177/49 544/1178/49 545/1179/49 -f 544/1178/49 546/1180/49 545/1179/49 -f 543/1181/52 545/1182/52 541/1183/52 -f 545/1182/52 539/1184/52 541/1183/52 -f 545/1185/55 546/1186/55 539/1187/55 -f 546/1186/55 540/1188/55 539/1187/55 -f 541/1189/51 542/1190/51 543/1191/51 -f 542/1190/51 544/1192/51 543/1191/51 -f 547/1193/56 548/1194/56 549/1195/56 -f 548/1194/56 550/1196/56 549/1195/56 -f 551/1197/57 552/1198/57 553/1199/57 -f 552/1198/57 554/1200/57 553/1199/57 -f 554/1201/53 552/1202/53 548/1203/53 -f 552/1202/53 550/1204/53 548/1203/53 -f 553/1205/55 554/1206/55 547/1207/55 -f 554/1206/55 548/1208/55 547/1207/55 -f 549/1209/51 550/1210/51 551/1211/51 -f 550/1210/51 552/1212/51 551/1211/51 -f 555/1213/48 556/1214/48 557/1215/48 -f 556/1214/48 558/1216/48 557/1215/48 -f 559/1217/49 560/1218/49 561/1219/49 -f 560/1218/49 562/1220/49 561/1219/49 -f 559/1221/52 561/1222/52 557/1223/52 -f 561/1222/52 555/1224/52 557/1223/52 -f 562/1225/50 560/1226/50 556/1227/50 -f 560/1226/50 558/1228/50 556/1227/50 -f 561/1229/55 562/1230/55 555/1231/55 -f 562/1230/55 556/1232/55 555/1231/55 -f 557/1233/51 558/1234/51 559/1235/51 -f 558/1234/51 560/1236/51 559/1235/51 -f 563/1237/48 564/1238/48 565/1239/48 -f 564/1238/48 566/1240/48 565/1239/48 -f 567/1241/49 568/1242/49 569/1243/49 -f 568/1242/49 570/1244/49 569/1243/49 -f 567/1245/52 569/1246/52 565/1247/52 -f 569/1246/52 563/1248/52 565/1247/52 -f 570/1249/50 568/1250/50 564/1251/50 -f 568/1250/50 566/1252/50 564/1251/50 -f 569/1253/55 570/1254/55 563/1255/55 -f 570/1254/55 564/1256/55 563/1255/55 -f 565/1257/51 566/1258/51 567/1259/51 -f 566/1258/51 568/1260/51 567/1259/51 -f 571/1261/54 572/1262/54 573/1263/54 -f 572/1262/54 574/1264/54 573/1263/54 -f 573/1265/55 574/1266/55 575/1267/55 -f 574/1266/55 576/1268/55 575/1267/55 -f 577/1269/51 578/1270/51 571/1271/51 -f 578/1270/51 572/1272/51 571/1271/51 -f 579/1273/53 580/1274/53 581/1275/53 -f 580/1274/53 582/1276/53 581/1275/53 -f 583/1277/54 584/1278/54 585/1279/54 -f 584/1278/54 586/1280/54 585/1279/54 -f 586/1281/57 584/1282/57 580/1283/57 -f 584/1282/57 582/1284/57 580/1283/57 -f 585/1285/55 586/1286/55 579/1287/55 -f 586/1286/55 580/1288/55 579/1287/55 -f 581/1289/51 582/1290/51 583/1291/51 -f 582/1290/51 584/1292/51 583/1291/51 -f 587/1293/56 588/1294/56 589/1295/56 -f 588/1294/56 590/1296/56 589/1295/56 -f 591/1297/55 592/1298/55 587/1299/55 -f 592/1298/55 588/1300/55 587/1299/55 -f 589/1301/51 590/1302/51 593/1303/51 -f 590/1302/51 594/1304/51 593/1303/51 -f 595/1305/48 596/1306/48 597/1307/48 -f 596/1306/48 598/1308/48 597/1307/48 -f 599/1309/49 600/1310/49 601/1311/49 -f 600/1310/49 602/1312/49 601/1311/49 -f 599/1313/52 601/1314/52 597/1315/52 -f 601/1314/52 595/1316/52 597/1315/52 -f 602/1317/50 600/1318/50 596/1319/50 -f 600/1318/50 598/1320/50 596/1319/50 -f 601/1321/55 602/1322/55 595/1323/55 -f 602/1322/55 596/1324/55 595/1323/55 -f 597/1325/51 598/1326/51 599/1327/51 -f 598/1326/51 600/1328/51 599/1327/51 -f 603/1329/48 604/1330/48 605/1331/48 -f 604/1330/48 606/1332/48 605/1331/48 -f 607/1333/49 608/1334/49 609/1335/49 -f 608/1334/49 610/1336/49 609/1335/49 -f 607/1337/52 609/1338/52 605/1339/52 -f 609/1338/52 603/1340/52 605/1339/52 -f 610/1341/50 608/1342/50 604/1343/50 -f 608/1342/50 606/1344/50 604/1343/50 -f 609/1345/55 610/1346/55 603/1347/55 -f 610/1346/55 604/1348/55 603/1347/55 -f 605/1349/51 606/1350/51 607/1351/51 -f 606/1350/51 608/1352/51 607/1351/51 -f 611/1353/48 612/1354/48 613/1355/48 -f 612/1354/48 614/1356/48 613/1355/48 -f 615/1357/49 616/1358/49 617/1359/49 -f 616/1358/49 618/1360/49 617/1359/49 -f 615/1361/52 617/1362/52 613/1363/52 -f 617/1362/52 611/1364/52 613/1363/52 -f 617/1365/55 618/1366/55 611/1367/55 -f 618/1366/55 612/1368/55 611/1367/55 -f 613/1369/51 614/1370/51 615/1371/51 -f 614/1370/51 616/1372/51 615/1371/51 -f 619/1373/48 620/1374/48 621/1375/48 -f 620/1374/48 622/1376/48 621/1375/48 -f 623/1377/49 624/1378/49 625/1379/49 -f 624/1378/49 626/1380/49 625/1379/49 -f 623/1381/52 625/1382/52 621/1383/52 -f 625/1382/52 619/1384/52 621/1383/52 -f 626/1385/50 624/1386/50 620/1387/50 -f 624/1386/50 622/1388/50 620/1387/50 -f 625/1389/55 626/1390/55 619/1391/55 -f 626/1390/55 620/1392/55 619/1391/55 -f 621/1393/51 622/1394/51 623/1395/51 -f 622/1394/51 624/1396/51 623/1395/51 -f 627/1397/48 628/1398/48 629/1399/48 -f 628/1398/48 630/1400/48 629/1399/48 -f 631/1401/49 632/1402/49 633/1403/49 -f 632/1402/49 634/1404/49 633/1403/49 -f 633/1405/63 634/1406/63 627/1407/63 -f 634/1406/63 628/1408/63 627/1407/63 -f 629/1409/64 630/1410/64 631/1411/64 -f 630/1410/64 632/1412/64 631/1411/64 -f 635/1413/48 636/1414/48 637/1415/48 -f 636/1414/48 638/1416/48 637/1415/48 -f 639/1417/49 640/1418/49 641/1419/49 -f 640/1418/49 642/1420/49 641/1419/49 -f 639/1421/52 641/1422/52 637/1423/52 -f 641/1422/52 635/1424/52 637/1423/52 -f 642/1425/50 640/1426/50 636/1427/50 -f 640/1426/50 638/1428/50 636/1427/50 -f 641/1429/55 642/1430/55 635/1431/55 -f 642/1430/55 636/1432/55 635/1431/55 -f 637/1433/51 638/1434/51 639/1435/51 -f 638/1434/51 640/1436/51 639/1435/51 -f 643/1437/48 644/1438/48 645/1439/48 -f 644/1438/48 646/1440/48 645/1439/48 -f 647/1441/49 648/1442/49 649/1443/49 -f 648/1442/49 650/1444/49 649/1443/49 -f 647/1445/52 649/1446/52 645/1447/52 -f 649/1446/52 643/1448/52 645/1447/52 -f 650/1449/50 648/1450/50 644/1451/50 -f 648/1450/50 646/1452/50 644/1451/50 -f 645/1453/51 646/1454/51 647/1455/51 -f 646/1454/51 648/1456/51 647/1455/51 -f 651/1457/48 652/1458/48 653/1459/48 -f 652/1458/48 654/1460/48 653/1459/48 -f 655/1461/49 656/1462/49 657/1463/49 -f 656/1462/49 658/1464/49 657/1463/49 -f 658/1465/65 656/1466/65 652/1467/65 -f 656/1466/65 654/1468/65 652/1467/65 -f 657/1469/63 658/1470/63 651/1471/63 -f 658/1470/63 652/1472/63 651/1471/63 -f 653/1473/64 654/1474/64 655/1475/64 -f 654/1474/64 656/1476/64 655/1475/64 -f 659/1477/48 660/1478/48 661/1479/48 -f 660/1478/48 662/1480/48 661/1479/48 -f 663/1481/49 664/1482/49 665/1483/49 -f 664/1482/49 666/1484/49 665/1483/49 -f 663/1485/66 665/1486/66 661/1487/66 -f 665/1486/66 659/1488/66 661/1487/66 -f 666/1489/67 664/1490/67 660/1491/67 -f 664/1490/67 662/1492/67 660/1491/67 -f 665/1493/68 666/1494/68 659/1495/68 -f 666/1494/68 660/1496/68 659/1495/68 -f 661/1497/69 662/1498/69 663/1499/69 -f 662/1498/69 664/1500/69 663/1499/69 -f 667/1501/48 668/1502/48 669/1503/48 -f 668/1502/48 670/1504/48 669/1503/48 -f 671/1505/49 672/1506/49 673/1507/49 -f 672/1506/49 674/1508/49 673/1507/49 -f 671/1509/52 673/1510/52 669/1511/52 -f 673/1510/52 667/1512/52 669/1511/52 -f 674/1513/50 672/1514/50 668/1515/50 -f 672/1514/50 670/1516/50 668/1515/50 -f 669/1517/51 670/1518/51 671/1519/51 -f 670/1518/51 672/1520/51 671/1519/51 -f 675/1521/48 676/1522/48 677/1523/48 -f 676/1522/48 678/1524/48 677/1523/48 -f 679/1525/49 680/1526/49 681/1527/49 -f 680/1526/49 682/1528/49 681/1527/49 -f 679/1529/62 681/1530/62 677/1531/62 -f 681/1530/62 675/1532/62 677/1531/62 -f 682/1533/70 680/1534/70 676/1535/70 -f 680/1534/70 678/1536/70 676/1535/70 -f 681/1537/71 682/1538/71 675/1539/71 -f 682/1538/71 676/1540/71 675/1539/71 -f 677/1541/72 678/1542/72 679/1543/72 -f 678/1542/72 680/1544/72 679/1543/72 -f 683/1545/48 684/1546/48 685/1547/48 -f 684/1546/48 686/1548/48 685/1547/48 -f 687/1549/49 688/1550/49 689/1551/49 -f 688/1550/49 690/1552/49 689/1551/49 -f 687/1553/52 689/1554/52 685/1555/52 -f 689/1554/52 683/1556/52 685/1555/52 -f 690/1557/50 688/1558/50 684/1559/50 -f 688/1558/50 686/1560/50 684/1559/50 -f 689/1561/55 690/1562/55 683/1563/55 -f 690/1562/55 684/1564/55 683/1563/55 -f 685/1565/51 686/1566/51 687/1567/51 -f 686/1566/51 688/1568/51 687/1567/51 -f 691/1569/48 692/1570/48 693/1571/48 -f 692/1570/48 694/1572/48 693/1571/48 -f 695/1573/49 696/1574/49 697/1575/49 -f 696/1574/49 698/1576/49 697/1575/49 -f 695/1577/52 697/1578/52 693/1579/52 -f 697/1578/52 691/1580/52 693/1579/52 -f 698/1581/50 696/1582/50 692/1583/50 -f 696/1582/50 694/1584/50 692/1583/50 -f 697/1585/55 698/1586/55 691/1587/55 -f 698/1586/55 692/1588/55 691/1587/55 -f 693/1589/51 694/1590/51 695/1591/51 -f 694/1590/51 696/1592/51 695/1591/51 -f 699/1593/48 700/1594/48 701/1595/48 -f 700/1594/48 702/1596/48 701/1595/48 -f 703/1597/49 704/1598/49 705/1599/49 -f 704/1598/49 706/1600/49 705/1599/49 -f 703/1601/52 705/1602/52 701/1603/52 -f 705/1602/52 699/1604/52 701/1603/52 -f 706/1605/50 704/1606/50 700/1607/50 -f 704/1606/50 702/1608/50 700/1607/50 -f 705/1609/55 706/1610/55 699/1611/55 -f 706/1610/55 700/1612/55 699/1611/55 -f 707/1613/48 708/1614/48 709/1615/48 -f 708/1614/48 710/1616/48 709/1615/48 -f 711/1617/49 712/1618/49 713/1619/49 -f 712/1618/49 714/1620/49 713/1619/49 -f 714/1621/69 712/1622/69 708/1623/69 -f 712/1622/69 710/1624/69 708/1623/69 -f 713/1625/67 714/1626/67 707/1627/67 -f 714/1626/67 708/1628/67 707/1627/67 -f 709/1629/66 710/1630/66 711/1631/66 -f 710/1630/66 712/1632/66 711/1631/66 -f 715/1633/48 716/1634/48 717/1635/48 -f 716/1634/48 718/1636/48 717/1635/48 -f 719/1637/49 720/1638/49 721/1639/49 -f 720/1638/49 722/1640/49 721/1639/49 -f 719/1641/52 721/1642/52 717/1643/52 -f 721/1642/52 715/1644/52 717/1643/52 -f 721/1645/55 722/1646/55 715/1647/55 -f 722/1646/55 716/1648/55 715/1647/55 -f 717/1649/51 718/1650/51 719/1651/51 -f 718/1650/51 720/1652/51 719/1651/51 -f 723/1653/48 724/1654/48 725/1655/48 -f 724/1654/48 726/1656/48 725/1655/48 -f 727/1657/49 728/1658/49 729/1659/49 -f 728/1658/49 730/1660/49 729/1659/49 -f 727/1661/52 729/1662/52 725/1663/52 -f 729/1662/52 723/1664/52 725/1663/52 -f 729/1665/55 730/1666/55 723/1667/55 -f 730/1666/55 724/1668/55 723/1667/55 -f 725/1669/51 726/1670/51 727/1671/51 -f 726/1670/51 728/1672/51 727/1671/51 -f 731/1673/48 732/1674/48 733/1675/48 -f 732/1674/48 734/1676/48 733/1675/48 -f 735/1677/49 736/1678/49 737/1679/49 -f 736/1678/49 738/1680/49 737/1679/49 -f 735/1681/62 737/1682/62 733/1683/62 -f 737/1682/62 731/1684/62 733/1683/62 -f 738/1685/70 736/1686/70 732/1687/70 -f 736/1686/70 734/1688/70 732/1687/70 -f 737/1689/71 738/1690/71 731/1691/71 -f 738/1690/71 732/1692/71 731/1691/71 -f 739/1693/48 740/1694/48 741/1695/48 -f 740/1694/48 742/1696/48 741/1695/48 -f 743/1697/49 744/1698/49 745/1699/49 -f 744/1698/49 746/1700/49 745/1699/49 -f 746/1701/67 744/1702/67 740/1703/67 -f 744/1702/67 742/1704/67 740/1703/67 -f 747/1705/48 748/1706/48 749/1707/48 -f 748/1706/48 750/1708/48 749/1707/48 -f 751/1709/49 752/1710/49 753/1711/49 -f 752/1710/49 754/1712/49 753/1711/49 -f 749/1713/64 750/1714/64 751/1715/64 -f 750/1714/64 752/1716/64 751/1715/64 -f 755/1717/48 756/1718/48 757/1719/48 -f 756/1718/48 758/1720/48 757/1719/48 -f 759/1721/49 760/1722/49 761/1723/49 -f 760/1722/49 762/1724/49 761/1723/49 -f 761/1725/55 762/1726/55 755/1727/55 -f 762/1726/55 756/1728/55 755/1727/55 -f 757/1729/51 758/1730/51 759/1731/51 -f 758/1730/51 760/1732/51 759/1731/51 -f 763/1733/48 764/1734/48 765/1735/48 -f 764/1734/48 766/1736/48 765/1735/48 -f 767/1737/49 768/1738/49 769/1739/49 -f 768/1738/49 770/1740/49 769/1739/49 -f 767/1741/68 769/1742/68 765/1743/68 -f 769/1742/68 763/1744/68 765/1743/68 -f 770/1745/69 768/1746/69 764/1747/69 -f 768/1746/69 766/1748/69 764/1747/69 -f 771/1749/48 772/1750/48 773/1751/48 -f 772/1750/48 774/1752/48 773/1751/48 -f 775/1753/49 776/1754/49 777/1755/49 -f 776/1754/49 778/1756/49 777/1755/49 -f 775/1757/52 777/1758/52 773/1759/52 -f 777/1758/52 771/1760/52 773/1759/52 -f 778/1761/50 776/1762/50 772/1763/50 -f 776/1762/50 774/1764/50 772/1763/50 -f 779/1765/48 780/1766/48 781/1767/48 -f 780/1766/48 782/1768/48 781/1767/48 -f 783/1769/49 784/1770/49 785/1771/49 -f 784/1770/49 786/1772/49 785/1771/49 -f 783/1773/66 785/1774/66 781/1775/66 -f 785/1774/66 779/1776/66 781/1775/66 -f 786/1777/67 784/1778/67 780/1779/67 -f 784/1778/67 782/1780/67 780/1779/67 -f 787/1781/48 788/1782/48 789/1783/48 -f 788/1782/48 790/1784/48 789/1783/48 -f 791/1785/49 792/1786/49 793/1787/49 -f 792/1786/49 794/1788/49 793/1787/49 -f 793/1789/55 794/1790/55 787/1791/55 -f 794/1790/55 788/1792/55 787/1791/55 -f 789/1793/51 790/1794/51 791/1795/51 -f 790/1794/51 792/1796/51 791/1795/51 -f 795/1797/48 796/1798/48 797/1799/48 -f 796/1798/48 798/1800/48 797/1799/48 -f 799/1801/49 800/1802/49 801/1803/49 -f 800/1802/49 802/1804/49 801/1803/49 -f 801/1805/63 802/1806/63 795/1807/63 -f 802/1806/63 796/1808/63 795/1807/63 -f 797/1809/64 798/1810/64 799/1811/64 -f 798/1810/64 800/1812/64 799/1811/64 -f 803/1813/48 804/1814/48 805/1815/48 -f 804/1814/48 806/1816/48 805/1815/48 -f 807/1817/49 808/1818/49 809/1819/49 -f 808/1818/49 810/1820/49 809/1819/49 -f 807/1821/66 809/1822/66 805/1823/66 -f 809/1822/66 803/1824/66 805/1823/66 -f 810/1825/67 808/1826/67 804/1827/67 -f 808/1826/67 806/1828/67 804/1827/67 -f 805/1829/69 806/1830/69 807/1831/69 -f 806/1830/69 808/1832/69 807/1831/69 -f 811/1833/48 812/1834/48 813/1835/48 -f 812/1834/48 814/1836/48 813/1835/48 -f 815/1837/49 816/1838/49 817/1839/49 -f 816/1838/49 818/1840/49 817/1839/49 -f 817/1841/55 818/1842/55 811/1843/55 -f 818/1842/55 812/1844/55 811/1843/55 -f 813/1845/51 814/1846/51 815/1847/51 -f 814/1846/51 816/1848/51 815/1847/51 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3826 -0.9239 -0.0000 +vn -0.3826 -0.9239 -0.0000 +vt 0.232414 0.762673 +vt 0.232414 0.557205 +vt 0.507414 0.762673 +vt 0.507414 0.557205 +vt 0.492586 0.762673 +vt 0.492586 0.557205 +vt 0.767586 0.762673 +vt 0.767586 0.557205 +vt 0.419200 0.507414 +vt 0.419200 0.232414 +vt 0.446738 0.507414 +vt 0.446738 0.232414 +vt 0.419200 0.767586 +vt 0.419200 0.492586 +vt 0.446738 0.767586 +vt 0.446738 0.492586 +vt 0.419200 0.762673 +vt 0.419200 0.557205 +vt 0.446738 0.762673 +vt 0.446738 0.557205 +vt 0.553262 0.762673 +vt 0.553262 0.557205 +vt 0.580800 0.762673 +vt 0.580800 0.557205 +vt 0.232414 0.726953 +vt 0.232414 0.520703 +vt 0.507414 0.726953 +vt 0.507414 0.520703 +vt 0.492586 0.726953 +vt 0.492586 0.520703 +vt 0.767586 0.726953 +vt 0.767586 0.520703 +vt 0.473047 0.507414 +vt 0.473047 0.232414 +vt 0.533204 0.507414 +vt 0.533204 0.232414 +vt 0.473047 0.767586 +vt 0.473047 0.492586 +vt 0.533204 0.767586 +vt 0.533204 0.492586 +vt 0.473047 0.726953 +vt 0.473047 0.520703 +vt 0.533204 0.726953 +vt 0.533204 0.520703 +vt 0.466796 0.726953 +vt 0.466796 0.520703 +vt 0.526953 0.726953 +vt 0.526953 0.520703 +vt 0.232414 0.612558 +vt 0.232414 0.554549 +vt 0.507414 0.612558 +vt 0.507414 0.554549 +vt 0.492586 0.612558 +vt 0.492586 0.554549 +vt 0.767586 0.612558 +vt 0.767586 0.554549 +vt 0.415213 0.507414 +vt 0.415213 0.232414 +vt 0.623611 0.507414 +vt 0.623611 0.232414 +vt 0.415213 0.767586 +vt 0.415213 0.492586 +vt 0.623611 0.767586 +vt 0.623611 0.492586 +vt 0.415213 0.612558 +vt 0.415213 0.554549 +vt 0.623611 0.612558 +vt 0.623611 0.554549 +vt 0.376389 0.612558 +vt 0.376389 0.554549 +vt 0.584787 0.612558 +vt 0.584787 0.554549 +vt 0.232414 0.691931 +vt 0.232414 0.636072 +vt 0.507414 0.691931 +vt 0.507414 0.636072 +vt 0.492586 0.691931 +vt 0.492586 0.636072 +vt 0.767586 0.691931 +vt 0.767586 0.636072 +vt 0.393015 0.507414 +vt 0.393015 0.232414 +vt 0.603561 0.507414 +vt 0.603561 0.232414 +vt 0.393015 0.767586 +vt 0.393015 0.492586 +vt 0.603561 0.767586 +vt 0.603561 0.492586 +vt 0.393015 0.691931 +vt 0.393015 0.636072 +vt 0.603561 0.691931 +vt 0.603561 0.636072 +vt 0.396439 0.691931 +vt 0.396439 0.636072 +vt 0.606985 0.691931 +vt 0.606985 0.636072 +vt 0.232414 0.608142 +vt 0.301164 0.636072 +vt 0.301164 0.608142 +vt 0.698836 0.636072 +vt 0.698836 0.608142 +vt 0.767586 0.608142 +vt 0.393014 0.301164 +vt 0.393014 0.232414 +vt 0.607857 0.301164 +vt 0.607857 0.232414 +vt 0.393014 0.767586 +vt 0.393014 0.698836 +vt 0.607857 0.767586 +vt 0.607857 0.698836 +vt 0.393014 0.636072 +vt 0.393014 0.608142 +vt 0.607857 0.636072 +vt 0.607857 0.608142 +vt 0.392143 0.636072 +vt 0.392143 0.608142 +vt 0.606986 0.636072 +vt 0.606986 0.608142 +vt 0.232414 0.687679 +vt 0.232414 0.554476 +vt 0.507414 0.687679 +vt 0.507414 0.554476 +vt 0.492586 0.687679 +vt 0.492586 0.554476 +vt 0.767586 0.687679 +vt 0.767586 0.554476 +vt 0.414390 0.507414 +vt 0.414390 0.232414 +vt 0.586265 0.507414 +vt 0.586265 0.232414 +vt 0.414390 0.767586 +vt 0.414390 0.492586 +vt 0.586265 0.767586 +vt 0.586265 0.492586 +vt 0.414390 0.687679 +vt 0.414390 0.554476 +vt 0.586265 0.687679 +vt 0.586265 0.554476 +vt 0.413735 0.687679 +vt 0.413735 0.554476 +vt 0.585610 0.687679 +vt 0.585610 0.554476 +vt 0.492586 0.713286 +vt 0.492586 0.666019 +vt 0.767586 0.713286 +vt 0.767586 0.666019 +vt 0.449452 0.507414 +vt 0.449452 0.232414 +vt 0.494569 0.507414 +vt 0.494569 0.232414 +vt 0.449452 0.713286 +vt 0.449452 0.666019 +vt 0.494569 0.713286 +vt 0.494569 0.666019 +vt 0.505431 0.713286 +vt 0.505431 0.666019 +vt 0.550548 0.713286 +vt 0.550548 0.666019 +vt 0.232414 0.730552 +vt 0.232414 0.683285 +vt 0.507414 0.730552 +vt 0.507414 0.683285 +vt 0.515115 0.507414 +vt 0.515115 0.232414 +vt 0.555935 0.507414 +vt 0.555935 0.232414 +vt 0.515115 0.730552 +vt 0.515115 0.683285 +vt 0.555935 0.730552 +vt 0.555935 0.683285 +vt 0.444065 0.730552 +vt 0.444065 0.683285 +vt 0.484885 0.730552 +vt 0.484885 0.683285 +vt 0.232414 0.567969 +vt 0.507414 0.567969 +vt 0.533203 0.767586 +vt 0.533203 0.492586 +vt 0.571875 0.767586 +vt 0.571875 0.492586 +vt 0.533203 0.567969 +vt 0.533203 0.520703 +vt 0.571875 0.567969 +vt 0.571875 0.520703 +vt 0.428125 0.567969 +vt 0.428125 0.520703 +vt 0.466797 0.567969 +vt 0.466797 0.520703 +vt 0.492586 0.583590 +vt 0.492586 0.536324 +vt 0.767586 0.583590 +vt 0.767586 0.536324 +vt 0.435334 0.767586 +vt 0.435334 0.492586 +vt 0.476154 0.767586 +vt 0.476154 0.492586 +vt 0.435334 0.583590 +vt 0.435334 0.536324 +vt 0.476154 0.583590 +vt 0.476154 0.536324 +vt 0.523846 0.583590 +vt 0.523846 0.536324 +vt 0.564666 0.583590 +vt 0.564666 0.536324 +vt 0.232414 0.719101 +vt 0.232414 0.679843 +vt 0.507414 0.719101 +vt 0.507414 0.679843 +vt 0.492586 0.719101 +vt 0.492586 0.679843 +vt 0.767586 0.719101 +vt 0.767586 0.679843 +vt 0.414227 0.507414 +vt 0.414227 0.232414 +vt 0.619696 0.507414 +vt 0.619696 0.232414 +vt 0.414227 0.767586 +vt 0.414227 0.492586 +vt 0.619696 0.767586 +vt 0.619696 0.492586 +vt 0.414227 0.719101 +vt 0.414227 0.679843 +vt 0.619696 0.719101 +vt 0.619696 0.679843 +vt 0.380304 0.719101 +vt 0.380304 0.679843 +vt 0.585773 0.719101 +vt 0.585773 0.679843 +s 0 +f 571/1144/27 572/1145/27 573/1146/27 +f 572/1145/27 574/1147/27 573/1146/27 +f 575/1148/28 576/1149/28 577/1150/28 +f 576/1149/28 578/1151/28 577/1150/28 +f 575/1152/29 577/1153/29 573/1154/29 +f 577/1153/29 571/1155/29 573/1154/29 +f 578/1156/30 576/1157/30 572/1158/30 +f 576/1157/30 574/1159/30 572/1158/30 +f 577/1160/31 578/1161/31 571/1162/31 +f 578/1161/31 572/1163/31 571/1162/31 +f 573/1164/32 574/1165/32 575/1166/32 +f 574/1165/32 576/1167/32 575/1166/32 +f 579/1168/33 580/1169/33 581/1170/33 +f 580/1169/33 582/1171/33 581/1170/33 +f 583/1172/34 584/1173/34 585/1174/34 +f 584/1173/34 586/1175/34 585/1174/34 +f 583/1176/35 585/1177/35 581/1178/35 +f 585/1177/35 579/1179/35 581/1178/35 +f 586/1180/36 584/1181/36 580/1182/36 +f 584/1181/36 582/1183/36 580/1182/36 +f 585/1184/31 586/1185/31 579/1186/31 +f 586/1185/31 580/1187/31 579/1186/31 +f 581/1188/32 582/1189/32 583/1190/32 +f 582/1189/32 584/1191/32 583/1190/32 +f 587/1192/37 588/1193/37 589/1194/37 +f 588/1193/37 590/1195/37 589/1194/37 +f 591/1196/38 592/1197/38 593/1198/38 +f 592/1197/38 594/1199/38 593/1198/38 +f 591/1200/39 593/1201/39 589/1202/39 +f 593/1201/39 587/1203/39 589/1202/39 +f 594/1204/40 592/1205/40 588/1206/40 +f 592/1205/40 590/1207/40 588/1206/40 +f 593/1208/31 594/1209/31 587/1210/31 +f 594/1209/31 588/1211/31 587/1210/31 +f 589/1212/32 590/1213/32 591/1214/32 +f 590/1213/32 592/1215/32 591/1214/32 +f 595/1216/41 596/1217/41 597/1218/41 +f 596/1217/41 598/1219/41 597/1218/41 +f 599/1220/42 600/1221/42 601/1222/42 +f 600/1221/42 602/1223/42 601/1222/42 +f 599/1224/43 601/1225/43 597/1226/43 +f 601/1225/43 595/1227/43 597/1226/43 +f 602/1228/44 600/1229/44 596/1230/44 +f 600/1229/44 598/1231/44 596/1230/44 +f 601/1232/31 602/1233/31 595/1234/31 +f 602/1233/31 596/1235/31 595/1234/31 +f 597/1236/32 598/1237/32 599/1238/32 +f 598/1237/32 600/1239/32 599/1238/32 +f 603/1217/33 604/1240/33 605/1241/33 +f 604/1240/33 606/1242/33 605/1241/33 +f 607/1243/34 608/1244/34 609/1223/34 +f 608/1244/34 610/1245/34 609/1223/34 +f 607/1246/35 609/1247/35 605/1248/35 +f 609/1247/35 603/1249/35 605/1248/35 +f 610/1250/36 608/1251/36 604/1252/36 +f 608/1251/36 606/1253/36 604/1252/36 +f 609/1254/31 610/1255/31 603/1256/31 +f 610/1255/31 604/1257/31 603/1256/31 +f 605/1258/32 606/1259/32 607/1260/32 +f 606/1259/32 608/1261/32 607/1260/32 +f 611/1262/33 612/1263/33 613/1264/33 +f 612/1263/33 614/1265/33 613/1264/33 +f 615/1266/34 616/1267/34 617/1268/34 +f 616/1267/34 618/1269/34 617/1268/34 +f 615/1270/35 617/1271/35 613/1272/35 +f 617/1271/35 611/1273/35 613/1272/35 +f 618/1274/36 616/1275/36 612/1276/36 +f 616/1275/36 614/1277/36 612/1276/36 +f 617/1278/31 618/1279/31 611/1280/31 +f 618/1279/31 612/1281/31 611/1280/31 +f 613/1282/32 614/1283/32 615/1284/32 +f 614/1283/32 616/1285/32 615/1284/32 +f 619/1286/38 620/1287/38 621/1288/38 +f 620/1287/38 622/1289/38 621/1288/38 +f 619/1290/39 621/1291/39 623/1292/39 +f 621/1291/39 624/1293/39 623/1292/39 +f 621/1294/31 622/1295/31 624/1296/31 +f 622/1295/31 625/1297/31 624/1296/31 +f 623/1298/32 626/1299/32 619/1300/32 +f 626/1299/32 620/1301/32 619/1300/32 +f 627/1302/41 628/1303/41 629/1304/41 +f 628/1303/41 630/1305/41 629/1304/41 +f 631/1306/43 632/1307/43 629/1308/43 +f 632/1307/43 627/1309/43 629/1308/43 +f 632/1310/31 633/1311/31 627/1312/31 +f 633/1311/31 628/1313/31 627/1312/31 +f 629/1314/32 630/1315/32 631/1316/32 +f 630/1315/32 634/1317/32 631/1316/32 +f 635/1318/37 636/1169/37 637/1319/37 +f 636/1169/37 638/1171/37 637/1319/37 +f 639/1320/45 640/1321/45 636/1322/45 +f 640/1321/45 638/1323/45 636/1322/45 +f 641/1324/31 639/1325/31 635/1326/31 +f 639/1325/31 636/1327/31 635/1326/31 +f 637/1328/32 638/1329/32 642/1330/32 +f 638/1329/32 640/1331/32 642/1330/32 +f 643/1332/42 644/1333/42 645/1334/42 +f 644/1333/42 646/1335/42 645/1334/42 +f 646/1336/46 644/1337/46 647/1338/46 +f 644/1337/46 648/1339/46 647/1338/46 +f 645/1340/31 646/1341/31 649/1342/31 +f 646/1341/31 647/1343/31 649/1342/31 +f 650/1344/32 648/1345/32 643/1346/32 +f 648/1345/32 644/1347/32 643/1346/32 +f 651/1348/27 652/1349/27 653/1350/27 +f 652/1349/27 654/1351/27 653/1350/27 +f 655/1352/28 656/1353/28 657/1354/28 +f 656/1353/28 658/1355/28 657/1354/28 +f 655/1356/29 657/1357/29 653/1358/29 +f 657/1357/29 651/1359/29 653/1358/29 +f 658/1360/30 656/1361/30 652/1362/30 +f 656/1361/30 654/1363/30 652/1362/30 +f 657/1364/31 658/1365/31 651/1366/31 +f 658/1365/31 652/1367/31 651/1366/31 +f 653/1368/32 654/1369/32 655/1370/32 +f 654/1369/32 656/1371/32 655/1370/32 +o Grip +v 0.029437 0.100706 0.311919 +v 0.029437 -0.004763 0.311919 +v 0.029437 0.100706 0.268950 +v 0.029437 -0.004763 0.268950 +v -0.029156 0.100706 0.268950 +v -0.029156 -0.004763 0.268950 +v -0.029156 0.100706 0.311919 +v -0.029156 -0.004763 0.311919 +v 0.029388 0.017106 0.332156 +v 0.029388 -0.174300 0.332156 +v 0.029388 0.017106 0.285281 +v 0.029388 -0.174300 0.285281 +v -0.029181 0.017106 0.285281 +v -0.029181 -0.174300 0.285281 +v -0.029181 0.017106 0.332156 +v -0.029181 -0.174300 0.332156 +v 0.029419 0.085760 0.232858 +v 0.029419 -0.005391 0.324008 +v 0.029419 0.069187 0.216285 +v 0.029419 -0.021963 0.307436 +v -0.029175 0.069187 0.216285 +v -0.029175 -0.021963 0.307436 +v -0.029175 0.085760 0.232858 +v -0.029175 -0.005391 0.324008 +v 0.029462 0.040785 0.284858 +v 0.029462 -0.024175 0.257950 +v 0.029462 0.069187 0.216289 +v 0.029462 0.004227 0.189381 +v -0.029131 0.069187 0.216289 +v -0.029131 0.004227 0.189381 +v -0.029131 0.040785 0.284858 +v -0.029131 -0.024175 0.257950 +v 0.029425 0.004225 0.310469 +v 0.029425 -0.019213 0.310469 +v 0.029425 0.004225 0.189375 +v 0.029425 -0.019213 0.189375 +v -0.029169 0.004225 0.189375 +v -0.029169 -0.019213 0.189375 +v -0.029169 0.004225 0.310469 +v -0.029169 -0.019213 0.310469 +v 0.029456 -0.063915 0.319925 +v 0.029456 -0.080488 0.303353 +v 0.029456 0.021711 0.234299 +v 0.029456 0.005138 0.217726 +v -0.029137 0.021711 0.234299 +v -0.029137 0.005138 0.217726 +v -0.029137 -0.063915 0.319925 +v -0.029137 -0.080488 0.303353 +v 0.029406 0.100711 0.268945 +v 0.029406 -0.040037 0.327245 +v 0.029406 0.085762 0.232856 +v 0.029406 -0.054985 0.291156 +v -0.029188 0.085762 0.232856 +v -0.029188 -0.054985 0.291156 +v -0.029188 0.100711 0.268945 +v -0.029188 -0.040037 0.327245 +v 0.029375 -0.129257 0.319077 +v 0.029375 -0.205044 0.287685 +v 0.029375 -0.120288 0.297424 +v 0.029375 -0.196075 0.266032 +v -0.029188 -0.120288 0.297424 +v -0.029188 -0.196075 0.266032 +v -0.029188 -0.129257 0.319077 +v -0.029188 -0.205044 0.287685 +v 0.029450 0.100710 0.300193 +v 0.029450 -0.040037 0.358492 +v 0.029450 0.085762 0.264104 +v 0.029450 -0.054986 0.322403 +v -0.029144 0.085762 0.264104 +v -0.029144 -0.054986 0.322403 +v -0.029144 0.100710 0.300193 +v -0.029144 -0.040037 0.358492 +v 0.029469 0.075586 0.302363 +v 0.029469 0.006533 0.371416 +v 0.029469 0.047965 0.274741 +v 0.029469 -0.021088 0.343795 +v -0.029125 0.047965 0.274741 +v -0.029125 -0.021088 0.343795 +v -0.029125 0.075586 0.302363 +v -0.029125 0.006533 0.371416 +v 0.029425 0.006539 0.371413 +v 0.029425 -0.126990 0.426723 +v 0.029425 -0.032327 0.277581 +v 0.029425 -0.165857 0.332891 +v -0.029169 -0.032327 0.277581 +v -0.029169 -0.165857 0.332891 +v -0.029169 0.006539 0.371413 +v -0.029169 -0.126990 0.426723 +v 0.029419 -0.126919 0.427336 +v 0.029419 -0.205044 0.427336 +v 0.029419 -0.126919 0.287688 +v 0.029419 -0.205044 0.287688 +v -0.029163 -0.126919 0.287688 +v -0.029163 -0.205044 0.287688 +v -0.029163 -0.126919 0.427336 +v -0.029163 -0.205044 0.427336 +v 0.021613 0.096482 0.310400 +v 0.021613 -0.037047 0.365710 +v 0.021613 0.078544 0.267093 +v 0.021613 -0.054986 0.322403 +v -0.021356 0.078544 0.267093 +v -0.021356 -0.054986 0.322403 +v -0.021356 0.096482 0.310400 +v -0.021356 -0.037047 0.365710 +v 0.021613 0.081113 0.307885 +v 0.021613 0.010678 0.378319 +v 0.021613 0.047967 0.274739 +v 0.021613 -0.022467 0.345174 +v -0.021356 0.047967 0.274739 +v -0.021356 -0.022467 0.345174 +v -0.021356 0.081113 0.307885 +v -0.021356 0.010678 0.378319 +v 0.021613 -0.123013 0.435149 +v 0.021613 -0.205044 0.435149 +v 0.021613 -0.123013 0.287688 +v 0.021613 -0.205044 0.287688 +v -0.021356 -0.123013 0.287688 +v -0.021356 -0.205044 0.287688 +v -0.021356 -0.123013 0.435149 +v -0.021356 -0.205044 0.435149 +v 0.021613 0.011330 0.377885 +v 0.021613 -0.125808 0.434689 +v 0.021613 -0.030526 0.276835 +v 0.021613 -0.167664 0.333640 +v -0.021356 -0.030526 0.276835 +v -0.021356 -0.167664 0.333640 +v -0.021356 0.011330 0.377885 +v -0.021356 -0.125808 0.434689 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 0.7071 0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 0.9239 0.3827 +vn -0.0000 -0.9239 -0.3827 +vn -0.0000 -0.3827 0.9239 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 0.9239 -0.3827 +vn -0.0000 0.3827 0.9239 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.7071 0.7071 +vt 0.000000 1.000000 +vt 0.000000 0.789062 +vt 0.085938 1.000000 +vt 0.085938 0.789062 +vt 0.890625 1.000000 +vt 0.890625 0.914062 +vt 1.007812 1.000000 +vt 1.007812 0.914062 +vt 0.562500 0.531250 +vt 0.562500 0.320312 +vt 0.679688 0.531250 +vt 0.679688 0.320312 +vt 0.000000 0.687500 +vt 0.093750 1.000000 +vt 0.093750 0.687500 +vt 0.437500 1.000000 +vt 0.437500 0.617188 +vt 0.554688 1.000000 +vt 0.554688 0.617188 +vt 0.000000 0.742188 +vt 0.046875 1.000000 +vt 0.046875 0.742188 +vt 0.531250 0.468750 +vt 0.531250 0.421875 +vt 0.648438 0.468750 +vt 0.648438 0.421875 +vt 0.562500 0.593750 +vt 0.562500 0.335938 +vt 0.679688 0.593750 +vt 0.679688 0.335938 +vt 0.000000 0.859375 +vt 0.130307 1.000000 +vt 0.130307 0.859375 +vt 0.500000 0.468750 +vt 0.500000 0.338443 +vt 0.617188 0.468750 +vt 0.617188 0.338443 +vt 0.531250 0.338443 +vt 0.648438 0.338443 +vt 0.500000 0.328125 +vt 0.617188 0.328125 +vt 0.000000 0.953125 +vt 0.130307 0.953125 +vt 0.015625 1.000000 +vt 0.015625 0.953125 +vt 0.145932 1.000000 +vt 0.145932 0.953125 +vt 0.343750 0.703125 +vt 0.343750 0.572818 +vt 0.460938 0.703125 +vt 0.460938 0.572818 +vt 0.500000 0.406250 +vt 0.500000 0.359375 +vt 0.617188 0.406250 +vt 0.617188 0.359375 +vt 0.218750 1.000000 +vt 0.218750 0.953125 +vt 0.265625 1.000000 +vt 0.265625 0.953125 +vt 0.890625 0.359375 +vt 0.890625 0.285771 +vt 1.007812 0.359375 +vt 1.007812 0.285771 +vt 0.000000 0.695312 +vt 0.078125 1.000000 +vt 0.078125 0.695312 +vt 0.890625 0.921875 +vt 1.007812 0.921875 +vt 0.562500 0.289062 +vt 0.679688 0.289062 +vt 0.531250 0.593750 +vt 0.531250 0.289062 +vt 0.648438 0.593750 +vt 0.648438 0.289062 +vt 0.000000 0.835938 +vt 0.046875 0.835938 +vt 0.484375 0.046875 +vt 0.484375 0.000000 +vt 0.601562 0.046875 +vt 0.601562 0.000000 +vt 0.687500 0.156250 +vt 0.687500 -0.007812 +vt 0.804688 0.156250 +vt 0.804688 -0.007812 +vt 0.562500 0.468750 +vt 0.562500 0.390625 +vt 0.679688 0.468750 +vt 0.679688 0.390625 +vt 0.562500 0.437500 +vt 0.562500 0.359375 +vt 0.679688 0.437500 +vt 0.679688 0.359375 +vt 0.000000 0.804688 +vt 0.078125 0.804688 +vt 0.562500 0.500000 +vt 0.562500 0.304688 +vt 0.679688 0.500000 +vt 0.679688 0.304688 +vt 0.000000 0.710938 +vt 0.203125 1.000000 +vt 0.203125 0.710938 +vt 0.562500 0.328125 +vt 0.679688 0.328125 +vt 0.000000 0.734375 +vt 0.000000 0.578125 +vt 0.281250 0.734375 +vt 0.281250 0.578125 +vt 0.328125 0.281250 +vt 0.328125 0.001952 +vt 0.445312 0.281250 +vt 0.445312 0.001952 +vt 0.500000 0.500000 +vt 0.500000 0.343750 +vt 0.617188 0.500000 +vt 0.617188 0.343750 +vt 0.770499 0.593601 +vt 0.770499 0.304538 +vt 0.864249 0.593601 +vt 0.864249 0.304538 +vt 0.135752 0.593601 +vt 0.135752 0.304538 +vt 0.229502 0.593601 +vt 0.229502 0.304538 +vt 0.921875 1.000000 +vt 0.921875 0.710937 +vt 1.007812 0.710937 +vt 0.724961 0.568802 +vt 0.724961 0.369583 +vt 0.818711 0.568802 +vt 0.818711 0.369583 +vt 0.181289 0.568802 +vt 0.181289 0.369583 +vt 0.275039 0.568802 +vt 0.275039 0.369583 +vt 0.921875 0.800781 +vt 1.007812 0.800781 +vt 0.437500 0.500000 +vt 0.437500 0.335938 +vt 0.732422 0.500000 +vt 0.732422 0.335938 +vt 0.562500 0.562500 +vt 0.562500 0.267577 +vt 0.648438 0.562500 +vt 0.648438 0.267577 +vt 0.921875 0.705078 +vt 1.007812 0.705078 +vt 0.921875 0.835938 +vt 1.007812 0.835938 +vt 0.531250 0.500000 +vt 0.531250 0.335938 +vt 0.617188 0.335938 +vt 0.500000 0.593750 +vt 0.500000 0.296875 +vt 0.718750 0.593750 +vt 0.718750 0.296875 +vt 0.921875 0.703125 +vt 1.007812 0.703125 +s 0 +f 659/1372/47 660/1373/47 661/1374/47 +f 660/1373/47 662/1375/47 661/1374/47 +f 663/1372/48 664/1373/48 665/1374/48 +f 664/1373/48 666/1375/48 665/1374/48 +f 663/1376/49 665/1377/49 661/1378/49 +f 665/1377/49 659/1379/49 661/1378/49 +f 665/1380/50 666/1381/50 659/1382/50 +f 666/1381/50 660/1383/50 659/1382/50 +f 661/1380/51 662/1381/51 663/1382/51 +f 662/1381/51 664/1383/51 663/1382/51 +f 667/1372/47 668/1384/47 669/1385/47 +f 668/1384/47 670/1386/47 669/1385/47 +f 671/1372/48 672/1384/48 673/1385/48 +f 672/1384/48 674/1386/48 673/1385/48 +f 669/1387/51 670/1388/51 671/1389/51 +f 670/1388/51 672/1390/51 671/1389/51 +f 675/1372/47 676/1391/47 677/1392/47 +f 676/1391/47 678/1393/47 677/1392/47 +f 679/1372/48 680/1391/48 681/1392/48 +f 680/1391/48 682/1393/48 681/1392/48 +f 679/1394/52 681/1395/52 677/1396/52 +f 681/1395/52 675/1397/52 677/1396/52 +f 681/1398/53 682/1399/53 675/1400/53 +f 682/1399/53 676/1401/53 675/1400/53 +f 677/1398/54 678/1399/54 679/1400/54 +f 678/1399/54 680/1401/54 679/1400/54 +f 683/1372/47 684/1402/47 685/1403/47 +f 684/1402/47 686/1404/47 685/1403/47 +f 687/1372/48 688/1402/48 689/1403/48 +f 688/1402/48 690/1404/48 689/1403/48 +f 687/1405/55 689/1406/55 685/1407/55 +f 689/1406/55 683/1408/55 685/1407/55 +f 690/1394/56 688/1409/56 684/1396/56 +f 688/1409/56 686/1410/56 684/1396/56 +f 689/1405/57 690/1411/57 683/1407/57 +f 690/1411/57 684/1412/57 683/1407/57 +f 685/1405/58 686/1411/58 687/1407/58 +f 686/1411/58 688/1412/58 687/1407/58 +f 691/1372/47 692/1413/47 693/1403/47 +f 692/1413/47 694/1414/47 693/1403/47 +f 695/1415/48 696/1416/48 697/1417/48 +f 696/1416/48 698/1418/48 697/1417/48 +f 695/1405/49 697/1406/49 693/1407/49 +f 697/1406/49 691/1408/49 693/1407/49 +f 698/1419/59 696/1420/59 692/1421/59 +f 696/1420/59 694/1422/59 692/1421/59 +f 693/1423/51 694/1424/51 695/1425/51 +f 694/1424/51 696/1426/51 695/1425/51 +f 699/1372/47 700/1413/47 701/1427/47 +f 700/1413/47 702/1428/47 701/1427/47 +f 703/1372/48 704/1413/48 705/1429/48 +f 704/1413/48 706/1430/48 705/1429/48 +f 706/1431/54 704/1432/54 700/1433/54 +f 704/1432/54 702/1434/54 700/1433/54 +f 707/1372/47 708/1435/47 709/1436/47 +f 708/1435/47 710/1437/47 709/1436/47 +f 711/1372/48 712/1435/48 713/1436/48 +f 712/1435/48 714/1437/48 713/1436/48 +f 711/1376/60 713/1438/60 709/1378/60 +f 713/1438/60 707/1439/60 709/1378/60 +f 713/1398/61 714/1440/61 707/1400/61 +f 714/1440/61 708/1441/61 707/1400/61 +f 709/1442/62 710/1443/62 711/1444/62 +f 710/1443/62 712/1445/62 711/1444/62 +f 715/1372/47 716/1446/47 717/1392/47 +f 716/1446/47 718/1447/47 717/1392/47 +f 719/1372/48 720/1446/48 721/1392/48 +f 720/1446/48 722/1447/48 721/1392/48 +f 722/1448/56 720/1449/56 716/1450/56 +f 720/1449/56 718/1451/56 716/1450/56 +f 717/1452/58 718/1453/58 719/1454/58 +f 718/1453/58 720/1455/58 719/1454/58 +f 723/1372/47 724/1435/47 725/1436/47 +f 724/1435/47 726/1437/47 725/1436/47 +f 727/1372/48 728/1435/48 729/1436/48 +f 728/1435/48 730/1437/48 729/1436/48 +f 727/1456/60 729/1457/60 725/1458/60 +f 729/1457/60 723/1459/60 725/1458/60 +f 730/1460/63 728/1461/63 724/1462/63 +f 728/1461/63 726/1463/63 724/1462/63 +f 729/1398/61 730/1440/61 723/1400/61 +f 730/1440/61 724/1441/61 723/1400/61 +f 725/1398/62 726/1440/62 727/1400/62 +f 726/1440/62 728/1441/62 727/1400/62 +f 731/1372/47 732/1464/47 733/1436/47 +f 732/1464/47 734/1465/47 733/1436/47 +f 735/1372/48 736/1464/48 737/1436/48 +f 736/1464/48 738/1465/48 737/1436/48 +f 738/1460/64 736/1461/64 732/1462/64 +f 736/1461/64 734/1463/64 732/1462/64 +f 737/1466/53 738/1467/53 731/1468/53 +f 738/1467/53 732/1469/53 731/1468/53 +f 733/1466/54 734/1467/54 735/1468/54 +f 734/1467/54 736/1469/54 735/1468/54 +f 739/1372/47 740/1470/47 741/1471/47 +f 740/1470/47 742/1472/47 741/1471/47 +f 743/1372/48 744/1470/48 745/1471/48 +f 744/1470/48 746/1472/48 745/1471/48 +f 743/1380/60 745/1473/60 741/1382/60 +f 745/1473/60 739/1474/60 741/1382/60 +f 745/1398/61 746/1467/61 739/1400/61 +f 746/1467/61 740/1469/61 739/1400/61 +f 747/1475/47 748/1476/47 749/1477/47 +f 748/1476/47 750/1478/47 749/1477/47 +f 751/1475/48 752/1476/48 753/1477/48 +f 752/1476/48 754/1478/48 753/1477/48 +f 754/1479/59 752/1480/59 748/1481/59 +f 752/1480/59 750/1482/59 748/1481/59 +f 753/1483/50 754/1484/50 747/1485/50 +f 754/1484/50 748/1486/50 747/1485/50 +f 749/1483/51 750/1484/51 751/1485/51 +f 750/1484/51 752/1486/51 751/1485/51 +f 755/1487/47 756/1488/47 757/1489/47 +f 756/1488/47 758/1490/47 757/1489/47 +f 759/1491/48 760/1492/48 761/1493/48 +f 760/1492/48 762/1494/48 761/1493/48 +f 761/1495/61 762/1496/61 755/1378/61 +f 762/1496/61 756/1497/61 755/1378/61 +f 763/1498/47 764/1499/47 765/1500/47 +f 764/1499/47 766/1501/47 765/1500/47 +f 767/1502/48 768/1503/48 769/1504/48 +f 768/1503/48 770/1505/48 769/1504/48 +f 769/1495/53 770/1506/53 763/1378/53 +f 770/1506/53 764/1507/53 763/1378/53 +f 771/1508/47 772/1509/47 773/1510/47 +f 772/1509/47 774/1511/47 773/1510/47 +f 775/1508/48 776/1509/48 777/1510/48 +f 776/1509/48 778/1511/48 777/1510/48 +f 775/1512/49 777/1513/49 773/1514/49 +f 777/1513/49 771/1515/49 773/1514/49 +f 778/1495/59 776/1516/59 772/1378/59 +f 776/1516/59 774/1517/59 772/1378/59 +f 777/1495/50 778/1518/50 771/1378/50 +f 778/1518/50 772/1519/50 771/1378/50 +f 773/1520/51 774/1521/51 775/1485/51 +f 774/1521/51 776/1522/51 775/1485/51 +f 779/1523/47 780/1524/47 781/1525/47 +f 780/1524/47 782/1526/47 781/1525/47 +f 783/1523/48 784/1524/48 785/1525/48 +f 784/1524/48 786/1526/48 785/1525/48 +f 785/1495/61 786/1527/61 779/1378/61 +f 786/1527/61 780/1528/61 779/1378/61 +o Hammer +v 0.009894 0.159364 0.192004 +v 0.009894 0.127600 0.223769 +v 0.009894 0.115170 0.147810 +v 0.009894 0.083406 0.179575 +v -0.009638 0.115170 0.147810 +v -0.009638 0.083406 0.179575 +v -0.009638 0.159364 0.192004 +v -0.009638 0.127600 0.223769 +v 0.009894 0.151487 0.265041 +v 0.009894 0.135862 0.265041 +v 0.009894 0.151487 0.220119 +v 0.009894 0.135862 0.220119 +v -0.009638 0.151487 0.220119 +v -0.009638 0.135862 0.220119 +v -0.009638 0.151487 0.265041 +v -0.009638 0.135862 0.265041 +v 0.009894 0.149695 0.230343 +v 0.009894 0.138646 0.241391 +v 0.009894 0.112406 0.193054 +v 0.009894 0.101357 0.204103 +v -0.009638 0.112406 0.193054 +v -0.009638 0.101357 0.204103 +v -0.009638 0.149695 0.230343 +v -0.009638 0.138646 0.241391 +v 0.009894 0.151488 0.220120 +v 0.009894 0.140439 0.231168 +v 0.009894 0.119723 0.188355 +v 0.009894 0.108675 0.199404 +v -0.009638 0.119723 0.188355 +v -0.009638 0.108675 0.199404 +v -0.009638 0.151488 0.220120 +v -0.009638 0.140439 0.231168 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 0.7071 0.7071 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.7071 0.7071 +vt 0.024914 0.671166 +vt 0.024914 0.581323 +vt 0.149915 0.671166 +vt 0.149915 0.581323 +vt 0.850086 0.671166 +vt 0.850086 0.581323 +vt 0.975086 0.671166 +vt 0.975086 0.581323 +vt 0.484375 0.149914 +vt 0.484375 0.024914 +vt 0.523438 0.149914 +vt 0.523438 0.024914 +vt 0.484375 0.671166 +vt 0.484375 0.581323 +vt 0.523438 0.671166 +vt 0.523438 0.581323 +vt 0.000000 0.717492 +vt 0.000000 0.686242 +vt 0.068825 0.717492 +vt 0.068825 0.686242 +vt 0.931175 0.717492 +vt 0.931175 0.686242 +vt 1.000000 0.717492 +vt 1.000000 0.686242 +vt 0.484375 0.068825 +vt 0.484375 0.000000 +vt 0.523438 0.068825 +vt 0.523438 0.000000 +vt 0.484375 1.000000 +vt 0.484375 0.931175 +vt 0.523438 1.000000 +vt 0.523438 0.931175 +vt 0.484375 0.717492 +vt 0.484375 0.686242 +vt 0.523438 0.717492 +vt 0.523438 0.686242 +vt 0.000000 0.648480 +vt 0.000000 0.617230 +vt 0.100860 0.648480 +vt 0.100860 0.617230 +vt 0.899140 0.648480 +vt 0.899140 0.617230 +vt 1.000000 0.648480 +vt 1.000000 0.617230 +vt 0.484375 0.100860 +vt 0.523438 0.100860 +vt 0.484375 0.899140 +vt 0.523438 0.899140 +vt 0.020413 0.663117 +vt 0.020413 0.631867 +vt 0.110257 0.663117 +vt 0.110257 0.631867 +vt 0.889743 0.663117 +vt 0.889743 0.631867 +vt 0.979587 0.663117 +vt 0.979587 0.631867 +vt 0.484375 0.110257 +vt 0.484375 0.020413 +vt 0.523438 0.110257 +vt 0.523438 0.020413 +vt 0.484375 0.979587 +vt 0.484375 0.889743 +vt 0.523438 0.979587 +vt 0.523438 0.889743 +s 0 +f 787/1529/65 788/1530/65 789/1531/65 +f 788/1530/65 790/1532/65 789/1531/65 +f 791/1533/66 792/1534/66 793/1535/66 +f 792/1534/66 794/1536/66 793/1535/66 +f 791/1537/67 793/1538/67 789/1539/67 +f 793/1538/67 787/1540/67 789/1539/67 +f 793/1541/68 794/1542/68 787/1543/68 +f 794/1542/68 788/1544/68 787/1543/68 +f 795/1545/65 796/1546/65 797/1547/65 +f 796/1546/65 798/1548/65 797/1547/65 +f 799/1549/66 800/1550/66 801/1551/66 +f 800/1550/66 802/1552/66 801/1551/66 +f 799/1553/69 801/1554/69 797/1555/69 +f 801/1554/69 795/1556/69 797/1555/69 +f 802/1557/70 800/1558/70 796/1559/70 +f 800/1558/70 798/1560/70 796/1559/70 +f 801/1561/71 802/1562/71 795/1563/71 +f 802/1562/71 796/1564/71 795/1563/71 +f 803/1565/65 804/1566/65 805/1567/65 +f 804/1566/65 806/1568/65 805/1567/65 +f 807/1569/66 808/1570/66 809/1571/66 +f 808/1570/66 810/1572/66 809/1571/66 +f 807/1573/67 809/1554/67 805/1574/67 +f 809/1554/67 803/1556/67 805/1574/67 +f 810/1557/72 808/1575/72 804/1559/72 +f 808/1575/72 806/1576/72 804/1559/72 +f 811/1577/65 812/1578/65 813/1579/65 +f 812/1578/65 814/1580/65 813/1579/65 +f 815/1581/66 816/1582/66 817/1583/66 +f 816/1582/66 818/1584/66 817/1583/66 +f 815/1585/67 817/1586/67 813/1587/67 +f 817/1586/67 811/1588/67 813/1587/67 +f 818/1589/72 816/1590/72 812/1591/72 +f 816/1590/72 814/1592/72 812/1591/72 diff --git a/src/main/resources/assets/hbm/models/weapons/sacred_dragon.obj b/src/main/resources/assets/hbm/models/weapons/sacred_dragon.obj new file mode 100644 index 000000000..6c55eb6ad --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/sacred_dragon.obj @@ -0,0 +1,4105 @@ +# Blender v2.79 (sub 0) OBJ File: 'sacred_dragon.blend' +# www.blender.org +o Shells +v 0.312500 0.250000 -1.750000 +v 0.187500 0.216506 -1.750000 +v 0.095994 0.125000 -1.750000 +v 0.062500 0.000000 -1.750000 +v 0.095994 -0.125000 -1.750000 +v 0.187500 -0.216506 -1.750000 +v 0.312500 -0.250000 -1.750000 +v 0.437500 -0.216506 -1.750000 +v 0.529006 -0.125000 -1.750000 +v 0.562500 0.000000 -1.750000 +v 0.529006 0.125000 -1.750000 +v 0.437500 0.216506 -1.750000 +v 0.187500 0.216506 -1.687500 +v 0.312500 0.250000 -1.687500 +v 0.095994 0.125000 -1.687500 +v 0.062500 0.000000 -1.687500 +v 0.095994 -0.125000 -1.687500 +v 0.187500 -0.216506 -1.687500 +v 0.312500 -0.250000 -1.687500 +v 0.437500 -0.216506 -1.687500 +v 0.529006 -0.125000 -1.687500 +v 0.562500 0.000000 -1.687500 +v 0.529006 0.125000 -1.687500 +v 0.437500 0.216506 -1.687500 +v 0.200000 0.194856 -1.687500 +v 0.312500 0.225000 -1.687500 +v 0.117644 0.112500 -1.687500 +v 0.087500 0.000000 -1.687500 +v 0.117644 -0.112500 -1.687500 +v 0.200000 -0.194855 -1.687500 +v 0.312500 -0.225000 -1.687500 +v 0.425000 -0.194855 -1.687500 +v 0.507356 -0.112500 -1.687500 +v 0.537500 0.000000 -1.687500 +v 0.507356 0.112500 -1.687500 +v 0.425000 0.194856 -1.687500 +v 0.200000 0.194856 -0.500000 +v 0.312500 0.225000 -0.500000 +v 0.117644 0.112500 -0.500000 +v 0.087500 0.000000 -0.500000 +v 0.117644 -0.112500 -0.500000 +v 0.200000 -0.194855 -0.500000 +v 0.312500 -0.225000 -0.500000 +v 0.425000 -0.194855 -0.500000 +v 0.507356 -0.112500 -0.500000 +v 0.537500 0.000000 -0.500000 +v 0.507356 0.112500 -0.500000 +v 0.425000 0.194856 -0.500000 +v -0.312500 0.250000 -1.750000 +v -0.437500 0.216506 -1.750000 +v -0.529006 0.125000 -1.750000 +v -0.562500 0.000000 -1.750000 +v -0.529006 -0.125000 -1.750000 +v -0.437500 -0.216506 -1.750000 +v -0.312500 -0.250000 -1.750000 +v -0.187500 -0.216506 -1.750000 +v -0.095994 -0.125000 -1.750000 +v -0.062500 0.000000 -1.750000 +v -0.095994 0.125000 -1.750000 +v -0.187500 0.216506 -1.750000 +v -0.437500 0.216506 -1.687500 +v -0.312500 0.250000 -1.687500 +v -0.529006 0.125000 -1.687500 +v -0.562500 0.000000 -1.687500 +v -0.529006 -0.125000 -1.687500 +v -0.437500 -0.216506 -1.687500 +v -0.312500 -0.250000 -1.687500 +v -0.187500 -0.216506 -1.687500 +v -0.095994 -0.125000 -1.687500 +v -0.062500 0.000000 -1.687500 +v -0.095994 0.125000 -1.687500 +v -0.187500 0.216506 -1.687500 +v -0.425000 0.194856 -1.687500 +v -0.312500 0.225000 -1.687500 +v -0.507356 0.112500 -1.687500 +v -0.537500 0.000000 -1.687500 +v -0.507356 -0.112500 -1.687500 +v -0.425000 -0.194855 -1.687500 +v -0.312500 -0.225000 -1.687500 +v -0.200000 -0.194855 -1.687500 +v -0.117644 -0.112500 -1.687500 +v -0.087500 0.000000 -1.687500 +v -0.117644 0.112500 -1.687500 +v -0.200000 0.194856 -1.687500 +v -0.425000 0.194856 -0.500000 +v -0.312500 0.225000 -0.500000 +v -0.507356 0.112500 -0.500000 +v -0.537500 0.000000 -0.500000 +v -0.507356 -0.112500 -0.500000 +v -0.425000 -0.194855 -0.500000 +v -0.312500 -0.225000 -0.500000 +v -0.200000 -0.194855 -0.500000 +v -0.117644 -0.112500 -0.500000 +v -0.087500 0.000000 -0.500000 +v -0.117644 0.112500 -0.500000 +v -0.200000 0.194856 -0.500000 +vt 0.828402 0.741079 +vt 0.787445 0.720793 +vt 0.828402 0.659936 +vt 0.674556 0.751269 +vt 0.650888 0.756345 +vt 0.650888 0.751269 +vt 0.863905 0.751269 +vt 0.887574 0.756345 +vt 0.863905 0.756345 +vt 0.769231 0.751269 +vt 0.745562 0.756345 +vt 0.745562 0.751269 +vt 0.792899 0.751269 +vt 0.816568 0.756345 +vt 0.792899 0.756345 +vt 0.698225 0.756345 +vt 0.674556 0.756345 +vt 0.911243 0.751269 +vt 0.887574 0.751269 +vt 0.769231 0.756345 +vt 0.816568 0.751269 +vt 0.840237 0.756345 +vt 0.721893 0.751269 +vt 0.698225 0.751269 +vt 0.934911 0.756345 +vt 0.911243 0.756345 +vt 0.840237 0.751269 +vt 0.721893 0.756345 +vt 0.703759 0.687810 +vt 0.775531 0.687810 +vt 0.739645 0.741132 +vt 0.828402 0.741079 +vt 0.787445 0.720793 +vt 0.828402 0.659936 +vt 0.674556 0.751269 +vt 0.650888 0.756345 +vt 0.650888 0.751269 +vt 0.863905 0.751269 +vt 0.887574 0.756345 +vt 0.863905 0.756345 +vt 0.769231 0.751269 +vt 0.745562 0.756345 +vt 0.745562 0.751269 +vt 0.792899 0.751269 +vt 0.816568 0.756345 +vt 0.792899 0.756345 +vt 0.698225 0.756345 +vt 0.674556 0.756345 +vt 0.911243 0.751269 +vt 0.887574 0.751269 +vt 0.769231 0.756345 +vt 0.816568 0.751269 +vt 0.840237 0.756345 +vt 0.721893 0.751269 +vt 0.698225 0.751269 +vt 0.934911 0.756345 +vt 0.911243 0.756345 +vt 0.840237 0.751269 +vt 0.721893 0.756345 +vt 0.703759 0.687810 +vt 0.775531 0.687810 +vt 0.739645 0.741132 +vt 0.869360 0.720794 +vt 0.852049 0.735644 +vt 0.804755 0.735644 +vt 0.781109 0.700508 +vt 0.787445 0.680222 +vt 0.804755 0.665371 +vt 0.852049 0.665371 +vt 0.869360 0.680222 +vt 0.875696 0.700508 +vt 0.934911 0.751269 +vt 0.718926 0.736369 +vt 0.703759 0.723358 +vt 0.698207 0.705584 +vt 0.718926 0.674798 +vt 0.739645 0.670035 +vt 0.760364 0.674798 +vt 0.781083 0.705584 +vt 0.775531 0.723358 +vt 0.760364 0.736369 +vt 0.869360 0.720794 +vt 0.852049 0.735644 +vt 0.804755 0.735644 +vt 0.781109 0.700508 +vt 0.787445 0.680222 +vt 0.804755 0.665371 +vt 0.852049 0.665371 +vt 0.869360 0.680222 +vt 0.875696 0.700508 +vt 0.934911 0.751269 +vt 0.718926 0.736369 +vt 0.703759 0.723358 +vt 0.698207 0.705584 +vt 0.718926 0.674798 +vt 0.739645 0.670035 +vt 0.760364 0.674798 +vt 0.781083 0.705584 +vt 0.775531 0.723358 +vt 0.760364 0.736369 +vt 0.887574 0.741117 +vt 0.863905 0.741117 +vt 0.769231 0.741117 +vt 0.745562 0.741117 +vt 0.816568 0.741117 +vt 0.792899 0.741117 +vt 0.698225 0.741117 +vt 0.674556 0.741117 +vt 0.911243 0.741117 +vt 0.840237 0.741117 +vt 0.721893 0.741117 +vt 0.934911 0.741117 +vt 0.650888 0.741117 +vt 0.650888 0.949239 +vt 0.863905 0.949239 +vt 0.745562 0.949239 +vt 0.816568 0.949239 +vt 0.792899 0.949239 +vt 0.674556 0.949239 +vt 0.887574 0.949239 +vt 0.769231 0.949239 +vt 0.698225 0.949239 +vt 0.934911 0.949239 +vt 0.911243 0.949239 +vt 0.840237 0.949239 +vt 0.721893 0.949239 +vt 0.887574 0.741117 +vt 0.863905 0.741117 +vt 0.769231 0.741117 +vt 0.745562 0.741117 +vt 0.816568 0.741117 +vt 0.792899 0.741117 +vt 0.698225 0.741117 +vt 0.674556 0.741117 +vt 0.911243 0.741117 +vt 0.840237 0.741117 +vt 0.721893 0.741117 +vt 0.934911 0.741117 +vt 0.650888 0.741117 +vt 0.650888 0.949239 +vt 0.863905 0.949239 +vt 0.745562 0.949239 +vt 0.816568 0.949239 +vt 0.792899 0.949239 +vt 0.698225 0.949239 +vt 0.674556 0.949239 +vt 0.887574 0.949239 +vt 0.769231 0.949239 +vt 0.934911 0.949239 +vt 0.911243 0.949239 +vt 0.840237 0.949239 +vt 0.721893 0.949239 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.8660 -0.5000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 1/1/1 11/2/1 7/3/1 +f 20/4/2 31/5/2 19/6/2 +f 16/7/2 29/8/2 28/9/2 +f 24/10/2 35/11/2 23/12/2 +f 14/13/2 25/14/2 26/15/2 +f 20/4/2 33/16/2 32/17/2 +f 18/18/2 29/8/2 17/19/2 +f 14/13/2 36/20/2 24/10/2 +f 13/21/2 27/22/2 25/14/2 +f 22/23/2 33/16/2 21/24/2 +f 18/18/2 31/25/2 30/26/2 +f 16/7/2 27/22/2 15/27/2 +f 23/12/2 34/28/2 22/23/2 +f 41/29/2 45/30/2 38/31/2 +f 49/32/1 59/33/1 55/34/1 +f 68/35/2 79/36/2 67/37/2 +f 64/38/2 77/39/2 76/40/2 +f 72/41/2 83/42/2 71/43/2 +f 62/44/2 73/45/2 74/46/2 +f 68/35/2 81/47/2 80/48/2 +f 66/49/2 77/39/2 65/50/2 +f 62/44/2 84/51/2 72/41/2 +f 61/52/2 75/53/2 73/45/2 +f 70/54/2 81/47/2 69/55/2 +f 66/49/2 79/56/2 78/57/2 +f 64/38/2 75/53/2 63/58/2 +f 71/43/2 82/59/2 70/54/2 +f 89/60/2 93/61/2 86/62/2 +f 3/63/1 2/64/1 1/1/1 +f 1/1/1 12/65/1 11/2/1 +f 11/2/1 10/66/1 9/67/1 +f 9/67/1 8/68/1 11/2/1 +f 8/68/1 7/3/1 11/2/1 +f 7/3/1 6/69/1 3/63/1 +f 6/69/1 5/70/1 3/63/1 +f 5/70/1 4/71/1 3/63/1 +f 3/63/1 1/1/1 7/3/1 +f 20/4/2 32/17/2 31/5/2 +f 16/7/2 17/19/2 29/8/2 +f 24/10/2 36/20/2 35/11/2 +f 14/13/2 13/21/2 25/14/2 +f 20/4/2 21/24/2 33/16/2 +f 18/18/2 30/26/2 29/8/2 +f 14/13/2 26/15/2 36/20/2 +f 13/21/2 15/27/2 27/22/2 +f 22/23/2 34/28/2 33/16/2 +f 18/18/2 19/72/2 31/25/2 +f 16/7/2 28/9/2 27/22/2 +f 23/12/2 35/11/2 34/28/2 +f 38/31/2 37/73/2 39/74/2 +f 39/74/2 40/75/2 38/31/2 +f 40/75/2 41/29/2 38/31/2 +f 41/29/2 42/76/2 43/77/2 +f 43/77/2 44/78/2 41/29/2 +f 44/78/2 45/30/2 41/29/2 +f 45/30/2 46/79/2 38/31/2 +f 46/79/2 47/80/2 38/31/2 +f 47/80/2 48/81/2 38/31/2 +f 51/82/1 50/83/1 49/32/1 +f 49/32/1 60/84/1 59/33/1 +f 59/33/1 58/85/1 57/86/1 +f 57/86/1 56/87/1 59/33/1 +f 56/87/1 55/34/1 59/33/1 +f 55/34/1 54/88/1 51/82/1 +f 54/88/1 53/89/1 51/82/1 +f 53/89/1 52/90/1 51/82/1 +f 51/82/1 49/32/1 55/34/1 +f 68/35/2 80/48/2 79/36/2 +f 64/38/2 65/50/2 77/39/2 +f 72/41/2 84/51/2 83/42/2 +f 62/44/2 61/52/2 73/45/2 +f 68/35/2 69/55/2 81/47/2 +f 66/49/2 78/57/2 77/39/2 +f 62/44/2 74/46/2 84/51/2 +f 61/52/2 63/58/2 75/53/2 +f 70/54/2 82/59/2 81/47/2 +f 66/49/2 67/91/2 79/56/2 +f 64/38/2 76/40/2 75/53/2 +f 71/43/2 83/42/2 82/59/2 +f 86/62/2 85/92/2 87/93/2 +f 87/93/2 88/94/2 86/62/2 +f 88/94/2 89/60/2 86/62/2 +f 89/60/2 90/95/2 91/96/2 +f 91/96/2 92/97/2 89/60/2 +f 92/97/2 93/61/2 89/60/2 +f 93/61/2 94/98/2 86/62/2 +f 94/98/2 95/99/2 86/62/2 +f 95/99/2 96/100/2 86/62/2 +s 1 +f 5/101/3 16/7/4 4/102/4 +f 12/103/5 23/12/6 11/104/6 +f 2/105/7 14/13/8 1/106/8 +f 9/107/9 20/4/10 8/108/10 +f 6/109/11 17/19/3 5/101/3 +f 1/106/8 24/10/5 12/103/5 +f 3/110/12 13/21/7 2/105/7 +f 10/111/13 21/24/9 9/107/9 +f 7/112/14 18/18/11 6/109/11 +f 4/102/4 15/27/12 3/110/12 +f 11/104/6 22/23/13 10/111/13 +f 8/108/10 19/6/14 7/113/14 +f 32/17/10 43/114/14 31/5/14 +f 29/8/3 40/115/4 28/9/4 +f 36/20/5 47/116/6 35/11/6 +f 26/15/8 37/117/7 38/118/8 +f 33/16/9 44/119/10 32/17/10 +f 30/26/11 41/120/3 29/8/3 +f 26/15/8 48/121/5 36/20/5 +f 27/22/12 37/117/7 25/14/7 +f 34/28/13 45/122/9 33/16/9 +f 30/26/11 43/123/14 42/124/11 +f 28/9/4 39/125/12 27/22/12 +f 35/11/6 46/126/13 34/28/13 +f 53/127/3 64/38/4 52/128/4 +f 60/129/5 71/43/6 59/130/6 +f 50/131/7 62/44/8 49/132/8 +f 57/133/9 68/35/10 56/134/10 +f 54/135/11 65/50/3 53/127/3 +f 49/132/8 72/41/5 60/129/5 +f 51/136/12 61/52/7 50/131/7 +f 58/137/13 69/55/9 57/133/9 +f 55/138/14 66/49/11 54/135/11 +f 52/128/4 63/58/12 51/136/12 +f 59/130/6 70/54/13 58/137/13 +f 56/134/10 67/37/14 55/139/14 +f 80/48/10 91/140/14 79/36/14 +f 77/39/3 88/141/4 76/40/4 +f 84/51/5 95/142/6 83/42/6 +f 74/46/8 85/143/7 86/144/8 +f 80/48/10 93/145/9 92/146/10 +f 78/57/11 89/147/3 77/39/3 +f 74/46/8 96/148/5 84/51/5 +f 75/53/12 85/143/7 73/45/7 +f 82/59/13 93/145/9 81/47/9 +f 78/57/11 91/149/14 90/150/11 +f 76/40/4 87/151/12 75/53/12 +f 83/42/6 94/152/13 82/59/13 +f 5/101/3 17/19/3 16/7/4 +f 12/103/5 24/10/5 23/12/6 +f 2/105/7 13/21/7 14/13/8 +f 9/107/9 21/24/9 20/4/10 +f 6/109/11 18/18/11 17/19/3 +f 1/106/8 14/13/8 24/10/5 +f 3/110/12 15/27/12 13/21/7 +f 10/111/13 22/23/13 21/24/9 +f 7/112/14 19/72/14 18/18/11 +f 4/102/4 16/7/4 15/27/12 +f 11/104/6 23/12/6 22/23/13 +f 8/108/10 20/4/10 19/6/14 +f 32/17/10 44/119/10 43/114/14 +f 29/8/3 41/120/3 40/115/4 +f 36/20/5 48/121/5 47/116/6 +f 26/15/8 25/14/7 37/117/7 +f 33/16/9 45/122/9 44/119/10 +f 30/26/11 42/124/11 41/120/3 +f 26/15/8 38/118/8 48/121/5 +f 27/22/12 39/125/12 37/117/7 +f 34/28/13 46/126/13 45/122/9 +f 30/26/11 31/25/14 43/123/14 +f 28/9/4 40/115/4 39/125/12 +f 35/11/6 47/116/6 46/126/13 +f 53/127/3 65/50/3 64/38/4 +f 60/129/5 72/41/5 71/43/6 +f 50/131/7 61/52/7 62/44/8 +f 57/133/9 69/55/9 68/35/10 +f 54/135/11 66/49/11 65/50/3 +f 49/132/8 62/44/8 72/41/5 +f 51/136/12 63/58/12 61/52/7 +f 58/137/13 70/54/13 69/55/9 +f 55/138/14 67/91/14 66/49/11 +f 52/128/4 64/38/4 63/58/12 +f 59/130/6 71/43/6 70/54/13 +f 56/134/10 68/35/10 67/37/14 +f 80/48/10 92/146/10 91/140/14 +f 77/39/3 89/147/3 88/141/4 +f 84/51/5 96/148/5 95/142/6 +f 74/46/8 73/45/7 85/143/7 +f 80/48/10 81/47/9 93/145/9 +f 78/57/11 90/150/11 89/147/3 +f 74/46/8 86/144/8 96/148/5 +f 75/53/12 87/151/12 85/143/7 +f 82/59/13 94/152/13 93/145/9 +f 78/57/11 79/56/14 91/149/14 +f 76/40/4 88/141/4 87/151/12 +f 83/42/6 95/142/6 94/152/13 +o Stock +v 0.312500 0.312500 -1.750000 +v 0.312500 -0.312500 -1.750000 +v 0.468750 -0.270633 -1.750000 +v 0.583133 -0.156250 -1.750000 +v 0.625000 -0.000000 -1.750000 +v 0.583133 0.156250 -1.750000 +v 0.468750 0.270633 -1.750000 +v -0.312500 0.312500 -1.750000 +v -0.468750 0.270633 -1.750000 +v -0.583133 0.156250 -1.750000 +v -0.625000 0.000000 -1.750000 +v -0.583133 -0.156250 -1.750000 +v -0.468750 -0.270633 -1.750000 +v -0.312500 -0.312500 -1.750000 +v 0.468750 -0.270633 -2.125000 +v 0.312500 -0.312500 -2.125000 +v 0.583133 -0.156250 -2.125000 +v 0.625000 -0.000000 -2.125000 +v 0.583133 0.156250 -2.125000 +v 0.468750 0.270633 -2.125000 +v 0.312500 0.312500 -2.125000 +v -0.468750 0.270633 -2.125000 +v -0.312500 0.312500 -2.125000 +v -0.583133 0.156250 -2.125000 +v -0.625000 -0.000000 -2.125000 +v -0.583133 -0.156250 -2.125000 +v -0.468750 -0.270633 -2.125000 +v -0.312500 -0.312500 -2.125000 +v 0.312500 0.250000 -2.250000 +v 0.312500 -0.250000 -2.250000 +v 0.437500 -0.216506 -2.250000 +v 0.529006 -0.125000 -2.250000 +v 0.562500 0.000000 -2.250000 +v 0.529006 0.125000 -2.250000 +v 0.437500 0.216506 -2.250000 +v -0.312500 0.250000 -2.250000 +v -0.437500 0.216506 -2.250000 +v -0.529006 0.125000 -2.250000 +v -0.562500 0.000000 -2.250000 +v -0.529006 -0.125000 -2.250000 +v -0.437500 -0.216506 -2.250000 +v -0.312500 -0.250000 -2.250000 +v -0.437500 -0.437500 -0.750000 +v -0.437500 -0.349112 -0.786612 +v 0.437500 -0.312500 -0.875000 +v 0.437500 -0.349112 -0.786612 +v 0.437500 -0.437500 -0.750000 +v 0.437500 -0.525888 -0.786612 +v 0.437500 -0.562500 -0.875000 +v -0.437500 -0.312500 -0.875000 +v -0.437500 -0.525888 -0.786612 +v -0.437500 -0.562500 -0.875000 +v 0.437500 -0.312500 -2.250000 +v -0.437500 -0.312500 -2.250000 +v 0.437500 0.062500 -2.250000 +v -0.437500 0.062500 -2.250000 +v 0.437500 -0.562500 -2.500000 +v -0.437500 -0.562500 -2.500000 +v 0.437500 0.062500 -2.500000 +v -0.437500 0.062500 -2.500000 +v 0.187500 0.187500 -2.250000 +v 0.187500 0.187500 -2.500000 +v -0.187500 0.187500 -2.250000 +v -0.187500 0.187500 -2.500000 +v 0.437500 -0.312500 -2.500000 +v -0.525888 -0.349112 -1.500000 +v 0.437500 -0.312500 -1.500000 +v 0.437500 -0.562500 -1.500000 +v 0.437500 -0.562500 -2.500000 +v 0.525888 -0.525888 -2.500000 +v 0.562500 -0.437500 -2.500000 +v 0.525888 -0.349112 -2.500000 +v -0.562500 -0.437500 -1.500000 +v -0.525888 -0.525888 -1.500000 +v -0.525888 -0.349112 -2.500000 +v -0.562500 -0.437500 -2.500000 +v -0.525888 -0.525888 -2.500000 +v -0.437500 -0.562500 -2.500000 +v 0.525888 -0.525888 -1.500000 +v 0.562500 -0.437500 -1.500000 +v 0.525888 -0.349112 -1.500000 +v -0.437500 -0.562500 -1.500000 +v -0.437500 -0.312500 -1.500000 +v -0.437500 -0.312500 -2.500000 +v 0.187500 0.125000 -2.500000 +v -0.187500 0.125000 -2.500000 +v 0.187500 -0.625000 -4.250000 +v -0.187500 -0.625000 -4.250000 +v 0.187500 -0.562500 -2.500000 +v -0.187500 -0.562500 -2.500000 +v 0.312500 0.000000 -2.500000 +v 0.312500 -0.437500 -2.500000 +v -0.312500 0.000000 -2.500000 +v -0.312500 -0.437500 -2.500000 +v 0.187500 -1.312500 -4.250000 +v -0.187500 -1.312500 -4.250000 +v 0.312500 -0.750000 -4.250000 +v 0.312500 -1.187500 -4.250000 +v -0.312500 -0.750000 -4.250000 +v -0.312500 -1.187500 -4.250000 +v 0.187500 0.000000 -3.000000 +v -0.187500 0.000000 -3.000000 +v 0.187500 -0.687500 -3.000000 +v -0.187500 -0.687500 -3.000000 +v 0.312500 -0.125000 -3.000000 +v 0.312500 -0.562500 -3.000000 +v -0.312500 -0.125000 -3.000000 +v -0.312500 -0.562500 -3.000000 +v 0.437500 -0.343750 -2.500000 +v 0.371209 -0.371209 -2.500000 +v 0.343750 -0.437500 -2.500000 +v 0.371209 -0.503791 -2.500000 +v 0.437500 -0.531250 -2.500000 +v 0.503791 -0.503791 -2.500000 +v 0.531250 -0.437500 -2.500000 +v 0.503791 -0.371209 -2.500000 +v 0.437500 -0.343750 -2.562500 +v 0.371209 -0.371209 -2.562500 +v 0.343750 -0.437500 -2.562500 +v 0.371209 -0.503791 -2.562500 +v 0.437500 -0.531250 -2.562500 +v 0.503791 -0.503791 -2.562500 +v 0.531250 -0.437500 -2.562500 +v 0.503791 -0.371209 -2.562500 +v 0.343750 -0.312500 -2.500000 +v 0.406250 -0.312500 -2.500000 +v 0.343750 0.000000 -2.500000 +v 0.406250 0.000000 -2.500000 +v 0.343750 0.000000 -2.562500 +v 0.343750 -0.312500 -2.562500 +v 0.406250 -0.312500 -2.562500 +v 0.406250 0.000000 -2.562500 +v -0.125000 0.187500 -2.500000 +v 0.125000 0.187500 -2.500000 +v -0.031250 0.187500 -2.875000 +v 0.031250 0.187500 -2.875000 +v -0.031250 0.062500 -2.875000 +v -0.125000 0.062500 -2.500000 +v 0.125000 0.062500 -2.500000 +v 0.031250 0.062500 -2.875000 +v 0.000000 0.187500 -2.625000 +v -0.088388 0.187500 -2.588388 +v -0.125000 0.187500 -2.500000 +v -0.088388 0.187500 -2.411612 +v 0.000000 0.187500 -2.375000 +v 0.088388 0.187500 -2.411612 +v 0.125000 0.187500 -2.500000 +v 0.088388 0.187500 -2.588388 +v 0.000000 0.250000 -2.625000 +v -0.088388 0.250000 -2.588388 +v -0.125000 0.250000 -2.500000 +v -0.088388 0.250000 -2.411612 +v 0.000000 0.250000 -2.375000 +v 0.088388 0.250000 -2.411612 +v 0.125000 0.250000 -2.500000 +v 0.088388 0.250000 -2.588388 +v 0.187500 -0.500000 -4.750000 +v -0.187500 -0.500000 -4.750000 +v 0.187500 -1.125000 -8.000000 +v -0.187500 -1.125000 -8.000000 +v 0.312500 -0.625000 -4.750000 +v -0.312500 -0.625000 -4.750000 +v 0.312500 -1.250000 -8.000000 +v -0.312500 -1.250000 -8.000000 +v 0.187500 -1.312500 -4.750000 +v -0.187500 -1.312500 -4.750000 +v 0.312500 -1.187500 -4.750000 +v -0.312500 -1.187500 -4.750000 +v 0.187500 -2.562500 -7.250000 +v -0.187500 -2.562500 -7.250000 +v 0.312500 -2.437500 -7.250000 +v -0.312500 -2.437500 -7.250000 +v 0.187500 -2.562500 -7.750000 +v -0.187500 -2.562500 -7.750000 +v 0.312500 -2.437500 -7.750000 +v -0.312500 -2.437500 -7.750000 +v -0.125000 -1.187500 -2.000000 +v -0.125000 -0.562500 -2.500000 +v 0.125000 -0.562500 -2.500000 +v -0.125000 -0.625000 -2.500000 +v 0.125000 -0.654029 -1.779029 +v 0.125000 -0.562500 -2.000000 +v 0.125000 -0.625000 -2.500000 +v -0.125000 -1.095971 -1.779029 +v -0.125000 -0.875000 -1.687500 +v 0.125000 -0.625000 -2.000000 +v 0.125000 -0.698223 -1.823223 +v 0.125000 -0.875000 -1.750000 +v 0.125000 -1.051777 -1.823223 +v 0.125000 -1.125000 -2.000000 +v -0.125000 -0.562500 -2.000000 +v 0.125000 -0.875000 -1.687500 +v 0.125000 -1.095971 -1.779029 +v 0.125000 -1.187500 -2.000000 +v -0.125000 -0.654029 -1.779029 +v -0.125000 -0.625000 -2.000000 +v -0.125000 -0.698223 -1.823223 +v -0.125000 -0.875000 -1.750000 +v -0.125000 -1.051777 -1.823223 +v -0.125000 -1.125000 -2.000000 +v -0.125000 -1.187500 -2.750000 +v 0.125000 -1.125000 -2.750000 +v 0.125000 -1.187500 -2.750000 +v -0.125000 -1.125000 -2.750000 +v -0.125000 -0.812500 -3.250000 +v 0.125000 -0.750000 -3.250000 +v 0.125000 -0.812500 -3.250000 +v -0.125000 -0.750000 -3.250000 +v -0.062500 -0.562500 -2.500000 +v 0.062500 -0.562500 -2.500000 +v -0.062500 -0.562500 -2.625000 +v 0.062500 -0.562500 -2.625000 +v -0.062500 -1.062500 -2.500000 +v 0.062500 -1.062500 -2.500000 +v 0.062500 -0.812500 -2.625000 +v -0.062500 -0.812500 -2.625000 +v -0.062500 -0.812500 -2.562500 +v 0.062500 -0.812500 -2.562500 +v 0.312500 0.062500 -2.437500 +v 0.268306 0.062500 -2.419194 +v 0.250000 0.062500 -2.375000 +v 0.268306 0.062500 -2.330806 +v 0.312500 0.062500 -2.312500 +v 0.356694 0.062500 -2.330806 +v 0.375000 0.062500 -2.375000 +v 0.356694 0.062500 -2.419194 +v 0.268306 0.187500 -2.419194 +v 0.312500 0.187500 -2.437500 +v 0.250000 0.187500 -2.375000 +v 0.268306 0.187500 -2.330806 +v 0.312500 0.187500 -2.312500 +v 0.356694 0.187500 -2.330806 +v 0.375000 0.187500 -2.375000 +v 0.356694 0.187500 -2.419194 +v -0.406250 -0.312500 -2.500000 +v -0.343750 -0.312500 -2.500000 +v -0.406250 0.000000 -2.500000 +v -0.343750 0.000000 -2.500000 +v -0.406250 0.000000 -2.562500 +v -0.406250 -0.312500 -2.562500 +v -0.343750 -0.312500 -2.562500 +v -0.343750 0.000000 -2.562500 +v -0.437500 -0.343750 -2.500000 +v -0.503791 -0.371209 -2.500000 +v -0.531250 -0.437500 -2.500000 +v -0.503791 -0.503791 -2.500000 +v -0.437500 -0.531250 -2.500000 +v -0.371209 -0.503791 -2.500000 +v -0.343750 -0.437500 -2.500000 +v -0.371209 -0.371209 -2.500000 +v -0.437500 -0.343750 -2.562500 +v -0.503791 -0.371209 -2.562500 +v -0.531250 -0.437500 -2.562500 +v -0.503791 -0.503791 -2.562500 +v -0.437500 -0.531250 -2.562500 +v -0.371209 -0.503791 -2.562500 +v -0.343750 -0.437500 -2.562500 +v -0.371209 -0.371209 -2.562500 +v -0.312500 0.062500 -2.437500 +v -0.356694 0.062500 -2.419194 +v -0.375000 0.062500 -2.375000 +v -0.356694 0.062500 -2.330806 +v -0.312500 0.062500 -2.312500 +v -0.268306 0.062500 -2.330806 +v -0.250000 0.062500 -2.375000 +v -0.268306 0.062500 -2.419194 +v -0.356694 0.187500 -2.419194 +v -0.312500 0.187500 -2.437500 +v -0.375000 0.187500 -2.375000 +v -0.356694 0.187500 -2.330806 +v -0.312500 0.187500 -2.312500 +v -0.268306 0.187500 -2.330806 +v -0.250000 0.187500 -2.375000 +v -0.268306 0.187500 -2.419194 +vt 0.777093 0.464465 +vt 0.751475 0.477153 +vt 0.751475 0.426400 +vt 0.003702 0.982978 +vt 0.011825 0.980091 +vt 0.011825 0.999801 +vt 0.142012 0.847716 +vt 0.165680 0.878173 +vt 0.142012 0.878173 +vt 0.142012 0.979695 +vt 0.165680 0.949239 +vt 0.165680 1.000000 +vt 0.165680 0.898477 +vt 0.177515 0.878173 +vt 0.236686 0.878173 +vt 0.142012 0.898477 +vt 0.142012 0.928934 +vt 0.094675 0.949239 +vt 0.003702 0.830496 +vt 0.011825 0.827610 +vt 0.011825 0.847320 +vt 0.272080 0.837472 +vt 0.280523 0.840473 +vt 0.284021 0.847716 +vt 0.165684 0.847716 +vt 0.169181 0.840473 +vt 0.177624 0.837473 +vt 0.177624 0.837473 +vt 0.169181 0.840473 +vt 0.165684 0.847716 +vt 0.284021 0.847716 +vt 0.280523 0.840473 +vt 0.272080 0.837472 +vt 0.792928 0.500000 +vt 0.801775 0.492410 +vt 0.810622 0.500000 +vt 0.875740 0.487310 +vt 0.869823 0.461929 +vt 0.875740 0.461929 +vt 0.869823 0.492386 +vt 0.875740 0.492386 +vt 0.875740 0.456853 +vt 0.869823 0.456853 +vt 0.863905 0.461929 +vt 0.869823 0.487310 +vt 0.863905 0.487310 +vt 0.881657 0.487310 +vt 0.881657 0.461929 +vt 0.603550 0.893401 +vt 0.618343 0.862944 +vt 0.627219 0.893401 +vt 0.618343 0.852792 +vt 0.603550 0.822335 +vt 0.627219 0.822335 +vt 0.573964 0.862944 +vt 0.609467 0.852792 +vt 0.609467 0.862944 +vt 0.615385 0.862944 +vt 0.650888 0.852792 +vt 0.650888 0.862944 +vt 0.615385 0.852792 +vt 0.781065 0.507443 +vt 0.769430 0.497462 +vt 0.781065 0.487481 +vt 0.905325 0.680203 +vt 0.911243 0.659898 +vt 0.911243 0.680203 +vt 0.905325 0.619289 +vt 0.911243 0.639594 +vt 0.905325 0.639594 +vt 0.905325 0.700508 +vt 0.911243 0.700508 +vt 0.911243 0.736041 +vt 0.934911 0.741117 +vt 0.934911 0.736041 +vt 0.905325 0.659898 +vt 0.905325 0.741117 +vt 0.911243 0.741117 +vt 0.881657 0.700508 +vt 0.875740 0.680203 +vt 0.881657 0.680203 +vt 0.875740 0.659898 +vt 0.881657 0.659898 +vt 0.881657 0.639594 +vt 0.875740 0.639594 +vt 0.881657 0.619289 +vt 0.875740 0.700508 +vt 0.881657 0.741117 +vt 0.875740 0.741117 +vt 0.875740 0.619289 +vt 0.881657 0.558376 +vt 0.911243 0.558376 +vt 0.911243 0.619289 +vt 0.905325 0.507614 +vt 0.911243 0.507614 +vt 0.875740 0.558376 +vt 0.881657 0.507614 +vt 0.798817 0.568528 +vt 0.792899 0.568528 +vt 0.792899 0.548223 +vt 0.781065 0.568528 +vt 0.775148 0.568528 +vt 0.781065 0.548223 +vt 0.769231 0.588832 +vt 0.781065 0.588832 +vt 0.804734 0.588832 +vt 0.644970 0.832411 +vt 0.639143 0.827411 +vt 0.644970 0.822412 +vt 0.875740 0.487310 +vt 0.869823 0.461929 +vt 0.875740 0.461929 +vt 0.869823 0.492386 +vt 0.875740 0.492386 +vt 0.875740 0.456853 +vt 0.869823 0.456853 +vt 0.863905 0.461929 +vt 0.869823 0.487310 +vt 0.863905 0.487310 +vt 0.881657 0.487310 +vt 0.881657 0.461929 +vt 0.792928 0.500000 +vt 0.801775 0.492410 +vt 0.810622 0.500000 +vt 0.644970 0.832411 +vt 0.639143 0.827411 +vt 0.644970 0.822412 +vt 0.766265 0.429800 +vt 0.777093 0.439088 +vt 0.781056 0.451777 +vt 0.766265 0.473754 +vt 0.692312 0.477153 +vt 0.692312 0.426400 +vt 0.677522 0.473754 +vt 0.677522 0.429800 +vt 0.666694 0.464465 +vt 0.662731 0.451777 +vt 0.666694 0.439088 +vt 0.003702 0.996915 +vt 0.000337 0.989946 +vt 0.165680 0.827411 +vt 0.142012 0.949239 +vt 0.236686 0.949239 +vt 0.177515 0.949239 +vt 0.165680 0.928934 +vt 0.130178 0.949239 +vt 0.094675 0.878173 +vt 0.130178 0.878173 +vt 0.003702 0.844433 +vt 0.000337 0.837465 +vt 0.280523 0.854959 +vt 0.272080 0.857959 +vt 0.177624 0.857959 +vt 0.169181 0.854959 +vt 0.169181 0.854959 +vt 0.177624 0.857959 +vt 0.272080 0.857959 +vt 0.280523 0.854959 +vt 0.808031 0.505367 +vt 0.801775 0.507590 +vt 0.795519 0.505367 +vt 0.795519 0.494633 +vt 0.808031 0.494633 +vt 0.612426 0.862944 +vt 0.612426 0.852792 +vt 0.573964 0.852792 +vt 0.789292 0.490404 +vt 0.792700 0.497462 +vt 0.789292 0.504520 +vt 0.772838 0.504520 +vt 0.772838 0.490404 +vt 0.905325 0.558376 +vt 0.875740 0.507614 +vt 0.792899 0.588832 +vt 0.649091 0.823876 +vt 0.650798 0.827411 +vt 0.649091 0.830946 +vt 0.640849 0.830946 +vt 0.640849 0.823876 +vt 0.808031 0.505367 +vt 0.801775 0.507590 +vt 0.795519 0.505367 +vt 0.795519 0.494633 +vt 0.808031 0.494633 +vt 0.649091 0.823876 +vt 0.650798 0.827411 +vt 0.649091 0.830946 +vt 0.640849 0.830946 +vt 0.640849 0.823876 +vt 0.650888 0.659898 +vt 0.639053 0.670051 +vt 0.639053 0.654822 +vt 0.603550 0.781726 +vt 0.639053 0.796954 +vt 0.603550 0.796954 +vt 0.603550 0.624366 +vt 0.639053 0.639594 +vt 0.603550 0.639594 +vt 0.603550 0.812183 +vt 0.639053 0.812183 +vt 0.603550 0.654822 +vt 0.603550 0.670051 +vt 0.639053 0.720812 +vt 0.603550 0.720812 +vt 0.603550 0.527919 +vt 0.639053 0.578680 +vt 0.603550 0.578680 +vt 0.639053 0.736041 +vt 0.603550 0.736041 +vt 0.603550 0.751269 +vt 0.639053 0.751269 +vt 0.639053 0.593909 +vt 0.603550 0.593909 +vt 0.603550 0.766497 +vt 0.639053 0.766497 +vt 0.639053 0.609137 +vt 0.603550 0.609137 +vt 0.639053 0.781726 +vt 0.639053 0.624366 +vt 0.650888 0.644670 +vt 0.650888 0.629442 +vt 0.650888 0.609137 +vt 0.650888 0.593909 +vt 0.650888 0.578680 +vt 0.650888 0.720812 +vt 0.650888 0.746193 +vt 0.650888 0.761421 +vt 0.650888 0.781726 +vt 0.650888 0.796954 +vt 0.650888 0.812183 +vt 0.650888 0.802030 +vt 0.650888 0.527919 +vt 0.639053 0.527919 +vt 0.766050 0.487312 +vt 0.745556 0.517762 +vt 0.745556 0.477162 +vt 0.402367 0.949239 +vt 0.390533 0.878173 +vt 0.402367 0.878173 +vt 0.426035 0.949239 +vt 0.414201 0.878173 +vt 0.426035 0.878173 +vt 0.414201 0.949239 +vt 0.437870 0.949239 +vt 0.437870 0.878173 +vt 0.568047 0.949239 +vt 0.390533 0.949239 +vt 0.177515 0.837563 +vt 0.272189 0.847716 +vt 0.272189 0.837563 +vt 0.177515 0.827411 +vt 0.272189 0.827411 +vt 0.177515 0.857868 +vt 0.272189 0.868020 +vt 0.272189 0.857868 +vt 0.272189 0.857868 +vt 0.177515 0.847716 +vt 0.272189 0.847716 +vt 0.177515 0.847716 +vt 0.272189 0.868020 +vt 0.177515 0.857868 +vt 0.272189 0.837563 +vt 0.177515 0.827411 +vt 0.272189 0.827411 +vt 0.177515 0.837563 +vt 0.047337 0.730964 +vt 0.165680 0.690355 +vt 0.047337 0.741117 +vt 0.047337 0.776650 +vt 0.165680 0.736041 +vt 0.165680 0.725888 +vt 0.047337 0.741117 +vt 0.165680 0.690355 +vt 0.047337 0.730964 +vt 0.165680 0.680203 +vt 0.047337 0.827411 +vt 0.165680 0.796954 +vt 0.165680 0.827411 +vt 0.047337 0.776650 +vt 0.165680 0.736041 +vt 0.047337 0.786802 +vt 0.047337 0.548223 +vt 0.165680 0.578680 +vt 0.047337 0.578680 +vt 0.000000 0.751269 +vt -0.000000 0.786802 +vt 0.213018 0.827411 +vt 0.165680 0.725888 +vt 0.000000 0.796954 +vt -0.000000 0.827411 +vt 0.000000 0.786802 +vt 0.047337 0.786802 +vt 0.000000 0.751269 +vt -0.000000 0.741117 +vt 0.000000 0.578680 +vt 0.000000 0.548223 +vt 0.000000 0.741117 +vt 0.822485 0.487310 +vt 0.816568 0.492386 +vt 0.816568 0.487310 +vt 0.834320 0.487310 +vt 0.828402 0.492386 +vt 0.828402 0.487310 +vt 0.798817 0.487310 +vt 0.792899 0.492386 +vt 0.792899 0.487310 +vt 0.810651 0.487310 +vt 0.804734 0.492386 +vt 0.804734 0.487310 +vt 0.822485 0.492386 +vt 0.840237 0.487310 +vt 0.834320 0.492386 +vt 0.798817 0.492386 +vt 0.810651 0.492386 +vt 0.804734 0.487310 +vt 0.816568 0.482233 +vt 0.816568 0.487310 +vt 0.828402 0.482233 +vt 0.828402 0.487310 +vt 0.840237 0.487310 +vt 0.852071 0.482233 +vt 0.852071 0.487310 +vt 0.769231 0.487310 +vt 0.781065 0.482233 +vt 0.781065 0.487310 +vt 0.792899 0.487310 +vt 0.804734 0.482233 +vt 0.840237 0.482233 +vt 0.863905 0.482233 +vt 0.863905 0.487310 +vt 0.792899 0.482233 +vt 0.213018 0.796954 +vt 0.520710 0.827411 +vt 0.213018 0.736041 +vt 0.520710 0.695431 +vt 0.520710 0.685279 +vt 0.213018 0.736041 +vt 0.520710 0.695431 +vt 0.520710 0.685279 +vt 0.213018 0.680203 +vt 0.165680 0.680203 +vt 0.213018 0.690355 +vt 0.165680 0.548223 +vt 0.213018 0.578680 +vt 0.449704 0.588832 +vt 0.449704 0.578680 +vt 0.213018 0.680203 +vt 0.449704 0.588832 +vt 0.213018 0.548223 +vt 0.449704 0.578680 +vt 0.497041 0.578680 +vt 0.497041 0.588832 +vt 0.449704 0.548223 +vt 0.497041 0.578680 +vt 0.579882 0.588832 +vt 0.532544 0.578680 +vt 0.568047 0.578680 +vt 0.520710 0.690355 +vt 0.568047 0.700508 +vt 0.532544 0.700508 +vt 0.520710 0.588832 +vt 0.213018 0.690355 +vt 0.497041 0.588832 +vt 0.934911 0.639594 +vt 0.934911 0.680203 +vt 0.934911 0.659898 +vt 0.934911 0.700508 +vt 0.934911 0.558376 +vt 0.934911 0.619289 +vt 0.934911 0.507614 +vt 0.792899 0.507614 +vt 0.781065 0.527919 +vt 0.781065 0.507614 +vt 0.792899 0.527919 +vt 0.633136 0.822335 +vt 0.639053 0.812183 +vt 0.639053 0.822335 +vt 0.644970 0.822335 +vt 0.650888 0.812183 +vt 0.650888 0.822335 +vt 0.609467 0.822335 +vt 0.615385 0.812183 +vt 0.615385 0.822335 +vt 0.621302 0.822335 +vt 0.627219 0.812183 +vt 0.627219 0.822335 +vt 0.633136 0.812183 +vt 0.644970 0.812183 +vt 0.603550 0.822335 +vt 0.609467 0.812183 +vt 0.621302 0.812183 +vt 0.822485 0.487310 +vt 0.816568 0.492386 +vt 0.816568 0.487310 +vt 0.834320 0.487310 +vt 0.828402 0.492386 +vt 0.828402 0.487310 +vt 0.798817 0.487310 +vt 0.792899 0.492386 +vt 0.792899 0.487310 +vt 0.810651 0.487310 +vt 0.804734 0.492386 +vt 0.804734 0.487310 +vt 0.822485 0.492386 +vt 0.840237 0.487310 +vt 0.834320 0.492386 +vt 0.798817 0.492386 +vt 0.810651 0.492386 +vt 0.633136 0.822335 +vt 0.639053 0.812183 +vt 0.639053 0.822335 +vt 0.644970 0.822335 +vt 0.650888 0.812183 +vt 0.650888 0.822335 +vt 0.609467 0.822335 +vt 0.615385 0.812183 +vt 0.615385 0.822335 +vt 0.621302 0.822335 +vt 0.627219 0.812183 +vt 0.627219 0.822335 +vt 0.633136 0.812183 +vt 0.644970 0.812183 +vt 0.603550 0.822335 +vt 0.609467 0.812183 +vt 0.621302 0.812183 +vt 0.650888 0.670051 +vt 0.650888 0.654822 +vt 0.650888 0.639594 +vt 0.650888 0.619289 +vt 0.650888 0.604061 +vt 0.650888 0.588832 +vt 0.650888 0.730964 +vt 0.650888 0.736041 +vt 0.650888 0.751269 +vt 0.650888 0.771574 +vt 0.650888 0.786802 +vt 0.766050 0.507612 +vt 0.757388 0.515043 +vt 0.686397 0.517762 +vt 0.674565 0.515043 +vt 0.686397 0.477162 +vt 0.665903 0.507612 +vt 0.662733 0.497462 +vt 0.665903 0.487312 +vt 0.674565 0.479881 +vt 0.757388 0.479881 +vt 0.769220 0.497462 +vt 0.568047 0.878173 +vt 0.177515 0.868020 +vt 0.177515 0.868020 +vt 0.047337 0.796954 +vt 0.000000 0.796954 +vt 0.840237 0.492386 +vt 0.769231 0.482233 +vt 0.520710 0.796954 +vt 0.213018 0.746193 +vt 0.213018 0.746193 +vt 0.497041 0.548223 +vt 0.579882 0.690355 +vt 0.603550 0.812183 +vt 0.840237 0.492386 +vt 0.603550 0.812183 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.9701 0.0000 -0.2425 +vn -0.9701 0.0000 -0.2425 +vn 0.2917 0.5052 -0.8122 +vn 0.1251 0.9665 -0.2241 +vn 0.4876 0.8445 -0.2217 +vn -0.8660 -0.5000 0.0000 +vn -0.4876 -0.8445 -0.2217 +vn -0.5000 -0.8660 0.0000 +vn 0.8445 0.4876 -0.2217 +vn 0.8660 0.5000 -0.0000 +vn -0.1305 -0.9914 0.0000 +vn -0.1251 -0.9665 -0.2241 +vn 0.5000 0.8660 -0.0000 +vn 0.1305 0.9914 0.0000 +vn -0.1251 0.9665 -0.2241 +vn -0.1305 0.9914 -0.0000 +vn 0.1251 -0.9665 -0.2241 +vn 0.1305 -0.9914 0.0000 +vn -0.4876 0.8445 -0.2217 +vn -0.5000 0.8660 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn -0.8445 0.4876 -0.2217 +vn 0.4876 -0.8445 -0.2217 +vn 0.5000 -0.8660 0.0000 +vn -0.9751 -0.0000 -0.2217 +vn 0.8445 -0.4876 -0.2217 +vn 0.8660 -0.5000 0.0000 +vn -0.8445 -0.4876 -0.2217 +vn 0.9751 -0.0000 -0.2217 +vn 0.5052 0.2917 -0.8122 +vn 0.5834 0.0000 -0.8122 +vn 0.5052 -0.2917 -0.8122 +vn 0.2917 -0.5052 -0.8122 +vn 0.0756 -0.5524 -0.8301 +vn -0.0756 0.5524 -0.8301 +vn -0.5052 0.2917 -0.8122 +vn -0.5834 -0.0000 -0.8122 +vn -0.5052 -0.2917 -0.8122 +vn -0.2917 -0.5052 -0.8122 +vn -0.0756 -0.5524 -0.8301 +vn 0.0756 0.5524 -0.8301 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.9808 0.1951 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.9808 0.1951 +vn 0.2298 0.9732 0.0000 +vn -0.2298 0.9732 0.0000 +vn 0.4472 0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.3752 -0.8668 0.3286 +vn 0.8994 -0.4225 0.1123 +vn 0.9281 -0.3513 0.1236 +vn -0.9066 0.3929 -0.1537 +vn -0.4140 0.9038 -0.1085 +vn -0.9522 0.3041 -0.0291 +vn -0.9281 -0.3513 0.1236 +vn -0.8994 -0.4225 0.1123 +vn -0.3752 -0.8668 0.3286 +vn -0.3595 -0.9099 0.2070 +vn -0.3607 0.8769 -0.3178 +vn 0.4140 0.9038 -0.1085 +vn 0.9066 0.3929 -0.1537 +vn 0.3607 0.8769 -0.3178 +vn 0.3595 -0.9099 0.2070 +vn 0.9409 -0.3285 0.0821 +vn 0.8970 0.4287 -0.1072 +vn -0.3652 0.9306 0.0247 +vn 0.9522 0.3041 -0.0291 +vn 0.3538 0.9074 -0.2269 +vn -0.3538 0.9074 -0.2269 +vn -0.8970 0.4287 -0.1072 +vn -0.9409 -0.3285 0.0821 +vn -0.3951 -0.8912 0.2228 +vn 0.3951 -0.8912 0.2228 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.3652 0.9306 0.0247 +vn -0.3939 0.9026 -0.1736 +vn -0.9047 0.4259 0.0130 +vn -0.9283 0.3651 -0.0702 +vn 0.9047 0.4259 0.0130 +vn 0.3939 0.9026 -0.1736 +vn 0.9283 0.3651 -0.0702 +vn -0.3954 -0.8912 0.2222 +vn 0.9414 -0.3297 0.0706 +vn 0.3954 -0.8912 0.2222 +vn 0.9334 -0.3589 0.0000 +vn 0.0000 -0.1380 -0.9904 +vn -0.9414 -0.3297 0.0706 +vn -0.9334 -0.3589 0.0000 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9808 -0.1951 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.9808 -0.1951 +vn 0.0000 0.9487 0.3162 +vn 0.0000 -0.9487 -0.3162 +vn 0.0000 0.8000 0.6000 +vn 0.0000 -0.8000 -0.6000 +vn 0.0000 0.2425 0.9701 +vn 0.0000 -0.2425 0.9701 +vn 0.0000 -0.2298 -0.9732 +vn 0.0000 -0.4472 -0.8944 +vn -0.2917 0.5052 -0.8122 +s off +f 102/153/15 97/154/15 98/155/15 +f 140/156/16 146/157/16 148/158/16 +f 149/159/17 155/160/17 151/161/17 +f 150/162/16 156/163/16 154/164/16 +f 158/165/18 155/166/18 153/167/18 +f 157/168/15 159/169/15 150/170/15 +f 144/171/17 145/172/17 141/173/17 +f 161/174/18 168/175/18 167/176/18 +f 176/177/15 177/178/15 163/179/15 +f 179/180/15 162/181/15 169/182/15 +f 172/183/18 171/184/18 180/185/18 +f 219/186/18 217/187/18 215/188/18 +f 225/189/18 227/190/18 226/191/18 +f 224/192/19 225/189/19 223/193/19 +f 221/194/20 227/190/20 222/195/20 +f 222/196/17 228/197/17 224/198/17 +f 223/199/16 226/191/16 221/200/16 +f 230/201/19 231/202/19 229/203/19 +f 233/204/20 235/205/20 234/206/20 +f 230/207/21 236/208/21 232/209/21 +f 231/210/22 234/211/22 229/212/22 +f 232/209/18 233/213/18 231/210/18 +f 249/214/19 251/215/19 245/216/19 +f 277/217/17 284/218/17 283/219/17 +f 290/220/17 285/221/17 289/222/17 +f 278/223/17 283/219/17 282/224/17 +f 275/225/18 276/226/18 274/227/18 +f 289/222/17 284/218/17 288/228/17 +f 275/229/17 282/224/17 279/230/17 +f 287/231/16 293/232/16 291/233/16 +f 291/233/16 294/234/16 281/235/16 +f 294/234/16 280/236/16 281/235/16 +f 295/237/16 273/238/16 280/236/16 +f 292/239/16 274/240/16 276/241/16 +f 296/242/16 297/243/16 273/238/16 +f 290/220/17 298/244/17 286/245/17 +f 298/244/17 303/246/17 302/247/17 +f 300/248/16 301/249/16 297/243/16 +f 311/250/17 314/251/17 310/252/17 +f 313/253/16 312/254/16 309/255/16 +f 307/256/16 313/253/16 305/257/16 +f 308/258/17 314/251/17 311/250/17 +f 327/259/19 329/260/19 324/261/19 +f 335/262/18 337/263/18 336/264/18 +f 334/265/19 335/262/19 333/266/19 +f 331/267/20 337/263/20 332/268/20 +f 332/269/17 338/270/17 334/271/17 +f 333/272/16 336/264/16 331/273/16 +f 353/274/18 351/275/18 349/276/18 +f 367/277/19 369/278/19 364/279/19 +f 98/155/15 99/280/15 100/281/15 +f 100/281/15 101/282/15 102/153/15 +f 102/153/15 103/283/15 97/154/15 +f 97/154/15 104/284/15 110/285/15 +f 104/284/15 105/286/15 109/287/15 +f 105/286/15 106/288/15 107/289/15 +f 107/289/15 108/290/15 105/286/15 +f 108/290/15 109/287/15 105/286/15 +f 109/287/15 110/285/15 104/284/15 +f 110/285/15 98/155/15 97/154/15 +f 98/155/15 100/281/15 102/153/15 +f 146/157/16 150/162/16 148/158/16 +f 150/162/16 154/164/16 148/158/16 +f 148/158/16 147/291/16 140/156/16 +f 147/291/16 139/292/16 140/156/16 +f 149/159/17 153/293/17 155/160/17 +f 150/162/16 152/294/16 156/163/16 +f 153/167/18 154/295/18 158/165/18 +f 154/295/18 156/296/18 160/297/18 +f 158/165/18 154/295/18 160/297/18 +f 152/298/15 150/170/15 159/169/15 +f 150/170/15 149/299/15 157/168/15 +f 149/299/15 151/300/15 157/168/15 +f 145/172/17 153/293/17 149/159/17 +f 149/159/17 141/173/17 145/172/17 +f 141/173/17 142/301/17 144/171/17 +f 142/301/17 143/302/17 144/171/17 +f 166/303/18 165/304/18 167/176/18 +f 165/304/18 161/174/18 167/176/18 +f 163/179/15 164/305/15 175/306/15 +f 175/306/15 176/177/15 163/179/15 +f 170/307/15 178/308/15 169/182/15 +f 178/308/15 179/180/15 169/182/15 +f 180/185/18 174/309/18 173/310/18 +f 173/310/18 172/183/18 180/185/18 +f 215/188/18 214/311/18 213/312/18 +f 213/312/18 220/313/18 219/186/18 +f 219/186/18 218/314/18 217/187/18 +f 217/187/18 216/315/18 215/188/18 +f 215/188/18 213/312/18 219/186/18 +f 225/189/18 228/197/18 227/190/18 +f 224/192/19 228/197/19 225/189/19 +f 221/194/20 226/191/20 227/190/20 +f 222/196/17 227/190/17 228/197/17 +f 223/199/16 225/189/16 226/191/16 +f 230/201/19 232/316/19 231/202/19 +f 233/204/20 236/317/20 235/205/20 +f 230/207/21 235/318/21 236/208/21 +f 231/210/22 233/213/22 234/211/22 +f 232/209/18 236/208/18 233/213/18 +f 245/216/19 246/319/19 247/320/19 +f 247/320/19 248/321/19 249/214/19 +f 249/214/19 250/322/19 251/215/19 +f 251/215/19 252/323/19 245/216/19 +f 245/216/19 247/320/19 249/214/19 +f 277/217/17 288/228/17 284/218/17 +f 290/220/17 286/245/17 285/221/17 +f 278/223/17 277/217/17 283/219/17 +f 275/225/18 279/230/18 276/226/18 +f 289/222/17 285/221/17 284/218/17 +f 275/229/17 278/223/17 282/224/17 +f 287/231/16 292/239/16 293/232/16 +f 291/233/16 293/232/16 294/234/16 +f 294/234/16 295/237/16 280/236/16 +f 295/237/16 296/242/16 273/238/16 +f 292/239/16 287/231/16 274/240/16 +f 296/242/16 300/248/16 297/243/16 +f 290/220/17 299/324/17 298/244/17 +f 298/244/17 299/324/17 303/246/17 +f 300/248/16 304/325/16 301/249/16 +f 307/256/16 312/254/16 313/253/16 +f 308/258/17 306/326/17 314/251/17 +f 324/261/19 323/327/19 325/328/19 +f 325/328/19 326/329/19 327/259/19 +f 327/259/19 328/330/19 329/260/19 +f 329/260/19 330/331/19 324/261/19 +f 324/261/19 325/328/19 327/259/19 +f 335/262/18 338/270/18 337/263/18 +f 334/265/19 338/270/19 335/262/19 +f 331/267/20 336/264/20 337/263/20 +f 332/269/17 337/263/17 338/270/17 +f 333/272/16 335/262/16 336/264/16 +f 349/276/18 348/332/18 347/333/18 +f 347/333/18 354/334/18 353/274/18 +f 353/274/18 352/335/18 351/275/18 +f 351/275/18 350/336/18 349/276/18 +f 349/276/18 347/333/18 353/274/18 +f 364/279/19 363/337/19 365/338/19 +f 365/338/19 366/339/19 367/277/19 +f 367/277/19 368/340/19 369/278/19 +f 369/278/19 370/341/19 364/279/19 +f 364/279/19 365/338/19 367/277/19 +s 1 +f 131/342/23 117/343/24 116/344/25 +f 108/345/26 123/346/27 109/347/28 +f 101/348/17 115/349/29 102/350/30 +f 110/351/31 123/346/27 124/352/32 +f 102/350/30 116/344/25 103/353/33 +f 97/354/34 119/355/35 104/356/36 +f 103/353/33 117/343/24 97/354/34 +f 110/357/31 112/358/37 98/359/38 +f 104/356/36 118/360/39 105/361/40 +f 106/362/41 118/360/39 120/363/42 +f 98/359/38 111/364/43 99/365/44 +f 107/366/16 120/363/42 121/367/45 +f 99/365/44 113/368/46 100/369/47 +f 108/345/26 121/367/45 122/370/48 +f 100/369/47 114/371/49 101/348/17 +f 130/372/50 116/344/25 115/349/29 +f 129/373/51 115/349/29 114/371/49 +f 128/374/52 114/371/49 113/368/46 +f 127/375/53 113/368/46 111/364/43 +f 126/376/54 111/364/43 112/358/37 +f 132/377/55 118/360/39 119/355/35 +f 118/360/39 134/378/56 120/363/42 +f 120/363/42 135/379/57 121/367/45 +f 121/367/45 136/380/58 122/370/48 +f 122/370/48 137/381/59 123/346/27 +f 138/382/60 123/346/27 137/383/59 +f 138/384/60 112/358/37 124/385/32 +f 117/343/24 132/377/55 119/355/35 +f 130/386/50 126/387/54 125/388/61 +f 147/389/62 145/390/63 144/391/62 +f 140/392/64 143/393/15 142/394/64 +f 139/395/15 144/391/62 143/393/15 +f 146/396/65 142/394/64 141/397/65 +f 141/397/65 150/398/19 146/396/65 +f 158/165/66 159/169/67 157/168/66 +f 154/295/20 145/390/63 148/399/63 +f 155/160/68 157/168/66 151/161/68 +f 159/169/67 156/163/69 152/294/69 +f 170/400/70 172/401/16 173/402/70 +f 178/403/71 173/402/70 174/404/71 +f 162/405/72 180/406/73 171/407/72 +f 168/408/74 176/409/17 167/410/17 +f 169/411/16 171/407/72 172/401/16 +f 161/412/75 177/413/74 168/408/74 +f 166/414/76 164/415/77 165/416/77 +f 167/410/17 175/417/76 166/414/76 +f 199/418/78 194/419/79 202/420/80 +f 203/421/81 184/422/82 195/423/83 +f 204/424/84 195/423/83 196/425/85 +f 200/426/86 196/425/85 192/427/87 +f 198/428/88 183/429/89 184/430/82 +f 201/431/90 183/432/89 197/433/91 +f 200/434/86 191/435/92 199/436/78 +f 188/437/93 201/431/90 187/438/94 +f 183/429/89 254/439/95 184/430/82 +f 193/440/96 202/420/80 194/419/79 +f 187/438/94 197/433/91 181/441/97 +f 181/441/97 198/428/88 182/442/98 +f 189/443/99 198/444/88 203/421/81 +f 190/445/100 203/421/81 204/424/84 +f 186/446/101 204/424/84 200/426/86 +f 200/434/86 185/447/102 186/448/101 +f 185/449/102 202/420/80 188/437/93 +f 212/450/74 213/451/19 205/452/19 +f 210/453/76 219/454/17 211/455/17 +f 208/456/70 217/457/20 209/458/20 +f 206/459/72 215/460/16 207/461/16 +f 211/455/17 220/462/74 212/450/74 +f 209/463/20 218/464/76 210/453/76 +f 207/461/16 216/465/70 208/456/70 +f 205/452/19 214/466/72 206/459/72 +f 238/467/103 245/468/18 237/469/18 +f 237/469/18 252/470/104 244/471/104 +f 243/472/17 250/473/105 242/474/105 +f 241/475/15 248/476/106 240/477/106 +f 239/478/16 246/479/103 238/467/103 +f 244/471/104 251/480/17 243/472/17 +f 242/474/105 249/481/15 241/482/15 +f 240/477/106 247/483/16 239/478/16 +f 253/484/107 256/485/108 254/439/95 +f 184/422/82 258/486/109 195/423/83 +f 258/486/109 256/487/108 260/488/110 +f 257/489/111 183/432/89 193/440/96 +f 255/490/112 257/489/111 259/491/113 +f 196/425/85 262/492/114 192/427/87 +f 191/493/92 263/494/115 194/419/79 +f 192/495/87 261/496/116 191/435/92 +f 262/492/114 268/497/85 266/498/87 +f 261/499/116 267/500/79 263/494/115 +f 262/501/114 265/502/92 261/496/116 +f 268/497/85 270/503/71 266/498/87 +f 265/502/92 271/504/117 267/500/79 +f 266/505/87 269/506/77 265/502/92 +f 272/507/118 269/508/18 270/509/18 +f 259/510/118 256/511/18 255/512/18 +f 272/507/118 259/510/118 271/513/118 +f 195/423/83 264/514/119 196/425/85 +f 260/488/110 264/514/119 258/486/109 +f 263/494/115 193/440/96 194/419/79 +f 263/494/115 259/491/113 257/489/111 +f 267/500/79 271/504/117 259/491/113 +f 268/497/85 260/488/110 272/515/120 +f 277/217/64 281/235/15 288/228/15 +f 288/228/15 280/236/62 289/222/62 +f 278/223/121 291/233/64 277/217/64 +f 289/222/62 273/238/63 290/220/63 +f 286/245/122 295/516/123 285/221/123 +f 284/218/18 293/517/124 283/219/124 +f 285/221/123 294/518/18 284/218/18 +f 283/219/124 292/519/125 282/224/125 +f 282/224/125 276/226/20 279/230/20 +f 286/245/122 300/520/126 296/521/122 +f 273/238/63 299/324/127 290/220/63 +f 298/244/126 304/522/128 300/520/126 +f 297/243/127 303/246/129 299/324/127 +f 313/253/15 310/252/130 314/251/15 +f 305/257/131 314/251/15 306/326/131 +f 308/523/18 312/524/132 307/525/18 +f 311/526/132 309/255/133 312/524/132 +f 322/527/104 329/528/17 321/529/17 +f 320/530/105 327/531/15 319/532/15 +f 318/533/106 325/534/16 317/535/16 +f 316/536/103 324/537/18 315/538/18 +f 315/538/18 330/539/104 322/527/104 +f 321/529/17 328/540/105 320/530/105 +f 319/541/15 326/542/106 318/533/106 +f 317/535/16 323/543/103 316/536/103 +f 346/544/74 347/545/19 339/546/19 +f 344/547/76 353/548/17 345/549/17 +f 342/550/70 351/551/20 343/552/20 +f 340/553/72 349/554/16 341/555/16 +f 345/549/17 354/556/74 346/544/74 +f 343/557/20 352/558/76 344/547/76 +f 341/555/16 350/559/70 342/550/70 +f 339/546/19 348/560/72 340/553/72 +f 362/561/104 369/562/17 361/563/17 +f 360/564/105 367/565/15 359/566/15 +f 358/567/106 365/568/16 357/569/16 +f 356/570/103 364/571/18 355/572/18 +f 355/572/18 370/573/104 362/561/104 +f 361/563/17 368/574/105 360/564/105 +f 359/575/15 366/576/106 358/567/106 +f 357/569/16 363/577/103 356/570/103 +f 131/342/23 125/578/61 117/343/24 +f 108/345/26 122/370/48 123/346/27 +f 101/348/17 114/371/49 115/349/29 +f 110/351/31 109/347/28 123/346/27 +f 102/350/30 115/349/29 116/344/25 +f 97/354/34 117/343/24 119/355/35 +f 103/353/33 116/344/25 117/343/24 +f 110/357/31 124/385/32 112/358/37 +f 104/356/36 119/355/35 118/360/39 +f 106/362/41 105/361/40 118/360/39 +f 98/359/38 112/358/37 111/364/43 +f 107/366/16 106/362/41 120/363/42 +f 99/365/44 111/364/43 113/368/46 +f 108/345/26 107/366/16 121/367/45 +f 100/369/47 113/368/46 114/371/49 +f 130/372/50 131/579/23 116/344/25 +f 129/373/51 130/580/50 115/349/29 +f 128/374/52 129/581/51 114/371/49 +f 127/375/53 128/582/52 113/368/46 +f 126/376/54 127/583/53 111/364/43 +f 132/377/55 133/584/134 118/360/39 +f 118/360/39 133/585/134 134/378/56 +f 120/363/42 134/586/56 135/379/57 +f 121/367/45 135/587/57 136/380/58 +f 122/370/48 136/588/58 137/381/59 +f 138/382/60 124/352/32 123/346/27 +f 138/384/60 126/376/54 112/358/37 +f 117/343/24 125/578/61 132/377/55 +f 128/589/52 127/590/53 126/387/54 +f 126/387/54 138/591/60 125/388/61 +f 138/591/60 137/592/59 132/593/55 +f 125/388/61 138/591/60 132/593/55 +f 137/592/59 136/594/58 135/595/57 +f 135/595/57 134/596/56 137/592/59 +f 134/596/56 133/597/134 137/592/59 +f 133/597/134 132/593/55 137/592/59 +f 125/388/61 131/598/23 130/386/50 +f 130/386/50 129/599/51 128/589/52 +f 128/589/52 126/387/54 130/386/50 +f 147/389/62 148/399/63 145/390/63 +f 140/392/64 139/395/15 143/393/15 +f 139/395/15 147/389/62 144/391/62 +f 146/396/65 140/392/64 142/394/64 +f 141/397/65 149/600/19 150/398/19 +f 158/165/66 160/297/67 159/169/67 +f 154/295/20 153/167/20 145/390/63 +f 155/160/68 158/165/66 157/168/66 +f 159/169/67 160/297/67 156/163/69 +f 170/400/70 169/411/16 172/401/16 +f 178/403/71 170/400/70 173/402/70 +f 162/405/72 179/601/73 180/406/73 +f 168/408/74 177/413/74 176/409/17 +f 169/411/16 162/405/72 171/407/72 +f 161/412/75 163/602/75 177/413/74 +f 166/414/76 175/417/76 164/415/77 +f 167/410/17 176/409/17 175/417/76 +f 199/418/78 191/493/92 194/419/79 +f 203/421/81 198/444/88 184/422/82 +f 204/424/84 203/421/81 195/423/83 +f 200/426/86 204/424/84 196/425/85 +f 198/428/88 197/603/91 183/429/89 +f 201/431/90 193/440/96 183/432/89 +f 200/434/86 192/495/87 191/435/92 +f 188/437/93 202/420/80 201/431/90 +f 183/429/89 253/484/107 254/439/95 +f 193/440/96 201/431/90 202/420/80 +f 187/438/94 201/431/90 197/433/91 +f 181/441/97 197/603/91 198/428/88 +f 189/443/99 182/604/98 198/444/88 +f 190/445/100 189/443/99 203/421/81 +f 186/446/101 190/445/100 204/424/84 +f 200/434/86 199/436/78 185/447/102 +f 185/449/102 199/418/78 202/420/80 +f 212/450/74 220/462/74 213/451/19 +f 210/453/76 218/464/76 219/454/17 +f 208/456/70 216/465/70 217/457/20 +f 206/459/72 214/466/72 215/460/16 +f 211/455/17 219/454/17 220/462/74 +f 209/463/20 217/605/20 218/464/76 +f 207/461/16 215/460/16 216/465/70 +f 205/452/19 213/451/19 214/466/72 +f 238/467/103 246/479/103 245/468/18 +f 237/469/18 245/468/18 252/470/104 +f 243/472/17 251/480/17 250/473/105 +f 241/475/15 249/606/15 248/476/106 +f 239/478/16 247/483/16 246/479/103 +f 244/471/104 252/470/104 251/480/17 +f 242/474/105 250/473/105 249/481/15 +f 240/477/106 248/476/106 247/483/16 +f 253/484/107 255/607/112 256/485/108 +f 184/422/82 254/608/95 258/486/109 +f 258/486/109 254/608/95 256/487/108 +f 257/489/111 253/609/107 183/432/89 +f 255/490/112 253/609/107 257/489/111 +f 196/425/85 264/514/119 262/492/114 +f 191/493/92 261/499/116 263/494/115 +f 192/495/87 262/501/114 261/496/116 +f 262/492/114 264/514/119 268/497/85 +f 261/499/116 265/502/92 267/500/79 +f 262/501/114 266/505/87 265/502/92 +f 268/497/85 272/515/120 270/503/71 +f 265/502/92 269/506/77 271/504/117 +f 266/505/87 270/610/71 269/506/77 +f 272/507/118 271/513/118 269/508/18 +f 259/510/118 260/611/118 256/511/18 +f 272/507/118 260/611/118 259/510/118 +f 195/423/83 258/486/109 264/514/119 +f 260/488/110 268/497/85 264/514/119 +f 263/494/115 257/489/111 193/440/96 +f 263/494/115 267/500/79 259/491/113 +f 277/217/64 291/233/64 281/235/15 +f 288/228/15 281/235/15 280/236/62 +f 278/223/121 287/231/121 291/233/64 +f 289/222/62 280/236/62 273/238/63 +f 286/245/122 296/521/122 295/516/123 +f 284/218/18 294/518/18 293/517/124 +f 285/221/123 295/516/123 294/518/18 +f 283/219/124 293/517/124 292/519/125 +f 282/224/125 292/519/125 276/226/20 +f 286/245/122 298/244/126 300/520/126 +f 273/238/63 297/243/127 299/324/127 +f 298/244/126 302/247/128 304/522/128 +f 297/243/127 301/249/129 303/246/129 +f 313/253/15 309/255/130 310/252/130 +f 305/257/131 313/253/15 314/251/15 +f 308/523/18 311/526/132 312/524/132 +f 311/526/132 310/252/133 309/255/133 +f 322/527/104 330/539/104 329/528/17 +f 320/530/105 328/540/105 327/531/15 +f 318/533/106 326/542/106 325/534/16 +f 316/536/103 323/543/103 324/537/18 +f 315/538/18 324/537/18 330/539/104 +f 321/529/17 329/528/17 328/540/105 +f 319/541/15 327/612/15 326/542/106 +f 317/535/16 325/534/16 323/543/103 +f 346/544/74 354/556/74 347/545/19 +f 344/547/76 352/558/76 353/548/17 +f 342/550/70 350/559/70 351/551/20 +f 340/553/72 348/560/72 349/554/16 +f 345/549/17 353/548/17 354/556/74 +f 343/557/20 351/613/20 352/558/76 +f 341/555/16 349/554/16 350/559/70 +f 339/546/19 347/545/19 348/560/72 +f 362/561/104 370/573/104 369/562/17 +f 360/564/105 368/574/105 367/565/15 +f 358/567/106 366/576/106 365/568/16 +f 356/570/103 363/577/103 364/571/18 +f 355/572/18 364/571/18 370/573/104 +f 361/563/17 369/562/17 368/574/105 +f 359/575/15 367/614/15 366/576/106 +f 357/569/16 365/568/16 363/577/103 +o Lever +v -0.312500 0.375000 -1.625000 +v -0.356694 0.356694 -1.625000 +v -0.375000 0.312500 -1.625000 +v -0.356694 0.268306 -1.625000 +v -0.312500 0.250000 -1.625000 +v -0.268306 0.268306 -1.625000 +v -0.250000 0.312500 -1.625000 +v -0.268306 0.356694 -1.625000 +v -0.312500 0.375000 -1.500000 +v -0.356694 0.356694 -1.500000 +v -0.375000 0.312500 -1.500000 +v -0.356694 0.268306 -1.500000 +v -0.312500 0.250000 -1.500000 +v -0.268306 0.268306 -1.500000 +v -0.250000 0.312500 -1.500000 +v -0.268306 0.356694 -1.500000 +v -0.312500 0.343750 -1.500000 +v -0.312500 0.281250 -1.500000 +v -0.312500 0.343750 -1.625000 +v -0.312500 0.281250 -1.625000 +v -0.625000 0.343750 -1.625000 +v -0.625000 0.343750 -1.500000 +v -0.625000 0.281250 -1.500000 +v -0.625000 0.281250 -1.625000 +v -0.750000 0.156250 -1.500000 +v -0.750000 0.156250 -1.625000 +v -0.812500 0.156250 -1.625000 +v -0.812500 0.156250 -1.500000 +v -0.750000 0.093750 -1.500000 +v -0.750000 0.093750 -1.625000 +v -0.812500 0.093750 -1.625000 +v -0.812500 0.093750 -1.500000 +v -0.875000 -0.093750 -1.468750 +v -0.875000 0.093750 -1.468750 +v -0.875000 -0.093750 -1.656250 +v -0.875000 0.093750 -1.656250 +v -0.687500 -0.093750 -1.468750 +v -0.687500 0.093750 -1.468750 +v -0.687500 -0.093750 -1.656250 +v -0.687500 0.093750 -1.656250 +vt 0.781065 0.436548 +vt 0.810651 0.441624 +vt 0.781065 0.441624 +vt 0.781065 0.451777 +vt 0.810651 0.456853 +vt 0.781065 0.456853 +vt 0.834320 0.451777 +vt 0.816568 0.456853 +vt 0.810651 0.451777 +vt 0.816568 0.436548 +vt 0.834320 0.441624 +vt 0.840237 0.456853 +vt 0.834320 0.456853 +vt 0.834320 0.436548 +vt 0.840237 0.441624 +vt 0.893491 0.456853 +vt 0.875740 0.441624 +vt 0.893491 0.441624 +vt 0.875740 0.456853 +vt 0.857988 0.441624 +vt 0.857988 0.456853 +vt 0.840237 0.441624 +vt 0.911243 0.456853 +vt 0.911243 0.441624 +vt 0.911243 0.426396 +vt 0.893491 0.426396 +vt 0.893491 0.472081 +vt 0.911243 0.472081 +vt 0.810651 0.436548 +vt 0.840237 0.451777 +vt 0.840237 0.436548 +vt 0.840237 0.456853 +vt 0.745562 0.532995 +vt 0.757396 0.527919 +vt 0.757396 0.532995 +vt 0.745562 0.522843 +vt 0.757396 0.517766 +vt 0.757396 0.522843 +vt 0.745562 0.553299 +vt 0.757396 0.548223 +vt 0.757396 0.553299 +vt 0.745562 0.543147 +vt 0.757396 0.538071 +vt 0.757396 0.543147 +vt 0.745562 0.538071 +vt 0.745562 0.527919 +vt 0.745562 0.558376 +vt 0.757396 0.558376 +vt 0.745562 0.548223 +vt 0.816568 0.426396 +vt 0.781065 0.426396 +vt 0.834320 0.426396 +vt 0.745562 0.517766 +vt 0.810651 0.426396 +vt 0.840237 0.426396 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +s off +f 390/615/135 391/616/135 389/617/135 +f 387/618/136 393/619/136 388/620/136 +f 398/621/136 393/622/136 392/623/136 +f 394/624/135 397/625/135 391/616/135 +f 398/621/136 399/626/136 395/627/136 +f 396/628/135 401/629/135 397/625/135 +f 404/630/137 405/631/137 403/632/137 +f 406/633/135 409/634/135 405/631/135 +f 410/635/138 407/636/138 409/634/138 +f 408/637/136 403/632/136 407/638/136 +f 409/639/139 403/632/139 405/640/139 +f 406/641/140 408/637/140 410/642/140 +f 390/615/135 394/643/135 391/616/135 +f 387/618/136 392/623/136 393/619/136 +f 398/621/136 395/627/136 393/622/136 +f 394/624/135 396/628/135 397/625/135 +f 398/621/136 402/644/136 399/626/136 +f 396/628/135 400/645/135 401/629/135 +f 404/630/137 406/633/137 405/631/137 +f 406/633/135 410/635/135 409/634/135 +f 410/635/138 408/646/138 407/636/138 +f 408/637/136 404/630/136 403/632/136 +f 409/639/139 407/638/139 403/632/139 +f 406/641/140 404/630/140 408/637/140 +s 1 +f 386/647/141 377/648/138 378/649/141 +f 384/650/142 375/651/139 376/652/142 +f 382/653/143 373/654/137 374/655/143 +f 380/656/144 371/657/140 372/658/144 +f 379/659/140 378/649/141 371/657/140 +f 385/660/138 376/652/142 377/648/138 +f 383/661/139 374/655/143 375/662/139 +f 381/663/137 372/658/144 373/654/137 +f 391/616/145 398/621/146 392/623/145 +f 393/664/147 396/628/148 394/624/147 +f 388/665/139 394/643/147 390/615/139 +f 389/617/140 392/623/145 387/618/140 +f 395/666/148 400/645/138 396/628/148 +f 397/625/146 402/644/137 398/621/146 +f 386/647/141 385/660/138 377/648/138 +f 384/650/142 383/667/139 375/651/139 +f 382/653/143 381/663/137 373/654/137 +f 380/656/144 379/659/140 371/657/140 +f 379/659/140 386/647/141 378/649/141 +f 385/660/138 384/650/142 376/652/142 +f 383/661/139 382/653/143 374/655/143 +f 381/663/137 380/656/144 372/658/144 +f 391/616/145 397/625/146 398/621/146 +f 393/664/147 395/666/148 396/628/148 +f 388/665/139 393/668/147 394/643/147 +f 389/617/140 391/616/145 392/623/145 +f 395/666/148 399/669/138 400/645/138 +f 397/625/146 401/629/137 402/644/137 +o Buckle +v 0.750000 0.250000 -0.968750 +v 0.750000 -0.250000 -0.968750 +v 0.750000 -0.250000 -0.718750 +v 0.750000 0.250000 -0.718750 +v 0.772097 -0.250000 -0.709597 +v 0.772097 0.250000 -0.709597 +v 0.781250 -0.250000 -0.687500 +v 0.781250 0.250000 -0.687500 +v 0.772097 -0.250000 -0.665403 +v 0.772097 0.250000 -0.665403 +v 0.750000 -0.250000 -0.656250 +v 0.750000 0.250000 -0.656250 +v 0.727903 -0.250000 -0.665403 +v 0.727903 0.250000 -0.665403 +v 0.718750 -0.250000 -0.687500 +v 0.718750 0.250000 -0.687500 +v 0.727903 -0.250000 -0.709597 +v 0.727903 0.250000 -0.709597 +v 0.772097 -0.250000 -0.959597 +v 0.772097 0.250000 -0.959597 +v 0.781250 -0.250000 -0.937500 +v 0.781250 0.250000 -0.937500 +v 0.772097 -0.250000 -0.915403 +v 0.772097 0.250000 -0.915403 +v 0.750000 -0.250000 -0.906250 +v 0.750000 0.250000 -0.906250 +v 0.727903 -0.250000 -0.915403 +v 0.727903 0.250000 -0.915403 +v 0.718750 -0.250000 -0.937500 +v 0.718750 0.250000 -0.937500 +v 0.727903 -0.250000 -0.959597 +v 0.727903 0.250000 -0.959597 +v 0.772097 0.259153 -0.718750 +v 0.781250 0.281250 -0.718750 +v 0.772097 0.303347 -0.718750 +v 0.750000 0.312500 -0.718750 +v 0.727903 0.303347 -0.718750 +v 0.718750 0.281250 -0.718750 +v 0.727903 0.259153 -0.718750 +v 0.772097 0.259153 -0.906250 +v 0.781250 0.281250 -0.906250 +v 0.772097 0.303347 -0.906250 +v 0.750000 0.312500 -0.906250 +v 0.727903 0.303347 -0.906250 +v 0.718750 0.281250 -0.906250 +v 0.727903 0.259153 -0.906250 +v 0.772097 -0.259153 -0.718750 +v 0.781250 -0.281250 -0.718750 +v 0.772097 -0.303347 -0.718750 +v 0.750000 -0.312500 -0.718750 +v 0.727903 -0.303347 -0.718750 +v 0.718750 -0.281250 -0.718750 +v 0.727903 -0.259153 -0.718750 +v 0.772097 -0.259153 -0.906250 +v 0.781250 -0.281250 -0.906250 +v 0.772097 -0.303347 -0.906250 +v 0.750000 -0.312500 -0.906250 +v 0.727903 -0.303347 -0.906250 +v 0.718750 -0.281250 -0.906250 +v 0.727903 -0.259153 -0.906250 +vt 0.656805 0.654822 +vt 0.656805 0.659898 +vt 0.650888 0.659898 +vt 0.680473 0.654822 +vt 0.674556 0.659898 +vt 0.674556 0.654822 +vt 0.698225 0.654822 +vt 0.692308 0.614213 +vt 0.698225 0.614213 +vt 0.662722 0.659898 +vt 0.656805 0.675127 +vt 0.656805 0.680203 +vt 0.662722 0.720812 +vt 0.656805 0.720812 +vt 0.692308 0.654822 +vt 0.686391 0.614213 +vt 0.686391 0.654822 +vt 0.692308 0.659898 +vt 0.686391 0.659898 +vt 0.650888 0.680203 +vt 0.650888 0.720812 +vt 0.680473 0.614213 +vt 0.668639 0.654822 +vt 0.668639 0.659898 +vt 0.692308 0.680203 +vt 0.698225 0.720812 +vt 0.692308 0.720812 +vt 0.674556 0.614213 +vt 0.686391 0.680203 +vt 0.686391 0.720812 +vt 0.668639 0.614213 +vt 0.668639 0.680203 +vt 0.674556 0.720812 +vt 0.668639 0.720812 +vt 0.680473 0.680203 +vt 0.680473 0.720812 +vt 0.662722 0.614213 +vt 0.680473 0.659898 +vt 0.674556 0.680203 +vt 0.662722 0.654822 +vt 0.656805 0.614213 +vt 0.698225 0.659898 +vt 0.662722 0.680203 +vt 0.650888 0.614213 +vt 0.668639 0.675127 +vt 0.680473 0.675127 +vt 0.662722 0.675127 +vt 0.674556 0.675127 +vt 0.686391 0.675127 +vt 0.692308 0.675127 +vt 0.698225 0.680203 +vt 0.650888 0.675127 +vt 0.674556 0.609137 +vt 0.686391 0.609137 +vt 0.692308 0.609137 +vt 0.668639 0.609137 +vt 0.680473 0.609137 +vt 0.662722 0.609137 +vt 0.656805 0.609137 +vt 0.686391 0.725888 +vt 0.692308 0.725888 +vt 0.680473 0.725888 +vt 0.674556 0.725888 +vt 0.668639 0.725888 +vt 0.662722 0.725888 +vt 0.656805 0.725888 +vt 0.650888 0.725888 +vt 0.698225 0.725888 +vt 0.674556 0.741117 +vt 0.668639 0.741117 +vt 0.662722 0.741117 +vt 0.656805 0.741117 +vt 0.650888 0.741117 +vt 0.698225 0.741117 +vt 0.692308 0.741117 +vt 0.686391 0.741117 +vt 0.680473 0.741117 +vt 0.650888 0.654822 +vt 0.698225 0.675127 +vn -0.7294 -0.2820 -0.6233 +vn -0.7294 -0.6233 -0.2820 +vn 0.0000 -0.7071 -0.7071 +vn 0.6441 0.3032 0.7023 +vn -0.0000 0.9356 0.3532 +vn 0.0000 0.3532 0.9356 +vn 0.7294 0.2820 -0.6233 +vn 0.0000 0.7071 -0.7071 +vn -0.9919 0.0899 0.0899 +vn -0.7294 -0.6233 0.2820 +vn -0.7294 -0.2820 0.6233 +vn -0.9919 -0.0899 -0.0899 +vn -0.7294 0.2820 0.6233 +vn 0.7294 -0.2820 -0.6233 +vn 0.9919 -0.0899 0.0899 +vn 0.9919 0.0899 0.0899 +vn 0.7294 -0.6233 -0.2820 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 0.7071 0.7071 +vn 0.6441 -0.3032 0.7023 +vn -0.6441 0.3032 0.7023 +vn -0.6441 0.7023 0.3032 +vn 0.7294 -0.2820 0.6233 +vn 0.7294 0.2820 0.6233 +vn 0.0000 -0.3532 0.9356 +vn 0.9919 0.0899 -0.0899 +vn 0.9919 -0.0899 -0.0899 +vn -0.6441 -0.3032 0.7023 +vn -0.6441 0.3032 -0.7023 +vn 0.0000 -0.3532 -0.9356 +vn -0.6441 -0.3032 -0.7023 +vn 0.6441 0.3032 -0.7023 +vn 0.6441 -0.3032 -0.7023 +vn -0.9919 -0.0899 0.0899 +vn 0.6441 0.7023 0.3032 +vn -0.0000 0.3532 -0.9356 +vn -0.7294 0.2820 -0.6233 +vn -0.9919 0.0899 -0.0899 +vn -0.6441 0.7023 -0.3032 +vn 0.6441 0.7023 -0.3032 +vn 0.0000 0.9356 -0.3532 +vn 0.7294 -0.6233 0.2820 +vn -0.0000 -0.9356 0.3532 +vn 0.7294 0.6233 -0.2820 +vn -0.6441 -0.7023 0.3032 +vn 0.6441 -0.7023 0.3032 +vn -0.7294 0.6233 -0.2820 +vn 0.7294 0.6233 0.2820 +vn 0.6441 -0.7023 -0.3032 +vn 0.0000 -0.9356 -0.3532 +vn -0.6441 -0.7023 -0.3032 +vn -0.7294 0.6233 0.2820 +s 1 +f 428/670/149 449/671/150 414/672/151 +f 420/673/152 446/674/153 422/675/154 +f 414/676/151 415/677/155 413/678/156 +f 448/679/157 456/680/158 449/671/150 +f 438/681/159 439/682/160 437/683/161 +f 416/684/162 417/685/163 415/677/155 +f 418/686/164 443/687/165 444/688/164 +f 436/689/166 437/683/161 435/690/167 +f 418/686/164 419/691/168 417/685/163 +f 424/692/169 446/674/153 447/693/170 +f 434/694/171 435/695/167 433/696/172 +f 420/673/152 421/697/173 419/691/168 +f 428/670/149 448/679/157 449/671/150 +f 432/698/174 433/696/172 431/699/175 +f 422/675/154 423/700/176 421/697/173 +f 442/701/177 412/702/178 441/703/179 +f 430/704/180 431/699/175 429/705/181 +f 424/692/169 425/706/182 423/700/176 +f 418/686/164 445/707/183 420/673/152 +f 411/708/184 429/705/181 412/702/178 +f 426/709/157 427/710/185 425/706/182 +f 414/711/151 443/687/165 416/684/162 +f 440/712/186 441/703/179 439/682/160 +f 428/670/149 413/713/156 427/710/185 +f 426/709/157 447/693/170 448/679/157 +f 446/674/153 454/714/187 447/693/170 +f 444/688/164 452/715/188 445/707/183 +f 447/693/170 455/716/186 448/679/157 +f 445/707/183 453/717/189 446/674/153 +f 443/687/165 451/718/174 444/688/164 +f 411/708/184 452/715/188 430/704/180 +f 430/704/180 451/718/174 432/698/174 +f 434/694/171 451/718/174 450/719/190 +f 434/694/171 450/719/190 436/720/166 +f 414/711/151 450/719/190 443/687/165 +f 449/671/150 436/721/166 414/672/151 +f 436/689/166 456/680/158 438/681/159 +f 438/681/159 455/716/186 440/712/186 +f 440/712/186 454/714/187 442/701/177 +f 411/708/184 454/714/187 453/717/189 +f 423/700/176 460/722/191 421/697/173 +f 415/677/155 458/723/163 457/724/192 +f 425/706/182 461/725/193 423/700/176 +f 417/685/163 459/726/194 458/723/163 +f 427/710/185 462/727/182 425/706/182 +f 421/697/173 459/726/194 419/691/168 +f 415/677/155 457/724/192 413/678/156 +f 413/713/156 463/728/195 427/710/185 +f 465/729/175 433/696/172 464/730/196 +f 429/705/181 465/729/175 466/731/197 +f 412/702/178 466/731/197 467/732/198 +f 412/702/178 468/733/199 441/703/179 +f 439/682/160 468/733/199 469/734/160 +f 437/683/161 469/734/160 470/735/200 +f 437/683/161 470/735/200 435/736/167 +f 435/737/167 464/730/196 433/696/172 +f 468/733/199 460/738/191 461/739/193 +f 469/734/160 461/739/193 462/740/182 +f 470/735/200 462/740/182 463/741/195 +f 413/742/156 470/735/200 463/741/195 +f 464/730/196 413/743/156 457/744/192 +f 465/729/175 457/744/192 458/745/163 +f 466/731/197 458/745/163 459/746/194 +f 467/732/198 459/746/194 460/738/191 +f 420/673/152 445/707/183 446/674/153 +f 414/676/151 416/684/162 415/677/155 +f 448/679/157 455/716/186 456/680/158 +f 438/681/159 440/712/186 439/682/160 +f 416/684/162 418/686/164 417/685/163 +f 418/686/164 416/684/162 443/687/165 +f 436/689/166 438/681/159 437/683/161 +f 418/686/164 420/673/152 419/691/168 +f 424/692/169 422/675/154 446/674/153 +f 434/694/171 436/720/166 435/695/167 +f 420/673/152 422/675/154 421/697/173 +f 428/670/149 426/709/157 448/679/157 +f 432/698/174 434/694/171 433/696/172 +f 422/675/154 424/692/169 423/700/176 +f 442/701/177 411/708/184 412/702/178 +f 430/704/180 432/698/174 431/699/175 +f 424/692/169 426/709/157 425/706/182 +f 418/686/164 444/688/164 445/707/183 +f 411/708/184 430/704/180 429/705/181 +f 426/709/157 428/670/149 427/710/185 +f 440/712/186 442/701/177 441/703/179 +f 428/670/149 414/747/151 413/713/156 +f 426/709/157 424/692/169 447/693/170 +f 446/674/153 453/717/189 454/714/187 +f 444/688/164 451/718/174 452/715/188 +f 447/693/170 454/714/187 455/716/186 +f 445/707/183 452/715/188 453/717/189 +f 443/687/165 450/719/190 451/718/174 +f 411/708/184 453/717/189 452/715/188 +f 430/704/180 452/715/188 451/718/174 +f 434/694/171 432/698/174 451/718/174 +f 414/711/151 436/748/166 450/719/190 +f 449/671/150 456/680/158 436/721/166 +f 438/681/159 456/680/158 455/716/186 +f 440/712/186 455/716/186 454/714/187 +f 411/708/184 442/701/177 454/714/187 +f 423/700/176 461/725/193 460/722/191 +f 415/677/155 417/685/163 458/723/163 +f 425/706/182 462/727/182 461/725/193 +f 417/685/163 419/691/168 459/726/194 +f 427/710/185 463/728/195 462/727/182 +f 421/697/173 460/722/191 459/726/194 +f 465/729/175 431/699/175 433/696/172 +f 429/705/181 431/699/175 465/729/175 +f 412/702/178 429/705/181 466/731/197 +f 412/702/178 467/732/198 468/733/199 +f 439/682/160 441/703/179 468/733/199 +f 437/683/161 439/682/160 469/734/160 +f 468/733/199 467/732/198 460/738/191 +f 469/734/160 468/733/199 461/739/193 +f 470/735/200 469/734/160 462/740/182 +f 413/742/156 435/736/167 470/735/200 +f 464/730/196 435/737/167 413/743/156 +f 465/729/175 464/730/196 457/744/192 +f 466/731/197 465/729/175 458/745/163 +f 467/732/198 466/731/197 459/746/194 +o Barrel +v -0.125000 0.312500 4.375000 +v 0.125000 0.312500 4.375000 +v 0.125000 -0.312500 4.375000 +v -0.125000 -0.312500 4.375000 +v 0.312500 0.312500 4.375000 +v 0.312500 -0.312500 4.375000 +v 0.468750 -0.270633 4.375000 +v 0.583133 -0.156250 4.375000 +v 0.625000 0.000000 4.375000 +v 0.583133 0.156250 4.375000 +v 0.468750 0.270633 4.375000 +v -0.312500 0.312500 4.375000 +v -0.468750 0.270633 4.375000 +v -0.583133 0.156250 4.375000 +v -0.625000 0.000000 4.375000 +v -0.583133 -0.156250 4.375000 +v -0.468750 -0.270633 4.375000 +v -0.312500 -0.312500 4.375000 +v 0.125000 -0.250000 4.375000 +v -0.125000 -0.250000 4.375000 +v -0.125000 0.250000 4.375000 +v 0.125000 0.250000 4.375000 +v -0.125000 0.312500 4.250000 +v 0.125000 0.312500 4.250000 +v 0.125000 -0.312500 4.250000 +v -0.125000 -0.312500 4.250000 +v -0.312500 -0.375000 4.250000 +v -0.500000 -0.324759 4.250000 +v -0.637259 -0.187500 4.250000 +v -0.687500 0.000000 4.250000 +v -0.637259 0.187500 4.250000 +v -0.500000 0.324759 4.250000 +v -0.637259 0.187500 4.750000 +v -0.500000 0.324759 4.750000 +v 0.312500 0.375000 4.750000 +v 0.312500 -0.375000 4.750000 +v 0.500000 -0.324759 4.750000 +v 0.637259 -0.187500 4.750000 +v 0.687500 0.000000 4.750000 +v 0.637260 0.187500 4.750000 +v 0.500000 0.324759 4.750000 +v -0.312500 0.375000 4.750000 +v 0.312500 0.312500 4.625000 +v 0.312500 -0.312500 4.625000 +v 0.468750 -0.270633 4.625000 +v 0.583133 -0.156250 4.625000 +v 0.625000 0.000000 4.625000 +v 0.583133 0.156250 4.625000 +v 0.468750 0.270633 4.625000 +v -0.312500 0.312500 4.625000 +v -0.468750 0.270633 4.625000 +v -0.583133 0.156250 4.625000 +v 0.312500 0.375000 4.250000 +v 0.312500 -0.375000 4.250000 +v 0.500000 -0.324759 4.250000 +v 0.637259 -0.187500 4.250000 +v -0.625000 0.000000 4.625000 +v -0.583133 -0.156250 4.625000 +v -0.468750 -0.270633 4.625000 +v 0.687500 0.000000 4.250000 +v 0.637260 0.187500 4.250000 +v 0.500000 0.324759 4.250000 +v -0.312500 0.375000 4.250000 +v -0.312500 -0.375000 4.375000 +v -0.500000 -0.324759 4.375000 +v -0.637259 -0.187500 4.375000 +v 0.312500 0.312500 3.500000 +v 0.312500 -0.312500 3.500000 +v 0.468750 -0.270633 3.500000 +v 0.583133 -0.156250 3.500000 +v 0.625000 0.000000 3.500000 +v 0.583133 0.156250 3.500000 +v 0.468750 0.270633 3.500000 +v -0.312500 0.312500 3.500000 +v -0.468750 0.270633 3.500000 +v -0.583133 0.156250 3.500000 +v -0.625000 0.000000 3.500000 +v -0.583133 -0.156250 3.500000 +v -0.468750 -0.270633 3.500000 +v -0.312500 -0.312500 3.500000 +v 0.312500 0.250000 3.500000 +v 0.187500 0.216506 3.500000 +v 0.095994 0.125000 3.500000 +v 0.062500 0.000000 3.500000 +v 0.095994 -0.125000 3.500000 +v 0.187500 -0.216506 3.500000 +v 0.312500 -0.250000 3.500000 +v 0.437500 -0.216506 3.500000 +v 0.529006 -0.125000 3.500000 +v 0.562500 0.000000 3.500000 +v 0.529006 0.125000 3.500000 +v 0.437500 0.216506 3.500000 +v -0.312500 0.250000 3.500000 +v -0.437500 0.216506 3.500000 +v -0.529006 0.125000 3.500000 +v -0.562500 0.000000 3.500000 +v -0.529006 -0.125000 3.500000 +v -0.437500 -0.216506 3.500000 +v -0.312500 -0.250000 3.500000 +v -0.187500 -0.216506 3.500000 +v -0.095994 -0.125000 3.500000 +v -0.062500 0.000000 3.500000 +v -0.095994 0.125000 3.500000 +v -0.187500 0.216506 3.500000 +v 0.468750 -0.270633 8.000000 +v 0.312500 -0.312500 8.000000 +v 0.583133 -0.156250 8.000000 +v 0.625000 0.000000 8.000000 +v 0.583133 0.156250 8.000000 +v 0.468750 0.270633 8.000000 +v 0.312500 0.312500 8.000000 +v -0.468750 0.270633 8.000000 +v -0.312500 0.312500 8.000000 +v -0.583133 0.156250 8.000000 +v -0.625000 0.000000 8.000000 +v -0.583133 -0.156250 8.000000 +v -0.468750 -0.270633 8.000000 +v -0.312500 -0.312500 8.000000 +v -0.095994 0.125000 8.000000 +v -0.095994 -0.125000 8.000000 +v 0.095994 -0.125000 8.000000 +v 0.062500 0.000000 8.000000 +v -0.062500 0.000000 8.000000 +v 0.095994 0.125000 8.000000 +v 0.187500 0.216506 8.000000 +v 0.312500 0.250000 8.000000 +v 0.187500 -0.216506 8.000000 +v 0.312500 -0.250000 8.000000 +v 0.437500 -0.216506 8.000000 +v 0.529006 -0.125000 8.000000 +v 0.562500 0.000000 8.000000 +v 0.529006 0.125000 8.000000 +v 0.437500 0.216506 8.000000 +v -0.437500 0.216506 8.000000 +v -0.312500 0.250000 8.000000 +v -0.529006 0.125000 8.000000 +v -0.562500 0.000000 8.000000 +v -0.529006 -0.125000 8.000000 +v -0.437500 -0.216506 8.000000 +v -0.312500 -0.250000 8.000000 +v -0.187500 -0.216506 8.000000 +v -0.187500 0.216506 8.000000 +v -0.125000 0.375000 6.187500 +v 0.125000 0.375000 6.187500 +v -0.125000 0.375000 5.812500 +v 0.125000 0.375000 5.812500 +v 0.125000 0.500000 5.812500 +v -0.125000 0.500000 5.812500 +v 0.125000 0.500000 6.187500 +v -0.125000 0.500000 6.187500 +v -0.687500 0.000000 4.375000 +v 0.125000 0.250000 4.250000 +v -0.125000 0.250000 4.250000 +v -0.312500 -0.312500 4.625000 +v 0.125000 -0.250000 3.500000 +v -0.125000 -0.250000 3.500000 +v 0.125000 -0.250000 8.000000 +v -0.125000 -0.250000 8.000000 +v 0.000000 0.650888 5.911612 +v 0.000000 0.562500 5.875000 +v 0.000000 0.474112 5.911612 +v 0.062500 0.650888 5.937500 +v 0.088388 0.562500 5.911612 +v 0.062500 0.474112 5.937500 +v 0.088388 0.650888 6.000000 +v 0.125000 0.562500 6.000000 +v 0.088388 0.474112 6.000000 +v 0.062500 0.650888 6.062500 +v 0.088388 0.562500 6.088388 +v 0.062500 0.474112 6.062500 +v 0.125000 -0.250000 4.625000 +v 0.000000 0.650888 6.088388 +v 0.000000 0.562500 6.125000 +v 0.000000 0.474112 6.088388 +v 0.000000 0.687500 6.000000 +v -0.062500 0.650888 6.062500 +v -0.088388 0.562500 6.088388 +v -0.062500 0.474112 6.062500 +v -0.088388 0.650888 6.000000 +v -0.125000 0.562500 6.000000 +v -0.088388 0.474112 6.000000 +v -0.062500 0.650888 5.937500 +v -0.088388 0.562500 5.911612 +v -0.062500 0.474112 5.937500 +v -0.125000 -0.250000 4.625000 +v -0.125000 0.250000 4.625000 +v 0.125000 0.250000 4.625000 +v 0.437500 -0.562500 3.437500 +v -0.437500 -0.562500 3.437500 +v 0.437500 -0.250000 3.437500 +v -0.437500 -0.250000 3.437500 +v 0.437500 -0.437500 4.500000 +v -0.437500 -0.437500 4.500000 +v 0.437500 -0.250000 4.500000 +v -0.437500 -0.250000 4.500000 +v -0.125000 0.250000 8.000000 +v 0.125000 0.250000 8.000000 +v -0.125000 0.250000 3.500000 +v 0.125000 0.250000 3.500000 +v -0.125000 0.375000 3.500000 +v -0.125000 0.375000 8.000000 +v 0.125000 0.375000 8.000000 +v 0.125000 0.375000 3.500000 +v -0.125000 -0.250000 4.250000 +v 0.125000 -0.250000 4.250000 +v -0.312500 -0.312500 4.250000 +v -0.468750 -0.270633 4.250000 +v -0.583133 -0.156250 4.250000 +v -0.625000 0.000000 4.250000 +v -0.583133 0.156250 4.250000 +v -0.468750 0.270633 4.250000 +v -0.312500 0.312500 4.250000 +v 0.468750 0.270633 4.250000 +v 0.583133 0.156250 4.250000 +v 0.625000 0.000000 4.250000 +v 0.583133 -0.156250 4.250000 +v 0.468750 -0.270633 4.250000 +v 0.312500 -0.312500 4.250000 +v 0.312500 0.312500 4.250000 +v -0.312500 0.375000 4.375000 +v 0.500000 0.324759 4.375000 +v 0.637260 0.187500 4.375000 +v 0.687500 0.000000 4.375000 +v 0.637259 -0.187500 4.375000 +v 0.500000 -0.324759 4.375000 +v 0.312500 -0.375000 4.375000 +v 0.312500 0.375000 4.375000 +v -0.500000 0.324759 4.375000 +v -0.637259 0.187500 4.375000 +v -0.687500 0.000000 4.750000 +v -0.637259 -0.187500 4.750000 +v -0.500000 -0.324759 4.750000 +v -0.312500 -0.375000 4.750000 +v -0.312500 0.375000 4.625000 +v 0.500000 0.324759 4.625000 +v 0.637260 0.187500 4.625000 +v 0.687500 0.000000 4.625000 +v 0.637259 -0.187500 4.625000 +v 0.500000 -0.324759 4.625000 +v 0.312500 -0.375000 4.625000 +v 0.312500 0.375000 4.625000 +v -0.500000 0.324759 4.625000 +v -0.637259 0.187500 4.625000 +v -0.687500 0.000000 4.625000 +v -0.637259 -0.187500 4.625000 +v -0.500000 -0.324759 4.625000 +v -0.312500 -0.375000 4.625000 +v -0.125000 -0.312500 4.625000 +v 0.125000 -0.312500 4.625000 +v 0.125000 0.312500 4.625000 +v -0.125000 0.312500 4.625000 +v 0.125000 0.250000 4.750000 +v -0.125000 0.250000 4.750000 +v -0.125000 -0.250000 4.750000 +v 0.125000 -0.250000 4.750000 +v -0.312500 -0.312500 4.750000 +v -0.468750 -0.270633 4.750000 +v -0.583133 -0.156250 4.750000 +v -0.625000 0.000000 4.750000 +v -0.583133 0.156250 4.750000 +v -0.468750 0.270633 4.750000 +v -0.312500 0.312500 4.750000 +v 0.468750 0.270633 4.750000 +v 0.583133 0.156250 4.750000 +v 0.625000 0.000000 4.750000 +v 0.583133 -0.156250 4.750000 +v 0.468750 -0.270633 4.750000 +v 0.312500 -0.312500 4.750000 +v 0.312500 0.312500 4.750000 +v -0.125000 -0.312500 4.750000 +v 0.125000 -0.312500 4.750000 +v 0.125000 0.312500 4.750000 +v -0.125000 0.312500 4.750000 +vt 0.579882 0.543147 +vt 0.585799 0.527919 +vt 0.585799 0.543147 +vt 0.579882 0.776650 +vt 0.585799 0.791878 +vt 0.579882 0.791878 +vt 0.579882 0.558376 +vt 0.585799 0.573604 +vt 0.585799 0.558376 +vt 0.585799 0.588832 +vt 0.579882 0.573604 +vt 0.585799 0.604061 +vt 0.579882 0.588832 +vt 0.585799 0.619289 +vt 0.579882 0.604061 +vt 0.597633 0.700508 +vt 0.603550 0.715736 +vt 0.597633 0.715736 +vt 0.603550 0.761421 +vt 0.597633 0.776650 +vt 0.597633 0.761421 +vt 0.603550 0.730964 +vt 0.597633 0.730964 +vt 0.579882 0.634518 +vt 0.585799 0.649746 +vt 0.579882 0.649746 +vt 0.579882 0.619289 +vt 0.585802 0.434195 +vt 0.591718 0.431475 +vt 0.594464 0.441626 +vt 0.609467 0.451777 +vt 0.597634 0.451777 +vt 0.594464 0.461927 +vt 0.615383 0.431475 +vt 0.621299 0.434195 +vt 0.612637 0.441626 +vt 0.591718 0.472078 +vt 0.585802 0.469358 +vt 0.621299 0.469358 +vt 0.633131 0.477153 +vt 0.615383 0.472078 +vt 0.559179 0.429800 +vt 0.573969 0.431475 +vt 0.562137 0.434195 +vt 0.548351 0.439088 +vt 0.553475 0.441626 +vt 0.550304 0.451777 +vt 0.544388 0.451777 +vt 0.548351 0.464465 +vt 0.553475 0.461927 +vt 0.559179 0.473754 +vt 0.562137 0.469358 +vt 0.573969 0.477153 +vt 0.573969 0.472078 +vt 0.647922 0.429800 +vt 0.633131 0.431475 +vt 0.633131 0.426400 +vt 0.658749 0.439088 +vt 0.644964 0.434195 +vt 0.662713 0.451777 +vt 0.653626 0.441626 +vt 0.653626 0.461927 +vt 0.656796 0.451777 +vt 0.658749 0.464465 +vt 0.644964 0.469358 +vt 0.647922 0.473754 +vt 0.612637 0.461927 +vt 0.573969 0.426400 +vt 0.532544 0.538071 +vt 0.568047 0.527919 +vt 0.568047 0.538071 +vt 0.568047 0.558376 +vt 0.532544 0.568528 +vt 0.532544 0.558376 +vt 0.579882 0.558376 +vt 0.520710 0.538071 +vt 0.585799 0.670051 +vt 0.579882 0.685279 +vt 0.579882 0.670051 +vt 0.597633 0.746193 +vt 0.118343 0.548223 +vt 0.017751 0.532995 +vt 0.118343 0.522843 +vt 0.118343 0.426396 +vt 0.017751 0.441624 +vt 0.017751 0.426396 +vt 0.017751 0.451777 +vt 0.118343 0.451777 +vt 0.000000 0.522843 +vt 0.017751 0.522843 +vt 0.585799 0.685279 +vt 0.579882 0.700508 +vt 0.011834 0.274112 +vt 0.437870 0.294416 +vt 0.011834 0.294416 +vt 0.437870 0.263959 +vt 0.011834 0.263959 +vt 0.011834 0.304569 +vt 0.437870 0.304569 +vt 0.000000 0.274112 +vt 0.000000 0.294416 +vt 0.585799 0.700508 +vt 0.579882 0.715736 +vt 0.585799 0.715736 +vt 0.579882 0.730964 +vt 0.585799 0.746193 +vt 0.585799 0.730964 +vt 0.585799 0.761421 +vt 0.579882 0.746193 +vt 0.585799 0.776650 +vt 0.579882 0.761421 +vt 0.603550 0.776650 +vt 0.597633 0.791878 +vt 0.597633 0.776650 +vt 0.603550 0.543147 +vt 0.597633 0.527919 +vt 0.603550 0.527919 +vt 0.603550 0.558376 +vt 0.597633 0.543147 +vt 0.603550 0.573604 +vt 0.597633 0.558376 +vt 0.597633 0.588832 +vt 0.597633 0.573604 +vt 0.603550 0.588832 +vt 0.597633 0.604061 +vt 0.603550 0.619289 +vt 0.603550 0.604061 +vt 0.603550 0.634518 +vt 0.597633 0.649746 +vt 0.597633 0.634518 +vt 0.597633 0.619289 +vt 0.603550 0.685279 +vt 0.597633 0.670051 +vt 0.603550 0.670051 +vt 0.603550 0.649746 +vt 0.597633 0.685279 +vt 0.603550 0.700508 +vt 0.597633 0.700508 +vt 0.603550 0.746193 +vt 0.597633 0.761421 +vt 0.597633 0.746193 +vt 0.603550 0.730964 +vt 0.597633 0.730964 +vt 0.597633 0.715736 +vt 0.603550 0.761421 +vt 0.603550 0.715736 +vt 0.603550 0.746193 +vt 0.597633 0.685279 +vt 0.603550 0.700508 +vt 0.597633 0.670051 +vt 0.603550 0.649746 +vt 0.603550 0.670051 +vt 0.603550 0.685279 +vt 0.603550 0.634518 +vt 0.597633 0.619289 +vt 0.603550 0.619289 +vt 0.597633 0.649746 +vt 0.597633 0.634518 +vt 0.597633 0.604061 +vt 0.603550 0.604061 +vt 0.603550 0.588832 +vt 0.597633 0.588832 +vt 0.603550 0.573604 +vt 0.597633 0.573604 +vt 0.597633 0.558376 +vt 0.603550 0.558376 +vt 0.597633 0.543147 +vt 0.603550 0.543147 +vt 0.597633 0.527919 +vt 0.603550 0.527919 +vt 0.603550 0.776650 +vt 0.597633 0.791878 +vt 0.585799 0.776650 +vt 0.579882 0.761421 +vt 0.585799 0.761421 +vt 0.579882 0.746193 +vt 0.585799 0.746193 +vt 0.579882 0.730964 +vt 0.585799 0.730964 +vt 0.585799 0.715736 +vt 0.579882 0.715736 +vt 0.585799 0.700508 +vt 0.579882 0.700508 +vt 0.585799 0.685279 +vt 0.579882 0.685279 +vt 0.579882 0.649746 +vt 0.585799 0.670051 +vt 0.579882 0.670051 +vt 0.585799 0.619289 +vt 0.579882 0.634518 +vt 0.579882 0.619289 +vt 0.585799 0.649746 +vt 0.579882 0.604061 +vt 0.585799 0.604061 +vt 0.579882 0.588832 +vt 0.585799 0.588832 +vt 0.579882 0.573604 +vt 0.585799 0.573604 +vt 0.579882 0.558376 +vt 0.585799 0.558376 +vt 0.585799 0.543147 +vt 0.579882 0.543147 +vt 0.579882 0.776650 +vt 0.585799 0.791878 +vt 0.579882 0.791878 +vt 0.585799 0.527919 +vt 0.579882 0.527919 +vt 0.585799 0.634518 +vt 0.633131 0.472078 +vt 0.532544 0.527919 +vt 0.568047 0.568528 +vt 0.579882 0.538071 +vt 0.520710 0.558376 +vt 0.017751 0.548223 +vt -0.000000 0.451777 +vt 0.437870 0.274112 +vt 0.603550 0.791878 +vt 0.603550 0.791878 +vt 0.585799 0.634518 +vt 0.579882 0.527919 +vt 0.437870 0.121827 +vt 0.011834 0.142132 +vt 0.011834 0.121827 +vt 0.011834 0.411168 +vt 0.437870 0.426396 +vt 0.011834 0.426396 +vt 0.437870 0.319797 +vt 0.437870 0.091371 +vt 0.011834 0.081218 +vt 0.437870 0.081218 +vt 0.437870 0.335025 +vt 0.011834 0.319797 +vt 0.437870 0.101523 +vt 0.011834 0.091371 +vt 0.437870 0.091371 +vt 0.011834 0.071066 +vt 0.437870 0.071066 +vt 0.437870 0.350254 +vt 0.011834 0.335025 +vt 0.011834 0.081218 +vt 0.437870 0.081218 +vt 0.011834 0.060914 +vt 0.437870 0.060914 +vt 0.437870 0.365482 +vt 0.011834 0.350254 +vt 0.011834 0.071066 +vt 0.437870 0.071066 +vt 0.437870 0.380711 +vt 0.011834 0.365482 +vt 0.011834 0.060914 +vt 0.437870 0.060914 +vt 0.437870 0.395939 +vt 0.011834 0.380711 +vt 0.011834 0.050761 +vt 0.437870 0.050761 +vt 0.437870 0.411168 +vt 0.011834 0.395939 +vt 0.011834 0.040609 +vt 0.437870 0.040609 +vt 0.011834 0.050761 +vt 0.437870 0.050761 +vt 0.011834 0.030457 +vt 0.437870 0.030457 +vt 0.011834 0.040609 +vt 0.437870 0.040609 +vt 0.011834 0.020305 +vt 0.437870 0.020305 +vt 0.437870 0.172589 +vt 0.011834 0.157360 +vt 0.437870 0.157360 +vt 0.011834 0.030457 +vt 0.437870 0.030457 +vt 0.011834 0.010152 +vt 0.437870 0.010152 +vt 0.437870 0.187817 +vt 0.011834 0.172589 +vt 0.011834 0.020305 +vt 0.437870 0.020305 +vt 0.011834 0.000000 +vt 0.437870 0.000000 +vt 0.437870 0.203046 +vt 0.011834 0.187817 +vt 0.011834 0.010152 +vt 0.437870 0.010152 +vt 0.437870 0.121827 +vt 0.011834 0.111675 +vt 0.437870 0.111675 +vt 0.437870 0.218274 +vt 0.011834 0.203046 +vt 0.011834 0.000000 +vt 0.437870 0.000000 +vt 0.011834 0.101523 +vt 0.437870 0.101523 +vt 0.437870 0.233503 +vt 0.011834 0.218274 +vt 0.437870 0.121827 +vt 0.011834 0.111675 +vt 0.437870 0.111675 +vt 0.011834 0.091371 +vt 0.437870 0.248731 +vt 0.011834 0.233503 +vt 0.011834 0.101523 +vt 0.437870 0.142132 +vt 0.556213 0.710660 +vt 0.556213 0.715736 +vt 0.550296 0.710660 +vt 0.556213 0.705584 +vt 0.550296 0.705584 +vt 0.550296 0.700508 +vt 0.556213 0.700508 +vt 0.544379 0.705584 +vt 0.544379 0.700508 +vt 0.550296 0.715736 +vt 0.544379 0.710660 +vt 0.538462 0.705584 +vt 0.538462 0.700508 +vt 0.544379 0.715736 +vt 0.538462 0.710660 +vt 0.538462 0.715736 +vt 0.532544 0.710660 +vt 0.532544 0.705584 +vt 0.532544 0.700508 +vt 0.579882 0.705584 +vt 0.573964 0.700508 +vt 0.579882 0.700508 +vt 0.579882 0.710660 +vt 0.579882 0.715736 +vt 0.573964 0.710660 +vt 0.573964 0.705584 +vt 0.568047 0.700508 +vt 0.573964 0.715736 +vt 0.568047 0.710660 +vt 0.568047 0.705584 +vt 0.562130 0.705584 +vt 0.562130 0.700508 +vt 0.568047 0.715736 +vt 0.562130 0.710660 +vt 0.562130 0.715736 +vt 0.011834 0.248731 +vt 0.011834 0.121827 +vt 0.011834 0.121827 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9932 0.1168 +vn 0.3162 0.9487 0.0000 +vn 0.0300 0.9996 0.0000 +vn -0.0300 0.9996 0.0000 +vn -0.3162 0.9487 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.1602 -0.9871 0.0000 +vn -0.0300 -0.9996 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.1602 -0.9871 0.0000 +vn 0.0300 -0.9996 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.0000 0.6630 -0.7486 +vn 0.5294 0.6630 -0.5294 +vn 0.7071 0.0000 -0.7071 +vn 0.6533 -0.3827 -0.6533 +vn -0.0000 -0.3827 -0.9239 +vn 0.9239 -0.3827 0.0000 +vn 0.7486 0.6630 -0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.6533 -0.3827 0.6533 +vn 0.5294 0.6630 0.5294 +vn 0.0000 0.6630 0.7486 +vn 0.0000 -0.3827 0.9239 +vn -0.6533 -0.3827 0.6533 +vn -0.5294 0.6630 0.5294 +vn -0.7071 0.0000 0.7071 +vn -0.9239 -0.3827 -0.0000 +vn -0.7486 0.6630 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.6533 -0.3827 -0.6533 +vn -0.5294 0.6630 -0.5294 +s off +f 482/749/201 471/750/201 690/751/201 +f 475/752/201 472/753/201 492/754/201 +f 690/751/201 483/755/201 482/749/201 +f 699/756/201 483/755/201 698/757/201 +f 621/758/201 484/759/201 699/756/201 +f 536/760/201 485/761/201 621/758/201 +f 535/762/201 486/763/201 536/760/201 +f 709/764/202 516/765/202 708/766/202 +f 519/767/202 711/768/202 705/769/202 +f 708/766/202 517/770/202 707/771/202 +f 488/772/201 474/773/201 490/774/201 +f 535/762/201 488/772/201 487/775/201 +f 611/776/201 628/777/201 590/778/201 +f 590/778/201 592/779/201 593/780/201 +f 592/779/201 589/781/201 593/780/201 +f 627/782/201 597/783/201 591/784/201 +f 589/781/201 666/785/201 612/786/201 +f 595/787/201 581/788/201 667/789/201 +f 587/790/201 610/791/201 609/792/201 +f 586/793/201 609/792/201 608/794/201 +f 586/793/201 607/795/201 585/796/201 +f 584/797/201 607/795/201 606/798/201 +f 582/799/201 606/798/201 604/800/201 +f 583/801/201 604/800/201 605/802/201 +f 590/778/201 627/782/201 591/784/201 +f 612/786/201 583/801/201 605/802/201 +f 575/803/201 598/804/201 576/805/201 +f 577/806/201 599/807/201 575/803/201 +f 578/808/201 600/809/201 577/806/201 +f 578/808/201 602/810/201 601/811/201 +f 579/812/201 603/813/201 602/810/201 +f 581/788/201 603/813/201 580/814/201 +f 595/787/201 667/789/201 594/815/201 +f 611/776/201 588/816/201 628/777/201 +f 576/805/201 597/783/201 627/782/201 +f 619/817/203 616/818/203 617/819/203 +f 618/820/204 613/821/204 620/822/204 +f 617/819/202 615/823/202 618/820/202 +f 620/822/201 614/824/201 619/817/201 +f 619/817/205 618/820/205 620/822/205 +f 667/789/201 589/781/201 594/815/201 +f 473/825/201 476/826/201 489/827/201 +f 490/774/201 473/825/201 489/827/201 +f 517/770/202 706/828/202 707/771/202 +f 660/829/203 662/830/203 658/831/203 +f 661/832/204 663/833/204 665/834/204 +f 658/831/206 663/835/206 659/836/206 +f 664/837/201 663/835/201 662/838/201 +f 696/839/201 477/840/201 476/826/201 +f 672/841/205 670/842/205 671/843/205 +f 669/844/203 672/841/203 667/845/203 +f 666/846/204 670/842/204 668/847/204 +f 667/848/201 671/843/201 666/849/201 +f 695/850/201 478/851/201 477/840/201 +f 694/852/201 479/853/201 478/851/201 +f 692/854/201 479/853/201 693/855/201 +f 691/856/201 480/857/201 692/854/201 +f 697/858/201 481/859/201 691/856/201 +f 689/860/202 494/861/202 523/862/202 +f 682/863/202 493/864/202 623/865/202 +f 681/866/202 533/867/202 682/863/202 +f 680/868/202 502/869/202 681/866/202 +f 680/868/202 500/870/202 501/871/202 +f 679/872/202 499/873/202 500/870/202 +f 677/874/202 499/873/202 678/875/202 +f 676/876/202 496/877/202 497/878/202 +f 676/876/202 498/879/202 677/874/202 +f 688/880/202 495/881/202 675/882/202 +f 495/881/202 674/883/202 675/882/202 +f 524/884/202 687/885/202 525/886/202 +f 684/887/202 532/888/202 531/889/202 +f 685/890/202 531/889/202 530/891/202 +f 526/892/202 685/890/202 530/891/202 +f 683/893/202 523/862/202 532/888/202 +f 525/886/202 686/894/202 526/892/202 +f 518/895/202 705/769/202 706/828/202 +f 710/896/202 515/897/202 709/764/202 +f 719/898/202 655/899/202 641/900/202 +f 514/901/202 719/898/202 641/900/202 +f 624/902/202 716/903/202 529/904/202 +f 624/902/202 718/905/202 717/906/202 +f 529/904/202 715/907/202 528/908/202 +f 527/909/202 715/907/202 714/910/202 +f 522/911/202 714/910/202 713/912/202 +f 522/911/202 712/913/202 521/914/202 +f 521/914/202 704/915/202 520/916/202 +f 520/916/202 721/917/202 656/918/202 +f 513/919/202 720/920/202 711/768/202 +f 505/921/201 733/922/201 511/923/201 +f 511/923/201 734/924/201 510/925/201 +f 510/925/201 735/926/201 509/927/201 +f 508/928/201 735/926/201 736/929/201 +f 507/930/201 736/929/201 737/931/201 +f 506/932/201 737/931/201 738/933/201 +f 724/934/201 741/935/201 725/936/201 +f 741/935/201 738/933/201 725/936/201 +f 702/937/201 726/938/201 727/939/201 +f 726/938/201 740/940/201 724/934/201 +f 702/937/201 728/941/201 701/942/201 +f 701/942/201 729/943/201 700/944/201 +f 700/944/201 730/945/201 503/946/201 +f 503/946/201 731/947/201 504/948/201 +f 512/949/201 731/947/201 732/950/201 +f 739/951/201 742/952/201 722/953/201 +f 732/950/201 743/954/201 512/949/201 +f 482/749/201 491/955/201 471/750/201 +f 475/752/201 697/858/201 472/753/201 +f 690/751/201 698/757/201 483/755/201 +f 699/756/201 484/759/201 483/755/201 +f 621/758/201 485/761/201 484/759/201 +f 536/760/201 486/763/201 485/761/201 +f 535/762/201 487/775/201 486/763/201 +f 709/764/202 515/897/202 516/765/202 +f 519/767/202 513/919/202 711/768/202 +f 708/766/202 516/765/202 517/770/202 +f 488/772/201 534/956/201 474/773/201 +f 535/762/201 534/956/201 488/772/201 +f 590/778/201 591/784/201 592/779/201 +f 592/779/201 594/815/201 589/781/201 +f 595/787/201 596/957/201 581/788/201 +f 587/790/201 588/816/201 610/791/201 +f 586/793/201 587/790/201 609/792/201 +f 586/793/201 608/794/201 607/795/201 +f 584/797/201 585/796/201 607/795/201 +f 582/799/201 584/797/201 606/798/201 +f 583/801/201 582/799/201 604/800/201 +f 590/778/201 628/777/201 627/782/201 +f 612/786/201 666/785/201 583/801/201 +f 575/803/201 599/807/201 598/804/201 +f 577/806/201 600/809/201 599/807/201 +f 578/808/201 601/811/201 600/809/201 +f 578/808/201 579/812/201 602/810/201 +f 579/812/201 580/814/201 603/813/201 +f 581/788/201 596/957/201 603/813/201 +f 611/776/201 610/791/201 588/816/201 +f 576/805/201 598/804/201 597/783/201 +f 619/817/203 614/958/203 616/818/203 +f 618/820/204 615/959/204 613/821/204 +f 617/819/202 616/960/202 615/823/202 +f 620/822/201 613/961/201 614/824/201 +f 619/817/205 617/819/205 618/820/205 +f 667/789/201 666/785/201 589/781/201 +f 473/825/201 696/839/201 476/826/201 +f 490/774/201 474/773/201 473/825/201 +f 517/770/202 518/895/202 706/828/202 +f 660/829/203 664/962/203 662/830/203 +f 661/832/204 659/836/204 663/833/204 +f 658/831/206 662/838/206 663/835/206 +f 664/837/201 665/963/201 663/835/201 +f 696/839/201 695/850/201 477/840/201 +f 672/841/205 673/964/205 670/842/205 +f 669/844/203 673/964/203 672/841/203 +f 666/846/204 671/843/204 670/842/204 +f 667/848/201 672/841/201 671/843/201 +f 695/850/201 694/852/201 478/851/201 +f 694/852/201 693/855/201 479/853/201 +f 692/854/201 480/857/201 479/853/201 +f 691/856/201 481/859/201 480/857/201 +f 697/858/201 475/752/201 481/859/201 +f 689/860/202 622/965/202 494/861/202 +f 682/863/202 533/867/202 493/864/202 +f 681/866/202 502/869/202 533/867/202 +f 680/868/202 501/871/202 502/869/202 +f 680/868/202 679/872/202 500/870/202 +f 679/872/202 678/875/202 499/873/202 +f 677/874/202 498/879/202 499/873/202 +f 676/876/202 674/883/202 496/877/202 +f 676/876/202 497/878/202 498/879/202 +f 688/880/202 524/884/202 495/881/202 +f 495/881/202 496/877/202 674/883/202 +f 524/884/202 688/880/202 687/885/202 +f 684/887/202 683/893/202 532/888/202 +f 685/890/202 684/887/202 531/889/202 +f 526/892/202 686/894/202 685/890/202 +f 683/893/202 689/860/202 523/862/202 +f 525/886/202 687/885/202 686/894/202 +f 518/895/202 519/767/202 705/769/202 +f 710/896/202 514/901/202 515/897/202 +f 719/898/202 718/905/202 655/899/202 +f 514/901/202 710/896/202 719/898/202 +f 624/902/202 717/906/202 716/903/202 +f 624/902/202 655/899/202 718/905/202 +f 529/904/202 716/903/202 715/907/202 +f 527/909/202 528/908/202 715/907/202 +f 522/911/202 527/909/202 714/910/202 +f 522/911/202 713/912/202 712/913/202 +f 521/914/202 712/913/202 704/915/202 +f 520/916/202 704/915/202 721/917/202 +f 513/919/202 657/966/202 720/920/202 +f 505/921/201 739/951/201 733/922/201 +f 511/923/201 733/922/201 734/924/201 +f 510/925/201 734/924/201 735/926/201 +f 508/928/201 509/927/201 735/926/201 +f 507/930/201 508/928/201 736/929/201 +f 506/932/201 507/930/201 737/931/201 +f 724/934/201 740/940/201 741/935/201 +f 741/935/201 506/932/201 738/933/201 +f 702/937/201 703/967/201 726/938/201 +f 726/938/201 703/967/201 740/940/201 +f 702/937/201 727/939/201 728/941/201 +f 701/942/201 728/941/201 729/943/201 +f 700/944/201 729/943/201 730/945/201 +f 503/946/201 730/945/201 731/947/201 +f 512/949/201 504/948/201 731/947/201 +f 739/951/201 505/921/201 742/952/201 +f 732/950/201 723/968/201 743/954/201 +s 1 +f 471/750/207 533/867/208 690/751/208 +f 523/862/209 472/753/210 697/858/209 +f 504/948/211 713/912/212 503/946/212 +f 473/825/213 524/884/214 696/839/214 +f 700/944/204 715/907/215 701/942/215 +f 701/942/215 716/903/216 702/937/216 +f 512/949/208 712/913/211 504/948/211 +f 473/825/213 496/877/217 495/881/213 +f 497/878/218 474/773/217 534/956/218 +f 626/969/217 627/970/213 628/971/217 +f 588/972/218 626/973/217 628/974/217 +f 544/975/208 666/846/207 668/847/207 +f 572/976/204 589/977/215 573/978/215 +f 545/979/211 583/980/208 544/975/208 +f 559/981/212 601/982/204 560/983/204 +f 573/978/215 612/984/216 574/985/216 +f 546/986/212 582/987/211 545/979/211 +f 560/983/204 602/988/215 561/989/215 +f 574/985/216 605/990/219 563/991/219 +f 547/992/204 584/993/212 546/986/212 +f 561/989/215 603/994/216 562/995/216 +f 548/996/215 585/997/204 547/992/204 +f 562/995/216 596/998/219 551/999/219 +f 549/1000/216 586/1001/215 548/996/215 +f 563/991/219 604/1002/220 564/1003/220 +f 550/1004/218 587/1005/216 549/1000/216 +f 564/1003/220 606/1006/221 565/1007/221 +f 551/999/219 595/1008/220 552/1009/220 +f 565/1007/221 607/1010/203 566/1011/203 +f 552/1009/220 594/1012/221 553/1013/221 +f 566/1011/203 608/1014/222 567/1015/222 +f 539/1016/220 576/1017/214 538/1018/214 +f 553/1013/221 592/1019/203 554/1020/203 +f 567/1015/222 609/1021/223 568/1022/223 +f 540/1023/221 575/1024/220 539/1016/220 +f 554/1020/203 591/1025/222 555/1026/222 +f 568/1022/223 610/1027/205 569/1028/205 +f 541/1029/203 577/1030/221 540/1023/221 +f 555/1026/222 597/1031/223 556/1032/223 +f 569/1033/205 611/1034/211 570/1035/211 +f 542/1036/222 578/1037/203 541/1029/203 +f 556/1032/223 598/1038/205 557/1039/205 +f 570/1035/211 590/1040/212 571/1041/212 +f 543/1042/223 579/1043/222 542/1036/222 +f 557/1044/205 599/1045/211 558/1046/211 +f 571/1041/212 593/1047/204 572/976/204 +f 537/1048/209 580/1049/223 543/1042/223 +f 558/1046/211 600/1050/212 559/981/212 +f 510/925/222 705/769/223 511/923/223 +f 511/923/223 711/768/209 505/921/209 +f 576/1017/214 625/1051/213 538/1018/214 +f 629/1052/224 645/1053/205 632/1054/225 +f 630/1055/202 632/1054/225 633/1056/226 +f 630/1055/202 634/1057/227 631/1058/228 +f 632/1054/225 636/1059/203 633/1056/226 +f 633/1056/226 637/1060/229 634/1057/227 +f 632/1054/225 645/1061/205 635/1062/230 +f 635/1062/230 639/1063/231 636/1059/203 +f 637/1060/229 639/1063/231 640/1064/232 +f 635/1062/230 645/1065/205 638/1066/233 +f 638/1066/233 645/1067/205 642/1068/234 +f 638/1066/233 643/1069/201 639/1063/231 +f 640/1064/232 643/1069/201 644/1070/235 +f 643/1071/201 648/1072/236 644/1073/235 +f 642/1074/234 645/1075/205 646/1076/237 +f 507/930/220 708/766/221 508/928/221 +f 643/1071/201 646/1076/237 647/1077/238 +f 647/1077/238 651/1078/239 648/1072/236 +f 646/1076/237 645/1079/205 649/1080/240 +f 503/946/212 714/910/204 700/944/204 +f 647/1077/238 649/1080/240 650/1081/204 +f 651/1078/239 653/1082/241 654/1083/242 +f 649/1080/240 645/1084/205 652/1085/243 +f 649/1080/240 653/1082/241 650/1081/204 +f 653/1082/241 631/1058/228 654/1083/242 +f 652/1085/243 645/1086/205 629/1052/224 +f 652/1085/243 630/1055/202 653/1082/241 +f 669/844/210 581/1087/209 537/1048/209 +f 696/839/214 525/886/220 695/850/220 +f 694/852/221 530/891/203 693/855/203 +f 693/855/203 531/889/222 692/854/222 +f 535/762/216 497/878/218 534/956/218 +f 699/756/212 500/870/204 621/758/204 +f 695/850/220 526/892/221 694/852/221 +f 691/856/223 523/862/209 697/858/209 +f 692/854/222 532/888/223 691/856/223 +f 690/751/208 502/869/211 698/757/211 +f 536/760/215 498/879/216 535/762/216 +f 621/758/204 499/873/215 536/760/215 +f 698/757/211 501/871/212 699/756/212 +f 702/937/216 717/906/218 703/967/218 +f 509/927/203 706/828/222 510/925/222 +f 508/928/221 707/771/203 509/927/203 +f 506/932/214 709/764/220 507/930/220 +f 717/906/218 740/940/217 703/967/218 +f 741/935/213 718/905/217 719/898/213 +f 741/935/213 710/896/214 506/932/214 +f 711/768/209 742/952/210 505/921/209 +f 743/954/207 704/915/208 512/949/208 +f 471/750/207 493/864/207 533/867/208 +f 523/862/209 494/861/210 472/753/210 +f 504/948/211 712/913/211 713/912/212 +f 473/825/213 495/881/213 524/884/214 +f 700/944/204 714/910/204 715/907/215 +f 701/942/215 715/907/215 716/903/216 +f 512/949/208 704/915/208 712/913/211 +f 473/825/213 474/773/217 496/877/217 +f 497/878/218 496/877/217 474/773/217 +f 626/969/217 625/1051/213 627/970/213 +f 588/972/218 550/1004/218 626/973/217 +f 544/975/208 583/980/208 666/846/207 +f 572/976/204 593/1047/204 589/977/215 +f 545/979/211 582/987/211 583/980/208 +f 559/981/212 600/1050/212 601/982/204 +f 573/978/215 589/977/215 612/984/216 +f 546/986/212 584/993/212 582/987/211 +f 560/983/204 601/982/204 602/988/215 +f 574/985/216 612/984/216 605/990/219 +f 547/992/204 585/997/204 584/993/212 +f 561/989/215 602/988/215 603/994/216 +f 548/996/215 586/1001/215 585/997/204 +f 562/995/216 603/994/216 596/998/219 +f 549/1000/216 587/1005/216 586/1001/215 +f 563/991/219 605/990/219 604/1002/220 +f 550/1004/218 588/972/218 587/1005/216 +f 564/1003/220 604/1002/220 606/1006/221 +f 551/999/219 596/998/219 595/1008/220 +f 565/1007/221 606/1006/221 607/1010/203 +f 552/1009/220 595/1008/220 594/1012/221 +f 566/1011/203 607/1010/203 608/1014/222 +f 539/1016/220 575/1024/220 576/1017/214 +f 553/1013/221 594/1012/221 592/1019/203 +f 567/1015/222 608/1014/222 609/1021/223 +f 540/1023/221 577/1030/221 575/1024/220 +f 554/1020/203 592/1019/203 591/1025/222 +f 568/1022/223 609/1021/223 610/1027/205 +f 541/1029/203 578/1037/203 577/1030/221 +f 555/1026/222 591/1025/222 597/1031/223 +f 569/1033/205 610/1088/205 611/1034/211 +f 542/1036/222 579/1043/222 578/1037/203 +f 556/1032/223 597/1031/223 598/1038/205 +f 570/1035/211 611/1034/211 590/1040/212 +f 543/1042/223 580/1049/223 579/1043/222 +f 557/1044/205 598/1089/205 599/1045/211 +f 571/1041/212 590/1040/212 593/1047/204 +f 537/1048/209 581/1087/209 580/1049/223 +f 558/1046/211 599/1045/211 600/1050/212 +f 510/925/222 706/828/222 705/769/223 +f 511/923/223 705/769/223 711/768/209 +f 576/1017/214 627/970/213 625/1051/213 +f 630/1055/202 629/1052/224 632/1054/225 +f 630/1055/202 633/1056/226 634/1057/227 +f 632/1054/225 635/1062/230 636/1059/203 +f 633/1056/226 636/1059/203 637/1060/229 +f 635/1062/230 638/1066/233 639/1063/231 +f 637/1060/229 636/1059/203 639/1063/231 +f 638/1066/233 642/1068/234 643/1069/201 +f 640/1064/232 639/1063/231 643/1069/201 +f 643/1071/201 647/1077/238 648/1072/236 +f 507/930/220 709/764/220 708/766/221 +f 643/1071/201 642/1074/234 646/1076/237 +f 647/1077/238 650/1081/204 651/1078/239 +f 503/946/212 713/912/212 714/910/204 +f 647/1077/238 646/1076/237 649/1080/240 +f 651/1078/239 650/1081/204 653/1082/241 +f 649/1080/240 652/1085/243 653/1082/241 +f 653/1082/241 630/1055/202 631/1058/228 +f 652/1085/243 629/1052/224 630/1055/202 +f 669/844/210 667/845/210 581/1087/209 +f 696/839/214 524/884/214 525/886/220 +f 694/852/221 526/892/221 530/891/203 +f 693/855/203 530/891/203 531/889/222 +f 535/762/216 498/879/216 497/878/218 +f 699/756/212 501/871/212 500/870/204 +f 695/850/220 525/886/220 526/892/221 +f 691/856/223 532/888/223 523/862/209 +f 692/854/222 531/889/222 532/888/223 +f 690/751/208 533/867/208 502/869/211 +f 536/760/215 499/873/215 498/879/216 +f 621/758/204 500/870/204 499/873/215 +f 698/757/211 502/869/211 501/871/212 +f 702/937/216 716/903/216 717/906/218 +f 509/927/203 707/771/203 706/828/222 +f 508/928/221 708/766/221 707/771/203 +f 506/932/214 710/896/214 709/764/220 +f 717/906/218 718/905/217 740/940/217 +f 741/935/213 740/940/217 718/905/217 +f 741/935/213 719/898/213 710/896/214 +f 711/768/209 720/920/210 742/952/210 +f 743/954/207 721/917/207 704/915/208 +o BarrelShort +v -0.250000 0.375000 -1.625000 +v -0.375000 0.375000 -1.625000 +v -0.187500 0.250000 -1.625000 +v -0.437500 0.250000 -1.625000 +v -0.250000 0.375000 -1.687500 +v -0.375000 0.375000 -1.687500 +v -0.187500 0.250000 -1.687500 +v -0.437500 0.250000 -1.687500 +v -0.250000 0.375000 -1.063500 +v -0.375000 0.375000 -1.063500 +v -0.187500 0.250000 -1.063500 +v -0.437500 0.250000 -1.063500 +v -0.250000 0.375000 -1.501000 +v -0.375000 0.375000 -1.501000 +v -0.187500 0.250000 -1.501000 +v -0.437500 0.250000 -1.501000 +v 0.437500 -0.562500 -0.750000 +v -0.437500 -0.562500 -0.750000 +v 0.437500 -0.250000 -0.750000 +v -0.437500 -0.250000 -0.750000 +v 0.437500 -0.562500 3.437500 +v -0.437500 -0.562500 3.437500 +v 0.437500 -0.250000 3.437500 +v -0.437500 -0.250000 3.437500 +v 0.125000 -0.437500 -1.062500 +v 0.125000 -0.304917 -1.007583 +v 0.125000 -0.250000 -0.875000 +v 0.125000 -0.304917 -0.742417 +v 0.125000 -0.437500 -0.687500 +v 0.125000 -0.570082 -0.742418 +v 0.125000 -0.625000 -0.875000 +v 0.125000 -0.570082 -1.007583 +v -0.125000 -0.437500 -1.062500 +v -0.125000 -0.304917 -1.007583 +v -0.125000 -0.250000 -0.875000 +v -0.125000 -0.304917 -0.742417 +v -0.125000 -0.437500 -0.687500 +v -0.125000 -0.570082 -0.742418 +v -0.125000 -0.625000 -0.875000 +v -0.125000 -0.570082 -1.007583 +v -0.500000 0.375000 -1.218750 +v -0.375000 0.375000 -1.218750 +v -0.500000 0.375000 -1.343750 +v -0.375000 0.375000 -1.343750 +v -0.500000 0.187500 -1.343750 +v -0.500000 0.187500 -1.218750 +v -0.375000 0.250000 -1.218750 +v -0.375000 0.250000 -1.343750 +v -0.437500 0.375000 -1.343750 +v -0.481694 0.375000 -1.325444 +v -0.500000 0.375000 -1.281250 +v -0.481694 0.375000 -1.237056 +v -0.437500 0.375000 -1.218750 +v -0.393306 0.375000 -1.237056 +v -0.375000 0.375000 -1.281250 +v -0.393306 0.375000 -1.325444 +v -0.437500 0.437500 -1.343750 +v -0.481694 0.437500 -1.325444 +v -0.500000 0.437500 -1.281250 +v -0.481694 0.437500 -1.237056 +v -0.437500 0.437500 -1.218750 +v -0.393306 0.437500 -1.237056 +v -0.375000 0.437500 -1.281250 +v -0.393306 0.437500 -1.325444 +v 0.687500 0.125000 0.000000 +v 0.687500 -0.125000 0.000000 +v 0.687500 0.125000 -0.750000 +v 0.687500 -0.125000 -0.750000 +v 0.562500 0.125000 0.000000 +v 0.562500 -0.125000 0.000000 +v 0.562500 0.125000 -0.750000 +v 0.562500 -0.125000 -0.750000 +v 0.687500 0.125000 -0.750000 +v 0.687500 -0.125000 -0.750000 +v 0.687500 0.125000 -0.625000 +v 0.687500 -0.125000 -0.625000 +v 0.812500 -0.125000 -0.750000 +v 0.812500 0.125000 -0.750000 +v 0.812500 -0.125000 -0.625000 +v 0.812500 0.125000 -0.625000 +v 0.312500 0.312500 3.500000 +v 0.312500 -0.312500 3.500000 +v 0.468750 -0.270633 3.500000 +v 0.583133 -0.156250 3.500000 +v 0.625000 0.000000 3.500000 +v 0.583133 0.156250 3.500000 +v 0.468750 0.270633 3.500000 +v -0.312500 0.312500 3.500000 +v -0.468750 0.270633 3.500000 +v -0.583133 0.156250 3.500000 +v -0.625000 0.000000 3.500000 +v -0.583133 -0.156250 3.500000 +v -0.468750 -0.270633 3.500000 +v -0.312500 -0.312500 3.500000 +v 0.125000 -0.250000 3.500000 +v -0.125000 -0.250000 3.500000 +v -0.125000 0.250000 3.500000 +v 0.125000 0.250000 3.500000 +v -0.125000 0.375000 3.500000 +v 0.125000 0.375000 3.500000 +v 0.312500 0.250000 3.500000 +v 0.187500 0.216506 3.500000 +v 0.095994 0.125000 3.500000 +v 0.062500 0.000000 3.500000 +v 0.095994 -0.125000 3.500000 +v 0.187500 -0.216506 3.500000 +v 0.312500 -0.250000 3.500000 +v 0.437500 -0.216506 3.500000 +v 0.529006 -0.125000 3.500000 +v 0.562500 0.000000 3.500000 +v 0.529006 0.125000 3.500000 +v 0.437500 0.216506 3.500000 +v -0.312500 0.250000 3.500000 +v -0.437500 0.216506 3.500000 +v -0.529006 0.125000 3.500000 +v -0.562500 0.000000 3.500000 +v -0.529006 -0.125000 3.500000 +v -0.437500 -0.216506 3.500000 +v -0.312500 -0.250000 3.500000 +v -0.187500 -0.216506 3.500000 +v -0.095994 -0.125000 3.500000 +v -0.062500 0.000000 3.500000 +v -0.095994 0.125000 3.500000 +v -0.187500 0.216506 3.500000 +v 0.312500 0.250000 -1.750000 +v 0.187500 0.216506 -1.750000 +v 0.095994 0.125000 -1.750000 +v 0.062500 0.000000 -1.750000 +v 0.095994 -0.125000 -1.750000 +v 0.187500 -0.216506 -1.750000 +v 0.312500 -0.250000 -1.750000 +v 0.437500 -0.216506 -1.750000 +v 0.529006 -0.125000 -1.750000 +v 0.562500 0.000000 -1.750000 +v 0.529006 0.125000 -1.750000 +v 0.437500 0.216506 -1.750000 +v -0.312500 0.250000 -1.750000 +v -0.437500 0.216506 -1.750000 +v -0.529006 0.125000 -1.750000 +v -0.562500 0.000000 -1.750000 +v -0.529006 -0.125000 -1.750000 +v -0.437500 -0.216506 -1.750000 +v -0.312500 -0.250000 -1.750000 +v -0.187500 -0.216506 -1.750000 +v -0.095994 -0.125000 -1.750000 +v -0.062500 0.000000 -1.750000 +v -0.095994 0.125000 -1.750000 +v -0.187500 0.216506 -1.750000 +v 0.312500 0.312500 -1.750000 +v 0.312500 -0.312500 -1.750000 +v 0.468750 -0.270633 -1.750000 +v 0.583133 -0.156250 -1.750000 +v 0.625000 0.000000 -1.750000 +v 0.583133 0.156250 -1.750000 +v 0.468750 0.270633 -1.750000 +v -0.312500 0.312500 -1.750000 +v -0.468750 0.270633 -1.750000 +v -0.583133 0.156250 -1.750000 +v -0.625000 0.000000 -1.750000 +v -0.583133 -0.156250 -1.750000 +v -0.468750 -0.270633 -1.750000 +v -0.312500 -0.312500 -1.750000 +v 0.125000 -0.250000 -1.750000 +v -0.125000 -0.250000 -1.750000 +v -0.125000 0.250000 -1.750000 +v 0.125000 0.250000 -1.750000 +v -0.125000 0.375000 -1.875000 +v 0.125000 0.375000 -1.875000 +v -0.125000 0.312500 -2.000000 +v -0.125000 0.250000 -2.000000 +v 0.125000 0.250000 -2.000000 +v 0.125000 0.312500 -2.000000 +vt 0.594464 0.461927 +vt 0.615383 0.472078 +vt 0.591718 0.472078 +vt 0.437870 0.294416 +vt 0.449704 0.274112 +vt 0.449704 0.294416 +vt 0.609467 0.451777 +vt 0.594464 0.441626 +vt 0.612637 0.441626 +vt 0.597634 0.451777 +vt 0.946746 0.304569 +vt 0.449704 0.304569 +vt 0.946746 0.263959 +vt 0.958580 0.274112 +vt 0.958580 0.294416 +vt 0.733728 0.588832 +vt 0.715976 0.598985 +vt 0.721893 0.588832 +vt 0.733728 0.532995 +vt 0.715976 0.543147 +vt 0.721893 0.532995 +vt 0.715976 0.517766 +vt 0.733728 0.527919 +vt 0.721893 0.527919 +vt 0.715976 0.543147 +vt 0.733728 0.553299 +vt 0.721893 0.553299 +vt 0.514793 0.451777 +vt 0.544379 0.522843 +vt 0.514793 0.522843 +vt 0.514793 0.548223 +vt 0.118343 0.522843 +vt 0.118343 0.426396 +vt 0.514793 0.426396 +vt 0.118343 0.451777 +vt 0.088757 0.522843 +vt 0.710030 0.532995 +vt 0.692308 0.548199 +vt 0.674585 0.532995 +vt 0.692308 0.548248 +vt 0.710030 0.563452 +vt 0.692308 0.578655 +vt 0.804734 0.482233 +vt 0.792899 0.472081 +vt 0.804734 0.472081 +vt 0.804734 0.456853 +vt 0.781065 0.461929 +vt 0.792899 0.456853 +vt 0.816568 0.461929 +vt 0.816568 0.472081 +vt 0.822485 0.472043 +vt 0.816612 0.467005 +vt 0.822485 0.461967 +vt 0.011834 0.588832 +vt 0.082840 0.609137 +vt 0.011834 0.609137 +vt 0.082840 0.578680 +vt 0.082840 0.588832 +vt 0.011834 0.619289 +vt 0.094675 0.609137 +vt 0.000000 0.588832 +vt 0.106509 0.609137 +vt 0.118343 0.588832 +vt 0.118343 0.609137 +vt 0.094675 0.588832 +vt 0.094675 0.609137 +vt 0.106509 0.619289 +vt 0.118343 0.619289 +vt 0.130178 0.609137 +vt 0.130178 0.588832 +vt 0.118343 0.578680 +vt 0.106509 0.588832 +vt 0.106509 0.578680 +vt 0.585802 0.469358 +vt 0.621299 0.469358 +vt 0.612637 0.461927 +vt 0.615383 0.431475 +vt 0.591718 0.431475 +vt 0.621299 0.434195 +vt 0.585802 0.434195 +vt 0.633132 0.426400 +vt 0.647922 0.429800 +vt 0.633132 0.431475 +vt 0.658749 0.439088 +vt 0.644964 0.434195 +vt 0.662713 0.451777 +vt 0.653626 0.441626 +vt 0.653626 0.461927 +vt 0.656796 0.451777 +vt 0.658749 0.464465 +vt 0.644964 0.469358 +vt 0.633131 0.477153 +vt 0.647922 0.473754 +vt 0.633131 0.472078 +vt 0.573969 0.426400 +vt 0.573969 0.431475 +vt 0.559179 0.429800 +vt 0.562137 0.434195 +vt 0.548351 0.439088 +vt 0.553475 0.441626 +vt 0.550304 0.451777 +vt 0.544388 0.451777 +vt 0.548351 0.464465 +vt 0.553475 0.461927 +vt 0.559179 0.473754 +vt 0.562137 0.469358 +vt 0.573969 0.477153 +vt 0.573969 0.472078 +vt 1.000000 0.294416 +vt 0.976331 0.274112 +vt 1.000000 0.274112 +vt 0.609467 0.502538 +vt 0.594464 0.492387 +vt 0.612637 0.492387 +vt 0.594464 0.512689 +vt 0.612637 0.512689 +vt 0.615383 0.482237 +vt 0.591718 0.482237 +vt 0.615383 0.522839 +vt 0.591718 0.522839 +vt 0.621299 0.520119 +vt 0.585802 0.520119 +vt 0.573969 0.527915 +vt 0.559179 0.524515 +vt 0.573969 0.522839 +vt 0.548351 0.515226 +vt 0.562137 0.520119 +vt 0.550304 0.502538 +vt 0.544388 0.502538 +vt 0.548351 0.489850 +vt 0.562137 0.484957 +vt 0.559179 0.480561 +vt 0.573969 0.477161 +vt 0.585802 0.484957 +vt 0.633132 0.527915 +vt 0.633132 0.522839 +vt 0.647922 0.524515 +vt 0.644964 0.520119 +vt 0.658749 0.515226 +vt 0.653626 0.512689 +vt 0.662713 0.502538 +vt 0.653626 0.492387 +vt 0.658749 0.489850 +vt 0.644964 0.484957 +vt 0.647922 0.480561 +vt 0.633132 0.477161 +vt 0.621299 0.484957 +vt 0.970414 0.274112 +vt 0.976331 0.294416 +vt 0.970414 0.294416 +vt 0.970414 0.263959 +vt 0.970414 0.269036 +vt 0.970414 0.304569 +vt 0.437870 0.274112 +vt 0.449704 0.263959 +vt 0.739645 0.598985 +vt 0.739645 0.543147 +vt 0.739645 0.517766 +vt 0.739645 0.543147 +vt 0.544379 0.451777 +vt 0.118343 0.548223 +vt 0.088757 0.451777 +vt 0.704839 0.543746 +vt 0.679776 0.543746 +vt 0.679776 0.522244 +vt 0.692308 0.517791 +vt 0.704839 0.522244 +vt 0.679776 0.574202 +vt 0.674585 0.563452 +vt 0.679776 0.552701 +vt 0.704839 0.552701 +vt 0.704839 0.574202 +vt 0.792899 0.482233 +vt 0.781065 0.472081 +vt 0.826638 0.463443 +vt 0.828358 0.467005 +vt 0.826638 0.470568 +vt 0.818333 0.470568 +vt 0.818333 0.463443 +vt 0.011834 0.578680 +vt 0.082840 0.619289 +vt 0.094675 0.588832 +vt -0.000000 0.609137 +vt 0.597634 0.502538 +vt 0.553475 0.512689 +vt 0.553475 0.492387 +vt 0.573969 0.482237 +vt 0.656796 0.502538 +vt 0.633132 0.482237 +vt 0.970414 0.299492 +vt 0.449704 0.142132 +vt 0.946746 0.157360 +vt 0.449704 0.157360 +vt 0.946746 0.218274 +vt 0.449704 0.233503 +vt 0.449704 0.218274 +vt 0.946746 0.395939 +vt 0.449704 0.411168 +vt 0.449704 0.395939 +vt 0.946746 0.203046 +vt 0.449704 0.203046 +vt 0.946746 0.380711 +vt 0.449704 0.380711 +vt 0.946746 0.187817 +vt 0.449704 0.187817 +vt 0.946746 0.365482 +vt 0.449704 0.365482 +vt 0.449704 0.248731 +vt 0.946746 0.172589 +vt 0.449704 0.172589 +vt 0.946746 0.350254 +vt 0.449704 0.350254 +vt 0.946746 0.411168 +vt 0.449704 0.426396 +vt 0.946746 0.335025 +vt 0.449704 0.335025 +vt 0.449704 0.121827 +vt 0.946746 0.142132 +vt 0.946746 0.319797 +vt 0.449704 0.319797 +vt 0.946746 0.233503 +vt 0.710059 0.588832 +vt 0.710059 0.532995 +vt 0.745562 0.527919 +vt 0.745562 0.532995 +vt 0.745562 0.553299 +vt 0.745562 0.588832 +vt 0.650888 0.527919 +vt 0.674556 0.538071 +vt 0.650888 0.538071 +vt 0.650888 0.588832 +vt 0.674556 0.598985 +vt 0.650888 0.598985 +vt 0.650888 0.568528 +vt 0.674556 0.578680 +vt 0.650888 0.578680 +vt 0.650888 0.548223 +vt 0.674556 0.558376 +vt 0.650888 0.558376 +vt 0.674556 0.548223 +vt 0.674556 0.609137 +vt 0.650888 0.609137 +vt 0.674556 0.588832 +vt 0.674556 0.568528 +vt 0.857988 0.461929 +vt 0.863905 0.456853 +vt 0.863905 0.461929 +vt 0.822485 0.461929 +vt 0.828402 0.456853 +vt 0.828402 0.461929 +vt 0.834320 0.461929 +vt 0.840237 0.456853 +vt 0.840237 0.461929 +vt 0.846154 0.456853 +vt 0.846154 0.461929 +vt 0.852071 0.461929 +vt 0.857988 0.456853 +vt 0.816568 0.461929 +vt 0.822485 0.456853 +vt 0.834320 0.456853 +vt 0.852071 0.456853 +vt 0.449704 -0.000000 +vt 0.946746 0.010152 +vt 0.449704 0.010152 +vt 0.449704 0.091371 +vt 0.946746 0.101523 +vt 0.449704 0.101523 +vt 0.449704 0.040609 +vt 0.946746 0.050761 +vt 0.449704 0.050761 +vt 0.449704 0.111675 +vt 0.946746 0.121827 +vt 0.449704 0.121827 +vt 0.449704 0.081218 +vt 0.946746 0.091371 +vt 0.449704 0.030457 +vt 0.946746 0.040609 +vt 0.449704 0.101523 +vt 0.946746 0.111675 +vt 0.449704 0.071066 +vt 0.946746 0.081218 +vt 0.449704 0.050761 +vt 0.946746 0.060914 +vt 0.449704 0.060914 +vt 0.449704 0.020305 +vt 0.946746 0.030457 +vt 0.449704 0.091371 +vt 0.946746 0.101523 +vt 0.449704 0.060914 +vt 0.946746 0.071066 +vt 0.449704 0.040609 +vt 0.946746 0.050761 +vt 0.449704 0.010152 +vt 0.946746 0.020305 +vt 0.449704 0.081218 +vt 0.946746 0.091371 +vt 0.449704 0.030457 +vt 0.946746 0.040609 +vt 0.449704 -0.000000 +vt 0.946746 0.010152 +vt 0.449704 0.071066 +vt 0.946746 0.081218 +vt 0.449704 0.020305 +vt 0.946746 0.030457 +vt 0.449704 0.111675 +vt 0.946746 0.121827 +vt 0.449704 0.121827 +vt 0.946746 0.071066 +vt 0.946746 0.020305 +vt 0.946746 0.111675 +vt 0.946746 0.060914 +vt 0.946746 0.248731 +vt 0.946746 0.426396 +vt 0.946746 0.121827 +vt 0.710059 0.553299 +vt 0.710059 0.527919 +vt 0.674556 0.527919 +vt 0.816568 0.456853 +vt 0.946746 -0.000000 +vt 0.946746 -0.000000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.8944 -0.4472 +vn -0.1602 -0.9871 0.0000 +vn -0.0300 -0.9996 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.0300 -0.9996 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.0300 0.9996 0.0000 +vn -0.3162 0.9487 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.1602 -0.9871 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0300 0.9996 0.0000 +vn 0.3162 0.9487 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.5257 0.8507 0.0000 +vn -0.5257 0.8507 0.0000 +vn -0.8944 0.4472 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +s off +f 866/1090/244 841/1091/244 840/1092/244 +f 840/1093/244 843/1094/244 842/1095/244 +f 847/1096/244 864/1097/244 848/1098/244 +f 847/1096/244 866/1090/244 865/1099/244 +f 842/1095/245 908/1100/245 840/1101/245 +f 843/1094/246 909/1102/246 911/1103/246 +f 843/1094/247 910/1104/247 842/1095/247 +f 753/1105/244 754/1106/244 752/1107/244 +f 745/1108/244 746/1109/244 744/1110/244 +f 750/1111/248 749/1112/248 748/1113/248 +f 758/1114/248 757/1115/248 756/1116/248 +f 761/1117/248 762/1118/248 760/1119/248 +f 762/1120/246 764/1121/246 760/1119/246 +f 761/1117/245 767/1122/245 763/1123/245 +f 760/1119/249 765/1124/249 761/1117/249 +f 766/1125/244 765/1124/244 764/1121/244 +f 768/1126/246 770/1127/246 772/1128/246 +f 782/1129/245 780/1130/245 778/1131/245 +f 785/1132/247 786/1133/247 784/1134/247 +f 786/1133/245 789/1135/245 784/1134/245 +f 786/1133/248 791/1136/248 788/1137/248 +f 784/1134/244 790/1138/244 785/1139/244 +f 804/1140/247 806/1141/247 800/1142/247 +f 809/1143/246 810/1144/246 808/1145/246 +f 809/1143/249 815/1146/249 811/1147/249 +f 810/1144/247 812/1148/247 808/1145/247 +f 811/1147/248 814/1149/248 810/1144/248 +f 808/1145/244 813/1150/244 809/1143/244 +f 823/1151/246 820/1152/246 821/1153/246 +f 819/1154/244 823/1151/244 818/1155/244 +f 818/1156/247 821/1153/247 816/1157/247 +f 816/1158/248 820/1152/248 817/1159/248 +f 817/1160/249 822/1161/249 819/1162/249 +f 866/1090/244 840/1092/244 867/1163/244 +f 845/1164/244 841/1091/244 846/1165/244 +f 838/1166/244 864/1097/244 839/1167/244 +f 848/1098/244 838/1166/244 849/1168/244 +f 864/1097/244 863/1169/244 839/1167/244 +f 825/1170/244 849/1168/244 838/1166/244 +f 826/1171/244 850/1172/244 825/1170/244 +f 827/1173/244 851/1174/244 826/1171/244 +f 828/1175/244 852/1176/244 827/1173/244 +f 828/1175/244 854/1177/244 853/1178/244 +f 829/1179/244 855/1180/244 854/1177/244 +f 824/1181/244 855/1180/244 830/1182/244 +f 824/1181/244 845/1164/244 844/1183/244 +f 837/1184/244 863/1169/244 862/1185/244 +f 836/1186/244 862/1185/244 861/1187/244 +f 835/1188/244 861/1187/244 860/1189/244 +f 835/1188/244 859/1190/244 834/1191/244 +f 833/1192/244 859/1190/244 858/1193/244 +f 832/1194/244 858/1193/244 857/1195/244 +f 831/1196/244 857/1195/244 856/1197/244 +f 831/1196/244 867/1163/244 840/1092/244 +f 908/1198/249 914/1199/249 909/1200/249 +f 871/1201/248 890/1202/248 870/1203/248 +f 888/1204/248 871/1201/248 872/1205/248 +f 909/1206/248 890/1202/248 908/1207/248 +f 888/1204/248 906/1208/248 907/1209/248 +f 872/1205/248 873/1210/248 906/1208/248 +f 888/1204/248 907/1209/248 887/1211/248 +f 905/1212/248 887/1211/248 907/1209/248 +f 904/1213/248 886/1214/248 905/1212/248 +f 903/1215/248 885/1216/248 904/1213/248 +f 883/1217/248 903/1215/248 902/1218/248 +f 901/1219/248 883/1217/248 902/1218/248 +f 881/1220/248 901/1219/248 900/1221/248 +f 899/1222/248 881/1220/248 900/1221/248 +f 891/1223/248 899/1222/248 908/1207/248 +f 891/1223/248 908/1207/248 890/1202/248 +f 873/1210/248 893/1224/248 906/1208/248 +f 874/1225/248 894/1226/248 893/1224/248 +f 875/1227/248 895/1228/248 894/1226/248 +f 876/1229/248 896/1230/248 895/1228/248 +f 896/1230/248 878/1231/248 897/1232/248 +f 897/1232/248 879/1233/248 898/1234/248 +f 879/1233/248 892/1235/248 898/1234/248 +f 892/1235/248 869/1236/248 909/1206/248 +f 870/1203/248 909/1206/248 869/1236/248 +f 915/1237/248 913/1238/248 912/1239/248 +f 911/1103/246 914/1240/246 915/1241/246 +f 911/1103/250 912/1239/250 910/1104/250 +f 910/1104/245 913/1242/245 908/1100/245 +f 866/1090/244 846/1165/244 841/1091/244 +f 840/1093/244 841/1243/244 843/1094/244 +f 847/1096/244 865/1099/244 864/1097/244 +f 847/1096/244 846/1165/244 866/1090/244 +f 842/1095/245 910/1104/245 908/1100/245 +f 843/1094/246 841/1244/246 909/1102/246 +f 843/1094/247 911/1103/247 910/1104/247 +f 753/1105/244 755/1245/244 754/1106/244 +f 745/1108/244 747/1246/244 746/1109/244 +f 750/1111/248 751/1247/248 749/1112/248 +f 758/1114/248 759/1248/248 757/1115/248 +f 761/1117/248 763/1249/248 762/1118/248 +f 762/1120/246 766/1250/246 764/1121/246 +f 761/1117/245 765/1124/245 767/1122/245 +f 760/1119/249 764/1121/249 765/1124/249 +f 766/1125/244 767/1251/244 765/1124/244 +f 768/1126/246 769/1252/246 770/1127/246 +f 770/1127/246 771/1253/246 772/1128/246 +f 772/1128/246 773/1254/246 768/1126/246 +f 773/1254/246 774/1255/246 768/1126/246 +f 774/1255/246 775/1256/246 768/1126/246 +f 778/1131/245 777/1257/245 776/1258/245 +f 776/1258/245 783/1259/245 782/1129/245 +f 782/1129/245 781/1260/245 780/1130/245 +f 780/1130/245 779/1261/245 778/1131/245 +f 778/1131/245 776/1258/245 782/1129/245 +f 785/1132/247 787/1262/247 786/1133/247 +f 786/1133/245 788/1137/245 789/1135/245 +f 786/1133/248 787/1263/248 791/1136/248 +f 784/1134/244 789/1135/244 790/1138/244 +f 800/1142/247 801/1264/247 802/1265/247 +f 802/1265/247 803/1266/247 804/1140/247 +f 804/1140/247 805/1267/247 806/1141/247 +f 806/1141/247 807/1268/247 800/1142/247 +f 800/1142/247 802/1265/247 804/1140/247 +f 809/1143/246 811/1147/246 810/1144/246 +f 809/1143/249 813/1269/249 815/1146/249 +f 810/1144/247 814/1270/247 812/1148/247 +f 811/1147/248 815/1271/248 814/1149/248 +f 808/1145/244 812/1272/244 813/1150/244 +f 823/1151/246 822/1161/246 820/1152/246 +f 819/1154/244 822/1161/244 823/1151/244 +f 818/1156/247 823/1151/247 821/1153/247 +f 816/1158/248 821/1153/248 820/1152/248 +f 817/1160/249 820/1152/249 822/1161/249 +f 838/1166/244 848/1098/244 864/1097/244 +f 825/1170/244 850/1172/244 849/1168/244 +f 826/1171/244 851/1174/244 850/1172/244 +f 827/1173/244 852/1176/244 851/1174/244 +f 828/1175/244 853/1178/244 852/1176/244 +f 828/1175/244 829/1179/244 854/1177/244 +f 829/1179/244 830/1182/244 855/1180/244 +f 824/1181/244 844/1183/244 855/1180/244 +f 824/1181/244 841/1091/244 845/1164/244 +f 837/1184/244 839/1167/244 863/1169/244 +f 836/1186/244 837/1184/244 862/1185/244 +f 835/1188/244 836/1186/244 861/1187/244 +f 835/1188/244 860/1189/244 859/1190/244 +f 833/1192/244 834/1191/244 859/1190/244 +f 832/1194/244 833/1192/244 858/1193/244 +f 831/1196/244 832/1194/244 857/1195/244 +f 831/1196/244 856/1197/244 867/1163/244 +f 908/1198/249 913/1238/249 914/1199/249 +f 871/1201/248 889/1273/248 890/1202/248 +f 888/1204/248 889/1273/248 871/1201/248 +f 909/1206/248 870/1203/248 890/1202/248 +f 888/1204/248 872/1205/248 906/1208/248 +f 905/1212/248 886/1214/248 887/1211/248 +f 904/1213/248 885/1216/248 886/1214/248 +f 903/1215/248 884/1274/248 885/1216/248 +f 883/1217/248 884/1274/248 903/1215/248 +f 901/1219/248 882/1275/248 883/1217/248 +f 881/1220/248 882/1275/248 901/1219/248 +f 899/1222/248 880/1276/248 881/1220/248 +f 891/1223/248 880/1276/248 899/1222/248 +f 873/1210/248 874/1225/248 893/1224/248 +f 874/1225/248 875/1227/248 894/1226/248 +f 875/1227/248 876/1229/248 895/1228/248 +f 876/1229/248 877/1277/248 896/1230/248 +f 896/1230/248 877/1277/248 878/1231/248 +f 897/1232/248 878/1231/248 879/1233/248 +f 879/1233/248 868/1278/248 892/1235/248 +f 892/1235/248 868/1278/248 869/1236/248 +f 915/1237/248 914/1199/248 913/1238/248 +f 911/1103/246 909/1102/246 914/1240/246 +f 911/1103/250 915/1237/250 912/1239/250 +f 910/1104/245 912/1279/245 913/1242/245 +s 1 +f 838/1280/251 893/1281/252 825/1282/252 +f 897/1283/253 830/1284/254 829/1285/253 +f 904/1286/255 837/1287/256 836/1288/255 +f 896/1289/246 829/1285/253 828/1290/246 +f 903/1291/257 836/1288/255 835/1292/257 +f 895/1293/258 828/1290/246 827/1294/258 +f 902/1295/245 835/1292/257 834/1296/245 +f 824/1297/259 909/1102/260 841/1244/260 +f 894/1298/261 827/1294/258 826/1299/261 +f 901/1300/262 834/1296/245 833/1301/262 +f 905/1302/256 839/1303/263 837/1287/256 +f 893/1281/252 826/1299/261 825/1282/252 +f 900/1304/264 833/1301/262 832/1305/264 +f 839/1306/263 906/1307/251 838/1280/251 +f 899/1308/265 832/1305/264 831/1309/265 +f 908/1100/266 831/1309/265 840/1101/266 +f 898/1310/254 824/1297/259 830/1284/254 +f 754/1311/267 756/1116/268 752/1107/268 +f 746/1312/267 748/1113/268 744/1110/268 +f 745/1108/269 751/1313/270 747/1314/270 +f 744/1110/268 749/1112/269 745/1108/269 +f 753/1105/269 759/1315/270 755/1316/270 +f 752/1107/268 757/1115/269 753/1105/269 +f 774/1317/249 783/1318/271 775/1319/271 +f 772/1320/244 781/1321/272 773/1322/272 +f 770/1323/247 779/1324/273 771/1325/273 +f 768/1326/248 777/1327/274 769/1328/274 +f 775/1319/271 776/1329/248 768/1326/248 +f 773/1322/272 782/1330/249 774/1331/249 +f 771/1325/273 780/1332/244 772/1320/244 +f 769/1328/274 778/1333/247 770/1323/247 +f 797/1334/275 804/1335/244 796/1336/244 +f 795/1337/276 802/1338/245 794/1339/245 +f 793/1340/277 800/1341/248 792/1342/248 +f 792/1342/248 807/1343/278 799/1344/278 +f 798/1345/246 805/1346/275 797/1334/275 +f 796/1347/244 803/1348/276 795/1337/276 +f 794/1339/245 801/1349/277 793/1340/277 +f 799/1344/278 806/1350/246 798/1345/246 +f 850/1351/247 873/1352/254 849/1353/254 +f 865/1354/245 888/1355/262 864/1356/262 +f 858/1357/258 881/1358/261 857/1359/261 +f 851/1360/264 874/1361/247 850/1362/247 +f 866/1363/257 889/1364/245 865/1354/245 +f 859/1365/246 882/1366/258 858/1357/258 +f 852/1367/262 875/1368/264 851/1360/264 +f 867/1369/255 890/1370/257 866/1363/257 +f 845/1371/261 868/1372/249 844/1373/249 +f 860/1374/253 883/1375/246 859/1365/246 +f 853/1376/245 876/1377/262 852/1367/262 +f 856/1378/249 891/1379/255 867/1369/255 +f 846/1380/258 869/1381/261 845/1371/261 +f 861/1382/254 884/1383/253 860/1374/253 +f 854/1384/257 877/1385/245 853/1376/245 +f 847/1386/246 870/1387/258 846/1380/258 +f 862/1388/247 885/1389/254 861/1382/254 +f 855/1390/255 878/1391/257 854/1384/257 +f 848/1392/253 871/1393/246 847/1386/246 +f 863/1394/264 886/1395/247 862/1396/247 +f 844/1373/249 879/1397/255 855/1390/255 +f 849/1353/254 872/1398/253 848/1392/253 +f 864/1356/262 887/1399/264 863/1394/264 +f 857/1359/261 880/1400/249 856/1378/249 +f 838/1280/251 906/1307/251 893/1281/252 +f 897/1283/253 898/1310/254 830/1284/254 +f 904/1286/255 905/1302/256 837/1287/256 +f 896/1289/246 897/1283/253 829/1285/253 +f 903/1291/257 904/1286/255 836/1288/255 +f 895/1293/258 896/1289/246 828/1290/246 +f 902/1295/245 903/1291/257 835/1292/257 +f 824/1297/259 892/1401/259 909/1102/260 +f 894/1298/261 895/1293/258 827/1294/258 +f 901/1300/262 902/1295/245 834/1296/245 +f 905/1302/256 907/1402/263 839/1303/263 +f 893/1281/252 894/1298/261 826/1299/261 +f 900/1304/264 901/1300/262 833/1301/262 +f 839/1306/263 907/1403/263 906/1307/251 +f 899/1308/265 900/1304/264 832/1305/264 +f 908/1100/266 899/1308/265 831/1309/265 +f 898/1310/254 892/1401/259 824/1297/259 +f 754/1311/267 758/1404/267 756/1116/268 +f 746/1312/267 750/1405/267 748/1113/268 +f 745/1108/269 749/1112/269 751/1313/270 +f 744/1110/268 748/1113/268 749/1112/269 +f 753/1105/269 757/1115/269 759/1315/270 +f 752/1107/268 756/1116/268 757/1115/269 +f 774/1317/249 782/1406/249 783/1318/271 +f 772/1320/244 780/1332/244 781/1321/272 +f 770/1323/247 778/1333/247 779/1324/273 +f 768/1326/248 776/1329/248 777/1327/274 +f 775/1319/271 783/1318/271 776/1329/248 +f 773/1322/272 781/1321/272 782/1330/249 +f 771/1325/273 779/1324/273 780/1332/244 +f 769/1328/274 777/1327/274 778/1333/247 +f 797/1334/275 805/1346/275 804/1335/244 +f 795/1337/276 803/1348/276 802/1338/245 +f 793/1340/277 801/1349/277 800/1341/248 +f 792/1342/248 800/1341/248 807/1343/278 +f 798/1345/246 806/1350/246 805/1346/275 +f 796/1347/244 804/1407/244 803/1348/276 +f 794/1339/245 802/1338/245 801/1349/277 +f 799/1344/278 807/1343/278 806/1350/246 +f 850/1351/247 874/1408/247 873/1352/254 +f 865/1354/245 889/1364/245 888/1355/262 +f 858/1357/258 882/1366/258 881/1358/261 +f 851/1360/264 875/1368/264 874/1361/247 +f 866/1363/257 890/1370/257 889/1364/245 +f 859/1365/246 883/1375/246 882/1366/258 +f 852/1367/262 876/1377/262 875/1368/264 +f 867/1369/255 891/1379/255 890/1370/257 +f 845/1371/261 869/1381/261 868/1372/249 +f 860/1374/253 884/1383/253 883/1375/246 +f 853/1376/245 877/1385/245 876/1377/262 +f 856/1378/249 880/1400/249 891/1379/255 +f 846/1380/258 870/1387/258 869/1381/261 +f 861/1382/254 885/1389/254 884/1383/253 +f 854/1384/257 878/1391/257 877/1385/245 +f 847/1386/246 871/1393/246 870/1387/258 +f 862/1388/247 886/1409/247 885/1389/254 +f 855/1390/255 879/1397/255 878/1391/257 +f 848/1392/253 872/1398/253 871/1393/246 +f 863/1394/264 887/1399/264 886/1395/247 +f 844/1373/249 868/1372/249 879/1397/255 +f 849/1353/254 873/1352/254 872/1398/253 +f 864/1356/262 888/1355/262 887/1399/264 +f 857/1359/261 881/1358/261 880/1400/249 diff --git a/src/main/resources/assets/hbm/models/weapons/shredder.obj b/src/main/resources/assets/hbm/models/weapons/shredder.obj new file mode 100644 index 000000000..0017e8cfa --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/shredder.obj @@ -0,0 +1,5492 @@ +# Blender v2.79 (sub 0) OBJ File: 'shredder.blend' +# www.blender.org +o Magazine +v 0.000000 1.500000 0.500000 +v 0.956709 1.309699 0.500000 +v 1.767767 0.767767 0.500000 +v 2.309699 -0.043291 0.500000 +v 2.500000 -1.000000 0.500000 +v 2.309699 -1.956709 0.500000 +v 1.767767 -2.767767 0.500000 +v 0.956709 -3.309699 0.500000 +v 0.000000 -3.500000 0.500000 +v -0.956708 -3.309699 0.500000 +v -1.767766 -2.767767 0.500000 +v -2.309699 -1.956709 0.500000 +v -2.500000 -1.000000 0.500000 +v -2.309699 -0.043291 0.500000 +v -1.767766 0.767767 0.500000 +v -0.956707 1.309699 0.500000 +v 2.136471 -0.115044 -1.250000 +v 1.635184 0.635185 -1.250000 +v 0.884955 1.136472 -1.250000 +v 0.000000 1.312500 -1.250000 +v -0.884955 1.136472 -1.250000 +v -1.635184 0.635185 -1.250000 +v -2.136471 -0.115044 -1.250000 +v -2.312500 -1.000000 -1.250000 +v -2.136471 -1.884956 -1.250000 +v -1.635184 -2.635185 -1.250000 +v -0.884955 -3.136472 -1.250000 +v 0.000000 -3.312500 -1.250000 +v 0.884955 -3.136472 -1.250000 +v 1.635184 -2.635185 -1.250000 +v 2.312500 -1.000000 -1.250000 +v 2.136471 -1.884956 -1.250000 +v 2.136471 -0.115044 -0.875000 +v 1.635184 0.635185 -0.875000 +v 0.884955 1.136472 -0.875000 +v 0.000000 1.312500 -0.875000 +v -0.884955 1.136472 -0.875000 +v -1.635184 0.635185 -0.875000 +v -2.136471 -0.115044 -0.875000 +v -2.312500 -1.000000 -0.875000 +v -2.136471 -1.884956 -0.875000 +v -1.635184 -2.635185 -0.875000 +v -0.884955 -3.136472 -0.875000 +v 0.000000 -3.312500 -0.875000 +v 0.884955 -3.136472 -0.875000 +v 1.635184 -2.635185 -0.875000 +v 2.312500 -1.000000 -0.875000 +v 2.136471 -1.884956 -0.875000 +v 0.000000 1.125000 0.500000 +v -0.813202 0.963244 0.500000 +v -1.502602 0.502602 0.500000 +v -1.963244 -0.186798 0.500000 +v -2.125000 -1.000000 0.500000 +v -1.963244 -1.813203 0.500000 +v -1.502602 -2.502602 0.500000 +v -0.813202 -2.963244 0.500000 +v -0.000000 -3.125000 0.500000 +v 0.813202 -2.963244 0.500000 +v 1.502602 -2.502602 0.500000 +v 1.963244 -1.813203 0.500000 +v 2.125000 -1.000000 0.500000 +v 1.963244 -0.186797 0.500000 +v 1.502602 0.502602 0.500000 +v 0.813201 0.963244 0.500000 +v 0.956708 1.309699 -0.000000 +v 0.000000 1.500000 0.000000 +v 1.767767 0.767767 -0.000000 +v 2.309699 -0.043291 -0.000000 +v 2.500000 -1.000000 -0.000000 +v 2.309699 -1.956709 -0.000000 +v 1.767767 -2.767767 0.000000 +v 0.956709 -3.309699 0.000000 +v 0.000000 -3.500000 0.000000 +v -0.956708 -3.309699 0.000000 +v -1.767766 -2.767767 0.000000 +v -2.309699 -1.956709 0.000000 +v -2.500000 -1.000000 0.000000 +v -2.309699 -0.043291 0.000000 +v -1.767766 0.767767 0.000000 +v -0.956707 1.309699 0.000000 +v -0.813202 0.963244 0.375000 +v 0.000000 1.125000 0.375000 +v -1.502602 0.502602 0.375000 +v -1.963244 -0.186798 0.375000 +v -2.125000 -1.000000 0.375000 +v -1.963244 -1.813203 0.375000 +v -1.502602 -2.502602 0.375000 +v -0.813202 -2.963244 0.375000 +v -0.000000 -3.125000 0.375000 +v 0.813202 -2.963244 0.375000 +v 1.502602 -2.502602 0.375000 +v 1.963244 -1.813203 0.375000 +v 2.125000 -1.000000 0.375000 +v 1.963244 -0.186797 0.375000 +v 1.502602 0.502602 0.375000 +v 0.813201 0.963244 0.375000 +v 2.136471 -1.884956 0.375000 +v 2.312500 -1.000000 0.375000 +v 1.635184 -2.635185 0.375000 +v 0.884955 -3.136472 0.375000 +v 0.000000 -3.312500 0.375000 +v -0.884955 -3.136472 0.375000 +v -1.635184 -2.635185 0.375000 +v -2.136471 -1.884956 0.375000 +v -2.312500 -1.000000 0.375000 +v -2.136471 -0.115044 0.375000 +v -1.635184 0.635185 0.375000 +v -0.884955 1.136472 0.375000 +v 0.000000 1.312500 0.375000 +v 0.884955 1.136472 0.375000 +v 1.635184 0.635185 0.375000 +v 2.136471 -0.115044 0.375000 +v 2.136471 -1.884956 0.000000 +v 2.312500 -1.000000 0.000000 +v 1.635184 -2.635185 0.000000 +v 0.884955 -3.136472 0.000000 +v 0.000000 -3.312500 0.000000 +v -0.884955 -3.136472 0.000000 +v -1.635184 -2.635185 0.000000 +v -2.136471 -1.884956 0.000000 +v -2.312500 -1.000000 0.000000 +v -2.136471 -0.115044 0.000000 +v -1.635184 0.635185 0.000000 +v -0.884955 1.136472 0.000000 +v 0.000000 1.312500 0.000000 +v 0.884955 1.136472 0.000000 +v 1.635184 0.635185 0.000000 +v 2.136471 -0.115044 0.000000 +v 0.000000 0.875000 0.375000 +v -0.717532 0.732274 0.375000 +v -1.325825 0.325825 0.375000 +v -1.732274 -0.282469 0.375000 +v -1.875000 -1.000000 0.375000 +v -1.732274 -1.717532 0.375000 +v -1.325825 -2.325825 0.375000 +v -0.717532 -2.732274 0.375000 +v -0.000000 -2.875000 0.375000 +v 0.717531 -2.732275 0.375000 +v 1.325825 -2.325826 0.375000 +v 1.732274 -1.717532 0.375000 +v 1.875000 -1.000000 0.375000 +v 1.732274 -0.282468 0.375000 +v 1.325825 0.325826 0.375000 +v 0.717530 0.732274 0.375000 +v -0.717532 0.732274 0.500000 +v 0.000000 0.875000 0.500000 +v -1.325825 0.325825 0.500000 +v -1.732274 -0.282469 0.500000 +v -1.875000 -1.000000 0.500000 +v -1.732274 -1.717532 0.500000 +v -1.325825 -2.325825 0.500000 +v -0.717532 -2.732274 0.500000 +v -0.000000 -2.875000 0.500000 +v 0.717531 -2.732275 0.500000 +v 1.325825 -2.325826 0.500000 +v 1.732274 -1.717532 0.500000 +v 1.875000 -1.000000 0.500000 +v 1.732274 -0.282468 0.500000 +v 1.325825 0.325826 0.500000 +v 0.717530 0.732274 0.500000 +v 0.000000 0.875000 -1.375000 +v -0.717532 0.732274 -1.375000 +v -1.325825 0.325825 -1.375000 +v -1.732274 -0.282469 -1.375000 +v -1.875000 -1.000000 -1.375000 +v -1.732274 -1.717532 -1.375000 +v -1.325825 -2.325825 -1.375000 +v -0.717532 -2.732274 -1.375000 +v -0.000000 -2.875000 -1.375000 +v 0.717531 -2.732275 -1.375000 +v 1.325825 -2.325826 -1.375000 +v 1.732274 -1.717532 -1.375000 +v 1.875000 -1.000000 -1.375000 +v 1.732274 -0.282468 -1.375000 +v 1.325825 0.325826 -1.375000 +v 0.717530 0.732274 -1.375000 +v -0.717532 0.732274 -1.250000 +v 0.000000 0.875000 -1.250000 +v -1.325825 0.325825 -1.250000 +v -1.732274 -0.282469 -1.250000 +v -1.875000 -1.000000 -1.250000 +v -1.732274 -1.717532 -1.250000 +v -1.325825 -2.325825 -1.250000 +v -0.717532 -2.732274 -1.250000 +v -0.000000 -2.875000 -1.250000 +v 0.717531 -2.732275 -1.250000 +v 1.325825 -2.325826 -1.250000 +v 1.732274 -1.717532 -1.250000 +v 1.875000 -1.000000 -1.250000 +v 1.732274 -0.282468 -1.250000 +v 1.325825 0.325826 -1.250000 +v 0.717530 0.732274 -1.250000 +v 0.000000 1.500000 -0.875000 +v 0.956709 1.309699 -0.875000 +v 1.767767 0.767767 -0.875000 +v 2.309699 -0.043291 -0.875000 +v 2.500000 -1.000000 -0.875000 +v 2.309699 -1.956709 -0.875000 +v 1.767767 -2.767767 -0.875000 +v 0.956709 -3.309699 -0.875000 +v 0.000000 -3.500000 -0.875000 +v -0.956708 -3.309699 -0.875000 +v -1.767766 -2.767767 -0.875000 +v -2.309699 -1.956709 -0.875000 +v -2.500000 -1.000000 -0.875000 +v -2.309699 -0.043291 -0.875000 +v -1.767766 0.767767 -0.875000 +v -0.956707 1.309699 -0.875000 +v 0.956708 1.309699 -1.375000 +v 0.000000 1.500000 -1.375000 +v 1.767767 0.767767 -1.375000 +v 2.309699 -0.043291 -1.375000 +v 2.500000 -1.000000 -1.375000 +v 2.309699 -1.956709 -1.375000 +v 1.767767 -2.767767 -1.375000 +v 0.956709 -3.309699 -1.375000 +v 0.000000 -3.500000 -1.375000 +v -0.956708 -3.309699 -1.375000 +v -1.767766 -2.767767 -1.375000 +v -2.309699 -1.956709 -1.375000 +v -2.500000 -1.000000 -1.375000 +v -2.309699 -0.043291 -1.375000 +v -1.767766 0.767767 -1.375000 +v -0.956707 1.309699 -1.375000 +v 0.000000 1.125000 -1.250000 +v -0.813202 0.963244 -1.250000 +v -1.502602 0.502602 -1.250000 +v -1.963244 -0.186798 -1.250000 +v -2.125000 -1.000000 -1.250000 +v -1.963244 -1.813203 -1.250000 +v -1.502602 -2.502602 -1.250000 +v -0.813202 -2.963244 -1.250000 +v -0.000000 -3.125000 -1.250000 +v 0.813202 -2.963244 -1.250000 +v 1.502602 -2.502602 -1.250000 +v 1.963244 -1.813203 -1.250000 +v 2.125000 -1.000000 -1.250000 +v 1.963244 -0.186797 -1.250000 +v 1.502602 0.502602 -1.250000 +v 0.813201 0.963244 -1.250000 +v -0.813202 0.963244 -1.375000 +v 0.000000 1.125000 -1.375000 +v -1.502602 0.502602 -1.375000 +v -1.963244 -0.186798 -1.375000 +v -2.125000 -1.000000 -1.375000 +v -1.963244 -1.813203 -1.375000 +v -1.502602 -2.502602 -1.375000 +v -0.813202 -2.963244 -1.375000 +v -0.000000 -3.125000 -1.375000 +v 0.813202 -2.963244 -1.375000 +v 1.502602 -2.502602 -1.375000 +v 1.963244 -1.813203 -1.375000 +v 2.125000 -1.000000 -1.375000 +v 1.963244 -0.186797 -1.375000 +v 1.502602 0.502602 -1.375000 +v 0.813201 0.963244 -1.375000 +vt 0.904382 0.187500 +vt 0.892430 0.246094 +vt 0.892430 0.191406 +vt 0.950199 0.875000 +vt 0.944223 0.933594 +vt 0.944223 0.878906 +vt 0.944223 0.816406 +vt 0.950199 0.871094 +vt 0.944223 0.871094 +vt 0.944223 0.753906 +vt 0.950199 0.808594 +vt 0.944223 0.808594 +vt 0.944223 0.691406 +vt 0.950199 0.746094 +vt 0.944223 0.746094 +vt 0.944223 0.628906 +vt 0.950199 0.683594 +vt 0.944223 0.683594 +vt 0.944223 0.566406 +vt 0.950199 0.621094 +vt 0.944223 0.621094 +vt 0.944223 0.503906 +vt 0.950199 0.558594 +vt 0.944223 0.558594 +vt 0.944223 0.441406 +vt 0.950199 0.496094 +vt 0.944223 0.496094 +vt 0.944223 0.378906 +vt 0.950199 0.433594 +vt 0.944223 0.433594 +vt 0.944223 0.316406 +vt 0.950199 0.371094 +vt 0.944223 0.371094 +vt 0.944223 0.253906 +vt 0.950199 0.308594 +vt 0.944223 0.308594 +vt 0.944223 0.191406 +vt 0.950199 0.246094 +vt 0.944223 0.246094 +vt 0.944223 0.183594 +vt 0.950199 0.125000 +vt 0.950199 0.183594 +vt 0.944223 0.121094 +vt 0.950199 0.062500 +vt 0.950199 0.121094 +vt 0.944223 0.058594 +vt 0.950199 0.000000 +vt 0.950199 0.058594 +vt 0.944223 0.996094 +vt 0.950199 0.937500 +vt 0.950199 0.996094 +vt 0.968127 0.937500 +vt 0.962151 0.996094 +vt 0.962151 0.937500 +vt 0.962151 0.933594 +vt 0.968127 0.875000 +vt 0.962151 0.812500 +vt 0.968127 0.812500 +vt 0.962151 0.808594 +vt 0.968127 0.750000 +vt 0.962151 0.687500 +vt 0.968127 0.687500 +vt 0.962151 0.625000 +vt 0.968127 0.625000 +vt 0.962151 0.562500 +vt 0.968127 0.562500 +vt 0.962151 0.500000 +vt 0.968127 0.500000 +vt 0.962151 0.437500 +vt 0.968127 0.437500 +vt 0.962151 0.375000 +vt 0.968127 0.375000 +vt 0.962151 0.312500 +vt 0.968127 0.312500 +vt 0.962151 0.250000 +vt 0.968127 0.250000 +vt 0.962151 0.246094 +vt 0.968127 0.187500 +vt 0.962151 0.183594 +vt 0.968127 0.125000 +vt 0.962151 0.121094 +vt 0.968127 0.062500 +vt 0.962151 0.058594 +vt 0.968127 -0.000000 +vt 0.904382 0.125000 +vt 0.892430 0.183594 +vt 0.892430 0.128906 +vt 0.904382 0.062500 +vt 0.892430 0.121094 +vt 0.892430 0.066406 +vt 0.904382 -0.000000 +vt 0.892430 0.058594 +vt 0.892430 0.003906 +vt 0.904382 0.937500 +vt 0.892430 0.996094 +vt 0.892430 0.941406 +vt 0.904382 0.875000 +vt 0.892430 0.933594 +vt 0.892430 0.878906 +vt 0.904382 0.812500 +vt 0.892430 0.871094 +vt 0.892430 0.816406 +vt 0.892430 0.753906 +vt 0.904382 0.750000 +vt 0.892430 0.691406 +vt 0.904382 0.687500 +vt 0.892430 0.628906 +vt 0.904382 0.625000 +vt 0.892430 0.566406 +vt 0.904382 0.562500 +vt 0.892430 0.503906 +vt 0.904382 0.500000 +vt 0.892430 0.441406 +vt 0.904382 0.437500 +vt 0.892430 0.378906 +vt 0.904382 0.375000 +vt 0.892430 0.316406 +vt 0.904382 0.312500 +vt 0.892430 0.253906 +vt 0.904382 0.250000 +vt 0.944223 0.191406 +vt 0.938247 0.246094 +vt 0.938247 0.187500 +vt 0.938247 0.125000 +vt 0.944223 0.183594 +vt 0.938247 0.183594 +vt 0.938295 0.062694 +vt 0.944223 0.121094 +vt 0.938247 0.121094 +vt 0.938247 0.000000 +vt 0.944223 0.058594 +vt 0.938295 0.058027 +vt 0.938247 0.937500 +vt 0.944223 0.996094 +vt 0.938247 0.996094 +vt 0.938247 0.875000 +vt 0.944223 0.933594 +vt 0.938247 0.933594 +vt 0.938247 0.812500 +vt 0.944223 0.871094 +vt 0.938247 0.871094 +vt 0.944223 0.753906 +vt 0.938247 0.808594 +vt 0.938247 0.750000 +vt 0.944223 0.691406 +vt 0.938247 0.746094 +vt 0.938247 0.687500 +vt 0.944223 0.628906 +vt 0.938247 0.683594 +vt 0.938247 0.625000 +vt 0.944223 0.566406 +vt 0.938247 0.621094 +vt 0.938247 0.562500 +vt 0.944223 0.503906 +vt 0.938247 0.558594 +vt 0.938247 0.500000 +vt 0.944223 0.441406 +vt 0.938247 0.496094 +vt 0.938247 0.437500 +vt 0.944223 0.378906 +vt 0.938247 0.433594 +vt 0.938247 0.375000 +vt 0.944223 0.316406 +vt 0.938247 0.371094 +vt 0.938247 0.312500 +vt 0.944223 0.253906 +vt 0.938247 0.308594 +vt 0.938247 0.250000 +vt 0.920319 0.187500 +vt 0.926295 0.246094 +vt 0.920319 0.250000 +vt 0.920319 0.312500 +vt 0.926295 0.250000 +vt 0.926295 0.308594 +vt 0.920319 0.375000 +vt 0.926295 0.312500 +vt 0.926295 0.371094 +vt 0.920319 0.437500 +vt 0.926295 0.375000 +vt 0.926295 0.433594 +vt 0.920319 0.500000 +vt 0.926295 0.437500 +vt 0.926295 0.496094 +vt 0.920319 0.562500 +vt 0.926295 0.500000 +vt 0.926295 0.558594 +vt 0.920319 0.625000 +vt 0.926295 0.562500 +vt 0.926295 0.621094 +vt 0.920319 0.687500 +vt 0.926295 0.625000 +vt 0.926295 0.683594 +vt 0.926295 0.746094 +vt 0.920319 0.750000 +vt 0.926295 0.808594 +vt 0.920319 0.812500 +vt 0.926295 0.871094 +vt 0.920319 0.875000 +vt 0.926295 0.933594 +vt 0.920319 0.937500 +vt 0.926295 0.996094 +vt 0.920319 1.000000 +vt 0.920319 -0.000000 +vt 0.926295 0.058594 +vt 0.920319 0.062500 +vt 0.926295 0.121094 +vt 0.920319 0.125000 +vt 0.926295 0.183594 +vt 0.730756 0.268904 +vt 0.815061 0.268904 +vt 0.815061 0.434221 +vt 0.772909 0.000291 +vt 0.832521 0.117188 +vt 0.772909 0.234084 +vt 0.730756 0.034529 +vt 0.815061 0.034529 +vt 0.815061 0.199846 +vt 0.772909 0.234666 +vt 0.832521 0.351562 +vt 0.772908 0.468459 +vt 0.996016 0.378906 +vt 0.984064 0.437500 +vt 0.984064 0.375000 +vt 0.996016 0.441406 +vt 0.984064 0.500000 +vt 0.996016 0.503906 +vt 0.984064 0.562500 +vt 0.996016 0.566406 +vt 0.984064 0.625000 +vt 0.996016 0.628906 +vt 0.984064 0.687500 +vt 0.996016 0.691406 +vt 0.984064 0.750000 +vt 0.996016 0.753906 +vt 0.984064 0.812500 +vt 0.996016 0.871094 +vt 0.984064 0.875000 +vt 0.996016 0.933594 +vt 0.984064 0.937500 +vt 0.996016 0.996094 +vt 0.984064 1.000000 +vt 0.984064 -0.000000 +vt 0.996016 0.058594 +vt 0.984064 0.062500 +vt 0.996016 0.121094 +vt 0.984064 0.125000 +vt 0.996016 0.183594 +vt 0.984064 0.187500 +vt 0.996016 0.191406 +vt 0.984064 0.250000 +vt 0.996016 0.253906 +vt 0.984064 0.312500 +vt 0.996016 0.316406 +vt 0.950199 0.933594 +vt 0.950199 0.812500 +vt 0.950199 0.750000 +vt 0.950199 0.687500 +vt 0.950199 0.625000 +vt 0.950199 0.562500 +vt 0.950199 0.500000 +vt 0.950199 0.437500 +vt 0.950199 0.375000 +vt 0.950199 0.312500 +vt 0.950199 0.250000 +vt 0.950199 0.187500 +vt 0.944223 0.128906 +vt 0.944223 0.066406 +vt 0.944223 0.003906 +vt 0.944223 0.941406 +vt 0.968127 1.000000 +vt 0.962151 0.875000 +vt 0.962151 0.871094 +vt 0.962151 0.750000 +vt 0.962151 0.746094 +vt 0.962151 0.683594 +vt 0.962151 0.621094 +vt 0.962151 0.558594 +vt 0.962151 0.496094 +vt 0.962151 0.433594 +vt 0.962151 0.371094 +vt 0.962151 0.308594 +vt 0.962151 0.187500 +vt 0.962151 0.125000 +vt 0.962151 0.062500 +vt 0.962151 0.000000 +vt 0.904382 1.000000 +vt 0.892430 0.808594 +vt 0.892430 0.746094 +vt 0.892430 0.683594 +vt 0.892430 0.621094 +vt 0.892430 0.558594 +vt 0.892430 0.496094 +vt 0.892430 0.433594 +vt 0.892430 0.371094 +vt 0.892430 0.308594 +vt 0.944223 0.246094 +vt 0.944223 0.128906 +vt 0.944223 0.066406 +vt 0.944223 0.003906 +vt 0.944223 0.941406 +vt 0.944223 0.878906 +vt 0.944223 0.816406 +vt 0.944223 0.808594 +vt 0.944223 0.746094 +vt 0.944223 0.683594 +vt 0.944223 0.621094 +vt 0.944223 0.558594 +vt 0.944223 0.496094 +vt 0.944223 0.433594 +vt 0.944223 0.371094 +vt 0.944223 0.308594 +vt 0.926295 0.187500 +vt 0.926295 0.687500 +vt 0.926295 0.750000 +vt 0.926295 0.812500 +vt 0.926295 0.875000 +vt 0.926295 0.937500 +vt 0.926295 0.000000 +vt 0.926295 0.062500 +vt 0.926295 0.125000 +vt 0.795721 0.459561 +vt 0.772908 0.468459 +vt 0.750096 0.459561 +vt 0.730756 0.434221 +vt 0.717834 0.396297 +vt 0.713296 0.351562 +vt 0.717834 0.306828 +vt 0.750096 0.243564 +vt 0.772908 0.234666 +vt 0.795721 0.243564 +vt 0.827983 0.306828 +vt 0.832521 0.351563 +vt 0.827983 0.396297 +vt 0.750096 0.225186 +vt 0.730756 0.199846 +vt 0.717834 0.161922 +vt 0.713296 0.117187 +vt 0.717834 0.072453 +vt 0.730756 0.034529 +vt 0.750096 0.009189 +vt 0.795721 0.009189 +vt 0.815061 0.034529 +vt 0.827984 0.072453 +vt 0.827983 0.161922 +vt 0.815061 0.199846 +vt 0.795721 0.225186 +vt 0.795721 0.225186 +vt 0.772909 0.234084 +vt 0.750096 0.225186 +vt 0.730756 0.199846 +vt 0.717834 0.161922 +vt 0.713296 0.117188 +vt 0.717834 0.072453 +vt 0.750096 0.009189 +vt 0.772909 0.000291 +vt 0.795721 0.009189 +vt 0.827984 0.072453 +vt 0.832521 0.117188 +vt 0.827983 0.161922 +vt 0.750096 0.459561 +vt 0.730756 0.434221 +vt 0.717834 0.396297 +vt 0.713296 0.351562 +vt 0.717834 0.306828 +vt 0.730756 0.268904 +vt 0.750096 0.243564 +vt 0.795721 0.243564 +vt 0.815061 0.268904 +vt 0.827983 0.306828 +vt 0.827983 0.396297 +vt 0.815061 0.434221 +vt 0.795721 0.459561 +vt 0.996016 0.433594 +vt 0.996016 0.496094 +vt 0.996016 0.558594 +vt 0.996016 0.621094 +vt 0.996016 0.683594 +vt 0.996016 0.746094 +vt 0.996016 0.808594 +vt 0.996016 0.816406 +vt 0.996016 0.878906 +vt 0.996016 0.941406 +vt 0.996016 0.003906 +vt 0.996016 0.066406 +vt 0.996016 0.128906 +vt 0.996016 0.246094 +vt 0.996016 0.308594 +vt 0.996016 0.371094 +vt 0.888446 0.566406 +vt 0.888446 0.441406 +vt 0.888446 0.628906 +vt 0.888446 0.691406 +vt 0.888446 0.753906 +vt 0.888446 0.816406 +vt 0.888446 0.878906 +vt 0.888446 0.941406 +vt 0.888446 0.003906 +vt 0.888446 0.066406 +vt 0.888446 0.128906 +vt 0.888446 0.191406 +vt 0.888446 0.253906 +vt 0.888446 0.371094 +vt 0.888446 0.316406 +vt 0.888446 0.503906 +vt 0.888446 0.378906 +vt 0.836653 0.609375 +vt 0.832669 0.562500 +vt 0.836653 0.562500 +vt 0.836653 0.234375 +vt 0.832669 0.187500 +vt 0.836653 0.187500 +vt 0.836653 0.656250 +vt 0.832669 0.609375 +vt 0.836653 0.281250 +vt 0.832669 0.234375 +vt 0.832669 0.703125 +vt 0.832669 0.656250 +vt 0.836653 0.328125 +vt 0.832669 0.281250 +vt 0.836653 0.750000 +vt 0.836653 0.703125 +vt 0.836653 0.421875 +vt 0.832669 0.375000 +vt 0.836653 0.375000 +vt 0.832669 0.328125 +vt 0.836653 0.046875 +vt 0.832669 0.000000 +vt 0.836653 0.000000 +vt 0.836653 0.468750 +vt 0.832669 0.421875 +vt 0.836653 0.093750 +vt 0.832669 0.046875 +vt 0.836653 0.515625 +vt 0.832669 0.468750 +vt 0.836653 0.140625 +vt 0.832669 0.093750 +vt 0.832669 0.515625 +vt 0.832669 0.140625 +vt 0.832669 0.140625 +vt 0.836653 0.187500 +vt 0.832669 0.187500 +vt 0.832669 0.515625 +vt 0.836653 0.562500 +vt 0.832669 0.562500 +vt 0.832669 0.093750 +vt 0.836653 0.140625 +vt 0.832669 0.468750 +vt 0.836653 0.515625 +vt 0.836653 0.046875 +vt 0.836653 0.093750 +vt 0.832669 0.421875 +vt 0.836653 0.468750 +vt 0.832669 0.000000 +vt 0.832669 0.046875 +vt 0.832669 0.328125 +vt 0.836653 0.375000 +vt 0.832669 0.375000 +vt 0.836653 0.421875 +vt 0.832669 0.703125 +vt 0.836653 0.750000 +vt 0.832669 0.750000 +vt 0.832669 0.281250 +vt 0.836653 0.328125 +vt 0.832669 0.656250 +vt 0.836653 0.703125 +vt 0.832669 0.234375 +vt 0.836653 0.281250 +vt 0.832669 0.609375 +vt 0.836653 0.656250 +vt 0.836653 0.234375 +vt 0.836653 0.609375 +vt 1.000000 0.621094 +vt 1.000000 0.566406 +vt 1.000000 0.441406 +vt 1.000000 0.683594 +vt 1.000000 0.628906 +vt 1.000000 0.746094 +vt 1.000000 0.691406 +vt 1.000000 0.808594 +vt 1.000000 0.753906 +vt 1.000000 0.871094 +vt 1.000000 0.816406 +vt 1.000000 0.933594 +vt 1.000000 0.878906 +vt 1.000000 0.996094 +vt 1.000000 0.941406 +vt 1.000000 0.058594 +vt 1.000000 0.003906 +vt 1.000000 0.121094 +vt 1.000000 0.066406 +vt 1.000000 0.183594 +vt 1.000000 0.128906 +vt 1.000000 0.246094 +vt 1.000000 0.191406 +vt 1.000000 0.308594 +vt 1.000000 0.253906 +vt 1.000000 0.316406 +vt 1.000000 0.558594 +vt 1.000000 0.503906 +vt 1.000000 0.378906 +vt 0.888446 0.621094 +vt 0.888446 0.496094 +vt 0.888446 0.683594 +vt 0.888446 0.746094 +vt 0.888446 0.808594 +vt 0.888446 0.871094 +vt 0.888446 0.933594 +vt 0.888446 0.996094 +vt 0.888446 0.058594 +vt 0.888446 0.121094 +vt 0.888446 0.183594 +vt 0.888446 0.246094 +vt 0.888446 0.308594 +vt 0.888446 0.558594 +vt 0.888446 0.433594 +vt 0.832669 0.750000 +vt 0.836653 0.000000 +vt 1.000000 0.496094 +vt 1.000000 0.371094 +vt 1.000000 0.433594 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9239 -0.3827 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.0000 1.0000 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.9239 -0.3827 0.0000 +s off +f 6/1/1 61/2/1 60/3/1 +f 26/4/1 232/5/1 231/6/1 +f 230/7/1 26/8/1 231/9/1 +f 229/10/1 25/11/1 230/12/1 +f 228/13/1 24/14/1 229/15/1 +f 227/16/1 23/17/1 228/18/1 +f 226/19/1 22/20/1 227/21/1 +f 225/22/1 21/23/1 226/24/1 +f 240/25/1 20/26/1 225/27/1 +f 239/28/1 19/29/1 240/30/1 +f 238/31/1 18/32/1 239/33/1 +f 237/34/1 17/35/1 238/36/1 +f 236/37/1 31/38/1 237/39/1 +f 236/40/1 30/41/1 32/42/1 +f 235/43/1 29/44/1 30/45/1 +f 234/46/1 28/47/1 29/48/1 +f 233/49/1 27/50/1 28/51/1 +f 202/52/1 44/53/1 43/54/1 +f 43/55/1 203/56/1 202/52/1 +f 203/56/1 41/57/1 204/58/1 +f 41/59/1 205/60/1 204/58/1 +f 205/60/1 39/61/1 206/62/1 +f 206/62/1 38/63/1 207/64/1 +f 207/64/1 37/65/1 208/66/1 +f 208/66/1 36/67/1 193/68/1 +f 193/68/1 35/69/1 194/70/1 +f 194/70/1 34/71/1 195/72/1 +f 195/72/1 33/73/1 196/74/1 +f 196/74/1 47/75/1 197/76/1 +f 47/77/1 198/78/1 197/76/1 +f 48/79/1 199/80/1 198/78/1 +f 46/81/1 200/82/1 199/80/1 +f 45/83/1 201/84/1 200/82/1 +f 7/85/1 60/86/1 59/87/1 +f 8/88/1 59/89/1 58/90/1 +f 9/91/1 58/92/1 57/93/1 +f 10/94/1 57/95/1 56/96/1 +f 11/97/1 56/98/1 55/99/1 +f 12/100/1 55/101/1 54/102/1 +f 12/100/1 53/103/1 13/104/1 +f 13/104/1 52/105/1 14/106/1 +f 14/106/1 51/107/1 15/108/1 +f 15/108/1 50/109/1 16/110/1 +f 16/110/1 49/111/1 1/112/1 +f 1/112/1 64/113/1 2/114/1 +f 2/114/1 63/115/1 3/116/1 +f 3/116/1 62/117/1 4/118/1 +f 4/118/1 61/119/1 5/120/1 +f 92/121/2 98/122/2 97/123/2 +f 99/124/2 92/125/2 97/126/2 +f 100/127/2 91/128/2 99/129/2 +f 101/130/2 90/131/2 100/132/2 +f 102/133/2 89/134/2 101/135/2 +f 103/136/2 88/137/2 102/138/2 +f 104/139/2 87/140/2 103/141/2 +f 85/142/2 104/143/2 105/144/2 +f 84/145/2 105/146/2 106/147/2 +f 83/148/2 106/149/2 107/150/2 +f 81/151/2 107/152/2 108/153/2 +f 82/154/2 108/155/2 109/156/2 +f 96/157/2 109/158/2 110/159/2 +f 95/160/2 110/161/2 111/162/2 +f 94/163/2 111/164/2 112/165/2 +f 93/166/2 112/167/2 98/168/2 +f 70/169/2 114/170/2 69/171/2 +f 68/172/2 114/173/2 128/174/2 +f 67/175/2 128/176/2 127/177/2 +f 65/178/2 127/179/2 126/180/2 +f 66/181/2 126/182/2 125/183/2 +f 80/184/2 125/185/2 124/186/2 +f 79/187/2 124/188/2 123/189/2 +f 78/190/2 123/191/2 122/192/2 +f 78/190/2 121/193/2 77/194/2 +f 77/194/2 120/195/2 76/196/2 +f 76/196/2 119/197/2 75/198/2 +f 75/198/2 118/199/2 74/200/2 +f 74/200/2 117/201/2 73/202/2 +f 73/203/2 116/204/2 72/205/2 +f 72/205/2 115/206/2 71/207/2 +f 71/207/2 113/208/2 70/169/2 +f 139/209/2 135/210/2 131/211/2 +f 153/212/1 157/213/1 146/214/1 +f 171/215/2 167/216/2 163/217/2 +f 185/218/1 189/219/1 178/220/1 +f 255/221/2 209/222/2 211/223/2 +f 256/224/2 210/225/2 209/222/2 +f 242/226/2 224/227/2 210/225/2 +f 241/228/2 223/229/2 224/227/2 +f 243/230/2 222/231/2 223/229/2 +f 244/232/2 221/233/2 222/231/2 +f 245/234/2 220/235/2 221/233/2 +f 220/235/2 247/236/2 219/237/2 +f 219/237/2 248/238/2 218/239/2 +f 218/239/2 249/240/2 217/241/2 +f 217/242/2 250/243/2 216/244/2 +f 216/244/2 251/245/2 215/246/2 +f 215/246/2 252/247/2 214/248/2 +f 252/249/2 213/250/2 214/248/2 +f 253/251/2 212/252/2 213/250/2 +f 254/253/2 211/223/2 212/252/2 +f 6/1/1 5/120/1 61/2/1 +f 26/4/1 27/254/1 232/5/1 +f 230/7/1 25/255/1 26/8/1 +f 229/10/1 24/256/1 25/11/1 +f 228/13/1 23/257/1 24/14/1 +f 227/16/1 22/258/1 23/17/1 +f 226/19/1 21/259/1 22/20/1 +f 225/22/1 20/260/1 21/23/1 +f 240/25/1 19/261/1 20/26/1 +f 239/28/1 18/262/1 19/29/1 +f 238/31/1 17/263/1 18/32/1 +f 237/34/1 31/264/1 17/35/1 +f 236/37/1 32/265/1 31/38/1 +f 236/40/1 235/266/1 30/41/1 +f 235/43/1 234/267/1 29/44/1 +f 234/46/1 233/268/1 28/47/1 +f 233/49/1 232/269/1 27/50/1 +f 202/52/1 201/270/1 44/53/1 +f 43/55/1 42/271/1 203/56/1 +f 203/56/1 42/272/1 41/57/1 +f 41/59/1 40/273/1 205/60/1 +f 205/60/1 40/274/1 39/61/1 +f 206/62/1 39/275/1 38/63/1 +f 207/64/1 38/276/1 37/65/1 +f 208/66/1 37/277/1 36/67/1 +f 193/68/1 36/278/1 35/69/1 +f 194/70/1 35/279/1 34/71/1 +f 195/72/1 34/280/1 33/73/1 +f 196/74/1 33/281/1 47/75/1 +f 47/77/1 48/282/1 198/78/1 +f 48/79/1 46/283/1 199/80/1 +f 46/81/1 45/284/1 200/82/1 +f 45/83/1 44/285/1 201/84/1 +f 7/85/1 6/1/1 60/86/1 +f 8/88/1 7/85/1 59/89/1 +f 9/91/1 8/88/1 58/92/1 +f 10/94/1 9/286/1 57/95/1 +f 11/97/1 10/94/1 56/98/1 +f 12/100/1 11/97/1 55/101/1 +f 12/100/1 54/287/1 53/103/1 +f 13/104/1 53/288/1 52/105/1 +f 14/106/1 52/289/1 51/107/1 +f 15/108/1 51/290/1 50/109/1 +f 16/110/1 50/291/1 49/111/1 +f 1/112/1 49/292/1 64/113/1 +f 2/114/1 64/293/1 63/115/1 +f 3/116/1 63/294/1 62/117/1 +f 4/118/1 62/295/1 61/119/1 +f 92/121/2 93/296/2 98/122/2 +f 99/124/2 91/297/2 92/125/2 +f 100/127/2 90/298/2 91/128/2 +f 101/130/2 89/299/2 90/131/2 +f 102/133/2 88/300/2 89/134/2 +f 103/136/2 87/301/2 88/137/2 +f 104/139/2 86/302/2 87/140/2 +f 85/142/2 86/303/2 104/143/2 +f 84/145/2 85/304/2 105/146/2 +f 83/148/2 84/305/2 106/149/2 +f 81/151/2 83/306/2 107/152/2 +f 82/154/2 81/307/2 108/155/2 +f 96/157/2 82/308/2 109/158/2 +f 95/160/2 96/309/2 110/161/2 +f 94/163/2 95/310/2 111/164/2 +f 93/166/2 94/311/2 112/167/2 +f 70/169/2 113/312/2 114/170/2 +f 68/172/2 69/171/2 114/173/2 +f 67/175/2 68/172/2 128/176/2 +f 65/178/2 67/175/2 127/179/2 +f 66/181/2 65/178/2 126/182/2 +f 80/184/2 66/181/2 125/185/2 +f 79/187/2 80/184/2 124/188/2 +f 78/190/2 79/187/2 123/191/2 +f 78/190/2 122/313/2 121/193/2 +f 77/194/2 121/314/2 120/195/2 +f 76/196/2 120/315/2 119/197/2 +f 75/198/2 119/316/2 118/199/2 +f 74/200/2 118/317/2 117/201/2 +f 73/203/2 117/318/2 116/204/2 +f 72/205/2 116/319/2 115/206/2 +f 71/207/2 115/320/2 113/208/2 +f 131/211/2 130/321/2 129/322/2 +f 129/322/2 144/323/2 131/211/2 +f 144/323/2 143/324/2 131/211/2 +f 143/324/2 142/325/2 139/209/2 +f 142/325/2 141/326/2 139/209/2 +f 141/326/2 140/327/2 139/209/2 +f 139/209/2 138/328/2 135/210/2 +f 138/328/2 137/329/2 135/210/2 +f 137/329/2 136/330/2 135/210/2 +f 135/210/2 134/331/2 131/211/2 +f 134/331/2 133/332/2 131/211/2 +f 133/332/2 132/333/2 131/211/2 +f 131/211/2 143/324/2 139/209/2 +f 146/214/1 145/334/1 147/335/1 +f 147/335/1 148/336/1 149/337/1 +f 149/337/1 150/338/1 151/339/1 +f 151/339/1 152/340/1 153/212/1 +f 153/212/1 154/341/1 157/213/1 +f 154/341/1 155/342/1 157/213/1 +f 155/342/1 156/343/1 157/213/1 +f 157/213/1 158/344/1 159/345/1 +f 159/345/1 160/346/1 157/213/1 +f 160/346/1 146/214/1 157/213/1 +f 146/214/1 147/335/1 149/337/1 +f 149/337/1 151/339/1 146/214/1 +f 151/339/1 153/212/1 146/214/1 +f 163/217/2 162/347/2 161/348/2 +f 161/348/2 176/349/2 163/217/2 +f 176/349/2 175/350/2 163/217/2 +f 175/350/2 174/351/2 171/215/2 +f 174/351/2 173/352/2 171/215/2 +f 173/352/2 172/353/2 171/215/2 +f 171/215/2 170/354/2 167/216/2 +f 170/354/2 169/355/2 167/216/2 +f 169/355/2 168/356/2 167/216/2 +f 167/216/2 166/357/2 163/217/2 +f 166/357/2 165/358/2 163/217/2 +f 165/358/2 164/359/2 163/217/2 +f 163/217/2 175/350/2 171/215/2 +f 178/220/1 177/360/1 179/361/1 +f 179/361/1 180/362/1 181/363/1 +f 181/363/1 182/364/1 183/365/1 +f 183/365/1 184/366/1 185/218/1 +f 185/218/1 186/367/1 187/368/1 +f 187/368/1 188/369/1 189/219/1 +f 189/219/1 190/370/1 191/371/1 +f 191/371/1 192/372/1 189/219/1 +f 192/372/1 178/220/1 189/219/1 +f 178/220/1 179/361/1 181/363/1 +f 181/363/1 183/365/1 178/220/1 +f 183/365/1 185/218/1 178/220/1 +f 185/218/1 187/368/1 189/219/1 +f 255/221/2 256/373/2 209/222/2 +f 256/224/2 242/374/2 210/225/2 +f 242/226/2 241/375/2 224/227/2 +f 241/228/2 243/376/2 223/229/2 +f 243/230/2 244/377/2 222/231/2 +f 244/232/2 245/378/2 221/233/2 +f 245/234/2 246/379/2 220/235/2 +f 220/235/2 246/380/2 247/236/2 +f 219/237/2 247/381/2 248/238/2 +f 218/239/2 248/382/2 249/240/2 +f 217/242/2 249/383/2 250/243/2 +f 216/244/2 250/384/2 251/245/2 +f 215/246/2 251/385/2 252/247/2 +f 252/249/2 253/386/2 213/250/2 +f 253/251/2 254/387/2 212/252/2 +f 254/253/2 255/388/2 211/223/2 +s 1 +f 33/281/3 31/264/4 47/75/4 +f 47/77/4 32/265/5 48/282/5 +f 41/59/6 24/256/7 40/273/7 +f 34/280/8 17/263/3 33/73/3 +f 42/272/9 25/255/6 41/57/6 +f 35/279/10 18/262/8 34/71/8 +f 43/55/11 26/4/9 42/271/9 +f 36/278/12 19/261/10 35/69/10 +f 44/53/13 27/50/11 43/54/11 +f 37/277/14 20/260/12 36/67/12 +f 45/83/15 28/47/13 44/285/13 +f 38/276/16 21/259/14 37/65/14 +f 46/81/17 29/44/15 45/284/15 +f 39/275/18 22/258/16 38/63/16 +f 48/79/5 30/41/17 46/283/17 +f 40/274/7 23/257/18 39/61/18 +f 6/1/18 71/207/16 70/169/18 +f 51/290/16 81/389/14 50/109/14 +f 49/292/12 96/390/10 64/113/10 +f 8/88/14 71/207/16 7/85/16 +f 52/289/18 83/391/16 51/107/16 +f 9/91/12 72/205/14 8/88/14 +f 53/288/7 84/392/18 52/105/18 +f 10/94/10 73/202/12 9/286/12 +f 54/287/6 85/393/7 53/103/7 +f 11/97/8 74/200/10 10/94/10 +f 55/101/9 86/394/6 54/102/6 +f 12/100/3 75/198/8 11/97/8 +f 56/98/11 87/395/9 55/99/9 +f 13/104/4 76/196/3 12/100/3 +f 57/95/13 88/396/11 56/96/11 +f 14/106/5 77/194/4 13/104/4 +f 58/92/15 89/397/13 57/93/13 +f 14/106/5 79/187/17 78/190/5 +f 59/89/17 90/398/15 58/90/15 +f 1/112/13 65/178/11 66/181/13 +f 16/110/15 79/187/17 15/108/17 +f 60/86/5 91/399/17 59/87/17 +f 2/114/11 67/175/9 65/178/11 +f 1/112/13 80/184/15 16/110/15 +f 61/2/4 92/400/5 60/3/5 +f 4/118/6 67/175/9 3/116/9 +f 62/295/3 93/401/4 61/119/4 +f 5/120/7 68/172/6 4/118/6 +f 62/117/3 95/402/8 94/403/3 +f 6/1/18 69/171/7 5/120/7 +f 50/291/14 82/404/12 49/111/12 +f 64/293/10 95/405/8 63/115/8 +f 105/146/7 122/313/18 106/147/18 +f 97/126/5 115/320/17 99/124/17 +f 106/149/18 123/191/16 107/150/16 +f 99/129/17 116/319/15 100/127/15 +f 107/152/16 124/188/14 108/153/14 +f 100/132/15 117/318/13 101/130/13 +f 108/155/14 125/185/12 109/156/12 +f 101/135/13 118/317/11 102/133/11 +f 109/158/12 126/182/10 110/159/10 +f 102/138/11 119/316/9 103/136/9 +f 110/161/10 127/179/8 111/162/8 +f 103/141/9 120/315/6 104/139/6 +f 111/164/8 128/176/3 112/165/3 +f 104/143/6 121/314/7 105/144/7 +f 98/122/4 113/312/5 97/123/5 +f 112/167/3 114/173/4 98/168/4 +f 134/406/3 149/407/4 133/408/4 +f 142/409/6 157/410/7 141/411/7 +f 135/412/8 150/413/3 134/406/3 +f 143/414/9 158/415/6 142/409/6 +f 135/412/8 152/416/10 151/417/8 +f 144/418/11 159/419/9 143/414/9 +f 137/420/12 152/416/10 136/421/10 +f 130/422/15 146/423/13 129/424/13 +f 129/424/13 160/425/11 144/418/11 +f 138/426/14 153/427/12 137/428/12 +f 131/429/17 145/430/15 130/422/15 +f 139/431/16 154/432/14 138/426/14 +f 132/433/5 147/434/17 131/429/17 +f 140/435/18 155/436/16 139/431/16 +f 133/408/4 148/437/5 132/433/5 +f 141/411/7 156/438/18 140/435/18 +f 166/439/3 181/440/4 165/441/4 +f 174/442/6 189/443/7 173/444/7 +f 167/445/8 182/446/3 166/439/3 +f 175/447/9 190/448/6 174/442/6 +f 167/445/8 184/449/10 183/450/8 +f 176/451/11 191/452/9 175/447/9 +f 169/453/12 184/449/10 168/454/10 +f 162/455/15 178/456/13 161/457/13 +f 161/457/13 192/458/11 176/451/11 +f 170/459/14 185/460/12 169/461/12 +f 163/462/17 177/463/15 162/455/15 +f 171/464/16 186/465/14 170/459/14 +f 164/466/5 179/467/17 163/462/17 +f 172/468/18 187/469/16 171/464/16 +f 165/441/4 180/470/5 164/466/5 +f 173/444/7 188/471/18 172/468/18 +f 198/78/18 215/246/16 214/248/18 +f 200/82/14 215/246/16 199/80/16 +f 201/84/12 216/244/14 200/82/14 +f 202/52/10 217/241/12 201/270/12 +f 203/56/8 218/239/10 202/52/10 +f 204/58/3 219/237/8 203/56/8 +f 205/60/4 220/235/3 204/58/3 +f 206/62/5 221/233/4 205/60/4 +f 206/62/5 223/229/17 222/231/5 +f 194/70/11 210/225/13 193/68/13 +f 208/66/15 223/229/17 207/64/17 +f 194/70/11 211/223/9 209/222/11 +f 193/68/13 224/227/15 208/66/15 +f 196/74/6 211/223/9 195/72/9 +f 197/76/7 212/252/6 196/74/6 +f 198/78/18 213/250/7 197/76/7 +f 227/472/16 241/228/14 226/473/14 +f 240/474/10 242/374/12 256/224/10 +f 228/475/18 243/230/16 227/476/16 +f 229/477/7 244/232/18 228/478/18 +f 230/479/6 245/234/7 229/480/7 +f 231/481/9 246/380/6 230/482/6 +f 232/483/11 247/381/9 231/484/9 +f 233/485/13 248/382/11 232/486/11 +f 234/487/15 249/383/13 233/488/13 +f 235/489/17 250/384/15 234/490/15 +f 236/491/5 251/385/17 235/492/17 +f 237/493/4 252/249/5 236/494/5 +f 238/495/3 253/251/4 237/496/4 +f 238/497/3 255/388/8 254/253/3 +f 226/498/14 242/226/12 225/499/12 +f 239/500/8 256/373/10 255/221/8 +f 33/281/3 17/35/3 31/264/4 +f 47/77/4 31/38/4 32/265/5 +f 41/59/6 25/11/6 24/256/7 +f 34/280/8 18/32/8 17/263/3 +f 42/272/9 26/8/9 25/255/6 +f 35/279/10 19/29/10 18/262/8 +f 43/55/11 27/254/11 26/4/9 +f 36/278/12 20/26/12 19/261/10 +f 44/53/13 28/51/13 27/50/11 +f 37/277/14 21/23/14 20/260/12 +f 45/83/15 29/48/15 28/47/13 +f 38/276/16 22/20/16 21/259/14 +f 46/81/17 30/45/17 29/44/15 +f 39/275/18 23/17/18 22/258/16 +f 48/79/5 32/42/5 30/41/17 +f 40/274/7 24/14/7 23/257/18 +f 6/1/18 7/85/16 71/207/16 +f 51/290/16 83/501/16 81/389/14 +f 49/292/12 82/502/12 96/390/10 +f 8/88/14 72/205/14 71/207/16 +f 52/289/18 84/503/18 83/391/16 +f 9/91/12 73/203/12 72/205/14 +f 53/288/7 85/504/7 84/392/18 +f 10/94/10 74/200/10 73/202/12 +f 54/287/6 86/505/6 85/393/7 +f 11/97/8 75/198/8 74/200/10 +f 55/101/9 87/506/9 86/394/6 +f 12/100/3 76/196/3 75/198/8 +f 56/98/11 88/507/11 87/395/9 +f 13/104/4 77/194/4 76/196/3 +f 57/95/13 89/508/13 88/396/11 +f 14/106/5 78/190/5 77/194/4 +f 58/92/15 90/509/15 89/397/13 +f 14/106/5 15/108/17 79/187/17 +f 59/89/17 91/510/17 90/398/15 +f 1/112/13 2/114/11 65/178/11 +f 16/110/15 80/184/15 79/187/17 +f 60/86/5 92/511/5 91/399/17 +f 2/114/11 3/116/9 67/175/9 +f 1/112/13 66/181/13 80/184/15 +f 61/2/4 93/512/4 92/400/5 +f 4/118/6 68/172/6 67/175/9 +f 62/295/3 94/513/3 93/401/4 +f 5/120/7 69/171/7 68/172/6 +f 62/117/3 63/294/8 95/402/8 +f 6/1/18 70/169/18 69/171/7 +f 50/291/14 81/514/14 82/404/12 +f 64/293/10 96/515/10 95/405/8 +f 105/146/7 121/193/7 122/313/18 +f 97/126/5 113/208/5 115/320/17 +f 106/149/18 122/192/18 123/191/16 +f 99/129/17 115/206/17 116/319/15 +f 107/152/16 123/189/16 124/188/14 +f 100/132/15 116/204/15 117/318/13 +f 108/155/14 124/186/14 125/185/12 +f 101/135/13 117/201/13 118/317/11 +f 109/158/12 125/183/12 126/182/10 +f 102/138/11 118/199/11 119/316/9 +f 110/161/10 126/180/10 127/179/8 +f 103/141/9 119/197/9 120/315/6 +f 111/164/8 127/177/8 128/176/3 +f 104/143/6 120/195/6 121/314/7 +f 98/122/4 114/170/4 113/312/5 +f 112/167/3 128/174/3 114/173/4 +f 134/406/3 150/413/3 149/407/4 +f 142/409/6 158/415/6 157/410/7 +f 135/412/8 151/417/8 150/413/3 +f 143/414/9 159/419/9 158/415/6 +f 135/412/8 136/421/10 152/416/10 +f 144/418/11 160/425/11 159/419/9 +f 137/420/12 153/516/12 152/416/10 +f 130/422/15 145/430/15 146/423/13 +f 129/424/13 146/423/13 160/425/11 +f 138/426/14 154/432/14 153/427/12 +f 131/429/17 147/434/17 145/430/15 +f 139/431/16 155/436/16 154/432/14 +f 132/433/5 148/437/5 147/434/17 +f 140/435/18 156/438/18 155/436/16 +f 133/408/4 149/407/4 148/437/5 +f 141/411/7 157/410/7 156/438/18 +f 166/439/3 182/446/3 181/440/4 +f 174/442/6 190/448/6 189/443/7 +f 167/445/8 183/450/8 182/446/3 +f 175/447/9 191/452/9 190/448/6 +f 167/445/8 168/454/10 184/449/10 +f 176/451/11 192/458/11 191/452/9 +f 169/453/12 185/517/12 184/449/10 +f 162/455/15 177/463/15 178/456/13 +f 161/457/13 178/456/13 192/458/11 +f 170/459/14 186/465/14 185/460/12 +f 163/462/17 179/467/17 177/463/15 +f 171/464/16 187/469/16 186/465/14 +f 164/466/5 180/470/5 179/467/17 +f 172/468/18 188/471/18 187/469/16 +f 165/441/4 181/440/4 180/470/5 +f 173/444/7 189/443/7 188/471/18 +f 198/78/18 199/80/16 215/246/16 +f 200/82/14 216/244/14 215/246/16 +f 201/84/12 217/242/12 216/244/14 +f 202/52/10 218/239/10 217/241/12 +f 203/56/8 219/237/8 218/239/10 +f 204/58/3 220/235/3 219/237/8 +f 205/60/4 221/233/4 220/235/3 +f 206/62/5 222/231/5 221/233/4 +f 206/62/5 207/64/17 223/229/17 +f 194/70/11 209/222/11 210/225/13 +f 208/66/15 224/227/15 223/229/17 +f 194/70/11 195/72/9 211/223/9 +f 193/68/13 210/225/13 224/227/15 +f 196/74/6 212/252/6 211/223/9 +f 197/76/7 213/250/7 212/252/6 +f 198/78/18 214/248/18 213/250/7 +f 227/472/16 243/376/16 241/228/14 +f 240/474/10 225/518/12 242/374/12 +f 228/475/18 244/377/18 243/230/16 +f 229/477/7 245/378/7 244/232/18 +f 230/479/6 246/379/6 245/234/7 +f 231/481/9 247/236/9 246/380/6 +f 232/483/11 248/238/11 247/381/9 +f 233/485/13 249/240/13 248/382/11 +f 234/487/15 250/243/15 249/383/13 +f 235/489/17 251/245/17 250/384/15 +f 236/491/5 252/247/5 251/385/17 +f 237/493/4 253/386/4 252/249/5 +f 238/495/3 254/387/3 253/251/4 +f 238/497/3 239/519/8 255/388/8 +f 226/498/14 241/375/14 242/226/12 +f 239/500/8 240/520/10 256/373/10 +o Shells +v 0.000000 1.250000 0.375000 +v -0.176777 1.176777 0.375000 +v -0.250000 1.000000 0.375000 +v -0.176777 0.823223 0.375000 +v 0.000000 0.750000 0.375000 +v 0.176777 0.823223 0.375000 +v 0.250000 1.000000 0.375000 +v 0.176777 1.176777 0.375000 +v 0.000000 1.250000 -1.125000 +v -0.176777 1.176777 -1.125000 +v -0.250000 1.000000 -1.125000 +v -0.176777 0.823223 -1.125000 +v 0.000000 0.750000 -1.125000 +v 0.176777 0.823223 -1.125000 +v 0.250000 1.000000 -1.125000 +v 0.176777 1.176777 -1.125000 +v 0.000000 1.312500 -1.125000 +v -0.220971 1.220971 -1.125000 +v -0.312500 1.000000 -1.125000 +v -0.220971 0.779029 -1.125000 +v 0.000000 0.687500 -1.125000 +v 0.220971 0.779029 -1.125000 +v 0.312500 1.000000 -1.125000 +v 0.220971 1.220971 -1.125000 +v 0.000000 1.312500 -1.250000 +v -0.220971 1.220971 -1.250000 +v -0.312500 1.000000 -1.250000 +v -0.220971 0.779029 -1.250000 +v 0.000000 0.687500 -1.250000 +v 0.220971 0.779029 -1.250000 +v 0.312500 1.000000 -1.250000 +v 0.220971 1.220971 -1.250000 +v 0.000000 0.750000 0.375000 +v -0.669696 0.616789 0.375000 +v -1.237437 0.237437 0.375000 +v -1.616789 -0.330304 0.375000 +v -1.750000 -1.000000 0.375000 +v -1.616789 -1.669696 0.375000 +v -1.237437 -2.237437 0.375000 +v -0.669696 -2.616789 0.375000 +v -0.000000 -2.750000 0.375000 +v 0.669696 -2.616789 0.375000 +v 1.237436 -2.237437 0.375000 +v 1.616789 -1.669696 0.375000 +v 1.750000 -1.000000 0.375000 +v 1.616789 -0.330304 0.375000 +v 1.237436 0.237437 0.375000 +v 0.669695 0.616789 0.375000 +v 0.000000 0.750000 -1.250000 +v -0.669696 0.616789 -1.250000 +v -1.237437 0.237437 -1.250000 +v -1.616789 -0.330304 -1.250000 +v -1.750000 -1.000000 -1.250000 +v -1.616789 -1.669696 -1.250000 +v -1.237437 -2.237437 -1.250000 +v -0.669696 -2.616789 -1.250000 +v -0.000000 -2.750000 -1.250000 +v 0.669696 -2.616789 -1.250000 +v 1.237436 -2.237437 -1.250000 +v 1.616789 -1.669696 -1.250000 +v 1.750000 -1.000000 -1.250000 +v 1.616789 -0.330304 -1.250000 +v 1.237436 0.237437 -1.250000 +v 0.669695 0.616789 -1.250000 +v 0.695288 1.139877 0.375000 +v 0.504536 1.124865 0.375000 +v 0.380270 0.979367 0.375000 +v 0.395282 0.788616 0.375000 +v 0.540780 0.664349 0.375000 +v 0.731532 0.679361 0.375000 +v 0.855798 0.824859 0.375000 +v 0.840786 1.015611 0.375000 +v 0.695288 1.139877 -1.125000 +v 0.504536 1.124865 -1.125000 +v 0.380270 0.979367 -1.125000 +v 0.395282 0.788616 -1.125000 +v 0.540780 0.664349 -1.125000 +v 0.731532 0.679361 -1.125000 +v 0.855798 0.824859 -1.125000 +v 0.840786 1.015611 -1.125000 +v 0.714602 1.199318 -1.125000 +v 0.476162 1.180553 -1.125000 +v 0.320829 0.998681 -1.125000 +v 0.339595 0.760241 -1.125000 +v 0.521466 0.604908 -1.125000 +v 0.759906 0.623673 -1.125000 +v 0.915239 0.805545 -1.125000 +v 0.896474 1.043985 -1.125000 +v 0.714602 1.199318 -1.250000 +v 0.476162 1.180553 -1.250000 +v 0.320829 0.998681 -1.250000 +v 0.339595 0.760241 -1.250000 +v 0.521466 0.604908 -1.250000 +v 0.759906 0.623673 -1.250000 +v 0.915239 0.805545 -1.250000 +v 0.896474 1.043985 -1.250000 +v 1.322517 0.820288 0.375000 +v 1.136462 0.864956 0.375000 +v 0.973316 0.764980 0.375000 +v 0.928648 0.578926 0.375000 +v 1.028624 0.415780 0.375000 +v 1.214680 0.371112 0.375000 +v 1.377825 0.471088 0.375000 +v 1.422493 0.657143 0.375000 +v 1.322517 0.820288 -1.125000 +v 1.136462 0.864956 -1.125000 +v 0.973316 0.764980 -1.125000 +v 0.928648 0.578926 -1.125000 +v 1.028624 0.415780 -1.125000 +v 1.214680 0.371112 -1.125000 +v 1.377825 0.471088 -1.125000 +v 1.422493 0.657143 -1.125000 +v 1.359254 0.870852 -1.125000 +v 1.126685 0.926687 -1.125000 +v 0.922753 0.801717 -1.125000 +v 0.866919 0.569148 -1.125000 +v 0.991888 0.365216 -1.125000 +v 1.224457 0.309381 -1.125000 +v 1.428389 0.434351 -1.125000 +v 1.484223 0.666920 -1.125000 +v 1.359254 0.870852 -1.250000 +v 1.126685 0.926687 -1.250000 +v 0.922753 0.801717 -1.250000 +v 0.866919 0.569148 -1.250000 +v 0.991888 0.365216 -1.250000 +v 1.224457 0.309381 -1.250000 +v 1.428389 0.434351 -1.250000 +v 1.484223 0.666920 -1.250000 +v 1.820289 0.322517 0.375000 +v 1.657143 0.422493 0.375000 +v 1.471087 0.377825 0.375000 +v 1.371112 0.214679 0.375000 +v 1.415780 0.028624 0.375000 +v 1.578926 -0.071352 0.375000 +v 1.764980 -0.026684 0.375000 +v 1.864957 0.136462 0.375000 +v 1.820289 0.322517 -1.125000 +v 1.657143 0.422493 -1.125000 +v 1.471087 0.377825 -1.125000 +v 1.371112 0.214679 -1.125000 +v 1.415780 0.028624 -1.125000 +v 1.578926 -0.071352 -1.125000 +v 1.764980 -0.026684 -1.125000 +v 1.864957 0.136462 -1.125000 +v 1.870852 0.359253 -1.125000 +v 1.666920 0.484223 -1.125000 +v 1.434351 0.428388 -1.125000 +v 1.309382 0.224456 -1.125000 +v 1.365216 -0.008112 -1.125000 +v 1.569149 -0.133082 -1.125000 +v 1.801717 -0.077247 -1.125000 +v 1.926687 0.126685 -1.125000 +v 1.870852 0.359253 -1.250000 +v 1.666920 0.484223 -1.250000 +v 1.434351 0.428388 -1.250000 +v 1.309382 0.224456 -1.250000 +v 1.365216 -0.008112 -1.250000 +v 1.569149 -0.133082 -1.250000 +v 1.801717 -0.077247 -1.250000 +v 1.926687 0.126685 -1.250000 +v 2.139878 -0.304712 0.375000 +v 2.015611 -0.159214 0.375000 +v 1.824859 -0.144202 0.375000 +v 1.679361 -0.268468 0.375000 +v 1.664349 -0.459220 0.375000 +v 1.788616 -0.604718 0.375000 +v 1.979367 -0.619730 0.375000 +v 2.124866 -0.495464 0.375000 +v 2.139878 -0.304712 -1.125000 +v 2.015611 -0.159214 -1.125000 +v 1.824859 -0.144202 -1.125000 +v 1.679361 -0.268468 -1.125000 +v 1.664349 -0.459220 -1.125000 +v 1.788616 -0.604718 -1.125000 +v 1.979367 -0.619730 -1.125000 +v 2.124866 -0.495464 -1.125000 +v 2.199319 -0.285398 -1.125000 +v 2.043985 -0.103526 -1.125000 +v 1.805545 -0.084761 -1.125000 +v 1.623674 -0.240094 -1.125000 +v 1.604908 -0.478534 -1.125000 +v 1.760242 -0.660406 -1.125000 +v 1.998681 -0.679171 -1.125000 +v 2.180553 -0.523838 -1.125000 +v 2.199319 -0.285398 -1.250000 +v 2.043985 -0.103526 -1.250000 +v 1.805545 -0.084761 -1.250000 +v 1.623674 -0.240094 -1.250000 +v 1.604908 -0.478534 -1.250000 +v 1.760242 -0.660406 -1.250000 +v 1.998681 -0.679171 -1.250000 +v 2.180553 -0.523838 -1.250000 +v 2.250000 -1.000000 0.375000 +v 2.176777 -0.823223 0.375000 +v 2.000000 -0.750000 0.375000 +v 1.823224 -0.823223 0.375000 +v 1.750000 -1.000000 0.375000 +v 1.823224 -1.176777 0.375000 +v 2.000000 -1.250000 0.375000 +v 2.176777 -1.176777 0.375000 +v 2.250000 -1.000000 -1.125000 +v 2.176777 -0.823223 -1.125000 +v 2.000000 -0.750000 -1.125000 +v 1.823224 -0.823223 -1.125000 +v 1.750000 -1.000000 -1.125000 +v 1.823224 -1.176777 -1.125000 +v 2.000000 -1.250000 -1.125000 +v 2.176777 -1.176777 -1.125000 +v 2.312500 -1.000000 -1.125000 +v 2.220971 -0.779030 -1.125000 +v 2.000000 -0.687500 -1.125000 +v 1.779029 -0.779030 -1.125000 +v 1.687500 -1.000000 -1.125000 +v 1.779029 -1.220971 -1.125000 +v 2.000000 -1.312500 -1.125000 +v 2.220971 -1.220971 -1.125000 +v 2.312500 -1.000000 -1.250000 +v 2.220971 -0.779030 -1.250000 +v 2.000000 -0.687500 -1.250000 +v 1.779029 -0.779030 -1.250000 +v 1.687500 -1.000000 -1.250000 +v 1.779029 -1.220971 -1.250000 +v 2.000000 -1.312500 -1.250000 +v 2.220971 -1.220971 -1.250000 +v 2.139877 -1.695288 0.375000 +v 2.124865 -1.504536 0.375000 +v 1.979367 -1.380270 0.375000 +v 1.788616 -1.395282 0.375000 +v 1.664349 -1.540780 0.375000 +v 1.679361 -1.731532 0.375000 +v 1.824859 -1.855798 0.375000 +v 2.015611 -1.840786 0.375000 +v 2.139877 -1.695288 -1.125000 +v 2.124865 -1.504536 -1.125000 +v 1.979367 -1.380270 -1.125000 +v 1.788616 -1.395282 -1.125000 +v 1.664349 -1.540780 -1.125000 +v 1.679361 -1.731532 -1.125000 +v 1.824859 -1.855798 -1.125000 +v 2.015611 -1.840786 -1.125000 +v 2.199318 -1.714602 -1.125000 +v 2.180553 -1.476163 -1.125000 +v 1.998681 -1.320829 -1.125000 +v 1.760241 -1.339595 -1.125000 +v 1.604908 -1.521466 -1.125000 +v 1.623673 -1.759907 -1.125000 +v 1.805545 -1.915239 -1.125000 +v 2.043985 -1.896474 -1.125000 +v 2.199318 -1.714602 -1.250000 +v 2.180553 -1.476163 -1.250000 +v 1.998681 -1.320829 -1.250000 +v 1.760241 -1.339595 -1.250000 +v 1.604908 -1.521466 -1.250000 +v 1.623673 -1.759907 -1.250000 +v 1.805545 -1.915239 -1.250000 +v 2.043985 -1.896474 -1.250000 +v 1.820289 -2.322517 0.375000 +v 1.864957 -2.136462 0.375000 +v 1.764980 -1.973316 0.375000 +v 1.578926 -1.928649 0.375000 +v 1.415780 -2.028624 0.375000 +v 1.371112 -2.214680 0.375000 +v 1.471087 -2.377825 0.375000 +v 1.657143 -2.422493 0.375000 +v 1.820289 -2.322517 -1.125000 +v 1.864957 -2.136462 -1.125000 +v 1.764980 -1.973316 -1.125000 +v 1.578926 -1.928649 -1.125000 +v 1.415780 -2.028624 -1.125000 +v 1.371112 -2.214680 -1.125000 +v 1.471087 -2.377825 -1.125000 +v 1.657143 -2.422493 -1.125000 +v 1.870852 -2.359254 -1.125000 +v 1.926687 -2.126685 -1.125000 +v 1.801717 -1.922753 -1.125000 +v 1.569148 -1.866919 -1.125000 +v 1.365216 -1.991888 -1.125000 +v 1.309381 -2.224457 -1.125000 +v 1.434351 -2.428389 -1.125000 +v 1.666920 -2.484224 -1.125000 +v 1.870852 -2.359254 -1.250000 +v 1.926687 -2.126685 -1.250000 +v 1.801717 -1.922753 -1.250000 +v 1.569148 -1.866919 -1.250000 +v 1.365216 -1.991888 -1.250000 +v 1.309381 -2.224457 -1.250000 +v 1.434351 -2.428389 -1.250000 +v 1.666920 -2.484224 -1.250000 +v 1.322517 -2.820289 0.375000 +v 1.422493 -2.657143 0.375000 +v 1.377825 -2.471088 0.375000 +v 1.214679 -2.371112 0.375000 +v 1.028625 -2.415780 0.375000 +v 0.928648 -2.578926 0.375000 +v 0.973316 -2.764980 0.375000 +v 1.136462 -2.864957 0.375000 +v 1.322517 -2.820289 -1.125000 +v 1.422493 -2.657143 -1.125000 +v 1.377825 -2.471088 -1.125000 +v 1.214679 -2.371112 -1.125000 +v 1.028625 -2.415780 -1.125000 +v 0.928648 -2.578926 -1.125000 +v 0.973316 -2.764980 -1.125000 +v 1.136462 -2.864957 -1.125000 +v 1.359253 -2.870852 -1.125000 +v 1.484223 -2.666920 -1.125000 +v 1.428388 -2.434351 -1.125000 +v 1.224456 -2.309382 -1.125000 +v 0.991888 -2.365216 -1.125000 +v 0.866918 -2.569149 -1.125000 +v 0.922753 -2.801717 -1.125000 +v 1.126685 -2.926687 -1.125000 +v 1.359253 -2.870852 -1.250000 +v 1.484223 -2.666920 -1.250000 +v 1.428388 -2.434351 -1.250000 +v 1.224456 -2.309382 -1.250000 +v 0.991888 -2.365216 -1.250000 +v 0.866918 -2.569149 -1.250000 +v 0.922753 -2.801717 -1.250000 +v 1.126685 -2.926687 -1.250000 +v 0.695288 -3.139878 0.375000 +v 0.840786 -3.015611 0.375000 +v 0.855798 -2.824859 0.375000 +v 0.731532 -2.679361 0.375000 +v 0.540780 -2.664349 0.375000 +v 0.395282 -2.788616 0.375000 +v 0.380270 -2.979367 0.375000 +v 0.504536 -3.124866 0.375000 +v 0.695288 -3.139878 -1.125000 +v 0.840786 -3.015611 -1.125000 +v 0.855798 -2.824859 -1.125000 +v 0.731532 -2.679361 -1.125000 +v 0.540780 -2.664349 -1.125000 +v 0.395282 -2.788616 -1.125000 +v 0.380270 -2.979367 -1.125000 +v 0.504536 -3.124866 -1.125000 +v 0.714602 -3.199319 -1.125000 +v 0.896473 -3.043985 -1.125000 +v 0.915239 -2.805545 -1.125000 +v 0.759906 -2.623674 -1.125000 +v 0.521466 -2.604908 -1.125000 +v 0.339594 -2.760242 -1.125000 +v 0.320828 -2.998681 -1.125000 +v 0.476162 -3.180553 -1.125000 +v 0.714602 -3.199319 -1.250000 +v 0.896473 -3.043985 -1.250000 +v 0.915239 -2.805545 -1.250000 +v 0.759906 -2.623674 -1.250000 +v 0.521466 -2.604908 -1.250000 +v 0.339594 -2.760242 -1.250000 +v 0.320828 -2.998681 -1.250000 +v 0.476162 -3.180553 -1.250000 +v 0.000000 -3.250000 0.375000 +v 0.176777 -3.176777 0.375000 +v 0.250000 -3.000000 0.375000 +v 0.176777 -2.823224 0.375000 +v 0.000000 -2.750000 0.375000 +v -0.176777 -2.823224 0.375000 +v -0.250000 -3.000000 0.375000 +v -0.176777 -3.176777 0.375000 +v 0.000000 -3.250000 -1.125000 +v 0.176777 -3.176777 -1.125000 +v 0.250000 -3.000000 -1.125000 +v 0.176777 -2.823224 -1.125000 +v 0.000000 -2.750000 -1.125000 +v -0.176777 -2.823224 -1.125000 +v -0.250000 -3.000000 -1.125000 +v -0.176777 -3.176777 -1.125000 +v 0.000000 -3.312500 -1.125000 +v 0.220971 -3.220971 -1.125000 +v 0.312500 -3.000000 -1.125000 +v 0.220971 -2.779029 -1.125000 +v 0.000000 -2.687500 -1.125000 +v -0.220971 -2.779029 -1.125000 +v -0.312500 -3.000000 -1.125000 +v -0.220971 -3.220971 -1.125000 +v 0.000000 -3.312500 -1.250000 +v 0.220971 -3.220971 -1.250000 +v 0.312500 -3.000000 -1.250000 +v 0.220971 -2.779029 -1.250000 +v 0.000000 -2.687500 -1.250000 +v -0.220971 -2.779029 -1.250000 +v -0.312500 -3.000000 -1.250000 +v -0.220971 -3.220971 -1.250000 +v -0.695288 -3.139877 0.375000 +v -0.504536 -3.124865 0.375000 +v -0.380270 -2.979367 0.375000 +v -0.395282 -2.788616 0.375000 +v -0.540780 -2.664349 0.375000 +v -0.731533 -2.679361 0.375000 +v -0.855798 -2.824859 0.375000 +v -0.840786 -3.015611 0.375000 +v -0.695288 -3.139877 -1.125000 +v -0.504536 -3.124865 -1.125000 +v -0.380270 -2.979367 -1.125000 +v -0.395282 -2.788616 -1.125000 +v -0.540780 -2.664349 -1.125000 +v -0.731533 -2.679361 -1.125000 +v -0.855798 -2.824859 -1.125000 +v -0.840786 -3.015611 -1.125000 +v -0.714602 -3.199318 -1.125000 +v -0.476162 -3.180553 -1.125000 +v -0.320829 -2.998681 -1.125000 +v -0.339595 -2.760241 -1.125000 +v -0.521466 -2.604908 -1.125000 +v -0.759906 -2.623673 -1.125000 +v -0.915239 -2.805545 -1.125000 +v -0.896474 -3.043985 -1.125000 +v -0.714602 -3.199318 -1.250000 +v -0.476162 -3.180553 -1.250000 +v -0.320829 -2.998681 -1.250000 +v -0.339595 -2.760241 -1.250000 +v -0.521466 -2.604908 -1.250000 +v -0.759906 -2.623673 -1.250000 +v -0.915239 -2.805545 -1.250000 +v -0.896474 -3.043985 -1.250000 +v -1.322517 -2.820289 0.375000 +v -1.136462 -2.864957 0.375000 +v -0.973316 -2.764980 0.375000 +v -0.928648 -2.578926 0.375000 +v -1.028624 -2.415780 0.375000 +v -1.214680 -2.371112 0.375000 +v -1.377825 -2.471087 0.375000 +v -1.422493 -2.657143 0.375000 +v -1.322517 -2.820289 -1.125000 +v -1.136462 -2.864957 -1.125000 +v -0.973316 -2.764980 -1.125000 +v -0.928648 -2.578926 -1.125000 +v -1.028624 -2.415780 -1.125000 +v -1.214680 -2.371112 -1.125000 +v -1.377825 -2.471087 -1.125000 +v -1.422493 -2.657143 -1.125000 +v -1.359254 -2.870852 -1.125000 +v -1.126685 -2.926687 -1.125000 +v -0.922753 -2.801717 -1.125000 +v -0.866919 -2.569148 -1.125000 +v -0.991888 -2.365216 -1.125000 +v -1.224457 -2.309381 -1.125000 +v -1.428389 -2.434351 -1.125000 +v -1.484224 -2.666920 -1.125000 +v -1.359254 -2.870852 -1.250000 +v -1.126685 -2.926687 -1.250000 +v -0.922753 -2.801717 -1.250000 +v -0.866919 -2.569148 -1.250000 +v -0.991888 -2.365216 -1.250000 +v -1.224457 -2.309381 -1.250000 +v -1.428389 -2.434351 -1.250000 +v -1.484224 -2.666920 -1.250000 +v -1.820289 -2.322517 0.375000 +v -1.657143 -2.422493 0.375000 +v -1.471088 -2.377825 0.375000 +v -1.371112 -2.214679 0.375000 +v -1.415780 -2.028625 0.375000 +v -1.578926 -1.928648 0.375000 +v -1.764980 -1.973316 0.375000 +v -1.864957 -2.136462 0.375000 +v -1.820289 -2.322517 -1.125000 +v -1.657143 -2.422493 -1.125000 +v -1.471088 -2.377825 -1.125000 +v -1.371112 -2.214679 -1.125000 +v -1.415780 -2.028625 -1.125000 +v -1.578926 -1.928648 -1.125000 +v -1.764980 -1.973316 -1.125000 +v -1.864957 -2.136462 -1.125000 +v -1.870852 -2.359253 -1.125000 +v -1.666920 -2.484223 -1.125000 +v -1.434351 -2.428388 -1.125000 +v -1.309382 -2.224456 -1.125000 +v -1.365216 -1.991888 -1.125000 +v -1.569149 -1.866918 -1.125000 +v -1.801717 -1.922753 -1.125000 +v -1.926687 -2.126685 -1.125000 +v -1.870852 -2.359253 -1.250000 +v -1.666920 -2.484223 -1.250000 +v -1.434351 -2.428388 -1.250000 +v -1.309382 -2.224456 -1.250000 +v -1.365216 -1.991888 -1.250000 +v -1.569149 -1.866918 -1.250000 +v -1.801717 -1.922753 -1.250000 +v -1.926687 -2.126685 -1.250000 +v -2.139878 -1.695288 0.375000 +v -2.015611 -1.840786 0.375000 +v -1.824859 -1.855798 0.375000 +v -1.679361 -1.731532 0.375000 +v -1.664349 -1.540780 0.375000 +v -1.788616 -1.395282 0.375000 +v -1.979367 -1.380270 0.375000 +v -2.124866 -1.504536 0.375000 +v -2.139878 -1.695288 -1.125000 +v -2.015611 -1.840786 -1.125000 +v -1.824859 -1.855798 -1.125000 +v -1.679361 -1.731532 -1.125000 +v -1.664349 -1.540780 -1.125000 +v -1.788616 -1.395282 -1.125000 +v -1.979367 -1.380270 -1.125000 +v -2.124866 -1.504536 -1.125000 +v -2.199319 -1.714602 -1.125000 +v -2.043985 -1.896473 -1.125000 +v -1.805545 -1.915239 -1.125000 +v -1.623674 -1.759906 -1.125000 +v -1.604908 -1.521466 -1.125000 +v -1.760242 -1.339594 -1.125000 +v -1.998681 -1.320828 -1.125000 +v -2.180553 -1.476162 -1.125000 +v -2.199319 -1.714602 -1.250000 +v -2.043985 -1.896473 -1.250000 +v -1.805545 -1.915239 -1.250000 +v -1.623674 -1.759906 -1.250000 +v -1.604908 -1.521466 -1.250000 +v -1.760242 -1.339594 -1.250000 +v -1.998681 -1.320828 -1.250000 +v -2.180553 -1.476162 -1.250000 +v -2.250000 -1.000000 0.375000 +v -2.176777 -1.176777 0.375000 +v -2.000000 -1.250000 0.375000 +v -1.823224 -1.176777 0.375000 +v -1.750000 -1.000000 0.375000 +v -1.823224 -0.823223 0.375000 +v -2.000000 -0.750000 0.375000 +v -2.176777 -0.823223 0.375000 +v -2.250000 -1.000000 -1.125000 +v -2.176777 -1.176777 -1.125000 +v -2.000000 -1.250000 -1.125000 +v -1.823224 -1.176777 -1.125000 +v -1.750000 -1.000000 -1.125000 +v -1.823224 -0.823223 -1.125000 +v -2.000000 -0.750000 -1.125000 +v -2.176777 -0.823223 -1.125000 +v -2.312500 -1.000000 -1.125000 +v -2.220971 -1.220971 -1.125000 +v -2.000000 -1.312500 -1.125000 +v -1.779029 -1.220971 -1.125000 +v -1.687500 -1.000000 -1.125000 +v -1.779029 -0.779029 -1.125000 +v -2.000000 -0.687500 -1.125000 +v -2.220971 -0.779029 -1.125000 +v -2.312500 -1.000000 -1.250000 +v -2.220971 -1.220971 -1.250000 +v -2.000000 -1.312500 -1.250000 +v -1.779029 -1.220971 -1.250000 +v -1.687500 -1.000000 -1.250000 +v -1.779029 -0.779029 -1.250000 +v -2.000000 -0.687500 -1.250000 +v -2.220971 -0.779029 -1.250000 +v -2.139877 -0.304712 0.375000 +v -2.124865 -0.495464 0.375000 +v -1.979367 -0.619730 0.375000 +v -1.788616 -0.604718 0.375000 +v -1.664349 -0.459220 0.375000 +v -1.679361 -0.268467 0.375000 +v -1.824859 -0.144202 0.375000 +v -2.015611 -0.159214 0.375000 +v -2.139877 -0.304712 -1.125000 +v -2.124865 -0.495464 -1.125000 +v -1.979367 -0.619730 -1.125000 +v -1.788616 -0.604718 -1.125000 +v -1.664349 -0.459220 -1.125000 +v -1.679361 -0.268467 -1.125000 +v -1.824859 -0.144202 -1.125000 +v -2.015611 -0.159214 -1.125000 +v -2.199318 -0.285398 -1.125000 +v -2.180553 -0.523838 -1.125000 +v -1.998681 -0.679171 -1.125000 +v -1.760241 -0.660405 -1.125000 +v -1.604908 -0.478534 -1.125000 +v -1.623673 -0.240094 -1.125000 +v -1.805545 -0.084761 -1.125000 +v -2.043985 -0.103526 -1.125000 +v -2.199318 -0.285398 -1.250000 +v -2.180553 -0.523838 -1.250000 +v -1.998681 -0.679171 -1.250000 +v -1.760241 -0.660405 -1.250000 +v -1.604908 -0.478534 -1.250000 +v -1.623673 -0.240094 -1.250000 +v -1.805545 -0.084761 -1.250000 +v -2.043985 -0.103526 -1.250000 +v -1.820289 0.322517 0.375000 +v -1.864957 0.136462 0.375000 +v -1.764980 -0.026684 0.375000 +v -1.578926 -0.071352 0.375000 +v -1.415780 0.028624 0.375000 +v -1.371112 0.214680 0.375000 +v -1.471087 0.377825 0.375000 +v -1.657142 0.422493 0.375000 +v -1.820289 0.322517 -1.125000 +v -1.864957 0.136462 -1.125000 +v -1.764980 -0.026684 -1.125000 +v -1.578926 -0.071352 -1.125000 +v -1.415780 0.028624 -1.125000 +v -1.371112 0.214680 -1.125000 +v -1.471087 0.377825 -1.125000 +v -1.657142 0.422493 -1.125000 +v -1.870852 0.359254 -1.125000 +v -1.926687 0.126685 -1.125000 +v -1.801717 -0.077247 -1.125000 +v -1.569148 -0.133081 -1.125000 +v -1.365216 -0.008112 -1.125000 +v -1.309381 0.224457 -1.125000 +v -1.434351 0.428389 -1.125000 +v -1.666919 0.484224 -1.125000 +v -1.870852 0.359254 -1.250000 +v -1.926687 0.126685 -1.250000 +v -1.801717 -0.077247 -1.250000 +v -1.569148 -0.133081 -1.250000 +v -1.365216 -0.008112 -1.250000 +v -1.309381 0.224457 -1.250000 +v -1.434351 0.428389 -1.250000 +v -1.666919 0.484224 -1.250000 +v -1.322517 0.820289 0.375000 +v -1.422493 0.657143 0.375000 +v -1.377825 0.471088 0.375000 +v -1.214679 0.371112 0.375000 +v -1.028624 0.415780 0.375000 +v -0.928648 0.578926 0.375000 +v -0.973316 0.764980 0.375000 +v -1.136461 0.864957 0.375000 +v -1.322517 0.820289 -1.125000 +v -1.422493 0.657143 -1.125000 +v -1.377825 0.471088 -1.125000 +v -1.214679 0.371112 -1.125000 +v -1.028624 0.415780 -1.125000 +v -0.928648 0.578926 -1.125000 +v -0.973316 0.764980 -1.125000 +v -1.136461 0.864957 -1.125000 +v -1.359253 0.870852 -1.125000 +v -1.484223 0.666920 -1.125000 +v -1.428388 0.434351 -1.125000 +v -1.224456 0.309382 -1.125000 +v -0.991888 0.365216 -1.125000 +v -0.866918 0.569149 -1.125000 +v -0.922753 0.801717 -1.125000 +v -1.126684 0.926687 -1.125000 +v -1.359253 0.870852 -1.250000 +v -1.484223 0.666920 -1.250000 +v -1.428388 0.434351 -1.250000 +v -1.224456 0.309382 -1.250000 +v -0.991888 0.365216 -1.250000 +v -0.866918 0.569149 -1.250000 +v -0.922753 0.801717 -1.250000 +v -1.126684 0.926687 -1.250000 +v -0.695288 1.139878 0.375000 +v -0.840786 1.015611 0.375000 +v -0.855798 0.824859 0.375000 +v -0.731532 0.679361 0.375000 +v -0.540780 0.664349 0.375000 +v -0.395282 0.788616 0.375000 +v -0.380270 0.979367 0.375000 +v -0.504536 1.124866 0.375000 +v -0.695288 1.139878 -1.125000 +v -0.840786 1.015611 -1.125000 +v -0.855798 0.824859 -1.125000 +v -0.731532 0.679361 -1.125000 +v -0.540780 0.664349 -1.125000 +v -0.395282 0.788616 -1.125000 +v -0.380270 0.979367 -1.125000 +v -0.504536 1.124866 -1.125000 +v -0.714602 1.199319 -1.125000 +v -0.896473 1.043985 -1.125000 +v -0.915239 0.805545 -1.125000 +v -0.759906 0.623674 -1.125000 +v -0.521466 0.604908 -1.125000 +v -0.339594 0.760242 -1.125000 +v -0.320828 0.998681 -1.125000 +v -0.476162 1.180553 -1.125000 +v -0.714602 1.199319 -1.250000 +v -0.896473 1.043985 -1.250000 +v -0.915239 0.805545 -1.250000 +v -0.759906 0.623674 -1.250000 +v -0.521466 0.604908 -1.250000 +v -0.339594 0.760242 -1.250000 +v -0.320828 0.998681 -1.250000 +v -0.476162 1.180553 -1.250000 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.770916 0.499978 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.759050 0.519531 +vt 0.888446 0.273438 +vt 0.836653 0.312500 +vt 0.836653 0.273438 +vt 0.888446 0.000000 +vt 0.836653 0.039062 +vt 0.836653 0.000000 +vt 0.888446 0.351562 +vt 0.836653 0.390625 +vt 0.836653 0.351562 +vt 0.888446 0.039062 +vt 0.836653 0.078125 +vt 0.888446 0.390625 +vt 0.836653 0.429688 +vt 0.888446 0.117188 +vt 0.836653 0.117188 +vt 0.888446 0.429688 +vt 0.836653 0.468750 +vt 0.836653 0.156250 +vt 0.888446 0.468750 +vt 0.836653 0.507812 +vt 0.888446 0.156250 +vt 0.836653 0.195312 +vt 0.888446 0.507812 +vt 0.836653 0.546875 +vt 0.888446 0.234375 +vt 0.836653 0.234375 +vt 0.888446 0.546875 +vt 0.836653 0.585938 +vt 0.888446 0.585938 +vt 0.836653 0.625000 +vt 0.888446 0.312500 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.770916 0.499978 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.768925 0.500168 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.770916 0.499978 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.759050 0.519531 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.759050 0.519531 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.826693 0.480469 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.759050 0.519531 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.826693 0.480469 +vt 0.778799 0.519531 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.770916 0.499978 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.778799 0.519531 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.770916 0.499978 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.826693 0.480469 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.759050 0.519531 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.778799 0.519531 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.759050 0.519531 +vt 0.778873 0.484375 +vt 0.776543 0.495408 +vt 0.770916 0.499978 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.826693 0.480469 +vt 0.778799 0.519531 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.770916 0.499978 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.826693 0.480469 +vt 0.778799 0.519531 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.770916 0.499978 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.826693 0.480469 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.759050 0.519531 +vt 0.770916 0.499978 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.778799 0.519531 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.759050 0.519531 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.826693 0.480469 +vt 0.778799 0.519531 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.770916 0.499978 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.826693 0.480469 +vt 0.778799 0.519531 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.770916 0.499978 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.826693 0.480469 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.515625 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.828685 0.480469 +vt 0.778799 0.519531 +vt 0.768925 0.538894 +vt 0.759050 0.519531 +vt 0.762959 0.484375 +vt 0.770916 0.468772 +vt 0.778873 0.484375 +vt 0.828685 0.492188 +vt 0.826693 0.503906 +vt 0.826693 0.492188 +vt 0.828685 0.503906 +vt 0.826693 0.515625 +vt 0.828685 0.527344 +vt 0.826693 0.527344 +vt 0.828685 0.539062 +vt 0.826693 0.539062 +vt 0.826693 0.550781 +vt 0.828685 0.550781 +vt 0.826693 0.562500 +vt 0.828685 0.468750 +vt 0.826693 0.480469 +vt 0.826693 0.468750 +vt 0.775907 0.505839 +vt 0.778799 0.519531 +vt 0.759050 0.519531 +vt 0.765290 0.495408 +vt 0.762959 0.484375 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.480469 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.888446 0.078125 +vt 0.888446 0.195312 +vt 0.888446 0.625000 +vt 0.765290 0.495408 +vt 0.762959 0.484375 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.480469 +vt 0.778799 0.519531 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.775907 0.505839 +vt 0.765290 0.495408 +vt 0.762959 0.484375 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.770916 0.499978 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.770916 0.499978 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.468750 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.770916 0.499978 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.468750 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.765290 0.495408 +vt 0.762959 0.484375 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.480469 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.778873 0.484375 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.468750 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.770916 0.499978 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.770916 0.499978 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.480469 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.765290 0.495408 +vt 0.762959 0.484375 +vt 0.765290 0.473342 +vt 0.770916 0.468772 +vt 0.776543 0.473342 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.468750 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.765290 0.495408 +vt 0.762959 0.484375 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.468750 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.778873 0.484375 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.468750 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.778873 0.484375 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.770916 0.499978 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.480469 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.770916 0.499978 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.468750 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.765290 0.495408 +vt 0.762959 0.484375 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.468750 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.778873 0.484375 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.828685 0.468750 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.759050 0.519531 +vt 0.761942 0.505839 +vt 0.770916 0.499978 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.503906 +vt 0.828685 0.562500 +vt 0.775907 0.533223 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.775907 0.505839 +vt 0.770916 0.499978 +vt 0.765290 0.495408 +vt 0.765290 0.473342 +vt 0.776543 0.473342 +vt 0.776543 0.495408 +vt 0.828685 0.515625 +vt 0.828685 0.562500 +vt 0.828685 0.480469 +vt 0.775907 0.533223 +vt 0.768925 0.538894 +vt 0.761942 0.533223 +vt 0.761942 0.505839 +vt 0.768925 0.500168 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.778884 0.503906 +vt 0.778884 0.492188 +vt 0.778884 0.480469 +vt 0.778884 0.468750 +vt 0.778884 0.550781 +vt 0.778884 0.539062 +vt 0.778884 0.527344 +vt 0.778884 0.515625 +vt 0.778884 0.562500 +vt 0.832669 0.550781 +vt 0.832669 0.527344 +vt 0.832669 0.515625 +vt 0.832669 0.492188 +vt 0.832669 0.562500 +vt 0.832669 0.539062 +vt 0.832669 0.503906 +vt 0.832669 0.480469 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vt 0.832669 0.468750 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.1951 0.9808 0.0000 +vn 0.1951 -0.9808 0.0000 +vn -0.5556 0.8315 0.0000 +vn 0.5556 -0.8315 0.0000 +vn -0.8315 0.5556 0.0000 +vn 0.8315 -0.5556 0.0000 +vn -0.9808 0.1951 0.0000 +vn 0.9808 -0.1951 0.0000 +vn -0.9808 -0.1951 0.0000 +vn 0.9808 0.1951 0.0000 +vn -0.8315 -0.5556 0.0000 +vn 0.8315 0.5556 0.0000 +vn -0.5556 -0.8315 0.0000 +vn 0.5556 0.8315 0.0000 +vn -0.1951 -0.9808 0.0000 +vn -0.1951 0.9808 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.9511 -0.3090 0.0000 +vn 0.8910 0.4540 0.0000 +vn -0.3090 -0.9511 0.0000 +vn 0.4540 -0.8910 0.0000 +vn -0.9511 0.3090 0.0000 +vn -0.8910 -0.4540 0.0000 +vn 0.3090 0.9511 0.0000 +vn -0.4540 0.8910 0.0000 +vn 0.8090 -0.5878 0.0000 +vn 0.9877 0.1564 0.0000 +vn -0.5878 -0.8090 0.0000 +vn 0.1564 -0.9877 0.0000 +vn -0.8090 0.5878 0.0000 +vn -0.9877 -0.1564 0.0000 +vn 0.5878 0.8090 0.0000 +vn -0.1564 0.9877 0.0000 +vn 0.5878 -0.8090 0.0000 +vn 0.9877 -0.1564 0.0000 +vn -0.8090 -0.5878 0.0000 +vn -0.1564 -0.9877 0.0000 +vn -0.5878 0.8090 0.0000 +vn -0.9877 0.1564 0.0000 +vn 0.8090 0.5878 0.0000 +vn 0.1564 0.9877 0.0000 +vn 0.3090 -0.9511 0.0000 +vn 0.8910 -0.4540 0.0000 +vn -0.9511 -0.3090 0.0000 +vn -0.4540 -0.8910 0.0000 +vn -0.3090 0.9511 0.0000 +vn -0.8910 0.4540 0.0000 +vn 0.9511 0.3090 0.0000 +vn 0.4540 0.8910 0.0000 +s off +f 261/521/19 263/522/19 257/523/19 +f 279/524/19 272/525/19 271/526/19 +f 272/525/19 273/527/19 265/528/19 +f 265/528/19 274/529/19 266/530/19 +f 266/530/19 275/531/19 267/532/19 +f 275/531/19 268/533/19 267/532/19 +f 276/534/19 269/535/19 268/533/19 +f 277/536/19 270/537/19 269/538/19 +f 270/537/19 279/524/19 271/526/19 +f 284/539/20 283/540/20 287/541/20 +f 320/542/21 289/543/21 304/544/21 +f 313/545/22 298/546/22 297/547/22 +f 306/548/23 291/549/23 290/550/23 +f 314/551/24 299/552/24 298/546/24 +f 307/553/25 292/554/25 291/549/25 +f 299/552/26 316/555/26 300/556/26 +f 308/557/27 293/558/27 292/554/27 +f 316/555/28 301/559/28 300/556/28 +f 309/560/29 294/561/29 293/558/29 +f 317/562/30 302/563/30 301/559/30 +f 310/564/31 295/565/31 294/561/31 +f 302/563/32 319/566/32 303/567/32 +f 311/568/33 296/569/33 295/565/33 +f 319/566/34 304/544/34 303/567/34 +f 312/570/35 297/571/35 296/569/35 +f 305/572/36 290/550/36 289/543/36 +f 325/573/19 327/574/19 321/575/19 +f 343/576/19 336/577/19 335/578/19 +f 336/577/19 337/579/19 329/580/19 +f 329/580/19 338/581/19 330/582/19 +f 330/582/19 339/583/19 331/584/19 +f 339/583/19 332/585/19 331/584/19 +f 340/586/19 333/587/19 332/585/19 +f 341/588/19 334/589/19 333/590/19 +f 334/589/19 343/576/19 335/578/19 +f 345/591/20 351/592/20 349/593/20 +f 357/594/19 359/595/19 353/596/19 +f 375/597/19 368/598/19 367/599/19 +f 368/598/19 369/600/19 361/601/19 +f 361/601/19 370/602/19 362/603/19 +f 362/603/19 371/604/19 363/605/19 +f 371/604/19 364/606/19 363/605/19 +f 372/607/19 365/608/19 364/606/19 +f 373/609/19 366/610/19 365/611/19 +f 374/612/19 367/599/19 366/610/19 +f 380/613/20 379/614/20 383/615/20 +f 387/616/19 389/617/19 391/618/19 +f 407/619/19 400/620/19 399/621/19 +f 400/620/19 401/622/19 393/623/19 +f 393/623/19 402/624/19 394/625/19 +f 394/625/19 403/626/19 395/627/19 +f 403/626/19 396/628/19 395/627/19 +f 404/629/19 397/630/19 396/628/19 +f 405/631/19 398/632/19 397/633/19 +f 406/634/19 399/621/19 398/632/19 +f 412/635/20 411/636/20 415/637/20 +f 419/638/19 421/639/19 423/640/19 +f 439/641/19 432/642/19 431/643/19 +f 432/642/19 433/644/19 425/645/19 +f 425/645/19 434/646/19 426/647/19 +f 426/647/19 435/648/19 427/649/19 +f 435/648/19 428/650/19 427/649/19 +f 436/651/19 429/652/19 428/650/19 +f 429/653/19 438/654/19 430/655/19 +f 430/655/19 439/641/19 431/643/19 +f 444/656/20 443/657/20 447/658/20 +f 451/659/19 453/660/19 455/661/19 +f 471/662/19 464/663/19 463/664/19 +f 464/663/19 465/665/19 457/666/19 +f 457/666/19 466/667/19 458/668/19 +f 458/668/19 467/669/19 459/670/19 +f 467/669/19 460/671/19 459/670/19 +f 468/672/19 461/673/19 460/671/19 +f 461/674/19 470/675/19 462/676/19 +f 462/676/19 471/662/19 463/664/19 +f 475/677/20 473/678/20 479/679/20 +f 485/680/19 487/681/19 481/682/19 +f 503/683/19 496/684/19 495/685/19 +f 496/684/19 497/686/19 489/687/19 +f 489/687/19 498/688/19 490/689/19 +f 490/689/19 499/690/19 491/691/19 +f 499/690/19 492/692/19 491/691/19 +f 500/693/19 493/694/19 492/692/19 +f 501/695/19 494/696/19 493/697/19 +f 494/696/19 503/683/19 495/685/19 +f 507/698/20 505/699/20 511/700/20 +f 513/701/19 515/702/19 517/703/19 +f 535/704/19 528/705/19 527/706/19 +f 528/705/19 529/707/19 521/708/19 +f 521/708/19 530/709/19 522/710/19 +f 522/710/19 531/711/19 523/712/19 +f 531/711/19 524/713/19 523/712/19 +f 532/714/19 525/715/19 524/713/19 +f 525/716/19 534/717/19 526/718/19 +f 526/718/19 535/704/19 527/706/19 +f 540/719/20 539/720/20 543/721/20 +f 547/722/19 549/723/19 551/724/19 +f 567/725/19 560/726/19 559/727/19 +f 560/726/19 561/728/19 553/729/19 +f 553/729/19 562/730/19 554/731/19 +f 554/731/19 563/732/19 555/733/19 +f 563/732/19 556/734/19 555/733/19 +f 564/735/19 557/736/19 556/734/19 +f 565/737/19 558/738/19 557/739/19 +f 566/740/19 559/727/19 558/738/19 +f 571/741/20 569/742/20 575/743/20 +f 579/744/19 581/745/19 583/746/19 +f 599/747/19 592/748/19 591/749/19 +f 592/748/19 593/750/19 585/751/19 +f 585/751/19 594/752/19 586/753/19 +f 586/753/19 595/754/19 587/755/19 +f 595/754/19 588/756/19 587/755/19 +f 596/757/19 589/758/19 588/756/19 +f 597/759/19 590/760/19 589/761/19 +f 590/760/19 599/747/19 591/749/19 +f 604/762/20 603/763/20 607/764/20 +f 615/765/19 616/766/19 609/767/19 +f 631/768/19 624/769/19 623/770/19 +f 624/769/19 625/771/19 617/772/19 +f 617/772/19 626/773/19 618/774/19 +f 618/774/19 627/775/19 619/776/19 +f 627/775/19 620/777/19 619/776/19 +f 628/778/19 621/779/19 620/777/19 +f 621/780/19 630/781/19 622/782/19 +f 622/782/19 631/768/19 623/770/19 +f 635/783/20 633/784/20 639/785/20 +f 645/786/19 647/787/19 641/788/19 +f 663/789/19 656/790/19 655/791/19 +f 656/790/19 657/792/19 649/793/19 +f 649/793/19 658/794/19 650/795/19 +f 650/795/19 659/796/19 651/797/19 +f 659/796/19 652/798/19 651/797/19 +f 660/799/19 653/800/19 652/798/19 +f 653/801/19 662/802/19 654/803/19 +f 654/803/19 663/789/19 655/791/19 +f 667/804/20 665/805/20 671/806/20 +f 673/807/19 675/808/19 677/809/19 +f 695/810/19 688/811/19 687/812/19 +f 688/811/19 689/813/19 681/814/19 +f 681/814/19 690/815/19 682/816/19 +f 682/816/19 691/817/19 683/818/19 +f 691/817/19 684/819/19 683/818/19 +f 692/820/19 685/821/19 684/819/19 +f 685/822/19 694/823/19 686/824/19 +f 686/824/19 695/810/19 687/812/19 +f 700/825/20 699/826/20 703/827/20 +f 705/828/19 707/829/19 709/830/19 +f 727/831/19 720/832/19 719/833/19 +f 720/832/19 721/834/19 713/835/19 +f 713/835/19 722/836/19 714/837/19 +f 714/837/19 723/838/19 715/839/19 +f 723/838/19 716/840/19 715/839/19 +f 724/841/19 717/842/19 716/840/19 +f 725/843/19 718/844/19 717/845/19 +f 726/846/19 719/833/19 718/844/19 +f 731/847/20 729/848/20 735/849/20 +f 739/850/19 741/851/19 743/852/19 +f 759/853/19 752/854/19 751/855/19 +f 752/854/19 753/856/19 745/857/19 +f 745/857/19 754/858/19 746/859/19 +f 746/859/19 755/860/19 747/861/19 +f 755/860/19 748/862/19 747/861/19 +f 756/863/19 749/864/19 748/862/19 +f 757/865/19 750/866/19 749/867/19 +f 750/866/19 759/853/19 751/855/19 +f 764/868/20 763/869/20 767/870/20 +f 771/871/19 773/872/19 775/873/19 +f 791/874/19 784/875/19 783/876/19 +f 784/875/19 785/877/19 777/878/19 +f 777/878/19 786/879/19 778/880/19 +f 778/880/19 787/881/19 779/882/19 +f 787/881/19 780/883/19 779/882/19 +f 788/884/19 781/885/19 780/883/19 +f 781/886/19 790/887/19 782/888/19 +f 782/888/19 791/874/19 783/876/19 +f 795/889/20 793/890/20 799/891/20 +f 805/892/19 807/893/19 801/894/19 +f 823/895/19 816/896/19 815/897/19 +f 816/896/19 817/898/19 809/899/19 +f 809/899/19 818/900/19 810/901/19 +f 810/901/19 819/902/19 811/903/19 +f 819/902/19 812/904/19 811/903/19 +f 820/905/19 813/906/19 812/904/19 +f 813/907/19 822/908/19 814/909/19 +f 814/909/19 823/895/19 815/897/19 +f 827/910/20 825/911/20 831/912/20 +f 833/913/19 835/914/19 837/915/19 +f 855/916/19 848/917/19 847/918/19 +f 848/917/19 849/919/19 841/920/19 +f 841/920/19 850/921/19 842/922/19 +f 842/922/19 851/923/19 843/924/19 +f 851/923/19 844/925/19 843/924/19 +f 852/926/19 845/927/19 844/925/19 +f 845/928/19 854/929/19 846/930/19 +f 854/929/19 847/918/19 846/930/19 +f 861/931/20 860/932/20 859/933/20 +f 867/934/19 869/935/19 871/936/19 +f 887/937/19 880/938/19 879/939/19 +f 880/938/19 881/940/19 873/941/19 +f 873/941/19 882/942/19 874/943/19 +f 874/943/19 883/944/19 875/945/19 +f 883/944/19 876/946/19 875/945/19 +f 884/947/19 877/948/19 876/946/19 +f 885/949/19 878/950/19 877/951/19 +f 886/952/19 879/939/19 878/950/19 +f 891/953/20 889/954/20 895/955/20 +f 899/956/19 901/957/19 903/958/19 +f 919/959/19 912/960/19 911/961/19 +f 920/962/19 905/963/19 912/960/19 +f 905/963/19 914/964/19 906/965/19 +f 906/965/19 915/966/19 907/967/19 +f 915/966/19 908/968/19 907/967/19 +f 916/969/19 909/970/19 908/968/19 +f 917/971/19 910/972/19 909/973/19 +f 910/972/19 919/959/19 911/961/19 +f 924/974/20 923/975/20 927/976/20 +f 257/523/19 258/977/19 259/978/19 +f 259/978/19 260/979/19 261/521/19 +f 261/521/19 262/980/19 263/522/19 +f 263/522/19 264/981/19 257/523/19 +f 257/523/19 259/978/19 261/521/19 +f 279/524/19 280/982/19 272/525/19 +f 272/525/19 280/982/19 273/527/19 +f 265/528/19 273/527/19 274/529/19 +f 266/530/19 274/529/19 275/531/19 +f 275/531/19 276/534/19 268/533/19 +f 276/534/19 277/983/19 269/535/19 +f 277/536/19 278/984/19 270/537/19 +f 270/537/19 278/984/19 279/524/19 +f 283/540/20 282/985/20 287/541/20 +f 282/985/20 281/986/20 287/541/20 +f 281/986/20 288/987/20 287/541/20 +f 287/541/20 286/988/20 285/989/20 +f 285/989/20 284/539/20 287/541/20 +f 320/542/21 305/572/21 289/543/21 +f 313/545/22 314/551/22 298/546/22 +f 306/548/23 307/553/23 291/549/23 +f 314/551/24 315/990/24 299/552/24 +f 307/553/25 308/557/25 292/554/25 +f 299/552/26 315/990/26 316/555/26 +f 308/557/27 309/560/27 293/558/27 +f 316/555/28 317/562/28 301/559/28 +f 309/560/29 310/564/29 294/561/29 +f 317/562/30 318/991/30 302/563/30 +f 310/564/31 311/568/31 295/565/31 +f 302/563/32 318/991/32 319/566/32 +f 311/568/33 312/570/33 296/569/33 +f 319/566/34 320/542/34 304/544/34 +f 312/570/35 313/992/35 297/571/35 +f 305/572/36 306/548/36 290/550/36 +f 321/575/19 322/993/19 323/994/19 +f 323/994/19 324/995/19 325/573/19 +f 325/573/19 326/996/19 327/574/19 +f 327/574/19 328/997/19 321/575/19 +f 321/575/19 323/994/19 325/573/19 +f 343/576/19 344/998/19 336/577/19 +f 336/577/19 344/998/19 337/579/19 +f 329/580/19 337/579/19 338/581/19 +f 330/582/19 338/581/19 339/583/19 +f 339/583/19 340/586/19 332/585/19 +f 340/586/19 341/999/19 333/587/19 +f 341/588/19 342/1000/19 334/589/19 +f 334/589/19 342/1000/19 343/576/19 +f 347/1001/20 346/1002/20 345/591/20 +f 345/591/20 352/1003/20 351/592/20 +f 351/592/20 350/1004/20 349/593/20 +f 349/593/20 348/1005/20 347/1001/20 +f 347/1001/20 345/591/20 349/593/20 +f 353/596/19 354/1006/19 355/1007/19 +f 355/1007/19 356/1008/19 353/596/19 +f 356/1008/19 357/594/19 353/596/19 +f 357/594/19 358/1009/19 359/595/19 +f 359/595/19 360/1010/19 353/596/19 +f 375/597/19 376/1011/19 368/598/19 +f 368/598/19 376/1011/19 369/600/19 +f 361/601/19 369/600/19 370/602/19 +f 362/603/19 370/602/19 371/604/19 +f 371/604/19 372/607/19 364/606/19 +f 372/607/19 373/1012/19 365/608/19 +f 373/609/19 374/612/19 366/610/19 +f 374/612/19 375/597/19 367/599/19 +f 379/614/20 378/1013/20 377/1014/20 +f 377/1014/20 384/1015/20 379/614/20 +f 384/1015/20 383/615/20 379/614/20 +f 383/615/20 382/1016/20 381/1017/20 +f 381/1017/20 380/613/20 383/615/20 +f 385/1018/19 386/1019/19 387/616/19 +f 387/616/19 388/1020/19 389/617/19 +f 389/617/19 390/1021/19 391/618/19 +f 391/618/19 392/1022/19 385/1018/19 +f 385/1018/19 387/616/19 391/618/19 +f 407/619/19 408/1023/19 400/620/19 +f 400/620/19 408/1023/19 401/622/19 +f 393/623/19 401/622/19 402/624/19 +f 394/625/19 402/624/19 403/626/19 +f 403/626/19 404/629/19 396/628/19 +f 404/629/19 405/1024/19 397/630/19 +f 405/631/19 406/634/19 398/632/19 +f 406/634/19 407/619/19 399/621/19 +f 411/636/20 410/1025/20 415/637/20 +f 410/1025/20 409/1026/20 415/637/20 +f 409/1026/20 416/1027/20 415/637/20 +f 415/637/20 414/1028/20 413/1029/20 +f 413/1029/20 412/635/20 415/637/20 +f 417/1030/19 418/1031/19 419/638/19 +f 419/638/19 420/1032/19 421/639/19 +f 421/639/19 422/1033/19 423/640/19 +f 423/640/19 424/1034/19 417/1030/19 +f 417/1030/19 419/638/19 423/640/19 +f 439/641/19 440/1035/19 432/642/19 +f 432/642/19 440/1035/19 433/644/19 +f 425/645/19 433/644/19 434/646/19 +f 426/647/19 434/646/19 435/648/19 +f 435/648/19 436/651/19 428/650/19 +f 436/651/19 437/1036/19 429/652/19 +f 429/653/19 437/1037/19 438/654/19 +f 430/655/19 438/654/19 439/641/19 +f 443/657/20 442/1038/20 447/658/20 +f 442/1038/20 441/1039/20 447/658/20 +f 441/1039/20 448/1040/20 447/658/20 +f 447/658/20 446/1041/20 445/1042/20 +f 445/1042/20 444/656/20 447/658/20 +f 449/1043/19 450/1044/19 451/659/19 +f 451/659/19 452/1045/19 453/660/19 +f 453/660/19 454/1046/19 455/661/19 +f 455/661/19 456/1047/19 449/1043/19 +f 449/1043/19 451/659/19 455/661/19 +f 471/662/19 472/1048/19 464/663/19 +f 464/663/19 472/1048/19 465/665/19 +f 457/666/19 465/665/19 466/667/19 +f 458/668/19 466/667/19 467/669/19 +f 467/669/19 468/672/19 460/671/19 +f 468/672/19 469/1049/19 461/673/19 +f 461/674/19 469/1050/19 470/675/19 +f 462/676/19 470/675/19 471/662/19 +f 475/677/20 474/1051/20 473/678/20 +f 473/678/20 480/1052/20 479/679/20 +f 479/679/20 478/1053/20 477/1054/20 +f 477/1054/20 476/1055/20 479/679/20 +f 476/1055/20 475/677/20 479/679/20 +f 481/682/19 482/1056/19 483/1057/19 +f 483/1057/19 484/1058/19 485/680/19 +f 485/680/19 486/1059/19 487/681/19 +f 487/681/19 488/1060/19 481/682/19 +f 481/682/19 483/1057/19 485/680/19 +f 503/683/19 504/1061/19 496/684/19 +f 496/684/19 504/1061/19 497/686/19 +f 489/687/19 497/686/19 498/688/19 +f 490/689/19 498/688/19 499/690/19 +f 499/690/19 500/693/19 492/692/19 +f 500/693/19 501/1062/19 493/694/19 +f 501/695/19 502/1063/19 494/696/19 +f 494/696/19 502/1063/19 503/683/19 +f 507/698/20 506/1064/20 505/699/20 +f 505/699/20 512/1065/20 511/700/20 +f 511/700/20 510/1066/20 509/1067/20 +f 509/1067/20 508/1068/20 511/700/20 +f 508/1068/20 507/698/20 511/700/20 +f 513/701/19 514/1069/19 515/702/19 +f 515/702/19 516/1070/19 517/703/19 +f 517/703/19 518/1071/19 519/1072/19 +f 519/1072/19 520/1073/19 517/703/19 +f 520/1073/19 513/701/19 517/703/19 +f 535/704/19 536/1074/19 528/705/19 +f 528/705/19 536/1074/19 529/707/19 +f 521/708/19 529/707/19 530/709/19 +f 522/710/19 530/709/19 531/711/19 +f 531/711/19 532/714/19 524/713/19 +f 532/714/19 533/1075/19 525/715/19 +f 525/716/19 533/1076/19 534/717/19 +f 526/718/19 534/717/19 535/704/19 +f 539/720/20 538/1077/20 537/1078/20 +f 537/1078/20 544/1079/20 539/720/20 +f 544/1079/20 543/721/20 539/720/20 +f 543/721/20 542/1080/20 541/1081/20 +f 541/1081/20 540/719/20 543/721/20 +f 545/1082/19 546/1083/19 547/722/19 +f 547/722/19 548/1084/19 549/723/19 +f 549/723/19 550/1085/19 551/724/19 +f 551/724/19 552/1086/19 545/1082/19 +f 545/1082/19 547/722/19 551/724/19 +f 567/725/19 568/1087/19 560/726/19 +f 560/726/19 568/1087/19 561/728/19 +f 553/729/19 561/728/19 562/730/19 +f 554/731/19 562/730/19 563/732/19 +f 563/732/19 564/735/19 556/734/19 +f 564/735/19 565/1088/19 557/736/19 +f 565/737/19 566/740/19 558/738/19 +f 566/740/19 567/725/19 559/727/19 +f 571/741/20 570/1089/20 569/742/20 +f 569/742/20 576/1090/20 575/743/20 +f 575/743/20 574/1091/20 573/1092/20 +f 573/1092/20 572/1093/20 575/743/20 +f 572/1093/20 571/741/20 575/743/20 +f 577/1094/19 578/1095/19 579/744/19 +f 579/744/19 580/1096/19 581/745/19 +f 581/745/19 582/1097/19 583/746/19 +f 583/746/19 584/1098/19 577/1094/19 +f 577/1094/19 579/744/19 583/746/19 +f 599/747/19 600/1099/19 592/748/19 +f 592/748/19 600/1099/19 593/750/19 +f 585/751/19 593/750/19 594/752/19 +f 586/753/19 594/752/19 595/754/19 +f 595/754/19 596/757/19 588/756/19 +f 596/757/19 597/1100/19 589/758/19 +f 597/759/19 598/1101/19 590/760/19 +f 590/760/19 598/1101/19 599/747/19 +f 603/763/20 602/1102/20 607/764/20 +f 602/1102/20 601/1103/20 607/764/20 +f 601/1103/20 608/1104/20 607/764/20 +f 607/764/20 606/1105/20 605/1106/20 +f 605/1106/20 604/762/20 607/764/20 +f 609/767/19 610/1107/19 611/1108/19 +f 611/1108/19 612/1109/19 609/767/19 +f 612/1109/19 613/1110/19 609/767/19 +f 613/1110/19 614/1111/19 609/767/19 +f 614/1111/19 615/765/19 609/767/19 +f 631/768/19 632/1112/19 624/769/19 +f 624/769/19 632/1112/19 625/771/19 +f 617/772/19 625/771/19 626/773/19 +f 618/774/19 626/773/19 627/775/19 +f 627/775/19 628/778/19 620/777/19 +f 628/778/19 629/1113/19 621/779/19 +f 621/780/19 629/1114/19 630/781/19 +f 622/782/19 630/781/19 631/768/19 +f 635/783/20 634/1115/20 633/784/20 +f 633/784/20 640/1116/20 639/785/20 +f 639/785/20 638/1117/20 637/1118/20 +f 637/1118/20 636/1119/20 639/785/20 +f 636/1119/20 635/783/20 639/785/20 +f 641/788/19 642/1120/19 643/1121/19 +f 643/1121/19 644/1122/19 645/786/19 +f 645/786/19 646/1123/19 647/787/19 +f 647/787/19 648/1124/19 641/788/19 +f 641/788/19 643/1121/19 645/786/19 +f 663/789/19 664/1125/19 656/790/19 +f 656/790/19 664/1125/19 657/792/19 +f 649/793/19 657/792/19 658/794/19 +f 650/795/19 658/794/19 659/796/19 +f 659/796/19 660/799/19 652/798/19 +f 660/799/19 661/1126/19 653/800/19 +f 653/801/19 661/1127/19 662/802/19 +f 654/803/19 662/802/19 663/789/19 +f 667/804/20 666/1128/20 665/805/20 +f 665/805/20 672/1129/20 671/806/20 +f 671/806/20 670/1130/20 669/1131/20 +f 669/1131/20 668/1132/20 671/806/20 +f 668/1132/20 667/804/20 671/806/20 +f 673/807/19 674/1133/19 675/808/19 +f 675/808/19 676/1134/19 677/809/19 +f 677/809/19 678/1135/19 679/1136/19 +f 679/1136/19 680/1137/19 677/809/19 +f 680/1137/19 673/807/19 677/809/19 +f 695/810/19 696/1138/19 688/811/19 +f 688/811/19 696/1138/19 689/813/19 +f 681/814/19 689/813/19 690/815/19 +f 682/816/19 690/815/19 691/817/19 +f 691/817/19 692/820/19 684/819/19 +f 692/820/19 693/1139/19 685/821/19 +f 685/822/19 693/1140/19 694/823/19 +f 686/824/19 694/823/19 695/810/19 +f 699/826/20 698/1141/20 697/1142/20 +f 697/1142/20 704/1143/20 699/826/20 +f 704/1143/20 703/827/20 699/826/20 +f 703/827/20 702/1144/20 701/1145/20 +f 701/1145/20 700/825/20 703/827/20 +f 705/828/19 706/1146/19 707/829/19 +f 707/829/19 708/1147/19 709/830/19 +f 709/830/19 710/1148/19 705/828/19 +f 710/1148/19 711/1149/19 705/828/19 +f 711/1149/19 712/1150/19 705/828/19 +f 727/831/19 728/1151/19 720/832/19 +f 720/832/19 728/1151/19 721/834/19 +f 713/835/19 721/834/19 722/836/19 +f 714/837/19 722/836/19 723/838/19 +f 723/838/19 724/841/19 716/840/19 +f 724/841/19 725/1152/19 717/842/19 +f 725/843/19 726/846/19 718/844/19 +f 726/846/19 727/831/19 719/833/19 +f 731/847/20 730/1153/20 729/848/20 +f 729/848/20 736/1154/20 735/849/20 +f 735/849/20 734/1155/20 733/1156/20 +f 733/1156/20 732/1157/20 735/849/20 +f 732/1157/20 731/847/20 735/849/20 +f 737/1158/19 738/1159/19 739/850/19 +f 739/850/19 740/1160/19 741/851/19 +f 741/851/19 742/1161/19 743/852/19 +f 743/852/19 744/1162/19 737/1158/19 +f 737/1158/19 739/850/19 743/852/19 +f 759/853/19 760/1163/19 752/854/19 +f 752/854/19 760/1163/19 753/856/19 +f 745/857/19 753/856/19 754/858/19 +f 746/859/19 754/858/19 755/860/19 +f 755/860/19 756/863/19 748/862/19 +f 756/863/19 757/1164/19 749/864/19 +f 757/865/19 758/1165/19 750/866/19 +f 750/866/19 758/1165/19 759/853/19 +f 763/869/20 762/1166/20 767/870/20 +f 762/1166/20 761/1167/20 767/870/20 +f 761/1167/20 768/1168/20 767/870/20 +f 767/870/20 766/1169/20 765/1170/20 +f 765/1170/20 764/868/20 767/870/20 +f 769/1171/19 770/1172/19 771/871/19 +f 771/871/19 772/1173/19 773/872/19 +f 773/872/19 774/1174/19 775/873/19 +f 775/873/19 776/1175/19 769/1171/19 +f 769/1171/19 771/871/19 775/873/19 +f 791/874/19 792/1176/19 784/875/19 +f 784/875/19 792/1176/19 785/877/19 +f 777/878/19 785/877/19 786/879/19 +f 778/880/19 786/879/19 787/881/19 +f 787/881/19 788/884/19 780/883/19 +f 788/884/19 789/1177/19 781/885/19 +f 781/886/19 789/1178/19 790/887/19 +f 782/888/19 790/887/19 791/874/19 +f 795/889/20 794/1179/20 793/890/20 +f 793/890/20 800/1180/20 799/891/20 +f 799/891/20 798/1181/20 797/1182/20 +f 797/1182/20 796/1183/20 799/891/20 +f 796/1183/20 795/889/20 799/891/20 +f 801/894/19 802/1184/19 803/1185/19 +f 803/1185/19 804/1186/19 805/892/19 +f 805/892/19 806/1187/19 807/893/19 +f 807/893/19 808/1188/19 801/894/19 +f 801/894/19 803/1185/19 805/892/19 +f 823/895/19 824/1189/19 816/896/19 +f 816/896/19 824/1189/19 817/898/19 +f 809/899/19 817/898/19 818/900/19 +f 810/901/19 818/900/19 819/902/19 +f 819/902/19 820/905/19 812/904/19 +f 820/905/19 821/1190/19 813/906/19 +f 813/907/19 821/1191/19 822/908/19 +f 814/909/19 822/908/19 823/895/19 +f 827/910/20 826/1192/20 825/911/20 +f 825/911/20 832/1193/20 831/912/20 +f 831/912/20 830/1194/20 829/1195/20 +f 829/1195/20 828/1196/20 831/912/20 +f 828/1196/20 827/910/20 831/912/20 +f 833/913/19 834/1197/19 835/914/19 +f 835/914/19 836/1198/19 837/915/19 +f 837/915/19 838/1199/19 839/1200/19 +f 839/1200/19 840/1201/19 837/915/19 +f 840/1201/19 833/913/19 837/915/19 +f 855/916/19 856/1202/19 848/917/19 +f 848/917/19 856/1202/19 849/919/19 +f 841/920/19 849/919/19 850/921/19 +f 842/922/19 850/921/19 851/923/19 +f 851/923/19 852/926/19 844/925/19 +f 852/926/19 853/1203/19 845/927/19 +f 845/928/19 853/1204/19 854/929/19 +f 854/929/19 855/916/19 847/918/19 +f 859/933/20 858/1205/20 857/1206/20 +f 857/1206/20 864/1207/20 859/933/20 +f 864/1207/20 863/1208/20 859/933/20 +f 863/1208/20 862/1209/20 859/933/20 +f 862/1209/20 861/931/20 859/933/20 +f 865/1210/19 866/1211/19 867/934/19 +f 867/934/19 868/1212/19 869/935/19 +f 869/935/19 870/1213/19 871/936/19 +f 871/936/19 872/1214/19 865/1210/19 +f 865/1210/19 867/934/19 871/936/19 +f 887/937/19 888/1215/19 880/938/19 +f 880/938/19 888/1215/19 881/940/19 +f 873/941/19 881/940/19 882/942/19 +f 874/943/19 882/942/19 883/944/19 +f 883/944/19 884/947/19 876/946/19 +f 884/947/19 885/1216/19 877/948/19 +f 885/949/19 886/952/19 878/950/19 +f 886/952/19 887/937/19 879/939/19 +f 891/953/20 890/1217/20 889/954/20 +f 889/954/20 896/1218/20 895/955/20 +f 895/955/20 894/1219/20 893/1220/20 +f 893/1220/20 892/1221/20 895/955/20 +f 892/1221/20 891/953/20 895/955/20 +f 897/1222/19 898/1223/19 899/956/19 +f 899/956/19 900/1224/19 901/957/19 +f 901/957/19 902/1225/19 903/958/19 +f 903/958/19 904/1226/19 897/1222/19 +f 897/1222/19 899/956/19 903/958/19 +f 919/959/19 920/962/19 912/960/19 +f 920/962/19 913/1227/19 905/963/19 +f 905/963/19 913/1227/19 914/964/19 +f 906/965/19 914/964/19 915/966/19 +f 915/966/19 916/969/19 908/968/19 +f 916/969/19 917/1228/19 909/970/19 +f 917/971/19 918/1229/19 910/972/19 +f 910/972/19 918/1229/19 919/959/19 +f 923/975/20 922/1230/20 927/976/20 +f 922/1230/20 921/1231/20 927/976/20 +f 921/1231/20 928/1232/20 927/976/20 +f 927/976/20 926/1233/20 925/1234/20 +f 925/1234/20 924/974/20 927/976/20 +s 1 +f 271/526/37 264/1235/38 263/1236/37 +f 269/538/39 262/1237/40 261/1238/39 +f 267/532/41 260/1239/42 259/1240/41 +f 265/528/43 258/1241/44 257/1242/43 +f 272/525/38 257/1242/43 264/1235/38 +f 270/537/40 263/1236/37 262/1237/40 +f 268/533/42 261/1243/39 260/1239/42 +f 266/530/44 259/1240/41 258/1241/44 +f 275/531/41 284/1244/42 276/534/42 +f 273/527/43 282/1245/44 274/529/44 +f 280/982/38 281/1246/43 273/527/43 +f 278/984/40 287/1247/37 279/524/37 +f 276/534/42 285/1248/39 277/983/39 +f 274/529/44 283/1249/41 275/531/41 +f 279/524/37 288/1250/38 280/982/38 +f 277/536/39 286/1251/40 278/984/40 +f 335/578/45 328/1252/46 327/1253/45 +f 333/590/47 326/1254/48 325/1255/47 +f 331/584/49 324/1256/50 323/1257/49 +f 329/580/51 322/1258/52 321/1259/51 +f 336/577/46 321/1259/51 328/1252/46 +f 334/589/48 327/1253/45 326/1254/48 +f 332/585/50 325/1260/47 324/1256/50 +f 330/582/52 323/1257/49 322/1258/52 +f 339/583/49 348/1261/50 340/586/50 +f 337/579/51 346/1262/52 338/581/52 +f 344/998/46 345/1263/51 337/579/51 +f 342/1000/48 351/1264/45 343/576/45 +f 340/586/50 349/1265/47 341/999/47 +f 338/581/52 347/1266/49 339/583/49 +f 343/576/45 352/1267/46 344/998/46 +f 341/588/47 350/1268/48 342/1000/48 +f 367/599/53 360/1269/54 359/1270/53 +f 365/611/55 358/1271/56 357/1272/55 +f 363/605/57 356/1273/58 355/1274/57 +f 361/601/59 354/1275/60 353/1276/59 +f 368/598/54 353/1276/59 360/1269/54 +f 366/610/56 359/1270/53 358/1271/56 +f 364/606/58 357/1277/55 356/1273/58 +f 362/603/60 355/1274/57 354/1275/60 +f 371/604/57 380/1278/58 372/607/58 +f 369/600/59 378/1279/60 370/602/60 +f 376/1011/54 377/1280/59 369/600/59 +f 374/612/56 383/1281/53 375/597/53 +f 372/607/58 381/1282/55 373/1012/55 +f 370/602/60 379/1283/57 371/604/57 +f 375/597/53 384/1284/54 376/1011/54 +f 373/609/55 382/1285/56 374/612/56 +f 399/621/61 392/1286/62 391/1287/61 +f 397/633/63 390/1288/64 389/1289/63 +f 395/627/65 388/1290/66 387/1291/65 +f 393/623/67 386/1292/68 385/1293/67 +f 400/620/62 385/1293/67 392/1286/62 +f 398/632/64 391/1287/61 390/1288/64 +f 396/628/66 389/1294/63 388/1290/66 +f 394/625/68 387/1291/65 386/1292/68 +f 403/626/65 412/1295/66 404/629/66 +f 401/622/67 410/1296/68 402/624/68 +f 408/1023/62 409/1297/67 401/622/67 +f 406/634/64 415/1298/61 407/619/61 +f 404/629/66 413/1299/63 405/1024/63 +f 402/624/68 411/1300/65 403/626/65 +f 407/619/61 416/1301/62 408/1023/62 +f 405/631/63 414/1302/64 406/634/64 +f 431/643/69 424/1303/70 423/1304/69 +f 429/653/71 422/1305/72 421/1306/71 +f 427/649/73 420/1307/74 419/1308/73 +f 425/645/75 418/1309/76 417/1310/75 +f 432/642/70 417/1310/75 424/1303/70 +f 430/655/72 423/1304/69 422/1305/72 +f 428/650/74 421/1311/71 420/1307/74 +f 426/647/76 419/1308/73 418/1309/76 +f 435/648/73 444/1312/74 436/651/74 +f 433/644/75 442/1313/76 434/646/76 +f 440/1035/70 441/1314/75 433/644/75 +f 438/654/72 447/1315/69 439/641/69 +f 436/651/74 445/1316/71 437/1036/71 +f 434/646/76 443/1317/73 435/648/73 +f 439/641/69 448/1318/70 440/1035/70 +f 437/1037/71 446/1319/72 438/654/72 +f 463/664/39 456/1320/40 455/1321/39 +f 461/674/41 454/1322/42 453/1323/41 +f 459/670/43 452/1324/44 451/1325/43 +f 457/666/37 450/1326/38 449/1327/37 +f 464/663/40 449/1327/37 456/1320/40 +f 462/676/42 455/1321/39 454/1322/42 +f 460/671/44 453/1328/41 452/1324/44 +f 458/668/38 451/1325/43 450/1326/38 +f 467/669/43 476/1329/44 468/672/44 +f 465/665/37 474/1330/38 466/667/38 +f 472/1048/40 473/1331/37 465/665/37 +f 470/675/42 479/1332/39 471/662/39 +f 468/672/44 477/1333/41 469/1049/41 +f 466/667/38 475/1334/43 467/669/43 +f 471/662/39 480/1335/40 472/1048/40 +f 469/1050/41 478/1336/42 470/675/42 +f 495/685/47 488/1337/48 487/1338/47 +f 493/697/49 486/1339/50 485/1340/49 +f 491/691/51 484/1341/52 483/1342/51 +f 489/687/45 482/1343/46 481/1344/45 +f 496/684/48 481/1344/45 488/1337/48 +f 494/696/50 487/1338/47 486/1339/50 +f 492/692/52 485/1345/49 484/1341/52 +f 490/689/46 483/1342/51 482/1343/46 +f 499/690/51 508/1346/52 500/693/52 +f 497/686/45 506/1347/46 498/688/46 +f 504/1061/48 505/1348/45 497/686/45 +f 502/1063/50 511/1349/47 503/683/47 +f 500/693/52 509/1350/49 501/1062/49 +f 498/688/46 507/1351/51 499/690/51 +f 503/683/47 512/1352/48 504/1061/48 +f 501/695/49 510/1353/50 502/1063/50 +f 527/706/55 520/1354/56 519/1355/55 +f 525/716/57 518/1356/58 517/1357/57 +f 523/712/59 516/1358/60 515/1359/59 +f 521/708/53 514/1360/54 513/1361/53 +f 528/705/56 513/1361/53 520/1354/56 +f 526/718/58 519/1355/55 518/1356/58 +f 524/713/60 517/1362/57 516/1358/60 +f 522/710/54 515/1359/59 514/1360/54 +f 531/711/59 540/1363/60 532/714/60 +f 529/707/53 538/1364/54 530/709/54 +f 536/1074/56 537/1365/53 529/707/53 +f 534/717/58 543/1366/55 535/704/55 +f 532/714/60 541/1367/57 533/1075/57 +f 530/709/54 539/1368/59 531/711/59 +f 535/704/55 544/1369/56 536/1074/56 +f 533/1076/57 542/1370/58 534/717/58 +f 559/727/63 552/1371/64 551/1372/63 +f 557/739/65 550/1373/66 549/1374/65 +f 555/733/67 548/1375/68 547/1376/67 +f 553/729/61 546/1377/62 545/1378/61 +f 560/726/64 545/1378/61 552/1371/64 +f 558/738/66 551/1372/63 550/1373/66 +f 556/734/68 549/1379/65 548/1375/68 +f 554/731/62 547/1376/67 546/1377/62 +f 563/732/67 572/1380/68 564/735/68 +f 561/728/61 570/1381/62 562/730/62 +f 568/1087/64 569/1382/61 561/728/61 +f 566/740/66 575/1383/63 567/725/63 +f 564/735/68 573/1384/65 565/1088/65 +f 562/730/62 571/1385/67 563/732/67 +f 567/725/63 576/1386/64 568/1087/64 +f 565/737/65 574/1387/66 566/740/66 +f 591/749/71 584/1388/72 583/1389/71 +f 589/761/73 582/1390/74 581/1391/73 +f 587/755/75 580/1392/76 579/1393/75 +f 585/751/69 578/1394/70 577/1395/69 +f 592/748/72 577/1395/69 584/1388/72 +f 590/760/74 583/1389/71 582/1390/74 +f 588/756/76 581/1396/73 580/1392/76 +f 586/753/70 579/1393/75 578/1394/70 +f 595/754/75 604/1397/76 596/757/76 +f 593/750/69 602/1398/70 594/752/70 +f 600/1099/72 601/1399/69 593/750/69 +f 598/1101/74 607/1400/71 599/747/71 +f 596/757/76 605/1401/73 597/1100/73 +f 594/752/70 603/1402/75 595/754/75 +f 599/747/71 608/1403/72 600/1099/72 +f 597/759/73 606/1404/74 598/1101/74 +f 623/770/41 616/1405/42 615/1406/41 +f 621/780/43 614/1407/44 613/1408/43 +f 619/776/37 612/1409/38 611/1410/37 +f 617/772/39 610/1411/40 609/1412/39 +f 624/769/42 609/1412/39 616/1405/42 +f 622/782/44 615/1406/41 614/1407/44 +f 620/777/38 613/1413/43 612/1409/38 +f 618/774/40 611/1410/37 610/1411/40 +f 627/775/37 636/1414/38 628/778/38 +f 625/771/39 634/1415/40 626/773/40 +f 632/1112/42 633/1416/39 625/771/39 +f 630/781/44 639/1417/41 631/768/41 +f 628/778/38 637/1418/43 629/1113/43 +f 626/773/40 635/1419/37 627/775/37 +f 631/768/41 640/1420/42 632/1112/42 +f 629/1114/43 638/1421/44 630/781/44 +f 655/791/49 648/1422/50 647/1423/49 +f 653/801/51 646/1424/52 645/1425/51 +f 651/797/45 644/1426/46 643/1427/45 +f 649/793/47 642/1428/48 641/1429/47 +f 656/790/50 641/1429/47 648/1422/50 +f 654/803/52 647/1423/49 646/1424/52 +f 652/798/46 645/1430/51 644/1426/46 +f 650/795/48 643/1427/45 642/1428/48 +f 659/796/45 668/1431/46 660/799/46 +f 657/792/47 666/1432/48 658/794/48 +f 664/1125/50 665/1433/47 657/792/47 +f 662/802/52 671/1434/49 663/789/49 +f 660/799/46 669/1435/51 661/1126/51 +f 658/794/48 667/1436/45 659/796/45 +f 663/789/49 672/1437/50 664/1125/50 +f 661/1127/51 670/1438/52 662/802/52 +f 687/812/57 680/1439/58 679/1440/57 +f 685/822/59 678/1441/60 677/1442/59 +f 683/818/53 676/1443/54 675/1444/53 +f 681/814/55 674/1445/56 673/1446/55 +f 688/811/58 673/1446/55 680/1439/58 +f 686/824/60 679/1440/57 678/1441/60 +f 684/819/54 677/1447/59 676/1443/54 +f 682/816/56 675/1444/53 674/1445/56 +f 691/817/53 700/1448/54 692/820/54 +f 689/813/55 698/1449/56 690/815/56 +f 696/1138/58 697/1450/55 689/813/55 +f 694/823/60 703/1451/57 695/810/57 +f 692/820/54 701/1452/59 693/1139/59 +f 690/815/56 699/1453/53 691/817/53 +f 695/810/57 704/1454/58 696/1138/58 +f 693/1140/59 702/1455/60 694/823/60 +f 719/833/65 712/1456/66 711/1457/65 +f 717/845/67 710/1458/68 709/1459/67 +f 715/839/61 708/1460/62 707/1461/61 +f 713/835/63 706/1462/64 705/1463/63 +f 720/832/66 705/1463/63 712/1456/66 +f 718/844/68 711/1457/65 710/1458/68 +f 716/840/62 709/1464/67 708/1460/62 +f 714/837/64 707/1461/61 706/1462/64 +f 723/838/61 732/1465/62 724/841/62 +f 721/834/63 730/1466/64 722/836/64 +f 728/1151/66 729/1467/63 721/834/63 +f 726/846/68 735/1468/65 727/831/65 +f 724/841/62 733/1469/67 725/1152/67 +f 722/836/64 731/1470/61 723/838/61 +f 727/831/65 736/1471/66 728/1151/66 +f 725/843/67 734/1472/68 726/846/68 +f 751/855/73 744/1473/74 743/1474/73 +f 749/867/75 742/1475/76 741/1476/75 +f 747/861/69 740/1477/70 739/1478/69 +f 745/857/71 738/1479/72 737/1480/71 +f 752/854/74 737/1480/71 744/1473/74 +f 750/866/76 743/1474/73 742/1475/76 +f 748/862/70 741/1481/75 740/1477/70 +f 746/859/72 739/1478/69 738/1479/72 +f 755/860/69 764/1482/70 756/863/70 +f 753/856/71 762/1483/72 754/858/72 +f 760/1163/74 761/1484/71 753/856/71 +f 758/1165/76 767/1485/73 759/853/73 +f 756/863/70 765/1486/75 757/1164/75 +f 754/858/72 763/1487/69 755/860/69 +f 759/853/73 768/1488/74 760/1163/74 +f 757/865/75 766/1489/76 758/1165/76 +f 783/876/43 776/1490/44 775/1491/43 +f 781/886/37 774/1492/38 773/1493/37 +f 779/882/39 772/1494/40 771/1495/39 +f 777/878/41 770/1496/42 769/1497/41 +f 784/875/44 769/1497/41 776/1490/44 +f 782/888/38 775/1491/43 774/1492/38 +f 780/883/40 773/1498/37 772/1494/40 +f 778/880/42 771/1495/39 770/1496/42 +f 787/881/39 796/1499/40 788/884/40 +f 785/877/41 794/1500/42 786/879/42 +f 792/1176/44 793/1501/41 785/877/41 +f 790/887/38 799/1502/43 791/874/43 +f 788/884/40 797/1503/37 789/1177/37 +f 786/879/42 795/1504/39 787/881/39 +f 791/874/43 800/1505/44 792/1176/44 +f 789/1178/37 798/1506/38 790/887/38 +f 815/897/51 808/1507/52 807/1508/51 +f 813/907/45 806/1509/46 805/1510/45 +f 811/903/47 804/1511/48 803/1512/47 +f 809/899/49 802/1513/50 801/1514/49 +f 816/896/52 801/1514/49 808/1507/52 +f 814/909/46 807/1508/51 806/1509/46 +f 812/904/48 805/1515/45 804/1511/48 +f 810/901/50 803/1512/47 802/1513/50 +f 819/902/47 828/1516/48 820/905/48 +f 817/898/49 826/1517/50 818/900/50 +f 824/1189/52 825/1518/49 817/898/49 +f 822/908/46 831/1519/51 823/895/51 +f 820/905/48 829/1520/45 821/1190/45 +f 818/900/50 827/1521/47 819/902/47 +f 823/895/51 832/1522/52 824/1189/52 +f 821/1191/45 830/1523/46 822/908/46 +f 847/918/59 840/1524/60 839/1525/59 +f 845/928/53 838/1526/54 837/1527/53 +f 843/924/55 836/1528/56 835/1529/55 +f 841/920/57 834/1530/58 833/1531/57 +f 848/917/60 833/1531/57 840/1524/60 +f 846/930/54 839/1525/59 838/1526/54 +f 844/925/56 837/1532/53 836/1528/56 +f 842/922/58 835/1529/55 834/1530/58 +f 851/923/55 860/1533/56 852/926/56 +f 849/919/57 858/1534/58 850/921/58 +f 856/1202/60 857/1535/57 849/919/57 +f 854/929/54 863/1536/59 855/916/59 +f 852/926/56 861/1537/53 853/1203/53 +f 850/921/58 859/1538/55 851/923/55 +f 855/916/59 864/1539/60 856/1202/60 +f 853/1204/53 862/1540/54 854/929/54 +f 879/939/67 872/1541/68 871/1542/67 +f 877/951/61 870/1543/62 869/1544/61 +f 875/945/63 868/1545/64 867/1546/63 +f 873/941/65 866/1547/66 865/1548/65 +f 880/938/68 865/1548/65 872/1541/68 +f 878/950/62 871/1542/67 870/1543/62 +f 876/946/64 869/1549/61 868/1545/64 +f 874/943/66 867/1546/63 866/1547/66 +f 883/944/63 892/1550/64 884/947/64 +f 881/940/65 890/1551/66 882/942/66 +f 888/1215/68 889/1552/65 881/940/65 +f 886/952/62 895/1553/67 887/937/67 +f 884/947/64 893/1554/61 885/1216/61 +f 882/942/66 891/1555/63 883/944/63 +f 887/937/67 896/1556/68 888/1215/68 +f 885/949/61 894/1557/62 886/952/62 +f 911/961/75 904/1558/76 903/1559/75 +f 909/973/69 902/1560/70 901/1561/69 +f 907/967/71 900/1562/72 899/1563/71 +f 905/963/73 898/1564/74 897/1565/73 +f 912/960/76 897/1565/73 904/1558/76 +f 910/972/70 903/1559/75 902/1560/70 +f 908/968/72 901/1566/69 900/1562/72 +f 906/965/74 899/1563/71 898/1564/74 +f 915/966/71 924/1567/72 916/969/72 +f 913/1227/73 922/1568/74 914/964/74 +f 920/962/76 921/1569/73 913/1227/73 +f 918/1229/70 927/1570/75 919/959/75 +f 916/969/72 925/1571/69 917/1228/69 +f 914/964/74 923/1572/71 915/966/71 +f 919/959/75 928/1573/76 920/962/76 +f 917/971/69 926/1574/70 918/1229/70 +f 271/526/37 272/525/38 264/1235/38 +f 269/538/39 270/537/40 262/1237/40 +f 267/532/41 268/533/42 260/1239/42 +f 265/528/43 266/530/44 258/1241/44 +f 272/525/38 265/528/43 257/1242/43 +f 270/537/40 271/526/37 263/1236/37 +f 268/533/42 269/535/39 261/1243/39 +f 266/530/44 267/532/41 259/1240/41 +f 275/531/41 283/1249/41 284/1244/42 +f 273/527/43 281/1246/43 282/1245/44 +f 280/982/38 288/1250/38 281/1246/43 +f 278/984/40 286/1251/40 287/1247/37 +f 276/534/42 284/1244/42 285/1248/39 +f 274/529/44 282/1245/44 283/1249/41 +f 279/524/37 287/1247/37 288/1250/38 +f 277/536/39 285/1575/39 286/1251/40 +f 335/578/45 336/577/46 328/1252/46 +f 333/590/47 334/589/48 326/1254/48 +f 331/584/49 332/585/50 324/1256/50 +f 329/580/51 330/582/52 322/1258/52 +f 336/577/46 329/580/51 321/1259/51 +f 334/589/48 335/578/45 327/1253/45 +f 332/585/50 333/587/47 325/1260/47 +f 330/582/52 331/584/49 323/1257/49 +f 339/583/49 347/1266/49 348/1261/50 +f 337/579/51 345/1263/51 346/1262/52 +f 344/998/46 352/1267/46 345/1263/51 +f 342/1000/48 350/1268/48 351/1264/45 +f 340/586/50 348/1261/50 349/1265/47 +f 338/581/52 346/1262/52 347/1266/49 +f 343/576/45 351/1264/45 352/1267/46 +f 341/588/47 349/1576/47 350/1268/48 +f 367/599/53 368/598/54 360/1269/54 +f 365/611/55 366/610/56 358/1271/56 +f 363/605/57 364/606/58 356/1273/58 +f 361/601/59 362/603/60 354/1275/60 +f 368/598/54 361/601/59 353/1276/59 +f 366/610/56 367/599/53 359/1270/53 +f 364/606/58 365/608/55 357/1277/55 +f 362/603/60 363/605/57 355/1274/57 +f 371/604/57 379/1283/57 380/1278/58 +f 369/600/59 377/1280/59 378/1279/60 +f 376/1011/54 384/1284/54 377/1280/59 +f 374/612/56 382/1285/56 383/1281/53 +f 372/607/58 380/1278/58 381/1282/55 +f 370/602/60 378/1279/60 379/1283/57 +f 375/597/53 383/1281/53 384/1284/54 +f 373/609/55 381/1577/55 382/1285/56 +f 399/621/61 400/620/62 392/1286/62 +f 397/633/63 398/632/64 390/1288/64 +f 395/627/65 396/628/66 388/1290/66 +f 393/623/67 394/625/68 386/1292/68 +f 400/620/62 393/623/67 385/1293/67 +f 398/632/64 399/621/61 391/1287/61 +f 396/628/66 397/630/63 389/1294/63 +f 394/625/68 395/627/65 387/1291/65 +f 403/626/65 411/1300/65 412/1295/66 +f 401/622/67 409/1297/67 410/1296/68 +f 408/1023/62 416/1301/62 409/1297/67 +f 406/634/64 414/1302/64 415/1298/61 +f 404/629/66 412/1295/66 413/1299/63 +f 402/624/68 410/1296/68 411/1300/65 +f 407/619/61 415/1298/61 416/1301/62 +f 405/631/63 413/1578/63 414/1302/64 +f 431/643/69 432/642/70 424/1303/70 +f 429/653/71 430/655/72 422/1305/72 +f 427/649/73 428/650/74 420/1307/74 +f 425/645/75 426/647/76 418/1309/76 +f 432/642/70 425/645/75 417/1310/75 +f 430/655/72 431/643/69 423/1304/69 +f 428/650/74 429/652/71 421/1311/71 +f 426/647/76 427/649/73 419/1308/73 +f 435/648/73 443/1317/73 444/1312/74 +f 433/644/75 441/1314/75 442/1313/76 +f 440/1035/70 448/1318/70 441/1314/75 +f 438/654/72 446/1319/72 447/1315/69 +f 436/651/74 444/1312/74 445/1316/71 +f 434/646/76 442/1313/76 443/1317/73 +f 439/641/69 447/1315/69 448/1318/70 +f 437/1037/71 445/1579/71 446/1319/72 +f 463/664/39 464/663/40 456/1320/40 +f 461/674/41 462/676/42 454/1322/42 +f 459/670/43 460/671/44 452/1324/44 +f 457/666/37 458/668/38 450/1326/38 +f 464/663/40 457/666/37 449/1327/37 +f 462/676/42 463/664/39 455/1321/39 +f 460/671/44 461/673/41 453/1328/41 +f 458/668/38 459/670/43 451/1325/43 +f 467/669/43 475/1334/43 476/1329/44 +f 465/665/37 473/1331/37 474/1330/38 +f 472/1048/40 480/1335/40 473/1331/37 +f 470/675/42 478/1336/42 479/1332/39 +f 468/672/44 476/1329/44 477/1333/41 +f 466/667/38 474/1330/38 475/1334/43 +f 471/662/39 479/1332/39 480/1335/40 +f 469/1050/41 477/1580/41 478/1336/42 +f 495/685/47 496/684/48 488/1337/48 +f 493/697/49 494/696/50 486/1339/50 +f 491/691/51 492/692/52 484/1341/52 +f 489/687/45 490/689/46 482/1343/46 +f 496/684/48 489/687/45 481/1344/45 +f 494/696/50 495/685/47 487/1338/47 +f 492/692/52 493/694/49 485/1345/49 +f 490/689/46 491/691/51 483/1342/51 +f 499/690/51 507/1351/51 508/1346/52 +f 497/686/45 505/1348/45 506/1347/46 +f 504/1061/48 512/1352/48 505/1348/45 +f 502/1063/50 510/1353/50 511/1349/47 +f 500/693/52 508/1346/52 509/1350/49 +f 498/688/46 506/1347/46 507/1351/51 +f 503/683/47 511/1349/47 512/1352/48 +f 501/695/49 509/1581/49 510/1353/50 +f 527/706/55 528/705/56 520/1354/56 +f 525/716/57 526/718/58 518/1356/58 +f 523/712/59 524/713/60 516/1358/60 +f 521/708/53 522/710/54 514/1360/54 +f 528/705/56 521/708/53 513/1361/53 +f 526/718/58 527/706/55 519/1355/55 +f 524/713/60 525/715/57 517/1362/57 +f 522/710/54 523/712/59 515/1359/59 +f 531/711/59 539/1368/59 540/1363/60 +f 529/707/53 537/1365/53 538/1364/54 +f 536/1074/56 544/1369/56 537/1365/53 +f 534/717/58 542/1370/58 543/1366/55 +f 532/714/60 540/1363/60 541/1367/57 +f 530/709/54 538/1364/54 539/1368/59 +f 535/704/55 543/1366/55 544/1369/56 +f 533/1076/57 541/1582/57 542/1370/58 +f 559/727/63 560/726/64 552/1371/64 +f 557/739/65 558/738/66 550/1373/66 +f 555/733/67 556/734/68 548/1375/68 +f 553/729/61 554/731/62 546/1377/62 +f 560/726/64 553/729/61 545/1378/61 +f 558/738/66 559/727/63 551/1372/63 +f 556/734/68 557/736/65 549/1379/65 +f 554/731/62 555/733/67 547/1376/67 +f 563/732/67 571/1385/67 572/1380/68 +f 561/728/61 569/1382/61 570/1381/62 +f 568/1087/64 576/1386/64 569/1382/61 +f 566/740/66 574/1387/66 575/1383/63 +f 564/735/68 572/1380/68 573/1384/65 +f 562/730/62 570/1381/62 571/1385/67 +f 567/725/63 575/1383/63 576/1386/64 +f 565/737/65 573/1583/65 574/1387/66 +f 591/749/71 592/748/72 584/1388/72 +f 589/761/73 590/760/74 582/1390/74 +f 587/755/75 588/756/76 580/1392/76 +f 585/751/69 586/753/70 578/1394/70 +f 592/748/72 585/751/69 577/1395/69 +f 590/760/74 591/749/71 583/1389/71 +f 588/756/76 589/758/73 581/1396/73 +f 586/753/70 587/755/75 579/1393/75 +f 595/754/75 603/1402/75 604/1397/76 +f 593/750/69 601/1399/69 602/1398/70 +f 600/1099/72 608/1403/72 601/1399/69 +f 598/1101/74 606/1404/74 607/1400/71 +f 596/757/76 604/1397/76 605/1401/73 +f 594/752/70 602/1398/70 603/1402/75 +f 599/747/71 607/1400/71 608/1403/72 +f 597/759/73 605/1584/73 606/1404/74 +f 623/770/41 624/769/42 616/1405/42 +f 621/780/43 622/782/44 614/1407/44 +f 619/776/37 620/777/38 612/1409/38 +f 617/772/39 618/774/40 610/1411/40 +f 624/769/42 617/772/39 609/1412/39 +f 622/782/44 623/770/41 615/1406/41 +f 620/777/38 621/779/43 613/1413/43 +f 618/774/40 619/776/37 611/1410/37 +f 627/775/37 635/1419/37 636/1414/38 +f 625/771/39 633/1416/39 634/1415/40 +f 632/1112/42 640/1420/42 633/1416/39 +f 630/781/44 638/1421/44 639/1417/41 +f 628/778/38 636/1414/38 637/1418/43 +f 626/773/40 634/1415/40 635/1419/37 +f 631/768/41 639/1417/41 640/1420/42 +f 629/1114/43 637/1585/43 638/1421/44 +f 655/791/49 656/790/50 648/1422/50 +f 653/801/51 654/803/52 646/1424/52 +f 651/797/45 652/798/46 644/1426/46 +f 649/793/47 650/795/48 642/1428/48 +f 656/790/50 649/793/47 641/1429/47 +f 654/803/52 655/791/49 647/1423/49 +f 652/798/46 653/800/51 645/1430/51 +f 650/795/48 651/797/45 643/1427/45 +f 659/796/45 667/1436/45 668/1431/46 +f 657/792/47 665/1433/47 666/1432/48 +f 664/1125/50 672/1437/50 665/1433/47 +f 662/802/52 670/1438/52 671/1434/49 +f 660/799/46 668/1431/46 669/1435/51 +f 658/794/48 666/1432/48 667/1436/45 +f 663/789/49 671/1434/49 672/1437/50 +f 661/1127/51 669/1586/51 670/1438/52 +f 687/812/57 688/811/58 680/1439/58 +f 685/822/59 686/824/60 678/1441/60 +f 683/818/53 684/819/54 676/1443/54 +f 681/814/55 682/816/56 674/1445/56 +f 688/811/58 681/814/55 673/1446/55 +f 686/824/60 687/812/57 679/1440/57 +f 684/819/54 685/821/59 677/1447/59 +f 682/816/56 683/818/53 675/1444/53 +f 691/817/53 699/1453/53 700/1448/54 +f 689/813/55 697/1450/55 698/1449/56 +f 696/1138/58 704/1454/58 697/1450/55 +f 694/823/60 702/1455/60 703/1451/57 +f 692/820/54 700/1448/54 701/1452/59 +f 690/815/56 698/1449/56 699/1453/53 +f 695/810/57 703/1451/57 704/1454/58 +f 693/1140/59 701/1587/59 702/1455/60 +f 719/833/65 720/832/66 712/1456/66 +f 717/845/67 718/844/68 710/1458/68 +f 715/839/61 716/840/62 708/1460/62 +f 713/835/63 714/837/64 706/1462/64 +f 720/832/66 713/835/63 705/1463/63 +f 718/844/68 719/833/65 711/1457/65 +f 716/840/62 717/842/67 709/1464/67 +f 714/837/64 715/839/61 707/1461/61 +f 723/838/61 731/1470/61 732/1465/62 +f 721/834/63 729/1467/63 730/1466/64 +f 728/1151/66 736/1471/66 729/1467/63 +f 726/846/68 734/1472/68 735/1468/65 +f 724/841/62 732/1465/62 733/1469/67 +f 722/836/64 730/1466/64 731/1470/61 +f 727/831/65 735/1468/65 736/1471/66 +f 725/843/67 733/1588/67 734/1472/68 +f 751/855/73 752/854/74 744/1473/74 +f 749/867/75 750/866/76 742/1475/76 +f 747/861/69 748/862/70 740/1477/70 +f 745/857/71 746/859/72 738/1479/72 +f 752/854/74 745/857/71 737/1480/71 +f 750/866/76 751/855/73 743/1474/73 +f 748/862/70 749/864/75 741/1481/75 +f 746/859/72 747/861/69 739/1478/69 +f 755/860/69 763/1487/69 764/1482/70 +f 753/856/71 761/1484/71 762/1483/72 +f 760/1163/74 768/1488/74 761/1484/71 +f 758/1165/76 766/1489/76 767/1485/73 +f 756/863/70 764/1482/70 765/1486/75 +f 754/858/72 762/1483/72 763/1487/69 +f 759/853/73 767/1485/73 768/1488/74 +f 757/865/75 765/1589/75 766/1489/76 +f 783/876/43 784/875/44 776/1490/44 +f 781/886/37 782/888/38 774/1492/38 +f 779/882/39 780/883/40 772/1494/40 +f 777/878/41 778/880/42 770/1496/42 +f 784/875/44 777/878/41 769/1497/41 +f 782/888/38 783/876/43 775/1491/43 +f 780/883/40 781/885/37 773/1498/37 +f 778/880/42 779/882/39 771/1495/39 +f 787/881/39 795/1504/39 796/1499/40 +f 785/877/41 793/1501/41 794/1500/42 +f 792/1176/44 800/1505/44 793/1501/41 +f 790/887/38 798/1506/38 799/1502/43 +f 788/884/40 796/1499/40 797/1503/37 +f 786/879/42 794/1500/42 795/1504/39 +f 791/874/43 799/1502/43 800/1505/44 +f 789/1178/37 797/1590/37 798/1506/38 +f 815/897/51 816/896/52 808/1507/52 +f 813/907/45 814/909/46 806/1509/46 +f 811/903/47 812/904/48 804/1511/48 +f 809/899/49 810/901/50 802/1513/50 +f 816/896/52 809/899/49 801/1514/49 +f 814/909/46 815/897/51 807/1508/51 +f 812/904/48 813/906/45 805/1515/45 +f 810/901/50 811/903/47 803/1512/47 +f 819/902/47 827/1521/47 828/1516/48 +f 817/898/49 825/1518/49 826/1517/50 +f 824/1189/52 832/1522/52 825/1518/49 +f 822/908/46 830/1523/46 831/1519/51 +f 820/905/48 828/1516/48 829/1520/45 +f 818/900/50 826/1517/50 827/1521/47 +f 823/895/51 831/1519/51 832/1522/52 +f 821/1191/45 829/1591/45 830/1523/46 +f 847/918/59 848/917/60 840/1524/60 +f 845/928/53 846/930/54 838/1526/54 +f 843/924/55 844/925/56 836/1528/56 +f 841/920/57 842/922/58 834/1530/58 +f 848/917/60 841/920/57 833/1531/57 +f 846/930/54 847/918/59 839/1525/59 +f 844/925/56 845/927/53 837/1532/53 +f 842/922/58 843/924/55 835/1529/55 +f 851/923/55 859/1538/55 860/1533/56 +f 849/919/57 857/1535/57 858/1534/58 +f 856/1202/60 864/1539/60 857/1535/57 +f 854/929/54 862/1540/54 863/1536/59 +f 852/926/56 860/1533/56 861/1537/53 +f 850/921/58 858/1534/58 859/1538/55 +f 855/916/59 863/1536/59 864/1539/60 +f 853/1204/53 861/1592/53 862/1540/54 +f 879/939/67 880/938/68 872/1541/68 +f 877/951/61 878/950/62 870/1543/62 +f 875/945/63 876/946/64 868/1545/64 +f 873/941/65 874/943/66 866/1547/66 +f 880/938/68 873/941/65 865/1548/65 +f 878/950/62 879/939/67 871/1542/67 +f 876/946/64 877/948/61 869/1549/61 +f 874/943/66 875/945/63 867/1546/63 +f 883/944/63 891/1555/63 892/1550/64 +f 881/940/65 889/1552/65 890/1551/66 +f 888/1215/68 896/1556/68 889/1552/65 +f 886/952/62 894/1557/62 895/1553/67 +f 884/947/64 892/1550/64 893/1554/61 +f 882/942/66 890/1551/66 891/1555/63 +f 887/937/67 895/1553/67 896/1556/68 +f 885/949/61 893/1593/61 894/1557/62 +f 911/961/75 912/960/76 904/1558/76 +f 909/973/69 910/972/70 902/1560/70 +f 907/967/71 908/968/72 900/1562/72 +f 905/963/73 906/965/74 898/1564/74 +f 912/960/76 905/963/73 897/1565/73 +f 910/972/70 911/961/75 903/1559/75 +f 908/968/72 909/970/69 901/1566/69 +f 906/965/74 907/967/71 899/1563/71 +f 915/966/71 923/1572/71 924/1567/72 +f 913/1227/73 921/1569/73 922/1568/74 +f 920/962/76 928/1573/76 921/1569/73 +f 918/1229/70 926/1574/70 927/1570/75 +f 916/969/72 924/1567/72 925/1571/69 +f 914/964/74 922/1568/74 923/1572/71 +f 919/959/75 927/1570/75 928/1573/76 +f 917/971/69 925/1594/69 926/1574/70 +o Gun +v 1.000000 0.562500 2.000000 +v 1.000000 1.437500 2.000000 +v 1.000000 0.562500 6.000000 +v 1.000000 1.437500 6.000000 +v -1.000000 0.562500 2.000000 +v -1.000000 1.437500 2.000000 +v -1.000000 0.562500 6.000000 +v -1.000000 1.437500 6.000000 +v 0.437500 2.000000 2.000000 +v -0.437500 2.000000 2.000000 +v 0.437500 2.000000 6.000000 +v -0.437500 2.000000 6.000000 +v 0.437500 0.000000 2.000000 +v -0.437500 0.000000 2.000000 +v 0.437500 0.000000 6.000000 +v -0.437500 0.000000 6.000000 +v 0.250000 2.750000 2.000000 +v -0.250000 2.750000 2.000000 +v 0.250000 2.750000 6.000000 +v -0.250000 2.750000 6.000000 +v 0.000000 1.500000 6.000000 +v 0.250000 1.433012 6.000000 +v 0.433013 1.250000 6.000000 +v 0.500000 1.000000 6.000000 +v 0.433013 0.750000 6.000000 +v 0.250000 0.566988 6.000000 +v 0.000000 0.500000 6.000000 +v -0.250000 0.566987 6.000000 +v -0.433012 0.750000 6.000000 +v -0.500000 1.000000 6.000000 +v -0.433012 1.250000 6.000000 +v -0.250000 1.433012 6.000000 +v 0.000000 1.500000 7.500000 +v 0.250000 1.433012 7.500000 +v 0.433013 1.250000 7.500000 +v 0.500000 1.000000 7.500000 +v 0.433013 0.750000 7.500000 +v 0.250000 0.566988 7.500000 +v 0.000001 0.500000 7.500000 +v -0.249999 0.566987 7.500000 +v -0.433012 0.750000 7.500000 +v -0.500000 1.000000 7.500000 +v -0.433012 1.250000 7.500000 +v -0.250000 1.433012 7.500000 +v 0.000000 1.375000 7.500000 +v 0.187500 1.324759 7.500000 +v 0.324760 1.187500 7.500000 +v 0.375000 1.000000 7.500000 +v 0.324760 0.812500 7.500000 +v 0.187500 0.675241 7.500000 +v 0.000000 0.625000 7.500000 +v -0.187499 0.675240 7.500000 +v -0.324759 0.812500 7.500000 +v -0.375000 1.000000 7.500000 +v -0.324759 1.187500 7.500000 +v -0.187500 1.324759 7.500000 +v 0.000000 1.375000 6.500000 +v 0.187500 1.324759 6.500000 +v 0.324760 1.187500 6.500000 +v 0.375000 1.000000 6.500000 +v 0.324760 0.812500 6.500000 +v 0.187500 0.675241 6.500000 +v 0.000000 0.625000 6.500000 +v -0.187500 0.675240 6.500000 +v -0.324759 0.812500 6.500000 +v -0.375000 1.000000 6.500000 +v -0.324759 1.187500 6.500000 +v -0.187500 1.324759 6.500000 +v 0.000000 1.500000 2.000000 +v 0.250000 1.433012 2.000000 +v 0.433013 1.250000 2.000000 +v 0.500000 1.000000 2.000000 +v 0.433013 0.750000 2.000000 +v 0.250000 0.566988 2.000000 +v 0.000000 0.500000 2.000000 +v -0.250000 0.566987 2.000000 +v -0.433012 0.750000 2.000000 +v -0.500000 1.000000 2.000000 +v -0.433012 1.250000 2.000000 +v -0.250000 1.433012 2.000000 +v 0.000000 1.500000 1.000000 +v 0.250000 1.433012 1.000000 +v 0.433013 1.250000 1.000000 +v 0.500000 1.000000 1.000000 +v 0.433013 0.750000 1.000000 +v 0.250000 0.566988 1.000000 +v 0.000000 0.500000 1.000000 +v -0.250000 0.566987 1.000000 +v -0.433012 0.750000 1.000000 +v -0.500000 1.000000 1.000000 +v -0.433013 1.250000 1.000000 +v -0.250000 1.433012 1.000000 +v 0.500000 0.250000 0.500000 +v -0.500000 0.250000 0.500000 +v 0.500000 0.250000 1.000000 +v -0.500000 0.250000 1.000000 +v 0.500000 1.750000 1.000000 +v 0.500000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v -0.500000 1.750000 1.000000 +v -0.312500 0.000000 6.000000 +v 0.312500 0.000000 6.000000 +v -0.312500 0.000000 2.000000 +v 0.312500 0.000000 2.000000 +v -0.562500 -0.500000 6.000000 +v 0.562500 -0.500000 6.000000 +v -0.562500 -0.500000 2.000000 +v 0.562500 -0.500000 2.000000 +v -0.312500 -1.000000 6.000000 +v 0.312500 -1.000000 6.000000 +v -0.312500 -1.000000 2.000000 +v 0.312500 -1.000000 2.000000 +v 0.750000 0.250000 -1.875000 +v -0.750000 0.250000 -1.875000 +v 0.750000 0.250000 -1.375000 +v -0.750000 0.250000 -1.375000 +v 0.750000 2.750000 -1.375000 +v 0.312500 2.125000 2.000000 +v -0.312500 2.125000 2.000000 +v -0.750000 2.750000 -1.375000 +v 0.750000 0.500000 -2.375000 +v -0.750000 0.500000 -2.375000 +v 0.750000 2.750000 -2.375000 +v -0.750000 2.750000 -2.375000 +v -0.187500 2.625000 2.000000 +v 0.187500 2.625000 2.000000 +v 0.312500 2.125000 -1.375000 +v -0.312500 2.125000 -1.375000 +v -0.187500 2.625000 -1.375000 +v 0.187500 2.625000 -1.375000 +v 0.500000 1.250000 -1.375000 +v -0.500000 1.250000 -1.375000 +v 0.500000 2.000000 0.750000 +v -0.500000 2.000000 0.750000 +v 0.500000 2.000000 -1.375000 +v -0.500000 2.000000 -1.375000 +v -0.625000 2.000000 -2.375000 +v -1.000000 1.625000 -2.375000 +v 1.000000 1.625000 -2.375000 +v 0.625000 2.000000 -2.375000 +v -1.000000 1.625000 -4.875000 +v -0.625000 2.000000 -4.875000 +v 0.625000 2.000000 -4.875000 +v 1.000000 1.625000 -4.875000 +v 0.750000 1.375000 -4.875000 +v 0.375000 1.750000 -4.875000 +v -0.375000 1.750000 -4.875000 +v -0.750000 1.375000 -4.875000 +v 0.375000 0.250000 -4.875000 +v 0.750000 0.625000 -4.875000 +v -0.750000 0.625000 -4.875000 +v -0.375000 0.250000 -4.875000 +v 0.750000 0.625000 -6.875000 +v 0.375000 0.250000 -6.875000 +v 0.375000 1.750000 -6.875000 +v 0.750000 1.375000 -6.875000 +v -0.750000 1.375000 -6.875000 +v -0.375000 1.750000 -6.875000 +v -0.375000 0.250000 -6.875000 +v -0.750000 0.625000 -6.875000 +v 0.125000 2.750000 -2.375000 +v 0.500000 2.750000 -2.375000 +v 0.125000 2.000000 -3.375000 +v 0.500000 2.000000 -3.375000 +v 0.125000 2.000000 -2.375000 +v 0.500000 2.000000 -2.375000 +v -0.125000 2.000000 -2.375000 +v -0.500000 2.000000 -2.375000 +v -0.125000 2.000000 -3.375000 +v -0.500000 2.000000 -3.375000 +v -0.125000 2.750000 -2.375000 +v -0.500000 2.750000 -2.375000 +v -0.250000 0.000000 -3.250000 +v 0.250000 0.000000 -3.250000 +v -0.250000 0.000000 -4.625000 +v 0.250000 0.000000 -4.625000 +v -0.250000 -2.500000 -5.125000 +v -0.250000 -2.500000 -3.750000 +v 0.250000 -2.500000 -3.750000 +v 0.250000 -2.500000 -5.125000 +v 0.500000 0.000000 -3.500000 +v 0.500000 0.000000 -4.375000 +v 0.500000 -2.500000 -4.000000 +v 0.500000 -2.500000 -4.875000 +v -0.500000 0.000000 -4.375000 +v -0.500000 0.000000 -3.500000 +v -0.500000 -2.500000 -4.875000 +v -0.500000 -2.500000 -4.000000 +v -0.250000 0.000000 -2.875000 +v 0.250000 0.000000 -2.875000 +v -0.250000 -1.000000 -2.750000 +v 0.250000 -1.000000 -2.750000 +v -0.250000 0.000000 -3.250000 +v 0.250000 0.000000 -3.250000 +v -0.250000 -1.000000 -3.500000 +v 0.250000 -1.000000 -3.500000 +v 0.750000 0.875000 -4.875000 +v 1.000000 0.875000 -4.875000 +v 0.750000 1.125000 -4.875000 +v 1.000000 1.125000 -4.875000 +v 0.750000 0.875000 -8.875000 +v 1.000000 0.875000 -8.875000 +v 0.750000 1.125000 -8.875000 +v 1.000000 1.125000 -8.875000 +v -1.000000 0.875000 -4.875000 +v -0.750000 0.875000 -4.875000 +v -1.000000 1.125000 -4.875000 +v -0.750000 1.125000 -4.875000 +v -1.000000 0.875000 -8.875000 +v -0.750000 0.875000 -8.875000 +v -1.000000 1.125000 -8.875000 +v -0.750000 1.125000 -8.875000 +v 0.750000 0.875000 -9.125000 +v 1.000000 0.875000 -9.125000 +v -1.000000 0.875000 -9.125000 +v -0.750000 0.875000 -9.125000 +v 0.750000 -2.125000 -8.875000 +v 1.000000 -2.125000 -8.875000 +v -1.000000 -2.125000 -8.875000 +v -0.750000 -2.125000 -8.875000 +v 0.750000 -2.125000 -9.125000 +v 1.000000 -2.125000 -9.125000 +v -1.000000 -2.125000 -9.125000 +v -0.750000 -2.125000 -9.125000 +v 0.750000 -2.375000 -8.875000 +v -0.750000 -2.375000 -8.875000 +v 0.750000 -2.375000 -9.125000 +v -0.750000 -2.375000 -9.125000 +v 0.500000 1.500000 2.000000 +v 0.500000 1.250000 2.000000 +v 0.500000 1.500000 0.625000 +v 0.500000 1.250000 0.625000 +v 0.750000 1.500000 2.000000 +v 0.750000 1.250000 2.000000 +v 0.750000 1.500000 0.875000 +v 0.750000 1.250000 0.875000 +v 0.500000 0.750000 2.000000 +v 0.500000 0.500000 2.000000 +v 0.500000 0.750000 0.625000 +v 0.500000 0.500000 0.625000 +v 0.750000 0.750000 2.000000 +v 0.750000 0.500000 2.000000 +v 0.750000 0.750000 0.875000 +v 0.750000 0.500000 0.875000 +v -0.500000 1.500000 2.000000 +v -0.500000 1.250000 2.000000 +v -0.500000 1.500000 0.625000 +v -0.500000 1.250000 0.625000 +v -0.750000 1.500000 2.000000 +v -0.750000 1.250000 2.000000 +v -0.750000 1.500000 0.875000 +v -0.750000 1.250000 0.875000 +v -0.500000 0.750000 2.000000 +v -0.500000 0.500000 2.000000 +v -0.500000 0.750000 0.625000 +v -0.500000 0.500000 0.625000 +v -0.750000 0.750000 2.000000 +v -0.750000 0.500000 2.000000 +v -0.750000 0.750000 0.875000 +v -0.750000 0.500000 0.875000 +v -1.000000 0.375000 -2.375000 +v -0.625000 0.000000 -2.375000 +v 0.625000 0.000000 -2.375000 +v 1.000000 0.375000 -2.375000 +v -0.625000 0.000000 -4.875000 +v -1.000000 0.375000 -4.875000 +v 1.000000 0.375000 -4.875000 +v 0.625000 0.000000 -4.875000 +vt 0.191235 0.199219 +vt 0.063745 0.144531 +vt 0.191235 0.144531 +vt 0.191235 0.394531 +vt 0.063745 0.359375 +vt 0.191235 0.359375 +vt 0.063745 0.394531 +vt 0.191235 0.449219 +vt 0.063745 0.449219 +vt 0.191235 0.234375 +vt 0.063745 0.199219 +vt 0.063745 0.281250 +vt 0.191235 0.281250 +vt 0.191235 0.484375 +vt 0.063745 0.109375 +vt 0.191235 0.312500 +vt 0.063745 0.312500 +vt 0.063745 0.492188 +vt 0.063745 0.484375 +vt 0.191235 0.101562 +vt 0.191235 0.109375 +vt 0.290837 0.078125 +vt 0.286853 0.062500 +vt 0.290837 0.062500 +vt 0.290837 0.156250 +vt 0.286853 0.140625 +vt 0.290837 0.140625 +vt 0.290837 -0.000000 +vt 0.286853 0.011719 +vt 0.286853 -0.000000 +vt 0.286853 0.046875 +vt 0.290837 0.046875 +vt 0.290837 0.125000 +vt 0.286853 0.136719 +vt 0.286853 0.125000 +vt 0.290837 0.171875 +vt 0.286853 0.183594 +vt 0.286853 0.171875 +vt 0.290837 0.031250 +vt 0.286853 0.042969 +vt 0.286853 0.031250 +vt 0.286853 0.109375 +vt 0.290837 0.109375 +vt 0.286853 0.089844 +vt 0.286853 0.078125 +vt 0.286853 0.156250 +vt 0.290837 0.015625 +vt 0.286853 0.027344 +vt 0.286853 0.015625 +vt 0.286853 0.093750 +vt 0.290837 0.093750 +vt 0.394422 0.210938 +vt 0.362550 0.179688 +vt 0.394422 0.179688 +vt 0.362550 0.117188 +vt 0.394422 0.000000 +vt 0.394422 0.117188 +vt 0.362550 0.210938 +vt 0.346614 0.273438 +vt 0.346614 0.210938 +vt 0.410359 0.273438 +vt 0.394422 0.304688 +vt 0.362550 0.304688 +vt 0.233068 0.109375 +vt 0.237052 0.234375 +vt 0.209163 0.234375 +vt 0.041833 0.109375 +vt 0.045817 0.234375 +vt 0.021912 0.109375 +vt 0.079681 0.617188 +vt 0.127490 0.648438 +vt 0.079681 0.648438 +vt 0.159363 0.664062 +vt 0.127490 0.679688 +vt 0.143426 0.664062 +vt 0.079681 0.679688 +vt 0.047809 0.820312 +vt 0.047809 0.664062 +vt 0.191235 0.492188 +vt 0.298805 0.515625 +vt 0.191235 0.515625 +vt -0.000000 0.820312 +vt 0.000000 0.664062 +vt 0.079681 0.820312 +vt 0.127490 0.882812 +vt 0.079681 0.882812 +vt 0.191235 0.421875 +vt 0.298805 0.460938 +vt 0.191235 0.460938 +vt 0.298805 0.492188 +vt 0.298805 0.546875 +vt 0.191235 0.546875 +vt 0.362550 0.320312 +vt 0.394422 0.320312 +vt 0.362550 0.453125 +vt 0.470120 0.320312 +vt 0.402390 0.320312 +vt 0.286853 0.320312 +vt 0.286853 0.273438 +vt 0.569721 0.203125 +vt 0.649402 0.281250 +vt 0.569721 0.281250 +vt 0.525896 0.664062 +vt 0.589641 0.710938 +vt 0.525896 0.710938 +vt 0.661355 0.179688 +vt 0.713147 0.203125 +vt 0.569721 0.304688 +vt 0.649402 0.382812 +vt 0.569721 0.382812 +vt 0.569721 0.000000 +vt 0.649402 0.078125 +vt 0.569721 0.078125 +vt 0.649402 0.179688 +vt 0.569721 0.179688 +vt 0.649402 0.304688 +vt 0.569721 0.101562 +vt 0.601594 0.640625 +vt 0.637450 0.664062 +vt 0.525896 0.734375 +vt 0.589641 0.781250 +vt 0.525896 0.781250 +vt 0.525896 0.523438 +vt 0.589641 0.570312 +vt 0.525896 0.570312 +vt 0.525896 0.804688 +vt 0.525896 0.593750 +vt 0.589641 0.593750 +vt 0.589641 0.640625 +vt 0.525896 0.640625 +vt 0.589641 0.734375 +vt 0.394422 0.367188 +vt 0.426295 0.390625 +vt 0.394422 0.390625 +vt 0.394422 0.367188 +vt 0.394422 0.320312 +vt 0.426295 0.320312 +vt 0.426295 0.437500 +vt 0.394422 0.437500 +vt 0.394422 0.320312 +vt 0.426295 0.320312 +vt 0.394422 0.390625 +vt 0.426295 0.437500 +vt 0.394422 0.437500 +vt 0.426295 0.390625 +vt 0.509960 0.367188 +vt 0.501992 0.351562 +vt 0.509960 0.304688 +vt 0.569721 0.468750 +vt 0.601594 0.500000 +vt 0.569721 0.500000 +vt 0.601594 0.468750 +vt 0.617530 0.406250 +vt 0.625498 0.468750 +vt 0.617530 0.562500 +vt 0.605578 0.562500 +vt 0.625498 0.500000 +vt 0.000000 0.585938 +vt 0.127490 0.601562 +vt 0.000000 0.601562 +vt 0.000000 0.554688 +vt 0.127490 0.570312 +vt 0.000000 0.570312 +vt 0.127490 0.585938 +vt 0.127490 0.617188 +vt 0.000000 0.617188 +vt 0.525896 0.601562 +vt 0.398406 0.585938 +vt 0.525896 0.585938 +vt 0.525896 0.570312 +vt 0.398406 0.554688 +vt 0.525896 0.554688 +vt 0.525896 0.617188 +vt 0.398406 0.601562 +vt 0.398406 0.570312 +vt 0.135458 0.554688 +vt 0.231076 0.570312 +vt 0.135458 0.570312 +vt 0.390438 0.585938 +vt 0.294821 0.570312 +vt 0.390438 0.570312 +vt 0.135458 0.585938 +vt 0.127490 0.570312 +vt 0.135458 0.617188 +vt 0.127490 0.617188 +vt 0.135458 0.601562 +vt 0.390438 0.617188 +vt 0.390438 0.601562 +vt 0.398406 0.617188 +vt 0.398406 0.570312 +vt 0.286853 0.617188 +vt 0.239044 0.601562 +vt 0.286853 0.601562 +vt 0.239044 0.554688 +vt 0.286853 0.570312 +vt 0.239044 0.570312 +vt 0.294821 0.585938 +vt 0.231076 0.585938 +vt 0.294821 0.554688 +vt 0.390438 0.554688 +vt 0.294821 0.601562 +vt 0.231076 0.601562 +vt 0.231076 0.617188 +vt 0.231076 0.554688 +vt 0.231076 0.601562 +vt 0.239044 0.585938 +vt 0.286853 0.554688 +vt 0.294821 0.554688 +vt 0.286853 0.585938 +vt 0.294821 0.601562 +vt 0.330677 0.187500 +vt 0.286853 0.203125 +vt 0.286853 0.187500 +vt 0.322709 0.234375 +vt 0.330677 0.218750 +vt 0.330677 0.234375 +vt 0.322709 0.218750 +vt 0.330677 0.203125 +vt 0.286853 0.250000 +vt 0.330677 0.250000 +vt 0.286853 0.234375 +vt 0.330677 0.187500 +vt 0.286853 0.203125 +vt 0.286853 0.187500 +vt 0.322709 0.234375 +vt 0.330677 0.218750 +vt 0.330677 0.234375 +vt 0.322709 0.218750 +vt 0.330677 0.203125 +vt 0.286853 0.250000 +vt 0.330677 0.250000 +vt 0.286853 0.234375 +vt 0.286853 0.187500 +vt 0.330677 0.203125 +vt 0.286853 0.203125 +vt 0.330677 0.234375 +vt 0.322709 0.218750 +vt 0.330677 0.218750 +vt 0.286853 0.250000 +vt 0.322709 0.234375 +vt 0.330677 0.250000 +vt 0.286853 0.218750 +vt 0.286853 0.187500 +vt 0.330677 0.203125 +vt 0.286853 0.203125 +vt 0.330677 0.234375 +vt 0.322709 0.218750 +vt 0.330677 0.218750 +vt 0.286853 0.250000 +vt 0.322709 0.234375 +vt 0.330677 0.250000 +vt 0.286853 0.218750 +vt 0.569721 0.406250 +vt 0.649402 0.101562 +vt 0.517928 0.179688 +vt 0.557769 0.304688 +vt 0.256642 0.222588 +vt 0.266932 0.187637 +vt 0.277223 0.222588 +vt 0.063745 0.234375 +vt 0.191235 0.492188 +vt 0.063745 0.101562 +vt 0.286853 0.074219 +vt 0.286853 0.152344 +vt 0.286853 0.058594 +vt 0.290837 0.187500 +vt 0.286853 0.121094 +vt 0.286853 0.167969 +vt 0.286853 0.105469 +vt 0.362550 0.000000 +vt 0.410359 0.210938 +vt 0.213147 0.109375 +vt 0.209163 0.109375 +vt 0.205179 0.078125 +vt 0.241036 0.078125 +vt 0.213147 0.046875 +vt 0.233068 0.046875 +vt 0.231076 0.281250 +vt 0.215139 0.281250 +vt 0.237052 0.109375 +vt 0.254980 0.144531 +vt 0.254980 0.199219 +vt 0.039841 0.281250 +vt 0.023904 0.281250 +vt 0.017928 0.234375 +vt 0.000000 0.199219 +vt 0.000000 0.144531 +vt 0.045817 0.109375 +vt 0.041833 0.046875 +vt 0.049801 0.078125 +vt 0.021912 0.046875 +vt 0.013944 0.078125 +vt 0.017928 0.109375 +vt 0.127490 0.617188 +vt 0.159363 0.820312 +vt 0.127490 0.820312 +vt 0.063745 0.664062 +vt 0.298805 0.421875 +vt 0.394422 0.453125 +vt 0.470120 0.273438 +vt 0.354582 0.320312 +vt 0.649402 0.203125 +vt 0.589641 0.664062 +vt 0.713147 0.281250 +vt 0.701195 0.304688 +vt 0.661355 0.304688 +vt 0.701195 0.179688 +vt 0.649402 -0.000000 +vt 0.637450 0.710938 +vt 0.625498 0.734375 +vt 0.601594 0.734375 +vt 0.625498 0.640625 +vt 0.589641 0.523438 +vt 0.589641 0.804688 +vt 0.426295 0.367188 +vt 0.426295 0.367188 +vt 0.501992 0.320312 +vt 0.537849 0.304688 +vt 0.537849 0.367188 +vt 0.545817 0.320312 +vt 0.545817 0.351562 +vt 0.605578 0.406250 +vt 0.127490 0.554688 +vt 0.398406 0.617188 +vt 0.231076 0.554688 +vt 0.239044 0.617188 +vt 0.294821 0.617188 +vt 0.286853 0.218750 +vt 0.286853 0.218750 +vt 0.330677 0.187500 +vt 0.286853 0.234375 +vt 0.330677 0.187500 +vt 0.286853 0.234375 +vt 0.649402 0.406250 +vt 0.517928 0.304688 +vt 0.505976 0.281250 +vt 0.505976 0.203125 +vt 0.557769 0.179688 +vt 0.272874 0.231117 +vt 0.266932 0.234238 +vt 0.260991 0.231117 +vt 0.255050 0.210938 +vt 0.256642 0.199287 +vt 0.260991 0.190759 +vt 0.272874 0.190759 +vt 0.277223 0.199287 +vt 0.278815 0.210938 +vt 0.338645 0.031250 +vt 0.338645 0.046875 +vt 0.338645 0.109375 +vt 0.338645 0.125000 +vt 0.338645 0.078125 +vt 0.338645 0.093750 +vt 0.338645 0.171875 +vt 0.338645 0.156250 +vt 0.338645 0.015625 +vt 0.338645 0.062500 +vt 0.338645 0.140625 +vt 0.338645 -0.000000 +vt 0.338645 0.187500 +vt 0.254980 0.093750 +vt 0.254980 0.062500 +vt 0.254980 0.140625 +vt 0.254980 -0.000000 +vt 0.254980 0.046875 +vt 0.254980 0.125000 +vt 0.254980 0.171875 +vt 0.254980 0.031250 +vt 0.254980 0.109375 +vt 0.254980 0.078125 +vt 0.254980 0.156250 +vt 0.254980 0.015625 +vt 0.254980 0.250000 +vt 0.286853 0.265625 +vt 0.254980 0.265625 +vt 0.254980 0.328125 +vt 0.286853 0.343750 +vt 0.254980 0.343750 +vt 0.254980 0.296875 +vt 0.286853 0.312500 +vt 0.254980 0.312500 +vt 0.254980 0.375000 +vt 0.286853 0.390625 +vt 0.254980 0.390625 +vt 0.254980 0.234375 +vt 0.286853 0.250000 +vt 0.254980 0.281250 +vt 0.286853 0.296875 +vt 0.254980 0.359375 +vt 0.286853 0.375000 +vt 0.254980 0.406250 +vt 0.286853 0.421875 +vt 0.254980 0.421875 +vt 0.286853 0.281250 +vt 0.286853 0.359375 +vt 0.286853 0.328125 +vt 0.286853 0.406250 +vt 0.191235 0.070312 +vt 0.063745 0.523438 +vt 0.063745 0.070312 +vt 0.191235 0.039062 +vt 0.191235 0.523438 +vt 0.063745 0.554688 +vt 0.191235 0.000000 +vt 0.063745 0.039062 +vt 0.063745 0.000000 +vt 0.545817 0.523438 +vt 0.561753 0.367188 +vt 0.561753 0.523438 +vt 0.486056 0.523438 +vt 0.501992 0.367188 +vt 0.501992 0.523438 +vt 0.537849 0.523438 +vt 0.545817 0.367188 +vt 0.509960 0.523438 +vt 0.450199 0.523438 +vt 0.478088 0.367188 +vt 0.478088 0.523438 +vt 0.486056 0.367188 +vt 0.569721 0.367188 +vt 0.569721 0.523438 +vt 0.254980 0.105469 +vt 0.254980 0.074219 +vt 0.254980 0.152344 +vt 0.254980 0.011719 +vt 0.254980 0.058594 +vt 0.254980 0.136719 +vt 0.254980 0.183594 +vt 0.254980 0.042969 +vt 0.254980 0.121094 +vt 0.254980 0.089844 +vt 0.254980 0.167969 +vt 0.254980 0.027344 +vt 0.286853 0.234375 +vt 0.191235 0.554688 +vt 0.450199 0.367188 +vn 1.0000 0.0000 -0.0000 +vn -0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.9701 0.2425 -0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9701 0.2425 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.8000 -0.6000 +vn 0.0000 0.1240 0.9923 +vn 0.0000 0.7071 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.8660 -0.5000 -0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.8944 0.4472 -0.0000 +vn -0.8944 0.4472 0.0000 +vn 0.5257 -0.8507 -0.0000 +vn -0.5257 -0.8507 0.0000 +vn 0.3941 0.1802 -0.9012 +vn -0.3606 0.1829 -0.9146 +vn -0.3941 0.1802 -0.9012 +vn -0.3606 -0.1829 0.9146 +vn 0.3941 -0.1802 0.9012 +vn 0.3606 -0.1829 0.9146 +vn 0.9382 0.0679 -0.3394 +vn 0.9382 -0.0679 0.3394 +vn 0.9033 0.0841 -0.4207 +vn 0.3606 0.1829 -0.9146 +vn 0.9033 -0.0841 0.4207 +vn -0.9382 0.0679 -0.3394 +vn -0.9382 -0.0679 0.3394 +vn -0.9033 -0.0841 0.4207 +vn -0.3941 -0.1802 0.9012 +vn -0.9033 0.0841 -0.4207 +s off +f 930/1595/77 931/1596/77 929/1597/77 +f 934/1598/78 940/1599/78 938/1600/78 +f 936/1601/79 933/1602/79 935/1603/79 +f 937/1604/80 932/1605/80 930/1595/80 +f 947/1606/81 937/1604/81 945/1607/81 +f 942/1608/82 935/1603/82 933/1602/82 +f 943/1609/83 929/1597/83 931/1596/83 +f 946/1610/84 947/1606/84 945/1607/84 +f 948/1611/85 938/1600/85 940/1599/85 +f 942/1608/86 1029/1612/86 944/1613/86 +f 943/1609/86 1032/1614/86 941/1615/86 +f 962/1616/87 975/1617/87 963/1618/87 +f 969/1619/87 982/1620/87 970/1621/87 +f 967/1622/87 978/1623/87 979/1624/87 +f 963/1618/87 976/1625/87 964/1626/87 +f 971/1627/87 982/1628/87 983/1629/87 +f 968/1630/87 979/1631/87 980/1632/87 +f 965/1633/87 976/1634/87 977/1635/87 +f 971/1627/87 984/1636/87 972/1637/87 +f 962/1616/87 973/1638/87 974/1639/87 +f 968/1630/87 981/1640/87 969/1619/87 +f 966/1641/87 977/1642/87 978/1643/87 +f 972/1637/87 973/1644/87 961/1645/87 +f 1023/1646/86 1022/1647/86 1021/1648/86 +f 1027/1649/86 1059/1650/86 1026/1651/86 +f 1024/1652/79 1027/1653/79 1022/1654/79 +f 1023/1646/77 1026/1655/77 1025/1656/77 +f 1023/1646/87 1028/1657/87 1024/1652/87 +f 1022/1647/88 1026/1651/88 1021/1648/88 +f 1031/1658/88 938/1659/88 937/1660/88 +f 1030/1661/87 939/1662/87 1029/1663/87 +f 1043/1664/86 1042/1665/86 1041/1666/86 +f 1044/1667/79 1050/1668/79 1042/1669/79 +f 1049/1670/77 1045/1671/77 1043/1672/77 +f 1054/1673/84 1057/1674/84 1053/1675/84 +f 1043/1672/87 1048/1676/87 1044/1677/87 +f 1050/1668/88 1051/1678/88 1049/1670/88 +f 1042/1665/89 1049/1670/89 1041/1666/89 +f 1051/1678/84 1048/1679/84 1045/1680/84 +f 1047/1681/86 1055/1682/86 1046/1683/86 +f 1046/1683/81 1058/1684/81 1054/1673/81 +f 1053/1675/85 1056/1685/85 1047/1686/85 +f 1025/1656/90 1062/1687/90 1028/1657/90 +f 1061/1688/84 1064/1689/84 1062/1687/84 +f 1026/1655/77 1063/1690/77 1061/1691/77 +f 1064/1692/79 1060/1693/79 1027/1653/79 +f 1068/1694/84 1070/1695/84 1065/1696/84 +f 1074/1697/84 1086/1698/84 1075/1699/84 +f 1070/1695/88 1072/1700/88 1196/1701/88 +f 1066/1702/79 1194/1703/79 1189/1704/79 +f 1190/1705/86 1196/1706/86 1191/1707/86 +f 1072/1708/80 1068/1694/80 1067/1709/80 +f 1066/1702/78 1070/1695/78 1069/1710/78 +f 1192/1711/77 1072/1708/77 1067/1709/77 +f 1086/1698/88 1084/1712/88 1082/1713/88 +f 1076/1714/79 1088/1715/79 1079/1716/79 +f 1080/1717/86 1082/1718/86 1077/1719/86 +f 1088/1715/82 1080/1720/82 1079/1716/82 +f 1078/1721/83 1082/1718/83 1081/1722/83 +f 1084/1723/80 1074/1697/80 1073/1724/80 +f 1076/1714/78 1086/1698/78 1085/1725/78 +f 1078/1721/77 1084/1723/77 1073/1724/77 +f 1090/1726/91 1091/1727/91 1089/1728/91 +f 1099/1729/77 1095/1730/77 1097/1731/77 +f 1089/1728/79 1091/1732/79 1093/1733/79 +f 1090/1726/77 1094/1734/77 1092/1735/77 +f 1100/1736/79 1098/1737/79 1096/1738/79 +f 1099/1729/91 1098/1739/91 1100/1736/91 +f 1111/1740/86 1107/1741/86 1116/1742/86 +f 1117/1743/92 1120/1744/92 1118/1745/92 +f 1119/1746/79 1121/1747/79 1123/1748/79 +f 1120/1744/77 1122/1749/77 1118/1750/77 +f 1119/1746/86 1124/1751/86 1120/1744/86 +f 1128/1752/84 1131/1753/84 1127/1754/84 +f 1125/1755/86 1130/1756/86 1126/1757/86 +f 1126/1757/77 1132/1758/77 1128/1752/77 +f 1127/1754/79 1129/1759/79 1125/1760/79 +f 1136/1761/84 1139/1762/84 1135/1763/84 +f 1133/1764/86 1138/1765/86 1134/1766/86 +f 1134/1767/77 1140/1768/77 1136/1761/77 +f 1135/1763/79 1137/1769/79 1133/1764/79 +f 1129/1770/87 1146/1771/87 1130/1772/87 +f 1143/1773/79 1147/1774/79 1137/1775/79 +f 1130/1772/77 1142/1776/77 1132/1777/77 +f 1129/1778/79 1131/1779/79 1141/1780/79 +f 1138/1781/77 1144/1782/77 1140/1783/77 +f 1137/1775/79 1139/1784/79 1143/1773/79 +f 1144/1782/93 1139/1762/93 1140/1768/93 +f 1142/1776/93 1131/1753/93 1132/1758/93 +f 1148/1785/84 1149/1786/84 1152/1787/84 +f 1145/1788/87 1154/1789/87 1153/1790/87 +f 1144/1782/88 1151/1791/88 1143/1773/88 +f 1130/1772/77 1150/1792/77 1142/1776/77 +f 1137/1775/87 1148/1793/87 1138/1794/87 +f 1138/1781/77 1152/1795/77 1144/1782/77 +f 1142/1776/88 1149/1796/88 1141/1780/88 +f 1141/1780/79 1145/1797/79 1129/1778/79 +f 1145/1788/87 1153/1790/87 1146/1798/87 +f 1150/1799/88 1155/1800/88 1149/1786/88 +f 1146/1771/83 1155/1800/83 1150/1792/83 +f 1148/1801/87 1147/1802/87 1154/1789/87 +f 1152/1787/88 1156/1803/88 1151/1804/88 +f 1151/1791/82 1154/1789/82 1147/1774/82 +f 1155/1800/88 1152/1787/88 1149/1786/88 +f 1155/1800/86 1154/1789/86 1156/1803/86 +f 1159/1805/79 1158/1806/79 1157/1807/79 +f 1163/1808/94 1160/1809/94 1159/1810/94 +f 1164/1811/86 1158/1806/86 1160/1812/86 +f 1157/1813/84 1163/1808/84 1159/1814/84 +f 1161/1815/77 1164/1811/77 1163/1808/77 +f 1167/1816/79 1166/1817/79 1165/1818/79 +f 1171/1819/94 1168/1820/94 1167/1821/94 +f 1172/1822/86 1166/1817/86 1168/1823/86 +f 1165/1824/84 1171/1819/84 1167/1825/84 +f 1169/1826/77 1172/1822/77 1171/1819/77 +f 1174/1827/77 1175/1828/77 1173/1829/77 +f 1176/1830/95 1179/1831/95 1175/1832/95 +f 1174/1833/86 1180/1834/86 1176/1835/86 +f 1173/1829/84 1179/1831/84 1177/1836/84 +f 1180/1834/79 1177/1836/79 1179/1831/79 +f 1182/1837/77 1183/1838/77 1181/1839/77 +f 1184/1840/95 1187/1841/95 1183/1842/95 +f 1182/1843/86 1188/1844/86 1184/1845/86 +f 1181/1839/84 1187/1841/84 1185/1846/84 +f 1188/1844/79 1185/1846/79 1187/1841/79 +f 1194/1703/82 1190/1847/82 1189/1704/82 +f 1192/1711/83 1196/1706/83 1195/1848/83 +f 1192/1849/87 1068/1694/87 1066/1850/87 +f 995/1851/87 991/1852/87 987/1853/87 +f 930/1595/77 932/1605/77 931/1596/77 +f 934/1598/78 936/1601/78 940/1599/78 +f 936/1601/79 934/1598/79 933/1602/79 +f 937/1604/80 939/1854/80 932/1605/80 +f 947/1606/81 939/1854/81 937/1604/81 +f 942/1608/82 944/1613/82 935/1603/82 +f 943/1609/83 941/1615/83 929/1597/83 +f 946/1610/84 948/1611/84 947/1606/84 +f 948/1611/85 946/1610/85 938/1600/85 +f 942/1608/86 1031/1855/86 1029/1612/86 +f 943/1609/86 1030/1856/86 1032/1614/86 +f 962/1616/87 974/1857/87 975/1617/87 +f 969/1619/87 981/1858/87 982/1620/87 +f 967/1622/87 966/1641/87 978/1623/87 +f 963/1618/87 975/1859/87 976/1625/87 +f 971/1627/87 970/1621/87 982/1628/87 +f 968/1630/87 967/1860/87 979/1631/87 +f 965/1633/87 964/1626/87 976/1634/87 +f 971/1627/87 983/1861/87 984/1636/87 +f 962/1616/87 961/1645/87 973/1638/87 +f 968/1630/87 980/1862/87 981/1640/87 +f 966/1641/87 965/1633/87 977/1642/87 +f 972/1637/87 984/1863/87 973/1644/87 +f 1023/1646/86 1024/1652/86 1022/1647/86 +f 1027/1649/86 1060/1864/86 1059/1650/86 +f 1024/1652/79 1028/1657/79 1027/1653/79 +f 1023/1646/77 1021/1865/77 1026/1655/77 +f 1023/1646/87 1025/1656/87 1028/1657/87 +f 1022/1647/88 1027/1649/88 1026/1651/88 +f 930/1595/88 929/1597/88 1032/1866/88 +f 929/1597/88 941/1867/88 1032/1866/88 +f 1032/1866/88 1036/1868/88 1035/1869/88 +f 1036/1868/88 1040/1870/88 1039/1871/88 +f 946/1872/88 945/1873/88 937/1660/88 +f 937/1660/88 930/1595/88 1032/1866/88 +f 1036/1868/88 1039/1871/88 1035/1869/88 +f 1035/1869/88 1031/1658/88 1032/1866/88 +f 1031/1658/88 942/1874/88 933/1875/88 +f 933/1875/88 934/1876/88 1031/1658/88 +f 934/1876/88 938/1659/88 1031/1658/88 +f 938/1659/88 946/1872/88 937/1660/88 +f 937/1660/88 1032/1866/88 1031/1658/88 +f 931/1596/87 932/1605/87 1030/1661/87 +f 932/1605/87 939/1662/87 1030/1661/87 +f 939/1662/87 947/1877/87 948/1878/87 +f 940/1879/87 936/1880/87 1029/1663/87 +f 936/1880/87 935/1881/87 1029/1663/87 +f 939/1662/87 948/1878/87 940/1879/87 +f 943/1882/87 931/1596/87 1030/1661/87 +f 1038/1883/87 1034/1884/87 1037/1885/87 +f 1034/1884/87 1030/1661/87 1033/1886/87 +f 1037/1885/87 1034/1884/87 1033/1886/87 +f 939/1662/87 940/1879/87 1029/1663/87 +f 935/1881/87 944/1887/87 1029/1663/87 +f 1029/1663/87 1033/1886/87 1030/1661/87 +f 1043/1664/86 1044/1888/86 1042/1665/86 +f 1044/1667/79 1048/1889/79 1050/1668/79 +f 1048/1889/79 1052/1890/79 1050/1668/79 +f 1043/1672/77 1041/1891/77 1049/1670/77 +f 1049/1670/77 1051/1678/77 1045/1671/77 +f 1054/1673/84 1058/1684/84 1057/1674/84 +f 1043/1672/87 1045/1671/87 1048/1676/87 +f 1050/1668/88 1052/1890/88 1051/1678/88 +f 1042/1665/89 1050/1668/89 1049/1670/89 +f 1051/1678/84 1052/1890/84 1048/1679/84 +f 1047/1681/86 1056/1892/86 1055/1682/86 +f 1046/1683/81 1055/1682/81 1058/1684/81 +f 1053/1675/85 1057/1674/85 1056/1685/85 +f 1025/1656/90 1061/1688/90 1062/1687/90 +f 1061/1688/84 1063/1893/84 1064/1689/84 +f 1061/1691/77 1025/1656/77 1026/1655/77 +f 1026/1655/77 1059/1894/77 1063/1690/77 +f 1027/1653/79 1028/1657/79 1062/1895/79 +f 1062/1895/79 1064/1692/79 1027/1653/79 +f 1068/1694/84 1071/1896/84 1070/1695/84 +f 1074/1697/84 1083/1897/84 1086/1698/84 +f 1196/1701/88 1193/1898/88 1194/1899/88 +f 1194/1899/88 1069/1900/88 1070/1695/88 +f 1070/1695/88 1071/1896/88 1072/1700/88 +f 1072/1700/88 1195/1901/88 1196/1701/88 +f 1196/1701/88 1194/1899/88 1070/1695/88 +f 1066/1702/79 1069/1710/79 1194/1703/79 +f 1190/1705/86 1193/1902/86 1196/1706/86 +f 1072/1708/80 1071/1896/80 1068/1694/80 +f 1066/1702/78 1065/1696/78 1070/1695/78 +f 1192/1711/77 1195/1848/77 1072/1708/77 +f 1082/1713/88 1087/1903/88 1088/1904/88 +f 1088/1904/88 1085/1905/88 1086/1698/88 +f 1086/1698/88 1083/1897/88 1084/1712/88 +f 1084/1712/88 1081/1906/88 1082/1713/88 +f 1082/1713/88 1088/1904/88 1086/1698/88 +f 1076/1714/79 1085/1725/79 1088/1715/79 +f 1080/1717/86 1087/1907/86 1082/1718/86 +f 1088/1715/82 1087/1908/82 1080/1720/82 +f 1078/1721/83 1077/1719/83 1082/1718/83 +f 1084/1723/80 1083/1897/80 1074/1697/80 +f 1076/1714/78 1075/1699/78 1086/1698/78 +f 1078/1721/77 1081/1722/77 1084/1723/77 +f 1090/1726/91 1092/1909/91 1091/1727/91 +f 1099/1729/91 1097/1910/91 1098/1739/91 +f 1107/1741/86 1106/1911/86 1116/1742/86 +f 1116/1742/86 1115/1912/86 1112/1913/86 +f 1115/1912/86 1105/1914/86 1112/1913/86 +f 1105/1914/86 1108/1915/86 1112/1913/86 +f 1112/1913/86 1111/1740/86 1116/1742/86 +f 1117/1743/92 1119/1746/92 1120/1744/92 +f 1119/1746/79 1117/1916/79 1121/1747/79 +f 1120/1744/77 1124/1751/77 1122/1749/77 +f 1119/1746/86 1123/1748/86 1124/1751/86 +f 1128/1752/84 1132/1758/84 1131/1753/84 +f 1125/1755/86 1129/1917/86 1130/1756/86 +f 1126/1757/77 1130/1756/77 1132/1758/77 +f 1127/1754/79 1131/1753/79 1129/1759/79 +f 1136/1761/84 1140/1768/84 1139/1762/84 +f 1133/1764/86 1137/1769/86 1138/1765/86 +f 1134/1767/77 1138/1918/77 1140/1768/77 +f 1135/1763/79 1139/1762/79 1137/1769/79 +f 1129/1770/87 1145/1919/87 1146/1771/87 +f 1143/1773/79 1151/1791/79 1147/1774/79 +f 1144/1782/93 1143/1773/93 1139/1762/93 +f 1142/1776/93 1141/1780/93 1131/1753/93 +f 1148/1785/84 1145/1920/84 1149/1786/84 +f 1145/1788/87 1148/1801/87 1154/1789/87 +f 1144/1782/88 1152/1795/88 1151/1791/88 +f 1130/1772/77 1146/1771/77 1150/1792/77 +f 1137/1775/87 1147/1774/87 1148/1793/87 +f 1138/1781/77 1148/1921/77 1152/1795/77 +f 1142/1776/88 1150/1792/88 1149/1796/88 +f 1141/1780/79 1149/1796/79 1145/1797/79 +f 1146/1771/83 1153/1790/83 1155/1800/83 +f 1151/1791/82 1156/1803/82 1154/1789/82 +f 1155/1800/88 1156/1803/88 1152/1787/88 +f 1155/1800/86 1153/1790/86 1154/1789/86 +f 1159/1805/79 1160/1812/79 1158/1806/79 +f 1163/1808/94 1164/1811/94 1160/1809/94 +f 1164/1811/86 1162/1922/86 1158/1806/86 +f 1157/1813/84 1161/1815/84 1163/1808/84 +f 1161/1815/77 1162/1922/77 1164/1811/77 +f 1167/1816/79 1168/1823/79 1166/1817/79 +f 1171/1819/94 1172/1822/94 1168/1820/94 +f 1172/1822/86 1170/1923/86 1166/1817/86 +f 1165/1824/84 1169/1826/84 1171/1819/84 +f 1169/1826/77 1170/1923/77 1172/1822/77 +f 1174/1827/77 1176/1924/77 1175/1828/77 +f 1176/1830/95 1180/1834/95 1179/1831/95 +f 1174/1833/86 1178/1925/86 1180/1834/86 +f 1173/1829/84 1175/1828/84 1179/1831/84 +f 1180/1834/79 1178/1925/79 1177/1836/79 +f 1182/1837/77 1184/1926/77 1183/1838/77 +f 1184/1840/95 1188/1844/95 1187/1841/95 +f 1182/1843/86 1186/1927/86 1188/1844/86 +f 1181/1839/84 1183/1838/84 1187/1841/84 +f 1188/1844/79 1186/1927/79 1185/1846/79 +f 1194/1703/82 1193/1928/82 1190/1847/82 +f 1192/1711/83 1191/1707/83 1196/1706/83 +f 1066/1850/87 1189/1929/87 1190/1930/87 +f 1190/1930/87 1191/1931/87 1192/1849/87 +f 1192/1849/87 1067/1932/87 1068/1694/87 +f 1068/1694/87 1065/1696/87 1066/1850/87 +f 1066/1850/87 1190/1930/87 1192/1849/87 +f 987/1853/87 986/1933/87 995/1851/87 +f 986/1933/87 985/1934/87 995/1851/87 +f 985/1934/87 996/1935/87 995/1851/87 +f 995/1851/87 994/1936/87 993/1937/87 +f 993/1937/87 992/1938/87 991/1852/87 +f 991/1852/87 990/1939/87 987/1853/87 +f 990/1939/87 989/1940/87 987/1853/87 +f 989/1940/87 988/1941/87 987/1853/87 +f 995/1851/87 993/1937/87 991/1852/87 +s 1 +f 964/1626/77 953/1942/96 952/1943/77 +f 971/1627/97 960/1944/98 959/1945/97 +f 961/1645/84 950/1946/99 949/1947/84 +f 956/1948/100 969/1619/101 957/1949/101 +f 965/1633/96 954/1950/102 953/1942/96 +f 972/1637/98 949/1947/84 960/1944/98 +f 962/1616/99 951/1951/103 950/1946/99 +f 969/1619/101 958/1952/79 957/1949/101 +f 954/1950/102 967/1622/86 955/1953/86 +f 963/1618/103 952/1943/77 951/1951/103 +f 970/1621/79 959/1945/97 958/1952/79 +f 967/1860/86 956/1948/100 955/1954/86 +f 984/1863/102 985/1955/86 973/1644/86 +f 974/1857/100 987/1956/101 975/1617/101 +f 981/1858/103 994/1957/77 982/1620/77 +f 978/1623/98 991/1958/84 979/1624/84 +f 975/1859/101 988/1959/79 976/1625/79 +f 982/1628/77 995/1960/96 983/1629/96 +f 979/1631/84 992/1961/99 980/1632/99 +f 976/1634/79 989/1962/97 977/1635/97 +f 983/1861/96 996/1963/102 984/1636/102 +f 973/1638/86 986/1964/100 974/1639/100 +f 980/1862/99 993/1965/103 981/1640/103 +f 977/1642/97 990/1966/98 978/1643/98 +f 1002/1967/102 1013/1968/96 1001/1969/96 +f 997/1970/84 1020/1971/98 1008/1972/98 +f 999/1973/103 1010/1974/99 998/1975/99 +f 1006/1976/79 1017/1977/101 1005/1978/101 +f 1003/1979/86 1014/1980/102 1002/1967/102 +f 1000/1981/77 1011/1982/103 999/1973/103 +f 1007/1983/97 1018/1984/79 1006/1976/79 +f 1004/1985/100 1015/1986/86 1003/1987/86 +f 1001/1969/96 1012/1988/77 1000/1981/77 +f 1007/1983/97 1020/1971/98 1019/1989/97 +f 998/1975/99 1009/1990/84 997/1970/84 +f 1005/1978/101 1016/1991/100 1004/1985/100 +f 1030/1856/104 1036/1992/77 1032/1614/104 +f 1031/1855/105 1033/1993/79 1029/1612/105 +f 1034/1994/77 1040/1995/106 1036/1992/77 +f 1035/1996/79 1037/1997/107 1033/1993/79 +f 1039/1998/107 1038/1999/106 1037/2000/107 +f 1104/2001/108 1105/2002/109 1103/2003/110 +f 1101/2004/111 1107/2005/112 1102/2006/113 +f 1110/2007/114 1111/1740/115 1112/1913/116 +f 1104/2001/108 1112/1913/116 1108/2008/117 +f 1107/2005/112 1109/2009/118 1102/2006/113 +f 1113/2010/119 1116/2011/120 1114/2012/121 +f 1106/2013/122 1114/2012/121 1116/2011/120 +f 1103/2003/110 1115/2014/123 1113/2015/119 +f 964/1626/77 965/1633/96 953/1942/96 +f 971/1627/97 972/1637/98 960/1944/98 +f 961/1645/84 962/1616/99 950/1946/99 +f 956/1948/100 968/1630/100 969/1619/101 +f 965/1633/96 966/1641/102 954/1950/102 +f 972/1637/98 961/1645/84 949/1947/84 +f 962/1616/99 963/1618/103 951/1951/103 +f 969/1619/101 970/1621/79 958/1952/79 +f 954/1950/102 966/1641/102 967/1622/86 +f 963/1618/103 964/1626/77 952/1943/77 +f 970/1621/79 971/1627/97 959/1945/97 +f 967/1860/86 968/1630/100 956/1948/100 +f 984/1863/102 996/2016/102 985/1955/86 +f 974/1857/100 986/2017/100 987/1956/101 +f 981/1858/103 993/2018/103 994/1957/77 +f 978/1623/98 990/2019/98 991/1958/84 +f 975/1859/101 987/2020/101 988/1959/79 +f 982/1628/77 994/2021/77 995/1960/96 +f 979/1631/84 991/2022/84 992/1961/99 +f 976/1634/79 988/2023/79 989/1962/97 +f 983/1861/96 995/2024/96 996/1963/102 +f 973/1638/86 985/2025/86 986/1964/100 +f 980/1862/99 992/2026/99 993/1965/103 +f 977/1642/97 989/2027/97 990/1966/98 +f 1002/1967/102 1014/1980/102 1013/1968/96 +f 997/1970/84 1009/1990/84 1020/1971/98 +f 999/1973/103 1011/1982/103 1010/1974/99 +f 1006/1976/79 1018/1984/79 1017/1977/101 +f 1003/1979/86 1015/2028/86 1014/1980/102 +f 1000/1981/77 1012/1988/77 1011/1982/103 +f 1007/1983/97 1019/1989/97 1018/1984/79 +f 1004/1985/100 1016/1991/100 1015/1986/86 +f 1001/1969/96 1013/1968/96 1012/1988/77 +f 1007/1983/97 1008/1972/98 1020/1971/98 +f 998/1975/99 1010/1974/99 1009/1990/84 +f 1005/1978/101 1017/1977/101 1016/1991/100 +f 1030/1856/104 1034/1994/77 1036/1992/77 +f 1031/1855/105 1035/1996/79 1033/1993/79 +f 1034/1994/77 1038/1999/106 1040/1995/106 +f 1035/1996/79 1039/2029/107 1037/1997/107 +f 1039/1998/107 1040/1995/106 1038/1999/106 +f 1104/2001/108 1108/2008/117 1105/2002/109 +f 1101/2004/111 1106/2013/122 1107/2005/112 +f 1110/2007/114 1109/2009/118 1111/1740/115 +f 1104/2001/108 1110/2007/114 1112/1913/116 +f 1107/2005/112 1111/1740/115 1109/2009/118 +f 1113/2010/119 1115/2030/123 1116/2011/120 +f 1106/2013/122 1101/2004/111 1114/2012/121 +f 1103/2003/110 1105/2002/109 1115/2014/123 diff --git a/src/main/resources/assets/hbm/models/weapons/spas-12.obj b/src/main/resources/assets/hbm/models/weapons/spas-12.obj index bd8f216c6..2410da7c6 100644 --- a/src/main/resources/assets/hbm/models/weapons/spas-12.obj +++ b/src/main/resources/assets/hbm/models/weapons/spas-12.obj @@ -1,738 +1,769 @@ -# Blender v2.79 (sub 0) OBJ File: 'spas-ing out.blend' +# Blender 4.0.1 # www.blender.org -mtllib spas-123.mtl -o PumpGrip -v -0.443199 1.647273 5.814597 -v -0.443199 1.647273 5.001840 -v 0.443199 1.647273 5.814597 -v 0.443199 1.647273 5.001840 -v -0.510668 1.652728 4.763550 -v 0.510668 1.652728 4.763550 -v -0.443199 1.647273 6.244457 -v 0.443199 1.647273 6.244457 -v -0.443199 1.647273 7.247699 -v 0.443199 1.647273 7.247699 -v -0.443199 1.378114 7.539924 -v 0.443199 1.378114 7.539924 -v -0.443199 1.079549 7.539924 -v 0.443199 1.079549 7.539924 -v -0.248881 0.889651 5.814597 -v -0.443199 1.060285 5.814597 -v -0.443199 1.060285 5.001840 -v -0.248881 0.889651 5.001840 -v 0.443199 1.060285 5.814597 -v 0.248881 0.889651 5.814597 -v 0.248881 0.889651 5.001840 -v 0.443199 1.060285 5.001840 -v -0.316349 0.779774 4.763550 -v -0.510668 0.950408 4.763550 -v 0.510668 0.950408 4.763550 -v 0.316349 0.779774 4.763550 -v -0.248881 0.780984 6.244457 -v -0.443199 0.951618 6.244457 -v 0.443199 0.951618 6.244457 -v 0.248881 0.780984 6.244457 -v -0.248881 0.780984 7.247699 -v -0.443199 0.951618 7.247699 -v 0.443199 0.951618 7.247699 -v 0.248881 0.780984 7.247699 -v -0.443199 1.032399 7.594676 -v -0.248881 0.898079 7.750655 -v 0.248881 0.898079 7.750655 -v 0.443199 1.032399 7.594676 -vt 0.280193 0.278528 -vt 0.202899 0.278528 -vt 0.217391 0.263804 -vt 0.275362 0.595092 -vt 0.207729 0.625767 -vt 0.207729 0.595092 -vt 0.275362 0.650307 -vt 0.207729 0.650307 -vt 0.260870 0.680982 -vt 0.265700 0.263804 -vt 0.280193 0.337423 -vt 0.202899 0.337423 -vt 0.275362 0.625767 -vt 0.222222 0.680982 -vt 0.207729 0.662577 -vt 0.275362 0.662577 -vt 0.125604 0.490798 -vt 0.077295 0.533742 -vt 0.077295 0.490798 -vt 0.207729 0.361963 -vt 0.275362 0.361963 -vt 0.144928 0.490798 -vt 0.202899 0.533742 -vt 0.144928 0.533742 -vt 0.275362 0.460123 -vt 0.207729 0.496933 -vt 0.207729 0.460123 -vt 0.000000 0.490798 -vt 0.057971 0.398773 -vt 0.057971 0.490798 -vt 0.057971 0.533742 -vt -0.000000 0.644172 -vt 0.000000 0.533742 -vt 0.077295 0.398773 -vt 0.125604 0.368098 -vt 0.125604 0.398773 -vt 0.202899 0.398773 -vt 0.144928 0.398773 -vt 0.144928 0.644172 -vt 0.202899 0.368098 -vt 0.000000 0.368098 -vt 0.057971 0.368098 -vt 0.125604 0.533742 -vt 0.077295 0.644172 -vt 0.275362 0.496933 -vt 0.057971 0.644172 -vt 0.048309 0.668712 -vt 0.019324 0.668712 -vt 0.188406 0.668712 -vt 0.154589 0.668712 -vt 0.125604 0.644172 -vt 0.077295 0.680982 -vt 0.077295 0.368098 -vt 0.144928 0.368098 -vt 0.144928 0.680982 -vt 0.125604 0.680982 -vt 0.057971 0.680982 -vt 0.202899 0.490798 -vt 0.000000 0.398773 -vt 0.202899 0.644172 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.7355 0.6775 -vn -0.0000 0.0000 1.0000 -vn 0.0000 0.7578 0.6525 -vn 0.3599 -0.9254 -0.1180 -vn -0.3422 -0.9327 -0.1137 -vn -0.3599 -0.9254 -0.1180 -vn 0.6688 0.7363 0.1026 -vn -0.6567 0.5705 -0.4932 -vn -0.6688 0.7363 0.1026 -vn 0.9224 -0.3836 -0.0454 -vn 0.7071 0.7071 0.0000 -vn 0.8977 -0.4369 -0.0574 -vn -0.7071 0.7071 0.0000 -vn -0.9071 -0.3651 0.2093 -vn -0.9224 -0.3836 -0.0454 -vn -0.8977 -0.4369 -0.0574 -vn -0.6337 0.7206 0.2813 -vn -0.3301 -0.9090 0.2545 -vn 0.3304 -0.8325 -0.4446 -vn 0.3301 -0.9090 0.2545 -vn 0.9071 -0.3651 0.2093 -vn 0.8988 -0.4352 0.0526 -vn 0.6567 0.5705 -0.4932 -vn -0.7868 -0.4159 -0.4559 -vn 0.3422 -0.9327 -0.1137 -vn -0.3430 -0.9334 0.1052 -vn 0.6337 0.7206 0.2813 -vn -0.8988 -0.4352 0.0526 -vn -0.8140 0.2421 0.5280 -vn -0.6269 0.3128 0.7135 -vn 0.6269 0.3128 0.7135 -vn 0.8140 0.2421 0.5280 -vn 0.3430 -0.9334 0.1052 -vn -0.3219 -0.2640 0.9092 -vn -0.3304 -0.8325 -0.4446 -vn 0.7868 -0.4159 -0.4559 -vn 0.7589 0.1068 0.6423 -vn 0.3219 -0.2640 0.9092 -vn -0.7589 0.1067 0.6423 -usemtl None -s off -f 24/1/1 25/2/1 26/3/1 -f 9/4/2 12/5/2 10/6/2 -f 12/5/3 13/7/3 14/8/3 -f 14/8/4 13/7/4 36/9/4 -f 26/3/1 23/10/1 24/1/1 -f 24/1/1 5/11/1 6/12/1 -f 6/12/1 25/2/1 24/1/1 -f 9/4/2 11/13/2 12/5/2 -f 12/5/3 11/13/3 13/7/3 -f 36/9/4 37/14/4 14/8/4 -f 38/15/4 14/8/4 37/14/4 -f 13/7/4 35/16/4 36/9/4 -s 1 -f 20/17/5 27/18/6 15/19/7 -f 4/20/8 5/11/9 2/21/10 -f 19/22/11 8/23/12 29/24/13 -f 1/25/14 8/26/12 3/27/12 -f 1/28/14 17/29/15 16/30/16 -f 2/21/10 3/27/12 4/20/8 -f 28/31/17 9/32/18 7/33/14 -f 18/34/19 26/35/20 21/36/21 -f 4/37/8 19/22/11 22/38/22 -f 8/23/12 33/39/23 29/24/13 -f 22/38/22 6/40/24 4/37/8 -f 17/29/15 5/41/9 24/42/25 -f 16/30/16 7/33/14 1/28/14 -f 30/43/26 31/44/27 27/18/6 -f 7/45/14 10/6/28 8/26/12 -f 32/46/29 13/47/30 11/48/31 -f 33/39/23 12/49/32 14/50/33 -f 34/51/34 36/52/35 31/44/27 -f 15/19/7 17/29/15 18/34/19 -f 21/36/21 19/22/11 20/17/5 -f 18/34/19 24/42/25 23/53/36 -f 21/36/21 25/54/37 22/38/22 -f 20/17/5 29/24/13 30/43/26 -f 15/19/7 28/31/17 16/30/16 -f 33/39/23 30/43/26 29/24/13 -f 28/31/17 31/44/27 32/46/29 -f 34/51/34 38/55/38 37/56/39 -f 35/57/40 31/44/27 36/52/35 -f 21/36/21 15/19/7 18/34/19 -f 20/17/5 30/43/26 27/18/6 -f 4/20/8 6/12/24 5/11/9 -f 19/22/11 3/58/12 8/23/12 -f 1/25/14 7/45/14 8/26/12 -f 1/28/14 2/59/10 17/29/15 -f 2/21/10 1/25/14 3/27/12 -f 28/31/17 32/46/29 9/32/18 -f 18/34/19 23/53/36 26/35/20 -f 4/37/8 3/58/12 19/22/11 -f 8/23/12 10/60/28 33/39/23 -f 22/38/22 25/54/37 6/40/24 -f 17/29/15 2/59/10 5/41/9 -f 16/30/16 28/31/17 7/33/14 -f 30/43/26 34/51/34 31/44/27 -f 7/45/14 9/4/18 10/6/28 -f 11/48/31 9/32/18 32/46/29 -f 32/46/29 35/57/40 13/47/30 -f 33/39/23 10/60/28 12/49/32 -f 14/50/33 38/55/38 33/39/23 -f 34/51/34 37/56/39 36/52/35 -f 15/19/7 16/30/16 17/29/15 -f 21/36/21 22/38/22 19/22/11 -f 18/34/19 17/29/15 24/42/25 -f 21/36/21 26/35/20 25/54/37 -f 20/17/5 19/22/11 29/24/13 -f 15/19/7 27/18/6 28/31/17 -f 33/39/23 34/51/34 30/43/26 -f 28/31/17 27/18/6 31/44/27 -f 34/51/34 33/39/23 38/55/38 -f 35/57/40 32/46/29 31/44/27 -f 21/36/21 20/17/5 15/19/7 o MainBody -v -0.363464 1.792314 -0.108580 -v 0.371539 1.792314 -0.108580 -v -0.363464 1.715535 -0.076778 -v 0.371539 1.715535 -0.076778 -v -0.363464 1.683733 0.000001 -v 0.371539 1.683733 0.000001 -v -0.363464 1.715535 0.076779 -v 0.371539 1.715535 0.076779 -v -0.363464 1.792314 0.108582 -v 0.371539 1.792314 0.108582 -v -0.363464 1.869092 0.076779 -v 0.371539 1.869092 0.076779 -v -0.363464 1.900895 0.000001 -v 0.371539 1.900895 0.000001 -v -0.363464 1.869092 -0.076778 -v 0.371539 1.869092 -0.076778 -v -0.363464 1.792314 -0.222732 -v -0.363464 1.634818 -0.157495 -v 0.371539 1.634818 -0.157495 -v 0.371539 1.792314 -0.222732 -v -0.363464 1.569581 0.000001 -v 0.371539 1.569581 0.000001 -v -0.363464 1.634818 0.157496 -v 0.371539 1.634818 0.157496 -v -0.363464 1.792314 0.222733 -v 0.371539 1.792314 0.222733 -v -0.363464 1.949810 0.157496 -v 0.371539 1.949810 0.157496 -v -0.363464 2.015046 0.000001 -v 0.371539 2.015046 0.000001 -v -0.363464 1.949810 -0.157495 -v 0.371539 1.949810 -0.157495 -v 0.469795 1.715535 -0.076778 -v 0.469795 1.792314 -0.108580 -v 0.469795 1.869092 -0.076778 -v 0.469795 1.900895 0.000001 -v 0.469795 1.869092 0.076779 -v 0.469795 1.792314 0.108582 -v 0.469795 1.715535 0.076779 -v 0.469795 1.683733 0.000001 -v -0.461720 1.792314 -0.108580 -v -0.461720 1.715535 -0.076778 -v -0.461720 1.683733 0.000001 -v -0.461720 1.715535 0.076779 -v -0.461720 1.792314 0.108582 -v -0.461720 1.869092 0.076779 -v -0.461720 1.900895 0.000001 -v -0.461720 1.869092 -0.076778 -v 0.355496 1.598891 -0.003962 -v 0.354740 1.977090 -0.058046 -v 0.341458 1.959609 1.873490 -v 0.340702 2.337807 1.873490 -v 0.341459 1.959608 3.930497 -v 0.340703 2.337807 3.930497 -v 0.340888 2.245078 2.671944 -v 0.341066 2.155873 2.708894 -v 0.341244 2.066667 2.671944 -v 0.340814 2.282028 2.582738 -v 0.341318 2.029717 2.582738 -v 0.340888 2.245078 2.493533 -v 0.341244 2.066667 2.493533 -v 0.341066 2.155873 2.456583 -v 0.340888 2.245078 2.292009 -v 0.341066 2.155873 2.328959 -v 0.341244 2.066667 2.292009 -v 0.340814 2.282028 2.202804 -v 0.341318 2.029717 2.202804 -v 0.340888 2.245078 2.113599 -v 0.341244 2.066667 2.113599 -v 0.341066 2.155873 2.076648 -v 0.340888 2.245078 2.859306 -v 0.341244 2.066667 2.859307 -v 0.341318 2.029717 2.948511 -v 0.341066 2.155873 2.822356 -v 0.340814 2.282028 2.948512 -v 0.341244 2.066667 3.037717 -v 0.340888 2.245078 3.037717 -v 0.341066 2.155873 3.203147 -v 0.341244 2.066667 3.240097 -v 0.341066 2.155873 3.074667 -v 0.340814 2.282028 3.329302 -v 0.340888 2.245078 3.240097 -v 0.341318 2.029717 3.329302 -v 0.340888 2.245078 3.418508 -v 0.341244 2.066667 3.418507 -v 0.341066 2.155873 3.455458 -v 0.357520 1.598891 -0.003962 -v 0.356764 1.977090 -0.058046 -v 0.343482 1.959609 1.873490 -v 0.342726 2.337808 1.873490 -v 0.343483 1.959609 3.930497 -v 0.342727 2.337807 3.930497 -v 0.342912 2.245078 2.671944 -v 0.343090 2.155873 2.708894 -v 0.343268 2.066667 2.671944 -v 0.342838 2.282028 2.582738 -v 0.343342 2.029717 2.582738 -v 0.342912 2.245078 2.493533 -v 0.343268 2.066667 2.493533 -v 0.343090 2.155873 2.456583 -v 0.342912 2.245078 2.292009 -v 0.343090 2.155873 2.328959 -v 0.343268 2.066667 2.292009 -v 0.342838 2.282028 2.202804 -v 0.343342 2.029717 2.202804 -v 0.342912 2.245078 2.113599 -v 0.343268 2.066667 2.113599 -v 0.343090 2.155873 2.076648 -v 0.342912 2.245078 2.859306 -v 0.343268 2.066667 2.859307 -v 0.343342 2.029717 2.948512 -v 0.343090 2.155873 2.822356 -v 0.342838 2.282028 2.948511 -v 0.343268 2.066667 3.037717 -v 0.342912 2.245078 3.037716 -v 0.343090 2.155873 3.203147 -v 0.343268 2.066667 3.240097 -v 0.343090 2.155873 3.074667 -v 0.342838 2.282028 3.329302 -v 0.342912 2.245078 3.240097 -v 0.343342 2.029717 3.329302 -v 0.342912 2.245078 3.418508 -v 0.343269 2.066667 3.418507 -v 0.343090 2.155873 3.455457 -v -0.346320 1.598892 -0.003962 -v -0.347076 1.977091 -0.058045 -v -0.353683 1.959627 1.873524 -v -0.354998 2.337825 1.873522 -v -0.374964 1.959569 3.930422 -v -0.376280 2.337767 3.930419 -v -0.362937 2.245073 2.671933 -v -0.363008 2.155867 2.708882 -v -0.362316 2.066663 2.671935 -v -0.362142 2.282025 2.582732 -v -0.361264 2.029716 2.582734 -v -0.361091 2.245078 2.493532 -v -0.360470 2.066668 2.493534 -v -0.360398 2.155874 2.456585 -v -0.359006 2.245084 2.292019 -v -0.359078 2.155878 2.328968 -v -0.358385 2.066674 2.292021 -v -0.358211 2.282036 2.202818 -v -0.357334 2.029727 2.202820 -v -0.357160 2.245089 2.113619 -v -0.356539 2.066679 2.113620 -v -0.356467 2.155885 2.076671 -v -0.364875 2.245068 2.859286 -v -0.364254 2.066658 2.859288 -v -0.365049 2.029706 2.948488 -v -0.364182 2.155864 2.822339 -v -0.365926 2.282015 2.948486 -v -0.366100 2.066653 3.037689 -v -0.366721 2.245063 3.037687 -v -0.368122 2.155853 3.203109 -v -0.368194 2.066647 3.240057 -v -0.366793 2.155857 3.074636 -v -0.369866 2.282004 3.329256 -v -0.368815 2.245057 3.240056 -v -0.368988 2.029695 3.329258 -v -0.370660 2.245052 3.418457 -v -0.370040 2.066642 3.418458 -v -0.370732 2.155846 3.455406 -v -0.348344 1.598881 -0.003983 -v -0.349100 1.977080 -0.058066 -v -0.355707 1.959616 1.873504 -v -0.357022 2.337814 1.873501 -v -0.376988 1.959558 3.930400 -v -0.378304 2.337756 3.930398 -v -0.364960 2.245062 2.671912 -v -0.365032 2.155856 2.708861 -v -0.364340 2.066652 2.671914 -v -0.364166 2.282014 2.582711 -v -0.363288 2.029705 2.582713 -v -0.363114 2.245067 2.493511 -v -0.362494 2.066657 2.493513 -v -0.362422 2.155863 2.456564 -v -0.361030 2.245073 2.291999 -v -0.361102 2.155867 2.328947 -v -0.360409 2.066663 2.292000 -v -0.360235 2.282025 2.202798 -v -0.359358 2.029716 2.202799 -v -0.359184 2.245078 2.113598 -v -0.358563 2.066668 2.113599 -v -0.358491 2.155874 2.076650 -v -0.366899 2.245057 2.859265 -v -0.366278 2.066647 2.859267 -v -0.367073 2.029694 2.948467 -v -0.366206 2.155853 2.822318 -v -0.367950 2.282004 2.948465 -v -0.368124 2.066642 3.037668 -v -0.368745 2.245051 3.037666 -v -0.370146 2.155842 3.203087 -v -0.370218 2.066636 3.240036 -v -0.368817 2.155845 3.074614 -v -0.371890 2.281993 3.329235 -v -0.370838 2.245046 3.240035 -v -0.371012 2.029684 3.329237 -v -0.372684 2.245041 3.418436 -v -0.372064 2.066631 3.418437 -v -0.372756 2.155835 3.455384 -v 0.341459 1.956579 3.930497 -v 0.341458 1.956579 1.873490 -v -0.374964 1.956539 3.930422 -v -0.353683 1.956597 1.873524 -v -0.004690 2.368911 3.653735 -v 0.120989 2.316853 3.653735 -v 0.173046 2.191175 3.653735 -v 0.120989 2.065497 3.653736 -v -0.004690 2.013439 3.653736 -v -0.130368 2.065497 3.653735 -v -0.182425 2.191175 3.653735 -v -0.130368 2.316853 3.653735 -v -0.406867 1.940766 4.791202 -v -0.406867 1.940766 3.592421 -v 0.380420 1.940766 4.791202 -v 0.380420 1.940766 3.592420 -v -0.354001 1.954725 1.875823 -v 0.344047 1.954725 1.875823 -v -0.354001 1.954725 3.879303 -v 0.344048 1.954725 3.879303 -v -0.232148 2.451141 4.791202 -v -0.406867 2.345249 4.791202 -v -0.406867 2.345249 3.592421 -v -0.232149 2.451141 3.592421 -v 0.380420 2.345248 4.791202 -v 0.205702 2.451140 4.791202 -v 0.205701 2.451140 3.592420 -v 0.380420 2.345248 3.592420 -v 0.173331 2.039119 4.791202 -v 0.111260 2.065497 4.748067 -v 0.236315 2.191175 4.791202 -v 0.163318 2.191175 4.748067 -v -0.014802 1.961192 4.791202 -v -0.014418 2.013439 4.748067 -v -0.202934 2.039119 4.791203 -v -0.140096 2.065497 4.748067 -v -0.202934 2.343231 4.791203 -v -0.140096 2.316853 4.748067 -v -0.265918 2.191175 4.791202 -v -0.192154 2.191175 4.748067 -v 0.173331 2.343231 4.791203 -v 0.111260 2.316853 4.748067 -v -0.014801 2.421158 4.791202 -v -0.014418 2.368911 4.748067 -v 0.000000 1.315694 7.118857 -v 0.000000 1.315694 7.847215 -v 0.118402 1.266650 7.118857 -v 0.118402 1.266650 7.847215 -v 0.167446 1.148248 7.118857 -v 0.167446 1.148248 7.847215 -v 0.118402 1.029846 7.118857 -v 0.118402 1.029846 7.847215 -v -0.000000 0.980802 7.118857 -v -0.000000 0.980802 7.847215 -v -0.118402 1.029846 7.118857 -v -0.118402 1.029846 7.847215 -v -0.167446 1.148248 7.118857 -v -0.167446 1.148248 7.847215 -v -0.118402 1.266650 7.118857 -v -0.118402 1.266650 7.847215 -v 0.142582 1.290830 7.847215 -v 0.000000 1.349889 7.847215 -v 0.201641 1.148248 7.847215 -v 0.142582 1.005666 7.847215 -v -0.000000 0.946607 7.847215 -v -0.142582 1.005666 7.847215 -v -0.201641 1.148248 7.847215 -v -0.142582 1.290830 7.847215 -v 0.115253 1.263501 8.443404 -v -0.000000 1.311241 8.443404 -v 0.162993 1.148248 8.443404 -v 0.115253 1.032995 8.443404 -v -0.000000 0.985255 8.443404 -v -0.115253 1.032995 8.443404 -v -0.162993 1.148248 8.443404 -v -0.115253 1.263501 8.443404 -v 0.142582 1.290830 8.443404 -v -0.000000 1.349889 8.443404 -v 0.201641 1.148248 8.443404 -v 0.142582 1.005666 8.443404 -v -0.000000 0.946607 8.443404 -v -0.142582 1.005666 8.443404 -v -0.201641 1.148248 8.443404 -v -0.142582 1.290830 8.443404 -v 0.115253 1.263501 10.094847 -v -0.000000 1.311241 10.094847 -v 0.162993 1.148248 10.094847 -v 0.115253 1.032995 10.094847 -v -0.000000 0.985255 10.094847 -v -0.115253 1.032995 10.094847 -v -0.162993 1.148248 10.094847 -v -0.115253 1.263501 10.094847 -v -0.000000 1.739413 7.127589 -v 0.000000 1.739413 9.682537 -v 0.117851 1.690598 7.127589 -v 0.117851 1.690598 9.682537 -v 0.166667 1.572747 7.127589 -v 0.166667 1.572747 9.682537 -v 0.117851 1.454896 7.127589 -v 0.117851 1.454895 9.682537 -v -0.000000 1.406080 7.127589 -v -0.000000 1.406080 9.682537 -v -0.117851 1.454896 7.127589 -v -0.117851 1.454896 9.682537 -v -0.166667 1.572747 7.127589 -v -0.166667 1.572747 9.682537 -v -0.117851 1.690598 7.127589 -v -0.117851 1.690598 9.682537 -v 0.150885 1.723632 9.682537 -v -0.000000 1.786131 9.682537 -v 0.213384 1.572747 9.682537 -v 0.150885 1.421861 9.682537 -v -0.000000 1.359363 9.682537 -v -0.150885 1.421861 9.682537 -v -0.213384 1.572747 9.682537 -v -0.150885 1.723632 9.682537 -v 0.150885 1.723632 10.216743 -v -0.000000 1.786131 10.216743 -v 0.213384 1.572747 10.216743 -v 0.150885 1.421861 10.216743 -v -0.000000 1.359363 10.216743 -v -0.150886 1.421861 10.216743 -v -0.213384 1.572747 10.216743 -v -0.150886 1.723632 10.216743 -v 0.000000 1.739413 9.338546 -v 0.117851 1.690598 9.338546 -v 0.166667 1.572747 9.338546 -v 0.117851 1.454895 9.338546 -v -0.000000 1.406080 9.338546 -v -0.117851 1.454896 9.338546 -v -0.166667 1.572747 9.338546 -v -0.117851 1.690598 9.338546 -v -0.000000 2.059518 9.667969 -v -0.000000 2.059518 9.448745 -v 0.000000 1.739413 9.682537 -v -0.405685 1.923849 4.358274 -v -0.405685 1.923849 2.912947 -v 0.405685 1.923849 4.358274 -v 0.405685 1.923849 2.912947 -v -0.405685 1.798284 4.619242 -v 0.405685 1.798284 4.619242 -v -0.405685 1.798284 7.148043 -v 0.405685 1.798284 7.148043 -v -0.289699 0.969287 4.358274 -v -0.405685 1.112237 4.358274 -v -0.289699 0.969287 2.912947 -v -0.405685 1.112237 2.912947 -v 0.405685 1.112237 4.358274 -v 0.289699 0.969287 4.358274 -v 0.405685 1.112237 2.912947 -v 0.289699 0.969287 2.912947 -v -0.289699 0.969287 4.619242 -v -0.405685 1.112237 4.619242 -v 0.405685 1.112237 4.619242 -v 0.289699 0.969287 4.619242 -v -0.405685 1.112237 7.148043 -v -0.289699 0.969287 7.148043 -v 0.289699 0.969287 7.148043 -v 0.405685 1.112237 7.148043 -v 0.405685 1.528667 3.008653 -v 0.405685 1.382289 3.008653 -v 0.405685 1.528667 4.328139 -v 0.405685 1.382289 4.374518 -v 0.405685 1.525686 4.589107 -v 0.405685 1.384835 4.635486 -v 0.405685 1.525686 7.052337 -v 0.405685 1.384835 7.052337 -v -0.405685 1.382289 4.374518 -v -0.405685 1.528667 4.328139 -v -0.405685 1.528667 3.008653 -v -0.405685 1.382289 3.008653 -v -0.405685 1.384835 4.635486 -v -0.405685 1.525686 4.589107 -v -0.405685 1.384835 7.052337 -v -0.405685 1.525686 7.052337 -v 0.405685 1.572582 2.912947 -v 0.405685 1.338374 2.912947 -v 0.405685 1.569602 7.148043 -v 0.405685 1.340920 7.148043 -v 0.405685 1.340920 4.619242 -v 0.405685 1.569602 4.619242 -v 0.405685 1.338374 4.358274 -v 0.405685 1.572582 4.358274 -v -0.405685 1.572582 2.912947 -v -0.405685 1.338374 2.912947 -v -0.405685 1.340920 7.148043 -v -0.405685 1.569602 7.148043 -v -0.405685 1.569602 4.619242 -v -0.405685 1.340920 4.619242 -v -0.405685 1.572582 4.358274 -v -0.405685 1.338374 4.358274 -v 0.328656 1.528667 4.328139 -v 0.328656 1.382289 4.374518 -v 0.328656 1.525686 4.589107 -v 0.328656 1.384835 4.635486 -v 0.328656 1.528667 3.008653 -v 0.328656 1.382289 3.008653 -v 0.328656 1.525686 7.052337 -v 0.328656 1.384835 7.052337 -v -0.344691 1.382289 4.374518 -v -0.344691 1.528667 4.328139 -v -0.344691 1.384835 4.635486 -v -0.344691 1.525686 4.589107 -v -0.344691 1.528667 3.008653 -v -0.344691 1.382289 3.008653 -v -0.344691 1.384835 7.052337 -v -0.344691 1.525686 7.052337 -v -0.049907 0.888719 0.860207 -v -0.049907 1.065321 0.860207 -v -0.049907 0.888719 0.779505 -v -0.049907 1.065321 0.725059 -v 0.057982 0.888719 0.860207 -v 0.057982 1.065321 0.860207 -v 0.057982 0.888719 0.779505 -v 0.057982 1.065321 0.725059 -v -0.049907 0.736731 0.747116 -v 0.057982 0.736731 0.747116 -v -0.152407 0.831944 1.780747 -v -0.152407 1.063158 1.780747 -v -0.152407 0.705619 1.353734 -v -0.152407 1.063158 1.353734 -v 0.160482 0.831944 1.780747 -v 0.160482 1.063158 1.780747 -v 0.160482 0.705619 1.353734 -v 0.160482 1.063158 1.353734 -v 0.212140 -0.964352 0.214434 -v 0.337371 -0.964352 -0.043596 -v 0.337371 0.363268 0.456403 -v 0.212140 0.363268 0.714434 -v -0.329296 -0.964352 -0.043596 -v -0.204065 -0.964352 0.214434 -v -0.204065 0.363268 0.714434 -v -0.329296 0.363268 0.456403 -v 0.337371 -0.964352 -0.497196 -v 0.212140 -0.964353 -0.785566 -v 0.212140 0.363268 -0.035566 -v 0.337371 0.363268 0.252804 -v -0.204066 -0.964353 -0.785566 -v -0.329296 -0.964352 -0.497196 -v -0.329296 0.363268 0.252804 -v -0.204065 0.363268 -0.035566 -v -0.204065 -1.212434 0.363501 -v -0.329296 -1.212434 0.105471 -v 0.337371 -1.212434 0.105471 -v 0.212140 -1.212434 0.363501 -v -0.329296 -1.212434 -0.348129 -v -0.204065 -1.212434 -0.636499 -v 0.212140 -1.212434 -0.636499 -v 0.337371 -1.212434 -0.348129 -v 0.337371 0.737960 0.403588 -v 0.212140 0.737960 0.661618 -v -0.204065 0.737960 0.661618 -v -0.329296 0.737960 0.403588 -v -0.329296 0.737960 -0.328542 -v -0.204065 0.737960 -0.616911 -v 0.212140 0.737960 -0.616911 -v 0.337371 0.737960 -0.328542 -v 0.212140 1.075558 0.661618 -v 0.337371 1.075558 0.403588 -v -0.329296 1.075558 0.403588 -v -0.204065 1.075558 0.661618 -v -0.204066 1.075558 -0.616911 -v -0.329296 1.075558 -0.328542 -v 0.337371 1.075558 -0.328542 -v 0.212140 1.075558 -0.616911 -v -0.147016 0.719602 1.371418 -v 0.155090 0.719602 1.371418 -v -0.147016 0.719602 0.645907 -v 0.155090 0.719602 0.645907 -v -0.147016 0.620284 1.008663 -v 0.155090 0.620284 1.008663 -v -0.147016 0.620284 1.190040 -v 0.155090 0.620284 1.190040 -v -0.145183 0.719602 1.367017 -v 0.153258 0.719602 1.367017 -v -0.145183 0.719602 0.650309 -v 0.153258 0.719602 0.650309 -v -0.145183 0.621489 1.008663 -v 0.153258 0.621489 1.008663 -v -0.145183 0.621489 1.187840 -v 0.153258 0.621489 1.187840 -v -0.182936 1.772534 2.404954 -v -0.519915 1.772534 2.404954 -v -0.182936 1.822573 2.426134 -v -0.519915 1.822573 2.425681 -v -0.182936 1.772534 2.446860 -v -0.519915 1.772534 2.446860 -v -0.194255 1.718664 2.424850 -v -0.519915 1.720129 2.426178 -v -0.210307 1.836682 1.008561 -v -0.210307 1.836682 2.846646 -v -0.100311 1.850322 1.008561 -v -0.100311 1.850322 2.846646 -v -0.264802 1.639263 1.008561 -v -0.264802 1.639262 2.846646 -v -0.278441 1.749259 1.008561 -v -0.278441 1.749258 2.846646 -v -0.335002 1.045853 2.943055 -v -0.335003 1.698259 2.943055 -v -0.335002 1.045853 -0.679456 -v -0.335002 1.698259 -0.452921 -v 0.339998 1.045853 2.943055 -v 0.339998 1.698259 2.943055 -v 0.339998 1.045853 -0.679456 -v 0.339998 1.698259 -0.452921 -v -0.195099 1.902804 2.943055 -v -0.195099 1.902804 -0.452921 -v 0.200094 1.902804 -0.452921 -v 0.200094 1.902804 2.943055 -v -0.335002 1.698259 1.313965 -v -0.195099 1.902804 1.313965 -v -0.335003 1.698259 2.497503 -v -0.195099 1.902804 2.497503 -v -0.201521 1.606961 2.497503 -v -0.201521 1.606961 1.313965 -v -0.061617 1.811506 2.497503 -v -0.061617 1.811506 1.313965 +v 0.363464 1.792314 0.108580 +v -0.371539 1.792314 0.108580 +v 0.363464 1.715535 0.076778 +v -0.371539 1.715535 0.076778 +v 0.363464 1.683733 -0.000001 +v -0.371539 1.683733 -0.000001 +v 0.363464 1.715535 -0.076779 +v -0.371539 1.715535 -0.076779 +v 0.363464 1.792314 -0.108582 +v -0.371539 1.792314 -0.108582 +v 0.363464 1.869092 -0.076779 +v -0.371539 1.869092 -0.076779 +v 0.363464 1.900895 -0.000001 +v -0.371539 1.900895 -0.000001 +v 0.363464 1.869092 0.076778 +v -0.371539 1.869092 0.076778 +v 0.363464 1.792314 0.222732 +v 0.363464 1.634818 0.157495 +v -0.371539 1.634818 0.157495 +v -0.371539 1.792314 0.222732 +v 0.363464 1.569581 -0.000001 +v -0.371539 1.569581 -0.000001 +v 0.363464 1.634818 -0.157496 +v -0.371539 1.634818 -0.157496 +v 0.363464 1.792314 -0.222733 +v -0.371539 1.792314 -0.222733 +v 0.363464 1.949810 -0.157496 +v -0.371539 1.949810 -0.157496 +v 0.363464 2.015046 -0.000001 +v -0.371539 2.015046 -0.000001 +v 0.363464 1.949810 0.157495 +v -0.371539 1.949810 0.157495 +v -0.469795 1.715535 0.076778 +v -0.469795 1.792314 0.108580 +v -0.469795 1.869092 0.076778 +v -0.469795 1.900895 -0.000001 +v -0.469795 1.869092 -0.076779 +v -0.469795 1.792314 -0.108582 +v -0.469795 1.715535 -0.076779 +v -0.469795 1.683733 -0.000001 +v 0.461720 1.792314 0.108580 +v 0.461720 1.715535 0.076778 +v 0.461720 1.683733 -0.000001 +v 0.461720 1.715535 -0.076779 +v 0.461720 1.792314 -0.108582 +v 0.461720 1.869092 -0.076779 +v 0.461720 1.900895 -0.000001 +v 0.461720 1.869092 0.076778 +v -0.355496 1.598891 0.003962 +v -0.354740 1.977090 0.058046 +v -0.341458 1.959609 -1.873490 +v -0.340702 2.337807 -1.873490 +v -0.341458 1.959608 -3.930497 +v -0.340702 2.337807 -3.930497 +v -0.340888 2.245078 -2.671944 +v -0.341066 2.155873 -2.708894 +v -0.341244 2.066667 -2.671944 +v -0.340814 2.282028 -2.582738 +v -0.341318 2.029717 -2.582738 +v -0.340888 2.245078 -2.493533 +v -0.341244 2.066667 -2.493533 +v -0.341066 2.155873 -2.456583 +v -0.340888 2.245078 -2.292009 +v -0.341066 2.155873 -2.328959 +v -0.341244 2.066667 -2.292009 +v -0.340814 2.282028 -2.202804 +v -0.341318 2.029717 -2.202804 +v -0.340888 2.245078 -2.113599 +v -0.341244 2.066667 -2.113599 +v -0.341066 2.155873 -2.076648 +v -0.340888 2.245078 -2.859306 +v -0.341244 2.066667 -2.859307 +v -0.341318 2.029717 -2.948511 +v -0.341066 2.155873 -2.822356 +v -0.340814 2.282028 -2.948512 +v -0.341244 2.066667 -3.037717 +v -0.340888 2.245078 -3.037717 +v -0.341066 2.155873 -3.203147 +v -0.341244 2.066667 -3.240097 +v -0.341066 2.155873 -3.074667 +v -0.340813 2.282028 -3.329302 +v -0.340888 2.245078 -3.240097 +v -0.341318 2.029717 -3.329302 +v -0.340887 2.245078 -3.418508 +v -0.341244 2.066667 -3.418507 +v -0.341065 2.155873 -3.455458 +v -0.357520 1.598891 0.003962 +v -0.356764 1.977090 0.058046 +v -0.343482 1.959609 -1.873490 +v -0.342726 2.337808 -1.873490 +v -0.343482 1.959609 -3.930497 +v -0.342726 2.337807 -3.930497 +v -0.342912 2.245078 -2.671944 +v -0.343090 2.155873 -2.708894 +v -0.343268 2.066667 -2.671944 +v -0.342838 2.282028 -2.582738 +v -0.343342 2.029717 -2.582738 +v -0.342912 2.245078 -2.493533 +v -0.343268 2.066667 -2.493533 +v -0.343090 2.155873 -2.456583 +v -0.342912 2.245078 -2.292009 +v -0.343090 2.155873 -2.328959 +v -0.343268 2.066667 -2.292009 +v -0.342838 2.282028 -2.202804 +v -0.343342 2.029717 -2.202804 +v -0.342912 2.245078 -2.113599 +v -0.343268 2.066667 -2.113599 +v -0.343090 2.155873 -2.076648 +v -0.342912 2.245078 -2.859306 +v -0.343268 2.066667 -2.859307 +v -0.343342 2.029717 -2.948512 +v -0.343090 2.155873 -2.822356 +v -0.342838 2.282028 -2.948511 +v -0.343268 2.066667 -3.037717 +v -0.342912 2.245078 -3.037716 +v -0.343090 2.155873 -3.203147 +v -0.343268 2.066667 -3.240097 +v -0.343090 2.155873 -3.074667 +v -0.342837 2.282028 -3.329302 +v -0.342912 2.245078 -3.240097 +v -0.343341 2.029717 -3.329302 +v -0.342911 2.245078 -3.418508 +v -0.343268 2.066667 -3.418507 +v -0.343089 2.155873 -3.455457 +v 0.346320 1.598892 0.003962 +v 0.347076 1.977091 0.058045 +v 0.353683 1.959627 -1.873524 +v 0.354998 2.337825 -1.873522 +v 0.374965 1.959569 -3.930422 +v 0.376281 2.337767 -3.930419 +v 0.362937 2.245073 -2.671933 +v 0.363008 2.155867 -2.708882 +v 0.362316 2.066663 -2.671935 +v 0.362142 2.282025 -2.582732 +v 0.361264 2.029716 -2.582734 +v 0.361091 2.245078 -2.493532 +v 0.360470 2.066668 -2.493534 +v 0.360398 2.155874 -2.456585 +v 0.359006 2.245084 -2.292019 +v 0.359078 2.155878 -2.328968 +v 0.358385 2.066674 -2.292021 +v 0.358211 2.282036 -2.202818 +v 0.357334 2.029727 -2.202820 +v 0.357160 2.245089 -2.113619 +v 0.356539 2.066679 -2.113620 +v 0.356467 2.155885 -2.076671 +v 0.364875 2.245068 -2.859286 +v 0.364254 2.066658 -2.859288 +v 0.365049 2.029706 -2.948488 +v 0.364182 2.155864 -2.822339 +v 0.365926 2.282015 -2.948486 +v 0.366100 2.066653 -3.037689 +v 0.366721 2.245063 -3.037687 +v 0.368122 2.155853 -3.203109 +v 0.368194 2.066647 -3.240057 +v 0.366793 2.155857 -3.074636 +v 0.369867 2.282004 -3.329256 +v 0.368815 2.245057 -3.240056 +v 0.368989 2.029695 -3.329258 +v 0.370661 2.245052 -3.418457 +v 0.370041 2.066642 -3.418458 +v 0.370733 2.155846 -3.455406 +v 0.348344 1.598881 0.003983 +v 0.349100 1.977080 0.058066 +v 0.355707 1.959616 -1.873504 +v 0.357022 2.337814 -1.873501 +v 0.376989 1.959558 -3.930400 +v 0.378305 2.337756 -3.930398 +v 0.364960 2.245062 -2.671912 +v 0.365032 2.155856 -2.708861 +v 0.364340 2.066652 -2.671914 +v 0.364166 2.282014 -2.582711 +v 0.363288 2.029705 -2.582713 +v 0.363114 2.245067 -2.493511 +v 0.362494 2.066657 -2.493513 +v 0.362422 2.155863 -2.456564 +v 0.361030 2.245073 -2.291999 +v 0.361102 2.155867 -2.328947 +v 0.360409 2.066663 -2.292000 +v 0.360235 2.282025 -2.202798 +v 0.359358 2.029716 -2.202799 +v 0.359184 2.245078 -2.113598 +v 0.358563 2.066668 -2.113599 +v 0.358491 2.155874 -2.076650 +v 0.366899 2.245057 -2.859265 +v 0.366278 2.066647 -2.859267 +v 0.367073 2.029694 -2.948467 +v 0.366206 2.155853 -2.822318 +v 0.367950 2.282004 -2.948465 +v 0.368124 2.066642 -3.037668 +v 0.368745 2.245051 -3.037666 +v 0.370146 2.155842 -3.203087 +v 0.370218 2.066636 -3.240036 +v 0.368817 2.155845 -3.074614 +v 0.371891 2.281993 -3.329235 +v 0.370838 2.245046 -3.240035 +v 0.371013 2.029684 -3.329237 +v 0.372685 2.245041 -3.418436 +v 0.372065 2.066631 -3.418437 +v 0.372757 2.155835 -3.455384 +v -0.341458 1.956579 -3.930497 +v -0.341458 1.956579 -1.873490 +v 0.374965 1.956539 -3.930422 +v 0.353683 1.956597 -1.873524 +v 0.004691 2.368911 -3.653735 +v -0.120988 2.316853 -3.653735 +v -0.173045 2.191175 -3.653735 +v -0.120988 2.065497 -3.653736 +v 0.004691 2.013439 -3.653736 +v 0.130369 2.065497 -3.653735 +v 0.182426 2.191175 -3.653735 +v 0.130369 2.316853 -3.653735 +v 0.406868 1.940766 -4.791202 +v 0.406868 1.940766 -3.592421 +v -0.380419 1.940766 -4.791202 +v -0.380419 1.940766 -3.592420 +v 0.354001 1.954725 -1.875823 +v -0.344047 1.954725 -1.875823 +v 0.354002 1.954725 -3.879303 +v -0.344047 1.954725 -3.879303 +v 0.232149 2.451141 -4.791202 +v 0.406868 2.345249 -4.791202 +v 0.406868 2.345249 -3.592421 +v 0.232150 2.451141 -3.592421 +v -0.380419 2.345248 -4.791202 +v -0.205701 2.451140 -4.791202 +v -0.205700 2.451140 -3.592420 +v -0.380419 2.345248 -3.592420 +v -0.173330 2.039119 -4.791202 +v -0.111259 2.065497 -4.748067 +v -0.236314 2.191175 -4.791202 +v -0.163317 2.191175 -4.748067 +v 0.014803 1.961192 -4.791202 +v 0.014419 2.013439 -4.748067 +v 0.202935 2.039119 -4.791203 +v 0.140097 2.065497 -4.748067 +v 0.202935 2.343231 -4.791203 +v 0.140097 2.316853 -4.748067 +v 0.265919 2.191175 -4.791202 +v 0.192155 2.191175 -4.748067 +v -0.173330 2.343231 -4.791203 +v -0.111259 2.316853 -4.748067 +v 0.014802 2.421158 -4.791202 +v 0.014419 2.368911 -4.748067 +v 0.000001 1.315694 -7.118857 +v 0.000001 1.315694 -7.847215 +v -0.118401 1.266650 -7.118857 +v -0.118401 1.266650 -7.847215 +v -0.167445 1.148248 -7.118857 +v -0.167445 1.148248 -7.847215 +v -0.118401 1.029846 -7.118857 +v -0.118401 1.029846 -7.847215 +v 0.000001 0.980802 -7.118857 +v 0.000001 0.980802 -7.847215 +v 0.118403 1.029846 -7.118857 +v 0.118403 1.029846 -7.847215 +v 0.167447 1.148248 -7.118857 +v 0.167447 1.148248 -7.847215 +v 0.118403 1.266650 -7.118857 +v 0.118403 1.266650 -7.847215 +v -0.142581 1.290830 -7.847215 +v 0.000001 1.349889 -7.847215 +v -0.201640 1.148248 -7.847215 +v -0.142581 1.005666 -7.847215 +v 0.000001 0.946607 -7.847215 +v 0.142583 1.005666 -7.847215 +v 0.201642 1.148248 -7.847215 +v 0.142583 1.290830 -7.847215 +v -0.115252 1.263501 -8.443404 +v 0.000001 1.311241 -8.443404 +v -0.162992 1.148248 -8.443404 +v -0.115252 1.032995 -8.443404 +v 0.000001 0.985255 -8.443404 +v 0.115254 1.032995 -8.443404 +v 0.162994 1.148248 -8.443404 +v 0.115254 1.263501 -8.443404 +v -0.142581 1.290830 -8.443404 +v 0.000001 1.349889 -8.443404 +v -0.201640 1.148248 -8.443404 +v -0.142581 1.005666 -8.443404 +v 0.000001 0.946607 -8.443404 +v 0.142583 1.005666 -8.443404 +v 0.201642 1.148248 -8.443404 +v 0.142583 1.290830 -8.443404 +v -0.115251 1.263501 -10.094847 +v 0.000002 1.311241 -10.094847 +v -0.162991 1.148247 -10.094847 +v -0.115251 1.032995 -10.094847 +v 0.000002 0.985255 -10.094847 +v 0.115255 1.032995 -10.094847 +v 0.162995 1.148247 -10.094847 +v 0.115255 1.263501 -10.094847 +v 0.000001 1.739413 -7.127589 +v 0.000001 1.739413 -9.682537 +v -0.117850 1.690598 -7.127589 +v -0.117850 1.690598 -9.682537 +v -0.166666 1.572747 -7.127589 +v -0.166666 1.572747 -9.682537 +v -0.117850 1.454896 -7.127589 +v -0.117850 1.454895 -9.682537 +v 0.000001 1.406080 -7.127589 +v 0.000001 1.406080 -9.682537 +v 0.117852 1.454896 -7.127589 +v 0.117852 1.454895 -9.682537 +v 0.166668 1.572747 -7.127589 +v 0.166668 1.572747 -9.682537 +v 0.117852 1.690598 -7.127589 +v 0.117852 1.690598 -9.682537 +v -0.150884 1.723632 -9.682537 +v 0.000001 1.786131 -9.682537 +v -0.213383 1.572747 -9.682537 +v -0.150884 1.421861 -9.682537 +v 0.000001 1.359362 -9.682537 +v 0.150886 1.421861 -9.682537 +v 0.213385 1.572747 -9.682537 +v 0.150886 1.723632 -9.682537 +v -0.150883 1.723632 -10.216743 +v 0.000002 1.786131 -10.216743 +v -0.213382 1.572747 -10.216743 +v -0.150883 1.421861 -10.216743 +v 0.000002 1.359362 -10.216743 +v 0.150888 1.421861 -10.216743 +v 0.213386 1.572747 -10.216743 +v 0.150888 1.723632 -10.216743 +v 0.000001 1.739413 -9.338546 +v -0.117850 1.690598 -9.338546 +v -0.166666 1.572747 -9.338546 +v -0.117850 1.454895 -9.338546 +v 0.000001 1.406080 -9.338546 +v 0.117852 1.454896 -9.338546 +v 0.166668 1.572747 -9.338546 +v 0.117852 1.690598 -9.338546 +v 0.000001 2.059518 -9.667969 +v 0.000001 2.059518 -9.448745 +v 0.000001 1.739413 -9.682537 +v 0.405686 1.923849 -4.358274 +v 0.405685 1.923849 -2.912947 +v -0.405684 1.923849 -4.358274 +v -0.405685 1.923849 -2.912947 +v 0.405686 1.798284 -4.619242 +v -0.405684 1.798284 -4.619242 +v 0.405686 1.798284 -7.148043 +v -0.405684 1.798284 -7.148043 +v 0.289700 0.969287 -4.358274 +v 0.405686 1.112237 -4.358274 +v 0.289699 0.969287 -2.912947 +v 0.405685 1.112237 -2.912947 +v -0.405684 1.112237 -4.358274 +v -0.289698 0.969287 -4.358274 +v -0.405685 1.112237 -2.912947 +v -0.289699 0.969287 -2.912947 +v 0.289700 0.969287 -4.619242 +v 0.405686 1.112237 -4.619242 +v -0.405684 1.112237 -4.619242 +v -0.289698 0.969287 -4.619242 +v 0.405686 1.112237 -7.148043 +v 0.289700 0.969287 -7.148043 +v -0.289698 0.969287 -7.148043 +v -0.405684 1.112237 -7.148043 +v -0.405685 1.528667 -3.008653 +v -0.405685 1.382289 -3.008653 +v -0.405684 1.528667 -4.328139 +v -0.405684 1.382289 -4.374518 +v -0.405684 1.525686 -4.589107 +v -0.405684 1.384835 -4.635486 +v -0.405684 1.525686 -7.052337 +v -0.405684 1.384835 -7.052337 +v 0.405686 1.382289 -4.374518 +v 0.405686 1.528667 -4.328139 +v 0.405685 1.528667 -3.008653 +v 0.405685 1.382289 -3.008653 +v 0.405686 1.384835 -4.635486 +v 0.405686 1.525686 -4.589107 +v 0.405686 1.384835 -7.052337 +v 0.405686 1.525686 -7.052337 +v -0.405685 1.572582 -2.912947 +v -0.405685 1.338374 -2.912947 +v -0.405684 1.569602 -7.148043 +v -0.405684 1.340920 -7.148043 +v -0.405684 1.340920 -4.619242 +v -0.405684 1.569602 -4.619242 +v -0.405684 1.338374 -4.358274 +v -0.405684 1.572582 -4.358274 +v 0.405685 1.572582 -2.912947 +v 0.405685 1.338374 -2.912947 +v 0.405686 1.340920 -7.148043 +v 0.405686 1.569602 -7.148043 +v 0.405686 1.569602 -4.619242 +v 0.405686 1.340920 -4.619242 +v 0.405686 1.572582 -4.358274 +v 0.405686 1.338374 -4.358274 +v -0.328655 1.528667 -4.328139 +v -0.328655 1.382289 -4.374518 +v -0.328655 1.525686 -4.589107 +v -0.328655 1.384835 -4.635486 +v -0.328656 1.528667 -3.008653 +v -0.328656 1.382289 -3.008653 +v -0.328655 1.525686 -7.052337 +v -0.328655 1.384835 -7.052337 +v 0.344692 1.382289 -4.374518 +v 0.344692 1.528667 -4.328139 +v 0.344692 1.384835 -4.635486 +v 0.344692 1.525686 -4.589107 +v 0.344691 1.528667 -3.008653 +v 0.344691 1.382289 -3.008653 +v 0.344692 1.384835 -7.052337 +v 0.344692 1.525686 -7.052337 +v 0.049907 0.888719 -0.860207 +v 0.049907 1.065321 -0.860207 +v 0.049907 0.888719 -0.779505 +v 0.049907 1.065321 -0.725059 +v -0.057982 0.888719 -0.860207 +v -0.057982 1.065321 -0.860207 +v -0.057982 0.888719 -0.779505 +v -0.057982 1.065321 -0.725059 +v 0.049907 0.736731 -0.747116 +v -0.057982 0.736731 -0.747116 +v 0.152407 0.831944 -1.780747 +v 0.152407 1.063158 -1.780747 +v 0.152407 0.705619 -1.353734 +v 0.152407 1.063158 -1.353734 +v -0.160482 0.831944 -1.780747 +v -0.160482 1.063158 -1.780747 +v -0.160482 0.705619 -1.353734 +v -0.160482 1.063158 -1.353734 +v -0.212140 -0.964352 -0.214434 +v -0.337371 -0.964352 0.043596 +v -0.337371 0.363268 -0.456403 +v -0.212140 0.363268 -0.714434 +v 0.329296 -0.964352 0.043596 +v 0.204065 -0.964352 -0.214434 +v 0.204065 0.363268 -0.714434 +v 0.329296 0.363268 -0.456403 +v -0.337371 -0.964352 0.497196 +v -0.212140 -0.964353 0.785566 +v -0.212140 0.363268 0.035566 +v -0.337371 0.363268 -0.252804 +v 0.204066 -0.964353 0.785566 +v 0.329296 -0.964352 0.497196 +v 0.329296 0.363268 -0.252804 +v 0.204065 0.363268 0.035566 +v 0.204065 -1.212434 -0.363501 +v 0.329296 -1.212434 -0.105471 +v -0.337371 -1.212434 -0.105471 +v -0.212140 -1.212434 -0.363501 +v 0.329296 -1.212434 0.348129 +v 0.204065 -1.212434 0.636499 +v -0.212140 -1.212434 0.636499 +v -0.337371 -1.212434 0.348129 +v -0.337371 0.737960 -0.403588 +v -0.212140 0.737960 -0.661618 +v 0.204065 0.737960 -0.661618 +v 0.329296 0.737960 -0.403588 +v 0.329296 0.737960 0.328542 +v 0.204065 0.737960 0.616911 +v -0.212140 0.737960 0.616911 +v -0.337371 0.737960 0.328542 +v -0.212140 1.075558 -0.661618 +v -0.337371 1.075558 -0.403588 +v 0.329296 1.075558 -0.403588 +v 0.204065 1.075558 -0.661618 +v 0.204066 1.075558 0.616911 +v 0.329296 1.075558 0.328542 +v -0.337371 1.075558 0.328542 +v -0.212140 1.075558 0.616911 +v 0.147016 0.719602 -1.371418 +v -0.155090 0.719602 -1.371418 +v 0.147016 0.719602 -0.645907 +v -0.155090 0.719602 -0.645907 +v 0.147016 0.620284 -1.008663 +v -0.155090 0.620284 -1.008663 +v 0.147016 0.620284 -1.190040 +v -0.155090 0.620284 -1.190040 +v 0.145183 0.719602 -1.367017 +v -0.153258 0.719602 -1.367017 +v 0.145183 0.719602 -0.650309 +v -0.153258 0.719602 -0.650309 +v 0.145183 0.621489 -1.008663 +v -0.153258 0.621489 -1.008663 +v 0.145183 0.621489 -1.187840 +v -0.153258 0.621489 -1.187840 +v 0.335002 1.045853 -2.943055 +v 0.335003 1.698259 -2.943055 +v 0.335002 1.045853 0.679456 +v 0.335002 1.698259 0.452921 +v -0.339998 1.045853 -2.943055 +v -0.339998 1.698259 -2.943055 +v -0.339998 1.045853 0.679456 +v -0.339998 1.698259 0.452921 +v 0.195099 1.902804 -2.943055 +v 0.195099 1.902804 0.452921 +v -0.200094 1.902804 0.452921 +v -0.200094 1.902804 -2.943055 +v 0.335002 1.698259 -1.313965 +v 0.195099 1.902804 -1.313965 +v 0.335003 1.698259 -2.497503 +v 0.195099 1.902804 -2.497503 +v 0.201521 1.606961 -2.497503 +v 0.201521 1.606961 -1.313965 +v 0.061617 1.811506 -2.497503 +v 0.061617 1.811506 -1.313965 +v 0.335003 1.574884 -2.498426 +v 0.335003 1.573266 -1.314070 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0030 0.0069 +vn 1.0000 -0.0020 -0.0000 +vn -1.0000 0.0030 -0.0069 +vn -1.0000 0.0020 -0.0000 +vn -1.0000 0.0025 -0.0034 +vn -0.9999 0.0035 -0.0103 +vn 1.0000 -0.0025 0.0034 +vn 0.9999 -0.0034 0.0103 +vn 0.9999 -0.0035 0.0103 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.0001 1.0000 +vn 0.1336 0.3226 0.9371 +vn -0.9526 0.3043 -0.0000 +vn -0.1336 0.3226 0.9371 +vn -0.0188 0.0455 -0.9988 +vn 0.0188 0.0455 -0.9988 +vn 0.9526 0.3043 -0.0000 +vn -0.0000 0.9011 -0.4336 +vn -0.0000 1.0000 0.0098 +vn -0.0000 -0.9999 0.0114 +vn -0.0000 0.3280 0.9447 +vn 0.8254 0.5646 -0.0000 +vn 0.0051 -0.0075 1.0000 +vn 0.5645 -0.8254 -0.0000 +vn 1.0000 -0.0020 0.0069 +vn -1.0000 0.0020 -0.0069 +vn -1.0000 0.0035 -0.0035 +vn 1.0000 -0.0035 0.0035 +vn 0.0001 1.0000 -0.0000 +vn -0.0000 -0.0001 1.0000 +vn -0.0006 0.0008 -1.0000 +vn -0.6302 -0.0001 0.7764 +vn 0.6302 -0.5490 0.5490 +vn 0.6302 -0.0000 0.7764 +vn -0.6302 -0.5490 0.5490 +vn 0.6302 -0.7764 -0.0000 +vn -0.6302 -0.7764 -0.0000 +vn 0.6302 -0.5490 -0.5490 +vn -0.6302 -0.5490 -0.5491 +vn 0.6302 -0.0001 -0.7764 +vn -0.6302 -0.0000 -0.7764 +vn 0.6302 0.5490 -0.5490 +vn -0.6302 0.5490 -0.5490 +vn 0.6302 0.7764 -0.0000 +vn -0.6302 0.7764 0.0002 +vn 0.6302 0.5492 0.5488 +vn -0.6302 0.5490 0.5490 +vn -0.6302 0.0001 0.7764 +vn -0.8042 -0.4204 0.4202 +vn -0.8042 -0.0001 0.5943 +vn -0.8042 0.4205 0.4201 +vn -0.6302 0.7764 -0.0000 +vn -0.8042 0.5943 -0.0000 +vn -0.6302 0.5489 -0.5491 +vn -0.8042 0.4204 -0.4202 +vn -0.8042 -0.0000 -0.5943 +vn -0.6302 -0.5489 -0.5491 +vn -0.8042 -0.4203 -0.4203 +vn -0.8042 -0.5943 -0.0000 +vn 0.6302 -0.5490 0.5491 +vn 0.8042 -0.0002 0.5943 +vn 0.8042 -0.4203 0.4203 +vn 0.8042 -0.5943 -0.0000 +vn 0.8042 -0.4204 -0.4202 +vn 0.6302 -0.0000 -0.7764 +vn 0.8042 -0.0000 -0.5943 +vn 0.8042 0.4205 -0.4201 +vn 0.8042 0.5943 -0.0000 +vn 0.6302 0.5489 0.5491 +vn 0.8042 0.4205 0.4201 +vn 0.6302 0.0002 0.7764 +vn 0.5512 0.5495 -0.6279 +vn 0.8335 -0.0000 -0.5525 +vn 0.7791 -0.0000 -0.6269 +vn -0.7736 -0.0000 -0.6336 +vn -0.5787 0.6354 -0.5113 +vn -0.5468 0.5484 -0.6326 +vn -0.5468 -0.5484 -0.6326 +vn -0.0003 -0.8814 -0.4723 +vn -0.5787 -0.6354 -0.5113 +vn 0.0017 -0.7764 -0.6302 +vn 0.5808 -0.6392 -0.5041 +vn -0.8271 -0.0000 -0.5621 +vn 0.2042 0.7309 0.6512 +vn -0.2042 0.7309 -0.6512 +vn -0.2042 0.7309 0.6512 +vn 0.5512 -0.5495 -0.6279 +vn 0.6894 0.3883 -0.6115 +vn 0.2041 0.7310 -0.6512 +vn -0.6894 0.3883 0.6115 +vn -0.0003 0.8814 -0.4723 +vn 0.0017 0.7764 -0.6302 +vn 0.2005 -0.0000 -0.9797 +vn 0.5808 0.6392 -0.5041 +vn 0.1670 0.1479 -0.9748 +vn -0.1659 0.1466 -0.9752 +vn -0.0003 0.2596 -0.9657 +vn -0.1988 -0.0000 -0.9800 +vn -0.1659 -0.1467 -0.9752 +vn 0.1670 -0.1479 -0.9748 +vn -0.0003 -0.2596 -0.9657 +vn -0.0000 0.5943 0.8042 +vn -0.7071 0.7071 -0.0000 +vn -0.5943 -0.0000 0.8042 +vn -0.4204 -0.4202 0.8042 +vn -0.7071 -0.7071 -0.0000 +vn -0.0000 -0.5943 0.8042 +vn 0.7071 -0.7071 -0.0000 +vn 0.4204 -0.4202 0.8042 +vn 0.5943 0.0002 0.8042 +vn 0.7071 0.7071 -0.0000 +vn 0.4203 0.4203 0.8042 +vn -0.0000 0.7764 0.6302 +vn -0.5492 0.5489 -0.6302 +vn -0.5491 0.5489 0.6302 +vn -0.4202 0.4204 -0.8042 +vn -0.7764 -0.0001 -0.6302 +vn -0.5943 -0.0001 -0.8042 +vn 0.5490 0.5490 0.6302 +vn -0.0001 0.7764 -0.6302 +vn 0.7764 -0.0002 0.6302 +vn 0.5490 -0.5490 -0.6302 +vn 0.7764 -0.0001 -0.6302 +vn -0.0000 -0.7764 0.6302 +vn -0.5489 -0.5491 -0.6302 +vn -0.0001 -0.7764 -0.6302 +vn -0.7764 0.0001 0.6302 +vn 0.5490 0.5490 -0.6302 +vn 0.5489 -0.5491 0.6302 +vn -0.5490 -0.5490 0.6302 +vn 0.5943 0.0003 -0.8042 +vn 0.4202 0.4204 -0.8042 +vn -0.0000 -0.5943 -0.8042 +vn 0.5490 -0.5491 -0.6302 +vn 0.4204 -0.4201 -0.8042 +vn -0.5490 -0.5490 -0.6302 +vn -0.4201 -0.4204 -0.8042 +vn -0.0000 0.5943 -0.8042 +vn -0.5490 0.5490 -0.6302 +vn -0.0000 0.7764 -0.6302 +vn 0.7764 -0.0000 -0.6302 +vn -0.0000 -0.7764 -0.6302 +vn -0.8158 0.5607 0.1418 +vn -0.4202 -0.4204 0.8042 +vn 0.4203 -0.4203 0.8042 +vn 0.6690 0.2530 0.6988 +vn 0.8158 0.5607 0.1418 +vn 0.0002 0.7764 0.6302 +vn -0.5491 0.5489 -0.6302 +vn -0.5490 0.5490 0.6302 +vn 0.5491 0.5489 0.6302 +vn 0.0001 0.7764 -0.6302 +vn 0.7764 -0.0000 0.6302 +vn 0.5489 -0.5491 -0.6302 +vn 0.7764 -0.0002 -0.6302 +vn -0.5491 -0.5489 0.6302 +vn -0.0001 -0.7764 0.6302 +vn -0.7764 -0.0000 0.6302 +vn 0.5490 0.5491 -0.6302 +vn 0.5490 -0.5491 0.6302 +vn -0.0001 0.7524 0.6587 +vn -0.4301 -0.9028 -0.0000 +vn 0.4301 -0.9028 -0.0000 +vn 0.9425 -0.3343 -0.0000 +vn 0.7071 -0.0003 -0.7071 +vn 0.3366 -0.7071 -0.6219 +vn 0.7249 -0.2571 0.6390 +vn 0.3368 -0.7070 0.6219 +vn -0.7249 -0.2571 0.6390 +vn -0.9425 -0.3343 -0.0000 +vn -0.7249 -0.2573 -0.6390 +vn 0.7249 -0.2571 -0.6390 +vn -0.3368 -0.7070 0.6219 +vn -0.7071 -0.0003 0.7071 +vn 0.6292 -0.2290 0.7427 +vn -0.7684 -0.0285 0.6393 +vn 0.7684 -0.0285 0.6393 +vn -0.6427 -0.2409 -0.7272 +vn 0.7071 -0.0000 -0.7071 +vn 0.6427 -0.2409 -0.7272 +vn -0.5400 -0.7668 0.3470 +vn 0.5400 -0.7668 0.3469 +vn -0.7071 -0.0003 -0.7071 +vn 0.5940 -0.4814 -0.6445 +vn -0.5940 -0.4814 -0.6445 +vn -0.5638 -0.6617 0.4943 +vn 0.5638 -0.6617 0.4943 +vn -0.9941 -0.0194 0.1066 +vn -0.9868 0.0119 -0.1614 +vn -0.9638 -0.0055 0.2667 +vn 0.9868 0.0119 -0.1614 +vn 0.7143 -0.6931 0.0971 +vn 0.7697 -0.5928 -0.2369 +vn 0.6750 -0.2508 0.6939 +vn -0.4729 -0.4022 0.7840 +vn -0.6750 -0.2508 0.6939 +vn -0.7143 -0.6931 0.0971 +vn -0.4802 -0.0112 0.8771 +vn 0.4802 -0.0112 0.8771 +vn 0.4257 -0.7565 0.4964 +vn 0.5412 0.0596 -0.8388 +vn -0.5307 -0.0000 -0.8475 +vn 0.5307 -0.0000 -0.8475 +vn -0.4955 -0.0923 -0.8637 +vn 0.4955 -0.0923 -0.8637 +vn 0.9941 -0.0194 0.1066 +vn 0.9766 0.0145 -0.2144 +vn 0.9427 -0.2210 0.2498 +vn 0.6083 0.0823 -0.7894 +vn -0.6083 0.0823 -0.7894 +vn 0.9791 -0.0000 0.2034 +vn -0.9766 0.0145 -0.2144 +vn -0.9658 -0.0335 -0.2570 +vn 0.9638 -0.0055 0.2667 +vn 0.5485 -0.0000 0.8362 +vn -0.5485 -0.0000 0.8362 +vn -0.9427 -0.2210 0.2498 +vn -0.9746 -0.0000 -0.2240 +vn 0.9658 -0.0335 -0.2570 +vn -0.4257 -0.7565 0.4964 +vn -0.7697 -0.5928 -0.2369 +vn 0.4221 -0.4175 -0.8047 +vn 0.4729 -0.4022 0.7840 +vn -0.5412 0.0596 -0.8388 +vn 0.9746 -0.0000 -0.2240 +vn -0.4221 -0.4175 -0.8047 +vn -0.0000 -0.9645 0.2641 +vn -0.0000 -0.9911 0.1332 +vn -0.0000 -0.9688 -0.2479 +vn -0.0000 -0.8771 -0.4803 +vn -0.0000 0.9911 -0.1332 +vn -0.0000 0.9645 -0.2641 +vn -0.0000 0.9688 0.2479 +vn -0.0000 0.8771 0.4803 +vn 0.5695 0.7126 -0.4097 +vn 0.5695 0.7126 0.4097 +vn -0.4666 0.8845 -0.0000 +vn -0.9554 0.2954 -0.0000 +vn -0.3677 0.6970 0.6156 +vn 0.7971 0.4901 -0.3526 +vn 0.3678 0.6970 0.6156 +vn 0.7496 0.3283 0.5748 +vn 0.6894 0.3883 0.6115 +vn -0.6894 0.3883 -0.6115 +vn -0.4202 0.4204 0.8042 +vn -0.6691 0.2530 0.6988 +vn 0.5943 0.0001 0.8042 +vn -0.3366 -0.7071 -0.6219 +vn -0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.6292 -0.2290 0.7427 +vn -0.9791 -0.0000 0.2034 +vn 0.4666 0.8845 0.0002 +vn -0.7496 0.3283 0.5748 +vn 0.2392 0.9710 0.0007 vt 0.086957 0.349693 vt 0.101449 0.331288 vt 0.101449 0.349693 @@ -790,29 +821,16 @@ vt 0.031105 0.080231 vt 0.000549 0.000797 vt 0.018593 0.023550 vt 0.009746 0.027688 -vt 0.000000 0.000000 -vt 0.038647 0.190184 -vt 0.038647 0.000000 -vt 0.009746 0.047670 -vt 0.006081 0.037679 -vt 0.009746 0.070240 -vt 0.018593 0.177973 vt 0.009746 0.173835 -vt 0.000549 0.231177 vt 0.006081 0.163844 vt 0.009746 0.153853 vt 0.006081 0.121197 vt 0.009746 0.090222 vt 0.006081 0.080231 -vt 0.018593 0.023550 vt 0.027440 0.027688 vt 0.038058 0.000797 -vt 0.000000 0.000000 -vt 0.038647 0.190184 -vt 0.038647 0.000000 vt 0.009745 0.047671 vt 0.006080 0.037681 -vt 0.009746 0.070240 vt 0.018596 0.177968 vt 0.009748 0.173829 vt 0.000553 0.231168 @@ -824,11 +842,7 @@ vt 0.006081 0.080230 vt 0.018592 0.023553 vt 0.027439 0.027691 vt 0.038056 0.000801 -vt 0.038647 0.190184 -vt 0.000000 0.000000 -vt 0.038647 0.000000 vt 0.009747 0.070238 -vt 0.006081 0.037679 vt 0.009746 0.047669 vt 0.038063 0.231166 vt 0.000554 0.231165 @@ -840,8 +854,6 @@ vt 0.027442 0.090218 vt 0.031106 0.080228 vt 0.027442 0.111201 vt 0.000548 0.000798 -vt 0.018593 0.023550 -vt 0.009746 0.027688 vt 0.086957 0.073620 vt 0.038647 0.214724 vt 0.038647 0.073620 @@ -865,9 +877,6 @@ vt 0.154589 0.171779 vt 0.222222 0.263804 vt 0.246377 0.190184 vt 0.246377 0.263804 -vt 0.086957 0.073620 -vt 0.038647 0.214724 -vt 0.038647 0.073620 vt 0.961353 0.361963 vt 0.956522 0.337423 vt 0.956522 0.361963 @@ -911,9 +920,7 @@ vt 0.618357 0.423313 vt 0.724638 0.361963 vt 0.714976 0.392638 vt 0.714976 0.361963 -vt 0.613527 0.361963 vt 0.637681 0.423313 -vt 0.618357 0.423313 vt 0.724638 0.484663 vt 0.714976 0.509202 vt 0.714976 0.484663 @@ -933,10 +940,6 @@ vt 0.646319 0.309076 vt 0.646319 0.341523 vt 0.642512 0.361963 vt 0.666667 0.368098 -vt 0.589372 0.368098 -vt 0.642512 0.361963 -vt 0.666667 0.368098 -vt 0.637681 0.423313 vt 0.338164 0.607362 vt 0.371981 0.472393 vt 0.371981 0.607362 @@ -967,14 +970,10 @@ vt 0.497585 0.619632 vt 0.555556 0.441718 vt 0.577454 0.239264 vt 0.577454 0.441718 -vt 0.497585 0.607362 -vt 0.483092 0.619632 -vt 0.483092 0.607362 vt 0.497585 0.644172 vt 0.570048 0.631902 vt 0.570048 0.644172 vt 0.342995 0.631902 -vt 0.352657 0.619632 vt 0.352657 0.631902 vt 0.388329 0.596256 vt 0.378023 0.596256 @@ -1001,34 +1000,16 @@ vt 0.538762 0.471297 vt 0.538762 0.439770 vt 0.531401 0.472393 vt 0.548424 0.594723 -vt 0.352657 0.631902 vt 0.483092 0.631902 vt 0.570048 0.619632 vt 0.497585 0.631902 vt 0.579710 0.631902 vt 0.579710 0.619632 -vt 0.497585 0.644172 -vt 0.570048 0.631902 -vt 0.570048 0.644172 -vt 0.483092 0.644172 -vt 0.352657 0.644172 -vt 0.342995 0.631902 -vt 0.483092 0.631902 -vt 0.497585 0.631902 -vt 0.497585 0.619632 -vt 0.352657 0.607362 -vt 0.579710 0.631902 -vt 0.570048 0.619632 -vt 0.579710 0.619632 vt 0.483092 0.644172 vt 0.352657 0.644172 vt 0.429952 0.852761 vt 0.444444 0.815951 vt 0.429952 0.815951 -vt 0.444444 0.815951 -vt 0.429952 0.852761 -vt 0.429952 0.815951 -vt 0.449275 0.779141 vt 0.449275 0.779141 vt 0.507246 0.950920 vt 0.478261 0.901841 @@ -1040,18 +1021,6 @@ vt 0.536232 0.950920 vt 0.401337 0.855844 vt 0.463175 0.897484 vt 0.387034 0.897484 -vt 0.492754 0.754601 -vt 0.478261 0.852761 -vt 0.478261 0.754601 -vt 0.463768 0.852761 -vt 0.463768 0.754601 -vt 0.521739 0.852761 -vt 0.507246 0.754601 -vt 0.521739 0.754601 -vt 0.531401 0.840491 -vt 0.521739 0.840491 -vt 0.526570 0.828221 -vt 0.492754 0.852761 vt 0.845411 0.791411 vt 0.845411 0.582822 vt 0.922705 0.558282 @@ -1070,11 +1039,10 @@ vt 0.589372 0.963190 vt 0.589372 1.000000 vt 0.565217 0.938650 vt 0.589372 0.938650 -vt 0.589372 0.938650 -vt 0.565217 0.791411 -vt 0.589372 0.791411 +vt 0.566739 0.996622 +vt 0.586132 0.932345 +vt 0.567308 0.929954 vt 0.565217 1.000000 -vt 0.565217 0.938650 vt 0.565217 0.791411 vt 0.589372 0.791411 vt 0.115942 0.233129 @@ -1091,57 +1059,22 @@ vt 0.117297 0.333769 vt 0.128154 0.319982 vt 0.000000 0.196319 vt 0.031105 0.037679 -vt 0.038058 0.000797 vt 0.027440 0.047670 vt 0.027440 0.070240 vt 0.018593 0.051808 vt 0.018593 0.066102 -vt 0.006081 0.080231 -vt 0.006081 0.163844 -vt 0.009746 0.173835 vt 0.027440 0.173835 vt 0.031105 0.163844 -vt 0.006081 0.121197 -vt 0.009746 0.153853 vt 0.009746 0.131187 vt 0.018593 0.149715 vt 0.018593 0.135326 -vt 0.009746 0.090222 vt 0.009746 0.111206 vt 0.018593 0.094360 vt 0.018593 0.107068 vt 0.027440 0.111206 -vt 0.027440 0.027688 -vt 0.000000 0.196319 -vt 0.038058 0.231177 -vt 0.031105 0.080231 -vt 0.031105 0.037679 -vt 0.027440 0.070240 -vt 0.027440 0.047670 -vt 0.018593 0.066102 -vt 0.018593 0.051808 -vt 0.000549 0.000797 -vt 0.031105 0.163844 -vt 0.027440 0.173835 -vt 0.031105 0.121197 -vt 0.027440 0.153853 -vt 0.027440 0.131187 -vt 0.018593 0.149715 -vt 0.018593 0.135326 -vt 0.009746 0.131187 -vt 0.027440 0.090222 -vt 0.027440 0.111206 -vt 0.018593 0.107068 -vt 0.018593 0.094360 -vt 0.009746 0.111206 -vt 0.009746 0.027688 -vt 0.000000 0.196319 vt 0.038062 0.231168 -vt 0.031105 0.080231 vt 0.031104 0.037681 -vt 0.027440 0.070240 vt 0.027440 0.047671 -vt 0.018593 0.066102 vt 0.018592 0.051809 vt 0.003123 0.000157 vt 0.031107 0.163839 @@ -1158,8 +1091,6 @@ vt 0.018594 0.107066 vt 0.018593 0.094359 vt 0.009747 0.111204 vt 0.009745 0.027691 -vt 0.000000 0.196319 -vt 0.031105 0.037679 vt 0.038057 0.000798 vt 0.027441 0.047669 vt 0.027441 0.070238 @@ -1180,7 +1111,6 @@ vt 0.009748 0.111201 vt 0.018595 0.094356 vt 0.018595 0.107063 vt 0.027440 0.027689 -vt 0.086957 0.214724 vt 0.115942 0.269939 vt 0.126288 0.260155 vt 0.128579 0.268113 @@ -1197,7 +1127,6 @@ vt 0.178744 0.190184 vt 0.123994 0.141104 vt 0.146538 0.141104 vt 0.222222 0.190184 -vt 0.086957 0.214724 vt 0.956522 0.165644 vt 0.888889 0.361963 vt 0.630514 0.288344 @@ -1221,16 +1150,12 @@ vt 0.280193 0.196319 vt 0.589372 0.607362 vt 0.338164 0.386503 vt 0.350082 0.239264 -vt 0.338164 0.607362 vt 0.328502 0.674847 vt 0.289855 0.674847 vt 0.280193 0.662577 vt 0.338164 0.633266 vt 0.338164 0.662577 vt 0.342995 0.619632 -vt 0.342995 0.619632 -vt 0.570048 0.607362 -vt 0.454106 0.852761 vt 0.454106 0.852761 vt 0.478261 0.950920 vt 0.536232 0.852761 @@ -1240,22 +1165,20 @@ vt 0.401337 1.000244 vt 0.387034 0.962984 vt 0.448872 0.855844 vt 0.463175 0.962984 -vt 0.507246 0.852761 -vt 0.526570 0.852761 vt 0.922705 1.000000 +vt 0.860028 0.944906 +vt 0.860220 0.793698 vt 0.845411 1.000000 vt 0.743961 1.000000 vt 0.589372 0.423313 vt 0.647343 1.000000 -vt 0.565217 1.000000 -vt 0.589372 1.000000 +vt 0.589367 0.961817 vt 0.086957 0.196319 vt 0.072464 0.196319 vt 0.057971 0.196319 vt 0.043478 0.196319 vt 0.028986 0.196319 vt 0.014493 0.196319 -vt 0.000000 0.196319 vt 0.101449 0.196319 vt 0.101449 0.368098 vt 0.115942 0.368098 @@ -1323,7 +1246,6 @@ vt 0.666667 0.435583 vt 0.666667 0.460123 vt 0.666667 0.533742 vt 0.666667 0.509202 -vt 0.666667 0.361963 vt 0.666667 0.417178 vt 0.666667 0.484663 vt 0.666667 0.392638 @@ -1332,7 +1254,6 @@ vt 1.000000 0.484663 vt 1.000000 0.509202 vt 1.000000 0.533742 vt 1.000000 0.558282 -vt 1.000000 0.361963 vt 1.000000 0.392638 vt 1.000000 0.417178 vt 1.000000 0.435583 @@ -1411,20 +1332,7 @@ vt 0.425121 0.828221 vt 0.386473 0.828221 vt 0.425121 0.852761 vt 0.386473 0.852761 -vt 0.386473 0.803681 vt 0.425121 0.754601 -vt 0.425121 0.803681 -vt 0.386473 0.828221 -vt 0.425121 0.828221 -vt 0.386473 0.852761 -vt 0.425121 0.852761 -vt 0.386473 0.680982 -vt 0.589372 0.644172 -vt 0.589372 0.680982 -vt 0.386473 0.754601 -vt 0.589372 0.717791 -vt 0.589372 0.754601 -vt 0.386473 0.717791 vt 0.821256 0.791411 vt 0.772947 1.000000 vt 0.772947 0.582822 @@ -1434,7 +1342,6 @@ vt 0.000000 0.368098 vt 0.193237 0.276074 vt 0.193237 0.319018 vt 0.666667 0.165644 -vt 0.666667 0.558282 vt 0.777778 0.435583 vt 0.439614 0.239264 vt 0.478261 0.852761 @@ -1443,1037 +1350,1338 @@ vt 0.507246 1.000000 vt 0.386473 0.950920 vt 0.309179 1.000000 vt 0.000000 0.730061 -vt 0.425121 0.754601 -vt 0.386473 0.754601 -vt 0.386473 0.644172 -vn -1.0000 -0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 -0.0030 -0.0069 -vn -1.0000 -0.0020 0.0000 -vn 1.0000 0.0030 0.0069 -vn 1.0000 0.0020 -0.0000 -vn 1.0000 0.0025 0.0034 -vn 0.9999 0.0035 0.0103 -vn -1.0000 -0.0025 -0.0034 -vn -0.9999 -0.0035 -0.0103 -vn 0.0000 1.0000 -0.0000 -vn -0.0000 -0.0000 1.0000 -vn -0.0000 -1.0000 0.0000 -vn 0.0000 -0.0000 -1.0000 -vn -0.1336 0.3226 -0.9371 -vn 0.9526 0.3043 0.0000 -vn 0.1336 0.3226 -0.9371 -vn 0.0188 0.0455 0.9988 -vn -0.0188 0.0455 0.9988 -vn -0.9526 0.3043 0.0000 -vn 0.0000 0.9011 0.4336 -vn 0.0000 1.0000 -0.0098 -vn 0.0000 -0.9999 -0.0114 -vn 0.0012 0.3898 -0.9209 -vn 0.0000 0.3827 0.9239 -vn -0.0000 -0.3782 0.9257 -vn 0.0000 -0.3464 -0.9381 -vn 0.0000 0.3280 -0.9447 -vn -0.8254 0.5646 -0.0000 -vn 0.5646 0.8254 0.0000 -vn -0.5646 -0.8254 -0.0000 -vn -1.0000 -0.0020 -0.0069 -vn 1.0000 0.0020 0.0069 -vn 1.0000 0.0035 0.0035 -vn -1.0000 -0.0035 -0.0035 -vn -0.0001 1.0000 0.0000 -vn 0.0000 0.3827 -0.9239 -vn -0.0012 0.3898 0.9209 -vn 0.0021 -0.3671 0.9302 -vn -0.0055 -0.3754 -0.9269 -vn 0.6302 0.0000 -0.7764 -vn -0.6302 -0.5490 -0.5490 -vn -0.6302 0.0000 -0.7764 -vn 0.6302 -0.5490 -0.5490 -vn -0.6302 -0.7764 0.0000 -vn 0.6302 -0.7764 0.0000 -vn -0.6302 -0.5490 0.5490 -vn 0.6302 -0.5490 0.5490 -vn -0.6302 0.0000 0.7764 -vn 0.6302 0.0000 0.7764 -vn -0.6302 0.5490 0.5490 -vn 0.6302 0.5490 0.5490 -vn -0.6302 0.7764 0.0000 -vn 0.6302 0.7764 0.0000 -vn -0.6302 0.5490 -0.5490 -vn 0.6302 0.5490 -0.5490 -vn 0.8042 -0.4203 -0.4203 -vn 0.8042 0.0000 -0.5943 -vn 0.8042 0.4203 -0.4203 -vn 0.8042 0.5943 0.0000 -vn 0.8042 0.4203 0.4203 -vn 0.8042 0.0000 0.5943 -vn 0.8042 -0.4203 0.4203 -vn 0.8042 -0.5943 0.0000 -vn -0.8042 0.0000 -0.5943 -vn -0.8042 -0.4203 -0.4203 -vn -0.8042 -0.5943 0.0000 -vn -0.8042 -0.4203 0.4203 -vn -0.8042 0.0000 0.5943 -vn -0.8042 0.4203 0.4203 -vn -0.8042 0.5943 0.0000 -vn -0.8042 0.4203 -0.4203 -vn -0.5512 0.5495 0.6279 -vn -0.8335 0.0000 0.5525 -vn -0.7791 0.0000 0.6269 -vn 0.7736 0.0000 0.6336 -vn 0.5787 0.6354 0.5112 -vn 0.5468 0.5484 0.6326 -vn 0.5468 -0.5484 0.6326 -vn 0.0003 -0.8814 0.4723 -vn 0.5787 -0.6354 0.5112 -vn -0.0017 -0.7764 0.6302 -vn -0.5808 -0.6391 0.5041 -vn 0.8271 0.0000 0.5621 -vn -0.2042 0.7309 -0.6512 -vn 0.2042 0.7309 0.6512 -vn 0.2042 0.7309 -0.6512 -vn -0.5512 -0.5495 0.6279 -vn -0.6894 0.3883 0.6115 -vn -0.2042 0.7309 0.6512 -vn 0.6894 0.3883 -0.6115 -vn 0.0003 0.8814 0.4723 -vn -0.0017 0.7764 0.6302 -vn -0.2005 0.0000 0.9797 -vn -0.5808 0.6391 0.5041 -vn -0.1670 0.1479 0.9748 -vn 0.1659 0.1466 0.9752 -vn 0.0003 0.2596 0.9657 -vn 0.1988 0.0000 0.9800 -vn 0.1659 -0.1467 0.9752 -vn -0.1670 -0.1479 0.9748 -vn 0.0003 -0.2596 0.9657 -vn 0.0000 0.5943 -0.8042 -vn 0.7071 0.7071 0.0000 -vn 0.5943 0.0000 -0.8042 -vn 0.4203 -0.4203 -0.8042 -vn 0.7071 -0.7071 0.0000 -vn 0.0000 -0.5943 -0.8042 -vn -0.7071 -0.7071 0.0000 -vn -0.4203 -0.4203 -0.8042 -vn -0.5943 0.0000 -0.8042 -vn -0.7071 0.7071 0.0000 -vn -0.4203 0.4203 -0.8042 -vn 0.0000 0.7764 -0.6302 -vn 0.5490 0.5490 0.6302 -vn 0.5490 0.5490 -0.6302 -vn 0.4203 0.4203 0.8042 -vn 0.7764 0.0000 0.6302 -vn 0.5943 0.0000 0.8042 -vn -0.5490 0.5490 -0.6302 -vn 0.0000 0.7764 0.6302 -vn -0.7764 0.0000 -0.6302 -vn -0.5490 -0.5490 0.6302 -vn -0.7764 0.0000 0.6302 -vn 0.0000 -0.7764 -0.6302 -vn 0.5490 -0.5490 0.6302 -vn 0.0000 -0.7764 0.6302 -vn 0.7764 0.0000 -0.6302 -vn -0.5490 0.5490 0.6302 -vn -0.5490 -0.5490 -0.6302 -vn 0.5490 -0.5490 -0.6302 -vn -0.5943 0.0000 0.8042 -vn -0.4203 0.4203 0.8042 -vn 0.0000 -0.5943 0.8042 -vn -0.4203 -0.4203 0.8042 -vn 0.4203 -0.4203 0.8042 -vn 0.0000 0.5943 0.8042 -vn 0.8158 0.5607 -0.1418 -vn -0.6690 0.2530 -0.6988 -vn -0.8158 0.5607 -0.1418 -vn 0.0000 0.7523 -0.6587 -vn 0.4301 -0.9028 0.0000 -vn -0.4301 -0.9028 0.0000 -vn -0.9425 -0.3342 0.0000 -vn -0.7071 0.0000 0.7071 -vn -0.3368 -0.7070 0.6219 -vn -0.7249 -0.2571 -0.6390 -vn -0.3368 -0.7070 -0.6219 -vn 0.7249 -0.2571 -0.6390 -vn 0.9425 -0.3342 0.0000 -vn 0.7249 -0.2571 0.6390 -vn -0.7249 -0.2571 0.6390 -vn 0.3368 -0.7070 -0.6219 -vn 0.7071 0.0000 -0.7071 -vn -0.6292 -0.2289 -0.7427 -vn 0.7684 -0.0285 -0.6393 -vn -0.7684 -0.0285 -0.6393 -vn 0.6427 -0.2409 0.7272 -vn -0.6427 -0.2409 0.7272 -vn 0.5400 -0.7668 -0.3469 -vn -0.5400 -0.7668 -0.3469 -vn 0.7071 0.0000 0.7071 -vn -0.5940 -0.4814 0.6445 -vn 0.5940 -0.4814 0.6445 -vn 0.5637 -0.6617 -0.4943 -vn -0.5637 -0.6617 -0.4943 -vn 0.9941 -0.0194 -0.1066 -vn 0.9868 0.0119 0.1614 -vn 0.9637 -0.0054 -0.2667 -vn -0.9868 0.0119 0.1614 -vn -0.7143 -0.6931 -0.0971 -vn -0.7697 -0.5928 0.2369 -vn -0.6750 -0.2508 -0.6939 -vn 0.4729 -0.4021 -0.7840 -vn 0.6750 -0.2508 -0.6939 -vn 0.7143 -0.6931 -0.0971 -vn 0.4801 -0.0112 -0.8771 -vn -0.4801 -0.0112 -0.8771 -vn -0.4257 -0.7565 -0.4964 -vn -0.5412 0.0596 0.8388 -vn 0.5307 0.0000 0.8475 -vn -0.5307 0.0000 0.8475 -vn 0.4955 -0.0923 0.8637 -vn -0.4955 -0.0923 0.8637 -vn -0.9941 -0.0194 -0.1066 -vn -0.9766 0.0145 0.2144 -vn -0.9427 -0.2210 -0.2498 -vn -0.6083 0.0823 0.7894 -vn 0.6083 0.0823 0.7894 -vn -0.9791 0.0000 -0.2034 -vn 0.9766 0.0145 0.2144 -vn 0.9658 -0.0335 0.2569 -vn -0.9637 -0.0054 -0.2667 -vn -0.5485 0.0000 -0.8361 -vn 0.5485 0.0000 -0.8361 -vn 0.9427 -0.2210 -0.2498 -vn 0.9746 0.0000 0.2240 -vn -0.9658 -0.0335 0.2569 -vn 0.4257 -0.7565 -0.4964 -vn 0.7697 -0.5928 0.2369 -vn -0.4221 -0.4175 0.8047 -vn -0.4729 -0.4021 -0.7840 -vn 0.5412 0.0596 0.8388 -vn -0.9746 0.0000 0.2240 -vn 0.4221 -0.4175 0.8047 -vn 0.0000 -0.9645 -0.2640 -vn 0.0000 -0.9911 -0.1332 -vn 0.0000 -0.9688 0.2479 -vn 0.0000 -0.8771 0.4803 -vn 0.0000 0.9911 0.1332 -vn 0.0000 0.9645 0.2640 -vn 0.0000 0.9688 -0.2479 -vn 0.0000 0.8771 -0.4803 -vn -0.4935 0.8697 0.0000 -vn -0.1231 0.9924 0.0000 -vn -0.9924 -0.1231 0.0000 -vn -0.9639 0.2661 0.0000 -vn -0.5695 0.7126 0.4097 -vn -0.5695 0.7126 -0.4097 -vn 0.4666 0.8845 0.0000 -vn 0.9554 0.2954 0.0000 -vn 0.3677 0.6970 -0.6156 -vn -0.7971 0.4901 0.3526 -vn -0.3677 0.6970 -0.6156 -vn -0.7496 0.3283 -0.5748 -vn -0.6894 0.3883 -0.6115 -vn 0.6894 0.3883 0.6115 -vn 0.4203 0.4203 -0.8042 -vn 0.6690 0.2530 -0.6988 -vn 0.3368 -0.7070 0.6219 -vn -0.7071 0.0000 -0.7071 -vn 0.6292 -0.2290 -0.7427 -vn 0.9791 0.0000 -0.2034 -vn -0.4666 0.8845 0.0000 -vn 0.7496 0.3283 -0.5748 -usemtl None -s off -f 39/61/41 56/62/41 41/63/41 -f 40/64/42 57/65/42 58/66/42 -f 41/63/41 59/67/41 43/68/41 -f 44/69/42 57/65/42 42/70/42 -f 43/71/41 61/72/41 45/73/41 -f 46/74/42 60/75/42 44/76/42 -f 45/73/41 63/77/41 47/78/41 -f 46/74/42 64/79/42 62/80/42 -f 47/78/41 65/81/41 49/82/41 -f 48/83/42 66/84/42 64/79/42 -f 49/82/41 67/85/41 51/86/41 -f 50/87/42 68/88/42 66/84/42 -f 53/89/41 67/85/41 69/90/41 -f 54/91/42 68/88/42 52/92/42 -f 53/89/41 55/93/41 39/61/41 -f 54/91/42 58/66/42 70/94/42 -f 74/95/42 77/96/42 78/97/42 -f 82/98/41 85/99/41 86/100/41 -f 89/101/43 88/102/43 87/103/43 -f 98/104/44 104/105/44 101/106/44 -f 91/107/44 92/108/44 124/109/44 -f 114/110/44 111/111/44 117/112/44 -f 95/113/44 97/114/44 111/111/44 -f 90/115/44 108/116/44 106/117/44 -f 126/118/45 127/119/45 125/120/45 -f 139/121/46 142/122/46 136/123/46 -f 162/124/46 160/125/46 130/126/46 -f 157/127/46 158/128/46 151/129/46 -f 151/129/46 131/130/46 134/131/46 -f 146/132/46 145/133/46 127/134/46 -f 164/135/47 165/136/47 163/137/47 -f 177/138/48 180/139/48 174/140/48 -f 200/141/48 198/142/48 168/143/48 -f 195/144/48 191/145/48 189/146/48 -f 189/146/48 169/147/48 172/148/48 -f 184/149/48 183/150/48 165/151/48 -f 203/152/49 202/153/49 201/154/49 -f 212/155/50 218/156/50 215/157/50 -f 205/158/50 206/159/50 238/160/50 -f 228/161/50 225/162/50 231/163/50 -f 209/164/50 211/165/50 224/166/50 -f 204/167/50 222/168/50 220/169/50 -f 242/170/51 239/171/51 240/172/51 -f 281/173/52 264/174/52 259/175/52 -f 271/176/52 273/177/52 251/178/52 -f 248/179/52 245/180/52 249/181/52 -f 254/182/42 263/183/42 253/184/42 -f 252/185/53 253/186/53 251/178/53 -f 261/187/54 266/188/54 254/189/54 -f 260/190/41 252/191/41 251/192/41 -f 256/193/53 257/194/53 255/195/53 -f 292/196/54 302/197/54 303/198/54 -f 298/199/54 305/200/54 306/201/54 -f 286/202/54 301/203/54 288/204/54 -f 292/205/54 304/206/54 294/207/54 -f 284/208/54 306/201/54 300/209/54 -f 284/208/54 299/210/54 286/202/54 -f 290/211/54 301/203/54 302/197/54 -f 294/207/54 305/200/54 296/212/54 -f 308/213/52 315/214/52 316/215/52 -f 307/216/52 317/217/52 315/214/52 -f 310/218/52 317/217/52 309/219/52 -f 311/220/52 318/221/52 310/218/52 -f 311/222/52 320/223/52 319/224/52 -f 312/225/52 321/226/52 320/223/52 -f 314/227/52 321/226/52 313/228/52 -f 308/213/52 322/229/52 314/227/52 -f 328/230/52 326/231/52 325/232/52 -f 363/233/55 370/234/55 372/235/55 -f 340/236/54 350/237/54 351/238/54 -f 334/239/56 372/240/56 371/241/56 -f 346/242/54 353/243/54 354/244/54 -f 334/245/54 349/246/54 336/247/54 -f 340/248/54 352/249/54 342/250/54 -f 332/251/54 354/244/54 348/252/54 -f 332/251/54 347/253/54 334/245/54 -f 338/254/54 349/246/54 350/237/54 -f 342/250/54 353/243/54 344/255/54 -f 360/256/52 358/257/52 357/258/52 -f 364/259/57 363/260/57 372/240/57 -f 332/261/58 334/239/58 371/241/58 -f 346/262/59 332/263/59 371/264/59 -f 346/262/60 372/235/60 370/234/60 -f 377/265/42 421/266/42 414/267/42 -f 421/266/42 379/268/42 419/269/42 -f 375/270/54 414/271/54 422/272/54 -f 374/273/41 422/274/41 428/275/41 -f 375/270/51 376/276/51 377/277/51 -f 379/268/42 416/278/42 419/269/42 -f 376/276/61 378/279/61 379/280/61 -f 378/279/51 381/281/51 379/280/51 -f 416/282/52 424/283/52 417/284/52 -f 403/285/51 437/286/51 405/287/51 -f 401/288/62 433/289/62 403/285/62 -f 399/290/51 431/291/51 401/288/51 -f 426/292/41 380/293/41 378/294/41 -f 407/295/63 441/296/63 411/297/63 -f 428/275/41 378/294/41 374/273/41 -f 406/298/51 443/299/51 409/300/51 -f 412/301/54 445/302/54 444/303/54 -f 399/304/42 414/267/42 398/305/42 -f 404/306/42 417/307/42 405/308/42 -f 405/308/42 418/309/42 403/310/42 -f 404/306/42 419/269/42 416/278/42 -f 401/311/42 418/309/42 420/312/42 -f 402/313/42 421/266/42 419/269/42 -f 399/304/42 420/312/42 415/314/42 -f 398/305/42 421/266/42 400/315/42 -f 409/316/41 422/274/41 423/317/41 -f 412/318/41 425/319/41 413/320/41 -f 413/320/41 426/292/41 411/321/41 -f 412/318/41 427/322/41 424/323/41 -f 411/321/41 428/275/41 407/324/41 -f 406/325/41 427/322/41 410/326/41 -f 409/316/41 429/327/41 406/325/41 -f 408/328/41 428/275/41 422/274/41 -f 433/289/42 436/329/42 437/286/42 -f 431/291/42 432/330/42 433/289/42 -f 435/331/42 430/332/42 431/291/42 -f 398/333/52 435/331/52 399/334/52 -f 400/335/53 434/336/53 398/337/53 -f 402/338/63 430/332/63 400/335/63 -f 404/339/53 432/330/53 402/338/53 -f 404/340/54 437/286/54 436/329/54 -f 440/341/41 445/302/41 441/296/41 -f 438/342/41 441/296/41 439/343/41 -f 439/343/41 443/299/41 438/342/41 -f 411/297/53 445/302/53 413/344/53 -f 409/345/52 442/346/52 408/347/52 -f 407/295/53 442/346/53 439/343/53 -f 410/348/62 438/342/62 406/298/62 -f 412/349/51 440/341/51 410/348/51 -f 447/350/41 448/351/41 446/352/41 -f 452/353/42 451/354/42 450/355/42 -f 452/353/42 450/355/42 455/356/42 -f 446/352/41 448/351/41 454/357/41 -f 456/358/41 459/359/41 458/360/41 -f 459/361/54 462/362/54 458/360/54 -f 463/363/42 460/364/42 462/362/42 -f 485/365/53 487/366/53 484/367/53 -f 520/368/64 523/369/64 522/370/64 -f 522/370/65 525/371/65 524/372/65 -f 525/373/66 526/374/66 524/375/66 -f 521/376/41 525/377/41 523/378/41 -f 526/374/67 521/379/67 520/368/67 -f 548/380/41 539/381/41 538/382/41 -f 539/383/68 542/384/68 538/385/68 -f 543/386/42 540/387/42 542/388/42 -f 542/384/53 536/389/53 538/385/53 -f 550/390/69 544/391/69 551/392/69 -f 539/383/54 546/393/54 543/394/54 -f 548/395/52 555/396/52 549/397/52 -f 550/398/70 553/399/70 548/400/70 -f 550/398/54 554/401/54 552/402/54 -f 549/397/71 554/403/71 551/404/71 -f 39/61/41 55/93/41 56/62/41 -f 40/64/42 42/70/42 57/65/42 -f 41/63/41 56/62/41 59/67/41 -f 44/69/42 60/405/42 57/65/42 -f 43/71/41 59/406/41 61/72/41 -f 46/74/42 62/80/42 60/75/42 -f 45/73/41 61/72/41 63/77/41 -f 46/74/42 48/83/42 64/79/42 -f 47/78/41 63/77/41 65/81/41 -f 48/83/42 50/87/42 66/84/42 -f 49/82/41 65/81/41 67/85/41 -f 50/87/42 52/92/42 68/88/42 -f 53/89/41 51/86/41 67/85/41 -f 54/91/42 70/94/42 68/88/42 -f 53/89/41 69/90/41 55/93/41 -f 54/91/42 40/64/42 58/66/42 -f 78/97/42 71/407/42 74/95/42 -f 72/408/42 73/409/42 74/95/42 -f 74/95/42 75/410/42 76/411/42 -f 76/411/42 77/96/42 74/95/42 -f 71/407/42 72/408/42 74/95/42 -f 86/100/41 79/412/41 80/413/41 -f 80/413/41 81/414/41 82/98/41 -f 82/98/41 83/415/41 84/416/41 -f 84/416/41 85/99/41 82/98/41 -f 86/100/41 80/413/41 82/98/41 -f 89/101/72 90/417/72 88/102/72 -f 105/418/44 89/419/44 97/114/44 -f 89/419/44 91/107/44 97/114/44 -f 103/420/44 105/418/44 97/114/44 -f 103/420/44 97/114/44 99/421/44 -f 102/422/44 103/420/44 100/423/44 -f 103/420/44 99/421/44 100/423/44 -f 101/106/44 102/422/44 100/423/44 -f 98/104/44 96/424/44 104/105/44 -f 101/106/44 100/423/44 98/104/44 -f 96/424/44 90/115/44 104/105/44 -f 92/108/44 90/115/44 119/425/44 -f 92/108/44 119/425/44 122/426/44 -f 123/427/44 121/428/44 91/107/44 -f 92/108/44 122/426/44 124/109/44 -f 124/109/44 123/427/44 91/107/44 -f 119/425/44 90/115/44 113/429/44 -f 119/425/44 113/429/44 120/430/44 -f 120/430/44 113/429/44 115/431/44 -f 120/430/44 115/431/44 116/432/44 -f 116/432/44 115/431/44 118/433/44 -f 116/432/44 118/433/44 114/110/44 -f 117/112/44 116/432/44 114/110/44 -f 111/111/44 91/107/44 121/428/44 -f 121/428/44 117/112/44 111/111/44 -f 113/429/44 90/115/44 96/424/44 -f 113/429/44 96/424/44 93/434/44 -f 109/435/44 113/429/44 93/434/44 -f 109/435/44 93/434/44 94/436/44 -f 112/437/44 109/435/44 94/436/44 -f 112/437/44 94/436/44 95/113/44 -f 110/438/44 112/437/44 95/113/44 -f 97/114/44 91/107/44 111/111/44 -f 111/111/44 110/438/44 95/113/44 -f 89/419/44 105/418/44 107/439/44 -f 89/419/44 107/439/44 108/116/44 -f 106/117/44 104/105/44 90/115/44 -f 89/419/44 108/116/44 90/115/44 -f 126/118/73 128/440/73 127/119/73 -f 129/441/46 127/134/46 135/442/46 -f 135/442/46 127/134/46 143/443/46 -f 137/444/46 135/442/46 141/445/46 -f 135/442/46 143/443/46 141/445/46 -f 138/446/46 137/444/46 141/445/46 -f 138/446/46 141/445/46 140/447/46 -f 128/448/46 134/131/46 142/122/46 -f 136/123/46 138/446/46 140/447/46 -f 136/123/46 140/447/46 139/121/46 -f 142/122/46 134/131/46 136/123/46 -f 129/441/46 159/449/46 161/450/46 -f 129/441/46 161/450/46 162/124/46 -f 157/127/46 128/448/46 130/126/46 -f 129/441/46 162/124/46 130/126/46 -f 160/125/46 157/127/46 130/126/46 -f 159/449/46 129/441/46 149/451/46 -f 159/449/46 149/451/46 155/452/46 -f 155/452/46 149/451/46 152/453/46 -f 155/452/46 152/453/46 154/454/46 -f 154/454/46 152/453/46 156/455/46 -f 154/454/46 156/455/46 153/456/46 -f 158/128/46 154/454/46 153/456/46 -f 151/129/46 128/448/46 157/127/46 -f 158/128/46 153/456/46 151/129/46 -f 149/451/46 129/441/46 135/442/46 -f 149/451/46 135/442/46 133/457/46 -f 148/458/46 149/451/46 133/457/46 -f 148/458/46 133/457/46 150/459/46 -f 150/459/46 133/457/46 132/460/46 -f 150/459/46 132/460/46 147/461/46 -f 147/461/46 132/460/46 131/130/46 -f 134/131/46 128/448/46 151/129/46 -f 147/461/46 131/130/46 151/129/46 -f 128/448/46 142/122/46 144/462/46 -f 128/448/46 144/462/46 146/132/46 -f 145/133/46 143/443/46 127/134/46 -f 128/448/46 146/132/46 127/134/46 -f 164/135/74 166/463/74 165/136/74 -f 167/464/48 165/151/48 173/465/48 -f 173/465/48 165/151/48 181/466/48 -f 175/467/48 173/465/48 181/466/48 -f 175/467/48 181/466/48 179/468/48 -f 176/469/48 175/467/48 179/468/48 -f 176/469/48 179/468/48 178/470/48 -f 166/471/48 172/148/48 180/139/48 -f 174/140/48 176/469/48 178/470/48 -f 174/140/48 178/470/48 177/138/48 -f 180/139/48 172/148/48 174/140/48 -f 167/464/48 197/472/48 199/473/48 -f 167/464/48 199/473/48 200/141/48 -f 195/144/48 166/471/48 168/143/48 -f 167/464/48 200/141/48 168/143/48 -f 198/142/48 195/144/48 168/143/48 -f 197/472/48 167/464/48 187/474/48 -f 197/472/48 187/474/48 193/475/48 -f 193/475/48 187/474/48 190/476/48 -f 193/475/48 190/476/48 192/477/48 -f 192/477/48 190/476/48 194/478/48 -f 192/477/48 194/478/48 196/479/48 -f 196/479/48 194/478/48 191/145/48 -f 189/146/48 166/471/48 195/144/48 -f 196/479/48 191/145/48 195/144/48 -f 187/474/48 167/464/48 173/465/48 -f 187/474/48 173/465/48 186/480/48 -f 186/480/48 173/465/48 171/481/48 -f 186/480/48 171/481/48 188/482/48 -f 188/482/48 171/481/48 170/483/48 -f 188/482/48 170/483/48 185/484/48 -f 185/484/48 170/483/48 169/147/48 -f 172/148/48 166/471/48 189/146/48 -f 185/484/48 169/147/48 189/146/48 -f 166/471/48 180/139/48 182/485/48 -f 166/471/48 182/485/48 184/149/48 -f 183/150/48 181/466/48 165/151/48 -f 166/471/48 184/149/48 165/151/48 -f 203/152/75 204/486/75 202/153/75 -f 219/487/50 203/488/50 211/165/50 -f 203/488/50 205/158/50 211/165/50 -f 217/489/50 219/487/50 213/490/50 -f 219/487/50 211/165/50 213/490/50 -f 216/491/50 217/489/50 214/492/50 -f 217/489/50 213/490/50 214/492/50 -f 215/157/50 216/491/50 212/155/50 -f 212/155/50 210/493/50 218/156/50 -f 216/491/50 214/492/50 212/155/50 -f 210/493/50 204/167/50 218/156/50 -f 206/159/50 204/167/50 233/494/50 -f 206/159/50 233/494/50 236/495/50 -f 237/496/50 235/497/50 205/158/50 -f 206/159/50 236/495/50 238/160/50 -f 238/160/50 237/496/50 205/158/50 -f 233/494/50 204/167/50 227/498/50 -f 233/494/50 227/498/50 229/499/50 -f 234/500/50 233/494/50 229/499/50 -f 234/500/50 229/499/50 232/501/50 -f 230/502/50 234/500/50 232/501/50 -f 230/502/50 232/501/50 228/161/50 -f 231/163/50 230/502/50 228/161/50 -f 225/162/50 205/158/50 235/497/50 -f 235/497/50 231/163/50 225/162/50 -f 227/498/50 204/167/50 210/493/50 -f 227/498/50 210/493/50 207/503/50 -f 223/504/50 227/498/50 207/503/50 -f 223/504/50 207/503/50 208/505/50 -f 226/506/50 223/504/50 208/505/50 -f 226/506/50 208/505/50 209/164/50 -f 224/166/50 226/506/50 209/164/50 -f 211/165/50 205/158/50 225/162/50 -f 225/162/50 224/166/50 211/165/50 -f 203/488/50 219/487/50 221/507/50 -f 203/488/50 221/507/50 222/168/50 -f 220/169/50 218/156/50 204/167/50 -f 203/488/50 222/168/50 204/167/50 -f 242/170/76 241/508/76 239/171/76 -f 260/509/52 251/178/52 277/510/52 -f 260/509/52 277/510/52 275/511/52 -f 253/186/52 263/512/52 269/513/52 -f 279/514/52 269/513/52 263/512/52 -f 260/509/52 275/511/52 259/175/52 -f 279/514/52 263/512/52 264/174/52 -f 259/175/52 275/511/52 281/173/52 -f 281/173/52 279/514/52 264/174/52 -f 253/186/52 269/513/52 267/515/52 -f 253/186/52 267/515/52 271/176/52 -f 273/177/52 277/510/52 251/178/52 -f 251/178/52 253/186/52 271/176/52 -f 244/516/52 243/517/52 250/518/52 -f 250/518/52 249/181/52 244/516/52 -f 248/179/52 247/519/52 246/520/52 -f 246/520/52 245/180/52 248/179/52 -f 244/516/52 249/181/52 245/180/52 -f 254/182/42 266/521/42 263/183/42 -f 252/185/53 254/189/53 253/186/53 -f 254/189/54 252/185/54 261/187/54 -f 261/187/54 262/522/54 265/523/54 -f 265/523/54 266/188/54 261/187/54 -f 260/190/41 261/524/41 252/191/41 -f 256/193/53 258/525/53 257/194/53 -f 292/196/54 290/211/54 302/197/54 -f 298/199/54 296/212/54 305/200/54 -f 286/202/54 299/210/54 301/203/54 -f 292/205/54 303/526/54 304/206/54 -f 284/208/54 298/199/54 306/201/54 -f 284/208/54 300/209/54 299/210/54 -f 290/211/54 288/204/54 301/203/54 -f 294/207/54 304/206/54 305/200/54 -f 308/213/52 307/216/52 315/214/52 -f 307/216/52 309/219/52 317/217/52 -f 310/218/52 318/221/52 317/217/52 -f 311/220/52 319/527/52 318/221/52 -f 311/222/52 312/225/52 320/223/52 -f 312/225/52 313/228/52 321/226/52 -f 314/227/52 322/229/52 321/226/52 -f 308/213/52 316/215/52 322/229/52 -f 325/232/52 323/528/52 330/529/52 -f 324/530/52 330/529/52 323/528/52 -f 329/531/52 328/230/52 325/232/52 -f 327/532/52 326/231/52 328/230/52 -f 325/232/52 330/529/52 329/531/52 -f 340/236/54 338/254/54 350/237/54 -f 334/239/56 364/259/56 372/240/56 -f 346/242/54 344/255/54 353/243/54 -f 334/245/54 347/253/54 349/246/54 -f 340/248/54 351/533/54 352/249/54 -f 332/251/54 346/242/54 354/244/54 -f 332/251/54 348/252/54 347/253/54 -f 338/254/54 336/247/54 349/246/54 -f 342/250/54 352/249/54 353/243/54 -f 357/258/52 355/534/52 362/535/52 -f 356/536/52 362/535/52 355/534/52 -f 361/537/52 360/256/52 357/258/52 -f 359/538/52 358/257/52 360/256/52 -f 357/258/52 362/535/52 361/537/52 -f 346/262/60 371/264/60 372/235/60 -f 377/265/42 376/539/42 421/266/42 -f 421/266/42 376/539/42 379/268/42 -f 389/540/54 384/541/54 385/542/54 -f 423/543/54 422/272/54 414/271/54 -f 389/540/54 385/542/54 388/544/54 -f 415/545/54 388/544/54 423/543/54 -f 375/270/54 377/277/54 414/271/54 -f 414/271/54 415/545/54 423/543/54 -f 385/542/54 423/543/54 388/544/54 -f 374/273/41 375/546/41 422/274/41 -f 375/270/51 374/547/51 376/276/51 -f 379/268/42 381/548/42 416/278/42 -f 376/276/61 374/547/61 378/279/61 -f 378/279/51 380/549/51 381/281/51 -f 395/550/52 396/551/52 397/552/52 -f 397/552/52 417/284/52 424/283/52 -f 416/282/52 381/281/52 380/549/52 -f 380/549/52 425/553/52 416/282/52 -f 424/283/52 394/554/52 397/552/52 -f 395/550/52 397/552/52 394/554/52 -f 416/282/52 425/553/52 424/283/52 -f 403/285/51 433/289/51 437/286/51 -f 401/288/62 431/291/62 433/289/62 -f 399/290/51 435/331/51 431/291/51 -f 426/292/41 425/319/41 380/293/41 -f 407/295/63 439/343/63 441/296/63 -f 428/275/41 426/292/41 378/294/41 -f 406/298/51 438/342/51 443/299/51 -f 412/301/54 413/555/54 445/302/54 -f 399/304/42 415/314/42 414/267/42 -f 404/306/42 416/278/42 417/307/42 -f 405/308/42 417/307/42 418/309/42 -f 404/306/42 402/313/42 419/269/42 -f 401/311/42 403/310/42 418/309/42 -f 402/313/42 400/315/42 421/266/42 -f 399/304/42 401/311/42 420/312/42 -f 398/305/42 414/267/42 421/266/42 -f 409/316/41 408/328/41 422/274/41 -f 412/318/41 424/323/41 425/319/41 -f 413/320/41 425/319/41 426/292/41 -f 412/318/41 410/326/41 427/322/41 -f 411/321/41 426/292/41 428/275/41 -f 406/325/41 429/327/41 427/322/41 -f 409/316/41 423/317/41 429/327/41 -f 408/328/41 407/324/41 428/275/41 -f 433/289/42 432/330/42 436/329/42 -f 431/291/42 430/332/42 432/330/42 -f 435/331/42 434/336/42 430/332/42 -f 398/333/52 434/336/52 435/331/52 -f 400/335/53 430/332/53 434/336/53 -f 402/338/63 432/330/63 430/332/63 -f 404/339/53 436/329/53 432/330/53 -f 404/340/54 405/556/54 437/286/54 -f 440/341/41 444/303/41 445/302/41 -f 438/342/41 440/341/41 441/296/41 -f 439/343/41 442/346/41 443/299/41 -f 411/297/53 441/296/53 445/302/53 -f 409/345/52 443/299/52 442/346/52 -f 407/295/53 408/557/53 442/346/53 -f 410/348/62 440/341/62 438/342/62 -f 412/349/51 444/303/51 440/341/51 -f 447/350/41 449/558/41 448/351/41 -f 452/353/42 453/559/42 451/354/42 -f 456/358/41 457/560/41 459/359/41 -f 459/361/54 463/561/54 462/362/54 -f 463/363/42 461/562/42 460/364/42 -f 483/563/53 480/564/53 481/565/53 -f 481/565/53 484/367/53 487/366/53 -f 485/365/53 486/566/53 487/366/53 -f 487/366/53 482/567/53 481/565/53 -f 483/563/53 481/565/53 482/567/53 -f 520/368/77 521/379/77 523/369/77 -f 522/370/78 523/369/78 525/371/78 -f 525/373/79 527/568/79 526/374/79 -f 521/376/41 527/569/41 525/377/41 -f 526/374/80 527/568/80 521/379/80 -f 538/382/41 536/570/41 548/380/41 -f 550/390/41 548/380/41 536/570/41 -f 536/570/41 537/571/41 550/390/41 -f 539/383/68 543/394/68 542/384/68 -f 543/386/42 541/572/42 540/387/42 -f 542/384/53 540/573/53 536/389/53 -f 550/390/69 537/571/69 544/391/69 -f 539/383/54 545/574/54 546/393/54 -f 548/395/52 553/575/52 555/396/52 -f 550/398/70 552/402/70 553/399/70 -f 550/398/54 551/576/54 554/401/54 -f 549/397/71 555/396/71 554/403/71 +vt 0.999863 0.558603 +vt 0.913036 0.999942 +vt 0.913046 0.558531 +vt 0.290226 0.680652 +vt 0.328350 0.613950 +vt 0.289986 0.613909 +vt 0.999954 0.999867 +vt 0.328352 0.680850 +s 0 +f 1/1/1 18/2/1 3/3/1 +f 2/4/2 19/5/2 20/6/2 +f 3/3/1 21/7/1 5/8/1 +f 6/9/2 19/5/2 4/10/2 +f 5/11/1 23/12/1 7/13/1 +f 8/14/2 22/15/2 6/16/2 +f 7/13/1 25/17/1 9/18/1 +f 8/14/2 26/19/2 24/20/2 +f 9/18/1 27/21/1 11/22/1 +f 10/23/2 28/24/2 26/19/2 +f 11/22/1 29/25/1 13/26/1 +f 12/27/2 30/28/2 28/24/2 +f 15/29/1 29/25/1 31/30/1 +f 16/31/2 30/28/2 14/32/2 +f 15/29/1 17/33/1 1/1/1 +f 16/31/2 20/6/2 32/34/2 +f 36/35/2 39/36/2 40/37/2 +f 44/38/1 47/39/1 48/40/1 +f 51/41/3 50/42/3 49/43/3 +f 60/44/4 66/45/4 63/46/4 +f 53/47/4 54/48/4 86/49/4 +f 76/50/4 73/51/4 79/52/4 +f 57/53/4 59/54/4 73/51/4 +f 52/55/4 70/56/4 68/57/4 +f 88/42/5 89/41/5 87/43/5 +f 101/46/6 104/45/6 98/44/6 +f 124/49/6 122/58/6 92/48/6 +f 119/59/6 120/60/6 113/61/6 +f 113/61/6 93/62/6 96/63/6 +f 108/56/6 107/64/6 89/65/6 +f 126/42/7 127/41/7 125/43/7 +f 139/66/8 142/67/8 136/44/8 +f 162/68/8 160/69/8 130/70/8 +f 157/71/8 153/72/8 151/73/8 +f 151/73/8 131/74/8 134/75/8 +f 146/76/8 145/77/8 127/78/8 +f 165/41/9 164/42/9 163/43/9 +f 174/79/10 180/45/10 177/80/10 +f 167/81/11 168/82/11 200/83/11 +f 190/84/11 187/85/11 193/86/11 +f 171/87/11 173/88/11 186/89/11 +f 166/90/11 184/56/11 182/57/11 +f 204/91/12 201/92/12 202/93/12 +f 243/94/13 226/95/13 221/96/13 +f 233/97/13 235/98/13 213/99/13 +f 210/100/13 207/101/13 211/102/13 +f 216/103/2 225/104/2 215/105/2 +f 214/106/14 215/107/14 213/99/14 +f 223/108/15 228/109/15 216/110/15 +f 222/111/1 214/112/1 213/113/1 +f 218/91/14 219/92/14 217/93/14 +f 254/114/15 264/115/15 265/116/15 +f 260/117/15 267/118/15 268/119/15 +f 248/120/15 263/121/15 250/122/15 +f 254/123/16 266/124/16 256/125/16 +f 246/126/15 268/119/15 262/127/15 +f 246/126/15 261/128/15 248/120/15 +f 252/129/15 263/121/15 264/115/15 +f 256/125/15 267/118/15 258/130/15 +f 270/131/13 277/132/13 278/133/13 +f 269/134/13 279/135/13 277/132/13 +f 272/136/13 279/135/13 271/137/13 +f 273/138/13 280/139/13 272/136/13 +f 273/140/13 282/141/13 281/142/13 +f 274/143/13 283/144/13 282/141/13 +f 276/145/13 283/144/13 275/146/13 +f 270/131/13 284/147/13 276/145/13 +f 290/148/13 288/149/13 287/150/13 +f 325/151/17 332/152/17 334/153/17 +f 302/154/15 312/155/15 313/156/15 +f 296/152/18 334/157/18 333/153/18 +f 308/158/15 315/159/15 316/160/15 +f 296/161/15 311/162/15 298/163/15 +f 302/164/15 314/165/15 304/166/15 +f 294/167/15 316/160/15 310/168/15 +f 294/167/15 309/169/15 296/161/15 +f 300/170/15 311/162/15 312/155/15 +f 304/166/15 315/159/15 306/171/15 +f 322/172/13 320/173/13 319/174/13 +f 326/175/19 325/176/19 334/157/19 +f 294/151/20 296/152/20 333/153/20 +f 308/175/21 294/176/21 333/157/21 +f 308/175/22 334/153/22 332/152/22 +f 339/177/2 383/178/2 376/179/2 +f 383/178/2 341/180/2 381/181/2 +f 337/182/15 376/183/15 384/184/15 +f 336/185/1 384/186/1 390/187/1 +f 337/182/12 338/188/12 339/189/12 +f 341/180/2 378/190/2 381/181/2 +f 338/188/23 340/191/23 341/192/23 +f 340/191/12 343/193/12 341/192/12 +f 378/194/13 386/195/13 379/196/13 +f 365/197/12 399/198/12 367/199/12 +f 363/200/24 395/201/24 365/197/24 +f 361/202/12 393/203/12 363/200/12 +f 388/204/1 342/205/1 340/206/1 +f 369/200/25 403/201/25 373/197/25 +f 390/187/1 340/206/1 336/185/1 +f 368/207/12 405/208/12 371/209/12 +f 374/210/15 407/198/15 406/211/15 +f 361/212/2 376/179/2 360/213/2 +f 366/214/2 379/215/2 367/216/2 +f 367/216/2 380/217/2 365/218/2 +f 366/214/2 381/181/2 378/190/2 +f 363/219/2 380/217/2 382/220/2 +f 364/221/2 383/178/2 381/181/2 +f 361/212/2 382/220/2 377/222/2 +f 360/213/2 383/178/2 362/223/2 +f 371/224/1 384/186/1 385/225/1 +f 374/226/1 387/227/1 375/228/1 +f 375/228/1 388/204/1 373/229/1 +f 374/226/1 389/230/1 386/231/1 +f 373/229/1 390/187/1 369/232/1 +f 368/233/1 389/230/1 372/234/1 +f 371/224/1 391/235/1 368/233/1 +f 370/236/1 390/187/1 384/186/1 +f 395/201/2 398/211/2 399/198/2 +f 393/203/2 394/237/2 395/201/2 +f 397/238/2 392/239/2 393/203/2 +f 360/240/13 397/238/13 361/241/13 +f 362/207/14 396/208/14 360/209/14 +f 364/242/25 392/239/25 362/207/25 +f 366/243/14 394/237/14 364/242/14 +f 366/210/15 399/198/15 398/211/15 +f 402/237/1 407/198/1 403/201/1 +f 400/239/1 403/201/1 401/203/1 +f 401/203/1 405/208/1 400/239/1 +f 373/197/14 407/198/14 375/199/14 +f 371/240/13 404/238/13 370/241/13 +f 369/200/14 404/238/14 401/203/14 +f 372/242/24 400/239/24 368/207/24 +f 374/243/12 402/237/12 372/242/12 +f 409/244/1 410/245/1 408/246/1 +f 414/245/2 413/244/2 412/246/2 +f 414/245/2 412/246/2 417/247/2 +f 408/246/1 410/245/1 416/247/1 +f 418/248/1 421/249/1 420/250/1 +f 421/251/15 424/252/15 420/250/15 +f 425/253/2 422/254/2 424/252/2 +f 447/255/14 449/256/14 446/257/14 +f 494/258/1 485/259/1 484/260/1 +f 485/261/26 488/262/26 484/263/26 +f 489/264/2 486/265/2 488/266/2 +f 488/262/14 482/267/14 484/263/14 +f 496/268/27 490/269/27 497/270/27 +f 485/261/15 492/271/15 489/272/15 +f 494/273/13 501/274/13 495/275/13 +f 498/276/28 502/277/28 496/278/28 +f 496/275/15 500/279/15 498/274/15 +f 495/275/29 500/280/29 497/281/29 +f 1/1/1 17/33/1 18/2/1 +f 2/4/2 4/10/2 19/5/2 +f 3/3/1 18/2/1 21/7/1 +f 6/9/2 22/282/2 19/5/2 +f 5/11/1 21/283/1 23/12/1 +f 8/14/2 24/20/2 22/15/2 +f 7/13/1 23/12/1 25/17/1 +f 8/14/2 10/23/2 26/19/2 +f 9/18/1 25/17/1 27/21/1 +f 10/23/2 12/27/2 28/24/2 +f 11/22/1 27/21/1 29/25/1 +f 12/27/2 14/32/2 30/28/2 +f 15/29/1 13/26/1 29/25/1 +f 16/31/2 32/34/2 30/28/2 +f 15/29/1 31/30/1 17/33/1 +f 16/31/2 2/4/2 20/6/2 +f 40/37/2 33/284/2 36/35/2 +f 34/285/2 35/286/2 36/35/2 +f 36/35/2 37/287/2 38/288/2 +f 38/288/2 39/36/2 36/35/2 +f 33/284/2 34/285/2 36/35/2 +f 48/40/1 41/289/1 42/290/1 +f 42/290/1 43/291/1 44/38/1 +f 44/38/1 45/292/1 46/293/1 +f 46/293/1 47/39/1 44/38/1 +f 48/40/1 42/290/1 44/38/1 +f 51/41/30 52/294/30 50/42/30 +f 67/295/4 51/65/4 59/54/4 +f 51/65/4 53/47/4 59/54/4 +f 65/296/4 67/295/4 59/54/4 +f 65/296/4 59/54/4 61/297/4 +f 64/298/4 65/296/4 62/299/4 +f 65/296/4 61/297/4 62/299/4 +f 63/46/4 64/298/4 62/299/4 +f 60/44/4 58/63/4 66/45/4 +f 63/46/4 62/299/4 60/44/4 +f 58/63/4 52/55/4 66/45/4 +f 54/48/4 52/55/4 81/59/4 +f 54/48/4 81/59/4 84/58/4 +f 85/300/4 83/301/4 53/47/4 +f 54/48/4 84/58/4 86/49/4 +f 86/49/4 85/300/4 53/47/4 +f 81/59/4 52/55/4 75/61/4 +f 81/59/4 75/61/4 82/60/4 +f 82/60/4 75/61/4 77/302/4 +f 82/60/4 77/302/4 78/303/4 +f 78/303/4 77/302/4 80/304/4 +f 78/303/4 80/304/4 76/50/4 +f 79/52/4 78/303/4 76/50/4 +f 73/51/4 53/47/4 83/301/4 +f 83/301/4 79/52/4 73/51/4 +f 75/61/4 52/55/4 58/63/4 +f 75/61/4 58/63/4 55/62/4 +f 71/305/4 75/61/4 55/62/4 +f 71/305/4 55/62/4 56/306/4 +f 74/307/4 71/305/4 56/306/4 +f 74/307/4 56/306/4 57/53/4 +f 72/308/4 74/307/4 57/53/4 +f 59/54/4 53/47/4 73/51/4 +f 73/51/4 72/308/4 57/53/4 +f 51/65/4 67/295/4 69/64/4 +f 51/65/4 69/64/4 70/56/4 +f 68/57/4 66/45/4 52/55/4 +f 51/65/4 70/56/4 52/55/4 +f 88/42/31 90/294/31 89/41/31 +f 91/47/6 89/65/6 97/54/6 +f 97/54/6 89/65/6 105/295/6 +f 99/297/6 97/54/6 103/296/6 +f 97/54/6 105/295/6 103/296/6 +f 100/299/6 99/297/6 103/296/6 +f 100/299/6 103/296/6 102/298/6 +f 90/55/6 96/63/6 104/45/6 +f 98/44/6 100/299/6 102/298/6 +f 98/44/6 102/298/6 101/46/6 +f 104/45/6 96/63/6 98/44/6 +f 91/47/6 121/301/6 123/300/6 +f 91/47/6 123/300/6 124/49/6 +f 119/59/6 90/55/6 92/48/6 +f 91/47/6 124/49/6 92/48/6 +f 122/58/6 119/59/6 92/48/6 +f 121/301/6 91/47/6 111/51/6 +f 121/301/6 111/51/6 117/52/6 +f 117/52/6 111/51/6 114/50/6 +f 117/52/6 114/50/6 116/303/6 +f 116/303/6 114/50/6 118/304/6 +f 116/303/6 118/304/6 115/302/6 +f 120/60/6 116/303/6 115/302/6 +f 113/61/6 90/55/6 119/59/6 +f 120/60/6 115/302/6 113/61/6 +f 111/51/6 91/47/6 97/54/6 +f 111/51/6 97/54/6 95/53/6 +f 110/308/6 111/51/6 95/53/6 +f 110/308/6 95/53/6 112/307/6 +f 112/307/6 95/53/6 94/306/6 +f 112/307/6 94/306/6 109/305/6 +f 109/305/6 94/306/6 93/62/6 +f 96/63/6 90/55/6 113/61/6 +f 109/305/6 93/62/6 113/61/6 +f 90/55/6 104/45/6 106/57/6 +f 90/55/6 106/57/6 108/56/6 +f 107/64/6 105/295/6 89/65/6 +f 90/55/6 108/56/6 89/65/6 +f 126/42/32 128/294/32 127/41/32 +f 129/309/8 127/78/8 135/54/8 +f 135/54/8 127/78/8 143/310/8 +f 137/297/8 135/54/8 143/310/8 +f 137/297/8 143/310/8 141/311/8 +f 138/299/8 137/297/8 141/311/8 +f 138/299/8 141/311/8 140/312/8 +f 128/313/8 134/75/8 142/67/8 +f 136/44/8 138/299/8 140/312/8 +f 136/44/8 140/312/8 139/66/8 +f 142/67/8 134/75/8 136/44/8 +f 129/309/8 159/314/8 161/315/8 +f 129/309/8 161/315/8 162/68/8 +f 157/71/8 128/313/8 130/70/8 +f 129/309/8 162/68/8 130/70/8 +f 160/69/8 157/71/8 130/70/8 +f 159/314/8 129/309/8 149/316/8 +f 159/314/8 149/316/8 155/317/8 +f 155/317/8 149/316/8 152/318/8 +f 155/317/8 152/318/8 154/319/8 +f 154/319/8 152/318/8 156/320/8 +f 154/319/8 156/320/8 158/321/8 +f 158/321/8 156/320/8 153/72/8 +f 151/73/8 128/313/8 157/71/8 +f 158/321/8 153/72/8 157/71/8 +f 149/316/8 129/309/8 135/54/8 +f 149/316/8 135/54/8 148/322/8 +f 148/322/8 135/54/8 133/323/8 +f 148/322/8 133/323/8 150/324/8 +f 150/324/8 133/323/8 132/325/8 +f 150/324/8 132/325/8 147/326/8 +f 147/326/8 132/325/8 131/74/8 +f 134/75/8 128/313/8 151/73/8 +f 147/326/8 131/74/8 151/73/8 +f 128/313/8 142/67/8 144/327/8 +f 128/313/8 144/327/8 146/76/8 +f 145/77/8 143/310/8 127/78/8 +f 128/313/8 146/76/8 127/78/8 +f 165/41/33 166/294/33 164/42/33 +f 181/295/11 165/328/11 173/88/11 +f 165/328/11 167/81/11 173/88/11 +f 179/329/11 181/295/11 175/330/11 +f 181/295/11 173/88/11 175/330/11 +f 178/331/11 179/329/11 176/332/11 +f 179/329/11 175/330/11 176/332/11 +f 177/80/11 178/331/11 174/79/11 +f 174/79/11 172/333/11 180/45/11 +f 178/331/11 176/332/11 174/79/11 +f 172/333/11 166/90/11 180/45/11 +f 168/82/11 166/90/11 195/334/11 +f 168/82/11 195/334/11 198/335/11 +f 199/336/11 197/337/11 167/81/11 +f 168/82/11 198/335/11 200/83/11 +f 200/83/11 199/336/11 167/81/11 +f 195/334/11 166/90/11 189/338/11 +f 195/334/11 189/338/11 191/339/11 +f 196/340/11 195/334/11 191/339/11 +f 196/340/11 191/339/11 194/341/11 +f 192/342/11 196/340/11 194/341/11 +f 192/342/11 194/341/11 190/84/11 +f 193/86/11 192/342/11 190/84/11 +f 187/85/11 167/81/11 197/337/11 +f 197/337/11 193/86/11 187/85/11 +f 189/338/11 166/90/11 172/333/11 +f 189/338/11 172/333/11 169/343/11 +f 185/344/11 189/338/11 169/343/11 +f 185/344/11 169/343/11 170/345/11 +f 188/346/11 185/344/11 170/345/11 +f 188/346/11 170/345/11 171/87/11 +f 186/89/11 188/346/11 171/87/11 +f 173/88/11 167/81/11 187/85/11 +f 187/85/11 186/89/11 173/88/11 +f 165/328/11 181/295/11 183/347/11 +f 165/328/11 183/347/11 184/56/11 +f 182/57/11 180/45/11 166/90/11 +f 165/328/11 184/56/11 166/90/11 +f 204/91/34 203/4/34 201/92/34 +f 222/348/13 213/99/13 239/349/13 +f 222/348/13 239/349/13 237/350/13 +f 215/107/13 225/351/13 231/352/13 +f 241/353/13 231/352/13 225/351/13 +f 222/348/13 237/350/13 221/96/13 +f 241/353/13 225/351/13 226/95/13 +f 221/96/13 237/350/13 243/94/13 +f 243/94/13 241/353/13 226/95/13 +f 215/107/13 231/352/13 229/354/13 +f 215/107/13 229/354/13 233/97/13 +f 235/98/13 239/349/13 213/99/13 +f 213/99/13 215/107/13 233/97/13 +f 206/355/13 205/356/13 212/357/13 +f 212/357/13 211/102/13 206/355/13 +f 210/100/13 209/358/13 208/359/13 +f 208/359/13 207/101/13 210/100/13 +f 206/355/13 211/102/13 207/101/13 +f 216/103/2 228/360/2 225/104/2 +f 214/106/14 216/110/14 215/107/14 +f 216/110/15 214/106/15 223/108/15 +f 223/108/15 224/361/15 227/362/15 +f 227/362/15 228/109/15 223/108/15 +f 222/111/1 223/363/1 214/112/1 +f 218/91/14 220/4/14 219/92/14 +f 254/114/15 252/129/15 264/115/15 +f 260/117/15 258/130/15 267/118/15 +f 248/120/15 261/128/15 263/121/15 +f 254/123/15 265/364/15 266/124/15 +f 246/126/35 260/117/35 268/119/35 +f 246/126/15 262/127/15 261/128/15 +f 252/129/15 250/122/15 263/121/15 +f 256/125/15 266/124/15 267/118/15 +f 270/131/13 269/134/13 277/132/13 +f 269/134/13 271/137/13 279/135/13 +f 272/136/13 280/139/13 279/135/13 +f 273/138/13 281/365/13 280/139/13 +f 273/140/13 274/143/13 282/141/13 +f 274/143/13 275/146/13 283/144/13 +f 276/145/13 284/147/13 283/144/13 +f 270/131/13 278/133/13 284/147/13 +f 287/150/13 285/366/13 292/367/13 +f 286/368/13 292/367/13 285/366/13 +f 291/369/13 290/148/13 287/150/13 +f 289/370/13 288/149/13 290/148/13 +f 287/150/13 292/367/13 291/369/13 +f 302/154/15 300/170/15 312/155/15 +f 296/152/18 326/175/18 334/157/18 +f 308/158/15 306/171/15 315/159/15 +f 296/161/15 309/169/15 311/162/15 +f 302/164/15 313/371/15 314/165/15 +f 294/167/15 308/158/15 316/160/15 +f 294/167/15 310/168/15 309/169/15 +f 300/170/15 298/163/15 311/162/15 +f 304/166/15 314/165/15 315/159/15 +f 319/174/13 317/372/13 324/373/13 +f 318/374/13 324/373/13 317/372/13 +f 323/375/13 322/172/13 319/174/13 +f 321/376/13 320/173/13 322/172/13 +f 319/174/13 324/373/13 323/375/13 +f 308/175/22 333/157/22 334/153/22 +f 339/177/2 338/377/2 383/178/2 +f 383/178/2 338/377/2 341/180/2 +f 351/378/15 346/379/15 347/380/15 +f 385/381/15 384/184/15 376/183/15 +f 351/378/15 347/380/15 350/382/15 +f 377/383/15 350/382/15 385/381/15 +f 337/182/15 339/189/15 376/183/15 +f 376/183/15 377/383/15 385/381/15 +f 347/380/15 385/381/15 350/382/15 +f 336/185/1 337/384/1 384/186/1 +f 337/182/12 336/385/12 338/188/12 +f 341/180/2 343/386/2 378/190/2 +f 338/188/23 336/385/23 340/191/23 +f 340/191/12 342/177/12 343/193/12 +f 357/387/13 358/388/13 359/389/13 +f 359/389/13 379/196/13 386/195/13 +f 378/194/13 343/193/13 342/177/13 +f 342/177/13 387/390/13 378/194/13 +f 386/195/13 356/391/13 359/389/13 +f 357/387/13 359/389/13 356/391/13 +f 378/194/13 387/390/13 386/195/13 +f 365/197/12 395/201/12 399/198/12 +f 363/200/24 393/203/24 395/201/24 +f 361/202/12 397/238/12 393/203/12 +f 388/204/1 387/227/1 342/205/1 +f 369/200/25 401/203/25 403/201/25 +f 390/187/1 388/204/1 340/206/1 +f 368/207/12 400/239/12 405/208/12 +f 374/210/15 375/392/15 407/198/15 +f 361/212/2 377/222/2 376/179/2 +f 366/214/2 378/190/2 379/215/2 +f 367/216/2 379/215/2 380/217/2 +f 366/214/2 364/221/2 381/181/2 +f 363/219/2 365/218/2 380/217/2 +f 364/221/2 362/223/2 383/178/2 +f 361/212/2 363/219/2 382/220/2 +f 360/213/2 376/179/2 383/178/2 +f 371/224/1 370/236/1 384/186/1 +f 374/226/1 386/231/1 387/227/1 +f 375/228/1 387/227/1 388/204/1 +f 374/226/1 372/234/1 389/230/1 +f 373/229/1 388/204/1 390/187/1 +f 368/233/1 391/235/1 389/230/1 +f 371/224/1 385/225/1 391/235/1 +f 370/236/1 369/232/1 390/187/1 +f 395/201/2 394/237/2 398/211/2 +f 393/203/2 392/239/2 394/237/2 +f 397/238/2 396/208/2 392/239/2 +f 360/240/13 396/208/13 397/238/13 +f 362/207/14 392/239/14 396/208/14 +f 364/242/25 394/237/25 392/239/25 +f 366/243/14 398/211/14 394/237/14 +f 366/210/15 367/392/15 399/198/15 +f 402/237/1 406/211/1 407/198/1 +f 400/239/1 402/237/1 403/201/1 +f 401/203/1 404/238/1 405/208/1 +f 373/197/14 403/201/14 407/198/14 +f 371/240/13 405/208/13 404/238/13 +f 369/200/14 370/202/14 404/238/14 +f 372/242/24 402/237/24 400/239/24 +f 374/243/12 406/211/12 402/237/12 +f 409/244/1 411/393/1 410/245/1 +f 414/245/2 415/393/2 413/244/2 +f 418/248/1 419/394/1 421/249/1 +f 421/251/15 425/395/15 424/252/15 +f 425/253/2 423/396/2 422/254/2 +f 445/397/14 442/398/14 443/399/14 +f 443/399/14 446/257/14 449/256/14 +f 447/255/14 448/400/14 449/256/14 +f 449/256/14 444/401/14 443/399/14 +f 445/397/14 443/399/14 444/401/14 +f 482/402/1 502/403/1 503/404/1 +f 496/268/1 502/403/1 482/402/1 +f 482/402/1 483/405/1 496/268/1 +f 485/261/26 489/272/26 488/262/26 +f 489/264/2 487/406/2 486/265/2 +f 488/262/14 486/407/14 482/267/14 +f 496/268/27 483/405/27 490/269/27 +f 485/261/15 491/408/15 492/271/15 +f 494/273/13 499/279/13 501/274/13 +f 499/279/36 494/273/36 503/409/36 +f 496/275/15 497/273/15 500/279/15 +f 495/275/29 501/274/29 500/280/29 s 1 -f 58/66/81 56/62/82 55/93/83 -f 57/65/84 59/67/85 56/62/82 -f 60/75/86 61/72/87 59/406/85 -f 62/80/88 63/77/89 61/72/87 -f 64/79/90 65/81/91 63/77/89 -f 66/84/92 67/85/93 65/81/91 -f 68/88/94 69/90/95 67/85/93 -f 70/94/96 55/93/83 69/90/95 -f 72/577/81 42/70/97 40/64/98 -f 73/578/96 40/64/98 54/91/99 -f 74/579/94 54/91/99 52/92/100 -f 75/580/92 52/92/100 50/87/101 -f 76/581/90 50/87/101 48/83/102 -f 77/582/88 48/83/102 46/74/103 -f 78/583/86 46/74/103 44/76/104 -f 71/584/84 44/69/104 42/70/97 -f 80/585/82 39/61/105 41/63/106 -f 81/586/85 41/63/106 43/68/107 -f 82/587/87 43/71/107 45/73/108 -f 83/588/89 45/73/108 47/78/109 -f 84/589/91 47/78/109 49/82/110 -f 85/590/93 49/82/110 51/86/111 -f 86/591/95 51/86/111 53/89/112 -f 79/592/83 53/89/112 39/61/105 -f 246/593/113 270/594/114 245/595/115 -f 249/596/116 274/597/117 248/598/118 -f 250/599/119 282/600/120 276/601/121 -f 243/602/122 280/603/123 282/604/120 -f 249/596/116 276/601/121 278/605/124 -f 262/606/125 264/607/126 265/608/127 -f 244/609/128 270/594/114 280/603/123 -f 262/606/125 260/190/129 259/610/130 -f 264/607/126 266/521/131 265/608/127 -f 248/598/118 272/611/132 247/612/133 -f 269/613/134 268/614/135 267/615/136 -f 272/611/132 273/616/137 271/617/138 -f 272/611/132 267/615/136 268/614/135 -f 277/618/139 276/601/121 275/619/140 -f 274/597/117 277/618/139 273/616/137 -f 280/603/123 269/613/134 279/620/141 -f 282/604/120 279/620/141 281/621/142 -f 282/600/120 275/619/140 276/601/121 -f 247/612/133 268/614/135 246/593/113 -f 284/208/143 285/622/144 283/623/51 -f 285/622/144 288/204/145 287/624/42 -f 287/624/42 290/211/146 289/625/147 -f 290/211/146 291/626/53 289/625/147 -f 292/205/148 293/627/149 291/628/53 -f 294/207/150 295/629/41 293/627/149 -f 296/212/151 297/630/152 295/629/41 -f 298/199/153 283/623/51 297/630/152 -f 300/209/154 315/214/155 299/210/156 -f 307/216/157 325/631/158 309/219/159 -f 306/201/160 316/215/161 300/209/154 -f 305/200/162 320/223/163 321/226/164 -f 303/198/165 318/221/166 319/527/167 -f 299/210/156 317/217/158 301/203/168 -f 305/200/162 322/229/169 306/201/160 -f 303/526/165 320/223/163 304/206/170 -f 301/203/168 318/221/166 302/197/171 -f 313/228/172 330/632/169 314/227/173 -f 311/222/174 328/633/163 312/225/175 -f 309/219/159 326/634/166 310/218/176 -f 308/213/177 323/635/155 307/216/157 -f 314/227/173 324/636/161 308/213/177 -f 312/225/175 329/637/164 313/228/172 -f 310/218/176 327/638/167 311/220/174 -f 364/639/178 336/247/145 365/640/42 -f 336/247/145 366/641/147 365/640/42 -f 338/254/146 367/642/53 366/641/147 -f 340/248/148 368/643/149 367/644/53 -f 342/250/150 369/645/41 368/643/149 -f 369/645/41 346/242/179 370/646/180 -f 348/252/154 355/647/155 347/253/156 -f 354/244/160 356/648/161 348/252/154 -f 353/243/162 360/649/163 361/650/164 -f 350/237/171 359/651/167 351/238/165 -f 347/253/156 357/652/158 349/246/168 -f 353/243/162 362/653/169 354/244/160 -f 351/533/165 360/649/163 352/249/170 -f 350/237/171 357/652/158 358/654/166 -f 370/646/180 331/655/51 345/656/152 -f 369/645/41 345/656/152 343/657/41 -f 368/643/149 343/657/41 341/658/149 -f 367/644/53 341/658/149 339/659/53 -f 366/641/147 339/660/53 337/661/147 -f 365/640/42 337/661/147 335/662/42 -f 364/639/178 335/662/42 333/663/144 -f 363/664/181 333/665/144 331/655/51 -f 387/666/182 390/667/183 382/668/183 -f 429/327/41 391/669/184 427/322/41 -f 391/669/184 424/323/185 427/322/41 -f 393/670/182 395/671/186 390/667/183 -f 382/668/183 385/672/187 384/673/188 -f 387/666/182 388/674/189 386/675/190 -f 390/667/183 383/676/184 382/668/183 -f 392/677/190 387/666/182 386/675/190 -f 397/678/191 393/670/182 392/677/190 -f 391/669/184 395/671/186 394/679/192 -f 389/680/193 382/668/183 384/673/188 -f 418/309/42 397/678/191 392/677/190 -f 420/312/42 392/677/190 386/675/190 -f 415/314/194 386/675/190 388/674/189 -f 429/327/41 385/672/187 383/676/184 -f 449/681/195 452/682/196 448/683/197 -f 450/684/198 447/685/185 446/686/199 -f 446/686/199 455/687/200 450/684/198 -f 448/683/197 455/687/200 454/688/201 -f 461/689/202 456/358/203 460/364/204 -f 462/362/205 456/358/203 458/360/206 -f 475/690/207 465/691/208 472/692/209 -f 468/693/210 484/694/211 481/695/212 -f 479/696/213 494/697/214 474/698/215 -f 465/691/208 487/699/216 472/692/209 -f 479/696/213 473/700/217 476/701/218 -f 473/700/217 485/702/219 476/701/218 -f 490/703/220 496/704/221 499/705/222 -f 467/706/223 490/703/220 470/707/224 -f 478/708/225 491/709/226 492/710/227 -f 467/706/223 469/711/228 464/712/229 -f 491/709/226 501/713/230 492/710/227 -f 475/690/207 488/714/231 466/715/232 -f 468/693/210 478/708/225 477/716/233 -f 494/697/214 500/717/234 503/718/235 -f 495/719/236 497/720/237 488/714/231 -f 466/715/232 464/712/229 465/691/208 -f 471/721/238 469/711/228 470/707/224 -f 479/722/213 477/716/233 478/708/225 -f 472/692/209 474/698/215 475/690/207 -f 472/692/209 486/723/239 473/700/217 -f 477/716/233 485/724/219 484/694/211 -f 464/712/229 482/725/240 465/691/208 -f 469/711/228 481/695/212 480/726/241 -f 490/703/220 471/721/238 470/707/224 -f 479/722/213 492/710/227 493/727/242 -f 495/719/236 474/698/215 494/697/214 -f 466/715/232 489/728/243 467/706/223 -f 503/718/235 495/719/236 494/697/214 -f 489/728/243 497/720/237 496/704/221 -f 490/703/220 498/729/244 491/709/226 -f 500/730/234 492/710/227 501/713/230 -f 469/711/228 483/731/245 464/712/229 -f 506/732/246 509/733/247 508/734/247 -f 508/734/247 511/735/248 510/736/248 -f 510/736/248 505/737/249 504/738/249 -f 517/739/250 514/740/251 516/741/250 -f 519/742/252 516/741/250 518/743/252 -f 513/744/253 518/743/252 512/745/253 -f 529/746/254 530/747/255 528/748/254 -f 533/749/256 534/750/257 532/751/256 -f 535/752/257 528/748/254 534/750/257 -f 549/753/258 551/392/259 547/754/260 -f 541/572/261 546/755/262 547/754/260 -f 548/380/263 545/756/264 539/381/265 -f 58/66/81 57/65/84 56/62/82 -f 57/65/84 60/405/86 59/67/85 -f 60/75/86 62/80/88 61/72/87 -f 62/80/88 64/79/90 63/77/89 -f 64/79/90 66/84/92 65/81/91 -f 66/84/92 68/88/94 67/85/93 -f 68/88/94 70/94/96 69/90/95 -f 70/94/96 58/66/81 55/93/83 -f 72/577/81 71/584/84 42/70/97 -f 73/578/96 72/577/81 40/64/98 -f 74/579/94 73/578/96 54/91/99 -f 75/580/92 74/579/94 52/92/100 -f 76/581/90 75/580/92 50/87/101 -f 77/582/88 76/581/90 48/83/102 -f 78/583/86 77/582/88 46/74/103 -f 71/584/84 78/757/86 44/69/104 -f 80/585/82 79/592/83 39/61/105 -f 81/586/85 80/585/82 41/63/106 -f 82/587/87 81/758/85 43/71/107 -f 83/588/89 82/587/87 45/73/108 -f 84/589/91 83/588/89 47/78/109 -f 85/590/93 84/589/91 49/82/110 -f 86/591/95 85/590/93 51/86/111 -f 79/592/83 86/591/95 53/89/112 -f 246/593/113 268/614/135 270/594/114 -f 249/596/116 278/605/124 274/597/117 -f 250/599/119 243/759/122 282/600/120 -f 243/602/122 244/609/128 280/603/123 -f 249/596/116 250/599/119 276/601/121 -f 262/606/125 259/610/130 264/607/126 -f 244/609/128 245/595/115 270/594/114 -f 262/606/125 261/524/266 260/190/129 -f 264/607/126 263/183/267 266/521/131 -f 248/598/118 274/597/117 272/611/132 -f 269/613/134 270/594/114 268/614/135 -f 272/611/132 274/597/117 273/616/137 -f 272/611/132 271/617/138 267/615/136 -f 277/618/139 278/605/124 276/601/121 -f 274/597/117 278/605/124 277/618/139 -f 280/603/123 270/594/114 269/613/134 -f 282/604/120 280/603/123 279/620/141 -f 282/600/120 281/760/142 275/619/140 -f 247/612/133 272/611/132 268/614/135 -f 284/208/143 286/202/268 285/622/144 -f 285/622/144 286/202/268 288/204/145 -f 287/624/42 288/204/145 290/211/146 -f 290/211/146 292/196/148 291/626/53 -f 292/205/148 294/207/150 293/627/149 -f 294/207/150 296/212/151 295/629/41 -f 296/212/151 298/199/153 297/630/152 -f 298/199/153 284/208/143 283/623/51 -f 300/209/154 316/215/161 315/214/155 -f 307/216/157 323/635/155 325/631/158 -f 306/201/160 322/229/169 316/215/161 -f 305/200/162 304/206/170 320/223/163 -f 303/198/165 302/197/171 318/221/166 -f 299/210/156 315/214/155 317/217/158 -f 305/200/162 321/226/164 322/229/169 -f 303/526/165 319/224/167 320/223/163 -f 301/203/168 317/217/158 318/221/166 -f 313/228/172 329/637/164 330/632/169 -f 311/222/174 327/761/167 328/633/163 -f 309/219/159 325/631/158 326/634/166 -f 308/213/177 324/636/161 323/635/155 -f 314/227/173 330/632/169 324/636/161 -f 312/225/175 328/633/163 329/637/164 -f 310/218/176 326/634/166 327/638/167 -f 364/639/178 334/245/269 336/247/145 -f 336/247/145 338/254/146 366/641/147 -f 338/254/146 340/236/148 367/642/53 -f 340/248/148 342/250/150 368/643/149 -f 342/250/150 344/255/151 369/645/41 -f 369/645/41 344/255/151 346/242/179 -f 348/252/154 356/648/161 355/647/155 -f 354/244/160 362/653/169 356/648/161 -f 353/243/162 352/249/170 360/649/163 -f 350/237/171 358/654/166 359/651/167 -f 347/253/156 355/647/155 357/652/158 -f 353/243/162 361/650/164 362/653/169 -f 351/533/165 359/762/167 360/649/163 -f 350/237/171 349/246/168 357/652/158 -f 370/646/180 363/664/181 331/655/51 -f 369/645/41 370/646/180 345/656/152 -f 368/643/149 369/645/41 343/657/41 -f 367/644/53 368/643/149 341/658/149 -f 366/641/147 367/642/53 339/660/53 -f 365/640/42 366/641/147 337/661/147 -f 364/639/178 365/640/42 335/662/42 -f 363/664/181 364/763/178 333/665/144 -f 387/666/182 393/670/182 390/667/183 -f 429/327/41 383/676/184 391/669/184 -f 391/669/184 394/679/192 424/323/185 -f 393/670/182 396/764/270 395/671/186 -f 382/668/183 383/676/184 385/672/187 -f 387/666/182 389/680/193 388/674/189 -f 390/667/183 391/669/184 383/676/184 -f 392/677/190 393/670/182 387/666/182 -f 397/678/191 396/764/270 393/670/182 -f 391/669/184 390/667/183 395/671/186 -f 389/680/193 387/666/182 382/668/183 -f 418/309/42 417/307/202 397/678/191 -f 420/312/42 418/309/42 392/677/190 -f 415/314/194 420/312/42 386/675/190 -f 429/327/41 423/317/271 385/672/187 -f 449/681/195 453/765/272 452/682/196 -f 450/684/198 451/766/202 447/685/185 -f 446/686/199 454/688/201 455/687/200 -f 448/683/197 452/682/196 455/687/200 -f 461/689/202 457/767/185 456/358/203 -f 462/362/205 460/364/204 456/358/203 -f 475/690/207 466/715/232 465/691/208 -f 468/693/210 477/716/233 484/694/211 -f 479/696/213 493/768/242 494/697/214 -f 465/691/208 482/725/240 487/699/216 -f 479/696/213 474/698/215 473/700/217 -f 473/700/217 486/723/239 485/702/219 -f 490/703/220 489/728/243 496/704/221 -f 467/706/223 489/728/243 490/703/220 -f 478/708/225 471/721/238 491/709/226 -f 467/706/223 470/707/224 469/711/228 -f 491/709/226 498/729/244 501/713/230 -f 475/690/207 495/719/236 488/714/231 -f 468/693/210 471/721/238 478/708/225 -f 494/697/214 493/768/242 500/717/234 -f 495/719/236 502/769/273 497/720/237 -f 466/715/232 467/706/223 464/712/229 -f 471/721/238 468/693/210 469/711/228 -f 479/722/213 476/770/218 477/716/233 -f 472/692/209 473/700/217 474/698/215 -f 472/692/209 487/699/216 486/723/239 -f 477/716/233 476/770/218 485/724/219 -f 464/712/229 483/731/245 482/725/240 -f 469/711/228 468/693/210 481/695/212 -f 490/703/220 491/709/226 471/721/238 -f 479/722/213 478/708/225 492/710/227 -f 495/719/236 475/690/207 474/698/215 -f 466/715/232 488/714/231 489/728/243 -f 503/718/235 502/769/273 495/719/236 -f 489/728/243 488/714/231 497/720/237 -f 490/703/220 499/705/222 498/729/244 -f 500/730/234 493/727/242 492/710/227 -f 469/711/228 480/726/241 483/731/245 -f 506/732/246 507/771/246 509/733/247 -f 508/734/247 509/733/247 511/735/248 -f 510/736/248 511/735/248 505/737/249 -f 517/739/250 515/772/251 514/740/251 -f 519/742/252 517/739/250 516/741/250 -f 513/744/253 519/742/252 518/743/252 -f 529/746/254 531/773/255 530/747/255 -f 533/749/256 535/752/257 534/750/257 -f 535/752/257 529/746/254 528/748/254 -f 547/754/260 546/755/262 549/753/258 -f 545/756/264 549/753/258 546/755/262 -f 551/392/259 544/391/274 547/754/260 -f 541/572/261 543/386/275 546/755/262 -f 548/380/263 549/753/258 545/756/264 -l 332 373 +f 20/6/37 18/2/38 17/33/39 +f 19/5/40 21/7/41 18/2/38 +f 22/15/42 23/12/43 21/283/41 +f 24/20/44 25/17/45 23/12/43 +f 26/19/46 27/21/47 25/17/45 +f 28/24/48 29/25/49 27/21/47 +f 30/28/50 31/30/51 29/25/49 +f 32/34/52 17/33/39 31/30/51 +f 34/410/53 4/10/54 2/4/55 +f 35/411/52 2/4/55 16/31/56 +f 36/412/57 16/31/56 14/32/58 +f 37/413/59 14/32/58 12/27/60 +f 38/414/46 12/27/60 10/23/61 +f 39/415/62 10/23/61 8/14/63 +f 40/294/42 8/14/63 6/16/64 +f 33/416/40 6/9/64 4/10/54 +f 42/417/65 1/1/66 3/3/67 +f 43/418/41 3/3/67 5/8/68 +f 44/419/43 5/11/68 7/13/69 +f 45/420/70 7/13/69 9/18/71 +f 46/421/47 9/18/71 11/22/72 +f 47/422/49 11/22/72 13/26/73 +f 48/423/74 13/26/73 15/29/75 +f 41/424/76 15/29/75 1/1/66 +f 208/425/77 232/426/78 207/427/79 +f 211/428/80 236/429/81 210/430/82 +f 212/431/83 244/432/84 238/433/85 +f 205/434/86 242/435/87 244/436/84 +f 211/428/80 238/433/85 240/437/88 +f 224/438/89 226/439/90 227/440/91 +f 206/441/92 232/426/78 242/435/87 +f 224/438/89 222/111/93 221/442/94 +f 226/439/90 228/360/95 227/440/91 +f 210/430/82 234/443/96 209/444/97 +f 231/445/98 230/446/99 229/447/100 +f 234/443/96 235/448/101 233/449/102 +f 234/443/96 229/447/100 230/446/99 +f 239/450/103 238/433/85 237/451/104 +f 236/429/81 239/450/103 235/448/101 +f 242/435/87 231/445/98 241/452/105 +f 244/436/84 241/452/105 243/453/106 +f 244/432/84 237/451/104 238/433/85 +f 209/444/97 230/446/99 208/425/77 +f 246/126/107 247/454/108 245/455/12 +f 247/454/108 250/122/109 249/456/2 +f 249/456/2 252/129/110 251/457/111 +f 252/129/110 253/458/14 251/457/111 +f 254/123/112 255/459/113 253/460/14 +f 256/125/114 257/461/1 255/459/113 +f 258/130/115 259/462/116 257/461/1 +f 260/117/117 245/455/12 259/462/116 +f 262/127/118 277/132/119 261/128/120 +f 269/134/121 287/463/122 271/137/123 +f 268/119/124 278/133/125 262/127/118 +f 267/118/126 282/141/127 283/144/128 +f 265/116/129 280/139/130 281/365/131 +f 261/128/120 279/135/122 263/121/132 +f 267/118/126 284/147/133 268/119/124 +f 265/364/129 282/141/127 266/124/134 +f 263/121/132 280/139/130 264/115/135 +f 275/146/136 292/464/133 276/145/137 +f 273/140/138 290/465/139 274/143/140 +f 271/137/123 288/466/141 272/136/142 +f 270/131/143 285/467/144 269/134/121 +f 276/145/137 286/468/145 270/131/143 +f 274/143/140 291/469/146 275/146/136 +f 272/136/142 289/470/147 273/138/138 +f 326/471/148 298/163/109 327/472/2 +f 298/163/109 328/473/111 327/472/2 +f 300/170/149 329/474/14 328/473/111 +f 302/164/112 330/475/113 329/476/14 +f 304/166/150 331/477/1 330/475/113 +f 331/477/1 308/158/151 332/478/152 +f 310/168/153 317/479/154 309/169/155 +f 316/160/156 318/480/157 310/168/153 +f 315/159/158 322/481/159 323/482/160 +f 312/155/161 321/470/147 313/156/162 +f 309/169/155 319/483/122 311/162/163 +f 315/159/158 324/484/164 316/160/156 +f 313/371/162 322/481/159 314/165/165 +f 312/155/161 319/483/122 320/485/130 +f 332/478/152 293/486/12 307/487/116 +f 331/477/1 307/487/116 305/488/1 +f 330/475/113 305/488/1 303/489/113 +f 329/476/14 303/489/113 301/490/14 +f 328/473/111 301/458/14 299/491/111 +f 327/472/2 299/491/111 297/492/2 +f 326/471/148 297/492/2 295/493/108 +f 325/494/166 295/495/108 293/486/12 +f 349/496/167 352/497/168 344/498/168 +f 391/235/1 353/499/169 389/230/1 +f 353/499/169 386/231/170 389/230/1 +f 355/500/167 357/501/171 352/497/168 +f 344/498/168 347/502/172 346/503/173 +f 349/496/167 350/504/174 348/505/175 +f 352/497/168 345/506/169 344/498/168 +f 354/507/175 349/496/167 348/505/175 +f 359/508/176 355/500/167 354/507/175 +f 353/499/169 357/501/171 356/509/177 +f 351/510/178 344/498/168 346/503/173 +f 380/217/2 359/508/176 354/507/175 +f 382/220/2 354/507/175 348/505/175 +f 377/222/179 348/505/175 350/504/174 +f 391/235/1 347/502/172 345/506/169 +f 411/511/180 414/512/181 410/513/182 +f 412/514/183 409/515/184 408/516/185 +f 408/516/185 417/517/186 412/514/183 +f 410/513/182 417/517/186 416/518/187 +f 423/519/188 418/248/189 422/254/190 +f 424/252/191 418/248/189 420/250/192 +f 437/520/193 427/521/194 434/522/195 +f 430/523/196 446/524/197 443/525/198 +f 441/526/199 456/527/200 436/528/201 +f 427/521/194 449/529/202 434/522/195 +f 441/526/199 435/530/203 438/531/204 +f 435/530/203 447/532/205 438/531/204 +f 452/533/206 458/534/207 461/535/208 +f 429/536/209 452/533/206 432/537/210 +f 440/538/211 453/539/212 454/540/213 +f 429/536/209 431/541/214 426/542/215 +f 453/539/212 463/543/216 454/540/213 +f 437/520/193 450/544/217 428/545/218 +f 430/523/196 440/538/211 439/546/219 +f 456/527/200 462/547/220 465/548/221 +f 457/549/222 459/550/223 450/544/217 +f 428/545/218 426/542/215 427/521/194 +f 433/551/224 431/541/214 432/537/210 +f 441/552/199 439/546/219 440/538/211 +f 434/522/195 436/528/201 437/520/193 +f 434/522/195 448/553/225 435/530/203 +f 439/546/219 447/554/205 446/524/197 +f 426/542/215 444/555/226 427/521/194 +f 431/541/214 443/525/198 442/556/227 +f 452/533/206 433/551/224 432/537/210 +f 441/552/199 454/540/213 455/557/228 +f 457/549/222 436/528/201 456/527/200 +f 428/545/218 451/558/229 429/536/209 +f 465/548/221 457/549/222 456/527/200 +f 451/558/229 459/550/223 458/534/207 +f 452/533/206 460/559/230 453/539/212 +f 462/560/220 454/540/213 463/543/216 +f 431/541/214 445/561/231 426/542/215 +f 468/562/232 471/563/233 470/564/233 +f 470/564/233 473/565/234 472/566/234 +f 472/566/234 467/567/235 466/568/235 +f 479/564/236 476/569/237 478/563/236 +f 481/566/238 478/563/236 480/565/238 +f 475/568/239 480/565/238 474/567/239 +f 495/570/240 497/270/241 493/571/242 +f 487/406/243 492/572/244 493/571/242 +f 494/258/245 491/573/246 485/259/247 +f 20/6/37 19/5/40 18/2/38 +f 19/5/40 22/282/42 21/7/41 +f 22/15/42 24/20/44 23/12/43 +f 24/20/44 26/19/46 25/17/45 +f 26/19/46 28/24/48 27/21/47 +f 28/24/48 30/28/50 29/25/49 +f 30/28/50 32/34/52 31/30/51 +f 32/34/52 20/6/37 17/33/39 +f 34/410/53 33/416/40 4/10/54 +f 35/411/52 34/410/53 2/4/55 +f 36/412/57 35/411/52 16/31/56 +f 37/413/59 36/412/57 14/32/58 +f 38/414/46 37/413/59 12/27/60 +f 39/415/62 38/414/46 10/23/61 +f 40/294/42 39/415/62 8/14/63 +f 33/416/40 40/574/42 6/9/64 +f 42/417/65 41/424/76 1/1/66 +f 43/418/41 42/417/65 3/3/67 +f 44/419/43 43/575/41 5/11/68 +f 45/420/70 44/419/43 7/13/69 +f 46/421/47 45/420/70 9/18/71 +f 47/422/49 46/421/47 11/22/72 +f 48/423/74 47/422/49 13/26/73 +f 41/424/76 48/423/74 15/29/75 +f 208/425/77 230/446/99 232/426/78 +f 211/428/80 240/437/88 236/429/81 +f 212/431/83 205/576/86 244/432/84 +f 205/434/86 206/441/92 242/435/87 +f 211/428/80 212/431/83 238/433/85 +f 224/438/89 221/442/94 226/439/90 +f 206/441/92 207/427/79 232/426/78 +f 224/438/89 223/363/248 222/111/93 +f 226/439/90 225/104/249 228/360/95 +f 210/430/82 236/429/81 234/443/96 +f 231/445/98 232/426/78 230/446/99 +f 234/443/96 236/429/81 235/448/101 +f 234/443/96 233/449/102 229/447/100 +f 239/450/103 240/437/88 238/433/85 +f 236/429/81 240/437/88 239/450/103 +f 242/435/87 232/426/78 231/445/98 +f 244/436/84 242/435/87 241/452/105 +f 244/432/84 243/577/106 237/451/104 +f 209/444/97 234/443/96 230/446/99 +f 246/126/107 248/120/250 247/454/108 +f 247/454/108 248/120/250 250/122/109 +f 249/456/2 250/122/109 252/129/110 +f 252/129/110 254/114/112 253/458/14 +f 254/123/112 256/125/114 255/459/113 +f 256/125/114 258/130/115 257/461/1 +f 258/130/115 260/117/117 259/462/116 +f 260/117/117 246/126/107 245/455/12 +f 262/127/118 278/133/125 277/132/119 +f 269/134/121 285/467/144 287/463/122 +f 268/119/124 284/147/133 278/133/125 +f 267/118/126 266/124/134 282/141/127 +f 265/116/129 264/115/135 280/139/130 +f 261/128/120 277/132/119 279/135/122 +f 267/118/126 283/144/128 284/147/133 +f 265/364/129 281/142/131 282/141/127 +f 263/121/132 279/135/122 280/139/130 +f 275/146/136 291/469/146 292/464/133 +f 273/140/138 289/578/147 290/465/139 +f 271/137/123 287/463/122 288/466/141 +f 270/131/143 286/468/145 285/467/144 +f 276/145/137 292/464/133 286/468/145 +f 274/143/140 290/465/139 291/469/146 +f 272/136/142 288/466/141 289/470/147 +f 326/471/148 296/161/251 298/163/109 +f 298/163/109 300/170/149 328/473/111 +f 300/170/149 302/154/112 329/474/14 +f 302/164/112 304/166/150 330/475/113 +f 304/166/150 306/171/252 331/477/1 +f 331/477/1 306/171/252 308/158/151 +f 310/168/153 318/480/157 317/479/154 +f 316/160/156 324/484/164 318/480/157 +f 315/159/158 314/165/165 322/481/159 +f 312/155/161 320/485/130 321/470/147 +f 309/169/155 317/479/154 319/483/122 +f 315/159/158 323/482/160 324/484/164 +f 313/371/162 321/266/147 322/481/159 +f 312/155/161 311/162/163 319/483/122 +f 332/478/152 325/494/166 293/486/12 +f 331/477/1 332/478/152 307/487/116 +f 330/475/113 331/477/1 305/488/1 +f 329/476/14 330/475/113 303/489/113 +f 328/473/111 329/474/14 301/458/14 +f 327/472/2 328/473/111 299/491/111 +f 326/471/148 327/472/2 297/492/2 +f 325/494/166 326/579/148 295/495/108 +f 349/496/167 355/500/167 352/497/168 +f 391/235/1 345/506/169 353/499/169 +f 353/499/169 356/509/177 386/231/170 +f 355/500/167 358/580/253 357/501/171 +f 344/498/168 345/506/169 347/502/172 +f 349/496/167 351/510/178 350/504/174 +f 352/497/168 353/499/169 345/506/169 +f 354/507/175 355/500/167 349/496/167 +f 359/508/176 358/580/253 355/500/167 +f 353/499/169 352/497/168 357/501/171 +f 351/510/178 349/496/167 344/498/168 +f 380/217/2 379/215/254 359/508/176 +f 382/220/2 380/217/2 354/507/175 +f 377/222/179 382/220/2 348/505/175 +f 391/235/1 385/225/255 347/502/172 +f 411/511/180 415/581/256 414/512/181 +f 412/514/183 413/582/188 409/515/184 +f 408/516/185 416/518/187 417/517/186 +f 410/513/182 414/512/181 417/517/186 +f 423/519/188 419/583/184 418/248/189 +f 424/252/191 422/254/190 418/248/189 +f 437/520/193 428/545/218 427/521/194 +f 430/523/196 439/546/219 446/524/197 +f 441/526/199 455/584/228 456/527/200 +f 427/521/194 444/555/226 449/529/202 +f 441/526/199 436/528/201 435/530/203 +f 435/530/203 448/553/225 447/532/205 +f 452/533/206 451/558/229 458/534/207 +f 429/536/209 451/558/229 452/533/206 +f 440/538/211 433/551/224 453/539/212 +f 429/536/209 432/537/210 431/541/214 +f 453/539/212 460/559/230 463/543/216 +f 437/520/193 457/549/222 450/544/217 +f 430/523/196 433/551/224 440/538/211 +f 456/527/200 455/584/228 462/547/220 +f 457/549/222 464/585/257 459/550/223 +f 428/545/218 429/536/209 426/542/215 +f 433/551/224 430/523/196 431/541/214 +f 441/552/199 438/586/204 439/546/219 +f 434/522/195 435/530/203 436/528/201 +f 434/522/195 449/529/202 448/553/225 +f 439/546/219 438/586/204 447/554/205 +f 426/542/215 445/561/231 444/555/226 +f 431/541/214 430/523/196 443/525/198 +f 452/533/206 453/539/212 433/551/224 +f 441/552/199 440/538/211 454/540/213 +f 457/549/222 437/520/193 436/528/201 +f 428/545/218 450/544/217 451/558/229 +f 465/548/221 464/585/257 457/549/222 +f 451/558/229 450/544/217 459/550/223 +f 452/533/206 461/535/208 460/559/230 +f 462/560/220 455/557/228 454/540/213 +f 431/541/214 442/556/227 445/561/231 +f 468/562/232 469/569/232 471/563/233 +f 470/564/233 471/563/233 473/565/234 +f 472/566/234 473/565/234 467/567/235 +f 479/564/236 477/562/237 476/569/237 +f 481/566/238 479/564/236 478/563/236 +f 475/568/239 481/566/238 480/565/238 +f 493/571/242 492/572/244 495/570/240 +f 491/573/246 495/570/240 492/572/244 +f 497/270/241 490/269/258 493/571/242 +f 487/406/243 489/264/259 492/572/244 +f 494/258/245 495/570/240 491/573/246 +s 0 +f 498/587/260 503/588/260 502/589/260 +f 501/590/27 498/591/27 500/592/27 +f 503/404/1 494/258/1 484/260/1 +f 484/260/1 482/402/1 503/404/1 +f 498/587/260 499/593/260 503/588/260 +f 501/590/27 499/594/27 498/591/27 +l 294 335 +o PumpGrip +v 0.443200 1.647273 -5.814597 +v 0.443200 1.647273 -5.001840 +v -0.443198 1.647273 -5.814597 +v -0.443198 1.647273 -5.001840 +v 0.510669 1.652728 -4.763550 +v -0.510667 1.652728 -4.763550 +v 0.443200 1.647273 -6.244457 +v -0.443198 1.647273 -6.244457 +v 0.443200 1.647274 -7.247699 +v -0.443198 1.647274 -7.247699 +v 0.443200 1.378115 -7.539924 +v -0.443198 1.378115 -7.539924 +v 0.443200 1.079550 -7.539924 +v -0.443198 1.079550 -7.539924 +v 0.248882 0.889651 -5.814597 +v 0.443200 1.060285 -5.814597 +v 0.443200 1.060285 -5.001840 +v 0.248882 0.889651 -5.001840 +v -0.443198 1.060285 -5.814597 +v -0.248880 0.889651 -5.814597 +v -0.248880 0.889651 -5.001840 +v -0.443198 1.060285 -5.001840 +v 0.316350 0.779774 -4.763550 +v 0.510669 0.950408 -4.763550 +v -0.510667 0.950408 -4.763550 +v -0.316348 0.779774 -4.763550 +v 0.248882 0.780984 -6.244457 +v 0.443200 0.951618 -6.244457 +v -0.443198 0.951618 -6.244457 +v -0.248880 0.780984 -6.244457 +v 0.248882 0.780985 -7.247699 +v 0.443200 0.951619 -7.247699 +v -0.443198 0.951619 -7.247699 +v -0.248880 0.780985 -7.247699 +v 0.443200 1.032400 -7.594676 +v 0.248882 0.898080 -7.750655 +v -0.248880 0.898080 -7.750655 +v -0.443198 1.032400 -7.594676 +v 0.182936 1.764759 -2.404954 +v 0.519915 1.764759 -2.404954 +v 0.182936 1.814798 -2.426134 +v 0.519915 1.814798 -2.425681 +v 0.182936 1.764759 -2.446860 +v 0.519915 1.764759 -2.446860 +v 0.194255 1.710889 -2.424850 +v 0.519915 1.712354 -2.426178 +v 0.210307 1.836682 -1.008561 +v 0.210307 1.836682 -2.527064 +v 0.100311 1.850322 -1.008561 +v 0.100311 1.850322 -2.527064 +v 0.274949 1.555488 -1.008561 +v 0.274949 1.555487 -2.527063 +v 0.278441 1.749259 -1.008561 +v 0.278441 1.749258 -2.527064 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.7355 -0.6775 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 0.7578 -0.6525 +vn -0.3600 -0.9255 0.1181 +vn 0.3422 -0.9327 0.1137 +vn 0.3600 -0.9255 0.1181 +vn -0.6688 0.7364 -0.1026 +vn 0.6567 0.5705 0.4932 +vn 0.6688 0.7364 -0.1026 +vn -0.9224 -0.3836 0.0454 +vn -0.7071 0.7071 -0.0000 +vn -0.8977 -0.4369 0.0575 +vn 0.7071 0.7071 -0.0000 +vn 0.9072 -0.3651 -0.2093 +vn 0.9224 -0.3836 0.0454 +vn 0.8977 -0.4369 0.0575 +vn 0.6337 0.7206 -0.2813 +vn 0.3301 -0.9090 -0.2545 +vn -0.3304 -0.8325 0.4446 +vn -0.3301 -0.9090 -0.2545 +vn -0.9072 -0.3651 -0.2093 +vn -0.8988 -0.4352 -0.0526 +vn -0.6567 0.5705 0.4932 +vn 0.7868 -0.4159 0.4559 +vn -0.3422 -0.9327 0.1137 +vn 0.3430 -0.9334 -0.1052 +vn -0.6337 0.7206 -0.2813 +vn 0.8988 -0.4352 -0.0526 +vn 0.8140 0.2421 -0.5280 +vn 0.6269 0.3128 -0.7135 +vn -0.6269 0.3128 -0.7135 +vn -0.8140 0.2421 -0.5280 +vn -0.3430 -0.9334 -0.1052 +vn 0.3219 -0.2640 -0.9092 +vn 0.3304 -0.8325 0.4446 +vn -0.7868 -0.4159 0.4559 +vn -0.7590 0.1068 -0.6423 +vn -0.3219 -0.2640 -0.9092 +vn 0.7589 0.1067 -0.6424 +vn -0.0012 0.3898 0.9209 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 -0.3782 -0.9257 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.3465 0.9381 +vn -0.0000 0.3827 0.9239 +vn 0.0012 0.3898 -0.9209 +vn -0.0021 -0.3671 -0.9302 +vn 0.0055 -0.3754 0.9269 +vn 0.4935 0.8698 -0.0000 +vn 0.1231 0.9924 -0.0000 +vn 0.9998 -0.0180 -0.0000 +vn 0.9486 0.3165 -0.0000 +vt 0.280193 0.278528 +vt 0.202899 0.278528 +vt 0.217391 0.263804 +vt 0.275362 0.595092 +vt 0.207729 0.625767 +vt 0.207729 0.595092 +vt 0.275362 0.650307 +vt 0.207729 0.650307 +vt 0.260870 0.680982 +vt 0.265700 0.263804 +vt 0.280193 0.337423 +vt 0.202899 0.337423 +vt 0.275362 0.625767 +vt 0.222222 0.680982 +vt 0.207729 0.662577 +vt 0.275362 0.662577 +vt 0.125604 0.490798 +vt 0.077295 0.533742 +vt 0.077295 0.490798 +vt 0.207729 0.361963 +vt 0.275362 0.361963 +vt 0.144928 0.490798 +vt 0.202899 0.533742 +vt 0.144928 0.533742 +vt 0.275362 0.460123 +vt 0.207729 0.496933 +vt 0.207729 0.460123 +vt 0.000000 0.490798 +vt 0.057971 0.398773 +vt 0.057971 0.490798 +vt 0.057971 0.533742 +vt -0.000000 0.644172 +vt 0.000000 0.533742 +vt 0.077295 0.398773 +vt 0.125604 0.368098 +vt 0.125604 0.398773 +vt 0.202899 0.398773 +vt 0.144928 0.398773 +vt 0.144928 0.644172 +vt 0.202899 0.368098 +vt 0.000000 0.368098 +vt 0.057971 0.368098 +vt 0.125604 0.533742 +vt 0.077295 0.644172 +vt 0.275362 0.496933 +vt 0.057971 0.644172 +vt 0.048309 0.668712 +vt 0.019324 0.668712 +vt 0.188406 0.668712 +vt 0.154589 0.668712 +vt 0.125604 0.644172 +vt 0.077295 0.680982 +vt 0.077295 0.368098 +vt 0.144928 0.368098 +vt 0.144928 0.680982 +vt 0.125604 0.680982 +vt 0.057971 0.680982 +vt 0.202899 0.490798 +vt 0.000000 0.398773 +vt 0.202899 0.644172 +vt 0.492754 0.754601 +vt 0.478261 0.852761 +vt 0.478261 0.754601 +vt 0.463768 0.852761 +vt 0.463768 0.754601 +vt 0.521739 0.852761 +vt 0.507246 0.754601 +vt 0.521739 0.754601 +vt 0.531401 0.840491 +vt 0.521739 0.840491 +vt 0.526570 0.828221 +vt 0.492754 0.852761 +vt 0.507246 0.852761 +vt 0.526570 0.852761 +vt 0.386473 0.680982 +vt 0.589372 0.644172 +vt 0.589372 0.680982 +vt 0.386473 0.754601 +vt 0.589372 0.717791 +vt 0.589372 0.754601 +vt 0.386473 0.717791 +vt 0.386473 0.644172 +s 0 +f 527/595/261 528/596/261 529/597/261 +f 512/598/262 515/599/262 513/600/262 +f 515/599/263 516/601/263 517/602/263 +f 517/602/264 516/601/264 539/603/264 +f 529/597/261 526/604/261 527/595/261 +f 527/595/261 508/605/261 509/606/261 +f 509/606/261 528/596/261 527/595/261 +f 512/598/262 514/607/262 515/599/262 +f 515/599/263 514/607/263 516/601/263 +f 539/603/264 540/608/264 517/602/264 +f 541/609/264 517/602/264 540/608/264 +f 516/601/264 538/610/264 539/603/264 +s 1 +f 523/611/265 530/612/266 518/613/267 +f 507/614/268 508/605/269 505/615/270 +f 522/616/271 511/617/272 532/618/273 +f 504/619/274 511/620/272 506/621/272 +f 504/622/274 520/623/275 519/624/276 +f 505/615/270 506/621/272 507/614/268 +f 531/625/277 512/626/278 510/627/274 +f 521/628/279 529/629/280 524/630/281 +f 507/631/268 522/616/271 525/632/282 +f 511/617/272 536/633/283 532/618/273 +f 525/632/282 509/634/284 507/631/268 +f 520/623/275 508/635/269 527/636/285 +f 519/624/276 510/627/274 504/622/274 +f 533/637/286 534/638/287 530/612/266 +f 510/639/274 513/600/288 511/620/272 +f 535/640/289 516/641/290 514/642/291 +f 536/633/283 515/643/292 517/644/293 +f 537/645/294 539/646/295 534/638/287 +f 518/613/267 520/623/275 521/628/279 +f 524/630/281 522/616/271 523/611/265 +f 521/628/279 527/636/285 526/647/296 +f 524/630/281 528/648/297 525/632/282 +f 523/611/265 532/618/273 533/637/286 +f 518/613/267 531/625/277 519/624/276 +f 536/633/283 533/637/286 532/618/273 +f 531/625/277 534/638/287 535/640/289 +f 537/645/294 541/649/298 540/650/299 +f 538/651/300 534/638/287 539/646/295 +f 524/630/281 518/613/267 521/628/279 +f 523/611/265 533/637/286 530/612/266 +f 507/614/268 509/606/284 508/605/269 +f 522/616/271 506/652/272 511/617/272 +f 504/619/274 510/639/274 511/620/272 +f 504/622/274 505/653/270 520/623/275 +f 505/615/270 504/619/274 506/621/272 +f 531/625/277 535/640/289 512/626/278 +f 521/628/279 526/647/296 529/629/280 +f 507/631/268 506/652/272 522/616/271 +f 511/617/272 513/654/288 536/633/283 +f 525/632/282 528/648/297 509/634/284 +f 520/623/275 505/653/270 508/635/269 +f 519/624/276 531/625/277 510/627/274 +f 533/637/286 537/645/294 534/638/287 +f 510/639/274 512/598/278 513/600/288 +f 514/642/291 512/626/278 535/640/289 +f 535/640/289 538/651/300 516/641/290 +f 536/633/283 513/654/288 515/643/292 +f 517/644/293 541/649/298 536/633/283 +f 537/645/294 540/650/299 539/646/295 +f 518/613/267 519/624/276 520/623/275 +f 524/630/281 525/632/282 522/616/271 +f 521/628/279 520/623/275 527/636/285 +f 524/630/281 529/629/280 528/648/297 +f 523/611/265 522/616/271 532/618/273 +f 518/613/267 530/612/266 531/625/277 +f 536/633/283 537/645/294 533/637/286 +f 531/625/277 530/612/266 534/638/287 +f 537/645/294 536/633/283 541/649/298 +f 538/651/300 535/640/289 534/638/287 +f 524/630/281 523/611/265 518/613/267 +s 0 +f 542/655/301 545/656/301 544/657/301 +f 544/657/302 547/658/302 546/659/302 +f 547/660/303 548/661/303 546/662/303 +f 543/663/304 547/664/304 545/665/304 +f 548/661/305 543/666/305 542/655/305 +f 542/655/306 543/666/306 545/656/306 +f 544/657/307 545/656/307 547/658/307 +f 547/660/308 549/667/308 548/661/308 +f 543/663/304 549/668/304 547/664/304 +f 548/661/309 549/667/309 543/666/309 +s 1 +f 551/669/310 552/670/311 550/671/310 +f 555/672/312 556/673/313 554/674/312 +f 557/675/313 550/671/310 556/673/313 +f 551/669/310 553/676/311 552/670/311 +f 555/672/312 557/675/313 556/673/313 +f 557/675/313 551/669/310 550/671/310 +o ShellFore +v 0.050831 1.600261 -3.114101 +v 0.035833 1.636467 -3.114101 +v -0.000373 1.651464 -3.114101 +v -0.036579 1.636467 -3.114101 +v -0.051576 1.600261 -3.114101 +v -0.036579 1.564054 -3.114101 +v -0.000373 1.549057 -3.114101 +v 0.035833 1.564054 -3.114101 +v 0.146708 1.600261 -2.873161 +v 0.103629 1.704262 -2.873161 +v -0.000373 1.747342 -2.873161 +v -0.104375 1.704262 -2.873161 +v -0.147454 1.600261 -2.873161 +v -0.104375 1.496259 -2.873161 +v -0.000373 1.453180 -2.873161 +v 0.103629 1.496259 -2.873161 +v 0.103629 1.704262 -3.321586 +v 0.146708 1.600261 -3.321586 +v -0.000373 1.747342 -3.321586 +v -0.104375 1.704262 -3.321586 +v -0.147454 1.600261 -3.321586 +v -0.104375 1.496259 -3.321586 +v -0.000373 1.453180 -3.321586 +v 0.103629 1.496259 -3.321586 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.8497 -0.3519 -0.3926 +vn -0.3520 -0.8497 -0.3926 +vn 0.3520 -0.8497 -0.3926 +vn 0.8497 -0.3520 -0.3926 +vn 0.8497 0.3520 -0.3926 +vn 0.3519 0.8497 -0.3926 +vn -0.3520 0.8497 -0.3926 +vn -0.8497 0.3520 -0.3926 +vn -0.8497 -0.3520 -0.3926 +vn 0.3520 0.8497 -0.3926 +vt 0.043550 0.791975 +vt 0.002178 0.930026 +vt 0.002178 0.791975 +vt 0.333158 0.791975 +vt 0.291785 0.930026 +vt 0.291785 0.791975 +vt 0.250413 0.930026 +vt 0.250413 0.791975 +vt 0.167668 0.791975 +vt 0.126295 0.930026 +vt 0.126295 0.791975 +vt 0.084923 0.791975 +vt 0.084923 0.930026 +vt 0.043550 0.930026 +vt 0.209040 0.930026 +vt 0.209040 0.791975 +vt 0.167668 0.930026 +vt 0.050685 0.998106 +vt 0.166073 0.998106 +vt 0.281460 0.998106 +vt 0.057134 0.998830 +vt 0.116907 0.930226 +vt 0.118548 0.999962 +vt 0.001433 0.999043 +vt 0.060207 0.931062 +vt 0.331484 0.999525 +vt 0.247738 0.930700 +vt 0.333277 0.931090 +vt 0.001218 0.996208 +vt 0.139723 0.930508 +vt 0.137063 0.995766 +vt 0.000345 0.997602 +vt 0.139908 0.933364 +vt 0.136182 0.998674 +vt 0.001907 0.998589 +vt 0.087835 0.929331 +vt 0.090634 0.998073 +vt 0.000235 0.999789 +vt 0.056663 0.931708 +vt 0.053753 0.998957 +vt 0.000699 0.998101 +vt -0.000302 0.930474 +vt 0.333158 0.930026 +vt 0.329256 0.998106 +vt 0.281460 0.998106 +vt 0.002889 0.998106 +vt 0.001473 0.930410 +vt 0.247782 0.999431 +vt 0.003911 0.932253 +vt -0.001634 0.932333 +vt 0.002007 0.930529 +vt -0.000503 0.931244 +s 0 +f 573/677/314 575/678/314 566/679/314 +f 566/680/315 574/681/315 567/682/315 +f 567/682/316 576/683/316 568/684/316 +f 570/685/317 579/686/317 571/687/317 +f 572/688/318 579/686/318 580/689/318 +f 572/688/319 581/690/319 573/677/319 +f 577/691/320 568/684/320 576/683/320 +f 569/692/321 578/693/321 570/685/321 +f 563/694/322 562/695/322 561/696/322 +f 559/697/323 575/698/323 558/699/323 +f 560/700/324 574/701/324 559/697/324 +f 560/702/325 577/703/325 576/704/325 +f 562/705/326 577/706/326 561/707/326 +f 563/708/327 578/709/327 562/710/327 +f 564/711/328 579/712/328 563/713/328 +f 565/714/329 580/715/329 564/716/329 +f 565/717/330 575/698/330 581/718/330 +f 573/677/314 581/690/314 575/678/314 +f 566/680/315 575/719/315 574/681/315 +f 567/682/316 574/681/316 576/683/316 +f 570/685/317 578/693/317 579/686/317 +f 572/688/318 571/687/318 579/686/318 +f 572/688/319 580/689/319 581/690/319 +f 577/691/320 569/692/320 568/684/320 +f 569/692/321 577/691/321 578/693/321 +f 561/696/322 560/720/322 559/721/322 +f 559/721/322 558/695/322 561/696/322 +f 558/695/322 565/694/322 561/696/322 +f 565/694/322 564/722/322 561/696/322 +f 564/722/322 563/694/322 561/696/322 +f 559/697/331 574/701/331 575/698/331 +f 560/700/324 576/723/324 574/701/324 +f 560/702/325 561/724/325 577/703/325 +f 562/705/326 578/725/326 577/706/326 +f 563/708/327 579/726/327 578/709/327 +f 564/711/332 580/727/332 579/712/332 +f 565/714/329 581/728/329 580/715/329 +f 565/717/330 558/699/330 575/698/330 +o Shell +v 0.146708 1.600261 -2.711360 +v 0.103629 1.704262 -2.711360 +v -0.000373 1.747342 -2.711360 +v -0.104375 1.704262 -2.711360 +v -0.147454 1.600261 -2.711360 +v -0.104375 1.496259 -2.711360 +v -0.000373 1.453180 -2.711360 +v 0.103629 1.496259 -2.711360 +v 0.165534 1.600261 -2.711360 +v 0.116941 1.717575 -2.711360 +v -0.000373 1.766168 -2.711360 +v -0.117687 1.717575 -2.711360 +v -0.166280 1.600261 -2.711360 +v -0.117687 1.482947 -2.711360 +v -0.000373 1.434354 -2.711360 +v 0.116941 1.482947 -2.711360 +v 0.165534 1.600261 -2.660172 +v 0.116941 1.717575 -2.660172 +v -0.000373 1.766168 -2.660172 +v -0.117687 1.717575 -2.660172 +v -0.166280 1.600261 -2.660172 +v -0.117687 1.482947 -2.660172 +v -0.000373 1.434354 -2.660172 +v 0.116941 1.482947 -2.660172 +v 0.146708 1.600261 -2.873161 +v 0.103629 1.704262 -2.873161 +v -0.000373 1.747342 -2.873161 +v -0.104375 1.704262 -2.873161 +v -0.147454 1.600261 -2.873161 +v -0.104375 1.496259 -2.873161 +v -0.000373 1.453180 -2.873161 +v 0.103629 1.496259 -2.873161 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vt 0.207020 0.712433 +vt 0.247848 0.790812 +vt 0.207020 0.790812 +vt 0.166191 0.790812 +vt 0.166191 0.712433 +vt 0.125363 0.712433 +vt 0.084534 0.712433 +vt 0.288676 0.712433 +vt 0.329504 0.712433 +vt 0.002878 0.712433 +vt 0.043706 0.712433 +vt 0.247848 0.712433 +vt 0.334095 0.764304 +vt 0.358730 0.803066 +vt 0.477679 0.725541 +vt 0.477679 0.803066 +vt 0.502314 0.764304 +vt 0.358730 0.725541 +vt 0.288676 0.790812 +vt 0.002878 0.790812 +vt 0.043706 0.790812 +vt 0.084534 0.790812 +vt 0.125363 0.790812 +vt 0.418204 0.819122 +vt 0.418204 0.709486 +vt 0.329504 0.790812 +s 0 +f 585/729/333 608/730/333 609/731/333 +f 585/729/334 610/732/334 586/733/334 +f 587/734/335 596/735/335 595/734/335 +f 583/736/335 590/737/335 582/737/335 +f 582/738/335 597/739/335 589/739/335 +f 584/740/335 593/729/335 592/740/335 +f 604/741/336 605/742/336 601/743/336 +f 593/729/333 600/740/333 592/740/333 +f 596/735/337 603/734/337 595/734/337 +f 594/733/334 601/729/334 593/729/334 +f 597/739/338 604/735/338 596/735/338 +f 592/740/339 599/736/339 591/736/339 +f 594/733/340 603/734/340 602/733/340 +f 590/738/341 605/739/341 597/739/341 +f 591/736/342 598/737/342 590/737/342 +f 586/733/335 593/729/335 585/729/335 +f 584/740/335 591/736/335 583/736/335 +f 589/739/335 596/735/335 588/735/335 +f 599/744/336 600/745/336 601/743/336 +f 587/734/335 594/733/335 586/733/335 +f 603/746/336 604/741/336 601/743/336 +f 583/736/339 608/730/339 584/740/339 +f 582/737/342 607/747/342 583/736/342 +f 589/739/341 606/748/341 582/738/341 +f 588/735/338 613/749/338 589/739/338 +f 587/734/337 612/750/337 588/735/337 +f 587/734/340 610/732/340 611/751/340 +f 587/734/335 588/735/335 596/735/335 +f 583/736/335 591/736/335 590/737/335 +f 582/738/335 590/738/335 597/739/335 +f 584/740/335 585/729/335 593/729/335 +f 605/742/336 598/752/336 599/744/336 +f 593/729/333 601/729/333 600/740/333 +f 596/735/337 604/735/337 603/734/337 +f 594/733/334 602/733/334 601/729/334 +f 597/739/338 605/739/338 604/735/338 +f 592/740/339 600/740/339 599/736/339 +f 594/733/340 595/734/340 603/734/340 +f 590/738/341 598/738/341 605/739/341 +f 591/736/342 599/736/342 598/737/342 +f 586/733/335 594/733/335 593/729/335 +f 584/740/335 592/740/335 591/736/335 +f 589/739/335 597/739/335 596/735/335 +f 587/734/335 595/734/335 594/733/335 +f 601/743/336 602/753/336 603/746/336 +f 605/742/336 599/744/336 601/743/336 +f 585/729/333 584/740/333 608/730/333 +f 585/729/334 609/731/334 610/732/334 +f 583/736/339 607/747/339 608/730/339 +f 582/737/342 606/754/342 607/747/342 +f 589/739/341 613/749/341 606/748/341 +f 588/735/338 612/750/338 613/749/338 +f 587/734/337 611/751/337 612/750/337 +f 587/734/340 586/733/340 610/732/340 diff --git a/src/main/resources/assets/hbm/models/weapons/stg77.obj b/src/main/resources/assets/hbm/models/weapons/stg77.obj new file mode 100644 index 000000000..decc89649 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/stg77.obj @@ -0,0 +1,4762 @@ +# Blender v2.79 (sub 0) OBJ File: 'stg77.blend' +# www.blender.org +o Breech +v -0.156250 0.281250 -3.250000 +v -0.343750 -0.031250 -3.250000 +v -0.156250 0.281250 -4.750000 +v -0.343750 -0.031250 -4.750000 +v -0.093750 0.281250 -4.750000 +v -0.281250 -0.031250 -4.750000 +v -0.093750 0.281250 -3.250000 +v -0.281250 -0.031250 -3.250000 +vt 0.196970 0.198795 +vt 0.287879 0.228916 +vt 0.196970 0.228916 +vt 0.193182 0.198795 +vt 0.193182 0.228916 +vt 0.196970 0.198795 +vt 0.196970 0.228916 +vt 0.287879 0.198795 +vt 0.193182 0.228916 +vt 0.193182 0.198795 +vn -0.8575 0.5145 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 4/1/1 1/2/1 3/3/1 +f 3/3/2 6/4/2 4/1/2 +f 1/5/3 8/6/3 7/7/3 +f 4/1/1 2/8/1 1/2/1 +f 3/3/2 5/9/2 6/4/2 +f 1/5/3 2/10/3 8/6/3 +o Barrel +v 0.000000 0.187500 -3.000000 +v 0.000000 0.187500 6.500000 +v 0.093750 0.162380 -3.000000 +v 0.093750 0.162380 6.500000 +v 0.162380 0.093750 -3.000000 +v 0.162380 0.093750 6.500000 +v 0.187500 0.000000 -3.000000 +v 0.187500 -0.000000 6.500000 +v 0.162380 -0.093750 -3.000000 +v 0.162380 -0.093750 6.500000 +v 0.093750 -0.162380 -3.000000 +v 0.093750 -0.162380 6.500000 +v 0.000000 -0.187500 -3.000000 +v 0.000000 -0.187500 6.500000 +v -0.093750 -0.162380 -3.000000 +v -0.093750 -0.162380 6.500000 +v -0.162380 -0.093750 -3.000000 +v -0.162380 -0.093750 6.500000 +v -0.187500 -0.000000 -3.000000 +v -0.187500 -0.000000 6.500000 +v -0.162380 0.093750 -3.000000 +v -0.162380 0.093750 6.500000 +v -0.093750 0.162380 -3.000000 +v -0.093750 0.162380 6.500000 +v 0.000000 0.250000 6.500000 +v -0.125000 0.216506 6.500000 +v -0.216506 0.125000 6.500000 +v -0.250000 -0.000000 6.500000 +v -0.216506 -0.125000 6.500000 +v -0.125000 -0.216506 6.500000 +v 0.000000 -0.250000 6.500000 +v 0.125000 -0.216507 6.500000 +v 0.216506 -0.125000 6.500000 +v 0.250000 -0.000000 6.500000 +v 0.216506 0.125000 6.500000 +v 0.125000 0.216506 6.500000 +v 0.000000 0.250000 6.625000 +v -0.125000 0.216506 6.625000 +v -0.216506 0.125000 6.625000 +v -0.250000 -0.000000 6.625000 +v -0.216506 -0.125000 6.625000 +v -0.125000 -0.216506 6.625000 +v 0.000000 -0.250000 6.625000 +v 0.125000 -0.216507 6.625000 +v 0.216506 -0.125000 6.625000 +v 0.250000 -0.000000 6.625000 +v 0.216506 0.125000 6.625000 +v 0.125000 0.216506 6.625000 +v 0.000000 0.187500 6.625000 +v 0.093750 0.162380 6.625000 +v 0.162380 0.093750 6.625000 +v 0.187500 -0.000000 6.625000 +v 0.162380 -0.093750 6.625000 +v 0.093750 -0.162380 6.625000 +v 0.000000 -0.187500 6.625000 +v -0.093750 -0.162380 6.625000 +v -0.162380 -0.093750 6.625000 +v -0.187500 -0.000000 6.625000 +v -0.162380 0.093750 6.625000 +v -0.093750 0.162380 6.625000 +v 0.000000 0.250000 6.750000 +v -0.125000 0.216506 6.750000 +v -0.216506 0.125000 6.750000 +v -0.250000 -0.000000 6.750000 +v -0.216506 -0.125000 6.750000 +v -0.125000 -0.216506 6.750000 +v 0.000000 -0.250000 6.750000 +v 0.125000 -0.216507 6.750000 +v 0.216506 -0.125000 6.750000 +v 0.250000 -0.000000 6.750000 +v 0.216506 0.125000 6.750000 +v 0.125000 0.216506 6.750000 +v 0.000000 0.250000 7.000000 +v -0.125000 0.216506 7.000000 +v -0.216506 0.125000 7.000000 +v -0.250000 -0.000000 7.000000 +v -0.216506 -0.125000 7.000000 +v -0.125000 -0.216506 7.000000 +v 0.000000 -0.250000 7.000000 +v 0.125000 -0.216507 7.000000 +v 0.216506 -0.125000 7.000000 +v 0.250000 -0.000000 7.000000 +v 0.216506 0.125000 7.000000 +v 0.125000 0.216506 7.000000 +v 0.000000 0.187500 7.125000 +v 0.093750 0.162380 7.125000 +v 0.162380 0.093750 7.125000 +v 0.187500 -0.000000 7.125000 +v 0.162380 -0.093750 7.125000 +v 0.093750 -0.162380 7.125000 +v 0.000000 -0.187500 7.125000 +v -0.093750 -0.162380 7.125000 +v -0.162380 -0.093750 7.125000 +v -0.187500 -0.000000 7.125000 +v -0.162380 0.093750 7.125000 +v -0.093750 0.162380 7.125000 +v 0.000000 0.250000 7.125000 +v -0.125000 0.216506 7.125000 +v -0.216506 0.125000 7.125000 +v -0.250000 -0.000000 7.125000 +v -0.216506 -0.125000 7.125000 +v -0.125000 -0.216506 7.125000 +v 0.000000 -0.250000 7.125000 +v 0.125000 -0.216507 7.125000 +v 0.216506 -0.125000 7.125000 +v 0.250000 -0.000000 7.125000 +v 0.216506 0.125000 7.125000 +v 0.125000 0.216506 7.125000 +v 0.000000 0.250000 7.250000 +v -0.125000 0.216506 7.250000 +v -0.216506 0.125000 7.250000 +v -0.250000 -0.000000 7.250000 +v -0.216506 -0.125000 7.250000 +v -0.125000 -0.216506 7.250000 +v 0.000000 -0.250000 7.250000 +v 0.125000 -0.216507 7.250000 +v 0.216506 -0.125000 7.250000 +v 0.250000 -0.000000 7.250000 +v 0.216506 0.125000 7.250000 +v 0.125000 0.216506 7.250000 +v 0.000000 0.187500 7.875000 +v 0.093750 0.162380 7.875000 +v 0.162380 0.093750 7.875000 +v 0.125000 0.000000 6.750000 +v 0.162380 -0.093750 7.875000 +v 0.093750 -0.162380 7.875000 +v 0.000000 -0.187500 7.875000 +v -0.093750 -0.162380 7.875000 +v -0.162380 -0.093750 7.875000 +v 0.108253 -0.062500 6.750000 +v -0.162380 0.093750 7.875000 +v -0.093750 0.162380 7.875000 +v 0.000000 0.250000 7.875000 +v -0.125000 0.216506 7.875000 +v -0.216506 0.125000 7.875000 +v 0.062500 -0.108253 6.750000 +v -0.216506 -0.125000 7.875000 +v -0.125000 -0.216506 7.875000 +v 0.000000 -0.250000 7.875000 +v 0.125000 -0.216507 7.875000 +v 0.216506 -0.125000 7.875000 +v 0.000000 -0.125000 6.750000 +v 0.216506 0.125000 7.875000 +v 0.125000 0.216506 7.875000 +v 0.000000 0.250000 8.000000 +v -0.125000 0.216506 8.000000 +v -0.216506 0.125000 8.000000 +v -0.062500 -0.108253 6.750000 +v -0.216506 -0.125000 8.000000 +v -0.125000 -0.216506 8.000000 +v 0.000000 -0.250000 8.000000 +v 0.125000 -0.216507 8.000000 +v 0.216506 -0.125000 8.000000 +v -0.108253 -0.062500 6.750000 +v 0.216506 0.125000 8.000000 +v 0.125000 0.216506 8.000000 +v 0.000000 0.125000 7.875000 +v -0.062500 0.108253 7.875000 +v -0.108253 0.062500 7.875000 +v -0.125000 0.000000 6.750000 +v -0.108253 -0.062500 7.875000 +v -0.062500 -0.108254 7.875000 +v 0.000000 -0.125000 7.875000 +v 0.062500 -0.108254 7.875000 +v 0.108253 -0.062500 7.875000 +v -0.108253 0.062500 6.750000 +v 0.108253 0.062500 7.875000 +v 0.062500 0.108253 7.875000 +v 0.000000 0.125000 7.250000 +v -0.062500 0.108253 7.250000 +v -0.108253 0.062500 7.250000 +v -0.125000 -0.000000 7.250000 +v -0.108253 -0.062500 7.250000 +v -0.062500 -0.108254 7.250000 +v 0.000000 -0.125000 7.250000 +v 0.062500 -0.108254 7.250000 +v 0.108253 -0.062500 7.250000 +v 0.125000 -0.000000 7.250000 +v 0.108253 0.062500 7.250000 +v 0.062500 0.108253 7.250000 +v 0.000000 0.187500 8.000000 +v 0.093750 0.162380 8.000000 +v 0.162380 0.093750 8.000000 +v 0.000000 0.125000 6.750000 +v 0.162380 -0.093750 8.000000 +v 0.093750 -0.162380 8.000000 +v 0.000000 -0.187500 8.000000 +v -0.093750 -0.162380 8.000000 +v -0.162380 -0.093750 8.000000 +v -0.062500 0.108253 6.750000 +v -0.162380 0.093750 8.000000 +v -0.093750 0.162380 8.000000 +v 0.108253 0.062500 6.750000 +v 0.062500 0.108253 6.750000 +v 0.000000 0.250000 2.812500 +v -0.125000 0.216506 2.812500 +v -0.216506 0.125000 2.812500 +v -0.250000 -0.000000 2.812500 +v -0.216506 -0.125000 2.812500 +v -0.125000 -0.216506 2.812500 +v 0.000000 -0.250000 2.812500 +v 0.125000 -0.216507 2.812500 +v 0.216506 -0.125000 2.812500 +v 0.250000 -0.000000 2.812500 +v 0.216506 0.125000 2.812500 +v 0.125000 0.216506 2.812500 +v 0.000000 0.250000 3.750000 +v -0.125000 0.216506 3.750000 +v -0.216506 0.125000 3.750000 +v -0.250000 -0.000000 3.750000 +v -0.216506 -0.125000 3.750000 +v -0.125000 -0.216506 3.750000 +v 0.000000 -0.250000 3.750000 +v 0.125000 -0.216507 3.750000 +v 0.216506 -0.125000 3.750000 +v 0.250000 -0.000000 3.750000 +v 0.216506 0.125000 3.750000 +v 0.125000 0.216506 3.750000 +v 0.125000 0.312500 2.750000 +v -0.125000 0.312500 2.750000 +v 0.500000 -0.187500 2.750000 +v -0.500000 -0.187500 2.750000 +v 0.500000 -0.437500 2.750000 +v -0.500000 -0.437500 2.750000 +v 0.250000 -0.687500 2.750000 +v -0.250000 -0.687500 2.750000 +v -0.125000 0.312500 2.875000 +v 0.125000 0.312500 2.875000 +v 0.500000 -0.437500 2.875000 +v 0.500000 -0.187500 2.875000 +v -0.500000 -0.187500 2.875000 +v -0.500000 -0.437500 2.875000 +v 0.250000 -0.687500 2.875000 +v -0.250000 -0.687500 2.875000 +v -0.187500 -0.125000 3.250000 +v -0.125000 -0.125000 3.250000 +v -0.187500 -0.125000 2.875000 +v -0.125000 -0.125000 2.875000 +v -0.187500 -0.687500 2.875000 +v -0.187500 -0.687500 3.125000 +v -0.125000 -0.687500 3.125000 +v -0.125000 -0.687500 2.875000 +v 0.000000 -0.750000 2.937500 +v 0.000000 -0.500000 2.937500 +v 0.088388 -0.750000 2.974112 +v 0.088388 -0.500000 2.974112 +v 0.125000 -0.750000 3.062500 +v 0.125000 -0.500000 3.062500 +v 0.088388 -0.750000 3.150888 +v 0.088388 -0.500000 3.150888 +v 0.000000 -0.750000 3.187500 +v 0.000000 -0.500000 3.187500 +v -0.088388 -0.750000 3.150888 +v -0.088388 -0.500000 3.150888 +v -0.125000 -0.750000 3.062500 +v -0.125000 -0.500000 3.062500 +v -0.088388 -0.750000 2.974112 +v -0.088388 -0.500000 2.974112 +v 0.125000 -0.125000 3.250000 +v 0.187500 -0.125000 3.250000 +v 0.125000 -0.125000 2.875000 +v 0.187500 -0.125000 2.875000 +v 0.125000 -0.687500 2.875000 +v 0.125000 -0.687500 3.125000 +v 0.187500 -0.687500 3.125000 +v 0.187500 -0.687500 2.875000 +v -0.125000 -0.437500 3.125000 +v -0.125000 -0.437500 2.875000 +v 0.125000 -0.437500 2.875000 +v 0.125000 -0.437500 3.125000 +v -0.125000 -0.187500 3.125000 +v 0.125000 -0.187500 3.125000 +v -0.125000 -0.750000 3.250000 +v 0.125000 -0.750000 3.250000 +v -0.125000 -0.750000 2.625000 +v 0.125000 -0.750000 2.625000 +v -0.125000 -1.250000 2.750000 +v -0.125000 -1.250000 3.250000 +v 0.125000 -1.250000 3.250000 +v 0.125000 -1.250000 2.750000 +v -0.125000 -1.625000 2.750000 +v -0.125000 -1.500000 3.312500 +v 0.125000 -1.500000 3.312500 +v 0.125000 -1.625000 2.750000 +v -0.125000 -2.750000 3.375000 +v 0.125000 -2.750000 3.375000 +v -0.125000 -2.750000 2.750000 +v 0.125000 -2.750000 2.750000 +v -0.125000 -2.125000 2.625000 +v -0.125000 -2.125000 3.312500 +v 0.125000 -2.125000 3.312500 +v 0.125000 -2.125000 2.625000 +v -0.125000 -2.625000 2.625000 +v -0.125000 -2.500000 3.250000 +v 0.125000 -2.500000 3.250000 +v 0.125000 -2.625000 2.625000 +v 0.250000 -0.750000 3.125000 +v 0.250000 -0.750000 2.750000 +v 0.250000 -1.250000 3.125000 +v 0.250000 -1.250000 2.875000 +v 0.250000 -1.500000 3.187500 +v 0.250000 -1.625000 2.875000 +v 0.250000 -2.750000 3.250000 +v 0.250000 -2.750000 2.875000 +v 0.250000 -2.125000 3.187500 +v 0.250000 -2.125000 2.750000 +v 0.250000 -2.500000 3.125000 +v 0.250000 -2.625000 2.750000 +v -0.250000 -0.750000 2.750000 +v -0.250000 -0.750000 3.125000 +v -0.250000 -1.250000 2.875000 +v -0.250000 -1.250000 3.125000 +v -0.250000 -1.625000 2.875000 +v -0.250000 -1.500000 3.187500 +v -0.250000 -2.750000 2.875000 +v -0.250000 -2.750000 3.250000 +v -0.250000 -2.125000 2.750000 +v -0.250000 -2.125000 3.187500 +v -0.250000 -2.625000 2.750000 +v -0.250000 -2.500000 3.125000 +v 0.000000 0.125000 -3.000000 +v -0.062500 0.108253 -3.000000 +v -0.108253 0.062500 -3.000000 +v -0.125000 -0.000000 -3.000000 +v -0.108253 -0.062500 -3.000000 +v -0.062500 -0.108253 -3.000000 +v 0.000000 -0.125000 -3.000000 +v 0.062500 -0.108253 -3.000000 +v 0.108253 -0.062500 -3.000000 +v 0.125000 -0.000000 -3.000000 +v 0.108253 0.062500 -3.000000 +v 0.062500 0.108253 -3.000000 +v 0.000000 0.125000 -2.000000 +v -0.062500 0.108253 -2.000000 +v -0.108253 0.062500 -2.000000 +v -0.125000 -0.000000 -2.000000 +v -0.108253 -0.062500 -2.000000 +v -0.062500 -0.108253 -2.000000 +v 0.000000 -0.125000 -2.000000 +v 0.062500 -0.108253 -2.000000 +v 0.108253 -0.062500 -2.000000 +v 0.125000 -0.000000 -2.000000 +v 0.108253 0.062500 -2.000000 +v 0.062500 0.108253 -2.000000 +v -0.250000 -0.062500 3.875000 +v -0.156250 -0.087620 3.875000 +v -0.087620 -0.156250 3.875000 +v -0.062500 -0.250000 3.875000 +v -0.087620 -0.343750 3.875000 +v -0.156250 -0.412380 3.875000 +v -0.250000 -0.437500 3.875000 +v -0.343750 -0.412380 3.875000 +v -0.412380 -0.343750 3.875000 +v -0.437500 -0.250000 3.875000 +v -0.412380 -0.156250 3.875000 +v -0.343750 -0.087620 3.875000 +v -0.250000 -0.062500 2.875000 +v -0.156250 -0.087620 2.875000 +v -0.087620 -0.156250 2.875000 +v -0.062500 -0.250000 2.875000 +v -0.087620 -0.343750 2.875000 +v -0.156250 -0.412380 2.875000 +v -0.250000 -0.437500 2.875000 +v -0.343750 -0.412380 2.875000 +v -0.412380 -0.343750 2.875000 +v -0.437500 -0.250000 2.875000 +v -0.412380 -0.156250 2.875000 +v -0.343750 -0.087620 2.875000 +v -0.437500 -0.281250 3.875000 +v -0.312500 -0.281250 3.875000 +v -0.437500 -0.218750 3.875000 +v -0.312500 -0.218750 3.875000 +v -0.437500 -0.218750 3.937500 +v -0.437500 -0.281250 3.937500 +v -0.312500 -0.281250 4.000000 +v -0.312500 -0.218750 4.000000 +v -0.187500 -0.281250 3.875000 +v -0.062500 -0.281250 3.875000 +v -0.187500 -0.218750 3.875000 +v -0.062500 -0.218750 3.875000 +v -0.187500 -0.218750 4.000000 +v -0.187500 -0.281250 4.000000 +v -0.062500 -0.281250 3.937500 +v -0.062500 -0.218750 3.937500 +vt 0.696970 0.132530 +vt 0.693182 0.144578 +vt 0.693182 0.132530 +vt 0.117424 0.048193 +vt 0.113636 0.060241 +vt 0.113636 0.048193 +vt 0.117424 0.060241 +vt 0.113636 0.072289 +vt 0.117424 0.084337 +vt 0.117424 0.072289 +vt 0.117424 0.096386 +vt 0.113636 0.084337 +vt 0.117424 0.108434 +vt 0.113636 0.096386 +vt 0.113636 0.120482 +vt 0.113636 0.108434 +vt 0.117424 0.120482 +vt 0.113636 0.132530 +vt 0.117424 0.144578 +vt 0.117424 0.132530 +vt 0.117424 0.012048 +vt 0.113636 -0.000000 +vt 0.117424 0.000000 +vt 0.113636 0.024096 +vt 0.113636 0.012048 +vt 0.117424 0.024096 +vt 0.113636 0.036145 +vt 0.117424 0.036145 +vt 0.106061 0.072289 +vt 0.102273 0.060241 +vt 0.106061 0.060241 +vt 0.102273 0.048193 +vt 0.106061 0.048193 +vt 0.102273 0.036145 +vt 0.106061 0.036145 +vt 0.102273 0.024096 +vt 0.106061 0.024096 +vt 0.102273 0.012048 +vt 0.106061 0.012048 +vt 0.106061 -0.000000 +vt 0.102273 0.144578 +vt 0.106061 0.132530 +vt 0.106061 0.144578 +vt 0.102273 0.120482 +vt 0.106061 0.120482 +vt 0.102273 0.108434 +vt 0.106061 0.108434 +vt 0.106061 0.096386 +vt 0.102273 0.096386 +vt 0.106061 0.084337 +vt 0.102273 0.084337 +vt 0.071970 0.048193 +vt 0.068182 0.060241 +vt 0.068182 0.048193 +vt 0.071970 0.060241 +vt 0.068182 0.072289 +vt 0.071970 0.084337 +vt 0.071970 0.072289 +vt 0.071970 0.096386 +vt 0.068182 0.084337 +vt 0.071970 0.108434 +vt 0.068182 0.096386 +vt 0.068182 0.120482 +vt 0.068182 0.108434 +vt 0.071970 0.120482 +vt 0.068182 0.132530 +vt 0.071970 0.144578 +vt 0.071970 0.132530 +vt 0.071970 0.012048 +vt 0.068182 -0.000000 +vt 0.071970 -0.000000 +vt 0.068182 0.024096 +vt 0.068182 0.012048 +vt 0.071970 0.024096 +vt 0.068182 0.036145 +vt 0.071970 0.036145 +vt 0.022727 0.048193 +vt 0.018939 0.060241 +vt 0.018939 0.048193 +vt 0.022727 0.060241 +vt 0.018939 0.072289 +vt 0.022727 0.084337 +vt 0.022727 0.072289 +vt 0.022727 0.096386 +vt 0.018939 0.084337 +vt 0.022727 0.120482 +vt 0.018939 0.132530 +vt 0.018939 0.120482 +vt 0.022727 0.144578 +vt 0.022727 0.132530 +vt 0.022727 0.012048 +vt 0.018939 -0.000000 +vt 0.022727 -0.000000 +vt 0.018939 0.024096 +vt 0.018939 0.012048 +vt 0.105008 0.234905 +vt 0.098485 0.240894 +vt 0.091962 0.222926 +vt 0.060606 0.024096 +vt 0.053030 0.036145 +vt 0.053030 0.030120 +vt 0.060606 0.048193 +vt 0.060606 0.036145 +vt 0.060606 0.120482 +vt 0.053030 0.108434 +vt 0.060606 0.108434 +vt 0.060606 0.096386 +vt 0.053030 0.102410 +vt 0.045455 0.204819 +vt 0.007576 0.198795 +vt 0.045455 0.192771 +vt 0.007576 0.186747 +vt 0.045455 0.180723 +vt 0.045455 0.192771 +vt 0.007576 0.150602 +vt 0.045455 0.156627 +vt 0.007576 0.156627 +vt 0.007576 0.234940 +vt 0.045455 0.228916 +vt 0.045455 0.240964 +vt 0.011364 0.072289 +vt 0.007576 0.060241 +vt 0.011364 0.060241 +vt 0.007576 0.048193 +vt 0.011364 0.048193 +vt 0.000000 0.234940 +vt 0.007576 0.240964 +vt 0.007576 0.192771 +vt 0.000000 0.198795 +vt 0.011364 0.024096 +vt 0.007576 0.012048 +vt 0.011364 0.012048 +vt 0.011364 -0.000000 +vt 0.007576 0.144578 +vt 0.011364 0.132530 +vt 0.011364 0.144578 +vt 0.007576 0.120482 +vt 0.011364 0.120482 +vt 0.000000 0.186747 +vt 0.007576 0.180723 +vt 0.007576 0.144578 +vt 0.000000 0.150602 +vt 0.007576 0.096386 +vt 0.011364 0.084337 +vt 0.011364 0.096386 +vt 0.007576 0.084337 +vt 0.992424 0.487952 +vt 0.931818 0.463855 +vt 0.992424 0.463855 +vt 0.969697 0.536145 +vt 0.931818 0.487952 +vt 0.931818 0.656627 +vt 0.924242 0.632530 +vt 0.931818 0.632530 +vt 0.946970 0.439759 +vt 0.924242 0.439759 +vt 0.931818 0.439759 +vt 0.931818 0.548193 +vt 0.924242 0.487952 +vt 0.863636 0.463855 +vt 0.909091 0.439759 +vt 0.924242 0.463855 +vt 0.886364 0.536145 +vt 0.863636 0.487952 +vt 0.931818 0.572289 +vt 0.924242 0.548193 +vt 0.924242 0.391566 +vt 0.931818 0.391566 +vt 0.924242 0.572289 +vt 0.931818 0.680723 +vt 0.924242 0.656627 +vt 0.071970 0.759009 +vt 0.085106 0.771071 +vt 0.071970 0.807256 +vt 0.196970 0.813253 +vt 0.181818 0.819277 +vt 0.181818 0.813253 +vt 0.147727 0.813253 +vt 0.147727 0.819277 +vt 0.196970 0.873494 +vt 0.196970 0.819277 +vt 0.196970 0.759036 +vt 0.174242 0.759036 +vt 0.212180 0.795180 +vt 0.219696 0.783226 +vt 0.227213 0.795180 +vt 0.196970 0.813253 +vt 0.181818 0.819277 +vt 0.181818 0.813253 +vt 0.147727 0.813253 +vt 0.147727 0.819277 +vt 0.196970 0.873494 +vt 0.196970 0.819277 +vt 0.196970 0.759036 +vt 0.174242 0.759036 +vt 0.212121 0.759036 +vt 0.196970 0.783133 +vt 0.196970 0.759036 +vt 0.212121 0.783133 +vt 0.196970 0.807229 +vt 0.594697 0.951807 +vt 0.602273 0.963855 +vt 0.594697 1.000000 +vt 0.564394 0.759036 +vt 0.556818 0.746988 +vt 0.564394 0.710843 +vt 0.693182 0.120482 +vt 0.696970 0.126506 +vt 0.696970 0.108434 +vt 0.693182 0.108434 +vt 0.693182 0.096386 +vt 0.696970 0.102410 +vt 0.696970 0.084337 +vt 0.693182 0.084337 +vt 0.693182 0.072289 +vt 0.696970 0.078313 +vt 0.696970 0.060241 +vt 0.693182 0.060241 +vt 0.693182 0.048193 +vt 0.696970 0.054217 +vt 0.696970 0.036145 +vt 0.693182 0.036145 +vt 0.693182 0.024096 +vt 0.696970 0.030120 +vt 0.696970 0.012048 +vt 0.693182 0.012048 +vt 0.693182 -0.000000 +vt 0.696970 0.006024 +vt 0.089865 0.222918 +vt 0.089865 0.234913 +vt 0.076801 0.234913 +vt 0.065955 0.834302 +vt 0.075758 0.807301 +vt 0.085560 0.834302 +vt 0.087121 0.867470 +vt 0.083333 0.855422 +vt 0.087121 0.855422 +vt 0.071970 0.849398 +vt 0.064394 0.855422 +vt 0.064394 0.849398 +vt 0.087121 0.849398 +vt 0.083333 0.849398 +vt 0.075758 0.849398 +vt 0.071970 0.861446 +vt 0.075758 0.861446 +vt 0.083333 0.855422 +vt 0.087121 0.867470 +vt 0.083333 0.867470 +vt 0.075758 0.849398 +vt 0.075758 0.861446 +vt 0.071970 0.861446 +vt 0.071970 0.849398 +vt 0.087121 0.849398 +vt 0.083333 0.849398 +vt 0.064394 0.855422 +vt 0.064394 0.849398 +vt 0.071970 0.843373 +vt 0.064394 0.843373 +vt 0.071970 0.843373 +vt 0.696970 0.138554 +vt 0.113636 0.144578 +vt 0.102273 0.072289 +vt 0.102273 0.000000 +vt 0.102273 0.132530 +vt 0.068182 0.144578 +vt 0.018939 0.096386 +vt 0.018939 0.144578 +vt 0.022727 0.024096 +vt 0.094719 0.239289 +vt 0.091962 0.234905 +vt 0.090953 0.228916 +vt 0.094719 0.218542 +vt 0.098485 0.216937 +vt 0.102251 0.218542 +vt 0.105008 0.222926 +vt 0.106017 0.228916 +vt 0.102251 0.239289 +vt 0.053030 0.042169 +vt 0.053030 0.114458 +vt 0.007576 0.204819 +vt 0.045455 0.144578 +vt 0.007576 0.228916 +vt 0.007576 0.072289 +vt 0.000000 0.240964 +vt 0.000000 0.192771 +vt 0.007576 0.024096 +vt 0.007576 -0.000000 +vt 0.007576 0.132530 +vt 0.007576 0.192771 +vt 0.000000 0.192771 +vt 0.000000 0.144578 +vt 0.954545 0.536145 +vt 0.977273 0.439759 +vt 0.878788 0.439759 +vt 0.901515 0.536145 +vt 0.924242 0.680723 +vt 0.064385 0.804024 +vt 0.058833 0.771071 +vt 0.058833 0.795195 +vt 0.056801 0.783133 +vt 0.064385 0.762241 +vt 0.079554 0.762241 +vt 0.087138 0.783133 +vt 0.085106 0.795195 +vt 0.079554 0.804025 +vt 0.174242 0.873494 +vt 0.225011 0.803633 +vt 0.219696 0.807134 +vt 0.214381 0.803633 +vt 0.214381 0.786728 +vt 0.225011 0.786728 +vt 0.174242 0.873494 +vt 0.212121 0.807229 +vt 0.602273 0.987952 +vt 0.571970 1.000000 +vt 0.571970 0.951807 +vt 0.564394 0.987952 +vt 0.564394 0.963855 +vt 0.556818 0.722892 +vt 0.587121 0.710843 +vt 0.587121 0.759036 +vt 0.594697 0.722892 +vt 0.594697 0.746988 +vt 0.696970 0.120482 +vt 0.696970 0.114458 +vt 0.696970 0.096386 +vt 0.696970 0.090361 +vt 0.696970 0.072289 +vt 0.696970 0.066265 +vt 0.696970 0.048193 +vt 0.696970 0.042169 +vt 0.696970 0.024096 +vt 0.696970 0.018072 +vt 0.696970 -0.000000 +vt 0.087105 0.239304 +vt 0.083333 0.240911 +vt 0.079562 0.239304 +vt 0.075791 0.228916 +vt 0.076801 0.222918 +vt 0.079562 0.218527 +vt 0.083333 0.216920 +vt 0.087105 0.218527 +vt 0.090876 0.228916 +vt 0.081417 0.840890 +vt 0.075758 0.843302 +vt 0.070098 0.840890 +vt 0.064439 0.825301 +vt 0.065955 0.816301 +vt 0.070098 0.809712 +vt 0.081417 0.809712 +vt 0.085560 0.816301 +vt 0.087076 0.825301 +vt 0.083333 0.867470 +vt 0.087121 0.855422 +vt 0.064394 0.843373 +vt 0.094697 0.060241 +vt 0.094697 0.048193 +vt 0.094697 0.084337 +vt 0.094697 0.072289 +vt 0.094697 0.096386 +vt 0.094697 0.120482 +vt 0.094697 0.108434 +vt 0.094697 0.144578 +vt 0.094697 0.132530 +vt 0.094697 -0.000000 +vt 0.094697 0.024096 +vt 0.094697 0.012048 +vt 0.094697 0.036145 +vt 0.079545 0.096386 +vt 0.079545 0.036145 +vt 0.079545 -0.000000 +vt 0.079545 0.108434 +vt 0.079545 0.048193 +vt 0.079545 0.072289 +vt 0.079545 0.012048 +vt 0.079545 0.120482 +vt 0.079545 0.060241 +vt 0.079545 0.084337 +vt 0.079545 0.024096 +vt 0.079545 0.132530 +vt 0.060606 -0.000000 +vt 0.060606 0.072289 +vt 0.060606 0.012048 +vt 0.060606 0.060241 +vt 0.060606 0.084337 +vt 0.060606 0.132530 +vt 0.045455 0.174699 +vt 0.075758 0.168675 +vt 0.075758 0.174699 +vt 0.045455 0.150602 +vt 0.075758 0.156627 +vt 0.060606 0.144578 +vt 0.045455 0.210843 +vt 0.075758 0.204819 +vt 0.075758 0.210843 +vt 0.045455 0.216867 +vt 0.075758 0.222892 +vt 0.045455 0.222892 +vt 0.079545 0.144578 +vt 0.075758 0.180723 +vt 0.075758 0.162651 +vt 0.045455 0.162651 +vt 0.075758 0.216867 +vt 0.075758 0.228916 +vt 0.075758 0.186747 +vt 0.045455 0.186747 +vt 0.045455 0.168675 +vt 0.075758 0.234940 +vt 0.045455 0.234940 +vt 0.007576 0.174699 +vt 0.007576 0.216867 +vt 0.007576 0.222892 +vt 0.007576 0.210843 +vt 0.007576 0.168675 +vt 0.007576 0.162651 +vt 0.045455 0.198795 +vt -0.000000 0.060241 +vt -0.000000 0.066265 +vt 0.000000 0.054217 +vt 0.000000 0.012048 +vt 0.000000 0.018072 +vt 0.000000 0.132530 +vt 0.000000 0.138554 +vt 0.000000 0.084337 +vt -0.000000 0.090361 +vt 0.056818 0.795181 +vt -0.000000 0.783133 +vt 0.056818 0.783133 +vt 0.056818 0.903614 +vt -0.000000 0.891566 +vt 0.056818 0.891566 +vt 0.056818 0.867470 +vt -0.000000 0.855422 +vt 0.056818 0.855422 +vt 0.056818 0.807229 +vt -0.000000 0.795181 +vt 0.056818 0.771084 +vt -0.000000 0.759036 +vt 0.056818 0.759036 +vt 0.056818 0.879518 +vt -0.000000 0.867470 +vt 0.056818 0.819277 +vt -0.000000 0.807229 +vt 0.056818 0.843373 +vt -0.000000 0.831325 +vt 0.056818 0.831325 +vt -0.000000 0.771084 +vt -0.000000 0.879518 +vt -0.000000 0.819277 +vt -0.000000 0.843373 +vt 0.272727 0.783133 +vt 0.265152 0.759036 +vt 0.272727 0.759036 +vt 0.265152 0.783133 +vt 0.257576 0.759036 +vt 0.257576 0.783133 +vt 0.250000 0.759036 +vt 0.250000 0.783133 +vt 0.242424 0.759036 +vt 0.242424 0.783133 +vt 0.234848 0.759036 +vt 0.234848 0.783133 +vt 0.227273 0.759036 +vt 0.227273 0.783133 +vt 0.219697 0.759036 +vt 0.219697 0.783133 +vt 0.212121 0.759036 +vt 0.602273 0.903614 +vt 0.617424 0.867470 +vt 0.617424 0.903614 +vt 0.602273 0.951807 +vt 0.617424 0.951807 +vt 0.541667 0.951807 +vt 0.556818 0.903614 +vt 0.556818 0.951807 +vt 0.560606 0.879518 +vt 0.568182 0.819277 +vt 0.560606 0.819277 +vt 0.564394 0.783133 +vt 0.568182 0.819277 +vt 0.560606 0.819277 +vt 0.541667 0.903614 +vt 0.556818 0.879518 +vt 0.594697 0.903614 +vt 0.587121 0.903614 +vt 0.594697 0.759036 +vt 0.594697 0.771084 +vt 0.602273 0.771084 +vt 0.602273 0.819277 +vt 0.617424 0.771084 +vt 0.617424 0.819277 +vt 0.594697 0.867470 +vt 0.587121 0.903614 +vt 0.594697 0.903614 +vt 0.602273 0.867470 +vt 0.541667 0.879518 +vt 0.556818 0.819277 +vt 0.602273 0.759036 +vt 0.617424 0.759036 +vt 0.541667 0.819277 +vt 0.556818 0.783133 +vt 0.568182 0.879518 +vt 0.560606 0.879518 +vt 0.541667 0.759036 +vt 0.556818 0.759036 +vt 0.564394 0.951807 +vt 0.571970 0.903614 +vt 0.564394 0.903614 +vt 0.564394 0.903614 +vt 0.564394 0.951807 +vt 0.587121 0.867470 +vt 0.594697 0.819277 +vt 0.571970 0.783133 +vt 0.594697 0.771084 +vt 0.594697 0.867470 +vt 0.602273 0.771084 +vt 0.571970 0.903614 +vt 0.595599 0.759478 +vt 0.571970 0.951807 +vt 0.568182 0.879518 +vt 0.587121 0.867470 +vt 0.594697 0.819277 +vt 0.571970 0.783133 +vt 0.587121 0.759036 +vt 0.564394 0.759036 +vt 0.564394 0.783133 +vt 0.556818 0.759036 +vt 0.594697 0.951807 +vt 0.602273 0.951807 +vt 0.602273 0.819277 +vt 0.136364 0.174699 +vt 0.075758 0.168675 +vt 0.136364 0.168675 +vt 0.136364 0.204819 +vt 0.075758 0.198795 +vt 0.136364 0.198795 +vt 0.136364 0.150602 +vt 0.075758 0.144578 +vt 0.136364 0.144578 +vt 0.075758 0.162651 +vt 0.136364 0.162651 +vt 0.075758 0.192771 +vt 0.136364 0.192771 +vt 0.136364 0.216867 +vt 0.075758 0.210843 +vt 0.136364 0.210843 +vt 0.075758 0.156627 +vt 0.136364 0.156627 +vt 0.075758 0.186747 +vt 0.136364 0.186747 +vt 0.136364 0.180723 +vt 0.075758 0.174699 +vt 0.075758 0.204819 +vt 0.075758 0.150602 +vt 0.075758 0.180723 +vt 0.087121 0.783133 +vt 0.147727 0.795181 +vt 0.087121 0.795181 +vt 0.087121 0.843373 +vt 0.147727 0.855422 +vt 0.087121 0.855422 +vt 0.087121 0.819277 +vt 0.147727 0.831325 +vt 0.087121 0.831325 +vt 0.087121 0.879518 +vt 0.147727 0.891566 +vt 0.087121 0.891566 +vt 0.087121 0.771084 +vt 0.147727 0.783133 +vt 0.147727 0.843373 +vt 0.087121 0.807229 +vt 0.147727 0.819277 +vt 0.087121 0.867470 +vt 0.147727 0.879518 +vt 0.087121 0.759036 +vt 0.147727 0.771084 +vt 0.147727 0.807229 +vt 0.147727 0.867470 +vt 0.147727 0.903614 +vt 0.087121 0.903614 +vt 0.075758 0.150602 +vt 0.075758 0.198795 +vt 0.000000 0.006024 +vt -0.000000 0.126506 +vt -0.000000 0.078313 +vt -0.000000 0.903614 +vt 0.212121 0.783133 +vt 0.541667 0.783133 +vt 0.075758 0.216867 +vt 0.147727 0.759036 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.5000 -0.8660 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.8000 0.6000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.8000 0.6000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.2169 0.9762 +vn -0.4472 0.0000 0.8944 +vn 0.4472 0.0000 0.8944 +vn 0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.7746 0.4472 -0.4472 +vn 0.4472 0.7746 -0.4472 +vn 0.0000 0.8944 -0.4472 +vn -0.4472 0.7746 -0.4472 +vn -0.7746 0.4472 -0.4472 +vn -0.8944 -0.0000 -0.4472 +vn -0.7746 -0.4472 -0.4472 +vn -0.4472 -0.7746 -0.4472 +vn -0.0000 -0.8944 -0.4472 +vn 0.4472 -0.7746 -0.4472 +vn 0.7746 -0.4472 -0.4472 +vn 0.8944 0.0000 -0.4472 +vn -0.0000 -0.9988 0.0494 +vn 0.8184 0.5737 0.0327 +vn 0.0000 0.9988 0.0494 +vn 0.4994 -0.8650 0.0494 +vn -0.8184 -0.5737 0.0327 +vn 0.4994 0.8650 0.0494 +vn -0.4994 0.8650 0.0494 +vn 0.8184 -0.5737 0.0327 +vn -0.4994 -0.8650 0.0494 +vn -0.8184 0.5737 0.0327 +vn -0.0000 0.9950 0.0995 +vn 0.4975 0.8617 0.0995 +vn -0.8181 0.5751 0.0000 +vn 0.4975 -0.8617 0.0995 +vn -0.4975 -0.8617 0.0995 +vn -0.7038 0.7038 0.0961 +vn 0.4472 0.7746 0.4472 +vn 0.7746 0.4472 0.4472 +vn 0.0000 0.8944 0.4472 +vn -0.4472 0.7746 0.4472 +vn -0.7746 0.4472 0.4472 +vn -0.8944 0.0000 0.4472 +vn -0.7746 -0.4472 0.4472 +vn -0.4472 -0.7746 0.4472 +vn -0.0000 -0.8944 0.4472 +vn 0.4472 -0.7746 0.4472 +vn 0.7746 -0.4472 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.8181 0.5751 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.8181 -0.5751 -0.0000 +vn 0.8181 -0.5751 -0.0000 +vn -0.6367 -0.6367 0.4349 +vn -0.6367 0.6367 0.4349 +vn 0.6367 0.6367 0.4349 +vn 0.6367 -0.6367 0.4349 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.3916 -0.1153 -0.9129 +vn -0.3916 0.1153 -0.9129 +vn -0.3916 -0.1153 -0.9129 +vn 0.3538 -0.2269 -0.9074 +vn -0.3538 -0.2269 -0.9074 +vn -0.3827 0.0000 0.9239 +vn 0.3916 0.1153 0.9129 +vn 0.3827 0.0000 0.9239 +vn -0.3711 0.1112 0.9219 +vn -0.9163 -0.0343 0.3990 +vn -0.3750 -0.0754 0.9239 +vn 0.4082 0.1464 0.9011 +vn 0.9163 -0.0343 0.3990 +vn 0.3750 -0.0754 0.9239 +vn -0.3916 0.1153 0.9129 +vn 0.3711 0.1112 0.9219 +vn 0.8970 -0.1072 -0.4287 +vn 0.9337 -0.0415 -0.3557 +vn -0.3458 -0.6635 -0.6635 +vn -0.8727 -0.2257 -0.4330 +vn -0.3416 -0.3416 -0.8756 +vn 0.3711 0.1112 -0.9219 +vn -0.3711 0.1112 -0.9219 +vn -0.9337 -0.0415 -0.3557 +vn 0.3916 0.1153 -0.9129 +vn 0.3458 -0.6635 -0.6635 +vn 0.9123 0.0530 0.4062 +vn -0.3158 0.4243 0.8487 +vn 0.3158 0.4243 0.8487 +vn -0.9337 0.0415 0.3557 +vn 0.9239 0.0000 0.3827 +vn 0.9337 0.0415 -0.3557 +vn 0.9123 0.0530 -0.4062 +vn 0.9489 0.0415 0.3128 +vn 0.8727 -0.2257 -0.4330 +vn 0.9607 -0.1962 -0.1962 +vn 0.8592 0.2288 0.4576 +vn 0.3416 -0.3416 -0.8756 +vn 0.9337 0.0415 0.3557 +vn -0.9239 0.0000 0.3827 +vn -0.9123 0.0530 0.4062 +vn -0.9337 0.0415 -0.3557 +vn -0.9123 0.0530 -0.4062 +vn -0.9489 0.0415 0.3128 +vn -0.9607 -0.1962 -0.1962 +vn -0.8592 0.2288 0.4576 +vn -0.4082 0.1464 0.9011 +vn -0.8970 -0.1072 -0.4287 +vn 0.7038 0.7038 0.0961 +vn 0.7038 -0.7038 0.0961 +vn 0.0000 -0.9950 0.0995 +vn -0.7038 -0.7038 0.0961 +vn -0.4975 0.8617 0.0995 +s off +f 334/11/4 21/12/4 23/13/4 +f 14/14/4 44/15/4 43/16/4 +f 12/17/4 33/18/4 44/15/4 +f 32/19/4 33/18/4 10/20/4 +f 30/21/4 34/22/4 32/19/4 +f 28/23/4 35/24/4 30/21/4 +f 28/23/4 37/25/4 36/26/4 +f 26/27/4 38/28/4 37/25/4 +f 22/29/4 38/28/4 24/30/4 +f 20/31/4 39/32/4 22/33/4 +f 20/31/4 41/34/4 40/35/4 +f 18/36/4 42/37/4 41/34/4 +f 16/38/4 43/16/4 42/37/4 +f 45/39/5 58/40/5 56/41/5 +f 56/41/5 59/42/5 55/43/5 +f 55/43/5 60/44/5 54/45/5 +f 54/45/5 61/46/5 53/47/5 +f 53/47/5 62/48/5 52/49/5 +f 62/48/5 51/50/5 52/49/5 +f 63/51/5 50/52/5 51/53/5 +f 50/52/5 65/54/5 49/55/5 +f 49/55/5 66/56/5 48/57/5 +f 66/56/5 47/58/5 48/57/5 +f 67/59/5 46/60/5 47/58/5 +f 68/61/5 45/39/5 46/60/5 +f 95/62/4 116/63/4 115/64/4 +f 94/65/4 105/66/4 116/63/4 +f 104/67/4 105/66/4 93/68/4 +f 103/69/4 106/70/4 104/67/4 +f 102/71/4 107/72/4 103/69/4 +f 102/71/4 109/73/4 108/74/4 +f 101/75/4 110/76/4 109/73/4 +f 99/77/4 110/76/4 100/78/4 +f 98/79/4 111/80/4 99/81/4 +f 98/79/4 113/82/4 112/83/4 +f 97/84/4 114/85/4 113/82/4 +f 96/86/4 115/64/4 114/85/4 +f 131/87/4 152/88/4 151/89/4 +f 130/90/4 141/91/4 152/88/4 +f 140/92/4 141/91/4 129/93/4 +f 139/94/4 142/95/4 140/92/4 +f 137/96/4 146/97/4 145/98/4 +f 135/99/4 146/97/4 136/100/4 +f 134/101/4 147/102/4 135/103/4 +f 134/101/4 149/104/4 148/105/4 +f 201/106/5 192/107/5 162/108/5 +f 125/109/5 186/110/5 185/111/5 +f 127/112/5 186/110/5 126/113/5 +f 121/114/5 180/115/5 120/116/5 +f 119/117/5 180/115/5 179/118/5 +f 179/119/6 139/120/6 119/121/6 +f 137/122/7 181/123/7 121/124/7 +f 133/125/8 185/126/8 173/127/8 +f 131/128/9 187/129/9 127/130/9 +f 153/131/5 190/132/5 164/133/5 +f 164/133/5 191/134/5 163/135/5 +f 191/136/9 131/128/9 151/137/9 +f 143/138/6 139/120/6 199/139/6 +f 161/140/5 194/141/5 160/142/5 +f 194/141/5 159/143/5 160/142/5 +f 195/144/5 158/145/5 159/146/5 +f 158/145/5 197/147/5 157/148/5 +f 197/149/7 169/150/7 137/122/7 +f 149/151/8 133/125/8 193/152/8 +f 199/153/5 154/154/5 155/155/5 +f 200/156/5 153/131/5 154/154/5 +f 230/157/4 231/158/4 232/159/4 +f 228/160/4 229/161/4 230/157/4 +f 232/162/10 239/163/10 230/164/10 +f 233/165/4 232/159/4 231/158/4 +f 231/158/11 241/166/11 233/167/11 +f 227/168/12 238/169/12 229/161/12 +f 240/170/5 241/171/5 237/172/5 +f 238/169/5 235/173/5 239/174/5 +f 237/172/5 239/174/5 240/170/5 +f 229/161/13 237/172/13 231/158/13 +f 228/175/14 236/176/14 227/168/14 +f 233/167/15 242/177/15 234/178/15 +f 230/164/16 235/179/16 228/175/16 +f 234/180/17 240/181/17 232/162/17 +f 221/182/5 223/183/5 215/184/5 +f 247/185/15 249/186/15 248/187/15 +f 243/188/18 249/186/18 244/189/18 +f 246/190/13 249/186/13 250/191/13 +f 245/192/10 248/187/10 243/193/10 +f 264/194/14 260/195/14 256/196/14 +f 271/197/15 273/198/15 272/199/15 +f 267/200/18 273/198/18 268/201/18 +f 270/202/13 273/198/13 274/203/13 +f 269/204/10 272/199/10 267/205/10 +f 277/206/15 275/207/15 276/208/15 +f 278/209/5 279/210/5 275/207/5 +f 306/211/14 284/212/14 317/213/14 +f 311/214/15 294/215/15 324/216/15 +f 25/217/4 334/218/4 23/13/4 +f 332/219/4 25/217/4 27/220/4 +f 29/221/4 332/222/4 27/220/4 +f 330/223/4 29/221/4 31/224/4 +f 9/225/4 330/226/4 31/224/4 +f 340/227/4 9/225/4 11/228/4 +f 13/229/4 340/230/4 11/228/4 +f 338/231/4 13/229/4 15/232/4 +f 17/233/4 338/234/4 15/232/4 +f 336/235/4 17/233/4 19/236/4 +f 21/237/4 336/238/4 19/236/4 +f 345/239/4 343/240/4 351/241/4 +f 363/242/5 359/243/5 355/244/5 +f 383/245/19 381/246/19 382/247/19 +f 378/248/15 382/249/15 377/250/15 +f 377/251/10 381/246/10 379/252/10 +f 380/253/13 383/254/13 378/248/13 +f 380/253/14 381/246/14 384/255/14 +f 391/256/20 389/257/20 390/258/20 +f 385/259/15 391/256/15 390/260/15 +f 385/259/10 389/261/10 387/262/10 +f 388/263/13 391/256/13 386/264/13 +f 387/262/14 392/265/14 388/266/14 +f 380/267/4 377/250/4 379/268/4 +f 388/266/4 385/269/4 387/262/4 +f 334/11/4 335/270/4 21/12/4 +f 14/14/4 12/17/4 44/15/4 +f 12/17/4 10/20/4 33/18/4 +f 32/19/4 34/22/4 33/18/4 +f 30/21/4 35/24/4 34/22/4 +f 28/23/4 36/26/4 35/24/4 +f 28/23/4 26/27/4 37/25/4 +f 26/27/4 24/30/4 38/28/4 +f 22/29/4 39/271/4 38/28/4 +f 20/31/4 40/35/4 39/32/4 +f 20/31/4 18/36/4 41/34/4 +f 18/36/4 16/38/4 42/37/4 +f 16/38/4 14/14/4 43/16/4 +f 45/39/5 57/272/5 58/40/5 +f 56/41/5 58/40/5 59/42/5 +f 55/43/5 59/42/5 60/44/5 +f 54/45/5 60/44/5 61/46/5 +f 53/47/5 61/46/5 62/48/5 +f 62/48/5 63/273/5 51/50/5 +f 63/51/5 64/274/5 50/52/5 +f 50/52/5 64/274/5 65/54/5 +f 49/55/5 65/54/5 66/56/5 +f 66/56/5 67/59/5 47/58/5 +f 67/59/5 68/61/5 46/60/5 +f 68/61/5 57/272/5 45/39/5 +f 95/62/4 94/65/4 116/63/4 +f 94/65/4 93/68/4 105/66/4 +f 104/67/4 106/70/4 105/66/4 +f 103/69/4 107/72/4 106/70/4 +f 102/71/4 108/74/4 107/72/4 +f 102/71/4 101/75/4 109/73/4 +f 101/75/4 100/78/4 110/76/4 +f 99/77/4 111/275/4 110/76/4 +f 98/79/4 112/83/4 111/80/4 +f 98/79/4 97/84/4 113/82/4 +f 97/84/4 96/86/4 114/85/4 +f 96/86/4 95/62/4 115/64/4 +f 131/87/4 130/90/4 152/88/4 +f 130/90/4 129/93/4 141/91/4 +f 140/92/4 142/95/4 141/91/4 +f 139/94/4 143/276/4 142/95/4 +f 137/96/4 136/100/4 146/97/4 +f 135/99/4 147/277/4 146/97/4 +f 134/101/4 148/105/4 147/102/4 +f 134/101/4 133/278/4 149/104/4 +f 192/107/5 198/279/5 162/108/5 +f 198/279/5 174/280/5 162/108/5 +f 174/280/5 168/281/5 162/108/5 +f 162/108/5 156/282/5 150/283/5 +f 150/283/5 144/284/5 138/285/5 +f 138/285/5 132/286/5 201/106/5 +f 201/106/5 202/287/5 192/107/5 +f 162/108/5 150/283/5 138/285/5 +f 138/285/5 201/106/5 162/108/5 +f 125/109/5 126/113/5 186/110/5 +f 127/112/5 187/288/5 186/110/5 +f 121/114/5 181/289/5 180/115/5 +f 119/117/5 120/116/5 180/115/5 +f 179/119/6 167/290/6 139/120/6 +f 137/122/7 169/150/7 181/123/7 +f 133/125/8 125/291/8 185/126/8 +f 131/128/9 175/292/9 187/129/9 +f 153/131/5 189/293/5 190/132/5 +f 164/133/5 190/132/5 191/134/5 +f 151/137/9 163/294/9 191/136/9 +f 191/136/9 175/292/9 131/128/9 +f 199/139/6 155/295/6 143/138/6 +f 139/120/6 167/290/6 199/139/6 +f 161/140/5 193/296/5 194/141/5 +f 194/141/5 195/297/5 159/143/5 +f 195/144/5 196/298/5 158/145/5 +f 158/145/5 196/298/5 197/147/5 +f 145/299/7 157/300/7 137/122/7 +f 157/300/7 197/149/7 137/122/7 +f 193/152/8 161/301/8 149/151/8 +f 133/125/8 173/127/8 193/152/8 +f 199/153/5 200/156/5 154/154/5 +f 200/156/5 189/293/5 153/131/5 +f 230/157/4 229/161/4 231/158/4 +f 228/160/4 227/302/4 229/161/4 +f 232/162/10 240/181/10 239/163/10 +f 233/165/4 234/303/4 232/159/4 +f 231/158/11 237/172/11 241/166/11 +f 227/168/12 236/176/12 238/169/12 +f 240/170/5 242/304/5 241/171/5 +f 238/169/5 236/305/5 235/173/5 +f 237/172/5 238/169/5 239/174/5 +f 229/161/13 238/169/13 237/172/13 +f 228/175/14 235/179/14 236/176/14 +f 233/167/15 241/166/15 242/177/15 +f 230/164/16 239/163/16 235/179/16 +f 234/180/17 242/306/17 240/181/17 +f 215/184/5 216/307/5 219/308/5 +f 216/307/5 217/309/5 219/308/5 +f 217/309/5 218/310/5 219/308/5 +f 219/308/5 220/311/5 221/182/5 +f 221/182/5 222/312/5 223/183/5 +f 223/183/5 224/313/5 225/314/5 +f 225/314/5 226/315/5 223/183/5 +f 226/315/5 215/184/5 223/183/5 +f 219/308/5 221/182/5 215/184/5 +f 247/185/15 250/191/15 249/186/15 +f 243/188/18 248/187/18 249/186/18 +f 246/190/13 244/316/13 249/186/13 +f 245/192/10 247/185/10 248/187/10 +f 256/196/14 254/317/14 252/318/14 +f 252/318/14 266/319/14 264/194/14 +f 264/194/14 262/320/14 260/195/14 +f 260/195/14 258/321/14 256/196/14 +f 256/196/14 252/318/14 264/194/14 +f 271/197/15 274/203/15 273/198/15 +f 267/200/18 272/199/18 273/198/18 +f 270/202/13 268/322/13 273/198/13 +f 269/204/10 271/197/10 272/199/10 +f 277/206/15 278/209/15 275/207/15 +f 278/209/5 280/323/5 279/210/5 +f 284/212/14 283/324/14 317/213/14 +f 317/213/14 318/325/14 305/326/14 +f 318/325/14 281/327/14 305/326/14 +f 281/327/14 282/328/14 305/326/14 +f 305/326/14 306/211/14 317/213/14 +f 294/215/15 293/329/15 324/216/15 +f 324/216/15 323/330/15 312/331/15 +f 323/330/15 295/332/15 312/331/15 +f 295/332/15 296/333/15 312/331/15 +f 312/331/15 311/214/15 324/216/15 +f 25/217/4 333/334/4 334/218/4 +f 332/219/4 333/335/4 25/217/4 +f 29/221/4 331/336/4 332/222/4 +f 330/223/4 331/337/4 29/221/4 +f 9/225/4 329/338/4 330/226/4 +f 340/227/4 329/339/4 9/225/4 +f 13/229/4 339/340/4 340/230/4 +f 338/231/4 339/341/4 13/229/4 +f 17/233/4 337/342/4 338/234/4 +f 336/235/4 337/343/4 17/233/4 +f 21/237/4 335/344/4 336/238/4 +f 343/240/4 342/345/4 341/346/4 +f 341/346/4 352/347/4 351/241/4 +f 351/241/4 350/348/4 349/349/4 +f 349/349/4 348/350/4 347/351/4 +f 347/351/4 346/352/4 345/239/4 +f 345/239/4 344/353/4 343/240/4 +f 343/240/4 341/346/4 351/241/4 +f 351/241/4 349/349/4 347/351/4 +f 347/351/4 345/239/4 351/241/4 +f 355/244/5 354/354/5 363/242/5 +f 354/354/5 353/355/5 363/242/5 +f 353/355/5 364/356/5 363/242/5 +f 363/242/5 362/357/5 361/358/5 +f 361/358/5 360/359/5 359/243/5 +f 359/243/5 358/360/5 355/244/5 +f 358/360/5 357/361/5 355/244/5 +f 357/361/5 356/362/5 355/244/5 +f 363/242/5 361/358/5 359/243/5 +f 383/245/19 384/363/19 381/246/19 +f 378/248/15 383/254/15 382/249/15 +f 377/251/10 382/247/10 381/246/10 +f 380/253/13 384/255/13 383/254/13 +f 380/253/14 379/252/14 381/246/14 +f 391/256/20 392/364/20 389/257/20 +f 385/259/15 386/264/15 391/256/15 +f 385/259/10 390/260/10 389/261/10 +f 388/263/13 392/364/13 391/256/13 +f 387/262/14 389/261/14 392/265/14 +f 380/267/4 378/248/4 377/250/4 +f 388/266/4 386/365/4 385/269/4 +s 1 +f 10/20/14 11/228/8 9/225/14 +f 12/17/8 13/229/21 11/228/8 +f 14/14/21 15/232/13 13/229/21 +f 16/38/13 17/233/22 15/232/13 +f 18/36/22 19/236/9 17/233/22 +f 20/31/9 21/237/15 19/236/9 +f 22/29/15 23/13/6 21/12/15 +f 24/30/6 25/217/23 23/13/6 +f 26/27/23 27/220/10 25/217/23 +f 28/23/10 29/221/24 27/220/10 +f 30/21/24 31/224/7 29/221/24 +f 32/19/7 9/225/14 31/224/7 +f 40/35/9 51/50/15 39/32/15 +f 37/25/23 48/57/10 36/26/10 +f 44/15/8 55/43/21 43/16/21 +f 34/22/7 45/39/14 33/18/14 +f 41/34/22 52/49/9 40/35/9 +f 38/28/6 49/55/23 37/25/23 +f 33/18/14 56/41/8 44/15/8 +f 35/24/24 46/60/7 34/22/7 +f 42/37/13 53/47/22 41/34/22 +f 39/271/15 50/52/6 38/28/6 +f 36/26/10 47/58/24 35/24/24 +f 43/16/21 54/45/13 42/37/13 +f 59/42/25 80/366/26 79/367/25 +f 57/272/27 80/366/26 58/40/26 +f 57/272/27 70/368/28 69/369/27 +f 68/61/28 71/370/29 70/368/28 +f 66/56/30 71/370/29 67/59/29 +f 66/56/30 73/371/31 72/372/30 +f 64/274/32 73/371/31 65/54/31 +f 64/274/32 75/373/33 74/374/32 +f 62/48/34 75/375/33 63/273/33 +f 62/48/34 77/376/35 76/377/34 +f 60/44/36 77/376/35 61/46/35 +f 60/44/36 79/367/25 78/378/36 +f 72/372/10 83/379/24 71/370/24 +f 79/367/21 90/380/13 78/378/13 +f 76/377/9 87/381/15 75/375/15 +f 73/371/23 84/382/10 72/372/10 +f 80/366/8 91/383/21 79/367/21 +f 70/368/7 81/384/14 69/369/14 +f 77/376/22 88/385/9 76/377/9 +f 74/374/6 85/386/23 73/371/23 +f 69/369/14 92/387/8 80/366/8 +f 71/370/24 82/388/7 70/368/7 +f 78/378/13 89/389/22 77/376/22 +f 75/373/15 86/390/6 74/374/6 +f 112/83/9 123/391/37 111/80/15 +f 109/73/23 120/116/10 108/74/10 +f 116/63/8 127/112/38 115/64/21 +f 106/70/7 117/392/39 105/66/14 +f 113/82/22 124/393/40 112/83/9 +f 110/76/6 121/114/41 109/73/23 +f 105/66/14 128/394/42 116/63/8 +f 107/72/24 118/395/43 106/70/7 +f 114/85/13 125/109/44 113/82/22 +f 111/275/15 122/396/45 110/76/6 +f 108/74/10 119/117/46 107/72/24 +f 115/64/21 126/113/13 114/85/13 +f 129/93/47 128/394/42 117/392/39 +f 130/90/48 127/112/38 128/394/42 +f 182/397/8 150/398/14 156/399/8 +f 186/400/10 138/401/24 185/126/49 +f 125/109/44 134/101/50 124/393/40 +f 134/101/50 123/391/37 124/393/40 +f 123/402/37 136/100/51 122/396/45 +f 136/100/51 121/114/41 122/396/45 +f 178/403/9 174/404/22 198/405/9 +f 177/406/15 202/407/6 188/408/6 +f 139/94/52 118/395/43 119/117/46 +f 118/395/43 129/93/47 117/392/39 +f 92/387/53 95/62/54 91/383/54 +f 93/68/55 92/387/53 81/384/55 +f 82/388/56 93/68/55 81/384/55 +f 83/379/57 104/67/56 82/388/56 +f 102/71/58 83/379/57 84/382/58 +f 85/386/59 102/71/58 84/382/58 +f 100/78/60 85/386/59 86/390/60 +f 99/77/61 86/390/60 87/409/61 +f 88/385/62 99/81/61 87/381/61 +f 89/389/63 98/79/62 88/385/62 +f 96/86/64 89/389/63 90/380/64 +f 91/383/54 96/86/64 90/380/64 +f 148/105/9 159/143/15 147/102/15 +f 182/397/8 162/410/21 181/123/65 +f 152/88/8 163/135/66 151/89/66 +f 142/95/7 153/131/14 141/91/14 +f 149/104/11 160/142/9 148/105/9 +f 146/97/6 157/148/17 145/98/17 +f 141/91/14 164/133/8 152/88/8 +f 143/276/67 154/154/7 142/95/7 +f 185/126/49 144/411/7 184/412/7 +f 147/277/15 158/145/6 146/97/6 +f 178/403/9 192/413/15 177/406/15 +f 188/408/6 201/414/23 187/129/68 +f 181/123/65 168/415/13 180/416/13 +f 184/412/7 150/398/14 183/417/14 +f 187/129/68 132/418/10 186/419/10 +f 170/420/8 181/123/65 169/150/66 +f 165/421/15 188/408/6 176/422/6 +f 167/290/11 178/403/9 166/423/9 +f 171/424/14 182/397/8 170/420/8 +f 172/425/7 183/417/14 171/424/14 +f 176/422/6 187/129/68 175/292/17 +f 166/423/9 177/406/15 165/421/15 +f 173/127/67 184/412/7 172/425/7 +f 180/426/13 174/404/22 179/119/69 +f 176/427/60 189/293/61 165/428/61 +f 175/429/70 190/132/60 176/427/60 +f 172/430/56 193/296/71 173/431/71 +f 172/430/56 195/297/55 194/141/56 +f 170/432/53 195/144/55 171/433/55 +f 170/432/53 197/147/72 196/298/53 +f 166/434/62 199/153/73 167/435/73 +f 166/434/62 189/293/61 200/156/62 +f 212/436/13 223/437/22 211/438/22 +f 209/439/15 220/440/6 208/441/6 +f 206/442/10 217/443/24 205/444/24 +f 213/445/21 224/446/13 212/436/13 +f 210/447/9 221/448/15 209/449/15 +f 207/450/23 218/451/10 206/442/10 +f 214/452/8 225/453/21 213/445/21 +f 204/454/7 215/455/14 203/456/14 +f 211/438/22 222/457/9 210/447/9 +f 208/441/6 219/458/23 207/450/23 +f 203/456/14 226/459/8 214/452/8 +f 205/444/24 216/460/7 204/454/7 +f 252/461/4 253/462/74 251/463/4 +f 254/464/74 255/465/13 253/462/74 +f 256/466/13 257/467/75 255/465/13 +f 258/468/75 259/469/5 257/467/75 +f 260/470/5 261/471/76 259/469/5 +f 262/472/76 263/473/10 261/471/76 +f 264/474/10 265/475/77 263/473/10 +f 266/476/77 251/477/4 265/475/77 +f 288/478/78 289/479/79 285/480/80 +f 284/481/81 285/480/80 283/482/82 +f 281/483/83 287/484/84 282/485/85 +f 290/486/86 326/487/87 298/488/88 +f 303/489/89 313/490/90 299/491/91 +f 286/492/92 291/493/93 287/484/84 +f 288/494/78 306/211/94 308/495/95 +f 295/496/96 327/497/97 301/498/98 +f 300/499/99 301/500/98 297/501/100 +f 289/502/79 319/503/101 285/504/80 +f 292/505/102 297/501/100 289/479/79 +f 290/506/86 299/507/91 291/493/93 +f 301/500/98 296/508/103 295/509/96 +f 298/510/88 303/511/89 299/507/91 +f 299/491/91 309/512/104 291/513/93 +f 303/511/89 293/514/105 294/515/106 +f 281/516/83 320/517/107 286/518/92 +f 287/519/84 305/326/108 282/520/85 +f 305/326/108 308/495/95 306/211/94 +f 310/521/109 313/490/90 314/522/110 +f 308/495/95 309/512/104 310/521/109 +f 314/522/110 315/523/111 316/524/112 +f 312/331/113 315/523/111 311/214/114 +f 292/525/102 314/522/110 300/499/99 +f 300/499/99 316/524/112 304/526/115 +f 287/519/84 309/512/104 307/527/116 +f 303/489/89 311/214/114 315/523/111 +f 288/494/78 310/521/109 292/525/102 +f 296/528/103 316/524/112 312/331/113 +f 318/529/117 319/503/101 320/517/107 +f 319/503/101 322/530/118 320/517/107 +f 321/531/119 326/487/87 322/530/118 +f 325/532/120 328/533/121 326/487/87 +f 328/533/121 323/534/122 324/535/123 +f 302/536/124 326/487/87 328/533/121 +f 286/518/92 322/530/118 290/486/86 +f 302/536/124 324/535/123 293/537/105 +f 285/504/80 317/538/125 283/539/82 +f 289/502/79 325/532/120 321/531/119 +f 301/498/98 325/532/120 297/540/100 +f 330/541/9 343/542/22 331/543/22 +f 337/544/24 350/545/10 338/546/10 +f 334/547/8 347/548/14 335/549/14 +f 331/543/22 344/550/13 332/551/13 +f 338/546/10 351/552/23 339/553/23 +f 335/554/14 348/555/7 336/556/7 +f 332/551/13 345/557/21 333/558/21 +f 339/553/23 352/559/6 340/560/6 +f 329/561/15 342/562/9 330/541/9 +f 336/556/7 349/563/24 337/544/24 +f 333/558/21 346/564/8 334/547/8 +f 340/560/6 341/565/15 329/561/15 +f 357/566/22 368/567/13 356/568/13 +f 364/569/7 375/570/24 363/571/24 +f 354/572/8 365/573/14 353/574/14 +f 361/575/23 372/576/6 360/577/6 +f 358/578/9 369/579/22 357/566/22 +f 353/574/14 376/580/7 364/569/7 +f 355/581/21 366/582/8 354/572/8 +f 362/583/10 373/584/23 361/575/23 +f 359/585/15 370/586/9 358/578/9 +f 356/568/13 367/587/21 355/581/21 +f 363/571/24 374/588/10 362/583/10 +f 360/577/6 371/589/15 359/590/15 +f 10/20/14 12/17/8 11/228/8 +f 12/17/8 14/14/21 13/229/21 +f 14/14/21 16/38/13 15/232/13 +f 16/38/13 18/36/22 17/233/22 +f 18/36/22 20/31/9 19/236/9 +f 20/31/9 22/33/15 21/237/15 +f 22/29/15 24/30/6 23/13/6 +f 24/30/6 26/27/23 25/217/23 +f 26/27/23 28/23/10 27/220/10 +f 28/23/10 30/21/24 29/221/24 +f 30/21/24 32/19/7 31/224/7 +f 32/19/7 10/20/14 9/225/14 +f 40/35/9 52/49/9 51/50/15 +f 37/25/23 49/55/23 48/57/10 +f 44/15/8 56/41/8 55/43/21 +f 34/22/7 46/60/7 45/39/14 +f 41/34/22 53/47/22 52/49/9 +f 38/28/6 50/52/6 49/55/23 +f 33/18/14 45/39/14 56/41/8 +f 35/24/24 47/58/24 46/60/7 +f 42/37/13 54/45/13 53/47/22 +f 39/271/15 51/53/15 50/52/6 +f 36/26/10 48/57/10 47/58/24 +f 43/16/21 55/43/21 54/45/13 +f 59/42/25 58/40/26 80/366/26 +f 57/272/27 69/369/27 80/366/26 +f 57/272/27 68/61/28 70/368/28 +f 68/61/28 67/59/29 71/370/29 +f 66/56/30 72/372/30 71/370/29 +f 66/56/30 65/54/31 73/371/31 +f 64/274/32 74/374/32 73/371/31 +f 64/274/32 63/51/33 75/373/33 +f 62/48/34 76/377/34 75/375/33 +f 62/48/34 61/46/35 77/376/35 +f 60/44/36 78/378/36 77/376/35 +f 60/44/36 59/42/25 79/367/25 +f 72/372/10 84/382/10 83/379/24 +f 79/367/21 91/383/21 90/380/13 +f 76/377/9 88/385/9 87/381/15 +f 73/371/23 85/386/23 84/382/10 +f 80/366/8 92/387/8 91/383/21 +f 70/368/7 82/388/7 81/384/14 +f 77/376/22 89/389/22 88/385/9 +f 74/374/6 86/390/6 85/386/23 +f 69/369/14 81/384/14 92/387/8 +f 71/370/24 83/379/24 82/388/7 +f 78/378/13 90/380/13 89/389/22 +f 75/373/15 87/409/15 86/390/6 +f 112/83/9 124/393/40 123/391/37 +f 109/73/23 121/114/41 120/116/10 +f 116/63/8 128/394/42 127/112/38 +f 106/70/7 118/395/43 117/392/39 +f 113/82/22 125/109/44 124/393/40 +f 110/76/6 122/396/45 121/114/41 +f 105/66/14 117/392/39 128/394/42 +f 107/72/24 119/117/46 118/395/43 +f 114/85/13 126/113/13 125/109/44 +f 111/275/15 123/402/37 122/396/45 +f 108/74/10 120/116/10 119/117/46 +f 115/64/21 127/112/38 126/113/13 +f 129/93/47 130/90/48 128/394/42 +f 130/90/48 131/87/126 127/112/38 +f 182/397/8 183/417/14 150/398/14 +f 186/400/10 132/591/10 138/401/24 +f 125/109/44 133/278/127 134/101/50 +f 134/101/50 135/103/128 123/391/37 +f 123/402/37 135/99/128 136/100/51 +f 136/100/51 137/96/129 121/114/41 +f 178/403/9 179/119/69 174/404/22 +f 177/406/15 192/413/15 202/407/6 +f 139/94/52 140/92/130 118/395/43 +f 118/395/43 140/92/130 129/93/47 +f 92/387/53 94/65/53 95/62/54 +f 93/68/55 94/65/53 92/387/53 +f 82/388/56 104/67/56 93/68/55 +f 83/379/57 103/69/57 104/67/56 +f 102/71/58 103/69/57 83/379/57 +f 85/386/59 101/75/59 102/71/58 +f 100/78/60 101/75/59 85/386/59 +f 99/77/61 100/78/60 86/390/60 +f 88/385/62 98/79/62 99/81/61 +f 89/389/63 97/84/63 98/79/62 +f 96/86/64 97/84/63 89/389/63 +f 91/383/54 95/62/54 96/86/64 +f 148/105/9 160/142/9 159/143/15 +f 182/397/8 156/399/8 162/410/21 +f 152/88/8 164/133/8 163/135/66 +f 142/95/7 154/154/7 153/131/14 +f 149/104/11 161/140/11 160/142/9 +f 146/97/6 158/145/6 157/148/17 +f 141/91/14 153/131/14 164/133/8 +f 143/276/67 155/155/67 154/154/7 +f 185/126/49 138/401/24 144/411/7 +f 147/277/15 159/146/15 158/145/6 +f 178/403/9 198/405/9 192/413/15 +f 188/408/6 202/407/6 201/414/23 +f 181/123/65 162/410/21 168/415/13 +f 184/412/7 144/411/7 150/398/14 +f 187/129/68 201/414/23 132/418/10 +f 170/420/8 182/397/8 181/123/65 +f 165/421/15 177/406/15 188/408/6 +f 167/290/11 179/119/69 178/403/9 +f 171/424/14 183/417/14 182/397/8 +f 172/425/7 184/412/7 183/417/14 +f 176/422/6 188/408/6 187/129/68 +f 166/423/9 178/403/9 177/406/15 +f 173/127/67 185/126/49 184/412/7 +f 180/426/13 168/592/13 174/404/22 +f 176/427/60 190/132/60 189/293/61 +f 175/429/70 191/134/70 190/132/60 +f 172/430/56 194/141/56 193/296/71 +f 172/430/56 171/593/55 195/297/55 +f 170/432/53 196/298/53 195/144/55 +f 170/432/53 169/594/72 197/147/72 +f 166/434/62 200/156/62 199/153/73 +f 166/434/62 165/595/61 189/293/61 +f 212/436/13 224/446/13 223/437/22 +f 209/439/15 221/596/15 220/440/6 +f 206/442/10 218/451/10 217/443/24 +f 213/445/21 225/453/21 224/446/13 +f 210/447/9 222/457/9 221/448/15 +f 207/450/23 219/458/23 218/451/10 +f 214/452/8 226/459/8 225/453/21 +f 204/454/7 216/460/7 215/455/14 +f 211/438/22 223/437/22 222/457/9 +f 208/441/6 220/440/6 219/458/23 +f 203/456/14 215/455/14 226/459/8 +f 205/444/24 217/443/24 216/460/7 +f 252/461/4 254/464/74 253/462/74 +f 254/464/74 256/466/13 255/465/13 +f 256/466/13 258/468/75 257/467/75 +f 258/468/75 260/470/5 259/469/5 +f 260/470/5 262/472/76 261/471/76 +f 262/472/76 264/474/10 263/473/10 +f 264/474/10 266/476/77 265/475/77 +f 266/476/77 252/597/4 251/477/4 +f 288/478/78 292/505/102 289/479/79 +f 284/481/81 288/478/78 285/480/80 +f 281/483/83 286/492/92 287/484/84 +f 290/486/86 322/530/118 326/487/87 +f 303/489/89 315/523/111 313/490/90 +f 286/492/92 290/506/86 291/493/93 +f 288/494/78 284/481/81 306/211/94 +f 295/496/96 323/534/122 327/497/97 +f 300/499/99 304/526/115 301/500/98 +f 289/502/79 321/531/119 319/503/101 +f 292/505/102 300/499/99 297/501/100 +f 290/506/86 298/510/88 299/507/91 +f 301/500/98 304/526/115 296/508/103 +f 298/510/88 302/598/124 303/511/89 +f 299/491/91 313/490/90 309/512/104 +f 303/511/89 302/598/124 293/514/105 +f 281/516/83 318/529/117 320/517/107 +f 287/519/84 307/527/116 305/326/108 +f 305/326/108 307/527/116 308/495/95 +f 310/521/109 309/512/104 313/490/90 +f 308/495/95 307/527/116 309/512/104 +f 314/522/110 313/490/90 315/523/111 +f 312/331/113 316/524/112 315/523/111 +f 292/525/102 310/521/109 314/522/110 +f 300/499/99 314/522/110 316/524/112 +f 287/519/84 291/513/93 309/512/104 +f 303/489/89 294/515/106 311/214/114 +f 288/494/78 308/495/95 310/521/109 +f 296/528/103 304/526/115 316/524/112 +f 318/529/117 317/538/125 319/503/101 +f 319/503/101 321/531/119 322/530/118 +f 321/531/119 325/532/120 326/487/87 +f 325/532/120 327/497/97 328/533/121 +f 328/533/121 327/497/97 323/534/122 +f 302/536/124 298/488/88 326/487/87 +f 286/518/92 320/517/107 322/530/118 +f 302/536/124 328/533/121 324/535/123 +f 285/504/80 319/503/101 317/538/125 +f 289/502/79 297/540/100 325/532/120 +f 301/498/98 327/497/97 325/532/120 +f 330/541/9 342/562/9 343/542/22 +f 337/544/24 349/563/24 350/545/10 +f 334/547/8 346/564/8 347/548/14 +f 331/543/22 343/542/22 344/550/13 +f 338/546/10 350/545/10 351/552/23 +f 335/554/14 347/599/14 348/555/7 +f 332/551/13 344/550/13 345/557/21 +f 339/553/23 351/552/23 352/559/6 +f 329/561/15 341/565/15 342/562/9 +f 336/556/7 348/555/7 349/563/24 +f 333/558/21 345/557/21 346/564/8 +f 340/560/6 352/559/6 341/565/15 +f 357/566/22 369/579/22 368/567/13 +f 364/569/7 376/580/7 375/570/24 +f 354/572/8 366/582/8 365/573/14 +f 361/575/23 373/584/23 372/576/6 +f 358/578/9 370/586/9 369/579/22 +f 353/574/14 365/573/14 376/580/7 +f 355/581/21 367/587/21 366/582/8 +f 362/583/10 374/588/10 373/584/23 +f 359/585/15 371/600/15 370/586/9 +f 356/568/13 368/567/13 367/587/21 +f 363/571/24 375/570/24 374/588/10 +f 360/577/6 372/576/6 371/589/15 +o Lever +v 0.312500 -0.625000 2.500000 +v 0.250000 -0.687500 2.536612 +v 0.224112 -0.713388 2.625000 +v 0.250000 -0.687500 2.713388 +v 0.312500 -0.625000 2.750000 +v 0.375000 -0.562500 2.713388 +v 0.400888 -0.536612 2.625000 +v 0.375000 -0.562500 2.536612 +v 0.294194 -0.731694 2.536612 +v 0.356694 -0.669194 2.500000 +v 0.268306 -0.757582 2.625000 +v 0.294194 -0.731694 2.713388 +v 0.356694 -0.669194 2.750000 +v 0.419194 -0.606694 2.713388 +v 0.445083 -0.580806 2.625000 +v 0.419194 -0.606694 2.536612 +v 0.369638 -0.744638 2.580806 +v 0.400888 -0.713388 2.562500 +v 0.356694 -0.757583 2.625000 +v 0.369638 -0.744638 2.669194 +v 0.400888 -0.713388 2.687500 +v 0.432138 -0.682138 2.669194 +v 0.445083 -0.669194 2.625000 +v 0.432138 -0.682138 2.580806 +vt 0.242193 0.795181 +vt 0.234848 0.806862 +vt 0.227503 0.795181 +vt 0.229654 0.786921 +vt 0.234848 0.783500 +vt 0.240042 0.786921 +vt 0.240042 0.803441 +vt 0.229654 0.803441 +vt 0.257576 0.789157 +vt 0.253788 0.795181 +vt 0.253788 0.789157 +vt 0.257576 0.783133 +vt 0.261364 0.789157 +vt 0.265152 0.783133 +vt 0.268939 0.789157 +vt 0.265152 0.789157 +vt 0.246212 0.783133 +vt 0.242424 0.789157 +vt 0.242424 0.783133 +vt 0.253788 0.783133 +vt 0.261364 0.783133 +vt 0.268939 0.783133 +vt 0.272727 0.789157 +vt 0.250000 0.783133 +vt 0.246212 0.789157 +vt 0.250000 0.789157 +vt 0.243588 0.797031 +vt 0.246212 0.795303 +vt 0.246212 0.807105 +vt 0.261364 0.795181 +vt 0.272727 0.795181 +vt 0.268939 0.795181 +vt 0.246212 0.795181 +vt 0.250000 0.795181 +vt 0.257576 0.795181 +vt 0.265152 0.795181 +vt 0.242424 0.795181 +vt 0.272727 0.783133 +vt 0.248835 0.797031 +vt 0.249922 0.801204 +vt 0.248835 0.805376 +vt 0.243588 0.805376 +vt 0.242501 0.801204 +vn -0.7071 0.7071 0.0000 +vn 0.9113 0.4118 0.0000 +vn 0.8576 -0.3996 -0.3238 +vn 0.7175 0.2181 -0.6615 +vn 0.7071 0.7071 0.0000 +vn 0.7175 0.2181 0.6615 +vn -0.0000 -0.0000 1.0000 +vn -0.2181 -0.7175 0.6615 +vn 0.2497 -0.2497 0.9356 +vn -0.5000 -0.5000 -0.7071 +vn -0.4118 -0.9113 -0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.5000 0.5000 -0.7071 +vn 0.5000 0.5000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn 0.0000 -0.0000 -1.0000 +vn -0.2181 -0.7175 -0.6615 +vn 0.2497 -0.2497 -0.9356 +vn 0.3996 -0.8576 0.3238 +vn 0.3048 -0.9524 -0.0000 +vn 0.9524 -0.3048 0.0000 +vn 0.8576 -0.3996 0.3238 +vn 0.3996 -0.8576 -0.3238 +vn 0.6286 -0.6286 -0.4580 +vn 0.6286 -0.6286 0.4580 +s off +f 397/601/131 399/602/131 393/603/131 +f 393/603/131 394/604/131 395/605/131 +f 395/605/131 396/606/131 397/601/131 +f 397/601/131 398/607/131 399/602/131 +f 399/602/131 400/608/131 393/603/131 +f 393/603/131 395/605/131 397/601/131 +s 1 +f 407/609/132 416/610/133 408/611/134 +f 399/612/135 406/613/136 407/609/132 +f 397/614/137 404/615/138 405/616/139 +f 394/617/140 403/618/141 395/619/142 +f 399/612/135 408/611/134 400/620/143 +f 398/621/144 405/616/139 406/613/136 +f 396/622/145 403/623/141 404/615/138 +f 393/624/146 401/625/147 394/617/140 +f 400/620/143 402/626/148 393/624/146 +f 412/627/149 411/628/150 415/629/151 +f 405/616/139 414/630/152 406/613/136 +f 404/615/138 411/631/150 412/632/149 +f 402/626/148 409/633/153 401/625/147 +f 408/611/134 410/634/154 402/626/148 +f 407/609/132 414/630/152 415/635/151 +f 405/616/139 412/632/149 413/636/155 +f 401/625/147 411/637/150 403/618/141 +f 407/609/132 415/635/151 416/610/133 +f 399/612/135 398/621/144 406/613/136 +f 397/614/137 396/622/145 404/615/138 +f 394/617/140 401/625/147 403/618/141 +f 399/612/135 407/609/132 408/611/134 +f 398/621/144 397/614/137 405/616/139 +f 396/622/145 395/638/142 403/623/141 +f 393/624/146 402/626/148 401/625/147 +f 400/620/143 408/611/134 402/626/148 +f 411/628/150 409/639/153 415/629/151 +f 409/639/153 410/640/154 415/629/151 +f 410/640/154 416/641/133 415/629/151 +f 415/629/151 414/642/152 413/643/155 +f 413/643/155 412/627/149 415/629/151 +f 405/616/139 413/636/155 414/630/152 +f 404/615/138 403/623/141 411/631/150 +f 402/626/148 410/634/154 409/633/153 +f 408/611/134 416/610/133 410/634/154 +f 407/609/132 406/613/136 414/630/152 +f 405/616/139 404/615/138 412/632/149 +f 401/625/147 409/633/153 411/637/150 +o Safety +v -0.625000 -0.812500 -0.625000 +v -0.625000 -0.562500 -0.625000 +v -0.625000 -0.812500 -0.875000 +v -0.625000 -0.562500 -0.875000 +v 0.375000 -0.812500 -0.625000 +v 0.375000 -0.562500 -0.625000 +v 0.375000 -0.812500 -0.875000 +v 0.375000 -0.562500 -0.875000 +vt 0.840909 0.572289 +vt 0.856061 0.548193 +vt 0.856061 0.572289 +vt 0.840909 0.548193 +vt 0.780303 0.524096 +vt 0.840909 0.524096 +vt 0.780303 0.548193 +vt 0.765152 0.572289 +vt 0.765152 0.548193 +vt 0.780303 0.572289 +vt 0.840909 0.596386 +vt 0.780303 0.596386 +vt 0.840909 0.500000 +vt 0.780303 0.500000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 418/644/156 419/645/156 417/646/156 +f 420/647/157 423/648/157 419/649/157 +f 424/650/158 421/651/158 423/652/158 +f 422/653/159 417/654/159 421/655/159 +f 423/648/160 417/656/160 419/649/160 +f 420/647/161 422/653/161 424/650/161 +f 418/644/156 420/647/156 419/645/156 +f 420/647/157 424/650/157 423/648/157 +f 424/650/158 422/653/158 421/651/158 +f 422/653/159 418/644/159 417/654/159 +f 423/648/160 421/657/160 417/656/160 +f 420/647/161 418/644/161 422/653/161 +o Handle +v 0.343750 -0.008373 2.687500 +v 0.406250 -0.116627 2.687500 +v 0.343750 -0.008373 2.062500 +v 0.406250 -0.116627 2.062500 +v 0.452003 0.054127 2.687500 +v 0.514503 -0.054127 2.687500 +v 0.560256 0.116627 2.437500 +v 0.622756 0.008373 2.437500 +v 0.885016 0.304127 2.437500 +v 0.947516 0.195873 2.437500 +v 0.993269 0.366626 2.062500 +v 0.993269 0.366626 2.500000 +v 1.055769 0.258373 2.500000 +v 1.055769 0.258373 2.062500 +vt 0.662879 0.849398 +vt 0.625000 0.861446 +vt 0.625000 0.849398 +vt 0.617424 0.861446 +vt 0.625000 0.873494 +vt 0.617424 0.873494 +vt 0.693182 0.885542 +vt 0.670455 0.933735 +vt 0.670455 0.861446 +vt 0.617424 0.897590 +vt 0.662879 0.933735 +vt 0.662879 0.861446 +vt 0.625000 0.897590 +vt 0.617424 0.933735 +vt 0.636364 0.933735 +vt 0.662879 0.945783 +vt 0.636364 0.945783 +vt 0.640152 0.885542 +vt 0.625000 0.945783 +vt 0.617424 0.945783 +vt 0.708333 0.861446 +vt 0.708333 0.873494 +vt 0.693182 0.921687 +vt 0.696970 0.933735 +vt 0.625000 0.933735 +vt 0.640152 0.921687 +vn -0.8660 -0.5000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.5000 0.8660 0.0000 +vn 0.7746 0.4472 0.4472 +vn 0.0000 0.0000 -1.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.3873 -0.2236 0.8944 +s off +f 427/658/162 426/659/162 425/660/162 +f 425/661/163 430/662/163 429/663/163 +f 431/664/164 435/665/164 427/666/164 +f 430/662/165 431/667/165 429/663/165 +f 427/666/166 438/668/166 428/669/166 +f 432/670/163 433/671/163 431/667/163 +f 437/672/167 435/673/167 436/674/167 +f 426/659/168 428/669/168 432/675/168 +f 433/671/169 437/676/169 436/677/169 +f 427/658/162 428/669/162 426/659/162 +f 425/661/163 426/659/163 430/662/163 +f 425/678/164 429/679/164 431/664/164 +f 433/680/164 436/681/164 435/665/164 +f 427/666/164 425/678/164 431/664/164 +f 431/664/164 433/680/164 435/665/164 +f 430/662/165 432/670/165 431/667/165 +f 427/666/166 435/665/166 438/668/166 +f 432/670/163 434/682/163 433/671/163 +f 437/672/167 438/668/167 435/673/167 +f 428/669/168 438/668/168 432/675/168 +f 438/668/168 437/672/168 434/683/168 +f 438/668/168 434/683/168 432/675/168 +f 430/662/168 426/659/168 432/675/168 +f 433/671/169 434/682/169 437/676/169 +o Bullets +v -0.062500 -0.250000 -4.375000 +v -0.125000 -0.266747 -4.375000 +v -0.170753 -0.312500 -4.375000 +v -0.187500 -0.375000 -4.375000 +v -0.170753 -0.437500 -4.375000 +v -0.125000 -0.483253 -4.375000 +v -0.062500 -0.500000 -4.375000 +v 0.000000 -0.483253 -4.375000 +v 0.045753 -0.437500 -4.375000 +v 0.062500 -0.375000 -4.375000 +v 0.045753 -0.312500 -4.375000 +v 0.000000 -0.266747 -4.375000 +v -0.062500 -0.250000 -3.625000 +v -0.125000 -0.266747 -3.625000 +v -0.170753 -0.312500 -3.625000 +v -0.187500 -0.375000 -3.625000 +v -0.170753 -0.437500 -3.625000 +v -0.125000 -0.483253 -3.625000 +v -0.062500 -0.500000 -3.625000 +v 0.000000 -0.483253 -3.625000 +v 0.045753 -0.437500 -3.625000 +v 0.062500 -0.375000 -3.625000 +v 0.045753 -0.312500 -3.625000 +v 0.000000 -0.266747 -3.625000 +v -0.062500 -0.281250 -3.500000 +v -0.109375 -0.293810 -3.500000 +v -0.143690 -0.328125 -3.500000 +v -0.156250 -0.375000 -3.500000 +v -0.143690 -0.421875 -3.500000 +v -0.109375 -0.456190 -3.500000 +v -0.062500 -0.468750 -3.500000 +v -0.015625 -0.456190 -3.500000 +v 0.018690 -0.421875 -3.500000 +v 0.031250 -0.375000 -3.500000 +v 0.018690 -0.328125 -3.500000 +v -0.015625 -0.293810 -3.500000 +v -0.062500 -0.281250 -3.375000 +v -0.109375 -0.293810 -3.375000 +v -0.143690 -0.328125 -3.375000 +v -0.156250 -0.375000 -3.375000 +v -0.143690 -0.421875 -3.375000 +v -0.109375 -0.456190 -3.375000 +v -0.062500 -0.468750 -3.375000 +v -0.015625 -0.456190 -3.375000 +v 0.018690 -0.421875 -3.375000 +v 0.031250 -0.375000 -3.375000 +v 0.018690 -0.328125 -3.375000 +v -0.015625 -0.293810 -3.375000 +v -0.062500 -0.375000 -3.125000 +v 0.062500 -0.467817 -4.375000 +v 0.000000 -0.484564 -4.375000 +v -0.045753 -0.530317 -4.375000 +v -0.062500 -0.592817 -4.375000 +v -0.045753 -0.655317 -4.375000 +v 0.000000 -0.701071 -4.375000 +v 0.062500 -0.717817 -4.375000 +v 0.125000 -0.701071 -4.375000 +v 0.170753 -0.655317 -4.375000 +v 0.187500 -0.592817 -4.375000 +v 0.170753 -0.530317 -4.375000 +v 0.125000 -0.484564 -4.375000 +v 0.062500 -0.467817 -3.625000 +v 0.000000 -0.484564 -3.625000 +v -0.045753 -0.530317 -3.625000 +v -0.062500 -0.592817 -3.625000 +v -0.045753 -0.655317 -3.625000 +v 0.000000 -0.701071 -3.625000 +v 0.062500 -0.717817 -3.625000 +v 0.125000 -0.701071 -3.625000 +v 0.170753 -0.655317 -3.625000 +v 0.187500 -0.592817 -3.625000 +v 0.170753 -0.530317 -3.625000 +v 0.125000 -0.484564 -3.625000 +v 0.062500 -0.499067 -3.500000 +v 0.015625 -0.511627 -3.500000 +v -0.018690 -0.545942 -3.500000 +v -0.031250 -0.592817 -3.500000 +v -0.018690 -0.639692 -3.500000 +v 0.015625 -0.674007 -3.500000 +v 0.062500 -0.686567 -3.500000 +v 0.109375 -0.674007 -3.500000 +v 0.143690 -0.639692 -3.500000 +v 0.156250 -0.592817 -3.500000 +v 0.143690 -0.545942 -3.500000 +v 0.109375 -0.511627 -3.500000 +v 0.062500 -0.499067 -3.375000 +v 0.015625 -0.511627 -3.375000 +v -0.018690 -0.545942 -3.375000 +v -0.031250 -0.592817 -3.375000 +v -0.018690 -0.639692 -3.375000 +v 0.015625 -0.674007 -3.375000 +v 0.062500 -0.686567 -3.375000 +v 0.109375 -0.674007 -3.375000 +v 0.143690 -0.639692 -3.375000 +v 0.156250 -0.592817 -3.375000 +v 0.143690 -0.545942 -3.375000 +v 0.109375 -0.511627 -3.375000 +v 0.062500 -0.592817 -3.125000 +vt 0.809524 0.602471 +vt 0.809524 0.614396 +vt 0.796536 0.614396 +vt 0.809524 0.602471 +vt 0.809524 0.614396 +vt 0.796536 0.614396 +vt 0.806780 0.618761 +vt 0.803030 0.620359 +vt 0.799281 0.618761 +vt 0.795532 0.608434 +vt 0.796536 0.602471 +vt 0.799281 0.598106 +vt 0.803030 0.596508 +vt 0.806780 0.598106 +vt 0.810529 0.608434 +vt 0.806780 0.618761 +vt 0.803030 0.620359 +vt 0.799281 0.618761 +vt 0.795532 0.608434 +vt 0.796536 0.602471 +vt 0.799281 0.598106 +vt 0.803030 0.596508 +vt 0.806780 0.598106 +vt 0.810529 0.608434 +vt 0.799242 0.632530 +vt 0.795455 0.704819 +vt 0.795455 0.632530 +vt 0.780303 0.632530 +vt 0.776515 0.704819 +vt 0.776515 0.632530 +vt 0.768939 0.632530 +vt 0.765152 0.704819 +vt 0.765152 0.632530 +vt 0.803030 0.632530 +vt 0.799242 0.704819 +vt 0.784091 0.632530 +vt 0.780303 0.704819 +vt 0.791667 0.632530 +vt 0.787879 0.704819 +vt 0.787879 0.632530 +vt 0.772727 0.632530 +vt 0.768939 0.704819 +vt 0.806818 0.632530 +vt 0.803030 0.704819 +vt 0.784091 0.704819 +vt 0.791667 0.704819 +vt 0.772727 0.704819 +vt 0.810606 0.632530 +vt 0.806818 0.704819 +vt 0.768939 0.716867 +vt 0.803030 0.716867 +vt 0.784091 0.716867 +vt 0.795455 0.716867 +vt 0.791667 0.716867 +vt 0.776515 0.716867 +vt 0.772727 0.716867 +vt 0.810606 0.704819 +vt 0.806818 0.716867 +vt 0.780303 0.716867 +vt 0.765152 0.716867 +vt 0.799242 0.716867 +vt 0.787879 0.716867 +vt 0.787879 0.728916 +vt 0.768939 0.728916 +vt 0.803030 0.728916 +vt 0.784091 0.728916 +vt 0.791667 0.728916 +vt 0.772727 0.728916 +vt 0.810606 0.716867 +vt 0.806818 0.728916 +vt 0.795455 0.728916 +vt 0.776515 0.728916 +vt 0.765152 0.728916 +vt 0.799242 0.728916 +vt 0.780303 0.728916 +vt 0.787879 0.753012 +vt 0.795455 0.753012 +vt 0.776515 0.753012 +vt 0.810606 0.728916 +vt 0.810606 0.753012 +vt 0.799242 0.753012 +vt 0.780303 0.753012 +vt 0.768939 0.753012 +vt 0.803030 0.753012 +vt 0.784091 0.753012 +vt 0.772727 0.753012 +vt 0.806818 0.753012 +vt 0.791667 0.753012 +vt 0.799242 0.632530 +vt 0.795455 0.704819 +vt 0.795455 0.632530 +vt 0.780303 0.632530 +vt 0.776515 0.704819 +vt 0.776515 0.632530 +vt 0.768939 0.632530 +vt 0.765152 0.704819 +vt 0.765152 0.632530 +vt 0.803030 0.632530 +vt 0.799242 0.704819 +vt 0.784091 0.632530 +vt 0.780303 0.704819 +vt 0.791667 0.632530 +vt 0.787879 0.704819 +vt 0.787879 0.632530 +vt 0.772727 0.632530 +vt 0.768939 0.704819 +vt 0.806818 0.632530 +vt 0.803030 0.704819 +vt 0.784091 0.704819 +vt 0.791667 0.704819 +vt 0.772727 0.704819 +vt 0.810606 0.632530 +vt 0.806818 0.704819 +vt 0.772727 0.716867 +vt 0.768939 0.716867 +vt 0.806818 0.716867 +vt 0.803030 0.716867 +vt 0.784091 0.716867 +vt 0.795455 0.716867 +vt 0.791667 0.716867 +vt 0.810606 0.704819 +vt 0.780303 0.716867 +vt 0.776515 0.716867 +vt 0.765152 0.716867 +vt 0.799242 0.716867 +vt 0.787879 0.716867 +vt 0.787879 0.728916 +vt 0.768939 0.728916 +vt 0.803030 0.728916 +vt 0.784091 0.728916 +vt 0.791667 0.728916 +vt 0.772727 0.728916 +vt 0.810606 0.716867 +vt 0.806818 0.728916 +vt 0.795455 0.728916 +vt 0.776515 0.728916 +vt 0.765152 0.728916 +vt 0.799242 0.728916 +vt 0.780303 0.728916 +vt 0.787879 0.753012 +vt 0.795455 0.753012 +vt 0.776515 0.753012 +vt 0.810606 0.728916 +vt 0.810606 0.753012 +vt 0.799242 0.753012 +vt 0.780303 0.753012 +vt 0.768939 0.753012 +vt 0.803030 0.753012 +vt 0.784091 0.753012 +vt 0.772727 0.753012 +vt 0.806818 0.753012 +vt 0.791667 0.753012 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.8402 -0.4851 0.2425 +vn 0.4851 -0.8402 0.2425 +vn -0.4851 -0.8402 0.2425 +vn -0.8402 -0.4851 0.2425 +vn 0.0000 0.9701 0.2425 +vn 0.4851 0.8402 0.2425 +vn -0.4851 0.8402 0.2425 +vn -0.8402 0.4851 0.2425 +vn 0.9701 -0.0000 0.2425 +vn 0.0000 -0.9701 0.2425 +vn -0.9701 -0.0000 0.2425 +vn 0.8402 0.4851 0.2425 +vn 0.0000 0.9848 0.1735 +vn 0.4924 -0.8529 0.1735 +vn -0.8529 -0.4924 0.1735 +vn 0.4924 0.8529 0.1735 +vn -0.4924 0.8529 0.1735 +vn 0.8529 -0.4924 0.1735 +vn -0.4924 -0.8529 0.1735 +vn -0.8529 0.4924 0.1735 +vn 0.9848 -0.0000 0.1735 +vn 0.0000 -0.9848 0.1735 +vn -0.9848 0.0000 0.1735 +vn 0.8529 0.4924 0.1735 +vn -0.0000 0.0000 1.0000 +s off +f 443/684/170 441/685/170 449/686/170 +f 492/687/170 490/688/170 498/689/170 +f 441/685/170 440/690/170 439/691/170 +f 439/691/170 450/692/170 449/686/170 +f 449/686/170 448/693/170 447/694/170 +f 447/694/170 446/695/170 445/696/170 +f 445/696/170 444/697/170 443/684/170 +f 443/684/170 442/698/170 441/685/170 +f 441/685/170 439/691/170 449/686/170 +f 449/686/170 447/694/170 445/696/170 +f 445/696/170 443/684/170 449/686/170 +f 490/688/170 489/699/170 488/700/170 +f 488/700/170 499/701/170 498/689/170 +f 498/689/170 497/702/170 496/703/170 +f 496/703/170 495/704/170 494/705/170 +f 494/705/170 493/706/170 492/687/170 +f 492/687/170 491/707/170 490/688/170 +f 490/688/170 488/700/170 498/689/170 +f 498/689/170 496/703/170 494/705/170 +f 494/705/170 492/687/170 498/689/170 +s 1 +f 442/708/171 453/709/172 441/710/172 +f 449/711/173 460/712/174 448/713/174 +f 446/714/175 457/715/176 445/716/176 +f 443/717/177 454/718/171 442/708/171 +f 450/719/178 461/720/173 449/711/173 +f 440/721/179 451/722/180 439/723/180 +f 447/724/181 458/725/175 446/714/175 +f 444/726/182 455/727/177 443/717/177 +f 439/723/180 462/728/178 450/719/178 +f 441/710/172 452/729/179 440/721/179 +f 448/713/174 459/730/181 447/724/181 +f 445/731/176 456/732/182 444/726/182 +f 459/730/183 470/733/184 458/725/184 +f 456/732/185 467/734/186 455/727/186 +f 451/722/187 474/735/188 462/728/188 +f 452/729/189 465/736/190 464/737/189 +f 459/730/183 472/738/191 471/739/183 +f 457/740/192 468/741/185 456/732/185 +f 454/718/193 465/736/190 453/709/190 +f 460/712/191 473/742/194 472/738/191 +f 457/715/192 470/733/184 469/743/192 +f 455/727/186 466/744/193 454/718/193 +f 462/728/188 473/742/194 461/720/194 +f 451/722/187 464/737/189 463/745/187 +f 464/737/179 475/746/195 463/745/180 +f 471/739/181 482/747/196 470/733/175 +f 468/741/182 479/748/197 467/734/177 +f 463/745/180 486/749/198 474/735/178 +f 465/736/172 476/750/199 464/737/179 +f 472/738/174 483/751/200 471/739/181 +f 469/752/176 480/753/201 468/741/182 +f 466/744/171 477/754/202 465/736/172 +f 473/742/173 484/755/203 472/738/174 +f 470/733/175 481/756/204 469/743/176 +f 467/734/177 478/757/205 466/744/171 +f 474/735/178 485/758/206 473/742/173 +f 475/746/195 487/759/207 486/749/198 +f 477/754/202 487/760/207 476/750/199 +f 484/755/203 487/761/207 483/751/200 +f 481/762/204 487/763/207 480/753/201 +f 478/757/205 487/764/207 477/754/202 +f 485/758/206 487/765/207 484/755/203 +f 482/747/196 487/766/207 481/756/204 +f 479/748/197 487/767/207 478/757/205 +f 486/749/198 487/768/207 485/758/206 +f 483/751/200 487/769/207 482/747/196 +f 480/753/201 487/770/207 479/748/197 +f 476/750/199 487/771/207 475/746/195 +f 491/772/171 502/773/172 490/774/172 +f 498/775/173 509/776/174 497/777/174 +f 495/778/175 506/779/176 494/780/176 +f 492/781/177 503/782/171 491/772/171 +f 499/783/178 510/784/173 498/775/173 +f 489/785/179 500/786/180 488/787/180 +f 496/788/181 507/789/175 495/778/175 +f 493/790/182 504/791/177 492/781/177 +f 488/787/180 511/792/178 499/783/178 +f 490/774/172 501/793/179 489/785/179 +f 497/777/174 508/794/181 496/788/181 +f 494/795/176 505/796/182 493/790/182 +f 507/789/184 520/797/183 519/798/184 +f 504/791/186 517/799/185 516/800/186 +f 500/786/187 523/801/188 511/792/188 +f 501/793/189 514/802/190 513/803/189 +f 509/776/191 520/797/183 508/794/183 +f 506/804/192 517/799/185 505/796/185 +f 503/782/193 514/802/190 502/773/190 +f 509/776/191 522/805/194 521/806/191 +f 506/779/192 519/798/184 518/807/192 +f 503/782/193 516/800/186 515/808/193 +f 511/792/188 522/805/194 510/784/194 +f 500/786/187 513/803/189 512/809/187 +f 513/803/179 524/810/195 512/809/180 +f 520/797/181 531/811/196 519/798/175 +f 517/799/182 528/812/197 516/800/177 +f 512/809/180 535/813/198 523/801/178 +f 514/802/172 525/814/199 513/803/179 +f 521/806/174 532/815/200 520/797/181 +f 518/816/176 529/817/201 517/799/182 +f 515/808/171 526/818/202 514/802/172 +f 522/805/173 533/819/203 521/806/174 +f 519/798/175 530/820/204 518/807/176 +f 516/800/177 527/821/205 515/808/171 +f 523/801/178 534/822/206 522/805/173 +f 524/810/195 536/823/207 535/813/198 +f 526/818/202 536/824/207 525/814/199 +f 533/819/203 536/825/207 532/815/200 +f 530/826/204 536/827/207 529/817/201 +f 527/821/205 536/828/207 526/818/202 +f 534/822/206 536/829/207 533/819/203 +f 531/811/196 536/830/207 530/820/204 +f 528/812/197 536/831/207 527/821/205 +f 535/813/198 536/832/207 534/822/206 +f 532/815/200 536/833/207 531/811/196 +f 529/817/201 536/834/207 528/812/197 +f 525/814/199 536/835/207 524/810/195 +f 442/708/171 454/718/171 453/709/172 +f 449/711/173 461/720/173 460/712/174 +f 446/714/175 458/725/175 457/715/176 +f 443/717/177 455/727/177 454/718/171 +f 450/719/178 462/728/178 461/720/173 +f 440/721/179 452/729/179 451/722/180 +f 447/724/181 459/730/181 458/725/175 +f 444/726/182 456/732/182 455/727/177 +f 439/723/180 451/722/180 462/728/178 +f 441/710/172 453/709/172 452/729/179 +f 448/713/174 460/712/174 459/730/181 +f 445/731/176 457/740/176 456/732/182 +f 459/730/183 471/739/183 470/733/184 +f 456/732/185 468/741/185 467/734/186 +f 451/722/187 463/745/187 474/735/188 +f 452/729/189 453/709/190 465/736/190 +f 459/730/183 460/712/191 472/738/191 +f 457/740/192 469/752/192 468/741/185 +f 454/718/193 466/744/193 465/736/190 +f 460/712/191 461/720/194 473/742/194 +f 457/715/192 458/725/184 470/733/184 +f 455/727/186 467/734/186 466/744/193 +f 462/728/188 474/735/188 473/742/194 +f 451/722/187 452/729/189 464/737/189 +f 464/737/179 476/750/199 475/746/195 +f 471/739/181 483/751/200 482/747/196 +f 468/741/182 480/753/201 479/748/197 +f 463/745/180 475/746/195 486/749/198 +f 465/736/172 477/754/202 476/750/199 +f 472/738/174 484/755/203 483/751/200 +f 469/752/176 481/762/204 480/753/201 +f 466/744/171 478/757/205 477/754/202 +f 473/742/173 485/758/206 484/755/203 +f 470/733/175 482/747/196 481/756/204 +f 467/734/177 479/748/197 478/757/205 +f 474/735/178 486/749/198 485/758/206 +f 491/772/171 503/782/171 502/773/172 +f 498/775/173 510/784/173 509/776/174 +f 495/778/175 507/789/175 506/779/176 +f 492/781/177 504/791/177 503/782/171 +f 499/783/178 511/792/178 510/784/173 +f 489/785/179 501/793/179 500/786/180 +f 496/788/181 508/794/181 507/789/175 +f 493/790/182 505/796/182 504/791/177 +f 488/787/180 500/786/180 511/792/178 +f 490/774/172 502/773/172 501/793/179 +f 497/777/174 509/776/174 508/794/181 +f 494/795/176 506/804/176 505/796/182 +f 507/789/184 508/794/183 520/797/183 +f 504/791/186 505/796/185 517/799/185 +f 500/786/187 512/809/187 523/801/188 +f 501/793/189 502/773/190 514/802/190 +f 509/776/191 521/806/191 520/797/183 +f 506/804/192 518/816/192 517/799/185 +f 503/782/193 515/808/193 514/802/190 +f 509/776/191 510/784/194 522/805/194 +f 506/779/192 507/789/184 519/798/184 +f 503/782/193 504/791/186 516/800/186 +f 511/792/188 523/801/188 522/805/194 +f 500/786/187 501/793/189 513/803/189 +f 513/803/179 525/814/199 524/810/195 +f 520/797/181 532/815/200 531/811/196 +f 517/799/182 529/817/201 528/812/197 +f 512/809/180 524/810/195 535/813/198 +f 514/802/172 526/818/202 525/814/199 +f 521/806/174 533/819/203 532/815/200 +f 518/816/176 530/826/204 529/817/201 +f 515/808/171 527/821/205 526/818/202 +f 522/805/173 534/822/206 533/819/203 +f 519/798/175 531/811/196 530/820/204 +f 516/800/177 528/812/197 527/821/205 +f 523/801/178 535/813/198 534/822/206 +o Magazine +v -0.250000 -0.625000 -3.062500 +v 0.250000 -0.625000 -3.062500 +v -0.250000 -0.250000 -4.437500 +v 0.250000 -0.250000 -4.437500 +v -0.250000 -1.625000 -4.437500 +v -0.250000 -1.250000 -3.062500 +v 0.250000 -1.250000 -3.062500 +v 0.250000 -1.625000 -4.437500 +v -0.250000 -3.625000 -3.937500 +v 0.250000 -3.625000 -3.937500 +v -0.250000 -3.250000 -2.562500 +v 0.250000 -3.250000 -2.562500 +v -0.250000 -0.375000 -3.312500 +v 0.250000 -0.375000 -3.312500 +v -0.250000 -0.375000 -3.562500 +v 0.250000 -0.375000 -3.562500 +v -0.250000 -0.250000 -3.812500 +v 0.250000 -0.250000 -3.812500 +v -0.125000 -0.250000 -4.437500 +v -0.125000 -0.375000 -3.312500 +v -0.125000 -0.375000 -3.562500 +v -0.125000 -0.250000 -3.812500 +v 0.125000 -0.250000 -4.437500 +v 0.125000 -0.375000 -3.312500 +v 0.125000 -0.375000 -3.562500 +v 0.125000 -0.250000 -3.812500 +v -0.125000 -0.562500 -3.125000 +v 0.125000 -0.562500 -3.125000 +v -0.125000 -0.687500 -3.125000 +v 0.125000 -0.687500 -3.125000 +v -0.125000 -0.687500 -4.375000 +v 0.125000 -0.687500 -4.375000 +v -0.125000 -0.437500 -4.437500 +v 0.125000 -0.437500 -4.437500 +v -0.125000 -0.437500 -4.375000 +v 0.125000 -0.437500 -4.375000 +vt 0.878788 0.132530 +vt 0.840909 0.144578 +vt 0.840909 0.132530 +vt 0.893939 0.132530 +vt 0.878788 0.144578 +vt 0.909091 0.132530 +vt 0.893939 0.144578 +vt 0.810606 0.132530 +vt 0.772727 0.144578 +vt 0.772727 0.132530 +vt 0.912879 0.391566 +vt 1.000000 0.192771 +vt 1.000000 0.391566 +vt 0.795455 0.192771 +vt 0.882576 0.391566 +vt 0.795455 0.391566 +vt 0.882576 0.144578 +vt 0.882576 0.192771 +vt 0.757576 0.144578 +vt 0.757576 0.132530 +vt 0.810606 -0.000000 +vt 0.757576 0.120482 +vt 0.840909 -0.000000 +vt 0.924242 0.036145 +vt 0.893939 0.120482 +vt 0.742424 0.144578 +vt 0.742424 0.132530 +vt 0.704545 0.102410 +vt 0.696970 0.120482 +vt 0.696970 0.096386 +vt 0.719697 0.102410 +vt 0.727273 0.096386 +vt 0.727273 0.120482 +vt 0.765152 0.433735 +vt 0.772727 0.457831 +vt 0.765152 0.457831 +vt 0.772727 0.433735 +vt 0.848485 0.457831 +vt 0.833333 0.114458 +vt 0.818182 0.120482 +vt 0.818182 0.114458 +vt 0.863636 0.433735 +vt 0.848485 0.433735 +vt 0.772727 0.469880 +vt 0.848485 0.481928 +vt 0.772727 0.421687 +vt 0.784091 0.403614 +vt 0.799242 0.403614 +vt 0.799242 0.487952 +vt 0.909091 0.144578 +vt 0.810606 0.144578 +vt 0.912879 0.192771 +vt 0.795455 0.144578 +vt 0.742424 0.120482 +vt 0.727273 0.036145 +vt 0.924242 0.096386 +vt 0.909091 0.120482 +vt 0.704545 0.120482 +vt 0.719697 0.120482 +vt 0.833333 0.120482 +vt 0.863636 0.457831 +vt 0.848485 0.409639 +vt 0.814394 0.391566 +vt 0.852273 0.391566 +vt 0.852273 0.409639 +vt 0.852273 0.481928 +vt 0.852273 0.500000 +vt 0.814394 0.500000 +vt 0.784091 0.487952 +vt 0.765152 0.391566 +vt 0.833333 0.132530 +vt 0.696970 0.036145 +vt 0.765152 0.192771 +vt 0.818182 0.132530 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.9648 0.2631 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.1222 -0.9925 +vn 0.0000 -0.2425 -0.9701 +vn 0.0000 0.1222 0.9925 +vn 0.0000 0.2425 0.9701 +s off +f 553/836/208 555/837/208 539/838/208 +f 551/839/209 558/840/209 553/836/209 +f 549/841/208 557/842/208 551/839/208 +f 540/843/208 562/844/208 554/845/208 +f 541/846/210 547/847/210 542/848/210 +f 548/849/211 544/850/211 543/851/211 +f 548/849/212 545/852/212 546/853/212 +f 554/845/209 561/854/209 552/855/209 +f 544/856/211 554/845/211 552/857/211 +f 541/858/210 542/859/210 551/860/210 +f 552/855/208 560/861/208 550/862/208 +f 563/863/213 549/864/213 537/865/213 +f 564/866/213 537/865/213 538/867/213 +f 550/868/213 564/866/213 538/867/213 +f 564/869/214 565/870/214 563/871/214 +f 566/872/208 567/873/208 565/870/208 +f 569/874/208 572/875/208 570/876/208 +f 572/877/215 567/873/215 568/878/215 +f 563/879/211 567/873/211 571/880/211 +f 564/881/210 568/878/210 566/872/210 +f 564/881/210 560/882/210 561/883/210 +f 557/884/211 563/879/211 571/880/211 +f 553/836/208 558/840/208 555/837/208 +f 551/839/209 557/842/209 558/840/209 +f 549/841/208 556/885/208 557/842/208 +f 540/843/208 559/886/208 562/844/208 +f 541/846/210 545/887/210 547/847/210 +f 548/849/211 546/853/211 544/850/211 +f 548/849/212 547/888/212 545/852/212 +f 554/845/209 562/844/209 561/854/209 +f 552/857/211 550/889/211 538/867/211 +f 538/867/211 543/890/211 552/857/211 +f 543/890/211 544/856/211 552/857/211 +f 544/856/211 540/843/211 554/845/211 +f 542/859/210 537/891/210 551/860/210 +f 537/891/210 549/892/210 551/860/210 +f 551/860/210 553/836/210 541/858/210 +f 553/836/210 539/838/210 541/858/210 +f 552/855/208 561/854/208 560/861/208 +f 563/863/213 556/893/213 549/864/213 +f 564/866/213 563/863/213 537/865/213 +f 550/868/213 560/894/213 564/866/213 +f 564/869/214 566/872/214 565/870/214 +f 566/872/208 568/878/208 567/873/208 +f 569/874/208 571/895/208 572/875/208 +f 572/877/215 571/896/215 567/873/215 +f 563/879/211 565/870/211 567/873/211 +f 564/881/210 572/897/210 568/878/210 +f 561/883/210 562/898/210 572/897/210 +f 562/898/210 559/899/210 572/897/210 +f 559/899/210 570/900/210 572/897/210 +f 572/897/210 564/881/210 561/883/210 +f 569/901/211 555/902/211 571/880/211 +f 555/902/211 558/903/211 571/880/211 +f 557/884/211 556/904/211 563/879/211 +f 558/903/211 557/884/211 571/880/211 +s 1 +f 544/850/216 545/887/217 541/846/216 +f 537/865/215 543/890/218 538/867/215 +f 542/905/218 548/849/219 543/851/218 +f 570/876/214 540/843/214 544/856/216 +f 541/858/216 570/876/214 544/856/216 +f 569/874/214 539/838/214 555/906/214 +f 544/850/216 546/853/217 545/887/217 +f 537/865/215 542/907/218 543/890/218 +f 542/905/218 547/908/219 548/849/219 +f 570/876/214 559/909/214 540/843/214 +f 541/858/216 569/874/214 570/876/214 +f 569/874/214 541/858/216 539/838/214 +o Gun +v -0.125000 0.437500 -7.500000 +v 0.125000 0.437500 -7.500000 +v -0.500000 -0.187500 -7.750000 +v 0.500000 -0.187500 -7.750000 +v -0.500000 -0.437500 -1.500000 +v 0.500000 -0.437500 -1.500000 +v -0.250000 -0.687500 -1.500000 +v 0.250000 -0.687500 -1.500000 +v -0.250000 -0.687500 2.750000 +v 0.250000 -0.687500 2.750000 +v -0.500000 -0.437500 2.750000 +v 0.500000 -0.437500 2.750000 +v -0.500000 -0.187500 2.750000 +v 0.500000 -0.187500 2.750000 +v -0.125000 0.312500 2.750000 +v 0.125000 0.312500 2.750000 +v -0.500000 -0.187500 -0.250000 +v 0.500000 -0.187500 -0.250000 +v -0.125000 0.312500 -0.250000 +v 0.125000 0.312500 -0.250000 +v -0.125000 0.437500 -0.250000 +v 0.125000 0.437500 -0.250000 +v 0.000000 1.687500 1.500000 +v -0.125000 1.654006 1.500000 +v -0.216506 1.562500 1.500000 +v -0.250000 1.437500 1.500000 +v -0.216506 1.312500 1.500000 +v -0.125000 1.220994 1.500000 +v 0.000000 1.187500 1.500000 +v 0.125000 1.220994 1.500000 +v 0.216506 1.312500 1.500000 +v 0.250000 1.437500 1.500000 +v 0.216506 1.562500 1.500000 +v 0.125000 1.654006 1.500000 +v 0.000000 1.687500 -0.750000 +v -0.125000 1.654006 -0.750000 +v -0.216506 1.562500 -0.750000 +v -0.250000 1.437500 -0.750000 +v -0.216506 1.312500 -0.750000 +v -0.125000 1.220994 -0.750000 +v 0.000000 1.187500 -0.750000 +v 0.125000 1.220994 -0.750000 +v 0.216506 1.312500 -0.750000 +v 0.250000 1.437500 -0.750000 +v 0.216506 1.562500 -0.750000 +v 0.125000 1.654006 -0.750000 +v 0.000000 1.750000 -1.250000 +v -0.156250 1.708133 -1.250000 +v -0.270633 1.593750 -1.250000 +v -0.312500 1.437500 -1.250000 +v -0.270633 1.281250 -1.250000 +v -0.156250 1.166867 -1.250000 +v 0.000000 1.125000 -1.250000 +v 0.156250 1.166867 -1.250000 +v 0.270633 1.281250 -1.250000 +v 0.312500 1.437500 -1.250000 +v 0.270633 1.593750 -1.250000 +v 0.156250 1.708133 -1.250000 +v 0.000000 1.750000 -2.750000 +v -0.156250 1.708133 -2.750000 +v -0.270633 1.593750 -2.750000 +v -0.312500 1.437500 -2.750000 +v -0.270633 1.281250 -2.750000 +v -0.156250 1.166867 -2.750000 +v 0.000000 1.125000 -2.750000 +v 0.156250 1.166867 -2.750000 +v 0.270633 1.281250 -2.750000 +v 0.312500 1.437500 -2.750000 +v 0.270633 1.593750 -2.750000 +v 0.156250 1.708133 -2.750000 +v 0.000000 1.687500 -2.750000 +v -0.125000 1.654006 -2.750000 +v -0.216506 1.562500 -2.750000 +v -0.250000 1.437500 -2.750000 +v -0.216506 1.312500 -2.750000 +v -0.125000 1.220994 -2.750000 +v 0.000000 1.187500 -2.750000 +v 0.125000 1.220994 -2.750000 +v 0.216506 1.312500 -2.750000 +v 0.250000 1.437500 -2.750000 +v 0.216506 1.562500 -2.750000 +v 0.125000 1.654006 -2.750000 +v 0.000000 1.625000 1.500000 +v -0.093750 1.599880 1.500000 +v -0.162380 1.531250 1.500000 +v -0.187500 1.437500 1.500000 +v -0.162380 1.343750 1.500000 +v -0.093750 1.275120 1.500000 +v 0.000000 1.250000 1.500000 +v 0.093750 1.275120 1.500000 +v 0.162380 1.343750 1.500000 +v 0.187500 1.437500 1.500000 +v 0.162380 1.531250 1.500000 +v 0.093750 1.599880 1.500000 +v 0.500000 -0.437500 -7.750000 +v -0.500000 -0.437500 -7.750000 +v 0.125000 -2.812500 -7.250000 +v -0.125000 -2.812500 -7.250000 +v -0.125000 -0.562500 -8.000000 +v 0.125000 -0.562500 -8.000000 +v 0.125000 0.062500 -8.000000 +v -0.125000 0.062500 -8.000000 +v 0.125000 -2.812500 -5.750000 +v -0.125000 -2.812500 -5.750000 +v 0.125000 -2.562500 -5.500000 +v -0.125000 -2.562500 -5.500000 +v 0.125000 -2.312500 -5.750000 +v -0.125000 -2.312500 -5.750000 +v -0.250000 -1.312500 -4.500000 +v 0.250000 -1.312500 -4.500000 +v -0.375000 -1.437500 -4.500000 +v 0.375000 -1.437500 -4.500000 +v -0.375000 -1.062500 -3.000000 +v 0.375000 -1.062500 -3.000000 +v -0.125000 0.312500 2.750000 +v 0.125000 0.312500 2.750000 +v -0.125000 0.312500 2.625000 +v 0.125000 0.312500 2.625000 +v -0.125000 0.687500 2.000000 +v 0.125000 0.687500 2.000000 +v -0.125000 0.687500 1.875000 +v 0.125000 0.687500 1.875000 +v -0.125000 1.250000 1.500000 +v 0.125000 1.250000 1.500000 +v -0.125000 1.250000 1.375000 +v 0.125000 1.250000 1.375000 +v -0.062500 0.312500 2.625000 +v 0.062500 0.312500 2.625000 +v -0.062500 0.687500 1.875000 +v 0.062500 0.687500 1.875000 +v -0.062500 1.250000 1.375000 +v 0.062500 1.250000 1.375000 +v -0.062500 0.437500 2.125000 +v 0.062500 0.437500 2.125000 +v -0.062500 0.687500 1.625000 +v 0.062500 0.687500 1.625000 +v -0.062500 1.250000 1.125000 +v 0.062500 1.250000 1.125000 +v -0.187500 1.437500 -0.750000 +v -0.162380 1.531250 -0.750000 +v -0.093750 1.599880 -0.750000 +v 0.000000 1.625000 -0.750000 +v -0.162380 1.343750 -0.750000 +v -0.093750 1.275120 -0.750000 +v 0.000000 1.250000 -0.750000 +v 0.093750 1.275120 -0.750000 +v 0.162380 1.343750 -0.750000 +v 0.187500 1.437500 -0.750000 +v 0.162380 1.531250 -0.750000 +v 0.093750 1.599880 -0.750000 +v 0.000000 1.687500 -1.250000 +v -0.125000 1.654006 -1.250000 +v -0.216506 1.562500 -1.250000 +v -0.250000 1.437500 -1.250000 +v -0.216506 1.312500 -1.250000 +v -0.125000 1.220994 -1.250000 +v 0.000000 1.187500 -1.250000 +v 0.125000 1.220994 -1.250000 +v 0.216506 1.312500 -1.250000 +v 0.250000 1.437500 -1.250000 +v 0.216506 1.562500 -1.250000 +v 0.125000 1.654006 -1.250000 +v -0.125000 0.312500 -0.125000 +v 0.125000 0.312500 -0.125000 +v -0.125000 0.312500 -0.250000 +v 0.125000 0.312500 -0.250000 +v 0.125000 0.562500 -0.125000 +v -0.125000 0.562500 -0.125000 +v -0.125000 0.562500 -0.250000 +v 0.125000 0.562500 -0.250000 +v 0.125000 0.812500 -0.375000 +v -0.125000 0.812500 -0.375000 +v -0.125000 0.812500 -0.500000 +v 0.125000 0.812500 -0.500000 +v 0.125000 1.187500 -1.250000 +v -0.125000 1.187500 -1.250000 +v -0.125000 1.187500 -1.375000 +v 0.125000 1.187500 -1.375000 +v -0.062500 0.312500 -0.125000 +v 0.062500 0.312500 -0.125000 +v -0.062500 0.312500 0.125000 +v 0.062500 0.312500 0.125000 +v -0.062500 0.562500 -0.125000 +v 0.062500 0.562500 -0.125000 +v -0.062500 0.562500 0.125000 +v 0.062500 0.562500 0.125000 +v -0.062500 0.812500 -0.375000 +v 0.062500 0.812500 -0.375000 +v -0.062500 0.812500 0.000000 +v 0.062500 0.812500 0.000000 +v -0.062500 1.187500 -1.250000 +v 0.062500 1.187500 -1.250000 +v -0.062500 1.250000 -0.500000 +v 0.062500 1.250000 -0.500000 +v 0.375000 -0.562500 -4.500000 +v -0.375000 -0.562500 -4.500000 +v 0.375000 -0.562500 -3.000000 +v -0.375000 -0.562500 -3.000000 +v -0.250000 -0.687500 1.750000 +v 0.250000 -0.687500 1.750000 +v -0.250000 -0.687500 0.750000 +v 0.250000 -0.687500 0.750000 +v -0.250000 -0.937500 1.250000 +v 0.250000 -0.937500 1.250000 +v -0.250000 -0.937500 0.875000 +v 0.250000 -0.937500 0.875000 +v -0.250000 -2.187500 0.000000 +v 0.250000 -2.187500 0.000000 +v -0.250000 -2.187500 0.375000 +v 0.250000 -2.187500 0.375000 +v -0.250000 -2.562500 -0.500000 +v 0.250000 -2.562500 -0.500000 +v -0.250000 -2.562500 -0.875000 +v 0.250000 -2.562500 -0.875000 +v -0.250000 -2.312500 -1.125000 +v 0.250000 -2.312500 -1.125000 +v -0.250000 -1.312500 -0.625000 +v 0.250000 -1.312500 -0.625000 +v -0.250000 -1.312500 -0.375000 +v 0.250000 -1.312500 -0.375000 +v -0.250000 -1.000000 -0.500000 +v 0.250000 -1.000000 -0.500000 +v -0.250000 -0.687500 -0.375000 +v 0.250000 -0.687500 -0.375000 +v -0.250000 -2.812500 -0.250000 +v 0.250000 -2.812500 -0.250000 +v -0.250000 -2.812500 -1.750000 +v 0.250000 -2.812500 -1.750000 +v -0.250000 -2.062500 -1.750000 +v 0.250000 -2.062500 -1.750000 +v -0.250000 -0.937500 -1.250000 +v 0.250000 -0.937500 -1.250000 +v -0.250000 -0.687500 -1.500000 +v 0.250000 -0.687500 -1.500000 +v 0.375000 -0.812500 -0.625000 +v 0.375000 -0.562500 -0.625000 +v 0.375000 -0.812500 -0.875000 +v 0.375000 -0.562500 -0.875000 +v 0.250000 -0.937500 -0.625000 +v 0.250000 -0.937500 -0.875000 +v 0.250000 -0.812500 -0.500000 +v 0.250000 -0.562500 -0.500000 +v 0.250000 -0.812500 -1.000000 +v 0.250000 -0.562500 -1.000000 +v -0.250000 -0.937500 -0.625000 +v -0.250000 -0.937500 -0.875000 +v -0.250000 -0.812500 -0.500000 +v -0.250000 -0.562500 -0.500000 +v -0.250000 -0.812500 -1.000000 +v -0.250000 -0.562500 -1.000000 +v -0.375000 -0.812500 -0.625000 +v -0.375000 -0.562500 -0.625000 +v -0.375000 -0.812500 -0.875000 +v -0.375000 -0.562500 -0.875000 +v -0.125000 -1.187500 -0.125000 +v 0.125000 -1.187500 -0.125000 +v -0.125000 -0.937500 -0.187500 +v 0.125000 -0.937500 -0.187500 +v -0.125000 -0.687500 -0.125000 +v 0.125000 -0.687500 -0.125000 +v -0.125000 -1.187500 -0.500000 +v 0.125000 -1.187500 -0.500000 +v -0.125000 -0.937500 -0.500000 +v 0.125000 -0.937500 -0.500000 +v -0.125000 -0.687500 -0.375000 +v 0.125000 -0.687500 -0.375000 +v 0.250000 -0.953125 -3.062500 +v -0.250000 -0.953125 -3.062500 +v -0.250000 -1.421875 -4.437500 +v -0.250000 -1.078125 -3.062500 +v 0.250000 -1.296875 -4.437500 +v -0.250000 -1.296875 -4.437500 +v 0.250000 -1.421875 -4.437500 +v 0.250000 -1.078125 -3.062500 +v -0.281250 -0.031250 -3.250000 +v -0.093750 0.281250 -3.250000 +v -0.093750 0.281250 -4.750000 +v -0.281250 -0.031250 -4.750000 +v -0.406250 -0.031250 -4.750000 +v -0.218750 0.281250 -4.750000 +v -0.218750 0.281250 -3.250000 +v -0.406250 -0.031250 -3.250000 +v -0.125000 -1.375000 -4.500000 +v 0.125000 -1.375000 -4.500000 +v -0.125000 -1.750000 -4.875000 +v 0.125000 -1.750000 -4.875000 +v -0.125000 -1.312500 -4.500000 +v 0.125000 -1.312500 -4.500000 +v -0.125000 -1.687500 -5.000000 +v 0.125000 -1.687500 -5.000000 +v 0.000000 1.687500 -2.250000 +v -0.125000 1.654006 -2.250000 +v -0.216506 1.562500 -2.250000 +v -0.250000 1.437500 -2.250000 +v -0.216506 1.312500 -2.250000 +v -0.125000 1.220994 -2.250000 +v 0.000000 1.187500 -2.250000 +v 0.125000 1.220994 -2.250000 +v 0.216506 1.312500 -2.250000 +v 0.250000 1.437500 -2.250000 +v 0.216506 1.562500 -2.250000 +v 0.125000 1.654006 -2.250000 +v -0.062500 0.312500 2.000000 +v 0.062500 0.312500 2.000000 +v 0.437500 -1.031250 -6.625000 +v 0.437500 -0.781250 -6.625000 +v -0.562500 -0.812500 -7.187500 +v 0.562500 -0.812500 -7.187500 +v -0.562500 -0.856694 -7.169194 +v 0.562500 -0.856694 -7.169194 +v -0.562500 -0.875000 -7.125000 +v 0.562500 -0.875000 -7.125000 +v -0.562500 -0.856694 -7.080806 +v 0.562500 -0.856694 -7.080806 +v -0.562500 -0.812500 -7.062500 +v 0.562500 -0.812500 -7.062500 +v -0.562500 -0.768306 -7.080806 +v 0.562500 -0.768306 -7.080806 +v -0.562500 -0.750000 -7.125000 +v 0.562500 -0.750000 -7.125000 +v -0.562500 -0.768306 -7.169194 +v 0.562500 -0.768306 -7.169194 +v 0.437500 -0.781250 -7.625000 +v 0.437500 -1.031250 -7.625000 +v 0.437500 -0.968750 -7.562500 +v 0.437500 -0.843750 -7.562500 +v 0.437500 -0.968750 -6.687500 +v 0.437500 -0.843750 -6.687500 +v 0.500000 -0.968750 -7.562500 +v 0.500000 -0.843750 -7.562500 +v 0.500000 -0.968750 -6.687500 +v 0.500000 -0.843750 -6.687500 +v 0.500000 -1.031250 -7.625000 +v 0.500000 -0.781250 -7.625000 +v 0.500000 -1.031250 -6.625000 +v 0.500000 -0.781250 -6.625000 +v 0.417387 0.411639 2.581886 +v 0.292387 0.320139 2.778107 +v -0.573638 0.531448 2.324953 +v -0.448637 0.622948 2.128732 +v -0.425761 0.586866 2.206109 +v -0.488261 0.541116 2.304220 +v 0.332011 0.401971 2.602619 +v 0.269511 0.356221 2.700729 +v -0.425761 0.643510 2.232523 +v -0.488261 0.597761 2.330633 +v 0.332011 0.458615 2.629033 +v 0.269511 0.412865 2.727143 +v -0.448637 0.679592 2.155145 +v -0.573638 0.588092 2.351367 +v 0.417387 0.468283 2.608299 +v 0.292387 0.376783 2.804521 +v -0.250000 -0.687500 -0.250000 +v 0.250000 -0.687500 -0.250000 +v -0.500000 -0.437500 -0.250000 +v 0.500000 -0.437500 -0.250000 +v -0.125000 1.687500 -2.615000 +v 0.125000 1.687500 -2.615000 +v 0.062500 1.875000 -2.615000 +v 0.062500 1.812500 -2.615000 +v -0.062500 1.812500 -2.615000 +v -0.062500 1.875000 -2.615000 +v -0.125000 1.875000 -2.615000 +v 0.125000 1.875000 -2.615000 +v 0.250000 1.625000 -2.615000 +v 0.250000 1.562500 -2.615000 +v -0.187500 1.625000 -2.615000 +v 0.125000 1.687500 -2.740000 +v -0.125000 1.687500 -2.740000 +v -0.187500 1.625000 -2.740000 +v 0.250000 1.562500 -2.740000 +v 0.250000 1.625000 -2.740000 +v 0.125000 1.875000 -2.740000 +v -0.125000 1.875000 -2.740000 +v -0.062500 1.875000 -2.740000 +v -0.062500 1.812500 -2.740000 +v 0.062500 1.812500 -2.740000 +v 0.062500 1.875000 -2.740000 +v -0.062500 1.875000 1.490000 +v 0.062500 1.875000 1.490000 +v 0.062500 1.750000 1.490000 +v -0.062500 1.750000 1.490000 +v 0.125000 1.687500 1.490000 +v 0.125000 1.625000 1.490000 +v -0.125000 1.687500 1.490000 +v -0.125000 1.625000 1.490000 +v -0.125000 1.625000 1.365000 +v -0.125000 1.687500 1.365000 +v 0.125000 1.625000 1.365000 +v 0.125000 1.687500 1.365000 +v -0.062500 1.750000 1.365000 +v 0.062500 1.750000 1.365000 +v 0.062500 1.875000 1.365000 +v -0.062500 1.875000 1.365000 +v -0.250000 1.625000 -2.615000 +v -0.250000 1.625000 -2.740000 +v -0.250000 1.562500 -2.615000 +v -0.250000 1.562500 -2.740000 +v -0.000000 1.125000 0.250000 +v 0.088388 1.125000 0.286612 +v 0.125000 1.125000 0.375000 +v 0.088388 1.125000 0.463388 +v -0.000000 1.125000 0.500000 +v -0.088388 1.125000 0.463388 +v -0.125000 1.125000 0.375000 +v -0.088388 1.125000 0.286612 +v 0.088388 1.250000 0.286612 +v -0.000000 1.250000 0.250000 +v 0.125000 1.250000 0.375000 +v 0.088388 1.250000 0.463388 +v -0.000000 1.250000 0.500000 +v -0.088388 1.250000 0.463388 +v -0.125000 1.250000 0.375000 +v -0.088388 1.250000 0.286612 +v -0.312500 1.437500 0.250000 +v -0.312500 1.349112 0.286612 +v -0.312500 1.312500 0.375000 +v -0.312500 1.349112 0.463388 +v -0.312500 1.437500 0.500000 +v -0.312500 1.525888 0.463388 +v -0.312500 1.562500 0.375000 +v -0.312500 1.525888 0.286612 +v -0.187500 1.349112 0.286612 +v -0.187500 1.437500 0.250000 +v -0.187500 1.312500 0.375000 +v -0.187500 1.349112 0.463388 +v -0.187500 1.437500 0.500000 +v -0.187500 1.525888 0.463388 +v -0.187500 1.562500 0.375000 +v -0.187500 1.525888 0.286612 +v 0.220971 1.658471 0.250000 +v 0.158471 1.720971 0.286612 +v 0.132583 1.746859 0.375000 +v 0.158471 1.720971 0.463388 +v 0.220971 1.658471 0.500000 +v 0.283471 1.595971 0.463388 +v 0.309359 1.570082 0.375000 +v 0.283471 1.595971 0.286612 +v 0.070083 1.632582 0.286612 +v 0.132583 1.570082 0.250000 +v 0.044194 1.658471 0.375000 +v 0.070083 1.632582 0.463388 +v 0.132583 1.570082 0.500000 +v 0.195083 1.507582 0.463388 +v 0.220971 1.481694 0.375000 +v 0.195083 1.507582 0.286612 +vt 0.060606 0.240964 +vt 0.242424 0.289157 +vt 0.060606 0.289157 +vt 0.060606 0.530120 +vt 0.242424 0.506024 +vt 0.242424 0.530120 +vt 0.250000 0.433735 +vt 0.522727 0.448795 +vt 0.704545 0.433735 +vt 0.060606 0.481928 +vt 0.060606 0.506024 +vt 0.242424 0.337349 +vt 0.060606 0.313253 +vt 0.242424 0.313253 +vt 0.000000 0.337349 +vt 0.000000 0.313253 +vt 0.689394 0.493976 +vt 0.250000 0.433735 +vt 0.704545 0.433735 +vt 0.045455 0.289157 +vt 0.060606 0.337349 +vt 0.022727 0.385542 +vt 0.242424 0.397590 +vt 0.060606 0.397590 +vt 0.060606 0.421687 +vt 0.242424 0.481928 +vt 0.242424 0.421687 +vt 0.250000 0.493976 +vt 0.242424 0.518072 +vt 0.242424 0.493976 +vt 0.242424 0.493976 +vt 0.250000 0.493976 +vt 0.250000 0.518072 +vt 0.689394 0.518072 +vt 0.643939 0.566265 +vt 0.640152 0.578313 +vt 0.640152 0.566265 +vt 0.643939 0.590361 +vt 0.640152 0.590361 +vt 0.640152 0.602410 +vt 0.643939 0.602410 +vt 0.640152 0.614458 +vt 0.643939 0.614458 +vt 0.640152 0.626506 +vt 0.643939 0.638554 +vt 0.640152 0.638554 +vt 0.643939 0.650602 +vt 0.640152 0.650602 +vt 0.640152 0.662651 +vt 0.643939 0.518072 +vt 0.640152 0.530120 +vt 0.640152 0.518072 +vt 0.643939 0.530120 +vt 0.640152 0.542169 +vt 0.643939 0.542169 +vt 0.640152 0.554217 +vt 0.382576 0.578313 +vt 0.378788 0.566265 +vt 0.382576 0.566265 +vt 0.378788 0.554217 +vt 0.382576 0.554217 +vt 0.382576 0.542169 +vt 0.378788 0.542169 +vt 0.382576 0.530120 +vt 0.378788 0.530120 +vt 0.378788 0.518072 +vt 0.382576 0.518072 +vt 0.382576 0.662651 +vt 0.378788 0.650602 +vt 0.382576 0.650602 +vt 0.378788 0.638554 +vt 0.382576 0.638554 +vt 0.378788 0.626506 +vt 0.382576 0.626506 +vt 0.382576 0.614458 +vt 0.378788 0.614458 +vt 0.382576 0.602410 +vt 0.378788 0.602410 +vt 0.378788 0.590361 +vt 0.382576 0.590361 +vt 0.378788 0.578313 +vt 0.136364 0.530120 +vt 0.143939 0.668675 +vt 0.136364 0.674699 +vt 0.712121 0.662651 +vt 0.704545 0.698795 +vt 0.704545 0.662651 +vt 0.681818 0.662651 +vt 0.689394 0.698795 +vt 0.681818 0.698795 +vt 0.689394 0.753012 +vt 0.681818 0.753012 +vt 0.712121 0.698795 +vt 0.704545 0.753012 +vt 0.715909 0.753012 +vt 0.731061 0.698795 +vt 0.731061 0.753012 +vt 0.715909 0.698795 +vt 0.731061 0.674699 +vt 0.689394 0.753012 +vt 0.681818 0.777108 +vt 0.681818 0.753012 +vt 0.678030 0.753012 +vt 0.662879 0.698795 +vt 0.678030 0.698795 +vt 0.662879 0.674699 +vt 0.678030 0.662651 +vt 0.712121 0.753012 +vt 0.704545 0.777108 +vt 0.704545 0.753012 +vt 0.678030 0.777108 +vt 0.662879 0.753012 +vt 0.678030 0.753012 +vt 0.689394 0.777108 +vt 0.681818 0.801205 +vt 0.712121 0.801205 +vt 0.704545 0.801205 +vt 0.731061 0.777108 +vt 0.715909 0.753012 +vt 0.731061 0.753012 +vt 0.712121 0.843373 +vt 0.704545 0.843373 +vt 0.689394 0.801205 +vt 0.681818 0.843373 +vt 0.655303 0.801205 +vt 0.662879 0.777108 +vt 0.738636 0.801205 +vt 0.715909 0.777108 +vt 0.678030 0.801205 +vt 0.632576 0.849398 +vt 0.761364 0.849398 +vt 0.715909 0.801205 +vt 0.325758 0.385542 +vt 0.704545 0.409639 +vt 0.325758 0.409639 +vt 0.704545 0.409639 +vt 0.325758 0.385542 +vt 0.325758 0.409639 +vt 0.136364 0.759036 +vt 0.045455 0.710843 +vt 0.045455 0.759036 +vt -0.000000 0.710843 +vt 0.272727 0.710843 +vt 0.181818 0.759036 +vt 0.181818 0.674699 +vt 0.359848 0.915663 +vt 0.329545 0.891566 +vt 0.299242 0.915663 +vt 0.359848 0.915663 +vt 0.329545 0.891566 +vt 0.352273 0.891566 +vt 0.352273 0.891566 +vt 0.382576 0.771084 +vt 0.382576 0.771084 +vt 0.405303 0.771084 +vt 0.420455 0.710843 +vt 0.420455 0.710843 +vt 0.405303 0.771084 +vt 0.458333 0.734940 +vt 0.511364 0.710843 +vt 0.511364 0.710843 +vt 0.458333 0.734940 +vt 0.428030 0.855422 +vt 0.435606 0.885542 +vt 0.443182 0.855422 +vt 0.428030 0.855422 +vt 0.443182 0.855422 +vt 0.435606 0.885542 +vt 0.428030 0.915663 +vt 0.481061 0.891566 +vt 0.481061 0.891566 +vt 0.428030 0.915663 +vt 0.511364 0.783133 +vt 0.473485 0.759036 +vt 0.295455 0.777108 +vt 0.272727 0.746988 +vt 0.295455 0.746988 +vt 0.280303 0.807229 +vt 0.276515 0.777108 +vt 0.310606 0.777108 +vt 0.333333 0.746988 +vt 0.329545 0.777108 +vt 0.325758 0.807229 +vt 0.310606 0.807229 +vt 0.310606 0.710843 +vt 0.310606 0.746988 +vt 0.174242 0.536145 +vt 0.166667 0.668675 +vt 0.166667 0.536145 +vt 0.143939 0.548193 +vt 0.143939 0.536145 +vt 0.174242 0.656627 +vt 0.174242 0.668675 +vt 0.151515 0.668675 +vt 0.181818 0.530120 +vt 0.295455 0.186747 +vt 0.287879 0.156627 +vt 0.295455 0.156627 +vt 0.196970 0.156627 +vt 0.287879 0.186747 +vt 0.196970 0.186747 +vt 0.196970 0.198795 +vt 0.287879 0.198795 +vt 0.287879 0.144578 +vt 0.196970 0.144578 +vt 0.431818 0.448795 +vt 0.189394 0.186747 +vt 0.689394 0.493976 +vt 0.431818 0.478916 +vt 0.522727 0.478916 +vt 0.170455 0.156627 +vt 0.140152 0.180723 +vt 0.140152 0.156627 +vt 0.178030 0.156627 +vt 0.170455 0.180723 +vt 0.174242 0.144578 +vt 0.136364 0.150602 +vt 0.174242 0.192771 +vt 0.830355 0.927716 +vt 0.909091 0.710833 +vt 0.987826 0.927716 +vt 0.640152 0.662651 +vt 0.715909 0.662651 +vt 0.753788 0.662651 +vt 0.071968 0.951608 +vt 0.068305 0.945782 +vt 0.071968 0.939956 +vt 0.087121 0.909639 +vt 0.075758 0.915663 +vt 0.079545 0.909639 +vt 0.071969 0.939389 +vt 0.069456 0.937733 +vt 0.074483 0.929738 +vt 0.075758 0.921687 +vt 0.087121 0.927711 +vt 0.079545 0.927711 +vt 0.090909 0.921687 +vt 0.147727 0.927711 +vt 0.094697 0.927711 +vt -0.000000 0.921687 +vt 0.011364 0.927711 +vt 0.003788 0.927711 +vt 0.015152 0.921687 +vt 0.071970 0.927711 +vt 0.018939 0.927711 +vt 0.147727 0.909639 +vt 0.090909 0.915663 +vt 0.094697 0.909639 +vt 0.011364 0.909639 +vt -0.000000 0.915663 +vt 0.003788 0.909639 +vt 0.071970 0.909639 +vt 0.015152 0.915663 +vt 0.018939 0.909639 +vt 0.071970 0.903614 +vt 0.018939 0.903614 +vt 0.011364 0.903614 +vt 0.003788 0.903614 +vt 0.147727 0.903614 +vt 0.094697 0.903614 +vt 0.087121 0.903614 +vt 0.079545 0.903614 +vt 0.151515 0.915663 +vt 0.151515 0.921687 +vt 0.011364 0.909639 +vt -0.000000 0.915663 +vt 0.003788 0.909639 +vt -0.000000 0.921687 +vt 0.011364 0.927711 +vt 0.003788 0.927711 +vt 0.018939 0.927711 +vt 0.075758 0.921687 +vt 0.071970 0.927711 +vt 0.087121 0.927711 +vt 0.079545 0.927711 +vt 0.090909 0.921687 +vt 0.147727 0.927711 +vt 0.094697 0.927711 +vt 0.018939 0.909639 +vt 0.075758 0.915663 +vt 0.015152 0.915663 +vt 0.079545 0.909639 +vt 0.090909 0.915663 +vt 0.147727 0.909639 +vt 0.094697 0.909639 +vt 0.147727 0.903614 +vt 0.094697 0.903614 +vt 0.087121 0.903614 +vt 0.079545 0.903614 +vt 0.015152 0.921687 +vt 0.018939 0.903614 +vt 0.071970 0.909639 +vt 0.011364 0.903614 +vt 0.003788 0.903614 +vt 0.151515 0.921687 +vt 0.151515 0.915663 +vt 0.250000 0.409639 +vt 0.250000 0.385542 +vt 0.250000 0.409639 +vt 0.776515 0.885542 +vt 0.784091 0.891566 +vt 0.776515 0.891566 +vt 0.776515 0.879518 +vt 0.784091 0.885542 +vt 0.746212 0.891566 +vt 0.738636 0.885542 +vt 0.746212 0.885542 +vt 0.738636 0.879518 +vt 0.746212 0.879518 +vt 0.746212 0.903614 +vt 0.738636 0.891566 +vt 0.746212 0.855422 +vt 0.738636 0.849398 +vt 0.746212 0.849398 +vt 0.738636 0.855422 +vt 0.791667 0.777108 +vt 0.784091 0.765060 +vt 0.791667 0.765060 +vt 0.806818 0.759036 +vt 0.814394 0.765060 +vt 0.806818 0.765060 +vt 0.814394 0.777108 +vt 0.806818 0.777108 +vt 0.784091 0.789157 +vt 0.791667 0.789157 +vt 0.806818 0.753012 +vt 0.814394 0.759036 +vt 0.784091 0.759036 +vt 0.791667 0.759036 +vt 0.803030 0.765060 +vt 0.795455 0.765060 +vt 0.784091 0.753012 +vt 0.791667 0.753012 +vt 0.780303 0.765060 +vt 0.772727 0.765060 +vt 0.784091 0.855422 +vt 0.784091 0.879518 +vt 0.776515 0.855422 +vt 0.784091 0.849398 +vt 0.715909 0.861446 +vt 0.731061 0.861446 +vt 0.719697 0.873494 +vt 0.765152 0.873494 +vt 0.757576 0.873494 +vt 0.753788 0.861446 +vt 0.776515 0.789274 +vt 0.784017 0.801205 +vt 0.776515 0.813136 +vt 0.771210 0.792768 +vt 0.776515 0.789274 +vt 0.776515 0.813136 +vt 0.769013 0.801205 +vt 0.771210 0.792768 +vt 0.776515 0.789274 +vt 0.242424 0.240964 +vt 0.015152 0.289157 +vt 0.037879 0.385542 +vt 0.643939 0.578313 +vt 0.643939 0.626506 +vt 0.643939 0.662651 +vt 0.643939 0.554217 +vt 0.378788 0.662651 +vt 0.689394 0.662651 +vt 0.712121 0.753012 +vt 0.662879 0.753012 +vt 0.712121 0.777108 +vt 0.689394 0.843373 +vt 0.678030 0.843373 +vt 0.715909 0.843373 +vt -0.000000 0.759036 +vt 0.272727 0.759036 +vt 0.299242 0.915663 +vt 0.435606 0.734940 +vt 0.435606 0.734940 +vt 0.473485 0.759036 +vt 0.496212 0.915663 +vt 0.496212 0.915663 +vt 0.511364 0.783133 +vt 0.295455 0.807229 +vt 0.295455 0.710843 +vt 0.174242 0.548193 +vt 0.143939 0.656627 +vt 0.151515 0.536145 +vt 0.189394 0.156627 +vt 0.178030 0.180723 +vt 0.136364 0.186747 +vt 0.954549 0.980639 +vt 0.909091 1.000011 +vt 0.863633 0.980639 +vt 0.818175 0.855421 +vt 0.830355 0.783127 +vt 0.863633 0.730204 +vt 0.954549 0.730204 +vt 0.987826 0.783127 +vt 1.000007 0.855422 +vt 0.074559 0.941663 +vt 0.075631 0.945782 +vt 0.074559 0.949902 +vt 0.069378 0.949902 +vt 0.069378 0.941663 +vt 0.068414 0.933736 +vt 0.069456 0.929738 +vt 0.071969 0.928082 +vt 0.075524 0.933736 +vt 0.074483 0.937733 +vt 0.087121 0.909639 +vt 0.071970 0.903614 +vt 0.250000 0.385542 +vt 0.738636 0.903614 +vt 0.784091 0.777108 +vt 0.814394 0.753012 +vt 0.803030 0.777108 +vt 0.795455 0.777108 +vt 0.780303 0.777108 +vt 0.772727 0.777108 +vt 0.768939 0.759036 +vt 0.768939 0.753012 +vt 0.776515 0.849398 +vt 0.708333 0.849398 +vt 0.712121 0.855422 +vt 0.708333 0.855422 +vt 0.731061 0.879518 +vt 0.715909 0.879518 +vt 0.727273 0.873494 +vt 0.727273 0.879518 +vt 0.719697 0.879518 +vt 0.768939 0.861446 +vt 0.772727 0.855422 +vt 0.768939 0.879518 +vt 0.765152 0.879518 +vt 0.757576 0.879518 +vt 0.753788 0.879518 +vt 0.781820 0.792768 +vt 0.781820 0.809641 +vt 0.771210 0.809641 +vt 0.769013 0.801205 +vt 0.771210 0.792768 +vt 0.781820 0.792768 +vt 0.784017 0.801205 +vt 0.781820 0.809641 +vt 0.771210 0.809641 +vt 0.769013 0.801205 +vt 0.781820 0.792768 +vt 0.784017 0.801205 +vt 0.781820 0.809641 +vt 0.776515 0.813136 +vt 0.771210 0.809641 +vt 0.295455 0.192771 +vt 0.477273 0.144578 +vt 0.477273 0.192771 +vt 0.518939 0.614458 +vt 0.518939 0.554217 +vt 0.518939 0.518072 +vt 0.518939 0.626506 +vt 0.518939 0.566265 +vt 0.518939 0.590361 +vt 0.518939 0.530120 +vt 0.518939 0.638554 +vt 0.518939 0.578313 +vt 0.518939 0.602410 +vt 0.518939 0.542169 +vt 0.518939 0.650602 +vt 0.549242 0.554217 +vt 0.549242 0.578313 +vt 0.549242 0.590361 +vt 0.549242 0.614458 +vt 0.549242 0.626506 +vt 0.549242 0.638554 +vt 0.549242 0.650602 +vt 0.518939 0.662651 +vt 0.549242 0.518072 +vt 0.549242 0.530120 +vt 0.549242 0.542169 +vt 0.549242 0.566265 +vt 0.549242 0.602410 +vt 0.549242 0.662651 +vt 0.742424 0.493976 +vt 0.742424 0.457831 +vt 0.765152 0.433735 +vt 0.742424 0.180723 +vt 0.765152 0.409639 +vt 0.742424 0.397590 +vt 0.727273 0.457831 +vt 0.727273 0.397590 +vt 0.727273 0.180723 +vt 0.242424 0.554217 +vt 0.727273 0.493976 +vt 0.242424 0.614458 +vt 0.242424 0.650602 +vt 0.242424 0.542169 +vt 0.242424 0.602410 +vt 0.242424 0.578313 +vt 0.242424 0.638554 +vt 0.242424 0.530120 +vt 0.242424 0.590361 +vt 0.242424 0.566265 +vt 0.242424 0.626506 +vt 0.242424 0.518072 +vt 0.674242 0.180723 +vt 0.583333 0.156627 +vt 0.674242 0.156627 +vt 0.583333 0.180723 +vt 0.568182 0.156627 +vt 0.568182 0.180723 +vt 0.553030 0.156627 +vt 0.553030 0.180723 +vt 0.761364 0.674699 +vt 0.753788 0.698795 +vt 0.753788 0.674699 +vt 0.761364 0.698795 +vt 0.753788 0.753012 +vt 0.734848 0.638554 +vt 0.734848 0.578313 +vt 0.734848 0.602410 +vt 0.734848 0.542169 +vt 0.734848 0.650602 +vt 0.734848 0.590361 +vt 0.734848 0.614458 +vt 0.734848 0.554217 +vt 0.734848 0.662651 +vt 0.734848 0.626506 +vt 0.734848 0.566265 +vt 0.734848 0.530120 +vt 0.765152 0.662651 +vt 0.765152 0.650602 +vt 0.765152 0.638554 +vt 0.765152 0.626506 +vt 0.765152 0.614458 +vt 0.765152 0.602410 +vt 0.765152 0.590361 +vt 0.765152 0.578313 +vt 0.765152 0.566265 +vt 0.765152 0.554217 +vt 0.765152 0.542169 +vt 0.765152 0.530120 +vt 0.734848 0.518072 +vt 0.765152 0.518072 +vt 0.768939 0.777108 +vt 0.761364 0.753012 +vt 0.768939 0.753012 +vt 0.768939 0.801205 +vt 0.761364 0.777108 +vt 0.768939 0.849398 +vt 0.761364 0.801205 +vt 0.583333 0.180723 +vt 0.583333 0.228916 +vt 0.674242 0.180723 +vt 0.583333 0.228916 +vt 0.507576 0.325301 +vt 0.507576 0.325301 +vt 0.276515 0.915663 +vt 0.291667 0.963855 +vt 0.276515 0.963855 +vt 0.306818 0.662651 +vt 0.276515 0.710843 +vt 0.276515 0.662651 +vt 0.291667 0.915663 +vt 0.367424 0.963855 +vt 0.412879 0.915663 +vt 0.397727 0.963855 +vt 0.397727 0.915663 +vt 0.382576 0.662651 +vt 0.306818 0.710843 +vt 0.367424 0.915663 +vt 0.428030 0.963855 +vt 0.412879 0.963855 +vt 0.428030 0.915663 +vt 0.488636 0.963855 +vt 0.488636 0.915663 +vt 0.503788 0.963855 +vt 0.503788 0.915663 +vt 0.522727 0.963855 +vt 0.522727 0.915663 +vt 0.541667 0.963855 +vt 0.420455 0.662651 +vt 0.382576 0.710843 +vt 0.511364 0.662651 +vt 0.556818 0.710843 +vt 0.556818 0.662651 +vt 0.625000 0.710843 +vt 0.625000 0.662651 +vt 0.640152 0.710843 +vt 0.772727 0.608434 +vt 0.787879 0.596386 +vt 0.787879 0.608434 +vt 0.772727 0.632530 +vt 0.765152 0.608434 +vt 0.795455 0.608434 +vt 0.787879 0.632530 +vt 0.772727 0.596386 +vt 0.795455 0.632530 +vt 0.787879 0.608434 +vt 0.795455 0.608434 +vt 0.772727 0.608434 +vt 0.765152 0.632530 +vt 0.765152 0.608434 +vt 0.787879 0.596386 +vt 0.772727 0.596386 +vt 0.761364 0.662651 +vt 0.000000 0.939759 +vt 0.068182 0.933735 +vt 0.068182 0.939759 +vt 0.000000 0.933735 +vt 0.068182 0.927711 +vt 0.000000 0.975904 +vt 0.068182 0.969880 +vt 0.068182 0.975904 +vt 0.000000 0.969880 +vt 0.068182 0.963855 +vt 0.000000 0.963855 +vt 0.068182 0.957831 +vt 0.000000 0.957831 +vt 0.068182 0.951807 +vt 0.000000 0.951807 +vt 0.068182 0.945783 +vt 0.000000 0.945783 +vt 0.325758 0.337349 +vt 0.784091 0.801205 +vt 0.791667 0.813253 +vt 0.784091 0.813253 +vt 0.784091 0.873494 +vt 0.791667 0.885542 +vt 0.784091 0.885542 +vt 0.784091 0.849398 +vt 0.791667 0.861446 +vt 0.784091 0.861446 +vt 0.784091 0.825301 +vt 0.791667 0.837349 +vt 0.784091 0.837349 +vt 0.784091 0.789157 +vt 0.791667 0.801205 +vt 0.791667 0.873494 +vt 0.791667 0.849398 +vt 0.791667 0.825301 +vt 0.784091 0.801205 +vt 0.791667 0.813253 +vt 0.784091 0.813253 +vt 0.784091 0.873494 +vt 0.791667 0.885542 +vt 0.784091 0.885542 +vt 0.784091 0.849398 +vt 0.791667 0.861446 +vt 0.784091 0.861446 +vt 0.784091 0.825301 +vt 0.791667 0.837349 +vt 0.784091 0.837349 +vt 0.784091 0.789157 +vt 0.791667 0.801205 +vt 0.791667 0.873494 +vt 0.791667 0.849398 +vt 0.791667 0.825301 +vt 0.784091 0.813253 +vt 0.791667 0.801205 +vt 0.791667 0.813253 +vt 0.784091 0.885542 +vt 0.791667 0.873494 +vt 0.791667 0.885542 +vt 0.784091 0.849398 +vt 0.791667 0.861446 +vt 0.784091 0.861446 +vt 0.784091 0.837349 +vt 0.791667 0.825301 +vt 0.791667 0.837349 +vt 0.784091 0.801205 +vt 0.791667 0.789157 +vt 0.784091 0.873494 +vt 0.791667 0.849398 +vt 0.784091 0.825301 +vt 0.295455 0.144578 +vt 0.242424 0.662651 +vt 0.761364 0.753012 +vt 0.568182 0.204819 +vt 0.568182 0.204819 +vt 0.541667 0.915663 +vt 0.640152 0.662651 +vt 0.765152 0.632530 +vt 0.795455 0.632530 +vt 0.787879 0.632530 +vt 0.772727 0.632530 +vt 0.000000 0.927711 +vt 0.250000 0.337349 +vt 0.791667 0.789157 +vt 0.791667 0.789157 +vt 0.784091 0.789157 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.8575 0.5145 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8575 0.5145 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.8000 0.6000 0.0000 +vn -0.8000 0.6000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.9701 0.2425 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 0.9063 0.4226 +vn 0.0000 -0.9063 -0.4226 +vn 0.5000 0.3660 -0.7849 +vn 0.8660 -0.2113 0.4532 +vn -0.8660 0.2113 -0.4532 +vn -0.5000 -0.3660 0.7849 +vn 0.8944 0.4472 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.8944 0.4472 0.0000 +vn 0.0000 -0.9947 0.1025 +vn 0.0000 -0.9073 0.4205 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.9923 -0.0000 0.1240 +vn 0.8593 0.4961 0.1240 +vn 0.4961 0.8593 0.1240 +vn 0.0000 0.9923 0.1240 +vn -0.4961 0.8593 0.1240 +vn -0.8593 0.4961 0.1240 +vn -0.9923 0.0000 0.1240 +vn -0.8593 -0.4961 0.1240 +vn -0.4961 -0.8593 0.1240 +vn 0.0000 -0.9923 0.1240 +vn 0.4961 -0.8593 0.1240 +vn 0.8593 -0.4961 0.1240 +vn -0.2300 0.7786 -0.5839 +vn -0.3299 0.4380 -0.8363 +vn -0.6301 0.1931 -0.7521 +vn -0.0656 -0.3155 -0.9466 +vn -0.5758 -0.1060 -0.8107 +vn -0.2968 -0.1599 -0.9415 +vn 0.3299 0.4380 -0.8363 +vn 0.2968 -0.1599 -0.9415 +vn 0.5758 -0.1060 -0.8107 +vn 0.0656 -0.3155 -0.9466 +vn -0.9980 -0.0000 -0.0628 +vn 0.6301 0.1931 -0.7521 +vn 0.2300 0.7786 -0.5839 +vn 0.8643 -0.4990 -0.0628 +vn 0.4990 0.8643 -0.0628 +vn -0.8643 0.4990 -0.0628 +vn 0.4990 -0.8643 -0.0628 +vn -0.4990 -0.8643 -0.0628 +vn 0.8643 0.4990 -0.0628 +vn -0.4990 0.8643 -0.0628 +vn -0.0000 -0.9980 -0.0628 +vn -0.8643 -0.4990 -0.0628 +vn 0.9980 0.0000 -0.0628 +vn 0.0000 0.9980 -0.0628 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7809 0.6247 +vn 0.0000 0.7937 0.6083 +vn 0.0000 0.8944 0.4472 +vn 0.0000 -0.6644 -0.7474 +vn 0.0000 -0.7937 -0.6083 +vn 0.0000 0.6644 0.7474 +vn 0.0000 -0.1602 -0.9871 +vn 0.0000 -0.3827 -0.9239 +vn 0.8644 0.4991 -0.0615 +vn -0.4991 -0.8644 -0.0615 +vn 0.4991 -0.8644 -0.0615 +vn -0.8644 0.4991 -0.0615 +vn 0.4991 0.8644 -0.0615 +vn -0.0000 -0.9981 -0.0615 +vn 0.8644 -0.4991 -0.0615 +vn -0.9981 -0.0000 -0.0615 +vn -0.0000 0.9981 -0.0615 +vn 0.9981 0.0000 -0.0615 +vn -0.8644 -0.4991 -0.0615 +vn -0.4991 0.8644 -0.0615 +vn 0.0000 0.2298 0.9732 +vn 0.0000 -0.8281 -0.5606 +vn 0.0000 -0.9191 -0.3939 +vn 0.0000 0.6114 0.7913 +vn 0.0000 0.7526 0.6585 +vn 0.0000 0.9191 0.3939 +vn 0.0000 0.8281 0.5606 +vn 0.0000 0.3827 0.9239 +vn -0.9956 -0.0906 0.0222 +vn -0.9920 -0.1196 0.0399 +vn 0.9956 -0.0906 0.0222 +vn 0.9920 -0.1196 0.0399 +vn -0.9872 -0.1545 0.0398 +vn -0.9866 -0.1600 0.0328 +vn 0.9872 -0.1545 0.0398 +vn 0.9866 -0.1600 0.0328 +vn 0.9867 -0.1589 0.0331 +vn -0.9867 -0.1589 0.0331 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 0.0735 -0.9973 +vn 0.0000 -0.7571 0.6532 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.6954 -0.7186 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9487 -0.3162 +vn 0.0000 -0.6427 0.7661 +vn 0.0000 0.1602 0.9871 +vn 0.0000 -0.8507 0.5257 +vn 0.0000 0.3714 0.9285 +vn 0.0000 -0.3714 0.9285 +vn 0.0000 0.2076 -0.9782 +vn 0.0000 -0.1826 -0.9832 +vn 0.0000 -0.7071 -0.7071 +vn 0.7588 -0.4606 0.4606 +vn 0.6861 -0.6861 -0.2418 +vn 0.7588 -0.4606 -0.4606 +vn 0.7071 0.0000 0.7071 +vn 0.6861 -0.2418 0.6861 +vn 0.6861 -0.2418 -0.6861 +vn 0.7071 0.0000 -0.7071 +vn 0.6861 -0.6861 0.2418 +vn -0.7071 0.0000 0.7071 +vn -0.7588 -0.4606 0.4606 +vn -0.6861 -0.2418 0.6861 +vn -0.7588 -0.4606 -0.4606 +vn -0.7071 0.0000 -0.7071 +vn -0.6861 -0.2418 -0.6861 +vn -0.6861 -0.6861 0.2418 +vn -0.6861 -0.6861 -0.2418 +vn 0.0000 0.2425 0.9701 +vn 0.0000 -0.2425 0.9701 +vn 0.0000 0.7071 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vn 0.5000 -0.5000 0.7071 +vn -0.5000 0.5000 0.7071 +vn -0.5000 0.5000 -0.7071 +s off +f 581/910/220 926/911/220 582/912/220 +f 581/913/221 927/914/221 925/915/221 +f 589/916/222 851/917/222 575/918/222 +f 585/919/223 927/914/223 583/920/223 +f 590/921/224 584/922/224 928/923/224 +f 584/922/225 585/924/225 583/925/225 +f 574/926/226 590/927/226 576/928/226 +f 582/912/227 928/923/227 584/922/227 +f 583/925/225 582/929/225 584/922/225 +f 586/930/225 587/931/225 585/924/225 +f 586/930/228 592/932/228 588/933/228 +f 587/934/229 589/935/229 585/919/229 +f 588/933/230 591/936/230 587/934/230 +f 594/937/225 591/938/225 592/939/225 +f 592/939/225 590/927/225 594/937/225 +f 589/916/225 591/940/225 593/941/225 +f 593/942/230 574/926/230 573/943/230 +f 653/944/231 642/945/231 641/946/231 +f 642/945/231 643/947/231 631/948/231 +f 643/947/231 632/949/231 631/948/231 +f 644/950/231 633/951/231 632/949/231 +f 645/952/231 634/953/231 633/951/231 +f 634/953/231 647/954/231 635/955/231 +f 635/955/231 648/956/231 636/957/231 +f 648/956/231 637/958/231 636/957/231 +f 649/959/231 638/960/231 637/961/231 +f 650/962/231 639/963/231 638/960/231 +f 651/964/231 640/965/231 639/963/231 +f 640/965/231 653/944/231 641/946/231 +f 606/966/225 665/967/225 605/968/225 +f 605/968/225 664/969/225 604/970/225 +f 603/971/225 664/969/225 663/972/225 +f 602/973/225 663/972/225 662/974/225 +f 602/973/225 661/975/225 601/976/225 +f 601/977/225 660/978/225 600/979/225 +f 600/979/225 659/980/225 599/981/225 +f 599/981/225 658/982/225 598/983/225 +f 597/984/225 658/982/225 657/985/225 +f 596/986/225 657/985/225 656/987/225 +f 596/986/225 655/988/225 595/989/225 +f 595/989/225 666/990/225 606/966/225 +f 686/991/232 845/992/232 684/993/232 +f 690/994/224 692/995/224 688/996/224 +f 689/997/223 691/998/223 693/999/223 +f 693/999/223 695/1000/223 697/1001/223 +f 694/1002/224 696/1003/224 692/995/224 +f 704/1004/224 708/1005/224 710/1006/224 +f 702/1007/224 706/1008/224 708/1005/224 +f 738/1009/224 739/1010/224 736/1011/224 +f 703/1012/223 707/1013/223 701/1014/223 +f 701/1014/223 705/1015/223 699/1016/223 +f 735/1017/223 741/1018/223 737/1019/223 +f 756/1020/224 754/1021/224 752/1022/224 +f 742/1023/224 743/1024/224 739/1010/224 +f 741/1018/223 744/1025/223 745/1026/223 +f 757/1027/223 751/1028/223 753/1029/223 +f 745/1026/223 748/1030/223 749/1031/223 +f 746/1032/224 747/1033/224 743/1024/224 +f 756/1020/224 762/1034/224 758/1035/224 +f 761/1036/223 755/1037/223 757/1027/223 +f 760/1038/224 766/1039/224 762/1034/224 +f 765/1040/223 759/1041/223 761/1036/223 +f 580/1042/227 667/1043/227 578/1044/227 +f 668/1045/221 579/1046/221 577/1047/221 +f 767/1048/224 686/1049/224 684/993/224 +f 769/1050/225 685/1051/225 686/1049/225 +f 685/1052/223 768/1053/223 683/1054/223 +f 768/1053/231 684/993/231 683/1054/231 +f 773/1055/223 775/1056/223 771/1057/223 +f 774/1058/224 776/1059/224 778/1060/224 +f 777/1061/223 781/1062/223 775/1056/223 +f 782/1063/224 778/1060/224 776/1059/224 +f 779/1064/223 797/1065/223 781/1062/223 +f 798/1066/224 780/1067/224 782/1063/224 +f 785/1068/223 799/1069/223 797/1065/223 +f 798/1066/224 800/1070/224 786/1071/224 +f 791/1072/223 793/1073/223 789/1074/223 +f 792/1075/224 790/1076/224 794/1077/224 +f 795/1078/223 803/1079/223 793/1073/223 +f 804/1080/224 796/1081/224 794/1077/224 +f 801/1082/223 799/1069/223 787/1083/223 +f 804/1080/224 794/1077/224 790/1076/224 +f 829/1084/223 833/1085/223 827/1086/223 +f 829/1084/223 837/1087/223 835/1088/223 +f 830/1089/224 834/1090/224 836/1091/224 +f 830/1089/224 838/1092/224 832/1093/224 +f 827/1086/220 834/1094/220 828/1095/220 +f 842/1096/224 844/1097/224 840/1098/224 +f 842/1096/231 839/1099/231 846/1100/231 +f 845/992/225 844/1101/225 841/1102/225 +f 845/992/232 683/1054/232 684/993/232 +f 846/1100/223 843/1103/223 845/992/223 +f 841/1102/232 685/1104/232 683/1054/232 +f 842/1096/232 686/991/232 685/1104/232 +f 853/1105/231 847/1106/231 854/1107/231 +f 850/1108/222 848/1109/222 849/1110/222 +f 852/1111/220 848/1109/220 853/1112/220 +f 854/1113/230 850/1108/230 851/1114/230 +f 593/941/222 854/1115/222 589/916/222 +f 852/1116/225 850/1108/225 849/1110/225 +f 573/1117/222 853/1118/222 593/941/222 +f 573/1117/222 851/917/222 852/1119/222 +f 857/1120/233 856/1121/233 855/1122/233 +f 861/1123/234 858/1124/234 857/1120/234 +f 861/1125/223 855/1122/223 859/1126/223 +f 862/1127/224 856/1121/224 858/1124/224 +f 873/1128/231 869/1129/231 865/1130/231 +f 705/1015/223 875/1131/223 699/1016/223 +f 706/1008/224 700/1132/224 876/1133/224 +f 892/1134/224 888/1135/224 884/1136/224 +f 901/1137/224 906/1138/224 902/1139/224 +f 891/1140/223 893/1141/223 885/1142/223 +f 895/1143/223 897/1144/223 898/1145/223 +f 896/1146/223 899/1147/223 897/1148/223 +f 877/1149/223 900/1150/223 899/1151/223 +f 878/1152/223 898/1153/223 900/1154/223 +f 903/1155/224 905/1156/224 901/1157/224 +f 904/1158/224 907/1159/224 903/1160/224 +f 902/1161/224 908/1162/224 904/1163/224 +f 898/1164/220 904/1163/220 900/1165/220 +f 877/1149/225 908/1162/225 878/1152/225 +f 900/1166/231 903/1160/231 899/1167/231 +f 895/1143/231 905/1156/231 896/1146/231 +f 899/1168/230 901/1157/230 897/1169/230 +f 897/1170/225 902/1139/225 898/1171/225 +f 878/1152/230 906/1138/230 895/1143/230 +f 896/1146/220 907/1172/220 877/1173/220 +f 917/1174/235 922/1175/235 918/1176/235 +f 911/1177/236 913/1178/236 914/1179/236 +f 913/1180/236 909/1181/236 915/1182/236 +f 909/1181/236 916/1183/236 915/1184/236 +f 910/1185/236 914/1186/236 916/1187/236 +f 917/1188/235 923/1189/235 921/1190/235 +f 919/1191/235 924/1192/235 923/1189/235 +f 918/1193/235 924/1192/235 920/1194/235 +f 914/1195/237 920/1194/237 916/1196/237 +f 909/1181/238 924/1192/238 910/1185/238 +f 916/1197/239 919/1191/239 915/1198/239 +f 911/1177/239 921/1190/239 912/1199/239 +f 913/1200/240 919/1201/240 917/1188/240 +f 913/1202/238 918/1176/238 914/1203/238 +f 911/1204/240 924/1192/240 922/1205/240 +f 912/1199/237 923/1189/237 909/1181/237 +f 928/1206/227 580/1042/227 578/1044/227 +f 925/1207/221 577/1047/221 579/1046/221 +f 590/927/224 928/1206/224 578/1044/224 +f 577/1047/223 927/1208/223 589/916/223 +f 947/1209/224 933/1210/224 948/1211/224 +f 946/1212/230 934/1213/230 947/1209/230 +f 949/1214/223 931/1215/223 950/1216/223 +f 950/1216/230 936/1217/230 945/1218/230 +f 948/1219/230 932/1220/230 949/1214/230 +f 944/1221/224 938/1222/224 943/1223/224 +f 945/1218/241 937/1224/241 944/1221/241 +f 965/1225/224 953/1226/224 964/1227/224 +f 960/1228/242 954/1229/242 963/1230/242 +f 963/1230/223 951/1231/223 966/1232/223 +f 951/1233/230 965/1225/230 966/1234/230 +f 959/1235/223 957/1236/223 960/1228/223 +f 964/1227/243 955/1237/243 962/1238/243 +f 959/1235/231 963/1239/231 964/1240/231 +f 962/1238/224 956/1241/224 961/1242/224 +f 953/1243/225 954/1244/225 956/1241/225 +f 946/1212/244 967/1245/244 935/1246/244 +f 968/1247/223 969/1248/223 967/1245/223 +f 929/1249/225 930/1250/225 933/1251/225 +f 948/1252/231 949/1253/231 940/1254/231 +f 971/1255/220 973/1256/220 975/1257/220 +f 994/1258/223 987/1259/223 991/1260/223 +f 1009/1261/243 1010/1262/243 1003/1263/243 +f 581/910/220 925/1264/220 926/911/220 +f 581/913/221 583/920/221 927/914/221 +f 589/916/222 854/1115/222 851/917/222 +f 585/919/223 589/935/223 927/914/223 +f 590/921/224 586/930/224 584/922/224 +f 584/922/225 586/930/225 585/924/225 +f 574/926/226 594/937/226 590/927/226 +f 582/912/227 926/911/227 928/923/227 +f 583/925/225 581/1265/225 582/929/225 +f 586/930/225 588/1266/225 587/931/225 +f 586/930/228 590/921/228 592/932/228 +f 587/934/229 591/936/229 589/935/229 +f 588/933/230 592/932/230 591/936/230 +f 594/937/225 593/942/225 591/938/225 +f 593/942/230 594/937/230 574/926/230 +f 653/944/231 654/1267/231 642/945/231 +f 642/945/231 654/1267/231 643/947/231 +f 643/947/231 644/950/231 632/949/231 +f 644/950/231 645/952/231 633/951/231 +f 645/952/231 646/1268/231 634/953/231 +f 634/953/231 646/1268/231 647/954/231 +f 635/955/231 647/954/231 648/956/231 +f 648/956/231 649/1269/231 637/958/231 +f 649/959/231 650/962/231 638/960/231 +f 650/962/231 651/964/231 639/963/231 +f 651/964/231 652/1270/231 640/965/231 +f 640/965/231 652/1270/231 653/944/231 +f 606/966/225 666/990/225 665/967/225 +f 605/968/225 665/967/225 664/969/225 +f 603/971/225 604/970/225 664/969/225 +f 602/973/225 603/971/225 663/972/225 +f 602/973/225 662/974/225 661/975/225 +f 601/977/225 661/1271/225 660/978/225 +f 600/979/225 660/978/225 659/980/225 +f 599/981/225 659/980/225 658/982/225 +f 597/984/225 598/983/225 658/982/225 +f 596/986/225 597/984/225 657/985/225 +f 596/986/225 656/987/225 655/988/225 +f 595/989/225 655/988/225 666/990/225 +f 686/991/232 846/1100/232 845/992/232 +f 690/994/224 694/1002/224 692/995/224 +f 689/997/223 687/1272/223 691/998/223 +f 693/999/223 691/998/223 695/1000/223 +f 694/1002/224 698/1273/224 696/1003/224 +f 704/1004/224 702/1007/224 708/1005/224 +f 702/1007/224 700/1132/224 706/1008/224 +f 738/1009/224 742/1023/224 739/1010/224 +f 703/1012/223 709/1274/223 707/1013/223 +f 701/1014/223 707/1013/223 705/1015/223 +f 735/1017/223 740/1275/223 741/1018/223 +f 756/1020/224 758/1035/224 754/1021/224 +f 742/1023/224 746/1032/224 743/1024/224 +f 741/1018/223 740/1275/223 744/1025/223 +f 757/1027/223 755/1037/223 751/1028/223 +f 745/1026/223 744/1025/223 748/1030/223 +f 746/1032/224 750/1276/224 747/1033/224 +f 756/1020/224 760/1038/224 762/1034/224 +f 761/1036/223 759/1041/223 755/1037/223 +f 760/1038/224 764/1277/224 766/1039/224 +f 765/1040/223 763/1278/223 759/1041/223 +f 767/1048/224 769/1050/224 686/1049/224 +f 769/1050/225 770/1279/225 685/1051/225 +f 685/1052/223 770/1280/223 768/1053/223 +f 768/1053/231 767/1048/231 684/993/231 +f 773/1055/223 777/1061/223 775/1056/223 +f 774/1058/224 772/1281/224 776/1059/224 +f 777/1061/223 779/1064/223 781/1062/223 +f 782/1063/224 780/1067/224 778/1060/224 +f 779/1064/223 783/1282/223 797/1065/223 +f 798/1066/224 784/1283/224 780/1067/224 +f 797/1065/223 783/1282/223 785/1068/223 +f 785/1068/223 787/1083/223 799/1069/223 +f 786/1071/224 784/1283/224 798/1066/224 +f 800/1070/224 788/1284/224 786/1071/224 +f 795/1078/223 805/1285/223 803/1079/223 +f 804/1080/224 806/1286/224 796/1081/224 +f 787/1083/223 789/1074/223 801/1082/223 +f 789/1074/223 793/1073/223 803/1079/223 +f 801/1082/223 789/1074/223 803/1079/223 +f 790/1076/224 788/1284/224 802/1287/224 +f 788/1284/224 800/1070/224 802/1287/224 +f 802/1287/224 804/1080/224 790/1076/224 +f 829/1084/223 835/1088/223 833/1085/223 +f 829/1084/223 831/1288/223 837/1087/223 +f 830/1089/224 828/1095/224 834/1090/224 +f 830/1089/224 836/1091/224 838/1092/224 +f 827/1086/220 833/1289/220 834/1094/220 +f 842/1096/224 841/1102/224 844/1097/224 +f 842/1096/231 840/1290/231 839/1099/231 +f 845/992/225 843/1291/225 844/1101/225 +f 845/992/232 841/1102/232 683/1054/232 +f 846/1100/223 839/1292/223 843/1103/223 +f 841/1102/232 842/1096/232 685/1104/232 +f 842/1096/232 846/1100/232 686/991/232 +f 853/1105/231 848/1109/231 847/1106/231 +f 850/1108/222 847/1106/222 848/1109/222 +f 852/1111/220 849/1110/220 848/1109/220 +f 854/1113/230 847/1106/230 850/1108/230 +f 593/941/222 853/1118/222 854/1115/222 +f 852/1116/225 851/1293/225 850/1108/225 +f 573/1117/222 852/1119/222 853/1118/222 +f 573/1117/222 575/918/222 851/917/222 +f 857/1120/233 858/1124/233 856/1121/233 +f 861/1123/234 862/1294/234 858/1124/234 +f 861/1125/223 857/1120/223 855/1122/223 +f 862/1127/224 860/1295/224 856/1121/224 +f 865/1130/231 864/1296/231 863/1297/231 +f 863/1297/231 874/1298/231 865/1130/231 +f 874/1298/231 873/1128/231 865/1130/231 +f 873/1128/231 872/1299/231 869/1129/231 +f 872/1299/231 871/1300/231 869/1129/231 +f 871/1300/231 870/1301/231 869/1129/231 +f 869/1129/231 868/1302/231 867/1303/231 +f 867/1303/231 866/1304/231 869/1129/231 +f 866/1304/231 865/1130/231 869/1129/231 +f 884/1136/224 882/1305/224 880/1306/224 +f 880/1306/224 894/1307/224 892/1134/224 +f 892/1134/224 890/1308/224 888/1135/224 +f 888/1135/224 886/1309/224 884/1136/224 +f 884/1136/224 880/1306/224 892/1134/224 +f 901/1137/224 905/1156/224 906/1138/224 +f 893/1141/223 879/1310/223 881/1311/223 +f 881/1311/223 883/1312/223 893/1141/223 +f 883/1312/223 885/1142/223 893/1141/223 +f 885/1142/223 887/1313/223 889/1314/223 +f 889/1314/223 891/1140/223 885/1142/223 +f 895/1143/223 896/1146/223 897/1144/223 +f 896/1146/223 877/1173/223 899/1147/223 +f 877/1149/223 878/1152/223 900/1150/223 +f 878/1152/223 895/1143/223 898/1153/223 +f 903/1155/224 907/1172/224 905/1156/224 +f 904/1158/224 908/1162/224 907/1159/224 +f 902/1161/224 906/1138/224 908/1162/224 +f 898/1164/220 902/1161/220 904/1163/220 +f 877/1149/225 907/1159/225 908/1162/225 +f 900/1166/231 904/1158/231 903/1160/231 +f 895/1143/231 906/1138/231 905/1156/231 +f 899/1168/230 903/1155/230 901/1157/230 +f 897/1170/225 901/1137/225 902/1139/225 +f 878/1152/230 908/1162/230 906/1138/230 +f 896/1146/220 905/1156/220 907/1172/220 +f 917/1174/235 921/1190/235 922/1175/235 +f 911/1177/236 912/1199/236 913/1178/236 +f 913/1180/236 912/1199/236 909/1181/236 +f 909/1181/236 910/1185/236 916/1183/236 +f 910/1185/236 911/1204/236 914/1186/236 +f 917/1188/235 919/1201/235 923/1189/235 +f 919/1191/235 920/1315/235 924/1192/235 +f 918/1193/235 922/1205/235 924/1192/235 +f 914/1195/237 918/1193/237 920/1194/237 +f 909/1181/238 923/1189/238 924/1192/238 +f 916/1197/239 920/1315/239 919/1191/239 +f 911/1177/239 922/1175/239 921/1190/239 +f 913/1200/240 915/1316/240 919/1201/240 +f 913/1202/238 917/1174/238 918/1176/238 +f 911/1204/240 910/1185/240 924/1192/240 +f 912/1199/237 921/1190/237 923/1189/237 +f 928/1206/227 926/1317/227 580/1042/227 +f 925/1207/221 927/1208/221 577/1047/221 +f 667/1043/224 576/928/224 578/1044/224 +f 576/928/224 590/927/224 578/1044/224 +f 589/916/223 575/918/223 577/1047/223 +f 575/918/223 668/1045/223 577/1047/223 +f 947/1209/224 934/1213/224 933/1210/224 +f 946/1212/230 935/1246/230 934/1213/230 +f 949/1214/223 932/1220/223 931/1215/223 +f 950/1216/230 931/1215/230 936/1217/230 +f 948/1219/230 933/1318/230 932/1220/230 +f 944/1221/224 937/1224/224 938/1222/224 +f 945/1218/241 936/1217/241 937/1224/241 +f 965/1225/224 952/1319/224 953/1226/224 +f 960/1228/242 957/1236/242 954/1229/242 +f 963/1230/223 954/1229/223 951/1231/223 +f 951/1233/230 952/1319/230 965/1225/230 +f 959/1235/223 958/1320/223 957/1236/223 +f 964/1227/243 953/1226/243 955/1237/243 +f 962/1238/231 961/1242/231 964/1240/231 +f 961/1242/231 959/1235/231 964/1240/231 +f 959/1235/231 960/1228/231 963/1239/231 +f 963/1239/231 966/1321/231 965/1322/231 +f 963/1239/231 965/1322/231 964/1240/231 +f 962/1238/224 955/1237/224 956/1241/224 +f 953/1243/225 952/1323/225 951/1324/225 +f 954/1244/225 957/1325/225 958/1326/225 +f 953/1243/225 951/1324/225 954/1244/225 +f 956/1241/225 955/1237/225 953/1243/225 +f 954/1244/225 958/1326/225 956/1241/225 +f 946/1212/244 968/1247/244 967/1245/244 +f 968/1247/223 970/1327/223 969/1248/223 +f 969/1328/225 939/1329/225 967/1330/225 +f 939/1329/225 929/1249/225 967/1330/225 +f 930/1250/225 938/1222/225 937/1224/225 +f 930/1250/225 937/1224/225 936/1331/225 +f 935/1332/225 967/1330/225 929/1249/225 +f 930/1250/225 936/1331/225 932/1333/225 +f 936/1331/225 931/1334/225 932/1333/225 +f 934/1335/225 935/1332/225 933/1251/225 +f 935/1332/225 929/1249/225 933/1251/225 +f 930/1250/225 932/1333/225 933/1251/225 +f 941/1336/231 942/1337/231 968/1247/231 +f 942/1337/231 970/1327/231 968/1247/231 +f 941/1336/231 946/1338/231 948/1252/231 +f 968/1247/231 946/1338/231 941/1336/231 +f 946/1338/231 947/1339/231 948/1252/231 +f 949/1253/231 950/1340/231 945/1341/231 +f 949/1253/231 945/1341/231 940/1254/231 +f 945/1341/231 944/1221/231 940/1254/231 +f 944/1221/231 943/1223/231 940/1254/231 +f 940/1254/231 941/1336/231 948/1252/231 +f 971/1255/220 972/1342/220 973/1256/220 +f 973/1256/220 974/1343/220 975/1257/220 +f 975/1257/220 976/1344/220 977/1345/220 +f 977/1345/220 978/1346/220 975/1257/220 +f 978/1346/220 971/1255/220 975/1257/220 +f 987/1259/223 988/1347/223 989/1348/223 +f 989/1348/223 990/1349/223 987/1259/223 +f 990/1349/223 991/1260/223 987/1259/223 +f 991/1260/223 992/1350/223 993/1351/223 +f 993/1351/223 994/1258/223 991/1260/223 +f 1003/1263/243 1004/1352/243 1005/1353/243 +f 1005/1353/243 1006/1354/243 1003/1263/243 +f 1006/1354/243 1007/1355/243 1003/1263/243 +f 1007/1355/243 1008/1356/243 1003/1263/243 +f 1008/1356/243 1009/1261/243 1003/1263/243 +s 1 +f 580/1357/245 681/1358/246 682/1359/246 +f 609/1360/247 598/983/223 597/984/247 +f 616/1361/224 605/968/248 604/970/224 +f 613/1362/220 602/973/249 601/976/220 +f 610/1363/223 599/981/250 598/983/223 +f 617/1364/248 606/966/251 605/968/248 +f 607/1365/230 596/986/252 595/989/230 +f 614/1366/249 603/971/253 602/973/249 +f 611/1367/250 600/979/254 599/981/250 +f 618/1368/251 595/989/230 606/966/251 +f 608/1369/252 597/984/247 596/986/252 +f 615/1370/253 604/970/224 603/971/253 +f 612/1371/254 601/977/220 600/979/254 +f 628/1372/255 617/1364/256 616/1361/255 +f 617/1364/256 630/1373/257 618/1368/257 +f 630/1373/257 607/1365/258 618/1368/257 +f 619/1374/258 608/1369/259 607/1365/258 +f 608/1369/259 621/1375/260 609/1360/260 +f 609/1360/260 622/1376/261 610/1363/261 +f 622/1376/261 611/1367/262 610/1363/261 +f 623/1377/262 612/1371/263 611/1367/262 +f 624/1378/263 613/1379/264 612/1371/263 +f 625/1380/264 614/1366/265 613/1362/264 +f 626/1381/265 615/1370/266 614/1366/265 +f 627/1382/266 616/1361/255 615/1370/266 +f 629/1383/248 642/945/251 630/1373/251 +f 619/1374/230 632/949/252 620/1384/252 +f 626/1381/249 639/963/253 627/1382/253 +f 623/1377/250 636/957/254 624/1378/254 +f 630/1373/251 631/948/230 619/1374/230 +f 620/1384/252 633/951/247 621/1375/247 +f 627/1382/253 640/965/224 628/1372/224 +f 624/1378/254 637/958/220 625/1385/220 +f 621/1375/247 634/953/223 622/1376/223 +f 628/1372/224 641/946/248 629/1383/248 +f 625/1380/220 638/960/249 626/1381/249 +f 622/1376/223 635/955/250 623/1377/250 +f 573/1386/267 674/1387/268 575/1388/269 +f 670/1389/270 668/1390/271 671/1391/272 +f 673/1392/273 671/1391/272 674/1387/268 +f 575/1388/269 671/1391/272 668/1390/271 +f 672/1393/274 667/1043/275 669/1394/276 +f 665/967/250 720/1395/277 664/969/223 +f 672/1393/274 576/928/278 667/1043/275 +f 576/928/278 673/1392/273 574/1396/279 +f 670/1389/270 672/1393/274 669/1394/276 +f 658/982/224 712/1397/280 657/985/253 +f 661/1271/230 716/1398/281 660/978/251 +f 664/969/223 719/1399/282 663/972/247 +f 657/985/253 713/1400/283 656/987/249 +f 655/988/220 722/1401/284 666/990/254 +f 574/1396/279 674/1387/268 573/1386/267 +f 660/978/251 715/1402/285 659/980/248 +f 663/972/247 718/1403/286 662/974/252 +f 656/987/249 714/1404/287 655/988/220 +f 666/990/254 721/1405/288 665/967/250 +f 659/980/248 711/1406/289 658/982/224 +f 662/974/252 717/1407/290 661/975/230 +f 669/1408/220 676/1409/291 670/1410/220 +f 675/1411/291 678/1412/225 676/1409/291 +f 677/1413/225 680/1414/292 678/1412/225 +f 679/1415/293 681/1358/246 680/1414/293 +f 692/995/294 687/1272/295 688/996/295 +f 698/1273/296 702/1007/297 704/1004/296 +f 696/1003/298 691/998/294 692/995/294 +f 694/1002/297 700/1132/234 702/1007/297 +f 689/997/234 701/1014/297 699/1016/234 +f 701/1014/297 697/1001/296 703/1012/296 +f 705/1416/299 708/1417/297 706/1418/299 +f 707/1419/297 710/1420/296 708/1417/297 +f 737/1019/231 742/1023/300 738/1009/231 +f 646/1268/224 727/1421/301 647/954/248 +f 653/944/250 734/1422/302 654/1267/254 +f 643/947/220 724/1423/303 644/950/249 +f 650/962/252 731/1424/304 651/964/247 +f 647/954/248 728/1425/305 648/956/251 +f 654/1267/254 723/1426/306 643/947/220 +f 644/950/249 725/1427/307 645/952/253 +f 651/964/247 732/1428/308 652/1270/223 +f 648/956/251 729/1429/309 649/1269/230 +f 645/952/253 726/1430/310 646/1268/224 +f 652/1270/223 733/1431/311 653/944/250 +f 649/959/230 730/1432/312 650/962/252 +f 717/1433/290 728/1425/305 716/1434/281 +f 716/1434/281 727/1421/301 715/1435/285 +f 715/1435/285 726/1430/310 711/1436/289 +f 711/1436/289 725/1427/307 712/1437/280 +f 712/1437/280 724/1423/303 713/1438/283 +f 714/1439/287 724/1423/303 723/1426/306 +f 714/1439/287 734/1422/302 722/1440/284 +f 721/1441/288 734/1422/302 733/1431/311 +f 721/1441/288 732/1428/308 720/1442/277 +f 720/1442/277 731/1424/304 719/1443/282 +f 719/1443/282 730/1432/312 718/1444/286 +f 718/1444/286 729/1445/309 717/1446/290 +f 758/1447/313 753/1448/225 754/1449/225 +f 741/1018/300 746/1032/314 742/1023/300 +f 745/1026/314 750/1276/315 746/1032/314 +f 762/1450/316 757/1451/313 758/1447/313 +f 766/1452/317 761/1453/316 762/1450/316 +f 747/1033/318 760/1038/319 743/1024/319 +f 743/1024/319 756/1020/320 739/1010/320 +f 739/1010/320 752/1022/225 736/1011/225 +f 735/1017/225 755/1037/320 740/1275/320 +f 740/1275/320 759/1041/319 744/1025/319 +f 744/1025/319 763/1278/318 748/1030/318 +f 676/1454/223 680/1455/321 670/1456/322 +f 679/1457/323 675/1411/224 669/1408/324 +f 668/1045/325 680/1455/321 681/1458/326 +f 667/1043/327 682/1459/328 679/1457/323 +f 682/1459/328 667/1043/327 580/1042/329 +f 579/1046/330 668/1045/325 681/1458/326 +f 774/1460/331 777/1461/332 773/1462/331 +f 679/1457/323 669/1408/324 667/1043/327 +f 680/1455/321 668/1045/325 670/1456/322 +f 775/1463/333 772/1464/334 771/1465/334 +f 778/1466/332 779/1467/335 777/1461/332 +f 786/1468/336 783/1469/337 784/1470/337 +f 781/1471/338 776/1472/333 775/1463/333 +f 784/1470/337 779/1467/335 780/1473/335 +f 786/1468/336 787/1474/339 785/1475/336 +f 788/1476/339 789/1477/340 787/1474/339 +f 790/1478/340 791/1479/220 789/1477/340 +f 792/1480/341 793/1481/225 791/1479/341 +f 794/1482/225 795/1483/342 793/1481/225 +f 797/1484/291 782/1485/338 781/1471/338 +f 797/1484/291 800/1070/220 798/1066/291 +f 799/1486/231 802/1487/343 800/1070/231 +f 801/1488/343 804/1489/344 802/1487/343 +f 803/1490/344 806/1491/345 804/1489/344 +f 807/1492/346 812/1493/347 809/1494/348 +f 808/1495/349 813/1496/350 807/1492/346 +f 815/1497/351 810/1498/352 809/1494/348 +f 807/1492/346 813/1496/350 811/1499/353 +f 809/1494/348 812/1493/347 815/1497/351 +f 820/1500/354 823/1501/355 819/1502/356 +f 825/1503/357 822/1504/358 821/1505/359 +f 817/1506/360 825/1503/357 818/1507/361 +f 821/1505/359 818/1507/361 825/1503/357 +f 819/1502/356 823/1501/355 817/1506/360 +f 828/1095/362 829/1084/225 827/1086/362 +f 830/1089/225 831/1288/363 829/1084/225 +f 706/1418/299 875/1508/364 705/1416/299 +f 880/1509/231 881/1510/345 879/1511/231 +f 882/1512/345 883/1513/220 881/1510/345 +f 884/1514/220 885/1515/233 883/1516/220 +f 886/1517/233 887/1518/225 885/1515/233 +f 888/1519/225 889/1520/292 887/1518/225 +f 890/1521/292 891/1522/230 889/1520/292 +f 892/1523/230 893/1524/364 891/1522/230 +f 894/1525/364 879/1511/231 893/1524/364 +f 926/1317/220 579/1526/245 580/1042/245 +f 978/1527/358 980/1528/231 971/1529/231 +f 976/1530/354 985/1531/223 977/1532/223 +f 974/1533/349 983/1534/225 975/1535/225 +f 972/1536/352 981/1537/224 973/1538/224 +f 977/1539/223 986/1540/358 978/1527/358 +f 975/1535/225 984/1541/354 976/1530/354 +f 973/1538/224 982/1542/349 974/1533/349 +f 971/1529/231 979/1543/352 972/1536/352 +f 994/1544/364 996/1545/231 987/1546/231 +f 992/1547/292 1001/1548/230 993/1549/230 +f 990/1550/233 999/1551/225 991/1552/225 +f 988/1553/345 997/1554/220 989/1555/220 +f 993/1556/230 1002/1557/364 994/1544/364 +f 991/1552/225 1000/1558/292 992/1547/292 +f 989/1555/220 998/1559/233 990/1550/233 +f 987/1546/231 995/1560/345 988/1553/345 +f 1003/1561/231 1018/1562/365 1012/1563/231 +f 1009/1564/227 1016/1565/366 1017/1566/227 +f 1006/1567/367 1015/1568/225 1007/1569/225 +f 1005/1570/242 1011/1571/368 1013/1572/242 +f 1010/1573/365 1017/1574/227 1018/1562/365 +f 1007/1569/225 1016/1565/366 1008/1575/366 +f 1005/1570/242 1014/1576/367 1006/1567/367 +f 1004/1577/368 1012/1563/231 1011/1571/368 +f 580/1357/245 579/1578/245 681/1358/246 +f 609/1360/247 610/1363/223 598/983/223 +f 616/1361/224 617/1364/248 605/968/248 +f 613/1362/220 614/1366/249 602/973/249 +f 610/1363/223 611/1367/250 599/981/250 +f 617/1364/248 618/1368/251 606/966/251 +f 607/1365/230 608/1369/252 596/986/252 +f 614/1366/249 615/1370/253 603/971/253 +f 611/1367/250 612/1371/254 600/979/254 +f 618/1368/251 607/1365/230 595/989/230 +f 608/1369/252 609/1360/247 597/984/247 +f 615/1370/253 616/1361/224 604/970/224 +f 612/1371/254 613/1379/220 601/977/220 +f 628/1372/255 629/1383/256 617/1364/256 +f 617/1364/256 629/1383/256 630/1373/257 +f 630/1373/257 619/1374/258 607/1365/258 +f 619/1374/258 620/1384/259 608/1369/259 +f 608/1369/259 620/1384/259 621/1375/260 +f 609/1360/260 621/1375/260 622/1376/261 +f 622/1376/261 623/1377/262 611/1367/262 +f 623/1377/262 624/1378/263 612/1371/263 +f 624/1378/263 625/1385/264 613/1379/264 +f 625/1380/264 626/1381/265 614/1366/265 +f 626/1381/265 627/1382/266 615/1370/266 +f 627/1382/266 628/1372/255 616/1361/255 +f 629/1383/248 641/946/248 642/945/251 +f 619/1374/230 631/948/230 632/949/252 +f 626/1381/249 638/960/249 639/963/253 +f 623/1377/250 635/955/250 636/957/254 +f 630/1373/251 642/945/251 631/948/230 +f 620/1384/252 632/949/252 633/951/247 +f 627/1382/253 639/963/253 640/965/224 +f 624/1378/254 636/957/254 637/958/220 +f 621/1375/247 633/951/247 634/953/223 +f 628/1372/224 640/965/224 641/946/248 +f 625/1380/220 637/961/220 638/960/249 +f 622/1376/223 634/953/223 635/955/250 +f 673/1392/273 672/1393/274 671/1391/272 +f 575/1388/269 674/1387/268 671/1391/272 +f 665/967/250 721/1405/288 720/1395/277 +f 672/1393/274 673/1392/273 576/928/278 +f 670/1389/270 671/1391/272 672/1393/274 +f 658/982/224 711/1406/289 712/1397/280 +f 661/1271/230 717/1579/290 716/1398/281 +f 664/969/223 720/1395/277 719/1399/282 +f 657/985/253 712/1397/280 713/1400/283 +f 655/988/220 714/1404/287 722/1401/284 +f 574/1396/279 673/1392/273 674/1387/268 +f 660/978/251 716/1398/281 715/1402/285 +f 663/972/247 719/1399/282 718/1403/286 +f 656/987/249 713/1400/283 714/1404/287 +f 666/990/254 722/1401/284 721/1405/288 +f 659/980/248 715/1402/285 711/1406/289 +f 662/974/252 718/1403/286 717/1407/290 +f 669/1408/220 675/1411/291 676/1409/291 +f 675/1411/291 677/1413/225 678/1412/225 +f 677/1413/225 679/1415/292 680/1414/292 +f 679/1415/293 682/1359/246 681/1358/246 +f 692/995/294 691/998/294 687/1272/295 +f 698/1273/296 694/1002/297 702/1007/297 +f 696/1003/298 695/1000/298 691/998/294 +f 694/1002/297 690/994/234 700/1132/234 +f 689/997/234 693/999/297 701/1014/297 +f 701/1014/297 693/999/297 697/1001/296 +f 705/1416/299 707/1419/297 708/1417/297 +f 707/1419/297 709/1580/296 710/1420/296 +f 737/1019/231 741/1018/300 742/1023/300 +f 646/1268/224 726/1430/310 727/1421/301 +f 653/944/250 733/1431/311 734/1422/302 +f 643/947/220 723/1426/306 724/1423/303 +f 650/962/252 730/1432/312 731/1424/304 +f 647/954/248 727/1421/301 728/1425/305 +f 654/1267/254 734/1422/302 723/1426/306 +f 644/950/249 724/1423/303 725/1427/307 +f 651/964/247 731/1424/304 732/1428/308 +f 648/956/251 728/1425/305 729/1429/309 +f 645/952/253 725/1427/307 726/1430/310 +f 652/1270/223 732/1428/308 733/1431/311 +f 649/959/230 729/1445/309 730/1432/312 +f 717/1433/290 729/1429/309 728/1425/305 +f 716/1434/281 728/1425/305 727/1421/301 +f 715/1435/285 727/1421/301 726/1430/310 +f 711/1436/289 726/1430/310 725/1427/307 +f 712/1437/280 725/1427/307 724/1423/303 +f 714/1439/287 713/1438/283 724/1423/303 +f 714/1439/287 723/1426/306 734/1422/302 +f 721/1441/288 722/1440/284 734/1422/302 +f 721/1441/288 733/1431/311 732/1428/308 +f 720/1442/277 732/1428/308 731/1424/304 +f 719/1443/282 731/1424/304 730/1432/312 +f 718/1444/286 730/1432/312 729/1445/309 +f 758/1447/313 757/1451/313 753/1448/225 +f 741/1018/300 745/1026/314 746/1032/314 +f 745/1026/314 749/1031/315 750/1276/315 +f 762/1450/316 761/1453/316 757/1451/313 +f 766/1452/317 765/1040/317 761/1453/316 +f 747/1033/318 764/1277/318 760/1038/319 +f 743/1024/319 760/1038/319 756/1020/320 +f 739/1010/320 756/1020/320 752/1022/225 +f 735/1017/225 751/1028/225 755/1037/320 +f 740/1275/320 755/1037/320 759/1041/319 +f 744/1025/319 759/1041/319 763/1278/318 +f 676/1454/223 678/1581/223 680/1455/321 +f 679/1457/323 677/1582/224 675/1411/224 +f 774/1460/331 778/1466/332 777/1461/332 +f 775/1463/333 776/1472/333 772/1464/334 +f 778/1466/332 780/1473/335 779/1467/335 +f 786/1468/336 785/1475/336 783/1469/337 +f 781/1471/338 782/1485/338 776/1472/333 +f 784/1470/337 783/1469/337 779/1467/335 +f 786/1468/336 788/1476/339 787/1474/339 +f 788/1476/339 790/1478/340 789/1477/340 +f 790/1478/340 792/1480/220 791/1479/220 +f 792/1480/341 794/1482/225 793/1481/225 +f 794/1482/225 796/1583/342 795/1483/342 +f 797/1484/291 798/1066/291 782/1485/338 +f 797/1484/291 799/1486/220 800/1070/220 +f 799/1486/231 801/1488/343 802/1487/343 +f 801/1488/343 803/1490/344 804/1489/344 +f 803/1490/344 805/1584/345 806/1491/345 +f 807/1492/346 811/1499/353 812/1493/347 +f 808/1495/349 814/1585/349 813/1496/350 +f 815/1497/351 816/1586/352 810/1498/352 +f 820/1500/354 824/1587/354 823/1501/355 +f 825/1503/357 826/1588/358 822/1504/358 +f 817/1506/360 823/1501/355 825/1503/357 +f 828/1095/362 830/1089/225 829/1084/225 +f 830/1089/225 832/1093/363 831/1288/363 +f 706/1418/299 876/1133/364 875/1508/364 +f 880/1509/231 882/1512/345 881/1510/345 +f 882/1512/345 884/1589/220 883/1513/220 +f 884/1514/220 886/1517/233 885/1515/233 +f 886/1517/233 888/1519/225 887/1518/225 +f 888/1519/225 890/1521/292 889/1520/292 +f 890/1521/292 892/1523/230 891/1522/230 +f 892/1523/230 894/1525/364 893/1524/364 +f 894/1525/364 880/1509/231 879/1511/231 +f 926/1317/220 925/1590/220 579/1526/245 +f 978/1527/358 986/1540/358 980/1528/231 +f 976/1530/354 984/1541/354 985/1531/223 +f 974/1533/349 982/1542/349 983/1534/225 +f 972/1536/352 979/1543/352 981/1537/224 +f 977/1539/223 985/1591/223 986/1540/358 +f 975/1535/225 983/1534/225 984/1541/354 +f 973/1538/224 981/1537/224 982/1542/349 +f 971/1529/231 980/1528/231 979/1543/352 +f 994/1544/364 1002/1557/364 996/1545/231 +f 992/1547/292 1000/1558/292 1001/1548/230 +f 990/1550/233 998/1559/233 999/1551/225 +f 988/1553/345 995/1560/345 997/1554/220 +f 993/1556/230 1001/1592/230 1002/1557/364 +f 991/1552/225 999/1551/225 1000/1558/292 +f 989/1555/220 997/1554/220 998/1559/233 +f 987/1546/231 996/1545/231 995/1560/345 +f 1003/1561/231 1010/1573/365 1018/1562/365 +f 1009/1564/227 1008/1575/366 1016/1565/366 +f 1006/1567/367 1014/1576/367 1015/1568/225 +f 1005/1570/242 1004/1577/368 1011/1571/368 +f 1010/1573/365 1009/1593/227 1017/1574/227 +f 1007/1569/225 1015/1568/225 1016/1565/366 +f 1005/1570/242 1013/1572/242 1014/1576/367 +f 1004/1577/368 1003/1561/231 1012/1563/231 diff --git a/src/main/resources/assets/hbm/models/weapons/stinger.obj b/src/main/resources/assets/hbm/models/weapons/stinger.obj index 06422b0b2..5f99e4edd 100644 --- a/src/main/resources/assets/hbm/models/weapons/stinger.obj +++ b/src/main/resources/assets/hbm/models/weapons/stinger.obj @@ -1,733 +1,5 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender v2.79 (sub 0) OBJ File: 'stinger.blend' # www.blender.org -mtllib stinger.(1obj.mtl -o Cube.001_Cube.002 -v 0.393889 3.128783 -9.337228 -v 0.393890 1.846543 -5.892444 -v 0.393889 1.846542 -9.337228 -v -0.393894 3.128783 -5.892444 -v -0.393895 1.846542 -9.337228 -v -0.393894 1.846543 -5.892444 -v -0.393895 3.128783 -9.337228 -v -0.000002 3.303435 -5.049528 -v -0.382998 1.728983 -5.208168 -v -0.000002 1.728983 -5.049528 -v -0.382998 3.303435 -5.208168 -v -0.541638 1.728983 -5.591164 -v -0.541638 3.303435 -5.591164 -v -0.382998 1.728983 -5.974160 -v -0.382998 3.303435 -5.974160 -v -0.000002 1.728983 -6.132800 -v -0.000002 3.303435 -6.132800 -v 0.382994 1.728983 -5.974160 -v 0.382994 3.303435 -5.974160 -v 0.541634 1.728983 -5.591164 -v 0.541634 3.303435 -5.591164 -v 0.382994 1.728983 -5.208168 -v 0.382994 3.303435 -5.208168 -v -1.403786 4.699999 -5.797567 -v -1.686627 4.582843 -7.948311 -v -1.686626 4.582843 -5.797567 -v -1.803787 4.299999 -7.948311 -v -1.803786 4.299999 -5.797567 -v -1.686626 4.017155 -5.797567 -v -1.686627 4.017155 -7.948311 -v -1.403786 3.899999 -5.797567 -v -1.403787 3.899999 -7.948311 -v -1.120942 4.017155 -5.797567 -v -1.003787 4.299999 -7.948312 -v -1.003786 4.299999 -5.797568 -v -1.883787 4.299999 -7.982080 -v -1.743199 3.960587 -7.982080 -v -1.120943 4.582843 -7.948312 -v -1.120942 4.582843 -5.797568 -v -0.923786 4.299999 -5.755472 -v -0.923787 4.299999 -7.982080 -v -1.064375 4.639411 -8.277956 -v -1.064375 4.639411 -7.982080 -v -1.120943 4.017155 -7.948311 -v -1.403787 3.819999 -7.982080 -v -1.064375 3.960587 -7.982080 -v -1.403787 4.699999 -7.948311 -v -1.403787 4.779999 -7.982080 -v -1.743199 4.639411 -7.982080 -v -0.923787 4.299999 -8.277956 -v -1.743199 3.960587 -8.277955 -v -1.883787 4.299999 -8.277955 -v -1.403787 3.819999 -8.277956 -v -1.064375 3.960587 -8.277956 -v -1.743199 4.639411 -8.277956 -v -1.403787 4.779999 -8.277956 -v -1.403786 4.779999 -5.755472 -v -1.064374 4.639411 -5.489088 -v -1.064374 4.639411 -5.755472 -v -1.883786 4.299999 -5.755472 -v -1.743198 4.639411 -5.755472 -v -1.064374 3.960587 -5.755472 -v -1.403786 3.819999 -5.755472 -v -1.743198 3.960587 -5.755472 -v -1.743198 3.960587 -5.489088 -v -0.923786 4.299999 -5.489088 -v -1.883786 4.299999 -5.489088 -v -1.064374 3.960587 -5.489088 -v -1.743198 4.639411 -5.489088 -v -1.403786 3.819999 -5.489088 -v -1.403786 4.779999 -5.489088 -v -1.473919 4.208779 -7.811895 -v -0.447114 3.729971 -5.941060 -v -0.447115 3.729971 -7.811896 -v 0.128767 2.756387 -3.983544 -v 0.128767 1.614719 -3.555136 -v 0.128767 1.614719 -3.983544 -v 0.128767 2.756387 -3.555136 -v -0.128769 1.614719 -3.555136 -v -0.128769 2.756387 -3.555136 -v -0.128769 1.614719 -3.983544 -v -0.128769 2.756387 -3.983544 -v 0.190951 3.077327 -3.167776 -v -0.208109 2.727468 -3.531600 -v 0.197875 2.727295 -3.523528 -v -0.198185 2.731559 -4.030576 -v 0.207799 2.731387 -4.022504 -v -0.191081 3.087375 -4.380480 -v 0.214907 3.087207 -4.372408 -v -0.207801 3.932427 -3.521620 -v -0.190953 3.586487 -4.376348 -v -0.214909 3.576612 -3.171716 -v 0.215035 3.586319 -4.368276 -v 0.198183 3.932260 -3.513548 -v 0.191079 3.576439 -3.163644 -v 0.771273 5.530663 -9.417193 -v 0.771274 4.098263 -6.669316 -v 0.771273 4.098262 -9.417192 -v 0.771274 5.530663 -6.669316 -v -0.771278 4.098263 -6.669316 -v -0.771278 5.530663 -6.669316 -v -0.771279 4.098262 -9.417192 -v -0.000003 4.089742 -9.779048 -v -0.346641 3.977118 9.779048 -v 0.000003 4.089750 9.779048 -v -0.346647 3.977114 -9.779048 -v -0.560881 3.682245 9.779048 -v -0.560887 3.682238 -9.779048 -v -0.560881 3.317762 9.779048 -v -0.560887 3.317755 -9.779048 -v -0.346641 3.022886 9.779048 -v -0.346647 3.022882 -9.779048 -v 0.000003 2.910254 9.779048 -v -0.000003 2.910250 -9.779048 -v 0.346647 3.022886 9.779048 -v 0.346641 3.022882 -9.779048 -v 0.560887 3.317762 9.779048 -v 0.560881 3.317755 -9.779048 -v 0.560887 3.682245 9.779048 -v -0.381311 4.024827 -9.822908 -v 0.560881 3.682238 -9.779048 -v 0.346647 3.977118 9.779048 -v 0.346641 3.977114 -9.779048 -v 0.519971 4.215673 9.897908 -v -0.841321 3.226638 9.897908 -v 0.841327 3.773365 9.897908 -v -0.841321 3.773365 9.897908 -v 0.841327 3.226638 9.897908 -v 0.519971 2.784330 9.897908 -v 0.000003 2.615382 9.897908 -v -0.519965 2.784330 9.897908 -v -0.519965 4.215673 9.897908 -v 0.000003 4.384622 9.897908 -v -0.616975 3.299531 -9.822908 -v -0.616975 3.700462 -10.379472 -v -0.616975 3.299530 -10.379472 -v -0.616975 3.700462 -9.822908 -v 0.381305 4.024827 -9.822908 -v -0.000003 4.148718 -9.822908 -v 0.616969 3.700462 -9.822908 -v 0.616969 3.299531 -9.822908 -v 0.381305 2.975170 -9.822908 -v -0.381311 2.975170 -9.822908 -v -0.000003 2.851278 -9.822908 -v 0.616969 3.700462 -10.379472 -v -0.000003 4.148718 -10.379472 -v 0.381305 2.975170 -10.379472 -v 0.616969 3.299530 -10.379472 -v -0.381311 2.975170 -10.379472 -v -0.381311 4.024827 -10.379472 -v -0.000003 2.851278 -10.379472 -v 0.381305 4.024827 -10.379472 -v 0.393890 3.128783 -5.892444 -v -1.473918 4.208779 -5.941060 -v -0.215037 3.077499 -3.175848 -v -0.197877 3.936519 -4.020596 -v 0.208107 3.936351 -4.012524 -v -0.771279 5.530663 -9.417192 -vt 0.527579 0.843077 -vt 0.818514 0.903517 -vt 0.527579 0.904025 -vt 0.818514 0.999529 -vt 0.527579 0.938195 -vt 0.818514 0.938957 -vt 0.451532 0.938195 -vt 0.601607 0.751835 -vt 0.564045 0.842170 -vt 0.601607 0.842170 -vt 0.564045 0.751835 -vt 0.526858 0.842170 -vt 0.526858 0.751835 -vt 0.490047 0.842170 -vt 0.490047 0.751835 -vt 0.452109 0.842170 -vt 0.751857 0.751835 -vt 0.714295 0.842170 -vt 0.751857 0.842170 -vt 0.714295 0.751835 -vt 0.676356 0.842170 -vt 0.676356 0.751835 -vt 0.639545 0.842170 -vt 0.639545 0.751835 -vt 0.525741 0.869077 -vt 0.515026 0.885956 -vt 0.463759 0.885334 -vt 0.601692 0.396030 -vt 0.639188 0.583813 -vt 0.639188 0.396030 -vt 0.676683 0.583813 -vt 0.676683 0.396030 -vt 0.714179 0.396030 -vt 0.714179 0.583813 -vt 0.751674 0.396030 -vt 0.451711 0.583813 -vt 0.489206 0.396030 -vt 0.451711 0.396030 -vt 0.526701 0.583813 -vt 0.526701 0.396030 -vt 0.676683 0.593980 -vt 0.714179 0.593980 -vt 0.564197 0.583813 -vt 0.564197 0.396030 -vt 0.526701 0.385823 -vt 0.526701 0.593980 -vt 0.564197 0.619244 -vt 0.564197 0.593980 -vt 0.489206 0.583813 -vt 0.751674 0.583813 -vt 0.751674 0.593980 -vt 0.489206 0.593980 -vt 0.601692 0.583813 -vt 0.601692 0.593980 -vt 0.639188 0.593980 -vt 0.451827 0.314796 -vt 0.579610 0.279064 -vt 0.601536 0.314798 -vt 0.451711 0.619244 -vt 0.489206 0.619244 -vt 0.714179 0.619244 -vt 0.639188 0.619244 -vt 0.601692 0.619244 -vt 0.526701 0.619244 -vt 0.751674 0.619244 -vt 0.676683 0.619244 -vt 0.601692 0.385823 -vt 0.564197 0.365688 -vt 0.564197 0.385823 -vt 0.676683 0.385823 -vt 0.639188 0.385823 -vt 0.489206 0.385823 -vt 0.451711 0.385823 -vt 0.714179 0.385823 -vt 0.624771 0.279664 -vt 0.751320 0.315075 -vt 0.603068 0.315060 -vt 0.526701 0.365688 -vt 0.489206 0.365688 -vt 0.751674 0.385823 -vt 0.714179 0.365688 -vt 0.639188 0.365688 -vt 0.451711 0.365688 -vt 0.676683 0.365688 -vt 0.601692 0.365688 -vt 0.751346 0.193282 -vt 0.452761 0.263765 -vt 0.751346 0.263765 -vt 0.647089 0.751158 -vt 0.571440 0.645292 -vt 0.647089 0.645292 -vt 0.571440 0.751158 -vt 0.526386 0.644688 -vt 0.526386 0.751158 -vt 0.451379 0.644688 -vt 0.691237 0.751158 -vt 0.691237 0.645292 -vt 0.451379 0.619409 -vt 0.526386 0.619409 -vt 0.820207 0.914045 -vt 0.865118 0.939246 -vt 0.865118 0.914045 -vt 0.954494 0.939246 -vt 0.954494 0.914045 -vt 1.000067 0.939246 -vt 1.000067 0.914045 -vt 0.948519 0.999611 -vt 0.821154 0.982062 -vt 0.999562 0.982062 -vt 0.997335 0.982124 -vt 0.872418 0.999486 -vt 0.821195 0.982124 -vt 0.998746 0.842514 -vt 0.916847 0.720802 -vt 0.916847 0.842514 -vt 0.916847 0.665046 -vt 0.834948 0.720802 -vt 0.753049 0.720802 -vt 0.834948 0.842514 -vt 0.225330 0.955040 -vt 0.262812 0.116603 -vt 0.225330 0.116603 -vt 0.262812 0.955040 -vt 0.300293 0.116603 -vt 0.300293 0.955040 -vt 0.337775 0.116603 -vt 0.337775 0.955040 -vt 0.375256 0.116603 -vt 0.375256 0.955040 -vt 0.412738 0.116603 -vt 0.037923 0.955040 -vt 0.075404 0.116603 -vt 0.037923 0.116603 -vt 0.075404 0.955040 -vt 0.112886 0.116603 -vt 0.112886 0.955040 -vt 0.150367 0.116603 -vt 0.262812 0.959827 -vt 0.150367 0.955040 -vt 0.187849 0.116603 -vt 0.187849 0.955040 -vt 0.187849 0.101602 -vt 0.144918 0.065072 -vt 0.006436 0.036153 -vt 0.145032 0.034460 -vt 0.150367 0.101602 -vt 0.112886 0.101602 -vt 0.075404 0.101602 -vt 0.037923 0.101602 -vt 0.375256 0.101602 -vt 0.337775 0.101602 -vt 0.262812 0.101602 -vt 0.225330 0.101602 -vt 0.300293 0.101602 -vt 0.337775 0.959827 -vt 0.300293 0.999948 -vt 0.337775 0.999948 -vt 0.300293 0.959827 -vt 0.187849 0.959827 -vt 0.225330 0.959827 -vt 0.150367 0.959827 -vt 0.112886 0.959827 -vt 0.075404 0.959827 -vt 0.412738 0.955040 -vt 0.375256 0.959827 -vt 0.412738 0.959827 -vt 0.153921 0.065967 -vt 0.296232 0.034750 -vt 0.295940 0.065362 -vt 0.225330 0.999948 -vt 0.075404 0.999948 -vt 0.112886 0.999948 -vt 0.375256 0.999948 -vt 0.262812 0.999948 -vt 0.150367 0.999948 -vt 0.412738 0.999948 -vt 0.187849 0.999948 -vt 0.037923 0.999948 -vt 0.818514 0.843077 -vt 0.527579 0.999529 -vt 0.451532 0.904025 -vt 0.452109 0.751835 -vt 0.453239 0.868198 -vt 0.463954 0.851318 -vt 0.489628 0.844584 -vt 0.515221 0.851940 -vt 0.489352 0.892690 -vt 0.451711 0.593980 -vt 0.579613 0.350531 -vt 0.473752 0.350529 -vt 0.526683 0.365331 -vt 0.473750 0.279063 -vt 0.526680 0.264262 -vt 0.729617 0.350470 -vt 0.677205 0.365127 -vt 0.624787 0.350459 -vt 0.677183 0.265008 -vt 0.729601 0.279675 -vt 0.751674 0.365688 -vt 0.452761 0.193282 -vt 0.451379 0.751158 -vt 0.820207 0.939246 -vt 0.872853 0.939693 -vt 0.947243 0.939693 -vt 0.999034 0.957243 -vt 0.820625 0.957243 -vt 0.874129 0.999611 -vt 0.821713 0.957571 -vt 0.997853 0.957571 -vt 0.873670 0.940209 -vt 0.946630 0.940209 -vt 0.945378 0.999486 -vt 0.998746 0.720802 -vt 0.834948 0.665046 -vt 0.753049 0.842514 -vt 0.032998 0.011064 -vt 0.075862 0.001081 -vt 0.118655 0.010018 -vt 0.118356 0.090161 -vt 0.032699 0.091207 -vt 0.075492 0.100143 -vt 0.006322 0.066764 -vt 0.412738 0.101602 -vt 0.037923 0.959827 -vt 0.268581 0.090244 -vt 0.224605 0.099890 -vt 0.180808 0.090618 -vt 0.154212 0.035355 -vt 0.181571 0.010473 -vt 0.225547 0.000826 -vt 0.269344 0.010099 -vn 1.0000 0.0000 -0.0000 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.3827 0.0000 0.9239 -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.9239 0.0000 -0.3827 -vn 0.9239 0.0000 0.3827 -vn 0.3827 0.0000 0.9239 -vn -0.3827 0.9239 0.0000 -vn -0.9239 0.3827 0.0000 -vn -0.9239 -0.3827 0.0000 -vn -0.3827 -0.9239 0.0000 -vn 0.3827 -0.9239 0.0000 -vn 0.9239 -0.3827 -0.0000 -vn -0.3839 -0.1590 0.9096 -vn 0.9239 0.3827 -0.0000 -vn 0.3827 0.9239 -0.0000 -vn 0.4572 0.1894 -0.8689 -vn 0.3839 -0.1590 0.9096 -vn -0.1590 -0.3839 0.9096 -vn 0.3839 0.1590 0.9096 -vn -0.3839 0.1590 0.9096 -vn 0.1590 -0.3839 0.9096 -vn 0.1590 0.3839 0.9096 -vn -0.1590 0.3839 0.9096 -vn -0.4572 0.1894 -0.8689 -vn 0.1894 -0.4572 -0.8689 -vn 0.1894 0.4572 -0.8689 -vn -0.1894 0.4572 -0.8689 -vn -0.4572 -0.1894 -0.8690 -vn -0.4572 -0.1894 -0.8689 -vn 0.4572 -0.1894 -0.8689 -vn -0.1894 -0.4572 -0.8689 -vn 0.0000 0.0000 1.0000 -vn 0.4226 0.9063 -0.0000 -vn -0.0142 -0.7129 0.7011 -vn -0.0003 -1.0000 -0.0082 -vn 0.0139 -0.7012 -0.7128 -vn -0.9998 0.0004 -0.0199 -vn 0.9998 -0.0004 0.0199 -vn -0.3090 0.9511 -0.0000 -vn -0.8090 0.5878 0.0000 -vn -0.8090 -0.5878 0.0000 -vn -0.3090 -0.9511 0.0000 -vn 0.3090 -0.9511 0.0000 -vn 0.8090 -0.5878 -0.0000 -vn -0.1904 0.5858 0.7877 -vn -0.1903 0.5859 0.7877 -vn 0.8090 0.5878 -0.0000 -vn 0.3090 0.9511 -0.0000 -vn 0.1206 0.3711 -0.9207 -vn 0.3157 0.2294 -0.9207 -vn 0.3902 0.0000 -0.9207 -vn 0.3157 -0.2294 -0.9207 -vn 0.1206 -0.3711 -0.9207 -vn -0.1206 -0.3711 -0.9207 -vn -0.3157 -0.2294 -0.9207 -vn -0.1206 0.3711 -0.9207 -vn -0.3902 0.0000 -0.9207 -vn -0.3157 0.2294 -0.9207 -vn -0.6160 0.0000 0.7877 -vn -0.4984 0.3621 0.7877 -vn -0.4983 0.3621 0.7877 -vn -0.4983 0.3621 0.7878 -vn 0.1904 0.5858 0.7877 -vn 0.1903 0.5859 0.7877 -vn 0.4984 0.3621 0.7877 -vn 0.4983 0.3621 0.7877 -vn 0.6160 0.0000 0.7877 -vn 0.4984 -0.3621 0.7877 -vn 0.1904 -0.5859 0.7877 -vn -0.1904 -0.5859 0.7877 -vn -0.4984 -0.3621 0.7877 -vn -0.4572 0.1894 -0.8690 -vn -0.4983 -0.3621 0.7877 -usemtl None -s 1 -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 3/3/3 5/5/3 -f 6/6/4 3/3/4 2/2/4 -f 8/8/5 9/9/5 10/10/5 -f 11/11/6 12/12/6 9/9/6 -f 13/13/7 14/14/7 12/12/7 -f 15/15/8 16/16/8 14/14/8 -f 17/17/9 18/18/9 16/19/9 -f 19/20/10 20/21/10 18/18/10 -f 21/22/11 22/23/11 20/21/11 -f 23/24/12 10/10/12 22/23/12 -f 16/25/4 18/26/4 22/27/4 -f 24/28/13 25/29/13 26/30/13 -f 26/30/14 27/31/14 28/32/14 -f 27/31/15 29/33/15 28/32/15 -f 30/34/16 31/35/16 29/33/16 -f 32/36/17 33/37/17 31/38/17 -f 33/37/18 34/39/18 35/40/18 -f 30/34/19 36/41/19 37/42/19 -f 35/40/20 38/43/20 39/44/20 -f 38/43/21 24/28/21 39/44/21 -f 39/44/22 40/45/22 35/40/22 -f 41/46/20 42/47/20 43/48/20 -f 44/49/23 41/46/23 34/39/23 -f 32/50/24 37/42/24 45/51/24 -f 38/43/25 41/46/25 43/48/25 -f 25/29/26 36/41/26 27/31/26 -f 32/36/27 46/52/27 44/49/27 -f 47/53/28 43/48/28 48/54/28 -f 47/53/29 49/55/29 25/29/29 -f 50/56/3 51/57/3 52/58/3 -f 46/52/17 53/59/17 54/60/17 -f 36/41/15 51/61/15 37/42/15 -f 48/54/13 55/62/13 49/55/13 -f 43/48/21 56/63/21 48/54/21 -f 46/52/18 50/64/18 41/46/18 -f 37/42/16 53/65/16 45/51/16 -f 49/55/14 52/66/14 36/41/14 -f 57/67/21 58/68/21 59/69/21 -f 26/30/30 60/70/30 61/71/30 -f 31/38/31 62/72/31 63/73/31 -f 24/28/32 59/69/32 39/44/32 -f 24/28/33 61/71/33 57/67/33 -f 29/33/34 60/70/35 28/32/35 -f 33/37/36 40/45/36 62/72/36 -f 31/35/37 64/74/37 29/33/37 -f 65/75/38 66/76/38 67/77/38 -f 62/72/18 66/78/18 68/79/18 -f 63/80/16 65/81/16 64/74/16 -f 60/70/14 69/82/14 61/71/14 -f 40/45/20 58/68/20 66/78/20 -f 62/72/17 70/83/17 63/73/17 -f 64/74/15 67/84/15 60/70/15 -f 61/71/13 71/85/13 57/67/13 -f 72/86/39 73/87/39 74/88/39 -f 75/89/1 76/90/1 77/91/1 -f 78/92/38 79/93/38 76/90/38 -f 80/94/2 81/95/2 79/93/2 -f 82/96/3 77/91/3 81/97/3 -f 79/93/4 77/98/4 76/99/4 -f 83/100/40 84/101/40 85/102/40 -f 85/102/41 86/103/41 87/104/41 -f 87/104/42 88/105/42 89/106/42 -f 90/107/43 91/108/43 92/109/43 -f 93/110/44 94/111/44 95/112/44 -f 96/113/1 97/114/1 98/115/1 -f 99/116/38 100/117/38 97/114/38 -f 101/118/2 102/119/2 100/117/2 -f 100/117/4 98/115/4 97/114/4 -f 103/120/45 104/121/45 105/122/45 -f 106/123/46 107/124/46 104/121/46 -f 108/125/2 109/126/2 107/124/2 -f 110/127/47 111/128/47 109/126/47 -f 112/129/48 113/130/48 111/128/48 -f 114/131/49 115/132/49 113/133/49 -f 116/134/50 117/135/50 115/132/50 -f 118/136/1 119/137/1 117/135/1 -f 103/120/51 120/138/52 106/123/52 -f 121/139/53 122/140/53 119/137/53 -f 123/141/54 105/122/54 122/140/54 -f 105/122/55 124/142/55 122/140/55 -f 125/143/38 126/144/38 127/145/38 -f 122/140/56 126/146/56 119/137/56 -f 117/135/57 126/146/57 128/147/57 -f 115/132/58 128/147/58 129/148/58 -f 113/133/59 129/148/59 130/149/59 -f 113/130/60 131/150/60 111/128/60 -f 111/128/61 125/151/61 109/126/61 -f 105/122/62 132/152/62 133/153/62 -f 109/126/63 127/154/63 107/124/63 -f 104/121/64 127/154/64 132/152/64 -f 134/155/2 135/156/2 136/157/2 -f 108/125/65 134/155/65 110/127/65 -f 106/123/66 137/158/67 108/125/68 -f 103/120/69 138/159/70 139/160/69 -f 123/141/71 140/161/72 138/159/71 -f 118/136/73 140/161/73 121/139/73 -f 116/134/74 141/162/74 118/136/74 -f 114/131/75 142/163/75 116/134/75 -f 114/164/76 143/165/76 144/166/76 -f 112/129/77 134/155/77 143/165/77 -f 145/167/3 136/168/3 135/169/3 -f 138/159/54 146/170/54 139/160/54 -f 141/162/50 147/171/50 148/172/50 -f 143/165/47 136/157/47 149/173/47 -f 139/160/45 150/174/45 120/138/45 -f 141/162/1 145/175/1 140/161/1 -f 144/166/48 149/173/48 151/176/48 -f 120/138/46 135/156/46 137/158/46 -f 140/161/53 152/177/53 138/159/53 -f 142/163/49 151/178/49 147/171/49 -f 1/1/1 153/179/1 2/2/1 -f 4/4/2 7/180/2 5/5/2 -f 7/7/3 1/181/3 3/3/3 -f 6/6/4 5/5/4 3/3/4 -f 8/8/5 11/11/5 9/9/5 -f 11/11/6 13/13/6 12/12/6 -f 13/13/7 15/15/7 14/14/7 -f 15/15/8 17/182/8 16/16/8 -f 17/17/9 19/20/9 18/18/9 -f 19/20/10 21/22/10 20/21/10 -f 21/22/11 23/24/11 22/23/11 -f 23/24/12 8/8/12 10/10/12 -f 22/27/4 10/183/4 16/25/4 -f 9/184/4 12/185/4 14/186/4 -f 14/186/4 16/25/4 10/183/4 -f 18/26/4 20/187/4 22/27/4 -f 10/183/4 9/184/4 14/186/4 -f 24/28/13 47/53/13 25/29/13 -f 26/30/14 25/29/14 27/31/14 -f 27/31/15 30/34/15 29/33/15 -f 30/34/16 32/50/16 31/35/16 -f 32/36/17 44/49/17 33/37/17 -f 33/37/18 44/49/18 34/39/18 -f 30/34/19 27/31/19 36/41/19 -f 35/40/20 34/39/20 38/43/20 -f 38/43/21 47/53/21 24/28/21 -f 39/44/22 59/69/22 40/45/22 -f 41/46/20 50/64/20 42/47/20 -f 44/49/23 46/52/23 41/46/23 -f 32/50/24 30/34/24 37/42/24 -f 38/43/25 34/39/25 41/46/25 -f 25/29/26 49/55/26 36/41/26 -f 32/36/27 45/188/27 46/52/27 -f 47/53/28 38/43/28 43/48/28 -f 47/53/29 48/54/29 49/55/29 -f 52/58/3 55/189/3 42/190/3 -f 56/191/3 42/190/3 55/189/3 -f 50/56/3 54/192/3 51/57/3 -f 53/193/3 51/57/3 54/192/3 -f 52/58/3 42/190/3 50/56/3 -f 46/52/17 45/188/17 53/59/17 -f 36/41/15 52/66/15 51/61/15 -f 48/54/13 56/63/13 55/62/13 -f 43/48/21 42/47/21 56/63/21 -f 46/52/18 54/60/18 50/64/18 -f 37/42/16 51/61/16 53/65/16 -f 49/55/14 55/62/14 52/66/14 -f 57/67/21 71/85/21 58/68/21 -f 26/30/30 28/32/78 60/70/30 -f 31/38/31 33/37/31 62/72/31 -f 24/28/32 57/67/32 59/69/32 -f 24/28/33 26/30/33 61/71/33 -f 29/33/34 64/74/34 60/70/35 -f 33/37/36 35/40/36 40/45/36 -f 31/35/37 63/80/37 64/74/37 -f 58/194/38 71/195/38 69/196/38 -f 69/196/38 67/77/38 58/194/38 -f 65/75/38 70/197/38 68/198/38 -f 68/198/38 66/76/38 65/75/38 -f 58/194/38 67/77/38 66/76/38 -f 62/72/18 40/45/18 66/78/18 -f 63/80/16 70/199/16 65/81/16 -f 60/70/14 67/84/14 69/82/14 -f 40/45/20 59/69/20 58/68/20 -f 62/72/17 68/79/17 70/83/17 -f 64/74/15 65/81/15 67/84/15 -f 61/71/13 69/82/13 71/85/13 -f 72/86/39 154/200/39 73/87/39 -f 75/89/1 78/92/1 76/90/1 -f 78/92/38 80/94/38 79/93/38 -f 80/94/2 82/201/2 81/95/2 -f 82/96/3 75/89/3 77/91/3 -f 79/93/4 81/95/4 77/98/4 -f 83/100/40 155/202/40 84/101/40 -f 85/102/41 84/101/41 86/103/41 -f 87/104/42 86/103/42 88/105/42 -f 86/203/43 84/204/43 155/205/43 -f 155/205/43 92/109/43 88/206/43 -f 90/107/43 156/207/43 91/108/43 -f 91/108/43 88/206/43 92/109/43 -f 86/203/43 155/205/43 88/206/43 -f 95/112/44 83/208/44 89/209/44 -f 85/210/44 87/211/44 83/208/44 -f 89/209/44 93/110/44 95/112/44 -f 157/212/44 94/111/44 93/110/44 -f 83/208/44 87/211/44 89/209/44 -f 96/113/1 99/213/1 97/114/1 -f 99/116/38 101/214/38 100/117/38 -f 101/118/2 158/215/2 102/119/2 -f 100/117/4 102/119/4 98/115/4 -f 103/120/45 106/123/45 104/121/45 -f 106/123/46 108/125/46 107/124/46 -f 108/125/2 110/127/2 109/126/2 -f 110/127/47 112/129/47 111/128/47 -f 112/129/48 114/164/48 113/130/48 -f 114/131/49 116/134/49 115/132/49 -f 116/134/50 118/136/50 117/135/50 -f 118/136/1 121/139/1 119/137/1 -f 103/120/51 139/160/51 120/138/52 -f 121/139/53 123/141/53 122/140/53 -f 123/141/54 103/120/54 105/122/54 -f 105/122/55 133/153/55 124/142/55 -f 124/216/38 133/217/38 132/218/38 -f 132/218/38 127/145/38 124/216/38 -f 125/143/38 131/219/38 129/220/38 -f 130/221/38 129/220/38 131/219/38 -f 128/222/38 126/144/38 125/143/38 -f 124/216/38 127/145/38 126/144/38 -f 125/143/38 129/220/38 128/222/38 -f 122/140/56 124/142/56 126/146/56 -f 117/135/57 119/137/57 126/146/57 -f 115/132/58 117/135/58 128/147/58 -f 113/133/59 115/132/59 129/148/59 -f 113/130/60 130/223/60 131/150/60 -f 111/128/61 131/150/61 125/151/61 -f 105/122/62 104/121/62 132/152/62 -f 109/126/63 125/151/63 127/154/63 -f 104/121/64 107/124/64 127/154/64 -f 134/155/2 137/158/2 135/156/2 -f 108/125/65 137/158/65 134/155/65 -f 106/123/66 120/138/66 137/158/67 -f 103/120/69 123/141/70 138/159/70 -f 123/141/71 121/139/72 140/161/72 -f 118/136/73 141/162/73 140/161/73 -f 116/134/74 142/163/74 141/162/74 -f 114/131/75 144/224/75 142/163/75 -f 114/164/76 112/129/76 143/165/76 -f 112/129/77 110/127/79 134/155/77 -f 135/169/3 150/225/3 145/167/3 -f 146/226/3 152/227/3 150/225/3 -f 145/167/3 148/228/3 136/168/3 -f 147/229/3 151/230/3 149/231/3 -f 149/231/3 136/168/3 148/228/3 -f 150/225/3 152/227/3 145/167/3 -f 148/228/3 147/229/3 149/231/3 -f 138/159/54 152/177/54 146/170/54 -f 141/162/50 142/163/50 147/171/50 -f 143/165/47 134/155/47 136/157/47 -f 139/160/45 146/170/45 150/174/45 -f 141/162/1 148/172/1 145/175/1 -f 144/166/48 143/165/48 149/173/48 -f 120/138/46 150/174/46 135/156/46 -f 140/161/53 145/175/53 152/177/53 -f 142/163/49 144/224/49 151/178/49 o Mag_Cube.002 v -0.089029 2.933951 -0.760703 v -0.089029 1.301304 -1.115814 @@ -809,7 +81,7 @@ vt 0.847847 0.234129 vt 0.870079 0.477673 vt 0.832728 0.477252 vt 0.845893 0.232242 -vn -1.0000 0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 vn 0.0000 -0.0279 -0.9996 vn 0.9599 0.0013 0.2804 vn 0.9594 0.0014 0.2820 @@ -833,50 +105,789 @@ vn 0.9591 0.0015 0.2831 vn 0.9632 -0.0258 0.2676 vn -0.9993 0.0350 0.0119 vn -0.9602 0.0012 0.2793 -usemtl None_NONE s 1 -f 159/232/80 160/233/80 161/234/80 -f 162/235/81 160/236/81 163/237/81 -f 164/238/82 165/239/83 166/240/84 -f 167/241/85 165/242/85 168/243/85 -f 160/244/86 166/245/86 161/246/86 -f 169/247/87 170/248/87 171/249/88 -f 172/250/89 168/251/89 173/252/89 -f 174/253/90 168/254/90 164/238/90 -f 175/255/91 163/237/91 176/256/92 -f 177/257/80 163/258/80 159/232/80 -f 170/259/80 176/260/80 177/257/80 -f 169/261/92 176/256/92 178/262/92 -f 171/263/93 173/264/93 174/253/93 -f 179/265/94 173/266/94 180/267/94 -f 171/263/93 175/268/93 169/269/93 -f 170/259/80 172/270/80 179/271/80 -f 177/257/95 167/272/95 172/270/95 -f 174/253/93 162/273/93 175/268/93 -f 171/249/88 179/274/88 180/275/88 -f 161/246/96 165/276/96 181/277/96 -f 164/238/93 182/278/93 162/273/93 -f 159/232/97 181/279/98 167/272/99 -f 159/232/80 163/258/80 160/233/80 -f 162/235/81 182/280/81 160/236/81 -f 164/238/82 168/254/100 165/239/83 -f 167/241/85 181/281/85 165/242/85 -f 160/244/86 182/282/86 166/245/86 -f 169/247/87 178/283/87 170/248/87 -f 172/250/89 167/284/89 168/251/89 -f 174/253/101 173/264/101 168/254/101 -f 175/255/91 162/235/91 163/237/91 -f 177/257/80 176/260/80 163/258/80 -f 170/259/80 178/285/80 176/260/80 -f 169/261/92 175/255/91 176/256/92 -f 171/263/93 180/286/93 173/264/93 -f 179/265/94 172/287/94 173/266/94 -f 171/263/93 174/253/93 175/268/93 -f 170/259/80 177/257/80 172/270/80 -f 177/257/102 159/232/102 167/272/102 -f 174/253/93 164/238/93 162/273/93 -f 171/249/88 170/248/87 179/274/88 -f 161/246/96 166/245/96 165/276/96 -f 164/238/93 166/240/93 182/278/93 -f 159/232/97 161/234/103 181/279/98 - +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 2/5/2 5/6/2 +f 6/7/3 7/8/4 8/9/5 +f 9/10/6 7/11/6 10/12/6 +f 2/13/7 8/14/7 3/15/7 +f 11/16/8 12/17/8 13/18/9 +f 14/19/10 10/20/10 15/21/10 +f 16/22/11 10/23/11 6/7/11 +f 17/24/12 5/6/12 18/25/13 +f 19/26/1 5/27/1 1/1/1 +f 12/28/1 18/29/1 19/26/1 +f 11/30/13 18/25/13 20/31/13 +f 13/32/14 15/33/14 16/22/14 +f 21/34/15 15/35/15 22/36/15 +f 13/32/14 17/37/14 11/38/14 +f 12/28/1 14/39/1 21/40/1 +f 19/26/16 9/41/16 14/39/16 +f 16/22/14 4/42/14 17/37/14 +f 13/18/9 21/43/9 22/44/9 +f 3/15/17 7/45/17 23/46/17 +f 6/7/14 24/47/14 4/42/14 +f 1/1/18 23/48/19 9/41/20 +f 1/1/1 5/27/1 2/2/1 +f 4/4/2 24/49/2 2/5/2 +f 6/7/3 10/23/21 7/8/4 +f 9/10/6 23/50/6 7/11/6 +f 2/13/7 24/51/7 8/14/7 +f 11/16/8 20/52/8 12/17/8 +f 14/19/10 9/53/10 10/20/10 +f 16/22/22 15/33/22 10/23/22 +f 17/24/12 4/4/12 5/6/12 +f 19/26/1 18/29/1 5/27/1 +f 12/28/1 20/54/1 18/29/1 +f 11/30/13 17/24/12 18/25/13 +f 13/32/14 22/55/14 15/33/14 +f 21/34/15 14/56/15 15/35/15 +f 13/32/14 16/22/14 17/37/14 +f 12/28/1 19/26/1 14/39/1 +f 19/26/23 1/1/23 9/41/23 +f 16/22/14 6/7/14 4/42/14 +f 13/18/9 12/17/8 21/43/9 +f 3/15/17 8/14/17 7/45/17 +f 6/7/14 8/9/14 24/47/14 +f 1/1/18 3/3/24 23/48/19 +o Cube.001_Cube.002 +v 0.393889 3.128783 -9.337228 +v 0.393890 1.846543 -5.892444 +v 0.393889 1.846542 -9.337228 +v -0.393894 3.128783 -5.892444 +v -0.393895 1.846542 -9.337228 +v -0.393894 1.846543 -5.892444 +v -0.393895 3.128783 -9.337228 +v -0.000002 3.303435 -5.049528 +v -0.382998 1.728983 -5.208168 +v -0.000002 1.728983 -5.049528 +v -0.382998 3.303435 -5.208168 +v -0.541638 1.728983 -5.591164 +v -0.541638 3.303435 -5.591164 +v -0.382998 1.728983 -5.974160 +v -0.382998 3.303435 -5.974160 +v -0.000002 1.728983 -6.132800 +v -0.000002 3.303435 -6.132800 +v 0.382994 1.728983 -5.974160 +v 0.382994 3.303435 -5.974160 +v 0.541634 1.728983 -5.591164 +v 0.541634 3.303435 -5.591164 +v 0.382994 1.728983 -5.208168 +v 0.382994 3.303435 -5.208168 +v -1.403786 4.699999 -5.797567 +v -1.686627 4.582843 -7.948311 +v -1.686626 4.582843 -5.797567 +v -1.803787 4.300000 -7.948311 +v -1.803786 4.300000 -5.797567 +v -1.686626 4.017156 -5.797567 +v -1.686627 4.017156 -7.948311 +v -1.403786 3.899999 -5.797567 +v -1.403787 3.899999 -7.948311 +v -1.120942 4.017156 -5.797567 +v -1.003787 4.300000 -7.948312 +v -1.003786 4.300000 -5.797568 +v -1.883787 4.300000 -7.982080 +v -1.743199 3.960587 -7.982080 +v -1.120943 4.582843 -7.948312 +v -1.120942 4.582843 -5.797568 +v -0.923786 4.300000 -5.755472 +v -0.923787 4.300000 -7.982080 +v -1.064375 4.639411 -8.277956 +v -1.064375 4.639411 -7.982080 +v -1.120943 4.017156 -7.948311 +v -1.403787 3.819999 -7.982080 +v -1.064375 3.960587 -7.982080 +v -1.403787 4.699999 -7.948311 +v -1.403787 4.779999 -7.982080 +v -1.743199 4.639411 -7.982080 +v -0.923787 4.300000 -8.277956 +v -1.743199 3.960588 -8.277955 +v -1.883787 4.300000 -8.277955 +v -1.403787 3.819999 -8.277956 +v -1.064375 3.960588 -8.277956 +v -1.743199 4.639411 -8.277956 +v -1.403787 4.779999 -8.277956 +v -1.403786 4.779999 -5.755472 +v -1.064374 4.639411 -5.489088 +v -1.064374 4.639411 -5.755472 +v -1.883786 4.300000 -5.755472 +v -1.743198 4.639411 -5.755472 +v -1.064374 3.960587 -5.755472 +v -1.403786 3.819999 -5.755472 +v -1.743198 3.960587 -5.755472 +v -1.743198 3.960587 -5.489088 +v -0.923786 4.300000 -5.489088 +v -1.883786 4.300000 -5.489088 +v -1.064374 3.960587 -5.489088 +v -1.743198 4.639411 -5.489088 +v -1.403786 3.819999 -5.489088 +v -1.403786 4.779999 -5.489088 +v -1.473919 4.208779 -7.811895 +v -0.447114 3.729971 -5.941060 +v -0.447115 3.729971 -7.811896 +v 0.128767 2.756387 -3.983544 +v 0.128767 1.614719 -3.555136 +v 0.128767 1.614719 -3.983544 +v 0.128767 2.756387 -3.555136 +v -0.128769 1.614719 -3.555136 +v -0.128769 2.756387 -3.555136 +v -0.128769 1.614719 -3.983544 +v -0.128769 2.756387 -3.983544 +v 0.190951 3.077327 -3.167776 +v -0.208109 2.727468 -3.531600 +v 0.197875 2.727295 -3.523528 +v -0.198185 2.731559 -4.030576 +v 0.207799 2.731387 -4.022504 +v -0.191081 3.087375 -4.380480 +v 0.214907 3.087207 -4.372408 +v -0.207801 3.932427 -3.521620 +v -0.190953 3.586487 -4.376348 +v -0.214909 3.576612 -3.171716 +v 0.215035 3.586319 -4.368276 +v 0.198183 3.932260 -3.513548 +v 0.191079 3.576439 -3.163644 +v 0.771273 5.530663 -9.417193 +v 0.771274 4.098263 -6.669316 +v 0.771273 4.098262 -9.417192 +v 0.771274 5.530663 -6.669315 +v -0.771278 4.098263 -6.669316 +v -0.771278 5.530663 -6.669315 +v -0.771279 4.098262 -9.417192 +v -0.000003 4.089743 -9.779048 +v -0.346641 3.977118 9.779048 +v 0.000003 4.089749 9.779048 +v -0.346647 3.977114 -9.779048 +v -0.560881 3.682245 9.779048 +v -0.560887 3.682239 -9.779048 +v -0.560881 3.317761 9.779048 +v -0.560887 3.317755 -9.779048 +v -0.346641 3.022886 9.779048 +v -0.346647 3.022882 -9.779048 +v 0.000003 2.910254 9.779048 +v -0.000003 2.910250 -9.779048 +v 0.346647 3.022886 9.779048 +v 0.346641 3.022882 -9.779048 +v 0.560887 3.317761 9.779048 +v 0.560881 3.317755 -9.779048 +v 0.560887 3.682245 9.779048 +v -0.381311 4.024827 -9.822908 +v 0.560881 3.682239 -9.779048 +v 0.346647 3.977118 9.779048 +v 0.346641 3.977114 -9.779048 +v 0.519971 4.215672 9.897908 +v -0.841321 3.226638 9.897908 +v 0.841327 3.773365 9.897908 +v -0.841321 3.773365 9.897908 +v 0.841327 3.226638 9.897908 +v 0.519971 2.784329 9.897908 +v 0.000003 2.615381 9.897908 +v -0.519965 2.784329 9.897908 +v -0.519965 4.215672 9.897908 +v 0.000003 4.384622 9.897908 +v -0.616975 3.299531 -9.822908 +v -0.616975 3.700463 -10.379472 +v -0.616975 3.299531 -10.379472 +v -0.616975 3.700463 -9.822908 +v 0.381305 4.024827 -9.822908 +v -0.000003 4.148718 -9.822908 +v 0.616969 3.700463 -9.822908 +v 0.616969 3.299531 -9.822908 +v 0.381305 2.975170 -9.822908 +v -0.381311 2.975170 -9.822908 +v -0.000003 2.851279 -9.822908 +v 0.616969 3.700463 -10.379472 +v -0.000003 4.148718 -10.379472 +v 0.381305 2.975170 -10.379472 +v 0.616969 3.299531 -10.379472 +v -0.381311 2.975170 -10.379472 +v -0.381311 4.024827 -10.379472 +v -0.000003 2.851279 -10.379472 +v 0.381305 4.024827 -10.379472 +v 0.393890 3.128783 -5.892444 +v -1.473918 4.208779 -5.941060 +v -0.215037 3.077499 -3.175848 +v -0.197877 3.936519 -4.020596 +v 0.208107 3.936351 -4.012524 +v -0.771279 5.530663 -9.417192 +v 0.771273 5.530663 -9.417193 +v 0.771274 4.098263 -6.669316 +v 0.771273 4.098262 -9.417192 +v 0.771274 5.530663 -6.669315 +v -0.771278 4.098263 -6.669316 +v -0.771278 5.530663 -6.669315 +v -0.771279 4.098262 -9.417192 +v -0.771279 5.530663 -9.417192 +vt 0.753049 0.842514 +vt 0.834948 0.720802 +vt 0.753049 0.720802 +vt 0.451379 0.751158 +vt 0.526386 0.644688 +vt 0.526386 0.751158 +vt 0.647089 0.751158 +vt 0.691237 0.645292 +vt 0.691237 0.751158 +vt 0.571440 0.645292 +vt 0.571440 0.751158 +vt 0.834948 0.720802 +vt 0.753049 0.842514 +vt 0.753049 0.720802 +vt 0.865118 0.914045 +vt 0.954494 0.939246 +vt 0.954494 0.914045 +vt 0.677183 0.265008 +vt 0.751320 0.315075 +vt 0.677205 0.365127 +vt 0.647089 0.645292 +vt 0.451379 0.644688 +vt 0.526386 0.619409 +vt 0.916847 0.720802 +vt 0.834948 0.842514 +vt 0.998746 0.720802 +vt 0.916847 0.842514 +vt 0.998746 0.842514 +vt 0.451532 0.904025 +vt 0.527579 0.938195 +vt 0.451532 0.938195 +vt 1.000067 0.939246 +vt 1.000067 0.914045 +vt 0.997335 0.982124 +vt 0.821713 0.957571 +vt 0.997853 0.957571 +vt 0.948519 0.999611 +vt 0.821154 0.982062 +vt 0.999562 0.982062 +vt 0.872418 0.999486 +vt 0.821195 0.982124 +vt 0.916847 0.720802 +vt 0.527579 0.999529 +vt 0.818514 0.938957 +vt 0.818514 0.999529 +vt 0.751346 0.193282 +vt 0.452761 0.263765 +vt 0.751346 0.263765 +vt 0.834948 0.665046 +vt 0.916847 0.665046 +vt 0.527579 0.843077 +vt 0.818514 0.903517 +vt 0.527579 0.904025 +vt 0.820207 0.914045 +vt 0.865118 0.939246 +vt 0.916847 0.842514 +vt 0.998746 0.720802 +vt 0.998746 0.842514 +vt 0.489352 0.892690 +vt 0.453239 0.868198 +vt 0.489628 0.844584 +vt 0.834948 0.665046 +vt 0.916847 0.665046 +vt 0.118655 0.010018 +vt 0.144918 0.065072 +vt 0.075492 0.100143 +vt 0.872853 0.939693 +vt 0.947243 0.939693 +vt 0.999034 0.957243 +vt 0.874129 0.999611 +vt 0.820625 0.957243 +vt 0.873670 0.940209 +vt 0.946630 0.940209 +vt 0.945378 0.999486 +vt 0.526680 0.264262 +vt 0.601536 0.314798 +vt 0.526683 0.365331 +vt 0.181571 0.010473 +vt 0.295940 0.065362 +vt 0.224605 0.099890 +vt 0.834948 0.842514 +vt 0.624787 0.350459 +vt 0.603068 0.315060 +vt 0.624771 0.279664 +vt 0.729601 0.279675 +vt 0.729617 0.350470 +vt 0.451379 0.619409 +vt 0.452761 0.193282 +vt 0.818514 0.843077 +vt 0.820207 0.939246 +vt 0.515221 0.851940 +vt 0.525741 0.869077 +vt 0.515026 0.885956 +vt 0.463759 0.885334 +vt 0.463954 0.851318 +vt 0.006322 0.066764 +vt 0.006436 0.036153 +vt 0.032998 0.011064 +vt 0.075862 0.001081 +vt 0.145032 0.034460 +vt 0.118356 0.090161 +vt 0.032699 0.091207 +vt 0.473752 0.350529 +vt 0.451827 0.314796 +vt 0.473750 0.279063 +vt 0.579610 0.279064 +vt 0.579613 0.350531 +vt 0.180808 0.090618 +vt 0.153921 0.065967 +vt 0.154212 0.035355 +vt 0.225547 0.000826 +vt 0.269344 0.010099 +vt 0.296232 0.034750 +vt 0.268581 0.090244 +vt 0.150367 0.999948 +vt 0.187849 0.959827 +vt 0.150367 0.959827 +vt 0.564045 0.751835 +vt 0.601607 0.842170 +vt 0.601607 0.751835 +vt 0.337775 0.955040 +vt 0.300293 0.116603 +vt 0.300293 0.955040 +vt 0.639188 0.365688 +vt 0.601692 0.385823 +vt 0.639188 0.385823 +vt 0.676683 0.619244 +vt 0.714179 0.593980 +vt 0.676683 0.593980 +vt 0.489206 0.365688 +vt 0.451711 0.385823 +vt 0.489206 0.385823 +vt 0.526858 0.751835 +vt 0.564045 0.842170 +vt 0.526701 0.385823 +vt 0.112886 0.959827 +vt 0.714179 0.583813 +vt 0.676683 0.396030 +vt 0.676683 0.583813 +vt 0.075404 0.955040 +vt 0.037923 0.116603 +vt 0.037923 0.955040 +vt 0.526701 0.583813 +vt 0.564197 0.396030 +vt 0.526701 0.396030 +vt 0.601692 0.583813 +vt 0.639188 0.396030 +vt 0.601692 0.396030 +vt 0.639188 0.593980 +vt 0.639188 0.583813 +vt 0.112886 0.955040 +vt 0.075404 0.116603 +vt 0.489206 0.396030 +vt 0.451711 0.396030 +vt 0.601692 0.365688 +vt 0.564197 0.385823 +vt 0.601692 0.593980 +vt 0.489206 0.583813 +vt 0.526701 0.593980 +vt 0.451711 0.593980 +vt 0.451711 0.583813 +vt 0.564197 0.583813 +vt 0.564197 0.593980 +vt 0.751674 0.593980 +vt 0.751674 0.583813 +vt 0.714295 0.751835 +vt 0.751857 0.842170 +vt 0.751857 0.751835 +vt 0.639545 0.842170 +vt 0.639545 0.751835 +vt 0.452109 0.751835 +vt 0.490047 0.842170 +vt 0.490047 0.751835 +vt 0.714179 0.365688 +vt 0.676683 0.385823 +vt 0.714179 0.385823 +vt 0.751674 0.365688 +vt 0.751674 0.385823 +vt 0.375256 0.959827 +vt 0.337775 0.999948 +vt 0.375256 0.999948 +vt 0.714179 0.619244 +vt 0.676356 0.751835 +vt 0.714295 0.842170 +vt 0.714179 0.396030 +vt 0.751674 0.396030 +vt 0.526858 0.842170 +vt 0.676356 0.842170 +vt 0.564197 0.619244 +vt 0.262812 0.999948 +vt 0.300293 0.959827 +vt 0.262812 0.959827 +vt 0.225330 0.999948 +vt 0.225330 0.959827 +vt 0.526701 0.365688 +vt 0.037923 0.959827 +vt 0.075404 0.999948 +vt 0.075404 0.959827 +vt 0.412738 0.999948 +vt 0.412738 0.959827 +vt 0.225330 0.955040 +vt 0.187849 0.116603 +vt 0.187849 0.955040 +vt 0.187849 0.999948 +vt 0.412738 0.955040 +vt 0.375256 0.116603 +vt 0.375256 0.955040 +vt 0.150367 0.955040 +vt 0.112886 0.116603 +vt 0.262812 0.955040 +vt 0.262812 0.116603 +vt 0.337775 0.116603 +vt 0.225330 0.116603 +vt 0.601692 0.619244 +vt 0.262812 0.101602 +vt 0.225330 0.101602 +vt 0.337775 0.101602 +vt 0.300293 0.101602 +vt 0.037923 0.101602 +vt 0.187849 0.101602 +vt 0.150367 0.116603 +vt 0.150367 0.101602 +vt 0.112886 0.101602 +vt 0.412738 0.101602 +vt 0.412738 0.116603 +vt 0.075404 0.101602 +vt 0.489206 0.619244 +vt 0.489206 0.593980 +vt 0.112886 0.999948 +vt 0.526701 0.619244 +vt 0.337775 0.959827 +vt 0.300293 0.999948 +vt 0.676683 0.365688 +vt 0.451711 0.365688 +vt 0.564197 0.365688 +vt 0.452109 0.842170 +vt 0.751674 0.619244 +vt 0.037923 0.999948 +vt 0.639188 0.619244 +vt 0.375256 0.101602 +vt 0.451711 0.619244 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.0003 -1.0000 -0.0082 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0139 -0.7012 -0.7128 +vn 0.9998 -0.0004 0.0199 +vn -0.9998 0.0004 -0.0199 +vn 0.4226 0.9063 -0.0000 +vn -0.0142 -0.7129 0.7011 +vn 0.9511 0.3090 0.0000 +vn 0.5878 0.8090 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.9511 -0.3090 0.0000 +vn -0.9511 0.3090 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.9511 -0.3090 0.0000 +vn 0.5878 -0.8090 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.2750 0.2750 0.9213 +vn -0.3889 0.0000 0.9213 +vn 0.3293 -0.3293 -0.8850 +vn -0.0000 -0.4657 -0.8850 +vn -0.0000 0.3889 0.9213 +vn 0.2750 -0.2750 0.9213 +vn 0.3889 0.0000 0.9213 +vn -0.0000 -0.3889 0.9213 +vn 0.2750 0.2750 0.9213 +vn -0.2750 -0.2750 0.9213 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.5878 -0.8090 0.0000 +vn 0.3293 0.3293 -0.8850 +vn 0.4657 -0.0000 -0.8850 +vn -0.3293 0.3293 -0.8850 +vn 0.0000 0.4657 -0.8850 +vn -0.3292 -0.3293 -0.8850 +vn -0.4657 0.0000 -0.8850 +vn -0.5878 0.8090 0.0000 +vn -0.5676 0.1844 0.8024 +vn -0.5676 -0.1844 0.8024 +vn -0.5675 0.1844 0.8024 +vn -0.3293 -0.3293 -0.8850 +vn -0.3556 0.1155 -0.9275 +vn -0.2198 0.3025 -0.9275 +vn -0.2197 0.3025 -0.9275 +vn 0.0000 0.3739 -0.9275 +vn -0.2197 -0.3025 -0.9275 +vn -0.3556 -0.1155 -0.9275 +vn 0.2197 -0.3025 -0.9275 +vn -0.0000 -0.3739 -0.9275 +vn 0.2198 0.3025 -0.9275 +vn 0.3556 0.1155 -0.9275 +vn 0.3556 -0.1155 -0.9275 +vn 0.5676 -0.1844 0.8024 +vn 0.5676 0.1844 0.8024 +vn 0.3508 0.4828 0.8024 +vn -0.0000 0.5968 0.8024 +vn -0.3508 0.4828 0.8024 +vn -0.0000 -0.5968 0.8024 +vn 0.3508 -0.4828 0.8024 +vn -0.3508 -0.4828 0.8024 +s off +f 182/57/25 124/58/25 125/59/25 +f 106/60/25 103/61/25 104/62/25 +f 99/63/26 105/64/26 106/65/26 +f 104/62/27 100/66/27 102/67/27 +f 187/68/28 190/69/28 188/70/28 +f 109/71/29 110/72/29 111/73/29 +f 94/74/27 90/75/27 95/76/27 +f 102/67/28 101/77/28 99/63/28 +f 105/78/30 100/79/30 103/61/30 +f 184/80/31 189/81/31 187/68/31 +f 123/82/28 122/83/28 120/84/28 +f 25/85/26 29/86/26 31/87/26 +f 111/73/32 112/88/32 113/89/32 +f 117/90/33 107/91/33 113/92/33 +f 114/93/34 115/94/34 116/95/34 +f 117/90/33 118/96/33 119/97/33 +f 124/58/30 122/83/30 121/98/30 +f 31/99/25 30/100/25 28/101/25 +f 96/102/35 97/103/35 98/104/35 +f 125/105/27 121/98/27 123/106/27 +f 25/107/28 26/108/28 27/109/28 +f 30/100/30 27/109/30 26/108/30 +f 107/110/36 108/111/36 109/71/36 +f 185/112/25 186/113/25 183/114/25 +f 44/115/30 34/116/30 36/117/30 +f 184/80/26 188/118/26 186/119/26 +f 156/120/27 149/121/27 154/122/27 +f 110/123/34 108/124/34 179/125/34 +f 114/93/34 180/126/34 115/94/34 +f 110/123/34 179/125/34 112/127/34 +f 115/94/34 179/125/34 116/95/34 +f 109/128/33 111/129/33 107/91/33 +f 181/130/33 118/96/33 117/90/33 +f 107/91/33 111/129/33 113/92/33 +f 77/131/26 76/132/26 80/133/26 +f 171/134/26 159/135/26 170/136/26 +f 182/57/25 126/137/25 124/58/25 +f 106/60/25 105/78/25 103/61/25 +f 99/63/26 101/77/26 105/64/26 +f 104/62/27 103/61/27 100/66/27 +f 187/68/28 189/81/28 190/69/28 +f 109/71/29 108/111/29 110/72/29 +f 95/76/27 93/138/27 91/139/27 +f 91/139/27 89/140/27 94/74/27 +f 94/74/27 92/141/27 90/75/27 +f 90/75/27 82/142/27 95/76/27 +f 95/76/27 91/139/27 94/74/27 +f 102/67/28 100/66/28 101/77/28 +f 105/78/30 101/143/30 100/79/30 +f 184/80/31 185/112/31 189/81/31 +f 123/82/28 121/98/28 122/83/28 +f 25/85/26 27/109/26 29/86/26 +f 111/73/32 110/72/32 112/88/32 +f 117/90/33 119/97/33 107/91/33 +f 124/58/30 126/137/30 122/83/30 +f 31/99/25 29/86/25 30/100/25 +f 96/102/35 178/144/35 97/103/35 +f 125/105/27 124/58/27 121/98/27 +f 25/107/28 177/145/28 26/108/28 +f 30/100/30 29/86/30 27/109/30 +f 107/110/36 179/146/36 108/111/36 +f 185/112/25 184/80/25 186/113/25 +f 36/117/30 38/147/30 40/148/30 +f 40/148/30 42/149/30 44/115/30 +f 44/115/30 46/150/30 34/116/30 +f 34/116/30 33/151/30 36/117/30 +f 36/117/30 40/148/30 44/115/30 +f 184/80/26 187/68/26 188/118/26 +f 152/152/27 150/153/27 148/154/27 +f 148/154/27 157/155/27 156/120/27 +f 156/120/27 151/156/27 149/121/27 +f 149/121/27 155/157/27 154/122/27 +f 154/122/27 153/158/27 152/152/27 +f 152/152/27 148/154/27 154/122/27 +f 148/154/27 156/120/27 154/122/27 +f 115/94/34 112/127/34 179/125/34 +f 80/133/26 66/159/26 74/160/26 +f 74/160/26 78/161/26 77/131/26 +f 77/131/26 75/162/26 76/132/26 +f 76/132/26 79/163/26 80/133/26 +f 80/133/26 74/160/26 77/131/26 +f 170/136/26 176/164/26 169/165/26 +f 169/165/26 172/166/26 171/134/26 +f 171/134/26 175/167/26 159/135/26 +f 175/167/26 173/168/26 159/135/26 +f 173/168/26 160/169/26 159/135/26 +f 159/135/26 174/170/26 170/136/26 +f 170/136/26 169/165/26 171/134/26 +s 1 +f 169/171/37 162/172/38 164/173/37 +f 35/174/39 34/175/27 32/176/27 +f 134/177/40 131/178/41 132/179/41 +f 93/180/42 81/181/31 85/182/42 +f 76/183/25 61/184/43 60/185/25 +f 92/186/44 87/187/30 86/188/44 +f 37/189/25 33/190/39 35/174/39 +f 64/191/28 92/186/44 86/188/44 +f 165/192/45 169/171/37 164/173/37 +f 54/193/43 52/194/25 51/195/25 +f 140/196/46 137/197/30 138/198/30 +f 58/199/28 63/200/47 59/201/28 +f 71/202/31 50/203/42 48/204/31 +f 73/205/48 51/195/49 49/206/48 +f 49/206/42 52/194/25 50/203/42 +f 142/207/45 139/208/46 140/196/46 +f 57/209/50 87/187/51 55/210/51 +f 95/211/31 83/212/47 81/181/31 +f 72/213/52 49/206/48 71/202/52 +f 68/214/53 65/215/54 58/199/54 +f 69/216/55 68/214/53 56/217/55 +f 62/218/56 72/213/52 71/202/52 +f 62/218/56 65/215/54 67/219/56 +f 54/193/57 69/220/55 56/221/55 +f 43/222/58 40/223/26 41/224/26 +f 32/176/27 46/225/59 47/226/59 +f 41/227/26 38/228/60 39/229/60 +f 89/230/43 84/231/25 88/232/43 +f 94/233/30 88/232/43 87/234/30 +f 167/235/61 160/236/40 173/237/61 +f 75/238/43 69/220/30 61/184/43 +f 45/239/28 42/240/58 43/222/58 +f 63/200/62 64/191/63 59/201/63 +f 57/209/50 64/191/63 86/188/50 +f 50/203/64 81/181/65 48/204/65 +f 87/234/51 53/241/66 55/242/51 +f 52/194/67 85/182/64 50/203/64 +f 81/181/65 63/200/62 48/204/65 +f 51/195/49 61/184/57 54/193/57 +f 68/214/44 59/201/28 57/209/44 +f 39/229/60 36/243/25 37/189/25 +f 47/226/59 44/244/28 45/239/28 +f 66/245/47 72/213/31 67/219/47 +f 174/246/68 161/247/41 144/248/68 +f 170/249/31 144/248/68 163/250/31 +f 83/212/47 90/251/28 64/191/28 +f 168/252/30 171/253/46 166/254/46 +f 167/235/61 175/255/30 168/256/30 +f 127/257/31 146/258/38 147/259/38 +f 68/214/44 55/210/30 56/217/30 +f 176/260/38 163/250/31 162/172/38 +f 138/261/30 135/262/61 136/263/61 +f 145/264/37 141/265/45 142/207/45 +f 71/202/31 63/200/47 62/218/47 +f 130/266/68 131/178/41 128/267/68 +f 56/221/30 53/241/43 54/193/43 +f 161/247/69 134/177/70 132/179/71 +f 136/263/61 133/268/40 134/177/40 +f 130/266/68 129/269/31 127/257/31 +f 88/232/72 52/194/67 53/241/66 +f 80/270/31 73/205/42 72/213/31 +f 131/178/73 156/271/74 128/267/75 +f 128/267/75 157/272/76 129/269/76 +f 135/262/77 149/273/78 133/268/78 +f 133/268/78 151/274/73 131/178/73 +f 139/208/79 154/275/80 137/197/80 +f 148/276/81 143/277/82 146/258/81 +f 157/272/76 146/258/81 129/269/76 +f 141/265/83 150/278/82 152/279/83 +f 154/280/80 135/262/77 137/281/80 +f 73/205/42 76/183/25 60/185/25 +f 165/192/84 145/264/85 142/207/84 +f 147/259/86 164/173/85 162/172/86 +f 127/257/87 144/248/88 130/266/88 +f 139/208/79 152/279/83 153/282/79 +f 168/252/89 140/196/90 138/198/89 +f 130/266/88 161/247/69 132/179/71 +f 136/263/91 168/256/89 138/261/89 +f 134/177/70 167/235/91 136/263/91 +f 166/254/90 142/207/84 140/196/90 +f 69/216/30 78/283/44 70/284/44 +f 147/259/38 143/277/37 145/264/37 +f 166/254/46 172/285/45 165/192/45 +f 74/286/28 67/219/47 65/215/28 +f 158/287/40 159/288/41 160/236/40 +f 78/283/44 65/215/28 70/284/44 +f 91/289/25 85/182/42 84/231/25 +f 127/257/87 162/172/86 163/250/87 +f 169/171/37 176/260/38 162/172/38 +f 35/174/39 33/190/39 34/175/27 +f 134/177/40 133/268/40 131/178/41 +f 93/180/42 95/211/31 81/181/31 +f 76/183/25 75/238/43 61/184/43 +f 92/186/44 94/290/30 87/187/30 +f 37/189/25 36/243/25 33/190/39 +f 64/191/28 90/251/28 92/186/44 +f 165/192/45 172/285/45 169/171/37 +f 54/193/43 53/241/43 52/194/25 +f 140/196/46 139/208/46 137/197/30 +f 58/199/28 62/218/47 63/200/47 +f 71/202/31 49/206/42 50/203/42 +f 73/205/48 60/185/49 51/195/49 +f 49/206/42 51/195/25 52/194/25 +f 142/207/45 141/265/45 139/208/46 +f 57/209/50 86/188/50 87/187/51 +f 95/211/31 82/291/47 83/212/47 +f 72/213/52 73/205/48 49/206/48 +f 68/214/53 70/284/53 65/215/54 +f 69/216/55 70/284/53 68/214/53 +f 62/218/56 67/219/56 72/213/52 +f 62/218/56 58/199/54 65/215/54 +f 54/193/57 61/184/57 69/220/55 +f 43/222/58 42/240/58 40/223/26 +f 32/176/27 34/175/27 46/225/59 +f 41/227/26 40/292/26 38/228/60 +f 89/230/43 91/289/25 84/231/25 +f 94/233/30 89/230/43 88/232/43 +f 167/235/61 158/287/40 160/236/40 +f 75/238/43 77/293/30 69/220/30 +f 45/239/28 44/244/28 42/240/58 +f 63/200/62 83/212/62 64/191/63 +f 57/209/50 59/201/63 64/191/63 +f 50/203/64 85/182/64 81/181/65 +f 87/234/51 88/232/72 53/241/66 +f 52/194/67 84/231/67 85/182/64 +f 81/181/65 83/212/62 63/200/62 +f 51/195/49 60/185/49 61/184/57 +f 68/214/44 58/199/28 59/201/28 +f 39/229/60 38/228/60 36/243/25 +f 47/226/59 46/225/59 44/244/28 +f 66/245/47 80/270/31 72/213/31 +f 174/246/68 159/288/41 161/247/41 +f 170/249/31 174/246/68 144/248/68 +f 83/212/47 82/291/47 90/251/28 +f 168/252/30 175/294/30 171/253/46 +f 167/235/61 173/237/61 175/255/30 +f 127/257/31 129/269/31 146/258/38 +f 68/214/44 57/209/44 55/210/30 +f 176/260/38 170/249/31 163/250/31 +f 138/261/30 137/281/30 135/262/61 +f 145/264/37 143/277/37 141/265/45 +f 71/202/31 48/204/31 63/200/47 +f 130/266/68 132/179/41 131/178/41 +f 56/221/30 55/242/30 53/241/43 +f 161/247/69 158/287/70 134/177/70 +f 136/263/61 135/262/61 133/268/40 +f 130/266/68 128/267/68 129/269/31 +f 88/232/72 84/231/67 52/194/67 +f 80/270/31 79/295/42 73/205/42 +f 131/178/73 151/274/73 156/271/74 +f 128/267/75 156/271/74 157/272/76 +f 135/262/77 155/296/77 149/273/78 +f 133/268/78 149/273/78 151/274/73 +f 139/208/79 153/282/79 154/275/80 +f 148/276/81 150/278/82 143/277/82 +f 157/272/76 148/276/81 146/258/81 +f 141/265/83 143/277/82 150/278/82 +f 154/280/80 155/296/77 135/262/77 +f 73/205/42 79/295/42 76/183/25 +f 165/192/84 164/173/85 145/264/85 +f 147/259/86 145/264/85 164/173/85 +f 127/257/87 163/250/87 144/248/88 +f 139/208/79 141/265/83 152/279/83 +f 168/252/89 166/254/90 140/196/90 +f 130/266/88 144/248/88 161/247/69 +f 136/263/91 167/235/91 168/256/89 +f 134/177/70 158/287/70 167/235/91 +f 166/254/90 165/192/84 142/207/84 +f 69/216/30 77/297/30 78/283/44 +f 147/259/38 146/258/38 143/277/37 +f 166/254/46 171/253/46 172/285/45 +f 74/286/28 66/245/47 67/219/47 +f 158/287/40 161/247/41 159/288/41 +f 78/283/44 74/286/28 65/215/28 +f 91/289/25 93/180/42 85/182/42 +f 127/257/87 147/259/86 162/172/86 diff --git a/src/main/resources/assets/hbm/models/weapons/supershotty.obj b/src/main/resources/assets/hbm/models/weapons/supershotty.obj index 10a9056da..115506132 100644 --- a/src/main/resources/assets/hbm/models/weapons/supershotty.obj +++ b/src/main/resources/assets/hbm/models/weapons/supershotty.obj @@ -1,1380 +1,7053 @@ -# Blender v2.79 (sub 0) OBJ File: 'shotty3.blend' +# Blender 4.0.1 # www.blender.org -o handle_Cylinder.005 -v -2.245215 0.158745 0.128180 -v -2.083610 0.158745 0.105625 -v -2.083570 0.123570 0.105400 -v -2.245215 0.123570 0.129475 -v -2.083570 0.089745 0.105440 -v -2.245215 0.089745 0.133310 -v -2.083570 0.058575 0.105675 -v -2.245215 0.058575 0.139545 -v -2.083570 0.031250 0.105690 -v -2.245215 0.031250 0.147930 -v -2.083570 0.008830 0.105480 -v -2.245215 0.008830 0.158150 -v -2.083570 -0.007835 0.105365 -v -2.245215 -0.007835 0.174980 -v -2.245215 0.058575 0.359425 -v -2.083565 0.019155 0.389250 -v -2.083565 0.089500 0.389185 -v -2.245215 0.089745 0.365095 -v -2.083570 0.123570 0.389195 -v -2.245215 0.123570 0.368585 -v -2.083570 0.158745 0.389140 -v -2.245215 0.158745 0.369765 -v -2.083565 0.193920 0.389045 -v -2.245215 0.193920 0.368585 -v -2.083565 0.227745 0.388925 -v -2.245215 0.227745 0.365095 -v -2.083565 0.280795 0.389170 -v -2.245215 0.258915 0.359425 -v -2.083565 0.345415 0.388700 -v -2.245215 0.286240 0.351795 -v -2.084215 0.344835 0.340665 -v -2.245215 0.308665 0.337830 -v -2.083950 0.345235 0.297580 -v -2.245215 0.325325 0.311255 -v -2.083415 0.345655 0.273030 -v -2.245215 0.335585 0.277120 -v -2.083095 0.345075 0.247500 -v -2.245215 0.339050 0.240835 -v -2.083255 0.345290 0.221970 -v -2.245215 0.335585 0.204265 -v -2.083665 0.345370 0.192415 -v -2.245215 0.325325 0.174980 -v -2.083815 0.345665 0.144360 -v -2.245215 0.308665 0.158150 -v -2.083565 0.345415 0.106295 -v -2.245215 0.286240 0.147930 -v -2.083570 0.293665 0.105945 -v -2.245215 0.258915 0.139545 -v -2.083565 0.229315 0.105600 -v -2.245215 0.227745 0.133310 -v -2.083610 0.193920 0.105435 -v -2.245215 0.193920 0.129475 -v -2.245215 -0.021560 0.240835 -v -2.245215 -0.018095 0.277120 -v -2.257880 -0.014270 0.275950 -v -2.257140 -0.017450 0.241175 -v -2.260070 -0.004500 0.307830 -v -2.277205 -0.004700 0.306510 -v -2.272960 -0.013340 0.275500 -v -2.310890 0.215395 0.364075 -v -2.303350 0.183845 0.367505 -v -2.328755 0.290990 0.161325 -v -2.332175 0.306595 0.180075 -v -2.263625 0.011105 0.161325 -v -2.268410 0.032035 0.149140 -v -2.280895 0.086630 0.364075 -v -2.274245 0.057535 0.358190 -v -2.334170 0.316205 0.275870 -v -2.332175 0.306595 0.307730 -v -2.288120 0.118200 0.130660 -v -2.295675 0.151025 0.129390 -v -2.303360 0.183840 0.130660 -v -2.245215 -0.007835 0.311255 -v -2.317945 0.244475 0.358190 -v -2.324025 0.270005 0.149140 -v -2.260070 -0.004500 0.180070 -v -2.288120 0.118200 0.367505 -v -2.334855 0.319445 0.241090 -v -2.280895 0.086630 0.134430 -v -2.245215 0.008830 0.337830 -v -2.263625 0.011105 0.332715 -v -2.324020 0.270010 0.348695 -v -2.317960 0.244470 0.140555 -v -2.245215 -0.018095 0.204265 -v -2.257880 -0.014270 0.207535 -v -2.295675 0.151030 0.368665 -v -2.334170 0.316205 0.207520 -v -2.274245 0.057535 0.140555 -v -2.245215 0.031250 0.351795 -v -2.268410 0.032035 0.348695 -v -2.328745 0.290990 0.332680 -v -2.310905 0.215390 0.134430 -v -2.293380 0.028245 0.347430 -v -2.304685 0.051195 0.357490 -v -2.334670 0.039275 0.356620 -v -2.318540 0.020190 0.346145 -v -2.425160 0.287605 0.241335 -v -2.424035 0.284635 0.275285 -v -2.284100 0.009415 0.331025 -v -2.424025 0.284635 0.208735 -v -2.420440 0.275850 0.181795 -v -2.414190 0.261595 0.162635 -v -2.317595 0.077385 0.363595 -v -2.331690 0.105795 0.131155 -v -2.346655 0.135315 0.129890 -v -2.404765 0.242465 0.149850 -v -2.331685 0.105795 0.367050 -v -2.317595 0.077385 0.134900 -v -2.392360 0.219365 0.141035 -v -2.346635 0.135315 0.368205 -v -2.304685 0.051195 0.141035 -v -2.377830 0.193145 0.134900 -v -2.362140 0.164810 0.367050 -v -2.293380 0.028245 0.149840 -v -2.362190 0.164810 0.131155 -v -2.377780 0.193160 0.363595 -v -2.284100 0.009415 0.162600 -v -2.392330 0.219400 0.357480 -v -2.277205 -0.004700 0.181745 -v -2.404755 0.242495 0.347390 -v -2.272960 -0.013340 0.208720 -v -2.414195 0.261615 0.330925 -v -2.271525 -0.016590 0.241400 -v -2.420445 0.275850 0.306355 -v -2.373370 0.084670 0.366535 -v -2.395125 0.109190 0.367700 -v -2.436870 0.075925 0.367315 -v -2.409540 0.057335 0.366145 -v -2.496990 0.215000 0.163960 -v -2.505790 0.227305 0.183430 -v -2.353125 0.061055 0.362960 -v -2.373385 0.084670 0.131695 -v -2.395175 0.109190 0.130440 -v -2.483195 0.198680 0.150735 -v -2.353130 0.061055 0.135440 -v -2.464430 0.179100 0.141680 -v -2.334670 0.039275 0.141675 -v -2.441935 0.157215 0.135440 -v -2.418275 0.133670 0.366535 -v -2.318540 0.020190 0.150700 -v -2.418340 0.133645 0.131695 -v -2.441905 0.157295 0.362955 -v -2.305300 0.004540 0.163870 -v -2.464475 0.179220 0.356590 -v -2.295465 -0.007075 0.183265 -v -2.483310 0.198820 0.346060 -v -2.289410 -0.014450 0.209755 -v -2.497105 0.215085 0.329195 -v -2.287360 -0.016725 0.241615 -v -2.505870 0.227345 0.305040 -v -2.289410 -0.014450 0.274915 -v -2.510480 0.234875 0.274725 -v -2.295465 -0.007075 0.305320 -v -2.511905 0.237410 0.241575 -v -2.305300 0.004540 0.329390 -v -2.510455 0.234875 0.209885 -v -2.496840 0.112550 0.362510 -v -2.526090 0.129540 0.355865 -v -2.573820 0.075965 0.355650 -v -2.539885 0.064000 0.362365 -v -2.361325 0.022930 0.142115 -v -2.384290 0.039440 0.135840 -v -2.496675 0.112355 0.135845 -v -2.525675 0.129215 0.142130 -v -2.466210 0.094535 0.366145 -v -2.341245 0.008465 0.151405 -v -2.466200 0.094445 0.132115 -v -2.324775 -0.003380 0.164895 -v -2.436895 0.075905 0.130870 -v -2.312535 -0.012145 0.184345 -v -2.550835 0.144800 0.344950 -v -2.304995 -0.017540 0.210550 -v -2.568720 0.157715 0.327975 -v -2.302450 -0.019445 0.241820 -v -2.579735 0.167355 0.303940 -v -2.304995 -0.017540 0.274415 -v -2.585340 0.173315 0.274195 -v -2.312535 -0.012145 0.304280 -v -2.587000 0.175325 0.241875 -v -2.324775 -0.003380 0.328250 -v -2.585225 0.173280 0.210815 -v -2.341245 0.008465 0.345105 -v -2.579480 0.167240 0.184605 -v -2.361325 0.022930 0.355915 -v -2.568285 0.157470 0.165055 -v -2.384285 0.039440 0.362520 -v -2.409565 0.057335 0.132115 -v -2.550295 0.144445 0.151465 -v -2.624000 0.096080 0.327425 -v -2.637145 0.102970 0.303510 -v -2.680100 0.036580 0.303450 -v -2.665575 0.032360 0.327345 -v -2.329500 -0.021635 0.184820 -v -2.343475 -0.015670 0.165270 -v -2.602840 0.086885 0.344550 -v -2.320880 -0.025275 0.210885 -v -2.317970 -0.026500 0.241855 -v -2.320880 -0.025275 0.274210 -v -2.643805 0.107155 0.274010 -v -2.329500 -0.021635 0.303870 -v -2.645725 0.108520 0.241955 -v -2.343475 -0.015670 0.327750 -v -2.643600 0.107085 0.211190 -v -2.362290 -0.007585 0.344720 -v -2.636580 0.102745 0.185140 -v -2.385220 0.002305 0.355710 -v -2.622985 0.095600 0.165460 -v -2.411460 0.013595 0.362380 -v -2.440255 0.025845 0.132265 -v -2.471335 0.038550 0.131020 -v -2.601640 0.086315 0.151680 -v -2.440255 0.025850 0.366010 -v -2.411460 0.013595 0.135985 -v -2.572805 0.075395 0.142275 -v -2.471360 0.038600 0.367175 -v -2.385220 0.002305 0.142255 -v -2.539275 0.063625 0.135985 -v -2.504810 0.051430 0.366005 -v -2.362290 -0.007585 0.151605 -v -2.504620 0.051275 0.132265 -v -2.689720 0.039905 0.241960 -v -2.687215 0.038980 0.211245 -v -2.720295 -0.029960 0.211250 -v -2.722895 -0.029515 0.241960 -v -2.341355 -0.041420 0.274155 -v -2.338215 -0.042140 0.241865 -v -2.687555 0.039085 0.273985 -v -2.350585 -0.039260 0.303760 -v -2.365580 -0.035710 0.327610 -v -2.385740 -0.030870 0.344640 -v -2.679215 0.036280 0.185220 -v -2.410390 -0.024955 0.355675 -v -2.664055 0.031855 0.165515 -v -2.438600 -0.018195 0.362360 -v -2.469535 -0.010870 0.132285 -v -2.502665 -0.003240 0.131045 -v -2.640540 0.025890 0.151705 -v -2.469540 -0.010855 0.365990 -v -2.438595 -0.018195 0.136005 -v -2.609750 0.019135 0.142290 -v -2.502755 -0.003180 0.367155 -v -2.410390 -0.024955 0.142275 -v -2.574350 0.011900 0.136005 -v -2.538265 0.004605 0.365985 -v -2.385740 -0.030870 0.151640 -v -2.537865 0.004395 0.132285 -v -2.575285 0.012325 0.362350 -v -2.365580 -0.035710 0.165355 -v -2.611405 0.019775 0.355625 -v -2.350585 -0.039260 0.184950 -v -2.642450 0.026640 0.344495 -v -2.341355 -0.041420 0.210975 -v -2.368935 -0.070295 0.211070 -v -2.365740 -0.070650 0.241905 -v -2.398255 -0.114585 0.241930 -v -2.401490 -0.114465 0.211165 -v -2.414465 -0.065095 0.344580 -v -2.393785 -0.067485 0.327510 -v -2.712000 -0.031335 0.185230 -v -2.439825 -0.062165 0.355650 -v -2.696495 -0.033650 0.165520 -v -2.468975 -0.058825 0.362355 -v -2.500910 -0.055200 0.132290 -v -2.534955 -0.051425 0.131045 -v -2.672975 -0.036695 0.151705 -v -2.500920 -0.055190 0.365985 -v -2.468980 -0.058825 0.136005 -v -2.642315 -0.040205 0.142295 -v -2.535055 -0.051380 0.367150 -v -2.439825 -0.062165 0.142285 -v -2.607155 -0.043890 0.136005 -v -2.571110 -0.047480 0.365985 -v -2.414465 -0.065095 0.151670 -v -2.570675 -0.047625 0.132290 -v -2.608335 -0.043540 0.362350 -v -2.393785 -0.067485 0.165420 -v -2.644255 -0.039670 0.355625 -v -2.378430 -0.069240 0.185050 -v -2.675285 -0.036140 0.344490 -v -2.698435 -0.033180 0.327340 -v -2.713095 -0.031095 0.303445 -v -2.368935 -0.070295 0.274090 -v -2.720715 -0.029885 0.273985 -v -2.378430 -0.069240 0.303650 -v -2.410975 -0.114090 0.303540 -v -2.426300 -0.113465 0.327415 -v -2.458510 -0.173580 0.327360 -v -2.443140 -0.173625 0.303475 -v -2.739505 -0.100195 0.303445 -v -2.725695 -0.100945 0.327340 -v -2.401490 -0.114465 0.274040 -v -2.746610 -0.099795 0.273985 -v -2.748690 -0.099680 0.241960 -v -2.746135 -0.099850 0.211250 -v -2.447080 -0.112615 0.344525 -v -2.738270 -0.100335 0.185230 -v -2.472550 -0.111570 0.355630 -v -2.723695 -0.101200 0.165520 -v -2.501970 -0.110385 0.362350 -v -2.534275 -0.109090 0.132290 -v -2.568515 -0.107750 0.131045 -v -2.701685 -0.102360 0.151705 -v -2.534275 -0.109090 0.365985 -v -2.501970 -0.110385 0.136005 -v -2.672905 -0.103695 0.142295 -v -2.568610 -0.107735 0.367150 -v -2.472550 -0.111570 0.142290 -v -2.639480 -0.105030 0.136005 -v -2.604365 -0.106320 0.365985 -v -2.447080 -0.112615 0.151695 -v -2.603955 -0.106395 0.132290 -v -2.640600 -0.104870 0.362350 -v -2.426300 -0.113465 0.165475 -v -2.674890 -0.103405 0.355625 -v -2.410975 -0.114090 0.185145 -v -2.704070 -0.102030 0.344490 -v -2.504705 -0.173425 0.355625 -v -2.534175 -0.173325 0.362345 -v -2.561465 -0.245870 0.362340 -v -2.531895 -0.245545 0.355615 -v -2.766820 -0.172195 0.211250 -v -2.769175 -0.172180 0.241960 -v -2.479140 -0.173510 0.344500 -v -2.759610 -0.172255 0.185230 -v -2.746520 -0.172355 0.165520 -v -2.566525 -0.173220 0.132290 -v -2.600680 -0.173110 0.131045 -v -2.726895 -0.172540 0.151705 -v -2.566530 -0.173220 0.365985 -v -2.534170 -0.173325 0.136005 -v -2.700765 -0.172705 0.142295 -v -2.600740 -0.173110 0.367150 -v -2.504705 -0.173425 0.142295 -v -2.669600 -0.172870 0.136005 -v -2.635895 -0.172985 0.365985 -v -2.479140 -0.173510 0.151705 -v -2.635545 -0.172995 0.132290 -v -2.670530 -0.172815 0.362345 -v -2.458510 -0.173580 0.165510 -v -2.702445 -0.172605 0.355625 -v -2.443140 -0.173625 0.185205 -v -2.728970 -0.172400 0.344490 -v -2.433680 -0.173650 0.211220 -v -2.748375 -0.172235 0.327335 -v -2.430485 -0.173660 0.241950 -v -2.760725 -0.172180 0.303445 -v -2.433680 -0.173650 0.274005 -v -2.767315 -0.172170 0.273985 -v -2.627855 -0.246590 0.367145 -v -2.662210 -0.246955 0.365980 -v -2.680530 -0.323325 0.365945 -v -2.646840 -0.322830 0.367110 -v -2.593845 -0.246225 0.132295 -v -2.627815 -0.246590 0.131050 -v -2.746930 -0.247870 0.151715 -v -2.764405 -0.248090 0.165540 -v -2.593850 -0.246225 0.365980 -v -2.561465 -0.245870 0.136015 -v -2.723555 -0.247610 0.142300 -v -2.531895 -0.245545 0.142300 -v -2.694620 -0.247300 0.136015 -v -2.506285 -0.245260 0.151715 -v -2.662000 -0.246955 0.132295 -v -2.695275 -0.247295 0.362340 -v -2.485385 -0.245025 0.165540 -v -2.724765 -0.247580 0.355615 -v -2.469975 -0.244850 0.185250 -v -2.748490 -0.247820 0.344470 -v -2.460440 -0.244745 0.211260 -v -2.765825 -0.248035 0.327315 -v -2.457185 -0.244705 0.241965 -v -2.776960 -0.248215 0.303425 -v -2.460440 -0.244745 0.273980 -v -2.783015 -0.248350 0.273975 -v -2.469975 -0.244850 0.303435 -v -2.784850 -0.248405 0.241965 -v -2.485385 -0.245025 0.327315 -v -2.782590 -0.248370 0.211270 -v -2.506285 -0.245260 0.344470 -v -2.775980 -0.248260 0.185250 -v -2.739545 -0.324225 0.355545 -v -2.761295 -0.324590 0.344365 -v -2.766970 -0.389980 0.343985 -v -2.746660 -0.389585 0.355270 -v -2.525160 -0.321030 0.151785 -v -2.551020 -0.321415 0.142345 -v -2.680390 -0.323325 0.132335 -v -2.711730 -0.323795 0.136050 -v -2.712140 -0.323795 0.362300 -v -2.504070 -0.320715 0.165645 -v -2.646815 -0.322830 0.131095 -v -2.488410 -0.320480 0.185375 -v -2.478730 -0.320335 0.211360 -v -2.776860 -0.324900 0.327185 -v -2.475475 -0.320285 0.241990 -v -2.787265 -0.325140 0.303320 -v -2.478730 -0.320335 0.273925 -v -2.793120 -0.325300 0.273925 -v -2.488410 -0.320480 0.303320 -v -2.794845 -0.325360 0.241995 -v -2.504070 -0.320715 0.327190 -v -2.792645 -0.325315 0.211360 -v -2.525160 -0.321030 0.344365 -v -2.786375 -0.325165 0.185375 -v -2.551020 -0.321415 0.355545 -v -2.775710 -0.324930 0.165645 -v -2.580715 -0.321855 0.362300 -v -2.613070 -0.322335 0.132335 -v -2.760155 -0.324610 0.151785 -v -2.613070 -0.322335 0.365945 -v -2.580715 -0.321855 0.136050 -v -2.738720 -0.324230 0.142345 -v -2.791750 -0.390555 0.302955 -v -2.797520 -0.390710 0.273760 -v -2.798095 -0.424740 0.273375 -v -2.792355 -0.424585 0.302120 -v -2.488715 -0.385535 0.211665 -v -2.498450 -0.385685 0.185785 -v -2.781815 -0.390305 0.326750 -v -2.485410 -0.385485 0.242075 -v -2.488715 -0.385535 0.273760 -v -2.498450 -0.385685 0.302955 -v -2.799250 -0.390765 0.242075 -v -2.514260 -0.385930 0.326750 -v -2.796890 -0.390715 0.211665 -v -2.535520 -0.386260 0.343985 -v -2.790740 -0.390565 0.185785 -v -2.561505 -0.386660 0.355270 -v -2.780610 -0.390320 0.166020 -v -2.591205 -0.387115 0.362110 -v -2.623485 -0.387610 0.132490 -v -2.656955 -0.388125 0.131250 -v -2.765945 -0.389990 0.152060 -v -2.623495 -0.387610 0.365795 -v -2.591205 -0.387115 0.136205 -v -2.745940 -0.389590 0.142535 -v -2.656995 -0.388125 0.366965 -v -2.561505 -0.386660 0.142535 -v -2.720250 -0.389135 0.136205 -v -2.690035 -0.388640 0.365795 -v -2.535520 -0.386260 0.152060 -v -2.689895 -0.388640 0.132490 -v -2.720640 -0.389135 0.362110 -v -2.514260 -0.385930 0.166020 -v -2.502665 -0.419725 0.302120 -v -2.492935 -0.419575 0.273375 -v -2.799725 -0.424790 0.242275 -v -2.518435 -0.419970 0.325740 -v -2.797415 -0.424740 0.212370 -v -2.539675 -0.420295 0.343060 -v -2.791150 -0.424590 0.186730 -v -2.565555 -0.420695 0.354580 -v -2.781160 -0.424345 0.166920 -v -2.595125 -0.421150 0.361620 -v -2.627160 -0.421645 0.132875 -v -2.660250 -0.422155 0.131635 -v -2.766780 -0.424015 0.152750 -v -2.627180 -0.421645 0.365405 -v -2.595120 -0.421150 0.136615 -v -2.747275 -0.423620 0.143030 -v -2.660330 -0.422155 0.366605 -v -2.565555 -0.420695 0.143030 -v -2.722250 -0.423165 0.136615 -v -2.692870 -0.422670 0.365405 -v -2.539675 -0.420295 0.152750 -v -2.692660 -0.422670 0.132875 -v -2.722680 -0.423165 0.361620 -v -2.518435 -0.419970 0.166920 -v -2.748050 -0.423620 0.354580 -v -2.502665 -0.419725 0.186730 -v -2.767910 -0.424015 0.343060 -v -2.492935 -0.419575 0.212370 -v -2.782400 -0.424340 0.325735 -v -2.489645 -0.419525 0.242275 -v -1.762300 0.345415 0.036535 -v -1.762300 -0.029775 0.036535 -v -2.005025 -0.029775 0.106295 -v -2.005025 0.345415 0.106295 -v -2.005025 0.345415 0.388700 -v -1.762300 0.345415 0.458465 -v -1.256330 0.345415 0.458465 -v -1.256330 0.344275 0.036535 -v -2.005025 -0.029775 0.388700 -v -1.762300 -0.029775 0.458465 -v -2.083565 -0.029775 0.388700 -v -2.083565 -0.029775 0.106295 -v -1.242615 -0.029775 0.036535 -v -1.242615 -0.029775 0.458465 -v -1.242615 0.528295 0.036535 -v -1.242615 0.528295 0.458465 -v -1.996305 0.397485 0.159635 -v -1.996305 0.338465 0.159745 -v -1.996305 0.346050 0.127420 -v -1.996305 0.397715 0.127420 -v -1.209905 0.526990 0.036535 -v -1.192005 0.528295 0.458465 -v -1.237005 0.527575 0.458075 -v -1.237005 0.610485 0.458075 -v -1.237005 0.610485 0.036925 -v -1.237005 0.527970 0.036925 -v -1.101375 0.636010 0.068310 -v -0.701100 0.674165 0.119505 -v -0.701100 0.526745 0.119505 -v -1.104905 0.526745 0.036925 -v -0.701100 0.674165 0.192190 -v -0.701100 0.674165 0.291950 -v -0.701100 0.674165 0.375495 -v -0.701100 0.526745 0.375495 -v -1.101375 0.636010 0.426685 -v -1.104905 0.526745 0.458075 -v -0.717595 0.674165 0.291950 -v -0.728800 0.674165 0.279145 -v -0.900040 0.674165 0.279145 -v -0.900040 0.674165 0.207660 -v -0.729865 0.674165 0.207660 -v -0.712795 0.674165 0.192190 -v -0.712795 0.666440 0.192190 -v -0.701100 0.666440 0.192190 -v -0.729865 0.666440 0.207660 -v -0.900040 0.666440 0.207660 -v -0.900040 0.666440 0.279145 -v -0.728800 0.666440 0.279145 -v -0.717595 0.666440 0.291950 -v -0.701100 0.666440 0.291950 -v -1.283710 0.571260 0.458075 -v -1.283710 0.571260 0.036925 -v -1.304040 0.527410 0.444625 -v -1.304040 0.527410 0.049260 -v -1.559855 0.322705 0.424470 -v -1.559855 0.522335 0.424470 -v -1.561210 0.524040 0.335985 -v -1.561150 0.523945 0.159015 -v -1.559855 0.522335 0.070530 -v -1.559855 0.322705 0.070530 -v -1.996305 0.397715 0.367580 -v -1.697225 0.397715 0.424470 -v -1.697225 0.345140 0.424470 -v -1.996305 0.346420 0.367580 -v -1.697225 0.345830 0.070530 -v -1.697225 0.397715 0.070530 -v -1.594875 0.497885 0.070530 -v -1.630775 0.466715 0.070530 -v -1.630880 0.466880 0.424470 -v -1.594910 0.497935 0.424470 -v -1.606540 0.512635 0.335985 -v -1.606015 0.511820 0.159015 -v -1.941475 0.397940 0.161510 -v -1.923820 0.398010 0.170110 -v -1.923820 0.338760 0.170110 -v -1.941475 0.338690 0.161510 -v -1.649535 0.490555 0.335985 -v -1.648690 0.489250 0.159015 -v -1.888280 0.398155 0.283115 -v -1.897200 0.398120 0.299205 -v -1.897200 0.338870 0.299205 -v -1.888280 0.338905 0.283115 -v -1.909200 0.398070 0.313310 -v -1.909200 0.338820 0.313310 -v -1.923820 0.398010 0.324885 -v -1.923820 0.338760 0.324885 -v -1.996305 0.397485 0.335365 -v -1.996305 0.338465 0.367580 -v -1.996305 0.338010 0.335475 -v -1.996305 0.392625 0.336205 -v -1.698450 0.399255 0.335985 -v -1.698395 0.399170 0.159015 -v -1.941475 0.397940 0.333485 -v -1.989480 0.338495 0.336850 -v -1.941475 0.338690 0.333485 -v -1.909200 0.398070 0.181685 -v -1.909200 0.338820 0.181685 -v -1.897200 0.398120 0.195790 -v -1.897200 0.338870 0.195790 -v -1.888280 0.398155 0.211880 -v -1.888280 0.338905 0.211880 -v -1.882715 0.398180 0.229340 -v -1.882715 0.338930 0.229340 -v -1.880905 0.398185 0.247500 -v -1.880905 0.338935 0.247500 -v -1.882715 0.398180 0.265655 -v -1.882715 0.338930 0.265655 -v -1.973310 0.338795 0.304950 -v -1.972210 0.334765 0.292635 -v -1.957810 0.335285 0.292635 -v -1.949415 0.340540 0.304950 -v -1.972210 0.334765 0.202360 -v -1.973310 0.338795 0.190050 -v -1.950425 0.340540 0.190050 -v -1.957810 0.335285 0.202360 -v -1.980085 0.344055 0.315050 -v -1.957335 0.345080 0.315050 -v -1.972210 0.331770 0.216410 -v -1.957705 0.332345 0.216410 -v -1.970825 0.349310 0.322560 -v -1.972210 0.329925 0.231650 -v -1.956815 0.330540 0.231650 -v -1.972210 0.329305 0.247500 -v -1.956510 0.329925 0.247500 -v -1.972210 0.329925 0.263350 -v -1.956815 0.330540 0.263350 -v -1.978855 0.349550 0.172440 -v -1.972360 0.361715 0.166255 -v -1.959315 0.350255 0.172440 -v -1.972210 0.331770 0.278590 -v -1.957705 0.332345 0.278590 -v -1.981730 0.344055 0.179945 -v -1.961540 0.344055 0.179945 -v -1.943760 0.334050 0.278590 -v -1.946605 0.336815 0.292635 -v -1.946605 0.336815 0.202360 -v -1.943760 0.334050 0.216410 -v -1.952490 0.351400 0.322560 -v -1.942010 0.332345 0.231650 -v -1.973400 0.361715 0.328745 -v -1.959770 0.358860 0.327185 -v -1.941415 0.331770 0.247500 -v -1.942010 0.332345 0.263350 -v -1.962295 0.355870 0.167815 -v -1.928365 0.335285 0.231650 -v -1.927505 0.334765 0.247500 -v -1.928365 0.335285 0.263350 -v -1.930910 0.336815 0.278590 -v -1.949645 0.346740 0.179945 -v -1.935230 0.339305 0.292635 -v -1.936280 0.339305 0.202360 -v -1.930910 0.336815 0.216410 -v -1.936820 0.351710 0.179945 -v -1.931855 0.345510 0.190050 -v -1.916730 0.346740 0.292635 -v -1.927515 0.348980 0.304950 -v -1.924120 0.342660 0.202360 -v -1.940750 0.348980 0.315050 -v -1.918775 0.340540 0.216410 -v -1.916405 0.339235 0.231650 -v -1.915315 0.338795 0.247500 -v -1.916405 0.339235 0.263350 -v -1.917725 0.340540 0.278590 -v -1.905725 0.344055 0.231650 -v -1.905305 0.343705 0.247500 -v -1.905725 0.344055 0.263350 -v -1.948460 0.354825 0.172440 -v -1.905000 0.350255 0.278590 -v -1.920920 0.352945 0.190050 -v -1.911285 0.351400 0.202360 -v -1.932430 0.354825 0.315050 -v -1.904495 0.350255 0.216410 -v -1.907905 0.356455 0.292635 -v -1.919285 0.357240 0.304950 -v -1.943575 0.356965 0.322560 -v -1.899105 0.349550 0.231650 -v -1.897675 0.349310 0.247500 -v -1.899105 0.349550 0.263350 -v -1.942935 0.361715 0.172440 -v -1.893530 0.361715 0.247500 -v -1.895040 0.361715 0.263350 -v -1.900150 0.361715 0.278590 -v -1.929300 0.361715 0.179945 -v -1.916935 0.361715 0.190050 -v -1.907210 0.361715 0.202360 -v -1.899990 0.361715 0.216410 -v -1.895040 0.361715 0.231650 -v -1.929670 0.361715 0.315050 -v -1.972430 0.387445 0.177475 -v -1.951075 0.389570 0.181535 -v -1.904260 0.388955 0.261430 -v -1.910575 0.393620 0.274820 -v -1.936060 0.389570 0.188135 -v -1.916885 0.392605 0.287165 -v -1.925810 0.391235 0.197015 -v -1.925620 0.391235 0.297985 -v -1.917645 0.392605 0.207835 -v -1.939700 0.392330 0.306865 -v -1.910575 0.393620 0.220175 -v -1.949980 0.387665 0.313460 -v -1.904260 0.388955 0.233570 -v -1.972035 0.387445 0.317525 -v -1.901625 0.389065 0.247500 -v -1.914780 0.400455 0.233570 -v -1.909610 0.397785 0.247500 -v -1.914780 0.400455 0.261430 -v -1.924485 0.399935 0.274820 -v -1.928625 0.399090 0.287165 -v -1.937095 0.399715 0.197015 -v -1.931590 0.397955 0.297985 -v -1.933060 0.401165 0.207835 -v -1.920065 0.399935 0.220175 -v -1.955820 0.392605 0.313460 -v -1.921975 0.403120 0.247500 -v -1.936975 0.404125 0.220175 -v -1.934300 0.404905 0.233570 -v -1.932805 0.404905 0.261430 -v -1.961005 0.393620 0.181535 -v -1.945940 0.397955 0.188135 -v -1.972900 0.406685 0.243215 -v -1.947545 0.401165 0.297985 -v -1.960230 0.399935 0.188135 -v -1.938335 0.404125 0.274820 -v -1.957475 0.402235 0.197015 -v -1.950695 0.399090 0.306865 -v -1.936395 0.405165 0.247500 -v -1.964100 0.402900 0.297985 -v -1.964410 0.400455 0.306865 -v -1.977550 0.396980 0.182390 -v -1.981800 0.400455 0.306865 -v -1.978945 0.400455 0.188135 -v -1.979250 0.402900 0.197015 -v -1.980435 0.402900 0.297985 -v -1.992995 0.399090 0.188135 -v -1.995525 0.401165 0.197015 -v -1.995040 0.401165 0.297985 -v -1.985260 0.393620 0.313460 -v -1.999060 0.397955 0.306865 -v -2.017980 0.402900 0.233570 -v -2.010790 0.405165 0.247500 -v -2.017160 0.402900 0.261430 -v -1.992800 0.389570 0.181535 -v -2.016035 0.402235 0.274820 -v -2.023035 0.403120 0.247500 -v -2.012570 0.397955 0.297985 -v -2.015905 0.399090 0.207835 -v -2.020135 0.399935 0.220175 -v -1.996460 0.385600 0.313460 -v -2.006550 0.392330 0.188135 -v -2.014880 0.399090 0.287165 -v -2.012825 0.397955 0.197015 -v -2.035665 0.397665 0.261430 -v -2.035550 0.388635 0.274820 -v -2.028525 0.392605 0.287165 -v -2.018940 0.391235 0.197015 -v -2.021115 0.387420 0.297985 -v -2.028165 0.392605 0.207835 -v -2.010350 0.386570 0.306865 -v -2.036370 0.388635 0.220175 -v -2.035665 0.397665 0.233570 -v -2.036430 0.397785 0.247500 -v -2.041435 0.388955 0.233570 -v -2.042795 0.389065 0.247500 -v -2.041435 0.388955 0.261430 -v -2.049375 0.361715 0.263350 -v -2.044900 0.361715 0.278590 -v -2.002635 0.361715 0.172440 -v -2.015180 0.361715 0.179945 -v -2.037205 0.361715 0.292635 -v -2.027485 0.361715 0.190050 -v -2.027845 0.361715 0.304950 -v -2.037205 0.361715 0.202360 -v -2.015920 0.361715 0.315050 -v -2.044900 0.361715 0.216410 -v -2.003040 0.361715 0.322560 -v -2.049375 0.361715 0.231650 -v -1.985785 0.358860 0.327185 -v -2.050890 0.361715 0.247500 -v -1.985200 0.358860 0.167815 -v -2.039925 0.350255 0.278590 -v -2.033135 0.351400 0.292635 -v -2.011770 0.354825 0.179945 -v -2.024020 0.352945 0.190050 -v -2.024020 0.352945 0.304950 -v -2.033135 0.351400 0.202360 -v -2.011085 0.354825 0.315050 -v -2.039925 0.350255 0.216410 -v -2.045310 0.349550 0.231650 -v -2.046745 0.349310 0.247500 -v -2.045310 0.349550 0.263350 -v -1.997450 0.354825 0.322560 -v -2.038695 0.344055 0.231650 -v -2.039115 0.343705 0.247500 -v -2.038695 0.344055 0.263350 -v -1.997550 0.354825 0.172440 -v -2.002790 0.348980 0.179945 -v -2.011750 0.345510 0.190050 -v -2.020300 0.342660 0.292635 -v -2.011065 0.345510 0.304950 -v -2.020300 0.342660 0.202360 -v -1.997320 0.346740 0.315050 -v -2.025645 0.340540 0.216410 -v -2.028015 0.339235 0.231650 -v -2.029105 0.338795 0.247500 -v -2.028015 0.339235 0.263350 -v -2.025645 0.340540 0.278590 -v -2.016055 0.335285 0.231650 -v -2.016915 0.334765 0.247500 -v -2.016055 0.335285 0.263350 -v -2.013510 0.336815 0.278590 -v -2.010470 0.339305 0.292635 -v -2.010470 0.339305 0.202360 -v -2.013510 0.336815 0.216410 -v -1.997815 0.336815 0.292635 -v -1.992665 0.340540 0.304950 -v -1.992050 0.340540 0.190050 -v -1.997815 0.336815 0.202360 -v -2.000660 0.334050 0.216410 -v -1.984250 0.350255 0.322560 -v -2.002410 0.332345 0.231650 -v -2.003000 0.331770 0.247500 -v -2.002410 0.332345 0.263350 -v -2.000660 0.334050 0.278590 -v -1.987910 0.329925 0.247500 -v -1.987605 0.330540 0.263350 -v -1.986715 0.332345 0.278590 -v -1.986610 0.335285 0.292635 -v -1.986610 0.335285 0.202360 -v -1.986715 0.332345 0.216410 -v -1.987605 0.330540 0.231650 -v -2.269235 0.347550 0.235480 -v -2.269235 0.347600 0.259715 -v -2.117450 0.385435 0.267245 -v -2.117450 0.385920 0.230835 -v -2.026840 0.345165 0.222180 -v -2.026890 0.378580 0.222260 -v -2.026890 0.378355 0.274560 -v -2.026840 0.344905 0.274480 -v -2.317485 0.362090 0.260315 -v -2.376175 0.340810 0.260315 -v -2.376175 0.304590 0.260315 -v -2.376175 0.304590 0.234690 -v -2.317485 0.362090 0.234690 -v -2.376175 0.340810 0.234690 -v -2.506960 -0.250935 0.300235 -v -2.506960 -0.008795 0.300235 -v -2.505510 -0.003690 0.194765 -v -2.506960 -0.250935 0.194765 -v -2.216500 0.014335 0.194765 -v -2.351800 -0.058250 0.194765 -v -2.408370 -0.137535 0.194765 -v -2.418475 -0.163915 0.194765 -v -2.395900 -0.180515 0.194765 -v -2.244870 -0.205020 0.194765 -v -1.528665 -0.186320 0.194765 -v -1.427845 -0.163555 0.194765 -v -1.402640 -0.141600 0.194765 -v -1.374995 -0.054600 0.194765 -v -1.382020 -0.025535 0.194765 -v -1.222115 -0.016790 0.194765 -v -1.222115 -0.143445 0.194765 -v -1.237290 -0.178805 0.194765 -v -1.270295 -0.218090 0.194765 -v -1.324510 -0.250935 0.194765 -v -1.222115 -0.142655 0.300235 -v -1.236505 -0.177230 0.300235 -v -1.324510 -0.250935 0.300235 -v -1.382020 -0.025535 0.300235 -v -1.222115 -0.016790 0.300235 -v -2.216500 0.014335 0.300235 -v -2.243670 -0.205120 0.300235 -v -1.527205 -0.186385 0.300235 -v -2.396485 -0.180745 0.300235 -v -2.406905 -0.137210 0.300235 -v -2.418035 -0.163865 0.300235 -v -1.401925 -0.140725 0.300235 -v -1.373825 -0.056425 0.300235 -v -1.428855 -0.165310 0.300235 -v -2.351070 -0.058090 0.300235 -v -1.271080 -0.219665 0.300235 -v -2.326100 -0.065320 0.226280 -v -2.308950 -0.123340 0.226280 -v -2.308845 -0.124235 0.268720 -v -2.326280 -0.065505 0.268720 -v -2.266235 -0.160670 0.226280 -v -2.265920 -0.160735 0.268720 -v -2.229115 -0.170110 0.226280 -v -2.229140 -0.170090 0.268720 -v -2.219210 -0.165375 0.226280 -v -2.219180 -0.165835 0.268720 -v -2.226995 -0.151795 0.226280 -v -2.226610 -0.151935 0.268720 -v -2.248190 -0.146450 0.268720 -v -2.248450 -0.146340 0.226280 -v -2.267480 -0.121705 0.268720 -v -2.267865 -0.121460 0.226280 -v -2.285085 -0.075980 0.268720 -v -2.275010 -0.011715 0.268720 -v -2.311665 -0.001875 0.268720 -v -2.284895 -0.075800 0.226280 -v -2.274750 -0.011665 0.226280 -v -2.311780 -0.001885 0.226280 -v -1.011405 0.006605 0.431800 -v -1.011405 0.006605 0.063200 -v -1.011405 -0.039020 0.081790 -v -1.011405 -0.039020 0.413205 -v -1.011405 -0.136895 0.063200 -v -0.030905 -0.015925 0.087135 -v -0.150645 -0.168190 0.087135 -v -0.030905 -0.015925 0.407865 -v -0.151425 -0.167515 0.406835 -v -1.011405 -0.136895 0.431800 -v -1.011405 -0.091270 0.081790 -v -1.277680 -0.088935 0.081790 -v -1.277680 -0.027920 0.081790 -v -1.011405 -0.091270 0.413205 -v -1.277680 -0.088935 0.413205 -v -1.277680 -0.027920 0.413205 -v -1.306860 -0.060780 0.076225 -v -1.306860 -0.060780 0.407640 -v -1.336670 -0.007010 0.076225 -v -1.336670 -0.007010 0.407640 -v -0.151295 -0.169130 0.448130 -v -0.151295 -0.079230 0.448130 -v -0.151295 -0.079230 0.046870 -v -0.151295 -0.169130 0.046870 -v 0.158730 -0.079230 0.046870 -v 0.158730 -0.124180 0.046870 -v 0.158730 -0.169130 0.046870 -v 0.221530 -0.124180 0.247500 -v 0.221530 -0.079230 0.247500 -v 0.158730 -0.053560 0.448130 -v 0.158730 -0.124180 0.448130 -v 0.158730 -0.169130 0.448130 -v 0.221530 -0.169130 0.247500 -v -0.184515 -0.165945 0.407510 -v -0.184060 -0.083075 0.406835 -v -0.179635 -0.079230 0.085680 -v -0.182180 -0.166015 0.087635 -v -0.680755 0.453600 -0.173155 -v -0.746980 0.453600 -0.173130 -v -0.747140 0.364120 -0.192150 -v -0.680755 0.364120 -0.192175 -v -0.680755 0.318380 0.243005 -v -0.747220 0.318380 0.243030 -v -0.747055 0.409860 0.243030 -v -0.680755 0.409860 0.243005 -v -0.747300 0.274640 -0.173130 -v -0.680755 0.274640 -0.173155 -v -0.746910 0.493430 0.205820 -v -0.680755 0.493430 0.205800 -v -0.747435 0.200630 -0.119360 -v -0.680755 0.200630 -0.119385 -v -0.746800 0.554640 0.137840 -v -0.680755 0.554640 0.137815 -v -0.747515 0.154890 -0.040140 -v -0.680755 0.154890 -0.040160 -v -0.746745 0.582910 0.050840 -v -0.680755 0.582910 0.050815 -v -0.747535 0.145330 0.050840 -v -0.680755 0.145330 0.050815 -v -0.746765 0.573345 -0.040140 -v -0.680755 0.573345 -0.040160 -v -0.747480 0.173600 0.137840 -v -0.680755 0.173600 0.137815 -v -0.746845 0.527605 -0.119365 -v -0.680755 0.527605 -0.119385 -v -0.747370 0.234810 0.205820 -v -0.680755 0.234810 0.205800 -v -1.161435 0.453600 -0.172990 -v -1.161435 0.364120 -0.192010 -v -1.222645 0.364120 -0.133315 -v -1.222615 0.430455 -0.119215 -v -1.161435 0.274640 -0.172990 -v -1.222615 0.297785 -0.119215 -v -1.161435 0.200630 -0.119220 -v -1.222535 0.242920 -0.079350 -v -1.161435 0.493430 0.205965 -v -1.161435 0.554640 0.137980 -v -1.222105 0.505360 0.111320 -v -1.221985 0.459980 0.161720 -v -1.161435 0.154890 -0.039995 -v -1.222410 0.209010 -0.020620 -v -1.161435 0.582910 0.050980 -v -1.222260 0.526315 0.046825 -v -1.161435 0.145330 0.050980 -v -1.222260 0.201925 0.046825 -v -1.161435 0.573345 -0.039995 -v -1.222410 0.519225 -0.020620 -v -1.161435 0.173600 0.137980 -v -1.222105 0.222880 0.111320 -v -1.161435 0.527605 -0.119220 -v -1.222535 0.485320 -0.079350 -v -1.161435 0.234810 0.205965 -v -1.221985 0.268255 0.161720 -v -1.161435 0.318380 0.243170 -v -1.221915 0.330210 0.189300 -v -1.247530 0.341030 0.140340 -v -1.247595 0.298840 0.121555 -v -1.248285 0.364120 -0.079355 -v -1.248250 0.409290 -0.069750 -v -1.221915 0.398025 0.189300 -v -1.247530 0.387210 0.140340 -v -1.248250 0.318945 -0.069750 -v -1.247595 0.429400 0.121555 -v -1.248160 0.281585 -0.042605 -v -1.247715 0.460300 0.087235 -v -1.248020 0.258495 -0.002610 -v -1.247865 0.474570 0.043315 -v -1.247865 0.253665 0.043315 -v -1.248020 0.469745 -0.002615 -v -1.247715 0.267940 0.087235 -v -1.248160 0.446655 -0.042605 -v -1.260980 0.391105 -0.027835 -v -1.260965 0.413425 -0.011620 -v -1.260875 0.350325 0.097675 -v -1.260885 0.325120 0.086450 -v -1.260985 0.364120 -0.033575 -v -1.260875 0.377915 0.097675 -v -1.260980 0.337135 -0.027835 -v -1.260885 0.403120 0.086450 -v -1.260965 0.314810 -0.011620 -v -1.260900 0.421580 0.065950 -v -1.260945 0.301020 0.012275 -v -1.260925 0.430105 0.039710 -v -1.260925 0.298135 0.039710 -v -1.260945 0.427220 0.012275 -v -1.260900 0.306660 0.065950 -v -1.275615 0.376445 0.005375 -v -1.275615 0.386640 0.012780 -v -1.275615 0.357820 0.062700 -v -1.275615 0.346305 0.057575 -v -1.275615 0.364120 0.002755 -v -1.275615 0.370420 0.062700 -v -1.275615 0.351795 0.005375 -v -1.275615 0.381930 0.057575 -v -1.275615 0.341600 0.012780 -v -1.275615 0.390365 0.048210 -v -1.275615 0.335300 0.023695 -v -1.275615 0.394255 0.036225 -v -1.275615 0.333980 0.036225 -v -1.275615 0.392940 0.023695 -v -1.275615 0.337875 0.048210 -v -0.679410 0.315780 0.260095 -v -0.679410 0.226205 0.220215 -v -0.679410 0.569005 0.147355 -v -0.679410 0.503395 0.220215 -v -0.679410 0.413825 0.260095 -v -0.679410 0.160600 0.147355 -v -0.679410 0.130300 0.054105 -v -0.736070 0.493430 0.205800 -v -0.738695 0.503395 0.220215 -v -0.738695 0.569005 0.147355 -v -0.736070 0.554640 0.137815 -v -0.679410 0.140550 -0.043405 -v -0.736070 0.409860 0.243005 -v -0.738695 0.413825 0.260095 -v -0.679410 0.189575 -0.128320 -v -0.736070 0.318380 0.243005 -v -0.738695 0.315780 0.260095 -v -0.736070 0.234810 0.205800 -v -0.738695 0.226205 0.220215 -v -0.679410 0.268895 -0.185950 -v -0.736070 0.173600 0.137815 -v -0.738695 0.160600 0.147355 -v -0.679410 0.589055 -0.043405 -v -0.679410 0.599305 0.054105 -v -0.736070 0.145330 0.050815 -v -0.738695 0.130300 0.054105 -v -0.736070 0.154890 -0.040160 -v -0.738695 0.140550 -0.043405 -v -0.736070 0.200630 -0.119385 -v -0.738695 0.189575 -0.128320 -v -0.736070 0.274640 -0.173155 -v -0.738695 0.268895 -0.185950 -v -0.679410 0.364800 -0.206335 -v -0.736070 0.364120 -0.192175 -v -0.738695 0.364800 -0.206335 -v -0.679410 0.460710 -0.185950 -v -0.738695 0.599305 0.054105 -v -0.736070 0.582910 0.050815 -v -0.738695 0.589055 -0.043405 -v -0.736070 0.573345 -0.040165 -v -0.679410 0.540030 -0.128320 -v -0.738695 0.540030 -0.128320 -v -0.736070 0.527605 -0.119385 -v -0.736070 0.453600 -0.173155 -v -0.738695 0.460710 -0.185950 -v -0.773190 0.582910 0.050840 -v -0.773205 0.573345 -0.040140 -v -0.774075 0.587475 -0.044730 -v -0.774055 0.597685 0.052390 -v -0.746495 0.226075 0.217840 -v -0.746335 0.315290 0.257560 -v -0.746560 0.189590 -0.129305 -v -0.746650 0.140760 -0.044730 -v -0.773585 0.364120 -0.192150 -v -0.773745 0.274640 -0.173130 -v -0.774645 0.268595 -0.186705 -v -0.774475 0.364120 -0.207010 -v -0.745880 0.567505 0.145270 -v -0.745825 0.597685 0.052390 -v -0.745845 0.587475 -0.044730 -v -0.773960 0.154890 -0.040140 -v -0.773975 0.145330 0.050840 -v -0.774895 0.130555 0.052390 -v -0.774875 0.140760 -0.044730 -v -0.746665 0.130555 0.052390 -v -0.746610 0.160730 0.145270 -v -0.746245 0.364120 -0.207010 -v -0.746420 0.268595 -0.186705 -v -0.773290 0.527605 -0.119365 -v -0.774160 0.538645 -0.129305 -v -0.746160 0.412945 0.257560 -v -0.746000 0.502160 0.217840 -v -0.773875 0.200630 -0.119360 -v -0.774790 0.189590 -0.129305 -v -0.745935 0.538645 -0.129305 -v -0.774565 0.315290 0.257560 -v -0.774390 0.412945 0.257560 -v -0.774230 0.502160 0.217840 -v -0.774110 0.567505 0.145270 -v -0.774840 0.160730 0.145270 -v -0.774725 0.226075 0.217840 -v -0.746075 0.459640 -0.186705 -v -0.774305 0.459640 -0.186705 -v -0.773420 0.453600 -0.173130 -v -0.773665 0.318380 0.243030 -v -0.773500 0.409860 0.243030 -v -0.773350 0.493430 0.205820 -v -0.773240 0.554640 0.137840 -v -0.773925 0.173600 0.137840 -v -0.773815 0.234810 0.205820 -v -0.788740 0.154305 -0.040330 -v -0.788755 0.144715 0.050905 -v -0.788705 0.173065 0.138150 -v -0.788595 0.234445 0.206320 -v -0.788360 0.364120 -0.192770 -v -0.788525 0.274390 -0.173695 -v -0.788280 0.409985 0.243635 -v -0.788130 0.493790 0.206320 -v -0.787965 0.583520 0.050900 -v -0.787985 0.573935 -0.040330 -v -0.788655 0.200170 -0.119775 -v -0.788020 0.555175 0.138150 -v -0.788065 0.528065 -0.119775 -v -0.788200 0.453850 -0.173695 -v -0.788445 0.318250 0.243635 -v -0.682030 0.445465 0.253085 -v -0.748260 0.445465 0.253105 -v -0.748420 0.355985 0.234085 -v -0.682035 0.355985 0.234065 -v -0.682030 0.310245 0.669245 -v -0.748500 0.310250 0.669265 -v -0.748335 0.401725 0.669265 -v -0.682035 0.401725 0.669245 -v -0.748580 0.266505 0.253105 -v -0.682035 0.266505 0.253085 -v -0.748185 0.485295 0.632060 -v -0.682035 0.485295 0.632035 -v -0.748710 0.192500 0.306875 -v -0.682035 0.192500 0.306855 -v -0.748075 0.546505 0.564080 -v -0.682035 0.546505 0.564055 -v -0.748795 0.146760 0.386100 -v -0.682035 0.146760 0.386075 -v -0.748025 0.574775 0.477075 -v -0.682035 0.574775 0.477055 -v -0.748810 0.137200 0.477075 -v -0.682035 0.137200 0.477055 -v -0.748040 0.565215 0.386100 -v -0.682035 0.565215 0.386075 -v -0.748760 0.165465 0.564080 -v -0.682035 0.165465 0.564055 -v -0.748125 0.519475 0.306875 -v -0.682035 0.519475 0.306855 -v -0.748650 0.226680 0.632060 -v -0.682035 0.226680 0.632035 -v -1.162715 0.445465 0.253250 -v -1.162715 0.355985 0.234230 -v -1.223920 0.355985 0.292925 -v -1.223895 0.422320 0.307025 -v -1.162715 0.310250 0.669410 -v -1.162715 0.401725 0.669410 -v -1.223190 0.389895 0.615540 -v -1.223190 0.322080 0.615540 -v -1.162715 0.266505 0.253250 -v -1.223895 0.289650 0.307025 -v -1.162715 0.485295 0.632200 -v -1.223260 0.451850 0.587955 -v -1.162715 0.192500 0.307020 -v -1.223810 0.234790 0.346885 -v -1.162715 0.546505 0.564220 -v -1.223385 0.497225 0.537560 -v -1.162715 0.146760 0.386240 -v -1.223690 0.200880 0.405620 -v -1.162715 0.574775 0.477220 -v -1.223535 0.518185 0.473065 -v -1.162715 0.137200 0.477220 -v -1.223535 0.193790 0.473065 -v -1.162715 0.565215 0.386240 -v -1.223690 0.511095 0.405620 -v -1.162715 0.165465 0.564220 -v -1.223385 0.214745 0.537560 -v -1.162715 0.519475 0.307020 -v -1.223810 0.477185 0.346885 -v -1.162715 0.226680 0.632200 -v -1.223260 0.260125 0.587955 -v -1.248810 0.332895 0.566580 -v -1.248875 0.290705 0.547795 -v -1.249560 0.355985 0.346885 -v -1.249530 0.401160 0.356485 -v -1.248810 0.379080 0.566580 -v -1.249530 0.310815 0.356485 -v -1.248875 0.421265 0.547795 -v -1.249435 0.273455 0.383630 -v -1.248990 0.452170 0.513475 -v -1.249300 0.250360 0.423625 -v -1.249145 0.466440 0.469555 -v -1.249145 0.245535 0.469555 -v -1.249300 0.461610 0.423625 -v -1.248990 0.259805 0.513475 -v -1.249435 0.438520 0.383630 -v -1.262260 0.382975 0.398400 -v -1.262245 0.405295 0.414620 -v -1.262150 0.342190 0.523910 -v -1.262160 0.316990 0.512690 -v -1.262265 0.355985 0.392665 -v -1.262155 0.369780 0.523910 -v -1.262260 0.329000 0.398400 -v -1.262160 0.394985 0.512690 -v -1.262245 0.306680 0.414620 -v -1.262180 0.413445 0.492190 -v -1.262225 0.292885 0.438510 -v -1.262205 0.421970 0.465950 -v -1.262205 0.290000 0.465950 -v -1.262225 0.419090 0.438510 -v -1.262180 0.298530 0.492190 -v -1.276895 0.368310 0.431615 -v -1.276895 0.378505 0.439020 -v -1.276895 0.349685 0.488940 -v -1.276895 0.338175 0.483815 -v -1.276895 0.355985 0.428995 -v -1.276895 0.362285 0.488940 -v -1.276895 0.343660 0.431615 -v -1.276895 0.373800 0.483815 -v -1.276895 0.333465 0.439020 -v -1.276895 0.382230 0.474450 -v -1.276895 0.327165 0.449935 -v -1.276895 0.386125 0.462465 -v -1.276895 0.325850 0.462465 -v -1.276895 0.384805 0.449935 -v -1.276895 0.329745 0.474450 -v -0.680685 0.307645 0.686335 -v -0.680685 0.218075 0.646455 -v -0.680685 0.560870 0.573590 -v -0.680685 0.495265 0.646455 -v -0.680685 0.405695 0.686335 -v -0.680685 0.152470 0.573590 -v -0.680685 0.122170 0.480345 -v -0.737345 0.485295 0.632035 -v -0.739975 0.495265 0.646455 -v -0.739975 0.560870 0.573590 -v -0.737345 0.546505 0.564055 -v -0.680685 0.132420 0.382830 -v -0.737345 0.401725 0.669245 -v -0.739975 0.405695 0.686335 -v -0.680685 0.181440 0.297920 -v -0.737345 0.310250 0.669245 -v -0.739975 0.307645 0.686335 -v -0.737345 0.226680 0.632035 -v -0.739975 0.218075 0.646455 -v -0.680685 0.260765 0.240290 -v -0.737345 0.165465 0.564055 -v -0.739975 0.152470 0.573590 -v -0.680685 0.580920 0.382830 -v -0.680685 0.591170 0.480345 -v -0.737345 0.137200 0.477055 -v -0.739975 0.122170 0.480345 -v -0.737345 0.146760 0.386075 -v -0.739975 0.132420 0.382830 -v -0.737345 0.192500 0.306855 -v -0.739975 0.181440 0.297920 -v -0.737345 0.266505 0.253085 -v -0.739975 0.260765 0.240290 -v -0.680685 0.356670 0.219905 -v -0.737345 0.355985 0.234065 -v -0.739975 0.356670 0.219905 -v -0.680685 0.452575 0.240290 -v -0.739975 0.591170 0.480345 -v -0.737350 0.574775 0.477055 -v -0.739975 0.580920 0.382830 -v -0.737350 0.565215 0.386075 -v -0.680685 0.531900 0.297920 -v -0.739975 0.531900 0.297920 -v -0.737345 0.519475 0.306855 -v -0.737345 0.445465 0.253085 -v -0.739975 0.452575 0.240290 -v -0.774470 0.574775 0.477075 -v -0.774485 0.565215 0.386100 -v -0.775355 0.579345 0.381510 -v -0.775335 0.589550 0.478630 -v -0.747615 0.307160 0.683800 -v -0.747775 0.217945 0.644080 -v -0.747925 0.132630 0.381510 -v -0.747840 0.181460 0.296935 -v -0.774860 0.355985 0.234085 -v -0.775020 0.266505 0.253105 -v -0.775925 0.260465 0.239535 -v -0.775755 0.355985 0.219230 -v -0.747105 0.589550 0.478630 -v -0.747160 0.559375 0.571505 -v -0.747125 0.579345 0.381510 -v -0.775240 0.146760 0.386100 -v -0.775255 0.137200 0.477075 -v -0.776175 0.122420 0.478630 -v -0.776155 0.132630 0.381510 -v -0.747890 0.152600 0.571505 -v -0.747945 0.122420 0.478630 -v -0.747695 0.260465 0.239535 -v -0.747525 0.355985 0.219230 -v -0.774565 0.519475 0.306875 -v -0.775440 0.530515 0.296935 -v -0.747280 0.494030 0.644080 -v -0.747440 0.404815 0.683800 -v -0.775155 0.192500 0.306875 -v -0.776070 0.181460 0.296935 -v -0.747210 0.530515 0.296935 -v -0.775665 0.404815 0.683800 -v -0.775845 0.307160 0.683800 -v -0.775390 0.559375 0.571505 -v -0.775505 0.494030 0.644080 -v -0.776005 0.217945 0.644080 -v -0.776120 0.152600 0.571505 -v -0.747355 0.451510 0.239535 -v -0.775585 0.451510 0.239535 -v -0.774700 0.445465 0.253105 -v -0.774945 0.310250 0.669265 -v -0.774780 0.401725 0.669265 -v -0.774630 0.485295 0.632060 -v -0.774520 0.546505 0.564080 -v -0.775205 0.165465 0.564080 -v -0.775095 0.226680 0.632060 -v -0.790015 0.146170 0.385910 -v -0.790035 0.136585 0.477140 -v -0.789985 0.164930 0.564385 -v -0.789875 0.226315 0.632560 -v -0.789640 0.355985 0.233470 -v -0.789800 0.266255 0.252540 -v -0.789560 0.401855 0.669870 -v -0.789410 0.485660 0.632560 -v -0.789245 0.575390 0.477140 -v -0.789265 0.565800 0.385910 -v -0.789935 0.192040 0.306465 -v -0.789295 0.547040 0.564385 -v -0.789345 0.519935 0.306465 -v -0.789480 0.445720 0.252540 -v -0.789725 0.310120 0.669870 -v -0.103610 0.100905 -0.017245 -v -0.031100 0.121580 0.030715 -v -0.083800 0.075715 0.037735 -v -0.136695 0.046975 -0.016895 -v -0.149105 -0.016640 -0.017480 -v -0.078420 -0.016640 0.053885 -v -0.143925 -0.082670 0.491875 -v -0.149340 -0.049230 0.492625 -v -0.157235 -0.016640 0.494195 -v -0.141165 0.048860 0.503085 -v -0.104400 0.078455 0.469295 -v -0.107100 0.104395 0.503060 -v -0.144205 -0.016640 0.474705 -v -0.117320 -0.082670 0.465850 -v -0.073925 0.125680 0.486320 -v -0.125655 0.016750 0.463630 -v -0.097885 0.048860 0.456230 -v -0.107100 -0.016640 0.452555 -v -0.079335 0.016750 0.445155 -v -0.073770 -0.082670 0.448475 -v -0.031095 0.125680 0.467630 -v -0.040530 0.078455 0.448385 -v -0.051570 -0.016640 0.437755 -v -0.031100 -0.050035 0.436640 -v -1.064745 0.144700 0.512235 -v -1.064745 0.144700 -0.017240 -v -1.142250 0.148875 0.036660 -v -1.142250 0.148875 0.458340 -v -1.064745 -0.047185 -0.017240 -v -0.031095 0.144700 -0.017240 -v -0.031095 0.134460 -0.017240 -v -0.139870 -0.079515 -0.015680 -v -0.131850 -0.079680 -0.017240 -v -0.031095 0.144700 0.502910 -v -1.142250 -0.031475 0.036660 -v -1.240260 0.148875 0.036660 -v -1.064745 -0.047185 0.512235 -v -1.142250 -0.031475 0.458340 -v -1.240260 0.148875 0.458340 -v -0.149340 0.015950 0.496530 -v -0.031095 0.147710 0.497695 -v -0.071390 -0.080255 0.049685 +o Barrel +v 0.257504 0.031247 -2.046854 +v 0.251539 0.116042 -2.661849 +v 0.238709 0.128102 -3.318399 +v 0.238709 0.229737 -3.270603 +v 0.277764 0.193887 -0.380589 +v 0.281913 -0.057518 -0.381339 +v 0.279034 -0.054938 -0.562753 +v 0.278349 -0.031928 -0.658844 +v 0.276329 0.038397 -0.773504 +v 0.209213 -0.004398 -0.126359 +v 0.229543 0.006412 -0.166054 +v 0.309118 0.003287 -0.122389 +v 0.315338 -0.044908 -0.101029 +v 0.241223 -0.086863 -0.114574 +v 0.206548 -0.065553 -0.142879 +v 0.017483 0.150982 0.574606 +v 0.013388 0.150357 0.063481 +v 0.017453 0.151277 0.221681 +v 0.010023 0.151487 0.396201 +v 0.013168 0.151357 0.132611 +v 0.211109 0.505352 -4.168079 +v 0.156169 0.511997 -4.168079 +v 0.156169 0.511997 -4.330939 +v 0.211109 0.505352 -4.330939 +v -0.293571 0.382322 -4.158724 +v -0.281896 0.328227 -4.158724 +v -0.249226 0.283557 -4.158724 +v 0.258599 0.476937 -4.168079 +v 0.258599 0.476937 -4.330939 +v -0.282236 0.436492 -4.158724 +v 0.290429 0.431667 -4.168079 +v 0.290429 0.431667 -4.330939 +v -0.202011 0.509187 -4.158724 +v -0.249851 0.481367 -4.158724 +v -0.146991 0.515147 -4.158724 +v 0.288739 0.323412 -4.330939 +v 0.255514 0.279152 -4.330939 +v 0.255514 0.279152 -4.168079 +v 0.288739 0.323412 -4.168079 +v 0.037419 0.353797 -4.330939 +v 0.037419 0.353797 -4.168079 +v 0.059134 0.302897 -4.168079 +v 0.059134 0.302897 -4.330939 +v 0.103274 0.495717 -4.168079 +v 0.061574 0.459332 -4.168079 +v 0.061574 0.459332 -4.330939 +v 0.103274 0.495717 -4.330939 +v 0.207164 0.252232 -4.330939 +v 0.207164 0.252232 -4.168079 +v 0.099679 0.265227 -4.330939 +v 0.099679 0.265227 -4.168079 +v 0.038279 0.409132 -4.168079 +v 0.038279 0.409132 -4.330939 +v -0.030391 0.410822 -4.158724 +v -0.030216 0.355482 -4.158724 +v -0.052566 0.304857 -4.158724 +v -0.146151 0.250427 -4.158724 +v -0.201211 0.256037 -4.158724 +v -0.094301 0.498212 -4.158724 +v -0.053056 0.461312 -4.158724 +v -0.359691 0.327162 -3.218804 +v -0.365016 0.327162 -2.728569 +v -0.337241 0.469917 -2.728389 +v -0.331911 0.469917 -3.218794 +v -0.314351 0.460522 -2.729089 +v -0.309026 0.460522 -3.218963 +v -0.247481 -0.054963 -0.553664 +v -0.248306 -0.057783 -0.380589 +v -0.250127 0.199882 -0.382089 +v -0.207156 0.232322 -3.446038 +v -0.207156 0.167387 -3.378423 +v -0.207156 0.128102 -3.318399 +v -0.219986 0.117302 -2.660964 +v -0.225946 0.032697 -2.046918 +v -0.244741 0.039057 -0.774434 +v -0.246111 -0.032128 -0.659204 +v 0.368759 0.327162 -3.219118 +v 0.383999 0.327162 -2.729089 +v 0.247399 0.197872 -2.727359 +v 0.234554 0.205312 -3.217434 +v 0.015774 0.145872 -3.401334 +v 0.015774 0.209937 -3.452199 +v 0.222434 0.232322 -3.446038 +v 0.238709 0.167387 -3.378423 +v -0.001637 0.695932 0.864801 +v -0.002277 0.699697 0.903036 +v 0.010088 0.699747 0.903381 +v 0.024018 0.699747 0.903381 +v 0.022363 0.696012 0.864806 +v -0.018937 0.383037 -0.211934 +v -0.019082 0.382922 0.729396 +v -0.028537 0.699747 0.711006 +v -0.028537 0.725437 0.711006 +v -0.018936 0.721257 -0.211934 +v 0.015774 0.122067 -3.318399 +v 0.015779 0.104522 -2.660903 +v 0.015779 0.020532 -2.047064 +v 0.015779 -0.017763 -0.827554 +v -0.114481 0.030242 -0.823684 +v -0.230861 0.205312 -2.724623 +v -0.205606 0.188322 -2.724068 +v -0.185281 0.211267 -2.724324 +v -0.210536 0.228262 -2.724879 +v -0.261711 0.246142 -2.725559 +v -0.319966 0.306657 -2.727608 +v -0.336271 0.394167 -2.728623 +v 0.015779 -0.049748 -0.712704 +v 0.146039 0.030237 -0.823684 +v 0.015774 -0.072578 -0.607349 +v -0.030216 0.355482 -4.352614 +v -0.052566 0.304857 -4.352614 +v -0.030391 0.410822 -4.352614 +v -0.053056 0.461312 -4.352614 +v -0.094301 0.498212 -4.352614 +v -0.146991 0.515147 -4.352614 +v -0.202011 0.509187 -4.352614 +v -0.249851 0.481367 -4.352614 +v -0.282236 0.436492 -4.352614 +v -0.293571 0.382322 -4.352614 +v -0.281896 0.328227 -4.352614 +v -0.249226 0.283557 -4.352614 +v -0.201211 0.256037 -4.352614 +v -0.146151 0.250427 -4.352614 +v -0.093576 0.267692 -4.352614 +v -0.031366 0.474472 -4.350559 +v -0.079881 0.523372 -4.352614 +v -0.211061 0.536742 -4.352614 +v -0.144051 0.544002 -4.352614 +v -0.002041 0.416942 -4.352614 +v -0.001826 0.349542 -4.352614 +v -0.029046 0.287882 -4.352614 +v -0.078996 0.242622 -4.352614 +v -0.143031 0.221592 -4.352614 +v -0.210086 0.228427 -4.352614 +v -0.268561 0.261942 -4.352614 +v -0.308351 0.316347 -4.352614 +v -0.322576 0.382232 -4.352614 +v -0.308771 0.448202 -4.352614 +v -0.269326 0.502857 -4.352614 +v -0.079881 0.523372 -4.183839 +v -0.029651 0.478432 -4.183839 +v -0.268561 0.261942 -4.183839 +v -0.210086 0.228427 -4.183839 +v -0.144051 0.544002 -4.183839 +v -0.143031 0.221592 -4.183839 +v -0.211061 0.536742 -4.183839 +v -0.078996 0.242622 -4.183839 +v -0.269326 0.502857 -4.183839 +v -0.029046 0.287882 -4.183839 +v -0.308771 0.448202 -4.183839 +v -0.001826 0.349542 -4.183839 +v -0.322576 0.382232 -4.183839 +v -0.002041 0.416942 -4.183839 +v -0.308351 0.316347 -4.183839 +v -0.263051 0.268102 -4.166004 +v -0.300811 0.319732 -4.166004 +v -0.083991 0.516202 -4.166004 +v -0.036321 0.473552 -4.166004 +v -0.207556 0.236297 -4.166004 +v -0.144886 0.535777 -4.166004 +v -0.143921 0.229812 -4.166004 +v -0.208481 0.528887 -4.166004 +v -0.083151 0.249767 -4.166004 +v -0.263771 0.496732 -4.166004 +v -0.035751 0.292717 -4.166004 +v -0.301206 0.444867 -4.166004 +v -0.009916 0.351237 -4.166004 +v 0.309499 0.439802 -4.168079 +v 0.321819 0.377037 -4.168079 +v 0.307549 0.314682 -4.168079 +v 0.315049 0.311207 -4.185909 +v 0.330089 0.376907 -4.185909 +v 0.317104 0.443047 -4.185909 +v -0.010121 0.415202 -4.166004 +v -0.003182 0.430657 0.004771 +v -0.037872 0.507917 0.004771 +v -0.338067 0.235897 0.004771 +v -0.388062 0.304257 0.004771 +v -0.102631 0.562592 0.005651 +v -0.264592 0.193787 0.004771 +v -0.183126 0.588747 0.005651 +v -0.183127 0.183897 0.005651 +v -0.265812 0.581182 0.004771 +v -0.102632 0.210052 0.005651 +v -0.339022 0.538607 0.004771 +v -0.037117 0.268492 0.004771 +v -0.388587 0.469932 0.004771 +v -0.002917 0.345967 0.004771 +v -0.314306 0.382257 -4.166004 +v -0.405932 0.387042 0.004771 +v -0.270022 0.176892 0.052351 +v -0.178427 0.167557 0.052351 +v -0.423677 0.386982 0.052351 +v -0.404252 0.296987 0.052351 +v 0.014163 0.434402 0.052351 +v -0.023547 0.518392 0.052351 +v -0.404822 0.477102 0.052351 +v -0.350937 0.551757 0.052351 +v -0.349897 0.222672 0.052351 +v 0.014453 0.342332 0.052351 +v -0.022727 0.258107 0.052351 +v -0.271352 0.598042 0.052351 +v -0.179816 0.607957 0.052351 +v -0.090952 0.196282 0.052351 +v -0.092162 0.579782 0.052351 +v -0.022727 0.258107 0.688621 +v -0.051452 0.278837 0.720896 +v -0.108762 0.226902 0.720896 +v -0.090952 0.196282 0.688621 +v -0.092162 0.579782 0.688621 +v -0.179817 0.607957 0.688621 +v -0.183407 0.572717 0.720896 +v -0.109777 0.549047 0.720896 +v -0.270022 0.176892 0.688621 +v -0.178427 0.167557 0.688621 +v -0.182237 0.202772 0.720896 +v -0.259182 0.210612 0.720896 +v -0.423677 0.386982 0.688621 +v -0.404252 0.296987 0.688621 +v -0.371937 0.311497 0.720896 +v -0.388257 0.387097 0.720896 +v 0.014163 0.434402 0.688621 +v -0.023547 0.518392 0.688621 +v -0.052142 0.497482 0.720896 +v -0.020462 0.426927 0.720896 +v -0.404822 0.477102 0.688621 +v -0.372412 0.462797 0.720896 +v -0.327152 0.525507 0.720896 +v -0.350937 0.551757 0.688621 +v -0.349897 0.222672 0.688621 +v -0.326282 0.249072 0.720896 +v 0.014453 0.342332 0.688621 +v -0.020217 0.349587 0.720896 +v -0.271352 0.598042 0.688621 +v -0.260297 0.564387 0.720896 +v 0.213259 0.232412 -4.168079 +v 0.149549 0.226722 -4.168079 +v 0.089034 0.247432 -4.168079 +v 0.042169 0.290972 -4.168079 +v 0.017069 0.349802 -4.168079 +v 0.018064 0.413762 -4.168079 +v 0.044989 0.471782 -4.168079 +v 0.093189 0.513837 -4.168079 +v 0.154324 0.532652 -4.168079 +v 0.217824 0.524972 -4.168079 +v 0.272714 0.492132 -4.168079 +v 0.269149 0.263527 -4.168079 +v 0.290429 0.431667 -4.354689 +v 0.301089 0.377357 -4.354689 +v 0.301089 0.377357 -4.330939 +v 0.258599 0.476937 -4.354689 +v 0.211109 0.505352 -4.354689 +v 0.156169 0.511997 -4.354689 +v 0.103274 0.495717 -4.354689 +v 0.061574 0.459332 -4.354689 +v 0.038279 0.409132 -4.354689 +v 0.037419 0.353797 -4.354689 +v 0.099679 0.265227 -4.354689 +v 0.059134 0.302897 -4.354689 +v 0.008959 0.348212 -4.354689 +v 0.010009 0.415602 -4.354689 +v 0.038379 0.476742 -4.354689 +v 0.089164 0.521057 -4.354689 +v 0.153589 0.540882 -4.354689 +v 0.220499 0.532792 -4.354689 +v 0.278339 0.498187 -4.354689 +v 0.317104 0.443047 -4.354689 +v 0.330089 0.376907 -4.354689 +v 0.315049 0.311207 -4.354689 +v 0.274584 0.257302 -4.354689 +v 0.215694 0.224512 -4.354689 +v 0.207164 0.252232 -4.354689 +v 0.255514 0.279152 -4.354689 +v 0.288739 0.323412 -4.354689 +v 0.084789 0.240342 -4.354689 +v 0.035409 0.286217 -4.354689 +v 0.220499 0.532792 -4.185909 +v 0.278339 0.498187 -4.185909 +v 0.153589 0.540882 -4.185909 +v 0.148559 0.218512 -4.185909 +v 0.148559 0.218512 -4.354689 +v 0.215694 0.224512 -4.185909 +v 0.089164 0.521057 -4.185909 +v 0.274584 0.257302 -4.185909 +v 0.041188 0.463312 0.002701 +v 0.091349 0.531547 0.002701 +v 0.005373 0.380672 0.050276 +v 0.023119 0.380572 0.002701 +v 0.040263 0.297637 0.002701 +v 0.024013 0.290507 0.050276 +v 0.443613 0.424262 0.050276 +v 0.426233 0.420667 0.002701 +v 0.392218 0.498227 0.002701 +v 0.406633 0.508577 0.050276 +v 0.025018 0.470622 0.050276 +v 0.079548 0.544802 0.050276 +v 0.089658 0.228842 0.002701 +v 0.077713 0.215722 0.050276 +v 0.443098 0.332192 0.050276 +v 0.405183 0.248292 0.050276 +v 0.390883 0.258802 0.002701 +v 0.425758 0.335977 0.002701 +v 0.159538 0.590392 0.050276 +v 0.246524 0.600097 0.050891 +v 0.249203 0.581867 0.002701 +v 0.164929 0.573482 0.002701 +v 0.336418 0.187072 0.050276 +v 0.248658 0.165422 0.050301 +v 0.246903 0.183082 0.002721 +v 0.327628 0.202487 0.002701 +v 0.162763 0.186087 0.002701 +v 0.157188 0.169242 0.050276 +v 0.038728 0.383037 -0.211934 +v 0.038729 0.721257 -0.211934 +v 0.048713 0.699747 0.711006 +v 0.049053 0.699747 0.725431 +v 0.037978 0.699747 0.736011 +v 0.037943 0.699747 0.710271 +v 0.048713 0.699747 0.695846 +v 0.338558 0.570562 0.686546 +v 0.251153 0.599502 0.686546 +v 0.247253 0.564297 0.718821 +v 0.320673 0.539987 0.718821 +v 0.338558 0.570562 0.050276 +v 0.329598 0.555247 0.002701 +v 0.024013 0.290507 0.686546 +v 0.077713 0.215722 0.686546 +v 0.157188 0.169242 0.686546 +v 0.079548 0.544802 0.686546 +v 0.103103 0.518347 0.718821 +v 0.170298 0.556642 0.718821 +v 0.159538 0.590392 0.686546 +v 0.248698 0.159107 0.686546 +v -0.249872 0.167682 -0.010114 +v -0.196637 0.146957 -0.001924 +v -0.249677 0.160812 0.041836 +v 0.037978 0.725457 0.736011 +v -0.017757 0.725267 0.735916 +v -0.017757 0.699747 0.735916 +v -0.017772 0.725267 0.711006 +v 0.049053 0.725457 0.725431 +v 0.048713 0.725457 0.711006 +v 0.037943 0.725202 0.694201 +v 0.037943 0.744567 0.711006 +v -0.017772 0.744567 0.711006 +v -0.017772 0.725202 0.694201 +v 0.311063 0.081002 -0.093779 +v 0.325593 0.037747 -0.022504 +v 0.021738 0.585607 0.754561 +v -0.002022 0.585607 0.754571 +v -0.002022 0.646267 0.795101 +v 0.021738 0.646267 0.795096 +v 0.121944 0.657312 -0.382644 +v 0.121944 0.595772 -1.365783 +v -0.109221 0.595772 -1.365783 +v -0.109401 0.657847 -0.387254 +v -0.051431 0.657312 -0.382644 +v 0.152039 0.247307 -4.354689 +v 0.152039 0.247307 -4.332014 +v -0.281352 0.013822 -0.050209 +v -0.298717 0.016267 -0.063084 +v -0.279777 0.017777 -0.071024 +v 0.315278 -0.052943 0.095106 +v 0.309203 -0.109308 -0.005179 +v 0.185258 0.151487 0.063471 +v 0.185258 0.151487 0.728931 +v 0.017503 0.150682 0.728941 +v -0.299022 0.061517 -0.079799 +v -0.300807 0.072827 -0.057289 +v -0.270382 0.073372 -0.062549 +v -0.279352 0.065737 -0.077734 +v 0.037998 0.181192 0.728946 +v 0.037998 0.267997 0.729181 +v 0.038898 0.382992 0.729391 +v -0.017932 0.267922 0.729191 +v -0.017932 0.181192 0.728951 +v 0.024028 0.699477 0.873126 +v 0.021738 0.383157 0.729706 +v -0.002022 0.383157 0.729716 +v 0.114178 0.198492 0.728936 +v 0.114178 0.198492 0.063476 +v 0.047078 0.256007 0.064351 +v 0.037998 0.267997 0.063291 +v 0.049743 0.259732 0.729121 +v -0.017772 0.699747 0.709161 +v -0.028332 0.725267 0.725431 +v -0.028332 0.699747 0.725431 +v 0.323348 0.079012 0.016446 +v 0.309698 0.123247 -0.035659 +v 0.037943 0.699747 0.903381 +v 0.037943 0.712497 0.902956 +v -0.017772 0.712497 0.902956 +v -0.017772 0.699747 0.903381 +v -0.017772 0.741617 0.872056 +v -0.017772 0.725242 0.895226 +v 0.037943 0.725242 0.895226 +v 0.037943 0.741617 0.872056 +v -0.014832 0.380827 0.712381 +v -0.014832 0.699822 0.670921 +v -0.018937 0.702032 0.687916 +v -0.052097 0.514632 0.704271 +v -0.047992 0.512422 0.687271 +v 0.038728 0.702032 0.688161 +v 0.035278 0.699677 0.669951 +v 0.035278 0.380687 0.711166 +v 0.070858 0.512742 0.707221 +v 0.067403 0.510392 0.688321 +v 0.302978 -0.099353 0.054171 +v 0.229173 -0.125883 0.056966 +v 0.237348 -0.139828 -0.008819 +v 0.235333 -0.075863 0.121821 +v 0.230863 -0.006803 0.144746 +v 0.308158 0.004367 0.119611 +v 0.232228 -0.122183 -0.072284 +v 0.305443 -0.091283 -0.070643 +v 0.237253 0.103392 -0.115314 +v 0.232613 0.143257 -0.062584 +v -0.217852 -0.119548 0.057206 +v -0.216347 -0.083563 0.104661 +v -0.283712 -0.087028 0.058846 +v -0.269127 -0.106688 0.034611 +v 0.264148 -0.057298 -0.152988 +v -0.173227 -0.061733 0.003611 +v -0.193117 -0.094728 0.060596 +v -0.199307 -0.118223 -0.005174 +v -0.219832 0.149352 -0.000779 +v -0.200852 0.131592 0.039536 +v -0.198402 0.135412 -0.019214 +v -0.181342 -0.006008 0.093151 +v -0.219317 -0.132098 0.000941 +v -0.177027 0.080352 0.035871 +v -0.169807 0.008742 0.041836 +v -0.276337 0.020837 -0.034209 +v -0.301017 0.018442 -0.045794 +v -0.276982 0.073742 -0.042899 +v -0.296762 0.065827 -0.028359 +v -0.199432 -0.005763 0.127386 +v -0.194992 0.089872 0.089166 +v -0.220052 0.118492 0.087111 +v -0.217217 0.074767 0.122716 +v -0.221937 0.143812 0.038446 +v -0.220552 0.022727 0.138266 +v -0.220727 -0.030538 0.133616 +v 0.332058 0.015782 -0.055874 +v 0.329933 0.044117 -0.084299 +v 0.331923 0.065542 -0.035419 +v 0.299873 0.014807 -0.046584 +v 0.302243 0.018742 -0.069954 +v 0.296618 0.050322 -0.083429 +v 0.326733 0.076602 -0.064474 +v 0.282068 0.038312 -0.051574 +v 0.300858 0.042007 -0.021564 +v 0.294073 0.071832 -0.044764 +v -0.283927 0.050637 0.101921 +v -0.282502 -0.004593 0.111601 +v -0.284037 0.103522 0.059121 +v -0.267302 0.127037 0.024206 +v -0.285337 -0.048368 0.091391 +v -0.286312 0.119632 0.000331 +v -0.284962 0.102297 -0.065879 +v -0.296132 0.019397 -0.071079 +v -0.298607 0.040057 0.032116 +v -0.295462 -0.030563 0.061831 +v -0.271837 0.120367 -0.044589 +v -0.280377 0.048112 -0.110154 +v -0.222682 0.117577 -0.091789 +v -0.218297 0.071742 -0.128119 +v -0.282987 -0.006018 -0.115024 +v -0.284702 -0.103573 -0.000984 +v -0.279367 -0.098778 -0.045124 +v -0.213297 0.019942 -0.141599 +v -0.216452 -0.030813 -0.137214 +v -0.214962 -0.121973 -0.052674 +v -0.221507 -0.091713 -0.102799 +v -0.269302 -0.050633 -0.106129 +v -0.220552 0.143857 -0.041744 +v -0.195157 -0.082963 -0.084229 +v -0.202447 0.113652 -0.082339 +v -0.182567 -0.027868 -0.094549 +v -0.186302 0.100872 -0.055264 +v -0.190687 0.050672 -0.107504 +v -0.172997 0.041257 -0.056244 +v -0.300667 0.050892 -0.026149 +v -0.306227 0.037637 -0.064254 +v -0.271432 0.060147 -0.028094 +v -0.273487 0.038512 -0.024609 +v 0.200558 0.183897 0.005651 +v 0.199183 0.170807 0.041836 +v 0.272388 0.166922 0.046141 +v 0.282103 0.192467 0.005651 +v -0.223136 0.197872 -3.214803 +v -0.330941 0.394167 -3.219194 +v -0.314631 0.306657 -3.218554 +v -0.256371 0.246142 -3.217253 +v -0.207796 0.219212 -3.215113 +v -0.182541 0.202217 -3.214558 +v -0.197881 0.180877 -3.214254 +v 0.307423 0.120252 0.048946 +v 0.309453 0.062992 0.101951 +v -0.297342 -0.044508 -0.027989 +v 0.233963 0.105637 0.110206 +v 0.235018 0.053587 0.138616 +v -0.284942 -0.073198 -0.077164 +v 0.194918 -0.035073 0.083176 +v 0.200818 -0.100168 -0.019659 +v -0.196637 0.008742 -0.140144 +v -0.199437 0.072357 -0.129619 +v -0.247942 0.070067 -0.149204 +v -0.248312 0.008742 -0.161459 +v -0.273767 0.051492 -0.084064 +v -0.297172 0.035627 -0.083449 +v -0.168437 0.041172 -0.001924 +v -0.168437 0.008742 -0.034354 +v -0.168437 -0.023693 -0.001924 +v 0.120068 0.210052 0.005651 +v 0.057168 0.266682 0.005651 +v 0.046523 0.258947 0.041836 +v 0.113488 0.198652 0.041836 +v -0.190007 0.126287 0.041836 +v -0.178337 0.101097 -0.001924 +v -0.175057 0.072357 0.041836 +v -0.175702 -0.057783 0.041836 +v -0.173997 -0.057783 -0.031584 +v -0.100206 0.213897 -0.380589 +v -0.038681 0.269292 -0.380589 +v -0.017636 0.316562 -0.380589 +v 0.034118 0.316562 -0.380589 +v 0.055163 0.269292 -0.380589 +v 0.116689 0.211567 -0.380589 +v 0.195429 0.185932 -0.380589 +v -0.178941 0.188312 -0.380589 +v 0.202933 -0.063468 -0.034674 +v 0.208333 0.104637 0.022541 +v 0.207743 -0.057783 0.035326 +v 0.211843 0.008742 -0.097019 +v 0.278308 0.042012 -0.161583 +v 0.212933 0.103837 -0.029689 +v 0.273913 0.129472 -0.106899 +v -0.247952 -0.057783 -0.146429 +v -0.249397 0.126287 -0.099659 +v -0.199437 -0.054878 -0.129619 +v -0.190157 0.126287 -0.046904 +v -0.249792 0.159797 -0.052794 +v -0.182537 0.072357 -0.087249 +v -0.179397 -0.023693 -0.092504 +v -0.194956 0.677767 -0.115719 +v -0.194957 0.682082 0.688181 +v 0.211243 0.682082 0.688181 +v 0.211243 0.682082 -0.115719 +v 0.123624 0.674512 -0.383239 +v -0.110116 0.674827 -0.387329 +v -0.165212 0.151487 0.728931 +v -0.165212 0.151487 0.063471 +v 0.252228 0.589727 0.688181 +v 0.231163 0.583307 0.005651 +v 0.123624 0.561207 -0.383239 +v 0.064884 0.576727 -0.383239 +v 0.033309 0.551472 -0.383399 +v 0.033309 0.496567 -0.383634 +v 0.038459 0.424832 -0.383684 +v 0.038459 0.411517 -0.383684 +v -0.001916 0.411517 -0.383684 +v -0.001916 0.424832 -0.383684 +v -0.025856 0.496852 -0.384079 +v -0.025856 0.553142 -0.386014 +v -0.056331 0.576727 -0.387329 +v -0.109236 0.563877 -0.386649 +v 0.038898 0.382992 0.063081 +v 0.010438 0.410047 0.705471 +v 0.020698 0.705552 0.697316 +v -0.002242 0.699387 0.873036 +v 0.276598 0.165707 -0.004299 +v 0.017333 0.152452 0.003456 +v 0.015204 0.221232 -4.352719 +v 0.179774 0.218477 -4.352809 +v 0.017503 0.151527 0.060731 +v -0.093576 0.267692 -4.158724 +v 0.121944 0.517322 -4.353459 +v 0.121944 0.553172 -4.353234 +v -0.181752 0.170807 0.041836 +v -0.096052 0.198652 0.041836 +v -0.029087 0.258947 0.041836 +v -0.003437 0.316562 0.041836 +v -0.017527 0.316562 0.005651 +v 0.301089 0.377357 -4.168079 +v -0.165212 0.172792 0.728931 +v -0.097737 0.203897 0.728946 +v -0.092337 0.191297 0.063486 +v -0.165212 0.170227 0.063471 +v -0.025692 0.258657 0.063471 +v 0.340999 0.469917 -3.218134 +v 0.214259 0.228262 -3.216328 +v 0.265419 0.246142 -3.217794 +v 0.323704 0.306657 -3.218189 +v 0.340039 0.394167 -3.217859 +v 0.318159 0.460522 -3.216474 +v 0.356244 0.469917 -2.727933 +v 0.333389 0.460522 -2.726804 +v 0.152039 0.247307 -4.168079 +v 0.185258 0.171947 0.063471 +v 0.179774 0.229217 -4.352809 +v 0.084789 0.240342 -4.185909 +v 0.010009 0.415602 -4.185909 +v 0.038379 0.476742 -4.185909 +v 0.035409 0.286217 -4.185909 +v 0.008959 0.348212 -4.185909 +v 0.336418 0.187072 0.686546 +v 0.318878 0.217847 0.718821 +v 0.245193 0.194357 0.718821 +v 0.025018 0.470622 0.686546 +v 0.057293 0.456032 0.718821 +v 0.168323 0.202872 0.718821 +v 0.101558 0.241912 0.718821 +v 0.005373 0.380672 0.686546 +v 0.040793 0.380472 0.718821 +v 0.443098 0.332192 0.686546 +v 0.408493 0.339752 0.718821 +v 0.376638 0.269272 0.718821 +v 0.405183 0.248292 0.686546 +v 0.056453 0.304737 0.718821 +v 0.443613 0.424262 0.686546 +v 0.406633 0.508577 0.686546 +v 0.377858 0.487917 0.718821 +v 0.408923 0.417087 0.718821 +v -0.170801 0.229217 -4.350684 +v -0.170696 0.218477 -4.352809 +v 0.020868 0.316562 0.041836 +v 0.034958 0.316562 0.005651 +v -0.272937 0.032742 -0.081034 +v 0.237383 0.145597 0.052736 +v -0.248307 0.190747 0.005651 +v -0.248307 0.171017 0.041836 +v -0.226037 0.600417 0.688181 +v 0.008718 0.436702 0.688181 +v 0.043858 0.515632 0.688181 +v 0.124283 0.556622 0.688181 +v 0.200398 0.584892 0.688181 +v 0.185258 0.171947 0.728931 +v 0.355294 0.394167 -2.727499 +v 0.338969 0.306657 -2.727453 +v 0.280709 0.246142 -2.726309 +v 0.232084 0.219212 -2.726408 +v -0.109996 0.506777 -4.350559 +v -0.109221 0.553172 -4.353234 +v -0.201372 0.587917 0.006221 +v -0.226037 0.600417 0.050891 +v 0.084999 0.514337 -4.353234 +v 0.041284 0.473062 -4.353234 +v 0.013304 0.353292 -4.352809 +v 0.036839 0.291602 -4.352809 +v 0.081609 0.247417 -4.352809 +v 0.141614 0.225572 -4.352809 +v -0.136856 0.226762 -4.350474 +v -0.072241 0.250267 -4.347369 +v -0.028361 0.293002 -4.347369 +v -0.007616 0.354332 -4.347389 +v -0.076481 0.517867 -4.350559 +v -0.017932 0.267922 0.063296 +v -0.019082 0.382922 0.063091 +v -0.293571 0.382322 -4.158724 +v -0.281896 0.328227 -4.158724 +v -0.281896 0.328227 -4.328869 +v -0.293571 0.382322 -4.328869 +v -0.249226 0.283557 -4.158724 +v -0.249226 0.283557 -4.328869 +v -0.282236 0.436492 -4.158724 +v -0.282236 0.436492 -4.328869 +v -0.202011 0.509187 -4.158724 +v -0.249851 0.481367 -4.158724 +v -0.249851 0.481367 -4.328869 +v -0.202011 0.509187 -4.328869 +v -0.146991 0.515147 -4.328869 +v -0.146991 0.515147 -4.158724 +v -0.030391 0.410822 -4.158724 +v -0.030216 0.355482 -4.158724 +v -0.030216 0.355482 -4.328869 +v -0.030391 0.410822 -4.328869 +v -0.052566 0.304857 -4.158724 +v -0.052566 0.304857 -4.328869 +v -0.146151 0.250427 -4.328869 +v -0.146151 0.250427 -4.158724 +v -0.201211 0.256037 -4.158724 +v -0.201211 0.256037 -4.328869 +v -0.094301 0.498212 -4.158724 +v -0.094301 0.498212 -4.328869 +v -0.053056 0.461312 -4.158724 +v -0.053056 0.461312 -4.328869 +v -0.030216 0.355482 -4.352614 +v -0.052566 0.304857 -4.352614 +v -0.030391 0.410822 -4.352614 +v -0.053056 0.461312 -4.352614 +v -0.094301 0.498212 -4.352614 +v -0.146991 0.515147 -4.352614 +v -0.202011 0.509187 -4.352614 +v -0.249851 0.481367 -4.352614 +v -0.282236 0.436492 -4.352614 +v -0.293571 0.382322 -4.352614 +v -0.281896 0.328227 -4.352614 +v -0.249226 0.283557 -4.352614 +v -0.201211 0.256037 -4.352614 +v -0.146151 0.250427 -4.352614 +v -0.093576 0.267692 -4.328869 +v -0.093576 0.267692 -4.352614 +v -0.093576 0.267692 -4.158724 +vn 0.9990 0.0433 -0.0130 +vn 0.2109 -0.0576 -0.9758 +vn 0.9995 0.0285 -0.0149 +vn 0.9999 -0.0104 -0.0111 +vn 0.9998 0.0091 -0.0194 +vn 0.9997 0.0165 -0.0156 +vn 0.9999 0.0088 -0.0050 +vn 0.9999 0.0138 -0.0091 +vn 0.6821 0.1629 -0.7129 +vn 0.0835 -0.9715 -0.2218 +vn 0.0669 -0.3970 -0.9154 +vn 0.2513 -0.9679 -0.0047 +vn 0.2528 -0.9675 -0.0008 +vn 0.2523 -0.9677 -0.0008 +vn -0.0238 -0.9997 -0.0006 +vn -0.1439 -0.9895 0.0094 +vn -0.0248 -0.9997 0.0003 +vn 0.0890 -0.9960 -0.0000 +vn -0.3238 -0.9461 -0.0000 +vn -0.6806 -0.7327 -0.0000 +vn -0.6806 -0.7326 -0.0000 +vn -0.9198 -0.3925 -0.0000 +vn -0.6575 0.7535 -0.0000 +vn -0.9071 0.4210 -0.0000 +vn 0.9813 0.1926 -0.0000 +vn 0.8181 0.5751 -0.0000 +vn 0.7998 -0.6003 -0.0000 +vn 0.4864 -0.8737 -0.0000 +vn -0.2942 0.9558 -0.0000 +vn 0.5135 0.8581 -0.0000 +vn 0.9748 -0.2231 -0.0000 +vn -0.9815 0.1910 -0.0107 +vn 0.3798 0.9251 0.0041 +vn -0.9999 0.0015 -0.0143 +vn -0.9999 -0.0017 -0.0131 +vn -0.9999 -0.0031 -0.0103 +vn 0.6753 -0.7370 -0.0271 +vn 0.6837 -0.7294 -0.0231 +vn 0.6717 -0.7402 -0.0288 +vn -0.0095 -0.8319 -0.5549 +vn 0.1291 -0.6812 -0.7206 +vn 0.0902 -0.7990 -0.5946 +vn 0.9937 0.0967 -0.0559 +vn 0.9964 0.0732 -0.0423 +vn 1.0000 -0.0000 -0.0000 +vn -0.0016 0.9953 -0.0973 +vn -0.0000 0.9953 -0.0964 +vn -0.0027 0.9379 -0.3468 +vn -0.9999 -0.0121 -0.0062 +vn -0.9999 -0.0000 -0.0104 +vn -0.0742 -0.7934 -0.6042 +vn -0.0186 -0.6346 -0.7726 +vn -0.0000 -0.9835 -0.1808 +vn 0.0283 -0.9544 -0.2973 +vn -0.0025 -0.9969 -0.0788 +vn 0.0483 -0.9957 -0.0785 +vn -0.2055 -0.9589 -0.1956 +vn -0.1846 -0.9286 -0.3220 +vn -0.0512 -0.9965 -0.0663 +vn -0.0144 0.0087 0.9999 +vn -0.0235 0.0055 0.9997 +vn -0.0123 0.0198 0.9997 +vn 0.2035 -0.9596 -0.1944 +vn 0.1823 -0.9289 -0.3223 +vn 0.1477 -0.9273 -0.3440 +vn -0.0000 -0.9882 -0.1529 +vn 0.0003 -0.9530 -0.3029 +vn -0.0029 -0.9977 -0.0675 +vn -0.0382 -0.9991 0.0207 +vn -0.0002 -0.9946 -0.1042 +vn 0.0383 -0.9990 0.0215 +vn 0.0655 0.0289 -0.9974 +vn 0.0105 0.0046 -0.9999 +vn 0.0615 0.0327 -0.9976 +vn -0.0000 -0.0000 -1.0000 +vn 0.8102 0.5861 -0.0053 +vn 0.4901 0.8472 0.2049 +vn 0.7905 0.5793 0.1986 +vn -0.6668 -0.7453 -0.0000 +vn -0.2992 -0.9309 0.2096 +vn -0.6520 -0.7287 0.2095 +vn 0.1014 0.9948 -0.0000 +vn 0.5209 0.8536 -0.0000 +vn -0.3060 -0.9520 -0.0000 +vn 0.1053 -0.9721 0.2096 +vn -0.3120 0.9501 -0.0000 +vn 0.0991 0.9728 0.2096 +vn 0.1077 -0.9942 -0.0000 +vn 0.4916 -0.8453 0.2095 +vn -0.6715 0.7410 -0.0000 +vn -0.3051 0.9290 0.2096 +vn 0.5027 -0.8644 -0.0000 +vn 0.7929 -0.5722 0.2095 +vn -0.9148 0.4038 -0.0000 +vn -0.6566 0.7246 0.2096 +vn 0.9788 -0.2048 -0.0000 +vn 0.8109 -0.5852 -0.0000 +vn -1.0000 -0.0032 -0.0000 +vn -0.8945 0.3949 0.2096 +vn 0.9725 0.2327 -0.0000 +vn 0.9571 -0.2003 0.2095 +vn -0.9122 -0.4096 -0.0000 +vn -0.9778 -0.0031 0.2096 +vn 0.9559 0.2095 0.2059 +vn -0.6511 -0.7285 0.2129 +vn -0.8920 -0.4005 0.2095 +vn 0.4858 0.8465 0.2178 +vn -0.2983 -0.9300 0.2147 +vn 0.0997 0.9713 0.2159 +vn 0.1058 -0.9705 0.2167 +vn -0.3042 0.9283 0.2138 +vn 0.4910 -0.8433 0.2186 +vn -0.6559 0.7245 0.2121 +vn 0.7912 -0.5706 0.2200 +vn -0.8941 0.3949 0.2111 +vn 0.9547 -0.1997 0.2206 +vn 0.9776 -0.0152 0.2097 +vn 0.8993 0.3837 0.2096 +vn 0.9071 -0.0141 0.4208 +vn 0.9535 0.2056 0.2204 +vn 0.9774 0.2114 -0.0024 +vn 0.7878 0.5756 0.2193 +vn 0.7976 0.6031 -0.0044 +vn -0.6675 -0.7444 -0.0178 +vn -0.8915 -0.4007 0.2115 +vn 0.4845 0.8747 -0.0076 +vn -0.3156 -0.9488 -0.0140 +vn 0.1106 0.9938 -0.0117 +vn 0.0960 -0.9953 -0.0099 +vn -0.3045 0.9524 -0.0161 +vn 0.4964 -0.8681 -0.0059 +vn -0.6720 0.7403 -0.0196 +vn 0.8078 -0.5895 -0.0031 +vn -0.9148 0.4034 -0.0216 +vn 0.9788 -0.2049 -0.0019 +vn -0.9775 -0.0032 0.2109 +vn -0.9998 -0.0030 -0.0220 +vn -0.3036 -0.9372 -0.1716 +vn 0.0889 -0.9358 -0.3411 +vn 0.1091 -0.9798 -0.1674 +vn -0.9848 -0.0031 -0.1736 +vn -0.8547 -0.3838 -0.3495 +vn -0.8984 -0.4034 -0.1736 +vn 0.9627 0.2078 -0.1736 +vn 0.7512 0.5546 -0.3578 +vn 0.7949 0.5814 -0.1736 +vn -0.9009 0.3977 -0.1736 +vn -0.6291 0.6943 -0.3495 +vn -0.8571 0.3784 -0.3495 +vn -0.6247 -0.6983 -0.3494 +vn -0.6566 -0.7340 -0.1736 +vn 0.9639 -0.2017 -0.1736 +vn 0.7582 -0.5485 -0.3524 +vn 0.9171 -0.1919 -0.3495 +vn -0.3044 0.9361 -0.1762 +vn 0.0943 0.9205 -0.3791 +vn -0.2834 0.8931 -0.3495 +vn 0.4579 -0.8147 -0.3557 +vn 0.4966 -0.8501 -0.1753 +vn 0.4844 0.8533 -0.1927 +vn -0.9370 -0.0030 -0.3494 +vn -0.2945 -0.8895 -0.3494 +vn 0.9159 0.1977 -0.3494 +vn -0.6613 0.7298 -0.1736 +vn 0.7986 -0.5763 -0.1736 +vn -0.9123 -0.4089 -0.0206 +vn 0.5461 -0.3941 0.7392 +vn 0.3386 -0.5822 0.7392 +vn 0.3349 0.5843 0.7392 +vn 0.0683 0.6700 0.7392 +vn 0.0725 -0.6696 0.7392 +vn -0.2061 -0.6412 0.7392 +vn -0.6735 -0.0021 0.7392 +vn -0.6144 -0.2759 0.7392 +vn 0.5436 0.3976 0.7392 +vn 0.6583 0.1421 0.7392 +vn -0.6161 0.2720 0.7392 +vn -0.4522 0.4991 0.7392 +vn -0.4491 -0.5019 0.7392 +vn 0.6592 -0.1379 0.7392 +vn -0.2101 0.6399 0.7392 +vn -0.2102 0.6399 0.7392 +vn -0.4491 -0.5020 0.7392 +vn 0.4428 0.8051 -0.3947 +vn 0.1014 0.9762 -0.1916 +vn -0.9123 -0.4096 -0.0000 +vn 0.9775 0.2110 -0.0000 +vn 0.8072 0.5903 -0.0000 +vn 0.4973 0.8676 -0.0000 +vn -0.9148 0.4039 -0.0000 +vn -0.9999 0.0156 -0.0000 +vn 0.3238 0.9461 -0.0000 +vn 0.6655 0.7164 0.2096 +vn 0.6806 0.7326 -0.0000 +vn -0.0890 0.9960 -0.0000 +vn 0.3166 0.9251 0.2096 +vn -0.1201 -0.9928 -0.0000 +vn 0.2876 -0.9345 0.2096 +vn -0.1174 -0.9707 0.2096 +vn -0.4864 0.8737 -0.0000 +vn -0.0870 0.9739 0.2095 +vn 0.6575 -0.7535 -0.0000 +vn 0.2942 -0.9558 -0.0000 +vn -0.9109 0.4125 0.0017 +vn -0.8004 0.5994 -0.0017 +vn -0.9749 0.2227 0.0007 +vn -0.9848 0.0055 -0.1736 +vn -0.8581 -0.3763 -0.3495 +vn -0.9019 -0.3955 -0.1736 +vn 0.9644 0.1994 -0.1736 +vn 0.7611 0.5465 -0.3495 +vn 0.7999 0.5744 -0.1736 +vn -0.8974 0.4056 -0.1736 +vn -0.6230 0.6998 -0.3495 +vn -0.8538 0.3859 -0.3495 +vn -0.6308 -0.6928 -0.3494 +vn -0.6631 -0.7282 -0.1736 +vn 0.7935 -0.5833 -0.1736 +vn 0.9153 -0.1999 -0.3495 +vn 0.9621 -0.2101 -0.1736 +vn 0.0944 0.9807 -0.1713 +vn -0.2873 0.8909 -0.3519 +vn -0.3040 0.9366 -0.1741 +vn 0.0984 -0.9799 -0.1737 +vn 0.4338 -0.8299 -0.3508 +vn 0.4595 -0.8712 -0.1729 +vn -0.9369 0.0052 -0.3495 +vn -0.2610 -0.8993 -0.3508 +vn -0.2781 -0.9449 -0.1729 +vn 0.9175 0.1897 -0.3495 +vn -0.6549 0.7355 -0.1736 +vn -0.0000 -1.0000 -0.0000 +vn 0.0741 0.6694 0.7392 +vn 0.3400 0.5814 0.7392 +vn 0.4946 0.8518 -0.1726 +vn 0.1109 0.9304 -0.3493 +vn -0.6733 -0.7394 -0.0000 +vn -0.9158 -0.4016 -0.0000 +vn -0.3114 -0.9503 -0.0046 +vn -0.4479 0.5030 0.7392 +vn -0.2045 0.6417 0.7392 +vn 0.0989 -0.9951 -0.0099 +vn -0.3673 -0.9294 0.0358 +vn -0.4535 -0.8912 -0.0103 +vn -0.4039 -0.8909 -0.2076 +vn -0.0017 -0.0000 1.0000 +vn -0.0025 1.0000 -0.0008 +vn -0.0000 1.0000 -0.0000 +vn -0.0021 1.0000 -0.0009 +vn -0.0000 -0.6554 0.7553 +vn 0.0452 -0.9968 -0.0659 +vn 0.9831 0.0449 -0.1776 +vn 0.9983 0.0228 -0.0531 +vn 0.9927 -0.0741 -0.0955 +vn -0.0004 0.3482 -0.9374 +vn -0.0004 0.6966 -0.7174 +vn 0.0003 0.9993 -0.0384 +vn 0.0142 0.9979 -0.0633 +vn 0.0067 0.9980 -0.0629 +vn 0.1200 0.9928 -0.0000 +vn -0.0026 0.9366 -0.3503 +vn -0.1083 -0.9792 0.1718 +vn -0.1072 -0.9933 -0.0440 +vn 0.0001 -0.9824 -0.1867 +vn 0.9851 -0.1721 0.0025 +vn 0.9925 -0.0814 0.0912 +vn 0.0018 -1.0000 -0.0084 +vn 0.0037 -1.0000 -0.0012 +vn 0.0029 -1.0000 0.0014 +vn -0.1136 0.8968 -0.4277 +vn -0.0942 0.8866 -0.4529 +vn -0.1184 0.8991 -0.4213 +vn -0.1581 0.9165 -0.3675 +vn 0.0009 -0.0024 1.0000 +vn 0.0001 0.0284 0.9996 +vn 0.0002 -0.0018 1.0000 +vn 0.8973 -0.4414 0.0042 +vn -0.0004 0.1219 -0.9925 +vn 0.7295 0.6839 -0.0003 +vn 0.5790 0.8153 -0.0068 +vn 0.6337 0.7735 -0.0069 +vn 0.0113 0.0305 -0.9995 +vn 0.0086 0.0271 -0.9996 +vn 0.0199 0.0411 -0.9990 +vn -0.9999 -0.0000 0.0142 +vn -0.7041 -0.0000 0.7101 +vn 1.0000 -0.0000 -0.0006 +vn -0.1262 0.0533 -0.9906 +vn -0.0430 0.0181 -0.9989 +vn -0.1685 0.0711 -0.9831 +vn 0.0043 1.0000 0.0032 +vn 0.0094 0.9999 0.0069 +vn 0.0158 0.9998 0.0116 +vn 0.6908 -0.0000 0.7231 +vn 0.9997 -0.0000 -0.0236 +vn 0.9745 0.2143 -0.0661 +vn 0.9856 0.1607 0.0534 +vn 0.0041 0.2804 0.9599 +vn -0.0168 -0.0144 0.9998 +vn -0.0038 0.0246 0.9997 +vn -0.0000 0.6819 0.7314 +vn -0.0000 0.8166 0.5771 +vn -0.0000 0.9998 0.0183 +vn 0.0018 -1.0000 -0.0003 +vn 0.0006 -1.0000 -0.0003 +vn -0.0000 0.0287 0.9996 +vn -0.0000 -0.0000 1.0000 +vn 0.9707 0.0306 0.2384 +vn 0.9724 0.0300 0.2313 +vn 0.9706 0.0306 0.2387 +vn -0.9718 -0.0648 -0.2266 +vn -0.9406 -0.2741 -0.2004 +vn -0.9404 -0.2741 -0.2012 +vn -0.9569 0.1475 -0.2503 +vn -0.9827 0.0237 0.1835 +vn -0.9812 0.0242 0.1915 +vn -0.9811 0.0243 0.1918 +vn 0.9831 -0.0601 -0.1729 +vn 0.9527 -0.2613 -0.1549 +vn 0.9832 -0.0589 -0.1726 +vn 0.9687 0.1448 -0.2018 +vn -0.0000 1.0000 -0.0045 +vn -0.0002 1.0000 -0.0045 +vn -0.0003 1.0000 -0.0045 +vn 0.9999 -0.0000 -0.0108 +vn 0.9999 -0.0126 -0.0065 +vn 0.0001 0.0285 0.9996 +vn 0.3645 -0.8229 0.4359 +vn 0.3824 -0.9234 -0.0325 +vn 0.3899 -0.9200 -0.0399 +vn 0.3612 -0.5353 0.7635 +vn 0.3238 -0.8590 0.3965 +vn 0.3752 -0.0534 0.9254 +vn 0.3106 -0.1017 0.9451 +vn 0.3251 -0.8385 -0.4373 +vn 0.9475 -0.2902 -0.1343 +vn 0.3836 0.7520 -0.5360 +vn 0.4112 0.5668 -0.7139 +vn 0.3864 0.6004 -0.7002 +vn -0.3535 -0.8400 0.4116 +vn -0.4504 -0.7240 0.5225 +vn -0.4720 -0.8446 0.2528 +vn -0.7143 -0.4904 -0.4994 +vn -0.2033 0.2636 -0.9430 +vn 0.9709 -0.2396 0.0042 +vn 0.8155 -0.4857 0.3146 +vn 0.7604 -0.6490 -0.0219 +vn 0.5391 0.8417 0.0301 +vn 0.7112 0.6632 0.2331 +vn 0.7465 0.6602 -0.0822 +vn 0.9303 -0.0631 0.3612 +vn 0.6451 -0.7067 0.2906 +vn 0.5792 -0.8137 0.0489 +vn 0.9600 0.2504 0.1255 +vn 0.9928 0.0081 0.1193 +vn -0.1143 -0.8962 0.4287 +vn -0.1749 -0.9587 0.2241 +vn -0.4743 0.8627 -0.1755 +vn 0.7043 -0.0757 0.7059 +vn 0.0227 0.9724 0.2321 +vn 0.8009 0.3815 0.4616 +vn 0.6057 0.6268 0.4902 +vn 0.7148 0.2916 0.6357 +vn 0.4741 0.8413 0.2598 +vn 0.5823 0.1248 0.8034 +vn 0.5530 -0.2778 0.7855 +vn 0.9983 -0.0196 0.0542 +vn 0.9948 0.0722 -0.0721 +vn 0.9990 0.0262 0.0369 +vn -0.0186 -0.9856 -0.1678 +vn 0.1023 -0.5718 -0.8140 +vn 0.0710 -0.5485 -0.8331 +vn 0.2596 -0.6742 -0.6914 +vn -0.0992 -0.4054 -0.9087 +vn 0.0756 0.5249 -0.8478 +vn -0.7970 -0.4900 -0.3531 +vn -0.7982 -0.4757 -0.3697 +vn -0.7937 -0.3528 -0.4955 +vn -0.8414 0.1993 0.5023 +vn -0.7328 -0.4461 0.5138 +vn 0.0886 -0.7667 0.6358 +vn 0.0340 -0.7415 0.6701 +vn -0.0879 -0.6726 0.7347 +vn 0.0707 0.9364 0.3438 +vn 0.7446 -0.4023 0.5326 +vn -0.3947 0.1141 0.9117 +vn -0.4336 0.3707 0.8213 +vn -0.4368 -0.1116 0.8926 +vn -0.4260 0.6842 0.5920 +vn -0.4453 0.7326 0.5148 +vn -0.4612 0.8601 0.2182 +vn -0.4286 -0.4827 0.7638 +vn -0.3904 -0.6018 0.6967 +vn -0.9862 0.1546 -0.0595 +vn -0.9704 0.1800 -0.1609 +vn -0.9787 0.0457 -0.2004 +vn -0.3978 -0.2910 0.8701 +vn -0.9760 0.0768 0.2039 +vn -0.9928 0.0800 0.0891 +vn -0.9843 -0.0923 0.1501 +vn -0.9770 0.1691 0.1297 +vn -0.9805 0.1957 0.0197 +vn -0.9841 0.1321 -0.1188 +vn 0.8076 -0.5742 0.1343 +vn -0.4924 0.8275 -0.2696 +vn -0.4715 0.7025 -0.5330 +vn -0.4923 0.8705 -0.0008 +vn -0.4055 0.3268 -0.8537 +vn -0.4074 0.6839 -0.6052 +vn -0.3904 0.3924 -0.8329 +vn -0.9479 0.1166 -0.2965 +vn -0.9627 -0.0337 -0.2685 +vn -0.3664 -0.9304 -0.0060 +vn -0.4430 -0.8965 -0.0008 +vn -0.3910 -0.8562 -0.3376 +vn -0.3986 0.9170 -0.0151 +vn -0.4328 -0.1135 -0.8943 +vn -0.3536 0.0743 -0.9324 +vn -0.3524 -0.2441 -0.9035 +vn -0.3539 -0.8766 -0.3259 +vn -0.3830 -0.6564 -0.6499 +vn -0.0178 0.5246 0.8512 +vn -0.0065 0.5136 0.8580 +vn 0.1034 0.3997 0.9108 +vn -0.5086 -0.4131 -0.7555 +vn -0.3916 0.8853 -0.2509 +vn 0.7564 -0.2088 -0.6199 +vn 0.7906 -0.4557 -0.4091 +vn 0.5978 -0.5372 -0.5951 +vn 0.5275 0.8051 -0.2713 +vn 0.6522 0.5935 -0.4716 +vn 0.7920 0.0346 -0.6095 +vn 0.9097 -0.1437 -0.3896 +vn 0.9148 0.3531 -0.1960 +vn 0.8482 0.1887 -0.4949 +vn 0.9826 0.0939 -0.1604 +vn 0.7193 -0.6460 -0.2555 +vn -0.4108 0.8642 0.2906 +vn -0.9773 -0.2010 0.0668 +vn -0.9808 0.1178 0.1555 +vn -0.9847 -0.0910 -0.1484 +vn 0.0175 0.1523 0.9882 +vn 0.0189 0.1480 0.9888 +vn 0.0158 0.1575 0.9874 +vn 0.1247 0.9722 0.1981 +vn -0.0566 0.8810 0.4698 +vn -0.1013 0.9636 0.2475 +vn 0.1630 0.7564 0.6335 +vn -0.2727 -0.4961 0.8243 +vn -0.3054 -0.4608 0.8333 +vn -0.3051 -0.4610 0.8333 +vn 0.0442 -0.7714 -0.6348 +vn 0.2009 -0.7448 -0.6364 +vn 0.0073 -0.7946 -0.6071 +vn 0.4431 -0.5555 -0.7036 +vn 0.4072 -0.7605 -0.5058 +vn 0.4200 0.3517 -0.8366 +vn -0.0539 -0.9955 -0.0777 +vn -0.0050 -0.0231 -0.9997 +vn -0.0411 -0.0778 -0.9961 +vn -0.0039 -0.0116 -0.9999 +vn 0.9552 0.2647 0.1322 +vn 0.9820 0.0741 0.1735 +vn 0.9103 -0.3820 0.1595 +vn -0.9902 -0.1279 -0.0562 +vn -0.9752 -0.1999 0.0954 +vn 0.4056 0.4477 0.7969 +vn 0.3645 0.6106 0.7030 +vn 0.3479 0.2792 0.8950 +vn 0.3710 -0.0480 0.9274 +vn 0.3360 -0.1276 0.9332 +vn -0.9689 -0.1862 -0.1627 +vn -0.8509 -0.4771 0.2199 +vn -0.8390 -0.3515 0.4155 +vn -0.7941 -0.6074 -0.0220 +vn -0.7314 -0.6814 -0.0284 +vn 0.1650 0.1265 0.9782 +vn -0.1847 -0.1259 -0.9747 +vn -0.2334 0.1254 0.9643 +vn 0.2329 -0.1253 -0.9644 +vn -1.0000 -0.0000 -0.0000 +vn -0.3691 0.0072 0.9294 +vn -0.3681 -0.1730 0.9135 +vn -0.3813 0.0112 0.9244 +vn 0.0081 0.4087 -0.9126 +vn -0.0087 0.1110 -0.9938 +vn -0.0703 0.2353 -0.9694 +vn -0.1176 -0.6420 -0.7576 +vn -0.2294 -0.6967 -0.6797 +vn -0.0742 -0.3024 -0.9503 +vn -0.9013 -0.1377 -0.4107 +vn -0.9578 0.1185 -0.2619 +vn -0.9954 -0.0943 0.0135 +vn -0.9961 0.0875 -0.0078 +vn -0.9976 0.0018 -0.0688 +vn 0.4916 0.8526 0.1771 +vn 0.7603 0.5524 0.3418 +vn 0.4699 0.8139 0.3418 +vn -0.9453 -0.3189 -0.0685 +vn -0.9656 -0.2596 0.0143 +vn -0.9825 -0.1716 -0.0729 +vn -0.9897 0.1273 -0.0651 +vn -0.9905 0.1182 0.0706 +vn -0.0008 0.0024 -1.0000 +vn 0.0030 -0.0002 -1.0000 +vn -0.0004 0.0015 -1.0000 +vn 0.9994 -0.0340 0.0001 +vn 0.9976 -0.0490 0.0498 +vn 0.9977 -0.0090 -0.0678 +vn 0.7339 -0.3981 0.5504 +vn 0.7631 -0.3508 0.5427 +vn 0.7666 -0.3449 0.5416 +vn 0.7953 -0.2921 0.5311 +vn 0.9956 -0.0616 0.0709 +vn 0.9946 -0.0619 0.0838 +vn -0.9288 -0.3706 0.0013 +vn -0.3508 0.1838 0.9183 +vn -0.4838 -0.6747 0.5575 +vn -0.2608 -0.6421 0.7209 +vn -0.4930 -0.7244 0.4818 +vn -0.3317 0.1682 0.9283 +vn -0.5165 -0.7079 0.4818 +vn -0.4492 -0.8152 0.3657 +vn -0.9362 -0.0121 0.3512 +vn -0.9689 -0.1148 0.2191 +vn -0.9240 -0.1016 0.3686 +vn -0.6115 -0.6564 0.4419 +vn -0.9615 0.0292 0.2733 +vn -0.9096 0.1065 0.4017 +vn -0.9940 -0.0119 0.1085 +vn -0.9546 -0.2834 0.0921 +vn -0.3090 0.9510 0.0075 +vn -0.0798 0.9967 0.0149 +vn -0.0562 0.9878 0.1452 +vn 0.7964 0.5785 0.1765 +vn 0.5090 0.8608 0.0009 +vn 0.8156 0.5786 -0.0003 +vn 0.1107 0.9938 0.0038 +vn -0.0973 0.9952 0.0063 +vn -0.0089 0.9999 -0.0131 +vn -0.0061 0.9998 -0.0194 +vn -0.0082 0.9999 -0.0112 +vn -0.0015 -1.0000 -0.0078 +vn 0.9727 -0.0298 -0.2303 +vn 0.9144 0.4047 -0.0014 +vn 0.9573 0.2818 -0.0644 +vn -0.0000 0.0003 -1.0000 +vn 0.0017 -0.0004 -1.0000 +vn 0.3765 -0.9264 -0.0019 +vn 0.3764 -0.9265 -0.0019 +vn 0.3729 -0.9279 -0.0004 +vn -0.2531 0.9674 0.0009 +vn -0.2513 0.9679 0.0026 +vn 1.0000 -0.0078 -0.0000 +vn -0.0289 -0.9544 -0.2971 +vn 0.9578 -0.0498 0.2830 +vn 0.9748 -0.1065 0.1962 +vn 0.9794 -0.1467 0.1386 +vn 0.0366 -0.9983 -0.0449 +vn 0.6564 -0.7386 0.1537 +vn 0.6364 -0.7514 0.1742 +vn 0.7025 -0.7055 0.0938 +vn 0.0953 -0.9812 -0.1677 +vn 0.9996 0.0274 -0.0007 +vn -0.8144 0.5325 0.2308 +vn -0.8095 0.5871 -0.0023 +vn -0.5896 0.7650 0.2591 +vn 0.0018 -0.9998 -0.0192 +vn -0.0208 -0.9998 -0.0019 +vn -0.4087 0.9125 -0.0194 +vn -0.5149 0.8572 -0.0124 +vn -0.2777 0.9606 -0.0037 +vn -0.0033 0.0009 1.0000 +vn 0.0002 0.0019 1.0000 +vn 0.0023 -0.0006 1.0000 +vn -0.5307 0.8474 -0.0129 +vn -0.7030 0.7110 -0.0176 +vn -1.0000 -0.0000 0.0006 +vn -0.6231 -0.7821 -0.0009 +vn -0.5582 -0.8297 0.0038 +vn -0.6170 -0.7870 0.0022 +vn -0.6759 -0.7370 -0.0012 +vn -0.0275 0.0087 -0.9996 +vn -0.0296 0.0198 -0.9994 +vn -0.0484 -0.0011 -0.9988 +vn -0.3797 0.9250 0.0118 +vn -0.3797 0.9251 0.0118 +vn 0.9811 0.1910 -0.0305 +vn -0.1496 -0.9299 -0.3359 +vn 1.0000 -0.0000 -0.0012 +vn -0.5021 -0.8391 0.2096 +vn 0.9071 -0.4209 -0.0000 +vn 0.6429 -0.7367 0.2095 +vn -0.9748 0.2231 -0.0000 +vn -0.7820 0.5870 0.2095 +vn -0.7998 0.6003 -0.0000 +vn -0.4756 0.8543 0.2096 +vn 0.8869 -0.4116 0.2096 +vn -0.8181 -0.5751 -0.0000 +vn -0.9595 -0.1884 0.2096 +vn -0.9813 -0.1926 -0.0000 +vn 0.9198 0.3925 -0.0000 +vn 0.9999 -0.0156 -0.0000 +vn -0.9532 0.2182 0.2095 +vn -0.7422 -0.5218 0.4205 +vn -0.4658 -0.7786 0.4205 +vn 0.2938 0.8584 0.4206 +vn -0.1089 -0.9006 0.4207 +vn 0.5965 -0.6836 0.4205 +vn 0.2668 -0.8671 0.4207 +vn -0.0808 0.9037 0.4205 +vn -0.7256 0.5447 0.4205 +vn -0.4413 0.7927 0.4206 +vn 0.7284 -0.5468 0.4129 +vn -0.8844 0.2025 0.4205 +vn -0.8903 -0.1748 0.4205 +vn 0.8127 0.5822 -0.0226 +vn 0.9192 0.3930 -0.0260 +vn 0.6795 0.7334 -0.0226 +vn -0.9151 -0.4032 0.0002 +vn -0.5148 -0.8573 -0.0017 +vn -0.6723 -0.7403 -0.0047 +vn -0.7999 -0.5623 0.2096 +vn -0.5135 -0.8581 -0.0000 +vn -0.2772 -0.9608 -0.0095 +vn 0.2928 -0.9561 -0.0124 +vn 0.1018 -0.9947 -0.0147 +vn 0.5061 0.8623 -0.0183 +vn 0.3221 0.9465 -0.0176 +vn -0.1219 -0.9925 -0.0072 +vn -0.3020 0.9533 -0.0069 +vn -0.0908 0.9958 -0.0117 +vn -0.4878 0.8729 -0.0061 +vn 0.1119 0.9936 -0.0127 +vn -0.6639 0.7478 -0.0018 +vn 0.6560 -0.7546 -0.0175 +vn 0.4648 -0.8852 -0.0210 +vn 0.7449 0.5238 0.4132 +vn 0.6175 0.6647 0.4205 +vn 0.9060 -0.4227 -0.0238 +vn 0.8056 -0.5920 -0.0240 +vn 0.9791 0.2020 -0.0249 +vn 0.9995 -0.0156 -0.0271 +vn 0.9768 -0.2129 -0.0249 +vn -1.0000 0.0056 0.0030 +vn -0.9813 -0.1923 0.0008 +vn -0.8180 -0.5753 0.0005 +vn 0.7549 -0.5549 -0.3495 +vn 0.3335 -0.5851 0.7392 +vn 0.0667 -0.6702 0.7392 +vn -0.6138 0.2774 0.7392 +vn -0.4535 -0.4980 0.7392 +vn -0.2117 -0.6394 0.7392 +vn -0.6735 0.0038 0.7392 +vn 0.6580 -0.1437 0.7392 +vn 0.5426 -0.3989 0.7392 +vn -0.6168 -0.2705 0.7392 +vn -0.2117 -0.6393 0.7392 +vn 0.6595 0.1364 0.7392 +vn 0.5471 0.3928 0.7392 +vn 0.6595 0.1363 0.7392 +vn -0.6735 0.0037 0.7392 +vn 0.4925 -0.8703 -0.0044 +vn 0.8057 -0.5923 -0.0000 +vn 0.9770 -0.2134 -0.0000 +vn 0.8123 0.5833 -0.0000 +vn 0.9793 0.2025 -0.0000 +vn 0.5048 0.8632 -0.0000 +vn 0.1106 0.9939 0.0008 +vn -0.3042 0.9526 0.0008 +vn -0.6650 0.7469 -0.0000 +vn -0.9113 0.4118 -0.0000 +vn -1.0000 0.0056 -0.0000 +vn -0.9999 -0.0100 0.0011 +vn -0.9226 -0.3347 -0.1916 +vn -0.9843 0.1762 0.0141 +vn 0.0493 -0.3646 -0.9299 +vn -0.3572 -0.4007 0.8437 +vn -0.9407 0.2753 0.1981 +vn 0.9799 0.1650 -0.1122 +vn -0.3968 0.7908 -0.4661 +vn -0.8892 0.3724 -0.2657 +vn -0.7649 -0.6180 -0.1816 +vn 0.1875 -0.8034 0.5651 +vn 0.9621 -0.1015 0.2532 +vn 0.6808 0.3512 -0.6427 +vn 0.4103 0.6956 -0.5898 +vn -0.4863 -0.6284 -0.6071 +vn -0.9748 -0.2230 -0.0024 +vn -0.9088 -0.3885 -0.1520 +vn -0.9670 -0.0055 0.2547 +vn -0.9595 -0.1390 0.2450 +vn -0.4087 0.4417 0.7987 +vn -0.7515 -0.6337 -0.1835 +vn -0.7690 -0.6052 -0.2058 +vn 0.4685 0.2949 -0.8328 +vn 0.9838 0.0412 0.1746 +vn 0.3757 0.6927 0.6157 +vn 0.3094 0.7720 0.5552 +vn -0.8068 -0.3446 0.4799 +vn -0.7864 -0.2399 0.5692 +vn 0.8992 0.4004 0.1767 +vn 0.9136 0.4067 -0.0020 +vn 0.0621 0.8997 0.4320 +vn 0.0030 0.9404 0.3401 +vn 0.1573 0.9267 0.3412 +vn 0.8607 0.3833 0.3351 +vn -0.4473 -0.8943 -0.0147 +vn -0.4752 -0.8212 -0.3159 +vn 0.7858 0.1059 0.6093 +vn 0.8061 0.1543 0.5712 +vn 0.8449 0.2860 0.4521 +vn 0.0037 -0.0020 1.0000 +vn 0.0015 -0.0014 1.0000 +vn 0.0012 0.0035 1.0000 +vn -0.0046 -1.0000 -0.0023 +vn 0.5077 0.8616 -0.0000 +vn 0.3499 0.9368 -0.0000 +vn 0.0001 -0.0000 1.0000 +vn -0.0000 -0.0001 1.0000 +vn 0.0827 -0.0776 0.9935 +vn 0.0277 -0.0409 0.9988 +vn 0.0457 -0.0116 0.9989 +vn 0.0855 -0.9899 -0.1130 +vn -1.0000 -0.0016 -0.0001 +vn -1.0000 -0.0018 -0.0001 +vn -1.0000 0.0043 0.0001 +vn 0.1047 0.9631 0.2481 +vn 0.1599 0.9869 0.0225 +vn -0.8746 -0.3672 -0.3166 +vn -0.9735 0.2134 -0.0821 +vn -0.9706 -0.1246 -0.2062 +vn 0.0144 -0.9998 -0.0158 +vn -0.0010 -0.9999 -0.0158 +vn 0.0077 -0.9999 0.0101 +vn -0.0034 -1.0000 0.0041 +vn 0.0251 -0.9777 0.2085 +vn 0.9978 -0.0667 0.0025 +vn 0.9990 -0.0249 0.0367 +vn 1.0000 0.0030 0.0092 +vn -1.0000 -0.0072 0.0035 +vn -0.9999 -0.0151 -0.0013 +vn -0.9995 0.0309 0.0025 +vn 0.5280 -0.8468 0.0645 +vn 0.6505 -0.7359 0.1878 +vn 0.6366 -0.7513 0.1741 +vn 0.2913 0.9566 -0.0036 +vn 0.3038 0.9527 0.0077 +vn 0.3420 0.9387 0.0424 +vn -0.0000 0.9999 -0.0143 +vn -0.0000 0.9993 -0.0384 +vn -0.0006 -0.0028 -1.0000 +vn -0.0001 -0.0003 -1.0000 +vn -0.0333 0.0351 -0.9988 +vn 0.6681 -0.7142 0.2089 +vn -0.9994 0.0120 0.0331 +vn -0.9963 0.0214 0.0837 +vn -1.0000 -0.0029 0.0089 +vn 0.0003 -0.0013 1.0000 +vn -0.0002 -0.0014 1.0000 +vn 0.0001 -0.0002 1.0000 +vn 0.9999 0.0100 -0.0000 +vn 1.0000 0.0100 -0.0000 +vn 0.9123 0.4096 -0.0000 +vn 1.0000 0.0031 -0.0000 +vn 0.6668 0.7452 -0.0000 +vn 0.9148 -0.4038 -0.0000 +vn 0.6715 -0.7410 -0.0000 +vn 0.3120 -0.9501 -0.0000 +vn -0.1014 -0.9948 -0.0000 +vn -0.9775 -0.2110 -0.0000 +vn -0.9788 0.2048 -0.0000 +vn -0.8109 0.5852 -0.0000 +vn 0.3060 0.9520 -0.0000 +vn -0.1077 0.9942 -0.0000 +vn -0.4972 -0.8676 -0.0000 +vn -0.8072 -0.5903 -0.0000 +vn -0.5027 0.8644 -0.0000 +vn -0.9999 -0.0033 -0.0105 +vn -1.0000 -0.0071 -0.0049 +vn -0.9998 -0.0144 -0.0167 +vn -0.9998 0.0134 -0.0140 +vn -0.9995 -0.0234 -0.0191 +vn -0.9997 -0.0195 -0.0126 +vn 0.6871 -0.7262 -0.0214 +vn 0.9841 0.1539 -0.0890 +vn -0.0016 0.9952 -0.0981 +vn -0.9999 -0.0063 -0.0082 +vn -0.9996 -0.0298 -0.0002 +vn -0.0912 -0.7183 -0.6898 +vn 0.0295 -0.0027 0.9996 +vn 0.0264 -0.0028 0.9996 +vn 0.0065 -0.0011 1.0000 +vn -0.0094 0.0173 0.9998 +vn -0.0091 0.0192 0.9998 +vn -0.0083 0.0185 0.9998 +vn -0.0872 -0.9909 -0.1022 +vn -0.0034 0.0158 -0.9999 +vn 0.0058 0.0162 -0.9999 +vn 0.8936 0.1754 0.4131 +vn 0.8878 -0.2032 0.4130 +vn 0.0937 -0.9323 -0.3495 +vn 0.4730 0.8088 -0.3494 +vn -0.0033 1.0000 -0.0003 +vn -0.0034 1.0000 -0.0000 +vn 0.9851 0.0990 -0.1407 +vn -0.0002 0.6962 -0.7178 +vn -0.0000 0.9980 -0.0625 +vn 0.0048 -1.0000 -0.0019 +vn 0.0040 -1.0000 -0.0011 +vn -0.0002 -0.0027 1.0000 +vn 0.0011 -0.0025 1.0000 +vn 0.5284 0.8490 -0.0032 +vn 0.7972 0.6037 -0.0000 +vn -0.0000 0.0164 -0.9999 +vn -0.0000 0.0327 0.9995 +vn -0.0000 0.2852 0.9585 +vn 0.0224 0.0333 0.9992 +vn -0.0032 -1.0000 -0.0000 +vn 0.9725 0.0300 0.2310 +vn -0.9719 -0.0648 -0.2263 +vn -0.9828 0.0237 0.1831 +vn 0.9525 -0.2613 -0.1562 +vn 0.9686 0.1448 -0.2022 +vn 0.9995 -0.0310 -0.0002 +vn 0.9999 -0.0065 -0.0086 +vn 0.3996 -0.4929 0.7729 +vn 0.3836 0.7520 -0.5361 +vn 0.3828 0.7516 -0.5373 +vn -0.0973 0.5972 0.7962 +vn 0.0212 0.1409 0.9898 +vn 0.0081 -0.0203 -0.9998 +vn 0.0110 -0.0303 -0.9995 +vn 0.0166 -0.0264 -0.9995 +vn -0.0082 0.0052 -1.0000 +vn -0.0189 0.0031 -0.9998 +vn -0.0053 0.0052 -1.0000 +vn 0.0165 -0.0264 -0.9995 +vn 0.0083 -0.0203 -0.9998 +vn -0.3623 -0.1676 0.9169 +vn 0.0201 -0.0057 -0.9998 +vn 0.0081 -0.0023 -1.0000 +vn 0.0006 0.0033 -1.0000 +vn -0.0003 0.0030 -1.0000 +vn 0.0015 0.9999 -0.0103 +vn -0.0032 1.0000 -0.0016 +vn -0.0030 -1.0000 -0.0016 +vn 0.9140 0.4056 -0.0016 +vn 0.9538 -0.1365 -0.2676 +vn 0.9537 -0.0289 -0.2993 +vn 0.9503 -0.0000 -0.3113 +vn 0.0142 0.0012 -0.9999 +vn 0.0115 -0.0069 -0.9999 +vn 0.0176 -0.0074 -0.9998 +vn 0.0191 0.0055 -0.9998 +vn -0.0113 -0.0062 -0.9999 +vn 0.0180 -0.0102 -0.9998 +vn 0.0063 0.0012 -1.0000 +vn 0.0379 -0.0230 -0.9990 +vn 0.0357 -0.0342 -0.9988 +vn -0.3729 0.9279 0.0038 +vn -0.3747 0.9272 0.0019 +vn 0.9100 -0.0505 0.4116 +vn 0.9151 -0.0470 0.4004 +vn 0.9908 0.1342 0.0165 +vn 0.9848 0.1740 -0.0006 +vn 0.9875 -0.1094 0.1136 +vn 0.6233 -0.7423 0.2458 +vn -0.0163 -0.9997 -0.0158 +vn 0.9996 0.0275 -0.0007 +vn 0.9998 0.0175 -0.0011 +vn 0.9998 0.0178 -0.0011 +vn 1.0000 0.0003 -0.0000 +vn -0.2911 0.8960 0.3352 +vn -0.4699 0.8139 0.3418 +vn -0.6854 0.5137 0.5161 +vn -0.8607 0.3832 0.3352 +vn -0.9136 0.4067 0.0003 +vn -0.6691 0.7432 0.0032 +vn -0.0014 -0.0017 1.0000 +vn -0.0079 0.0242 0.9997 +vn 0.0113 -0.0005 0.9999 +vn 0.0052 -0.0017 1.0000 +vn 0.0100 0.0008 1.0000 +vn 0.0219 0.0098 0.9997 +vn -0.0028 -0.0002 1.0000 +vn -0.0030 -0.0004 1.0000 +vn -0.0126 0.0217 0.9997 +vn -0.0078 0.0066 0.9999 +vn -0.0053 0.0017 1.0000 +vn -0.0021 -0.0010 1.0000 +vn -0.6258 0.7800 -0.0036 +vn -0.5583 -0.8296 0.0038 +vn -0.6874 -0.7262 -0.0075 +vn -0.0714 -0.0027 -0.9974 +vn -0.0683 -0.0028 -0.9977 +vn -0.0323 0.0156 -0.9994 +vn -0.0347 0.0174 -0.9992 +vn -0.0184 0.0055 -0.9998 +vn -0.9071 0.4209 -0.0000 +vn 0.7450 0.5238 0.4131 +vn 0.7063 -0.0395 0.7068 +vn 0.0006 0.0003 1.0000 +vn -0.0023 0.0048 1.0000 +vn -0.0101 0.0039 0.9999 +vn -0.0031 0.0053 1.0000 +vn 0.0067 0.0043 1.0000 +vn 0.0064 -0.0029 1.0000 +vn -0.0000 0.0001 1.0000 +vn -0.0001 -0.0000 1.0000 +vn -0.0002 -0.0001 1.0000 +vn -0.0003 -0.0004 1.0000 +vn 0.0003 -0.0004 1.0000 +vn 0.0002 -0.0001 1.0000 +vn 0.0502 0.0051 0.9987 +vn 0.0605 0.0030 0.9982 +vn 0.0473 0.0051 0.9989 +vn 0.0162 -0.0329 0.9993 +vn 0.0467 -0.0229 0.9986 +vn -0.9999 0.0167 -0.0002 +vn -0.9999 0.0166 -0.0002 +vn -0.9346 0.3557 -0.0000 +vn -0.9342 0.3568 -0.0002 +vn -0.9545 -0.0094 -0.2980 +vn -0.9584 -0.0547 -0.2802 +vn 0.0014 -0.9967 0.0809 +vn -0.0131 -0.9999 0.0094 +vn -0.0467 -0.9980 -0.0425 +vn -0.0167 -0.9667 -0.2554 +vn 0.0010 -0.9859 0.1676 +vn -0.0332 -0.9994 -0.0085 +vn 0.0598 -0.9982 -0.0001 +vn 0.9880 -0.1342 0.0770 +vn 0.9993 -0.0247 0.0276 +vn 0.9773 -0.2038 0.0573 +vn 0.9690 -0.2315 0.0865 +vn 0.9725 -0.2239 0.0642 +vn -0.9909 0.1330 0.0213 +vn -0.9936 0.1103 0.0229 +vn -0.9972 0.0742 -0.0029 +vn -0.9985 0.0524 0.0149 +vn -1.0000 -0.0049 0.0037 +vn -0.9999 -0.0116 -0.0006 +vn -1.0000 -0.0051 0.0015 +vn -1.0000 0.0016 -0.0005 +vn 0.2611 0.9648 -0.0304 +vn 0.0092 -0.0671 -0.9977 +vn -0.0097 0.0008 -1.0000 +vn 0.0014 -0.0563 -0.9984 +vn -0.0066 0.0063 -1.0000 +vn -0.0167 0.0132 -0.9998 +vn 0.0191 -0.0579 -0.9981 +vn -0.0261 -0.0183 -0.9995 +vn -0.0460 0.0158 -0.9988 +vn -0.2141 0.0549 -0.9753 +vn -0.2055 0.0399 -0.9779 +vn -0.0823 0.0220 -0.9964 +vn -0.0581 -0.0022 -0.9983 +vn -0.0202 0.1220 -0.9923 +vn -0.0008 -0.0015 -1.0000 +vn 0.0166 0.2081 -0.9780 +vn 0.0201 0.1943 -0.9807 +vn -0.0022 0.2634 -0.9647 +vn -0.9850 0.1712 0.0195 +vn -0.9776 0.2095 0.0217 +vn -0.9378 -0.0362 0.3452 +vn -0.9241 -0.0466 0.3792 +vn 0.0002 -0.0007 1.0000 +vn 0.0024 -0.0026 1.0000 +vn -0.0002 -0.0000 1.0000 +vn -0.0003 -0.0009 1.0000 +vt 0.296448 0.102843 +vt 0.381104 0.047947 +vt 0.035834 0.368077 +vt 0.260019 0.614243 +vt 0.318792 0.625190 +vt 0.275800 0.672218 +vt 0.064766 0.305619 +vt 0.214319 0.161856 +vt 0.375342 0.030583 +vt 0.007698 0.338314 +vt 0.029408 0.318256 +vt 0.043335 0.310187 +vt 0.318905 0.667648 +vt 0.252574 0.694311 +vt 0.236882 0.637031 +vt 0.150287 0.628071 +vt 0.161490 0.706348 +vt 0.155366 0.668298 +vt 0.158302 0.652484 +vt 0.161554 0.687117 +vt 0.159356 0.670738 +vt 0.177046 0.635712 +vt 0.113858 0.672367 +vt 0.172255 0.628996 +vt 0.099369 0.633504 +vt 0.170505 0.620102 +vt 0.100245 0.588370 +vt 0.172087 0.610476 +vt 0.193985 0.511804 +vt 0.184343 0.596378 +vt 0.152646 0.515062 +vt 0.206820 0.627110 +vt 0.277410 0.625302 +vt 0.267428 0.666574 +vt 0.192657 0.639020 +vt 0.171748 0.713811 +vt 0.184184 0.639184 +vt 0.199912 0.595309 +vt 0.231216 0.519947 +vt 0.209484 0.608292 +vt 0.277410 0.583179 +vt 0.201008 0.635047 +vt 0.169178 0.452166 +vt 0.078800 0.768428 +vt 0.075894 0.452870 +vt 0.064099 0.767980 +vt 0.061196 0.452764 +vt 0.323553 0.069332 +vt 0.329659 0.048130 +vt 0.388490 0.045773 +vt 0.180052 0.766554 +vt 0.293930 0.450084 +vt 0.291558 0.766986 +vt 0.365394 0.036567 +vt 0.393169 0.043399 +vt 0.379297 0.054638 +vt 0.379304 0.071635 +vt 0.371065 0.062010 +vt 0.668046 0.738449 +vt 0.668026 0.728691 +vt 0.697871 0.729790 +vt 0.325815 0.430384 +vt 0.338798 0.430384 +vt 0.336684 0.785453 +vt 0.343554 0.027453 +vt 0.375485 0.025070 +vt 0.355937 0.047164 +vt 0.281354 0.120599 +vt 0.298249 0.138538 +vt 0.063679 0.307987 +vt 0.047021 0.304828 +vt 0.197459 0.172409 +vt 0.116186 0.647469 +vt 0.167094 0.533190 +vt 0.144756 0.611156 +vt 0.083961 0.329606 +vt 0.085997 0.346730 +vt 0.067528 0.358456 +vt 0.073363 0.319224 +vt 0.058636 0.333248 +vt 0.211458 0.187373 +vt 0.005853 0.351113 +vt 0.046154 0.345112 +vt 0.037898 0.385539 +vt 0.725084 0.164647 +vt 0.723553 0.158385 +vt 0.727062 0.163206 +vt 0.711602 0.183175 +vt 0.715876 0.183996 +vt 0.710769 0.185812 +vt 0.739821 0.127397 +vt 0.753782 0.142282 +vt 0.706307 0.182228 +vt 0.698730 0.216346 +vt 0.685786 0.204282 +vt 0.718775 0.155720 +vt 0.715259 0.221941 +vt 0.713491 0.155905 +vt 0.722526 0.120807 +vt 0.715955 0.186917 +vt 0.733490 0.219325 +vt 0.708645 0.158709 +vt 0.704953 0.122675 +vt 0.721039 0.185231 +vt 0.750106 0.207316 +vt 0.705023 0.163741 +vt 0.689598 0.132342 +vt 0.727836 0.175925 +vt 0.725106 0.181335 +vt 0.703336 0.169962 +vt 0.678716 0.148426 +vt 0.728637 0.169479 +vt 0.760042 0.187005 +vt 0.703689 0.176461 +vt 0.674296 0.168043 +vt 0.761256 0.163594 +vt 0.681265 0.208398 +vt 0.676971 0.187712 +vt 0.743470 0.121033 +vt 0.695706 0.222422 +vt 0.723381 0.112937 +vt 0.714770 0.229775 +vt 0.702885 0.115790 +vt 0.736080 0.226501 +vt 0.685430 0.127255 +vt 0.755277 0.212407 +vt 0.673365 0.145709 +vt 0.766255 0.188961 +vt 0.751196 0.205325 +vt 0.760981 0.185314 +vt 0.755725 0.210130 +vt 0.767870 0.162564 +vt 0.483959 0.110852 +vt 0.969960 0.121605 +vt 0.483787 0.118039 +vt 0.484212 0.175076 +vt 0.969565 0.167729 +vt 0.969630 0.173987 +vt 0.484952 0.119474 +vt 0.970126 0.130178 +vt 0.484753 0.126396 +vt 0.484329 0.181867 +vt 0.969728 0.180245 +vt 0.969960 0.136435 +vt 0.484458 0.133149 +vt 0.484471 0.188497 +vt 0.969847 0.186503 +vt 0.969796 0.142694 +vt 0.484387 0.139652 +vt 0.484622 0.195187 +vt 0.969975 0.192760 +vt 0.969665 0.148951 +vt 0.484246 0.146449 +vt 0.484770 0.202114 +vt 0.970101 0.199017 +vt 0.969579 0.155210 +vt 0.484148 0.153512 +vt 0.484907 0.209290 +vt 0.970219 0.205274 +vt 0.969540 0.161470 +vt 0.484103 0.160766 +vt 0.970306 0.211532 +vt 0.485009 0.216570 +vt 0.759437 0.138254 +vt 0.043825 0.574278 +vt 0.066391 0.622018 +vt 0.038510 0.624672 +vt 0.178363 0.485327 +vt 0.132179 0.524952 +vt 0.119564 0.496854 +vt 0.205193 0.738509 +vt 0.240940 0.692312 +vt 0.258566 0.716764 +vt 0.236791 0.498723 +vt 0.260084 0.551333 +vt 0.223314 0.526436 +vt 0.094770 0.548661 +vt 0.072289 0.528583 +vt 0.145225 0.738509 +vt 0.109974 0.690139 +vt 0.152169 0.707241 +vt 0.310309 0.578357 +vt 0.285685 0.625051 +vt 0.282244 0.585959 +vt 0.079910 0.659637 +vt 0.053992 0.673528 +vt 0.297153 0.677889 +vt 0.177850 0.517458 +vt 0.071684 0.582983 +vt 0.198662 0.708515 +vt 0.283142 0.531868 +vt 0.091276 0.714321 +vt 0.484133 0.168018 +vt 0.920731 0.597940 +vt 0.903938 0.543036 +vt 0.942946 0.580578 +vt 0.905043 0.780290 +vt 0.853566 0.769454 +vt 0.891577 0.755450 +vt 0.855245 0.526323 +vt 0.812701 0.559133 +vt 0.804567 0.531906 +vt 0.718087 0.662365 +vt 0.754338 0.618031 +vt 0.746375 0.662248 +vt 0.943559 0.742509 +vt 0.937649 0.684279 +vt 0.964783 0.690499 +vt 0.754744 0.706425 +vt 0.760609 0.764453 +vt 0.729498 0.718611 +vt 0.729002 0.606054 +vt 0.777975 0.581612 +vt 0.937145 0.639146 +vt 0.964783 0.632964 +vt 0.813680 0.764929 +vt 0.856535 0.797414 +vt 0.805776 0.792238 +vt 0.852526 0.554309 +vt 0.921362 0.725386 +vt 0.759688 0.560014 +vt 0.271796 0.663565 +vt 0.313734 0.629211 +vt 0.772519 0.110747 +vt 0.709912 0.117729 +vt 0.709912 0.110747 +vt 0.772519 0.117729 +vt 0.709912 0.124711 +vt 0.778726 0.742693 +vt 0.772519 0.124711 +vt 0.709912 0.131692 +vt 0.772519 0.131692 +vt 0.709912 0.138674 +vt 0.772519 0.138674 +vt 0.709912 0.145656 +vt 0.772519 0.145656 +vt 0.709912 0.152638 +vt 0.772519 0.152638 +vt 0.709912 0.159619 +vt 0.772519 0.159619 +vt 0.709912 0.166601 +vt 0.772519 0.166601 +vt 0.709912 0.173583 +vt 0.709912 0.180565 +vt 0.772519 0.173583 +vt 0.772519 0.180565 +vt 0.709912 0.187547 +vt 0.772519 0.187547 +vt 0.709912 0.194528 +vt 0.709912 0.201510 +vt 0.772519 0.194528 +vt 0.772519 0.201510 +vt 0.709912 0.208492 +vt 0.772519 0.208492 +vt 0.581093 0.645132 +vt 0.603781 0.639512 +vt 0.608740 0.661388 +vt 0.726981 0.174407 +vt 0.723067 0.177597 +vt 0.725165 0.173608 +vt 0.727752 0.169119 +vt 0.725819 0.169174 +vt 0.726656 0.164150 +vt 0.724946 0.165095 +vt 0.723836 0.160349 +vt 0.722687 0.162043 +vt 0.719758 0.158341 +vt 0.719376 0.160520 +vt 0.715092 0.158507 +vt 0.715527 0.160721 +vt 0.710689 0.160853 +vt 0.711840 0.162704 +vt 0.707359 0.164961 +vt 0.705935 0.175548 +vt 0.707675 0.170501 +vt 0.707942 0.174918 +vt 0.705716 0.170151 +vt 0.709047 0.166164 +vt 0.725435 0.158006 +vt 0.728801 0.162746 +vt 0.762432 0.162790 +vt 0.730144 0.168771 +vt 0.755795 0.142495 +vt 0.706247 0.182073 +vt 0.698598 0.218101 +vt 0.684639 0.205881 +vt 0.720407 0.155568 +vt 0.742762 0.127448 +vt 0.715944 0.186699 +vt 0.710628 0.185394 +vt 0.484476 0.179366 +vt 0.970192 0.175478 +vt 0.970245 0.181740 +vt 0.177028 0.485893 +vt 0.222095 0.526742 +vt 0.235358 0.499123 +vt 0.144451 0.739355 +vt 0.109116 0.691060 +vt 0.090460 0.715285 +vt 0.118256 0.497530 +vt 0.093555 0.549427 +vt 0.130944 0.525611 +vt 0.258511 0.551039 +vt 0.281310 0.531966 +vt 0.257165 0.717852 +vt 0.197884 0.709488 +vt 0.204249 0.739355 +vt 0.037408 0.625657 +vt 0.070523 0.583838 +vt 0.042609 0.575184 +vt 0.311181 0.630042 +vt 0.269794 0.664861 +vt 0.294508 0.679219 +vt 0.176623 0.517982 +vt 0.280183 0.585816 +vt 0.307659 0.577845 +vt 0.151381 0.708137 +vt 0.071004 0.529375 +vt 0.272542 0.756816 +vt 0.319458 0.454369 +vt 0.319458 0.756816 +vt 0.195505 0.728782 +vt 0.158795 0.772174 +vt 0.164003 0.723040 +vt 0.854491 0.798991 +vt 0.889910 0.757267 +vt 0.903185 0.782258 +vt 0.053035 0.674542 +vt 0.065319 0.622936 +vt 0.777220 0.743735 +vt 0.803814 0.793429 +vt 0.758935 0.765339 +vt 0.055645 0.560553 +vt 0.085835 0.571116 +vt 0.052945 0.594360 +vt 0.195487 0.652780 +vt 0.126933 0.516508 +vt 0.195505 0.516517 +vt 0.133283 0.633683 +vt 0.125966 0.664022 +vt 0.091024 0.690109 +vt 0.262609 0.630973 +vt 0.152787 0.575424 +vt 0.262609 0.575424 +vt 0.225552 0.202243 +vt 0.199418 0.586336 +vt 0.819994 0.746843 +vt 0.763814 0.730207 +vt 0.819994 0.730196 +vt 0.163478 0.695413 +vt 0.163446 0.561456 +vt 0.173352 0.560832 +vt 0.709548 0.178646 +vt 0.708231 0.179960 +vt 0.697912 0.746604 +vt 0.886978 0.568216 +vt 0.907767 0.564368 +vt 0.911018 0.585272 +vt 0.273287 0.553544 +vt 0.232715 0.507377 +vt 0.181062 0.777784 +vt 0.180989 0.432590 +vt 0.211081 0.695672 +vt 0.935628 0.547777 +vt 0.928335 0.534586 +vt 0.957061 0.514718 +vt 0.953673 0.541275 +vt 0.264483 0.609153 +vt 0.214574 0.720008 +vt 0.215429 0.609151 +vt 0.820524 0.552760 +vt 0.816236 0.564136 +vt 0.818580 0.604308 +vt 0.977054 0.746836 +vt 0.175301 0.801976 +vt 0.161807 0.439493 +vt 0.174456 0.439519 +vt 0.249368 0.572381 +vt 0.157624 0.676127 +vt 0.157559 0.572357 +vt 0.252242 0.555075 +vt 0.262949 0.582689 +vt 0.250389 0.588987 +vt 0.195569 0.516508 +vt 0.325918 0.542286 +vt 0.222901 0.642861 +vt 0.267417 0.588326 +vt 0.271105 0.564524 +vt 0.171193 0.685318 +vt 0.151737 0.608220 +vt 0.169451 0.570217 +vt 0.127832 0.649666 +vt 0.152545 0.627205 +vt 0.172283 0.627297 +vt 0.127832 0.675813 +vt 0.216734 0.725573 +vt 0.127832 0.725573 +vt 0.105909 0.462751 +vt 0.021077 0.782399 +vt 0.021077 0.462751 +vt 0.065793 0.457768 +vt 0.084619 0.458339 +vt 0.108210 0.782802 +vt 0.234271 0.474384 +vt 0.298671 0.450845 +vt 0.298671 0.474384 +vt 0.881052 0.748887 +vt 0.894087 0.499407 +vt 0.894087 0.786407 +vt 0.827150 0.688128 +vt 0.883392 0.752398 +vt 0.896428 0.789917 +vt 0.873114 0.583614 +vt 0.824810 0.684617 +vt 0.900819 0.796593 +vt 0.886821 0.542960 +vt 0.900819 0.504088 +vt 0.830423 0.604345 +vt 0.853632 0.607711 +vt 0.235549 0.782542 +vt 0.194646 0.438622 +vt 0.227326 0.431587 +vt 0.164786 0.785449 +vt 0.162663 0.430379 +vt 0.175655 0.430379 +vt 0.242453 0.765105 +vt 0.263009 0.523159 +vt 0.309742 0.542637 +vt 0.264154 0.457185 +vt 0.298591 0.506679 +vt 0.196716 0.498795 +vt 0.200462 0.439717 +vt 0.320799 0.580957 +vt 0.278448 0.589160 +vt 0.116297 0.654629 +vt 0.186553 0.635602 +vt 0.165229 0.682820 +vt 0.105918 0.485981 +vt 0.134656 0.504380 +vt 0.136066 0.481351 +vt 0.309429 0.714666 +vt 0.301416 0.537221 +vt 0.329610 0.511479 +vt 0.300178 0.485482 +vt 0.321744 0.702481 +vt 0.330347 0.665420 +vt 0.288229 0.669719 +vt 0.331049 0.569269 +vt 0.355610 0.485981 +vt 0.314563 0.455848 +vt 0.314762 0.619629 +vt 0.308023 0.582873 +vt 0.877023 0.547152 +vt 0.900329 0.554458 +vt 0.932482 0.511002 +vt 0.914183 0.524699 +vt 0.347823 0.569516 +vt 0.339103 0.628659 +vt 0.362347 0.651411 +vt 0.361841 0.618071 +vt 0.358811 0.683852 +vt 0.364007 0.586030 +vt 0.364503 0.554248 +vt 0.953081 0.541991 +vt 0.929418 0.567271 +vt 0.907393 0.539597 +vt 0.950784 0.536249 +vt 0.934390 0.516693 +vt 0.965839 0.506925 +vt 0.960858 0.575264 +vt 0.928899 0.592619 +vt 0.900072 0.564677 +vt 0.925604 0.545762 +vt 0.898703 0.524833 +vt 0.942330 0.573348 +vt 0.902608 0.570019 +vt 0.965839 0.575300 +vt 0.877278 0.537666 +vt 0.359814 0.520250 +vt 0.105918 0.586040 +vt 0.122763 0.606554 +vt 0.122160 0.568036 +vt 0.105918 0.651411 +vt 0.134501 0.651986 +vt 0.116857 0.686917 +vt 0.128578 0.540344 +vt 0.105918 0.519517 +vt 0.179299 0.610462 +vt 0.206268 0.646985 +vt 0.195687 0.585356 +vt 0.105918 0.554738 +vt 0.158694 0.599897 +vt 0.147941 0.550950 +vt 0.165834 0.671052 +vt 0.668850 0.167746 +vt 0.179299 0.594155 +vt 0.210315 0.672096 +vt 0.221813 0.605981 +vt 0.238193 0.651293 +vt 0.241063 0.616632 +vt 0.219795 0.566854 +vt 0.183376 0.447393 +vt 0.166142 0.483401 +vt 0.203060 0.490554 +vt 0.140665 0.679871 +vt 0.175223 0.708304 +vt 0.175223 0.447393 +vt 0.243353 0.585256 +vt 0.241335 0.554039 +vt 0.237966 0.475216 +vt 0.232297 0.447393 +vt 0.207928 0.489377 +vt 0.240476 0.513146 +vt 0.251532 0.481330 +vt 0.900465 0.507474 +vt 0.921065 0.518190 +vt 0.224365 0.534698 +vt 0.247604 0.683125 +vt 0.265852 0.521012 +vt 0.259271 0.647142 +vt 0.270424 0.558400 +vt 0.279577 0.636261 +vt 0.263947 0.602862 +vt 0.285541 0.597356 +vt 0.259965 0.475042 +vt 0.105918 0.683801 +vt 0.109995 0.708304 +vt 0.900607 0.554110 +vt 0.906244 0.530861 +vt 0.918100 0.552857 +vt 0.903498 0.502883 +vt 0.877735 0.522424 +vt 0.140284 0.563354 +vt 0.147562 0.537185 +vt 0.157422 0.547084 +vt 0.352558 0.651996 +vt 0.351599 0.694222 +vt 0.264200 0.103081 +vt 0.143507 0.615307 +vt 0.167506 0.692768 +vt 0.114162 0.579622 +vt 0.138423 0.558381 +vt 0.163878 0.517052 +vt 0.182157 0.540271 +vt 0.101175 0.495838 +vt 0.144662 0.457293 +vt 0.211297 0.516323 +vt 0.322901 0.436996 +vt 0.352558 0.538438 +vt 0.891052 0.677793 +vt 0.917004 0.511202 +vt 0.917004 0.792988 +vt 0.878415 0.705410 +vt 0.893073 0.634076 +vt 0.920336 0.516840 +vt 0.920336 0.798718 +vt 0.846158 0.681812 +vt 0.275288 0.572357 +vt 0.275288 0.624832 +vt 0.249398 0.594995 +vt 0.209176 0.709866 +vt 0.249368 0.676127 +vt 0.167421 0.491426 +vt 0.124294 0.471366 +vt 0.162808 0.460306 +vt 0.957061 0.564870 +vt 0.927904 0.563325 +vt 0.150752 0.576637 +vt 0.190834 0.577182 +vt 0.170151 0.604581 +vt 0.128181 0.582143 +vt 0.109668 0.601489 +vt 0.117887 0.576989 +vt 0.093949 0.599522 +vt 0.114144 0.574560 +vt 0.129560 0.603106 +vt 0.212519 0.604928 +vt 0.212519 0.558390 +vt 0.231646 0.613041 +vt 0.227152 0.648851 +vt 0.201506 0.617369 +vt 0.139457 0.483153 +vt 0.077627 0.552409 +vt 0.101353 0.474052 +vt 0.165272 0.528563 +vt 0.207887 0.557441 +vt 0.120923 0.575474 +vt 0.170479 0.601100 +vt 0.206597 0.460159 +vt 0.086526 0.503205 +vt 0.132175 0.499398 +vt 0.206821 0.490684 +vt 0.100525 0.547157 +vt 0.063972 0.533756 +vt 0.132613 0.525187 +vt 0.190409 0.519748 +vt 0.170804 0.556982 +vt 0.121105 0.677240 +vt 0.205558 0.648994 +vt 0.131040 0.698669 +vt 0.120791 0.604036 +vt 0.195827 0.623937 +vt 0.207649 0.610159 +vt 0.212359 0.602400 +vt 0.287078 0.712267 +vt 0.252897 0.802356 +vt 0.128758 0.712271 +vt 0.243796 0.777942 +vt 0.211881 0.741978 +vt 0.212506 0.605245 +vt 0.331206 0.533544 +vt 0.331202 0.809653 +vt 0.250386 0.590767 +vt 0.225808 0.675074 +vt 0.193918 0.686639 +vt 0.193915 0.675082 +vt 0.145648 0.587952 +vt 0.153023 0.628692 +vt 0.115329 0.787499 +vt 0.221666 0.444608 +vt 0.221666 0.787392 +vt 0.337913 0.036846 +vt 0.800736 0.658409 +vt 0.694096 0.708634 +vt 0.748012 0.622240 +vt 0.162198 0.707502 +vt 0.114327 0.626249 +vt 0.092619 0.489940 +vt 0.135367 0.489934 +vt 0.134341 0.490121 +vt 0.581829 0.656266 +vt 0.582205 0.643874 +vt 0.608643 0.657856 +vt 0.263579 0.448575 +vt 0.267297 0.448675 +vt 0.264232 0.688301 +vt 0.118691 0.632067 +vt 0.195676 0.634976 +vt 0.367186 0.436037 +vt 0.369064 0.435460 +vt 0.369064 0.446998 +vt 0.157595 0.652282 +vt 0.139370 0.699960 +vt 0.118811 0.545559 +vt 0.176974 0.602004 +vt 0.206796 0.712223 +vt 0.234698 0.802319 +vt 0.169544 0.439544 +vt 0.234698 0.439493 +vt 0.562797 0.641426 +vt 0.565453 0.666175 +vt 0.627405 0.667443 +vt 0.245196 0.803897 +vt 0.159624 0.441498 +vt 0.244492 0.440999 +vt 0.392020 0.638012 +vt 0.045367 0.655659 +vt 0.045367 0.638014 +vt 0.284583 0.452887 +vt 0.301479 0.768428 +vt 0.283085 0.768364 +vt 0.172083 0.767614 +vt 0.150875 0.627246 +vt 0.186150 0.587085 +vt 0.208564 0.688133 +vt 0.084286 0.450002 +vt 0.071571 0.766388 +vt 0.069521 0.449747 +vt 0.178000 0.449680 +vt 0.086339 0.766986 +vt 0.034390 0.322797 +vt 0.716106 0.183929 +vt 0.712436 0.180963 +vt 0.716024 0.181572 +vt 0.206153 0.600413 +vt 0.719885 0.180488 +vt 0.711682 0.182911 +vt 0.332646 0.435561 +vt 0.350092 0.816437 +vt 0.332646 0.816524 +vt 0.675346 0.188923 +vt 0.721672 0.185008 +vt 0.716280 0.222162 +vt 0.709349 0.158612 +vt 0.706700 0.120767 +vt 0.714728 0.155740 +vt 0.725522 0.119727 +vt 0.734665 0.217607 +vt 0.703313 0.169968 +vt 0.677441 0.147810 +vt 0.705383 0.163699 +vt 0.729202 0.175190 +vt 0.726116 0.180718 +vt 0.689513 0.130771 +vt 0.666470 0.167805 +vt 0.669341 0.191107 +vt 0.761656 0.138536 +vt 0.679626 0.211026 +vt 0.716559 0.229434 +vt 0.696121 0.224894 +vt 0.746698 0.120586 +vt 0.704784 0.113720 +vt 0.726339 0.112168 +vt 0.737338 0.224195 +vt 0.685433 0.125314 +vt 0.672199 0.144669 +vt 0.484104 0.145241 +vt 0.969961 0.144158 +vt 0.969947 0.150422 +vt 0.484567 0.193884 +vt 0.970285 0.200529 +vt 0.484542 0.200953 +vt 0.672631 0.168500 +vt 0.703606 0.176529 +vt 0.484495 0.207757 +vt 0.970229 0.213055 +vt 0.484456 0.214348 +vt 0.484131 0.152176 +vt 0.969979 0.156687 +vt 0.970252 0.206792 +vt 0.484297 0.165508 +vt 0.970044 0.162951 +vt 0.970121 0.169214 +vt 0.484202 0.158872 +vt 0.484393 0.172304 +vt 0.484786 0.111975 +vt 0.970932 0.118244 +vt 0.484720 0.118516 +vt 0.767252 0.187756 +vt 0.769124 0.162040 +vt 0.484617 0.116667 +vt 0.970142 0.131630 +vt 0.484400 0.123593 +vt 0.484136 0.138057 +vt 0.970029 0.137894 +vt 0.484235 0.130771 +vt 0.484536 0.186623 +vt 0.970285 0.188003 +vt 0.970306 0.194266 +vt 0.239668 0.693930 +vt 0.216734 0.675813 +vt 0.904289 0.545005 +vt 0.852814 0.555862 +vt 0.855781 0.527901 +vt 0.728248 0.719312 +vt 0.759854 0.560902 +vt 0.812928 0.560404 +vt 0.777973 0.582655 +vt 0.717332 0.663006 +vt 0.753583 0.707327 +vt 0.936896 0.641000 +vt 0.942805 0.582769 +vt 0.964030 0.634771 +vt 0.728744 0.606756 +vt 0.753991 0.618934 +vt 0.811945 0.766199 +vt 0.805021 0.533098 +vt 0.920609 0.599900 +vt 0.964030 0.692306 +vt 0.919977 0.727346 +vt 0.936391 0.686133 +vt 0.745620 0.663114 +vt 0.942193 0.744700 +vt 0.709912 0.215474 +vt 0.350146 0.436640 +vt 0.367133 0.806539 +vt 0.350190 0.806571 +vt 0.107097 0.627693 +vt 0.108184 0.620317 +vt 0.119453 0.618151 +vt 0.937565 0.584611 +vt 0.868521 0.556075 +vt 0.960858 0.512637 +vt 0.105918 0.617345 +vt 0.118984 0.476287 +vt 0.108501 0.453370 +vt 0.084558 0.560630 +vt 0.105941 0.596325 +vt 0.310102 0.447416 +vt 0.310102 0.708280 +vt 0.054717 0.479533 +vt 0.076264 0.466463 +vt 0.097811 0.465749 +vt 0.191332 0.627510 +vt 0.133562 0.719949 +vt 0.121285 0.705451 +vt 0.131344 0.555061 +vt 0.211034 0.500194 +vt 0.724507 0.179085 +vt 0.180789 0.604721 +vt 0.117261 0.569132 +vt 0.288234 0.549025 +vt 0.146500 0.588610 +vt 0.166408 0.803908 +vt 0.231871 0.441085 +vt 0.231871 0.803909 +vt 0.043980 0.638066 +vt 0.390629 0.657331 +vt 0.043980 0.657330 +vt 0.588528 0.681834 +vt 0.574882 0.676320 +vt 0.630206 0.655378 +vt 0.220758 0.706446 +vt 0.233541 0.771678 +vt 0.152011 0.579100 +vt 0.056424 0.367415 +vt 0.267316 0.448783 +vt 0.274784 0.448575 +vt 0.272279 0.536226 +vt 0.099764 0.465749 +vt 0.099764 0.794045 +vt 0.028991 0.741096 +vt 0.141547 0.711432 +vt 0.208794 0.655666 +vt 0.320795 0.572740 +vt 0.307950 0.589772 +vt 0.232351 0.532549 +vt 0.180003 0.767981 +vt 0.133760 0.767968 +vt 0.134369 0.493727 +vt 0.227815 0.649188 +vt 0.232268 0.612759 +vt 0.269325 0.704233 +vt 0.246728 0.630194 +vt 0.197348 0.602668 +vt 0.282628 0.491928 +vt 0.135289 0.489242 +vt 0.176745 0.631828 +vt 0.157863 0.655488 +vt 0.109154 0.440439 +vt 0.099688 0.459852 +vt 0.136487 0.446954 +vt 0.232297 0.708304 +vt 0.238974 0.683097 +vt 0.008480 0.800988 +vt 0.407403 0.447459 +vt 0.036793 0.828524 +vt 0.359842 0.504845 +vt 0.367112 0.469866 +vt 0.363822 0.620812 +vt 0.685894 0.604739 +vt 0.792590 0.651454 +vt 0.740616 0.688691 +vt 0.258538 0.547976 +vt 0.225461 0.484605 +vt 0.167856 0.484688 +vt 0.204303 0.450095 +vt 0.226143 0.444502 +vt 0.119805 0.787392 +vt 0.119805 0.444608 +vt 0.194262 0.588454 +vt 0.256279 0.552826 +vt 0.199364 0.595218 +vt 0.187505 0.584542 +vt 0.229036 0.526209 +vt 0.271948 0.591593 +vt 0.201797 0.603654 +vt 0.201242 0.612132 +vt 0.256321 0.674292 +vt 0.198121 0.619076 +vt 0.192992 0.623455 +vt 0.227234 0.703855 +vt 0.116170 0.673909 +vt 0.169500 0.610001 +vt 0.173624 0.617454 +vt 0.099949 0.631784 +vt 0.168259 0.601429 +vt 0.166956 0.518822 +vt 0.174141 0.587280 +vt 0.139178 0.530065 +vt 0.186474 0.624717 +vt 0.147997 0.705299 +vt 0.179823 0.622432 +vt 0.725826 0.175056 +vt 0.722153 0.178139 +vt 0.724044 0.174342 +vt 0.726387 0.169758 +vt 0.724491 0.169903 +vt 0.723385 0.165642 +vt 0.722202 0.160686 +vt 0.721012 0.162359 +vt 0.718280 0.158582 +vt 0.717854 0.160627 +vt 0.713972 0.158669 +vt 0.714406 0.160768 +vt 0.709989 0.161008 +vt 0.711191 0.162751 +vt 0.706988 0.165168 +vt 0.708677 0.166285 +vt 0.705490 0.170262 +vt 0.707388 0.170569 +vt 0.707675 0.175019 +vt 0.708001 0.180219 +vt 0.705848 0.175585 +vt 0.709457 0.178808 +vt 0.712362 0.181200 +vt 0.715822 0.181857 +vt 0.720089 0.182722 +vt 0.719269 0.180787 +vt 0.723539 0.179542 +vt 0.180390 0.584076 +vt 0.197163 0.515281 +vt 0.271948 0.634806 +vt 0.115685 0.553724 +vt 0.169944 0.593389 +vt 0.100883 0.588970 +vt 0.192291 0.593771 +vt 0.210252 0.617955 +vt 0.238889 0.694713 +vt 0.339891 0.033820 +vt 0.360458 0.014530 +vt 0.022446 0.385164 +vt 0.104553 0.285332 +vt 0.023490 0.369930 +vt 0.026427 0.358619 +vt 0.169356 0.207893 +vt 0.668329 0.747110 +vt 0.165771 0.785453 +vt 0.165651 0.423324 +vt 0.349524 0.013035 +vt 0.215519 0.749251 +vt 0.200561 0.766772 +vt 0.168820 0.697328 +vt 0.175150 0.483896 +vt 0.188801 0.458524 +vt 0.201868 0.496878 +vt 0.215519 0.471506 +vt 0.023921 0.334271 +vt 0.671600 0.189680 +vt 0.970110 0.115337 +vt 0.970306 0.123922 +vt 0.890665 0.568032 +vt 0.581093 0.657225 +vt 0.579706 0.651105 +vt 0.585016 0.640340 +vt 0.590796 0.637557 +vt 0.597433 0.637264 +vt 0.608740 0.643912 +vt 0.611455 0.649704 +vt 0.611455 0.655885 +vt 0.603781 0.665260 +vt 0.597433 0.666832 +vt 0.590796 0.665833 +vt 0.585016 0.662435 +vt 0.720710 0.182424 +vt 0.280470 0.626193 +vt 0.272542 0.454369 +vt 0.851770 0.771006 +vt 0.078947 0.660579 +vt 0.054201 0.526134 +vt 0.152787 0.630973 +vt 0.763814 0.746853 +vt 0.202973 0.560832 +vt 0.202973 0.695413 +vt 0.211017 0.432541 +vt 0.211037 0.512599 +vt 0.211827 0.777736 +vt 0.215312 0.525547 +vt 0.264366 0.525478 +vt 0.265426 0.720008 +vt 0.977054 0.730190 +vt 0.253847 0.439630 +vt 0.253847 0.802453 +vt 0.161667 0.802553 +vt 0.325918 0.642861 +vt 0.194508 0.627297 +vt 0.216734 0.649666 +vt 0.216734 0.627297 +vt 0.127816 0.627297 +vt 0.105909 0.782399 +vt 0.108210 0.457768 +vt 0.023377 0.780946 +vt 0.023377 0.457768 +vt 0.044585 0.457768 +vt 0.234271 0.450827 +vt 0.848498 0.685322 +vt 0.211155 0.787793 +vt 0.335787 0.423324 +vt 0.335699 0.785449 +vt 0.290788 0.765173 +vt 0.189640 0.774772 +vt 0.175485 0.749677 +vt 0.197104 0.735777 +vt 0.195938 0.458524 +vt 0.165712 0.528641 +vt 0.211259 0.475708 +vt 0.211259 0.760871 +vt 0.191836 0.630793 +vt 0.201181 0.641632 +vt 0.161801 0.803719 +vt 0.128769 0.441635 +vt 0.287078 0.441635 +vt 0.211243 0.432637 +vt 0.243950 0.432743 +vt 0.211825 0.777842 +vt 0.239777 0.809653 +vt 0.236235 0.574344 +vt 0.228178 0.436438 +vt 0.332137 0.437634 +vt 0.108370 0.457995 +vt 0.293038 0.458286 +vt 0.246640 0.543184 +vt 0.293038 0.556655 +vt 0.150823 0.543181 +vt 0.109026 0.554322 +vt 0.174987 0.612558 +vt 0.221723 0.612794 +vt 0.174924 0.563657 +vt 0.221713 0.565123 +vt 0.225811 0.686631 +vt 0.115329 0.444502 +vt 0.977611 0.684219 +vt 0.953285 0.706882 +vt 0.701874 0.553659 +vt 0.702069 0.527374 +vt 0.704813 0.560928 +vt 0.092820 0.767961 +vt 0.585750 0.639317 +vt 0.591029 0.636927 +vt 0.597039 0.637275 +vt 0.602747 0.640193 +vt 0.607057 0.645239 +vt 0.609112 0.651531 +vt 0.606007 0.663036 +vt 0.590549 0.665540 +vt 0.601674 0.666302 +vt 0.596168 0.667244 +vt 0.585313 0.661826 +vt 0.580781 0.649872 +vt 0.267297 0.783587 +vt 0.259032 0.783285 +vt 0.108846 0.681140 +vt 0.103788 0.649857 +vt 0.170248 0.802442 +vt 0.570250 0.630345 +vt 0.561088 0.654029 +vt 0.575159 0.676023 +vt 0.588782 0.681545 +vt 0.603793 0.681956 +vt 0.617443 0.676725 +vt 0.631890 0.655009 +vt 0.597074 0.620271 +vt 0.630779 0.642388 +vt 0.623624 0.631208 +vt 0.611752 0.623170 +vt 0.582328 0.622690 +vt 0.154550 0.804507 +vt 0.392020 0.658075 +vt 0.302976 0.452951 +vt 0.259270 0.751033 +vt 0.240884 0.770341 +vt 0.229212 0.441980 +vt 0.259270 0.458646 +vt 0.216825 0.498419 +vt 0.350092 0.435460 +vt 0.970960 0.111975 +vt 0.970306 0.125366 +vt 0.890824 0.569849 +vt 0.772519 0.215474 +vt 0.367133 0.435460 +vt 0.097811 0.792171 +vt 0.027038 0.518698 +vt 0.022050 0.790931 +vt 0.048570 0.460209 +vt 0.369430 0.460209 +vt 0.393986 0.531106 +vt 0.357472 0.524564 +vt 0.057138 0.544589 +vt 0.016196 0.540388 +vt 0.234035 0.602324 +vt 0.208545 0.673246 +vt 0.166408 0.441084 +vt 0.390629 0.638066 +vt 0.565141 0.666479 +vt 0.560742 0.654326 +vt 0.562422 0.641703 +vt 0.569858 0.630592 +vt 0.581929 0.622903 +vt 0.596678 0.620440 +vt 0.611359 0.623268 +vt 0.623116 0.631113 +vt 0.630113 0.642341 +vt 0.626759 0.667862 +vt 0.617032 0.677247 +vt 0.603542 0.682270 +vt 0.238861 0.434065 +vt 0.208361 0.516967 +vt 0.257646 0.452955 +vt 0.257646 0.754262 +vt 0.188162 0.618478 +vt 0.274784 0.803410 +vt 0.270640 0.803271 +vt 0.078217 0.793331 +vt 0.056670 0.780261 +vt 0.024003 0.468863 +vt 0.307951 0.808658 +vt 0.228621 0.808658 +vt 0.227029 0.435583 +vt 0.328843 0.434552 +vt 0.179789 0.489959 +vt 0.332118 0.585098 +vt 0.332118 0.698790 +vt 0.309212 0.586099 +vt 0.308210 0.697854 +vt 0.285450 0.699257 +vt 0.271271 0.566606 +vt 0.252657 0.705153 +vt 0.140966 0.607404 +vt 0.140973 0.491835 +vt 0.282628 0.686931 +vt 0.267629 0.707508 +vt 0.267267 0.681966 +vt 0.157303 0.703261 +vt 0.151510 0.703269 +vt 0.153431 0.677036 +vt 0.140412 0.684992 +vt 0.280459 0.490002 +vt 0.208429 0.606816 +vt 0.280459 0.608219 +vt 0.242980 0.600630 +vt 0.379091 0.419923 +vt 0.028126 0.733572 +vt 0.029621 0.521536 +vt 0.064034 0.703794 +vt 0.065764 0.521765 +vt 0.068554 0.555674 +vt 0.074971 0.734624 +vt 0.108057 0.662705 +vt 0.109927 0.596019 +vt 0.229392 0.641886 +vt 0.230621 0.621945 +vt 0.291265 0.660773 +vt 0.292944 0.600726 +vt 0.334275 0.701102 +vt 0.337630 0.559808 +vt 0.367112 0.791321 +vt 0.356079 0.791468 +vt 0.358325 0.760311 +vt 0.356289 0.469829 +vt 0.699040 0.751173 +vt 0.696774 0.785087 +vt 0.945083 0.602988 +vt 0.969409 0.625257 +vt 0.377077 0.450759 +vt 0.303950 0.504075 +vt 0.377111 0.473918 +vt 0.237685 0.573495 +vt 0.225603 0.582865 +vt 0.016154 0.475399 +vt 0.016119 0.451280 +vt 0.085701 0.510511 +vt 0.167998 0.582865 +vt 0.226143 0.787499 +vt 0.188554 0.710454 +s 0 +f 2/1/1 4/2/1 5/3/1 +f 13/4/2 14/5/2 10/6/2 +f 9/7/3 1/8/3 5/3/3 +f 1/8/4 2/1/4 5/3/4 +f 2/1/5 3/9/5 4/2/5 +f 5/3/6 6/10/6 7/11/6 +f 7/11/7 8/12/7 5/3/7 +f 8/12/8 9/7/8 5/3/8 +f 15/13/9 10/6/9 14/5/9 +f 10/6/10 11/14/10 12/15/10 +f 13/4/11 10/6/11 12/15/11 +s 1 +f 16/16/12 17/17/13 18/18/14 +f 19/19/15 20/20/16 18/21/17 +f 22/22/18 24/23/19 21/24/19 +f 21/24/19 29/25/20 28/26/21 +f 28/26/21 32/27/22 31/28/22 +f 37/29/23 39/30/24 36/31/24 +f 41/32/25 43/33/26 40/34/25 +f 45/35/27 47/36/28 44/37/28 +f 49/38/29 37/29/23 48/39/29 +f 43/33/26 51/40/30 50/41/30 +f 40/34/25 52/42/31 41/32/25 +f 61/43/32 63/44/32 64/45/32 +f 64/45/33 65/46/33 66/47/33 +f 75/48/34 76/49/35 69/50/36 +f 77/51/37 79/52/38 80/53/39 +f 81/54/40 83/55/41 84/56/42 +f 84/56/43 4/57/44 3/58/45 +f 87/59/46 88/60/47 89/61/48 +f 92/62/49 93/63/50 94/64/50 +f 71/65/51 82/66/52 81/54/40 +f 95/67/53 71/65/51 81/54/40 +f 95/67/53 84/56/42 3/58/54 +f 96/68/55 3/58/54 2/69/56 +f 99/70/57 75/71/58 74/72/59 +f 62/73/60 104/74/61 105/75/62 +f 108/76/63 9/77/64 8/78/65 +f 99/70/57 98/79/66 107/80/67 +f 108/76/63 98/79/66 97/81/68 +f 68/82/69 109/83/70 6/84/71 +f 113/85/72 126/86/73 125/87/74 +f 122/88/75 123/89/75 134/90/75 +f 125/87/76 140/91/77 141/92/78 +f 135/93/79 143/94/80 142/95/81 +f 128/96/82 140/91/77 126/86/83 +f 134/90/84 145/97/85 143/94/80 +f 127/98/86 144/99/87 128/96/82 +f 133/100/88 147/101/89 145/97/85 +f 139/102/90 146/103/91 127/98/86 +f 132/104/92 149/105/93 147/101/89 +f 138/106/94 148/107/95 139/102/90 +f 130/108/96 149/105/93 131/109/97 +f 137/110/98 150/111/99 138/106/94 +f 129/112/100 151/113/101 130/108/96 +f 136/114/102 152/115/103 137/110/98 +f 125/87/76 153/116/104 129/112/100 +f 155/117/105 154/118/106 142/95/81 +f 157/119/107 141/92/78 140/91/77 +f 159/120/108 142/95/81 143/94/80 +f 160/121/109 140/91/77 144/99/87 +f 159/120/108 145/97/85 161/122/110 +f 144/99/87 162/123/111 160/121/109 +f 161/122/110 147/101/89 163/124/112 +f 146/103/91 164/125/113 162/123/111 +f 147/101/89 165/126/114 163/124/112 +f 148/107/95 166/127/115 164/125/113 +f 149/105/93 167/128/116 165/126/114 +f 172/129/117 173/130/118 169/131/119 +f 167/128/116 153/116/104 174/132/120 +f 154/118/106 135/93/79 142/95/81 +f 175/133/121 158/134/122 176/135/123 +f 177/136/124 156/137/125 155/138/105 +f 176/139/123 157/140/107 179/141/126 +f 180/142/127 155/138/105 159/143/108 +f 179/141/126 160/144/109 181/145/128 +f 182/146/129 159/143/108 161/147/110 +f 181/145/128 162/148/111 183/149/130 +f 184/150/131 161/147/110 163/151/112 +f 183/149/130 164/152/113 185/153/132 +f 186/154/133 163/151/112 165/155/114 +f 185/153/132 166/156/115 187/157/134 +f 188/158/135 165/155/114 167/159/116 +f 187/157/134 189/160/136 190/161/137 +f 188/158/135 174/162/120 175/163/121 +f 174/132/120 141/92/78 158/164/122 +f 191/165/138 182/166/139 192/167/140 +f 193/168/141 178/169/142 194/170/143 +f 195/171/144 176/172/145 196/173/146 +f 197/174/147 185/175/148 187/176/149 +f 194/170/143 177/177/150 199/178/151 +f 200/179/152 186/180/153 188/181/154 +f 202/182/155 181/183/156 183/184/157 +f 192/167/140 184/185/158 204/186/159 +f 176/172/145 205/187/160 196/173/146 +f 193/168/141 187/176/149 190/188/161 +f 199/178/151 180/189/162 191/165/138 +f 200/179/152 175/190/163 195/171/144 +f 202/182/155 185/175/148 198/191/164 +f 204/186/159 186/180/153 201/192/165 +f 178/193/166 189/160/136 156/137/125 +f 207/194/167 209/195/168 206/196/167 +f 210/197/169 212/198/170 213/199/169 +f 215/200/171 217/201/172 214/202/172 +f 218/203/173 220/204/174 221/205/173 +f 223/206/175 225/207/176 222/208/176 +f 227/209/177 229/210/178 226/211/177 +f 219/212/174 231/213/179 220/204/174 +f 233/214/180 206/196/167 232/215/180 +f 235/216/181 211/217/170 234/218/182 +f 209/195/168 216/219/171 215/200/171 +f 210/197/169 224/220/175 223/206/175 +f 221/205/173 226/211/177 218/203/173 +f 230/221/183 217/201/172 231/213/179 +f 232/215/180 225/207/176 233/214/180 +f 179/222/184 203/223/185 205/187/160 +f 194/224/143 230/225/79 219/226/186 +f 199/227/151 214/228/84 230/225/79 +f 228/229/178 234/218/182 229/210/178 +f 191/230/138 215/231/88 214/228/84 +f 192/232/140 209/233/92 215/231/88 +f 204/234/159 206/235/97 209/233/92 +f 201/236/165 232/237/96 206/235/97 +f 200/238/152 222/239/187 232/237/96 +f 195/240/144 223/241/188 222/239/187 +f 196/242/146 210/243/189 223/241/188 +f 211/244/82 205/245/160 203/246/185 +f 203/246/185 234/247/86 211/244/82 +f 202/248/155 229/249/90 234/247/86 +f 226/250/190 198/251/164 197/252/147 +f 218/253/98 197/252/147 193/254/141 +f 237/255/75 241/256/75 245/257/75 +f 248/258/22 250/259/191 32/260/22 +f 251/261/20 32/260/22 29/262/20 +f 252/263/19 29/262/20 24/264/19 +f 253/265/18 24/264/19 23/266/18 +f 254/267/28 23/266/18 47/268/28 +f 255/269/27 47/268/28 46/270/27 +f 46/270/27 256/271/31 255/269/27 +f 53/272/31 257/273/25 256/271/31 +f 258/274/30 43/275/26 50/276/30 +f 259/277/26 40/278/25 43/275/26 +f 252/263/75 253/265/75 264/279/75 +f 265/280/192 278/281/193 266/282/194 +f 264/279/195 277/283/196 265/280/192 +f 281/284/197 282/285/198 280/286/199 +f 263/287/200 279/288/201 264/279/195 +f 270/289/202 282/285/198 271/290/203 +f 285/291/204 242/292/205 241/293/206 +f 287/294/207 289/295/208 290/296/209 +f 291/297/210 293/298/211 294/299/212 +f 295/300/213 286/301/214 285/302/215 +f 290/296/209 297/303/216 298/304/217 +f 300/305/218 302/306/219 299/307/220 +f 304/308/221 306/309/222 303/310/223 +f 308/311/224 310/312/225 307/313/226 +f 287/294/207 285/302/215 288/314/227 +f 298/304/217 311/315/228 312/316/229 +f 299/307/220 292/317/230 291/297/210 +f 296/318/231 306/309/222 286/301/214 +f 90/319/75 314/320/75 313/321/75 +f 318/322/232 319/323/232 315/324/232 +f 321/325/233 323/326/234 320/327/234 +f 324/328/235 305/329/236 304/308/221 +f 290/224/209 327/225/237 326/226/238 +f 298/227/217 328/228/239 327/225/237 +f 330/330/240 332/331/241 329/332/240 +f 328/228/239 308/232/224 333/231/242 +f 334/333/243 335/334/244 336/335/245 +f 317/336/246 338/337/246 339/338/246 +f 337/339/247 341/340/248 342/341/249 +f 344/342/250 346/343/250 343/344/250 +f 96/68/55 1/345/251 97/81/68 +f 12/15/252 348/346/253 13/4/254 +f 350/347/255 352/348/256 349/349/255 +f 355/350/257 356/351/258 357/352/259 +f 258/274/30 359/353/260 358/354/260 +f 352/348/256 85/355/261 89/61/48 +f 360/356/262 361/357/263 362/358/264 +f 364/359/265 348/346/253 363/360/266 +f 365/361/267 366/362/268 18/363/269 +f 368/364/270 369/365/271 370/366/272 +f 368/364/270 370/366/272 371/367/273 +f 373/368/274 91/369/275 375/370/276 +f 89/371/277 377/372/277 88/373/277 +f 349/349/255 379/374/278 350/347/255 +f 382/375/279 373/376/280 384/377/281 +f 345/378/282 318/379/283 385/380/284 +f 386/381/285 92/382/285 387/383/285 +f 387/383/286 338/384/286 386/381/286 +f 340/385/287 339/386/287 385/387/287 +f 92/382/288 340/385/289 385/387/290 +f 386/381/291 340/385/292 93/388/293 +f 337/339/294 316/389/294 341/340/294 +f 342/341/295 316/389/295 315/324/295 +f 387/383/232 385/387/232 339/386/232 +f 348/346/253 389/390/296 388/391/297 +f 392/392/298 86/393/299 87/394/300 +f 395/395/301 397/396/302 394/397/302 +f 397/398/303 345/399/303 394/400/303 +f 87/401/304 86/402/305 385/403/232 +f 315/404/306 93/405/307 92/406/306 +f 398/407/308 400/408/309 91/409/310 +f 401/410/311 398/411/312 91/412/313 +f 399/413/314 401/414/311 400/408/314 +f 403/415/315 405/416/316 374/417/317 +f 406/418/318 405/416/319 407/419/320 +f 407/419/320 403/415/321 406/418/318 +f 314/420/322 93/421/323 342/422/324 +f 314/423/325 342/424/325 315/425/326 +f 92/406/306 374/426/327 315/404/306 +f 408/427/328 410/428/329 364/359/330 +f 408/427/328 411/429/331 409/430/332 +f 411/429/331 413/431/333 412/432/334 +f 414/433/335 364/359/330 410/428/329 +f 13/4/254 364/359/265 415/434/336 +f 417/435/337 347/436/338 416/437/339 +f 418/438/340 420/439/341 421/440/342 +f 11/14/343 422/441/343 10/6/343 +f 422/441/344 15/13/344 10/6/344 +f 423/442/345 424/443/346 425/444/347 +f 426/445/348 427/446/349 428/447/350 +f 423/442/345 429/448/351 424/443/346 +f 425/444/347 418/449/352 430/450/353 +f 431/451/354 429/448/351 432/452/355 +f 360/356/262 433/453/356 434/454/357 +f 435/455/358 370/366/358 436/456/358 +f 429/448/351 437/457/359 424/443/346 +f 436/456/360 370/366/360 369/365/360 +f 438/458/361 437/457/359 429/448/351 +f 439/459/362 440/460/363 438/458/361 +f 441/461/364 439/459/362 427/446/349 +f 437/457/359 442/462/365 443/463/366 +f 440/460/363 442/462/365 437/457/359 +f 444/464/367 445/465/368 446/466/369 +f 447/467/370 448/468/370 444/469/370 +f 448/470/371 445/465/372 444/464/373 +f 448/470/371 449/471/374 445/465/372 +f 445/465/375 449/471/375 450/472/375 +f 448/468/376 451/473/377 449/474/378 +f 451/473/379 452/475/379 453/476/379 +f 452/475/380 451/473/380 447/467/380 +f 447/467/381 348/477/382 452/475/383 +f 446/466/384 450/472/384 453/478/384 +f 437/457/359 443/463/366 419/479/385 +f 442/480/386 454/481/387 455/482/388 +f 454/481/387 439/483/389 456/484/390 +f 439/483/389 457/485/391 456/484/390 +f 458/486/392 420/439/341 419/487/393 +f 436/488/394 460/489/395 461/490/396 +f 455/482/388 458/486/392 443/491/397 +f 454/481/398 462/492/399 463/493/400 +f 456/484/401 459/494/402 462/492/399 +f 152/115/103 154/118/106 189/495/136 +f 436/488/394 434/496/403 462/492/399 +f 459/494/402 436/488/394 462/492/399 +f 434/496/404 461/490/404 462/492/404 +f 464/497/405 460/489/406 459/494/407 +f 465/498/408 466/499/409 467/500/410 +f 465/498/411 468/501/412 461/490/396 +f 460/489/395 465/498/411 461/490/396 +f 430/502/413 469/503/414 470/504/415 +f 459/494/407 457/505/391 426/506/416 +f 430/507/413 421/440/342 469/503/414 +f 468/501/417 471/508/418 472/509/419 +f 473/510/420 430/511/413 470/512/415 +f 467/500/410 471/508/418 465/498/408 +f 474/513/421 473/514/420 470/504/415 +f 446/466/422 452/515/423 348/516/424 +f 475/517/425 472/509/419 474/513/421 +f 464/497/405 476/518/426 466/499/409 +f 472/509/427 477/519/428 474/513/429 +f 476/518/430 428/447/350 478/520/431 +f 471/508/432 479/521/433 472/509/427 +f 478/520/431 480/522/434 481/523/435 +f 481/523/435 482/524/436 479/521/433 +f 477/519/428 425/444/347 473/525/437 +f 478/520/431 428/447/350 480/522/434 +f 479/521/433 423/442/345 477/519/428 +f 476/518/430 426/445/348 428/447/350 +f 482/524/436 423/442/345 479/521/433 +f 457/485/391 441/526/438 426/527/416 +f 482/524/436 431/451/354 432/452/355 +f 480/522/434 428/447/350 431/451/354 +f 434/528/439 483/529/440 484/530/441 +f 485/531/442 483/529/443 486/532/444 +f 361/357/263 360/356/262 434/454/357 +f 487/533/445 489/534/446 490/535/447 +f 436/456/448 485/531/448 435/455/448 +f 483/529/449 434/528/450 486/532/451 +f 15/536/452 14/5/453 414/433/335 +f 422/441/454 14/537/454 15/13/454 +f 14/5/453 13/4/455 415/434/456 +f 14/5/453 415/434/456 414/433/335 +f 416/437/339 347/436/338 11/14/457 +f 96/68/55 74/72/59 73/538/458 +f 493/539/459 494/540/460 61/541/461 +f 388/391/297 498/542/462 499/543/463 +f 363/360/266 408/427/464 364/359/265 +f 500/544/465 420/439/466 463/493/400 +f 499/543/467 501/545/468 502/546/469 +f 413/431/470 502/546/469 412/432/471 +f 461/490/396 503/547/472 500/544/465 +f 409/430/473 504/548/474 505/549/475 +f 409/430/473 505/549/475 410/428/476 +f 406/550/477 403/551/477 374/552/477 +f 407/419/478 405/416/478 404/553/478 +f 401/554/479 91/555/479 400/556/479 +f 402/557/480 399/413/480 398/407/480 +f 346/558/45 345/559/45 340/560/45 +f 343/561/481 318/379/481 344/562/481 +f 506/563/482 508/564/483 509/565/484 +f 371/367/485 510/566/486 368/364/487 +f 362/358/488 361/357/489 511/567/490 +f 511/567/491 484/530/441 368/364/492 +f 512/568/493 514/569/494 432/570/495 +f 515/571/496 517/572/497 518/573/498 +f 519/574/499 520/575/500 521/576/501 +f 522/577/502 514/569/494 523/578/503 +f 6/579/504 68/580/505 529/581/506 +f 532/582/507 533/583/508 534/584/509 +f 535/585/510 536/586/511 537/587/512 +f 537/587/512 536/586/511 538/588/513 +f 532/582/507 535/585/514 537/587/515 +f 532/582/507 537/587/515 533/583/508 +f 519/574/499 335/334/516 520/575/500 +f 522/577/502 432/570/495 514/569/494 +f 521/576/501 520/575/500 512/568/493 +f 539/589/517 506/563/482 509/565/484 +f 540/590/518 508/564/519 507/591/520 +f 506/563/482 539/589/517 541/592/521 +f 542/593/522 543/594/523 540/590/518 +f 506/563/524 544/595/525 507/591/526 +f 544/595/527 540/590/518 507/591/520 +f 335/334/244 543/594/523 542/593/522 +f 545/596/528 506/563/524 541/592/529 +f 545/596/528 544/595/525 506/563/524 +f 513/597/530 545/596/528 523/578/503 +f 513/597/530 544/595/525 545/596/528 +f 514/569/494 513/597/530 523/578/503 +f 513/597/530 512/568/493 544/595/525 +f 520/575/500 544/595/525 512/568/493 +f 520/575/500 335/334/516 542/593/531 +f 184/598/532 531/599/533 182/600/534 +f 516/601/535 529/581/536 528/602/537 +f 515/571/496 530/603/538 529/581/536 +f 5/604/539 487/533/445 490/535/447 +f 549/605/540 550/606/541 546/607/542 +f 553/608/543 20/609/16 19/610/15 +f 549/611/544 548/612/545 304/613/546 +f 560/614/547 562/615/75 563/616/548 +f 16/16/549 367/617/550 17/17/551 +f 17/17/552 16/618/553 18/21/552 +f 568/619/554 373/620/554 383/621/554 +f 96/68/55 72/622/555 95/67/53 +f 350/623/556 570/624/557 351/625/558 +f 17/626/559 18/21/17 20/20/16 +f 537/587/560 572/627/561 533/583/562 +f 365/628/267 17/629/559 576/630/563 +f 55/631/75 577/632/75 34/633/75 +f 578/634/45 579/635/45 354/636/564 +f 584/637/565 525/638/566 184/598/567 +f 576/639/563 17/640/559 573/641/568 +f 18/21/17 16/618/569 19/642/15 +f 44/37/28 23/643/18 22/22/18 +f 31/28/22 250/644/191 585/645/191 +f 585/645/191 36/31/24 39/30/24 +f 52/42/31 46/646/27 45/35/27 +f 586/647/570 588/648/571 589/649/572 +f 180/650/573 184/651/574 179/652/575 +f 587/653/576 590/654/577 588/655/571 +f 552/656/481 589/657/578 553/658/578 +f 491/659/579 101/660/580 100/661/581 +f 62/662/582 491/659/579 100/661/581 +f 77/663/583 594/664/584 595/665/585 +f 597/666/586 596/667/587 598/668/586 +f 78/669/588 591/670/588 597/666/588 +f 109/83/70 76/671/589 107/80/67 +f 273/672/23 48/673/29 37/674/23 +f 48/39/29 599/675/260 49/38/29 +f 36/676/24 273/672/23 37/674/23 +f 358/354/75 272/677/75 281/284/75 +f 600/678/590 575/679/590 601/680/590 +f 602/681/591 281/284/197 280/286/199 +f 269/682/592 284/683/593 270/289/202 +f 261/684/594 604/685/595 262/686/596 +f 262/686/596 283/687/597 263/287/200 +f 269/682/592 172/129/117 171/688/598 +f 276/689/599 606/690/600 260/691/601 +f 267/692/602 172/129/117 268/693/603 +f 260/691/601 603/694/604 261/684/594 +f 239/695/605 602/681/591 238/696/606 +f 266/282/194 173/130/118 267/692/602 +f 245/697/607 278/281/193 277/283/196 +f 237/698/608 602/681/591 280/286/199 +f 282/285/198 247/699/609 236/700/610 +f 280/286/199 236/700/610 237/698/608 +f 244/701/611 277/283/196 279/288/201 +f 283/687/597 242/702/612 243/703/613 +f 284/683/593 170/704/614 247/699/609 +f 604/685/595 241/705/615 242/702/612 +f 603/694/604 240/706/616 241/705/615 +f 293/707/617 168/708/618 246/709/619 +f 289/710/620 238/711/621 297/712/622 +f 239/695/605 606/690/600 605/713/623 +f 275/714/624 605/713/623 276/689/599 +f 311/715/625 236/716/626 309/717/627 +f 325/718/628 246/709/619 245/719/629 +f 297/712/622 237/720/630 311/715/625 +f 306/721/631 244/722/632 243/723/633 +f 305/724/634 245/719/629 244/722/632 +f 286/725/635 243/723/633 242/292/205 +f 309/726/627 247/727/636 310/728/637 +f 168/729/638 278/281/193 246/730/639 +f 310/731/637 170/732/640 301/733/641 +f 292/734/642 169/735/643 168/708/618 +f 302/736/644 170/732/640 169/735/643 +f 311/315/228 308/311/224 312/316/229 +f 288/737/645 241/293/206 240/738/646 +f 279/288/201 243/703/613 244/701/611 +f 293/298/211 324/328/235 294/299/212 +f 289/710/620 240/738/646 239/739/647 +f 307/313/226 301/740/648 300/305/218 +f 392/392/298 396/741/301 395/395/301 +f 607/742/649 609/743/650 333/744/650 +f 610/745/651 330/330/240 329/332/240 +f 327/746/652 612/747/653 613/748/652 +f 614/749/654 611/750/651 610/745/651 +f 617/751/655 619/752/656 616/753/655 +f 326/754/657 613/748/652 620/755/657 +f 331/756/241 321/325/233 332/331/241 +f 333/744/650 612/747/653 328/757/658 +f 618/758/656 607/742/649 619/752/656 +f 621/759/659 623/760/660 624/761/661 +f 326/754/657 615/762/662 614/749/654 +f 320/327/234 623/760/660 622/763/660 +f 624/761/661 616/753/655 621/759/659 +f 607/233/663 300/236/218 619/235/664 +f 300/236/218 616/237/665 619/235/664 +f 607/233/663 308/232/224 307/234/226 +f 291/240/210 622/241/666 621/239/667 +f 299/238/220 621/239/667 616/237/665 +f 622/241/666 324/245/235 320/243/668 +f 324/245/235 321/244/669 320/243/668 +f 332/247/670 304/246/221 303/248/223 +f 303/248/223 329/249/671 332/247/670 +f 296/251/231 610/250/672 329/249/671 +f 295/252/213 614/253/673 610/250/672 +f 287/254/207 326/764/238 614/253/673 +f 625/765/674 553/766/578 589/767/578 +f 583/768/248 627/769/248 628/770/248 +f 361/357/675 434/454/439 484/530/441 +f 368/364/492 484/530/441 369/365/676 +f 361/357/675 484/530/441 511/567/491 +f 510/566/486 511/567/490 368/364/487 +f 629/771/677 511/567/490 510/566/486 +f 629/771/677 362/358/488 511/567/490 +f 433/453/678 486/532/451 434/528/450 +f 483/529/440 436/456/679 369/365/676 +f 484/530/441 483/529/440 369/365/676 +f 446/466/369 445/465/368 450/472/680 +f 449/474/681 453/476/681 450/772/681 +f 451/473/682 453/476/682 449/474/682 +f 448/468/376 447/467/683 451/473/377 +f 447/773/381 444/464/684 348/516/382 +f 348/516/685 444/464/367 446/466/369 +f 480/522/434 431/451/354 482/524/436 +f 432/452/355 423/442/345 482/524/436 +f 423/442/345 425/444/347 477/519/428 +f 425/444/347 430/450/353 473/525/437 +f 480/522/434 482/524/436 481/523/435 +f 481/523/435 479/521/433 471/508/432 +f 477/519/428 473/525/437 474/513/429 +f 478/520/431 481/523/435 467/500/686 +f 467/500/686 481/523/435 471/508/432 +f 479/521/433 477/519/428 472/509/427 +f 476/518/430 478/520/431 466/499/687 +f 466/499/687 478/520/431 467/500/686 +f 468/501/417 472/509/419 475/517/425 +f 466/499/409 460/489/406 464/497/405 +f 475/517/425 474/513/421 503/547/688 +f 503/547/688 474/513/421 470/504/415 +f 471/508/418 468/501/417 465/498/408 +f 468/501/417 475/517/425 503/547/688 +f 469/503/689 503/547/472 470/504/690 +f 500/544/465 503/547/472 469/503/689 +f 461/490/396 434/496/403 436/488/394 +f 462/492/399 461/490/396 500/544/465 +f 462/492/399 500/544/465 463/493/400 +f 469/503/414 421/440/342 420/439/341 +f 457/505/391 459/494/407 456/484/390 +f 456/484/401 462/492/399 454/481/398 +f 454/481/398 463/493/400 455/482/691 +f 463/493/400 458/486/692 455/482/691 +f 463/493/400 420/439/466 458/486/692 +f 458/486/392 419/487/393 443/491/397 +f 440/774/693 454/481/387 442/480/386 +f 418/438/340 421/775/342 430/776/413 +f 455/482/388 443/491/397 442/480/386 +f 437/457/359 419/479/385 424/443/346 +f 439/459/362 438/458/361 427/446/349 +f 419/479/385 418/449/352 424/443/346 +f 440/460/363 437/457/359 438/458/361 +f 441/461/364 427/446/349 426/445/348 +f 438/458/361 431/451/354 427/446/349 +f 438/458/361 429/448/351 431/451/354 +f 424/443/346 418/449/352 425/444/347 +f 432/452/355 429/448/351 423/442/345 +f 427/446/349 431/451/354 428/447/350 +f 505/549/475 414/433/694 410/428/476 +f 505/549/475 15/536/695 414/433/694 +f 11/14/457 347/436/338 12/15/696 +f 348/346/253 388/391/297 363/360/266 +f 388/391/297 413/431/697 363/360/266 +f 388/391/297 389/390/296 498/542/462 +f 498/542/698 630/777/699 501/545/468 +f 499/543/467 498/542/698 501/545/468 +f 413/431/470 499/543/467 502/546/469 +f 411/778/700 412/779/701 504/780/474 +f 409/430/473 411/429/700 504/548/474 +f 396/781/45 391/782/45 390/783/45 +f 628/770/702 528/602/537 527/784/703 +f 182/600/534 632/785/704 580/786/705 +f 487/533/445 518/573/498 488/787/706 +f 517/572/497 628/770/702 627/769/707 +f 336/335/245 335/334/708 519/574/709 +f 422/788/710 535/585/711 532/582/712 +f 249/789/191 36/676/24 250/259/191 +f 635/790/713 636/791/714 210/792/715 +f 19/642/15 16/618/569 367/793/716 +f 381/794/717 638/795/718 600/796/718 +f 366/797/45 600/798/287 638/799/45 +f 292/800/719 293/801/719 309/802/720 +f 641/803/721 79/804/722 78/805/723 +f 109/83/70 8/78/65 7/806/724 +f 193/254/141 219/764/186 218/253/98 +f 567/807/725 356/808/726 355/809/727 +f 385/810/481 393/811/481 394/812/481 +f 521/576/501 512/568/493 432/570/495 +f 631/813/728 531/599/533 69/814/729 +f 645/815/730 646/816/731 546/817/732 +f 626/818/733 574/819/734 573/820/568 +f 68/821/735 6/822/736 541/823/737 +f 538/824/738 536/825/739 5/826/740 +f 69/827/741 540/828/742 543/829/743 +f 489/830/744 630/831/745 572/832/746 +f 389/390/747 630/777/748 498/542/749 +f 464/497/405 426/833/416 476/834/426 +f 644/835/750 354/836/751 579/837/750 +f 652/838/752 575/839/753 574/840/754 +f 533/583/755 572/627/746 630/831/745 +f 570/841/756 349/842/757 352/843/758 +f 50/41/30 599/675/260 359/844/260 +f 359/353/260 272/677/29 358/354/260 +f 372/845/759 376/846/760 367/847/761 +f 659/848/762 375/849/763 658/850/762 +f 661/851/764 663/852/765 660/853/765 +f 664/854/766 662/855/764 661/851/764 +f 660/853/765 667/856/767 666/857/767 +f 669/858/768 671/859/769 668/860/769 +f 673/861/770 671/859/769 672/862/770 +f 677/863/771 675/864/772 674/865/771 +f 676/866/772 678/867/773 675/864/772 +f 683/868/774 681/869/775 680/870/775 +f 672/862/770 684/871/776 673/861/770 +f 687/872/777 674/865/771 686/873/777 +f 688/874/772 679/875/773 676/876/772 +f 690/877/771 676/876/772 677/878/771 +f 691/85/777 677/878/771 687/879/777 +f 692/880/776 687/879/777 685/881/776 +f 693/882/770 685/881/776 672/883/770 +f 694/884/769 672/883/770 671/885/769 +f 695/886/768 671/885/769 670/887/768 +f 696/888/767 670/887/768 667/889/767 +f 697/890/765 667/889/767 663/891/765 +f 662/892/764 699/893/766 698/894/764 +f 698/894/764 663/891/765 662/892/764 +f 700/88/774 665/895/766 683/896/774 +f 701/89/775 683/896/774 680/897/775 +f 703/898/778 680/897/775 702/899/778 +f 689/900/773 702/899/778 679/875/773 +f 682/901/774 665/902/766 664/854/766 +f 666/857/767 670/903/768 669/858/768 +f 684/871/776 687/872/777 686/873/777 +f 702/904/778 681/869/775 704/905/778 +f 679/906/773 704/905/778 678/867/773 +f 22/22/18 23/643/18 24/23/19 +f 21/24/19 24/23/19 29/25/20 +f 28/26/21 29/25/20 32/27/22 +f 37/29/23 38/907/23 39/30/24 +f 41/32/25 42/908/26 43/33/26 +f 45/35/27 46/646/27 47/36/28 +f 49/38/29 38/907/23 37/29/23 +f 43/33/26 42/908/26 51/40/30 +f 40/34/25 53/909/31 52/42/31 +f 61/43/32 62/662/32 63/44/32 +f 64/45/33 63/44/33 65/46/33 +f 76/49/35 67/910/779 69/50/36 +f 67/910/779 68/911/780 69/50/36 +f 69/50/36 70/912/781 73/913/782 +f 70/912/781 71/914/481 72/915/783 +f 73/913/782 70/912/781 72/915/783 +f 73/913/782 74/916/784 69/50/36 +f 74/916/784 75/48/34 69/50/36 +f 77/51/37 78/669/785 79/52/38 +f 81/54/40 82/66/52 83/55/41 +f 84/56/43 83/55/786 4/57/44 +f 89/61/48 85/355/261 87/59/46 +f 85/355/261 86/917/787 87/59/46 +f 94/64/50 90/918/788 92/62/49 +f 90/918/788 91/919/789 92/62/49 +f 71/65/51 70/920/790 82/66/52 +f 95/67/53 72/622/555 71/65/51 +f 95/67/53 81/54/40 84/56/42 +f 96/68/55 95/67/53 3/58/54 +f 74/72/59 97/81/68 99/70/57 +f 97/81/68 98/79/66 99/70/57 +f 65/921/791 63/922/792 106/923/793 +f 63/922/792 62/73/60 106/923/793 +f 62/73/60 100/924/794 104/74/61 +f 100/924/794 101/925/795 103/926/796 +f 104/74/61 100/924/794 103/926/796 +f 101/925/795 102/927/795 103/926/796 +f 105/75/62 106/923/793 62/73/60 +f 8/78/65 107/80/67 108/76/63 +f 107/80/67 98/79/66 108/76/63 +f 107/80/67 76/671/589 99/70/57 +f 76/671/589 75/71/58 99/70/57 +f 97/81/68 1/345/251 108/76/63 +f 1/345/251 9/77/64 108/76/63 +f 67/928/797 109/83/70 68/82/69 +f 109/83/70 7/806/724 6/84/71 +f 113/85/72 114/880/75 126/86/73 +f 139/102/75 127/98/75 117/886/75 +f 127/98/75 128/96/75 116/884/75 +f 117/886/75 127/98/75 116/884/75 +f 128/96/75 126/86/73 115/882/75 +f 126/86/73 114/880/75 115/882/75 +f 138/106/75 139/102/75 117/886/75 +f 136/114/75 137/110/75 119/890/75 +f 137/110/75 138/106/75 118/888/75 +f 134/90/75 135/93/75 122/88/75 +f 135/93/75 136/114/75 121/893/75 +f 122/88/75 135/93/75 121/893/75 +f 132/104/75 133/100/75 124/898/75 +f 133/100/75 134/90/75 123/89/75 +f 124/898/75 133/100/75 123/89/75 +f 130/108/75 131/109/75 111/900/75 +f 131/109/75 132/104/75 111/900/75 +f 125/87/74 129/112/798 112/877/799 +f 129/112/798 130/108/75 112/877/799 +f 112/877/799 113/85/72 125/87/74 +f 128/96/75 115/882/75 116/884/75 +f 110/874/75 112/877/799 130/108/75 +f 111/900/75 110/874/75 130/108/75 +f 138/106/75 117/886/75 118/888/75 +f 124/898/75 111/900/75 132/104/75 +f 137/110/75 118/888/75 119/890/75 +f 136/114/75 119/890/75 120/894/75 +f 136/114/75 120/894/75 121/893/75 +f 125/87/76 126/86/83 140/91/77 +f 135/93/79 134/90/84 143/94/80 +f 128/96/82 144/99/87 140/91/77 +f 134/90/84 133/100/88 145/97/85 +f 127/98/86 146/103/91 144/99/87 +f 133/100/88 132/104/92 147/101/89 +f 139/102/90 148/107/95 146/103/91 +f 132/104/92 131/109/97 149/105/93 +f 138/106/94 150/111/99 148/107/95 +f 130/108/96 151/113/101 149/105/93 +f 137/110/98 152/115/103 150/111/99 +f 129/112/100 153/116/104 151/113/101 +f 136/114/102 154/118/106 152/115/103 +f 125/87/76 141/92/78 153/116/104 +f 155/117/105 156/929/125 154/118/106 +f 157/119/107 158/164/122 141/92/78 +f 159/120/108 155/117/105 142/95/81 +f 160/121/109 157/119/107 140/91/77 +f 159/120/108 143/94/80 145/97/85 +f 144/99/87 146/103/91 162/123/111 +f 161/122/110 145/97/85 147/101/89 +f 146/103/91 148/107/95 164/125/113 +f 147/101/89 149/105/93 165/126/114 +f 148/107/95 150/111/99 166/127/115 +f 149/105/93 151/113/101 167/128/116 +f 173/130/118 168/729/800 169/131/119 +f 169/131/119 170/704/801 171/688/598 +f 171/688/598 172/129/117 169/131/119 +f 167/128/116 151/113/101 153/116/104 +f 154/118/106 136/114/102 135/93/79 +f 175/133/121 174/930/120 158/134/122 +f 177/136/124 178/193/166 156/137/125 +f 176/139/123 158/931/122 157/140/107 +f 180/142/127 177/136/124 155/138/105 +f 179/141/126 157/140/107 160/144/109 +f 182/146/129 180/142/127 159/143/108 +f 181/145/128 160/144/109 162/148/111 +f 184/150/131 182/146/129 161/147/110 +f 183/149/130 162/148/111 164/152/113 +f 186/154/133 184/150/131 163/151/112 +f 185/153/132 164/152/113 166/156/115 +f 188/158/135 186/154/133 165/155/114 +f 187/157/134 166/156/115 189/160/136 +f 188/158/135 167/159/116 174/162/120 +f 174/132/120 153/116/104 141/92/78 +f 191/165/138 180/189/162 182/166/139 +f 193/168/141 190/188/161 178/169/142 +f 195/171/144 175/190/163 176/172/145 +f 197/174/147 198/191/164 185/175/148 +f 194/170/143 178/169/142 177/177/150 +f 200/179/152 201/192/165 186/180/153 +f 202/182/155 203/223/185 181/183/156 +f 192/167/140 182/166/139 184/185/158 +f 176/172/145 179/222/184 205/187/160 +f 193/168/141 197/174/147 187/176/149 +f 199/178/151 177/177/150 180/189/162 +f 200/179/152 188/181/154 175/190/163 +f 202/182/155 183/184/157 185/175/148 +f 204/186/159 184/185/158 186/180/153 +f 178/193/166 190/161/137 189/160/136 +f 207/194/167 208/932/168 209/195/168 +f 210/197/169 211/217/170 212/198/170 +f 215/200/171 216/219/171 217/201/172 +f 218/203/173 219/212/174 220/204/174 +f 223/206/175 224/220/175 225/207/176 +f 227/209/177 228/229/178 229/210/178 +f 219/212/174 230/221/183 231/213/179 +f 233/214/180 207/194/167 206/196/167 +f 235/216/181 212/198/170 211/217/170 +f 209/195/168 208/932/168 216/219/171 +f 210/197/169 213/199/169 224/220/175 +f 221/205/173 227/209/177 226/211/177 +f 230/221/183 214/202/172 217/201/172 +f 232/215/180 222/208/176 225/207/176 +f 179/222/184 181/183/156 203/223/185 +f 194/224/143 199/227/151 230/225/79 +f 199/227/151 191/230/138 214/228/84 +f 228/229/178 235/216/181 234/218/182 +f 191/230/138 192/232/140 215/231/88 +f 192/232/140 204/234/159 209/233/92 +f 204/234/159 201/236/165 206/235/97 +f 201/236/165 200/238/152 232/237/96 +f 200/238/152 195/240/144 222/239/187 +f 195/240/144 196/242/146 223/241/188 +f 196/242/146 205/245/160 210/243/189 +f 211/244/82 210/243/189 205/245/160 +f 203/246/185 202/248/155 234/247/86 +f 202/248/155 198/251/164 229/249/90 +f 226/250/190 229/249/90 198/251/164 +f 218/253/98 226/250/190 197/252/147 +f 247/933/75 236/934/75 237/255/75 +f 237/255/75 238/935/75 239/936/75 +f 239/936/75 240/937/75 237/255/75 +f 240/937/75 241/256/75 237/255/75 +f 241/256/75 242/938/75 243/939/75 +f 243/939/75 244/940/75 245/257/75 +f 245/257/75 246/941/75 168/942/75 +f 168/942/75 169/943/75 245/257/75 +f 169/943/75 170/944/75 245/257/75 +f 170/944/75 247/933/75 237/255/75 +f 241/256/75 243/939/75 245/257/75 +f 170/944/75 237/255/75 245/257/75 +f 248/258/22 249/789/191 250/259/191 +f 251/261/20 248/258/22 32/260/22 +f 252/263/19 251/261/20 29/262/20 +f 253/265/18 252/263/19 24/264/19 +f 254/267/28 253/265/18 23/266/18 +f 255/269/27 254/267/28 47/268/28 +f 46/270/27 53/272/31 256/271/31 +f 53/272/31 40/278/25 257/273/25 +f 258/274/30 259/277/26 43/275/26 +f 259/277/26 257/273/25 40/278/25 +f 276/689/75 260/691/75 257/273/75 +f 260/691/75 261/684/75 257/273/75 +f 261/684/75 262/686/75 256/271/75 +f 262/686/75 263/287/75 255/269/75 +f 256/271/75 262/686/75 255/269/75 +f 263/287/75 264/279/75 253/265/75 +f 264/279/75 265/280/75 252/263/75 +f 265/280/75 266/282/75 251/261/75 +f 266/282/75 267/692/75 248/258/75 +f 267/692/75 268/693/75 249/789/75 +f 268/693/75 269/682/75 249/789/75 +f 269/682/75 270/289/75 274/945/75 +f 270/289/75 271/290/75 273/672/75 +f 274/945/75 270/289/75 273/672/75 +f 271/290/75 272/677/75 273/672/75 +f 275/714/75 276/689/75 259/277/75 +f 259/277/75 258/274/75 275/714/75 +f 257/273/75 259/277/75 276/689/75 +f 269/682/75 274/945/75 249/789/75 +f 256/271/75 257/273/75 261/684/75 +f 267/692/75 249/789/75 248/258/75 +f 266/282/75 248/258/75 251/261/75 +f 254/267/75 255/269/75 263/287/75 +f 253/265/75 254/267/75 263/287/75 +f 265/280/75 251/261/75 252/263/75 +f 265/280/192 277/283/196 278/281/193 +f 264/279/195 279/288/201 277/283/196 +f 281/284/197 271/290/203 282/285/198 +f 263/287/200 283/687/597 279/288/201 +f 270/289/202 284/683/593 282/285/198 +f 285/291/204 286/725/635 242/292/205 +f 287/294/207 288/314/227 289/295/208 +f 291/297/210 292/317/230 293/298/211 +f 295/300/213 296/318/231 286/301/214 +f 290/296/209 289/295/208 297/303/216 +f 300/305/218 301/740/648 302/306/219 +f 304/308/221 305/329/236 306/309/222 +f 308/311/224 309/946/802 310/312/225 +f 287/294/207 295/300/213 285/302/215 +f 298/304/217 297/303/216 311/315/228 +f 299/307/220 302/306/219 292/317/230 +f 296/318/231 303/310/223 306/309/222 +f 90/319/75 94/947/75 314/320/75 +f 315/324/232 316/389/232 318/322/232 +f 316/389/232 317/336/232 318/322/232 +f 321/325/233 322/948/233 323/326/234 +f 324/328/235 325/949/803 305/329/236 +f 290/224/209 298/227/217 327/225/237 +f 298/227/217 312/230/229 328/228/239 +f 330/330/240 331/756/241 332/331/241 +f 328/228/239 312/230/229 308/232/224 +f 317/336/246 337/339/246 338/337/246 +f 342/341/249 340/950/804 337/339/247 +f 340/950/804 338/337/805 337/339/247 +f 344/342/250 345/951/250 346/343/250 +f 96/68/55 2/69/56 1/345/251 +f 12/15/252 347/436/806 348/346/253 +f 350/347/255 351/952/807 352/348/256 +f 357/352/259 353/953/808 354/954/751 +f 354/954/751 355/350/257 357/352/259 +f 258/274/30 50/276/30 359/353/260 +f 352/348/256 351/952/807 85/355/261 +f 364/359/265 13/4/254 348/346/253 +f 367/955/809 16/956/810 366/362/268 +f 16/956/810 18/363/269 366/362/268 +f 18/363/269 17/957/559 365/361/267 +f 376/958/760 372/959/759 375/370/811 +f 372/959/759 373/368/812 375/370/811 +f 373/368/274 374/960/327 91/369/275 +f 349/349/255 378/961/278 379/374/278 +f 384/377/281 380/962/813 382/375/279 +f 380/962/813 381/963/717 382/375/279 +f 382/375/279 383/964/814 373/376/280 +f 345/378/282 344/562/815 318/379/283 +f 386/381/285 93/388/285 92/382/285 +f 387/383/286 339/386/286 338/384/286 +f 340/385/287 338/965/287 339/386/287 +f 92/382/288 93/388/75 340/385/289 +f 386/381/291 338/384/248 340/385/292 +f 337/339/294 317/336/294 316/389/294 +f 342/341/295 341/340/295 316/389/295 +f 387/383/232 92/382/232 385/387/232 +f 348/346/253 347/436/806 389/390/296 +f 87/394/300 88/966/816 391/967/817 +f 88/966/816 390/968/816 391/967/817 +f 87/394/300 391/967/817 392/392/298 +f 392/392/298 393/969/818 86/393/299 +f 395/395/301 396/741/301 397/396/302 +f 397/398/303 344/970/303 345/399/303 +f 86/402/305 393/971/819 385/403/232 +f 385/403/232 318/972/232 87/401/304 +f 318/972/232 390/973/232 88/974/232 +f 88/974/232 87/401/304 318/972/232 +f 315/404/306 342/975/307 93/405/307 +f 398/407/308 399/413/820 400/408/309 +f 401/410/311 402/976/821 398/411/312 +f 399/413/314 402/557/821 401/414/311 +f 403/415/315 404/553/822 405/416/316 +f 406/418/318 374/417/823 405/416/319 +f 407/419/320 404/553/824 403/415/321 +f 314/420/322 94/977/322 93/421/323 +f 315/425/326 374/978/825 313/979/826 +f 313/979/826 314/423/325 315/425/326 +f 92/406/306 91/980/275 374/426/327 +f 408/427/328 409/430/332 410/428/329 +f 408/427/328 363/360/827 411/429/331 +f 411/429/331 363/360/827 413/431/333 +f 414/433/335 415/434/456 364/359/330 +f 417/435/828 389/390/829 347/436/338 +f 418/438/340 419/487/393 420/439/341 +f 454/481/387 440/774/693 439/483/389 +f 439/483/389 441/526/438 457/485/391 +f 436/488/394 459/494/402 460/489/395 +f 154/118/106 156/929/125 189/495/136 +f 189/495/136 166/127/115 150/111/99 +f 150/111/99 152/115/103 189/495/136 +f 465/498/408 460/489/406 466/499/409 +f 446/466/422 453/478/830 452/515/423 +f 485/531/442 436/456/831 483/529/443 +f 487/533/445 488/787/706 489/534/446 +f 96/68/55 97/81/68 74/72/59 +f 497/981/832 491/982/833 495/983/834 +f 491/982/833 61/541/461 494/540/460 +f 61/541/461 64/984/835 492/985/836 +f 64/984/835 66/986/837 492/985/836 +f 495/983/838 496/987/839 497/981/839 +f 494/540/460 495/983/834 491/982/833 +f 61/541/461 492/985/836 493/539/459 +f 500/544/465 469/503/689 420/439/466 +f 461/490/396 468/501/412 503/547/472 +f 506/563/482 507/591/840 508/564/483 +f 512/568/493 513/597/530 514/569/494 +f 515/571/496 516/601/535 517/572/497 +f 525/638/75 526/988/75 527/784/75 +f 525/638/75 527/784/75 528/602/75 +f 524/989/75 525/638/75 529/581/506 +f 525/638/75 528/602/75 529/581/506 +f 68/580/505 69/814/841 531/599/842 +f 531/599/842 524/989/75 68/580/505 +f 524/989/75 529/581/506 68/580/505 +f 530/603/843 5/604/844 6/579/504 +f 529/581/506 530/603/843 6/579/504 +f 544/595/527 542/593/522 540/590/518 +f 335/334/244 334/333/243 543/594/523 +f 520/575/500 542/593/531 544/595/525 +f 184/598/532 524/989/532 531/599/533 +f 516/601/535 515/571/496 529/581/536 +f 515/571/496 487/533/445 530/603/538 +f 5/604/539 530/603/538 487/533/445 +f 551/990/845 546/607/542 550/606/541 +f 546/607/542 547/991/846 549/605/540 +f 547/991/846 548/992/248 549/605/540 +f 367/993/716 552/994/847 19/610/15 +f 552/994/847 553/608/543 19/610/15 +f 553/608/543 17/995/559 20/609/16 +f 548/612/545 554/996/848 304/613/546 +f 304/613/546 555/997/849 549/611/544 +f 555/997/849 556/998/850 549/611/544 +f 556/998/850 550/999/851 549/611/544 +f 551/1000/852 550/1001/853 557/1002/854 +f 550/1001/853 556/1003/75 557/1002/854 +f 566/1004/855 567/1005/856 551/1000/852 +f 563/616/548 564/1006/857 559/1007/858 +f 564/1006/857 565/1008/859 558/1009/860 +f 559/1007/858 564/1006/857 558/1009/860 +f 565/1008/859 566/1004/855 557/1002/854 +f 566/1004/855 551/1000/852 557/1002/854 +f 565/1008/859 557/1002/854 558/1009/860 +f 559/1007/858 560/614/547 563/616/548 +f 560/614/547 561/1010/75 562/615/75 +f 17/17/861 367/617/862 16/618/862 +f 568/619/554 374/1011/554 373/620/554 +f 96/68/55 73/538/458 72/622/555 +f 350/623/556 379/1012/863 569/1013/864 +f 571/1014/865 86/1015/866 85/1016/867 +f 570/624/557 571/1014/865 85/1016/867 +f 350/623/556 569/1013/864 570/624/557 +f 570/624/557 85/1016/867 351/625/558 +f 537/587/560 538/588/868 572/627/561 +f 576/630/563 573/820/568 365/628/267 +f 573/820/568 574/819/734 575/1017/869 +f 365/628/267 573/820/568 575/1017/869 +f 57/1018/75 58/1019/75 27/1020/75 +f 27/1020/75 26/1021/75 25/1022/75 +f 25/1022/75 30/1023/75 34/633/75 +f 34/633/75 33/1024/75 60/1025/75 +f 33/1024/75 35/1026/75 60/1025/75 +f 35/1026/75 59/1027/75 60/1025/75 +f 60/1025/75 54/1028/75 55/631/75 +f 55/631/75 56/1029/75 577/632/75 +f 577/632/75 57/1018/75 27/1020/75 +f 27/1020/75 25/1022/75 577/632/75 +f 25/1022/75 34/633/75 577/632/75 +f 60/1025/75 55/631/75 34/633/75 +f 354/636/870 353/1030/871 556/1031/872 +f 556/1031/872 578/634/873 354/636/870 +f 184/598/567 182/600/874 581/1032/875 +f 182/600/874 580/786/874 581/1032/875 +f 581/1032/875 582/1033/876 184/598/567 +f 582/1033/876 583/768/877 584/637/565 +f 584/637/565 526/988/878 525/638/566 +f 525/638/566 524/989/879 184/598/567 +f 582/1033/876 584/637/565 184/598/567 +f 44/37/28 47/36/28 23/643/18 +f 31/28/22 32/27/22 250/644/191 +f 585/645/191 250/644/191 36/31/24 +f 52/42/31 53/909/31 46/646/27 +f 586/647/570 587/1034/576 588/648/571 +f 177/1035/880 180/650/573 179/652/575 +f 180/650/573 182/1036/881 184/651/574 +f 184/651/574 186/1037/882 179/652/575 +f 186/1037/882 188/1038/883 179/652/575 +f 188/1038/883 175/1039/884 179/652/575 +f 175/1039/884 176/1040/885 179/652/575 +f 179/652/575 181/1041/886 190/1042/887 +f 181/1041/886 183/1043/888 185/1044/889 +f 187/1045/890 181/1041/886 185/1044/889 +f 187/1045/890 190/1042/887 181/1041/886 +f 190/1042/887 178/1046/891 179/652/575 +f 178/1046/891 177/1035/880 179/652/575 +f 587/653/576 375/1047/892 590/654/577 +f 552/656/481 586/1048/481 589/657/578 +f 491/659/579 497/1049/893 101/660/893 +f 62/662/582 61/43/894 491/659/579 +f 596/1050/895 591/1051/896 595/665/585 +f 591/1051/896 77/663/583 595/665/585 +f 80/1052/897 592/1053/898 593/1054/899 +f 80/1052/897 593/1054/899 77/663/583 +f 593/1054/899 594/664/584 77/663/583 +f 597/666/586 591/670/587 596/667/587 +f 78/669/588 77/51/588 591/670/588 +f 109/83/70 67/928/797 76/671/589 +f 273/672/23 272/677/29 48/673/29 +f 48/39/29 359/844/260 599/675/260 +f 36/676/24 274/945/900 273/672/23 +f 272/677/75 271/290/75 281/284/75 +f 281/284/75 275/714/75 358/354/75 +f 275/714/75 258/274/75 358/354/75 +f 600/678/287 365/1055/287 575/679/590 +f 602/681/591 275/714/624 281/284/197 +f 269/682/592 171/688/598 284/683/593 +f 261/684/594 603/694/604 604/685/595 +f 262/686/596 604/685/595 283/687/597 +f 269/682/592 268/693/603 172/129/117 +f 276/689/599 605/713/623 606/690/600 +f 267/692/602 173/130/118 172/129/117 +f 260/691/601 606/690/600 603/694/604 +f 239/695/605 605/713/623 602/681/591 +f 266/282/194 278/281/193 173/130/118 +f 245/697/607 246/730/639 278/281/193 +f 237/698/608 238/696/606 602/681/591 +f 282/285/198 284/683/593 247/699/609 +f 280/286/199 282/285/198 236/700/610 +f 244/701/611 245/697/607 277/283/196 +f 283/687/597 604/685/595 242/702/612 +f 284/683/593 171/688/598 170/704/614 +f 604/685/595 603/694/604 241/705/615 +f 603/694/604 606/690/600 240/706/616 +f 293/707/617 292/734/642 168/708/618 +f 289/710/620 239/739/647 238/711/621 +f 239/695/605 240/706/616 606/690/600 +f 275/714/624 602/681/591 605/713/623 +f 311/715/625 237/720/630 236/716/626 +f 325/718/628 293/707/617 246/709/619 +f 297/712/622 238/711/621 237/720/630 +f 306/721/631 305/724/634 244/722/632 +f 305/724/634 325/718/628 245/719/629 +f 286/725/635 306/721/631 243/723/633 +f 309/726/627 236/1056/626 247/727/636 +f 168/729/901 173/130/118 278/281/193 +f 310/731/637 247/1057/636 170/732/640 +f 292/734/642 302/736/644 169/735/643 +f 302/736/644 301/733/641 170/732/640 +f 311/315/228 309/946/802 308/311/224 +f 288/737/645 285/291/204 241/293/206 +f 279/288/201 283/687/597 243/703/613 +f 293/298/211 325/949/803 324/328/235 +f 289/710/620 288/737/645 240/738/646 +f 307/313/226 310/312/225 301/740/648 +f 392/392/298 391/967/817 396/741/301 +f 607/742/649 608/1058/649 609/743/650 +f 610/745/651 611/750/651 330/330/240 +f 327/746/652 328/757/658 612/747/653 +f 614/749/654 615/762/662 611/750/651 +f 617/751/655 618/758/656 619/752/656 +f 326/754/657 327/746/652 613/748/652 +f 331/756/241 322/948/233 321/325/233 +f 333/744/650 609/743/650 612/747/653 +f 618/758/656 608/1058/649 607/742/649 +f 621/759/659 622/763/660 623/760/660 +f 326/754/657 620/755/657 615/762/662 +f 320/327/234 323/326/234 623/760/660 +f 624/761/661 617/751/655 616/753/655 +f 607/233/663 307/234/226 300/236/218 +f 300/236/218 299/238/220 616/237/665 +f 607/233/663 333/231/242 308/232/224 +f 291/240/210 294/242/212 622/241/666 +f 299/238/220 291/240/210 621/239/667 +f 622/241/666 294/242/212 324/245/235 +f 324/245/235 304/246/221 321/244/669 +f 332/247/670 321/244/669 304/246/221 +f 303/248/223 296/251/231 329/249/671 +f 296/251/231 295/252/213 610/250/672 +f 295/252/213 287/254/207 614/253/673 +f 287/254/207 290/1059/209 326/764/238 +f 625/765/674 626/1060/674 553/766/578 +f 628/770/248 527/784/248 584/637/248 +f 527/784/248 526/988/248 584/637/248 +f 584/637/248 583/768/248 628/770/248 +f 388/391/297 499/543/463 413/431/697 +f 390/783/45 318/1061/45 397/1062/45 +f 318/1061/45 344/1063/45 397/1062/45 +f 397/1062/45 396/781/45 390/783/45 +f 628/770/702 516/601/535 528/602/537 +f 182/600/534 631/813/728 632/785/704 +f 487/533/445 515/571/496 518/573/498 +f 517/572/497 516/601/535 628/770/702 +f 422/788/710 536/586/902 535/585/711 +f 249/789/191 274/945/900 36/676/24 +f 548/1064/903 547/1065/904 210/792/715 +f 547/1065/904 633/1066/905 211/1067/906 +f 547/1065/904 211/1067/906 210/792/715 +f 637/1068/307 554/1069/307 548/1064/903 +f 636/791/714 637/1068/307 548/1064/903 +f 223/1070/907 634/1071/908 635/790/713 +f 548/1064/903 210/792/715 636/791/714 +f 210/792/715 223/1070/907 635/790/713 +f 381/794/717 380/1072/813 638/795/718 +f 366/797/45 365/1073/287 600/798/287 +f 293/801/719 325/1074/307 309/802/720 +f 325/1074/307 305/1075/909 309/802/720 +f 305/1075/909 306/1076/307 309/802/720 +f 306/1076/307 286/1077/307 309/802/720 +f 286/1077/307 285/1078/910 309/802/720 +f 285/1078/910 288/1079/910 309/802/720 +f 288/1079/910 289/1080/910 309/802/720 +f 289/1080/910 297/1081/911 309/802/720 +f 297/1081/911 311/1082/912 309/802/720 +f 309/802/720 310/1083/913 301/1084/914 +f 301/1084/914 302/1085/719 309/802/720 +f 302/1085/719 292/800/719 309/802/720 +f 78/805/723 597/1086/915 639/1087/916 +f 597/1086/915 598/1088/917 639/1087/916 +f 641/803/721 642/1089/918 79/804/722 +f 78/805/723 639/1087/916 640/1090/919 +f 640/1090/919 641/803/721 78/805/723 +f 109/83/70 107/80/67 8/78/65 +f 193/254/141 194/1059/143 219/764/186 +f 644/1091/920 643/1092/921 355/809/727 +f 643/1092/921 567/807/725 355/809/727 +f 392/1093/481 395/1094/481 393/811/481 +f 395/1094/481 394/812/481 393/811/481 +f 394/812/481 345/1095/481 385/810/481 +f 631/813/728 182/600/534 531/599/533 +f 646/816/731 633/1096/922 547/1097/923 +f 546/817/732 551/1098/924 567/1099/925 +f 646/816/731 547/1097/923 546/817/732 +f 567/1099/925 645/815/730 546/817/732 +f 573/820/568 17/629/559 553/1100/543 +f 553/1100/543 626/818/733 573/820/568 +f 534/1101/926 522/1102/927 532/1103/928 +f 522/1102/927 523/1104/929 532/1103/928 +f 523/1104/929 545/1105/930 532/1103/928 +f 6/822/736 422/1106/931 541/823/737 +f 422/1106/931 532/1103/928 545/1105/930 +f 541/823/737 422/1106/931 545/1105/930 +f 541/823/737 539/1107/932 68/821/735 +f 536/825/739 422/1108/933 6/1109/934 +f 5/826/740 490/1110/935 538/824/738 +f 490/1110/935 489/1111/936 572/1112/937 +f 490/1110/935 572/1112/937 538/824/738 +f 536/825/739 6/1109/934 5/826/740 +f 336/1113/938 632/1114/939 334/1115/940 +f 632/1114/939 631/1116/941 334/1115/940 +f 69/827/741 68/1117/942 508/1118/943 +f 68/1117/942 539/1119/944 509/1120/945 +f 68/1117/942 509/1120/945 508/1118/943 +f 543/829/743 334/1115/940 631/1116/941 +f 69/827/741 508/1118/943 540/828/742 +f 543/829/743 631/1116/941 69/827/741 +f 389/390/747 417/435/946 630/777/748 +f 464/497/405 459/494/407 426/833/416 +f 644/835/750 355/1121/257 354/836/751 +f 644/1122/947 579/1123/948 657/1124/949 +f 579/1123/948 578/1125/950 647/1126/951 +f 579/1123/948 647/1126/951 657/1124/949 +f 657/1124/949 643/1127/952 644/1122/947 +f 125/1128/953 657/1124/949 647/1126/951 +f 125/1128/953 647/1126/951 648/1129/954 +f 656/1130/955 125/1128/953 648/1129/954 +f 656/1130/955 648/1129/954 649/1131/956 +f 655/1132/957 656/1130/955 649/1131/956 +f 655/1132/957 649/1131/956 650/1133/958 +f 654/1134/959 655/1132/957 574/840/754 +f 655/1132/957 650/1133/958 574/840/754 +f 650/1133/958 651/1135/960 574/840/754 +f 626/1136/961 625/1137/962 653/1138/963 +f 653/1138/963 654/1134/959 574/840/754 +f 652/838/752 601/1139/75 575/839/753 +f 651/1135/960 652/838/752 574/840/754 +f 574/840/754 626/1136/961 653/1138/963 +f 89/1140/964 88/1141/965 570/841/756 +f 570/841/756 569/1142/966 349/842/757 +f 569/1142/966 378/1143/967 349/842/757 +f 352/843/758 89/1140/964 570/841/756 +f 50/41/30 51/40/30 599/675/260 +f 359/353/260 48/673/29 272/677/29 +f 367/847/761 366/1144/719 380/1145/968 +f 366/1144/719 638/1146/719 380/1145/968 +f 380/1145/968 384/1147/969 372/845/759 +f 384/1147/969 373/1148/812 372/845/759 +f 586/1149/970 552/1150/911 587/1151/971 +f 552/1150/911 367/847/761 376/846/760 +f 587/1151/971 552/1150/911 376/846/760 +f 376/846/760 375/1152/811 587/1151/971 +f 367/847/761 380/1145/968 372/845/759 +f 659/848/762 91/1153/762 375/849/763 +f 661/851/764 662/855/764 663/852/765 +f 664/854/766 665/902/766 662/855/764 +f 660/853/765 663/852/765 667/856/767 +f 669/858/768 670/903/768 671/859/769 +f 673/861/770 668/860/769 671/859/769 +f 677/863/771 676/866/772 675/864/772 +f 676/866/772 679/906/773 678/867/773 +f 683/868/774 682/901/774 681/869/775 +f 672/862/770 685/1154/776 684/871/776 +f 687/872/777 677/863/771 674/865/771 +f 688/874/772 689/900/773 679/875/773 +f 690/877/771 688/874/772 676/876/772 +f 691/85/777 690/877/771 677/878/771 +f 692/880/776 691/85/777 687/879/777 +f 693/882/770 692/880/776 685/881/776 +f 694/884/769 693/882/770 672/883/770 +f 695/886/768 694/884/769 671/885/769 +f 696/888/767 695/886/768 670/887/768 +f 697/890/765 696/888/767 667/889/767 +f 662/892/764 665/895/766 699/893/766 +f 698/894/764 697/890/765 663/891/765 +f 700/88/774 699/893/766 665/895/766 +f 701/89/775 700/88/774 683/896/774 +f 703/898/778 701/89/775 680/897/775 +f 689/900/773 703/898/778 702/899/778 +f 682/901/774 683/868/774 665/902/766 +f 666/857/767 667/856/767 670/903/768 +f 684/871/776 685/1154/776 687/872/777 +f 702/904/778 680/870/775 681/869/775 +f 679/906/773 702/904/778 704/905/778 +o Body +v -0.104042 0.181447 2.257226 +v -0.126597 0.181447 2.095622 +v -0.126822 0.146272 2.095582 +v -0.102747 0.146272 2.257226 +v -0.126782 0.112447 2.095582 +v -0.098912 0.112447 2.257226 +v -0.126547 0.081277 2.095582 +v -0.092677 0.081277 2.257226 +v -0.126532 0.053952 2.095582 +v -0.084292 0.053952 2.257226 +v -0.126742 0.031532 2.095582 +v -0.074072 0.031532 2.257226 +v -0.126857 0.014867 2.095582 +v -0.057242 0.014867 2.257226 +v 0.127203 0.081277 2.257226 +v 0.157028 0.041857 2.095577 +v 0.156963 0.112202 2.095577 +v 0.132873 0.112447 2.257226 +v 0.156973 0.146272 2.095582 +v 0.136363 0.146272 2.257226 +v 0.156918 0.181447 2.095582 +v 0.137543 0.181447 2.257226 +v 0.156823 0.216622 2.095577 +v 0.136363 0.216622 2.257226 +v 0.156703 0.250447 2.095577 +v 0.132873 0.250447 2.257226 +v 0.156948 0.303497 2.095577 +v 0.127203 0.281617 2.257226 +v 0.156478 0.368117 2.095577 +v 0.119573 0.308942 2.257226 +v 0.108443 0.367537 2.096226 +v 0.105608 0.331367 2.257226 +v 0.065358 0.367937 2.095962 +v 0.079033 0.348027 2.257226 +v 0.040808 0.368357 2.095427 +v 0.044898 0.358287 2.257226 +v 0.015278 0.367777 2.095107 +v 0.008613 0.361752 2.257226 +v -0.010252 0.367992 2.095267 +v -0.027957 0.358287 2.257226 +v -0.039807 0.368072 2.095676 +v -0.057242 0.348027 2.257226 +v -0.087862 0.368367 2.095827 +v -0.074072 0.331367 2.257226 +v -0.125927 0.368117 2.095577 +v -0.084292 0.308942 2.257226 +v -0.126277 0.316367 2.095582 +v -0.092677 0.281617 2.257226 +v -0.126622 0.252017 2.095577 +v -0.098912 0.250447 2.257226 +v -0.126787 0.216622 2.095622 +v -0.102747 0.216622 2.257226 +v 0.008613 0.001142 2.257226 +v 0.044898 0.004607 2.257226 +v 0.043728 0.008432 2.269892 +v 0.008953 0.005252 2.269151 +v 0.075608 0.018202 2.272082 +v 0.074288 0.018002 2.289217 +v 0.043278 0.009362 2.284971 +v 0.131853 0.238097 2.322901 +v 0.135283 0.206547 2.315361 +v -0.070897 0.313692 2.340766 +v -0.052147 0.329297 2.344187 +v -0.070897 0.033807 2.275636 +v -0.083082 0.054737 2.280421 +v 0.131853 0.109332 2.292907 +v 0.125968 0.080237 2.286257 +v 0.043648 0.338907 2.346182 +v 0.075508 0.329297 2.344187 +v -0.101562 0.140902 2.300132 +v -0.102832 0.173727 2.307687 +v -0.101562 0.206542 2.315372 +v 0.079033 0.014867 2.257226 +v 0.125968 0.267177 2.329957 +v -0.083082 0.292707 2.336036 +v -0.052152 0.018202 2.272082 +v 0.135283 0.140902 2.300132 +v 0.008868 0.342147 2.346867 +v -0.097792 0.109332 2.292907 +v 0.105608 0.031532 2.257226 +v 0.100493 0.033807 2.275636 +v 0.116473 0.292712 2.336031 +v -0.091667 0.267172 2.329972 +v -0.027957 0.004607 2.257226 +v -0.024687 0.008432 2.269892 +v 0.136443 0.173732 2.307687 +v -0.024702 0.338907 2.346182 +v -0.091667 0.080237 2.286257 +v 0.119573 0.053952 2.257226 +v 0.116473 0.054737 2.280421 +v 0.100458 0.313692 2.340756 +v -0.097792 0.238092 2.322917 +v 0.115208 0.050947 2.305392 +v 0.125268 0.073897 2.316697 +v 0.124398 0.061977 2.346682 +v 0.113923 0.042892 2.330552 +v 0.009113 0.310307 2.437171 +v 0.043063 0.307337 2.436047 +v 0.098803 0.032117 2.296112 +v -0.023487 0.307337 2.436037 +v -0.050427 0.298552 2.432451 +v -0.069587 0.284297 2.426202 +v 0.131373 0.100087 2.329607 +v -0.101067 0.128497 2.343702 +v -0.102332 0.158017 2.358666 +v -0.082372 0.265167 2.416776 +v 0.134828 0.128497 2.343697 +v -0.097322 0.100087 2.329607 +v -0.091187 0.242067 2.404372 +v 0.135983 0.158017 2.358647 +v -0.091187 0.073897 2.316697 +v -0.097322 0.215847 2.389842 +v 0.134828 0.187512 2.374151 +v -0.082382 0.050947 2.305392 +v -0.101067 0.187512 2.374202 +v 0.131373 0.215862 2.389791 +v -0.069622 0.032117 2.296112 +v 0.125258 0.242102 2.404341 +v -0.050477 0.018002 2.289217 +v 0.115168 0.265197 2.416767 +v -0.023502 0.009362 2.284971 +v 0.098703 0.284317 2.426207 +v 0.009178 0.006112 2.283536 +v 0.074133 0.298552 2.432456 +v 0.134313 0.107372 2.385381 +v 0.135478 0.131892 2.407136 +v 0.135093 0.098627 2.448882 +v 0.133923 0.080037 2.421551 +v -0.068262 0.237702 2.509001 +v -0.048792 0.250007 2.517802 +v 0.130738 0.083757 2.365137 +v -0.100527 0.107372 2.385396 +v -0.101782 0.131892 2.407187 +v -0.081487 0.221382 2.495207 +v -0.096782 0.083757 2.365142 +v -0.090542 0.201802 2.476442 +v -0.090547 0.061977 2.346682 +v -0.096782 0.179917 2.453947 +v 0.134313 0.156372 2.430287 +v -0.081522 0.042892 2.330552 +v -0.100527 0.156347 2.430351 +v 0.130733 0.179997 2.453917 +v -0.068352 0.027242 2.317312 +v 0.124368 0.201922 2.476486 +v -0.048957 0.015627 2.307477 +v 0.113838 0.221522 2.495322 +v -0.022467 0.008252 2.301422 +v 0.096973 0.237787 2.509116 +v 0.009393 0.005977 2.299371 +v 0.072818 0.250047 2.517882 +v 0.042693 0.008252 2.301422 +v 0.042503 0.257577 2.522491 +v 0.073098 0.015627 2.307477 +v 0.009353 0.260112 2.523916 +v 0.097168 0.027242 2.317312 +v -0.022337 0.257577 2.522466 +v 0.130288 0.135252 2.508852 +v 0.123643 0.152242 2.538101 +v 0.123428 0.098667 2.585832 +v 0.130143 0.086702 2.551897 +v -0.090107 0.045632 2.373337 +v -0.096382 0.062142 2.396302 +v -0.096377 0.135057 2.508687 +v -0.090092 0.151917 2.537687 +v 0.133923 0.117237 2.478221 +v -0.080817 0.031167 2.353256 +v -0.100107 0.117147 2.478212 +v -0.067327 0.019322 2.336787 +v -0.101352 0.098607 2.448906 +v -0.047877 0.010557 2.324547 +v 0.112728 0.167502 2.562846 +v -0.021672 0.005162 2.317007 +v 0.095753 0.180417 2.580732 +v 0.009598 0.003257 2.314461 +v 0.071718 0.190057 2.591747 +v 0.042193 0.005162 2.317007 +v 0.041973 0.196017 2.597352 +v 0.072058 0.010557 2.324547 +v 0.009653 0.198027 2.599011 +v 0.096028 0.019322 2.336787 +v -0.021407 0.195982 2.597237 +v 0.112883 0.031167 2.353256 +v -0.047617 0.189942 2.591491 +v 0.123693 0.045632 2.373337 +v -0.067167 0.180172 2.580297 +v 0.130298 0.062142 2.396297 +v -0.100107 0.080037 2.421576 +v -0.080757 0.167147 2.562307 +v 0.095203 0.118782 2.636012 +v 0.071288 0.125672 2.649157 +v 0.071228 0.059282 2.692111 +v 0.095123 0.055062 2.677587 +v -0.047402 0.001067 2.341511 +v -0.066952 0.007032 2.355487 +v 0.112328 0.109587 2.614851 +v -0.021337 -0.002573 2.332891 +v 0.009633 -0.003798 2.329982 +v 0.041988 -0.002573 2.332891 +v 0.041788 0.129857 2.655817 +v 0.071648 0.001067 2.341511 +v 0.009733 0.131222 2.657737 +v 0.095528 0.007032 2.355487 +v -0.021032 0.129787 2.655612 +v 0.112498 0.015117 2.374301 +v -0.047082 0.125447 2.648592 +v 0.123488 0.025007 2.397232 +v -0.066762 0.118302 2.634996 +v 0.130158 0.036297 2.423471 +v -0.099957 0.048547 2.452266 +v -0.101202 0.061252 2.483346 +v -0.080542 0.109017 2.613652 +v 0.133788 0.048552 2.452266 +v -0.096237 0.036297 2.423471 +v -0.089947 0.098097 2.584816 +v 0.134953 0.061302 2.483371 +v -0.089967 0.025007 2.397232 +v -0.096237 0.086327 2.551286 +v 0.133783 0.074132 2.516822 +v -0.080617 0.015117 2.374301 +v -0.099957 0.073977 2.516632 +v 0.009738 0.062607 2.701731 +v -0.020977 0.061682 2.699227 +v -0.020972 -0.007258 2.732306 +v 0.009738 -0.006813 2.734906 +v 0.041933 -0.018718 2.353367 +v 0.009643 -0.019438 2.350227 +v 0.041763 0.061787 2.699567 +v 0.071538 -0.016558 2.362597 +v 0.095388 -0.013008 2.377592 +v 0.112418 -0.008168 2.397752 +v -0.047002 0.058982 2.691226 +v 0.123453 -0.002253 2.422401 +v -0.066707 0.054557 2.676067 +v 0.130138 0.004507 2.450612 +v -0.099937 0.011832 2.481547 +v -0.101177 0.019462 2.514677 +v -0.080517 0.048592 2.652551 +v 0.133768 0.011847 2.481552 +v -0.096217 0.004507 2.450607 +v -0.089932 0.041837 2.621762 +v 0.134933 0.019522 2.514766 +v -0.089947 -0.002253 2.422401 +v -0.096217 0.034602 2.586362 +v 0.133763 0.027307 2.550277 +v -0.080582 -0.008168 2.397752 +v -0.099937 0.027097 2.549876 +v 0.130128 0.035027 2.587296 +v -0.066867 -0.013008 2.377592 +v 0.123403 0.042477 2.623416 +v -0.047272 -0.016558 2.362597 +v 0.112273 0.049342 2.654462 +v -0.021247 -0.018718 2.353367 +v -0.021152 -0.047593 2.380947 +v 0.009683 -0.047948 2.377752 +v 0.009708 -0.091883 2.410267 +v -0.021057 -0.091763 2.413502 +v 0.112358 -0.042393 2.426476 +v 0.095288 -0.044783 2.405797 +v -0.046992 -0.008633 2.724011 +v 0.123428 -0.039463 2.451837 +v -0.066702 -0.010948 2.708507 +v 0.130133 -0.036123 2.480987 +v -0.099932 -0.032498 2.512922 +v -0.101177 -0.028723 2.546967 +v -0.080517 -0.013993 2.684987 +v 0.133763 -0.032488 2.512932 +v -0.096217 -0.036123 2.480992 +v -0.089927 -0.017503 2.654326 +v 0.134928 -0.028678 2.547066 +v -0.089937 -0.039463 2.451837 +v -0.096217 -0.021188 2.619167 +v 0.133763 -0.024778 2.583122 +v -0.080552 -0.042393 2.426476 +v -0.099932 -0.024923 2.582686 +v 0.130128 -0.020838 2.620347 +v -0.066802 -0.044783 2.405797 +v 0.123403 -0.016968 2.656266 +v -0.047172 -0.046538 2.390441 +v 0.112268 -0.013438 2.687297 +v 0.095118 -0.010478 2.710447 +v 0.071223 -0.008393 2.725106 +v 0.041868 -0.047593 2.380947 +v 0.041763 -0.007183 2.732727 +v 0.071428 -0.046538 2.390441 +v 0.071318 -0.091388 2.422987 +v 0.095193 -0.090763 2.438312 +v 0.095138 -0.150878 2.470521 +v 0.071253 -0.150923 2.455152 +v 0.071223 -0.077493 2.751517 +v 0.095118 -0.078243 2.737706 +v 0.041818 -0.091763 2.413502 +v 0.041763 -0.077093 2.758621 +v 0.009738 -0.076978 2.760701 +v -0.020972 -0.077148 2.758147 +v 0.112303 -0.089913 2.459091 +v -0.046992 -0.077633 2.750282 +v 0.123408 -0.088868 2.484561 +v -0.066702 -0.078498 2.735707 +v 0.130128 -0.087683 2.513982 +v -0.099932 -0.086388 2.546287 +v -0.101177 -0.085048 2.580527 +v -0.080517 -0.079658 2.713696 +v 0.133763 -0.086388 2.546287 +v -0.096217 -0.087683 2.513982 +v -0.089927 -0.080993 2.684916 +v 0.134928 -0.085033 2.580621 +v -0.089932 -0.088868 2.484561 +v -0.096217 -0.082328 2.651492 +v 0.133763 -0.083618 2.616377 +v -0.080527 -0.089913 2.459091 +v -0.099932 -0.083693 2.615967 +v 0.130128 -0.082168 2.652611 +v -0.066747 -0.090763 2.438312 +v 0.123403 -0.080703 2.686902 +v -0.047077 -0.091388 2.422987 +v 0.112268 -0.079328 2.716082 +v 0.123403 -0.150723 2.516716 +v 0.130123 -0.150623 2.546186 +v 0.130118 -0.223168 2.573477 +v 0.123393 -0.222843 2.543906 +v -0.020972 -0.149493 2.778831 +v 0.009738 -0.149478 2.781187 +v 0.112278 -0.150808 2.491152 +v -0.046992 -0.149553 2.771621 +v -0.066702 -0.149653 2.758532 +v -0.099932 -0.150518 2.578537 +v -0.101177 -0.150408 2.612692 +v -0.080517 -0.149838 2.738907 +v 0.133763 -0.150518 2.578542 +v -0.096217 -0.150623 2.546181 +v -0.089927 -0.150003 2.712776 +v 0.134928 -0.150408 2.612751 +v -0.089927 -0.150723 2.516716 +v -0.096217 -0.150168 2.681612 +v 0.133763 -0.150283 2.647907 +v -0.080517 -0.150808 2.491152 +v -0.099932 -0.150293 2.647557 +v 0.130123 -0.150113 2.682542 +v -0.066712 -0.150878 2.470521 +v 0.123403 -0.149903 2.714457 +v -0.047017 -0.150923 2.455152 +v 0.112268 -0.149698 2.740982 +v -0.021002 -0.150948 2.445692 +v 0.095113 -0.149533 2.760386 +v 0.009728 -0.150958 2.442497 +v 0.071223 -0.149478 2.772737 +v 0.041783 -0.150948 2.445692 +v 0.041763 -0.149468 2.779326 +v 0.134923 -0.223888 2.639867 +v 0.133758 -0.224253 2.674222 +v 0.133723 -0.300623 2.692542 +v 0.134888 -0.300128 2.658852 +v -0.099927 -0.223523 2.605856 +v -0.101172 -0.223888 2.639827 +v -0.080507 -0.225168 2.758941 +v -0.066682 -0.225388 2.776417 +v 0.133758 -0.223523 2.605861 +v -0.096207 -0.223168 2.573477 +v -0.089922 -0.224908 2.735567 +v -0.089922 -0.222843 2.543906 +v -0.096207 -0.224598 2.706631 +v -0.080507 -0.222558 2.518296 +v -0.099927 -0.224253 2.674011 +v 0.130118 -0.224593 2.707287 +v -0.066682 -0.222323 2.497396 +v 0.123393 -0.224878 2.736777 +v -0.046972 -0.222148 2.481987 +v 0.112248 -0.225118 2.760502 +v -0.020962 -0.222043 2.472451 +v 0.095093 -0.225333 2.777837 +v 0.009743 -0.222003 2.469197 +v 0.071203 -0.225513 2.788971 +v 0.041758 -0.222043 2.472451 +v 0.041753 -0.225648 2.795027 +v 0.071213 -0.222148 2.481987 +v 0.009743 -0.225703 2.796861 +v 0.095093 -0.222323 2.497396 +v -0.020952 -0.225668 2.794601 +v 0.112248 -0.222558 2.518296 +v -0.046972 -0.225558 2.787992 +v 0.123323 -0.301523 2.751557 +v 0.112143 -0.301888 2.773307 +v 0.111763 -0.367278 2.778981 +v 0.123048 -0.366883 2.758672 +v -0.080437 -0.298328 2.537172 +v -0.089877 -0.298713 2.563031 +v -0.099887 -0.300623 2.692401 +v -0.096172 -0.301093 2.723742 +v 0.130078 -0.301093 2.724152 +v -0.066577 -0.298013 2.516082 +v -0.101127 -0.300128 2.658827 +v -0.046847 -0.297778 2.500422 +v -0.020862 -0.297633 2.490741 +v 0.094963 -0.302198 2.788872 +v 0.009768 -0.297583 2.487487 +v 0.071098 -0.302438 2.799277 +v 0.041703 -0.297633 2.490741 +v 0.041703 -0.302598 2.805131 +v 0.071098 -0.297778 2.500422 +v 0.009773 -0.302658 2.806857 +v 0.094968 -0.298013 2.516082 +v -0.020862 -0.302613 2.804657 +v 0.112143 -0.298328 2.537172 +v -0.046847 -0.302463 2.798387 +v 0.123323 -0.298713 2.563031 +v -0.066577 -0.302228 2.787722 +v 0.130078 -0.299153 2.592726 +v -0.099887 -0.299633 2.625082 +v -0.080437 -0.301908 2.772166 +v 0.133723 -0.299633 2.625082 +v -0.096172 -0.299153 2.592726 +v -0.089877 -0.301528 2.750731 +v 0.070733 -0.367853 2.803761 +v 0.041538 -0.368008 2.809531 +v 0.041153 -0.402038 2.810107 +v 0.069898 -0.401883 2.804367 +v -0.020557 -0.362833 2.500726 +v -0.046437 -0.362983 2.510462 +v 0.094528 -0.367603 2.793827 +v 0.009853 -0.362783 2.497422 +v 0.041538 -0.362833 2.500726 +v 0.070733 -0.362983 2.510462 +v 0.009853 -0.368063 2.811261 +v 0.094528 -0.363228 2.526272 +v -0.020557 -0.368013 2.808902 +v 0.111763 -0.363558 2.547532 +v -0.046437 -0.367863 2.802752 +v 0.123048 -0.363958 2.573517 +v -0.066202 -0.367618 2.792622 +v 0.129888 -0.364413 2.603216 +v -0.099732 -0.364908 2.635497 +v -0.100972 -0.365423 2.668967 +v -0.080162 -0.367288 2.777956 +v 0.133573 -0.364908 2.635507 +v -0.096017 -0.364413 2.603216 +v -0.089687 -0.366888 2.757951 +v 0.134743 -0.365423 2.669007 +v -0.089687 -0.363958 2.573517 +v -0.096017 -0.366433 2.732261 +v 0.133573 -0.365938 2.702047 +v -0.080162 -0.363558 2.547532 +v -0.099732 -0.365938 2.701906 +v 0.129888 -0.366433 2.732651 +v -0.066202 -0.363228 2.526272 +v 0.069898 -0.397023 2.514677 +v 0.041153 -0.396873 2.504946 +v 0.010053 -0.402088 2.811737 +v 0.093518 -0.397268 2.530447 +v -0.019852 -0.402038 2.809427 +v 0.110838 -0.397593 2.551687 +v -0.045492 -0.401888 2.803162 +v 0.122358 -0.397993 2.577567 +v -0.065302 -0.401643 2.793172 +v 0.129398 -0.398448 2.607136 +v -0.099347 -0.398943 2.639172 +v -0.100587 -0.399453 2.672261 +v -0.079472 -0.401313 2.778791 +v 0.133183 -0.398943 2.639192 +v -0.095607 -0.398448 2.607131 +v -0.089192 -0.400918 2.759287 +v 0.134383 -0.399453 2.672342 +v -0.089192 -0.397993 2.577567 +v -0.095607 -0.400463 2.734262 +v 0.133183 -0.399968 2.704881 +v -0.079472 -0.397593 2.551687 +v -0.099347 -0.399968 2.704672 +v 0.129398 -0.400463 2.734692 +v -0.065302 -0.397268 2.530447 +v 0.122358 -0.400918 2.760062 +v -0.045492 -0.397023 2.514677 +v 0.110838 -0.401313 2.779922 +v -0.019852 -0.396873 2.504946 +v 0.093513 -0.401638 2.794411 +v 0.010053 -0.396823 2.501657 +v -0.195687 0.368117 1.774311 +v -0.195687 -0.007073 1.774311 +v -0.125927 -0.007073 2.017036 +v -0.125927 0.368117 2.017036 +v 0.156478 0.368117 2.017036 +v 0.226243 0.368117 1.774311 +v 0.226243 0.368117 1.268341 +v -0.195687 0.366977 1.268341 +v 0.156478 -0.007073 2.017036 +v 0.226243 -0.007073 1.774311 +v 0.156478 -0.007073 2.095577 +v -0.125927 -0.007073 2.095577 +v -0.195687 -0.007073 1.254626 +v 0.226243 -0.007073 1.254626 +v -0.195687 0.550997 1.254626 +v 0.226243 0.550997 1.254626 +v -0.072587 0.420187 2.008317 +v -0.072477 0.361167 2.008317 +v -0.104802 0.368752 2.008317 +v -0.104802 0.420417 2.008317 +v -0.195687 0.549692 1.221916 +v 0.226243 0.550997 1.204016 +v 0.225853 0.550277 1.249016 +v 0.225853 0.633187 1.249016 +v -0.195297 0.633187 1.249016 +v -0.195297 0.550672 1.249016 +v -0.163912 0.658712 1.113386 +v -0.112717 0.696867 0.713111 +v -0.112717 0.549447 0.713111 +v -0.195297 0.549447 1.116916 +v -0.040032 0.696867 0.713111 +v 0.059728 0.696867 0.713111 +v 0.143273 0.696867 0.713111 +v 0.143273 0.549447 0.713111 +v 0.194463 0.658712 1.113386 +v 0.225853 0.549447 1.116916 +v 0.059728 0.696867 0.729606 +v 0.046923 0.696867 0.740811 +v 0.046923 0.696867 0.912051 +v -0.024562 0.696867 0.912051 +v -0.024562 0.696867 0.741876 +v -0.040032 0.696867 0.724806 +v -0.040032 0.689142 0.724806 +v -0.040032 0.689142 0.713111 +v -0.024562 0.689142 0.741876 +v -0.024562 0.689142 0.912051 +v 0.046923 0.689142 0.912051 +v 0.046923 0.689142 0.740811 +v 0.059728 0.689142 0.729606 +v 0.059728 0.689142 0.713111 +v 0.225853 0.593962 1.295721 +v -0.195297 0.593962 1.295721 +v 0.212403 0.550112 1.316051 +v -0.182962 0.550112 1.316051 +v 0.192248 0.345407 1.571866 +v 0.192248 0.545037 1.571866 +v 0.103763 0.546742 1.573221 +v -0.073207 0.546647 1.573161 +v -0.161692 0.545037 1.571866 +v -0.161692 0.345407 1.571866 +v 0.135358 0.420417 2.008317 +v 0.192248 0.420417 1.709236 +v 0.192248 0.367842 1.709236 +v 0.135358 0.369122 2.008317 +v -0.161692 0.368532 1.709236 +v -0.161692 0.420417 1.709236 +v -0.161692 0.520587 1.606886 +v -0.161692 0.489417 1.642786 +v 0.192248 0.489582 1.642891 +v 0.192248 0.520637 1.606921 +v 0.103763 0.535337 1.618551 +v -0.073207 0.534522 1.618026 +v -0.070712 0.420642 1.953486 +v -0.062112 0.420712 1.935831 +v -0.062112 0.361462 1.935831 +v -0.070712 0.361392 1.953486 +v 0.103763 0.513257 1.661546 +v -0.073207 0.511952 1.660701 +v 0.050893 0.420857 1.900291 +v 0.066983 0.420822 1.909211 +v 0.066983 0.361572 1.909211 +v 0.050893 0.361607 1.900291 +v 0.081088 0.420772 1.921211 +v 0.081088 0.361522 1.921211 +v 0.092663 0.420712 1.935831 +v 0.092663 0.361462 1.935831 +v 0.103143 0.420187 2.008317 +v 0.135358 0.361167 2.008317 +v 0.103253 0.360712 2.008317 +v 0.103983 0.415327 2.008317 +v 0.103763 0.421957 1.710461 +v -0.073207 0.421872 1.710406 +v 0.101263 0.420642 1.953486 +v 0.104628 0.361197 2.001492 +v 0.101263 0.361392 1.953486 +v -0.050537 0.420772 1.921211 +v -0.050537 0.361522 1.921211 +v -0.036432 0.420822 1.909211 +v -0.036432 0.361572 1.909211 +v -0.020342 0.420857 1.900291 +v -0.020342 0.361607 1.900291 +v -0.002882 0.420882 1.894726 +v -0.002882 0.361632 1.894726 +v 0.015278 0.420887 1.892916 +v 0.015278 0.361637 1.892916 +v 0.033433 0.420882 1.894726 +v 0.033433 0.361632 1.894726 +v 0.072728 0.361497 1.985322 +v 0.060413 0.357467 1.984221 +v 0.060413 0.357987 1.969821 +v 0.072728 0.363242 1.961426 +v -0.029862 0.357467 1.984221 +v -0.042172 0.361497 1.985322 +v -0.042172 0.363242 1.962436 +v -0.029862 0.357987 1.969821 +v 0.082828 0.366757 1.992096 +v 0.082828 0.367782 1.969347 +v -0.015812 0.354472 1.984221 +v -0.015812 0.355047 1.969717 +v 0.090338 0.372012 1.982836 +v -0.000572 0.352627 1.984221 +v -0.000572 0.353242 1.968827 +v 0.015278 0.352007 1.984221 +v 0.015278 0.352627 1.968521 +v 0.031128 0.352627 1.984221 +v 0.031128 0.353242 1.968827 +v -0.059782 0.372252 1.990866 +v -0.065967 0.384417 1.984371 +v -0.059782 0.372957 1.971326 +v 0.046368 0.354472 1.984221 +v 0.046368 0.355047 1.969717 +v -0.052277 0.366757 1.993742 +v -0.052277 0.366757 1.973552 +v 0.046368 0.356752 1.955771 +v 0.060413 0.359517 1.958616 +v -0.029862 0.359517 1.958616 +v -0.015812 0.356752 1.955771 +v 0.090338 0.374102 1.964501 +v -0.000572 0.355047 1.954021 +v 0.096523 0.384417 1.985411 +v 0.094963 0.381562 1.971781 +v 0.015278 0.354472 1.953426 +v 0.031128 0.355047 1.954021 +v -0.064407 0.378572 1.974307 +v -0.000572 0.357987 1.940376 +v 0.015278 0.357467 1.939516 +v 0.031128 0.357987 1.940376 +v 0.046368 0.359517 1.942921 +v -0.052277 0.369442 1.961657 +v 0.060413 0.362007 1.947241 +v -0.029862 0.362007 1.948291 +v -0.015812 0.359517 1.942921 +v -0.052277 0.374412 1.948831 +v -0.042172 0.368212 1.943866 +v 0.060413 0.369442 1.928741 +v 0.072728 0.371682 1.939526 +v -0.029862 0.365362 1.936131 +v 0.082828 0.371682 1.952761 +v -0.015812 0.363242 1.930786 +v -0.000572 0.361937 1.928416 +v 0.015278 0.361497 1.927326 +v 0.031128 0.361937 1.928416 +v 0.046368 0.363242 1.929736 +v -0.000572 0.366757 1.917736 +v 0.015278 0.366407 1.917316 +v 0.031128 0.366757 1.917736 +v -0.059782 0.377527 1.960471 +v 0.046368 0.372957 1.917011 +v -0.042172 0.375647 1.932931 +v -0.029862 0.374102 1.923296 +v 0.082828 0.377527 1.944441 +v -0.015812 0.372957 1.916506 +v 0.060413 0.379157 1.919916 +v 0.072728 0.379942 1.931296 +v 0.090338 0.379667 1.955586 +v -0.000572 0.372252 1.911116 +v 0.015278 0.372012 1.909686 +v 0.031128 0.372252 1.911116 +v -0.059782 0.384417 1.954947 +v 0.015278 0.384417 1.905541 +v 0.031128 0.384417 1.907051 +v 0.046368 0.384417 1.912161 +v -0.052277 0.384417 1.941311 +v -0.042172 0.384417 1.928946 +v -0.029862 0.384417 1.919221 +v -0.015812 0.384417 1.912001 +v -0.000572 0.384417 1.907051 +v 0.082828 0.384417 1.941681 +v -0.054747 0.410147 1.984442 +v -0.050687 0.412272 1.963086 +v 0.029208 0.411657 1.916271 +v 0.042598 0.416322 1.922586 +v -0.044087 0.412272 1.948071 +v 0.054943 0.415307 1.928896 +v -0.035207 0.413937 1.937821 +v 0.065763 0.413937 1.937631 +v -0.024387 0.415307 1.929656 +v 0.074643 0.415032 1.951711 +v -0.012047 0.416322 1.922586 +v 0.081238 0.410367 1.961992 +v 0.001348 0.411657 1.916271 +v 0.085303 0.410147 1.984046 +v 0.015278 0.411767 1.913636 +v 0.001348 0.423157 1.926791 +v 0.015278 0.420487 1.921621 +v 0.029208 0.423157 1.926791 +v 0.042598 0.422637 1.936496 +v 0.054943 0.421792 1.940636 +v -0.035207 0.422417 1.949106 +v 0.065763 0.420657 1.943601 +v -0.024387 0.423867 1.945071 +v -0.012047 0.422637 1.932076 +v 0.081238 0.415307 1.967831 +v 0.015278 0.425822 1.933986 +v -0.012047 0.426827 1.948986 +v 0.001348 0.427607 1.946311 +v 0.029208 0.427607 1.944816 +v -0.050687 0.416322 1.973017 +v -0.044087 0.420657 1.957952 +v 0.010993 0.429387 1.984911 +v 0.065763 0.423867 1.959557 +v -0.044087 0.422637 1.972241 +v 0.042598 0.426827 1.950346 +v -0.035207 0.424937 1.969486 +v 0.074643 0.421792 1.962707 +v 0.015278 0.427867 1.948406 +v 0.065763 0.425602 1.976111 +v 0.074643 0.423157 1.976421 +v -0.049832 0.419682 1.989562 +v 0.074643 0.423157 1.993811 +v -0.044087 0.423157 1.990957 +v -0.035207 0.425602 1.991261 +v 0.065763 0.425602 1.992446 +v -0.044087 0.421792 2.005007 +v -0.035207 0.423867 2.007536 +v 0.065763 0.423867 2.007051 +v 0.081238 0.416322 1.997272 +v 0.074643 0.420657 2.011071 +v 0.001348 0.425602 2.029992 +v 0.015278 0.427867 2.022802 +v 0.029208 0.425602 2.029171 +v -0.050687 0.412272 2.004812 +v 0.042598 0.424937 2.028047 +v 0.015278 0.425822 2.035047 +v 0.065763 0.420657 2.024581 +v -0.024387 0.421792 2.027916 +v -0.012047 0.422637 2.032146 +v 0.081238 0.408302 2.008471 +v -0.044087 0.415032 2.018562 +v 0.054943 0.421792 2.026891 +v -0.035207 0.420657 2.024837 +v 0.029208 0.420367 2.047677 +v 0.042598 0.411337 2.047562 +v 0.054943 0.415307 2.040537 +v -0.035207 0.413937 2.030951 +v 0.065763 0.410122 2.033127 +v -0.024387 0.415307 2.040177 +v 0.074643 0.409272 2.022362 +v -0.012047 0.411337 2.048382 +v 0.001348 0.420367 2.047677 +v 0.015278 0.420487 2.048441 +v 0.001348 0.411657 2.053447 +v 0.015278 0.411767 2.054806 +v 0.029208 0.411657 2.053447 +v 0.031128 0.384417 2.061387 +v 0.046368 0.384417 2.056911 +v -0.059782 0.384417 2.014647 +v -0.052277 0.384417 2.027192 +v 0.060413 0.384417 2.049217 +v -0.042172 0.384417 2.039496 +v 0.072728 0.384417 2.039856 +v -0.029862 0.384417 2.049217 +v 0.082828 0.384417 2.027931 +v -0.015812 0.384417 2.056911 +v 0.090338 0.384417 2.015052 +v -0.000572 0.384417 2.061387 +v 0.094963 0.381562 1.997797 +v 0.015278 0.384417 2.062901 +v -0.064407 0.381562 1.997211 +v 0.046368 0.372957 2.051937 +v 0.060413 0.374102 2.045146 +v -0.052277 0.377527 2.023782 +v -0.042172 0.375647 2.036031 +v 0.072728 0.375647 2.036031 +v -0.029862 0.374102 2.045146 +v 0.082828 0.377527 2.023097 +v -0.015812 0.372957 2.051937 +v -0.000572 0.372252 2.057322 +v 0.015278 0.372012 2.058757 +v 0.031128 0.372252 2.057322 +v 0.090338 0.377527 2.009461 +v -0.000572 0.366757 2.050707 +v 0.015278 0.366407 2.051126 +v 0.031128 0.366757 2.050707 +v -0.059782 0.377527 2.009562 +v -0.052277 0.371682 2.014802 +v -0.042172 0.368212 2.023762 +v 0.060413 0.365362 2.032311 +v 0.072728 0.368212 2.023077 +v -0.029862 0.365362 2.032311 +v 0.082828 0.369442 2.009331 +v -0.015812 0.363242 2.037657 +v -0.000572 0.361937 2.040026 +v 0.015278 0.361497 2.041116 +v 0.031128 0.361937 2.040026 +v 0.046368 0.363242 2.037657 +v -0.000572 0.357987 2.028067 +v 0.015278 0.357467 2.028927 +v 0.031128 0.357987 2.028067 +v 0.046368 0.359517 2.025522 +v 0.060413 0.362007 2.022481 +v -0.029862 0.362007 2.022481 +v -0.015812 0.359517 2.025522 +v 0.060413 0.359517 2.009826 +v 0.072728 0.363242 2.004677 +v -0.042172 0.363242 2.004061 +v -0.029862 0.359517 2.009826 +v -0.015812 0.356752 2.012671 +v 0.090338 0.372957 1.996261 +v -0.000572 0.355047 2.014421 +v 0.015278 0.354472 2.015012 +v 0.031128 0.355047 2.014421 +v 0.046368 0.356752 2.012671 +v 0.015278 0.352627 1.999922 +v 0.031128 0.353242 1.999616 +v 0.046368 0.355047 1.998726 +v 0.060413 0.357987 1.998621 +v -0.029862 0.357987 1.998621 +v -0.015812 0.355047 1.998726 +v -0.000572 0.353242 1.999616 +v 0.003258 0.370252 2.281246 +v 0.027493 0.370302 2.281246 +v 0.035023 0.408137 2.129462 +v -0.001387 0.408622 2.129462 +v -0.010042 0.367867 2.038851 +v -0.009962 0.401282 2.038902 +v 0.042338 0.401057 2.038902 +v 0.042258 0.367607 2.038851 +v 0.028093 0.384792 2.329497 +v 0.028093 0.363512 2.388186 +v 0.028093 0.327292 2.388186 +v 0.002468 0.327292 2.388186 +v 0.002468 0.384792 2.329497 +v 0.002468 0.363512 2.388186 +v 0.068013 -0.228233 2.518971 +v 0.068013 0.013907 2.518971 +v -0.037457 0.019012 2.517522 +v -0.037457 -0.228233 2.518971 +v -0.037457 0.037037 2.228512 +v -0.037457 -0.035548 2.363811 +v -0.037457 -0.114833 2.420382 +v -0.037457 -0.141213 2.430486 +v -0.037457 -0.157813 2.407912 +v -0.037457 -0.182318 2.256881 +v -0.037457 -0.163618 1.540676 +v -0.037457 -0.140853 1.439856 +v -0.037457 -0.118898 1.414651 +v -0.037457 -0.031898 1.387006 +v -0.037457 -0.002833 1.394031 +v -0.037457 0.005912 1.234126 +v -0.037457 -0.120743 1.234126 +v -0.037457 -0.156103 1.249301 +v -0.037457 -0.195388 1.282306 +v -0.037457 -0.228233 1.336521 +v 0.068013 -0.119953 1.234126 +v 0.068013 -0.154528 1.248516 +v 0.068013 -0.228233 1.336521 +v 0.068013 -0.002833 1.394031 +v 0.068013 0.005912 1.234126 +v 0.068013 0.037037 2.228512 +v 0.068013 -0.182418 2.255682 +v 0.068013 -0.163683 1.539216 +v 0.068013 -0.158043 2.408497 +v 0.068013 -0.114508 2.418916 +v 0.068013 -0.141163 2.430047 +v 0.068013 -0.118023 1.413936 +v 0.068013 -0.033723 1.385836 +v 0.068013 -0.142608 1.440866 +v 0.068013 -0.035388 2.363081 +v 0.068013 -0.196963 1.283091 +v -0.005942 -0.042618 2.338112 +v -0.005942 -0.100638 2.320961 +v 0.036498 -0.101533 2.320857 +v 0.036498 -0.042803 2.338292 +v -0.005942 -0.137968 2.278247 +v 0.036498 -0.138033 2.277931 +v -0.005942 -0.147408 2.241127 +v 0.036498 -0.147388 2.241152 +v -0.005942 -0.142673 2.231221 +v 0.036498 -0.143133 2.231192 +v -0.005942 -0.129093 2.239007 +v 0.036498 -0.129233 2.238621 +v 0.036498 -0.123748 2.260201 +v -0.005942 -0.123638 2.260462 +v 0.036498 -0.099003 2.279491 +v -0.005942 -0.098758 2.279876 +v 0.036498 -0.053278 2.297096 +v 0.036498 0.010987 2.287022 +v 0.036498 0.020827 2.323677 +v -0.005942 -0.053098 2.296906 +v -0.005942 0.011037 2.286762 +v -0.005942 0.020817 2.323792 +v 0.199578 0.029307 1.023416 +v -0.169022 0.029307 1.023416 +v -0.150432 -0.016318 1.023416 +v 0.180983 -0.016318 1.023416 +v -0.169022 -0.114193 1.023416 +v -0.145087 0.006777 0.042916 +v -0.145087 -0.145488 0.162656 +v 0.175643 0.006777 0.042916 +v 0.174613 -0.144813 0.163436 +v 0.199578 -0.114193 1.023416 +v -0.150432 -0.068568 1.023416 +v -0.150432 -0.066233 1.289691 +v -0.150432 -0.005218 1.289691 +v 0.180983 -0.068568 1.023416 +v 0.180983 -0.066233 1.289691 +v 0.180983 -0.005218 1.289691 +v -0.155997 -0.038078 1.318871 +v 0.175418 -0.038078 1.318871 +v -0.155997 0.015692 1.348681 +v 0.175418 0.015692 1.348681 +v 0.215908 -0.146428 0.163306 +v 0.215908 -0.056528 0.163306 +v -0.185352 -0.056528 0.163306 +v -0.185352 -0.146428 0.163306 +v -0.185352 -0.056528 -0.146719 +v -0.185352 -0.101478 -0.146719 +v -0.185352 -0.146428 -0.146719 +v 0.015278 -0.101478 -0.209519 +v 0.015278 -0.056528 -0.209519 +v 0.215908 -0.030858 -0.146719 +v 0.215908 -0.101478 -0.146719 +v 0.215908 -0.146428 -0.146719 +v 0.015278 -0.146428 -0.209519 +v 0.175288 -0.143243 0.196526 +v 0.174613 -0.060373 0.196071 +v -0.146542 -0.056528 0.191646 +v -0.144587 -0.143313 0.194191 +v -0.405377 0.476302 0.692766 +v -0.405352 0.476302 0.758991 +v -0.424372 0.386822 0.759151 +v -0.424397 0.386822 0.692766 +v 0.010783 0.341082 0.692766 +v 0.010808 0.341082 0.759231 +v 0.010808 0.432562 0.759066 +v 0.010783 0.432562 0.692766 +v -0.405352 0.297342 0.759311 +v -0.405377 0.297342 0.692766 +v -0.026402 0.516132 0.758921 +v -0.026422 0.516132 0.692766 +v -0.351582 0.223332 0.759446 +v -0.351607 0.223332 0.692766 +v -0.094382 0.577342 0.758811 +v -0.094407 0.577342 0.692766 +v -0.272362 0.177592 0.759526 +v -0.272382 0.177592 0.692766 +v -0.181382 0.605612 0.758756 +v -0.181407 0.605612 0.692766 +v -0.181382 0.168032 0.759546 +v -0.181407 0.168032 0.692766 +v -0.272362 0.596047 0.758776 +v -0.272382 0.596047 0.692766 +v -0.094382 0.196302 0.759491 +v -0.094407 0.196302 0.692766 +v -0.351587 0.550307 0.758856 +v -0.351607 0.550307 0.692766 +v -0.026402 0.257512 0.759381 +v -0.026422 0.257512 0.692766 +v -0.405212 0.476302 1.173446 +v -0.424232 0.386822 1.173446 +v -0.365537 0.386822 1.234656 +v -0.351437 0.453157 1.234626 +v -0.405212 0.297342 1.173446 +v -0.351437 0.320487 1.234626 +v -0.351442 0.223332 1.173446 +v -0.311572 0.265622 1.234546 +v -0.026257 0.516132 1.173446 +v -0.094242 0.577342 1.173446 +v -0.120902 0.528062 1.234116 +v -0.070502 0.482682 1.233996 +v -0.272217 0.177592 1.173446 +v -0.252842 0.231712 1.234421 +v -0.181242 0.605612 1.173446 +v -0.185397 0.549017 1.234271 +v -0.181242 0.168032 1.173446 +v -0.185397 0.224627 1.234271 +v -0.272217 0.596047 1.173446 +v -0.252842 0.541927 1.234421 +v -0.094242 0.196302 1.173446 +v -0.120902 0.245582 1.234116 +v -0.351442 0.550307 1.173446 +v -0.311572 0.508022 1.234546 +v -0.026257 0.257512 1.173446 +v -0.070502 0.290957 1.233996 +v 0.010948 0.341082 1.173446 +v -0.042922 0.352912 1.233926 +v -0.091882 0.363732 1.259541 +v -0.110667 0.321542 1.259606 +v -0.311577 0.386822 1.260296 +v -0.301972 0.431992 1.260261 +v -0.042922 0.420727 1.233926 +v -0.091882 0.409912 1.259541 +v -0.301972 0.341647 1.260261 +v -0.110667 0.452102 1.259606 +v -0.274827 0.304287 1.260171 +v -0.144987 0.483002 1.259726 +v -0.234832 0.281197 1.260031 +v -0.188907 0.497272 1.259876 +v -0.188907 0.276367 1.259876 +v -0.234837 0.492447 1.260031 +v -0.144987 0.290642 1.259726 +v -0.274827 0.469357 1.260171 +v -0.260057 0.413807 1.272991 +v -0.243842 0.436127 1.272976 +v -0.134547 0.373027 1.272886 +v -0.145772 0.347822 1.272896 +v -0.265797 0.386822 1.272996 +v -0.134547 0.400617 1.272886 +v -0.260057 0.359837 1.272991 +v -0.145772 0.425822 1.272896 +v -0.243842 0.337512 1.272976 +v -0.166272 0.444282 1.272911 +v -0.219947 0.323722 1.272956 +v -0.192512 0.452807 1.272936 +v -0.192512 0.320837 1.272936 +v -0.219947 0.449922 1.272956 +v -0.166272 0.329362 1.272911 +v -0.226847 0.399147 1.287626 +v -0.219442 0.409342 1.287626 +v -0.169522 0.380522 1.287626 +v -0.174647 0.369007 1.287626 +v -0.229467 0.386822 1.287626 +v -0.169522 0.393122 1.287626 +v -0.226847 0.374497 1.287626 +v -0.174647 0.404632 1.287626 +v -0.219442 0.364302 1.287626 +v -0.184012 0.413067 1.287626 +v -0.208527 0.358002 1.287626 +v -0.195997 0.416957 1.287626 +v -0.195997 0.356682 1.287626 +v -0.208527 0.415642 1.287626 +v -0.184012 0.360577 1.287626 +v 0.027873 0.338482 0.691421 +v -0.012007 0.248907 0.691421 +v -0.084867 0.591707 0.691421 +v -0.012007 0.526097 0.691421 +v 0.027873 0.436527 0.691421 +v -0.084867 0.183302 0.691421 +v -0.178117 0.153002 0.691421 +v -0.026422 0.516132 0.748081 +v -0.012007 0.526097 0.750706 +v -0.084867 0.591707 0.750706 +v -0.094407 0.577342 0.748081 +v -0.275627 0.163252 0.691421 +v 0.010783 0.432562 0.748081 +v 0.027873 0.436527 0.750706 +v -0.360542 0.212277 0.691421 +v 0.010783 0.341082 0.748081 +v 0.027873 0.338482 0.750706 +v -0.026422 0.257512 0.748081 +v -0.012007 0.248907 0.750706 +v -0.418172 0.291597 0.691421 +v -0.094407 0.196302 0.748081 +v -0.084867 0.183302 0.750706 +v -0.275627 0.611757 0.691421 +v -0.178117 0.622007 0.691421 +v -0.181407 0.168032 0.748081 +v -0.178117 0.153002 0.750706 +v -0.272382 0.177592 0.748081 +v -0.275627 0.163252 0.750706 +v -0.351607 0.223332 0.748081 +v -0.360542 0.212277 0.750706 +v -0.405377 0.297342 0.748081 +v -0.418172 0.291597 0.750706 +v -0.438557 0.387502 0.691421 +v -0.424397 0.386822 0.748081 +v -0.438557 0.387502 0.750706 +v -0.418172 0.483412 0.691421 +v -0.178117 0.622007 0.750706 +v -0.181407 0.605612 0.748081 +v -0.275627 0.611757 0.750706 +v -0.272387 0.596047 0.748081 +v -0.360542 0.562732 0.691421 +v -0.360542 0.562732 0.750706 +v -0.351607 0.550307 0.748081 +v -0.405377 0.476302 0.748081 +v -0.418172 0.483412 0.750706 +v -0.181382 0.605612 0.785201 +v -0.272362 0.596047 0.785216 +v -0.276952 0.610177 0.786086 +v -0.179832 0.620387 0.786066 +v -0.014382 0.248777 0.758506 +v 0.025338 0.337992 0.758346 +v -0.361527 0.212292 0.758571 +v -0.276952 0.163462 0.758661 +v -0.424372 0.386822 0.785596 +v -0.405352 0.297342 0.785756 +v -0.418927 0.291297 0.786656 +v -0.439232 0.386822 0.786486 +v -0.086952 0.590207 0.757891 +v -0.179832 0.620387 0.757836 +v -0.276952 0.610177 0.757856 +v -0.272362 0.177592 0.785971 +v -0.181382 0.168032 0.785986 +v -0.179832 0.153257 0.786906 +v -0.276952 0.163462 0.786886 +v -0.179832 0.153257 0.758676 +v -0.086952 0.183432 0.758621 +v -0.439232 0.386822 0.758256 +v -0.418927 0.291297 0.758431 +v -0.351587 0.550307 0.785301 +v -0.361527 0.561347 0.786171 +v 0.025338 0.435647 0.758171 +v -0.014382 0.524862 0.758011 +v -0.351582 0.223332 0.785886 +v -0.361527 0.212292 0.786801 +v -0.361527 0.561347 0.757946 +v 0.025338 0.337992 0.786576 +v 0.025338 0.435647 0.786401 +v -0.014382 0.524862 0.786241 +v -0.086952 0.590207 0.786121 +v -0.086952 0.183432 0.786851 +v -0.014382 0.248777 0.786736 +v -0.418927 0.482342 0.758086 +v -0.418927 0.482342 0.786316 +v -0.405352 0.476302 0.785431 +v 0.010808 0.341082 0.785676 +v 0.010808 0.432562 0.785511 +v -0.026402 0.516132 0.785361 +v -0.094382 0.577342 0.785251 +v -0.094382 0.196302 0.785936 +v -0.026402 0.257512 0.785826 +v -0.272552 0.177007 0.800751 +v -0.181317 0.167417 0.800766 +v -0.094072 0.195767 0.800716 +v -0.025902 0.257147 0.800606 +v -0.424992 0.386822 0.800371 +v -0.405917 0.297092 0.800536 +v 0.011413 0.432687 0.800291 +v -0.025902 0.516492 0.800141 +v -0.181322 0.606222 0.799976 +v -0.272552 0.596637 0.799996 +v -0.351997 0.222872 0.800666 +v -0.094072 0.577877 0.800031 +v -0.351997 0.550767 0.800076 +v -0.405917 0.476552 0.800211 +v 0.011413 0.340952 0.800456 +v 0.020863 0.468167 0.694041 +v 0.020883 0.468167 0.760271 +v 0.001863 0.378687 0.760431 +v 0.001843 0.378687 0.694046 +v 0.437023 0.332947 0.694041 +v 0.437043 0.332952 0.760511 +v 0.437043 0.424427 0.760346 +v 0.437023 0.424427 0.694046 +v 0.020883 0.289207 0.760591 +v 0.020863 0.289207 0.694046 +v 0.399838 0.507997 0.760196 +v 0.399813 0.507997 0.694046 +v 0.074653 0.215202 0.760721 +v 0.074633 0.215202 0.694046 +v 0.331858 0.569207 0.760086 +v 0.331833 0.569207 0.694046 +v 0.153878 0.169462 0.760806 +v 0.153853 0.169462 0.694046 +v 0.244853 0.597477 0.760036 +v 0.244833 0.597477 0.694046 +v 0.244853 0.159902 0.760821 +v 0.244833 0.159902 0.694046 +v 0.153878 0.587917 0.760051 +v 0.153853 0.587917 0.694046 +v 0.331858 0.188167 0.760771 +v 0.331833 0.188167 0.694046 +v 0.074653 0.542177 0.760136 +v 0.074633 0.542177 0.694046 +v 0.399838 0.249382 0.760661 +v 0.399813 0.249382 0.694046 +v 0.021028 0.468167 1.174726 +v 0.002008 0.378687 1.174726 +v 0.060703 0.378687 1.235931 +v 0.074803 0.445022 1.235906 +v 0.437188 0.332952 1.174726 +v 0.437188 0.424427 1.174726 +v 0.383318 0.412597 1.235201 +v 0.383318 0.344782 1.235201 +v 0.021028 0.289207 1.174726 +v 0.074803 0.312352 1.235906 +v 0.399978 0.507997 1.174726 +v 0.355733 0.474552 1.235271 +v 0.074798 0.215202 1.174726 +v 0.114663 0.257492 1.235821 +v 0.331998 0.569207 1.174726 +v 0.305338 0.519927 1.235396 +v 0.154018 0.169462 1.174726 +v 0.173398 0.223582 1.235701 +v 0.244998 0.597477 1.174726 +v 0.240843 0.540887 1.235546 +v 0.244998 0.159902 1.174726 +v 0.240843 0.216492 1.235546 +v 0.154018 0.587917 1.174726 +v 0.173398 0.533797 1.235701 +v 0.331998 0.188167 1.174726 +v 0.305338 0.237447 1.235396 +v 0.074798 0.542177 1.174726 +v 0.114663 0.499887 1.235821 +v 0.399978 0.249382 1.174726 +v 0.355733 0.282827 1.235271 +v 0.334358 0.355597 1.260821 +v 0.315573 0.313407 1.260886 +v 0.114663 0.378687 1.261571 +v 0.124263 0.423862 1.261541 +v 0.334358 0.401782 1.260821 +v 0.124263 0.333517 1.261541 +v 0.315573 0.443967 1.260886 +v 0.151408 0.296157 1.261446 +v 0.281253 0.474872 1.261001 +v 0.191403 0.273062 1.261311 +v 0.237333 0.489142 1.261156 +v 0.237333 0.268237 1.261156 +v 0.191403 0.484312 1.261311 +v 0.281253 0.282507 1.261001 +v 0.151408 0.461222 1.261446 +v 0.166178 0.405677 1.274271 +v 0.182398 0.427997 1.274256 +v 0.291688 0.364892 1.274161 +v 0.280468 0.339692 1.274171 +v 0.160443 0.378687 1.274276 +v 0.291688 0.392482 1.274166 +v 0.166178 0.351702 1.274271 +v 0.280468 0.417687 1.274171 +v 0.182398 0.329382 1.274256 +v 0.259968 0.436147 1.274191 +v 0.206288 0.315587 1.274236 +v 0.233728 0.444672 1.274216 +v 0.233728 0.312702 1.274216 +v 0.206288 0.441792 1.274236 +v 0.259968 0.321232 1.274191 +v 0.199393 0.391012 1.288906 +v 0.206798 0.401207 1.288906 +v 0.256718 0.372387 1.288906 +v 0.251593 0.360877 1.288906 +v 0.196773 0.378687 1.288906 +v 0.256718 0.384987 1.288906 +v 0.199393 0.366362 1.288906 +v 0.251593 0.396502 1.288906 +v 0.206798 0.356167 1.288906 +v 0.242228 0.404932 1.288906 +v 0.217713 0.349867 1.288906 +v 0.230243 0.408827 1.288906 +v 0.230243 0.348552 1.288906 +v 0.217713 0.407507 1.288906 +v 0.242228 0.352447 1.288906 +v 0.454113 0.330347 0.692696 +v 0.414233 0.240777 0.692696 +v 0.341368 0.583572 0.692696 +v 0.414233 0.517967 0.692696 +v 0.454113 0.428397 0.692696 +v 0.341368 0.175172 0.692696 +v 0.248123 0.144872 0.692696 +v 0.399813 0.507997 0.749356 +v 0.414233 0.517967 0.751986 +v 0.341368 0.583572 0.751986 +v 0.331833 0.569207 0.749356 +v 0.150608 0.155122 0.692696 +v 0.437023 0.424427 0.749356 +v 0.454113 0.428397 0.751986 +v 0.065698 0.204142 0.692696 +v 0.437023 0.332952 0.749356 +v 0.454113 0.330347 0.751986 +v 0.399813 0.249382 0.749356 +v 0.414233 0.240777 0.751986 +v 0.008068 0.283467 0.692696 +v 0.331833 0.188167 0.749356 +v 0.341368 0.175172 0.751986 +v 0.150608 0.603622 0.692696 +v 0.248123 0.613872 0.692696 +v 0.244833 0.159902 0.749356 +v 0.248123 0.144872 0.751986 +v 0.153853 0.169462 0.749356 +v 0.150608 0.155122 0.751986 +v 0.074633 0.215202 0.749356 +v 0.065698 0.204142 0.751986 +v 0.020863 0.289207 0.749356 +v 0.008068 0.283467 0.751986 +v -0.012317 0.379372 0.692696 +v 0.001843 0.378687 0.749356 +v -0.012317 0.379372 0.751986 +v 0.008068 0.475277 0.692696 +v 0.248123 0.613872 0.751986 +v 0.244833 0.597477 0.749361 +v 0.150608 0.603622 0.751986 +v 0.153853 0.587917 0.749361 +v 0.065698 0.554602 0.692696 +v 0.065698 0.554602 0.751986 +v 0.074633 0.542177 0.749356 +v 0.020863 0.468167 0.749356 +v 0.008068 0.475277 0.751986 +v 0.244853 0.597477 0.786481 +v 0.153878 0.587917 0.786496 +v 0.149288 0.602047 0.787366 +v 0.246408 0.612252 0.787346 +v 0.451578 0.329862 0.759626 +v 0.411858 0.240647 0.759786 +v 0.149288 0.155332 0.759936 +v 0.064713 0.204162 0.759851 +v 0.001863 0.378687 0.786871 +v 0.020883 0.289207 0.787031 +v 0.007313 0.283167 0.787936 +v -0.012992 0.378687 0.787766 +v 0.246408 0.612252 0.759116 +v 0.339283 0.582077 0.759171 +v 0.149288 0.602047 0.759136 +v 0.153878 0.169462 0.787251 +v 0.244853 0.159902 0.787266 +v 0.246408 0.145122 0.788186 +v 0.149288 0.155332 0.788166 +v 0.339283 0.175302 0.759901 +v 0.246408 0.145122 0.759956 +v 0.007313 0.283167 0.759706 +v -0.012992 0.378687 0.759536 +v 0.074653 0.542177 0.786576 +v 0.064713 0.553217 0.787451 +v 0.411858 0.516732 0.759291 +v 0.451578 0.427517 0.759451 +v 0.074653 0.215202 0.787166 +v 0.064713 0.204162 0.788081 +v 0.064713 0.553217 0.759221 +v 0.451578 0.427517 0.787676 +v 0.451578 0.329862 0.787856 +v 0.339283 0.582077 0.787401 +v 0.411858 0.516732 0.787516 +v 0.411858 0.240647 0.788016 +v 0.339283 0.175302 0.788131 +v 0.007313 0.474212 0.759366 +v 0.007313 0.474212 0.787596 +v 0.020883 0.468167 0.786711 +v 0.437043 0.332952 0.786956 +v 0.437043 0.424427 0.786791 +v 0.399838 0.507997 0.786641 +v 0.331858 0.569207 0.786531 +v 0.331858 0.188167 0.787216 +v 0.399838 0.249382 0.787106 +v 0.153688 0.168872 0.802026 +v 0.244918 0.159287 0.802046 +v 0.332163 0.187632 0.801996 +v 0.400338 0.249017 0.801886 +v 0.001248 0.378687 0.801651 +v 0.020318 0.288957 0.801811 +v 0.437648 0.424557 0.801571 +v 0.400338 0.508362 0.801421 +v 0.244918 0.598092 0.801256 +v 0.153688 0.588502 0.801276 +v 0.074243 0.214742 0.801946 +v 0.332163 0.569742 0.801306 +v 0.074243 0.542637 0.801356 +v 0.020318 0.468422 0.801491 +v 0.437648 0.332822 0.801736 +v -0.249467 0.123607 0.115621 +v -0.201507 0.144282 0.043111 +v -0.194487 0.098417 0.095811 +v -0.249117 0.069677 0.148706 +v -0.249702 0.006062 0.161116 +v -0.178337 0.006062 0.090431 +v 0.259653 -0.059968 0.155936 +v 0.260403 -0.026528 0.161351 +v 0.261973 0.006062 0.169246 +v 0.270863 0.071562 0.153176 +v 0.237073 0.101157 0.116411 +v 0.270838 0.127097 0.119111 +v 0.242483 0.006062 0.156216 +v 0.233628 -0.059968 0.129331 +v 0.254098 0.148382 0.085936 +v 0.231408 0.039452 0.137666 +v 0.224008 0.071562 0.109896 +v 0.220333 0.006062 0.119111 +v 0.212933 0.039452 0.091346 +v 0.216253 -0.059968 0.085781 +v 0.235408 0.148382 0.043106 +v 0.216163 0.101157 0.052541 +v 0.205533 0.006062 0.063581 +v 0.204418 -0.027333 0.043111 +v 0.280013 0.167402 1.076756 +v -0.249462 0.167402 1.076756 +v -0.195562 0.171577 1.154261 +v 0.226118 0.171577 1.154261 +v -0.249462 -0.024483 1.076756 +v -0.249462 0.167402 0.043106 +v -0.249462 0.157162 0.043106 +v -0.247902 -0.056813 0.151881 +v -0.249462 -0.056978 0.143861 +v 0.270688 0.167402 0.043106 +v -0.195562 -0.008773 1.154261 +v -0.195562 0.171577 1.252271 +v 0.280013 -0.024483 1.076756 +v 0.226118 -0.008773 1.154261 +v 0.226118 0.171577 1.252271 +v 0.264308 0.038652 0.161351 +v 0.265473 0.170412 0.043106 +v -0.182537 -0.057553 0.083401 +vn -0.9964 0.0014 0.0850 +vn -0.9897 -0.0004 0.1434 +vn -0.9936 -0.0711 0.0880 +vn -0.9870 -0.0115 0.1601 +vn -0.9835 -0.1488 0.1027 +vn -0.9817 -0.0152 0.1896 +vn -0.9623 -0.2399 0.1280 +vn -0.9728 -0.0112 0.2315 +vn -0.9164 -0.3578 0.1795 +vn -0.9588 -0.0110 0.2839 +vn -0.7942 -0.5529 0.2522 +vn -0.9477 -0.0516 0.3149 +vn -0.4925 -0.8183 0.2965 +vn 0.9678 -0.2191 0.1239 +vn 0.9880 -0.0171 0.1533 +vn 0.9863 -0.1422 0.0839 +vn 0.9950 -0.0648 0.0764 +vn 0.9924 -0.0017 0.1233 +vn 0.9973 0.0014 0.0733 +vn 0.9924 0.0052 0.1227 +vn 0.9944 0.0664 0.0824 +vn 0.9882 0.0169 0.1523 +vn 0.9852 0.1432 0.0946 +vn 0.9676 0.2183 0.1267 +vn 0.9788 0.0157 0.2042 +vn 0.9248 0.3436 0.1632 +vn 0.0803 0.9662 0.2449 +vn 0.6616 0.7101 0.2410 +vn 0.7916 0.4929 0.3612 +vn 0.0306 0.9838 0.1768 +vn 0.3901 0.9039 0.1756 +vn 0.0312 0.9952 0.0923 +vn 0.1843 0.9724 0.1433 +vn 0.0041 0.9987 0.0503 +vn -0.0017 0.9911 0.1334 +vn -0.0011 0.9988 0.0489 +vn -0.2072 0.9681 0.1411 +vn -0.0152 0.9957 0.0912 +vn -0.4980 0.8480 0.1816 +vn -0.0325 0.9827 0.1826 +vn -0.7764 0.5855 0.2334 +vn -0.0961 0.9635 0.2499 +vn -0.8489 0.3869 0.3603 +vn -0.9336 0.3215 0.1579 +vn -0.9725 0.0210 0.2319 +vn -0.9626 0.2325 0.1391 +vn -0.9842 0.0234 0.1755 +vn -0.9819 0.1561 0.1077 +vn -0.9928 0.0727 0.0953 +vn -0.9897 0.0025 0.1433 +vn 0.1654 -0.9574 0.2369 +vn 0.0005 -0.9805 0.1968 +vn 0.0002 -0.9778 0.2095 +vn 0.3925 -0.9050 0.1639 +vn 0.1840 -0.9829 0.0040 +vn 0.1816 -0.9655 0.1867 +vn 0.9884 0.1439 0.0488 +vn 0.9973 0.0665 0.0302 +vn -0.4964 0.8318 0.2484 +vn -0.7700 -0.6291 0.1064 +vn -0.9106 -0.4130 0.0132 +vn 0.9621 -0.2726 -0.0004 +vn 0.1933 0.9432 0.2701 +vn 0.4156 0.8723 0.2578 +vn -0.9998 -0.0020 0.0175 +vn -0.9968 0.0730 0.0330 +vn 0.9626 0.2585 0.0808 +vn -0.7673 0.6137 0.1860 +vn 0.9885 -0.1513 -0.0040 +vn -0.0018 0.9619 0.2735 +vn -0.9872 -0.1594 -0.0050 +vn -0.9969 -0.0784 0.0042 +vn 0.3496 -0.8972 0.2700 +vn 0.6698 -0.7316 0.1270 +vn 0.8785 0.4558 0.1432 +vn -0.9130 0.3909 0.1165 +vn -0.1895 -0.9498 0.2488 +vn -0.4589 -0.8650 0.2029 +vn 0.9999 -0.0018 0.0160 +vn 0.9974 -0.0717 0.0040 +vn -0.2162 0.9382 0.2704 +vn -0.9655 -0.2604 -0.0061 +vn 0.8895 -0.4100 0.2015 +vn 0.6962 -0.6555 0.2926 +vn 0.6776 0.7026 0.2173 +vn -0.9659 0.2476 0.0761 +vn -0.1987 -0.9575 0.2089 +vn 0.8771 -0.4783 0.0438 +vn -0.9870 0.1522 0.0517 +vn 0.9559 -0.2874 -0.0597 +vn 0.8433 -0.5093 -0.1714 +vn 0.8601 -0.5047 -0.0744 +vn -0.0019 0.9084 0.4181 +vn 0.1920 0.8915 0.4103 +vn 0.3960 -0.9175 -0.0373 +vn -0.2142 0.8867 0.4097 +vn 0.6534 -0.7540 -0.0666 +vn -0.4838 0.7939 0.3684 +vn -0.9969 -0.0761 -0.0174 +vn -1.0000 -0.0026 0.0094 +vn -0.9060 0.3828 0.1808 +vn -0.7500 0.5992 0.2800 +vn 0.9872 -0.1549 -0.0379 +vn -0.9865 -0.1586 -0.0411 +vn -0.9647 0.2377 0.1132 +vn 0.9974 -0.0708 -0.0157 +vn -0.9622 -0.2658 -0.0601 +vn -0.9870 0.1439 0.0709 +vn 1.0000 -0.0025 0.0087 +vn -0.8984 -0.4334 -0.0713 +vn -0.9969 0.0687 0.0386 +vn 0.9974 0.0631 0.0357 +vn -0.7366 -0.6737 -0.0599 +vn 0.9878 0.1391 0.0699 +vn -0.4657 -0.8846 -0.0236 +vn 0.9588 0.2555 0.1245 +vn -0.2038 -0.9789 0.0114 +vn 0.8681 0.4480 0.2137 +vn 0.6679 0.6742 0.3154 +vn -0.0024 -0.9996 0.0270 +vn 0.4133 0.8267 0.3818 +vn 1.0000 -0.0044 0.0068 +vn 0.9969 -0.0623 -0.0471 +vn 0.9971 -0.0696 -0.0316 +vn -0.7388 0.5516 0.3872 +vn -0.4681 0.7254 0.5047 +vn 0.9491 -0.2918 -0.1187 +vn -0.9968 -0.0732 -0.0333 +vn -1.0000 -0.0047 0.0075 +vn -0.9023 0.3519 0.2488 +vn 0.9853 -0.1549 -0.0716 +vn -0.9853 -0.1540 -0.0735 +vn -0.9650 0.2132 0.1526 +vn -0.9577 -0.2648 -0.1130 +vn -0.9875 0.1266 0.0936 +vn -0.8850 -0.4400 -0.1524 +vn -0.9970 0.0594 0.0489 +vn 0.9974 0.0560 0.0464 +vn -0.7102 -0.6814 -0.1771 +vn 0.9877 0.1254 0.0938 +vn -0.4417 -0.8833 -0.1571 +vn 0.9577 0.2332 0.1684 +vn -0.1909 -0.9743 -0.1197 +vn 0.8637 0.4115 0.2912 +vn -0.0017 -0.9951 -0.0985 +vn 0.6616 0.6152 0.4287 +vn 0.1833 0.8081 0.5598 +vn 0.4041 0.7522 0.5205 +vn 0.1717 -0.9772 -0.1250 +vn -0.0022 0.8215 0.5702 +vn 0.3804 -0.9092 -0.1693 +vn 0.6308 -0.7507 -0.1963 +vn -0.2046 0.8043 0.5579 +vn 0.9586 0.2027 0.1999 +vn 0.9887 0.0921 0.1183 +vn 0.9880 0.1088 0.1095 +vn -0.9545 -0.2459 -0.1690 +vn -0.9847 -0.1396 -0.1045 +vn -0.9884 0.1070 0.1075 +vn -0.9666 0.1821 0.1801 +vn 1.0000 -0.0034 0.0033 +vn -0.8761 -0.4147 -0.2458 +vn -0.9972 0.0508 0.0540 +vn 0.9975 0.0488 0.0518 +vn -0.6968 -0.6440 -0.3159 +vn -1.0000 -0.0038 0.0036 +vn -0.4294 -0.8383 -0.3360 +vn -0.1878 -0.9328 -0.3077 +vn 0.8664 0.3581 0.3480 +vn -0.0014 -0.9553 -0.2955 +vn 0.6599 0.5402 0.5222 +vn 0.1723 0.7090 0.6838 +vn 0.3928 0.6624 0.6379 +vn 0.1695 -0.9351 -0.3112 +vn -0.0029 0.7185 0.6955 +vn 0.3712 -0.8606 -0.3487 +vn 0.6201 -0.7042 -0.3457 +vn -0.4569 0.6375 0.6204 +vn -0.1947 0.7043 0.6826 +vn 0.8334 -0.4779 -0.2776 +vn -0.7345 0.4853 0.4742 +vn 0.9440 -0.2738 -0.1841 +vn -0.9967 -0.0647 -0.0487 +vn -0.9034 0.3061 0.3001 +vn 0.9840 -0.1429 -0.1067 +vn 0.3909 0.5560 0.7335 +vn 0.6698 0.3706 0.6435 +vn 0.6651 0.4523 0.5942 +vn -0.4307 -0.7458 -0.5082 +vn -0.6923 -0.5732 -0.4384 +vn 0.9611 0.1690 0.2186 +vn -0.1894 -0.8328 -0.5201 +vn 0.8719 0.2980 0.3886 +vn -0.0017 -0.8566 -0.5159 +vn 0.1710 -0.8351 -0.5228 +vn -0.0047 0.6020 0.7985 +vn 0.1645 0.5949 0.7868 +vn 0.3738 -0.7659 -0.5231 +vn -0.1921 0.5900 0.7842 +vn 0.6176 -0.6256 -0.4766 +vn -0.4590 0.5338 0.7102 +vn 0.8279 -0.4265 -0.3642 +vn -0.7405 0.4039 0.5371 +vn 0.9410 -0.2454 -0.2328 +vn -0.9967 -0.0554 -0.0599 +vn -1.0000 -0.0016 0.0006 +vn -0.9078 0.2529 0.3345 +vn 0.9833 -0.1268 -0.1306 +vn -0.9843 -0.1231 -0.1268 +vn -0.9691 0.1497 0.1961 +vn 0.9969 -0.0535 -0.0579 +vn -0.9528 -0.2199 -0.2094 +vn -0.9892 0.0894 0.1161 +vn 1.0000 -0.0014 0.0006 +vn -0.8716 -0.3715 -0.3198 +vn -0.9974 0.0443 0.0573 +vn 0.9976 0.0428 0.0548 +vn -0.0072 0.4866 0.8736 +vn -0.1908 0.3837 0.9035 +vn -0.0082 0.3888 0.9213 +vn -0.0019 -0.7453 -0.6668 +vn 0.3903 0.4528 0.8016 +vn 0.1725 -0.7288 -0.6626 +vn 0.1620 0.4816 0.8613 +vn 0.3745 -0.6726 -0.6382 +vn -0.1945 0.4776 0.8568 +vn 0.6135 -0.5557 -0.5610 +vn -0.4634 0.4334 0.7730 +vn 0.8226 -0.3854 -0.4180 +vn -0.7470 0.3294 0.5775 +vn 0.9386 -0.2247 -0.2619 +vn -0.9965 -0.0502 -0.0662 +vn -1.0000 -0.0008 -0.0005 +vn -0.9115 0.2079 0.3549 +vn 0.9826 -0.1163 -0.1449 +vn -0.9837 -0.1126 -0.1404 +vn -0.9699 0.1263 0.2084 +vn 0.9968 -0.0486 -0.0640 +vn -0.9510 -0.2011 -0.2348 +vn -0.9893 0.0780 0.1229 +vn 1.0000 -0.0008 -0.0005 +vn -0.8675 -0.3368 -0.3662 +vn -0.9974 0.0401 0.0603 +vn 0.9976 0.0385 0.0576 +vn -0.6874 -0.5106 -0.5164 +vn 0.9890 0.0799 0.1248 +vn -0.4303 -0.6548 -0.6213 +vn 0.9622 0.1424 0.2320 +vn -0.1911 -0.7265 -0.6601 +vn 0.8757 0.2461 0.4153 +vn -0.1926 -0.6320 -0.7506 +vn -0.0019 -0.5396 -0.8419 +vn -0.1981 -0.5275 -0.8261 +vn 0.6113 -0.4919 -0.6199 +vn -0.4576 0.3540 0.8156 +vn 0.8200 -0.3458 -0.4561 +vn -0.7404 0.2767 0.6126 +vn 0.9372 -0.2044 -0.2827 +vn -0.9965 -0.0463 -0.0702 +vn -1.0000 -0.0004 -0.0005 +vn -0.9074 0.1816 0.3790 +vn 0.9822 -0.1067 -0.1547 +vn -0.9833 -0.1032 -0.1498 +vn -0.9682 0.1147 0.2224 +vn 0.9967 -0.0448 -0.0678 +vn -0.9500 -0.1828 -0.2532 +vn -0.9887 0.0727 0.1311 +vn 1.0000 -0.0005 -0.0005 +vn -0.8654 -0.3023 -0.3995 +vn -0.9972 0.0380 0.0642 +vn 0.9975 0.0361 0.0610 +vn -0.6852 -0.4523 -0.5709 +vn 0.9884 0.0738 0.1328 +vn -0.4308 -0.5735 -0.6968 +vn 0.9605 0.1277 0.2472 +vn 0.8711 0.2131 0.4425 +vn -0.0018 -0.6467 -0.7627 +vn 0.6602 0.3102 0.6840 +vn 0.3804 0.3692 0.8479 +vn 0.1741 -0.6340 -0.7535 +vn 0.1557 0.3868 0.9089 +vn 0.3755 -0.5889 -0.7157 +vn 0.6184 -0.4133 -0.6684 +vn 0.3981 -0.3819 -0.8341 +vn 0.3829 -0.4927 -0.7814 +vn 0.6355 0.2623 0.7262 +vn 0.3577 0.3001 0.8843 +vn 0.1794 -0.5292 -0.8293 +vn 0.1443 0.3087 0.9401 +vn -0.1801 0.3069 0.9345 +vn -0.0089 0.3094 0.9509 +vn -0.4340 0.2899 0.8530 +vn 0.8240 -0.2921 -0.4855 +vn -0.7176 0.2374 0.6548 +vn 0.9387 -0.1739 -0.2977 +vn -0.9966 -0.0401 -0.0726 +vn -1.0000 0.0002 0.0001 +vn -0.8959 0.1638 0.4130 +vn 0.9826 -0.0918 -0.1613 +vn -0.9837 -0.0888 -0.1561 +vn -0.9642 0.1064 0.2429 +vn 0.9968 -0.0388 -0.0702 +vn -0.9513 -0.1555 -0.2663 +vn -0.9876 0.0680 0.1417 +vn 1.0000 0.0002 -0.0000 +vn -0.8688 -0.2549 -0.4245 +vn -0.9970 0.0353 0.0685 +vn 0.9973 0.0335 0.0652 +vn -0.6918 -0.3793 -0.6145 +vn 0.9873 0.0684 0.1434 +vn -0.4384 -0.4794 -0.7602 +vn 0.9560 0.1171 0.2692 +vn 0.8567 0.1889 0.4800 +vn 0.9837 -0.0719 -0.1645 +vn 0.9466 -0.0962 -0.3079 +vn 0.9427 -0.1352 -0.3051 +vn -0.1670 0.2361 0.9573 +vn -0.0089 0.2368 0.9715 +vn 0.6332 -0.3199 -0.7047 +vn -0.4030 0.2277 0.8864 +vn 0.8332 -0.2262 -0.5046 +vn -0.6836 0.1950 0.7033 +vn -0.9968 -0.0317 -0.0738 +vn -1.0000 0.0006 0.0007 +vn -0.8782 0.1410 0.4570 +vn -0.9848 -0.0697 -0.1591 +vn -0.9589 0.0931 0.2679 +vn 0.9970 -0.0307 -0.0715 +vn -0.9545 -0.1208 -0.2726 +vn -0.9864 0.0588 0.1532 +vn 1.0000 0.0005 0.0005 +vn -0.8763 -0.1968 -0.4398 +vn -0.9969 0.0300 0.0727 +vn 0.9972 0.0285 0.0694 +vn -0.7056 -0.2925 -0.6454 +vn 0.9861 0.0590 0.1554 +vn -0.4544 -0.3710 -0.8099 +vn 0.9496 0.1013 0.2965 +vn -0.2068 -0.4085 -0.8890 +vn 0.8358 0.1593 0.5255 +vn -0.0019 -0.4177 -0.9086 +vn 0.6001 0.2107 0.7716 +vn 0.3307 0.2329 0.9145 +vn 0.1874 -0.4099 -0.8927 +vn 0.1339 0.2368 0.9623 +vn 0.9971 0.0213 0.0728 +vn 1.0000 -0.0010 0.0009 +vn 1.0000 0.0003 0.0009 +vn -0.9970 -0.0231 -0.0743 +vn -1.0000 0.0003 0.0011 +vn -0.8583 0.1077 0.5017 +vn -0.6471 0.1423 0.7490 +vn 0.9849 -0.0517 -0.1653 +vn -0.9859 -0.0499 -0.1598 +vn -0.9528 0.0720 0.2950 +vn 0.9972 -0.0223 -0.0719 +vn -0.9578 -0.0857 -0.2744 +vn -0.9854 0.0449 0.1641 +vn -0.8851 -0.1386 -0.4443 +vn -0.9969 0.0223 0.0761 +vn -0.7214 -0.2059 -0.6612 +vn 0.9849 0.0451 0.1674 +vn -0.4712 -0.2616 -0.8423 +vn 0.9419 0.0777 0.3267 +vn -0.2173 -0.2888 -0.9324 +vn 0.8122 0.1190 0.5710 +vn -0.0021 -0.2954 -0.9554 +vn 0.5661 0.1508 0.8104 +vn 0.3081 0.1623 0.9374 +vn 0.1971 -0.2898 -0.9366 +vn 0.1269 0.1648 0.9781 +vn 0.4142 -0.2698 -0.8693 +vn -0.1571 0.1643 0.9738 +vn -0.0081 0.1653 0.9862 +vn 0.6507 -0.2261 -0.7249 +vn -0.3730 0.1598 0.9140 +vn 0.8441 -0.1599 -0.5117 +vn 0.7891 0.0731 0.6099 +vn 0.9270 0.0158 0.3748 +vn 0.9345 0.0496 0.3525 +vn -0.8904 -0.0928 -0.4455 +vn -0.9599 -0.0581 -0.2744 +vn -0.9968 0.0136 0.0785 +vn -0.9843 0.0286 0.1739 +vn 0.9970 0.0130 0.0757 +vn -0.7327 -0.1367 -0.6667 +vn -1.0000 -0.0011 0.0011 +vn 0.9835 0.0288 0.1786 +vn -0.4851 -0.1729 -0.8572 +vn -0.2252 -0.1899 -0.9556 +vn -0.0021 -0.1937 -0.9811 +vn 0.5384 0.0894 0.8379 +vn 0.2962 0.0956 0.9503 +vn 0.2045 -0.1904 -0.9602 +vn 0.1240 0.0975 0.9875 +vn 0.4280 -0.1782 -0.8861 +vn -0.1523 0.0956 0.9837 +vn -0.0092 0.0974 0.9952 +vn 0.6638 -0.1502 -0.7327 +vn -0.3546 0.0928 0.9304 +vn 0.8510 -0.1075 -0.5141 +vn -0.6158 0.0844 0.7834 +vn 0.9490 -0.0657 -0.3085 +vn -0.9971 -0.0166 -0.0746 +vn -0.8376 0.0669 0.5422 +vn 0.9854 -0.0360 -0.1662 +vn -0.9865 -0.0343 -0.1601 +vn -0.9469 0.0463 0.3182 +vn 0.9972 -0.0162 -0.0725 +vn 0.1245 0.0406 0.9914 +vn 0.2909 0.0104 0.9567 +vn 0.2912 0.0362 0.9560 +vn -0.2301 -0.1366 -0.9635 +vn -0.4912 -0.1280 -0.8616 +vn 0.7736 0.0236 0.6333 +vn -0.0023 -0.1376 -0.9905 +vn 0.5241 0.0302 0.8511 +vn 0.2093 -0.1359 -0.9684 +vn 0.4355 -0.1303 -0.8907 +vn -0.1550 0.0373 0.9872 +vn -0.0117 0.0408 0.9991 +vn 0.6692 -0.1144 -0.7343 +vn -0.3454 0.0314 0.9379 +vn 0.8520 -0.0865 -0.5163 +vn -0.5971 0.0270 0.8017 +vn 0.9483 -0.0560 -0.3125 +vn -0.9970 -0.0170 -0.0755 +vn -1.0000 -0.0068 0.0008 +vn -0.8222 0.0218 0.5687 +vn 0.9850 -0.0326 -0.1695 +vn -0.9864 -0.0297 -0.1617 +vn -0.9411 0.0160 0.3378 +vn 0.9971 -0.0172 -0.0743 +vn -0.9596 -0.0479 -0.2772 +vn -0.9833 0.0096 0.1818 +vn 1.0000 -0.0065 0.0005 +vn -0.8907 -0.0744 -0.4484 +vn -0.9968 0.0021 0.0803 +vn 0.9969 0.0019 0.0782 +vn -0.7358 -0.1053 -0.6690 +vn 0.9820 0.0090 0.1886 +vn 0.2124 -0.1237 -0.9693 +vn 0.1241 0.0148 0.9922 +vn 0.4402 -0.1215 -0.8896 +vn -0.1564 0.0119 0.9876 +vn -0.0121 0.0139 0.9998 +vn 0.6732 -0.1090 -0.7314 +vn -0.3421 0.0033 0.9396 +vn 0.8538 -0.0836 -0.5138 +vn -0.5864 -0.0038 0.8100 +vn 0.9484 -0.0545 -0.3123 +vn -0.9971 -0.0191 -0.0739 +vn -0.9999 -0.0112 0.0028 +vn -0.8127 -0.0057 0.5826 +vn 0.9850 -0.0327 -0.1695 +vn -0.9866 -0.0299 -0.1603 +vn -0.9369 -0.0038 0.3496 +vn 0.9971 -0.0190 -0.0736 +vn -0.9599 -0.0459 -0.2765 +vn -0.9821 -0.0030 0.1882 +vn 0.9999 -0.0107 0.0024 +vn -0.8917 -0.0707 -0.4470 +vn -0.9965 -0.0055 0.0836 +vn 0.9966 -0.0062 0.0826 +vn -0.7384 -0.0996 -0.6670 +vn 0.9803 -0.0055 0.1977 +vn -0.4946 -0.1198 -0.8608 +vn 0.9212 -0.0069 0.3889 +vn -0.2320 -0.1251 -0.9646 +vn 0.7628 -0.0061 0.6466 +vn -0.0017 -0.1241 -0.9923 +vn 0.5164 0.0001 0.8564 +vn -0.0000 -0.9999 -0.0154 +vn -0.9902 -0.0000 0.1395 +vn -0.9902 -0.0000 0.1396 +vn -0.0000 1.0000 -0.0000 +vn 0.9902 -0.0000 0.1395 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.9636 0.2200 -0.1516 +vn -0.9558 0.2356 -0.1758 +vn -0.9892 0.0463 -0.1392 +vn 0.9902 0.1179 -0.0748 +vn 0.9637 0.2198 -0.1515 +vn -0.0000 -1.0000 0.0034 +vn -0.0002 -1.0000 0.0069 +vn -0.0004 -1.0000 0.0046 +vn 0.0674 0.9905 0.1201 +vn -0.0243 0.9853 0.1692 +vn 0.0239 0.9854 0.1685 +vn 0.7410 -0.0000 -0.6715 +vn -0.6585 -0.0000 -0.7526 +vn -0.0000 0.7658 0.6431 +vn -0.0000 0.6243 0.7812 +vn -0.0000 0.6229 0.7823 +vn -0.0000 0.4206 0.9072 +vn -0.9925 -0.0895 0.0830 +vn -0.9920 -0.0928 0.0860 +vn -0.9658 -0.1900 0.1761 +vn 0.9904 -0.1009 0.0943 +vn 0.9912 -0.0966 0.0904 +vn 0.9597 -0.2053 0.1920 +vn -0.0054 -0.0042 1.0000 +vn -0.0146 -0.0000 0.9999 +vn -0.0039 -0.0047 1.0000 +vn -0.9940 0.0027 0.1097 +vn -0.9941 0.0052 0.1083 +vn -0.9938 -0.0000 0.1113 +vn 0.9941 0.0052 0.1083 +vn 0.9940 0.0027 0.1097 +vn 0.9938 -0.0000 0.1113 +vn 0.0071 0.9998 0.0161 +vn 0.0196 0.9996 0.0209 +vn 0.0033 0.9999 0.0148 +vn 0.9824 -0.0000 0.1869 +vn 0.9972 -0.0000 0.0747 +vn -0.9824 -0.0000 0.1869 +vn -0.9972 -0.0000 0.0747 +vn -0.9960 -0.0000 0.0891 +vn -0.1177 0.9172 0.3806 +vn 0.0714 0.9533 0.2935 +vn -0.0706 0.9492 0.3067 +vn 0.9702 -0.0000 0.2421 +vn 0.8466 -0.0000 0.5322 +vn 0.8463 -0.0000 0.5326 +vn 0.1179 0.9219 0.3690 +vn 0.2118 0.6804 0.7016 +vn 0.1426 0.8144 0.5626 +vn 0.0246 0.8205 0.5711 +vn -0.2028 0.6830 0.7017 +vn -0.1359 0.8125 0.5670 +vn -0.0233 0.8197 0.5723 +vn -0.1540 0.7061 0.6911 +vn 0.1536 0.7069 0.6904 +vn -0.3963 -0.0000 0.9181 +vn -0.5691 -0.0000 0.8223 +vn -0.3961 -0.0000 0.9182 +vn -0.5693 -0.0000 0.8221 +vn -0.7193 -0.0000 0.6947 +vn -0.7196 -0.0000 0.6944 +vn -0.8463 -0.0000 0.5326 +vn 0.0783 0.5339 0.8419 +vn -0.0780 0.5403 0.8379 +vn -0.9981 0.0017 -0.0621 +vn -0.9804 0.0131 -0.1966 +vn -0.9956 -0.0882 0.0307 +vn -0.8466 -0.0000 0.5322 +vn -0.9674 -0.0096 0.2529 +vn 0.7196 -0.0000 0.6944 +vn 0.7193 -0.0000 0.6947 +vn 0.9994 0.0009 0.0332 +vn 0.9707 0.0005 0.2403 +vn 0.5693 -0.0000 0.8221 +vn 0.5691 -0.0000 0.8223 +vn 0.3963 -0.0000 0.9181 +vn 0.3961 -0.0000 0.9182 +vn 0.2026 -0.0000 0.9793 +vn 0.2025 -0.0000 0.9793 +vn -0.2025 -0.0000 0.9793 +vn -0.2026 -0.0000 0.9793 +vn 0.3935 -0.9193 0.0009 +vn 0.2683 -0.9598 -0.0820 +vn 0.4204 -0.8890 -0.1816 +vn -0.3811 -0.9245 0.0073 +vn -0.2703 -0.9592 -0.0831 +vn -0.2591 -0.9659 -0.0009 +vn 0.5304 -0.8409 -0.1076 +vn 0.5208 -0.8519 0.0560 +vn -0.1652 -0.9830 -0.0797 +vn -0.1643 -0.9864 -0.0000 +vn 0.7469 -0.6647 -0.0138 +vn -0.0796 -0.9968 -0.0000 +vn -0.0810 -0.9934 -0.0807 +vn -0.0000 -0.9967 -0.0808 +vn 0.0810 -0.9934 -0.0807 +vn 0.0796 -0.9968 -0.0000 +vn -0.7549 -0.6526 0.0653 +vn -0.8716 -0.4893 0.0307 +vn -0.7317 -0.6705 -0.1225 +vn 0.1652 -0.9830 -0.0797 +vn 0.1643 -0.9864 -0.0000 +vn -0.5263 -0.8460 -0.0850 +vn -0.5357 -0.8380 0.1037 +vn 0.2591 -0.9659 -0.0009 +vn -0.4110 -0.8966 -0.1647 +vn 0.2696 -0.9485 -0.1663 +vn -0.2779 -0.9442 -0.1768 +vn -0.1786 -0.9697 -0.1667 +vn 0.7697 -0.6083 -0.1937 +vn -0.0852 -0.9824 -0.1663 +vn 0.8914 -0.4470 -0.0751 +vn 0.8911 -0.4537 0.0069 +vn -0.0000 -0.9860 -0.1670 +vn 0.0852 -0.9824 -0.1663 +vn -0.6505 -0.6963 0.3032 +vn 0.1758 -0.9705 -0.1647 +vn -0.0898 -0.9613 -0.2605 +vn -0.0000 -0.9645 -0.2639 +vn 0.0865 -0.9623 -0.2578 +vn 0.2083 -0.9446 -0.2537 +vn -0.5868 -0.7751 -0.2344 +vn 0.3339 -0.8983 -0.2856 +vn -0.3046 -0.9228 -0.2361 +vn -0.1944 -0.9496 -0.2460 +vn -0.5014 -0.7893 -0.3545 +vn 0.5371 -0.7116 -0.4529 +vn -0.3626 -0.8430 -0.3974 +vn 0.6093 -0.7183 -0.3359 +vn -0.2358 -0.8797 -0.4129 +vn -0.0930 -0.9274 -0.3623 +vn -0.0000 -0.9274 -0.3740 +vn 0.0806 -0.9288 -0.3617 +vn 0.2577 -0.8787 -0.4019 +vn -0.7253 -0.5603 -0.4001 +vn 0.4464 -0.7335 -0.5125 +vn -0.1353 -0.8313 -0.5391 +vn -0.0000 -0.8500 -0.5268 +vn 0.1351 -0.8276 -0.5449 +vn -0.8512 -0.4616 -0.2497 +vn -0.8333 -0.4528 -0.3171 +vn 0.3359 -0.5835 -0.7394 +vn -0.6317 -0.5101 -0.5838 +vn -0.4712 -0.5563 -0.6845 +vn 0.7323 -0.4413 -0.5186 +vn -0.3515 -0.5795 -0.7353 +vn 0.6218 -0.5199 -0.5858 +vn 0.7870 -0.4979 -0.3643 +vn -0.1791 -0.5577 -0.8105 +vn -0.0000 -0.8059 -0.5920 +vn 0.1875 -0.5579 -0.8084 +vn -0.8523 -0.3229 -0.4116 +vn 0.4616 -0.5393 -0.7043 +vn -0.0000 -0.3169 -0.9485 +vn 0.1931 -0.3110 -0.9306 +vn 0.3348 -0.3497 -0.8750 +vn -0.7820 -0.3509 -0.5151 +vn -0.6624 -0.3016 -0.6857 +vn -0.5038 -0.3170 -0.8035 +vn -0.3678 -0.3295 -0.8696 +vn -0.1890 -0.3112 -0.9314 +vn 0.7791 -0.2331 -0.5819 +vn -0.9121 0.3525 -0.2095 +vn -0.8757 0.4150 -0.2467 +vn -0.8924 0.3555 -0.2780 +vn 0.4243 0.3083 -0.8514 +vn 0.2012 0.4873 -0.8497 +vn 0.3260 0.6276 -0.7070 +vn -0.7499 0.4578 -0.4776 +vn -0.7737 0.3549 -0.5249 +vn 0.5496 0.2963 -0.7811 +vn 0.5961 0.2737 -0.7548 +vn -0.6546 0.3575 -0.6661 +vn -0.5891 0.5505 -0.5915 +vn 0.6146 0.4756 -0.6294 +vn 0.6391 0.2655 -0.7219 +vn -0.5053 0.3573 -0.7854 +vn -0.5323 0.3431 -0.7739 +vn 0.7784 0.3215 -0.5392 +vn 0.7437 0.5381 -0.3968 +vn -0.3704 0.3390 -0.8648 +vn -0.3333 0.5839 -0.7403 +vn 0.8836 0.3589 -0.3007 +vn 0.8857 0.3306 -0.3261 +vn -0.2000 0.4881 -0.8495 +vn -0.2054 0.3118 -0.9277 +vn 0.9051 0.3598 -0.2268 +vn 0.8825 0.4703 -0.0008 +vn -0.0000 0.4972 -0.8676 +vn -0.0000 0.2838 -0.9589 +vn -0.8580 0.3751 -0.3508 +vn -0.9181 0.3962 -0.0069 +vn 0.9162 0.4004 0.0168 +vn 0.2097 0.3118 -0.9267 +vn -0.1137 0.8651 -0.4885 +vn -0.0000 0.7838 -0.6210 +vn 0.1420 0.8644 -0.4823 +vn 0.2017 0.9383 -0.2810 +vn 0.3202 0.8418 -0.4345 +vn 0.2041 0.9209 -0.3320 +vn -0.5150 0.6767 -0.5262 +vn 0.5760 0.6287 -0.5224 +vn -0.2531 0.9257 -0.2810 +vn -0.3969 0.7926 -0.4629 +vn -0.2460 0.8863 -0.3924 +vn 0.8656 0.4730 -0.1645 +vn -0.0047 0.9646 -0.2635 +vn -0.0598 0.9896 -0.1306 +vn 0.0835 0.9857 -0.1465 +vn -0.8315 0.5408 -0.1269 +vn -0.6166 0.7381 -0.2738 +vn -0.0135 0.9999 0.0083 +vn 0.2370 0.9520 -0.1938 +vn 0.1550 0.9685 -0.1949 +vn -0.1704 0.9830 -0.0678 +vn -0.4828 0.8716 -0.0848 +vn 0.2326 -0.9309 0.2816 +vn -0.1860 0.9797 -0.0753 +vn -0.2151 0.9692 -0.1198 +vn 0.3106 0.9107 -0.2722 +vn 0.7665 0.6016 -0.2251 +vn -0.0037 0.9964 -0.0848 +vn 0.1197 0.9812 -0.1515 +vn 0.1628 0.9852 -0.0537 +vn 0.2667 0.9626 -0.0472 +vn 0.7608 0.6488 -0.0143 +vn -0.7511 0.6579 0.0547 +vn 0.5137 0.8569 0.0430 +vn -0.3969 0.9172 0.0343 +vn -0.1695 0.9847 0.0399 +vn 0.1591 0.9856 0.0581 +vn -0.5379 0.8061 0.2468 +vn -0.2214 0.9581 0.1819 +vn 0.1669 0.9759 0.1402 +vn 0.8499 0.5155 0.1091 +vn 0.6267 0.7260 0.2831 +vn -0.1542 0.9752 0.1589 +vn 0.0121 0.9965 0.0833 +vn 0.0888 0.9821 0.1660 +vn -0.8622 0.4491 0.2344 +vn 0.2048 0.9570 0.2056 +vn 0.0043 0.9660 0.2586 +vn 0.1725 0.9690 0.1771 +vn -0.2109 0.9220 0.3249 +vn -0.2000 0.9335 0.2976 +vn 0.8780 0.3861 0.2831 +vn -0.7291 0.5580 0.3962 +vn 0.1294 0.9878 0.0870 +vn -0.4400 0.7890 0.4287 +vn 0.2145 0.7694 0.6017 +vn 0.3660 0.5163 0.7742 +vn 0.4166 0.6377 0.6479 +vn 0.3486 0.7900 0.5043 +vn -0.6038 0.5000 0.6209 +vn 0.6338 0.4616 0.6207 +vn 0.5369 0.5477 0.6417 +vn -0.4169 0.6260 0.6590 +vn 0.7722 0.4085 0.4867 +vn -0.3703 0.5112 0.7756 +vn -0.2029 0.7746 0.5990 +vn -0.0000 0.9290 0.3700 +vn -0.2030 0.4195 0.8848 +vn -0.0000 0.5745 0.8185 +vn -0.0000 0.4397 0.8981 +vn 0.2254 0.4176 0.8802 +vn 0.1993 0.3095 0.9298 +vn 0.3588 0.3507 0.8650 +vn -0.8721 0.3670 0.3237 +vn -0.7672 0.3499 0.5376 +vn 0.5120 0.3397 0.7889 +vn -0.6549 0.3486 0.6705 +vn 0.6468 0.3581 0.6733 +vn -0.5261 0.3346 0.7818 +vn 0.7588 0.3700 0.5360 +vn -0.3626 0.3272 0.8726 +vn 0.8655 0.3928 0.3109 +vn -0.1925 0.3006 0.9341 +vn 0.8993 0.3951 0.1877 +vn -0.0000 0.2852 0.9585 +vn -0.8990 0.3915 0.1963 +vn -0.9092 0.3761 0.1789 +vn 0.5010 -0.3248 0.8022 +vn 0.3529 -0.5894 0.7267 +vn 0.5139 -0.3199 0.7960 +vn -0.7869 -0.2642 0.5578 +vn -0.6272 -0.5087 0.5897 +vn -0.6613 -0.2756 0.6977 +vn 0.6491 -0.2981 0.6998 +vn 0.6240 -0.5275 0.5765 +vn -0.5199 -0.3136 0.7946 +vn -0.5076 -0.3229 0.7988 +vn 0.7735 -0.3415 0.5339 +vn 0.7320 -0.5106 0.4511 +vn -0.3529 -0.5894 0.7267 +vn -0.3687 -0.3521 0.8603 +vn 0.8498 -0.3255 0.4145 +vn -0.1745 -0.5609 0.8093 +vn -0.1766 -0.3119 0.9336 +vn -0.0000 -0.3169 0.9485 +vn -0.0000 -0.3169 0.9484 +vn 0.1766 -0.3119 0.9336 +vn 0.1745 -0.5609 0.8093 +vn 0.3688 -0.3521 0.8603 +vn -0.8679 -0.2800 0.4103 +vn -0.7453 -0.4612 0.4815 +vn 0.8867 -0.4502 0.1054 +vn 0.8259 -0.4696 0.3120 +vn -0.0000 -0.8500 0.5268 +vn -0.0000 -0.8059 0.5920 +vn 0.1352 -0.8314 0.5390 +vn -0.8831 -0.4548 0.1149 +vn -0.8298 -0.4808 0.2834 +vn -0.1353 -0.8312 0.5393 +vn -0.5065 -0.7944 0.3353 +vn 0.3676 -0.8358 0.4077 +vn 0.5121 -0.7916 0.3334 +vn -0.3632 -0.8365 0.4104 +vn -0.3745 -0.7665 0.5218 +vn 0.5844 -0.7695 0.2576 +vn -0.2358 -0.8797 0.4129 +vn -0.0930 -0.9274 0.3623 +vn -0.0000 -0.9274 0.3740 +vn 0.0930 -0.9274 0.3623 +vn 0.2358 -0.8797 0.4129 +vn -0.6193 -0.7285 0.2929 +vn 0.3745 -0.7665 0.5218 +vn -0.0000 -0.9645 0.2639 +vn 0.0898 -0.9613 0.2605 +vn 0.1834 -0.9504 0.2512 +vn 0.3280 -0.9136 0.2404 +vn -0.3229 -0.9155 0.2399 +vn -0.1834 -0.9504 0.2512 +vn -0.0898 -0.9613 0.2605 +vn 0.2961 -0.9403 0.1678 +vn 0.4007 -0.9024 0.1584 +vn -0.2973 -0.9403 0.1658 +vn -0.1727 -0.9715 0.1622 +vn 0.7600 -0.6414 0.1046 +vn -0.0852 -0.9824 0.1663 +vn -0.0000 -0.9860 0.1670 +vn 0.0852 -0.9824 0.1663 +vn 0.1727 -0.9715 0.1622 +vn -0.4151 -0.8953 0.1614 +vn -0.0000 -0.9967 0.0808 +vn 0.0810 -0.9934 0.0807 +vn 0.1652 -0.9830 0.0797 +vn 0.2710 -0.9587 0.0858 +vn -0.2724 -0.9583 0.0866 +vn -0.1652 -0.9830 0.0797 +vn -0.0810 -0.9934 0.0807 +vn 0.0001 0.9696 0.2448 +vn 0.0110 0.9970 0.0769 +vn -0.0020 0.9695 0.2451 +vn -0.0000 0.0015 -1.0000 +vn 0.9970 0.0208 0.0741 +vn 0.9973 0.0377 0.0627 +vn 0.9917 0.1200 0.0461 +vn -0.0005 -0.9933 -0.1153 +vn -0.0047 -0.9934 -0.1149 +vn -0.0049 -0.9934 -0.1148 +vn -0.0000 0.9401 0.3409 +vn 0.0065 0.9968 -0.0801 +vn 0.0133 0.9969 0.0774 +vn -0.0006 0.9576 -0.2883 +vn -0.0014 0.9577 -0.2879 +vn -0.0000 0.9575 -0.2885 +vn -0.9997 0.0242 0.0064 +vn -0.9999 -0.0106 -0.0104 +vn -0.9924 0.1158 0.0409 +vn -0.0100 0.0044 0.9999 +vn -0.0035 0.0015 1.0000 +vn -0.0001 -0.2011 -0.9796 +vn 0.0029 -0.5131 -0.8584 +vn -0.0013 -0.5238 -0.8518 +vn -0.0000 0.9985 0.0546 +vn 0.0105 0.9978 0.0661 +vn 0.0368 0.9965 0.0756 +vn 0.0471 0.9957 0.0793 +vn 0.0002 0.9979 -0.0653 +vn 0.0023 0.9924 0.1229 +vn 0.0009 0.9977 -0.0672 +vn 0.0015 0.9873 -0.1591 +vn 0.0030 0.9871 -0.1602 +vn -0.0041 0.2813 -0.9596 +vn -0.0051 -0.3624 -0.9320 +vn -0.0041 0.2577 -0.9662 +vn 0.0093 0.3101 0.9506 +vn 0.0105 0.3088 0.9511 +vn 0.0038 0.3162 0.9487 +vn 0.0051 0.9925 0.1218 +vn 0.0044 0.8908 0.4544 +vn 0.0043 0.7416 0.6708 +vn 0.0105 0.8902 0.4554 +vn -0.0047 -0.7492 -0.6623 +vn -0.0070 -0.5786 -0.8156 +vn -0.0095 -0.5808 -0.8140 +vn 0.0012 -0.2389 0.9710 +vn 0.0052 -0.2526 0.9675 +vn -0.0000 -0.2349 0.9720 +vn -0.0008 -0.7603 -0.6496 +vn -0.0065 -0.7584 -0.6518 +vn -0.0059 -0.8579 -0.5137 +vn -0.0000 -0.8631 -0.5051 +vn 0.0015 -0.1950 -0.9808 +vn -0.0043 -0.2842 0.9588 +vn -0.0040 -0.0317 0.9995 +vn -0.0033 -0.0308 0.9995 +vn -0.0017 -0.8867 0.4624 +vn -0.0069 -0.7566 0.6539 +vn -0.0143 -0.7529 0.6580 +vn 0.0003 -0.9691 0.2465 +vn 0.0020 -0.8889 0.4581 +vn -0.0011 -0.9051 -0.4252 +vn -0.0102 -0.9196 -0.3928 +vn -0.0085 -0.9169 -0.3991 +vn -0.0038 0.4915 -0.8709 +vn 0.0021 0.4773 -0.8788 +vn 0.0045 0.4714 -0.8819 +vn 0.0010 0.9692 -0.2464 +vn -0.0049 0.4932 -0.8699 +vn -0.0035 0.6150 -0.7885 +vn -0.0023 0.4897 -0.8719 +vn 0.0020 0.1036 -0.9946 +vn 0.0053 0.0997 -0.9950 +vn 0.0005 0.2215 0.9751 +vn 0.0026 0.2202 0.9755 +vn 0.0010 0.9664 -0.2572 +vn 0.0008 0.9663 -0.2574 +vn 0.0027 0.9668 -0.2553 +vn 0.0051 -0.1557 -0.9878 +vn 0.0059 -0.1562 -0.9877 +vn 0.0007 -0.9022 -0.4313 +vn -0.9996 -0.0022 -0.0274 +vn -0.9996 -0.0174 -0.0243 +vn -0.9996 -0.0000 -0.0278 +vn 0.0021 -0.6196 -0.7849 +vn 0.0011 -0.6209 -0.7839 +vn 0.0032 -0.6181 -0.7861 +vn 0.9994 -0.0238 -0.0242 +vn 0.9996 -0.0029 -0.0284 +vn 0.9996 -0.0000 -0.0290 +vn 0.0005 -0.9994 0.0358 +vn 0.0015 -0.9993 0.0362 +vn -0.0000 -0.9994 0.0356 +vn -0.0000 0.9997 -0.0230 +vn -0.0000 0.9991 -0.0417 +vn -0.0000 -1.0000 0.0088 +vn -0.0000 -0.7196 0.6944 +vn -0.0000 -0.6139 0.7894 +vn -0.0000 -0.6036 0.7973 +vn -0.0000 -0.4849 0.8746 +vn 0.9873 -0.0282 0.1565 +vn 0.9888 -0.0398 0.1438 +vn 0.9911 -0.0645 0.1164 +vn -0.9888 0.0398 -0.1438 +vn -0.9873 0.0282 -0.1565 +vn -0.9911 0.0645 -0.1164 +vn 0.2987 -0.0000 -0.9543 +vn -0.2987 -0.0000 -0.9543 +vn -0.6292 -0.0060 -0.7772 +vn -0.6256 -0.0031 -0.7802 +vn -0.6216 -0.0000 -0.7834 +vn 0.0389 0.9981 -0.0481 +vn 0.5945 -0.0069 -0.8040 +vn 0.5995 -0.0032 -0.8004 +vn 0.6039 -0.0000 -0.7971 +vn -0.0244 0.9974 -0.0684 +vn 0.9136 -0.4065 -0.0003 +vn 1.0000 -0.0000 -0.0004 +vn 0.9136 -0.4067 -0.0003 +vn -0.9781 0.2079 0.0004 +vn -0.9782 -0.2077 0.0004 +vn -0.9781 -0.2079 0.0004 +vn 1.0000 0.0002 -0.0004 +vn 0.9136 0.4067 -0.0003 +vn -0.8091 -0.5876 0.0003 +vn -0.8090 -0.5878 0.0003 +vn 0.9135 0.4070 -0.0003 +vn 0.6692 0.7431 -0.0003 +vn -0.5001 -0.8659 0.0002 +vn -0.5000 -0.8661 0.0002 +vn 0.6690 0.7433 -0.0002 +vn 0.3090 0.9510 -0.0001 +vn -0.1046 -0.9945 -0.0000 +vn -0.1045 -0.9945 -0.0000 +vn 0.3089 0.9511 -0.0001 +vn -0.1045 0.9945 -0.0000 +vn 0.3091 -0.9510 -0.0001 +vn -0.1046 0.9945 -0.0000 +vn -0.5000 0.8660 0.0002 +vn 0.6691 -0.7431 -0.0002 +vn -0.8089 0.5879 0.0003 +vn -0.8090 0.5878 0.0003 +vn 0.6692 -0.7431 -0.0002 +vn -0.9781 0.2081 0.0004 +vn -0.6604 0.2933 0.6913 +vn -0.6003 -0.0000 0.7997 +vn -0.5489 0.2452 0.7991 +vn -0.6604 -0.2933 0.6913 +vn -0.7218 -0.0000 0.6921 +vn -0.4858 -0.5378 0.6890 +vn -0.5489 -0.2452 0.7991 +vn 0.4981 0.5524 0.6684 +vn 0.3097 0.5326 0.7877 +vn 0.4243 0.3816 0.8212 +vn -0.2264 -0.6919 0.6856 +vn -0.4029 -0.4496 0.7972 +vn 0.3663 0.6372 0.6781 +vn 0.0661 0.6082 0.7910 +vn 0.0749 -0.7277 0.6818 +vn -0.1858 -0.5783 0.7944 +vn 0.0749 0.7277 0.6818 +vn -0.1858 0.5783 0.7944 +vn 0.3663 -0.6372 0.6781 +vn 0.0661 -0.6082 0.7910 +vn -0.2264 0.6919 0.6856 +vn -0.4029 0.4496 0.7972 +vn 0.5962 -0.4343 0.6752 +vn 0.3097 -0.5326 0.7877 +vn -0.4858 0.5378 0.6890 +vn 0.6816 -0.3031 0.6660 +vn 0.5019 -0.3630 0.7851 +vn 0.5453 -0.1772 0.8193 +vn 0.3108 -0.2230 0.9239 +vn -0.3595 -0.0000 0.9332 +vn -0.3287 0.1480 0.9328 +vn 0.4451 0.0944 0.8905 +vn 0.3767 -0.0792 0.9229 +vn 0.3108 0.2230 0.9239 +vn 0.3767 0.0792 0.9229 +vn -0.3287 -0.1480 0.9328 +vn 0.1921 0.3260 0.9257 +vn -0.2411 -0.2719 0.9316 +vn 0.0428 0.3707 0.9278 +vn -0.1102 -0.3509 0.9299 +vn -0.1102 0.3509 0.9299 +vn 0.0428 -0.3707 0.9278 +vn -0.2411 0.2719 0.9316 +vn 0.1921 -0.3260 0.9257 +vn -0.2876 0.1289 0.9490 +vn -0.2113 0.2367 0.9483 +vn 0.2675 -0.1933 0.9440 +vn -0.3143 -0.0000 0.9493 +vn 0.3242 0.0687 0.9435 +vn 0.3242 -0.0687 0.9435 +vn 0.2675 0.1933 0.9440 +vn -0.2876 -0.1289 0.9490 +vn 0.1649 0.2828 0.9449 +vn -0.2113 -0.2367 0.9483 +vn 0.0355 0.3220 0.9461 +vn -0.0975 -0.3052 0.9473 +vn -0.0976 0.3052 0.9473 +vn 0.0355 -0.3220 0.9461 +vn 0.1649 -0.2828 0.9449 +vn -0.1961 0.0875 0.9767 +vn -0.1439 0.1602 0.9765 +vn 0.1769 -0.1283 0.9758 +vn -0.2145 -0.0000 0.9767 +vn 0.2141 -0.0454 0.9758 +vn 0.1769 0.1283 0.9758 +vn 0.2141 0.0454 0.9758 +vn -0.1961 -0.0875 0.9767 +vn 0.1092 0.1886 0.9760 +vn -0.1439 -0.1602 0.9765 +vn 0.0230 0.2157 0.9762 +vn -0.0665 -0.2056 0.9764 +vn -0.0664 0.2056 0.9764 +vn 0.0230 -0.2158 0.9762 +vn 0.1092 -0.1885 0.9760 +vn -0.0759 0.0169 -0.9970 +vn -0.0653 0.0464 -0.9968 +vn -0.0643 0.0482 -0.9968 +vn -0.0394 -0.0672 -0.9970 +vn -0.0618 -0.0452 -0.9971 +vn -0.0383 -0.0679 -0.9970 +vn -0.0620 -0.0448 -0.9971 +vn -0.0748 -0.0157 -0.9971 +vn -0.0426 0.0718 -0.9965 +vn -0.0406 0.0733 -0.9965 +vn -0.0761 0.0157 -0.9970 +vn -0.0102 0.0869 -0.9962 +vn -0.0076 0.0875 -0.9961 +vn -0.0679 -0.0497 0.9965 +vn -0.0763 -0.1300 0.9886 +vn -0.0421 -0.0746 0.9963 +vn 0.0274 0.0872 -0.9958 +vn 0.0296 0.0867 -0.9958 +vn -0.0823 -0.0172 0.9965 +vn -0.1201 -0.0868 0.9890 +vn 0.0627 0.0705 -0.9955 +vn 0.0638 0.0696 -0.9955 +vn -0.1472 0.0303 0.9886 +vn -0.0834 0.0186 0.9963 +vn -0.1263 0.0898 0.9879 +vn -0.0706 0.0529 0.9961 +vn 0.0872 0.0389 -0.9954 +vn 0.0872 0.0388 -0.9954 +vn -0.0824 0.1388 0.9869 +vn -0.0446 0.0805 0.9958 +vn 0.0250 -0.0802 -0.9965 +vn -0.0072 -0.0803 -0.9967 +vn 0.0275 -0.0796 -0.9964 +vn -0.0197 0.1678 0.9856 +vn -0.0084 0.0960 0.9954 +vn 0.0528 0.1682 0.9843 +vn 0.0324 0.0950 0.9949 +vn 0.1209 0.1358 0.9833 +vn 0.0698 0.0762 0.9946 +vn 0.1680 0.0749 0.9829 +vn 0.0955 0.0425 0.9945 +vn 0.0946 0.0007 -0.9955 +vn 0.1036 0.0008 0.9946 +vn 0.0945 -0.0005 -0.9955 +vn 0.0852 -0.0362 -0.9957 +vn -0.0179 -0.1546 0.9878 +vn -0.0079 -0.0882 0.9961 +vn 0.0483 -0.1549 0.9867 +vn 0.0301 -0.0874 0.9957 +vn 0.0835 -0.0382 -0.9958 +vn 0.0602 -0.0645 -0.9961 +vn 0.1121 -0.1276 0.9855 +vn 0.0660 -0.0708 0.9953 +vn 0.0581 -0.0661 -0.9961 +vn 0.0927 -0.0397 0.9949 +vn 0.1822 -0.0010 0.9833 +vn -0.0092 -0.0799 -0.9968 +vn 0.1610 -0.0736 0.9842 +vn 0.5000 0.8660 -0.0000 +vn 0.8090 0.5878 -0.0000 +vn -0.3090 -0.9511 -0.0000 +vn -0.6691 -0.7431 -0.0000 +vn 0.1045 0.9945 -0.0000 +vn 0.1045 -0.9945 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn -0.6691 0.7431 -0.0000 +vn -0.3090 0.9511 -0.0000 +vn 0.8090 -0.5878 -0.0000 +vn -0.9135 0.4067 -0.0000 +vn 0.9781 -0.2079 -0.0000 +vn 0.9781 0.2079 -0.0000 +vn -0.9135 -0.4067 -0.0000 +vn -0.0186 0.0554 -0.9983 +vn 0.0063 0.0578 -0.9983 +vn 0.6691 0.7431 -0.0002 +vn 0.5000 0.8660 -0.0002 +vn 0.6691 0.7432 -0.0002 +vn 0.5001 -0.8660 -0.0002 +vn 0.8090 -0.5878 -0.0003 +vn 0.5000 -0.8660 -0.0002 +vn 0.1046 -0.9945 -0.0000 +vn 0.4999 0.8661 -0.0002 +vn 0.1046 0.9945 -0.0000 +vn 0.8091 -0.5877 -0.0003 +vn -0.6693 -0.7430 0.0002 +vn -0.9135 -0.4067 0.0003 +vn -0.9136 -0.4065 0.0003 +vn -0.6690 0.7432 0.0002 +vn -0.3090 0.9511 0.0001 +vn -0.3090 -0.9511 0.0001 +vn -0.3091 -0.9510 0.0001 +vn -1.0000 -0.0000 0.0003 +vn -1.0000 0.0002 0.0003 +vn -0.6691 -0.7432 0.0002 +vn -0.9135 0.4069 0.0003 +vn -0.6691 0.7432 0.0002 +vn -0.9135 0.4068 0.0003 +vn 0.0585 -0.0107 0.9982 +vn 0.0484 -0.0334 0.9983 +vn -0.0402 -0.0429 0.9983 +vn -0.0185 -0.0551 0.9983 +vn -0.0546 -0.0261 -0.9982 +vn -0.0598 -0.0018 -0.9982 +vn -0.0601 -0.0019 -0.9982 +vn 0.0063 0.0615 0.9981 +vn 0.0301 0.0540 0.9981 +vn -0.0185 0.0589 0.9981 +vn -0.0186 0.0590 0.9981 +vn -0.0184 -0.0586 -0.9981 +vn 0.0063 -0.0615 -0.9981 +vn -0.0185 -0.0587 -0.9981 +vn 0.0063 -0.0581 0.9983 +vn 0.0300 -0.0502 0.9983 +vn -0.0601 0.0018 0.9982 +vn -0.0547 -0.0226 0.9982 +vn -0.0400 0.0427 -0.9983 +vn 0.0585 0.0142 0.9982 +vn 0.0486 0.0371 0.9981 +vn -0.0402 -0.0465 -0.9981 +vn -0.0400 0.0463 0.9981 +vn -0.0400 0.0462 0.9981 +vn -0.9782 0.2077 -0.0000 +vn -0.9782 -0.2077 -0.0000 +vn -0.9781 -0.2081 -0.0000 +vn 0.6690 -0.7432 -0.0000 +vn 0.3091 -0.9510 -0.0000 +vn 0.6693 -0.7430 -0.0000 +vn -0.8089 -0.5879 -0.0000 +vn -0.5001 -0.8660 -0.0000 +vn -0.4999 -0.8661 -0.0000 +vn 0.3089 0.9511 -0.0000 +vn -0.5001 0.8660 -0.0000 +vn -0.8089 0.5879 -0.0000 +vn -0.8091 0.5876 -0.0000 +vn 0.9136 0.4065 -0.0000 +vn 0.9135 0.4069 -0.0000 +vn -0.8091 -0.5876 -0.0000 +vn 0.3090 -0.9511 -0.0000 +vn -0.4999 0.8661 -0.0000 +vn 0.3091 0.9510 -0.0000 +vn 0.6690 0.7432 -0.0000 +vn 0.9135 -0.4069 -0.0000 +vn 0.9136 -0.4065 -0.0000 +vn -0.9781 0.2081 -0.0000 +vn 1.0000 -0.0002 -0.0000 +vn 0.6693 0.7430 -0.0000 +vn -0.0549 0.0262 0.9981 +vn -0.0550 0.0226 -0.9982 +vn 0.0588 -0.0143 -0.9982 +vn 0.0589 0.0107 -0.9982 +vn 0.0487 0.0336 -0.9982 +vn 0.0300 0.0502 -0.9983 +vn 0.0300 -0.0537 -0.9981 +vn 0.0486 -0.0371 -0.9981 +vn -0.0731 0.6937 -0.7166 +vn 0.2159 0.6633 -0.7165 +vn -0.0731 0.6937 -0.7165 +vn -0.3494 0.6038 -0.7165 +vn -0.5650 0.4094 -0.7163 +vn -0.5651 0.4092 -0.7163 +vn 0.6381 0.2827 -0.7162 +vn 0.6981 -0.0011 -0.7160 +vn 0.6380 0.2829 -0.7162 +vn -0.6828 -0.1465 -0.7158 +vn -0.5646 -0.4113 -0.7156 +vn -0.5645 -0.4115 -0.7156 +vn 0.2155 -0.6648 -0.7153 +vn -0.0729 -0.6949 -0.7154 +vn 0.2156 -0.6648 -0.7153 +vn -0.3493 0.6038 -0.7165 +vn 0.4674 0.5179 -0.7165 +vn 0.2160 0.6633 -0.7165 +vn 0.4675 0.5178 -0.7165 +vn -0.3488 -0.6055 -0.7153 +vn 0.4669 -0.5197 -0.7155 +vn 0.6375 -0.2852 -0.7157 +vn 0.4668 -0.5198 -0.7155 +vn -0.6831 0.1440 -0.7160 +vn -0.6831 0.1438 -0.7160 +vn 0.6376 -0.2850 -0.7157 +vn 0.6981 -0.0014 -0.7160 +vn -0.6829 -0.1463 -0.7158 +vn -0.3489 -0.6055 -0.7153 +vn 1.0000 -0.0000 -0.0003 +vn -0.9781 0.2080 0.0003 +vn -0.9782 -0.2077 0.0003 +vn -0.9781 -0.2079 0.0003 +vn 1.0000 0.0002 -0.0003 +vn 0.9135 0.4067 -0.0003 +vn 0.9134 0.4070 -0.0003 +vn 0.6692 0.7431 -0.0002 +vn -0.5000 -0.8660 0.0002 +vn 0.3091 0.9510 -0.0001 +vn 0.3090 -0.9511 -0.0001 +vn -0.9781 0.2081 0.0003 +vn 0.7228 -0.1539 0.6737 +vn 0.6079 0.1287 0.7835 +vn 0.6079 -0.1287 0.7835 +vn -0.6602 -0.2934 0.6914 +vn -0.7218 -0.0000 0.6922 +vn 0.7228 0.1539 0.6737 +vn 0.5019 0.3630 0.7851 +vn 0.5962 0.4343 0.6752 +vn 0.3097 0.5325 0.7877 +vn 0.3664 0.6372 0.6781 +vn 0.0750 0.7277 0.6818 +vn 0.3664 -0.6372 0.6781 +vn 0.3097 -0.5325 0.7877 +vn 0.5019 -0.3630 0.7850 +vn -0.3595 -0.0000 0.9331 +vn 0.3767 -0.0793 0.9229 +vn 0.3767 0.0793 0.9229 +vn -0.1103 -0.3509 0.9299 +vn -0.1103 0.3509 0.9299 +vn -0.2114 0.2367 0.9483 +vn 0.2675 -0.1932 0.9440 +vn -0.3144 -0.0000 0.9493 +vn 0.1650 0.2828 0.9449 +vn -0.2114 -0.2367 0.9483 +vn -0.0976 -0.3052 0.9473 +vn -0.0975 0.3052 0.9473 +vn 0.1650 -0.2828 0.9449 +vn -0.1439 0.1602 0.9766 +vn 0.1770 -0.1283 0.9758 +vn 0.2141 -0.0455 0.9757 +vn 0.1092 0.1885 0.9760 +vn 0.0230 0.2158 0.9762 +vn -0.0664 -0.2056 0.9764 +vn 0.0231 -0.2157 0.9762 +vn -0.0655 0.0466 -0.9968 +vn -0.0645 0.0483 -0.9967 +vn -0.0396 -0.0674 -0.9969 +vn -0.0620 -0.0454 -0.9970 +vn -0.0384 -0.0682 -0.9969 +vn -0.0622 -0.0450 -0.9970 +vn -0.0751 -0.0157 -0.9971 +vn -0.0428 0.0721 -0.9965 +vn -0.0408 0.0736 -0.9965 +vn -0.0102 0.0872 -0.9961 +vn -0.0076 0.0878 -0.9961 +vn -0.0680 -0.0498 0.9964 +vn -0.0764 -0.1303 0.9885 +vn -0.0422 -0.0748 0.9963 +vn 0.0275 0.0875 -0.9958 +vn 0.0296 0.0866 -0.9958 +vn -0.0826 -0.0170 0.9964 +vn -0.1203 -0.0869 0.9889 +vn 0.0629 0.0707 -0.9955 +vn 0.0640 0.0698 -0.9955 +vn -0.1475 0.0304 0.9886 +vn -0.0835 0.0186 0.9963 +vn -0.1265 0.0900 0.9879 +vn -0.0707 0.0530 0.9961 +vn 0.0875 0.0390 -0.9954 +vn 0.0876 0.0389 -0.9954 +vn -0.0826 0.1391 0.9868 +vn -0.0447 0.0806 0.9957 +vn 0.0250 -0.0801 -0.9965 +vn -0.0072 -0.0806 -0.9967 +vn 0.0276 -0.0800 -0.9964 +vn -0.0197 0.1681 0.9856 +vn -0.0084 0.0961 0.9953 +vn 0.0529 0.1685 0.9843 +vn 0.0325 0.0952 0.9949 +vn 0.1211 0.1360 0.9833 +vn 0.0700 0.0764 0.9946 +vn 0.1684 0.0750 0.9829 +vn 0.0957 0.0426 0.9945 +vn 0.0949 0.0007 -0.9955 +vn 0.1038 0.0008 0.9946 +vn 0.0846 -0.0362 -0.9958 +vn -0.0178 -0.1546 0.9878 +vn -0.0079 -0.0883 0.9961 +vn 0.0483 -0.1550 0.9867 +vn 0.0301 -0.0875 0.9957 +vn 0.0835 -0.0381 -0.9958 +vn 0.0604 -0.0647 -0.9961 +vn 0.1123 -0.1278 0.9854 +vn 0.0661 -0.0709 0.9953 +vn 0.0583 -0.0663 -0.9961 +vn 0.0928 -0.0398 0.9949 +vn 0.1826 -0.0010 0.9832 +vn -0.0093 -0.0802 -0.9967 +vn 0.1613 -0.0737 0.9841 +vn -0.9136 0.4067 -0.0000 +vn -0.9136 -0.4067 -0.0000 +vn 0.9782 -0.2077 -0.0003 +vn 0.9781 0.2079 -0.0003 +vn 0.9781 -0.2079 -0.0003 +vn 0.8089 0.5879 -0.0003 +vn 0.8090 0.5878 -0.0003 +vn 0.9781 0.2081 -0.0003 +vn 0.8091 -0.5876 -0.0003 +vn -0.0585 0.0106 -0.9982 +vn -0.0484 0.0334 -0.9983 +vn 0.0186 0.0554 -0.9983 +vn 0.0400 0.0427 -0.9983 +vn -0.0549 -0.0262 -0.9981 +vn -0.0601 -0.0018 -0.9982 +vn -0.0063 -0.0615 -0.9981 +vn -0.0299 -0.0537 -0.9981 +vn 0.0185 -0.0586 -0.9981 +vn -0.0185 -0.0586 -0.9981 +vn -0.0300 0.0502 -0.9983 +vn -0.0062 0.0578 -0.9983 +vn 0.0550 0.0227 -0.9982 +vn 0.0601 -0.0018 -0.9982 +vn -0.0402 0.0429 -0.9983 +vn -0.0483 -0.0369 -0.9981 +vn -0.0584 -0.0142 -0.9982 +vn 0.0402 -0.0465 -0.9981 +vn 0.9782 0.2077 -0.0000 +vn 0.9782 -0.2077 -0.0000 +vn 0.9781 0.2081 -0.0000 +vn -0.6690 0.7432 -0.0000 +vn -0.3091 0.9510 -0.0000 +vn -0.3089 0.9511 -0.0000 +vn 0.5001 0.8660 -0.0000 +vn 0.8089 0.5879 -0.0000 +vn 0.4999 0.8661 -0.0000 +vn -0.3091 -0.9510 -0.0000 +vn 0.8089 -0.5879 -0.0000 +vn 0.5001 -0.8660 -0.0000 +vn 0.8091 -0.5876 -0.0000 +vn -0.9136 -0.4065 -0.0000 +vn -1.0000 -0.0002 -0.0000 +vn -1.0000 0.0002 -0.0000 +vn 0.8091 0.5876 -0.0000 +vn 0.4999 -0.8661 -0.0000 +vn -0.6690 -0.7432 -0.0000 +vn -0.6693 -0.7430 -0.0000 +vn -0.9135 0.4069 -0.0000 +vn -0.6693 0.7430 -0.0000 +vn 0.9781 -0.2081 -0.0000 +vn -0.9136 0.4065 -0.0000 +vn -0.9135 -0.4069 -0.0000 +vn 0.0549 -0.0262 -0.9981 +vn 0.0546 -0.0261 -0.9982 +vn -0.0550 0.0227 -0.9982 +vn 0.0585 0.0106 -0.9982 +vn 0.0484 0.0334 -0.9983 +vn 0.0064 -0.0619 -0.9981 +vn -0.0730 0.6936 -0.7167 +vn -0.3494 0.6038 -0.7164 +vn 0.6381 0.2827 -0.7161 +vn 0.6381 0.2829 -0.7161 +vn -0.6828 -0.1465 -0.7157 +vn -0.5647 -0.4114 -0.7155 +vn -0.5645 -0.4116 -0.7155 +vn 0.2155 -0.6647 -0.7154 +vn -0.0729 -0.6950 -0.7153 +vn 0.2156 -0.6646 -0.7154 +vn -0.3493 0.6039 -0.7164 +vn 0.4675 0.5178 -0.7164 +vn -0.3487 -0.6053 -0.7155 +vn 0.4669 -0.5197 -0.7154 +vn 0.6376 -0.2853 -0.7156 +vn -0.6830 0.1440 -0.7161 +vn -0.6830 0.1438 -0.7161 +vn 0.6377 -0.2851 -0.7156 +vn -0.3488 -0.6053 -0.7155 +vn -0.4510 -0.6347 -0.6275 +vn -0.3537 -0.8114 -0.4653 +vn -0.5880 -0.4251 -0.6882 +vn -0.6364 -0.2148 -0.7408 +vn -0.7096 -0.0162 -0.7044 +vn -0.6961 0.0197 -0.7177 +vn 0.9517 0.0281 -0.3056 +vn 0.5207 -0.3405 -0.7829 +vn 0.7021 -0.4308 -0.5669 +vn 0.4733 -0.5439 -0.6929 +vn 0.5547 -0.0611 -0.8298 +vn 0.6899 -0.0218 -0.7235 +vn 0.4970 0.1383 -0.8567 +vn 0.6661 0.1763 -0.7247 +vn 0.8386 0.1455 -0.5249 +vn 0.7182 -0.5412 -0.4373 +vn 0.7668 -0.1830 -0.6153 +vn 0.9010 -0.2271 -0.3697 +vn 0.9202 0.0253 -0.3906 +vn 0.9492 -0.0934 -0.3005 +vn 0.9505 0.1011 -0.2938 +vn 0.8352 -0.4534 -0.3111 +vn 0.8943 -0.3523 -0.2759 +vn 0.9690 0.0560 -0.2406 +vn 0.9754 0.0907 -0.2011 +vn -0.0000 0.9998 -0.0205 +vn -0.0000 0.9995 -0.0313 +vn -1.0000 0.0041 -0.0073 +vn 0.9798 0.0562 -0.1918 +vn -0.0218 0.2639 -0.9643 +vn -1.0000 0.0005 -0.0004 +vn -1.0000 0.0002 -0.0009 +vn -1.0000 0.0007 -0.0000 +vn -0.0000 -0.9949 0.1006 +vn -0.0000 -0.9924 0.1228 +vn -0.0013 -0.9951 0.0993 +vn -0.8210 -0.0000 0.5709 +vn 0.8210 -0.0000 0.5709 +vn -0.0000 0.0132 0.9999 +vn 1.0000 0.0005 -0.0004 +vn 1.0000 0.0002 -0.0009 +vn 1.0000 -0.0000 -0.0012 +vn -0.0000 -0.9999 0.0169 +vn 0.0469 0.2320 0.9716 +vn -0.1428 -0.8642 -0.4824 +vn -0.3053 -0.9365 -0.1723 +vn -0.4039 -0.9001 -0.1634 +vn 0.9999 -0.0078 -0.0104 +vn -0.7065 0.1084 -0.6994 +vn -0.7206 0.0805 -0.6887 +vn 0.3137 -0.4281 0.8475 +vn 0.1688 -0.2846 -0.9437 +vn -0.2368 -0.8817 -0.4080 +vn -0.0001 1.0000 0.0055 +vn -0.0003 1.0000 0.0057 +vn 0.0096 0.9999 0.0075 +vn -0.0433 -0.9986 0.0302 +vn -0.0050 -0.9996 0.0262 +vn -0.0031 -0.7494 -0.6621 +vn -0.0007 -0.8808 -0.4735 +vn -0.0000 -0.8806 -0.4739 +vn 0.9681 -0.0444 0.2466 +vn -0.6896 -0.6547 0.3096 +vn -0.9904 0.0004 0.1382 +vn -0.9477 -0.0516 0.3148 +vn 0.9929 0.0021 0.1190 +vn 0.9743 0.0071 0.2250 +vn -0.0076 0.9993 0.0368 +vn -0.9678 0.0066 0.2517 +vn -0.0007 -0.9999 -0.0170 +vn -0.0000 -0.9999 -0.0156 +vn 0.0004 -0.9999 -0.0150 +vn -0.0004 -0.9999 -0.0150 +vn 0.0001 -0.9999 -0.0155 +vn 0.0008 -0.9999 -0.0170 +vn 0.0040 -0.9999 -0.0163 +vn 0.0009 -0.9998 -0.0190 +vn 0.0041 -0.9998 -0.0169 +vn 0.0018 -0.9998 -0.0189 +vn 0.0041 -0.9998 -0.0175 +vn 0.0025 -0.9998 -0.0189 +vn -0.0000 -0.9998 -0.0197 +vn -0.0003 -0.9998 -0.0208 +vn -0.0033 -0.9999 -0.0167 +vn -0.0008 -0.9998 -0.0213 +vn -0.0035 -0.9998 -0.0176 +vn -0.0016 -0.9998 -0.0214 +vn -0.0036 -0.9998 -0.0186 +vn -0.0015 1.0000 -0.0013 +vn -0.0007 1.0000 -0.0005 +vn -0.0027 1.0000 -0.0023 +vn -0.0217 -0.9985 0.0509 +vn -0.0263 -0.9977 0.0617 +vn -0.9902 0.1179 -0.0747 +vn -0.9919 -0.0000 -0.1269 +vn 0.9892 0.0463 -0.1391 +vn 0.9558 0.2357 -0.1758 +vn 0.9919 -0.0000 -0.1269 +vn -0.0009 -1.0000 0.0093 +vn -0.0533 0.9983 0.0236 +vn -0.0742 0.9901 0.1193 +vn -0.0000 0.9827 0.1849 +vn 0.0528 0.9983 0.0256 +vn 0.0039 -0.0049 1.0000 +vn 0.0153 -0.0000 0.9999 +vn 0.0054 -0.0044 1.0000 +vn -0.9943 0.0080 0.1067 +vn 0.9943 0.0080 0.1067 +vn -0.0033 0.9999 0.0149 +vn -0.0072 0.9998 0.0162 +vn -0.0185 0.9996 0.0208 +vn 0.9960 -0.0000 0.0891 +vn -0.0000 0.0001 1.0000 +vn -0.0209 0.6935 0.7201 +vn -0.9849 -0.1702 0.0324 +vn -0.9661 -0.0000 0.2582 +vn 0.0220 0.6921 0.7215 +vn 0.9995 0.0019 0.0322 +vn 0.9999 -0.0081 -0.0079 +vn 0.9996 0.0269 0.0083 +vn 0.9967 -0.0025 0.0807 +vn -0.0000 -0.9933 -0.1154 +vn 0.0043 0.9967 -0.0812 +vn -0.0020 0.9577 -0.2876 +vn -0.9956 0.0022 0.0941 +vn -0.9961 0.0353 0.0812 +vn -0.9950 0.0811 0.0586 +vn -0.0135 0.0059 0.9999 +vn -0.0000 0.9981 0.0622 +vn -0.0116 -0.3853 -0.9227 +vn 0.0051 0.7872 -0.6166 +vn -0.0016 0.8027 -0.5964 +vn 0.0158 0.3028 0.9529 +vn -0.0018 0.7540 0.6568 +vn 0.0063 -0.2564 0.9665 +vn -0.0036 -0.2846 0.9586 +vn -0.0062 0.4973 -0.8675 +vn 0.0010 0.9692 -0.2463 +vn -0.0032 0.6148 -0.7887 +vn -0.0009 0.9658 -0.2593 +vn -0.9995 -0.0188 -0.0240 +vn -0.0000 -0.6223 -0.7828 +vn 0.9994 -0.0257 -0.0238 +vn 0.0020 -0.9993 0.0364 +vn 0.9823 -0.0000 0.1873 +vn -0.9823 -0.0000 -0.1873 +vn -0.6335 -0.0094 -0.7737 +vn -0.6256 -0.0031 -0.7801 +vn 0.5945 -0.0069 -0.8041 +vn 0.5897 -0.0104 -0.8076 +vn -0.4999 0.8661 0.0002 +vn 0.4981 0.5525 0.6683 +vn -0.0747 -0.0160 -0.9971 +vn -0.1447 -0.0311 0.9890 +vn 0.9135 -0.4068 -0.0003 +vn -0.0750 -0.0161 -0.9971 +vn -0.1450 -0.0311 0.9889 +vn -1.0000 -0.0002 0.0003 +vn -1.0000 0.0002 0.0002 +vn -1.0000 -0.0017 0.0001 +vn -1.0000 -0.0000 -0.0001 +vn -1.0000 0.0002 -0.0004 +vn -1.0000 -0.0000 -0.0012 +vn 1.0000 0.0007 -0.0000 +vn 0.9999 -0.0080 -0.0105 +vn 0.9993 -0.0309 -0.0209 +vn 0.9983 -0.0545 -0.0217 +vn 0.9519 0.0281 -0.3052 +vn 1.0000 -0.0000 -0.0090 +vn 0.9880 -0.1522 -0.0274 +vn 0.9969 -0.0764 -0.0178 +vn 0.9938 0.1106 0.0080 +vn -0.0012 -0.7945 -0.6073 +vn -0.1065 0.0384 -0.9936 +vn -0.0434 -0.2158 -0.9755 +vn -0.0992 0.0796 -0.9919 +vn -0.0920 -0.4258 -0.9001 +vn 0.0086 -0.3391 -0.9407 +vn -0.0218 -0.2661 -0.9637 +vn -0.0564 0.5881 -0.8068 +vn 0.0001 -0.0000 -1.0000 +vn 0.0001 -0.0001 -1.0000 +vn 0.0037 -0.0154 -0.9999 +vn 0.5723 -0.7811 -0.2497 +vn -0.0094 0.9999 0.0071 +vn -0.0133 0.9999 0.0063 +vn -0.0034 1.0000 0.0029 +vn 0.0020 1.0000 0.0053 +vn -0.0034 1.0000 0.0021 +vn -0.0053 1.0000 0.0010 +vn 0.0071 0.9999 0.0085 +vn -0.0020 1.0000 0.0053 +vn 0.0140 0.9999 0.0067 +vn 0.0034 1.0000 0.0021 +vn 0.0034 1.0000 0.0031 +vn 0.0053 1.0000 0.0010 +vn 0.0040 1.0000 0.0004 +vn -0.0071 0.9999 0.0085 +vn -0.0040 1.0000 0.0004 +vn 0.0005 1.0000 0.0052 +vn -0.0007 1.0000 0.0056 +vn 0.0002 1.0000 0.0053 +vn -0.0731 -0.9967 0.0347 +vn -0.0063 -1.0000 0.0047 +vn -0.0062 -1.0000 0.0049 +vn -0.0061 -1.0000 0.0024 +vn 0.4983 -0.7947 0.3466 +vn 0.9413 -0.1042 0.3211 +vn -0.4925 -0.8183 0.2964 +vn -0.9177 -0.0390 0.3952 +vn 0.0841 -0.9963 0.0186 vt 0.253710 0.110526 vt 0.252349 0.068980 vt 0.240097 0.108230 @@ -2533,7 +8206,6 @@ vt 0.102714 0.574049 vt 0.151506 0.572592 vt 0.337191 0.624061 vt 0.337191 0.704667 -vt 0.337191 0.704667 vt 0.320684 0.647879 vt 0.083852 0.600957 vt 0.313479 0.584301 @@ -2555,24 +8227,16 @@ vt 0.261863 0.480363 vt 0.261863 0.751637 vt 0.175980 0.543455 vt 0.256586 0.543455 -vt 0.256586 0.543455 vt 0.256586 0.785272 vt 0.175980 0.785272 -vt 0.175980 0.785272 vt 0.256586 0.462849 -vt 0.175980 0.543455 vt 0.175980 0.462849 vt 0.197878 0.688963 vt 0.248434 0.522479 vt 0.248434 0.689647 -vt 0.337191 0.624061 -vt 0.337191 0.704667 vt 0.334807 0.548694 vt 0.057193 0.653727 vt 0.057193 0.548694 -vt 0.175980 0.462849 -vt 0.175980 0.543455 -vt 0.175980 0.543455 vt 0.219390 0.594549 vt 0.185128 0.622603 vt 0.219390 0.659949 @@ -3444,13 +9108,8 @@ vt 0.332306 0.648580 vt 0.369571 0.568061 vt 0.249842 0.522353 vt 0.172030 0.465145 -vt 0.175980 0.543455 -vt 0.256586 0.785272 -vt 0.256586 0.543455 vt 0.189399 0.521681 -vt 0.337191 0.624061 vt 0.334807 0.653727 -vt 0.175980 0.462849 vt 0.207656 0.556503 vt 0.241942 0.659949 vt 0.309031 0.804486 @@ -3606,4528 +9265,2914 @@ vt 0.232488 0.109666 vt 0.238571 0.261723 vt 0.197818 0.221995 vt 0.198793 0.203902 -vn -0.0850 0.0014 -0.9964 -vn -0.1434 -0.0004 -0.9897 -vn -0.0880 -0.0711 -0.9936 -vn -0.1601 -0.0115 -0.9870 -vn -0.1027 -0.1488 -0.9835 -vn -0.1896 -0.0152 -0.9817 -vn -0.1280 -0.2399 -0.9623 -vn -0.2315 -0.0112 -0.9728 -vn -0.1795 -0.3578 -0.9164 -vn -0.2839 -0.0110 -0.9588 -vn -0.2522 -0.5529 -0.7942 -vn -0.3148 -0.0516 -0.9477 -vn -0.2965 -0.8183 -0.4925 -vn -0.1239 -0.2191 0.9678 -vn -0.1533 -0.0171 0.9880 -vn -0.0839 -0.1422 0.9863 -vn -0.0764 -0.0648 0.9950 -vn -0.1233 -0.0017 0.9924 -vn -0.0733 0.0014 0.9973 -vn -0.1227 0.0052 0.9924 -vn -0.0824 0.0664 0.9944 -vn -0.1523 0.0169 0.9882 -vn -0.0946 0.1432 0.9852 -vn -0.1267 0.2183 0.9676 -vn -0.2042 0.0157 0.9788 -vn -0.1632 0.3436 0.9248 -vn -0.2449 0.9662 0.0803 -vn -0.2410 0.7101 0.6616 -vn -0.3612 0.4929 0.7916 -vn -0.1768 0.9838 0.0306 -vn -0.1756 0.9039 0.3901 -vn -0.0923 0.9952 0.0312 -vn -0.1433 0.9724 0.1843 -vn -0.0503 0.9987 0.0041 -vn -0.1334 0.9911 -0.0017 -vn -0.0489 0.9988 -0.0011 -vn -0.1411 0.9681 -0.2072 -vn -0.0912 0.9957 -0.0152 -vn -0.1816 0.8480 -0.4980 -vn -0.1826 0.9827 -0.0325 -vn -0.2334 0.5855 -0.7764 -vn -0.2499 0.9635 -0.0961 -vn -0.3603 0.3869 -0.8489 -vn -0.1579 0.3215 -0.9336 -vn -0.2319 0.0210 -0.9725 -vn -0.1391 0.2325 -0.9626 -vn -0.1755 0.0234 -0.9842 -vn -0.1077 0.1561 -0.9819 -vn -0.0953 0.0727 -0.9928 -vn -0.1433 0.0025 -0.9897 -vn -0.2369 -0.9574 0.1654 -vn -0.1967 -0.9805 0.0005 -vn -0.2095 -0.9778 0.0002 -vn -0.1639 -0.9050 0.3925 -vn -0.0040 -0.9829 0.1840 -vn -0.1867 -0.9655 0.1816 -vn -0.0488 0.1439 0.9884 -vn -0.0302 0.0665 0.9973 -vn -0.2484 0.8318 -0.4964 -vn -0.1064 -0.6291 -0.7700 -vn -0.0132 -0.4130 -0.9106 -vn 0.0004 -0.2726 0.9621 -vn -0.2701 0.9432 0.1933 -vn -0.2578 0.8723 0.4156 -vn -0.0175 -0.0020 -0.9998 -vn -0.0330 0.0730 -0.9968 -vn -0.0808 0.2585 0.9626 -vn -0.1860 0.6137 -0.7673 -vn 0.0040 -0.1513 0.9885 -vn -0.2735 0.9619 -0.0018 -vn 0.0050 -0.1594 -0.9872 -vn -0.0042 -0.0784 -0.9969 -vn -0.2700 -0.8972 0.3496 -vn -0.1270 -0.7316 0.6698 -vn -0.1432 0.4558 0.8785 -vn -0.1165 0.3909 -0.9130 -vn -0.2488 -0.9498 -0.1895 -vn -0.2029 -0.8650 -0.4589 -vn -0.0160 -0.0018 0.9999 -vn -0.0040 -0.0716 0.9974 -vn -0.2704 0.9382 -0.2162 -vn 0.0061 -0.2604 -0.9655 -vn -0.2015 -0.4100 0.8895 -vn -0.2926 -0.6555 0.6962 -vn -0.2173 0.7026 0.6776 -vn -0.0761 0.2476 -0.9659 -vn -0.2089 -0.9575 -0.1987 -vn -0.0438 -0.4783 0.8771 -vn -0.0517 0.1522 -0.9870 -vn 0.0597 -0.2874 0.9559 -vn 0.1714 -0.5093 0.8433 -vn 0.0744 -0.5047 0.8601 -vn -0.4181 0.9084 -0.0019 -vn -0.4103 0.8915 0.1920 -vn 0.0373 -0.9175 0.3960 -vn -0.4097 0.8867 -0.2142 -vn 0.0666 -0.7540 0.6534 -vn -0.3684 0.7939 -0.4838 -vn 0.0174 -0.0761 -0.9969 -vn -0.0094 -0.0026 -1.0000 -vn -0.1809 0.3828 -0.9060 -vn -0.2800 0.5992 -0.7500 -vn 0.0379 -0.1549 0.9872 -vn 0.0411 -0.1586 -0.9865 -vn -0.1132 0.2377 -0.9647 -vn 0.0157 -0.0708 0.9974 -vn 0.0601 -0.2658 -0.9622 -vn -0.0709 0.1439 -0.9870 -vn -0.0087 -0.0025 1.0000 -vn 0.0713 -0.4334 -0.8984 -vn -0.0386 0.0687 -0.9969 -vn -0.0357 0.0631 0.9974 -vn 0.0599 -0.6737 -0.7366 -vn -0.0699 0.1391 0.9878 -vn 0.0236 -0.8846 -0.4657 -vn -0.1245 0.2555 0.9588 -vn -0.0114 -0.9789 -0.2038 -vn -0.2137 0.4480 0.8681 -vn -0.3154 0.6742 0.6679 -vn -0.0270 -0.9996 -0.0024 -vn -0.3818 0.8267 0.4133 -vn -0.0068 -0.0044 1.0000 -vn 0.0471 -0.0623 0.9969 -vn 0.0316 -0.0696 0.9971 -vn -0.3872 0.5516 -0.7388 -vn -0.5047 0.7254 -0.4681 -vn 0.1187 -0.2918 0.9491 -vn 0.0333 -0.0732 -0.9968 -vn -0.0075 -0.0047 -1.0000 -vn -0.2488 0.3519 -0.9023 -vn 0.0716 -0.1549 0.9853 -vn 0.0735 -0.1540 -0.9853 -vn -0.1526 0.2132 -0.9650 -vn 0.1130 -0.2648 -0.9577 -vn -0.0936 0.1266 -0.9875 -vn 0.1524 -0.4400 -0.8850 -vn -0.0489 0.0594 -0.9970 -vn -0.0464 0.0560 0.9974 -vn 0.1771 -0.6814 -0.7102 -vn -0.0938 0.1254 0.9877 -vn 0.1571 -0.8833 -0.4417 -vn -0.1684 0.2332 0.9577 -vn 0.1197 -0.9743 -0.1909 -vn -0.2912 0.4115 0.8637 -vn 0.0985 -0.9951 -0.0017 -vn -0.4287 0.6152 0.6616 -vn -0.5598 0.8081 0.1833 -vn -0.5205 0.7522 0.4041 -vn 0.1250 -0.9772 0.1717 -vn -0.5702 0.8215 -0.0022 -vn 0.1693 -0.9092 0.3804 -vn 0.1963 -0.7507 0.6308 -vn -0.5579 0.8043 -0.2046 -vn -0.1999 0.2027 0.9586 -vn -0.1183 0.0921 0.9887 -vn -0.1095 0.1088 0.9880 -vn 0.1690 -0.2459 -0.9545 -vn 0.1045 -0.1396 -0.9847 -vn -0.1075 0.1070 -0.9884 -vn -0.1801 0.1821 -0.9666 -vn -0.0033 -0.0034 1.0000 -vn 0.2458 -0.4147 -0.8761 -vn -0.0540 0.0508 -0.9972 -vn -0.0518 0.0488 0.9975 -vn 0.3159 -0.6440 -0.6968 -vn -0.0036 -0.0038 -1.0000 -vn 0.3360 -0.8383 -0.4294 -vn 0.3077 -0.9328 -0.1878 -vn -0.3480 0.3581 0.8664 -vn 0.2955 -0.9553 -0.0014 -vn -0.5222 0.5402 0.6599 -vn -0.6838 0.7090 0.1723 -vn -0.6379 0.6624 0.3928 -vn 0.3112 -0.9351 0.1695 -vn -0.6955 0.7185 -0.0029 -vn 0.3487 -0.8606 0.3712 -vn 0.3457 -0.7042 0.6201 -vn -0.6204 0.6375 -0.4569 -vn -0.6826 0.7043 -0.1947 -vn 0.2776 -0.4779 0.8334 -vn -0.4742 0.4853 -0.7345 -vn 0.1841 -0.2738 0.9440 -vn 0.0487 -0.0647 -0.9967 -vn -0.3001 0.3061 -0.9034 -vn 0.1067 -0.1429 0.9840 -vn -0.7335 0.5560 0.3909 -vn -0.6435 0.3706 0.6698 -vn -0.5942 0.4523 0.6651 -vn 0.5082 -0.7458 -0.4307 -vn 0.4384 -0.5732 -0.6923 -vn -0.2186 0.1690 0.9611 -vn 0.5201 -0.8328 -0.1894 -vn -0.3886 0.2980 0.8719 -vn 0.5159 -0.8566 -0.0017 -vn 0.5228 -0.8352 0.1710 -vn -0.7985 0.6020 -0.0047 -vn -0.7868 0.5949 0.1645 -vn 0.5231 -0.7659 0.3738 -vn -0.7842 0.5900 -0.1921 -vn 0.4766 -0.6256 0.6176 -vn -0.7102 0.5338 -0.4590 -vn 0.3642 -0.4265 0.8279 -vn -0.5371 0.4039 -0.7405 -vn 0.2328 -0.2454 0.9410 -vn 0.0599 -0.0554 -0.9967 -vn -0.0006 -0.0016 -1.0000 -vn -0.3345 0.2529 -0.9078 -vn 0.1306 -0.1268 0.9833 -vn 0.1268 -0.1231 -0.9843 -vn -0.1961 0.1497 -0.9691 -vn 0.0579 -0.0535 0.9969 -vn 0.2094 -0.2199 -0.9528 -vn -0.1161 0.0894 -0.9892 -vn -0.0006 -0.0014 1.0000 -vn 0.3198 -0.3715 -0.8716 -vn -0.0573 0.0443 -0.9974 -vn -0.0548 0.0428 0.9976 -vn -0.8736 0.4866 -0.0072 -vn -0.9035 0.3837 -0.1908 -vn -0.9213 0.3888 -0.0082 -vn 0.6668 -0.7453 -0.0019 -vn -0.8016 0.4528 0.3903 -vn 0.6626 -0.7288 0.1725 -vn -0.8613 0.4816 0.1620 -vn 0.6382 -0.6726 0.3745 -vn -0.8568 0.4776 -0.1945 -vn 0.5610 -0.5557 0.6135 -vn -0.7730 0.4334 -0.4634 -vn 0.4180 -0.3854 0.8226 -vn -0.5775 0.3294 -0.7470 -vn 0.2619 -0.2247 0.9386 -vn 0.0662 -0.0502 -0.9965 -vn 0.0005 -0.0008 -1.0000 -vn -0.3549 0.2079 -0.9115 -vn 0.1449 -0.1163 0.9826 -vn 0.1405 -0.1126 -0.9837 -vn -0.2084 0.1263 -0.9699 -vn 0.0640 -0.0486 0.9968 -vn 0.2348 -0.2011 -0.9510 -vn -0.1229 0.0780 -0.9893 -vn 0.0005 -0.0008 1.0000 -vn 0.3662 -0.3368 -0.8675 -vn -0.0603 0.0401 -0.9974 -vn -0.0576 0.0385 0.9976 -vn 0.5164 -0.5106 -0.6874 -vn -0.1248 0.0799 0.9890 -vn 0.6213 -0.6548 -0.4303 -vn -0.2320 0.1424 0.9622 -vn 0.6601 -0.7265 -0.1911 -vn -0.4153 0.2461 0.8757 -vn 0.7506 -0.6320 -0.1926 -vn 0.8419 -0.5396 -0.0019 -vn 0.8261 -0.5275 -0.1981 -vn 0.6199 -0.4919 0.6113 -vn -0.8156 0.3540 -0.4577 -vn 0.4561 -0.3458 0.8200 -vn -0.6126 0.2767 -0.7404 -vn 0.2827 -0.2044 0.9372 -vn 0.0702 -0.0463 -0.9965 -vn 0.0005 -0.0004 -1.0000 -vn -0.3790 0.1816 -0.9074 -vn 0.1547 -0.1067 0.9822 -vn 0.1498 -0.1032 -0.9833 -vn -0.2224 0.1147 -0.9682 -vn 0.0678 -0.0448 0.9967 -vn 0.2532 -0.1828 -0.9500 -vn -0.1311 0.0727 -0.9887 -vn 0.0005 -0.0005 1.0000 -vn 0.3995 -0.3023 -0.8654 -vn -0.0642 0.0380 -0.9972 -vn -0.0610 0.0361 0.9975 -vn 0.5709 -0.4523 -0.6852 -vn -0.1328 0.0738 0.9884 -vn 0.6968 -0.5735 -0.4308 -vn -0.2472 0.1277 0.9605 -vn -0.4425 0.2131 0.8711 -vn 0.7627 -0.6467 -0.0018 -vn -0.6840 0.3102 0.6602 -vn -0.8479 0.3692 0.3804 -vn 0.7535 -0.6340 0.1741 -vn -0.9089 0.3868 0.1557 -vn 0.7157 -0.5889 0.3755 -vn 0.6684 -0.4133 0.6184 -vn 0.8341 -0.3819 0.3981 -vn 0.7814 -0.4927 0.3829 -vn -0.7262 0.2623 0.6355 -vn -0.8843 0.3001 0.3577 -vn 0.8293 -0.5292 0.1794 -vn -0.9401 0.3087 0.1443 -vn -0.9345 0.3069 -0.1801 -vn -0.9509 0.3094 -0.0089 -vn -0.8530 0.2899 -0.4340 -vn 0.4855 -0.2921 0.8240 -vn -0.6548 0.2374 -0.7176 -vn 0.2977 -0.1739 0.9387 -vn 0.0726 -0.0401 -0.9966 -vn -0.0001 0.0002 -1.0000 -vn -0.4130 0.1638 -0.8959 -vn 0.1614 -0.0918 0.9826 -vn 0.1561 -0.0888 -0.9837 -vn -0.2429 0.1064 -0.9642 -vn 0.0702 -0.0388 0.9968 -vn 0.2663 -0.1555 -0.9513 -vn -0.1417 0.0680 -0.9876 -vn 0.0000 0.0002 1.0000 -vn 0.4245 -0.2549 -0.8688 -vn -0.0685 0.0353 -0.9970 -vn -0.0652 0.0335 0.9973 -vn 0.6145 -0.3793 -0.6918 -vn -0.1434 0.0684 0.9873 -vn 0.7602 -0.4794 -0.4384 -vn -0.2692 0.1171 0.9560 -vn -0.4800 0.1889 0.8567 -vn 0.1645 -0.0719 0.9837 -vn 0.3079 -0.0962 0.9466 -vn 0.3051 -0.1352 0.9427 -vn -0.9573 0.2361 -0.1670 -vn -0.9715 0.2368 -0.0089 -vn 0.7047 -0.3199 0.6332 -vn -0.8864 0.2277 -0.4031 -vn 0.5046 -0.2262 0.8332 -vn -0.7033 0.1950 -0.6836 -vn 0.0738 -0.0317 -0.9968 -vn -0.0007 0.0006 -1.0000 -vn -0.4570 0.1410 -0.8782 -vn 0.1591 -0.0697 -0.9848 -vn -0.2679 0.0931 -0.9589 -vn 0.0715 -0.0307 0.9970 -vn 0.2726 -0.1208 -0.9545 -vn -0.1532 0.0588 -0.9864 -vn -0.0005 0.0005 1.0000 -vn 0.4398 -0.1968 -0.8763 -vn -0.0727 0.0300 -0.9969 -vn -0.0694 0.0285 0.9972 -vn 0.6454 -0.2925 -0.7056 -vn -0.1554 0.0590 0.9861 -vn 0.8099 -0.3710 -0.4544 -vn -0.2965 0.1013 0.9496 -vn 0.8890 -0.4085 -0.2067 -vn -0.5255 0.1593 0.8358 -vn 0.9086 -0.4177 -0.0019 -vn -0.7716 0.2107 0.6001 -vn -0.9145 0.2329 0.3307 -vn 0.8927 -0.4099 0.1874 -vn -0.9623 0.2368 0.1339 -vn -0.0728 0.0213 0.9971 -vn -0.0009 -0.0010 1.0000 -vn -0.0009 0.0003 1.0000 -vn 0.0743 -0.0231 -0.9970 -vn -0.0011 0.0003 -1.0000 -vn -0.5017 0.1077 -0.8583 -vn -0.7490 0.1423 -0.6471 -vn 0.1653 -0.0517 0.9849 -vn 0.1598 -0.0499 -0.9859 -vn -0.2950 0.0720 -0.9528 -vn 0.0719 -0.0223 0.9972 -vn 0.2744 -0.0857 -0.9578 -vn -0.1641 0.0449 -0.9854 -vn 0.4443 -0.1386 -0.8851 -vn -0.0761 0.0223 -0.9969 -vn 0.6612 -0.2059 -0.7214 -vn -0.1674 0.0451 0.9849 -vn 0.8423 -0.2616 -0.4712 -vn -0.3267 0.0777 0.9419 -vn 0.9324 -0.2888 -0.2173 -vn -0.5710 0.1190 0.8122 -vn 0.9554 -0.2954 -0.0021 -vn -0.8104 0.1508 0.5661 -vn -0.9374 0.1623 0.3081 -vn 0.9366 -0.2898 0.1971 -vn -0.9781 0.1648 0.1269 -vn 0.8693 -0.2698 0.4142 -vn -0.9738 0.1643 -0.1571 -vn -0.9862 0.1653 -0.0081 -vn 0.7249 -0.2261 0.6507 -vn -0.9140 0.1598 -0.3730 -vn 0.5117 -0.1599 0.8441 -vn -0.6099 0.0731 0.7891 -vn -0.3748 0.0158 0.9270 -vn -0.3525 0.0496 0.9345 -vn 0.4455 -0.0928 -0.8904 -vn 0.2744 -0.0581 -0.9599 -vn -0.0785 0.0136 -0.9968 -vn -0.1739 0.0286 -0.9843 -vn -0.0757 0.0130 0.9970 -vn 0.6667 -0.1367 -0.7327 -vn -0.0011 -0.0011 -1.0000 -vn -0.1786 0.0288 0.9835 -vn 0.8572 -0.1729 -0.4851 -vn 0.9556 -0.1899 -0.2252 -vn 0.9811 -0.1937 -0.0021 -vn -0.8379 0.0894 0.5384 -vn -0.9503 0.0956 0.2962 -vn 0.9602 -0.1904 0.2045 -vn -0.9875 0.0975 0.1240 -vn 0.8861 -0.1782 0.4280 -vn -0.9837 0.0956 -0.1523 -vn -0.9952 0.0973 -0.0092 -vn 0.7327 -0.1502 0.6638 -vn -0.9304 0.0928 -0.3546 -vn 0.5141 -0.1075 0.8510 -vn -0.7834 0.0844 -0.6158 -vn 0.3085 -0.0657 0.9490 -vn 0.0746 -0.0166 -0.9971 -vn -0.5422 0.0669 -0.8376 -vn 0.1662 -0.0360 0.9854 -vn 0.1601 -0.0343 -0.9865 -vn -0.3182 0.0463 -0.9469 -vn 0.0725 -0.0162 0.9972 -vn -0.9914 0.0406 0.1245 -vn -0.9567 0.0103 0.2909 -vn -0.9560 0.0362 0.2912 -vn 0.9635 -0.1366 -0.2301 -vn 0.8616 -0.1280 -0.4912 -vn -0.6333 0.0236 0.7736 -vn 0.9905 -0.1376 -0.0023 -vn -0.8511 0.0302 0.5241 -vn 0.9684 -0.1359 0.2093 -vn 0.8907 -0.1303 0.4355 -vn -0.9872 0.0373 -0.1550 -vn -0.9991 0.0408 -0.0117 -vn 0.7343 -0.1144 0.6692 -vn -0.9379 0.0314 -0.3454 -vn 0.5163 -0.0865 0.8520 -vn -0.8017 0.0270 -0.5971 -vn 0.3125 -0.0560 0.9483 -vn 0.0755 -0.0170 -0.9970 -vn -0.0008 -0.0068 -1.0000 -vn -0.5687 0.0218 -0.8222 -vn 0.1695 -0.0326 0.9850 -vn 0.1617 -0.0297 -0.9864 -vn -0.3378 0.0160 -0.9411 -vn 0.0743 -0.0172 0.9971 -vn 0.2772 -0.0479 -0.9596 -vn -0.1818 0.0096 -0.9833 -vn -0.0005 -0.0065 1.0000 -vn 0.4484 -0.0744 -0.8907 -vn -0.0803 0.0021 -0.9968 -vn -0.0782 0.0019 0.9969 -vn 0.6690 -0.1053 -0.7358 -vn -0.1886 0.0090 0.9820 -vn 0.9693 -0.1237 0.2124 -vn -0.9922 0.0148 0.1241 -vn 0.8896 -0.1215 0.4402 -vn -0.9876 0.0119 -0.1564 -vn -0.9998 0.0139 -0.0121 -vn 0.7314 -0.1090 0.6732 -vn -0.9396 0.0033 -0.3421 -vn 0.5138 -0.0836 0.8538 -vn -0.8100 -0.0038 -0.5864 -vn 0.3123 -0.0545 0.9484 -vn 0.0739 -0.0191 -0.9971 -vn -0.0028 -0.0112 -0.9999 -vn -0.5826 -0.0057 -0.8127 -vn 0.1695 -0.0327 0.9850 -vn 0.1603 -0.0299 -0.9866 -vn -0.3496 -0.0038 -0.9369 -vn 0.0736 -0.0190 0.9971 -vn 0.2765 -0.0459 -0.9599 -vn -0.1882 -0.0030 -0.9821 -vn -0.0024 -0.0107 0.9999 -vn 0.4470 -0.0707 -0.8917 -vn -0.0836 -0.0055 -0.9965 -vn -0.0826 -0.0062 0.9966 -vn 0.6670 -0.0996 -0.7384 -vn -0.1977 -0.0055 0.9803 -vn 0.8608 -0.1198 -0.4946 -vn -0.3889 -0.0069 0.9212 -vn 0.9646 -0.1251 -0.2320 -vn -0.6466 -0.0061 0.7628 -vn 0.9923 -0.1241 -0.0017 -vn -0.8564 0.0001 0.5164 -vn 0.0154 -0.9999 0.0000 -vn -0.1395 0.0000 -0.9902 -vn -0.1396 0.0000 -0.9902 -vn 0.0000 1.0000 0.0000 -vn -0.1395 -0.0000 0.9902 -vn -0.0000 -1.0000 -0.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.1516 0.2200 -0.9636 -vn 0.1758 0.2356 -0.9558 -vn 0.1392 0.0463 -0.9892 -vn 0.0748 0.1179 0.9902 -vn 0.1515 0.2198 0.9637 -vn -0.0034 -1.0000 0.0000 -vn -0.0069 -1.0000 -0.0002 -vn -0.0046 -1.0000 -0.0004 -vn -0.1201 0.9905 0.0674 -vn -0.1692 0.9853 -0.0243 -vn -0.1685 0.9854 0.0239 -vn 0.6715 0.0000 0.7410 -vn 0.7526 0.0000 -0.6585 -vn -0.6431 0.7658 0.0000 -vn -0.7812 0.6243 0.0000 -vn -0.7823 0.6229 0.0000 -vn -0.9072 0.4206 0.0000 -vn -0.0830 -0.0895 -0.9925 -vn -0.0860 -0.0928 -0.9920 -vn -0.1761 -0.1900 -0.9658 -vn -0.0943 -0.1009 0.9904 -vn -0.0904 -0.0966 0.9912 -vn -0.1920 -0.2053 0.9597 -vn -1.0000 -0.0042 -0.0054 -vn -0.9999 0.0000 -0.0146 -vn -1.0000 -0.0047 -0.0039 -vn -0.1097 0.0027 -0.9940 -vn -0.1083 0.0052 -0.9941 -vn -0.1113 0.0000 -0.9938 -vn -0.1083 0.0052 0.9941 -vn -0.1097 0.0027 0.9940 -vn -0.1113 -0.0000 0.9938 -vn -0.0161 0.9998 0.0071 -vn -0.0209 0.9996 0.0196 -vn -0.0148 0.9999 0.0033 -vn -0.1869 0.0000 0.9824 -vn -0.0747 -0.0000 0.9972 -vn -0.1869 0.0000 -0.9824 -vn -0.0747 0.0000 -0.9972 -vn -0.0891 0.0000 -0.9960 -vn -0.3806 0.9172 -0.1177 -vn -0.2935 0.9533 0.0714 -vn -0.3067 0.9492 -0.0706 -vn -0.2421 0.0000 0.9702 -vn -0.5322 0.0000 0.8466 -vn -0.5326 0.0000 0.8463 -vn -0.3690 0.9219 0.1179 -vn -0.7016 0.6804 0.2118 -vn -0.5626 0.8144 0.1426 -vn -0.5711 0.8205 0.0246 -vn -0.7017 0.6830 -0.2028 -vn -0.5670 0.8125 -0.1359 -vn -0.5723 0.8197 -0.0233 -vn -0.6911 0.7061 -0.1540 -vn -0.6904 0.7069 0.1536 -vn -0.9181 0.0000 -0.3963 -vn -0.8223 0.0000 -0.5691 -vn -0.9182 0.0000 -0.3961 -vn -0.8221 0.0000 -0.5694 -vn -0.6947 0.0000 -0.7193 -vn -0.6944 0.0000 -0.7196 -vn -0.5326 -0.0000 -0.8463 -vn -0.8419 0.5339 0.0783 -vn -0.8379 0.5403 -0.0780 -vn 0.0621 0.0017 -0.9981 -vn 0.1966 0.0131 -0.9804 -vn -0.0307 -0.0882 -0.9956 -vn -0.5322 -0.0000 -0.8466 -vn -0.2529 -0.0096 -0.9674 -vn -0.6944 0.0000 0.7196 -vn -0.6947 0.0000 0.7193 -vn -0.0332 0.0009 0.9994 -vn -0.2403 0.0005 0.9707 -vn -0.8221 0.0000 0.5694 -vn -0.8223 0.0000 0.5691 -vn -0.9181 0.0000 0.3963 -vn -0.9182 0.0000 0.3961 -vn -0.9793 0.0000 0.2026 -vn -0.9793 0.0000 0.2025 -vn -0.9793 0.0000 -0.2025 -vn -0.9793 0.0000 -0.2026 -vn -0.0009 -0.9193 0.3935 -vn 0.0820 -0.9598 0.2683 -vn 0.1816 -0.8890 0.4204 -vn -0.0073 -0.9245 -0.3811 -vn 0.0831 -0.9592 -0.2703 -vn 0.0009 -0.9658 -0.2591 -vn 0.1076 -0.8409 0.5304 -vn -0.0560 -0.8518 0.5208 -vn 0.0797 -0.9830 -0.1652 -vn -0.0000 -0.9864 -0.1643 -vn 0.0140 -0.6644 0.7472 -vn 0.0000 -0.9968 -0.0795 -vn 0.0807 -0.9934 -0.0810 -vn 0.0808 -0.9967 0.0000 -vn 0.0807 -0.9934 0.0810 -vn -0.0000 -0.9968 0.0795 -vn -0.0653 -0.6526 -0.7549 -vn -0.0307 -0.4893 -0.8716 -vn 0.1225 -0.6705 -0.7317 -vn 0.0797 -0.9830 0.1652 -vn -0.0000 -0.9864 0.1644 -vn 0.0850 -0.8460 -0.5263 -vn -0.1037 -0.8380 -0.5357 -vn 0.0009 -0.9659 0.2591 -vn 0.1647 -0.8966 -0.4110 -vn 0.1663 -0.9485 0.2696 -vn 0.1772 -0.9441 -0.2780 -vn 0.1667 -0.9697 -0.1786 -vn 0.1937 -0.6083 0.7697 -vn 0.1663 -0.9824 -0.0852 -vn 0.0751 -0.4471 0.8914 -vn -0.0069 -0.4537 0.8911 -vn 0.1670 -0.9860 0.0000 -vn 0.1663 -0.9824 0.0852 -vn -0.3032 -0.6963 -0.6505 -vn 0.1647 -0.9705 0.1758 -vn 0.2605 -0.9613 -0.0898 -vn 0.2639 -0.9645 0.0000 -vn 0.2578 -0.9623 0.0865 -vn 0.2537 -0.9446 0.2083 -vn 0.2344 -0.7751 -0.5868 -vn 0.2856 -0.8983 0.3339 -vn 0.2361 -0.9228 -0.3046 -vn 0.2460 -0.9496 -0.1944 -vn 0.3545 -0.7893 -0.5014 -vn 0.4529 -0.7116 0.5371 -vn 0.3974 -0.8430 -0.3626 -vn 0.3359 -0.7186 0.6090 -vn 0.4129 -0.8797 -0.2358 -vn 0.3623 -0.9274 -0.0930 -vn 0.3740 -0.9274 0.0000 -vn 0.3617 -0.9288 0.0806 -vn 0.4019 -0.8787 0.2577 -vn 0.4001 -0.5603 -0.7253 -vn 0.5125 -0.7335 0.4464 -vn 0.5391 -0.8313 -0.1353 -vn 0.5268 -0.8500 -0.0000 -vn 0.5449 -0.8276 0.1351 -vn 0.2497 -0.4616 -0.8512 -vn 0.3171 -0.4528 -0.8333 -vn 0.7394 -0.5835 0.3359 -vn 0.5838 -0.5101 -0.6317 -vn 0.6845 -0.5562 -0.4712 -vn 0.5186 -0.4413 0.7323 -vn 0.7353 -0.5795 -0.3515 -vn 0.5858 -0.5199 0.6218 -vn 0.3643 -0.4979 0.7870 -vn 0.8105 -0.5577 -0.1791 -vn 0.5920 -0.8059 -0.0000 -vn 0.8084 -0.5579 0.1875 -vn 0.4116 -0.3229 -0.8523 -vn 0.7043 -0.5393 0.4616 -vn 0.9485 -0.3169 0.0000 -vn 0.9306 -0.3110 0.1931 -vn 0.8750 -0.3497 0.3348 -vn 0.5151 -0.3509 -0.7820 -vn 0.6857 -0.3016 -0.6624 -vn 0.8035 -0.3171 -0.5038 -vn 0.8696 -0.3295 -0.3678 -vn 0.9314 -0.3112 -0.1890 -vn 0.5819 -0.2331 0.7791 -vn 0.2095 0.3525 -0.9121 -vn 0.2467 0.4150 -0.8757 -vn 0.2780 0.3555 -0.8924 -vn 0.8514 0.3083 0.4243 -vn 0.8497 0.4873 0.2012 -vn 0.7070 0.6276 0.3260 -vn 0.4776 0.4578 -0.7499 -vn 0.5249 0.3549 -0.7737 -vn 0.7811 0.2963 0.5496 -vn 0.7548 0.2737 0.5961 -vn 0.6661 0.3575 -0.6546 -vn 0.5915 0.5505 -0.5891 -vn 0.6294 0.4756 0.6146 -vn 0.7219 0.2655 0.6391 -vn 0.7854 0.3573 -0.5053 -vn 0.7739 0.3431 -0.5323 -vn 0.5392 0.3215 0.7784 -vn 0.3968 0.5381 0.7437 -vn 0.8648 0.3390 -0.3704 -vn 0.7403 0.5838 -0.3333 -vn 0.3007 0.3589 0.8836 -vn 0.3261 0.3306 0.8857 -vn 0.8495 0.4881 -0.2000 -vn 0.9277 0.3118 -0.2054 -vn 0.2268 0.3598 0.9051 -vn 0.0008 0.4703 0.8825 -vn 0.8676 0.4972 -0.0000 -vn 0.9589 0.2838 0.0000 -vn 0.3508 0.3751 -0.8580 -vn 0.0070 0.3962 -0.9181 -vn -0.0168 0.4004 0.9162 -vn 0.9267 0.3118 0.2097 -vn 0.4885 0.8651 -0.1137 -vn 0.6210 0.7838 -0.0000 -vn 0.4823 0.8644 0.1420 -vn 0.2810 0.9383 0.2017 -vn 0.4345 0.8418 0.3202 -vn 0.3320 0.9209 0.2041 -vn 0.5262 0.6767 -0.5150 -vn 0.5224 0.6287 0.5760 -vn 0.2810 0.9258 -0.2531 -vn 0.4629 0.7926 -0.3969 -vn 0.3924 0.8863 -0.2460 -vn 0.1645 0.4730 0.8656 -vn 0.2635 0.9646 -0.0047 -vn 0.1306 0.9896 -0.0598 -vn 0.1465 0.9857 0.0835 -vn 0.1269 0.5408 -0.8315 -vn 0.2738 0.7379 -0.6169 -vn -0.0083 0.9999 -0.0135 -vn 0.1938 0.9520 0.2370 -vn 0.1949 0.9685 0.1550 -vn 0.0678 0.9830 -0.1704 -vn 0.0848 0.8716 -0.4828 -vn -0.2816 -0.9309 0.2326 -vn 0.0753 0.9797 -0.1858 -vn 0.1198 0.9692 -0.2151 -vn 0.2722 0.9107 0.3106 -vn 0.2251 0.6016 0.7665 -vn 0.0848 0.9964 -0.0037 -vn 0.1517 0.9812 0.1195 -vn 0.0537 0.9852 0.1628 -vn 0.0472 0.9626 0.2667 -vn 0.0143 0.6488 0.7608 -vn -0.0547 0.6579 -0.7511 -vn -0.0430 0.8569 0.5137 -vn -0.0343 0.9172 -0.3969 -vn -0.0399 0.9847 -0.1695 -vn -0.0581 0.9856 0.1591 -vn -0.2468 0.8061 -0.5379 -vn -0.1819 0.9581 -0.2214 -vn -0.1402 0.9759 0.1669 -vn -0.1091 0.5155 0.8499 -vn -0.2831 0.7260 0.6267 -vn -0.1589 0.9752 -0.1542 -vn -0.0833 0.9965 0.0121 -vn -0.1660 0.9821 0.0888 -vn -0.2344 0.4491 -0.8622 -vn -0.2056 0.9570 0.2048 -vn -0.2586 0.9660 0.0043 -vn -0.1771 0.9690 0.1725 -vn -0.3249 0.9219 -0.2109 -vn -0.2976 0.9335 -0.2000 -vn -0.2831 0.3861 0.8780 -vn -0.3962 0.5580 -0.7291 -vn -0.0870 0.9878 0.1294 -vn -0.4287 0.7890 -0.4400 -vn -0.6017 0.7694 0.2145 -vn -0.7742 0.5163 0.3660 -vn -0.6479 0.6377 0.4166 -vn -0.5043 0.7900 0.3486 -vn -0.6209 0.5000 -0.6038 -vn -0.6207 0.4616 0.6338 -vn -0.6417 0.5477 0.5369 -vn -0.6590 0.6260 -0.4169 -vn -0.4867 0.4085 0.7722 -vn -0.7756 0.5111 -0.3703 -vn -0.5990 0.7746 -0.2029 -vn -0.3700 0.9290 0.0000 -vn -0.8847 0.4196 -0.2030 -vn -0.8185 0.5745 -0.0000 -vn -0.8981 0.4397 -0.0000 -vn -0.8802 0.4176 0.2254 -vn -0.9298 0.3095 0.1993 -vn -0.8650 0.3507 0.3588 -vn -0.3237 0.3670 -0.8721 -vn -0.5376 0.3499 -0.7672 -vn -0.7889 0.3397 0.5120 -vn -0.6705 0.3486 -0.6549 -vn -0.6733 0.3581 0.6468 -vn -0.7818 0.3346 -0.5261 -vn -0.5360 0.3700 0.7588 -vn -0.8726 0.3272 -0.3626 -vn -0.3109 0.3928 0.8655 -vn -0.9341 0.3006 -0.1925 -vn -0.1877 0.3951 0.8993 -vn -0.9585 0.2852 -0.0000 -vn -0.1963 0.3915 -0.8990 -vn -0.1789 0.3761 -0.9092 -vn -0.8022 -0.3246 0.5010 -vn -0.7267 -0.5894 0.3529 -vn -0.7960 -0.3199 0.5139 -vn -0.5578 -0.2641 -0.7869 -vn -0.5897 -0.5087 -0.6272 -vn -0.6977 -0.2756 -0.6613 -vn -0.6998 -0.2981 0.6491 -vn -0.5765 -0.5275 0.6240 -vn -0.7946 -0.3136 -0.5198 -vn -0.7988 -0.3229 -0.5076 -vn -0.5339 -0.3415 0.7735 -vn -0.4511 -0.5106 0.7320 -vn -0.7267 -0.5894 -0.3529 -vn -0.8603 -0.3521 -0.3687 -vn -0.4145 -0.3255 0.8498 -vn -0.8093 -0.5609 -0.1745 -vn -0.9335 -0.3119 -0.1766 -vn -0.9485 -0.3169 -0.0000 -vn -0.9335 -0.3119 0.1766 -vn -0.8093 -0.5609 0.1745 -vn -0.8603 -0.3521 0.3688 -vn -0.4103 -0.2800 -0.8679 -vn -0.4815 -0.4611 -0.7453 -vn -0.1054 -0.4502 0.8867 -vn -0.3120 -0.4696 0.8259 -vn -0.5268 -0.8500 -0.0000 -vn -0.5920 -0.8059 -0.0000 -vn -0.5390 -0.8314 0.1352 -vn -0.1149 -0.4548 -0.8831 -vn -0.2834 -0.4808 -0.8298 -vn -0.5393 -0.8312 -0.1353 -vn -0.3353 -0.7944 -0.5065 -vn -0.4077 -0.8358 0.3676 -vn -0.3334 -0.7916 0.5121 -vn -0.4101 -0.8366 -0.3631 -vn -0.5218 -0.7665 -0.3745 -vn -0.2576 -0.7695 0.5844 -vn -0.4129 -0.8797 -0.2358 -vn -0.3623 -0.9274 -0.0930 -vn -0.3740 -0.9274 0.0000 -vn -0.3623 -0.9274 0.0930 -vn -0.4129 -0.8797 0.2358 -vn -0.2929 -0.7285 -0.6193 -vn -0.5218 -0.7665 0.3745 -vn -0.2639 -0.9645 0.0000 -vn -0.2605 -0.9613 0.0898 -vn -0.2512 -0.9504 0.1834 -vn -0.2404 -0.9136 0.3280 -vn -0.2397 -0.9157 -0.3227 -vn -0.2512 -0.9504 -0.1834 -vn -0.2605 -0.9613 -0.0898 -vn -0.1678 -0.9403 0.2961 -vn -0.1584 -0.9024 0.4007 -vn -0.1658 -0.9403 -0.2973 -vn -0.1622 -0.9715 -0.1727 -vn -0.1046 -0.6414 0.7600 -vn -0.1663 -0.9824 -0.0852 -vn -0.1670 -0.9860 0.0000 -vn -0.1663 -0.9824 0.0852 -vn -0.1622 -0.9715 0.1727 -vn -0.1614 -0.8953 -0.4151 -vn -0.0808 -0.9967 0.0000 -vn -0.0807 -0.9934 0.0810 -vn -0.0797 -0.9830 0.1652 -vn -0.0858 -0.9587 0.2710 -vn -0.0865 -0.9583 -0.2724 -vn -0.0797 -0.9830 -0.1652 -vn -0.0807 -0.9934 -0.0810 -vn -0.2448 0.9696 0.0001 -vn -0.0769 0.9970 0.0110 -vn -0.2451 0.9695 -0.0020 -vn 1.0000 0.0015 0.0000 -vn -0.0741 0.0208 0.9970 -vn -0.0627 0.0377 0.9973 -vn -0.0461 0.1200 0.9917 -vn 0.1153 -0.9933 -0.0005 -vn 0.1149 -0.9934 -0.0047 -vn 0.1148 -0.9934 -0.0049 -vn -0.3409 0.9401 0.0000 -vn 0.0801 0.9968 0.0065 -vn -0.0774 0.9969 0.0133 -vn 0.2883 0.9576 -0.0006 -vn 0.2879 0.9577 -0.0014 -vn 0.2885 0.9575 0.0000 -vn -0.0064 0.0242 -0.9997 -vn 0.0104 -0.0106 -0.9999 -vn -0.0409 0.1158 -0.9924 -vn -0.9999 0.0044 -0.0100 -vn -1.0000 0.0015 -0.0035 -vn 0.9796 -0.2011 -0.0001 -vn 0.8584 -0.5131 0.0029 -vn 0.8518 -0.5238 -0.0013 -vn -0.0546 0.9985 0.0000 -vn -0.0661 0.9978 0.0105 -vn -0.0756 0.9965 0.0368 -vn -0.0793 0.9957 0.0471 -vn 0.0653 0.9979 0.0002 -vn -0.1229 0.9924 0.0023 -vn 0.0672 0.9977 0.0009 -vn 0.1591 0.9873 0.0015 -vn 0.1602 0.9871 0.0030 -vn 0.9596 0.2813 -0.0041 -vn 0.9320 -0.3624 -0.0051 -vn 0.9662 0.2577 -0.0041 -vn -0.9506 0.3101 0.0093 -vn -0.9511 0.3088 0.0105 -vn -0.9487 0.3162 0.0038 -vn -0.1218 0.9925 0.0051 -vn -0.4544 0.8908 0.0044 -vn -0.6708 0.7416 0.0043 -vn -0.4554 0.8902 0.0105 -vn 0.6623 -0.7492 -0.0047 -vn 0.8156 -0.5786 -0.0070 -vn 0.8140 -0.5808 -0.0095 -vn -0.9710 -0.2389 0.0012 -vn -0.9675 -0.2527 0.0052 -vn -0.9720 -0.2349 -0.0000 -vn 0.6496 -0.7603 -0.0008 -vn 0.6518 -0.7584 -0.0065 -vn 0.5138 -0.8579 -0.0059 -vn 0.5051 -0.8631 0.0000 -vn 0.9808 -0.1950 0.0015 -vn -0.9588 -0.2842 -0.0043 -vn -0.9995 -0.0317 -0.0040 -vn -0.9995 -0.0308 -0.0033 -vn -0.4624 -0.8867 -0.0017 -vn -0.6539 -0.7566 -0.0069 -vn -0.6580 -0.7529 -0.0142 -vn -0.2465 -0.9691 0.0003 -vn -0.4581 -0.8889 0.0020 -vn 0.4252 -0.9051 -0.0011 -vn 0.3928 -0.9195 -0.0102 -vn 0.3991 -0.9169 -0.0085 -vn 0.8709 0.4915 -0.0038 -vn 0.8788 0.4773 0.0021 -vn 0.8819 0.4714 0.0045 -vn 0.2464 0.9692 0.0010 -vn 0.8699 0.4932 -0.0049 -vn 0.7885 0.6150 -0.0035 -vn 0.8719 0.4897 -0.0023 -vn 0.9946 0.1036 0.0020 -vn 0.9950 0.0997 0.0053 -vn -0.9751 0.2215 0.0005 -vn -0.9755 0.2202 0.0026 -vn 0.2572 0.9664 0.0010 -vn 0.2574 0.9663 0.0008 -vn 0.2554 0.9668 0.0027 -vn 0.9878 -0.1557 0.0051 -vn 0.9877 -0.1562 0.0059 -vn 0.4313 -0.9022 0.0007 -vn 0.0274 -0.0022 -0.9996 -vn 0.0243 -0.0174 -0.9996 -vn 0.0278 0.0000 -0.9996 -vn 0.7849 -0.6196 0.0021 -vn 0.7839 -0.6209 0.0011 -vn 0.7861 -0.6181 0.0032 -vn 0.0242 -0.0238 0.9994 -vn 0.0284 -0.0029 0.9996 -vn 0.0290 0.0000 0.9996 -vn -0.0358 -0.9994 0.0005 -vn -0.0362 -0.9993 0.0015 -vn -0.0356 -0.9994 -0.0000 -vn 0.0230 0.9997 0.0000 -vn 0.0417 0.9991 0.0000 -vn -0.0088 -1.0000 -0.0000 -vn -0.6944 -0.7196 -0.0000 -vn -0.7894 -0.6139 -0.0000 -vn -0.7973 -0.6036 -0.0000 -vn -0.8746 -0.4849 -0.0000 -vn -0.1565 -0.0282 0.9873 -vn -0.1438 -0.0398 0.9888 -vn -0.1164 -0.0645 0.9911 -vn 0.1438 0.0398 -0.9888 -vn 0.1565 0.0282 -0.9873 -vn 0.1164 0.0645 -0.9911 -vn 0.9543 0.0000 0.2987 -vn 0.9543 0.0000 -0.2987 -vn 0.7772 -0.0060 -0.6292 -vn 0.7802 -0.0031 -0.6256 -vn 0.7834 0.0000 -0.6216 -vn 0.0481 0.9981 0.0389 -vn 0.8040 -0.0069 0.5945 -vn 0.8004 -0.0032 0.5995 -vn 0.7971 -0.0000 0.6039 -vn 0.0684 0.9974 -0.0244 -vn 0.0003 -0.4065 0.9136 -vn 0.0004 -0.0000 1.0000 -vn 0.0003 -0.4067 0.9136 -vn -0.0004 0.2079 -0.9781 -vn -0.0004 -0.2077 -0.9782 -vn -0.0004 -0.2079 -0.9781 -vn 0.0004 0.0002 1.0000 -vn 0.0003 0.4067 0.9136 -vn -0.0003 -0.5876 -0.8091 -vn -0.0003 -0.5878 -0.8090 -vn 0.0003 0.4070 0.9135 -vn 0.0003 0.7431 0.6692 -vn -0.0002 -0.8659 -0.5001 -vn -0.0002 -0.8660 -0.5000 -vn 0.0002 0.7433 0.6690 -vn 0.0001 0.9510 0.3090 -vn -0.0000 -0.9945 -0.1046 -vn -0.0000 -0.9945 -0.1045 -vn 0.0001 0.9511 0.3089 -vn -0.0000 0.9945 -0.1045 -vn 0.0001 -0.9510 0.3091 -vn -0.0000 0.9945 -0.1046 -vn -0.0002 0.8660 -0.5000 -vn 0.0002 -0.7431 0.6691 -vn -0.0003 0.5879 -0.8089 -vn -0.0003 0.5878 -0.8090 -vn 0.0002 -0.7431 0.6692 -vn -0.0004 0.2081 -0.9781 -vn -0.6913 0.2933 -0.6604 -vn -0.7997 -0.0000 -0.6003 -vn -0.7991 0.2452 -0.5489 -vn -0.6913 -0.2933 -0.6604 -vn -0.6921 -0.0000 -0.7218 -vn -0.6890 -0.5378 -0.4858 -vn -0.7991 -0.2452 -0.5489 -vn -0.6684 0.5524 0.4981 -vn -0.7877 0.5326 0.3097 -vn -0.8212 0.3816 0.4243 -vn -0.6856 -0.6919 -0.2264 -vn -0.7972 -0.4496 -0.4029 -vn -0.6781 0.6372 0.3663 -vn -0.7910 0.6082 0.0661 -vn -0.6818 -0.7277 0.0749 -vn -0.7944 -0.5783 -0.1858 -vn -0.6818 0.7277 0.0749 -vn -0.7944 0.5783 -0.1858 -vn -0.6781 -0.6372 0.3663 -vn -0.7910 -0.6082 0.0661 -vn -0.6856 0.6919 -0.2264 -vn -0.7972 0.4496 -0.4029 -vn -0.6752 -0.4343 0.5962 -vn -0.7877 -0.5326 0.3097 -vn -0.6890 0.5378 -0.4858 -vn -0.6660 -0.3031 0.6816 -vn -0.7851 -0.3630 0.5019 -vn -0.8193 -0.1772 0.5453 -vn -0.9239 -0.2230 0.3108 -vn -0.9332 0.0000 -0.3595 -vn -0.9328 0.1480 -0.3287 -vn -0.8905 0.0944 0.4451 -vn -0.9229 -0.0792 0.3767 -vn -0.9239 0.2230 0.3108 -vn -0.9229 0.0792 0.3767 -vn -0.9328 -0.1480 -0.3287 -vn -0.9257 0.3260 0.1921 -vn -0.9316 -0.2719 -0.2411 -vn -0.9278 0.3707 0.0428 -vn -0.9299 -0.3509 -0.1102 -vn -0.9299 0.3509 -0.1102 -vn -0.9278 -0.3707 0.0428 -vn -0.9316 0.2719 -0.2411 -vn -0.9257 -0.3260 0.1921 -vn -0.9490 0.1289 -0.2876 -vn -0.9483 0.2367 -0.2114 -vn -0.9440 -0.1933 0.2675 -vn -0.9493 0.0000 -0.3143 -vn -0.9435 0.0687 0.3242 -vn -0.9435 -0.0687 0.3242 -vn -0.9440 0.1933 0.2675 -vn -0.9490 -0.1289 -0.2876 -vn -0.9449 0.2828 0.1649 -vn -0.9483 -0.2367 -0.2113 -vn -0.9461 0.3220 0.0355 -vn -0.9473 -0.3053 -0.0975 -vn -0.9473 0.3052 -0.0976 -vn -0.9461 -0.3220 0.0355 -vn -0.9449 -0.2828 0.1649 -vn -0.9767 0.0875 -0.1961 -vn -0.9765 0.1602 -0.1439 -vn -0.9758 -0.1283 0.1769 -vn -0.9767 -0.0000 -0.2145 -vn -0.9758 -0.0454 0.2141 -vn -0.9758 0.1283 0.1769 -vn -0.9758 0.0455 0.2141 -vn -0.9767 -0.0875 -0.1961 -vn -0.9760 0.1885 0.1092 -vn -0.9766 -0.1602 -0.1439 -vn -0.9762 0.2157 0.0230 -vn -0.9764 -0.2056 -0.0665 -vn -0.9764 0.2056 -0.0664 -vn -0.9762 -0.2158 0.0230 -vn -0.9760 -0.1885 0.1092 -vn 0.9970 0.0169 -0.0759 -vn 0.9968 0.0464 -0.0653 -vn 0.9968 0.0481 -0.0643 -vn 0.9970 -0.0672 -0.0394 -vn 0.9971 -0.0452 -0.0618 -vn 0.9970 -0.0679 -0.0383 -vn 0.9971 -0.0448 -0.0620 -vn 0.9971 -0.0157 -0.0748 -vn 0.9965 0.0718 -0.0426 -vn 0.9965 0.0733 -0.0406 -vn 0.9970 0.0157 -0.0761 -vn 0.9962 0.0869 -0.0102 -vn 0.9961 0.0875 -0.0076 -vn -0.9965 -0.0497 -0.0679 -vn -0.9886 -0.1300 -0.0763 -vn -0.9963 -0.0746 -0.0421 -vn 0.9958 0.0872 0.0274 -vn 0.9958 0.0870 0.0296 -vn -0.9965 -0.0172 -0.0823 -vn -0.9890 -0.0868 -0.1201 -vn 0.9955 0.0705 0.0627 -vn 0.9955 0.0696 0.0638 -vn -0.9886 0.0303 -0.1472 -vn -0.9963 0.0186 -0.0834 -vn -0.9879 0.0898 -0.1263 -vn -0.9961 0.0529 -0.0706 -vn 0.9954 0.0390 0.0875 -vn 0.9954 0.0388 0.0872 -vn -0.9869 0.1388 -0.0824 -vn -0.9958 0.0805 -0.0446 -vn 0.9965 -0.0802 0.0250 -vn 0.9967 -0.0803 -0.0072 -vn 0.9964 -0.0796 0.0275 -vn -0.9856 0.1678 -0.0197 -vn -0.9954 0.0960 -0.0084 -vn -0.9843 0.1682 0.0528 -vn -0.9949 0.0950 0.0324 -vn -0.9833 0.1358 0.1209 -vn -0.9946 0.0762 0.0698 -vn -0.9829 0.0749 0.1680 -vn -0.9945 0.0425 0.0955 -vn 0.9955 0.0007 0.0946 -vn -0.9946 0.0008 0.1036 -vn 0.9955 -0.0005 0.0945 -vn 0.9957 -0.0362 0.0852 -vn -0.9878 -0.1546 -0.0179 -vn -0.9961 -0.0882 -0.0079 -vn -0.9867 -0.1549 0.0483 -vn -0.9957 -0.0874 0.0301 -vn 0.9958 -0.0381 0.0835 -vn 0.9961 -0.0645 0.0602 -vn -0.9855 -0.1276 0.1121 -vn -0.9953 -0.0708 0.0660 -vn 0.9961 -0.0661 0.0581 -vn -0.9949 -0.0397 0.0927 -vn -0.9833 -0.0010 0.1822 -vn 0.9968 -0.0799 -0.0092 -vn -0.9842 -0.0736 0.1610 -vn 0.0000 0.8660 0.5000 -vn 0.0000 0.5878 0.8090 -vn 0.0000 -0.9511 -0.3090 -vn 0.0000 -0.7431 -0.6691 -vn 0.0000 0.9945 0.1045 -vn 0.0000 -0.9945 0.1045 -vn 0.0000 -0.8660 0.5000 -vn 0.0000 0.7431 -0.6691 -vn 0.0000 0.9511 -0.3090 -vn 0.0000 -0.5878 0.8090 -vn 0.0000 0.4067 -0.9135 -vn 0.0000 -0.2079 0.9781 -vn 0.0000 0.2079 0.9781 -vn 0.0000 -0.4067 -0.9135 -vn 0.9983 0.0554 -0.0186 -vn 0.9983 0.0578 0.0063 -vn 0.0002 0.7431 0.6691 -vn 0.0002 0.8660 0.5000 -vn 0.0002 0.7432 0.6691 -vn 0.0002 -0.8660 0.5001 -vn 0.0003 -0.5878 0.8090 -vn 0.0002 -0.8660 0.5000 -vn 0.0000 -0.9945 0.1046 -vn 0.0002 0.8661 0.4999 -vn 0.0000 0.9945 0.1046 -vn 0.0003 -0.5877 0.8091 -vn -0.0002 -0.7430 -0.6693 -vn -0.0003 -0.4067 -0.9135 -vn -0.0003 -0.4065 -0.9136 -vn -0.0002 0.7432 -0.6690 -vn -0.0001 0.9511 -0.3090 -vn -0.0001 -0.9511 -0.3090 -vn -0.0001 -0.9510 -0.3091 -vn -0.0003 -0.0000 -1.0000 -vn -0.0003 0.0002 -1.0000 -vn -0.0002 -0.7432 -0.6691 -vn -0.0003 0.4069 -0.9135 -vn -0.0002 0.7432 -0.6691 -vn -0.0003 0.4068 -0.9135 -vn -0.9982 -0.0107 0.0588 -vn -0.9983 -0.0334 0.0484 -vn -0.9982 -0.0106 0.0585 -vn -0.9983 -0.0429 -0.0402 -vn -0.9983 -0.0551 -0.0185 -vn 0.9982 -0.0261 -0.0546 -vn 0.9982 -0.0018 -0.0598 -vn 0.9982 -0.0019 -0.0601 -vn -0.9981 0.0615 0.0063 -vn -0.9981 0.0540 0.0301 -vn -0.9981 0.0589 -0.0185 -vn -0.9981 0.0589 -0.0186 -vn 0.9981 -0.0587 -0.0184 -vn 0.9981 -0.0615 0.0063 -vn 0.9981 -0.0587 -0.0185 -vn -0.9983 -0.0581 0.0063 -vn -0.9983 -0.0502 0.0300 -vn -0.9983 -0.0501 0.0300 -vn -0.9982 0.0018 -0.0601 -vn -0.9982 -0.0226 -0.0547 -vn 0.9983 0.0427 -0.0400 -vn -0.9982 0.0142 0.0585 -vn -0.9981 0.0371 0.0486 -vn 0.9981 -0.0464 -0.0402 -vn 0.9981 -0.0262 -0.0549 -vn -0.9981 0.0463 -0.0400 -vn -0.9981 0.0462 -0.0400 -vn 0.0000 0.2077 -0.9782 -vn 0.0000 -0.2077 -0.9782 -vn 0.0000 -0.2081 -0.9781 -vn 0.0000 -0.7432 0.6690 -vn 0.0000 -0.9510 0.3091 -vn 0.0000 -0.7430 0.6693 -vn 0.0000 -0.5879 -0.8089 -vn 0.0000 -0.8660 -0.5001 -vn 0.0000 -0.8661 -0.4999 -vn 0.0000 0.9511 0.3089 -vn 0.0000 0.8660 -0.5001 -vn 0.0000 0.5879 -0.8089 -vn 0.0000 0.5876 -0.8091 -vn 0.0000 0.4065 0.9136 -vn 0.0000 0.4069 0.9135 -vn 0.0000 -0.5876 -0.8091 -vn 0.0000 -0.9511 0.3090 -vn 0.0000 0.8661 -0.4999 -vn 0.0000 0.9510 0.3091 -vn 0.0000 0.7432 0.6690 -vn 0.0000 -0.4069 0.9135 -vn 0.0000 -0.4065 0.9136 -vn 0.0000 0.2081 -0.9781 -vn 0.0000 -0.0002 1.0000 -vn 0.0000 0.7430 0.6693 -vn -0.9981 0.0262 -0.0549 -vn 0.9981 -0.0465 -0.0402 -vn 0.9982 0.0226 -0.0550 -vn 0.9982 -0.0143 0.0585 -vn 0.9982 0.0107 0.0589 -vn 0.9982 -0.0143 0.0588 -vn 0.9982 0.0227 -0.0550 -vn 0.9982 0.0336 0.0487 -vn 0.9983 0.0502 0.0300 -vn 0.9981 -0.0537 0.0300 -vn 0.9981 -0.0371 0.0486 -vn 0.7165 0.6937 -0.0731 -vn 0.7165 0.6633 0.2159 -vn 0.7165 0.6038 -0.3494 -vn 0.7163 0.4094 -0.5650 -vn 0.7163 0.4092 -0.5651 -vn 0.7162 0.2827 0.6381 -vn 0.7160 -0.0011 0.6981 -vn 0.7162 0.2829 0.6380 -vn 0.7158 -0.1465 -0.6828 -vn 0.7156 -0.4113 -0.5646 -vn 0.7156 -0.4115 -0.5645 -vn 0.7153 -0.6648 0.2155 -vn 0.7154 -0.6949 -0.0729 -vn 0.7153 -0.6648 0.2156 -vn 0.7165 0.6038 -0.3493 -vn 0.7165 0.5179 0.4674 -vn 0.7165 0.6633 0.2160 -vn 0.7165 0.5178 0.4675 -vn 0.7153 -0.6055 -0.3488 -vn 0.7155 -0.5197 0.4669 -vn 0.7157 -0.2852 0.6375 -vn 0.7155 -0.5198 0.4668 -vn 0.7160 0.1440 -0.6831 -vn 0.7160 0.1438 -0.6831 -vn 0.7157 -0.2850 0.6376 -vn 0.7160 -0.0014 0.6981 -vn 0.7158 -0.1463 -0.6829 -vn 0.7153 -0.6055 -0.3489 -vn 0.0003 -0.0000 1.0000 -vn -0.0003 0.2080 -0.9781 -vn -0.0003 -0.2077 -0.9782 -vn -0.0003 -0.2079 -0.9781 -vn 0.0003 0.0002 1.0000 -vn 0.0003 0.4067 0.9135 -vn 0.0003 0.4070 0.9134 -vn 0.0002 0.7431 0.6692 -vn 0.0001 0.9510 0.3091 -vn 0.0001 -0.9511 0.3090 -vn -0.0003 0.2081 -0.9781 -vn -0.6737 -0.1539 0.7228 -vn -0.7835 0.1287 0.6079 -vn -0.7835 -0.1287 0.6079 -vn -0.6914 -0.2934 -0.6602 -vn -0.6922 0.0000 -0.7218 -vn -0.6737 0.1539 0.7228 -vn -0.7851 0.3630 0.5019 -vn -0.6911 -0.2932 -0.6606 -vn -0.6752 0.4343 0.5962 -vn -0.7877 0.5325 0.3097 -vn -0.6781 0.6372 0.3664 -vn -0.6818 0.7277 0.0750 -vn -0.6781 -0.6372 0.3664 -vn -0.7877 -0.5325 0.3097 -vn -0.7850 -0.3630 0.5019 -vn -0.9331 -0.0000 -0.3595 -vn -0.9229 -0.0793 0.3767 -vn -0.9229 0.0793 0.3767 -vn -0.9299 -0.3509 -0.1103 -vn -0.9299 0.3509 -0.1103 -vn -0.9440 -0.1932 0.2675 -vn -0.9493 -0.0000 -0.3144 -vn -0.9449 0.2828 0.1650 -vn -0.9483 -0.2367 -0.2114 -vn -0.9473 -0.3052 -0.0976 -vn -0.9473 0.3052 -0.0975 -vn -0.9449 -0.2828 0.1650 -vn -0.9766 0.1602 -0.1439 -vn -0.9758 -0.1283 0.1770 -vn -0.9757 -0.0455 0.2141 -vn -0.9758 0.0454 0.2141 -vn -0.9760 0.1886 0.1092 -vn -0.9765 -0.1602 -0.1439 -vn -0.9762 0.2158 0.0230 -vn -0.9764 -0.2056 -0.0664 -vn -0.9762 -0.2157 0.0231 -vn 0.9970 0.0169 -0.0756 -vn 0.9968 0.0466 -0.0655 -vn 0.9967 0.0483 -0.0645 -vn 0.9970 -0.0672 -0.0393 -vn 0.9970 -0.0454 -0.0620 -vn 0.9969 -0.0682 -0.0384 -vn 0.9971 -0.0157 -0.0751 -vn 0.9965 0.0721 -0.0428 -vn 0.9965 0.0736 -0.0408 -vn 0.9961 0.0878 -0.0076 -vn -0.9964 -0.0498 -0.0680 -vn -0.9885 -0.1303 -0.0764 -vn -0.9963 -0.0748 -0.0422 -vn 0.9958 0.0875 0.0275 -vn 0.9958 0.0867 0.0296 -vn -0.9964 -0.0170 -0.0826 -vn -0.9889 -0.0869 -0.1203 -vn 0.9955 0.0707 0.0629 -vn 0.9955 0.0698 0.0640 -vn -0.9886 0.0304 -0.1475 -vn -0.9963 0.0186 -0.0836 -vn -0.9879 0.0900 -0.1265 -vn -0.9961 0.0530 -0.0707 -vn 0.9954 0.0389 0.0876 -vn -0.9868 0.1391 -0.0826 -vn -0.9957 0.0806 -0.0447 -vn 0.9965 -0.0800 0.0250 -vn 0.9967 -0.0806 -0.0072 -vn 0.9964 -0.0800 0.0276 -vn -0.9856 0.1681 -0.0197 -vn -0.9953 0.0961 -0.0084 -vn -0.9843 0.1683 0.0528 -vn -0.9949 0.0952 0.0325 -vn -0.9833 0.1360 0.1211 -vn -0.9946 0.0764 0.0700 -vn -0.9829 0.0750 0.1684 -vn -0.9945 0.0426 0.0957 -vn 0.9955 0.0007 0.0949 -vn -0.9946 0.0008 0.1038 -vn 0.9958 -0.0360 0.0843 -vn -0.9878 -0.1546 -0.0178 -vn -0.9961 -0.0883 -0.0079 -vn -0.9867 -0.1550 0.0483 -vn -0.9957 -0.0875 0.0301 -vn 0.9961 -0.0647 0.0604 -vn -0.9854 -0.1278 0.1123 -vn -0.9953 -0.0709 0.0661 -vn 0.9961 -0.0663 0.0583 -vn -0.9949 -0.0398 0.0928 -vn 0.9967 -0.0802 -0.0093 -vn -0.9841 -0.0737 0.1613 -vn 0.0000 0.4067 -0.9136 -vn 0.0000 -0.4067 -0.9136 -vn 0.0003 -0.2077 0.9782 -vn 0.0003 0.2079 0.9781 -vn 0.0003 -0.2079 0.9781 -vn 0.0003 0.5879 0.8089 -vn 0.0003 0.5878 0.8090 -vn 0.0003 0.2081 0.9781 -vn 0.0003 -0.5876 0.8091 -vn 0.9982 0.0106 -0.0585 -vn 0.9983 0.0334 -0.0484 -vn 0.9983 0.0554 0.0186 -vn 0.9983 0.0427 0.0400 -vn 0.9982 -0.0260 -0.0544 -vn 0.9982 -0.0018 -0.0601 -vn 0.9981 -0.0615 -0.0063 -vn 0.9981 -0.0537 -0.0299 -vn 0.9981 -0.0586 0.0185 -vn 0.9981 -0.0586 -0.0185 -vn 0.9981 -0.0590 -0.0184 -vn 0.9983 0.0502 -0.0300 -vn 0.9983 0.0578 -0.0063 -vn 0.9983 0.0578 -0.0062 -vn 0.9982 0.0227 0.0550 -vn 0.9982 -0.0018 0.0601 -vn 0.9983 0.0429 -0.0402 -vn 0.9982 -0.0369 -0.0483 -vn 0.9982 -0.0142 -0.0584 -vn 0.9982 -0.0143 -0.0588 -vn 0.9981 -0.0465 0.0402 -vn 0.0000 0.2077 0.9782 -vn 0.0000 -0.2077 0.9782 -vn 0.0000 0.2081 0.9781 -vn 0.0000 0.7432 -0.6690 -vn 0.0000 0.9510 -0.3091 -vn 0.0000 0.9511 -0.3089 -vn 0.0000 0.8660 0.5001 -vn 0.0000 0.5879 0.8089 -vn 0.0000 0.8661 0.4999 -vn 0.0000 -0.9510 -0.3091 -vn 0.0000 -0.5879 0.8089 -vn 0.0000 -0.8660 0.5001 -vn 0.0000 -0.5876 0.8091 -vn 0.0000 -0.4065 -0.9136 -vn 0.0000 -0.0002 -1.0000 -vn 0.0000 0.0002 -1.0000 -vn 0.0000 0.5876 0.8091 -vn 0.0000 -0.8661 0.4999 -vn 0.0000 -0.7432 -0.6690 -vn 0.0000 -0.7430 -0.6693 -vn 0.0000 0.4069 -0.9135 -vn 0.0000 0.7430 -0.6693 -vn 0.0000 -0.2081 0.9781 -vn 0.0000 0.4065 -0.9136 -vn 0.0000 -0.4069 -0.9135 -vn 0.9981 -0.0262 0.0549 -vn 0.9982 -0.0261 0.0544 -vn 0.9982 0.0225 -0.0547 -vn 0.9982 0.0106 0.0585 -vn 0.9983 0.0334 0.0484 -vn 0.9981 -0.0619 0.0064 -vn 0.9981 -0.0369 -0.0483 -vn 0.7167 0.6936 -0.0730 -vn 0.7164 0.6038 -0.3494 -vn 0.7161 0.2827 0.6381 -vn 0.7161 0.2829 0.6381 -vn 0.7157 -0.1465 -0.6828 -vn 0.7155 -0.4114 -0.5647 -vn 0.7155 -0.4116 -0.5645 -vn 0.7154 -0.6647 0.2155 -vn 0.7153 -0.6950 -0.0729 -vn 0.7154 -0.6646 0.2156 -vn 0.7164 0.6039 -0.3493 -vn 0.7155 -0.6053 -0.3487 -vn 0.7154 -0.5197 0.4669 -vn 0.7156 -0.2853 0.6376 -vn 0.7161 0.1440 -0.6830 -vn 0.7161 0.1438 -0.6830 -vn 0.7156 -0.2851 0.6377 -vn 0.7155 -0.6053 -0.3488 -vn 0.6275 -0.6347 -0.4510 -vn 0.4653 -0.8114 -0.3537 -vn 0.6882 -0.4251 -0.5880 -vn 0.7408 -0.2148 -0.6364 -vn 0.7044 -0.0162 -0.7096 -vn 0.7177 0.0197 -0.6961 -vn 0.3055 0.0281 0.9518 -vn 0.7829 -0.3405 0.5207 -vn 0.5669 -0.4308 0.7021 -vn 0.6929 -0.5439 0.4733 -vn 0.8298 -0.0611 0.5547 -vn 0.7235 -0.0218 0.6899 -vn 0.8567 0.1383 0.4970 -vn 0.7247 0.1763 0.6661 -vn 0.5249 0.1455 0.8386 -vn 0.4374 -0.5412 0.7182 -vn 0.6153 -0.1830 0.7668 -vn 0.3697 -0.2271 0.9010 -vn 0.3906 0.0253 0.9202 -vn 0.3005 -0.0934 0.9492 -vn 0.2938 0.1011 0.9505 -vn 0.3111 -0.4534 0.8352 -vn 0.2759 -0.3523 0.8943 -vn 0.2406 0.0560 0.9690 -vn 0.2011 0.0907 0.9754 -vn 0.0205 0.9998 0.0000 -vn 0.0313 0.9995 0.0000 -vn 0.0073 0.0041 -1.0000 -vn 0.1917 0.0562 0.9798 -vn 0.9643 0.2639 -0.0217 -vn 0.0004 0.0005 -1.0000 -vn 0.0009 0.0002 -1.0000 -vn 0.0000 0.0007 -1.0000 -vn -0.1006 -0.9949 -0.0000 -vn -0.1228 -0.9924 -0.0000 -vn -0.0993 -0.9951 -0.0013 -vn -0.5709 0.0000 -0.8210 -vn -0.5709 0.0000 0.8210 -vn -0.9999 0.0132 0.0000 -vn 0.0004 0.0005 1.0000 -vn 0.0009 0.0002 1.0000 -vn 0.0012 0.0000 1.0000 -vn -0.0169 -0.9999 -0.0000 -vn -0.9716 0.2320 0.0466 -vn 0.4824 -0.8642 -0.1428 -vn 0.1723 -0.9365 -0.3053 -vn 0.1634 -0.9001 -0.4039 -vn 0.0105 -0.0080 0.9999 -vn 0.6994 0.1084 -0.7065 -vn 0.6887 0.0805 -0.7206 -vn -0.8475 -0.4281 0.3137 -vn 0.9437 -0.2846 0.1688 -vn 0.4080 -0.8817 -0.2368 -vn -0.0055 1.0000 -0.0001 -vn -0.0057 1.0000 -0.0003 -vn -0.0075 0.9999 0.0096 -vn -0.0302 -0.9986 -0.0433 -vn -0.0262 -0.9996 -0.0050 -vn 0.6621 -0.7494 -0.0031 -vn 0.4735 -0.8808 -0.0007 -vn 0.4739 -0.8806 -0.0000 -vn -0.2466 -0.0444 0.9681 -vn -0.3096 -0.6547 -0.6896 -vn -0.1382 0.0004 -0.9904 -vn -0.1190 0.0021 0.9929 -vn -0.2250 0.0071 0.9743 -vn -0.0368 0.9993 -0.0076 -vn -0.2517 0.0066 -0.9678 -vn 0.0170 -0.9999 -0.0007 -vn 0.0156 -0.9999 0.0000 -vn 0.0150 -0.9999 0.0004 -vn 0.0150 -0.9999 -0.0004 -vn 0.0155 -0.9999 0.0001 -vn 0.0170 -0.9999 0.0008 -vn 0.0163 -0.9999 0.0040 -vn 0.0190 -0.9998 0.0009 -vn 0.0169 -0.9998 0.0041 -vn 0.0189 -0.9998 0.0018 -vn 0.0175 -0.9998 0.0041 -vn 0.0189 -0.9998 0.0025 -vn 0.0197 -0.9998 -0.0000 -vn 0.0208 -0.9998 -0.0003 -vn 0.0167 -0.9999 -0.0033 -vn 0.0213 -0.9998 -0.0008 -vn 0.0176 -0.9998 -0.0035 -vn 0.0214 -0.9998 -0.0016 -vn 0.0186 -0.9998 -0.0036 -vn 0.0013 1.0000 -0.0015 -vn 0.0005 1.0000 -0.0007 -vn 0.0023 1.0000 -0.0027 -vn -0.0509 -0.9985 -0.0217 -vn -0.0617 -0.9977 -0.0263 -vn 0.0747 0.1179 -0.9902 -vn 0.1269 -0.0000 -0.9919 -vn 0.1391 0.0463 0.9892 -vn 0.1759 0.2357 0.9558 -vn 0.1269 0.0000 0.9919 -vn -0.0093 -1.0000 -0.0009 -vn -0.0236 0.9983 -0.0533 -vn -0.1193 0.9901 -0.0742 -vn -0.1849 0.9827 0.0000 -vn -0.0256 0.9983 0.0528 -vn -1.0000 -0.0049 0.0039 -vn -0.9999 0.0000 0.0153 -vn -1.0000 -0.0044 0.0054 -vn -0.1067 0.0080 -0.9943 -vn -0.1067 0.0080 0.9943 -vn -0.0149 0.9999 -0.0033 -vn -0.0162 0.9998 -0.0072 -vn -0.0208 0.9996 -0.0185 -vn -0.0891 0.0000 0.9960 -vn -0.7201 0.6935 -0.0209 -vn -0.0324 -0.1702 -0.9849 -vn -0.2582 0.0000 -0.9661 -vn -0.7215 0.6921 0.0220 -vn -0.0322 0.0019 0.9995 -vn 0.0079 -0.0081 0.9999 -vn -0.0083 0.0269 0.9996 -vn -0.0807 -0.0025 0.9967 -vn 0.1154 -0.9933 0.0000 -vn 0.0812 0.9967 0.0043 -vn 0.2876 0.9577 -0.0020 -vn -0.0941 0.0022 -0.9956 -vn -0.0812 0.0353 -0.9961 -vn -0.0586 0.0811 -0.9950 -vn -0.9999 0.0059 -0.0135 -vn -0.0622 0.9981 0.0000 -vn 0.9227 -0.3853 -0.0116 -vn 0.6166 0.7872 0.0051 -vn 0.5964 0.8027 -0.0016 -vn -0.9529 0.3028 0.0158 -vn -0.6568 0.7540 -0.0018 -vn -0.9665 -0.2564 0.0063 -vn -0.9586 -0.2846 -0.0036 -vn 0.8675 0.4973 -0.0062 -vn 0.2463 0.9692 0.0010 -vn 0.7887 0.6148 -0.0032 -vn 0.2593 0.9658 -0.0009 -vn 0.0240 -0.0188 -0.9995 -vn 0.7828 -0.6223 -0.0000 -vn 0.0238 -0.0257 0.9994 -vn -0.0364 -0.9993 0.0020 -vn -0.1873 0.0000 0.9823 -vn 0.1873 0.0000 -0.9823 -vn 0.7737 -0.0094 -0.6335 -vn 0.8076 -0.0104 0.5897 -vn -0.0002 0.8661 -0.4999 -vn 0.9971 -0.0160 -0.0747 -vn -0.9890 -0.0311 -0.1447 -vn 0.0003 -0.4068 0.9135 -vn 0.9971 -0.0161 -0.0750 -vn -0.9889 -0.0311 -0.1450 -vn -0.0003 -0.0002 -1.0000 -vn -0.0002 0.0002 -1.0000 -vn -0.0001 -0.0017 -1.0000 -vn 0.0001 0.0000 -1.0000 -vn 0.0004 0.0002 -1.0000 -vn 0.0012 0.0000 -1.0000 -vn 0.0000 0.0007 1.0000 -vn 0.0209 -0.0309 0.9993 -vn 0.0217 -0.0545 0.9983 -vn 0.3052 0.0281 0.9519 -vn 0.0090 0.0000 1.0000 -vn 0.0274 -0.1522 0.9880 -vn 0.0178 -0.0764 0.9969 -vn -0.0080 0.1106 0.9938 -vn 0.6073 -0.7945 -0.0012 -vn 0.9936 0.0384 -0.1065 -vn 0.9755 -0.2158 -0.0434 -vn 0.9919 0.0797 -0.0992 -vn 0.9001 -0.4258 -0.0920 -vn 0.9407 -0.3391 0.0086 -vn 0.9637 -0.2661 -0.0218 -vn 0.8068 0.5881 -0.0564 -vn 1.0000 0.0000 0.0001 -vn 1.0000 -0.0001 0.0001 -vn 0.9999 -0.0154 0.0037 -vn 0.2497 -0.7811 0.5723 -vn -0.0071 0.9999 -0.0094 -vn -0.0063 0.9999 -0.0133 -vn -0.0029 1.0000 -0.0034 -vn -0.0053 1.0000 0.0020 -vn -0.0021 1.0000 -0.0034 -vn -0.0010 1.0000 -0.0053 -vn -0.0085 0.9999 0.0071 -vn -0.0053 1.0000 -0.0020 -vn -0.0067 0.9999 0.0140 -vn -0.0021 1.0000 0.0034 -vn -0.0031 1.0000 0.0034 -vn -0.0010 1.0000 0.0053 -vn -0.0004 1.0000 0.0040 -vn -0.0085 0.9999 -0.0071 -vn -0.0004 1.0000 -0.0040 -vn -0.0052 1.0000 0.0005 -vn -0.0056 1.0000 -0.0007 -vn -0.0053 1.0000 0.0002 -vn -0.0347 -0.9967 -0.0731 -vn -0.0047 -1.0000 -0.0063 -vn -0.0049 -1.0000 -0.0062 -vn -0.0024 -1.0000 -0.0061 -vn -0.3466 -0.7947 0.4983 -vn -0.3211 -0.1042 0.9413 -vn -0.3952 -0.0390 -0.9177 -vn -0.0186 -0.9963 0.0841 s 1 -f 1/1/1 3/2/2 4/3/3 -f 4/3/3 5/4/4 6/5/5 -f 6/5/5 7/6/6 8/7/7 -f 8/7/7 9/8/8 10/9/9 -f 10/9/9 11/10/10 12/11/11 -f 12/11/11 13/12/12 14/13/13 -f 15/14/14 17/15/15 18/16/16 -f 17/15/15 20/17/17 18/16/16 -f 19/18/18 22/19/19 20/17/17 -f 22/19/19 23/20/20 24/21/21 -f 24/21/21 25/22/22 26/23/23 -f 25/22/22 28/24/24 26/23/23 -f 27/25/25 30/26/26 28/24/24 -f 29/27/27 32/28/28 30/26/29 -f 31/29/30 34/30/31 32/28/28 -f 33/31/32 36/32/33 34/30/31 -f 35/33/34 38/34/35 36/32/33 -f 38/34/35 39/35/36 40/36/37 -f 40/36/37 41/37/38 42/38/39 -f 42/38/39 43/39/40 44/40/41 -f 44/40/41 45/41/42 46/42/43 -f 46/42/44 47/43/45 48/44/46 -f 48/44/46 49/45/47 50/46/48 -f 49/45/47 52/47/49 50/46/48 -f 51/48/50 1/1/1 52/47/49 -f 54/49/51 56/50/52 53/51/53 -f 57/52/54 59/53/55 55/54/56 -f 24/21/21 60/55/57 61/56/58 -f 44/40/41 63/57/59 42/38/39 -f 10/9/9 64/58/60 65/59/61 -f 18/16/16 67/60/62 15/14/14 -f 34/30/31 68/61/63 69/62/64 -f 4/3/3 71/63/65 1/1/1 -f 1/1/1 72/64/66 52/47/49 -f 54/49/51 57/52/54 55/54/56 -f 26/23/23 74/65/67 60/55/57 -f 46/42/44 62/66/68 44/40/41 -f 14/13/13 64/58/60 12/11/11 -f 20/17/17 66/67/69 18/16/16 -f 36/32/33 78/68/70 68/61/63 -f 4/3/3 79/69/71 70/70/72 -f 73/71/73 81/72/74 57/52/54 -f 28/24/24 82/73/75 74/65/67 -f 48/44/46 75/74/76 46/42/44 -f 84/75/77 76/76/78 14/13/13 -f 20/17/17 86/77/79 77/78/80 -f 38/34/35 87/79/81 78/68/70 -f 6/5/5 88/80/82 79/69/71 -f 89/81/83 81/72/74 80/82/84 -f 30/26/26 91/83/85 82/73/75 -f 50/46/48 83/84/86 48/44/46 -f 53/51/53 85/85/87 84/75/77 -f 22/19/19 61/56/58 86/77/79 -f 40/36/37 63/57/59 87/79/81 -f 8/7/7 65/59/61 88/80/82 -f 15/14/14 90/86/88 89/87/83 -f 32/28/28 69/62/64 91/83/85 -f 52/47/49 92/88/89 50/46/48 -f 94/89/90 96/90/91 93/91/92 -f 68/61/63 97/92/93 98/93/94 -f 81/72/74 58/94/95 57/52/54 -f 78/68/70 100/95/96 97/92/93 -f 90/96/88 99/97/97 81/72/74 -f 87/79/81 101/98/98 100/95/96 -f 67/60/62 93/91/92 90/86/88 -f 62/66/68 101/98/98 63/57/59 -f 66/67/69 94/89/90 67/60/62 -f 71/63/65 104/99/99 105/100/100 -f 62/66/68 106/101/101 102/102/102 -f 77/78/80 103/103/103 66/67/69 -f 70/70/72 108/104/104 104/99/99 -f 75/74/76 109/105/105 106/101/101 -f 86/77/79 107/106/106 77/78/80 -f 79/69/71 111/107/107 108/104/104 -f 83/84/86 112/108/108 109/105/105 -f 61/56/58 110/109/109 86/77/79 -f 88/80/82 114/110/110 111/107/107 -f 92/88/89 115/111/111 112/108/108 -f 60/55/57 113/112/112 61/56/58 -f 65/59/61 117/113/113 114/110/110 -f 72/64/66 105/100/100 115/111/111 -f 74/65/67 116/114/114 60/55/57 -f 64/58/60 119/115/115 117/113/113 -f 82/73/75 118/116/116 74/65/67 -f 76/76/78 121/117/117 119/115/115 -f 91/83/85 120/118/118 82/73/75 -f 56/50/52 121/117/117 85/85/87 -f 69/62/64 122/119/119 91/83/85 -f 55/54/56 123/120/120 56/50/52 -f 69/62/64 98/93/94 124/121/121 -f 126/122/122 128/123/123 125/124/124 -f 101/98/98 129/125/125 130/126/126 -f 103/103/103 95/127/127 94/89/90 -f 105/100/100 132/128/128 133/129/129 -f 102/102/102 134/130/130 129/125/125 -f 107/106/106 131/131/131 103/103/103 -f 104/99/99 135/132/132 132/128/128 -f 106/101/101 136/133/133 134/130/130 -f 110/109/109 125/124/124 107/106/106 -f 108/104/104 137/134/134 135/132/132 -f 109/105/105 138/135/135 136/133/133 -f 113/112/112 126/122/122 110/109/109 -f 111/107/107 140/136/136 137/134/134 -f 112/108/108 141/137/137 138/135/135 -f 116/114/114 139/138/138 113/112/112 -f 114/110/110 143/139/139 140/136/136 -f 115/111/111 133/129/129 141/137/137 -f 118/116/116 142/140/140 116/114/114 -f 117/113/113 145/141/141 143/139/139 -f 120/118/118 144/142/142 118/116/116 -f 119/115/115 147/143/143 145/141/141 -f 122/119/119 146/144/144 120/118/118 -f 121/117/117 149/145/145 147/143/143 -f 124/121/121 148/146/146 122/119/119 -f 59/53/55 149/145/145 123/120/120 -f 124/121/121 152/147/147 150/148/148 -f 58/94/95 151/149/149 59/53/55 -f 98/93/94 154/150/150 152/147/147 -f 99/97/97 153/151/151 58/94/95 -f 100/95/96 154/150/150 97/92/93 -f 93/152/92 155/153/152 99/97/97 -f 101/98/98 156/154/153 100/95/96 -f 158/155/154 160/156/155 157/157/156 -f 135/132/132 161/158/157 162/159/158 -f 136/133/133 163/160/159 164/161/160 -f 139/138/138 127/162/161 126/122/122 -f 137/134/134 166/163/162 161/158/157 -f 138/135/135 167/164/163 163/160/159 -f 142/140/140 165/165/164 139/138/138 -f 140/136/136 168/166/165 166/163/162 -f 141/137/137 169/167/166 167/164/163 -f 144/142/142 157/157/156 142/140/140 -f 143/139/139 170/168/167 168/166/165 -f 146/144/144 158/155/154 144/142/142 -f 145/141/141 172/169/168 170/168/167 -f 148/146/146 171/170/169 146/144/144 -f 147/143/143 174/171/170 172/169/168 -f 150/148/148 173/172/171 148/146/146 -f 151/149/149 174/171/170 149/145/145 -f 150/148/148 177/173/172 175/174/173 -f 153/151/151 176/175/174 151/149/149 -f 152/147/147 179/176/175 177/173/172 -f 155/153/152 178/177/176 153/151/151 -f 156/154/153 179/176/175 154/150/150 -f 96/178/91 180/179/177 155/153/152 -f 156/154/153 183/180/178 181/181/179 -f 95/127/127 182/182/180 96/90/91 -f 130/126/126 185/183/181 183/180/178 -f 131/131/131 184/184/182 95/127/127 -f 133/129/129 187/185/183 169/167/166 -f 129/125/125 188/186/184 185/183/181 -f 125/124/124 186/187/185 131/131/131 -f 132/128/128 162/159/158 187/185/183 -f 134/130/130 164/161/160 188/186/184 -f 190/188/186 192/189/187 189/190/188 -f 168/166/165 193/191/189 194/192/190 -f 171/170/169 159/193/191 158/155/154 -f 170/168/167 196/194/192 193/191/189 -f 173/172/171 195/195/193 171/170/169 -f 172/169/168 197/196/194 196/194/192 -f 175/174/173 189/190/188 173/172/171 -f 176/175/174 197/196/194 174/171/170 -f 177/173/172 190/188/186 175/174/173 -f 178/177/176 198/197/195 176/175/174 -f 177/173/172 201/198/196 199/199/197 -f 180/179/177 200/200/198 178/177/176 -f 179/176/175 203/201/199 201/198/196 -f 182/202/180 202/203/200 180/179/177 -f 181/181/179 205/204/201 203/201/199 -f 184/184/182 204/205/202 182/182/180 -f 183/180/178 207/206/203 205/204/201 -f 186/187/185 206/207/204 184/184/182 -f 169/167/166 209/208/205 210/209/206 -f 185/183/181 211/210/207 207/206/203 -f 128/123/123 208/211/208 186/187/185 -f 187/185/183 213/212/209 209/208/205 -f 188/186/184 214/213/210 211/210/207 -f 127/162/161 212/214/211 128/123/123 -f 162/159/158 216/215/212 213/212/209 -f 164/161/160 217/216/213 214/213/210 -f 165/165/164 215/217/214 127/162/161 -f 161/158/157 219/218/215 216/215/212 -f 163/160/159 220/219/216 217/216/213 -f 157/157/156 218/220/217 165/165/164 -f 166/163/162 194/192/190 219/218/215 -f 167/164/163 210/209/206 220/219/216 -f 221/221/218 223/222/219 224/223/220 -f 198/197/195 226/224/221 197/196/194 -f 199/199/197 191/225/222 190/188/186 -f 200/200/198 225/226/223 198/197/195 -f 201/198/196 227/227/224 199/199/197 -f 202/203/200 228/228/225 200/200/198 -f 201/198/196 222/229/226 221/221/218 -f 204/230/202 229/231/227 202/203/200 -f 203/201/199 231/232/228 222/229/226 -f 206/207/204 230/233/229 204/205/202 -f 205/204/201 233/234/230 231/232/228 -f 208/211/208 232/235/231 206/207/204 -f 210/209/206 235/236/232 236/237/233 -f 207/206/203 237/238/234 233/234/230 -f 212/214/211 234/239/235 208/211/208 -f 209/208/205 239/240/236 235/236/232 -f 211/210/207 240/241/237 237/238/234 -f 215/217/214 238/242/238 212/214/211 -f 213/212/209 242/243/239 239/240/236 -f 214/213/210 243/244/240 240/241/237 -f 218/220/217 241/245/241 215/217/214 -f 216/215/212 245/246/242 242/243/239 -f 217/216/213 246/247/243 243/244/240 -f 160/156/155 244/248/244 218/220/217 -f 219/218/215 248/249/245 245/246/242 -f 220/219/216 236/237/233 246/247/243 -f 159/193/191 247/250/246 160/156/155 -f 194/192/190 250/251/247 248/249/245 -f 195/195/193 249/252/248 159/193/191 -f 193/191/189 252/253/249 250/251/247 -f 189/190/188 251/254/250 195/195/193 -f 196/194/192 226/224/221 252/253/249 -f 253/255/251 255/256/252 256/257/253 -f 230/258/229 258/259/254 229/231/227 -f 222/229/226 259/260/255 223/222/219 -f 232/235/231 257/261/256 230/233/229 -f 231/232/228 261/262/257 259/260/255 -f 234/239/235 260/263/258 232/235/231 -f 236/237/233 263/264/259 264/265/260 -f 233/234/230 265/266/261 261/262/257 -f 238/242/238 262/267/262 234/239/235 -f 235/236/232 267/268/263 263/264/259 -f 237/238/234 268/269/264 265/266/261 -f 241/245/241 266/270/265 238/242/238 -f 239/240/236 270/271/266 267/268/263 -f 240/241/237 271/272/267 268/269/264 -f 244/248/244 269/273/268 241/245/241 -f 242/243/239 273/274/269 270/271/266 -f 243/244/240 274/275/270 271/272/267 -f 247/250/246 272/276/271 244/248/244 -f 245/246/242 276/277/272 273/274/269 -f 246/247/243 264/265/260 274/275/270 -f 249/252/248 275/278/273 247/250/246 -f 248/249/245 278/279/274 276/277/272 -f 251/254/250 277/280/275 249/252/248 -f 250/251/247 253/255/251 278/279/274 -f 192/189/187 279/281/276 251/254/250 -f 252/253/249 254/282/277 253/255/251 -f 191/225/222 280/283/278 192/189/187 -f 225/226/223 254/282/277 226/224/221 -f 227/227/224 281/284/279 191/225/222 -f 228/228/225 282/285/280 225/226/223 -f 221/221/218 283/286/281 227/227/224 -f 229/231/227 284/287/282 228/228/225 -f 286/288/283 288/289/284 285/290/285 -f 281/284/279 290/291/286 280/283/278 -f 282/285/280 255/256/252 254/282/277 -f 283/286/281 289/292/287 281/284/279 -f 284/287/282 291/293/288 282/285/280 -f 224/223/220 292/294/289 283/286/281 -f 258/259/254 285/290/285 284/287/282 -f 224/223/220 294/295/290 293/296/291 -f 257/297/256 286/288/283 258/259/254 -f 223/222/219 296/298/292 294/295/290 -f 260/263/258 295/299/293 257/261/256 -f 259/260/255 298/300/294 296/298/292 -f 262/267/262 297/301/295 260/263/258 -f 264/265/260 300/302/296 301/303/297 -f 261/262/257 302/304/298 298/300/294 -f 266/270/265 299/305/299 262/267/262 -f 263/264/259 304/306/300 300/302/296 -f 265/266/261 305/307/301 302/304/298 -f 269/273/268 303/308/302 266/270/265 -f 267/268/263 307/309/303 304/306/300 -f 268/269/264 308/310/304 305/307/301 -f 272/276/271 306/311/305 269/273/268 -f 270/271/266 310/312/306 307/309/303 -f 271/272/267 311/313/307 308/310/304 -f 275/278/273 309/314/308 272/276/271 -f 273/274/269 313/315/309 310/312/306 -f 274/275/270 301/303/297 311/313/307 -f 277/280/275 312/316/310 275/278/273 -f 276/277/272 315/317/311 313/315/309 -f 279/281/276 314/318/312 277/280/275 -f 278/279/274 256/257/253 315/317/311 -f 280/283/278 316/319/313 279/281/276 -f 318/320/314 320/321/315 317/322/316 -f 293/296/291 321/323/317 322/324/318 -f 295/325/293 287/326/319 286/288/283 -f 294/295/290 324/327/320 321/323/317 -f 297/301/295 323/328/321 295/299/293 -f 296/298/292 325/329/322 324/327/320 -f 299/305/299 317/322/316 297/301/295 -f 301/303/297 326/330/323 327/331/324 -f 298/300/294 328/332/325 325/329/322 -f 303/308/302 318/320/314 299/305/299 -f 300/302/296 330/333/326 326/330/323 -f 302/304/298 331/334/327 328/332/325 -f 306/311/305 329/335/328 303/308/302 -f 304/306/300 333/336/329 330/333/326 -f 305/307/301 334/337/330 331/334/327 -f 309/314/308 332/338/331 306/311/305 -f 307/309/303 336/339/332 333/336/329 -f 308/310/304 337/340/333 334/337/330 -f 312/316/310 335/341/334 309/314/308 -f 310/312/306 339/342/335 336/339/332 -f 311/313/307 327/331/324 337/340/333 -f 314/318/312 338/343/336 312/316/310 -f 313/315/309 341/344/337 339/342/335 -f 316/319/313 340/345/338 314/318/312 -f 315/317/311 343/346/339 341/344/337 -f 290/291/286 342/347/340 316/319/313 -f 256/257/253 345/348/341 343/346/339 -f 289/292/287 344/349/342 290/291/286 -f 291/293/288 345/348/341 255/256/252 -f 292/294/289 346/350/343 289/292/287 -f 285/290/285 347/351/344 291/293/288 -f 293/296/291 348/352/345 292/294/289 -f 350/353/346 352/354/347 349/355/348 -f 327/331/324 353/356/349 354/357/350 -f 325/329/322 355/358/351 356/359/352 -f 329/335/328 319/360/353 318/320/314 -f 326/330/323 358/361/354 353/356/349 -f 328/332/325 359/362/355 355/358/351 -f 332/338/331 357/363/356 329/335/328 -f 330/333/326 360/364/357 358/361/354 -f 331/334/327 361/365/358 359/362/355 -f 335/341/334 349/355/348 332/338/331 -f 333/336/329 362/366/359 360/364/357 -f 334/337/330 363/367/360 361/365/358 -f 338/343/336 350/353/346 335/341/334 -f 336/339/332 365/368/361 362/366/359 -f 337/340/333 354/357/350 363/367/360 -f 340/345/338 364/369/362 338/343/336 -f 339/342/335 367/370/363 365/368/361 -f 342/347/340 366/371/364 340/345/338 -f 341/344/337 369/372/365 367/370/363 -f 344/349/342 368/373/366 342/347/340 -f 343/346/339 371/374/367 369/372/365 -f 346/350/343 370/375/368 344/349/342 -f 347/351/344 371/374/367 345/348/341 -f 348/352/345 372/376/369 346/350/343 -f 288/289/284 373/377/370 347/351/344 -f 322/324/318 374/378/371 348/352/345 -f 287/326/319 375/379/372 288/289/284 -f 322/324/318 378/380/373 376/381/374 -f 323/382/321 377/383/375 287/326/319 -f 321/323/317 380/384/376 378/380/373 -f 317/322/316 379/385/377 323/328/321 -f 324/327/320 356/359/352 380/384/376 -f 382/386/378 384/387/379 381/388/380 -f 360/364/357 385/389/381 386/390/382 -f 361/365/358 387/391/383 388/392/384 -f 364/369/362 351/393/385 350/353/346 -f 362/366/359 390/394/386 385/389/381 -f 363/367/360 391/395/387 387/391/383 -f 366/371/364 389/396/388 364/369/362 -f 365/368/361 392/397/389 390/394/386 -f 368/373/366 381/388/380 366/371/364 -f 367/370/363 393/398/390 392/397/389 -f 370/375/368 382/386/378 368/373/366 -f 369/372/365 395/399/391 393/398/390 -f 372/376/369 394/400/392 370/375/368 -f 373/377/370 395/399/391 371/374/367 -f 374/378/371 396/401/393 372/376/369 -f 375/379/372 397/402/394 373/377/370 -f 376/381/374 398/403/395 374/378/371 -f 377/383/375 399/404/396 375/379/372 -f 376/381/374 402/405/397 400/406/398 -f 379/407/377 401/408/399 377/383/375 -f 378/380/373 404/409/400 402/405/397 -f 320/321/315 403/410/401 379/385/377 -f 380/384/376 406/411/402 404/409/400 -f 319/360/353 405/412/403 320/321/315 -f 354/357/350 408/413/404 391/395/387 -f 356/359/352 409/414/405 406/411/402 -f 357/363/356 407/415/406 319/360/353 -f 353/356/349 411/416/407 408/413/404 -f 355/358/351 412/417/408 409/414/405 -f 349/355/348 410/418/409 357/363/356 -f 358/361/354 386/390/382 411/416/407 -f 359/362/355 388/392/384 412/417/408 -f 414/419/410 416/420/411 413/421/412 -f 392/397/389 417/422/413 418/423/414 -f 394/400/392 383/424/415 382/386/378 -f 393/398/390 420/425/416 417/422/413 -f 396/401/393 419/426/417 394/400/392 -f 397/402/394 420/425/416 395/399/391 -f 398/403/395 413/421/412 396/401/393 -f 399/404/396 421/427/418 397/402/394 -f 400/406/398 414/419/410 398/403/395 -f 401/408/399 422/428/419 399/404/396 -f 400/406/398 425/429/420 423/430/421 -f 403/431/401 424/432/422 401/408/399 -f 402/405/397 427/433/423 425/429/420 -f 405/412/403 426/434/424 403/410/401 -f 404/409/400 429/435/425 427/433/423 -f 407/415/406 428/436/426 405/412/403 -f 391/395/387 431/437/427 432/438/428 -f 406/411/402 433/439/429 429/435/425 -f 410/418/409 430/440/430 407/415/406 -f 408/413/404 435/441/431 431/437/427 -f 409/414/405 436/442/432 433/439/429 -f 352/354/347 434/443/433 410/418/409 -f 411/416/407 438/444/434 435/441/431 -f 412/417/408 439/445/435 436/442/432 -f 351/393/385 437/446/436 352/354/347 -f 386/390/382 441/447/437 438/444/434 -f 388/392/384 442/448/438 439/445/435 -f 389/396/388 440/449/439 351/393/385 -f 385/389/381 444/450/440 441/447/437 -f 387/391/383 432/438/428 442/448/438 -f 381/388/380 443/451/441 389/396/388 -f 390/394/386 418/423/414 444/450/440 -f 422/428/419 446/452/442 421/427/418 -f 423/430/421 415/453/443 414/419/410 -f 424/432/422 445/454/444 422/428/419 -f 423/430/421 449/455/445 447/456/446 -f 426/457/424 448/458/447 424/432/422 -f 425/429/420 451/459/448 449/455/445 -f 428/436/426 450/460/449 426/434/424 -f 427/433/423 453/461/450 451/459/448 -f 430/440/430 452/462/451 428/436/426 -f 432/438/428 455/463/452 456/464/453 -f 429/435/425 457/465/454 453/461/450 -f 434/443/433 454/466/455 430/440/430 -f 431/437/427 459/467/456 455/463/452 -f 433/439/429 460/468/457 457/465/454 -f 437/446/436 458/469/458 434/443/433 -f 435/441/431 462/470/459 459/467/456 -f 436/442/432 463/471/460 460/468/457 -f 440/449/439 461/472/461 437/446/436 -f 438/444/434 465/473/462 462/470/459 -f 439/445/435 466/474/463 463/471/460 -f 443/451/441 464/475/464 440/449/439 -f 441/447/437 468/476/465 465/473/462 -f 442/448/438 456/464/453 466/474/463 -f 384/387/379 467/477/466 443/451/441 -f 444/450/440 470/478/467 468/476/465 -f 383/424/415 469/479/468 384/387/379 -f 418/423/414 472/480/469 470/478/467 -f 419/426/417 471/481/470 383/424/415 -f 417/422/413 474/482/471 472/480/469 -f 413/421/412 473/483/472 419/426/417 -f 421/427/418 474/482/471 420/425/416 -f 446/484/473 452/485/473 462/486/473 -f 476/487/474 478/488/474 475/489/475 -f 478/490/476 29/491/476 479/492/476 -f 479/493/477 484/494/477 480/495/477 -f 484/496/478 483/497/478 477/498/478 -f 489/499/479 488/500/479 487/501/479 -f 491/502/480 493/503/480 492/504/480 -f 495/505/481 482/506/481 489/507/481 -f 481/508/481 490/509/481 496/510/481 -f 479/511/477 485/512/482 483/513/477 -f 477/514/474 45/515/481 478/516/474 -f 498/517/480 500/518/480 497/519/480 -f 504/520/483 501/521/484 503/522/485 -f 506/523/479 507/524/479 508/525/479 -f 498/526/486 497/527/482 510/528/487 -f 510/529/488 497/519/489 504/530/490 -f 513/531/491 501/532/492 509/533/493 -f 516/534/482 518/535/482 505/536/482 -f 519/537/476 522/538/476 524/539/476 -f 514/540/482 519/537/482 515/541/482 -f 512/542/481 521/543/481 513/544/481 -f 506/523/481 523/545/481 511/546/481 -f 515/541/494 517/547/494 516/534/494 -f 513/544/479 520/548/479 514/540/479 -f 511/546/495 522/538/495 512/542/495 -f 505/536/480 524/539/480 506/523/480 -f 499/549/496 525/550/497 498/551/496 -f 526/552/498 527/553/499 525/554/497 -f 526/555/500 500/556/501 528/557/502 -f 497/558/503 525/559/504 527/560/505 -f 532/561/506 533/562/507 534/563/508 -f 533/564/509 482/565/510 534/566/511 -f 481/567/512 530/568/513 529/569/514 -f 531/570/515 530/571/516 490/572/517 -f 538/573/518 536/574/519 535/575/518 -f 493/576/520 540/577/521 539/578/522 -f 542/579/481 541/580/481 534/581/481 -f 543/582/482 536/583/519 529/584/482 -f 546/585/523 531/586/524 532/587/525 -f 547/588/526 549/589/527 548/590/528 -f 545/591/529 543/592/530 544/593/531 -f 531/586/524 544/593/531 530/594/532 -f 542/595/533 546/585/523 541/596/534 -f 541/596/534 532/587/525 533/597/535 -f 545/591/529 552/598/536 551/599/537 -f 556/600/538 554/601/539 553/602/540 -f 555/603/541 557/604/542 554/601/539 -f 558/605/543 559/606/544 557/604/542 -f 538/607/480 535/608/480 564/609/480 -f 552/598/536 565/610/545 551/599/537 -f 542/595/533 566/611/546 552/598/536 -f 568/612/547 563/613/548 564/614/549 -f 565/610/545 543/592/530 551/599/537 -f 560/615/550 567/616/551 559/606/544 -f 548/590/528 571/617/552 570/618/553 -f 491/619/554 550/620/555 547/588/526 -f 570/618/553 573/621/556 572/622/557 -f 572/622/557 575/623/558 574/624/559 -f 574/624/559 577/625/560 576/626/561 -f 576/626/561 579/627/480 578/628/480 -f 579/627/480 580/629/562 578/628/480 -f 581/630/563 553/602/540 580/629/562 -f 582/631/564 584/632/565 585/633/566 -f 587/634/567 589/635/568 586/636/569 -f 582/631/564 591/637/570 590/638/571 -f 586/636/569 593/639/572 592/640/573 -f 594/641/574 590/638/571 591/637/570 -f 595/642/575 593/639/572 596/643/576 -f 597/644/478 596/643/576 598/645/577 -f 597/644/478 600/646/578 599/647/579 -f 601/648/580 602/649/581 603/650/582 -f 599/647/579 605/651/583 604/652/584 -f 601/648/580 607/653/585 606/654/586 -f 583/655/587 605/651/583 584/632/565 -f 587/634/567 607/653/585 588/656/588 -f 605/651/583 609/657/589 584/632/565 -f 585/633/566 584/632/565 609/657/589 -f 589/635/568 588/658/588 610/659/590 -f 593/639/572 610/659/590 611/660/591 -f 594/661/574 591/662/570 612/663/592 -f 596/643/576 611/660/591 613/664/593 -f 594/661/574 615/665/594 614/666/595 -f 598/645/577 613/664/593 616/667/596 -f 598/645/577 617/668/597 600/646/578 -f 603/650/582 602/649/581 618/669/598 -f 600/646/578 608/670/599 605/651/583 -f 616/667/596 619/671/600 620/672/601 -f 616/667/596 621/673/602 617/668/597 -f 617/668/597 622/674/603 608/670/599 -f 607/675/585 603/676/582 623/677/604 -f 608/670/599 624/678/605 609/657/589 -f 588/658/588 607/675/585 623/677/604 -f 585/679/566 609/657/589 624/678/605 -f 610/659/590 588/680/588 625/681/606 -f 611/660/591 625/681/606 626/682/607 -f 613/664/593 626/682/607 619/671/600 -f 623/677/604 628/683/608 588/680/588 -f 624/678/605 630/684/609 585/685/566 -f 625/681/606 628/683/608 631/686/610 -f 585/685/566 632/687/611 591/688/570 -f 626/682/607 631/686/610 633/689/612 -f 612/690/592 591/688/570 632/687/611 -f 619/671/600 633/689/612 634/691/613 -f 620/672/601 634/691/613 635/692/614 -f 620/672/601 636/693/615 621/673/602 -f 621/673/602 637/694/616 622/674/603 -f 623/677/604 603/695/582 627/696/617 -f 622/674/603 629/697/618 624/678/605 -f 635/692/614 638/698/619 639/699/620 -f 635/692/614 640/700/621 636/693/615 -f 603/695/582 618/701/622 641/702/623 -f 637/694/616 640/700/621 642/703/624 -f 627/696/617 603/695/582 641/702/623 -f 629/697/618 637/694/616 642/703/624 -f 628/683/608 627/704/617 643/705/625 -f 631/686/610 643/705/625 644/706/626 -f 632/687/611 630/707/609 645/708/627 -f 633/689/612 644/706/626 646/709/628 -f 612/710/592 632/687/611 645/708/627 -f 633/689/612 638/698/619 634/691/613 -f 629/711/618 648/712/629 630/707/609 -f 645/708/627 630/707/609 648/712/629 -f 612/713/592 645/714/627 649/715/630 -f 638/698/619 646/716/628 650/717/631 -f 615/718/594 612/713/592 649/715/630 -f 639/699/620 650/717/631 651/719/632 -f 639/699/620 652/720/633 640/700/621 -f 641/702/623 618/701/622 653/721/634 -f 642/703/624 640/700/621 652/720/633 -f 627/704/617 641/702/623 653/721/634 -f 629/711/618 642/722/624 647/723/635 -f 651/719/636 655/724/637 652/720/633 -f 652/720/633 656/725/638 642/722/624 -f 627/726/617 653/727/634 657/728/639 -f 647/723/635 642/722/624 656/725/638 -f 643/729/625 657/728/639 658/730/640 -f 644/731/626 658/730/640 659/732/641 -f 646/716/628 659/732/641 660/733/642 -f 650/717/631 660/733/642 661/734/643 -f 651/719/636 661/734/643 654/735/636 -f 645/736/627 648/737/629 662/738/644 -f 649/739/630 645/736/627 662/738/644 -f 618/701/645 664/740/646 653/741/647 -f 656/742/648 665/743/649 666/744/650 -f 653/741/647 667/745/651 657/746/652 -f 656/742/648 668/747/653 647/748/654 -f 658/749/655 667/745/651 669/750/656 -f 647/748/654 670/751/657 648/737/658 -f 659/752/659 669/750/656 671/753/660 -f 662/738/661 670/751/657 672/754/662 -f 660/755/663 671/753/660 673/756/664 -f 662/738/661 674/757/665 649/758/666 -f 660/755/663 675/759/667 661/760/668 -f 615/718/669 674/757/665 676/761/670 -f 661/760/668 677/762/671 654/763/672 -f 618/701/645 602/764/673 663/765/674 -f 614/766/675 615/718/669 676/761/670 -f 655/767/676 677/762/671 665/743/649 -f 675/759/667 673/768/664 678/769/677 -f 675/759/667 679/770/678 677/762/671 -f 665/743/649 679/770/678 680/771/679 -f 666/744/650 665/743/649 680/771/679 -f 666/772/650 680/773/679 681/774/680 -f 668/775/681 681/774/680 682/776/682 -f 669/777/656 667/778/651 683/779/683 -f 670/780/657 682/776/682 684/781/684 -f 669/777/656 685/782/685 671/783/686 -f 672/784/662 670/780/657 684/781/684 -f 671/783/686 686/785/687 673/768/664 -f 674/786/665 672/787/662 687/788/688 -f 678/769/677 673/768/664 686/785/687 -f 676/761/670 674/786/665 687/788/688 -f 679/770/678 678/789/677 688/790/689 -f 680/771/679 679/770/678 688/790/689 -f 686/785/687 690/791/690 678/789/677 -f 688/790/689 678/789/677 690/791/690 -f 680/773/679 688/792/689 691/793/691 -f 664/794/646 663/765/674 692/795/692 -f 681/774/680 680/773/679 691/793/691 -f 664/794/646 693/796/693 667/778/651 -f 682/797/682 681/798/680 694/799/694 -f 683/779/683 667/778/651 693/796/693 -f 682/797/682 695/800/695 684/801/696 -f 672/787/662 684/781/684 695/802/695 -f 686/785/687 685/803/685 689/804/697 -f 693/796/693 692/805/692 696/806/698 -f 694/807/699 681/808/699 697/809/699 -f 693/796/693 698/810/700 683/811/701 -f 685/812/685 698/813/700 694/814/694 -f 672/815/662 695/816/695 699/817/702 -f 689/818/697 685/812/685 694/814/694 -f 687/819/688 672/815/662 699/817/703 -f 688/792/689 690/820/690 700/821/704 -f 691/793/691 688/792/689 700/821/704 -f 681/808/680 691/822/691 697/809/705 -f 690/823/690 689/824/697 694/825/694 -f 700/826/704 690/823/690 694/827/694 -f 691/828/691 700/826/704 694/829/694 -f 697/830/705 691/828/691 694/831/694 -f 695/832/695 694/833/694 701/834/706 -f 699/817/702 701/835/706 702/836/707 -f 687/837/688 699/817/703 702/836/708 -f 676/761/670 687/838/688 702/839/708 -f 692/840/692 663/765/674 703/841/709 -f 696/842/698 692/840/692 703/841/709 -f 676/761/670 702/839/708 704/843/710 -f 696/844/698 703/845/709 705/846/711 -f 696/844/698 706/847/712 698/848/700 -f 701/849/706 694/850/694 707/851/713 -f 694/852/694 698/853/700 706/854/712 -f 702/855/707 707/856/713 704/857/710 -f 705/858/711 703/859/709 708/860/714 -f 706/861/712 708/860/714 709/862/715 -f 707/863/713 694/864/694 710/865/716 -f 694/866/694 706/867/712 709/868/715 -f 704/869/710 707/870/713 710/871/716 -f 676/761/670 704/872/710 711/873/717 -f 704/874/710 710/875/716 712/876/718 -f 711/873/717 704/874/710 712/876/718 -f 694/877/694 713/878/719 714/879/720 -f 694/880/694 714/879/720 715/881/721 -f 703/859/709 663/765/674 716/882/722 -f 694/883/694 715/881/721 717/884/723 -f 708/860/714 703/859/709 716/882/722 -f 715/881/721 714/879/720 718/885/724 -f 714/879/720 713/886/719 718/885/724 -f 712/887/718 710/888/716 719/889/725 -f 694/890/694 720/891/726 721/892/727 -f 711/893/717 712/894/718 722/895/728 -f 713/886/719 694/896/694 721/892/727 -f 676/761/670 711/893/717 722/895/728 -f 708/897/714 716/898/722 723/899/729 -f 694/900/694 717/901/723 724/902/730 -f 709/903/715 723/899/729 725/904/731 -f 710/905/716 724/902/730 719/906/725 -f 709/907/715 720/891/726 694/890/694 -f 717/908/723 726/909/732 727/910/733 -f 717/908/723 728/911/734 724/912/735 -f 725/904/731 723/913/729 729/914/736 -f 724/912/735 730/915/737 719/889/738 -f 720/916/726 729/914/736 731/917/739 -f 719/889/738 732/918/740 712/894/718 -f 721/919/727 731/917/739 733/920/741 -f 722/895/728 712/894/718 732/918/740 -f 721/919/727 734/921/742 713/922/719 -f 718/923/724 734/921/742 735/924/743 -f 718/923/724 726/909/732 715/925/721 -f 734/921/742 733/926/741 736/927/744 -f 735/924/745 736/927/744 737/928/746 -f 735/924/745 738/929/747 726/909/732 -f 727/910/733 726/909/732 738/929/747 -f 727/930/733 739/931/748 740/932/749 -f 723/933/729 741/934/750 742/935/751 -f 727/930/733 743/936/752 728/937/734 -f 729/938/736 742/935/751 744/939/753 -f 730/940/737 743/936/752 745/941/754 -f 729/938/736 746/942/755 731/943/739 -f 732/944/740 745/941/754 747/945/756 -f 733/926/741 746/942/755 748/946/757 -f 732/944/740 749/947/758 722/948/728 -f 733/926/741 750/949/759 736/927/744 -f 722/948/728 751/950/760 676/761/670 -f 736/927/744 752/951/761 737/928/746 -f 663/765/674 602/952/762 753/953/763 -f 614/954/675 676/761/670 751/950/760 -f 738/929/747 752/951/761 739/931/748 -f 716/955/722 753/953/763 741/934/750 -f 743/956/764 754/957/765 755/958/766 -f 742/959/767 757/960/768 744/961/769 -f 745/962/770 755/958/766 758/963/771 -f 744/961/769 759/964/772 746/965/773 -f 747/966/774 758/963/771 760/967/775 -f 746/965/773 761/968/776 748/969/777 -f 749/970/778 747/966/774 760/967/775 -f 748/969/777 762/971/779 750/972/780 -f 750/972/780 763/973/781 752/974/781 -f 739/975/782 763/973/781 764/976/783 -f 740/977/784 764/976/783 754/957/765 -f 742/959/767 741/978/785 756/979/786 -f 751/980/787 749/981/778 765/982/788 -f 762/971/779 767/983/789 763/973/790 -f 764/976/783 767/983/789 768/984/791 -f 741/978/785 753/985/792 769/986/793 -f 754/957/765 764/976/783 768/984/791 -f 756/979/786 741/978/785 769/986/793 -f 749/981/778 760/987/775 765/982/788 -f 762/971/779 761/988/776 766/989/794 -f 756/990/786 771/991/795 757/992/768 -f 758/993/771 772/994/796 773/995/797 -f 757/992/768 774/996/798 759/997/799 -f 760/987/775 773/995/797 775/998/800 -f 759/997/799 776/999/801 761/988/776 -f 765/982/788 760/987/775 775/998/800 -f 766/989/794 776/999/801 777/1000/802 -f 766/989/794 778/1001/803 767/983/789 -f 768/984/791 778/1001/803 779/1002/804 -f 768/984/791 780/1003/805 754/1004/765 -f 756/990/786 769/1005/793 770/1006/806 -f 755/1007/807 780/1003/805 772/994/796 -f 777/1000/802 782/1008/808 778/1001/803 -f 779/1002/804 782/1008/808 783/1009/809 -f 780/1003/805 783/1009/809 784/1010/810 -f 772/994/796 784/1010/810 785/1011/811 -f 773/995/797 772/994/796 785/1011/811 -f 774/996/798 771/1012/795 786/1013/812 -f 774/996/798 787/1014/813 776/999/801 -f 776/999/801 781/1015/814 777/1000/802 -f 773/1016/797 788/1017/815 789/1018/816 -f 771/1012/795 791/1019/817 786/1013/812 -f 775/1020/800 773/1016/797 789/1018/816 -f 786/1013/812 792/1021/818 787/1014/813 -f 765/1022/788 775/1023/800 793/1024/819 -f 787/1014/813 794/1025/820 781/1015/814 -f 751/980/787 765/1022/788 793/1024/819 -f 781/1015/814 795/1026/821 782/1008/808 -f 783/1009/809 795/1026/821 796/1027/822 -f 769/1028/793 753/1029/792 601/1030/580 -f 784/1010/810 796/1027/822 797/1031/823 -f 769/1028/793 606/1032/586 770/1033/806 -f 785/1011/811 797/1031/823 788/1017/815 -f 770/1033/806 790/1034/824 771/1012/795 -f 796/1027/822 798/1035/825 799/1036/826 -f 601/1030/580 753/1029/792 602/1037/581 -f 797/1031/823 799/1036/826 800/1038/827 -f 788/1017/815 800/1038/827 801/1039/828 -f 789/1018/816 788/1017/815 801/1039/828 -f 791/1019/817 790/1040/824 802/1041/829 -f 775/1023/800 789/1042/816 590/1043/571 -f 791/1019/817 803/1044/830 792/1021/818 -f 793/1024/819 775/1023/800 590/1043/571 -f 792/1021/818 804/1045/831 794/1025/820 -f 751/1046/787 793/1047/819 614/1048/595 -f 794/1025/820 798/1035/825 795/1026/821 -f 802/1041/829 587/634/567 586/636/569 -f 590/1043/571 789/1042/816 582/631/564 -f 803/1044/830 586/636/569 592/640/573 -f 793/1047/819 590/638/571 594/641/574 -f 803/1044/830 595/642/575 804/1045/831 -f 614/1048/595 793/1047/819 594/641/574 -f 804/1045/831 597/644/478 798/1035/825 -f 799/1036/826 597/644/478 599/647/579 -f 800/1038/827 599/647/579 604/652/584 -f 800/1038/827 583/655/587 801/1039/828 -f 790/1040/824 606/654/586 587/634/567 -f 801/1039/828 582/631/564 789/1042/816 -f 806/1049/832 808/1050/833 805/1051/834 -f 809/1052/835 811/1053/835 812/1054/835 -f 812/1055/836 807/1056/837 806/1057/838 -f 815/1058/839 809/1052/840 812/1054/841 -f 817/1059/842 814/1060/842 813/1061/842 -f 811/1062/843 808/1063/833 807/1064/844 -f 814/1065/480 816/1066/480 815/1067/480 -f 813/1068/845 805/1069/846 817/1070/847 -f 816/1071/848 817/1072/849 805/1073/850 -f 820/1074/851 822/1075/852 819/1076/480 -f 829/1077/481 830/1078/481 838/1079/481 -f 835/1080/853 840/1081/854 836/1082/855 -f 838/1083/478 819/1084/478 822/1085/478 -f 833/1086/856 843/1087/856 834/1088/856 -f 844/1089/857 821/1090/858 820/1074/859 -f 845/1091/860 829/1092/861 828/1093/862 -f 847/1094/863 828/1095/862 827/1096/864 -f 826/1097/865 825/1098/866 849/1099/867 -f 851/1100/868 831/1101/869 850/1102/870 -f 846/1103/871 830/1104/872 829/1105/861 -f 850/1106/873 830/1107/872 852/1108/874 -f 824/1109/875 848/1110/876 825/1111/877 -f 832/1112/878 842/1113/879 833/1086/880 -f 836/1114/855 854/1115/881 837/1116/882 -f 838/1117/883 854/1115/881 841/1118/884 -f 839/1119/885 834/1120/479 843/1121/479 -f 856/1122/886 858/1123/887 855/1124/888 -f 859/1125/889 857/1126/890 856/1122/891 -f 861/1127/892 860/1128/893 859/1125/889 -f 863/1129/894 864/1130/895 862/1131/896 -f 863/1132/897 866/1133/898 864/1134/899 -f 867/1135/900 865/1136/900 868/1137/900 -f 869/1138/901 868/1139/902 870/1140/903 -f 869/1141/482 871/1142/482 857/1143/482 -f 871/1144/904 870/1145/903 874/1146/905 -f 870/1147/481 868/1148/481 859/1149/481 -f 855/1124/888 873/1150/906 876/1151/907 -f 876/1151/908 872/1152/909 875/1153/910 -f 872/1154/911 874/1155/905 875/1156/912 -f 862/1131/896 861/1127/913 863/1129/894 -f 878/1157/480 880/1158/480 877/1159/480 -f 878/1160/914 883/1161/915 881/1162/916 -f 882/1163/917 885/1164/918 883/1165/919 -f 885/1166/920 877/1167/921 886/1168/922 -f 881/1169/923 885/1170/924 886/1171/925 -f 878/1157/926 884/1172/926 882/1163/926 -f 879/1173/481 888/1174/481 889/1175/481 -f 881/1176/480 890/1177/480 887/1178/480 -f 881/1179/480 879/1180/480 878/1181/480 -f 877/1182/480 890/1183/480 886/1184/480 -f 892/1185/480 888/1186/480 891/1187/480 -f 880/1188/482 891/1189/482 890/1190/482 -f 879/1191/927 892/1192/927 880/1158/927 -f 890/1193/928 888/1194/928 887/1195/928 -f 888/1186/929 894/1196/930 893/1197/931 -f 894/1196/930 895/1198/932 893/1197/931 -f 894/1199/933 892/1200/934 896/1201/935 -f 889/1202/936 893/1203/937 895/1204/938 -f 898/1205/480 900/1206/480 897/1207/480 -f 899/1208/481 901/1209/481 902/1210/481 -f 905/1211/939 907/1212/939 904/1213/939 -f 907/1214/482 898/1215/482 897/1216/482 -f 909/1217/478 908/1218/478 897/1219/478 -f 904/1213/939 908/1220/939 909/1221/939 -f 902/1222/940 909/1221/940 903/1223/940 -f 901/1224/940 904/1213/940 902/1222/940 -f 897/1225/941 911/1226/942 898/1227/943 -f 897/1228/944 885/1229/944 910/1230/944 -f 899/1231/945 913/1232/946 900/1233/947 -f 913/1234/948 883/1235/948 900/1236/948 -f 915/1237/949 917/1238/950 914/1239/951 -f 918/1240/952 920/1241/953 921/1242/954 -f 916/1243/955 923/1244/956 917/1238/950 -f 921/1242/954 924/1245/957 925/1246/958 -f 922/1247/959 927/1248/960 923/1244/956 -f 925/1246/958 928/1249/961 929/1250/962 -f 926/1251/963 931/1252/964 927/1248/960 -f 929/1250/962 932/1253/965 933/1254/966 -f 930/1255/967 935/1256/968 931/1252/964 -f 933/1254/966 936/1257/969 937/1258/969 -f 934/1259/970 939/1260/971 935/1256/968 -f 936/1257/969 941/1261/972 937/1258/969 -f 939/1260/971 942/1262/973 943/1263/974 -f 940/1264/975 914/1239/951 941/1261/972 -f 943/1263/974 919/1265/976 918/1240/952 -f 944/1266/977 946/1267/978 947/1268/979 -f 948/1269/980 946/1267/978 945/1270/981 -f 950/1271/982 949/1272/983 948/1269/980 -f 952/1273/984 954/1274/985 955/1275/986 -f 956/1276/987 951/1277/988 950/1271/982 -f 953/1278/989 959/1279/990 954/1274/985 -f 960/1280/991 957/1281/992 956/1276/987 -f 958/1282/993 963/1283/994 959/1279/990 -f 964/1284/995 961/1285/996 960/1280/991 -f 962/1286/997 967/1287/998 963/1283/994 -f 968/1288/999 965/1289/1000 964/1284/995 -f 966/1290/1001 947/1291/979 967/1287/998 -f 970/1292/1002 969/1293/1003 968/1288/999 -f 971/1294/1004 973/1295/1005 969/1293/1003 -f 947/1268/979 974/1296/1006 975/1297/1007 -f 976/1298/1008 972/1299/1009 971/1294/1004 -f 949/1272/983 974/1296/1006 946/1267/978 -f 976/1298/1008 979/1300/1010 977/1301/1011 -f 951/1277/988 978/1302/1012 949/1272/983 -f 955/1275/986 981/1303/1013 979/1300/1010 -f 957/1281/992 980/1304/1014 951/1277/988 -f 954/1274/985 983/1305/1015 981/1303/1013 -f 961/1285/996 982/1306/1016 957/1281/992 -f 959/1279/990 985/1307/1017 983/1305/1015 -f 965/1289/1000 984/1308/1018 961/1285/996 -f 963/1283/994 987/1309/1019 985/1307/1017 -f 969/1293/1003 986/1310/1020 965/1289/1000 -f 967/1287/998 975/1311/1007 987/1309/1019 -f 987/1309/1019 988/1312/1021 989/1313/1022 -f 972/1299/1009 991/1314/1023 973/1295/1005 -f 975/1297/1007 992/1315/1024 988/1316/1021 -f 972/1299/1009 993/1317/1025 990/1318/1026 -f 978/1302/1012 992/1315/1024 974/1296/1006 -f 977/1301/1011 995/1319/1027 993/1317/1025 -f 980/1304/1014 994/1320/1028 978/1302/1012 -f 979/1300/1010 997/1321/1029 995/1319/1027 -f 982/1306/1016 996/1322/1030 980/1304/1014 -f 981/1303/1013 999/1323/1031 997/1321/1029 -f 984/1308/1018 998/1324/1032 982/1306/1016 -f 983/1305/1015 1001/1325/1033 999/1323/1031 -f 986/1310/1020 1000/1326/1034 984/1308/1018 -f 985/1307/1017 989/1313/1022 1001/1325/1033 -f 973/1295/1005 1002/1327/1035 986/1310/1020 -f 989/1313/1022 1003/1328/1036 1004/1329/1037 -f 990/1318/1026 1006/1330/1038 991/1314/1023 -f 988/1316/1021 1007/1331/1039 1003/1332/1036 -f 993/1317/1025 1005/1333/1040 990/1318/1026 -f 994/1320/1028 1007/1331/1039 992/1315/1024 -f 993/1317/1025 1010/1334/1041 1008/1335/1042 -f 996/1322/1030 1009/1336/1043 994/1320/1028 -f 995/1319/1027 1012/1337/1044 1010/1334/1041 -f 998/1324/1032 1011/1338/1045 996/1322/1030 -f 997/1321/1029 1014/1339/1046 1012/1337/1044 -f 1000/1326/1034 1013/1340/1047 998/1324/1032 -f 999/1323/1031 1016/1341/1048 1014/1339/1046 -f 1002/1327/1035 1015/1342/1049 1000/1326/1034 -f 1001/1325/1033 1004/1329/1037 1016/1341/1048 -f 991/1314/1023 1017/1343/1050 1002/1327/1035 -f 1014/1344/1046 1004/1345/1037 1017/1346/1050 -f 918/1240/1051 1019/1347/1052 943/1263/1053 -f 1020/1348/1054 925/1246/1055 929/1250/1056 -f 1021/1349/1057 921/1242/1058 925/1246/1055 -f 943/1263/1053 1023/1350/1059 939/1260/1060 -f 921/1242/1058 1018/1351/1061 918/1240/1051 -f 939/1260/1060 1024/1352/1062 935/1256/1063 -f 1025/1353/1064 1027/1354/1065 1028/1355/1066 -f 935/1256/1063 1029/1356/1067 931/1252/1068 -f 1030/1357/1069 1026/1358/1070 1025/1353/1064 -f 931/1252/1068 1032/1359/1071 927/1248/1072 -f 1034/1360/1073 1030/1357/1069 1033/1361/1074 -f 1036/1362/1075 1033/1361/1074 1035/1363/1076 -f 927/1248/1072 1037/1364/1077 923/1244/1078 -f 1039/1365/1079 1035/1363/1076 1038/1366/1080 -f 1040/1367/1081 933/1254/1082 937/1258/1083 -f 1043/1368/1084 1038/1366/1080 1042/1369/1085 -f 1045/1370/1086 1042/1369/1085 1044/1371/1087 -f 1047/1372/1088 1044/1371/1087 1046/1373/1089 -f 1049/1374/1090 1046/1373/1089 1048/1375/1091 -f 1037/1364/1077 917/1238/1092 923/1244/1078 -f 1051/1376/1093 1049/1374/1090 1048/1375/1091 -f 1050/1377/1094 914/1239/1095 917/1238/1092 -f 1028/1355/1066 1054/1378/1096 1055/1379/1097 -f 1055/1379/1097 1056/1380/1098 1057/1381/1099 -f 1053/1382/1100 941/1261/1101 914/1239/1095 -f 1057/1381/1099 1059/1383/1102 1060/1384/1103 -f 1058/1385/1104 937/1258/1083 941/1261/1101 -f 1061/1386/1105 1052/1387/1106 1051/1376/1093 -f 1041/1388/1107 929/1250/1056 933/1254/1082 -f 1060/1384/1103 1062/1389/1108 1061/1386/1105 -f 1027/1354/1109 1021/1349/1110 1020/1348/1109 -f 1045/1370/1111 1032/1359/1112 1029/1356/1111 -f 1054/1378/1113 1020/1348/1109 1041/1388/1113 -f 1043/1368/1114 1029/1356/1111 1024/1352/1114 -f 1039/1365/1115 1024/1352/1114 1023/1350/1115 -f 1059/1383/1116 1040/1367/1117 1058/1385/1116 -f 1036/1362/1118 1023/1350/1115 1019/1347/1118 -f 1062/1389/1119 1058/1385/1116 1053/1382/1119 -f 1034/1360/1120 1019/1347/1118 1018/1351/1120 -f 1052/1387/481 1053/1382/1119 1050/1377/481 -f 1031/1390/1121 1018/1351/1120 1022/1391/1121 -f 1049/1374/1122 1050/1377/481 1037/1364/1122 -f 1026/1358/1110 1022/1391/1121 1021/1349/1110 -f 1047/1372/1112 1037/1364/1122 1032/1359/1112 -f 1056/1380/1117 1041/1388/1113 1040/1367/1117 -f 1064/1392/1123 1066/1393/1124 1063/1394/1124 -f 924/1395/1125 953/1278/1126 952/1273/1127 -f 938/1396/1128 968/1288/1129 964/1284/1130 -f 938/1396/1128 960/1280/1131 934/1397/1114 -f 928/1398/1132 958/1399/1133 953/1400/1126 -f 942/1401/1134 970/1292/951 968/1288/1129 -f 926/1402/1135 948/1403/1136 922/1404/1137 -f 940/1405/1138 962/1406/1139 936/1407/1139 -f 934/1408/1114 956/1409/1140 930/1410/1141 -f 922/1404/1137 945/1411/1142 916/1412/1143 -f 932/1413/1113 962/1406/1139 958/1399/1133 -f 930/1410/1141 950/1414/1144 926/1402/1135 -f 915/1415/1145 966/1416/1146 940/1405/1138 -f 916/1412/1143 944/1417/1147 915/1418/1145 -f 919/1419/1148 1067/1420/1149 1068/1421/1150 -f 926/1422/1151 1070/1423/1152 930/1424/1152 -f 1072/1425/1153 1074/1426/1154 1071/1427/1155 -f 932/1428/1156 1075/1429/1157 1076/1430/1156 -f 936/1431/1158 1076/1430/1156 1077/1432/1159 -f 1078/1433/1160 1080/1434/1161 1081/1435/1162 -f 934/1436/1163 1083/1437/1164 938/1438/1165 -f 916/1439/1166 1085/1440/1167 922/1441/1167 -f 1086/1442/1168 1065/1443/1123 1064/1392/1123 -f 920/1444/1169 1089/1445/1170 924/1446/1170 -f 930/1424/1152 1082/1447/1163 934/1436/1163 -f 1090/1448/1171 1073/1449/1172 1072/1425/1153 -f 938/1438/1165 1067/1420/1149 942/1450/1149 -f 936/1431/1158 1092/1451/1173 940/1452/1174 -f 1068/1421/1175 1094/1453/1176 1088/1454/1177 -f 1092/1451/1178 1065/1455/1179 1087/1456/1180 -f 1089/1445/1181 1096/1457/1182 1075/1429/1183 -f 1082/1447/970 1081/1458/1184 1080/1459/968 -f 1083/1437/1185 1098/1460/1186 1067/1420/1187 -f 1085/1440/1188 1074/1461/305 1073/1462/1189 -f 1088/1454/1177 1095/1463/1190 1089/1445/1181 -f 1077/1432/1191 1066/1464/966 1065/1455/1179 -f 1082/1447/970 1097/1465/1192 1083/1437/1185 -f 1070/1423/1193 1091/1466/1194 1081/1458/1184 -f 1075/1429/1183 1066/1464/966 1076/1430/966 -f 1099/1467/1195 1087/1456/1180 1100/1468/1196 -f 1067/1420/1187 1093/1469/1197 1068/1421/1175 -f 1084/1470/1198 1100/1468/1196 1074/1461/305 -f 1069/1471/1199 1073/1462/1189 1091/1466/1194 -f 915/1472/1200 1092/1451/1173 1099/1467/1200 -f 1090/1448/1171 1081/1435/1162 1091/1473/1201 -f 916/1439/1166 1099/1467/1200 1084/1470/1166 -f 1101/1474/1202 1087/1475/1168 1086/1442/1168 -f 1102/1476/1203 1094/1477/1204 1093/1478/1205 -f 1071/1427/1155 1100/1479/1206 1101/1474/1202 -f 1104/1480/1207 1096/1481/1208 1095/1482/1207 -f 1106/1483/1209 1098/1484/1210 1097/1485/1209 -f 1103/1486/1204 1095/1482/1207 1094/1477/1204 -f 1079/1487/1161 1097/1485/1209 1080/1434/1161 -f 919/1419/1148 1088/1454/1169 920/1444/1169 -f 1063/1394/1124 1096/1481/1208 1105/1488/1208 -f 922/1441/1167 1069/1471/1151 926/1422/1151 -f 924/1446/1170 1075/1429/1157 928/1489/1157 -f 1107/1490/1210 1093/1478/1205 1098/1484/1210 -f 1080/1491/1211 1108/1492/1212 1109/1493/1211 -f 1097/1494/1213 1111/1495/1214 1098/1496/1215 -f 1073/1497/1216 1112/1498/1217 1113/1499/1218 -f 1094/1500/1219 1115/1501/1220 1095/1502/1221 -f 1065/1503/1222 1116/1504/1223 1117/1505/1224 -f 1080/1491/1211 1110/1506/1225 1097/1494/1213 -f 1118/1507/1226 1081/1508/1227 1091/1509/1228 -f 1096/1510/1229 1116/1504/1223 1066/1511/1223 -f 1120/1512/1230 1100/1513/1231 1087/1514/1232 -f 1098/1496/1215 1122/1515/1233 1093/1516/1234 -f 1121/1517/1235 1074/1518/1236 1100/1519/1231 -f 1091/1509/1228 1113/1499/1218 1118/1507/1226 -f 1093/1516/1234 1114/1520/1237 1094/1500/1219 -f 1087/1514/1232 1117/1505/1224 1120/1512/1230 -f 1095/1502/1221 1119/1521/1238 1096/1510/1229 -f 1124/1522/949 1126/1523/1239 1123/1524/951 -f 1127/1525/1240 1129/1526/1241 1130/1527/1242 -f 1125/1528/1243 1132/1529/1244 1126/1523/1239 -f 1130/1530/1242 1133/1531/957 1134/1532/958 -f 1131/1533/1245 1136/1534/1246 1132/1529/1244 -f 1134/1532/958 1137/1535/961 1138/1536/962 -f 1135/1537/963 1140/1538/1247 1136/1534/1246 -f 1138/1536/962 1141/1539/965 1142/1540/966 -f 1139/1541/967 1144/1542/968 1140/1538/1247 -f 1142/1540/966 1145/1543/1248 1146/1544/969 -f 1143/1545/968 1148/1546/971 1144/1542/968 -f 1145/1543/1248 1150/1547/975 1146/1544/969 -f 1148/1546/971 1151/1548/973 1152/1549/974 -f 1149/1550/975 1123/1524/951 1150/1547/975 -f 1152/1549/974 1128/1551/1249 1127/1525/1240 -f 1153/1552/977 1155/1553/978 1156/1554/979 -f 1157/1555/1250 1159/1556/1251 1160/1557/1252 -f 1161/1558/1253 1155/1553/978 1154/1559/1254 -f 1158/1560/1255 1164/1561/1256 1159/1562/1251 -f 1165/1563/982 1162/1564/983 1161/1558/1257 -f 1163/1565/1258 1168/1566/1259 1164/1561/1256 -f 1169/1567/987 1166/1568/988 1165/1563/982 -f 1167/1569/1260 1172/1570/990 1168/1566/1259 -f 1173/1571/991 1170/1572/992 1169/1567/987 -f 1171/1573/1261 1176/1574/994 1172/1570/990 -f 1177/1575/1262 1174/1576/996 1173/1571/991 -f 1175/1577/997 1180/1578/998 1176/1574/994 -f 1181/1579/999 1178/1580/1263 1177/1575/1262 -f 1179/1581/1001 1156/1554/979 1180/1578/998 -f 1157/1555/1250 1182/1582/1264 1181/1579/999 -f 1160/1557/1252 1184/1583/1005 1182/1582/1264 -f 1156/1554/979 1185/1584/1265 1186/1585/1007 -f 1159/1556/1251 1183/1586/1266 1160/1557/1252 -f 1162/1564/983 1185/1584/1265 1155/1553/978 -f 1159/1562/1251 1189/1587/1010 1187/1588/1267 -f 1166/1568/988 1188/1589/1012 1162/1564/983 -f 1164/1561/1256 1191/1590/1013 1189/1587/1010 -f 1170/1572/992 1190/1591/1014 1166/1568/988 -f 1168/1566/1259 1193/1592/1015 1191/1590/1013 -f 1174/1576/996 1192/1593/1268 1170/1572/992 -f 1172/1570/990 1195/1594/1269 1193/1592/1015 -f 1178/1580/1263 1194/1595/1018 1174/1576/996 -f 1176/1574/994 1197/1596/1019 1195/1594/1269 -f 1182/1582/1264 1196/1597/1020 1178/1580/1263 -f 1180/1578/998 1186/1585/1007 1197/1596/1019 -f 1197/1596/1019 1198/1598/1021 1199/1599/1022 -f 1183/1586/1266 1201/1600/1270 1184/1583/1005 -f 1186/1585/1007 1202/1601/1271 1198/1598/1021 -f 1183/1586/1266 1203/1602/1025 1200/1603/1026 -f 1188/1589/1012 1202/1601/1271 1185/1584/1265 -f 1187/1588/1267 1205/1604/1027 1203/1605/1025 -f 1190/1591/1014 1204/1606/1028 1188/1589/1012 -f 1189/1587/1010 1207/1607/1272 1205/1604/1027 -f 1192/1593/1268 1206/1608/1273 1190/1591/1014 -f 1191/1590/1013 1209/1609/1031 1207/1607/1272 -f 1194/1595/1018 1208/1610/1274 1192/1593/1268 -f 1193/1592/1015 1211/1611/1275 1209/1609/1031 -f 1196/1597/1020 1210/1612/1034 1194/1595/1018 -f 1195/1594/1269 1199/1599/1022 1211/1611/1275 -f 1184/1583/1005 1212/1613/1276 1196/1597/1020 -f 1199/1599/1022 1213/1614/1036 1214/1615/1277 -f 1200/1603/1026 1216/1616/1278 1201/1600/1270 -f 1198/1598/1021 1217/1617/1039 1213/1614/1036 -f 1203/1602/1025 1215/1618/1279 1200/1603/1026 -f 1204/1606/1028 1217/1617/1039 1202/1601/1271 -f 1203/1605/1025 1220/1619/1041 1218/1620/1280 -f 1206/1608/1273 1219/1621/1043 1204/1606/1028 -f 1205/1604/1027 1222/1622/1281 1220/1619/1041 -f 1208/1610/1274 1221/1623/1282 1206/1608/1273 -f 1207/1607/1272 1224/1624/1283 1222/1622/1281 -f 1210/1612/1034 1223/1625/1284 1208/1610/1274 -f 1209/1609/1031 1226/1626/1048 1224/1624/1283 -f 1212/1613/1276 1225/1627/1285 1210/1612/1034 -f 1211/1611/1275 1214/1615/1277 1226/1626/1048 -f 1201/1600/1270 1227/1628/1050 1212/1613/1276 -f 1227/1629/1050 1220/1630/1041 1214/1631/1277 -f 1127/1525/1286 1229/1632/1287 1152/1549/1288 -f 1230/1633/1289 1134/1532/1290 1138/1536/1291 -f 1231/1634/1057 1130/1530/1292 1134/1532/1290 -f 1152/1549/1288 1233/1635/1293 1148/1546/1294 -f 1130/1527/1292 1228/1636/1061 1127/1525/1286 -f 1148/1546/1294 1234/1637/1062 1144/1542/1295 -f 1235/1638/1296 1237/1639/1297 1238/1640/1298 -f 1144/1542/1295 1239/1641/1299 1140/1538/1300 -f 1240/1642/1301 1236/1643/1302 1235/1638/1296 -f 1140/1538/1300 1242/1644/1303 1136/1534/1304 -f 1244/1645/1305 1240/1642/1301 1243/1646/1306 -f 1246/1647/1307 1243/1646/1306 1245/1648/1308 -f 1136/1534/1304 1247/1649/1077 1132/1529/1309 -f 1249/1650/1310 1245/1648/1308 1248/1651/1311 -f 1250/1652/1312 1142/1540/1313 1146/1544/1314 -f 1253/1653/1315 1248/1651/1311 1252/1654/1316 -f 1255/1655/1317 1252/1654/1316 1254/1656/1318 -f 1257/1657/1319 1254/1656/1318 1256/1658/1320 -f 1259/1659/1321 1256/1658/1320 1258/1660/1322 -f 1247/1649/1077 1126/1523/1323 1132/1529/1309 -f 1261/1661/1324 1259/1659/1321 1258/1660/1322 -f 1260/1662/1094 1123/1524/1325 1126/1523/1323 -f 1238/1640/1298 1264/1663/1326 1265/1664/1327 -f 1265/1664/1327 1266/1665/1328 1267/1666/1329 -f 1263/1667/1100 1150/1547/1330 1123/1524/1325 -f 1267/1666/1329 1269/1668/1331 1270/1669/1332 -f 1268/1670/1333 1146/1544/1314 1150/1547/1330 -f 1271/1671/1334 1262/1672/1106 1261/1661/1324 -f 1251/1673/1335 1138/1536/1291 1142/1540/1313 -f 1270/1669/1332 1272/1674/1336 1271/1671/1334 -f 1237/1639/1109 1231/1634/1110 1230/1633/1109 -f 1255/1655/1111 1242/1644/1112 1239/1641/1111 -f 1264/1663/1113 1230/1633/1109 1251/1673/1113 -f 1253/1653/1114 1239/1641/1111 1234/1637/1114 -f 1249/1650/1115 1234/1637/1114 1233/1635/1115 -f 1269/1668/1116 1250/1652/1117 1268/1670/1116 -f 1246/1647/1118 1233/1635/1115 1229/1632/1118 -f 1272/1674/1337 1268/1670/1116 1263/1667/1337 -f 1244/1645/1120 1229/1632/1118 1228/1636/1120 -f 1262/1672/481 1263/1667/1337 1260/1662/481 -f 1241/1675/1121 1228/1636/1120 1232/1676/1121 -f 1259/1659/1338 1260/1662/481 1247/1649/1338 -f 1236/1643/1110 1232/1677/1121 1231/1634/1110 -f 1257/1657/1112 1247/1649/1338 1242/1644/1112 -f 1266/1665/1117 1251/1673/1113 1250/1652/1117 -f 1273/1678/1124 1275/1679/1123 1276/1680/1124 -f 1128/1681/1339 1158/1682/1340 1157/1683/1341 -f 1133/1684/1342 1167/1685/1126 1163/1686/1343 -f 1147/1687/1128 1181/1688/1129 1177/1689/1130 -f 1129/1690/1344 1163/1686/1343 1158/1691/1340 -f 1147/1687/1128 1173/1692/1131 1143/1693/1114 -f 1137/1694/1132 1171/1695/1133 1167/1685/1126 -f 1151/1696/1345 1157/1683/1341 1181/1688/1129 -f 1135/1697/1135 1161/1558/958 1131/1698/958 -f 1149/1699/1138 1175/1577/1139 1145/1700/1139 -f 1143/1701/1114 1169/1567/1140 1139/1702/1141 -f 1141/1703/1113 1175/1704/1139 1171/1695/1133 -f 1139/1702/1141 1165/1563/1144 1135/1697/1135 -f 1124/1705/974 1179/1581/1146 1149/1699/1138 -f 1128/1706/1346 1278/1707/1347 1151/1708/1347 -f 1279/1709/1348 1135/1710/1349 1139/1711/1348 -f 1282/1712/1350 1284/1713/1154 1281/1714/1351 -f 1141/1715/1352 1286/1716/1353 1137/1717/1353 -f 1287/1718/1354 1141/1715/1352 1145/1719/1354 -f 1289/1720/1161 1291/1721/1355 1288/1722/1356 -f 1147/1723/1357 1293/1724/1358 1143/1725/1359 -f 1294/1726/1360 1125/1727/1361 1131/1728/1360 -f 1296/1729/1362 1275/1679/1123 1274/1730/1123 -f 1133/1731/1363 1299/1732/1364 1129/1733/1365 -f 1143/1725/1359 1279/1709/1348 1139/1711/1348 -f 1300/1734/1201 1283/1735/1350 1282/1712/1350 -f 1278/1707/1347 1147/1723/1357 1151/1708/1347 -f 1302/1736/1366 1145/1719/1354 1149/1737/1366 -f 1303/1738/1367 1277/1739/1368 1299/1732/1369 -f 1302/1736/1370 1275/1740/1371 1287/1718/1372 -f 1305/1741/1373 1298/1742/1374 1286/1716/1375 -f 1293/1724/1131 1291/1743/1111 1279/1709/1376 -f 1307/1744/1377 1292/1745/1378 1278/1707/1379 -f 1294/1726/1380 1284/1746/1381 1295/1747/1382 -f 1306/1748/1383 1299/1732/1369 1298/1742/1374 -f 1287/1718/1372 1276/1749/1133 1285/1750/1113 -f 1308/1751/1384 1293/1724/1131 1292/1745/1378 -f 1279/1709/1376 1301/1752/1385 1280/1753/1386 -f 1276/1749/1133 1286/1716/1375 1285/1750/1113 -f 1309/1754/1387 1297/1755/1388 1302/1736/1370 -f 1304/1756/1389 1278/1707/1379 1277/1739/1368 -f 1295/1747/1382 1310/1757/1390 1309/1754/1387 -f 1280/1753/1386 1283/1758/1391 1294/1726/1380 -f 1309/1754/1392 1149/1737/1366 1124/1759/1393 -f 1288/1722/1356 1301/1760/1201 1300/1734/1201 -f 1295/1747/1361 1124/1759/1393 1125/1727/1361 -f 1296/1729/1362 1310/1761/1394 1297/1762/1362 -f 1312/1763/1205 1303/1764/1395 1304/1765/1205 -f 1281/1714/1351 1310/1761/1394 1311/1766/1206 -f 1315/1767/1208 1306/1768/1396 1314/1769/1396 -f 1316/1770/1209 1307/1771/1210 1308/1772/1209 -f 1313/1773/1395 1306/1768/1396 1303/1764/1395 -f 1289/1720/1161 1308/1772/1209 1290/1774/1397 -f 1129/1775/1365 1277/1739/1346 1128/1706/1346 -f 1273/1678/1124 1305/1776/1208 1315/1767/1208 -f 1280/1753/1349 1131/1728/1360 1135/1710/1349 -f 1137/1717/1353 1298/1742/1398 1133/1731/1363 -f 1317/1777/1210 1304/1765/1205 1307/1771/1210 -f 1290/1778/1399 1318/1779/1212 1319/1780/1399 -f 1308/1781/1400 1321/1782/1214 1307/1783/1215 -f 1283/1784/1401 1322/1785/1217 1323/1786/1402 -f 1303/1787/1403 1325/1788/1404 1306/1789/1405 -f 1275/1790/1406 1326/1791/1407 1327/1792/1408 -f 1290/1778/1399 1320/1793/1409 1308/1781/1400 -f 1328/1794/1226 1291/1795/1227 1301/1796/1228 -f 1305/1797/1410 1326/1791/1407 1276/1798/1407 -f 1330/1799/1411 1310/1800/1412 1297/1801/1232 -f 1307/1783/1215 1332/1802/1413 1304/1803/1414 -f 1331/1804/1415 1284/1805/1236 1310/1800/1412 -f 1301/1796/1228 1323/1786/1402 1328/1794/1226 -f 1304/1803/1414 1324/1806/1237 1303/1807/1403 -f 1297/1801/1232 1327/1792/1408 1330/1799/1411 -f 1306/1789/1405 1329/1808/1416 1305/1797/1410 -f 1333/1809/1417 1334/1810/1418 1335/1811/1419 -f 1336/1812/1420 1333/1809/1417 1335/1811/1419 -f 1337/1813/1421 1336/1812/1420 1338/1814/1422 -f 1336/1812/1420 1335/1811/1419 1338/1814/1422 -f 1339/1815/1423 1340/1816/1423 1341/1817/1423 -f 1342/1818/1424 1343/1819/1425 1344/1820/1426 -f 1341/1817/1427 1345/1821/1428 1342/1818/1424 -f 1340/1816/1429 1345/1821/1428 1341/1817/1427 -f 1339/1815/1430 1345/1821/1428 1340/1816/1429 -f 1339/1815/1430 1346/1822/1431 1345/1821/1428 -f 1343/1819/1425 1347/1823/1432 1344/1820/1426 -f 1348/1824/1433 1342/1818/1424 1345/1821/1428 -f 1348/1824/1433 1349/1825/1434 1343/1819/1425 -f 1350/1826/1435 1348/1824/1433 1345/1821/1428 -f 1346/1822/1431 1350/1826/1435 1345/1821/1428 -f 1350/1826/1435 1351/1827/1436 1349/1825/1434 -f 1346/1822/1431 1352/1828/1437 1350/1826/1435 -f 1343/1819/1425 1353/1829/1438 1347/1823/1432 -f 1343/1819/1425 1354/1830/1439 1353/1829/1438 -f 1349/1825/1434 1354/1830/1439 1343/1819/1425 -f 1351/1827/1436 1354/1830/1439 1349/1825/1434 -f 1350/1826/1435 1355/1831/1440 1351/1827/1436 -f 1352/1828/1437 1355/1831/1440 1350/1826/1435 -f 1352/1828/1437 1356/1832/1441 1355/1831/1440 -f 1357/1833/1442 1359/1834/1443 1360/1835/1443 -f 1337/1836/1444 1364/1837/1445 1365/1838/1446 -f 1358/1839/1442 1366/1840/476 1362/1841/476 -f 1359/1842/1447 487/1843/1448 1368/1844/1449 -f 1369/1845/1450 1367/1846/1451 1361/1847/1452 -f 1358/1848/1453 1367/1849/1453 1359/1850/1453 -f 1357/1851/1454 1370/1852/1454 1369/1853/1454 -f 1371/1854/1455 487/1855/1455 488/1856/1455 -f 1360/1857/1456 488/1858/1457 1370/1859/1458 -f 1359/1860/1443 1371/1854/476 1360/1861/1443 -f 1370/1862/1451 487/1855/1459 1367/1846/1451 -f 1372/1863/1460 1341/1817/1460 1342/1818/1460 -f 1344/1820/1461 1347/1823/1461 1373/1864/1461 -f 1373/1865/1462 1366/1866/1463 1369/1867/1464 -f 1374/1868/1465 1337/1813/1421 1338/1814/1422 -f 1364/1869/1466 1337/1813/1421 1374/1868/1465 -f 1366/1870/480 1373/1871/1467 1353/1872/1468 -f 1334/1810/1418 1333/1809/1417 1363/1873/1469 -f 1258/1874/1322 1248/1875/1311 1235/1876/1296 -f 1057/1877/1099 1048/1878/1091 1038/1879/1080 -f 482/1880/481 489/1881/481 487/1882/481 -f 578/1883/1470 580/1884/1471 565/1885/1472 -f 1364/1886/1473 1339/1887/1474 1361/1847/1452 -f 845/1888/482 847/1889/482 819/1890/482 -f 481/1891/482 484/1892/477 488/1893/482 -f 853/1894/1475 823/1895/1476 844/1089/1477 -f 89/1896/83 80/1897/84 16/1898/1478 -f 486/1899/1479 53/1900/53 84/1901/77 -f 1/1/1 2/1902/1480 3/2/2 -f 4/3/3 3/2/2 5/4/4 -f 6/5/5 5/4/4 7/6/6 -f 8/7/7 7/6/6 9/8/8 -f 10/9/9 9/8/8 11/10/10 -f 12/11/11 11/10/10 13/12/12 -f 15/14/14 16/1903/1478 17/15/15 -f 17/15/15 19/18/18 20/17/17 -f 19/18/18 21/1904/1481 22/19/19 -f 22/19/19 21/1904/1481 23/20/20 -f 24/21/21 23/20/20 25/22/22 -f 25/22/22 27/25/25 28/24/24 -f 27/25/25 29/27/1482 30/26/26 -f 29/27/27 31/29/30 32/28/28 -f 31/29/30 33/31/32 34/30/31 -f 33/31/32 35/33/34 36/32/33 -f 35/33/34 37/1905/1483 38/34/35 -f 38/34/35 37/1905/1483 39/35/36 -f 40/36/37 39/35/36 41/37/38 -f 42/38/39 41/37/38 43/39/40 -f 44/40/41 43/39/40 45/41/42 -f 46/42/44 45/41/1484 47/43/45 -f 48/44/46 47/43/45 49/45/47 -f 49/45/47 51/48/50 52/47/49 -f 51/48/50 2/1902/1480 1/1/1 -f 54/49/51 55/54/56 56/50/52 -f 57/52/54 58/94/95 59/53/55 -f 24/21/21 26/23/23 60/55/57 -f 44/40/41 62/66/68 63/57/59 -f 10/9/9 12/11/11 64/58/60 -f 18/16/16 66/67/69 67/60/62 -f 34/30/31 36/32/33 68/61/63 -f 4/3/3 70/70/72 71/63/65 -f 1/1/1 71/63/65 72/64/66 -f 54/49/51 73/71/73 57/52/54 -f 26/23/23 28/24/24 74/65/67 -f 46/42/44 75/74/76 62/66/68 -f 14/13/13 76/76/78 64/58/60 -f 20/17/17 77/78/80 66/67/69 -f 36/32/33 38/34/35 78/68/70 -f 4/3/3 6/5/5 79/69/71 -f 73/71/73 80/82/84 81/72/74 -f 28/24/24 30/26/26 82/73/75 -f 48/44/46 83/84/86 75/74/76 -f 84/75/77 85/85/87 76/76/78 -f 20/17/17 22/19/19 86/77/79 -f 38/34/35 40/36/37 87/79/81 -f 6/5/5 8/7/7 88/80/82 -f 89/81/83 90/96/88 81/72/74 -f 30/26/26 32/28/28 91/83/85 -f 50/46/48 92/88/89 83/84/86 -f 53/51/53 56/50/52 85/85/87 -f 22/19/19 24/21/21 61/56/58 -f 40/36/37 42/38/39 63/57/59 -f 8/7/7 10/9/9 65/59/61 -f 15/14/14 67/60/62 90/86/88 -f 32/28/28 34/30/31 69/62/64 -f 52/47/49 72/64/66 92/88/89 -f 94/89/90 95/127/127 96/90/91 -f 68/61/63 78/68/70 97/92/93 -f 81/72/74 99/97/97 58/94/95 -f 78/68/70 87/79/81 100/95/96 -f 90/96/88 93/152/92 99/97/97 -f 87/79/81 63/57/59 101/98/98 -f 67/60/62 94/89/90 93/91/92 -f 62/66/68 102/102/102 101/98/98 -f 66/67/69 103/103/103 94/89/90 -f 71/63/65 70/70/72 104/99/99 -f 62/66/68 75/74/76 106/101/101 -f 77/78/80 107/106/106 103/103/103 -f 70/70/72 79/69/71 108/104/104 -f 75/74/76 83/84/86 109/105/105 -f 86/77/79 110/109/109 107/106/106 -f 79/69/71 88/80/82 111/107/107 -f 83/84/86 92/88/89 112/108/108 -f 61/56/58 113/112/112 110/109/109 -f 88/80/82 65/59/61 114/110/110 -f 92/88/89 72/64/66 115/111/111 -f 60/55/57 116/114/114 113/112/112 -f 65/59/61 64/58/60 117/113/113 -f 72/64/66 71/63/65 105/100/100 -f 74/65/67 118/116/116 116/114/114 -f 64/58/60 76/76/78 119/115/115 -f 82/73/75 120/118/118 118/116/116 -f 76/76/78 85/85/87 121/117/117 -f 91/83/85 122/119/119 120/118/118 -f 56/50/52 123/120/120 121/117/117 -f 69/62/64 124/121/121 122/119/119 -f 55/54/56 59/53/55 123/120/120 -f 69/62/64 68/61/63 98/93/94 -f 126/122/122 127/162/161 128/123/123 -f 101/98/98 102/102/102 129/125/125 -f 103/103/103 131/131/131 95/127/127 -f 105/100/100 104/99/99 132/128/128 -f 102/102/102 106/101/101 134/130/130 -f 107/106/106 125/124/124 131/131/131 -f 104/99/99 108/104/104 135/132/132 -f 106/101/101 109/105/105 136/133/133 -f 110/109/109 126/122/122 125/124/124 -f 108/104/104 111/107/107 137/134/134 -f 109/105/105 112/108/108 138/135/135 -f 113/112/112 139/138/138 126/122/122 -f 111/107/107 114/110/110 140/136/136 -f 112/108/108 115/111/111 141/137/137 -f 116/114/114 142/140/140 139/138/138 -f 114/110/110 117/113/113 143/139/139 -f 115/111/111 105/100/100 133/129/129 -f 118/116/116 144/142/142 142/140/140 -f 117/113/113 119/115/115 145/141/141 -f 120/118/118 146/144/144 144/142/142 -f 119/115/115 121/117/117 147/143/143 -f 122/119/119 148/146/146 146/144/144 -f 121/117/117 123/120/120 149/145/145 -f 124/121/121 150/148/148 148/146/146 -f 59/53/55 151/149/149 149/145/145 -f 124/121/121 98/93/94 152/147/147 -f 58/94/95 153/151/151 151/149/149 -f 98/93/94 97/92/93 154/150/150 -f 99/97/97 155/153/152 153/151/151 -f 100/95/96 156/154/153 154/150/150 -f 93/152/92 96/178/91 155/153/152 -f 101/98/98 130/126/126 156/154/153 -f 158/155/154 159/193/191 160/156/155 -f 135/132/132 137/134/134 161/158/157 -f 136/133/133 138/135/135 163/160/159 -f 139/138/138 165/165/164 127/162/161 -f 137/134/134 140/136/136 166/163/162 -f 138/135/135 141/137/137 167/164/163 -f 142/140/140 157/157/156 165/165/164 -f 140/136/136 143/139/139 168/166/165 -f 141/137/137 133/129/129 169/167/166 -f 144/142/142 158/155/154 157/157/156 -f 143/139/139 145/141/141 170/168/167 -f 146/144/144 171/170/169 158/155/154 -f 145/141/141 147/143/143 172/169/168 -f 148/146/146 173/172/171 171/170/169 -f 147/143/143 149/145/145 174/171/170 -f 150/148/148 175/174/173 173/172/171 -f 151/149/149 176/175/174 174/171/170 -f 150/148/148 152/147/147 177/173/172 -f 153/151/151 178/177/176 176/175/174 -f 152/147/147 154/150/150 179/176/175 -f 155/153/152 180/179/177 178/177/176 -f 156/154/153 181/181/179 179/176/175 -f 96/178/91 182/202/180 180/179/177 -f 156/154/153 130/126/126 183/180/178 -f 95/127/127 184/184/182 182/182/180 -f 130/126/126 129/125/125 185/183/181 -f 131/131/131 186/187/185 184/184/182 -f 133/129/129 132/128/128 187/185/183 -f 129/125/125 134/130/130 188/186/184 -f 125/124/124 128/123/123 186/187/185 -f 132/128/128 135/132/132 162/159/158 -f 134/130/130 136/133/133 164/161/160 -f 190/188/186 191/225/222 192/189/187 -f 168/166/165 170/168/167 193/191/189 -f 171/170/169 195/195/193 159/193/191 -f 170/168/167 172/169/168 196/194/192 -f 173/172/171 189/190/188 195/195/193 -f 172/169/168 174/171/170 197/196/194 -f 175/174/173 190/188/186 189/190/188 -f 176/175/174 198/197/195 197/196/194 -f 177/173/172 199/199/197 190/188/186 -f 178/177/176 200/200/198 198/197/195 -f 177/173/172 179/176/175 201/198/196 -f 180/179/177 202/203/200 200/200/198 -f 179/176/175 181/181/179 203/201/199 -f 182/202/180 204/230/202 202/203/200 -f 181/181/179 183/180/178 205/204/201 -f 184/184/182 206/207/204 204/205/202 -f 183/180/178 185/183/181 207/206/203 -f 186/187/185 208/211/208 206/207/204 -f 169/167/166 187/185/183 209/208/205 -f 185/183/181 188/186/184 211/210/207 -f 128/123/123 212/214/211 208/211/208 -f 187/185/183 162/159/158 213/212/209 -f 188/186/184 164/161/160 214/213/210 -f 127/162/161 215/217/214 212/214/211 -f 162/159/158 161/158/157 216/215/212 -f 164/161/160 163/160/159 217/216/213 -f 165/165/164 218/220/217 215/217/214 -f 161/158/157 166/163/162 219/218/215 -f 163/160/159 167/164/163 220/219/216 -f 157/157/156 160/156/155 218/220/217 -f 166/163/162 168/166/165 194/192/190 -f 167/164/163 169/167/166 210/209/206 -f 221/221/218 222/229/226 223/222/219 -f 198/197/195 225/226/223 226/224/221 -f 199/199/197 227/227/224 191/225/222 -f 200/200/198 228/228/225 225/226/223 -f 201/198/196 221/221/218 227/227/224 -f 202/203/200 229/231/227 228/228/225 -f 201/198/196 203/201/199 222/229/226 -f 204/230/202 230/258/229 229/231/227 -f 203/201/199 205/204/201 231/232/228 -f 206/207/204 232/235/231 230/233/229 -f 205/204/201 207/206/203 233/234/230 -f 208/211/208 234/239/235 232/235/231 -f 210/209/206 209/208/205 235/236/232 -f 207/206/203 211/210/207 237/238/234 -f 212/214/211 238/242/238 234/239/235 -f 209/208/205 213/212/209 239/240/236 -f 211/210/207 214/213/210 240/241/237 -f 215/217/214 241/245/241 238/242/238 -f 213/212/209 216/215/212 242/243/239 -f 214/213/210 217/216/213 243/244/240 -f 218/220/217 244/248/244 241/245/241 -f 216/215/212 219/218/215 245/246/242 -f 217/216/213 220/219/216 246/247/243 -f 160/156/155 247/250/246 244/248/244 -f 219/218/215 194/192/190 248/249/245 -f 220/219/216 210/209/206 236/237/233 -f 159/193/191 249/252/248 247/250/246 -f 194/192/190 193/191/189 250/251/247 -f 195/195/193 251/254/250 249/252/248 -f 193/191/189 196/194/192 252/253/249 -f 189/190/188 192/189/187 251/254/250 -f 196/194/192 197/196/194 226/224/221 -f 253/255/251 254/282/277 255/256/252 -f 230/258/229 257/297/256 258/259/254 -f 222/229/226 231/232/228 259/260/255 -f 232/235/231 260/263/258 257/261/256 -f 231/232/228 233/234/230 261/262/257 -f 234/239/235 262/267/262 260/263/258 -f 236/237/233 235/236/232 263/264/259 -f 233/234/230 237/238/234 265/266/261 -f 238/242/238 266/270/265 262/267/262 -f 235/236/232 239/240/236 267/268/263 -f 237/238/234 240/241/237 268/269/264 -f 241/245/241 269/273/268 266/270/265 -f 239/240/236 242/243/239 270/271/266 -f 240/241/237 243/244/240 271/272/267 -f 244/248/244 272/276/271 269/273/268 -f 242/243/239 245/246/242 273/274/269 -f 243/244/240 246/247/243 274/275/270 -f 247/250/246 275/278/273 272/276/271 -f 245/246/242 248/249/245 276/277/272 -f 246/247/243 236/237/233 264/265/260 -f 249/252/248 277/280/275 275/278/273 -f 248/249/245 250/251/247 278/279/274 -f 251/254/250 279/281/276 277/280/275 -f 250/251/247 252/253/249 253/255/251 -f 192/189/187 280/283/278 279/281/276 -f 252/253/249 226/224/221 254/282/277 -f 191/225/222 281/284/279 280/283/278 -f 225/226/223 282/285/280 254/282/277 -f 227/227/224 283/286/281 281/284/279 -f 228/228/225 284/287/282 282/285/280 -f 221/221/218 224/223/220 283/286/281 -f 229/231/227 258/259/254 284/287/282 -f 286/288/283 287/326/319 288/289/284 -f 281/284/279 289/292/287 290/291/286 -f 282/285/280 291/293/288 255/256/252 -f 283/286/281 292/294/289 289/292/287 -f 284/287/282 285/290/285 291/293/288 -f 224/223/220 293/296/291 292/294/289 -f 258/259/254 286/288/283 285/290/285 -f 224/223/220 223/222/219 294/295/290 -f 257/297/256 295/325/293 286/288/283 -f 223/222/219 259/260/255 296/298/292 -f 260/263/258 297/301/295 295/299/293 -f 259/260/255 261/262/257 298/300/294 -f 262/267/262 299/305/299 297/301/295 -f 264/265/260 263/264/259 300/302/296 -f 261/262/257 265/266/261 302/304/298 -f 266/270/265 303/308/302 299/305/299 -f 263/264/259 267/268/263 304/306/300 -f 265/266/261 268/269/264 305/307/301 -f 269/273/268 306/311/305 303/308/302 -f 267/268/263 270/271/266 307/309/303 -f 268/269/264 271/272/267 308/310/304 -f 272/276/271 309/314/308 306/311/305 -f 270/271/266 273/274/269 310/312/306 -f 271/272/267 274/275/270 311/313/307 -f 275/278/273 312/316/310 309/314/308 -f 273/274/269 276/277/272 313/315/309 -f 274/275/270 264/265/260 301/303/297 -f 277/280/275 314/318/312 312/316/310 -f 276/277/272 278/279/274 315/317/311 -f 279/281/276 316/319/313 314/318/312 -f 278/279/274 253/255/251 256/257/253 -f 280/283/278 290/291/286 316/319/313 -f 318/320/314 319/360/353 320/321/315 -f 293/296/291 294/295/290 321/323/317 -f 295/325/293 323/382/321 287/326/319 -f 294/295/290 296/298/292 324/327/320 -f 297/301/295 317/322/316 323/328/321 -f 296/298/292 298/300/294 325/329/322 -f 299/305/299 318/320/314 317/322/316 -f 301/303/297 300/302/296 326/330/323 -f 298/300/294 302/304/298 328/332/325 -f 303/308/302 329/335/328 318/320/314 -f 300/302/296 304/306/300 330/333/326 -f 302/304/298 305/307/301 331/334/327 -f 306/311/305 332/338/331 329/335/328 -f 304/306/300 307/309/303 333/336/329 -f 305/307/301 308/310/304 334/337/330 -f 309/314/308 335/341/334 332/338/331 -f 307/309/303 310/312/306 336/339/332 -f 308/310/304 311/313/307 337/340/333 -f 312/316/310 338/343/336 335/341/334 -f 310/312/306 313/315/309 339/342/335 -f 311/313/307 301/303/297 327/331/324 -f 314/318/312 340/345/338 338/343/336 -f 313/315/309 315/317/311 341/344/337 -f 316/319/313 342/347/340 340/345/338 -f 315/317/311 256/257/253 343/346/339 -f 290/291/286 344/349/342 342/347/340 -f 256/257/253 255/256/252 345/348/341 -f 289/292/287 346/350/343 344/349/342 -f 291/293/288 347/351/344 345/348/341 -f 292/294/289 348/352/345 346/350/343 -f 285/290/285 288/289/284 347/351/344 -f 293/296/291 322/324/318 348/352/345 -f 350/353/346 351/393/385 352/354/347 -f 327/331/324 326/330/323 353/356/349 -f 325/329/322 328/332/325 355/358/351 -f 329/335/328 357/363/356 319/360/353 -f 326/330/323 330/333/326 358/361/354 -f 328/332/325 331/334/327 359/362/355 -f 332/338/331 349/355/348 357/363/356 -f 330/333/326 333/336/329 360/364/357 -f 331/334/327 334/337/330 361/365/358 -f 335/341/334 350/353/346 349/355/348 -f 333/336/329 336/339/332 362/366/359 -f 334/337/330 337/340/333 363/367/360 -f 338/343/336 364/369/362 350/353/346 -f 336/339/332 339/342/335 365/368/361 -f 337/340/333 327/331/324 354/357/350 -f 340/345/338 366/371/364 364/369/362 -f 339/342/335 341/344/337 367/370/363 -f 342/347/340 368/373/366 366/371/364 -f 341/344/337 343/346/339 369/372/365 -f 344/349/342 370/375/368 368/373/366 -f 343/346/339 345/348/341 371/374/367 -f 346/350/343 372/376/369 370/375/368 -f 347/351/344 373/377/370 371/374/367 -f 348/352/345 374/378/371 372/376/369 -f 288/289/284 375/379/372 373/377/370 -f 322/324/318 376/381/374 374/378/371 -f 287/326/319 377/383/375 375/379/372 -f 322/324/318 321/323/317 378/380/373 -f 323/382/321 379/407/377 377/383/375 -f 321/323/317 324/327/320 380/384/376 -f 317/322/316 320/321/315 379/385/377 -f 324/327/320 325/329/322 356/359/352 -f 382/386/378 383/424/415 384/387/379 -f 360/364/357 362/366/359 385/389/381 -f 361/365/358 363/367/360 387/391/383 -f 364/369/362 389/396/388 351/393/385 -f 362/366/359 365/368/361 390/394/386 -f 363/367/360 354/357/350 391/395/387 -f 366/371/364 381/388/380 389/396/388 -f 365/368/361 367/370/363 392/397/389 -f 368/373/366 382/386/378 381/388/380 -f 367/370/363 369/372/365 393/398/390 -f 370/375/368 394/400/392 382/386/378 -f 369/372/365 371/374/367 395/399/391 -f 372/376/369 396/401/393 394/400/392 -f 373/377/370 397/402/394 395/399/391 -f 374/378/371 398/403/395 396/401/393 -f 375/379/372 399/404/396 397/402/394 -f 376/381/374 400/406/398 398/403/395 -f 377/383/375 401/408/399 399/404/396 -f 376/381/374 378/380/373 402/405/397 -f 379/407/377 403/431/401 401/408/399 -f 378/380/373 380/384/376 404/409/400 -f 320/321/315 405/412/403 403/410/401 -f 380/384/376 356/359/352 406/411/402 -f 319/360/353 407/415/406 405/412/403 -f 354/357/350 353/356/349 408/413/404 -f 356/359/352 355/358/351 409/414/405 -f 357/363/356 410/418/409 407/415/406 -f 353/356/349 358/361/354 411/416/407 -f 355/358/351 359/362/355 412/417/408 -f 349/355/348 352/354/347 410/418/409 -f 358/361/354 360/364/357 386/390/382 -f 359/362/355 361/365/358 388/392/384 -f 414/419/410 415/453/443 416/420/411 -f 392/397/389 393/398/390 417/422/413 -f 394/400/392 419/426/417 383/424/415 -f 393/398/390 395/399/391 420/425/416 -f 396/401/393 413/421/412 419/426/417 -f 397/402/394 421/427/418 420/425/416 -f 398/403/395 414/419/410 413/421/412 -f 399/404/396 422/428/419 421/427/418 -f 400/406/398 423/430/421 414/419/410 -f 401/408/399 424/432/422 422/428/419 -f 400/406/398 402/405/397 425/429/420 -f 403/431/401 426/457/424 424/432/422 -f 402/405/397 404/409/400 427/433/423 -f 405/412/403 428/436/426 426/434/424 -f 404/409/400 406/411/402 429/435/425 -f 407/415/406 430/440/430 428/436/426 -f 391/395/387 408/413/404 431/437/427 -f 406/411/402 409/414/405 433/439/429 -f 410/418/409 434/443/433 430/440/430 -f 408/413/404 411/416/407 435/441/431 -f 409/414/405 412/417/408 436/442/432 -f 352/354/347 437/446/436 434/443/433 -f 411/416/407 386/390/382 438/444/434 -f 412/417/408 388/392/384 439/445/435 -f 351/393/385 440/449/439 437/446/436 -f 386/390/382 385/389/381 441/447/437 -f 388/392/384 387/391/383 442/448/438 -f 389/396/388 443/451/441 440/449/439 -f 385/389/381 390/394/386 444/450/440 -f 387/391/383 391/395/387 432/438/428 -f 381/388/380 384/387/379 443/451/441 -f 390/394/386 392/397/389 418/423/414 -f 422/428/419 445/454/444 446/452/442 -f 423/430/421 447/456/446 415/453/443 -f 424/432/422 448/458/447 445/454/444 -f 423/430/421 425/429/420 449/455/445 -f 426/457/424 450/1906/449 448/458/447 -f 425/429/420 427/433/423 451/459/448 -f 428/436/426 452/462/451 450/460/449 -f 427/433/423 429/435/425 453/461/450 -f 430/440/430 454/466/455 452/462/451 -f 432/438/428 431/437/427 455/463/452 -f 429/435/425 433/439/429 457/465/454 -f 434/443/433 458/469/458 454/466/455 -f 431/437/427 435/441/431 459/467/456 -f 433/439/429 436/442/432 460/468/457 -f 437/446/436 461/472/461 458/469/458 -f 435/441/431 438/444/434 462/470/459 -f 436/442/432 439/445/435 463/471/460 -f 440/449/439 464/475/464 461/472/461 -f 438/444/434 441/447/437 465/473/462 -f 439/445/435 442/448/438 466/474/463 -f 443/451/441 467/477/466 464/475/464 -f 441/447/437 444/450/440 468/476/465 -f 442/448/438 432/438/428 456/464/453 -f 384/387/379 469/479/468 467/477/466 -f 444/450/440 418/423/414 470/478/467 -f 383/424/415 471/481/470 469/479/468 -f 418/423/414 417/422/413 472/480/469 -f 419/426/417 473/483/472 471/481/470 -f 417/422/413 420/425/416 474/482/471 -f 413/421/412 416/420/411 473/483/472 -f 421/427/418 446/452/442 474/482/471 -f 466/1907/1485 456/1908/1486 461/1909/1486 -f 456/1908/1486 455/1910/473 458/1911/473 -f 455/1910/473 459/1912/473 458/1911/473 -f 459/1912/473 462/486/473 452/485/473 -f 458/1911/473 459/1912/473 454/1913/473 -f 462/486/473 465/1914/473 472/1915/473 -f 465/1914/473 468/1916/1487 470/1917/473 -f 472/1915/473 465/1914/473 470/1917/473 -f 472/1915/473 474/1918/473 462/486/473 -f 474/1918/473 446/484/473 462/486/473 -f 446/484/473 445/1919/473 452/485/473 -f 445/1919/473 448/1920/1488 450/1921/1489 -f 452/485/473 445/1919/473 450/1921/1489 -f 452/485/473 454/1913/473 459/1912/473 -f 458/1911/473 461/1909/1486 456/1908/1486 -f 461/1909/1486 464/1922/1490 466/1907/1485 -f 464/1922/1490 467/1923/1491 415/1924/1492 -f 467/1923/1491 469/1925/1493 416/1926/1494 -f 415/1924/1492 467/1923/1491 416/1926/1494 -f 469/1925/1493 471/1927/1495 473/1928/1496 -f 473/1928/1496 416/1926/1494 469/1925/1493 -f 415/1924/1492 447/1929/1497 464/1922/1490 -f 447/1929/1497 449/1930/1498 463/1931/1499 -f 466/1907/1485 447/1929/1497 463/1931/1499 -f 449/1930/1498 451/1932/1500 460/1933/1501 -f 451/1932/1500 453/1934/1502 457/1935/1503 -f 460/1933/1501 451/1932/1500 457/1935/1503 -f 460/1933/1501 463/1931/1499 449/1930/1498 -f 447/1929/1497 466/1907/1485 464/1922/1490 -f 476/487/474 477/1936/474 478/488/474 -f 479/492/476 480/1937/476 478/490/476 -f 480/1937/476 481/1938/1504 475/1939/1505 -f 478/490/476 480/1937/476 475/1939/1505 -f 481/1938/1504 482/1940/1506 475/1939/1505 -f 478/490/476 45/1941/476 29/491/476 -f 479/493/477 483/1942/477 484/494/477 -f 483/497/478 485/1943/1507 486/1944/1508 -f 477/498/478 476/1945/478 484/496/478 -f 476/1945/478 487/1946/478 488/1947/478 -f 483/497/478 486/1944/1508 477/498/478 -f 488/1947/478 484/496/478 476/1945/478 -f 489/499/479 490/1948/479 488/500/479 -f 491/502/480 494/1949/480 493/503/480 -f 479/511/477 29/1950/482 485/512/482 -f 477/514/474 486/1951/481 45/515/481 -f 498/517/480 499/1952/480 500/518/480 -f 504/520/483 500/1953/481 499/1954/1509 -f 499/1954/1509 501/521/484 504/520/483 -f 501/521/484 502/1955/1510 503/522/485 -f 508/525/479 503/1956/479 506/523/479 -f 503/1956/479 502/1957/479 505/536/479 -f 505/536/479 506/523/479 503/1956/479 -f 510/528/487 508/1958/1511 509/1959/1512 -f 508/1958/1511 507/1960/1513 509/1959/1512 -f 509/1959/1512 498/526/486 510/528/487 -f 497/519/489 500/518/1514 504/530/490 -f 504/530/490 503/1956/478 508/525/478 -f 508/525/478 510/529/488 504/530/490 -f 505/1961/476 502/1962/1515 516/1963/476 -f 502/1962/1515 501/532/492 514/1964/1516 -f 516/1963/476 502/1962/1515 515/1965/476 -f 501/532/492 499/1966/1517 509/533/493 -f 499/1966/1517 498/1967/1517 509/533/493 -f 509/533/493 507/1968/1518 513/531/491 -f 507/1968/1518 506/1969/476 511/1970/476 -f 514/1964/1516 515/1965/476 502/1962/1515 -f 511/1970/476 512/1971/476 507/1968/1518 -f 512/1971/476 513/531/491 507/1968/1518 -f 513/531/491 514/1964/1516 501/532/492 -f 516/534/482 517/547/482 518/535/482 -f 524/539/476 518/535/476 519/537/476 -f 518/535/476 517/547/476 519/537/476 -f 519/537/476 520/548/476 521/543/476 -f 522/538/476 523/545/476 524/539/476 -f 519/537/476 521/543/476 522/538/476 -f 514/540/482 520/548/482 519/537/482 -f 512/542/481 522/538/481 521/543/481 -f 506/523/481 524/539/481 523/545/481 -f 515/541/494 519/537/494 517/547/494 -f 513/544/479 521/543/479 520/548/479 -f 511/546/495 523/545/495 522/538/495 -f 505/536/480 518/535/480 524/539/480 -f 499/549/496 526/1972/498 525/550/497 -f 526/552/498 528/1973/499 527/553/499 -f 526/555/500 499/1974/481 500/556/501 -f 497/558/503 498/1975/482 525/559/504 -f 534/563/508 529/1976/1519 532/561/506 -f 529/1976/1519 530/1977/1520 531/1978/1521 -f 532/561/506 529/1976/1519 531/1978/1521 -f 533/564/509 489/1979/1522 482/565/510 -f 481/567/512 490/1980/1523 530/568/513 -f 490/572/517 489/1981/1524 532/1982/1525 -f 489/1981/1524 533/1983/1526 532/1982/1525 -f 490/572/517 532/1982/1525 531/570/515 -f 538/573/518 537/1984/1527 536/574/519 -f 493/576/520 494/1985/520 540/577/521 -f 541/580/481 533/1986/481 534/581/481 -f 534/581/481 539/1987/522 540/1988/521 -f 540/1988/521 542/579/481 534/581/481 -f 537/1989/1527 529/584/482 536/583/519 -f 529/584/482 530/1990/482 544/1991/482 -f 543/582/482 529/584/482 544/1991/482 -f 546/585/523 545/591/529 531/586/524 -f 547/588/526 550/620/555 549/589/527 -f 545/591/529 551/599/537 543/592/530 -f 531/586/524 545/591/529 544/593/531 -f 542/595/533 552/598/536 546/585/523 -f 541/596/534 546/585/523 532/587/525 -f 545/591/529 546/585/523 552/598/536 -f 556/600/538 555/603/541 554/601/539 -f 555/603/541 558/605/543 557/604/542 -f 558/605/543 560/615/550 559/606/544 -f 535/608/480 561/1992/480 564/609/480 -f 564/609/480 563/1993/480 538/607/480 -f 563/1993/480 562/1994/480 538/607/480 -f 552/598/536 566/611/546 565/610/545 -f 542/595/533 540/1995/1528 566/611/546 -f 561/1996/1529 567/616/551 564/614/549 -f 567/616/551 569/1997/1530 568/612/547 -f 564/614/549 567/616/551 568/612/547 -f 565/610/545 536/1998/1531 543/592/530 -f 560/615/550 569/1997/1530 567/616/551 -f 548/590/528 549/589/527 571/617/552 -f 491/619/554 492/1999/1532 550/620/555 -f 570/618/553 571/617/552 573/621/556 -f 572/622/557 573/621/556 575/623/558 -f 574/624/559 575/623/558 577/625/560 -f 576/626/561 577/625/560 579/627/480 -f 579/627/480 581/630/563 580/629/562 -f 581/630/563 556/600/538 553/602/540 -f 582/631/564 583/655/587 584/632/565 -f 587/634/567 588/656/588 589/635/568 -f 582/631/564 585/633/566 591/637/570 -f 586/636/569 589/635/568 593/639/572 -f 595/642/575 592/640/573 593/639/572 -f 597/644/478 595/642/575 596/643/576 -f 597/644/478 598/645/577 600/646/578 -f 599/647/579 600/646/578 605/651/583 -f 601/648/580 603/650/582 607/653/585 -f 583/655/587 604/652/584 605/651/583 -f 587/634/567 606/654/586 607/653/585 -f 605/651/583 608/670/599 609/657/589 -f 593/639/572 589/635/568 610/659/590 -f 596/643/576 593/639/572 611/660/591 -f 594/661/574 612/663/592 615/665/594 -f 598/645/577 596/643/576 613/664/593 -f 598/645/577 616/667/596 617/668/597 -f 600/646/578 617/668/597 608/670/599 -f 616/667/596 613/664/593 619/671/600 -f 616/667/596 620/672/601 621/673/602 -f 617/668/597 621/673/602 622/674/603 -f 608/670/599 622/674/603 624/678/605 -f 611/660/591 610/659/590 625/681/606 -f 613/664/593 611/660/591 626/682/607 -f 623/677/604 627/696/617 628/683/608 -f 624/678/605 629/697/618 630/684/609 -f 625/681/606 588/680/588 628/683/608 -f 585/685/566 630/684/609 632/687/611 -f 626/682/607 625/681/606 631/686/610 -f 619/671/600 626/682/607 633/689/612 -f 620/672/601 619/671/600 634/691/613 -f 620/672/601 635/692/614 636/693/615 -f 621/673/602 636/693/615 637/694/616 -f 622/674/603 637/694/616 629/697/618 -f 635/692/614 634/691/613 638/698/619 -f 635/692/614 639/699/620 640/700/621 -f 637/694/616 636/693/615 640/700/621 -f 631/686/610 628/683/608 643/705/625 -f 633/689/612 631/686/610 644/706/626 -f 633/689/612 646/709/628 638/698/619 -f 629/711/618 647/723/635 648/712/629 -f 639/699/620 638/698/619 650/717/631 -f 639/699/620 651/719/632 652/720/633 -f 651/719/636 654/735/636 655/724/637 -f 652/720/633 655/724/637 656/725/638 -f 643/729/625 627/726/617 657/728/639 -f 644/731/626 643/729/625 658/730/640 -f 646/716/628 644/731/626 659/732/641 -f 650/717/631 646/716/628 660/733/642 -f 651/719/636 650/717/631 661/734/643 -f 618/701/645 663/765/674 664/740/646 -f 656/742/648 655/767/676 665/743/649 -f 653/741/647 664/740/646 667/745/651 -f 656/742/648 666/744/650 668/747/653 -f 658/749/655 657/746/652 667/745/651 -f 647/748/654 668/747/653 670/751/657 -f 659/752/659 658/749/655 669/750/656 -f 662/738/661 648/737/658 670/751/657 -f 660/755/663 659/752/659 671/753/660 -f 662/738/661 672/754/662 674/757/665 -f 660/755/663 673/756/664 675/759/667 -f 615/718/669 649/758/666 674/757/665 -f 661/760/668 675/759/667 677/762/671 -f 655/767/676 654/763/672 677/762/671 -f 675/759/667 678/769/677 679/770/678 -f 665/743/649 677/762/671 679/770/678 -f 668/775/681 666/772/650 681/774/680 -f 670/780/657 668/775/681 682/776/682 -f 669/777/656 683/779/683 685/782/685 -f 671/783/686 685/782/685 686/785/687 -f 686/785/687 689/804/697 690/791/690 -f 664/794/646 692/795/692 693/796/693 -f 682/797/682 694/799/694 695/800/695 -f 693/796/693 696/806/698 698/810/700 -f 685/812/685 683/2000/701 698/813/700 -f 699/817/702 695/816/695 701/835/706 -f 696/844/698 705/846/711 706/847/712 -f 702/855/707 701/2001/706 707/856/713 -f 706/861/712 705/858/711 708/860/714 -f 709/903/715 708/897/714 723/899/729 -f 710/905/716 694/900/694 724/902/730 -f 709/907/715 725/2002/731 720/891/726 -f 717/908/723 715/925/721 726/909/732 -f 717/908/723 727/910/733 728/911/734 -f 724/912/735 728/911/734 730/915/737 -f 720/916/726 725/904/731 729/914/736 -f 719/889/738 730/915/737 732/918/740 -f 721/919/727 720/916/726 731/917/739 -f 721/919/727 733/920/741 734/921/742 -f 718/923/724 713/922/719 734/921/742 -f 718/923/724 735/924/743 726/909/732 -f 735/924/745 734/921/742 736/927/744 -f 735/924/745 737/928/746 738/929/747 -f 727/930/733 738/929/747 739/931/748 -f 723/933/729 716/955/722 741/934/750 -f 727/930/733 740/932/749 743/936/752 -f 729/938/736 723/933/729 742/935/751 -f 730/940/737 728/937/734 743/936/752 -f 729/938/736 744/939/753 746/942/755 -f 732/944/740 730/940/737 745/941/754 -f 733/926/741 731/943/739 746/942/755 -f 732/944/740 747/945/756 749/947/758 -f 733/926/741 748/946/757 750/949/759 -f 722/948/728 749/947/758 751/950/760 -f 736/927/744 750/949/759 752/951/761 -f 738/929/747 737/928/746 752/951/761 -f 716/955/722 663/765/674 753/953/763 -f 743/956/764 740/977/784 754/957/765 -f 742/959/767 756/979/786 757/960/768 -f 745/962/770 743/956/764 755/958/766 -f 744/961/769 757/960/768 759/964/772 -f 747/966/774 745/962/770 758/963/771 -f 746/965/773 759/964/772 761/968/776 -f 748/969/777 761/968/776 762/971/779 -f 750/972/780 762/971/779 763/973/781 -f 739/975/782 752/974/781 763/973/781 -f 740/977/784 739/975/782 764/976/783 -f 762/971/779 766/989/794 767/983/789 -f 764/976/783 763/973/790 767/983/789 -f 756/990/786 770/1006/806 771/991/795 -f 758/993/771 755/1007/807 772/994/796 -f 757/992/768 771/991/795 774/996/798 -f 760/987/775 758/993/771 773/995/797 -f 759/997/799 774/996/798 776/999/801 -f 766/989/794 761/988/776 776/999/801 -f 766/989/794 777/1000/802 778/1001/803 -f 768/984/791 767/983/789 778/1001/803 -f 768/984/791 779/1002/804 780/1003/805 -f 755/1007/807 754/1004/765 780/1003/805 -f 777/1000/802 781/1015/814 782/1008/808 -f 779/1002/804 778/1001/803 782/1008/808 -f 780/1003/805 779/1002/804 783/1009/809 -f 772/994/796 780/1003/805 784/1010/810 -f 774/996/798 786/1013/812 787/1014/813 -f 776/999/801 787/1014/813 781/1015/814 -f 773/1016/797 785/1011/811 788/1017/815 -f 771/1012/795 790/1034/824 791/1019/817 -f 786/1013/812 791/1019/817 792/1021/818 -f 787/1014/813 792/1021/818 794/1025/820 -f 781/1015/814 794/1025/820 795/1026/821 -f 783/1009/809 782/1008/808 795/1026/821 -f 784/1010/810 783/1009/809 796/1027/822 -f 769/1028/793 601/1030/580 606/1032/586 -f 785/1011/811 784/1010/810 797/1031/823 -f 770/1033/806 606/1032/586 790/1034/824 -f 796/1027/822 795/1026/821 798/1035/825 -f 797/1031/823 796/1027/822 799/1036/826 -f 788/1017/815 797/1031/823 800/1038/827 -f 791/1019/817 802/1041/829 803/1044/830 -f 792/1021/818 803/1044/830 804/1045/831 -f 794/1025/820 804/1045/831 798/1035/825 -f 802/1041/829 790/1040/824 587/634/567 -f 803/1044/830 802/1041/829 586/636/569 -f 803/1044/830 592/640/573 595/642/575 -f 804/1045/831 595/642/575 597/644/478 -f 799/1036/826 798/1035/825 597/644/478 -f 800/1038/827 799/1036/826 599/647/579 -f 800/1038/827 604/652/584 583/655/587 -f 801/1039/828 583/655/587 582/631/564 -f 806/1049/832 807/2003/844 808/1050/833 -f 809/1052/835 810/2004/835 811/1053/835 -f 806/1057/838 813/2005/1533 815/2006/1534 -f 813/2005/1533 814/2007/482 815/2006/1534 -f 815/2006/1534 812/1055/836 806/1057/838 -f 812/1055/836 811/2008/1535 807/1056/837 -f 815/1058/839 816/2009/1536 809/1052/840 -f 817/1059/842 818/2010/842 814/1060/842 -f 811/1062/843 810/2011/1537 808/1063/833 -f 814/1065/480 818/2012/480 816/1066/480 -f 813/1068/845 806/2013/1538 805/1069/846 -f 810/2014/1539 809/2015/1540 808/2016/1541 -f 809/2015/1540 816/1071/848 805/1073/850 -f 816/1071/848 818/2017/481 817/1072/849 -f 805/1073/850 808/2016/1541 809/2015/1540 -f 820/1074/851 821/1090/1542 822/1075/852 -f 821/2018/481 823/2019/481 824/2020/481 -f 821/2018/481 824/2020/481 825/2021/481 -f 837/2022/481 838/1079/481 831/2023/481 -f 838/1079/481 822/2024/481 828/2025/481 -f 829/1077/481 838/1079/481 828/2025/481 -f 835/2026/481 836/2027/481 831/2023/481 -f 836/2027/481 837/2022/481 831/2023/481 -f 833/2028/481 834/2029/481 832/2030/481 -f 834/2029/481 835/2026/481 832/2030/481 -f 822/2024/481 821/2018/481 826/2031/481 -f 821/2018/481 825/2021/481 826/2031/481 -f 832/2030/481 835/2026/481 831/2023/481 -f 822/2024/481 826/2031/481 827/2032/481 -f 822/2024/481 827/2032/481 828/2025/481 -f 830/1078/481 831/2023/481 838/1079/481 -f 835/1080/853 839/2033/885 840/1081/854 -f 838/1083/478 841/2034/478 819/1084/478 -f 833/1086/856 842/1113/856 843/1087/856 -f 844/1089/857 823/1895/1543 821/1090/858 -f 845/1091/860 846/2035/871 829/1092/861 -f 847/1094/863 845/2036/860 828/1095/862 -f 825/1098/866 848/2037/1544 849/1099/867 -f 849/1099/867 847/2038/1545 827/2039/1546 -f 827/2039/1546 826/1097/865 849/1099/867 -f 851/1100/868 832/1112/1547 831/1101/869 -f 846/1103/871 852/2040/874 830/1104/872 -f 850/1106/873 831/2041/1548 830/1107/872 -f 824/1109/875 853/1894/1475 848/1110/876 -f 832/1112/878 851/1100/1549 842/1113/879 -f 836/1114/855 840/2042/854 854/1115/881 -f 838/1117/883 837/1116/882 854/1115/881 -f 839/1119/885 835/2043/853 834/1120/479 -f 856/1122/886 857/1126/1550 858/1123/887 -f 859/1125/889 860/1128/893 857/1126/890 -f 861/1127/892 862/1131/892 860/1128/893 -f 863/1132/897 865/2044/1551 866/1133/898 -f 867/1135/900 866/2045/1552 865/1136/900 -f 869/1138/901 867/2046/1553 868/1139/902 -f 864/2047/482 866/2048/482 862/2049/482 -f 866/2048/482 867/2050/482 862/2049/482 -f 857/1143/482 860/2051/482 869/1141/482 -f 860/2051/482 862/2049/482 867/2050/482 -f 873/2052/482 858/2053/482 872/2054/482 -f 858/2053/482 857/1143/482 871/1142/482 -f 871/1142/482 872/2054/482 858/2053/482 -f 860/2051/482 867/2050/482 869/1141/482 -f 871/1144/904 869/2055/901 870/1145/903 -f 876/2056/481 875/2057/481 855/2058/481 -f 875/2057/481 874/2059/481 855/2058/481 -f 859/1149/481 856/2060/481 870/1147/481 -f 856/2060/481 855/2058/481 874/2059/481 -f 870/1147/481 856/2060/481 874/2059/481 -f 863/2061/481 861/2062/481 865/2063/481 -f 861/2062/481 859/1149/481 868/1148/481 -f 868/1148/481 865/2063/481 861/2062/481 -f 855/1124/888 858/1123/887 873/1150/906 -f 876/1151/908 873/1150/1554 872/1152/909 -f 872/1154/911 871/2064/904 874/1155/905 -f 878/1157/480 879/1191/480 880/1158/480 -f 878/1160/914 882/2065/1555 883/1161/915 -f 882/1163/917 884/1172/1556 885/1164/918 -f 885/1166/920 884/2066/1557 877/1167/921 -f 881/1169/923 883/2067/1558 885/1170/924 -f 878/1157/926 877/1159/926 884/1172/926 -f 879/1173/481 887/2068/481 888/1174/481 -f 881/1176/480 886/2069/480 890/1177/480 -f 881/1179/480 887/2070/480 879/1180/480 -f 877/1182/480 880/2071/480 890/1183/480 -f 892/1185/480 889/2072/480 888/1186/480 -f 880/1188/482 892/2073/482 891/1189/482 -f 879/1191/927 889/2074/927 892/1192/927 -f 890/1193/928 891/2075/928 888/1194/928 -f 888/1186/929 891/1187/929 894/1196/930 -f 894/1196/930 896/2076/932 895/1198/932 -f 894/1199/933 891/2077/1559 892/1200/934 -f 889/1202/936 888/2078/1560 893/1203/937 -f 898/1205/480 899/2079/480 900/1206/480 -f 903/2080/481 900/2081/481 902/1210/481 -f 900/2081/481 899/1208/481 902/1210/481 -f 905/1211/939 906/2082/939 907/1212/939 -f 897/1216/482 908/2083/482 907/1214/482 -f 907/1214/482 906/2084/482 898/1215/482 -f 897/1219/478 900/2085/478 909/1217/478 -f 900/2085/478 903/2086/478 909/1217/478 -f 904/1213/939 907/1212/939 908/1220/939 -f 902/1222/940 904/1213/940 909/1221/940 -f 901/1224/940 905/1211/940 904/1213/940 -f 897/1225/941 910/2087/1561 911/1226/942 -f 899/1231/945 912/2088/1562 913/1232/946 -f 915/1237/949 916/1243/955 917/1238/950 -f 918/1240/952 919/1265/976 920/1241/953 -f 916/1243/955 922/1247/959 923/1244/956 -f 921/1242/954 920/1241/953 924/1245/957 -f 922/1247/959 926/1251/963 927/1248/960 -f 925/1246/958 924/1245/957 928/1249/961 -f 926/1251/963 930/1255/967 931/1252/964 -f 929/1250/962 928/1249/961 932/1253/965 -f 930/1255/967 934/1259/970 935/1256/968 -f 933/1254/966 932/1253/965 936/1257/969 -f 934/1259/970 938/2089/1563 939/1260/971 -f 936/1257/969 940/1264/975 941/1261/972 -f 939/1260/971 938/2089/1563 942/1262/973 -f 940/1264/975 915/2090/949 914/1239/951 -f 943/1263/974 942/1262/973 919/1265/976 -f 944/1266/977 945/1270/981 946/1267/978 -f 948/1269/980 949/1272/983 946/1267/978 -f 950/1271/982 951/1277/988 949/1272/983 -f 952/1273/984 953/1278/989 954/1274/985 -f 956/1276/987 957/1281/992 951/1277/988 -f 953/1278/989 958/1282/993 959/1279/990 -f 960/1280/991 961/1285/996 957/1281/992 -f 958/1282/993 962/1286/997 963/1283/994 -f 964/1284/995 965/1289/1000 961/1285/996 -f 962/1286/997 966/1290/1001 967/1287/998 -f 968/1288/999 969/1293/1003 965/1289/1000 -f 966/1290/1001 944/2091/977 947/1291/979 -f 970/1292/1002 971/1294/1004 969/1293/1003 -f 971/1294/1004 972/1299/1009 973/1295/1005 -f 947/1268/979 946/1267/978 974/1296/1006 -f 976/1298/1008 977/1301/1011 972/1299/1009 -f 949/1272/983 978/1302/1012 974/1296/1006 -f 976/1298/1008 955/1275/986 979/1300/1010 -f 951/1277/988 980/1304/1014 978/1302/1012 -f 955/1275/986 954/1274/985 981/1303/1013 -f 957/1281/992 982/1306/1016 980/1304/1014 -f 954/1274/985 959/1279/990 983/1305/1015 -f 961/1285/996 984/1308/1018 982/1306/1016 -f 959/1279/990 963/1283/994 985/1307/1017 -f 965/1289/1000 986/1310/1020 984/1308/1018 -f 963/1283/994 967/1287/998 987/1309/1019 -f 969/1293/1003 973/1295/1005 986/1310/1020 -f 967/1287/998 947/1291/979 975/1311/1007 -f 987/1309/1019 975/1311/1007 988/1312/1021 -f 972/1299/1009 990/1318/1026 991/1314/1023 -f 975/1297/1007 974/1296/1006 992/1315/1024 -f 972/1299/1009 977/1301/1011 993/1317/1025 -f 978/1302/1012 994/1320/1028 992/1315/1024 -f 977/1301/1011 979/1300/1010 995/1319/1027 -f 980/1304/1014 996/1322/1030 994/1320/1028 -f 979/1300/1010 981/1303/1013 997/1321/1029 -f 982/1306/1016 998/1324/1032 996/1322/1030 -f 981/1303/1013 983/1305/1015 999/1323/1031 -f 984/1308/1018 1000/1326/1034 998/1324/1032 -f 983/1305/1015 985/1307/1017 1001/1325/1033 -f 986/1310/1020 1002/1327/1035 1000/1326/1034 -f 985/1307/1017 987/1309/1019 989/1313/1022 -f 973/1295/1005 991/1314/1023 1002/1327/1035 -f 989/1313/1022 988/1312/1021 1003/1328/1036 -f 990/1318/1026 1005/1333/1040 1006/1330/1038 -f 988/1316/1021 992/1315/1024 1007/1331/1039 -f 993/1317/1025 1008/1335/1042 1005/1333/1040 -f 994/1320/1028 1009/1336/1043 1007/1331/1039 -f 993/1317/1025 995/1319/1027 1010/1334/1041 -f 996/1322/1030 1011/1338/1045 1009/1336/1043 -f 995/1319/1027 997/1321/1029 1012/1337/1044 -f 998/1324/1032 1013/1340/1047 1011/1338/1045 -f 997/1321/1029 999/1323/1031 1014/1339/1046 -f 1000/1326/1034 1015/1342/1049 1013/1340/1047 -f 999/1323/1031 1001/1325/1033 1016/1341/1048 -f 1002/1327/1035 1017/1343/1050 1015/1342/1049 -f 1001/1325/1033 989/1313/1022 1004/1329/1037 -f 991/1314/1023 1006/1330/1038 1017/1343/1050 -f 1003/2092/1036 1007/2093/1039 1009/2094/1043 -f 1009/2094/1043 1011/2095/1045 1013/2096/1047 -f 1013/2096/1047 1015/2097/1049 1017/1346/1050 -f 1017/1346/1050 1006/2098/1038 1005/2099/1040 -f 1005/2099/1040 1008/2100/1042 1010/2101/1041 -f 1010/2101/1041 1012/2102/1044 1014/1344/1046 -f 1014/1344/1046 1016/2103/1048 1004/1345/1037 -f 1004/1345/1037 1003/2092/1036 1017/1346/1050 -f 1003/2092/1036 1009/2094/1043 1017/1346/1050 -f 1009/2094/1043 1013/2096/1047 1017/1346/1050 -f 1017/1346/1050 1005/2099/1040 1010/2101/1041 -f 1010/2101/1041 1014/1344/1046 1017/1346/1050 -f 918/1240/1051 1018/1351/1061 1019/1347/1052 -f 1020/1348/1054 1021/1349/1057 925/1246/1055 -f 1021/1349/1057 1022/1391/1564 921/1242/1058 -f 943/1263/1053 1019/1347/1052 1023/1350/1059 -f 921/1242/1058 1022/1391/1564 1018/1351/1061 -f 939/1260/1060 1023/1350/1059 1024/1352/1062 -f 1025/1353/1064 1026/1358/1070 1027/1354/1065 -f 935/1256/1063 1024/1352/1062 1029/1356/1067 -f 1030/1357/1069 1031/1390/1565 1026/1358/1070 -f 931/1252/1068 1029/1356/1067 1032/1359/1071 -f 1034/1360/1073 1031/1390/1565 1030/1357/1069 -f 1036/1362/1075 1034/1360/1073 1033/1361/1074 -f 927/1248/1072 1032/1359/1071 1037/1364/1077 -f 1039/1365/1079 1036/1362/1075 1035/1363/1076 -f 1040/1367/1081 1041/1388/1107 933/1254/1082 -f 1043/1368/1084 1039/1365/1079 1038/1366/1080 -f 1045/1370/1086 1043/1368/1084 1042/1369/1085 -f 1047/1372/1088 1045/1370/1086 1044/1371/1087 -f 1049/1374/1090 1047/1372/1088 1046/1373/1089 -f 1037/1364/1077 1050/1377/1094 917/1238/1092 -f 1051/1376/1093 1052/1387/1106 1049/1374/1090 -f 1050/1377/1094 1053/1382/1100 914/1239/1095 -f 1028/1355/1066 1027/1354/1065 1054/1378/1096 -f 1055/1379/1097 1054/1378/1096 1056/1380/1098 -f 1053/1382/1100 1058/1385/1104 941/1261/1101 -f 1057/1381/1099 1056/1380/1098 1059/1383/1102 -f 1058/1385/1104 1040/1367/1081 937/1258/1083 -f 1061/1386/1105 1062/2104/1108 1052/1387/1106 -f 1041/1388/1107 1020/1348/1054 929/1250/1056 -f 1060/1384/1103 1059/1383/1102 1062/1389/1108 -f 1027/1354/1109 1026/1358/1110 1021/1349/1110 -f 1045/1370/1111 1047/1372/1112 1032/1359/1112 -f 1054/1378/1113 1027/1354/1109 1020/1348/1109 -f 1043/1368/1114 1045/1370/1111 1029/1356/1111 -f 1039/1365/1115 1043/1368/1114 1024/1352/1114 -f 1059/1383/1116 1056/1380/1117 1040/1367/1117 -f 1036/1362/1118 1039/1365/1115 1023/1350/1115 -f 1062/1389/1119 1059/1383/1116 1058/1385/1116 -f 1034/1360/1120 1036/1362/1118 1019/1347/1118 -f 1052/1387/481 1062/2104/1119 1053/1382/1119 -f 1031/1390/1121 1034/1360/1120 1018/1351/1120 -f 1049/1374/1122 1052/1387/481 1050/1377/481 -f 1026/1358/1110 1031/1390/1121 1022/1391/1121 -f 1047/1372/1112 1049/1374/1122 1037/1364/1122 -f 1056/1380/1117 1054/1378/1113 1041/1388/1113 -f 1064/1392/1123 1065/1443/1123 1066/1393/1124 -f 924/1395/1125 928/2105/1132 953/1278/1126 -f 938/1396/1128 942/1401/1134 968/1288/1129 -f 938/1396/1128 964/1284/1130 960/1280/1131 -f 928/1398/1132 932/1413/1113 958/1399/1133 -f 942/1401/1134 919/2106/1566 970/1292/951 -f 926/1402/1135 950/1414/1144 948/1403/1136 -f 940/1405/1138 966/1416/1146 962/1406/1139 -f 934/1408/1114 960/2107/1131 956/1409/1140 -f 922/1404/1137 948/1403/1136 945/1411/1142 -f 932/1413/1113 936/1407/1139 962/1406/1139 -f 930/1410/1141 956/1409/1140 950/1414/1144 -f 915/1415/1145 944/2108/1147 966/1416/1146 -f 916/1412/1143 945/1411/1142 944/1417/1147 -f 919/1419/1148 942/1450/1149 1067/1420/1149 -f 926/1422/1151 1069/1471/1151 1070/1423/1152 -f 1072/1425/1153 1073/1449/1172 1074/1426/1154 -f 932/1428/1156 928/1489/1157 1075/1429/1157 -f 936/1431/1158 932/1428/1156 1076/1430/1156 -f 1078/1433/1160 1079/1487/1161 1080/1434/1161 -f 934/1436/1163 1082/1447/1163 1083/1437/1164 -f 916/1439/1166 1084/1470/1166 1085/1440/1167 -f 1086/1442/1168 1087/1475/1168 1065/1443/1123 -f 920/1444/1169 1088/1454/1169 1089/1445/1170 -f 930/1424/1152 1070/1423/1152 1082/1447/1163 -f 1090/1448/1171 1091/1473/1201 1073/1449/1172 -f 938/1438/1165 1083/1437/1164 1067/1420/1149 -f 936/1431/1158 1077/1432/1159 1092/1451/1173 -f 1068/1421/1175 1093/1469/1197 1094/1453/1176 -f 1092/1451/1178 1077/1432/1191 1065/1455/1179 -f 1089/1445/1181 1095/1463/1190 1096/1457/1182 -f 1082/1447/970 1070/1423/1193 1081/1458/1184 -f 1083/1437/1185 1097/1465/1192 1098/1460/1186 -f 1085/1440/1188 1084/1470/1198 1074/1461/305 -f 1088/1454/1177 1094/1453/1176 1095/1463/1190 -f 1077/1432/1191 1076/1430/966 1066/1464/966 -f 1082/1447/970 1080/1459/968 1097/1465/1192 -f 1070/1423/1193 1069/1471/1199 1091/1466/1194 -f 1075/1429/1183 1096/1457/1182 1066/1464/966 -f 1099/1467/1195 1092/1451/1178 1087/1456/1180 -f 1067/1420/1187 1098/1460/1186 1093/1469/1197 -f 1084/1470/1198 1099/1467/1195 1100/1468/1196 -f 1069/1471/1199 1085/1440/1188 1073/1462/1189 -f 915/1472/1200 940/1452/1174 1092/1451/1173 -f 1090/1448/1171 1078/1433/1160 1081/1435/1162 -f 916/1439/1166 915/2109/1200 1099/1467/1200 -f 1101/1474/1202 1100/1479/1206 1087/1475/1168 -f 1102/1476/1203 1103/1486/1204 1094/1477/1204 -f 1071/1427/1155 1074/1426/1154 1100/1479/1206 -f 1104/1480/1207 1105/1488/1208 1096/1481/1208 -f 1106/1483/1209 1107/1490/1210 1098/1484/1210 -f 1103/1486/1204 1104/1480/1207 1095/1482/1207 -f 1079/1487/1161 1106/1483/1209 1097/1485/1209 -f 919/1419/1148 1068/1421/1150 1088/1454/1169 -f 1063/1394/1124 1066/1393/1124 1096/1481/1208 -f 922/1441/1167 1085/1440/1167 1069/1471/1151 -f 924/1446/1170 1089/1445/1170 1075/1429/1157 -f 1107/1490/1210 1102/1476/1203 1093/1478/1205 -f 1080/1491/1211 1081/1508/1227 1108/1492/1212 -f 1097/1494/1213 1110/1506/1225 1111/1495/1214 -f 1073/1497/1216 1074/1518/1236 1112/1498/1217 -f 1094/1500/1219 1114/1520/1237 1115/1501/1220 -f 1065/1503/1222 1066/1511/1223 1116/1504/1223 -f 1080/1491/1211 1109/1493/1211 1110/1506/1225 -f 1118/1507/1226 1108/1492/1212 1081/1508/1227 -f 1096/1510/1229 1119/1521/1238 1116/1504/1223 -f 1120/1512/1230 1121/1517/1235 1100/1513/1231 -f 1098/1496/1215 1111/1495/1214 1122/1515/1233 -f 1121/1517/1235 1112/1498/1217 1074/1518/1236 -f 1091/1509/1228 1073/1497/1216 1113/1499/1218 -f 1093/1516/1234 1122/1515/1233 1114/1520/1237 -f 1087/1514/1232 1065/1503/1222 1117/1505/1224 -f 1095/1502/1221 1115/1501/1220 1119/1521/1238 -f 1124/1522/949 1125/1528/1243 1126/1523/1239 -f 1127/1525/1240 1128/1551/1249 1129/1526/1241 -f 1125/1528/1243 1131/1533/1245 1132/1529/1244 -f 1130/1530/1242 1129/2110/1241 1133/1531/957 -f 1131/1533/1245 1135/1537/963 1136/1534/1246 -f 1134/1532/958 1133/1531/957 1137/1535/961 -f 1135/1537/963 1139/1541/967 1140/1538/1247 -f 1138/1536/962 1137/1535/961 1141/1539/965 -f 1139/1541/967 1143/1545/968 1144/1542/968 -f 1142/1540/966 1141/1539/965 1145/1543/1248 -f 1143/1545/968 1147/2111/1563 1148/1546/971 -f 1145/1543/1248 1149/1550/975 1150/1547/975 -f 1148/1546/971 1147/2111/1563 1151/1548/973 -f 1149/1550/975 1124/1522/949 1123/1524/951 -f 1152/1549/974 1151/1548/973 1128/1551/1249 -f 1153/1552/977 1154/1559/1254 1155/1553/978 -f 1157/1555/1250 1158/2112/1255 1159/1556/1251 -f 1161/1558/1253 1162/1564/983 1155/1553/978 -f 1158/1560/1255 1163/1565/1258 1164/1561/1256 -f 1165/1563/982 1166/1568/988 1162/1564/983 -f 1163/1565/1258 1167/1569/1260 1168/1566/1259 -f 1169/1567/987 1170/1572/992 1166/1568/988 -f 1167/1569/1260 1171/1573/1261 1172/1570/990 -f 1173/1571/991 1174/1576/996 1170/1572/992 -f 1171/1573/1261 1175/1577/997 1176/1574/994 -f 1177/1575/1262 1178/1580/1263 1174/1576/996 -f 1175/1577/997 1179/1581/1001 1180/1578/998 -f 1181/1579/999 1182/1582/1264 1178/1580/1263 -f 1179/1581/1001 1153/1552/977 1156/1554/979 -f 1157/1555/1250 1160/1557/1252 1182/1582/1264 -f 1160/1557/1252 1183/1586/1266 1184/1583/1005 -f 1156/1554/979 1155/1553/978 1185/1584/1265 -f 1159/1556/1251 1187/2113/1267 1183/1586/1266 -f 1162/1564/983 1188/1589/1012 1185/1584/1265 -f 1159/1562/1251 1164/1561/1256 1189/1587/1010 -f 1166/1568/988 1190/1591/1014 1188/1589/1012 -f 1164/1561/1256 1168/1566/1259 1191/1590/1013 -f 1170/1572/992 1192/1593/1268 1190/1591/1014 -f 1168/1566/1259 1172/1570/990 1193/1592/1015 -f 1174/1576/996 1194/1595/1018 1192/1593/1268 -f 1172/1570/990 1176/1574/994 1195/1594/1269 -f 1178/1580/1263 1196/1597/1020 1194/1595/1018 -f 1176/1574/994 1180/1578/998 1197/1596/1019 -f 1182/1582/1264 1184/1583/1005 1196/1597/1020 -f 1180/1578/998 1156/1554/979 1186/1585/1007 -f 1197/1596/1019 1186/1585/1007 1198/1598/1021 -f 1183/1586/1266 1200/1603/1026 1201/1600/1270 -f 1186/1585/1007 1185/1584/1265 1202/1601/1271 -f 1183/1586/1266 1187/2113/1267 1203/1602/1025 -f 1188/1589/1012 1204/1606/1028 1202/1601/1271 -f 1187/1588/1267 1189/1587/1010 1205/1604/1027 -f 1190/1591/1014 1206/1608/1273 1204/1606/1028 -f 1189/1587/1010 1191/1590/1013 1207/1607/1272 -f 1192/1593/1268 1208/1610/1274 1206/1608/1273 -f 1191/1590/1013 1193/1592/1015 1209/1609/1031 -f 1194/1595/1018 1210/1612/1034 1208/1610/1274 -f 1193/1592/1015 1195/1594/1269 1211/1611/1275 -f 1196/1597/1020 1212/1613/1276 1210/1612/1034 -f 1195/1594/1269 1197/1596/1019 1199/1599/1022 -f 1184/1583/1005 1201/1600/1270 1212/1613/1276 -f 1199/1599/1022 1198/1598/1021 1213/1614/1036 -f 1200/1603/1026 1215/1618/1279 1216/1616/1278 -f 1198/1598/1021 1202/1601/1271 1217/1617/1039 -f 1203/1602/1025 1218/2114/1280 1215/1618/1279 -f 1204/1606/1028 1219/1621/1043 1217/1617/1039 -f 1203/1605/1025 1205/1604/1027 1220/1619/1041 -f 1206/1608/1273 1221/1623/1282 1219/1621/1043 -f 1205/1604/1027 1207/1607/1272 1222/1622/1281 -f 1208/1610/1274 1223/1625/1284 1221/1623/1282 -f 1207/1607/1272 1209/1609/1031 1224/1624/1283 -f 1210/1612/1034 1225/1627/1285 1223/1625/1284 -f 1209/1609/1031 1211/1611/1275 1226/1626/1048 -f 1212/1613/1276 1227/1628/1050 1225/1627/1285 -f 1211/1611/1275 1199/1599/1022 1214/1615/1277 -f 1201/1600/1270 1216/1616/1278 1227/1628/1050 -f 1213/2115/1036 1217/2116/1039 1219/2117/1043 -f 1219/2117/1043 1221/2118/1282 1223/2119/1284 -f 1223/2119/1284 1225/2120/1285 1219/2117/1043 -f 1225/2120/1285 1227/1629/1050 1219/2117/1043 -f 1227/1629/1050 1216/2121/1278 1215/2122/1279 -f 1215/2122/1279 1218/2123/1280 1227/1629/1050 -f 1218/2123/1280 1220/1630/1041 1227/1629/1050 -f 1220/1630/1041 1222/2124/1281 1224/2125/1283 -f 1224/2125/1283 1226/2126/1048 1220/1630/1041 -f 1226/2126/1048 1214/1631/1277 1220/1630/1041 -f 1214/1631/1277 1213/2115/1036 1227/1629/1050 -f 1213/2115/1036 1219/2117/1043 1227/1629/1050 -f 1127/1525/1286 1228/1636/1061 1229/1632/1287 -f 1230/1633/1289 1231/1634/1057 1134/1532/1290 -f 1231/1634/1057 1232/1677/1567 1130/1530/1292 -f 1152/1549/1288 1229/1632/1287 1233/1635/1293 -f 1130/1527/1292 1232/1676/1567 1228/1636/1061 -f 1148/1546/1294 1233/1635/1293 1234/1637/1062 -f 1235/1638/1296 1236/1643/1302 1237/1639/1297 -f 1144/1542/1295 1234/1637/1062 1239/1641/1299 -f 1240/1642/1301 1241/2127/1568 1236/1643/1302 -f 1140/1538/1300 1239/1641/1299 1242/1644/1303 -f 1244/1645/1305 1241/1675/1568 1240/1642/1301 -f 1246/1647/1307 1244/1645/1305 1243/1646/1306 -f 1136/1534/1304 1242/1644/1303 1247/1649/1077 -f 1249/1650/1310 1246/1647/1307 1245/1648/1308 -f 1250/1652/1312 1251/1673/1335 1142/1540/1313 -f 1253/1653/1315 1249/1650/1310 1248/1651/1311 -f 1255/1655/1317 1253/1653/1315 1252/1654/1316 -f 1257/1657/1319 1255/1655/1317 1254/1656/1318 -f 1259/1659/1321 1257/1657/1319 1256/1658/1320 -f 1247/1649/1077 1260/1662/1094 1126/1523/1323 -f 1261/1661/1324 1262/1672/1106 1259/1659/1321 -f 1260/1662/1094 1263/1667/1100 1123/1524/1325 -f 1238/1640/1298 1237/1639/1297 1264/1663/1326 -f 1265/1664/1327 1264/1663/1326 1266/1665/1328 -f 1263/1667/1100 1268/1670/1333 1150/1547/1330 -f 1267/1666/1329 1266/1665/1328 1269/1668/1331 -f 1268/1670/1333 1250/1652/1312 1146/1544/1314 -f 1271/1671/1334 1272/1674/1336 1262/1672/1106 -f 1251/1673/1335 1230/1633/1289 1138/1536/1291 -f 1270/1669/1332 1269/1668/1331 1272/1674/1336 -f 1237/1639/1109 1236/1643/1110 1231/1634/1110 -f 1255/1655/1111 1257/1657/1112 1242/1644/1112 -f 1264/1663/1113 1237/1639/1109 1230/1633/1109 -f 1253/1653/1114 1255/1655/1111 1239/1641/1111 -f 1249/1650/1115 1253/1653/1114 1234/1637/1114 -f 1269/1668/1116 1266/1665/1117 1250/1652/1117 -f 1246/1647/1118 1249/1650/1115 1233/1635/1115 -f 1272/1674/1337 1269/1668/1116 1268/1670/1116 -f 1244/1645/1120 1246/1647/1118 1229/1632/1118 -f 1262/1672/481 1272/1674/1337 1263/1667/1337 -f 1241/1675/1121 1244/1645/1120 1228/1636/1120 -f 1259/1659/1338 1262/1672/481 1260/1662/481 -f 1236/1643/1110 1241/2127/1121 1232/1677/1121 -f 1257/1657/1112 1259/1659/1338 1247/1649/1338 -f 1266/1665/1117 1264/1663/1113 1251/1673/1113 -f 1273/1678/1124 1274/1730/1123 1275/1679/1123 -f 1128/1681/1339 1129/2128/1344 1158/1682/1340 -f 1133/1684/1342 1137/1694/1132 1167/1685/1126 -f 1147/1687/1128 1151/1696/1345 1181/1688/1129 -f 1129/1690/1344 1133/1684/1342 1163/1686/1343 -f 1147/1687/1128 1177/1689/1130 1173/1692/1131 -f 1137/1694/1132 1141/1703/1113 1171/1695/1133 -f 1151/1696/1345 1128/1681/1339 1157/1683/1341 -f 1135/1697/1135 1165/1563/1144 1161/1558/958 -f 1149/1699/1138 1179/1581/1146 1175/1577/1139 -f 1143/1701/1114 1173/1571/1131 1169/1567/1140 -f 1141/1703/1113 1145/2129/1139 1175/1704/1139 -f 1139/1702/1141 1169/1567/1140 1165/1563/1144 -f 1124/1705/974 1153/1552/974 1179/1581/1146 -f 1128/1706/1346 1277/1739/1346 1278/1707/1347 -f 1279/1709/1348 1280/1753/1349 1135/1710/1349 -f 1282/1712/1350 1283/1735/1350 1284/1713/1154 -f 1141/1715/1352 1285/1750/1352 1286/1716/1353 -f 1287/1718/1354 1285/1750/1352 1141/1715/1352 -f 1289/1720/1161 1290/1774/1397 1291/1721/1355 -f 1147/1723/1357 1292/1745/1357 1293/1724/1358 -f 1294/1726/1360 1295/1747/1361 1125/1727/1361 -f 1296/1729/1362 1297/1762/1362 1275/1679/1123 -f 1133/1731/1363 1298/1742/1398 1299/1732/1364 -f 1143/1725/1359 1293/1724/1358 1279/1709/1348 -f 1300/1734/1201 1301/1760/1201 1283/1735/1350 -f 1278/1707/1347 1292/1745/1357 1147/1723/1357 -f 1302/1736/1366 1287/1718/1354 1145/1719/1354 -f 1303/1738/1367 1304/1756/1389 1277/1739/1368 -f 1302/1736/1370 1297/1755/1388 1275/1740/1371 -f 1305/1741/1373 1306/1748/1383 1298/1742/1374 -f 1293/1724/1131 1290/2130/1114 1291/1743/1111 -f 1307/1744/1377 1308/1751/1384 1292/1745/1378 -f 1294/1726/1380 1283/1758/1391 1284/1746/1381 -f 1306/1748/1383 1303/1738/1367 1299/1732/1369 -f 1287/1718/1372 1275/1740/1371 1276/1749/1133 -f 1308/1751/1384 1290/2130/1114 1293/1724/1131 -f 1279/1709/1376 1291/1743/1111 1301/1752/1385 -f 1276/1749/1133 1305/1741/1373 1286/1716/1375 -f 1309/1754/1387 1310/1757/1390 1297/1755/1388 -f 1304/1756/1389 1307/1744/1377 1278/1707/1379 -f 1295/1747/1382 1284/1746/1381 1310/1757/1390 -f 1280/1753/1386 1301/1752/1385 1283/1758/1391 -f 1309/1754/1392 1302/1736/1366 1149/1737/1366 -f 1288/1722/1356 1291/1721/1355 1301/1760/1201 -f 1295/1747/1361 1309/1754/1392 1124/1759/1393 -f 1296/1729/1362 1311/1766/1206 1310/1761/1394 -f 1312/1763/1205 1313/1773/1395 1303/1764/1395 -f 1281/1714/1351 1284/1713/1154 1310/1761/1394 -f 1315/1767/1208 1305/1776/1208 1306/1768/1396 -f 1316/1770/1209 1317/1777/1210 1307/1771/1210 -f 1313/1773/1395 1314/1769/1396 1306/1768/1396 -f 1289/1720/1161 1316/1770/1209 1308/1772/1209 -f 1129/1775/1365 1299/1732/1364 1277/1739/1346 -f 1273/1678/1124 1276/1680/1124 1305/1776/1208 -f 1280/1753/1349 1294/1726/1360 1131/1728/1360 -f 1137/1717/1353 1286/1716/1353 1298/1742/1398 -f 1317/1777/1210 1312/1763/1205 1304/1765/1205 -f 1290/1778/1399 1291/1795/1227 1318/1779/1212 -f 1308/1781/1400 1320/1793/1409 1321/1782/1214 -f 1283/1784/1401 1284/1805/1236 1322/1785/1217 -f 1303/1787/1403 1324/1806/1237 1325/1788/1404 -f 1275/1790/1406 1276/1798/1407 1326/1791/1407 -f 1290/1778/1399 1319/1780/1399 1320/1793/1409 -f 1328/1794/1226 1318/1779/1212 1291/1795/1227 -f 1305/1797/1410 1329/1808/1416 1326/1791/1407 -f 1330/1799/1411 1331/1804/1415 1310/1800/1412 -f 1307/1783/1215 1321/1782/1214 1332/1802/1413 -f 1331/1804/1415 1322/1785/1217 1284/1805/1236 -f 1301/1796/1228 1283/1784/1401 1323/1786/1402 -f 1304/1803/1414 1332/1802/1413 1324/1806/1237 -f 1297/1801/1232 1275/1790/1406 1327/1792/1408 -f 1306/1789/1405 1325/1788/1404 1329/1808/1416 -f 1348/1824/1433 1343/1819/1425 1342/1818/1424 -f 1350/1826/1435 1349/1825/1434 1348/1824/1433 -f 1357/1833/1442 1358/1839/1442 1359/1834/1443 -f 1365/1838/1446 1361/2131/1569 1337/1836/1444 -f 1361/2131/1569 1358/2132/1570 1337/1836/1444 -f 1358/2132/1570 1362/2133/481 1333/2134/1571 -f 1362/2133/481 1363/2135/1572 1333/2134/1571 -f 1358/2132/1570 1333/2134/1571 1336/2136/1573 -f 1358/2132/1570 1336/2136/1573 1337/1836/1444 -f 1358/1839/1442 1357/1833/1442 1366/1840/476 -f 1359/1842/1447 1367/2137/1574 487/1843/1448 -f 1369/1845/1450 1370/1862/1451 1367/1846/1451 -f 1358/1848/1453 1361/2138/1453 1367/1849/1453 -f 1357/1851/1454 1360/2139/1454 1370/1852/1454 -f 1371/1854/1455 1368/2140/1455 487/1855/1455 -f 1360/1857/1456 1371/2141/1575 488/1858/1457 -f 1359/1860/1443 1368/2140/476 1371/1854/476 -f 1370/1862/1451 488/1856/1459 487/1855/1459 -f 1369/1867/1464 1339/2142/1576 1341/2143/1577 -f 1339/2142/1578 1340/2144/1578 1341/2143/1578 -f 1366/1866/1463 1357/2145/1579 1369/1867/1464 -f 1369/1867/1464 1341/2143/1577 1372/2146/1580 -f 1369/1867/1464 1372/2146/1580 1342/2147/1581 -f 1369/1867/1464 1342/2147/1581 1344/2148/1582 -f 1369/1867/1464 1344/2148/1582 1373/1865/1462 -f 1352/2149/1583 1374/2150/1584 1356/2151/1585 -f 1374/2150/1584 1338/2152/1586 1356/2151/1585 -f 1338/2152/1586 1335/2153/1587 1354/2154/1588 -f 1335/2153/1587 1334/2155/1589 1354/2154/1588 -f 1338/2152/1586 1355/2156/1590 1356/2151/1585 -f 1334/2155/1589 1363/2157/1591 1362/2158/1592 -f 1334/2155/1589 1362/2158/1592 1366/1870/480 -f 1355/2156/1590 1338/2152/1586 1351/2159/1593 -f 1351/2159/1593 1338/2152/1586 1354/2154/1588 -f 1373/1871/1467 1347/2160/1594 1353/1872/1468 -f 1353/1872/1468 1354/2154/1588 1334/2155/1589 -f 1353/1872/1468 1334/2155/1589 1366/1870/480 -f 1238/2161/1298 1265/2162/1327 1267/2163/1329 -f 1267/2163/1329 1270/2164/1332 1271/2165/1334 -f 1271/2165/1334 1261/2166/1324 1258/1874/1322 -f 1258/1874/1322 1256/2167/1320 1254/2168/1318 -f 1254/2168/1318 1252/2169/1316 1258/1874/1322 -f 1252/2169/1316 1248/1875/1311 1258/1874/1322 -f 1248/1875/1311 1245/2170/1308 1235/1876/1296 -f 1245/2170/1308 1243/2171/1306 1235/1876/1296 -f 1243/2171/1306 1240/2172/1301 1235/1876/1296 -f 1235/1876/1296 1238/2161/1298 1267/2163/1329 -f 1267/2163/1329 1271/2165/1334 1235/1876/1296 -f 1271/2165/1334 1258/1874/1322 1235/1876/1296 -f 1028/2173/1066 1055/2174/1097 1057/1877/1099 -f 1057/1877/1099 1060/2175/1103 1048/1878/1091 -f 1060/2175/1103 1061/2176/1105 1048/1878/1091 -f 1061/2176/1105 1051/2177/1093 1048/1878/1091 -f 1048/1878/1091 1046/2178/1089 1038/1879/1080 -f 1046/2178/1089 1044/2179/1087 1038/1879/1080 -f 1044/2179/1087 1042/2180/1085 1038/1879/1080 -f 1038/1879/1080 1035/2181/1076 1033/2182/1074 -f 1033/2182/1074 1030/2183/1069 1038/1879/1080 -f 1030/2183/1069 1025/2184/1064 1038/1879/1080 -f 1025/2184/1064 1028/2173/1066 1057/1877/1099 -f 1025/2184/1064 1057/1877/1099 1038/1879/1080 -f 487/1882/481 476/2185/474 482/1880/481 -f 476/2185/474 475/2186/475 482/1880/481 -f 566/2187/1595 540/2188/1596 572/2189/1597 -f 540/2188/1596 494/2190/1598 547/2191/1599 -f 548/2192/1600 540/2188/1596 547/2191/1599 -f 494/2190/1598 491/2193/1601 547/2191/1599 -f 535/2194/1602 536/2195/1603 567/2196/1604 -f 536/2195/1603 565/1885/1472 554/2197/1605 -f 559/2198/1606 536/2195/1603 557/2199/1607 -f 567/2196/1604 561/2200/1608 535/2194/1602 -f 559/2198/1606 567/2196/1604 536/2195/1603 -f 540/2188/1596 548/2192/1600 570/2201/1609 -f 540/2188/1596 570/2201/1609 572/2189/1597 -f 557/2199/1607 536/2195/1603 554/2197/1605 -f 565/1885/1472 566/2187/1595 578/1883/1470 -f 566/2187/1595 572/2189/1597 574/2202/1610 -f 553/2203/1611 554/2197/1605 565/1885/1472 -f 566/2187/1595 574/2202/1610 576/2204/1612 -f 566/2187/1595 576/2204/1612 578/1883/1470 -f 580/1884/1471 553/2203/1611 565/1885/1472 -f 1361/1847/1452 1365/2205/1613 1364/1886/1473 -f 1364/1886/1473 1374/2150/1614 1346/2206/1615 -f 1374/2150/1614 1352/2149/1616 1346/2206/1615 -f 1346/2206/1615 1339/1887/1474 1364/1886/1473 -f 1339/1887/1474 1369/1845/1450 1361/1847/1452 -f 819/1890/482 841/2207/482 845/1888/482 -f 841/2207/482 854/2208/482 850/2209/482 -f 845/1888/482 841/2207/482 846/2210/482 -f 854/2208/482 840/2211/482 850/2209/482 -f 840/2211/482 839/2212/482 850/2209/482 -f 839/2212/482 843/2213/482 851/2214/482 -f 843/2213/482 842/2215/482 851/2214/482 -f 853/2216/482 844/2217/482 820/2218/482 -f 848/2219/482 853/2216/482 820/2218/482 -f 839/2212/482 851/2214/482 850/2209/482 -f 848/2219/482 820/2218/482 849/2220/482 -f 820/2218/482 819/1890/482 849/2220/482 -f 850/2209/482 852/2221/482 841/2207/482 -f 852/2221/482 846/2210/482 841/2207/482 -f 847/1889/482 849/2220/482 819/1890/482 -f 481/1891/482 480/2222/477 484/1892/477 -f 488/1893/482 490/2223/482 481/1891/482 -f 853/1894/1475 824/1109/875 823/1895/1476 -f 80/1897/84 73/2224/1617 485/2225/1618 -f 485/2225/1618 16/1898/1478 80/1897/84 -f 16/1898/1478 15/2226/14 89/1896/83 -f 14/2227/13 13/2228/1619 486/1899/1479 -f 486/1899/1479 485/2229/1620 53/1900/53 -f 485/2229/1620 73/2230/73 54/2231/51 -f 485/2229/1620 54/2231/51 53/1900/53 -f 84/1901/77 14/2227/13 486/1899/1479 -o boolets_Cylinder.008 -v -0.589670 0.462960 0.317325 -v -0.589670 0.398760 0.288740 -v -0.717905 0.398760 0.288740 -v -0.717905 0.462960 0.317325 -v 0.008600 0.523475 -0.024120 -v 0.008600 0.488525 -0.084650 -v -0.589530 0.489220 -0.085270 -v -0.589530 0.524355 -0.024410 -v 0.008600 0.218055 0.111860 -v 0.008600 0.264825 0.163800 -v -0.589530 0.264275 0.164550 -v -0.589530 0.217250 0.112325 -v 0.008600 0.431985 -0.125730 -v -0.589530 0.432360 -0.126580 -v 0.008600 0.328675 0.192225 -v -0.589530 0.328480 0.193135 -v 0.008600 0.363620 -0.140260 -v -0.589530 0.363620 -0.141190 -v 0.008600 0.398565 0.192225 -v -0.589530 0.398760 0.193135 -v 0.008600 0.295255 -0.125730 -v -0.589530 0.294875 -0.126580 -v 0.008600 0.462415 0.163800 -v -0.589530 0.462960 0.164550 -v 0.008600 0.238710 -0.084650 -v -0.589530 0.238020 -0.085270 -v 0.008600 0.509180 0.111860 -v -0.589530 0.509985 0.112325 -v 0.008600 0.203765 -0.024120 -v -0.589530 0.202880 -0.024410 -v 0.008600 0.530780 0.045390 -v -0.589530 0.531705 0.045485 -v 0.008600 0.196460 0.045390 -v -0.589530 0.195535 0.045485 -v -0.717380 0.400240 0.015920 -v -0.717410 0.547770 -0.032015 -v -0.717410 0.507510 -0.101745 -v -0.717390 0.392235 0.002055 -v -0.717410 0.171050 0.048060 -v -0.699540 0.197310 0.045300 -v -0.699540 0.218795 0.111430 -v -0.717410 0.195930 0.124635 -v -0.717365 0.330270 0.047075 -v -0.717410 0.249805 0.184465 -v -0.717415 0.340985 0.058975 -v -0.717410 0.442375 -0.149070 -v -0.717340 0.379280 -0.007360 -v -0.717410 0.323360 0.217215 -v -0.717385 0.355610 0.065485 -v -0.717410 0.363620 -0.165810 -v -0.717410 0.363620 -0.010690 -v -0.717410 0.403875 0.217215 -v -0.717390 0.371625 0.065485 -v -0.717410 0.284865 -0.149070 -v -0.717455 0.347955 -0.007360 -v -0.717410 0.477430 0.184465 -v -0.717345 0.386255 0.058975 -v -0.717410 0.219725 -0.101745 -v -0.717465 0.335000 0.002055 -v -0.717410 0.531305 0.124635 -v -0.717370 0.396965 0.047075 -v -0.717410 0.179470 -0.032015 -v -0.717470 0.326995 0.015920 -v -0.717410 0.556185 0.048060 -v -0.717350 0.401915 0.031845 -v -0.717435 0.325320 0.031845 -v -0.699540 0.522660 -0.023855 -v -0.699540 0.487890 -0.084075 -v -0.699540 0.265325 0.163105 -v -0.699540 0.431635 -0.124950 -v -0.699540 0.328850 0.191390 -v -0.699540 0.363620 -0.139405 -v -0.699540 0.398385 0.191390 -v -0.699540 0.295600 -0.124950 -v -0.699540 0.461910 0.163105 -v -0.699540 0.239345 -0.084075 -v -0.699540 0.508440 0.111430 -v -0.699540 0.204580 -0.023855 -v -0.699540 0.529930 0.045300 -v -0.717765 0.294875 -0.126580 -v -0.717765 0.363620 -0.141190 -v -0.717765 0.524355 -0.024410 -v -0.717765 0.531705 0.045485 -v -0.717765 0.202880 -0.024410 -v -0.717765 0.238020 -0.085270 -v -0.717765 0.489220 -0.085270 -v -0.717765 0.432360 -0.126580 -v -0.717765 0.195535 0.045485 -v -0.717765 0.509985 0.112325 -v -0.717765 0.462960 0.164550 -v -0.717765 0.328480 0.193135 -v -0.717765 0.264275 0.164550 -v -0.717765 0.398760 0.193135 -v -0.717765 0.217250 0.112325 -v -0.717130 0.392235 0.002055 -v -0.716850 0.377665 0.015175 -v -0.716700 0.381595 0.021980 -v -0.716990 0.400240 0.015920 -v -0.717155 0.340985 0.058975 -v -0.716915 0.352510 0.043110 -v -0.717075 0.347250 0.037270 -v -0.717030 0.371305 0.010555 -v -0.717095 0.355610 0.065485 -v -0.716800 0.359690 0.046305 -v -0.717125 0.363620 0.008920 -v -0.716965 0.371625 0.065485 -v -0.716790 0.367550 0.046305 -v -0.717235 0.355930 0.010555 -v -0.717000 0.386255 0.058975 -v -0.716615 0.374725 0.043110 -v -0.717290 0.349575 0.015175 -v -0.716905 0.396965 0.047075 -v -0.716700 0.379985 0.037270 -v -0.717265 0.345645 0.021980 -v -0.716980 0.401915 0.031845 -v -0.716630 0.382415 0.029795 -v -0.717215 0.344825 0.029795 -v -0.717175 0.355930 0.010555 -v -0.717185 0.349575 0.015175 -v -0.717190 0.345645 0.021980 -v -0.717130 0.344825 0.029795 -v -0.716865 0.352510 0.043110 -v -0.716795 0.359690 0.046305 -v -0.716585 0.367550 0.046305 -v -0.716615 0.374725 0.043110 -v -0.716480 0.379985 0.037270 -v -0.716590 0.382415 0.029795 -v -0.716595 0.381595 0.021980 -v -0.716755 0.377665 0.015175 -v -0.716900 0.371305 0.010555 -v 0.008460 0.523475 0.506000 -v -0.589670 0.524355 0.506285 -v -0.589670 0.489220 0.567150 -v 0.008460 0.488525 0.566525 -v 0.008460 0.218055 0.370020 -v -0.589670 0.217250 0.369555 -v -0.589670 0.264275 0.317325 -v 0.008460 0.264825 0.318080 -v -0.589670 0.432360 0.608455 -v 0.008460 0.431985 0.607605 -v -0.589670 0.328480 0.288740 -v 0.008460 0.328670 0.289650 -v -0.589670 0.363620 0.623070 -v 0.008460 0.363620 0.622140 -v 0.008460 0.398565 0.289650 -v -0.589670 0.294875 0.608455 -v 0.008460 0.295255 0.607605 -v 0.008460 0.462415 0.318080 -v -0.589670 0.238020 0.567150 -v 0.008460 0.238710 0.566525 -v -0.589670 0.509985 0.369555 -v 0.008460 0.509180 0.370020 -v -0.589670 0.202880 0.506285 -v 0.008460 0.203765 0.506000 -v -0.589670 0.531705 0.436390 -v 0.008460 0.530780 0.436490 -v -0.589670 0.195535 0.436390 -v 0.008460 0.196460 0.436490 -v -0.717335 0.400240 0.465960 -v -0.717330 0.392235 0.479825 -v -0.717550 0.507510 0.583620 -v -0.717550 0.547770 0.513890 -v -0.717550 0.171050 0.433820 -v -0.717550 0.195930 0.357245 -v -0.699680 0.218795 0.370445 -v -0.699680 0.197310 0.436580 -v -0.717620 0.330270 0.434805 -v -0.717600 0.340985 0.422905 -v -0.717550 0.249805 0.297410 -v -0.717360 0.379280 0.489235 -v -0.717550 0.442375 0.630945 -v -0.717525 0.355610 0.416390 -v -0.717550 0.323360 0.264660 -v -0.717395 0.363620 0.492565 -v -0.717550 0.363620 0.647685 -v -0.717370 0.371625 0.416390 -v -0.717550 0.403875 0.264660 -v -0.717435 0.347955 0.489235 -v -0.717550 0.284865 0.630945 -v -0.717435 0.386255 0.422905 -v -0.717375 0.335000 0.479825 -v -0.717550 0.219725 0.583620 -v -0.717395 0.396965 0.434805 -v -0.717550 0.531305 0.357245 -v -0.717550 0.477430 0.297410 -v -0.717525 0.326995 0.465960 -v -0.717550 0.179470 0.513890 -v -0.717355 0.401915 0.450035 -v -0.717550 0.556185 0.433820 -v -0.717600 0.325320 0.450035 -v -0.699680 0.487890 0.565955 -v -0.699680 0.522660 0.505735 -v -0.699680 0.265325 0.318770 -v -0.699680 0.431635 0.606825 -v -0.699680 0.328850 0.290485 -v -0.699680 0.363620 0.621285 -v -0.699680 0.398385 0.290485 -v -0.699680 0.295600 0.606825 -v -0.699680 0.461910 0.318770 -v -0.699680 0.239345 0.565955 -v -0.699680 0.508440 0.370445 -v -0.699680 0.204580 0.505735 -v -0.699680 0.529925 0.436580 -v -0.717905 0.363620 0.623070 -v -0.717905 0.294875 0.608455 -v -0.717905 0.531705 0.436390 -v -0.717905 0.524355 0.506285 -v -0.717905 0.238020 0.567150 -v -0.717905 0.202880 0.506285 -v -0.717905 0.489220 0.567150 -v -0.717905 0.432360 0.608455 -v -0.717905 0.195535 0.436390 -v -0.717905 0.509985 0.369555 -v -0.717905 0.264275 0.317325 -v -0.717905 0.328480 0.288740 -v -0.717905 0.217250 0.369555 -v -0.716650 0.392235 0.479825 -v -0.716635 0.400240 0.465960 -v -0.716145 0.381590 0.459900 -v -0.716125 0.377665 0.466705 -v -0.717475 0.347250 0.444610 -v -0.717430 0.352510 0.438770 -v -0.716695 0.379280 0.489235 -v -0.716250 0.371305 0.471325 -v -0.717255 0.359690 0.435570 -v -0.716845 0.363620 0.492565 -v -0.716400 0.363620 0.472955 -v -0.716905 0.367550 0.435570 -v -0.717030 0.347955 0.489235 -v -0.716665 0.355930 0.471325 -v -0.717030 0.386255 0.422905 -v -0.716655 0.374725 0.438770 -v -0.716905 0.349575 0.466705 -v -0.716830 0.396965 0.434805 -v -0.716410 0.379985 0.444610 -v -0.717260 0.345645 0.459900 -v -0.716705 0.401915 0.450035 -v -0.716225 0.382415 0.452085 -v -0.717430 0.344820 0.452085 -v -0.716250 0.363620 0.472955 -v -0.716015 0.371305 0.471325 -v -0.715935 0.377665 0.466705 -v -0.715910 0.381590 0.459900 -v -0.716030 0.382415 0.452085 -v -0.716230 0.379985 0.444610 -v -0.716525 0.374725 0.438770 -v -0.716520 0.355930 0.471325 -vt 0.680521 0.406246 -vt 0.652061 0.430658 -vt 0.664534 0.402365 -vt 0.680997 0.433791 +f 705/1155/972 707/1156/973 708/1157/974 +f 708/1157/974 709/1158/975 710/1159/976 +f 710/1159/976 711/1160/977 712/1161/978 +f 712/1161/978 713/1162/979 714/1163/980 +f 714/1163/980 715/1164/981 716/1165/982 +f 716/1165/982 717/1166/983 718/1167/984 +f 719/1168/985 721/1169/986 722/1170/987 +f 721/1169/986 724/1171/988 722/1170/987 +f 723/1172/989 726/1173/990 724/1171/988 +f 726/1173/990 727/1174/991 728/1175/992 +f 728/1175/992 729/1176/993 730/1177/994 +f 729/1176/993 732/1178/995 730/1177/994 +f 731/1179/996 734/1180/997 732/1178/995 +f 733/1181/998 736/1182/999 734/1180/1000 +f 735/1183/1001 738/1184/1002 736/1182/999 +f 737/1185/1003 740/1186/1004 738/1184/1002 +f 739/1187/1005 742/1188/1006 740/1186/1004 +f 742/1188/1006 743/1189/1007 744/1190/1008 +f 744/1190/1008 745/1191/1009 746/1192/1010 +f 746/1192/1010 747/1193/1011 748/1194/1012 +f 748/1194/1012 749/1195/1013 750/1196/1014 +f 750/1196/1015 751/1197/1016 752/1198/1017 +f 752/1198/1017 753/1199/1018 754/1200/1019 +f 753/1199/1018 756/1201/1020 754/1200/1019 +f 755/1202/1021 705/1155/972 756/1201/1020 +f 758/1203/1022 760/1204/1023 757/1205/1024 +f 761/1206/1025 763/1207/1026 759/1208/1027 +f 728/1175/992 764/1209/1028 765/1210/1029 +f 748/1194/1012 767/1211/1030 746/1192/1010 +f 714/1163/980 768/1212/1031 769/1213/1032 +f 722/1170/987 771/1214/1033 719/1168/985 +f 738/1184/1002 772/1215/1034 773/1216/1035 +f 708/1157/974 775/1217/1036 705/1155/972 +f 705/1155/972 776/1218/1037 756/1201/1020 +f 758/1203/1022 761/1206/1025 759/1208/1027 +f 730/1177/994 778/1219/1038 764/1209/1028 +f 750/1196/1015 766/1220/1039 748/1194/1012 +f 718/1167/984 768/1212/1031 716/1165/982 +f 724/1171/988 770/1221/1040 722/1170/987 +f 740/1186/1004 782/1222/1041 772/1215/1034 +f 708/1157/974 783/1223/1042 774/1224/1043 +f 777/1225/1044 785/1226/1045 761/1206/1025 +f 732/1178/995 786/1227/1046 778/1219/1038 +f 752/1198/1017 779/1228/1047 750/1196/1015 +f 788/1229/1048 780/1230/1049 718/1167/984 +f 724/1171/988 790/1231/1050 781/1232/1051 +f 742/1188/1006 791/1233/1052 782/1222/1041 +f 710/1159/976 792/1234/1053 783/1223/1042 +f 793/1235/1054 785/1226/1045 784/1236/1055 +f 734/1180/997 795/1237/1056 786/1227/1046 +f 754/1200/1019 787/1238/1057 752/1198/1017 +f 757/1205/1024 789/1239/1058 788/1229/1048 +f 726/1173/990 765/1210/1029 790/1231/1050 +f 744/1190/1008 767/1211/1030 791/1233/1052 +f 712/1161/978 769/1213/1032 792/1234/1053 +f 719/1168/985 794/1240/1059 793/1241/1054 +f 736/1182/999 773/1216/1035 795/1237/1056 +f 756/1201/1020 796/1242/1060 754/1200/1019 +f 798/1243/1061 800/1244/1062 797/1245/1063 +f 772/1215/1034 801/1246/1064 802/1247/1065 +f 785/1226/1045 762/1248/1066 761/1206/1025 +f 782/1222/1041 804/1249/1067 801/1246/1064 +f 794/1250/1059 803/1251/1068 785/1226/1045 +f 791/1233/1052 805/1252/1069 804/1249/1067 +f 771/1214/1033 797/1245/1063 794/1240/1059 +f 766/1220/1039 805/1252/1069 767/1211/1030 +f 770/1221/1040 798/1243/1061 771/1214/1033 +f 775/1217/1036 808/1253/1070 809/1254/1071 +f 766/1220/1039 810/1255/1072 806/1256/1073 +f 781/1232/1051 807/1257/1074 770/1221/1040 +f 774/1224/1043 812/1258/1075 808/1253/1070 +f 779/1228/1047 813/1259/1076 810/1255/1072 +f 790/1231/1050 811/1260/1077 781/1232/1051 +f 783/1223/1042 815/1261/1078 812/1258/1075 +f 787/1238/1057 816/1262/1079 813/1259/1076 +f 765/1210/1029 814/1263/1080 790/1231/1050 +f 792/1234/1053 818/1264/1081 815/1261/1078 +f 796/1242/1060 819/1265/1082 816/1262/1079 +f 764/1209/1028 817/1266/1083 765/1210/1029 +f 769/1213/1032 821/1267/1084 818/1264/1081 +f 776/1218/1037 809/1254/1071 819/1265/1082 +f 778/1219/1038 820/1268/1085 764/1209/1028 +f 768/1212/1031 823/1269/1086 821/1267/1084 +f 786/1227/1046 822/1270/1087 778/1219/1038 +f 780/1230/1049 825/1271/1088 823/1269/1086 +f 795/1237/1056 824/1272/1089 786/1227/1046 +f 760/1204/1023 825/1271/1088 789/1239/1058 +f 773/1216/1035 826/1273/1090 795/1237/1056 +f 759/1208/1027 827/1274/1091 760/1204/1023 +f 773/1216/1035 802/1247/1065 828/1275/1092 +f 830/1276/1093 832/1277/1094 829/1278/1095 +f 805/1252/1069 833/1279/1096 834/1280/1097 +f 807/1257/1074 799/1281/1098 798/1243/1061 +f 809/1254/1071 836/1282/1099 837/1283/1100 +f 806/1256/1073 838/1284/1101 833/1279/1096 +f 811/1260/1077 835/1285/1102 807/1257/1074 +f 808/1253/1070 839/1286/1103 836/1282/1099 +f 810/1255/1072 840/1287/1104 838/1284/1101 +f 814/1263/1080 829/1278/1095 811/1260/1077 +f 812/1258/1075 841/1288/1105 839/1286/1103 +f 813/1259/1076 842/1289/1106 840/1287/1104 +f 817/1266/1083 830/1276/1093 814/1263/1080 +f 815/1261/1078 844/1290/1107 841/1288/1105 +f 816/1262/1079 845/1291/1108 842/1289/1106 +f 820/1268/1085 843/1292/1109 817/1266/1083 +f 818/1264/1081 847/1293/1110 844/1290/1107 +f 819/1265/1082 837/1283/1100 845/1291/1108 +f 822/1270/1087 846/1294/1111 820/1268/1085 +f 821/1267/1084 849/1295/1112 847/1293/1110 +f 824/1272/1089 848/1296/1113 822/1270/1087 +f 823/1269/1086 851/1297/1114 849/1295/1112 +f 826/1273/1090 850/1298/1115 824/1272/1089 +f 825/1271/1088 853/1299/1116 851/1297/1114 +f 828/1275/1092 852/1300/1117 826/1273/1090 +f 763/1207/1026 853/1299/1116 827/1274/1091 +f 828/1275/1092 856/1301/1118 854/1302/1119 +f 762/1248/1066 855/1303/1120 763/1207/1026 +f 802/1247/1065 858/1304/1121 856/1301/1118 +f 803/1251/1068 857/1305/1122 762/1248/1066 +f 804/1249/1067 858/1304/1121 801/1246/1064 +f 797/1306/1063 859/1307/1123 803/1251/1068 +f 805/1252/1069 860/1308/1124 804/1249/1067 +f 862/1309/1125 864/1310/1126 861/1311/1127 +f 839/1286/1103 865/1312/1128 866/1313/1129 +f 840/1287/1104 867/1314/1130 868/1315/1131 +f 843/1292/1109 831/1316/1132 830/1276/1093 +f 841/1288/1105 870/1317/1133 865/1312/1128 +f 842/1289/1106 871/1318/1134 867/1314/1130 +f 846/1294/1111 869/1319/1135 843/1292/1109 +f 844/1290/1107 872/1320/1136 870/1317/1133 +f 845/1291/1108 873/1321/1137 871/1318/1134 +f 848/1296/1113 861/1311/1127 846/1294/1111 +f 847/1293/1110 874/1322/1138 872/1320/1136 +f 850/1298/1115 862/1309/1125 848/1296/1113 +f 849/1295/1112 876/1323/1139 874/1322/1138 +f 852/1300/1117 875/1324/1140 850/1298/1115 +f 851/1297/1114 878/1325/1141 876/1323/1139 +f 854/1302/1119 877/1326/1142 852/1300/1117 +f 855/1303/1120 878/1325/1141 853/1299/1116 +f 854/1302/1119 881/1327/1143 879/1328/1144 +f 857/1305/1122 880/1329/1145 855/1303/1120 +f 856/1301/1118 883/1330/1146 881/1327/1143 +f 859/1307/1123 882/1331/1147 857/1305/1122 +f 860/1308/1124 883/1330/1146 858/1304/1121 +f 800/1332/1062 884/1333/1148 859/1307/1123 +f 860/1308/1124 887/1334/1149 885/1335/1150 +f 799/1281/1098 886/1336/1151 800/1244/1062 +f 834/1280/1097 889/1337/1152 887/1334/1149 +f 835/1285/1102 888/1338/1153 799/1281/1098 +f 837/1283/1100 891/1339/1154 873/1321/1137 +f 833/1279/1096 892/1340/1155 889/1337/1152 +f 829/1278/1095 890/1341/1156 835/1285/1102 +f 836/1282/1099 866/1313/1129 891/1339/1154 +f 838/1284/1101 868/1315/1131 892/1340/1155 +f 894/1342/1157 896/1343/1158 893/1344/1159 +f 872/1320/1136 897/1345/1160 898/1346/1161 +f 875/1324/1140 863/1347/1162 862/1309/1125 +f 874/1322/1138 900/1348/1163 897/1345/1160 +f 877/1326/1142 899/1349/1164 875/1324/1140 +f 876/1323/1139 901/1350/1165 900/1348/1163 +f 879/1328/1144 893/1344/1159 877/1326/1142 +f 880/1329/1145 901/1350/1165 878/1325/1141 +f 881/1327/1143 894/1342/1157 879/1328/1144 +f 882/1331/1147 902/1351/1166 880/1329/1145 +f 881/1327/1143 905/1352/1167 903/1353/1168 +f 884/1333/1148 904/1354/1169 882/1331/1147 +f 883/1330/1146 907/1355/1170 905/1352/1167 +f 886/1356/1151 906/1357/1171 884/1333/1148 +f 885/1335/1150 909/1358/1172 907/1355/1170 +f 888/1338/1153 908/1359/1173 886/1336/1151 +f 887/1334/1149 911/1360/1174 909/1358/1172 +f 890/1341/1156 910/1361/1175 888/1338/1153 +f 873/1321/1137 913/1362/1176 914/1363/1177 +f 889/1337/1152 915/1364/1178 911/1360/1174 +f 832/1277/1094 912/1365/1179 890/1341/1156 +f 891/1339/1154 917/1366/1180 913/1362/1176 +f 892/1340/1155 918/1367/1181 915/1364/1178 +f 831/1316/1132 916/1368/1182 832/1277/1094 +f 866/1313/1129 920/1369/1183 917/1366/1180 +f 868/1315/1131 921/1370/1184 918/1367/1181 +f 869/1319/1135 919/1371/1185 831/1316/1132 +f 865/1312/1128 923/1372/1186 920/1369/1183 +f 867/1314/1130 924/1373/1187 921/1370/1184 +f 861/1311/1127 922/1374/1188 869/1319/1135 +f 870/1317/1133 898/1346/1161 923/1372/1186 +f 871/1318/1134 914/1363/1177 924/1373/1187 +f 925/1375/1189 927/1376/1190 928/1377/1191 +f 902/1351/1166 930/1378/1192 901/1350/1165 +f 903/1353/1168 895/1379/1193 894/1342/1157 +f 904/1354/1169 929/1380/1194 902/1351/1166 +f 905/1352/1167 931/1381/1195 903/1353/1168 +f 906/1357/1171 932/1382/1196 904/1354/1169 +f 905/1352/1167 926/1383/1197 925/1375/1189 +f 908/1384/1173 933/1385/1198 906/1357/1171 +f 907/1355/1170 935/1386/1199 926/1383/1197 +f 910/1361/1175 934/1387/1200 908/1359/1173 +f 909/1358/1172 937/1388/1201 935/1386/1199 +f 912/1365/1179 936/1389/1202 910/1361/1175 +f 914/1363/1177 939/1390/1203 940/1391/1204 +f 911/1360/1174 941/1392/1205 937/1388/1201 +f 916/1368/1182 938/1393/1206 912/1365/1179 +f 913/1362/1176 943/1394/1207 939/1390/1203 +f 915/1364/1178 944/1395/1208 941/1392/1205 +f 919/1371/1185 942/1396/1209 916/1368/1182 +f 917/1366/1180 946/1397/1210 943/1394/1207 +f 918/1367/1181 947/1398/1211 944/1395/1208 +f 922/1374/1188 945/1399/1212 919/1371/1185 +f 920/1369/1183 949/1400/1213 946/1397/1210 +f 921/1370/1184 950/1401/1214 947/1398/1211 +f 864/1310/1126 948/1402/1215 922/1374/1188 +f 923/1372/1186 952/1403/1216 949/1400/1213 +f 924/1373/1187 940/1391/1204 950/1401/1214 +f 863/1347/1162 951/1404/1217 864/1310/1126 +f 898/1346/1161 954/1405/1218 952/1403/1216 +f 899/1349/1164 953/1406/1219 863/1347/1162 +f 897/1345/1160 956/1407/1220 954/1405/1218 +f 893/1344/1159 955/1408/1221 899/1349/1164 +f 900/1348/1163 930/1378/1192 956/1407/1220 +f 957/1409/1222 959/1410/1223 960/1411/1224 +f 934/1412/1200 962/1413/1225 933/1385/1198 +f 926/1383/1197 963/1414/1226 927/1376/1190 +f 936/1389/1202 961/1415/1227 934/1387/1200 +f 935/1386/1199 965/1416/1228 963/1414/1226 +f 938/1393/1206 964/1417/1229 936/1389/1202 +f 940/1391/1204 967/1418/1230 968/1419/1231 +f 937/1388/1201 969/1420/1232 965/1416/1228 +f 942/1396/1209 966/1421/1233 938/1393/1206 +f 939/1390/1203 971/1422/1234 967/1418/1230 +f 941/1392/1205 972/1423/1235 969/1420/1232 +f 945/1399/1212 970/1424/1236 942/1396/1209 +f 943/1394/1207 974/1425/1237 971/1422/1234 +f 944/1395/1208 975/1426/1238 972/1423/1235 +f 948/1402/1215 973/1427/1239 945/1399/1212 +f 946/1397/1210 977/1428/1240 974/1425/1237 +f 947/1398/1211 978/1429/1241 975/1426/1238 +f 951/1404/1217 976/1430/1242 948/1402/1215 +f 949/1400/1213 980/1431/1243 977/1428/1240 +f 950/1401/1214 968/1419/1231 978/1429/1241 +f 953/1406/1219 979/1432/1244 951/1404/1217 +f 952/1403/1216 982/1433/1245 980/1431/1243 +f 955/1408/1221 981/1434/1246 953/1406/1219 +f 954/1405/1218 957/1409/1222 982/1433/1245 +f 896/1343/1158 983/1435/1247 955/1408/1221 +f 956/1407/1220 958/1436/1248 957/1409/1222 +f 895/1379/1193 984/1437/1249 896/1343/1158 +f 929/1380/1194 958/1436/1248 930/1378/1192 +f 931/1381/1195 985/1438/1250 895/1379/1193 +f 932/1382/1196 986/1439/1251 929/1380/1194 +f 925/1375/1189 987/1440/1252 931/1381/1195 +f 933/1385/1198 988/1441/1253 932/1382/1196 +f 990/1442/1254 992/1443/1255 989/1444/1256 +f 985/1438/1250 994/1445/1257 984/1437/1249 +f 986/1439/1251 959/1410/1223 958/1436/1248 +f 987/1440/1252 993/1446/1258 985/1438/1250 +f 988/1441/1253 995/1447/1259 986/1439/1251 +f 928/1377/1191 996/1448/1260 987/1440/1252 +f 962/1413/1225 989/1444/1256 988/1441/1253 +f 928/1377/1191 998/1449/1261 997/1450/1262 +f 961/1451/1227 990/1442/1254 962/1413/1225 +f 927/1376/1190 1000/1452/1263 998/1449/1261 +f 964/1417/1229 999/1453/1264 961/1415/1227 +f 963/1414/1226 1002/1454/1265 1000/1452/1263 +f 966/1421/1233 1001/1455/1266 964/1417/1229 +f 968/1419/1231 1004/1456/1267 1005/1457/1268 +f 965/1416/1228 1006/1458/1269 1002/1454/1265 +f 970/1424/1236 1003/1459/1270 966/1421/1233 +f 967/1418/1230 1008/1460/1271 1004/1456/1267 +f 969/1420/1232 1009/1461/1272 1006/1458/1269 +f 973/1427/1239 1007/1462/1273 970/1424/1236 +f 971/1422/1234 1011/1463/1274 1008/1460/1271 +f 972/1423/1235 1012/1464/1275 1009/1461/1272 +f 976/1430/1242 1010/1465/1276 973/1427/1239 +f 974/1425/1237 1014/1466/1277 1011/1463/1274 +f 975/1426/1238 1015/1467/1278 1012/1464/1275 +f 979/1432/1244 1013/1468/1279 976/1430/1242 +f 977/1428/1240 1017/1469/1280 1014/1466/1277 +f 978/1429/1241 1005/1457/1268 1015/1467/1278 +f 981/1434/1246 1016/1470/1281 979/1432/1244 +f 980/1431/1243 1019/1471/1282 1017/1469/1280 +f 983/1435/1247 1018/1472/1283 981/1434/1246 +f 982/1433/1245 960/1411/1224 1019/1471/1282 +f 984/1437/1249 1020/1473/1284 983/1435/1247 +f 1022/1474/1285 1024/1475/1286 1021/1476/1287 +f 997/1450/1262 1025/1477/1288 1026/1478/1289 +f 999/1479/1264 991/1480/1290 990/1442/1254 +f 998/1449/1261 1028/1481/1291 1025/1477/1288 +f 1001/1455/1266 1027/1482/1292 999/1453/1264 +f 1000/1452/1263 1029/1483/1293 1028/1481/1291 +f 1003/1459/1270 1021/1476/1287 1001/1455/1266 +f 1005/1457/1268 1030/1484/1294 1031/1485/1295 +f 1002/1454/1265 1032/1486/1296 1029/1483/1293 +f 1007/1462/1273 1022/1474/1285 1003/1459/1270 +f 1004/1456/1267 1034/1487/1297 1030/1484/1294 +f 1006/1458/1269 1035/1488/1298 1032/1486/1296 +f 1010/1465/1276 1033/1489/1299 1007/1462/1273 +f 1008/1460/1271 1037/1490/1300 1034/1487/1297 +f 1009/1461/1272 1038/1491/1301 1035/1488/1298 +f 1013/1468/1279 1036/1492/1302 1010/1465/1276 +f 1011/1463/1274 1040/1493/1303 1037/1490/1300 +f 1012/1464/1275 1041/1494/1304 1038/1491/1301 +f 1016/1470/1281 1039/1495/1305 1013/1468/1279 +f 1014/1466/1277 1043/1496/1306 1040/1493/1303 +f 1015/1467/1278 1031/1485/1295 1041/1494/1304 +f 1018/1472/1283 1042/1497/1307 1016/1470/1281 +f 1017/1469/1280 1045/1498/1308 1043/1496/1306 +f 1020/1473/1284 1044/1499/1309 1018/1472/1283 +f 1019/1471/1282 1047/1500/1310 1045/1498/1308 +f 994/1445/1257 1046/1501/1311 1020/1473/1284 +f 960/1411/1224 1049/1502/1312 1047/1500/1310 +f 993/1446/1258 1048/1503/1313 994/1445/1257 +f 995/1447/1259 1049/1502/1312 959/1410/1223 +f 996/1448/1260 1050/1504/1314 993/1446/1258 +f 989/1444/1256 1051/1505/1315 995/1447/1259 +f 997/1450/1262 1052/1506/1316 996/1448/1260 +f 1054/1507/1317 1056/1508/1318 1053/1509/1319 +f 1031/1485/1295 1057/1510/1320 1058/1511/1321 +f 1029/1483/1293 1059/1512/1322 1060/1513/1323 +f 1033/1489/1299 1023/1514/1324 1022/1474/1285 +f 1030/1484/1294 1062/1515/1325 1057/1510/1320 +f 1032/1486/1296 1063/1516/1326 1059/1512/1322 +f 1036/1492/1302 1061/1517/1327 1033/1489/1299 +f 1034/1487/1297 1064/1518/1328 1062/1515/1325 +f 1035/1488/1298 1065/1519/1329 1063/1516/1326 +f 1039/1495/1305 1053/1509/1319 1036/1492/1302 +f 1037/1490/1300 1066/1520/1330 1064/1518/1328 +f 1038/1491/1301 1067/1521/1331 1065/1519/1329 +f 1042/1497/1307 1054/1507/1317 1039/1495/1305 +f 1040/1493/1303 1069/1522/1332 1066/1520/1330 +f 1041/1494/1304 1058/1511/1321 1067/1521/1331 +f 1044/1499/1309 1068/1523/1333 1042/1497/1307 +f 1043/1496/1306 1071/1524/1334 1069/1522/1332 +f 1046/1501/1311 1070/1525/1335 1044/1499/1309 +f 1045/1498/1308 1073/1526/1336 1071/1524/1334 +f 1048/1503/1313 1072/1527/1337 1046/1501/1311 +f 1047/1500/1310 1075/1528/1338 1073/1526/1336 +f 1050/1504/1314 1074/1529/1339 1048/1503/1313 +f 1051/1505/1315 1075/1528/1338 1049/1502/1312 +f 1052/1506/1316 1076/1530/1340 1050/1504/1314 +f 992/1443/1255 1077/1531/1341 1051/1505/1315 +f 1026/1478/1289 1078/1532/1342 1052/1506/1316 +f 991/1480/1290 1079/1533/1343 992/1443/1255 +f 1026/1478/1289 1082/1534/1344 1080/1535/1345 +f 1027/1536/1292 1081/1537/1346 991/1480/1290 +f 1025/1477/1288 1084/1538/1347 1082/1534/1344 +f 1021/1476/1287 1083/1539/1348 1027/1482/1292 +f 1028/1481/1291 1060/1513/1323 1084/1538/1347 +f 1086/1540/1349 1088/1541/1350 1085/1542/1351 +f 1064/1518/1328 1089/1543/1352 1090/1544/1353 +f 1065/1519/1329 1091/1545/1354 1092/1546/1355 +f 1068/1523/1333 1055/1547/1356 1054/1507/1317 +f 1066/1520/1330 1094/1548/1357 1089/1543/1352 +f 1067/1521/1331 1095/1549/1358 1091/1545/1354 +f 1070/1525/1335 1093/1550/1359 1068/1523/1333 +f 1069/1522/1332 1096/1551/1360 1094/1548/1357 +f 1072/1527/1337 1085/1542/1351 1070/1525/1335 +f 1071/1524/1334 1097/1552/1361 1096/1551/1360 +f 1074/1529/1339 1086/1540/1349 1072/1527/1337 +f 1073/1526/1336 1099/1553/1362 1097/1552/1361 +f 1076/1530/1340 1098/1554/1363 1074/1529/1339 +f 1077/1531/1341 1099/1553/1362 1075/1528/1338 +f 1078/1532/1342 1100/1555/1364 1076/1530/1340 +f 1079/1533/1343 1101/1556/1365 1077/1531/1341 +f 1080/1535/1345 1102/1557/1366 1078/1532/1342 +f 1081/1537/1346 1103/1558/1367 1079/1533/1343 +f 1080/1535/1345 1106/1559/1368 1104/1560/1369 +f 1083/1561/1348 1105/1562/1370 1081/1537/1346 +f 1082/1534/1344 1108/1563/1371 1106/1559/1368 +f 1024/1475/1286 1107/1564/1372 1083/1539/1348 +f 1084/1538/1347 1110/1565/1373 1108/1563/1371 +f 1023/1514/1324 1109/1566/1374 1024/1475/1286 +f 1058/1511/1321 1112/1567/1375 1095/1549/1358 +f 1060/1513/1323 1113/1568/1376 1110/1565/1373 +f 1061/1517/1327 1111/1569/1377 1023/1514/1324 +f 1057/1510/1320 1115/1570/1378 1112/1567/1375 +f 1059/1512/1322 1116/1571/1379 1113/1568/1376 +f 1053/1509/1319 1114/1572/1380 1061/1517/1327 +f 1062/1515/1325 1090/1544/1353 1115/1570/1378 +f 1063/1516/1326 1092/1546/1355 1116/1571/1379 +f 1118/1573/1381 1120/1574/1382 1117/1575/1383 +f 1096/1551/1360 1121/1576/1384 1122/1577/1385 +f 1098/1554/1363 1087/1578/1386 1086/1540/1349 +f 1097/1552/1361 1124/1579/1387 1121/1576/1384 +f 1100/1555/1364 1123/1580/1388 1098/1554/1363 +f 1101/1556/1365 1124/1579/1387 1099/1553/1362 +f 1102/1557/1366 1117/1575/1383 1100/1555/1364 +f 1103/1558/1367 1125/1581/1389 1101/1556/1365 +f 1104/1560/1369 1118/1573/1381 1102/1557/1366 +f 1105/1562/1370 1126/1582/1390 1103/1558/1367 +f 1104/1560/1369 1129/1583/1391 1127/1584/1392 +f 1107/1585/1372 1128/1586/1393 1105/1562/1370 +f 1106/1559/1368 1131/1587/1394 1129/1583/1391 +f 1109/1566/1374 1130/1588/1395 1107/1564/1372 +f 1108/1563/1371 1133/1589/1396 1131/1587/1394 +f 1111/1569/1377 1132/1590/1397 1109/1566/1374 +f 1095/1549/1358 1135/1591/1398 1136/1592/1399 +f 1110/1565/1373 1137/1593/1400 1133/1589/1396 +f 1114/1572/1380 1134/1594/1401 1111/1569/1377 +f 1112/1567/1375 1139/1595/1402 1135/1591/1398 +f 1113/1568/1376 1140/1596/1403 1137/1593/1400 +f 1056/1508/1318 1138/1597/1404 1114/1572/1380 +f 1115/1570/1378 1142/1598/1405 1139/1595/1402 +f 1116/1571/1379 1143/1599/1406 1140/1596/1403 +f 1055/1547/1356 1141/1600/1407 1056/1508/1318 +f 1090/1544/1353 1145/1601/1408 1142/1598/1405 +f 1092/1546/1355 1146/1602/1409 1143/1599/1406 +f 1093/1550/1359 1144/1603/1410 1055/1547/1356 +f 1089/1543/1352 1148/1604/1411 1145/1601/1408 +f 1091/1545/1354 1136/1592/1399 1146/1602/1409 +f 1085/1542/1351 1147/1605/1412 1093/1550/1359 +f 1094/1548/1357 1122/1577/1385 1148/1604/1411 +f 1126/1582/1390 1150/1606/1413 1125/1581/1389 +f 1127/1584/1392 1119/1607/1414 1118/1573/1381 +f 1128/1586/1393 1149/1608/1415 1126/1582/1390 +f 1127/1584/1392 1153/1609/1416 1151/1610/1417 +f 1130/1611/1395 1152/1612/1418 1128/1586/1393 +f 1129/1583/1391 1155/1613/1419 1153/1609/1416 +f 1132/1590/1397 1154/1614/1420 1130/1588/1395 +f 1131/1587/1394 1157/1615/1421 1155/1613/1419 +f 1134/1594/1401 1156/1616/1422 1132/1590/1397 +f 1136/1592/1399 1159/1617/1423 1160/1618/1424 +f 1133/1589/1396 1161/1619/1425 1157/1615/1421 +f 1138/1597/1404 1158/1620/1426 1134/1594/1401 +f 1135/1591/1398 1163/1621/1427 1159/1617/1423 +f 1137/1593/1400 1164/1622/1428 1161/1619/1425 +f 1141/1600/1407 1162/1623/1429 1138/1597/1404 +f 1139/1595/1402 1166/1624/1430 1163/1621/1427 +f 1140/1596/1403 1167/1625/1431 1164/1622/1428 +f 1144/1603/1410 1165/1626/1432 1141/1600/1407 +f 1142/1598/1405 1169/1627/1433 1166/1624/1430 +f 1143/1599/1406 1170/1628/1434 1167/1625/1431 +f 1147/1605/1412 1168/1629/1435 1144/1603/1410 +f 1145/1601/1408 1172/1630/1436 1169/1627/1433 +f 1146/1602/1409 1160/1618/1424 1170/1628/1434 +f 1088/1541/1350 1171/1631/1437 1147/1605/1412 +f 1148/1604/1411 1174/1632/1438 1172/1630/1436 +f 1087/1578/1386 1173/1633/1439 1088/1541/1350 +f 1122/1577/1385 1176/1634/1440 1174/1632/1438 +f 1123/1580/1388 1175/1635/1441 1087/1578/1386 +f 1121/1576/1384 1178/1636/1442 1176/1634/1440 +f 1117/1575/1383 1177/1637/1443 1123/1580/1388 +f 1125/1581/1389 1178/1636/1442 1124/1579/1387 +f 1150/1638/1444 1156/1639/1444 1166/1640/1444 +f 1180/1641/1445 1182/1642/1445 1179/1643/1446 +f 1182/1644/1447 733/1645/1447 1183/1646/1447 +f 1183/1647/1448 1188/1648/1448 1184/1649/1448 +f 1188/1650/1449 1187/1651/1449 1181/1652/1449 +f 1193/1653/1450 1192/1654/1450 1191/1655/1450 +f 1195/1656/1451 1197/1657/1451 1196/1658/1451 +f 1199/1659/1452 1186/1660/1452 1193/1661/1452 +f 1185/1662/1452 1194/1663/1452 1200/1664/1452 +f 1183/1665/1448 1189/1666/1453 1187/1667/1448 +f 1181/1668/1445 749/1669/1452 1182/1670/1445 +f 1202/1671/1451 1204/1672/1451 1201/1673/1451 +f 1208/1674/1454 1205/1675/1455 1207/1676/1456 +f 1210/1677/1450 1211/1678/1450 1212/1679/1450 +f 1202/1680/1457 1201/1681/1453 1214/1682/1458 +f 1214/1683/1459 1201/1673/1460 1208/1684/1461 +f 1217/1685/1462 1205/1686/1463 1213/1687/1464 +f 1220/1688/1453 1222/1689/1453 1209/1690/1453 +f 1223/1691/1447 1226/1692/1447 1228/1693/1447 +f 1218/1694/1453 1223/1691/1453 1219/1695/1453 +f 1216/1696/1452 1225/1697/1452 1217/1698/1452 +f 1210/1677/1452 1227/1699/1452 1215/1700/1452 +f 1219/1695/1465 1221/1701/1465 1220/1688/1465 +f 1217/1698/1450 1224/1702/1450 1218/1694/1450 +f 1215/1700/1466 1226/1692/1466 1216/1696/1466 +f 1209/1690/1451 1228/1693/1451 1210/1677/1451 +f 1203/1703/1467 1229/1704/1468 1202/1705/1467 +f 1230/1706/1469 1231/1707/1470 1229/1708/1468 +f 1230/1709/1471 1204/1710/1472 1232/1711/1473 +f 1201/1712/1474 1229/1713/1475 1231/1714/1476 +f 1236/1715/1477 1237/1716/1478 1238/1717/1479 +f 1237/1718/1480 1186/1719/1481 1238/1720/1482 +f 1185/1721/1483 1234/1722/1484 1233/1723/1485 +f 1235/1724/1486 1234/1725/1487 1194/1726/1488 +f 1242/1727/1489 1240/1728/1490 1239/1729/1489 +f 1197/1730/1491 1244/1731/1492 1243/1732/1493 +f 1246/1733/1452 1245/1734/1452 1238/1735/1452 +f 1247/1736/1453 1240/1737/1490 1233/1738/1453 +f 1250/1739/1494 1235/1740/1495 1236/1741/1496 +f 1251/1742/1497 1253/1743/1498 1252/1744/1499 +f 1249/1745/1500 1247/1746/1501 1248/1747/1502 +f 1235/1740/1495 1248/1747/1502 1234/1748/1503 +f 1246/1749/1504 1250/1739/1494 1245/1750/1505 +f 1245/1750/1505 1236/1741/1496 1237/1751/1506 +f 1249/1745/1500 1256/1752/1507 1255/1753/1508 +f 1260/1754/1509 1258/1755/1510 1257/1756/1511 +f 1259/1757/1512 1261/1758/1513 1258/1755/1510 +f 1262/1759/1514 1263/1760/1515 1261/1758/1513 +f 1242/1761/1451 1239/1762/1451 1268/1763/1451 +f 1256/1752/1507 1269/1764/1516 1255/1753/1508 +f 1246/1749/1504 1270/1765/1517 1256/1752/1507 +f 1272/1766/1518 1267/1767/1519 1268/1768/1520 +f 1269/1764/1516 1247/1746/1501 1255/1753/1508 +f 1264/1769/1521 1271/1770/1522 1263/1760/1515 +f 1252/1744/1499 1275/1771/1523 1274/1772/1524 +f 1195/1773/1525 1254/1774/1526 1251/1742/1497 +f 1274/1772/1524 1277/1775/1527 1276/1776/1528 +f 1276/1776/1528 1279/1777/1529 1278/1778/1530 +f 1278/1778/1530 1281/1779/1531 1280/1780/1532 +f 1280/1780/1532 1283/1781/1451 1282/1782/1451 +f 1283/1781/1451 1284/1783/1533 1282/1782/1451 +f 1285/1784/1534 1257/1756/1511 1284/1783/1533 +f 1286/1785/1535 1288/1786/1536 1289/1787/1537 +f 1291/1788/1538 1293/1789/1539 1290/1790/1540 +f 1286/1785/1535 1295/1791/1541 1294/1792/1542 +f 1290/1790/1540 1297/1793/1543 1296/1794/1544 +f 1298/1795/1545 1294/1792/1542 1295/1791/1541 +f 1299/1796/1546 1297/1793/1543 1300/1797/1547 +f 1301/1798/1449 1300/1797/1547 1302/1799/1548 +f 1301/1798/1449 1304/1800/1549 1303/1801/1550 +f 1305/1802/1551 1306/1803/1552 1307/1804/1553 +f 1303/1801/1550 1309/1805/1554 1308/1806/1555 +f 1305/1802/1551 1311/1807/1556 1310/1808/1557 +f 1287/1809/1558 1309/1805/1554 1288/1786/1536 +f 1291/1788/1538 1311/1807/1556 1292/1810/1559 +f 1309/1805/1554 1313/1811/1560 1288/1786/1536 +f 1289/1787/1537 1288/1786/1536 1313/1811/1560 +f 1293/1789/1539 1292/1812/1559 1314/1813/1561 +f 1297/1793/1543 1314/1813/1561 1315/1814/1562 +f 1298/1815/1545 1295/1816/1541 1316/1817/1563 +f 1300/1797/1547 1315/1814/1562 1317/1818/1564 +f 1298/1815/1545 1319/1819/1565 1318/1820/1566 +f 1302/1799/1548 1317/1818/1564 1320/1821/1567 +f 1302/1799/1548 1321/1822/1568 1304/1800/1549 +f 1307/1804/1553 1306/1803/1552 1322/1823/1569 +f 1304/1800/1549 1312/1824/1570 1309/1805/1554 +f 1320/1821/1567 1323/1825/1571 1324/1826/1572 +f 1320/1821/1567 1325/1827/1573 1321/1822/1568 +f 1321/1822/1568 1326/1828/1574 1312/1824/1570 +f 1311/1829/1556 1307/1830/1553 1327/1831/1575 +f 1312/1824/1570 1328/1832/1576 1313/1811/1560 +f 1292/1812/1559 1311/1829/1556 1327/1831/1575 +f 1289/1833/1537 1313/1811/1560 1328/1832/1576 +f 1314/1813/1561 1292/1834/1559 1329/1835/1577 +f 1315/1814/1562 1329/1835/1577 1330/1836/1578 +f 1317/1818/1564 1330/1836/1578 1323/1825/1571 +f 1327/1831/1575 1332/1837/1579 1292/1834/1559 +f 1328/1832/1576 1334/1838/1580 1289/1839/1537 +f 1329/1835/1577 1332/1837/1579 1335/1840/1581 +f 1289/1839/1537 1336/1841/1582 1295/1842/1541 +f 1330/1836/1578 1335/1840/1581 1337/1843/1583 +f 1316/1844/1563 1295/1842/1541 1336/1841/1582 +f 1323/1825/1571 1337/1843/1583 1338/1845/1584 +f 1324/1826/1572 1338/1845/1584 1339/1846/1585 +f 1324/1826/1572 1340/1847/1586 1325/1827/1573 +f 1325/1827/1573 1341/1848/1587 1326/1828/1574 +f 1327/1831/1575 1307/1849/1553 1331/1850/1588 +f 1326/1828/1574 1333/1851/1589 1328/1832/1576 +f 1339/1846/1585 1342/1852/1590 1343/1853/1591 +f 1339/1846/1585 1344/1854/1592 1340/1847/1586 +f 1307/1849/1553 1322/1855/1593 1345/1856/1594 +f 1341/1848/1587 1344/1854/1592 1346/1857/1595 +f 1331/1850/1588 1307/1849/1553 1345/1856/1594 +f 1333/1851/1589 1341/1848/1587 1346/1857/1595 +f 1332/1837/1579 1331/1858/1588 1347/1859/1596 +f 1335/1840/1581 1347/1859/1596 1348/1860/1597 +f 1336/1841/1582 1334/1861/1580 1349/1862/1598 +f 1337/1843/1583 1348/1860/1597 1350/1863/1599 +f 1316/1864/1563 1336/1841/1582 1349/1862/1598 +f 1337/1843/1583 1342/1852/1590 1338/1845/1584 +f 1333/1865/1589 1352/1866/1600 1334/1861/1580 +f 1349/1862/1598 1334/1861/1580 1352/1866/1600 +f 1316/1867/1563 1349/1868/1598 1353/1869/1601 +f 1342/1852/1590 1350/1870/1599 1354/1871/1602 +f 1319/1872/1565 1316/1867/1563 1353/1869/1601 +f 1343/1853/1591 1354/1871/1602 1355/1873/1603 +f 1343/1853/1591 1356/1874/1604 1344/1854/1592 +f 1345/1856/1594 1322/1855/1593 1357/1875/1605 +f 1346/1857/1595 1344/1854/1592 1356/1874/1604 +f 1331/1858/1588 1345/1856/1594 1357/1875/1605 +f 1333/1865/1589 1346/1876/1595 1351/1877/1606 +f 1355/1873/1607 1359/1878/1608 1356/1874/1604 +f 1356/1874/1604 1360/1879/1609 1346/1876/1595 +f 1331/1880/1588 1357/1881/1605 1361/1882/1610 +f 1351/1877/1606 1346/1876/1595 1360/1879/1609 +f 1347/1883/1596 1361/1882/1610 1362/1884/1611 +f 1348/1885/1597 1362/1884/1611 1363/1886/1612 +f 1350/1870/1599 1363/1886/1612 1364/1887/1613 +f 1354/1871/1602 1364/1887/1613 1365/1888/1614 +f 1355/1873/1607 1365/1888/1614 1358/1889/1607 +f 1349/1890/1598 1352/1891/1600 1366/1892/1615 +f 1353/1893/1601 1349/1890/1598 1366/1892/1615 +f 1322/1855/1616 1368/1894/1617 1357/1895/1618 +f 1360/1896/1619 1369/1897/1620 1370/1898/1621 +f 1357/1895/1618 1371/1899/1622 1361/1900/1623 +f 1360/1896/1619 1372/1901/1624 1351/1902/1625 +f 1362/1903/1626 1371/1899/1622 1373/1904/1627 +f 1351/1902/1625 1374/1905/1628 1352/1891/1629 +f 1363/1906/1630 1373/1904/1627 1375/1907/1631 +f 1366/1892/1632 1374/1905/1628 1376/1908/1633 +f 1364/1909/1634 1375/1907/1631 1377/1910/1635 +f 1366/1892/1632 1378/1911/1636 1353/1912/1637 +f 1364/1909/1634 1379/1913/1638 1365/1914/1639 +f 1319/1872/1640 1378/1911/1636 1380/1915/1641 +f 1365/1914/1639 1381/1916/1642 1358/1917/1643 +f 1322/1855/1616 1306/1918/1644 1367/1919/1645 +f 1318/1920/1646 1319/1872/1640 1380/1915/1641 +f 1359/1921/1647 1381/1916/1642 1369/1897/1620 +f 1379/1913/1638 1377/1922/1635 1382/1923/1648 +f 1379/1913/1638 1383/1924/1649 1381/1916/1642 +f 1369/1897/1620 1383/1924/1649 1384/1925/1650 +f 1370/1898/1621 1369/1897/1620 1384/1925/1650 +f 1370/1926/1621 1384/1927/1650 1385/1928/1651 +f 1372/1929/1652 1385/1928/1651 1386/1930/1653 +f 1373/1931/1627 1371/1932/1622 1387/1933/1654 +f 1374/1934/1628 1386/1930/1653 1388/1935/1655 +f 1373/1931/1627 1389/1936/1656 1375/1937/1657 +f 1376/1938/1633 1374/1934/1628 1388/1935/1655 +f 1375/1937/1657 1390/1939/1658 1377/1922/1635 +f 1378/1940/1636 1376/1941/1633 1391/1942/1659 +f 1382/1923/1648 1377/1922/1635 1390/1939/1658 +f 1380/1915/1641 1378/1940/1636 1391/1942/1659 +f 1383/1924/1649 1382/1943/1648 1392/1944/1660 +f 1384/1925/1650 1383/1924/1649 1392/1944/1660 +f 1390/1939/1658 1394/1945/1661 1382/1943/1648 +f 1392/1944/1660 1382/1943/1648 1394/1945/1661 +f 1384/1927/1650 1392/1946/1660 1395/1947/1662 +f 1368/1948/1617 1367/1919/1645 1396/1949/1663 +f 1385/1928/1651 1384/1927/1650 1395/1947/1662 +f 1368/1948/1617 1397/1950/1664 1371/1932/1622 +f 1386/1951/1653 1385/1952/1651 1398/1953/1665 +f 1387/1933/1654 1371/1932/1622 1397/1950/1664 +f 1386/1951/1653 1399/1954/1666 1388/1955/1667 +f 1376/1941/1633 1388/1935/1655 1399/1956/1666 +f 1390/1939/1658 1389/1957/1656 1393/1958/1668 +f 1397/1950/1664 1396/1959/1663 1400/1960/1669 +f 1398/1961/1670 1385/1962/1670 1401/1963/1670 +f 1397/1950/1664 1402/1964/1671 1387/1965/1672 +f 1389/1966/1656 1402/1967/1671 1398/1968/1665 +f 1376/1969/1633 1399/1970/1666 1403/1971/1673 +f 1393/1972/1668 1389/1966/1656 1398/1968/1665 +f 1391/1973/1659 1376/1969/1633 1403/1971/1674 +f 1392/1946/1660 1394/1974/1661 1404/1975/1675 +f 1395/1947/1662 1392/1946/1660 1404/1975/1675 +f 1385/1962/1651 1395/1976/1662 1401/1963/1676 +f 1394/1977/1661 1393/1978/1668 1398/1979/1665 +f 1404/1980/1675 1394/1977/1661 1398/1981/1665 +f 1395/1982/1662 1404/1980/1675 1398/1983/1665 +f 1401/1984/1676 1395/1982/1662 1398/1985/1665 +f 1399/1986/1666 1398/1987/1665 1405/1988/1677 +f 1403/1971/1673 1405/1989/1677 1406/1990/1678 +f 1391/1991/1659 1403/1971/1674 1406/1990/1679 +f 1380/1915/1641 1391/1992/1659 1406/1993/1679 +f 1396/1994/1663 1367/1919/1645 1407/1995/1680 +f 1400/1996/1669 1396/1994/1663 1407/1995/1680 +f 1380/1915/1641 1406/1993/1679 1408/1997/1681 +f 1400/1998/1669 1407/1999/1680 1409/2000/1682 +f 1400/1998/1669 1410/2001/1683 1402/2002/1671 +f 1405/2003/1677 1398/2004/1665 1411/2005/1684 +f 1398/2006/1665 1402/2007/1671 1410/2008/1683 +f 1406/2009/1678 1411/2010/1684 1408/2011/1681 +f 1409/2012/1682 1407/2013/1680 1412/2014/1685 +f 1410/2015/1683 1412/2014/1685 1413/2016/1686 +f 1411/2017/1684 1398/2018/1665 1414/2019/1687 +f 1398/2020/1665 1410/2021/1683 1413/2022/1686 +f 1408/2023/1681 1411/2024/1684 1414/2025/1687 +f 1380/1915/1641 1408/2026/1681 1415/2027/1688 +f 1408/2028/1681 1414/2029/1687 1416/2030/1689 +f 1415/2027/1688 1408/2028/1681 1416/2030/1689 +f 1398/2031/1665 1417/2032/1690 1418/2033/1691 +f 1398/2034/1665 1418/2033/1691 1419/2035/1692 +f 1407/2013/1680 1367/1919/1645 1420/2036/1693 +f 1398/2037/1665 1419/2035/1692 1421/2038/1694 +f 1412/2014/1685 1407/2013/1680 1420/2036/1693 +f 1419/2035/1692 1418/2033/1691 1422/2039/1695 +f 1418/2033/1691 1417/2040/1690 1422/2039/1695 +f 1416/2041/1689 1414/2042/1687 1423/2043/1696 +f 1398/2044/1665 1424/2045/1697 1425/2046/1698 +f 1415/2047/1688 1416/2048/1689 1426/2049/1699 +f 1417/2040/1690 1398/2050/1665 1425/2046/1698 +f 1380/1915/1641 1415/2047/1688 1426/2049/1699 +f 1412/2051/1685 1420/2052/1693 1427/2053/1700 +f 1398/2054/1665 1421/2055/1694 1428/2056/1701 +f 1413/2057/1686 1427/2053/1700 1429/2058/1702 +f 1414/2059/1687 1428/2056/1701 1423/2060/1696 +f 1413/2061/1686 1424/2045/1697 1398/2044/1665 +f 1421/2062/1694 1430/2063/1703 1431/2064/1704 +f 1421/2062/1694 1432/2065/1705 1428/2066/1706 +f 1429/2058/1702 1427/2067/1700 1433/2068/1707 +f 1428/2066/1706 1434/2069/1708 1423/2043/1709 +f 1424/2070/1697 1433/2068/1707 1435/2071/1710 +f 1423/2043/1709 1436/2072/1711 1416/2048/1689 +f 1425/2073/1698 1435/2071/1710 1437/2074/1712 +f 1426/2049/1699 1416/2048/1689 1436/2072/1711 +f 1425/2073/1698 1438/2075/1713 1417/2076/1690 +f 1422/2077/1695 1438/2075/1713 1439/2078/1714 +f 1422/2077/1695 1430/2063/1703 1419/2079/1692 +f 1438/2075/1713 1437/2080/1712 1440/2081/1715 +f 1439/2078/1716 1440/2081/1715 1441/2082/1717 +f 1439/2078/1716 1442/2083/1718 1430/2063/1703 +f 1431/2064/1704 1430/2063/1703 1442/2083/1718 +f 1431/2084/1704 1443/2085/1719 1444/2086/1720 +f 1427/2087/1700 1445/2088/1721 1446/2089/1722 +f 1431/2084/1704 1447/2090/1723 1432/2091/1705 +f 1433/2092/1707 1446/2089/1722 1448/2093/1724 +f 1434/2094/1708 1447/2090/1723 1449/2095/1725 +f 1433/2092/1707 1450/2096/1726 1435/2097/1710 +f 1436/2098/1711 1449/2095/1725 1451/2099/1727 +f 1437/2080/1712 1450/2096/1726 1452/2100/1728 +f 1436/2098/1711 1453/2101/1729 1426/2102/1699 +f 1437/2080/1712 1454/2103/1730 1440/2081/1715 +f 1426/2102/1699 1455/2104/1731 1380/1915/1641 +f 1440/2081/1715 1456/2105/1732 1441/2082/1717 +f 1367/1919/1645 1306/2106/1733 1457/2107/1734 +f 1318/2108/1646 1380/1915/1641 1455/2104/1731 +f 1442/2083/1718 1456/2105/1732 1443/2085/1719 +f 1420/2109/1693 1457/2107/1734 1445/2088/1721 +f 1447/2110/1735 1458/2111/1736 1459/2112/1737 +f 1446/2113/1738 1461/2114/1739 1448/2115/1740 +f 1449/2116/1741 1459/2112/1737 1462/2117/1742 +f 1448/2115/1740 1463/2118/1743 1450/2119/1744 +f 1451/2120/1745 1462/2117/1742 1464/2121/1746 +f 1450/2119/1744 1465/2122/1747 1452/2123/1748 +f 1453/2124/1749 1451/2120/1745 1464/2121/1746 +f 1452/2123/1748 1466/2125/1750 1454/2126/1751 +f 1454/2126/1751 1467/2127/1752 1456/2128/1753 +f 1443/2129/1754 1467/2127/1752 1468/2130/1755 +f 1444/2131/1756 1468/2130/1755 1458/2111/1736 +f 1446/2113/1738 1445/2132/1757 1460/2133/1758 +f 1455/2134/1759 1453/2135/1749 1469/2136/1760 +f 1466/2125/1750 1471/2137/1761 1467/2127/1762 +f 1468/2130/1755 1471/2137/1761 1472/2138/1763 +f 1445/2132/1757 1457/2139/1764 1473/2140/1765 +f 1458/2111/1736 1468/2130/1755 1472/2138/1763 +f 1460/2133/1758 1445/2132/1757 1473/2140/1765 +f 1453/2135/1749 1464/2141/1746 1469/2136/1760 +f 1466/2125/1750 1465/2142/1747 1470/2143/1766 +f 1460/2144/1758 1475/2145/1767 1461/2146/1739 +f 1462/2147/1742 1476/2148/1768 1477/2149/1769 +f 1461/2146/1739 1478/2150/1770 1463/2151/1771 +f 1464/2141/1746 1477/2149/1769 1479/2152/1772 +f 1463/2151/1771 1480/2153/1773 1465/2142/1747 +f 1469/2136/1760 1464/2141/1746 1479/2152/1772 +f 1470/2143/1766 1480/2153/1773 1481/2154/1774 +f 1470/2143/1766 1482/2155/1775 1471/2137/1761 +f 1472/2138/1763 1482/2155/1775 1483/2156/1776 +f 1472/2138/1763 1484/2157/1777 1458/2158/1736 +f 1460/2144/1758 1473/2159/1765 1474/2160/1778 +f 1459/2161/1779 1484/2157/1777 1476/2148/1768 +f 1481/2154/1774 1486/2162/1780 1482/2155/1775 +f 1483/2156/1776 1486/2162/1780 1487/2163/1781 +f 1484/2157/1777 1487/2163/1781 1488/2164/1782 +f 1476/2148/1768 1488/2164/1782 1489/2165/1783 +f 1477/2149/1769 1476/2148/1768 1489/2165/1783 +f 1478/2150/1770 1475/2166/1767 1490/2167/1784 +f 1478/2150/1770 1491/2168/1785 1480/2153/1773 +f 1480/2153/1773 1485/2169/1786 1481/2154/1774 +f 1477/2170/1769 1492/2171/1787 1493/2172/1788 +f 1475/2166/1767 1495/2173/1789 1490/2167/1784 +f 1479/2174/1772 1477/2170/1769 1493/2172/1788 +f 1490/2167/1784 1496/2175/1790 1491/2168/1785 +f 1469/2176/1760 1479/2177/1772 1497/2178/1791 +f 1491/2168/1785 1498/2179/1792 1485/2169/1786 +f 1455/2134/1759 1469/2176/1760 1497/2178/1791 +f 1485/2169/1786 1499/2180/1793 1486/2162/1780 +f 1487/2163/1781 1499/2180/1793 1500/2181/1794 +f 1473/2182/1765 1457/2183/1764 1305/2184/1551 +f 1488/2164/1782 1500/2181/1794 1501/2185/1795 +f 1473/2182/1765 1310/2186/1557 1474/2187/1778 +f 1489/2165/1783 1501/2185/1795 1492/2171/1787 +f 1474/2187/1778 1494/2188/1796 1475/2166/1767 +f 1500/2181/1794 1502/2189/1797 1503/2190/1798 +f 1305/2184/1551 1457/2183/1764 1306/2191/1552 +f 1501/2185/1795 1503/2190/1798 1504/2192/1799 +f 1492/2171/1787 1504/2192/1799 1505/2193/1800 +f 1493/2172/1788 1492/2171/1787 1505/2193/1800 +f 1495/2173/1789 1494/2194/1796 1506/2195/1801 +f 1479/2177/1772 1493/2196/1788 1294/2197/1542 +f 1495/2173/1789 1507/2198/1802 1496/2175/1790 +f 1497/2178/1791 1479/2177/1772 1294/2197/1542 +f 1496/2175/1790 1508/2199/1803 1498/2179/1792 +f 1455/2200/1759 1497/2201/1791 1318/2202/1566 +f 1498/2179/1792 1502/2189/1797 1499/2180/1793 +f 1506/2195/1801 1291/1788/1538 1290/1790/1540 +f 1294/2197/1542 1493/2196/1788 1286/1785/1535 +f 1507/2198/1802 1290/1790/1540 1296/1794/1544 +f 1497/2201/1791 1294/1792/1542 1298/1795/1545 +f 1507/2198/1802 1299/1796/1546 1508/2199/1803 +f 1318/2202/1566 1497/2201/1791 1298/1795/1545 +f 1508/2199/1803 1301/1798/1449 1502/2189/1797 +f 1503/2190/1798 1301/1798/1449 1303/1801/1550 +f 1504/2192/1799 1303/1801/1550 1308/1806/1555 +f 1504/2192/1799 1287/1809/1558 1505/2193/1800 +f 1494/2194/1796 1310/1808/1557 1291/1788/1538 +f 1505/2193/1800 1286/1785/1535 1493/2196/1788 +f 1510/2203/1804 1512/2204/1805 1509/2205/1806 +f 1513/2206/1807 1515/2207/1807 1516/2208/1807 +f 1516/2209/1808 1511/2210/1809 1510/2211/1810 +f 1519/2212/1811 1513/2206/1812 1516/2208/1813 +f 1521/2213/1814 1518/2214/1814 1517/2215/1814 +f 1515/2216/1815 1512/2217/1805 1511/2218/1816 +f 1518/2219/1451 1520/2220/1451 1519/2221/1451 +f 1517/2222/1817 1509/2223/1818 1521/2224/1819 +f 1520/2225/1820 1521/2226/1821 1509/2227/1822 +f 1524/2228/1823 1526/2229/1824 1523/2230/1451 +f 1533/2231/1452 1534/2232/1452 1542/2233/1452 +f 1539/2234/1825 1544/2235/1826 1540/2236/1827 +f 1542/2237/1449 1523/2238/1449 1526/2239/1449 +f 1537/2240/1828 1547/2241/1828 1538/2242/1828 +f 1548/2243/1829 1525/2244/1830 1524/2228/1831 +f 1549/2245/1832 1533/2246/1833 1532/2247/1834 +f 1551/2248/1835 1532/2249/1834 1531/2250/1836 +f 1530/2251/1837 1529/2252/1838 1553/2253/1839 +f 1555/2254/1840 1535/2255/1841 1554/2256/1842 +f 1550/2257/1843 1534/2258/1844 1533/2259/1833 +f 1554/2260/1845 1534/2261/1844 1556/2262/1846 +f 1528/2263/1847 1552/2264/1848 1529/2265/1849 +f 1536/2266/1850 1546/2267/1851 1537/2240/1852 +f 1540/2268/1827 1558/2269/1853 1541/2270/1854 +f 1542/2271/1855 1558/2269/1853 1545/2272/1856 +f 1543/2273/1857 1538/2274/1450 1547/2275/1450 +f 1560/2276/1858 1562/2277/1859 1559/2278/1860 +f 1563/2279/1861 1561/2280/1862 1560/2276/1863 +f 1565/2281/1864 1564/2282/1865 1563/2279/1861 +f 1567/2283/1866 1568/2284/1867 1566/2285/1868 +f 1567/2286/1869 1570/2287/1870 1568/2288/1871 +f 1571/2289/1872 1569/2290/1872 1572/2291/1872 +f 1573/2292/1873 1572/2293/1874 1574/2294/1875 +f 1573/2295/1453 1575/2296/1453 1561/2297/1453 +f 1575/2298/1876 1574/2299/1875 1578/2300/1877 +f 1574/2301/1452 1572/2302/1452 1563/2303/1452 +f 1559/2278/1860 1577/2304/1878 1580/2305/1879 +f 1580/2305/1880 1576/2306/1881 1579/2307/1882 +f 1576/2308/1883 1578/2309/1877 1579/2310/1884 +f 1566/2285/1868 1565/2281/1885 1567/2283/1866 +f 1582/2311/1451 1584/2312/1451 1581/2312/1451 +f 1582/2313/1886 1587/2314/1887 1585/2315/1888 +f 1586/2316/1889 1589/2317/1890 1587/2318/1891 +f 1589/2319/1892 1581/2320/1893 1590/2321/1894 +f 1585/2322/1895 1589/2323/1896 1590/2324/1897 +f 1582/2311/1898 1588/2325/1898 1586/2316/1898 +f 1583/2326/1452 1592/2327/1452 1593/2328/1452 +f 1585/2329/1451 1594/2330/1451 1591/2331/1451 +f 1585/2332/1451 1583/2333/1451 1582/2333/1451 +f 1581/2334/1451 1594/2335/1451 1590/2335/1451 +f 1596/2336/1451 1592/2332/1451 1595/2337/1451 +f 1584/2338/1453 1595/2339/1453 1594/2340/1453 +f 1583/2311/1899 1596/2312/1899 1584/2312/1899 +f 1594/2341/1900 1592/2342/1900 1591/2343/1900 +f 1592/2332/1901 1598/2337/1902 1597/2332/1903 +f 1598/2337/1902 1599/2332/1904 1597/2332/1903 +f 1598/2344/1905 1596/2345/1906 1600/2346/1907 +f 1593/2347/1908 1597/2348/1909 1599/2349/1910 +f 1602/2350/1451 1604/2351/1451 1601/2352/1451 +f 1603/2353/1452 1605/2354/1452 1606/2355/1452 +f 1609/2356/1911 1611/2357/1911 1608/2358/1911 +f 1611/2359/1453 1602/2360/1453 1601/2361/1453 +f 1613/2362/1449 1612/2363/1449 1601/2364/1449 +f 1608/2358/1911 1612/2365/1911 1613/2366/1911 +f 1606/2367/1912 1613/2366/1912 1607/2368/1912 +f 1605/2369/1912 1608/2358/1912 1606/2367/1912 +f 1601/2370/1913 1615/2371/1914 1602/2372/1915 +f 1601/2373/1916 1589/2374/1916 1614/2375/1916 +f 1603/2376/1917 1617/2377/1918 1604/2378/1919 +f 1617/2379/1920 1587/2380/1920 1604/2381/1920 +f 1619/2382/1921 1621/2383/1922 1618/2384/1923 +f 1622/2385/1924 1624/2386/1925 1625/2387/1926 +f 1620/2388/1927 1627/2389/1928 1621/2383/1922 +f 1625/2387/1926 1628/2390/1929 1629/2391/1930 +f 1626/2392/1931 1631/2393/1932 1627/2389/1928 +f 1629/2391/1930 1632/2394/1933 1633/2395/1934 +f 1630/2396/1935 1635/2397/1936 1631/2393/1932 +f 1633/2395/1934 1636/2398/1937 1637/2399/1938 +f 1634/2400/1939 1639/2401/1940 1635/2397/1936 +f 1637/2399/1938 1640/2402/1941 1641/2403/1941 +f 1638/2404/1942 1643/2405/1943 1639/2401/1940 +f 1640/2402/1941 1645/2406/1944 1641/2403/1941 +f 1643/2405/1943 1646/2407/1945 1647/2408/1946 +f 1644/2409/1947 1618/2384/1923 1645/2406/1944 +f 1647/2408/1946 1623/2410/1948 1622/2385/1924 +f 1648/2411/1949 1650/2412/1950 1651/2413/1951 +f 1652/2414/1952 1650/2412/1950 1649/2415/1953 +f 1654/2416/1954 1653/2417/1955 1652/2414/1952 +f 1656/2418/1956 1658/2419/1957 1659/2420/1958 +f 1660/2421/1959 1655/2422/1960 1654/2416/1954 +f 1657/2423/1961 1663/2424/1962 1658/2419/1957 +f 1664/2425/1963 1661/2426/1964 1660/2421/1959 +f 1662/2427/1965 1667/2428/1966 1663/2424/1962 +f 1668/2429/1967 1665/2430/1968 1664/2425/1963 +f 1666/2431/1969 1671/2432/1970 1667/2428/1966 +f 1672/2433/1971 1669/2434/1972 1668/2429/1967 +f 1670/2435/1973 1651/2436/1951 1671/2432/1970 +f 1674/2437/1974 1673/2438/1975 1672/2433/1971 +f 1675/2439/1976 1677/2440/1977 1673/2438/1975 +f 1651/2413/1951 1678/2441/1978 1679/2442/1979 +f 1680/2443/1980 1676/2444/1981 1675/2439/1976 +f 1653/2417/1955 1678/2441/1978 1650/2412/1950 +f 1680/2443/1980 1683/2445/1982 1681/2446/1983 +f 1655/2422/1960 1682/2447/1984 1653/2417/1955 +f 1659/2420/1958 1685/2448/1985 1683/2445/1982 +f 1661/2426/1964 1684/2449/1986 1655/2422/1960 +f 1658/2419/1957 1687/2450/1987 1685/2448/1985 +f 1665/2430/1968 1686/2451/1988 1661/2426/1964 +f 1663/2424/1962 1689/2452/1989 1687/2450/1987 +f 1669/2434/1972 1688/2453/1990 1665/2430/1968 +f 1667/2428/1966 1691/2454/1991 1689/2452/1989 +f 1673/2438/1975 1690/2455/1992 1669/2434/1972 +f 1671/2432/1970 1679/2456/1979 1691/2454/1991 +f 1691/2454/1991 1692/2457/1993 1693/2458/1994 +f 1676/2444/1981 1695/2459/1995 1677/2440/1977 +f 1679/2442/1979 1696/2460/1996 1692/2461/1993 +f 1676/2444/1981 1697/2462/1997 1694/2463/1998 +f 1682/2447/1984 1696/2460/1996 1678/2441/1978 +f 1681/2446/1983 1699/2464/1999 1697/2462/1997 +f 1684/2449/1986 1698/2465/2000 1682/2447/1984 +f 1683/2445/1982 1701/2466/2001 1699/2464/1999 +f 1686/2451/1988 1700/2467/2002 1684/2449/1986 +f 1685/2448/1985 1703/2468/2003 1701/2466/2001 +f 1688/2453/1990 1702/2469/2004 1686/2451/1988 +f 1687/2450/1987 1705/2470/2005 1703/2468/2003 +f 1690/2455/1992 1704/2471/2006 1688/2453/1990 +f 1689/2452/1989 1693/2458/1994 1705/2470/2005 +f 1677/2440/1977 1706/2472/2007 1690/2455/1992 +f 1693/2458/1994 1707/2473/2008 1708/2474/2009 +f 1694/2463/1998 1710/2475/2010 1695/2459/1995 +f 1692/2461/1993 1711/2476/2011 1707/2477/2008 +f 1697/2462/1997 1709/2478/2012 1694/2463/1998 +f 1698/2465/2000 1711/2476/2011 1696/2460/1996 +f 1697/2462/1997 1714/2479/2013 1712/2480/2014 +f 1700/2467/2002 1713/2481/2015 1698/2465/2000 +f 1699/2464/1999 1716/2482/2016 1714/2479/2013 +f 1702/2469/2004 1715/2483/2017 1700/2467/2002 +f 1701/2466/2001 1718/2484/2018 1716/2482/2016 +f 1704/2471/2006 1717/2485/2019 1702/2469/2004 +f 1703/2468/2003 1720/2486/2020 1718/2484/2018 +f 1706/2472/2007 1719/2487/2021 1704/2471/2006 +f 1705/2470/2005 1708/2474/2009 1720/2486/2020 +f 1695/2459/1995 1721/2488/2022 1706/2472/2007 +f 1718/2489/2018 1708/2490/2009 1721/2491/2022 +f 1622/2385/2023 1723/2492/2024 1647/2408/2025 +f 1724/2493/2026 1629/2391/2027 1633/2395/2028 +f 1725/2494/2029 1625/2387/2030 1629/2391/2027 +f 1647/2408/2025 1727/2495/2031 1643/2405/2032 +f 1625/2387/2030 1722/2496/2033 1622/2385/2023 +f 1643/2405/2032 1728/2497/2034 1639/2401/2035 +f 1729/2498/2036 1731/2499/2037 1732/2500/2038 +f 1639/2401/2035 1733/2501/2039 1635/2397/2040 +f 1734/2502/2041 1730/2503/2042 1729/2498/2036 +f 1635/2397/2040 1736/2504/2043 1631/2393/2044 +f 1738/2505/2045 1734/2502/2041 1737/2506/2046 +f 1740/2507/2047 1737/2506/2046 1739/2508/2048 +f 1631/2393/2044 1741/2509/2049 1627/2389/2050 +f 1743/2510/2051 1739/2508/2048 1742/2511/2052 +f 1744/2512/2053 1637/2399/2054 1641/2403/2055 +f 1747/2513/2056 1742/2511/2052 1746/2514/2057 +f 1749/2515/2058 1746/2514/2057 1748/2516/2059 +f 1751/2517/2060 1748/2516/2059 1750/2518/2061 +f 1753/2519/2062 1750/2518/2061 1752/2520/2063 +f 1741/2509/2049 1621/2383/2064 1627/2389/2050 +f 1755/2521/2065 1753/2519/2062 1752/2520/2063 +f 1754/2522/2066 1618/2384/2067 1621/2383/2064 +f 1732/2500/2038 1758/2523/2068 1759/2524/2069 +f 1759/2524/2069 1760/2525/2070 1761/2526/2071 +f 1757/2527/2072 1645/2406/2073 1618/2384/2067 +f 1761/2526/2071 1763/2528/2074 1764/2529/2075 +f 1762/2530/2076 1641/2403/2055 1645/2406/2073 +f 1765/2531/2077 1756/2532/2078 1755/2521/2065 +f 1745/2533/2079 1633/2395/2028 1637/2399/2054 +f 1764/2529/2075 1766/2534/2080 1765/2531/2077 +f 1731/2499/2081 1725/2494/2082 1724/2493/2081 +f 1749/2515/2083 1736/2504/2084 1733/2501/2083 +f 1758/2523/2085 1724/2493/2081 1745/2533/2085 +f 1747/2513/2086 1733/2501/2083 1728/2497/2086 +f 1743/2510/2087 1728/2497/2086 1727/2495/2087 +f 1763/2528/2088 1744/2512/2089 1762/2530/2088 +f 1740/2507/2090 1727/2495/2087 1723/2492/2090 +f 1766/2534/2091 1762/2530/2088 1757/2527/2091 +f 1738/2505/2092 1723/2492/2090 1722/2496/2092 +f 1756/2532/1452 1757/2527/2091 1754/2522/1452 +f 1735/2535/2093 1722/2496/2092 1726/2536/2093 +f 1753/2519/2094 1754/2522/1452 1741/2509/2094 +f 1730/2503/2082 1726/2536/2093 1725/2494/2082 +f 1751/2517/2084 1741/2509/2094 1736/2504/2084 +f 1760/2525/2089 1745/2533/2085 1744/2512/2089 +f 1768/2537/2095 1770/2538/2096 1767/2539/2096 +f 1628/2540/2097 1657/2423/2098 1656/2418/2099 +f 1642/2541/2100 1672/2433/2101 1668/2429/2102 +f 1642/2541/2100 1664/2425/2103 1638/2542/2086 +f 1632/2543/2104 1662/2544/2105 1657/2545/2098 +f 1646/2546/2106 1674/2437/1923 1672/2433/2101 +f 1630/2547/2107 1652/2548/2108 1626/2549/2109 +f 1644/2550/2110 1666/2551/2111 1640/2552/2111 +f 1638/2553/2086 1660/2554/2112 1634/2555/2113 +f 1626/2549/2109 1649/2556/2114 1620/2557/2115 +f 1636/2558/2085 1666/2551/2111 1662/2544/2105 +f 1634/2555/2113 1654/2559/2116 1630/2547/2107 +f 1619/2560/2117 1670/2561/2118 1644/2550/2110 +f 1620/2557/2115 1648/2562/2119 1619/2563/2117 +f 1623/2564/2120 1771/2565/2121 1772/2566/2120 +f 1630/2567/2122 1774/2568/2123 1634/2569/2123 +f 1776/2570/2124 1778/2571/2125 1775/2572/2126 +f 1636/2573/2127 1779/2574/2128 1780/2575/2127 +f 1640/2576/2129 1780/2575/2127 1781/2577/2130 +f 1782/2578/2131 1784/2579/2132 1785/2580/2133 +f 1638/2581/2134 1787/2582/2135 1642/2583/2135 +f 1620/2584/2136 1789/2585/2137 1626/2586/2137 +f 1790/2587/2138 1769/2588/2095 1768/2537/2095 +f 1624/2589/2139 1793/2590/2140 1628/2591/2140 +f 1634/2569/2123 1786/2592/2134 1638/2581/2134 +f 1794/2593/2141 1777/2594/2124 1776/2570/2124 +f 1642/2583/2135 1771/2565/2121 1646/2595/2121 +f 1640/2576/2129 1796/2596/2142 1644/2597/2143 +f 1772/2566/2144 1798/2598/2145 1792/2599/2146 +f 1796/2596/2147 1769/2600/2148 1791/2601/2149 +f 1793/2590/2150 1800/2602/2151 1779/2574/2152 +f 1786/2592/1942 1785/2603/2153 1784/2604/1940 +f 1787/2582/2154 1802/2605/2155 1771/2565/2156 +f 1789/2585/2157 1778/2606/1276 1777/2607/2158 +f 1792/2599/2146 1799/2608/2159 1793/2590/2150 +f 1781/2577/2160 1770/2609/1938 1769/2600/2148 +f 1786/2592/1942 1801/2610/2161 1787/2582/2154 +f 1774/2568/2162 1795/2611/2163 1785/2603/2153 +f 1779/2574/2152 1770/2609/1938 1780/2575/1938 +f 1803/2612/2164 1791/2601/2149 1804/2613/2165 +f 1771/2565/2156 1797/2614/2166 1772/2566/2144 +f 1788/2615/2167 1804/2613/2165 1778/2606/1276 +f 1773/2616/2168 1777/2607/2158 1795/2611/2163 +f 1619/2617/2169 1796/2596/2142 1803/2612/2169 +f 1794/2593/2141 1785/2580/2133 1795/2618/2141 +f 1620/2584/2136 1803/2612/2169 1788/2615/2136 +f 1805/2619/2170 1791/2620/2138 1790/2587/2138 +f 1806/2621/2171 1798/2622/2172 1797/2623/2171 +f 1775/2572/2126 1804/2624/2170 1805/2619/2170 +f 1808/2625/2173 1800/2626/2174 1799/2627/2173 +f 1810/2628/2175 1802/2629/2176 1801/2630/2175 +f 1807/2631/2172 1799/2627/2173 1798/2622/2172 +f 1783/2632/2132 1801/2630/2175 1784/2579/2132 +f 1623/2564/2120 1792/2599/2139 1624/2589/2139 +f 1767/2539/2096 1800/2626/2174 1809/2633/2174 +f 1626/2586/2137 1773/2616/2122 1630/2567/2122 +f 1628/2591/2140 1779/2574/2128 1632/2634/2128 +f 1811/2635/2176 1797/2623/2171 1802/2629/2176 +f 1784/2636/2177 1812/2637/2178 1813/2638/2179 +f 1801/2639/2180 1815/2640/2181 1802/2641/2182 +f 1777/2642/2183 1816/2643/2184 1817/2644/2185 +f 1798/2645/2186 1819/2646/2187 1799/2647/2188 +f 1769/2648/2189 1820/2649/2190 1821/2650/2191 +f 1784/2636/2177 1814/2651/2192 1801/2639/2180 +f 1822/2652/2193 1785/2653/2194 1795/2654/2195 +f 1800/2655/2196 1820/2649/2190 1770/2656/2190 +f 1824/2657/2197 1804/2658/2198 1791/2659/2199 +f 1802/2641/2182 1826/2660/2200 1797/2661/2201 +f 1825/2662/2202 1778/2663/2203 1804/2664/2198 +f 1795/2654/2195 1817/2644/2185 1822/2652/2193 +f 1797/2661/2201 1818/2665/2204 1798/2645/2186 +f 1791/2659/2199 1821/2650/2191 1824/2657/2197 +f 1799/2647/2188 1823/2666/2205 1800/2655/2196 +f 1828/2667/1921 1830/2668/2206 1827/2669/1923 +f 1831/2670/2207 1833/2671/2208 1834/2672/2209 +f 1829/2673/2210 1836/2674/2211 1830/2668/2206 +f 1834/2675/2209 1837/2676/1929 1838/2677/1930 +f 1835/2678/2212 1840/2679/2213 1836/2674/2211 +f 1838/2677/1930 1841/2680/1933 1842/2681/2214 +f 1839/2682/1935 1844/2683/2215 1840/2679/2213 +f 1842/2681/2214 1845/2684/1937 1846/2685/1938 +f 1843/2686/1939 1848/2687/1940 1844/2683/2215 +f 1846/2685/1938 1849/2688/2216 1850/2689/1941 +f 1847/2690/1940 1852/2691/1943 1848/2687/1940 +f 1849/2688/2216 1854/2692/1947 1850/2689/1941 +f 1852/2691/1943 1855/2693/1945 1856/2694/1946 +f 1853/2695/1947 1827/2669/1923 1854/2692/1947 +f 1856/2694/1946 1832/2696/2217 1831/2670/2207 +f 1857/2697/1949 1859/2698/1950 1860/2699/1951 +f 1861/2700/2218 1863/2701/2219 1864/2702/2220 +f 1865/2703/2221 1859/2698/1950 1858/2704/2222 +f 1862/2705/2223 1868/2706/2224 1863/2707/2219 +f 1869/2708/1954 1866/2709/1955 1865/2703/1952 +f 1867/2710/2225 1872/2711/2226 1868/2706/2224 +f 1873/2712/1959 1870/2713/1960 1869/2708/1954 +f 1871/2714/2227 1876/2715/1962 1872/2711/2226 +f 1877/2716/1963 1874/2717/1964 1873/2712/1959 +f 1875/2718/2228 1880/2719/1966 1876/2715/1962 +f 1881/2720/2229 1878/2721/1968 1877/2716/1963 +f 1879/2722/1969 1884/2723/1970 1880/2719/1966 +f 1885/2724/1971 1882/2725/2230 1881/2720/2229 +f 1883/2726/1973 1860/2699/1951 1884/2723/1970 +f 1861/2700/2218 1886/2727/2231 1885/2724/1971 +f 1864/2702/2220 1888/2728/1977 1886/2727/2231 +f 1860/2699/1951 1889/2729/2232 1890/2730/1979 +f 1863/2701/2219 1887/2731/2233 1864/2702/2220 +f 1866/2709/1955 1889/2729/2232 1859/2698/1950 +f 1863/2707/2219 1893/2732/1982 1891/2733/2234 +f 1870/2713/1960 1892/2734/1984 1866/2709/1955 +f 1868/2706/2224 1895/2735/1985 1893/2732/1982 +f 1874/2717/1964 1894/2736/1986 1870/2713/1960 +f 1872/2711/2226 1897/2737/1987 1895/2735/1985 +f 1878/2721/1968 1896/2738/2235 1874/2717/1964 +f 1876/2715/1962 1899/2739/2236 1897/2737/1987 +f 1882/2725/2230 1898/2740/1990 1878/2721/1968 +f 1880/2719/1966 1901/2741/1991 1899/2739/2236 +f 1886/2727/2231 1900/2742/1992 1882/2725/2230 +f 1884/2723/1970 1890/2730/1979 1901/2741/1991 +f 1901/2741/1991 1902/2743/1993 1903/2744/2237 +f 1887/2731/2233 1905/2745/2238 1888/2728/1977 +f 1890/2730/1979 1906/2746/2239 1902/2743/1993 +f 1887/2731/2233 1907/2747/1997 1904/2748/1998 +f 1892/2734/1984 1906/2746/2239 1889/2729/2232 +f 1891/2733/2234 1909/2749/1999 1907/2750/1997 +f 1894/2736/1986 1908/2751/2000 1892/2734/1984 +f 1893/2732/1982 1911/2752/2240 1909/2749/1999 +f 1896/2738/2235 1910/2753/2241 1894/2736/1986 +f 1895/2735/1985 1913/2754/2003 1911/2752/2240 +f 1898/2740/1990 1912/2755/2242 1896/2738/2235 +f 1897/2737/1987 1915/2756/2243 1913/2754/2003 +f 1900/2742/1992 1914/2757/2006 1898/2740/1990 +f 1899/2739/2236 1903/2744/2237 1915/2756/2243 +f 1888/2728/1977 1916/2758/2244 1900/2742/1992 +f 1903/2744/2237 1917/2759/2008 1918/2760/2245 +f 1904/2748/1998 1920/2761/2246 1905/2745/2238 +f 1902/2743/1993 1921/2762/2011 1917/2759/2008 +f 1907/2747/1997 1919/2763/2247 1904/2748/1998 +f 1908/2751/2000 1921/2762/2011 1906/2746/2239 +f 1907/2750/1997 1924/2764/2013 1922/2765/2014 +f 1910/2753/2241 1923/2766/2015 1908/2751/2000 +f 1909/2749/1999 1926/2767/2248 1924/2764/2013 +f 1912/2755/2242 1925/2768/2017 1910/2753/2241 +f 1911/2752/2240 1928/2769/2249 1926/2767/2248 +f 1914/2757/2006 1927/2770/2250 1912/2755/2242 +f 1913/2754/2003 1930/2771/2020 1928/2769/2249 +f 1916/2758/2244 1929/2772/2251 1914/2757/2006 +f 1915/2756/2243 1918/2760/2245 1930/2771/2020 +f 1905/2745/2238 1931/2773/2022 1916/2758/2244 +f 1931/2774/2022 1924/2775/2013 1918/2776/2245 +f 1831/2670/2023 1933/2777/2252 1856/2694/2253 +f 1934/2778/2254 1838/2677/2255 1842/2681/2256 +f 1935/2779/2257 1834/2675/2258 1838/2677/2255 +f 1856/2694/2253 1937/2780/2259 1852/2691/2260 +f 1834/2672/2258 1932/2781/2033 1831/2670/2023 +f 1852/2691/2260 1938/2782/2261 1848/2687/2262 +f 1939/2783/2263 1941/2784/2264 1942/2785/2265 +f 1848/2687/2262 1943/2786/2266 1844/2683/2267 +f 1944/2787/2268 1940/2788/2269 1939/2783/2263 +f 1844/2683/2267 1946/2789/2270 1840/2679/2271 +f 1948/2790/2272 1944/2787/2268 1947/2791/2273 +f 1950/2792/2274 1947/2791/2273 1949/2793/2275 +f 1840/2679/2271 1951/2794/2276 1836/2674/2277 +f 1953/2795/2278 1949/2793/2275 1952/2796/2279 +f 1954/2797/2280 1846/2685/2281 1850/2689/2282 +f 1957/2798/2283 1952/2796/2279 1956/2799/2284 +f 1959/2800/2285 1956/2799/2284 1958/2801/2286 +f 1961/2802/2287 1958/2801/2286 1960/2803/2288 +f 1963/2804/2289 1960/2803/2288 1962/2805/2290 +f 1951/2794/2276 1830/2668/2291 1836/2674/2277 +f 1965/2806/2292 1963/2804/2289 1962/2805/2290 +f 1964/2807/2066 1827/2669/2293 1830/2668/2291 +f 1942/2785/2265 1968/2808/2294 1969/2809/2295 +f 1969/2809/2295 1970/2810/2296 1971/2811/2297 +f 1967/2812/2298 1854/2692/2299 1827/2669/2293 +f 1971/2811/2297 1973/2813/2300 1974/2814/2301 +f 1972/2815/2302 1850/2689/2282 1854/2692/2299 +f 1975/2816/2303 1966/2817/2304 1965/2806/2292 +f 1955/2818/2305 1842/2681/2256 1846/2685/2281 +f 1974/2814/2301 1976/2819/2306 1975/2816/2303 +f 1941/2784/2081 1935/2779/2082 1934/2778/2081 +f 1959/2800/2083 1946/2789/2084 1943/2786/2083 +f 1968/2808/2085 1934/2778/2081 1955/2818/2085 +f 1957/2798/2086 1943/2786/2083 1938/2782/2086 +f 1953/2795/2087 1938/2782/2086 1937/2780/2087 +f 1973/2813/2088 1954/2797/2089 1972/2815/2088 +f 1950/2792/2090 1937/2780/2087 1933/2777/2090 +f 1976/2819/2307 1972/2815/2088 1967/2812/2307 +f 1948/2790/2092 1933/2777/2090 1932/2781/2092 +f 1966/2817/1452 1967/2812/2307 1964/2807/1452 +f 1945/2820/2093 1932/2781/2092 1936/2821/2093 +f 1963/2804/2308 1964/2807/1452 1951/2794/2308 +f 1940/2788/2082 1936/2822/2093 1935/2779/2082 +f 1961/2802/2084 1951/2794/2308 1946/2789/2084 +f 1970/2810/2089 1955/2818/2085 1954/2797/2089 +f 1977/2823/2096 1979/2824/2095 1980/2825/2096 +f 1832/2826/2309 1862/2827/2310 1861/2828/2311 +f 1837/2829/2312 1871/2830/2098 1867/2831/2313 +f 1851/2832/2100 1885/2833/2101 1881/2834/2102 +f 1833/2835/2314 1867/2831/2313 1862/2836/2310 +f 1851/2832/2100 1877/2837/2103 1847/2838/2086 +f 1841/2839/2104 1875/2840/2105 1871/2830/2098 +f 1855/2841/2315 1861/2828/2311 1885/2833/2101 +f 1839/2842/2107 1865/2703/1930 1835/2843/1930 +f 1853/2844/2110 1879/2722/2111 1849/2845/2111 +f 1847/2846/2086 1873/2712/2112 1843/2847/2113 +f 1845/2848/2085 1879/2849/2111 1875/2840/2105 +f 1843/2847/2113 1869/2708/2116 1839/2842/2107 +f 1828/2850/1946 1883/2726/2118 1853/2844/2110 +f 1832/2851/2316 1982/2852/2317 1855/2853/2317 +f 1983/2854/2318 1839/2855/2319 1843/2856/2318 +f 1986/2857/2320 1988/2858/2321 1985/2859/2321 +f 1845/2860/2322 1990/2861/2323 1841/2862/2323 +f 1991/2863/2324 1845/2860/2322 1849/2864/2324 +f 1993/2865/2132 1995/2866/2325 1992/2867/2325 +f 1851/2868/2326 1997/2869/2327 1847/2870/2327 +f 1998/2871/2328 1829/2872/2329 1835/2873/2328 +f 2000/2874/2330 1979/2824/2095 1978/2875/2095 +f 1837/2876/2331 2003/2877/2332 1833/2878/2332 +f 1847/2870/2327 1983/2854/2318 1843/2856/2318 +f 2004/2879/2141 1987/2880/2320 1986/2857/2320 +f 1982/2852/2317 1851/2868/2326 1855/2853/2317 +f 2006/2881/2333 1849/2864/2324 1853/2882/2333 +f 2007/2883/2334 1981/2884/2335 2003/2877/2336 +f 2006/2881/2337 1979/2885/2338 1991/2863/2339 +f 2009/2886/2340 2002/2887/2341 1990/2861/2342 +f 1997/2869/2103 1995/2888/2083 1983/2854/2343 +f 2011/2889/2344 1996/2890/2345 1982/2852/2346 +f 1998/2871/2347 1988/2891/2348 1999/2892/2349 +f 2010/2893/2350 2003/2877/2336 2002/2887/2341 +f 1991/2863/2339 1980/2894/2105 1989/2895/2085 +f 2012/2896/2351 1997/2869/2103 1996/2890/2345 +f 1983/2854/2343 2005/2897/2352 1984/2898/2353 +f 1980/2894/2105 1990/2861/2342 1989/2895/2085 +f 2013/2899/2354 2001/2900/2355 2006/2881/2337 +f 2008/2901/2356 1982/2852/2346 1981/2884/2335 +f 1999/2892/2349 2014/2902/2357 2013/2899/2354 +f 1984/2898/2353 1987/2903/2358 1998/2871/2347 +f 2013/2899/2359 1853/2882/2333 1828/2904/2360 +f 1992/2867/2325 2005/2905/2141 2004/2879/2141 +f 1999/2892/2329 1828/2904/2360 1829/2872/2329 +f 2000/2874/2330 2014/2906/2361 2001/2907/2330 +f 2016/2908/2171 2007/2909/2362 2008/2910/2171 +f 1985/2859/2321 2014/2906/2361 2015/2911/2361 +f 2019/2912/2174 2010/2913/2363 2018/2914/2363 +f 2020/2915/2175 2011/2916/2176 2012/2917/2175 +f 2017/2918/2362 2010/2913/2363 2007/2909/2362 +f 1993/2865/2132 2012/2917/2175 1994/2919/2364 +f 1833/2920/2332 1981/2884/2316 1832/2851/2316 +f 1977/2823/2096 2009/2921/2174 2019/2912/2174 +f 1984/2898/2319 1835/2873/2328 1839/2855/2319 +f 1841/2862/2323 2002/2887/2331 1837/2876/2331 +f 2021/2922/2176 2008/2910/2171 2011/2916/2176 +f 1994/2923/2365 2022/2924/2178 2023/2925/2365 +f 2012/2926/2366 2025/2927/2181 2011/2928/2182 +f 1987/2929/2367 2026/2930/2184 2027/2931/2368 +f 2007/2932/2369 2029/2933/2370 2010/2934/2371 +f 1979/2935/2372 2030/2936/2373 2031/2937/2374 +f 1994/2923/2365 2024/2938/2375 2012/2926/2366 +f 2032/2939/2193 1995/2940/2194 2005/2941/2376 +f 2009/2942/2377 2030/2936/2373 1980/2943/2373 +f 2034/2944/2378 2014/2945/2379 2001/2946/2199 +f 2011/2928/2182 2036/2947/2380 2008/2948/2381 +f 2035/2949/2382 1988/2950/2203 2014/2945/2379 +f 2005/2941/2376 2027/2931/2368 2032/2939/2193 +f 2008/2948/2381 2028/2951/2204 2007/2952/2369 +f 2001/2946/2199 2031/2937/2374 2034/2944/2378 +f 2010/2934/2371 2033/2953/2383 2009/2942/2377 +f 2037/2954/2384 2038/2955/2385 2039/2956/2386 +f 2040/2957/2387 2037/2954/2384 2039/2956/2386 +f 2041/2958/2388 2040/2957/2387 2042/2959/2389 +f 2040/2957/2387 2039/2956/2386 2042/2959/2389 +f 2043/2960/2390 2044/2961/2390 2045/2962/2390 +f 2046/2963/2391 2047/2964/2392 2048/2965/2393 +f 2045/2962/2394 2049/2966/2395 2046/2963/2391 +f 2044/2961/2396 2049/2966/2395 2045/2962/2394 +f 2043/2960/2397 2049/2966/2395 2044/2961/2396 +f 2043/2960/2397 2050/2967/2398 2049/2966/2395 +f 2047/2964/2392 2051/2968/2399 2048/2965/2393 +f 2052/2969/2400 2046/2963/2391 2049/2966/2395 +f 2052/2969/2400 2053/2970/2401 2047/2964/2392 +f 2054/2971/2402 2052/2969/2400 2049/2966/2395 +f 2050/2967/2398 2054/2971/2402 2049/2966/2395 +f 2054/2971/2402 2055/2972/2403 2053/2970/2401 +f 2050/2967/2398 2056/2973/2404 2054/2971/2402 +f 2047/2964/2392 2057/2974/2405 2051/2968/2399 +f 2047/2964/2392 2058/2975/2406 2057/2974/2405 +f 2053/2970/2401 2058/2975/2406 2047/2964/2392 +f 2055/2972/2403 2058/2975/2406 2053/2970/2401 +f 2054/2971/2402 2059/2976/2407 2055/2972/2403 +f 2056/2973/2404 2059/2976/2407 2054/2971/2402 +f 2056/2973/2404 2060/2977/2408 2059/2976/2407 +f 2061/2978/2409 2063/2979/2410 2064/2980/2410 +f 2041/2981/2411 2068/2982/2412 2069/2983/2413 +f 2062/2984/2409 2070/2985/1447 2066/2986/1447 +f 2063/2987/2414 1191/2988/2415 2072/2989/2416 +f 2073/2990/2417 2071/2991/2418 2065/2992/2419 +f 2062/2993/2420 2071/2994/2420 2063/2995/2420 +f 2061/2996/2421 2074/2997/2421 2073/2998/2421 +f 2075/2999/2422 1191/3000/2422 1192/3001/2422 +f 2064/3002/2423 1192/3003/2424 2074/3004/2425 +f 2063/3005/2410 2075/2999/1447 2064/3006/2410 +f 2074/3007/2418 1191/3000/2426 2071/2991/2418 +f 2076/3008/2427 2045/2962/2427 2046/2963/2427 +f 2048/2965/2428 2051/2968/2428 2077/3009/2428 +f 2077/3010/2429 2070/3011/2430 2073/3012/2431 +f 2078/3013/2432 2041/2958/2388 2042/2959/2389 +f 2068/3014/2433 2041/2958/2388 2078/3013/2432 +f 2070/3015/1451 2077/3016/2434 2057/3017/2435 +f 2038/2955/2385 2037/2954/2384 2067/3018/2436 +f 1962/3019/2290 1952/3020/2279 1939/3021/2263 +f 1761/3022/2071 1752/3023/2063 1742/3024/2052 +f 1186/3025/1452 1193/3026/1452 1191/3027/1452 +f 1282/3028/2437 1284/3029/2438 1269/3030/2439 +f 2068/3031/2440 2043/3032/2441 2065/2992/2419 +f 1549/3033/1453 1551/3034/1453 1523/3035/1453 +f 1185/3036/1453 1188/3037/1448 1192/3038/1453 +f 1557/3039/2442 1527/3040/2443 1548/2243/2444 +f 793/3041/1054 784/3042/1055 720/3043/2445 +f 1190/3044/2446 757/3045/1024 788/3046/1048 +f 705/1155/972 706/3047/2447 707/1156/973 +f 708/1157/974 707/1156/973 709/1158/975 +f 710/1159/976 709/1158/975 711/1160/977 +f 712/1161/978 711/1160/977 713/1162/979 +f 714/1163/980 713/1162/979 715/1164/981 +f 716/1165/982 715/1164/981 717/1166/2448 +f 719/1168/985 720/3048/2445 721/1169/986 +f 721/1169/986 723/1172/989 724/1171/988 +f 723/1172/989 725/3049/2449 726/1173/990 +f 726/1173/990 725/3049/2449 727/1174/991 +f 728/1175/992 727/1174/991 729/1176/993 +f 729/1176/993 731/1179/996 732/1178/995 +f 731/1179/996 733/1181/2450 734/1180/997 +f 733/1181/998 735/1183/1001 736/1182/999 +f 735/1183/1001 737/1185/1003 738/1184/1002 +f 737/1185/1003 739/1187/1005 740/1186/1004 +f 739/1187/1005 741/3050/2451 742/1188/1006 +f 742/1188/1006 741/3050/2451 743/1189/1007 +f 744/1190/1008 743/1189/1007 745/1191/1009 +f 746/1192/1010 745/1191/1009 747/1193/1011 +f 748/1194/1012 747/1193/1011 749/1195/1013 +f 750/1196/1015 749/1195/2452 751/1197/1016 +f 752/1198/1017 751/1197/1016 753/1199/1018 +f 753/1199/1018 755/1202/1021 756/1201/1020 +f 755/1202/1021 706/3047/2447 705/1155/972 +f 758/1203/1022 759/1208/1027 760/1204/1023 +f 761/1206/1025 762/1248/1066 763/1207/1026 +f 728/1175/992 730/1177/994 764/1209/1028 +f 748/1194/1012 766/1220/1039 767/1211/1030 +f 714/1163/980 716/1165/982 768/1212/1031 +f 722/1170/987 770/1221/1040 771/1214/1033 +f 738/1184/1002 740/1186/1004 772/1215/1034 +f 708/1157/974 774/1224/1043 775/1217/1036 +f 705/1155/972 775/1217/1036 776/1218/1037 +f 758/1203/1022 777/1225/1044 761/1206/1025 +f 730/1177/994 732/1178/995 778/1219/1038 +f 750/1196/1015 779/1228/1047 766/1220/1039 +f 718/1167/984 780/1230/1049 768/1212/1031 +f 724/1171/988 781/1232/1051 770/1221/1040 +f 740/1186/1004 742/1188/1006 782/1222/1041 +f 708/1157/974 710/1159/976 783/1223/1042 +f 777/1225/1044 784/1236/1055 785/1226/1045 +f 732/1178/995 734/1180/997 786/1227/1046 +f 752/1198/1017 787/1238/1057 779/1228/1047 +f 788/1229/1048 789/1239/1058 780/1230/1049 +f 724/1171/988 726/1173/990 790/1231/1050 +f 742/1188/1006 744/1190/1008 791/1233/1052 +f 710/1159/976 712/1161/978 792/1234/1053 +f 793/1235/1054 794/1250/1059 785/1226/1045 +f 734/1180/997 736/1182/999 795/1237/1056 +f 754/1200/1019 796/1242/1060 787/1238/1057 +f 757/1205/1024 760/1204/1023 789/1239/1058 +f 726/1173/990 728/1175/992 765/1210/1029 +f 744/1190/1008 746/1192/1010 767/1211/1030 +f 712/1161/978 714/1163/980 769/1213/1032 +f 719/1168/985 771/1214/1033 794/1240/1059 +f 736/1182/999 738/1184/1002 773/1216/1035 +f 756/1201/1020 776/1218/1037 796/1242/1060 +f 798/1243/1061 799/1281/1098 800/1244/1062 +f 772/1215/1034 782/1222/1041 801/1246/1064 +f 785/1226/1045 803/1251/1068 762/1248/1066 +f 782/1222/1041 791/1233/1052 804/1249/1067 +f 794/1250/1059 797/1306/1063 803/1251/1068 +f 791/1233/1052 767/1211/1030 805/1252/1069 +f 771/1214/1033 798/1243/1061 797/1245/1063 +f 766/1220/1039 806/1256/1073 805/1252/1069 +f 770/1221/1040 807/1257/1074 798/1243/1061 +f 775/1217/1036 774/1224/1043 808/1253/1070 +f 766/1220/1039 779/1228/1047 810/1255/1072 +f 781/1232/1051 811/1260/1077 807/1257/1074 +f 774/1224/1043 783/1223/1042 812/1258/1075 +f 779/1228/1047 787/1238/1057 813/1259/1076 +f 790/1231/1050 814/1263/1080 811/1260/1077 +f 783/1223/1042 792/1234/1053 815/1261/1078 +f 787/1238/1057 796/1242/1060 816/1262/1079 +f 765/1210/1029 817/1266/1083 814/1263/1080 +f 792/1234/1053 769/1213/1032 818/1264/1081 +f 796/1242/1060 776/1218/1037 819/1265/1082 +f 764/1209/1028 820/1268/1085 817/1266/1083 +f 769/1213/1032 768/1212/1031 821/1267/1084 +f 776/1218/1037 775/1217/1036 809/1254/1071 +f 778/1219/1038 822/1270/1087 820/1268/1085 +f 768/1212/1031 780/1230/1049 823/1269/1086 +f 786/1227/1046 824/1272/1089 822/1270/1087 +f 780/1230/1049 789/1239/1058 825/1271/1088 +f 795/1237/1056 826/1273/1090 824/1272/1089 +f 760/1204/1023 827/1274/1091 825/1271/1088 +f 773/1216/1035 828/1275/1092 826/1273/1090 +f 759/1208/1027 763/1207/1026 827/1274/1091 +f 773/1216/1035 772/1215/1034 802/1247/1065 +f 830/1276/1093 831/1316/1132 832/1277/1094 +f 805/1252/1069 806/1256/1073 833/1279/1096 +f 807/1257/1074 835/1285/1102 799/1281/1098 +f 809/1254/1071 808/1253/1070 836/1282/1099 +f 806/1256/1073 810/1255/1072 838/1284/1101 +f 811/1260/1077 829/1278/1095 835/1285/1102 +f 808/1253/1070 812/1258/1075 839/1286/1103 +f 810/1255/1072 813/1259/1076 840/1287/1104 +f 814/1263/1080 830/1276/1093 829/1278/1095 +f 812/1258/1075 815/1261/1078 841/1288/1105 +f 813/1259/1076 816/1262/1079 842/1289/1106 +f 817/1266/1083 843/1292/1109 830/1276/1093 +f 815/1261/1078 818/1264/1081 844/1290/1107 +f 816/1262/1079 819/1265/1082 845/1291/1108 +f 820/1268/1085 846/1294/1111 843/1292/1109 +f 818/1264/1081 821/1267/1084 847/1293/1110 +f 819/1265/1082 809/1254/1071 837/1283/1100 +f 822/1270/1087 848/1296/1113 846/1294/1111 +f 821/1267/1084 823/1269/1086 849/1295/1112 +f 824/1272/1089 850/1298/1115 848/1296/1113 +f 823/1269/1086 825/1271/1088 851/1297/1114 +f 826/1273/1090 852/1300/1117 850/1298/1115 +f 825/1271/1088 827/1274/1091 853/1299/1116 +f 828/1275/1092 854/1302/1119 852/1300/1117 +f 763/1207/1026 855/1303/1120 853/1299/1116 +f 828/1275/1092 802/1247/1065 856/1301/1118 +f 762/1248/1066 857/1305/1122 855/1303/1120 +f 802/1247/1065 801/1246/1064 858/1304/1121 +f 803/1251/1068 859/1307/1123 857/1305/1122 +f 804/1249/1067 860/1308/1124 858/1304/1121 +f 797/1306/1063 800/1332/1062 859/1307/1123 +f 805/1252/1069 834/1280/1097 860/1308/1124 +f 862/1309/1125 863/1347/1162 864/1310/1126 +f 839/1286/1103 841/1288/1105 865/1312/1128 +f 840/1287/1104 842/1289/1106 867/1314/1130 +f 843/1292/1109 869/1319/1135 831/1316/1132 +f 841/1288/1105 844/1290/1107 870/1317/1133 +f 842/1289/1106 845/1291/1108 871/1318/1134 +f 846/1294/1111 861/1311/1127 869/1319/1135 +f 844/1290/1107 847/1293/1110 872/1320/1136 +f 845/1291/1108 837/1283/1100 873/1321/1137 +f 848/1296/1113 862/1309/1125 861/1311/1127 +f 847/1293/1110 849/1295/1112 874/1322/1138 +f 850/1298/1115 875/1324/1140 862/1309/1125 +f 849/1295/1112 851/1297/1114 876/1323/1139 +f 852/1300/1117 877/1326/1142 875/1324/1140 +f 851/1297/1114 853/1299/1116 878/1325/1141 +f 854/1302/1119 879/1328/1144 877/1326/1142 +f 855/1303/1120 880/1329/1145 878/1325/1141 +f 854/1302/1119 856/1301/1118 881/1327/1143 +f 857/1305/1122 882/1331/1147 880/1329/1145 +f 856/1301/1118 858/1304/1121 883/1330/1146 +f 859/1307/1123 884/1333/1148 882/1331/1147 +f 860/1308/1124 885/1335/1150 883/1330/1146 +f 800/1332/1062 886/1356/1151 884/1333/1148 +f 860/1308/1124 834/1280/1097 887/1334/1149 +f 799/1281/1098 888/1338/1153 886/1336/1151 +f 834/1280/1097 833/1279/1096 889/1337/1152 +f 835/1285/1102 890/1341/1156 888/1338/1153 +f 837/1283/1100 836/1282/1099 891/1339/1154 +f 833/1279/1096 838/1284/1101 892/1340/1155 +f 829/1278/1095 832/1277/1094 890/1341/1156 +f 836/1282/1099 839/1286/1103 866/1313/1129 +f 838/1284/1101 840/1287/1104 868/1315/1131 +f 894/1342/1157 895/1379/1193 896/1343/1158 +f 872/1320/1136 874/1322/1138 897/1345/1160 +f 875/1324/1140 899/1349/1164 863/1347/1162 +f 874/1322/1138 876/1323/1139 900/1348/1163 +f 877/1326/1142 893/1344/1159 899/1349/1164 +f 876/1323/1139 878/1325/1141 901/1350/1165 +f 879/1328/1144 894/1342/1157 893/1344/1159 +f 880/1329/1145 902/1351/1166 901/1350/1165 +f 881/1327/1143 903/1353/1168 894/1342/1157 +f 882/1331/1147 904/1354/1169 902/1351/1166 +f 881/1327/1143 883/1330/1146 905/1352/1167 +f 884/1333/1148 906/1357/1171 904/1354/1169 +f 883/1330/1146 885/1335/1150 907/1355/1170 +f 886/1356/1151 908/1384/1173 906/1357/1171 +f 885/1335/1150 887/1334/1149 909/1358/1172 +f 888/1338/1153 910/1361/1175 908/1359/1173 +f 887/1334/1149 889/1337/1152 911/1360/1174 +f 890/1341/1156 912/1365/1179 910/1361/1175 +f 873/1321/1137 891/1339/1154 913/1362/1176 +f 889/1337/1152 892/1340/1155 915/1364/1178 +f 832/1277/1094 916/1368/1182 912/1365/1179 +f 891/1339/1154 866/1313/1129 917/1366/1180 +f 892/1340/1155 868/1315/1131 918/1367/1181 +f 831/1316/1132 919/1371/1185 916/1368/1182 +f 866/1313/1129 865/1312/1128 920/1369/1183 +f 868/1315/1131 867/1314/1130 921/1370/1184 +f 869/1319/1135 922/1374/1188 919/1371/1185 +f 865/1312/1128 870/1317/1133 923/1372/1186 +f 867/1314/1130 871/1318/1134 924/1373/1187 +f 861/1311/1127 864/1310/1126 922/1374/1188 +f 870/1317/1133 872/1320/1136 898/1346/1161 +f 871/1318/1134 873/1321/1137 914/1363/1177 +f 925/1375/1189 926/1383/1197 927/1376/1190 +f 902/1351/1166 929/1380/1194 930/1378/1192 +f 903/1353/1168 931/1381/1195 895/1379/1193 +f 904/1354/1169 932/1382/1196 929/1380/1194 +f 905/1352/1167 925/1375/1189 931/1381/1195 +f 906/1357/1171 933/1385/1198 932/1382/1196 +f 905/1352/1167 907/1355/1170 926/1383/1197 +f 908/1384/1173 934/1412/1200 933/1385/1198 +f 907/1355/1170 909/1358/1172 935/1386/1199 +f 910/1361/1175 936/1389/1202 934/1387/1200 +f 909/1358/1172 911/1360/1174 937/1388/1201 +f 912/1365/1179 938/1393/1206 936/1389/1202 +f 914/1363/1177 913/1362/1176 939/1390/1203 +f 911/1360/1174 915/1364/1178 941/1392/1205 +f 916/1368/1182 942/1396/1209 938/1393/1206 +f 913/1362/1176 917/1366/1180 943/1394/1207 +f 915/1364/1178 918/1367/1181 944/1395/1208 +f 919/1371/1185 945/1399/1212 942/1396/1209 +f 917/1366/1180 920/1369/1183 946/1397/1210 +f 918/1367/1181 921/1370/1184 947/1398/1211 +f 922/1374/1188 948/1402/1215 945/1399/1212 +f 920/1369/1183 923/1372/1186 949/1400/1213 +f 921/1370/1184 924/1373/1187 950/1401/1214 +f 864/1310/1126 951/1404/1217 948/1402/1215 +f 923/1372/1186 898/1346/1161 952/1403/1216 +f 924/1373/1187 914/1363/1177 940/1391/1204 +f 863/1347/1162 953/1406/1219 951/1404/1217 +f 898/1346/1161 897/1345/1160 954/1405/1218 +f 899/1349/1164 955/1408/1221 953/1406/1219 +f 897/1345/1160 900/1348/1163 956/1407/1220 +f 893/1344/1159 896/1343/1158 955/1408/1221 +f 900/1348/1163 901/1350/1165 930/1378/1192 +f 957/1409/1222 958/1436/1248 959/1410/1223 +f 934/1412/1200 961/1451/1227 962/1413/1225 +f 926/1383/1197 935/1386/1199 963/1414/1226 +f 936/1389/1202 964/1417/1229 961/1415/1227 +f 935/1386/1199 937/1388/1201 965/1416/1228 +f 938/1393/1206 966/1421/1233 964/1417/1229 +f 940/1391/1204 939/1390/1203 967/1418/1230 +f 937/1388/1201 941/1392/1205 969/1420/1232 +f 942/1396/1209 970/1424/1236 966/1421/1233 +f 939/1390/1203 943/1394/1207 971/1422/1234 +f 941/1392/1205 944/1395/1208 972/1423/1235 +f 945/1399/1212 973/1427/1239 970/1424/1236 +f 943/1394/1207 946/1397/1210 974/1425/1237 +f 944/1395/1208 947/1398/1211 975/1426/1238 +f 948/1402/1215 976/1430/1242 973/1427/1239 +f 946/1397/1210 949/1400/1213 977/1428/1240 +f 947/1398/1211 950/1401/1214 978/1429/1241 +f 951/1404/1217 979/1432/1244 976/1430/1242 +f 949/1400/1213 952/1403/1216 980/1431/1243 +f 950/1401/1214 940/1391/1204 968/1419/1231 +f 953/1406/1219 981/1434/1246 979/1432/1244 +f 952/1403/1216 954/1405/1218 982/1433/1245 +f 955/1408/1221 983/1435/1247 981/1434/1246 +f 954/1405/1218 956/1407/1220 957/1409/1222 +f 896/1343/1158 984/1437/1249 983/1435/1247 +f 956/1407/1220 930/1378/1192 958/1436/1248 +f 895/1379/1193 985/1438/1250 984/1437/1249 +f 929/1380/1194 986/1439/1251 958/1436/1248 +f 931/1381/1195 987/1440/1252 985/1438/1250 +f 932/1382/1196 988/1441/1253 986/1439/1251 +f 925/1375/1189 928/1377/1191 987/1440/1252 +f 933/1385/1198 962/1413/1225 988/1441/1253 +f 990/1442/1254 991/1480/1290 992/1443/1255 +f 985/1438/1250 993/1446/1258 994/1445/1257 +f 986/1439/1251 995/1447/1259 959/1410/1223 +f 987/1440/1252 996/1448/1260 993/1446/1258 +f 988/1441/1253 989/1444/1256 995/1447/1259 +f 928/1377/1191 997/1450/1262 996/1448/1260 +f 962/1413/1225 990/1442/1254 989/1444/1256 +f 928/1377/1191 927/1376/1190 998/1449/1261 +f 961/1451/1227 999/1479/1264 990/1442/1254 +f 927/1376/1190 963/1414/1226 1000/1452/1263 +f 964/1417/1229 1001/1455/1266 999/1453/1264 +f 963/1414/1226 965/1416/1228 1002/1454/1265 +f 966/1421/1233 1003/1459/1270 1001/1455/1266 +f 968/1419/1231 967/1418/1230 1004/1456/1267 +f 965/1416/1228 969/1420/1232 1006/1458/1269 +f 970/1424/1236 1007/1462/1273 1003/1459/1270 +f 967/1418/1230 971/1422/1234 1008/1460/1271 +f 969/1420/1232 972/1423/1235 1009/1461/1272 +f 973/1427/1239 1010/1465/1276 1007/1462/1273 +f 971/1422/1234 974/1425/1237 1011/1463/1274 +f 972/1423/1235 975/1426/1238 1012/1464/1275 +f 976/1430/1242 1013/1468/1279 1010/1465/1276 +f 974/1425/1237 977/1428/1240 1014/1466/1277 +f 975/1426/1238 978/1429/1241 1015/1467/1278 +f 979/1432/1244 1016/1470/1281 1013/1468/1279 +f 977/1428/1240 980/1431/1243 1017/1469/1280 +f 978/1429/1241 968/1419/1231 1005/1457/1268 +f 981/1434/1246 1018/1472/1283 1016/1470/1281 +f 980/1431/1243 982/1433/1245 1019/1471/1282 +f 983/1435/1247 1020/1473/1284 1018/1472/1283 +f 982/1433/1245 957/1409/1222 960/1411/1224 +f 984/1437/1249 994/1445/1257 1020/1473/1284 +f 1022/1474/1285 1023/1514/1324 1024/1475/1286 +f 997/1450/1262 998/1449/1261 1025/1477/1288 +f 999/1479/1264 1027/1536/1292 991/1480/1290 +f 998/1449/1261 1000/1452/1263 1028/1481/1291 +f 1001/1455/1266 1021/1476/1287 1027/1482/1292 +f 1000/1452/1263 1002/1454/1265 1029/1483/1293 +f 1003/1459/1270 1022/1474/1285 1021/1476/1287 +f 1005/1457/1268 1004/1456/1267 1030/1484/1294 +f 1002/1454/1265 1006/1458/1269 1032/1486/1296 +f 1007/1462/1273 1033/1489/1299 1022/1474/1285 +f 1004/1456/1267 1008/1460/1271 1034/1487/1297 +f 1006/1458/1269 1009/1461/1272 1035/1488/1298 +f 1010/1465/1276 1036/1492/1302 1033/1489/1299 +f 1008/1460/1271 1011/1463/1274 1037/1490/1300 +f 1009/1461/1272 1012/1464/1275 1038/1491/1301 +f 1013/1468/1279 1039/1495/1305 1036/1492/1302 +f 1011/1463/1274 1014/1466/1277 1040/1493/1303 +f 1012/1464/1275 1015/1467/1278 1041/1494/1304 +f 1016/1470/1281 1042/1497/1307 1039/1495/1305 +f 1014/1466/1277 1017/1469/1280 1043/1496/1306 +f 1015/1467/1278 1005/1457/1268 1031/1485/1295 +f 1018/1472/1283 1044/1499/1309 1042/1497/1307 +f 1017/1469/1280 1019/1471/1282 1045/1498/1308 +f 1020/1473/1284 1046/1501/1311 1044/1499/1309 +f 1019/1471/1282 960/1411/1224 1047/1500/1310 +f 994/1445/1257 1048/1503/1313 1046/1501/1311 +f 960/1411/1224 959/1410/1223 1049/1502/1312 +f 993/1446/1258 1050/1504/1314 1048/1503/1313 +f 995/1447/1259 1051/1505/1315 1049/1502/1312 +f 996/1448/1260 1052/1506/1316 1050/1504/1314 +f 989/1444/1256 992/1443/1255 1051/1505/1315 +f 997/1450/1262 1026/1478/1289 1052/1506/1316 +f 1054/1507/1317 1055/1547/1356 1056/1508/1318 +f 1031/1485/1295 1030/1484/1294 1057/1510/1320 +f 1029/1483/1293 1032/1486/1296 1059/1512/1322 +f 1033/1489/1299 1061/1517/1327 1023/1514/1324 +f 1030/1484/1294 1034/1487/1297 1062/1515/1325 +f 1032/1486/1296 1035/1488/1298 1063/1516/1326 +f 1036/1492/1302 1053/1509/1319 1061/1517/1327 +f 1034/1487/1297 1037/1490/1300 1064/1518/1328 +f 1035/1488/1298 1038/1491/1301 1065/1519/1329 +f 1039/1495/1305 1054/1507/1317 1053/1509/1319 +f 1037/1490/1300 1040/1493/1303 1066/1520/1330 +f 1038/1491/1301 1041/1494/1304 1067/1521/1331 +f 1042/1497/1307 1068/1523/1333 1054/1507/1317 +f 1040/1493/1303 1043/1496/1306 1069/1522/1332 +f 1041/1494/1304 1031/1485/1295 1058/1511/1321 +f 1044/1499/1309 1070/1525/1335 1068/1523/1333 +f 1043/1496/1306 1045/1498/1308 1071/1524/1334 +f 1046/1501/1311 1072/1527/1337 1070/1525/1335 +f 1045/1498/1308 1047/1500/1310 1073/1526/1336 +f 1048/1503/1313 1074/1529/1339 1072/1527/1337 +f 1047/1500/1310 1049/1502/1312 1075/1528/1338 +f 1050/1504/1314 1076/1530/1340 1074/1529/1339 +f 1051/1505/1315 1077/1531/1341 1075/1528/1338 +f 1052/1506/1316 1078/1532/1342 1076/1530/1340 +f 992/1443/1255 1079/1533/1343 1077/1531/1341 +f 1026/1478/1289 1080/1535/1345 1078/1532/1342 +f 991/1480/1290 1081/1537/1346 1079/1533/1343 +f 1026/1478/1289 1025/1477/1288 1082/1534/1344 +f 1027/1536/1292 1083/1561/1348 1081/1537/1346 +f 1025/1477/1288 1028/1481/1291 1084/1538/1347 +f 1021/1476/1287 1024/1475/1286 1083/1539/1348 +f 1028/1481/1291 1029/1483/1293 1060/1513/1323 +f 1086/1540/1349 1087/1578/1386 1088/1541/1350 +f 1064/1518/1328 1066/1520/1330 1089/1543/1352 +f 1065/1519/1329 1067/1521/1331 1091/1545/1354 +f 1068/1523/1333 1093/1550/1359 1055/1547/1356 +f 1066/1520/1330 1069/1522/1332 1094/1548/1357 +f 1067/1521/1331 1058/1511/1321 1095/1549/1358 +f 1070/1525/1335 1085/1542/1351 1093/1550/1359 +f 1069/1522/1332 1071/1524/1334 1096/1551/1360 +f 1072/1527/1337 1086/1540/1349 1085/1542/1351 +f 1071/1524/1334 1073/1526/1336 1097/1552/1361 +f 1074/1529/1339 1098/1554/1363 1086/1540/1349 +f 1073/1526/1336 1075/1528/1338 1099/1553/1362 +f 1076/1530/1340 1100/1555/1364 1098/1554/1363 +f 1077/1531/1341 1101/1556/1365 1099/1553/1362 +f 1078/1532/1342 1102/1557/1366 1100/1555/1364 +f 1079/1533/1343 1103/1558/1367 1101/1556/1365 +f 1080/1535/1345 1104/1560/1369 1102/1557/1366 +f 1081/1537/1346 1105/1562/1370 1103/1558/1367 +f 1080/1535/1345 1082/1534/1344 1106/1559/1368 +f 1083/1561/1348 1107/1585/1372 1105/1562/1370 +f 1082/1534/1344 1084/1538/1347 1108/1563/1371 +f 1024/1475/1286 1109/1566/1374 1107/1564/1372 +f 1084/1538/1347 1060/1513/1323 1110/1565/1373 +f 1023/1514/1324 1111/1569/1377 1109/1566/1374 +f 1058/1511/1321 1057/1510/1320 1112/1567/1375 +f 1060/1513/1323 1059/1512/1322 1113/1568/1376 +f 1061/1517/1327 1114/1572/1380 1111/1569/1377 +f 1057/1510/1320 1062/1515/1325 1115/1570/1378 +f 1059/1512/1322 1063/1516/1326 1116/1571/1379 +f 1053/1509/1319 1056/1508/1318 1114/1572/1380 +f 1062/1515/1325 1064/1518/1328 1090/1544/1353 +f 1063/1516/1326 1065/1519/1329 1092/1546/1355 +f 1118/1573/1381 1119/1607/1414 1120/1574/1382 +f 1096/1551/1360 1097/1552/1361 1121/1576/1384 +f 1098/1554/1363 1123/1580/1388 1087/1578/1386 +f 1097/1552/1361 1099/1553/1362 1124/1579/1387 +f 1100/1555/1364 1117/1575/1383 1123/1580/1388 +f 1101/1556/1365 1125/1581/1389 1124/1579/1387 +f 1102/1557/1366 1118/1573/1381 1117/1575/1383 +f 1103/1558/1367 1126/1582/1390 1125/1581/1389 +f 1104/1560/1369 1127/1584/1392 1118/1573/1381 +f 1105/1562/1370 1128/1586/1393 1126/1582/1390 +f 1104/1560/1369 1106/1559/1368 1129/1583/1391 +f 1107/1585/1372 1130/1611/1395 1128/1586/1393 +f 1106/1559/1368 1108/1563/1371 1131/1587/1394 +f 1109/1566/1374 1132/1590/1397 1130/1588/1395 +f 1108/1563/1371 1110/1565/1373 1133/1589/1396 +f 1111/1569/1377 1134/1594/1401 1132/1590/1397 +f 1095/1549/1358 1112/1567/1375 1135/1591/1398 +f 1110/1565/1373 1113/1568/1376 1137/1593/1400 +f 1114/1572/1380 1138/1597/1404 1134/1594/1401 +f 1112/1567/1375 1115/1570/1378 1139/1595/1402 +f 1113/1568/1376 1116/1571/1379 1140/1596/1403 +f 1056/1508/1318 1141/1600/1407 1138/1597/1404 +f 1115/1570/1378 1090/1544/1353 1142/1598/1405 +f 1116/1571/1379 1092/1546/1355 1143/1599/1406 +f 1055/1547/1356 1144/1603/1410 1141/1600/1407 +f 1090/1544/1353 1089/1543/1352 1145/1601/1408 +f 1092/1546/1355 1091/1545/1354 1146/1602/1409 +f 1093/1550/1359 1147/1605/1412 1144/1603/1410 +f 1089/1543/1352 1094/1548/1357 1148/1604/1411 +f 1091/1545/1354 1095/1549/1358 1136/1592/1399 +f 1085/1542/1351 1088/1541/1350 1147/1605/1412 +f 1094/1548/1357 1096/1551/1360 1122/1577/1385 +f 1126/1582/1390 1149/1608/1415 1150/1606/1413 +f 1127/1584/1392 1151/1610/1417 1119/1607/1414 +f 1128/1586/1393 1152/1612/1418 1149/1608/1415 +f 1127/1584/1392 1129/1583/1391 1153/1609/1416 +f 1130/1611/1395 1154/3051/1420 1152/1612/1418 +f 1129/1583/1391 1131/1587/1394 1155/1613/1419 +f 1132/1590/1397 1156/1616/1422 1154/1614/1420 +f 1131/1587/1394 1133/1589/1396 1157/1615/1421 +f 1134/1594/1401 1158/1620/1426 1156/1616/1422 +f 1136/1592/1399 1135/1591/1398 1159/1617/1423 +f 1133/1589/1396 1137/1593/1400 1161/1619/1425 +f 1138/1597/1404 1162/1623/1429 1158/1620/1426 +f 1135/1591/1398 1139/1595/1402 1163/1621/1427 +f 1137/1593/1400 1140/1596/1403 1164/1622/1428 +f 1141/1600/1407 1165/1626/1432 1162/1623/1429 +f 1139/1595/1402 1142/1598/1405 1166/1624/1430 +f 1140/1596/1403 1143/1599/1406 1167/1625/1431 +f 1144/1603/1410 1168/1629/1435 1165/1626/1432 +f 1142/1598/1405 1145/1601/1408 1169/1627/1433 +f 1143/1599/1406 1146/1602/1409 1170/1628/1434 +f 1147/1605/1412 1171/1631/1437 1168/1629/1435 +f 1145/1601/1408 1148/1604/1411 1172/1630/1436 +f 1146/1602/1409 1136/1592/1399 1160/1618/1424 +f 1088/1541/1350 1173/1633/1439 1171/1631/1437 +f 1148/1604/1411 1122/1577/1385 1174/1632/1438 +f 1087/1578/1386 1175/1635/1441 1173/1633/1439 +f 1122/1577/1385 1121/1576/1384 1176/1634/1440 +f 1123/1580/1388 1177/1637/1443 1175/1635/1441 +f 1121/1576/1384 1124/1579/1387 1178/1636/1442 +f 1117/1575/1383 1120/1574/1382 1177/1637/1443 +f 1125/1581/1389 1150/1606/1413 1178/1636/1442 +f 1170/3052/2453 1160/3053/2454 1165/3054/2454 +f 1160/3053/2454 1159/3055/1444 1162/3056/1444 +f 1159/3055/1444 1163/3057/1444 1162/3056/1444 +f 1163/3057/1444 1166/1640/1444 1156/1639/1444 +f 1162/3056/1444 1163/3057/1444 1158/3058/1444 +f 1166/1640/1444 1169/3059/1444 1176/3060/1444 +f 1169/3059/1444 1172/3061/2455 1174/3062/1444 +f 1176/3060/1444 1169/3059/1444 1174/3062/1444 +f 1176/3060/1444 1178/3063/1444 1166/1640/1444 +f 1178/3063/1444 1150/1638/1444 1166/1640/1444 +f 1150/1638/1444 1149/3064/1444 1156/1639/1444 +f 1149/3064/1444 1152/3065/2456 1154/3066/2457 +f 1156/1639/1444 1149/3064/1444 1154/3066/2457 +f 1156/1639/1444 1158/3058/1444 1163/3057/1444 +f 1162/3056/1444 1165/3054/2454 1160/3053/2454 +f 1165/3054/2454 1168/3067/2458 1170/3052/2453 +f 1168/3067/2458 1171/3068/2459 1119/3069/2460 +f 1171/3068/2459 1173/3070/2461 1120/3071/2462 +f 1119/3069/2460 1171/3068/2459 1120/3071/2462 +f 1173/3070/2461 1175/3072/2463 1177/3073/2464 +f 1177/3073/2464 1120/3071/2462 1173/3070/2461 +f 1119/3069/2460 1151/3074/2465 1168/3067/2458 +f 1151/3074/2465 1153/3075/2466 1167/3076/2467 +f 1170/3052/2453 1151/3074/2465 1167/3076/2467 +f 1153/3075/2466 1155/3077/2468 1164/3078/2469 +f 1155/3077/2468 1157/3079/2470 1161/3080/2471 +f 1164/3078/2469 1155/3077/2468 1161/3080/2471 +f 1164/3078/2469 1167/3076/2467 1153/3075/2466 +f 1151/3074/2465 1170/3052/2453 1168/3067/2458 +f 1180/1641/1445 1181/3081/1445 1182/1642/1445 +f 1183/1646/1447 1184/3082/1447 1182/1644/1447 +f 1184/3082/1447 1185/3083/2472 1179/3084/2473 +f 1182/1644/1447 1184/3082/1447 1179/3084/2473 +f 1185/3083/2472 1186/3085/2474 1179/3084/2473 +f 1182/1644/1447 749/3086/1447 733/1645/1447 +f 1183/1647/1448 1187/3087/1448 1188/1648/1448 +f 1187/1651/1449 1189/3088/2475 1190/3089/2476 +f 1181/1652/1449 1180/3090/1449 1188/1650/1449 +f 1180/3090/1449 1191/3091/1449 1192/3092/1449 +f 1187/1651/1449 1190/3089/2476 1181/1652/1449 +f 1192/3092/1449 1188/1650/1449 1180/3090/1449 +f 1193/1653/1450 1194/3093/1450 1192/1654/1450 +f 1195/1656/1451 1198/3094/1451 1197/1657/1451 +f 1183/1665/1448 733/3095/1453 1189/1666/1453 +f 1181/1668/1445 1190/3096/1452 749/1669/1452 +f 1202/1671/1451 1203/3097/1451 1204/1672/1451 +f 1208/1674/1454 1204/3098/1452 1203/3099/2477 +f 1203/3099/2477 1205/1675/1455 1208/1674/1454 +f 1205/1675/1455 1206/3100/2478 1207/1676/1456 +f 1212/1679/1450 1207/3101/1450 1210/1677/1450 +f 1207/3101/1450 1206/3102/1450 1209/1690/1450 +f 1209/1690/1450 1210/1677/1450 1207/3101/1450 +f 1214/1682/1458 1212/3103/2479 1213/3104/2480 +f 1212/3103/2479 1211/3105/2481 1213/3104/2480 +f 1213/3104/2480 1202/1680/1457 1214/1682/1458 +f 1201/1673/1460 1204/1672/2482 1208/1684/1461 +f 1208/1684/1461 1207/3101/1449 1212/1679/1449 +f 1212/1679/1449 1214/1683/1459 1208/1684/1461 +f 1209/3106/1447 1206/3107/2483 1220/3108/1447 +f 1206/3107/2483 1205/1686/1463 1218/3109/2484 +f 1220/3108/1447 1206/3107/2483 1219/3110/1447 +f 1205/1686/1463 1203/3111/2485 1213/1687/1464 +f 1203/3111/2485 1202/3112/2485 1213/1687/1464 +f 1213/1687/1464 1211/3113/2486 1217/1685/1462 +f 1211/3113/2486 1210/3114/1447 1215/3115/1447 +f 1218/3109/2484 1219/3110/1447 1206/3107/2483 +f 1215/3115/1447 1216/3116/1447 1211/3113/2486 +f 1216/3116/1447 1217/1685/1462 1211/3113/2486 +f 1217/1685/1462 1218/3109/2484 1205/1686/1463 +f 1220/1688/1453 1221/1701/1453 1222/1689/1453 +f 1228/1693/1447 1222/1689/1447 1223/1691/1447 +f 1222/1689/1447 1221/1701/1447 1223/1691/1447 +f 1223/1691/1447 1224/1702/1447 1225/1697/1447 +f 1226/1692/1447 1227/1699/1447 1228/1693/1447 +f 1223/1691/1447 1225/1697/1447 1226/1692/1447 +f 1218/1694/1453 1224/1702/1453 1223/1691/1453 +f 1216/1696/1452 1226/1692/1452 1225/1697/1452 +f 1210/1677/1452 1228/1693/1452 1227/1699/1452 +f 1219/1695/1465 1223/1691/1465 1221/1701/1465 +f 1217/1698/1450 1225/1697/1450 1224/1702/1450 +f 1215/1700/1466 1227/1699/1466 1226/1692/1466 +f 1209/1690/1451 1222/1689/1451 1228/1693/1451 +f 1203/1703/1467 1230/3117/1469 1229/1704/1468 +f 1230/1706/1469 1232/3118/1470 1231/1707/1470 +f 1230/1709/1471 1203/3119/1452 1204/1710/1472 +f 1201/1712/1474 1202/3120/1453 1229/1713/1475 +f 1238/1717/1479 1233/3121/2487 1236/1715/1477 +f 1233/3121/2487 1234/3122/2488 1235/3123/2489 +f 1236/1715/1477 1233/3121/2487 1235/3123/2489 +f 1237/1718/1480 1193/3124/2490 1186/1719/1481 +f 1185/1721/1483 1194/3125/2491 1234/1722/1484 +f 1194/1726/1488 1193/3126/2492 1236/3127/2493 +f 1193/3126/2492 1237/3128/2494 1236/3127/2493 +f 1194/1726/1488 1236/3127/2493 1235/1724/1486 +f 1242/1727/1489 1241/3129/2495 1240/1728/1490 +f 1197/1730/1491 1198/3130/1491 1244/1731/1492 +f 1245/1734/1452 1237/3131/1452 1238/1735/1452 +f 1238/1735/1452 1243/3132/1493 1244/3133/1492 +f 1244/3133/1492 1246/1733/1452 1238/1735/1452 +f 1241/3134/2495 1233/1738/1453 1240/1737/1490 +f 1233/1738/1453 1234/3135/1453 1248/3136/1453 +f 1247/1736/1453 1233/1738/1453 1248/3136/1453 +f 1250/1739/1494 1249/1745/1500 1235/1740/1495 +f 1251/1742/1497 1254/1774/1526 1253/1743/1498 +f 1249/1745/1500 1255/1753/1508 1247/1746/1501 +f 1235/1740/1495 1249/1745/1500 1248/1747/1502 +f 1246/1749/1504 1256/1752/1507 1250/1739/1494 +f 1245/1750/1505 1250/1739/1494 1236/1741/1496 +f 1249/1745/1500 1250/1739/1494 1256/1752/1507 +f 1260/1754/1509 1259/1757/1512 1258/1755/1510 +f 1259/1757/1512 1262/1759/1514 1261/1758/1513 +f 1262/1759/1514 1264/1769/1521 1263/1760/1515 +f 1239/1762/1451 1265/3137/2496 1268/1763/1451 +f 1268/1763/1451 1267/3138/1451 1242/1761/1451 +f 1267/3138/1451 1266/3139/1451 1242/1761/1451 +f 1256/1752/1507 1270/1765/1517 1269/1764/1516 +f 1246/1749/1504 1244/3140/2497 1270/1765/1517 +f 1265/3141/2498 1271/1770/1522 1268/1768/1520 +f 1271/1770/1522 1273/3142/2499 1272/1766/1518 +f 1268/1768/1520 1271/1770/1522 1272/1766/1518 +f 1269/1764/1516 1240/3143/2500 1247/1746/1501 +f 1264/1769/1521 1273/3142/2499 1271/1770/1522 +f 1252/1744/1499 1253/1743/1498 1275/1771/1523 +f 1195/1773/1525 1196/3144/2501 1254/1774/1526 +f 1274/1772/1524 1275/1771/1523 1277/1775/1527 +f 1276/1776/1528 1277/1775/1527 1279/1777/1529 +f 1278/1778/1530 1279/1777/1529 1281/1779/1531 +f 1280/1780/1532 1281/1779/1531 1283/1781/1451 +f 1283/1781/1451 1285/1784/1534 1284/1783/1533 +f 1285/1784/1534 1260/1754/1509 1257/1756/1511 +f 1286/1785/1535 1287/1809/1558 1288/1786/1536 +f 1291/1788/1538 1292/1810/1559 1293/1789/1539 +f 1286/1785/1535 1289/1787/1537 1295/1791/1541 +f 1290/1790/1540 1293/1789/1539 1297/1793/1543 +f 1299/1796/1546 1296/1794/1544 1297/1793/1543 +f 1301/1798/1449 1299/1796/1546 1300/1797/1547 +f 1301/1798/1449 1302/1799/1548 1304/1800/1549 +f 1303/1801/1550 1304/1800/1549 1309/1805/1554 +f 1305/1802/1551 1307/1804/1553 1311/1807/1556 +f 1287/1809/1558 1308/1806/1555 1309/1805/1554 +f 1291/1788/1538 1310/1808/1557 1311/1807/1556 +f 1309/1805/1554 1312/1824/1570 1313/1811/1560 +f 1297/1793/1543 1293/1789/1539 1314/1813/1561 +f 1300/1797/1547 1297/1793/1543 1315/1814/1562 +f 1298/1815/1545 1316/1817/1563 1319/1819/1565 +f 1302/1799/1548 1300/1797/1547 1317/1818/1564 +f 1302/1799/1548 1320/1821/1567 1321/1822/1568 +f 1304/1800/1549 1321/1822/1568 1312/1824/1570 +f 1320/1821/1567 1317/1818/1564 1323/1825/1571 +f 1320/1821/1567 1324/1826/1572 1325/1827/1573 +f 1321/1822/1568 1325/1827/1573 1326/1828/1574 +f 1312/1824/1570 1326/1828/1574 1328/1832/1576 +f 1315/1814/1562 1314/1813/1561 1329/1835/1577 +f 1317/1818/1564 1315/1814/1562 1330/1836/1578 +f 1327/1831/1575 1331/1850/1588 1332/1837/1579 +f 1328/1832/1576 1333/1851/1589 1334/1838/1580 +f 1329/1835/1577 1292/1834/1559 1332/1837/1579 +f 1289/1839/1537 1334/1838/1580 1336/1841/1582 +f 1330/1836/1578 1329/1835/1577 1335/1840/1581 +f 1323/1825/1571 1330/1836/1578 1337/1843/1583 +f 1324/1826/1572 1323/1825/1571 1338/1845/1584 +f 1324/1826/1572 1339/1846/1585 1340/1847/1586 +f 1325/1827/1573 1340/1847/1586 1341/1848/1587 +f 1326/1828/1574 1341/1848/1587 1333/1851/1589 +f 1339/1846/1585 1338/1845/1584 1342/1852/1590 +f 1339/1846/1585 1343/1853/1591 1344/1854/1592 +f 1341/1848/1587 1340/1847/1586 1344/1854/1592 +f 1335/1840/1581 1332/1837/1579 1347/1859/1596 +f 1337/1843/1583 1335/1840/1581 1348/1860/1597 +f 1337/1843/1583 1350/1863/1599 1342/1852/1590 +f 1333/1865/1589 1351/1877/1606 1352/1866/1600 +f 1343/1853/1591 1342/1852/1590 1354/1871/1602 +f 1343/1853/1591 1355/1873/1603 1356/1874/1604 +f 1355/1873/1607 1358/1889/1607 1359/1878/1608 +f 1356/1874/1604 1359/1878/1608 1360/1879/1609 +f 1347/1883/1596 1331/1880/1588 1361/1882/1610 +f 1348/1885/1597 1347/1883/1596 1362/1884/1611 +f 1350/1870/1599 1348/1885/1597 1363/1886/1612 +f 1354/1871/1602 1350/1870/1599 1364/1887/1613 +f 1355/1873/1607 1354/1871/1602 1365/1888/1614 +f 1322/1855/1616 1367/1919/1645 1368/1894/1617 +f 1360/1896/1619 1359/1921/1647 1369/1897/1620 +f 1357/1895/1618 1368/1894/1617 1371/1899/1622 +f 1360/1896/1619 1370/1898/1621 1372/1901/1624 +f 1362/1903/1626 1361/1900/1623 1371/1899/1622 +f 1351/1902/1625 1372/1901/1624 1374/1905/1628 +f 1363/1906/1630 1362/1903/1626 1373/1904/1627 +f 1366/1892/1632 1352/1891/1629 1374/1905/1628 +f 1364/1909/1634 1363/1906/1630 1375/1907/1631 +f 1366/1892/1632 1376/1908/1633 1378/1911/1636 +f 1364/1909/1634 1377/1910/1635 1379/1913/1638 +f 1319/1872/1640 1353/1912/1637 1378/1911/1636 +f 1365/1914/1639 1379/1913/1638 1381/1916/1642 +f 1359/1921/1647 1358/1917/1643 1381/1916/1642 +f 1379/1913/1638 1382/1923/1648 1383/1924/1649 +f 1369/1897/1620 1381/1916/1642 1383/1924/1649 +f 1372/1929/1652 1370/1926/1621 1385/1928/1651 +f 1374/1934/1628 1372/1929/1652 1386/1930/1653 +f 1373/1931/1627 1387/1933/1654 1389/1936/1656 +f 1375/1937/1657 1389/1936/1656 1390/1939/1658 +f 1390/1939/1658 1393/1958/1668 1394/1945/1661 +f 1368/1948/1617 1396/1949/1663 1397/1950/1664 +f 1386/1951/1653 1398/1953/1665 1399/1954/1666 +f 1397/1950/1664 1400/1960/1669 1402/1964/1671 +f 1389/1966/1656 1387/3145/1672 1402/1967/1671 +f 1403/1971/1673 1399/1970/1666 1405/1989/1677 +f 1400/1998/1669 1409/2000/1682 1410/2001/1683 +f 1406/2009/1678 1405/3146/1677 1411/2010/1684 +f 1410/2015/1683 1409/2012/1682 1412/2014/1685 +f 1413/2057/1686 1412/2051/1685 1427/2053/1700 +f 1414/2059/1687 1398/2054/1665 1428/2056/1701 +f 1413/2061/1686 1429/3147/1702 1424/2045/1697 +f 1421/2062/1694 1419/2079/1692 1430/2063/1703 +f 1421/2062/1694 1431/2064/1704 1432/2065/1705 +f 1428/2066/1706 1432/2065/1705 1434/2069/1708 +f 1424/2070/1697 1429/2058/1702 1433/2068/1707 +f 1423/2043/1709 1434/2069/1708 1436/2072/1711 +f 1425/2073/1698 1424/2070/1697 1435/2071/1710 +f 1425/2073/1698 1437/2074/1712 1438/2075/1713 +f 1422/2077/1695 1417/2076/1690 1438/2075/1713 +f 1422/2077/1695 1439/2078/1714 1430/2063/1703 +f 1439/2078/1716 1438/2075/1713 1440/2081/1715 +f 1439/2078/1716 1441/2082/1717 1442/2083/1718 +f 1431/2084/1704 1442/2083/1718 1443/2085/1719 +f 1427/2087/1700 1420/2109/1693 1445/2088/1721 +f 1431/2084/1704 1444/2086/1720 1447/2090/1723 +f 1433/2092/1707 1427/2087/1700 1446/2089/1722 +f 1434/2094/1708 1432/2091/1705 1447/2090/1723 +f 1433/2092/1707 1448/2093/1724 1450/2096/1726 +f 1436/2098/1711 1434/2094/1708 1449/2095/1725 +f 1437/2080/1712 1435/2097/1710 1450/2096/1726 +f 1436/2098/1711 1451/2099/1727 1453/2101/1729 +f 1437/2080/1712 1452/2100/1728 1454/2103/1730 +f 1426/2102/1699 1453/2101/1729 1455/2104/1731 +f 1440/2081/1715 1454/2103/1730 1456/2105/1732 +f 1442/2083/1718 1441/2082/1717 1456/2105/1732 +f 1420/2109/1693 1367/1919/1645 1457/2107/1734 +f 1447/2110/1735 1444/2131/1756 1458/2111/1736 +f 1446/2113/1738 1460/2133/1758 1461/2114/1739 +f 1449/2116/1741 1447/2110/1735 1459/2112/1737 +f 1448/2115/1740 1461/2114/1739 1463/2118/1743 +f 1451/2120/1745 1449/2116/1741 1462/2117/1742 +f 1450/2119/1744 1463/2118/1743 1465/2122/1747 +f 1452/2123/1748 1465/2122/1747 1466/2125/1750 +f 1454/2126/1751 1466/2125/1750 1467/2127/1752 +f 1443/2129/1754 1456/2128/1753 1467/2127/1752 +f 1444/2131/1756 1443/2129/1754 1468/2130/1755 +f 1466/2125/1750 1470/2143/1766 1471/2137/1761 +f 1468/2130/1755 1467/2127/1762 1471/2137/1761 +f 1460/2144/1758 1474/2160/1778 1475/2145/1767 +f 1462/2147/1742 1459/2161/1779 1476/2148/1768 +f 1461/2146/1739 1475/2145/1767 1478/2150/1770 +f 1464/2141/1746 1462/2147/1742 1477/2149/1769 +f 1463/2151/1771 1478/2150/1770 1480/2153/1773 +f 1470/2143/1766 1465/2142/1747 1480/2153/1773 +f 1470/2143/1766 1481/2154/1774 1482/2155/1775 +f 1472/2138/1763 1471/2137/1761 1482/2155/1775 +f 1472/2138/1763 1483/2156/1776 1484/2157/1777 +f 1459/2161/1779 1458/2158/1736 1484/2157/1777 +f 1481/2154/1774 1485/2169/1786 1486/2162/1780 +f 1483/2156/1776 1482/2155/1775 1486/2162/1780 +f 1484/2157/1777 1483/2156/1776 1487/2163/1781 +f 1476/2148/1768 1484/2157/1777 1488/2164/1782 +f 1478/2150/1770 1490/2167/1784 1491/2168/1785 +f 1480/2153/1773 1491/2168/1785 1485/2169/1786 +f 1477/2170/1769 1489/2165/1783 1492/2171/1787 +f 1475/2166/1767 1494/2188/1796 1495/2173/1789 +f 1490/2167/1784 1495/2173/1789 1496/2175/1790 +f 1491/2168/1785 1496/2175/1790 1498/2179/1792 +f 1485/2169/1786 1498/2179/1792 1499/2180/1793 +f 1487/2163/1781 1486/2162/1780 1499/2180/1793 +f 1488/2164/1782 1487/2163/1781 1500/2181/1794 +f 1473/2182/1765 1305/2184/1551 1310/2186/1557 +f 1489/2165/1783 1488/2164/1782 1501/2185/1795 +f 1474/2187/1778 1310/2186/1557 1494/2188/1796 +f 1500/2181/1794 1499/2180/1793 1502/2189/1797 +f 1501/2185/1795 1500/2181/1794 1503/2190/1798 +f 1492/2171/1787 1501/2185/1795 1504/2192/1799 +f 1495/2173/1789 1506/2195/1801 1507/2198/1802 +f 1496/2175/1790 1507/2198/1802 1508/2199/1803 +f 1498/2179/1792 1508/2199/1803 1502/2189/1797 +f 1506/2195/1801 1494/2194/1796 1291/1788/1538 +f 1507/2198/1802 1506/2195/1801 1290/1790/1540 +f 1507/2198/1802 1296/1794/1544 1299/1796/1546 +f 1508/2199/1803 1299/1796/1546 1301/1798/1449 +f 1503/2190/1798 1502/2189/1797 1301/1798/1449 +f 1504/2192/1799 1503/2190/1798 1303/1801/1550 +f 1504/2192/1799 1308/1806/1555 1287/1809/1558 +f 1505/2193/1800 1287/1809/1558 1286/1785/1535 +f 1510/2203/1804 1511/3148/1816 1512/2204/1805 +f 1513/2206/1807 1514/3149/1807 1515/2207/1807 +f 1510/2211/1810 1517/3150/2502 1519/3151/2503 +f 1517/3150/2502 1518/3152/1453 1519/3151/2503 +f 1519/3151/2503 1516/2209/1808 1510/2211/1810 +f 1516/2209/1808 1515/3153/2504 1511/2210/1809 +f 1519/2212/1811 1520/3154/2505 1513/2206/1812 +f 1521/2213/1814 1522/3155/1814 1518/2214/1814 +f 1515/2216/1815 1514/3156/2506 1512/2217/1805 +f 1518/2219/1451 1522/3157/1451 1520/2220/1451 +f 1517/2222/1817 1510/3158/2507 1509/2223/1818 +f 1514/3159/2508 1513/3160/2509 1512/3161/2510 +f 1513/3160/2509 1520/2225/1820 1509/2227/1822 +f 1520/2225/1820 1522/3162/1452 1521/2226/1821 +f 1509/2227/1822 1512/3161/2510 1513/3160/2509 +f 1524/2228/1823 1525/2244/2511 1526/2229/1824 +f 1525/3163/1452 1527/3164/1452 1528/3165/1452 +f 1525/3163/1452 1528/3165/1452 1529/3166/1452 +f 1541/3167/1452 1542/2233/1452 1535/3168/1452 +f 1542/2233/1452 1526/3169/1452 1532/3170/1452 +f 1533/2231/1452 1542/2233/1452 1532/3170/1452 +f 1539/3171/1452 1540/3172/1452 1535/3168/1452 +f 1540/3172/1452 1541/3167/1452 1535/3168/1452 +f 1537/3173/1452 1538/3174/1452 1536/3175/1452 +f 1538/3174/1452 1539/3171/1452 1536/3175/1452 +f 1526/3169/1452 1525/3163/1452 1530/3176/1452 +f 1525/3163/1452 1529/3166/1452 1530/3176/1452 +f 1536/3175/1452 1539/3171/1452 1535/3168/1452 +f 1526/3169/1452 1530/3176/1452 1531/3177/1452 +f 1526/3169/1452 1531/3177/1452 1532/3170/1452 +f 1534/2232/1452 1535/3168/1452 1542/2233/1452 +f 1539/2234/1825 1543/3178/1857 1544/2235/1826 +f 1542/2237/1449 1545/3179/1449 1523/2238/1449 +f 1537/2240/1828 1546/2267/1828 1547/2241/1828 +f 1548/2243/1829 1527/3040/2512 1525/2244/1830 +f 1549/2245/1832 1550/3180/1843 1533/2246/1833 +f 1551/2248/1835 1549/3181/1832 1532/2249/1834 +f 1529/2252/1838 1552/3182/2513 1553/2253/1839 +f 1553/2253/1839 1551/3183/2514 1531/3184/2515 +f 1531/3184/2515 1530/2251/1837 1553/2253/1839 +f 1555/2254/1840 1536/2266/2516 1535/2255/1841 +f 1550/2257/1843 1556/3185/1846 1534/2258/1844 +f 1554/2260/1845 1535/3186/2517 1534/2261/1844 +f 1528/2263/1847 1557/3039/2442 1552/2264/1848 +f 1536/2266/1850 1555/2254/2518 1546/2267/1851 +f 1540/2268/1827 1544/3187/1826 1558/2269/1853 +f 1542/2271/1855 1541/2270/1854 1558/2269/1853 +f 1543/2273/1857 1539/3188/1825 1538/2274/1450 +f 1560/2276/1858 1561/2280/2519 1562/2277/1859 +f 1563/2279/1861 1564/2282/1865 1561/2280/1862 +f 1565/2281/1864 1566/2285/1864 1564/2282/1865 +f 1567/2286/1869 1569/3189/2520 1570/2287/1870 +f 1571/2289/1872 1570/3190/2521 1569/2290/1872 +f 1573/2292/1873 1571/3191/2522 1572/2293/1874 +f 1568/3192/1453 1570/3193/1453 1566/3194/1453 +f 1570/3193/1453 1571/3195/1453 1566/3194/1453 +f 1561/2297/1453 1564/3196/1453 1573/2295/1453 +f 1564/3196/1453 1566/3194/1453 1571/3195/1453 +f 1577/3197/1453 1562/3198/1453 1576/3199/1453 +f 1562/3198/1453 1561/2297/1453 1575/2296/1453 +f 1575/2296/1453 1576/3199/1453 1562/3198/1453 +f 1564/3196/1453 1571/3195/1453 1573/2295/1453 +f 1575/2298/1876 1573/3200/1873 1574/2299/1875 +f 1580/3201/1452 1579/3202/1452 1559/3203/1452 +f 1579/3202/1452 1578/3204/1452 1559/3203/1452 +f 1563/2303/1452 1560/3205/1452 1574/2301/1452 +f 1560/3205/1452 1559/3203/1452 1578/3204/1452 +f 1574/2301/1452 1560/3205/1452 1578/3204/1452 +f 1567/3206/1452 1565/3207/1452 1569/3208/1452 +f 1565/3207/1452 1563/2303/1452 1572/2302/1452 +f 1572/2302/1452 1569/3208/1452 1565/3207/1452 +f 1559/2278/1860 1562/2277/1859 1577/2304/1878 +f 1580/2305/1880 1577/2304/2523 1576/2306/1881 +f 1576/2308/1883 1575/3209/1876 1578/2309/1877 +f 1582/2311/1451 1583/2311/1451 1584/2312/1451 +f 1582/2313/1886 1586/3210/2524 1587/2314/1887 +f 1586/2316/1889 1588/2325/2525 1589/2317/1890 +f 1589/2319/1892 1588/3211/2526 1581/2320/1893 +f 1585/2322/1895 1587/3212/2527 1589/2323/1896 +f 1582/2311/1898 1581/2312/1898 1588/2325/1898 +f 1583/2326/1452 1591/3213/1452 1592/2327/1452 +f 1585/2329/1451 1590/3214/1451 1594/2330/1451 +f 1585/2332/1451 1591/2332/1451 1583/2333/1451 +f 1581/2334/1451 1584/2334/1451 1594/2335/1451 +f 1596/2336/1451 1593/2333/1451 1592/2332/1451 +f 1584/2338/1453 1596/3215/1453 1595/2339/1453 +f 1583/2311/1899 1593/2311/1899 1596/2312/1899 +f 1594/2341/1900 1595/3216/1900 1592/2342/1900 +f 1592/2332/1901 1595/2337/1901 1598/2337/1902 +f 1598/2337/1902 1600/2337/1904 1599/2332/1904 +f 1598/2344/1905 1595/3217/2528 1596/2345/1906 +f 1593/2347/1908 1592/3218/2529 1597/2348/1909 +f 1602/2350/1451 1603/3219/1451 1604/2351/1451 +f 1607/3220/1452 1604/3221/1452 1606/2355/1452 +f 1604/3221/1452 1603/2353/1452 1606/2355/1452 +f 1609/2356/1911 1610/3222/1911 1611/2357/1911 +f 1601/2361/1453 1612/3223/1453 1611/2359/1453 +f 1611/2359/1453 1610/3224/1453 1602/2360/1453 +f 1601/2364/1449 1604/3225/1449 1613/2362/1449 +f 1604/3225/1449 1607/3226/1449 1613/2362/1449 +f 1608/2358/1911 1611/2357/1911 1612/2365/1911 +f 1606/2367/1912 1608/2358/1912 1613/2366/1912 +f 1605/2369/1912 1609/2356/1912 1608/2358/1912 +f 1601/2370/1913 1614/3227/2530 1615/2371/2531 +f 1603/2376/2532 1616/3228/2533 1617/2377/1918 +f 1619/2382/1921 1620/2388/1927 1621/2383/1922 +f 1622/2385/1924 1623/2410/1948 1624/2386/1925 +f 1620/2388/1927 1626/2392/1931 1627/2389/1928 +f 1625/2387/1926 1624/2386/1925 1628/2390/1929 +f 1626/2392/1931 1630/2396/1935 1631/2393/1932 +f 1629/2391/1930 1628/2390/1929 1632/2394/1933 +f 1630/2396/1935 1634/2400/1939 1635/2397/1936 +f 1633/2395/1934 1632/2394/1933 1636/2398/1937 +f 1634/2400/1939 1638/2404/1942 1639/2401/1940 +f 1637/2399/1938 1636/2398/1937 1640/2402/1941 +f 1638/2404/1942 1642/3229/2534 1643/2405/1943 +f 1640/2402/1941 1644/2409/1947 1645/2406/1944 +f 1643/2405/1943 1642/3229/2534 1646/2407/1945 +f 1644/2409/1947 1619/3230/1921 1618/2384/1923 +f 1647/2408/1946 1646/2407/1945 1623/2410/1948 +f 1648/2411/1949 1649/2415/1953 1650/2412/1950 +f 1652/2414/1952 1653/2417/1955 1650/2412/1950 +f 1654/2416/1954 1655/2422/1960 1653/2417/1955 +f 1656/2418/2535 1657/2423/1961 1658/2419/1957 +f 1660/2421/1959 1661/2426/1964 1655/2422/1960 +f 1657/2423/1961 1662/2427/1965 1663/2424/1962 +f 1664/2425/1963 1665/2430/1968 1661/2426/1964 +f 1662/2427/1965 1666/2431/1969 1667/2428/1966 +f 1668/2429/1967 1669/2434/1972 1665/2430/1968 +f 1666/2431/1969 1670/2435/1973 1671/2432/1970 +f 1672/2433/1971 1673/2438/1975 1669/2434/1972 +f 1670/2435/1973 1648/3231/1949 1651/2436/1951 +f 1674/2437/1974 1675/2439/1976 1673/2438/1975 +f 1675/2439/1976 1676/2444/1981 1677/2440/1977 +f 1651/2413/1951 1650/2412/1950 1678/2441/1978 +f 1680/2443/1980 1681/2446/1983 1676/2444/1981 +f 1653/2417/1955 1682/2447/1984 1678/2441/1978 +f 1680/2443/1980 1659/2420/1958 1683/2445/1982 +f 1655/2422/1960 1684/2449/1986 1682/2447/1984 +f 1659/2420/1958 1658/2419/1957 1685/2448/1985 +f 1661/2426/1964 1686/2451/1988 1684/2449/1986 +f 1658/2419/1957 1663/2424/1962 1687/2450/1987 +f 1665/2430/1968 1688/2453/1990 1686/2451/1988 +f 1663/2424/1962 1667/2428/1966 1689/2452/1989 +f 1669/2434/1972 1690/2455/1992 1688/2453/1990 +f 1667/2428/1966 1671/2432/1970 1691/2454/1991 +f 1673/2438/1975 1677/2440/1977 1690/2455/1992 +f 1671/2432/1970 1651/2436/1951 1679/2456/1979 +f 1691/2454/1991 1679/2456/1979 1692/2457/1993 +f 1676/2444/1981 1694/2463/1998 1695/2459/1995 +f 1679/2442/1979 1678/2441/1978 1696/2460/1996 +f 1676/2444/1981 1681/2446/1983 1697/2462/1997 +f 1682/2447/1984 1698/2465/2000 1696/2460/1996 +f 1681/2446/1983 1683/2445/1982 1699/2464/1999 +f 1684/2449/1986 1700/2467/2002 1698/2465/2000 +f 1683/2445/1982 1685/2448/1985 1701/2466/2001 +f 1686/2451/1988 1702/2469/2004 1700/2467/2002 +f 1685/2448/1985 1687/2450/1987 1703/2468/2003 +f 1688/2453/1990 1704/2471/2006 1702/2469/2004 +f 1687/2450/1987 1689/2452/1989 1705/2470/2005 +f 1690/2455/1992 1706/2472/2007 1704/2471/2006 +f 1689/2452/1989 1691/2454/1991 1693/2458/1994 +f 1677/2440/1977 1695/2459/1995 1706/2472/2007 +f 1693/2458/1994 1692/2457/1993 1707/2473/2008 +f 1694/2463/1998 1709/2478/2012 1710/2475/2010 +f 1692/2461/1993 1696/2460/1996 1711/2476/2011 +f 1697/2462/1997 1712/2480/2014 1709/2478/2012 +f 1698/2465/2000 1713/2481/2015 1711/2476/2011 +f 1697/2462/1997 1699/2464/1999 1714/2479/2013 +f 1700/2467/2002 1715/2483/2017 1713/2481/2015 +f 1699/2464/1999 1701/2466/2001 1716/2482/2016 +f 1702/2469/2004 1717/2485/2019 1715/2483/2017 +f 1701/2466/2001 1703/2468/2003 1718/2484/2018 +f 1704/2471/2006 1719/2487/2021 1717/2485/2019 +f 1703/2468/2003 1705/2470/2005 1720/2486/2020 +f 1706/2472/2007 1721/2488/2022 1719/2487/2021 +f 1705/2470/2005 1693/2458/1994 1708/2474/2009 +f 1695/2459/1995 1710/2475/2010 1721/2488/2022 +f 1707/3232/2008 1711/3233/2011 1713/3234/2015 +f 1713/3234/2015 1715/3235/2017 1717/3236/2019 +f 1717/3236/2019 1719/3237/2021 1721/2491/2022 +f 1721/2491/2022 1710/3238/2010 1709/3239/2012 +f 1709/3239/2012 1712/3240/2014 1714/3241/2013 +f 1714/3241/2013 1716/3242/2016 1718/2489/2018 +f 1718/2489/2018 1720/3243/2020 1708/2490/2009 +f 1708/2490/2009 1707/3232/2008 1721/2491/2022 +f 1707/3232/2008 1713/3234/2015 1721/2491/2022 +f 1713/3234/2015 1717/3236/2019 1721/2491/2022 +f 1721/2491/2022 1709/3239/2012 1714/3241/2013 +f 1714/3241/2013 1718/2489/2018 1721/2491/2022 +f 1622/2385/2023 1722/2496/2033 1723/2492/2024 +f 1724/2493/2026 1725/2494/2029 1629/2391/2027 +f 1725/2494/2029 1726/2536/2536 1625/2387/2030 +f 1647/2408/2025 1723/2492/2024 1727/2495/2031 +f 1625/2387/2030 1726/2536/2536 1722/2496/2033 +f 1643/2405/2032 1727/2495/2031 1728/2497/2034 +f 1729/2498/2036 1730/2503/2042 1731/2499/2037 +f 1639/2401/2035 1728/2497/2034 1733/2501/2039 +f 1734/2502/2041 1735/2535/2537 1730/2503/2042 +f 1635/2397/2040 1733/2501/2039 1736/2504/2043 +f 1738/2505/2045 1735/2535/2537 1734/2502/2041 +f 1740/2507/2047 1738/2505/2045 1737/2506/2046 +f 1631/2393/2044 1736/2504/2043 1741/2509/2049 +f 1743/2510/2051 1740/2507/2047 1739/2508/2048 +f 1744/2512/2053 1745/2533/2079 1637/2399/2054 +f 1747/2513/2056 1743/2510/2051 1742/2511/2052 +f 1749/2515/2058 1747/2513/2056 1746/2514/2057 +f 1751/2517/2060 1749/2515/2058 1748/2516/2059 +f 1753/2519/2062 1751/2517/2060 1750/2518/2061 +f 1741/2509/2049 1754/2522/2066 1621/2383/2064 +f 1755/2521/2065 1756/2532/2078 1753/2519/2062 +f 1754/2522/2066 1757/2527/2072 1618/2384/2067 +f 1732/2500/2038 1731/2499/2037 1758/2523/2068 +f 1759/2524/2069 1758/2523/2068 1760/2525/2070 +f 1757/2527/2072 1762/2530/2076 1645/2406/2073 +f 1761/2526/2071 1760/2525/2070 1763/2528/2074 +f 1762/2530/2076 1744/2512/2053 1641/2403/2055 +f 1765/2531/2077 1766/3244/2080 1756/2532/2078 +f 1745/2533/2079 1724/2493/2026 1633/2395/2028 +f 1764/2529/2075 1763/2528/2074 1766/2534/2080 +f 1731/2499/2081 1730/2503/2082 1725/2494/2082 +f 1749/2515/2083 1751/2517/2084 1736/2504/2084 +f 1758/2523/2085 1731/2499/2081 1724/2493/2081 +f 1747/2513/2086 1749/2515/2083 1733/2501/2083 +f 1743/2510/2087 1747/2513/2086 1728/2497/2086 +f 1763/2528/2088 1760/2525/2089 1744/2512/2089 +f 1740/2507/2090 1743/2510/2087 1727/2495/2087 +f 1766/2534/2091 1763/2528/2088 1762/2530/2088 +f 1738/2505/2092 1740/2507/2090 1723/2492/2090 +f 1756/2532/1452 1766/3244/2091 1757/2527/2091 +f 1735/2535/2093 1738/2505/2092 1722/2496/2092 +f 1753/2519/2094 1756/2532/1452 1754/2522/1452 +f 1730/2503/2082 1735/2535/2093 1726/2536/2093 +f 1751/2517/2084 1753/2519/2094 1741/2509/2094 +f 1760/2525/2089 1758/2523/2085 1745/2533/2085 +f 1768/2537/2095 1769/2588/2095 1770/2538/2096 +f 1628/2540/2097 1632/3245/2104 1657/2423/2098 +f 1642/2541/2100 1646/2546/2106 1672/2433/2101 +f 1642/2541/2100 1668/2429/2102 1664/2425/2103 +f 1632/2543/2104 1636/2558/2085 1662/2544/2105 +f 1646/2546/2106 1623/3246/2538 1674/2437/2538 +f 1630/2547/2107 1654/2559/2116 1652/2548/2108 +f 1644/2550/2110 1670/2561/2118 1666/2551/2111 +f 1638/2553/2086 1664/3247/2103 1660/2554/2112 +f 1626/2549/2109 1652/2548/2108 1649/2556/2114 +f 1636/2558/2085 1640/2552/2111 1666/2551/2111 +f 1634/2555/2113 1660/2554/2112 1654/2559/2116 +f 1619/2560/2117 1648/3248/2119 1670/2561/2118 +f 1620/2557/2115 1649/2556/2114 1648/2562/2119 +f 1623/2564/2120 1646/2595/2121 1771/2565/2121 +f 1630/2567/2122 1773/2616/2122 1774/2568/2123 +f 1776/2570/2124 1777/2594/2124 1778/2571/2125 +f 1636/2573/2127 1632/2634/2128 1779/2574/2128 +f 1640/2576/2129 1636/2573/2127 1780/2575/2127 +f 1782/2578/2131 1783/2632/2132 1784/2579/2132 +f 1638/2581/2134 1786/2592/2134 1787/2582/2135 +f 1620/2584/2136 1788/2615/2136 1789/2585/2137 +f 1790/2587/2138 1791/2620/2138 1769/2588/2095 +f 1624/2589/2139 1792/2599/2139 1793/2590/2140 +f 1634/2569/2123 1774/2568/2123 1786/2592/2134 +f 1794/2593/2141 1795/2618/2141 1777/2594/2124 +f 1642/2583/2135 1787/2582/2135 1771/2565/2121 +f 1640/2576/2129 1781/2577/2130 1796/2596/2142 +f 1772/2566/2144 1797/2614/2166 1798/2598/2145 +f 1796/2596/2147 1781/2577/2160 1769/2600/2148 +f 1793/2590/2150 1799/2608/2159 1800/2602/2151 +f 1786/2592/1942 1774/2568/2162 1785/2603/2153 +f 1787/2582/2154 1801/2610/2161 1802/2605/2155 +f 1789/2585/2157 1788/2615/2167 1778/2606/1276 +f 1792/2599/2146 1798/2598/2145 1799/2608/2159 +f 1781/2577/2160 1780/2575/1938 1770/2609/1938 +f 1786/2592/1942 1784/2604/1940 1801/2610/2161 +f 1774/2568/2162 1773/2616/2168 1795/2611/2163 +f 1779/2574/2152 1800/2602/2151 1770/2609/1938 +f 1803/2612/2164 1796/2596/2147 1791/2601/2149 +f 1771/2565/2156 1802/2605/2155 1797/2614/2166 +f 1788/2615/2167 1803/2612/2164 1804/2613/2165 +f 1773/2616/2168 1789/2585/2157 1777/2607/2158 +f 1619/2617/2169 1644/2597/2143 1796/2596/2142 +f 1794/2593/2141 1782/2578/2131 1785/2580/2133 +f 1620/2584/2136 1619/3249/2169 1803/2612/2169 +f 1805/2619/2170 1804/2624/2170 1791/2620/2138 +f 1806/2621/2171 1807/2631/2172 1798/2622/2172 +f 1775/2572/2126 1778/2571/2125 1804/2624/2170 +f 1808/2625/2173 1809/2633/2174 1800/2626/2174 +f 1810/2628/2175 1811/2635/2176 1802/2629/2176 +f 1807/2631/2172 1808/2625/2173 1799/2627/2173 +f 1783/2632/2132 1810/2628/2175 1801/2630/2175 +f 1623/2564/2120 1772/2566/2120 1792/2599/2139 +f 1767/2539/2096 1770/2538/2096 1800/2626/2174 +f 1626/2586/2137 1789/2585/2137 1773/2616/2122 +f 1628/2591/2140 1793/2590/2140 1779/2574/2128 +f 1811/2635/2176 1806/2621/2171 1797/2623/2171 +f 1784/2636/2177 1785/2653/2194 1812/2637/2178 +f 1801/2639/2180 1814/2651/2192 1815/2640/2181 +f 1777/2642/2183 1778/2663/2203 1816/2643/2184 +f 1798/2645/2186 1818/2665/2204 1819/2646/2187 +f 1769/2648/2189 1770/2656/2190 1820/2649/2190 +f 1784/2636/2177 1813/2638/2179 1814/2651/2192 +f 1822/2652/2193 1812/2637/2178 1785/2653/2194 +f 1800/2655/2196 1823/2666/2205 1820/2649/2190 +f 1824/2657/2197 1825/2662/2202 1804/2658/2198 +f 1802/2641/2182 1815/2640/2181 1826/2660/2200 +f 1825/2662/2202 1816/2643/2184 1778/2663/2203 +f 1795/2654/2195 1777/2642/2183 1817/2644/2185 +f 1797/2661/2201 1826/2660/2200 1818/2665/2204 +f 1791/2659/2199 1769/2648/2189 1821/2650/2191 +f 1799/2647/2188 1819/2646/2187 1823/2666/2205 +f 1828/2667/1921 1829/2673/2210 1830/2668/2206 +f 1831/2670/2207 1832/2696/2217 1833/2671/2208 +f 1829/2673/2210 1835/2678/2212 1836/2674/2211 +f 1834/2675/2209 1833/3250/2208 1837/2676/1929 +f 1835/2678/2212 1839/2682/1935 1840/2679/2213 +f 1838/2677/1930 1837/2676/1929 1841/2680/1933 +f 1839/2682/1935 1843/2686/1939 1844/2683/2215 +f 1842/2681/2214 1841/2680/1933 1845/2684/1937 +f 1843/2686/1939 1847/2690/1940 1848/2687/1940 +f 1846/2685/1938 1845/2684/1937 1849/2688/2216 +f 1847/2690/1940 1851/3251/2534 1852/2691/1943 +f 1849/2688/2216 1853/2695/1947 1854/2692/1947 +f 1852/2691/1943 1851/3251/2534 1855/2693/1945 +f 1853/2695/1947 1828/2667/1921 1827/2669/1923 +f 1856/2694/1946 1855/2693/1945 1832/2696/2217 +f 1857/2697/1949 1858/2704/2222 1859/2698/1950 +f 1861/2700/2218 1862/3252/2223 1863/2701/2219 +f 1865/2703/1952 1866/2709/1955 1859/2698/1950 +f 1862/2705/2223 1867/2710/2225 1868/2706/2224 +f 1869/2708/1954 1870/2713/1960 1866/2709/1955 +f 1867/2710/2225 1871/2714/2227 1872/2711/2226 +f 1873/2712/1959 1874/2717/1964 1870/2713/1960 +f 1871/2714/2227 1875/2718/2228 1876/2715/1962 +f 1877/2716/1963 1878/2721/1968 1874/2717/1964 +f 1875/2718/2228 1879/2722/1969 1880/2719/1966 +f 1881/2720/2229 1882/2725/2230 1878/2721/1968 +f 1879/2722/1969 1883/2726/1973 1884/2723/1970 +f 1885/2724/1971 1886/2727/2231 1882/2725/2230 +f 1883/2726/1973 1857/2697/1949 1860/2699/1951 +f 1861/2700/2218 1864/2702/2220 1886/2727/2231 +f 1864/2702/2220 1887/2731/2233 1888/2728/1977 +f 1860/2699/1951 1859/2698/1950 1889/2729/2232 +f 1863/2701/2219 1891/3253/2234 1887/2731/2233 +f 1866/2709/1955 1892/2734/1984 1889/2729/2232 +f 1863/2707/2219 1868/2706/2224 1893/2732/1982 +f 1870/2713/1960 1894/2736/1986 1892/2734/1984 +f 1868/2706/2224 1872/2711/2226 1895/2735/1985 +f 1874/2717/1964 1896/2738/2235 1894/2736/1986 +f 1872/2711/2226 1876/2715/1962 1897/2737/1987 +f 1878/2721/1968 1898/2740/1990 1896/2738/2235 +f 1876/2715/1962 1880/2719/1966 1899/2739/2236 +f 1882/2725/2230 1900/2742/1992 1898/2740/1990 +f 1880/2719/1966 1884/2723/1970 1901/2741/1991 +f 1886/2727/2231 1888/2728/1977 1900/2742/1992 +f 1884/2723/1970 1860/2699/1951 1890/2730/1979 +f 1901/2741/1991 1890/2730/1979 1902/2743/1993 +f 1887/2731/2233 1904/2748/1998 1905/2745/2238 +f 1890/2730/1979 1889/2729/2232 1906/2746/2239 +f 1887/2731/2233 1891/3253/2234 1907/2747/1997 +f 1892/2734/1984 1908/2751/2000 1906/2746/2239 +f 1891/2733/2234 1893/2732/1982 1909/2749/1999 +f 1894/2736/1986 1910/2753/2241 1908/2751/2000 +f 1893/2732/1982 1895/2735/1985 1911/2752/2240 +f 1896/2738/2235 1912/2755/2242 1910/2753/2241 +f 1895/2735/1985 1897/2737/1987 1913/2754/2003 +f 1898/2740/1990 1914/2757/2006 1912/2755/2242 +f 1897/2737/1987 1899/2739/2236 1915/2756/2243 +f 1900/2742/1992 1916/2758/2244 1914/2757/2006 +f 1899/2739/2236 1901/2741/1991 1903/2744/2237 +f 1888/2728/1977 1905/2745/2238 1916/2758/2244 +f 1903/2744/2237 1902/2743/1993 1917/2759/2008 +f 1904/2748/1998 1919/2763/2247 1920/2761/2246 +f 1902/2743/1993 1906/2746/2239 1921/2762/2011 +f 1907/2747/1997 1922/3254/2014 1919/2763/2247 +f 1908/2751/2000 1923/2766/2015 1921/2762/2011 +f 1907/2750/1997 1909/2749/1999 1924/2764/2013 +f 1910/2753/2241 1925/2768/2017 1923/2766/2015 +f 1909/2749/1999 1911/2752/2240 1926/2767/2248 +f 1912/2755/2242 1927/2770/2250 1925/2768/2017 +f 1911/2752/2240 1913/2754/2003 1928/2769/2249 +f 1914/2757/2006 1929/2772/2251 1927/2770/2250 +f 1913/2754/2003 1915/2756/2243 1930/2771/2020 +f 1916/2758/2244 1931/2773/2022 1929/2772/2251 +f 1915/2756/2243 1903/2744/2237 1918/2760/2245 +f 1905/2745/2238 1920/2761/2246 1931/2773/2022 +f 1917/3255/2008 1921/3256/2011 1923/3257/2015 +f 1923/3257/2015 1925/3258/2017 1927/3259/2250 +f 1927/3259/2250 1929/3260/2251 1923/3257/2015 +f 1929/3260/2251 1931/2774/2022 1923/3257/2015 +f 1931/2774/2022 1920/3261/2246 1919/3262/2247 +f 1919/3262/2247 1922/3263/2014 1931/2774/2022 +f 1922/3263/2014 1924/2775/2013 1931/2774/2022 +f 1924/2775/2013 1926/3264/2248 1928/3265/2249 +f 1928/3265/2249 1930/3266/2020 1924/2775/2013 +f 1930/3266/2020 1918/2776/2245 1924/2775/2013 +f 1918/2776/2245 1917/3255/2008 1931/2774/2022 +f 1917/3255/2008 1923/3257/2015 1931/2774/2022 +f 1831/2670/2023 1932/2781/2033 1933/2777/2252 +f 1934/2778/2254 1935/2779/2257 1838/2677/2255 +f 1935/2779/2257 1936/2822/2539 1834/2675/2258 +f 1856/2694/2253 1933/2777/2252 1937/2780/2259 +f 1834/2672/2258 1936/2821/2539 1932/2781/2033 +f 1852/2691/2260 1937/2780/2259 1938/2782/2261 +f 1939/2783/2263 1940/2788/2269 1941/2784/2264 +f 1848/2687/2262 1938/2782/2261 1943/2786/2266 +f 1944/2787/2268 1945/3267/2540 1940/2788/2269 +f 1844/2683/2267 1943/2786/2266 1946/2789/2270 +f 1948/2790/2272 1945/2820/2540 1944/2787/2268 +f 1950/2792/2274 1948/2790/2272 1947/2791/2273 +f 1840/2679/2271 1946/2789/2270 1951/2794/2276 +f 1953/2795/2278 1950/2792/2274 1949/2793/2275 +f 1954/2797/2280 1955/2818/2305 1846/2685/2281 +f 1957/2798/2283 1953/2795/2278 1952/2796/2279 +f 1959/2800/2285 1957/2798/2283 1956/2799/2284 +f 1961/2802/2287 1959/2800/2285 1958/2801/2286 +f 1963/2804/2289 1961/2802/2287 1960/2803/2288 +f 1951/2794/2276 1964/2807/2066 1830/2668/2291 +f 1965/2806/2292 1966/2817/2304 1963/2804/2289 +f 1964/2807/2066 1967/2812/2298 1827/2669/2293 +f 1942/2785/2265 1941/2784/2264 1968/2808/2294 +f 1969/2809/2295 1968/2808/2294 1970/2810/2296 +f 1967/2812/2298 1972/2815/2302 1854/2692/2299 +f 1971/2811/2297 1970/2810/2296 1973/2813/2300 +f 1972/2815/2302 1954/2797/2280 1850/2689/2282 +f 1975/2816/2303 1976/2819/2306 1966/2817/2304 +f 1955/2818/2305 1934/2778/2254 1842/2681/2256 +f 1974/2814/2301 1973/2813/2300 1976/2819/2306 +f 1941/2784/2081 1940/2788/2082 1935/2779/2082 +f 1959/2800/2083 1961/2802/2084 1946/2789/2084 +f 1968/2808/2085 1941/2784/2081 1934/2778/2081 +f 1957/2798/2086 1959/2800/2083 1943/2786/2083 +f 1953/2795/2087 1957/2798/2086 1938/2782/2086 +f 1973/2813/2088 1970/2810/2089 1954/2797/2089 +f 1950/2792/2090 1953/2795/2087 1937/2780/2087 +f 1976/2819/2307 1973/2813/2088 1972/2815/2088 +f 1948/2790/2092 1950/2792/2090 1933/2777/2090 +f 1966/2817/1452 1976/2819/2307 1967/2812/2307 +f 1945/2820/2093 1948/2790/2092 1932/2781/2092 +f 1963/2804/2308 1966/2817/1452 1964/2807/1452 +f 1940/2788/2082 1945/3267/2093 1936/2822/2093 +f 1961/2802/2084 1963/2804/2308 1951/2794/2308 +f 1970/2810/2089 1968/2808/2085 1955/2818/2085 +f 1977/2823/2096 1978/2875/2095 1979/2824/2095 +f 1832/2826/2309 1833/3268/2314 1862/2827/2310 +f 1837/2829/2312 1841/2839/2104 1871/2830/2098 +f 1851/2832/2100 1855/2841/2315 1885/2833/2101 +f 1833/2835/2314 1837/2829/2312 1867/2831/2313 +f 1851/2832/2100 1881/2834/2102 1877/2837/2103 +f 1841/2839/2104 1845/2848/2085 1875/2840/2105 +f 1855/2841/2315 1832/2826/2309 1861/2828/2311 +f 1839/2842/2107 1869/2708/2116 1865/2703/1930 +f 1853/2844/2110 1883/2726/2118 1879/2722/2111 +f 1847/2846/2086 1877/2716/2103 1873/2712/2112 +f 1845/2848/2085 1849/3269/2111 1879/2849/2111 +f 1843/2847/2113 1873/2712/2112 1869/2708/2116 +f 1828/2850/1946 1857/2697/1946 1883/2726/2118 +f 1832/2851/2316 1981/2884/2316 1982/2852/2317 +f 1983/2854/2318 1984/2898/2319 1839/2855/2319 +f 1986/2857/2320 1987/2880/2320 1988/2858/2321 +f 1845/2860/2322 1989/2895/2322 1990/2861/2323 +f 1991/2863/2324 1989/2895/2322 1845/2860/2322 +f 1993/2865/2132 1994/2919/2364 1995/2866/2325 +f 1851/2868/2326 1996/2890/2326 1997/2869/2327 +f 1998/2871/2328 1999/2892/2329 1829/2872/2329 +f 2000/2874/2330 2001/2907/2330 1979/2824/2095 +f 1837/2876/2331 2002/2887/2331 2003/2877/2332 +f 1847/2870/2327 1997/2869/2327 1983/2854/2318 +f 2004/2879/2141 2005/2905/2141 1987/2880/2320 +f 1982/2852/2317 1996/2890/2326 1851/2868/2326 +f 2006/2881/2333 1991/2863/2324 1849/2864/2324 +f 2007/2883/2334 2008/2901/2356 1981/2884/2335 +f 2006/2881/2337 2001/2900/2355 1979/2885/2338 +f 2009/2886/2340 2010/2893/2350 2002/2887/2341 +f 1997/2869/2103 1994/3270/2086 1995/2888/2083 +f 2011/2889/2344 2012/2896/2351 1996/2890/2345 +f 1998/2871/2347 1987/2903/2358 1988/2891/2348 +f 2010/2893/2350 2007/2883/2334 2003/2877/2336 +f 1991/2863/2339 1979/2885/2338 1980/2894/2105 +f 2012/2896/2351 1994/3270/2086 1997/2869/2103 +f 1983/2854/2343 1995/2888/2083 2005/2897/2352 +f 1980/2894/2105 2009/2886/2340 1990/2861/2342 +f 2013/2899/2354 2014/2902/2357 2001/2900/2355 +f 2008/2901/2356 2011/2889/2344 1982/2852/2346 +f 1999/2892/2349 1988/2891/2348 2014/2902/2357 +f 1984/2898/2353 2005/2897/2352 1987/2903/2358 +f 2013/2899/2359 2006/2881/2333 1853/2882/2333 +f 1992/2867/2325 1995/2866/2325 2005/2905/2141 +f 1999/2892/2329 2013/2899/2359 1828/2904/2360 +f 2000/2874/2330 2015/2911/2361 2014/2906/2361 +f 2016/2908/2171 2017/2918/2362 2007/2909/2362 +f 1985/2859/2321 1988/2858/2321 2014/2906/2361 +f 2019/2912/2174 2009/2921/2174 2010/2913/2363 +f 2020/2915/2175 2021/2922/2176 2011/2916/2176 +f 2017/2918/2362 2018/2914/2363 2010/2913/2363 +f 1993/2865/2132 2020/2915/2175 2012/2917/2175 +f 1833/2920/2332 2003/2877/2332 1981/2884/2316 +f 1977/2823/2096 1980/2825/2096 2009/2921/2174 +f 1984/2898/2319 1998/2871/2328 1835/2873/2328 +f 1841/2862/2323 1990/2861/2323 2002/2887/2331 +f 2021/2922/2176 2016/2908/2171 2008/2910/2171 +f 1994/2923/2365 1995/2940/2194 2022/2924/2178 +f 2012/2926/2366 2024/2938/2375 2025/2927/2181 +f 1987/2929/2367 1988/2950/2203 2026/2930/2184 +f 2007/2932/2369 2028/2951/2204 2029/2933/2370 +f 1979/2935/2372 1980/2943/2373 2030/2936/2373 +f 1994/2923/2365 2023/2925/2365 2024/2938/2375 +f 2032/2939/2193 2022/2924/2178 1995/2940/2194 +f 2009/2942/2377 2033/2953/2383 2030/2936/2373 +f 2034/2944/2378 2035/2949/2382 2014/2945/2379 +f 2011/2928/2182 2025/2927/2181 2036/2947/2380 +f 2035/2949/2382 2026/2930/2184 1988/2950/2203 +f 2005/2941/2376 1987/2929/2367 2027/2931/2368 +f 2008/2948/2381 2036/2947/2380 2028/2951/2204 +f 2001/2946/2199 1979/2935/2372 2031/2937/2374 +f 2010/2934/2371 2029/2933/2370 2033/2953/2383 +f 2052/2969/2400 2047/2964/2392 2046/2963/2391 +f 2054/2971/2402 2053/2970/2401 2052/2969/2400 +f 2061/2978/2409 2062/2984/2409 2063/2979/2410 +f 2069/2983/2413 2065/3271/2541 2041/2981/2411 +f 2065/3271/2541 2062/3272/2542 2041/2981/2411 +f 2062/3272/2542 2066/3273/1452 2037/3274/2543 +f 2066/3273/1452 2067/3275/2544 2037/3274/2543 +f 2062/3272/2542 2037/3274/2543 2040/3276/2545 +f 2062/3272/2542 2040/3276/2545 2041/2981/2411 +f 2062/2984/2409 2061/2978/2409 2070/2985/1447 +f 2063/2987/2414 2071/3277/2546 1191/2988/2415 +f 2073/2990/2417 2074/3007/2418 2071/2991/2418 +f 2062/2993/2420 2065/3278/2420 2071/2994/2420 +f 2061/2996/2421 2064/3279/2421 2074/2997/2421 +f 2075/2999/2422 2072/3280/2422 1191/3000/2422 +f 2064/3002/2423 2075/3281/2547 1192/3003/2424 +f 2063/3005/2410 2072/3280/1447 2075/2999/1447 +f 2074/3007/2418 1192/3001/2426 1191/3000/2426 +f 2073/3012/2548 2043/3282/2549 2045/3283/2550 +f 2043/3282/2551 2044/3284/2551 2045/3283/2551 +f 2070/3011/2430 2061/3285/2552 2073/3012/2431 +f 2073/3012/2431 2045/3283/2550 2076/3286/2553 +f 2073/3012/2431 2076/3286/2553 2046/3287/2554 +f 2073/3012/2431 2046/3287/2554 2048/3288/2555 +f 2073/3012/2431 2048/3288/2555 2077/3010/2429 +f 2056/3289/2556 2078/3290/2557 2060/3291/2558 +f 2078/3290/2557 2042/3292/2559 2060/3291/2558 +f 2042/3292/2559 2039/3293/2560 2058/3294/2561 +f 2039/3293/2560 2038/3295/2562 2058/3294/2561 +f 2042/3292/2559 2059/3296/2563 2060/3291/2558 +f 2038/3295/2562 2067/3297/2564 2066/3298/2565 +f 2038/3295/2562 2066/3298/2565 2070/3015/1451 +f 2059/3296/2563 2042/3292/2559 2055/3299/2566 +f 2055/3299/2566 2042/3292/2559 2058/3294/2561 +f 2077/3016/2434 2051/3300/2567 2057/3017/2435 +f 2057/3017/2435 2058/3294/2561 2038/3295/2562 +f 2057/3017/2435 2038/3295/2562 2070/3015/1451 +f 1942/3301/2265 1969/3302/2295 1971/3303/2297 +f 1971/3303/2297 1974/3304/2301 1975/3305/2303 +f 1975/3305/2303 1965/3306/2292 1962/3019/2290 +f 1962/3019/2290 1960/3307/2288 1958/3308/2286 +f 1958/3308/2286 1956/3309/2284 1962/3019/2290 +f 1956/3309/2284 1952/3020/2279 1962/3019/2290 +f 1952/3020/2279 1949/3310/2275 1939/3021/2263 +f 1949/3310/2275 1947/3311/2273 1939/3021/2263 +f 1947/3311/2273 1944/3312/2268 1939/3021/2263 +f 1939/3021/2263 1942/3301/2265 1971/3303/2297 +f 1971/3303/2297 1975/3305/2303 1939/3021/2263 +f 1975/3305/2303 1962/3019/2290 1939/3021/2263 +f 1732/3313/2038 1759/3314/2069 1761/3022/2071 +f 1761/3022/2071 1764/3315/2075 1752/3023/2063 +f 1764/3315/2075 1765/3316/2077 1752/3023/2063 +f 1765/3316/2077 1755/3317/2065 1752/3023/2063 +f 1752/3023/2063 1750/3318/2061 1742/3024/2052 +f 1750/3318/2061 1748/3319/2059 1742/3024/2052 +f 1748/3319/2059 1746/3320/2057 1742/3024/2052 +f 1742/3024/2052 1739/3321/2048 1737/3322/2046 +f 1737/3322/2046 1734/3323/2041 1742/3024/2052 +f 1734/3323/2041 1729/3324/2036 1742/3024/2052 +f 1729/3324/2036 1732/3313/2038 1761/3022/2071 +f 1729/3324/2036 1761/3022/2071 1742/3024/2052 +f 1191/3027/1452 1180/3325/1445 1186/3025/1452 +f 1180/3325/1445 1179/3326/1446 1186/3025/1452 +f 1270/3327/2568 1244/3328/2569 1276/3329/2570 +f 1244/3328/2569 1198/3330/2571 1251/3331/2572 +f 1252/3332/2573 1244/3328/2569 1251/3331/2572 +f 1198/3330/2571 1195/3333/2574 1251/3331/2572 +f 1239/3334/2575 1240/3335/2576 1271/3336/2577 +f 1240/3335/2576 1269/3030/2439 1258/3337/2578 +f 1263/3338/2579 1240/3335/2576 1261/3339/2580 +f 1271/3336/2577 1265/3340/2581 1239/3334/2575 +f 1263/3338/2579 1271/3336/2577 1240/3335/2576 +f 1244/3328/2569 1252/3332/2573 1274/3341/2582 +f 1244/3328/2569 1274/3341/2582 1276/3329/2570 +f 1261/3339/2580 1240/3335/2576 1258/3337/2578 +f 1269/3030/2439 1270/3327/2568 1282/3028/2437 +f 1270/3327/2568 1276/3329/2570 1278/3342/2583 +f 1257/3343/2584 1258/3337/2578 1269/3030/2439 +f 1270/3327/2568 1278/3342/2583 1280/3344/2585 +f 1270/3327/2568 1280/3344/2585 1282/3028/2437 +f 1284/3029/2438 1257/3343/2584 1269/3030/2439 +f 2065/2992/2419 2069/3345/2586 2068/3031/2440 +f 2068/3031/2440 2078/3290/2587 2050/3346/2588 +f 2078/3290/2587 2056/3289/2589 2050/3346/2588 +f 2050/3346/2588 2043/3032/2441 2068/3031/2440 +f 2043/3032/2441 2073/2990/2417 2065/2992/2419 +f 1523/3035/1453 1545/3347/1453 1549/3033/1453 +f 1545/3347/1453 1558/3348/1453 1554/3349/1453 +f 1549/3033/1453 1545/3347/1453 1550/3350/1453 +f 1558/3348/1453 1544/3351/1453 1554/3349/1453 +f 1544/3351/1453 1543/3352/1453 1554/3349/1453 +f 1543/3352/1453 1547/3353/1453 1555/3354/1453 +f 1547/3353/1453 1546/3355/1453 1555/3354/1453 +f 1557/3356/1453 1548/3357/1453 1524/3358/1453 +f 1552/3359/1453 1557/3356/1453 1524/3358/1453 +f 1543/3352/1453 1555/3354/1453 1554/3349/1453 +f 1552/3359/1453 1524/3358/1453 1553/3360/1453 +f 1524/3358/1453 1523/3035/1453 1553/3360/1453 +f 1554/3349/1453 1556/3361/1453 1545/3347/1453 +f 1556/3361/1453 1550/3350/1453 1545/3347/1453 +f 1551/3034/1453 1553/3360/1453 1523/3035/1453 +f 1185/3036/1453 1184/3362/1448 1188/3037/1448 +f 1192/3038/1453 1194/3363/1453 1185/3036/1453 +f 1557/3039/2442 1528/2263/1847 1527/3040/2443 +f 784/3042/1055 777/3364/2590 1189/3365/2591 +f 1189/3365/2591 720/3043/2445 784/3042/1055 +f 720/3043/2445 719/3366/985 793/3041/1054 +f 718/3367/2592 717/3368/2593 1190/3044/2446 +f 1190/3044/2446 1189/3369/2594 757/3045/1024 +f 1189/3369/2594 777/3370/1044 758/3371/1022 +f 1189/3369/2594 758/3371/1022 757/3045/1024 +f 788/3046/1048 718/3367/984 1190/3044/2446 +o ShellL +v -0.256342 0.546177 0.003411 +v -0.316872 0.511227 0.003411 +v -0.317492 0.511922 0.601541 +v -0.256632 0.547057 0.601541 +v -0.120362 0.240757 0.003411 +v -0.068422 0.287527 0.003411 +v -0.067672 0.286977 0.601541 +v -0.119897 0.239952 0.601541 +v -0.357952 0.454687 0.003411 +v -0.358802 0.455062 0.601541 +v -0.039997 0.351377 0.003411 +v -0.039087 0.351182 0.601541 +v -0.372482 0.386322 0.003411 +v -0.373412 0.386322 0.601541 +v -0.039997 0.421267 0.003411 +v -0.039087 0.421462 0.601541 +v -0.357952 0.317957 0.003411 +v -0.358802 0.317577 0.601541 +v -0.068422 0.485117 0.003411 +v -0.067672 0.485662 0.601541 +v -0.316872 0.261412 0.003411 +v -0.317492 0.260722 0.601541 +v -0.120362 0.531882 0.003411 +v -0.119897 0.532687 0.601541 +v -0.256342 0.226467 0.003411 +v -0.256632 0.225582 0.601541 +v -0.186832 0.553482 0.003411 +v -0.186737 0.554407 0.601541 +v -0.186832 0.219162 0.003411 +v -0.186737 0.218237 0.601541 +v -0.216302 0.422942 0.729391 +v -0.264237 0.570472 0.729421 +v -0.333967 0.530212 0.729421 +v -0.230167 0.414937 0.729401 +v -0.184162 0.193752 0.729421 +v -0.186922 0.220012 0.711551 +v -0.120792 0.241497 0.711551 +v -0.107587 0.218632 0.729421 +v -0.185147 0.352972 0.729376 +v -0.047757 0.272507 0.729421 +v -0.173247 0.363687 0.729426 +v -0.381292 0.465077 0.729421 +v -0.239582 0.401982 0.729351 +v -0.015007 0.346062 0.729421 +v -0.166737 0.378312 0.729396 +v -0.398032 0.386322 0.729421 +v -0.242912 0.386322 0.729421 +v -0.015007 0.426577 0.729421 +v -0.166737 0.394327 0.729401 +v -0.381292 0.307567 0.729421 +v -0.239582 0.370657 0.729466 +v -0.047757 0.500132 0.729421 +v -0.173247 0.408957 0.729356 +v -0.333967 0.242427 0.729421 +v -0.230167 0.357702 0.729476 +v -0.107587 0.554007 0.729421 +v -0.185147 0.419667 0.729381 +v -0.264237 0.202172 0.729421 +v -0.216302 0.349697 0.729481 +v -0.184162 0.578887 0.729421 +v -0.200377 0.424617 0.729361 +v -0.200377 0.348022 0.729446 +v -0.256077 0.545362 0.711551 +v -0.316297 0.510592 0.711551 +v -0.069117 0.288027 0.711551 +v -0.357172 0.454337 0.711551 +v -0.040832 0.351552 0.711551 +v -0.371627 0.386322 0.711551 +v -0.040832 0.421087 0.711551 +v -0.357172 0.318302 0.711551 +v -0.069117 0.484612 0.711551 +v -0.316297 0.262047 0.711551 +v -0.120792 0.531142 0.711551 +v -0.256077 0.227282 0.711551 +v -0.186922 0.552632 0.711551 +v -0.358802 0.317577 0.729776 +v -0.373412 0.386322 0.729776 +v -0.256632 0.547057 0.729776 +v -0.186737 0.554407 0.729776 +v -0.256632 0.225582 0.729776 +v -0.317492 0.260722 0.729776 +v -0.317492 0.511922 0.729776 +v -0.358802 0.455062 0.729776 +v -0.186737 0.218237 0.729776 +v -0.119897 0.532687 0.729776 +v -0.067672 0.485662 0.729776 +v -0.039087 0.351182 0.729776 +v -0.067672 0.286977 0.729776 +v -0.039087 0.421462 0.729776 +v -0.119897 0.239952 0.729776 +v -0.230167 0.414937 0.729141 +v -0.217047 0.400367 0.728861 +v -0.210242 0.404297 0.728711 +v -0.216302 0.422942 0.729001 +v -0.173247 0.363687 0.729166 +v -0.189112 0.375212 0.728926 +v -0.194952 0.369952 0.729086 +v -0.221667 0.394007 0.729041 +v -0.166737 0.378312 0.729106 +v -0.185917 0.382392 0.728811 +v -0.223302 0.386322 0.729136 +v -0.166737 0.394327 0.728976 +v -0.185917 0.390252 0.728801 +v -0.221667 0.378632 0.729246 +v -0.173247 0.408957 0.729011 +v -0.189112 0.397427 0.728626 +v -0.217047 0.372277 0.729301 +v -0.185147 0.419667 0.728916 +v -0.194952 0.402687 0.728711 +v -0.210242 0.368347 0.729276 +v -0.200377 0.424617 0.728991 +v -0.202427 0.405117 0.728641 +v -0.202427 0.367527 0.729226 +v -0.221667 0.378632 0.729186 +v -0.217047 0.372277 0.729196 +v -0.210242 0.368347 0.729201 +v -0.202427 0.367527 0.729141 +v -0.189112 0.375212 0.728876 +v -0.185917 0.382392 0.728806 +v -0.185917 0.390252 0.728596 +v -0.189112 0.397427 0.728626 +v -0.194952 0.402687 0.728491 +v -0.202427 0.405117 0.728601 +v -0.210242 0.404297 0.728606 +v -0.217047 0.400367 0.728766 +v -0.221667 0.394007 0.728911 +vn -0.6691 0.7431 -0.0016 +vn -0.3090 0.9511 -0.0008 +vn -0.3090 0.9511 -0.0016 +vn 0.5000 -0.8660 -0.0016 +vn 0.8090 -0.5878 -0.0008 +vn 0.5000 -0.8660 -0.0008 +vn -0.9136 0.4067 -0.0008 +vn -0.6691 0.7432 -0.0008 +vn 0.8090 -0.5878 -0.0016 +vn 0.9781 -0.2079 -0.0008 +vn -1.0000 -0.0000 -0.0016 +vn -0.9135 0.4067 -0.0016 +vn 0.9782 0.2079 -0.0016 +vn 0.9782 -0.2079 -0.0016 +vn -0.9136 -0.4067 -0.0016 +vn -1.0000 -0.0000 -0.0008 +vn 0.8090 0.5878 -0.0016 +vn 0.9781 0.2079 -0.0008 +vn -0.6691 -0.7431 -0.0016 +vn -0.9135 -0.4067 -0.0008 +vn 0.5000 0.8660 -0.0016 +vn 0.8090 0.5878 -0.0008 +vn -0.3090 -0.9511 -0.0016 +vn -0.6691 -0.7431 -0.0008 +vn 0.1046 0.9945 -0.0016 +vn 0.5000 0.8660 -0.0008 +vn 0.1045 -0.9945 -0.0008 +vn -0.3090 -0.9511 -0.0008 +vn 0.1045 0.9945 -0.0008 +vn 0.1045 -0.9945 -0.0016 +vn 0.0001 -0.0002 1.0000 +vn -0.0009 -0.0011 1.0000 +vn 0.0013 0.0002 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.0586 -0.5574 -0.8282 +vn 0.2802 -0.4854 -0.8282 +vn 0.2803 -0.4854 -0.8282 +vn 0.0008 0.0077 1.0000 +vn -0.0001 -0.0000 1.0000 +vn -0.0008 -0.0006 1.0000 +vn 0.0001 -0.0003 1.0000 +vn 0.0077 0.0019 1.0000 +vn -0.0001 0.0001 1.0000 +vn 0.0001 0.0009 1.0000 +vn 0.0003 -0.0000 1.0000 +vn 0.0057 0.0034 1.0000 +vn -0.0003 -0.0000 1.0000 +vn -0.0004 0.0012 1.0000 +vn -0.0002 -0.0000 1.0000 +vn 0.0035 0.0034 1.0000 +vn 0.0001 0.0006 1.0000 +vn -0.0002 -0.0002 1.0000 +vn 0.0024 0.0036 1.0000 +vn -0.0002 -0.0003 1.0000 +vn -0.0000 -0.0003 1.0000 +vn 0.0022 0.0038 1.0000 +vn 0.0002 0.0002 1.0000 +vn 0.0028 0.0059 1.0000 +vn 0.0001 0.0001 1.0000 +vn -0.1732 0.5331 -0.8281 +vn -0.3750 0.4165 -0.8282 +vn 0.4535 -0.3295 -0.8282 +vn -0.5120 0.2280 -0.8282 +vn 0.5483 -0.1165 -0.8281 +vn -0.5605 -0.0000 -0.8282 +vn 0.5483 0.1165 -0.8281 +vn -0.5121 -0.2280 -0.8281 +vn 0.4535 0.3294 -0.8282 +vn 0.4535 0.3295 -0.8282 +vn -0.3750 -0.4165 -0.8282 +vn 0.2803 0.4854 -0.8282 +vn -0.1732 -0.5331 -0.8281 +vn 0.2802 0.4854 -0.8282 +vn 0.0586 0.5575 -0.8281 +vn -1.0000 -0.0000 -0.0000 +vn 0.1045 0.9945 -0.0000 +vn -0.6691 -0.7431 -0.0000 +vn -0.3090 0.9511 -0.0000 +vn -0.9136 0.4067 -0.0000 +vn -0.9135 -0.4067 -0.0000 +vn -0.3090 -0.9511 -0.0000 +vn -0.6691 0.7432 -0.0000 +vn 0.8090 0.5878 -0.0000 +vn 0.8090 -0.5878 -0.0000 +vn 0.9781 0.2079 -0.0000 +vn 0.1045 -0.9945 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.9781 -0.2079 -0.0000 +vn 0.0250 0.0001 0.9997 +vn 0.0093 -0.0107 0.9999 +vn 0.0176 -0.0014 0.9998 +vn -0.0035 0.0141 0.9999 +vn 0.0054 0.0185 0.9998 +vn 0.0227 0.0066 0.9997 +vn -0.0116 0.0098 0.9999 +vn -0.0032 0.0208 0.9998 +vn 0.0163 0.0112 0.9998 +vn -0.0102 0.0002 0.9999 +vn -0.0111 0.0125 0.9999 +vn 0.0088 0.0105 0.9999 +vn -0.0125 -0.0058 0.9999 +vn -0.0154 0.0023 0.9999 +vn -0.0102 -0.0106 0.9999 +vn -0.0080 -0.0098 0.9999 +vn 0.0060 0.0092 0.9999 +vn 0.0021 -0.0150 0.9999 +vn 0.0018 -0.0169 0.9999 +vn 0.0163 -0.0121 0.9998 +vn 0.0136 0.0186 0.9997 +vn 0.0080 0.0211 0.9997 +vn 0.0068 0.0182 0.9998 +vn -0.0000 -0.0000 1.0000 +vn -0.0003 -0.0002 1.0000 +vn -0.0000 -0.0004 1.0000 +vn -0.0000 -0.0002 1.0000 +vn -0.0193 -0.0068 0.9998 +vn 0.0045 0.0079 1.0000 +vn 0.0111 0.0124 0.9999 +vn 0.0123 0.0171 0.9998 +vn 0.0535 0.0178 0.9984 +vn 0.0119 0.0152 0.9998 +vn 0.0003 0.0018 1.0000 +vn 0.0082 0.0106 0.9999 +vn 0.0061 0.0065 1.0000 +vn 0.0107 0.0121 0.9999 +vn 0.0453 -0.0105 0.9989 +vn 0.0152 0.0142 0.9998 +vn 0.0692 0.0266 0.9972 +vn 0.0360 0.0656 0.9972 +vn -0.0044 0.0483 0.9988 vt 0.900095 0.372831 vt 0.985204 0.360142 vt 0.901646 0.377367 @@ -8271,6 +12316,456 @@ vt 0.683212 0.470177 vt 0.596487 0.327587 vt 0.606329 0.336849 vt 0.618961 0.335910 +vt 0.612555 0.371309 +vt 0.732969 0.405750 +vt 0.687564 0.434164 +vt 0.682906 0.303280 +vt 0.723925 0.400441 +vt 0.627355 0.390490 +vt 0.723869 0.334698 +vt 0.673753 0.465539 +vt 0.688657 0.455255 +vt 0.682126 0.452537 +vt 0.626707 0.332818 +vt 0.631076 0.324865 +vt 0.631270 0.316393 +vt 0.628318 0.309157 +vt 0.622169 0.303994 +vt 0.614288 0.301889 +vt 0.605651 0.302595 +vt 0.600209 0.309710 +vt 0.596324 0.314769 +vt 0.594972 0.321125 +vt 0.600664 0.333078 +vt 0.612748 0.337849 +s 1 +f 2080/3372/2595 2082/3373/2596 2079/3374/2597 +f 2083/3375/2598 2085/3376/2599 2086/3377/2600 +f 2080/3372/2595 2088/3378/2601 2081/3379/2602 +f 2084/3380/2603 2090/3381/2604 2085/3376/2599 +f 2091/3382/2605 2088/3378/2601 2087/3383/2606 +f 2093/3384/2607 2090/3381/2604 2089/3385/2608 +f 2095/3386/2609 2092/3387/2610 2091/3382/2605 +f 2097/3388/2611 2094/3389/2612 2093/3384/2607 +f 2099/3390/2613 2096/3391/2614 2095/3386/2609 +f 2101/3392/2615 2098/3393/2616 2097/3388/2611 +f 2103/3394/2617 2100/3395/2618 2099/3390/2613 +f 2105/3396/2619 2102/3397/2620 2101/3392/2615 +f 2103/3394/2617 2108/3398/2621 2104/3399/2622 +f 2079/3374/2597 2106/3400/2623 2105/3396/2619 +f 2107/3401/2624 2086/3377/2600 2108/3398/2621 +f 2110/3402/2625 2112/3403/2626 2109/3404/2627 +f 2107/3401/2628 2099/3390/2628 2101/3392/2628 +f 2113/3405/2629 2115/3406/2630 2116/3407/2631 +f 2117/3408/2632 2118/3409/2633 2119/3410/2634 +f 2111/3411/2635 2121/3412/2636 2112/3403/2626 +f 2119/3410/2634 2122/3413/2637 2123/3414/2638 +f 2120/3415/2639 2125/3416/2640 2121/3412/2636 +f 2123/3414/2638 2126/3417/2641 2127/3418/2642 +f 2125/3416/2640 2128/3419/2643 2129/3420/2644 +f 2126/3417/2641 2131/3421/2645 2127/3418/2642 +f 2129/3420/2644 2132/3422/2646 2133/3423/2647 +f 2131/3421/2645 2134/3424/2648 2135/3425/2649 +f 2133/3423/2647 2136/3426/2649 2137/3427/2650 +f 2134/3424/2648 2139/3428/2651 2135/3425/2649 +f 2136/3426/2649 2140/3429/2652 2137/3427/2650 +f 2139/3428/2651 2110/3402/2625 2109/3404/2627 +f 2140/3429/2652 2116/3430/2653 2117/3408/2632 +f 2110/3431/2654 2142/3432/2655 2111/3433/2655 +f 2116/3407/2631 2143/3434/2656 2118/3435/2656 +f 2111/3433/2655 2144/3436/2657 2120/3437/2657 +f 2143/3434/2656 2122/3438/2658 2118/3435/2656 +f 2144/3436/2657 2124/3439/2659 2120/3437/2657 +f 2145/3440/2658 2126/3441/2660 2122/3438/2658 +f 2146/3442/2659 2128/3443/2661 2124/3439/2659 +f 2126/3441/2660 2149/3444/2662 2130/3445/2663 +f 2148/3446/2661 2132/3447/2664 2128/3443/2661 +f 2149/3444/2662 2134/3448/2665 2130/3445/2663 +f 2150/3449/2664 2136/3450/2666 2132/3447/2664 +f 2151/3451/2667 2138/3452/2668 2134/3448/2665 +f 2136/3450/2666 2114/3453/2629 2113/3405/2629 +f 2138/3452/2668 2141/3454/2654 2110/3431/2654 +f 2096/3455/2614 2155/3456/2669 2092/3457/2610 +f 2082/3458/2596 2157/3459/2670 2106/3460/2623 +f 2104/3461/2622 2159/3462/2671 2100/3463/2618 +f 2081/3464/2602 2156/3465/2672 2082/3458/2596 +f 2092/3457/2610 2161/3466/2673 2088/3467/2601 +f 2100/3463/2618 2154/3468/2674 2096/3455/2614 +f 2108/3469/2621 2158/3470/2675 2104/3461/2622 +f 2088/3467/2601 2160/3471/2676 2081/3464/2602 +f 2102/3472/2620 2164/3473/2677 2098/3474/2616 +f 2090/3475/2604 2166/3476/2678 2085/3477/2599 +f 2098/3474/2616 2167/3478/2679 2094/3479/2612 +f 2086/3480/2600 2162/3481/2680 2108/3469/2621 +f 2106/3460/2623 2163/3482/2681 2102/3472/2620 +f 2085/3477/2599 2168/3483/2682 2086/3480/2600 +f 2094/3479/2612 2165/3484/2683 2090/3475/2604 +f 2170/3485/2684 2172/3486/2685 2169/3487/2686 +f 2173/3488/2687 2175/3489/2688 2117/3490/2632 +f 2176/3491/2689 2169/3487/2686 2121/3492/2636 +f 2177/3493/2690 2174/3494/2691 2173/3488/2687 +f 2179/3495/2692 2121/3492/2636 2125/3496/2640 +f 2180/3497/2693 2178/3498/2694 2177/3493/2690 +f 2182/3499/2695 2125/3496/2640 2129/3500/2644 +f 2183/3501/2696 2181/3502/2697 2180/3497/2693 +f 2133/3503/2647 2182/3499/2695 2129/3500/2644 +f 2187/3504/2698 2183/3501/2696 2186/3505/2699 +f 2188/3506/2700 2133/3503/2647 2137/3507/2650 +f 2190/3508/2701 2186/3505/2699 2189/3509/2702 +f 2140/3510/2652 2188/3506/2700 2137/3507/2650 +f 2171/3511/2703 2189/3509/2702 2172/3486/2685 +f 2175/3489/2688 2140/3510/2652 2117/3490/2632 +f 2199/3512/2704 2201/3513/2705 2203/3514/2706 +f 2080/3372/2595 2081/3379/2602 2082/3373/2596 +f 2083/3375/2598 2084/3380/2603 2085/3376/2599 +f 2080/3372/2595 2087/3383/2606 2088/3378/2601 +f 2084/3380/2603 2089/3385/2608 2090/3381/2604 +f 2091/3382/2605 2092/3387/2610 2088/3378/2601 +f 2093/3384/2607 2094/3389/2612 2090/3381/2604 +f 2095/3386/2609 2096/3391/2614 2092/3387/2610 +f 2097/3388/2611 2098/3393/2616 2094/3389/2612 +f 2099/3390/2613 2100/3395/2618 2096/3391/2614 +f 2101/3392/2615 2102/3397/2620 2098/3393/2616 +f 2103/3394/2617 2104/3399/2622 2100/3395/2618 +f 2105/3396/2619 2106/3400/2623 2102/3397/2620 +f 2103/3394/2617 2107/3401/2624 2108/3398/2621 +f 2079/3374/2597 2082/3373/2596 2106/3400/2623 +f 2107/3401/2624 2083/3375/2598 2086/3377/2600 +f 2110/3402/2625 2111/3411/2635 2112/3403/2626 +f 2095/3386/2628 2091/3382/2628 2087/3383/2628 +f 2087/3383/2628 2080/3372/2628 2101/3392/2628 +f 2080/3372/2628 2079/3374/2628 2101/3392/2628 +f 2079/3374/2628 2105/3396/2628 2101/3392/2628 +f 2101/3392/2628 2097/3388/2628 2093/3384/2628 +f 2093/3384/2628 2089/3385/2628 2101/3392/2628 +f 2089/3385/2628 2084/3380/2628 2101/3392/2628 +f 2084/3380/2628 2083/3375/2628 2107/3401/2628 +f 2107/3401/2628 2103/3394/2628 2099/3390/2628 +f 2099/3390/2628 2095/3386/2628 2101/3392/2628 +f 2095/3386/2628 2087/3383/2628 2101/3392/2628 +f 2084/3380/2628 2107/3401/2628 2101/3392/2628 +f 2113/3405/2629 2114/3453/2629 2115/3406/2630 +f 2117/3408/2632 2116/3430/2653 2118/3409/2633 +f 2111/3411/2635 2120/3415/2639 2121/3412/2636 +f 2119/3410/2634 2118/3409/2633 2122/3413/2637 +f 2120/3415/2639 2124/3515/2707 2125/3416/2640 +f 2123/3414/2638 2122/3413/2637 2126/3417/2641 +f 2125/3416/2640 2124/3515/2707 2128/3419/2643 +f 2126/3417/2641 2130/3516/2708 2131/3421/2645 +f 2129/3420/2644 2128/3419/2643 2132/3422/2646 +f 2131/3421/2645 2130/3516/2708 2134/3424/2648 +f 2133/3423/2647 2132/3422/2646 2136/3426/2649 +f 2134/3424/2648 2138/3517/2709 2139/3428/2651 +f 2136/3426/2649 2113/3518/2710 2140/3429/2652 +f 2139/3428/2651 2138/3517/2709 2110/3402/2625 +f 2140/3429/2652 2113/3518/2710 2116/3430/2653 +f 2110/3431/2654 2141/3454/2654 2142/3432/2655 +f 2116/3407/2631 2115/3406/2630 2143/3434/2656 +f 2111/3433/2655 2142/3432/2655 2144/3436/2657 +f 2143/3434/2656 2145/3440/2658 2122/3438/2658 +f 2144/3436/2657 2146/3442/2659 2124/3439/2659 +f 2145/3440/2658 2147/3519/2660 2126/3441/2660 +f 2146/3442/2659 2148/3446/2661 2128/3443/2661 +f 2126/3441/2660 2147/3519/2660 2149/3444/2662 +f 2148/3446/2661 2150/3449/2664 2132/3447/2664 +f 2149/3444/2662 2151/3451/2667 2134/3448/2665 +f 2150/3449/2664 2152/3520/2666 2136/3450/2666 +f 2151/3451/2667 2153/3521/2668 2138/3452/2668 +f 2136/3450/2666 2152/3520/2666 2114/3453/2629 +f 2138/3452/2668 2153/3521/2668 2141/3454/2654 +f 2096/3455/2614 2154/3468/2674 2155/3456/2669 +f 2082/3458/2596 2156/3465/2672 2157/3459/2670 +f 2104/3461/2622 2158/3470/2675 2159/3462/2671 +f 2081/3464/2602 2160/3471/2676 2156/3465/2672 +f 2092/3457/2610 2155/3456/2669 2161/3466/2673 +f 2100/3463/2618 2159/3462/2671 2154/3468/2674 +f 2108/3469/2621 2162/3481/2680 2158/3470/2675 +f 2088/3467/2601 2161/3466/2673 2160/3471/2676 +f 2102/3472/2620 2163/3482/2681 2164/3473/2677 +f 2090/3475/2604 2165/3484/2683 2166/3476/2678 +f 2098/3474/2616 2164/3473/2677 2167/3478/2679 +f 2086/3480/2600 2168/3483/2682 2162/3481/2680 +f 2106/3460/2623 2157/3459/2670 2163/3482/2681 +f 2085/3477/2599 2166/3476/2678 2168/3483/2682 +f 2094/3479/2612 2167/3478/2679 2165/3484/2683 +f 2170/3485/2684 2171/3511/2703 2172/3486/2685 +f 2173/3488/2687 2174/3494/2691 2175/3489/2688 +f 2176/3491/2689 2170/3485/2684 2169/3487/2686 +f 2177/3493/2690 2178/3498/2694 2174/3494/2691 +f 2179/3495/2692 2176/3491/2689 2121/3492/2636 +f 2180/3497/2693 2181/3502/2697 2178/3498/2694 +f 2182/3499/2695 2179/3495/2692 2125/3496/2640 +f 2183/3501/2696 2184/3522/2711 2181/3502/2697 +f 2133/3503/2647 2185/3523/2712 2182/3499/2695 +f 2187/3504/2698 2184/3522/2711 2183/3501/2696 +f 2188/3506/2700 2185/3523/2712 2133/3503/2647 +f 2190/3508/2701 2187/3504/2698 2186/3505/2699 +f 2140/3510/2652 2191/3524/2713 2188/3506/2700 +f 2171/3511/2703 2190/3508/2701 2189/3509/2702 +f 2175/3489/2688 2191/3524/2713 2140/3510/2652 +f 2204/3525/2714 2179/3526/2715 2192/3527/2716 +f 2192/3527/2716 2193/3528/2717 2194/3529/2718 +f 2194/3529/2718 2195/3530/2719 2192/3527/2716 +f 2195/3530/2719 2175/3531/2720 2192/3527/2716 +f 2175/3531/2720 2196/3532/2721 2197/3533/2722 +f 2197/3533/2722 2198/3534/2723 2199/3512/2704 +f 2199/3512/2704 2200/3535/2724 2201/3513/2705 +f 2201/3513/2705 2202/3536/2725 2203/3514/2706 +f 2203/3514/2706 2204/3525/2714 2175/3531/2720 +f 2204/3525/2714 2192/3527/2716 2175/3531/2720 +f 2175/3531/2720 2197/3533/2722 2203/3514/2706 +f 2197/3533/2722 2199/3512/2704 2203/3514/2706 +o ShellR +v 0.085103 0.485662 0.601681 +v 0.056518 0.421462 0.601681 +v 0.056518 0.421462 0.729916 +v 0.085103 0.485662 0.729916 +v 0.273778 0.546177 0.003551 +v 0.274063 0.547057 0.601681 +v 0.334928 0.511922 0.601681 +v 0.334303 0.511227 0.003551 +v 0.137798 0.240757 0.003551 +v 0.137333 0.239952 0.601681 +v 0.085103 0.286977 0.601681 +v 0.085858 0.287527 0.003551 +v 0.376233 0.455062 0.601681 +v 0.375383 0.454687 0.003551 +v 0.056518 0.351182 0.601681 +v 0.057428 0.351372 0.003551 +v 0.390848 0.386322 0.601681 +v 0.389918 0.386322 0.003551 +v 0.057428 0.421267 0.003551 +v 0.376233 0.317577 0.601681 +v 0.375383 0.317957 0.003551 +v 0.085859 0.485117 0.003551 +v 0.334928 0.260722 0.601681 +v 0.334303 0.261412 0.003551 +v 0.137333 0.532687 0.601681 +v 0.137799 0.531882 0.003551 +v 0.274063 0.225582 0.601681 +v 0.273778 0.226467 0.003551 +v 0.204168 0.554407 0.601681 +v 0.204269 0.553482 0.003551 +v 0.204168 0.218237 0.601681 +v 0.204268 0.219162 0.003551 +v 0.233738 0.422942 0.729346 +v 0.247603 0.414937 0.729341 +v 0.351398 0.530212 0.729561 +v 0.281668 0.570472 0.729561 +v 0.201598 0.193752 0.729561 +v 0.125023 0.218632 0.729561 +v 0.138223 0.241497 0.711691 +v 0.204358 0.220012 0.711691 +v 0.202583 0.352972 0.729631 +v 0.190683 0.363687 0.729611 +v 0.065188 0.272507 0.729561 +v 0.257013 0.401982 0.729371 +v 0.398723 0.465077 0.729561 +v 0.184168 0.378312 0.729536 +v 0.032438 0.346062 0.729561 +v 0.260343 0.386322 0.729406 +v 0.415463 0.386322 0.729561 +v 0.184168 0.394327 0.729381 +v 0.032438 0.426577 0.729561 +v 0.257013 0.370657 0.729446 +v 0.398723 0.307567 0.729561 +v 0.190683 0.408957 0.729446 +v 0.247603 0.357702 0.729386 +v 0.351398 0.242427 0.729561 +v 0.202583 0.419667 0.729406 +v 0.125023 0.554007 0.729561 +v 0.065188 0.500132 0.729561 +v 0.233738 0.349697 0.729536 +v 0.281668 0.202172 0.729561 +v 0.217813 0.424617 0.729366 +v 0.201598 0.578887 0.729561 +v 0.217813 0.348022 0.729611 +v 0.333733 0.510592 0.711691 +v 0.273513 0.545362 0.711691 +v 0.086548 0.288027 0.711691 +v 0.374603 0.454337 0.711691 +v 0.058263 0.351552 0.711691 +v 0.389063 0.386322 0.711691 +v 0.058263 0.421087 0.711691 +v 0.374603 0.318302 0.711691 +v 0.086548 0.484612 0.711691 +v 0.333733 0.262047 0.711691 +v 0.138223 0.531142 0.711691 +v 0.273513 0.227282 0.711691 +v 0.204358 0.552627 0.711691 +v 0.390848 0.386322 0.729916 +v 0.376233 0.317577 0.729916 +v 0.204168 0.554407 0.729916 +v 0.274063 0.547057 0.729916 +v 0.334928 0.260722 0.729916 +v 0.274063 0.225582 0.729916 +v 0.334928 0.511922 0.729916 +v 0.376233 0.455062 0.729916 +v 0.204168 0.218237 0.729916 +v 0.137333 0.532687 0.729916 +v 0.085103 0.286977 0.729916 +v 0.056518 0.351182 0.729916 +v 0.137333 0.239952 0.729916 +v 0.247603 0.414937 0.728661 +v 0.233738 0.422942 0.728646 +v 0.227678 0.404292 0.728156 +v 0.234483 0.400367 0.728136 +v 0.212388 0.369952 0.729486 +v 0.206548 0.375212 0.729441 +v 0.257013 0.401982 0.728706 +v 0.239103 0.394007 0.728261 +v 0.203348 0.382392 0.729266 +v 0.260343 0.386322 0.728856 +v 0.240733 0.386322 0.728411 +v 0.203348 0.390252 0.728916 +v 0.257013 0.370657 0.729041 +v 0.239103 0.378632 0.728676 +v 0.190683 0.408957 0.729041 +v 0.206548 0.397427 0.728666 +v 0.234483 0.372277 0.728916 +v 0.202583 0.419667 0.728841 +v 0.212388 0.402687 0.728421 +v 0.227678 0.368347 0.729271 +v 0.217813 0.424617 0.728716 +v 0.219863 0.405117 0.728236 +v 0.219863 0.367522 0.729441 +v 0.240733 0.386322 0.728261 +v 0.239103 0.394007 0.728026 +v 0.234483 0.400367 0.727946 +v 0.227678 0.404292 0.727921 +v 0.219863 0.405117 0.728041 +v 0.212388 0.402687 0.728241 +v 0.206548 0.397427 0.728536 +v 0.239103 0.378632 0.728531 +vn -0.9135 0.4068 -0.0000 +vn 0.3090 0.9511 -0.0008 +vn 0.6691 0.7431 -0.0016 +vn 0.3090 0.9510 -0.0015 +vn -0.5000 -0.8660 -0.0008 +vn -0.8090 -0.5878 -0.0016 +vn -0.5000 -0.8660 -0.0016 +vn 0.6691 0.7431 -0.0008 +vn 0.9135 0.4068 -0.0016 +vn -0.8090 -0.5878 -0.0008 +vn -0.9781 -0.2079 -0.0016 +vn 0.9135 0.4067 -0.0008 +vn 1.0000 -0.0000 -0.0016 +vn -0.9781 -0.2079 -0.0008 +vn -0.9781 0.2079 -0.0016 +vn 1.0000 -0.0000 -0.0008 +vn 0.9135 -0.4067 -0.0016 +vn -0.7654 0.6435 -0.0010 +vn -0.8090 0.5878 -0.0016 +vn 0.6691 -0.7431 -0.0008 +vn 0.6691 -0.7431 -0.0016 +vn -0.5000 0.8660 -0.0008 +vn -0.5000 0.8660 -0.0016 +vn 0.3090 -0.9511 -0.0016 +vn -0.1045 0.9945 -0.0008 +vn -0.1045 0.9945 -0.0016 +vn 0.3090 -0.9511 -0.0008 +vn -0.1045 -0.9945 -0.0016 +vn -0.1045 -0.9945 -0.0008 +vn 0.0003 -0.0016 1.0000 +vn -0.0009 -0.0010 1.0000 +vn -0.0004 -0.0013 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0586 -0.5574 -0.8282 +vn -0.2803 -0.4854 -0.8281 +vn 0.0020 0.0028 1.0000 +vn -0.0002 -0.0000 1.0000 +vn -0.0002 -0.0004 1.0000 +vn -0.0011 -0.0005 1.0000 +vn -0.0011 -0.0004 1.0000 +vn 0.0059 0.0066 1.0000 +vn 0.0012 0.0058 1.0000 +vn -0.0009 0.0015 1.0000 +vn -0.0020 0.0014 1.0000 +vn -0.0060 0.0002 1.0000 +vn -0.0141 0.0030 0.9999 +vn -0.0011 -0.0019 1.0000 +vn -0.0010 0.0004 1.0000 +vn -0.0010 -0.0000 1.0000 +vn 0.0119 0.0081 0.9999 +vn -0.0039 0.0043 1.0000 +vn 0.0021 0.0117 0.9999 +vn -0.0009 -0.0003 1.0000 +vn 0.0013 0.0015 1.0000 +vn -0.0117 0.0085 0.9999 +vn 0.0002 0.0005 1.0000 +vn -0.0008 0.0008 1.0000 +vn 0.0013 -0.0009 1.0000 +vn 0.0035 0.0002 1.0000 +vn 0.0028 0.0037 1.0000 +vn 0.0060 0.0071 1.0000 +vn 0.0001 -0.0012 1.0000 +vn -0.0000 -0.0003 1.0000 +vn 0.3751 0.4166 -0.8281 +vn 0.1732 0.5331 -0.8281 +vn -0.4535 -0.3295 -0.8281 +vn 0.5121 0.2280 -0.8281 +vn -0.5483 -0.1165 -0.8281 +vn 0.5605 -0.0000 -0.8281 +vn -0.5483 0.1165 -0.8281 +vn 0.5121 -0.2280 -0.8281 +vn -0.4535 0.3295 -0.8281 +vn 0.3751 -0.4166 -0.8281 +vn -0.2803 0.4854 -0.8281 +vn 0.1732 -0.5331 -0.8281 +vn -0.0586 0.5574 -0.8282 +vn 1.0000 -0.0000 -0.0000 +vn 0.9135 -0.4067 -0.0008 +vn -0.1045 0.9945 -0.0000 +vn 0.6691 -0.7431 -0.0000 +vn 0.3090 0.9511 -0.0000 +vn 0.9135 0.4067 -0.0000 +vn 0.9135 -0.4067 -0.0000 +vn 0.3090 -0.9511 -0.0000 +vn 0.6691 0.7431 -0.0000 +vn -0.6691 0.7432 -0.0000 +vn -0.8090 -0.5878 -0.0000 +vn -0.1045 -0.9945 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn -0.9781 -0.2079 -0.0000 +vn -0.9904 0.1383 -0.0010 +vn -0.0051 -0.0243 0.9997 +vn -0.0231 -0.0141 0.9996 +vn -0.0190 -0.0163 0.9997 +vn 0.0089 0.0141 0.9999 +vn 0.0095 0.0263 0.9996 +vn -0.0294 0.0027 0.9996 +vn -0.0223 -0.0021 0.9997 +vn 0.0271 0.0325 0.9991 +vn -0.0249 0.0243 0.9994 +vn -0.0194 0.0129 0.9997 +vn 0.0286 0.0343 0.9990 +vn -0.0108 0.0342 0.9994 +vn -0.0085 0.0233 0.9997 +vn 0.0249 0.0045 0.9997 +vn 0.0349 0.0082 0.9994 +vn 0.0161 0.0430 0.9989 +vn 0.0199 -0.0100 0.9998 +vn 0.0331 -0.0098 0.9994 +vn 0.0194 0.0361 0.9992 +vn 0.0100 -0.0212 0.9997 +vn 0.0183 -0.0240 0.9995 +vn 0.0131 0.0196 0.9997 +vn -0.0015 -0.0258 0.9997 +vn 0.0024 -0.0028 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.0228 0.0381 0.9990 +vn 0.0107 0.0328 0.9994 +vn 0.0170 0.0312 0.9994 +vn 0.0062 0.0170 0.9998 +vn 0.0169 0.0287 0.9994 +vn 0.0181 0.0265 0.9995 +vn 0.0196 0.0364 0.9991 +vn 0.0047 0.0508 0.9987 +vt 0.680521 0.406246 +vt 0.652061 0.430658 +vt 0.664534 0.402365 +vt 0.680997 0.433791 vt 0.795099 0.368734 vt 0.880048 0.374065 vt 0.878852 0.378577 @@ -8419,28 +12914,6 @@ vt 0.695201 0.449465 vt 0.628300 0.331461 vt 0.632514 0.314850 vt 0.605536 0.300814 -vt 0.612555 0.371309 -vt 0.732969 0.405750 -vt 0.687564 0.434164 -vt 0.682906 0.303280 -vt 0.723925 0.400441 -vt 0.627355 0.390490 -vt 0.723869 0.334698 -vt 0.673753 0.465539 -vt 0.688657 0.455255 -vt 0.682126 0.452537 -vt 0.626707 0.332818 -vt 0.631076 0.324865 -vt 0.631270 0.316393 -vt 0.628318 0.309157 -vt 0.622169 0.303994 -vt 0.614288 0.301889 -vt 0.605651 0.302595 -vt 0.600209 0.309710 -vt 0.596324 0.314769 -vt 0.594972 0.321125 -vt 0.600664 0.333078 -vt 0.612748 0.337849 vt 0.890640 0.475362 vt 0.909873 0.286529 vt 0.667016 0.375922 @@ -8456,4707 +12929,185 @@ vt 0.632152 0.323407 vt 0.629284 0.306912 vt 0.622867 0.301380 vt 0.614483 0.299388 -vn 0.0000 0.4068 -0.9135 -vn 0.0016 0.7431 -0.6691 -vn 0.0008 0.9511 -0.3090 -vn 0.0016 0.9511 -0.3090 -vn 0.0016 -0.8660 0.5000 -vn 0.0008 -0.5878 0.8090 -vn 0.0008 -0.8660 0.5000 -vn 0.0008 0.4067 -0.9136 -vn 0.0008 0.7432 -0.6691 -vn 0.0016 -0.5878 0.8090 -vn 0.0008 -0.2079 0.9781 -vn 0.0016 0.0000 -1.0000 -vn 0.0016 0.4067 -0.9135 -vn 0.0016 0.2079 0.9782 -vn 0.0016 -0.2079 0.9782 -vn 0.0016 -0.4067 -0.9136 -vn 0.0008 0.0000 -1.0000 -vn 0.0016 0.5878 0.8090 -vn 0.0008 0.2079 0.9781 -vn 0.0016 -0.7431 -0.6691 -vn 0.0008 -0.4067 -0.9135 -vn 0.0016 0.8660 0.5000 -vn 0.0008 0.5878 0.8090 -vn 0.0016 -0.9511 -0.3090 -vn 0.0008 -0.7431 -0.6691 -vn 0.0016 0.9945 0.1046 -vn 0.0008 0.8660 0.5000 -vn 0.0008 -0.9945 0.1045 -vn 0.0008 -0.9511 -0.3090 -vn 0.0008 0.9945 0.1045 -vn 0.0016 -0.9945 0.1045 -vn -1.0000 -0.0002 0.0001 -vn -1.0000 -0.0011 -0.0009 -vn -1.0000 0.0002 0.0013 -vn 1.0000 0.0000 0.0000 -vn 0.8282 -0.5574 0.0586 -vn 0.8282 -0.4854 0.2802 -vn 0.8282 -0.4854 0.2803 -vn -1.0000 0.0077 0.0008 -vn -1.0000 0.0000 -0.0001 -vn -1.0000 -0.0006 -0.0008 -vn -1.0000 -0.0003 0.0001 -vn -1.0000 0.0019 0.0077 -vn -1.0000 0.0001 -0.0001 -vn -1.0000 0.0009 0.0001 -vn -1.0000 0.0000 0.0003 -vn -1.0000 0.0034 0.0057 -vn -1.0000 0.0000 -0.0003 -vn -1.0000 0.0012 -0.0004 -vn -1.0000 0.0000 -0.0002 -vn -1.0000 0.0034 0.0035 -vn -1.0000 0.0006 0.0001 -vn -1.0000 -0.0002 -0.0002 -vn -1.0000 0.0036 0.0024 -vn -1.0000 -0.0003 -0.0002 -vn -1.0000 -0.0003 0.0000 -vn -1.0000 0.0038 0.0022 -vn -1.0000 0.0002 0.0002 -vn -1.0000 0.0059 0.0028 -vn -1.0000 0.0001 0.0001 -vn 0.8281 0.5331 -0.1732 -vn 0.8282 0.4165 -0.3750 -vn 0.8282 -0.3295 0.4535 -vn 0.8281 -0.3295 0.4535 -vn 0.8282 0.2280 -0.5120 -vn 0.8281 -0.1165 0.5483 -vn 0.8282 -0.0000 -0.5605 -vn 0.8281 0.1165 0.5483 -vn 0.8281 -0.2280 -0.5121 -vn 0.8282 0.3295 0.4535 -vn 0.8281 0.3295 0.4535 -vn 0.8282 -0.4165 -0.3750 -vn 0.8282 0.4854 0.2803 -vn 0.8282 -0.4166 -0.3750 -vn 0.8281 -0.5331 -0.1732 -vn 0.8282 0.4854 0.2802 -vn 0.8281 0.5575 0.0586 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.9945 0.1045 -vn 0.0000 -0.7431 -0.6691 -vn 0.0000 0.9511 -0.3090 -vn 0.0000 0.4067 -0.9136 -vn 0.0000 -0.4067 -0.9135 -vn 0.0000 -0.9511 -0.3090 -vn 0.0000 0.7432 -0.6691 -vn 0.0000 0.5878 0.8090 -vn 0.0000 -0.5878 0.8090 -vn 0.0000 0.2079 0.9781 -vn 0.0000 -0.9945 0.1045 -vn 0.0000 0.8660 0.5000 -vn 0.0000 -0.8660 0.5000 -vn 0.0000 -0.2079 0.9781 -vn -0.9997 0.0001 0.0250 -vn -0.9999 -0.0107 0.0091 -vn -0.9998 -0.0014 0.0176 -vn -0.9999 0.0144 -0.0037 -vn -0.9998 0.0185 0.0054 -vn -0.9997 0.0066 0.0227 -vn -0.9999 0.0098 -0.0116 -vn -0.9998 0.0211 -0.0033 -vn -0.9998 0.0113 0.0163 -vn -0.9999 0.0002 -0.0102 -vn -0.9999 0.0126 -0.0111 -vn -0.9999 0.0105 0.0088 -vn -0.9999 -0.0058 -0.0125 -vn -0.9999 0.0023 -0.0154 -vn -0.9999 -0.0107 -0.0102 -vn -0.9999 -0.0098 -0.0080 -vn -0.9999 0.0092 0.0060 -vn -0.9999 -0.0150 0.0021 -vn -0.9999 -0.0169 0.0018 -vn -0.9998 -0.0121 0.0163 -vn -0.9997 0.0186 0.0136 -vn -0.9997 0.0211 0.0080 -vn -0.9998 0.0182 0.0068 -vn 0.0008 0.9511 0.3090 -vn 0.0016 0.7431 0.6691 -vn 0.0015 0.9510 0.3090 -vn 0.0008 -0.8660 -0.5000 -vn 0.0016 -0.5878 -0.8090 -vn 0.0016 -0.8660 -0.5000 -vn 0.0008 0.7431 0.6691 -vn 0.0016 0.4068 0.9135 -vn 0.0008 -0.5878 -0.8090 -vn 0.0016 -0.2079 -0.9781 -vn 0.0008 0.4067 0.9135 -vn 0.0016 0.0000 1.0000 -vn 0.0008 -0.2079 -0.9781 -vn 0.0016 0.2079 -0.9781 -vn 0.0008 0.0000 1.0000 -vn 0.0016 -0.4067 0.9135 -vn 0.0010 0.6435 -0.7654 -vn 0.0016 0.5878 -0.8090 -vn 0.0008 -0.7431 0.6691 -vn 0.0016 -0.7431 0.6691 -vn 0.0008 0.8660 -0.5000 -vn 0.0016 0.8660 -0.5000 -vn 0.0016 -0.9511 0.3090 -vn 0.0008 0.9945 -0.1045 -vn 0.0016 0.9945 -0.1045 -vn 0.0008 -0.9511 0.3090 -vn 0.0016 -0.9945 -0.1045 -vn 0.0008 -0.9945 -0.1045 -vn -1.0000 -0.0016 0.0003 -vn -1.0000 -0.0010 -0.0009 -vn -1.0000 -0.0013 -0.0004 -vn 0.8282 -0.5574 -0.0586 -vn 0.8281 -0.4854 -0.2803 -vn -1.0000 0.0028 0.0020 -vn -1.0000 -0.0004 -0.0002 -vn -1.0000 -0.0005 -0.0010 -vn -1.0000 -0.0004 -0.0011 -vn -1.0000 0.0066 0.0059 -vn -1.0000 0.0058 0.0012 -vn -1.0000 0.0015 -0.0009 -vn -1.0000 0.0014 -0.0020 -vn -1.0000 0.0002 -0.0060 -vn -0.9999 0.0030 -0.0141 -vn -1.0000 -0.0019 -0.0011 -vn -1.0000 0.0004 -0.0010 -vn -1.0000 0.0000 -0.0010 -vn -0.9999 0.0081 0.0119 -vn -1.0000 0.0043 -0.0039 -vn -0.9999 0.0117 0.0021 -vn -1.0000 -0.0003 -0.0009 -vn -1.0000 0.0015 0.0013 -vn -0.9999 0.0085 -0.0117 -vn -1.0000 0.0005 0.0002 -vn -1.0000 0.0008 -0.0008 -vn -1.0000 -0.0009 0.0013 -vn -1.0000 0.0002 0.0035 -vn -1.0000 0.0037 0.0028 -vn -1.0000 0.0071 0.0060 -vn -1.0000 -0.0012 0.0001 -vn 0.8281 0.4166 0.3751 -vn 0.8281 0.5331 0.1732 -vn 0.8282 -0.3295 -0.4535 -vn 0.8282 0.2280 0.5120 -vn 0.8281 -0.1165 -0.5483 -vn 0.8281 0.0000 0.5605 -vn 0.8282 0.2280 0.5121 -vn 0.8281 0.1165 -0.5483 -vn 0.8281 -0.2280 0.5121 -vn 0.8282 0.3295 -0.4535 -vn 0.8281 -0.4166 0.3751 -vn 0.8281 0.4854 -0.2803 -vn 0.8281 -0.5331 0.1732 -vn 0.8282 0.5574 -0.0586 -vn 0.0000 0.0000 1.0000 -vn 0.0008 -0.4067 0.9135 -vn 0.0000 0.9945 -0.1045 -vn 0.0000 -0.7431 0.6691 -vn 0.0000 0.9511 0.3090 -vn 0.0000 0.4067 0.9135 -vn 0.0000 -0.4067 0.9135 -vn 0.0000 -0.9511 0.3090 -vn 0.0000 0.7431 0.6691 -vn 0.0000 -0.5878 -0.8090 -vn 0.0000 -0.9945 -0.1045 -vn 0.0000 0.8660 -0.5000 -vn 0.0000 -0.8660 -0.5000 -vn 0.0000 -0.2079 -0.9781 -vn 0.0010 0.1383 -0.9904 -vn -0.9997 -0.0243 -0.0051 -vn -0.9996 -0.0141 -0.0231 -vn -0.9997 -0.0163 -0.0190 -vn -0.9999 0.0141 0.0089 -vn -0.9996 0.0263 0.0095 -vn -0.9996 0.0027 -0.0294 -vn -0.9997 -0.0021 -0.0223 -vn -0.9991 0.0325 0.0271 -vn -0.9994 0.0243 -0.0249 -vn -0.9997 0.0129 -0.0194 -vn -0.9990 0.0343 0.0286 -vn -0.9994 0.0342 -0.0108 -vn -0.9997 0.0233 -0.0085 -vn -0.9997 0.0045 0.0249 -vn -0.9994 0.0082 0.0349 -vn -0.9989 0.0430 0.0161 -vn -0.9998 -0.0100 0.0199 -vn -0.9994 -0.0099 0.0331 -vn -0.9992 0.0361 0.0194 -vn -0.9997 -0.0212 0.0100 -vn -0.9995 -0.0240 0.0183 -vn -0.9997 0.0196 0.0131 -vn -0.9997 -0.0258 -0.0015 -vn -1.0000 0.0000 0.0000 -vn -1.0000 -0.0002 -0.0003 -vn -1.0000 -0.0004 -0.0000 -vn -1.0000 -0.0002 0.0000 -vn -0.9998 -0.0068 -0.0193 -vn -1.0000 0.0079 0.0045 -vn -0.9999 0.0125 0.0111 -vn -0.9998 0.0171 0.0122 -vn -0.9984 0.0179 0.0534 -vn -0.9998 0.0152 0.0119 -vn -1.0000 0.0018 0.0003 -vn -0.9999 0.0106 0.0082 -vn -1.0000 0.0065 0.0061 -vn -0.9999 0.0121 0.0107 -vn -0.9989 -0.0104 0.0453 -vn -0.9998 0.0142 0.0152 -vn -0.9972 0.0267 0.0693 -vn -0.9972 0.0655 0.0360 -vn -0.9988 0.0483 -0.0044 -vn -1.0000 -0.0028 0.0024 -vn -0.9990 0.0381 0.0228 -vn -0.9994 0.0328 0.0107 -vn -0.9994 0.0312 0.0170 -vn -0.9998 0.0171 0.0063 -vn -0.9994 0.0287 0.0169 -vn -0.9995 0.0265 0.0181 -vn -0.9991 0.0364 0.0196 -vn -0.9987 0.0508 0.0047 -s off -f 1376/2232/1621 1378/2233/1621 1375/2234/1621 -f 1376/2232/1621 1377/2235/1621 1378/2233/1621 +s 0 +f 2206/3537/2726 2208/3538/2726 2205/3539/2726 +f 2206/3537/2726 2207/3540/2726 2208/3538/2726 s 1 -f 1380/2236/1622 1382/2237/1623 1379/2238/1624 -f 1383/2239/1625 1385/2240/1626 1386/2241/1627 -f 1380/2236/1622 1388/2242/1628 1381/2243/1629 -f 1384/2244/1630 1390/2245/1631 1385/2240/1626 -f 1391/2246/1632 1388/2242/1628 1387/2247/1633 -f 1393/2248/1634 1390/2245/1631 1389/2249/1635 -f 1395/2250/1636 1392/2251/1637 1391/2246/1632 -f 1397/2252/1638 1394/2253/1639 1393/2248/1634 -f 1399/2254/1640 1396/2255/1641 1395/2250/1636 -f 1401/2256/1642 1398/2257/1643 1397/2252/1638 -f 1403/2258/1644 1400/2259/1645 1399/2254/1640 -f 1405/2260/1646 1402/2261/1647 1401/2256/1642 -f 1403/2258/1644 1408/2262/1648 1404/2263/1649 -f 1379/2238/1624 1406/2264/1650 1405/2260/1646 -f 1407/2265/1651 1386/2241/1627 1408/2262/1648 -f 1410/2266/1652 1412/2267/1653 1409/2268/1654 -f 1407/2265/1655 1399/2254/1655 1401/2256/1655 -f 1413/2269/1656 1415/2270/1657 1416/2271/1658 -f 1417/2272/1659 1418/2273/1660 1419/2274/1661 -f 1411/2275/1662 1421/2276/1663 1412/2267/1653 -f 1419/2274/1661 1422/2277/1664 1423/2278/1665 -f 1420/2279/1666 1425/2280/1667 1421/2276/1663 -f 1423/2278/1665 1426/2281/1668 1427/2282/1669 -f 1425/2280/1667 1428/2283/1670 1429/2284/1671 -f 1426/2281/1668 1431/2285/1672 1427/2282/1669 -f 1429/2284/1671 1432/2286/1673 1433/2287/1674 -f 1431/2285/1672 1434/2288/1675 1435/2289/1676 -f 1433/2287/1674 1436/2290/1676 1437/2291/1677 -f 1434/2288/1675 1439/2292/1678 1435/2289/1676 -f 1436/2290/1676 1440/2293/1679 1437/2291/1677 -f 1439/2292/1678 1410/2266/1652 1409/2268/1654 -f 1440/2293/1679 1416/2294/1680 1417/2272/1659 -f 1410/2295/1681 1442/2296/1682 1411/2297/1682 -f 1416/2271/1658 1443/2298/1683 1418/2299/1684 -f 1411/2297/1682 1444/2300/1685 1420/2301/1685 -f 1443/2298/1683 1422/2302/1686 1418/2299/1684 -f 1444/2300/1685 1424/2303/1687 1420/2301/1685 -f 1445/2304/1686 1426/2305/1688 1422/2302/1686 -f 1446/2306/1687 1428/2307/1689 1424/2303/1687 -f 1426/2305/1688 1449/2308/1690 1430/2309/1691 -f 1448/2310/1689 1432/2311/1692 1428/2307/1689 -f 1449/2308/1690 1434/2312/1693 1430/2309/1691 -f 1450/2313/1694 1436/2314/1695 1432/2311/1692 -f 1451/2315/1696 1438/2316/1697 1434/2312/1693 -f 1436/2314/1695 1414/2317/1656 1413/2269/1656 -f 1438/2316/1697 1441/2318/1681 1410/2295/1681 -f 1396/2319/1641 1455/2320/1698 1392/2321/1637 -f 1382/2322/1623 1457/2323/1699 1406/2324/1650 -f 1404/2325/1649 1459/2326/1700 1400/2327/1645 -f 1381/2328/1629 1456/2329/1701 1382/2322/1623 -f 1392/2321/1637 1461/2330/1702 1388/2331/1628 -f 1400/2327/1645 1454/2332/1703 1396/2319/1641 -f 1408/2333/1648 1458/2334/1704 1404/2325/1649 -f 1388/2331/1628 1460/2335/1705 1381/2328/1629 -f 1402/2336/1647 1464/2337/1706 1398/2338/1643 -f 1390/2339/1631 1466/2340/1707 1385/2341/1626 -f 1398/2338/1643 1467/2342/1708 1394/2343/1639 -f 1386/2344/1627 1462/2345/1709 1408/2333/1648 -f 1406/2324/1650 1463/2346/1710 1402/2336/1647 -f 1385/2341/1626 1468/2347/1711 1386/2344/1627 -f 1394/2343/1639 1465/2348/1712 1390/2339/1631 -f 1470/2349/1713 1472/2350/1714 1469/2351/1715 -f 1473/2352/1716 1475/2353/1717 1417/2354/1659 -f 1476/2355/1718 1469/2351/1715 1421/2356/1663 -f 1477/2357/1719 1474/2358/1720 1473/2352/1716 -f 1479/2359/1721 1421/2356/1663 1425/2360/1667 -f 1480/2361/1722 1478/2362/1723 1477/2357/1719 -f 1482/2363/1724 1425/2360/1667 1429/2364/1671 -f 1483/2365/1725 1481/2366/1726 1480/2361/1722 -f 1433/2367/1674 1482/2363/1724 1429/2364/1671 -f 1487/2368/1727 1483/2365/1725 1486/2369/1728 -f 1488/2370/1729 1433/2367/1674 1437/2371/1677 -f 1490/2372/1730 1486/2369/1728 1489/2373/1731 -f 1440/2374/1679 1488/2370/1729 1437/2371/1677 -f 1471/2375/1732 1489/2373/1731 1472/2350/1714 -f 1475/2353/1717 1440/2374/1679 1417/2354/1659 -f 1499/2376/1733 1501/2377/1734 1503/2378/1735 -f 1506/2379/1736 1508/2380/1737 1505/2381/1738 -f 1510/2382/1739 1512/2383/1740 1509/2384/1741 -f 1507/2385/1742 1514/2386/1743 1508/2380/1737 -f 1511/2387/1744 1516/2388/1745 1512/2383/1740 -f 1513/2389/1746 1518/2390/1747 1514/2386/1743 -f 1515/2391/1748 1519/2392/1749 1516/2388/1745 -f 1517/2393/1750 1521/2394/1751 1518/2390/1747 -f 1519/2392/1749 1375/2395/1752 1522/2396/1753 -f 1521/2394/1751 1523/2397/1754 1524/2398/1755 -f 1522/2396/1753 1525/2399/1756 1526/2400/1757 -f 1523/2397/1754 1528/2401/1758 1524/2398/1755 -f 1526/2400/1757 1529/2402/1759 1530/2403/1760 -f 1527/2404/1761 1532/2405/1762 1528/2401/1758 -f 1530/2403/1760 1506/2379/1736 1505/2381/1738 -f 1531/2406/1763 1509/2384/1741 1532/2405/1762 -f 1533/2407/1764 1535/2408/1765 1536/2409/1766 -f 1521/2394/1655 1509/2384/1655 1522/2396/1655 -f 1537/2410/1767 1539/2411/1768 1540/2412/1767 -f 1541/2413/1769 1543/2414/1670 1538/2415/1770 -f 1534/2416/1771 1545/2417/1772 1535/2408/1765 -f 1546/2418/1773 1543/2414/1670 1542/2419/1774 -f 1548/2420/1775 1545/2417/1772 1544/2421/1776 -f 1377/2422/1777 1551/2423/1778 1547/2424/1779 -f 1548/2420/1775 1553/2425/1780 1549/2426/1781 -f 1550/2427/1782 1378/2428/1783 1377/2422/1777 -f 1555/2429/1784 1553/2425/1780 1552/2430/1785 -f 1558/2431/1786 1559/2432/1787 1378/2428/1783 -f 1555/2429/1784 1561/2433/1788 1556/2434/1789 -f 1562/2435/1790 1558/2431/1786 1557/2436/1791 -f 1564/2437/1792 1561/2433/1788 1560/2438/1793 -f 1562/2435/1790 1536/2409/1766 1563/2439/1794 -f 1564/2437/1792 1538/2415/1770 1537/2440/1676 -f 1535/2441/1795 1566/2442/1796 1536/2443/1796 -f 1543/2444/1797 1539/2411/1768 1538/2445/1768 -f 1545/2446/1798 1565/2447/1795 1535/2441/1795 -f 1547/2448/1799 1567/2449/1797 1543/2444/1797 -f 1549/2450/1800 1568/2451/1801 1545/2446/1798 -f 1551/2452/1802 1569/2453/1799 1547/2448/1799 -f 1553/2454/1803 1570/2455/1800 1549/2450/1800 -f 1551/2452/1802 1573/2456/1804 1571/2457/1802 -f 1556/2458/1805 1572/2459/1803 1553/2454/1803 -f 1559/2460/1804 1575/2461/1806 1573/2456/1804 -f 1556/2458/1805 1576/2462/1807 1574/2463/1805 -f 1563/2464/1808 1575/2461/1806 1558/2465/1806 -f 1561/2466/1807 1540/2412/1767 1576/2462/1807 -f 1536/2443/1796 1577/2467/1808 1563/2464/1808 -f 1578/2468/1809 1520/2469/1810 1517/2470/1750 -f 1580/2471/1811 1506/2472/1736 1529/2473/1759 -f 1582/2474/1812 1527/2475/1761 1523/2476/1754 -f 1581/2477/1813 1507/2478/1742 1506/2472/1736 -f 1585/2479/1814 1517/2470/1750 1513/2480/1746 -f 1579/2481/1815 1523/2476/1754 1520/2469/1810 -f 1583/2482/1816 1531/2483/1763 1527/2475/1761 -f 1584/2484/1817 1513/2480/1746 1507/2478/1742 -f 1378/2233/1705 1525/2485/1756 1375/2234/1752 -f 1588/2486/1818 1515/2487/1748 1511/2488/1744 -f 1586/2489/1819 1510/2490/1739 1531/2483/1763 -f 1587/2491/1820 1529/2473/1759 1525/2485/1756 -f 1590/2492/1821 1511/2488/1744 1510/2490/1739 -f 1589/2493/1822 1376/2232/1823 1515/2487/1748 -f 1592/2494/1824 1594/2495/1825 1591/2496/1826 -f 1542/2497/1774 1595/2498/1827 1596/2499/1828 -f 1591/2496/1826 1598/2500/1829 1597/2501/1830 -f 1542/2497/1774 1599/2502/1831 1546/2503/1773 -f 1597/2501/1830 1601/2504/1832 1600/2505/1833 -f 1550/2506/1782 1599/2502/1831 1602/2507/1834 -f 1600/2505/1833 1604/2508/1835 1603/2509/1836 -f 1605/2510/1837 1602/2507/1834 1606/2511/1838 -f 1603/2509/1836 1607/2512/1839 1555/2513/1784 -f 1608/2514/1840 1606/2511/1838 1609/2515/1841 -f 1555/2513/1784 1610/2516/1842 1560/2517/1793 -f 1611/2518/1843 1609/2515/1841 1612/2519/1844 -f 1560/2517/1793 1613/2520/1845 1564/2521/1792 -f 1592/2494/1824 1612/2519/1844 1593/2522/1846 -f 1541/2523/1769 1613/2520/1845 1595/2498/1827 -f 1602/2524/1834 1596/2525/1828 1607/2526/1839 -f 1377/2422/1777 1559/2432/1787 1551/2423/1778 -f 1380/2236/1622 1381/2243/1629 1382/2237/1623 -f 1383/2239/1625 1384/2244/1630 1385/2240/1626 -f 1380/2236/1622 1387/2247/1633 1388/2242/1628 -f 1384/2244/1630 1389/2249/1635 1390/2245/1631 -f 1391/2246/1632 1392/2251/1637 1388/2242/1628 -f 1393/2248/1634 1394/2253/1639 1390/2245/1631 -f 1395/2250/1636 1396/2255/1641 1392/2251/1637 -f 1397/2252/1638 1398/2257/1643 1394/2253/1639 -f 1399/2254/1640 1400/2259/1645 1396/2255/1641 -f 1401/2256/1642 1402/2261/1647 1398/2257/1643 -f 1403/2258/1644 1404/2263/1649 1400/2259/1645 -f 1405/2260/1646 1406/2264/1650 1402/2261/1647 -f 1403/2258/1644 1407/2265/1651 1408/2262/1648 -f 1379/2238/1624 1382/2237/1623 1406/2264/1650 -f 1407/2265/1651 1383/2239/1625 1386/2241/1627 -f 1410/2266/1652 1411/2275/1662 1412/2267/1653 -f 1395/2250/1655 1391/2246/1655 1387/2247/1655 -f 1387/2247/1655 1380/2236/1655 1401/2256/1655 -f 1380/2236/1655 1379/2238/1655 1401/2256/1655 -f 1379/2238/1655 1405/2260/1655 1401/2256/1655 -f 1401/2256/1655 1397/2252/1655 1393/2248/1655 -f 1393/2248/1655 1389/2249/1655 1401/2256/1655 -f 1389/2249/1655 1384/2244/1655 1401/2256/1655 -f 1384/2244/1655 1383/2239/1655 1407/2265/1655 -f 1407/2265/1655 1403/2258/1655 1399/2254/1655 -f 1399/2254/1655 1395/2250/1655 1401/2256/1655 -f 1395/2250/1655 1387/2247/1655 1401/2256/1655 -f 1384/2244/1655 1407/2265/1655 1401/2256/1655 -f 1413/2269/1656 1414/2317/1656 1415/2270/1657 -f 1417/2272/1659 1416/2294/1680 1418/2273/1660 -f 1411/2275/1662 1420/2279/1666 1421/2276/1663 -f 1419/2274/1661 1418/2273/1660 1422/2277/1664 -f 1420/2279/1666 1424/2527/1847 1425/2280/1667 -f 1423/2278/1665 1422/2277/1664 1426/2281/1668 -f 1425/2280/1667 1424/2527/1847 1428/2283/1670 -f 1426/2281/1668 1430/2528/1848 1431/2285/1672 -f 1429/2284/1671 1428/2283/1670 1432/2286/1673 -f 1431/2285/1672 1430/2528/1848 1434/2288/1675 -f 1433/2287/1674 1432/2286/1673 1436/2290/1676 -f 1434/2288/1675 1438/2529/1849 1439/2292/1678 -f 1436/2290/1676 1413/2530/1850 1440/2293/1679 -f 1439/2292/1678 1438/2529/1849 1410/2266/1652 -f 1440/2293/1679 1413/2530/1850 1416/2294/1680 -f 1410/2295/1681 1441/2318/1681 1442/2296/1682 -f 1416/2271/1658 1415/2270/1657 1443/2298/1683 -f 1411/2297/1682 1442/2296/1682 1444/2300/1685 -f 1443/2298/1683 1445/2304/1686 1422/2302/1686 -f 1444/2300/1685 1446/2306/1687 1424/2303/1687 -f 1445/2304/1686 1447/2531/1688 1426/2305/1688 -f 1446/2306/1687 1448/2310/1689 1428/2307/1689 -f 1426/2305/1688 1447/2531/1688 1449/2308/1690 -f 1448/2310/1689 1450/2313/1694 1432/2311/1692 -f 1449/2308/1690 1451/2315/1696 1434/2312/1693 -f 1450/2313/1694 1452/2532/1695 1436/2314/1695 -f 1451/2315/1696 1453/2533/1697 1438/2316/1697 -f 1436/2314/1695 1452/2532/1695 1414/2317/1656 -f 1438/2316/1697 1453/2533/1697 1441/2318/1681 -f 1396/2319/1641 1454/2332/1703 1455/2320/1698 -f 1382/2322/1623 1456/2329/1701 1457/2323/1699 -f 1404/2325/1649 1458/2334/1704 1459/2326/1700 -f 1381/2328/1629 1460/2335/1705 1456/2329/1701 -f 1392/2321/1637 1455/2320/1698 1461/2330/1702 -f 1400/2327/1645 1459/2326/1700 1454/2332/1703 -f 1408/2333/1648 1462/2345/1709 1458/2334/1704 -f 1388/2331/1628 1461/2330/1702 1460/2335/1705 -f 1402/2336/1647 1463/2346/1710 1464/2337/1706 -f 1390/2339/1631 1465/2348/1712 1466/2340/1707 -f 1398/2338/1643 1464/2337/1706 1467/2342/1708 -f 1386/2344/1627 1468/2347/1711 1462/2345/1709 -f 1406/2324/1650 1457/2323/1699 1463/2346/1710 -f 1385/2341/1626 1466/2340/1707 1468/2347/1711 -f 1394/2343/1639 1467/2342/1708 1465/2348/1712 -f 1470/2349/1713 1471/2375/1732 1472/2350/1714 -f 1473/2352/1716 1474/2358/1720 1475/2353/1717 -f 1476/2355/1718 1470/2349/1713 1469/2351/1715 -f 1477/2357/1719 1478/2362/1723 1474/2358/1720 -f 1479/2359/1721 1476/2355/1718 1421/2356/1663 -f 1480/2361/1722 1481/2366/1726 1478/2362/1723 -f 1482/2363/1724 1479/2359/1721 1425/2360/1667 -f 1483/2365/1725 1484/2534/1851 1481/2366/1726 -f 1433/2367/1674 1485/2535/1852 1482/2363/1724 -f 1487/2368/1727 1484/2534/1851 1483/2365/1725 -f 1488/2370/1729 1485/2535/1852 1433/2367/1674 -f 1490/2372/1730 1487/2368/1727 1486/2369/1728 -f 1440/2374/1679 1491/2536/1853 1488/2370/1729 -f 1471/2375/1732 1490/2372/1730 1489/2373/1731 -f 1475/2353/1717 1491/2536/1853 1440/2374/1679 -f 1504/2537/1854 1479/2538/1855 1492/2539/1856 -f 1492/2539/1856 1493/2540/1857 1494/2541/1858 -f 1494/2541/1858 1495/2542/1859 1492/2539/1856 -f 1495/2542/1859 1475/2543/1860 1492/2539/1856 -f 1475/2543/1860 1496/2544/1861 1497/2545/1862 -f 1497/2545/1862 1498/2546/1863 1499/2376/1733 -f 1499/2376/1733 1500/2547/1864 1501/2377/1734 -f 1501/2377/1734 1502/2548/1865 1503/2378/1735 -f 1503/2378/1735 1504/2537/1854 1475/2543/1860 -f 1504/2537/1854 1492/2539/1856 1475/2543/1860 -f 1475/2543/1860 1497/2545/1862 1503/2378/1735 -f 1497/2545/1862 1499/2376/1733 1503/2378/1735 -f 1506/2379/1736 1507/2385/1742 1508/2380/1737 -f 1510/2382/1739 1511/2387/1744 1512/2383/1740 -f 1507/2385/1742 1513/2389/1746 1514/2386/1743 -f 1511/2387/1744 1515/2391/1748 1516/2388/1745 -f 1513/2389/1746 1517/2393/1750 1518/2390/1747 -f 1515/2391/1748 1376/2549/1823 1519/2392/1749 -f 1517/2393/1750 1520/2550/1810 1521/2394/1751 -f 1519/2392/1749 1376/2549/1823 1375/2395/1752 -f 1521/2394/1751 1520/2550/1810 1523/2397/1754 -f 1522/2396/1753 1375/2395/1752 1525/2399/1756 -f 1523/2397/1754 1527/2404/1761 1528/2401/1758 -f 1526/2400/1757 1525/2399/1756 1529/2402/1759 -f 1527/2404/1761 1531/2406/1763 1532/2405/1762 -f 1530/2403/1760 1529/2402/1759 1506/2379/1736 -f 1531/2406/1763 1510/2382/1739 1509/2384/1741 -f 1533/2407/1764 1534/2416/1771 1535/2408/1765 -f 1514/2386/1655 1518/2390/1655 1521/2394/1655 -f 1521/2394/1655 1524/2398/1655 1528/2401/1655 -f 1528/2401/1655 1532/2405/1655 1521/2394/1655 -f 1532/2405/1655 1509/2384/1655 1521/2394/1655 -f 1509/2384/1655 1512/2383/1655 1522/2396/1655 -f 1512/2383/1655 1516/2388/1655 1522/2396/1655 -f 1516/2388/1655 1519/2392/1655 1522/2396/1655 -f 1522/2396/1655 1526/2400/1655 1508/2380/1655 -f 1526/2400/1655 1530/2403/1655 1508/2380/1655 -f 1530/2403/1655 1505/2381/1655 1508/2380/1655 -f 1508/2380/1655 1514/2386/1655 1521/2394/1655 -f 1508/2380/1655 1521/2394/1655 1522/2396/1655 -f 1537/2410/1767 1538/2445/1768 1539/2411/1768 -f 1541/2413/1769 1542/2419/1774 1543/2414/1670 -f 1534/2416/1771 1544/2421/1776 1545/2417/1772 -f 1546/2418/1773 1547/2424/1779 1543/2414/1670 -f 1548/2420/1775 1549/2426/1781 1545/2417/1772 -f 1547/2424/1779 1546/2418/1773 1377/2422/1777 -f 1546/2418/1773 1550/2427/1782 1377/2422/1777 -f 1548/2420/1775 1552/2430/1785 1553/2425/1780 -f 1550/2427/1782 1554/2551/1866 1378/2428/1783 -f 1555/2429/1784 1556/2434/1789 1553/2425/1780 -f 1378/2428/1783 1554/2551/1866 1557/2436/1791 -f 1557/2436/1791 1558/2431/1786 1378/2428/1783 -f 1555/2429/1784 1560/2438/1793 1561/2433/1788 -f 1562/2435/1790 1563/2439/1794 1558/2431/1786 -f 1564/2437/1792 1537/2440/1676 1561/2433/1788 -f 1562/2435/1790 1533/2407/1764 1536/2409/1766 -f 1564/2437/1792 1541/2413/1769 1538/2415/1770 -f 1535/2441/1795 1565/2447/1795 1566/2442/1796 -f 1543/2444/1797 1567/2449/1797 1539/2411/1768 -f 1545/2446/1798 1568/2451/1801 1565/2447/1795 -f 1547/2448/1799 1569/2453/1799 1567/2449/1797 -f 1549/2450/1800 1570/2455/1800 1568/2451/1801 -f 1551/2452/1802 1571/2457/1802 1569/2453/1799 -f 1553/2454/1803 1572/2459/1803 1570/2455/1800 -f 1551/2452/1802 1559/2460/1804 1573/2456/1804 -f 1556/2458/1805 1574/2463/1805 1572/2459/1803 -f 1559/2460/1804 1558/2465/1806 1575/2461/1806 -f 1556/2458/1805 1561/2466/1807 1576/2462/1807 -f 1563/2464/1808 1577/2467/1808 1575/2461/1806 -f 1561/2466/1807 1537/2410/1767 1540/2412/1767 -f 1536/2443/1796 1566/2442/1796 1577/2467/1808 -f 1578/2468/1809 1579/2481/1815 1520/2469/1810 -f 1580/2471/1811 1581/2477/1813 1506/2472/1736 -f 1582/2474/1812 1583/2482/1816 1527/2475/1761 -f 1581/2477/1813 1584/2484/1817 1507/2478/1742 -f 1585/2479/1814 1578/2468/1809 1517/2470/1750 -f 1579/2481/1815 1582/2474/1812 1523/2476/1754 -f 1583/2482/1816 1586/2489/1819 1531/2483/1763 -f 1584/2484/1817 1585/2479/1814 1513/2480/1746 -f 1378/2233/1705 1587/2491/1820 1525/2485/1756 -f 1588/2486/1818 1589/2493/1822 1515/2487/1748 -f 1586/2489/1819 1590/2492/1821 1510/2490/1739 -f 1587/2491/1820 1580/2471/1811 1529/2473/1759 -f 1590/2492/1821 1588/2486/1818 1511/2488/1744 -f 1589/2493/1822 1377/2235/1698 1376/2232/1823 -f 1592/2494/1824 1593/2522/1846 1594/2495/1825 -f 1542/2497/1774 1541/2523/1769 1595/2498/1827 -f 1591/2496/1826 1594/2495/1825 1598/2500/1829 -f 1542/2497/1774 1596/2499/1828 1599/2502/1831 -f 1597/2501/1830 1598/2500/1829 1601/2504/1832 -f 1550/2506/1782 1546/2503/1773 1599/2502/1831 -f 1600/2505/1833 1601/2504/1832 1604/2508/1835 -f 1605/2510/1837 1550/2506/1782 1602/2507/1834 -f 1603/2509/1836 1604/2508/1835 1607/2512/1839 -f 1608/2514/1840 1605/2510/1837 1606/2511/1838 -f 1555/2513/1784 1607/2512/1839 1610/2516/1842 -f 1611/2518/1843 1608/2514/1840 1609/2515/1841 -f 1560/2517/1793 1610/2516/1842 1613/2520/1845 -f 1592/2494/1824 1611/2518/1843 1612/2519/1844 -f 1541/2523/1769 1564/2521/1792 1613/2520/1845 -f 1621/2552/1867 1614/2553/1868 1615/2554/1869 -f 1615/2554/1869 1616/2555/1870 1617/2556/1871 -f 1617/2556/1871 1618/2557/1872 1619/2558/1873 -f 1619/2558/1873 1620/2559/1874 1602/2524/1834 -f 1602/2524/1834 1599/2560/1831 1596/2525/1828 -f 1596/2525/1828 1595/2561/1827 1613/2562/1845 -f 1613/2562/1845 1610/2563/1842 1596/2525/1828 -f 1610/2563/1842 1607/2526/1839 1596/2525/1828 -f 1607/2526/1839 1621/2552/1867 1619/2558/1873 -f 1621/2552/1867 1615/2554/1869 1619/2558/1873 -f 1615/2554/1869 1617/2556/1871 1619/2558/1873 -f 1619/2558/1873 1602/2524/1834 1607/2526/1839 -f 1377/2422/1777 1378/2428/1783 1559/2432/1787 -o Body_Cube.008 -v 2.058865 0.008545 0.489725 -v 2.673860 0.093340 0.483760 -v 3.330410 0.105400 0.470930 -v 3.282615 0.207035 0.470930 -v 0.392600 0.171185 0.509985 -v 0.393350 -0.080220 0.514135 -v 0.574765 -0.077640 0.511255 -v 0.670855 -0.054630 0.510570 -v 0.785515 0.015695 0.508550 -v 0.138370 -0.027100 0.441435 -v 0.178065 -0.016290 0.461765 -v 0.134400 -0.019415 0.541340 -v 0.113040 -0.067610 0.547560 -v 0.126585 -0.109565 0.473445 -v 0.154890 -0.088255 0.438770 -v -0.562595 0.128280 0.249705 -v -0.051470 0.127655 0.245610 -v -0.209670 0.128575 0.249675 -v -0.384190 0.128785 0.242245 -v -0.120600 0.128655 0.245390 -v 4.180090 0.482650 0.443330 -v 4.180090 0.489295 0.388390 -v 4.342950 0.489295 0.388390 -v 4.342950 0.482650 0.443330 -v 4.170735 0.359620 -0.061350 -v 4.170735 0.305525 -0.049675 -v 4.170735 0.260855 -0.017005 -v 4.180090 0.454235 0.490820 -v 4.342950 0.454235 0.490820 -v 4.170735 0.413790 -0.050015 -v 4.180090 0.408965 0.522650 -v 4.342950 0.408965 0.522650 -v 4.170735 0.486485 0.030210 -v 4.170735 0.458665 -0.017630 -v 4.170735 0.492445 0.085230 -v 4.342950 0.300710 0.520960 -v 4.342950 0.256450 0.487735 -v 4.180090 0.256450 0.487735 -v 4.180090 0.300710 0.520960 -v 4.342950 0.331095 0.269640 -v 4.180090 0.331095 0.269640 -v 4.180090 0.280195 0.291355 -v 4.342950 0.280195 0.291355 -v 4.180090 0.473015 0.335495 -v 4.180090 0.436630 0.293795 -v 4.342950 0.436630 0.293795 -v 4.342950 0.473015 0.335495 -v 4.342950 0.229530 0.439385 -v 4.180090 0.229530 0.439385 -v 4.342950 0.242525 0.331900 -v 4.180090 0.242525 0.331900 -v 4.180090 0.386430 0.270500 -v 4.342950 0.386430 0.270500 -v 4.170735 0.388120 0.201830 -v 4.170735 0.332780 0.202005 -v 4.170735 0.282155 0.179655 -v 4.170735 0.227725 0.086070 -v 4.170735 0.233335 0.031010 -v 4.170735 0.475510 0.137920 -v 4.170735 0.438610 0.179165 -v 3.230815 0.304460 -0.127470 -v 2.740580 0.304460 -0.132795 -v 2.740400 0.447215 -0.105020 -v 3.230805 0.447215 -0.099690 -v 2.741100 0.437820 -0.082130 -v 3.230975 0.437820 -0.076805 -v 0.565675 -0.077665 -0.015260 -v 0.392600 -0.080485 -0.016085 -v 0.394100 0.177180 -0.017905 -v 3.458050 0.209620 0.025065 -v 3.390435 0.144685 0.025065 -v 3.330410 0.105400 0.025065 -v 2.672975 0.094600 0.012235 -v 2.058930 0.009995 0.006275 -v 0.786445 0.016355 -0.012520 -v 0.671215 -0.054830 -0.013890 -v 3.231130 0.304460 0.600980 -v 2.741100 0.304460 0.616220 -v 2.739370 0.175170 0.479620 -v 3.229445 0.182610 0.466775 -v 3.413345 0.123170 0.247995 -v 3.464210 0.187235 0.247995 -v 3.458050 0.209620 0.454655 -v 3.390435 0.144685 0.470930 -v -0.852790 0.673230 0.230585 -v -0.891025 0.676995 0.229945 -v -0.891370 0.677045 0.242310 -v -0.891370 0.677045 0.256240 -v -0.852795 0.673310 0.254585 -v 0.223945 0.360335 0.213285 -v -0.717385 0.360220 0.213140 -v -0.698995 0.677045 0.203685 -v -0.698995 0.702735 0.203685 -v 0.223945 0.698555 0.213285 -v 3.330410 0.099365 0.247995 -v 2.672915 0.081820 0.248000 -v 2.059075 -0.002170 0.248000 -v 0.839565 -0.040465 0.248000 -v 0.835695 0.007540 0.117740 -v 2.736635 0.182610 0.001360 -v 2.736080 0.165620 0.026615 -v 2.736335 0.188565 0.046940 -v 2.736890 0.205560 0.021685 -v 2.737570 0.223440 -0.029490 -v 2.739620 0.283955 -0.087745 -v 2.740635 0.371465 -0.104050 -v 0.724715 -0.072450 0.248000 -v 0.835695 0.007535 0.378260 -v 0.619360 -0.095280 0.247995 -v 4.364625 0.332780 0.202005 -v 4.364625 0.282155 0.179655 -v 4.364625 0.388120 0.201830 -v 4.364625 0.438610 0.179165 -v 4.364625 0.475510 0.137920 -v 4.364625 0.492445 0.085230 -v 4.364625 0.486485 0.030210 -v 4.364625 0.458665 -0.017630 -v 4.364625 0.413790 -0.050015 -v 4.364625 0.359620 -0.061350 -v 4.364625 0.305525 -0.049675 -v 4.364625 0.260855 -0.017005 -v 4.364625 0.233335 0.031010 -v 4.364625 0.227725 0.086070 -v 4.364625 0.244990 0.138645 -v 4.362570 0.451770 0.200855 -v 4.364625 0.500670 0.152340 -v 4.364625 0.514040 0.021160 -v 4.364625 0.521300 0.088170 -v 4.364625 0.394240 0.230180 -v 4.364625 0.326840 0.230395 -v 4.364625 0.265180 0.203175 -v 4.364625 0.219920 0.153225 -v 4.364625 0.198890 0.089190 -v 4.364625 0.205725 0.022135 -v 4.364625 0.239240 -0.036340 -v 4.364625 0.293645 -0.076130 -v 4.364625 0.359530 -0.090355 -v 4.364625 0.425500 -0.076550 -v 4.364625 0.480155 -0.037105 -v 4.195850 0.500670 0.152340 -v 4.195850 0.455730 0.202570 -v 4.195850 0.239240 -0.036340 -v 4.195850 0.205725 0.022135 -v 4.195850 0.521300 0.088170 -v 4.195850 0.198890 0.089190 -v 4.195850 0.514040 0.021160 -v 4.195850 0.219920 0.153225 -v 4.195850 0.480155 -0.037105 -v 4.195850 0.265180 0.203175 -v 4.195850 0.425500 -0.076550 -v 4.195850 0.326840 0.230395 -v 4.195850 0.359530 -0.090355 -v 4.195850 0.394240 0.230180 -v 4.195850 0.293645 -0.076130 -v 4.178015 0.245400 -0.030830 -v 4.178015 0.297030 -0.068590 -v 4.178015 0.493500 0.148230 -v 4.178015 0.450850 0.195900 -v 4.178015 0.213595 0.024665 -v 4.178015 0.513075 0.087335 -v 4.178015 0.207110 0.088300 -v 4.178015 0.506185 0.023740 -v 4.178015 0.227065 0.149070 -v 4.178015 0.474030 -0.031550 -v 4.178015 0.270015 0.196470 -v 4.178015 0.422165 -0.068985 -v 4.178015 0.328535 0.222305 -v 4.180090 0.417100 0.541720 -v 4.180090 0.354335 0.554040 -v 4.180090 0.291980 0.539770 -v 4.197920 0.288505 0.547270 -v 4.197920 0.354205 0.562310 -v 4.197920 0.420345 0.549325 -v 4.178015 0.392500 0.222100 -v 0.007240 0.407955 0.229040 -v 0.007240 0.485215 0.194350 -v 0.007240 0.213195 -0.105845 -v 0.007240 0.281555 -0.155840 -v 0.006360 0.539890 0.129590 -v 0.007240 0.171085 -0.032370 -v 0.006360 0.566045 0.049095 -v 0.006360 0.161195 0.049095 -v 0.007240 0.558480 -0.033590 -v 0.006360 0.187350 0.129590 -v 0.007240 0.515905 -0.106800 -v 0.007240 0.245790 0.195105 -v 0.007240 0.447230 -0.156365 -v 0.007240 0.323265 0.229305 -v 4.178015 0.359555 -0.082085 -v 0.007240 0.364340 -0.173710 -v -0.040340 0.154190 -0.037800 -v -0.040340 0.144855 0.053795 -v -0.040340 0.364280 -0.191455 -v -0.040340 0.274285 -0.172030 -v -0.040340 0.411700 0.246385 -v -0.040340 0.495690 0.208675 -v -0.040340 0.454400 -0.172600 -v -0.040340 0.529055 -0.118715 -v -0.040340 0.199970 -0.117675 -v -0.040340 0.319630 0.246675 -v -0.040340 0.235405 0.209495 -v -0.040340 0.575340 -0.039130 -v -0.040340 0.585255 0.052405 -v -0.040340 0.173580 0.141270 -v -0.040340 0.557080 0.140060 -v -0.676610 0.235405 0.209495 -v -0.708885 0.256135 0.180770 -v -0.708885 0.204200 0.123460 -v -0.676610 0.173580 0.141270 -v -0.676610 0.557080 0.140060 -v -0.676610 0.585255 0.052405 -v -0.708885 0.550015 0.048815 -v -0.708885 0.526345 0.122445 -v -0.676610 0.154190 -0.037800 -v -0.676610 0.144855 0.053795 -v -0.708885 0.180070 0.049985 -v -0.708885 0.187910 -0.026960 -v -0.676610 0.364280 -0.191455 -v -0.676610 0.274285 -0.172030 -v -0.708885 0.288795 -0.139715 -v -0.708885 0.364395 -0.156035 -v -0.676610 0.411700 0.246385 -v -0.676610 0.495690 0.208675 -v -0.708885 0.474780 0.180080 -v -0.708885 0.404225 0.211760 -v -0.676610 0.454400 -0.172600 -v -0.708885 0.440095 -0.140190 -v -0.708885 0.502805 -0.094930 -v -0.676610 0.529055 -0.118715 -v -0.676610 0.199970 -0.117675 -v -0.708885 0.226370 -0.094060 -v -0.676610 0.319630 0.246675 -v -0.708885 0.326885 0.212005 -v -0.676610 0.575340 -0.039130 -v -0.708885 0.541685 -0.028075 -v 4.180090 0.209710 0.445480 -v 4.180090 0.204020 0.381770 -v 4.180090 0.224730 0.321255 -v 4.180090 0.268270 0.274390 -v 4.180090 0.327100 0.249290 -v 4.180090 0.391060 0.250285 -v 4.180090 0.449080 0.277210 -v 4.180090 0.491135 0.325410 -v 4.180090 0.509950 0.386545 -v 4.180090 0.502270 0.450045 -v 4.180090 0.469430 0.504935 -v 4.180090 0.240825 0.501370 -v 4.366700 0.408965 0.522650 -v 4.366700 0.354655 0.533310 -v 4.342950 0.354655 0.533310 -v 4.366700 0.454235 0.490820 -v 4.366700 0.482650 0.443330 -v 4.366700 0.489295 0.388390 -v 4.366700 0.473015 0.335495 -v 4.366700 0.436630 0.293795 -v 4.366700 0.386430 0.270500 -v 4.366700 0.331095 0.269640 -v 4.366700 0.242525 0.331900 -v 4.366700 0.280195 0.291355 -v 4.366700 0.325510 0.241180 -v 4.366700 0.392900 0.242230 -v 4.366700 0.454040 0.270600 -v 4.366700 0.498355 0.321385 -v 4.366700 0.518180 0.385810 -v 4.366700 0.510090 0.452720 -v 4.366700 0.475485 0.510560 -v 4.366700 0.420345 0.549325 -v 4.366700 0.354205 0.562310 -v 4.366700 0.288505 0.547270 -v 4.366700 0.234600 0.506805 -v 4.366700 0.201810 0.447915 -v 4.366700 0.229530 0.439385 -v 4.366700 0.256450 0.487735 -v 4.366700 0.300710 0.520960 -v 4.366700 0.217640 0.317010 -v 4.366700 0.263515 0.267630 -v 4.197920 0.510090 0.452720 -v 4.197920 0.475485 0.510560 -v 4.197920 0.518180 0.385810 -v 4.197920 0.195810 0.380780 -v 4.366700 0.195810 0.380780 -v 4.197920 0.201810 0.447915 -v 4.197920 0.498355 0.321385 -v 4.197920 0.234600 0.506805 -v 0.009310 0.440610 0.273410 -v 0.009310 0.508845 0.323570 -v -0.038265 0.357970 0.237595 -v 0.009310 0.357870 0.255340 -v 0.009310 0.274935 0.272485 -v -0.038265 0.267805 0.256235 -v -0.038265 0.401560 0.675835 -v 0.009310 0.397965 0.658455 -v 0.009310 0.475525 0.624440 -v -0.038265 0.485875 0.638855 -v -0.038265 0.447920 0.257240 -v -0.038265 0.522100 0.311770 -v 0.009310 0.206140 0.321880 -v -0.038265 0.193020 0.309935 -v -0.038265 0.309490 0.675320 -v -0.038265 0.225590 0.637405 -v 0.009310 0.236100 0.623105 -v 0.009310 0.313275 0.657980 -v -0.038265 0.567690 0.391760 -v -0.038880 0.577395 0.478745 -v 0.009310 0.559165 0.481425 -v 0.009310 0.550780 0.397150 -v -0.038265 0.164370 0.568640 -v -0.038290 0.142720 0.480880 -v 0.009290 0.160380 0.479125 -v 0.009310 0.179785 0.559850 -v 0.009310 0.163385 0.394985 -v -0.038265 0.146540 0.389410 -v 0.223945 0.360335 0.270950 -v 0.223945 0.698555 0.270950 -v -0.698995 0.677045 0.280935 -v -0.713420 0.677045 0.281275 -v -0.724000 0.677045 0.270200 -v -0.698260 0.677045 0.270165 -v -0.683835 0.677045 0.280935 -v -0.674535 0.547860 0.570780 -v -0.674535 0.576800 0.483375 -v -0.706810 0.541595 0.479475 -v -0.706810 0.517285 0.552895 -v -0.038265 0.547860 0.570780 -v 0.009310 0.532545 0.561820 -v -0.674535 0.267805 0.256235 -v -0.674535 0.193020 0.309935 -v -0.674535 0.146540 0.389410 -v -0.674535 0.522100 0.311770 -v -0.706810 0.495645 0.335325 -v -0.706810 0.533940 0.402520 -v -0.674535 0.567690 0.391760 -v -0.674535 0.136405 0.480920 -v 0.022125 0.144980 -0.017650 -v 0.013935 0.124255 0.035585 -v -0.029825 0.138110 -0.017455 -v -0.724000 0.702755 0.270200 -v -0.723905 0.702565 0.214465 -v -0.723905 0.677045 0.214465 -v -0.698995 0.702565 0.214450 -v -0.713420 0.702755 0.281275 -v -0.698995 0.702755 0.280935 -v -0.682190 0.702500 0.270165 -v -0.698995 0.721865 0.270165 -v -0.698995 0.721865 0.214450 -v -0.682190 0.702500 0.214450 -v 0.105790 0.058300 0.543285 -v 0.034515 0.015045 0.557815 -v -0.742550 0.562905 0.253960 -v -0.742560 0.562905 0.230200 -v -0.783090 0.623565 0.230200 -v -0.783085 0.623565 0.253960 -v 0.394655 0.634610 0.354165 -v 1.377795 0.573070 0.354165 -v 1.377795 0.573070 0.123000 -v 0.399265 0.635145 0.122820 -v 0.394655 0.634610 0.180790 -v 4.366700 0.224605 0.384260 -v 4.344025 0.224605 0.384260 -v 0.062220 -0.008880 -0.049130 -v 0.075095 -0.006435 -0.066495 -v 0.083035 -0.004925 -0.047555 -v -0.083095 -0.075645 0.547500 -v 0.017190 -0.132010 0.541425 -v -0.051460 0.128785 0.417480 -v -0.716920 0.128785 0.417480 -v -0.716930 0.127980 0.249725 -v 0.091810 0.038815 -0.066800 -v 0.069300 0.050125 -0.068585 -v 0.074560 0.050670 -0.038160 -v 0.089745 0.043035 -0.047130 -v -0.716935 0.158490 0.270220 -v -0.717170 0.245295 0.270220 -v -0.717380 0.360290 0.271120 -v -0.717180 0.245220 0.214290 -v -0.716940 0.158490 0.214290 -v -0.861115 0.676775 0.256250 -v -0.717695 0.360455 0.253960 -v -0.717705 0.360455 0.230200 -v -0.716925 0.175790 0.346400 -v -0.051465 0.175790 0.346400 -v -0.052340 0.233305 0.279300 -v -0.051280 0.245295 0.270220 -v -0.717110 0.237030 0.281965 -v -0.697150 0.677045 0.214450 -v -0.713420 0.702565 0.203890 -v -0.713420 0.677045 0.203890 -v -0.004435 0.056310 0.555570 -v 0.047670 0.100545 0.541920 -v -0.891370 0.677045 0.270165 -v -0.890945 0.689795 0.270165 -v -0.890945 0.689795 0.214450 -v -0.891370 0.677045 0.214450 -v -0.860045 0.718915 0.214450 -v -0.883215 0.702540 0.214450 -v -0.883215 0.702540 0.270165 -v -0.860045 0.718915 0.270165 -v -0.700370 0.358125 0.217390 -v -0.658910 0.677120 0.217390 -v -0.675905 0.679330 0.213285 -v -0.692260 0.491930 0.180125 -v -0.675260 0.489720 0.184230 -v -0.676150 0.679330 0.270950 -v -0.657940 0.676975 0.267500 -v -0.699155 0.357985 0.267500 -v -0.695210 0.490040 0.303080 -v -0.676310 0.487690 0.299625 -v -0.042160 -0.122055 0.535200 -v -0.044955 -0.148585 0.461395 -v 0.020830 -0.162530 0.469570 -v -0.109810 -0.098565 0.467555 -v -0.132735 -0.029505 0.463085 -v -0.107600 -0.018335 0.540380 -v 0.084295 -0.144885 0.464450 -v 0.082655 -0.113985 0.537665 -v 0.127325 0.080690 0.469475 -v 0.074595 0.120555 0.464835 -v -0.045195 -0.142250 0.014370 -v -0.092650 -0.106265 0.015875 -v -0.046835 -0.109730 -0.051490 -v -0.022600 -0.129390 -0.036905 -v 0.165000 -0.080000 0.496370 -v 0.008400 -0.084435 0.058995 -v -0.048585 -0.117430 0.039105 -v 0.017185 -0.140925 0.032915 -v 0.012790 0.126650 0.012390 -v -0.027525 0.108890 0.031370 -v 0.031225 0.112710 0.033820 -v -0.081140 -0.028710 0.050880 -v 0.011070 -0.154800 0.012905 -v -0.023860 0.057650 0.055195 -v -0.029825 -0.013960 0.062415 -v 0.046220 -0.001865 -0.044115 -v 0.057805 -0.004260 -0.068795 -v 0.054910 0.051040 -0.044760 -v 0.040370 0.043125 -0.064540 -v -0.115375 -0.028465 0.032790 -v -0.077155 0.067170 0.037230 -v -0.075100 0.095790 0.012170 -v -0.110705 0.052065 0.015005 -v -0.026435 0.121110 0.010285 -v -0.126255 0.000025 0.011670 -v -0.121605 -0.053240 0.011495 -v 0.067885 -0.006920 0.564280 -v 0.096310 0.021415 0.562155 -v 0.047430 0.042840 0.564145 -v 0.058595 -0.007895 0.532095 -v 0.081965 -0.003960 0.534465 -v 0.095440 0.027620 0.528840 -v 0.076485 0.053900 0.558955 -v 0.063585 0.015610 0.514290 -v 0.033575 0.019305 0.533080 -v 0.056775 0.049130 0.526295 -v -0.089910 0.027935 -0.051705 -v -0.099590 -0.027295 -0.050280 -v -0.047110 0.080820 -0.051815 -v -0.012195 0.104335 -0.035080 -v -0.079380 -0.071070 -0.053115 -v 0.011680 0.096930 -0.054090 -v 0.077890 0.079595 -0.052740 -v 0.083090 -0.003305 -0.063910 -v -0.020105 0.017355 -0.066385 -v -0.049820 -0.053265 -0.063240 -v 0.056600 0.097665 -0.039615 -v 0.122165 0.025410 -0.048155 -v 0.103800 0.094875 0.009540 -v 0.140130 0.049040 0.013925 -v 0.127035 -0.028720 -0.050765 -v 0.012995 -0.126275 -0.052480 -v 0.057135 -0.121480 -0.047145 -v 0.153610 -0.002760 0.018925 -v 0.149225 -0.053515 0.015770 -v 0.064685 -0.144675 0.017260 -v 0.114810 -0.114415 0.010715 -v 0.118140 -0.073335 -0.037080 -v 0.053755 0.121155 0.011670 -v 0.096240 -0.105665 0.037065 -v 0.094350 0.090950 0.029775 -v 0.106560 -0.050570 0.049655 -v 0.067275 0.078170 0.045920 -v 0.119515 0.027970 0.041535 -v 0.068255 0.018555 0.059225 -v 0.038160 0.028190 -0.068445 -v 0.076265 0.014935 -0.074005 -v 0.040105 0.037445 -0.039210 -v 0.036620 0.015810 -0.041265 -v 0.006360 0.161195 0.432780 -v -0.029825 0.148105 0.431405 -v -0.034130 0.144220 0.504610 -v 0.006360 0.169765 0.514325 -v 3.226815 0.175170 0.009085 -v 3.231205 0.371465 -0.098720 -v 3.230565 0.283955 -0.082410 -v 3.229265 0.223440 -0.024150 -v 3.227125 0.196510 0.024425 -v 3.226570 0.179515 0.049680 -v 3.226265 0.158175 0.034340 -v -0.036935 0.097550 0.539645 -v -0.089940 0.040290 0.541675 -v 0.040000 -0.067210 -0.065120 -v -0.098195 0.082935 0.466185 -v -0.126605 0.030885 0.467240 -v 0.089175 -0.095900 -0.052720 -v -0.071165 -0.057775 0.427140 -v 0.031670 -0.122870 0.433040 -v 0.152155 -0.013960 0.035585 -v 0.141630 0.049655 0.032785 -v 0.161215 0.047365 -0.015720 -v 0.173470 -0.013960 -0.016090 -v 0.096075 0.028790 -0.041545 -v 0.095460 0.012925 -0.064950 -v 0.013935 0.018470 0.063785 -v 0.046365 -0.013960 0.063785 -v 0.013935 -0.046395 0.063785 -v 0.006360 0.187350 0.352290 -v 0.006360 0.243980 0.289390 -v -0.029825 0.236245 0.278745 -v -0.029825 0.175950 0.345710 -v -0.029825 0.103585 0.042215 -v 0.013935 0.078395 0.053885 -v -0.029825 0.049655 0.057165 -v -0.029825 -0.080485 0.056520 -v 0.043595 -0.080485 0.058225 -v 0.392600 0.191195 0.132015 -v 0.392600 0.246590 0.193540 -v 0.392600 0.293860 0.214585 -v 0.392600 0.293860 0.266340 -v 0.392600 0.246590 0.287385 -v 0.392600 0.188865 0.348910 -v 0.392600 0.163230 0.427650 -v 0.392600 0.165610 0.053280 -v 0.046685 -0.086170 0.435155 -v -0.010530 0.081935 0.440555 -v -0.023315 -0.080485 0.439965 -v 0.109030 -0.013960 0.444065 -v 0.173595 0.019310 0.510530 -v 0.041700 0.081135 0.445155 -v 0.118910 0.106770 0.506135 -v 0.158440 -0.080485 -0.015730 -v 0.111670 0.103585 -0.017175 -v 0.141630 -0.077580 0.032785 -v 0.058915 0.103585 0.042065 -v 0.064805 0.137095 -0.017570 -v 0.099260 0.049655 0.049685 -v 0.104515 -0.046395 0.052825 -v 0.127730 0.655065 0.037265 -v -0.676170 0.659380 0.037265 -v -0.676170 0.659380 0.443465 -v 0.127730 0.659380 0.443465 -v 0.395250 0.651810 0.355845 -v 0.399340 0.652125 0.122105 -v -0.716920 0.128785 0.067010 -v -0.051460 0.128785 0.067010 -v -0.676170 0.567025 0.484450 -v 0.006360 0.560605 0.463385 -v 0.395250 0.538505 0.355845 -v 0.395250 0.554025 0.297105 -v 0.395410 0.528770 0.265530 -v 0.395645 0.473865 0.265530 -v 0.395695 0.402130 0.270680 -v 0.395695 0.388815 0.270680 -v 0.395695 0.388815 0.230305 -v 0.395695 0.402130 0.230305 -v 0.396090 0.474150 0.206365 -v 0.398025 0.530440 0.206365 -v 0.399340 0.554025 0.175890 -v 0.398660 0.541175 0.122985 -v -0.051070 0.360290 0.271120 -v -0.693460 0.387345 0.242660 -v -0.685305 0.682850 0.252920 -v -0.861025 0.676685 0.229980 -v 0.016310 0.143005 0.508820 -v 0.008555 0.129750 0.249555 -v 4.364730 0.198530 0.247425 -v 4.364820 0.195775 0.411995 -v -0.048720 0.128825 0.249725 -v 4.170735 0.244990 0.138645 -v 4.365470 0.494620 0.354165 -v 4.365245 0.530470 0.354165 -v -0.029825 0.148105 0.050470 -v -0.029825 0.175950 0.136170 -v -0.029825 0.236245 0.203135 -v -0.029825 0.293860 0.228785 -v 0.006360 0.293860 0.214695 -v 4.180090 0.354655 0.533310 -v -0.716920 0.150090 0.067010 -v -0.716935 0.181195 0.134485 -v -0.051475 0.168595 0.139885 -v -0.051460 0.147525 0.067010 -v -0.051460 0.235955 0.206530 -v 3.230145 0.447215 0.573220 -v 3.228340 0.205560 0.446480 -v 3.229805 0.223440 0.497640 -v 3.230200 0.283955 0.555925 -v 3.229870 0.371465 0.572260 -v 3.228485 0.437820 0.550380 -v 2.739945 0.447215 0.588465 -v 2.738815 0.437820 0.565610 -v 4.180090 0.224605 0.384260 -v -0.051460 0.149245 0.417480 -v 4.364820 0.206515 0.411995 -v 4.197920 0.217640 0.317010 -v 4.197920 0.392900 0.242230 -v 4.197920 0.454040 0.270600 -v 4.197920 0.263515 0.267630 -v 4.197920 0.325510 0.241180 -v -0.674535 0.164370 0.568640 -v -0.706810 0.195145 0.551100 -v -0.706810 0.171655 0.477415 -v -0.674535 0.447920 0.257240 -v -0.706810 0.433330 0.289515 -v -0.706810 0.180170 0.400545 -v -0.706810 0.219210 0.333780 -v -0.674535 0.357970 0.237595 -v -0.706810 0.357770 0.273015 -v -0.674535 0.309490 0.675320 -v -0.706810 0.317050 0.640715 -v -0.706810 0.246570 0.608860 -v -0.674535 0.225590 0.637405 -v -0.706810 0.282035 0.288675 -v -0.674535 0.401560 0.675835 -v -0.674535 0.485875 0.638855 -v -0.706810 0.465215 0.610080 -v -0.706810 0.394385 0.641145 -v 4.362695 0.206515 0.061420 -v 4.364820 0.195775 0.061525 -v -0.029825 0.293860 0.253090 -v 0.006360 0.293860 0.267180 -v 0.093045 0.010040 -0.040715 -v -0.040725 0.122895 0.469605 -v 0.006360 0.168045 -0.016085 -v -0.029825 0.148315 -0.016085 -v -0.676170 0.577715 0.006185 -v -0.676170 0.414000 0.240940 -v -0.676170 0.492930 0.276080 -v -0.676170 0.533920 0.356505 -v -0.676170 0.562190 0.432620 -v -0.716920 0.149245 0.417480 -v 2.739510 0.371465 0.587515 -v 2.739465 0.283955 0.571190 -v 2.738320 0.223440 0.512930 -v 2.738420 0.196510 0.464305 -v 4.362570 0.484075 0.122225 -v 4.365245 0.530470 0.123000 -v 0.005790 0.565215 0.030850 -v -0.038880 0.577715 0.006185 -v 4.365245 0.491635 0.317220 -v 4.365245 0.450360 0.273505 -v 4.364820 0.330590 0.245525 -v 4.364820 0.268900 0.269060 -v 4.364820 0.224715 0.313830 -v 4.364820 0.202870 0.373835 -v 4.362485 0.204060 0.095365 -v 4.359380 0.227565 0.159980 -v 4.359380 0.270300 0.203860 -v 4.359400 0.331630 0.224605 -v 4.362570 0.495165 0.155740 -v -0.051285 0.245220 0.214290 -v -0.051080 0.360220 0.213140 -v 4.170735 0.359620 -0.061350 -v 4.170735 0.305525 -0.049675 -v 4.340880 0.305525 -0.049675 -v 4.340880 0.359620 -0.061350 -v 4.170735 0.260855 -0.017005 -v 4.340880 0.260855 -0.017005 -v 4.170735 0.413790 -0.050015 -v 4.340880 0.413790 -0.050015 -v 4.170735 0.486485 0.030210 -v 4.170735 0.458665 -0.017630 -v 4.340880 0.458665 -0.017630 -v 4.340880 0.486485 0.030210 -v 4.340880 0.492445 0.085230 -v 4.170735 0.492445 0.085230 -v 4.170735 0.388120 0.201830 -v 4.170735 0.332780 0.202005 -v 4.340880 0.332780 0.202005 -v 4.340880 0.388120 0.201830 -v 4.170735 0.282155 0.179655 -v 4.340880 0.282155 0.179655 -v 4.340880 0.227725 0.086070 -v 4.170735 0.227725 0.086070 -v 4.170735 0.233335 0.031010 -v 4.340880 0.233335 0.031010 -v 4.170735 0.475510 0.137920 -v 4.340880 0.475510 0.137920 -v 4.170735 0.438610 0.179165 -v 4.340880 0.438610 0.179165 -v 4.364625 0.332780 0.202005 -v 4.364625 0.282155 0.179655 -v 4.364625 0.388120 0.201830 -v 4.364625 0.438610 0.179165 -v 4.364625 0.475510 0.137920 -v 4.364625 0.492445 0.085230 -v 4.364625 0.486485 0.030210 -v 4.364625 0.458665 -0.017630 -v 4.364625 0.413790 -0.050015 -v 4.364625 0.359620 -0.061350 -v 4.364625 0.305525 -0.049675 -v 4.364625 0.260855 -0.017005 -v 4.364625 0.233335 0.031010 -v 4.364625 0.227725 0.086070 -v 4.340880 0.244990 0.138645 -v 4.364625 0.244990 0.138645 -v 4.170735 0.244990 0.138645 -vt 0.296448 0.102843 -vt 0.381104 0.047947 -vt 0.035834 0.368077 -vt 0.260019 0.614243 -vt 0.318792 0.625190 -vt 0.275800 0.672218 -vt 0.064766 0.305619 -vt 0.214319 0.161856 -vt 0.375342 0.030583 -vt 0.007698 0.338314 -vt 0.029408 0.318256 -vt 0.043335 0.310187 -vt 0.318905 0.667648 -vt 0.252574 0.694311 -vt 0.236882 0.637031 -vt 0.150287 0.628071 -vt 0.161490 0.706348 -vt 0.155366 0.668298 -vt 0.158302 0.652484 -vt 0.161554 0.687117 -vt 0.159356 0.670738 -vt 0.177046 0.635712 -vt 0.113858 0.672367 -vt 0.172255 0.628996 -vt 0.099369 0.633504 -vt 0.170505 0.620102 -vt 0.100245 0.588370 -vt 0.172087 0.610476 -vt 0.193985 0.511804 -vt 0.184343 0.596378 -vt 0.152646 0.515062 -vt 0.206820 0.627110 -vt 0.277410 0.625302 -vt 0.267428 0.666574 -vt 0.192657 0.639020 -vt 0.171748 0.713811 -vt 0.184184 0.639184 -vt 0.199912 0.595309 -vt 0.231216 0.519947 -vt 0.209484 0.608292 -vt 0.277410 0.583179 -vt 0.201008 0.635047 -vt 0.169178 0.452166 -vt 0.078800 0.768428 -vt 0.075894 0.452870 -vt 0.064099 0.767980 -vt 0.061196 0.452764 -vt 0.323553 0.069332 -vt 0.329659 0.048130 -vt 0.388490 0.045773 -vt 0.180052 0.766554 -vt 0.293930 0.450084 -vt 0.291558 0.766986 -vt 0.365394 0.036567 -vt 0.393169 0.043399 -vt 0.379297 0.054638 -vt 0.379304 0.071635 -vt 0.371065 0.062010 -vt 0.668046 0.738449 -vt 0.668026 0.728691 -vt 0.697871 0.729790 -vt 0.325815 0.430384 -vt 0.338798 0.430384 -vt 0.336684 0.785453 -vt 0.343554 0.027453 -vt 0.375485 0.025070 -vt 0.355937 0.047164 -vt 0.281354 0.120599 -vt 0.298249 0.138538 -vt 0.063679 0.307987 -vt 0.047021 0.304828 -vt 0.197459 0.172409 -vt 0.116186 0.647469 -vt 0.167094 0.533190 -vt 0.144756 0.611156 -vt 0.083961 0.329606 -vt 0.085997 0.346730 -vt 0.067528 0.358456 -vt 0.073363 0.319224 -vt 0.058636 0.333248 -vt 0.211458 0.187373 -vt 0.005853 0.351113 -vt 0.046154 0.345112 -vt 0.037898 0.385539 -vt 0.725084 0.164647 -vt 0.723553 0.158385 -vt 0.727062 0.163206 -vt 0.711602 0.183175 -vt 0.715876 0.183996 -vt 0.710769 0.185812 -vt 0.739821 0.127397 -vt 0.753782 0.142282 -vt 0.706307 0.182228 -vt 0.698730 0.216346 -vt 0.685786 0.204282 -vt 0.718775 0.155720 -vt 0.715259 0.221941 -vt 0.713491 0.155905 -vt 0.722526 0.120807 -vt 0.715955 0.186917 -vt 0.733490 0.219325 -vt 0.708645 0.158709 -vt 0.704953 0.122675 -vt 0.721039 0.185231 -vt 0.750106 0.207316 -vt 0.705023 0.163741 -vt 0.689598 0.132342 -vt 0.727836 0.175925 -vt 0.725106 0.181335 -vt 0.703336 0.169962 -vt 0.678716 0.148426 -vt 0.728637 0.169479 -vt 0.760042 0.187005 -vt 0.703689 0.176461 -vt 0.674296 0.168043 -vt 0.761256 0.163594 -vt 0.681265 0.208398 -vt 0.676971 0.187712 -vt 0.743470 0.121033 -vt 0.695706 0.222422 -vt 0.723381 0.112937 -vt 0.714770 0.229775 -vt 0.702885 0.115790 -vt 0.736080 0.226501 -vt 0.685430 0.127255 -vt 0.755277 0.212407 -vt 0.673365 0.145709 -vt 0.766255 0.188961 -vt 0.751196 0.205325 -vt 0.760981 0.185314 -vt 0.755725 0.210130 -vt 0.767870 0.162564 -vt 0.483959 0.110852 -vt 0.969960 0.121605 -vt 0.483787 0.118039 -vt 0.484212 0.175076 -vt 0.969565 0.167729 -vt 0.969630 0.173987 -vt 0.484952 0.119474 -vt 0.970126 0.130178 -vt 0.484753 0.126396 -vt 0.484329 0.181867 -vt 0.969728 0.180245 -vt 0.969960 0.136435 -vt 0.484458 0.133149 -vt 0.484471 0.188497 -vt 0.969847 0.186503 -vt 0.969796 0.142694 -vt 0.484387 0.139652 -vt 0.484622 0.195187 -vt 0.969975 0.192760 -vt 0.969665 0.148951 -vt 0.484246 0.146449 -vt 0.484770 0.202114 -vt 0.970101 0.199017 -vt 0.969579 0.155210 -vt 0.484148 0.153512 -vt 0.484907 0.209290 -vt 0.970219 0.205274 -vt 0.969540 0.161470 -vt 0.484103 0.160766 -vt 0.970306 0.211532 -vt 0.485009 0.216570 -vt 0.759437 0.138254 -vt 0.043825 0.574278 -vt 0.066391 0.622018 -vt 0.038510 0.624672 -vt 0.178363 0.485327 -vt 0.132179 0.524952 -vt 0.119564 0.496854 -vt 0.205193 0.738509 -vt 0.240940 0.692312 -vt 0.258566 0.716764 -vt 0.236791 0.498723 -vt 0.260084 0.551333 -vt 0.223314 0.526436 -vt 0.094770 0.548661 -vt 0.072289 0.528583 -vt 0.145225 0.738509 -vt 0.109974 0.690139 -vt 0.152169 0.707241 -vt 0.310309 0.578357 -vt 0.285685 0.625051 -vt 0.282244 0.585959 -vt 0.079910 0.659637 -vt 0.053992 0.673528 -vt 0.297153 0.677889 -vt 0.177850 0.517458 -vt 0.071684 0.582983 -vt 0.198662 0.708515 -vt 0.283142 0.531868 -vt 0.091276 0.714321 -vt 0.484133 0.168018 -vt 0.920731 0.597940 -vt 0.903938 0.543036 -vt 0.942946 0.580578 -vt 0.905043 0.780290 -vt 0.853566 0.769454 -vt 0.891577 0.755450 -vt 0.855245 0.526323 -vt 0.812701 0.559133 -vt 0.804567 0.531906 -vt 0.718087 0.662365 -vt 0.754338 0.618031 -vt 0.746375 0.662248 -vt 0.943559 0.742509 -vt 0.937649 0.684279 -vt 0.964783 0.690499 -vt 0.754744 0.706425 -vt 0.760609 0.764453 -vt 0.729498 0.718611 -vt 0.729002 0.606054 -vt 0.777975 0.581612 -vt 0.937145 0.639146 -vt 0.964783 0.632964 -vt 0.813680 0.764929 -vt 0.856535 0.797414 -vt 0.805776 0.792238 -vt 0.852526 0.554309 -vt 0.921362 0.725386 -vt 0.759688 0.560014 -vt 0.271796 0.663565 -vt 0.313734 0.629211 -vt 0.772519 0.110747 -vt 0.709912 0.117729 -vt 0.709912 0.110747 -vt 0.772519 0.117729 -vt 0.709912 0.124711 -vt 0.778726 0.742693 -vt 0.772519 0.124711 -vt 0.709912 0.131692 -vt 0.772519 0.131692 -vt 0.709912 0.138674 -vt 0.772519 0.138674 -vt 0.709912 0.145656 -vt 0.772519 0.145656 -vt 0.709912 0.152638 -vt 0.772519 0.152638 -vt 0.709912 0.159619 -vt 0.772519 0.159619 -vt 0.709912 0.166601 -vt 0.772519 0.166601 -vt 0.709912 0.173583 -vt 0.709912 0.180565 -vt 0.772519 0.173583 -vt 0.772519 0.180565 -vt 0.709912 0.187547 -vt 0.772519 0.187547 -vt 0.709912 0.194528 -vt 0.709912 0.201510 -vt 0.772519 0.194528 -vt 0.772519 0.201510 -vt 0.709912 0.208492 -vt 0.772519 0.208492 -vt 0.581093 0.645132 -vt 0.603781 0.639512 -vt 0.608740 0.661388 -vt 0.726981 0.174407 -vt 0.723067 0.177597 -vt 0.725165 0.173608 -vt 0.727752 0.169119 -vt 0.725819 0.169174 -vt 0.726656 0.164150 -vt 0.724946 0.165095 -vt 0.723836 0.160349 -vt 0.722687 0.162043 -vt 0.719758 0.158341 -vt 0.719376 0.160520 -vt 0.715092 0.158507 -vt 0.715527 0.160721 -vt 0.710689 0.160853 -vt 0.711840 0.162704 -vt 0.707359 0.164961 -vt 0.705935 0.175548 -vt 0.707675 0.170501 -vt 0.707942 0.174918 -vt 0.705716 0.170151 -vt 0.709047 0.166164 -vt 0.725435 0.158006 -vt 0.728801 0.162746 -vt 0.762432 0.162790 -vt 0.730144 0.168771 -vt 0.755795 0.142495 -vt 0.706247 0.182073 -vt 0.698598 0.218101 -vt 0.684639 0.205881 -vt 0.720407 0.155568 -vt 0.742762 0.127448 -vt 0.715944 0.186699 -vt 0.710628 0.185394 -vt 0.484476 0.179366 -vt 0.970192 0.175478 -vt 0.970245 0.181740 -vt 0.177028 0.485893 -vt 0.222095 0.526742 -vt 0.235358 0.499123 -vt 0.144451 0.739355 -vt 0.109116 0.691060 -vt 0.090460 0.715285 -vt 0.118256 0.497530 -vt 0.093555 0.549427 -vt 0.130944 0.525611 -vt 0.258511 0.551039 -vt 0.281310 0.531966 -vt 0.257165 0.717852 -vt 0.197884 0.709488 -vt 0.204249 0.739355 -vt 0.037408 0.625657 -vt 0.070523 0.583838 -vt 0.042609 0.575184 -vt 0.311181 0.630042 -vt 0.269794 0.664861 -vt 0.294508 0.679219 -vt 0.176623 0.517982 -vt 0.280183 0.585816 -vt 0.307659 0.577845 -vt 0.151381 0.708137 -vt 0.071004 0.529375 -vt 0.272542 0.756816 -vt 0.319458 0.454369 -vt 0.319458 0.756816 -vt 0.195505 0.728782 -vt 0.158795 0.772174 -vt 0.164003 0.723040 -vt 0.854491 0.798991 -vt 0.889910 0.757267 -vt 0.903185 0.782258 -vt 0.053035 0.674542 -vt 0.065319 0.622936 -vt 0.772519 0.110747 -vt 0.709912 0.117729 -vt 0.709912 0.110747 -vt 0.772519 0.117729 -vt 0.709912 0.124711 -vt 0.777220 0.743735 -vt 0.803814 0.793429 -vt 0.758935 0.765339 -vt 0.772519 0.131692 -vt 0.709912 0.131692 -vt 0.055645 0.560553 -vt 0.085835 0.571116 -vt 0.052945 0.594360 -vt 0.195487 0.652780 -vt 0.126933 0.516508 -vt 0.195505 0.516517 -vt 0.133283 0.633683 -vt 0.125966 0.664022 -vt 0.091024 0.690109 -vt 0.262609 0.630973 -vt 0.152787 0.575424 -vt 0.262609 0.575424 -vt 0.225552 0.202243 -vt 0.199418 0.586336 -vt 0.819994 0.746843 -vt 0.763814 0.730207 -vt 0.819994 0.730196 -vt 0.163478 0.695413 -vt 0.163446 0.561456 -vt 0.173352 0.560832 -vt 0.709548 0.178646 -vt 0.708231 0.179960 -vt 0.697912 0.746604 -vt 0.886978 0.568216 -vt 0.907767 0.564368 -vt 0.911018 0.585272 -vt 0.273287 0.553544 -vt 0.232715 0.507377 -vt 0.181062 0.777784 -vt 0.180989 0.432590 -vt 0.211081 0.695672 -vt 0.935628 0.547777 -vt 0.928335 0.534586 -vt 0.957061 0.514718 -vt 0.953673 0.541275 -vt 0.264483 0.609153 -vt 0.214574 0.720008 -vt 0.215429 0.609151 -vt 0.820524 0.552760 -vt 0.816236 0.564136 -vt 0.818580 0.604308 -vt 0.977054 0.746836 -vt 0.175301 0.801976 -vt 0.161807 0.439493 -vt 0.174456 0.439519 -vt 0.249368 0.572381 -vt 0.157624 0.676127 -vt 0.157559 0.572357 -vt 0.252242 0.555075 -vt 0.262949 0.582689 -vt 0.250389 0.588987 -vt 0.195569 0.516508 -vt 0.325918 0.542286 -vt 0.222901 0.642861 -vt 0.267417 0.588326 -vt 0.271105 0.564524 -vt 0.171193 0.685318 -vt 0.151737 0.608220 -vt 0.169451 0.570217 -vt 0.127832 0.649666 -vt 0.152545 0.627205 -vt 0.172283 0.627297 -vt 0.127832 0.675813 -vt 0.216734 0.725573 -vt 0.127832 0.725573 -vt 0.105909 0.462751 -vt 0.021077 0.782399 -vt 0.021077 0.462751 -vt 0.065793 0.457768 -vt 0.084619 0.458339 -vt 0.108210 0.782802 -vt 0.234271 0.474384 -vt 0.298671 0.450845 -vt 0.298671 0.474384 -vt 0.881052 0.748887 -vt 0.894087 0.499407 -vt 0.894087 0.786407 -vt 0.827150 0.688128 -vt 0.883392 0.752398 -vt 0.896428 0.789917 -vt 0.873114 0.583614 -vt 0.824810 0.684617 -vt 0.900819 0.796593 -vt 0.886821 0.542960 -vt 0.900819 0.504088 -vt 0.830423 0.604345 -vt 0.853632 0.607711 -vt 0.235549 0.782542 -vt 0.194646 0.438622 -vt 0.227326 0.431587 -vt 0.164786 0.785449 -vt 0.162663 0.430379 -vt 0.175655 0.430379 -vt 0.242453 0.765105 -vt 0.263009 0.523159 -vt 0.309742 0.542637 -vt 0.264154 0.457185 -vt 0.298591 0.506679 -vt 0.196716 0.498795 -vt 0.200462 0.439717 -vt 0.320799 0.580957 -vt 0.278448 0.589160 -vt 0.116297 0.654629 -vt 0.186553 0.635602 -vt 0.165229 0.682820 -vt 0.105918 0.485981 -vt 0.134656 0.504380 -vt 0.136066 0.481351 -vt 0.309429 0.714666 -vt 0.301416 0.537221 -vt 0.329610 0.511479 -vt 0.300178 0.485482 -vt 0.321744 0.702481 -vt 0.330347 0.665420 -vt 0.288229 0.669719 -vt 0.331049 0.569269 -vt 0.355610 0.485981 -vt 0.314563 0.455848 -vt 0.314762 0.619629 -vt 0.308023 0.582873 -vt 0.877023 0.547152 -vt 0.900329 0.554458 -vt 0.932482 0.511002 -vt 0.914183 0.524699 -vt 0.347823 0.569516 -vt 0.339103 0.628659 -vt 0.362347 0.651411 -vt 0.361841 0.618071 -vt 0.358811 0.683852 -vt 0.364007 0.586030 -vt 0.364503 0.554248 -vt 0.953081 0.541991 -vt 0.929418 0.567271 -vt 0.907393 0.539597 -vt 0.950784 0.536249 -vt 0.934390 0.516693 -vt 0.965839 0.506925 -vt 0.960858 0.575264 -vt 0.928899 0.592619 -vt 0.900072 0.564677 -vt 0.925604 0.545762 -vt 0.898703 0.524833 -vt 0.942330 0.573348 -vt 0.902608 0.570019 -vt 0.965839 0.575300 -vt 0.877278 0.537666 -vt 0.359814 0.520250 -vt 0.105918 0.586040 -vt 0.122763 0.606554 -vt 0.122160 0.568036 -vt 0.105918 0.651411 -vt 0.134501 0.651986 -vt 0.116857 0.686917 -vt 0.128578 0.540344 -vt 0.105918 0.519517 -vt 0.179299 0.610462 -vt 0.206268 0.646985 -vt 0.195687 0.585356 -vt 0.105918 0.554738 -vt 0.158694 0.599897 -vt 0.147941 0.550950 -vt 0.165834 0.671052 -vt 0.668850 0.167746 -vt 0.179299 0.594155 -vt 0.210315 0.672096 -vt 0.221813 0.605981 -vt 0.238193 0.651293 -vt 0.241063 0.616632 -vt 0.219795 0.566854 -vt 0.183376 0.447393 -vt 0.166142 0.483401 -vt 0.203060 0.490554 -vt 0.140665 0.679871 -vt 0.175223 0.708304 -vt 0.175223 0.447393 -vt 0.243353 0.585256 -vt 0.241335 0.554039 -vt 0.237966 0.475216 -vt 0.232297 0.447393 -vt 0.207928 0.489377 -vt 0.240476 0.513146 -vt 0.251532 0.481330 -vt 0.900465 0.507474 -vt 0.921065 0.518190 -vt 0.224365 0.534698 -vt 0.247604 0.683125 -vt 0.265852 0.521012 -vt 0.259271 0.647142 -vt 0.270424 0.558400 -vt 0.279577 0.636261 -vt 0.263947 0.602862 -vt 0.285541 0.597356 -vt 0.259965 0.475042 -vt 0.105918 0.683801 -vt 0.109995 0.708304 -vt 0.900607 0.554110 -vt 0.906244 0.530861 -vt 0.918100 0.552857 -vt 0.903498 0.502883 -vt 0.877735 0.522424 -vt 0.140284 0.563354 -vt 0.147562 0.537185 -vt 0.157422 0.547084 -vt 0.352558 0.651996 -vt 0.351599 0.694222 -vt 0.264200 0.103081 -vt 0.143507 0.615307 -vt 0.167506 0.692768 -vt 0.114162 0.579622 -vt 0.138423 0.558381 -vt 0.163878 0.517052 -vt 0.182157 0.540271 -vt 0.101175 0.495838 -vt 0.144662 0.457293 -vt 0.211297 0.516323 -vt 0.322901 0.436996 -vt 0.352558 0.538438 -vt 0.891052 0.677793 -vt 0.917004 0.511202 -vt 0.917004 0.792988 -vt 0.878415 0.705410 -vt 0.893073 0.634076 -vt 0.920336 0.516840 -vt 0.920336 0.798718 -vt 0.846158 0.681812 -vt 0.275288 0.572357 -vt 0.275288 0.624832 -vt 0.249398 0.594995 -vt 0.209176 0.709866 -vt 0.249368 0.676127 -vt 0.167421 0.491426 -vt 0.124294 0.471366 -vt 0.162808 0.460306 -vt 0.957061 0.564870 -vt 0.927904 0.563325 -vt 0.150752 0.576637 -vt 0.190834 0.577182 -vt 0.170151 0.604581 -vt 0.128181 0.582143 -vt 0.109668 0.601489 -vt 0.117887 0.576989 -vt 0.093949 0.599522 -vt 0.114144 0.574560 -vt 0.129560 0.603106 -vt 0.212519 0.604928 -vt 0.212519 0.558390 -vt 0.231646 0.613041 -vt 0.227152 0.648851 -vt 0.201506 0.617369 -vt 0.139457 0.483153 -vt 0.077627 0.552409 -vt 0.101353 0.474052 -vt 0.165272 0.528563 -vt 0.207887 0.557441 -vt 0.120923 0.575474 -vt 0.170479 0.601100 -vt 0.206597 0.460159 -vt 0.086526 0.503205 -vt 0.132175 0.499398 -vt 0.206821 0.490684 -vt 0.100525 0.547157 -vt 0.063972 0.533756 -vt 0.132613 0.525187 -vt 0.190409 0.519748 -vt 0.170804 0.556982 -vt 0.121105 0.677240 -vt 0.205558 0.648994 -vt 0.131040 0.698669 -vt 0.120791 0.604036 -vt 0.195827 0.623937 -vt 0.207649 0.610159 -vt 0.212359 0.602400 -vt 0.287078 0.712267 -vt 0.252897 0.802356 -vt 0.128758 0.712271 -vt 0.243796 0.777942 -vt 0.211881 0.741978 -vt 0.212506 0.605245 -vt 0.331206 0.533544 -vt 0.331202 0.809653 -vt 0.250386 0.590767 -vt 0.225808 0.675074 -vt 0.193918 0.686639 -vt 0.193915 0.675082 -vt 0.145648 0.587952 -vt 0.153023 0.628692 -vt 0.115329 0.787499 -vt 0.221666 0.444608 -vt 0.221666 0.787392 -vt 0.337913 0.036846 -vt 0.800736 0.658409 -vt 0.694096 0.708634 -vt 0.748012 0.622240 -vt 0.162198 0.707502 -vt 0.114327 0.626249 -vt 0.092619 0.489940 -vt 0.135367 0.489934 -vt 0.134341 0.490121 -vt 0.581829 0.656266 -vt 0.582205 0.643874 -vt 0.608643 0.657856 -vt 0.263579 0.448575 -vt 0.267297 0.448675 -vt 0.264232 0.688301 -vt 0.118691 0.632067 -vt 0.195676 0.634976 -vt 0.367186 0.436037 -vt 0.369064 0.435460 -vt 0.369064 0.446998 -vt 0.157595 0.652282 -vt 0.139370 0.699960 -vt 0.118811 0.545559 -vt 0.176974 0.602004 -vt 0.206796 0.712223 -vt 0.234698 0.802319 -vt 0.169544 0.439544 -vt 0.234698 0.439493 -vt 0.562797 0.641426 -vt 0.565453 0.666175 -vt 0.627405 0.667443 -vt 0.245196 0.803897 -vt 0.159624 0.441498 -vt 0.244492 0.440999 -vt 0.392020 0.638012 -vt 0.045367 0.655659 -vt 0.045367 0.638014 -vt 0.284583 0.452887 -vt 0.301479 0.768428 -vt 0.283085 0.768364 -vt 0.172083 0.767614 -vt 0.150875 0.627246 -vt 0.186150 0.587085 -vt 0.208564 0.688133 -vt 0.084286 0.450002 -vt 0.071571 0.766388 -vt 0.069521 0.449747 -vt 0.178000 0.449680 -vt 0.086339 0.766986 -vt 0.034390 0.322797 -vt 0.716106 0.183929 -vt 0.712436 0.180963 -vt 0.716024 0.181572 -vt 0.206153 0.600413 -vt 0.719885 0.180488 -vt 0.711682 0.182911 -vt 0.332646 0.435561 -vt 0.350092 0.816437 -vt 0.332646 0.816524 -vt 0.675346 0.188923 -vt 0.721672 0.185008 -vt 0.716280 0.222162 -vt 0.709349 0.158612 -vt 0.706700 0.120767 -vt 0.714728 0.155740 -vt 0.725522 0.119727 -vt 0.734665 0.217607 -vt 0.703313 0.169968 -vt 0.677441 0.147810 -vt 0.705383 0.163699 -vt 0.729202 0.175190 -vt 0.726116 0.180718 -vt 0.689513 0.130771 -vt 0.666470 0.167805 -vt 0.669341 0.191107 -vt 0.761656 0.138536 -vt 0.679626 0.211026 -vt 0.716559 0.229434 -vt 0.696121 0.224894 -vt 0.746698 0.120586 -vt 0.704784 0.113720 -vt 0.726339 0.112168 -vt 0.737338 0.224195 -vt 0.685433 0.125314 -vt 0.672199 0.144669 -vt 0.484104 0.145241 -vt 0.969961 0.144158 -vt 0.969947 0.150422 -vt 0.484567 0.193884 -vt 0.970285 0.200529 -vt 0.484542 0.200953 -vt 0.672631 0.168500 -vt 0.703606 0.176529 -vt 0.484495 0.207757 -vt 0.970229 0.213055 -vt 0.484456 0.214348 -vt 0.484131 0.152176 -vt 0.969979 0.156687 -vt 0.970252 0.206792 -vt 0.484297 0.165508 -vt 0.970044 0.162951 -vt 0.970121 0.169214 -vt 0.484202 0.158872 -vt 0.484393 0.172304 -vt 0.484786 0.111975 -vt 0.970932 0.118244 -vt 0.484720 0.118516 -vt 0.767252 0.187756 -vt 0.769124 0.162040 -vt 0.484617 0.116667 -vt 0.970142 0.131630 -vt 0.484400 0.123593 -vt 0.484136 0.138057 -vt 0.970029 0.137894 -vt 0.484235 0.130771 -vt 0.484536 0.186623 -vt 0.970285 0.188003 -vt 0.970306 0.194266 -vt 0.239668 0.693930 -vt 0.216734 0.675813 -vt 0.904289 0.545005 -vt 0.852814 0.555862 -vt 0.855781 0.527901 -vt 0.728248 0.719312 -vt 0.759854 0.560902 -vt 0.812928 0.560404 -vt 0.777973 0.582655 -vt 0.717332 0.663006 -vt 0.753583 0.707327 -vt 0.936896 0.641000 -vt 0.942805 0.582769 -vt 0.964030 0.634771 -vt 0.728744 0.606756 -vt 0.753991 0.618934 -vt 0.811945 0.766199 -vt 0.805021 0.533098 -vt 0.920609 0.599900 -vt 0.964030 0.692306 -vt 0.919977 0.727346 -vt 0.936391 0.686133 -vt 0.745620 0.663114 -vt 0.942193 0.744700 -vt 0.709912 0.138674 -vt 0.772519 0.145656 -vt 0.709912 0.145656 -vt 0.709912 0.152638 -vt 0.772519 0.138674 -vt 0.772519 0.159619 -vt 0.709912 0.166601 -vt 0.709912 0.159619 -vt 0.772519 0.152638 -vt 0.772519 0.173583 -vt 0.709912 0.173583 -vt 0.709912 0.180565 -vt 0.709912 0.187547 -vt 0.772519 0.180565 -vt 0.772519 0.187547 -vt 0.709912 0.194528 -vt 0.772519 0.194528 -vt 0.709912 0.201510 -vt 0.772519 0.201510 -vt 0.709912 0.208492 -vt 0.772519 0.208492 -vt 0.709912 0.215474 -vt 0.350146 0.436640 -vt 0.367133 0.806539 -vt 0.350190 0.806571 -vt 0.107097 0.627693 -vt 0.108184 0.620317 -vt 0.119453 0.618151 -vt 0.937565 0.584611 -vt 0.868521 0.556075 -vt 0.960858 0.512637 -vt 0.105918 0.617345 -vt 0.118984 0.476287 -vt 0.108501 0.453370 -vt 0.084558 0.560630 -vt 0.105941 0.596325 -vt 0.310102 0.447416 -vt 0.310102 0.708280 -vt 0.054717 0.479533 -vt 0.076264 0.466463 -vt 0.097811 0.465749 -vt 0.191332 0.627510 -vt 0.133562 0.719949 -vt 0.121285 0.705451 -vt 0.131344 0.555061 -vt 0.211034 0.500194 -vt 0.724507 0.179085 -vt 0.180789 0.604721 -vt 0.117261 0.569132 -vt 0.288234 0.549025 -vt 0.146500 0.588610 -vt 0.166408 0.803908 -vt 0.231871 0.441085 -vt 0.231871 0.803909 -vt 0.043980 0.638066 -vt 0.390629 0.657331 -vt 0.043980 0.657330 -vt 0.588528 0.681834 -vt 0.574882 0.676320 -vt 0.630206 0.655378 -vt 0.220758 0.706446 -vt 0.233541 0.771678 -vt 0.152011 0.579100 -vt 0.056424 0.367415 -vt 0.709912 0.215474 -vt 0.267316 0.448783 -vt 0.274784 0.448575 -vt 0.272279 0.536226 -vt 0.099764 0.465749 -vt 0.099764 0.794045 -vt 0.028991 0.741096 -vt 0.141547 0.711432 -vt 0.208794 0.655666 -vt 0.320795 0.572740 -vt 0.307950 0.589772 -vt 0.232351 0.532549 -vt 0.180003 0.767981 -vt 0.133760 0.767968 -vt 0.134369 0.493727 -vt 0.227815 0.649188 -vt 0.232268 0.612759 -vt 0.269325 0.704233 -vt 0.246728 0.630194 -vt 0.197348 0.602668 -vt 0.282628 0.491928 -vt 0.135289 0.489242 -vt 0.176745 0.631828 -vt 0.157863 0.655488 -vt 0.109154 0.440439 -vt 0.099688 0.459852 -vt 0.136487 0.446954 -vt 0.232297 0.708304 -vt 0.238974 0.683097 -vt 0.008480 0.800988 -vt 0.407403 0.447459 -vt 0.036793 0.828524 -vt 0.359842 0.504845 -vt 0.367112 0.469866 -vt 0.363822 0.620812 -vt 0.685894 0.604739 -vt 0.792590 0.651454 -vt 0.740616 0.688691 -vt 0.258538 0.547976 -vt 0.225461 0.484605 -vt 0.167856 0.484688 -vt 0.204303 0.450095 -vt 0.226143 0.444502 -vt 0.119805 0.787392 -vt 0.119805 0.444608 -vt 0.194262 0.588454 -vt 0.256279 0.552826 -vt 0.199364 0.595218 -vt 0.187505 0.584542 -vt 0.229036 0.526209 -vt 0.271948 0.591593 -vt 0.201797 0.603654 -vt 0.201242 0.612132 -vt 0.256321 0.674292 -vt 0.198121 0.619076 -vt 0.192992 0.623455 -vt 0.227234 0.703855 -vt 0.116170 0.673909 -vt 0.169500 0.610001 -vt 0.173624 0.617454 -vt 0.099949 0.631784 -vt 0.168259 0.601429 -vt 0.166956 0.518822 -vt 0.174141 0.587280 -vt 0.139178 0.530065 -vt 0.186474 0.624717 -vt 0.147997 0.705299 -vt 0.179823 0.622432 -vt 0.725826 0.175056 -vt 0.722153 0.178139 -vt 0.724044 0.174342 -vt 0.726387 0.169758 -vt 0.724491 0.169903 -vt 0.725084 0.164647 -vt 0.723385 0.165642 -vt 0.722202 0.160686 -vt 0.721012 0.162359 -vt 0.718280 0.158582 -vt 0.717854 0.160627 -vt 0.713972 0.158669 -vt 0.714406 0.160768 -vt 0.709989 0.161008 -vt 0.711191 0.162751 -vt 0.706988 0.165168 -vt 0.708677 0.166285 -vt 0.705490 0.170262 -vt 0.707388 0.170569 -vt 0.707675 0.175019 -vt 0.708001 0.180219 -vt 0.705848 0.175585 -vt 0.711602 0.183175 -vt 0.709457 0.178808 -vt 0.712362 0.181200 -vt 0.715876 0.183996 -vt 0.715822 0.181857 -vt 0.720089 0.182722 -vt 0.719269 0.180787 -vt 0.723539 0.179542 -vt 0.180390 0.584076 -vt 0.197163 0.515281 -vt 0.271948 0.634806 -vt 0.115685 0.553724 -vt 0.169944 0.593389 -vt 0.100883 0.588970 -vt 0.192291 0.593771 -vt 0.210252 0.617955 -vt 0.238889 0.694713 -vt 0.339891 0.033820 -vt 0.360458 0.014530 -vt 0.022446 0.385164 -vt 0.104553 0.285332 -vt 0.023490 0.369930 -vt 0.026427 0.358619 -vt 0.169356 0.207893 -vt 0.668329 0.747110 -vt 0.165771 0.785453 -vt 0.165651 0.423324 -vt 0.349524 0.013035 -vt 0.215519 0.749251 -vt 0.200561 0.766772 -vt 0.168820 0.697328 -vt 0.175150 0.483896 -vt 0.188801 0.458524 -vt 0.201868 0.496878 -vt 0.215519 0.471506 -vt 0.023921 0.334271 -vt 0.722202 0.160686 -vt 0.709989 0.161008 -vt 0.713972 0.158669 -vt 0.718280 0.158582 -vt 0.705490 0.170262 -vt 0.706988 0.165168 -vt 0.708001 0.180219 -vt 0.720089 0.182722 -vt 0.723539 0.179542 -vt 0.726387 0.169758 -vt 0.725826 0.175056 -vt 0.705848 0.175585 -vt 0.671600 0.189680 -vt 0.970110 0.115337 -vt 0.970306 0.123922 -vt 0.890665 0.568032 -vt 0.581093 0.657225 -vt 0.579706 0.651105 -vt 0.585016 0.640340 -vt 0.590796 0.637557 -vt 0.597433 0.637264 -vt 0.608740 0.643912 -vt 0.611455 0.649704 -vt 0.611455 0.655885 -vt 0.603781 0.665260 -vt 0.597433 0.666832 -vt 0.590796 0.665833 -vt 0.585016 0.662435 -vt 0.720710 0.182424 -vt 0.280470 0.626193 -vt 0.272542 0.454369 -vt 0.851770 0.771006 -vt 0.078947 0.660579 -vt 0.772519 0.124711 -vt 0.054201 0.526134 -vt 0.152787 0.630973 -vt 0.763814 0.746853 -vt 0.202973 0.560832 -vt 0.202973 0.695413 -vt 0.211017 0.432541 -vt 0.211037 0.512599 -vt 0.211827 0.777736 -vt 0.215312 0.525547 -vt 0.264366 0.525478 -vt 0.265426 0.720008 -vt 0.977054 0.730190 -vt 0.253847 0.439630 -vt 0.253847 0.802453 -vt 0.161667 0.802553 -vt 0.325918 0.642861 -vt 0.194508 0.627297 -vt 0.216734 0.649666 -vt 0.216734 0.627297 -vt 0.127816 0.627297 -vt 0.105909 0.782399 -vt 0.108210 0.457768 -vt 0.023377 0.780946 -vt 0.023377 0.457768 -vt 0.044585 0.457768 -vt 0.234271 0.450827 -vt 0.848498 0.685322 -vt 0.211155 0.787793 -vt 0.335787 0.423324 -vt 0.335699 0.785449 -vt 0.290788 0.765173 -vt 0.189640 0.774772 -vt 0.175485 0.749677 -vt 0.197104 0.735777 -vt 0.195938 0.458524 -vt 0.165712 0.528641 -vt 0.211259 0.475708 -vt 0.211259 0.760871 -vt 0.191836 0.630793 -vt 0.201181 0.641632 -vt 0.161801 0.803719 -vt 0.128769 0.441635 -vt 0.287078 0.441635 -vt 0.211243 0.432637 -vt 0.243950 0.432743 -vt 0.211825 0.777842 -vt 0.239777 0.809653 -vt 0.236235 0.574344 -vt 0.228178 0.436438 -vt 0.332137 0.437634 -vt 0.108370 0.457995 -vt 0.293038 0.458286 -vt 0.246640 0.543184 -vt 0.293038 0.556655 -vt 0.150823 0.543181 -vt 0.109026 0.554322 -vt 0.174987 0.612558 -vt 0.221723 0.612794 -vt 0.174924 0.563657 -vt 0.221713 0.565123 -vt 0.225811 0.686631 -vt 0.115329 0.444502 -vt 0.977611 0.684219 -vt 0.953285 0.706882 -vt 0.701874 0.553659 -vt 0.702069 0.527374 -vt 0.704813 0.560928 -vt 0.092820 0.767961 -vt 0.585750 0.639317 -vt 0.591029 0.636927 -vt 0.597039 0.637275 -vt 0.602747 0.640193 -vt 0.607057 0.645239 -vt 0.609112 0.651531 -vt 0.606007 0.663036 -vt 0.590549 0.665540 -vt 0.601674 0.666302 -vt 0.596168 0.667244 -vt 0.585313 0.661826 -vt 0.580781 0.649872 -vt 0.267297 0.783587 -vt 0.259032 0.783285 -vt 0.108846 0.681140 -vt 0.103788 0.649857 -vt 0.170248 0.802442 -vt 0.570250 0.630345 -vt 0.561088 0.654029 -vt 0.575159 0.676023 -vt 0.588782 0.681545 -vt 0.603793 0.681956 -vt 0.617443 0.676725 -vt 0.631890 0.655009 -vt 0.597074 0.620271 -vt 0.630779 0.642388 -vt 0.623624 0.631208 -vt 0.611752 0.623170 -vt 0.582328 0.622690 -vt 0.154550 0.804507 -vt 0.392020 0.658075 -vt 0.302976 0.452951 -vt 0.259270 0.751033 -vt 0.240884 0.770341 -vt 0.229212 0.441980 -vt 0.259270 0.458646 -vt 0.216825 0.498419 -vt 0.350092 0.435460 -vt 0.970960 0.111975 -vt 0.970306 0.125366 -vt 0.890824 0.569849 -vt 0.772519 0.166601 -vt 0.772519 0.215474 -vt 0.367133 0.435460 -vt 0.097811 0.792171 -vt 0.027038 0.518698 -vt 0.022050 0.790931 -vt 0.048570 0.460209 -vt 0.369430 0.460209 -vt 0.393986 0.531106 -vt 0.357472 0.524564 -vt 0.057138 0.544589 -vt 0.016196 0.540388 -vt 0.234035 0.602324 -vt 0.208545 0.673246 -vt 0.166408 0.441084 -vt 0.390629 0.638066 -vt 0.565141 0.666479 -vt 0.560742 0.654326 -vt 0.562422 0.641703 -vt 0.569858 0.630592 -vt 0.581929 0.622903 -vt 0.596678 0.620440 -vt 0.611359 0.623268 -vt 0.623116 0.631113 -vt 0.630113 0.642341 -vt 0.626759 0.667862 -vt 0.617032 0.677247 -vt 0.603542 0.682270 -vt 0.238861 0.434065 -vt 0.208361 0.516967 -vt 0.257646 0.452955 -vt 0.257646 0.754262 -vt 0.188162 0.618478 -vt 0.772519 0.215474 -vt 0.274784 0.803410 -vt 0.270640 0.803271 -vt 0.078217 0.793331 -vt 0.056670 0.780261 -vt 0.024003 0.468863 -vt 0.307951 0.808658 -vt 0.228621 0.808658 -vt 0.227029 0.435583 -vt 0.328843 0.434552 -vt 0.179789 0.489959 -vt 0.332118 0.585098 -vt 0.332118 0.698790 -vt 0.309212 0.586099 -vt 0.308210 0.697854 -vt 0.285450 0.699257 -vt 0.271271 0.566606 -vt 0.252657 0.705153 -vt 0.140966 0.607404 -vt 0.140973 0.491835 -vt 0.282628 0.686931 -vt 0.267629 0.707508 -vt 0.267267 0.681966 -vt 0.157303 0.703261 -vt 0.151510 0.703269 -vt 0.153431 0.677036 -vt 0.140412 0.684992 -vt 0.280459 0.490002 -vt 0.208429 0.606816 -vt 0.280459 0.608219 -vt 0.242980 0.600630 -vt 0.379091 0.419923 -vt 0.028126 0.733572 -vt 0.029621 0.521536 -vt 0.064034 0.703794 -vt 0.065764 0.521765 -vt 0.068554 0.555674 -vt 0.074971 0.734624 -vt 0.108057 0.662705 -vt 0.109927 0.596019 -vt 0.229392 0.641886 -vt 0.230621 0.621945 -vt 0.291265 0.660773 -vt 0.292944 0.600726 -vt 0.334275 0.701102 -vt 0.337630 0.559808 -vt 0.367112 0.791321 -vt 0.356079 0.791468 -vt 0.358325 0.760311 -vt 0.356289 0.469829 -vt 0.699040 0.751173 -vt 0.696774 0.785087 -vt 0.945083 0.602988 -vt 0.969409 0.625257 -vt 0.377077 0.450759 -vt 0.303950 0.504075 -vt 0.377111 0.473918 -vt 0.237685 0.573495 -vt 0.225603 0.582865 -vt 0.016154 0.475399 -vt 0.016119 0.451280 -vt 0.085701 0.510511 -vt 0.167998 0.582865 -vt 0.226143 0.787499 -vt 0.188554 0.710454 -vn 0.0130 0.0433 0.9990 -vn 0.9758 -0.0576 0.2109 -vn 0.0149 0.0285 0.9995 -vn 0.0111 -0.0104 0.9999 -vn 0.0194 0.0091 0.9998 -vn 0.0156 0.0165 0.9997 -vn 0.0050 0.0088 0.9999 -vn 0.0091 0.0138 0.9999 -vn 0.7129 0.1629 0.6821 -vn 0.2218 -0.9715 0.0835 -vn 0.9154 -0.3970 0.0669 -vn 0.0047 -0.9679 0.2513 -vn 0.0008 -0.9675 0.2528 -vn 0.0008 -0.9677 0.2523 -vn 0.0006 -0.9997 -0.0238 -vn -0.0094 -0.9896 -0.1438 -vn -0.0003 -0.9997 -0.0248 -vn 0.0000 -0.9960 0.0890 -vn 0.0000 -0.9461 -0.3238 -vn 0.0000 -0.7326 -0.6806 -vn 0.0000 -0.3925 -0.9198 -vn 0.0000 0.7535 -0.6575 -vn 0.0000 0.4210 -0.9071 -vn 0.0000 0.1926 0.9813 -vn 0.0000 0.5751 0.8181 -vn 0.0000 -0.6003 0.7998 -vn 0.0000 -0.8737 0.4864 -vn 0.0000 0.9558 -0.2942 -vn 0.0000 0.8581 0.5135 -vn 0.0000 -0.2231 0.9748 -vn 0.0107 0.1910 -0.9815 -vn -0.0041 0.9251 0.3798 -vn 0.0143 0.0015 -0.9999 -vn 0.0131 -0.0017 -0.9999 -vn 0.0103 -0.0031 -0.9999 -vn 0.0271 -0.7370 0.6753 -vn 0.0231 -0.7294 0.6837 -vn 0.0288 -0.7402 0.6717 -vn 0.5549 -0.8319 -0.0095 -vn 0.7206 -0.6812 0.1291 -vn 0.5946 -0.7990 0.0902 -vn 0.0559 0.0967 0.9937 -vn 0.0423 0.0732 0.9964 -vn 0.0000 0.0000 1.0000 -vn 0.0973 0.9953 -0.0015 -vn 0.0964 0.9953 -0.0003 -vn 0.3468 0.9379 -0.0027 -vn 0.0062 -0.0121 -0.9999 -vn 0.0104 0.0000 -0.9999 -vn 0.6042 -0.7934 -0.0742 -vn 0.7726 -0.6346 -0.0186 -vn 0.1808 -0.9835 -0.0000 -vn 0.2973 -0.9544 0.0283 -vn 0.0788 -0.9969 -0.0025 -vn 0.0785 -0.9957 0.0483 -vn 0.1956 -0.9589 -0.2055 -vn 0.3220 -0.9286 -0.1846 -vn 0.0663 -0.9965 -0.0512 -vn -0.9999 0.0087 -0.0144 -vn -0.9997 0.0055 -0.0235 -vn -0.9997 0.0198 -0.0123 -vn 0.1944 -0.9596 0.2035 -vn 0.3223 -0.9289 0.1823 -vn 0.3440 -0.9273 0.1477 -vn 0.1529 -0.9882 -0.0000 -vn 0.3029 -0.9530 0.0003 -vn 0.0675 -0.9977 -0.0029 -vn -0.0207 -0.9991 -0.0382 -vn 0.1042 -0.9946 -0.0002 -vn -0.0215 -0.9990 0.0383 -vn 0.9974 0.0289 0.0655 -vn 0.9999 0.0046 0.0105 -vn 0.9976 0.0327 0.0615 -vn 1.0000 0.0000 0.0000 -vn 0.0053 0.5861 0.8102 -vn -0.2049 0.8472 0.4901 -vn -0.1986 0.5793 0.7905 -vn 0.0000 -0.7453 -0.6668 -vn -0.2096 -0.9309 -0.2992 -vn -0.2095 -0.7287 -0.6520 -vn 0.0000 0.9948 0.1014 -vn 0.0000 0.8536 0.5209 -vn 0.0000 -0.9520 -0.3060 -vn -0.2096 -0.9721 0.1053 -vn 0.0000 0.9501 -0.3120 -vn -0.2096 0.9728 0.0991 -vn 0.0000 -0.9942 0.1077 -vn -0.2095 -0.8453 0.4916 -vn 0.0000 0.7410 -0.6715 -vn -0.2096 0.9290 -0.3051 -vn 0.0000 -0.8644 0.5027 -vn -0.2095 -0.5722 0.7929 -vn 0.0000 0.4038 -0.9148 -vn -0.2096 0.7246 -0.6566 -vn 0.0000 -0.2048 0.9788 -vn 0.0000 -0.5852 0.8109 -vn 0.0000 -0.0032 -1.0000 -vn -0.2096 0.3949 -0.8945 -vn 0.0000 0.2327 0.9725 -vn -0.2095 -0.2003 0.9571 -vn 0.0000 -0.4096 -0.9122 -vn -0.2096 -0.0031 -0.9778 -vn -0.2059 0.2095 0.9559 -vn -0.2129 -0.7285 -0.6511 -vn -0.2095 -0.4005 -0.8920 -vn -0.2177 0.8465 0.4858 -vn -0.2147 -0.9300 -0.2983 -vn -0.2159 0.9713 0.0997 -vn -0.2167 -0.9705 0.1058 -vn -0.2138 0.9283 -0.3042 -vn -0.2186 -0.8433 0.4910 -vn -0.2121 0.7245 -0.6559 -vn -0.2200 -0.5706 0.7912 -vn -0.2110 0.3949 -0.8941 -vn -0.2206 -0.1997 0.9547 -vn -0.2097 -0.0152 0.9776 -vn -0.2096 0.3837 0.8993 -vn -0.4208 -0.0141 0.9070 -vn -0.2203 0.2056 0.9535 -vn 0.0024 0.2114 0.9774 -vn -0.2193 0.5756 0.7878 -vn 0.0044 0.6031 0.7976 -vn 0.0178 -0.7444 -0.6675 -vn -0.2115 -0.4007 -0.8915 -vn 0.0076 0.8747 0.4845 -vn 0.0140 -0.9488 -0.3156 -vn 0.0117 0.9938 0.1106 -vn 0.0099 -0.9953 0.0960 -vn 0.0161 0.9524 -0.3045 -vn 0.0059 -0.8681 0.4964 -vn 0.0196 0.7403 -0.6720 -vn 0.0031 -0.5895 0.8078 -vn 0.0216 0.4034 -0.9148 -vn 0.0019 -0.2049 0.9788 -vn -0.2109 -0.0032 -0.9775 -vn 0.0220 -0.0030 -0.9998 -vn 0.1716 -0.9372 -0.3036 -vn 0.3411 -0.9358 0.0889 -vn 0.1674 -0.9798 0.1091 -vn 0.1736 -0.0031 -0.9848 -vn 0.3495 -0.3838 -0.8547 -vn 0.1736 -0.4034 -0.8984 -vn 0.1736 0.2078 0.9627 -vn 0.3578 0.5546 0.7512 -vn 0.1736 0.5814 0.7949 -vn 0.1736 0.3977 -0.9009 -vn 0.3495 0.6943 -0.6291 -vn 0.3495 0.3784 -0.8571 -vn 0.3494 -0.6983 -0.6247 -vn 0.1736 -0.7340 -0.6566 -vn 0.1736 -0.2017 0.9639 -vn 0.3524 -0.5485 0.7582 -vn 0.3495 -0.1919 0.9171 -vn 0.1762 0.9361 -0.3044 -vn 0.3791 0.9205 0.0943 -vn 0.3495 0.8931 -0.2834 -vn 0.3557 -0.8147 0.4579 -vn 0.1753 -0.8501 0.4966 -vn 0.1927 0.8533 0.4844 -vn 0.3494 -0.0030 -0.9370 -vn 0.3494 -0.8895 -0.2945 -vn 0.3494 0.1977 0.9159 -vn 0.1736 0.7298 -0.6613 -vn 0.1736 -0.5763 0.7986 -vn 0.0206 -0.4089 -0.9123 -vn -0.7392 -0.3941 0.5461 -vn -0.7392 -0.5822 0.3386 -vn -0.7392 0.5843 0.3349 -vn -0.7392 0.6700 0.0683 -vn -0.7392 -0.6696 0.0725 -vn -0.7392 -0.6412 -0.2061 -vn -0.7392 -0.0021 -0.6735 -vn -0.7392 -0.2759 -0.6144 -vn -0.7392 0.3976 0.5436 -vn -0.7392 0.1421 0.6583 -vn -0.7392 0.2720 -0.6161 -vn -0.7392 0.4991 -0.4522 -vn -0.7392 -0.5019 -0.4491 -vn -0.7392 -0.1379 0.6592 -vn -0.7392 0.6399 -0.2101 -vn -0.7392 -0.5020 -0.4491 -vn 0.3947 0.8051 0.4428 -vn 0.1916 0.9762 0.1014 -vn 0.0000 -0.4096 -0.9123 -vn 0.0000 0.2110 0.9775 -vn 0.0000 0.5903 0.8072 -vn 0.0000 0.8676 0.4973 -vn 0.0000 0.4039 -0.9148 -vn 0.0000 0.0156 -0.9999 -vn 0.0000 0.9461 0.3238 -vn -0.2096 0.7164 0.6655 -vn 0.0000 0.7326 0.6806 -vn 0.0000 0.9960 -0.0890 -vn -0.2096 0.9251 0.3166 -vn 0.0000 -0.9928 -0.1201 -vn -0.2096 -0.9345 0.2876 -vn -0.2097 -0.9707 -0.1174 -vn 0.0000 0.8737 -0.4864 -vn -0.2095 0.9739 -0.0870 -vn 0.0000 -0.7535 0.6575 -vn 0.0000 -0.9558 0.2942 -vn -0.0017 0.4125 -0.9109 -vn 0.0017 0.5994 -0.8004 -vn -0.0007 0.2227 -0.9749 -vn 0.1736 0.0055 -0.9848 -vn 0.3495 -0.3763 -0.8581 -vn 0.1736 -0.3955 -0.9019 -vn 0.1736 0.1994 0.9644 -vn 0.3495 0.5465 0.7611 -vn 0.1736 0.5744 0.7999 -vn 0.1736 0.4056 -0.8974 -vn 0.3495 0.6998 -0.6230 -vn 0.3495 0.3859 -0.8538 -vn 0.3494 -0.6928 -0.6308 -vn 0.1736 -0.7282 -0.6631 -vn 0.1736 -0.5833 0.7935 -vn 0.3495 -0.1999 0.9153 -vn 0.1736 -0.2101 0.9621 -vn 0.1713 0.9807 0.0944 -vn 0.3519 0.8909 -0.2873 -vn 0.1741 0.9366 -0.3040 -vn 0.1737 -0.9799 0.0984 -vn 0.3508 -0.8299 0.4338 -vn 0.1729 -0.8712 0.4595 -vn 0.3495 0.0052 -0.9369 -vn 0.3508 -0.8993 -0.2610 -vn 0.1729 -0.9449 -0.2781 -vn 0.3495 0.1897 0.9175 -vn 0.1736 0.7355 -0.6549 -vn 0.0000 -1.0000 0.0000 -vn -0.7392 0.6694 0.0741 -vn -0.7392 0.5814 0.3400 -vn 0.1726 0.8518 0.4946 -vn 0.3493 0.9304 0.1109 -vn 0.0000 -0.7394 -0.6733 -vn 0.0000 -0.4016 -0.9158 -vn 0.0046 -0.9503 -0.3114 -vn -0.7392 0.5030 -0.4479 -vn -0.7392 0.6417 -0.2045 -vn 0.0099 -0.9951 0.0989 -vn -0.0358 -0.9294 -0.3673 -vn 0.0103 -0.8912 -0.4535 -vn 0.2076 -0.8909 -0.4039 -vn -1.0000 0.0000 -0.0017 -vn 0.0008 1.0000 -0.0025 -vn 0.0000 1.0000 -0.0000 -vn 0.0009 1.0000 -0.0021 -vn -0.7553 -0.6554 0.0000 -vn 0.0659 -0.9968 0.0452 -vn 0.1776 0.0449 0.9831 -vn 0.0531 0.0228 0.9983 -vn 0.0955 -0.0741 0.9927 -vn 0.9374 0.3482 -0.0004 -vn 0.7174 0.6966 -0.0004 -vn 0.0384 0.9993 0.0003 -vn 0.0633 0.9979 0.0142 -vn 0.0629 0.9980 0.0067 -vn 0.0000 0.9928 0.1200 -vn 0.3503 0.9366 -0.0026 -vn -0.1718 -0.9792 -0.1083 -vn 0.0440 -0.9933 -0.1072 -vn 0.1867 -0.9824 0.0001 -vn -0.0025 -0.1721 0.9851 -vn -0.0912 -0.0814 0.9925 -vn 0.0084 -1.0000 0.0018 -vn 0.0012 -1.0000 0.0037 -vn -0.0014 -1.0000 0.0029 -vn 0.4277 0.8968 -0.1136 -vn 0.4529 0.8866 -0.0942 -vn 0.4213 0.8991 -0.1184 -vn 0.3675 0.9165 -0.1580 -vn -1.0000 -0.0024 0.0009 -vn -0.9996 0.0284 0.0001 -vn -1.0000 -0.0023 0.0002 -vn -0.0042 -0.4414 0.8973 -vn 0.9925 0.1219 -0.0004 -vn 0.0003 0.6839 0.7295 -vn 0.0068 0.8153 0.5790 -vn 0.0069 0.7735 0.6337 -vn 0.9995 0.0305 0.0113 -vn 0.9996 0.0271 0.0086 -vn 0.9990 0.0411 0.0199 -vn -0.0142 0.0000 -0.9999 -vn -0.7101 0.0000 -0.7041 -vn 0.0006 0.0000 1.0000 -vn 0.9906 0.0533 -0.1263 -vn 0.9989 0.0181 -0.0430 -vn 0.9831 0.0711 -0.1685 -vn -0.0032 1.0000 0.0043 -vn -0.0069 0.9999 0.0094 -vn -0.0116 0.9998 0.0158 -vn -0.7231 0.0000 0.6908 -vn 0.0239 -0.0000 0.9997 -vn 0.0661 0.2143 0.9745 -vn -0.0534 0.1607 0.9856 -vn -0.9599 0.2804 0.0041 -vn -0.9998 -0.0146 -0.0168 -vn -0.9997 0.0245 -0.0038 -vn -0.7314 0.6819 0.0000 -vn -0.5771 0.8166 0.0000 -vn -0.0183 0.9998 0.0000 -vn 0.0003 -1.0000 0.0018 -vn 0.0003 -1.0000 0.0006 -vn -0.9996 0.0287 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.2384 0.0306 0.9707 -vn -0.2313 0.0300 0.9724 -vn -0.2387 0.0306 0.9706 -vn 0.2266 -0.0648 -0.9718 -vn 0.2004 -0.2741 -0.9406 -vn 0.2011 -0.2741 -0.9404 -vn 0.2503 0.1475 -0.9569 -vn -0.1835 0.0237 -0.9827 -vn -0.1915 0.0242 -0.9812 -vn -0.1918 0.0243 -0.9811 -vn 0.1729 -0.0601 0.9831 -vn 0.1549 -0.2613 0.9527 -vn 0.1726 -0.0589 0.9832 -vn 0.2018 0.1448 0.9687 -vn 0.0045 1.0000 -0.0000 -vn 0.0045 1.0000 -0.0002 -vn 0.0045 1.0000 -0.0003 -vn 0.0108 0.0000 0.9999 -vn 0.0065 -0.0126 0.9999 -vn -0.9996 0.0285 0.0001 -vn -0.4359 -0.8229 0.3645 -vn 0.0325 -0.9234 0.3824 -vn 0.0399 -0.9200 0.3899 -vn -0.7635 -0.5353 0.3612 -vn -0.3965 -0.8590 0.3238 -vn -0.9254 -0.0534 0.3752 -vn -0.9451 -0.1017 0.3106 -vn 0.4373 -0.8385 0.3251 -vn 0.1343 -0.2902 0.9475 -vn 0.5361 0.7520 0.3836 -vn 0.7139 0.5668 0.4112 -vn 0.7002 0.6004 0.3864 -vn -0.4116 -0.8400 -0.3535 -vn -0.5225 -0.7240 -0.4504 -vn -0.2528 -0.8446 -0.4720 -vn 0.4994 -0.4904 -0.7143 -vn 0.9430 0.2636 -0.2033 -vn -0.0042 -0.2396 0.9709 -vn -0.3146 -0.4857 0.8155 -vn 0.0219 -0.6490 0.7604 -vn -0.0301 0.8417 0.5391 -vn -0.2331 0.6632 0.7112 -vn 0.0822 0.6602 0.7465 -vn -0.3612 -0.0631 0.9303 -vn -0.2906 -0.7067 0.6451 -vn -0.0489 -0.8137 0.5792 -vn -0.1255 0.2504 0.9600 -vn -0.1193 0.0081 0.9928 -vn -0.4287 -0.8962 -0.1143 -vn -0.2241 -0.9587 -0.1749 -vn 0.1755 0.8627 -0.4743 -vn -0.7058 -0.0757 0.7043 -vn -0.2321 0.9724 0.0227 -vn -0.4616 0.3815 0.8009 -vn -0.4902 0.6268 0.6057 -vn -0.6356 0.2916 0.7148 -vn -0.2598 0.8413 0.4741 -vn -0.8034 0.1248 0.5823 -vn -0.7855 -0.2778 0.5530 -vn -0.0542 -0.0196 0.9983 -vn 0.0720 0.0719 0.9948 -vn -0.0369 0.0262 0.9990 -vn 0.1678 -0.9856 -0.0186 -vn 0.8140 -0.5718 0.1023 -vn 0.8331 -0.5485 0.0710 -vn 0.6914 -0.6742 0.2596 -vn 0.9087 -0.4054 -0.0992 -vn 0.8478 0.5249 0.0756 -vn 0.3531 -0.4900 -0.7970 -vn 0.3697 -0.4757 -0.7982 -vn 0.4955 -0.3528 -0.7937 -vn -0.5023 0.1993 -0.8414 -vn -0.5138 -0.4461 -0.7328 -vn -0.6358 -0.7667 0.0886 -vn -0.6701 -0.7415 0.0340 -vn -0.7347 -0.6726 -0.0879 -vn -0.3438 0.9364 0.0707 -vn -0.5326 -0.4023 0.7446 -vn -0.9117 0.1141 -0.3947 -vn -0.8213 0.3707 -0.4336 -vn -0.8926 -0.1116 -0.4368 -vn -0.5920 0.6842 -0.4260 -vn -0.5148 0.7326 -0.4453 -vn -0.2182 0.8601 -0.4612 -vn -0.7638 -0.4827 -0.4286 -vn -0.6967 -0.6018 -0.3904 -vn 0.0595 0.1546 -0.9862 -vn 0.1609 0.1800 -0.9704 -vn 0.2004 0.0457 -0.9787 -vn -0.8701 -0.2910 -0.3978 -vn -0.2039 0.0768 -0.9760 -vn -0.0891 0.0800 -0.9928 -vn -0.1501 -0.0923 -0.9843 -vn -0.1297 0.1691 -0.9770 -vn -0.0197 0.1957 -0.9805 -vn 0.1188 0.1321 -0.9841 -vn -0.1343 -0.5742 0.8076 -vn 0.2696 0.8275 -0.4924 -vn 0.5330 0.7025 -0.4715 -vn 0.0008 0.8705 -0.4923 -vn 0.8537 0.3268 -0.4055 -vn 0.6052 0.6839 -0.4074 -vn 0.8329 0.3924 -0.3904 -vn 0.2965 0.1166 -0.9479 -vn 0.2685 -0.0337 -0.9627 -vn 0.0060 -0.9304 -0.3664 -vn 0.0008 -0.8965 -0.4430 -vn 0.3376 -0.8562 -0.3910 -vn 0.0151 0.9170 -0.3986 -vn 0.8943 -0.1135 -0.4328 -vn 0.9324 0.0743 -0.3536 -vn 0.9035 -0.2441 -0.3524 -vn 0.3259 -0.8766 -0.3539 -vn 0.6499 -0.6564 -0.3830 -vn -0.8512 0.5246 -0.0178 -vn -0.8580 0.5136 -0.0065 -vn -0.9108 0.3996 0.1034 -vn 0.7555 -0.4131 -0.5086 -vn 0.2509 0.8853 -0.3916 -vn 0.6199 -0.2088 0.7564 -vn 0.4091 -0.4557 0.7906 -vn 0.5951 -0.5372 0.5978 -vn 0.2713 0.8051 0.5275 -vn 0.4716 0.5935 0.6522 -vn 0.6095 0.0346 0.7920 -vn 0.3896 -0.1437 0.9097 -vn 0.1960 0.3531 0.9148 -vn 0.4949 0.1887 0.8482 -vn 0.1604 0.0939 0.9826 -vn 0.2555 -0.6460 0.7193 -vn -0.2906 0.8642 -0.4108 -vn -0.0668 -0.2010 -0.9773 -vn -0.1555 0.1178 -0.9808 -vn 0.1484 -0.0910 -0.9847 -vn -0.9882 0.1523 0.0175 -vn -0.9888 0.1480 0.0189 -vn -0.9874 0.1576 0.0158 -vn -0.1981 0.9722 0.1247 -vn -0.4698 0.8810 -0.0566 -vn -0.2475 0.9636 -0.1013 -vn -0.6335 0.7564 0.1630 -vn -0.8243 -0.4961 -0.2727 -vn -0.8333 -0.4608 -0.3054 -vn -0.8333 -0.4610 -0.3051 -vn 0.6348 -0.7714 0.0442 -vn 0.6364 -0.7448 0.2009 -vn 0.6071 -0.7946 0.0073 -vn 0.7036 -0.5555 0.4431 -vn 0.5058 -0.7605 0.4072 -vn 0.8366 0.3517 0.4200 -vn 0.0777 -0.9955 -0.0539 -vn 0.9997 -0.0231 -0.0049 -vn 0.9961 -0.0778 -0.0411 -vn 0.9999 -0.0116 -0.0039 -vn -0.1322 0.2647 0.9552 -vn -0.1735 0.0741 0.9820 -vn -0.1596 -0.3820 0.9103 -vn 0.0562 -0.1279 -0.9902 -vn -0.0954 -0.1999 -0.9752 -vn -0.7969 0.4477 0.4056 -vn -0.7030 0.6106 0.3645 -vn -0.8950 0.2792 0.3479 -vn -0.9274 -0.0480 0.3710 -vn -0.9332 -0.1276 0.3360 -vn 0.1627 -0.1862 -0.9689 -vn -0.2199 -0.4771 -0.8509 -vn -0.4155 -0.3515 -0.8390 -vn 0.0220 -0.6074 -0.7941 -vn 0.0284 -0.6814 -0.7314 -vn -0.9782 0.1265 0.1650 -vn 0.9747 -0.1259 -0.1847 -vn -0.9643 0.1254 -0.2334 -vn 0.9644 -0.1253 0.2329 -vn 0.0000 0.0000 -1.0000 -vn -0.9294 0.0072 -0.3691 -vn -0.9135 -0.1730 -0.3681 -vn -0.9244 0.0112 -0.3813 -vn 0.9126 0.4087 0.0081 -vn 0.9938 0.1110 -0.0087 -vn 0.9694 0.2353 -0.0703 -vn 0.7576 -0.6420 -0.1176 -vn 0.6797 -0.6967 -0.2294 -vn 0.9503 -0.3024 -0.0742 -vn 0.4107 -0.1377 -0.9013 -vn 0.2619 0.1185 -0.9578 -vn -0.0135 -0.0943 -0.9954 -vn 0.0078 0.0875 -0.9961 -vn 0.0688 0.0018 -0.9976 -vn -0.1771 0.8526 0.4916 -vn -0.3418 0.5524 0.7603 -vn -0.3418 0.8139 0.4699 -vn 0.0685 -0.3189 -0.9453 -vn -0.0143 -0.2596 -0.9656 -vn 0.0729 -0.1716 -0.9825 -vn 0.0651 0.1273 -0.9897 -vn -0.0706 0.1182 -0.9905 -vn 1.0000 0.0023 -0.0008 -vn 1.0000 -0.0002 0.0030 -vn 1.0000 0.0015 -0.0004 -vn -0.0001 -0.0340 0.9994 -vn -0.0498 -0.0490 0.9976 -vn 0.0678 -0.0090 0.9977 -vn -0.5504 -0.3981 0.7339 -vn -0.5427 -0.3508 0.7631 -vn -0.5416 -0.3449 0.7666 -vn -0.5311 -0.2921 0.7953 -vn -0.0709 -0.0616 0.9956 -vn -0.0838 -0.0619 0.9946 -vn -0.0013 -0.3706 -0.9288 -vn -0.9183 0.1838 -0.3508 -vn -0.5575 -0.6747 -0.4838 -vn -0.7209 -0.6421 -0.2608 -vn -0.4818 -0.7244 -0.4930 -vn -0.9283 0.1682 -0.3317 -vn -0.4818 -0.7079 -0.5165 -vn -0.3657 -0.8152 -0.4492 -vn -0.3512 -0.0121 -0.9362 -vn -0.2191 -0.1148 -0.9689 -vn -0.3686 -0.1016 -0.9240 -vn -0.4419 -0.6564 -0.6115 -vn -0.2733 0.0292 -0.9615 -vn -0.4017 0.1065 -0.9096 -vn -0.1085 -0.0119 -0.9940 -vn -0.0921 -0.2834 -0.9546 -vn -0.0075 0.9510 -0.3090 -vn -0.0149 0.9967 -0.0798 -vn -0.1452 0.9878 -0.0562 -vn -0.1765 0.5785 0.7964 -vn -0.0009 0.8608 0.5090 -vn 0.0003 0.5786 0.8156 -vn -0.0038 0.9938 0.1107 -vn -0.0063 0.9952 -0.0973 -vn 0.0131 0.9999 -0.0089 -vn 0.0194 0.9998 -0.0061 -vn 0.0112 0.9999 -0.0082 -vn 0.0078 -1.0000 -0.0015 -vn 0.2303 -0.0298 0.9727 -vn 0.0014 0.4047 0.9144 -vn 0.0644 0.2818 0.9573 -vn 1.0000 0.0003 0.0000 -vn 1.0000 -0.0004 0.0017 -vn 0.0019 -0.9264 0.3765 -vn 0.0019 -0.9264 0.3764 -vn 0.0004 -0.9279 0.3729 -vn -0.0009 0.9674 -0.2532 -vn -0.0027 0.9679 -0.2513 -vn 0.0000 -0.0078 1.0000 -vn 0.2971 -0.9544 -0.0289 -vn -0.2830 -0.0498 0.9578 -vn -0.1962 -0.1065 0.9748 -vn -0.1386 -0.1467 0.9794 -vn 0.0449 -0.9983 0.0366 -vn -0.1537 -0.7386 0.6564 -vn -0.1742 -0.7514 0.6364 -vn -0.0938 -0.7055 0.7025 -vn 0.1677 -0.9812 0.0954 -vn 0.0000 0.0003 1.0000 -vn 0.0007 0.0274 0.9996 -vn -0.2308 0.5325 -0.8144 -vn 0.0023 0.5871 -0.8095 -vn -0.2591 0.7650 -0.5896 -vn 0.0192 -0.9998 0.0018 -vn 0.0019 -0.9998 -0.0209 -vn 0.0194 0.9125 -0.4087 -vn 0.0124 0.8572 -0.5149 -vn 0.0037 0.9606 -0.2777 -vn -1.0000 0.0009 -0.0033 -vn -1.0000 0.0019 0.0002 -vn -1.0000 -0.0006 0.0023 -vn 0.0129 0.8474 -0.5307 -vn 0.0176 0.7110 -0.7030 -vn -0.0006 0.0000 -1.0000 -vn 0.0009 -0.7821 -0.6231 -vn -0.0038 -0.8297 -0.5582 -vn -0.0022 -0.7870 -0.6170 -vn 0.0012 -0.7370 -0.6759 -vn 0.9996 0.0087 -0.0275 -vn 0.9994 0.0198 -0.0296 -vn 0.9988 -0.0011 -0.0484 -vn -0.0118 0.9250 -0.3797 -vn -0.0118 0.9251 -0.3797 -vn 0.0305 0.1910 0.9811 -vn 0.3359 -0.9299 -0.1496 -vn 0.0008 -0.0000 1.0000 -vn 0.0012 0.0000 1.0000 -vn -0.2096 -0.8391 -0.5021 -vn 0.0000 -0.4209 0.9071 -vn -0.2095 -0.7367 0.6429 -vn 0.0000 0.2231 -0.9748 -vn -0.2095 0.5870 -0.7820 -vn 0.0000 0.6003 -0.7998 -vn -0.2096 0.8543 -0.4756 -vn -0.2096 -0.4116 0.8869 -vn 0.0000 -0.5751 -0.8181 -vn -0.2096 -0.1883 -0.9595 -vn 0.0000 -0.1926 -0.9813 -vn 0.0000 0.3925 0.9198 -vn 0.0000 -0.0156 0.9999 -vn -0.2095 0.2182 -0.9532 -vn -0.4206 -0.5218 -0.7422 -vn -0.4205 -0.7786 -0.4658 -vn -0.4205 0.8584 0.2938 -vn -0.4207 -0.9006 -0.1090 -vn -0.4205 -0.6836 0.5965 -vn -0.4207 -0.8671 0.2668 -vn -0.4205 0.9037 -0.0808 -vn -0.4205 0.5447 -0.7256 -vn -0.4206 0.7927 -0.4413 -vn -0.4129 -0.5468 0.7284 -vn -0.4205 0.2025 -0.8844 -vn -0.4205 -0.1748 -0.8903 -vn 0.0226 0.5822 0.8127 -vn 0.0260 0.3930 0.9192 -vn 0.0226 0.7334 0.6795 -vn -0.0002 -0.4032 -0.9151 -vn 0.0017 -0.8573 -0.5148 -vn 0.0047 -0.7403 -0.6723 -vn -0.2096 -0.5623 -0.7999 -vn 0.0000 -0.8581 -0.5135 -vn 0.0095 -0.9608 -0.2772 -vn 0.0124 -0.9561 0.2928 -vn 0.0147 -0.9947 0.1018 -vn 0.0183 0.8623 0.5061 -vn 0.0176 0.9465 0.3221 -vn 0.0072 -0.9925 -0.1219 -vn 0.0069 0.9533 -0.3020 -vn 0.0117 0.9958 -0.0908 -vn 0.0061 0.8729 -0.4878 -vn 0.0127 0.9936 0.1119 -vn 0.0018 0.7478 -0.6639 -vn 0.0175 -0.7546 0.6560 -vn 0.0210 -0.8852 0.4648 -vn -0.4131 0.5238 0.7450 -vn -0.4205 0.6647 0.6175 -vn 0.0238 -0.4227 0.9060 -vn 0.0240 -0.5920 0.8056 -vn 0.0249 0.2020 0.9791 -vn 0.0271 -0.0156 0.9995 -vn 0.0249 -0.2129 0.9768 -vn -0.0030 0.0056 -1.0000 -vn -0.0008 -0.1923 -0.9813 -vn -0.0005 -0.5753 -0.8180 -vn 0.3495 -0.5549 0.7549 -vn -0.7392 -0.5851 0.3335 -vn -0.7392 -0.6702 0.0667 -vn -0.7392 0.2774 -0.6138 -vn -0.7392 -0.4980 -0.4535 -vn -0.7392 -0.6394 -0.2117 -vn -0.7392 0.0038 -0.6735 -vn -0.7392 -0.1437 0.6580 -vn -0.7392 -0.3989 0.5426 -vn -0.7392 -0.2705 -0.6168 -vn -0.7392 -0.6393 -0.2117 -vn -0.7392 0.1364 0.6595 -vn -0.7392 0.3928 0.5471 -vn -0.7392 0.1363 0.6595 -vn -0.7392 0.0037 -0.6735 -vn 0.0044 -0.8703 0.4925 -vn 0.0000 -0.5923 0.8057 -vn 0.0000 -0.2134 0.9770 -vn 0.0000 0.5833 0.8123 -vn 0.0000 0.2025 0.9793 -vn 0.0000 0.8632 0.5048 -vn -0.0008 0.9939 0.1106 -vn -0.0008 0.9526 -0.3042 -vn 0.0000 0.7469 -0.6650 -vn 0.0000 0.4118 -0.9113 -vn 0.0000 0.0056 -1.0000 -vn -0.0011 -0.0100 -0.9999 -vn 0.1916 -0.3347 -0.9226 -vn -0.0141 0.1762 -0.9843 -vn 0.9299 -0.3646 0.0492 -vn -0.8437 -0.4007 -0.3572 -vn -0.1981 0.2753 -0.9407 -vn 0.1122 0.1650 0.9799 -vn 0.4661 0.7908 -0.3968 -vn 0.2657 0.3724 -0.8892 -vn 0.1816 -0.6180 -0.7649 -vn -0.5651 -0.8034 0.1875 -vn -0.2532 -0.1015 0.9621 -vn 0.6427 0.3512 0.6808 -vn 0.5898 0.6956 0.4103 -vn 0.6071 -0.6284 -0.4863 -vn 0.0024 -0.2230 -0.9748 -vn 0.1520 -0.3885 -0.9088 -vn -0.2547 -0.0055 -0.9670 -vn -0.2450 -0.1390 -0.9595 -vn -0.7987 0.4417 -0.4087 -vn 0.1835 -0.6337 -0.7515 -vn 0.2058 -0.6052 -0.7690 -vn 0.8328 0.2949 0.4686 -vn -0.1746 0.0412 0.9838 -vn -0.6157 0.6927 0.3757 -vn -0.5552 0.7720 0.3094 -vn -0.4799 -0.3446 -0.8068 -vn -0.5692 -0.2399 -0.7864 -vn -0.1767 0.4004 0.8992 -vn 0.0020 0.4067 0.9136 -vn -0.4320 0.8997 0.0621 -vn -0.3401 0.9404 0.0030 -vn -0.3412 0.9267 0.1573 -vn -0.3351 0.3833 0.8607 -vn 0.0147 -0.8943 -0.4473 -vn 0.3159 -0.8212 -0.4752 -vn -0.6093 0.1059 0.7858 -vn -0.5712 0.1543 0.8061 -vn -0.4521 0.2860 0.8449 -vn -1.0000 -0.0020 0.0037 -vn -1.0000 -0.0014 0.0015 -vn -1.0000 0.0035 0.0012 -vn 0.0023 -1.0000 -0.0046 -vn 0.0000 0.8616 0.5077 -vn 0.0000 0.9368 0.3499 -vn 0.0005 -0.0000 1.0000 -vn -1.0000 0.0000 0.0001 -vn -1.0000 -0.0001 0.0000 -vn -0.9936 -0.0776 0.0827 -vn -0.9988 -0.0409 0.0277 -vn -0.9989 -0.0116 0.0457 -vn 0.1130 -0.9899 0.0855 -vn 0.0001 -0.0016 -1.0000 -vn 0.0001 -0.0018 -1.0000 -vn -0.0001 0.0043 -1.0000 -vn -0.2481 0.9631 0.1047 -vn -0.0225 0.9869 0.1599 -vn 0.3166 -0.3672 -0.8746 -vn 0.0821 0.2134 -0.9735 -vn 0.2062 -0.1246 -0.9706 -vn 0.0158 -0.9998 0.0144 -vn 0.0158 -0.9999 -0.0010 -vn -0.0101 -0.9999 0.0077 -vn -0.0041 -1.0000 -0.0034 -vn -0.2085 -0.9777 0.0251 -vn -0.0025 -0.0667 0.9978 -vn -0.0367 -0.0249 0.9990 -vn -0.0092 0.0030 1.0000 -vn -0.0035 -0.0072 -1.0000 -vn 0.0013 -0.0151 -0.9999 -vn -0.0025 0.0309 -0.9995 -vn -0.0645 -0.8468 0.5280 -vn -0.1878 -0.7359 0.6505 -vn -0.1741 -0.7513 0.6366 -vn 0.0036 0.9566 0.2913 -vn -0.0077 0.9527 0.3038 -vn -0.0424 0.9387 0.3420 -vn 0.0143 0.9999 0.0000 -vn 0.0384 0.9993 0.0000 -vn 1.0000 -0.0029 -0.0006 -vn 1.0000 -0.0004 -0.0001 -vn 0.9988 0.0351 -0.0333 -vn -0.2089 -0.7142 0.6681 -vn -0.0331 0.0120 -0.9994 -vn -0.0837 0.0214 -0.9963 -vn -0.0089 -0.0029 -1.0000 -vn -1.0000 -0.0013 0.0003 -vn -1.0000 -0.0014 -0.0002 -vn -1.0000 -0.0002 0.0001 -vn 0.0000 0.0100 1.0000 -vn 0.0000 0.0100 0.9999 -vn 0.0000 0.4096 0.9123 -vn 0.0000 0.0031 1.0000 -vn 0.0000 0.7452 0.6668 -vn 0.0000 -0.4038 0.9148 -vn 0.0000 -0.7410 0.6715 -vn 0.0000 -0.9501 0.3120 -vn 0.0000 -0.9948 -0.1014 -vn 0.0000 -0.2110 -0.9775 -vn 0.0000 0.2048 -0.9788 -vn 0.0000 0.5852 -0.8109 -vn 0.0000 0.9520 0.3060 -vn 0.0000 0.9942 -0.1077 -vn 0.0000 -0.8676 -0.4972 -vn 0.0000 -0.5903 -0.8072 -vn 0.0000 0.8644 -0.5027 -vn 0.0105 -0.0033 -0.9999 -vn 0.0049 -0.0071 -1.0000 -vn 0.0167 -0.0144 -0.9998 -vn 0.0140 0.0134 -0.9998 -vn 0.0191 -0.0234 -0.9995 -vn 0.0126 -0.0195 -0.9997 -vn 0.0214 -0.7262 0.6871 -vn 0.0890 0.1539 0.9841 -vn 0.0981 0.9952 -0.0016 -vn 0.0082 -0.0063 -0.9999 -vn 0.0002 -0.0298 -0.9996 -vn 0.6898 -0.7183 -0.0912 -vn -0.9996 -0.0027 0.0294 -vn -0.9996 -0.0028 0.0264 -vn -1.0000 -0.0011 0.0065 -vn -0.9998 0.0173 -0.0094 -vn -0.9998 0.0192 -0.0091 -vn -0.9998 0.0185 -0.0083 -vn 0.1022 -0.9909 -0.0872 -vn 0.9999 0.0158 -0.0034 -vn 0.9999 0.0162 0.0058 -vn -0.4131 0.1754 0.8936 -vn -0.4130 -0.2032 0.8878 -vn 0.3495 -0.9323 0.0937 -vn 0.3494 0.8088 0.4730 -vn 0.0003 1.0000 -0.0033 -vn -0.0000 1.0000 -0.0034 -vn 0.1407 0.0990 0.9851 -vn 0.7178 0.6962 -0.0002 -vn 0.0625 0.9980 0.0000 -vn 0.0019 -1.0000 0.0048 -vn 0.0011 -1.0000 0.0040 -vn 0.0032 0.8490 0.5284 -vn 0.0000 0.6037 0.7972 -vn 0.9999 0.0164 0.0000 -vn -0.9995 0.0328 -0.0000 -vn -0.9585 0.2852 0.0000 -vn -0.9992 0.0328 0.0224 -vn 0.0000 -1.0000 -0.0032 -vn -0.2310 0.0300 0.9725 -vn 0.2263 -0.0648 -0.9719 -vn -0.1831 0.0237 -0.9828 -vn 0.1562 -0.2613 0.9525 -vn 0.2022 0.1448 0.9686 -vn 0.0002 -0.0310 0.9995 -vn 0.0086 -0.0065 0.9999 -vn -0.7729 -0.4929 0.3996 -vn 0.5373 0.7515 0.3828 -vn -0.7962 0.5972 -0.0973 -vn -0.9898 0.1409 0.0212 -vn 0.9998 -0.0203 0.0082 -vn 0.9995 -0.0303 0.0110 -vn 0.9995 -0.0264 0.0165 -vn 1.0000 0.0052 -0.0082 -vn 0.9998 0.0031 -0.0188 -vn 1.0000 0.0052 -0.0053 -vn 0.9998 -0.0203 0.0083 -vn -0.9169 -0.1676 -0.3623 -vn 0.9998 -0.0057 0.0201 -vn 1.0000 -0.0023 0.0081 -vn 1.0000 0.0033 0.0006 -vn 1.0000 0.0030 -0.0003 -vn 0.0103 0.9999 0.0015 -vn 0.0016 1.0000 -0.0032 -vn 0.0016 -1.0000 -0.0030 -vn 0.0016 0.4056 0.9140 -vn 0.2676 -0.1365 0.9538 -vn 0.2993 -0.0289 0.9537 -vn 0.3113 0.0000 0.9503 -vn 0.9999 0.0012 0.0142 -vn 0.9999 -0.0069 0.0115 -vn 0.9998 -0.0074 0.0176 -vn 0.9998 0.0055 0.0191 -vn 0.9999 -0.0062 -0.0113 -vn 0.9998 -0.0102 0.0180 -vn 1.0000 0.0012 0.0063 -vn 0.9990 -0.0230 0.0379 -vn 0.9988 -0.0342 0.0357 -vn -0.0038 0.9279 -0.3729 -vn -0.0019 0.9272 -0.3747 -vn -0.4116 -0.0505 0.9100 -vn -0.4004 -0.0470 0.9152 -vn -0.0165 0.1342 0.9908 -vn 0.0006 0.1740 0.9847 -vn -0.1136 -0.1094 0.9875 -vn -0.2458 -0.7423 0.6233 -vn 0.0158 -0.9997 -0.0163 -vn 0.0011 0.0175 0.9998 -vn 0.0011 0.0178 0.9998 -vn -0.3352 0.8960 -0.2911 -vn -0.3418 0.8139 -0.4699 -vn -0.5161 0.5137 -0.6854 -vn -0.3352 0.3832 -0.8607 -vn -0.0003 0.4067 -0.9136 -vn -0.0032 0.7432 -0.6691 -vn -1.0000 -0.0017 -0.0014 -vn -0.9997 0.0242 -0.0079 -vn -0.9999 -0.0005 0.0113 -vn -1.0000 -0.0017 0.0052 -vn -1.0000 0.0008 0.0100 -vn -0.9997 0.0098 0.0219 -vn -1.0000 -0.0002 -0.0028 -vn -1.0000 -0.0004 -0.0030 -vn -0.9997 0.0217 -0.0126 -vn -0.9999 0.0066 -0.0078 -vn -1.0000 0.0017 -0.0053 -vn -1.0000 -0.0010 -0.0021 -vn 0.0036 0.7800 -0.6258 -vn -0.0038 -0.8296 -0.5583 -vn 0.0075 -0.7262 -0.6874 -vn 0.9974 -0.0027 -0.0714 -vn 0.9977 -0.0028 -0.0683 -vn 0.9994 0.0156 -0.0323 -vn 0.9992 0.0174 -0.0347 -vn 0.9998 0.0055 -0.0184 -vn 0.0000 0.4209 -0.9071 -vn -0.7068 -0.0395 0.7063 -vn -1.0000 0.0003 0.0006 -vn -1.0000 0.0048 -0.0023 -vn -0.9999 0.0039 -0.0102 -vn -1.0000 0.0053 -0.0031 -vn -1.0000 0.0043 0.0067 -vn -1.0000 -0.0029 0.0064 -vn -1.0000 0.0001 0.0000 -vn -1.0000 0.0000 -0.0001 -vn -1.0000 -0.0001 -0.0002 -vn -1.0000 -0.0004 -0.0003 -vn -1.0000 -0.0004 0.0003 -vn -1.0000 -0.0001 0.0002 -vn -0.9987 0.0051 0.0502 -vn -0.9982 0.0030 0.0605 -vn -0.9989 0.0051 0.0473 -vn -0.9993 -0.0329 0.0162 -vn -0.9986 -0.0229 0.0467 -vn 0.0002 0.0167 -0.9999 -vn 0.0002 0.0166 -0.9999 -vn 0.0000 0.3557 -0.9346 -vn 0.0002 0.3568 -0.9342 -vn 0.2980 -0.0094 -0.9545 -vn 0.2802 -0.0547 -0.9584 -vn -0.0809 -0.9967 0.0014 -vn -0.0094 -0.9999 -0.0131 -vn 0.0425 -0.9980 -0.0467 -vn 0.2554 -0.9667 -0.0167 -vn -0.1676 -0.9859 0.0010 -vn 0.0085 -0.9994 -0.0332 -vn 0.0001 -0.9982 0.0598 -vn -0.0770 -0.1342 0.9880 -vn -0.0276 -0.0247 0.9993 -vn -0.0573 -0.2038 0.9773 -vn -0.0865 -0.2315 0.9690 -vn -0.0642 -0.2239 0.9725 -vn -0.0213 0.1330 -0.9909 -vn -0.0229 0.1103 -0.9936 -vn 0.0029 0.0742 -0.9972 -vn -0.0149 0.0524 -0.9985 -vn -0.0037 -0.0049 -1.0000 -vn 0.0006 -0.0116 -0.9999 -vn -0.0015 -0.0051 -1.0000 -vn 0.0005 0.0016 -1.0000 -vn 0.0304 0.9648 0.2611 -vn 0.9977 -0.0671 0.0092 -vn 1.0000 0.0008 -0.0097 -vn 0.9984 -0.0563 0.0014 -vn 1.0000 0.0063 -0.0066 -vn 0.9998 0.0132 -0.0167 -vn 0.9981 -0.0579 0.0191 -vn 0.9995 -0.0183 -0.0261 -vn 0.9988 0.0158 -0.0460 -vn 0.9753 0.0548 -0.2141 -vn 0.9779 0.0399 -0.2055 -vn 0.9964 0.0220 -0.0823 -vn 0.9983 -0.0022 -0.0581 -vn 0.9923 0.1220 -0.0202 -vn 1.0000 -0.0015 -0.0008 -vn 0.9780 0.2080 0.0165 -vn 0.9807 0.1942 0.0201 -vn 0.9647 0.2633 -0.0022 -vn -0.0195 0.1712 -0.9850 -vn -0.0217 0.2095 -0.9776 -vn -0.3452 -0.0362 -0.9378 -vn -0.3792 -0.0466 -0.9241 -vn -1.0000 -0.0007 0.0002 -vn -1.0000 -0.0026 0.0024 -vn -1.0000 0.0000 -0.0002 -vn -1.0000 -0.0009 -0.0003 -vn -1.0000 -0.0037 -0.0008 -s off -f 1623/2564/1875 1625/2565/1875 1626/2566/1875 -f 1634/2567/1876 1635/2568/1876 1631/2569/1876 -f 1630/2570/1877 1622/2571/1877 1626/2566/1877 -f 1622/2571/1878 1623/2564/1878 1626/2566/1878 -f 1623/2564/1879 1624/2572/1879 1625/2565/1879 -f 1626/2566/1880 1627/2573/1880 1628/2574/1880 -f 1628/2574/1881 1629/2575/1881 1626/2566/1881 -f 1629/2575/1882 1630/2570/1882 1626/2566/1882 -f 1636/2576/1883 1631/2569/1883 1635/2568/1883 -f 1631/2569/1884 1632/2577/1884 1633/2578/1884 -f 1634/2567/1885 1631/2569/1885 1633/2578/1885 -s 1 -f 1637/2579/1886 1638/2580/1887 1639/2581/1888 -f 1640/2582/1889 1641/2583/1890 1639/2584/1891 -f 1643/2585/1892 1645/2586/1893 1642/2587/1893 -f 1642/2587/1893 1650/2588/1894 1649/2589/1894 -f 1649/2589/1894 1653/2590/1895 1652/2591/1895 -f 1658/2592/1896 1660/2593/1897 1657/2594/1897 -f 1662/2595/1898 1664/2596/1899 1661/2597/1898 -f 1666/2598/1900 1668/2599/1901 1665/2600/1901 -f 1670/2601/1902 1658/2592/1896 1669/2602/1902 -f 1664/2596/1899 1672/2603/1903 1671/2604/1903 -f 1661/2597/1898 1673/2605/1904 1662/2595/1898 -f 1682/2606/1905 1684/2607/1905 1685/2608/1905 -f 1685/2608/1906 1686/2609/1906 1687/2610/1906 -f 1696/2611/1907 1697/2612/1908 1690/2613/1909 -f 1698/2614/1910 1700/2615/1911 1701/2616/1912 -f 1702/2617/1913 1704/2618/1914 1705/2619/1915 -f 1705/2619/1916 1625/2620/1917 1624/2621/1918 -f 1708/2622/1919 1709/2623/1920 1710/2624/1921 -f 1713/2625/1922 1714/2626/1923 1715/2627/1923 -f 1692/2628/1924 1703/2629/1925 1702/2617/1913 -f 1716/2630/1926 1692/2628/1924 1702/2617/1913 -f 1716/2630/1926 1705/2619/1915 1624/2621/1927 -f 1717/2631/1928 1624/2621/1927 1623/2632/1929 -f 1720/2633/1930 1696/2634/1931 1695/2635/1932 -f 1683/2636/1933 1725/2637/1934 1726/2638/1935 -f 1729/2639/1936 1630/2640/1937 1629/2641/1938 -f 1720/2633/1930 1719/2642/1939 1728/2643/1940 -f 1729/2639/1936 1719/2642/1939 1718/2644/1941 -f 1689/2645/1942 1730/2646/1943 1627/2647/1944 -f 1734/2648/1945 1747/2649/1946 1746/2650/1947 -f 1743/2651/1948 1744/2652/1948 1755/2653/1948 -f 1746/2650/1949 1761/2654/1950 1762/2655/1951 -f 1756/2656/1952 1764/2657/1953 1763/2658/1954 -f 1749/2659/1955 1761/2654/1950 1747/2649/1956 -f 1755/2653/1957 1766/2660/1958 1764/2657/1953 -f 1748/2661/1959 1765/2662/1960 1749/2659/1955 -f 1754/2663/1961 1768/2664/1962 1766/2660/1958 -f 1760/2665/1963 1767/2666/1964 1748/2661/1959 -f 1753/2667/1965 1770/2668/1966 1768/2664/1962 -f 1759/2669/1967 1769/2670/1968 1760/2665/1963 -f 1751/2671/1969 1770/2668/1966 1752/2672/1970 -f 1758/2673/1971 1771/2674/1972 1759/2669/1967 -f 1750/2675/1973 1772/2676/1974 1751/2671/1969 -f 1757/2677/1975 1773/2678/1976 1758/2673/1971 -f 1746/2650/1949 1774/2679/1977 1750/2675/1973 -f 1776/2680/1978 1775/2681/1979 1763/2658/1954 -f 1778/2682/1980 1762/2655/1951 1761/2654/1950 -f 1780/2683/1981 1763/2658/1954 1764/2657/1953 -f 1781/2684/1982 1761/2654/1950 1765/2662/1960 -f 1780/2683/1981 1766/2660/1958 1782/2685/1983 -f 1765/2662/1960 1783/2686/1984 1781/2684/1982 -f 1782/2685/1983 1768/2664/1962 1784/2687/1985 -f 1767/2666/1964 1785/2688/1986 1783/2686/1984 -f 1768/2664/1962 1786/2689/1987 1784/2687/1985 -f 1769/2670/1968 1787/2690/1988 1785/2688/1986 -f 1770/2668/1966 1788/2691/1989 1786/2689/1987 -f 1793/2692/1990 1794/2693/1991 1790/2694/1992 -f 1788/2691/1989 1774/2679/1977 1795/2695/1993 -f 1775/2681/1979 1756/2656/1952 1763/2658/1954 -f 1796/2696/1994 1779/2697/1995 1797/2698/1996 -f 1798/2699/1997 1777/2700/1998 1776/2701/1978 -f 1797/2702/1996 1778/2703/1980 1800/2704/1999 -f 1801/2705/2000 1776/2701/1978 1780/2706/1981 -f 1800/2704/1999 1781/2707/1982 1802/2708/2001 -f 1803/2709/2002 1780/2706/1981 1782/2710/1983 -f 1802/2708/2001 1783/2711/1984 1804/2712/2003 -f 1805/2713/2004 1782/2710/1983 1784/2714/1985 -f 1804/2712/2003 1785/2715/1986 1806/2716/2005 -f 1807/2717/2006 1784/2714/1985 1786/2718/1987 -f 1806/2716/2005 1787/2719/1988 1808/2720/2007 -f 1809/2721/2008 1786/2718/1987 1788/2722/1989 -f 1808/2720/2007 1810/2723/2009 1811/2724/2010 -f 1809/2721/2008 1795/2725/1993 1796/2726/1994 -f 1795/2695/1993 1762/2655/1951 1779/2727/1995 -f 1812/2728/2011 1803/2729/2012 1813/2730/2013 -f 1814/2731/2014 1799/2732/2015 1815/2733/2016 -f 1816/2734/2017 1797/2735/2018 1817/2736/2019 -f 1818/2737/2020 1806/2738/2021 1808/2739/2022 -f 1815/2733/2016 1798/2740/2023 1820/2741/2024 -f 1821/2742/2025 1807/2743/2026 1809/2744/2027 -f 1823/2745/2028 1802/2746/2029 1804/2747/2030 -f 1813/2730/2013 1805/2748/2031 1825/2749/2032 -f 1797/2735/2018 1826/2750/2033 1817/2736/2019 -f 1814/2731/2014 1808/2739/2022 1811/2751/2034 -f 1820/2741/2024 1801/2752/2035 1812/2728/2011 -f 1821/2742/2025 1796/2753/2036 1816/2734/2017 -f 1823/2745/2028 1806/2738/2021 1819/2754/2037 -f 1825/2749/2032 1807/2743/2026 1822/2755/2038 -f 1799/2756/2039 1810/2723/2009 1777/2700/1998 -f 1828/2757/2040 1830/2758/2041 1827/2759/2040 -f 1831/2760/2042 1833/2761/2043 1834/2762/2042 -f 1836/2763/2044 1838/2764/2045 1835/2765/2045 -f 1839/2766/2046 1841/2767/2047 1842/2768/2046 -f 1844/2769/2048 1846/2770/2049 1843/2771/2049 -f 1848/2772/2050 1850/2773/2051 1847/2774/2050 -f 1840/2775/2047 1852/2776/2052 1841/2767/2047 -f 1854/2777/2053 1827/2759/2040 1853/2778/2053 -f 1856/2779/2054 1832/2780/2043 1855/2781/2054 -f 1830/2758/2041 1837/2782/2044 1836/2763/2044 -f 1831/2760/2042 1845/2783/2048 1844/2769/2048 -f 1842/2768/2046 1847/2774/2050 1839/2766/2046 -f 1851/2784/2055 1838/2764/2045 1852/2776/2052 -f 1853/2778/2053 1846/2770/2049 1854/2777/2053 -f 1800/2785/2056 1824/2786/2057 1826/2750/2033 -f 1815/2787/2016 1851/2788/1952 1840/2789/2058 -f 1820/2790/2024 1835/2791/1957 1851/2788/1952 -f 1849/2792/2051 1855/2781/2054 1850/2773/2051 -f 1812/2793/2011 1836/2794/1961 1835/2791/1957 -f 1813/2795/2013 1830/2796/1965 1836/2794/1961 -f 1825/2797/2032 1827/2798/1970 1830/2796/1965 -f 1822/2799/2038 1853/2800/1969 1827/2798/1970 -f 1821/2801/2025 1843/2802/2059 1853/2800/1969 -f 1816/2803/2017 1844/2804/2060 1843/2802/2059 -f 1817/2805/2019 1831/2806/2061 1844/2804/2060 -f 1832/2807/1955 1826/2808/2033 1824/2809/2057 -f 1824/2809/2057 1855/2810/1959 1832/2807/1955 -f 1823/2811/2028 1850/2812/1963 1855/2810/1959 -f 1847/2813/2062 1819/2814/2037 1818/2815/2020 -f 1839/2816/1971 1818/2815/2020 1814/2817/2014 -f 1858/2818/1948 1862/2819/1948 1866/2820/1948 -f 1869/2821/1895 1871/2822/2063 1653/2823/1895 -f 1872/2824/1894 1653/2823/1895 1650/2825/1894 -f 1873/2826/1893 1650/2825/1894 1645/2827/1893 -f 1874/2828/1892 1645/2827/1893 1644/2829/1892 -f 1875/2830/1901 1644/2829/1892 1668/2831/1901 -f 1876/2832/1900 1668/2831/1901 1667/2833/1900 -f 1667/2833/1900 1877/2834/1904 1876/2832/1900 -f 1674/2835/1904 1878/2836/1898 1877/2834/1904 -f 1879/2837/1903 1664/2838/1899 1671/2839/1903 -f 1880/2840/1899 1661/2841/1898 1664/2838/1899 -f 1873/2826/1948 1874/2828/1948 1885/2842/1948 -f 1886/2843/2064 1899/2844/2065 1887/2845/2066 -f 1885/2842/2067 1898/2846/2068 1886/2843/2064 -f 1902/2847/2069 1903/2848/2070 1901/2849/2071 -f 1884/2850/2072 1900/2851/2073 1885/2842/2067 -f 1891/2852/2074 1903/2848/2070 1892/2853/2075 -f 1906/2854/2076 1863/2855/2077 1862/2856/2078 -f 1908/2857/2079 1910/2858/2080 1911/2859/2081 -f 1912/2860/2082 1914/2861/2083 1915/2862/2084 -f 1916/2863/2085 1907/2864/2086 1906/2865/2087 -f 1911/2859/2081 1918/2866/2088 1919/2867/2089 -f 1921/2868/2090 1923/2869/2091 1920/2870/2092 -f 1925/2871/2093 1927/2872/2094 1924/2873/2095 -f 1929/2874/2096 1931/2875/2097 1928/2876/2098 -f 1908/2857/2079 1906/2865/2087 1909/2877/2099 -f 1919/2867/2089 1932/2878/2100 1933/2879/2101 -f 1920/2870/2092 1913/2880/2102 1912/2860/2082 -f 1917/2881/2103 1927/2872/2094 1907/2864/2086 -f 1711/2882/1948 1935/2883/1948 1934/2884/1948 -f 1939/2885/2104 1940/2886/2104 1936/2887/2104 -f 1942/2888/2105 1944/2889/2106 1941/2890/2106 -f 1945/2891/2107 1926/2892/2108 1925/2871/2093 -f 1911/2893/2081 1948/2894/2109 1947/2895/2110 -f 1919/2896/2089 1949/2897/2111 1948/2894/2109 -f 1951/2898/2112 1953/2899/2113 1950/2900/2112 -f 1949/2897/2111 1929/2901/2096 1954/2902/2114 -f 1955/2903/2115 1956/2904/2116 1957/2905/2117 -f 1938/2906/2118 1959/2907/2118 1960/2908/2118 -f 1958/2909/2119 1962/2910/2120 1963/2911/2121 -f 1965/2912/2122 1967/2913/2122 1964/2914/2122 -f 1717/2631/1928 1622/2915/2123 1718/2644/1941 -f 1633/2578/2124 1969/2916/2125 1634/2567/2126 -f 1971/2917/2127 1973/2918/2128 1970/2919/2127 -f 1976/2920/2129 1977/2921/2130 1978/2922/2131 -f 1879/2837/1903 1980/2923/2132 1979/2924/2132 -f 1973/2918/2128 1706/2925/2133 1710/2624/1921 -f 1981/2926/2134 1982/2927/2135 1983/2928/2136 -f 1985/2929/2137 1969/2916/2125 1984/2930/2138 -f 1986/2931/2139 1987/2932/2140 1639/2933/2141 -f 1989/2934/2142 1990/2935/2143 1991/2936/2144 -f 1989/2934/2142 1991/2936/2144 1992/2937/2145 -f 1994/2938/2146 1712/2939/2147 1996/2940/2148 -f 1710/2941/2149 1998/2942/2149 1709/2943/2149 -f 1970/2919/2127 2000/2944/2150 1971/2917/2127 -f 2003/2945/2151 1994/2946/2152 2005/2947/2153 -f 1966/2948/2154 1939/2949/2155 2006/2950/2156 -f 2007/2951/2157 1713/2952/2157 2008/2953/2157 -f 2008/2953/2158 1959/2954/2158 2007/2951/2158 -f 1961/2955/2159 1960/2956/2159 2006/2957/2159 -f 1713/2952/2160 1961/2955/2161 2006/2957/2162 -f 2007/2951/2163 1961/2955/2164 1714/2958/2165 -f 1958/2909/2166 1937/2959/2166 1962/2910/2166 -f 1963/2911/2167 1937/2959/2167 1936/2887/2167 -f 2008/2953/2104 2006/2957/2104 1960/2956/2104 -f 1969/2916/2125 2010/2960/2168 2009/2961/2169 -f 2013/2962/2170 1707/2963/2171 1708/2964/2172 -f 2016/2965/2173 2018/2966/2174 2015/2967/2174 -f 2018/2968/2175 1966/2969/2175 2015/2970/2175 -f 1708/2971/2176 1707/2972/2177 2006/2973/2104 -f 1936/2974/2178 1714/2975/2179 1713/2976/2178 -f 2019/2977/2180 2021/2978/2181 1712/2979/2182 -f 2022/2980/2183 2019/2981/2184 1712/2982/2185 -f 2020/2983/2186 2022/2984/2183 2021/2978/2186 -f 2024/2985/2187 2026/2986/2188 1995/2987/2189 -f 2027/2988/2190 2026/2986/2191 2028/2989/2192 -f 2028/2989/2192 2024/2985/2193 2027/2988/2190 -f 1935/2990/2194 1714/2991/2195 1963/2992/2196 -f 1935/2993/2197 1963/2994/2197 1936/2995/2198 -f 1713/2976/2178 1995/2996/2199 1936/2974/2178 -f 2029/2997/2200 2031/2998/2201 1985/2929/2202 -f 2029/2997/2200 2032/2999/2203 2030/3000/2204 -f 2032/2999/2203 2034/3001/2205 2033/3002/2206 -f 2035/3003/2207 1985/2929/2202 2031/2998/2201 -f 1634/2567/2126 1985/2929/2137 2036/3004/2208 -f 2038/3005/2209 1968/3006/2210 2037/3007/2211 -f 2039/3008/2212 2041/3009/2213 2042/3010/2214 -f 1632/2577/2215 2043/3011/2215 1631/2569/2215 -f 2043/3011/2216 1636/2576/2216 1631/2569/2216 -f 2044/3012/2217 2045/3013/2218 2046/3014/2219 -f 2047/3015/2220 2048/3016/2221 2049/3017/2222 -f 2044/3012/2217 2050/3018/2223 2045/3013/2218 -f 2046/3014/2219 2039/3019/2224 2051/3020/2225 -f 2052/3021/2226 2050/3018/2223 2053/3022/2227 -f 1981/2926/2134 2054/3023/2228 2055/3024/2229 -f 2056/3025/2230 1991/2936/2230 2057/3026/2230 -f 2050/3018/2223 2058/3027/2231 2045/3013/2218 -f 2057/3026/2232 1991/2936/2232 1990/2935/2232 -f 2059/3028/2233 2058/3027/2231 2050/3018/2223 -f 2060/3029/2234 2061/3030/2235 2059/3028/2233 -f 2062/3031/2236 2060/3029/2234 2048/3016/2221 -f 2058/3027/2231 2063/3032/2237 2064/3033/2238 -f 2061/3030/2235 2063/3032/2237 2058/3027/2231 -f 2065/3034/2239 2066/3035/2240 2067/3036/2241 -f 2068/3037/2242 2069/3038/2242 2065/3039/2242 -f 2069/3040/2243 2066/3035/2244 2065/3034/2245 -f 2069/3040/2243 2070/3041/2246 2066/3035/2244 -f 2066/3035/2247 2070/3041/2247 2071/3042/2247 -f 2069/3038/2248 2072/3043/2249 2070/3044/2250 -f 2072/3043/2251 2073/3045/2251 2074/3046/2251 -f 2073/3045/2252 2072/3043/2252 2068/3037/2252 -f 2068/3037/2253 1969/3047/2254 2073/3045/2255 -f 2067/3036/2256 2071/3042/2256 2074/3048/2256 -f 2058/3027/2231 2064/3033/2238 2040/3049/2257 -f 2063/3050/2258 2075/3051/2259 2076/3052/2260 -f 2075/3051/2259 2060/3053/2261 2077/3054/2262 -f 2060/3053/2261 2078/3055/2263 2077/3054/2262 -f 2079/3056/2264 2041/3009/2213 2040/3057/2265 -f 2057/3058/2266 2081/3059/2267 2082/3060/2268 -f 2076/3052/2260 2079/3056/2264 2064/3061/2269 -f 2075/3051/2270 2083/3062/2271 2084/3063/2272 -f 2077/3054/2273 2080/3064/2274 2083/3062/2271 -f 1773/2678/1976 1775/2681/1979 1810/3065/2009 -f 2057/3058/2266 2055/3066/2275 2083/3062/2271 -f 2080/3064/2274 2057/3058/2266 2083/3062/2271 -f 2055/3066/2276 2082/3060/2276 2083/3062/2276 -f 2085/3067/2277 2081/3059/2278 2080/3064/2279 -f 2086/3068/2280 2087/3069/2281 2088/3070/2282 -f 2086/3068/2283 2089/3071/2284 2082/3060/2268 -f 2081/3059/2267 2086/3068/2283 2082/3060/2268 -f 2051/3072/2285 2090/3073/2286 2091/3074/2287 -f 2080/3064/2279 2078/3075/2263 2047/3076/2288 -f 2051/3077/2285 2042/3010/2214 2090/3073/2286 -f 2089/3071/2289 2092/3078/2290 2093/3079/2291 -f 2094/3080/2292 2051/3081/2285 2091/3082/2287 -f 2088/3070/2282 2092/3078/2290 2086/3068/2280 -f 2095/3083/2293 2094/3084/2292 2091/3074/2287 -f 2067/3036/2294 2073/3085/2295 1969/3086/2296 -f 2096/3087/2297 2093/3079/2291 2095/3083/2293 -f 2085/3067/2277 2097/3088/2298 2087/3069/2281 -f 2093/3079/2299 2098/3089/2300 2095/3083/2301 -f 2097/3088/2302 2049/3017/2222 2099/3090/2303 -f 2092/3078/2304 2100/3091/2305 2093/3079/2299 -f 2099/3090/2303 2101/3092/2306 2102/3093/2307 -f 2102/3093/2307 2103/3094/2308 2100/3091/2305 -f 2098/3089/2300 2046/3014/2219 2094/3095/2309 -f 2099/3090/2303 2049/3017/2222 2101/3092/2306 -f 2100/3091/2305 2044/3012/2217 2098/3089/2300 -f 2097/3088/2302 2047/3015/2220 2049/3017/2222 -f 2103/3094/2308 2044/3012/2217 2100/3091/2305 -f 2078/3055/2263 2062/3096/2310 2047/3097/2288 -f 2103/3094/2308 2052/3021/2226 2053/3022/2227 -f 2101/3092/2306 2049/3017/2222 2052/3021/2226 -f 2055/3098/2311 2104/3099/2312 2105/3100/2313 -f 2106/3101/2314 2104/3099/2315 2107/3102/2316 -f 1982/2927/2135 1981/2926/2134 2055/3024/2229 -f 2108/3103/2317 2110/3104/2318 2111/3105/2319 -f 2057/3026/2320 2106/3101/2320 2056/3025/2320 -f 2104/3099/2321 2055/3098/2322 2107/3102/2323 -f 1636/3106/2324 1635/2568/2325 2035/3003/2207 -f 2043/3011/2326 1635/3107/2326 1636/2576/2326 -f 1635/2568/2325 1634/2567/2327 2036/3004/2328 -f 1635/2568/2325 2036/3004/2328 2035/3003/2207 -f 2037/3007/2211 1968/3006/2210 1632/2577/2329 -f 1717/2631/1928 1695/2635/1932 1694/3108/2330 -f 2114/3109/2331 2115/3110/2332 1682/3111/2333 -f 2009/2961/2169 2119/3112/2334 2120/3113/2335 -f 1984/2930/2138 2029/2997/2336 1985/2929/2137 -f 2121/3114/2337 2041/3009/2338 2084/3063/2272 -f 2120/3113/2339 2122/3115/2340 2123/3116/2341 -f 2034/3001/2342 2123/3116/2341 2033/3002/2343 -f 2082/3060/2268 2124/3117/2344 2121/3114/2337 -f 2030/3000/2345 2125/3118/2346 2126/3119/2347 -f 2030/3000/2345 2126/3119/2347 2031/2998/2348 -f 2027/3120/2349 2024/3121/2349 1995/3122/2349 -f 2028/2989/2350 2026/2986/2350 2025/3123/2350 -f 2022/3124/2351 1712/3125/2351 2021/3126/2351 -f 2023/3127/2352 2020/2983/2352 2019/2977/2352 -f 1967/3128/1918 1966/3129/1918 1961/3130/1918 -f 1964/3131/2353 1939/2949/2353 1965/3132/2353 -f 2127/3133/2354 2129/3134/2355 2130/3135/2356 -f 1992/2937/2357 2131/3136/2358 1989/2934/2359 -f 1983/2928/2360 1982/2927/2361 2132/3137/2362 -f 2132/3137/2363 2105/3100/2313 1989/2934/2364 -f 2133/3138/2365 2135/3139/2366 2053/3140/2367 -f 2136/3141/2368 2138/3142/2369 2139/3143/2370 -f 2140/3144/2371 2141/3145/2372 2142/3146/2373 -f 2143/3147/2374 2135/3139/2366 2144/3148/2375 -f 1627/3149/2376 1689/3150/2377 2150/3151/2378 -f 2153/3152/2379 2154/3153/2380 2155/3154/2381 -f 2156/3155/2382 2157/3156/2383 2158/3157/2384 -f 2158/3157/2384 2157/3156/2383 2159/3158/2385 -f 2153/3152/2379 2156/3155/2386 2158/3157/2387 -f 2153/3152/2379 2158/3157/2387 2154/3153/2380 -f 2140/3144/2371 1956/2904/2388 2141/3145/2372 -f 2143/3147/2374 2053/3140/2367 2135/3139/2366 -f 2142/3146/2373 2141/3145/2372 2133/3138/2365 -f 2160/3159/2389 2127/3133/2354 2130/3135/2356 -f 2161/3160/2390 2129/3134/2391 2128/3161/2392 -f 2127/3133/2354 2160/3159/2389 2162/3162/2393 -f 2163/3163/2394 2164/3164/2395 2161/3160/2390 -f 2127/3133/2396 2165/3165/2397 2128/3161/2398 -f 2165/3165/2399 2161/3160/2390 2128/3161/2392 -f 1956/2904/2116 2164/3164/2395 2163/3163/2394 -f 2166/3166/2400 2127/3133/2396 2162/3162/2401 -f 2166/3166/2400 2165/3165/2397 2127/3133/2396 -f 2134/3167/2402 2166/3166/2400 2144/3148/2375 -f 2134/3167/2402 2165/3165/2397 2166/3166/2400 -f 2135/3139/2366 2134/3167/2402 2144/3148/2375 -f 2134/3167/2402 2133/3138/2365 2165/3165/2397 -f 2141/3145/2372 2165/3165/2397 2133/3138/2365 -f 2141/3145/2372 1956/2904/2388 2163/3163/2403 -f 1805/3168/2404 2152/3169/2405 1803/3170/2406 -f 2137/3171/2407 2150/3151/2408 2149/3172/2409 -f 2136/3141/2368 2151/3173/2410 2150/3151/2408 -f 1626/3174/2411 2108/3103/2317 2111/3105/2319 -f 2170/3175/2412 2171/3176/2413 2167/3177/2414 -f 2174/3178/2415 1641/3179/1890 1640/3180/1889 -f 2170/3181/2416 2169/3182/2417 1925/3183/2418 -f 2181/3184/2419 2183/3185/1948 2184/3186/2420 -f 1637/2579/2421 1988/3187/2422 1638/2580/2423 -f 1638/2580/2424 1637/3188/2425 1639/2584/2424 -f 2189/3189/2426 1994/3190/2426 2004/3191/2426 -f 1717/2631/1928 1693/3192/2427 1716/2630/1926 -f 1971/3193/2428 2191/3194/2429 1972/3195/2430 -f 1638/3196/2431 1639/2584/1891 1641/2583/1890 -f 2158/3157/2432 2193/3197/2433 2154/3153/2434 -f 1986/3198/2139 1638/3199/2431 2197/3200/2435 -f 1676/3201/1948 2198/3202/1948 1655/3203/1948 -f 2199/3204/2436 2200/3205/1918 1975/3206/2437 -f 2205/3207/2438 2146/3208/2439 1805/3168/2440 -f 2197/3209/2435 1638/3210/2431 2194/3211/2441 -f 1639/2584/1891 1637/3188/2442 1640/3212/1889 -f 1665/2600/1901 1644/3213/1892 1643/2585/1892 -f 1652/2591/1895 1871/3214/2063 2206/3215/2063 -f 2206/3215/2063 1657/2594/1897 1660/2593/1897 -f 1673/2605/1904 1667/3216/1900 1666/2598/1900 -f 2207/3217/2443 2209/3218/2444 2210/3219/2445 -f 1801/3220/2446 1805/3221/2447 1800/3222/2448 -f 2208/3223/2449 2211/3224/2450 2209/3225/2444 -f 2173/3226/2353 2210/3227/2451 2174/3228/2451 -f 2112/3229/2452 1722/3230/2453 1721/3231/2454 -f 1683/3232/2455 2112/3229/2452 1721/3231/2454 -f 1698/3233/2456 2215/3234/2457 2216/3235/2458 -f 2218/3236/2459 2217/3237/2460 2219/3238/2459 -f 1699/3239/2461 2212/3240/2461 2218/3236/2461 -f 1730/2646/1943 1697/3241/2462 1728/2643/1940 -f 1894/3242/1896 1669/3243/1902 1658/3244/1896 -f 1669/2602/1902 2220/3245/2132 1670/2601/1902 -f 1657/3246/1897 1894/3242/1896 1658/3244/1896 -f 1979/2924/1948 1893/3247/1948 1902/2847/1948 -f 2221/3248/2463 2196/3249/2464 2222/3250/2464 -f 2223/3251/2465 1902/2847/2069 1901/2849/2071 -f 1890/3252/2466 1905/3253/2467 1891/2852/2074 -f 1882/3254/2468 2225/3255/2469 1883/3256/2470 -f 1883/3256/2470 1904/3257/2471 1884/2850/2072 -f 1890/3252/2466 1793/2692/1990 1792/3258/2472 -f 1897/3259/2473 2227/3260/2474 1881/3261/2475 -f 1888/3262/2476 1793/2692/1990 1889/3263/2477 -f 1881/3261/2475 2224/3264/2478 1882/3254/2468 -f 1860/3265/2479 2223/3251/2465 1859/3266/2480 -f 1887/2845/2066 1794/2693/1991 1888/3262/2476 -f 1866/3267/2481 1899/2844/2065 1898/2846/2068 -f 1858/3268/2482 2223/3251/2465 1901/2849/2071 -f 1903/2848/2070 1868/3269/2483 1857/3270/2484 -f 1901/2849/2071 1857/3270/2484 1858/3268/2482 -f 1865/3271/2485 1898/2846/2068 1900/2851/2073 -f 1904/3257/2471 1863/3272/2486 1864/3273/2487 -f 1905/3253/2467 1791/3274/2488 1868/3269/2483 -f 2225/3255/2469 1862/3275/2489 1863/3272/2486 -f 2224/3264/2478 1861/3276/2490 1862/3275/2489 -f 1914/3277/2491 1789/3278/2492 1867/3279/2493 -f 1910/3280/2494 1859/3281/2495 1918/3282/2496 -f 1860/3265/2479 2227/3260/2474 2226/3283/2497 -f 1896/3284/2498 2226/3283/2497 1897/3259/2473 -f 1932/3285/2499 1857/3286/2500 1930/3287/2501 -f 1946/3288/2502 1867/3279/2493 1866/3289/2503 -f 1918/3282/2496 1858/3290/2504 1932/3285/2499 -f 1927/3291/2505 1865/3292/2506 1864/3293/2507 -f 1926/3294/2508 1866/3289/2503 1865/3292/2506 -f 1907/3295/2509 1864/3293/2507 1863/2855/2077 -f 1930/3296/2501 1868/3297/2510 1931/3298/2511 -f 1789/3299/2512 1899/2844/2065 1867/3300/2513 -f 1931/3301/2511 1791/3302/2514 1922/3303/2515 -f 1913/3304/2516 1790/3305/2517 1789/3278/2492 -f 1923/3306/2518 1791/3302/2514 1790/3305/2517 -f 1932/2878/2100 1929/2874/2096 1933/2879/2101 -f 1909/3307/2519 1862/2856/2078 1861/3308/2520 -f 1900/2851/2073 1864/3273/2487 1865/3271/2485 -f 1914/2861/2083 1945/2891/2107 1915/2862/2084 -f 1910/3280/2494 1861/3308/2520 1860/3309/2521 -f 1928/2876/2098 1922/3310/2522 1921/2868/2090 -f 2013/2962/2170 2017/3311/2173 2016/2965/2173 -f 2228/3312/2523 2230/3313/2524 1954/3314/2524 -f 2231/3315/2525 1951/2898/2112 1950/2900/2112 -f 1948/3316/2526 2233/3317/2527 2234/3318/2526 -f 2235/3319/2528 2232/3320/2525 2231/3315/2525 -f 2238/3321/2529 2240/3322/2530 2237/3323/2529 -f 1947/3324/2531 2234/3318/2526 2241/3325/2531 -f 1952/3326/2113 1942/2888/2105 1953/2899/2113 -f 1954/3314/2524 2233/3317/2527 1949/3327/2532 -f 2239/3328/2530 2228/3312/2523 2240/3322/2530 -f 2242/3329/2533 2244/3330/2534 2245/3331/2535 -f 1947/3324/2531 2236/3332/2536 2235/3319/2528 -f 1941/2890/2106 2244/3330/2534 2243/3333/2534 -f 2245/3331/2535 2237/3323/2529 2242/3329/2533 -f 2228/3334/2537 1921/3335/2090 2240/3336/2538 -f 1921/3335/2090 2237/3337/2539 2240/3336/2538 -f 2228/3334/2537 1929/2901/2096 1928/3338/2098 -f 1912/3339/2082 2243/3340/2540 2242/3341/2541 -f 1920/3342/2092 2242/3341/2541 2237/3337/2539 -f 2243/3340/2540 1945/3343/2107 1941/3344/2542 -f 1945/3343/2107 1942/3345/2543 1941/3344/2542 -f 1953/3346/2544 1925/3347/2093 1924/3348/2095 -f 1924/3348/2095 1950/3349/2545 1953/3346/2544 -f 1917/3350/2103 2231/3351/2546 1950/3349/2545 -f 1916/3352/2085 2235/3353/2547 2231/3351/2546 -f 1908/3354/2079 1947/3355/2110 2235/3353/2547 -f 2246/3356/2548 2174/3357/2451 2210/3358/2451 -f 2204/3359/2120 2248/3360/2120 2249/3361/2120 -f 1982/2927/2549 2055/3024/2311 2105/3100/2313 -f 1989/2934/2364 2105/3100/2313 1990/2935/2550 -f 1982/2927/2549 2105/3100/2313 2132/3137/2363 -f 2131/3136/2358 2132/3137/2362 1989/2934/2359 -f 2250/3362/2551 2132/3137/2362 2131/3136/2358 -f 2250/3362/2551 1983/2928/2360 2132/3137/2362 -f 2054/3023/2552 2107/3102/2323 2055/3098/2322 -f 2104/3099/2312 2057/3026/2553 1990/2935/2550 -f 2105/3100/2313 2104/3099/2312 1990/2935/2550 -f 2067/3036/2241 2066/3035/2240 2071/3042/2554 -f 2070/3044/2555 2074/3046/2555 2071/3363/2555 -f 2072/3043/2556 2074/3046/2556 2070/3044/2556 -f 2069/3038/2248 2068/3037/2557 2072/3043/2249 -f 2068/3364/2253 2065/3034/2558 1969/3086/2254 -f 1969/3086/2559 2065/3034/2239 2067/3036/2241 -f 2101/3092/2306 2052/3021/2226 2103/3094/2308 -f 2053/3022/2227 2044/3012/2217 2103/3094/2308 -f 2044/3012/2217 2046/3014/2219 2098/3089/2300 -f 2046/3014/2219 2051/3020/2225 2094/3095/2309 -f 2101/3092/2306 2103/3094/2308 2102/3093/2307 -f 2102/3093/2307 2100/3091/2305 2092/3078/2304 -f 2098/3089/2300 2094/3095/2309 2095/3083/2301 -f 2099/3090/2303 2102/3093/2307 2088/3070/2560 -f 2088/3070/2560 2102/3093/2307 2092/3078/2304 -f 2100/3091/2305 2098/3089/2300 2093/3079/2299 -f 2097/3088/2302 2099/3090/2303 2087/3069/2561 -f 2087/3069/2561 2099/3090/2303 2088/3070/2560 -f 2089/3071/2289 2093/3079/2291 2096/3087/2297 -f 2087/3069/2281 2081/3059/2278 2085/3067/2277 -f 2096/3087/2297 2095/3083/2293 2124/3117/2562 -f 2124/3117/2562 2095/3083/2293 2091/3074/2287 -f 2092/3078/2290 2089/3071/2289 2086/3068/2280 -f 2089/3071/2289 2096/3087/2297 2124/3117/2562 -f 2090/3073/2563 2124/3117/2344 2091/3074/2564 -f 2121/3114/2337 2124/3117/2344 2090/3073/2563 -f 2082/3060/2268 2055/3066/2275 2057/3058/2266 -f 2083/3062/2271 2082/3060/2268 2121/3114/2337 -f 2083/3062/2271 2121/3114/2337 2084/3063/2272 -f 2090/3073/2286 2042/3010/2214 2041/3009/2213 -f 2078/3075/2263 2080/3064/2279 2077/3054/2262 -f 2077/3054/2273 2083/3062/2271 2075/3051/2270 -f 2075/3051/2270 2084/3063/2272 2076/3052/2565 -f 2084/3063/2272 2079/3056/2566 2076/3052/2565 -f 2084/3063/2272 2041/3009/2338 2079/3056/2566 -f 2079/3056/2264 2040/3057/2265 2064/3061/2269 -f 2061/3365/2567 2075/3051/2259 2063/3050/2258 -f 2039/3008/2212 2042/3366/2214 2051/3367/2285 -f 2076/3052/2260 2064/3061/2269 2063/3050/2258 -f 2058/3027/2231 2040/3049/2257 2045/3013/2218 -f 2060/3029/2234 2059/3028/2233 2048/3016/2221 -f 2040/3049/2257 2039/3019/2224 2045/3013/2218 -f 2061/3030/2235 2058/3027/2231 2059/3028/2233 -f 2062/3031/2236 2048/3016/2221 2047/3015/2220 -f 2059/3028/2233 2052/3021/2226 2048/3016/2221 -f 2059/3028/2233 2050/3018/2223 2052/3021/2226 -f 2045/3013/2218 2039/3019/2224 2046/3014/2219 -f 2053/3022/2227 2050/3018/2223 2044/3012/2217 -f 2048/3016/2221 2052/3021/2226 2049/3017/2222 -f 2126/3119/2347 2035/3003/2568 2031/2998/2348 -f 2126/3119/2347 1636/3106/2569 2035/3003/2568 -f 1632/2577/2329 1968/3006/2210 1633/2578/2570 -f 1969/2916/2125 2009/2961/2169 1984/2930/2138 -f 2009/2961/2169 2034/3001/2571 1984/2930/2138 -f 2009/2961/2169 2010/2960/2168 2119/3112/2334 -f 2119/3112/2572 2251/3368/2573 2122/3115/2340 -f 2120/3113/2339 2119/3112/2572 2122/3115/2340 -f 2034/3001/2342 2120/3113/2339 2123/3116/2341 -f 2032/3369/2574 2033/3370/2575 2125/3371/2346 -f 2030/3000/2345 2032/2999/2574 2125/3118/2346 -f 2017/3372/1918 2012/3373/1918 2011/3374/1918 -f 2249/3361/2576 2149/3172/2409 2148/3375/2577 -f 1803/3170/2406 2253/3376/2578 2201/3377/2579 -f 2108/3103/2317 2139/3143/2370 2109/3378/2580 -f 2138/3142/2369 2249/3361/2576 2248/3360/2581 -f 1957/2905/2117 1956/2904/2582 2140/3144/2583 -f 2043/3379/2584 2156/3155/2585 2153/3152/2586 -f 1870/3380/2063 1657/3246/1897 1871/2822/2063 -f 2256/3381/2587 2257/3382/2588 1831/3383/2589 -f 1640/3212/1889 1637/3188/2442 1988/3384/2590 -f 2002/3385/2591 2259/3386/2592 2221/3387/2592 -f 1987/3388/1918 2221/3389/2593 2259/3390/1918 -f 1913/3391/2594 1914/3392/2179 1930/3393/2595 -f 2262/3394/2596 1700/3395/2597 1699/3396/2598 -f 1730/2646/1943 1629/2641/1938 1628/3397/2599 -f 1814/2817/2014 1840/3398/2058 1839/2816/1971 -f 2188/3399/2600 1977/3400/2601 1976/3401/2602 -f 2006/3402/2353 2014/3403/2353 2015/3404/2353 -f 2142/3146/2373 2133/3138/2365 2053/3140/2367 -f 2252/3405/2603 2152/3169/2405 1690/3406/2604 -f 2266/3407/2605 2267/3408/2606 2167/3409/2607 -f 2247/3410/2608 2195/3411/2609 2194/3412/2441 -f 1689/3413/2610 1627/3414/2611 2162/3415/2612 -f 2159/3416/2613 2157/3417/2614 1626/3418/2615 -f 1690/3419/2616 2161/3420/2617 2164/3421/2618 -f 2110/3422/2619 2251/3423/2620 2193/3424/2621 -f 2010/2960/2622 2251/3368/2623 2119/3112/2624 -f 2085/3067/2277 2047/3425/2288 2097/3426/2298 -f 2265/3427/2625 1975/3428/2626 2200/3429/2625 -f 2273/3430/2627 2196/3431/2628 2195/3432/2629 -f 2154/3153/2630 2193/3197/2621 2251/3423/2620 -f 2191/3433/2631 1970/3434/2632 1973/3435/2633 -f 1671/2604/1903 2220/3245/2132 1980/3436/2132 -f 1980/2923/2132 1893/3247/1902 1979/2924/2132 -f 1993/3437/2634 1997/3438/2635 1988/3439/2636 -f 2280/3440/2637 1996/3441/2638 2279/3442/2637 -f 2282/3443/2639 2284/3444/2640 2281/3445/2640 -f 2285/3446/2641 2283/3447/2639 2282/3443/2639 -f 2281/3445/2640 2288/3448/2642 2287/3449/2642 -f 2290/3450/2643 2292/3451/2644 2289/3452/2644 -f 2294/3453/2645 2292/3451/2644 2293/3454/2645 -f 2298/3455/2646 2296/3456/2647 2295/3457/2646 -f 2297/3458/2647 2299/3459/2648 2296/3456/2647 -f 2304/3460/2649 2302/3461/2650 2301/3462/2650 -f 2293/3454/2645 2305/3463/2651 2294/3453/2645 -f 2308/3464/2652 2295/3457/2646 2307/3465/2652 -f 2309/3466/2647 2300/3467/2648 2297/3468/2647 -f 2311/3469/2646 2297/3468/2647 2298/3470/2646 -f 2312/3471/2652 2298/3470/2646 2308/3472/2652 -f 2313/3473/2651 2308/3472/2652 2306/3474/2651 -f 2314/3475/2645 2306/3474/2651 2293/3476/2645 -f 2315/3477/2644 2293/3476/2645 2292/3478/2644 -f 2316/3479/2643 2292/3478/2644 2291/3480/2643 -f 2317/3481/2642 2291/3480/2643 2288/3482/2642 -f 2318/3483/2640 2288/3482/2642 2284/3484/2640 -f 2283/3485/2639 2320/3486/2641 2319/3487/2639 -f 2319/3487/2639 2284/3484/2640 2283/3485/2639 -f 2321/3488/2649 2286/3489/2641 2304/3490/2649 -f 2322/3491/2650 2304/3490/2649 2301/3492/2650 -f 2324/3493/2653 2301/3492/2650 2323/3494/2653 -f 2310/3495/2648 2323/3494/2653 2300/3467/2648 -f 2303/3496/2649 2286/3497/2641 2285/3446/2641 -f 2287/3449/2642 2291/3498/2643 2290/3450/2643 -f 2305/3463/2651 2308/3464/2652 2307/3465/2652 -f 2323/3499/2653 2302/3461/2650 2325/3500/2653 -f 2300/3501/2648 2325/3500/2653 2299/3459/2648 -f 1643/2585/1892 1644/3213/1892 1645/2586/1893 -f 1642/2587/1893 1645/2586/1893 1650/2588/1894 -f 1649/2589/1894 1650/2588/1894 1653/2590/1895 -f 1658/2592/1896 1659/3502/1896 1660/2593/1897 -f 1662/2595/1898 1663/3503/1899 1664/2596/1899 -f 1666/2598/1900 1667/3216/1900 1668/2599/1901 -f 1670/2601/1902 1659/3502/1896 1658/2592/1896 -f 1664/2596/1899 1663/3503/1899 1672/2603/1903 -f 1661/2597/1898 1674/3504/1904 1673/2605/1904 -f 1682/2606/1905 1683/3232/1905 1684/2607/1905 -f 1685/2608/1906 1684/2607/1906 1686/2609/1906 -f 1697/2612/1908 1688/3505/2654 1690/2613/1909 -f 1688/3505/2654 1689/3506/2655 1690/2613/1909 -f 1690/2613/1909 1691/3507/2656 1694/3508/2657 -f 1691/3507/2656 1692/3509/2353 1693/3510/2658 -f 1694/3508/2657 1691/3507/2656 1693/3510/2658 -f 1694/3508/2657 1695/3511/2659 1690/2613/1909 -f 1695/3511/2659 1696/2611/1907 1690/2613/1909 -f 1698/2614/1910 1699/3239/2660 1700/2615/1911 -f 1702/2617/1913 1703/2629/1925 1704/2618/1914 -f 1705/2619/1916 1704/2618/2661 1625/2620/1917 -f 1710/2624/1921 1706/2925/2133 1708/2622/1919 -f 1706/2925/2133 1707/3512/2662 1708/2622/1919 -f 1715/2627/1923 1711/3513/2663 1713/2625/1922 -f 1711/3513/2663 1712/3514/2664 1713/2625/1922 -f 1692/2628/1924 1691/3515/2665 1703/2629/1925 -f 1716/2630/1926 1693/3192/2427 1692/2628/1924 -f 1716/2630/1926 1702/2617/1913 1705/2619/1915 -f 1717/2631/1928 1716/2630/1926 1624/2621/1927 -f 1695/2635/1932 1718/2644/1941 1720/2633/1930 -f 1718/2644/1941 1719/2642/1939 1720/2633/1930 -f 1686/3516/2666 1684/3517/2667 1727/3518/2668 -f 1684/3517/2667 1683/2636/1933 1727/3518/2668 -f 1683/2636/1933 1721/3519/2669 1725/2637/1934 -f 1721/3519/2669 1722/3520/2670 1724/3521/2671 -f 1725/2637/1934 1721/3519/2669 1724/3521/2671 -f 1722/3520/2670 1723/3522/2670 1724/3521/2671 -f 1726/2638/1935 1727/3518/2668 1683/2636/1933 -f 1629/2641/1938 1728/2643/1940 1729/2639/1936 -f 1728/2643/1940 1719/2642/1939 1729/2639/1936 -f 1728/2643/1940 1697/3241/2462 1720/2633/1930 -f 1697/3241/2462 1696/2634/1931 1720/2633/1930 -f 1718/2644/1941 1622/2915/2123 1729/2639/1936 -f 1622/2915/2123 1630/2640/1937 1729/2639/1936 -f 1688/3523/2672 1730/2646/1943 1689/2645/1942 -f 1730/2646/1943 1628/3397/2599 1627/2647/1944 -f 1734/2648/1945 1735/3524/1948 1747/2649/1946 -f 1760/2665/1948 1748/2661/1948 1738/3525/1948 -f 1748/2661/1948 1749/2659/1948 1737/3526/1948 -f 1738/3525/1948 1748/2661/1948 1737/3526/1948 -f 1749/2659/1948 1747/2649/1946 1736/3527/1948 -f 1747/2649/1946 1735/3524/1948 1736/3527/1948 -f 1759/2669/1948 1760/2665/1948 1738/3525/1948 -f 1757/2677/1948 1758/2673/1948 1740/3528/1948 -f 1758/2673/1948 1759/2669/1948 1739/3529/1948 -f 1755/2653/1948 1756/2656/1948 1743/2651/1948 -f 1756/2656/1948 1757/2677/1948 1742/3530/1948 -f 1743/2651/1948 1756/2656/1948 1742/3530/1948 -f 1753/2667/1948 1754/2663/1948 1745/3531/1948 -f 1754/2663/1948 1755/2653/1948 1744/2652/1948 -f 1745/3531/1948 1754/2663/1948 1744/2652/1948 -f 1751/2671/1948 1752/2672/1948 1732/3532/1948 -f 1752/2672/1948 1753/2667/1948 1732/3532/1948 -f 1746/2650/1947 1750/2675/2673 1733/3533/2674 -f 1750/2675/2673 1751/2671/1948 1733/3533/2674 -f 1733/3533/2674 1734/2648/1945 1746/2650/1947 -f 1749/2659/1948 1736/3527/1948 1737/3526/1948 -f 1731/3534/1948 1733/3533/2674 1751/2671/1948 -f 1732/3532/1948 1731/3534/1948 1751/2671/1948 -f 1759/2669/1948 1738/3525/1948 1739/3529/1948 -f 1745/3531/1948 1732/3532/1948 1753/2667/1948 -f 1758/2673/1948 1739/3529/1948 1740/3528/1948 -f 1757/2677/1948 1740/3528/1948 1741/3535/1948 -f 1757/2677/1948 1741/3535/1948 1742/3530/1948 -f 1746/2650/1949 1747/2649/1956 1761/2654/1950 -f 1756/2656/1952 1755/2653/1957 1764/2657/1953 -f 1749/2659/1955 1765/2662/1960 1761/2654/1950 -f 1755/2653/1957 1754/2663/1961 1766/2660/1958 -f 1748/2661/1959 1767/2666/1964 1765/2662/1960 -f 1754/2663/1961 1753/2667/1965 1768/2664/1962 -f 1760/2665/1963 1769/2670/1968 1767/2666/1964 -f 1753/2667/1965 1752/2672/1970 1770/2668/1966 -f 1759/2669/1967 1771/2674/1972 1769/2670/1968 -f 1751/2671/1969 1772/2676/1974 1770/2668/1966 -f 1758/2673/1971 1773/2678/1976 1771/2674/1972 -f 1750/2675/1973 1774/2679/1977 1772/2676/1974 -f 1757/2677/1975 1775/2681/1979 1773/2678/1976 -f 1746/2650/1949 1762/2655/1951 1774/2679/1977 -f 1776/2680/1978 1777/3536/1998 1775/2681/1979 -f 1778/2682/1980 1779/2727/1995 1762/2655/1951 -f 1780/2683/1981 1776/2680/1978 1763/2658/1954 -f 1781/2684/1982 1778/2682/1980 1761/2654/1950 -f 1780/2683/1981 1764/2657/1953 1766/2660/1958 -f 1765/2662/1960 1767/2666/1964 1783/2686/1984 -f 1782/2685/1983 1766/2660/1958 1768/2664/1962 -f 1767/2666/1964 1769/2670/1968 1785/2688/1986 -f 1768/2664/1962 1770/2668/1966 1786/2689/1987 -f 1769/2670/1968 1771/2674/1972 1787/2690/1988 -f 1770/2668/1966 1772/2676/1974 1788/2691/1989 -f 1794/2693/1991 1789/3299/2675 1790/2694/1992 -f 1790/2694/1992 1791/3274/2676 1792/3258/2472 -f 1792/3258/2472 1793/2692/1990 1790/2694/1992 -f 1788/2691/1989 1772/2676/1974 1774/2679/1977 -f 1775/2681/1979 1757/2677/1975 1756/2656/1952 -f 1796/2696/1994 1795/3537/1993 1779/2697/1995 -f 1798/2699/1997 1799/2756/2039 1777/2700/1998 -f 1797/2702/1996 1779/3538/1995 1778/2703/1980 -f 1801/2705/2000 1798/2699/1997 1776/2701/1978 -f 1800/2704/1999 1778/2703/1980 1781/2707/1982 -f 1803/2709/2002 1801/2705/2000 1780/2706/1981 -f 1802/2708/2001 1781/2707/1982 1783/2711/1984 -f 1805/2713/2004 1803/2709/2002 1782/2710/1983 -f 1804/2712/2003 1783/2711/1984 1785/2715/1986 -f 1807/2717/2006 1805/2713/2004 1784/2714/1985 -f 1806/2716/2005 1785/2715/1986 1787/2719/1988 -f 1809/2721/2008 1807/2717/2006 1786/2718/1987 -f 1808/2720/2007 1787/2719/1988 1810/2723/2009 -f 1809/2721/2008 1788/2722/1989 1795/2725/1993 -f 1795/2695/1993 1774/2679/1977 1762/2655/1951 -f 1812/2728/2011 1801/2752/2035 1803/2729/2012 -f 1814/2731/2014 1811/2751/2034 1799/2732/2015 -f 1816/2734/2017 1796/2753/2036 1797/2735/2018 -f 1818/2737/2020 1819/2754/2037 1806/2738/2021 -f 1815/2733/2016 1799/2732/2015 1798/2740/2023 -f 1821/2742/2025 1822/2755/2038 1807/2743/2026 -f 1823/2745/2028 1824/2786/2057 1802/2746/2029 -f 1813/2730/2013 1803/2729/2012 1805/2748/2031 -f 1797/2735/2018 1800/2785/2056 1826/2750/2033 -f 1814/2731/2014 1818/2737/2020 1808/2739/2022 -f 1820/2741/2024 1798/2740/2023 1801/2752/2035 -f 1821/2742/2025 1809/2744/2027 1796/2753/2036 -f 1823/2745/2028 1804/2747/2030 1806/2738/2021 -f 1825/2749/2032 1805/2748/2031 1807/2743/2026 -f 1799/2756/2039 1811/2724/2010 1810/2723/2009 -f 1828/2757/2040 1829/3539/2041 1830/2758/2041 -f 1831/2760/2042 1832/2780/2043 1833/2761/2043 -f 1836/2763/2044 1837/2782/2044 1838/2764/2045 -f 1839/2766/2046 1840/2775/2047 1841/2767/2047 -f 1844/2769/2048 1845/2783/2048 1846/2770/2049 -f 1848/2772/2050 1849/2792/2051 1850/2773/2051 -f 1840/2775/2047 1851/2784/2055 1852/2776/2052 -f 1854/2777/2053 1828/2757/2040 1827/2759/2040 -f 1856/2779/2054 1833/2761/2043 1832/2780/2043 -f 1830/2758/2041 1829/3539/2041 1837/2782/2044 -f 1831/2760/2042 1834/2762/2042 1845/2783/2048 -f 1842/2768/2046 1848/2772/2050 1847/2774/2050 -f 1851/2784/2055 1835/2765/2045 1838/2764/2045 -f 1853/2778/2053 1843/2771/2049 1846/2770/2049 -f 1800/2785/2056 1802/2746/2029 1824/2786/2057 -f 1815/2787/2016 1820/2790/2024 1851/2788/1952 -f 1820/2790/2024 1812/2793/2011 1835/2791/1957 -f 1849/2792/2051 1856/2779/2054 1855/2781/2054 -f 1812/2793/2011 1813/2795/2013 1836/2794/1961 -f 1813/2795/2013 1825/2797/2032 1830/2796/1965 -f 1825/2797/2032 1822/2799/2038 1827/2798/1970 -f 1822/2799/2038 1821/2801/2025 1853/2800/1969 -f 1821/2801/2025 1816/2803/2017 1843/2802/2059 -f 1816/2803/2017 1817/2805/2019 1844/2804/2060 -f 1817/2805/2019 1826/2808/2033 1831/2806/2061 -f 1832/2807/1955 1831/2806/2061 1826/2808/2033 -f 1824/2809/2057 1823/2811/2028 1855/2810/1959 -f 1823/2811/2028 1819/2814/2037 1850/2812/1963 -f 1847/2813/2062 1850/2812/1963 1819/2814/2037 -f 1839/2816/1971 1847/2813/2062 1818/2815/2020 -f 1868/3540/1948 1857/3541/1948 1858/2818/1948 -f 1858/2818/1948 1859/3542/1948 1860/3543/1948 -f 1860/3543/1948 1861/3544/1948 1858/2818/1948 -f 1861/3544/1948 1862/2819/1948 1858/2818/1948 -f 1862/2819/1948 1863/3545/1948 1864/3546/1948 -f 1864/3546/1948 1865/3547/1948 1866/2820/1948 -f 1866/2820/1948 1867/3548/1948 1789/3549/1948 -f 1789/3549/1948 1790/3550/1948 1866/2820/1948 -f 1790/3550/1948 1791/3551/1948 1866/2820/1948 -f 1791/3551/1948 1868/3540/1948 1858/2818/1948 -f 1862/2819/1948 1864/3546/1948 1866/2820/1948 -f 1791/3551/1948 1858/2818/1948 1866/2820/1948 -f 1869/2821/1895 1870/3380/2063 1871/2822/2063 -f 1872/2824/1894 1869/2821/1895 1653/2823/1895 -f 1873/2826/1893 1872/2824/1894 1650/2825/1894 -f 1874/2828/1892 1873/2826/1893 1645/2827/1893 -f 1875/2830/1901 1874/2828/1892 1644/2829/1892 -f 1876/2832/1900 1875/2830/1901 1668/2831/1901 -f 1667/2833/1900 1674/2835/1904 1877/2834/1904 -f 1674/2835/1904 1661/2841/1898 1878/2836/1898 -f 1879/2837/1903 1880/2840/1899 1664/2838/1899 -f 1880/2840/1899 1878/2836/1898 1661/2841/1898 -f 1897/3259/1948 1881/3261/1948 1878/2836/1948 -f 1881/3261/1948 1882/3254/1948 1878/2836/1948 -f 1882/3254/1948 1883/3256/1948 1877/2834/1948 -f 1883/3256/1948 1884/2850/1948 1876/2832/1948 -f 1877/2834/1948 1883/3256/1948 1876/2832/1948 -f 1884/2850/1948 1885/2842/1948 1874/2828/1948 -f 1885/2842/1948 1886/2843/1948 1873/2826/1948 -f 1886/2843/1948 1887/2845/1948 1872/2824/1948 -f 1887/2845/1948 1888/3262/1948 1869/2821/1948 -f 1888/3262/1948 1889/3263/1948 1870/3380/1948 -f 1889/3263/1948 1890/3252/1948 1870/3380/1948 -f 1890/3252/1948 1891/2852/1948 1895/3552/1948 -f 1891/2852/1948 1892/2853/1948 1894/3242/1948 -f 1895/3552/1948 1891/2852/1948 1894/3242/1948 -f 1892/2853/1948 1893/3247/1948 1894/3242/1948 -f 1896/3284/1948 1897/3259/1948 1880/2840/1948 -f 1880/2840/1948 1879/2837/1948 1896/3284/1948 -f 1878/2836/1948 1880/2840/1948 1897/3259/1948 -f 1890/3252/1948 1895/3552/1948 1870/3380/1948 -f 1877/2834/1948 1878/2836/1948 1882/3254/1948 -f 1888/3262/1948 1870/3380/1948 1869/2821/1948 -f 1887/2845/1948 1869/2821/1948 1872/2824/1948 -f 1875/2830/1948 1876/2832/1948 1884/2850/1948 -f 1874/2828/1948 1875/2830/1948 1884/2850/1948 -f 1886/2843/1948 1872/2824/1948 1873/2826/1948 -f 1886/2843/2064 1898/2846/2068 1899/2844/2065 -f 1885/2842/2067 1900/2851/2073 1898/2846/2068 -f 1902/2847/2069 1892/2853/2075 1903/2848/2070 -f 1884/2850/2072 1904/3257/2471 1900/2851/2073 -f 1891/2852/2074 1905/3253/2467 1903/2848/2070 -f 1906/2854/2076 1907/3295/2509 1863/2855/2077 -f 1908/2857/2079 1909/2877/2099 1910/2858/2080 -f 1912/2860/2082 1913/2880/2102 1914/2861/2083 -f 1916/2863/2085 1917/2881/2103 1907/2864/2086 -f 1911/2859/2081 1910/2858/2080 1918/2866/2088 -f 1921/2868/2090 1922/3310/2522 1923/2869/2091 -f 1925/2871/2093 1926/2892/2108 1927/2872/2094 -f 1929/2874/2096 1930/3553/2677 1931/2875/2097 -f 1908/2857/2079 1916/2863/2085 1906/2865/2087 -f 1919/2867/2089 1918/2866/2088 1932/2878/2100 -f 1920/2870/2092 1923/2869/2091 1913/2880/2102 -f 1917/2881/2103 1924/2873/2095 1927/2872/2094 -f 1711/2882/1948 1715/3554/1948 1935/2883/1948 -f 1936/2887/2104 1937/2959/2104 1939/2885/2104 -f 1937/2959/2104 1938/2906/2104 1939/2885/2104 -f 1942/2888/2105 1943/3555/2105 1944/2889/2106 -f 1945/2891/2107 1946/3556/2678 1926/2892/2108 -f 1911/2893/2081 1919/2896/2089 1948/2894/2109 -f 1919/2896/2089 1933/3557/2101 1949/2897/2111 -f 1951/2898/2112 1952/3326/2113 1953/2899/2113 -f 1949/2897/2111 1933/3557/2101 1929/2901/2096 -f 1938/2906/2118 1958/2909/2118 1959/2907/2118 -f 1963/2911/2121 1961/3558/2679 1958/2909/2119 -f 1961/3558/2679 1959/2907/2680 1958/2909/2119 -f 1965/2912/2122 1966/3559/2122 1967/2913/2122 -f 1717/2631/1928 1623/2632/1929 1622/2915/2123 -f 1633/2578/2124 1968/3006/2681 1969/2916/2125 -f 1971/2917/2127 1972/3560/2682 1973/2918/2128 -f 1978/2922/2131 1974/3561/2683 1975/3562/2626 -f 1975/3562/2626 1976/2920/2129 1978/2922/2131 -f 1879/2837/1903 1671/2839/1903 1980/2923/2132 -f 1973/2918/2128 1972/3560/2682 1706/2925/2133 -f 1985/2929/2137 1634/2567/2126 1969/2916/2125 -f 1988/3563/2684 1637/3564/2685 1987/2932/2140 -f 1637/3564/2685 1639/2933/2141 1987/2932/2140 -f 1639/2933/2141 1638/3565/2431 1986/2931/2139 -f 1997/3566/2635 1993/3567/2634 1996/2940/2148 -f 1993/3567/2634 1994/2938/2146 1996/2940/2148 -f 1994/2938/2146 1995/3568/2199 1712/2939/2147 -f 1970/2919/2127 1999/3569/2150 2000/2944/2150 -f 2005/2947/2153 2001/3570/2686 2003/2945/2151 -f 2001/3570/2686 2002/3571/2591 2003/2945/2151 -f 2003/2945/2151 2004/3572/2687 1994/2946/2152 -f 1966/2948/2154 1965/3132/2688 1939/2949/2155 -f 2007/2951/2157 1714/2958/2157 1713/2952/2157 -f 2008/2953/2158 1960/2956/2158 1959/2954/2158 -f 1961/2955/2159 1959/3573/2159 1960/2956/2159 -f 1713/2952/2160 1714/2958/1948 1961/2955/2161 -f 2007/2951/2163 1959/2954/2120 1961/2955/2164 -f 1958/2909/2166 1938/2906/2166 1937/2959/2166 -f 1963/2911/2167 1962/2910/2167 1937/2959/2167 -f 2008/2953/2104 1713/2952/2104 2006/2957/2104 -f 1969/2916/2125 1968/3006/2681 2010/2960/2168 -f 1708/2964/2172 1709/3574/2689 2012/3575/2690 -f 1709/3574/2689 2011/3576/2689 2012/3575/2690 -f 1708/2964/2172 2012/3575/2690 2013/2962/2170 -f 2013/2962/2170 2014/3577/2691 1707/2963/2171 -f 2016/2965/2173 2017/3311/2173 2018/2966/2174 -f 2018/2968/2175 1965/3578/2175 1966/2969/2175 -f 1707/2972/2177 2014/3579/2692 2006/2973/2104 -f 2006/2973/2104 1939/3580/2104 1708/2971/2176 -f 1939/3580/2104 2011/3581/2104 1709/3582/2104 -f 1709/3582/2104 1708/2971/2176 1939/3580/2104 -f 1936/2974/2178 1963/3583/2179 1714/2975/2179 -f 2019/2977/2180 2020/2983/2693 2021/2978/2181 -f 2022/2980/2183 2023/3584/2694 2019/2981/2184 -f 2020/2983/2186 2023/3127/2694 2022/2984/2183 -f 2024/2985/2187 2025/3123/2695 2026/2986/2188 -f 2027/2988/2190 1995/2987/2696 2026/2986/2191 -f 2028/2989/2192 2025/3123/2697 2024/2985/2193 -f 1935/2990/2194 1715/3585/2194 1714/2991/2195 -f 1936/2995/2198 1995/3586/2698 1934/3587/2699 -f 1934/3587/2699 1935/2993/2197 1936/2995/2198 -f 1713/2976/2178 1712/3588/2147 1995/2996/2199 -f 2029/2997/2200 2030/3000/2204 2031/2998/2201 -f 2029/2997/2200 1984/2930/2700 2032/2999/2203 -f 2032/2999/2203 1984/2930/2700 2034/3001/2205 -f 2035/3003/2207 2036/3004/2328 1985/2929/2202 -f 2038/3005/2209 2010/2960/2701 1968/3006/2210 -f 2039/3008/2212 2040/3057/2265 2041/3009/2213 -f 2075/3051/2259 2061/3365/2567 2060/3053/2261 -f 2060/3053/2261 2062/3096/2310 2078/3055/2263 -f 2057/3058/2266 2080/3064/2274 2081/3059/2267 -f 1775/2681/1979 1777/3536/1998 1810/3065/2009 -f 1810/3065/2009 1787/2690/1988 1771/2674/1972 -f 1771/2674/1972 1773/2678/1976 1810/3065/2009 -f 2086/3068/2280 2081/3059/2278 2087/3069/2281 -f 2067/3036/2294 2074/3048/2702 2073/3085/2295 -f 2106/3101/2314 2057/3026/2703 2104/3099/2315 -f 2108/3103/2317 2109/3378/2580 2110/3104/2318 -f 1717/2631/1928 1718/2644/1941 1695/2635/1932 -f 2118/3589/2704 2112/3590/2705 2116/3591/2706 -f 2112/3590/2705 1682/3111/2333 2115/3110/2332 -f 1682/3111/2333 1685/3592/2707 2113/3593/2708 -f 1685/3592/2707 1687/3594/2709 2113/3593/2708 -f 2116/3591/2706 2117/3595/2710 2118/3589/2704 -f 2115/3110/2332 2116/3591/2706 2112/3590/2705 -f 1682/3111/2333 2113/3593/2708 2114/3109/2331 -f 2121/3114/2337 2090/3073/2563 2041/3009/2338 -f 2082/3060/2268 2089/3071/2284 2124/3117/2344 -f 2127/3133/2354 2128/3161/2711 2129/3134/2355 -f 2133/3138/2365 2134/3167/2402 2135/3139/2366 -f 2136/3141/2368 2137/3171/2407 2138/3142/2369 -f 2146/3208/1948 2147/3596/1948 2148/3375/1948 -f 2146/3208/1948 2148/3375/1948 2149/3172/1948 -f 2145/3597/1948 2146/3208/1948 2150/3151/2378 -f 2146/3208/1948 2149/3172/1948 2150/3151/2378 -f 1689/3150/2377 1690/3406/2712 2152/3169/2713 -f 2152/3169/2713 2145/3597/1948 1689/3150/2377 -f 2145/3597/1948 2150/3151/2378 1689/3150/2377 -f 2151/3173/2714 1626/3174/2715 1627/3149/2376 -f 2150/3151/2378 2151/3173/2714 1627/3149/2376 -f 2165/3165/2399 2163/3163/2394 2161/3160/2390 -f 1956/2904/2116 1955/2903/2115 2164/3164/2395 -f 2141/3145/2372 2163/3163/2403 2165/3165/2397 -f 1805/3168/2404 2145/3597/2404 2152/3169/2405 -f 2137/3171/2407 2136/3141/2368 2150/3151/2408 -f 2136/3141/2368 2108/3103/2317 2151/3173/2410 -f 1626/3174/2411 2151/3173/2410 2108/3103/2317 -f 2172/3598/2716 2167/3177/2414 2171/3176/2413 -f 2167/3177/2414 2168/3599/2717 2170/3175/2412 -f 2168/3599/2717 2169/3600/2120 2170/3175/2412 -f 1988/3601/2590 2173/3602/2718 1640/3180/1889 -f 2173/3602/2718 2174/3178/2415 1640/3180/1889 -f 2174/3178/2415 1638/3603/2431 1641/3179/1890 -f 2169/3182/2417 2175/3604/2719 1925/3183/2418 -f 1925/3183/2418 2176/3605/2720 2170/3181/2416 -f 2176/3605/2720 2177/3606/2721 2170/3181/2416 -f 2177/3606/2721 2171/3607/2722 2170/3181/2416 -f 2172/3608/2723 2171/3609/2724 2178/3610/2725 -f 2171/3609/2724 2177/3611/1948 2178/3610/2725 -f 2187/3612/2726 2188/3613/2727 2172/3608/2723 -f 2184/3186/2420 2185/3614/2728 2180/3615/2729 -f 2185/3614/2728 2186/3616/2730 2179/3617/2731 -f 2180/3615/2729 2185/3614/2728 2179/3617/2731 -f 2186/3616/2730 2187/3612/2726 2178/3610/2725 -f 2187/3612/2726 2172/3608/2723 2178/3610/2725 -f 2186/3616/2730 2178/3610/2725 2179/3617/2731 -f 2180/3615/2729 2181/3184/2419 2184/3186/2420 -f 2181/3184/2419 2182/3618/1948 2183/3185/1948 -f 1638/2580/2732 1988/3187/2733 1637/3188/2733 -f 2189/3189/2426 1995/3619/2426 1994/3190/2426 -f 1717/2631/1928 1694/3108/2330 1693/3192/2427 -f 1971/3193/2428 2000/3620/2734 2190/3621/2735 -f 2192/3622/2736 1707/3623/2737 1706/3624/2738 -f 2191/3194/2429 2192/3622/2736 1706/3624/2738 -f 1971/3193/2428 2190/3621/2735 2191/3194/2429 -f 2191/3194/2429 1706/3624/2738 1972/3195/2430 -f 2158/3157/2432 2159/3158/2739 2193/3197/2433 -f 2197/3200/2435 2194/3412/2441 1986/3198/2139 -f 2194/3412/2441 2195/3411/2609 2196/3625/2740 -f 1986/3198/2139 2194/3412/2441 2196/3625/2740 -f 1678/3626/1948 1679/3627/1948 1648/3628/1948 -f 1648/3628/1948 1647/3629/1948 1646/3630/1948 -f 1646/3630/1948 1651/3631/1948 1655/3203/1948 -f 1655/3203/1948 1654/3632/1948 1681/3633/1948 -f 1654/3632/1948 1656/3634/1948 1681/3633/1948 -f 1656/3634/1948 1680/3635/1948 1681/3633/1948 -f 1681/3633/1948 1675/3636/1948 1676/3201/1948 -f 1676/3201/1948 1677/3637/1948 2198/3202/1948 -f 2198/3202/1948 1678/3626/1948 1648/3628/1948 -f 1648/3628/1948 1646/3630/1948 2198/3202/1948 -f 1646/3630/1948 1655/3203/1948 2198/3202/1948 -f 1681/3633/1948 1676/3201/1948 1655/3203/1948 -f 1975/3206/2437 1974/3638/2741 2177/3639/2742 -f 2177/3639/2742 2199/3204/2436 1975/3206/2437 -f 1805/3168/2440 1803/3170/2743 2202/3640/2744 -f 1803/3170/2743 2201/3377/2743 2202/3640/2744 -f 2202/3640/2744 2203/3641/2745 1805/3168/2440 -f 2203/3641/2745 2204/3359/2746 2205/3207/2438 -f 2205/3207/2438 2147/3596/2747 2146/3208/2439 -f 2146/3208/2439 2145/3597/2748 1805/3168/2440 -f 2203/3641/2745 2205/3207/2438 1805/3168/2440 -f 1665/2600/1901 1668/2599/1901 1644/3213/1892 -f 1652/2591/1895 1653/2590/1895 1871/3214/2063 -f 2206/3215/2063 1871/3214/2063 1657/2594/1897 -f 1673/2605/1904 1674/3504/1904 1667/3216/1900 -f 2207/3217/2443 2208/3642/2449 2209/3218/2444 -f 1798/3643/2749 1801/3220/2446 1800/3222/2448 -f 1801/3220/2446 1803/3644/2750 1805/3221/2447 -f 1805/3221/2447 1807/3645/2751 1800/3222/2448 -f 1807/3645/2751 1809/3646/2752 1800/3222/2448 -f 1809/3646/2752 1796/3647/2753 1800/3222/2448 -f 1796/3647/2753 1797/3648/2754 1800/3222/2448 -f 1800/3222/2448 1802/3649/2755 1811/3650/2756 -f 1802/3649/2755 1804/3651/2757 1806/3652/2758 -f 1808/3653/2759 1802/3649/2755 1806/3652/2758 -f 1808/3653/2759 1811/3650/2756 1802/3649/2755 -f 1811/3650/2756 1799/3654/2760 1800/3222/2448 -f 1799/3654/2760 1798/3643/2749 1800/3222/2448 -f 2208/3223/2449 1996/3655/2761 2211/3224/2450 -f 2173/3226/2353 2207/3656/2353 2210/3227/2451 -f 2112/3229/2452 2118/3657/2762 1722/3230/2453 -f 1683/3232/2455 1682/2606/2763 2112/3229/2452 -f 2217/3658/2764 2212/3659/2765 2216/3235/2458 -f 2212/3659/2765 1698/3233/2456 2216/3235/2458 -f 1701/3660/2766 2213/3661/2767 2214/3662/2768 -f 1701/3660/2766 2214/3662/2768 1698/3233/2456 -f 2214/3662/2768 2215/3234/2457 1698/3233/2456 -f 2218/3236/2459 2212/3240/2460 2217/3237/2460 -f 1699/3239/2461 1698/2614/2461 2212/3240/2461 -f 1730/2646/1943 1688/3523/2672 1697/3241/2462 -f 1894/3242/1896 1893/3247/1902 1669/3243/1902 -f 1669/2602/1902 1980/3436/2132 2220/3245/2132 -f 1657/3246/1897 1895/3552/2769 1894/3242/1896 -f 1893/3247/1948 1892/2853/1948 1902/2847/1948 -f 1902/2847/1948 1896/3284/1948 1979/2924/1948 -f 1896/3284/1948 1879/2837/1948 1979/2924/1948 -f 2221/3248/2463 1986/3663/2463 2196/3249/2464 -f 2223/3251/2465 1896/3284/2498 1902/2847/2069 -f 1890/3252/2466 1792/3258/2472 1905/3253/2467 -f 1882/3254/2468 2224/3264/2478 2225/3255/2469 -f 1883/3256/2470 2225/3255/2469 1904/3257/2471 -f 1890/3252/2466 1889/3263/2477 1793/2692/1990 -f 1897/3259/2473 2226/3283/2497 2227/3260/2474 -f 1888/3262/2476 1794/2693/1991 1793/2692/1990 -f 1881/3261/2475 2227/3260/2474 2224/3264/2478 -f 1860/3265/2479 2226/3283/2497 2223/3251/2465 -f 1887/2845/2066 1899/2844/2065 1794/2693/1991 -f 1866/3267/2481 1867/3300/2513 1899/2844/2065 -f 1858/3268/2482 1859/3266/2480 2223/3251/2465 -f 1903/2848/2070 1905/3253/2467 1868/3269/2483 -f 1901/2849/2071 1903/2848/2070 1857/3270/2484 -f 1865/3271/2485 1866/3267/2481 1898/2846/2068 -f 1904/3257/2471 2225/3255/2469 1863/3272/2486 -f 1905/3253/2467 1792/3258/2472 1791/3274/2488 -f 2225/3255/2469 2224/3264/2478 1862/3275/2489 -f 2224/3264/2478 2227/3260/2474 1861/3276/2490 -f 1914/3277/2491 1913/3304/2516 1789/3278/2492 -f 1910/3280/2494 1860/3309/2521 1859/3281/2495 -f 1860/3265/2479 1861/3276/2490 2227/3260/2474 -f 1896/3284/2498 2223/3251/2465 2226/3283/2497 -f 1932/3285/2499 1858/3290/2504 1857/3286/2500 -f 1946/3288/2502 1914/3277/2491 1867/3279/2493 -f 1918/3282/2496 1859/3281/2495 1858/3290/2504 -f 1927/3291/2505 1926/3294/2508 1865/3292/2506 -f 1926/3294/2508 1946/3288/2502 1866/3289/2503 -f 1907/3295/2509 1927/3291/2505 1864/3293/2507 -f 1930/3296/2501 1857/3664/2500 1868/3297/2510 -f 1789/3299/2512 1794/2693/1991 1899/2844/2065 -f 1931/3301/2511 1868/3665/2510 1791/3302/2514 -f 1913/3304/2516 1923/3306/2518 1790/3305/2517 -f 1923/3306/2518 1922/3303/2515 1791/3302/2514 -f 1932/2878/2100 1930/3553/2677 1929/2874/2096 -f 1909/3307/2519 1906/2854/2076 1862/2856/2078 -f 1900/2851/2073 1904/3257/2471 1864/3273/2487 -f 1914/2861/2083 1946/3556/2678 1945/2891/2107 -f 1910/3280/2494 1909/3307/2519 1861/3308/2520 -f 1928/2876/2098 1931/2875/2097 1922/3310/2522 -f 2013/2962/2170 2012/3575/2690 2017/3311/2173 -f 2228/3312/2523 2229/3666/2523 2230/3313/2524 -f 2231/3315/2525 2232/3320/2525 1951/2898/2112 -f 1948/3316/2526 1949/3327/2532 2233/3317/2527 -f 2235/3319/2528 2236/3332/2536 2232/3320/2525 -f 2238/3321/2529 2239/3328/2530 2240/3322/2530 -f 1947/3324/2531 1948/3316/2526 2234/3318/2526 -f 1952/3326/2113 1943/3555/2105 1942/2888/2105 -f 1954/3314/2524 2230/3313/2524 2233/3317/2527 -f 2239/3328/2530 2229/3666/2523 2228/3312/2523 -f 2242/3329/2533 2243/3333/2534 2244/3330/2534 -f 1947/3324/2531 2241/3325/2531 2236/3332/2536 -f 1941/2890/2106 1944/2889/2106 2244/3330/2534 -f 2245/3331/2535 2238/3321/2529 2237/3323/2529 -f 2228/3334/2537 1928/3338/2098 1921/3335/2090 -f 1921/3335/2090 1920/3342/2092 2237/3337/2539 -f 2228/3334/2537 1954/2902/2114 1929/2901/2096 -f 1912/3339/2082 1915/3667/2084 2243/3340/2540 -f 1920/3342/2092 1912/3339/2082 2242/3341/2541 -f 2243/3340/2540 1915/3667/2084 1945/3343/2107 -f 1945/3343/2107 1925/3347/2093 1942/3345/2543 -f 1953/3346/2544 1942/3345/2543 1925/3347/2093 -f 1924/3348/2095 1917/3350/2103 1950/3349/2545 -f 1917/3350/2103 1916/3352/2085 2231/3351/2546 -f 1916/3352/2085 1908/3354/2079 2235/3353/2547 -f 1908/3354/2079 1911/3668/2081 1947/3355/2110 -f 2246/3356/2548 2247/3669/2548 2174/3357/2451 -f 2249/3361/2120 2148/3375/2120 2205/3207/2120 -f 2148/3375/2120 2147/3596/2120 2205/3207/2120 -f 2205/3207/2120 2204/3359/2120 2249/3361/2120 -f 2009/2961/2169 2120/3113/2335 2034/3001/2571 -f 2011/3374/1918 1939/3670/1918 2018/3671/1918 -f 1939/3670/1918 1965/3672/1918 2018/3671/1918 -f 2018/3671/1918 2017/3372/1918 2011/3374/1918 -f 2249/3361/2576 2137/3171/2407 2149/3172/2409 -f 1803/3170/2406 2252/3405/2603 2253/3376/2578 -f 2108/3103/2317 2136/3141/2368 2139/3143/2370 -f 2138/3142/2369 2137/3171/2407 2249/3361/2576 -f 2043/3379/2584 2157/3156/2770 2156/3155/2585 -f 1870/3380/2063 1895/3552/2769 1657/3246/1897 -f 2169/3673/2771 2168/3674/2772 1831/3383/2589 -f 2168/3674/2772 2254/3675/2773 1832/3676/2774 -f 2168/3674/2772 1832/3676/2774 1831/3383/2589 -f 2258/3677/2179 2175/3678/2179 2169/3673/2771 -f 2257/3382/2588 2258/3677/2179 2169/3673/2771 -f 1844/3679/2775 2255/3680/2776 2256/3381/2587 -f 2169/3673/2771 1831/3383/2589 2257/3382/2588 -f 1831/3383/2589 1844/3679/2775 2256/3381/2587 -f 2002/3385/2591 2001/3681/2686 2259/3386/2592 -f 1987/3388/1918 1986/3682/2593 2221/3389/2593 -f 1914/3392/2179 1946/3683/2179 1930/3393/2595 -f 1946/3683/2179 1926/3684/2777 1930/3393/2595 -f 1926/3684/2777 1927/3685/2179 1930/3393/2595 -f 1927/3685/2179 1907/3686/2179 1930/3393/2595 -f 1907/3686/2179 1906/3687/2778 1930/3393/2595 -f 1906/3687/2778 1909/3688/2778 1930/3393/2595 -f 1909/3688/2778 1910/3689/2778 1930/3393/2595 -f 1910/3689/2778 1918/3690/2779 1930/3393/2595 -f 1918/3690/2779 1932/3691/2780 1930/3393/2595 -f 1930/3393/2595 1931/3692/2781 1922/3693/2782 -f 1922/3693/2782 1923/3694/2594 1930/3393/2595 -f 1923/3694/2594 1913/3391/2594 1930/3393/2595 -f 1699/3396/2598 2218/3695/2783 2260/3696/2784 -f 2218/3695/2783 2219/3697/2785 2260/3696/2784 -f 2262/3394/2596 2263/3698/2786 1700/3395/2597 -f 1699/3396/2598 2260/3696/2784 2261/3699/2787 -f 2261/3699/2787 2262/3394/2596 1699/3396/2598 -f 1730/2646/1943 1728/2643/1940 1629/2641/1938 -f 1814/2817/2014 1815/3700/2016 1840/3398/2058 -f 2265/3701/2788 2264/3702/2789 1976/3401/2602 -f 2264/3702/2789 2188/3399/2600 1976/3401/2602 -f 2013/3703/2353 2016/3704/2353 2014/3403/2353 -f 2016/3704/2353 2015/3404/2353 2014/3403/2353 -f 2015/3404/2353 1966/3705/2353 2006/3402/2353 -f 2252/3405/2603 1803/3170/2406 2152/3169/2405 -f 2267/3408/2606 2254/3706/2790 2168/3707/2791 -f 2167/3409/2607 2172/3708/2792 2188/3709/2793 -f 2267/3408/2606 2168/3707/2791 2167/3409/2607 -f 2188/3709/2793 2266/3407/2605 2167/3409/2607 -f 2194/3412/2441 1638/3199/2431 2174/3710/2415 -f 2174/3710/2415 2247/3410/2608 2194/3412/2441 -f 2155/3711/2794 2143/3712/2795 2153/3713/2796 -f 2143/3712/2795 2144/3714/2797 2153/3713/2796 -f 2144/3714/2797 2166/3715/2798 2153/3713/2796 -f 1627/3414/2611 2043/3716/2799 2162/3415/2612 -f 2043/3716/2799 2153/3713/2796 2166/3715/2798 -f 2162/3415/2612 2043/3716/2799 2166/3715/2798 -f 2162/3415/2612 2160/3717/2800 1689/3413/2610 -f 2157/3417/2614 2043/3718/2801 1627/3719/2802 -f 1626/3418/2615 2111/3720/2803 2159/3416/2613 -f 2111/3720/2803 2110/3721/2804 2193/3722/2805 -f 2111/3720/2803 2193/3722/2805 2159/3416/2613 -f 2157/3417/2614 1627/3719/2802 1626/3418/2615 -f 1957/3723/2806 2253/3724/2807 1955/3725/2808 -f 2253/3724/2807 2252/3726/2809 1955/3725/2808 -f 1690/3419/2616 1689/3727/2810 2129/3728/2811 -f 1689/3727/2810 2160/3729/2812 2130/3730/2813 -f 1689/3727/2810 2130/3730/2813 2129/3728/2811 -f 2164/3421/2618 1955/3725/2808 2252/3726/2809 -f 1690/3419/2616 2129/3728/2811 2161/3420/2617 -f 2164/3421/2618 2252/3726/2809 1690/3419/2616 -f 2010/2960/2622 2038/3005/2814 2251/3368/2623 -f 2085/3067/2277 2080/3064/2279 2047/3425/2288 -f 2265/3427/2625 1976/3731/2129 1975/3428/2626 -f 2265/3732/2815 2200/3733/2816 2278/3734/2817 -f 2200/3733/2816 2199/3735/2818 2268/3736/2819 -f 2200/3733/2816 2268/3736/2819 2278/3734/2817 -f 2278/3734/2817 2264/3737/2820 2265/3732/2815 -f 1746/3738/2821 2278/3734/2817 2268/3736/2819 -f 1746/3738/2821 2268/3736/2819 2269/3739/2822 -f 2277/3740/2823 1746/3738/2821 2269/3739/2822 -f 2277/3740/2823 2269/3739/2822 2270/3741/2824 -f 2276/3742/2825 2277/3740/2823 2270/3741/2824 -f 2276/3742/2825 2270/3741/2824 2271/3743/2826 -f 2275/3744/2827 2276/3742/2825 2195/3432/2629 -f 2276/3742/2825 2271/3743/2826 2195/3432/2629 -f 2271/3743/2826 2272/3745/2828 2195/3432/2629 -f 2247/3746/2829 2246/3747/2830 2274/3748/2831 -f 2274/3748/2831 2275/3744/2827 2195/3432/2629 -f 2273/3430/2627 2222/3749/1948 2196/3431/2628 -f 2272/3745/2828 2273/3430/2627 2195/3432/2629 -f 2195/3432/2629 2247/3746/2829 2274/3748/2831 -f 1710/3750/2832 1709/3751/2833 2191/3433/2631 -f 2191/3433/2631 2190/3752/2834 1970/3434/2632 -f 2190/3752/2834 1999/3753/2835 1970/3434/2632 -f 1973/3435/2633 1710/3750/2832 2191/3433/2631 -f 1671/2604/1903 1672/2603/1903 2220/3245/2132 -f 1980/2923/2132 1669/3243/1902 1893/3247/1902 -f 1988/3439/2636 1987/3754/2594 2001/3755/2836 -f 1987/3754/2594 2259/3756/2594 2001/3755/2836 -f 2001/3755/2836 2005/3757/2837 1993/3437/2634 -f 2005/3757/2837 1994/3758/2146 1993/3437/2634 -f 2207/3759/2838 2173/3760/2779 2208/3761/2839 -f 2173/3760/2779 1988/3439/2636 1997/3438/2635 -f 2208/3761/2839 2173/3760/2779 1997/3438/2635 -f 1997/3438/2635 1996/3762/2840 2208/3761/2839 -f 1988/3439/2636 2001/3755/2836 1993/3437/2634 -f 2280/3440/2637 1712/3763/2637 1996/3441/2638 -f 2282/3443/2639 2283/3447/2639 2284/3444/2640 -f 2285/3446/2641 2286/3497/2641 2283/3447/2639 -f 2281/3445/2640 2284/3444/2640 2288/3448/2642 -f 2290/3450/2643 2291/3498/2643 2292/3451/2644 -f 2294/3453/2645 2289/3452/2644 2292/3451/2644 -f 2298/3455/2646 2297/3458/2647 2296/3456/2647 -f 2297/3458/2647 2300/3501/2648 2299/3459/2648 -f 2304/3460/2649 2303/3496/2649 2302/3461/2650 -f 2293/3454/2645 2306/3764/2651 2305/3463/2651 -f 2308/3464/2652 2298/3455/2646 2295/3457/2646 -f 2309/3466/2647 2310/3495/2648 2300/3467/2648 -f 2311/3469/2646 2309/3466/2647 2297/3468/2647 -f 2312/3471/2652 2311/3469/2646 2298/3470/2646 -f 2313/3473/2651 2312/3471/2652 2308/3472/2652 -f 2314/3475/2645 2313/3473/2651 2306/3474/2651 -f 2315/3477/2644 2314/3475/2645 2293/3476/2645 -f 2316/3479/2643 2315/3477/2644 2292/3478/2644 -f 2317/3481/2642 2316/3479/2643 2291/3480/2643 -f 2318/3483/2640 2317/3481/2642 2288/3482/2642 -f 2283/3485/2639 2286/3489/2641 2320/3486/2641 -f 2319/3487/2639 2318/3483/2640 2284/3484/2640 -f 2321/3488/2649 2320/3486/2641 2286/3489/2641 -f 2322/3491/2650 2321/3488/2649 2304/3490/2649 -f 2324/3493/2653 2322/3491/2650 2301/3492/2650 -f 2310/3495/2648 2324/3493/2653 2323/3494/2653 -f 2303/3496/2649 2304/3460/2649 2286/3497/2641 -f 2287/3449/2642 2288/3448/2642 2291/3498/2643 -f 2305/3463/2651 2306/3764/2651 2308/3464/2652 -f 2323/3499/2653 2301/3462/2650 2302/3461/2650 -f 2300/3501/2648 2323/3499/2653 2325/3500/2653 +f 2210/3541/2727 2212/3542/2728 2209/3543/2729 +f 2214/3544/2730 2216/3545/2731 2213/3546/2732 +f 2211/3547/2733 2218/3548/2734 2212/3542/2728 +f 2215/3549/2735 2220/3550/2736 2216/3545/2731 +f 2217/3551/2737 2222/3552/2738 2218/3548/2734 +f 2219/3553/2739 2223/3554/2740 2220/3550/2736 +f 2221/3555/2741 2225/3556/2742 2222/3552/2738 +f 2223/3554/2740 2205/3557/2743 2226/3558/2744 +f 2225/3556/2742 2227/3559/2745 2228/3560/2746 +f 2226/3558/2744 2229/3561/2747 2230/3562/2748 +f 2227/3559/2745 2232/3563/2749 2228/3560/2746 +f 2230/3562/2748 2233/3564/2750 2234/3565/2751 +f 2231/3566/2752 2236/3567/2753 2232/3563/2749 +f 2234/3565/2751 2210/3541/2727 2209/3543/2729 +f 2235/3568/2754 2213/3546/2732 2236/3567/2753 +f 2237/3569/2755 2239/3570/2756 2240/3571/2757 +f 2225/3556/2758 2213/3546/2758 2226/3558/2758 +f 2241/3572/2759 2243/3573/2760 2244/3574/2759 +f 2245/3575/2761 2247/3576/2762 2242/3577/2763 +f 2238/3578/2764 2249/3579/2765 2239/3570/2756 +f 2250/3580/2766 2247/3576/2762 2246/3581/2767 +f 2252/3582/2768 2249/3579/2765 2248/3583/2769 +f 2207/3584/2770 2255/3585/2771 2251/3586/2772 +f 2252/3582/2768 2257/3587/2773 2253/3588/2774 +f 2254/3589/2775 2208/3590/2776 2207/3584/2770 +f 2259/3591/2777 2257/3587/2773 2256/3592/2778 +f 2262/3593/2779 2263/3594/2780 2208/3590/2776 +f 2259/3591/2777 2265/3595/2781 2260/3596/2782 +f 2266/3597/2783 2262/3593/2779 2261/3598/2784 +f 2268/3599/2785 2265/3595/2781 2264/3600/2786 +f 2266/3597/2783 2240/3571/2757 2267/3601/2787 +f 2268/3599/2785 2242/3577/2763 2241/3602/2788 +f 2239/3603/2789 2270/3604/2790 2240/3605/2790 +f 2247/3606/2791 2243/3573/2760 2242/3607/2760 +f 2249/3608/2792 2269/3609/2789 2239/3603/2789 +f 2251/3610/2793 2271/3611/2791 2247/3606/2791 +f 2253/3612/2794 2272/3613/2792 2249/3608/2792 +f 2255/3614/2795 2273/3615/2793 2251/3610/2793 +f 2257/3616/2796 2274/3617/2794 2253/3612/2794 +f 2255/3614/2795 2277/3618/2797 2275/3619/2795 +f 2260/3620/2798 2276/3621/2796 2257/3616/2796 +f 2263/3622/2797 2279/3623/2799 2277/3618/2797 +f 2260/3620/2798 2280/3624/2800 2278/3625/2798 +f 2267/3626/2801 2279/3623/2799 2262/3627/2799 +f 2265/3628/2800 2244/3574/2759 2280/3624/2800 +f 2240/3605/2790 2281/3629/2801 2267/3626/2801 +f 2282/3630/2802 2224/3631/2803 2221/3632/2741 +f 2284/3633/2804 2210/3634/2727 2233/3635/2750 +f 2286/3636/2805 2231/3637/2752 2227/3638/2745 +f 2285/3639/2806 2211/3640/2733 2210/3634/2727 +f 2289/3641/2807 2221/3632/2741 2217/3642/2737 +f 2283/3643/2808 2227/3638/2745 2224/3631/2803 +f 2287/3644/2809 2235/3645/2754 2231/3637/2752 +f 2288/3646/2810 2217/3642/2737 2211/3640/2733 +f 2208/3538/2811 2229/3647/2747 2205/3539/2743 +f 2292/3648/2812 2219/3649/2739 2215/3650/2735 +f 2290/3651/2813 2214/3652/2730 2235/3645/2754 +f 2291/3653/2814 2233/3635/2750 2229/3647/2747 +f 2294/3654/2815 2215/3650/2735 2214/3652/2730 +f 2293/3655/2816 2206/3537/2817 2219/3649/2739 +f 2296/3656/2818 2298/3657/2819 2295/3658/2820 +f 2246/3659/2767 2299/3660/2821 2300/3661/2822 +f 2295/3658/2820 2302/3662/2823 2301/3663/2824 +f 2246/3659/2767 2303/3664/2825 2250/3665/2766 +f 2301/3663/2824 2305/3666/2826 2304/3667/2827 +f 2254/3668/2775 2303/3664/2825 2306/3669/2828 +f 2304/3667/2827 2308/3670/2829 2307/3671/2830 +f 2309/3672/2831 2306/3669/2828 2310/3673/2832 +f 2307/3671/2830 2311/3674/2833 2259/3675/2777 +f 2312/3676/2834 2310/3673/2832 2313/3677/2835 +f 2259/3675/2777 2314/3678/2836 2264/3679/2786 +f 2315/3680/2837 2313/3677/2835 2316/3681/2838 +f 2264/3679/2786 2317/3682/2839 2268/3683/2785 +f 2296/3656/2818 2316/3681/2838 2297/3684/2840 +f 2245/3685/2761 2317/3682/2839 2299/3660/2821 +f 2306/3686/2828 2300/3687/2822 2311/3688/2833 +f 2207/3584/2770 2263/3594/2780 2255/3585/2771 +f 2210/3541/2727 2211/3547/2733 2212/3542/2728 +f 2214/3544/2730 2215/3549/2735 2216/3545/2731 +f 2211/3547/2733 2217/3551/2737 2218/3548/2734 +f 2215/3549/2735 2219/3553/2739 2220/3550/2736 +f 2217/3551/2737 2221/3555/2741 2222/3552/2738 +f 2219/3553/2739 2206/3689/2817 2223/3554/2740 +f 2221/3555/2741 2224/3690/2803 2225/3556/2742 +f 2223/3554/2740 2206/3689/2817 2205/3557/2743 +f 2225/3556/2742 2224/3690/2803 2227/3559/2745 +f 2226/3558/2744 2205/3557/2743 2229/3561/2747 +f 2227/3559/2745 2231/3566/2752 2232/3563/2749 +f 2230/3562/2748 2229/3561/2747 2233/3564/2750 +f 2231/3566/2752 2235/3568/2754 2236/3567/2753 +f 2234/3565/2751 2233/3564/2750 2210/3541/2727 +f 2235/3568/2754 2214/3544/2730 2213/3546/2732 +f 2237/3569/2755 2238/3578/2764 2239/3570/2756 +f 2218/3548/2758 2222/3552/2758 2225/3556/2758 +f 2225/3556/2758 2228/3560/2758 2232/3563/2758 +f 2232/3563/2758 2236/3567/2758 2225/3556/2758 +f 2236/3567/2758 2213/3546/2758 2225/3556/2758 +f 2213/3546/2758 2216/3545/2758 2226/3558/2758 +f 2216/3545/2758 2220/3550/2758 2226/3558/2758 +f 2220/3550/2758 2223/3554/2758 2226/3558/2758 +f 2226/3558/2758 2230/3562/2758 2212/3542/2758 +f 2230/3562/2758 2234/3565/2758 2212/3542/2758 +f 2234/3565/2758 2209/3543/2758 2212/3542/2758 +f 2212/3542/2758 2218/3548/2758 2225/3556/2758 +f 2212/3542/2758 2225/3556/2758 2226/3558/2758 +f 2241/3572/2759 2242/3607/2760 2243/3573/2760 +f 2245/3575/2761 2246/3581/2767 2247/3576/2762 +f 2238/3578/2764 2248/3583/2769 2249/3579/2765 +f 2250/3580/2766 2251/3586/2772 2247/3576/2762 +f 2252/3582/2768 2253/3588/2774 2249/3579/2765 +f 2251/3586/2772 2250/3580/2766 2207/3584/2770 +f 2250/3580/2766 2254/3589/2775 2207/3584/2770 +f 2252/3582/2768 2256/3592/2778 2257/3587/2773 +f 2254/3589/2775 2258/3691/2841 2208/3590/2776 +f 2259/3591/2777 2260/3596/2782 2257/3587/2773 +f 2208/3590/2776 2258/3691/2841 2261/3598/2784 +f 2261/3598/2784 2262/3593/2779 2208/3590/2776 +f 2259/3591/2777 2264/3600/2786 2265/3595/2781 +f 2266/3597/2783 2267/3601/2787 2262/3593/2779 +f 2268/3599/2785 2241/3602/2788 2265/3595/2781 +f 2266/3597/2783 2237/3569/2755 2240/3571/2757 +f 2268/3599/2785 2245/3575/2761 2242/3577/2763 +f 2239/3603/2789 2269/3609/2789 2270/3604/2790 +f 2247/3606/2791 2271/3611/2791 2243/3573/2760 +f 2249/3608/2792 2272/3613/2792 2269/3609/2789 +f 2251/3610/2793 2273/3615/2793 2271/3611/2791 +f 2253/3612/2794 2274/3617/2794 2272/3613/2792 +f 2255/3614/2795 2275/3619/2795 2273/3615/2793 +f 2257/3616/2796 2276/3621/2796 2274/3617/2794 +f 2255/3614/2795 2263/3622/2797 2277/3618/2797 +f 2260/3620/2798 2278/3625/2798 2276/3621/2796 +f 2263/3622/2797 2262/3627/2799 2279/3623/2799 +f 2260/3620/2798 2265/3628/2800 2280/3624/2800 +f 2267/3626/2801 2281/3629/2801 2279/3623/2799 +f 2265/3628/2800 2241/3572/2759 2244/3574/2759 +f 2240/3605/2790 2270/3604/2790 2281/3629/2801 +f 2282/3630/2802 2283/3643/2808 2224/3631/2803 +f 2284/3633/2804 2285/3639/2806 2210/3634/2727 +f 2286/3636/2805 2287/3644/2809 2231/3637/2752 +f 2285/3639/2806 2288/3646/2810 2211/3640/2733 +f 2289/3641/2807 2282/3630/2802 2221/3632/2741 +f 2283/3643/2808 2286/3636/2805 2227/3638/2745 +f 2287/3644/2809 2290/3651/2813 2235/3645/2754 +f 2288/3646/2810 2289/3641/2807 2217/3642/2737 +f 2208/3538/2811 2291/3653/2814 2229/3647/2747 +f 2292/3648/2812 2293/3655/2816 2219/3649/2739 +f 2290/3651/2813 2294/3654/2815 2214/3652/2730 +f 2291/3653/2814 2284/3633/2804 2233/3635/2750 +f 2294/3654/2815 2292/3648/2812 2215/3650/2735 +f 2293/3655/2816 2207/3540/2842 2206/3537/2817 +f 2296/3656/2818 2297/3684/2840 2298/3657/2819 +f 2246/3659/2767 2245/3685/2761 2299/3660/2821 +f 2295/3658/2820 2298/3657/2819 2302/3662/2823 +f 2246/3659/2767 2300/3661/2822 2303/3664/2825 +f 2301/3663/2824 2302/3662/2823 2305/3666/2826 +f 2254/3668/2775 2250/3665/2766 2303/3664/2825 +f 2304/3667/2827 2305/3666/2826 2308/3670/2829 +f 2309/3672/2831 2254/3668/2775 2306/3669/2828 +f 2307/3671/2830 2308/3670/2829 2311/3674/2833 +f 2312/3676/2834 2309/3672/2831 2310/3673/2832 +f 2259/3675/2777 2311/3674/2833 2314/3678/2836 +f 2315/3680/2837 2312/3676/2834 2313/3677/2835 +f 2264/3679/2786 2314/3678/2836 2317/3682/2839 +f 2296/3656/2818 2315/3680/2837 2316/3681/2838 +f 2245/3685/2761 2268/3683/2785 2317/3682/2839 +f 2325/3692/2843 2318/3693/2844 2319/3694/2845 +f 2319/3694/2845 2320/3695/2846 2321/3696/2847 +f 2321/3696/2847 2322/3697/2848 2323/3698/2849 +f 2323/3698/2849 2324/3699/2850 2306/3686/2828 +f 2306/3686/2828 2303/3700/2825 2300/3687/2822 +f 2300/3687/2822 2299/3701/2821 2317/3702/2839 +f 2317/3702/2839 2314/3703/2836 2300/3687/2822 +f 2314/3703/2836 2311/3688/2833 2300/3687/2822 +f 2311/3688/2833 2325/3692/2843 2323/3698/2849 +f 2325/3692/2843 2319/3694/2845 2323/3698/2849 +f 2319/3694/2845 2321/3696/2847 2323/3698/2849 +f 2323/3698/2849 2306/3686/2828 2311/3688/2833 +f 2207/3584/2770 2208/3590/2776 2263/3594/2780 diff --git a/src/main/resources/assets/hbm/models/weapons/tau.obj b/src/main/resources/assets/hbm/models/weapons/tau.obj index f0f981346..3c4f8c5fe 100644 --- a/src/main/resources/assets/hbm/models/weapons/tau.obj +++ b/src/main/resources/assets/hbm/models/weapons/tau.obj @@ -1,5143 +1,36 @@ # Blender v2.79 (sub 0) OBJ File: 'tau.blend' # www.blender.org -o Body -v 0.551005 -0.364964 2.574621 -v 0.525250 -0.409266 2.523377 -v 0.515690 -0.425405 2.453378 -v 0.524887 -0.409056 2.383378 -v 0.550376 -0.364602 2.332135 -v 0.585327 -0.303952 2.313378 -v 0.620376 -0.243358 2.332134 -v 0.646131 -0.199057 2.383378 -v 0.655690 -0.182918 2.453377 -v 0.646494 -0.199266 2.523377 -v 0.621005 -0.243721 2.574621 -v 0.586053 -0.304371 2.593377 -v 0.876733 -0.551959 2.548175 -v 0.843024 -0.591668 2.497790 -v 0.822599 -0.601533 2.428962 -v 0.820930 -0.578912 2.360134 -v 0.838465 -0.529865 2.309748 -v 0.870505 -0.467534 2.291306 -v 0.908465 -0.408621 2.309748 -v 0.942174 -0.368912 2.360134 -v 0.962599 -0.359046 2.428962 -v 0.964268 -0.381668 2.497789 -v 0.946733 -0.430715 2.548175 -v 0.914693 -0.493046 2.566617 -v 1.101227 -0.681570 2.469018 -v 1.055429 -0.714300 2.423376 -v 1.018491 -0.714631 2.361029 -v 1.000308 -0.682476 2.298681 -v 1.005754 -0.626449 2.253039 -v 1.033369 -0.561564 2.236333 -v 1.075754 -0.505206 2.253039 -v 1.121552 -0.472476 2.298681 -v 1.158491 -0.472144 2.361028 -v 1.176673 -0.504300 2.423376 -v 1.171227 -0.560327 2.469018 -v 1.143612 -0.625212 2.485724 -v 1.256243 -0.771069 2.330546 -v 1.196166 -0.795555 2.298250 -v 1.139721 -0.784624 2.254134 -v 1.102032 -0.741206 2.210018 -v 1.093198 -0.676935 2.177722 -v 1.115587 -0.609032 2.165901 -v 1.163198 -0.555691 2.177722 -v 1.223275 -0.531206 2.210018 -v 1.279721 -0.542137 2.254134 -v 1.317410 -0.585554 2.298250 -v 1.326243 -0.649825 2.330546 -v 1.303855 -0.717729 2.342367 -v 1.334899 -0.816481 2.142498 -v 1.266247 -0.836016 2.129960 -v 1.198090 -0.818323 2.112834 -v 1.148689 -0.768143 2.095708 -v 1.131281 -0.698922 2.083170 -v 1.150531 -0.629207 2.078581 -v 1.201281 -0.577679 2.083170 -v 1.269932 -0.558143 2.095708 -v 1.338090 -0.575836 2.112834 -v 1.387491 -0.626016 2.129960 -v 1.404899 -0.695237 2.142498 -v 1.385649 -0.764952 2.147086 -v 1.345154 -0.822402 1.933423 -v 1.275257 -0.841218 1.936914 -v 1.205398 -0.822543 1.941684 -v 1.154295 -0.771381 1.946454 -v 1.135642 -0.701440 1.949945 -v 1.154436 -0.631462 1.951223 -v 1.205642 -0.580197 1.949945 -v 1.275539 -0.561381 1.946454 -v 1.345398 -0.580056 1.941684 -v 1.396501 -0.631218 1.936914 -v 1.415154 -0.701158 1.933423 -v 1.396360 -0.771136 1.932145 -v 1.310290 -0.802273 1.715737 -v 1.241624 -0.821800 1.728206 -v 1.173446 -0.804095 1.745240 -v 1.124025 -0.753904 1.762273 -v 1.106602 -0.684674 1.774743 -v 1.125847 -0.614956 1.779307 -v 1.176602 -0.563430 1.774743 -v 1.245268 -0.543904 1.762273 -v 1.313446 -0.561608 1.745240 -v 1.362868 -0.611800 1.728206 -v 1.380290 -0.681030 1.715737 -v 1.361046 -0.750748 1.711173 -v 1.248342 -0.766507 1.488676 -v 1.180748 -0.786653 1.505321 -v 1.114035 -0.769794 1.528057 -v 1.066078 -0.720448 1.550794 -v 1.049728 -0.651837 1.567438 -v 1.069365 -0.582346 1.573530 -v 1.119728 -0.530594 1.567438 -v 1.187322 -0.510448 1.550794 -v 1.254035 -0.527307 1.528057 -v 1.301991 -0.576653 1.505321 -v 1.318342 -0.645263 1.488676 -v 1.298705 -0.714755 1.482584 -v 1.172383 -0.722653 1.252446 -v 1.105165 -0.743015 1.270301 -v 1.038964 -0.726452 1.294692 -v 0.991519 -0.677402 1.319082 -v 0.975544 -0.609007 1.336938 -v 0.995318 -0.539595 1.343473 -v 1.045544 -0.487764 1.336938 -v 1.112763 -0.467401 1.319082 -v 1.178964 -0.483964 1.294692 -v 1.226408 -0.533015 1.270301 -v 1.242383 -0.601409 1.252446 -v 1.222609 -0.670821 1.245910 -v 1.094187 -0.677506 1.009806 -v 1.026658 -0.697689 1.026667 -v 0.960034 -0.680881 1.049699 -v 0.912166 -0.631587 1.072732 -v 0.895880 -0.563013 1.089593 -v 0.915541 -0.493536 1.095764 -v 0.965880 -0.441770 1.089593 -v 1.033409 -0.421587 1.072732 -v 1.100034 -0.438394 1.049699 -v 1.147902 -0.487689 1.026667 -v 1.164187 -0.556262 1.009806 -v 1.144526 -0.625740 1.003635 -v 1.025202 -0.637677 0.765133 -v 0.956826 -0.657371 0.778870 -v 0.889045 -0.639896 0.797636 -v 0.840020 -0.589934 0.816401 -v 0.822888 -0.520871 0.830139 -v 0.842239 -0.451215 0.835167 -v 0.892888 -0.399628 0.830139 -v 0.961264 -0.379933 0.816401 -v 1.029045 -0.397409 0.797636 -v 1.078070 -0.447371 0.778870 -v 1.095202 -0.516433 0.765133 -v 1.075851 -0.586090 0.760105 -v 0.976472 -0.609543 0.523846 -v 0.907032 -0.628623 0.531965 -v 0.837798 -0.610309 0.543057 -v 0.787320 -0.559507 0.554148 -v 0.769125 -0.489831 0.562268 -v 0.788086 -0.419949 0.565239 -v 0.839124 -0.368587 0.562268 -v 0.908564 -0.349507 0.554148 -v 0.977798 -0.367821 0.543057 -v 1.028276 -0.418623 0.531965 -v 1.046472 -0.488299 0.523846 -v 1.027510 -0.558181 0.520874 -v 0.958094 -0.598932 0.290518 -v 0.888094 -0.617689 0.290518 -v 0.818094 -0.598932 0.290518 -v 0.766850 -0.547689 0.290518 -v 0.748094 -0.477689 0.290518 -v 0.766850 -0.407689 0.290518 -v 0.818094 -0.356445 0.290518 -v 0.888094 -0.337689 0.290518 -v 0.958094 -0.356445 0.290518 -v 1.009338 -0.407689 0.290518 -v 1.028094 -0.477689 0.290518 -v 1.009338 -0.547689 0.290518 -v 0.000000 0.244981 -0.368932 -v 0.000000 0.244981 0.368932 -v 0.173227 0.173227 -0.368932 -v 0.173227 0.173227 0.368932 -v 0.244981 -0.000000 -0.368932 -v 0.244981 -0.000000 0.368932 -v 0.173227 -0.173227 -0.368932 -v 0.173227 -0.173227 0.368932 -v 0.000000 -0.244981 -0.368932 -v 0.000000 -0.244981 0.368932 -v -0.173227 -0.173227 -0.368932 -v -0.173227 -0.173228 0.368932 -v -0.244981 0.000000 -0.368932 -v -0.244981 0.000000 0.368932 -v -0.173227 0.173227 -0.368932 -v -0.173227 0.173227 0.368932 -v 0.825075 0.000002 0.000002 -v 0.722677 0.000002 0.247212 -v 0.475467 0.000002 0.349610 -v 0.228257 0.000002 0.247212 -v 0.125859 0.000002 0.000002 -v 0.228257 0.000002 -0.247208 -v 0.475467 0.000002 -0.349606 -v 0.722678 0.000002 -0.247208 -v 0.714536 0.412539 0.000002 -v 0.625857 0.361341 0.247212 -v 0.411767 0.237735 0.349610 -v 0.197676 0.114130 0.247212 -v 0.108997 0.062931 0.000002 -v 0.197676 0.114130 -0.247208 -v 0.411767 0.237735 -0.349606 -v 0.625857 0.361341 -0.247208 -v 0.412538 0.714538 0.000002 -v 0.361339 0.625859 0.247212 -v 0.237734 0.411769 0.349610 -v 0.114128 0.197678 0.247212 -v 0.062930 0.108999 0.000002 -v 0.114129 0.197678 -0.247208 -v 0.237734 0.411769 -0.349606 -v 0.361339 0.625859 -0.247208 -v 0.000000 0.825077 0.000002 -v 0.000000 0.722679 0.247212 -v 0.000000 0.475469 0.349610 -v 0.000000 0.228258 0.247212 -v 0.000000 0.125861 0.000002 -v 0.000000 0.228259 -0.247208 -v 0.000000 0.475469 -0.349606 -v 0.000000 0.722679 -0.247208 -v -0.412537 0.714538 0.000002 -v -0.361338 0.625859 0.247212 -v -0.237733 0.411769 0.349610 -v -0.114128 0.197678 0.247212 -v -0.062929 0.108999 0.000002 -v -0.114128 0.197678 -0.247208 -v -0.237733 0.411769 -0.349606 -v -0.361338 0.625859 -0.247208 -v -0.714536 0.412540 0.000002 -v -0.625857 0.361341 0.247212 -v -0.411766 0.237735 0.349610 -v -0.197676 0.114130 0.247212 -v -0.108997 0.062932 0.000002 -v -0.197676 0.114130 -0.247208 -v -0.411766 0.237735 -0.349606 -v -0.625857 0.361341 -0.247208 -v -0.825075 0.000002 0.000002 -v -0.722677 0.000002 0.247212 -v -0.475467 0.000002 0.349610 -v -0.228257 0.000002 0.247212 -v -0.125859 0.000002 0.000002 -v -0.228257 0.000002 -0.247208 -v -0.475467 0.000002 -0.349606 -v -0.722677 0.000002 -0.247208 -v -0.714536 -0.412536 0.000002 -v -0.625857 -0.361336 0.247212 -v -0.411766 -0.237732 0.349610 -v -0.197676 -0.114127 0.247212 -v -0.108997 -0.062928 0.000002 -v -0.197676 -0.114127 -0.247208 -v -0.411767 -0.237732 -0.349606 -v -0.625857 -0.361336 -0.247208 -v -0.412537 -0.714534 0.000002 -v -0.361338 -0.625855 0.247212 -v -0.237733 -0.411765 0.349610 -v -0.114128 -0.197675 0.247212 -v -0.062929 -0.108995 0.000002 -v -0.114128 -0.197674 -0.247208 -v -0.237733 -0.411765 -0.349606 -v -0.361338 -0.625855 -0.247208 -v 0.000000 -0.825073 0.000002 -v 0.000000 -0.722675 0.247212 -v 0.000000 -0.475466 0.349610 -v 0.000000 -0.228255 0.247212 -v 0.000000 -0.125858 0.000002 -v 0.000000 -0.228255 -0.247208 -v 0.000000 -0.475465 -0.349606 -v 0.000000 -0.722675 -0.247208 -v 0.412538 -0.714534 0.000002 -v 0.361339 -0.625855 0.247212 -v 0.237734 -0.411765 0.349610 -v 0.114128 -0.197675 0.247212 -v 0.062930 -0.108995 0.000002 -v 0.114129 -0.197675 -0.247208 -v 0.237734 -0.411765 -0.349606 -v 0.361339 -0.625855 -0.247208 -v 0.714536 -0.412536 0.000002 -v 0.625857 -0.361337 0.247212 -v 0.411767 -0.237732 0.349610 -v 0.197676 -0.114126 0.247212 -v 0.108997 -0.062928 0.000002 -v 0.197676 -0.114127 -0.247208 -v 0.411767 -0.237732 -0.349606 -v 0.625857 -0.361337 -0.247208 -v -0.375000 -1.363814 -2.375000 -v -0.375000 -0.863814 -2.375000 -v -0.375000 -1.363814 -3.124999 -v -0.375000 -0.863814 -3.124999 -v 0.375000 -1.363814 -2.375000 -v 0.375000 -0.863814 -2.375000 -v 0.375000 -1.363814 -3.124999 -v 0.375000 -0.863814 -3.124999 -v -0.375000 -0.496790 -5.624999 -v -0.375000 -1.746790 -5.624999 -v 0.375000 -1.746790 -5.624999 -v 0.375000 -0.496790 -5.624999 -v -0.249981 1.031888 -2.749502 -v 0.249981 1.031888 -2.749502 -v -0.249981 0.945274 -2.713625 -v 0.249981 0.945274 -2.713625 -v -0.249981 0.909398 -2.627011 -v 0.249981 0.909398 -2.627011 -v -0.249981 0.945275 -2.540398 -v 0.249981 0.945274 -2.540397 -v -0.249981 1.031888 -2.504521 -v 0.249981 1.031888 -2.504521 -v -0.249981 1.118502 -2.540398 -v 0.249981 1.118502 -2.540397 -v -0.249981 1.154378 -2.627011 -v 0.249981 1.154378 -2.627011 -v -0.249980 1.118502 -2.713625 -v 0.249981 1.118502 -2.713625 -v -0.249981 1.031888 -2.994483 -v 0.249981 1.031888 -2.994483 -v -0.249981 0.945274 -2.958606 -v 0.249981 0.945274 -2.958606 -v -0.249981 0.909398 -2.871992 -v 0.249981 0.909398 -2.871992 -v -0.249981 0.945274 -2.785378 -v 0.249981 0.945274 -2.785378 -v -0.249981 1.031888 -2.749502 -v 0.249981 1.031888 -2.749502 -v -0.249980 1.118502 -2.785378 -v 0.249981 1.118502 -2.785378 -v -0.249980 1.154378 -2.871992 -v 0.249981 1.154378 -2.871992 -v -0.249980 1.118502 -2.958606 -v 0.249981 1.118502 -2.958606 -v -0.250000 0.863920 -2.500000 -v -0.250000 0.926420 -2.500000 -v -0.250000 0.863920 -2.999999 -v -0.250000 0.926420 -2.999999 -v 0.250000 0.863920 -2.500000 -v 0.250000 0.926420 -2.500000 -v 0.312500 0.863920 -2.999999 -v 0.312500 0.926420 -2.999999 -v -0.312500 0.863920 -2.999999 -v -0.312500 0.863920 -2.500000 -v -0.312500 0.926420 -2.500000 -v -0.312500 0.926420 -2.999999 -v 0.250000 0.926420 -2.999999 -v 0.250000 0.863920 -2.999999 -v 0.312500 0.863920 -2.500000 -v 0.312500 0.926420 -2.500000 -v -0.312500 1.051420 -2.500000 -v -0.312500 1.051420 -2.999999 -v 0.312500 1.051420 -2.999999 -v 0.312500 1.051420 -2.500000 -v -0.250000 1.051420 -2.500000 -v -0.250000 1.051420 -2.999999 -v 0.250000 1.051420 -2.999999 -v 0.250000 1.051420 -2.500000 -v 0.207317 0.989929 -0.750546 -v 0.269079 0.989930 -0.750546 -v 0.207317 0.966012 -0.808289 -v 0.269079 0.966012 -0.808289 -v 0.207317 0.908269 -0.832206 -v 0.269079 0.908269 -0.832206 -v 0.207317 0.850527 -0.808289 -v 0.269079 0.850527 -0.808289 -v 0.207317 0.826609 -0.750546 -v 0.269079 0.826609 -0.750546 -v 0.207317 0.850527 -0.692804 -v 0.269079 0.850527 -0.692804 -v 0.207317 0.908269 -0.668886 -v 0.269079 0.908269 -0.668886 -v 0.207317 0.966012 -0.692804 -v 0.269079 0.966012 -0.692804 -v 0.295772 0.955105 -0.797381 -v 0.295772 0.974504 -0.750546 -v 0.295772 0.908269 -0.816781 -v 0.295772 0.861434 -0.797381 -v 0.295772 0.842034 -0.750546 -v 0.295772 0.861434 -0.703711 -v 0.295772 0.908269 -0.684311 -v 0.295772 0.955105 -0.703711 -v 0.207317 0.989929 -1.158847 -v 0.269080 0.989930 -1.158847 -v 0.207317 0.966012 -1.216590 -v 0.269079 0.966012 -1.216590 -v 0.207317 0.908269 -1.240508 -v 0.269080 0.908269 -1.240508 -v 0.207317 0.850527 -1.216590 -v 0.269080 0.850527 -1.216590 -v 0.207317 0.826609 -1.158848 -v 0.269080 0.826609 -1.158848 -v 0.207317 0.850527 -1.101105 -v 0.269080 0.850527 -1.101105 -v 0.207317 0.908269 -1.077187 -v 0.269079 0.908269 -1.077187 -v 0.207317 0.966012 -1.101105 -v 0.269080 0.966012 -1.101105 -v 0.295772 0.955105 -1.205683 -v 0.295772 0.974504 -1.158847 -v 0.295772 0.908269 -1.225083 -v 0.295772 0.861434 -1.205683 -v 0.295772 0.842034 -1.158848 -v 0.295772 0.861434 -1.112013 -v 0.295772 0.908269 -1.092613 -v 0.295772 0.955104 -1.112013 -v 0.207317 0.989929 -1.567149 -v 0.269079 0.989929 -1.567149 -v 0.207317 0.966012 -1.624892 -v 0.269079 0.966012 -1.624892 -v 0.207317 0.908269 -1.648810 -v 0.269080 0.908269 -1.648810 -v 0.207317 0.850527 -1.624892 -v 0.269080 0.850527 -1.624892 -v 0.207317 0.826609 -1.567149 -v 0.269079 0.826609 -1.567149 -v 0.207317 0.850527 -1.509407 -v 0.269079 0.850527 -1.509407 -v 0.207317 0.908269 -1.485489 -v 0.269080 0.908269 -1.485489 -v 0.207317 0.966012 -1.509406 -v 0.269079 0.966012 -1.509407 -v 0.295772 0.955105 -1.613984 -v 0.295772 0.974504 -1.567149 -v 0.295772 0.908269 -1.633384 -v 0.295772 0.861434 -1.613984 -v 0.295772 0.842034 -1.567149 -v 0.295772 0.861434 -1.520314 -v 0.295772 0.908269 -1.500914 -v 0.295772 0.955105 -1.520314 -v 0.207317 0.989929 -1.975451 -v 0.269079 0.989930 -1.975451 -v 0.207317 0.966012 -2.033194 -v 0.269079 0.966012 -2.033194 -v 0.207317 0.908269 -2.057111 -v 0.269079 0.908269 -2.057111 -v 0.207317 0.850527 -2.033194 -v 0.269079 0.850527 -2.033194 -v 0.207317 0.826609 -1.975451 -v 0.269079 0.826609 -1.975451 -v 0.207317 0.850527 -1.917708 -v 0.269079 0.850527 -1.917708 -v 0.207317 0.908269 -1.893791 -v 0.269079 0.908269 -1.893791 -v 0.207317 0.966012 -1.917708 -v 0.269079 0.966012 -1.917708 -v 0.295772 0.955105 -2.022286 -v 0.295772 0.974504 -1.975451 -v 0.295772 0.908269 -2.041686 -v 0.295772 0.861434 -2.022286 -v 0.295772 0.842034 -1.975451 -v 0.295772 0.861434 -1.928616 -v 0.295772 0.908269 -1.909216 -v 0.295772 0.955105 -1.928616 -v 0.567829 -0.284546 2.199322 -v 0.784319 -0.409536 2.199322 -v 0.481215 -0.434565 2.271075 -v 0.697705 -0.559556 2.271075 -v 0.445338 -0.496705 2.444303 -v 0.661828 -0.621696 2.444303 -v 0.481215 -0.434565 2.617530 -v 0.697705 -0.559556 2.617530 -v 0.567829 -0.284546 2.689283 -v 0.784319 -0.409536 2.689283 -v 0.654443 -0.134526 2.617530 -v 0.870933 -0.259516 2.617530 -v 0.690319 -0.072386 2.444303 -v 0.906809 -0.197376 2.444303 -v 0.654443 -0.134526 2.271075 -v 0.870933 -0.259517 2.271075 -v 0.872283 -0.218575 -0.312500 -v 0.872283 -0.218575 0.312500 -v 1.088790 -0.343575 -0.312500 -v 1.088789 -0.343575 0.312500 -v 1.088790 -0.593575 -0.312500 -v 1.088790 -0.593575 0.312500 -v 0.872283 -0.718575 -0.312500 -v 0.872283 -0.718575 0.312500 -v 0.655777 -0.593575 -0.312500 -v 0.655777 -0.593575 0.312500 -v 0.655777 -0.343575 -0.312500 -v 0.655777 -0.343575 0.312500 -v -0.475030 0.750921 1.869728 -v -0.475030 0.813421 1.869728 -v -0.475030 0.750921 0.369728 -v -0.475030 0.813420 0.369728 -v -0.412530 0.750921 1.869728 -v -0.412530 0.813421 1.869728 -v -0.412530 0.750921 0.369728 -v -0.412530 0.813420 0.369728 -v -0.475030 0.750921 1.932228 -v -0.412530 0.250921 1.869728 -v -0.412530 0.750921 1.932228 -v -0.475030 0.250921 1.869728 -v -0.475030 0.250921 1.932228 -v -0.412530 0.250921 1.932228 -v 0.475030 0.750921 1.869728 -v 0.475030 0.813421 1.869728 -v 0.475030 0.750921 0.369728 -v 0.475030 0.813420 0.369728 -v 0.412530 0.750921 1.869728 -v 0.412530 0.813420 1.869728 -v 0.412530 0.750920 0.369728 -v 0.412530 0.813420 0.369728 -v 0.475030 0.750921 1.932228 -v 0.412530 0.250921 1.869728 -v 0.412530 0.750921 1.932228 -v 0.475030 0.250921 1.869728 -v 0.475030 0.250921 1.932228 -v 0.412530 0.250921 1.932228 -v -0.475030 -0.750921 1.869728 -v -0.475030 -0.813421 1.869728 -v -0.475030 -0.750921 0.369728 -v -0.475030 -0.813421 0.369728 -v -0.412530 -0.750921 1.869728 -v -0.412530 -0.813421 1.869728 -v -0.412530 -0.750921 0.369728 -v -0.412530 -0.813421 0.369728 -v -0.475030 -0.750921 1.932228 -v -0.412530 -0.250921 1.869728 -v -0.412530 -0.750921 1.932228 -v -0.475030 -0.250921 1.869728 -v -0.475030 -0.250921 1.932228 -v -0.412530 -0.250921 1.932228 -v 0.475030 -0.750921 1.869728 -v 0.475030 -0.813421 1.869728 -v 0.475030 -0.750921 0.369728 -v 0.475030 -0.813421 0.369728 -v 0.412530 -0.750921 1.869728 -v 0.412530 -0.813421 1.869728 -v 0.412530 -0.750921 0.369728 -v 0.412530 -0.813421 0.369728 -v 0.475030 -0.750921 1.932228 -v 0.412530 -0.250921 1.869728 -v 0.412530 -0.750921 1.932228 -v 0.475030 -0.250921 1.869728 -v 0.475030 -0.250921 1.932228 -v 0.412530 -0.250921 1.932228 -v 0.536184 0.986795 -0.674615 -v 0.536184 0.611795 -0.674615 -v 0.531041 0.986795 -0.612327 -v 0.531041 0.611795 -0.612327 -v 0.473896 0.986795 -0.679757 -v 0.473896 0.611795 -0.679757 -v 0.468753 0.986795 -0.617469 -v 0.468753 0.611795 -0.617469 -v 0.531041 1.049295 -0.612327 -v 0.468753 1.049295 -0.617469 -v 0.304755 0.986795 2.128347 -v 0.242467 0.986795 2.123204 -v 0.304755 1.049295 2.128347 -v 0.242467 1.049295 2.123204 -v 0.299613 0.986795 2.190635 -v 0.237324 0.986795 2.185492 -v 0.242467 0.611795 2.123204 -v 0.304755 0.611795 2.128347 -v 0.299613 0.611795 2.190635 -v 0.237325 0.611795 2.185492 -v 0.500000 -0.500000 -0.889991 -v 0.500000 0.500000 -0.889991 -v 0.673228 -0.500000 -0.818238 -v 0.673228 0.500000 -0.818238 -v 0.744981 -0.500000 -0.645011 -v 0.744981 0.500000 -0.645011 -v 0.673228 -0.500000 -0.471783 -v 0.673228 0.500000 -0.471783 -v 0.500000 -0.500000 -0.400030 -v 0.500000 0.500000 -0.400030 -v 0.326772 -0.500000 -0.471783 -v 0.326772 0.500000 -0.471783 -v 0.255019 -0.500000 -0.645011 -v 0.255019 0.500000 -0.645011 -v 0.326772 -0.500000 -0.818238 -v 0.326773 0.500000 -0.818238 -v 0.586614 0.625000 -0.731624 -v 0.500000 0.625000 -0.767501 -v 0.622490 0.625000 -0.645011 -v 0.586614 0.625000 -0.558397 -v 0.500000 0.625000 -0.522520 -v 0.413386 0.625000 -0.558397 -v 0.377510 0.625000 -0.645011 -v 0.413386 0.625000 -0.731624 -v -0.250000 -0.750000 -0.375000 -v -0.250000 0.687500 -1.375000 -v -0.250000 -0.750000 -2.375000 -v -0.250000 0.750000 -2.375000 -v 0.250000 -0.750000 -0.375000 -v 0.250000 0.750000 -0.375000 -v 0.250000 -0.750000 -2.125000 -v 0.250000 0.687500 -2.125000 -v -0.250000 0.687500 -2.125000 -v -0.250000 -0.750000 -2.125000 -v 0.250000 -0.750000 -2.375000 -v 0.250000 0.687500 -2.375000 -v -0.250000 -0.750000 -1.375000 -v -0.250000 0.750000 -0.375000 -v 0.250000 0.687500 -1.375000 -v 0.250000 -0.750000 -1.375000 -v -0.250000 0.750000 -1.375000 -v -0.250000 0.750000 -2.125000 -v -0.250000 0.687500 -2.375000 -v 0.250000 0.750000 -2.375000 -v 0.250000 0.750000 -2.125000 -v 0.250000 0.750000 -1.375000 -v 0.250000 0.687500 -0.375000 -v -0.250000 0.687500 -0.375000 -v -0.250000 1.062500 -1.375000 -v -0.250000 1.062500 -1.937500 -v -0.250000 1.062500 -2.125000 -v 0.250000 1.062500 -2.125000 -v 0.250000 1.062500 -1.937499 -v 0.250000 1.062500 -1.375000 -v 0.250000 1.062500 -0.625000 -v -0.250000 1.062500 -0.625000 -v 0.000000 0.724446 2.000000 -v 0.000000 0.599488 3.000000 -v 0.362223 0.627389 2.000000 -v 0.299744 0.519172 3.000000 -v 0.627389 0.362223 2.000000 -v 0.519172 0.299744 3.000000 -v 0.724446 0.000000 2.000000 -v 0.599488 0.000000 3.000000 -v 0.627388 -0.362223 2.000000 -v 0.519172 -0.299744 3.000000 -v 0.362223 -0.627388 2.000000 -v 0.299744 -0.519172 3.000000 -v 0.000000 -0.724446 2.000000 -v 0.000000 -0.599488 3.000000 -v -0.362223 -0.627389 2.000000 -v -0.299744 -0.519172 3.000000 -v -0.627389 -0.362223 2.000000 -v -0.519172 -0.299744 3.000000 -v -0.724446 -0.000000 2.000000 -v -0.599488 -0.000000 3.000000 -v -0.627389 0.362223 2.000000 -v -0.519172 0.299744 3.000000 -v -0.362223 0.627388 2.000000 -v -0.299745 0.519172 3.000000 -v 0.000000 0.650771 1.803562 -v 0.325386 0.563584 1.803562 -v 0.563584 0.325386 1.803562 -v 0.650771 0.000000 1.803562 -v 0.563584 -0.325386 1.803562 -v 0.325386 -0.563584 1.803562 -v 0.000000 -0.650771 1.803562 -v -0.325385 -0.563585 1.803562 -v -0.563584 -0.325386 1.803562 -v -0.650771 -0.000000 1.803562 -v -0.563585 0.325385 1.803562 -v -0.325386 0.563584 1.803562 -v 0.000000 0.484842 1.637495 -v 0.242421 0.419886 1.637495 -v 0.419886 0.242421 1.637495 -v 0.484842 0.000000 1.637495 -v 0.419886 -0.242421 1.637495 -v 0.242421 -0.419886 1.637495 -v 0.000000 -0.484842 1.637495 -v -0.242421 -0.419886 1.637495 -v -0.419886 -0.242421 1.637495 -v -0.484842 -0.000000 1.637495 -v -0.419886 0.242421 1.637495 -v -0.242421 0.419886 1.637495 -v 0.000000 0.089117 1.515425 -v 0.044558 0.077177 1.515425 -v 0.077177 0.044558 1.515425 -v 0.089117 -0.000000 1.515425 -v 0.077177 -0.044558 1.515425 -v 0.044558 -0.077177 1.515425 -v 0.000000 -0.089117 1.515425 -v -0.044558 -0.077177 1.515425 -v -0.077177 -0.044558 1.515425 -v -0.089117 -0.000000 1.515425 -v -0.077177 0.044558 1.515425 -v -0.044558 0.077177 1.515425 -v 0.000000 0.170159 1.515425 -v 0.085079 0.147362 1.515425 -v 0.147362 0.085079 1.515425 -v 0.170159 -0.000000 1.515425 -v 0.147362 -0.085079 1.515425 -v 0.085079 -0.147362 1.515425 -v 0.000000 -0.170159 1.515425 -v -0.085079 -0.147362 1.515425 -v -0.147362 -0.085079 1.515425 -v -0.170159 -0.000000 1.515425 -v -0.147362 0.085079 1.515425 -v -0.085079 0.147362 1.515425 -v 0.000000 0.089118 0.220095 -v 0.044559 0.077178 0.220095 -v 0.077177 0.044559 0.220095 -v 0.089117 0.000001 0.220095 -v 0.077177 -0.044557 0.220095 -v 0.044558 -0.077176 0.220095 -v 0.000000 -0.089116 0.220095 -v -0.044558 -0.077177 0.220095 -v -0.077177 -0.044558 0.220095 -v -0.089117 0.000001 0.220095 -v -0.077177 0.044559 0.220095 -v -0.044559 0.077178 0.220095 -v 0.362223 0.627389 3.000000 -v 0.000000 0.724446 3.000000 -v 0.627388 0.362223 3.000000 -v 0.724446 0.000000 3.000000 -v 0.627389 -0.362223 3.000000 -v 0.362223 -0.627389 3.000000 -v 0.000000 -0.724446 3.000000 -v -0.362223 -0.627389 3.000000 -v -0.627389 -0.362223 3.000000 -v -0.724446 -0.000000 3.000000 -v -0.627389 0.362223 3.000000 -v -0.362223 0.627388 3.000000 -v 0.050433 0.087352 2.000000 -v 0.000000 0.100865 2.000000 -v 0.087351 0.050433 2.000000 -v 0.100865 0.000001 2.000000 -v 0.087351 -0.050432 2.000000 -v 0.050432 -0.087351 2.000000 -v 0.000000 -0.100864 2.000000 -v -0.050432 -0.087351 2.000000 -v -0.087352 -0.050432 2.000000 -v -0.100865 0.000001 2.000000 -v -0.087352 0.050433 2.000000 -v -0.050433 0.087352 2.000000 -v 0.362223 0.627389 4.000000 -v 0.000000 0.724446 4.000000 -v 0.627388 0.362223 4.000000 -v 0.724446 0.000000 4.000000 -v 0.627388 -0.362223 4.000000 -v 0.362223 -0.627389 4.000000 -v 0.000000 -0.724446 4.000000 -v -0.362223 -0.627389 4.000000 -v -0.627389 -0.362223 4.000000 -v -0.724446 -0.000000 4.000000 -v -0.627389 0.362223 4.000000 -v -0.362223 0.627388 4.000000 -v 0.299744 0.519172 4.000000 -v 0.000000 0.599488 4.000000 -v 0.519172 0.299744 4.000000 -v 0.599488 0.000000 4.000000 -v 0.519172 -0.299744 4.000000 -v 0.299744 -0.519172 4.000000 -v 0.000000 -0.599488 4.000000 -v -0.299744 -0.519172 4.000000 -v -0.519172 -0.299744 4.000000 -v -0.599488 -0.000000 4.000000 -v -0.519172 0.299744 4.000000 -v -0.299745 0.519172 4.000000 -v 0.299744 0.519173 2.000000 -v 0.000000 0.599489 2.000000 -v 0.519172 0.299745 2.000000 -v 0.599488 0.000001 2.000000 -v 0.519172 -0.299744 2.000000 -v 0.299744 -0.519171 2.000000 -v 0.000000 -0.599488 2.000000 -v -0.299744 -0.519171 2.000000 -v -0.519172 -0.299744 2.000000 -v -0.599488 0.000000 2.000000 -v -0.519172 0.299744 2.000000 -v -0.299744 0.519172 2.000000 -v 0.050432 0.087353 5.611448 -v 0.000000 0.100866 5.611448 -v 0.087351 0.050434 5.611448 -v 0.100865 0.000002 5.611448 -v 0.087351 -0.050431 5.611448 -v 0.050432 -0.087350 5.611448 -v 0.000000 -0.100863 5.611448 -v -0.050432 -0.087350 5.611448 -v -0.087352 -0.050431 5.611448 -v -0.100865 0.000002 5.611448 -v -0.087352 0.050434 5.611448 -v -0.050433 0.087353 5.611448 -v 0.500000 0.866025 -0.375000 -v 0.500000 0.866025 0.375000 -v 1.000000 -0.000000 -0.375000 -v 1.000000 -0.000000 0.375000 -v 0.500000 -0.866025 -0.375000 -v 0.500000 -0.866025 0.375000 -v -0.500000 -0.866025 -0.375000 -v -0.500000 -0.866025 0.375000 -v -1.000000 0.000000 -0.375000 -v -1.000000 -0.000000 0.375000 -v -0.500000 0.866025 -0.375000 -v -0.500000 0.866025 0.375000 -v 0.500000 0.866025 -3.125000 -v 0.500000 0.866025 -2.375000 -v 1.000000 -0.000000 -3.125000 -v 1.000000 -0.000000 -2.375000 -v 0.500000 -0.866026 -3.125000 -v 0.500000 -0.866025 -2.375000 -v -0.500000 -0.866025 -3.125000 -v -0.500000 -0.866025 -2.375000 -v -1.000000 -0.000000 -3.125000 -v -1.000000 -0.000000 -2.375000 -v -0.500000 0.866025 -3.125000 -v -0.500000 0.866025 -2.375000 -v -0.479958 0.986795 -0.679582 -v -0.479958 0.611795 -0.679582 -v -0.474815 0.986795 -0.617294 -v -0.474815 0.611795 -0.617294 -v -0.542246 0.986795 -0.674439 -v -0.542247 0.611795 -0.674439 -v -0.537103 0.986795 -0.612151 -v -0.537104 0.611795 -0.612151 -v -0.474816 1.049295 -0.617294 -v -0.537104 1.049295 -0.612151 -v -0.248530 0.986795 2.123379 -v -0.310818 0.986795 2.128522 -v -0.248530 1.049295 2.123379 -v -0.310818 1.049295 2.128522 -v -0.243387 0.986795 2.185668 -v -0.305675 0.986795 2.190811 -v -0.310818 0.611795 2.128522 -v -0.248530 0.611795 2.123379 -v -0.243387 0.611795 2.185668 -v -0.305675 0.611795 2.190811 -v -0.500000 -0.500000 -0.400030 -v -0.500000 0.500000 -0.400030 -v -0.673227 -0.500000 -0.471783 -v -0.673227 0.500000 -0.471783 -v -0.744981 -0.500000 -0.645011 -v -0.744981 0.500000 -0.645011 -v -0.673228 -0.500000 -0.818238 -v -0.673227 0.500000 -0.818238 -v -0.500000 -0.500000 -0.889992 -v -0.500000 0.500000 -0.889992 -v -0.326772 -0.500000 -0.818238 -v -0.326772 0.500000 -0.818238 -v -0.255019 -0.500000 -0.645011 -v -0.255019 0.500000 -0.645011 -v -0.326772 -0.500000 -0.471783 -v -0.326772 0.500000 -0.471783 -v -0.586614 0.625000 -0.558397 -v -0.500000 0.625000 -0.522520 -v -0.622490 0.625000 -0.645011 -v -0.586614 0.625000 -0.731624 -v -0.500000 0.625000 -0.767501 -v -0.413386 0.625000 -0.731625 -v -0.377510 0.625000 -0.645011 -v -0.413386 0.625000 -0.558397 -v -0.207317 0.989930 -0.750546 -v -0.269079 0.989930 -0.750546 -v -0.207317 0.966012 -0.808289 -v -0.269079 0.966012 -0.808289 -v -0.207317 0.908269 -0.832207 -v -0.269079 0.908269 -0.832207 -v -0.207317 0.850527 -0.808289 -v -0.269079 0.850527 -0.808289 -v -0.207317 0.826609 -0.750546 -v -0.269079 0.826609 -0.750546 -v -0.207317 0.850527 -0.692804 -v -0.269079 0.850527 -0.692804 -v -0.207317 0.908269 -0.668886 -v -0.269079 0.908269 -0.668886 -v -0.207317 0.966012 -0.692804 -v -0.269079 0.966012 -0.692804 -v -0.295772 0.955105 -0.797381 -v -0.295772 0.974504 -0.750546 -v -0.295772 0.908269 -0.816781 -v -0.295772 0.861434 -0.797381 -v -0.295772 0.842034 -0.750546 -v -0.295772 0.861434 -0.703711 -v -0.295772 0.908269 -0.684311 -v -0.295772 0.955105 -0.703711 -v -0.207317 0.989929 -1.158848 -v -0.269079 0.989929 -1.158848 -v -0.207317 0.966012 -1.216590 -v -0.269079 0.966012 -1.216590 -v -0.207317 0.908269 -1.240508 -v -0.269079 0.908269 -1.240508 -v -0.207317 0.850527 -1.216591 -v -0.269079 0.850527 -1.216591 -v -0.207317 0.826609 -1.158848 -v -0.269079 0.826609 -1.158848 -v -0.207317 0.850527 -1.101105 -v -0.269079 0.850527 -1.101106 -v -0.207317 0.908269 -1.077188 -v -0.269079 0.908269 -1.077188 -v -0.207317 0.966012 -1.101105 -v -0.269079 0.966012 -1.101105 -v -0.295772 0.955104 -1.205683 -v -0.295772 0.974504 -1.158848 -v -0.295772 0.908269 -1.225083 -v -0.295772 0.861434 -1.205683 -v -0.295772 0.842034 -1.158848 -v -0.295772 0.861434 -1.112013 -v -0.295772 0.908269 -1.092613 -v -0.295772 0.955104 -1.112013 -v -0.207317 0.989929 -1.567149 -v -0.269079 0.989929 -1.567149 -v -0.207317 0.966012 -1.624892 -v -0.269079 0.966012 -1.624892 -v -0.207317 0.908269 -1.648810 -v -0.269079 0.908269 -1.648810 -v -0.207317 0.850527 -1.624892 -v -0.269079 0.850527 -1.624892 -v -0.207317 0.826609 -1.567150 -v -0.269079 0.826609 -1.567150 -v -0.207317 0.850527 -1.509407 -v -0.269079 0.850527 -1.509407 -v -0.207317 0.908269 -1.485489 -v -0.269079 0.908269 -1.485489 -v -0.207317 0.966012 -1.509407 -v -0.269079 0.966012 -1.509407 -v -0.295772 0.955104 -1.613984 -v -0.295772 0.974504 -1.567149 -v -0.295772 0.908269 -1.633385 -v -0.295772 0.861434 -1.613985 -v -0.295772 0.842034 -1.567150 -v -0.295772 0.861434 -1.520314 -v -0.295772 0.908269 -1.500914 -v -0.295772 0.955104 -1.520314 -v -0.207317 0.989930 -1.975451 -v -0.269079 0.989930 -1.975451 -v -0.207317 0.966012 -2.033194 -v -0.269079 0.966012 -2.033194 -v -0.207317 0.908269 -2.057111 -v -0.269079 0.908269 -2.057111 -v -0.207317 0.850527 -2.033194 -v -0.269079 0.850527 -2.033194 -v -0.207317 0.826609 -1.975451 -v -0.269079 0.826609 -1.975451 -v -0.207317 0.850527 -1.917709 -v -0.269079 0.850527 -1.917709 -v -0.207317 0.908269 -1.893791 -v -0.269079 0.908269 -1.893791 -v -0.207317 0.966012 -1.917708 -v -0.269079 0.966012 -1.917708 -v -0.295772 0.955105 -2.022286 -v -0.295772 0.974504 -1.975451 -v -0.295772 0.908269 -2.041686 -v -0.295772 0.861434 -2.022286 -v -0.295772 0.842034 -1.975451 -v -0.295772 0.861434 -1.928616 -v -0.295772 0.908269 -1.909216 -v -0.295772 0.955105 -1.928616 -v 0.825075 0.000002 -2.749997 -v 0.722677 0.000002 -2.502787 -v 0.475467 0.000002 -2.400389 -v 0.228257 0.000002 -2.502787 -v 0.125859 0.000002 -2.749997 -v 0.228257 0.000002 -2.997207 -v 0.475467 0.000002 -3.099605 -v 0.722678 0.000002 -2.997207 -v 0.714536 0.412540 -2.749997 -v 0.625857 0.361341 -2.502787 -v 0.411767 0.237735 -2.400389 -v 0.197676 0.114130 -2.502787 -v 0.108997 0.062932 -2.749997 -v 0.197676 0.114130 -2.997207 -v 0.411767 0.237735 -3.099605 -v 0.625857 0.361341 -2.997207 -v 0.412538 0.714538 -2.749997 -v 0.361339 0.625859 -2.502787 -v 0.237734 0.411769 -2.400389 -v 0.114128 0.197678 -2.502787 -v 0.062930 0.108999 -2.749997 -v 0.114128 0.197678 -2.997207 -v 0.237734 0.411769 -3.099605 -v 0.361339 0.625859 -2.997207 -v 0.000000 0.825077 -2.749997 -v 0.000000 0.722679 -2.502787 -v 0.000000 0.475469 -2.400389 -v 0.000000 0.228259 -2.502787 -v 0.000000 0.125861 -2.749997 -v 0.000000 0.228259 -2.997207 -v 0.000000 0.475469 -3.099605 -v 0.000000 0.722679 -2.997207 -v -0.412537 0.714538 -2.749997 -v -0.361338 0.625859 -2.502788 -v -0.237733 0.411769 -2.400390 -v -0.114128 0.197678 -2.502787 -v -0.062929 0.108999 -2.749997 -v -0.114128 0.197678 -2.997207 -v -0.237733 0.411769 -3.099605 -v -0.361338 0.625859 -2.997207 -v -0.714536 0.412540 -2.749997 -v -0.625857 0.361341 -2.502788 -v -0.411767 0.237735 -2.400390 -v -0.197676 0.114130 -2.502787 -v -0.108997 0.062932 -2.749997 -v -0.197676 0.114130 -2.997207 -v -0.411766 0.237735 -3.099605 -v -0.625857 0.361341 -2.997207 -v -0.825075 0.000002 -2.749997 -v -0.722677 0.000002 -2.502788 -v -0.475467 0.000002 -2.400390 -v -0.228257 0.000002 -2.502787 -v -0.125859 0.000002 -2.749997 -v -0.228257 0.000002 -2.997207 -v -0.475467 0.000002 -3.099605 -v -0.722677 0.000002 -2.997207 -v -0.714536 -0.412536 -2.749997 -v -0.625857 -0.361336 -2.502787 -v -0.411767 -0.237732 -2.400389 -v -0.197676 -0.114126 -2.502787 -v -0.108997 -0.062928 -2.749997 -v -0.197676 -0.114127 -2.997207 -v -0.411767 -0.237732 -3.099605 -v -0.625857 -0.361336 -2.997207 -v -0.412537 -0.714534 -2.749997 -v -0.361338 -0.625855 -2.502787 -v -0.237733 -0.411765 -2.400389 -v -0.114128 -0.197674 -2.502787 -v -0.062929 -0.108995 -2.749997 -v -0.114128 -0.197675 -2.997207 -v -0.237733 -0.411765 -3.099605 -v -0.361338 -0.625855 -2.997207 -v 0.000000 -0.825073 -2.749997 -v 0.000000 -0.722675 -2.502787 -v 0.000000 -0.475466 -2.400389 -v 0.000000 -0.228255 -2.502787 -v 0.000000 -0.125858 -2.749997 -v 0.000000 -0.228255 -2.997207 -v 0.000000 -0.475465 -3.099605 -v 0.000000 -0.722675 -2.997207 -v 0.412538 -0.714534 -2.749997 -v 0.361339 -0.625855 -2.502787 -v 0.237734 -0.411765 -2.400389 -v 0.114129 -0.197675 -2.502787 -v 0.062930 -0.108995 -2.749997 -v 0.114128 -0.197674 -2.997207 -v 0.237734 -0.411765 -3.099605 -v 0.361339 -0.625855 -2.997207 -v 0.714536 -0.412536 -2.749997 -v 0.625857 -0.361337 -2.502787 -v 0.411767 -0.237732 -2.400389 -v 0.197676 -0.114126 -2.502787 -v 0.108997 -0.062928 -2.749997 -v 0.197676 -0.114126 -2.997207 -v 0.411767 -0.237732 -3.099605 -v 0.625857 -0.361337 -2.997207 -v 0.000000 0.244981 -2.381067 -v 0.000000 0.244981 -3.118932 -v -0.173227 0.173227 -2.381067 -v -0.173227 0.173227 -3.118932 -v -0.244980 -0.000000 -2.381067 -v -0.244981 -0.000000 -3.118932 -v -0.173227 -0.173228 -2.381067 -v -0.173227 -0.173228 -3.118932 -v 0.000000 -0.244981 -2.381067 -v 0.000000 -0.244981 -3.118932 -v 0.173228 -0.173228 -2.381067 -v 0.173228 -0.173228 -3.118932 -v 0.244981 -0.000000 -2.381067 -v 0.244981 -0.000000 -3.118932 -v 0.173228 0.173227 -2.381067 -v 0.173228 0.173227 -3.118932 -vt 0.246892 0.529648 -vt 0.264843 0.500743 -vt 0.282793 0.529648 -vt 0.456621 0.176471 -vt 0.511416 0.235294 -vt 0.456621 0.235294 -vt 0.817352 0.000000 -vt 1.000000 0.088235 -vt 0.817352 0.088235 -vt 0.511416 0.235294 -vt 0.456621 0.176471 -vt 0.511416 0.176471 -vt 0.762557 0.000000 -vt 0.726027 0.088235 -vt 0.726027 0.000000 -vt 0.452055 0.088235 -vt 0.397260 0.000000 -vt 0.452055 0.000000 -vt 0.726027 0.000000 -vt 0.634703 0.088235 -vt 0.634703 0.000000 -vt 0.694064 0.132353 -vt 0.694064 0.279412 -vt 0.694064 0.279412 -vt 0.118683 0.139406 -vt 0.109709 0.124955 -vt 0.118683 0.110505 -vt 0.125030 0.144208 -vt 0.118661 0.168966 -vt 0.112292 0.164718 -vt 0.118683 0.139406 -vt 0.109709 0.124955 -vt 0.118683 0.110505 -vt 0.125030 0.144208 -vt 0.118661 0.168966 -vt 0.112292 0.164718 -vt 0.063927 0.110294 -vt 0.059361 0.169118 -vt 0.059361 0.110294 -vt 0.004566 0.022059 -vt 0.041096 0.029412 -vt 0.004566 0.029412 -vt 0.009132 0.169118 -vt 0.013699 0.110294 -vt 0.013699 0.169118 -vt 0.041096 0.036765 -vt 0.004566 0.029412 -vt 0.041096 0.029412 -vt 0.018265 0.169118 -vt 0.054795 0.110294 -vt 0.054795 0.169118 -vt 0.013699 0.110294 -vt 0.050228 0.051471 -vt 0.050228 0.110294 -vt 0.000000 0.036765 -vt 0.000000 0.029412 -vt 0.041096 0.022059 -vt 0.045662 0.007353 -vt 0.045662 0.022059 -vt -0.000000 0.022059 -vt 0.045662 0.029412 -vt 0.018265 0.110294 -vt 0.045662 0.051471 -vt 0.041096 0.051471 -vt 0.045662 0.036765 -vt 0.004566 0.110294 -vt -0.000000 0.051471 -vt 0.004566 0.051471 -vt 0.059361 0.051471 -vt 0.063927 0.110294 -vt 0.059361 0.110294 -vt 0.013699 0.051471 -vt 0.004566 0.007353 -vt 0.000000 0.110294 -vt 0.009132 0.110294 -vt 0.073059 0.169118 -vt 0.063927 0.169118 -vt 0.004566 0.036765 -vt 0.223744 0.441176 -vt 0.219178 0.448529 -vt 0.219178 0.441176 -vt 0.223744 0.448529 -vt 0.219178 0.455882 -vt 0.223744 0.463235 -vt 0.219178 0.463235 -vt 0.219178 0.470588 -vt 0.219178 0.411765 -vt 0.223744 0.419118 -vt 0.219178 0.419118 -vt 0.223744 0.426471 -vt 0.219178 0.426471 -vt 0.219178 0.433824 -vt 0.223744 0.433824 -vt 0.228371 0.463247 -vt 0.232881 0.455984 -vt 0.237391 0.463247 -vt 0.223744 0.441176 -vt 0.219178 0.448529 -vt 0.219178 0.441176 -vt 0.223744 0.448529 -vt 0.219178 0.455882 -vt 0.223744 0.455882 -vt 0.219178 0.463235 -vt 0.223744 0.463235 -vt 0.219178 0.470588 -vt 0.219178 0.411765 -vt 0.223744 0.419118 -vt 0.219178 0.419118 -vt 0.223744 0.426471 -vt 0.219178 0.426471 -vt 0.223744 0.433824 -vt 0.219178 0.433824 -vt 0.228371 0.463247 -vt 0.236070 0.458111 -vt 0.237391 0.463247 -vt 0.223744 0.441176 -vt 0.219178 0.448529 -vt 0.219178 0.441176 -vt 0.223744 0.448529 -vt 0.219178 0.455882 -vt 0.223744 0.455882 -vt 0.219178 0.463235 -vt 0.223744 0.463235 -vt 0.219178 0.470588 -vt 0.223744 0.411765 -vt 0.219178 0.419118 -vt 0.219178 0.411765 -vt 0.223744 0.419118 -vt 0.219178 0.426471 -vt 0.223744 0.433824 -vt 0.219178 0.433824 -vt 0.228371 0.463247 -vt 0.236070 0.458111 -vt 0.237391 0.463247 -vt 0.219178 0.441176 -vt 0.223744 0.448529 -vt 0.219178 0.448529 -vt 0.223744 0.455882 -vt 0.219178 0.455882 -vt 0.219178 0.463235 -vt 0.223744 0.463235 -vt 0.219178 0.470588 -vt 0.219178 0.411765 -vt 0.223744 0.419118 -vt 0.219178 0.419118 -vt 0.219178 0.426471 -vt 0.223744 0.426471 -vt 0.219178 0.433824 -vt 0.223744 0.433824 -vt 0.228371 0.463247 -vt 0.236070 0.458111 -vt 0.237391 0.463247 -vt 0.365020 0.831345 -vt 0.346991 0.860377 -vt 0.346991 0.802313 -vt 0.347070 0.860426 -vt 0.328954 0.831254 -vt 0.365186 0.831254 -vt 0.397260 0.573529 -vt 0.415525 0.500000 -vt 0.415525 0.573529 -vt 0.433790 0.573529 -vt 0.452055 0.500000 -vt 0.452055 0.573529 -vt 0.342466 0.500000 -vt 0.360731 0.573529 -vt 0.342466 0.573529 -vt 0.360782 0.632318 -vt 0.360782 0.573830 -vt 0.376509 0.588452 -vt 0.360731 0.500000 -vt 0.378995 0.573529 -vt 0.378995 0.500000 -vt 0.345129 0.617702 -vt 0.360810 0.573965 -vt 0.360810 0.632280 -vt 0.301370 0.617647 -vt 0.296804 0.794118 -vt 0.296804 0.617647 -vt 0.305936 0.794118 -vt 0.310502 0.617647 -vt 0.310502 0.794118 -vt 0.296804 0.801471 -vt 0.293547 0.797798 -vt 0.296804 0.794118 -vt 0.292237 0.794118 -vt 0.301370 0.794118 -vt 0.305936 0.617647 -vt 0.296804 0.860294 -vt 0.301370 0.801471 -vt 0.301370 0.860294 -vt 0.301370 0.794118 -vt 0.301370 0.801471 -vt 0.304551 0.797798 -vt 0.292237 0.801471 -vt 0.296804 0.801471 -vt 0.305936 0.860294 -vt 0.310502 0.801471 -vt 0.310502 0.860294 -vt 0.305936 0.801471 -vt 0.296804 0.617647 -vt 0.301370 0.794118 -vt 0.296804 0.794118 -vt 0.310502 0.794118 -vt 0.305936 0.617647 -vt 0.310502 0.617647 -vt 0.301370 0.801471 -vt 0.301370 0.794118 -vt 0.304551 0.797798 -vt 0.292237 0.617647 -vt 0.305936 0.794118 -vt 0.301370 0.617647 -vt 0.301370 0.860294 -vt 0.296804 0.801471 -vt 0.301370 0.801471 -vt 0.296804 0.794118 -vt 0.296804 0.801471 -vt 0.293547 0.797798 -vt 0.296804 0.860294 -vt 0.292237 0.801471 -vt 0.310502 0.860294 -vt 0.305936 0.801471 -vt 0.310502 0.801471 -vt 0.305936 0.860294 -vt 0.296804 0.617647 -vt 0.301370 0.794118 -vt 0.296804 0.794118 -vt 0.310502 0.794118 -vt 0.305936 0.617647 -vt 0.310502 0.617647 -vt 0.296804 0.794118 -vt 0.296804 0.801471 -vt 0.296804 0.801471 -vt 0.292237 0.617647 -vt 0.305936 0.794118 -vt 0.301370 0.617647 -vt 0.301370 0.860294 -vt 0.301370 0.801471 -vt 0.301370 0.794118 -vt 0.304566 0.797886 -vt 0.301370 0.801471 -vt 0.296804 0.860294 -vt 0.292237 0.801471 -vt 0.310502 0.860294 -vt 0.305936 0.801471 -vt 0.310502 0.801471 -vt 0.305936 0.860294 -vt 0.301370 0.617647 -vt 0.296804 0.794118 -vt 0.296804 0.617647 -vt 0.305936 0.794118 -vt 0.310502 0.617647 -vt 0.310502 0.794118 -vt 0.296804 0.801471 -vt 0.293547 0.797798 -vt 0.296804 0.794118 -vt 0.292237 0.794118 -vt 0.301370 0.794118 -vt 0.305936 0.617647 -vt 0.296804 0.860294 -vt 0.301370 0.801471 -vt 0.301370 0.860294 -vt 0.301370 0.794118 -vt 0.301370 0.801471 -vt 0.304551 0.797798 -vt 0.292237 0.860294 -vt 0.296804 0.801471 -vt 0.305936 0.860294 -vt 0.310502 0.801471 -vt 0.310502 0.860294 -vt 0.305936 0.801471 -vt 0.438356 0.617647 -vt 0.442922 0.573529 -vt 0.442922 0.617647 -vt 0.433790 0.573529 -vt 0.433790 0.617647 -vt 0.447489 0.573529 -vt 0.452055 0.617647 -vt 0.447489 0.617647 -vt 0.442922 0.955882 -vt 0.447489 0.948529 -vt 0.447489 0.955882 -vt 0.449793 0.952194 -vt 0.447489 0.948529 -vt 0.442922 0.625000 -vt 0.447489 0.625000 -vt 0.440661 0.952194 -vt 0.442922 0.948529 -vt 0.449728 0.621287 -vt 0.447489 0.625000 -vt 0.447489 0.617647 -vt 0.452055 0.948529 -vt 0.452055 0.625000 -vt 0.438356 0.948529 -vt 0.433790 0.625000 -vt 0.438356 0.625000 -vt 0.442922 0.948529 -vt 0.447489 1.000000 -vt 0.442922 0.955882 -vt 0.447489 0.955882 -vt 0.442922 0.625000 -vt 0.440640 0.621287 -vt 0.442922 0.617647 -vt 0.452055 0.955882 -vt 0.452055 1.000000 -vt 0.438356 1.000000 -vt 0.433790 0.955882 -vt 0.438356 0.955882 -vt 0.442922 1.000000 -vt 0.311363 0.491158 -vt 0.311363 0.449920 -vt 0.336973 0.449920 -vt 0.461174 0.389597 -vt 0.454794 0.364793 -vt 0.461174 0.360537 -vt 0.397260 0.183824 -vt 0.292237 0.242647 -vt 0.292237 0.183824 -vt 0.397260 0.301471 -vt 0.452055 0.242647 -vt 0.452055 0.301471 -vt 0.292237 0.301471 -vt 0.397260 0.242647 -vt 0.164384 0.345588 -vt 0.164384 0.382353 -vt 0.146119 0.345588 -vt 0.164384 0.338235 -vt 0.146119 0.169118 -vt 0.164384 0.169118 -vt 0.456621 0.183824 -vt 0.438356 0.125000 -vt 0.456621 0.125000 -vt 0.073059 0.345588 -vt 0.114155 0.382353 -vt 0.073059 0.382353 -vt 0.127854 0.169118 -vt 0.146119 0.338235 -vt 0.127854 0.338235 -vt 0.219178 0.169118 -vt 0.292237 0.338235 -vt 0.219178 0.338235 -vt 0.073059 0.338235 -vt 0.000000 0.169118 -vt 0.073059 0.169118 -vt 0.365297 0.183824 -vt 0.292237 0.125000 -vt 0.365297 0.125000 -vt 0.127854 0.345588 -vt 0.127854 0.382353 -vt 0.146119 0.338235 -vt 0.219178 0.345588 -vt 0.000000 0.345588 -vt 0.000000 0.338235 -vt 0.415525 0.360294 -vt 0.374429 0.301471 -vt 0.415525 0.301471 -vt 0.429224 0.360294 -vt 0.374429 0.360294 -vt 0.319635 0.301471 -vt 0.273973 0.382353 -vt 0.219178 0.382353 -vt 0.178082 0.382353 -vt 0.292237 0.301471 -vt 0.319635 0.360294 -vt 0.292237 0.360294 -vt 0.018265 0.382353 -vt 0.456621 0.360294 -vt 0.429224 0.301471 -vt 0.456621 0.301471 -vt 0.136986 0.709860 -vt 0.132428 0.718583 -vt 0.132428 0.708120 -vt 0.136986 0.671709 -vt 0.132428 0.663573 -vt 0.136986 0.665350 -vt 0.136986 0.620841 -vt 0.132428 0.629490 -vt 0.132428 0.619027 -vt 0.136986 0.576331 -vt 0.132428 0.584943 -vt 0.132428 0.574480 -vt 0.136986 0.538180 -vt 0.132428 0.529933 -vt 0.136986 0.531821 -vt 0.136986 0.493670 -vt 0.132428 0.485387 -vt 0.136986 0.487312 -vt 0.136986 0.983277 -vt 0.132428 0.975400 -vt 0.136986 0.976918 -vt 0.136986 0.938767 -vt 0.132428 0.930853 -vt 0.136986 0.932409 -vt 0.136986 0.894257 -vt 0.132428 0.886307 -vt 0.136986 0.887899 -vt 0.136986 0.843389 -vt 0.132428 0.852223 -vt 0.132428 0.841760 -vt 0.136986 0.798879 -vt 0.132428 0.807676 -vt 0.132428 0.797213 -vt 0.136986 0.760728 -vt 0.132428 0.752667 -vt 0.136986 0.754370 -vt 0.283105 1.000000 -vt 0.292237 0.963235 -vt 0.292237 1.000000 -vt 0.283105 0.889706 -vt 0.292237 0.926471 -vt 0.283105 0.926471 -vt 0.292237 0.852941 -vt 0.292237 0.889706 -vt 0.283105 0.816176 -vt 0.292237 0.779412 -vt 0.292237 0.816176 -vt 0.283105 0.742647 -vt 0.283105 0.779412 -vt 0.283105 0.705882 -vt 0.292237 0.669118 -vt 0.292237 0.705882 -vt 0.283105 0.669118 -vt 0.292237 0.632353 -vt 0.283105 0.558824 -vt 0.292237 0.595588 -vt 0.283105 0.595588 -vt 0.333333 0.750000 -vt 0.356164 0.764706 -vt 0.333333 0.764706 -vt 0.333333 0.764706 -vt 0.356164 0.779412 -vt 0.333333 0.779412 -vt 0.333333 0.779412 -vt 0.356164 0.794118 -vt 0.333333 0.794118 -vt 0.333333 0.735294 -vt 0.356164 0.750000 -vt 0.333333 0.750000 -vt 0.339272 0.940257 -vt 0.335669 0.999174 -vt 0.335669 0.941811 -vt 0.341909 0.936009 -vt 0.357083 0.989934 -vt 0.342874 0.930207 -vt 0.372759 0.964691 -vt 0.372759 0.895724 -vt 0.378497 0.930207 -vt 0.339272 0.920158 -vt 0.341909 0.924405 -vt 0.335669 0.861240 -vt 0.357083 0.870480 -vt 0.332065 0.920158 -vt 0.335669 0.918603 -vt 0.329428 0.924405 -vt 0.314254 0.870480 -vt 0.292840 0.930207 -vt 0.298578 0.895724 -vt 0.329428 0.936009 -vt 0.328463 0.930207 -vt 0.314254 0.989934 -vt 0.298578 0.964691 -vt 0.332065 0.940257 -vt 0.366313 0.854637 -vt 0.377921 0.843846 -vt 0.377921 0.854637 -vt 0.598173 0.647059 -vt 0.652968 0.529412 -vt 0.652968 0.647059 -vt 0.598173 0.411765 -vt 0.652968 0.411765 -vt 0.652968 0.294118 -vt 0.652968 1.000000 -vt 0.598173 0.882353 -vt 0.652968 0.882353 -vt 0.689694 0.984059 -vt 0.653239 0.882380 -vt 0.762606 0.780702 -vt 0.598173 0.764706 -vt 0.652968 0.764706 -vt 0.653606 0.647052 -vt 0.799654 0.647052 -vt 0.763142 0.748889 -vt 0.799087 0.647059 -vt 0.853881 0.529412 -vt 0.853881 0.647059 -vt 0.799087 0.529412 -vt 0.853881 0.411765 -vt 0.799087 0.411765 -vt 0.853881 0.294118 -vt 0.799087 1.000000 -vt 0.853881 0.882353 -vt 0.853881 1.000000 -vt 0.890927 0.983706 -vt 0.854535 0.882203 -vt 0.963713 0.780700 -vt 0.799087 0.764706 -vt 0.853881 0.764706 -vt 0.999895 0.647212 -vt 0.853771 0.647212 -vt 0.890302 0.545323 -vt 0.447489 0.955882 -vt 0.442922 1.000000 -vt 0.442922 0.955882 -vt 0.438356 1.000000 -vt 0.438356 0.955882 -vt 0.433790 1.000000 -vt 0.433790 0.955882 -vt 0.447489 0.948529 -vt 0.442922 0.955882 -vt 0.442922 0.948529 -vt 0.452055 1.000000 -vt 0.447489 1.000000 -vt 0.449775 0.952245 -vt 0.447489 0.955882 -vt 0.433790 0.625000 -vt 0.438356 0.948529 -vt 0.433790 0.948529 -vt 0.440634 0.952245 -vt 0.449814 0.621500 -vt 0.447489 0.625000 -vt 0.447489 0.617647 -vt 0.447489 0.625000 -vt 0.452055 0.948529 -vt 0.447489 0.948529 -vt 0.442922 0.625000 -vt 0.442922 0.948529 -vt 0.438356 0.625000 -vt 0.433790 0.573529 -vt 0.438356 0.617647 -vt 0.433790 0.617647 -vt 0.442922 0.617647 -vt 0.442922 0.625000 -vt 0.440812 0.621442 -vt 0.447489 0.617647 -vt 0.452055 0.573529 -vt 0.452055 0.617647 -vt 0.442922 0.573529 -vt 0.442922 0.617647 -vt 0.311363 0.491158 -vt 0.324168 0.441379 -vt 0.336973 0.449920 -vt 0.461174 0.389597 -vt 0.454794 0.364793 -vt 0.461174 0.360537 -vt 0.219178 0.441176 -vt 0.223744 0.448529 -vt 0.219178 0.448529 -vt 0.223744 0.455882 -vt 0.219178 0.455882 -vt 0.223744 0.463235 -vt 0.219178 0.463235 -vt 0.219178 0.470588 -vt 0.223744 0.411765 -vt 0.219178 0.419118 -vt 0.219178 0.411765 -vt 0.223744 0.419118 -vt 0.219178 0.426471 -vt 0.223744 0.433824 -vt 0.219178 0.433824 -vt 0.228371 0.463247 -vt 0.236070 0.458111 -vt 0.237391 0.463247 -vt 0.223744 0.441176 -vt 0.219178 0.448529 -vt 0.219178 0.441176 -vt 0.223744 0.455882 -vt 0.219178 0.455882 -vt 0.223744 0.463235 -vt 0.219178 0.463235 -vt 0.223744 0.470588 -vt 0.219178 0.470588 -vt 0.219178 0.411765 -vt 0.223744 0.419118 -vt 0.219178 0.419118 -vt 0.223744 0.426471 -vt 0.219178 0.426471 -vt 0.219178 0.433824 -vt 0.228371 0.463247 -vt 0.236070 0.458111 -vt 0.237391 0.463247 -vt 0.219178 0.441176 -vt 0.223744 0.448529 -vt 0.219178 0.448529 -vt 0.223744 0.455882 -vt 0.219178 0.455882 -vt 0.219178 0.463235 -vt 0.223744 0.470588 -vt 0.219178 0.470588 -vt 0.223744 0.411765 -vt 0.219178 0.419118 -vt 0.219178 0.411765 -vt 0.223744 0.426471 -vt 0.219178 0.426471 -vt 0.219178 0.433824 -vt 0.223744 0.433824 -vt 0.228371 0.463247 -vt 0.236070 0.458111 -vt 0.237391 0.463247 -vt 0.219178 0.441176 -vt 0.223744 0.448529 -vt 0.219178 0.448529 -vt 0.219178 0.455882 -vt 0.223744 0.455882 -vt 0.219178 0.463235 -vt 0.223744 0.470588 -vt 0.219178 0.470588 -vt 0.223744 0.411765 -vt 0.219178 0.419118 -vt 0.219178 0.411765 -vt 0.223744 0.419118 -vt 0.219178 0.426471 -vt 0.223744 0.426471 -vt 0.219178 0.433824 -vt 0.223744 0.433824 -vt 0.228371 0.463247 -vt 0.232881 0.455984 -vt 0.232881 0.470509 -vt 0.252150 0.509209 -vt 0.264843 0.500743 -vt 0.282793 0.529648 -vt 0.277535 0.550087 -vt 0.264843 0.558553 -vt 0.252150 0.550087 -vt 0.252150 0.509209 -vt 0.277535 0.509209 -vt 0.511416 0.176471 -vt 1.000000 0.000000 -vt 0.456621 0.235294 -vt 0.762557 0.088235 -vt 0.397260 0.088235 -vt 0.726027 0.088235 -vt 0.694064 0.132353 -vt 0.125028 0.114737 -vt 0.127657 0.124955 -vt 0.125028 0.135173 -vt 0.112337 0.135173 -vt 0.112337 0.114737 -vt 0.041096 0.007353 -vt -0.000000 0.029412 -vt 0.045662 0.029412 -vt -0.000000 0.110294 -vt 0.063927 0.051471 -vt 0.000000 0.007353 -vt 0.000000 0.169118 -vt 0.073059 0.110294 -vt 0.223744 0.455882 -vt 0.223744 0.470588 -vt 0.223744 0.411765 -vt 0.236070 0.468382 -vt 0.232881 0.470509 -vt 0.229692 0.468382 -vt 0.229692 0.458111 -vt 0.236070 0.458111 -vt 0.223744 0.470588 -vt 0.223744 0.411765 -vt 0.236070 0.468382 -vt 0.232881 0.470509 -vt 0.229692 0.468382 -vt 0.229692 0.458111 -vt 0.232881 0.455984 -vt 0.223744 0.470588 -vt 0.223744 0.426471 -vt 0.236070 0.468382 -vt 0.232881 0.470509 -vt 0.229692 0.468382 -vt 0.229692 0.458111 -vt 0.232881 0.455984 -vt 0.223744 0.441176 -vt 0.223744 0.470588 -vt 0.223744 0.411765 -vt 0.236070 0.468382 -vt 0.232881 0.470509 -vt 0.229692 0.468382 -vt 0.229692 0.458111 -vt 0.232881 0.455984 -vt 0.328962 0.831345 -vt 0.334242 0.810816 -vt 0.359739 0.810816 -vt 0.359739 0.851874 -vt 0.334242 0.851874 -vt 0.347070 0.802082 -vt 0.359880 0.810626 -vt 0.359880 0.851882 -vt 0.334260 0.851882 -vt 0.334260 0.810626 -vt 0.397260 0.500000 -vt 0.433790 0.500000 -vt 0.376509 0.617696 -vt 0.345054 0.617696 -vt 0.345054 0.588452 -vt 0.376492 0.617702 -vt 0.345129 0.588544 -vt 0.376492 0.588544 -vt 0.438356 0.573529 -vt 0.452055 0.573529 -vt 0.433790 0.948529 -vt 0.433790 1.000000 -vt 0.342277 0.470539 -vt 0.336973 0.491158 -vt 0.324168 0.499699 -vt 0.306060 0.470539 -vt 0.324168 0.441379 -vt 0.467554 0.364793 -vt 0.470197 0.375067 -vt 0.467554 0.385341 -vt 0.454794 0.385341 -vt 0.452151 0.375067 -vt 0.397260 0.242647 -vt 0.292237 0.242647 -vt 0.438356 0.183824 -vt 0.146119 0.169118 -vt 0.292237 0.169118 -vt 0.292237 0.183824 -vt 0.146119 0.345588 -vt 0.292237 0.345588 -vt 0.136986 0.716219 -vt 0.132428 0.674036 -vt 0.136986 0.627199 -vt 0.136986 0.582690 -vt 0.132428 0.540397 -vt 0.132428 0.495850 -vt 0.132428 0.985863 -vt 0.132428 0.941316 -vt 0.132428 0.896770 -vt 0.136986 0.849748 -vt 0.136986 0.805238 -vt 0.132428 0.763130 -vt 0.283105 0.963235 -vt 0.283105 0.852941 -vt 0.292237 0.742647 -vt 0.283105 0.632353 -vt 0.292237 0.558824 -vt 0.356164 0.750000 -vt 0.356164 0.764706 -vt 0.356164 0.779412 -vt 0.356164 0.735294 -vt 0.375468 0.858587 -vt 0.372117 0.860033 -vt 0.368766 0.858587 -vt 0.365415 0.849241 -vt 0.372117 0.838450 -vt 0.366313 0.843846 -vt 0.368766 0.839896 -vt 0.375468 0.839895 -vt 0.378819 0.849241 -vt 0.598173 0.529412 -vt 0.598173 0.294118 -vt 0.598173 1.000000 -vt 0.799061 0.882380 -vt 0.762606 0.984059 -vt 0.689694 0.780702 -vt 0.690118 0.748889 -vt 0.690118 0.545216 -vt 0.763142 0.545216 -vt 0.799087 0.294118 -vt 0.799087 0.882353 -vt 1.000105 0.882203 -vt 0.963713 0.983706 -vt 0.890927 0.780700 -vt 0.963364 0.545323 -vt 0.963364 0.749101 -vt 0.890302 0.749101 -vt 0.452055 0.955882 -vt 0.452055 0.625000 -vt 0.438356 0.573529 -vt 0.447489 0.573529 -vt 0.342277 0.470539 -vt 0.336973 0.491158 -vt 0.324168 0.499699 -vt 0.306060 0.470539 -vt 0.311363 0.449920 -vt 0.467554 0.364793 -vt 0.470197 0.375067 -vt 0.467554 0.385341 -vt 0.454794 0.385341 -vt 0.452151 0.375067 -vt 0.223744 0.441176 -vt 0.223744 0.470588 -vt 0.223744 0.426471 -vt 0.236070 0.468382 -vt 0.232881 0.470509 -vt 0.229692 0.468382 -vt 0.229692 0.458111 -vt 0.232881 0.455984 -vt 0.223744 0.448529 -vt 0.223744 0.411765 -vt 0.223744 0.433824 -vt 0.236070 0.468382 -vt 0.232881 0.470509 -vt 0.229692 0.468382 -vt 0.229692 0.458111 -vt 0.232881 0.455984 -vt 0.223744 0.441176 -vt 0.223744 0.463235 -vt 0.223744 0.419118 -vt 0.236070 0.468382 -vt 0.232881 0.470509 -vt 0.229692 0.468382 -vt 0.229692 0.458111 -vt 0.232881 0.455984 -vt 0.223744 0.441176 -vt 0.223744 0.463235 -vt 0.237391 0.463247 -vt 0.236070 0.468382 -vt 0.229692 0.468382 -vt 0.229692 0.458111 -vt 0.236070 0.458111 -vt 0.277535 0.550087 -vt 0.264843 0.558553 -vt 0.252150 0.550087 -vt 0.246892 0.529648 -vt 0.277535 0.509209 -vt 0.125028 0.114737 -vt 0.127657 0.124955 -vt 0.125028 0.135173 -vt 0.112337 0.135173 -vt 0.112337 0.114737 -vt 0.109654 0.154463 -vt 0.112292 0.144208 -vt 0.118661 0.139960 -vt 0.127667 0.154463 -vt 0.125030 0.164718 -vt 0.109654 0.154463 -vt 0.112292 0.144208 -vt 0.118661 0.139960 -vt 0.127667 0.154463 -vt 0.125030 0.164718 -vt 0.292237 0.617647 -vt 0.292237 0.860294 -vt 0.292237 0.794118 -vt 0.292237 0.860294 -vt 0.292237 0.794118 -vt 0.292237 0.860294 -vt 0.292237 0.617647 -vt 0.292237 0.801471 -vt 0.027397 0.419118 -vt -0.000000 0.426471 -vt -0.000000 0.419118 -vt 0.027397 0.411765 -vt -0.000000 0.411765 -vt 0.027397 0.404412 -vt -0.000000 0.404412 -vt 0.027397 0.397059 -vt -0.000000 0.397059 -vt 0.027397 0.389706 -vt -0.000000 0.389706 -vt 0.027397 0.382353 -vt -0.000000 0.382353 -vt -0.000000 0.463235 -vt 0.027397 0.470588 -vt -0.000000 0.470588 -vt -0.000000 0.455882 -vt 0.027397 0.463235 -vt -0.000000 0.448529 -vt 0.027397 0.455882 -vt -0.000000 0.441176 -vt 0.027397 0.448529 -vt -0.000000 0.433824 -vt 0.027397 0.441176 -vt 0.027397 0.433824 -vt 0.045662 0.419118 -vt 0.027397 0.426471 -vt 0.045662 0.411765 -vt 0.045662 0.404412 -vt 0.045662 0.397059 -vt 0.045662 0.389706 -vt 0.045662 0.382353 -vt 0.045662 0.470588 -vt 0.045662 0.463235 -vt 0.045662 0.455882 -vt 0.045662 0.448529 -vt 0.045662 0.441176 -vt 0.045662 0.433824 -vt 0.059361 0.419118 -vt 0.045662 0.426471 -vt 0.059361 0.411765 -vt 0.059361 0.404412 -vt 0.059361 0.397059 -vt 0.059361 0.389706 -vt 0.059361 0.382353 -vt 0.059361 0.470588 -vt 0.059361 0.463235 -vt 0.059361 0.455882 -vt 0.059361 0.448529 -vt 0.059361 0.441176 -vt 0.059361 0.433824 -vt 0.068493 0.426471 -vt 0.059361 0.426471 -vt 0.068493 0.419118 -vt 0.068493 0.411765 -vt 0.068493 0.404412 -vt 0.068493 0.397059 -vt 0.068493 0.389706 -vt 0.068493 0.463235 -vt 0.068493 0.455882 -vt 0.068493 0.448529 -vt 0.068493 0.441176 -vt 0.068493 0.433824 -vt 0.082192 0.426471 -vt 0.082192 0.419118 -vt 0.082192 0.411765 -vt 0.082192 0.404412 -vt 0.082192 0.397059 -vt 0.068493 0.382353 -vt 0.082192 0.389706 -vt 0.082192 0.463235 -vt 0.068493 0.470588 -vt 0.082192 0.455882 -vt 0.082192 0.448529 -vt 0.082192 0.441176 -vt 0.082192 0.433824 -vt 0.100457 0.426471 -vt 0.100457 0.419118 -vt 0.100457 0.411765 -vt 0.100457 0.404412 -vt 0.100457 0.397059 -vt 0.082192 0.382353 -vt 0.100457 0.389706 -vt 0.100457 0.463235 -vt 0.082192 0.470588 -vt 0.100457 0.455882 -vt 0.100457 0.448529 -vt 0.100457 0.441176 -vt 0.100457 0.433824 -vt 0.118721 0.426471 -vt 0.118721 0.419118 -vt 0.118721 0.411765 -vt 0.118721 0.404412 -vt 0.118721 0.397059 -vt 0.100457 0.382353 -vt 0.118721 0.389706 -vt 0.118721 0.463235 -vt 0.100457 0.470588 -vt 0.118721 0.455882 -vt 0.118721 0.448529 -vt 0.118721 0.441176 -vt 0.118721 0.433824 -vt 0.136986 0.426471 -vt 0.136986 0.419118 -vt 0.136986 0.411765 -vt 0.136986 0.404412 -vt 0.136986 0.397059 -vt 0.118721 0.382353 -vt 0.136986 0.389706 -vt 0.136986 0.463235 -vt 0.118721 0.470588 -vt 0.136986 0.455882 -vt 0.136986 0.448529 -vt 0.136986 0.441176 -vt 0.136986 0.433824 -vt 0.159817 0.426471 -vt 0.159817 0.419118 -vt 0.159817 0.411765 -vt 0.159817 0.404412 -vt 0.159817 0.397059 -vt 0.136986 0.382353 -vt 0.159817 0.389706 -vt 0.159817 0.463235 -vt 0.136986 0.470588 -vt 0.159817 0.455882 -vt 0.159817 0.448529 -vt 0.159817 0.441176 -vt 0.159817 0.433824 -vt 0.178082 0.426471 -vt 0.178082 0.419118 -vt 0.178082 0.411765 -vt 0.178082 0.404412 -vt 0.178082 0.397059 -vt 0.159817 0.382353 -vt 0.178082 0.389706 -vt 0.178082 0.463235 -vt 0.159817 0.470588 -vt 0.178082 0.455882 -vt 0.178082 0.448529 -vt 0.178082 0.441176 -vt 0.178082 0.433824 -vt 0.200913 0.426471 -vt 0.200913 0.419118 -vt 0.200913 0.411765 -vt 0.200913 0.404412 -vt 0.200913 0.397059 -vt 0.178082 0.382353 -vt 0.200913 0.389706 -vt 0.200913 0.463235 -vt 0.178082 0.470588 -vt 0.200913 0.455882 -vt 0.200913 0.448529 -vt 0.200913 0.441176 -vt 0.200913 0.433824 -vt 0.219178 0.426471 -vt 0.219178 0.419118 -vt 0.219178 0.411765 -vt 0.219178 0.404412 -vt 0.219178 0.397059 -vt 0.200913 0.382353 -vt 0.219178 0.389706 -vt 0.219178 0.463235 -vt 0.200913 0.470588 -vt 0.219178 0.455882 -vt 0.219178 0.448529 -vt 0.219178 0.441176 -vt 0.219178 0.433824 -vt 0.191781 0.470588 -vt 0.178082 0.558824 -vt 0.178082 0.470588 -vt 0.164384 0.470588 -vt 0.164384 0.558824 -vt 0.150685 0.470588 -vt 0.150685 0.558824 -vt 0.136986 0.470588 -vt 0.246575 0.558824 -vt 0.232877 0.470588 -vt 0.246575 0.470588 -vt 0.232877 0.558824 -vt 0.219178 0.470588 -vt 0.219178 0.558824 -vt 0.205479 0.470588 -vt 0.205479 0.558824 -vt 0.525114 0.588235 -vt 0.506849 0.536765 -vt 0.525114 0.536765 -vt 0.488584 0.580882 -vt 0.488584 0.544118 -vt 0.470320 0.551471 -vt 0.470320 0.573529 -vt 0.452055 0.558824 -vt 0.598173 0.558824 -vt 0.579909 0.573529 -vt 0.579909 0.551471 -vt 0.561644 0.580882 -vt 0.561644 0.544118 -vt 0.543379 0.536765 -vt 0.525114 0.639706 -vt 0.506849 0.588235 -vt 0.488584 0.632353 -vt 0.488584 0.595588 -vt 0.470320 0.625000 -vt 0.470320 0.602941 -vt 0.452055 0.610294 -vt 0.598173 0.617647 -vt 0.579909 0.602941 -vt 0.598173 0.610294 -vt 0.579909 0.625000 -vt 0.561644 0.595588 -vt 0.561644 0.632353 -vt 0.543379 0.588235 -vt 0.506849 0.691176 -vt 0.506849 0.639706 -vt 0.488584 0.647059 -vt 0.488584 0.683824 -vt 0.470320 0.654412 -vt 0.470320 0.676471 -vt 0.452055 0.661765 -vt 0.598173 0.661765 -vt 0.579909 0.676471 -vt 0.579909 0.654412 -vt 0.561644 0.683824 -vt 0.561644 0.647059 -vt 0.543379 0.691176 -vt 0.543379 0.639706 -vt 0.525114 0.691176 -vt 0.525114 0.742647 -vt 0.488584 0.735294 -vt 0.488584 0.698529 -vt 0.470320 0.727941 -vt 0.470320 0.705882 -vt 0.452055 0.713235 -vt 0.598173 0.713235 -vt 0.579909 0.727941 -vt 0.579909 0.705882 -vt 0.561644 0.698529 -vt 0.561644 0.735294 -vt 0.506849 0.794118 -vt 0.506849 0.742647 -vt 0.488584 0.750000 -vt 0.488584 0.786765 -vt 0.470320 0.757353 -vt 0.452055 0.772059 -vt 0.452055 0.764706 -vt 0.598173 0.772059 -vt 0.579909 0.757353 -vt 0.598173 0.764706 -vt 0.561644 0.786765 -vt 0.561644 0.750000 -vt 0.543379 0.794118 -vt 0.543379 0.742647 -vt 0.525114 0.845588 -vt 0.525114 0.794118 -vt 0.506849 0.845588 -vt 0.488584 0.801471 -vt 0.470320 0.830882 -vt 0.470320 0.808824 -vt 0.452055 0.816176 -vt 0.598173 0.823529 -vt 0.579909 0.808824 -vt 0.598173 0.816176 -vt 0.579909 0.830882 -vt 0.561644 0.801471 -vt 0.543379 0.845588 -vt 0.506849 0.897059 -vt 0.488584 0.852941 -vt 0.470320 0.882353 -vt 0.470320 0.860294 -vt 0.452055 0.867647 -vt 0.598173 0.875000 -vt 0.579909 0.860294 -vt 0.598173 0.867647 -vt 0.579909 0.882353 -vt 0.561644 0.852941 -vt 0.543379 0.897059 -vt 0.525114 0.897059 -vt 0.506849 0.948529 -vt 0.488584 0.904412 -vt 0.470320 0.933824 -vt 0.470320 0.911765 -vt 0.452055 0.919118 -vt 0.598173 0.919118 -vt 0.579909 0.933824 -vt 0.579909 0.911765 -vt 0.561644 0.904412 -vt 0.543379 0.948529 -vt 0.525114 0.948529 -vt 0.506849 1.000000 -vt 0.488584 0.955882 -vt 0.488584 0.992647 -vt 0.470320 0.963235 -vt 0.470320 0.985294 -vt 0.452055 0.970588 -vt 0.598173 0.970588 -vt 0.579909 0.985294 -vt 0.579909 0.963235 -vt 0.561644 0.955882 -vt 0.543379 1.000000 -vt 0.525114 0.433824 -vt 0.506849 0.382353 -vt 0.525114 0.382353 -vt 0.488584 0.426471 -vt 0.488584 0.389706 -vt 0.470320 0.419118 -vt 0.470320 0.397059 -vt 0.452055 0.404412 -vt 0.598173 0.411765 -vt 0.579909 0.397059 -vt 0.598173 0.404412 -vt 0.579909 0.419118 -vt 0.561644 0.389706 -vt 0.561644 0.426471 -vt 0.543379 0.382353 -vt 0.506849 0.485294 -vt 0.506849 0.433824 -vt 0.488584 0.441176 -vt 0.488584 0.477941 -vt 0.470320 0.448529 -vt 0.470320 0.470588 -vt 0.452055 0.455882 -vt 0.598173 0.463235 -vt 0.579909 0.448529 -vt 0.598173 0.455882 -vt 0.561644 0.477941 -vt 0.561644 0.441176 -vt 0.543379 0.485294 -vt 0.543379 0.433824 -vt 0.525114 0.485294 -vt 0.488584 0.492647 -vt 0.470320 0.522059 -vt 0.470320 0.500000 -vt 0.452055 0.507353 -vt 0.598173 0.514706 -vt 0.579909 0.500000 -vt 0.598173 0.507353 -vt 0.579909 0.522059 -vt 0.561644 0.492647 -vt 0.109589 0.154412 -vt 0.073059 0.161765 -vt 0.073059 0.154412 -vt 0.109589 0.161765 -vt 0.073059 0.169118 -vt 0.109589 0.110294 -vt 0.073059 0.117647 -vt 0.073059 0.110294 -vt 0.109589 0.117647 -vt 0.073059 0.125000 -vt 0.109589 0.132353 -vt 0.073059 0.132353 -vt 0.109589 0.139706 -vt 0.073059 0.139706 -vt 0.109589 0.147059 -vt 0.073059 0.147059 -vt 0.073059 0.154412 -vt 0.109589 0.161765 -vt 0.073059 0.161765 -vt 0.073059 0.169118 -vt 0.073059 0.110294 -vt 0.109589 0.117647 -vt 0.073059 0.117647 -vt 0.073059 0.125000 -vt 0.109589 0.125000 -vt 0.073059 0.132353 -vt 0.109589 0.139706 -vt 0.073059 0.139706 -vt 0.109589 0.147059 -vt 0.073059 0.147059 -vt 0.109589 0.154412 -vt 0.228310 0.441176 -vt 0.228310 0.448529 -vt 0.228310 0.463235 -vt 0.228310 0.419118 -vt 0.228310 0.426471 -vt 0.228310 0.470588 -vt 0.228310 0.433824 -vt 0.228310 0.455882 -vt 0.228310 0.433824 -vt 0.228310 0.441176 -vt 0.228310 0.448529 -vt 0.228310 0.463235 -vt 0.228310 0.419118 -vt 0.228310 0.426471 -vt 0.228310 0.470588 -vt 0.228310 0.455882 -vt 0.228310 0.411765 -vt 0.228310 0.433824 -vt 0.228310 0.441176 -vt 0.228310 0.448529 -vt 0.228310 0.463235 -vt 0.228310 0.419118 -vt 0.228310 0.426471 -vt 0.228310 0.470588 -vt 0.228310 0.455882 -vt 0.228310 0.433824 -vt 0.228310 0.441176 -vt 0.228310 0.448529 -vt 0.228310 0.463235 -vt 0.228310 0.426471 -vt 0.228310 0.470588 -vt 0.228310 0.455882 -vt 0.228310 0.419118 -vt 0.310502 0.816176 -vt 0.328767 0.838235 -vt 0.310502 0.838235 -vt 0.310502 0.860294 -vt 0.328767 0.683824 -vt 0.310502 0.705882 -vt 0.310502 0.683824 -vt 0.328767 0.727941 -vt 0.310502 0.727941 -vt 0.310502 0.750000 -vt 0.328767 0.750000 -vt 0.310502 0.772059 -vt 0.328767 0.772059 -vt 0.310502 0.794118 -vt 0.328767 0.816176 -vt 0.369863 0.382353 -vt 0.383562 0.500000 -vt 0.369863 0.500000 -vt 0.383562 0.382353 -vt 0.397260 0.500000 -vt 0.410959 0.382353 -vt 0.410959 0.500000 -vt 0.424658 0.500000 -vt 0.424658 0.382353 -vt 0.438356 0.500000 -vt 0.438356 0.382353 -vt 0.452055 0.500000 -vt 0.415525 0.360294 -vt 0.420091 0.360294 -vt 0.342466 0.382353 -vt 0.356164 0.500000 -vt 0.342466 0.500000 -vt 0.356164 0.382353 -vt 0.351598 0.360294 -vt 0.397260 0.382353 -vt 0.388128 0.360294 -vt 0.392694 0.360294 -vt 0.433790 0.360294 -vt 0.360731 0.360294 -vt 0.365297 0.360294 -vt 0.378995 0.360294 -vt 0.401826 0.360294 -vt 0.406393 0.360294 -vt 0.447489 0.360294 -vt 0.452055 0.382353 -vt -0.000000 0.735294 -vt 0.073059 0.691176 -vt 0.073059 0.735294 -vt -0.000000 0.691176 -vt 0.073059 0.647059 -vt -0.000000 0.647059 -vt 0.073059 0.602941 -vt -0.000000 0.602941 -vt 0.073059 0.558824 -vt -0.000000 0.558824 -vt 0.073059 0.514706 -vt -0.000000 0.514706 -vt 0.073059 0.470588 -vt -0.000000 1.000000 -vt 0.073059 0.955882 -vt 0.073059 1.000000 -vt -0.000000 0.955882 -vt 0.073059 0.911765 -vt -0.000000 0.911765 -vt 0.073059 0.867647 -vt -0.000000 0.867647 -vt 0.073059 0.823529 -vt 0.210046 0.926471 -vt 0.136986 0.889706 -vt 0.210046 0.889706 -vt -0.000000 0.823529 -vt 0.073059 0.779412 -vt -0.000000 0.779412 -vt 0.091317 0.954077 -vt 0.091317 0.560601 -vt 0.109598 0.595434 -vt 0.091317 0.600323 -vt 0.091317 0.998296 -vt 0.091317 0.511885 -vt 0.091317 0.516382 -vt 0.091317 0.556104 -vt 0.091317 0.777200 -vt 0.091317 0.693259 -vt 0.091317 0.732981 -vt 0.091317 0.644543 -vt 0.091317 0.821420 -vt 0.091317 0.688762 -vt 0.091317 0.825917 -vt 0.091317 0.865639 -vt 0.091317 0.909858 -vt 0.109598 0.991683 -vt 0.109598 0.786106 -vt 0.109599 0.815572 -vt 0.109598 0.698051 -vt 0.109598 0.727517 -vt 0.109598 0.918189 -vt 0.109599 0.947655 -vt 0.109598 0.551406 -vt 0.091317 0.737478 -vt 0.109598 0.771545 -vt 0.091317 0.649040 -vt 0.109598 0.683489 -vt 0.091317 0.870136 -vt 0.109599 0.903628 -vt 0.091317 0.472163 -vt 0.109598 0.507378 -vt 0.091317 0.604820 -vt 0.109598 0.639461 -vt 0.109599 0.859600 -vt 0.109599 0.962217 -vt 0.420091 0.779412 -vt 0.415525 0.573529 -vt 0.420091 0.573529 -vt 0.109598 0.565968 -vt 0.109598 0.521940 -vt 0.109598 0.742078 -vt 0.109598 0.654023 -vt 0.109599 0.874162 -vt 0.109598 0.477913 -vt 0.109598 0.609995 -vt 0.429224 0.779412 -vt 0.433790 0.573529 -vt 0.433790 0.779412 -vt 0.392694 0.779412 -vt 0.388128 0.573529 -vt 0.392694 0.573529 -vt 0.410959 0.779412 -vt 0.415525 0.779412 -vt 0.401826 0.779412 -vt 0.406393 0.573529 -vt 0.406393 0.779412 -vt 0.424658 0.779412 -vt 0.429224 0.573529 -vt 0.388128 0.779412 -vt 0.383562 0.573529 -vt 0.410959 0.573529 -vt 0.397260 0.573529 -vt 0.401826 0.573529 -vt 0.424658 0.573529 -vt 0.383562 0.779412 -vt 0.378995 0.573529 -vt 0.397260 0.779412 -vt 0.392694 0.573529 -vt 0.388128 1.000000 -vt 0.388128 0.573529 -vt 0.210046 0.632353 -vt 0.136986 0.669118 -vt 0.136986 0.632353 -vt 0.210046 0.742647 -vt 0.136986 0.779412 -vt 0.136986 0.742647 -vt 0.136986 0.852941 -vt 0.210046 0.852941 -vt 0.210046 0.595588 -vt 0.136986 0.595588 -vt 0.210046 1.000000 -vt 0.136986 0.963235 -vt 0.210046 0.963235 -vt 0.210046 0.705882 -vt 0.136986 0.705882 -vt 0.136986 0.816176 -vt 0.210046 0.816176 -vt 0.136986 0.558824 -vt 0.210046 0.558824 -vt 0.136986 0.926471 -vt 0.210046 0.669118 -vt 0.210046 0.779412 -vt 0.283105 0.742647 -vt 0.210046 0.779412 -vt 0.210046 0.742647 -vt 0.283105 0.705882 -vt 0.210046 0.669118 -vt 0.283105 0.669118 -vt 0.210046 0.632353 -vt 0.283105 0.632353 -vt 0.210046 0.595588 -vt 0.283105 0.558824 -vt 0.210046 0.558824 -vt 0.210046 1.000000 -vt 0.283105 0.963235 -vt 0.210046 0.963235 -vt 0.283105 0.926471 -vt 0.210046 0.889706 -vt 0.283105 0.889706 -vt 0.210046 0.852941 -vt 0.283105 0.852941 -vt 0.283105 0.816176 -vt 0.283105 0.779412 -vt 0.283105 0.617647 -vt 0.283105 0.610294 -vt 0.283105 0.948529 -vt 0.283105 0.941176 -vt 0.283105 0.838235 -vt 0.283105 0.830882 -vt 0.283105 0.720588 -vt 0.283105 0.727941 -vt 0.415525 0.573529 -vt 0.410959 1.000000 -vt 0.410959 0.573529 -vt 0.406393 0.573529 -vt 0.401826 1.000000 -vt 0.401826 0.573529 -vt 0.429224 0.573529 -vt 0.424658 1.000000 -vt 0.424658 0.573529 -vt 0.383562 1.000000 -vt 0.383562 0.573529 -vt 0.406393 1.000000 -vt 0.397260 0.573529 -vt 0.397260 1.000000 -vt 0.420091 1.000000 -vt 0.420091 0.573529 -vt 0.378995 1.000000 -vt 0.378995 0.573529 -vt 0.392694 1.000000 -vt 0.415525 1.000000 -vt 0.433790 0.573529 -vt 0.429224 1.000000 -vt 0.369863 0.382353 -vt 0.383562 0.500000 -vt 0.369863 0.500000 -vt 0.397260 0.382353 -vt 0.397260 0.500000 -vt 0.410959 0.500000 -vt 0.424658 0.382353 -vt 0.424658 0.500000 -vt 0.438356 0.500000 -vt 0.452055 0.382353 -vt 0.452055 0.500000 -vt 0.410959 0.382353 -vt 0.420091 0.360294 -vt 0.342466 0.382353 -vt 0.356164 0.500000 -vt 0.342466 0.500000 -vt 0.351598 0.360294 -vt 0.356164 0.382353 -vt 0.383562 0.382353 -vt 0.392694 0.360294 -vt 0.433790 0.360294 -vt 0.438356 0.382353 -vt 0.360731 0.360294 -vt 0.365297 0.360294 -vt 0.378995 0.360294 -vt 0.406393 0.360294 -vt 0.442922 0.360294 -vt 0.447489 0.360294 -vt 0.228310 0.433824 -vt 0.228310 0.441176 -vt 0.228310 0.448529 -vt 0.228310 0.463235 -vt 0.228310 0.426471 -vt 0.228310 0.470588 -vt 0.228310 0.455882 -vt 0.228310 0.411765 -vt 0.228310 0.419118 -vt 0.228310 0.441176 -vt 0.228310 0.448529 -vt 0.228310 0.455882 -vt 0.228310 0.463235 -vt 0.228310 0.426471 -vt 0.228310 0.470588 -vt 0.228310 0.433824 -vt 0.228310 0.419118 -vt 0.228310 0.441176 -vt 0.228310 0.448529 -vt 0.228310 0.455882 -vt 0.228310 0.463235 -vt 0.228310 0.426471 -vt 0.228310 0.470588 -vt 0.228310 0.433824 -vt 0.228310 0.419118 -vt 0.228310 0.441176 -vt 0.228310 0.448529 -vt 0.228310 0.455882 -vt 0.228310 0.463235 -vt 0.228310 0.426471 -vt 0.228310 0.470588 -vt 0.228310 0.433824 -vt 0.228310 0.419118 -vt 0.525114 0.588235 -vt 0.506849 0.536765 -vt 0.525114 0.536765 -vt 0.488584 0.580882 -vt 0.488584 0.544118 -vt 0.470320 0.551471 -vt 0.470320 0.573529 -vt 0.452055 0.558824 -vt 0.598173 0.558824 -vt 0.579909 0.573529 -vt 0.579909 0.551471 -vt 0.561644 0.580882 -vt 0.561644 0.544118 -vt 0.543379 0.536765 -vt 0.525114 0.639706 -vt 0.506849 0.588235 -vt 0.488584 0.632353 -vt 0.488584 0.595588 -vt 0.470320 0.625000 -vt 0.470320 0.602941 -vt 0.452055 0.617647 -vt 0.452055 0.610294 -vt 0.598173 0.617647 -vt 0.579909 0.602941 -vt 0.598173 0.610294 -vt 0.579909 0.625000 -vt 0.561644 0.595588 -vt 0.561644 0.632353 -vt 0.543379 0.588235 -vt 0.525114 0.691176 -vt 0.506849 0.639706 -vt 0.506849 0.691176 -vt 0.488584 0.647059 -vt 0.488584 0.683824 -vt 0.470320 0.654412 -vt 0.470320 0.676471 -vt 0.452055 0.661765 -vt 0.598173 0.661765 -vt 0.579909 0.676471 -vt 0.579909 0.654412 -vt 0.561644 0.683824 -vt 0.561644 0.647059 -vt 0.543379 0.691176 -vt 0.543379 0.639706 -vt 0.506849 0.742647 -vt 0.488584 0.735294 -vt 0.488584 0.698529 -vt 0.470320 0.727941 -vt 0.470320 0.705882 -vt 0.452055 0.713235 -vt 0.598173 0.713235 -vt 0.579909 0.727941 -vt 0.579909 0.705882 -vt 0.561644 0.698529 -vt 0.561644 0.735294 -vt 0.543379 0.742647 -vt 0.525114 0.742647 -vt 0.506849 0.794118 -vt 0.488584 0.750000 -vt 0.488584 0.786765 -vt 0.470320 0.757353 -vt 0.470320 0.779412 -vt 0.452055 0.764706 -vt 0.598173 0.772059 -vt 0.579909 0.757353 -vt 0.598173 0.764706 -vt 0.561644 0.786765 -vt 0.561644 0.750000 -vt 0.543379 0.794118 -vt 0.525114 0.845588 -vt 0.525114 0.794118 -vt 0.506849 0.845588 -vt 0.488584 0.801471 -vt 0.470320 0.830882 -vt 0.470320 0.808824 -vt 0.452055 0.823529 -vt 0.452055 0.816176 -vt 0.598173 0.823529 -vt 0.579909 0.808824 -vt 0.598173 0.816176 -vt 0.579909 0.830882 -vt 0.561644 0.801471 -vt 0.543379 0.845588 -vt 0.506849 0.897059 -vt 0.488584 0.852941 -vt 0.470320 0.882353 -vt 0.470320 0.860294 -vt 0.452055 0.867647 -vt 0.598173 0.867647 -vt 0.579909 0.882353 -vt 0.579909 0.860294 -vt 0.561644 0.852941 -vt 0.543379 0.897059 -vt 0.525114 0.897059 -vt 0.506849 0.948529 -vt 0.488584 0.904412 -vt 0.470320 0.933824 -vt 0.470320 0.911765 -vt 0.452055 0.926471 -vt 0.452055 0.919118 -vt 0.598173 0.919118 -vt 0.579909 0.933824 -vt 0.579909 0.911765 -vt 0.561644 0.904412 -vt 0.543379 0.948529 -vt 0.525114 0.948529 -vt 0.506849 1.000000 -vt 0.488584 0.955882 -vt 0.488584 0.992647 -vt 0.470320 0.963235 -vt 0.470320 0.985294 -vt 0.452055 0.970588 -vt 0.598173 0.977941 -vt 0.579909 0.963235 -vt 0.598173 0.970588 -vt 0.561644 0.992647 -vt 0.561644 0.955882 -vt 0.543379 1.000000 -vt 0.525114 0.433824 -vt 0.506849 0.382353 -vt 0.525114 0.382353 -vt 0.488584 0.426471 -vt 0.488584 0.389706 -vt 0.470320 0.419118 -vt 0.470320 0.397059 -vt 0.452055 0.404412 -vt 0.598173 0.404412 -vt 0.579909 0.419118 -vt 0.579909 0.397059 -vt 0.561644 0.389706 -vt 0.561644 0.426471 -vt 0.543379 0.382353 -vt 0.506849 0.485294 -vt 0.506849 0.433824 -vt 0.488584 0.441176 -vt 0.488584 0.477941 -vt 0.470320 0.448529 -vt 0.452055 0.463235 -vt 0.452055 0.455882 -vt 0.598173 0.463235 -vt 0.579909 0.448529 -vt 0.598173 0.455882 -vt 0.561644 0.477941 -vt 0.561644 0.441176 -vt 0.543379 0.485294 -vt 0.543379 0.433824 -vt 0.525114 0.485294 -vt 0.488584 0.492647 -vt 0.470320 0.522059 -vt 0.470320 0.500000 -vt 0.452055 0.507353 -vt 0.598173 0.514706 -vt 0.579909 0.500000 -vt 0.598173 0.507353 -vt 0.579909 0.522059 -vt 0.561644 0.492647 -vt 0.191781 0.470588 -vt 0.178082 0.558824 -vt 0.178082 0.470588 -vt 0.164384 0.470588 -vt 0.150685 0.558824 -vt 0.150685 0.470588 -vt 0.136986 0.470588 -vt 0.246575 0.558824 -vt 0.232877 0.470588 -vt 0.246575 0.470588 -vt 0.232877 0.558824 -vt 0.219178 0.470588 -vt 0.219178 0.558824 -vt 0.205479 0.470588 -vt 0.191781 0.558824 -vt 0.219178 0.382353 -vt 0.219178 0.470588 -vt 0.191781 0.558824 -vt 0.136986 0.558824 -vt 0.452055 0.566176 -vt 0.598173 0.566176 -vt 0.452055 0.617647 -vt 0.452055 0.669118 -vt 0.598173 0.669118 -vt 0.452055 0.720588 -vt 0.598173 0.720588 -vt 0.470320 0.779412 -vt 0.579909 0.779412 -vt 0.488584 0.838235 -vt 0.452055 0.823529 -vt 0.561644 0.838235 -vt 0.488584 0.889706 -vt 0.452055 0.875000 -vt 0.561644 0.889706 -vt 0.488584 0.941176 -vt 0.452055 0.926471 -vt 0.598173 0.926471 -vt 0.561644 0.941176 -vt 0.525114 1.000000 -vt 0.452055 0.977941 -vt 0.598173 0.977941 -vt 0.561644 0.992647 -vt 0.452055 0.411765 -vt 0.452055 0.463235 -vt 0.579909 0.470588 -vt 0.488584 0.529412 -vt 0.452055 0.514706 -vt 0.561644 0.529412 -vt 0.228310 0.411765 -vt 0.228310 0.411765 -vt 0.228310 0.411765 -vt 0.328767 0.860294 -vt 0.328767 0.705882 -vt 0.328767 0.794118 -vt 0.347032 0.360294 -vt 0.429224 0.360294 -vt 0.374429 0.360294 -vt 0.442922 0.360294 -vt -0.000000 0.470588 -vt 0.091317 0.914355 -vt 0.091317 0.958574 -vt 0.091317 0.781697 -vt 0.109599 0.830134 -vt 0.378995 0.779412 -vt 0.136986 1.000000 -vt 0.210046 0.705882 -vt 0.283105 0.595588 -vt 0.283105 1.000000 -vt 0.210046 0.926471 -vt 0.210046 0.816176 -vt 0.210046 0.617647 -vt 0.210046 0.610294 -vt 0.210046 0.948529 -vt 0.210046 0.941176 -vt 0.210046 0.838235 -vt 0.210046 0.830882 -vt 0.210046 0.720588 -vt 0.210046 0.727941 -vt 0.433790 1.000000 -vt 0.415525 0.360294 -vt 0.347032 0.360294 -vt 0.388128 0.360294 -vt 0.429224 0.360294 -vt 0.374429 0.360294 -vt 0.401826 0.360294 -vt 0.228310 0.411765 -vt 0.228310 0.411765 -vt 0.228310 0.411765 -vt 0.452055 0.566176 -vt 0.598173 0.566176 -vt 0.452055 0.669118 -vt 0.598173 0.669118 -vt 0.452055 0.720588 -vt 0.598173 0.720588 -vt 0.452055 0.772059 -vt 0.579909 0.779412 -vt 0.488584 0.838235 -vt 0.561644 0.838235 -vt 0.488584 0.889706 -vt 0.452055 0.875000 -vt 0.598173 0.875000 -vt 0.561644 0.889706 -vt 0.488584 0.941176 -vt 0.598173 0.926471 -vt 0.561644 0.941176 -vt 0.525114 1.000000 -vt 0.452055 0.977941 -vt 0.579909 0.985294 -vt 0.452055 0.411765 -vt 0.598173 0.411765 -vt 0.470320 0.470588 -vt 0.579909 0.470588 -vt 0.488584 0.529412 -vt 0.452055 0.514706 -vt 0.561644 0.529412 -vt 0.164384 0.558824 -vt 0.136986 0.558824 -vt 0.205479 0.558824 -vt 0.109589 0.169118 -vt 0.109589 0.125000 -vt 0.109589 0.169118 -vt 0.109589 0.110294 -vt 0.109589 0.132353 -vn 0.0000 -0.0000 1.0000 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.9894 0.1453 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 -0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.9885 0.1514 -vn -0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.0000 -0.3827 -0.9239 -vn -0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.8660 -0.5000 0.0000 -vn -0.8660 0.5000 -0.0000 -vn 0.5000 0.8660 0.0000 -vn 0.5000 -0.8660 -0.0000 -vn -0.5000 -0.8660 0.0000 -vn -0.5000 0.8660 0.0000 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.0823 0.0000 -0.9966 -vn -0.9966 0.0000 -0.0823 -vn -0.0823 0.0000 0.9966 -vn 0.0582 0.7071 -0.7047 -vn 0.9966 0.0000 0.0823 -vn -0.0582 0.7071 0.7047 -vn 0.0000 0.6247 0.7809 -vn 0.0000 0.6247 -0.7809 -vn 0.8660 0.5000 0.0000 -vn -0.8660 -0.5000 0.0000 -vn 0.0823 -0.0000 0.9966 -vn 0.9966 -0.0000 -0.0823 -vn -0.0823 0.0000 -0.9966 -vn 0.0582 -0.7071 0.7047 -vn -0.9966 0.0000 0.0823 -vn -0.0582 -0.7071 -0.7047 -vn -0.1081 -0.5055 0.8560 -vn 0.0606 -0.0355 0.9975 -vn -0.1935 -0.4594 0.8669 -vn -0.3475 -0.7900 0.5051 -vn -0.3979 -0.7642 0.5076 -vn -0.4958 -0.8682 0.0176 -vn -0.4969 -0.8677 0.0107 -vn -0.5103 -0.7142 -0.4790 -vn -0.4619 -0.7382 -0.4915 -vn -0.3840 -0.3645 -0.8483 -vn -0.3011 -0.4083 -0.8617 -vn -0.1512 0.0876 -0.9846 -vn -0.0582 0.0331 -0.9977 -vn 0.2003 0.4657 -0.8620 -vn 0.4041 0.7712 -0.4918 -vn 0.1226 0.5158 -0.8479 -vn 0.4984 0.8668 0.0108 -vn 0.3615 0.8003 -0.4784 -vn 0.4591 0.7288 0.5080 -vn 0.5018 0.8648 0.0181 -vn 0.2987 0.3980 0.8674 -vn 0.5087 0.6971 0.5053 -vn 0.3828 0.3472 0.8561 -vn 0.1036 -0.6226 0.7756 -vn 0.1581 -0.0910 0.9832 -vn -0.2196 -0.8583 0.4636 -vn -0.4879 -0.8725 0.0259 -vn -0.6254 -0.6534 -0.4265 -vn -0.5886 -0.2525 -0.7679 -vn -0.3856 0.2226 -0.8954 -vn -0.0756 0.6360 -0.7679 -vn 0.2531 0.8683 -0.4265 -vn 0.5116 0.8588 0.0259 -vn 0.6335 0.6194 0.4636 -vn 0.5910 0.2216 0.7756 -vn 0.3463 -0.7594 0.5508 -vn 0.3981 -0.2298 0.8881 -vn -0.0701 -0.9406 0.3320 -vn -0.4736 -0.8804 0.0243 -vn -0.7567 -0.5832 -0.2954 -vn -0.8340 -0.1183 -0.5389 -vn -0.6720 0.3880 -0.6308 -vn -0.3146 0.7814 -0.5389 -vn 0.1267 0.9469 -0.2954 -vn 0.5257 0.8503 0.0243 -vn 0.7796 0.5310 0.3320 -vn 0.8308 0.0797 0.5508 -vn 0.8383 -0.4840 0.2508 -vn 0.6728 -0.3884 0.6296 -vn 0.4892 -0.8442 0.2188 -vn 0.0129 -0.9914 0.1305 -vn -0.4728 -0.8811 0.0083 -vn -0.8393 -0.5316 -0.1137 -vn -0.9791 -0.0293 -0.2012 -vn -0.4642 0.8625 -0.2012 -vn 0.0407 0.9927 -0.1137 -vn 0.5267 0.8500 0.0083 -vn 0.8650 0.4845 0.1305 -vn 0.9757 -0.0016 0.2188 -vn 0.8643 -0.4990 -0.0629 -vn 0.5070 -0.8602 -0.0552 -vn 0.0158 -0.9993 -0.0334 -vn -0.4834 -0.8754 -0.0009 -vn -0.8567 -0.5146 0.0355 -vn -0.8423 0.4863 -0.2324 -vn -0.9978 -0.0106 0.0653 -vn -0.4897 0.8694 0.0653 -vn 0.0173 0.9992 0.0355 -vn 0.5164 0.8563 -0.0009 -vn 0.8733 0.4859 -0.0334 -vn 0.9984 -0.0089 -0.0552 -vn 0.8404 -0.4852 -0.2415 -vn 0.4821 -0.8506 -0.2100 -vn -0.0045 -0.9924 -0.1230 -vn -0.4917 -0.8708 -0.0023 -vn -0.8488 -0.5147 0.1206 -vn -0.8634 0.4985 0.0770 -vn -0.9771 -0.0181 0.2120 -vn -0.4729 0.8552 0.2120 -vn 0.0214 0.9925 0.1206 -vn 0.5082 0.8612 -0.0023 -vn 0.8572 0.5000 -0.1230 -vn 0.9777 0.0078 -0.2100 -vn 0.8192 -0.4729 -0.3244 -vn 0.4612 -0.8415 -0.2813 -vn -0.0200 -0.9864 -0.1633 -vn -0.4966 -0.8679 -0.0013 -vn -0.8409 -0.5165 0.1616 -vn -0.8394 0.4847 0.2457 -vn -0.9592 -0.0255 0.2814 -vn -0.4575 0.8435 0.2814 -vn 0.0269 0.9865 0.1616 -vn 0.5033 0.8641 -0.0013 -vn 0.8442 0.5105 -0.1633 -vn 0.9594 0.0213 -0.2813 -vn 0.8117 -0.4686 -0.3484 -vn 0.4530 -0.8389 -0.3017 -vn -0.0271 -0.9843 -0.1742 -vn -0.8389 -0.5157 0.1742 -vn -0.8189 0.4728 0.3253 -vn -0.9530 -0.0271 0.3018 -vn -0.4530 0.8389 0.3018 -vn 0.0271 0.9843 0.1742 -vn 0.8389 0.5156 -0.1742 -vn 0.9530 0.0271 -0.3017 -vn 0.8177 -0.4721 -0.3293 -vn 0.4567 -0.8427 -0.2848 -vn -0.0269 -0.9861 -0.1637 -vn -0.5028 -0.8644 0.0011 -vn -0.8433 -0.5114 0.1653 -vn -0.8117 0.4686 0.3485 -vn -0.9582 -0.0224 0.2851 -vn -0.4597 0.8410 0.2851 -vn 0.0212 0.9860 0.1653 -vn 0.4972 0.8676 0.0011 -vn 0.8405 0.5164 -0.1637 -vn 0.9582 0.0258 -0.2848 -vn 0.8342 -0.4816 -0.2686 -vn 0.4694 -0.8519 -0.2321 -vn -0.0218 -0.9909 -0.1328 -vn -0.5059 -0.8626 0.0019 -vn -0.8531 -0.5039 0.1353 -vn -0.8179 0.4722 0.3288 -vn -0.9726 -0.0123 0.2322 -vn -0.4756 0.8484 0.2322 -vn 0.0099 0.9908 0.1353 -vn 0.4941 0.8694 0.0019 -vn 0.8472 0.5144 -0.1328 -vn 0.9725 0.0194 -0.2321 -vn 0.8549 -0.4936 -0.1593 -vn 0.4854 -0.8634 -0.1374 -vn -0.0153 -0.9968 -0.0781 -vn -0.5097 -0.8603 0.0017 -vn -0.8653 -0.4947 0.0803 -vn -0.8344 0.4818 0.2676 -vn -0.9905 0.0002 0.1371 -vn -0.4954 0.8577 0.1371 -vn -0.0042 0.9967 0.0803 -vn 0.4902 0.8716 0.0017 -vn 0.8556 0.5117 -0.0781 -vn 0.9904 0.0113 -0.1374 -vn 0.8625 -0.4979 -0.0906 -vn 0.4918 -0.8672 -0.0780 -vn -0.0130 -0.9989 -0.0441 -vn -0.5127 -0.8585 0.0013 -vn -0.8713 -0.4886 0.0457 -vn -0.8552 0.4937 0.1577 -vn -0.9969 0.0071 0.0774 -vn -0.5047 0.8598 0.0774 -vn -0.0125 0.9989 0.0457 -vn 0.4871 0.8733 0.0013 -vn 0.8586 0.5108 -0.0441 -vn 0.9969 0.0077 -0.0780 -vn 0.5490 0.5490 0.6302 -vn 0.7071 0.7071 0.0000 -vn 0.7764 0.0000 0.6302 -vn 0.7071 -0.7071 0.0000 -vn 0.5490 -0.5490 0.6302 -vn 0.0000 -0.7764 0.6302 -vn -0.7071 -0.7071 0.0000 -vn -0.5490 -0.5490 0.6302 -vn -0.7764 0.0000 0.6302 -vn -0.7071 0.7071 0.0000 -vn -0.5490 0.5490 0.6302 -vn 0.7362 0.0000 0.6768 -vn 0.0550 0.0318 0.9980 -vn 0.0635 0.0000 0.9980 -vn -0.6724 0.0000 0.7402 -vn -0.5823 -0.3362 0.7402 -vn -0.5823 -0.3362 -0.7402 -vn -0.6724 0.0000 -0.7402 -vn 0.0550 0.0318 -0.9980 -vn 0.0635 0.0000 -0.9980 -vn 0.7362 0.0000 -0.6768 -vn 0.6375 0.3681 0.6768 -vn 0.0318 0.0550 0.9980 -vn -0.3362 -0.5823 0.7402 -vn -0.3362 -0.5823 -0.7402 -vn 0.0318 0.0550 -0.9980 -vn 0.6375 0.3681 -0.6768 -vn 0.0000 0.7362 0.6768 -vn 0.3681 0.6375 0.6768 -vn 0.0000 0.0635 0.9980 -vn 0.0000 -0.6724 0.7402 -vn 0.0000 -0.6724 -0.7402 -vn 0.0000 0.0635 -0.9980 -vn 0.0000 0.7362 -0.6768 -vn 0.3681 0.6375 -0.6768 -vn -0.0318 0.0550 0.9980 -vn 0.3362 -0.5823 0.7402 -vn 0.3362 -0.5823 -0.7402 -vn -0.0318 0.0550 -0.9980 -vn -0.6375 0.3681 0.6768 -vn -0.3681 0.6375 0.6768 -vn -0.0550 0.0318 0.9980 -vn -0.0550 0.0318 -0.9980 -vn -0.6375 0.3681 -0.6768 -vn -0.3681 0.6375 -0.6768 -vn -0.7362 0.0000 0.6768 -vn 0.6724 0.0000 0.7402 -vn 0.5823 -0.3362 0.7402 -vn 0.5823 -0.3362 -0.7402 -vn 0.6724 0.0000 -0.7402 -vn -0.7362 0.0000 -0.6768 -vn -0.6375 -0.3681 0.6768 -vn -0.0635 0.0000 0.9980 -vn 0.5823 0.3362 0.7402 -vn 0.5823 0.3362 -0.7402 -vn -0.0635 0.0000 -0.9980 -vn -0.6375 -0.3681 -0.6768 -vn -0.3681 -0.6375 0.6768 -vn -0.0550 -0.0318 0.9980 -vn 0.3362 0.5823 0.7402 -vn 0.3362 0.5823 -0.7402 -vn -0.0550 -0.0318 -0.9980 -vn -0.3681 -0.6375 -0.6768 -vn 0.0000 -0.7362 0.6768 -vn -0.0318 -0.0550 0.9980 -vn 0.0000 -0.0635 0.9980 -vn 0.0000 0.6724 0.7402 -vn 0.0000 0.6724 -0.7402 -vn -0.0318 -0.0550 -0.9980 -vn 0.0000 -0.7362 -0.6768 -vn 0.0318 -0.0550 0.9980 -vn -0.3362 0.5823 0.7402 -vn -0.3362 0.5823 -0.7402 -vn 0.0000 -0.0635 -0.9980 -vn 0.0318 -0.0550 -0.9980 -vn 0.6375 -0.3681 0.6768 -vn 0.3681 -0.6375 0.6768 -vn 0.0550 -0.0318 0.9980 -vn -0.5823 0.3362 0.7402 -vn 0.0550 -0.0318 -0.9980 -vn 0.6375 -0.3681 -0.6768 -vn 0.3681 -0.6375 -0.6768 -vn -0.5823 0.3362 -0.7402 -vn 0.6302 0.0000 -0.7764 -vn -0.6302 -0.5490 -0.5490 -vn -0.6302 0.0000 -0.7764 -vn 0.6302 -0.5490 -0.5490 -vn -0.6302 -0.7764 0.0000 -vn 0.6302 -0.7764 0.0000 -vn -0.6302 -0.5490 0.5490 -vn 0.6302 -0.5490 0.5490 -vn -0.6302 0.0000 0.7764 -vn 0.6302 0.5490 0.5490 -vn -0.6302 0.5490 0.5490 -vn 0.6302 0.7764 0.0000 -vn -0.6302 0.7764 0.0000 -vn 0.6302 0.5490 -0.5490 -vn -0.6302 0.5490 -0.5490 -vn 0.6302 0.0000 0.7764 -vn 0.2445 0.6856 0.6856 -vn 0.8133 0.5819 0.0000 -vn 0.2445 0.9696 0.0000 -vn 0.2445 0.6856 -0.6856 -vn 0.8133 0.4115 -0.4115 -vn 0.2445 0.0000 -0.9696 -vn 0.8133 -0.4115 -0.4115 -vn 0.2445 -0.6856 -0.6856 -vn 0.2445 0.0000 0.9696 -vn 0.8133 -0.4115 0.4115 -vn 0.8133 0.0000 0.5819 -vn 0.2445 -0.9696 0.0000 -vn 0.8133 -0.5819 0.0000 -vn 0.8133 0.4115 0.4115 -vn 0.8133 0.0000 -0.5819 -vn 0.2445 -0.6856 0.6856 -vn -0.5458 0.3151 -0.7764 -vn 0.2713 -0.7906 -0.5490 -vn -0.8203 -0.1603 -0.5490 -vn -0.9340 -0.3572 0.0000 -vn 0.1576 -0.9875 0.0000 -vn -0.8203 -0.1603 0.5490 -vn 0.5458 -0.3151 0.7764 -vn -0.5458 0.3151 0.7764 -vn -0.2713 0.7906 0.5490 -vn 0.8203 0.1603 0.5490 -vn -0.1576 0.9875 0.0000 -vn 0.9340 0.3572 0.0000 -vn -0.2713 0.7906 -0.5490 -vn 0.5458 -0.3151 -0.7764 -vn 0.0000 0.3491 -0.9371 -vn 0.5490 -0.6302 -0.5490 -vn 0.0000 -0.6302 -0.7764 -vn 0.6626 0.3491 -0.6626 -vn 0.7764 -0.6302 0.0000 -vn 0.6626 0.3491 0.6626 -vn 0.5490 -0.6302 0.5490 -vn 0.0000 -0.6302 0.7764 -vn 0.0000 0.3491 0.9371 -vn -0.5490 -0.6302 0.5490 -vn -0.6626 0.3491 0.6626 -vn -0.7764 -0.6302 0.0000 -vn 0.3275 0.8863 0.3275 -vn 0.0000 0.8863 0.4631 -vn -0.9371 0.3491 0.0000 -vn -0.5490 -0.6302 -0.5490 -vn -0.6626 0.3491 -0.6626 -vn -0.3275 0.8863 -0.3275 -vn 0.9371 0.3491 0.0000 -vn 0.3275 0.8863 -0.3275 -vn 0.4631 0.8863 0.0000 -vn -0.3275 0.8863 0.3275 -vn 0.0000 0.8863 -0.4631 -vn -0.4631 0.8863 0.0000 -vn 0.4924 0.8529 -0.1735 -vn 0.0000 0.9848 -0.1735 -vn 0.6733 0.6889 0.2684 -vn 0.8529 0.4924 -0.1735 -vn 0.6889 0.6733 0.2684 -vn 0.9848 0.0000 -0.1735 -vn 0.8529 -0.4924 -0.1735 -vn 0.6889 -0.6733 0.2684 -vn 0.4924 -0.8529 -0.1735 -vn 0.6733 -0.6889 0.2684 -vn 0.0000 -0.9848 -0.1735 -vn -0.4924 -0.8529 -0.1735 -vn -0.6733 -0.6889 0.2684 -vn -0.8529 -0.4924 -0.1735 -vn -0.6889 -0.6733 0.2684 -vn -0.9848 0.0000 -0.1735 -vn -0.8529 0.4924 -0.1735 -vn -0.9320 -0.1065 0.3464 -vn -0.7571 0.0000 0.6532 -vn -0.6889 0.6733 0.2684 -vn -0.4924 0.8529 -0.1735 -vn -0.6733 0.6889 0.2684 -vn -0.4252 -0.7366 -0.5259 -vn 0.7366 -0.4252 -0.5259 -vn 0.5694 0.0000 -0.8220 -vn 0.8505 0.0000 -0.5259 -vn 0.0000 -0.8505 -0.5259 -vn 0.4252 -0.7366 -0.5259 -vn -0.4252 0.7366 -0.5259 -vn 0.4252 0.7366 -0.5259 -vn 0.0000 0.8505 -0.5259 -vn 0.7366 0.4252 -0.5259 -vn -0.7366 0.4252 -0.5259 -vn -0.8505 0.0000 -0.5259 -vn -0.7366 -0.4252 -0.5259 -vn 0.0000 -0.5694 -0.8220 -vn -0.1066 -0.1846 -0.9770 -vn 0.0000 -0.2132 -0.9770 -vn -0.2847 0.4931 -0.8220 -vn -0.4931 0.2847 -0.8220 -vn 0.2847 0.4931 -0.8220 -vn 0.0000 0.5694 -0.8220 -vn -0.4931 -0.2847 -0.8220 -vn -0.2847 -0.4931 -0.8220 -vn 0.4931 -0.2847 -0.8220 -vn 0.2847 -0.4931 -0.8220 -vn 0.4931 0.2847 -0.8220 -vn -0.5694 0.0000 -0.8220 -vn -0.6377 0.0000 -0.7703 -vn 0.2132 0.0000 -0.9770 -vn -0.1846 0.1066 -0.9770 -vn 0.1066 0.1846 -0.9770 -vn 0.0000 0.2132 -0.9770 -vn 0.1846 -0.1066 -0.9770 -vn -0.1066 0.1846 -0.9770 -vn -0.1846 -0.1066 -0.9770 -vn 0.1066 -0.1846 -0.9770 -vn 0.1846 0.1066 -0.9770 -vn -0.2132 0.0000 -0.9770 -vn -0.3189 -0.5523 -0.7703 -vn 0.0000 -0.6377 -0.7703 -vn 0.6377 0.0000 -0.7703 -vn -0.3189 0.5523 -0.7703 -vn -0.5523 0.3189 -0.7703 -vn 0.3189 0.5523 -0.7703 -vn 0.0000 0.6377 -0.7703 -vn -0.5523 -0.3189 -0.7703 -vn 0.5523 -0.3189 -0.7703 -vn 0.3189 -0.5523 -0.7703 -vn 0.5523 0.3189 -0.7703 -vn 0.6377 0.0000 0.7703 -vn 0.6557 -0.3786 0.6532 -vn 0.5523 -0.3189 0.7703 -vn 0.9320 -0.1065 0.3464 -vn 0.7571 0.0000 0.6532 -vn 0.1065 0.9320 0.3464 -vn 0.0000 0.7571 0.6532 -vn 0.3786 0.6557 0.6532 -vn -0.6557 0.3786 0.6532 -vn -0.9320 0.1065 0.3464 -vn 0.1065 -0.9320 0.3464 -vn 0.3786 -0.6557 0.6532 -vn -0.3786 -0.6557 0.6532 -vn -0.1065 -0.9320 0.3464 -vn 0.9320 0.1065 0.3464 -vn 0.6557 0.3786 0.6532 -vn -0.3786 0.6557 0.6532 -vn -0.1065 0.9320 0.3464 -vn 0.0000 -0.7571 0.6532 -vn -0.6557 -0.3786 0.6532 -vn 0.7624 0.3158 0.5648 -vn 0.3158 -0.7624 0.5648 -vn -0.7624 -0.3158 0.5648 -vn -0.3158 0.7624 0.5648 -vn 0.3083 -0.7443 0.5924 -vn 0.0000 -0.6377 0.7703 -vn -0.7443 0.3083 0.5924 -vn -0.6377 0.0000 0.7703 -vn 0.3083 0.7443 0.5924 -vn -0.3083 0.7443 0.5924 -vn 0.0000 0.6377 0.7703 -vn 0.7443 -0.3083 0.5924 -vn -0.3083 -0.7443 0.5924 -vn 0.7443 0.3083 0.5924 -vn -0.7624 0.3158 0.5648 -vn 0.3158 0.7624 0.5648 -vn -0.7443 -0.3083 0.5924 -vn 0.7624 -0.3158 0.5648 -vn -0.3158 -0.7624 0.5648 -vn -0.5523 0.3189 0.7703 -vn -0.3189 0.5523 0.7703 -vn 0.3189 0.5523 0.7703 -vn -0.3189 -0.5523 0.7703 -vn -0.5523 -0.3189 0.7703 -vn 0.3189 -0.5523 0.7703 -vn 0.5523 0.3189 0.7703 -vn -0.7572 0.0000 0.6532 -vn -0.5490 0.5490 -0.6302 -vn -0.5490 -0.5490 -0.6302 -vn 0.0000 -0.7764 -0.6302 -vn 0.5490 -0.5490 -0.6302 -vn 0.7764 0.0000 -0.6302 -vn 0.0000 0.7764 -0.6302 -vn -0.8626 0.4980 0.0889 -vn 0.0000 0.7764 0.6302 -vn 0.2713 -0.7906 0.5490 -vn 0.8203 0.1603 -0.5490 -vn -0.7764 0.0000 -0.6302 -vn 0.5490 0.5490 -0.6302 -usemtl None -s off -f 170/1/1 166/2/1 162/3/1 -f 270/4/2 271/5/2 269/6/2 -f 276/7/3 277/8/3 272/9/3 -f 276/10/4 273/11/4 275/12/4 -f 274/13/1 269/14/1 273/15/1 -f 275/16/5 269/17/5 271/18/5 -f 272/9/6 274/13/6 276/7/6 -f 277/19/7 279/20/7 278/21/7 -f 271/5/2 277/22/2 278/23/2 -f 275/12/4 280/24/4 276/10/4 -f 271/18/8 279/20/8 275/16/8 -f 294/25/4 290/26/4 286/27/4 -f 287/28/2 293/29/2 295/30/2 -f 310/31/4 306/32/4 302/33/4 -f 303/34/2 309/35/2 311/36/2 -f 323/37/2 321/38/2 322/39/2 -f 316/40/7 326/41/7 315/42/7 -f 320/43/4 327/44/4 319/45/4 -f 318/46/1 313/47/1 317/48/1 -f 326/49/5 313/50/5 315/51/5 -f 316/52/6 318/53/6 325/54/6 -f 313/50/5 321/38/5 315/51/5 -f 313/47/1 323/55/1 322/56/1 -f 325/57/7 331/58/7 320/59/7 -f 315/42/7 324/60/7 316/40/7 -f 325/57/7 319/61/7 326/41/7 -f 326/49/5 327/44/5 317/62/5 -f 318/46/1 332/63/1 336/64/1 -f 317/48/1 328/65/1 318/46/1 -f 334/66/6 329/67/6 333/68/6 -f 336/69/6 331/70/6 335/71/6 -f 316/52/4 333/68/4 314/72/4 -f 324/60/7 334/73/7 316/40/7 -f 320/43/4 332/74/4 328/75/4 -f 323/37/2 330/76/2 324/77/2 -f 314/78/1 329/67/1 323/55/1 -f 318/53/2 335/71/2 325/54/2 -f 338/79/9 339/80/9 337/81/9 -f 340/82/10 341/83/10 339/80/10 -f 341/83/11 344/84/11 343/85/11 -f 344/84/12 345/86/12 343/85/12 -f 345/87/13 348/88/13 347/89/13 -f 347/89/14 350/90/14 349/91/14 -f 350/90/15 351/92/15 349/91/15 -f 352/93/16 337/81/16 351/92/16 -f 359/94/4 357/95/4 355/96/4 -f 362/97/9 363/98/9 361/99/9 -f 364/100/10 365/101/10 363/98/10 -f 366/102/11 367/103/11 365/101/11 -f 368/104/12 369/105/12 367/103/12 -f 369/106/13 372/107/13 371/108/13 -f 371/108/14 374/109/14 373/110/14 -f 373/110/15 376/111/15 375/112/15 -f 375/112/16 362/97/16 361/99/16 -f 383/113/4 380/114/4 379/115/4 -f 386/116/9 387/117/9 385/118/9 -f 388/119/10 389/120/10 387/117/10 -f 390/121/11 391/122/11 389/120/11 -f 392/123/12 393/124/12 391/122/12 -f 394/125/13 395/126/13 393/127/13 -f 396/128/14 397/129/14 395/126/14 -f 397/129/15 400/130/15 399/131/15 -f 400/130/16 385/118/16 399/131/16 -f 407/132/4 404/133/4 403/134/4 -f 409/135/9 412/136/9 411/137/9 -f 411/137/10 414/138/10 413/139/10 -f 414/138/11 415/140/11 413/139/11 -f 416/141/12 417/142/12 415/140/12 -f 417/143/13 420/144/13 419/145/13 -f 420/144/14 421/146/14 419/145/14 -f 422/147/15 423/148/15 421/146/15 -f 424/149/16 409/135/16 423/148/16 -f 431/150/4 428/151/4 427/152/4 -f 446/153/17 442/154/17 434/155/17 -f 439/156/18 443/157/18 435/158/18 -f 449/159/19 452/160/19 451/161/19 -f 452/160/4 453/162/4 451/161/4 -f 453/162/20 456/163/20 455/164/20 -f 456/165/21 457/166/21 455/167/21 -f 450/168/1 456/169/1 454/170/1 -f 458/171/2 459/172/2 457/166/2 -f 460/173/22 449/159/22 459/172/22 -f 451/174/7 455/175/7 449/176/7 -f 462/177/2 463/178/2 461/179/2 -f 468/180/4 465/181/4 467/182/4 -f 462/183/2 461/184/2 469/185/2 -f 467/186/5 461/179/5 463/178/5 -f 464/187/6 466/188/6 468/180/6 -f 461/189/2 473/190/2 469/191/2 -f 462/183/23 471/192/23 466/193/23 -f 465/194/4 466/193/4 471/192/4 -f 461/189/7 470/195/7 472/196/7 -f 471/197/4 470/198/4 465/199/4 -f 469/191/1 474/200/1 471/197/1 -f 477/201/4 476/202/4 475/203/4 -f 479/204/2 482/205/2 481/206/2 -f 476/207/4 483/208/4 475/209/4 -f 475/203/5 481/210/5 477/201/5 -f 480/211/6 478/212/6 482/205/6 -f 487/213/4 475/214/4 483/215/4 -f 485/216/23 476/207/23 480/217/23 -f 479/218/2 485/216/2 480/217/2 -f 486/219/7 479/220/7 475/214/7 -f 484/221/2 485/222/2 479/223/2 -f 488/224/1 483/215/1 485/222/1 -f 491/225/2 490/226/2 489/227/2 -f 493/228/4 496/229/4 495/230/4 -f 490/231/2 497/232/2 489/233/2 -f 489/227/6 495/234/6 491/225/6 -f 494/235/5 492/236/5 496/229/5 -f 501/237/2 489/233/2 497/238/2 -f 494/239/24 497/232/24 490/231/24 -f 493/240/4 499/241/4 494/239/4 -f 500/242/7 493/243/7 489/233/7 -f 498/244/4 499/245/4 493/246/4 -f 502/247/1 497/238/1 499/245/1 -f 504/248/4 505/249/4 503/250/4 -f 510/251/2 507/252/2 509/253/2 -f 504/254/4 503/255/4 511/256/4 -f 509/257/6 503/250/6 505/249/6 -f 506/258/5 508/259/5 510/251/5 -f 503/260/4 515/261/4 511/262/4 -f 504/254/24 513/263/24 508/264/24 -f 507/265/2 508/264/2 513/263/2 -f 507/266/7 514/267/7 503/260/7 -f 513/268/2 512/269/2 507/270/2 -f 511/262/1 516/271/1 513/268/1 -f 522/272/25 517/273/25 518/274/25 -f 523/275/26 522/272/26 524/276/26 -f 519/277/27 524/278/27 520/279/27 -f 521/280/28 525/281/28 517/282/28 -f 518/274/29 519/277/29 520/279/29 -f 519/283/29 517/282/29 525/281/29 -f 519/284/29 529/285/29 527/286/29 -f 521/280/26 523/287/26 526/288/26 -f 527/289/29 529/290/29 531/291/29 -f 523/292/5 527/286/5 528/293/5 -f 526/294/26 528/295/26 530/296/26 -f 526/294/6 529/285/6 525/297/6 -f 527/298/29 535/299/29 534/300/29 -f 530/301/26 528/302/26 532/303/26 -f 530/301/30 531/291/30 529/290/30 -f 527/298/25 533/304/25 528/305/25 -f 532/306/26 533/307/26 536/308/26 -f 532/306/27 535/299/27 531/309/27 -f 543/310/5 547/311/5 551/312/5 -f 559/313/6 556/314/6 555/315/6 -f 570/316/1 568/317/1 569/318/1 -f 575/319/5 569/320/5 568/321/5 -f 576/322/7 562/323/7 575/319/7 -f 578/324/2 587/325/2 564/326/2 -f 569/327/2 563/328/2 570/329/2 -f 570/330/5 571/331/5 567/332/5 -f 582/333/4 589/334/4 590/335/4 -f 567/336/4 572/337/4 568/338/4 -f 573/339/2 584/340/2 562/341/2 -f 575/342/4 565/343/4 576/344/4 -f 576/345/5 561/346/5 573/347/5 -f 581/348/4 588/349/4 589/334/4 -f 562/341/2 578/324/2 569/327/2 -f 568/338/4 582/333/4 575/342/4 -f 569/327/2 564/326/2 579/350/2 -f 572/337/4 581/348/4 568/338/4 -f 584/340/2 577/351/2 562/341/2 -f 575/342/4 566/352/4 583/353/4 -f 586/354/6 590/355/6 589/356/6 -f 589/356/6 587/357/6 586/354/6 -f 585/358/6 591/359/6 590/355/6 -f 577/351/2 592/360/2 585/361/2 -f 577/351/2 586/362/2 578/324/2 -f 566/363/31 592/364/31 574/365/31 -f 582/333/4 591/366/4 566/352/4 -f 564/367/32 588/368/32 580/369/32 -f 642/370/7 653/371/7 654/372/7 -f 642/373/7 655/374/7 643/375/7 -f 644/376/7 655/377/7 656/378/7 -f 645/379/7 656/380/7 657/381/7 -f 645/382/7 658/383/7 646/384/7 -f 646/385/7 659/386/7 647/387/7 -f 647/388/7 660/389/7 648/390/7 -f 648/391/7 661/392/7 649/393/7 -f 649/394/7 662/395/7 650/396/7 -f 651/397/7 662/398/7 663/399/7 -f 652/400/7 663/401/7 664/402/7 -f 652/403/7 653/404/7 641/405/7 -f 714/406/1 701/407/1 702/408/1 -f 716/409/1 703/410/1 715/411/1 -f 716/409/1 705/412/1 704/413/1 -f 718/414/1 707/415/1 706/416/1 -f 720/417/1 707/415/1 719/418/1 -f 721/419/1 710/420/1 709/421/1 -f 722/422/1 711/423/1 710/420/1 -f 714/424/1 712/425/1 724/426/1 -f 614/427/1 688/428/1 687/429/1 -f 596/430/1 679/431/1 677/432/1 -f 602/433/1 682/434/1 681/435/1 -f 608/436/1 685/437/1 684/438/1 -f 689/439/1 726/440/1 690/441/1 -f 691/442/1 725/443/1 689/439/1 -f 692/444/1 727/445/1 691/442/1 -f 692/444/1 729/446/1 728/447/1 -f 694/448/1 729/446/1 693/449/1 -f 694/448/1 731/450/1 730/451/1 -f 696/452/1 731/450/1 695/453/1 -f 697/454/1 732/455/1 696/452/1 -f 697/454/1 734/456/1 733/457/1 -f 699/458/1 734/456/1 698/459/1 -f 699/458/1 736/460/1 735/461/1 -f 700/462/1 726/440/1 736/460/1 -f 747/463/1 741/464/1 739/465/1 -f 750/466/33 751/467/33 749/468/33 -f 751/467/17 754/469/17 753/470/17 -f 754/469/5 755/471/5 753/470/5 -f 755/472/34 758/473/34 757/474/34 -f 760/475/1 758/476/1 754/477/1 -f 757/474/18 760/478/18 759/479/18 -f 759/479/6 750/466/6 749/468/6 -f 751/480/7 757/481/7 759/482/7 -f 762/483/33 763/484/33 761/485/33 -f 764/486/17 765/487/17 763/484/17 -f 766/488/5 767/489/5 765/487/5 -f 768/490/34 769/491/34 767/492/34 -f 772/493/1 770/494/1 766/495/1 -f 769/491/18 772/496/18 771/497/18 -f 772/496/6 761/485/6 771/497/6 -f 763/498/7 769/499/7 771/500/7 -f 774/501/35 777/502/35 778/503/35 -f 778/503/36 779/504/36 780/505/36 -f 780/505/37 775/506/37 776/507/37 -f 773/508/38 782/509/38 777/510/38 -f 774/501/39 775/511/39 773/512/39 -f 775/513/39 781/514/39 773/508/39 -f 783/515/39 781/516/39 775/517/39 -f 777/510/36 782/509/36 779/518/36 -f 783/519/39 787/520/39 785/521/39 -f 784/522/6 775/523/6 779/524/6 -f 786/525/36 779/524/36 782/526/36 -f 785/527/5 782/526/5 781/516/5 -f 790/528/39 787/529/39 783/530/39 -f 786/531/36 788/532/36 784/533/36 -f 787/520/40 786/531/40 785/521/40 -f 784/534/35 790/535/35 783/536/35 -f 792/537/36 784/534/36 788/538/36 -f 787/529/37 792/537/37 788/538/37 -f 799/539/5 805/540/5 807/541/5 -f 815/542/6 812/543/6 811/544/6 -f 817/545/13 820/546/13 819/547/13 -f 819/547/14 822/548/14 821/549/14 -f 821/549/15 824/550/15 823/551/15 -f 824/550/16 825/552/16 823/551/16 -f 826/553/9 827/554/9 825/555/9 -f 828/556/10 829/557/10 827/554/10 -f 829/557/11 832/558/11 831/559/11 -f 832/558/12 817/545/12 831/559/12 -f 839/560/4 836/561/4 835/562/4 -f 842/563/13 843/564/13 841/565/13 -f 843/564/14 846/566/14 845/567/14 -f 845/567/15 848/568/15 847/569/15 -f 847/569/16 850/570/16 849/571/16 -f 849/572/9 852/573/9 851/574/9 -f 851/574/10 854/575/10 853/576/10 -f 854/575/11 855/577/11 853/576/11 -f 855/577/12 842/563/12 841/565/12 -f 863/578/4 860/579/4 859/580/4 -f 865/581/13 868/582/13 867/583/13 -f 867/583/14 870/584/14 869/585/14 -f 870/584/15 871/586/15 869/585/15 -f 871/586/16 874/587/16 873/588/16 -f 874/589/9 875/590/9 873/591/9 -f 875/590/10 878/592/10 877/593/10 -f 878/592/11 879/594/11 877/593/11 -f 880/595/12 865/581/12 879/594/12 -f 887/596/4 884/597/4 883/598/4 -f 889/599/13 892/600/13 891/601/13 -f 892/600/14 893/602/14 891/601/14 -f 894/603/15 895/604/15 893/602/15 -f 895/604/16 898/605/16 897/606/16 -f 898/607/9 899/608/9 897/609/9 -f 900/610/10 901/611/10 899/608/10 -f 902/612/11 903/613/11 901/611/11 -f 904/614/12 889/599/12 903/613/12 -f 911/615/4 909/616/4 906/617/4 -f 1020/618/7 1018/619/7 1014/620/7 -f 162/3/1 160/621/1 158/622/1 -f 158/622/1 172/623/1 162/3/1 -f 170/1/1 168/624/1 166/2/1 -f 166/2/1 164/625/1 162/3/1 -f 162/3/1 172/623/1 170/1/1 -f 270/4/2 272/626/2 271/5/2 -f 276/7/3 280/627/3 277/8/3 -f 276/10/4 274/628/4 273/11/4 -f 274/13/1 270/629/1 269/14/1 -f 275/16/5 273/630/5 269/17/5 -f 272/9/6 270/629/6 274/13/6 -f 277/19/7 280/631/7 279/20/7 -f 271/5/2 272/626/2 277/22/2 -f 275/12/4 279/632/4 280/24/4 -f 271/18/8 278/21/8 279/20/8 -f 302/33/4 300/633/4 310/31/4 -f 298/634/4 312/635/4 310/31/4 -f 310/31/4 308/636/4 306/32/4 -f 306/32/4 304/637/4 302/33/4 -f 300/633/4 298/634/4 310/31/4 -f 323/37/2 324/77/2 321/38/2 -f 316/40/7 325/57/7 326/41/7 -f 320/43/4 328/75/4 327/44/4 -f 318/46/1 314/78/1 313/47/1 -f 326/49/5 317/62/5 313/50/5 -f 316/52/6 314/72/6 318/53/6 -f 313/50/5 322/39/5 321/38/5 -f 313/47/1 314/78/1 323/55/1 -f 325/57/7 335/638/7 331/58/7 -f 315/42/7 321/639/7 324/60/7 -f 325/57/7 320/59/7 319/61/7 -f 326/49/5 319/45/5 327/44/5 -f 318/46/1 328/65/1 332/63/1 -f 317/48/1 327/640/1 328/65/1 -f 334/66/6 330/641/6 329/67/6 -f 336/69/6 332/642/6 331/70/6 -f 316/52/4 334/66/4 333/68/4 -f 324/60/7 330/643/7 334/73/7 -f 320/43/4 331/644/4 332/74/4 -f 323/37/2 329/645/2 330/76/2 -f 314/78/1 333/68/1 329/67/1 -f 318/53/2 336/69/2 335/71/2 -f 338/79/9 340/82/9 339/80/9 -f 340/82/10 342/646/10 341/83/10 -f 341/83/11 342/646/11 344/84/11 -f 344/84/12 346/647/12 345/86/12 -f 345/87/13 346/648/13 348/88/13 -f 347/89/14 348/88/14 350/90/14 -f 350/90/15 352/93/15 351/92/15 -f 352/93/16 338/79/16 337/81/16 -f 355/96/4 353/649/4 359/94/4 -f 354/650/4 360/651/4 359/94/4 -f 359/94/4 358/652/4 357/95/4 -f 357/95/4 356/653/4 355/96/4 -f 353/649/4 354/650/4 359/94/4 -f 362/97/9 364/100/9 363/98/9 -f 364/100/10 366/102/10 365/101/10 -f 366/102/11 368/104/11 367/103/11 -f 368/104/12 370/654/12 369/105/12 -f 369/106/13 370/655/13 372/107/13 -f 371/108/14 372/107/14 374/109/14 -f 373/110/15 374/109/15 376/111/15 -f 375/112/16 376/111/16 362/97/16 -f 379/115/4 377/656/4 383/113/4 -f 378/657/4 384/658/4 383/113/4 -f 383/113/4 382/659/4 381/660/4 -f 381/660/4 380/114/4 383/113/4 -f 377/656/4 378/657/4 383/113/4 -f 386/116/9 388/119/9 387/117/9 -f 388/119/10 390/121/10 389/120/10 -f 390/121/11 392/123/11 391/122/11 -f 392/123/12 394/661/12 393/124/12 -f 394/125/13 396/128/13 395/126/13 -f 396/128/14 398/662/14 397/129/14 -f 397/129/15 398/662/15 400/130/15 -f 400/130/16 386/116/16 385/118/16 -f 403/134/4 401/663/4 407/132/4 -f 402/664/4 408/665/4 407/132/4 -f 407/132/4 406/666/4 405/667/4 -f 405/667/4 404/133/4 407/132/4 -f 401/663/4 402/664/4 407/132/4 -f 409/135/9 410/668/9 412/136/9 -f 411/137/10 412/136/10 414/138/10 -f 414/138/11 416/141/11 415/140/11 -f 416/141/12 418/669/12 417/142/12 -f 417/143/13 418/670/13 420/144/13 -f 420/144/14 422/147/14 421/146/14 -f 422/147/15 424/149/15 423/148/15 -f 424/149/16 410/668/16 409/135/16 -f 427/152/4 425/671/4 426/672/4 -f 426/672/4 432/673/4 427/152/4 -f 431/150/4 430/674/4 429/675/4 -f 429/675/4 428/151/4 431/150/4 -f 427/152/4 432/673/4 431/150/4 -f 438/676/17 436/677/17 434/155/17 -f 434/155/17 448/678/17 446/153/17 -f 446/153/17 444/679/17 442/154/17 -f 442/154/17 440/680/17 438/676/17 -f 438/676/17 434/155/17 442/154/17 -f 447/681/18 433/682/18 435/158/18 -f 435/158/18 437/683/18 439/156/18 -f 439/156/18 441/684/18 443/157/18 -f 443/157/18 445/685/18 447/681/18 -f 447/681/18 435/158/18 443/157/18 -f 449/159/19 450/686/19 452/160/19 -f 452/160/4 454/687/4 453/162/4 -f 453/162/20 454/687/20 456/163/20 -f 456/165/21 458/171/21 457/166/21 -f 454/170/1 452/688/1 450/168/1 -f 450/168/1 460/689/1 458/690/1 -f 458/690/1 456/169/1 450/168/1 -f 458/171/2 460/173/2 459/172/2 -f 460/173/22 450/686/22 449/159/22 -f 459/691/7 449/176/7 455/175/7 -f 451/174/7 453/692/7 455/175/7 -f 455/175/7 457/693/7 459/691/7 -f 522/272/25 521/694/25 517/273/25 -f 523/275/26 521/694/26 522/272/26 -f 519/277/27 523/695/27 524/278/27 -f 521/280/28 526/288/28 525/281/28 -f 518/274/29 517/273/29 519/277/29 -f 519/284/29 525/297/29 529/285/29 -f 523/292/5 519/284/5 527/286/5 -f 526/294/26 523/696/26 528/295/26 -f 526/294/6 530/296/6 529/285/6 -f 527/298/29 531/309/29 535/299/29 -f 530/301/30 532/303/30 531/291/30 -f 527/298/25 534/300/25 533/304/25 -f 532/306/26 528/697/26 533/307/26 -f 532/306/27 536/308/27 535/299/27 -f 551/312/5 537/698/5 543/310/5 -f 539/699/5 541/700/5 543/310/5 -f 543/310/5 545/701/5 547/311/5 -f 547/311/5 549/702/5 551/312/5 -f 537/698/5 539/699/5 543/310/5 -f 555/315/6 553/703/6 554/704/6 -f 554/704/6 560/705/6 559/313/6 -f 559/313/6 558/706/6 557/707/6 -f 557/707/6 556/314/6 559/313/6 -f 555/315/6 554/704/6 559/313/6 -f 570/316/1 567/708/1 568/317/1 -f 575/319/5 562/323/5 569/320/5 -f 576/322/7 573/709/7 562/323/7 -f 578/324/2 586/362/2 587/325/2 -f 569/327/2 579/350/2 563/328/2 -f 570/330/5 563/710/5 571/331/5 -f 582/333/4 581/348/4 589/334/4 -f 567/336/4 571/711/4 572/337/4 -f 573/339/2 561/712/2 584/340/2 -f 575/342/4 583/353/4 565/343/4 -f 576/345/5 565/713/5 561/346/5 -f 581/348/4 580/714/4 588/349/4 -f 562/341/2 577/351/2 578/324/2 -f 568/338/4 581/348/4 582/333/4 -f 569/327/2 578/324/2 564/326/2 -f 572/337/4 580/714/4 581/348/4 -f 584/340/2 574/715/2 577/351/2 -f 575/342/4 582/333/4 566/352/4 -f 586/354/6 585/358/6 590/355/6 -f 589/356/6 588/368/6 587/357/6 -f 585/358/6 592/364/6 591/359/6 -f 577/351/2 574/715/2 592/360/2 -f 577/351/2 585/361/2 586/362/2 -f 566/363/31 591/359/31 592/364/31 -f 582/333/4 590/335/4 591/366/4 -f 564/367/32 587/357/32 588/368/32 -f 642/370/7 641/716/7 653/371/7 -f 642/373/7 654/717/7 655/374/7 -f 644/376/7 643/718/7 655/377/7 -f 645/379/7 644/719/7 656/380/7 -f 645/382/7 657/720/7 658/383/7 -f 646/385/7 658/721/7 659/386/7 -f 647/388/7 659/722/7 660/389/7 -f 648/391/7 660/723/7 661/392/7 -f 649/394/7 661/724/7 662/395/7 -f 651/397/7 650/725/7 662/398/7 -f 652/400/7 651/726/7 663/401/7 -f 652/403/7 664/727/7 653/404/7 -f 714/406/1 713/728/1 701/407/1 -f 716/409/1 704/413/1 703/410/1 -f 716/409/1 717/729/1 705/412/1 -f 718/414/1 719/418/1 707/415/1 -f 720/417/1 708/730/1 707/415/1 -f 721/419/1 722/422/1 710/420/1 -f 722/422/1 723/731/1 711/423/1 -f 714/424/1 702/732/1 712/425/1 -f 614/427/1 616/733/1 688/428/1 -f 596/430/1 598/734/1 679/431/1 -f 602/433/1 604/735/1 682/434/1 -f 608/436/1 610/736/1 685/437/1 -f 689/439/1 725/443/1 726/440/1 -f 691/442/1 727/445/1 725/443/1 -f 692/444/1 728/447/1 727/445/1 -f 692/444/1 693/449/1 729/446/1 -f 694/448/1 730/451/1 729/446/1 -f 694/448/1 695/453/1 731/450/1 -f 696/452/1 732/455/1 731/450/1 -f 697/454/1 733/457/1 732/455/1 -f 697/454/1 698/459/1 734/456/1 -f 699/458/1 735/461/1 734/456/1 -f 699/458/1 700/462/1 736/460/1 -f 700/462/1 690/441/1 726/440/1 -f 739/465/1 737/737/1 738/738/1 -f 738/738/1 748/739/1 739/465/1 -f 747/463/1 746/740/1 743/741/1 -f 745/742/1 744/743/1 743/741/1 -f 743/741/1 742/744/1 741/464/1 -f 741/464/1 740/745/1 739/465/1 -f 739/465/1 748/739/1 747/463/1 -f 746/740/1 745/742/1 743/741/1 -f 743/741/1 741/464/1 747/463/1 -f 750/466/33 752/746/33 751/467/33 -f 751/467/17 752/746/17 754/469/17 -f 754/469/5 756/747/5 755/471/5 -f 755/472/34 756/748/34 758/473/34 -f 754/477/1 752/749/1 750/750/1 -f 750/750/1 760/475/1 754/477/1 -f 758/476/1 756/751/1 754/477/1 -f 757/474/18 758/473/18 760/478/18 -f 759/479/6 760/478/6 750/466/6 -f 759/482/7 749/752/7 751/480/7 -f 751/480/7 753/753/7 755/754/7 -f 755/754/7 757/481/7 751/480/7 -f 762/483/33 764/486/33 763/484/33 -f 764/486/17 766/488/17 765/487/17 -f 766/488/5 768/755/5 767/489/5 -f 768/490/34 770/756/34 769/491/34 -f 766/495/1 764/757/1 762/758/1 -f 762/758/1 772/493/1 766/495/1 -f 770/494/1 768/759/1 766/495/1 -f 769/491/18 770/756/18 772/496/18 -f 772/496/6 762/483/6 761/485/6 -f 771/500/7 761/760/7 763/498/7 -f 763/498/7 765/761/7 767/762/7 -f 767/762/7 769/499/7 763/498/7 -f 774/501/35 773/512/35 777/502/35 -f 778/503/36 777/502/36 779/504/36 -f 780/505/37 779/504/37 775/506/37 -f 773/508/38 781/514/38 782/509/38 -f 774/501/39 776/763/39 775/511/39 -f 783/515/39 785/527/39 781/516/39 -f 784/522/6 783/764/6 775/523/6 -f 786/525/36 784/522/36 779/524/36 -f 785/527/5 786/525/5 782/526/5 -f 790/528/39 791/765/39 787/529/39 -f 787/520/40 788/532/40 786/531/40 -f 784/534/35 789/766/35 790/535/35 -f 792/537/36 789/766/36 784/534/36 -f 787/529/37 791/765/37 792/537/37 -f 807/541/5 793/767/5 799/539/5 -f 795/768/5 797/769/5 799/539/5 -f 799/539/5 801/770/5 803/771/5 -f 803/771/5 805/540/5 799/539/5 -f 793/767/5 795/768/5 799/539/5 -f 811/544/6 809/772/6 810/773/6 -f 810/773/6 816/774/6 815/542/6 -f 815/542/6 814/775/6 813/776/6 -f 813/776/6 812/543/6 815/542/6 -f 811/544/6 810/773/6 815/542/6 -f 817/545/13 818/777/13 820/546/13 -f 819/547/14 820/546/14 822/548/14 -f 821/549/15 822/548/15 824/550/15 -f 824/550/16 826/778/16 825/552/16 -f 826/553/9 828/556/9 827/554/9 -f 828/556/10 830/779/10 829/557/10 -f 829/557/11 830/779/11 832/558/11 -f 832/558/12 818/777/12 817/545/12 -f 835/562/4 833/780/4 839/560/4 -f 834/781/4 840/782/4 839/560/4 -f 839/560/4 838/783/4 837/784/4 -f 837/784/4 836/561/4 839/560/4 -f 833/780/4 834/781/4 839/560/4 -f 842/563/13 844/785/13 843/564/13 -f 843/564/14 844/785/14 846/566/14 -f 845/567/15 846/566/15 848/568/15 -f 847/569/16 848/568/16 850/570/16 -f 849/572/9 850/786/9 852/573/9 -f 851/574/10 852/573/10 854/575/10 -f 854/575/11 856/787/11 855/577/11 -f 855/577/12 856/787/12 842/563/12 -f 859/580/4 857/788/4 863/578/4 -f 858/789/4 864/790/4 863/578/4 -f 863/578/4 862/791/4 861/792/4 -f 861/792/4 860/579/4 863/578/4 -f 857/788/4 858/789/4 863/578/4 -f 865/581/13 866/793/13 868/582/13 -f 867/583/14 868/582/14 870/584/14 -f 870/584/15 872/794/15 871/586/15 -f 871/586/16 872/794/16 874/587/16 -f 874/589/9 876/795/9 875/590/9 -f 875/590/10 876/795/10 878/592/10 -f 878/592/11 880/595/11 879/594/11 -f 880/595/12 866/793/12 865/581/12 -f 883/598/4 881/796/4 887/596/4 -f 882/797/4 888/798/4 887/596/4 -f 887/596/4 886/799/4 885/800/4 -f 885/800/4 884/597/4 887/596/4 -f 881/796/4 882/797/4 887/596/4 -f 889/599/13 890/801/13 892/600/13 -f 892/600/14 894/603/14 893/602/14 -f 894/603/15 896/802/15 895/604/15 -f 895/604/16 896/802/16 898/605/16 -f 898/607/9 900/610/9 899/608/9 -f 900/610/10 902/612/10 901/611/10 -f 902/612/11 904/614/11 903/613/11 -f 904/614/12 890/801/12 889/599/12 -f 907/803/4 905/804/4 906/617/4 -f 906/617/4 912/805/4 911/615/4 -f 911/615/4 910/806/4 909/616/4 -f 909/616/4 908/807/4 907/803/4 -f 907/803/4 906/617/4 909/616/4 -f 1014/620/7 1012/808/7 1010/809/7 -f 1010/809/7 1024/810/7 1014/620/7 -f 1022/811/7 1020/618/7 1014/620/7 -f 1018/619/7 1016/812/7 1014/620/7 -f 1014/620/7 1024/810/7 1022/811/7 -f 286/27/4 284/813/4 294/25/4 -f 282/814/4 296/815/4 294/25/4 -f 294/25/4 292/816/4 290/26/4 -f 290/26/4 288/817/4 286/27/4 -f 284/813/4 282/814/4 294/25/4 -f 295/30/2 281/818/2 283/819/2 -f 283/819/2 285/820/2 295/30/2 -f 287/28/2 289/821/2 291/822/2 -f 291/822/2 293/29/2 287/28/2 -f 295/30/2 285/820/2 287/28/2 -f 311/36/2 297/823/2 299/824/2 -f 299/824/2 301/825/2 311/36/2 -f 303/34/2 305/826/2 307/827/2 -f 307/827/2 309/35/2 303/34/2 -f 311/36/2 301/825/2 303/34/2 -f 462/177/2 464/187/2 463/178/2 -f 468/180/4 466/188/4 465/181/4 -f 467/186/5 465/828/5 461/179/5 -f 464/187/6 462/177/6 466/188/6 -f 461/189/2 472/196/2 473/190/2 -f 462/183/23 469/185/23 471/192/23 -f 461/189/7 465/829/7 470/195/7 -f 471/197/4 474/200/4 470/198/4 -f 469/191/1 473/190/1 474/200/1 -f 477/201/4 478/212/4 476/202/4 -f 479/204/2 480/211/2 482/205/2 -f 475/203/5 479/830/5 481/210/5 -f 480/211/6 476/202/6 478/212/6 -f 487/213/4 486/219/4 475/214/4 -f 485/216/23 483/208/23 476/207/23 -f 486/219/7 484/831/7 479/220/7 -f 484/221/2 488/224/2 485/222/2 -f 488/224/1 487/213/1 483/215/1 -f 491/225/2 492/236/2 490/226/2 -f 493/228/4 494/235/4 496/229/4 -f 489/227/6 493/832/6 495/234/6 -f 494/235/5 490/226/5 492/236/5 -f 501/237/2 500/242/2 489/233/2 -f 494/239/24 499/241/24 497/232/24 -f 500/242/7 498/833/7 493/243/7 -f 498/244/4 502/247/4 499/245/4 -f 502/247/1 501/237/1 497/238/1 -f 504/248/4 506/258/4 505/249/4 -f 510/251/2 508/259/2 507/252/2 -f 509/257/6 507/834/6 503/250/6 -f 506/258/5 504/248/5 508/259/5 -f 503/260/4 514/267/4 515/261/4 -f 504/254/24 511/256/24 513/263/24 -f 507/266/7 512/835/7 514/267/7 -f 513/268/2 516/271/2 512/269/2 -f 511/262/1 515/261/1 516/271/1 -s 1 -f 13/836/41 12/837/42 1/838/43 -f 14/839/44 1/838/43 2/840/45 -f 15/841/46 2/840/45 3/842/47 -f 16/843/48 3/842/47 4/844/49 -f 17/845/50 4/844/49 5/846/51 -f 18/847/52 5/846/51 6/848/53 -f 7/849/54 18/850/52 6/851/53 -f 8/852/55 19/853/56 7/849/54 -f 9/854/57 20/855/58 8/852/55 -f 10/856/59 21/857/60 9/854/57 -f 11/858/61 22/859/62 10/856/59 -f 12/837/42 23/860/63 11/858/61 -f 25/861/64 24/862/65 13/836/41 -f 26/863/66 13/836/41 14/839/44 -f 27/864/67 14/839/44 15/841/46 -f 28/865/68 15/841/46 16/843/48 -f 29/866/69 16/843/48 17/845/50 -f 30/867/70 17/845/50 18/847/52 -f 19/853/56 30/868/70 18/850/52 -f 20/855/58 31/869/71 19/853/56 -f 21/857/60 32/870/72 20/855/58 -f 22/859/62 33/871/73 21/857/60 -f 23/860/63 34/872/74 22/859/62 -f 24/862/65 35/873/75 23/860/63 -f 37/874/76 36/875/77 25/861/64 -f 38/876/78 25/861/64 26/863/66 -f 39/877/79 26/863/66 27/864/67 -f 40/878/80 27/864/67 28/865/68 -f 41/879/81 28/865/68 29/866/69 -f 42/880/82 29/866/69 30/867/70 -f 31/869/71 42/881/82 30/868/70 -f 32/870/72 43/882/83 31/869/71 -f 33/871/73 44/883/84 32/870/72 -f 34/872/74 45/884/85 33/871/73 -f 35/873/75 46/885/86 34/872/74 -f 36/875/77 47/886/87 35/873/75 -f 37/874/76 60/887/88 48/888/89 -f 38/876/78 49/889/90 37/874/76 -f 39/877/79 50/890/91 38/876/78 -f 40/878/80 51/891/92 39/877/79 -f 41/879/81 52/892/93 40/878/80 -f 42/880/82 53/893/94 41/879/81 -f 55/894/95 42/881/82 43/882/83 -f 56/895/96 43/882/83 44/883/84 -f 57/896/97 44/883/84 45/884/85 -f 58/897/98 45/884/85 46/885/86 -f 59/898/99 46/885/86 47/886/87 -f 60/887/88 47/886/87 48/888/89 -f 49/889/90 72/899/100 60/887/88 -f 50/890/91 61/900/101 49/889/90 -f 51/891/92 62/901/102 50/890/91 -f 52/892/93 63/902/103 51/891/92 -f 53/893/94 64/903/104 52/892/93 -f 54/904/105 65/905/106 53/893/94 -f 67/906/107 54/907/105 55/894/95 -f 68/908/108 55/894/95 56/895/96 -f 69/909/109 56/895/96 57/896/97 -f 70/910/110 57/896/97 58/897/98 -f 71/911/111 58/897/98 59/898/99 -f 72/899/100 59/898/99 60/887/88 -f 61/900/101 84/912/112 72/899/100 -f 62/901/102 73/913/113 61/900/101 -f 63/902/103 74/914/114 62/901/102 -f 64/903/104 75/915/115 63/902/103 -f 65/905/106 76/916/116 64/903/104 -f 66/917/117 77/918/118 65/905/106 -f 79/919/119 66/920/117 67/906/107 -f 80/921/120 67/906/107 68/908/108 -f 81/922/121 68/908/108 69/909/109 -f 82/923/122 69/909/109 70/910/110 -f 83/924/123 70/910/110 71/911/111 -f 84/912/112 71/911/111 72/899/100 -f 73/913/113 96/925/124 84/912/112 -f 74/914/114 85/926/125 73/913/113 -f 75/915/115 86/927/126 74/914/114 -f 76/916/116 87/928/127 75/915/115 -f 77/918/118 88/929/128 76/916/116 -f 78/930/129 89/931/130 77/918/118 -f 91/932/131 78/933/129 79/919/119 -f 92/934/132 79/919/119 80/921/120 -f 93/935/133 80/921/120 81/922/121 -f 94/936/134 81/922/121 82/923/122 -f 95/937/135 82/923/122 83/924/123 -f 96/925/124 83/924/123 84/912/112 -f 85/926/125 108/938/136 96/925/124 -f 86/927/126 97/939/137 85/926/125 -f 87/928/127 98/940/138 86/927/126 -f 88/929/128 99/941/21 87/928/127 -f 89/931/130 100/942/139 88/929/128 -f 90/943/140 101/944/141 89/931/130 -f 103/945/142 90/946/140 91/932/131 -f 104/947/143 91/932/131 92/934/132 -f 105/948/19 92/934/132 93/935/133 -f 106/949/144 93/935/133 94/936/134 -f 107/950/145 94/936/134 95/937/135 -f 108/938/136 95/937/135 96/925/124 -f 97/939/137 120/951/146 108/938/136 -f 98/940/138 109/952/147 97/939/137 -f 99/941/21 110/953/148 98/940/138 -f 100/942/139 111/954/149 99/941/21 -f 101/944/141 112/955/150 100/942/139 -f 102/956/151 113/957/152 101/944/141 -f 115/958/153 102/959/151 103/945/142 -f 116/960/154 103/945/142 104/947/143 -f 117/961/155 104/947/143 105/948/19 -f 118/962/156 105/948/19 106/949/144 -f 119/963/157 106/949/144 107/950/145 -f 120/951/146 107/950/145 108/938/136 -f 109/952/147 132/964/158 120/951/146 -f 110/953/148 121/965/159 109/952/147 -f 111/954/149 122/966/160 110/953/148 -f 112/955/150 123/967/161 111/954/149 -f 113/957/152 124/968/162 112/955/150 -f 114/969/163 125/970/164 113/957/152 -f 127/971/165 114/972/163 115/958/153 -f 128/973/166 115/958/153 116/960/154 -f 129/974/167 116/960/154 117/961/155 -f 130/975/168 117/961/155 118/962/156 -f 131/976/169 118/962/156 119/963/157 -f 132/964/158 119/963/157 120/951/146 -f 121/965/159 144/977/170 132/964/158 -f 122/966/160 133/978/171 121/965/159 -f 123/967/161 134/979/172 122/966/160 -f 124/968/162 135/980/173 123/967/161 -f 125/970/164 136/981/174 124/968/162 -f 126/982/175 137/983/176 125/970/164 -f 139/984/177 126/985/175 127/971/165 -f 140/986/178 127/971/165 128/973/166 -f 141/987/179 128/973/166 129/974/167 -f 142/988/180 129/974/167 130/975/168 -f 143/989/181 130/975/168 131/976/169 -f 144/977/170 131/976/169 132/964/158 -f 133/978/171 156/990/182 144/977/170 -f 134/979/172 145/991/183 133/978/171 -f 135/980/173 146/992/184 134/979/172 -f 136/981/174 147/993/185 135/980/173 -f 137/983/176 148/994/186 136/981/174 -f 138/995/187 149/996/188 137/983/176 -f 151/997/189 138/998/187 139/984/177 -f 152/999/190 139/984/177 140/986/178 -f 153/1000/191 140/986/178 141/987/179 -f 154/1001/192 141/987/179 142/988/180 -f 155/1002/193 142/988/180 143/989/181 -f 156/990/182 143/989/181 144/977/170 -f 157/1003/6 160/1004/194 159/1005/195 -f 160/1004/194 161/1006/4 159/1005/195 -f 162/1007/196 163/1008/197 161/1006/4 -f 164/1009/198 165/1010/5 163/1008/197 -f 166/1011/199 167/1012/200 165/1013/5 -f 168/1014/201 169/1015/2 167/1012/200 -f 170/1016/202 171/1017/203 169/1015/2 -f 172/1018/204 157/1003/6 171/1017/203 -f 181/1019/33 174/1020/205 173/1021/4 -f 174/1020/205 183/1022/206 175/1023/207 -f 183/1022/206 176/1024/208 175/1023/207 -f 184/1025/209 177/1026/2 176/1024/208 -f 177/1027/2 186/1028/210 178/1029/211 -f 178/1029/211 187/1030/212 179/1031/213 -f 187/1030/212 180/1032/214 179/1031/213 -f 180/1032/214 181/1019/33 173/1021/4 -f 189/1033/19 182/1034/215 181/1019/33 -f 182/1034/215 191/1035/216 183/1036/206 -f 183/1036/206 192/1037/217 184/1038/209 -f 192/1037/217 185/1039/34 184/1038/209 -f 193/1040/21 186/1041/210 185/1042/34 -f 194/1043/218 187/1044/212 186/1041/210 -f 195/1045/219 188/1046/220 187/1044/212 -f 188/1046/220 189/1033/19 181/1019/33 -f 189/1033/19 198/1047/221 190/1048/222 -f 198/1047/221 191/1049/216 190/1048/222 -f 199/1050/223 192/1051/217 191/1049/216 -f 200/1052/224 193/1053/21 192/1051/217 -f 193/1054/21 202/1055/225 194/1056/218 -f 194/1056/218 203/1057/226 195/1058/219 -f 195/1058/219 204/1059/227 196/1060/228 -f 196/1060/228 197/1061/6 189/1033/19 -f 205/1062/22 198/1047/221 197/1061/6 -f 198/1047/221 207/1063/229 199/1064/223 -f 199/1064/223 208/1065/230 200/1066/224 -f 208/1065/230 201/1067/5 200/1066/224 -f 201/1068/5 210/1069/231 202/1070/225 -f 210/1069/231 203/1071/226 202/1070/225 -f 211/1072/232 204/1059/227 203/1071/226 -f 204/1059/227 205/1062/22 197/1061/6 -f 205/1062/22 214/1073/233 206/1074/234 -f 214/1073/233 207/1075/229 206/1074/234 -f 215/1076/235 208/1077/230 207/1075/229 -f 208/1077/230 217/1078/17 209/1079/20 -f 217/1080/17 210/1081/231 209/1082/20 -f 210/1081/231 219/1083/236 211/1084/232 -f 211/1084/232 220/1085/237 212/1086/238 -f 220/1085/237 205/1062/22 212/1086/238 -f 221/1087/2 214/1073/233 213/1088/18 -f 222/1089/239 215/1090/235 214/1073/233 -f 215/1090/235 224/1091/240 216/1092/241 -f 224/1091/240 217/1093/17 216/1092/241 -f 225/1094/4 218/1095/242 217/1096/17 -f 226/1097/243 219/1098/236 218/1095/242 -f 219/1098/236 228/1099/244 220/1085/237 -f 228/1099/244 213/1088/18 220/1085/237 -f 221/1087/2 230/1100/245 222/1089/239 -f 230/1100/245 223/1101/246 222/1089/239 -f 223/1101/246 232/1102/247 224/1103/240 -f 232/1102/247 225/1104/4 224/1103/240 -f 233/1105/33 226/1106/243 225/1107/4 -f 234/1108/248 227/1109/249 226/1106/243 -f 227/1109/249 236/1110/250 228/1099/244 -f 236/1110/250 221/1087/2 228/1099/244 -f 229/1111/34 238/1112/251 230/1100/245 -f 238/1112/251 231/1113/252 230/1100/245 -f 231/1113/252 240/1114/253 232/1115/247 -f 240/1114/253 233/1116/33 232/1115/247 -f 233/1117/33 242/1118/254 234/1119/248 -f 242/1118/254 235/1120/255 234/1119/248 -f 235/1120/255 244/1121/256 236/1110/250 -f 244/1121/256 229/1111/34 236/1110/250 -f 237/1122/21 246/1123/257 238/1112/251 -f 246/1123/257 239/1124/258 238/1112/251 -f 247/1125/259 240/1126/253 239/1124/258 -f 248/1127/260 241/1128/19 240/1126/253 -f 241/1129/19 250/1130/261 242/1131/254 -f 250/1130/261 243/1132/262 242/1131/254 -f 243/1132/262 252/1133/263 244/1121/256 -f 252/1133/263 237/1122/21 244/1121/256 -f 253/1134/20 246/1135/257 245/1136/5 -f 246/1135/257 255/1137/264 247/1138/259 -f 247/1138/259 256/1139/265 248/1140/260 -f 256/1139/265 249/1141/6 248/1140/260 -f 257/1142/22 250/1143/261 249/1144/6 -f 258/1145/266 251/1146/267 250/1143/261 -f 259/1147/268 252/1148/263 251/1146/267 -f 252/1148/263 253/1134/20 245/1136/5 -f 253/1134/20 262/1149/269 254/1150/270 -f 262/1149/269 255/1151/264 254/1150/270 -f 263/1152/271 256/1153/265 255/1151/264 -f 264/1154/272 257/1155/22 256/1153/265 -f 265/1156/18 258/1157/266 257/1158/22 -f 258/1157/266 267/1159/273 259/1160/268 -f 259/1160/268 268/1161/274 260/1162/275 -f 268/1161/274 253/1134/20 260/1162/275 -f 261/1163/17 174/1020/205 262/1149/269 -f 174/1020/205 263/1164/271 262/1149/269 -f 263/1164/271 176/1165/208 264/1166/272 -f 176/1165/208 265/1167/18 264/1166/272 -f 177/1168/2 266/1169/276 265/1170/18 -f 178/1171/211 267/1172/273 266/1169/276 -f 267/1172/273 180/1032/214 268/1161/274 -f 180/1032/214 261/1163/17 268/1161/274 -f 282/1173/277 283/1174/278 281/1175/279 -f 284/1176/280 285/1177/281 283/1174/278 -f 286/1178/282 287/1179/283 285/1180/281 -f 288/1181/284 289/1182/285 287/1179/283 -f 289/1182/285 292/1183/286 291/1184/287 -f 291/1184/287 294/1185/288 293/1186/289 -f 293/1186/289 296/1187/290 295/1188/291 -f 295/1188/291 282/1173/277 281/1175/279 -f 297/1189/279 300/1190/280 299/1191/278 -f 300/1190/280 301/1192/281 299/1191/278 -f 301/1193/281 304/1194/284 303/1195/283 -f 304/1194/284 305/1196/285 303/1195/283 -f 306/1197/292 307/1198/287 305/1196/285 -f 307/1198/287 310/1199/288 309/1200/289 -f 309/1200/289 312/1201/290 311/1202/291 -f 311/1202/291 298/1203/277 297/1189/279 -f 352/93/293 354/1204/294 338/79/295 -f 340/82/296 354/1204/294 353/1205/297 -f 342/646/298 356/1206/299 344/84/300 -f 350/90/301 358/1207/302 359/1208/303 -f 346/647/304 356/1206/299 357/1209/305 -f 350/90/301 360/1210/306 352/93/293 -f 340/82/296 355/1211/307 342/646/298 -f 346/648/304 358/1207/302 348/88/308 -f 362/97/295 384/1212/306 378/1213/294 -f 364/100/296 378/1213/294 377/1214/297 -f 366/102/298 380/1215/299 368/104/300 -f 374/109/301 382/1216/302 383/1217/303 -f 370/654/304 380/1215/299 381/1218/305 -f 374/109/301 384/1212/306 376/111/293 -f 364/100/296 379/1219/307 366/102/298 -f 372/107/308 381/1220/305 382/1216/302 -f 386/116/295 408/1221/306 402/1222/294 -f 386/116/295 401/1223/297 388/119/296 -f 390/121/298 404/1224/299 392/123/300 -f 398/662/301 406/1225/302 407/1226/303 -f 394/661/304 404/1224/299 405/1227/305 -f 400/130/293 407/1226/303 408/1221/306 -f 388/119/296 403/1228/307 390/121/298 -f 394/125/304 406/1225/302 396/128/308 -f 410/668/295 432/1229/306 426/1230/294 -f 412/136/296 426/1230/294 425/1231/297 -f 414/138/298 428/1232/299 416/141/300 -f 420/144/308 431/1233/303 422/147/301 -f 418/669/304 428/1232/299 429/1234/305 -f 424/149/293 431/1233/303 432/1229/306 -f 412/136/296 427/1235/307 414/138/298 -f 418/670/304 430/1236/302 420/144/308 -f 433/1237/309 436/1238/310 435/1239/311 -f 436/1238/310 437/1240/312 435/1239/311 -f 438/1241/313 439/1242/314 437/1243/312 -f 439/1242/314 442/1244/315 441/1245/316 -f 442/1244/315 443/1246/317 441/1245/316 -f 444/1247/318 445/1248/319 443/1246/317 -f 446/1249/320 447/1250/321 445/1248/319 -f 447/1250/321 434/1251/322 433/1237/309 -f 538/1252/323 539/1253/324 537/1254/325 -f 540/1255/326 541/1256/327 539/1253/324 -f 541/1256/327 544/1257/328 543/1258/329 -f 544/1257/328 545/1259/330 543/1258/329 -f 546/1260/331 547/1261/332 545/1259/330 -f 548/1262/333 549/1263/334 547/1261/332 -f 546/1260/331 556/1264/335 557/1265/336 -f 550/1266/337 551/1267/338 549/1268/334 -f 552/1269/339 537/1254/325 551/1267/338 -f 550/1266/337 560/1270/340 552/1269/339 -f 542/1271/341 553/1272/342 555/1273/343 -f 546/1260/331 558/1274/344 548/1262/333 -f 538/1252/323 560/1275/340 554/1276/345 -f 538/1252/323 553/1277/342 540/1255/326 -f 544/1257/328 555/1278/343 556/1279/335 -f 548/1262/333 559/1280/346 550/1281/337 -f 678/1282/6 595/1283/347 593/1284/348 -f 677/1285/349 597/1286/350 595/1283/347 -f 679/1287/351 599/1288/352 597/1286/350 -f 680/1289/4 601/1290/353 599/1288/352 -f 681/1291/354 603/1292/355 601/1290/353 -f 682/1293/356 605/1294/357 603/1292/355 -f 683/1295/5 607/1296/358 605/1297/357 -f 684/1298/359 609/1299/360 607/1296/358 -f 685/1300/361 611/1301/362 609/1299/360 -f 686/1302/2 613/1303/363 611/1301/362 -f 598/1304/364 728/1305/365 600/1306/2 -f 687/1307/366 615/1308/367 613/1303/363 -f 688/1309/368 593/1284/348 615/1308/367 -f 609/1299/360 624/1310/369 607/1296/358 -f 621/1311/370 632/1312/371 620/1313/372 -f 607/1296/358 623/1314/373 605/1297/357 -f 605/1294/357 622/1315/374 603/1292/355 -f 601/1290/353 622/1316/374 621/1317/370 -f 601/1290/353 620/1313/372 599/1288/352 -f 593/1284/348 628/1318/375 615/1308/367 -f 593/1284/348 618/1319/376 617/1320/377 -f 599/1288/352 619/1321/378 597/1286/350 -f 615/1308/367 627/1322/379 613/1303/363 -f 597/1286/350 618/1323/376 595/1283/347 -f 611/1301/362 627/1324/379 626/1325/380 -f 611/1301/362 625/1326/381 609/1299/360 -f 635/1327/382 660/389/383 659/722/384 -f 627/1322/379 640/1328/385 639/1329/386 -f 617/1320/377 630/1330/387 629/1331/388 -f 624/1310/369 637/1332/389 636/1333/390 -f 622/1316/374 633/1334/391 621/1317/370 -f 617/1335/377 640/1336/385 628/1318/375 -f 619/1337/378 630/1338/387 618/1323/376 -f 626/1339/380 637/1340/389 625/1326/381 -f 623/1341/373 634/1342/392 622/1315/374 -f 620/1343/372 631/1344/393 619/1321/378 -f 627/1324/379 638/1345/394 626/1325/380 -f 623/1314/373 636/1346/390 635/1327/382 -f 650/1347/395 675/1348/18 674/1349/2 -f 633/1350/391 656/380/396 632/1312/371 -f 640/1328/385 663/401/397 639/1329/386 -f 629/1331/388 654/372/398 653/371/399 -f 637/1332/389 660/723/383 636/1333/390 -f 634/1351/392 657/720/400 633/1334/391 -f 629/1352/388 664/727/401 640/1336/385 -f 631/1353/393 654/717/398 630/1338/387 -f 638/1354/394 661/724/402 637/1340/389 -f 635/1355/382 658/721/403 634/1342/392 -f 632/1356/371 655/377/404 631/1344/393 -f 638/1345/394 663/399/397 662/398/405 -f 648/1357/406 671/1358/5 647/1359/407 -f 644/1360/408 669/1361/17 668/1362/4 -f 652/1363/409 675/1348/18 651/1364/410 -f 642/1365/411 665/1366/6 641/1367/412 -f 649/1368/413 672/1369/21 648/1357/406 -f 645/1370/414 670/1371/20 669/1361/17 -f 641/1367/412 676/1372/22 652/1363/409 -f 642/1365/411 667/1373/33 666/1374/19 -f 650/1347/395 673/1375/34 649/1368/413 -f 646/1376/415 671/1377/5 670/1371/20 -f 643/1378/416 668/1362/4 667/1373/33 -f 692/1379/417 741/1380/418 693/1381/419 -f 614/1382/420 734/1383/421 735/1384/418 -f 608/1385/422 731/1386/423 732/1387/424 -f 600/1306/2 729/1388/425 602/1389/426 -f 616/1390/427 735/1384/418 736/1391/428 -f 594/1392/5 725/1393/429 596/1394/430 -f 610/1395/431 732/1387/424 733/1396/432 -f 602/1389/426 730/1397/433 604/1398/434 -f 616/1390/427 726/1399/435 594/1400/5 -f 596/1394/430 727/1401/436 598/1304/364 -f 612/1402/4 733/1396/432 734/1383/421 -f 604/1398/434 731/1386/423 606/1403/6 -f 677/1404/349 702/1405/423 701/1406/437 -f 679/1407/351 704/1408/421 680/1409/4 -f 680/1409/4 705/1410/438 681/1411/354 -f 682/1412/356 707/1413/435 683/1414/5 -f 683/1415/5 708/1416/439 684/1417/359 -f 685/1418/361 710/1419/365 686/1420/2 -f 686/1420/2 711/1421/440 687/1422/366 -f 688/1423/368 702/1405/423 678/1424/6 -f 594/1392/5 713/728/441 714/406/442 -f 600/1306/2 715/411/443 598/1304/364 -f 602/1389/426 716/409/444 600/1306/2 -f 606/1403/6 718/414/445 604/1398/434 -f 606/1403/6 720/417/446 719/418/447 -f 610/1395/431 722/422/417 721/419/448 -f 614/1382/420 722/422/417 612/1402/4 -f 594/1400/5 724/426/449 616/1390/427 -f 614/1382/420 711/1425/440 723/731/450 -f 712/1426/451 616/1390/427 724/426/449 -f 596/1394/430 701/1427/437 713/728/441 -f 703/1428/452 598/1304/364 715/411/443 -f 602/1389/426 705/1429/438 717/729/453 -f 706/1430/454 604/1398/434 718/414/445 -f 709/1431/455 610/1395/431 721/419/448 -f 608/1385/422 708/1432/439 720/417/446 -f 699/1433/456 748/1434/433 700/1435/457 -f 690/1436/447 737/1437/424 689/1438/458 -f 696/1439/459 745/1440/436 697/1441/460 -f 693/1381/419 742/1442/428 694/1443/461 -f 700/1435/457 738/1444/423 690/1436/447 -f 691/1445/462 737/1437/424 739/1446/432 -f 697/1441/460 746/1447/463 698/1448/444 -f 694/1443/461 743/1449/435 695/1450/442 -f 691/1445/462 740/1451/421 692/1379/417 -f 698/1448/444 747/1452/425 699/1433/456 -f 695/1453/442 744/1454/429 696/1439/459 -f 794/1455/331 795/1456/332 793/1457/330 -f 795/1456/332 798/1458/337 797/1459/334 -f 798/1458/337 799/1460/338 797/1459/334 -f 799/1460/338 802/1461/323 801/1462/325 -f 802/1461/323 803/1463/324 801/1462/325 -f 803/1463/324 806/1464/341 805/1465/327 -f 800/1466/339 813/1467/345 802/1461/323 -f 806/1468/341 807/1469/329 805/1470/327 -f 807/1469/329 794/1455/331 793/1457/330 -f 806/1468/341 816/1471/335 808/1472/328 -f 796/1473/333 811/1474/346 798/1458/337 -f 802/1461/323 814/1475/342 804/1476/326 -f 794/1455/331 816/1477/335 810/1478/336 -f 794/1455/331 809/1479/344 796/1473/333 -f 798/1458/337 812/1480/340 800/1466/339 -f 806/1464/341 814/1481/342 815/1482/343 -f 818/777/304 840/1483/299 834/1484/305 -f 818/777/304 833/1485/302 820/546/308 -f 822/548/301 836/1486/306 824/550/293 -f 828/556/296 839/1487/307 830/779/298 -f 826/778/295 836/1486/306 837/1488/294 -f 832/558/300 839/1487/307 840/1483/299 -f 820/546/308 835/1489/303 822/548/301 -f 828/556/296 837/1490/294 838/1491/297 -f 856/787/300 858/1492/305 842/563/304 -f 844/785/308 858/1492/305 857/1493/302 -f 848/568/293 859/1494/303 860/1495/306 -f 852/573/296 863/1496/307 854/575/298 -f 848/568/293 861/1497/294 850/570/295 -f 854/575/298 864/1498/299 856/787/300 -f 844/785/308 859/1494/303 846/566/301 -f 850/786/295 862/1499/297 852/573/296 -f 880/595/300 882/1500/305 866/793/304 -f 866/793/304 881/1501/302 868/582/308 -f 872/794/293 883/1502/303 884/1503/306 -f 876/795/296 887/1504/307 878/592/298 -f 872/794/293 885/1505/294 874/587/295 -f 878/592/298 888/1506/299 880/595/300 -f 870/584/301 881/1501/302 883/1502/303 -f 874/589/295 886/1507/297 876/795/296 -f 904/614/300 906/1508/305 890/801/304 -f 890/801/304 905/1509/302 892/600/308 -f 896/802/293 907/1510/303 908/1511/306 -f 900/610/296 911/1512/307 902/612/298 -f 898/605/295 908/1511/306 909/1513/294 -f 904/614/300 911/1512/307 912/1514/299 -f 892/600/308 907/1510/303 894/603/301 -f 898/607/295 910/1515/297 900/610/296 -f 921/1516/33 914/1517/205 913/1518/4 -f 914/1517/205 923/1519/206 915/1520/207 -f 923/1519/206 916/1521/208 915/1520/207 -f 924/1522/209 917/1523/2 916/1521/208 -f 917/1524/2 926/1525/210 918/1526/211 -f 918/1526/211 927/1527/212 919/1528/213 -f 927/1527/212 920/1529/214 919/1528/213 -f 920/1529/214 921/1516/33 913/1518/4 -f 929/1530/19 922/1531/215 921/1516/33 -f 922/1531/215 931/1532/216 923/1533/206 -f 923/1533/206 932/1534/217 924/1535/209 -f 924/1535/209 933/1536/21 925/1537/34 -f 933/1538/21 926/1539/210 925/1540/34 -f 934/1541/218 927/1542/212 926/1539/210 -f 935/1543/219 928/1544/220 927/1542/212 -f 928/1544/220 929/1530/19 921/1516/33 -f 937/1545/6 930/1546/222 929/1530/19 -f 938/1547/221 931/1548/216 930/1546/222 -f 939/1549/223 932/1550/217 931/1548/216 -f 940/1551/224 933/1552/21 932/1550/217 -f 933/1553/21 942/1554/225 934/1555/218 -f 934/1555/218 943/1556/226 935/1557/219 -f 935/1557/219 944/1558/227 936/1559/228 -f 944/1558/227 929/1530/19 936/1559/228 -f 937/1545/6 946/1560/234 938/1547/221 -f 938/1547/221 947/1561/229 939/1562/223 -f 939/1562/223 948/1563/230 940/1564/224 -f 948/1563/230 941/1565/5 940/1564/224 -f 941/1566/5 950/1567/231 942/1568/225 -f 950/1567/231 943/1569/226 942/1568/225 -f 951/1570/232 944/1558/227 943/1569/226 -f 952/1571/238 937/1545/6 944/1558/227 -f 945/1572/22 954/1573/233 946/1560/234 -f 954/1573/233 947/1574/229 946/1560/234 -f 955/1575/235 948/1576/230 947/1574/229 -f 956/1577/241 949/1578/20 948/1576/230 -f 957/1579/17 950/1580/231 949/1581/20 -f 950/1580/231 959/1582/236 951/1583/232 -f 951/1583/232 960/1584/237 952/1571/238 -f 960/1584/237 945/1572/22 952/1571/238 -f 961/1585/2 954/1573/233 953/1586/18 -f 962/1587/239 955/1588/235 954/1573/233 -f 955/1588/235 964/1589/240 956/1590/241 -f 956/1590/241 965/1591/4 957/1592/17 -f 965/1593/4 958/1594/242 957/1595/17 -f 966/1596/243 959/1597/236 958/1594/242 -f 959/1597/236 968/1598/244 960/1584/237 -f 968/1598/244 953/1586/18 960/1584/237 -f 961/1585/2 970/1599/245 962/1587/239 -f 970/1599/245 963/1600/246 962/1587/239 -f 963/1600/246 972/1601/247 964/1602/240 -f 972/1601/247 965/1603/4 964/1602/240 -f 965/1604/4 974/1605/248 966/1606/243 -f 974/1605/248 967/1607/249 966/1606/243 -f 967/1607/249 976/1608/250 968/1598/244 -f 976/1608/250 961/1585/2 968/1598/244 -f 969/1609/34 978/1610/251 970/1599/245 -f 978/1610/251 971/1611/252 970/1599/245 -f 971/1611/252 980/1612/253 972/1613/247 -f 972/1613/247 981/1614/19 973/1615/33 -f 973/1616/33 982/1617/254 974/1618/248 -f 982/1617/254 975/1619/255 974/1618/248 -f 975/1619/255 984/1620/256 976/1608/250 -f 984/1620/256 969/1609/34 976/1608/250 -f 977/1621/21 986/1622/257 978/1610/251 -f 986/1622/257 979/1623/258 978/1610/251 -f 987/1624/259 980/1625/253 979/1623/258 -f 988/1626/260 981/1627/19 980/1625/253 -f 989/1628/6 982/1629/254 981/1630/19 -f 982/1629/254 991/1631/267 983/1632/262 -f 983/1632/262 992/1633/263 984/1620/256 -f 992/1633/263 977/1621/21 984/1620/256 -f 993/1634/20 986/1635/257 985/1636/5 -f 986/1635/257 995/1637/264 987/1638/259 -f 987/1638/259 996/1639/265 988/1640/260 -f 996/1639/265 989/1641/6 988/1640/260 -f 989/1642/6 998/1643/266 990/1644/261 -f 998/1643/266 991/1645/267 990/1644/261 -f 999/1646/268 992/1647/263 991/1645/267 -f 992/1647/263 993/1634/20 985/1636/5 -f 993/1634/20 1002/1648/269 994/1649/270 -f 1002/1648/269 995/1650/264 994/1649/270 -f 1003/1651/271 996/1652/265 995/1650/264 -f 996/1652/265 1005/1653/18 997/1654/22 -f 1005/1655/18 998/1656/266 997/1657/22 -f 998/1656/266 1007/1658/273 999/1659/268 -f 999/1659/268 1008/1660/274 1000/1661/275 -f 1008/1660/274 993/1634/20 1000/1661/275 -f 1001/1662/17 914/1517/205 1002/1648/269 -f 914/1517/205 1003/1663/271 1002/1648/269 -f 1003/1663/271 916/1664/208 1004/1665/272 -f 916/1664/208 1005/1666/18 1004/1665/272 -f 917/1667/2 1006/1668/276 1005/1669/18 -f 918/1670/211 1007/1671/273 1006/1668/276 -f 1007/1671/273 920/1529/214 1008/1660/274 -f 920/1529/214 1001/1662/17 1008/1660/274 -f 1009/1672/6 1012/1673/464 1011/1674/203 -f 1012/1673/464 1013/1675/2 1011/1674/203 -f 1013/1675/2 1016/1676/465 1015/1677/200 -f 1016/1676/465 1017/1678/5 1015/1677/200 -f 1018/1679/466 1019/1680/197 1017/1681/5 -f 1020/1682/467 1021/1683/4 1019/1680/197 -f 1022/1684/468 1023/1685/195 1021/1683/4 -f 1023/1685/195 1010/1686/469 1009/1672/6 -f 13/836/41 24/862/65 12/837/42 -f 14/839/44 13/836/41 1/838/43 -f 15/841/46 14/839/44 2/840/45 -f 16/843/48 15/841/46 3/842/47 -f 17/845/50 16/843/48 4/844/49 -f 18/847/52 17/845/50 5/846/51 -f 7/849/54 19/853/56 18/850/52 -f 8/852/55 20/855/58 19/853/56 -f 9/854/57 21/857/60 20/855/58 -f 10/856/59 22/859/62 21/857/60 -f 11/858/61 23/860/63 22/859/62 -f 12/837/42 24/862/65 23/860/63 -f 25/861/64 36/875/77 24/862/65 -f 26/863/66 25/861/64 13/836/41 -f 27/864/67 26/863/66 14/839/44 -f 28/865/68 27/864/67 15/841/46 -f 29/866/69 28/865/68 16/843/48 -f 30/867/70 29/866/69 17/845/50 -f 19/853/56 31/869/71 30/868/70 -f 20/855/58 32/870/72 31/869/71 -f 21/857/60 33/871/73 32/870/72 -f 22/859/62 34/872/74 33/871/73 -f 23/860/63 35/873/75 34/872/74 -f 24/862/65 36/875/77 35/873/75 -f 37/874/76 48/888/89 36/875/77 -f 38/876/78 37/874/76 25/861/64 -f 39/877/79 38/876/78 26/863/66 -f 40/878/80 39/877/79 27/864/67 -f 41/879/81 40/878/80 28/865/68 -f 42/880/82 41/879/81 29/866/69 -f 31/869/71 43/882/83 42/881/82 -f 32/870/72 44/883/84 43/882/83 -f 33/871/73 45/884/85 44/883/84 -f 34/872/74 46/885/86 45/884/85 -f 35/873/75 47/886/87 46/885/86 -f 36/875/77 48/888/89 47/886/87 -f 37/874/76 49/889/90 60/887/88 -f 38/876/78 50/890/91 49/889/90 -f 39/877/79 51/891/92 50/890/91 -f 40/878/80 52/892/93 51/891/92 -f 41/879/81 53/893/94 52/892/93 -f 42/880/82 54/904/105 53/893/94 -f 55/894/95 54/907/105 42/881/82 -f 56/895/96 55/894/95 43/882/83 -f 57/896/97 56/895/96 44/883/84 -f 58/897/98 57/896/97 45/884/85 -f 59/898/99 58/897/98 46/885/86 -f 60/887/88 59/898/99 47/886/87 -f 49/889/90 61/900/101 72/899/100 -f 50/890/91 62/901/102 61/900/101 -f 51/891/92 63/902/103 62/901/102 -f 52/892/93 64/903/104 63/902/103 -f 53/893/94 65/905/106 64/903/104 -f 54/904/105 66/917/117 65/905/106 -f 67/906/107 66/920/117 54/907/105 -f 68/908/108 67/906/107 55/894/95 -f 69/909/109 68/908/108 56/895/96 -f 70/910/110 69/909/109 57/896/97 -f 71/911/111 70/910/110 58/897/98 -f 72/899/100 71/911/111 59/898/99 -f 61/900/101 73/913/113 84/912/112 -f 62/901/102 74/914/114 73/913/113 -f 63/902/103 75/915/115 74/914/114 -f 64/903/104 76/916/116 75/915/115 -f 65/905/106 77/918/118 76/916/116 -f 66/917/117 78/930/129 77/918/118 -f 79/919/119 78/933/129 66/920/117 -f 80/921/120 79/919/119 67/906/107 -f 81/922/121 80/921/120 68/908/108 -f 82/923/122 81/922/121 69/909/109 -f 83/924/123 82/923/122 70/910/110 -f 84/912/112 83/924/123 71/911/111 -f 73/913/113 85/926/125 96/925/124 -f 74/914/114 86/927/126 85/926/125 -f 75/915/115 87/928/127 86/927/126 -f 76/916/116 88/929/128 87/928/127 -f 77/918/118 89/931/130 88/929/128 -f 78/930/129 90/943/140 89/931/130 -f 91/932/131 90/946/140 78/933/129 -f 92/934/132 91/932/131 79/919/119 -f 93/935/133 92/934/132 80/921/120 -f 94/936/134 93/935/133 81/922/121 -f 95/937/135 94/936/134 82/923/122 -f 96/925/124 95/937/135 83/924/123 -f 85/926/125 97/939/137 108/938/136 -f 86/927/126 98/940/138 97/939/137 -f 87/928/127 99/941/21 98/940/138 -f 88/929/128 100/942/139 99/941/21 -f 89/931/130 101/944/141 100/942/139 -f 90/943/140 102/956/151 101/944/141 -f 103/945/142 102/959/151 90/946/140 -f 104/947/143 103/945/142 91/932/131 -f 105/948/19 104/947/143 92/934/132 -f 106/949/144 105/948/19 93/935/133 -f 107/950/145 106/949/144 94/936/134 -f 108/938/136 107/950/145 95/937/135 -f 97/939/137 109/952/147 120/951/146 -f 98/940/138 110/953/148 109/952/147 -f 99/941/21 111/954/149 110/953/148 -f 100/942/139 112/955/150 111/954/149 -f 101/944/141 113/957/152 112/955/150 -f 102/956/151 114/969/163 113/957/152 -f 115/958/153 114/972/163 102/959/151 -f 116/960/154 115/958/153 103/945/142 -f 117/961/155 116/960/154 104/947/143 -f 118/962/156 117/961/155 105/948/19 -f 119/963/157 118/962/156 106/949/144 -f 120/951/146 119/963/157 107/950/145 -f 109/952/147 121/965/159 132/964/158 -f 110/953/148 122/966/160 121/965/159 -f 111/954/149 123/967/161 122/966/160 -f 112/955/150 124/968/162 123/967/161 -f 113/957/152 125/970/164 124/968/162 -f 114/969/163 126/982/175 125/970/164 -f 127/971/165 126/985/175 114/972/163 -f 128/973/166 127/971/165 115/958/153 -f 129/974/167 128/973/166 116/960/154 -f 130/975/168 129/974/167 117/961/155 -f 131/976/169 130/975/168 118/962/156 -f 132/964/158 131/976/169 119/963/157 -f 121/965/159 133/978/171 144/977/170 -f 122/966/160 134/979/172 133/978/171 -f 123/967/161 135/980/173 134/979/172 -f 124/968/162 136/981/174 135/980/173 -f 125/970/164 137/983/176 136/981/174 -f 126/982/175 138/995/187 137/983/176 -f 139/984/177 138/998/187 126/985/175 -f 140/986/178 139/984/177 127/971/165 -f 141/987/179 140/986/178 128/973/166 -f 142/988/180 141/987/179 129/974/167 -f 143/989/181 142/988/180 130/975/168 -f 144/977/170 143/989/181 131/976/169 -f 133/978/171 145/991/183 156/990/182 -f 134/979/172 146/992/184 145/991/183 -f 135/980/173 147/993/185 146/992/184 -f 136/981/174 148/994/186 147/993/185 -f 137/983/176 149/996/188 148/994/186 -f 138/995/187 150/1687/470 149/996/188 -f 151/997/189 150/1688/470 138/998/187 -f 152/999/190 151/997/189 139/984/177 -f 153/1000/191 152/999/190 140/986/178 -f 154/1001/192 153/1000/191 141/987/179 -f 155/1002/193 154/1001/192 142/988/180 -f 156/990/182 155/1002/193 143/989/181 -f 157/1003/6 158/1689/471 160/1004/194 -f 160/1004/194 162/1007/196 161/1006/4 -f 162/1007/196 164/1009/198 163/1008/197 -f 164/1009/198 166/1690/199 165/1010/5 -f 166/1011/199 168/1014/201 167/1012/200 -f 168/1014/201 170/1016/202 169/1015/2 -f 170/1016/202 172/1018/204 171/1017/203 -f 172/1018/204 158/1689/471 157/1003/6 -f 181/1019/33 182/1034/215 174/1020/205 -f 174/1020/205 182/1034/215 183/1022/206 -f 183/1022/206 184/1025/209 176/1024/208 -f 184/1025/209 185/1691/34 177/1026/2 -f 177/1027/2 185/1692/34 186/1028/210 -f 178/1029/211 186/1028/210 187/1030/212 -f 187/1030/212 188/1046/220 180/1032/214 -f 180/1032/214 188/1046/220 181/1019/33 -f 189/1033/19 190/1048/222 182/1034/215 -f 182/1034/215 190/1048/222 191/1035/216 -f 183/1036/206 191/1035/216 192/1037/217 -f 192/1037/217 193/1693/21 185/1039/34 -f 193/1040/21 194/1043/218 186/1041/210 -f 194/1043/218 195/1045/219 187/1044/212 -f 195/1045/219 196/1060/228 188/1046/220 -f 188/1046/220 196/1060/228 189/1033/19 -f 189/1033/19 197/1061/6 198/1047/221 -f 198/1047/221 199/1050/223 191/1049/216 -f 199/1050/223 200/1052/224 192/1051/217 -f 200/1052/224 201/1694/5 193/1053/21 -f 193/1054/21 201/1695/5 202/1055/225 -f 194/1056/218 202/1055/225 203/1057/226 -f 195/1058/219 203/1057/226 204/1059/227 -f 196/1060/228 204/1059/227 197/1061/6 -f 205/1062/22 206/1074/234 198/1047/221 -f 198/1047/221 206/1074/234 207/1063/229 -f 199/1064/223 207/1063/229 208/1065/230 -f 208/1065/230 209/1696/20 201/1067/5 -f 201/1068/5 209/1697/20 210/1069/231 -f 210/1069/231 211/1072/232 203/1071/226 -f 211/1072/232 212/1086/238 204/1059/227 -f 204/1059/227 212/1086/238 205/1062/22 -f 205/1062/22 213/1088/18 214/1073/233 -f 214/1073/233 215/1076/235 207/1075/229 -f 215/1076/235 216/1698/241 208/1077/230 -f 208/1077/230 216/1698/241 217/1078/17 -f 217/1080/17 218/1699/242 210/1081/231 -f 210/1081/231 218/1699/242 219/1083/236 -f 211/1084/232 219/1083/236 220/1085/237 -f 220/1085/237 213/1088/18 205/1062/22 -f 221/1087/2 222/1089/239 214/1073/233 -f 222/1089/239 223/1700/246 215/1090/235 -f 215/1090/235 223/1700/246 224/1091/240 -f 224/1091/240 225/1701/4 217/1093/17 -f 225/1094/4 226/1097/243 218/1095/242 -f 226/1097/243 227/1702/249 219/1098/236 -f 219/1098/236 227/1702/249 228/1099/244 -f 228/1099/244 221/1087/2 213/1088/18 -f 221/1087/2 229/1111/34 230/1100/245 -f 230/1100/245 231/1703/252 223/1101/246 -f 223/1101/246 231/1703/252 232/1102/247 -f 232/1102/247 233/1704/33 225/1104/4 -f 233/1105/33 234/1108/248 226/1106/243 -f 234/1108/248 235/1705/255 227/1109/249 -f 227/1109/249 235/1705/255 236/1110/250 -f 236/1110/250 229/1111/34 221/1087/2 -f 229/1111/34 237/1122/21 238/1112/251 -f 238/1112/251 239/1706/258 231/1113/252 -f 231/1113/252 239/1706/258 240/1114/253 -f 240/1114/253 241/1707/19 233/1116/33 -f 233/1117/33 241/1708/19 242/1118/254 -f 242/1118/254 243/1709/262 235/1120/255 -f 235/1120/255 243/1709/262 244/1121/256 -f 244/1121/256 237/1122/21 229/1111/34 -f 237/1122/21 245/1710/5 246/1123/257 -f 246/1123/257 247/1125/259 239/1124/258 -f 247/1125/259 248/1127/260 240/1126/253 -f 248/1127/260 249/1711/6 241/1128/19 -f 241/1129/19 249/1712/6 250/1130/261 -f 250/1130/261 251/1713/267 243/1132/262 -f 243/1132/262 251/1713/267 252/1133/263 -f 252/1133/263 245/1710/5 237/1122/21 -f 253/1134/20 254/1150/270 246/1135/257 -f 246/1135/257 254/1150/270 255/1137/264 -f 247/1138/259 255/1137/264 256/1139/265 -f 256/1139/265 257/1714/22 249/1141/6 -f 257/1142/22 258/1145/266 250/1143/261 -f 258/1145/266 259/1147/268 251/1146/267 -f 259/1147/268 260/1162/275 252/1148/263 -f 252/1148/263 260/1162/275 253/1134/20 -f 253/1134/20 261/1163/17 262/1149/269 -f 262/1149/269 263/1152/271 255/1151/264 -f 263/1152/271 264/1154/272 256/1153/265 -f 264/1154/272 265/1715/18 257/1155/22 -f 265/1156/18 266/1716/276 258/1157/266 -f 258/1157/266 266/1716/276 267/1159/273 -f 259/1160/268 267/1159/273 268/1161/274 -f 268/1161/274 261/1163/17 253/1134/20 -f 261/1163/17 173/1021/4 174/1020/205 -f 174/1020/205 175/1717/207 263/1164/271 -f 263/1164/271 175/1717/207 176/1165/208 -f 176/1165/208 177/1718/2 265/1167/18 -f 177/1168/2 178/1171/211 266/1169/276 -f 178/1171/211 179/1719/213 267/1172/273 -f 267/1172/273 179/1719/213 180/1032/214 -f 180/1032/214 173/1021/4 261/1163/17 -f 352/93/293 360/1210/306 354/1204/294 -f 340/82/296 338/79/295 354/1204/294 -f 342/646/298 355/1211/307 356/1206/299 -f 350/90/301 348/88/308 358/1207/302 -f 346/647/304 344/84/300 356/1206/299 -f 350/90/301 359/1208/303 360/1210/306 -f 340/82/296 353/1205/297 355/1211/307 -f 346/648/304 357/1720/305 358/1207/302 -f 362/97/295 376/111/293 384/1212/306 -f 364/100/296 362/97/295 378/1213/294 -f 366/102/298 379/1219/307 380/1215/299 -f 374/109/301 372/107/308 382/1216/302 -f 370/654/304 368/104/300 380/1215/299 -f 374/109/301 383/1217/303 384/1212/306 -f 364/100/296 377/1214/297 379/1219/307 -f 372/107/308 370/655/304 381/1220/305 -f 386/116/295 400/130/293 408/1221/306 -f 386/116/295 402/1222/294 401/1223/297 -f 390/121/298 403/1228/307 404/1224/299 -f 398/662/301 396/128/308 406/1225/302 -f 394/661/304 392/123/300 404/1224/299 -f 400/130/293 398/662/301 407/1226/303 -f 388/119/296 401/1223/297 403/1228/307 -f 394/125/304 405/1721/305 406/1225/302 -f 410/668/295 424/149/293 432/1229/306 -f 412/136/296 410/668/295 426/1230/294 -f 414/138/298 427/1235/307 428/1232/299 -f 420/144/308 430/1236/302 431/1233/303 -f 418/669/304 416/141/300 428/1232/299 -f 424/149/293 422/147/301 431/1233/303 -f 412/136/296 425/1231/297 427/1235/307 -f 418/670/304 429/1722/305 430/1236/302 -f 433/1237/309 434/1251/322 436/1238/310 -f 436/1238/310 438/1723/313 437/1240/312 -f 438/1241/313 440/1724/472 439/1242/314 -f 439/1242/314 440/1724/472 442/1244/315 -f 442/1244/315 444/1247/318 443/1246/317 -f 444/1247/318 446/1249/320 445/1248/319 -f 446/1249/320 448/1725/473 447/1250/321 -f 447/1250/321 448/1725/473 434/1251/322 -f 538/1252/323 540/1255/326 539/1253/324 -f 540/1255/326 542/1271/341 541/1256/327 -f 541/1256/327 542/1271/341 544/1257/328 -f 544/1257/328 546/1260/331 545/1259/330 -f 546/1260/331 548/1262/333 547/1261/332 -f 548/1262/333 550/1281/337 549/1263/334 -f 546/1260/331 544/1257/328 556/1264/335 -f 550/1266/337 552/1269/339 551/1267/338 -f 552/1269/339 538/1252/323 537/1254/325 -f 550/1266/337 559/1726/346 560/1270/340 -f 542/1271/341 540/1255/326 553/1272/342 -f 546/1260/331 557/1727/336 558/1274/344 -f 538/1252/323 552/1269/339 560/1275/340 -f 538/1252/323 554/1728/345 553/1277/342 -f 544/1257/328 542/1271/341 555/1278/343 -f 548/1262/333 558/1729/344 559/1280/346 -f 678/1282/6 677/1285/349 595/1283/347 -f 677/1285/349 679/1287/351 597/1286/350 -f 679/1287/351 680/1289/4 599/1288/352 -f 680/1289/4 681/1291/354 601/1290/353 -f 681/1291/354 682/1293/356 603/1292/355 -f 682/1293/356 683/1730/5 605/1294/357 -f 683/1295/5 684/1298/359 607/1296/358 -f 684/1298/359 685/1300/361 609/1299/360 -f 685/1300/361 686/1302/2 611/1301/362 -f 686/1302/2 687/1307/366 613/1303/363 -f 598/1304/364 727/1401/436 728/1305/365 -f 687/1307/366 688/1309/368 615/1308/367 -f 688/1309/368 678/1282/6 593/1284/348 -f 609/1299/360 625/1731/381 624/1310/369 -f 621/1311/370 633/1350/391 632/1312/371 -f 607/1296/358 624/1732/369 623/1314/373 -f 605/1294/357 623/1341/373 622/1315/374 -f 601/1290/353 603/1292/355 622/1316/374 -f 601/1290/353 621/1311/370 620/1313/372 -f 593/1284/348 617/1335/377 628/1318/375 -f 593/1284/348 595/1283/347 618/1319/376 -f 599/1288/352 620/1343/372 619/1321/378 -f 615/1308/367 628/1733/375 627/1322/379 -f 597/1286/350 619/1337/378 618/1323/376 -f 611/1301/362 613/1303/363 627/1324/379 -f 611/1301/362 626/1339/380 625/1326/381 -f 635/1327/382 636/1346/390 660/389/383 -f 627/1322/379 628/1733/375 640/1328/385 -f 617/1320/377 618/1319/376 630/1330/387 -f 624/1310/369 625/1731/381 637/1332/389 -f 622/1316/374 634/1351/392 633/1334/391 -f 617/1335/377 629/1352/388 640/1336/385 -f 619/1337/378 631/1353/393 630/1338/387 -f 626/1339/380 638/1354/394 637/1340/389 -f 623/1341/373 635/1355/382 634/1342/392 -f 620/1343/372 632/1356/371 631/1344/393 -f 627/1324/379 639/1734/386 638/1345/394 -f 623/1314/373 624/1732/369 636/1346/390 -f 650/1347/395 651/1364/410 675/1348/18 -f 633/1350/391 657/381/400 656/380/396 -f 640/1328/385 664/402/401 663/401/397 -f 629/1331/388 630/1330/387 654/372/398 -f 637/1332/389 661/392/402 660/723/383 -f 634/1351/392 658/383/403 657/720/400 -f 629/1352/388 653/404/399 664/727/401 -f 631/1353/393 655/374/404 654/717/398 -f 638/1354/394 662/395/405 661/724/402 -f 635/1355/382 659/386/384 658/721/403 -f 632/1356/371 656/378/396 655/377/404 -f 638/1345/394 639/1734/386 663/399/397 -f 648/1357/406 672/1369/21 671/1358/5 -f 644/1360/408 645/1370/414 669/1361/17 -f 652/1363/409 676/1372/22 675/1348/18 -f 642/1365/411 666/1374/19 665/1366/6 -f 649/1368/413 673/1375/34 672/1369/21 -f 645/1370/414 646/1376/415 670/1371/20 -f 641/1367/412 665/1366/6 676/1372/22 -f 642/1365/411 643/1378/416 667/1373/33 -f 650/1347/395 674/1349/2 673/1375/34 -f 646/1376/415 647/1735/407 671/1377/5 -f 643/1378/416 644/1360/408 668/1362/4 -f 692/1379/417 740/1451/421 741/1380/418 -f 614/1382/420 612/1402/4 734/1383/421 -f 608/1385/422 606/1403/6 731/1386/423 -f 600/1306/2 728/1305/365 729/1388/425 -f 616/1390/427 614/1382/420 735/1384/418 -f 594/1392/5 726/1736/435 725/1393/429 -f 610/1395/431 608/1385/422 732/1387/424 -f 602/1389/426 729/1388/425 730/1397/433 -f 616/1390/427 736/1391/428 726/1399/435 -f 596/1394/430 725/1393/429 727/1401/436 -f 612/1402/4 610/1395/431 733/1396/432 -f 604/1398/434 730/1397/433 731/1386/423 -f 677/1404/349 678/1424/6 702/1405/423 -f 679/1407/351 703/1737/452 704/1408/421 -f 680/1409/4 704/1408/421 705/1410/438 -f 682/1412/356 706/1738/454 707/1413/435 -f 683/1415/5 707/1739/435 708/1416/439 -f 685/1418/361 709/1740/455 710/1419/365 -f 686/1420/2 710/1419/365 711/1421/440 -f 688/1423/368 712/1741/451 702/1405/423 -f 594/1392/5 596/1394/430 713/728/441 -f 600/1306/2 716/409/444 715/411/443 -f 602/1389/426 717/729/453 716/409/444 -f 606/1403/6 719/418/447 718/414/445 -f 606/1403/6 608/1385/422 720/417/446 -f 610/1395/431 612/1402/4 722/422/417 -f 614/1382/420 723/731/450 722/422/417 -f 594/1400/5 714/424/442 724/426/449 -f 614/1382/420 687/1742/366 711/1425/440 -f 712/1426/451 688/1743/368 616/1390/427 -f 596/1394/430 677/1744/349 701/1427/437 -f 703/1428/452 679/1745/351 598/1304/364 -f 602/1389/426 681/1746/354 705/1429/438 -f 706/1430/454 682/1747/356 604/1398/434 -f 709/1431/455 685/1748/361 610/1395/431 -f 608/1385/422 684/1749/359 708/1432/439 -f 699/1433/456 747/1452/425 748/1434/433 -f 690/1436/447 738/1444/423 737/1437/424 -f 696/1439/459 744/1454/429 745/1440/436 -f 693/1381/419 741/1380/418 742/1442/428 -f 700/1435/457 748/1434/433 738/1444/423 -f 691/1445/462 689/1438/458 737/1437/424 -f 697/1441/460 745/1440/436 746/1447/463 -f 694/1443/461 742/1442/428 743/1449/435 -f 691/1445/462 739/1446/432 740/1451/421 -f 698/1448/444 746/1447/463 747/1452/425 -f 695/1453/442 743/1750/435 744/1454/429 -f 794/1455/331 796/1473/333 795/1456/332 -f 795/1456/332 796/1473/333 798/1458/337 -f 798/1458/337 800/1466/339 799/1460/338 -f 799/1460/338 800/1466/339 802/1461/323 -f 802/1461/323 804/1476/326 803/1463/324 -f 803/1463/324 804/1476/326 806/1464/341 -f 800/1466/339 812/1751/340 813/1467/345 -f 806/1468/341 808/1472/328 807/1469/329 -f 807/1469/329 808/1472/328 794/1455/331 -f 806/1468/341 815/1752/343 816/1471/335 -f 796/1473/333 809/1753/344 811/1474/346 -f 802/1461/323 813/1754/345 814/1475/342 -f 794/1455/331 808/1472/328 816/1477/335 -f 794/1455/331 810/1755/336 809/1479/344 -f 798/1458/337 811/1756/346 812/1480/340 -f 806/1464/341 804/1476/326 814/1481/342 -f 818/777/304 832/558/300 840/1483/299 -f 818/777/304 834/1484/305 833/1485/302 -f 822/548/301 835/1489/303 836/1486/306 -f 828/556/296 838/1491/297 839/1487/307 -f 826/778/295 824/550/293 836/1486/306 -f 832/558/300 830/779/298 839/1487/307 -f 820/546/308 833/1485/302 835/1489/303 -f 828/556/296 826/553/295 837/1490/294 -f 856/787/300 864/1498/299 858/1492/305 -f 844/785/308 842/563/304 858/1492/305 -f 848/568/293 846/566/301 859/1494/303 -f 852/573/296 862/1499/297 863/1496/307 -f 848/568/293 860/1495/306 861/1497/294 -f 854/575/298 863/1496/307 864/1498/299 -f 844/785/308 857/1493/302 859/1494/303 -f 850/786/295 861/1757/294 862/1499/297 -f 880/595/300 888/1506/299 882/1500/305 -f 866/793/304 882/1500/305 881/1501/302 -f 872/794/293 870/584/301 883/1502/303 -f 876/795/296 886/1507/297 887/1504/307 -f 872/794/293 884/1503/306 885/1505/294 -f 878/592/298 887/1504/307 888/1506/299 -f 870/584/301 868/582/308 881/1501/302 -f 874/589/295 885/1758/294 886/1507/297 -f 904/614/300 912/1514/299 906/1508/305 -f 890/801/304 906/1508/305 905/1509/302 -f 896/802/293 894/603/301 907/1510/303 -f 900/610/296 910/1515/297 911/1512/307 -f 898/605/295 896/802/293 908/1511/306 -f 904/614/300 902/612/298 911/1512/307 -f 892/600/308 905/1509/302 907/1510/303 -f 898/607/295 909/1759/294 910/1515/297 -f 921/1516/33 922/1531/215 914/1517/205 -f 914/1517/205 922/1531/215 923/1519/206 -f 923/1519/206 924/1522/209 916/1521/208 -f 924/1522/209 925/1760/34 917/1523/2 -f 917/1524/2 925/1761/34 926/1525/210 -f 918/1526/211 926/1525/210 927/1527/212 -f 927/1527/212 928/1544/220 920/1529/214 -f 920/1529/214 928/1544/220 921/1516/33 -f 929/1530/19 930/1546/222 922/1531/215 -f 922/1531/215 930/1546/222 931/1532/216 -f 923/1533/206 931/1532/216 932/1534/217 -f 924/1535/209 932/1534/217 933/1536/21 -f 933/1538/21 934/1541/218 926/1539/210 -f 934/1541/218 935/1543/219 927/1542/212 -f 935/1543/219 936/1559/228 928/1544/220 -f 928/1544/220 936/1559/228 929/1530/19 -f 937/1545/6 938/1547/221 930/1546/222 -f 938/1547/221 939/1549/223 931/1548/216 -f 939/1549/223 940/1551/224 932/1550/217 -f 940/1551/224 941/1762/5 933/1552/21 -f 933/1553/21 941/1763/5 942/1554/225 -f 934/1555/218 942/1554/225 943/1556/226 -f 935/1557/219 943/1556/226 944/1558/227 -f 944/1558/227 937/1545/6 929/1530/19 -f 937/1545/6 945/1572/22 946/1560/234 -f 938/1547/221 946/1560/234 947/1561/229 -f 939/1562/223 947/1561/229 948/1563/230 -f 948/1563/230 949/1764/20 941/1565/5 -f 941/1566/5 949/1765/20 950/1567/231 -f 950/1567/231 951/1570/232 943/1569/226 -f 951/1570/232 952/1571/238 944/1558/227 -f 952/1571/238 945/1572/22 937/1545/6 -f 945/1572/22 953/1586/18 954/1573/233 -f 954/1573/233 955/1575/235 947/1574/229 -f 955/1575/235 956/1577/241 948/1576/230 -f 956/1577/241 957/1766/17 949/1578/20 -f 957/1579/17 958/1767/242 950/1580/231 -f 950/1580/231 958/1767/242 959/1582/236 -f 951/1583/232 959/1582/236 960/1584/237 -f 960/1584/237 953/1586/18 945/1572/22 -f 961/1585/2 962/1587/239 954/1573/233 -f 962/1587/239 963/1768/246 955/1588/235 -f 955/1588/235 963/1768/246 964/1589/240 -f 956/1590/241 964/1589/240 965/1591/4 -f 965/1593/4 966/1596/243 958/1594/242 -f 966/1596/243 967/1769/249 959/1597/236 -f 959/1597/236 967/1769/249 968/1598/244 -f 968/1598/244 961/1585/2 953/1586/18 -f 961/1585/2 969/1609/34 970/1599/245 -f 970/1599/245 971/1770/252 963/1600/246 -f 963/1600/246 971/1770/252 972/1601/247 -f 972/1601/247 973/1771/33 965/1603/4 -f 965/1604/4 973/1772/33 974/1605/248 -f 974/1605/248 975/1773/255 967/1607/249 -f 967/1607/249 975/1773/255 976/1608/250 -f 976/1608/250 969/1609/34 961/1585/2 -f 969/1609/34 977/1621/21 978/1610/251 -f 978/1610/251 979/1774/258 971/1611/252 -f 971/1611/252 979/1774/258 980/1612/253 -f 972/1613/247 980/1612/253 981/1614/19 -f 973/1616/33 981/1775/19 982/1617/254 -f 982/1617/254 983/1776/262 975/1619/255 -f 975/1619/255 983/1776/262 984/1620/256 -f 984/1620/256 977/1621/21 969/1609/34 -f 977/1621/21 985/1777/5 986/1622/257 -f 986/1622/257 987/1624/259 979/1623/258 -f 987/1624/259 988/1626/260 980/1625/253 -f 988/1626/260 989/1778/6 981/1627/19 -f 989/1628/6 990/1779/261 982/1629/254 -f 982/1629/254 990/1779/261 991/1631/267 -f 983/1632/262 991/1631/267 992/1633/263 -f 992/1633/263 985/1777/5 977/1621/21 -f 993/1634/20 994/1649/270 986/1635/257 -f 986/1635/257 994/1649/270 995/1637/264 -f 987/1638/259 995/1637/264 996/1639/265 -f 996/1639/265 997/1780/22 989/1641/6 -f 989/1642/6 997/1781/22 998/1643/266 -f 998/1643/266 999/1646/268 991/1645/267 -f 999/1646/268 1000/1661/275 992/1647/263 -f 992/1647/263 1000/1661/275 993/1634/20 -f 993/1634/20 1001/1662/17 1002/1648/269 -f 1002/1648/269 1003/1651/271 995/1650/264 -f 1003/1651/271 1004/1782/272 996/1652/265 -f 996/1652/265 1004/1782/272 1005/1653/18 -f 1005/1655/18 1006/1783/276 998/1656/266 -f 998/1656/266 1006/1783/276 1007/1658/273 -f 999/1659/268 1007/1658/273 1008/1660/274 -f 1008/1660/274 1001/1662/17 993/1634/20 -f 1001/1662/17 913/1518/4 914/1517/205 -f 914/1517/205 915/1784/207 1003/1663/271 -f 1003/1663/271 915/1784/207 916/1664/208 -f 916/1664/208 917/1785/2 1005/1666/18 -f 917/1667/2 918/1670/211 1006/1668/276 -f 918/1670/211 919/1786/213 1007/1671/273 -f 1007/1671/273 919/1786/213 920/1529/214 -f 920/1529/214 913/1518/4 1001/1662/17 -f 1009/1672/6 1010/1686/469 1012/1673/464 -f 1012/1673/464 1014/1787/474 1013/1675/2 -f 1013/1675/2 1014/1787/474 1016/1676/465 -f 1016/1676/465 1018/1788/466 1017/1678/5 -f 1018/1679/466 1020/1682/467 1019/1680/197 -f 1020/1682/467 1022/1684/468 1021/1683/4 -f 1022/1684/468 1024/1789/475 1023/1685/195 -f 1023/1685/195 1024/1789/475 1010/1686/469 -f 282/1173/277 284/1176/280 283/1174/278 -f 284/1176/280 286/1790/282 285/1177/281 -f 286/1178/282 288/1181/284 287/1179/283 -f 288/1181/284 290/1791/292 289/1182/285 -f 289/1182/285 290/1791/292 292/1183/286 -f 291/1184/287 292/1183/286 294/1185/288 -f 293/1186/289 294/1185/288 296/1187/290 -f 295/1188/291 296/1187/290 282/1173/277 -f 297/1189/279 298/1203/277 300/1190/280 -f 300/1190/280 302/1792/282 301/1192/281 -f 301/1193/281 302/1793/282 304/1194/284 -f 304/1194/284 306/1197/292 305/1196/285 -f 306/1197/292 308/1794/286 307/1198/287 -f 307/1198/287 308/1794/286 310/1199/288 -f 309/1200/289 310/1199/288 312/1201/290 -f 311/1202/291 312/1201/290 298/1203/277 o Rotor -v -0.250000 -0.105662 -2.125000 -v -0.250000 -0.105662 -1.375000 -v 0.250000 -0.105663 -2.125000 -v 0.250000 -0.105663 -1.375000 -v -0.000000 -0.538675 -2.125000 -v -0.000000 -0.538675 -1.375000 -v -0.375000 0.144338 -2.125000 +v 0.187500 0.644337 -1.375000 v -0.375000 0.144338 -1.375000 v 0.375000 0.144337 -1.375000 +v -0.187500 0.644338 -1.375000 +v -0.375000 0.144338 -2.125000 +v 0.250000 -0.105663 -1.375000 +v -0.250000 -0.105662 -1.375000 +v 0.000000 -0.538675 -1.375000 +v 0.187500 0.644337 -2.125000 +v -0.187500 0.644338 -2.125000 +v -0.250000 -0.105662 -2.125000 +v 0.250000 -0.105663 -2.125000 +v 0.000000 -0.538675 -2.125000 v 0.375000 0.144337 -2.125000 -v 0.529006 -0.122410 -2.125000 v 0.529006 -0.122410 -1.375000 v 0.154006 -0.771928 -1.375000 v 0.154006 -0.771928 -2.125000 -v -0.154007 -0.771928 -2.125000 +v 0.529006 -0.122410 -2.125000 v -0.154007 -0.771928 -1.375000 v -0.529006 -0.122409 -1.375000 v -0.529006 -0.122409 -2.125000 -v -0.187500 0.644338 -2.125000 -v -0.187500 0.644338 -1.375000 -v 0.187500 0.644337 -1.375000 -v 0.187500 0.644337 -2.125000 -v 0.868269 -0.534790 -2.125000 +v -0.154007 -0.771928 -2.125000 v 0.868269 -0.534790 -1.375000 -v 0.680769 -0.859549 -1.375000 v 0.680769 -0.859549 -2.125000 -v -0.680769 -0.859548 -2.125000 +v 0.868269 -0.534790 -2.125000 v -0.680769 -0.859548 -1.375000 -v -0.868269 -0.534789 -1.375000 v -0.868269 -0.534789 -2.125000 +v -0.680769 -0.859548 -2.125000 +v -0.868269 -0.534789 -1.375000 +v 0.680769 -0.859549 -1.375000 vt 0.168950 0.125000 vt 0.127854 0.066176 vt 0.182648 0.066176 @@ -5220,74 +113,5354 @@ vn -0.0000 0.0000 1.0000 vn -0.9363 0.3511 0.0000 vn 0.0000 1.0000 0.0000 vn -0.0000 0.0000 -1.0000 -vn -0.8944 -0.4472 0.0000 +vn -0.8944 -0.4472 -0.0000 vn 0.8944 -0.4472 -0.0000 vn 0.0599 0.9982 0.0000 -vn -0.8345 -0.5510 0.0000 -vn 0.8345 -0.5510 -0.0000 +vn -0.8345 -0.5510 -0.0000 +vn 0.8345 -0.5510 0.0000 vn -0.0599 0.9982 0.0000 vn 0.9363 0.3511 0.0000 -vn 0.8660 -0.5000 0.0000 +vn 0.8660 -0.5000 -0.0000 vn 0.7722 0.6353 0.0000 -vn -0.1641 -0.9864 0.0000 -vn -0.8660 -0.5000 0.0000 -vn 0.1641 -0.9864 0.0000 +vn -0.1641 -0.9864 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.1641 -0.9864 -0.0000 vn -0.7722 0.6353 0.0000 -usemtl None s off -f 1045/1795/476 1032/1796/476 1033/1797/476 -f 1044/1798/477 1031/1799/477 1032/1800/477 -f 1028/1801/476 1026/1802/476 1030/1803/476 -f 1044/1798/478 1046/1804/478 1043/1805/478 -f 1025/1806/479 1027/1807/479 1029/1808/479 -f 1032/1800/480 1025/1809/480 1026/1810/480 -f 1028/1811/476 1032/1796/476 1026/1812/476 -f 1034/1813/481 1028/1814/481 1027/1815/481 -f 1031/1816/479 1027/1817/479 1025/1818/479 -f 1036/1819/482 1027/1820/482 1028/1821/482 -f 1037/1822/476 1028/1823/476 1030/1824/476 -f 1038/1825/483 1030/1826/483 1029/1827/483 -f 1035/1828/479 1029/1829/479 1027/1830/479 -f 1040/1831/484 1029/1832/484 1030/1833/484 -f 1041/1834/476 1030/1835/476 1026/1836/476 -f 1042/1837/485 1026/1838/485 1025/1839/485 -f 1039/1840/479 1025/1841/479 1029/1842/479 -f 1046/1804/486 1033/1843/486 1034/1813/486 -f 1031/1816/479 1046/1844/479 1034/1845/479 -f 1048/1846/487 1050/1847/487 1047/1848/487 -f 1048/1846/488 1035/1849/488 1036/1819/488 -f 1037/1822/476 1048/1850/476 1036/1851/476 -f 1050/1847/489 1037/1852/489 1038/1825/489 -f 1047/1853/479 1038/1854/479 1035/1828/479 -f 1052/1855/490 1054/1856/490 1051/1857/490 -f 1052/1855/491 1039/1858/491 1040/1831/491 -f 1053/1859/476 1040/1860/476 1041/1834/476 -f 1054/1856/492 1041/1861/492 1042/1837/492 -f 1051/1862/479 1042/1863/479 1039/1840/479 -f 1045/1795/476 1044/1864/476 1032/1796/476 -f 1044/1798/477 1043/1805/477 1031/1799/477 -f 1044/1798/478 1045/1865/478 1046/1804/478 -f 1032/1800/480 1031/1799/480 1025/1809/480 -f 1028/1811/476 1033/1797/476 1032/1796/476 -f 1034/1813/481 1033/1843/481 1028/1814/481 -f 1031/1816/479 1034/1845/479 1027/1817/479 -f 1036/1819/482 1035/1849/482 1027/1820/482 -f 1037/1822/476 1036/1851/476 1028/1823/476 -f 1038/1825/483 1037/1852/483 1030/1826/483 -f 1035/1828/479 1038/1854/479 1029/1829/479 -f 1040/1831/484 1039/1858/484 1029/1832/484 -f 1041/1834/476 1040/1860/476 1030/1835/476 -f 1042/1837/485 1041/1861/485 1026/1838/485 -f 1039/1840/479 1042/1863/479 1025/1841/479 -f 1046/1804/486 1045/1865/486 1033/1843/486 -f 1031/1816/479 1043/1866/479 1046/1844/479 -f 1048/1846/487 1049/1867/487 1050/1847/487 -f 1048/1846/488 1047/1848/488 1035/1849/488 -f 1037/1822/476 1049/1868/476 1048/1850/476 -f 1050/1847/489 1049/1867/489 1037/1852/489 -f 1047/1853/479 1050/1869/479 1038/1854/479 -f 1052/1855/490 1053/1870/490 1054/1856/490 -f 1052/1855/491 1051/1857/491 1039/1858/491 -f 1053/1859/476 1052/1871/476 1040/1860/476 -f 1054/1856/492 1053/1870/492 1041/1861/492 -f 1051/1862/479 1054/1872/479 1042/1863/479 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 2/6/2 +f 6/7/1 7/8/1 8/9/1 +f 4/4/3 9/10/3 10/11/3 +f 11/12/4 12/13/4 13/14/4 +f 2/6/5 11/15/5 7/16/5 +f 6/17/1 2/2/1 7/18/1 +f 14/19/6 6/20/6 12/21/6 +f 5/22/4 12/23/4 11/24/4 +f 15/25/7 12/26/7 6/27/7 +f 16/28/1 6/29/1 8/30/1 +f 17/31/8 8/32/8 13/33/8 +f 18/34/4 13/35/4 12/36/4 +f 19/37/9 13/38/9 8/39/9 +f 20/40/1 8/41/1 7/42/1 +f 21/43/10 7/44/10 11/45/10 +f 22/46/4 11/47/4 13/48/4 +f 9/10/11 3/49/11 14/19/11 +f 5/22/4 9/50/4 14/51/4 +f 23/52/12 24/53/12 25/54/12 +f 23/52/13 18/55/13 15/25/13 +f 16/28/1 23/56/1 15/57/1 +f 24/53/14 16/58/14 17/31/14 +f 25/59/4 17/60/4 18/34/4 +f 26/61/15 27/62/15 28/63/15 +f 26/61/16 22/64/16 19/37/16 +f 29/65/1 19/66/1 20/40/1 +f 27/62/17 20/67/17 21/43/17 +f 28/68/4 21/69/4 22/46/4 +f 1/1/1 4/70/1 2/2/1 +f 4/4/2 10/11/2 5/5/2 +f 4/4/3 1/71/3 9/10/3 +f 2/6/5 5/5/5 11/15/5 +f 6/17/1 3/3/1 2/2/1 +f 14/19/6 3/49/6 6/20/6 +f 5/22/4 14/51/4 12/23/4 +f 15/25/7 18/55/7 12/26/7 +f 16/28/1 15/57/1 6/29/1 +f 17/31/8 16/58/8 8/32/8 +f 18/34/4 17/60/4 13/35/4 +f 19/37/9 22/64/9 13/38/9 +f 20/40/1 19/66/1 8/41/1 +f 21/43/10 20/67/10 7/44/10 +f 22/46/4 21/69/4 11/47/4 +f 9/10/11 1/71/11 3/49/11 +f 5/22/4 10/72/4 9/50/4 +f 23/52/12 30/73/12 24/53/12 +f 23/52/13 25/54/13 18/55/13 +f 16/28/1 30/74/1 23/56/1 +f 24/53/14 30/73/14 16/58/14 +f 25/59/4 24/75/4 17/60/4 +f 26/61/15 29/76/15 27/62/15 +f 26/61/16 28/63/16 22/64/16 +f 29/65/1 26/77/1 19/66/1 +f 27/62/17 29/76/17 20/67/17 +f 28/68/4 27/78/4 21/69/4 +o Body +v -0.244981 -0.000000 0.368932 +v 0.000000 -0.244981 0.368932 +v 0.244981 -0.000000 0.368932 +v -0.375000 -0.863814 -2.375000 +v -0.375000 -1.363814 -3.124999 +v -0.375000 -1.363814 -2.375000 +v 0.375000 -0.863814 -3.124999 +v -0.375000 -0.496790 -5.624999 +v -0.375000 -0.863814 -3.124999 +v 0.375000 -1.363814 -2.375000 +v 0.375000 -1.363814 -3.124999 +v 0.375000 -0.863814 -2.375000 +v 0.375000 -1.746790 -5.624999 +v -0.375000 -1.746790 -5.624999 +v 0.375000 -0.496790 -5.624999 +v 0.249981 1.154378 -2.627011 +v 0.249981 1.031888 -2.504521 +v 0.249981 0.909398 -2.627011 +v -0.249981 0.945275 -2.540398 +v -0.249981 1.154378 -2.627011 +v -0.249980 1.118502 -2.713625 +v 0.249981 1.154378 -2.871992 +v 0.249981 1.031888 -2.749502 +v 0.249981 0.909398 -2.871992 +v -0.249981 0.945274 -2.785378 +v -0.249980 1.154378 -2.871992 +v -0.249980 1.118502 -2.958606 +v -0.312500 0.926420 -2.500000 +v -0.312500 0.863920 -2.999999 +v -0.312500 0.863920 -2.500000 +v -0.250000 0.926420 -2.999999 +v 0.250000 0.863920 -2.999999 +v -0.250000 0.863920 -2.999999 +v 0.312500 0.926420 -2.999999 +v 0.312500 0.863920 -2.500000 +v 0.312500 0.863920 -2.999999 +v 0.250000 0.926420 -2.500000 +v -0.250000 0.863920 -2.500000 +v 0.250000 0.863920 -2.500000 +v 0.250000 0.926420 -2.999999 +v 0.312500 1.051420 -2.999999 +v -0.312500 0.926420 -2.999999 +v 0.312500 1.051420 -2.500000 +v 0.250000 1.051420 -2.500000 +v 0.312500 0.926420 -2.500000 +v -0.250000 1.051420 -2.999999 +v -0.312500 1.051420 -2.500000 +v -0.250000 1.051420 -2.500000 +v 0.250000 1.051420 -2.999999 +v -0.250000 0.926420 -2.500000 +v -0.312500 1.051420 -2.999999 +v 0.269079 0.989930 -0.750546 +v 0.207317 0.966012 -0.808289 +v 0.207317 0.989929 -0.750546 +v 0.269079 0.966012 -0.808289 +v 0.207317 0.908269 -0.832206 +v 0.269079 0.850527 -0.808289 +v 0.207317 0.850527 -0.808289 +v 0.207317 0.826609 -0.750546 +v 0.269079 0.850527 -0.692804 +v 0.207317 0.850527 -0.692804 +v 0.269079 0.908269 -0.668886 +v 0.207317 0.908269 -0.668886 +v 0.207317 0.966012 -0.692804 +v 0.269079 0.966012 -0.692804 +v 0.295772 0.908269 -0.684311 +v 0.295772 0.842034 -0.750546 +v 0.295772 0.908269 -0.816781 +v 0.269080 0.989930 -1.158847 +v 0.207317 0.966012 -1.216590 +v 0.207317 0.989929 -1.158847 +v 0.269079 0.966012 -1.216590 +v 0.207317 0.908269 -1.240508 +v 0.269080 0.908269 -1.240508 +v 0.207317 0.850527 -1.216590 +v 0.269080 0.850527 -1.216590 +v 0.207317 0.826609 -1.158848 +v 0.269080 0.850527 -1.101105 +v 0.207317 0.850527 -1.101105 +v 0.269079 0.908269 -1.077187 +v 0.207317 0.908269 -1.077187 +v 0.269080 0.966012 -1.101105 +v 0.207317 0.966012 -1.101105 +v 0.295772 0.908269 -1.092613 +v 0.295772 0.861434 -1.205683 +v 0.295772 0.908269 -1.225083 +v 0.269079 0.989929 -1.567149 +v 0.207317 0.966012 -1.624892 +v 0.207317 0.989929 -1.567149 +v 0.269079 0.966012 -1.624892 +v 0.207317 0.908269 -1.648810 +v 0.269080 0.908269 -1.648810 +v 0.207317 0.850527 -1.624892 +v 0.269080 0.850527 -1.624892 +v 0.207317 0.826609 -1.567149 +v 0.269079 0.826609 -1.567149 +v 0.207317 0.850527 -1.509407 +v 0.269079 0.850527 -1.509407 +v 0.207317 0.908269 -1.485489 +v 0.269079 0.966012 -1.509407 +v 0.207317 0.966012 -1.509406 +v 0.295772 0.908269 -1.500914 +v 0.295772 0.861434 -1.613984 +v 0.295772 0.908269 -1.633384 +v 0.207317 0.989929 -1.975451 +v 0.269079 0.966012 -2.033194 +v 0.207317 0.966012 -2.033194 +v 0.269079 0.908269 -2.057111 +v 0.207317 0.908269 -2.057111 +v 0.207317 0.850527 -2.033194 +v 0.269079 0.850527 -2.033194 +v 0.207317 0.826609 -1.975451 +v 0.269079 0.850527 -1.917708 +v 0.207317 0.850527 -1.917708 +v 0.207317 0.908269 -1.893791 +v 0.269079 0.908269 -1.893791 +v 0.207317 0.966012 -1.917708 +v 0.269079 0.966012 -1.917708 +v 0.295772 0.908269 -1.909216 +v 0.295772 0.861434 -2.022286 +v 0.295772 0.908269 -2.041686 +v 0.906809 -0.197376 2.444303 +v 0.784319 -0.409536 2.689283 +v 0.784319 -0.409536 2.199322 +v 0.481215 -0.434565 2.617530 +v 0.654443 -0.134526 2.617530 +v 0.481215 -0.434565 2.271075 +v 0.872283 -0.218575 -0.312500 +v 1.088789 -0.343575 0.312500 +v 1.088790 -0.343575 -0.312500 +v 1.088790 -0.593575 -0.312500 +v 0.872283 -0.718575 0.312500 +v 0.872283 -0.718575 -0.312500 +v 0.655777 -0.593575 -0.312500 +v 0.872283 -0.218575 0.312500 +v 1.088790 -0.593575 0.312500 +v 0.655777 -0.593575 0.312500 +v 0.655777 -0.343575 -0.312500 +v 0.655777 -0.343575 0.312500 +v -0.475030 0.813421 1.869728 +v -0.475030 0.750921 0.369728 +v -0.475030 0.750921 1.869728 +v -0.412530 0.813420 0.369728 +v -0.412530 0.750921 1.869728 +v -0.412530 0.750921 0.369728 +v -0.475030 0.750921 1.932228 +v -0.475030 0.813420 0.369728 +v -0.412530 0.813421 1.869728 +v -0.475030 0.250921 1.932228 +v -0.412530 0.750921 1.932228 +v -0.412530 0.250921 1.869728 +v -0.475030 0.250921 1.869728 +v -0.412530 0.250921 1.932228 +v 0.475030 0.750921 0.369728 +v 0.475030 0.813421 1.869728 +v 0.475030 0.750921 1.869728 +v 0.412530 0.750921 1.869728 +v 0.412530 0.813420 0.369728 +v 0.412530 0.750920 0.369728 +v 0.475030 0.750921 1.932228 +v 0.412530 0.813420 1.869728 +v 0.475030 0.813420 0.369728 +v 0.475030 0.250921 1.932228 +v 0.412530 0.750921 1.932228 +v 0.475030 0.250921 1.869728 +v 0.412530 0.250921 1.869728 +v 0.412530 0.250921 1.932228 +v -0.475030 -0.750921 0.369728 +v -0.475030 -0.813421 1.869728 +v -0.475030 -0.750921 1.869728 +v -0.412530 -0.750921 1.869728 +v -0.412530 -0.813421 0.369728 +v -0.412530 -0.750921 0.369728 +v -0.475030 -0.750921 1.932228 +v -0.412530 -0.813421 1.869728 +v -0.475030 -0.813421 0.369728 +v -0.475030 -0.250921 1.932228 +v -0.412530 -0.750921 1.932228 +v -0.475030 -0.250921 1.869728 +v -0.412530 -0.250921 1.869728 +v -0.412530 -0.250921 1.932228 +v 0.475030 -0.813421 1.869728 +v 0.475030 -0.750921 0.369728 +v 0.475030 -0.750921 1.869728 +v 0.412530 -0.813421 0.369728 +v 0.412530 -0.750921 1.869728 +v 0.412530 -0.750921 0.369728 +v 0.475030 -0.750921 1.932228 +v 0.475030 -0.813421 0.369728 +v 0.412530 -0.813421 1.869728 +v 0.475030 -0.250921 1.932228 +v 0.412530 -0.750921 1.932228 +v 0.475030 -0.250921 1.869728 +v 0.412530 -0.250921 1.869728 +v 0.412530 -0.250921 1.932228 +v 0.473896 0.611795 -0.679757 +v 0.536184 0.986795 -0.674615 +v 0.536184 0.611795 -0.674615 +v 0.468753 0.986795 -0.617469 +v 0.468753 0.611795 -0.617469 +v 0.531041 0.986795 -0.612327 +v 0.531041 0.611795 -0.612327 +v 0.473896 0.986795 -0.679757 +v 0.531041 1.049295 -0.612327 +v 0.304755 1.049295 2.128347 +v 0.304755 0.986795 2.128347 +v 0.468753 1.049295 -0.617469 +v 0.299613 0.986795 2.190635 +v 0.242467 0.986795 2.123204 +v 0.242467 1.049295 2.123204 +v 0.299613 0.611795 2.190635 +v 0.304755 0.611795 2.128347 +v 0.237324 0.986795 2.185492 +v 0.242467 0.611795 2.123204 +v 0.237325 0.611795 2.185492 +v 0.673228 -0.500000 -0.471783 +v 0.326772 -0.500000 -0.471783 +v 0.326772 -0.500000 -0.818238 +v 0.377510 0.625000 -0.645011 +v 0.586614 0.625000 -0.558397 +v 0.622490 0.625000 -0.645011 +v -0.250000 -0.750000 -2.125000 +v 0.250000 0.687500 -2.125000 +v -0.250000 0.687500 -2.125000 +v 0.250000 0.687500 -1.375000 +v 0.250000 -0.750000 -1.375000 +v -0.250000 0.687500 -1.375000 +v -0.250000 0.750000 -2.125000 +v -0.250000 1.062500 -2.125000 +v -0.250000 0.750000 -2.375000 +v -0.250000 -0.750000 -2.375000 +v 0.250000 -0.750000 -2.375000 +v 0.250000 -0.750000 -2.125000 +v 0.250000 0.750000 -1.375000 +v 0.250000 1.062500 -1.937499 +v 0.250000 1.062500 -1.375000 +v 0.250000 0.687500 -2.375000 +v -0.250000 -0.750000 -1.375000 +v -0.250000 0.687500 -0.375000 +v 0.250000 -0.750000 -0.375000 +v -0.250000 -0.750000 -0.375000 +v 0.250000 0.750000 -2.125000 +v 0.250000 1.062500 -2.125000 +v -0.250000 0.687500 -2.375000 +v -0.250000 0.750000 -1.375000 +v 0.250000 0.750000 -0.375000 +v 0.250000 0.687500 -0.375000 +v -0.250000 1.062500 -1.937500 +v -0.250000 1.062500 -1.375000 +v 0.250000 1.062500 -0.625000 +v -0.250000 1.062500 -0.625000 +v -0.250000 0.750000 -0.375000 +v 0.250000 0.750000 -2.375000 +v 0.044558 0.077177 1.515425 +v 0.000000 0.170159 1.515425 +v 0.085079 0.147362 1.515425 +v 0.147362 0.085079 1.515425 +v 0.077177 0.044558 1.515425 +v 0.089117 -0.000000 1.515425 +v 0.170159 -0.000000 1.515425 +v 0.077177 -0.044558 1.515425 +v 0.147362 -0.085079 1.515425 +v 0.085079 -0.147362 1.515425 +v 0.044558 -0.077177 1.515425 +v 0.000000 -0.170159 1.515425 +v 0.000000 -0.089117 1.515425 +v -0.085079 -0.147362 1.515425 +v -0.044558 -0.077177 1.515425 +v -0.147362 -0.085079 1.515425 +v -0.077177 -0.044558 1.515425 +v -0.170159 -0.000000 1.515425 +v -0.089117 -0.000000 1.515425 +v -0.077177 0.044558 1.515425 +v -0.147362 0.085079 1.515425 +v -0.044558 0.077177 1.515425 +v -0.085079 0.147362 1.515425 +v 0.000000 0.089117 1.515425 +v 0.000000 0.599488 4.000000 +v 0.362223 0.627389 4.000000 +v 0.000000 0.724446 4.000000 +v 0.599488 -0.000000 4.000000 +v 0.627388 0.362223 4.000000 +v 0.519172 0.299744 4.000000 +v 0.627388 -0.362223 4.000000 +v 0.724446 -0.000000 4.000000 +v 0.299744 -0.519172 4.000000 +v 0.000000 -0.724446 4.000000 +v 0.362223 -0.627389 4.000000 +v -0.299744 -0.519172 4.000000 +v 0.000000 -0.599488 4.000000 +v -0.519172 -0.299744 4.000000 +v -0.724446 -0.000000 4.000000 +v -0.627389 -0.362223 4.000000 +v -0.599488 -0.000000 4.000000 +v -0.627389 0.362223 4.000000 +v -0.362223 0.627388 4.000000 +v -0.299745 0.519172 4.000000 +v -0.519172 0.299744 3.000000 +v -0.362223 0.627388 3.000000 +v -0.627389 0.362223 3.000000 +v 0.299744 0.519172 3.000000 +v 0.627388 0.362223 3.000000 +v 0.362223 0.627389 3.000000 +v 0.519172 -0.299744 3.000000 +v 0.362223 -0.627389 3.000000 +v 0.627389 -0.362223 3.000000 +v -0.299744 -0.519172 3.000000 +v -0.627389 -0.362223 3.000000 +v -0.362223 -0.627389 3.000000 +v 0.050433 0.087352 2.000000 +v 0.000000 0.599489 2.000000 +v 0.000000 0.100865 2.000000 +v 0.087351 0.050433 2.000000 +v 0.299744 0.519173 2.000000 +v 0.100865 0.000001 2.000000 +v 0.519172 0.299745 2.000000 +v 0.519172 -0.299744 2.000000 +v 0.599488 0.000001 2.000000 +v 0.050432 -0.087351 2.000000 +v 0.087351 -0.050432 2.000000 +v 0.000000 -0.599488 2.000000 +v 0.299744 -0.519171 2.000000 +v -0.050432 -0.087351 2.000000 +v 0.000000 -0.100864 2.000000 +v -0.087352 -0.050432 2.000000 +v -0.299744 -0.519171 2.000000 +v -0.599488 -0.000000 2.000000 +v -0.519172 -0.299744 2.000000 +v -0.087352 0.050433 2.000000 +v -0.100865 0.000001 2.000000 +v -0.299744 0.519172 2.000000 +v -0.519172 0.299744 2.000000 +v -0.050433 0.087352 2.000000 +v -0.087352 0.050434 5.611448 +v 0.087351 -0.050431 5.611448 +v 0.087351 0.050434 5.611448 +v 0.500000 0.866025 0.375000 +v 1.000000 0.000000 -0.375000 +v 0.500000 0.866025 -0.375000 +v 0.500000 -0.866025 0.375000 +v 0.500000 -0.866025 -0.375000 +v -0.500000 -0.866025 -0.375000 +v -1.000000 -0.000000 0.375000 +v -1.000000 0.000000 -0.375000 +v -0.500000 0.866025 0.375000 +v -0.500000 0.866025 -0.375000 +v 0.500000 0.866025 -2.375000 +v 1.000000 0.000000 -3.125000 +v 0.500000 0.866025 -3.125000 +v 1.000000 0.000000 -2.375000 +v 0.500000 -0.866026 -3.125000 +v 0.500000 -0.866025 -2.375000 +v -0.500000 -0.866025 -3.125000 +v -0.500000 -0.866025 -2.375000 +v -1.000000 0.000000 -3.125000 +v -0.500000 0.866025 -2.375000 +v -1.000000 0.000000 -2.375000 +v -0.500000 0.866025 -3.125000 +v -0.479958 0.611795 -0.679582 +v -0.542246 0.986795 -0.674439 +v -0.542247 0.611795 -0.674439 +v -0.537103 0.986795 -0.612151 +v -0.537104 0.611795 -0.612151 +v -0.474815 0.986795 -0.617294 +v -0.474815 0.611795 -0.617294 +v -0.479958 0.986795 -0.679582 +v -0.537104 1.049295 -0.612151 +v -0.474816 1.049295 -0.617294 +v -0.248530 0.986795 2.123379 +v -0.243387 0.986795 2.185668 +v -0.248530 1.049295 2.123379 +v -0.310818 0.986795 2.128522 +v -0.310818 1.049295 2.128522 +v -0.248530 0.611795 2.123379 +v -0.305675 0.986795 2.190811 +v -0.305675 0.611795 2.190811 +v -0.673228 -0.500000 -0.818238 +v -0.255019 -0.500000 -0.645011 +v -0.326772 -0.500000 -0.471783 +v -0.377510 0.625000 -0.645011 +v -0.586614 0.625000 -0.731624 +v -0.622490 0.625000 -0.645011 +v -0.207317 0.989930 -0.750546 +v -0.269079 0.966012 -0.808289 +v -0.207317 0.966012 -0.808289 +v -0.269079 0.908269 -0.832207 +v -0.207317 0.908269 -0.832207 +v -0.269079 0.850527 -0.808289 +v -0.207317 0.850527 -0.808289 +v -0.207317 0.826609 -0.750546 +v -0.269079 0.826609 -0.750546 +v -0.207317 0.850527 -0.692804 +v -0.269079 0.850527 -0.692804 +v -0.207317 0.908269 -0.668886 +v -0.269079 0.966012 -0.692804 +v -0.207317 0.966012 -0.692804 +v -0.295772 0.908269 -0.684311 +v -0.295772 0.861434 -0.797381 +v -0.295772 0.908269 -0.816781 +v -0.269079 0.989929 -1.158848 +v -0.207317 0.966012 -1.216590 +v -0.207317 0.989929 -1.158848 +v -0.269079 0.908269 -1.240508 +v -0.207317 0.908269 -1.240508 +v -0.269079 0.850527 -1.216591 +v -0.207317 0.850527 -1.216591 +v -0.269079 0.826609 -1.158848 +v -0.207317 0.826609 -1.158848 +v -0.269079 0.850527 -1.101106 +v -0.207317 0.850527 -1.101105 +v -0.269079 0.908269 -1.077188 +v -0.207317 0.908269 -1.077188 +v -0.207317 0.966012 -1.101105 +v -0.295772 0.908269 -1.092613 +v -0.295772 0.861434 -1.205683 +v -0.295772 0.908269 -1.225083 +v -0.207317 0.989929 -1.567149 +v -0.269079 0.966012 -1.624892 +v -0.207317 0.966012 -1.624892 +v -0.269079 0.908269 -1.648810 +v -0.207317 0.908269 -1.648810 +v -0.207317 0.850527 -1.624892 +v -0.269079 0.826609 -1.567150 +v -0.207317 0.826609 -1.567150 +v -0.207317 0.850527 -1.509407 +v -0.269079 0.908269 -1.485489 +v -0.207317 0.908269 -1.485489 +v -0.207317 0.966012 -1.509407 +v -0.269079 0.966012 -1.509407 +v -0.295772 0.908269 -1.500914 +v -0.295772 0.861434 -1.613985 +v -0.295772 0.908269 -1.633385 +v -0.207317 0.989930 -1.975451 +v -0.269079 0.966012 -2.033194 +v -0.207317 0.966012 -2.033194 +v -0.207317 0.908269 -2.057111 +v -0.269079 0.908269 -2.057111 +v -0.207317 0.850527 -2.033194 +v -0.269079 0.826609 -1.975451 +v -0.207317 0.826609 -1.975451 +v -0.207317 0.850527 -1.917709 +v -0.269079 0.850527 -1.917709 +v -0.207317 0.908269 -1.893791 +v -0.269079 0.908269 -1.893791 +v -0.207317 0.966012 -1.917708 +v -0.269079 0.966012 -1.917708 +v -0.295772 0.908269 -1.909216 +v -0.295772 0.842034 -1.975451 +v -0.295772 0.974504 -1.975451 +v 0.173228 -0.173228 -3.118932 +v 0.000000 -0.244981 -3.118932 +v -0.244981 0.000000 -3.118932 +v 0.173227 0.173227 0.368932 +v 0.000000 0.244981 0.368932 +v -0.173227 0.173227 0.368932 +v -0.173227 -0.173228 0.368932 +v 0.173227 -0.173227 0.368932 +v 0.249981 0.945274 -2.958606 +v 0.249981 1.031888 -2.994483 +v 0.249981 1.118502 -2.958606 +v 0.249981 1.118502 -2.785378 +v 0.249981 0.945274 -2.785378 +v 0.269079 0.908269 -0.832206 +v 0.269079 0.826609 -0.750546 +v 0.295772 0.955105 -0.797381 +v 0.295772 0.974504 -0.750546 +v 0.295772 0.955105 -0.703711 +v 0.295772 0.861434 -0.703711 +v 0.295772 0.861434 -0.797381 +v 0.269080 0.826609 -1.158848 +v 0.295772 0.955105 -1.205683 +v 0.295772 0.974504 -1.158847 +v 0.295772 0.955104 -1.112013 +v 0.295772 0.861434 -1.112013 +v 0.295772 0.842034 -1.158848 +v 0.269080 0.908269 -1.485489 +v 0.295772 0.955105 -1.613984 +v 0.295772 0.974504 -1.567149 +v 0.295772 0.955105 -1.520314 +v 0.295772 0.861434 -1.520314 +v 0.295772 0.842034 -1.567149 +v 0.269079 0.989930 -1.975451 +v 0.269079 0.826609 -1.975451 +v 0.295772 0.955105 -2.022286 +v 0.295772 0.974504 -1.975451 +v 0.295772 0.955105 -1.928616 +v 0.295772 0.861434 -1.928616 +v 0.295772 0.842034 -1.975451 +v 0.661828 -0.621696 2.444303 +v 0.697705 -0.559556 2.271075 +v 0.870933 -0.259517 2.271075 +v 0.870933 -0.259516 2.617530 +v 0.697705 -0.559556 2.617530 +v 0.654443 -0.134526 2.271075 +v 0.567829 -0.284546 2.199322 +v 0.445338 -0.496705 2.444303 +v 0.567829 -0.284546 2.689283 +v 0.690319 -0.072386 2.444303 +v 0.500000 -0.500000 -0.889991 +v 0.673228 -0.500000 -0.818238 +v 0.744981 -0.500000 -0.645011 +v 0.500000 -0.500000 -0.400030 +v 0.255019 -0.500000 -0.645011 +v 0.586614 0.625000 -0.731624 +v 0.500000 0.625000 -0.767501 +v 0.413386 0.625000 -0.731624 +v 0.413386 0.625000 -0.558397 +v 0.500000 0.625000 -0.522520 +v 0.299744 0.519172 4.000000 +v 0.519172 -0.299744 4.000000 +v -0.362223 -0.627389 4.000000 +v -0.519172 0.299744 4.000000 +v -0.299745 0.519172 3.000000 +v 0.519172 0.299744 3.000000 +v 0.299744 -0.519172 3.000000 +v -0.519172 -0.299744 3.000000 +v 0.050432 0.087353 5.611448 +v 0.000000 0.100866 5.611448 +v -0.050433 0.087353 5.611448 +v -0.100865 0.000002 5.611448 +v 0.000000 -0.100863 5.611448 +v -0.087352 -0.050431 5.611448 +v -0.050432 -0.087350 5.611448 +v 0.050432 -0.087350 5.611448 +v 0.100865 0.000002 5.611448 +v 1.000000 -0.000000 0.375000 +v -0.500000 -0.866025 0.375000 +v -0.243387 0.611795 2.185668 +v -0.310818 0.611795 2.128522 +v -0.500000 -0.500000 -0.400030 +v -0.673227 -0.500000 -0.471783 +v -0.744981 -0.500000 -0.645011 +v -0.500000 -0.500000 -0.889992 +v -0.326772 -0.500000 -0.818238 +v -0.586614 0.625000 -0.558397 +v -0.500000 0.625000 -0.522520 +v -0.413386 0.625000 -0.558397 +v -0.413386 0.625000 -0.731625 +v -0.500000 0.625000 -0.767501 +v -0.269079 0.989930 -0.750546 +v -0.269079 0.908269 -0.668886 +v -0.295772 0.955105 -0.797381 +v -0.295772 0.974504 -0.750546 +v -0.295772 0.955105 -0.703711 +v -0.295772 0.861434 -0.703711 +v -0.295772 0.842034 -0.750546 +v -0.269079 0.966012 -1.216590 +v -0.269079 0.966012 -1.101105 +v -0.295772 0.955104 -1.205683 +v -0.295772 0.974504 -1.158848 +v -0.295772 0.955104 -1.112013 +v -0.295772 0.861434 -1.112013 +v -0.295772 0.842034 -1.158848 +v -0.269079 0.989929 -1.567149 +v -0.269079 0.850527 -1.624892 +v -0.269079 0.850527 -1.509407 +v -0.295772 0.955104 -1.613984 +v -0.295772 0.974504 -1.567149 +v -0.295772 0.955104 -1.520314 +v -0.295772 0.861434 -1.520314 +v -0.295772 0.842034 -1.567150 +v -0.269079 0.989930 -1.975451 +v -0.269079 0.850527 -2.033194 +v -0.295772 0.908269 -2.041686 +v -0.295772 0.955105 -2.022286 +v -0.295772 0.955105 -1.928616 +v -0.295772 0.861434 -1.928616 +v -0.295772 0.861434 -2.022286 +v -0.173227 0.173227 -3.118932 +v 0.000000 0.244981 -3.118932 +v 0.173228 0.173227 -3.118932 +v 0.244981 0.000000 -3.118932 +v -0.173227 -0.173228 -3.118932 +v 0.249981 0.945274 -2.713625 +v 0.249981 1.031888 -2.749502 +v 0.249981 1.118502 -2.713625 +v 0.249981 1.118502 -2.540397 +v 0.249981 0.945274 -2.540397 +v -0.249981 1.031888 -2.749502 +v -0.249981 0.945274 -2.713625 +v -0.249981 0.909398 -2.627011 +v -0.249981 1.031888 -2.504521 +v -0.249981 1.118502 -2.540398 +v -0.249981 1.031888 -2.994483 +v -0.249981 0.945274 -2.958606 +v -0.249981 0.909398 -2.871992 +v -0.249981 1.031888 -2.749502 +v -0.249980 1.118502 -2.785378 +v 0.876733 -0.551959 2.548175 +v 0.586053 -0.304371 2.593377 +v 0.551005 -0.364964 2.574621 +v 0.843024 -0.591668 2.497790 +v 0.525250 -0.409266 2.523377 +v 0.822599 -0.601533 2.428962 +v 0.515690 -0.425405 2.453378 +v 0.820930 -0.578912 2.360134 +v 0.524887 -0.409056 2.383378 +v 0.838465 -0.529865 2.309748 +v 0.550376 -0.364602 2.332135 +v 0.870505 -0.467534 2.291306 +v 0.585327 -0.303952 2.313378 +v 0.620376 -0.243358 2.332134 +v 0.646131 -0.199057 2.383378 +v 0.908465 -0.408621 2.309748 +v 0.655690 -0.182918 2.453377 +v 0.942174 -0.368912 2.360134 +v 0.646494 -0.199266 2.523377 +v 0.962599 -0.359046 2.428962 +v 0.621005 -0.243721 2.574621 +v 0.964268 -0.381668 2.497789 +v 0.946733 -0.430715 2.548175 +v 1.101227 -0.681570 2.469018 +v 0.914693 -0.493046 2.566617 +v 1.055429 -0.714300 2.423376 +v 1.018491 -0.714631 2.361029 +v 1.000308 -0.682476 2.298681 +v 1.005754 -0.626449 2.253039 +v 1.033369 -0.561564 2.236333 +v 1.075754 -0.505206 2.253039 +v 1.121552 -0.472476 2.298681 +v 1.158491 -0.472144 2.361028 +v 1.176673 -0.504300 2.423376 +v 1.171227 -0.560327 2.469018 +v 1.256243 -0.771069 2.330546 +v 1.143612 -0.625212 2.485724 +v 1.196166 -0.795555 2.298250 +v 1.139721 -0.784624 2.254134 +v 1.102032 -0.741206 2.210018 +v 1.093198 -0.676935 2.177722 +v 1.115587 -0.609032 2.165901 +v 1.163198 -0.555691 2.177722 +v 1.223275 -0.531206 2.210018 +v 1.279721 -0.542137 2.254134 +v 1.317410 -0.585554 2.298250 +v 1.326243 -0.649825 2.330546 +v 1.385649 -0.764952 2.147086 +v 1.303855 -0.717729 2.342367 +v 1.334899 -0.816481 2.142498 +v 1.266247 -0.836016 2.129960 +v 1.198090 -0.818323 2.112834 +v 1.148689 -0.768143 2.095708 +v 1.131281 -0.698922 2.083170 +v 1.201281 -0.577679 2.083170 +v 1.269932 -0.558143 2.095708 +v 1.338090 -0.575836 2.112834 +v 1.387491 -0.626016 2.129960 +v 1.404899 -0.695237 2.142498 +v 1.396360 -0.771136 1.932145 +v 1.345154 -0.822402 1.933423 +v 1.275257 -0.841218 1.936914 +v 1.205398 -0.822543 1.941684 +v 1.154295 -0.771381 1.946454 +v 1.150531 -0.629207 2.078581 +v 1.135642 -0.701440 1.949945 +v 1.205642 -0.580197 1.949945 +v 1.275539 -0.561381 1.946454 +v 1.345398 -0.580056 1.941684 +v 1.396501 -0.631218 1.936914 +v 1.415154 -0.701158 1.933423 +v 1.361046 -0.750748 1.711173 +v 1.310290 -0.802273 1.715737 +v 1.241624 -0.821800 1.728206 +v 1.173446 -0.804095 1.745240 +v 1.124025 -0.753904 1.762273 +v 1.154436 -0.631462 1.951223 +v 1.106602 -0.684674 1.774743 +v 1.176602 -0.563430 1.774743 +v 1.245268 -0.543904 1.762273 +v 1.313446 -0.561608 1.745240 +v 1.362868 -0.611800 1.728206 +v 1.380290 -0.681030 1.715737 +v 1.298705 -0.714755 1.482584 +v 1.248342 -0.766507 1.488676 +v 1.180748 -0.786653 1.505321 +v 1.114035 -0.769794 1.528057 +v 1.066078 -0.720448 1.550794 +v 1.125847 -0.614956 1.779307 +v 1.049728 -0.651837 1.567438 +v 1.119728 -0.530594 1.567438 +v 1.187322 -0.510448 1.550794 +v 1.254035 -0.527307 1.528057 +v 1.301991 -0.576653 1.505321 +v 1.318342 -0.645263 1.488676 +v 1.222609 -0.670821 1.245910 +v 1.172383 -0.722653 1.252446 +v 1.105165 -0.743015 1.270301 +v 1.038964 -0.726452 1.294692 +v 0.991519 -0.677402 1.319082 +v 1.069365 -0.582346 1.573530 +v 0.975544 -0.609007 1.336938 +v 1.045544 -0.487764 1.336938 +v 1.112763 -0.467401 1.319082 +v 1.178964 -0.483964 1.294692 +v 1.226408 -0.533015 1.270301 +v 1.242383 -0.601409 1.252446 +v 1.144526 -0.625740 1.003635 +v 1.094187 -0.677506 1.009806 +v 1.026658 -0.697689 1.026667 +v 0.960034 -0.680881 1.049699 +v 0.912166 -0.631587 1.072732 +v 0.995318 -0.539595 1.343473 +v 0.895880 -0.563013 1.089593 +v 0.965880 -0.441770 1.089593 +v 1.033409 -0.421587 1.072732 +v 1.100034 -0.438394 1.049699 +v 1.147902 -0.487689 1.026667 +v 1.164187 -0.556262 1.009806 +v 1.075851 -0.586090 0.760105 +v 1.025202 -0.637677 0.765133 +v 0.956826 -0.657371 0.778870 +v 0.889045 -0.639896 0.797636 +v 0.840020 -0.589934 0.816401 +v 0.915541 -0.493536 1.095764 +v 0.822888 -0.520871 0.830139 +v 0.892888 -0.399628 0.830139 +v 0.961264 -0.379933 0.816401 +v 1.029045 -0.397409 0.797636 +v 1.078070 -0.447371 0.778870 +v 1.095202 -0.516433 0.765133 +v 1.027510 -0.558181 0.520874 +v 0.976472 -0.609543 0.523846 +v 0.907032 -0.628623 0.531965 +v 0.837798 -0.610309 0.543057 +v 0.787320 -0.559507 0.554148 +v 0.842239 -0.451215 0.835167 +v 0.769125 -0.489831 0.562268 +v 0.839124 -0.368587 0.562268 +v 0.908564 -0.349507 0.554148 +v 0.977798 -0.367821 0.543057 +v 1.028276 -0.418623 0.531965 +v 1.046472 -0.488299 0.523846 +v 1.009338 -0.547689 0.290518 +v 0.958094 -0.598932 0.290518 +v 0.888094 -0.617689 0.290518 +v 0.818094 -0.598932 0.290518 +v 0.766850 -0.547689 0.290518 +v 0.788086 -0.419949 0.565239 +v 0.748094 -0.477689 0.290518 +v 0.818094 -0.356445 0.290518 +v 0.888094 -0.337689 0.290518 +v 0.958094 -0.356445 0.290518 +v 1.009338 -0.407689 0.290518 +v 1.028094 -0.477689 0.290518 +v 0.000000 0.244981 -0.368932 +v 0.173227 0.173227 -0.368932 +v 0.244981 0.000000 -0.368932 +v 0.173227 -0.173227 -0.368932 +v 0.000000 -0.244981 -0.368932 +v -0.173227 -0.173227 -0.368932 +v -0.244981 0.000000 -0.368932 +v -0.173227 0.173227 -0.368932 +v 0.714536 0.412539 0.000002 +v 0.722677 0.000002 0.247212 +v 0.825075 0.000002 0.000002 +v 0.411767 0.237735 0.349610 +v 0.475467 0.000002 0.349610 +v 0.228257 0.000002 0.247212 +v 0.197676 0.114130 0.247212 +v 0.125859 0.000002 0.000002 +v 0.197676 0.114130 -0.247208 +v 0.228257 0.000002 -0.247208 +v 0.411767 0.237735 -0.349606 +v 0.475467 0.000002 -0.349606 +v 0.722678 0.000002 -0.247208 +v 0.412538 0.714538 0.000002 +v 0.625857 0.361341 0.247212 +v 0.237734 0.411769 0.349610 +v 0.114128 0.197678 0.247212 +v 0.108997 0.062931 0.000002 +v 0.062930 0.108999 0.000002 +v 0.114129 0.197678 -0.247208 +v 0.237734 0.411769 -0.349606 +v 0.625857 0.361341 -0.247208 +v 0.000000 0.722679 0.247212 +v 0.361339 0.625859 0.247212 +v 0.000000 0.475469 0.349610 +v 0.000000 0.228258 0.247212 +v 0.000000 0.228259 -0.247208 +v 0.000000 0.475469 -0.349606 +v 0.000000 0.722679 -0.247208 +v 0.361339 0.625859 -0.247208 +v 0.000000 0.825077 0.000002 +v -0.412537 0.714538 0.000002 +v -0.237733 0.411769 0.349610 +v -0.114128 0.197678 0.247212 +v 0.000000 0.125861 0.000002 +v -0.114128 0.197678 -0.247208 +v -0.237733 0.411769 -0.349606 +v -0.625857 0.361341 0.247212 +v -0.361338 0.625859 0.247212 +v -0.411766 0.237735 0.349610 +v -0.108997 0.062932 0.000002 +v -0.062929 0.108999 0.000002 +v -0.411766 0.237735 -0.349606 +v -0.625857 0.361341 -0.247208 +v -0.361338 0.625859 -0.247208 +v -0.825075 0.000002 0.000002 +v -0.714536 0.412540 0.000002 +v -0.722677 0.000002 0.247212 +v -0.228257 0.000002 0.247212 +v -0.197676 0.114130 0.247212 +v -0.125859 0.000002 0.000002 +v -0.197676 0.114130 -0.247208 +v -0.228257 0.000002 -0.247208 +v -0.722677 0.000002 -0.247208 +v -0.625857 -0.361336 0.247212 +v -0.475467 0.000002 0.349610 +v -0.197676 -0.114127 0.247212 +v -0.108997 -0.062928 0.000002 +v -0.197676 -0.114127 -0.247208 +v -0.475467 0.000002 -0.349606 +v -0.625857 -0.361336 -0.247208 +v -0.714536 -0.412536 0.000002 +v -0.361338 -0.625855 0.247212 +v -0.411766 -0.237732 0.349610 +v -0.114128 -0.197675 0.247212 +v -0.114128 -0.197674 -0.247208 +v -0.411767 -0.237732 -0.349606 +v -0.361338 -0.625855 -0.247208 +v -0.412537 -0.714534 0.000002 +v 0.000000 -0.722675 0.247212 +v -0.237733 -0.411765 0.349610 +v 0.000000 -0.475466 0.349610 +v 0.000000 -0.228255 0.247212 +v -0.062929 -0.108995 0.000002 +v 0.000000 -0.228255 -0.247208 +v -0.237733 -0.411765 -0.349606 +v 0.000000 -0.722675 -0.247208 +v 0.412538 -0.714534 0.000002 +v 0.000000 -0.825073 0.000002 +v 0.237734 -0.411765 0.349610 +v 0.114128 -0.197675 0.247212 +v 0.000000 -0.125858 0.000002 +v 0.062930 -0.108995 0.000002 +v 0.114129 -0.197675 -0.247208 +v 0.000000 -0.475465 -0.349606 +v 0.237734 -0.411765 -0.349606 +v 0.625857 -0.361337 0.247212 +v 0.361339 -0.625855 0.247212 +v 0.411767 -0.237732 0.349610 +v 0.197676 -0.114126 0.247212 +v 0.108997 -0.062928 0.000002 +v 0.411767 -0.237732 -0.349606 +v 0.625857 -0.361337 -0.247208 +v 0.361339 -0.625855 -0.247208 +v 0.714536 -0.412536 0.000002 +v 0.197676 -0.114127 -0.247208 +v 0.500000 0.500000 -0.889991 +v 0.673228 0.500000 -0.818238 +v 0.673228 0.500000 -0.471783 +v 0.500000 0.500000 -0.400030 +v 0.326772 0.500000 -0.471783 +v 0.255019 0.500000 -0.645011 +v 0.326773 0.500000 -0.818238 +v 0.744981 0.500000 -0.645011 +v 0.000000 0.724446 3.000000 +v 0.362223 0.627389 2.000000 +v 0.000000 0.724446 2.000000 +v 0.627389 0.362223 2.000000 +v 0.724446 -0.000000 2.000000 +v 0.724446 -0.000000 3.000000 +v 0.627388 -0.362223 2.000000 +v 0.362223 -0.627388 2.000000 +v 0.000000 -0.724446 2.000000 +v 0.000000 -0.724446 3.000000 +v -0.362223 -0.627389 2.000000 +v -0.627389 -0.362223 2.000000 +v -0.724446 -0.000000 2.000000 +v -0.724446 -0.000000 3.000000 +v -0.627389 0.362223 2.000000 +v 0.599488 -0.000000 3.000000 +v -0.362223 0.627388 2.000000 +v -0.325385 -0.563585 1.803562 +v 0.563584 -0.325386 1.803562 +v 0.484842 -0.000000 1.637495 +v 0.650771 -0.000000 1.803562 +v 0.000000 -0.650771 1.803562 +v 0.325386 -0.563584 1.803562 +v -0.325386 0.563584 1.803562 +v 0.325386 0.563584 1.803562 +v 0.000000 0.650771 1.803562 +v 0.563584 0.325386 1.803562 +v -0.563585 0.325385 1.803562 +v -0.650771 -0.000000 1.803562 +v -0.563584 -0.325386 1.803562 +v 0.000000 -0.484842 1.637495 +v -0.242421 0.419886 1.637495 +v -0.419886 0.242421 1.637495 +v 0.242421 0.419886 1.637495 +v 0.000000 0.484842 1.637495 +v -0.419886 -0.242421 1.637495 +v -0.242421 -0.419886 1.637495 +v 0.419886 -0.242421 1.637495 +v 0.242421 -0.419886 1.637495 +v 0.419886 0.242421 1.637495 +v -0.484842 -0.000000 1.637495 +v -0.077177 0.044559 0.220095 +v -0.089117 0.000001 0.220095 +v 0.000000 -0.089116 0.220095 +v 0.077177 -0.044557 0.220095 +v 0.089117 0.000001 0.220095 +v 0.000000 0.089118 0.220095 +v -0.044558 -0.077177 0.220095 +v 0.044558 -0.077176 0.220095 +v -0.044559 0.077178 0.220095 +v 0.077177 0.044559 0.220095 +v 0.044559 0.077178 0.220095 +v -0.077177 -0.044558 0.220095 +v 0.000000 0.599488 3.000000 +v -0.599488 -0.000000 3.000000 +v 0.000000 -0.599488 3.000000 +v -0.500000 0.500000 -0.400030 +v -0.744981 0.500000 -0.645011 +v -0.500000 0.500000 -0.889992 +v -0.255019 0.500000 -0.645011 +v -0.673227 0.500000 -0.818238 +v -0.326772 0.500000 -0.471783 +v -0.673227 0.500000 -0.471783 +v -0.326772 0.500000 -0.818238 +v 0.714536 0.412540 -2.749997 +v 0.722677 0.000002 -2.502787 +v 0.825075 0.000002 -2.749997 +v 0.411767 0.237735 -2.400389 +v 0.475467 0.000002 -2.400389 +v 0.228257 0.000002 -2.502787 +v 0.197676 0.114130 -2.502787 +v 0.125859 0.000002 -2.749997 +v 0.197676 0.114130 -2.997207 +v 0.228257 0.000002 -2.997207 +v 0.411767 0.237735 -3.099605 +v 0.475467 0.000002 -3.099605 +v 0.722678 0.000002 -2.997207 +v 0.412538 0.714538 -2.749997 +v 0.625857 0.361341 -2.502787 +v 0.237734 0.411769 -2.400389 +v 0.114128 0.197678 -2.502787 +v 0.062930 0.108999 -2.749997 +v 0.108997 0.062932 -2.749997 +v 0.114128 0.197678 -2.997207 +v 0.237734 0.411769 -3.099605 +v 0.625857 0.361341 -2.997207 +v 0.000000 0.825077 -2.749997 +v 0.361339 0.625859 -2.502787 +v 0.000000 0.722679 -2.502787 +v 0.000000 0.475469 -2.400389 +v 0.000000 0.228259 -2.502787 +v 0.000000 0.228259 -2.997207 +v 0.000000 0.475469 -3.099605 +v 0.000000 0.722679 -2.997207 +v 0.361339 0.625859 -2.997207 +v -0.361338 0.625859 -2.502788 +v -0.237733 0.411769 -2.400390 +v -0.114128 0.197678 -2.502787 +v 0.000000 0.125861 -2.749997 +v -0.114128 0.197678 -2.997207 +v -0.237733 0.411769 -3.099605 +v -0.361338 0.625859 -2.997207 +v -0.412537 0.714538 -2.749997 +v -0.625857 0.361341 -2.502788 +v -0.411767 0.237735 -2.400390 +v -0.197676 0.114130 -2.502787 +v -0.062929 0.108999 -2.749997 +v -0.108997 0.062932 -2.749997 +v -0.411766 0.237735 -3.099605 +v -0.625857 0.361341 -2.997207 +v -0.825075 0.000002 -2.749997 +v -0.714536 0.412540 -2.749997 +v -0.722677 0.000002 -2.502788 +v -0.228257 0.000002 -2.502787 +v -0.125859 0.000002 -2.749997 +v -0.197676 0.114130 -2.997207 +v -0.228257 0.000002 -2.997207 +v -0.722677 0.000002 -2.997207 +v -0.625857 -0.361336 -2.502787 +v -0.475467 0.000002 -2.400390 +v -0.197676 -0.114126 -2.502787 +v -0.197676 -0.114127 -2.997207 +v -0.475467 0.000002 -3.099605 +v -0.625857 -0.361336 -2.997207 +v -0.714536 -0.412536 -2.749997 +v -0.361338 -0.625855 -2.502787 +v -0.411767 -0.237732 -2.400389 +v -0.114128 -0.197674 -2.502787 +v -0.062929 -0.108995 -2.749997 +v -0.108997 -0.062928 -2.749997 +v -0.114128 -0.197675 -2.997207 +v -0.411767 -0.237732 -3.099605 +v -0.361338 -0.625855 -2.997207 +v -0.412537 -0.714534 -2.749997 +v 0.000000 -0.722675 -2.502787 +v -0.237733 -0.411765 -2.400389 +v 0.000000 -0.475466 -2.400389 +v 0.000000 -0.228255 -2.502787 +v 0.000000 -0.125858 -2.749997 +v 0.000000 -0.475465 -3.099605 +v -0.237733 -0.411765 -3.099605 +v 0.000000 -0.722675 -2.997207 +v 0.412538 -0.714534 -2.749997 +v 0.000000 -0.825073 -2.749997 +v 0.237734 -0.411765 -2.400389 +v 0.114129 -0.197675 -2.502787 +v 0.114128 -0.197674 -2.997207 +v 0.000000 -0.228255 -2.997207 +v 0.237734 -0.411765 -3.099605 +v 0.625857 -0.361337 -2.502787 +v 0.361339 -0.625855 -2.502787 +v 0.411767 -0.237732 -2.400389 +v 0.108997 -0.062928 -2.749997 +v 0.062930 -0.108995 -2.749997 +v 0.411767 -0.237732 -3.099605 +v 0.625857 -0.361337 -2.997207 +v 0.361339 -0.625855 -2.997207 +v 0.714536 -0.412536 -2.749997 +v 0.197676 -0.114126 -2.502787 +v 0.197676 -0.114126 -2.997207 +v 0.000000 0.244981 -2.381067 +v -0.173227 0.173227 -2.381067 +v -0.244980 0.000000 -2.381067 +v -0.173227 -0.173228 -2.381067 +v 0.000000 -0.244981 -2.381067 +v 0.173228 -0.173228 -2.381067 +v 0.244981 0.000000 -2.381067 +v 0.173228 0.173227 -2.381067 +v 0.766850 -0.407689 0.290518 +vt 0.342277 0.470539 +vt 0.311363 0.449920 +vt 0.336973 0.449920 +vt 0.319635 0.360294 +vt 0.374429 0.301471 +vt 0.374429 0.360294 +vt 0.442922 0.617647 +vt 0.438356 0.573529 +vt 0.438356 0.617647 +vt 0.456621 0.235294 +vt 0.511416 0.176471 +vt 0.511416 0.235294 +vt 0.059361 0.110294 +vt 0.054795 0.169118 +vt 0.054795 0.110294 +vt 0.305936 0.617647 +vt 0.310502 0.794118 +vt 0.305936 0.794118 +vt 0.694064 0.279412 +vt 0.397260 0.088235 +vt 0.452055 0.000000 +vt 0.452055 0.088235 +vt 0.118683 0.110505 +vt 0.118683 0.139406 +vt 0.109709 0.124955 +vt 0.219178 0.411765 +vt 0.223744 0.419118 +vt 0.223744 0.411765 +vt 0.223744 0.448529 +vt 0.219178 0.455882 +vt 0.219178 0.448529 +vt 0.301370 0.860294 +vt 0.305936 0.801471 +vt 0.305936 0.860294 +vt 0.433790 0.948529 +vt 0.438356 0.625000 +vt 0.438356 0.948529 +vt 0.219178 0.470588 +vt 0.223744 0.463235 +vt 0.219178 0.463235 +vt 0.442922 1.000000 +vt 0.447489 0.955882 +vt 0.447489 1.000000 +vt 0.045662 0.029412 +vt 0.041096 0.036765 +vt 0.041096 0.029412 +vt 0.041096 0.022059 +vt 0.004566 0.029412 +vt 0.004566 0.022059 +vt 0.013699 0.051471 +vt 0.050228 0.110294 +vt 0.013699 0.110294 +vt 0.059361 0.051471 +vt 0.050228 0.051471 +vt 0.219178 0.433824 +vt 0.223744 0.441176 +vt 0.223744 0.433824 +vt 0.219178 0.433824 +vt 0.223744 0.441176 +vt 0.223744 0.433824 +vt 0.063927 0.051471 +vt 0.059361 0.110294 +vt 0.799087 0.529412 +vt 0.853881 0.647059 +vt 0.799087 0.647059 +vt 0.223744 0.433824 +vt 0.219178 0.426471 +vt 0.223744 0.426471 +vt 0.223744 0.433824 +vt 0.219178 0.441176 +vt 0.219178 0.433824 +vt 0.762557 0.088235 +vt 0.817352 0.000000 +vt 0.817352 0.088235 +vt 0.360731 0.500000 +vt 0.342466 0.573529 +vt 0.342466 0.500000 +vt 0.319635 0.301471 +vt 0.292237 0.360294 +vt 0.292237 0.301471 +vt 0.223744 0.448529 +vt 0.219178 0.448529 +vt 0.461174 0.360537 +vt 0.461174 0.389597 +vt 0.454794 0.364793 +vt 0.223744 0.419118 +vt 0.219178 0.426471 +vt 0.219178 0.419118 +vt 0.223744 0.470588 +vt 0.219178 0.463235 +vt 0.223744 0.463235 +vt 0.223744 0.448529 +vt 0.219178 0.455882 +vt 0.219178 0.448529 +vt 0.219178 0.419118 +vt 0.223744 0.426471 +vt 0.219178 0.426471 +vt 0.219178 0.419118 +vt 0.223744 0.426471 +vt 0.228371 0.463247 +vt 0.236070 0.458111 +vt 0.237391 0.463247 +vt 0.429224 0.360294 +vt 0.456621 0.301471 +vt 0.456621 0.360294 +vt 0.219178 0.433824 +vt 0.219178 0.411765 +vt 0.223744 0.419118 +vt 0.223744 0.411765 +vt 0.433790 0.948529 +vt 0.438356 0.625000 +vt 0.433790 0.625000 +vt 0.301370 0.794118 +vt 0.305936 0.617647 +vt 0.305936 0.794118 +vt 0.219178 0.441176 +vt 0.223744 0.441176 +vt 0.301370 0.794118 +vt 0.296804 0.801471 +vt 0.296804 0.794118 +vt 0.228371 0.463247 +vt 0.236070 0.458111 +vt 0.237391 0.463247 +vt 0.223744 0.433824 +vt 0.292237 0.794118 +vt 0.296804 0.617647 +vt 0.296804 0.794118 +vt 0.219178 0.455882 +vt 0.210046 0.830882 +vt 0.283105 0.816176 +vt 0.283105 0.830882 +vt 0.223744 0.411765 +vt 0.219178 0.419118 +vt 0.219178 0.411765 +vt 0.799087 0.882353 +vt 0.853881 1.000000 +vt 0.799087 1.000000 +vt 0.219178 0.441176 +vt 0.219178 0.433824 +vt 0.229692 0.468382 +vt 0.236070 0.458111 +vt 0.237391 0.463247 +vt 0.210046 0.941176 +vt 0.283105 0.926471 +vt 0.283105 0.941176 +vt 0.447489 0.955882 +vt 0.442922 1.000000 +vt 0.447489 1.000000 +vt 0.210046 0.838235 +vt 0.283105 0.852941 +vt 0.210046 0.852941 +vt 0.301370 0.617647 +vt 0.301370 0.794118 +vt 0.360810 0.632280 +vt 0.360810 0.573965 +vt 0.376492 0.617702 +vt 0.296804 0.801471 +vt 0.301370 0.860294 +vt 0.296804 0.860294 +vt 0.372117 0.838450 +vt 0.377921 0.854637 +vt 0.366313 0.854637 +vt 0.301370 0.617647 +vt 0.296804 0.794118 +vt 0.296804 0.617647 +vt 0.296804 0.801471 +vt 0.293547 0.797798 +vt 0.296804 0.794118 +vt 0.004566 0.036765 +vt 0.000000 0.029412 +vt 0.004566 0.029412 +vt -0.000000 0.029412 +vt 0.219178 0.448529 +vt 0.223744 0.455882 +vt 0.223744 0.448529 +vt 0.304551 0.797798 +vt 0.301370 0.801471 +vt 0.301370 0.794118 +vt 0.292237 0.345588 +vt 0.219178 0.338235 +vt 0.292237 0.338235 +vt 0.301370 0.801471 +vt 0.305936 0.860294 +vt 0.301370 0.860294 +vt 0.310502 0.617647 +vt 0.310502 0.794118 +vt 0.305936 0.617647 +vt 0.310502 0.794118 +vt 0.305936 0.794118 +vt 0.301370 0.801471 +vt 0.304551 0.797798 +vt 0.438356 1.000000 +vt 0.433790 0.955882 +vt 0.438356 0.955882 +vt 0.292237 0.794118 +vt 0.219178 0.463235 +vt 0.223744 0.455882 +vt 0.219178 0.455882 +vt 0.223744 0.448529 +vt 0.223744 0.441176 +vt 0.293547 0.797798 +vt 0.045662 0.036765 +vt 0.041096 0.051471 +vt 0.292237 0.860294 +vt 0.296804 0.801471 +vt 0.296804 0.860294 +vt 0.438356 0.573529 +vt 0.442922 0.617647 +vt 0.438356 0.617647 +vt 0.296804 0.860294 +vt 0.301370 0.801471 +vt 0.296804 0.794118 +vt 0.296804 0.801471 +vt 0.296804 0.801471 +vt 0.301370 0.617647 +vt 0.210046 0.617647 +vt 0.283105 0.632353 +vt 0.210046 0.632353 +vt 0.598173 1.000000 +vt 0.652968 0.882353 +vt 0.652968 1.000000 +vt 0.223744 0.448529 +vt 0.219178 0.448529 +vt 0.304566 0.797886 +vt 0.301370 0.801471 +vt 0.301370 0.794118 +vt 0.219178 0.463235 +vt 0.223744 0.455882 +vt 0.219178 0.455882 +vt 0.223744 0.470588 +vt 0.219178 0.463235 +vt 0.223744 0.463235 +vt 0.223744 0.463235 +vt 0.223744 0.455882 +vt 0.511416 0.176471 +vt 0.456621 0.235294 +vt 0.456621 0.176471 +vt 0.296804 0.801471 +vt 0.293547 0.797798 +vt 0.296804 0.794118 +vt 0.073059 0.110294 +vt 0.063927 0.169118 +vt 0.063927 0.110294 +vt 0.304551 0.797798 +vt 0.301370 0.801471 +vt 0.301370 0.794118 +vt 0.223744 0.411765 +vt 0.219178 0.419118 +vt 0.219178 0.411765 +vt 0.598173 0.294118 +vt 0.652968 0.411765 +vt 0.598173 0.411765 +vt 0.438356 0.955882 +vt 0.442922 0.955882 +vt 0.004566 0.051471 +vt 0.000000 0.036765 +vt 0.146119 0.169118 +vt 0.127854 0.338235 +vt 0.127854 0.169118 +vt 0.118661 0.139960 +vt 0.118661 0.168966 +vt 0.112292 0.164718 +vt 0.219178 0.455882 +vt 0.449793 0.952194 +vt 0.447489 0.955882 +vt 0.447489 0.948529 +vt 0.292237 0.242647 +vt 0.397260 0.301471 +vt 0.292237 0.301471 +vt 0.442922 0.955882 +vt 0.440661 0.952194 +vt 0.442922 0.948529 +vt 0.449728 0.621287 +vt 0.447489 0.625000 +vt 0.447489 0.617647 +vt 0.442922 0.625000 +vt 0.442922 0.948529 +vt 0.000000 0.169118 +vt 0.009132 0.110294 +vt 0.009132 0.169118 +vt 0.598173 0.529412 +vt 0.652968 0.647059 +vt 0.598173 0.647059 +vt 0.442922 0.625000 +vt 0.440640 0.621287 +vt 0.442922 0.617647 +vt 0.223744 0.470588 +vt 0.219178 0.463235 +vt 0.223744 0.463235 +vt 0.447489 0.948529 +vt 0.452055 0.625000 +vt 0.447489 0.625000 +vt 0.237391 0.463247 +vt 0.228371 0.463247 +vt 0.232881 0.455984 +vt 0.118683 0.110505 +vt 0.118683 0.139406 +vt 0.109709 0.124955 +vt 0.164384 0.345588 +vt 0.146119 0.338235 +vt 0.164384 0.338235 +vt 0.219178 0.411765 +vt 0.223744 0.411765 +vt 0.223744 0.455882 +vt 0.127854 0.345588 +vt 0.127854 0.382353 +vt 0.114155 0.382353 +vt 0.219178 0.426471 +vt 0.223744 0.426471 +vt 0.219178 0.441176 +vt 0.365186 0.831254 +vt 0.328954 0.831254 +vt 0.347070 0.802082 +vt 0.301370 0.860294 +vt 0.305936 0.801471 +vt 0.305936 0.860294 +vt 0.045662 0.022059 +vt 0.041096 0.029412 +vt 0.447489 0.573529 +vt 0.442922 0.573529 +vt 0.041096 0.007353 +vt 0.415525 0.301471 +vt 0.415525 0.360294 +vt 0.452055 0.955882 +vt 0.073059 0.345588 +vt 0.018265 0.382353 +vt 0.000000 0.345588 +vt 0.073059 0.382353 +vt 0.219178 0.455882 +vt 0.223744 0.463235 +vt 0.223744 0.455882 +vt 0.164384 0.382353 +vt 0.146119 0.345588 +vt 0.305936 0.794118 +vt 0.310502 0.617647 +vt 0.310502 0.794118 +vt 0.333333 0.764706 +vt 0.356164 0.779412 +vt 0.333333 0.779412 +vt 0.219178 0.345588 +vt 0.178082 0.382353 +vt 0.136986 0.582690 +vt 0.132428 0.574480 +vt 0.136986 0.576331 +vt 0.136986 0.716219 +vt 0.132428 0.708120 +vt 0.136986 0.709860 +vt 0.132428 0.674036 +vt 0.136986 0.665350 +vt 0.136986 0.671709 +vt 0.136986 0.620841 +vt 0.132428 0.629490 +vt 0.132428 0.619027 +vt 0.136986 0.849748 +vt 0.132428 0.841760 +vt 0.136986 0.843389 +vt 0.132428 0.540397 +vt 0.136986 0.531821 +vt 0.136986 0.538180 +vt 0.132428 0.495850 +vt 0.136986 0.487312 +vt 0.136986 0.493670 +vt 0.132428 0.896770 +vt 0.136986 0.887899 +vt 0.136986 0.894257 +vt 0.132428 0.941316 +vt 0.136986 0.932409 +vt 0.136986 0.938767 +vt 0.136986 0.983277 +vt 0.132428 0.975400 +vt 0.136986 0.976918 +vt 0.329428 0.924405 +vt 0.292840 0.930207 +vt 0.298578 0.895724 +vt 0.292237 0.889706 +vt 0.283105 0.889706 +vt 0.356164 0.750000 +vt 0.333333 0.764706 +vt 0.333333 0.750000 +vt 0.283105 0.963235 +vt 0.292237 1.000000 +vt 0.283105 1.000000 +vt 0.283105 0.705882 +vt 0.292237 0.669118 +vt 0.292237 0.705882 +vt 0.292237 0.779412 +vt 0.292237 0.816176 +vt 0.283105 0.742647 +vt 0.283105 0.779412 +vt 0.132428 0.763130 +vt 0.136986 0.754370 +vt 0.136986 0.760728 +vt 0.136986 0.805238 +vt 0.132428 0.797213 +vt 0.136986 0.798879 +vt 0.314254 0.870480 +vt 0.332065 0.920158 +vt 0.372759 0.964691 +vt 0.339272 0.940257 +vt 0.341909 0.936009 +vt 0.332065 0.940257 +vt 0.298578 0.964691 +vt 0.329428 0.936009 +vt 0.357083 0.870480 +vt 0.341909 0.924405 +vt 0.339272 0.920158 +vt 0.360782 0.573830 +vt 0.360782 0.632318 +vt 0.345054 0.588452 +vt 0.890927 0.983706 +vt 0.963713 0.780700 +vt 0.963713 0.983706 +vt 0.342874 0.930207 +vt 0.283105 0.669118 +vt 0.356164 0.735294 +vt 0.333333 0.750000 +vt 0.333333 0.735294 +vt 0.328463 0.930207 +vt 0.335669 0.999174 +vt 0.335669 0.941811 +vt 0.314254 0.989934 +vt 0.335669 0.861240 +vt 0.356164 0.779412 +vt 0.333333 0.794118 +vt 0.333333 0.779412 +vt 0.372759 0.895724 +vt 0.378497 0.930207 +vt 0.223744 0.426471 +vt 0.219178 0.426471 +vt 0.000000 0.007353 +vt -0.000000 0.022059 +vt 0.219178 0.470588 +vt 0.223744 0.463235 +vt 0.890302 0.749101 +vt 0.890302 0.545323 +vt 0.999895 0.647212 +vt 0.292237 0.860294 +vt 0.652968 0.529412 +vt 0.335669 0.918603 +vt 0.219178 0.426471 +vt 0.223744 0.433824 +vt 0.223744 0.426471 +vt 0.223744 0.455882 +vt 0.219178 0.455882 +vt 0.689694 0.984059 +vt 0.762606 0.780702 +vt 0.762606 0.984059 +vt 0.397260 0.242647 +vt 0.292237 0.183824 +vt 0.397260 0.183824 +vt 0.447489 0.625000 +vt 0.447489 0.948529 +vt 0.763142 0.545216 +vt 0.763142 0.748889 +vt 0.653606 0.647052 +vt 0.433790 0.955882 +vt 0.438356 1.000000 +vt 0.292237 0.617647 +vt 0.296804 0.794118 +vt 0.292237 0.794118 +vt 0.449775 0.952245 +vt 0.447489 0.948529 +vt 0.447489 0.955882 +vt 0.442922 0.625000 +vt 0.442922 0.948529 +vt 0.440634 0.952245 +vt 0.442922 0.955882 +vt 0.449814 0.621500 +vt 0.447489 0.617647 +vt 0.447489 0.625000 +vt 0.433790 0.500000 +vt 0.415525 0.573529 +vt 0.415525 0.500000 +vt 0.223744 0.419118 +vt 0.442922 0.617647 +vt 0.440812 0.621442 +vt 0.442922 0.625000 +vt 0.853881 0.764706 +vt 0.853881 0.882353 +vt 0.219178 0.448529 +vt 0.219178 0.426471 +vt 0.223744 0.419118 +vt 0.219178 0.419118 +vt 0.311363 0.491158 +vt 0.324168 0.441379 +vt 0.336973 0.449920 +vt 0.461174 0.360537 +vt 0.461174 0.389597 +vt 0.454794 0.364793 +vt 0.598173 0.882353 +vt 0.652968 0.764706 +vt -0.000000 0.110294 +vt 0.004566 0.110294 +vt 0.301370 0.617647 +vt 0.301370 0.794118 +vt 0.000000 0.338235 +vt 0.073059 0.338235 +vt 0.210046 0.720588 +vt 0.283105 0.720588 +vt 0.073059 0.169118 +vt 0.228371 0.463247 +vt 0.237391 0.463247 +vt 0.236070 0.458111 +vt 0.223744 0.470588 +vt 0.223744 0.463235 +vt 0.219178 0.441176 +vt 0.223744 0.448529 +vt 0.223744 0.441176 +vt 0.223744 0.470588 +vt 0.219178 0.463235 +vt 0.305936 0.801471 +vt 0.310502 0.860294 +vt 0.305936 0.860294 +vt 0.223744 0.433824 +vt 0.219178 0.441176 +vt 0.219178 0.433824 +vt 0.219178 0.470588 +vt 0.219178 0.463235 +vt 0.013699 0.169118 +vt 0.228371 0.463247 +vt 0.237391 0.463247 +vt 0.236070 0.458111 +vt 0.397260 0.242647 +vt 0.452055 0.301471 +vt 0.397260 0.500000 +vt 0.378995 0.573529 +vt 0.378995 0.500000 +vt 0.223744 0.448529 +vt 0.219178 0.448529 +vt 0.292237 0.860294 +vt 0.726027 0.088235 +vt 0.634703 0.000000 +vt 0.726027 0.000000 +vt 0.210046 0.727941 +vt 0.210046 0.742647 +vt 0.228371 0.463247 +vt 0.237391 0.463247 +vt 0.236070 0.458111 +vt 0.438356 0.183824 +vt 0.456621 0.125000 +vt 0.456621 0.183824 +vt 0.219178 0.419118 +vt 0.223744 0.419118 +vt 0.799087 0.764706 +vt 0.452055 1.000000 +vt 0.223744 0.426471 +vt 0.252150 0.509209 +vt 0.264843 0.500743 +vt 0.282793 0.529648 +vt 0.282793 0.529648 +vt 0.277535 0.550087 +vt 0.264843 0.558553 +vt 0.252150 0.550087 +vt 0.246892 0.529648 +vt 0.252150 0.509209 +vt 0.264843 0.500743 +vt 0.277535 0.509209 +vt 0.127657 0.124955 +vt 0.125028 0.135173 +vt 0.112337 0.135173 +vt 0.112337 0.114737 +vt 0.125028 0.114737 +vt 0.232881 0.470509 +vt 0.229692 0.468382 +vt 0.229692 0.458111 +vt 0.236070 0.458111 +vt 0.236070 0.468382 +vt 0.236070 0.468382 +vt 0.232881 0.470509 +vt 0.229692 0.468382 +vt 0.229692 0.458111 +vt 0.232881 0.455984 +vt 0.236070 0.468382 +vt 0.232881 0.470509 +vt 0.229692 0.468382 +vt 0.229692 0.458111 +vt 0.232881 0.455984 +vt 0.236070 0.468382 +vt 0.232881 0.470509 +vt 0.228371 0.463247 +vt 0.229692 0.458111 +vt 0.232881 0.455984 +vt 0.328962 0.831345 +vt 0.334242 0.810816 +vt 0.346991 0.802313 +vt 0.359739 0.810816 +vt 0.365020 0.831345 +vt 0.359739 0.851874 +vt 0.346991 0.860377 +vt 0.334242 0.851874 +vt 0.359880 0.810626 +vt 0.359880 0.851882 +vt 0.347070 0.860426 +vt 0.334260 0.851882 +vt 0.334260 0.810626 +vt 0.376509 0.588452 +vt 0.376509 0.617696 +vt 0.345054 0.617696 +vt 0.345129 0.617702 +vt 0.345129 0.588544 +vt 0.376492 0.588544 +vt 0.336973 0.491158 +vt 0.324168 0.499699 +vt 0.311363 0.491158 +vt 0.306060 0.470539 +vt 0.324168 0.441379 +vt 0.467554 0.364793 +vt 0.470197 0.375067 +vt 0.467554 0.385341 +vt 0.454794 0.385341 +vt 0.452151 0.375067 +vt 0.375468 0.858587 +vt 0.372117 0.860033 +vt 0.368766 0.858587 +vt 0.365415 0.849241 +vt 0.366313 0.843846 +vt 0.368766 0.839896 +vt 0.375468 0.839895 +vt 0.377921 0.843846 +vt 0.378819 0.849241 +vt 0.799061 0.882380 +vt 0.653239 0.882380 +vt 0.689694 0.780702 +vt 0.690118 0.748889 +vt 0.690118 0.545216 +vt 1.000105 0.882203 +vt 0.854535 0.882203 +vt 0.890927 0.780700 +vt 0.963364 0.545323 +vt 0.963364 0.749101 +vt 0.342277 0.470539 +vt 0.336973 0.491158 +vt 0.324168 0.499699 +vt 0.306060 0.470539 +vt 0.311363 0.449920 +vt 0.467554 0.364793 +vt 0.470197 0.375067 +vt 0.467554 0.385341 +vt 0.454794 0.385341 +vt 0.452151 0.375067 +vt 0.236070 0.468382 +vt 0.232881 0.470509 +vt 0.229692 0.468382 +vt 0.232881 0.455984 +vt 0.229692 0.458111 +vt 0.236070 0.468382 +vt 0.232881 0.470509 +vt 0.229692 0.468382 +vt 0.232881 0.455984 +vt 0.229692 0.458111 +vt 0.236070 0.468382 +vt 0.232881 0.470509 +vt 0.229692 0.468382 +vt 0.232881 0.455984 +vt 0.229692 0.458111 +vt 0.237391 0.463247 +vt 0.232881 0.470509 +vt 0.236070 0.468382 +vt 0.228371 0.463247 +vt 0.229692 0.468382 +vt 0.232881 0.455984 +vt 0.229692 0.458111 +vt 0.236070 0.458111 +vt 0.277535 0.550087 +vt 0.264843 0.558553 +vt 0.252150 0.550087 +vt 0.246892 0.529648 +vt 0.277535 0.509209 +vt 0.127657 0.124955 +vt 0.125028 0.135173 +vt 0.112337 0.135173 +vt 0.112337 0.114737 +vt 0.125028 0.114737 +vt 0.109654 0.154463 +vt 0.112292 0.144208 +vt 0.125030 0.144208 +vt 0.127667 0.154463 +vt 0.125030 0.164718 +vt 0.112292 0.164718 +vt 0.109654 0.154463 +vt 0.112292 0.144208 +vt 0.118661 0.139960 +vt 0.125030 0.144208 +vt 0.127667 0.154463 +vt 0.125030 0.164718 +vt 0.118661 0.168966 +vt 0.511416 0.235294 +vt 0.694064 0.132353 +vt 0.694064 0.279412 +vt 0.292237 0.169118 +vt 0.219178 0.169118 +vt 0.292237 0.617647 +vt 0.296804 0.794118 +vt 0.292237 0.794118 +vt 0.223744 0.441176 +vt 0.219178 0.441176 +vt 0.452055 0.573529 +vt 0.447489 0.617647 +vt 0.447489 0.573529 +vt 0.223744 0.441176 +vt 0.452055 0.573529 +vt 0.433790 0.573529 +vt 0.310502 0.801471 +vt 0.310502 0.860294 +vt 0.452055 0.617647 +vt 0.447489 0.617647 +vt 0.018265 0.110294 +vt 0.018265 0.169118 +vt 0.442922 0.573529 +vt 0.223744 0.419118 +vt 0.442922 0.948529 +vt 0.397260 0.573529 +vt 0.452055 0.625000 +vt 0.452055 0.948529 +vt 0.219178 0.433824 +vt 0.219178 0.411765 +vt 0.223744 0.411765 +vt 0.360731 0.573529 +vt 0.726027 0.000000 +vt 0.762557 0.000000 +vt 0.219178 0.448529 +vt 0.429224 0.301471 +vt 0.283105 0.558824 +vt 0.292237 0.595588 +vt 0.283105 0.595588 +vt 1.000000 0.000000 +vt 0.799087 0.294118 +vt 0.853881 0.411765 +vt 0.799087 0.411765 +vt 0.296804 0.617647 +vt 0.296804 0.617647 +vt 0.853881 0.529412 +vt 0.223744 0.455882 +vt 0.292237 0.183824 +vt 0.365297 0.125000 +vt 0.365297 0.183824 +vt 0.210046 0.610294 +vt 0.283105 0.610294 +vt 0.219178 0.441176 +vt 0.210046 0.948529 +vt 0.210046 0.963235 +vt 0.223744 0.433824 +vt 0.219178 0.433824 +vt 0.146119 0.345588 +vt 0.146119 0.338235 +vt 0.433790 0.617647 +vt 0.433790 0.573529 +vt 0.305936 0.801471 +vt 0.310502 0.860294 +vt 0.219178 0.419118 +vt 0.296804 0.801471 +vt 0.296804 0.860294 +vt 0.301370 0.801471 +vt 0.301370 0.794118 +vt 0.305936 0.617647 +vt 0.301370 0.801471 +vt 0.598173 0.764706 +vt 0.433790 0.617647 +vt 0.433790 0.573529 +vt 0.310502 0.801471 +vt 0.310502 0.860294 +vt 0.292237 0.801471 +vt 0.292237 0.860294 +vt 0.273973 0.382353 +vt 0.219178 0.382353 +vt 0.219178 0.411765 +vt 0.223744 0.411765 +vt 0.223744 0.411765 +vt 0.219178 0.411765 +vt 0.219178 0.426471 +vt 0.164384 0.169118 +vt 0.456621 0.176471 +vt 0.059361 0.169118 +vt 0.310502 0.617647 +vt 0.694064 0.132353 +vt 0.397260 0.000000 +vt 0.433790 0.625000 +vt 0.223744 0.470588 +vt 0.442922 0.955882 +vt 0.063927 0.110294 +vt 0.223744 0.441176 +vt 0.223744 0.426471 +vt 0.219178 0.470588 +vt 0.223744 0.419118 +vt 0.438356 0.948529 +vt 0.292237 0.617647 +vt 0.210046 0.816176 +vt 0.210046 0.926471 +vt 0.283105 0.838235 +vt 0.310502 0.617647 +vt 0.433790 1.000000 +vt 0.292237 0.617647 +vt 0.045662 0.051471 +vt 0.292237 0.801471 +vt 0.283105 0.617647 +vt 0.219178 0.470588 +vt 0.073059 0.169118 +vt 0.652968 0.294118 +vt -0.000000 0.051471 +vt 0.000000 0.110294 +vt 0.219178 0.470588 +vt 0.452055 0.948529 +vt 0.045662 0.029412 +vt 0.045662 0.007353 +vt 0.452055 1.000000 +vt 0.356164 0.764706 +vt 0.132428 0.584943 +vt 0.132428 0.718583 +vt 0.132428 0.663573 +vt 0.136986 0.627199 +vt 0.132428 0.852223 +vt 0.132428 0.529933 +vt 0.132428 0.485387 +vt 0.132428 0.886307 +vt 0.132428 0.930853 +vt 0.132428 0.985863 +vt 0.292237 0.852941 +vt 0.356164 0.764706 +vt 0.292237 0.963235 +vt 0.292237 0.742647 +vt 0.132428 0.752667 +vt 0.132428 0.807676 +vt 0.357083 0.989934 +vt 0.292237 0.632353 +vt 0.356164 0.750000 +vt 0.356164 0.794118 +vt 0.292237 0.926471 +vt 0.004566 0.007353 +vt 0.223744 0.470588 +vt 0.853771 0.647212 +vt 0.292237 0.801471 +vt 0.292237 0.242647 +vt 0.799654 0.647052 +vt 0.433790 1.000000 +vt 0.210046 0.705882 +vt 0.000000 0.169118 +vt 0.219178 0.470588 +vt 0.219178 0.470588 +vt 0.310502 0.801471 +vt 0.223744 0.470588 +vt 0.013699 0.110294 +vt 0.452055 0.242647 +vt 0.292237 0.801471 +vt 0.634703 0.088235 +vt 0.283105 0.727941 +vt 0.438356 0.125000 +vt 0.452055 0.955882 +vt 0.452055 0.617647 +vt 0.452055 0.500000 +vt 0.452055 0.573529 +vt 0.726027 0.088235 +vt 0.292237 0.558824 +vt 1.000000 0.088235 +vt 0.853881 0.294118 +vt 0.292237 0.125000 +vt 0.210046 0.595588 +vt 0.283105 0.948529 +vt 0.310502 0.801471 +vt 0.146119 0.169118 +vt 0.438356 0.382353 +vt 0.452055 0.500000 +vt 0.438356 0.500000 +vt 0.383562 0.382353 +vt 0.369863 0.500000 +vt 0.369863 0.382353 +vt 0.059361 0.411765 +vt 0.045662 0.419118 +vt 0.045662 0.411765 +vt 0.045662 0.441176 +vt 0.059361 0.448529 +vt 0.045662 0.448529 +vt 0.210046 1.000000 +vt 0.210046 0.926471 +vt 0.283105 0.889706 +vt 0.283105 0.926471 +vt 0.210046 0.889706 +vt 0.283105 0.852941 +vt 0.210046 0.889706 +vt 0.191781 0.558824 +vt 0.205479 0.470588 +vt 0.205479 0.558824 +vt 0.210046 0.705882 +vt 0.283105 0.669118 +vt 0.283105 0.705882 +vt 0.210046 0.779412 +vt -0.000000 0.691176 +vt 0.073059 0.735294 +vt -0.000000 0.735294 +vt 0.136986 0.669118 +vt 0.210046 0.669118 +vt 0.178082 0.470588 +vt 0.191781 0.470588 +vt 0.219178 0.558824 +vt 0.232877 0.470588 +vt 0.232877 0.558824 +vt 0.164384 0.558824 +vt 0.178082 0.558824 +vt 0.136986 0.382353 +vt 0.159817 0.389706 +vt 0.136986 0.389706 +vt 0.109589 0.154412 +vt 0.073059 0.161765 +vt 0.073059 0.154412 +vt 0.205479 0.558824 +vt 0.219178 0.470588 +vt 0.109589 0.110294 +vt 0.073059 0.117647 +vt 0.073059 0.110294 +vt 0.246575 0.470588 +vt 0.246575 0.558824 +vt 0.073059 0.125000 +vt 0.109589 0.132353 +vt 0.073059 0.132353 +vt 0.210046 0.558824 +vt 0.452055 0.382353 +vt 0.438356 0.500000 +vt 0.438356 0.382353 +vt 0.136986 0.963235 +vt 0.283105 0.779412 +vt 0.210046 0.742647 +vt 0.283105 0.742647 +vt -0.000000 0.779412 +vt 0.073059 0.823529 +vt -0.000000 0.823529 +vt 0.109589 0.125000 +vt 0.109589 0.117647 +vt 0.424658 0.500000 +vt 0.424658 0.382353 +vt 0.424658 0.573529 +vt 0.429224 0.779412 +vt 0.424658 0.779412 +vt 0.109589 0.169118 +vt 0.109589 0.161765 +vt 0.401826 0.573529 +vt 0.397260 1.000000 +vt 0.397260 0.573529 +vt 0.328767 0.772059 +vt 0.310502 0.794118 +vt 0.310502 0.772059 +vt 0.136986 0.632353 +vt 0.374429 0.360294 +vt 0.383562 0.382353 +vt 0.369863 0.382353 +vt 0.283105 0.595588 +vt 0.210046 0.558824 +vt 0.210046 0.595588 +vt 0.109589 0.132353 +vt 0.073059 0.139706 +vt 0.073059 0.132353 +vt 0.109589 0.169118 +vt 0.073059 0.161765 +vt 0.109589 0.161765 +vt 0.424658 0.382353 +vt 0.410959 0.500000 +vt 0.410959 0.382353 +vt 0.136986 0.852941 +vt 0.328767 0.727941 +vt 0.310502 0.750000 +vt 0.310502 0.727941 +vt 0.136986 0.889706 +vt 0.136986 0.558824 +vt 0.150685 0.470588 +vt 0.150685 0.558824 +vt 0.429224 0.573529 +vt 0.433790 0.779412 +vt -0.000000 0.647059 +vt 0.073059 0.691176 +vt 0.392694 0.573529 +vt 0.073059 0.779412 +vt 0.073059 0.154412 +vt 0.109589 0.154412 +vt 0.397260 0.500000 +vt 0.383562 0.500000 +vt 0.191781 0.558824 +vt 0.178082 0.470588 +vt 0.191781 0.470588 +vt 0.109589 0.139706 +vt 0.073059 0.147059 +vt 0.356164 0.382353 +vt 0.342466 0.500000 +vt 0.342466 0.382353 +vt 0.383562 0.779412 +vt 0.388128 0.573529 +vt 0.388128 0.779412 +vt -0.000000 0.426471 +vt 0.027397 0.433824 +vt -0.000000 0.433824 +vt -0.000000 0.455882 +vt 0.027397 0.463235 +vt -0.000000 0.463235 +vt -0.000000 0.448529 +vt 0.027397 0.455882 +vt 0.091317 0.732981 +vt 0.200913 0.397059 +vt 0.219178 0.404412 +vt 0.200913 0.404412 +vt 0.100457 0.411765 +vt 0.118721 0.419118 +vt 0.100457 0.419118 +vt 0.027397 0.382353 +vt -0.000000 0.389706 +vt -0.000000 0.382353 +vt 0.027397 0.441176 +vt -0.000000 0.441176 +vt 0.027397 0.448529 +vt 0.027397 0.397059 +vt -0.000000 0.404412 +vt -0.000000 0.397059 +vt 0.027397 0.389706 +vt 0.027397 0.470588 +vt -0.000000 0.470588 +vt 0.045662 0.382353 +vt 0.045662 0.397059 +vt 0.027397 0.404412 +vt 0.045662 0.455882 +vt 0.082192 0.433824 +vt 0.068493 0.441176 +vt 0.068493 0.433824 +vt 0.045662 0.470588 +vt 0.200913 0.455882 +vt 0.178082 0.463235 +vt 0.178082 0.455882 +vt 0.045662 0.389706 +vt 0.045662 0.404412 +vt 0.027397 0.411765 +vt 0.045662 0.463235 +vt 0.027397 0.426471 +vt 0.027397 0.419118 +vt 0.045662 0.426471 +vt 0.059361 0.433824 +vt 0.045662 0.433824 +vt 0.059361 0.441176 +vt 0.059361 0.455882 +vt 0.068493 0.404412 +vt 0.082192 0.411765 +vt 0.068493 0.411765 +vt 0.219178 0.455882 +vt 0.200913 0.463235 +vt 0.059361 0.382353 +vt 0.059361 0.389706 +vt 0.059361 0.397059 +vt 0.059361 0.404412 +vt 0.059361 0.463235 +vt 0.059361 0.470588 +vt 0.068493 0.426471 +vt 0.059361 0.426471 +vt 0.068493 0.455882 +vt 0.068493 0.448529 +vt 0.109598 0.521940 +vt 0.091317 0.556104 +vt 0.091317 0.516382 +vt 0.068493 0.463235 +vt 0.082192 0.419118 +vt 0.068493 0.397059 +vt 0.506849 0.897059 +vt 0.488584 0.852941 +vt 0.506849 0.845588 +vt 0.068493 0.419118 +vt 0.059361 0.419118 +vt 0.219178 0.433824 +vt 0.200913 0.441176 +vt 0.200913 0.433824 +vt 0.082192 0.426471 +vt 0.068493 0.389706 +vt 0.082192 0.397059 +vt 0.082192 0.441176 +vt 0.082192 0.455882 +vt 0.178082 0.404412 +vt 0.200913 0.411765 +vt 0.178082 0.411765 +vt 0.068493 0.382353 +vt 0.082192 0.389706 +vt 0.082192 0.404412 +vt 0.082192 0.448529 +vt 0.082192 0.463235 +vt 0.068493 0.470588 +vt 0.100457 0.463235 +vt 0.082192 0.470588 +vt 0.100457 0.433824 +vt 0.100457 0.448529 +vt -0.000000 0.411765 +vt -0.000000 0.419118 +vt 0.082192 0.382353 +vt 0.100457 0.389706 +vt 0.100457 0.397059 +vt 0.100457 0.404412 +vt 0.100457 0.455882 +vt 0.100457 0.426471 +vt 0.118721 0.426471 +vt 0.118721 0.455882 +vt 0.118721 0.404412 +vt 0.118721 0.448529 +vt 0.178082 0.441176 +vt 0.159817 0.448529 +vt 0.159817 0.441176 +vt 0.118721 0.463235 +vt 0.100457 0.470588 +vt 0.136986 0.448529 +vt 0.118721 0.433824 +vt 0.100457 0.441176 +vt 0.118721 0.411765 +vt 0.118721 0.397059 +vt 0.100457 0.382353 +vt 0.118721 0.389706 +vt 0.136986 0.426471 +vt 0.136986 0.455882 +vt 0.178082 0.382353 +vt 0.200913 0.389706 +vt 0.178082 0.389706 +vt 0.136986 0.441176 +vt 0.118721 0.441176 +vt 0.136986 0.397059 +vt 0.159817 0.404412 +vt 0.136986 0.404412 +vt 0.136986 0.463235 +vt 0.118721 0.470588 +vt 0.136986 0.411765 +vt 0.136986 0.419118 +vt 0.159817 0.455882 +vt 0.159817 0.426471 +vt 0.136986 0.433824 +vt 0.159817 0.433824 +vt 0.159817 0.419118 +vt 0.159817 0.463235 +vt 0.136986 0.470588 +vt 0.159817 0.397059 +vt 0.159817 0.411765 +vt 0.159817 0.470588 +vt 0.118721 0.382353 +vt 0.178082 0.426471 +vt 0.178082 0.433824 +vt 0.159817 0.382353 +vt 0.178082 0.419118 +vt 0.178082 0.448529 +vt 0.200913 0.426471 +vt 0.200913 0.448529 +vt 0.178082 0.470588 +vt 0.178082 0.397059 +vt 0.200913 0.419118 +vt 0.219178 0.463235 +vt 0.200913 0.470588 +vt 0.219178 0.426471 +vt 0.219178 0.441176 +vt 0.219178 0.448529 +vt 0.200913 0.382353 +vt 0.219178 0.389706 +vt 0.219178 0.397059 +vt 0.219178 0.411765 +vt 0.219178 0.419118 +vt 0.205479 0.470588 +vt 0.109589 0.139706 +vt 0.073059 0.139706 +vt 0.136986 0.742647 +vt 0.150685 0.558824 +vt 0.164384 0.470588 +vt 0.452055 0.669118 +vt 0.470320 0.654412 +vt 0.470320 0.676471 +vt 0.488584 0.389706 +vt 0.470320 0.419118 +vt 0.470320 0.397059 +vt 0.561644 0.735294 +vt 0.579909 0.705882 +vt 0.579909 0.727941 +vt 0.598173 0.713235 +vt 0.579909 0.727941 +vt 0.579909 0.705882 +vt 0.470320 0.573529 +vt 0.452055 0.558824 +vt 0.470320 0.551471 +vt 0.579909 0.985294 +vt 0.561644 0.955882 +vt 0.579909 0.963235 +vt 0.561644 0.580882 +vt 0.543379 0.536765 +vt 0.561644 0.544118 +vt 0.525114 0.485294 +vt 0.506849 0.433824 +vt 0.525114 0.433824 +vt 0.525114 0.845588 +vt 0.561644 0.889706 +vt 0.543379 0.845588 +vt 0.561644 0.852941 +vt 0.506849 0.691176 +vt 0.488584 0.735294 +vt 0.488584 0.698529 +vt 0.470320 0.470588 +vt 0.452055 0.455882 +vt 0.470320 0.448529 +vt 0.543379 0.897059 +vt 0.525114 0.845588 +vt 0.543379 0.845588 +vt 0.579909 0.448529 +vt 0.561644 0.477941 +vt 0.561644 0.441176 +vt 0.506849 0.588235 +vt 0.488584 0.632353 +vt 0.488584 0.595588 +vt 0.579909 0.625000 +vt 0.598173 0.610294 +vt 0.598173 0.617647 +vt 0.506849 0.794118 +vt 0.525114 0.794118 +vt 0.506849 0.536765 +vt 0.488584 0.492647 +vt 0.506849 0.485294 +vt 0.561644 0.492647 +vt 0.543379 0.485294 +vt 0.525114 0.742647 +vt 0.506849 0.742647 +vt 0.543379 0.588235 +vt 0.525114 0.536765 +vt 0.488584 0.801471 +vt 0.470320 0.830882 +vt 0.470320 0.808824 +vt 0.506849 0.691176 +vt 0.488584 0.647059 +vt 0.506849 0.639706 +vt 0.506849 0.433824 +vt 0.525114 0.382353 +vt 0.525114 0.433824 +vt 0.543379 0.742647 +vt 0.525114 0.691176 +vt 0.543379 0.691176 +vt 0.506849 0.536765 +vt 0.488584 0.492647 +vt 0.506849 0.485294 +vt 0.506849 0.897059 +vt 0.488584 0.852941 +vt 0.506849 0.845588 +vt 0.579909 0.470588 +vt 0.598173 0.455882 +vt 0.598173 0.463235 +vt 0.470320 0.727941 +vt 0.452055 0.713235 +vt 0.470320 0.705882 +vt 0.579909 0.551471 +vt 0.561644 0.580882 +vt 0.561644 0.544118 +vt 0.488584 0.735294 +vt 0.488584 0.698529 +vt 0.525114 1.000000 +vt 0.543379 0.948529 +vt 0.543379 1.000000 +vt 0.525114 0.897059 +vt 0.543379 0.897059 +vt 0.561644 0.750000 +vt 0.543379 0.794118 +vt 0.579909 0.757353 +vt 0.561644 0.786765 +vt 0.470320 0.933824 +vt 0.452055 0.919118 +vt 0.470320 0.911765 +vt 0.452055 0.617647 +vt 0.470320 0.602941 +vt 0.470320 0.625000 +vt 0.470320 0.882353 +vt 0.470320 0.860294 +vt 0.561644 0.750000 +vt 0.543379 0.794118 +vt 0.543379 0.742647 +vt 0.525114 0.639706 +vt 0.506849 0.588235 +vt 0.525114 0.588235 +vt 0.525114 0.536765 +vt 0.488584 0.477941 +vt 0.470320 0.448529 +vt 0.488584 0.441176 +vt 0.579909 0.830882 +vt 0.561644 0.801471 +vt 0.579909 0.808824 +vt 0.525114 0.485294 +vt 0.452055 0.823529 +vt 0.488584 0.580882 +vt 0.488584 0.544118 +vt 0.488584 0.838235 +vt 0.506849 0.794118 +vt 0.470320 0.573529 +vt 0.452055 0.558824 +vt 0.470320 0.551471 +vt 0.579909 0.470588 +vt 0.598173 0.455882 +vt 0.598173 0.463235 +vt 0.561644 0.441176 +vt 0.579909 0.448529 +vt 0.579909 0.522059 +vt 0.561644 0.492647 +vt 0.579909 0.500000 +vt 0.598173 0.514706 +vt 0.598173 0.507353 +vt 0.470320 0.882353 +vt 0.452055 0.867647 +vt 0.470320 0.860294 +vt 0.561644 0.426471 +vt 0.543379 0.382353 +vt 0.561644 0.389706 +vt 0.488584 0.477941 +vt 0.488584 0.441176 +vt 0.470320 0.625000 +vt 0.452055 0.610294 +vt 0.470320 0.602941 +vt 0.525114 0.742647 +vt 0.506849 0.742647 +vt 0.543379 0.536765 +vt 0.598173 0.772059 +vt 0.579909 0.757353 +vt 0.598173 0.764706 +vt 0.598173 0.617647 +vt 0.579909 0.602941 +vt 0.598173 0.610294 +vt 0.579909 0.654412 +vt 0.561644 0.683824 +vt 0.561644 0.647059 +vt 0.561644 0.801471 +vt 0.525114 0.897059 +vt 0.506849 0.948529 +vt 0.525114 1.000000 +vt 0.525114 0.948529 +vt 0.543379 0.485294 +vt 0.488584 0.580882 +vt 0.488584 0.544118 +vt 0.452055 0.977941 +vt 0.470320 0.963235 +vt 0.470320 0.985294 +vt 0.579909 0.830882 +vt 0.579909 0.808824 +vt 0.506849 0.948529 +vt 0.525114 0.948529 +vt 0.525114 0.639706 +vt 0.109599 0.947655 +vt 0.109598 0.918189 +vt 0.598173 0.977941 +vt 0.598173 0.970588 +vt 0.598173 0.977941 +vt 0.579909 0.963235 +vt 0.598173 0.970588 +vt 0.506849 0.382353 +vt 0.561644 0.647059 +vt 0.543379 0.639706 +vt 0.525114 0.382353 +vt 0.543379 0.433824 +vt 0.488584 0.955882 +vt 0.488584 0.992647 +vt 0.561644 0.889706 +vt 0.561644 0.852941 +vt 0.470320 0.419118 +vt 0.452055 0.404412 +vt 0.470320 0.397059 +vt 0.470320 0.933824 +vt 0.452055 0.919118 +vt 0.470320 0.911765 +vt 0.488584 0.529412 +vt 0.470320 0.500000 +vt 0.543379 0.948529 +vt 0.525114 0.691176 +vt 0.561644 0.529412 +vt 0.579909 0.500000 +vt 0.579909 0.522059 +vt 0.543379 1.000000 +vt 0.598173 0.867647 +vt 0.579909 0.882353 +vt 0.579909 0.860294 +vt 0.561644 0.786765 +vt 0.598173 0.669118 +vt 0.579909 0.654412 +vt 0.598173 0.661765 +vt 0.397260 0.779412 +vt 0.401826 0.573529 +vt 0.401826 0.779412 +vt 0.109589 0.110294 +vt 0.073059 0.117647 +vt 0.073059 0.110294 +vt 0.073059 0.147059 +vt 0.328767 0.705882 +vt 0.310502 0.705882 +vt 0.073059 0.125000 +vt 0.228310 0.441176 +vt 0.228310 0.433824 +vt 0.228310 0.441176 +vt 0.228310 0.433824 +vt 0.228310 0.441176 +vt 0.228310 0.426471 +vt 0.228310 0.419118 +vt 0.228310 0.463235 +vt 0.228310 0.426471 +vt 0.228310 0.441176 +vt 0.228310 0.433824 +vt 0.228310 0.426471 +vt 0.228310 0.419118 +vt 0.228310 0.455882 +vt 0.228310 0.448529 +vt 0.228310 0.455882 +vt 0.228310 0.455882 +vt 0.228310 0.419118 +vt 0.228310 0.426471 +vt 0.228310 0.433824 +vt 0.228310 0.455882 +vt 0.228310 0.426471 +vt 0.228310 0.455882 +vt 0.228310 0.448529 +vt 0.228310 0.448529 +vt 0.228310 0.448529 +vt 0.228310 0.411765 +vt 0.228310 0.433824 +vt 0.228310 0.441176 +vt 0.228310 0.426471 +vt 0.228310 0.441176 +vt 0.228310 0.426471 +vt 0.228310 0.455882 +vt 0.228310 0.448529 +vt 0.406393 0.779412 +vt 0.136986 0.595588 +vt 0.328767 0.860294 +vt 0.310502 0.838235 +vt 0.328767 0.838235 +vt 0.310502 0.816176 +vt 0.369863 0.500000 +vt 0.374429 0.360294 +vt 0.406393 1.000000 +vt 0.406393 0.573529 +vt 0.328767 0.683824 +vt 0.310502 0.683824 +vt 0.433790 0.360294 +vt 0.365297 0.360294 +vt 0.420091 0.360294 +vt 0.410959 0.382353 +vt 0.420091 0.360294 +vt 0.397260 0.382353 +vt 0.406393 0.360294 +vt 0.351598 0.360294 +vt 0.397260 0.382353 +vt 0.406393 0.360294 +vt 0.356164 0.500000 +vt 0.356164 0.382353 +vt -0.000000 0.470588 +vt 0.073059 0.514706 +vt -0.000000 0.514706 +vt -0.000000 0.602941 +vt 0.073059 0.647059 +vt 0.392694 0.779412 +vt 0.392694 0.573529 +vt 0.219178 0.558824 +vt 0.232877 0.470588 +vt 0.232877 0.558824 +vt -0.000000 0.867647 +vt 0.073059 0.911765 +vt -0.000000 0.911765 +vt 0.210046 0.816176 +vt 0.283105 0.816176 +vt 0.091317 0.781697 +vt 0.109598 0.698051 +vt 0.109598 0.727517 +vt 0.073059 0.867647 +vt 0.091317 0.825917 +vt 0.091317 0.865639 +vt 0.073059 0.558824 +vt 0.091317 0.600323 +vt 0.073059 0.602941 +vt 0.091317 0.914355 +vt 0.073059 0.955882 +vt 0.091317 0.737478 +vt 0.091317 0.958574 +vt 0.073059 1.000000 +vt 0.091317 0.604820 +vt 0.091317 0.870136 +vt 0.091317 0.472163 +vt 0.073059 0.470588 +vt 0.525114 0.588235 +vt 0.091317 0.649040 +vt 0.109598 0.609995 +vt 0.109598 0.639461 +vt 0.091317 0.954077 +vt 0.228310 0.455882 +vt 0.109598 0.507378 +vt 0.091317 0.511885 +vt 0.109598 0.654023 +vt 0.091317 0.688762 +vt 0.109598 0.565968 +vt 0.091317 0.560601 +vt 0.109599 0.830134 +vt 0.109598 0.771545 +vt 0.091317 0.777200 +vt 0.091317 0.644543 +vt 0.109599 0.903628 +vt 0.091317 0.909858 +vt 0.109598 0.991683 +vt 0.091317 0.998296 +vt 0.109599 0.815572 +vt 0.091317 0.821420 +vt 0.397260 0.573529 +vt 0.109598 0.551406 +vt 0.109598 0.742078 +vt 0.109598 0.683489 +vt 0.109599 0.874162 +vt 0.109598 0.595434 +vt 0.109598 0.786106 +vt 0.109599 0.859600 +vt 0.109598 0.477913 +vt 0.415525 0.779412 +vt 0.420091 0.573529 +vt 0.420091 0.779412 +vt 0.406393 0.573529 +vt 0.410959 0.779412 +vt 0.136986 0.926471 +vt 0.410959 0.573529 +vt 0.328767 0.816176 +vt 0.136986 0.816176 +vt 0.410959 0.500000 +vt 0.210046 0.669118 +vt 0.283105 0.632353 +vt 0.136986 0.705882 +vt 0.342466 0.382353 +vt 0.342466 0.500000 +vt -0.000000 0.558824 +vt 0.328767 0.750000 +vt -0.000000 0.955882 +vt -0.000000 1.000000 +vt 0.410959 1.000000 +vt 0.410959 0.573529 +vt 0.397260 0.500000 +vt 0.383562 1.000000 +vt 0.378995 0.573529 +vt 0.383562 0.573529 +vt 0.388128 0.573529 +vt 0.378995 0.779412 +vt 0.383562 0.573529 +vt 0.219178 0.470588 +vt 0.109589 0.125000 +vt 0.109589 0.117647 +vt 0.392694 1.000000 +vt 0.429224 1.000000 +vt 0.424658 0.573529 +vt 0.429224 0.573529 +vt 0.420091 1.000000 +vt 0.415525 0.573529 +vt 0.420091 0.573529 +vt 0.424658 1.000000 +vt 0.415525 1.000000 +vt 0.383562 0.500000 +vt 0.164384 0.558824 +vt 0.164384 0.470588 +vt 0.283105 1.000000 +vt 0.210046 0.963235 +vt 0.210046 1.000000 +vt 0.356164 0.500000 +vt 0.447489 0.360294 +vt 0.452055 0.382353 +vt 0.442922 0.360294 +vt 0.388128 0.360294 +vt 0.429224 0.360294 +vt 0.365297 0.360294 +vt 0.351598 0.360294 +vt 0.388128 0.360294 +vt 0.392694 0.360294 +vt 0.228310 0.441176 +vt 0.228310 0.448529 +vt 0.228310 0.411765 +vt 0.228310 0.411765 +vt 0.228310 0.463235 +vt 0.228310 0.470588 +vt 0.228310 0.433824 +vt 0.228310 0.411765 +vt 0.228310 0.411765 +vt 0.228310 0.448529 +vt 0.228310 0.455882 +vt 0.228310 0.441176 +vt 0.228310 0.419118 +vt 0.228310 0.419118 +vt 0.228310 0.463235 +vt 0.228310 0.448529 +vt 0.228310 0.426471 +vt 0.228310 0.419118 +vt 0.228310 0.433824 +vt 0.228310 0.411765 +vt 0.228310 0.463235 +vt 0.228310 0.463235 +vt 0.228310 0.470588 +vt 0.228310 0.470588 +vt 0.228310 0.419118 +vt 0.228310 0.463235 +vt 0.228310 0.470588 +vt 0.228310 0.470588 +vt 0.228310 0.463235 +vt 0.452055 0.669118 +vt 0.470320 0.654412 +vt 0.470320 0.676471 +vt 0.488584 0.801471 +vt 0.579909 0.551471 +vt 0.543379 0.691176 +vt 0.525114 0.794118 +vt 0.561644 0.735294 +vt 0.561644 0.632353 +vt 0.543379 0.588235 +vt 0.561644 0.595588 +vt 0.470320 0.830882 +vt 0.470320 0.808824 +vt 0.598173 0.404412 +vt 0.579909 0.419118 +vt 0.579909 0.397059 +vt 0.488584 0.632353 +vt 0.488584 0.595588 +vt 0.543379 0.433824 +vt 0.561644 0.698529 +vt 0.488584 0.904412 +vt 0.452055 0.514706 +vt 0.470320 0.522059 +vt 0.598173 0.558824 +vt 0.579909 0.573529 +vt 0.561644 0.389706 +vt 0.561644 0.426471 +vt 0.543379 0.382353 +vt 0.452055 0.514706 +vt 0.470320 0.500000 +vt 0.470320 0.522059 +vt 0.598173 0.823529 +vt 0.598173 0.816176 +vt 0.579909 0.419118 +vt 0.579909 0.397059 +vt 0.488584 0.389706 +vt 0.598173 0.514706 +vt 0.598173 0.507353 +vt 0.598173 0.713235 +vt 0.488584 0.750000 +vt 0.561644 0.955882 +vt 0.452055 0.823529 +vt 0.452055 0.816176 +vt 0.598173 0.558824 +vt 0.579909 0.573529 +vt 0.561644 0.632353 +vt 0.561644 0.595588 +vt 0.561644 0.904412 +vt 0.470320 0.757353 +vt 0.452055 0.772059 +vt 0.452055 0.764706 +vt 0.598173 0.919118 +vt 0.579909 0.933824 +vt 0.579909 0.911765 +vt 0.561644 0.941176 +vt 0.561644 0.992647 +vt 0.488584 0.904412 +vt 0.598173 0.669118 +vt 0.598173 0.661765 +vt 0.579909 0.676471 +vt 0.579909 0.625000 +vt 0.598173 0.823529 +vt 0.598173 0.816176 +vt 0.452055 0.720588 +vt 0.470320 0.705882 +vt 0.470320 0.727941 +vt 0.488584 0.889706 +vt 0.488584 0.992647 +vt 0.470320 0.963235 +vt 0.488584 0.955882 +vt 0.598173 0.919118 +vt 0.579909 0.933824 +vt 0.579909 0.911765 +vt 0.561644 0.698529 +vt 0.506849 0.382353 +vt 0.598173 0.772059 +vt 0.598173 0.764706 +vt 0.452055 0.772059 +vt 0.470320 0.757353 +vt 0.470320 0.779412 +vt 0.488584 0.683824 +vt 0.506849 1.000000 +vt 0.488584 0.941176 +vt 0.470320 0.470588 +vt 0.452055 0.455882 +vt 0.452055 0.977941 +vt 0.470320 0.985294 +vt 0.579909 0.602941 +vt 0.579909 0.860294 +vt 0.579909 0.882353 +vt 0.506849 0.639706 +vt 0.506849 1.000000 +vt 0.488584 0.750000 +vt 0.488584 0.786765 +vt 0.598173 0.404412 +vt 0.598173 0.411765 +vt 0.488584 0.683824 +vt 0.488584 0.647059 +vt 0.543379 0.639706 +vt 0.561644 0.477941 +vt 0.561644 0.904412 +vt 0.452055 0.404412 +vt 0.561644 0.941176 +vt 0.452055 0.867647 +vt 0.488584 0.529412 +vt 0.488584 0.786765 +vt 0.598173 0.867647 +vt 0.598173 0.875000 +vt 0.246575 0.470588 +vt 0.246575 0.558824 +vt 0.178082 0.558824 +vt 0.136986 0.558824 +vt 0.150685 0.470588 +vt 0.433790 1.000000 +vt 0.433790 0.573529 +vt 0.424658 0.500000 +vt 0.210046 0.852941 +vt 0.452055 0.500000 +vt 0.136986 1.000000 +vt 0.210046 0.779412 +vt 0.073059 0.169118 +vt 0.401826 1.000000 +vt 0.328767 0.794118 +vt 0.378995 0.360294 +vt 0.283105 0.558824 +vt 0.073059 0.169118 +vt 0.136986 0.470588 +vt 0.433790 0.573529 +vt 0.109589 0.147059 +vt 0.091317 0.693259 +vt 0.219178 0.470588 +vt 0.219178 0.382353 +vt 0.136986 0.779412 +vt 0.452055 0.661765 +vt 0.488584 0.426471 +vt 0.598173 0.720588 +vt 0.452055 0.566176 +vt 0.561644 0.992647 +vt 0.452055 0.463235 +vt 0.488584 0.889706 +vt 0.452055 0.720588 +vt 0.579909 0.779412 +vt 0.452055 0.926471 +vt 0.452055 0.610294 +vt 0.561644 0.838235 +vt 0.452055 0.816176 +vt 0.452055 0.566176 +vt 0.561644 0.529412 +vt 0.452055 0.875000 +vt 0.452055 0.617647 +vt 0.579909 0.779412 +vt 0.579909 0.676471 +vt 0.561644 0.838235 +vt 0.452055 0.970588 +vt 0.579909 0.985294 +vt 0.561644 0.683824 +vt 0.452055 0.411765 +vt 0.452055 0.926471 +vt 0.598173 0.875000 +vt 0.109589 0.147059 +vt 0.228310 0.433824 +vt 0.228310 0.470588 +vt 0.228310 0.419118 +vt 0.228310 0.411765 +vt 0.228310 0.463235 +vt 0.310502 0.860294 +vt 0.378995 0.360294 +vt 0.429224 0.360294 +vt 0.360731 0.360294 +vt 0.415525 0.360294 +vt 0.415525 0.360294 +vt 0.401826 0.360294 +vt 0.347032 0.360294 +vt 0.401826 0.360294 +vt 0.109599 0.962217 +vt 0.415525 0.573529 +vt 0.210046 0.632353 +vt 0.136986 0.558824 +vt 0.378995 1.000000 +vt 0.388128 1.000000 +vt 0.378995 0.573529 +vt 0.283105 0.963235 +vt 0.442922 0.360294 +vt 0.447489 0.360294 +vt 0.392694 0.360294 +vt 0.433790 0.360294 +vt 0.360731 0.360294 +vt 0.347032 0.360294 +vt 0.228310 0.411765 +vt 0.228310 0.470588 +vt 0.228310 0.470588 +vt 0.452055 0.661765 +vt 0.488584 0.838235 +vt 0.598173 0.411765 +vt 0.452055 0.507353 +vt 0.598173 0.566176 +vt 0.452055 0.507353 +vt 0.488584 0.426471 +vt 0.598173 0.720588 +vt 0.598173 0.566176 +vt 0.470320 0.779412 +vt 0.598173 0.926471 +vt 0.488584 0.941176 +vt 0.452055 0.713235 +vt 0.598173 0.926471 +vt 0.452055 0.764706 +vt 0.452055 0.463235 +vt 0.452055 0.970588 +vt 0.452055 0.411765 +vt 0.452055 0.875000 +vt 0.136986 0.470588 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0823 0.0000 0.9966 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.0000 1.0000 +vn -0.9966 0.0000 -0.0823 +vn 0.0000 -0.9239 -0.3827 +vn 0.9966 0.0000 0.0823 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.9239 0.3827 +vn 0.8660 0.5000 0.0000 +vn 0.0000 0.3827 0.9239 +vn -0.5000 -0.8660 0.0000 +vn 0.0000 0.6247 0.7809 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.6247 -0.7809 +vn 0.9966 0.0000 -0.0823 +vn 0.0000 0.7071 0.7071 +vn 0.8334 0.5053 0.2237 +vn 0.5710 0.7541 0.3245 +vn 0.9330 0.1768 0.3133 +vn -0.8660 -0.5000 0.0000 +vn -0.5053 0.8334 0.2237 +vn -0.7541 0.5710 0.3245 +vn -0.1768 0.9330 0.3133 +vn -0.0823 0.0000 -0.9966 +vn -0.6696 -0.7384 0.0797 +vn -0.4653 -0.7468 0.4752 +vn -0.2070 -0.9701 0.1267 +vn 0.0000 -0.3827 -0.9239 +vn 0.0823 0.0000 -0.9966 +vn 0.6696 0.7384 0.0797 +vn 0.4654 0.7467 0.4752 +vn 0.2123 0.9692 0.1246 +vn -0.9966 0.0000 0.0823 +vn 0.0000 -0.7071 0.7071 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.0823 -0.0000 0.9966 +vn 0.0582 0.7071 -0.7047 +vn 0.5053 -0.8334 0.2237 +vn 0.7487 -0.5832 0.3152 +vn 0.1768 -0.9330 0.3133 +vn -0.5000 0.8660 0.0000 +vn -0.7384 0.6696 0.0797 +vn -0.7395 0.4623 0.4894 +vn -0.9690 0.2139 0.1240 +vn 0.5000 -0.8660 0.0000 +vn -0.0582 0.7071 0.7047 +vn 0.5000 0.8660 0.0000 +vn 0.0000 -0.9885 0.1514 +vn -0.0582 0.7071 -0.7047 +vn 0.0000 0.9894 0.1453 +vn 0.0582 0.7071 0.7047 +vn -0.8334 -0.5053 0.2237 +vn -0.5710 -0.7541 0.3245 +vn -0.9330 -0.1768 0.3133 +vn 0.7369 -0.6712 0.0805 +vn 0.7395 -0.4623 0.4894 +vn 0.9700 -0.2078 0.1263 +vn 0.7388 0.6692 0.0795 +vn 0.9690 0.2139 0.1240 +vn 0.7396 0.4621 0.4894 +vn -0.6692 0.7388 0.0795 +vn -0.2139 0.9690 0.1240 +vn -0.4621 0.7396 0.4894 +vn -0.5053 -0.8333 0.2243 +vn -0.1698 -0.9324 0.3191 +vn -0.7488 -0.5831 0.3151 +vn 0.5053 0.8333 0.2243 +vn 0.1698 0.9324 0.3191 +vn 0.7489 0.5831 0.3150 +vn 0.6692 -0.7388 0.0795 +vn 0.2070 -0.9701 0.1267 +vn 0.4652 -0.7469 0.4752 +vn -0.8333 0.5053 0.2243 +vn -0.9324 0.1698 0.3191 +vn -0.5710 0.7542 0.3244 +vn -0.7388 -0.6692 0.0795 +vn -0.9701 -0.2070 0.1267 +vn -0.7395 -0.4622 0.4894 +vn 0.8327 -0.5052 0.2265 +vn 0.9330 -0.1768 0.3133 +vn 0.5710 -0.7542 0.3244 +vn 0.6626 0.3491 -0.6626 +vn 0.7940 -0.6079 0.0000 +vn 0.5355 -0.6530 -0.5356 +vn 0.0001 -0.6302 -0.7764 +vn -0.0000 0.3491 -0.9371 +vn -0.0701 -0.9407 0.3320 +vn 0.1036 -0.6226 0.7756 +vn -0.2196 -0.8584 0.4637 +vn 0.6335 0.6194 0.4637 +vn 0.5257 0.8503 0.0243 +vn 0.5117 0.8588 0.0260 +vn -0.6581 -0.7437 0.1176 +vn 0.0000 -0.6185 0.7858 +vn -0.7848 -0.5347 0.3134 +vn -0.9744 -0.2049 0.0929 +vn -0.7572 -0.0000 0.6532 +vn -0.9740 0.2072 0.0919 +vn -0.9366 -0.0976 0.3366 +vn -0.7449 0.6569 0.1169 +vn 0.0003 0.7919 0.6107 +vn -0.7071 0.7071 0.0000 +vn -0.5490 0.5491 0.6302 +vn 0.7848 0.5347 0.3134 +vn 0.9744 0.2049 0.0929 +vn 0.6537 0.7479 0.1152 +vn -0.0000 0.6185 0.7858 +vn 0.2037 0.9746 0.0934 +vn -0.0000 0.9848 -0.1735 +vn 0.7431 0.6587 0.1179 +vn 0.7572 -0.0000 0.6532 +vn 0.7071 0.7071 0.0000 +vn 0.7764 -0.0000 -0.6302 +vn 0.7071 -0.7071 -0.0000 +vn 0.5490 -0.5490 -0.6302 +vn 0.7764 -0.0003 0.6302 +vn 0.5374 0.5372 0.6501 +vn -0.8117 0.4687 0.3485 +vn -0.9582 -0.0224 0.2851 +vn -0.9530 -0.0271 0.3018 +vn 0.6217 0.0001 -0.7833 +vn -0.6079 -0.5615 -0.5615 +vn -0.6443 -0.0000 -0.7648 +vn 0.5599 0.5600 -0.6107 +vn 0.6079 -0.7940 0.0000 +vn -0.6079 -0.5615 0.5615 +vn -0.6530 -0.7574 0.0000 +vn 0.0000 -0.7764 -0.6302 +vn -0.6388 -0.0001 0.7694 +vn 0.6302 0.5490 0.5490 +vn -0.6302 0.5490 0.5490 +vn 0.6587 -0.7431 0.1179 +vn -0.9371 0.3491 -0.0000 +vn -0.5489 -0.6302 0.5491 +vn -0.6626 0.3491 0.6626 +vn -0.3786 -0.6557 0.6532 +vn 0.5347 0.7848 0.3134 +vn -0.6377 -0.0000 0.7703 +vn -0.7465 -0.6552 0.1160 +vn -0.2049 0.9744 0.0929 +vn -0.8529 0.4924 -0.1735 +vn 0.6217 0.0001 0.7833 +vn 0.6530 -0.5355 0.5356 +vn 0.0000 -0.6079 -0.7940 +vn -0.3191 -0.5522 -0.7703 +vn -0.5379 -0.3106 -0.7837 +vn 0.6530 -0.5355 -0.5356 +vn 0.3318 0.5750 0.7479 +vn 0.6712 0.3876 0.6319 +vn 0.5281 0.3047 0.7926 +vn 0.9334 0.3588 0.0001 +vn -0.2713 0.7906 -0.5490 +vn -0.1604 0.9871 -0.0000 +vn 0.6516 -0.3762 0.6587 +vn 0.7491 -0.6525 0.1145 +vn 0.0000 0.8880 0.4599 +vn -0.0000 0.3491 0.9371 +vn 0.5347 -0.7848 0.3134 +vn 0.2049 -0.9744 0.0929 +vn 0.6163 0.5568 0.5569 +vn -0.6302 0.7764 -0.0000 +vn -0.6388 0.5441 0.5439 +vn 0.6217 -0.7833 -0.0001 +vn -0.6302 -0.5490 -0.5490 +vn 0.6302 -0.5490 -0.5490 +vn 0.5615 -0.6079 0.5615 +vn 0.6626 0.3491 0.6626 +vn -0.6557 0.3786 0.6532 +vn 0.5469 -0.3157 0.7753 +vn -0.2698 0.7905 0.5498 +vn -0.5439 0.3141 0.7782 +vn -0.7071 -0.7071 0.0000 +vn -0.5372 -0.5374 -0.6501 +vn -0.0002 -0.6630 -0.7486 +vn 0.4924 0.8529 -0.1735 +vn 0.6377 -0.0000 0.7703 +vn -0.4924 0.8529 -0.1735 +vn -0.6163 -0.0000 -0.7875 +vn 0.6388 -0.0001 -0.7694 +vn -0.7875 -0.6163 0.0003 +vn -0.5353 -0.6530 0.5358 +vn 0.0000 0.7764 -0.6302 +vn 0.6302 0.7764 0.0000 +vn -0.6217 0.5537 -0.5540 +vn 0.9371 0.3491 -0.0000 +vn 0.3190 -0.5522 -0.7703 +vn 0.5380 -0.3104 -0.7837 +vn 0.0607 -0.0355 0.9975 +vn 0.3828 0.3472 0.8561 +vn 0.2987 0.3980 0.8674 +vn 0.4041 0.7713 -0.4918 +vn 0.1226 0.5158 -0.8479 +vn 0.2003 0.4657 -0.8620 +vn 0.4984 0.8669 0.0108 +vn 0.3615 0.8003 -0.4784 +vn -0.0000 0.8505 -0.5259 +vn -0.8654 -0.4947 0.0803 +vn -0.5127 -0.8585 0.0013 +vn -0.5097 -0.8603 0.0018 +vn -0.0045 -0.9924 -0.1230 +vn 0.4612 -0.8415 -0.2813 +vn 0.4821 -0.8506 -0.2100 +vn -0.1513 0.0876 -0.9846 +vn -0.3011 -0.4083 -0.8617 +vn -0.0582 0.0331 -0.9978 +vn 0.5087 0.6971 0.5053 +vn 0.4591 0.7288 0.5081 +vn 0.5018 0.8648 0.0181 +vn -0.5103 -0.7142 -0.4790 +vn -0.4969 -0.8677 0.0107 +vn -0.4619 -0.7383 -0.4915 +vn -0.3840 -0.3645 -0.8483 +vn -0.3856 0.2226 -0.8954 +vn -0.6254 -0.6534 -0.4265 +vn -0.4959 -0.8682 0.0177 +vn 0.2531 0.8683 -0.4265 +vn 0.9984 -0.0090 -0.0553 +vn 0.8650 0.4845 0.1305 +vn 0.9758 -0.0016 0.2189 +vn -0.0043 0.9968 0.0803 +vn -0.4757 0.8484 0.2323 +vn 0.0099 0.9908 0.1353 +vn -0.5886 -0.2525 -0.7680 +vn -0.4879 -0.8725 0.0260 +vn -0.3475 -0.7900 0.5051 +vn -0.0756 0.6360 -0.7680 +vn 0.1581 -0.0911 0.9832 +vn -0.1081 -0.5055 0.8560 +vn 0.3981 -0.2298 0.8881 +vn 0.8308 0.0797 0.5508 +vn 0.5910 0.2216 0.7756 +vn 0.7796 0.5310 0.3320 +vn 0.1267 0.9469 -0.2954 +vn -0.4728 -0.8811 0.0083 +vn 0.0158 -0.9993 -0.0334 +vn 0.0129 -0.9914 0.1305 +vn -0.0125 0.9989 0.0457 +vn -0.4955 0.8577 0.1371 +vn -0.6720 0.3880 -0.6308 +vn -0.8340 -0.1183 -0.5390 +vn -0.7567 -0.5832 -0.2954 +vn -0.4736 -0.8804 0.0243 +vn -0.3146 0.7814 -0.5390 +vn 0.8383 -0.4840 0.2509 +vn 0.6728 -0.3884 0.6296 +vn 0.0407 0.9927 -0.1137 +vn 0.5267 0.8500 0.0083 +vn 0.2847 -0.4932 -0.8220 +vn 0.7366 -0.4253 -0.5259 +vn 0.4253 -0.7366 -0.5259 +vn -0.4642 0.8626 -0.2012 +vn 0.5070 -0.8602 -0.0553 +vn -0.8393 -0.5316 -0.1137 +vn -0.6375 -0.3681 0.6768 +vn -0.0635 -0.0000 0.9980 +vn -0.7362 -0.0000 0.6768 +vn 0.4893 -0.8442 0.2189 +vn 0.3463 -0.7594 0.5508 +vn 0.9969 0.0077 -0.0781 +vn 0.8556 0.5117 -0.0781 +vn 0.9904 0.0113 -0.1374 +vn 0.8643 -0.4990 -0.0629 +vn -0.9791 -0.0293 -0.2012 +vn -0.8567 -0.5146 0.0355 +vn 0.8733 0.4860 -0.0334 +vn 0.0173 0.9992 0.0355 +vn -0.5059 -0.8626 0.0019 +vn -0.0153 -0.9968 -0.0781 +vn -0.0219 -0.9909 -0.1328 +vn -0.8423 0.4863 -0.2324 +vn -0.9978 -0.0106 0.0653 +vn -0.4834 -0.8754 -0.0010 +vn 0.5164 0.8563 -0.0010 +vn -0.4897 0.8694 0.0653 +vn -0.4729 0.8552 0.2120 +vn -0.8635 0.4985 0.0770 +vn 0.9777 0.0078 -0.2100 +vn 0.5082 0.8612 -0.0023 +vn -0.3979 -0.7642 0.5076 +vn -0.1935 -0.4594 0.8669 +vn -0.9771 -0.0181 0.2120 +vn -0.8488 -0.5148 0.1206 +vn -0.4917 -0.8708 -0.0023 +vn 0.0214 0.9925 0.1206 +vn 0.8404 -0.4852 -0.2415 +vn 0.8192 -0.4730 -0.3244 +vn 0.0269 0.9865 0.1616 +vn -0.4967 -0.8679 -0.0013 +vn 0.5033 0.8641 -0.0013 +vn 0.8472 0.5144 -0.1328 +vn 0.4972 0.8676 0.0011 +vn 0.8405 0.5164 -0.1637 +vn -0.4575 0.8435 0.2814 +vn -0.8395 0.4847 0.2457 +vn 0.9594 0.0214 -0.2813 +vn 0.8572 0.5001 -0.1230 +vn -0.0200 -0.9864 -0.1633 +vn -0.8409 -0.5165 0.1616 +vn -0.9593 -0.0255 0.2814 +vn 0.8118 -0.4687 -0.3484 +vn 0.0272 0.9843 0.1742 +vn -0.8344 0.4818 0.2676 +vn -0.9906 0.0002 0.1371 +vn -0.9726 -0.0123 0.2323 +vn 0.8389 0.5156 -0.1742 +vn 0.8442 0.5105 -0.1633 +vn -0.8389 -0.5157 0.1742 +vn -0.5028 -0.8644 0.0011 +vn -0.4530 0.8389 0.3018 +vn -0.8189 0.4728 0.3253 +vn -0.0271 -0.9843 -0.1742 +vn 0.4530 -0.8389 -0.3018 +vn 0.0212 0.9860 0.1653 +vn 0.8177 -0.4721 -0.3293 +vn 0.9530 0.0271 -0.3018 +vn 0.9582 0.0258 -0.2849 +vn 0.4567 -0.8428 -0.2849 +vn -0.4597 0.8410 0.2851 +vn -0.8433 -0.5114 0.1653 +vn -0.0270 -0.9861 -0.1637 +vn -0.8179 0.4722 0.3288 +vn 0.8342 -0.4816 -0.2687 +vn 0.9725 0.0194 -0.2321 +vn 0.4694 -0.8519 -0.2321 +vn 0.4941 0.8694 0.0019 +vn 0.8550 -0.4936 -0.1593 +vn 0.4902 0.8716 0.0018 +vn -0.8531 -0.5039 0.1353 +vn 0.4854 -0.8634 -0.1374 +vn -0.5047 0.8598 0.0774 +vn -0.8552 0.4937 0.1577 +vn 0.8625 -0.4979 -0.0906 +vn 0.8586 0.5108 -0.0442 +vn 0.4872 0.8733 0.0013 +vn -0.9970 0.0071 0.0774 +vn -0.8713 -0.4886 0.0457 +vn -0.0131 -0.9989 -0.0442 +vn 0.4918 -0.8672 -0.0781 +vn 0.6217 0.7833 -0.0000 +vn -0.6443 0.7648 -0.0001 +vn 0.3762 0.6516 0.6587 +vn 0.5491 -0.5489 0.6302 +vn -0.3362 -0.5823 0.7402 +vn 0.0000 -0.6724 0.7402 +vn 0.0000 -0.0635 0.9980 +vn -0.3362 0.5823 0.7402 +vn 0.0000 0.6724 0.7402 +vn -0.0318 0.0550 -0.9980 +vn 0.0000 -0.6724 -0.7402 +vn 0.3362 -0.5823 -0.7402 +vn -0.5823 -0.3362 0.7402 +vn -0.6724 0.0000 0.7402 +vn 0.0000 0.6724 -0.7402 +vn -0.0318 -0.0550 -0.9980 +vn 0.3362 0.5823 -0.7402 +vn 0.0550 0.0318 -0.9980 +vn 0.7362 0.0000 -0.6768 +vn 0.0635 0.0000 -0.9980 +vn 0.3681 -0.6375 0.6768 +vn -0.0550 -0.0318 -0.9980 +vn -0.7362 -0.0000 -0.6768 +vn -0.0635 0.0000 -0.9980 +vn -0.0000 0.7362 0.6768 +vn -0.0318 0.0550 0.9980 +vn -0.0000 0.0635 0.9980 +vn -0.5823 0.3362 0.7402 +vn -0.6375 -0.3681 -0.6768 +vn -0.3362 0.5823 -0.7402 +vn 0.0550 -0.0318 -0.9980 +vn 0.0318 -0.0550 -0.9980 +vn 0.6375 0.3681 0.6768 +vn 0.0318 0.0550 0.9980 +vn 0.0550 0.0318 0.9980 +vn -0.3362 -0.5823 -0.7402 +vn -0.6375 0.3681 0.6768 +vn 0.7362 -0.0000 0.6768 +vn 0.0550 -0.0318 0.9980 +vn 0.6375 -0.3681 0.6768 +vn 0.6375 -0.3681 -0.6768 +vn -0.3681 0.6375 0.6768 +vn 0.6375 0.3681 -0.6768 +vn -0.0550 0.0318 0.9980 +vn 0.6724 -0.0000 0.7402 +vn 0.5823 -0.3362 0.7402 +vn 0.3681 0.6375 0.6768 +vn -0.3681 0.6375 -0.6768 +vn -0.0000 0.7362 -0.6768 +vn -0.5823 0.3362 -0.7402 +vn 0.3362 -0.5823 0.7402 +vn -0.6724 -0.0000 -0.7402 +vn -0.3681 -0.6375 -0.6768 +vn -0.0000 -0.7362 -0.6768 +vn -0.6375 0.3681 -0.6768 +vn -0.0550 0.0318 -0.9980 +vn 0.3362 0.5823 0.7402 +vn 0.5823 0.3362 0.7402 +vn 0.0318 -0.0550 0.9980 +vn 0.6724 -0.0000 -0.7402 +vn 0.5823 -0.3362 -0.7402 +vn 0.0635 0.0000 0.9980 +vn -0.0000 -0.0635 -0.9980 +vn -0.5823 -0.3362 -0.7402 +vn -0.0000 0.0635 -0.9980 +vn 0.0318 0.0550 -0.9980 +vn -0.3681 -0.6375 0.6768 +vn -0.1846 -0.1066 -0.9770 +vn -0.2847 -0.4932 -0.8220 +vn -0.4932 -0.2847 -0.8220 +vn -0.0000 -0.7362 0.6768 +vn 0.3681 0.6375 -0.6768 +vn 0.3681 -0.6375 -0.6768 +vn -0.0318 -0.0550 0.9980 +vn 0.5823 0.3362 -0.7402 +vn 0.5521 0.3191 -0.7703 +vn 0.3053 0.5289 -0.7919 +vn -0.6217 -0.5538 0.5539 +vn -0.6443 -0.7648 -0.0001 +vn -0.6217 0.5539 -0.5538 +vn 0.2688 -0.7906 0.5502 +vn -0.8210 -0.1589 0.5483 +vn 0.9366 -0.0976 0.3366 +vn -0.6443 0.0001 0.7648 +vn 0.2422 0.6861 0.6861 +vn 0.8133 0.5819 -0.0000 +vn 0.2445 0.9696 -0.0000 +vn 0.2436 0.9699 0.0000 +vn 0.8133 0.4115 0.4115 +vn 0.8098 0.5868 0.0000 +vn 0.8153 0.4094 0.4094 +vn -0.7842 -0.4388 0.4388 +vn 0.0707 0.0000 0.9975 +vn 0.0442 -0.7064 0.7064 +vn -0.7823 -0.6228 -0.0000 +vn 0.0523 -0.7061 -0.7062 +vn -0.7834 -0.4395 -0.4395 +vn 0.2445 0.6856 0.6856 +vn 0.8133 0.0000 0.5819 +vn -0.7824 0.4404 0.4404 +vn 0.0637 0.9980 0.0000 +vn 0.0636 0.7057 0.7057 +vn 0.2422 -0.6861 0.6861 +vn 0.8168 0.0000 0.5769 +vn 0.2454 0.0000 0.9694 +vn 0.2445 -0.9696 0.0000 +vn 0.8133 -0.4115 0.4115 +vn 0.2445 -0.6857 0.6856 +vn -0.7824 0.4404 -0.4404 +vn 0.0757 0.0000 -0.9971 +vn 0.0636 0.7057 -0.7057 +vn -0.7824 -0.4404 -0.4404 +vn -0.7794 0.0000 -0.6266 +vn 0.2445 0.6856 -0.6857 +vn 0.8154 -0.0000 -0.5789 +vn 0.2460 -0.0000 -0.9693 +vn 0.0687 -0.0000 -0.9976 +vn -0.7807 0.4419 -0.4419 +vn -0.7811 -0.0000 -0.6244 +vn 0.2436 0.0000 0.9699 +vn 0.8112 -0.4135 0.4135 +vn 0.8097 -0.0000 0.5868 +vn -0.7806 0.6250 0.0000 +vn 0.0686 0.7055 0.7054 +vn -0.7811 0.4415 0.4415 +vn 0.8133 -0.0000 -0.5819 +vn 0.2421 -0.6861 -0.6861 +vn 0.2445 -0.0000 -0.9696 +vn -0.7823 0.0000 0.6228 +vn 0.0637 0.0000 0.9980 +vn 0.2430 -0.6859 -0.6859 +vn 0.2460 0.6854 0.6854 +vn 0.2430 0.9700 -0.0000 +vn 0.8168 0.4079 -0.4080 +vn 0.2454 0.6855 -0.6855 +vn 0.8133 0.4115 -0.4115 +vn 0.8189 0.4058 -0.4058 +vn 0.2469 0.6852 -0.6852 +vn -0.7831 -0.4397 0.4397 +vn 0.0637 -0.9980 -0.0000 +vn -0.7832 0.6218 -0.0000 +vn 0.0523 0.7061 0.7062 +vn -0.7834 0.4395 0.4395 +vn 0.0553 0.9985 -0.0000 +vn 0.8190 0.0000 0.5739 +vn 0.2468 0.0000 0.9691 +vn 0.0524 0.9986 -0.0000 +vn -0.7823 0.4404 0.4404 +vn -0.7834 0.6215 -0.0000 +vn 0.0757 0.0000 0.9971 +vn -0.7793 0.0000 0.6266 +vn 0.0706 -0.0000 -0.9975 +vn -0.7806 -0.0000 -0.6250 +vn 0.0523 0.7062 -0.7061 +vn -0.7834 0.4395 -0.4395 +vn -0.0000 0.6377 -0.7703 +vn 0.3746 -0.6485 0.6626 +vn 0.1559 -0.9878 0.0000 +vn -0.8191 -0.1625 -0.5502 +vn 0.2728 -0.7906 -0.5482 +vn -0.5457 0.3152 -0.7764 +vn 0.0000 -0.6079 0.7940 +vn -0.0000 0.8880 -0.4599 +vn -0.0000 0.7571 0.6533 +vn 0.0002 0.6377 0.7703 +vn -0.9350 -0.3546 -0.0000 +vn 0.3283 0.8857 -0.3283 +vn -0.6626 0.3491 -0.6626 +vn 0.0000 0.8863 -0.4631 +vn 0.3275 0.8863 0.3275 +vn 0.3283 0.8857 0.3283 +vn -0.3275 0.8863 -0.3275 +vn -0.6537 0.7479 0.1152 +vn -0.5539 -0.6217 -0.5538 +vn 0.4924 -0.8529 -0.1735 +vn 0.8529 0.4924 -0.1735 +vn 0.6475 0.0000 -0.7621 +vn -0.7764 0.0002 0.6302 +vn -0.5490 -0.5490 0.6302 +vn -0.8529 -0.4924 -0.1735 +vn -0.5347 0.7848 0.3134 +vn -0.4253 0.7366 -0.5259 +vn 0.2847 0.4932 -0.8220 +vn 0.0000 0.5695 -0.8220 +vn -0.9848 -0.0000 -0.1735 +vn -0.7366 0.4253 -0.5259 +vn -0.8505 -0.0000 -0.5259 +vn 0.8529 -0.4924 -0.1735 +vn 0.8505 -0.0000 -0.5259 +vn 0.9848 -0.0000 -0.1735 +vn -0.7366 -0.4253 -0.5259 +vn -0.4924 -0.8529 -0.1735 +vn -0.4253 -0.7366 -0.5259 +vn 0.0000 -0.9848 -0.1735 +vn 0.0000 -0.8505 -0.5259 +vn 0.7366 0.4253 -0.5259 +vn 0.5695 0.0000 -0.8220 +vn 0.1846 0.1066 -0.9770 +vn 0.4932 0.2847 -0.8220 +vn -0.7807 -0.4419 -0.4419 +vn 0.0686 0.0000 -0.9976 +vn 0.4253 0.7366 -0.5259 +vn 0.4932 -0.2847 -0.8220 +vn -0.4932 0.2847 -0.8220 +vn -0.2847 0.4932 -0.8220 +vn 0.0000 -0.5695 -0.8220 +vn 0.1066 -0.1846 -0.9770 +vn -0.1066 0.1846 -0.9770 +vn -0.5695 0.0000 -0.8220 +vn 0.1846 -0.1066 -0.9770 +vn -0.1066 -0.1846 -0.9770 +vn 0.0000 -0.2132 -0.9770 +vn 0.1066 0.1846 -0.9770 +vn -0.0000 0.2132 -0.9770 +vn -0.1846 0.1066 -0.9770 +vn -0.2132 -0.0000 -0.9770 +vn -0.5741 0.3317 -0.7486 +vn -0.6276 -0.0000 -0.7785 +vn -0.3189 0.5523 -0.7703 +vn -0.6557 -0.3786 0.6532 +vn 0.5458 -0.3152 -0.7764 +vn -0.3762 0.6516 0.6587 +vn -0.5440 -0.6388 -0.5440 +vn 0.7572 -0.0002 0.6532 +vn 0.9740 -0.2072 0.0919 +vn 0.6626 0.3826 0.6439 +vn -0.7648 -0.6443 0.0000 +vn 0.8216 0.1581 0.5478 +vn 0.9365 0.0975 0.3367 +vn -0.2072 -0.9740 0.0919 +vn -0.3784 0.6558 0.6532 +vn -0.3189 0.5523 0.7703 +vn 0.7574 -0.6530 -0.0001 +vn 0.3822 -0.6617 0.6451 +vn -0.0000 -0.6377 0.7703 +vn 0.3103 -0.5374 0.7841 +vn 0.5611 -0.3240 0.7618 +vn 0.6163 0.0000 0.7875 +vn 0.6443 -0.5408 0.5408 +vn 0.7571 -0.0000 0.6533 +vn -0.3787 -0.6557 0.6532 +vn -0.5523 -0.3189 0.7703 +vn -0.3189 -0.5523 0.7703 +vn -0.5523 0.3189 0.7703 +vn -0.6556 0.3788 0.6532 +vn 0.5491 -0.6302 -0.5489 +vn -0.7919 0.0000 -0.6107 +vn 0.0000 -0.7572 0.6532 +vn 0.5355 -0.6530 0.5356 +vn 0.4611 0.8874 0.0000 +vn -0.3275 0.8863 0.3275 +vn -0.3283 0.8857 -0.3283 +vn 0.4651 0.8853 0.0000 +vn 0.8112 0.5848 -0.0000 +vn 0.8168 -0.5769 0.0000 +vn 0.2430 -0.6859 0.6859 +vn 0.2454 -0.9694 -0.0000 +vn -0.7831 -0.4398 0.4397 +vn 0.0524 -0.9986 -0.0000 +vn -0.7834 -0.6215 -0.0000 +vn 0.8111 -0.4135 -0.4136 +vn 0.8132 0.4115 0.4115 +vn -0.7823 0.6228 0.0000 +vn 0.0705 0.7053 -0.7054 +vn 0.0706 0.9975 0.0000 +vn -0.7831 -0.4397 0.4398 +vn 0.0553 -0.7060 0.7060 +vn 0.0636 -0.7057 -0.7057 +vn 0.2445 0.0000 0.9696 +vn 0.0637 0.7057 0.7056 +vn -0.7806 0.0000 0.6250 +vn 0.0687 -0.9976 0.0000 +vn -0.7811 -0.6245 0.0000 +vn 0.0706 -0.7053 -0.7054 +vn 0.8112 -0.4135 -0.4135 +vn -0.7842 -0.4388 -0.4388 +vn 0.8133 -0.5819 0.0000 +vn 0.0442 -0.7064 -0.7064 +vn -0.0550 -0.0318 0.9980 +vn -0.0000 -0.7764 0.6302 +vn -0.5372 0.5374 -0.6501 +vn 0.0000 -0.7571 0.6533 +vn -0.0000 -0.6302 0.7764 +vn 0.1093 -0.9316 0.3468 +vn -0.7794 0.5392 0.3191 +vn -0.1093 0.9316 0.3468 +vn -0.1093 -0.9316 0.3467 +vn 0.0000 -0.7651 0.6439 +vn 0.0000 0.7480 0.6637 +vn -0.9316 0.1094 0.3467 +vn 0.3691 0.6390 0.6749 +vn 0.8203 0.1603 -0.5490 +vn 0.6443 0.5408 -0.5408 +vn -0.8626 0.4980 0.0889 +vn 0.0000 0.7697 0.6385 +vn 0.6560 0.0000 0.7548 +vn 0.8076 0.4170 0.4169 +vn 0.8076 -0.4170 0.4169 +vn 0.8076 -0.4170 -0.4170 +vn -0.4651 0.8853 -0.0000 +vn 0.1094 0.9316 0.3467 +vn 0.2132 -0.0000 -0.9770 +vn 0.7794 -0.5392 0.3191 +vn 0.6454 -0.3729 0.6666 +vn -0.5392 -0.7794 0.3191 +s off +f 529/79/18 247/80/18 248/81/18 +f 281/82/19 266/83/19 279/84/19 +f 405/85/20 558/86/20 400/87/20 +f 42/88/21 41/89/21 37/90/21 +f 60/91/18 63/92/18 68/93/18 +f 220/94/22 217/95/22 215/96/22 +f 41/89/21 45/97/21 37/90/21 +f 40/98/18 35/99/18 41/100/18 +f 54/101/21 52/102/21 53/103/21 +f 438/104/23 439/105/23 437/106/23 +f 120/107/24 121/108/24 118/109/24 +f 207/110/25 208/111/25 211/112/25 +f 229/113/26 240/114/26 237/115/26 +f 470/116/27 593/117/27 468/118/27 +f 238/119/28 242/120/28 236/121/28 +f 65/122/25 67/123/25 69/124/25 +f 70/125/29 63/126/29 61/127/29 +f 80/128/19 70/129/19 61/130/19 +f 74/131/22 70/129/22 67/132/22 +f 426/133/30 570/134/30 425/135/30 +f 458/136/30 584/137/30 459/138/30 +f 73/139/19 79/140/19 74/131/19 +f 380/141/31 379/142/31 377/143/31 +f 95/144/32 93/145/32 92/146/32 +f 148/147/30 135/148/30 147/149/30 +f 34/150/19 37/151/19 39/152/19 +f 167/153/33 163/154/33 162/155/33 +f 280/156/34 282/157/34 276/158/34 +f 135/148/35 136/159/35 137/160/35 +f 412/161/19 410/162/19 411/163/19 +f 128/164/36 129/165/36 127/166/36 +f 500/167/27 105/168/27 106/169/27 +f 102/170/24 103/171/24 100/172/24 +f 109/173/36 110/174/36 111/175/36 +f 440/176/36 441/177/36 439/105/36 +f 114/178/21 115/179/21 116/180/21 +f 259/181/37 283/182/37 260/183/37 +f 110/174/32 113/184/32 111/175/32 +f 420/185/23 423/186/23 421/187/23 +f 394/188/38 401/189/38 399/190/38 +f 185/191/19 188/192/19 191/193/19 +f 102/170/35 101/194/35 99/195/35 +f 190/196/39 191/197/39 194/198/39 +f 132/199/21 133/200/21 134/201/21 +f 112/202/30 101/194/30 113/184/30 +f 201/203/19 198/204/19 200/205/19 +f 136/159/24 139/206/24 137/160/24 +f 335/207/40 316/208/41 318/209/42 +f 513/210/23 144/211/23 142/212/23 +f 387/213/43 383/214/43 384/215/43 +f 95/144/30 84/216/30 94/217/30 +f 516/218/21 150/219/21 151/220/21 +f 332/221/44 313/222/45 312/223/46 +f 389/224/47 390/225/47 396/226/47 +f 336/227/48 540/228/49 334/229/50 +f 212/230/18 215/96/18 219/231/18 +f 158/232/29 163/233/29 168/234/29 +f 182/235/22 176/236/22 172/237/22 +f 551/238/25 366/239/25 364/240/25 +f 192/241/21 186/242/21 184/243/21 +f 170/244/22 172/245/22 176/246/22 +f 80/247/25 60/248/25 68/249/25 +f 59/250/29 61/127/29 63/126/29 +f 465/251/24 467/252/24 464/253/24 +f 174/254/21 178/255/21 180/256/21 +f 282/257/22 257/258/22 269/259/22 +f 221/260/25 222/261/25 218/262/25 +f 191/193/22 189/263/22 187/264/22 +f 178/265/21 175/266/21 173/267/21 +f 185/268/21 190/196/21 186/269/21 +f 243/270/26 244/271/26 245/272/26 +f 187/273/18 184/243/18 186/242/18 +f 419/274/51 416/275/51 417/276/51 +f 85/277/35 84/216/35 82/278/35 +f 187/279/22 194/198/22 191/197/22 +f 75/280/25 74/281/25 67/123/25 +f 196/282/29 186/283/29 195/284/29 +f 233/285/52 228/286/52 226/287/52 +f 209/288/22 204/289/22 207/110/22 +f 199/290/22 204/291/22 200/292/22 +f 206/293/22 200/205/22 198/204/22 +f 330/294/53 542/295/54 328/296/55 +f 557/297/43 374/298/43 372/299/43 +f 417/276/24 414/300/24 415/301/24 +f 201/302/21 208/303/21 205/304/21 +f 436/305/51 433/306/51 434/307/51 +f 494/308/27 88/309/27 87/310/27 +f 141/311/51 139/206/51 138/312/51 +f 39/313/22 36/314/22 34/315/22 +f 212/316/21 214/317/21 218/318/21 +f 77/319/22 72/320/22 58/321/22 +f 216/322/22 220/323/22 222/324/22 +f 494/325/23 91/326/23 89/327/23 +f 557/328/18 371/329/18 370/330/18 +f 393/331/56 390/225/56 391/332/56 +f 78/333/25 58/334/25 80/247/25 +f 262/335/21 253/336/21 263/337/21 +f 218/318/57 220/323/57 212/316/57 +f 611/338/22 50/339/22 51/340/22 +f 466/341/51 593/117/51 467/252/51 +f 231/342/28 227/343/28 234/344/28 +f 268/345/29 255/346/29 256/347/29 +f 233/348/26 229/349/26 237/350/26 +f 236/351/28 235/352/28 238/353/28 +f 237/115/19 235/354/19 234/355/19 +f 71/356/21 75/357/21 64/358/21 +f 556/359/31 369/360/31 367/361/31 +f 240/362/26 239/363/26 243/364/26 +f 72/320/22 60/91/22 58/321/22 +f 126/365/27 123/366/27 124/367/27 +f 392/368/18 399/369/18 402/370/18 +f 98/371/21 96/372/21 97/373/21 +f 48/374/21 46/375/21 47/376/21 +f 258/377/22 274/378/22 254/379/22 +f 128/164/23 125/380/23 126/381/23 +f 106/169/51 103/171/51 104/382/51 +f 272/383/21 273/384/21 265/385/21 +f 148/147/32 145/386/32 146/387/32 +f 415/301/35 570/134/35 413/388/35 +f 157/389/58 156/390/58 524/391/58 +f 193/392/25 194/393/25 197/394/25 +f 64/395/29 62/396/29 70/125/29 +f 405/85/56 559/397/56 406/398/56 +f 79/399/29 64/395/29 70/125/29 +f 279/84/19 265/400/19 278/401/19 +f 396/226/38 395/402/38 389/224/38 +f 264/403/21 280/404/21 276/405/21 +f 264/403/21 265/385/21 266/406/21 +f 451/407/51 585/408/51 450/409/51 +f 258/377/22 259/410/22 260/411/22 +f 205/412/21 203/413/21 201/414/21 +f 331/415/25 332/416/25 333/417/25 +f 275/418/22 278/419/22 258/377/22 +f 289/420/29 292/421/29 291/422/29 +f 307/423/29 286/424/29 284/425/29 +f 286/426/29 288/427/29 284/428/29 +f 289/429/29 287/430/29 290/431/29 +f 302/432/29 304/433/29 303/434/29 +f 292/435/29 294/436/29 291/437/29 +f 293/438/29 296/439/29 294/440/29 +f 299/441/29 302/442/29 300/443/29 +f 297/444/29 300/445/29 298/446/29 +f 296/447/29 297/448/29 298/449/29 +f 355/450/25 357/451/25 358/452/25 +f 540/228/25 315/453/25 311/454/25 +f 543/455/25 330/456/25 328/457/25 +f 539/458/25 310/459/25 308/460/25 +f 321/461/25 322/462/25 323/463/25 +f 316/208/25 317/464/25 318/465/25 +f 319/466/25 317/464/25 320/467/25 +f 306/468/29 307/469/29 305/470/29 +f 303/471/29 306/472/29 305/473/29 +f 355/450/25 356/474/25 353/475/25 +f 346/476/25 340/477/25 343/478/25 +f 363/479/25 362/480/25 359/481/25 +f 352/482/25 350/483/25 349/484/25 +f 162/485/25 165/486/25 167/487/25 +f 386/488/25 382/489/25 377/490/25 +f 345/491/25 346/476/25 343/478/25 +f 542/295/25 322/462/25 324/492/25 +f 546/493/25 339/494/25 337/495/25 +f 362/480/25 360/496/25 359/481/25 +f 340/477/25 341/497/25 342/498/25 +f 363/479/25 341/497/25 361/499/25 +f 349/484/25 351/500/25 352/482/25 +f 545/501/25 336/502/25 334/503/25 +f 345/491/25 347/504/25 348/505/25 +f 315/453/25 313/222/25 311/454/25 +f 80/247/25 69/124/25 67/123/25 +f 426/133/32 571/506/32 424/507/32 +f 81/508/29 61/127/29 72/509/29 +f 438/510/27 435/511/27 436/305/27 +f 383/512/29 388/513/29 378/514/29 +f 210/515/29 200/292/29 209/288/29 +f 556/359/59 371/329/59 368/516/59 +f 353/475/25 351/500/25 354/517/25 +f 473/518/32 476/519/32 474/520/32 +f 493/521/51 88/309/51 86/522/51 +f 375/523/25 370/524/25 367/525/25 +f 263/526/25 254/527/25 252/528/25 +f 234/355/28 236/529/28 231/530/28 +f 372/531/29 376/532/29 368/533/29 +f 395/534/20 392/535/20 393/331/20 +f 245/272/60 238/119/60 243/270/60 +f 233/348/61 234/344/61 227/343/61 +f 216/536/19 213/537/19 217/538/19 +f 394/539/38 396/540/38 398/541/38 +f 403/542/56 392/368/56 402/370/56 +f 390/543/56 392/544/56 397/545/56 +f 399/546/38 401/547/38 400/548/38 +f 166/549/21 160/550/21 159/551/21 +f 90/552/36 93/145/36 91/326/36 +f 403/553/56 402/554/56 405/555/56 +f 387/213/58 388/556/58 385/557/58 +f 493/521/24 83/558/24 85/277/24 +f 457/559/36 586/560/36 455/561/36 +f 407/562/18 408/563/18 409/564/18 +f 251/565/19 249/566/19 250/567/19 +f 373/568/58 376/569/58 374/298/58 +f 81/570/19 78/333/19 76/571/19 +f 170/572/19 173/267/19 177/573/19 +f 264/403/21 277/574/21 255/575/21 +f 338/576/62 321/461/63 323/577/64 +f 277/574/21 256/578/21 255/575/21 +f 427/579/22 429/580/22 428/581/22 +f 419/274/27 421/582/27 418/583/27 +f 432/584/35 577/585/35 430/586/35 +f 513/587/27 140/588/27 141/311/27 +f 183/589/21 174/590/21 180/591/21 +f 130/592/30 119/593/30 131/594/30 +f 129/165/32 130/592/32 131/594/32 +f 454/595/27 585/408/27 452/596/27 +f 75/357/21 66/597/21 64/358/21 +f 444/598/22 446/599/22 445/600/22 +f 257/601/18 253/602/18 255/346/18 +f 165/603/65 168/604/65 169/605/65 +f 451/407/24 448/606/24 449/607/24 +f 174/608/29 182/235/29 172/237/29 +f 45/609/29 44/610/29 38/611/29 +f 339/612/66 319/466/67 337/613/68 +f 460/614/22 462/615/22 461/616/22 +f 76/571/21 80/128/21 61/130/21 +f 261/617/18 263/618/18 252/619/18 +f 471/620/36 474/520/36 472/621/36 +f 377/143/19 388/556/19 386/622/19 +f 242/120/52 239/623/52 236/121/52 +f 457/559/32 459/138/32 456/624/32 +f 480/625/29 481/626/29 482/627/29 +f 33/628/25 483/629/25 484/630/25 +f 484/630/25 485/631/25 33/628/25 +f 31/632/25 486/633/25 32/634/25 +f 32/634/25 487/635/25 33/628/25 +f 489/636/21 490/637/21 52/102/21 +f 52/102/21 491/638/21 53/103/21 +f 53/103/21 492/639/21 54/101/21 +f 488/640/21 489/636/21 52/102/21 +f 496/641/21 497/642/21 96/372/21 +f 96/372/21 498/643/21 97/373/21 +f 97/373/21 499/644/21 98/371/21 +f 495/645/21 496/641/21 96/372/21 +f 116/180/21 501/646/21 114/178/21 +f 502/647/21 503/648/21 114/178/21 +f 114/178/21 504/649/21 505/650/21 +f 505/650/21 115/179/21 114/178/21 +f 501/646/21 502/647/21 114/178/21 +f 134/201/21 507/651/21 132/199/21 +f 508/652/21 509/653/21 132/199/21 +f 132/199/21 510/654/21 511/655/21 +f 511/655/21 133/200/21 132/199/21 +f 507/651/21 508/652/21 132/199/21 +f 151/220/21 514/656/21 515/657/21 +f 515/657/21 516/218/21 151/220/21 +f 149/658/21 517/659/21 518/660/21 +f 518/660/21 150/219/21 149/658/21 +f 519/661/59 520/662/59 154/663/59 +f 154/663/59 521/664/59 152/665/59 +f 152/665/59 522/666/59 153/667/59 +f 153/667/59 523/668/59 519/661/59 +f 524/391/58 525/669/58 157/389/58 +f 157/389/58 526/670/58 155/671/58 +f 155/671/58 527/672/58 156/390/58 +f 156/390/58 528/673/58 524/391/58 +f 166/674/25 159/675/25 165/486/25 +f 165/486/25 169/676/25 167/487/25 +f 160/677/29 161/678/29 163/233/29 +f 163/233/29 164/679/29 168/234/29 +f 530/680/18 531/681/18 246/682/18 +f 246/682/18 532/683/18 247/80/18 +f 247/80/18 533/684/18 248/81/18 +f 529/79/18 530/680/18 246/682/18 +f 251/565/19 534/685/19 535/686/19 +f 535/686/19 536/687/19 249/566/19 +f 249/566/19 537/688/19 538/689/19 +f 538/689/19 250/567/19 249/566/19 +f 366/239/25 547/690/25 548/691/25 +f 548/691/25 549/692/25 366/239/25 +f 364/240/25 550/693/25 551/238/25 +f 552/694/25 553/695/25 551/238/25 +f 551/238/25 554/696/25 365/697/25 +f 365/697/25 555/698/25 366/239/25 +f 366/239/25 549/692/25 364/240/25 +f 550/693/25 552/694/25 551/238/25 +f 370/524/25 556/699/25 367/525/25 +f 373/700/25 557/701/25 370/524/25 +f 376/532/29 369/702/29 368/533/29 +f 368/533/29 371/703/29 372/531/29 +f 382/489/25 380/704/25 377/490/25 +f 387/705/25 384/706/25 382/489/25 +f 388/513/29 379/707/29 378/514/29 +f 378/514/29 381/708/29 383/512/29 +f 409/564/18 560/709/18 407/562/18 +f 561/710/18 562/711/18 407/562/18 +f 407/562/18 563/712/18 564/713/18 +f 564/713/18 408/563/18 407/562/18 +f 560/709/18 561/710/18 407/562/18 +f 412/161/19 565/714/19 566/715/19 +f 566/715/19 567/716/19 410/162/19 +f 410/162/19 568/717/19 569/718/19 +f 569/718/19 411/163/19 410/162/19 +f 429/580/22 427/579/22 572/719/22 +f 573/720/22 427/579/22 574/721/22 +f 427/579/22 576/722/22 575/723/22 +f 576/722/22 427/579/22 428/581/22 +f 572/719/22 427/579/22 573/720/22 +f 446/599/22 444/598/22 579/724/22 +f 580/725/22 444/598/22 581/726/22 +f 444/598/22 583/727/22 582/728/22 +f 583/727/22 444/598/22 445/600/22 +f 579/724/22 444/598/22 580/725/22 +f 462/615/22 460/614/22 587/729/22 +f 588/730/22 460/614/22 589/731/22 +f 460/614/22 591/732/22 590/733/22 +f 591/732/22 460/614/22 461/616/22 +f 587/729/22 460/614/22 588/730/22 +f 594/734/22 479/735/22 595/736/22 +f 479/735/22 477/737/22 596/738/22 +f 477/737/22 478/739/22 597/740/22 +f 478/739/22 594/734/22 598/741/22 +f 482/627/29 599/742/29 600/743/29 +f 600/743/29 601/744/29 482/627/29 +f 602/745/29 480/625/29 482/627/29 +f 481/626/29 603/746/29 482/627/29 +f 482/627/29 601/744/29 602/745/29 +f 605/747/21 606/748/21 46/375/21 +f 46/375/21 607/749/21 47/376/21 +f 47/376/21 608/750/21 48/374/21 +f 604/751/21 605/747/21 46/375/21 +f 51/340/22 609/752/22 610/753/22 +f 610/753/22 611/338/22 51/340/22 +f 49/754/22 612/755/22 613/756/22 +f 613/756/22 50/339/22 49/754/22 +f 57/757/22 614/758/22 615/759/22 +f 615/759/22 616/760/22 57/757/22 +f 55/761/22 617/762/22 618/763/22 +f 618/763/22 56/764/22 55/761/22 +f 35/765/22 38/766/22 44/767/22 +f 271/768/22 257/258/22 268/769/22 +f 174/770/18 171/771/18 175/772/18 +f 465/251/35 592/773/35 463/774/35 +f 229/775/60 232/776/60 231/777/60 +f 120/107/35 119/593/35 117/778/35 +f 166/549/69 163/779/69 161/780/69 +f 197/394/22 187/781/22 196/782/22 +f 399/783/47 559/397/47 402/784/47 +f 66/597/18 69/785/18 62/786/18 +f 243/364/70 235/352/70 240/362/70 +f 227/787/28 232/776/28 228/286/28 +f 146/387/36 144/211/36 143/788/36 +f 485/631/25 32/634/25 33/628/25 +f 401/189/19 397/789/19 403/542/19 +f 158/790/71 159/551/71 160/550/71 +f 231/530/18 239/791/18 229/792/18 +f 154/663/59 153/667/59 519/661/59 +f 475/793/30 592/773/30 476/519/30 +f 454/794/23 586/560/23 453/795/23 +f 169/605/22 164/796/22 167/153/22 +f 34/150/25 40/797/25 42/798/25 +f 44/610/72 41/100/72 35/99/72 +f 69/785/18 63/92/18 62/786/18 +f 208/303/57 199/290/57 205/304/57 +f 434/307/24 577/585/24 431/799/24 +f 273/800/19 278/401/19 265/400/19 +f 272/383/21 255/575/21 253/336/21 +f 308/801/25 326/802/25 327/803/25 +f 390/543/73 398/541/73 396/540/73 +f 616/760/22 56/764/22 57/757/22 +f 45/804/74 39/152/74 37/151/74 +f 400/548/75 403/553/75 405/555/75 +f 384/805/18 381/806/18 382/807/18 +f 177/573/22 172/808/22 170/572/22 +f 219/231/21 214/809/21 212/230/21 +f 382/807/59 378/810/59 380/141/59 +f 594/734/22 477/737/22 479/735/22 +f 275/418/22 254/379/22 257/258/22 +f 124/367/51 121/108/51 122/811/51 +f 270/812/18 268/813/18 256/814/18 +f 329/815/76 327/803/77 326/816/78 +f 449/607/35 584/137/35 447/817/35 +f 333/818/79 539/458/80 331/819/81 +f 432/584/30 578/820/30 443/821/30 +f 283/822/21 253/336/21 267/823/21 +f 233/285/26 230/824/26 229/825/26 +f 225/826/22 216/827/22 222/261/22 +f 422/828/36 571/506/36 423/186/36 +f 223/829/21 218/262/21 214/830/21 +f 176/246/39 178/255/39 170/244/39 +f 195/284/21 190/831/21 193/392/21 +f 199/832/18 202/833/18 205/412/18 +f 179/834/25 180/591/25 176/236/25 +f 375/835/19 369/360/19 376/569/19 +f 399/836/38 558/86/38 404/837/38 +f 211/112/21 201/838/21 210/839/21 +f 224/840/29 214/830/29 216/841/29 +f 275/418/22 281/842/22 279/843/22 +f 470/844/23 472/621/23 469/845/23 +f 500/846/23 109/173/23 107/847/23 +f 442/848/32 578/820/32 441/177/32 +f 274/378/22 252/849/22 254/379/22 +f 529/79/18 246/682/18 247/80/18 +f 281/82/19 280/156/19 266/83/19 +f 405/85/20 406/398/20 558/86/20 +f 42/88/21 40/850/21 41/89/21 +f 60/91/18 59/851/18 63/92/18 +f 220/94/22 216/852/22 217/95/22 +f 41/89/21 43/853/21 45/97/21 +f 40/98/18 36/854/18 35/99/18 +f 54/101/21 488/640/21 52/102/21 +f 438/104/23 440/176/23 439/105/23 +f 120/107/24 122/811/24 121/108/24 +f 207/110/25 204/289/25 208/111/25 +f 229/113/26 239/855/26 240/114/26 +f 470/116/27 469/856/27 593/117/27 +f 238/119/28 241/857/28 242/120/28 +f 65/122/25 75/280/25 67/123/25 +f 70/125/29 62/396/29 63/126/29 +f 80/128/19 67/132/19 70/129/19 +f 74/131/22 79/140/22 70/129/22 +f 426/133/30 413/388/30 570/134/30 +f 458/136/30 447/817/30 584/137/30 +f 73/139/19 71/858/19 79/140/19 +f 380/141/31 378/810/31 379/142/31 +f 95/144/32 94/217/32 93/145/32 +f 148/147/30 512/859/30 135/148/30 +f 34/150/19 42/798/19 37/151/19 +f 167/153/33 164/796/33 163/154/33 +f 280/156/34 281/82/34 282/157/34 +f 135/148/35 512/859/35 136/159/35 +f 412/161/19 566/715/19 410/162/19 +f 128/164/36 506/860/36 129/165/36 +f 500/167/27 107/861/27 105/168/27 +f 102/170/24 104/382/24 103/171/24 +f 109/173/36 108/862/36 110/174/36 +f 440/176/36 442/848/36 441/177/36 +f 259/181/37 273/800/37 283/182/37 +f 110/174/32 112/202/32 113/184/32 +f 420/185/23 422/828/23 423/186/23 +f 394/188/38 398/863/38 401/189/38 +f 185/191/19 192/241/19 188/192/19 +f 102/170/35 100/172/35 101/194/35 +f 190/196/39 185/268/39 191/197/39 +f 112/202/30 99/195/30 101/194/30 +f 201/203/19 203/864/19 198/204/19 +f 136/159/24 138/312/24 139/206/24 +f 335/207/82 545/865/83 316/208/84 +f 513/210/23 143/788/23 144/211/23 +f 387/213/43 385/557/43 383/214/43 +f 95/144/30 82/278/30 84/216/30 +f 516/218/21 149/658/21 150/219/21 +f 332/221/85 544/866/86 313/222/87 +f 389/224/47 391/332/47 390/225/47 +f 336/227/88 314/867/89 540/228/90 +f 212/230/18 220/94/18 215/96/18 +f 158/232/29 160/677/29 163/233/29 +f 182/235/22 179/834/22 176/236/22 +f 551/238/25 365/697/25 366/239/25 +f 192/241/21 185/191/21 186/242/21 +f 80/247/25 58/334/25 60/248/25 +f 59/250/29 72/509/29 61/127/29 +f 465/251/24 466/341/24 467/252/24 +f 282/257/22 275/418/22 257/258/22 +f 221/260/25 225/826/25 222/261/25 +f 191/193/22 188/192/22 189/263/22 +f 178/265/21 174/868/21 175/266/21 +f 243/270/26 239/869/26 244/271/26 +f 187/273/18 189/870/18 184/243/18 +f 419/274/51 418/583/51 416/275/51 +f 85/277/35 83/558/35 84/216/35 +f 75/280/25 73/871/25 74/281/25 +f 196/282/29 187/872/29 186/283/29 +f 233/285/52 227/787/52 228/286/52 +f 209/288/22 200/292/22 204/289/22 +f 206/293/22 199/832/22 200/205/22 +f 330/294/91 325/873/92 542/295/93 +f 557/297/43 373/568/43 374/298/43 +f 417/276/24 416/275/24 414/300/24 +f 436/305/51 435/511/51 433/306/51 +f 494/308/27 89/874/27 88/309/27 +f 141/311/51 140/588/51 139/206/51 +f 39/313/22 35/765/22 36/314/22 +f 77/319/22 81/875/22 72/320/22 +f 494/325/23 90/552/23 91/326/23 +f 557/328/18 372/876/18 371/329/18 +f 393/331/56 392/535/56 390/225/56 +f 78/333/25 77/877/25 58/334/25 +f 262/335/21 267/823/21 253/336/21 +f 218/318/57 222/324/57 220/323/57 +f 611/338/22 49/754/22 50/339/22 +f 466/341/51 468/118/51 593/117/51 +f 268/345/29 257/601/29 255/346/29 +f 237/115/19 240/114/19 235/354/19 +f 71/356/21 73/878/21 75/357/21 +f 556/359/31 368/516/31 369/360/31 +f 72/320/22 59/851/22 60/91/22 +f 126/365/27 125/879/27 123/366/27 +f 392/368/18 394/880/18 399/369/18 +f 98/371/21 495/645/21 96/372/21 +f 48/374/21 604/751/21 46/375/21 +f 258/377/22 260/411/22 274/378/22 +f 128/164/23 127/166/23 125/380/23 +f 106/169/51 105/168/51 103/171/51 +f 272/383/21 283/822/21 273/384/21 +f 148/147/32 147/149/32 145/386/32 +f 415/301/35 414/300/35 570/134/35 +f 157/389/58 155/671/58 156/390/58 +f 193/392/25 190/831/25 194/393/25 +f 64/395/29 66/881/29 62/396/29 +f 405/85/56 402/784/56 559/397/56 +f 79/399/29 71/882/29 64/395/29 +f 279/84/19 266/83/19 265/400/19 +f 396/226/38 394/883/38 395/402/38 +f 264/403/21 266/406/21 280/404/21 +f 264/403/21 272/383/21 265/385/21 +f 451/407/51 452/596/51 585/408/51 +f 258/377/22 278/419/22 259/410/22 +f 205/412/21 202/833/21 203/413/21 +f 331/415/25 544/884/25 332/416/25 +f 275/418/22 279/843/22 278/419/22 +f 289/420/29 290/885/29 292/421/29 +f 307/423/29 285/886/29 286/424/29 +f 286/426/29 287/887/29 288/427/29 +f 289/429/29 288/888/29 287/430/29 +f 302/432/29 301/889/29 304/433/29 +f 292/435/29 293/890/29 294/436/29 +f 293/438/29 295/891/29 296/439/29 +f 299/441/29 301/892/29 302/442/29 +f 297/444/29 299/893/29 300/445/29 +f 296/447/29 295/894/29 297/448/29 +f 355/450/25 360/496/25 357/451/25 +f 540/228/25 314/895/25 315/453/25 +f 543/455/25 329/896/25 330/456/25 +f 539/458/25 309/897/25 310/459/25 +f 321/461/25 324/492/25 322/462/25 +f 316/208/25 320/467/25 317/464/25 +f 319/466/25 541/898/25 317/464/25 +f 306/468/29 285/899/29 307/469/29 +f 303/471/29 304/900/29 306/472/29 +f 355/450/25 358/452/25 356/474/25 +f 346/476/25 344/901/25 340/477/25 +f 363/479/25 361/499/25 362/480/25 +f 352/482/25 347/504/25 350/483/25 +f 162/485/25 166/674/25 165/486/25 +f 386/488/25 387/705/25 382/489/25 +f 345/491/25 348/505/25 346/476/25 +f 542/295/25 325/902/25 322/462/25 +f 546/493/25 338/903/25 339/494/25 +f 362/480/25 357/451/25 360/496/25 +f 340/477/25 344/901/25 341/497/25 +f 363/479/25 342/498/25 341/497/25 +f 349/484/25 354/517/25 351/500/25 +f 545/501/25 335/904/25 336/502/25 +f 345/491/25 350/483/25 347/504/25 +f 315/453/25 312/905/25 313/222/25 +f 80/247/25 68/249/25 69/124/25 +f 426/133/32 425/135/32 571/506/32 +f 81/508/29 76/906/29 61/127/29 +f 438/510/27 437/907/27 435/511/27 +f 383/512/29 385/908/29 388/513/29 +f 210/515/29 201/909/29 200/292/29 +f 556/359/59 370/330/59 371/329/59 +f 353/475/25 356/474/25 351/500/25 +f 473/518/32 475/793/32 476/519/32 +f 493/521/51 87/310/51 88/309/51 +f 375/523/25 373/700/25 370/524/25 +f 263/526/25 253/910/25 254/527/25 +f 234/355/28 235/354/28 236/529/28 +f 372/531/29 374/911/29 376/532/29 +f 395/534/20 394/912/20 392/535/20 +f 245/272/60 241/857/60 238/119/60 +f 233/348/61 237/350/61 234/344/61 +f 216/536/19 214/809/19 213/537/19 +f 403/542/56 397/789/56 392/368/56 +f 166/549/21 161/780/21 160/550/21 +f 90/552/36 92/146/36 93/145/36 +f 387/213/58 386/622/58 388/556/58 +f 493/521/24 86/522/24 83/558/24 +f 457/559/36 456/624/36 586/560/36 +f 251/565/19 535/686/19 249/566/19 +f 373/568/58 375/835/58 376/569/58 +f 81/570/19 77/877/19 78/333/19 +f 170/572/19 178/265/19 173/267/19 +f 264/403/21 276/405/21 277/574/21 +f 338/576/94 546/913/95 321/461/96 +f 277/574/21 270/914/21 256/578/21 +f 419/274/27 420/915/27 421/582/27 +f 432/584/35 431/799/35 577/585/35 +f 513/587/27 142/916/27 140/588/27 +f 183/589/21 181/917/21 174/590/21 +f 130/592/30 117/778/30 119/593/30 +f 129/165/32 506/860/32 130/592/32 +f 454/595/27 453/918/27 585/408/27 +f 75/357/21 65/919/21 66/597/21 +f 257/601/18 254/920/18 253/602/18 +f 165/603/65 158/790/65 168/604/65 +f 451/407/24 450/409/24 448/606/24 +f 174/608/29 181/921/29 182/235/29 +f 45/609/29 43/922/29 44/610/29 +f 339/612/97 541/923/98 319/466/99 +f 76/571/21 78/333/21 80/128/21 +f 261/617/18 262/924/18 263/618/18 +f 471/620/36 473/518/36 474/520/36 +f 377/143/19 379/142/19 388/556/19 +f 242/120/52 244/925/52 239/623/52 +f 457/559/32 458/136/32 459/138/32 +f 35/765/22 39/313/22 38/766/22 +f 271/768/22 269/259/22 257/258/22 +f 174/770/18 172/808/18 171/771/18 +f 465/251/35 464/253/35 592/773/35 +f 229/775/60 230/926/60 232/776/60 +f 120/107/35 118/109/35 119/593/35 +f 166/549/69 162/927/69 163/779/69 +f 197/394/22 194/393/22 187/781/22 +f 399/783/47 404/928/47 559/397/47 +f 66/597/18 65/919/18 69/785/18 +f 243/364/70 238/353/70 235/352/70 +f 227/787/28 231/777/28 232/776/28 +f 146/387/36 145/386/36 144/211/36 +f 485/631/25 31/632/25 32/634/25 +f 401/189/19 398/863/19 397/789/19 +f 158/790/71 165/603/71 159/551/71 +f 231/530/18 236/529/18 239/791/18 +f 154/663/59 152/665/59 153/667/59 +f 475/793/30 463/774/30 592/773/30 +f 454/794/23 455/561/23 586/560/23 +f 169/605/22 168/604/22 164/796/22 +f 34/150/25 36/929/25 40/797/25 +f 44/610/72 43/922/72 41/100/72 +f 69/785/18 68/93/18 63/92/18 +f 208/303/57 204/291/57 199/290/57 +f 434/307/24 433/306/24 577/585/24 +f 273/800/19 259/181/19 278/401/19 +f 272/383/21 264/403/21 255/575/21 +f 308/801/25 310/930/25 326/802/25 +f 390/543/73 397/545/73 398/541/73 +f 616/760/22 55/761/22 56/764/22 +f 45/804/74 38/931/74 39/152/74 +f 400/548/75 401/547/75 403/553/75 +f 384/805/18 383/932/18 381/806/18 +f 177/573/22 171/771/22 172/808/22 +f 219/231/21 213/537/21 214/809/21 +f 382/807/59 381/806/59 378/810/59 +f 594/734/22 478/739/22 477/737/22 +f 275/418/22 258/377/22 254/379/22 +f 124/367/51 123/366/51 121/108/51 +f 270/812/18 271/933/18 268/813/18 +f 329/815/100 543/934/101 327/803/102 +f 449/607/35 448/606/35 584/137/35 +f 333/818/103 309/935/104 539/458/105 +f 432/584/30 430/586/30 578/820/30 +f 283/822/21 272/383/21 253/336/21 +f 233/285/26 226/287/26 230/824/26 +f 225/826/22 224/936/22 216/827/22 +f 422/828/36 424/507/36 571/506/36 +f 223/829/21 221/260/21 218/262/21 +f 176/246/39 180/256/39 178/255/39 +f 195/284/21 186/283/21 190/831/21 +f 199/832/18 206/293/18 202/833/18 +f 179/834/25 183/589/25 180/591/25 +f 375/835/19 367/361/19 369/360/19 +f 399/836/38 400/87/38 558/86/38 +f 211/112/21 208/111/21 201/838/21 +f 224/840/29 223/829/29 214/830/29 +f 275/418/22 282/257/22 281/842/22 +f 470/844/23 471/620/23 472/621/23 +f 500/846/23 108/862/23 109/173/23 +f 442/848/32 443/821/32 578/820/32 +f 274/378/22 261/937/22 252/849/22 +s 1 +f 949/938/106 408/939/107 564/940/108 +f 879/941/106 529/942/109 878/943/110 +f 656/944/111 642/945/112 644/946/113 +f 652/947/114 663/948/115 651/949/116 +f 331/819/117 308/460/118 939/950/18 +f 323/951/119 899/952/22 338/953/120 +f 322/954/121 330/955/122 899/952/22 +f 540/228/123 901/956/22 334/229/124 +f 484/957/125 781/958/126 485/959/127 +f 312/960/128 891/961/21 332/962/129 +f 337/613/130 320/467/131 941/963/19 +f 333/964/132 888/965/133 886/966/19 +f 546/913/134 357/967/135 940/968/21 +f 484/957/125 775/969/136 774/970/19 +f 602/971/137 1051/972/138 480/973/139 +f 33/974/140 775/969/136 483/975/141 +f 731/976/142 732/977/143 720/978/144 +f 489/979/145 615/980/146 614/981/147 +f 601/982/148 1052/983/21 602/971/137 +f 54/984/149 55/985/150 616/986/151 +f 480/973/139 1050/987/18 481/988/152 +f 612/989/153 607/990/154 613/991/155 +f 308/801/118 543/934/156 939/992/18 +f 883/993/157 247/994/158 882/995/159 +f 939/950/18 344/996/160 331/819/117 +f 886/997/19 309/998/161 333/999/132 +f 311/454/162 544/866/163 901/956/22 +f 329/1000/164 900/1001/165 330/1002/122 +f 53/1003/166 55/985/150 492/1004/167 +f 949/938/106 563/1005/168 944/1006/110 +f 938/1007/43 298/1008/169 300/1009/170 +f 54/1010/149 615/980/146 488/1011/171 +f 340/1012/172 366/1013/173 343/1014/174 +f 152/1015/175 524/1016/176 528/1017/177 +f 940/968/21 362/1018/178 328/296/179 +f 566/1019/180 948/1020/159 942/1021/181 +f 318/1022/182 895/1023/18 335/1024/183 +f 491/1025/184 56/1026/185 618/1027/186 +f 48/1028/187 610/1029/188 604/1030/189 +f 881/1031/181 246/1032/190 880/1033/191 +f 901/956/22 347/1034/192 334/229/124 +f 153/1035/193 156/1036/194 527/1037/195 +f 544/866/163 348/1038/121 901/956/22 +f 481/1039/152 1049/1040/196 603/1041/197 +f 933/1042/33 296/1043/198 298/1008/169 +f 332/1044/129 887/1045/199 333/964/132 +f 366/1013/173 345/1046/200 343/1014/174 +f 886/966/19 902/1047/201 329/1000/164 +f 604/1030/189 609/1048/202 605/1049/203 +f 948/1020/159 562/1050/204 561/1051/205 +f 600/1052/206 1047/1053/126 1046/1054/19 +f 52/1055/207 57/1056/208 56/1026/185 +f 947/1057/191 408/1058/107 945/1059/209 +f 294/1060/210 930/1061/59 291/1062/211 +f 620/1063/212 641/1064/213 639/1065/214 +f 633/1066/215 634/1067/216 632/1068/217 +f 635/1069/218 636/1070/219 633/1066/215 +f 887/1045/199 911/1071/220 888/965/133 +f 754/1072/221 765/1073/222 753/1074/223 +f 692/1075/224 703/1076/225 691/1077/226 +f 630/1078/227 629/1079/228 631/1080/229 +f 639/1065/214 640/1081/230 637/1082/231 +f 637/1082/231 638/1083/232 635/1069/218 +f 626/1084/233 625/1085/234 627/1086/235 +f 628/1087/236 627/1086/235 629/1079/228 +f 632/1068/217 630/1088/227 631/1089/229 +f 648/1090/237 628/1087/236 630/1078/227 +f 641/1064/213 652/947/114 640/1081/230 +f 646/1091/238 624/1092/239 626/1084/233 +f 638/1083/232 650/1093/240 636/1070/219 +f 689/1094/241 676/1095/242 677/1096/243 +f 634/1067/216 648/1097/237 630/1088/227 +f 758/1098/244 745/1099/245 746/1100/246 +f 647/1101/247 626/1084/233 628/1087/236 +f 645/1102/248 622/1103/249 624/1092/239 +f 636/1070/219 649/1104/250 634/1067/216 +f 642/945/112 643/1105/251 619/1106/252 +f 655/1107/253 665/1108/254 653/1109/255 +f 653/1109/255 664/1110/256 652/947/114 +f 651/949/116 662/1111/257 650/1093/240 +f 676/1095/242 663/948/115 664/1110/256 +f 670/1112/258 680/1113/259 669/1114/260 +f 770/1115/261 757/1116/262 758/1098/244 +f 660/1117/263 647/1101/247 648/1090/237 +f 659/1118/264 646/1091/238 647/1101/247 +f 658/1119/265 645/1102/248 646/1091/238 +f 657/1120/266 644/946/113 645/1102/248 +f 650/1093/240 661/1121/267 649/1104/250 +f 649/1104/250 660/1122/263 648/1097/237 +f 666/1123/268 665/1108/254 667/1124/269 +f 674/1125/270 661/1121/267 662/1111/257 +f 658/1119/265 670/1112/258 657/1120/266 +f 675/1126/271 662/1111/257 663/948/115 +f 924/1127/272 904/1128/273 908/1129/274 +f 673/1130/275 660/1122/263 661/1121/267 +f 680/1113/259 691/1077/226 679/1131/276 +f 659/1118/264 671/1132/277 658/1119/265 +f 836/1133/278 837/1134/279 829/1135/280 +f 657/1120/266 669/1114/260 656/944/111 +f 656/944/111 668/1136/281 654/1137/282 +f 773/1138/283 760/1139/284 761/1140/285 +f 678/1141/286 677/1096/243 666/1123/268 +f 672/1142/287 682/1143/288 671/1132/277 +f 688/1144/289 675/1126/271 676/1095/242 +f 677/1096/243 664/1110/256 665/1108/254 +f 686/1145/290 673/1130/275 674/1125/270 +f 741/1146/291 752/1147/292 740/1148/293 +f 683/1149/294 684/1150/295 672/1142/287 +f 640/1081/230 651/949/116 638/1083/232 +f 671/1132/277 681/1151/296 670/1112/258 +f 687/1152/297 674/1125/270 675/1126/271 +f 669/1114/260 679/1131/276 668/1136/281 +f 685/1153/298 683/1154/294 673/1130/275 +f 697/1155/299 695/1156/300 685/1153/298 +f 701/1157/301 688/1144/289 689/1094/241 +f 699/1158/302 686/1145/290 687/1152/297 +f 624/1092/239 623/1159/303 625/1085/234 +f 622/1103/249 621/1160/304 623/1159/303 +f 619/1106/252 620/1063/212 621/1160/304 +f 695/1161/300 696/1162/305 684/1150/295 +f 684/1150/295 694/1163/306 682/1143/288 +f 682/1143/288 693/1164/307 681/1151/296 +f 681/1151/296 692/1075/224 680/1113/259 +f 698/1165/308 685/1153/298 686/1145/290 +f 679/1131/276 690/1166/309 678/1141/286 +f 702/1167/310 701/1157/301 690/1166/309 +f 710/1168/311 697/1155/299 698/1165/308 +f 694/1163/306 705/1169/312 693/1164/307 +f 711/1170/313 698/1165/308 699/1158/302 +f 748/1171/314 735/1172/315 736/1173/316 +f 709/1174/317 707/1175/318 697/1155/299 +f 723/1176/71 710/1168/311 711/1170/313 +f 713/1177/319 700/1178/320 701/1157/301 +f 668/1136/281 678/1141/286 666/1123/268 +f 693/1164/307 704/1179/321 692/1075/224 +f 696/1162/305 706/1180/322 694/1163/306 +f 707/1181/318 708/1182/323 696/1162/305 +f 714/1183/324 713/1177/319 702/1167/310 +f 722/1184/325 709/1174/317 710/1168/311 +f 755/1185/326 756/1186/327 744/1187/328 +f 724/1188/329 711/1170/313 712/1189/330 +f 718/1190/331 729/1191/332 717/1192/33 +f 721/1193/333 719/1194/334 709/1174/317 +f 703/1076/225 714/1183/324 702/1167/310 +f 708/1182/323 718/1190/331 706/1180/322 +f 706/1180/322 717/1192/33 705/1169/312 +f 705/1169/312 716/1195/335 704/1179/321 +f 704/1179/321 715/1196/336 703/1076/225 +f 734/1197/337 721/1193/333 722/1184/325 +f 726/1198/338 725/1199/339 714/1183/324 +f 737/1200/340 724/1188/329 725/1199/339 +f 691/1077/226 702/1167/310 690/1166/309 +f 735/1172/315 722/1184/325 723/1176/71 +f 716/1195/335 727/1201/341 715/1196/336 +f 733/1202/342 731/1203/142 721/1193/333 +f 715/1196/336 726/1198/338 714/1183/324 +f 720/978/144 730/1204/343 718/1190/331 +f 736/1173/316 723/1176/71 724/1188/329 +f 717/1192/33 728/1205/344 716/1195/335 +f 745/1099/245 743/1206/345 733/1202/342 +f 719/1207/334 720/978/144 708/1182/323 +f 738/1208/346 737/1200/340 726/1198/338 +f 749/1209/347 736/1173/316 737/1200/340 +f 730/1204/343 741/1146/291 729/1191/332 +f 643/1105/251 653/1109/255 641/1064/213 +f 746/1100/246 733/1202/342 734/1197/337 +f 727/1201/341 738/1208/346 726/1198/338 +f 743/1210/345 744/1187/328 732/977/143 +f 728/1205/344 739/1211/348 727/1201/341 +f 729/1191/332 740/1148/293 728/1205/344 +f 747/1212/349 734/1197/337 735/1172/315 +f 690/1166/309 689/1094/241 678/1141/286 +f 725/1199/339 712/1189/330 713/1177/319 +f 750/1213/350 749/1209/347 738/1208/346 +f 712/1189/330 699/1158/302 700/1178/320 +f 759/1214/351 746/1100/246 747/1212/349 +f 760/1139/284 747/1212/349 748/1171/314 +f 761/1140/285 748/1171/314 749/1209/347 +f 757/1116/262 755/1215/326 745/1099/245 +f 739/1211/348 750/1213/350 738/1208/346 +f 744/1187/328 754/1072/221 742/1216/352 +f 742/1216/352 753/1074/223 741/1146/291 +f 654/1137/282 655/1107/253 642/945/112 +f 740/1148/293 751/1217/353 739/1211/348 +f 769/1218/354 767/1219/355 757/1116/262 +f 762/1220/356 761/1140/285 750/1213/350 +f 660/1117/263 672/1142/287 659/1118/264 +f 772/1221/357 759/1214/351 760/1139/284 +f 771/1222/358 758/1098/244 759/1214/351 +f 654/1137/282 666/1123/268 667/1124/269 +f 751/1217/353 762/1220/356 750/1213/350 +f 767/1223/355 768/1224/359 756/1186/327 +f 756/1186/327 766/1225/360 754/1072/221 +f 753/1074/223 764/1226/361 752/1147/292 +f 700/1178/320 687/1152/297 688/1144/289 +f 752/1147/292 763/1227/362 751/1217/353 +f 732/977/143 742/1216/352 730/1204/343 +f 601/982/148 1046/1054/19 1053/1228/136 +f 613/991/155 46/1229/363 50/1230/364 +f 941/963/19 356/1231/365 337/613/130 +f 487/1232/366 776/1233/21 33/974/140 +f 816/1234/18 798/1235/367 807/1236/368 +f 1022/1237/369 1031/1238/370 1023/1239/371 +f 818/1240/372 808/1241/373 817/1242/374 +f 984/1243/18 985/1244/374 977/1245/373 +f 788/1246/375 789/1247/22 787/1248/376 +f 856/1249/377 857/1250/378 847/1251/379 +f 960/1252/380 962/1253/381 961/1254/382 +f 876/1255/59 869/1256/383 859/1257/69 +f 827/1258/22 836/1133/278 829/1135/280 +f 848/1259/384 835/1260/385 841/1261/386 +f 974/1262/387 982/1263/388 975/1264/389 +f 871/1265/390 864/1266/65 862/1267/370 +f 1009/1268/391 996/1269/22 1003/1270/385 +f 865/1271/392 873/1272/393 867/1273/394 +f 796/1274/395 797/1275/396 785/1276/397 +f 969/1277/398 968/1278/43 967/1279/33 +f 996/1269/22 989/1280/399 997/1281/58 +f 951/1282/400 1037/1283/401 1035/1284/402 +f 1040/1285/393 962/1253/381 1041/1286/403 +f 988/1287/65 989/1280/399 981/1288/404 +f 971/1289/405 952/1290/21 962/1253/381 +f 821/1291/406 830/1292/407 831/1293/408 +f 804/1294/387 797/1295/396 805/1296/409 +f 1036/1297/383 1029/1298/18 1028/1299/69 +f 826/1300/410 812/1301/19 810/1302/411 +f 783/1303/400 870/1304/401 868/1305/402 +f 1004/1306/278 1005/1307/279 998/1308/280 +f 877/1309/412 864/1310/65 872/1311/58 +f 983/1312/413 984/1313/18 976/1314/368 +f 791/1315/414 792/1316/380 793/1317/382 +f 804/1294/387 814/1318/388 806/1319/389 +f 860/1320/18 849/1321/415 858/1322/416 +f 849/1321/415 843/1323/43 842/1324/391 +f 818/1325/372 825/1326/417 826/1300/410 +f 817/1327/374 824/1328/418 818/1325/372 +f 1013/1329/419 1015/1330/31 1006/1331/420 +f 800/1332/33 788/1333/375 798/1334/367 +f 1005/1307/279 1006/1335/420 999/1336/407 +f 986/1337/372 995/1338/417 987/1339/410 +f 963/1340/71 964/1341/395 950/1342/31 +f 784/1343/21 868/1305/402 876/1255/59 +f 1037/1344/401 1031/1345/370 1030/1346/421 +f 834/1347/422 824/1348/418 833/1349/423 +f 952/1290/21 1035/1284/402 1043/1350/59 +f 832/1351/21 831/1293/408 830/1292/407 +f 785/1352/397 787/1248/376 786/1353/424 +f 837/1354/279 819/1355/399 829/1135/280 +f 956/1356/375 957/1357/22 955/1358/376 +f 1045/1359/412 1039/1360/65 1038/1361/58 +f 1045/1359/412 1034/1362/394 1032/1363/392 +f 791/1364/414 873/1365/393 877/1366/412 +f 789/1367/22 877/1366/412 872/1368/58 +f 838/1369/420 832/1370/21 830/1371/407 +f 867/1372/394 858/1373/416 866/1374/425 +f 870/1375/401 862/1267/370 861/1376/421 +f 966/1377/367 968/1378/43 956/1379/375 +f 813/1380/65 819/1355/399 820/1381/404 +f 792/1316/380 794/1382/381 793/1317/382 +f 1037/1344/401 1036/1297/383 1035/1284/402 +f 993/1383/59 985/1384/374 992/1385/69 +f 800/1386/33 790/1387/426 799/1388/43 +f 969/1389/398 978/1390/427 970/1391/428 +f 994/1392/418 1003/1270/385 995/1338/417 +f 1010/1393/43 1011/1394/429 1004/1306/278 +f 1029/1395/18 1011/1394/429 1019/1396/33 +f 873/1365/393 794/1382/381 874/1397/403 +f 951/1282/400 953/1398/397 954/1399/424 +f 644/946/113 619/1106/252 622/1103/249 +f 1024/1400/19 1013/1401/419 1023/1402/371 +f 953/1398/397 955/1358/376 954/1399/424 +f 1002/1403/422 994/1392/418 1001/1404/423 +f 860/1320/18 844/1405/429 850/1406/33 +f 812/1301/19 805/1296/409 795/1407/71 +f 797/1275/396 788/1333/375 785/1276/397 +f 299/893/430 922/1408/431 921/1409/432 +f 863/1410/19 847/1251/379 855/1411/71 +f 1024/1412/19 1016/1413/379 1014/1414/71 +f 1036/1297/383 1022/1237/369 1020/1415/433 +f 802/1416/428 810/1302/411 811/1417/434 +f 869/1256/383 860/1418/18 859/1257/69 +f 876/1255/59 875/1419/435 874/1397/403 +f 1023/1402/371 1021/1420/436 1022/1421/369 +f 1017/1422/384 1003/1270/385 1008/1423/386 +f 862/1424/370 863/1425/19 854/1426/371 +f 846/1427/419 839/1428/31 838/1429/420 +f 786/1430/424 871/1431/390 870/1304/401 +f 870/1375/401 869/1256/383 868/1305/402 +f 1018/1432/415 1010/1393/43 1009/1268/391 +f 972/1433/19 981/1288/404 974/1262/387 +f 857/1250/378 858/1322/416 849/1321/415 +f 961/1434/382 1045/1435/412 959/1436/414 +f 1029/1395/18 1018/1432/415 1027/1437/416 +f 1000/1438/21 1007/1439/437 1002/1440/422 +f 1017/1422/384 1002/1440/422 1007/1439/437 +f 985/1384/374 994/1441/418 986/1337/372 +f 816/1442/18 801/1443/398 800/1444/33 +f 288/1445/438 937/1446/71 284/1447/439 +f 48/1448/187 49/1449/440 611/1450/441 +f 51/1451/442 605/1049/203 609/1048/202 +f 523/1452/443 527/1037/195 155/1453/444 +f 57/1056/208 489/979/145 614/981/147 +f 46/1229/363 51/1451/442 50/1230/364 +f 940/968/21 321/461/445 546/913/134 +f 53/1003/166 618/1027/186 617/1454/446 +f 112/202/447 502/1455/448 99/195/449 +f 512/859/450 516/1456/451 515/1457/452 +f 117/778/449 509/1458/453 508/1459/448 +f 423/186/454 427/1460/455 575/1461/456 +f 437/907/457 445/1462/458 435/511/459 +f 148/147/460 149/1463/461 516/1456/451 +f 459/138/462 588/1464/463 589/1465/464 +f 90/552/465 96/1466/466 92/146/467 +f 500/846/468 504/1467/469 108/862/470 +f 464/253/471 594/1468/472 595/1469/473 +f 593/117/474 594/1468/472 467/252/475 +f 120/107/476 134/1470/477 122/811/478 +f 462/1471/479 448/606/480 450/409/481 +f 506/860/482 510/1472/483 132/1473/484 +f 430/586/485 581/1474/486 578/820/487 +f 116/1475/488 106/169/489 104/382/490 +f 456/624/491 589/1465/464 460/1476/492 +f 98/1477/477 87/310/493 493/521/478 +f 506/860/482 509/1458/453 130/592/494 +f 82/278/495 495/1478/496 85/277/497 +f 117/778/449 507/1479/498 120/107/476 +f 501/1480/499 104/382/490 102/170/500 +f 439/105/501 583/1481/502 437/106/457 +f 592/773/503 596/1482/504 476/519/505 +f 592/773/503 595/1469/473 479/1483/506 +f 108/862/470 114/1484/507 110/174/508 +f 134/1470/477 124/367/493 122/811/478 +f 573/1485/509 425/135/510 570/134/511 +f 476/519/505 477/1486/512 474/520/513 +f 435/511/459 446/1487/514 433/306/515 +f 433/306/515 579/1488/516 577/585/517 +f 937/1446/71 307/1489/518 284/1447/439 +f 543/934/156 362/1018/178 361/1490/519 +f 519/1491/520 157/1492/521 520/1493/522 +f 525/1494/523 520/1493/522 157/1492/521 +f 948/1020/159 560/1495/524 942/1021/181 +f 535/1496/525 879/941/106 878/943/110 +f 548/1497/526 340/1012/172 342/1498/527 +f 519/1499/520 155/1453/444 526/1500/528 +f 944/1006/110 568/1501/529 949/938/106 +f 947/1057/191 566/1502/180 942/1021/181 +f 880/1033/191 538/1503/180 881/1031/181 +f 946/1504/530 569/1505/531 944/1006/110 +f 885/1506/209 250/1507/532 880/1033/191 +f 945/1059/209 567/1508/533 947/1057/191 +f 943/1509/157 411/1510/534 946/1504/530 +f 320/467/131 545/865/535 941/963/19 +f 878/943/110 248/1511/536 884/1512/530 +f 895/1513/18 893/1514/537 335/1515/183 +f 891/1516/21 889/1517/538 332/1044/129 +f 289/1518/539 930/1061/59 931/1519/21 +f 31/1520/540 779/1521/196 486/1522/541 +f 899/1523/22 897/1524/542 338/1525/120 +f 326/1526/543 886/997/19 329/1527/164 +f 909/1528/544 900/1001/165 902/1047/201 +f 911/1071/220 919/1529/545 920/1530/546 +f 898/1531/547 913/1532/548 914/1533/549 +f 892/1534/550 906/1535/551 890/1536/552 +f 915/1537/553 896/1538/554 897/1524/542 +f 911/1539/220 902/1047/201 888/965/133 +f 903/1540/555 894/1541/556 896/1538/554 +f 906/1542/551 889/1517/538 890/1536/552 +f 914/1543/549 897/1524/542 898/1531/547 +f 907/1544/557 893/1514/537 894/1545/556 +f 794/1382/381 782/1546/31 784/1343/21 +f 912/1547/558 887/1045/199 889/1517/538 +f 893/1514/537 904/1128/273 892/1534/550 +f 905/1548/559 287/430/560 925/1549/561 +f 915/1537/553 922/1408/431 903/1550/555 +f 418/583/562 429/1551/563 416/275/481 +f 907/1544/557 924/1552/272 908/1553/274 +f 925/1554/561 910/1555/564 912/1547/558 +f 923/1556/565 906/1535/551 904/1557/273 +f 918/1558/566 914/1533/549 913/1532/548 +f 911/1539/220 917/1559/567 909/1560/544 +f 906/1542/551 925/1549/561 912/1561/558 +f 914/1543/549 921/1562/432 915/1563/553 +f 903/1540/555 916/1564/568 907/1565/557 +f 909/1528/544 918/1566/566 913/1567/548 +f 289/1518/539 936/1568/31 288/1445/438 +f 293/890/569 923/1569/565 924/1127/272 +f 920/1570/546 306/468/570 917/1559/567 +f 287/887/560 919/1571/545 925/1554/561 +f 926/1572/571 299/441/430 921/1562/432 +f 292/421/572 905/1573/559 923/1556/565 +f 306/472/570 918/1566/566 917/1574/567 +f 916/1564/568 297/448/573 295/894/574 +f 920/1530/546 286/424/575 285/886/576 +f 926/1575/571 304/433/577 301/889/578 +f 916/1576/568 293/438/569 924/1552/272 +f 303/1577/579 928/1578/22 302/1579/580 +f 932/1580/19 305/1581/581 307/1489/518 +f 331/819/117 346/1582/582 544/866/163 +f 302/1579/580 938/1007/43 300/1009/170 +f 935/1583/65 303/1577/579 305/1581/581 +f 524/1016/176 154/1584/583 525/1494/523 +f 352/1585/584 941/963/19 545/865/535 +f 946/1504/530 563/1005/168 407/1586/585 +f 315/1587/586 336/1588/587 891/961/21 +f 546/913/134 356/1231/365 358/1589/588 +f 883/1590/157 248/1511/536 533/1591/589 +f 335/1515/183 892/1534/550 336/1592/587 +f 330/1002/122 898/1531/547 899/1523/22 +f 152/1015/175 156/1036/194 522/1593/590 +f 336/1592/587 890/1536/552 891/1516/21 +f 542/295/591 940/968/21 328/296/179 +f 339/1594/592 894/1541/556 895/1595/18 +f 338/1525/120 896/1538/554 339/1594/592 +f 549/1596/593 342/1498/527 363/1597/594 +f 361/1490/519 939/992/18 543/934/156 +f 885/1506/209 246/1032/190 531/1598/595 +f 554/1599/596 354/1600/597 349/1601/598 +f 943/1509/157 407/1586/585 562/1050/204 +f 350/1602/599 554/1599/596 349/1601/598 +f 296/1603/198 934/1604/69 294/1060/210 +f 485/959/127 780/1605/22 31/1520/540 +f 47/1606/600 49/1449/440 608/1607/601 +f 555/1608/602 350/1602/599 345/1046/200 +f 553/1609/603 355/1610/604 353/1611/605 +f 550/1612/121 359/1613/606 360/1614/162 +f 552/1615/582 360/1614/162 355/1610/604 +f 364/1616/607 363/1597/594 359/1613/606 +f 885/1506/209 530/1617/608 879/941/106 +f 482/1618/609 1049/1040/196 1048/1619/22 +f 334/229/124 352/1585/584 545/865/535 +f 317/1620/610 339/1621/592 895/1622/18 +f 947/1057/191 560/1495/524 409/1623/611 +f 949/938/106 410/1624/612 945/1625/209 +f 537/1626/613 883/993/157 882/995/159 +f 565/1627/613 943/1509/157 948/1020/159 +f 538/1628/180 882/995/159 881/1031/181 +f 884/1512/530 535/1629/525 878/943/110 +f 883/1590/157 536/1630/614 884/1512/530 +f 885/1506/209 534/1631/529 251/1632/615 +f 95/144/460 496/1633/616 82/278/495 +f 512/859/450 514/1634/496 136/159/497 +f 511/1635/617 128/164/618 126/381/619 +f 472/621/620 478/1636/621 469/845/622 +f 494/308/619 499/1637/623 97/1638/617 +f 92/146/467 497/1639/624 95/144/460 +f 423/186/454 576/1640/502 421/187/457 +f 97/1641/617 90/552/465 494/325/619 +f 584/137/625 587/1642/626 588/1464/463 +f 151/1643/477 141/311/493 138/312/478 +f 577/585/517 580/1644/627 430/586/485 +f 586/560/628 460/1476/492 590/1645/629 +f 513/210/468 517/1646/469 143/788/470 +f 114/1484/507 112/202/447 110/174/508 +f 469/856/622 598/1647/630 593/117/474 +f 414/300/471 429/1551/563 572/1648/473 +f 143/788/470 149/1463/461 146/387/631 +f 441/177/491 581/1474/486 444/1649/492 +f 472/621/620 477/1486/512 597/1650/629 +f 574/1651/632 571/506/633 425/135/510 +f 586/560/628 591/1652/634 453/795/635 +f 421/582/457 428/1653/636 418/583/562 +f 126/365/619 133/1654/637 511/1655/617 +f 585/408/638 462/1471/479 450/409/481 +f 570/134/511 572/1648/473 573/1485/509 +f 99/195/449 501/1480/499 102/170/500 +f 106/169/489 505/1656/639 500/167/468 +f 439/105/501 444/1649/492 582/1657/629 +f 513/587/468 150/1658/623 518/1659/639 +f 85/277/497 98/1477/477 493/521/478 +f 136/159/497 151/1643/477 138/312/478 +f 585/408/638 591/1660/634 461/1661/640 +f 984/1662/18 966/1663/367 976/1664/368 +f 998/1308/280 990/1665/406 989/1280/399 +f 959/1666/414 960/1252/380 961/1254/382 +f 987/1339/410 972/1433/19 979/1667/411 +f 827/1258/22 819/1355/399 828/1668/58 +f 986/1669/372 977/1245/373 985/1244/374 +f 982/1263/388 976/1314/368 975/1264/389 +f 952/1290/21 1041/1286/403 962/1253/381 +f 1028/1299/69 1035/1284/402 1036/1297/383 +f 802/1670/428 803/1671/405 792/1672/380 +f 990/1665/406 999/1673/407 991/1674/408 +f 1024/1675/19 1032/1676/392 1033/1677/377 +f 795/1407/71 796/1274/395 782/1546/31 +f 965/1678/396 956/1379/375 953/1679/397 +f 964/1341/395 965/1678/396 953/1679/397 +f 1043/1350/59 1042/1680/435 1041/1286/403 +f 875/1419/435 860/1418/18 858/1373/416 +f 818/1240/372 810/1302/411 809/1681/427 +f 844/1405/429 845/1682/641 836/1133/278 +f 789/1683/22 871/1431/390 787/1684/376 +f 957/1685/22 958/1686/426 959/1666/414 +f 1032/1676/392 1025/1687/425 1033/1677/377 +f 1034/1688/394 1027/1689/416 1025/1687/425 +f 957/1690/22 1044/1691/390 955/1692/376 +f 832/1693/21 833/1349/423 822/1694/59 +f 865/1695/392 866/1374/425 856/1696/377 +f 853/1697/369 862/1424/370 854/1426/371 +f 957/1698/22 1045/1435/412 1038/1699/58 +f 816/1700/18 817/1242/374 808/1241/373 +f 819/1355/399 814/1701/388 820/1381/404 +f 1026/1702/378 1027/1437/416 1018/1432/415 +f 991/1674/408 1000/1703/21 993/1704/59 +f 789/1705/22 790/1706/426 791/1315/414 +f 970/1707/428 971/1289/405 960/1708/380 +f 1017/1709/384 1018/1432/415 1009/1268/391 +f 815/1710/413 822/1711/59 823/1712/69 +f 1015/1713/31 1016/1714/379 1007/1715/437 +f 1026/1716/378 1007/1715/437 1016/1714/379 +f 1016/1413/379 1025/1717/425 1026/1702/378 +f 843/1323/43 844/1405/429 836/1133/278 +f 784/1343/21 874/1397/403 794/1382/381 +f 783/1303/400 785/1352/397 786/1353/424 +f 1012/1718/641 1013/1329/419 1006/1331/420 +f 820/1381/404 812/1301/19 813/1380/65 +f 984/1719/18 969/1389/398 967/1720/33 +f 808/1721/373 802/1416/428 801/1443/398 +f 801/1722/398 792/1672/380 790/1387/426 +f 1000/1723/21 1001/1404/423 993/1724/59 +f 823/1725/69 807/1726/368 815/1727/413 +f 845/1728/641 830/1371/407 837/1134/279 +f 853/1729/369 846/1730/419 852/1731/436 +f 811/1417/434 812/1301/19 795/1407/71 +f 839/1732/31 847/1733/379 840/1734/437 +f 986/1669/372 979/1667/411 978/1735/427 +f 873/1272/393 875/1419/435 867/1273/394 +f 803/1671/405 795/1407/71 782/1546/31 +f 825/1326/417 813/1380/65 826/1300/410 +f 824/1348/418 835/1260/385 825/1326/417 +f 869/1256/383 853/1697/369 851/1736/433 +f 822/1737/59 817/1327/374 823/1738/69 +f 993/1739/59 983/1740/413 991/1741/408 +f 806/1742/389 798/1235/367 797/1295/396 +f 1011/1394/429 1012/1718/641 1004/1306/278 +f 971/1289/405 963/1340/71 950/1342/31 +f 1042/1680/435 1029/1298/18 1027/1689/416 +f 853/1729/369 844/1405/429 851/1743/433 +f 852/1744/436 838/1429/420 845/1682/641 +f 1044/1745/390 1039/1746/65 1031/1345/370 +f 863/1747/19 846/1730/419 854/1748/371 +f 970/1707/428 958/1749/426 969/1277/398 +f 848/1259/384 834/1750/422 840/1751/437 +f 827/1258/22 825/1326/417 835/1260/385 +f 972/1433/19 973/1752/409 963/1340/71 +f 1022/1421/369 1011/1394/429 1020/1753/433 +f 991/1741/408 982/1754/388 990/1755/406 +f 865/1695/392 863/1756/19 864/1757/65 +f 996/1269/22 1004/1306/278 998/1308/280 +f 975/1758/389 966/1663/367 965/1759/396 +f 974/1262/387 965/1759/396 973/1752/409 +f 972/1433/19 980/1760/434 979/1667/411 +f 782/1546/31 783/1303/400 784/1343/21 +f 1040/1761/393 1042/1680/435 1034/1362/394 +f 848/1762/384 849/1321/415 842/1324/391 +f 1031/1238/370 1024/1763/19 1023/1239/371 +f 842/1324/391 827/1258/22 835/1260/385 +f 989/1280/399 982/1754/388 981/1288/404 +f 806/1319/389 815/1727/413 807/1726/368 +f 995/1338/417 988/1287/65 987/1339/410 +f 964/1341/395 952/1290/21 950/1342/31 +f 970/1391/428 979/1667/411 980/1760/434 +f 857/1764/378 840/1734/437 847/1733/379 +f 1006/1335/420 1000/1765/21 999/1336/407 +f 996/1269/22 995/1338/417 1003/1270/385 +f 954/1766/424 1044/1691/390 1037/1283/401 +f 821/1767/406 815/1710/413 814/1701/388 +f 840/1751/437 832/1768/21 839/1769/31 +f 486/1522/541 778/1770/18 32/1771/642 +f 482/1618/609 1047/1053/126 599/1772/643 +f 32/1773/642 777/1774/138 487/1232/366 +f 551/1775/644 353/1611/605 354/1776/597 +f 882/995/159 532/1777/645 881/1031/181 +f 949/938/106 945/1625/209 408/939/107 +f 879/941/106 530/1617/608 529/942/109 +f 656/944/111 654/1137/282 642/945/112 +f 652/947/114 664/1110/256 663/948/115 +f 331/819/117 539/458/646 308/460/118 +f 323/951/119 322/954/121 899/952/22 +f 322/954/121 325/1778/647 330/955/122 +f 540/228/123 311/454/162 901/956/22 +f 484/957/125 774/970/19 781/958/126 +f 312/960/128 315/1587/586 891/961/21 +f 337/613/130 319/466/648 320/467/131 +f 333/964/132 887/1045/199 888/965/133 +f 546/913/134 358/1589/588 357/967/135 +f 484/957/125 483/975/141 775/969/136 +f 602/971/137 1052/983/21 1051/972/138 +f 33/974/140 776/1233/21 775/969/136 +f 731/976/142 743/1210/345 732/977/143 +f 489/979/145 488/1011/171 615/980/146 +f 601/982/148 1053/1228/136 1052/983/21 +f 54/984/149 492/1004/167 55/985/150 +f 480/973/139 1051/972/138 1050/987/18 +f 612/989/153 47/1606/600 607/990/154 +f 308/801/118 327/803/649 543/934/156 +f 883/993/157 533/1779/589 247/994/158 +f 939/950/18 341/1780/650 344/996/160 +f 886/997/19 310/1781/651 309/998/161 +f 311/454/162 313/222/652 544/866/163 +f 329/1000/164 902/1047/201 900/1001/165 +f 53/1003/166 617/1454/446 55/985/150 +f 949/938/106 564/940/108 563/1005/168 +f 938/1007/43 933/1042/33 298/1008/169 +f 54/1010/149 616/1782/151 615/980/146 +f 340/1012/172 547/1783/653 366/1013/173 +f 152/1015/175 521/1784/654 524/1016/176 +f 940/968/21 357/967/135 362/1018/178 +f 566/1019/180 565/1785/613 948/1020/159 +f 318/1022/182 317/1786/610 895/1023/18 +f 491/1025/184 52/1055/207 56/1026/185 +f 48/1028/187 611/1787/441 610/1029/188 +f 881/1031/181 532/1777/645 246/1032/190 +f 901/956/22 348/1038/121 347/1034/192 +f 153/1035/193 522/1593/590 156/1036/194 +f 544/866/163 346/1582/582 348/1038/121 +f 481/1039/152 1050/1788/18 1049/1040/196 +f 933/1042/33 929/1789/18 296/1043/198 +f 332/1044/129 889/1517/538 887/1045/199 +f 366/1013/173 555/1608/602 345/1046/200 +f 886/966/19 888/965/133 902/1047/201 +f 604/1030/189 610/1029/188 609/1048/202 +f 948/1020/159 943/1509/157 562/1050/204 +f 600/1052/206 599/1772/643 1047/1053/126 +f 52/1055/207 490/1790/655 57/1056/208 +f 947/1057/191 409/1623/611 408/1058/107 +f 294/1060/210 934/1604/69 930/1061/59 +f 620/1063/212 643/1105/251 641/1064/213 +f 633/1066/215 636/1070/219 634/1067/216 +f 635/1069/218 638/1083/232 636/1070/219 +f 887/1045/199 910/1791/564 911/1071/220 +f 754/1072/221 766/1225/360 765/1073/222 +f 692/1075/224 704/1179/321 703/1076/225 +f 630/1078/227 628/1087/236 629/1079/228 +f 639/1065/214 641/1064/213 640/1081/230 +f 637/1082/231 640/1081/230 638/1083/232 +f 626/1084/233 624/1092/239 625/1085/234 +f 628/1087/236 626/1084/233 627/1086/235 +f 632/1068/217 634/1067/216 630/1088/227 +f 648/1090/237 647/1101/247 628/1087/236 +f 641/1064/213 653/1109/255 652/947/114 +f 646/1091/238 645/1102/248 624/1092/239 +f 638/1083/232 651/949/116 650/1093/240 +f 689/1094/241 688/1144/289 676/1095/242 +f 634/1067/216 649/1104/250 648/1097/237 +f 758/1098/244 757/1116/262 745/1099/245 +f 647/1101/247 646/1091/238 626/1084/233 +f 645/1102/248 644/946/113 622/1103/249 +f 636/1070/219 650/1093/240 649/1104/250 +f 642/945/112 655/1107/253 643/1105/251 +f 655/1107/253 667/1124/269 665/1108/254 +f 653/1109/255 665/1108/254 664/1110/256 +f 651/949/116 663/948/115 662/1111/257 +f 676/1095/242 675/1126/271 663/948/115 +f 670/1112/258 681/1151/296 680/1113/259 +f 770/1115/261 769/1218/354 757/1116/262 +f 660/1117/263 659/1118/264 647/1101/247 +f 659/1118/264 658/1119/265 646/1091/238 +f 658/1119/265 657/1120/266 645/1102/248 +f 657/1120/266 656/944/111 644/946/113 +f 650/1093/240 662/1111/257 661/1121/267 +f 649/1104/250 661/1121/267 660/1122/263 +f 666/1123/268 677/1096/243 665/1108/254 +f 674/1125/270 673/1130/275 661/1121/267 +f 658/1119/265 671/1132/277 670/1112/258 +f 675/1126/271 674/1125/270 662/1111/257 +f 924/1127/272 923/1569/565 904/1128/273 +f 673/1130/275 683/1154/294 660/1122/263 +f 680/1113/259 692/1075/224 691/1077/226 +f 659/1118/264 672/1142/287 671/1132/277 +f 836/1133/278 845/1728/641 837/1134/279 +f 657/1120/266 670/1112/258 669/1114/260 +f 656/944/111 669/1114/260 668/1136/281 +f 773/1138/283 772/1221/357 760/1139/284 +f 678/1141/286 689/1094/241 677/1096/243 +f 672/1142/287 684/1150/295 682/1143/288 +f 688/1144/289 687/1152/297 675/1126/271 +f 677/1096/243 676/1095/242 664/1110/256 +f 686/1145/290 685/1153/298 673/1130/275 +f 741/1146/291 753/1074/223 752/1147/292 +f 683/1149/294 695/1161/300 684/1150/295 +f 640/1081/230 652/947/114 651/949/116 +f 671/1132/277 682/1143/288 681/1151/296 +f 687/1152/297 686/1145/290 674/1125/270 +f 669/1114/260 680/1113/259 679/1131/276 +f 685/1153/298 695/1156/300 683/1154/294 +f 697/1155/299 707/1175/318 695/1156/300 +f 701/1157/301 700/1178/320 688/1144/289 +f 699/1158/302 698/1165/308 686/1145/290 +f 624/1092/239 622/1103/249 623/1159/303 +f 622/1103/249 619/1106/252 621/1160/304 +f 619/1106/252 643/1105/251 620/1063/212 +f 695/1161/300 707/1181/318 696/1162/305 +f 684/1150/295 696/1162/305 694/1163/306 +f 682/1143/288 694/1163/306 693/1164/307 +f 681/1151/296 693/1164/307 692/1075/224 +f 698/1165/308 697/1155/299 685/1153/298 +f 679/1131/276 691/1077/226 690/1166/309 +f 702/1167/310 713/1177/319 701/1157/301 +f 710/1168/311 709/1174/317 697/1155/299 +f 694/1163/306 706/1180/322 705/1169/312 +f 711/1170/313 710/1168/311 698/1165/308 +f 748/1171/314 747/1212/349 735/1172/315 +f 709/1174/317 719/1194/334 707/1175/318 +f 723/1176/71 722/1184/325 710/1168/311 +f 713/1177/319 712/1189/330 700/1178/320 +f 668/1136/281 679/1131/276 678/1141/286 +f 693/1164/307 705/1169/312 704/1179/321 +f 696/1162/305 708/1182/323 706/1180/322 +f 707/1181/318 719/1207/334 708/1182/323 +f 714/1183/324 725/1199/339 713/1177/319 +f 722/1184/325 721/1193/333 709/1174/317 +f 755/1185/326 767/1223/355 756/1186/327 +f 724/1188/329 723/1176/71 711/1170/313 +f 718/1190/331 730/1204/343 729/1191/332 +f 721/1193/333 731/1203/142 719/1194/334 +f 703/1076/225 715/1196/336 714/1183/324 +f 708/1182/323 720/978/144 718/1190/331 +f 706/1180/322 718/1190/331 717/1192/33 +f 705/1169/312 717/1192/33 716/1195/335 +f 704/1179/321 716/1195/335 715/1196/336 +f 734/1197/337 733/1202/342 721/1193/333 +f 726/1198/338 737/1200/340 725/1199/339 +f 737/1200/340 736/1173/316 724/1188/329 +f 691/1077/226 703/1076/225 702/1167/310 +f 735/1172/315 734/1197/337 722/1184/325 +f 716/1195/335 728/1205/344 727/1201/341 +f 733/1202/342 743/1206/345 731/1203/142 +f 715/1196/336 727/1201/341 726/1198/338 +f 720/978/144 732/977/143 730/1204/343 +f 736/1173/316 735/1172/315 723/1176/71 +f 717/1192/33 729/1191/332 728/1205/344 +f 745/1099/245 755/1215/326 743/1206/345 +f 719/1207/334 731/976/142 720/978/144 +f 738/1208/346 749/1209/347 737/1200/340 +f 749/1209/347 748/1171/314 736/1173/316 +f 730/1204/343 742/1216/352 741/1146/291 +f 643/1105/251 655/1107/253 653/1109/255 +f 746/1100/246 745/1099/245 733/1202/342 +f 727/1201/341 739/1211/348 738/1208/346 +f 743/1210/345 755/1185/326 744/1187/328 +f 728/1205/344 740/1148/293 739/1211/348 +f 729/1191/332 741/1146/291 740/1148/293 +f 747/1212/349 746/1100/246 734/1197/337 +f 690/1166/309 701/1157/301 689/1094/241 +f 725/1199/339 724/1188/329 712/1189/330 +f 750/1213/350 761/1140/285 749/1209/347 +f 712/1189/330 711/1170/313 699/1158/302 +f 759/1214/351 758/1098/244 746/1100/246 +f 760/1139/284 759/1214/351 747/1212/349 +f 761/1140/285 760/1139/284 748/1171/314 +f 757/1116/262 767/1219/355 755/1215/326 +f 739/1211/348 751/1217/353 750/1213/350 +f 744/1187/328 756/1186/327 754/1072/221 +f 742/1216/352 754/1072/221 753/1074/223 +f 654/1137/282 667/1124/269 655/1107/253 +f 740/1148/293 752/1147/292 751/1217/353 +f 769/1218/354 1054/1792/656 767/1219/355 +f 762/1220/356 773/1138/283 761/1140/285 +f 660/1117/263 683/1149/294 672/1142/287 +f 772/1221/357 771/1222/358 759/1214/351 +f 771/1222/358 770/1115/261 758/1098/244 +f 654/1137/282 668/1136/281 666/1123/268 +f 751/1217/353 763/1227/362 762/1220/356 +f 767/1223/355 1054/1793/656 768/1224/359 +f 756/1186/327 768/1224/359 766/1225/360 +f 753/1074/223 765/1073/222 764/1226/361 +f 700/1178/320 699/1158/302 687/1152/297 +f 752/1147/292 764/1226/361 763/1227/362 +f 732/977/143 744/1187/328 742/1216/352 +f 601/982/148 600/1052/206 1046/1054/19 +f 613/991/155 607/990/154 46/1229/363 +f 941/963/19 351/1794/657 356/1231/365 +f 487/1232/366 777/1774/138 776/1233/21 +f 816/1234/18 800/1795/33 798/1235/367 +f 1022/1237/369 1030/1796/421 1031/1238/370 +f 818/1240/372 809/1681/427 808/1241/373 +f 984/1243/18 992/1797/69 985/1244/374 +f 788/1246/375 799/1798/43 789/1247/22 +f 856/1249/377 866/1799/425 857/1250/378 +f 960/1252/380 971/1289/405 962/1253/381 +f 876/1255/59 868/1305/402 869/1256/383 +f 827/1258/22 843/1323/43 836/1133/278 +f 848/1259/384 842/1324/391 835/1260/385 +f 974/1262/387 981/1288/404 982/1263/388 +f 871/1265/390 872/1800/58 864/1266/65 +f 1009/1268/391 1010/1393/43 996/1269/22 +f 865/1271/392 877/1309/412 873/1272/393 +f 796/1274/395 805/1296/409 797/1275/396 +f 969/1277/398 958/1749/426 968/1278/43 +f 996/1269/22 998/1308/280 989/1280/399 +f 951/1282/400 954/1766/424 1037/1283/401 +f 1040/1285/393 961/1434/382 962/1253/381 +f 988/1287/65 997/1281/58 989/1280/399 +f 971/1289/405 950/1342/31 952/1290/21 +f 821/1291/406 837/1354/279 830/1292/407 +f 804/1294/387 806/1742/389 797/1295/396 +f 1036/1297/383 1020/1415/433 1029/1298/18 +f 826/1300/410 813/1380/65 812/1301/19 +f 783/1303/400 786/1430/424 870/1304/401 +f 1004/1306/278 1012/1801/641 1005/1307/279 +f 877/1309/412 865/1271/392 864/1310/65 +f 983/1312/413 992/1802/69 984/1313/18 +f 791/1315/414 790/1706/426 792/1316/380 +f 804/1294/387 820/1381/404 814/1318/388 +f 860/1320/18 850/1406/33 849/1321/415 +f 849/1321/415 850/1406/33 843/1323/43 +f 818/1325/372 824/1328/418 825/1326/417 +f 817/1327/374 833/1803/423 824/1328/418 +f 1013/1329/419 1014/1804/71 1015/1330/31 +f 800/1332/33 799/1805/43 788/1333/375 +f 1005/1307/279 1012/1801/641 1006/1335/420 +f 986/1337/372 994/1441/418 995/1338/417 +f 963/1340/71 973/1752/409 964/1341/395 +f 784/1343/21 783/1303/400 868/1305/402 +f 1037/1344/401 1044/1745/390 1031/1345/370 +f 834/1347/422 841/1806/386 824/1348/418 +f 952/1290/21 951/1282/400 1035/1284/402 +f 832/1351/21 822/1807/59 831/1293/408 +f 785/1352/397 788/1246/375 787/1248/376 +f 837/1354/279 821/1291/406 819/1355/399 +f 956/1356/375 968/1808/43 957/1357/22 +f 1045/1359/412 1032/1363/392 1039/1360/65 +f 1045/1359/412 1040/1761/393 1034/1362/394 +f 791/1364/414 793/1809/382 873/1365/393 +f 789/1367/22 791/1364/414 877/1366/412 +f 838/1369/420 839/1810/31 832/1370/21 +f 867/1372/394 875/1419/435 858/1373/416 +f 870/1375/401 871/1265/390 862/1267/370 +f 966/1377/367 967/1811/33 968/1378/43 +f 813/1380/65 828/1668/58 819/1355/399 +f 792/1316/380 803/1671/405 794/1382/381 +f 1037/1344/401 1030/1346/421 1036/1297/383 +f 993/1383/59 1001/1812/423 985/1384/374 +f 800/1386/33 801/1722/398 790/1387/426 +f 969/1389/398 977/1813/373 978/1390/427 +f 994/1392/418 1008/1814/386 1003/1270/385 +f 1010/1393/43 1019/1396/33 1011/1394/429 +f 1029/1395/18 1020/1753/433 1011/1394/429 +f 873/1365/393 793/1809/382 794/1382/381 +f 951/1282/400 964/1341/395 953/1398/397 +f 644/946/113 642/945/112 619/1106/252 +f 1024/1400/19 1014/1815/71 1013/1401/419 +f 953/1398/397 956/1356/375 955/1358/376 +f 1002/1403/422 1008/1814/386 994/1392/418 +f 860/1320/18 851/1743/433 844/1405/429 +f 812/1301/19 804/1294/387 805/1296/409 +f 797/1275/396 798/1334/367 788/1333/375 +f 299/893/430 297/444/573 922/1408/431 +f 863/1410/19 856/1249/377 847/1251/379 +f 1024/1412/19 1033/1816/377 1016/1413/379 +f 1036/1297/383 1030/1796/421 1022/1237/369 +f 802/1416/428 809/1817/427 810/1302/411 +f 869/1256/383 851/1736/433 860/1418/18 +f 876/1255/59 859/1257/69 875/1419/435 +f 1023/1402/371 1013/1401/419 1021/1420/436 +f 1017/1422/384 1009/1268/391 1003/1270/385 +f 862/1424/370 864/1818/65 863/1425/19 +f 846/1427/419 855/1819/71 839/1428/31 +f 786/1430/424 787/1684/376 871/1431/390 +f 870/1375/401 861/1376/421 869/1256/383 +f 1018/1432/415 1019/1396/33 1010/1393/43 +f 972/1433/19 988/1287/65 981/1288/404 +f 857/1250/378 866/1799/425 858/1322/416 +f 961/1434/382 1040/1285/393 1045/1435/412 +f 1029/1395/18 1019/1396/33 1018/1432/415 +f 1000/1438/21 1015/1820/31 1007/1439/437 +f 1017/1422/384 1008/1423/386 1002/1440/422 +f 985/1384/374 1001/1812/423 994/1441/418 +f 816/1442/18 808/1721/373 801/1443/398 +f 288/1445/438 936/1568/31 937/1446/71 +f 48/1448/187 608/1607/601 49/1449/440 +f 51/1451/442 606/1821/655 605/1049/203 +f 523/1452/443 153/1035/193 527/1037/195 +f 57/1056/208 490/1790/655 489/979/145 +f 46/1229/363 606/1821/655 51/1451/442 +f 940/968/21 324/492/658 321/461/445 +f 53/1003/166 491/1025/184 618/1027/186 +f 112/202/447 503/1822/659 502/1455/448 +f 512/859/450 148/147/460 516/1456/451 +f 117/778/449 130/592/494 509/1458/453 +f 423/186/454 571/506/633 427/1460/455 +f 437/907/457 583/1823/502 445/1462/458 +f 148/147/460 146/387/631 149/1463/461 +f 459/138/462 584/137/625 588/1464/463 +f 90/552/465 498/1824/660 96/1466/466 +f 500/846/468 505/1825/639 504/1467/469 +f 464/253/471 467/252/475 594/1468/472 +f 593/117/474 598/1647/630 594/1468/472 +f 120/107/476 507/1479/498 134/1470/477 +f 462/1471/479 587/1642/626 448/606/480 +f 506/860/482 128/164/618 510/1472/483 +f 430/586/485 580/1644/627 581/1474/486 +f 116/1475/488 115/1826/661 106/169/489 +f 456/624/491 459/138/462 589/1465/464 +f 98/1477/477 499/1637/623 87/310/493 +f 506/860/482 132/1473/484 509/1458/453 +f 82/278/495 496/1633/616 495/1478/496 +f 117/778/449 508/1459/448 507/1479/498 +f 501/1480/499 116/1475/488 104/382/490 +f 439/105/501 582/1657/629 583/1481/502 +f 592/773/503 479/1483/506 596/1482/504 +f 592/773/503 464/253/471 595/1469/473 +f 108/862/470 504/1467/469 114/1484/507 +f 134/1470/477 133/1654/637 124/367/493 +f 573/1485/509 574/1651/632 425/135/510 +f 476/519/505 596/1482/504 477/1486/512 +f 435/511/459 445/1462/458 446/1487/514 +f 433/306/515 446/1487/514 579/1488/516 +f 937/1446/71 932/1580/19 307/1489/518 +f 543/934/156 328/296/179 362/1018/178 +f 519/1491/520 526/1827/528 157/1492/521 +f 525/1494/523 154/1584/583 520/1493/522 +f 948/1020/159 561/1051/205 560/1495/524 +f 535/1496/525 534/1828/529 879/941/106 +f 548/1497/526 547/1783/653 340/1012/172 +f 519/1499/520 523/1452/443 155/1453/444 +f 944/1006/110 569/1829/531 568/1501/529 +f 947/1057/191 567/1830/533 566/1502/180 +f 880/1033/191 250/1831/532 538/1503/180 +f 946/1504/530 411/1832/534 569/1505/531 +f 885/1506/209 251/1833/615 250/1507/532 +f 945/1059/209 410/1834/612 567/1508/533 +f 943/1509/157 412/1835/662 411/1510/534 +f 320/467/131 316/208/663 545/865/535 +f 878/943/110 529/942/109 248/1511/536 +f 895/1513/18 894/1545/556 893/1514/537 +f 891/1516/21 890/1536/552 889/1517/538 +f 289/1518/539 291/1062/211 930/1061/59 +f 31/1520/540 780/1605/22 779/1521/196 +f 899/1523/22 898/1531/547 897/1524/542 +f 326/1526/543 310/1781/651 886/997/19 +f 909/1528/544 913/1567/548 900/1001/165 +f 911/1071/220 910/1791/564 919/1529/545 +f 898/1531/547 900/1001/165 913/1532/548 +f 892/1534/550 904/1557/273 906/1535/551 +f 915/1537/553 903/1550/555 896/1538/554 +f 911/1539/220 909/1560/544 902/1047/201 +f 903/1540/555 907/1565/557 894/1541/556 +f 906/1542/551 912/1561/558 889/1517/538 +f 914/1543/549 915/1563/553 897/1524/542 +f 907/1544/557 908/1553/274 893/1514/537 +f 794/1382/381 803/1671/405 782/1546/31 +f 912/1547/558 910/1555/564 887/1045/199 +f 893/1514/537 908/1129/274 904/1128/273 +f 905/1548/559 290/431/664 287/430/560 +f 915/1537/553 921/1409/432 922/1408/431 +f 418/583/562 428/1653/636 429/1551/563 +f 907/1544/557 916/1576/568 924/1552/272 +f 925/1554/561 919/1571/545 910/1555/564 +f 923/1556/565 905/1573/559 906/1535/551 +f 918/1558/566 926/1575/571 914/1533/549 +f 911/1539/220 920/1570/546 917/1559/567 +f 906/1542/551 905/1548/559 925/1549/561 +f 914/1543/549 926/1572/571 921/1562/432 +f 903/1540/555 922/1836/431 916/1564/568 +f 909/1528/544 917/1574/567 918/1566/566 +f 289/1518/539 931/1519/21 936/1568/31 +f 293/890/569 292/435/572 923/1569/565 +f 920/1570/546 285/899/576 306/468/570 +f 287/887/560 286/426/575 919/1571/545 +f 926/1572/571 301/892/578 299/441/430 +f 292/421/572 290/885/664 905/1573/559 +f 306/472/570 304/900/577 918/1566/566 +f 916/1564/568 922/1836/431 297/448/573 +f 920/1530/546 919/1529/545 286/424/575 +f 926/1575/571 918/1558/566 304/433/577 +f 916/1576/568 295/891/574 293/438/569 +f 303/1577/579 927/1837/58 928/1578/22 +f 932/1580/19 935/1583/65 305/1581/581 +f 331/819/117 344/996/160 346/1582/582 +f 302/1579/580 928/1578/22 938/1007/43 +f 935/1583/65 927/1837/58 303/1577/579 +f 524/1016/176 521/1784/654 154/1584/583 +f 352/1585/584 351/1794/657 941/963/19 +f 946/1504/530 944/1006/110 563/1005/168 +f 315/1587/586 314/1838/665 336/1588/587 +f 546/913/134 337/613/130 356/1231/365 +f 883/1590/157 884/1512/530 248/1511/536 +f 335/1515/183 893/1514/537 892/1534/550 +f 330/1002/122 900/1001/165 898/1531/547 +f 152/1015/175 528/1017/177 156/1036/194 +f 336/1592/587 892/1534/550 890/1536/552 +f 542/295/591 324/492/658 940/968/21 +f 339/1594/592 896/1538/554 894/1541/556 +f 338/1525/120 897/1524/542 896/1538/554 +f 549/1596/593 548/1497/526 342/1498/527 +f 361/1490/519 341/1839/650 939/992/18 +f 885/1506/209 880/1033/191 246/1032/190 +f 554/1599/596 551/1840/644 354/1600/597 +f 943/1509/157 946/1504/530 407/1586/585 +f 350/1602/599 365/1841/666 554/1599/596 +f 296/1603/198 929/1842/18 934/1604/69 +f 485/959/127 781/958/126 780/1605/22 +f 47/1606/600 612/989/153 49/1449/440 +f 555/1608/602 365/1841/666 350/1602/599 +f 553/1609/603 552/1615/582 355/1610/604 +f 550/1612/121 364/1616/607 359/1613/606 +f 552/1615/582 550/1612/121 360/1614/162 +f 364/1616/607 549/1596/593 363/1597/594 +f 885/1506/209 531/1598/595 530/1617/608 +f 482/1618/609 603/1041/197 1049/1040/196 +f 334/229/124 347/1034/192 352/1585/584 +f 317/1620/610 541/1843/667 339/1621/592 +f 947/1057/191 942/1021/181 560/1495/524 +f 949/938/106 568/1844/529 410/1624/612 +f 537/1626/613 249/1845/662 883/993/157 +f 565/1627/613 412/1846/662 943/1509/157 +f 538/1628/180 537/1847/613 882/995/159 +f 884/1512/530 536/1848/614 535/1629/525 +f 883/1590/157 249/1849/662 536/1630/614 +f 885/1506/209 879/941/106 534/1631/529 +f 95/144/460 497/1639/624 496/1633/616 +f 512/859/450 515/1457/452 514/1634/496 +f 511/1635/617 510/1472/483 128/164/618 +f 472/621/620 597/1650/629 478/1636/621 +f 494/308/619 87/310/493 499/1637/623 +f 92/146/467 96/1466/466 497/1639/624 +f 423/186/454 575/1461/456 576/1640/502 +f 97/1641/617 498/1824/660 90/552/465 +f 584/137/625 448/606/480 587/1642/626 +f 151/1643/477 150/1658/623 141/311/493 +f 577/585/517 579/1488/516 580/1644/627 +f 586/560/628 456/624/491 460/1476/492 +f 513/210/468 518/1850/639 517/1646/469 +f 114/1484/507 503/1822/659 112/202/447 +f 469/856/622 478/1851/621 598/1647/630 +f 414/300/471 416/275/481 429/1551/563 +f 143/788/470 517/1646/469 149/1463/461 +f 441/177/491 578/820/487 581/1474/486 +f 472/621/620 474/520/513 477/1486/512 +f 574/1651/632 427/1460/455 571/506/633 +f 586/560/628 590/1645/629 591/1652/634 +f 421/582/457 576/1852/502 428/1653/636 +f 126/365/619 124/367/493 133/1654/637 +f 585/408/638 461/1661/640 462/1471/479 +f 570/134/511 414/300/471 572/1648/473 +f 99/195/449 502/1455/448 501/1480/499 +f 106/169/489 115/1826/661 505/1656/639 +f 439/105/501 441/177/491 444/1649/492 +f 513/587/468 141/311/493 150/1658/623 +f 85/277/497 495/1478/496 98/1477/477 +f 136/159/497 514/1634/496 151/1643/477 +f 585/408/638 453/918/635 591/1660/634 +f 984/1662/18 967/1853/33 966/1663/367 +f 998/1308/280 1005/1854/279 990/1665/406 +f 959/1666/414 958/1686/426 960/1252/380 +f 987/1339/410 988/1287/65 972/1433/19 +f 827/1258/22 829/1135/280 819/1355/399 +f 986/1669/372 978/1735/427 977/1245/373 +f 982/1263/388 983/1312/413 976/1314/368 +f 952/1290/21 1043/1350/59 1041/1286/403 +f 1028/1299/69 1043/1350/59 1035/1284/402 +f 802/1670/428 811/1417/434 803/1671/405 +f 990/1665/406 1005/1854/279 999/1673/407 +f 1024/1675/19 1039/1855/65 1032/1676/392 +f 795/1407/71 805/1296/409 796/1274/395 +f 965/1678/396 966/1377/367 956/1379/375 +f 964/1341/395 973/1752/409 965/1678/396 +f 1043/1350/59 1028/1299/69 1042/1680/435 +f 875/1419/435 859/1257/69 860/1418/18 +f 818/1240/372 826/1300/410 810/1302/411 +f 844/1405/429 852/1744/436 845/1682/641 +f 789/1683/22 872/1856/58 871/1431/390 +f 957/1685/22 968/1857/43 958/1686/426 +f 1032/1676/392 1034/1688/394 1025/1687/425 +f 1034/1688/394 1042/1680/435 1027/1689/416 +f 957/1690/22 1038/1858/58 1044/1691/390 +f 832/1693/21 834/1347/422 833/1349/423 +f 865/1695/392 867/1372/394 866/1374/425 +f 853/1697/369 861/1859/421 862/1424/370 +f 957/1698/22 959/1436/414 1045/1435/412 +f 816/1700/18 823/1860/69 817/1242/374 +f 819/1355/399 821/1767/406 814/1701/388 +f 1026/1702/378 1025/1717/425 1027/1437/416 +f 991/1674/408 999/1673/407 1000/1703/21 +f 789/1705/22 799/1861/43 790/1706/426 +f 970/1707/428 980/1760/434 971/1289/405 +f 1017/1709/384 1026/1716/378 1018/1432/415 +f 815/1710/413 831/1862/408 822/1711/59 +f 1015/1713/31 1014/1863/71 1016/1714/379 +f 1026/1716/378 1017/1709/384 1007/1715/437 +f 1016/1413/379 1033/1816/377 1025/1717/425 +f 843/1323/43 850/1406/33 844/1405/429 +f 784/1343/21 876/1255/59 874/1397/403 +f 783/1303/400 796/1274/395 785/1352/397 +f 1012/1718/641 1021/1864/436 1013/1329/419 +f 820/1381/404 804/1294/387 812/1301/19 +f 984/1719/18 977/1813/373 969/1389/398 +f 808/1721/373 809/1817/427 802/1416/428 +f 801/1722/398 802/1670/428 792/1672/380 +f 1000/1723/21 1002/1403/422 1001/1404/423 +f 823/1725/69 816/1865/18 807/1726/368 +f 845/1728/641 838/1369/420 830/1371/407 +f 853/1729/369 854/1748/371 846/1730/419 +f 811/1417/434 810/1302/411 812/1301/19 +f 839/1732/31 855/1866/71 847/1733/379 +f 986/1669/372 987/1339/410 979/1667/411 +f 873/1272/393 874/1397/403 875/1419/435 +f 803/1671/405 811/1417/434 795/1407/71 +f 825/1326/417 828/1668/58 813/1380/65 +f 824/1348/418 841/1806/386 835/1260/385 +f 869/1256/383 861/1859/421 853/1697/369 +f 822/1737/59 833/1803/423 817/1327/374 +f 993/1739/59 992/1867/69 983/1740/413 +f 806/1742/389 807/1236/368 798/1235/367 +f 1011/1394/429 1021/1864/436 1012/1718/641 +f 971/1289/405 980/1760/434 963/1340/71 +f 1042/1680/435 1028/1299/69 1029/1298/18 +f 853/1729/369 852/1731/436 844/1405/429 +f 852/1744/436 846/1427/419 838/1429/420 +f 1044/1745/390 1038/1868/58 1039/1746/65 +f 863/1747/19 855/1869/71 846/1730/419 +f 970/1707/428 960/1708/380 958/1749/426 +f 848/1259/384 841/1261/386 834/1750/422 +f 827/1258/22 828/1668/58 825/1326/417 +f 972/1433/19 974/1262/387 973/1752/409 +f 1022/1421/369 1021/1420/436 1011/1394/429 +f 991/1741/408 983/1740/413 982/1754/388 +f 865/1695/392 856/1696/377 863/1756/19 +f 996/1269/22 1010/1393/43 1004/1306/278 +f 975/1758/389 976/1664/368 966/1663/367 +f 974/1262/387 975/1758/389 965/1759/396 +f 972/1433/19 963/1340/71 980/1760/434 +f 782/1546/31 796/1274/395 783/1303/400 +f 1040/1761/393 1041/1286/403 1042/1680/435 +f 848/1762/384 857/1764/378 849/1321/415 +f 1031/1238/370 1039/1870/65 1024/1763/19 +f 842/1324/391 843/1323/43 827/1258/22 +f 989/1280/399 990/1755/406 982/1754/388 +f 806/1319/389 814/1318/388 815/1727/413 +f 995/1338/417 997/1281/58 988/1287/65 +f 964/1341/395 951/1282/400 952/1290/21 +f 970/1391/428 978/1390/427 979/1667/411 +f 857/1764/378 848/1762/384 840/1734/437 +f 1006/1335/420 1015/1871/31 1000/1765/21 +f 996/1269/22 997/1281/58 995/1338/417 +f 954/1766/424 955/1692/376 1044/1691/390 +f 821/1767/406 831/1862/408 815/1710/413 +f 840/1751/437 834/1750/422 832/1768/21 +f 486/1522/541 779/1521/196 778/1770/18 +f 482/1618/609 1048/1619/22 1047/1053/126 +f 32/1773/642 778/1872/18 777/1774/138 +f 551/1775/644 553/1609/603 353/1611/605 +f 882/995/159 247/994/158 532/1777/645 diff --git a/src/main/resources/assets/hbm/models/weapons/tesla_cannon.obj b/src/main/resources/assets/hbm/models/weapons/tesla_cannon.obj new file mode 100644 index 000000000..912159dad --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/tesla_cannon.obj @@ -0,0 +1,8340 @@ +# Blender v2.79 (sub 0) OBJ File: 'tesla_cannon.blend' +# www.blender.org +o Capacitor +v 0.000000 -0.125000 2.000000 +v -0.176777 -0.198223 2.000000 +v -0.250000 -0.375000 2.000000 +v -0.176777 -0.551777 2.000000 +v 0.000000 -0.625000 2.000000 +v 0.176777 -0.551777 2.000000 +v 0.250000 -0.375000 2.000000 +v 0.176777 -0.198223 2.000000 +v 0.000000 -0.125000 1.000000 +v -0.176777 -0.198223 1.000000 +v -0.250000 -0.375000 1.000000 +v -0.176777 -0.551777 1.000000 +v 0.000000 -0.625000 1.000000 +v 0.176777 -0.551777 1.000000 +v 0.250000 -0.375000 1.000000 +v 0.176777 -0.198223 1.000000 +vt 0.034286 0.057830 +vt 0.022913 0.028986 +vt 0.034286 0.000141 +vt 0.034286 0.058112 +vt 0.045659 0.086957 +vt 0.034286 0.115801 +vt 0.045659 0.028986 +vt 0.042328 0.049382 +vt 0.026244 0.049382 +vt 0.026244 0.008590 +vt 0.042328 0.008590 +vt 0.026244 0.107353 +vt 0.022913 0.086957 +vt 0.026244 0.066561 +vt 0.042328 0.066561 +vt 0.042328 0.107353 +vt 0.091429 0.152174 +vt 0.045714 0.173913 +vt 0.045714 0.152174 +vt 0.091429 0.021739 +vt 0.045714 0.043478 +vt 0.045714 0.021739 +vt 0.091429 0.108696 +vt 0.045714 0.130435 +vt 0.045714 0.108696 +vt 0.091429 0.043478 +vt 0.045714 0.065217 +vt 0.091429 -0.000000 +vt 0.045714 -0.000000 +vt 0.091429 0.130435 +vt 0.091429 0.086957 +vt 0.045714 0.086957 +vt 0.091429 0.065217 +vt 0.091429 0.173913 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 9/1/1 15/2/1 13/3/1 +f 5/4/2 7/5/2 1/6/2 +f 11/7/1 10/8/1 9/1/1 +f 9/1/1 16/9/1 15/2/1 +f 15/2/1 14/10/1 13/3/1 +f 13/3/1 12/11/1 11/7/1 +f 11/7/1 9/1/1 13/3/1 +f 1/6/2 2/12/2 3/13/2 +f 3/13/2 4/14/2 5/4/2 +f 5/4/2 6/15/2 7/5/2 +f 7/5/2 8/16/2 1/6/2 +f 1/6/2 3/13/2 5/4/2 +s 1 +f 12/17/3 5/18/4 4/19/3 +f 14/20/5 7/21/6 6/22/5 +f 10/23/7 3/24/8 2/25/7 +f 15/26/6 8/27/9 7/21/6 +f 13/28/4 6/22/5 5/29/4 +f 11/30/8 4/19/3 3/24/8 +f 9/31/10 2/25/7 1/32/10 +f 16/33/9 1/32/10 8/27/9 +f 12/17/3 13/34/4 5/18/4 +f 14/20/5 15/26/6 7/21/6 +f 10/23/7 11/30/8 3/24/8 +f 15/26/6 16/33/9 8/27/9 +f 13/28/4 14/20/5 6/22/5 +f 11/30/8 12/17/3 4/19/3 +f 9/31/10 10/23/7 2/25/7 +f 16/33/9 9/31/10 1/32/10 +o Extension +v 0.375000 0.375000 3.625000 +v 0.625000 0.375000 3.625000 +v 0.375000 0.625000 3.625000 +v 0.625000 0.625000 3.625000 +v 0.375000 0.625000 7.750000 +v 0.375000 0.375000 7.750000 +v 0.625000 0.375000 7.750000 +v 0.625000 0.625000 7.750000 +v 0.375000 -0.625000 3.625000 +v 0.625000 -0.625000 3.625000 +v 0.375000 -0.375000 3.625000 +v 0.625000 -0.375000 3.625000 +v 0.375000 -0.375000 7.750000 +v 0.375000 -0.625000 7.750000 +v 0.625000 -0.625000 7.750000 +v 0.625000 -0.375000 7.750000 +v 0.625000 0.375000 3.625000 +v 0.625000 0.375000 7.500000 +v 0.625000 -0.375000 3.625000 +v 0.625000 -0.375000 7.500000 +v 0.750000 -0.125000 3.625000 +v 0.750000 -0.125000 7.500000 +v 0.750000 0.125000 3.625000 +v 0.750000 0.125000 7.500000 +v -0.375000 0.375000 3.625000 +v -0.625000 0.375000 3.625000 +v -0.375000 0.625000 3.625000 +v -0.625000 0.625000 3.625000 +v -0.375000 0.625000 7.750000 +v -0.375000 0.375000 7.750000 +v -0.625000 0.375000 7.750000 +v -0.625000 0.625000 7.750000 +v -0.375000 -0.625000 3.625000 +v -0.625000 -0.625000 3.625000 +v -0.375000 -0.375000 3.625000 +v -0.625000 -0.375000 3.625000 +v -0.375000 -0.375000 7.750000 +v -0.375000 -0.625000 7.750000 +v -0.625000 -0.625000 7.750000 +v -0.625000 -0.375000 7.750000 +v -0.625000 0.375000 3.625000 +v -0.625000 0.375000 7.500000 +v -0.625000 -0.375000 3.625000 +v -0.625000 -0.375000 7.500000 +v -0.750000 -0.125000 3.625000 +v -0.750000 -0.125000 7.500000 +v -0.750000 0.125000 3.625000 +v -0.750000 0.125000 7.500000 +v 0.375000 -0.625000 3.625000 +v 0.375000 -0.625000 7.500000 +v -0.375000 -0.625000 3.625000 +v -0.375000 -0.625000 7.500000 +v -0.125000 -0.750000 3.625000 +v -0.125000 -0.750000 7.500000 +v 0.125000 -0.750000 3.625000 +v 0.125000 -0.750000 7.500000 +v 0.375000 0.625000 3.625000 +v 0.375000 0.625000 7.500000 +v -0.375000 0.625000 3.625000 +v -0.375000 0.625000 7.500000 +v -0.125000 0.750000 3.625000 +v -0.125000 0.750000 7.500000 +v 0.125000 0.750000 3.625000 +v 0.125000 0.750000 7.500000 +v 0.000000 1.000000 7.500000 +v -0.500000 0.866025 7.500000 +v -0.866025 0.500000 7.500000 +v -1.000000 0.000000 7.500000 +v -0.866025 -0.500000 7.500000 +v -0.500000 -0.866025 7.500000 +v 0.000000 -1.000000 7.500000 +v 0.500000 -0.866025 7.500000 +v 0.866025 -0.500000 7.500000 +v 1.000000 -0.000000 7.500000 +v 0.866026 0.500000 7.500000 +v 0.500000 0.866025 7.500000 +v 0.000000 1.000000 8.000000 +v -0.500000 0.866025 8.000000 +v -0.866025 0.500000 8.000000 +v -1.000000 0.000000 8.000000 +v -0.866025 -0.500000 8.000000 +v -0.500000 -0.866025 8.000000 +v 0.000000 -1.000000 8.000000 +v 0.500000 -0.866025 8.000000 +v 0.866025 -0.500000 8.000000 +v 1.000000 -0.000000 8.000000 +v 0.866026 0.500000 8.000000 +v 0.500000 0.866025 8.000000 +v 0.000000 0.750000 8.000000 +v -0.375000 0.649519 8.000000 +v -0.649519 0.375000 8.000000 +v -0.750000 0.000000 8.000000 +v -0.649519 -0.375000 8.000000 +v -0.375000 -0.649519 8.000000 +v 0.000000 -0.750000 8.000000 +v 0.375000 -0.649519 8.000000 +v 0.649519 -0.375000 8.000000 +v 0.750000 -0.000000 8.000000 +v 0.649519 0.375000 8.000000 +v 0.375000 0.649519 8.000000 +v 0.000000 0.750000 7.500000 +v -0.375000 0.649519 7.500000 +v -0.649519 0.375000 7.500000 +v -0.750000 0.000000 7.500000 +v -0.649519 -0.375000 7.500000 +v -0.375000 -0.649519 7.500000 +v 0.000000 -0.750000 7.500000 +v 0.375000 -0.649519 7.500000 +v 0.649519 -0.375000 7.500000 +v 0.750000 -0.000000 7.500000 +v 0.649519 0.375000 7.500000 +v 0.375000 0.649519 7.500000 +v 0.031463 -0.156463 6.911612 +v 0.005575 -0.182351 7.000000 +v 0.031463 -0.156463 7.088388 +v 0.093963 -0.093963 7.125000 +v 0.156463 -0.031463 7.088388 +v 0.182351 -0.005574 7.000000 +v 0.156463 -0.031463 6.911612 +v 0.093963 -0.093963 6.875000 +v 0.119851 -0.244851 6.911612 +v 0.093963 -0.270740 7.000000 +v 0.119851 -0.244851 7.088388 +v 0.182351 -0.182351 7.125000 +v 0.244851 -0.119851 7.088388 +v 0.270740 -0.093963 7.000000 +v 0.244851 -0.119851 6.911612 +v 0.182351 -0.182351 6.875000 +v 0.650888 -0.775889 6.911612 +v 0.625000 -0.801776 7.000000 +v 0.650888 -0.775889 7.088388 +v 0.713388 -0.713389 7.125000 +v 0.775889 -0.650889 7.088388 +v 0.801777 -0.625000 7.000000 +v 0.775889 -0.650889 6.911612 +v 0.713388 -0.713389 6.875000 +v 0.146447 -0.396447 6.823223 +v 0.094670 -0.448223 7.000000 +v 0.146447 -0.396447 7.176777 +v 0.271447 -0.271446 7.250000 +v 0.396447 -0.146447 7.176777 +v 0.448223 -0.094670 7.000000 +v 0.396447 -0.146447 6.823223 +v 0.271447 -0.271446 6.750000 +v 0.500000 -0.750000 6.823223 +v 0.448223 -0.801777 7.000000 +v 0.500000 -0.750000 7.176777 +v 0.625000 -0.625000 7.250000 +v 0.750000 -0.500000 7.176777 +v 0.801777 -0.448223 7.000000 +v 0.750000 -0.500000 6.823223 +v 0.625000 -0.625000 6.750000 +v -0.625000 0.625000 6.750000 +v -0.750000 0.500000 6.823223 +v -0.801777 0.448223 7.000000 +v -0.750000 0.500000 7.176777 +v -0.625000 0.625000 7.250000 +v -0.500000 0.750000 7.176777 +v -0.448223 0.801776 7.000000 +v -0.500000 0.750000 6.823223 +v -0.271447 0.271446 6.750000 +v -0.396447 0.146447 6.823223 +v -0.448223 0.094670 7.000000 +v -0.396447 0.146447 7.176777 +v -0.271447 0.271446 7.250000 +v -0.146447 0.396447 7.176777 +v -0.094670 0.448223 7.000000 +v -0.146447 0.396447 6.823223 +v -0.713388 0.713388 6.875000 +v -0.775888 0.650888 6.911612 +v -0.801777 0.625000 7.000000 +v -0.775888 0.650888 7.088388 +v -0.713388 0.713388 7.125000 +v -0.650888 0.775888 7.088388 +v -0.625000 0.801776 7.000000 +v -0.650888 0.775888 6.911612 +v -0.182351 0.182351 6.875000 +v -0.244851 0.119851 6.911612 +v -0.270740 0.093963 7.000000 +v -0.244851 0.119851 7.088388 +v -0.182351 0.182351 7.125000 +v -0.119851 0.244851 7.088388 +v -0.093963 0.270739 7.000000 +v -0.119851 0.244851 6.911612 +v -0.093963 0.093963 6.875000 +v -0.156463 0.031463 6.911612 +v -0.182351 0.005574 7.000000 +v -0.156463 0.031463 7.088388 +v -0.093963 0.093963 7.125000 +v -0.031463 0.156462 7.088388 +v -0.005575 0.182351 7.000000 +v -0.031463 0.156462 6.911612 +v -0.156463 -0.031463 6.911612 +v -0.182351 -0.005575 7.000000 +v -0.156463 -0.031463 7.088388 +v -0.093963 -0.093963 7.125000 +v -0.031463 -0.156463 7.088388 +v -0.005574 -0.182351 7.000000 +v -0.031463 -0.156463 6.911612 +v -0.093963 -0.093963 6.875000 +v -0.244851 -0.119851 6.911612 +v -0.270739 -0.093963 7.000000 +v -0.244851 -0.119851 7.088388 +v -0.182351 -0.182351 7.125000 +v -0.119851 -0.244851 7.088388 +v -0.093963 -0.270740 7.000000 +v -0.119851 -0.244851 6.911612 +v -0.182351 -0.182351 6.875000 +v -0.775888 -0.650888 6.911612 +v -0.801776 -0.625000 7.000000 +v -0.775888 -0.650888 7.088388 +v -0.713388 -0.713388 7.125000 +v -0.650888 -0.775889 7.088388 +v -0.625000 -0.801777 7.000000 +v -0.650888 -0.775889 6.911612 +v -0.713388 -0.713388 6.875000 +v -0.396447 -0.146447 6.823223 +v -0.448223 -0.094670 7.000000 +v -0.396447 -0.146447 7.176777 +v -0.271446 -0.271447 7.250000 +v -0.146447 -0.396447 7.176777 +v -0.094670 -0.448224 7.000000 +v -0.146447 -0.396447 6.823223 +v -0.271446 -0.271447 6.750000 +v -0.750000 -0.500000 6.823223 +v -0.801776 -0.448223 7.000000 +v -0.750000 -0.500000 7.176777 +v -0.625000 -0.625000 7.250000 +v -0.500000 -0.750000 7.176777 +v -0.448223 -0.801777 7.000000 +v -0.500000 -0.750000 6.823223 +v -0.625000 -0.625000 6.750000 +v 0.625000 0.625000 6.750000 +v 0.500000 0.750000 6.823223 +v 0.448223 0.801777 7.000000 +v 0.500000 0.750000 7.176777 +v 0.625000 0.625000 7.250000 +v 0.750000 0.500000 7.176777 +v 0.801776 0.448223 7.000000 +v 0.750000 0.500000 6.823223 +v 0.271446 0.271447 6.750000 +v 0.146447 0.396447 6.823223 +v 0.094670 0.448223 7.000000 +v 0.146447 0.396447 7.176777 +v 0.271446 0.271447 7.250000 +v 0.396447 0.146447 7.176777 +v 0.448223 0.094670 7.000000 +v 0.396447 0.146447 6.823223 +v 0.713388 0.713388 6.875000 +v 0.650888 0.775888 6.911612 +v 0.625000 0.801777 7.000000 +v 0.650888 0.775888 7.088388 +v 0.713388 0.713388 7.125000 +v 0.775888 0.650888 7.088388 +v 0.801776 0.625000 7.000000 +v 0.775888 0.650888 6.911612 +v 0.182351 0.182351 6.875000 +v 0.119851 0.244851 6.911612 +v 0.093963 0.270739 7.000000 +v 0.119851 0.244851 7.088388 +v 0.182351 0.182351 7.125000 +v 0.244851 0.119851 7.088388 +v 0.270740 0.093963 7.000000 +v 0.244851 0.119851 6.911612 +v 0.093963 0.093963 6.875000 +v 0.031463 0.156463 6.911612 +v 0.005574 0.182351 7.000000 +v 0.031463 0.156463 7.088388 +v 0.093963 0.093963 7.125000 +v 0.156463 0.031463 7.088388 +v 0.182351 0.005574 7.000000 +v 0.156463 0.031463 6.911612 +v -0.662913 -0.662912 7.625000 +v -0.600413 -0.725412 7.661612 +v -0.574525 -0.751301 7.750000 +v -0.600413 -0.725412 7.838388 +v -0.662913 -0.662912 7.875000 +v -0.725413 -0.600412 7.838388 +v -0.751301 -0.574524 7.750000 +v -0.725413 -0.600412 7.661612 +v -0.751301 -0.751301 7.625000 +v -0.688802 -0.813801 7.661612 +v -0.662913 -0.839689 7.750000 +v -0.688802 -0.813801 7.838388 +v -0.751301 -0.751301 7.875000 +v -0.813801 -0.688801 7.838388 +v -0.839690 -0.662912 7.750000 +v -0.813801 -0.688801 7.661612 +v 0.662912 -0.662913 7.625000 +v 0.725412 -0.600413 7.661612 +v 0.751301 -0.574525 7.750000 +v 0.725412 -0.600413 7.838388 +v 0.662912 -0.662913 7.875000 +v 0.600412 -0.725413 7.838388 +v 0.574524 -0.751301 7.750000 +v 0.600412 -0.725413 7.661612 +v 0.751301 -0.751301 7.625000 +v 0.813801 -0.688802 7.661612 +v 0.839689 -0.662913 7.750000 +v 0.813801 -0.688802 7.838388 +v 0.751301 -0.751301 7.875000 +v 0.688801 -0.813802 7.838388 +v 0.662912 -0.839690 7.750000 +v 0.688801 -0.813802 7.661612 +v 0.000000 0.937500 7.625000 +v -0.088387 0.937500 7.661612 +v -0.125000 0.937500 7.750000 +v -0.088387 0.937500 7.838388 +v 0.000000 0.937500 7.875000 +v 0.088389 0.937500 7.838388 +v 0.125000 0.937500 7.750000 +v 0.088389 0.937500 7.661612 +v 0.000000 1.062500 7.625000 +v -0.088387 1.062500 7.661612 +v -0.125000 1.062500 7.750000 +v -0.088387 1.062500 7.838388 +v 0.000000 1.062500 7.875000 +v 0.088389 1.062500 7.838388 +v 0.125000 1.062500 7.750000 +v 0.088389 1.062500 7.661612 +v -0.688801 0.813801 7.661612 +v -0.662912 0.839690 7.750000 +v -0.688801 0.813801 7.838388 +v -0.751301 0.751301 7.875000 +v -0.813800 0.688802 7.838388 +v -0.839689 0.662913 7.750000 +v -0.813800 0.688802 7.661612 +v -0.751301 0.751301 7.625000 +v -0.600412 0.725413 7.661612 +v -0.574524 0.751301 7.750000 +v -0.600412 0.725413 7.838388 +v -0.662912 0.662913 7.875000 +v -0.725412 0.600413 7.838388 +v -0.751301 0.574525 7.750000 +v -0.725412 0.600413 7.661612 +v -0.662912 0.662913 7.625000 +v 0.813801 0.688801 7.661612 +v 0.839690 0.662912 7.750000 +v 0.813801 0.688801 7.838388 +v 0.751301 0.751301 7.875000 +v 0.688802 0.813800 7.838388 +v 0.662913 0.839689 7.750000 +v 0.688802 0.813800 7.661612 +v 0.751301 0.751301 7.625000 +v 0.725413 0.600412 7.661612 +v 0.751301 0.574524 7.750000 +v 0.725413 0.600412 7.838388 +v 0.662913 0.662912 7.875000 +v 0.600413 0.725412 7.838388 +v 0.574525 0.751301 7.750000 +v 0.600413 0.725412 7.661612 +v 0.662913 0.662912 7.625000 +v -0.937500 0.000000 7.625000 +v -0.937500 -0.088388 7.661612 +v -0.937500 -0.125000 7.750000 +v -0.937500 -0.088388 7.838388 +v -0.937500 0.000000 7.875000 +v -0.937500 0.088389 7.838388 +v -0.937500 0.125000 7.750000 +v -0.937500 0.088389 7.661612 +v -1.062500 0.000000 7.625000 +v -1.062500 -0.088388 7.661612 +v -1.062500 -0.125000 7.750000 +v -1.062500 -0.088388 7.838388 +v -1.062500 0.000000 7.875000 +v -1.062500 0.088389 7.838388 +v -1.062500 0.125000 7.750000 +v -1.062500 0.088389 7.661612 +v 1.062500 -0.088389 7.661612 +v 1.062500 -0.125001 7.750000 +v 1.062500 -0.088389 7.838388 +v 1.062500 -0.000001 7.875000 +v 1.062500 0.088387 7.838388 +v 1.062500 0.124999 7.750000 +v 1.062500 0.088387 7.661612 +v 1.062500 -0.000001 7.625000 +v 0.937500 -0.088389 7.661612 +v 0.937500 -0.125001 7.750000 +v 0.937500 -0.088389 7.838388 +v 0.937500 -0.000001 7.875000 +v 0.937500 0.088387 7.838388 +v 0.937500 0.124999 7.750000 +v 0.937500 0.088387 7.661612 +v 0.937500 -0.000001 7.625000 +v -0.088389 -1.062500 7.661612 +v -0.125000 -1.062500 7.750000 +v -0.088389 -1.062500 7.838388 +v -0.000000 -1.062500 7.875000 +v 0.088387 -1.062500 7.838388 +v 0.125000 -1.062500 7.750000 +v 0.088387 -1.062500 7.661612 +v -0.000000 -1.062500 7.625000 +v -0.088389 -0.937500 7.661612 +v -0.125000 -0.937500 7.750000 +v -0.088389 -0.937500 7.838388 +v -0.000000 -0.937500 7.875000 +v 0.088387 -0.937500 7.838388 +v 0.125000 -0.937500 7.750000 +v 0.088387 -0.937500 7.661612 +v -0.000000 -0.937500 7.625000 +v 0.031463 -0.156463 4.536612 +v 0.005575 -0.182351 4.625000 +v 0.031463 -0.156463 4.713388 +v 0.093963 -0.093963 4.750000 +v 0.156463 -0.031463 4.713388 +v 0.182351 -0.005574 4.625000 +v 0.156463 -0.031463 4.536612 +v 0.093963 -0.093963 4.500000 +v 0.119851 -0.244851 4.536612 +v 0.093963 -0.270740 4.625000 +v 0.119851 -0.244851 4.713388 +v 0.182351 -0.182351 4.750000 +v 0.244851 -0.119851 4.713388 +v 0.270740 -0.093963 4.625000 +v 0.244851 -0.119851 4.536612 +v 0.182351 -0.182351 4.500000 +v 0.650888 -0.775888 4.536612 +v 0.625000 -0.801776 4.625000 +v 0.650888 -0.775888 4.713388 +v 0.713388 -0.713388 4.750000 +v 0.775889 -0.650889 4.713388 +v 0.801777 -0.625000 4.625000 +v 0.775889 -0.650889 4.536612 +v 0.713388 -0.713388 4.500000 +v 0.146447 -0.396447 4.448223 +v 0.094670 -0.448223 4.625000 +v 0.146447 -0.396447 4.801777 +v 0.271447 -0.271446 4.875000 +v 0.396447 -0.146447 4.801777 +v 0.448223 -0.094670 4.625000 +v 0.396447 -0.146447 4.448223 +v 0.271447 -0.271446 4.375000 +v 0.500000 -0.750000 4.448223 +v 0.448223 -0.801777 4.625000 +v 0.500000 -0.750000 4.801777 +v 0.625000 -0.625000 4.875000 +v 0.750000 -0.500000 4.801777 +v 0.801777 -0.448223 4.625000 +v 0.750000 -0.500000 4.448223 +v 0.625000 -0.625000 4.375000 +v -0.625000 0.625000 4.375000 +v -0.750000 0.500000 4.448223 +v -0.801777 0.448223 4.625000 +v -0.750000 0.500000 4.801777 +v -0.625000 0.625000 4.875000 +v -0.500000 0.750000 4.801777 +v -0.448223 0.801776 4.625000 +v -0.500000 0.750000 4.448223 +v -0.271447 0.271446 4.375000 +v -0.396447 0.146447 4.448223 +v -0.448223 0.094670 4.625000 +v -0.396447 0.146447 4.801777 +v -0.271447 0.271446 4.875000 +v -0.146447 0.396446 4.801777 +v -0.094670 0.448223 4.625000 +v -0.146447 0.396446 4.448223 +v -0.713388 0.713388 4.500000 +v -0.775888 0.650888 4.536612 +v -0.801777 0.625000 4.625000 +v -0.775888 0.650888 4.713388 +v -0.713388 0.713388 4.750000 +v -0.650888 0.775888 4.713388 +v -0.625000 0.801776 4.625000 +v -0.650888 0.775888 4.536612 +v -0.182351 0.182351 4.500000 +v -0.244851 0.119851 4.536612 +v -0.270740 0.093962 4.625000 +v -0.244851 0.119851 4.713388 +v -0.182351 0.182351 4.750000 +v -0.119851 0.244851 4.713388 +v -0.093963 0.270739 4.625000 +v -0.119851 0.244851 4.536612 +v -0.093963 0.093962 4.500000 +v -0.156463 0.031462 4.536612 +v -0.182351 0.005574 4.625000 +v -0.156463 0.031462 4.713388 +v -0.093963 0.093962 4.750000 +v -0.031463 0.156462 4.713388 +v -0.005575 0.182351 4.625000 +v -0.031463 0.156462 4.536612 +v -0.156463 -0.031463 4.536612 +v -0.182351 -0.005575 4.625000 +v -0.156463 -0.031463 4.713388 +v -0.093963 -0.093963 4.750000 +v -0.031463 -0.156463 4.713388 +v -0.005574 -0.182351 4.625000 +v -0.031463 -0.156463 4.536612 +v -0.093963 -0.093963 4.500000 +v -0.244851 -0.119851 4.536612 +v -0.270739 -0.093963 4.625000 +v -0.244851 -0.119851 4.713388 +v -0.182351 -0.182351 4.750000 +v -0.119851 -0.244851 4.713388 +v -0.093963 -0.270740 4.625000 +v -0.119851 -0.244851 4.536612 +v -0.182351 -0.182351 4.500000 +v -0.775888 -0.650888 4.536612 +v -0.801776 -0.625000 4.625000 +v -0.775888 -0.650888 4.713388 +v -0.713388 -0.713388 4.750000 +v -0.650888 -0.775889 4.713388 +v -0.625000 -0.801777 4.625000 +v -0.650888 -0.775889 4.536612 +v -0.713388 -0.713388 4.500000 +v -0.396447 -0.146447 4.448223 +v -0.448223 -0.094670 4.625000 +v -0.396447 -0.146447 4.801777 +v -0.271446 -0.271447 4.875000 +v -0.146447 -0.396447 4.801777 +v -0.094670 -0.448224 4.625000 +v -0.146447 -0.396447 4.448223 +v -0.271446 -0.271447 4.375000 +v -0.750000 -0.500000 4.448223 +v -0.801776 -0.448223 4.625000 +v -0.750000 -0.500000 4.801777 +v -0.625000 -0.625000 4.875000 +v -0.500000 -0.750000 4.801777 +v -0.448223 -0.801777 4.625000 +v -0.500000 -0.750000 4.448223 +v -0.625000 -0.625000 4.375000 +v 0.625000 0.625000 4.375000 +v 0.500000 0.750000 4.448223 +v 0.448223 0.801777 4.625000 +v 0.500000 0.750000 4.801777 +v 0.625000 0.625000 4.875000 +v 0.750000 0.500000 4.801777 +v 0.801776 0.448223 4.625000 +v 0.750000 0.500000 4.448223 +v 0.271446 0.271447 4.375000 +v 0.146447 0.396447 4.448223 +v 0.094670 0.448223 4.625000 +v 0.146447 0.396447 4.801777 +v 0.271446 0.271447 4.875000 +v 0.396447 0.146446 4.801777 +v 0.448223 0.094670 4.625000 +v 0.396447 0.146446 4.448223 +v 0.713388 0.713388 4.500000 +v 0.650888 0.775888 4.536612 +v 0.625000 0.801777 4.625000 +v 0.650888 0.775888 4.713388 +v 0.713388 0.713388 4.750000 +v 0.775888 0.650888 4.713388 +v 0.801776 0.625000 4.625000 +v 0.775888 0.650888 4.536612 +v 0.182351 0.182351 4.500000 +v 0.119851 0.244851 4.536612 +v 0.093963 0.270740 4.625000 +v 0.119851 0.244851 4.713388 +v 0.182351 0.182351 4.750000 +v 0.244851 0.119851 4.713388 +v 0.270740 0.093963 4.625000 +v 0.244851 0.119851 4.536612 +v 0.093963 0.093963 4.500000 +v 0.031463 0.156463 4.536612 +v 0.005574 0.182351 4.625000 +v 0.031463 0.156463 4.713388 +v 0.093963 0.093963 4.750000 +v 0.156463 0.031463 4.713388 +v 0.182351 0.005574 4.625000 +v 0.156463 0.031463 4.536612 +vt 1.000000 0.985507 +vt 0.811429 0.956522 +vt 1.000000 0.956522 +vt 1.000000 0.927536 +vt 0.811429 0.898551 +vt 1.000000 0.898551 +vt 0.811429 0.927536 +vt 0.811429 0.869565 +vt 1.000000 0.869565 +vt 1.000000 0.985507 +vt 0.811429 0.956522 +vt 1.000000 0.956522 +vt 1.000000 0.927536 +vt 0.811429 0.898551 +vt 1.000000 0.898551 +vt 0.811429 0.927536 +vt 0.811429 0.869565 +vt 1.000000 0.869565 +vt 0.811429 0.985507 +vt 1.000000 0.956522 +vt 1.000000 0.985507 +vt 0.811429 0.927536 +vt 1.000000 0.898551 +vt 1.000000 0.927536 +vt 0.811429 0.898551 +vt 1.000000 0.869565 +vt 0.811429 0.956522 +vt 0.811429 0.985507 +vt 1.000000 0.956522 +vt 1.000000 0.985507 +vt 0.811429 0.927536 +vt 1.000000 0.898551 +vt 1.000000 0.927536 +vt 0.811429 0.898551 +vt 1.000000 0.869565 +vt 0.811429 0.956522 +vt 0.965714 0.695652 +vt 0.977143 0.644928 +vt 0.977143 0.688406 +vt 0.965714 0.115942 +vt 0.977143 0.166667 +vt 0.965714 0.173913 +vt 0.965714 0.405797 +vt 0.977143 0.456522 +vt 0.965714 0.463768 +vt 0.965714 0.289855 +vt 0.977143 0.340580 +vt 0.965714 0.347826 +vt 0.965714 0.579710 +vt 0.977143 0.630435 +vt 0.965714 0.637681 +vt 0.965714 0.057971 +vt 0.977143 0.108696 +vt 0.977143 0.355072 +vt 0.977143 0.398551 +vt 0.965714 0.231884 +vt 0.977143 0.282609 +vt 0.977143 0.528986 +vt 0.977143 0.572464 +vt 0.965714 0.000000 +vt 0.977143 0.050725 +vt 0.977143 0.224638 +vt 0.965714 0.521739 +vt 0.977143 0.471014 +vt 0.977143 0.514493 +vt 0.942857 0.405797 +vt 0.931429 0.355072 +vt 0.942857 0.347826 +vt 0.931429 0.340580 +vt 0.942857 0.289855 +vt 0.931429 0.282609 +vt 0.942857 0.231884 +vt 0.931429 0.224638 +vt 0.942857 0.173913 +vt 0.931429 0.166667 +vt 0.942857 0.115942 +vt 0.931429 0.108696 +vt 0.942857 0.057971 +vt 0.931429 0.050725 +vt 0.942857 0.000000 +vt 0.942857 0.695652 +vt 0.931429 0.644928 +vt 0.942857 0.637681 +vt 0.931429 0.630435 +vt 0.942857 0.579710 +vt 0.931429 0.528986 +vt 0.942857 0.521739 +vt 0.931429 0.471014 +vt 0.942857 0.463768 +vt 0.931429 0.456522 +vt 0.800000 0.956522 +vt 0.800000 0.985507 +vt 0.811429 0.985507 +vt 0.800000 0.985507 +vt 0.811429 0.985507 +vt 0.800000 0.956522 +vt 0.028571 0.144923 +vt 0.034287 0.159420 +vt 0.028571 0.173917 +vt 0.034287 0.304348 +vt 0.028571 0.318845 +vt 0.022855 0.304348 +vt 0.028571 0.144923 +vt 0.034287 0.159420 +vt 0.028571 0.173917 +vt 0.034287 0.304348 +vt 0.028571 0.318845 +vt 0.022855 0.304348 +vt 0.028571 0.144923 +vt 0.034287 0.159420 +vt 0.028571 0.173917 +vt 0.034287 0.304348 +vt 0.028571 0.318845 +vt 0.022855 0.304348 +vt 0.034287 0.304348 +vt 0.028571 0.318845 +vt 0.022855 0.304348 +vt 0.028571 0.144923 +vt 0.034287 0.159420 +vt 0.028571 0.173917 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.028571 0.144923 +vt 0.034287 0.159420 +vt 0.028571 0.173917 +vt 0.034287 0.304348 +vt 0.028571 0.318845 +vt 0.022855 0.304348 +vt 0.028571 0.144923 +vt 0.034287 0.159420 +vt 0.028571 0.173917 +vt 0.034287 0.304348 +vt 0.028571 0.318845 +vt 0.022855 0.304348 +vt 0.028571 0.144923 +vt 0.034287 0.159420 +vt 0.028571 0.173917 +vt 0.034287 0.304348 +vt 0.028571 0.318845 +vt 0.022855 0.304348 +vt 0.034287 0.304348 +vt 0.028571 0.318845 +vt 0.022855 0.304348 +vt 0.028571 0.144923 +vt 0.034287 0.159420 +vt 0.028571 0.173917 +vt 0.811429 0.869565 +vt 0.811429 0.869565 +vt 0.977143 0.123188 +vt 0.977143 0.413043 +vt 0.977143 0.297101 +vt 0.977143 0.586957 +vt 0.977143 0.065217 +vt 0.977143 0.239130 +vt 0.977143 0.007246 +vt 0.977143 0.181159 +vt 0.931429 0.398551 +vt 0.931429 0.297101 +vt 0.931429 0.239130 +vt 0.931429 0.181159 +vt 0.931429 0.123188 +vt 0.931429 0.065217 +vt 0.931429 0.007246 +vt 0.931429 0.688406 +vt 0.931429 0.586957 +vt 0.931429 0.572464 +vt 0.931429 0.514493 +vt 0.931429 0.413043 +vt 0.800000 0.985507 +vt 0.800000 0.956522 +vt 0.800000 0.956522 +vt 0.800000 0.985507 +vt 0.022856 0.159420 +vt 0.024530 0.149169 +vt 0.032613 0.149169 +vt 0.032613 0.169671 +vt 0.024530 0.169671 +vt 0.028571 0.289851 +vt 0.032613 0.294097 +vt 0.032613 0.314599 +vt 0.024530 0.314599 +vt 0.024530 0.294097 +vt 0.022856 0.159420 +vt 0.024530 0.149169 +vt 0.032613 0.149169 +vt 0.032613 0.169671 +vt 0.024530 0.169671 +vt 0.028571 0.289851 +vt 0.032613 0.294097 +vt 0.032613 0.314599 +vt 0.024530 0.314599 +vt 0.024530 0.294097 +vt 0.022856 0.159420 +vt 0.024530 0.149169 +vt 0.032613 0.149169 +vt 0.032613 0.169671 +vt 0.024530 0.169671 +vt 0.028571 0.289851 +vt 0.032613 0.294097 +vt 0.032613 0.314599 +vt 0.024530 0.314599 +vt 0.024530 0.294097 +vt 0.028571 0.289851 +vt 0.032613 0.294097 +vt 0.032613 0.314599 +vt 0.024530 0.314599 +vt 0.024530 0.294097 +vt 0.022856 0.159420 +vt 0.024530 0.149169 +vt 0.032613 0.149169 +vt 0.032613 0.169671 +vt 0.024530 0.169671 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.022856 0.159420 +vt 0.024530 0.149169 +vt 0.032613 0.149169 +vt 0.032613 0.169671 +vt 0.024530 0.169671 +vt 0.028571 0.289851 +vt 0.032613 0.294097 +vt 0.032613 0.314599 +vt 0.024530 0.314599 +vt 0.024530 0.294097 +vt 0.022856 0.159420 +vt 0.024530 0.149169 +vt 0.032613 0.149169 +vt 0.032613 0.169671 +vt 0.024530 0.169671 +vt 0.028571 0.289851 +vt 0.032613 0.294097 +vt 0.032613 0.314599 +vt 0.024530 0.314599 +vt 0.024530 0.294097 +vt 0.022856 0.159420 +vt 0.024530 0.149169 +vt 0.032613 0.149169 +vt 0.032613 0.169671 +vt 0.024530 0.169671 +vt 0.028571 0.289851 +vt 0.032613 0.294097 +vt 0.032613 0.314599 +vt 0.024530 0.314599 +vt 0.024530 0.294097 +vt 0.028571 0.289851 +vt 0.032613 0.294097 +vt 0.032613 0.314599 +vt 0.024530 0.314599 +vt 0.024530 0.294097 +vt 0.022856 0.159420 +vt 0.024530 0.149169 +vt 0.032613 0.149169 +vt 0.032613 0.169671 +vt 0.024530 0.169671 +vt 0.822857 0.840580 +vt 1.000000 0.869565 +vt 0.822857 0.869565 +vt 1.000000 0.840580 +vt 0.822857 0.811594 +vt 1.000000 0.811594 +vt 1.000000 0.695652 +vt 0.822857 0.724638 +vt 0.822857 0.695652 +vt 0.822857 0.782609 +vt 1.000000 0.753623 +vt 1.000000 0.782609 +vt 1.000000 0.724638 +vt 0.822857 0.869565 +vt 1.000000 0.869565 +vt 1.000000 0.782609 +vt 0.822857 0.782609 +vt 0.822857 0.753623 +vt 1.000000 0.782609 +vt 0.822857 0.782609 +vt 1.000000 0.724638 +vt 0.822857 0.695652 +vt 1.000000 0.695652 +vt 1.000000 0.753623 +vt 1.000000 0.811594 +vt 0.822857 0.782609 +vt 1.000000 0.782609 +vt 1.000000 0.840580 +vt 1.000000 0.166667 +vt 1.000000 0.456522 +vt 1.000000 0.340580 +vt 1.000000 0.630435 +vt 1.000000 0.108696 +vt 1.000000 0.398551 +vt 1.000000 0.282609 +vt 1.000000 0.572464 +vt 1.000000 0.050725 +vt 1.000000 0.224638 +vt 1.000000 0.514493 +vt 1.000000 0.688406 +vt 0.040000 0.210145 +vt 0.045714 0.188406 +vt 0.048571 0.210145 +vt 0.054286 0.188406 +vt 0.057143 0.210145 +vt 0.057143 0.173913 +vt 0.062857 0.188406 +vt 0.057143 0.188406 +vt 0.065714 0.173913 +vt 0.071429 0.188406 +vt 0.065714 0.188406 +vt 0.074286 0.188406 +vt 0.082857 0.210145 +vt 0.074286 0.210145 +vt 0.082857 0.188406 +vt 0.091429 0.210145 +vt 0.031429 0.188406 +vt 0.037143 0.173913 +vt 0.037143 0.188406 +vt 0.022857 0.173913 +vt 0.028571 0.188406 +vt 0.022857 0.188406 +vt 0.022857 0.210145 +vt 0.031429 0.210145 +vt 0.048571 0.188406 +vt 0.054286 0.173913 +vt 0.040000 0.173913 +vt 0.040000 0.188406 +vt 0.065714 0.210145 +vt 0.074286 0.173913 +vt 0.080000 0.188406 +vt 0.088571 0.173913 +vt 0.088571 0.188406 +vt 0.040000 0.268116 +vt 0.031429 0.289855 +vt 0.031429 0.268116 +vt 0.071429 0.289855 +vt 0.065714 0.268116 +vt 0.074286 0.268116 +vt 0.028571 0.289855 +vt 0.022857 0.268116 +vt 0.062857 0.289855 +vt 0.057143 0.268116 +vt 0.091429 0.268116 +vt 0.082857 0.289855 +vt 0.082857 0.268116 +vt 0.045714 0.289855 +vt 0.048571 0.268116 +vt 0.080000 0.289855 +vt 0.048571 0.289855 +vt 0.071429 0.289855 +vt 0.065714 0.268116 +vt 0.074286 0.268116 +vt 0.088571 0.289855 +vt 0.082857 0.268116 +vt 0.091429 0.268116 +vt 0.054286 0.289855 +vt 0.048571 0.268116 +vt 0.057143 0.268116 +vt 0.065714 0.210145 +vt 0.062857 0.289855 +vt 0.080000 0.289855 +vt 0.040000 0.268116 +vt 0.048571 0.210145 +vt 0.031429 0.268116 +vt 0.022857 0.289855 +vt 0.022857 0.268116 +vt 0.045714 0.289855 +vt 0.031429 0.210145 +vt 0.091429 0.210145 +vt 0.065714 0.188406 +vt 0.074286 0.210145 +vt 0.082857 0.210145 +vt 0.037143 0.188406 +vt 0.040000 0.210145 +vt 0.031429 0.289855 +vt 0.040000 0.188406 +vt 0.045714 0.173913 +vt 0.045714 0.188406 +vt 0.074286 0.188406 +vt 0.080000 0.173913 +vt 0.080000 0.188406 +vt 0.048571 0.173913 +vt 0.054286 0.188406 +vt 0.048571 0.188406 +vt 0.057143 0.210145 +vt 0.062857 0.188406 +vt 0.082857 0.188406 +vt 0.088571 0.173913 +vt 0.088571 0.188406 +vt 0.031429 0.188406 +vt 0.037143 0.173913 +vt 0.022857 0.210145 +vt 0.028571 0.188406 +vt 0.065714 0.173913 +vt 0.071429 0.188406 +vt 0.022857 0.188406 +vt 0.028571 0.173913 +vt 0.057143 0.173913 +vt 0.057143 0.188406 +vt 0.040000 0.188406 +vt 0.048571 0.210145 +vt 0.040000 0.210145 +vt 0.048571 0.188406 +vt 0.057143 0.210145 +vt 0.057143 0.173913 +vt 0.062857 0.188406 +vt 0.057143 0.188406 +vt 0.065714 0.188406 +vt 0.071429 0.173913 +vt 0.071429 0.188406 +vt 0.074286 0.210145 +vt 0.080000 0.188406 +vt 0.082857 0.210145 +vt 0.082857 0.188406 +vt 0.091429 0.210145 +vt 0.031429 0.188406 +vt 0.037143 0.173913 +vt 0.037143 0.188406 +vt 0.022857 0.188406 +vt 0.028571 0.173913 +vt 0.028571 0.188406 +vt 0.022857 0.210145 +vt 0.031429 0.210145 +vt 0.048571 0.173913 +vt 0.054286 0.188406 +vt 0.040000 0.173913 +vt 0.045714 0.188406 +vt 0.065714 0.210145 +vt 0.074286 0.188406 +vt 0.080000 0.173913 +vt 0.088571 0.173913 +vt 0.088571 0.188406 +vt 0.040000 0.268116 +vt 0.031429 0.289855 +vt 0.031429 0.268116 +vt 0.071429 0.289855 +vt 0.065714 0.268116 +vt 0.074286 0.268116 +vt 0.022857 0.289855 +vt 0.022857 0.268116 +vt 0.057143 0.289855 +vt 0.057143 0.268116 +vt 0.091429 0.268116 +vt 0.082857 0.289855 +vt 0.082857 0.268116 +vt 0.045714 0.289855 +vt 0.048571 0.268116 +vt 0.080000 0.289855 +vt 0.054286 0.289855 +vt 0.048571 0.210145 +vt 0.057143 0.268116 +vt 0.048571 0.268116 +vt 0.031429 0.268116 +vt 0.040000 0.210145 +vt 0.040000 0.268116 +vt 0.082857 0.210145 +vt 0.091429 0.268116 +vt 0.082857 0.268116 +vt 0.065714 0.210145 +vt 0.074286 0.268116 +vt 0.065714 0.268116 +vt 0.022857 0.268116 +vt 0.031429 0.210145 +vt 0.048571 0.289855 +vt 0.031429 0.289855 +vt 0.082857 0.289855 +vt 0.071429 0.289855 +vt 0.045714 0.289855 +vt 0.022857 0.289855 +vt 0.074286 0.289855 +vt 0.062857 0.289855 +vt 0.065714 0.188406 +vt 0.074286 0.210145 +vt 0.040000 0.188406 +vt 0.022857 0.210145 +vt 0.028571 0.188406 +vt 0.080000 0.188406 +vt 0.057143 0.210145 +vt 0.062857 0.188406 +vt 0.054286 0.188406 +vt 0.037143 0.188406 +vt 0.082857 0.188406 +vt 0.091429 0.210145 +vt 0.074286 0.188406 +vt 0.080000 0.173913 +vt 0.057143 0.173913 +vt 0.057143 0.188406 +vt 0.048571 0.173913 +vt 0.048571 0.188406 +vt 0.031429 0.173913 +vt 0.031429 0.188406 +vt 0.082857 0.173913 +vt 0.088571 0.188406 +vt 0.065714 0.173913 +vt 0.071429 0.188406 +vt 0.040000 0.173913 +vt 0.045714 0.188406 +vt 0.022857 0.173913 +vt 0.022857 0.188406 +vt 0.811429 0.347826 +vt 0.805714 0.362319 +vt 0.805714 0.347826 +vt 0.834286 0.347826 +vt 0.828571 0.362319 +vt 0.828571 0.347826 +vt 0.800000 0.347826 +vt 0.800000 0.362319 +vt 0.794286 0.347826 +vt 0.794286 0.362319 +vt 0.817143 0.347826 +vt 0.811429 0.362319 +vt 0.822857 0.362319 +vt 0.817143 0.362319 +vt 0.822857 0.347826 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.822857 0.347826 +vt 0.817143 0.362319 +vt 0.817143 0.347826 +vt 0.800000 0.347826 +vt 0.805714 0.362319 +vt 0.800000 0.362319 +vt 0.811429 0.362319 +vt 0.811429 0.347826 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.828571 0.347826 +vt 0.822857 0.362319 +vt 0.828571 0.362319 +vt 0.805714 0.347826 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.828571 0.347826 +vt 0.822857 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.347826 +vt 0.811429 0.362319 +vt 0.811429 0.347826 +vt 0.805714 0.347826 +vt 0.800000 0.362319 +vt 0.800000 0.347826 +vt 0.828571 0.362319 +vt 0.817143 0.362319 +vt 0.805714 0.362319 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.822857 0.347826 +vt 0.817143 0.362319 +vt 0.817143 0.347826 +vt 0.811429 0.362319 +vt 0.811429 0.347826 +vt 0.828571 0.347826 +vt 0.822857 0.362319 +vt 0.834286 0.347826 +vt 0.828571 0.362319 +vt 0.805714 0.347826 +vt 0.800000 0.362319 +vt 0.800000 0.347826 +vt 0.794286 0.347826 +vt 0.794286 0.362319 +vt 0.805714 0.362319 +vt 0.840000 0.362319 +vt 0.834286 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.805714 0.347826 +vt 0.811429 0.362319 +vt 0.805714 0.362319 +vt 0.794286 0.347826 +vt 0.800000 0.362319 +vt 0.794286 0.362319 +vt 0.828571 0.347826 +vt 0.828571 0.362319 +vt 0.817143 0.347826 +vt 0.811429 0.347826 +vt 0.822857 0.362319 +vt 0.817143 0.362319 +vt 0.800000 0.347826 +vt 0.822857 0.347826 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.817143 0.347826 +vt 0.822857 0.362319 +vt 0.817143 0.362319 +vt 0.805714 0.347826 +vt 0.800000 0.362319 +vt 0.800000 0.347826 +vt 0.811429 0.362319 +vt 0.811429 0.347826 +vt 0.794286 0.347826 +vt 0.794286 0.362319 +vt 0.828571 0.347826 +vt 0.822857 0.347826 +vt 0.828571 0.362319 +vt 0.805714 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.811429 0.347826 +vt 0.805714 0.362319 +vt 0.805714 0.347826 +vt 0.800000 0.347826 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.828571 0.362319 +vt 0.828571 0.347826 +vt 0.817143 0.347826 +vt 0.811429 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.362319 +vt 0.800000 0.362319 +vt 0.822857 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.811429 0.347826 +vt 0.805714 0.362319 +vt 0.805714 0.347826 +vt 0.800000 0.347826 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.828571 0.362319 +vt 0.828571 0.347826 +vt 0.817143 0.347826 +vt 0.811429 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.362319 +vt 0.800000 0.362319 +vt 0.822857 0.362319 +vt 0.040000 0.188406 +vt 0.048571 0.210145 +vt 0.040000 0.210145 +vt 0.048571 0.188406 +vt 0.057143 0.210145 +vt 0.057143 0.173913 +vt 0.062857 0.188406 +vt 0.057143 0.188406 +vt 0.065714 0.173913 +vt 0.071429 0.188406 +vt 0.065714 0.188406 +vt 0.074286 0.188406 +vt 0.082857 0.210145 +vt 0.074286 0.210145 +vt 0.082857 0.188406 +vt 0.091429 0.210145 +vt 0.031429 0.188406 +vt 0.037143 0.173913 +vt 0.037143 0.188406 +vt 0.022857 0.173913 +vt 0.028571 0.188406 +vt 0.022857 0.188406 +vt 0.022857 0.210145 +vt 0.031429 0.210145 +vt 0.054286 0.173913 +vt 0.054286 0.188406 +vt 0.040000 0.173913 +vt 0.045714 0.188406 +vt 0.065714 0.210145 +vt 0.080000 0.173913 +vt 0.080000 0.188406 +vt 0.082857 0.173913 +vt 0.088571 0.188406 +vt 0.040000 0.268116 +vt 0.031429 0.289855 +vt 0.031429 0.268116 +vt 0.071429 0.289855 +vt 0.065714 0.268116 +vt 0.074286 0.268116 +vt 0.028571 0.289855 +vt 0.022857 0.268116 +vt 0.057143 0.289855 +vt 0.057143 0.268116 +vt 0.091429 0.268116 +vt 0.082857 0.289855 +vt 0.082857 0.268116 +vt 0.045714 0.289855 +vt 0.048571 0.268116 +vt 0.074286 0.289855 +vt 0.048571 0.289855 +vt 0.074286 0.268116 +vt 0.065714 0.289855 +vt 0.065714 0.268116 +vt 0.088571 0.289855 +vt 0.082857 0.268116 +vt 0.091429 0.268116 +vt 0.057143 0.268116 +vt 0.048571 0.289855 +vt 0.048571 0.268116 +vt 0.065714 0.210145 +vt 0.062857 0.289855 +vt 0.080000 0.289855 +vt 0.040000 0.210145 +vt 0.040000 0.268116 +vt 0.031429 0.268116 +vt 0.022857 0.289855 +vt 0.022857 0.268116 +vt 0.045714 0.289855 +vt 0.031429 0.210145 +vt 0.082857 0.210145 +vt 0.065714 0.188406 +vt 0.074286 0.210145 +vt 0.048571 0.210145 +vt 0.037143 0.188406 +vt 0.031429 0.289855 +vt 0.040000 0.173913 +vt 0.045714 0.188406 +vt 0.040000 0.188406 +vt 0.074286 0.188406 +vt 0.080000 0.173913 +vt 0.080000 0.188406 +vt 0.048571 0.173913 +vt 0.054286 0.188406 +vt 0.048571 0.188406 +vt 0.057143 0.188406 +vt 0.057143 0.210145 +vt 0.082857 0.188406 +vt 0.088571 0.173913 +vt 0.088571 0.188406 +vt 0.031429 0.188406 +vt 0.037143 0.173913 +vt 0.022857 0.188406 +vt 0.022857 0.210145 +vt 0.065714 0.173913 +vt 0.071429 0.188406 +vt 0.091429 0.210145 +vt 0.022857 0.173913 +vt 0.028571 0.188406 +vt 0.057143 0.173913 +vt 0.062857 0.188406 +vt 0.040000 0.210145 +vt 0.045714 0.188406 +vt 0.048571 0.210145 +vt 0.048571 0.188406 +vt 0.057143 0.210145 +vt 0.057143 0.173913 +vt 0.062857 0.188406 +vt 0.057143 0.188406 +vt 0.065714 0.173913 +vt 0.071429 0.188406 +vt 0.065714 0.188406 +vt 0.074286 0.210145 +vt 0.080000 0.188406 +vt 0.082857 0.210145 +vt 0.082857 0.188406 +vt 0.091429 0.210145 +vt 0.031429 0.188406 +vt 0.037143 0.173913 +vt 0.037143 0.188406 +vt 0.022857 0.188406 +vt 0.028571 0.173913 +vt 0.028571 0.188406 +vt 0.022857 0.210145 +vt 0.031429 0.210145 +vt 0.048571 0.173913 +vt 0.054286 0.188406 +vt 0.040000 0.173913 +vt 0.040000 0.188406 +vt 0.065714 0.210145 +vt 0.074286 0.188406 +vt 0.080000 0.173913 +vt 0.082857 0.173913 +vt 0.088571 0.188406 +vt 0.040000 0.268116 +vt 0.031429 0.289855 +vt 0.031429 0.268116 +vt 0.071429 0.289855 +vt 0.065714 0.268116 +vt 0.074286 0.268116 +vt 0.022857 0.289855 +vt 0.022857 0.268116 +vt 0.057143 0.289855 +vt 0.057143 0.268116 +vt 0.091429 0.268116 +vt 0.082857 0.289855 +vt 0.082857 0.268116 +vt 0.045714 0.289855 +vt 0.048571 0.268116 +vt 0.080000 0.289855 +vt 0.048571 0.289855 +vt 0.048571 0.268116 +vt 0.057143 0.210145 +vt 0.057143 0.268116 +vt 0.031429 0.210145 +vt 0.040000 0.268116 +vt 0.031429 0.268116 +vt 0.082857 0.210145 +vt 0.091429 0.268116 +vt 0.082857 0.268116 +vt 0.065714 0.210145 +vt 0.074286 0.268116 +vt 0.065714 0.268116 +vt 0.048571 0.210145 +vt 0.022857 0.210145 +vt 0.022857 0.268116 +vt 0.048571 0.289855 +vt 0.031429 0.289855 +vt 0.088571 0.289855 +vt 0.071429 0.289855 +vt 0.040000 0.289855 +vt 0.028571 0.289855 +vt 0.074286 0.289855 +vt 0.062857 0.289855 +vt 0.065714 0.188406 +vt 0.074286 0.210145 +vt 0.040000 0.188406 +vt 0.040000 0.210145 +vt 0.022857 0.188406 +vt 0.080000 0.188406 +vt 0.062857 0.188406 +vt 0.048571 0.188406 +vt 0.037143 0.188406 +vt 0.082857 0.188406 +vt 0.091429 0.210145 +vt 0.074286 0.188406 +vt 0.080000 0.173913 +vt 0.057143 0.173913 +vt 0.057143 0.188406 +vt 0.048571 0.173913 +vt 0.054286 0.188406 +vt 0.031429 0.188406 +vt 0.037143 0.173913 +vt 0.088571 0.173913 +vt 0.088571 0.188406 +vt 0.065714 0.173913 +vt 0.071429 0.188406 +vt 0.040000 0.173913 +vt 0.045714 0.188406 +vt 0.028571 0.173913 +vt 0.028571 0.188406 +vt 0.822857 0.840580 +vt 0.822857 0.753623 +vt 0.822857 0.724638 +vt 0.822857 0.811594 +vt 1.000000 0.123188 +vt 1.000000 0.413043 +vt 1.000000 0.297101 +vt 1.000000 0.586957 +vt 1.000000 0.065217 +vt 1.000000 0.355072 +vt 1.000000 0.239130 +vt 1.000000 0.528986 +vt 1.000000 0.007246 +vt 1.000000 0.181159 +vt 1.000000 0.471014 +vt 1.000000 0.644928 +vt 0.062857 0.173913 +vt 0.071429 0.173913 +vt 0.031429 0.173913 +vt 0.028571 0.173913 +vt 0.048571 0.173913 +vt 0.045714 0.173913 +vt 0.080000 0.173913 +vt 0.082857 0.173913 +vt 0.037143 0.289855 +vt 0.065714 0.289855 +vt 0.022857 0.289855 +vt 0.057143 0.289855 +vt 0.088571 0.289855 +vt 0.040000 0.289855 +vt 0.074286 0.289855 +vt 0.054286 0.289855 +vt 0.065714 0.289855 +vt 0.082857 0.289855 +vt 0.048571 0.289855 +vt 0.057143 0.289855 +vt 0.074286 0.289855 +vt 0.028571 0.289855 +vt 0.040000 0.289855 +vt 0.037143 0.289855 +vt 0.040000 0.173913 +vt 0.074286 0.173913 +vt 0.054286 0.173913 +vt 0.082857 0.173913 +vt 0.031429 0.173913 +vt 0.071429 0.173913 +vt 0.022857 0.173913 +vt 0.062857 0.173913 +vt 0.062857 0.173913 +vt 0.065714 0.173913 +vt 0.031429 0.173913 +vt 0.022857 0.173913 +vt 0.054286 0.173913 +vt 0.045714 0.173913 +vt 0.074286 0.173913 +vt 0.082857 0.173913 +vt 0.037143 0.289855 +vt 0.065714 0.289855 +vt 0.028571 0.289855 +vt 0.062857 0.289855 +vt 0.088571 0.289855 +vt 0.040000 0.289855 +vt 0.074286 0.289855 +vt 0.048571 0.289855 +vt 0.054286 0.289855 +vt 0.037143 0.289855 +vt 0.088571 0.289855 +vt 0.065714 0.289855 +vt 0.040000 0.289855 +vt 0.028571 0.289855 +vt 0.080000 0.289855 +vt 0.057143 0.289855 +vt 0.074286 0.173913 +vt 0.062857 0.173913 +vt 0.054286 0.173913 +vt 0.037143 0.173913 +vt 0.088571 0.173913 +vt 0.071429 0.173913 +vt 0.045714 0.173913 +vt 0.028571 0.173913 +vt 0.840000 0.362319 +vt 0.840000 0.362319 +vt 0.840000 0.362319 +vt 0.840000 0.347826 +vt 0.840000 0.362319 +vt 0.840000 0.362319 +vt 0.840000 0.362319 +vt 0.840000 0.362319 +vt 0.062857 0.173913 +vt 0.071429 0.173913 +vt 0.031429 0.173913 +vt 0.028571 0.173913 +vt 0.048571 0.173913 +vt 0.045714 0.173913 +vt 0.074286 0.173913 +vt 0.088571 0.173913 +vt 0.037143 0.289855 +vt 0.065714 0.289855 +vt 0.022857 0.289855 +vt 0.062857 0.289855 +vt 0.088571 0.289855 +vt 0.040000 0.289855 +vt 0.080000 0.289855 +vt 0.054286 0.289855 +vt 0.071429 0.289855 +vt 0.082857 0.289855 +vt 0.054286 0.289855 +vt 0.057143 0.289855 +vt 0.074286 0.289855 +vt 0.028571 0.289855 +vt 0.040000 0.289855 +vt 0.037143 0.289855 +vt 0.045714 0.173913 +vt 0.074286 0.173913 +vt 0.054286 0.173913 +vt 0.082857 0.173913 +vt 0.031429 0.173913 +vt 0.071429 0.173913 +vt 0.028571 0.173913 +vt 0.062857 0.173913 +vt 0.062857 0.173913 +vt 0.071429 0.173913 +vt 0.031429 0.173913 +vt 0.022857 0.173913 +vt 0.054286 0.173913 +vt 0.045714 0.173913 +vt 0.074286 0.173913 +vt 0.088571 0.173913 +vt 0.037143 0.289855 +vt 0.065714 0.289855 +vt 0.028571 0.289855 +vt 0.062857 0.289855 +vt 0.088571 0.289855 +vt 0.040000 0.289855 +vt 0.074286 0.289855 +vt 0.054286 0.289855 +vt 0.054286 0.289855 +vt 0.037143 0.289855 +vt 0.082857 0.289855 +vt 0.065714 0.289855 +vt 0.045714 0.289855 +vt 0.022857 0.289855 +vt 0.080000 0.289855 +vt 0.057143 0.289855 +vt 0.074286 0.173913 +vt 0.062857 0.173913 +vt 0.054286 0.173913 +vt 0.031429 0.173913 +vt 0.082857 0.173913 +vt 0.071429 0.173913 +vt 0.045714 0.173913 +vt 0.022857 0.173913 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0000 -1.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.2298 0.9732 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.2298 -0.9732 0.0000 +vn -0.2298 -0.9732 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8944 -0.4472 0.0000 +vn 0.9732 -0.2298 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.9732 0.2298 0.0000 +vn 0.4472 -0.8944 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.4472 -0.8944 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.9732 -0.2298 0.0000 +vn -0.8944 -0.4472 0.0000 +vn -0.9732 0.2298 0.0000 +vn -0.8944 0.4472 0.0000 +vn 0.2298 0.9732 0.0000 +vn 0.4472 0.8944 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -1.0000 -0.0040 -0.0000 +vn -0.8530 0.1430 -0.5020 +vn -0.4980 0.4980 -0.7099 +vn 0.5000 0.5000 -0.7071 +vn 0.0040 1.0000 0.0000 +vn -0.1430 0.8530 0.5020 +vn -0.4980 0.4980 0.7099 +vn -0.5000 -0.5000 0.7071 +vn -0.8530 0.1430 0.5020 +vn -0.5000 -0.5000 -0.7071 +vn -0.1430 0.8530 -0.5020 +vn 0.5000 0.5000 0.7071 +vn 0.1464 -0.8536 0.5000 +vn 0.8536 -0.1464 -0.5000 +vn 0.5000 -0.5000 0.7071 +vn 0.5000 -0.5000 -0.7071 +vn 0.8536 -0.1464 0.5000 +vn 0.1464 -0.8536 -0.5000 +vn -0.8536 0.1464 -0.5000 +vn -0.5000 0.5000 0.7071 +vn -0.8536 0.1464 0.5000 +vn -0.5000 0.5000 -0.7071 +vn -0.1464 0.8536 -0.5000 +vn -0.1464 0.8536 0.5000 +vn 0.1430 -0.8530 -0.5020 +vn -0.0040 -1.0000 -0.0000 +vn 0.8530 -0.1430 0.5020 +vn 1.0000 0.0040 0.0000 +vn 0.4980 -0.4980 -0.7099 +vn 0.4980 -0.4980 0.7099 +vn 0.8530 -0.1430 -0.5020 +vn 0.1430 -0.8530 0.5020 +vn -0.0040 1.0000 -0.0000 +vn 0.1430 0.8530 -0.5020 +vn 0.4980 0.4980 -0.7099 +vn 1.0000 -0.0040 -0.0000 +vn 0.8530 0.1430 0.5020 +vn 0.4980 0.4980 0.7099 +vn 0.1430 0.8530 0.5020 +vn 0.8530 0.1430 -0.5020 +vn -0.8536 -0.1464 0.5000 +vn -0.1464 -0.8536 -0.5000 +vn -0.1464 -0.8536 0.5000 +vn -0.8536 -0.1464 -0.5000 +vn 0.8536 0.1464 -0.5000 +vn 0.8536 0.1464 0.5000 +vn 0.1464 0.8536 0.5000 +vn 0.1464 0.8536 -0.5000 +vn -0.8530 -0.1430 -0.5020 +vn -1.0000 0.0040 0.0000 +vn 0.0040 -1.0000 0.0000 +vn -0.1430 -0.8530 -0.5020 +vn -0.4980 -0.4980 0.7099 +vn -0.1430 -0.8530 0.5020 +vn -0.8530 -0.1430 0.5020 +vn -0.4980 -0.4980 -0.7099 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +s off +f 19/35/11 24/36/11 20/37/11 +f 18/38/12 22/39/12 17/40/12 +f 20/37/13 23/41/13 18/38/13 +f 17/40/14 21/42/14 19/43/14 +f 27/44/11 32/45/11 28/46/11 +f 26/47/12 30/48/12 25/49/12 +f 28/46/13 31/50/13 26/47/13 +f 25/49/14 29/51/14 27/52/14 +f 48/53/11 43/54/11 44/55/11 +f 46/56/12 42/57/12 41/58/12 +f 47/59/14 44/60/14 42/57/14 +f 45/61/13 41/58/13 43/54/13 +f 56/62/11 51/63/11 52/64/11 +f 54/65/12 50/66/12 49/67/12 +f 55/68/14 52/69/14 50/66/14 +f 53/70/13 49/67/13 51/63/13 +f 99/71/15 112/72/15 111/73/15 +f 97/74/15 108/75/15 96/76/15 +f 104/77/15 115/78/15 103/79/15 +f 94/80/15 105/81/15 93/82/15 +f 101/83/15 112/84/15 100/85/15 +f 98/86/15 109/87/15 97/74/15 +f 104/77/15 105/88/15 116/89/15 +f 95/90/15 106/91/15 94/80/15 +f 101/83/15 114/92/15 113/93/15 +f 99/94/15 110/95/15 98/86/15 +f 96/76/15 107/96/15 95/90/15 +f 102/97/15 115/98/15 114/99/15 +f 92/100/16 117/101/16 81/102/16 +f 117/103/16 82/104/16 81/102/16 +f 118/105/16 83/106/16 82/104/16 +f 119/107/16 84/108/16 83/106/16 +f 120/109/16 85/110/16 84/108/16 +f 121/111/16 86/112/16 85/110/16 +f 122/113/16 87/114/16 86/112/16 +f 87/115/16 124/116/16 88/117/16 +f 124/118/16 89/119/16 88/117/16 +f 89/119/16 126/120/16 90/121/16 +f 90/121/16 127/122/16 91/123/16 +f 127/124/16 92/100/16 91/123/16 +f 48/53/15 46/125/15 45/61/15 +f 22/126/15 24/36/15 21/127/15 +f 30/128/15 32/45/15 29/129/15 +f 56/62/15 54/130/15 53/70/15 +f 136/131/17 130/132/17 132/133/17 +f 150/134/18 148/135/18 146/136/18 +f 201/137/18 207/138/18 205/139/18 +f 187/140/17 189/141/17 191/142/17 +f 216/143/19 210/144/19 212/145/19 +f 230/146/20 228/147/20 226/148/20 +f 267/149/19 269/150/19 271/151/19 +f 281/152/20 287/153/20 285/154/20 +f 301/155/20 303/156/20 297/157/20 +f 317/158/18 319/159/18 313/160/18 +f 333/161/11 335/162/11 329/163/11 +f 340/164/17 338/165/17 344/166/17 +f 356/167/19 354/168/19 360/169/19 +f 381/170/14 383/171/14 377/172/14 +f 388/173/13 386/174/13 392/175/13 +f 404/176/12 402/177/12 408/178/12 +f 424/179/17 418/180/17 420/181/17 +f 438/182/18 436/183/18 434/184/18 +f 489/185/18 495/186/18 493/187/18 +f 475/188/17 477/189/17 479/190/17 +f 504/191/19 498/192/19 500/193/19 +f 518/194/20 516/195/20 514/196/20 +f 555/197/19 557/198/19 559/199/19 +f 569/200/20 575/201/20 573/202/20 +f 19/35/11 21/127/11 24/36/11 +f 18/38/12 23/41/12 22/39/12 +f 20/37/13 24/36/13 23/41/13 +f 17/40/14 22/39/14 21/42/14 +f 27/44/11 29/129/11 32/45/11 +f 26/47/12 31/50/12 30/48/12 +f 28/46/13 32/45/13 31/50/13 +f 25/49/14 30/48/14 29/51/14 +f 48/53/11 45/61/11 43/54/11 +f 46/56/12 47/59/12 42/57/12 +f 47/59/14 48/203/14 44/60/14 +f 45/61/13 46/56/13 41/58/13 +f 56/62/11 53/70/11 51/63/11 +f 54/65/12 55/68/12 50/66/12 +f 55/68/14 56/204/14 52/69/14 +f 53/70/13 54/65/13 49/67/13 +f 99/71/15 100/85/15 112/72/15 +f 97/74/15 109/205/15 108/75/15 +f 104/77/15 116/206/15 115/78/15 +f 94/80/15 106/207/15 105/81/15 +f 101/83/15 113/208/15 112/84/15 +f 98/86/15 110/209/15 109/87/15 +f 104/77/15 93/82/15 105/88/15 +f 95/90/15 107/210/15 106/91/15 +f 101/83/15 102/97/15 114/92/15 +f 99/94/15 111/211/15 110/95/15 +f 96/76/15 108/212/15 107/96/15 +f 102/97/15 103/79/15 115/98/15 +f 92/100/16 128/213/16 117/101/16 +f 117/103/16 118/214/16 82/104/16 +f 118/105/16 119/215/16 83/106/16 +f 119/107/16 120/216/16 84/108/16 +f 120/109/16 121/217/16 85/110/16 +f 121/111/16 122/218/16 86/112/16 +f 122/113/16 123/219/16 87/114/16 +f 87/115/16 123/220/16 124/116/16 +f 124/118/16 125/221/16 89/119/16 +f 89/119/16 125/222/16 126/120/16 +f 90/121/16 126/223/16 127/122/16 +f 127/124/16 128/224/16 92/100/16 +f 48/53/15 47/225/15 46/125/15 +f 22/126/15 23/226/15 24/36/15 +f 30/128/15 31/227/15 32/45/15 +f 56/62/15 55/228/15 54/130/15 +f 134/229/17 135/230/17 136/131/17 +f 136/131/17 129/231/17 130/132/17 +f 130/132/17 131/232/17 132/133/17 +f 132/133/17 133/233/17 134/229/17 +f 134/229/17 136/131/17 132/133/17 +f 152/234/18 151/235/18 150/134/18 +f 150/134/18 149/236/18 148/135/18 +f 148/135/18 147/237/18 146/136/18 +f 146/136/18 145/238/18 152/234/18 +f 152/234/18 150/134/18 146/136/18 +f 203/239/18 202/240/18 201/137/18 +f 201/137/18 208/241/18 207/138/18 +f 207/138/18 206/242/18 205/139/18 +f 205/139/18 204/243/18 203/239/18 +f 203/239/18 201/137/18 205/139/18 +f 185/244/17 186/245/17 187/140/17 +f 187/140/17 188/246/17 189/141/17 +f 189/141/17 190/247/17 191/142/17 +f 191/142/17 192/248/17 185/244/17 +f 185/244/17 187/140/17 191/142/17 +f 214/249/19 215/250/19 216/143/19 +f 216/143/19 209/251/19 210/144/19 +f 210/144/19 211/252/19 212/145/19 +f 212/145/19 213/253/19 214/249/19 +f 214/249/19 216/143/19 212/145/19 +f 232/254/20 231/255/20 230/146/20 +f 230/146/20 229/256/20 228/147/20 +f 228/147/20 227/257/20 226/148/20 +f 226/148/20 225/258/20 232/254/20 +f 232/254/20 230/146/20 226/148/20 +f 265/259/19 266/260/19 267/149/19 +f 267/149/19 268/261/19 269/150/19 +f 269/150/19 270/262/19 271/151/19 +f 271/151/19 272/263/19 265/259/19 +f 265/259/19 267/149/19 271/151/19 +f 283/264/20 282/265/20 281/152/20 +f 281/152/20 288/266/20 287/153/20 +f 287/153/20 286/267/20 285/154/20 +f 285/154/20 284/268/20 283/264/20 +f 283/264/20 281/152/20 285/154/20 +f 297/157/20 298/269/20 299/270/20 +f 299/270/20 300/271/20 297/157/20 +f 300/271/20 301/155/20 297/157/20 +f 301/155/20 302/272/20 303/156/20 +f 303/156/20 304/273/20 297/157/20 +f 313/160/18 314/274/18 315/275/18 +f 315/275/18 316/276/18 313/160/18 +f 316/276/18 317/158/18 313/160/18 +f 317/158/18 318/277/18 319/159/18 +f 319/159/18 320/278/18 313/160/18 +f 329/163/11 330/279/11 331/280/11 +f 331/280/11 332/281/11 329/163/11 +f 332/281/11 333/161/11 329/163/11 +f 333/161/11 334/282/11 335/162/11 +f 335/162/11 336/283/11 329/163/11 +f 344/166/17 343/284/17 342/285/17 +f 342/285/17 341/286/17 344/166/17 +f 341/286/17 340/164/17 344/166/17 +f 340/164/17 339/287/17 338/165/17 +f 338/165/17 337/288/17 344/166/17 +f 360/169/19 359/289/19 358/290/19 +f 358/290/19 357/291/19 360/169/19 +f 357/291/19 356/167/19 360/169/19 +f 356/167/19 355/292/19 354/168/19 +f 354/168/19 353/293/19 360/169/19 +f 377/172/14 378/294/14 379/295/14 +f 379/295/14 380/296/14 377/172/14 +f 380/296/14 381/170/14 377/172/14 +f 381/170/14 382/297/14 383/171/14 +f 383/171/14 384/298/14 377/172/14 +f 392/175/13 391/299/13 390/300/13 +f 390/300/13 389/301/13 392/175/13 +f 389/301/13 388/173/13 392/175/13 +f 388/173/13 387/302/13 386/174/13 +f 386/174/13 385/303/13 392/175/13 +f 408/178/12 407/304/12 406/305/12 +f 406/305/12 405/306/12 408/178/12 +f 405/306/12 404/176/12 408/178/12 +f 404/176/12 403/307/12 402/177/12 +f 402/177/12 401/308/12 408/178/12 +f 422/309/17 423/310/17 424/179/17 +f 424/179/17 417/311/17 418/180/17 +f 418/180/17 419/312/17 420/181/17 +f 420/181/17 421/313/17 422/309/17 +f 422/309/17 424/179/17 420/181/17 +f 440/314/18 439/315/18 438/182/18 +f 438/182/18 437/316/18 436/183/18 +f 436/183/18 435/317/18 434/184/18 +f 434/184/18 433/318/18 440/314/18 +f 440/314/18 438/182/18 434/184/18 +f 491/319/18 490/320/18 489/185/18 +f 489/185/18 496/321/18 495/186/18 +f 495/186/18 494/322/18 493/187/18 +f 493/187/18 492/323/18 491/319/18 +f 491/319/18 489/185/18 493/187/18 +f 473/324/17 474/325/17 475/188/17 +f 475/188/17 476/326/17 477/189/17 +f 477/189/17 478/327/17 479/190/17 +f 479/190/17 480/328/17 473/324/17 +f 473/324/17 475/188/17 479/190/17 +f 502/329/19 503/330/19 504/191/19 +f 504/191/19 497/331/19 498/192/19 +f 498/192/19 499/332/19 500/193/19 +f 500/193/19 501/333/19 502/329/19 +f 502/329/19 504/191/19 500/193/19 +f 520/334/20 519/335/20 518/194/20 +f 518/194/20 517/336/20 516/195/20 +f 516/195/20 515/337/20 514/196/20 +f 514/196/20 513/338/20 520/334/20 +f 520/334/20 518/194/20 514/196/20 +f 553/339/19 554/340/19 555/197/19 +f 555/197/19 556/341/19 557/198/19 +f 557/198/19 558/342/19 559/199/19 +f 559/199/19 560/343/19 553/339/19 +f 553/339/19 555/197/19 559/199/19 +f 571/344/20 570/345/20 569/200/20 +f 569/200/20 576/346/20 575/201/20 +f 575/201/20 574/347/20 573/202/20 +f 573/202/20 572/348/20 571/344/20 +f 571/344/20 569/200/20 573/202/20 +s 1 +f 78/349/21 75/350/22 76/351/22 +f 89/119/23 100/85/24 88/117/24 +f 71/352/25 70/353/26 69/354/26 +f 82/104/27 93/82/11 81/102/11 +f 35/355/28 38/356/29 36/357/28 +f 34/358/30 39/359/31 33/360/30 +f 39/359/31 38/356/29 37/361/29 +f 66/362/32 71/352/25 65/363/32 +f 92/100/33 103/79/34 91/123/34 +f 67/364/35 70/353/26 68/365/35 +f 85/110/36 96/76/14 84/108/14 +f 62/366/37 59/367/38 60/368/38 +f 63/369/39 58/370/40 57/371/40 +f 62/366/37 63/369/39 61/372/37 +f 79/373/41 74/374/42 73/375/42 +f 78/349/21 79/373/41 77/376/21 +f 86/112/43 97/74/36 85/110/36 +f 81/102/11 104/77/33 92/100/33 +f 83/106/44 94/80/27 82/104/27 +f 90/121/13 101/83/23 89/119/23 +f 87/114/12 98/86/43 86/112/43 +f 84/108/14 95/90/44 83/106/44 +f 91/123/34 102/97/13 90/121/13 +f 88/117/24 99/71/12 87/115/12 +f 109/205/34 120/377/13 108/75/13 +f 116/206/43 127/378/36 115/78/36 +f 106/207/24 117/379/12 105/81/12 +f 113/208/44 124/380/27 112/84/27 +f 110/209/33 121/381/34 109/87/34 +f 105/88/12 128/382/43 116/89/43 +f 107/210/23 118/383/24 106/91/24 +f 114/92/14 125/384/44 113/93/44 +f 111/211/11 122/385/33 110/95/33 +f 108/212/13 119/386/23 107/96/23 +f 115/98/36 126/387/14 114/99/14 +f 112/72/27 123/388/11 111/73/11 +f 154/389/45 137/390/46 153/391/46 +f 153/391/46 144/392/47 160/393/47 +f 136/394/16 143/395/48 144/396/16 +f 135/397/48 142/398/19 143/399/48 +f 142/400/49 157/401/50 158/402/49 +f 141/403/50 156/404/51 157/401/50 +f 139/405/52 130/406/20 138/407/20 +f 132/408/15 139/409/52 140/410/15 +f 156/411/51 139/409/53 155/412/53 +f 155/412/53 138/407/45 154/389/45 +f 137/413/54 136/414/16 144/392/16 +f 130/415/20 137/390/54 138/416/20 +f 160/393/47 143/395/55 159/417/55 +f 134/418/19 141/419/56 142/400/19 +f 141/403/56 132/420/15 140/421/15 +f 162/422/12 147/423/57 163/424/57 +f 150/425/13 167/426/58 166/427/13 +f 147/428/57 164/429/59 163/424/57 +f 151/430/58 168/431/60 167/426/58 +f 159/417/55 142/398/49 158/402/49 +f 164/432/59 149/433/61 165/434/61 +f 145/435/62 162/422/12 161/436/62 +f 149/437/61 166/427/13 165/434/61 +f 166/427/19 157/401/56 165/434/56 +f 168/431/60 145/438/62 161/436/62 +f 155/412/52 162/422/20 163/424/52 +f 167/426/48 158/402/19 166/427/19 +f 164/429/15 155/412/52 163/424/52 +f 160/393/16 167/426/48 168/431/16 +f 165/434/56 156/404/15 164/432/15 +f 154/389/20 161/436/54 162/422/20 +f 153/391/54 168/431/16 161/436/54 +f 187/439/14 170/440/63 171/441/14 +f 189/442/64 172/443/65 173/444/64 +f 185/445/66 176/446/67 169/447/66 +f 169/447/16 178/448/54 170/440/54 +f 186/449/63 169/447/66 170/440/63 +f 188/450/65 171/441/14 172/443/65 +f 178/448/54 171/441/20 170/440/54 +f 175/451/19 184/452/48 176/446/48 +f 174/453/68 189/454/64 173/455/64 +f 192/456/67 175/451/11 176/446/67 +f 182/457/56 175/451/19 174/453/56 +f 172/443/52 181/458/15 173/444/15 +f 194/459/69 179/460/70 178/448/69 +f 171/441/20 180/461/52 172/443/52 +f 173/455/15 182/457/56 174/453/56 +f 184/452/48 169/447/16 176/446/48 +f 182/457/71 199/462/72 183/463/72 +f 175/451/11 190/464/68 174/453/68 +f 199/465/19 208/466/48 200/467/48 +f 195/468/20 204/469/52 196/470/52 +f 208/471/48 193/472/16 200/473/48 +f 177/474/73 194/475/69 178/448/69 +f 196/476/52 205/477/15 197/478/15 +f 198/479/56 207/480/19 199/462/19 +f 181/481/74 198/482/71 182/457/71 +f 200/473/75 177/474/73 184/452/75 +f 202/483/54 195/484/20 194/459/54 +f 196/476/76 181/458/74 180/461/76 +f 197/485/15 206/486/56 198/482/56 +f 201/487/16 194/475/54 193/488/16 +f 179/460/70 196/470/76 180/461/76 +f 199/465/72 184/452/75 183/463/72 +f 218/489/77 233/490/78 234/491/77 +f 217/492/78 240/493/79 233/490/78 +f 216/494/16 223/495/60 224/496/16 +f 223/497/60 214/498/18 222/499/18 +f 238/500/80 221/501/81 237/502/81 +f 221/503/81 236/504/82 237/502/81 +f 219/505/64 210/506/17 218/507/17 +f 220/508/15 211/509/64 219/510/64 +f 236/511/82 219/510/83 235/512/83 +f 219/505/83 234/491/77 235/512/83 +f 209/513/66 224/514/16 217/492/66 +f 210/515/17 217/516/66 218/489/17 +f 240/493/79 223/495/84 239/517/84 +f 222/518/18 213/519/59 221/501/59 +f 221/503/59 212/520/15 220/521/15 +f 242/522/14 227/523/85 243/524/85 +f 230/525/12 247/526/86 246/527/12 +f 243/524/85 228/528/52 244/529/52 +f 247/526/86 232/530/54 248/531/54 +f 223/497/84 238/500/80 239/517/84 +f 244/532/52 229/533/87 245/534/87 +f 225/535/88 242/522/14 241/536/88 +f 229/537/87 246/527/12 245/534/87 +f 246/527/18 237/502/59 245/534/59 +f 232/538/54 241/536/88 248/531/54 +f 235/512/64 242/522/17 243/524/64 +f 239/517/60 246/527/18 247/526/60 +f 244/529/15 235/512/64 243/524/64 +f 248/531/16 239/517/60 247/526/60 +f 237/502/59 244/532/15 245/534/59 +f 234/491/17 241/536/66 242/522/17 +f 233/490/66 248/531/16 241/536/66 +f 264/539/60 249/540/16 256/541/60 +f 254/542/59 263/543/18 255/544/18 +f 260/545/64 253/546/15 252/547/64 +f 258/548/66 251/549/17 250/550/66 +f 255/544/18 264/539/60 256/541/60 +f 253/551/15 262/552/59 254/542/59 +f 251/549/17 260/545/64 252/547/64 +f 249/540/16 258/548/66 250/550/66 +f 249/540/48 272/553/89 256/541/89 +f 255/544/13 270/554/90 254/542/90 +f 253/546/56 268/555/91 252/547/91 +f 267/556/11 250/550/92 251/549/11 +f 272/557/89 255/544/13 256/541/89 +f 254/542/90 269/558/56 253/551/56 +f 252/547/91 267/559/11 251/549/11 +f 266/560/92 249/540/48 250/550/92 +f 274/561/93 259/562/94 258/548/93 +f 279/563/95 264/539/96 263/543/95 +f 261/564/97 278/565/98 262/552/98 +f 259/562/94 276/566/99 260/545/99 +f 257/567/100 274/568/93 258/548/93 +f 264/539/96 273/569/100 257/567/100 +f 262/552/98 279/570/95 263/543/95 +f 276/571/99 261/572/97 260/545/99 +f 275/573/17 284/574/64 276/566/64 +f 281/575/16 274/568/66 273/576/16 +f 288/577/60 273/569/16 280/578/60 +f 286/579/59 279/570/18 278/580/59 +f 284/581/64 277/582/15 276/571/64 +f 282/583/66 275/584/17 274/561/66 +f 287/585/18 280/586/60 279/563/18 +f 285/587/15 278/565/59 277/588/15 +f 292/589/59 299/590/18 291/591/18 +f 296/592/66 303/593/17 295/594/17 +f 290/595/60 299/590/18 298/596/60 +f 289/597/16 298/596/60 297/598/16 +f 293/599/15 300/600/59 292/589/59 +f 293/599/15 302/601/64 301/602/15 +f 294/603/64 303/593/17 302/601/64 +f 289/604/16 304/605/66 296/592/66 +f 305/606/16 320/607/54 312/608/54 +f 310/609/52 317/610/15 309/611/15 +f 306/612/48 315/613/19 314/614/48 +f 309/611/15 316/615/56 308/616/56 +f 306/612/48 313/617/16 305/618/16 +f 311/619/20 318/620/52 310/609/52 +f 311/619/20 320/607/54 319/621/20 +f 308/616/56 315/613/19 307/622/19 +f 321/623/16 336/624/101 328/625/101 +f 327/626/13 334/627/102 326/628/102 +f 325/629/15 332/630/103 324/631/103 +f 323/632/14 330/633/104 322/634/104 +f 328/625/101 335/635/13 327/626/13 +f 326/628/102 333/636/15 325/629/15 +f 324/631/103 331/637/14 323/632/14 +f 322/634/104 329/638/16 321/639/16 +f 347/640/56 340/641/15 348/642/15 +f 348/642/15 341/643/52 349/644/52 +f 346/645/19 339/646/56 347/640/56 +f 345/647/48 338/648/19 346/645/19 +f 350/649/20 343/650/54 351/651/54 +f 352/652/16 343/650/54 344/653/16 +f 350/649/20 341/643/52 342/654/20 +f 345/647/48 344/655/16 337/656/48 +f 368/657/16 353/658/60 361/659/60 +f 366/660/17 357/661/64 358/662/17 +f 368/663/16 359/664/66 360/665/16 +f 362/666/18 353/658/60 354/667/18 +f 364/668/15 357/661/64 365/669/64 +f 364/668/15 355/670/59 356/671/15 +f 367/672/66 358/662/17 359/664/66 +f 362/666/18 355/670/59 363/673/59 +f 369/674/16 384/675/105 376/676/105 +f 373/677/15 382/678/106 381/679/15 +f 371/680/12 378/681/107 370/682/107 +f 373/677/15 380/683/108 372/684/108 +f 369/685/16 378/681/107 377/686/16 +f 375/687/11 382/678/106 374/688/106 +f 376/676/105 383/689/11 375/687/11 +f 372/684/108 379/690/12 371/680/12 +f 400/691/16 385/692/107 393/693/107 +f 397/694/106 390/695/11 398/696/11 +f 399/697/105 392/698/16 400/699/16 +f 393/693/107 386/700/12 394/701/12 +f 396/702/15 389/703/106 397/694/106 +f 395/704/108 388/705/15 396/702/15 +f 398/696/11 391/706/105 399/697/105 +f 394/701/12 387/707/108 395/704/108 +f 416/708/16 401/709/104 409/710/104 +f 413/711/102 406/712/13 414/713/13 +f 415/714/101 408/715/16 416/716/16 +f 409/710/104 402/717/14 410/718/14 +f 412/719/15 405/720/102 413/711/102 +f 411/721/103 404/722/15 412/719/15 +f 414/713/13 407/723/101 415/714/101 +f 410/718/14 403/724/103 411/721/103 +f 426/725/45 441/726/46 442/727/45 +f 425/728/46 448/729/47 441/726/46 +f 424/730/16 431/731/48 432/732/16 +f 423/733/48 430/734/19 431/735/48 +f 430/736/49 445/737/50 446/738/49 +f 429/739/50 444/740/51 445/737/50 +f 427/741/52 418/742/20 426/743/20 +f 420/744/15 427/745/52 428/746/15 +f 444/747/51 427/745/53 443/748/53 +f 443/748/53 426/743/45 442/727/45 +f 425/728/54 424/749/16 432/750/16 +f 418/751/20 425/752/54 426/725/20 +f 448/729/47 431/731/55 447/753/55 +f 430/736/19 421/754/56 429/755/56 +f 421/756/56 428/757/15 429/739/56 +f 450/758/12 435/759/57 451/760/57 +f 438/761/13 455/762/58 454/763/13 +f 435/764/57 452/765/59 451/760/57 +f 455/762/58 440/766/60 456/767/60 +f 447/753/55 430/734/49 446/738/49 +f 452/768/59 437/769/61 453/770/61 +f 433/771/62 450/758/12 449/772/62 +f 453/770/61 438/773/13 454/763/13 +f 454/763/19 445/737/56 453/770/56 +f 456/767/60 433/774/62 449/772/62 +f 443/748/52 450/758/20 451/760/52 +f 455/762/48 446/738/19 454/763/19 +f 452/765/15 443/748/52 451/760/52 +f 448/729/16 455/762/48 456/767/16 +f 445/737/56 452/768/15 453/770/56 +f 450/758/20 441/726/54 449/772/54 +f 441/726/54 456/767/16 449/772/54 +f 459/775/14 474/776/63 458/777/63 +f 477/778/64 460/779/65 461/780/64 +f 457/781/66 480/782/67 464/783/67 +f 457/781/16 466/784/54 458/777/54 +f 474/785/63 457/781/66 458/777/63 +f 476/786/65 459/775/14 460/779/65 +f 466/784/54 459/775/20 458/777/54 +f 471/787/19 464/783/48 463/788/19 +f 462/789/68 477/790/64 461/791/64 +f 480/792/67 463/788/11 464/783/67 +f 470/793/56 463/788/19 462/789/56 +f 468/794/52 461/780/15 460/779/52 +f 482/795/69 467/796/70 466/784/69 +f 459/775/20 468/794/52 460/779/52 +f 461/791/15 470/793/56 462/789/56 +f 472/797/48 457/781/16 464/783/48 +f 470/793/71 487/798/72 471/787/72 +f 463/788/11 478/799/68 462/789/68 +f 495/800/19 488/801/48 487/802/19 +f 483/803/20 492/804/52 484/805/52 +f 496/806/48 481/807/16 488/808/48 +f 481/809/73 466/784/69 465/810/73 +f 484/811/52 493/812/15 485/813/15 +f 486/814/56 495/815/19 487/798/19 +f 485/816/74 470/793/71 469/817/74 +f 472/797/75 481/807/73 465/810/73 +f 490/818/54 483/819/20 482/795/54 +f 484/811/76 469/820/74 468/794/76 +f 493/821/15 486/822/56 485/816/15 +f 489/823/16 482/824/54 481/809/16 +f 467/796/70 484/805/76 468/794/76 +f 487/802/72 472/797/75 471/787/72 +f 522/825/77 505/826/78 521/827/78 +f 505/828/78 528/829/79 521/827/78 +f 504/830/16 511/831/60 512/832/16 +f 503/833/60 510/834/18 511/835/60 +f 526/836/80 509/837/81 525/838/81 +f 509/839/81 524/840/82 525/838/81 +f 507/841/64 498/842/17 506/843/17 +f 508/844/15 499/845/64 507/846/64 +f 524/847/82 507/846/83 523/848/83 +f 507/841/83 522/825/77 523/848/83 +f 497/849/66 512/850/16 505/828/66 +f 498/851/17 505/826/66 506/852/17 +f 528/829/79 511/831/84 527/853/84 +f 510/854/18 501/855/59 509/837/59 +f 501/856/59 508/857/15 509/839/59 +f 530/858/14 515/859/85 531/860/85 +f 518/861/12 535/862/86 534/863/12 +f 531/860/85 516/864/52 532/865/52 +f 535/862/86 520/866/54 536/867/54 +f 511/835/84 526/836/80 527/853/84 +f 532/868/52 517/869/87 533/870/87 +f 513/871/88 530/858/14 529/872/88 +f 517/873/87 534/863/12 533/870/87 +f 534/863/18 525/838/59 533/870/59 +f 536/867/54 513/874/88 529/872/88 +f 523/848/64 530/858/17 531/860/64 +f 527/853/60 534/863/18 535/862/60 +f 524/847/15 531/860/64 532/865/15 +f 536/867/16 527/853/60 535/862/60 +f 525/838/59 532/868/15 533/870/59 +f 522/825/17 529/872/66 530/858/17 +f 521/827/66 536/867/16 529/872/66 +f 544/875/60 545/876/16 537/877/16 +f 550/878/59 543/879/18 542/880/59 +f 548/881/64 541/882/15 540/883/64 +f 546/884/66 539/885/17 538/886/66 +f 543/879/18 552/887/60 544/875/60 +f 549/888/15 542/880/59 541/889/15 +f 539/885/17 548/881/64 540/883/64 +f 537/877/16 546/884/66 538/886/66 +f 537/877/48 560/890/89 544/875/89 +f 543/879/13 558/891/90 542/880/90 +f 557/892/56 540/883/91 541/882/56 +f 555/893/11 538/886/92 539/885/11 +f 544/875/89 559/894/13 543/879/13 +f 558/895/90 541/889/56 542/880/90 +f 540/883/91 555/896/11 539/885/11 +f 554/897/92 537/877/48 538/886/92 +f 562/898/93 547/899/94 546/884/93 +f 567/900/95 552/887/96 551/901/95 +f 565/902/97 550/878/98 549/888/97 +f 547/899/94 564/903/99 548/881/99 +f 545/876/100 562/904/93 546/884/93 +f 568/905/96 545/876/100 552/887/96 +f 550/878/98 567/906/95 551/901/95 +f 564/907/99 549/908/97 548/881/99 +f 563/909/17 572/910/64 564/903/64 +f 569/911/16 562/904/66 561/912/16 +f 576/913/60 561/914/16 568/905/60 +f 566/915/59 575/916/18 567/906/18 +f 564/907/64 573/917/15 565/918/15 +f 570/919/66 563/920/17 562/898/66 +f 575/921/18 568/922/60 567/900/18 +f 565/902/15 574/923/59 566/924/59 +f 78/349/21 77/376/21 75/350/22 +f 89/119/23 101/83/23 100/85/24 +f 71/352/25 72/925/25 70/353/26 +f 82/104/27 94/80/27 93/82/11 +f 35/355/28 37/361/29 38/356/29 +f 34/358/30 40/926/31 39/359/31 +f 39/359/31 40/926/31 38/356/29 +f 66/362/32 72/925/25 71/352/25 +f 92/100/33 104/77/33 103/79/34 +f 67/364/35 69/354/26 70/353/26 +f 85/110/36 97/74/36 96/76/14 +f 62/366/37 61/372/37 59/367/38 +f 63/369/39 64/927/39 58/370/40 +f 62/366/37 64/927/39 63/369/39 +f 79/373/41 80/928/41 74/374/42 +f 78/349/21 80/928/41 79/373/41 +f 86/112/43 98/86/43 97/74/36 +f 81/102/11 93/82/11 104/77/33 +f 83/106/44 95/90/44 94/80/27 +f 90/121/13 102/97/13 101/83/23 +f 87/114/12 99/94/12 98/86/43 +f 84/108/14 96/76/14 95/90/44 +f 91/123/34 103/79/34 102/97/13 +f 88/117/24 100/85/24 99/71/12 +f 109/205/34 121/929/34 120/377/13 +f 116/206/43 128/930/43 127/378/36 +f 106/207/24 118/931/24 117/379/12 +f 113/208/44 125/932/44 124/380/27 +f 110/209/33 122/933/33 121/381/34 +f 105/88/12 117/934/12 128/382/43 +f 107/210/23 119/935/23 118/383/24 +f 114/92/14 126/936/14 125/384/44 +f 111/211/11 123/937/11 122/385/33 +f 108/212/13 120/938/13 119/386/23 +f 115/98/36 127/939/36 126/387/14 +f 112/72/27 124/940/27 123/388/11 +f 154/389/45 138/416/45 137/390/46 +f 153/391/46 137/413/46 144/392/47 +f 136/394/16 135/941/48 143/395/48 +f 135/397/48 134/942/19 142/398/19 +f 142/400/49 141/419/50 157/401/50 +f 141/403/50 140/421/51 156/404/51 +f 139/405/52 131/943/52 130/406/20 +f 132/408/15 131/944/52 139/409/52 +f 156/411/51 140/410/51 139/409/53 +f 155/412/53 139/405/53 138/407/45 +f 137/413/54 129/945/54 136/414/16 +f 130/415/20 129/946/54 137/390/54 +f 160/393/47 144/396/47 143/395/55 +f 134/418/19 133/947/56 141/419/56 +f 141/403/56 133/948/56 132/420/15 +f 162/422/12 146/949/12 147/423/57 +f 150/425/13 151/950/58 167/426/58 +f 147/428/57 148/951/59 164/429/59 +f 151/430/58 152/952/60 168/431/60 +f 159/417/55 143/399/55 142/398/49 +f 164/432/59 148/953/59 149/433/61 +f 145/435/62 146/954/12 162/422/12 +f 149/437/61 150/955/13 166/427/13 +f 166/427/19 158/402/19 157/401/56 +f 168/431/60 152/956/60 145/438/62 +f 155/412/52 154/389/20 162/422/20 +f 167/426/48 159/417/48 158/402/19 +f 164/429/15 156/411/15 155/412/52 +f 160/393/16 159/417/48 167/426/48 +f 165/434/56 157/401/56 156/404/15 +f 154/389/20 153/391/54 161/436/54 +f 153/391/54 160/393/16 168/431/16 +f 187/439/14 186/957/63 170/440/63 +f 189/442/64 188/958/65 172/443/65 +f 185/445/66 192/959/67 176/446/67 +f 169/447/16 177/474/16 178/448/54 +f 186/449/63 185/960/66 169/447/66 +f 188/450/65 187/961/14 171/441/14 +f 178/448/54 179/460/20 171/441/20 +f 175/451/19 183/463/19 184/452/48 +f 174/453/68 190/962/68 189/454/64 +f 192/456/67 191/963/11 175/451/11 +f 182/457/56 183/463/19 175/451/19 +f 172/443/52 180/461/52 181/458/15 +f 194/459/69 195/484/70 179/460/70 +f 171/441/20 179/460/20 180/461/52 +f 173/455/15 181/481/15 182/457/56 +f 184/452/48 177/474/16 169/447/16 +f 182/457/71 198/479/71 199/462/72 +f 175/451/11 191/964/11 190/464/68 +f 199/465/19 207/965/19 208/466/48 +f 195/468/20 203/966/20 204/469/52 +f 208/471/48 201/967/16 193/472/16 +f 177/474/73 193/488/73 194/475/69 +f 196/476/52 204/968/52 205/477/15 +f 198/479/56 206/969/56 207/480/19 +f 181/481/74 197/485/74 198/482/71 +f 200/473/75 193/472/73 177/474/73 +f 202/483/54 203/970/20 195/484/20 +f 196/476/76 197/478/74 181/458/74 +f 197/485/15 205/971/15 206/486/56 +f 201/487/16 202/972/54 194/475/54 +f 179/460/70 195/468/70 196/470/76 +f 199/465/72 200/467/75 184/452/75 +f 218/489/77 217/516/78 233/490/78 +f 217/492/78 224/514/79 240/493/79 +f 216/494/16 215/973/60 223/495/60 +f 223/497/60 215/974/60 214/498/18 +f 238/500/80 222/518/80 221/501/81 +f 221/503/81 220/521/82 236/504/82 +f 219/505/64 211/975/64 210/506/17 +f 220/508/15 212/976/15 211/509/64 +f 236/511/82 220/508/82 219/510/83 +f 219/505/83 218/507/77 234/491/77 +f 209/513/66 216/977/16 224/514/16 +f 210/515/17 209/978/66 217/516/66 +f 240/493/79 224/496/79 223/495/84 +f 222/518/18 214/979/18 213/519/59 +f 221/503/59 213/980/59 212/520/15 +f 242/522/14 226/981/14 227/523/85 +f 230/525/12 231/982/86 247/526/86 +f 243/524/85 227/983/85 228/528/52 +f 247/526/86 231/984/86 232/530/54 +f 223/497/84 222/499/80 238/500/80 +f 244/532/52 228/985/52 229/533/87 +f 225/535/88 226/986/14 242/522/14 +f 229/537/87 230/987/12 246/527/12 +f 246/527/18 238/500/18 237/502/59 +f 232/538/54 225/988/88 241/536/88 +f 235/512/64 234/491/17 242/522/17 +f 239/517/60 238/500/18 246/527/18 +f 244/529/15 236/511/15 235/512/64 +f 248/531/16 240/493/16 239/517/60 +f 237/502/59 236/504/15 244/532/15 +f 234/491/17 233/490/66 241/536/66 +f 233/490/66 240/493/16 248/531/16 +f 264/539/60 257/567/16 249/540/16 +f 254/542/59 262/552/59 263/543/18 +f 260/545/64 261/572/15 253/546/15 +f 258/548/66 259/562/17 251/549/17 +f 255/544/18 263/543/18 264/539/60 +f 253/551/15 261/564/15 262/552/59 +f 251/549/17 259/562/17 260/545/64 +f 249/540/16 257/567/16 258/548/66 +f 249/540/48 265/989/48 272/553/89 +f 255/544/13 271/990/13 270/554/90 +f 253/546/56 269/991/56 268/555/91 +f 267/556/11 266/992/92 250/550/92 +f 272/557/89 271/993/13 255/544/13 +f 254/542/90 270/994/90 269/558/56 +f 252/547/91 268/995/91 267/559/11 +f 266/560/92 265/996/48 249/540/48 +f 274/561/93 275/584/94 259/562/94 +f 279/563/95 280/586/96 264/539/96 +f 261/564/97 277/588/97 278/565/98 +f 259/562/94 275/573/94 276/566/99 +f 257/567/100 273/576/100 274/568/93 +f 264/539/96 280/578/96 273/569/100 +f 262/552/98 278/580/98 279/570/95 +f 276/571/99 277/582/97 261/572/97 +f 275/573/17 283/997/17 284/574/64 +f 281/575/16 282/998/66 274/568/66 +f 288/577/60 281/999/16 273/569/16 +f 286/579/59 287/1000/18 279/570/18 +f 284/581/64 285/1001/15 277/582/15 +f 282/583/66 283/1002/17 275/584/17 +f 287/585/18 288/1003/60 280/586/60 +f 285/587/15 286/1004/59 278/565/59 +f 292/589/59 300/600/59 299/590/18 +f 296/592/66 304/605/66 303/593/17 +f 290/595/60 291/591/18 299/590/18 +f 289/597/16 290/595/60 298/596/60 +f 293/599/15 301/602/15 300/600/59 +f 293/599/15 294/603/64 302/601/64 +f 294/603/64 295/594/17 303/593/17 +f 289/604/16 297/1005/16 304/605/66 +f 305/606/16 313/1006/16 320/607/54 +f 310/609/52 318/620/52 317/610/15 +f 306/612/48 307/622/19 315/613/19 +f 309/611/15 317/610/15 316/615/56 +f 306/612/48 314/614/48 313/617/16 +f 311/619/20 319/621/20 318/620/52 +f 311/619/20 312/608/54 320/607/54 +f 308/616/56 316/615/56 315/613/19 +f 321/623/16 329/1007/16 336/624/101 +f 327/626/13 335/635/13 334/627/102 +f 325/629/15 333/636/15 332/630/103 +f 323/632/14 331/637/14 330/633/104 +f 328/625/101 336/624/101 335/635/13 +f 326/628/102 334/627/102 333/636/15 +f 324/631/103 332/630/103 331/637/14 +f 322/634/104 330/633/104 329/638/16 +f 347/640/56 339/646/56 340/641/15 +f 348/642/15 340/641/15 341/643/52 +f 346/645/19 338/648/19 339/646/56 +f 345/647/48 337/656/48 338/648/19 +f 350/649/20 342/654/20 343/650/54 +f 352/652/16 351/651/54 343/650/54 +f 350/649/20 349/644/52 341/643/52 +f 345/647/48 352/1008/16 344/655/16 +f 368/657/16 360/1009/16 353/658/60 +f 366/660/17 365/669/64 357/661/64 +f 368/663/16 367/672/66 359/664/66 +f 362/666/18 361/659/60 353/658/60 +f 364/668/15 356/671/15 357/661/64 +f 364/668/15 363/673/59 355/670/59 +f 367/672/66 366/660/17 358/662/17 +f 362/666/18 354/667/18 355/670/59 +f 369/674/16 377/1010/16 384/675/105 +f 373/677/15 374/688/106 382/678/106 +f 371/680/12 379/690/12 378/681/107 +f 373/677/15 381/679/15 380/683/108 +f 369/685/16 370/682/107 378/681/107 +f 375/687/11 383/689/11 382/678/106 +f 376/676/105 384/675/105 383/689/11 +f 372/684/108 380/683/108 379/690/12 +f 400/691/16 392/1011/16 385/692/107 +f 397/694/106 389/703/106 390/695/11 +f 399/697/105 391/706/105 392/698/16 +f 393/693/107 385/692/107 386/700/12 +f 396/702/15 388/705/15 389/703/106 +f 395/704/108 387/707/108 388/705/15 +f 398/696/11 390/695/11 391/706/105 +f 394/701/12 386/700/12 387/707/108 +f 416/708/16 408/1012/16 401/709/104 +f 413/711/102 405/720/102 406/712/13 +f 415/714/101 407/723/101 408/715/16 +f 409/710/104 401/709/104 402/717/14 +f 412/719/15 404/722/15 405/720/102 +f 411/721/103 403/724/103 404/722/15 +f 414/713/13 406/712/13 407/723/101 +f 410/718/14 402/717/14 403/724/103 +f 426/725/45 425/752/46 441/726/46 +f 425/728/46 432/750/47 448/729/47 +f 424/730/16 423/1013/48 431/731/48 +f 423/733/48 422/1014/19 430/734/19 +f 430/736/49 429/755/50 445/737/50 +f 429/739/50 428/757/51 444/740/51 +f 427/741/52 419/1015/52 418/742/20 +f 420/744/15 419/1016/52 427/745/52 +f 444/747/51 428/746/51 427/745/53 +f 443/748/53 427/741/53 426/743/45 +f 425/728/54 417/1017/54 424/749/16 +f 418/751/20 417/1018/54 425/752/54 +f 448/729/47 432/732/47 431/731/55 +f 430/736/19 422/1019/19 421/754/56 +f 421/756/56 420/1020/15 428/757/15 +f 450/758/12 434/1021/12 435/759/57 +f 438/761/13 439/1022/58 455/762/58 +f 435/764/57 436/1023/59 452/765/59 +f 455/762/58 439/1024/58 440/766/60 +f 447/753/55 431/735/55 430/734/49 +f 452/768/59 436/1025/59 437/769/61 +f 433/771/62 434/1026/12 450/758/12 +f 453/770/61 437/1027/61 438/773/13 +f 454/763/19 446/738/19 445/737/56 +f 456/767/60 440/1028/60 433/774/62 +f 443/748/52 442/727/20 450/758/20 +f 455/762/48 447/753/48 446/738/19 +f 452/765/15 444/747/15 443/748/52 +f 448/729/16 447/753/48 455/762/48 +f 445/737/56 444/740/15 452/768/15 +f 450/758/20 442/727/20 441/726/54 +f 441/726/54 448/729/16 456/767/16 +f 459/775/14 475/1029/14 474/776/63 +f 477/778/64 476/1030/65 460/779/65 +f 457/781/66 473/1031/66 480/782/67 +f 457/781/16 465/810/16 466/784/54 +f 474/785/63 473/1032/66 457/781/66 +f 476/786/65 475/1033/14 459/775/14 +f 466/784/54 467/796/20 459/775/20 +f 471/787/19 472/797/48 464/783/48 +f 462/789/68 478/1034/68 477/790/64 +f 480/792/67 479/1035/11 463/788/11 +f 470/793/56 471/787/19 463/788/19 +f 468/794/52 469/820/15 461/780/15 +f 482/795/69 483/819/70 467/796/70 +f 459/775/20 467/796/20 468/794/52 +f 461/791/15 469/817/15 470/793/56 +f 472/797/48 465/810/16 457/781/16 +f 470/793/71 486/814/71 487/798/72 +f 463/788/11 479/1036/11 478/799/68 +f 495/800/19 496/1037/48 488/801/48 +f 483/803/20 491/1038/20 492/804/52 +f 496/806/48 489/1039/16 481/807/16 +f 481/809/73 482/824/69 466/784/69 +f 484/811/52 492/1040/52 493/812/15 +f 486/814/56 494/1041/56 495/815/19 +f 485/816/74 486/822/71 470/793/71 +f 472/797/75 488/808/75 481/807/73 +f 490/818/54 491/1042/20 483/819/20 +f 484/811/76 485/813/74 469/820/74 +f 493/821/15 494/1043/56 486/822/56 +f 489/823/16 490/1044/54 482/824/54 +f 467/796/70 483/803/70 484/805/76 +f 487/802/72 488/801/75 472/797/75 +f 522/825/77 506/852/77 505/826/78 +f 505/828/78 512/850/79 528/829/79 +f 504/830/16 503/1045/60 511/831/60 +f 503/833/60 502/1046/18 510/834/18 +f 526/836/80 510/854/80 509/837/81 +f 509/839/81 508/857/82 524/840/82 +f 507/841/64 499/1047/64 498/842/17 +f 508/844/15 500/1048/15 499/845/64 +f 524/847/82 508/844/82 507/846/83 +f 507/841/83 506/843/77 522/825/77 +f 497/849/66 504/1049/16 512/850/16 +f 498/851/17 497/1050/66 505/826/66 +f 528/829/79 512/832/79 511/831/84 +f 510/854/18 502/1051/18 501/855/59 +f 501/856/59 500/1052/15 508/857/15 +f 530/858/14 514/1053/14 515/859/85 +f 518/861/12 519/1054/86 535/862/86 +f 531/860/85 515/1055/85 516/864/52 +f 535/862/86 519/1056/86 520/866/54 +f 511/835/84 510/834/80 526/836/80 +f 532/868/52 516/1057/52 517/869/87 +f 513/871/88 514/1058/14 530/858/14 +f 517/873/87 518/1059/12 534/863/12 +f 534/863/18 526/836/18 525/838/59 +f 536/867/54 520/1060/54 513/874/88 +f 523/848/64 522/825/17 530/858/17 +f 527/853/60 526/836/18 534/863/18 +f 524/847/15 523/848/64 531/860/64 +f 536/867/16 528/829/16 527/853/60 +f 525/838/59 524/840/15 532/868/15 +f 522/825/17 521/827/66 529/872/66 +f 521/827/66 528/829/16 536/867/16 +f 544/875/60 552/887/60 545/876/16 +f 550/878/59 551/901/18 543/879/18 +f 548/881/64 549/908/15 541/882/15 +f 546/884/66 547/899/17 539/885/17 +f 543/879/18 551/901/18 552/887/60 +f 549/888/15 550/878/59 542/880/59 +f 539/885/17 547/899/17 548/881/64 +f 537/877/16 545/876/16 546/884/66 +f 537/877/48 553/1061/48 560/890/89 +f 543/879/13 559/1062/13 558/891/90 +f 557/892/56 556/1063/91 540/883/91 +f 555/893/11 554/1064/92 538/886/92 +f 544/875/89 560/1065/89 559/894/13 +f 558/895/90 557/1066/56 541/889/56 +f 540/883/91 556/1067/91 555/896/11 +f 554/897/92 553/1068/48 537/877/48 +f 562/898/93 563/920/94 547/899/94 +f 567/900/95 568/922/96 552/887/96 +f 565/902/97 566/924/98 550/878/98 +f 547/899/94 563/909/94 564/903/99 +f 545/876/100 561/912/100 562/904/93 +f 568/905/96 561/914/100 545/876/100 +f 550/878/98 566/915/98 567/906/95 +f 564/907/99 565/918/97 549/908/97 +f 563/909/17 571/1069/17 572/910/64 +f 569/911/16 570/1070/66 562/904/66 +f 576/913/60 569/1071/16 561/914/16 +f 566/915/59 574/1072/59 575/916/18 +f 564/907/64 572/1073/64 573/917/15 +f 570/919/66 571/1074/17 563/920/17 +f 575/921/18 576/1075/60 568/922/60 +f 565/902/15 573/1076/15 574/923/59 +o Cog +v 0.000000 -0.625000 1.125000 +v -0.382684 -0.701121 1.125000 +v -0.707107 -0.917893 1.125000 +v -0.923880 -1.242317 1.125000 +v -1.000000 -1.625000 1.125000 +v -0.923880 -2.007684 1.125000 +v -0.707107 -2.332107 1.125000 +v -0.382684 -2.548880 1.125000 +v 0.000000 -2.625000 1.125000 +v 0.382683 -2.548880 1.125000 +v 0.707107 -2.332107 1.125000 +v 0.923880 -2.007684 1.125000 +v 1.000000 -1.625000 1.125000 +v 0.923880 -1.242317 1.125000 +v 0.707107 -0.917893 1.125000 +v 0.382683 -0.701120 1.125000 +v 0.382683 -0.701120 1.875000 +v 0.707107 -0.917893 1.875000 +v 0.923880 -1.242317 1.875000 +v 1.000000 -1.625000 1.875000 +v 0.923880 -2.007684 1.875000 +v 0.707107 -2.332107 1.875000 +v 0.382683 -2.548880 1.875000 +v 0.000000 -2.625000 1.875000 +v -0.382684 -2.548880 1.875000 +v -0.707107 -2.332107 1.875000 +v -0.923880 -2.007684 1.875000 +v -1.000000 -1.625000 1.875000 +v -0.923880 -1.242317 1.875000 +v -0.707107 -0.917893 1.875000 +v 0.000000 -0.625000 1.875000 +v -0.382684 -0.701121 1.875000 +v -0.239177 -0.422575 1.125000 +v -0.681119 -0.605634 1.125000 +v -1.019367 -0.943882 1.125000 +v -1.202425 -1.385823 1.125000 +v -1.202425 -1.864177 1.125000 +v -1.019367 -2.306119 1.125000 +v -0.681119 -2.644367 1.125000 +v -0.239177 -2.827425 1.125000 +v 0.239177 -2.827425 1.125000 +v 0.681118 -2.644367 1.125000 +v 1.019366 -2.306119 1.125000 +v 1.202425 -1.864177 1.125000 +v 1.202425 -1.385823 1.125000 +v 1.019366 -0.943881 1.125000 +v 0.681118 -0.605634 1.125000 +v 0.239177 -0.422575 1.125000 +v 0.239177 -0.422575 1.875000 +v -0.239177 -0.422575 1.875000 +v -0.681119 -0.605634 1.875000 +v -1.019367 -0.943882 1.875000 +v -1.202425 -1.385823 1.875000 +v -1.202425 -1.864177 1.875000 +v -1.019367 -2.306119 1.875000 +v -0.681119 -2.644367 1.875000 +v -0.239177 -2.827425 1.875000 +v 0.239177 -2.827425 1.875000 +v 0.681118 -2.644367 1.875000 +v 1.019366 -2.306119 1.875000 +v 1.202425 -1.864177 1.875000 +v 1.202425 -1.385823 1.875000 +v 1.019366 -0.943881 1.875000 +v 0.681118 -0.605634 1.875000 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.474286 0.471014 +vt 0.460000 0.507246 +vt 0.460000 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.411429 0.471014 +vt 0.425714 0.471014 +vt 0.425714 0.507246 +vt 0.425714 0.434783 +vt 0.460000 0.434783 +vt 0.460000 0.434783 +vt 0.425714 0.434783 +vt 0.460000 0.434783 +vt 0.460000 0.434783 +vt 0.460000 0.434783 +vt 0.425714 0.434783 +vt 0.460000 0.434783 +vt 0.460000 0.434783 +vt 0.425714 0.434783 +vt 0.460000 0.434783 +vt 0.425714 0.434783 +vt 0.460000 0.434783 +vt 0.460000 0.434783 +vt 0.425714 0.434783 +vt 0.460000 0.434783 +vt 0.425714 0.434783 +vt 0.460000 0.434783 +vt 0.460000 0.434783 +vt 0.460000 0.434783 +vt 0.460000 0.434783 +vt 0.013596 0.733632 +vt 0.013597 0.570716 +vt 0.077832 0.570716 +vt 0.460000 0.434783 +vt 0.063096 0.990488 +vt 0.003750 0.928143 +vt 0.028332 0.777628 +vt 0.425714 0.434783 +vt 0.425714 0.434783 +vt 0.425714 0.434783 +vt 0.425714 0.434783 +vt 0.425714 0.434783 +vt 0.425714 0.434783 +vt 0.425714 0.434783 +vt 0.425714 0.434783 +vt 0.077832 0.733632 +vt 0.063096 0.758604 +vt 0.045714 0.767373 +vt 0.028332 0.758604 +vt 0.003750 0.696259 +vt 0.000293 0.652174 +vt 0.003750 0.608089 +vt 0.028332 0.545744 +vt 0.045714 0.536975 +vt 0.063096 0.545744 +vt 0.087678 0.608089 +vt 0.091136 0.652174 +vt 0.087678 0.696259 +vt 0.425714 0.434783 +vt 0.045714 0.999257 +vt 0.028332 0.990488 +vt 0.013596 0.965516 +vt 0.000293 0.884058 +vt 0.003750 0.839973 +vt 0.013597 0.802600 +vt 0.045714 0.768859 +vt 0.063096 0.777628 +vt 0.077832 0.802600 +vt 0.087678 0.839973 +vt 0.091136 0.884058 +vt 0.087678 0.928143 +vt 0.077832 0.965516 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0829 -0.9966 0.0000 +vn -0.7633 0.6460 0.0000 +vn 0.7633 0.6460 0.0000 +vn -0.4580 -0.8890 0.0000 +vn 0.4580 -0.8890 0.0000 +vn -0.9524 0.3047 0.0000 +vn 0.4580 0.8890 0.0000 +vn -0.0829 -0.9966 0.0000 +vn 0.8890 0.4580 0.0000 +vn 0.7633 -0.6460 0.0000 +vn -0.9966 -0.0829 0.0000 +vn -0.6460 0.7633 0.0000 +vn 0.0829 0.9966 0.0000 +vn 0.3047 -0.9524 0.0000 +vn 0.6460 0.7633 0.0000 +vn 0.9524 -0.3047 0.0000 +vn -0.8890 -0.4580 0.0000 +vn -0.8890 0.4580 0.0000 +vn -0.3047 0.9524 0.0000 +vn 0.6460 -0.7633 0.0000 +vn 0.3047 0.9524 0.0000 +vn 0.9966 0.0829 0.0000 +vn -0.6460 -0.7633 0.0000 +vn -0.9966 0.0829 0.0000 +vn 0.8890 -0.4580 0.0000 +vn -0.0829 0.9966 0.0000 +vn -0.3047 -0.9524 0.0000 +vn -0.9524 -0.3047 0.0000 +vn 0.9966 -0.0829 0.0000 +vn -0.4580 0.8890 0.0000 +vn 0.9524 0.3047 0.0000 +vn -0.7633 -0.6460 0.0000 +s off +f 611/1077/109 579/1078/109 580/1079/109 +f 612/1080/109 580/1081/109 581/1082/109 +f 613/1083/109 581/1084/109 582/1085/109 +f 614/1086/109 582/1087/109 583/1088/109 +f 615/1089/109 583/1090/109 584/1091/109 +f 616/1092/109 584/1093/109 585/1094/109 +f 617/1095/109 585/1096/109 586/1097/109 +f 618/1098/109 586/1099/109 587/1100/109 +f 619/1101/109 587/1102/109 588/1103/109 +f 620/1104/109 588/1105/109 589/1106/109 +f 621/1107/109 589/1108/109 590/1109/109 +f 622/1110/109 590/1111/109 591/1112/109 +f 623/1113/109 591/1114/109 592/1115/109 +f 592/1116/109 577/1117/109 624/1118/109 +f 577/1119/109 578/1120/109 609/1121/109 +f 578/1122/109 579/1123/109 610/1124/109 +f 628/1125/110 605/1126/110 606/1127/110 +f 629/1128/110 604/1129/110 605/1130/110 +f 630/1131/110 603/1132/110 604/1133/110 +f 631/1134/110 602/1135/110 603/1136/110 +f 632/1137/110 601/1138/110 602/1139/110 +f 633/1140/110 600/1141/110 601/1142/110 +f 634/1143/110 599/1144/110 600/1145/110 +f 635/1146/110 598/1147/110 599/1148/110 +f 636/1149/110 597/1150/110 598/1151/110 +f 637/1152/110 596/1153/110 597/1154/110 +f 638/1155/110 595/1156/110 596/1157/110 +f 639/1158/110 594/1159/110 595/1160/110 +f 640/1161/110 593/1162/110 594/1163/110 +f 593/1164/110 625/1165/110 607/1166/110 +f 607/1167/110 626/1168/110 608/1169/110 +f 608/1170/110 627/1171/110 606/1172/110 +f 619/1101/111 598/1173/111 587/1174/111 +f 630/1131/112 581/1175/112 613/1083/112 +f 589/1106/113 637/1152/113 620/1104/113 +f 603/1132/114 613/1083/114 582/1085/114 +f 620/1104/115 597/1176/115 588/1177/115 +f 631/1134/116 582/1178/116 614/1086/116 +f 590/1109/117 638/1155/117 621/1107/117 +f 602/1135/118 614/1086/118 583/1088/118 +f 625/1165/119 592/1179/119 624/1118/119 +f 621/1107/120 596/1180/120 589/1181/120 +f 632/1137/121 583/1182/121 615/1089/121 +f 607/1166/122 624/1118/122 577/1117/122 +f 591/1112/123 639/1158/123 622/1110/123 +f 601/1138/124 615/1089/124 584/1091/124 +f 609/1121/125 607/1183/125 577/1184/125 +f 622/1110/126 595/1185/126 590/1186/126 +f 633/1140/127 584/1187/127 616/1092/127 +f 578/1120/128 626/1168/128 609/1121/128 +f 592/1115/129 640/1161/129 623/1113/129 +f 600/1141/130 616/1092/130 585/1094/130 +f 610/1124/131 608/1188/131 578/1189/131 +f 623/1113/132 594/1190/132 591/1191/132 +f 634/1143/133 585/1192/133 617/1095/133 +f 579/1123/134 627/1171/134 610/1124/134 +f 599/1144/135 617/1095/135 586/1097/135 +f 628/1125/136 579/1193/136 611/1077/136 +f 635/1146/137 586/1194/137 618/1098/137 +f 605/1126/138 611/1077/138 580/1079/138 +f 598/1147/139 618/1098/139 587/1100/139 +f 591/1195/109 587/1196/109 583/1197/109 +f 629/1128/140 580/1198/140 612/1080/140 +f 588/1103/141 636/1149/141 619/1101/141 +f 593/1199/110 605/1200/110 601/1201/110 +f 604/1129/142 612/1080/142 581/1082/142 +f 619/1101/111 636/1149/111 598/1173/111 +f 630/1131/112 604/1202/112 581/1175/112 +f 589/1106/113 596/1153/113 637/1152/113 +f 603/1132/114 630/1131/114 613/1083/114 +f 620/1104/115 637/1152/115 597/1176/115 +f 631/1134/116 603/1203/116 582/1178/116 +f 590/1109/117 595/1156/117 638/1155/117 +f 602/1135/118 631/1134/118 614/1086/118 +f 625/1165/119 593/1204/119 592/1179/119 +f 621/1107/120 638/1155/120 596/1180/120 +f 632/1137/121 602/1205/121 583/1182/121 +f 607/1166/122 625/1165/122 624/1118/122 +f 591/1112/123 594/1159/123 639/1158/123 +f 601/1138/124 632/1137/124 615/1089/124 +f 609/1121/125 626/1168/125 607/1183/125 +f 622/1110/126 639/1158/126 595/1185/126 +f 633/1140/127 601/1206/127 584/1187/127 +f 578/1120/128 608/1169/128 626/1168/128 +f 592/1115/129 593/1162/129 640/1161/129 +f 600/1141/130 633/1140/130 616/1092/130 +f 610/1124/131 627/1171/131 608/1188/131 +f 623/1113/132 640/1161/132 594/1190/132 +f 634/1143/133 600/1207/133 585/1192/133 +f 579/1123/134 606/1172/134 627/1171/134 +f 599/1144/135 634/1143/135 617/1095/135 +f 628/1125/136 606/1208/136 579/1193/136 +f 635/1146/137 599/1209/137 586/1194/137 +f 605/1126/138 628/1125/138 611/1077/138 +f 598/1147/139 635/1146/139 618/1098/139 +f 579/1210/109 578/1211/109 591/1195/109 +f 578/1211/109 577/1212/109 591/1195/109 +f 577/1212/109 592/1213/109 591/1195/109 +f 591/1195/109 590/1214/109 589/1215/109 +f 589/1215/109 588/1216/109 587/1196/109 +f 587/1196/109 586/1217/109 583/1197/109 +f 586/1217/109 585/1218/109 583/1197/109 +f 585/1218/109 584/1219/109 583/1197/109 +f 583/1197/109 582/1220/109 581/1221/109 +f 581/1221/109 580/1222/109 579/1210/109 +f 591/1195/109 589/1215/109 587/1196/109 +f 583/1197/109 581/1221/109 579/1210/109 +f 579/1210/109 591/1195/109 583/1197/109 +f 629/1128/140 605/1223/140 580/1198/140 +f 588/1103/141 597/1150/141 636/1149/141 +f 593/1199/110 607/1224/110 608/1225/110 +f 608/1225/110 606/1226/110 593/1199/110 +f 606/1226/110 605/1200/110 593/1199/110 +f 605/1200/110 604/1227/110 603/1228/110 +f 603/1228/110 602/1229/110 605/1200/110 +f 602/1229/110 601/1201/110 605/1200/110 +f 601/1201/110 600/1230/110 599/1231/110 +f 599/1231/110 598/1232/110 597/1233/110 +f 597/1233/110 596/1234/110 595/1235/110 +f 595/1235/110 594/1236/110 597/1233/110 +f 594/1236/110 593/1199/110 597/1233/110 +f 601/1201/110 599/1231/110 593/1199/110 +f 599/1231/110 597/1233/110 593/1199/110 +f 604/1129/142 629/1128/142 612/1080/142 +o Gun +v 0.000000 0.625000 -2.000000 +v -0.312500 0.541266 -2.000000 +v -0.541266 0.312500 -2.000000 +v -0.625000 0.000000 -2.000000 +v -0.541266 -0.312500 -2.000000 +v -0.312500 -0.541266 -2.000000 +v 0.000000 -0.625000 -2.000000 +v 0.312500 -0.541266 -2.000000 +v 0.541265 -0.312500 -2.000000 +v 0.625000 -0.000000 -2.000000 +v 0.541266 0.312500 -2.000000 +v 0.312500 0.541266 -2.000000 +v 0.000000 0.625000 -5.625000 +v -0.312500 0.541266 -5.625000 +v -0.541266 0.312500 -5.625000 +v -0.625000 0.000000 -5.625000 +v -0.541266 -0.312500 -5.625000 +v -0.312500 -0.541266 -5.625000 +v 0.000000 -0.625000 -5.625000 +v 0.312500 -0.541266 -5.625000 +v 0.541265 -0.312500 -5.625000 +v 0.625000 -0.000000 -5.625000 +v 0.541266 0.312500 -5.625000 +v 0.312500 0.541266 -5.625000 +v -0.750000 -1.250000 3.000000 +v 0.750000 -1.250000 3.000000 +v -0.750000 -1.250000 -2.000000 +v 0.750000 -1.250000 -2.000000 +v -0.750000 0.375000 -2.000000 +v -0.750000 0.375000 3.000000 +v 0.750000 0.375000 3.000000 +v 0.750000 0.375000 -2.000000 +v -0.250000 0.750000 -2.000000 +v -0.250000 0.750000 3.000000 +v 0.250000 0.750000 3.000000 +v 0.250000 0.750000 -2.000000 +v 0.000000 0.750000 -5.625000 +v -0.375000 0.649519 -5.625000 +v -0.649519 0.375000 -5.625000 +v -0.750000 0.000000 -5.625000 +v -0.649519 -0.375000 -5.625000 +v -0.375000 -0.649519 -5.625000 +v 0.000000 -0.750000 -5.625000 +v 0.375000 -0.649519 -5.625000 +v 0.649519 -0.375000 -5.625000 +v 0.750000 -0.000000 -5.625000 +v 0.649519 0.375000 -5.625000 +v 0.375000 0.649519 -5.625000 +v 0.000000 0.750000 -6.000000 +v -0.375000 0.649519 -6.000000 +v -0.649519 0.375000 -6.000000 +v -0.750000 0.000000 -6.000000 +v -0.649519 -0.375000 -6.000000 +v -0.375000 -0.649519 -6.000000 +v 0.000000 -0.750000 -6.000000 +v 0.375000 -0.649519 -6.000000 +v 0.649519 -0.375000 -6.000000 +v 0.750000 -0.000000 -6.000000 +v 0.649519 0.375000 -6.000000 +v 0.375000 0.649519 -6.000000 +v -0.625000 0.000000 3.000000 +v -0.541266 0.312500 3.000000 +v -0.312500 0.541266 3.000000 +v 0.000000 0.625000 3.000000 +v -0.500000 -0.250000 -5.750000 +v -0.500000 -0.250000 -2.000000 +v 0.500000 -0.250000 -2.000000 +v 0.500000 -0.250000 -5.750000 +v -0.500000 -0.625000 -2.000000 +v -0.250000 -0.875000 -2.000000 +v 0.250000 -0.875000 -2.000000 +v 0.500000 -0.625000 -2.000000 +v -0.250000 -0.875000 -5.750000 +v -0.500000 -0.625000 -5.750000 +v 0.500000 -0.625000 -5.750000 +v 0.250000 -0.875000 -5.750000 +v -0.541266 -0.312500 3.000000 +v -0.312500 -0.541266 3.000000 +v 0.000000 -0.625000 3.000000 +v 0.312500 -0.541266 3.000000 +v 0.541265 -0.312500 3.000000 +v 0.625000 -0.000000 3.000000 +v 0.541266 0.312500 3.000000 +v 0.312500 0.541266 3.000000 +v -0.625000 0.000000 3.125000 +v -0.541266 0.312500 3.125000 +v -0.312500 0.541266 3.125000 +v 0.000000 0.625000 3.125000 +v -0.541266 -0.312500 3.125000 +v -0.312500 -0.541266 3.125000 +v 0.000000 -0.625000 3.125000 +v 0.312500 -0.541266 3.125000 +v 0.541265 -0.312500 3.125000 +v 0.625000 -0.000000 3.125000 +v 0.541266 0.312500 3.125000 +v 0.312500 0.541266 3.125000 +v 0.000000 1.000000 3.625000 +v -0.500000 0.866025 3.625000 +v -0.866025 0.500000 3.625000 +v -1.000000 0.000000 3.625000 +v -0.866025 -0.500000 3.625000 +v -0.500000 -0.866025 3.625000 +v 0.000000 -1.000000 3.625000 +v 0.500000 -0.866025 3.625000 +v 0.866025 -0.500000 3.625000 +v 1.000000 -0.000000 3.625000 +v 0.866026 0.500000 3.625000 +v 0.500000 0.866025 3.625000 +v 0.000000 1.000000 4.125000 +v -0.500000 0.866025 4.125000 +v -0.866025 0.500000 4.125000 +v -1.000000 0.000000 4.125000 +v -0.866025 -0.500000 4.125000 +v -0.500000 -0.866025 4.125000 +v 0.000000 -1.000000 4.125000 +v 0.500000 -0.866025 4.125000 +v 0.866025 -0.500000 4.125000 +v 1.000000 -0.000000 4.125000 +v 0.866026 0.500000 4.125000 +v 0.500000 0.866025 4.125000 +v 0.000000 0.750000 4.125000 +v -0.375000 0.649519 4.125000 +v -0.649519 0.375000 4.125000 +v -0.750000 0.000000 4.125000 +v -0.649519 -0.375000 4.125000 +v -0.375000 -0.649519 4.125000 +v 0.000000 -0.750000 4.125000 +v 0.375000 -0.649519 4.125000 +v 0.649519 -0.375000 4.125000 +v 0.750000 -0.000000 4.125000 +v 0.649519 0.375000 4.125000 +v 0.375000 0.649519 4.125000 +v 0.000000 0.500000 3.625000 +v -0.250000 0.433012 3.625000 +v -0.433013 0.250000 3.625000 +v -0.500000 -0.000000 3.625000 +v -0.433012 -0.250000 3.625000 +v -0.250000 -0.433013 3.625000 +v 0.000000 -0.500000 3.625000 +v 0.250000 -0.433013 3.625000 +v 0.433012 -0.250000 3.625000 +v 0.500000 -0.000000 3.625000 +v 0.433013 0.250000 3.625000 +v 0.250000 0.433012 3.625000 +v 0.000000 0.500000 -6.000000 +v -0.250000 0.433012 -6.000000 +v -0.433012 0.250000 -6.000000 +v -0.500000 0.000000 -6.000000 +v -0.433012 -0.250000 -6.000000 +v -0.250000 -0.433012 -6.000000 +v 0.000000 -0.500000 -6.000000 +v 0.250000 -0.433013 -6.000000 +v 0.433012 -0.250000 -6.000000 +v 0.500000 0.000000 -6.000000 +v 0.433013 0.250000 -6.000000 +v 0.250000 0.433012 -6.000000 +v 0.000000 0.500000 -6.250000 +v -0.250000 0.433012 -6.250000 +v -0.433012 0.250000 -6.250000 +v -0.500000 0.000000 -6.250000 +v -0.433012 -0.250000 -6.250000 +v -0.250000 -0.433012 -6.250000 +v 0.000000 -0.500000 -6.250000 +v 0.250000 -0.433013 -6.250000 +v 0.433012 -0.250000 -6.250000 +v 0.500000 0.000000 -6.250000 +v 0.433013 0.250000 -6.250000 +v 0.250000 0.433012 -6.250000 +v 0.000000 1.000000 -6.250000 +v -0.500000 0.866025 -6.250000 +v -0.866025 0.500000 -6.250000 +v -1.000000 -0.000000 -6.250000 +v -0.866025 -0.500000 -6.250000 +v -0.500000 -0.866025 -6.250000 +v 0.000000 -1.000000 -6.250000 +v 0.500000 -0.866026 -6.250000 +v 0.866025 -0.500000 -6.250000 +v 1.000000 -0.000001 -6.250000 +v 0.866026 0.499999 -6.250000 +v 0.500000 0.866025 -6.250000 +v 0.000000 1.000000 -6.750000 +v -0.500000 0.866025 -6.750000 +v -0.866025 0.500000 -6.750000 +v -1.000000 -0.000000 -6.750000 +v -0.866025 -0.500000 -6.750000 +v -0.500000 -0.866025 -6.750000 +v 0.000000 -1.000000 -6.750000 +v 0.500000 -0.866026 -6.750000 +v 0.866025 -0.500000 -6.750000 +v 1.000000 -0.000001 -6.750000 +v 0.866026 0.499999 -6.750000 +v 0.500000 0.866025 -6.750000 +v 0.000000 1.000000 -7.250000 +v -0.500000 0.866025 -7.250000 +v -0.866025 0.500000 -7.250000 +v -1.000000 -0.000000 -7.250000 +v -0.866025 -0.500000 -7.250000 +v -0.500000 -0.866025 -7.250000 +v 0.000000 -1.000000 -7.250000 +v 0.500000 -0.866026 -7.250000 +v 0.866025 -0.500000 -7.250000 +v 1.000000 -0.000001 -7.250000 +v 0.866026 0.499999 -7.250000 +v 0.500000 0.866025 -7.250000 +v 0.000000 1.000000 -7.750000 +v -0.500000 0.866025 -7.750000 +v -0.866025 0.500000 -7.750000 +v -1.000000 -0.000000 -7.750000 +v -0.866025 -0.500000 -7.750000 +v -0.500000 -0.866025 -7.750000 +v 0.000000 -1.000000 -7.750000 +v 0.500000 -0.866026 -7.750000 +v 0.866025 -0.500000 -7.750000 +v 1.000000 -0.000001 -7.750000 +v 0.866026 0.499999 -7.750000 +v 0.500000 0.866025 -7.750000 +v 0.000000 0.500000 -6.750000 +v -0.250000 0.433012 -6.750000 +v -0.433012 0.250000 -6.750000 +v -0.500000 0.000000 -6.750000 +v -0.433012 -0.250000 -6.750000 +v -0.250000 -0.433012 -6.750000 +v 0.000000 -0.500000 -6.750000 +v 0.250000 -0.433013 -6.750000 +v 0.433012 -0.250000 -6.750000 +v 0.500000 0.000000 -6.750000 +v 0.433013 0.250000 -6.750000 +v 0.250000 0.433012 -6.750000 +v 0.000000 0.500000 -7.250000 +v -0.250000 0.433012 -7.250000 +v -0.433012 0.250000 -7.250000 +v -0.500000 0.000000 -7.250000 +v -0.433012 -0.250000 -7.250000 +v -0.250000 -0.433012 -7.250000 +v 0.000000 -0.500000 -7.250000 +v 0.250000 -0.433013 -7.250000 +v 0.433012 -0.250000 -7.250000 +v 0.500000 0.000000 -7.250000 +v 0.433013 0.250000 -7.250000 +v 0.250000 0.433012 -7.250000 +v 0.000000 0.500000 -7.750000 +v -0.250000 0.433012 -7.750000 +v -0.433012 0.250000 -7.750000 +v -0.500000 0.000000 -7.750000 +v -0.433012 -0.250000 -7.750000 +v -0.250000 -0.433012 -7.750000 +v 0.000000 -0.500000 -7.750000 +v 0.250000 -0.433013 -7.750000 +v 0.433012 -0.250000 -7.750000 +v 0.500000 0.000000 -7.750000 +v 0.433013 0.250000 -7.750000 +v 0.250000 0.433012 -7.750000 +v 0.000000 0.500000 -8.000000 +v -0.250000 0.433012 -8.000000 +v -0.433012 0.250000 -8.000000 +v -0.500000 0.000000 -8.000000 +v -0.433012 -0.250000 -8.000000 +v -0.250000 -0.433012 -8.000000 +v 0.000000 -0.500000 -8.000000 +v 0.250000 -0.433013 -8.000000 +v 0.433012 -0.250000 -8.000000 +v 0.500000 0.000000 -8.000000 +v 0.433013 0.250000 -8.000000 +v 0.250000 0.433012 -8.000000 +v -0.750000 -0.125000 -6.750000 +v -0.750000 -0.125000 -7.250000 +v 0.750000 0.125000 -7.250000 +v 0.750000 0.125000 -6.750000 +v 0.838388 0.088388 -7.250000 +v 0.838388 0.088388 -6.750000 +v 0.875000 -0.000000 -7.250000 +v 0.875000 -0.000000 -6.750000 +v 0.838388 -0.088389 -7.250000 +v 0.838388 -0.088389 -6.750000 +v 0.750000 -0.125000 -7.250000 +v 0.750000 -0.125000 -6.750000 +v 0.661612 -0.088389 -7.250000 +v 0.661612 -0.088389 -6.750000 +v 0.625000 -0.000000 -7.250000 +v 0.625000 -0.000000 -6.750000 +v 0.661612 0.088388 -7.250000 +v 0.661612 0.088388 -6.750000 +v -0.838388 -0.088388 -7.250000 +v -0.838388 -0.088388 -6.750000 +v -0.875000 0.000000 -7.250000 +v -0.875000 0.000000 -6.750000 +v -0.838388 0.088388 -7.250000 +v -0.838388 0.088388 -6.750000 +v -0.750000 0.125000 -7.250000 +v -0.750000 0.125000 -6.750000 +v -0.661612 0.088388 -7.250000 +v -0.661612 0.088388 -6.750000 +v -0.625000 0.000000 -7.250000 +v -0.625000 0.000000 -6.750000 +v -0.661612 -0.088388 -7.250000 +v -0.661612 -0.088388 -6.750000 +v -0.125000 0.750000 -6.750000 +v -0.125000 0.750000 -7.250000 +v 0.125000 -0.750000 -7.250000 +v 0.125000 -0.750000 -6.750000 +v 0.088388 -0.838388 -7.250000 +v 0.088388 -0.838388 -6.750000 +v 0.000000 -0.875000 -7.250000 +v 0.000000 -0.875000 -6.750000 +v -0.088388 -0.838388 -7.250000 +v -0.088388 -0.838388 -6.750000 +v -0.125000 -0.750000 -7.250000 +v -0.125000 -0.750000 -6.750000 +v -0.088388 -0.661612 -7.250000 +v -0.088388 -0.661612 -6.750000 +v 0.000000 -0.625000 -7.250000 +v 0.000000 -0.625000 -6.750000 +v 0.088388 -0.661612 -7.250000 +v 0.088388 -0.661612 -6.750000 +v -0.088388 0.838388 -7.250000 +v -0.088388 0.838388 -6.750000 +v 0.000000 0.875000 -7.250000 +v 0.000000 0.875000 -6.750000 +v 0.088388 0.838388 -7.250000 +v 0.088388 0.838388 -6.750000 +v 0.125000 0.750000 -7.250000 +v 0.125000 0.750000 -6.750000 +v 0.088388 0.661611 -7.250000 +v 0.088388 0.661611 -6.750000 +v 0.000000 0.625000 -7.250000 +v 0.000000 0.625000 -6.750000 +v -0.088388 0.661611 -7.250000 +v -0.088388 0.661611 -6.750000 +v -0.618718 0.441942 -6.750000 +v -0.618718 0.441942 -7.250000 +v 0.618718 -0.441942 -7.250000 +v 0.618718 -0.441942 -6.750000 +v 0.655330 -0.530330 -7.250000 +v 0.655330 -0.530330 -6.750000 +v 0.618718 -0.618719 -7.250000 +v 0.618718 -0.618719 -6.750000 +v 0.530330 -0.655330 -7.250000 +v 0.530330 -0.655330 -6.750000 +v 0.441942 -0.618719 -7.250000 +v 0.441942 -0.618719 -6.750000 +v 0.405330 -0.530330 -7.250000 +v 0.405330 -0.530330 -6.750000 +v 0.441942 -0.441942 -7.250000 +v 0.441942 -0.441942 -6.750000 +v 0.530330 -0.405330 -7.250000 +v 0.530330 -0.405330 -6.750000 +v -0.655330 0.530330 -7.250000 +v -0.655330 0.530330 -6.750000 +v -0.618718 0.618718 -7.250000 +v -0.618718 0.618718 -6.750000 +v -0.530330 0.655330 -7.250000 +v -0.530330 0.655330 -6.750000 +v -0.441942 0.618718 -7.250000 +v -0.441941 0.618718 -6.750000 +v -0.405330 0.530330 -7.250000 +v -0.405330 0.530330 -6.750000 +v -0.441941 0.441942 -7.250000 +v -0.441941 0.441942 -6.750000 +v -0.530330 0.405330 -7.250000 +v -0.530330 0.405330 -6.750000 +v 0.441942 0.618718 -6.750000 +v 0.441942 0.618718 -7.250000 +v -0.441942 -0.618718 -7.250000 +v -0.441942 -0.618718 -6.750000 +v -0.530330 -0.655330 -7.250000 +v -0.530330 -0.655330 -6.750000 +v -0.618719 -0.618718 -7.250000 +v -0.618719 -0.618718 -6.750000 +v -0.655330 -0.530330 -7.250000 +v -0.655330 -0.530330 -6.750000 +v -0.618719 -0.441942 -7.250000 +v -0.618719 -0.441942 -6.750000 +v -0.530330 -0.405330 -7.250000 +v -0.530330 -0.405330 -6.750000 +v -0.441942 -0.441942 -7.250000 +v -0.441942 -0.441942 -6.750000 +v -0.405330 -0.530330 -7.250000 +v -0.405330 -0.530330 -6.750000 +v 0.530330 0.655330 -7.250000 +v 0.530330 0.655330 -6.750000 +v 0.618719 0.618718 -7.250000 +v 0.618719 0.618718 -6.750000 +v 0.655330 0.530330 -7.250000 +v 0.655330 0.530330 -6.750000 +v 0.618719 0.441941 -7.250000 +v 0.618719 0.441941 -6.750000 +v 0.530330 0.405330 -7.250000 +v 0.530330 0.405330 -6.750000 +v 0.441942 0.441941 -7.250000 +v 0.441942 0.441941 -6.750000 +v 0.405330 0.530330 -7.250000 +v 0.405330 0.530330 -6.750000 +v -0.500000 -1.250000 0.000000 +v 0.500000 -1.250000 0.000000 +v -0.500000 -1.250000 -2.000000 +v 0.500000 -1.250000 -2.000000 +v -0.500000 -2.000000 -2.000000 +v -0.500000 -2.000000 0.000000 +v 0.500000 -2.000000 0.000000 +v 0.500000 -2.000000 -2.000000 +v -0.560318 -0.124981 -2.187500 +v -0.564682 0.124981 -2.187500 +v -0.560318 -0.124981 -2.437500 +v -0.564682 0.124981 -2.437500 +v -0.814643 0.120618 -2.437500 +v -0.810280 -0.129344 -2.437500 +v -0.814643 0.120618 -2.187500 +v -0.810280 -0.129344 -2.187500 +v 0.187500 -3.250000 -0.375000 +v -0.187500 -3.250000 -0.375000 +v -0.187500 -3.250000 -2.000000 +v 0.187500 -3.250000 -2.000000 +v 0.187500 -3.000000 -2.000000 +v -0.187500 -3.000000 -2.000000 +v 0.187500 -3.000000 -0.375000 +v -0.187500 -3.000000 -0.375000 +v -0.187500 -2.000000 -1.500000 +v -0.062500 -2.000000 -1.375000 +v 0.062500 -2.000000 -1.375000 +v 0.187500 -2.000000 -1.500000 +v -0.062500 -2.000000 -2.000000 +v -0.187500 -2.000000 -1.875000 +v 0.187500 -2.000000 -1.875000 +v 0.062500 -2.000000 -2.000000 +v -0.187500 -3.000000 -1.875000 +v -0.062500 -3.000000 -2.000000 +v -0.062500 -3.000000 -1.375000 +v -0.187500 -3.000000 -1.500000 +v 0.187500 -3.000000 -1.500000 +v 0.062500 -3.000000 -1.375000 +v 0.062500 -3.000000 -2.000000 +v 0.187500 -3.000000 -1.875000 +v 0.187500 -2.000000 0.000000 +v -0.187500 -2.000000 0.000000 +v 0.187500 -2.000000 -0.250000 +v -0.187500 -2.000000 -0.250000 +v -0.187500 -2.875000 0.000000 +v 0.187500 -2.875000 0.000000 +v -0.187500 -2.875000 -0.250000 +v 0.187500 -2.875000 -0.250000 +v -0.810280 -0.129344 -5.187500 +v -0.814643 0.120618 -5.187500 +v -0.810280 -0.129344 -5.437500 +v -0.814643 0.120618 -5.437500 +v -0.564682 0.124981 -5.437500 +v -0.560318 -0.124981 -5.437500 +v -0.564682 0.124981 -5.187500 +v -0.560318 -0.124981 -5.187500 +v 1.064605 -0.116255 -2.437500 +v -1.064605 0.116255 -5.187500 +v -1.060242 -0.133707 -5.187500 +v 1.060242 0.133707 -2.437500 +v 1.060242 0.133707 -5.187500 +v 1.064605 -0.116255 -5.187500 +v -1.060242 -0.133707 -2.437500 +v -1.064605 0.116255 -2.437500 +v 0.560318 0.124981 -5.187500 +v 0.564682 -0.124981 -5.187500 +v 0.560318 0.124981 -5.437500 +v 0.564682 -0.124981 -5.437500 +v 0.814643 -0.120618 -5.437500 +v 0.810280 0.129344 -5.437500 +v 0.814643 -0.120618 -5.187500 +v 0.810280 0.129344 -5.187500 +v 0.810280 0.129344 -2.187500 +v 0.814643 -0.120618 -2.187500 +v 0.810280 0.129344 -2.437500 +v 0.814643 -0.120618 -2.437500 +v 0.564682 -0.124981 -2.437500 +v 0.560318 0.124981 -2.437500 +v 0.564682 -0.124981 -2.187500 +v 0.560318 0.124981 -2.187500 +v -0.662913 -0.662912 3.750000 +v -0.600413 -0.725412 3.786612 +v -0.574525 -0.751301 3.875000 +v -0.600413 -0.725412 3.963388 +v -0.662913 -0.662912 4.000000 +v -0.725413 -0.600412 3.963388 +v -0.751301 -0.574524 3.875000 +v -0.725413 -0.600412 3.786612 +v -0.751301 -0.751301 3.750000 +v -0.688802 -0.813801 3.786612 +v -0.662913 -0.839689 3.875000 +v -0.688802 -0.813801 3.963388 +v -0.751301 -0.751301 4.000000 +v -0.813801 -0.688801 3.963388 +v -0.839690 -0.662912 3.875000 +v -0.813801 -0.688801 3.786612 +v 0.662912 -0.662913 3.750000 +v 0.725412 -0.600413 3.786612 +v 0.751301 -0.574525 3.875000 +v 0.725412 -0.600413 3.963388 +v 0.662912 -0.662913 4.000000 +v 0.600412 -0.725413 3.963388 +v 0.574524 -0.751301 3.875000 +v 0.600412 -0.725413 3.786612 +v 0.751301 -0.751301 3.750000 +v 0.813801 -0.688802 3.786612 +v 0.839689 -0.662913 3.875000 +v 0.813801 -0.688802 3.963388 +v 0.751301 -0.751301 4.000000 +v 0.688801 -0.813802 3.963388 +v 0.662912 -0.839690 3.875000 +v 0.688801 -0.813802 3.786612 +v 0.000000 0.937500 3.750000 +v -0.088387 0.937500 3.786612 +v -0.125000 0.937500 3.875000 +v -0.088387 0.937500 3.963388 +v 0.000000 0.937500 4.000000 +v 0.088389 0.937500 3.963388 +v 0.125000 0.937500 3.875000 +v 0.088389 0.937500 3.786612 +v 0.000000 1.062500 3.750000 +v -0.088387 1.062500 3.786612 +v -0.125000 1.062500 3.875000 +v -0.088387 1.062500 3.963388 +v 0.000000 1.062500 4.000000 +v 0.088389 1.062500 3.963388 +v 0.125000 1.062500 3.875000 +v 0.088389 1.062500 3.786612 +v -0.688801 0.813801 3.786612 +v -0.662912 0.839690 3.875000 +v -0.688801 0.813801 3.963388 +v -0.751301 0.751301 4.000000 +v -0.813800 0.688802 3.963388 +v -0.839689 0.662913 3.875000 +v -0.813800 0.688802 3.786612 +v -0.751301 0.751301 3.750000 +v -0.600412 0.725413 3.786612 +v -0.574524 0.751301 3.875000 +v -0.600412 0.725413 3.963388 +v -0.662912 0.662913 4.000000 +v -0.725412 0.600413 3.963388 +v -0.751301 0.574525 3.875000 +v -0.725412 0.600413 3.786612 +v -0.662912 0.662913 3.750000 +v 0.813801 0.688801 3.786612 +v 0.839690 0.662912 3.875000 +v 0.813801 0.688801 3.963388 +v 0.751301 0.751301 4.000000 +v 0.688802 0.813800 3.963388 +v 0.662913 0.839689 3.875000 +v 0.688802 0.813800 3.786612 +v 0.751301 0.751301 3.750000 +v 0.725413 0.600412 3.786612 +v 0.751301 0.574524 3.875000 +v 0.725413 0.600412 3.963388 +v 0.662913 0.662912 4.000000 +v 0.600413 0.725412 3.963388 +v 0.574525 0.751301 3.875000 +v 0.600413 0.725412 3.786612 +v 0.662913 0.662912 3.750000 +v -0.937500 0.000000 3.750000 +v -0.937500 -0.088388 3.786612 +v -0.937500 -0.125000 3.875000 +v -0.937500 -0.088388 3.963388 +v -0.937500 0.000000 4.000000 +v -0.937500 0.088389 3.963388 +v -0.937500 0.125000 3.875000 +v -0.937500 0.088389 3.786612 +v -1.062500 0.000000 3.750000 +v -1.062500 -0.088388 3.786612 +v -1.062500 -0.125000 3.875000 +v -1.062500 -0.088388 3.963388 +v -1.062500 0.000000 4.000000 +v -1.062500 0.088389 3.963388 +v -1.062500 0.125000 3.875000 +v -1.062500 0.088389 3.786612 +v 1.062500 -0.088389 3.786612 +v 1.062500 -0.125001 3.875000 +v 1.062500 -0.088389 3.963388 +v 1.062500 -0.000001 4.000000 +v 1.062500 0.088387 3.963388 +v 1.062500 0.124999 3.875000 +v 1.062500 0.088387 3.786612 +v 1.062500 -0.000001 3.750000 +v 0.937500 -0.088389 3.786612 +v 0.937500 -0.125001 3.875000 +v 0.937500 -0.088389 3.963388 +v 0.937500 -0.000001 4.000000 +v 0.937500 0.088387 3.963388 +v 0.937500 0.124999 3.875000 +v 0.937500 0.088387 3.786612 +v 0.937500 -0.000001 3.750000 +v -0.088389 -1.062500 3.786612 +v -0.125000 -1.062500 3.875000 +v -0.088389 -1.062500 3.963388 +v -0.000000 -1.062500 4.000000 +v 0.088387 -1.062500 3.963388 +v 0.125000 -1.062500 3.875000 +v 0.088387 -1.062500 3.786612 +v -0.000000 -1.062500 3.750000 +v -0.088389 -0.937500 3.786612 +v -0.125000 -0.937500 3.875000 +v -0.088389 -0.937500 3.963388 +v -0.000000 -0.937500 4.000000 +v 0.088387 -0.937500 3.963388 +v 0.125000 -0.937500 3.875000 +v 0.088387 -0.937500 3.786612 +v -0.000000 -0.937500 3.750000 +v 0.364820 0.366721 -5.445083 +v 0.412380 0.339263 -5.312500 +v 0.364820 0.366721 -5.179917 +v 0.250000 0.433013 -5.125000 +v 0.135180 0.499304 -5.179917 +v 0.087620 0.526763 -5.312500 +v 0.135180 0.499304 -5.445083 +v 0.250000 0.433013 -5.500000 +v 0.489820 0.583228 -5.445083 +v 0.537380 0.555769 -5.312500 +v 0.489820 0.583228 -5.179917 +v 0.375000 0.649519 -5.125000 +v 0.260180 0.715810 -5.179917 +v 0.212620 0.743269 -5.312500 +v 0.260180 0.715810 -5.445083 +v 0.375000 0.649519 -5.500000 +v 0.951547 1.471350 -5.400888 +v 0.983253 1.453044 -5.312500 +v 0.951547 1.471350 -5.224112 +v 0.875000 1.515544 -5.187500 +v 0.798453 1.559739 -5.224112 +v 0.766747 1.578044 -5.312500 +v 0.798453 1.559739 -5.400888 +v 0.875000 1.515544 -5.437500 +v 0.903093 1.210650 -5.489277 +v 0.966506 1.174038 -5.312500 +v 0.903093 1.210650 -5.135723 +v 0.750000 1.299038 -5.062500 +v 0.596907 1.387426 -5.135723 +v 0.533494 1.424038 -5.312500 +v 0.596907 1.387426 -5.489277 +v 0.750000 1.299038 -5.562500 +v 0.528093 0.561131 -5.489277 +v 0.591506 0.524519 -5.312500 +v 0.528093 0.561131 -5.135723 +v 0.375000 0.649519 -5.062500 +v 0.221907 0.737907 -5.135723 +v 0.158494 0.774519 -5.312500 +v 0.221907 0.737907 -5.489277 +v 0.375000 0.649519 -5.562500 +v 0.375000 0.649519 -2.562500 +v 0.221907 0.737907 -2.489277 +v 0.158494 0.774519 -2.312500 +v 0.221907 0.737907 -2.135723 +v 0.375000 0.649519 -2.062500 +v 0.528093 0.561131 -2.135723 +v 0.591506 0.524519 -2.312500 +v 0.528093 0.561131 -2.489277 +v 0.750000 1.299038 -2.562500 +v 0.596907 1.387426 -2.489277 +v 0.533494 1.424038 -2.312500 +v 0.596907 1.387426 -2.135723 +v 0.750000 1.299038 -2.062500 +v 0.903093 1.210650 -2.135723 +v 0.966506 1.174038 -2.312500 +v 0.903093 1.210650 -2.489277 +v 0.875000 1.515544 -2.437500 +v 0.798453 1.559739 -2.400888 +v 0.766747 1.578044 -2.312500 +v 0.798453 1.559739 -2.224112 +v 0.875000 1.515544 -2.187500 +v 0.951547 1.471350 -2.224112 +v 0.983253 1.453044 -2.312500 +v 0.951547 1.471350 -2.400888 +v 0.375000 0.649519 -2.500000 +v 0.260180 0.715810 -2.445083 +v 0.212620 0.743269 -2.312500 +v 0.260180 0.715810 -2.179917 +v 0.375000 0.649519 -2.125000 +v 0.489820 0.583228 -2.179917 +v 0.537380 0.555769 -2.312500 +v 0.489820 0.583228 -2.445083 +v 0.250000 0.433013 -2.500000 +v 0.135180 0.499304 -2.445083 +v 0.087620 0.526763 -2.312500 +v 0.135180 0.499304 -2.179917 +v 0.250000 0.433013 -2.125000 +v 0.364820 0.366721 -2.179917 +v 0.412380 0.339263 -2.312500 +v 0.364820 0.366721 -2.445083 +v 0.375000 0.649519 -4.812500 +v 0.221907 0.737907 -4.739277 +v 0.158494 0.774519 -4.562500 +v 0.221907 0.737907 -4.385723 +v 0.375000 0.649519 -4.312500 +v 0.528093 0.561131 -4.385723 +v 0.591506 0.524519 -4.562500 +v 0.528093 0.561131 -4.739277 +v 0.750000 1.299038 -4.812500 +v 0.596907 1.387426 -4.739277 +v 0.533494 1.424038 -4.562500 +v 0.596907 1.387426 -4.385723 +v 0.750000 1.299038 -4.312500 +v 0.903093 1.210650 -4.385723 +v 0.966506 1.174038 -4.562500 +v 0.903093 1.210650 -4.739277 +v 0.875000 1.515544 -4.687500 +v 0.798453 1.559739 -4.650888 +v 0.766747 1.578044 -4.562500 +v 0.798453 1.559739 -4.474112 +v 0.875000 1.515544 -4.437500 +v 0.951547 1.471350 -4.474112 +v 0.983253 1.453044 -4.562500 +v 0.951547 1.471350 -4.650888 +v 0.375000 0.649519 -4.750000 +v 0.260180 0.715810 -4.695083 +v 0.212620 0.743269 -4.562500 +v 0.260180 0.715810 -4.429917 +v 0.375000 0.649519 -4.375000 +v 0.489820 0.583228 -4.429917 +v 0.537380 0.555769 -4.562500 +v 0.489820 0.583228 -4.695083 +v 0.250000 0.433013 -4.750000 +v 0.135180 0.499304 -4.695083 +v 0.087620 0.526763 -4.562500 +v 0.135180 0.499304 -4.429917 +v 0.250000 0.433013 -4.375000 +v 0.364820 0.366721 -4.429917 +v 0.412380 0.339263 -4.562500 +v 0.364820 0.366721 -4.695083 +v 0.364820 0.366721 -3.945083 +v 0.412380 0.339263 -3.812500 +v 0.364820 0.366721 -3.679917 +v 0.250000 0.433013 -3.625000 +v 0.135180 0.499304 -3.679917 +v 0.087620 0.526763 -3.812500 +v 0.135180 0.499304 -3.945083 +v 0.250000 0.433013 -4.000000 +v 0.489820 0.583228 -3.945083 +v 0.537380 0.555769 -3.812500 +v 0.489820 0.583228 -3.679917 +v 0.375000 0.649519 -3.625000 +v 0.260180 0.715810 -3.679917 +v 0.212620 0.743269 -3.812500 +v 0.260180 0.715810 -3.945083 +v 0.375000 0.649519 -4.000000 +v 0.951547 1.471350 -3.900888 +v 0.983253 1.453044 -3.812500 +v 0.951547 1.471350 -3.724112 +v 0.875000 1.515544 -3.687500 +v 0.798453 1.559739 -3.724112 +v 0.766747 1.578044 -3.812500 +v 0.798453 1.559739 -3.900888 +v 0.875000 1.515544 -3.937500 +v 0.903093 1.210650 -3.989277 +v 0.966506 1.174038 -3.812500 +v 0.903093 1.210650 -3.635723 +v 0.750000 1.299038 -3.562500 +v 0.596907 1.387426 -3.635723 +v 0.533494 1.424038 -3.812500 +v 0.596907 1.387426 -3.989277 +v 0.750000 1.299038 -4.062500 +v 0.528093 0.561131 -3.989277 +v 0.591506 0.524519 -3.812500 +v 0.528093 0.561131 -3.635723 +v 0.375000 0.649519 -3.562500 +v 0.221907 0.737907 -3.635723 +v 0.158494 0.774519 -3.812500 +v 0.221907 0.737907 -3.989277 +v 0.375000 0.649519 -4.062500 +v 0.364820 0.366721 -3.195083 +v 0.412380 0.339263 -3.062500 +v 0.364820 0.366721 -2.929917 +v 0.250000 0.433013 -2.875000 +v 0.135180 0.499304 -2.929917 +v 0.087620 0.526763 -3.062500 +v 0.135180 0.499304 -3.195083 +v 0.250000 0.433013 -3.250000 +v 0.489820 0.583228 -3.195083 +v 0.537380 0.555769 -3.062500 +v 0.489820 0.583228 -2.929917 +v 0.375000 0.649519 -2.875000 +v 0.260180 0.715810 -2.929917 +v 0.212620 0.743269 -3.062500 +v 0.260180 0.715810 -3.195083 +v 0.375000 0.649519 -3.250000 +v 0.951547 1.471350 -3.150888 +v 0.983253 1.453044 -3.062500 +v 0.951547 1.471350 -2.974112 +v 0.875000 1.515544 -2.937500 +v 0.798453 1.559739 -2.974112 +v 0.766747 1.578044 -3.062500 +v 0.798453 1.559739 -3.150888 +v 0.875000 1.515544 -3.187500 +v 0.903093 1.210650 -3.239277 +v 0.966506 1.174038 -3.062500 +v 0.903093 1.210650 -2.885723 +v 0.750000 1.299038 -2.812500 +v 0.596907 1.387426 -2.885723 +v 0.533494 1.424038 -3.062500 +v 0.596907 1.387426 -3.239277 +v 0.750000 1.299038 -3.312500 +v 0.528093 0.561131 -3.239277 +v 0.591506 0.524519 -3.062500 +v 0.528093 0.561131 -2.885723 +v 0.375000 0.649519 -2.812500 +v 0.221907 0.737907 -2.885723 +v 0.158494 0.774519 -3.062500 +v 0.221907 0.737907 -3.239277 +v 0.375000 0.649519 -3.312500 +v 0.375000 0.375000 2.750000 +v 0.625000 0.375000 2.750000 +v 0.375000 0.375000 2.500000 +v 0.625000 0.375000 2.500000 +v 0.375000 0.875000 2.750000 +v 0.625000 0.875000 2.750000 +v 0.375000 0.875000 2.500000 +v 0.625000 0.875000 2.500000 +v 0.375000 0.375000 -1.500000 +v 0.625000 0.375000 -1.500000 +v 0.375000 0.375000 -1.750000 +v 0.625000 0.375000 -1.750000 +v 0.375000 0.875000 -1.500000 +v 0.625000 0.875000 -1.500000 +v 0.375000 0.875000 -1.750000 +v 0.625000 0.875000 -1.750000 +v 0.375000 1.125000 2.500000 +v -0.375000 0.375000 2.500000 +v -0.625000 0.375000 2.500000 +v 0.625000 1.125000 2.500000 +v -0.375000 0.375000 2.750000 +v 0.375000 1.125000 -1.500000 +v 0.625000 1.125000 -1.500000 +v -0.625000 0.375000 2.750000 +v -0.625000 0.875000 2.750000 +v -0.375000 0.875000 2.750000 +v -0.625000 0.875000 2.500000 +v -0.375000 0.875000 2.500000 +v -0.625000 0.375000 -1.500000 +v -0.375000 0.375000 -1.500000 +v -0.625000 0.375000 -1.750000 +v -0.375000 0.375000 -1.750000 +v -0.625000 0.875000 -1.500000 +v -0.375000 0.875000 -1.500000 +v -0.625000 0.875000 -1.750000 +v -0.375000 0.875000 -1.750000 +v -0.625000 1.125000 2.500000 +v -0.375000 1.125000 2.500000 +v -0.625000 1.125000 -1.500000 +v -0.375000 1.125000 -1.500000 +v -0.062500 -2.750000 -0.875000 +v 0.062500 -2.750000 -0.875000 +v -0.062500 -2.750000 -1.250000 +v 0.062500 -2.750000 -1.250000 +v 0.062500 -2.000000 -1.250000 +v -0.062500 -2.000000 -1.250000 +v 0.062500 -2.000000 -1.000000 +v -0.062500 -2.000000 -1.000000 +v -0.750000 -0.125000 2.000000 +v 0.750000 -0.125000 2.000000 +v -0.750000 -0.125000 1.000000 +v 0.750000 -0.125000 1.000000 +v 0.750000 -1.250000 1.000000 +v -0.750000 -1.250000 1.000000 +v 0.750000 -1.250000 2.000000 +v -0.750000 -1.250000 2.000000 +v 0.187500 -1.375000 2.187500 +v 0.187500 -1.375000 2.562500 +v -0.187500 -1.375000 2.562500 +v -0.187500 -1.375000 2.187500 +v 0.187500 -1.250000 2.187500 +v -0.187500 -1.250000 2.187500 +v 0.187500 -1.250000 2.562500 +v -0.187500 -1.250000 2.562500 +v 0.265165 -1.359835 2.625000 +v 0.375000 -1.625000 2.625000 +v 0.265165 -1.890165 2.625000 +v 0.000000 -2.000000 2.625000 +v -0.265165 -1.890165 2.625000 +v -0.375000 -1.625000 2.625000 +v -0.265165 -1.359835 2.625000 +v 0.000000 -1.250000 2.625000 +v 0.176776 -1.448224 2.125000 +v 0.250000 -1.625000 2.125000 +v 0.176776 -1.801777 2.125000 +v 0.000000 -1.875000 2.125000 +v -0.176777 -1.801777 2.125000 +v -0.250000 -1.625000 2.125000 +v -0.176777 -1.448224 2.125000 +v 0.000000 -1.375000 2.125000 +v 0.176776 -1.448224 1.875000 +v 0.250000 -1.625000 1.875000 +v 0.176776 -1.801777 1.875000 +v 0.000000 -1.875000 1.875000 +v -0.176777 -1.801777 1.875000 +v -0.250000 -1.625000 1.875000 +v -0.176777 -1.448224 1.875000 +v 0.000000 -1.375000 1.875000 +v 0.265165 -1.359835 2.125000 +v 0.375000 -1.625000 2.125000 +v 0.265165 -1.890165 2.125000 +v 0.000000 -2.000000 2.125000 +v -0.265165 -1.890165 2.125000 +v -0.375000 -1.625000 2.125000 +v -0.265165 -1.359835 2.125000 +v 0.000000 -1.250000 2.125000 +v 0.000000 -1.250000 0.375000 +v -0.265165 -1.359835 0.375000 +v -0.375000 -1.625000 0.375000 +v -0.265165 -1.890165 0.375000 +v 0.000000 -2.000000 0.375000 +v 0.265165 -1.890165 0.375000 +v 0.375000 -1.625000 0.375000 +v 0.265165 -1.359835 0.375000 +v 0.000000 -1.250000 0.875000 +v -0.265165 -1.359835 0.875000 +v -0.375000 -1.625000 0.875000 +v -0.265165 -1.890165 0.875000 +v 0.000000 -2.000000 0.875000 +v 0.265165 -1.890165 0.875000 +v 0.375000 -1.625000 0.875000 +v 0.265165 -1.359835 0.875000 +v -0.187500 -1.250000 0.812500 +v 0.187500 -1.250000 0.812500 +v -0.187500 -1.250000 0.437500 +v 0.187500 -1.250000 0.437500 +v -0.187500 -1.375000 0.437500 +v -0.187500 -1.375000 0.812500 +v 0.187500 -1.375000 0.812500 +v 0.187500 -1.375000 0.437500 +v 0.000000 -1.375000 0.875000 +v -0.176777 -1.448224 0.875000 +v -0.250000 -1.625000 0.875000 +v -0.176777 -1.801777 0.875000 +v 0.000000 -1.875000 0.875000 +v 0.176776 -1.801777 0.875000 +v 0.250000 -1.625000 0.875000 +v 0.176776 -1.448224 0.875000 +v 0.000000 -1.375000 1.125000 +v -0.176777 -1.448224 1.125000 +v -0.250000 -1.625000 1.125000 +v -0.176777 -1.801777 1.125000 +v 0.000000 -1.875000 1.125000 +v 0.176776 -1.801777 1.125000 +v 0.250000 -1.625000 1.125000 +v 0.176776 -1.448224 1.125000 +v -0.125000 -0.875000 -2.437500 +v 0.125000 -0.875000 -2.437500 +v -0.125000 -0.875000 -2.812500 +v 0.125000 -0.875000 -2.812500 +v -0.125000 -1.687500 -2.000000 +v 0.125000 -1.687500 -2.000000 +v -0.125000 -1.312500 -2.000000 +v 0.125000 -1.312500 -2.000000 +v 1.062500 0.062500 3.937500 +v 1.062500 -0.062500 3.937500 +v 1.062500 0.062500 3.812500 +v 1.062500 -0.062500 3.812500 +v 1.437500 0.062500 3.812500 +v 1.437500 0.062500 3.937500 +v 1.437500 -0.062500 3.937500 +v 1.437500 -0.062500 3.812500 +v 1.250000 -0.125000 0.687500 +v 1.500000 -0.125000 0.687500 +v 1.250000 0.125000 0.687500 +v 1.500000 0.125000 0.687500 +v 1.125000 -0.250000 0.687500 +v 1.625000 -0.250000 0.687500 +v 1.125000 0.250000 0.687500 +v 1.625000 0.250000 0.687500 +v 1.250000 0.125000 0.562500 +v 1.250000 -0.125000 0.562500 +v 1.500000 -0.125000 0.562500 +v 1.500000 0.125000 0.562500 +v 1.125000 0.250000 0.562500 +v 1.125000 -0.250000 0.562500 +v 1.625000 -0.250000 0.562500 +v 1.625000 0.250000 0.562500 +v 1.125000 0.062500 0.687500 +v 1.125000 -0.062500 0.687500 +v 1.125000 0.062500 0.562500 +v 1.125000 -0.062500 0.562500 +v 0.875000 0.062500 0.687500 +v 0.875000 -0.062500 0.687500 +v 0.875000 0.062500 0.562500 +v 0.875000 -0.062500 0.562500 +v 0.875000 0.125000 0.750000 +v 0.875000 -0.125000 0.750000 +v 0.875000 0.125000 0.500000 +v 0.875000 -0.125000 0.500000 +v 0.750000 0.125000 0.750000 +v 0.750000 -0.125000 0.750000 +v 0.750000 0.125000 0.500000 +v 0.750000 -0.125000 0.500000 +v -0.375000 0.649519 -3.312500 +v -0.528093 0.561130 -3.239277 +v -0.591507 0.524519 -3.062500 +v -0.528093 0.561130 -2.885723 +v -0.375000 0.649519 -2.812500 +v -0.221907 0.737908 -2.885723 +v -0.158494 0.774519 -3.062500 +v -0.221907 0.737908 -3.239277 +v -0.750000 1.299038 -3.312500 +v -0.903093 1.210649 -3.239277 +v -0.966506 1.174038 -3.062500 +v -0.903093 1.210649 -2.885723 +v -0.750000 1.299038 -2.812500 +v -0.596907 1.387427 -2.885723 +v -0.533494 1.424038 -3.062500 +v -0.596907 1.387427 -3.239277 +v -0.875000 1.515544 -3.187500 +v -0.951547 1.471350 -3.150888 +v -0.983253 1.453045 -3.062500 +v -0.951547 1.471350 -2.974112 +v -0.875000 1.515544 -2.937500 +v -0.798453 1.559739 -2.974112 +v -0.766747 1.578044 -3.062500 +v -0.798453 1.559739 -3.150888 +v -0.375000 0.649519 -3.250000 +v -0.489820 0.583228 -3.195083 +v -0.537380 0.555769 -3.062500 +v -0.489820 0.583228 -2.929917 +v -0.375000 0.649519 -2.875000 +v -0.260180 0.715810 -2.929917 +v -0.212620 0.743269 -3.062500 +v -0.260180 0.715810 -3.195083 +v -0.250000 0.433013 -3.250000 +v -0.364820 0.366721 -3.195083 +v -0.412380 0.339263 -3.062500 +v -0.364820 0.366721 -2.929917 +v -0.250000 0.433013 -2.875000 +v -0.135180 0.499304 -2.929917 +v -0.087620 0.526763 -3.062500 +v -0.135180 0.499304 -3.195083 +v -0.375000 0.649519 -4.062500 +v -0.528093 0.561130 -3.989277 +v -0.591507 0.524519 -3.812500 +v -0.528093 0.561130 -3.635723 +v -0.375000 0.649519 -3.562500 +v -0.221907 0.737908 -3.635723 +v -0.158494 0.774519 -3.812500 +v -0.221907 0.737908 -3.989277 +v -0.750000 1.299038 -4.062500 +v -0.903093 1.210649 -3.989277 +v -0.966506 1.174038 -3.812500 +v -0.903093 1.210649 -3.635723 +v -0.750000 1.299038 -3.562500 +v -0.596907 1.387427 -3.635723 +v -0.533494 1.424038 -3.812500 +v -0.596907 1.387427 -3.989277 +v -0.875000 1.515544 -3.937500 +v -0.951547 1.471350 -3.900888 +v -0.983253 1.453045 -3.812500 +v -0.951547 1.471350 -3.724112 +v -0.875000 1.515544 -3.687500 +v -0.798453 1.559739 -3.724112 +v -0.766747 1.578044 -3.812500 +v -0.798453 1.559739 -3.900888 +v -0.375000 0.649519 -4.000000 +v -0.489820 0.583228 -3.945083 +v -0.537380 0.555769 -3.812500 +v -0.489820 0.583228 -3.679917 +v -0.375000 0.649519 -3.625000 +v -0.260180 0.715810 -3.679917 +v -0.212620 0.743269 -3.812500 +v -0.260180 0.715810 -3.945083 +v -0.250000 0.433013 -4.000000 +v -0.364820 0.366721 -3.945083 +v -0.412380 0.339263 -3.812500 +v -0.364820 0.366721 -3.679917 +v -0.250000 0.433013 -3.625000 +v -0.135180 0.499304 -3.679917 +v -0.087620 0.526763 -3.812500 +v -0.135180 0.499304 -3.945083 +v -0.135180 0.499304 -4.695083 +v -0.087620 0.526763 -4.562500 +v -0.135180 0.499304 -4.429917 +v -0.250000 0.433013 -4.375000 +v -0.364820 0.366721 -4.429917 +v -0.412380 0.339263 -4.562500 +v -0.364820 0.366721 -4.695083 +v -0.250000 0.433013 -4.750000 +v -0.260180 0.715810 -4.695083 +v -0.212620 0.743269 -4.562500 +v -0.260180 0.715810 -4.429917 +v -0.375000 0.649519 -4.375000 +v -0.489820 0.583228 -4.429917 +v -0.537380 0.555769 -4.562500 +v -0.489820 0.583228 -4.695083 +v -0.375000 0.649519 -4.750000 +v -0.798453 1.559739 -4.650888 +v -0.766747 1.578044 -4.562500 +v -0.798453 1.559739 -4.474112 +v -0.875000 1.515544 -4.437500 +v -0.951547 1.471350 -4.474112 +v -0.983253 1.453045 -4.562500 +v -0.951547 1.471350 -4.650888 +v -0.875000 1.515544 -4.687500 +v -0.596907 1.387427 -4.739277 +v -0.533494 1.424038 -4.562500 +v -0.596907 1.387427 -4.385723 +v -0.750000 1.299038 -4.312500 +v -0.903093 1.210649 -4.385723 +v -0.966506 1.174038 -4.562500 +v -0.903093 1.210649 -4.739277 +v -0.750000 1.299038 -4.812500 +v -0.221907 0.737908 -4.739277 +v -0.158494 0.774519 -4.562500 +v -0.221907 0.737908 -4.385723 +v -0.375000 0.649519 -4.312500 +v -0.528093 0.561130 -4.385723 +v -0.591507 0.524519 -4.562500 +v -0.528093 0.561130 -4.739277 +v -0.375000 0.649519 -4.812500 +v -0.135180 0.499304 -2.445083 +v -0.087620 0.526763 -2.312500 +v -0.135180 0.499304 -2.179917 +v -0.250000 0.433013 -2.125000 +v -0.364820 0.366721 -2.179917 +v -0.412380 0.339263 -2.312500 +v -0.364820 0.366721 -2.445083 +v -0.250000 0.433013 -2.500000 +v -0.260180 0.715810 -2.445083 +v -0.212620 0.743269 -2.312500 +v -0.260180 0.715810 -2.179917 +v -0.375000 0.649519 -2.125000 +v -0.489820 0.583228 -2.179917 +v -0.537380 0.555769 -2.312500 +v -0.489820 0.583228 -2.445083 +v -0.375000 0.649519 -2.500000 +v -0.798453 1.559739 -2.400888 +v -0.766747 1.578044 -2.312500 +v -0.798453 1.559739 -2.224112 +v -0.875000 1.515544 -2.187500 +v -0.951547 1.471350 -2.224112 +v -0.983253 1.453045 -2.312500 +v -0.951547 1.471350 -2.400888 +v -0.875000 1.515544 -2.437500 +v -0.596907 1.387427 -2.489277 +v -0.533494 1.424038 -2.312500 +v -0.596907 1.387427 -2.135723 +v -0.750000 1.299038 -2.062500 +v -0.903093 1.210649 -2.135723 +v -0.966506 1.174038 -2.312500 +v -0.903093 1.210649 -2.489277 +v -0.750000 1.299038 -2.562500 +v -0.221907 0.737908 -2.489277 +v -0.158494 0.774519 -2.312500 +v -0.221907 0.737908 -2.135723 +v -0.375000 0.649519 -2.062500 +v -0.528093 0.561130 -2.135723 +v -0.591507 0.524519 -2.312500 +v -0.528093 0.561130 -2.489277 +v -0.375000 0.649519 -2.562500 +v -0.375000 0.649519 -5.562500 +v -0.528093 0.561130 -5.489277 +v -0.591507 0.524519 -5.312500 +v -0.528093 0.561130 -5.135723 +v -0.375000 0.649519 -5.062500 +v -0.221907 0.737908 -5.135723 +v -0.158494 0.774519 -5.312500 +v -0.221907 0.737908 -5.489277 +v -0.750000 1.299038 -5.562500 +v -0.903093 1.210649 -5.489277 +v -0.966506 1.174038 -5.312500 +v -0.903093 1.210649 -5.135723 +v -0.750000 1.299038 -5.062500 +v -0.596907 1.387427 -5.135723 +v -0.533494 1.424038 -5.312500 +v -0.596907 1.387427 -5.489277 +v -0.875000 1.515544 -5.437500 +v -0.951547 1.471350 -5.400888 +v -0.983253 1.453045 -5.312500 +v -0.951547 1.471350 -5.224112 +v -0.875000 1.515544 -5.187500 +v -0.798453 1.559739 -5.224112 +v -0.766747 1.578044 -5.312500 +v -0.798453 1.559739 -5.400888 +v -0.375000 0.649519 -5.500000 +v -0.489820 0.583228 -5.445083 +v -0.537380 0.555769 -5.312500 +v -0.489820 0.583228 -5.179917 +v -0.375000 0.649519 -5.125000 +v -0.260180 0.715810 -5.179917 +v -0.212620 0.743269 -5.312500 +v -0.260180 0.715810 -5.445083 +v -0.250000 0.433013 -5.500000 +v -0.364820 0.366721 -5.445083 +v -0.412380 0.339263 -5.312500 +v -0.364820 0.366721 -5.179917 +v -0.250000 0.433013 -5.125000 +v -0.135180 0.499304 -5.179917 +v -0.087620 0.526763 -5.312500 +v -0.135180 0.499304 -5.445083 +vt 0.074286 0.362319 +vt 0.091429 0.478261 +vt 0.074286 0.536232 +vt 0.411429 0.536232 +vt 0.337143 0.362319 +vt 0.411429 0.362319 +vt 0.000000 0.362319 +vt 0.000000 0.536232 +vt 0.337143 0.536232 +vt 0.320000 0.420290 +vt 0.577143 0.181159 +vt 0.582857 0.217391 +vt 0.577143 0.217391 +vt 0.577143 0.260870 +vt 0.577143 0.224638 +vt 0.582857 0.260870 +vt 0.577143 0.304348 +vt 0.577143 0.268116 +vt 0.582857 0.304348 +vt 0.577143 0.347826 +vt 0.577143 0.311594 +vt 0.577143 0.355072 +vt 0.582857 0.391304 +vt 0.577143 0.391304 +vt 0.577143 0.434783 +vt 0.577143 0.398551 +vt 0.582857 0.434783 +vt 0.577143 0.471014 +vt 0.582857 0.478261 +vt 0.577143 0.514493 +vt 0.577143 0.478261 +vt 0.582857 0.000000 +vt 0.577143 0.043478 +vt 0.577143 0.007246 +vt 0.577143 0.050725 +vt 0.582857 0.086957 +vt 0.577143 0.086957 +vt 0.577143 0.094203 +vt 0.582857 0.130435 +vt 0.577143 0.130435 +vt 0.577143 0.137681 +vt 0.582857 0.173913 +vt 0.577143 0.173913 +vt 0.520000 0.579710 +vt 0.520000 0.695652 +vt 0.491429 0.666667 +vt 0.491429 0.608696 +vt 0.320000 0.666667 +vt 0.320000 0.608696 +vt 0.491429 0.695652 +vt 0.320000 0.739130 +vt 0.320000 0.695652 +vt 0.491429 0.579710 +vt 0.320000 0.579710 +vt 0.491429 0.536232 +vt 0.874286 -0.000000 +vt 0.862857 0.050725 +vt 0.862857 0.007246 +vt 0.874286 0.579710 +vt 0.862857 0.528986 +vt 0.874286 0.521739 +vt 0.874286 0.289855 +vt 0.862857 0.239130 +vt 0.874286 0.231884 +vt 0.874286 0.405797 +vt 0.862857 0.355072 +vt 0.874286 0.347826 +vt 0.874286 0.115942 +vt 0.862857 0.065217 +vt 0.874286 0.057971 +vt 0.874286 0.637681 +vt 0.862857 0.586957 +vt 0.862857 0.340580 +vt 0.862857 0.297101 +vt 0.874286 0.463768 +vt 0.862857 0.413043 +vt 0.862857 0.166667 +vt 0.862857 0.123188 +vt 0.874286 0.695652 +vt 0.862857 0.644928 +vt 0.862857 0.471014 +vt 0.874286 0.173913 +vt 0.862857 0.224638 +vt 0.862857 0.181159 +vt 0.797362 0.260890 +vt 0.836923 0.260890 +vt 0.817143 0.347784 +vt 0.611429 0.137681 +vt 0.600000 0.173913 +vt 0.600000 0.130435 +vt 0.611429 0.210145 +vt 0.600000 0.217391 +vt 0.611429 0.253623 +vt 0.600000 0.260870 +vt 0.611429 0.268116 +vt 0.600000 0.304348 +vt 0.611429 0.311594 +vt 0.600000 0.347826 +vt 0.611429 0.384058 +vt 0.600000 0.391304 +vt 0.611429 0.398551 +vt 0.600000 0.434783 +vt 0.611429 0.442029 +vt 0.600000 0.478261 +vt 0.611429 0.514493 +vt 0.600000 0.521739 +vt 0.600000 0.000000 +vt 0.611429 0.036232 +vt 0.600000 0.043478 +vt 0.611429 0.050725 +vt 0.600000 0.086957 +vt 0.611429 0.094203 +vt 0.645714 0.231884 +vt 0.622857 0.275362 +vt 0.622857 0.246377 +vt 0.645714 0.289855 +vt 0.622857 0.333333 +vt 0.622857 0.304348 +vt 0.622857 0.362319 +vt 0.645714 0.405797 +vt 0.622857 0.391304 +vt 0.622857 0.449275 +vt 0.622857 0.420290 +vt 0.645714 0.463768 +vt 0.622857 0.507246 +vt 0.622857 0.478261 +vt 0.622857 0.536232 +vt 0.645714 0.579710 +vt 0.622857 0.565217 +vt 0.622857 0.623188 +vt 0.622857 0.594203 +vt 0.645714 0.637681 +vt 0.622857 0.681159 +vt 0.622857 0.652174 +vt 0.645714 0.000000 +vt 0.622857 0.043478 +vt 0.622857 0.014493 +vt 0.622857 0.072464 +vt 0.645714 0.115942 +vt 0.622857 0.101449 +vt 0.622857 0.130435 +vt 0.645714 0.173913 +vt 0.622857 0.159420 +vt 0.622857 0.188406 +vt 0.622857 0.217391 +vt 0.737143 0.231884 +vt 0.714286 0.275362 +vt 0.714286 0.246377 +vt 0.737143 0.289855 +vt 0.714286 0.333333 +vt 0.714286 0.304348 +vt 0.737143 0.405797 +vt 0.714286 0.362319 +vt 0.737143 0.347826 +vt 0.714286 0.449275 +vt 0.714286 0.420290 +vt 0.737143 0.463768 +vt 0.714286 0.507246 +vt 0.714286 0.478261 +vt 0.737143 0.579710 +vt 0.714286 0.536232 +vt 0.737143 0.521739 +vt 0.714286 0.623188 +vt 0.714286 0.594203 +vt 0.737143 0.637681 +vt 0.714286 0.681159 +vt 0.714286 0.652174 +vt 0.737143 -0.000000 +vt 0.714286 0.043478 +vt 0.714286 0.014493 +vt 0.737143 0.115942 +vt 0.714286 0.072464 +vt 0.737143 0.057971 +vt 0.737143 0.173913 +vt 0.714286 0.130435 +vt 0.714286 0.188406 +vt 0.668571 0.231884 +vt 0.691429 0.275362 +vt 0.668571 0.289855 +vt 0.691429 0.333333 +vt 0.668571 0.347826 +vt 0.691429 0.362319 +vt 0.668571 0.405797 +vt 0.691429 0.449275 +vt 0.668571 0.463768 +vt 0.691429 0.507246 +vt 0.668571 0.521739 +vt 0.691429 0.536232 +vt 0.668571 0.579710 +vt 0.691429 0.594203 +vt 0.668571 0.637681 +vt 0.691429 0.681159 +vt 0.668571 0.695652 +vt 0.668571 0.000000 +vt 0.691429 0.043478 +vt 0.668571 0.057971 +vt 0.691429 0.072464 +vt 0.668571 0.115942 +vt 0.691429 0.130435 +vt 0.668571 0.173913 +vt 0.691429 0.188406 +vt 0.797366 0.029011 +vt 0.817143 0.000051 +vt 0.836920 0.086931 +vt 0.782857 0.188406 +vt 0.760000 0.231884 +vt 0.760000 0.173913 +vt 0.782857 0.275362 +vt 0.760000 0.289855 +vt 0.782857 0.333333 +vt 0.760000 0.347826 +vt 0.782857 0.362319 +vt 0.760000 0.405797 +vt 0.782857 0.449275 +vt 0.760000 0.463768 +vt 0.782857 0.507246 +vt 0.760000 0.521739 +vt 0.782857 0.536232 +vt 0.760000 0.579710 +vt 0.782857 0.594203 +vt 0.760000 0.637681 +vt 0.782857 0.681159 +vt 0.760000 0.695652 +vt 0.760000 -0.000000 +vt 0.782857 0.043478 +vt 0.760000 0.057971 +vt 0.782857 0.072464 +vt 0.760000 0.115942 +vt 0.782857 0.130435 +vt 0.697143 0.782609 +vt 0.605714 0.898551 +vt 0.605714 0.782609 +vt 0.605714 0.985507 +vt 0.697143 0.898551 +vt 0.697143 0.985507 +vt 0.697143 0.695652 +vt 0.605714 0.695652 +vt 0.731429 0.898551 +vt 0.731429 0.782609 +vt 0.571429 0.782609 +vt 0.571429 0.898551 +vt 0.411429 0.057971 +vt 0.400000 0.028986 +vt 0.411429 0.028986 +vt 0.411429 0.115942 +vt 0.400000 0.086957 +vt 0.411429 0.086957 +vt 0.240000 0.086957 +vt 0.251429 0.115942 +vt 0.240000 0.115942 +vt 0.240000 0.057971 +vt 0.251429 0.086957 +vt 0.240000 0.000000 +vt 0.251429 0.028986 +vt 0.240000 0.028986 +vt 0.251429 0.000000 +vt 0.262857 0.000000 +vt 0.262857 0.057971 +vt 0.251429 0.057971 +vt 0.382857 0.956522 +vt 0.457143 0.927536 +vt 0.457143 0.956522 +vt 0.382857 0.884058 +vt 0.368571 0.862319 +vt 0.374286 0.862319 +vt 0.457143 0.855072 +vt 0.382857 0.855072 +vt 0.468571 0.927536 +vt 0.457143 0.884058 +vt 0.468571 0.884058 +vt 0.320000 0.927536 +vt 0.360000 0.956522 +vt 0.320000 0.956522 +vt 0.320000 0.855072 +vt 0.360000 0.884058 +vt 0.320000 0.884058 +vt 0.374286 0.949275 +vt 0.360000 0.927536 +vt 0.382857 0.927536 +vt 0.400000 -0.000000 +vt 0.388571 -0.000000 +vt 0.262857 0.086957 +vt 0.262857 0.086957 +vt 0.388571 0.057971 +vt 0.388571 0.086957 +vt 0.262857 0.115942 +vt 0.388571 0.115942 +vt 0.251429 0.057971 +vt 0.262857 0.028986 +vt 0.262857 0.057971 +vt 0.388571 0.057971 +vt 0.262857 0.086957 +vt 0.262857 0.028986 +vt 0.388571 0.028986 +vt 0.388571 0.086957 +vt 0.262857 0.115942 +vt 0.388571 -0.000000 +vt 0.388571 -0.000000 +vt 0.262857 -0.000000 +vt 0.400000 -0.000000 +vt 0.400000 0.028986 +vt 0.388571 -0.000000 +vt 0.251429 0.086957 +vt 0.262857 0.086957 +vt 0.400000 0.057971 +vt 0.388571 0.028986 +vt 0.400000 0.057971 +vt 0.400000 0.086957 +vt 0.388571 0.086957 +vt 0.411429 0.086957 +vt 0.411429 0.057971 +vt 0.411429 0.028986 +vt 0.411429 -0.000000 +vt 0.411429 0.115942 +vt 0.240000 0.086957 +vt 0.251429 0.115942 +vt 0.240000 0.115942 +vt 0.240000 0.028986 +vt 0.240000 0.057971 +vt 0.240000 0.000000 +vt 0.251429 0.028986 +vt 0.251429 0.000000 +vt 0.262857 0.000000 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.834286 0.391243 +vt 0.828596 0.376812 +vt 0.834286 0.362380 +vt 0.791429 0.731884 +vt 0.797143 0.724638 +vt 0.800000 0.731884 +vt 0.731429 0.731884 +vt 0.737143 0.724638 +vt 0.740000 0.731884 +vt 0.748571 0.731884 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.774286 0.731884 +vt 0.765714 0.724638 +vt 0.771429 0.724638 +vt 0.782857 0.731884 +vt 0.788571 0.724638 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.765714 0.731884 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.774286 0.724638 +vt 0.780000 0.724638 +vt 0.782857 0.731884 +vt 0.774286 0.724638 +vt 0.780000 0.724638 +vt 0.765714 0.731884 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.748571 0.731884 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.788571 0.724638 +vt 0.791429 0.731884 +vt 0.771429 0.724638 +vt 0.774286 0.731884 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.731429 0.731884 +vt 0.737143 0.724638 +vt 0.740000 0.731884 +vt 0.800000 0.731884 +vt 0.791429 0.724638 +vt 0.797143 0.724638 +vt 0.774286 0.731884 +vt 0.780000 0.724638 +vt 0.782857 0.731884 +vt 0.765714 0.731884 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.748571 0.731884 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.788571 0.724638 +vt 0.791429 0.731884 +vt 0.765714 0.724638 +vt 0.771429 0.724638 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.731429 0.731884 +vt 0.737143 0.724638 +vt 0.740000 0.731884 +vt 0.797143 0.724638 +vt 0.800000 0.731884 +vt 0.800000 0.731884 +vt 0.791429 0.724638 +vt 0.797143 0.724638 +vt 0.740000 0.731884 +vt 0.731429 0.724638 +vt 0.737143 0.724638 +vt 0.748571 0.731884 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.765714 0.731884 +vt 0.771429 0.724638 +vt 0.774286 0.731884 +vt 0.782857 0.731884 +vt 0.788571 0.724638 +vt 0.791429 0.731884 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.780000 0.724638 +vt 0.800000 0.731884 +vt 0.791429 0.724638 +vt 0.797143 0.724638 +vt 0.731429 0.731884 +vt 0.737143 0.724638 +vt 0.740000 0.731884 +vt 0.748571 0.731884 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.765714 0.731884 +vt 0.771429 0.724638 +vt 0.774286 0.731884 +vt 0.782857 0.731884 +vt 0.788571 0.724638 +vt 0.791429 0.731884 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.774286 0.724638 +vt 0.780000 0.724638 +vt 0.537143 0.739130 +vt 0.354286 0.768116 +vt 0.354286 0.739130 +vt 0.571429 0.855072 +vt 0.548571 0.826087 +vt 0.571429 0.826087 +vt 0.571429 0.855072 +vt 0.548571 0.826087 +vt 0.571429 0.826087 +vt 0.548571 0.797101 +vt 0.571429 0.797101 +vt 0.571429 0.768116 +vt 0.548571 0.739130 +vt 0.571429 0.739130 +vt 0.320000 0.826087 +vt 0.342857 0.855072 +vt 0.320000 0.855072 +vt 0.320000 0.797101 +vt 0.342857 0.826087 +vt 0.320000 0.739130 +vt 0.342857 0.768116 +vt 0.320000 0.768116 +vt 0.537143 0.739130 +vt 0.354286 0.768116 +vt 0.354286 0.739130 +vt 0.537143 0.826087 +vt 0.548571 0.768116 +vt 0.537143 0.739130 +vt 0.342857 0.797101 +vt 0.354286 0.826087 +vt 0.537143 0.855072 +vt 0.354286 0.826087 +vt 0.537143 0.826087 +vt 0.342857 0.739130 +vt 0.354286 0.739130 +vt 0.537143 0.797101 +vt 0.354286 0.797101 +vt 0.548571 0.797101 +vt 0.571429 0.797101 +vt 0.571429 0.768116 +vt 0.548571 0.739130 +vt 0.571429 0.739130 +vt 0.320000 0.826087 +vt 0.342857 0.855072 +vt 0.320000 0.855072 +vt 0.320000 0.797101 +vt 0.342857 0.826087 +vt 0.320000 0.739130 +vt 0.342857 0.768116 +vt 0.320000 0.768116 +vt 0.537143 0.826087 +vt 0.548571 0.768116 +vt 0.537143 0.739130 +vt 0.342857 0.797101 +vt 0.354286 0.826087 +vt 0.537143 0.855072 +vt 0.354286 0.826087 +vt 0.537143 0.826087 +vt 0.342857 0.739130 +vt 0.354286 0.739130 +vt 0.537143 0.797101 +vt 0.354286 0.797101 +vt 0.588571 0.652174 +vt 0.622857 0.637681 +vt 0.622857 0.652174 +vt 0.571429 0.637681 +vt 0.537143 0.652174 +vt 0.537143 0.637681 +vt 0.577143 0.739130 +vt 0.588571 0.739130 +vt 0.588571 0.637681 +vt 0.577143 0.550725 +vt 0.588571 0.550725 +vt 0.571429 0.652174 +vt 0.320000 0.362319 +vt 0.091429 0.362319 +vt 0.182857 0.304348 +vt 0.182857 0.594203 +vt 0.137143 0.594203 +vt 0.091429 0.536232 +vt 0.188571 0.173913 +vt 0.234286 0.000000 +vt 0.234286 0.173913 +vt 0.182857 0.898551 +vt 0.131429 0.724638 +vt 0.182857 0.724638 +vt 0.137143 0.000000 +vt 0.137143 0.173913 +vt 0.320000 0.898551 +vt 0.320000 0.724638 +vt 0.091429 0.000000 +vt 0.091429 0.173913 +vt 0.337143 0.304348 +vt 0.320000 0.289855 +vt 0.337143 0.289855 +vt 0.371429 0.304348 +vt 0.354286 0.289855 +vt 0.371429 0.289855 +vt 0.388571 0.304348 +vt 0.388571 0.289855 +vt 0.354286 0.304348 +vt 0.371429 0.115967 +vt 0.383543 0.128694 +vt 0.388562 0.159420 +vt 0.371429 0.289830 +vt 0.354296 0.246377 +vt 0.371429 0.202924 +vt 0.371429 0.289830 +vt 0.354296 0.246377 +vt 0.371429 0.202924 +vt 0.371429 0.115967 +vt 0.383543 0.128694 +vt 0.388562 0.159420 +vt 0.354286 0.304348 +vt 0.337143 0.289855 +vt 0.354286 0.289855 +vt 0.388571 0.304348 +vt 0.371429 0.289855 +vt 0.388571 0.289855 +vt 0.371429 0.304348 +vt 0.337143 0.304348 +vt 0.320000 0.289855 +vt 0.411429 -0.000000 +vt 0.388571 0.086957 +vt 0.565714 0.434783 +vt 0.577143 0.536232 +vt 0.565714 0.565217 +vt 0.531429 0.463768 +vt 0.542857 0.536232 +vt 0.531429 0.536232 +vt 0.554286 0.434783 +vt 0.554286 0.565217 +vt 0.542857 0.463768 +vt 0.245714 0.898551 +vt 0.228571 0.913043 +vt 0.234286 0.898551 +vt 0.160000 0.956522 +vt 0.165714 0.942029 +vt 0.165714 0.956522 +vt 0.182857 0.942029 +vt 0.165714 0.927536 +vt 0.182857 0.927536 +vt 0.182857 0.913043 +vt 0.165714 0.898551 +vt 0.182857 0.898551 +vt 0.165714 0.913043 +vt 0.182857 0.956522 +vt 0.222857 0.898551 +vt 0.205714 0.913043 +vt 0.211429 0.898551 +vt 0.200000 0.898551 +vt 0.182857 0.913043 +vt 0.188571 0.898551 +vt 0.268571 0.898551 +vt 0.251429 0.913043 +vt 0.257143 0.898551 +vt 0.228571 0.927536 +vt 0.245714 0.942029 +vt 0.234286 0.942029 +vt 0.205714 0.927536 +vt 0.222857 0.942029 +vt 0.211429 0.942029 +vt 0.182857 0.927536 +vt 0.200000 0.942029 +vt 0.188571 0.942029 +vt 0.251429 0.927536 +vt 0.268571 0.942029 +vt 0.257143 0.942029 +vt 0.234286 0.956522 +vt 0.245714 0.956522 +vt 0.188571 0.956522 +vt 0.200000 0.956522 +vt 0.274286 0.913043 +vt 0.211429 0.956522 +vt 0.222857 0.956522 +vt 0.257143 0.956522 +vt 0.268571 0.956522 +vt 0.288571 0.949275 +vt 0.294286 0.920290 +vt 0.294286 0.949275 +vt 0.311429 0.949275 +vt 0.317143 0.920290 +vt 0.317143 0.949275 +vt 0.277143 0.949275 +vt 0.282857 0.920290 +vt 0.282857 0.949275 +vt 0.300000 0.949275 +vt 0.305714 0.920290 +vt 0.305714 0.949275 +vt 0.277143 0.920290 +vt 0.285714 0.913043 +vt 0.300000 0.920290 +vt 0.308571 0.913043 +vt 0.288571 0.920290 +vt 0.297143 0.913043 +vt 0.311429 0.920290 +vt 0.320000 0.913043 +vt 0.274286 0.913043 +vt 0.285714 0.898551 +vt 0.308571 0.898551 +vt 0.297143 0.898551 +vt 0.320000 0.898551 +vt 0.782857 0.731884 +vt 0.774286 0.724638 +vt 0.780000 0.724638 +vt 0.765714 0.731884 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.748571 0.731884 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.788571 0.724638 +vt 0.791429 0.731884 +vt 0.771429 0.724638 +vt 0.774286 0.731884 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.731429 0.731884 +vt 0.737143 0.724638 +vt 0.740000 0.731884 +vt 0.800000 0.731884 +vt 0.791429 0.724638 +vt 0.797143 0.724638 +vt 0.782857 0.731884 +vt 0.774286 0.724638 +vt 0.780000 0.724638 +vt 0.765714 0.731884 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.748571 0.731884 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.788571 0.724638 +vt 0.791429 0.731884 +vt 0.771429 0.724638 +vt 0.774286 0.731884 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.731429 0.731884 +vt 0.737143 0.724638 +vt 0.740000 0.731884 +vt 0.800000 0.731884 +vt 0.791429 0.724638 +vt 0.797143 0.724638 +vt 0.800000 0.731884 +vt 0.791429 0.724638 +vt 0.797143 0.724638 +vt 0.731429 0.731884 +vt 0.737143 0.724638 +vt 0.740000 0.731884 +vt 0.748571 0.731884 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.765714 0.731884 +vt 0.771429 0.724638 +vt 0.774286 0.731884 +vt 0.791429 0.731884 +vt 0.782857 0.724638 +vt 0.788571 0.724638 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.780000 0.724638 +vt 0.782857 0.731884 +vt 0.800000 0.731884 +vt 0.791429 0.724638 +vt 0.797143 0.724638 +vt 0.731429 0.731884 +vt 0.737143 0.724638 +vt 0.740000 0.731884 +vt 0.748571 0.731884 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.765714 0.731884 +vt 0.771429 0.724638 +vt 0.774286 0.731884 +vt 0.782857 0.731884 +vt 0.788571 0.724638 +vt 0.791429 0.731884 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.774286 0.724638 +vt 0.780000 0.724638 +vt 0.774286 0.731884 +vt 0.780000 0.724638 +vt 0.782857 0.731884 +vt 0.765714 0.731884 +vt 0.757143 0.724638 +vt 0.762857 0.724638 +vt 0.748571 0.731884 +vt 0.740000 0.724638 +vt 0.745714 0.724638 +vt 0.791429 0.731884 +vt 0.782857 0.724638 +vt 0.788571 0.724638 +vt 0.771429 0.724638 +vt 0.754286 0.724638 +vt 0.757143 0.731884 +vt 0.731429 0.731884 +vt 0.737143 0.724638 +vt 0.740000 0.731884 +vt 0.800000 0.731884 +vt 0.791429 0.724638 +vt 0.797143 0.724638 +vt 0.091429 0.420290 +vt 0.320000 0.478261 +vt 0.582857 0.347826 +vt 0.582857 0.521739 +vt 0.582857 0.043478 +vt 0.502857 0.695652 +vt 0.502857 0.579710 +vt 0.491429 0.739130 +vt 0.320000 0.536232 +vt 0.862857 0.572464 +vt 0.862857 0.282609 +vt 0.862857 0.398551 +vt 0.862857 0.108696 +vt 0.862857 0.630435 +vt 0.862857 0.456522 +vt 0.862857 0.688406 +vt 0.862857 0.514493 +vt 0.805723 0.340023 +vt 0.797362 0.318820 +vt 0.794302 0.289855 +vt 0.805723 0.239687 +vt 0.817143 0.231926 +vt 0.828563 0.239687 +vt 0.839984 0.289855 +vt 0.836924 0.318820 +vt 0.828563 0.340023 +vt 0.611429 0.166667 +vt 0.611429 0.181159 +vt 0.611429 0.224638 +vt 0.611429 0.297101 +vt 0.611429 0.340580 +vt 0.611429 0.355072 +vt 0.611429 0.427536 +vt 0.611429 0.471014 +vt 0.611429 0.485507 +vt 0.611429 0.007246 +vt 0.611429 0.079710 +vt 0.611429 0.123188 +vt 0.645714 0.347826 +vt 0.645714 0.521739 +vt 0.645714 0.695652 +vt 0.645714 0.057971 +vt 0.714286 0.391304 +vt 0.714286 0.565217 +vt 0.737143 0.695652 +vt 0.714286 0.101449 +vt 0.714286 0.159420 +vt 0.714286 0.217391 +vt 0.691429 0.246377 +vt 0.691429 0.304348 +vt 0.691429 0.391304 +vt 0.691429 0.420290 +vt 0.691429 0.478261 +vt 0.691429 0.565217 +vt 0.691429 0.623188 +vt 0.691429 0.652174 +vt 0.691429 0.014493 +vt 0.691429 0.101449 +vt 0.691429 0.159420 +vt 0.691429 0.217391 +vt 0.828562 0.108131 +vt 0.797366 0.086931 +vt 0.817143 0.115891 +vt 0.805725 0.108131 +vt 0.794306 0.057971 +vt 0.805725 0.007811 +vt 0.828562 0.007811 +vt 0.836920 0.029011 +vt 0.839980 0.057971 +vt 0.782857 0.217391 +vt 0.782857 0.246377 +vt 0.782857 0.304348 +vt 0.782857 0.391304 +vt 0.782857 0.420290 +vt 0.782857 0.478261 +vt 0.782857 0.565217 +vt 0.782857 0.623188 +vt 0.782857 0.652174 +vt 0.782857 0.014493 +vt 0.782857 0.101449 +vt 0.782857 0.159420 +vt 0.400000 0.115942 +vt 0.360000 0.855072 +vt 0.368571 0.949275 +vt 0.388571 0.115942 +vt 0.262857 -0.000000 +vt 0.400000 0.115942 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.838309 0.366607 +vt 0.839976 0.376812 +vt 0.838309 0.387016 +vt 0.830262 0.387016 +vt 0.830262 0.366607 +vt 0.791429 0.724638 +vt 0.731429 0.724638 +vt 0.748571 0.724638 +vt 0.782857 0.724638 +vt 0.782857 0.724638 +vt 0.765714 0.724638 +vt 0.748571 0.724638 +vt 0.731429 0.724638 +vt 0.774286 0.724638 +vt 0.782857 0.724638 +vt 0.748571 0.724638 +vt 0.731429 0.724638 +vt 0.791429 0.724638 +vt 0.731429 0.731884 +vt 0.748571 0.724638 +vt 0.765714 0.724638 +vt 0.782857 0.724638 +vt 0.774286 0.724638 +vt 0.731429 0.724638 +vt 0.748571 0.724638 +vt 0.765714 0.724638 +vt 0.782857 0.724638 +vt 0.537143 0.768116 +vt 0.548571 0.855072 +vt 0.548571 0.855072 +vt 0.537143 0.768116 +vt 0.354286 0.855072 +vt 0.354286 0.855072 +vt 0.137143 0.304348 +vt 0.182857 0.173913 +vt 0.320000 0.173913 +vt 0.320000 0.536232 +vt 0.137143 0.724638 +vt 0.091429 0.724638 +vt 0.188571 0.000000 +vt 0.131429 0.898551 +vt 0.320000 0.304348 +vt 0.383543 0.190146 +vt 0.371429 0.202874 +vt 0.359314 0.190146 +vt 0.354296 0.159420 +vt 0.359314 0.128694 +vt 0.359314 0.277103 +vt 0.359314 0.215651 +vt 0.383543 0.215651 +vt 0.388562 0.246377 +vt 0.383543 0.277103 +vt 0.359314 0.277103 +vt 0.359314 0.215651 +vt 0.383543 0.215651 +vt 0.388562 0.246377 +vt 0.383543 0.277103 +vt 0.383543 0.190146 +vt 0.371429 0.202874 +vt 0.359314 0.190146 +vt 0.354296 0.159420 +vt 0.359314 0.128694 +vt 0.320000 0.304348 +vt 0.577143 0.463768 +vt 0.160000 0.942029 +vt 0.274286 0.927536 +vt 0.274286 0.898551 +vt 0.782857 0.724638 +vt 0.765714 0.724638 +vt 0.748571 0.724638 +vt 0.731429 0.724638 +vt 0.782857 0.724638 +vt 0.765714 0.724638 +vt 0.748571 0.724638 +vt 0.731429 0.724638 +vt 0.731429 0.724638 +vt 0.748571 0.724638 +vt 0.765714 0.724638 +vt 0.774286 0.724638 +vt 0.731429 0.724638 +vt 0.748571 0.724638 +vt 0.765714 0.724638 +vt 0.782857 0.724638 +vt 0.774286 0.724638 +vt 0.765714 0.724638 +vt 0.748571 0.724638 +vt 0.731429 0.724638 +vt 0.577143 0.398551 +vt 0.411429 0.434783 +vt 0.411429 0.398551 +vt 0.577143 0.289855 +vt 0.411429 0.326087 +vt 0.411429 0.289855 +vt 0.577143 0.108696 +vt 0.411429 0.144928 +vt 0.411429 0.108696 +vt 0.577143 0.000000 +vt 0.411429 0.036232 +vt 0.411429 0.000000 +vt 0.577143 0.326087 +vt 0.411429 0.362319 +vt 0.577143 0.144928 +vt 0.411429 0.181159 +vt 0.577143 0.217391 +vt 0.411429 0.253623 +vt 0.411429 0.217391 +vt 0.577143 0.036232 +vt 0.411429 0.072464 +vt 0.577143 0.362319 +vt 0.577143 0.181159 +vt 0.577143 0.253623 +vt 0.577143 0.072464 +vt 0.931429 0.282609 +vt 0.925714 0.239130 +vt 0.931429 0.239130 +vt 0.931429 0.050725 +vt 0.925714 0.007246 +vt 0.931429 0.007246 +vt 0.931429 0.166667 +vt 0.925714 0.123188 +vt 0.931429 0.123188 +vt 0.931429 0.340580 +vt 0.925714 0.297101 +vt 0.931429 0.297101 +vt 0.931429 0.514493 +vt 0.925714 0.471014 +vt 0.931429 0.471014 +vt 0.931429 0.108696 +vt 0.925714 0.065217 +vt 0.931429 0.065217 +vt 0.931429 0.456522 +vt 0.925714 0.413043 +vt 0.931429 0.413043 +vt 0.931429 0.398551 +vt 0.925714 0.355072 +vt 0.931429 0.355072 +vt 0.931429 0.688406 +vt 0.925714 0.644928 +vt 0.931429 0.644928 +vt 0.931429 0.224638 +vt 0.925714 0.181159 +vt 0.931429 0.181159 +vt 0.931429 0.630435 +vt 0.925714 0.586957 +vt 0.931429 0.586957 +vt 0.931429 0.572464 +vt 0.925714 0.528986 +vt 0.931429 0.528986 +vt 0.897143 0.289855 +vt 0.897143 0.231884 +vt 0.925714 0.340580 +vt 0.925714 0.398551 +vt 0.897143 0.347826 +vt 0.925714 0.456522 +vt 0.897143 0.405797 +vt 0.925714 0.514493 +vt 0.897143 0.463768 +vt 0.925714 0.572464 +vt 0.897143 0.521739 +vt 0.897143 0.637681 +vt 0.897143 0.579710 +vt 0.925714 0.688406 +vt 0.925714 0.050725 +vt 0.897143 -0.000000 +vt 0.897143 0.115942 +vt 0.897143 0.057971 +vt 0.925714 0.166667 +vt 0.925714 0.224638 +vt 0.897143 0.173913 +vt 0.897143 0.695652 +vt 0.840000 0.275362 +vt 0.840000 0.246377 +vt 0.840000 0.304348 +vt 0.840000 0.362319 +vt 0.840000 0.420290 +vt 0.840000 0.478261 +vt 0.840000 0.536232 +vt 0.840000 0.623188 +vt 0.840000 0.594203 +vt 0.840000 0.652174 +vt 0.840000 0.014493 +vt 0.840000 0.072464 +vt 0.840000 0.130435 +vt 0.840000 0.217391 +vt 0.840000 0.188406 +vt 0.611429 0.231884 +vt 0.622857 0.260870 +vt 0.611429 0.260870 +vt 0.611429 0.086957 +vt 0.622857 0.115942 +vt 0.611429 0.115942 +vt 0.611429 -0.000000 +vt 0.622857 0.028986 +vt 0.611429 0.028986 +vt 0.622857 0.289855 +vt 0.611429 0.289855 +vt 0.622857 0.144928 +vt 0.611429 0.144928 +vt 0.611429 0.173913 +vt 0.622857 0.202899 +vt 0.611429 0.202899 +vt 0.622857 0.057971 +vt 0.611429 0.057971 +vt 0.622857 0.318841 +vt 0.611429 0.318841 +vt 0.622857 0.173913 +vt 0.622857 0.231884 +vt 0.622857 0.086957 +vt 0.622857 0.347826 +vt 0.611429 0.347826 +vt 0.714286 0.000000 +vt 0.691429 0.028986 +vt 0.691429 0.000000 +vt 0.714286 0.260870 +vt 0.691429 0.289855 +vt 0.691429 0.260870 +vt 0.714286 0.115942 +vt 0.691429 0.144928 +vt 0.691429 0.115942 +vt 0.714286 0.173913 +vt 0.691429 0.202899 +vt 0.691429 0.173913 +vt 0.714286 0.028986 +vt 0.691429 0.057971 +vt 0.714286 0.289855 +vt 0.691429 0.318841 +vt 0.714286 0.144928 +vt 0.714286 0.202899 +vt 0.691429 0.231884 +vt 0.714286 0.057971 +vt 0.691429 0.086957 +vt 0.714286 0.318841 +vt 0.691429 0.347826 +vt 0.714286 0.231884 +vt 0.714286 0.086957 +vt 0.794286 -0.000000 +vt 0.782857 0.028986 +vt 0.782857 -0.000000 +vt 0.794286 0.260870 +vt 0.782857 0.289855 +vt 0.782857 0.260870 +vt 0.794286 0.115942 +vt 0.782857 0.144928 +vt 0.782857 0.115942 +vt 0.794286 0.173913 +vt 0.782857 0.202899 +vt 0.782857 0.173913 +vt 0.794286 0.028986 +vt 0.782857 0.057971 +vt 0.794286 0.289855 +vt 0.782857 0.318841 +vt 0.794286 0.144928 +vt 0.794286 0.202899 +vt 0.782857 0.231884 +vt 0.794286 0.057971 +vt 0.782857 0.086957 +vt 0.794286 0.318841 +vt 0.782857 0.347826 +vt 0.794286 0.231884 +vt 0.794286 0.086957 +vt 0.794286 0.144928 +vt 0.817143 0.130435 +vt 0.817143 0.144928 +vt 0.794286 0.202899 +vt 0.817143 0.188406 +vt 0.817143 0.202899 +vt 0.794286 0.202899 +vt 0.817143 0.188406 +vt 0.817143 0.202899 +vt 0.794286 0.144928 +vt 0.817143 0.130435 +vt 0.817143 0.144928 +vt 0.794286 0.217391 +vt 0.817143 0.202899 +vt 0.817143 0.217391 +vt 0.794286 0.188406 +vt 0.817143 0.173913 +vt 0.794286 0.130435 +vt 0.817143 0.115942 +vt 0.794286 0.231884 +vt 0.817143 0.231884 +vt 0.794286 0.173913 +vt 0.817143 0.159420 +vt 0.794286 0.173913 +vt 0.817143 0.159420 +vt 0.817143 0.173913 +vt 0.794286 0.130435 +vt 0.817143 0.115942 +vt 0.817143 0.130435 +vt 0.794286 0.159420 +vt 0.817143 0.144928 +vt 0.794286 0.231884 +vt 0.817143 0.217391 +vt 0.817143 0.231884 +vt 0.817143 0.144928 +vt 0.794286 0.144928 +vt 0.817143 0.130435 +vt 0.794286 0.188406 +vt 0.794286 0.159420 +vt 0.817143 0.159420 +vt 0.794286 0.130435 +vt 0.817143 0.115942 +vt 0.794286 0.188406 +vt 0.817143 0.173913 +vt 0.817143 0.188406 +vt 0.794286 0.173913 +vt 0.794286 0.231884 +vt 0.817143 0.217391 +vt 0.817143 0.231884 +vt 0.794286 0.159420 +vt 0.794286 0.217391 +vt 0.817143 0.202899 +vt 0.794286 0.202899 +vt 0.794286 0.159420 +vt 0.817143 0.159420 +vt 0.794286 0.130435 +vt 0.817143 0.115942 +vt 0.794286 0.188406 +vt 0.817143 0.173913 +vt 0.817143 0.188406 +vt 0.794286 0.173913 +vt 0.794286 0.231884 +vt 0.817143 0.217391 +vt 0.817143 0.231884 +vt 0.794286 0.217391 +vt 0.794286 0.202899 +vt 0.794286 0.144928 +vt 0.817143 0.130435 +vt 0.817143 0.144928 +vt 0.794286 0.202899 +vt 0.817143 0.188406 +vt 0.817143 0.202899 +vt 0.794286 0.202899 +vt 0.817143 0.188406 +vt 0.817143 0.202899 +vt 0.794286 0.144928 +vt 0.817143 0.130435 +vt 0.817143 0.144928 +vt 0.794286 0.217391 +vt 0.817143 0.202899 +vt 0.817143 0.217391 +vt 0.794286 0.188406 +vt 0.817143 0.173913 +vt 0.794286 0.115942 +vt 0.817143 0.115942 +vt 0.794286 0.231884 +vt 0.817143 0.231884 +vt 0.794286 0.173913 +vt 0.817143 0.159420 +vt 0.794286 0.173913 +vt 0.817143 0.159420 +vt 0.817143 0.173913 +vt 0.794286 0.130435 +vt 0.817143 0.115942 +vt 0.817143 0.130435 +vt 0.794286 0.159420 +vt 0.817143 0.144928 +vt 0.794286 0.231884 +vt 0.817143 0.217391 +vt 0.817143 0.231884 +vt 0.817143 0.144928 +vt 0.794286 0.144928 +vt 0.817143 0.130435 +vt 0.794286 0.188406 +vt 0.794286 0.159420 +vt 0.817143 0.159420 +vt 0.794286 0.130435 +vt 0.817143 0.115942 +vt 0.794286 0.188406 +vt 0.817143 0.173913 +vt 0.817143 0.188406 +vt 0.794286 0.173913 +vt 0.794286 0.231884 +vt 0.817143 0.217391 +vt 0.817143 0.231884 +vt 0.794286 0.159420 +vt 0.794286 0.217391 +vt 0.817143 0.202899 +vt 0.794286 0.217391 +vt 0.794286 0.202899 +vt 0.794286 0.159420 +vt 0.817143 0.159420 +vt 0.794286 0.130435 +vt 0.817143 0.115942 +vt 0.794286 0.188406 +vt 0.817143 0.173913 +vt 0.817143 0.188406 +vt 0.794286 0.173913 +vt 0.794286 0.231884 +vt 0.817143 0.217391 +vt 0.817143 0.231884 +vt 0.794286 0.217391 +vt 0.794286 0.202899 +vt 0.457143 1.000000 +vt 0.382857 1.000000 +vt 0.485714 0.971014 +vt 0.502857 0.855072 +vt 0.502857 0.971014 +vt 0.508571 0.971014 +vt 0.514286 0.855072 +vt 0.514286 0.971014 +vt 0.474286 0.971014 +vt 0.480000 0.855072 +vt 0.480000 0.971014 +vt 0.520000 0.971014 +vt 0.520000 0.855072 +vt 0.468571 0.855072 +vt 0.468571 0.971014 +vt 0.485714 0.855072 +vt 0.537143 0.855072 +vt 0.537143 0.971014 +vt 0.360000 1.000000 +vt 0.320000 1.000000 +vt 0.374286 0.992754 +vt 0.811429 0.347826 +vt 0.805714 0.362319 +vt 0.805714 0.347826 +vt 0.828571 0.347826 +vt 0.834286 0.362319 +vt 0.828571 0.362319 +vt 0.800000 0.362319 +vt 0.800000 0.347826 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.817143 0.347826 +vt 0.811429 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.362319 +vt 0.822857 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.347826 +vt 0.834286 0.347826 +vt 0.840000 0.362319 +vt 0.834286 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.362319 +vt 0.817143 0.347826 +vt 0.805714 0.347826 +vt 0.800000 0.362319 +vt 0.800000 0.347826 +vt 0.811429 0.347826 +vt 0.811429 0.362319 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.828571 0.362319 +vt 0.822857 0.362319 +vt 0.828571 0.347826 +vt 0.805714 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.828571 0.347826 +vt 0.822857 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.347826 +vt 0.811429 0.362319 +vt 0.811429 0.347826 +vt 0.805714 0.347826 +vt 0.800000 0.362319 +vt 0.800000 0.347826 +vt 0.828571 0.362319 +vt 0.817143 0.362319 +vt 0.805714 0.362319 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.817143 0.347826 +vt 0.822857 0.362319 +vt 0.817143 0.362319 +vt 0.811429 0.362319 +vt 0.811429 0.347826 +vt 0.828571 0.347826 +vt 0.822857 0.347826 +vt 0.834286 0.347826 +vt 0.828571 0.362319 +vt 0.805714 0.347826 +vt 0.800000 0.362319 +vt 0.800000 0.347826 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.805714 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.805714 0.347826 +vt 0.811429 0.362319 +vt 0.805714 0.362319 +vt 0.800000 0.347826 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.828571 0.347826 +vt 0.828571 0.362319 +vt 0.811429 0.347826 +vt 0.817143 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.347826 +vt 0.800000 0.362319 +vt 0.822857 0.362319 +vt 0.834286 0.347826 +vt 0.840000 0.362319 +vt 0.834286 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.362319 +vt 0.817143 0.347826 +vt 0.805714 0.347826 +vt 0.800000 0.362319 +vt 0.800000 0.347826 +vt 0.811429 0.362319 +vt 0.811429 0.347826 +vt 0.794286 0.347826 +vt 0.794286 0.362319 +vt 0.828571 0.347826 +vt 0.822857 0.362319 +vt 0.828571 0.362319 +vt 0.805714 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.811429 0.347826 +vt 0.805714 0.362319 +vt 0.805714 0.347826 +vt 0.800000 0.347826 +vt 0.794286 0.362319 +vt 0.794286 0.347826 +vt 0.828571 0.362319 +vt 0.828571 0.347826 +vt 0.817143 0.347826 +vt 0.811429 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.362319 +vt 0.800000 0.362319 +vt 0.822857 0.362319 +vt 0.840000 0.347826 +vt 0.834286 0.362319 +vt 0.834286 0.347826 +vt 0.811429 0.347826 +vt 0.805714 0.362319 +vt 0.805714 0.347826 +vt 0.794286 0.347826 +vt 0.800000 0.362319 +vt 0.794286 0.362319 +vt 0.828571 0.362319 +vt 0.828571 0.347826 +vt 0.817143 0.347826 +vt 0.811429 0.362319 +vt 0.822857 0.347826 +vt 0.817143 0.362319 +vt 0.800000 0.347826 +vt 0.822857 0.362319 +vt 0.731429 0.695652 +vt 0.737143 0.695652 +vt 0.754286 0.695652 +vt 0.771429 0.695652 +vt 0.788571 0.695652 +vt 0.745714 0.695652 +vt 0.762857 0.695652 +vt 0.774286 0.695652 +vt 0.780000 0.695652 +vt 0.797143 0.695652 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.740000 0.818841 +vt 0.745714 0.847826 +vt 0.740000 0.847826 +vt 0.765714 0.818841 +vt 0.757143 0.847826 +vt 0.757143 0.818841 +vt 0.782857 0.818841 +vt 0.774286 0.847826 +vt 0.774286 0.818841 +vt 0.800000 0.818841 +vt 0.791429 0.847826 +vt 0.791429 0.818841 +vt 0.731429 0.818841 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.748571 0.818841 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.771429 0.847826 +vt 0.765714 0.847826 +vt 0.782857 0.847826 +vt 0.782857 0.818841 +vt 0.774286 0.818841 +vt 0.757143 0.818841 +vt 0.740000 0.818841 +vt 0.765714 0.818841 +vt 0.748571 0.818841 +vt 0.731429 0.818841 +vt 0.800000 0.818841 +vt 0.791429 0.818841 +vt 0.782857 0.847826 +vt 0.765714 0.847826 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.791429 0.847826 +vt 0.780000 0.847826 +vt 0.774286 0.847826 +vt 0.762857 0.847826 +vt 0.757143 0.847826 +vt 0.740000 0.847826 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.797143 0.695652 +vt 0.774286 0.695652 +vt 0.780000 0.695652 +vt 0.762857 0.695652 +vt 0.745714 0.695652 +vt 0.788571 0.695652 +vt 0.771429 0.695652 +vt 0.748571 0.695652 +vt 0.754286 0.695652 +vt 0.731429 0.695652 +vt 0.737143 0.695652 +vt 0.774286 0.818841 +vt 0.757143 0.818841 +vt 0.740000 0.818841 +vt 0.782857 0.818841 +vt 0.765714 0.818841 +vt 0.748571 0.818841 +vt 0.731429 0.818841 +vt 0.791429 0.818841 +vt 0.782857 0.847826 +vt 0.771429 0.847826 +vt 0.765714 0.847826 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.800000 0.818841 +vt 0.791429 0.847826 +vt 0.774286 0.847826 +vt 0.762857 0.847826 +vt 0.757143 0.847826 +vt 0.740000 0.847826 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.791429 0.695652 +vt 0.797143 0.695652 +vt 0.780000 0.695652 +vt 0.762857 0.695652 +vt 0.745714 0.695652 +vt 0.788571 0.695652 +vt 0.771429 0.695652 +vt 0.754286 0.695652 +vt 0.731429 0.695652 +vt 0.737143 0.695652 +vt 0.731429 0.695652 +vt 0.737143 0.695652 +vt 0.748571 0.695652 +vt 0.754286 0.695652 +vt 0.771429 0.695652 +vt 0.788571 0.695652 +vt 0.745714 0.695652 +vt 0.762857 0.695652 +vt 0.774286 0.695652 +vt 0.780000 0.695652 +vt 0.791429 0.695652 +vt 0.797143 0.695652 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.748571 0.818841 +vt 0.740000 0.847826 +vt 0.740000 0.818841 +vt 0.757143 0.818841 +vt 0.762857 0.847826 +vt 0.757143 0.847826 +vt 0.774286 0.818841 +vt 0.780000 0.847826 +vt 0.774286 0.847826 +vt 0.791429 0.818841 +vt 0.797143 0.847826 +vt 0.791429 0.847826 +vt 0.731429 0.818841 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.765714 0.818841 +vt 0.771429 0.847826 +vt 0.765714 0.847826 +vt 0.782857 0.818841 +vt 0.788571 0.847826 +vt 0.782857 0.847826 +vt 0.800000 0.818841 +vt 0.731429 0.695652 +vt 0.737143 0.695652 +vt 0.748571 0.695652 +vt 0.754286 0.695652 +vt 0.771429 0.695652 +vt 0.788571 0.695652 +vt 0.745714 0.695652 +vt 0.762857 0.695652 +vt 0.774286 0.695652 +vt 0.780000 0.695652 +vt 0.791429 0.695652 +vt 0.797143 0.695652 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.748571 0.818841 +vt 0.740000 0.847826 +vt 0.740000 0.818841 +vt 0.765714 0.818841 +vt 0.757143 0.847826 +vt 0.757143 0.818841 +vt 0.774286 0.818841 +vt 0.780000 0.847826 +vt 0.774286 0.847826 +vt 0.800000 0.818841 +vt 0.791429 0.847826 +vt 0.791429 0.818841 +vt 0.731429 0.818841 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.765714 0.847826 +vt 0.782857 0.818841 +vt 0.788571 0.847826 +vt 0.782857 0.847826 +vt 0.411429 0.318841 +vt 0.388571 0.289855 +vt 0.411429 0.289855 +vt 0.411429 0.144928 +vt 0.388571 0.115942 +vt 0.411429 0.115942 +vt 0.411429 0.202899 +vt 0.388571 0.173913 +vt 0.411429 0.173913 +vt 0.388571 0.260870 +vt 0.411429 0.260870 +vt 0.411429 0.347826 +vt 0.388571 0.318841 +vt 0.388571 0.144928 +vt 0.411429 0.231884 +vt 0.388571 0.202899 +vt 0.388571 0.231884 +vt 0.354286 0.137681 +vt 0.342857 0.115942 +vt 0.354286 0.115942 +vt 0.354286 0.181159 +vt 0.342857 0.159420 +vt 0.354286 0.159420 +vt 0.354286 0.224638 +vt 0.342857 0.202899 +vt 0.354286 0.202899 +vt 0.354286 0.268116 +vt 0.342857 0.246377 +vt 0.354286 0.246377 +vt 0.411429 0.260870 +vt 0.388571 0.231884 +vt 0.411429 0.231884 +vt 0.388571 0.202899 +vt 0.411429 0.202899 +vt 0.342857 0.224638 +vt 0.354286 0.289855 +vt 0.342857 0.268116 +vt 0.342857 0.137681 +vt 0.342857 0.181159 +vt 0.411429 0.173913 +vt 0.388571 0.144928 +vt 0.411429 0.144928 +vt 0.411429 0.347826 +vt 0.388571 0.318841 +vt 0.411429 0.318841 +vt 0.411429 0.289855 +vt 0.388571 0.260870 +vt 0.388571 0.173913 +vt 0.388571 0.115942 +vt 0.411429 0.115942 +vt 0.388571 0.289855 +vt 0.354286 0.268116 +vt 0.342857 0.246377 +vt 0.354286 0.246377 +vt 0.354286 0.224638 +vt 0.342857 0.202899 +vt 0.354286 0.202899 +vt 0.342857 0.181159 +vt 0.354286 0.181159 +vt 0.354286 0.159420 +vt 0.342857 0.137681 +vt 0.354286 0.137681 +vt 0.354286 0.289855 +vt 0.342857 0.268116 +vt 0.342857 0.224638 +vt 0.342857 0.159420 +vt 0.342857 0.115942 +vt 0.354286 0.115942 +vt 0.748571 0.818841 +vt 0.740000 0.818841 +vt 0.731429 0.818841 +vt 0.800000 0.818841 +vt 0.791429 0.818841 +vt 0.782857 0.818841 +vt 0.788571 0.847826 +vt 0.782857 0.847826 +vt 0.765714 0.818841 +vt 0.771429 0.847826 +vt 0.765714 0.847826 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.791429 0.847826 +vt 0.774286 0.818841 +vt 0.780000 0.847826 +vt 0.774286 0.847826 +vt 0.757143 0.847826 +vt 0.757143 0.818841 +vt 0.740000 0.847826 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.791429 0.695652 +vt 0.797143 0.695652 +vt 0.774286 0.695652 +vt 0.780000 0.695652 +vt 0.762857 0.695652 +vt 0.745714 0.695652 +vt 0.788571 0.695652 +vt 0.771429 0.695652 +vt 0.748571 0.695652 +vt 0.754286 0.695652 +vt 0.737143 0.695652 +vt 0.774286 0.818841 +vt 0.757143 0.818841 +vt 0.740000 0.818841 +vt 0.782857 0.818841 +vt 0.765714 0.818841 +vt 0.748571 0.818841 +vt 0.731429 0.818841 +vt 0.800000 0.818841 +vt 0.791429 0.818841 +vt 0.782857 0.847826 +vt 0.765714 0.847826 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.791429 0.847826 +vt 0.780000 0.847826 +vt 0.774286 0.847826 +vt 0.757143 0.847826 +vt 0.740000 0.847826 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.791429 0.695652 +vt 0.797143 0.695652 +vt 0.780000 0.695652 +vt 0.757143 0.695652 +vt 0.762857 0.695652 +vt 0.745714 0.695652 +vt 0.788571 0.695652 +vt 0.771429 0.695652 +vt 0.748571 0.695652 +vt 0.754286 0.695652 +vt 0.737143 0.695652 +vt 0.737143 0.695652 +vt 0.748571 0.695652 +vt 0.754286 0.695652 +vt 0.771429 0.695652 +vt 0.788571 0.695652 +vt 0.745714 0.695652 +vt 0.762857 0.695652 +vt 0.774286 0.695652 +vt 0.780000 0.695652 +vt 0.791429 0.695652 +vt 0.797143 0.695652 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.748571 0.818841 +vt 0.740000 0.847826 +vt 0.740000 0.818841 +vt 0.765714 0.818841 +vt 0.757143 0.847826 +vt 0.757143 0.818841 +vt 0.774286 0.818841 +vt 0.780000 0.847826 +vt 0.774286 0.847826 +vt 0.800000 0.818841 +vt 0.791429 0.847826 +vt 0.791429 0.818841 +vt 0.731429 0.818841 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.765714 0.847826 +vt 0.782857 0.818841 +vt 0.788571 0.847826 +vt 0.782857 0.847826 +vt 0.731429 0.695652 +vt 0.737143 0.695652 +vt 0.754286 0.695652 +vt 0.771429 0.695652 +vt 0.788571 0.695652 +vt 0.745714 0.695652 +vt 0.762857 0.695652 +vt 0.780000 0.695652 +vt 0.791429 0.695652 +vt 0.797143 0.695652 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.748571 0.818841 +vt 0.740000 0.847826 +vt 0.740000 0.818841 +vt 0.765714 0.818841 +vt 0.757143 0.847826 +vt 0.757143 0.818841 +vt 0.782857 0.818841 +vt 0.774286 0.847826 +vt 0.774286 0.818841 +vt 0.800000 0.818841 +vt 0.791429 0.847826 +vt 0.791429 0.818841 +vt 0.731429 0.818841 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.765714 0.847826 +vt 0.788571 0.847826 +vt 0.782857 0.847826 +vt 0.782857 0.818841 +vt 0.774286 0.818841 +vt 0.757143 0.818841 +vt 0.748571 0.818841 +vt 0.740000 0.818841 +vt 0.765714 0.818841 +vt 0.731429 0.818841 +vt 0.791429 0.818841 +vt 0.788571 0.847826 +vt 0.782857 0.847826 +vt 0.771429 0.847826 +vt 0.765714 0.847826 +vt 0.754286 0.847826 +vt 0.748571 0.847826 +vt 0.737143 0.847826 +vt 0.731429 0.847826 +vt 0.800000 0.818841 +vt 0.791429 0.847826 +vt 0.780000 0.847826 +vt 0.774286 0.847826 +vt 0.757143 0.847826 +vt 0.740000 0.847826 +vt 0.742800 0.862319 +vt 0.737143 0.876666 +vt 0.731486 0.862319 +vt 0.791429 0.695652 +vt 0.797143 0.695652 +vt 0.774286 0.695652 +vt 0.780000 0.695652 +vt 0.762857 0.695652 +vt 0.745714 0.695652 +vt 0.788571 0.695652 +vt 0.771429 0.695652 +vt 0.754286 0.695652 +vt 0.731429 0.695652 +vt 0.737143 0.695652 +vt 0.577143 0.434783 +vt 0.925714 0.282609 +vt 0.925714 0.108696 +vt 0.925714 0.630435 +vt 0.840000 0.333333 +vt 0.840000 0.391304 +vt 0.840000 0.449275 +vt 0.840000 0.507246 +vt 0.840000 0.565217 +vt 0.840000 0.681159 +vt 0.840000 0.043478 +vt 0.840000 0.101449 +vt 0.840000 0.159420 +vt 0.622857 -0.000000 +vt 0.714286 0.347826 +vt 0.794286 0.347826 +vt 0.794286 0.115942 +vt 0.794286 0.115942 +vt 0.794286 0.144928 +vt 0.794286 0.115942 +vt 0.794286 0.217391 +vt 0.794286 0.115942 +vt 0.794286 0.130435 +vt 0.794286 0.115942 +vt 0.794286 0.144928 +vt 0.794286 0.115942 +vt 0.794286 0.115942 +vt 0.508571 0.855072 +vt 0.474286 0.855072 +vt 0.368571 0.992754 +vt 0.840000 0.362319 +vt 0.840000 0.347826 +vt 0.840000 0.362319 +vt 0.840000 0.362319 +vt 0.840000 0.362319 +vt 0.840000 0.347826 +vt 0.840000 0.362319 +vt 0.840000 0.362319 +vt 0.748571 0.695652 +vt 0.765714 0.695652 +vt 0.782857 0.695652 +vt 0.740000 0.695652 +vt 0.757143 0.695652 +vt 0.791429 0.695652 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.762857 0.847826 +vt 0.780000 0.847826 +vt 0.797143 0.847826 +vt 0.788571 0.847826 +vt 0.788571 0.847826 +vt 0.771429 0.847826 +vt 0.797143 0.847826 +vt 0.745714 0.847826 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.791429 0.695652 +vt 0.757143 0.695652 +vt 0.740000 0.695652 +vt 0.782857 0.695652 +vt 0.765714 0.695652 +vt 0.788571 0.847826 +vt 0.797143 0.847826 +vt 0.780000 0.847826 +vt 0.745714 0.847826 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.774286 0.695652 +vt 0.757143 0.695652 +vt 0.740000 0.695652 +vt 0.782857 0.695652 +vt 0.765714 0.695652 +vt 0.748571 0.695652 +vt 0.765714 0.695652 +vt 0.782857 0.695652 +vt 0.740000 0.695652 +vt 0.757143 0.695652 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.745714 0.847826 +vt 0.765714 0.695652 +vt 0.782857 0.695652 +vt 0.740000 0.695652 +vt 0.757143 0.695652 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.745714 0.847826 +vt 0.762857 0.847826 +vt 0.797143 0.847826 +vt 0.771429 0.847826 +vt 0.388571 0.347826 +vt 0.342857 0.289855 +vt 0.388571 0.347826 +vt 0.342857 0.289855 +vt 0.797143 0.847826 +vt 0.762857 0.847826 +vt 0.745714 0.847826 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.757143 0.695652 +vt 0.740000 0.695652 +vt 0.782857 0.695652 +vt 0.765714 0.695652 +vt 0.731429 0.695652 +vt 0.788571 0.847826 +vt 0.771429 0.847826 +vt 0.797143 0.847826 +vt 0.762857 0.847826 +vt 0.745714 0.847826 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.774286 0.695652 +vt 0.740000 0.695652 +vt 0.782857 0.695652 +vt 0.765714 0.695652 +vt 0.731429 0.695652 +vt 0.731429 0.695652 +vt 0.765714 0.695652 +vt 0.782857 0.695652 +vt 0.740000 0.695652 +vt 0.757143 0.695652 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.745714 0.847826 +vt 0.762857 0.847826 +vt 0.797143 0.847826 +vt 0.771429 0.847826 +vt 0.748571 0.695652 +vt 0.765714 0.695652 +vt 0.782857 0.695652 +vt 0.740000 0.695652 +vt 0.757143 0.695652 +vt 0.774286 0.695652 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.745714 0.847826 +vt 0.762857 0.847826 +vt 0.780000 0.847826 +vt 0.797143 0.847826 +vt 0.771429 0.847826 +vt 0.797143 0.847826 +vt 0.762857 0.847826 +vt 0.745714 0.847826 +vt 0.737143 0.847972 +vt 0.741143 0.852174 +vt 0.741143 0.872464 +vt 0.733143 0.872464 +vt 0.733143 0.852174 +vt 0.757143 0.695652 +vt 0.740000 0.695652 +vt 0.782857 0.695652 +vt 0.765714 0.695652 +vt 0.748571 0.695652 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0175 0.9998 0.0000 +vn 0.0175 -0.9998 0.0000 +vn -0.7070 -0.0123 -0.7071 +vn 0.9998 0.0175 0.0000 +vn 0.7070 0.0123 0.7071 +vn -0.9998 -0.0175 0.0000 +vn 0.7070 0.0123 -0.7071 +vn -0.7070 -0.0123 0.7071 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.0000 0.1644 0.9864 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.3162 0.9487 0.0000 +vn -0.3162 0.9487 0.0000 +vn 0.6000 0.8000 0.0000 +vn -0.6000 0.8000 0.0000 +vn 0.6928 0.4000 -0.6000 +vn 0.4000 0.6928 -0.6000 +vn 0.0000 0.8000 -0.6000 +vn -0.4000 0.6928 -0.6000 +vn -0.6928 0.4000 -0.6000 +vn -0.8000 0.0000 -0.6000 +vn -0.6928 -0.4000 -0.6000 +vn -0.4000 -0.6928 -0.6000 +vn -0.0000 -0.8000 -0.6000 +vn 0.4000 -0.6928 -0.6000 +vn 0.6928 -0.4000 -0.6000 +vn 0.8000 -0.0000 -0.6000 +vn -0.7746 -0.4472 0.4472 +vn -0.4472 -0.7746 0.4472 +vn -0.0000 -0.8944 0.4472 +vn 0.4472 -0.7746 0.4472 +vn 0.7746 -0.4472 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.7746 0.4472 0.4472 +vn 0.4472 0.7746 0.4472 +vn -0.0000 0.8944 0.4472 +vn -0.4472 0.7746 0.4472 +vn -0.7746 0.4472 0.4472 +vn -0.8944 0.0000 0.4472 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 -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.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.5000 -0.5000 0.7071 +vn -0.5000 0.5000 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vn -0.5000 0.5000 0.7071 +vn -0.5000 -0.5000 -0.7071 +vn -0.5000 -0.5000 0.7071 +vn 0.5000 0.5000 -0.7071 +vn 0.5000 0.5000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.6124 0.3536 -0.7071 +vn -0.6124 0.3536 0.7071 +vn 0.6124 -0.3536 0.7071 +vn 0.6124 -0.3536 -0.7071 +vn -0.1295 0.9916 -0.0000 +vn 0.3970 0.6876 0.6080 +vn 0.9235 0.3836 0.0000 +vn -0.4886 0.5339 -0.6901 +vn 0.0247 0.9025 -0.4299 +vn 0.1091 0.1889 0.9759 +vn 0.0247 0.9025 0.4299 +vn -0.4886 0.5339 0.6901 +vn 0.9542 -0.2990 -0.0000 +vn 0.7693 0.4727 0.4299 +vn 0.7067 -0.1561 0.6901 +vn 0.1091 0.1889 -0.9759 +vn 0.7693 0.4727 -0.4299 +vn 0.7067 -0.1561 -0.6901 +vn 0.3970 0.6876 -0.6080 +vn -0.7361 0.6769 -0.0000 +vn 0.9542 -0.2991 0.0000 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn -0.6124 -0.3536 0.7071 +vn -0.9542 -0.2991 -0.0000 +vn -0.7067 -0.1561 -0.6901 +vn -0.1091 0.1889 -0.9759 +vn 0.6124 0.3536 -0.7071 +vn 0.4886 0.5339 -0.6901 +vn 0.7361 0.6769 0.0000 +vn -0.0247 0.9025 -0.4299 +vn 0.1295 0.9916 0.0000 +vn -0.1091 0.1889 0.9759 +vn -0.0247 0.9025 0.4299 +vn -0.3970 0.6876 0.6080 +vn -0.7693 0.4727 0.4299 +vn -0.9235 0.3836 -0.0000 +vn -0.7693 0.4727 -0.4299 +vn -0.3970 0.6876 -0.6080 +vn 0.4886 0.5339 0.6901 +vn -0.7067 -0.1561 0.6901 +vn 0.6124 0.3536 0.7071 +vn -0.6124 -0.3536 -0.7071 +s off +f 671/1237/143 674/1238/143 670/1239/143 +f 667/1240/144 672/1241/144 668/1242/144 +f 666/1243/143 670/1239/143 665/1244/143 +f 669/1245/144 676/1246/144 672/1241/144 +f 663/1247/143 688/1248/143 664/1249/143 +f 688/1248/143 653/1250/143 664/1251/143 +f 677/1252/143 654/1253/143 653/1254/143 +f 678/1255/143 655/1256/143 654/1257/143 +f 655/1258/143 680/1259/143 656/1260/143 +f 680/1259/143 657/1261/143 656/1262/143 +f 681/1263/143 658/1264/143 657/1261/143 +f 682/1265/143 659/1266/143 658/1267/143 +f 683/1268/143 660/1269/143 659/1270/143 +f 660/1271/143 685/1272/143 661/1273/143 +f 661/1274/143 686/1275/143 662/1276/143 +f 662/1277/143 687/1278/143 663/1279/143 +f 705/1280/144 708/1281/144 716/1282/144 +f 713/1283/145 711/1284/145 710/1285/145 +f 715/1286/146 707/1287/146 712/1288/146 +f 710/1285/147 714/1289/147 713/1283/147 +f 716/1282/148 712/1288/148 711/1284/148 +f 709/1290/149 705/1291/149 714/1289/149 +f 755/1292/143 768/1293/143 767/1294/143 +f 753/1295/143 764/1296/143 752/1297/143 +f 760/1298/143 771/1299/143 759/1300/143 +f 750/1301/143 761/1302/143 749/1303/143 +f 757/1304/143 768/1305/143 756/1306/143 +f 754/1307/143 765/1308/143 753/1295/143 +f 760/1298/143 761/1309/143 772/1310/143 +f 751/1311/143 762/1312/143 750/1301/143 +f 757/1304/143 770/1313/143 769/1314/143 +f 755/1315/143 766/1316/143 754/1307/143 +f 752/1297/143 763/1317/143 751/1311/143 +f 758/1318/143 771/1319/143 770/1320/143 +f 777/1321/143 781/1322/143 773/1323/143 +f 794/1324/144 699/1325/144 698/1326/144 +f 699/1325/144 796/1327/144 700/1328/144 +f 700/1328/144 785/1329/144 689/1330/144 +f 785/1331/144 690/1332/144 689/1330/144 +f 786/1333/144 691/1334/144 690/1332/144 +f 691/1334/144 788/1335/144 692/1336/144 +f 788/1337/144 693/1338/144 692/1336/144 +f 789/1339/144 694/1340/144 693/1338/144 +f 694/1340/144 791/1341/144 695/1342/144 +f 695/1343/144 792/1344/144 696/1345/144 +f 792/1346/144 697/1347/144 696/1345/144 +f 793/1348/144 698/1326/144 697/1347/144 +f 819/1349/143 808/1350/143 807/1351/143 +f 820/1352/143 797/1353/143 808/1354/143 +f 797/1355/143 810/1356/143 798/1357/143 +f 810/1356/143 799/1358/143 798/1359/143 +f 811/1360/143 800/1361/143 799/1362/143 +f 800/1363/143 813/1364/143 801/1365/143 +f 813/1364/143 802/1366/143 801/1367/143 +f 814/1368/143 803/1369/143 802/1370/143 +f 815/1371/143 804/1372/143 803/1373/143 +f 804/1374/143 817/1375/143 805/1376/143 +f 805/1377/143 818/1378/143 806/1379/143 +f 806/1380/143 819/1349/143 807/1381/143 +f 843/1382/143 880/1383/143 879/1384/143 +f 844/1385/143 869/1386/143 880/1387/143 +f 834/1388/143 869/1389/143 833/1390/143 +f 834/1388/143 871/1391/143 870/1392/143 +f 835/1393/143 872/1394/143 871/1395/143 +f 837/1396/143 872/1397/143 836/1398/143 +f 837/1396/143 874/1399/143 873/1400/143 +f 838/1401/143 875/1402/143 874/1403/143 +f 839/1404/143 876/1405/143 875/1406/143 +f 841/1407/143 876/1408/143 840/1409/143 +f 842/1410/143 877/1411/143 841/1407/143 +f 843/1382/143 878/1412/143 842/1410/143 +f 831/1413/144 868/1414/144 832/1415/144 +f 832/1415/144 857/1416/144 821/1417/144 +f 857/1418/144 822/1419/144 821/1417/144 +f 822/1419/144 859/1420/144 823/1421/144 +f 823/1421/144 860/1422/144 824/1423/144 +f 860/1424/144 825/1425/144 824/1423/144 +f 861/1426/144 826/1427/144 825/1425/144 +f 826/1427/144 863/1428/144 827/1429/144 +f 827/1430/144 864/1431/144 828/1432/144 +f 864/1433/144 829/1434/144 828/1432/144 +f 865/1435/144 830/1436/144 829/1434/144 +f 866/1437/144 831/1413/144 830/1436/144 +f 901/1438/144 899/1439/144 895/1440/144 +f 890/1441/144 855/1442/144 854/1443/144 +f 855/1442/144 892/1444/144 856/1445/144 +f 856/1445/144 881/1446/144 845/1447/144 +f 881/1448/144 846/1449/144 845/1447/144 +f 846/1449/144 883/1450/144 847/1451/144 +f 847/1451/144 884/1452/144 848/1453/144 +f 884/1454/144 849/1455/144 848/1453/144 +f 885/1456/144 850/1457/144 849/1455/144 +f 850/1457/144 887/1458/144 851/1459/144 +f 851/1460/144 888/1461/144 852/1462/144 +f 888/1463/144 853/1464/144 852/1462/144 +f 889/1465/144 854/1443/144 853/1464/144 +f 1037/1466/145 1039/1467/145 1038/1468/145 +f 1034/1469/146 1040/1470/146 1036/1471/146 +f 1035/1472/149 1038/1468/149 1033/1473/149 +f 1036/1474/144 1037/1466/144 1035/1475/144 +f 1033/1476/143 1039/1467/143 1034/1477/143 +f 1042/1478/143 1048/1479/143 1041/1480/143 +f 1043/1481/144 1045/1482/144 1044/1483/144 +f 1087/1484/143 1081/1485/143 1088/1486/143 +f 1085/1487/150 1082/1488/150 1087/1484/150 +f 1088/1489/151 1083/1490/151 1086/1491/151 +f 1083/1490/151 1081/1492/151 1091/1493/151 +f 1083/1490/152 1090/1494/152 1084/1495/152 +f 1055/1496/146 1052/1497/146 1053/1498/146 +f 1050/1499/149 1079/1500/149 1056/1501/149 +f 1054/1502/149 1050/1499/149 1056/1503/149 +f 1053/1504/144 1051/1505/144 1054/1506/144 +f 1073/1507/146 1080/1508/146 1075/1509/146 +f 1076/1510/149 1077/1511/149 1074/1512/149 +f 1055/1513/146 1078/1514/146 1049/1515/146 +f 1046/1516/151 1048/1479/151 1095/1517/151 +f 1082/1488/150 1084/1495/150 1090/1518/150 +f 1082/1519/150 1096/1520/150 1045/1521/150 +f 1081/1522/153 1045/1521/153 1046/1523/153 +f 1105/1524/154 1089/1525/154 1092/1526/154 +f 1089/1525/153 1093/1527/153 1092/1526/153 +f 1093/1527/150 1107/1528/150 1092/1526/150 +f 1096/1520/155 1091/1529/155 1095/1530/155 +f 1104/1531/155 1108/1532/155 1107/1528/155 +f 1091/1529/151 1046/1533/151 1095/1530/151 +f 1103/1534/151 1089/1525/151 1108/1535/151 +f 1103/1536/151 1101/1537/151 1094/1538/151 +f 1107/1539/150 1105/1524/150 1092/1540/150 +f 1102/1541/156 1094/1542/156 1101/1537/156 +f 1047/1543/157 1095/1530/157 1048/1479/157 +f 1102/1541/150 1104/1544/150 1093/1545/150 +f 1097/1546/150 1102/1541/150 1099/1547/150 +f 1100/1548/151 1103/1536/151 1098/1549/151 +f 1098/1550/143 1104/1544/143 1097/1546/143 +f 1110/1551/144 1108/1552/144 1109/1553/144 +f 1111/1554/143 1105/1524/143 1112/1555/143 +f 1109/1556/151 1106/1557/151 1111/1554/151 +f 1112/1555/150 1107/1539/150 1110/1551/150 +f 1106/1557/151 1108/1558/151 1089/1559/151 +f 1099/1547/144 1101/1537/144 1100/1548/144 +f 1125/1560/147 1127/1561/147 1121/1562/147 +f 1141/1563/148 1143/1564/148 1137/1565/148 +f 1157/1566/158 1159/1567/158 1153/1568/158 +f 1164/1569/159 1162/1570/159 1168/1571/159 +f 1180/1572/160 1178/1573/160 1184/1574/160 +f 1205/1575/149 1207/1576/149 1201/1577/149 +f 1212/1578/146 1210/1579/146 1216/1580/146 +f 1228/1581/145 1226/1582/145 1232/1583/145 +f 1273/1584/161 1256/1585/161 1280/1586/161 +f 1280/1587/161 1255/1588/161 1279/1589/161 +f 1278/1590/161 1253/1591/161 1277/1592/161 +f 1275/1593/161 1252/1594/161 1251/1595/161 +f 1274/1596/161 1249/1597/161 1273/1584/161 +f 1278/1590/161 1255/1598/161 1254/1599/161 +f 1276/1600/161 1253/1601/161 1252/1602/161 +f 1274/1596/161 1251/1603/161 1250/1604/161 +f 1287/1605/161 1310/1606/161 1311/1607/161 +f 1285/1608/161 1308/1609/161 1309/1610/161 +f 1283/1611/161 1306/1612/161 1307/1613/161 +f 1287/1605/161 1312/1614/161 1288/1615/161 +f 1285/1608/161 1310/1616/161 1286/1617/161 +f 1283/1611/161 1308/1618/161 1284/1619/161 +f 1281/1620/161 1306/1621/161 1282/1622/161 +f 1281/1623/161 1312/1624/161 1305/1625/161 +f 1326/1626/161 1351/1627/161 1327/1628/161 +f 1325/1629/161 1348/1630/161 1349/1631/161 +f 1323/1632/161 1346/1633/161 1347/1634/161 +f 1327/1628/161 1352/1635/161 1328/1636/161 +f 1326/1626/161 1349/1637/161 1350/1638/161 +f 1323/1632/161 1348/1639/161 1324/1640/161 +f 1321/1641/161 1346/1642/161 1322/1643/161 +f 1328/1636/161 1345/1644/161 1321/1645/161 +f 1400/1646/161 1369/1647/161 1376/1648/161 +f 1399/1649/161 1376/1650/161 1375/1651/161 +f 1398/1652/161 1373/1653/161 1397/1654/161 +f 1396/1655/161 1371/1656/161 1395/1657/161 +f 1394/1658/161 1369/1659/161 1393/1660/161 +f 1398/1652/161 1375/1661/161 1374/1662/161 +f 1396/1655/161 1373/1663/161 1372/1664/161 +f 1395/1657/161 1370/1665/161 1394/1658/161 +f 1440/1666/161 1409/1667/161 1416/1668/161 +f 1440/1669/161 1415/1670/161 1439/1671/161 +f 1438/1672/161 1413/1673/161 1437/1674/161 +f 1436/1675/161 1411/1676/161 1435/1677/161 +f 1434/1678/161 1409/1679/161 1433/1680/161 +f 1438/1672/161 1415/1681/161 1414/1682/161 +f 1436/1675/161 1413/1683/161 1412/1684/161 +f 1434/1678/161 1411/1685/161 1410/1686/161 +f 1447/1687/149 1462/1688/149 1453/1689/149 +f 1459/1690/144 1468/1691/144 1458/1692/144 +f 1443/1693/144 1448/1694/144 1444/1695/144 +f 1444/1695/146 1446/1696/146 1442/1697/146 +f 1441/1698/149 1447/1699/149 1443/1700/149 +f 1450/1701/143 1453/1702/143 1449/1703/143 +f 1452/1704/146 1454/1705/146 1450/1701/146 +f 1449/1706/149 1455/1707/149 1451/1708/149 +f 1467/1709/149 1479/1710/149 1473/1711/149 +f 1446/1696/146 1448/1694/146 1460/1712/146 +f 1447/1699/149 1445/1713/149 1457/1714/149 +f 1454/1705/146 1456/1715/146 1463/1716/146 +f 1447/1717/145 1454/1718/145 1448/1719/145 +f 1455/1707/149 1453/1720/149 1462/1721/149 +f 1460/1722/146 1454/1718/146 1463/1723/146 +f 1458/1692/146 1466/1724/146 1461/1725/146 +f 1464/1726/149 1467/1727/149 1459/1728/149 +f 1470/1729/143 1473/1730/143 1469/1731/143 +f 1472/1732/146 1474/1733/146 1470/1729/146 +f 1469/1734/149 1475/1735/149 1471/1736/149 +f 1466/1724/146 1468/1691/146 1478/1737/146 +f 1467/1727/149 1465/1738/149 1477/1739/149 +f 1474/1733/146 1476/1740/146 1480/1741/146 +f 1467/1742/145 1474/1743/145 1468/1744/145 +f 1475/1735/149 1473/1745/149 1479/1746/149 +f 1478/1747/146 1474/1743/146 1480/1748/146 +f 1484/1749/144 1486/1750/144 1485/1751/144 +f 1481/1752/162 1487/1753/162 1488/1754/162 +f 1487/1755/146 1484/1749/146 1485/1756/146 +f 1483/1757/149 1488/1758/149 1486/1759/149 +f 1483/1757/145 1482/1760/145 1481/1752/145 +f 672/1761/146 671/1762/146 1492/1763/146 +f 1491/1764/149 1489/1765/149 670/1766/149 +f 1490/1767/145 1491/1768/145 1492/1769/145 +f 1493/1770/143 1491/1771/143 1494/1772/143 +f 1496/1773/144 1490/1767/144 1495/1774/144 +f 668/1775/145 1494/1772/145 667/1776/145 +f 665/1777/145 1495/1774/145 666/1778/145 +f 1500/1779/149 1504/1780/149 1502/1781/149 +f 1498/1782/146 1501/1783/146 1503/1784/146 +f 1499/1785/143 1503/1784/143 1504/1786/143 +f 1497/1787/144 1502/1781/144 1501/1783/144 +f 1532/1788/144 1533/1789/144 1534/1790/144 +f 1512/1791/143 1510/1792/143 1508/1793/143 +f 1545/1794/143 1547/1795/143 1549/1796/143 +f 1541/1797/144 1540/1798/144 1539/1799/144 +f 1560/1800/144 1555/1801/144 1556/1802/144 +f 1558/1803/143 1554/1804/143 1553/1805/143 +f 1559/1806/146 1556/1802/146 1554/1804/146 +f 1557/1807/149 1553/1808/149 1555/1801/149 +f 1044/1483/150 1047/1543/150 1042/1478/150 +f 1041/1480/151 1046/1516/151 1043/1809/151 +f 1047/1543/150 1045/1482/150 1096/1810/150 +f 1086/1491/144 1084/1495/144 1085/1487/144 +f 1581/1811/149 1577/1812/149 1579/1813/149 +f 1583/1814/163 1578/1815/163 1577/1816/163 +f 1582/1817/164 1579/1813/164 1580/1818/164 +f 1584/1819/146 1580/1818/146 1578/1815/146 +f 1594/1820/143 1600/1821/143 1596/1822/143 +f 1591/1823/146 1589/1824/146 1590/1825/146 +f 1587/1826/144 1592/1827/144 1588/1828/144 +f 1586/1829/143 1590/1830/143 1585/1831/143 +f 1588/1828/145 1591/1832/145 1586/1829/145 +f 1585/1833/158 1589/1824/158 1587/1826/158 +f 1596/1834/143 1599/1835/143 1595/1836/143 +f 1595/1837/143 1597/1838/143 1593/1839/143 +f 1593/1840/143 1598/1841/143 1594/1842/143 +f 1608/1843/144 1603/1844/144 1604/1845/144 +f 1605/1846/144 1604/1847/144 1601/1848/144 +f 1606/1849/144 1601/1850/144 1602/1851/144 +f 1607/1852/144 1602/1853/144 1603/1854/144 +f 1596/1855/149 1603/1844/149 1594/1856/149 +f 1593/1857/146 1601/1850/146 1595/1858/146 +f 1600/1821/158 1605/1846/158 1599/1835/158 +f 1597/1859/145 1607/1852/145 1598/1841/145 +f 1595/1860/145 1604/1847/145 1596/1861/145 +f 1594/1862/158 1602/1853/158 1593/1863/158 +f 1598/1841/146 1608/1843/146 1600/1821/146 +f 1599/1835/149 1606/1849/149 1597/1838/149 +f 1612/1864/144 1615/1865/144 1611/1866/144 +f 1609/1867/143 1614/1868/143 1610/1869/143 +f 1610/1870/145 1616/1871/145 1612/1872/145 +f 1611/1873/158 1613/1874/158 1609/1875/158 +f 1614/1876/146 1620/1877/146 1616/1871/146 +f 1615/1878/146 1617/1879/146 1613/1874/146 +f 1616/1880/146 1619/1881/146 1615/1865/146 +f 1613/1882/146 1618/1883/146 1614/1868/146 +f 1618/1884/145 1624/1885/145 1620/1877/145 +f 1619/1881/158 1621/1886/158 1617/1879/158 +f 1620/1877/144 1623/1887/144 1619/1881/144 +f 1617/1879/143 1622/1888/143 1618/1883/143 +f 1631/1889/165 1654/1890/165 1655/1891/165 +f 1629/1892/165 1652/1893/165 1653/1894/165 +f 1627/1895/165 1650/1896/165 1651/1897/165 +f 1631/1889/165 1656/1898/165 1632/1899/165 +f 1629/1892/165 1654/1900/165 1630/1901/165 +f 1627/1895/165 1652/1902/165 1628/1903/165 +f 1625/1904/165 1650/1905/165 1626/1906/165 +f 1625/1907/165 1656/1908/165 1649/1909/165 +f 1671/1910/165 1694/1911/165 1695/1912/165 +f 1669/1913/165 1692/1914/165 1693/1915/165 +f 1667/1916/165 1690/1917/165 1691/1918/165 +f 1671/1910/165 1696/1919/165 1672/1920/165 +f 1669/1913/165 1694/1921/165 1670/1922/165 +f 1667/1916/165 1692/1923/165 1668/1924/165 +f 1665/1925/165 1690/1926/165 1666/1927/165 +f 1665/1928/165 1696/1929/165 1689/1930/165 +f 1744/1931/165 1713/1932/165 1720/1933/165 +f 1744/1934/165 1719/1935/165 1743/1936/165 +f 1742/1937/165 1717/1938/165 1741/1939/165 +f 1740/1940/165 1715/1941/165 1739/1942/165 +f 1737/1943/165 1714/1944/165 1713/1945/165 +f 1742/1937/165 1719/1946/165 1718/1947/165 +f 1740/1940/165 1717/1948/165 1716/1949/165 +f 1739/1942/165 1714/1950/165 1738/1951/165 +f 1784/1952/165 1753/1953/165 1760/1954/165 +f 1784/1955/165 1759/1956/165 1783/1957/165 +f 1782/1958/165 1757/1959/165 1781/1960/165 +f 1780/1961/165 1755/1962/165 1779/1963/165 +f 1778/1964/165 1753/1965/165 1777/1966/165 +f 1782/1958/165 1759/1967/165 1758/1968/165 +f 1780/1961/165 1757/1969/165 1756/1970/165 +f 1778/1964/165 1755/1971/165 1754/1972/165 +f 1790/1973/165 1815/1974/165 1791/1975/165 +f 1789/1976/165 1812/1977/165 1813/1978/165 +f 1787/1979/165 1810/1980/165 1811/1981/165 +f 1792/1982/165 1815/1983/165 1816/1984/165 +f 1789/1976/165 1814/1985/165 1790/1973/165 +f 1787/1979/165 1812/1986/165 1788/1987/165 +f 1785/1988/165 1810/1989/165 1786/1990/165 +f 1785/1991/165 1816/1992/165 1809/1993/165 +f 671/1237/143 675/1994/143 674/1238/143 +f 667/1240/144 669/1245/144 672/1241/144 +f 666/1243/143 671/1237/143 670/1239/143 +f 669/1245/144 673/1995/144 676/1246/144 +f 663/1247/143 687/1278/143 688/1248/143 +f 688/1248/143 677/1252/143 653/1250/143 +f 677/1252/143 678/1255/143 654/1253/143 +f 678/1255/143 679/1996/143 655/1256/143 +f 655/1258/143 679/1996/143 680/1259/143 +f 680/1259/143 681/1263/143 657/1261/143 +f 681/1263/143 682/1265/143 658/1264/143 +f 682/1265/143 683/1997/143 659/1266/143 +f 683/1268/143 684/1998/143 660/1269/143 +f 660/1271/143 684/1998/143 685/1272/143 +f 661/1274/143 685/1272/143 686/1275/143 +f 662/1277/143 686/1275/143 687/1278/143 +f 708/1281/144 715/1999/144 716/1282/144 +f 716/1282/144 713/1283/144 705/1280/144 +f 713/1283/144 714/2000/144 705/1280/144 +f 713/1283/145 716/1282/145 711/1284/145 +f 715/1286/146 708/2001/146 707/1287/146 +f 710/1285/147 709/1290/147 714/1289/147 +f 716/1282/148 715/1286/148 712/1288/148 +f 709/1290/149 706/2002/149 705/1291/149 +f 755/1292/143 756/1306/143 768/1293/143 +f 753/1295/143 765/2003/143 764/1296/143 +f 760/1298/143 772/2004/143 771/1299/143 +f 750/1301/143 762/2005/143 761/1302/143 +f 757/1304/143 769/2006/143 768/1305/143 +f 754/1307/143 766/2007/143 765/1308/143 +f 760/1298/143 749/1303/143 761/1309/143 +f 751/1311/143 763/2008/143 762/1312/143 +f 757/1304/143 758/1318/143 770/1313/143 +f 755/1315/143 767/2009/143 766/1316/143 +f 752/1297/143 764/2010/143 763/1317/143 +f 758/1318/143 759/1300/143 771/1319/143 +f 773/1323/143 774/2011/143 777/1321/143 +f 774/2011/143 775/2012/143 777/1321/143 +f 775/2012/143 776/2013/143 777/1321/143 +f 777/1321/143 778/2014/143 779/2015/143 +f 779/2015/143 780/2016/143 781/1322/143 +f 781/1322/143 782/2017/143 783/2018/143 +f 783/2018/143 784/2019/143 773/1323/143 +f 777/1321/143 779/2015/143 781/1322/143 +f 781/1322/143 783/2018/143 773/1323/143 +f 794/1324/144 795/2020/144 699/1325/144 +f 699/1325/144 795/2021/144 796/1327/144 +f 700/1328/144 796/2022/144 785/1329/144 +f 785/1331/144 786/2023/144 690/1332/144 +f 786/1333/144 787/2024/144 691/1334/144 +f 691/1334/144 787/2025/144 788/1335/144 +f 788/1337/144 789/2026/144 693/1338/144 +f 789/1339/144 790/2027/144 694/1340/144 +f 694/1340/144 790/2028/144 791/1341/144 +f 695/1343/144 791/2029/144 792/1344/144 +f 792/1346/144 793/2030/144 697/1347/144 +f 793/1348/144 794/2031/144 698/1326/144 +f 819/1349/143 820/1352/143 808/1350/143 +f 820/1352/143 809/2032/143 797/1353/143 +f 797/1355/143 809/2032/143 810/1356/143 +f 810/1356/143 811/1360/143 799/1358/143 +f 811/1360/143 812/2033/143 800/1361/143 +f 800/1363/143 812/2033/143 813/1364/143 +f 813/1364/143 814/1368/143 802/1366/143 +f 814/1368/143 815/2034/143 803/1369/143 +f 815/1371/143 816/2035/143 804/1372/143 +f 804/1374/143 816/2035/143 817/1375/143 +f 805/1377/143 817/1375/143 818/1378/143 +f 806/1380/143 818/1378/143 819/1349/143 +f 843/1382/143 844/1385/143 880/1383/143 +f 844/1385/143 833/1390/143 869/1386/143 +f 834/1388/143 870/2036/143 869/1389/143 +f 834/1388/143 835/1393/143 871/1391/143 +f 835/1393/143 836/1398/143 872/1394/143 +f 837/1396/143 873/2037/143 872/1397/143 +f 837/1396/143 838/1401/143 874/1399/143 +f 838/1401/143 839/2038/143 875/1402/143 +f 839/1404/143 840/1409/143 876/1405/143 +f 841/1407/143 877/2039/143 876/1408/143 +f 842/1410/143 878/2040/143 877/1411/143 +f 843/1382/143 879/2041/143 878/1412/143 +f 831/1413/144 867/2042/144 868/1414/144 +f 832/1415/144 868/2043/144 857/1416/144 +f 857/1418/144 858/2044/144 822/1419/144 +f 822/1419/144 858/2045/144 859/1420/144 +f 823/1421/144 859/2046/144 860/1422/144 +f 860/1424/144 861/2047/144 825/1425/144 +f 861/1426/144 862/2048/144 826/1427/144 +f 826/1427/144 862/2049/144 863/1428/144 +f 827/1430/144 863/2050/144 864/1431/144 +f 864/1433/144 865/2051/144 829/1434/144 +f 865/1435/144 866/2052/144 830/1436/144 +f 866/1437/144 867/2053/144 831/1413/144 +f 895/1440/144 894/2054/144 903/2055/144 +f 894/2054/144 893/2056/144 903/2055/144 +f 893/2056/144 904/2057/144 903/2055/144 +f 903/2055/144 902/2058/144 901/1438/144 +f 901/1438/144 900/2059/144 899/1439/144 +f 899/1439/144 898/2060/144 895/1440/144 +f 898/2060/144 897/2061/144 895/1440/144 +f 897/2061/144 896/2062/144 895/1440/144 +f 903/2055/144 901/1438/144 895/1440/144 +f 890/1441/144 891/2063/144 855/1442/144 +f 855/1442/144 891/2064/144 892/1444/144 +f 856/1445/144 892/2065/144 881/1446/144 +f 881/1448/144 882/2066/144 846/1449/144 +f 846/1449/144 882/2067/144 883/1450/144 +f 847/1451/144 883/2068/144 884/1452/144 +f 884/1454/144 885/2069/144 849/1455/144 +f 885/1456/144 886/2070/144 850/1457/144 +f 850/1457/144 886/2071/144 887/1458/144 +f 851/1460/144 887/2072/144 888/1461/144 +f 888/1463/144 889/2073/144 853/1464/144 +f 889/1465/144 890/2074/144 854/1443/144 +f 1037/1466/145 1040/1470/145 1039/1467/145 +f 1034/1469/146 1039/1467/146 1040/1470/146 +f 1035/1472/149 1037/1466/149 1038/1468/149 +f 1036/1474/144 1040/1470/144 1037/1466/144 +f 1033/1476/143 1038/1468/143 1039/1467/143 +f 1042/1478/143 1047/1543/143 1048/1479/143 +f 1043/1481/144 1046/2075/144 1045/1482/144 +f 1087/1484/143 1082/1488/143 1081/1485/143 +f 1085/1487/150 1084/1495/150 1082/1488/150 +f 1088/1489/151 1081/1492/151 1083/1490/151 +f 1083/1490/152 1091/1529/152 1090/1494/152 +f 1055/1496/146 1049/1515/146 1052/1497/146 +f 1050/1499/149 1077/1511/149 1079/1500/149 +f 1054/1502/149 1051/1505/149 1050/1499/149 +f 1053/1504/144 1052/1497/144 1051/1505/144 +f 1073/1507/146 1078/1514/146 1080/1508/146 +f 1076/1510/149 1079/2076/149 1077/1511/149 +f 1055/1513/146 1080/2077/146 1078/1514/146 +f 1082/1519/150 1090/1494/150 1096/1520/150 +f 1081/1522/153 1082/1519/153 1045/1521/153 +f 1105/1524/154 1106/1557/154 1089/1525/154 +f 1089/1525/153 1094/1542/153 1093/1527/153 +f 1093/1527/150 1104/1531/150 1107/1528/150 +f 1096/1520/155 1090/1494/155 1091/1529/155 +f 1104/1531/155 1103/2078/155 1108/1532/155 +f 1091/1529/151 1081/2079/151 1046/1533/151 +f 1103/1534/151 1094/1542/151 1089/1525/151 +f 1102/1541/156 1093/1527/156 1094/1542/156 +f 1047/1543/157 1096/1520/157 1095/1530/157 +f 1097/1546/150 1104/1544/150 1102/1541/150 +f 1100/1548/151 1101/1537/151 1103/1536/151 +f 1098/1550/143 1103/2080/143 1104/1544/143 +f 1110/1551/144 1107/1539/144 1108/1552/144 +f 1111/1554/143 1106/1557/143 1105/1524/143 +f 1109/1556/151 1108/1558/151 1106/1557/151 +f 1112/1555/150 1105/1524/150 1107/1539/150 +f 1099/1547/144 1102/1541/144 1101/1537/144 +f 1121/1562/147 1122/2081/147 1125/1560/147 +f 1122/2081/147 1123/2082/147 1125/1560/147 +f 1123/2082/147 1124/2083/147 1125/1560/147 +f 1125/1560/147 1126/2084/147 1127/1561/147 +f 1127/1561/147 1128/2085/147 1121/1562/147 +f 1137/1565/148 1138/2086/148 1139/2087/148 +f 1139/2087/148 1140/2088/148 1137/1565/148 +f 1140/2088/148 1141/1563/148 1137/1565/148 +f 1141/1563/148 1142/2089/148 1143/1564/148 +f 1143/1564/148 1144/2090/148 1137/1565/148 +f 1153/1568/158 1154/2091/158 1155/2092/158 +f 1155/2092/158 1156/2093/158 1153/1568/158 +f 1156/2093/158 1157/1566/158 1153/1568/158 +f 1157/1566/158 1158/2094/158 1159/1567/158 +f 1159/1567/158 1160/2095/158 1153/1568/158 +f 1168/1571/159 1167/2096/159 1166/2097/159 +f 1166/2097/159 1165/2098/159 1168/1571/159 +f 1165/2098/159 1164/1569/159 1168/1571/159 +f 1164/1569/159 1163/2099/159 1162/1570/159 +f 1162/1570/159 1161/2100/159 1168/1571/159 +f 1184/1574/160 1183/2101/160 1182/2102/160 +f 1182/2102/160 1181/2103/160 1184/1574/160 +f 1181/2103/160 1180/1572/160 1184/1574/160 +f 1180/1572/160 1179/2104/160 1178/1573/160 +f 1178/1573/160 1177/2105/160 1184/1574/160 +f 1201/1577/149 1202/2106/149 1205/1575/149 +f 1202/2106/149 1203/2107/149 1205/1575/149 +f 1203/2107/149 1204/2108/149 1205/1575/149 +f 1205/1575/149 1206/2109/149 1207/1576/149 +f 1207/1576/149 1208/2110/149 1201/1577/149 +f 1216/1580/146 1215/2111/146 1214/2112/146 +f 1214/2112/146 1213/2113/146 1216/1580/146 +f 1213/2113/146 1212/1578/146 1216/1580/146 +f 1212/1578/146 1211/2114/146 1210/1579/146 +f 1210/1579/146 1209/2115/146 1216/1580/146 +f 1232/1583/145 1231/2116/145 1230/2117/145 +f 1230/2117/145 1229/2118/145 1232/1583/145 +f 1229/2118/145 1228/1581/145 1232/1583/145 +f 1228/1581/145 1227/2119/145 1226/1582/145 +f 1226/1582/145 1225/2120/145 1232/1583/145 +f 1273/1584/161 1249/2121/161 1256/1585/161 +f 1280/1587/161 1256/2122/161 1255/1588/161 +f 1278/1590/161 1254/2123/161 1253/1591/161 +f 1275/1593/161 1276/1600/161 1252/1594/161 +f 1274/1596/161 1250/2124/161 1249/1597/161 +f 1278/1590/161 1279/1589/161 1255/1598/161 +f 1276/1600/161 1277/1592/161 1253/1601/161 +f 1274/1596/161 1275/1593/161 1251/1603/161 +f 1287/1605/161 1286/1617/161 1310/1606/161 +f 1285/1608/161 1284/1619/161 1308/1609/161 +f 1283/1611/161 1282/1622/161 1306/1612/161 +f 1287/1605/161 1311/2125/161 1312/1614/161 +f 1285/1608/161 1309/2126/161 1310/1616/161 +f 1283/1611/161 1307/2127/161 1308/1618/161 +f 1281/1620/161 1305/2128/161 1306/1621/161 +f 1281/1623/161 1288/1615/161 1312/1624/161 +f 1326/1626/161 1350/2129/161 1351/1627/161 +f 1325/1629/161 1324/1640/161 1348/1630/161 +f 1323/1632/161 1322/1643/161 1346/1633/161 +f 1327/1628/161 1351/2130/161 1352/1635/161 +f 1326/1626/161 1325/1629/161 1349/1637/161 +f 1323/1632/161 1347/2131/161 1348/1639/161 +f 1321/1641/161 1345/2132/161 1346/1642/161 +f 1328/1636/161 1352/2133/161 1345/1644/161 +f 1400/1646/161 1393/1660/161 1369/1647/161 +f 1399/1649/161 1400/2134/161 1376/1650/161 +f 1398/1652/161 1374/2135/161 1373/1653/161 +f 1396/1655/161 1372/2136/161 1371/1656/161 +f 1394/1658/161 1370/2137/161 1369/1659/161 +f 1398/1652/161 1399/1649/161 1375/1661/161 +f 1396/1655/161 1397/1654/161 1373/1663/161 +f 1395/1657/161 1371/2138/161 1370/1665/161 +f 1440/1666/161 1433/1680/161 1409/1667/161 +f 1440/1669/161 1416/2139/161 1415/1670/161 +f 1438/1672/161 1414/2140/161 1413/1673/161 +f 1436/1675/161 1412/2141/161 1411/1676/161 +f 1434/1678/161 1410/2142/161 1409/1679/161 +f 1438/1672/161 1439/1671/161 1415/1681/161 +f 1436/1675/161 1437/1674/161 1413/1683/161 +f 1434/1678/161 1435/1677/161 1411/1685/161 +f 1447/1687/149 1457/2143/149 1462/1688/149 +f 1459/1690/144 1467/2144/144 1468/1691/144 +f 1443/1693/144 1447/2145/144 1448/1694/144 +f 1444/1695/146 1448/1694/146 1446/1696/146 +f 1441/1698/149 1445/1713/149 1447/1699/149 +f 1450/1701/143 1454/1705/143 1453/1702/143 +f 1452/1704/146 1456/1715/146 1454/1705/146 +f 1449/1706/149 1453/1720/149 1455/1707/149 +f 1467/1709/149 1477/2146/149 1479/1710/149 +f 1447/1717/145 1453/2147/145 1454/1718/145 +f 1460/1722/146 1448/1719/146 1454/1718/146 +f 1458/1692/146 1468/1691/146 1466/1724/146 +f 1464/1726/149 1465/1738/149 1467/1727/149 +f 1470/1729/143 1474/1733/143 1473/1730/143 +f 1472/1732/146 1476/1740/146 1474/1733/146 +f 1469/1734/149 1473/1745/149 1475/1735/149 +f 1467/1742/145 1473/2148/145 1474/1743/145 +f 1478/1747/146 1468/1744/146 1474/1743/146 +f 1484/1749/144 1483/1757/144 1486/1750/144 +f 1481/1752/162 1482/1760/162 1487/1753/162 +f 1487/1755/146 1482/1760/146 1484/1749/146 +f 1483/1757/149 1481/1752/149 1488/1758/149 +f 1483/1757/145 1484/1749/145 1482/1760/145 +f 671/1762/146 666/1778/146 1490/2149/146 +f 666/1778/146 1495/1774/146 1490/2149/146 +f 1493/2150/146 668/2151/146 1492/1763/146 +f 668/2151/146 672/1761/146 1492/1763/146 +f 671/1762/146 1490/2149/146 1492/1763/146 +f 669/2152/149 667/1776/149 1491/1764/149 +f 667/1776/149 1494/1772/149 1491/1764/149 +f 1496/2153/149 665/2154/149 1489/1765/149 +f 665/2154/149 670/1766/149 1489/1765/149 +f 669/2152/149 1491/1764/149 670/1766/149 +f 1490/1767/145 1489/2155/145 1491/1768/145 +f 1493/1770/143 1492/2156/143 1491/1771/143 +f 1496/1773/144 1489/2155/144 1490/1767/144 +f 668/1775/145 1493/1770/145 1494/1772/145 +f 665/1777/145 1496/1773/145 1495/1774/145 +f 1500/1779/149 1499/2157/149 1504/1780/149 +f 1498/1782/146 1497/1787/146 1501/1783/146 +f 1499/1785/143 1498/1782/143 1503/1784/143 +f 1497/1787/144 1500/1779/144 1502/1781/144 +f 1534/1790/144 1535/2158/144 1536/2159/144 +f 1536/2159/144 1529/2160/144 1534/1790/144 +f 1529/2160/144 1530/2161/144 1534/1790/144 +f 1530/2161/144 1531/2162/144 1534/1790/144 +f 1531/2162/144 1532/1788/144 1534/1790/144 +f 1512/1791/143 1511/2163/143 1510/1792/143 +f 1510/1792/143 1509/2164/143 1508/1793/143 +f 1508/1793/143 1507/2165/143 1506/2166/143 +f 1506/2166/143 1505/2167/143 1508/1793/143 +f 1505/2167/143 1512/1791/143 1508/1793/143 +f 1545/1794/143 1546/2168/143 1547/1795/143 +f 1547/1795/143 1548/2169/143 1549/1796/143 +f 1549/1796/143 1550/2170/143 1551/2171/143 +f 1551/2171/143 1552/2172/143 1549/1796/143 +f 1552/2172/143 1545/1794/143 1549/1796/143 +f 1539/1799/144 1538/2173/144 1537/2174/144 +f 1537/2174/144 1544/2175/144 1539/1799/144 +f 1544/2175/144 1543/2176/144 1539/1799/144 +f 1543/2176/144 1542/2177/144 1539/1799/144 +f 1542/2177/144 1541/1797/144 1539/1799/144 +f 1560/1800/144 1557/1807/144 1555/1801/144 +f 1558/1803/143 1559/1806/143 1554/1804/143 +f 1559/1806/146 1560/1800/146 1556/1802/146 +f 1557/1807/149 1558/2178/149 1553/1808/149 +f 1044/1483/150 1045/1482/150 1047/1543/150 +f 1041/1480/151 1048/1479/151 1046/1516/151 +f 1086/1491/144 1083/1490/144 1084/1495/144 +f 1581/1811/149 1583/2179/149 1577/1812/149 +f 1583/1814/163 1584/1819/163 1578/1815/163 +f 1582/1817/164 1581/1811/164 1579/1813/164 +f 1584/1819/146 1582/1817/146 1580/1818/146 +f 1594/1820/143 1598/1841/143 1600/1821/143 +f 1591/1823/146 1592/2180/146 1589/1824/146 +f 1587/1826/144 1589/1824/144 1592/1827/144 +f 1586/1829/143 1591/1832/143 1590/1830/143 +f 1588/1828/145 1592/1827/145 1591/1832/145 +f 1585/1833/158 1590/1825/158 1589/1824/158 +f 1596/1834/143 1600/1821/143 1599/1835/143 +f 1595/1837/143 1599/1835/143 1597/1838/143 +f 1593/1840/143 1597/1859/143 1598/1841/143 +f 1608/1843/144 1607/1852/144 1603/1844/144 +f 1605/1846/144 1608/1843/144 1604/1847/144 +f 1606/1849/144 1605/1846/144 1601/1850/144 +f 1607/1852/144 1606/2181/144 1602/1853/144 +f 1596/1855/149 1604/1845/149 1603/1844/149 +f 1593/1857/146 1602/1851/146 1601/1850/146 +f 1600/1821/158 1608/1843/158 1605/1846/158 +f 1597/1859/145 1606/2181/145 1607/1852/145 +f 1595/1860/145 1601/1848/145 1604/1847/145 +f 1594/1862/158 1603/1854/158 1602/1853/158 +f 1598/1841/146 1607/1852/146 1608/1843/146 +f 1599/1835/149 1605/1846/149 1606/1849/149 +f 1612/1864/144 1616/1880/144 1615/1865/144 +f 1609/1867/143 1613/1882/143 1614/1868/143 +f 1610/1870/145 1614/1876/145 1616/1871/145 +f 1611/1873/158 1615/1878/158 1613/1874/158 +f 1614/1876/146 1618/1884/146 1620/1877/146 +f 1615/1878/146 1619/1881/146 1617/1879/146 +f 1616/1880/146 1620/1877/146 1619/1881/146 +f 1613/1882/146 1617/1879/146 1618/1883/146 +f 1618/1884/145 1622/2182/145 1624/1885/145 +f 1619/1881/158 1623/1887/158 1621/1886/158 +f 1620/1877/144 1624/1885/144 1623/1887/144 +f 1617/1879/143 1621/1886/143 1622/1888/143 +f 1631/1889/165 1630/1901/165 1654/1890/165 +f 1629/1892/165 1628/1903/165 1652/1893/165 +f 1627/1895/165 1626/1906/165 1650/1896/165 +f 1631/1889/165 1655/2183/165 1656/1898/165 +f 1629/1892/165 1653/2184/165 1654/1900/165 +f 1627/1895/165 1651/2185/165 1652/1902/165 +f 1625/1904/165 1649/2186/165 1650/1905/165 +f 1625/1907/165 1632/1899/165 1656/1908/165 +f 1671/1910/165 1670/1922/165 1694/1911/165 +f 1669/1913/165 1668/1924/165 1692/1914/165 +f 1667/1916/165 1666/1927/165 1690/1917/165 +f 1671/1910/165 1695/2187/165 1696/1919/165 +f 1669/1913/165 1693/2188/165 1694/1921/165 +f 1667/1916/165 1691/2189/165 1692/1923/165 +f 1665/1925/165 1689/2190/165 1690/1926/165 +f 1665/1928/165 1672/1920/165 1696/1929/165 +f 1744/1931/165 1737/1943/165 1713/1932/165 +f 1744/1934/165 1720/2191/165 1719/1935/165 +f 1742/1937/165 1718/2192/165 1717/1938/165 +f 1740/1940/165 1716/2193/165 1715/1941/165 +f 1737/1943/165 1738/1951/165 1714/1944/165 +f 1742/1937/165 1743/1936/165 1719/1946/165 +f 1740/1940/165 1741/1939/165 1717/1948/165 +f 1739/1942/165 1715/2194/165 1714/1950/165 +f 1784/1952/165 1777/1966/165 1753/1953/165 +f 1784/1955/165 1760/2195/165 1759/1956/165 +f 1782/1958/165 1758/2196/165 1757/1959/165 +f 1780/1961/165 1756/2197/165 1755/1962/165 +f 1778/1964/165 1754/2198/165 1753/1965/165 +f 1782/1958/165 1783/1957/165 1759/1967/165 +f 1780/1961/165 1781/1960/165 1757/1969/165 +f 1778/1964/165 1779/1963/165 1755/1971/165 +f 1790/1973/165 1814/2199/165 1815/1974/165 +f 1789/1976/165 1788/1987/165 1812/1977/165 +f 1787/1979/165 1786/1990/165 1810/1980/165 +f 1792/1982/165 1791/1975/165 1815/1983/165 +f 1789/1976/165 1813/2200/165 1814/1985/165 +f 1787/1979/165 1811/2201/165 1812/1986/165 +f 1785/1988/165 1809/2202/165 1810/1989/165 +f 1785/1991/165 1792/1982/165 1816/1992/165 +s 1 +f 658/2203/161 647/2204/145 646/2205/161 +f 655/2206/166 644/2207/149 643/2208/166 +f 662/2209/146 651/2210/167 650/2211/146 +f 659/2212/145 648/2213/165 647/2214/145 +f 656/2215/149 645/2216/168 644/2207/149 +f 663/2217/167 652/2218/169 651/2210/167 +f 653/2219/158 642/2220/170 641/2221/158 +f 660/2222/165 649/2223/171 648/2213/165 +f 657/2224/168 646/2205/161 645/2216/168 +f 664/2225/169 641/2221/158 652/2218/169 +f 654/2226/170 643/2208/166 642/2220/170 +f 661/2227/171 650/2211/146 649/2223/171 +f 675/1994/172 673/1995/173 674/1238/173 +f 672/1761/174 675/1994/172 671/1762/174 +f 670/1766/175 673/1995/173 669/2152/175 +f 679/1996/166 692/1336/149 680/1259/149 +f 686/1275/146 699/1325/167 687/1278/167 +f 683/1268/145 696/1345/165 684/1998/165 +f 680/1259/149 693/1338/168 681/1263/168 +f 687/1278/167 700/1328/169 688/1248/169 +f 677/1252/158 690/1332/170 678/1255/170 +f 684/1998/165 697/1347/171 685/1272/171 +f 681/1263/168 694/1340/161 682/1265/161 +f 688/1248/169 689/1330/158 677/1252/158 +f 678/1255/170 691/1334/166 679/1996/166 +f 685/1272/171 698/1326/146 686/1275/146 +f 682/1265/161 695/1342/145 683/1997/145 +f 724/2228/169 735/2229/167 723/2230/167 +f 720/2231/165 731/2232/145 719/2233/145 +f 722/2234/146 733/2235/171 721/2236/171 +f 704/2237/158 736/2238/169 724/2239/169 +f 701/2240/149 726/2241/166 702/2242/166 +f 721/2243/171 732/2244/165 720/2245/165 +f 702/2246/166 727/2247/170 703/2248/170 +f 703/2249/170 728/2250/158 704/2251/158 +f 719/2252/145 730/2253/161 718/2254/161 +f 723/2255/167 734/2256/146 722/2257/146 +f 718/2258/161 729/2259/168 717/2260/168 +f 717/2261/168 725/2262/149 701/2263/149 +f 735/2229/176 748/2264/177 747/2265/176 +f 728/2266/178 748/2264/177 736/2238/177 +f 727/2267/179 737/2268/178 728/2250/178 +f 726/2269/180 738/2270/179 727/2247/179 +f 725/2271/181 739/2272/180 726/2241/180 +f 729/2273/182 740/2274/181 725/2262/181 +f 729/2259/182 742/2275/183 741/2276/182 +f 731/2277/184 742/2275/183 730/2253/183 +f 732/2278/185 743/2279/184 731/2232/184 +f 732/2244/185 745/2280/186 744/2281/185 +f 734/2282/187 745/2280/186 733/2235/186 +f 735/2283/176 746/2284/187 734/2256/187 +f 741/2276/168 752/1297/149 740/2274/149 +f 748/2264/169 759/1300/167 747/2265/167 +f 738/2270/170 749/1303/158 737/2268/158 +f 745/2280/171 756/1306/165 744/2281/165 +f 742/2275/161 753/1295/168 741/2276/168 +f 737/2268/158 760/1298/169 748/2264/169 +f 739/2272/166 750/1301/170 738/2270/170 +f 746/2284/146 757/1304/171 745/2280/171 +f 743/2285/145 754/1307/161 742/2275/161 +f 740/2274/149 751/1311/166 739/2272/166 +f 747/2265/167 758/1318/146 746/2284/146 +f 744/2281/165 755/1292/145 743/2279/145 +f 771/1299/188 784/2286/189 783/2287/188 +f 761/1309/190 784/2288/189 772/1310/189 +f 762/2005/191 773/2289/190 761/1302/190 +f 763/2008/192 774/2290/191 762/1312/191 +f 764/2010/193 775/2291/192 763/1317/192 +f 765/2003/194 776/2292/193 764/1296/193 +f 765/1308/194 778/2293/195 777/2294/194 +f 767/2009/196 778/2295/195 766/1316/195 +f 768/1293/197 779/2296/196 767/1294/196 +f 769/2006/198 780/2297/197 768/1305/197 +f 770/1313/199 781/2298/198 769/1314/198 +f 770/1320/199 783/2299/188 782/2300/199 +f 787/2301/166 800/2302/149 788/2303/149 +f 794/2304/146 807/2305/167 795/2306/167 +f 791/2307/145 804/2308/165 792/2309/165 +f 788/2303/149 801/2310/168 789/2311/168 +f 795/2306/167 808/2312/169 796/2313/169 +f 785/2314/158 798/2315/170 786/2316/170 +f 792/2309/165 805/2317/171 793/2318/171 +f 789/2311/168 802/2319/161 790/2320/161 +f 796/2313/169 797/2321/158 785/2314/158 +f 786/2316/170 799/2322/166 787/2301/166 +f 793/2318/171 806/2323/146 794/2304/146 +f 790/2320/161 803/2324/145 791/2325/145 +f 814/1368/161 827/1429/145 815/2034/145 +f 811/1360/166 824/1423/149 812/2033/149 +f 818/1378/146 831/1413/167 819/1349/167 +f 815/1371/145 828/1432/165 816/2035/165 +f 812/2033/149 825/1425/168 813/1364/168 +f 819/1349/167 832/1415/169 820/1352/169 +f 809/2032/158 822/1419/170 810/1356/170 +f 816/2035/165 829/1434/171 817/1375/171 +f 813/1364/168 826/1427/161 814/1368/161 +f 820/1352/169 821/1417/158 809/2032/158 +f 810/1356/170 823/1421/166 811/1360/166 +f 817/1375/171 830/1436/146 818/1378/146 +f 838/1401/161 851/1459/145 839/2038/145 +f 835/1393/166 848/1453/149 836/1398/149 +f 842/1410/146 855/1442/167 843/1382/167 +f 839/1404/145 852/1462/165 840/1409/165 +f 836/1398/149 849/1455/168 837/1396/168 +f 843/1382/167 856/1445/169 844/1385/169 +f 833/1390/158 846/1449/170 834/1388/170 +f 840/1409/165 853/1464/171 841/1407/171 +f 837/1396/168 850/1457/161 838/1401/161 +f 844/1385/169 845/1447/158 833/1390/158 +f 834/1388/170 847/1451/166 835/1393/166 +f 841/1407/171 854/1443/146 842/1410/146 +f 875/2326/145 864/2327/165 863/2328/145 +f 872/2329/149 861/2330/168 860/2331/149 +f 879/2332/167 868/2333/169 867/2334/167 +f 869/2335/158 858/2336/170 857/2337/158 +f 876/2338/165 865/2339/171 864/2327/165 +f 873/2340/168 862/2341/161 861/2330/168 +f 880/2342/169 857/2337/158 868/2333/169 +f 870/2343/170 859/2344/166 858/2336/170 +f 877/2345/171 866/2346/146 865/2339/171 +f 874/2347/161 863/2348/145 862/2341/161 +f 871/2349/166 860/2331/149 859/2344/166 +f 878/2350/146 867/2334/167 866/2346/146 +f 899/2351/145 888/2352/165 887/2353/145 +f 896/2354/149 885/2355/168 884/2356/149 +f 903/2357/167 892/2358/169 891/2359/167 +f 893/2360/158 882/2361/170 881/2362/158 +f 900/2363/165 889/2364/171 888/2352/165 +f 897/2365/168 886/2366/161 885/2355/168 +f 904/2367/169 881/2362/158 892/2358/169 +f 894/2368/170 883/2369/166 882/2361/170 +f 901/2370/171 890/2371/146 889/2364/171 +f 898/2372/161 887/2373/145 886/2366/161 +f 895/2374/166 884/2356/149 883/2369/166 +f 902/2375/146 891/2359/167 890/2371/146 +f 962/2376/146 963/2377/148 961/2378/146 +f 940/2379/146 941/2380/148 939/2381/146 +f 908/2382/158 909/2383/160 907/2384/158 +f 948/2385/149 949/2386/159 947/2387/149 +f 936/2388/148 906/2389/145 935/2390/148 +f 910/2391/160 911/2392/146 909/2383/160 +f 964/2393/148 965/2394/145 963/2377/148 +f 934/2395/146 935/2390/148 933/2396/146 +f 912/2397/146 913/2398/148 911/2392/146 +f 944/2399/145 945/2400/147 943/2401/145 +f 932/2402/160 933/2403/146 931/2404/160 +f 914/2405/148 915/2406/145 913/2398/148 +f 966/2407/145 967/2408/147 965/2409/145 +f 929/2410/158 932/2402/160 931/2404/160 +f 916/2411/145 917/2412/147 915/2406/145 +f 942/2413/148 943/2401/145 941/2380/148 +f 928/2414/159 929/2410/158 927/2415/159 +f 918/2416/147 919/2417/149 917/2412/147 +f 924/2418/147 925/2419/149 923/2420/147 +f 926/2421/149 927/2415/159 925/2419/149 +f 920/2422/149 921/2423/159 919/2424/149 +f 946/2425/147 947/2387/149 945/2400/147 +f 968/2426/147 938/2427/149 967/2408/147 +f 921/2423/159 908/2382/158 907/2384/158 +f 905/2428/145 923/2420/147 906/2389/145 +f 960/2429/160 961/2378/146 959/2430/160 +f 950/2431/159 951/2432/158 949/2386/159 +f 956/2433/159 957/2434/158 955/2435/159 +f 958/2436/158 959/2430/160 957/2434/158 +f 952/2437/158 953/2438/160 951/2439/158 +f 954/2440/160 939/2381/146 953/2438/160 +f 937/2441/149 955/2435/159 938/2427/149 +f 1026/2442/148 1027/2443/145 1025/2444/148 +f 1004/2445/148 1005/2446/145 1003/2447/148 +f 972/2448/160 973/2449/146 971/2450/160 +f 1012/2451/159 1013/2452/158 1011/2453/159 +f 1000/2454/145 970/2455/147 999/2456/145 +f 974/2457/146 975/2458/148 973/2449/146 +f 1027/2443/145 1030/2459/147 1029/2460/147 +f 998/2461/148 999/2456/145 997/2462/148 +f 976/2463/148 977/2464/145 975/2458/148 +f 1008/2465/147 1009/2466/149 1007/2467/147 +f 996/2468/146 997/2469/148 995/2470/146 +f 978/2471/145 979/2472/147 977/2464/145 +f 1030/2473/147 1031/2474/149 1029/2475/147 +f 993/2476/160 996/2468/146 995/2470/146 +f 980/2477/147 981/2478/149 979/2472/147 +f 1006/2479/145 1007/2467/147 1005/2446/145 +f 992/2480/158 993/2476/160 991/2481/158 +f 982/2482/149 983/2483/159 981/2478/149 +f 988/2484/149 989/2485/159 987/2486/149 +f 990/2487/159 991/2481/158 989/2485/159 +f 984/2488/159 985/2489/158 983/2490/159 +f 1010/2491/149 1011/2453/159 1009/2466/149 +f 1032/2492/149 1002/2493/159 1031/2474/149 +f 986/2494/158 971/2450/160 985/2489/158 +f 969/2495/147 987/2486/149 970/2455/147 +f 1024/2496/146 1025/2444/148 1023/2497/146 +f 1014/2498/158 1015/2499/160 1013/2452/158 +f 1020/2500/158 1021/2501/160 1019/2502/158 +f 1022/2503/160 1023/2497/146 1021/2501/160 +f 1016/2504/160 1017/2505/146 1015/2506/160 +f 1018/2507/146 1003/2447/148 1017/2505/146 +f 1001/2508/159 1019/2502/158 1002/2493/159 +f 1051/1505/145 1049/1515/200 1050/1499/200 +f 1055/1496/201 1054/2509/158 1056/2510/201 +f 1060/2511/202 1072/2512/203 1063/2513/203 +f 1064/2514/204 1066/2515/205 1061/2516/205 +f 1058/2517/206 1070/2518/207 1059/2519/207 +f 1072/2512/203 1064/2514/204 1063/2513/203 +f 1062/2520/208 1066/2515/205 1065/2521/208 +f 1068/2522/209 1058/2517/206 1057/2523/209 +f 1060/2511/202 1070/2518/207 1069/2524/202 +f 1062/2520/208 1068/2525/209 1057/2526/209 +f 1078/1514/210 1050/1499/200 1049/1515/200 +f 1074/1512/143 1078/1514/210 1073/1507/143 +f 1075/1509/144 1079/2527/211 1076/2528/144 +f 1056/2529/201 1080/2077/211 1055/1513/201 +f 1116/2530/212 1123/2531/148 1115/2532/148 +f 1119/2533/159 1128/2534/213 1127/2535/159 +f 1115/2532/148 1122/2536/214 1114/2537/214 +f 1114/2537/214 1121/2538/144 1113/2539/144 +f 1117/2540/143 1124/2541/212 1116/2530/212 +f 1118/2542/215 1125/2543/143 1117/2540/143 +f 1119/2533/159 1126/2544/215 1118/2542/215 +f 1113/2545/144 1128/2534/213 1120/2546/213 +f 1136/2547/216 1137/2548/144 1144/2549/216 +f 1134/2550/217 1141/2551/143 1133/2552/143 +f 1131/2553/160 1138/2554/218 1130/2555/218 +f 1132/2556/219 1141/2551/143 1140/2557/219 +f 1130/2555/218 1137/2558/144 1129/2559/144 +f 1134/2550/217 1143/2560/147 1142/2561/217 +f 1136/2547/216 1143/2560/147 1135/2562/147 +f 1132/2556/219 1139/2563/160 1131/2553/160 +f 1145/2564/144 1160/2565/220 1152/2566/220 +f 1151/2567/146 1158/2568/221 1150/2569/221 +f 1149/2570/143 1156/2571/222 1148/2572/222 +f 1147/2573/149 1154/2574/223 1146/2575/223 +f 1152/2566/220 1159/2576/146 1151/2567/146 +f 1150/2569/221 1157/2577/143 1149/2570/143 +f 1148/2572/222 1155/2578/149 1147/2573/149 +f 1146/2575/223 1153/2579/144 1145/2580/144 +f 1172/2581/143 1163/2582/219 1164/2583/143 +f 1172/2581/143 1165/2584/217 1173/2585/217 +f 1170/2586/160 1163/2582/219 1171/2587/219 +f 1169/2588/218 1162/2589/160 1170/2586/160 +f 1174/2590/147 1167/2591/216 1175/2592/216 +f 1175/2592/216 1168/2593/144 1176/2594/144 +f 1174/2590/147 1165/2584/217 1166/2595/147 +f 1176/2596/144 1161/2597/218 1169/2588/218 +f 1192/2598/144 1177/2599/214 1185/2600/214 +f 1190/2601/159 1181/2602/215 1182/2603/159 +f 1191/2604/213 1184/2605/144 1192/2606/144 +f 1186/2607/148 1177/2599/214 1178/2608/148 +f 1189/2609/215 1180/2610/143 1181/2602/215 +f 1187/2611/212 1180/2610/143 1188/2612/143 +f 1191/2604/213 1182/2603/159 1183/2613/213 +f 1186/2607/148 1179/2614/212 1187/2611/212 +f 1200/2615/224 1201/2616/144 1208/2617/224 +f 1198/2618/163 1205/2619/143 1197/2620/143 +f 1195/2621/145 1202/2622/164 1194/2623/164 +f 1197/2620/143 1204/2624/225 1196/2625/225 +f 1193/2626/144 1202/2622/164 1201/2627/144 +f 1199/2628/158 1206/2629/163 1198/2618/163 +f 1200/2615/224 1207/2630/158 1199/2628/158 +f 1196/2625/225 1203/2631/145 1195/2621/145 +f 1224/2632/144 1209/2633/164 1217/2634/164 +f 1221/2635/163 1214/2636/158 1222/2637/158 +f 1223/2638/224 1216/2639/144 1224/2640/144 +f 1217/2634/164 1210/2641/145 1218/2642/145 +f 1220/2643/143 1213/2644/163 1221/2635/163 +f 1219/2645/225 1212/2646/143 1220/2643/143 +f 1222/2637/158 1215/2647/224 1223/2638/224 +f 1218/2642/145 1211/2648/225 1219/2645/225 +f 1240/2649/144 1225/2650/223 1233/2651/223 +f 1237/2652/221 1230/2653/146 1238/2654/146 +f 1240/2655/144 1231/2656/220 1232/2657/144 +f 1233/2651/223 1226/2658/149 1234/2659/149 +f 1236/2660/143 1229/2661/221 1237/2652/221 +f 1235/2662/222 1228/2663/143 1236/2660/143 +f 1238/2654/146 1231/2656/220 1239/2664/220 +f 1234/2659/149 1227/2665/222 1235/2662/222 +f 1255/1588/226 1248/2666/144 1247/2667/226 +f 1254/2123/166 1245/2668/227 1253/1591/227 +f 1252/1594/143 1243/2669/228 1251/1595/228 +f 1250/2124/171 1241/2670/229 1249/1597/229 +f 1255/1598/226 1246/2671/166 1254/1599/166 +f 1253/1601/227 1244/2672/143 1252/1602/143 +f 1250/1604/171 1243/2673/228 1242/2674/171 +f 1249/2121/229 1248/2675/144 1256/1585/144 +f 1262/2676/230 1260/2677/231 1258/2678/232 +f 1271/2679/233 1262/2680/230 1263/2681/234 +f 1268/2682/235 1261/2683/236 1269/2684/237 +f 1266/2685/238 1259/2686/239 1267/2687/240 +f 1272/2688/241 1257/2689/242 1265/2690/243 +f 1272/2691/241 1263/2692/234 1264/2693/244 +f 1270/2694/245 1261/2695/236 1262/2696/230 +f 1268/2682/235 1259/2697/239 1260/2698/231 +f 1265/2690/243 1258/2699/232 1266/2685/238 +f 1273/1584/229 1272/2688/241 1265/2690/243 +f 1280/1587/144 1271/2679/233 1272/2691/241 +f 1277/1592/227 1270/2694/245 1278/1590/166 +f 1275/1593/228 1268/2682/235 1276/1600/143 +f 1273/1584/229 1266/2685/238 1274/1596/171 +f 1278/1590/166 1271/2679/233 1279/1589/226 +f 1276/1600/143 1269/2684/237 1277/1592/227 +f 1274/1596/171 1267/2687/240 1275/1593/228 +f 1286/1617/228 1295/2700/238 1294/2701/240 +f 1285/1608/143 1292/2702/237 1284/1619/227 +f 1283/1611/166 1290/2703/233 1282/1622/226 +f 1288/1615/229 1295/2700/238 1287/1605/171 +f 1286/1617/228 1293/2704/235 1285/1608/143 +f 1283/1611/166 1292/2702/237 1291/2705/245 +f 1281/1620/144 1290/2703/233 1289/2706/241 +f 1288/1615/229 1289/2707/241 1296/2708/243 +f 1296/2708/243 1303/2709/232 1295/2700/238 +f 1294/2701/240 1301/2710/231 1293/2704/235 +f 1291/2705/245 1300/2711/236 1299/2712/230 +f 1289/2706/241 1298/2713/234 1297/2714/244 +f 1289/2707/241 1304/2715/242 1296/2708/243 +f 1294/2701/240 1303/2716/232 1302/2717/239 +f 1292/2702/237 1301/2718/231 1300/2719/236 +f 1291/2705/245 1298/2720/234 1290/2703/233 +f 1299/2721/230 1301/2722/231 1303/2723/232 +f 1312/1624/229 1313/2724/144 1305/1625/144 +f 1311/1607/171 1318/2725/228 1319/2726/171 +f 1308/1609/227 1317/2727/143 1309/1610/143 +f 1306/1612/226 1315/2728/166 1307/1613/166 +f 1311/2125/171 1320/2729/229 1312/1614/229 +f 1309/2126/143 1318/2730/228 1310/1616/228 +f 1308/1618/227 1315/2731/166 1316/2732/227 +f 1306/1621/226 1313/2733/144 1314/2734/226 +f 1327/1628/171 1334/2735/240 1326/1626/228 +f 1325/1629/143 1332/2736/237 1324/1640/227 +f 1323/1632/166 1330/2737/233 1322/1643/226 +f 1328/1636/229 1335/2738/238 1327/1628/171 +f 1326/1626/228 1333/2739/235 1325/1629/143 +f 1323/1632/166 1332/2736/237 1331/2740/245 +f 1321/1641/144 1330/2737/233 1329/2741/241 +f 1321/1645/144 1336/2742/243 1328/1636/229 +f 1336/2742/243 1343/2743/232 1335/2738/238 +f 1333/2739/235 1342/2744/239 1341/2745/231 +f 1331/2740/245 1340/2746/236 1339/2747/230 +f 1329/2741/241 1338/2748/234 1337/2749/244 +f 1329/2750/241 1344/2751/242 1336/2742/243 +f 1335/2738/238 1342/2752/239 1334/2735/240 +f 1332/2736/237 1341/2753/231 1340/2754/236 +f 1331/2740/245 1338/2755/234 1330/2737/233 +f 1339/2756/230 1341/2757/231 1343/2758/232 +f 1345/1644/144 1360/2759/229 1353/2760/144 +f 1350/2129/228 1359/2761/171 1351/1627/171 +f 1348/1630/227 1357/2762/143 1349/1631/143 +f 1346/1633/226 1355/2763/166 1347/1634/166 +f 1351/2130/171 1360/2764/229 1352/1635/229 +f 1349/1637/143 1358/2765/228 1350/1638/228 +f 1347/2131/166 1356/2766/227 1348/1639/227 +f 1346/1642/226 1353/2767/144 1354/2768/226 +f 1375/1651/226 1368/2769/144 1367/2770/226 +f 1373/1653/227 1366/2771/166 1365/2772/227 +f 1372/2136/143 1363/2773/228 1371/1656/228 +f 1370/2137/171 1361/2774/229 1369/1659/229 +f 1375/1661/226 1366/2775/166 1374/1662/166 +f 1373/1663/227 1364/2776/143 1372/1664/143 +f 1370/1665/171 1363/2777/228 1362/2778/171 +f 1376/1648/144 1361/2779/229 1368/2780/144 +f 1382/2781/230 1380/2782/231 1378/2783/232 +f 1390/2784/245 1383/2785/234 1391/2786/233 +f 1389/2787/237 1380/2788/231 1381/2789/236 +f 1387/2790/240 1378/2791/232 1379/2792/239 +f 1385/2793/243 1384/2794/244 1377/2795/242 +f 1392/2796/241 1383/2797/234 1384/2798/244 +f 1390/2784/245 1381/2799/236 1382/2800/230 +f 1388/2801/235 1379/2802/239 1380/2803/231 +f 1386/2804/238 1377/2805/242 1378/2806/232 +f 1393/1660/229 1392/2807/241 1385/2793/243 +f 1400/2134/144 1391/2786/233 1392/2796/241 +f 1398/1652/166 1389/2787/237 1390/2784/245 +f 1395/1657/228 1388/2801/235 1396/1655/143 +f 1393/1660/229 1386/2804/238 1394/1658/171 +f 1398/1652/166 1391/2786/233 1399/1649/226 +f 1396/1655/143 1389/2787/237 1397/1654/227 +f 1394/1658/171 1387/2790/240 1395/1657/228 +f 1415/1670/226 1408/2808/144 1407/2809/226 +f 1413/1673/227 1406/2810/166 1405/2811/227 +f 1412/2141/143 1403/2812/228 1411/1676/228 +f 1410/2142/171 1401/2813/229 1409/1679/229 +f 1415/1681/226 1406/2814/166 1414/1682/166 +f 1413/1683/227 1404/2815/143 1412/1684/143 +f 1410/1686/171 1403/2816/228 1402/2817/171 +f 1416/1668/144 1401/2818/229 1408/2819/144 +f 1422/2820/230 1420/2821/231 1418/2822/232 +f 1430/2823/245 1423/2824/234 1431/2825/233 +f 1428/2826/235 1421/2827/236 1429/2828/237 +f 1427/2829/240 1418/2830/232 1419/2831/239 +f 1432/2832/241 1417/2833/242 1425/2834/243 +f 1432/2835/241 1423/2836/234 1424/2837/244 +f 1430/2823/245 1421/2838/236 1422/2839/230 +f 1427/2829/240 1420/2840/231 1428/2826/235 +f 1426/2841/246 1417/2842/242 1418/2843/232 +f 1433/1680/229 1432/2832/241 1425/2834/243 +f 1440/1669/144 1431/2825/233 1432/2835/241 +f 1438/1672/166 1429/2828/237 1430/2823/245 +f 1435/1677/228 1428/2826/235 1436/1675/143 +f 1433/1680/229 1426/2841/246 1434/1678/171 +f 1438/1672/166 1431/2825/233 1439/1671/226 +f 1436/1675/143 1429/2828/237 1437/1674/227 +f 1434/1678/171 1427/2829/240 1435/1677/228 +f 1442/1697/143 1445/1713/247 1441/1698/143 +f 1451/1708/144 1456/1715/211 1452/1704/144 +f 1455/1707/211 1463/1723/201 1456/1715/211 +f 1461/1725/143 1465/1738/247 1464/1726/143 +f 1463/1723/201 1457/2143/248 1460/1722/248 +f 1446/1696/247 1457/2143/248 1445/1713/247 +f 1471/1736/144 1476/1740/211 1472/1732/144 +f 1475/1735/211 1480/1748/201 1476/1740/211 +f 1480/1748/201 1477/2146/248 1478/1747/248 +f 1466/1724/247 1477/2146/248 1465/1738/247 +f 1533/2844/147 1510/2845/149 1534/2846/149 +f 1531/2847/148 1508/2848/145 1532/2849/145 +f 1529/2850/160 1506/2851/146 1530/2852/146 +f 1534/2846/149 1511/2853/159 1535/2854/159 +f 1532/2855/145 1509/2856/147 1533/2844/147 +f 1530/2852/146 1507/2857/148 1531/2847/148 +f 1536/2858/158 1505/2859/160 1529/2850/160 +f 1535/2854/159 1512/2860/158 1536/2858/158 +f 1523/2861/148 1516/2862/145 1524/2863/145 +f 1521/2864/160 1514/2865/146 1522/2866/146 +f 1527/2867/159 1520/2868/158 1528/2869/158 +f 1525/2870/147 1518/2871/149 1526/2872/149 +f 1538/2873/159 1545/2874/158 1537/2875/158 +f 1537/2875/158 1552/2876/160 1544/2877/160 +f 1526/2872/149 1519/2878/159 1527/2867/159 +f 1524/2879/145 1517/2880/147 1525/2870/147 +f 1522/2866/146 1515/2881/148 1523/2861/148 +f 1528/2869/158 1513/2882/160 1521/2864/160 +f 1543/2883/146 1550/2884/148 1542/2885/148 +f 1541/2886/145 1548/2887/147 1540/2888/147 +f 1539/2889/149 1546/2890/159 1538/2873/159 +f 1544/2877/160 1551/2891/146 1543/2883/146 +f 1542/2885/148 1549/2892/145 1541/2893/145 +f 1540/2888/147 1547/2894/149 1539/2889/149 +f 1564/2895/147 1571/2896/149 1563/2897/149 +f 1562/2898/159 1569/2899/158 1561/2900/158 +f 1561/2900/158 1576/2901/160 1568/2902/160 +f 1567/2903/146 1574/2904/148 1566/2905/148 +f 1565/2906/145 1572/2907/147 1564/2895/147 +f 1563/2897/149 1570/2908/159 1562/2898/159 +f 1568/2902/160 1575/2909/146 1567/2903/146 +f 1566/2905/148 1573/2910/145 1565/2911/145 +f 1628/1903/249 1635/2912/250 1627/1895/168 +f 1625/1904/144 1634/2913/251 1633/2914/252 +f 1632/1899/253 1633/2915/252 1640/2916/254 +f 1639/2917/255 1648/2918/256 1647/2919/257 +f 1637/2920/258 1646/2921/259 1645/2922/260 +f 1635/2912/250 1644/2923/261 1643/2924/262 +f 1633/2914/252 1642/2925/263 1641/2926/264 +f 1633/2915/252 1648/2927/256 1640/2916/254 +f 1638/2928/265 1647/2929/257 1646/2930/259 +f 1637/2920/258 1644/2931/261 1636/2932/266 +f 1635/2912/250 1642/2933/263 1634/2913/251 +f 1643/2934/262 1645/2935/260 1647/2936/257 +f 1649/1909/144 1664/2937/253 1657/2938/144 +f 1655/1891/167 1662/2939/267 1663/2940/167 +f 1652/1893/249 1661/2941/143 1653/1894/143 +f 1650/1896/268 1659/2942/168 1651/1897/168 +f 1655/2183/167 1664/2943/253 1656/1898/253 +f 1653/2184/143 1662/2944/267 1654/1900/267 +f 1652/1902/249 1659/2945/168 1660/2946/249 +f 1649/2186/144 1658/2947/268 1650/1905/268 +f 1671/1910/167 1678/2948/265 1670/1922/267 +f 1669/1913/143 1676/2949/266 1668/1924/249 +f 1667/1916/168 1674/2950/251 1666/1927/268 +f 1672/1920/253 1679/2951/255 1671/1910/167 +f 1670/1922/267 1677/2952/258 1669/1913/143 +f 1667/1916/168 1676/2949/266 1675/2953/250 +f 1665/1925/144 1674/2950/251 1673/2954/252 +f 1672/1920/253 1673/2955/252 1680/2956/254 +f 1680/2956/254 1687/2957/257 1679/2951/255 +f 1678/2948/265 1685/2958/260 1677/2952/258 +f 1675/2953/250 1684/2959/261 1683/2960/262 +f 1673/2954/252 1682/2961/263 1681/2962/264 +f 1673/2955/252 1688/2963/256 1680/2956/254 +f 1678/2948/265 1687/2964/257 1686/2965/259 +f 1677/2952/258 1684/2966/261 1676/2949/266 +f 1675/2953/250 1682/2967/263 1674/2950/251 +f 1683/2968/262 1685/2969/260 1687/2970/257 +f 1689/1930/144 1704/2971/253 1697/2972/144 +f 1694/1911/267 1703/2973/167 1695/1912/167 +f 1693/1915/143 1700/2974/249 1701/2975/143 +f 1690/1917/268 1699/2976/168 1691/1918/168 +f 1695/2187/167 1704/2977/253 1696/1919/253 +f 1693/2188/143 1702/2978/267 1694/1921/267 +f 1692/1923/249 1699/2979/168 1700/2980/249 +f 1689/2190/144 1698/2981/268 1690/1926/268 +f 1720/2191/144 1711/2982/268 1719/1935/268 +f 1717/1938/249 1710/2983/168 1709/2984/249 +f 1716/2193/143 1707/2985/267 1715/1941/267 +f 1714/1944/167 1705/2986/253 1713/1945/253 +f 1719/1946/268 1710/2987/168 1718/1947/168 +f 1717/1948/249 1708/2988/143 1716/1949/143 +f 1714/1950/167 1707/2989/267 1706/2990/167 +f 1720/1933/144 1705/2991/253 1712/2992/144 +f 1726/2993/262 1724/2994/260 1722/2995/257 +f 1734/2996/250 1727/2997/263 1735/2998/251 +f 1732/2999/258 1725/3000/261 1733/3001/266 +f 1731/3002/265 1722/3003/257 1723/3004/259 +f 1736/3005/252 1721/3006/256 1729/3007/254 +f 1736/3008/252 1727/3009/263 1728/3010/264 +f 1734/2996/250 1725/3011/261 1726/3012/262 +f 1731/3002/265 1724/3013/260 1732/2999/258 +f 1730/3014/255 1721/3015/256 1722/3016/257 +f 1737/1943/253 1736/3005/252 1729/3007/254 +f 1744/1934/144 1735/2998/251 1736/3008/252 +f 1741/1939/249 1734/2996/250 1742/1937/168 +f 1739/1942/267 1732/2999/258 1740/1940/143 +f 1737/1943/253 1730/3014/255 1738/1951/167 +f 1742/1937/168 1735/2998/251 1743/1936/268 +f 1740/1940/143 1733/3001/266 1741/1939/249 +f 1739/1942/267 1730/3014/255 1731/3002/265 +f 1759/1956/268 1752/3017/144 1751/3018/268 +f 1758/2196/168 1749/3019/249 1757/1959/249 +f 1756/2197/143 1747/3020/267 1755/1962/267 +f 1754/2198/167 1745/3021/253 1753/1965/253 +f 1759/1967/268 1750/3022/168 1758/1968/168 +f 1757/1969/249 1748/3023/143 1756/1970/143 +f 1755/1971/267 1746/3024/167 1754/1972/167 +f 1760/1954/144 1745/3025/253 1752/3026/144 +f 1766/3027/262 1764/3028/260 1762/3029/257 +f 1774/3030/250 1767/3031/263 1775/3032/251 +f 1772/3033/258 1765/3034/261 1773/3035/266 +f 1770/3036/255 1763/3037/259 1771/3038/265 +f 1776/3039/252 1761/3040/256 1769/3041/254 +f 1776/3042/252 1767/3043/263 1768/3044/264 +f 1774/3030/250 1765/3045/261 1766/3046/262 +f 1771/3038/265 1764/3047/260 1772/3033/258 +f 1770/3036/255 1761/3048/256 1762/3049/257 +f 1777/1966/253 1776/3039/252 1769/3041/254 +f 1784/1955/144 1775/3032/251 1776/3042/252 +f 1782/1958/168 1773/3035/266 1774/3030/250 +f 1779/1963/267 1772/3033/258 1780/1961/143 +f 1777/1966/253 1770/3036/255 1778/1964/167 +f 1782/1958/168 1775/3032/251 1783/1957/268 +f 1780/1961/143 1773/3035/266 1781/1960/249 +f 1778/1964/167 1771/3038/265 1779/1963/267 +f 1790/1973/267 1799/3050/255 1798/3051/265 +f 1789/1976/143 1796/3052/266 1788/1987/249 +f 1786/1990/268 1795/3053/250 1794/3054/251 +f 1792/1982/253 1799/3050/255 1791/1975/167 +f 1790/1973/267 1797/3055/258 1789/1976/143 +f 1788/1987/249 1795/3053/250 1787/1979/168 +f 1785/1988/144 1794/3054/251 1793/3056/252 +f 1785/1991/144 1800/3057/254 1792/1982/253 +f 1799/3050/255 1808/3058/256 1807/3059/257 +f 1797/3055/258 1806/3060/259 1805/3061/260 +f 1795/3053/250 1804/3062/261 1803/3063/262 +f 1793/3056/252 1802/3064/263 1801/3065/264 +f 1793/3066/252 1808/3067/256 1800/3057/254 +f 1798/3051/265 1807/3068/257 1806/3069/259 +f 1797/3055/258 1804/3070/261 1796/3052/266 +f 1795/3053/250 1802/3071/263 1794/3054/251 +f 1803/3072/262 1805/3073/260 1807/3074/257 +f 1809/1993/144 1824/3075/253 1817/3076/144 +f 1815/1974/167 1822/3077/267 1823/3078/167 +f 1812/1977/249 1821/3079/143 1813/1978/143 +f 1810/1980/268 1819/3080/168 1811/1981/168 +f 1815/1983/167 1824/3081/253 1816/1984/253 +f 1813/2200/143 1822/3082/267 1814/1985/267 +f 1811/2201/168 1820/3083/249 1812/1986/249 +f 1810/1989/268 1817/3084/144 1818/3085/268 +f 1630/1901/267 1637/2920/258 1629/1892/143 +f 1632/1899/253 1639/2917/255 1631/1889/167 +f 1627/1895/168 1634/2913/251 1626/1906/268 +f 1629/1892/143 1636/2932/266 1628/1903/249 +f 1631/1889/167 1638/2928/265 1630/1901/267 +f 658/2203/161 659/3086/145 647/2204/145 +f 655/2206/166 656/2215/149 644/2207/149 +f 662/2209/146 663/2217/167 651/2210/167 +f 659/2212/145 660/2222/165 648/2213/165 +f 656/2215/149 657/2224/168 645/2216/168 +f 663/2217/167 664/2225/169 652/2218/169 +f 653/2219/158 654/2226/170 642/2220/170 +f 660/2222/165 661/2227/171 649/2223/171 +f 657/2224/168 658/2203/161 646/2205/161 +f 664/2225/169 653/2219/158 641/2221/158 +f 654/2226/170 655/2206/166 643/2208/166 +f 661/2227/171 662/2209/146 650/2211/146 +f 675/1994/172 676/1246/172 673/1995/173 +f 672/1761/174 676/1246/172 675/1994/172 +f 670/1766/175 674/1238/173 673/1995/173 +f 679/1996/166 691/1334/166 692/1336/149 +f 686/1275/146 698/1326/146 699/1325/167 +f 683/1268/145 695/1343/145 696/1345/165 +f 680/1259/149 692/1336/149 693/1338/168 +f 687/1278/167 699/1325/167 700/1328/169 +f 677/1252/158 689/1330/158 690/1332/170 +f 684/1998/165 696/1345/165 697/1347/171 +f 681/1263/168 693/1338/168 694/1340/161 +f 688/1248/169 700/1328/169 689/1330/158 +f 678/1255/170 690/1332/170 691/1334/166 +f 685/1272/171 697/1347/171 698/1326/146 +f 682/1265/161 694/1340/161 695/1342/145 +f 724/2228/169 736/3087/169 735/2229/167 +f 720/2231/165 732/2278/165 731/2232/145 +f 722/2234/146 734/2282/146 733/2235/171 +f 704/2237/158 728/2266/158 736/2238/169 +f 701/2240/149 725/2271/149 726/2241/166 +f 721/2243/171 733/3088/171 732/2244/165 +f 702/2246/166 726/2269/166 727/2247/170 +f 703/2249/170 727/2267/170 728/2250/158 +f 719/2252/145 731/2277/145 730/2253/161 +f 723/2255/167 735/2283/167 734/2256/146 +f 718/2258/161 730/3089/161 729/2259/168 +f 717/2261/168 729/2273/168 725/2262/149 +f 735/2229/176 736/3087/177 748/2264/177 +f 728/2266/178 737/2268/178 748/2264/177 +f 727/2267/179 738/2270/179 737/2268/178 +f 726/2269/180 739/2272/180 738/2270/179 +f 725/2271/181 740/2274/181 739/2272/180 +f 729/2273/182 741/2276/182 740/2274/181 +f 729/2259/182 730/3089/183 742/2275/183 +f 731/2277/184 743/2285/184 742/2275/183 +f 732/2278/185 744/2281/185 743/2279/184 +f 732/2244/185 733/3088/186 745/2280/186 +f 734/2282/187 746/2284/187 745/2280/186 +f 735/2283/176 747/2265/176 746/2284/187 +f 741/2276/168 753/1295/168 752/1297/149 +f 748/2264/169 760/1298/169 759/1300/167 +f 738/2270/170 750/1301/170 749/1303/158 +f 745/2280/171 757/1304/171 756/1306/165 +f 742/2275/161 754/1307/161 753/1295/168 +f 737/2268/158 749/1303/158 760/1298/169 +f 739/2272/166 751/1311/166 750/1301/170 +f 746/2284/146 758/1318/146 757/1304/171 +f 743/2285/145 755/1315/145 754/1307/161 +f 740/2274/149 752/1297/149 751/1311/166 +f 747/2265/167 759/1300/167 758/1318/146 +f 744/2281/165 756/1306/165 755/1292/145 +f 771/1299/188 772/2004/189 784/2286/189 +f 761/1309/190 773/3090/190 784/2288/189 +f 762/2005/191 774/3091/191 773/2289/190 +f 763/2008/192 775/3092/192 774/2290/191 +f 764/2010/193 776/3093/193 775/2291/192 +f 765/2003/194 777/3094/194 776/2292/193 +f 765/1308/194 766/2007/195 778/2293/195 +f 767/2009/196 779/3095/196 778/2295/195 +f 768/1293/197 780/3096/197 779/2296/196 +f 769/2006/198 781/3097/198 780/2297/197 +f 770/1313/199 782/3098/199 781/2298/198 +f 770/1320/199 771/1319/188 783/2299/188 +f 787/2301/166 799/2322/166 800/2302/149 +f 794/2304/146 806/2323/146 807/2305/167 +f 791/2307/145 803/3099/145 804/2308/165 +f 788/2303/149 800/2302/149 801/2310/168 +f 795/2306/167 807/2305/167 808/2312/169 +f 785/2314/158 797/2321/158 798/2315/170 +f 792/2309/165 804/2308/165 805/2317/171 +f 789/2311/168 801/2310/168 802/2319/161 +f 796/2313/169 808/2312/169 797/2321/158 +f 786/2316/170 798/2315/170 799/2322/166 +f 793/2318/171 805/2317/171 806/2323/146 +f 790/2320/161 802/2319/161 803/2324/145 +f 814/1368/161 826/1427/161 827/1429/145 +f 811/1360/166 823/1421/166 824/1423/149 +f 818/1378/146 830/1436/146 831/1413/167 +f 815/1371/145 827/1430/145 828/1432/165 +f 812/2033/149 824/1423/149 825/1425/168 +f 819/1349/167 831/1413/167 832/1415/169 +f 809/2032/158 821/1417/158 822/1419/170 +f 816/2035/165 828/1432/165 829/1434/171 +f 813/1364/168 825/1425/168 826/1427/161 +f 820/1352/169 832/1415/169 821/1417/158 +f 810/1356/170 822/1419/170 823/1421/166 +f 817/1375/171 829/1434/171 830/1436/146 +f 838/1401/161 850/1457/161 851/1459/145 +f 835/1393/166 847/1451/166 848/1453/149 +f 842/1410/146 854/1443/146 855/1442/167 +f 839/1404/145 851/1460/145 852/1462/165 +f 836/1398/149 848/1453/149 849/1455/168 +f 843/1382/167 855/1442/167 856/1445/169 +f 833/1390/158 845/1447/158 846/1449/170 +f 840/1409/165 852/1462/165 853/1464/171 +f 837/1396/168 849/1455/168 850/1457/161 +f 844/1385/169 856/1445/169 845/1447/158 +f 834/1388/170 846/1449/170 847/1451/166 +f 841/1407/171 853/1464/171 854/1443/146 +f 875/2326/145 876/2338/165 864/2327/165 +f 872/2329/149 873/2340/168 861/2330/168 +f 879/2332/167 880/2342/169 868/2333/169 +f 869/2335/158 870/2343/170 858/2336/170 +f 876/2338/165 877/2345/171 865/2339/171 +f 873/2340/168 874/2347/161 862/2341/161 +f 880/2342/169 869/2335/158 857/2337/158 +f 870/2343/170 871/2349/166 859/2344/166 +f 877/2345/171 878/2350/146 866/2346/146 +f 874/2347/161 875/3100/145 863/2348/145 +f 871/2349/166 872/2329/149 860/2331/149 +f 878/2350/146 879/2332/167 867/2334/167 +f 899/2351/145 900/2363/165 888/2352/165 +f 896/2354/149 897/2365/168 885/2355/168 +f 903/2357/167 904/2367/169 892/2358/169 +f 893/2360/158 894/2368/170 882/2361/170 +f 900/2363/165 901/2370/171 889/2364/171 +f 897/2365/168 898/2372/161 886/2366/161 +f 904/2367/169 893/2360/158 881/2362/158 +f 894/2368/170 895/2374/166 883/2369/166 +f 901/2370/171 902/2375/146 890/2371/146 +f 898/2372/161 899/3101/145 887/2373/145 +f 895/2374/166 896/2354/149 884/2356/149 +f 902/2375/146 903/2357/167 891/2359/167 +f 962/2376/146 964/2393/148 963/2377/148 +f 940/2379/146 942/2413/148 941/2380/148 +f 908/2382/158 910/2391/160 909/2383/160 +f 948/2385/149 950/2431/159 949/2386/159 +f 936/2388/148 905/2428/145 906/2389/145 +f 910/2391/160 912/2397/146 911/2392/146 +f 964/2393/148 966/3102/145 965/2394/145 +f 934/2395/146 936/2388/148 935/2390/148 +f 912/2397/146 914/2405/148 913/2398/148 +f 944/2399/145 946/2425/147 945/2400/147 +f 932/2402/160 934/3103/146 933/2403/146 +f 914/2405/148 916/2411/145 915/2406/145 +f 966/2407/145 968/2426/147 967/2408/147 +f 929/2410/158 930/3104/158 932/2402/160 +f 916/2411/145 918/2416/147 917/2412/147 +f 942/2413/148 944/2399/145 943/2401/145 +f 928/2414/159 930/3104/158 929/2410/158 +f 918/2416/147 920/3105/149 919/2417/149 +f 924/2418/147 926/2421/149 925/2419/149 +f 926/2421/149 928/2414/159 927/2415/159 +f 920/2422/149 922/3106/159 921/2423/159 +f 946/2425/147 948/2385/149 947/2387/149 +f 968/2426/147 937/2441/149 938/2427/149 +f 921/2423/159 922/3106/159 908/2382/158 +f 905/2428/145 924/2418/147 923/2420/147 +f 960/2429/160 962/2376/146 961/2378/146 +f 950/2431/159 952/3107/158 951/2432/158 +f 956/2433/159 958/2436/158 957/2434/158 +f 958/2436/158 960/2429/160 959/2430/160 +f 952/2437/158 954/2440/160 953/2438/160 +f 954/2440/160 940/2379/146 939/2381/146 +f 937/2441/149 956/2433/159 955/2435/159 +f 1026/2442/148 1028/3108/145 1027/2443/145 +f 1004/2445/148 1006/2479/145 1005/2446/145 +f 972/2448/160 974/2457/146 973/2449/146 +f 1012/2451/159 1014/2498/158 1013/2452/158 +f 1000/2454/145 969/2495/147 970/2455/147 +f 974/2457/146 976/2463/148 975/2458/148 +f 1027/2443/145 1028/3108/145 1030/2459/147 +f 998/2461/148 1000/2454/145 999/2456/145 +f 976/2463/148 978/2471/145 977/2464/145 +f 1008/2465/147 1010/2491/149 1009/2466/149 +f 996/2468/146 998/3109/148 997/2469/148 +f 978/2471/145 980/2477/147 979/2472/147 +f 1030/2473/147 1032/2492/149 1031/2474/149 +f 993/2476/160 994/3110/160 996/2468/146 +f 980/2477/147 982/2482/149 981/2478/149 +f 1006/2479/145 1008/2465/147 1007/2467/147 +f 992/2480/158 994/3110/160 993/2476/160 +f 982/2482/149 984/3111/159 983/2483/159 +f 988/2484/149 990/2487/159 989/2485/159 +f 990/2487/159 992/2480/158 991/2481/158 +f 984/2488/159 986/2494/158 985/2489/158 +f 1010/2491/149 1012/2451/159 1011/2453/159 +f 1032/2492/149 1001/2508/159 1002/2493/159 +f 986/2494/158 972/2448/160 971/2450/160 +f 969/2495/147 988/2484/149 987/2486/149 +f 1024/2496/146 1026/2442/148 1025/2444/148 +f 1014/2498/158 1016/3112/160 1015/2499/160 +f 1020/2500/158 1022/2503/160 1021/2501/160 +f 1022/2503/160 1024/2496/146 1023/2497/146 +f 1016/2504/160 1018/2507/146 1017/2505/146 +f 1018/2507/146 1004/2445/148 1003/2447/148 +f 1001/2508/159 1020/2500/158 1019/2502/158 +f 1051/1505/145 1052/1497/145 1049/1515/200 +f 1055/1496/201 1053/1498/158 1054/2509/158 +f 1060/2511/202 1069/2524/202 1072/2512/203 +f 1064/2514/204 1071/3113/204 1066/2515/205 +f 1058/2517/206 1067/3114/206 1070/2518/207 +f 1072/2512/203 1071/3113/204 1064/2514/204 +f 1062/2520/208 1061/2516/205 1066/2515/205 +f 1068/2522/209 1067/3114/206 1058/2517/206 +f 1060/2511/202 1059/2519/207 1070/2518/207 +f 1062/2520/208 1065/2521/208 1068/2525/209 +f 1078/1514/210 1077/1511/210 1050/1499/200 +f 1074/1512/143 1077/1511/210 1078/1514/210 +f 1075/1509/144 1080/1508/211 1079/2527/211 +f 1056/2529/201 1079/3115/211 1080/2077/211 +f 1116/2530/212 1124/2541/212 1123/2531/148 +f 1119/2533/159 1120/2546/213 1128/2534/213 +f 1115/2532/148 1123/2531/148 1122/2536/214 +f 1114/2537/214 1122/2536/214 1121/2538/144 +f 1117/2540/143 1125/2543/143 1124/2541/212 +f 1118/2542/215 1126/2544/215 1125/2543/143 +f 1119/2533/159 1127/2535/159 1126/2544/215 +f 1113/2545/144 1121/3116/144 1128/2534/213 +f 1136/2547/216 1129/3117/144 1137/2548/144 +f 1134/2550/217 1142/2561/217 1141/2551/143 +f 1131/2553/160 1139/2563/160 1138/2554/218 +f 1132/2556/219 1133/2552/143 1141/2551/143 +f 1130/2555/218 1138/2554/218 1137/2558/144 +f 1134/2550/217 1135/2562/147 1143/2560/147 +f 1136/2547/216 1144/2549/216 1143/2560/147 +f 1132/2556/219 1140/2557/219 1139/2563/160 +f 1145/2564/144 1153/3118/144 1160/2565/220 +f 1151/2567/146 1159/2576/146 1158/2568/221 +f 1149/2570/143 1157/2577/143 1156/2571/222 +f 1147/2573/149 1155/2578/149 1154/2574/223 +f 1152/2566/220 1160/2565/220 1159/2576/146 +f 1150/2569/221 1158/2568/221 1157/2577/143 +f 1148/2572/222 1156/2571/222 1155/2578/149 +f 1146/2575/223 1154/2574/223 1153/2579/144 +f 1172/2581/143 1171/2587/219 1163/2582/219 +f 1172/2581/143 1164/2583/143 1165/2584/217 +f 1170/2586/160 1162/2589/160 1163/2582/219 +f 1169/2588/218 1161/2597/218 1162/2589/160 +f 1174/2590/147 1166/2595/147 1167/2591/216 +f 1175/2592/216 1167/2591/216 1168/2593/144 +f 1174/2590/147 1173/2585/217 1165/2584/217 +f 1176/2596/144 1168/3119/144 1161/2597/218 +f 1192/2598/144 1184/3120/144 1177/2599/214 +f 1190/2601/159 1189/2609/215 1181/2602/215 +f 1191/2604/213 1183/2613/213 1184/2605/144 +f 1186/2607/148 1185/2600/214 1177/2599/214 +f 1189/2609/215 1188/2612/143 1180/2610/143 +f 1187/2611/212 1179/2614/212 1180/2610/143 +f 1191/2604/213 1190/2601/159 1182/2603/159 +f 1186/2607/148 1178/2608/148 1179/2614/212 +f 1200/2615/224 1193/3121/144 1201/2616/144 +f 1198/2618/163 1206/2629/163 1205/2619/143 +f 1195/2621/145 1203/2631/145 1202/2622/164 +f 1197/2620/143 1205/2619/143 1204/2624/225 +f 1193/2626/144 1194/2623/164 1202/2622/164 +f 1199/2628/158 1207/2630/158 1206/2629/163 +f 1200/2615/224 1208/2617/224 1207/2630/158 +f 1196/2625/225 1204/2624/225 1203/2631/145 +f 1224/2632/144 1216/3122/144 1209/2633/164 +f 1221/2635/163 1213/2644/163 1214/2636/158 +f 1223/2638/224 1215/2647/224 1216/2639/144 +f 1217/2634/164 1209/2633/164 1210/2641/145 +f 1220/2643/143 1212/2646/143 1213/2644/163 +f 1219/2645/225 1211/2648/225 1212/2646/143 +f 1222/2637/158 1214/2636/158 1215/2647/224 +f 1218/2642/145 1210/2641/145 1211/2648/225 +f 1240/2649/144 1232/3123/144 1225/2650/223 +f 1237/2652/221 1229/2661/221 1230/2653/146 +f 1240/2655/144 1239/2664/220 1231/2656/220 +f 1233/2651/223 1225/2650/223 1226/2658/149 +f 1236/2660/143 1228/2663/143 1229/2661/221 +f 1235/2662/222 1227/2665/222 1228/2663/143 +f 1238/2654/146 1230/2653/146 1231/2656/220 +f 1234/2659/149 1226/2658/149 1227/2665/222 +f 1255/1588/226 1256/2122/144 1248/2666/144 +f 1254/2123/166 1246/3124/166 1245/2668/227 +f 1252/1594/143 1244/3125/143 1243/2669/228 +f 1250/2124/171 1242/3126/171 1241/2670/229 +f 1255/1598/226 1247/3127/226 1246/2671/166 +f 1253/1601/227 1245/3128/227 1244/2672/143 +f 1250/1604/171 1251/1603/228 1243/2673/228 +f 1249/2121/229 1241/3129/229 1248/2675/144 +f 1264/3130/244 1263/3131/234 1262/2676/230 +f 1262/2676/230 1261/3132/236 1260/2677/231 +f 1260/2677/231 1259/3133/239 1258/2678/232 +f 1258/2678/232 1257/3134/242 1264/3130/244 +f 1264/3130/244 1262/2676/230 1258/2678/232 +f 1271/2679/233 1270/2694/245 1262/2680/230 +f 1268/2682/235 1260/3135/231 1261/2683/236 +f 1266/2685/238 1258/3136/232 1259/2686/239 +f 1272/2688/241 1264/3137/244 1257/2689/242 +f 1272/2691/241 1271/2679/233 1263/2692/234 +f 1270/2694/245 1269/2684/237 1261/2695/236 +f 1268/2682/235 1267/2687/240 1259/2697/239 +f 1265/2690/243 1257/3138/242 1258/2699/232 +f 1273/1584/229 1280/1586/144 1272/2688/241 +f 1280/1587/144 1279/1589/226 1271/2679/233 +f 1277/1592/227 1269/2684/237 1270/2694/245 +f 1275/1593/228 1267/2687/240 1268/2682/235 +f 1273/1584/229 1265/2690/243 1266/2685/238 +f 1278/1590/166 1270/2694/245 1271/2679/233 +f 1276/1600/143 1268/2682/235 1269/2684/237 +f 1274/1596/171 1266/2685/238 1267/2687/240 +f 1286/1617/228 1287/1605/171 1295/2700/238 +f 1285/1608/143 1293/2704/235 1292/2702/237 +f 1283/1611/166 1291/2705/245 1290/2703/233 +f 1288/1615/229 1296/2708/243 1295/2700/238 +f 1286/1617/228 1294/2701/240 1293/2704/235 +f 1283/1611/166 1284/1619/227 1292/2702/237 +f 1281/1620/144 1282/1622/226 1290/2703/233 +f 1288/1615/229 1281/1623/144 1289/2707/241 +f 1296/2708/243 1304/3139/242 1303/2709/232 +f 1294/2701/240 1302/3140/239 1301/2710/231 +f 1291/2705/245 1292/2702/237 1300/2711/236 +f 1289/2706/241 1290/2703/233 1298/2713/234 +f 1289/2707/241 1297/3141/244 1304/2715/242 +f 1294/2701/240 1295/2700/238 1303/2716/232 +f 1292/2702/237 1293/2704/235 1301/2718/231 +f 1291/2705/245 1299/3142/230 1298/2720/234 +f 1297/3143/244 1298/3144/234 1299/2721/230 +f 1299/2721/230 1300/3145/236 1301/2722/231 +f 1301/2722/231 1302/3146/239 1303/2723/232 +f 1303/2723/232 1304/3147/242 1297/3143/244 +f 1297/3143/244 1299/2721/230 1303/2723/232 +f 1312/1624/229 1320/3148/229 1313/2724/144 +f 1311/1607/171 1310/1606/228 1318/2725/228 +f 1308/1609/227 1316/3149/227 1317/2727/143 +f 1306/1612/226 1314/3150/226 1315/2728/166 +f 1311/2125/171 1319/3151/171 1320/2729/229 +f 1309/2126/143 1317/3152/143 1318/2730/228 +f 1308/1618/227 1307/2127/166 1315/2731/166 +f 1306/1621/226 1305/2128/144 1313/2733/144 +f 1327/1628/171 1335/2738/238 1334/2735/240 +f 1325/1629/143 1333/2739/235 1332/2736/237 +f 1323/1632/166 1331/2740/245 1330/2737/233 +f 1328/1636/229 1336/2742/243 1335/2738/238 +f 1326/1626/228 1334/2735/240 1333/2739/235 +f 1323/1632/166 1324/1640/227 1332/2736/237 +f 1321/1641/144 1322/1643/226 1330/2737/233 +f 1321/1645/144 1329/2750/241 1336/2742/243 +f 1336/2742/243 1344/3153/242 1343/2743/232 +f 1333/2739/235 1334/2735/240 1342/2744/239 +f 1331/2740/245 1332/2736/237 1340/2746/236 +f 1329/2741/241 1330/2737/233 1338/2748/234 +f 1329/2750/241 1337/3154/244 1344/2751/242 +f 1335/2738/238 1343/3155/232 1342/2752/239 +f 1332/2736/237 1333/2739/235 1341/2753/231 +f 1331/2740/245 1339/3156/230 1338/2755/234 +f 1337/3157/244 1338/3158/234 1339/2756/230 +f 1339/2756/230 1340/3159/236 1341/2757/231 +f 1341/2757/231 1342/3160/239 1343/2758/232 +f 1343/2758/232 1344/3161/242 1337/3157/244 +f 1337/3157/244 1339/2756/230 1343/2758/232 +f 1345/1644/144 1352/2133/229 1360/2759/229 +f 1350/2129/228 1358/3162/228 1359/2761/171 +f 1348/1630/227 1356/3163/227 1357/2762/143 +f 1346/1633/226 1354/3164/226 1355/2763/166 +f 1351/2130/171 1359/3165/171 1360/2764/229 +f 1349/1637/143 1357/3166/143 1358/2765/228 +f 1347/2131/166 1355/3167/166 1356/2766/227 +f 1346/1642/226 1345/2132/144 1353/2767/144 +f 1375/1651/226 1376/1650/144 1368/2769/144 +f 1373/1653/227 1374/2135/166 1366/2771/166 +f 1372/2136/143 1364/3168/143 1363/2773/228 +f 1370/2137/171 1362/3169/171 1361/2774/229 +f 1375/1661/226 1367/3170/226 1366/2775/166 +f 1373/1663/227 1365/3171/227 1364/2776/143 +f 1370/1665/171 1371/2138/228 1363/2777/228 +f 1376/1648/144 1369/1647/229 1361/2779/229 +f 1384/3172/244 1383/3173/234 1382/2781/230 +f 1382/2781/230 1381/3174/236 1380/2782/231 +f 1380/2782/231 1379/3175/239 1378/2783/232 +f 1378/2783/232 1377/3176/242 1384/3172/244 +f 1384/3172/244 1382/2781/230 1378/2783/232 +f 1390/2784/245 1382/3177/230 1383/2785/234 +f 1389/2787/237 1388/2801/235 1380/2788/231 +f 1387/2790/240 1386/2804/238 1378/2791/232 +f 1385/2793/243 1392/2807/241 1384/2794/244 +f 1392/2796/241 1391/2786/233 1383/2797/234 +f 1390/2784/245 1389/2787/237 1381/2799/236 +f 1388/2801/235 1387/2790/240 1379/2802/239 +f 1386/2804/238 1385/2793/243 1377/2805/242 +f 1393/1660/229 1400/1646/144 1392/2807/241 +f 1400/2134/144 1399/1649/226 1391/2786/233 +f 1398/1652/166 1397/1654/227 1389/2787/237 +f 1395/1657/228 1387/2790/240 1388/2801/235 +f 1393/1660/229 1385/2793/243 1386/2804/238 +f 1398/1652/166 1390/2784/245 1391/2786/233 +f 1396/1655/143 1388/2801/235 1389/2787/237 +f 1394/1658/171 1386/2804/238 1387/2790/240 +f 1415/1670/226 1416/2139/144 1408/2808/144 +f 1413/1673/227 1414/2140/166 1406/2810/166 +f 1412/2141/143 1404/3178/143 1403/2812/228 +f 1410/2142/171 1402/3179/171 1401/2813/229 +f 1415/1681/226 1407/3180/226 1406/2814/166 +f 1413/1683/227 1405/3181/227 1404/2815/143 +f 1410/1686/171 1411/1685/228 1403/2816/228 +f 1416/1668/144 1409/1667/229 1401/2818/229 +f 1424/3182/244 1423/3183/234 1422/2820/230 +f 1422/2820/230 1421/3184/236 1420/2821/231 +f 1420/2821/231 1419/3185/239 1418/2822/232 +f 1418/2822/232 1417/3186/242 1424/3182/244 +f 1424/3182/244 1422/2820/230 1418/2822/232 +f 1430/2823/245 1422/3187/230 1423/2824/234 +f 1428/2826/235 1420/3188/231 1421/2827/236 +f 1427/2829/240 1426/2841/246 1418/2830/232 +f 1432/2832/241 1424/3189/244 1417/2833/242 +f 1432/2835/241 1431/2825/233 1423/2836/234 +f 1430/2823/245 1429/2828/237 1421/2838/236 +f 1427/2829/240 1419/3190/239 1420/2840/231 +f 1426/2841/246 1425/2834/243 1417/2842/242 +f 1433/1680/229 1440/1666/144 1432/2832/241 +f 1440/1669/144 1439/1671/226 1431/2825/233 +f 1438/1672/166 1437/1674/227 1429/2828/237 +f 1435/1677/228 1427/2829/240 1428/2826/235 +f 1433/1680/229 1425/2834/243 1426/2841/246 +f 1438/1672/166 1430/2823/245 1431/2825/233 +f 1436/1675/143 1428/2826/235 1429/2828/237 +f 1434/1678/171 1426/2841/246 1427/2829/240 +f 1442/1697/143 1446/1696/247 1445/1713/247 +f 1451/1708/144 1455/1707/211 1456/1715/211 +f 1455/1707/211 1462/1688/201 1463/1723/201 +f 1461/1725/143 1466/1724/247 1465/1738/247 +f 1463/1723/201 1462/1688/201 1457/2143/248 +f 1446/1696/247 1460/1722/248 1457/2143/248 +f 1471/1736/144 1475/1735/211 1476/1740/211 +f 1475/1735/211 1479/1710/201 1480/1748/201 +f 1480/1748/201 1479/1710/201 1477/2146/248 +f 1466/1724/247 1478/1747/248 1477/2146/248 +f 1533/2844/147 1509/2856/147 1510/2845/149 +f 1531/2847/148 1507/2857/148 1508/2848/145 +f 1529/2850/160 1505/2859/160 1506/2851/146 +f 1534/2846/149 1510/2845/149 1511/2853/159 +f 1532/2855/145 1508/3191/145 1509/2856/147 +f 1530/2852/146 1506/2851/146 1507/2857/148 +f 1536/2858/158 1512/2860/158 1505/2859/160 +f 1535/2854/159 1511/2853/159 1512/2860/158 +f 1523/2861/148 1515/2881/148 1516/2862/145 +f 1521/2864/160 1513/2882/160 1514/2865/146 +f 1527/2867/159 1519/2878/159 1520/2868/158 +f 1525/2870/147 1517/2880/147 1518/2871/149 +f 1538/2873/159 1546/2890/159 1545/2874/158 +f 1537/2875/158 1545/2874/158 1552/2876/160 +f 1526/2872/149 1518/2871/149 1519/2878/159 +f 1524/2879/145 1516/3192/145 1517/2880/147 +f 1522/2866/146 1514/2865/146 1515/2881/148 +f 1528/2869/158 1520/2868/158 1513/2882/160 +f 1543/2883/146 1551/2891/146 1550/2884/148 +f 1541/2886/145 1549/3193/145 1548/2887/147 +f 1539/2889/149 1547/2894/149 1546/2890/159 +f 1544/2877/160 1552/2876/160 1551/2891/146 +f 1542/2885/148 1550/2884/148 1549/2892/145 +f 1540/2888/147 1548/2887/147 1547/2894/149 +f 1564/2895/147 1572/2907/147 1571/2896/149 +f 1562/2898/159 1570/2908/159 1569/2899/158 +f 1561/2900/158 1569/2899/158 1576/2901/160 +f 1567/2903/146 1575/2909/146 1574/2904/148 +f 1565/2906/145 1573/3194/145 1572/2907/147 +f 1563/2897/149 1571/2896/149 1570/2908/159 +f 1568/2902/160 1576/2901/160 1575/2909/146 +f 1566/2905/148 1574/2904/148 1573/2910/145 +f 1628/1903/249 1636/2932/266 1635/2912/250 +f 1625/1904/144 1626/1906/268 1634/2913/251 +f 1632/1899/253 1625/1907/144 1633/2915/252 +f 1639/2917/255 1640/2916/254 1648/2918/256 +f 1637/2920/258 1638/2928/265 1646/2921/259 +f 1635/2912/250 1636/2932/266 1644/2923/261 +f 1633/2914/252 1634/2913/251 1642/2925/263 +f 1633/2915/252 1641/3195/264 1648/2927/256 +f 1638/2928/265 1639/2917/255 1647/2929/257 +f 1637/2920/258 1645/3196/260 1644/2931/261 +f 1635/2912/250 1643/3197/262 1642/2933/263 +f 1641/3198/264 1642/3199/263 1643/2934/262 +f 1643/2934/262 1644/3200/261 1645/2935/260 +f 1645/2935/260 1646/3201/259 1647/2936/257 +f 1647/2936/257 1648/3202/256 1641/3198/264 +f 1641/3198/264 1643/2934/262 1647/2936/257 +f 1649/1909/144 1656/1908/253 1664/2937/253 +f 1655/1891/167 1654/1890/267 1662/2939/267 +f 1652/1893/249 1660/3203/249 1661/2941/143 +f 1650/1896/268 1658/3204/268 1659/2942/168 +f 1655/2183/167 1663/3205/167 1664/2943/253 +f 1653/2184/143 1661/3206/143 1662/2944/267 +f 1652/1902/249 1651/2185/168 1659/2945/168 +f 1649/2186/144 1657/3207/144 1658/2947/268 +f 1671/1910/167 1679/2951/255 1678/2948/265 +f 1669/1913/143 1677/2952/258 1676/2949/266 +f 1667/1916/168 1675/2953/250 1674/2950/251 +f 1672/1920/253 1680/2956/254 1679/2951/255 +f 1670/1922/267 1678/2948/265 1677/2952/258 +f 1667/1916/168 1668/1924/249 1676/2949/266 +f 1665/1925/144 1666/1927/268 1674/2950/251 +f 1672/1920/253 1665/1928/144 1673/2955/252 +f 1680/2956/254 1688/3208/256 1687/2957/257 +f 1678/2948/265 1686/3209/259 1685/2958/260 +f 1675/2953/250 1676/2949/266 1684/2959/261 +f 1673/2954/252 1674/2950/251 1682/2961/263 +f 1673/2955/252 1681/3210/264 1688/2963/256 +f 1678/2948/265 1679/2951/255 1687/2964/257 +f 1677/2952/258 1685/3211/260 1684/2966/261 +f 1675/2953/250 1683/3212/262 1682/2967/263 +f 1681/3213/264 1682/3214/263 1683/2968/262 +f 1683/2968/262 1684/3215/261 1685/2969/260 +f 1685/2969/260 1686/3216/259 1687/2970/257 +f 1687/2970/257 1688/3217/256 1681/3213/264 +f 1681/3213/264 1683/2968/262 1687/2970/257 +f 1689/1930/144 1696/1929/253 1704/2971/253 +f 1694/1911/267 1702/3218/267 1703/2973/167 +f 1693/1915/143 1692/1914/249 1700/2974/249 +f 1690/1917/268 1698/3219/268 1699/2976/168 +f 1695/2187/167 1703/3220/167 1704/2977/253 +f 1693/2188/143 1701/3221/143 1702/2978/267 +f 1692/1923/249 1691/2189/168 1699/2979/168 +f 1689/2190/144 1697/3222/144 1698/2981/268 +f 1720/2191/144 1712/3223/144 1711/2982/268 +f 1717/1938/249 1718/2192/168 1710/2983/168 +f 1716/2193/143 1708/3224/143 1707/2985/267 +f 1714/1944/167 1706/3225/167 1705/2986/253 +f 1719/1946/268 1711/3226/268 1710/2987/168 +f 1717/1948/249 1709/3227/249 1708/2988/143 +f 1714/1950/167 1715/2194/267 1707/2989/267 +f 1720/1933/144 1713/1932/253 1705/2991/253 +f 1728/3228/264 1727/3229/263 1726/2993/262 +f 1726/2993/262 1725/3230/261 1724/2994/260 +f 1724/2994/260 1723/3231/259 1722/2995/257 +f 1722/2995/257 1721/3232/256 1728/3228/264 +f 1728/3228/264 1726/2993/262 1722/2995/257 +f 1734/2996/250 1726/3233/262 1727/2997/263 +f 1732/2999/258 1724/3234/260 1725/3000/261 +f 1731/3002/265 1730/3014/255 1722/3003/257 +f 1736/3005/252 1728/3235/264 1721/3006/256 +f 1736/3008/252 1735/2998/251 1727/3009/263 +f 1734/2996/250 1733/3001/266 1725/3011/261 +f 1731/3002/265 1723/3236/259 1724/3013/260 +f 1730/3014/255 1729/3007/254 1721/3015/256 +f 1737/1943/253 1744/1931/144 1736/3005/252 +f 1744/1934/144 1743/1936/268 1735/2998/251 +f 1741/1939/249 1733/3001/266 1734/2996/250 +f 1739/1942/267 1731/3002/265 1732/2999/258 +f 1737/1943/253 1729/3007/254 1730/3014/255 +f 1742/1937/168 1734/2996/250 1735/2998/251 +f 1740/1940/143 1732/2999/258 1733/3001/266 +f 1739/1942/267 1738/1951/167 1730/3014/255 +f 1759/1956/268 1760/2195/144 1752/3017/144 +f 1758/2196/168 1750/3237/168 1749/3019/249 +f 1756/2197/143 1748/3238/143 1747/3020/267 +f 1754/2198/167 1746/3239/167 1745/3021/253 +f 1759/1967/268 1751/3240/268 1750/3022/168 +f 1757/1969/249 1749/3241/249 1748/3023/143 +f 1755/1971/267 1747/3242/267 1746/3024/167 +f 1760/1954/144 1753/1953/253 1745/3025/253 +f 1768/3243/264 1767/3244/263 1766/3027/262 +f 1766/3027/262 1765/3245/261 1764/3028/260 +f 1764/3028/260 1763/3246/259 1762/3029/257 +f 1762/3029/257 1761/3247/256 1768/3243/264 +f 1768/3243/264 1766/3027/262 1762/3029/257 +f 1774/3030/250 1766/3248/262 1767/3031/263 +f 1772/3033/258 1764/3249/260 1765/3034/261 +f 1770/3036/255 1762/3250/257 1763/3037/259 +f 1776/3039/252 1768/3251/264 1761/3040/256 +f 1776/3042/252 1775/3032/251 1767/3043/263 +f 1774/3030/250 1773/3035/266 1765/3045/261 +f 1771/3038/265 1763/3252/259 1764/3047/260 +f 1770/3036/255 1769/3041/254 1761/3048/256 +f 1777/1966/253 1784/1952/144 1776/3039/252 +f 1784/1955/144 1783/1957/268 1775/3032/251 +f 1782/1958/168 1781/1960/249 1773/3035/266 +f 1779/1963/267 1771/3038/265 1772/3033/258 +f 1777/1966/253 1769/3041/254 1770/3036/255 +f 1782/1958/168 1774/3030/250 1775/3032/251 +f 1780/1961/143 1772/3033/258 1773/3035/266 +f 1778/1964/167 1770/3036/255 1771/3038/265 +f 1790/1973/267 1791/1975/167 1799/3050/255 +f 1789/1976/143 1797/3055/258 1796/3052/266 +f 1786/1990/268 1787/1979/168 1795/3053/250 +f 1792/1982/253 1800/3057/254 1799/3050/255 +f 1790/1973/267 1798/3051/265 1797/3055/258 +f 1788/1987/249 1796/3052/266 1795/3053/250 +f 1785/1988/144 1786/1990/268 1794/3054/251 +f 1785/1991/144 1793/3066/252 1800/3057/254 +f 1799/3050/255 1800/3057/254 1808/3058/256 +f 1797/3055/258 1798/3051/265 1806/3060/259 +f 1795/3053/250 1796/3052/266 1804/3062/261 +f 1793/3056/252 1794/3054/251 1802/3064/263 +f 1793/3066/252 1801/3253/264 1808/3067/256 +f 1798/3051/265 1799/3050/255 1807/3068/257 +f 1797/3055/258 1805/3254/260 1804/3070/261 +f 1795/3053/250 1803/3255/262 1802/3071/263 +f 1801/3256/264 1802/3257/263 1803/3072/262 +f 1803/3072/262 1804/3258/261 1805/3073/260 +f 1805/3073/260 1806/3259/259 1807/3074/257 +f 1807/3074/257 1808/3260/256 1801/3256/264 +f 1801/3256/264 1803/3072/262 1807/3074/257 +f 1809/1993/144 1816/1992/253 1824/3075/253 +f 1815/1974/167 1814/2199/267 1822/3077/267 +f 1812/1977/249 1820/3261/249 1821/3079/143 +f 1810/1980/268 1818/3262/268 1819/3080/168 +f 1815/1983/167 1823/3263/167 1824/3081/253 +f 1813/2200/143 1821/3264/143 1822/3082/267 +f 1811/2201/168 1819/3265/168 1820/3083/249 +f 1810/1989/268 1809/2202/144 1817/3084/144 +f 1630/1901/267 1638/2928/265 1637/2920/258 +f 1632/1899/253 1640/2916/254 1639/2917/255 +f 1627/1895/168 1635/2912/250 1634/2913/251 +f 1629/1892/143 1637/2920/258 1636/2932/266 +f 1631/1889/167 1639/2917/255 1638/2928/265 diff --git a/src/main/resources/assets/hbm/models/weapons/uzi.obj b/src/main/resources/assets/hbm/models/weapons/uzi.obj new file mode 100644 index 000000000..101594263 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/uzi.obj @@ -0,0 +1,4902 @@ +# Blender v2.79 (sub 0) OBJ File: 'uzi.blend' +# www.blender.org +o GunMirror +v 0.750000 0.000000 3.250000 +v -0.750000 0.000000 3.250000 +v 0.750000 0.000000 -5.500000 +v -0.750000 0.000000 -5.500000 +v 0.750000 1.500000 3.250000 +v -0.750000 1.500000 3.250000 +v 0.750000 1.500000 -5.500000 +v -0.750000 1.500000 -5.500000 +v 0.000000 1.250000 5.500000 +v 0.250000 1.183012 5.500000 +v 0.433013 1.000000 5.500000 +v 0.500000 0.750000 5.500000 +v 0.433013 0.500000 5.500000 +v 0.250000 0.316988 5.500000 +v 0.000000 0.250000 5.500000 +v -0.250000 0.316987 5.500000 +v -0.433012 0.500000 5.500000 +v -0.500000 0.750000 5.500000 +v -0.433013 1.000000 5.500000 +v -0.250000 1.183012 5.500000 +v 0.000000 1.250000 6.375000 +v 0.250000 1.183012 6.375000 +v 0.433013 1.000000 6.375000 +v 0.500000 0.750000 6.375000 +v 0.433013 0.500000 6.375000 +v 0.250000 0.316988 6.375000 +v 0.000000 0.250000 6.375000 +v -0.250000 0.316987 6.375000 +v -0.433012 0.500000 6.375000 +v -0.500000 0.750000 6.375000 +v -0.433013 1.000000 6.375000 +v -0.250000 1.183012 6.375000 +v 0.000000 1.000000 6.375000 +v 0.125000 0.966506 6.375000 +v 0.216506 0.875000 6.375000 +v 0.250000 0.750000 6.375000 +v 0.216506 0.625000 6.375000 +v 0.125000 0.533494 6.375000 +v 0.000000 0.500000 6.375000 +v -0.125000 0.533494 6.375000 +v -0.216506 0.625000 6.375000 +v -0.250000 0.750000 6.375000 +v -0.216506 0.875000 6.375000 +v -0.125000 0.966506 6.375000 +v 0.000000 1.000000 8.375000 +v 0.125000 0.966506 8.375000 +v 0.216506 0.875000 8.375000 +v 0.250000 0.750000 8.375000 +v 0.216506 0.625000 8.375000 +v 0.125000 0.533494 8.375000 +v 0.000000 0.500000 8.375000 +v -0.125000 0.533494 8.375000 +v -0.216506 0.625000 8.375000 +v -0.250000 0.750000 8.375000 +v -0.216506 0.875000 8.375000 +v -0.125000 0.966506 8.375000 +v 0.000000 0.937500 8.375000 +v 0.093750 0.912380 8.375000 +v 0.162380 0.843750 8.375000 +v 0.187500 0.750000 8.375000 +v 0.162380 0.656250 8.375000 +v 0.093750 0.587620 8.375000 +v 0.000000 0.562500 8.375000 +v -0.093750 0.587620 8.375000 +v -0.162380 0.656250 8.375000 +v -0.187500 0.750000 8.375000 +v -0.162380 0.843750 8.375000 +v -0.093750 0.912380 8.375000 +v 0.000000 0.937500 6.375000 +v 0.093750 0.912380 6.375000 +v 0.162380 0.843750 6.375000 +v 0.187500 0.750000 6.375000 +v 0.162380 0.656250 6.375000 +v 0.093750 0.587620 6.375000 +v 0.000000 0.562500 6.375000 +v -0.093750 0.587620 6.375000 +v -0.162380 0.656250 6.375000 +v -0.187500 0.750000 6.375000 +v -0.162380 0.843750 6.375000 +v -0.093750 0.912380 6.375000 +v 0.875000 -0.250000 1.250000 +v -0.875000 -0.250000 1.250000 +v 0.875000 -0.250000 -2.250000 +v -0.875000 -0.250000 -2.250000 +v 0.875000 0.500000 -2.250000 +v 0.875000 0.500000 1.250000 +v -0.875000 0.500000 1.250000 +v -0.875000 0.500000 -2.250000 +v 0.875000 1.000000 1.375000 +v 0.875000 1.000000 3.250000 +v -0.875000 1.000000 3.250000 +v -0.875000 1.000000 1.375000 +v 0.875000 0.125000 3.250000 +v 0.500000 -0.250000 3.250000 +v -0.500000 -0.250000 3.250000 +v -0.875000 0.125000 3.250000 +v 0.500000 -0.250000 1.375000 +v 0.875000 0.125000 1.375000 +v -0.875000 0.125000 1.375000 +v -0.500000 -0.250000 1.375000 +v 0.750000 0.125000 3.625000 +v 0.500000 -0.250000 3.625000 +v -0.750000 1.000000 3.625000 +v 0.750000 1.000000 3.625000 +v 0.625000 0.000000 3.625000 +v -0.625000 0.000000 3.625000 +v 0.625000 1.500000 3.625000 +v -0.625000 1.500000 3.625000 +v 0.625000 0.000000 5.500000 +v -0.625000 0.000000 5.500000 +v 0.625000 1.500000 5.500000 +v -0.625000 1.500000 5.500000 +v -0.750000 0.125000 3.625000 +v -0.500000 -0.250000 3.625000 +v 0.750000 0.125000 5.375000 +v 0.750000 1.000000 5.375000 +v -0.750000 0.125000 5.375000 +v -0.500000 -0.250000 5.375000 +v 0.500000 -0.250000 5.375000 +v -0.750000 1.000000 5.375000 +v 0.750000 1.500000 3.250000 +v 0.750000 1.500000 -3.750000 +v 0.375000 1.500000 3.250000 +v 0.375000 1.500000 -3.750000 +v 0.750000 1.750000 1.250000 +v 0.750000 1.750000 -1.750000 +v 0.375000 1.750000 1.250000 +v 0.375000 1.750000 -1.750000 +v -0.375000 1.500000 3.250000 +v -0.375000 1.500000 -3.750000 +v -0.750000 1.500000 3.250000 +v -0.750000 1.500000 -3.750000 +v -0.375000 1.750000 1.250000 +v -0.375000 1.750000 -1.750000 +v -0.750000 1.750000 1.250000 +v -0.750000 1.750000 -1.750000 +v -0.375000 1.500000 4.562500 +v -0.375000 1.500000 5.437500 +v -0.375000 1.875000 5.437500 +v -0.375000 2.018506 5.404197 +v -0.375000 2.140165 5.309359 +v -0.375000 2.221455 5.167424 +v -0.500000 1.875000 4.562500 +v -0.500000 2.018506 4.595803 +v -0.500000 2.140165 4.690641 +v -0.500000 2.221455 4.832576 +v -0.500000 2.250000 5.000000 +v -0.500000 2.221455 5.167424 +v -0.500000 2.140165 5.309359 +v -0.500000 2.018506 5.404197 +v -0.500000 1.875000 5.437500 +v -0.375000 2.250000 5.000000 +v -0.375000 2.221455 4.832576 +v -0.375000 2.140165 4.690641 +v -0.375000 2.018506 4.595803 +v -0.375000 1.875000 4.562500 +v -0.500000 1.500000 5.437500 +v -0.500000 1.500000 4.562500 +v -0.375000 2.000000 -5.375000 +v -0.375000 2.167424 -5.327425 +v -0.375000 2.309359 -5.191942 +v -0.375000 2.404197 -4.989178 +v -0.375000 2.437500 -4.750000 +v -0.375000 2.404197 -4.510823 +v -0.375000 2.309359 -4.308059 +v -0.375000 2.167424 -4.172575 +v -0.375000 2.000000 -4.125000 +v -0.500000 2.437500 -4.750000 +v -0.500000 2.404197 -4.989178 +v -0.500000 2.309359 -5.191942 +v -0.500000 2.167424 -5.327425 +v -0.500000 2.000000 -5.375000 +v -0.375000 1.500000 -4.125000 +v -0.375000 1.500000 -5.375000 +v -0.500000 2.404197 -4.510823 +v -0.500000 2.309359 -4.308059 +v -0.500000 2.167424 -4.172575 +v -0.500000 2.000000 -4.125000 +v -0.500000 1.500000 -4.125000 +v -0.500000 1.500000 -5.375000 +v 0.750000 1.500000 -1.500000 +v 0.750000 0.750000 -1.500000 +v 0.750000 0.750000 0.125000 +v 0.750000 1.500000 0.125000 +v 0.750000 1.500000 -1.500000 +v 0.750000 1.500000 0.125000 +v 0.750000 1.750000 -1.500000 +v 0.750000 1.750000 0.125000 +v 0.625000 1.500000 -1.500000 +v 0.625000 0.750000 -1.500000 +v 0.625000 0.750000 0.125000 +v 0.625000 1.500000 0.125000 +v -0.375000 -0.250000 -0.250000 +v 0.375000 -0.250000 -0.250000 +v 0.500000 1.500000 -1.500000 +v 0.500000 1.500000 0.125000 +v 0.500000 1.750000 -1.500000 +v 0.500000 1.750000 0.125000 +v 0.375000 -2.750000 -2.000000 +v -0.375000 -2.750000 -2.000000 +v -0.375000 -3.250000 -0.250000 +v -0.375000 -3.250000 -1.500000 +v 0.375000 -3.250000 -0.250000 +v 0.375000 -3.250000 -1.500000 +v 0.375000 -2.000000 -2.000000 +v -0.375000 -2.000000 -2.000000 +v 0.375000 -1.000000 -1.750000 +v -0.375000 -1.000000 -1.750000 +v 0.375000 -0.500000 -2.250000 +v -0.375000 -0.500000 -2.250000 +v 0.375000 -0.250000 -2.250000 +v -0.375000 -0.250000 -2.250000 +v -0.625000 -2.750000 -1.750000 +v -0.625000 -3.250000 -1.250000 +v -0.625000 -3.250000 -0.375000 +v -0.625000 -0.250000 -0.375000 +v -0.625000 -2.000000 -1.750000 +v -0.625000 -1.000000 -1.500000 +v -0.625000 -0.500000 -2.000000 +v -0.625000 -0.250000 -2.000000 +v 0.625000 -3.250000 -1.250000 +v 0.625000 -2.750000 -1.750000 +v 0.625000 -3.250000 -0.375000 +v 0.625000 -0.250000 -0.375000 +v 0.625000 -2.000000 -1.750000 +v 0.625000 -1.000000 -1.500000 +v 0.625000 -0.500000 -2.000000 +v 0.625000 -0.250000 -2.000000 +v 0.250000 0.000000 1.375000 +v -0.250000 0.000000 1.375000 +v 0.250000 0.000000 1.250000 +v -0.250000 0.000000 1.250000 +v 0.250000 -1.250000 1.375000 +v -0.250000 -1.250000 1.375000 +v 0.250000 -1.250000 1.250000 +v -0.250000 -1.250000 1.250000 +v 0.250000 -1.500000 1.000000 +v -0.250000 -1.500000 1.000000 +v 0.250000 -1.625000 1.000000 +v -0.250000 -1.625000 1.000000 +v 0.250000 -1.500000 0.250000 +v -0.250000 -1.500000 0.250000 +v 0.250000 -1.625000 0.250000 +v -0.250000 -1.625000 0.250000 +v 0.250000 -1.250000 -0.250000 +v -0.250000 -1.250000 -0.250000 +v 0.250000 -1.375000 -0.250000 +v -0.250000 -1.375000 -0.250000 +v 0.156250 -0.250000 0.312500 +v -0.156250 -0.250000 0.312500 +v 0.156250 -0.250000 0.187500 +v -0.156250 -0.250000 0.187500 +v 0.156250 -0.875000 0.312500 +v -0.156250 -0.875000 0.312500 +v 0.156250 -0.875000 0.187500 +v -0.156250 -0.875000 0.187500 +v 0.156250 -1.187500 0.562500 +v -0.156250 -1.187500 0.562500 +v 0.375000 1.500000 5.375000 +v -0.375000 1.500000 5.375000 +v 0.375000 1.500000 4.625000 +v -0.375000 1.500000 4.625000 +v 0.375000 1.625000 4.625000 +v 0.375000 1.625000 5.375000 +v -0.375000 1.625000 5.375000 +v -0.375000 1.625000 4.625000 +v 0.000000 1.625000 4.750000 +v 0.176777 1.625000 4.823223 +v 0.250000 1.625000 5.000000 +v 0.176777 1.625000 5.176777 +v 0.000000 1.625000 5.250000 +v -0.176777 1.625000 5.176777 +v -0.250000 1.625000 5.000000 +v -0.176777 1.625000 4.823223 +v 0.000000 1.687500 4.750000 +v 0.176777 1.687500 4.823223 +v 0.250000 1.687500 5.000000 +v 0.176777 1.687500 5.176777 +v 0.000000 1.687500 5.250000 +v -0.176777 1.687500 5.176777 +v -0.250000 1.687500 5.000000 +v -0.176777 1.687500 4.823223 +v 0.062500 1.687500 5.062500 +v -0.062500 1.687500 5.062500 +v 0.062500 1.687500 4.937500 +v -0.062500 1.687500 4.937500 +v 0.062500 2.187500 4.937500 +v 0.062500 2.187500 5.062500 +v -0.062500 2.187500 5.062500 +v -0.062500 2.187500 4.937500 +v 0.250000 1.500000 -4.250000 +v -0.250000 1.500000 -4.250000 +v 0.250000 1.500000 -5.250000 +v -0.250000 1.500000 -5.250000 +v 0.250000 1.750000 -5.250000 +v 0.250000 1.750000 -4.250000 +v -0.250000 1.750000 -4.250000 +v -0.250000 1.750000 -5.250000 +v -0.250000 1.500000 -4.250000 +v -0.250000 1.500000 -5.250000 +v -0.375000 1.500000 -4.250000 +v -0.375000 1.500000 -5.250000 +v -0.375000 2.000000 -4.250000 +v -0.375000 2.000000 -5.250000 +v -0.250000 2.000000 -4.250000 +v -0.250000 2.000000 -5.250000 +v 0.375000 1.500000 -4.250000 +v 0.375000 1.500000 -5.250000 +v 0.250000 1.500000 -4.250000 +v 0.250000 1.500000 -5.250000 +v 0.250000 2.000000 -4.250000 +v 0.250000 2.000000 -5.250000 +v 0.375000 2.000000 -4.250000 +v 0.375000 2.000000 -5.250000 +v 0.187500 1.750000 -4.625000 +v -0.187500 1.750000 -4.625000 +v 0.187500 1.750000 -4.875000 +v -0.187500 1.750000 -4.875000 +v 0.187500 2.250000 -4.875000 +v 0.187500 2.250000 -4.625000 +v -0.187500 2.250000 -4.625000 +v -0.187500 2.250000 -4.875000 +v 0.062500 2.375000 -4.875000 +v 0.062500 2.375000 -4.625000 +v -0.062500 2.375000 -4.625000 +v -0.062500 2.375000 -4.875000 +v 0.125000 2.250000 -4.625000 +v -0.125000 2.250000 -4.625000 +v 0.125000 2.250000 -4.875000 +v -0.125000 2.250000 -4.875000 +v 0.125000 2.125000 -4.625000 +v -0.125000 2.125000 -4.625000 +v 0.125000 2.125000 -4.875000 +v -0.125000 2.125000 -4.875000 +v -0.062500 2.312500 -4.625000 +v -0.062500 2.062500 -4.625000 +v -0.062500 2.312500 -4.875000 +v -0.062500 2.062500 -4.875000 +v 0.062500 2.312500 -4.625000 +v 0.062500 2.062500 -4.625000 +v 0.062500 2.312500 -4.875000 +v 0.062500 2.062500 -4.875000 +v 0.625000 0.000000 -5.500000 +v -0.625000 0.000000 -5.500000 +v 0.625000 1.000000 -5.500000 +v -0.625000 1.000000 -5.500000 +v 0.625000 1.000000 -5.750000 +v 0.625000 0.000000 -5.750000 +v -0.625000 0.000000 -5.750000 +v -0.625000 1.000000 -5.750000 +v 0.625000 0.750000 -6.000000 +v 0.625000 0.250000 -6.000000 +v -0.625000 0.250000 -6.000000 +v -0.625000 0.750000 -6.000000 +v 0.875000 0.312500 -5.875000 +v -0.875000 0.312500 -5.875000 +v 0.875000 0.224112 -5.838388 +v -0.875000 0.224112 -5.838388 +v 0.875000 0.187500 -5.750000 +v -0.875000 0.187500 -5.750000 +v 0.875000 0.224112 -5.661612 +v -0.875000 0.224112 -5.661612 +v 0.875000 0.312500 -5.625000 +v -0.875000 0.312500 -5.625000 +v 0.875000 0.400888 -5.661612 +v -0.875000 0.400888 -5.661612 +v 0.875000 0.437500 -5.750000 +v -0.875000 0.437500 -5.750000 +v 0.875000 0.400888 -5.838388 +v -0.875000 0.400888 -5.838388 +v 0.500000 1.500000 4.562500 +v 0.500000 1.500000 5.437500 +v 0.500000 1.875000 5.437500 +v 0.500000 2.018506 5.404197 +v 0.500000 2.140165 5.309359 +v 0.500000 2.221455 5.167424 +v 0.375000 1.875000 4.562500 +v 0.375000 2.018506 4.595803 +v 0.375000 2.140165 4.690641 +v 0.375000 2.221455 4.832576 +v 0.375000 2.250000 5.000000 +v 0.375000 2.221455 5.167424 +v 0.375000 2.140165 5.309359 +v 0.375000 2.018506 5.404197 +v 0.375000 1.875000 5.437500 +v 0.500000 2.250000 5.000000 +v 0.500000 2.221455 4.832576 +v 0.500000 2.140165 4.690641 +v 0.500000 2.018506 4.595803 +v 0.500000 1.875000 4.562500 +v 0.375000 1.500000 5.437500 +v 0.375000 1.500000 4.562500 +v 0.500000 2.000000 -5.375000 +v 0.500000 2.167424 -5.327425 +v 0.500000 2.309359 -5.191942 +v 0.500000 2.404197 -4.989178 +v 0.500000 2.437500 -4.750000 +v 0.500000 2.404197 -4.510823 +v 0.500000 2.309359 -4.308059 +v 0.500000 2.167424 -4.172575 +v 0.500000 2.000000 -4.125000 +v 0.375000 2.437500 -4.750000 +v 0.375000 2.404197 -4.989178 +v 0.375000 2.309359 -5.191942 +v 0.375000 2.167424 -5.327425 +v 0.375000 2.000000 -5.375000 +v 0.500000 1.500000 -4.125000 +v 0.500000 1.500000 -5.375000 +v 0.375000 2.404197 -4.510823 +v 0.375000 2.309359 -4.308059 +v 0.375000 2.167424 -4.172575 +v 0.375000 2.000000 -4.125000 +v 0.375000 1.500000 -4.125000 +v 0.375000 1.500000 -5.375000 +vt 0.336066 0.391304 +vt 0.049180 0.521739 +vt 0.336066 0.521739 +vt 0.336066 0.260870 +vt 0.049180 0.391304 +vt 0.049180 0.260870 +vt 0.000000 0.130435 +vt -0.000000 0.260870 +vt 0.348361 0.130435 +vt 0.336066 0.000000 +vt 0.336066 0.130435 +vt 0.663934 0.277174 +vt 0.655738 0.260870 +vt 0.655738 0.282609 +vt 0.663934 0.385870 +vt 0.655738 0.369565 +vt 0.655738 0.391304 +vt 0.663934 0.190217 +vt 0.655738 0.173913 +vt 0.655738 0.195652 +vt 0.655738 0.304348 +vt 0.663934 0.288043 +vt 0.663934 0.244565 +vt 0.655738 0.239130 +vt 0.663934 0.353261 +vt 0.655738 0.347826 +vt 0.663934 0.157609 +vt 0.655738 0.152174 +vt 0.663934 0.222826 +vt 0.655738 0.217391 +vt 0.663934 0.342391 +vt 0.655738 0.326087 +vt 0.655738 0.413043 +vt 0.663934 0.396739 +vt 0.663934 0.211957 +vt 0.663934 0.320652 +vt 0.706967 0.510870 +vt 0.704918 0.500000 +vt 0.704918 0.510870 +vt 0.706967 0.565217 +vt 0.704918 0.554348 +vt 0.704918 0.565217 +vt 0.706967 0.543478 +vt 0.704918 0.532609 +vt 0.704918 0.543478 +vt 0.706967 0.597826 +vt 0.704918 0.586957 +vt 0.704918 0.597826 +vt 0.706967 0.489130 +vt 0.704918 0.489130 +vt 0.706967 0.532609 +vt 0.704918 0.521739 +vt 0.706967 0.586957 +vt 0.704918 0.576087 +vt 0.706967 0.478261 +vt 0.704918 0.478261 +vt 0.706967 0.521739 +vt 0.706967 0.576087 +vt 0.704918 0.608696 +vt 0.663102 0.470094 +vt 0.657787 0.445681 +vt 0.652472 0.470094 +vt 0.598361 0.282609 +vt 0.483607 0.434783 +vt 0.598361 0.434783 +vt 0.483607 0.065217 +vt 0.598361 0.217391 +vt 0.598361 0.065217 +vt 0.483607 0.217391 +vt 0.459016 0.065217 +vt 0.459016 0.217391 +vt 0.622951 0.217391 +vt 0.622951 0.065217 +vt 0.483607 0.282609 +vt 0.598361 0.000000 +vt 0.483607 0.000000 +vt 0.663934 -0.000000 +vt 0.725410 0.152174 +vt 0.725410 0.000000 +vt 0.622951 0.119565 +vt 0.622951 0.032609 +vt 0.409836 0.391304 +vt 0.348361 0.260870 +vt 0.348361 0.391304 +vt 0.348361 0.250000 +vt 0.348361 0.510870 +vt 0.409836 0.141304 +vt 0.459016 0.250000 +vt 0.459016 0.141304 +vt 0.409836 0.510870 +vt 0.348361 0.402174 +vt 0.409836 0.130435 +vt 0.348361 -0.000000 +vt 0.409836 0.250000 +vt 0.348361 0.141304 +vt 0.737705 0.141304 +vt 0.823770 0.141304 +vt 0.836066 0.119565 +vt 0.836066 0.032609 +vt 0.795082 0.141304 +vt 0.737705 0.010870 +vt 0.639344 0.510870 +vt 0.475410 0.489130 +vt 0.409836 0.510870 +vt 0.573770 0.456522 +vt 0.536885 0.434783 +vt 0.536885 0.456522 +vt 0.483607 0.434783 +vt 0.475410 0.456522 +vt 0.483607 0.456522 +vt 0.639344 0.586956 +vt 0.475410 0.565217 +vt 0.409836 0.586956 +vt 0.475410 0.532609 +vt 0.639344 0.510870 +vt 0.409836 0.510870 +vt 0.733772 0.750000 +vt 0.747951 0.782232 +vt 0.762129 0.750000 +vt 0.742525 0.779778 +vt 0.737925 0.772791 +vt 0.733772 0.750000 +vt 0.692623 0.798848 +vt 0.713082 0.760865 +vt 0.672164 0.760865 +vt 0.684794 0.795957 +vt 0.678156 0.787723 +vt 0.672164 0.760865 +vt 0.180328 0.065217 +vt 0.049180 0.130435 +vt 0.180328 0.130435 +vt 0.233607 0.065217 +vt 0.233607 0.130435 +vt 0.467213 0.260870 +vt 0.471311 0.326087 +vt 0.471311 0.260870 +vt 0.413934 0.260870 +vt 0.467213 0.250000 +vt 0.413934 0.250000 +vt 0.413934 0.326087 +vt 0.409836 0.260870 +vt 0.409836 0.326087 +vt 0.471311 0.413043 +vt 0.479508 0.434783 +vt 0.479508 0.413043 +vt 0.418033 0.434783 +vt 0.409836 0.413043 +vt 0.409836 0.434783 +vt 0.471311 0.434783 +vt 0.418033 0.413043 +vt 0.483607 0.478261 +vt 0.180328 0.141304 +vt 0.528689 0.695652 +vt 0.536885 0.608696 +vt 0.495902 0.608696 +vt 0.467213 0.326087 +vt 0.717213 0.673913 +vt 0.676230 0.663043 +vt 0.676230 0.673913 +vt 0.717213 0.619565 +vt 0.676230 0.608696 +vt 0.676230 0.619565 +vt 0.733607 0.619565 +vt 0.719262 0.608696 +vt 0.719262 0.673913 +vt 0.733607 0.663043 +vt 0.717213 0.663043 +vt 0.758197 0.673913 +vt 0.733607 0.673913 +vt 0.758197 0.619565 +vt 0.733607 0.608696 +vt 0.774590 0.619565 +vt 0.758197 0.608696 +vt 0.774590 0.663043 +vt 0.758197 0.663043 +vt 0.668033 0.722826 +vt 0.657787 0.777174 +vt 0.668033 0.777174 +vt 0.653689 0.722826 +vt 0.643443 0.777174 +vt 0.653689 0.777174 +vt 0.657787 0.722826 +vt 0.672131 0.722826 +vt 0.672131 0.777174 +vt 0.653689 0.695652 +vt 0.643443 0.722826 +vt 0.657787 0.695652 +vt 0.672131 0.695652 +vt 0.536885 0.478261 +vt 0.573770 0.489130 +vt 0.741803 0.793478 +vt 0.766393 0.858696 +vt 0.766393 0.793478 +vt 0.741803 0.858696 +vt 0.737705 0.793478 +vt 0.737705 0.858696 +vt 0.770492 0.858696 +vt 0.770492 0.793478 +vt 0.813518 0.744565 +vt 0.821721 0.766322 +vt 0.829925 0.744565 +vt 0.651639 0.853261 +vt 0.684426 0.809783 +vt 0.651639 0.809783 +vt 0.829918 0.777174 +vt 0.834016 0.766304 +vt 0.829918 0.766304 +vt 0.838115 0.766304 +vt 0.842213 0.722826 +vt 0.838115 0.722826 +vt 0.834016 0.722826 +vt 0.829918 0.722826 +vt 0.842213 0.766304 +vt 0.846311 0.722826 +vt 0.696721 0.809783 +vt 0.729508 0.853261 +vt 0.729508 0.809783 +vt 0.684426 0.864130 +vt 0.684426 0.853261 +vt 0.684426 0.864130 +vt 0.651639 0.853261 +vt 0.651639 0.864130 +vt 0.696721 0.853261 +vt 0.688525 0.809783 +vt 0.688525 0.853261 +vt 0.737705 0.853261 +vt 0.737705 0.809783 +vt 0.688525 0.809783 +vt 0.647541 0.853261 +vt 0.651639 0.809783 +vt 0.647541 0.809783 +vt 0.647541 0.853261 +vt 0.647541 0.809783 +vt 0.684426 0.853261 +vt 0.688525 0.809783 +vt 0.684426 0.809783 +vt 0.635246 0.842391 +vt 0.631148 0.847826 +vt 0.635246 0.847826 +vt 0.631148 0.842391 +vt 0.627049 0.836957 +vt 0.639344 0.836957 +vt 0.614754 0.847826 +vt 0.610656 0.842391 +vt 0.610656 0.847826 +vt 0.606557 0.836957 +vt 0.608607 0.836957 +vt 0.618852 0.836957 +vt 0.614754 0.842391 +vt 0.608607 0.826087 +vt 0.606557 0.793478 +vt 0.616803 0.826087 +vt 0.618562 0.793404 +vt 0.610656 0.820652 +vt 0.614754 0.820652 +vt 0.637295 0.826087 +vt 0.639344 0.793478 +vt 0.629098 0.826087 +vt 0.627049 0.793478 +vt 0.631148 0.820652 +vt 0.635246 0.820652 +vt 0.643443 0.951087 +vt 0.659836 0.885870 +vt 0.643443 0.907609 +vt 0.602459 0.907609 +vt 0.586066 0.972826 +vt 0.602459 0.951087 +vt 0.524591 0.978309 +vt 0.520510 0.989130 +vt 0.524591 0.999951 +vt 0.524590 0.956569 +vt 0.521705 0.959739 +vt 0.527475 0.975042 +vt 0.733772 0.750000 +vt 0.747951 0.782232 +vt 0.762129 0.750000 +vt 0.742525 0.779778 +vt 0.737925 0.772791 +vt 0.733772 0.750000 +vt 0.692623 0.798848 +vt 0.713082 0.760865 +vt 0.672164 0.760865 +vt 0.684794 0.795957 +vt 0.678156 0.787723 +vt 0.672164 0.760865 +vt 0.663934 0.266304 +vt 0.663934 0.375000 +vt 0.663934 0.179348 +vt 0.663934 0.298913 +vt 0.663934 0.255435 +vt 0.663934 0.364130 +vt 0.663934 0.168478 +vt 0.663934 0.233696 +vt 0.663934 0.331522 +vt 0.663934 0.407609 +vt 0.663934 0.201087 +vt 0.663934 0.309783 +vt 0.706967 0.500000 +vt 0.706967 0.554348 +vt 0.706967 0.608696 +vt 0.654719 0.476052 +vt 0.657787 0.478232 +vt 0.660855 0.476052 +vt 0.663924 0.461957 +vt 0.663102 0.453819 +vt 0.660855 0.447861 +vt 0.654719 0.447861 +vt 0.652472 0.453819 +vt 0.651650 0.461957 +vt 0.663934 0.152174 +vt 0.635246 0.152174 +vt 0.635246 0.000000 +vt 0.409836 0.260870 +vt 0.409836 0.402174 +vt 0.409836 0.000000 +vt 0.823770 0.010870 +vt 0.795082 0.010870 +vt 0.639344 0.434783 +vt 0.409836 0.434783 +vt 0.573770 0.565217 +vt 0.573770 0.532609 +vt 0.734852 0.762334 +vt 0.737925 0.772791 +vt 0.742525 0.779778 +vt 0.753377 0.779778 +vt 0.757977 0.772791 +vt 0.761050 0.762334 +vt 0.762129 0.717768 +vt 0.733772 0.717768 +vt 0.734852 0.762334 +vt 0.733772 0.717768 +vt 0.762129 0.717768 +vt 0.762129 0.750000 +vt 0.761050 0.762334 +vt 0.757977 0.772791 +vt 0.747951 0.782232 +vt 0.753377 0.779778 +vt 0.673721 0.775401 +vt 0.678156 0.787723 +vt 0.684794 0.795957 +vt 0.700452 0.795957 +vt 0.707090 0.787723 +vt 0.711525 0.775401 +vt 0.713082 0.717456 +vt 0.672164 0.717456 +vt 0.673721 0.775401 +vt 0.672164 0.717456 +vt 0.713082 0.717456 +vt 0.713082 0.760865 +vt 0.711525 0.775401 +vt 0.707090 0.787723 +vt 0.692623 0.798848 +vt 0.700452 0.795957 +vt 0.049180 -0.000000 +vt 0.233607 0.141304 +vt 0.536885 0.673913 +vt 0.528689 0.586957 +vt 0.500000 0.586957 +vt 0.495902 0.673913 +vt 0.500000 0.695652 +vt 0.717213 0.608696 +vt 0.731557 0.608696 +vt 0.731557 0.673913 +vt 0.774590 0.608696 +vt 0.774590 0.673913 +vt 0.643443 0.695652 +vt 0.668033 0.695652 +vt 0.827522 0.729181 +vt 0.821721 0.722809 +vt 0.815921 0.729181 +vt 0.815921 0.759950 +vt 0.827522 0.759950 +vt 0.834016 0.777174 +vt 0.846311 0.766304 +vt 0.651639 0.864130 +vt 0.688525 0.853261 +vt 0.688525 0.853261 +vt 0.629098 0.836957 +vt 0.637295 0.836957 +vt 0.616803 0.836957 +vt 0.651639 0.972826 +vt 0.659836 0.972826 +vt 0.651639 0.885870 +vt 0.594262 0.885870 +vt 0.586066 0.885870 +vt 0.594262 0.972826 +vt 0.528671 0.989130 +vt 0.527476 0.981478 +vt 0.521705 0.981478 +vt 0.521705 0.996782 +vt 0.527476 0.996782 +vt 0.520510 0.967391 +vt 0.521705 0.975042 +vt 0.524590 0.978212 +vt 0.528670 0.967391 +vt 0.527475 0.959739 +vt 0.734852 0.762334 +vt 0.737925 0.772791 +vt 0.742525 0.779778 +vt 0.753377 0.779778 +vt 0.757977 0.772791 +vt 0.761050 0.762334 +vt 0.762129 0.717768 +vt 0.733772 0.717768 +vt 0.734852 0.762334 +vt 0.733772 0.717768 +vt 0.762129 0.717768 +vt 0.762129 0.750000 +vt 0.761050 0.762334 +vt 0.757977 0.772791 +vt 0.747951 0.782232 +vt 0.753377 0.779778 +vt 0.673721 0.775401 +vt 0.678156 0.787723 +vt 0.684794 0.795957 +vt 0.700452 0.795957 +vt 0.707090 0.787723 +vt 0.711525 0.775401 +vt 0.713082 0.717456 +vt 0.672164 0.717456 +vt 0.673721 0.775401 +vt 0.672164 0.717456 +vt 0.713082 0.717456 +vt 0.713082 0.760865 +vt 0.711525 0.775401 +vt 0.707090 0.787723 +vt 0.692623 0.798848 +vt 0.700452 0.795957 +vt 0.627049 0.217391 +vt 0.627049 0.239130 +vt 0.627049 0.326087 +vt 0.627049 0.347826 +vt 0.627049 0.391304 +vt 0.627049 0.413043 +vt 0.627049 0.195652 +vt 0.627049 0.304348 +vt 0.627049 0.260870 +vt 0.627049 0.282609 +vt 0.627049 0.369565 +vt 0.627049 0.173913 +vt 0.627049 0.152174 +vt 0.639344 0.554348 +vt 0.639344 0.565217 +vt 0.639344 0.532609 +vt 0.639344 0.543478 +vt 0.639344 0.586957 +vt 0.639344 0.597826 +vt 0.639344 0.489130 +vt 0.639344 0.500000 +vt 0.639344 0.521739 +vt 0.639344 0.576087 +vt 0.639344 0.478261 +vt 0.639344 0.510870 +vt 0.639344 0.608696 +vt 0.772541 0.510870 +vt 0.772541 0.565217 +vt 0.772541 0.543478 +vt 0.772541 0.597826 +vt 0.772541 0.500000 +vt 0.772541 0.554348 +vt 0.772541 0.532609 +vt 0.772541 0.586957 +vt 0.772541 0.489130 +vt 0.772541 0.521739 +vt 0.772541 0.576087 +vt 0.772541 0.608696 +vt 0.725410 0.271739 +vt 0.737705 0.233696 +vt 0.725410 0.228261 +vt 0.663934 0.358696 +vt 0.725410 0.358696 +vt 0.663934 0.228261 +vt 0.663934 0.402174 +vt 0.663934 0.271739 +vt 0.663934 0.478261 +vt 0.725410 0.402174 +vt 0.795082 0.271739 +vt 0.737705 0.271739 +vt 0.737705 0.396739 +vt 0.737705 0.478261 +vt 0.725410 0.478261 +vt 0.737705 0.228261 +vt 0.737705 0.358696 +vt 0.795082 0.228261 +vt 0.737705 0.152174 +vt 0.795082 0.396739 +vt 0.795082 0.478261 +vt 0.737705 0.402174 +vt 0.795082 0.358696 +vt 0.639344 0.489130 +vt 0.639344 0.456522 +vt 0.409836 0.456522 +vt 0.409836 0.489130 +vt 0.639344 0.565217 +vt 0.639344 0.532609 +vt 0.409836 0.532609 +vt 0.409836 0.565217 +vt 0.741803 0.782609 +vt 0.735656 0.793478 +vt 0.741803 0.793478 +vt 0.760246 0.782609 +vt 0.754098 0.793478 +vt 0.760246 0.793478 +vt 0.725410 0.782609 +vt 0.713115 0.793478 +vt 0.725410 0.793478 +vt 0.735656 0.782609 +vt 0.729508 0.793478 +vt 0.754098 0.782609 +vt 0.747951 0.793478 +vt 0.782787 0.782609 +vt 0.770492 0.793478 +vt 0.782787 0.793478 +vt 0.770492 0.782609 +vt 0.766393 0.793478 +vt 0.729508 0.782609 +vt 0.747951 0.782609 +vt 0.766393 0.782609 +vt 0.709016 0.809783 +vt 0.715164 0.798913 +vt 0.709016 0.798913 +vt 0.684426 0.809783 +vt 0.692623 0.798913 +vt 0.684426 0.798913 +vt 0.663934 0.809783 +vt 0.670082 0.798913 +vt 0.663934 0.798913 +vt 0.715164 0.809783 +vt 0.721311 0.798913 +vt 0.721311 0.809783 +vt 0.737705 0.798913 +vt 0.692623 0.809783 +vt 0.700820 0.798913 +vt 0.670082 0.809783 +vt 0.676230 0.798913 +vt 0.647541 0.809783 +vt 0.647541 0.798913 +vt 0.700820 0.809783 +vt 0.676230 0.809783 +vt 0.561475 0.934783 +vt 0.586066 0.891304 +vt 0.561475 0.891304 +vt 0.491803 0.695652 +vt 0.467213 0.956522 +vt 0.491803 0.956522 +vt 0.561475 0.804348 +vt 0.586066 0.739130 +vt 0.561475 0.739130 +vt 0.586066 0.695652 +vt 0.561475 0.695652 +vt 0.586066 0.804348 +vt 0.561475 0.956522 +vt 0.586066 0.934783 +vt 0.545082 0.739130 +vt 0.553279 0.804348 +vt 0.553279 0.739130 +vt 0.553279 0.956522 +vt 0.561475 0.934783 +vt 0.561475 0.956522 +vt 0.545082 0.804348 +vt 0.545082 0.891304 +vt 0.553279 0.934783 +vt 0.500000 0.956522 +vt 0.536885 0.695652 +vt 0.528689 0.695652 +vt 0.545082 0.804348 +vt 0.500000 0.695652 +vt 0.459016 0.695652 +vt 0.467213 0.695652 +vt 0.545082 0.891304 +vt 0.553279 0.804348 +vt 0.553279 0.934783 +vt 0.545082 0.739130 +vt 0.536885 0.695652 +vt 0.553279 0.739130 +vt 0.536885 0.891304 +vt 0.538934 0.891304 +vt 0.717213 0.717391 +vt 0.676230 0.717391 +vt 0.731557 0.717391 +vt 0.719262 0.717391 +vt 0.758197 0.717391 +vt 0.733607 0.717391 +vt 0.774590 0.717391 +vt 0.793033 0.755435 +vt 0.799180 0.750000 +vt 0.793033 0.750000 +vt 0.780738 0.755435 +vt 0.786885 0.750000 +vt 0.780738 0.750000 +vt 0.768443 0.755435 +vt 0.774590 0.750000 +vt 0.768443 0.750000 +vt 0.805328 0.755435 +vt 0.811475 0.750000 +vt 0.805328 0.750000 +vt 0.786885 0.755435 +vt 0.774590 0.755435 +vt 0.762295 0.755435 +vt 0.762295 0.750000 +vt 0.799180 0.755435 +vt 0.606557 0.853261 +vt 0.598361 0.847826 +vt 0.598361 0.853261 +vt 0.647541 0.793478 +vt 0.627049 0.858696 +vt 0.618852 0.847826 +vt 0.618852 0.858696 +vt 0.639344 0.847826 +vt 0.647541 0.836957 +vt 0.606557 0.798913 +vt 0.598361 0.788043 +vt 0.598361 0.798913 +vt 0.598361 0.804348 +vt 0.606557 0.815217 +vt 0.606557 0.804348 +vt 0.606557 0.847826 +vt 0.598361 0.836957 +vt 0.598361 0.831522 +vt 0.606557 0.836957 +vt 0.606557 0.831522 +vt 0.598361 0.820652 +vt 0.606557 0.820652 +vt 0.598361 0.815217 +vt 0.500000 0.956522 +vt 0.643443 0.972826 +vt 0.602459 0.994565 +vt 0.643443 0.994565 +vt 0.602459 0.885870 +vt 0.643443 0.864130 +vt 0.602459 0.864130 +vt 0.602459 0.972826 +vt 0.643443 0.885870 +vt 0.586066 0.961957 +vt 0.528689 0.967391 +vt 0.586066 0.967391 +vt 0.586066 0.956522 +vt 0.528689 0.961957 +vt 0.586066 0.994565 +vt 0.528689 1.000000 +vt 0.586066 1.000000 +vt 0.586066 0.989130 +vt 0.528689 0.994565 +vt 0.586066 0.983696 +vt 0.528689 0.989130 +vt 0.586066 0.978261 +vt 0.528689 0.983696 +vt 0.586066 0.972826 +vt 0.528689 0.978261 +vt 0.528689 0.972826 +vt 0.553279 0.956522 +vt 0.741803 0.782609 +vt 0.735656 0.793478 +vt 0.741803 0.793478 +vt 0.760246 0.782609 +vt 0.754098 0.793478 +vt 0.760246 0.793478 +vt 0.725410 0.782609 +vt 0.713115 0.793478 +vt 0.725410 0.793478 +vt 0.735656 0.782609 +vt 0.729508 0.793478 +vt 0.754098 0.782609 +vt 0.747951 0.793478 +vt 0.782787 0.782609 +vt 0.770492 0.793478 +vt 0.782787 0.793478 +vt 0.770492 0.782609 +vt 0.766393 0.793478 +vt 0.729508 0.782609 +vt 0.747951 0.782609 +vt 0.766393 0.782609 +vt 0.709016 0.809783 +vt 0.715164 0.798913 +vt 0.709016 0.798913 +vt 0.684426 0.809783 +vt 0.692623 0.798913 +vt 0.684426 0.798913 +vt 0.663934 0.809783 +vt 0.670082 0.798913 +vt 0.663934 0.798913 +vt 0.715164 0.809783 +vt 0.721311 0.798913 +vt 0.721311 0.809783 +vt 0.737705 0.798913 +vt 0.692623 0.809783 +vt 0.700820 0.798913 +vt 0.670082 0.809783 +vt 0.676230 0.798913 +vt 0.647541 0.809783 +vt 0.647541 0.798913 +vt 0.700820 0.809783 +vt 0.676230 0.809783 +vt 0.772541 0.478261 +vt 0.795082 0.233696 +vt 0.795082 0.152174 +vt 0.795082 0.402174 +vt 0.713115 0.782609 +vt 0.737705 0.809783 +vt 0.586066 0.956522 +vt 0.459016 0.956522 +vt 0.811475 0.755435 +vt 0.627049 0.847826 +vt 0.647541 0.847826 +vt 0.606557 0.788043 +vt 0.528689 0.956522 +vt 0.713115 0.782609 +vt 0.737705 0.809783 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9487 0.0000 0.3162 +vn -0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.9487 0.0000 0.3162 +vn 0.0000 0.6247 0.7809 +vn 0.0000 -0.7682 -0.6402 +vn 0.8660 0.5000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.4072 -0.9129 0.0287 +vn -0.9363 -0.3291 0.1225 +vn -0.9188 -0.3671 0.1452 +vn 0.3827 -0.9239 0.0000 +vn 0.4072 -0.9129 0.0287 +vn -0.9871 0.0000 0.1602 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.9188 -0.3671 0.1452 +vn -0.4719 -0.8817 0.0000 +vn 0.9363 -0.3291 0.1225 +vn 0.9871 0.0000 0.1602 +vn 0.4719 -0.8817 0.0000 +vn -0.9571 -0.2898 0.0000 +vn 0.9571 -0.2898 0.0000 +vn 0.0000 0.9923 0.1240 +vn 0.0000 0.9923 -0.1240 +vn 0.0000 0.9981 0.0621 +vn 0.0000 0.9981 -0.0621 +vn 0.0000 0.9412 -0.3377 +vn 0.0000 0.7555 -0.6552 +vn 0.0000 0.7555 0.6552 +vn 0.0000 0.9412 0.3377 +vn 0.0000 0.1138 -0.9935 +vn 0.0000 0.4305 -0.9026 +vn 0.0000 0.1138 0.9935 +vn 0.0000 0.4305 0.9026 +vn 0.0000 0.8121 0.5835 +vn 0.0000 0.4965 0.8681 +vn 0.0000 0.9588 -0.2840 +vn 0.0000 0.1380 -0.9904 +vn 0.0000 0.4964 -0.8681 +vn 0.0000 0.1380 0.9904 +vn 0.0000 0.9588 0.2840 +vn 0.0000 0.8121 -0.5835 +vn -0.3416 -0.3416 -0.8756 +vn 0.4148 -0.2800 -0.8658 +vn -0.4148 -0.2800 -0.8658 +vn -0.2298 0.0000 0.9732 +vn 0.2298 0.0000 0.9732 +vn -0.3711 0.1112 -0.9219 +vn 0.3416 -0.3416 -0.8756 +vn 0.3458 -0.6635 -0.6635 +vn -0.3458 -0.6635 -0.6635 +vn 0.3711 0.1112 -0.9219 +vn -0.3827 0.0000 -0.9239 +vn -0.8727 -0.2257 -0.4330 +vn 0.9239 0.0000 -0.3827 +vn 0.3827 0.0000 -0.9239 +vn -0.9607 -0.1962 -0.1962 +vn -0.9123 0.0530 -0.4062 +vn -0.8507 0.0000 0.5257 +vn 0.9607 -0.1962 -0.1962 +vn 0.9123 0.0530 -0.4062 +vn 0.8507 0.0000 0.5257 +vn 0.8727 -0.2257 -0.4330 +vn -0.9626 -0.0605 -0.2642 +vn 0.9626 -0.0605 -0.2642 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.9732 -0.2298 +vn 0.0000 0.9732 0.2298 +vn 0.0000 0.8944 0.4472 +vn 0.0000 -0.8944 -0.4472 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.9239 0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.9239 0.0000 -0.3827 +s off +f 2/1/1 3/2/1 1/3/1 +f 6/4/2 4/5/2 2/1/2 +f 8/6/3 3/7/3 4/8/3 +f 107/9/4 1/10/4 5/11/4 +f 33/12/5 22/13/5 21/14/5 +f 40/15/5 29/16/5 28/17/5 +f 37/18/5 26/19/5 25/20/5 +f 32/21/5 33/22/5 21/14/5 +f 22/13/5 35/23/5 23/24/5 +f 29/16/5 42/25/5 30/26/5 +f 26/19/5 39/27/5 27/28/5 +f 23/24/5 36/29/5 24/30/5 +f 42/31/5 31/32/5 30/26/5 +f 27/33/5 40/34/5 28/17/5 +f 36/35/5 25/20/5 24/30/5 +f 43/36/5 32/21/5 31/32/5 +f 60/37/5 49/38/5 48/39/5 +f 67/40/5 56/41/5 55/42/5 +f 57/43/5 46/44/5 45/45/5 +f 64/46/5 53/47/5 52/48/5 +f 49/38/5 62/49/5 50/50/5 +f 56/41/5 57/43/5 45/45/5 +f 58/51/5 47/52/5 46/44/5 +f 65/53/5 54/54/5 53/47/5 +f 50/50/5 63/55/5 51/56/5 +f 59/57/5 48/39/5 47/52/5 +f 66/58/5 55/42/5 54/54/5 +f 51/59/5 64/46/5 52/48/5 +f 79/60/5 75/61/5 71/62/5 +f 82/63/1 83/64/1 81/65/1 +f 85/66/6 87/67/6 86/68/6 +f 88/69/3 83/70/3 84/71/3 +f 86/68/5 82/72/5 81/73/5 +f 87/67/2 84/74/2 82/63/2 +f 85/66/7 81/75/7 83/76/7 +f 89/77/6 91/78/6 90/79/6 +f 100/80/3 89/77/3 97/81/3 +f 110/82/2 108/83/2 106/84/2 +f 106/84/8 6/4/8 2/1/8 +f 108/85/6 5/11/6 6/4/6 +f 105/86/1 2/1/1 1/3/1 +f 111/87/5 110/88/5 109/89/5 +f 109/90/1 106/91/1 105/86/1 +f 111/92/7 105/93/7 107/9/7 +f 112/94/6 107/95/6 108/85/6 +f 103/96/6 90/79/6 91/78/6 +f 117/97/5 118/98/5 119/99/5 +f 120/100/6 104/101/6 103/96/6 +f 123/102/2 128/103/2 124/104/2 +f 125/105/7 186/106/7 188/107/7 +f 185/108/7 126/109/7 187/110/7 +f 131/111/2 136/112/2 132/113/2 +f 134/114/7 129/115/7 130/116/7 +f 156/117/7 152/118/7 139/119/7 +f 146/120/2 145/121/2 143/122/2 +f 163/123/7 167/124/7 159/125/7 +f 169/126/2 170/127/2 172/128/2 +f 182/129/7 7/130/7 181/131/7 +f 1/10/7 182/129/7 183/132/7 +f 5/11/7 183/132/7 184/133/7 +f 191/134/3 184/135/3 183/136/3 +f 190/137/6 183/138/6 182/139/6 +f 189/140/5 182/141/5 181/142/5 +f 196/143/3 188/144/3 186/145/3 +f 197/146/5 185/147/5 187/148/5 +f 198/149/7 195/150/7 197/146/7 +f 126/109/6 197/151/6 187/110/6 +f 189/152/6 7/130/6 8/6/6 +f 214/153/1 204/154/1 203/155/1 +f 192/156/7 190/137/7 189/140/7 +f 236/157/2 230/158/2 232/159/2 +f 233/160/7 231/161/7 229/162/7 +f 239/163/7 235/164/7 233/160/7 +f 236/165/2 240/166/2 234/167/2 +f 242/168/2 240/166/2 238/169/2 +f 243/170/7 237/171/7 239/163/7 +f 247/172/7 241/173/7 243/170/7 +f 242/168/2 248/174/2 244/175/2 +f 255/176/3 252/177/3 251/178/3 +f 254/179/5 249/180/5 250/181/5 +f 256/182/2 250/181/2 252/177/2 +f 253/183/7 251/178/7 249/184/7 +f 258/185/9 253/186/9 254/179/9 +f 255/176/10 258/187/10 256/182/10 +f 253/183/7 257/188/7 255/176/7 +f 254/179/2 256/182/2 258/185/2 +f 128/103/6 198/189/6 197/151/6 +f 125/105/6 198/189/6 127/190/6 +f 263/191/6 265/192/6 264/193/6 +f 266/194/3 261/195/3 262/196/3 +f 264/193/5 260/197/5 259/198/5 +f 281/199/6 279/200/6 277/201/6 +f 306/202/7 299/203/7 300/204/7 +f 287/205/6 289/206/6 288/207/6 +f 290/208/3 285/209/3 286/210/3 +f 288/207/5 284/211/5 283/212/5 +f 289/206/2 286/210/2 284/211/2 +f 287/213/7 283/214/7 285/209/7 +f 295/215/6 297/216/6 296/217/6 +f 306/202/6 303/218/6 305/219/6 +f 314/220/6 311/221/6 313/222/6 +f 298/223/3 293/224/3 294/225/3 +f 296/217/5 292/226/5 291/227/5 +f 305/219/5 301/228/5 299/203/5 +f 313/229/5 309/230/5 307/231/5 +f 304/232/3 300/204/3 302/233/3 +f 312/234/3 308/235/3 310/236/3 +f 310/236/2 311/221/2 312/234/2 +f 341/237/3 326/238/3 323/239/3 +f 337/240/3 322/241/3 326/238/3 +f 319/242/3 341/237/3 323/239/3 +f 325/243/5 339/244/5 324/245/5 +f 320/246/5 339/244/5 327/247/5 +f 321/248/5 335/249/5 325/243/5 +f 320/246/5 331/250/5 315/251/5 +f 332/252/5 321/248/5 316/253/5 +f 340/254/5 336/255/5 316/253/5 +f 333/256/3 319/242/3 317/257/3 +f 322/241/3 334/258/3 318/259/3 +f 338/260/3 342/261/3 317/257/3 +f 351/262/7 343/263/7 352/264/7 +f 353/265/2 346/266/2 354/267/2 +f 360/268/2 364/269/2 368/270/2 +f 359/271/7 357/272/7 365/273/7 +f 390/274/7 386/275/7 373/276/7 +f 380/277/2 379/278/2 377/279/2 +f 397/280/7 401/281/7 393/282/7 +f 403/283/2 404/284/2 406/285/2 +f 2/1/1 4/5/1 3/2/1 +f 6/4/2 8/6/2 4/5/2 +f 8/6/3 7/130/3 3/7/3 +f 107/9/4 105/93/4 1/10/4 +f 33/12/5 34/286/5 22/13/5 +f 40/15/5 41/287/5 29/16/5 +f 37/18/5 38/288/5 26/19/5 +f 32/21/5 44/289/5 33/22/5 +f 22/13/5 34/290/5 35/23/5 +f 29/16/5 41/291/5 42/25/5 +f 26/19/5 38/292/5 39/27/5 +f 23/24/5 35/293/5 36/29/5 +f 42/31/5 43/294/5 31/32/5 +f 27/33/5 39/295/5 40/34/5 +f 36/35/5 37/296/5 25/20/5 +f 43/36/5 44/297/5 32/21/5 +f 60/37/5 61/298/5 49/38/5 +f 67/40/5 68/299/5 56/41/5 +f 57/43/5 58/51/5 46/44/5 +f 64/46/5 65/53/5 53/47/5 +f 49/38/5 61/298/5 62/49/5 +f 56/41/5 68/299/5 57/43/5 +f 58/51/5 59/57/5 47/52/5 +f 65/53/5 66/58/5 54/54/5 +f 50/50/5 62/49/5 63/55/5 +f 59/57/5 60/37/5 48/39/5 +f 66/58/5 67/40/5 55/42/5 +f 51/59/5 63/300/5 64/46/5 +f 71/62/5 70/301/5 79/60/5 +f 70/301/5 69/302/5 79/60/5 +f 69/302/5 80/303/5 79/60/5 +f 79/60/5 78/304/5 77/305/5 +f 77/305/5 76/306/5 75/61/5 +f 75/61/5 74/307/5 71/62/5 +f 74/307/5 73/308/5 71/62/5 +f 73/308/5 72/309/5 71/62/5 +f 79/60/5 77/305/5 75/61/5 +f 82/63/1 84/74/1 83/64/1 +f 85/66/6 88/69/6 87/67/6 +f 88/69/3 85/66/3 83/70/3 +f 86/68/5 87/67/5 82/72/5 +f 87/67/2 88/69/2 84/74/2 +f 85/66/7 86/68/7 81/75/7 +f 89/77/6 92/310/6 91/78/6 +f 100/80/3 99/311/3 92/310/3 +f 92/310/3 89/77/3 100/80/3 +f 89/77/3 98/312/3 97/81/3 +f 110/82/2 112/313/2 108/83/2 +f 106/84/8 108/83/8 6/4/8 +f 108/85/6 107/95/6 5/11/6 +f 105/86/1 106/91/1 2/1/1 +f 111/87/5 112/94/5 110/88/5 +f 109/90/1 110/314/1 106/91/1 +f 111/92/7 109/315/7 105/93/7 +f 112/94/6 111/87/6 107/95/6 +f 103/96/6 104/101/6 90/79/6 +f 119/99/5 115/316/5 117/97/5 +f 115/316/5 116/317/5 117/97/5 +f 116/317/5 120/100/5 117/97/5 +f 120/100/6 116/317/6 104/101/6 +f 123/102/2 127/190/2 128/103/2 +f 125/105/7 121/318/7 186/106/7 +f 185/108/7 122/319/7 126/109/7 +f 131/111/2 135/320/2 136/112/2 +f 134/114/7 133/321/7 129/115/7 +f 156/117/7 155/322/7 154/323/7 +f 154/323/7 153/324/7 156/117/7 +f 153/324/7 152/118/7 156/117/7 +f 152/118/7 142/325/7 139/119/7 +f 142/325/7 141/326/7 139/119/7 +f 141/326/7 140/327/7 139/119/7 +f 139/119/7 138/328/7 137/329/7 +f 137/329/7 156/117/7 139/119/7 +f 145/121/2 144/330/2 143/122/2 +f 143/122/2 158/331/2 157/332/2 +f 157/332/2 151/333/2 143/122/2 +f 151/333/2 150/334/2 149/335/2 +f 143/122/2 151/333/2 147/336/2 +f 149/335/2 148/337/2 151/333/2 +f 148/337/2 147/336/2 151/333/2 +f 147/336/2 146/120/2 143/122/2 +f 159/125/7 160/338/7 161/339/7 +f 161/339/7 162/340/7 159/125/7 +f 162/340/7 163/123/7 159/125/7 +f 163/123/7 164/341/7 167/124/7 +f 164/341/7 165/342/7 167/124/7 +f 165/342/7 166/343/7 167/124/7 +f 167/124/7 173/344/7 174/345/7 +f 174/345/7 159/125/7 167/124/7 +f 170/127/2 171/346/2 172/128/2 +f 172/128/2 180/347/2 179/348/2 +f 179/348/2 178/349/2 172/128/2 +f 178/349/2 177/350/2 176/351/2 +f 172/128/2 178/349/2 168/352/2 +f 176/351/2 175/353/2 178/349/2 +f 175/353/2 168/352/2 178/349/2 +f 168/352/2 169/126/2 172/128/2 +f 182/129/7 3/354/7 7/130/7 +f 1/10/7 3/354/7 182/129/7 +f 5/11/7 1/10/7 183/132/7 +f 191/134/3 192/156/3 184/135/3 +f 190/137/6 191/134/6 183/138/6 +f 189/140/5 190/137/5 182/141/5 +f 196/143/3 198/149/3 188/144/3 +f 197/146/5 195/150/5 185/147/5 +f 198/149/7 196/143/7 195/150/7 +f 126/109/6 128/103/6 197/151/6 +f 8/6/6 6/4/6 189/152/6 +f 6/4/6 5/11/6 192/355/6 +f 5/11/6 184/133/6 192/355/6 +f 189/152/6 181/131/6 7/130/6 +f 6/4/6 192/355/6 189/152/6 +f 214/153/1 202/356/1 204/154/1 +f 204/154/1 221/357/1 203/155/1 +f 221/357/1 223/358/1 203/155/1 +f 203/155/1 201/359/1 214/153/1 +f 201/359/1 215/360/1 214/153/1 +f 192/156/7 191/134/7 190/137/7 +f 236/157/2 234/167/2 230/158/2 +f 233/160/7 235/361/7 231/161/7 +f 239/163/7 237/362/7 235/164/7 +f 236/165/2 238/363/2 240/166/2 +f 242/168/2 244/175/2 240/166/2 +f 243/170/7 241/173/7 237/171/7 +f 247/172/7 245/364/7 241/173/7 +f 242/168/2 246/365/2 248/174/2 +f 255/176/3 256/182/3 252/177/3 +f 254/179/5 253/186/5 249/180/5 +f 256/182/2 254/179/2 250/181/2 +f 253/183/7 255/176/7 251/178/7 +f 258/185/9 257/366/9 253/186/9 +f 255/176/10 257/367/10 258/187/10 +f 128/103/6 127/190/6 198/189/6 +f 125/105/6 188/107/6 198/189/6 +f 263/191/6 266/194/6 265/192/6 +f 266/194/3 263/191/3 261/195/3 +f 264/193/5 265/192/5 260/197/5 +f 277/201/6 276/368/6 275/369/6 +f 275/369/6 282/370/6 281/199/6 +f 281/199/6 280/371/6 279/200/6 +f 279/200/6 278/372/6 277/201/6 +f 277/201/6 275/369/6 281/199/6 +f 306/202/7 305/219/7 299/203/7 +f 287/205/6 290/373/6 289/206/6 +f 290/208/3 287/213/3 285/209/3 +f 288/207/5 289/206/5 284/211/5 +f 289/206/2 290/208/2 286/210/2 +f 287/213/7 288/374/7 283/214/7 +f 295/215/6 298/223/6 297/216/6 +f 306/202/6 304/375/6 303/218/6 +f 314/220/6 312/234/6 311/221/6 +f 298/223/3 295/215/3 293/224/3 +f 296/217/5 297/216/5 292/226/5 +f 305/219/5 303/376/5 301/228/5 +f 313/229/5 311/221/5 309/230/5 +f 304/232/3 306/202/3 300/204/3 +f 312/234/3 314/377/3 308/235/3 +f 310/236/2 309/230/2 311/221/2 +f 341/237/3 337/240/3 326/238/3 +f 337/240/3 330/378/3 322/241/3 +f 319/242/3 329/379/3 341/237/3 +f 325/243/5 335/249/5 339/244/5 +f 320/246/5 324/245/5 339/244/5 +f 321/248/5 328/380/5 335/249/5 +f 320/246/5 327/247/5 331/250/5 +f 332/252/5 328/380/5 321/248/5 +f 336/255/5 332/252/5 316/253/5 +f 316/253/5 315/251/5 340/254/5 +f 315/251/5 331/250/5 340/254/5 +f 333/256/3 329/379/3 319/242/3 +f 322/241/3 330/378/3 334/258/3 +f 342/261/3 333/256/3 317/257/3 +f 317/257/3 318/259/3 338/260/3 +f 318/259/3 334/258/3 338/260/3 +f 351/262/7 347/381/7 345/382/7 +f 345/382/7 343/263/7 351/262/7 +f 343/263/7 348/383/7 352/264/7 +f 353/265/2 349/384/2 344/385/2 +f 344/385/2 346/266/2 353/265/2 +f 346/266/2 350/386/2 354/267/2 +f 356/387/2 358/388/2 360/268/2 +f 360/268/2 362/389/2 364/269/2 +f 364/269/2 366/390/2 368/270/2 +f 368/270/2 370/391/2 356/387/2 +f 356/387/2 360/268/2 368/270/2 +f 357/272/7 355/392/7 369/393/7 +f 369/393/7 367/394/7 357/272/7 +f 367/394/7 365/273/7 357/272/7 +f 365/273/7 363/395/7 361/396/7 +f 361/396/7 359/271/7 365/273/7 +f 390/274/7 389/397/7 388/398/7 +f 388/398/7 387/399/7 390/274/7 +f 387/399/7 386/275/7 390/274/7 +f 386/275/7 376/400/7 373/276/7 +f 376/400/7 375/401/7 373/276/7 +f 375/401/7 374/402/7 373/276/7 +f 373/276/7 372/403/7 371/404/7 +f 371/404/7 390/274/7 373/276/7 +f 379/278/2 378/405/2 377/279/2 +f 377/279/2 392/406/2 391/407/2 +f 391/407/2 385/408/2 377/279/2 +f 385/408/2 384/409/2 383/410/2 +f 377/279/2 385/408/2 381/411/2 +f 383/410/2 382/412/2 385/408/2 +f 382/412/2 381/411/2 385/408/2 +f 381/411/2 380/277/2 377/279/2 +f 393/282/7 394/413/7 395/414/7 +f 395/414/7 396/415/7 393/282/7 +f 396/415/7 397/280/7 393/282/7 +f 397/280/7 398/416/7 401/281/7 +f 398/416/7 399/417/7 401/281/7 +f 399/417/7 400/418/7 401/281/7 +f 401/281/7 407/419/7 408/420/7 +f 408/420/7 393/282/7 401/281/7 +f 404/284/2 405/421/2 406/285/2 +f 406/285/2 414/422/2 413/423/2 +f 413/423/2 412/424/2 406/285/2 +f 412/424/2 411/425/2 410/426/2 +f 406/285/2 412/424/2 402/427/2 +f 410/426/2 409/428/2 412/424/2 +f 409/428/2 402/427/2 412/424/2 +f 402/427/2 403/283/2 406/285/2 +s 1 +f 23/24/11 12/429/7 11/430/11 +f 30/26/2 19/431/12 18/432/2 +f 27/33/1 16/433/13 15/434/1 +f 24/30/7 13/435/14 12/429/7 +f 31/32/12 20/436/15 19/431/12 +f 21/14/6 10/437/16 9/438/6 +f 28/17/13 17/439/17 16/433/13 +f 25/20/14 14/440/18 13/435/14 +f 32/21/15 9/438/6 20/436/15 +f 22/13/16 11/430/11 10/437/16 +f 29/16/17 18/432/2 17/439/17 +f 26/19/18 15/441/1 14/440/18 +f 55/42/12 44/442/15 43/443/12 +f 45/45/6 34/444/16 33/445/6 +f 52/48/13 41/446/17 40/447/13 +f 49/38/14 38/448/18 37/449/14 +f 56/41/15 33/445/6 44/442/15 +f 46/44/16 35/450/11 34/444/16 +f 53/47/17 42/451/2 41/446/17 +f 50/50/18 39/452/1 38/448/18 +f 47/52/11 36/453/7 35/450/11 +f 54/54/2 43/443/12 42/451/2 +f 51/59/1 40/447/13 39/454/1 +f 48/39/7 37/449/14 36/453/7 +f 72/455/2 61/298/12 60/37/2 +f 79/456/14 68/299/18 67/40/14 +f 69/457/1 58/51/13 57/43/1 +f 76/458/16 65/53/11 64/46/16 +f 73/459/12 62/49/15 61/298/12 +f 80/460/18 57/43/1 68/299/18 +f 70/461/13 59/57/17 58/51/13 +f 77/462/11 66/58/7 65/53/11 +f 74/463/15 63/55/6 62/49/15 +f 71/464/17 60/37/2 59/57/17 +f 78/465/7 67/40/14 66/58/7 +f 75/466/6 64/46/16 63/300/6 +f 95/467/19 113/468/20 96/469/21 +f 95/467/19 97/470/22 94/471/23 +f 91/78/24 99/472/25 96/469/21 +f 98/473/26 94/471/23 97/470/22 +f 96/469/21 100/474/27 95/467/19 +f 89/475/7 93/476/28 98/473/26 +f 118/477/29 113/468/20 114/478/29 +f 101/479/30 94/471/23 93/476/28 +f 104/480/31 93/476/28 90/481/31 +f 113/482/20 91/78/24 96/469/21 +f 102/483/32 95/467/19 94/471/23 +f 117/484/33 103/485/24 113/482/20 +f 115/486/34 102/483/32 101/479/30 +f 116/487/7 101/488/30 104/480/31 +f 119/489/32 114/478/29 102/483/32 +f 125/105/35 123/490/35 121/491/35 +f 128/103/36 122/492/36 124/493/36 +f 133/321/37 131/494/35 129/495/35 +f 136/112/38 130/496/36 132/497/36 +f 136/112/38 133/321/37 134/114/38 +f 153/498/39 145/499/40 146/500/39 +f 141/501/41 148/502/42 149/503/41 +f 156/504/43 158/505/3 143/506/43 +f 154/507/40 144/508/44 145/499/40 +f 142/509/42 147/510/6 148/502/42 +f 138/511/5 151/512/45 157/513/5 +f 139/514/45 150/515/46 151/512/45 +f 155/516/44 143/506/43 144/508/44 +f 152/517/6 146/500/39 147/510/6 +f 140/518/46 149/503/41 150/515/46 +f 176/519/47 166/520/48 165/521/47 +f 169/522/49 163/523/6 162/524/49 +f 172/525/50 160/526/51 159/527/50 +f 177/528/48 167/529/52 166/520/48 +f 178/530/52 173/531/5 167/529/52 +f 168/532/6 164/533/53 163/523/6 +f 171/534/51 161/535/54 160/526/51 +f 180/536/3 159/527/50 174/537/3 +f 175/538/53 165/521/47 164/533/53 +f 170/539/54 162/524/49 161/535/54 +f 210/540/55 207/541/56 208/542/57 +f 201/543/58 194/544/59 193/545/58 +f 206/546/60 199/547/61 200/548/55 +f 200/548/55 204/549/62 202/550/63 +f 208/542/57 205/551/64 206/546/60 +f 212/552/65 209/553/61 210/540/55 +f 213/554/66 206/555/60 200/556/55 +f 228/557/67 209/558/61 211/559/68 +f 214/153/69 217/560/70 213/554/66 +f 208/561/57 219/562/66 210/540/55 +f 219/562/66 212/552/65 210/540/55 +f 216/563/71 201/543/58 193/545/58 +f 217/560/70 208/561/57 206/555/60 +f 202/564/63 213/554/66 200/556/55 +f 221/565/72 225/566/73 223/567/74 +f 223/568/74 194/544/59 203/569/59 +f 207/570/56 225/566/73 205/571/64 +f 227/572/75 207/570/56 209/558/61 +f 222/573/75 204/574/62 199/575/61 +f 225/566/73 199/575/61 205/571/64 +f 215/360/71 218/576/76 217/560/70 +f 225/566/73 226/577/77 223/567/74 +f 235/578/78 232/159/3 231/579/3 +f 234/167/79 229/162/5 230/158/5 +f 237/580/80 236/165/78 235/581/78 +f 240/166/81 233/160/79 234/167/79 +f 244/175/82 239/163/81 240/166/81 +f 241/582/83 238/169/80 237/583/80 +f 245/584/84 242/168/83 241/582/83 +f 248/174/85 243/170/82 244/175/82 +f 282/585/86 267/586/3 274/587/86 +f 280/588/87 273/589/2 272/590/87 +f 278/591/88 271/592/5 270/593/88 +f 276/594/89 269/595/7 268/596/89 +f 281/597/2 274/587/86 273/589/2 +f 279/598/5 272/590/87 271/592/5 +f 277/599/7 270/593/88 269/600/7 +f 275/601/3 268/596/89 267/586/3 +f 341/602/27 327/603/25 339/604/27 +f 321/248/90 318/259/2 316/253/2 +f 319/242/91 315/605/7 317/257/7 +f 323/606/92 325/607/93 324/608/92 +f 325/607/93 322/241/90 321/248/90 +f 323/609/92 320/610/91 319/242/91 +f 337/611/22 339/612/27 335/613/22 +f 328/614/26 337/611/22 335/613/22 +f 328/614/26 334/615/91 330/616/26 +f 329/617/25 331/618/90 327/603/25 +f 340/619/93 333/620/90 342/621/93 +f 336/622/92 342/621/93 338/623/92 +f 332/624/91 338/623/92 334/615/91 +f 218/576/76 215/360/71 216/563/71 +f 226/577/77 224/625/74 223/567/74 +f 347/626/80 346/627/6 345/628/6 +f 349/629/94 343/630/1 344/631/1 +f 353/265/95 351/262/78 352/264/95 +f 351/262/78 350/632/80 347/626/80 +f 353/265/95 348/633/94 349/629/94 +f 357/634/96 356/635/3 355/636/3 +f 359/637/1 358/638/96 357/634/96 +f 361/639/97 360/640/1 359/641/1 +f 363/642/5 362/643/97 361/639/97 +f 365/644/98 364/645/5 363/642/5 +f 367/646/6 366/647/98 365/644/98 +f 369/648/99 368/649/6 367/646/6 +f 355/636/3 370/650/99 369/648/99 +f 216/563/71 220/651/100 218/576/76 +f 220/651/100 219/562/66 218/576/76 +f 228/557/67 226/577/77 227/572/75 +f 224/625/74 226/577/77 228/557/67 +f 387/652/39 379/653/40 380/654/39 +f 375/655/41 382/656/42 383/657/41 +f 390/658/43 392/659/3 377/660/43 +f 388/661/40 378/662/44 379/653/40 +f 376/663/42 381/664/6 382/656/42 +f 372/665/5 385/666/45 391/667/5 +f 373/668/45 384/669/46 385/666/45 +f 389/670/44 377/660/43 378/662/44 +f 386/671/6 380/654/39 381/664/6 +f 374/672/46 383/657/41 384/669/46 +f 410/673/47 400/674/48 399/675/47 +f 403/676/49 397/677/6 396/678/49 +f 406/679/50 394/680/51 393/681/50 +f 411/682/48 401/683/52 400/674/48 +f 412/684/52 407/685/5 401/683/52 +f 402/686/6 398/687/53 397/677/6 +f 405/688/51 395/689/54 394/680/51 +f 414/690/3 393/681/50 408/691/3 +f 409/692/53 399/675/47 398/687/53 +f 404/693/54 396/678/49 395/689/54 +f 23/24/11 24/30/7 12/429/7 +f 30/26/2 31/32/12 19/431/12 +f 27/33/1 28/17/13 16/433/13 +f 24/30/7 25/20/14 13/435/14 +f 31/32/12 32/21/15 20/436/15 +f 21/14/6 22/13/16 10/437/16 +f 28/17/13 29/16/17 17/439/17 +f 25/20/14 26/19/18 14/440/18 +f 32/21/15 21/14/6 9/438/6 +f 22/13/16 23/24/11 11/430/11 +f 29/16/17 30/26/2 18/432/2 +f 26/19/18 27/28/1 15/441/1 +f 55/42/12 56/41/15 44/442/15 +f 45/45/6 46/44/16 34/444/16 +f 52/48/13 53/47/17 41/446/17 +f 49/38/14 50/50/18 38/448/18 +f 56/41/15 45/45/6 33/445/6 +f 46/44/16 47/52/11 35/450/11 +f 53/47/17 54/54/2 42/451/2 +f 50/50/18 51/56/1 39/452/1 +f 47/52/11 48/39/7 36/453/7 +f 54/54/2 55/42/12 43/443/12 +f 51/59/1 52/48/13 40/447/13 +f 48/39/7 49/38/14 37/449/14 +f 72/455/2 73/459/12 61/298/12 +f 79/456/14 80/460/18 68/299/18 +f 69/457/1 70/461/13 58/51/13 +f 76/458/16 77/462/11 65/53/11 +f 73/459/12 74/463/15 62/49/15 +f 80/460/18 69/457/1 57/43/1 +f 70/461/13 71/464/17 59/57/17 +f 77/462/11 78/465/7 66/58/7 +f 74/463/15 75/694/6 63/55/6 +f 71/464/17 72/455/2 60/37/2 +f 78/465/7 79/456/14 67/40/14 +f 75/466/6 76/458/16 64/46/16 +f 95/467/19 114/478/29 113/468/20 +f 95/467/19 100/474/27 97/470/22 +f 91/78/24 92/310/2 99/472/25 +f 98/473/26 93/476/28 94/471/23 +f 96/469/21 99/472/25 100/474/27 +f 89/475/7 90/481/31 93/476/28 +f 118/477/29 117/695/33 113/468/20 +f 101/479/30 102/483/32 94/471/23 +f 104/480/31 101/488/30 93/476/28 +f 113/482/20 103/485/24 91/78/24 +f 102/483/32 114/478/29 95/467/19 +f 117/484/33 120/696/2 103/485/24 +f 115/486/34 119/489/32 102/483/32 +f 116/487/7 115/697/34 101/488/30 +f 119/489/32 118/477/29 114/478/29 +f 125/105/35 127/190/35 123/490/35 +f 128/103/36 126/109/36 122/492/36 +f 133/321/37 135/320/37 131/494/35 +f 136/112/38 134/114/38 130/496/36 +f 136/112/38 135/320/37 133/321/37 +f 153/498/39 154/507/40 145/499/40 +f 141/501/41 142/509/42 148/502/42 +f 156/504/43 137/698/3 158/505/3 +f 154/507/40 155/516/44 144/508/44 +f 142/509/42 152/517/6 147/510/6 +f 138/511/5 139/514/45 151/512/45 +f 139/514/45 140/518/46 150/515/46 +f 155/516/44 156/504/43 143/506/43 +f 152/517/6 153/498/39 146/500/39 +f 140/518/46 141/501/41 149/503/41 +f 176/519/47 177/528/48 166/520/48 +f 169/522/49 168/532/6 163/523/6 +f 172/525/50 171/534/51 160/526/51 +f 177/528/48 178/530/52 167/529/52 +f 178/530/52 179/699/5 173/531/5 +f 168/532/6 175/538/53 164/533/53 +f 171/534/51 170/539/54 161/535/54 +f 180/536/3 172/525/50 159/527/50 +f 175/538/53 176/519/47 165/521/47 +f 170/539/54 169/522/49 162/524/49 +f 210/540/55 209/553/61 207/541/56 +f 201/543/58 203/569/59 194/544/59 +f 206/546/60 205/551/64 199/547/61 +f 200/548/55 199/547/61 204/549/62 +f 208/542/57 207/541/56 205/551/64 +f 212/552/65 211/700/68 209/553/61 +f 213/554/66 217/560/70 206/555/60 +f 228/557/67 227/572/75 209/558/61 +f 214/153/69 215/360/71 217/560/70 +f 208/561/57 218/576/76 219/562/66 +f 219/562/66 220/651/100 212/552/65 +f 216/563/71 215/360/71 201/543/58 +f 217/560/70 218/576/76 208/561/57 +f 202/564/63 214/153/69 213/554/66 +f 221/565/72 222/573/75 225/566/73 +f 223/568/74 224/701/74 194/544/59 +f 207/570/56 226/577/77 225/566/73 +f 227/572/75 226/577/77 207/570/56 +f 222/573/75 221/565/72 204/574/62 +f 225/566/73 222/573/75 199/575/61 +f 235/578/78 236/157/78 232/159/3 +f 234/167/79 233/160/79 229/162/5 +f 237/580/80 238/363/80 236/165/78 +f 240/166/81 239/163/81 233/160/79 +f 244/175/82 243/170/82 239/163/81 +f 241/582/83 242/168/83 238/169/80 +f 245/584/84 246/365/84 242/168/83 +f 248/174/85 247/172/85 243/170/82 +f 282/585/86 275/601/3 267/586/3 +f 280/588/87 281/597/2 273/589/2 +f 278/591/88 279/598/5 271/592/5 +f 276/594/89 277/702/7 269/595/7 +f 281/597/2 282/585/86 274/587/86 +f 279/598/5 280/588/87 272/590/87 +f 277/599/7 278/591/88 270/593/88 +f 275/601/3 276/594/89 268/596/89 +f 341/602/27 329/617/25 327/603/25 +f 321/248/90 322/241/90 318/259/2 +f 319/242/91 320/610/91 315/605/7 +f 323/606/92 326/703/93 325/607/93 +f 325/607/93 326/703/93 322/241/90 +f 323/609/92 324/704/92 320/610/91 +f 337/611/22 341/705/27 339/612/27 +f 328/614/26 330/616/26 337/611/22 +f 328/614/26 332/624/91 334/615/91 +f 329/617/25 333/620/90 331/618/90 +f 340/619/93 331/618/90 333/620/90 +f 336/622/92 340/619/93 342/621/93 +f 332/624/91 336/622/92 338/623/92 +f 347/626/80 350/632/80 346/627/6 +f 349/629/94 348/633/94 343/630/1 +f 353/265/95 354/267/78 351/262/78 +f 351/262/78 354/267/78 350/632/80 +f 353/265/95 352/264/95 348/633/94 +f 357/634/96 358/638/96 356/635/3 +f 359/637/1 360/706/1 358/638/96 +f 361/639/97 362/643/97 360/640/1 +f 363/642/5 364/645/5 362/643/97 +f 365/644/98 366/647/98 364/645/5 +f 367/646/6 368/649/6 366/647/98 +f 369/648/99 370/650/99 368/649/6 +f 355/636/3 356/635/3 370/650/99 +f 387/652/39 388/661/40 379/653/40 +f 375/655/41 376/663/42 382/656/42 +f 390/658/43 371/707/3 392/659/3 +f 388/661/40 389/670/44 378/662/44 +f 376/663/42 386/671/6 381/664/6 +f 372/665/5 373/668/45 385/666/45 +f 373/668/45 374/672/46 384/669/46 +f 389/670/44 390/658/43 377/660/43 +f 386/671/6 387/652/39 380/654/39 +f 374/672/46 375/655/41 383/657/41 +f 410/673/47 411/682/48 400/674/48 +f 403/676/49 402/686/6 397/677/6 +f 406/679/50 405/688/51 394/680/51 +f 411/682/48 412/684/52 401/683/52 +f 412/684/52 413/708/5 407/685/5 +f 402/686/6 409/692/53 398/687/53 +f 405/688/51 404/693/54 395/689/54 +f 414/690/3 406/679/50 393/681/50 +f 409/692/53 410/673/47 399/675/47 +f 404/693/54 403/676/49 396/678/49 +o Slide +v -0.125500 1.625000 2.562500 +v -0.312500 1.625000 2.375500 +v 0.312500 1.625000 2.375500 +v 0.125500 1.625000 2.562500 +v -0.312500 1.625000 2.124500 +v -0.125500 1.625000 1.937500 +v 0.125500 1.625000 1.937500 +v 0.312500 1.625000 2.124500 +v -0.125500 1.875000 1.937500 +v -0.312500 2.125000 2.124500 +v -0.312500 2.125000 2.375500 +v -0.125500 1.875000 2.562500 +v 0.125500 1.875000 2.562500 +v 0.312500 2.125000 2.375500 +v 0.312500 2.125000 2.124500 +v 0.125500 1.875000 1.937500 +v 0.187833 2.125000 1.999833 +v 0.187833 2.125000 2.500167 +v -0.187833 2.125000 2.500167 +v -0.187833 2.125000 1.999833 +v -0.375000 1.500000 2.875000 +v 0.375000 1.500000 2.875000 +v -0.375000 1.625000 2.875000 +v 0.375000 1.625000 2.875000 +v -0.375000 1.500000 -1.125000 +v 0.375000 1.500000 -1.125000 +v -0.375000 1.625000 -1.125000 +v 0.375000 1.625000 -1.125000 +vt 0.536885 0.619565 +vt 0.540984 0.684783 +vt 0.536885 0.684783 +vt 0.637295 0.788043 +vt 0.641393 0.755435 +vt 0.641393 0.777174 +vt 0.612705 0.788043 +vt 0.608607 0.755435 +vt 0.612705 0.744565 +vt 0.672131 0.684783 +vt 0.676230 0.619565 +vt 0.676230 0.684783 +vt 0.672131 0.695652 +vt 0.672131 0.619565 +vt 0.540984 0.608696 +vt 0.672131 0.608696 +vt 0.540984 0.619565 +vt 0.637295 0.744565 +vt 0.608607 0.777174 +vt 0.540984 0.695652 +vt 0.600410 0.695652 +vt 0.592213 0.717391 +vt 0.592213 0.695652 +vt 0.614754 0.695652 +vt 0.606557 0.739130 +vt 0.606557 0.695652 +vt 0.629098 0.695652 +vt 0.620902 0.717391 +vt 0.620902 0.695652 +vt 0.586066 0.739130 +vt 0.586066 0.695652 +vt 0.635246 0.739130 +vt 0.629098 0.717391 +vt 0.635246 0.695652 +vt 0.602459 0.739130 +vt 0.600410 0.717391 +vt 0.643443 0.695652 +vt 0.629098 0.793478 +vt 0.620902 0.793478 +vt 0.620902 0.739130 +vt 0.629098 0.739130 +vt 0.614754 0.739130 +vt 0.590164 0.739130 +vt 0.631148 0.739130 +vt 0.618852 0.739130 +vt 0.643443 0.739130 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.3827 0.0000 0.9239 +vn -0.4872 -0.0000 0.8733 +vn -0.3827 0.0000 0.9239 +vn 0.9239 0.0000 -0.3827 +vn 0.9239 -0.0000 0.3827 +vn -0.3827 0.0000 -0.9239 +vn 0.4872 -0.0000 -0.8733 +vn 0.3827 0.0000 -0.9239 +vn -0.9239 -0.0000 0.3827 +vn -0.9239 -0.0000 -0.3827 +vn -0.4872 -0.0000 -0.8733 +vn 0.7071 -0.0000 0.7071 +vn 0.4872 -0.0000 0.8733 +vn 0.5642 0.8256 0.0000 +vn 0.9703 0.2419 0.0000 +vn -0.5642 0.8256 0.0000 +vn -0.9703 0.2419 0.0000 +vn -0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +s off +f 439/709/101 442/710/101 440/711/101 +f 433/712/102 424/713/102 425/714/102 +f 432/715/102 429/716/102 431/717/102 +f 438/718/103 435/719/103 436/720/103 +f 436/721/104 442/710/104 438/718/104 +f 437/722/105 439/723/105 435/724/105 +f 438/718/102 441/725/102 437/722/102 +f 439/709/101 441/725/101 442/710/101 +f 433/712/102 434/726/102 424/713/102 +f 432/715/102 428/727/102 429/716/102 +f 438/718/103 437/722/103 435/719/103 +f 436/721/104 440/728/104 442/710/104 +f 437/722/105 441/725/105 439/723/105 +f 438/718/102 442/710/102 441/725/102 +s 1 +f 418/729/106 426/730/107 415/731/108 +f 422/732/109 428/733/110 417/734/110 +f 420/735/111 430/736/112 421/737/113 +f 426/730/107 425/738/114 416/739/114 +f 424/740/115 423/741/116 419/742/115 +f 422/732/109 421/737/113 430/736/112 +f 428/733/110 432/743/117 427/744/118 +f 416/745/114 424/740/115 419/742/115 +f 426/746/119 434/726/120 433/712/120 +f 427/747/121 431/717/122 430/748/121 +f 426/746/119 430/748/121 423/749/119 +f 418/729/106 427/744/118 426/730/107 +f 422/732/109 429/750/109 428/733/110 +f 420/735/111 423/741/116 430/736/112 +f 416/739/114 415/731/108 426/730/107 +f 426/730/107 433/751/123 425/738/114 +f 434/752/124 423/741/116 424/740/115 +f 423/741/116 420/735/111 419/742/115 +f 431/753/125 429/750/109 430/736/112 +f 429/750/109 422/732/109 430/736/112 +f 418/729/106 417/734/110 427/744/118 +f 417/734/110 428/733/110 427/744/118 +f 416/745/114 425/754/114 424/740/115 +f 426/746/119 423/749/119 434/726/120 +f 427/747/121 432/715/122 431/717/122 +f 426/746/119 427/747/121 430/748/121 +o Bullet +v 0.000000 0.750000 -1.312500 +v 0.000000 0.750000 -0.812500 +v 0.132583 0.695083 -1.312500 +v 0.132583 0.695083 -0.812500 +v 0.187500 0.562500 -1.312500 +v 0.187500 0.562500 -0.812500 +v 0.132583 0.429917 -1.312500 +v 0.132583 0.429917 -0.812500 +v 0.000000 0.375000 -1.312500 +v 0.000000 0.375000 -0.812500 +v -0.132583 0.429918 -1.312500 +v -0.132583 0.429917 -0.812500 +v -0.187500 0.562500 -1.312500 +v -0.187500 0.562500 -0.812500 +v -0.132583 0.695082 -1.312500 +v -0.132583 0.695082 -0.812500 +v 0.099437 0.661937 -0.562500 +v 0.000000 0.703125 -0.562500 +v 0.140625 0.562500 -0.562500 +v 0.099437 0.463063 -0.562500 +v 0.000000 0.421875 -0.562500 +v -0.099437 0.463063 -0.562500 +v -0.140625 0.562500 -0.562500 +v -0.099437 0.661937 -0.562500 +v 0.033145 0.595646 -0.437500 +v 0.000000 0.609375 -0.437500 +v 0.046875 0.562500 -0.437500 +v 0.033145 0.529354 -0.437500 +v 0.000000 0.515625 -0.437500 +v -0.033146 0.529354 -0.437500 +v -0.046875 0.562500 -0.437500 +v -0.033146 0.595646 -0.437500 +vt 0.875234 0.004815 +vt 0.877028 0.016304 +vt 0.875234 0.027794 +vt 0.870902 0.032553 +vt 0.866569 0.027794 +vt 0.864775 0.016304 +vt 0.866569 0.004815 +vt 0.870902 0.000056 +vt 0.852459 0.043478 +vt 0.836066 0.054348 +vt 0.836066 0.043478 +vt 0.852459 0.054348 +vt 0.836066 0.065217 +vt 0.852459 0.065217 +vt 0.836066 0.076087 +vt 0.852459 0.076087 +vt 0.836066 0.086957 +vt 0.852459 -0.000000 +vt 0.836066 0.010870 +vt 0.836066 -0.000000 +vt 0.852459 0.010870 +vt 0.836066 0.021739 +vt 0.860656 0.010870 +vt 0.852459 0.021739 +vt 0.836066 0.032609 +vt 0.852459 0.032609 +vt 0.860656 0.054348 +vt 0.864754 0.059783 +vt 0.860656 0.065217 +vt 0.860656 0.043478 +vt 0.860656 0.076087 +vt 0.860656 0.021739 +vt 0.852459 0.086957 +vt 0.860656 0.086957 +vt 0.860656 0.032609 +vt 0.868223 0.034278 +vt 0.868811 0.038043 +vt 0.864796 0.038043 +vt 0.864754 0.027174 +vt 0.864754 0.000000 +vt 0.864754 0.005435 +vt 0.864754 0.065217 +vt 0.864754 0.070652 +vt 0.864754 0.048913 +vt 0.864754 0.038043 +vt 0.864754 0.010870 +vt 0.864754 0.016304 +vt 0.864754 0.081522 +vt 0.860656 0.000000 +vt 0.864754 0.054348 +vt 0.868223 0.041808 +vt 0.866803 0.043368 +vt 0.865384 0.041808 +vt 0.865384 0.034278 +vt 0.866803 0.032719 +vt 0.864754 0.021739 +vt 0.864754 0.043478 +vt 0.864754 0.032609 +vt 0.864754 0.076087 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 0.9959 0.0905 +vn 0.7071 0.7071 0.0000 +vn -0.0000 1.0000 0.0000 +vn 0.7042 0.7042 0.0905 +vn 1.0000 0.0000 0.0000 +vn 0.9959 0.0000 0.0905 +vn 0.7071 -0.7071 0.0000 +vn 0.7042 -0.7042 0.0905 +vn -0.0000 -1.0000 0.0000 +vn -0.0000 -0.9959 0.0905 +vn -0.7071 -0.7071 -0.0000 +vn -0.7042 -0.7042 0.0905 +vn -1.0000 -0.0000 -0.0000 +vn -0.6530 -0.6530 0.3835 +vn -0.9959 0.0000 0.0905 +vn -0.7071 0.7071 0.0000 +vn -0.7042 0.7042 0.0905 +vn 0.6530 0.6530 0.3835 +vn 0.5275 0.0000 0.8496 +vn 0.9235 0.0000 0.3835 +vn 0.0000 0.9235 0.3835 +vn 0.6530 -0.6530 0.3835 +vn -0.9235 -0.0000 0.3835 +vn 0.0000 -0.9235 0.3835 +vn -0.6530 0.6530 0.3835 +vn 0.3730 -0.3730 0.8496 +vn -0.5275 0.0000 0.8496 +vn -0.3730 0.3730 0.8496 +vn 0.0000 -0.5275 0.8496 +vn -0.3730 -0.3730 0.8496 +vn 0.3730 0.3730 0.8496 +vn 0.0000 0.5275 0.8496 +s off +f 453/755/126 455/756/126 457/757/126 +f 457/757/126 443/758/126 445/759/126 +f 445/759/126 447/760/126 457/757/126 +f 447/760/126 449/761/126 457/757/126 +f 449/761/126 451/762/126 457/757/126 +f 451/762/126 453/755/126 457/757/126 +s 1 +f 444/763/127 445/764/128 443/765/129 +f 446/766/130 447/767/131 445/764/128 +f 448/768/132 449/769/133 447/767/131 +f 450/770/134 451/771/135 449/769/133 +f 452/772/136 453/773/137 451/774/135 +f 454/775/138 455/776/139 453/773/137 +f 452/772/136 464/777/140 454/775/138 +f 456/778/141 457/779/142 455/776/139 +f 458/780/143 443/765/129 457/779/142 +f 459/781/144 469/782/145 461/783/146 +f 458/780/143 460/784/147 444/763/127 +f 444/763/127 459/781/144 446/766/130 +f 450/770/134 461/783/146 462/785/148 +f 454/775/138 465/786/149 456/778/141 +f 452/787/136 462/785/148 463/788/150 +f 458/780/143 465/786/149 466/789/151 +f 448/768/132 459/781/144 461/783/146 +f 470/790/152 469/791/145 473/792/153 +f 465/786/149 474/793/154 466/789/151 +f 464/777/140 471/794/155 472/795/156 +f 462/785/148 469/796/145 470/797/152 +f 460/784/147 467/798/157 459/781/144 +f 466/789/151 468/799/158 460/784/147 +f 465/786/149 472/800/156 473/801/153 +f 462/785/148 471/802/155 463/788/150 +f 444/763/127 446/766/130 445/764/128 +f 446/766/130 448/768/132 447/767/131 +f 448/768/132 450/770/134 449/769/133 +f 450/770/134 452/787/136 451/771/135 +f 452/772/136 454/775/138 453/773/137 +f 454/775/138 456/778/141 455/776/139 +f 452/772/136 463/803/150 464/777/140 +f 456/778/141 458/780/143 457/779/142 +f 458/780/143 444/763/127 443/765/129 +f 459/781/144 467/804/157 469/782/145 +f 458/780/143 466/789/151 460/784/147 +f 444/763/127 460/784/147 459/781/144 +f 450/770/134 448/768/132 461/783/146 +f 454/775/138 464/777/140 465/786/149 +f 452/787/136 450/770/134 462/785/148 +f 458/780/143 456/778/141 465/786/149 +f 448/768/132 446/766/130 459/781/144 +f 469/791/145 467/805/157 473/792/153 +f 467/805/157 468/806/158 473/792/153 +f 468/806/158 474/807/154 473/792/153 +f 473/792/153 472/808/156 471/809/155 +f 471/809/155 470/790/152 473/792/153 +f 465/786/149 473/810/153 474/793/154 +f 464/777/140 463/803/150 471/794/155 +f 462/785/148 461/783/146 469/796/145 +f 460/784/147 468/811/158 467/798/157 +f 466/789/151 474/812/154 468/799/158 +f 465/786/149 464/777/140 472/800/156 +f 462/785/148 470/813/152 471/802/155 +o Magazine +v 0.375000 -4.750000 -0.375000 +v -0.375000 -4.750000 -0.375000 +v 0.375000 -4.750000 -1.375000 +v -0.375000 -4.750000 -1.375000 +v -0.375000 0.750000 -1.375000 +v 0.375000 0.750000 -1.375000 +v -0.375000 0.500000 -0.375000 +v 0.375000 0.500000 -0.375000 +v 0.375000 0.750000 -0.875000 +v -0.375000 0.750000 -0.875000 +v -0.187500 0.500000 -0.375000 +v -0.187500 0.500000 -1.375000 +v 0.187500 0.500000 -0.375000 +v 0.187500 0.500000 -1.375000 +v -0.187500 0.750000 -1.375000 +v -0.187500 0.750000 -0.875000 +v 0.187500 0.750000 -1.375000 +v 0.187500 0.750000 -0.875000 +vt 0.819672 0.141304 +vt 0.852459 0.206522 +vt 0.819672 0.206522 +vt 0.813525 0.663043 +vt 0.801230 0.663043 +vt 0.909836 0.663043 +vt 0.893443 0.684783 +vt 0.877049 0.684783 +vt 0.852459 0.684783 +vt 0.836066 0.684783 +vt 0.819672 0.663043 +vt 0.801230 0.750000 +vt 0.877049 0.701087 +vt 0.877049 0.722826 +vt 0.893443 0.701087 +vt 0.909836 0.722826 +vt 0.909836 0.684783 +vt 0.836066 0.701087 +vt 0.852459 0.722826 +vt 0.819672 0.722826 +vt 0.819672 0.701087 +vt 0.819672 0.684783 +vt 0.877049 0.206522 +vt 0.870902 0.663043 +vt 0.858607 0.663043 +vt 0.852459 0.141304 +vt 0.795082 0.663043 +vt 0.795082 0.206522 +vt 0.909836 0.206522 +vt 0.813525 0.750000 +vt 0.909836 0.701087 +vt 0.852459 0.701087 +vt 0.870902 0.684783 +vt 0.858607 0.684783 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.0000 0.0000 -1.0000 +s off +f 476/814/159 477/815/159 475/816/159 +f 475/816/160 487/817/160 485/818/160 +f 481/819/161 484/820/161 479/821/161 +f 480/822/162 483/823/162 482/824/162 +f 487/817/163 486/825/163 485/818/163 +f 484/820/163 489/826/163 479/821/163 +f 486/827/162 490/828/162 485/829/162 +f 481/830/164 490/828/164 484/820/164 +f 480/822/163 492/831/163 483/823/163 +f 492/831/161 488/832/161 487/833/161 +f 483/823/164 487/834/164 482/835/164 +f 478/836/165 486/837/165 488/838/165 +f 476/814/159 478/839/159 477/815/159 +f 481/840/160 476/841/160 485/818/160 +f 476/841/160 475/816/160 485/818/160 +f 475/816/160 482/824/160 487/817/160 +f 479/821/161 478/836/161 481/819/161 +f 478/836/161 476/842/161 481/819/161 +f 482/824/162 475/816/162 477/815/162 +f 477/815/162 480/822/162 482/824/162 +f 487/817/163 488/843/163 486/825/163 +f 484/820/163 490/828/163 489/826/163 +f 486/827/162 489/826/162 490/828/162 +f 481/830/164 485/844/164 490/828/164 +f 480/822/163 491/845/163 492/831/163 +f 492/831/161 491/845/161 488/832/161 +f 483/823/164 492/831/164 487/834/164 +f 480/822/165 477/815/165 488/838/165 +f 477/815/165 478/836/165 488/838/165 +f 478/836/165 479/821/165 486/837/165 +f 479/821/165 489/846/165 486/837/165 +f 488/838/165 491/847/165 480/822/165 +o StockFront +v 0.750000 0.000000 -2.500000 +v 0.750000 0.000000 -5.500000 +v 0.750000 0.437500 -5.500000 +v 0.750000 0.562500 -5.625000 +v 0.750000 0.562500 -5.875000 +v 0.750000 0.437500 -6.000000 +v 0.750000 -0.375000 -2.500000 +v 0.750000 -0.625000 -2.750000 +v 0.750000 -0.625000 -6.000000 +v 0.625000 0.437500 -6.000000 +v 0.625000 0.562500 -5.875000 +v 0.625000 0.562500 -5.625000 +v 0.625000 0.437500 -5.500000 +v 0.625000 0.000000 -5.500000 +v 0.625000 0.000000 -2.500000 +v 0.625000 -0.375000 -2.500000 +v 0.625000 -0.625000 -2.750000 +v 0.625000 -0.625000 -6.000000 +v -0.625000 0.000000 -2.500000 +v -0.625000 0.000000 -5.500000 +v -0.625000 0.437500 -5.500000 +v -0.625000 0.562500 -5.625000 +v -0.625000 0.562500 -5.875000 +v -0.625000 0.437500 -6.000000 +v -0.625000 -0.375000 -2.500000 +v -0.625000 -0.625000 -2.750000 +v -0.625000 -0.625000 -6.000000 +v -0.750000 0.437500 -6.000000 +v -0.750000 0.562500 -5.875000 +v -0.750000 0.562500 -5.625000 +v -0.750000 0.437500 -5.500000 +v -0.750000 0.000000 -5.500000 +v -0.750000 0.000000 -2.500000 +v -0.750000 -0.375000 -2.500000 +v -0.750000 -0.625000 -2.750000 +v -0.750000 -0.625000 -6.000000 +v -0.875000 -0.312500 -3.125000 +v 0.875000 -0.312500 -3.125000 +v -0.875000 -0.400888 -3.088388 +v 0.875000 -0.400888 -3.088388 +v -0.875000 -0.437500 -3.000000 +v 0.875000 -0.437500 -3.000000 +v -0.875000 -0.400888 -2.911612 +v 0.875000 -0.400888 -2.911612 +v -0.875000 -0.312500 -2.875000 +v 0.875000 -0.312500 -2.875000 +v -0.875000 -0.224112 -2.911612 +v 0.875000 -0.224112 -2.911612 +v -0.875000 -0.187500 -3.000000 +v 0.875000 -0.187500 -3.000000 +v -0.875000 -0.224112 -3.088388 +v 0.875000 -0.224112 -3.088388 +vt 0.881148 0.896739 +vt 0.897541 0.842391 +vt 0.897541 0.934783 +vt 0.790984 0.842391 +vt 0.881148 0.739130 +vt 0.885246 0.728261 +vt 0.897541 0.739130 +vt 0.881148 0.777174 +vt 0.897541 0.831522 +vt 0.790984 0.831522 +vt 0.897541 0.945652 +vt 0.893443 0.956522 +vt 0.893443 0.945652 +vt 0.901639 0.934783 +vt 0.885246 0.956522 +vt 0.885246 0.945652 +vt 0.782787 0.896739 +vt 0.778689 0.864130 +vt 0.782787 0.864130 +vt 0.881148 0.956522 +vt 0.881148 0.945652 +vt 0.782787 0.842391 +vt 0.877049 0.739130 +vt 0.877049 0.777174 +vt 0.782787 0.907609 +vt 0.881148 0.896739 +vt 0.897541 0.842391 +vt 0.897541 0.934783 +vt 0.790984 0.842391 +vt 0.881148 0.739130 +vt 0.885246 0.728261 +vt 0.897541 0.739130 +vt 0.881148 0.777174 +vt 0.897541 0.831522 +vt 0.790984 0.831522 +vt 0.897541 0.945652 +vt 0.893443 0.956522 +vt 0.893443 0.945652 +vt 0.901639 0.934783 +vt 0.885246 0.956522 +vt 0.885246 0.945652 +vt 0.782787 0.896739 +vt 0.778689 0.864130 +vt 0.782787 0.864130 +vt 0.881148 0.956522 +vt 0.881148 0.945652 +vt 0.782787 0.842391 +vt 0.877049 0.739130 +vt 0.877049 0.777174 +vt 0.782787 0.907609 +vt 0.524591 0.999951 +vt 0.520510 0.989130 +vt 0.524591 0.978309 +vt 0.527475 0.975042 +vt 0.524590 0.978212 +vt 0.521705 0.975042 +vt 0.881148 0.934783 +vt 0.893443 0.728261 +vt 0.782787 0.809783 +vt 0.782787 0.777174 +vt 0.897541 0.956522 +vt 0.901639 0.842391 +vt 0.778689 0.896739 +vt 0.782787 0.831522 +vt 0.881148 0.907609 +vt 0.881148 0.934783 +vt 0.893443 0.728261 +vt 0.782787 0.809783 +vt 0.782787 0.777174 +vt 0.897541 0.956522 +vt 0.901639 0.842391 +vt 0.778689 0.896739 +vt 0.782787 0.831522 +vt 0.881148 0.907609 +vt 0.527476 0.981478 +vt 0.528671 0.989130 +vt 0.527476 0.996782 +vt 0.521705 0.996782 +vt 0.521705 0.981478 +vt 0.520510 0.967391 +vt 0.521705 0.959739 +vt 0.524590 0.956569 +vt 0.527475 0.959739 +vt 0.528670 0.967391 +vt 0.528689 0.967391 +vt 0.586066 0.961957 +vt 0.586066 0.967391 +vt 0.528689 0.961957 +vt 0.586066 0.956522 +vt 0.528689 1.000000 +vt 0.586066 0.994565 +vt 0.586066 1.000000 +vt 0.528689 0.994565 +vt 0.586066 0.989130 +vt 0.528689 0.989130 +vt 0.586066 0.983696 +vt 0.528689 0.983696 +vt 0.586066 0.978261 +vt 0.528689 0.978261 +vt 0.586066 0.972826 +vt 0.528689 0.972826 +vt 0.528689 0.956522 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +s off +f 494/848/166 501/849/166 498/850/166 +f 500/851/166 501/849/166 494/848/166 +f 505/852/167 504/853/167 502/854/167 +f 506/855/167 510/856/167 509/857/167 +f 498/858/168 503/859/168 497/860/168 +f 501/849/169 502/861/169 498/850/169 +f 497/860/170 504/862/170 496/863/170 +f 493/864/171 508/865/171 499/866/171 +f 496/863/172 505/867/172 495/868/172 +f 499/869/173 509/857/173 500/851/173 +f 495/870/171 506/855/171 494/871/171 +f 494/848/170 507/872/170 493/864/170 +f 500/851/174 510/856/174 501/849/174 +f 512/873/166 519/874/166 516/875/166 +f 518/876/166 519/874/166 512/873/166 +f 523/877/167 522/878/167 520/879/167 +f 524/880/167 528/881/167 527/882/167 +f 516/883/168 521/884/168 515/885/168 +f 519/874/169 520/886/169 516/875/169 +f 515/885/170 522/887/170 514/888/170 +f 511/889/171 526/890/171 517/891/171 +f 514/888/172 523/892/172 513/893/172 +f 517/894/173 527/882/173 518/876/173 +f 513/895/171 524/880/171 512/896/171 +f 512/873/170 525/897/170 511/889/170 +f 518/876/174 528/881/174 519/874/174 +f 542/898/166 538/899/166 534/900/166 +f 539/901/167 541/902/167 543/903/167 +f 498/850/166 497/860/166 496/863/166 +f 496/863/166 495/904/166 498/850/166 +f 495/904/166 494/848/166 498/850/166 +f 494/848/166 493/864/166 500/851/166 +f 493/864/166 499/866/166 500/851/166 +f 504/853/167 503/905/167 502/854/167 +f 502/854/167 510/856/167 506/855/167 +f 506/855/167 505/852/167 502/854/167 +f 508/906/167 507/907/167 509/857/167 +f 507/907/167 506/855/167 509/857/167 +f 498/858/168 502/908/168 503/859/168 +f 501/849/169 510/909/169 502/861/169 +f 497/860/170 503/859/170 504/862/170 +f 493/864/171 507/910/171 508/865/171 +f 496/863/172 504/862/172 505/867/172 +f 499/869/173 508/911/173 509/857/173 +f 495/870/171 505/852/171 506/855/171 +f 494/848/170 506/912/170 507/872/170 +f 500/851/174 509/857/174 510/856/174 +f 516/875/166 515/885/166 514/888/166 +f 514/888/166 513/913/166 516/875/166 +f 513/913/166 512/873/166 516/875/166 +f 512/873/166 511/889/166 518/876/166 +f 511/889/166 517/891/166 518/876/166 +f 522/878/167 521/914/167 520/879/167 +f 520/879/167 528/881/167 524/880/167 +f 524/880/167 523/877/167 520/879/167 +f 526/915/167 525/916/167 527/882/167 +f 525/916/167 524/880/167 527/882/167 +f 516/883/168 520/917/168 521/884/168 +f 519/874/169 528/918/169 520/886/169 +f 515/885/170 521/884/170 522/887/170 +f 511/889/171 525/919/171 526/890/171 +f 514/888/172 522/887/172 523/892/172 +f 517/894/173 526/920/173 527/882/173 +f 513/895/171 523/877/171 524/880/171 +f 512/873/170 524/921/170 525/897/170 +f 518/876/174 527/882/174 528/881/174 +f 534/900/166 532/922/166 530/923/166 +f 530/923/166 544/924/166 542/898/166 +f 542/898/166 540/925/166 538/899/166 +f 538/899/166 536/926/166 534/900/166 +f 534/900/166 530/923/166 542/898/166 +f 543/903/167 529/927/167 531/928/167 +f 531/928/167 533/929/167 543/903/167 +f 533/929/167 535/930/167 543/903/167 +f 535/930/167 537/931/167 543/903/167 +f 537/931/167 539/901/167 543/903/167 +s 1 +f 530/932/169 531/933/175 529/934/169 +f 532/935/175 533/936/174 531/933/175 +f 534/937/174 535/938/173 533/939/174 +f 536/940/173 537/941/171 535/938/173 +f 538/942/171 539/943/172 537/941/171 +f 540/944/172 541/945/170 539/943/172 +f 542/946/170 543/947/168 541/945/170 +f 544/948/168 529/934/169 543/947/168 +f 530/932/169 532/935/175 531/933/175 +f 532/935/175 534/949/174 533/936/174 +f 534/937/174 536/940/173 535/938/173 +f 536/940/173 538/942/171 537/941/171 +f 538/942/171 540/944/172 539/943/172 +f 540/944/172 542/946/170 541/945/170 +f 542/946/170 544/948/168 543/947/168 +f 544/948/168 530/932/169 529/934/169 +o StockBack +v 0.500000 0.000000 -2.500000 +v 0.500000 0.000000 -6.000000 +v 0.625000 0.000000 -6.000000 +v 0.625000 0.000000 -2.500000 +v 0.500000 -0.625000 -6.000000 +v 0.625000 -0.625000 -6.000000 +v 0.625000 -0.625000 -2.500000 +v 0.500000 -0.625000 -2.500000 +v 0.625000 0.000000 -6.000000 +v -0.625000 0.000000 -6.000000 +v 0.625000 -3.250000 -6.000000 +v -0.625000 -3.250000 -6.000000 +v 0.625000 0.000000 -6.250000 +v -0.625000 0.000000 -6.250000 +v 0.625000 -3.250000 -6.250000 +v -0.625000 -3.250000 -6.250000 +v 0.625000 -0.500000 -6.750000 +v -0.625000 -0.500000 -6.750000 +v 0.625000 -0.625000 -4.000000 +v 0.500000 -0.625000 -4.000000 +v 0.625000 -2.625000 -6.000000 +v 0.500000 -2.625000 -6.000000 +v 0.625000 -0.625000 -4.500000 +v 0.625000 -2.125000 -6.000000 +v 0.500000 -0.625000 -4.500000 +v 0.500000 -2.125000 -6.000000 +v -0.625000 0.000000 -2.500000 +v -0.625000 0.000000 -6.000000 +v -0.500000 0.000000 -6.000000 +v -0.500000 0.000000 -2.500000 +v -0.625000 -0.625000 -6.000000 +v -0.500000 -0.625000 -6.000000 +v -0.500000 -0.625000 -2.500000 +v -0.625000 -0.625000 -2.500000 +v -0.500000 -0.625000 -4.000000 +v -0.625000 -0.625000 -4.000000 +v -0.500000 -2.625000 -6.000000 +v -0.625000 -2.625000 -6.000000 +v -0.500000 -0.625000 -4.500000 +v -0.500000 -2.125000 -6.000000 +v -0.625000 -0.625000 -4.500000 +v -0.625000 -2.125000 -6.000000 +vt 0.778689 0.929348 +vt 0.663934 0.940217 +vt 0.663934 0.929348 +vt 0.663934 0.864130 +vt 0.778689 0.875000 +vt 0.663934 0.875000 +vt 0.659836 0.929348 +vt 0.778689 0.940217 +vt 0.663934 0.994565 +vt 0.934426 0.543478 +vt 0.975410 0.260870 +vt 0.975410 0.543478 +vt 1.000000 0.500000 +vt 0.934426 0.565217 +vt 0.934426 0.260870 +vt 0.975410 0.239130 +vt 0.975410 0.565217 +vt 0.934426 0.608696 +vt 0.934426 0.000000 +vt 0.934426 0.239130 +vt 0.909836 0.500000 +vt 0.922131 0.858696 +vt 0.926230 0.608696 +vt 0.926230 0.858696 +vt 0.938525 0.826087 +vt 0.909836 0.641304 +vt 0.922131 0.608696 +vt 0.942623 0.641304 +vt 0.938525 0.641304 +vt 0.778689 0.929348 +vt 0.663934 0.940217 +vt 0.663934 0.929348 +vt 0.663934 0.864130 +vt 0.778689 0.875000 +vt 0.663934 0.875000 +vt 0.659836 0.929348 +vt 0.778689 0.940217 +vt 0.663934 0.994565 +vt 0.922131 0.858696 +vt 0.926230 0.608696 +vt 0.926230 0.858696 +vt 0.938525 0.826087 +vt 0.909836 0.641304 +vt 0.922131 0.608696 +vt 0.942623 0.641304 +vt 0.938525 0.641304 +vt 0.778689 0.864130 +vt 0.659836 0.875000 +vt 0.778689 0.994565 +vt 0.983607 0.260870 +vt 0.983607 0.543478 +vt 0.975410 0.608696 +vt 0.975410 0.000000 +vt 0.926230 0.543478 +vt 0.926230 0.260870 +vt 0.909836 0.826087 +vt 0.942623 0.826087 +vt 0.778689 0.864130 +vt 0.659836 0.875000 +vt 0.778689 0.994565 +vt 0.909836 0.826087 +vt 0.942623 0.826087 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.1789 -0.9839 +vn 0.0000 -0.7071 0.7071 +s off +f 547/950/176 545/951/176 548/952/176 +f 552/953/177 550/954/177 551/955/177 +f 545/956/178 551/955/178 548/952/178 +f 546/957/179 552/958/179 545/951/179 +f 548/952/180 550/954/180 547/950/180 +f 554/959/178 555/960/178 553/961/178 +f 561/962/180 553/961/180 555/960/180 +f 553/961/176 558/963/176 554/959/176 +f 556/964/177 559/965/177 555/960/177 +f 557/966/181 562/967/181 558/963/181 +f 562/968/182 559/965/182 560/969/182 +f 562/970/179 556/964/179 554/959/179 +f 564/971/183 565/972/183 563/973/183 +f 565/972/180 567/974/180 563/973/180 +f 564/971/179 570/975/179 566/976/179 +f 570/977/181 567/974/181 568/978/181 +f 573/979/176 571/980/176 574/981/176 +f 578/982/177 576/983/177 577/984/177 +f 571/985/178 577/984/178 574/981/178 +f 572/986/179 578/987/179 571/980/179 +f 574/981/180 576/983/180 573/979/180 +f 580/988/183 581/989/183 579/990/183 +f 581/989/180 583/991/180 579/990/180 +f 580/988/179 586/992/179 582/993/179 +f 586/994/181 583/991/181 584/995/181 +f 547/950/176 546/957/176 545/951/176 +f 552/953/177 549/996/177 550/954/177 +f 545/956/178 552/997/178 551/955/178 +f 546/957/179 549/998/179 552/958/179 +f 548/952/180 551/955/180 550/954/180 +f 554/959/178 556/964/178 555/960/178 +f 555/960/180 559/999/180 561/962/180 +f 561/962/180 557/1000/180 553/961/180 +f 553/961/176 557/966/176 558/963/176 +f 556/964/177 560/969/177 559/965/177 +f 557/966/181 561/1001/181 562/967/181 +f 562/968/182 561/1002/182 559/965/182 +f 554/959/179 558/1003/179 562/970/179 +f 562/970/179 560/1004/179 556/964/179 +f 564/971/183 566/976/183 565/972/183 +f 565/972/180 568/978/180 567/974/180 +f 564/971/179 569/1005/179 570/975/179 +f 570/977/181 569/1006/181 567/974/181 +f 573/979/176 572/986/176 571/980/176 +f 578/982/177 575/1007/177 576/983/177 +f 571/985/178 578/1008/178 577/984/178 +f 572/986/179 575/1009/179 578/987/179 +f 574/981/180 577/984/180 576/983/180 +f 580/988/183 582/993/183 581/989/183 +f 581/989/180 584/995/180 583/991/180 +f 580/988/179 585/1010/179 586/992/179 +f 586/994/181 585/1011/181 583/991/181 +o Silencer +v 0.000000 1.500000 6.375000 +v -0.375000 1.399519 6.375000 +v -0.649519 1.125000 6.375000 +v -0.750000 0.750000 6.375000 +v -0.649519 0.375000 6.375000 +v -0.375000 0.100481 6.375000 +v 0.000000 0.000000 6.375000 +v 0.375000 0.100481 6.375000 +v 0.649519 0.375000 6.375000 +v 0.750000 0.750000 6.375000 +v 0.649519 1.124999 6.375000 +v 0.375000 1.399519 6.375000 +v -0.375000 1.399519 16.375000 +v 0.000000 1.500000 16.375000 +v -0.649519 1.125000 16.375000 +v -0.750000 0.750000 16.375000 +v -0.649519 0.375000 16.375000 +v -0.375000 0.100481 16.375000 +v 0.000000 0.000000 16.375000 +v 0.375000 0.100481 16.375000 +v 0.649519 0.375000 16.375000 +v 0.750000 0.750000 16.375000 +v 0.649519 1.124999 16.375000 +v 0.375000 1.399519 16.375000 +v -0.093750 0.912380 16.375000 +v 0.000000 0.937500 16.375000 +v -0.162380 0.843750 16.375000 +v -0.187500 0.750000 16.375000 +v -0.162380 0.656250 16.375000 +v -0.093750 0.587620 16.375000 +v 0.000000 0.562500 16.375000 +v 0.093750 0.587620 16.375000 +v 0.162380 0.656250 16.375000 +v 0.187500 0.750000 16.375000 +v 0.162380 0.843750 16.375000 +v 0.093750 0.912380 16.375000 +v -0.093750 0.912382 14.375000 +v 0.000000 0.937502 14.375000 +v -0.162380 0.843752 14.375000 +v -0.187500 0.750002 14.375000 +v -0.162380 0.656252 14.375000 +v -0.093750 0.587623 14.375000 +v 0.000000 0.562502 14.375000 +v 0.093750 0.587622 14.375000 +v 0.162380 0.656252 14.375000 +v 0.187500 0.750002 14.375000 +v 0.162380 0.843752 14.375000 +v 0.093750 0.912382 14.375000 +vt 0.455686 0.619620 +vt 0.455686 0.684728 +vt 0.413166 0.684728 +vt 0.327869 0.782609 +vt 0.344262 0.760870 +vt 0.344262 0.771739 +vt 0.327869 0.684783 +vt 0.344262 0.706522 +vt 0.327869 0.717391 +vt 0.327869 0.847826 +vt 0.344262 0.869565 +vt 0.327869 0.880435 +vt 0.327869 0.554348 +vt 0.344262 0.576087 +vt 0.327869 0.586957 +vt 0.327869 0.750000 +vt 0.344262 0.728261 +vt 0.344262 0.739130 +vt 0.344262 0.663043 +vt 0.344262 0.673913 +vt 0.327869 0.815217 +vt 0.344262 0.836957 +vt 0.327869 0.521739 +vt 0.344262 0.543478 +vt 0.327869 0.619565 +vt 0.344262 0.641304 +vt 0.327869 0.652174 +vt 0.344262 0.804348 +vt 0.327869 0.913043 +vt 0.344262 0.891304 +vt 0.344262 0.902174 +vt 0.344262 0.608696 +vt 0.421302 0.741838 +vt 0.415984 0.749981 +vt 0.410666 0.725553 +vt 0.446701 0.708559 +vt 0.434426 0.717282 +vt 0.422152 0.708559 +vt 0.409877 0.652174 +vt 0.413166 0.619620 +vt 0.422152 0.595789 +vt 0.434426 0.587066 +vt 0.446701 0.595789 +vt 0.458975 0.652174 +vt 0.344262 0.695652 +vt 0.344262 0.858696 +vt 0.344262 0.565217 +vt 0.344262 0.826087 +vt 0.344262 0.532609 +vt 0.344262 0.630435 +vt 0.344262 0.793478 +vt 0.344262 0.597826 +vt 0.412914 0.747799 +vt 0.410666 0.741838 +vt 0.409843 0.733696 +vt 0.412914 0.719592 +vt 0.421302 0.725553 +vt 0.415984 0.717410 +vt 0.419054 0.719592 +vt 0.422124 0.733696 +vt 0.419054 0.747799 +vt -0.000000 0.521739 +vt -0.000000 0.554348 +vt -0.000000 0.619565 +vt -0.000000 0.652174 +vt -0.000000 0.782609 +vt -0.000000 0.815217 +vt -0.000000 0.880435 +vt -0.000000 0.913043 +vt -0.000000 0.586957 +vt -0.000000 0.750000 +vt -0.000000 0.684783 +vt -0.000000 0.717391 +vt -0.000000 0.847826 +vt 0.409836 0.597826 +vt 0.409836 0.608696 +vt 0.409836 0.771739 +vt 0.409836 0.695652 +vt 0.409836 0.706522 +vt 0.409836 0.869565 +vt 0.409836 0.565217 +vt 0.409836 0.576087 +vt 0.409836 0.739130 +vt 0.409836 0.663043 +vt 0.409836 0.673913 +vt 0.409836 0.836957 +vt 0.409836 0.532609 +vt 0.409836 0.543478 +vt 0.409836 0.630435 +vt 0.409836 0.641304 +vt 0.409836 0.804348 +vt 0.409836 0.902174 +vt 0.409836 0.760870 +vt 0.409836 0.858696 +vt 0.409836 0.728261 +vt 0.409836 0.826087 +vt 0.409836 0.793478 +vt 0.409836 0.891304 +vn -0.0000 0.0000 -1.0000 +vn -0.0000 0.0000 1.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +s off +f 591/1012/184 589/1013/184 597/1014/184 +f 609/1015/185 622/1016/185 621/1017/185 +f 599/1018/185 612/1019/185 600/1020/185 +f 607/1021/185 618/1022/185 606/1023/185 +f 604/1024/185 615/1025/185 603/1026/185 +f 610/1027/185 612/1028/185 622/1029/185 +f 599/1018/185 613/1030/185 611/1031/185 +f 608/1032/185 619/1033/185 607/1021/185 +f 605/1034/185 616/1035/185 604/1024/185 +f 602/1036/185 613/1037/185 601/1038/185 +f 609/1015/185 620/1039/185 608/1032/185 +f 605/1040/185 618/1041/185 617/1042/185 +f 603/1026/185 614/1043/185 602/1036/185 +f 633/1044/185 624/1045/185 627/1046/185 +f 589/1013/184 588/1047/184 597/1014/184 +f 588/1047/184 587/1048/184 597/1014/184 +f 587/1048/184 598/1049/184 597/1014/184 +f 597/1014/184 596/1050/184 595/1051/184 +f 595/1051/184 594/1052/184 593/1053/184 +f 593/1053/184 592/1054/184 591/1012/184 +f 591/1012/184 590/1055/184 589/1013/184 +f 597/1014/184 595/1051/184 593/1053/184 +f 593/1053/184 591/1012/184 597/1014/184 +f 609/1015/185 610/1027/185 622/1016/185 +f 599/1018/185 611/1056/185 612/1019/185 +f 607/1021/185 619/1057/185 618/1022/185 +f 604/1024/185 616/1058/185 615/1025/185 +f 610/1027/185 600/1020/185 612/1028/185 +f 599/1018/185 601/1038/185 613/1030/185 +f 608/1032/185 620/1059/185 619/1033/185 +f 605/1034/185 617/1060/185 616/1035/185 +f 602/1036/185 614/1061/185 613/1037/185 +f 609/1015/185 621/1062/185 620/1039/185 +f 605/1040/185 606/1023/185 618/1041/185 +f 603/1026/185 615/1063/185 614/1043/185 +f 624/1045/185 623/1064/185 627/1046/185 +f 623/1064/185 625/1065/185 627/1046/185 +f 625/1065/185 626/1066/185 627/1046/185 +f 627/1046/185 628/1067/185 631/1068/185 +f 628/1067/185 629/1069/185 631/1068/185 +f 629/1069/185 630/1070/185 631/1068/185 +f 631/1068/185 632/1071/185 633/1044/185 +f 633/1044/185 634/1072/185 624/1045/185 +f 631/1068/185 633/1044/185 627/1046/185 +s 1 +f 593/1073/186 604/1024/187 592/1074/187 +f 590/1075/188 601/1038/189 589/1076/189 +f 597/1077/190 608/1032/191 596/1078/191 +f 594/1079/192 605/1040/186 593/1080/186 +f 591/1081/193 602/1036/188 590/1075/188 +f 598/1082/194 609/1015/190 597/1077/190 +f 588/1083/195 600/1020/196 587/1084/196 +f 595/1085/197 606/1023/192 594/1079/192 +f 592/1074/187 603/1026/193 591/1081/193 +f 587/1084/196 610/1027/194 598/1082/194 +f 589/1076/189 599/1018/195 588/1083/195 +f 596/1078/191 607/1021/197 595/1085/197 +f 614/1043/191 627/1086/190 626/1087/191 +f 622/1016/187 633/1088/193 621/1017/193 +f 612/1019/186 623/1089/192 624/1090/186 +f 619/1057/189 630/1091/195 618/1022/195 +f 615/1025/190 628/1092/194 627/1093/190 +f 612/1028/186 634/1094/187 622/1029/187 +f 611/1031/192 625/1095/197 623/1096/192 +f 620/1059/188 631/1097/189 619/1033/189 +f 616/1035/194 629/1098/196 628/1099/194 +f 613/1037/197 626/1100/191 625/1101/197 +f 621/1062/193 632/1102/188 620/1039/188 +f 618/1041/195 629/1103/196 617/1042/196 +f 593/1073/186 605/1034/186 604/1024/187 +f 590/1075/188 602/1036/188 601/1038/189 +f 597/1077/190 609/1015/190 608/1032/191 +f 594/1079/192 606/1023/192 605/1040/186 +f 591/1081/193 603/1026/193 602/1036/188 +f 598/1082/194 610/1027/194 609/1015/190 +f 588/1083/195 599/1018/195 600/1020/196 +f 595/1085/197 607/1021/197 606/1023/192 +f 592/1074/187 604/1024/187 603/1026/193 +f 587/1084/196 600/1020/196 610/1027/194 +f 589/1076/189 601/1038/189 599/1018/195 +f 596/1078/191 608/1032/191 607/1021/197 +f 614/1043/191 615/1063/190 627/1086/190 +f 622/1016/187 634/1104/187 633/1088/193 +f 612/1019/186 611/1056/192 623/1089/192 +f 619/1057/189 631/1105/189 630/1091/195 +f 615/1025/190 616/1058/194 628/1092/194 +f 612/1028/186 624/1106/186 634/1094/187 +f 611/1031/192 613/1030/197 625/1095/197 +f 620/1059/188 632/1107/188 631/1097/189 +f 616/1035/194 617/1060/196 629/1098/196 +f 613/1037/197 614/1061/191 626/1100/191 +f 621/1062/193 633/1108/193 632/1102/188 +f 618/1041/195 630/1109/195 629/1103/196 +o Gun +v -0.750000 0.000000 3.250000 +v 0.750000 0.000000 3.250000 +v -0.750000 0.000000 -5.500000 +v 0.750000 0.000000 -5.500000 +v -0.750000 1.500000 3.250000 +v 0.750000 1.500000 3.250000 +v -0.750000 1.500000 -5.500000 +v 0.750000 1.500000 -5.500000 +v 0.000000 1.250000 5.500000 +v -0.250000 1.183012 5.500000 +v -0.433013 1.000000 5.500000 +v -0.500000 0.750000 5.500000 +v -0.433013 0.500000 5.500000 +v -0.250000 0.316988 5.500000 +v 0.000000 0.250000 5.500000 +v 0.250000 0.316987 5.500000 +v 0.433012 0.500000 5.500000 +v 0.500000 0.750000 5.500000 +v 0.433013 1.000000 5.500000 +v 0.250000 1.183012 5.500000 +v 0.000000 1.250000 6.375000 +v -0.250000 1.183012 6.375000 +v -0.433013 1.000000 6.375000 +v -0.500000 0.750000 6.375000 +v -0.433013 0.500000 6.375000 +v -0.250000 0.316988 6.375000 +v 0.000000 0.250000 6.375000 +v 0.250000 0.316987 6.375000 +v 0.433012 0.500000 6.375000 +v 0.500000 0.750000 6.375000 +v 0.433013 1.000000 6.375000 +v 0.250000 1.183012 6.375000 +v 0.000000 1.000000 6.375000 +v -0.125000 0.966506 6.375000 +v -0.216506 0.875000 6.375000 +v -0.250000 0.750000 6.375000 +v -0.216506 0.625000 6.375000 +v -0.125000 0.533494 6.375000 +v 0.000000 0.500000 6.375000 +v 0.125000 0.533494 6.375000 +v 0.216506 0.625000 6.375000 +v 0.250000 0.750000 6.375000 +v 0.216506 0.875000 6.375000 +v 0.125000 0.966506 6.375000 +v 0.000000 1.000000 8.375000 +v -0.125000 0.966506 8.375000 +v -0.216506 0.875000 8.375000 +v -0.250000 0.750000 8.375000 +v -0.216506 0.625000 8.375000 +v -0.125000 0.533494 8.375000 +v 0.000000 0.500000 8.375000 +v 0.125000 0.533494 8.375000 +v 0.216506 0.625000 8.375000 +v 0.250000 0.750000 8.375000 +v 0.216506 0.875000 8.375000 +v 0.125000 0.966506 8.375000 +v 0.000000 0.937500 8.375000 +v -0.093750 0.912380 8.375000 +v -0.162380 0.843750 8.375000 +v -0.187500 0.750000 8.375000 +v -0.162380 0.656250 8.375000 +v -0.093750 0.587620 8.375000 +v 0.000000 0.562500 8.375000 +v 0.093750 0.587620 8.375000 +v 0.162380 0.656250 8.375000 +v 0.187500 0.750000 8.375000 +v 0.162380 0.843750 8.375000 +v 0.093750 0.912380 8.375000 +v 0.000000 0.937500 6.375000 +v -0.093750 0.912380 6.375000 +v -0.162380 0.843750 6.375000 +v -0.187500 0.750000 6.375000 +v -0.162380 0.656250 6.375000 +v -0.093750 0.587620 6.375000 +v 0.000000 0.562500 6.375000 +v 0.093750 0.587620 6.375000 +v 0.162380 0.656250 6.375000 +v 0.187500 0.750000 6.375000 +v 0.162380 0.843750 6.375000 +v 0.093750 0.912380 6.375000 +v -0.875000 -0.250000 1.250000 +v 0.875000 -0.250000 1.250000 +v -0.875000 -0.250000 -2.250000 +v 0.875000 -0.250000 -2.250000 +v -0.875000 0.500000 -2.250000 +v -0.875000 0.500000 1.250000 +v 0.875000 0.500000 1.250000 +v 0.875000 0.500000 -2.250000 +v -0.875000 1.000000 1.375000 +v -0.875000 1.000000 3.250000 +v 0.875000 1.000000 3.250000 +v 0.875000 1.000000 1.375000 +v -0.875000 0.125000 3.250000 +v -0.500000 -0.250000 3.250000 +v 0.500000 -0.250000 3.250000 +v 0.875000 0.125000 3.250000 +v -0.500000 -0.250000 1.375000 +v -0.875000 0.125000 1.375000 +v 0.875000 0.125000 1.375000 +v 0.500000 -0.250000 1.375000 +v -0.750000 0.125000 3.625000 +v -0.500000 -0.250000 3.625000 +v 0.750000 1.000000 3.625000 +v -0.750000 1.000000 3.625000 +v -0.625000 0.000000 3.625000 +v 0.625000 0.000000 3.625000 +v -0.625000 1.500000 3.625000 +v 0.625000 1.500000 3.625000 +v -0.625000 0.000000 5.500000 +v 0.625000 0.000000 5.500000 +v -0.625000 1.500000 5.500000 +v 0.625000 1.500000 5.500000 +v 0.750000 0.125000 3.625000 +v 0.500000 -0.250000 3.625000 +v -0.750000 0.125000 5.375000 +v -0.750000 1.000000 5.375000 +v 0.750000 0.125000 5.375000 +v 0.500000 -0.250000 5.375000 +v -0.500000 -0.250000 5.375000 +v 0.750000 1.000000 5.375000 +v -0.750000 1.500000 3.250000 +v -0.750000 1.500000 -3.750000 +v -0.375000 1.500000 3.250000 +v -0.375000 1.500000 -3.750000 +v -0.750000 1.750000 1.250000 +v -0.750000 1.750000 -1.750000 +v -0.375000 1.750000 1.250000 +v -0.375000 1.750000 -1.750000 +v 0.375000 1.500000 3.250000 +v 0.375000 1.500000 -3.750000 +v 0.750000 1.500000 3.250000 +v 0.750000 1.500000 -3.750000 +v 0.375000 1.750000 1.250000 +v 0.375000 1.750000 -1.750000 +v 0.750000 1.750000 1.250000 +v 0.750000 1.750000 -1.750000 +v 0.375000 1.500000 4.562500 +v 0.375000 1.500000 5.437500 +v 0.375000 1.875000 5.437500 +v 0.375000 2.018506 5.404197 +v 0.375000 2.140165 5.309359 +v 0.375000 2.221455 5.167424 +v 0.500000 1.875000 4.562500 +v 0.500000 2.018506 4.595803 +v 0.500000 2.140165 4.690641 +v 0.500000 2.221455 4.832576 +v 0.500000 2.250000 5.000000 +v 0.500000 2.221455 5.167424 +v 0.500000 2.140165 5.309359 +v 0.500000 2.018506 5.404197 +v 0.500000 1.875000 5.437500 +v 0.375000 2.250000 5.000000 +v 0.375000 2.221455 4.832576 +v 0.375000 2.140165 4.690641 +v 0.375000 2.018506 4.595803 +v 0.375000 1.875000 4.562500 +v 0.500000 1.500000 5.437500 +v 0.500000 1.500000 4.562500 +v 0.375000 2.000000 -5.375000 +v 0.375000 2.167424 -5.327425 +v 0.375000 2.309359 -5.191942 +v 0.375000 2.404197 -4.989178 +v 0.375000 2.437500 -4.750000 +v 0.375000 2.404197 -4.510823 +v 0.375000 2.309359 -4.308059 +v 0.375000 2.167424 -4.172575 +v 0.375000 2.000000 -4.125000 +v 0.500000 2.437500 -4.750000 +v 0.500000 2.404197 -4.989178 +v 0.500000 2.309359 -5.191942 +v 0.500000 2.167424 -5.327425 +v 0.500000 2.000000 -5.375000 +v 0.375000 1.500000 -4.125000 +v 0.375000 1.500000 -5.375000 +v 0.500000 2.404197 -4.510823 +v 0.500000 2.309359 -4.308059 +v 0.500000 2.167424 -4.172575 +v 0.500000 2.000000 -4.125000 +v 0.500000 1.500000 -4.125000 +v 0.500000 1.500000 -5.375000 +v -0.750000 1.500000 -1.500000 +v -0.750000 0.750000 -1.500000 +v -0.750000 0.750000 0.125000 +v -0.750000 1.500000 0.125000 +v -0.750000 1.500000 -1.500000 +v -0.750000 1.500000 0.125000 +v -0.750000 1.750000 -1.500000 +v -0.750000 1.750000 0.125000 +v -0.625000 1.500000 -1.500000 +v -0.625000 0.750000 -1.500000 +v -0.625000 0.750000 0.125000 +v -0.625000 1.500000 0.125000 +v 0.375000 -0.250000 -0.250000 +v -0.375000 -0.250000 -0.250000 +v -0.500000 1.500000 -1.500000 +v -0.500000 1.500000 0.125000 +v -0.500000 1.750000 -1.500000 +v -0.500000 1.750000 0.125000 +v -0.375000 -2.750000 -2.000000 +v 0.375000 -2.750000 -2.000000 +v 0.375000 -3.250000 -0.250000 +v 0.375000 -3.250000 -1.500000 +v -0.375000 -3.250000 -0.250000 +v -0.375000 -3.250000 -1.500000 +v -0.375000 -2.000000 -2.000000 +v 0.375000 -2.000000 -2.000000 +v -0.375000 -1.000000 -1.750000 +v 0.375000 -1.000000 -1.750000 +v -0.375000 -0.500000 -2.250000 +v 0.375000 -0.500000 -2.250000 +v -0.375000 -0.250000 -2.250000 +v 0.375000 -0.250000 -2.250000 +v 0.625000 -2.750000 -1.750000 +v 0.625000 -3.250000 -1.250000 +v 0.625000 -3.250000 -0.375000 +v 0.625000 -0.250000 -0.375000 +v 0.625000 -2.000000 -1.750000 +v 0.625000 -1.000000 -1.500000 +v 0.625000 -0.500000 -2.000000 +v 0.625000 -0.250000 -2.000000 +v -0.625000 -3.250000 -1.250000 +v -0.625000 -2.750000 -1.750000 +v -0.625000 -3.250000 -0.375000 +v -0.625000 -0.250000 -0.375000 +v -0.625000 -2.000000 -1.750000 +v -0.625000 -1.000000 -1.500000 +v -0.625000 -0.500000 -2.000000 +v -0.625000 -0.250000 -2.000000 +v -0.250000 0.000000 1.375000 +v 0.250000 0.000000 1.375000 +v -0.250000 0.000000 1.250000 +v 0.250000 0.000000 1.250000 +v -0.250000 -1.250000 1.375000 +v 0.250000 -1.250000 1.375000 +v -0.250000 -1.250000 1.250000 +v 0.250000 -1.250000 1.250000 +v -0.250000 -1.500000 1.000000 +v 0.250000 -1.500000 1.000000 +v -0.250000 -1.625000 1.000000 +v 0.250000 -1.625000 1.000000 +v -0.250000 -1.500000 0.250000 +v 0.250000 -1.500000 0.250000 +v -0.250000 -1.625000 0.250000 +v 0.250000 -1.625000 0.250000 +v -0.250000 -1.250000 -0.250000 +v 0.250000 -1.250000 -0.250000 +v -0.250000 -1.375000 -0.250000 +v 0.250000 -1.375000 -0.250000 +v -0.156250 -0.250000 0.312500 +v 0.156250 -0.250000 0.312500 +v -0.156250 -0.250000 0.187500 +v 0.156250 -0.250000 0.187500 +v -0.156250 -0.875000 0.312500 +v 0.156250 -0.875000 0.312500 +v -0.156250 -0.875000 0.187500 +v 0.156250 -0.875000 0.187500 +v -0.156250 -1.187500 0.562500 +v 0.156250 -1.187500 0.562500 +v -0.375000 1.500000 5.375000 +v 0.375000 1.500000 5.375000 +v -0.375000 1.500000 4.625000 +v 0.375000 1.500000 4.625000 +v -0.375000 1.625000 4.625000 +v -0.375000 1.625000 5.375000 +v 0.375000 1.625000 5.375000 +v 0.375000 1.625000 4.625000 +v 0.000000 1.625000 4.750000 +v -0.176777 1.625000 4.823223 +v -0.250000 1.625000 5.000000 +v -0.176777 1.625000 5.176777 +v 0.000000 1.625000 5.250000 +v 0.176777 1.625000 5.176777 +v 0.250000 1.625000 5.000000 +v 0.176777 1.625000 4.823223 +v 0.000000 1.687500 4.750000 +v -0.176777 1.687500 4.823223 +v -0.250000 1.687500 5.000000 +v -0.176777 1.687500 5.176777 +v 0.000000 1.687500 5.250000 +v 0.176777 1.687500 5.176777 +v 0.250000 1.687500 5.000000 +v 0.176777 1.687500 4.823223 +v -0.062500 1.687500 5.062500 +v 0.062500 1.687500 5.062500 +v -0.062500 1.687500 4.937500 +v 0.062500 1.687500 4.937500 +v -0.062500 2.187500 4.937500 +v -0.062500 2.187500 5.062500 +v 0.062500 2.187500 5.062500 +v 0.062500 2.187500 4.937500 +v -0.250000 1.500000 -4.250000 +v 0.250000 1.500000 -4.250000 +v -0.250000 1.500000 -5.250000 +v 0.250000 1.500000 -5.250000 +v -0.250000 1.750000 -5.250000 +v -0.250000 1.750000 -4.250000 +v 0.250000 1.750000 -4.250000 +v 0.250000 1.750000 -5.250000 +v 0.250000 1.500000 -4.250000 +v 0.250000 1.500000 -5.250000 +v 0.375000 1.500000 -4.250000 +v 0.375000 1.500000 -5.250000 +v 0.375000 2.000000 -4.250000 +v 0.375000 2.000000 -5.250000 +v 0.250000 2.000000 -4.250000 +v 0.250000 2.000000 -5.250000 +v -0.375000 1.500000 -4.250000 +v -0.375000 1.500000 -5.250000 +v -0.250000 1.500000 -4.250000 +v -0.250000 1.500000 -5.250000 +v -0.250000 2.000000 -4.250000 +v -0.250000 2.000000 -5.250000 +v -0.375000 2.000000 -4.250000 +v -0.375000 2.000000 -5.250000 +v -0.187500 1.750000 -4.625000 +v 0.187500 1.750000 -4.625000 +v -0.187500 1.750000 -4.875000 +v 0.187500 1.750000 -4.875000 +v -0.187500 2.250000 -4.875000 +v -0.187500 2.250000 -4.625000 +v 0.187500 2.250000 -4.625000 +v 0.187500 2.250000 -4.875000 +v -0.062500 2.375000 -4.875000 +v -0.062500 2.375000 -4.625000 +v 0.062500 2.375000 -4.625000 +v 0.062500 2.375000 -4.875000 +v -0.125000 2.250000 -4.625000 +v 0.125000 2.250000 -4.625000 +v -0.125000 2.250000 -4.875000 +v 0.125000 2.250000 -4.875000 +v -0.125000 2.125000 -4.625000 +v 0.125000 2.125000 -4.625000 +v -0.125000 2.125000 -4.875000 +v 0.125000 2.125000 -4.875000 +v 0.062500 2.312500 -4.625000 +v 0.062500 2.062500 -4.625000 +v 0.062500 2.312500 -4.875000 +v 0.062500 2.062500 -4.875000 +v -0.062500 2.312500 -4.625000 +v -0.062500 2.062500 -4.625000 +v -0.062500 2.312500 -4.875000 +v -0.062500 2.062500 -4.875000 +v -0.625000 0.000000 -5.500000 +v 0.625000 0.000000 -5.500000 +v -0.625000 1.000000 -5.500000 +v 0.625000 1.000000 -5.500000 +v -0.625000 1.000000 -5.750000 +v -0.625000 0.000000 -5.750000 +v 0.625000 0.000000 -5.750000 +v 0.625000 1.000000 -5.750000 +v -0.625000 0.750000 -6.000000 +v -0.625000 0.250000 -6.000000 +v 0.625000 0.250000 -6.000000 +v 0.625000 0.750000 -6.000000 +v -0.875000 0.312500 -5.875000 +v 0.875000 0.312500 -5.875000 +v -0.875000 0.224112 -5.838388 +v 0.875000 0.224112 -5.838388 +v -0.875000 0.187500 -5.750000 +v 0.875000 0.187500 -5.750000 +v -0.875000 0.224112 -5.661612 +v 0.875000 0.224112 -5.661612 +v -0.875000 0.312500 -5.625000 +v 0.875000 0.312500 -5.625000 +v -0.875000 0.400888 -5.661612 +v 0.875000 0.400888 -5.661612 +v -0.875000 0.437500 -5.750000 +v 0.875000 0.437500 -5.750000 +v -0.875000 0.400888 -5.838388 +v 0.875000 0.400888 -5.838388 +v -0.500000 1.500000 4.562500 +v -0.500000 1.500000 5.437500 +v -0.500000 1.875000 5.437500 +v -0.500000 2.018506 5.404197 +v -0.500000 2.140165 5.309359 +v -0.500000 2.221455 5.167424 +v -0.375000 1.875000 4.562500 +v -0.375000 2.018506 4.595803 +v -0.375000 2.140165 4.690641 +v -0.375000 2.221455 4.832576 +v -0.375000 2.250000 5.000000 +v -0.375000 2.221455 5.167424 +v -0.375000 2.140165 5.309359 +v -0.375000 2.018506 5.404197 +v -0.375000 1.875000 5.437500 +v -0.500000 2.250000 5.000000 +v -0.500000 2.221455 4.832576 +v -0.500000 2.140165 4.690641 +v -0.500000 2.018506 4.595803 +v -0.500000 1.875000 4.562500 +v -0.375000 1.500000 5.437500 +v -0.375000 1.500000 4.562500 +v -0.500000 2.000000 -5.375000 +v -0.500000 2.167424 -5.327425 +v -0.500000 2.309359 -5.191942 +v -0.500000 2.404197 -4.989178 +v -0.500000 2.437500 -4.750000 +v -0.500000 2.404197 -4.510823 +v -0.500000 2.309359 -4.308059 +v -0.500000 2.167424 -4.172575 +v -0.500000 2.000000 -4.125000 +v -0.375000 2.437500 -4.750000 +v -0.375000 2.404197 -4.989178 +v -0.375000 2.309359 -5.191942 +v -0.375000 2.167424 -5.327425 +v -0.375000 2.000000 -5.375000 +v -0.500000 1.500000 -4.125000 +v -0.500000 1.500000 -5.375000 +v -0.375000 2.404197 -4.510823 +v -0.375000 2.309359 -4.308059 +v -0.375000 2.167424 -4.172575 +v -0.375000 2.000000 -4.125000 +v -0.375000 1.500000 -4.125000 +v -0.375000 1.500000 -5.375000 +vt 0.049180 0.521739 +vt 0.336066 0.391304 +vt 0.336066 0.521739 +vt 0.049180 0.391304 +vt 0.336066 0.260870 +vt 0.000000 0.130435 +vt 0.049180 0.260870 +vt -0.000000 0.260870 +vt 0.336066 0.000000 +vt 0.348361 0.130435 +vt 0.336066 0.130435 +vt 0.655738 0.260870 +vt 0.663934 0.277174 +vt 0.655738 0.282609 +vt 0.655738 0.369565 +vt 0.663934 0.385870 +vt 0.655738 0.391304 +vt 0.655738 0.173913 +vt 0.663934 0.190217 +vt 0.655738 0.195652 +vt 0.655738 0.304348 +vt 0.663934 0.288043 +vt 0.663934 0.298913 +vt 0.663934 0.244565 +vt 0.663934 0.255435 +vt 0.663934 0.353261 +vt 0.663934 0.364130 +vt 0.663934 0.157609 +vt 0.663934 0.168478 +vt 0.655738 0.239130 +vt 0.663934 0.222826 +vt 0.663934 0.233696 +vt 0.655738 0.326087 +vt 0.663934 0.342391 +vt 0.655738 0.347826 +vt 0.655738 0.413043 +vt 0.663934 0.396739 +vt 0.663934 0.407609 +vt 0.663934 0.211957 +vt 0.655738 0.217391 +vt 0.663934 0.320652 +vt 0.704918 0.500000 +vt 0.706967 0.510870 +vt 0.704918 0.510870 +vt 0.704918 0.554348 +vt 0.706967 0.565217 +vt 0.704918 0.565217 +vt 0.704918 0.532609 +vt 0.706967 0.543478 +vt 0.704918 0.543478 +vt 0.704918 0.586957 +vt 0.706967 0.597826 +vt 0.704918 0.597826 +vt 0.706967 0.489130 +vt 0.706967 0.500000 +vt 0.706967 0.554348 +vt 0.704918 0.521739 +vt 0.706967 0.532609 +vt 0.704918 0.576087 +vt 0.706967 0.586957 +vt 0.704918 0.489130 +vt 0.706967 0.478261 +vt 0.706967 0.521739 +vt 0.706967 0.576087 +vt 0.704918 0.608696 +vt 0.706967 0.608696 +vt 0.663102 0.470094 +vt 0.657787 0.478232 +vt 0.652472 0.453819 +vt 0.483607 0.434783 +vt 0.598361 0.282609 +vt 0.598361 0.434783 +vt 0.598361 0.217391 +vt 0.483607 0.065217 +vt 0.598361 0.065217 +vt 0.459016 0.065217 +vt 0.483607 0.217391 +vt 0.459016 0.217391 +vt 0.622951 0.217391 +vt 0.622951 0.065217 +vt 0.483607 0.282609 +vt 0.598361 0.000000 +vt 0.483607 0.000000 +vt 0.725410 0.152174 +vt 0.663934 -0.000000 +vt 0.725410 0.000000 +vt 0.663934 0.152174 +vt 0.622951 0.119565 +vt 0.348361 0.260870 +vt 0.409836 0.391304 +vt 0.348361 0.391304 +vt 0.348361 0.250000 +vt 0.348361 0.510870 +vt 0.459016 0.250000 +vt 0.409836 0.141304 +vt 0.459016 0.141304 +vt 0.348361 0.402174 +vt 0.409836 0.510870 +vt 0.348361 -0.000000 +vt 0.409836 0.130435 +vt 0.348361 0.141304 +vt 0.409836 0.250000 +vt 0.737705 0.141304 +vt 0.823770 0.141304 +vt 0.795082 0.141304 +vt 0.795082 0.010870 +vt 0.737705 0.010870 +vt 0.475410 0.489130 +vt 0.639344 0.510870 +vt 0.409836 0.510870 +vt 0.536885 0.434783 +vt 0.573770 0.456522 +vt 0.536885 0.456522 +vt 0.483607 0.434783 +vt 0.475410 0.456522 +vt 0.409836 0.434783 +vt 0.475410 0.565217 +vt 0.639344 0.586956 +vt 0.409836 0.586956 +vt 0.639344 0.510870 +vt 0.475410 0.532609 +vt 0.409836 0.510870 +vt 0.742525 0.779778 +vt 0.737925 0.772791 +vt 0.733772 0.750000 +vt 0.733772 0.750000 +vt 0.747951 0.782232 +vt 0.762129 0.750000 +vt 0.684794 0.795957 +vt 0.678156 0.787723 +vt 0.672164 0.760865 +vt 0.692623 0.798848 +vt 0.713082 0.760865 +vt 0.672164 0.760865 +vt 0.180328 0.065217 +vt 0.049180 0.130435 +vt 0.049180 -0.000000 +vt 0.233607 0.065217 +vt 0.471311 0.326087 +vt 0.467213 0.260870 +vt 0.471311 0.260870 +vt 0.467213 0.250000 +vt 0.413934 0.260870 +vt 0.413934 0.250000 +vt 0.409836 0.260870 +vt 0.413934 0.326087 +vt 0.409836 0.326087 +vt 0.479508 0.434783 +vt 0.471311 0.413043 +vt 0.479508 0.413043 +vt 0.409836 0.413043 +vt 0.418033 0.434783 +vt 0.409836 0.434783 +vt 0.418033 0.413043 +vt 0.471311 0.434783 +vt 0.483607 0.478261 +vt 0.483607 0.456522 +vt 0.233607 0.141304 +vt 0.233607 0.130435 +vt 0.536885 0.608696 +vt 0.528689 0.695652 +vt 0.495902 0.673913 +vt 0.467213 0.326087 +vt 0.676230 0.663043 +vt 0.717213 0.673913 +vt 0.676230 0.673913 +vt 0.676230 0.608696 +vt 0.717213 0.619565 +vt 0.676230 0.619565 +vt 0.719262 0.608696 +vt 0.733607 0.619565 +vt 0.733607 0.663043 +vt 0.719262 0.673913 +vt 0.717213 0.663043 +vt 0.758197 0.673913 +vt 0.733607 0.673913 +vt 0.733607 0.608696 +vt 0.758197 0.619565 +vt 0.758197 0.608696 +vt 0.774590 0.619565 +vt 0.774590 0.663043 +vt 0.774590 0.673913 +vt 0.657787 0.777174 +vt 0.668033 0.722826 +vt 0.668033 0.777174 +vt 0.643443 0.777174 +vt 0.653689 0.722826 +vt 0.653689 0.777174 +vt 0.657787 0.722826 +vt 0.672131 0.722826 +vt 0.672131 0.777174 +vt 0.643443 0.722826 +vt 0.653689 0.695652 +vt 0.657787 0.695652 +vt 0.672131 0.695652 +vt 0.536885 0.478261 +vt 0.573770 0.489130 +vt 0.766393 0.858696 +vt 0.741803 0.793478 +vt 0.766393 0.793478 +vt 0.737705 0.793478 +vt 0.741803 0.858696 +vt 0.737705 0.858696 +vt 0.770492 0.858696 +vt 0.770492 0.793478 +vt 0.821721 0.766322 +vt 0.813518 0.744565 +vt 0.821721 0.722809 +vt 0.684426 0.809783 +vt 0.651639 0.853261 +vt 0.651639 0.809783 +vt 0.834016 0.766304 +vt 0.829918 0.777174 +vt 0.829918 0.766304 +vt 0.842213 0.722826 +vt 0.838115 0.766304 +vt 0.838115 0.722826 +vt 0.834016 0.722826 +vt 0.829918 0.722826 +vt 0.846311 0.722826 +vt 0.842213 0.766304 +vt 0.729508 0.853261 +vt 0.696721 0.809783 +vt 0.729508 0.809783 +vt 0.684426 0.864130 +vt 0.684426 0.853261 +vt 0.651639 0.853261 +vt 0.684426 0.864130 +vt 0.651639 0.864130 +vt 0.688525 0.809783 +vt 0.696721 0.853261 +vt 0.688525 0.853261 +vt 0.737705 0.853261 +vt 0.737705 0.809783 +vt 0.688525 0.809783 +vt 0.651639 0.809783 +vt 0.647541 0.853261 +vt 0.647541 0.809783 +vt 0.647541 0.853261 +vt 0.647541 0.809783 +vt 0.688525 0.809783 +vt 0.684426 0.853261 +vt 0.684426 0.809783 +vt 0.631148 0.847826 +vt 0.635246 0.842391 +vt 0.635246 0.847826 +vt 0.627049 0.836957 +vt 0.631148 0.842391 +vt 0.639344 0.836957 +vt 0.610656 0.842391 +vt 0.614754 0.847826 +vt 0.610656 0.847826 +vt 0.606557 0.836957 +vt 0.608607 0.836957 +vt 0.614754 0.842391 +vt 0.618852 0.836957 +vt 0.608607 0.826087 +vt 0.606557 0.793478 +vt 0.616803 0.826087 +vt 0.618562 0.793404 +vt 0.614754 0.820652 +vt 0.610656 0.820652 +vt 0.637295 0.826087 +vt 0.639344 0.793478 +vt 0.629098 0.826087 +vt 0.627049 0.793478 +vt 0.635246 0.820652 +vt 0.631148 0.820652 +vt 0.659836 0.885870 +vt 0.659836 0.972826 +vt 0.643443 0.951087 +vt 0.586066 0.972826 +vt 0.586066 0.885870 +vt 0.602459 0.907609 +vt 0.524591 0.999951 +vt 0.520510 0.989130 +vt 0.524591 0.978309 +vt 0.524590 0.978212 +vt 0.521705 0.975042 +vt 0.527475 0.959739 +vt 0.742525 0.779778 +vt 0.737925 0.772791 +vt 0.733772 0.750000 +vt 0.733772 0.750000 +vt 0.747951 0.782232 +vt 0.762129 0.750000 +vt 0.684794 0.795957 +vt 0.678156 0.787723 +vt 0.672164 0.760865 +vt 0.692623 0.798848 +vt 0.713082 0.760865 +vt 0.672164 0.760865 +vt 0.663934 0.266304 +vt 0.663934 0.375000 +vt 0.663934 0.179348 +vt 0.655738 0.152174 +vt 0.663934 0.331522 +vt 0.663934 0.201087 +vt 0.663934 0.309783 +vt 0.704918 0.478261 +vt 0.654719 0.476052 +vt 0.652472 0.470094 +vt 0.651650 0.461957 +vt 0.654719 0.447861 +vt 0.663102 0.453819 +vt 0.657787 0.445681 +vt 0.660855 0.447861 +vt 0.663924 0.461957 +vt 0.660855 0.476052 +vt 0.635246 0.152174 +vt 0.622951 0.032609 +vt 0.635246 0.000000 +vt 0.409836 0.260870 +vt 0.409836 0.402174 +vt 0.409836 0.000000 +vt 0.823770 0.010870 +vt 0.836066 0.032609 +vt 0.836066 0.119565 +vt 0.639344 0.434783 +vt 0.573770 0.565217 +vt 0.573770 0.532609 +vt 0.734852 0.762334 +vt 0.733772 0.717768 +vt 0.762129 0.717768 +vt 0.762129 0.750000 +vt 0.761050 0.762334 +vt 0.757977 0.772791 +vt 0.747951 0.782232 +vt 0.753377 0.779778 +vt 0.734852 0.762334 +vt 0.737925 0.772791 +vt 0.742525 0.779778 +vt 0.753377 0.779778 +vt 0.757977 0.772791 +vt 0.761050 0.762334 +vt 0.762129 0.717768 +vt 0.733772 0.717768 +vt 0.673721 0.775401 +vt 0.672164 0.717456 +vt 0.713082 0.717456 +vt 0.713082 0.760865 +vt 0.711525 0.775401 +vt 0.707090 0.787723 +vt 0.692623 0.798848 +vt 0.700452 0.795957 +vt 0.673721 0.775401 +vt 0.678156 0.787723 +vt 0.684794 0.795957 +vt 0.700452 0.795957 +vt 0.707090 0.787723 +vt 0.711525 0.775401 +vt 0.713082 0.717456 +vt 0.672164 0.717456 +vt 0.180328 0.130435 +vt 0.180328 0.141304 +vt 0.536885 0.673913 +vt 0.500000 0.695652 +vt 0.495902 0.608696 +vt 0.500000 0.586957 +vt 0.528689 0.586957 +vt 0.717213 0.608696 +vt 0.731557 0.608696 +vt 0.731557 0.673913 +vt 0.758197 0.663043 +vt 0.774590 0.608696 +vt 0.643443 0.695652 +vt 0.668033 0.695652 +vt 0.827522 0.729181 +vt 0.829925 0.744565 +vt 0.827522 0.759950 +vt 0.815921 0.759950 +vt 0.815921 0.729181 +vt 0.834016 0.777174 +vt 0.846311 0.766304 +vt 0.651639 0.864130 +vt 0.688525 0.853261 +vt 0.688525 0.853261 +vt 0.629098 0.836957 +vt 0.637295 0.836957 +vt 0.616803 0.836957 +vt 0.651639 0.972826 +vt 0.643443 0.907609 +vt 0.651639 0.885870 +vt 0.594262 0.885870 +vt 0.602459 0.951087 +vt 0.594262 0.972826 +vt 0.527476 0.981478 +vt 0.528671 0.989130 +vt 0.527476 0.996782 +vt 0.521705 0.996782 +vt 0.521705 0.981478 +vt 0.520510 0.967391 +vt 0.521705 0.959739 +vt 0.524590 0.956569 +vt 0.528670 0.967391 +vt 0.527475 0.975042 +vt 0.734852 0.762334 +vt 0.733772 0.717768 +vt 0.762129 0.717768 +vt 0.762129 0.750000 +vt 0.761050 0.762334 +vt 0.757977 0.772791 +vt 0.747951 0.782232 +vt 0.753377 0.779778 +vt 0.734852 0.762334 +vt 0.737925 0.772791 +vt 0.742525 0.779778 +vt 0.753377 0.779778 +vt 0.757977 0.772791 +vt 0.761050 0.762334 +vt 0.762129 0.717768 +vt 0.733772 0.717768 +vt 0.673721 0.775401 +vt 0.672164 0.717456 +vt 0.713082 0.717456 +vt 0.713082 0.760865 +vt 0.711525 0.775401 +vt 0.707090 0.787723 +vt 0.692623 0.798848 +vt 0.700452 0.795957 +vt 0.673721 0.775401 +vt 0.678156 0.787723 +vt 0.684794 0.795957 +vt 0.700452 0.795957 +vt 0.707090 0.787723 +vt 0.711525 0.775401 +vt 0.713082 0.717456 +vt 0.672164 0.717456 +vt 0.627049 0.217391 +vt 0.627049 0.239130 +vt 0.627049 0.326087 +vt 0.627049 0.347826 +vt 0.627049 0.391304 +vt 0.627049 0.413043 +vt 0.627049 0.195652 +vt 0.627049 0.304348 +vt 0.627049 0.260870 +vt 0.627049 0.282609 +vt 0.627049 0.369565 +vt 0.627049 0.173913 +vt 0.627049 0.152174 +vt 0.639344 0.554348 +vt 0.639344 0.565217 +vt 0.639344 0.532609 +vt 0.639344 0.543478 +vt 0.639344 0.586957 +vt 0.639344 0.597826 +vt 0.639344 0.489130 +vt 0.639344 0.500000 +vt 0.639344 0.521739 +vt 0.639344 0.576087 +vt 0.639344 0.478261 +vt 0.639344 0.510870 +vt 0.639344 0.608696 +vt 0.772541 0.510870 +vt 0.772541 0.565217 +vt 0.772541 0.543478 +vt 0.772541 0.597826 +vt 0.772541 0.500000 +vt 0.772541 0.554348 +vt 0.772541 0.532609 +vt 0.772541 0.586957 +vt 0.772541 0.489130 +vt 0.772541 0.521739 +vt 0.772541 0.576087 +vt 0.772541 0.608696 +vt 0.725410 0.271739 +vt 0.737705 0.233696 +vt 0.737705 0.271739 +vt 0.663934 0.358696 +vt 0.725410 0.358696 +vt 0.663934 0.228261 +vt 0.725410 0.228261 +vt 0.663934 0.402174 +vt 0.663934 0.271739 +vt 0.725410 0.402174 +vt 0.663934 0.478261 +vt 0.795082 0.271739 +vt 0.737705 0.396739 +vt 0.737705 0.478261 +vt 0.725410 0.478261 +vt 0.737705 0.228261 +vt 0.737705 0.358696 +vt 0.737705 0.152174 +vt 0.795082 0.228261 +vt 0.795082 0.396739 +vt 0.737705 0.402174 +vt 0.795082 0.478261 +vt 0.795082 0.358696 +vt 0.639344 0.489130 +vt 0.639344 0.456522 +vt 0.409836 0.456522 +vt 0.409836 0.489130 +vt 0.639344 0.565217 +vt 0.639344 0.532609 +vt 0.409836 0.532609 +vt 0.409836 0.565217 +vt 0.735656 0.793478 +vt 0.741803 0.782609 +vt 0.741803 0.793478 +vt 0.754098 0.793478 +vt 0.760246 0.782609 +vt 0.760246 0.793478 +vt 0.713115 0.793478 +vt 0.725410 0.782609 +vt 0.725410 0.793478 +vt 0.729508 0.793478 +vt 0.735656 0.782609 +vt 0.747951 0.793478 +vt 0.754098 0.782609 +vt 0.770492 0.793478 +vt 0.782787 0.782609 +vt 0.782787 0.793478 +vt 0.766393 0.793478 +vt 0.770492 0.782609 +vt 0.729508 0.782609 +vt 0.747951 0.782609 +vt 0.766393 0.782609 +vt 0.715164 0.798913 +vt 0.709016 0.809783 +vt 0.709016 0.798913 +vt 0.692623 0.798913 +vt 0.684426 0.809783 +vt 0.684426 0.798913 +vt 0.670082 0.798913 +vt 0.663934 0.809783 +vt 0.663934 0.798913 +vt 0.721311 0.798913 +vt 0.715164 0.809783 +vt 0.737705 0.798913 +vt 0.721311 0.809783 +vt 0.700820 0.798913 +vt 0.692623 0.809783 +vt 0.676230 0.798913 +vt 0.670082 0.809783 +vt 0.647541 0.809783 +vt 0.647541 0.798913 +vt 0.700820 0.809783 +vt 0.676230 0.809783 +vt 0.586066 0.891304 +vt 0.561475 0.934783 +vt 0.561475 0.891304 +vt 0.467213 0.956522 +vt 0.491803 0.695652 +vt 0.491803 0.956522 +vt 0.586066 0.739130 +vt 0.561475 0.804348 +vt 0.561475 0.739130 +vt 0.586066 0.695652 +vt 0.561475 0.695652 +vt 0.586066 0.804348 +vt 0.586066 0.934783 +vt 0.561475 0.956522 +vt 0.553279 0.804348 +vt 0.545082 0.739130 +vt 0.553279 0.739130 +vt 0.561475 0.934783 +vt 0.553279 0.956522 +vt 0.561475 0.956522 +vt 0.545082 0.804348 +vt 0.545082 0.891304 +vt 0.553279 0.934783 +vt 0.536885 0.891304 +vt 0.500000 0.956522 +vt 0.536885 0.695652 +vt 0.528689 0.695652 +vt 0.545082 0.804348 +vt 0.545082 0.739130 +vt 0.459016 0.695652 +vt 0.467213 0.695652 +vt 0.545082 0.891304 +vt 0.538934 0.891304 +vt 0.553279 0.934783 +vt 0.536885 0.695652 +vt 0.553279 0.739130 +vt 0.553279 0.804348 +vt 0.500000 0.695652 +vt 0.717213 0.717391 +vt 0.676230 0.717391 +vt 0.731557 0.717391 +vt 0.719262 0.717391 +vt 0.758197 0.717391 +vt 0.733607 0.717391 +vt 0.774590 0.717391 +vt 0.799180 0.750000 +vt 0.793033 0.755435 +vt 0.793033 0.750000 +vt 0.786885 0.750000 +vt 0.780738 0.755435 +vt 0.780738 0.750000 +vt 0.774590 0.750000 +vt 0.768443 0.755435 +vt 0.768443 0.750000 +vt 0.811475 0.750000 +vt 0.805328 0.755435 +vt 0.805328 0.750000 +vt 0.786885 0.755435 +vt 0.774590 0.755435 +vt 0.762295 0.755435 +vt 0.762295 0.750000 +vt 0.799180 0.755435 +vt 0.598361 0.847826 +vt 0.606557 0.853261 +vt 0.598361 0.853261 +vt 0.647541 0.793478 +vt 0.618852 0.847826 +vt 0.627049 0.858696 +vt 0.618852 0.858696 +vt 0.647541 0.836957 +vt 0.639344 0.847826 +vt 0.598361 0.788043 +vt 0.606557 0.798913 +vt 0.598361 0.798913 +vt 0.598361 0.804348 +vt 0.606557 0.815217 +vt 0.606557 0.804348 +vt 0.598361 0.836957 +vt 0.606557 0.847826 +vt 0.606557 0.836957 +vt 0.598361 0.831522 +vt 0.606557 0.831522 +vt 0.598361 0.820652 +vt 0.606557 0.820652 +vt 0.598361 0.815217 +vt 0.500000 0.956522 +vt 0.602459 0.994565 +vt 0.643443 0.972826 +vt 0.643443 0.994565 +vt 0.643443 0.864130 +vt 0.602459 0.885870 +vt 0.602459 0.864130 +vt 0.602459 0.972826 +vt 0.643443 0.885870 +vt 0.528689 0.967391 +vt 0.586066 0.961957 +vt 0.586066 0.967391 +vt 0.528689 0.961957 +vt 0.586066 0.956522 +vt 0.528689 1.000000 +vt 0.586066 0.994565 +vt 0.586066 1.000000 +vt 0.528689 0.994565 +vt 0.586066 0.989130 +vt 0.528689 0.989130 +vt 0.586066 0.983696 +vt 0.528689 0.983696 +vt 0.586066 0.978261 +vt 0.528689 0.978261 +vt 0.586066 0.972826 +vt 0.528689 0.972826 +vt 0.553279 0.956522 +vt 0.735656 0.793478 +vt 0.741803 0.782609 +vt 0.741803 0.793478 +vt 0.754098 0.793478 +vt 0.760246 0.782609 +vt 0.760246 0.793478 +vt 0.713115 0.793478 +vt 0.725410 0.782609 +vt 0.725410 0.793478 +vt 0.729508 0.793478 +vt 0.735656 0.782609 +vt 0.747951 0.793478 +vt 0.754098 0.782609 +vt 0.770492 0.793478 +vt 0.782787 0.782609 +vt 0.782787 0.793478 +vt 0.766393 0.793478 +vt 0.770492 0.782609 +vt 0.729508 0.782609 +vt 0.747951 0.782609 +vt 0.766393 0.782609 +vt 0.715164 0.798913 +vt 0.709016 0.809783 +vt 0.709016 0.798913 +vt 0.692623 0.798913 +vt 0.684426 0.809783 +vt 0.684426 0.798913 +vt 0.670082 0.798913 +vt 0.663934 0.809783 +vt 0.663934 0.798913 +vt 0.721311 0.798913 +vt 0.715164 0.809783 +vt 0.737705 0.798913 +vt 0.721311 0.809783 +vt 0.700820 0.798913 +vt 0.692623 0.809783 +vt 0.676230 0.798913 +vt 0.670082 0.809783 +vt 0.647541 0.809783 +vt 0.647541 0.798913 +vt 0.700820 0.809783 +vt 0.676230 0.809783 +vt 0.772541 0.478261 +vt 0.795082 0.233696 +vt 0.795082 0.152174 +vt 0.795082 0.402174 +vt 0.713115 0.782609 +vt 0.737705 0.809783 +vt 0.586066 0.956522 +vt 0.459016 0.956522 +vt 0.811475 0.755435 +vt 0.627049 0.847826 +vt 0.647541 0.847826 +vt 0.606557 0.788043 +vt 0.528689 0.956522 +vt 0.713115 0.782609 +vt 0.737705 0.809783 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9487 0.0000 0.3162 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.9487 0.0000 0.3162 +vn 0.0000 0.6247 0.7809 +vn 0.0000 -0.7682 -0.6402 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.4072 -0.9129 0.0287 +vn 0.9363 -0.3291 0.1225 +vn 0.4719 -0.8817 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.4072 -0.9129 0.0287 +vn 0.9239 -0.3827 0.0000 +vn 0.9871 0.0000 0.1602 +vn 0.9188 -0.3671 0.1452 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9188 -0.3671 0.1452 +vn -0.9363 -0.3291 0.1225 +vn -0.9871 0.0000 0.1602 +vn -0.4719 -0.8817 0.0000 +vn 0.9571 -0.2898 0.0000 +vn -0.9571 -0.2898 0.0000 +vn 0.0000 0.9923 0.1240 +vn 0.0000 0.9923 -0.1240 +vn 0.0000 0.9981 0.0621 +vn 0.0000 0.9981 -0.0621 +vn 0.0000 0.7555 -0.6552 +vn 0.0000 0.9412 -0.3377 +vn 0.0000 0.9412 0.3377 +vn 0.0000 0.7555 0.6552 +vn 0.0000 0.1138 -0.9935 +vn 0.0000 0.4305 -0.9026 +vn 0.0000 0.1138 0.9935 +vn 0.0000 0.4305 0.9026 +vn 0.0000 0.4965 0.8681 +vn 0.0000 0.8121 0.5835 +vn 0.0000 0.9588 -0.2840 +vn 0.0000 0.4964 -0.8681 +vn 0.0000 0.1380 -0.9904 +vn 0.0000 0.1380 0.9904 +vn 0.0000 0.9588 0.2840 +vn 0.0000 0.8121 -0.5835 +vn -0.4148 -0.2800 -0.8658 +vn 0.3416 -0.3416 -0.8756 +vn 0.4148 -0.2800 -0.8658 +vn -0.2298 0.0000 0.9732 +vn 0.2298 0.0000 0.9732 +vn -0.3416 -0.3416 -0.8756 +vn 0.3711 0.1112 -0.9219 +vn -0.3458 -0.6635 -0.6635 +vn 0.3458 -0.6635 -0.6635 +vn -0.3711 0.1112 -0.9219 +vn 0.3827 0.0000 -0.9239 +vn 0.8727 -0.2257 -0.4330 +vn -0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 -0.9239 +vn 0.9123 0.0530 -0.4062 +vn 0.9607 -0.1962 -0.1962 +vn 0.9626 -0.0605 -0.2642 +vn 0.8507 0.0000 0.5257 +vn -0.9607 -0.1962 -0.1962 +vn -0.9123 0.0530 -0.4062 +vn -0.8727 -0.2257 -0.4330 +vn -0.8507 0.0000 0.5257 +vn -0.9626 -0.0605 -0.2642 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.9732 -0.2298 +vn 0.0000 0.9732 0.2298 +vn 0.0000 0.8944 0.4472 +vn 0.0000 -0.8944 -0.4472 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.9239 0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.9239 0.0000 -0.3827 +s off +f 637/1110/198 636/1111/198 635/1112/198 +f 638/1113/199 640/1114/199 636/1111/199 +f 637/1115/200 642/1116/200 638/1117/200 +f 635/1118/201 741/1119/201 639/1120/201 +f 656/1121/202 667/1122/202 655/1123/202 +f 663/1124/202 674/1125/202 662/1126/202 +f 660/1127/202 671/1128/202 659/1129/202 +f 666/1130/202 667/1131/202 678/1132/202 +f 656/1121/202 669/1133/202 668/1134/202 +f 663/1124/202 676/1135/202 675/1136/202 +f 660/1127/202 673/1137/202 672/1138/202 +f 657/1139/202 670/1140/202 669/1141/202 +f 665/1142/202 676/1143/202 664/1144/202 +f 661/1145/202 674/1146/202 673/1147/202 +f 659/1129/202 670/1148/202 658/1149/202 +f 666/1130/202 677/1150/202 665/1142/202 +f 683/1151/202 694/1152/202 682/1153/202 +f 690/1154/202 701/1155/202 689/1156/202 +f 680/1157/202 691/1158/202 679/1159/202 +f 687/1160/202 698/1161/202 686/1162/202 +f 683/1151/202 696/1163/202 695/1164/202 +f 690/1154/202 691/1158/202 702/1165/202 +f 681/1166/202 692/1167/202 680/1157/202 +f 688/1168/202 699/1169/202 687/1160/202 +f 684/1170/202 697/1171/202 696/1163/202 +f 682/1153/202 693/1172/202 681/1166/202 +f 689/1156/202 700/1173/202 688/1168/202 +f 685/1174/202 698/1161/202 697/1175/202 +f 713/1176/202 703/1177/202 707/1178/202 +f 717/1179/198 716/1180/198 715/1181/198 +f 721/1182/203 719/1183/203 720/1184/203 +f 717/1185/200 722/1186/200 718/1187/200 +f 716/1188/202 720/1184/202 715/1189/202 +f 718/1190/199 721/1182/199 716/1180/199 +f 715/1191/204 719/1183/204 717/1192/204 +f 725/1193/203 723/1194/203 724/1195/203 +f 723/1194/200 726/1196/200 734/1197/200 +f 742/1198/199 744/1199/199 740/1200/199 +f 640/1114/205 740/1200/205 636/1111/205 +f 639/1120/203 742/1201/203 640/1114/203 +f 636/1111/198 739/1202/198 635/1112/198 +f 744/1203/202 745/1204/202 743/1205/202 +f 740/1206/198 743/1207/198 739/1202/198 +f 739/1208/204 745/1209/204 741/1119/204 +f 741/1210/203 746/1211/203 742/1201/203 +f 724/1195/203 737/1212/203 725/1193/203 +f 751/1213/202 754/1214/202 750/1215/202 +f 738/1216/203 754/1214/203 737/1212/203 +f 762/1217/199 757/1218/199 758/1219/199 +f 820/1220/204 759/1221/204 822/1222/204 +f 819/1223/204 760/1224/204 756/1225/204 +f 770/1226/199 765/1227/199 766/1228/199 +f 763/1229/204 768/1230/204 764/1231/204 +f 787/1232/204 788/1233/204 790/1234/204 +f 777/1235/199 781/1236/199 785/1237/199 +f 796/1238/204 795/1239/204 793/1240/204 +f 802/1241/199 812/1242/199 806/1243/199 +f 816/1244/204 641/1245/204 637/1246/204 +f 635/1118/204 816/1244/204 637/1246/204 +f 639/1120/204 817/1247/204 635/1118/204 +f 818/1248/200 825/1249/200 817/1250/200 +f 817/1251/203 824/1252/203 816/1253/203 +f 816/1254/202 823/1255/202 815/1256/202 +f 822/1257/200 830/1258/200 820/1259/200 +f 819/1260/202 831/1261/202 821/1262/202 +f 829/1263/204 832/1264/204 831/1261/204 +f 831/1265/203 760/1224/203 821/1266/203 +f 826/1267/203 818/1268/203 639/1120/203 +f 838/1269/198 848/1270/198 835/1271/198 +f 824/1252/204 826/1272/204 823/1255/204 +f 864/1273/199 870/1274/199 866/1275/199 +f 865/1276/204 867/1277/204 863/1278/204 +f 869/1279/204 873/1280/204 867/1277/204 +f 874/1281/199 870/1282/199 868/1283/199 +f 874/1281/199 876/1284/199 872/1285/199 +f 871/1286/204 877/1287/204 873/1280/204 +f 875/1288/204 881/1289/204 877/1287/204 +f 876/1284/199 882/1290/199 880/1291/199 +f 886/1292/200 889/1293/200 885/1294/200 +f 883/1295/202 888/1296/202 884/1297/202 +f 884/1297/199 890/1298/199 886/1292/199 +f 885/1294/204 887/1299/204 883/1300/204 +f 887/1301/206 892/1302/206 888/1296/206 +f 892/1303/207 889/1293/207 890/1298/207 +f 887/1299/204 889/1293/204 891/1304/204 +f 888/1296/199 892/1302/199 890/1298/199 +f 762/1217/203 832/1305/203 761/1306/203 +f 832/1305/203 759/1221/203 761/1306/203 +f 899/1307/203 897/1308/203 898/1309/203 +f 895/1310/200 900/1311/200 896/1312/200 +f 894/1313/202 898/1309/202 893/1314/202 +f 913/1315/203 915/1316/203 909/1317/203 +f 933/1318/204 940/1319/204 934/1320/204 +f 923/1321/203 921/1322/203 922/1323/203 +f 919/1324/200 924/1325/200 920/1326/200 +f 918/1327/202 922/1323/202 917/1328/202 +f 920/1326/199 923/1321/199 918/1327/199 +f 917/1329/204 921/1330/204 919/1324/204 +f 931/1331/203 929/1332/203 930/1333/203 +f 937/1334/203 940/1319/203 939/1335/203 +f 945/1336/203 948/1337/203 947/1338/203 +f 927/1339/200 932/1340/200 928/1341/200 +f 926/1342/202 930/1333/202 925/1343/202 +f 935/1344/202 939/1335/202 933/1318/202 +f 943/1345/202 947/1346/202 941/1347/202 +f 934/1320/200 938/1348/200 936/1349/200 +f 942/1350/200 946/1351/200 944/1352/200 +f 945/1336/199 944/1352/199 946/1351/199 +f 960/1353/200 975/1354/200 957/1355/200 +f 956/1356/200 971/1357/200 960/1353/200 +f 975/1354/200 953/1358/200 957/1355/200 +f 973/1359/202 959/1360/202 958/1361/202 +f 973/1359/202 954/1362/202 961/1363/202 +f 969/1364/202 955/1365/202 959/1360/202 +f 965/1366/202 954/1362/202 949/1367/202 +f 955/1365/202 966/1368/202 950/1369/202 +f 970/1370/202 974/1371/202 949/1367/202 +f 953/1358/200 967/1372/200 951/1373/200 +f 968/1374/200 956/1356/200 952/1375/200 +f 976/1376/200 972/1377/200 952/1375/200 +f 977/1378/204 979/1379/204 985/1380/204 +f 980/1381/199 978/1382/199 987/1383/199 +f 1002/1384/199 998/1385/199 994/1386/199 +f 1001/1387/204 1003/1388/204 995/1389/204 +f 1021/1390/204 1022/1391/204 1024/1392/204 +f 1011/1393/199 1015/1394/199 1019/1395/199 +f 1030/1396/204 1029/1397/204 1027/1398/204 +f 1036/1399/199 1046/1400/199 1040/1401/199 +f 637/1110/198 638/1113/198 636/1111/198 +f 638/1113/199 642/1116/199 640/1114/199 +f 637/1115/200 641/1245/200 642/1116/200 +f 635/1118/201 739/1208/201 741/1119/201 +f 656/1121/202 668/1402/202 667/1122/202 +f 663/1124/202 675/1403/202 674/1125/202 +f 660/1127/202 672/1404/202 671/1128/202 +f 666/1130/202 655/1123/202 667/1131/202 +f 656/1121/202 657/1139/202 669/1133/202 +f 663/1124/202 664/1144/202 676/1135/202 +f 660/1127/202 661/1405/202 673/1137/202 +f 657/1139/202 658/1149/202 670/1140/202 +f 665/1142/202 677/1406/202 676/1143/202 +f 661/1145/202 662/1126/202 674/1146/202 +f 659/1129/202 671/1407/202 670/1148/202 +f 666/1130/202 678/1408/202 677/1150/202 +f 683/1151/202 695/1164/202 694/1152/202 +f 690/1154/202 702/1165/202 701/1155/202 +f 680/1157/202 692/1167/202 691/1158/202 +f 687/1160/202 699/1169/202 698/1161/202 +f 683/1151/202 684/1170/202 696/1163/202 +f 690/1154/202 679/1159/202 691/1158/202 +f 681/1166/202 693/1172/202 692/1167/202 +f 688/1168/202 700/1173/202 699/1169/202 +f 684/1170/202 685/1409/202 697/1171/202 +f 682/1153/202 694/1152/202 693/1172/202 +f 689/1156/202 701/1155/202 700/1173/202 +f 685/1174/202 686/1162/202 698/1161/202 +f 703/1177/202 704/1410/202 707/1178/202 +f 704/1410/202 705/1411/202 707/1178/202 +f 705/1411/202 706/1412/202 707/1178/202 +f 707/1178/202 708/1413/202 711/1414/202 +f 708/1413/202 709/1415/202 711/1414/202 +f 709/1415/202 710/1416/202 711/1414/202 +f 711/1414/202 712/1417/202 713/1176/202 +f 713/1176/202 714/1418/202 703/1177/202 +f 711/1414/202 713/1176/202 707/1178/202 +f 717/1179/198 718/1190/198 716/1180/198 +f 721/1182/203 722/1186/203 719/1183/203 +f 717/1185/200 719/1183/200 722/1186/200 +f 716/1188/202 721/1182/202 720/1184/202 +f 718/1190/199 722/1186/199 721/1182/199 +f 715/1191/204 720/1184/204 719/1183/204 +f 725/1193/203 726/1196/203 723/1194/203 +f 726/1196/200 733/1419/200 734/1197/200 +f 734/1197/200 731/1420/200 723/1194/200 +f 731/1420/200 732/1421/200 723/1194/200 +f 742/1198/199 746/1422/199 744/1199/199 +f 640/1114/205 742/1198/205 740/1200/205 +f 639/1120/203 741/1210/203 742/1201/203 +f 636/1111/198 740/1206/198 739/1202/198 +f 744/1203/202 746/1211/202 745/1204/202 +f 740/1206/198 744/1423/198 743/1207/198 +f 739/1208/204 743/1424/204 745/1209/204 +f 741/1210/203 745/1204/203 746/1211/203 +f 724/1195/203 738/1216/203 737/1212/203 +f 750/1215/202 749/1425/202 751/1213/202 +f 749/1425/202 753/1426/202 751/1213/202 +f 753/1426/202 752/1427/202 751/1213/202 +f 738/1216/203 750/1215/203 754/1214/203 +f 762/1217/199 761/1306/199 757/1218/199 +f 820/1220/204 755/1428/204 759/1221/204 +f 819/1223/204 821/1266/204 760/1224/204 +f 770/1226/199 769/1429/199 765/1227/199 +f 763/1229/204 767/1430/204 768/1230/204 +f 788/1233/204 789/1431/204 790/1234/204 +f 790/1234/204 771/1432/204 772/1433/204 +f 772/1433/204 773/1434/204 790/1234/204 +f 773/1434/204 774/1435/204 775/1436/204 +f 790/1234/204 773/1434/204 786/1437/204 +f 775/1436/204 776/1438/204 773/1434/204 +f 776/1438/204 786/1437/204 773/1434/204 +f 786/1437/204 787/1232/204 790/1234/204 +f 777/1235/199 778/1439/199 779/1440/199 +f 779/1440/199 780/1441/199 777/1235/199 +f 780/1441/199 781/1236/199 777/1235/199 +f 781/1236/199 782/1442/199 785/1237/199 +f 782/1442/199 783/1443/199 785/1237/199 +f 783/1443/199 784/1444/199 785/1237/199 +f 785/1237/199 791/1445/199 792/1446/199 +f 792/1446/199 777/1235/199 785/1237/199 +f 795/1239/204 794/1447/204 793/1240/204 +f 793/1240/204 808/1448/204 807/1449/204 +f 807/1449/204 801/1450/204 793/1240/204 +f 801/1450/204 800/1451/204 799/1452/204 +f 793/1240/204 801/1450/204 797/1453/204 +f 799/1452/204 798/1454/204 801/1450/204 +f 798/1454/204 797/1453/204 801/1450/204 +f 797/1453/204 796/1238/204 793/1240/204 +f 806/1243/199 805/1455/199 804/1456/199 +f 804/1456/199 803/1457/199 806/1243/199 +f 803/1457/199 802/1241/199 806/1243/199 +f 802/1241/199 809/1458/199 812/1242/199 +f 809/1458/199 810/1459/199 812/1242/199 +f 810/1459/199 811/1460/199 812/1242/199 +f 812/1242/199 813/1461/199 814/1462/199 +f 814/1462/199 806/1243/199 812/1242/199 +f 816/1244/204 815/1463/204 641/1245/204 +f 635/1118/204 817/1247/204 816/1244/204 +f 639/1120/204 818/1268/204 817/1247/204 +f 818/1248/200 826/1272/200 825/1249/200 +f 817/1251/203 825/1249/203 824/1252/203 +f 816/1254/202 824/1252/202 823/1255/202 +f 822/1257/200 832/1264/200 830/1258/200 +f 819/1260/202 829/1263/202 831/1261/202 +f 829/1263/204 830/1258/204 832/1264/204 +f 831/1265/203 762/1217/203 760/1224/203 +f 639/1120/203 640/1114/203 826/1267/203 +f 640/1114/203 642/1116/203 823/1464/203 +f 826/1267/203 640/1114/203 823/1464/203 +f 642/1116/203 641/1245/203 823/1464/203 +f 641/1245/203 815/1463/203 823/1464/203 +f 838/1269/198 836/1465/198 848/1270/198 +f 848/1270/198 849/1466/198 835/1271/198 +f 835/1271/198 837/1467/198 838/1269/198 +f 837/1467/198 857/1468/198 855/1469/198 +f 838/1269/198 837/1467/198 855/1469/198 +f 824/1252/204 825/1249/204 826/1272/204 +f 864/1273/199 868/1283/199 870/1274/199 +f 865/1276/204 869/1470/204 867/1277/204 +f 869/1279/204 871/1471/204 873/1280/204 +f 874/1281/199 872/1472/199 870/1282/199 +f 874/1281/199 878/1473/199 876/1284/199 +f 871/1286/204 875/1288/204 877/1287/204 +f 875/1288/204 879/1474/204 881/1289/204 +f 876/1284/199 878/1473/199 882/1290/199 +f 886/1292/200 890/1298/200 889/1293/200 +f 883/1295/202 887/1301/202 888/1296/202 +f 884/1297/199 888/1296/199 890/1298/199 +f 885/1294/204 889/1293/204 887/1299/204 +f 887/1301/206 891/1475/206 892/1302/206 +f 892/1303/207 891/1476/207 889/1293/207 +f 762/1217/203 831/1265/203 832/1305/203 +f 832/1305/203 822/1222/203 759/1221/203 +f 899/1307/203 900/1311/203 897/1308/203 +f 895/1310/200 897/1308/200 900/1311/200 +f 894/1313/202 899/1307/202 898/1309/202 +f 909/1317/203 910/1477/203 911/1478/203 +f 911/1478/203 912/1479/203 913/1315/203 +f 913/1315/203 914/1480/203 915/1316/203 +f 915/1316/203 916/1481/203 909/1317/203 +f 909/1317/203 911/1478/203 913/1315/203 +f 933/1318/204 939/1335/204 940/1319/204 +f 923/1321/203 924/1482/203 921/1322/203 +f 919/1324/200 921/1330/200 924/1325/200 +f 918/1327/202 923/1321/202 922/1323/202 +f 920/1326/199 924/1325/199 923/1321/199 +f 917/1329/204 922/1483/204 921/1330/204 +f 931/1331/203 932/1340/203 929/1332/203 +f 937/1334/203 938/1484/203 940/1319/203 +f 945/1336/203 946/1351/203 948/1337/203 +f 927/1339/200 929/1332/200 932/1340/200 +f 926/1342/202 931/1331/202 930/1333/202 +f 935/1344/202 937/1485/202 939/1335/202 +f 943/1345/202 945/1336/202 947/1346/202 +f 934/1320/200 940/1319/200 938/1348/200 +f 942/1350/200 948/1486/200 946/1351/200 +f 945/1336/199 943/1345/199 944/1352/199 +f 960/1353/200 971/1357/200 975/1354/200 +f 956/1356/200 964/1487/200 971/1357/200 +f 975/1354/200 963/1488/200 953/1358/200 +f 973/1359/202 969/1364/202 959/1360/202 +f 973/1359/202 958/1361/202 954/1362/202 +f 969/1364/202 962/1489/202 955/1365/202 +f 965/1366/202 961/1363/202 954/1362/202 +f 955/1365/202 962/1489/202 966/1368/202 +f 974/1371/202 965/1366/202 949/1367/202 +f 949/1367/202 950/1369/202 970/1370/202 +f 950/1369/202 966/1368/202 970/1370/202 +f 953/1358/200 963/1488/200 967/1372/200 +f 968/1374/200 964/1487/200 956/1356/200 +f 972/1377/200 968/1374/200 952/1375/200 +f 952/1375/200 951/1373/200 976/1376/200 +f 951/1373/200 967/1372/200 976/1376/200 +f 979/1379/204 981/1490/204 985/1380/204 +f 985/1380/204 986/1491/204 977/1378/204 +f 986/1491/204 982/1492/204 977/1378/204 +f 978/1382/199 983/1493/199 987/1383/199 +f 987/1383/199 988/1494/199 980/1381/199 +f 988/1494/199 984/1495/199 980/1381/199 +f 994/1386/199 992/1496/199 990/1497/199 +f 990/1497/199 1004/1498/199 1002/1384/199 +f 1002/1384/199 1000/1499/199 998/1385/199 +f 998/1385/199 996/1500/199 994/1386/199 +f 994/1386/199 990/1497/199 1002/1384/199 +f 1003/1388/204 989/1501/204 991/1502/204 +f 991/1502/204 993/1503/204 1003/1388/204 +f 993/1503/204 995/1389/204 1003/1388/204 +f 995/1389/204 997/1504/204 999/1505/204 +f 999/1505/204 1001/1387/204 995/1389/204 +f 1022/1391/204 1023/1506/204 1024/1392/204 +f 1024/1392/204 1005/1507/204 1006/1508/204 +f 1006/1508/204 1007/1509/204 1024/1392/204 +f 1007/1509/204 1008/1510/204 1009/1511/204 +f 1024/1392/204 1007/1509/204 1020/1512/204 +f 1009/1511/204 1010/1513/204 1007/1509/204 +f 1010/1513/204 1020/1512/204 1007/1509/204 +f 1020/1512/204 1021/1390/204 1024/1392/204 +f 1011/1393/199 1012/1514/199 1013/1515/199 +f 1013/1515/199 1014/1516/199 1011/1393/199 +f 1014/1516/199 1015/1394/199 1011/1393/199 +f 1015/1394/199 1016/1517/199 1019/1395/199 +f 1016/1517/199 1017/1518/199 1019/1395/199 +f 1017/1518/199 1018/1519/199 1019/1395/199 +f 1019/1395/199 1025/1520/199 1026/1521/199 +f 1026/1521/199 1011/1393/199 1019/1395/199 +f 1029/1397/204 1028/1522/204 1027/1398/204 +f 1027/1398/204 1042/1523/204 1041/1524/204 +f 1041/1524/204 1035/1525/204 1027/1398/204 +f 1035/1525/204 1034/1526/204 1033/1527/204 +f 1027/1398/204 1035/1525/204 1031/1528/204 +f 1033/1527/204 1032/1529/204 1035/1525/204 +f 1032/1529/204 1031/1528/204 1035/1525/204 +f 1031/1528/204 1030/1396/204 1027/1398/204 +f 1040/1401/199 1039/1530/199 1038/1531/199 +f 1038/1531/199 1037/1532/199 1040/1401/199 +f 1037/1532/199 1036/1399/199 1040/1401/199 +f 1036/1399/199 1043/1533/199 1046/1400/199 +f 1043/1533/199 1044/1534/199 1046/1400/199 +f 1044/1534/199 1045/1535/199 1046/1400/199 +f 1046/1400/199 1047/1536/199 1048/1537/199 +f 1048/1537/199 1040/1401/199 1046/1400/199 +s 1 +f 646/1538/204 657/1139/208 645/1539/208 +f 653/1540/209 664/1144/199 652/1541/199 +f 650/1542/210 661/1145/198 649/1543/198 +f 647/1544/211 658/1149/204 646/1538/204 +f 654/1545/212 665/1142/209 653/1540/209 +f 644/1546/213 655/1123/203 643/1547/203 +f 651/1548/214 662/1126/210 650/1542/210 +f 648/1549/215 659/1129/211 647/1544/211 +f 643/1547/203 666/1130/212 654/1545/212 +f 645/1539/208 656/1121/213 644/1546/213 +f 652/1541/199 663/1124/214 651/1548/214 +f 649/1550/198 660/1127/215 648/1549/215 +f 678/1551/212 689/1156/209 677/1552/209 +f 668/1553/213 679/1159/203 667/1554/203 +f 675/1555/214 686/1162/210 674/1556/210 +f 672/1557/215 683/1151/211 671/1558/211 +f 667/1554/203 690/1154/212 678/1551/212 +f 669/1559/208 680/1157/213 668/1553/213 +f 676/1560/199 687/1160/214 675/1555/214 +f 673/1561/198 684/1170/215 672/1557/215 +f 670/1562/204 681/1166/208 669/1559/208 +f 677/1552/209 688/1168/199 676/1560/199 +f 674/1556/210 685/1174/198 673/1563/198 +f 671/1558/211 682/1153/204 670/1562/204 +f 695/1164/209 706/1564/199 694/1152/199 +f 702/1165/215 713/1565/211 701/1155/211 +f 692/1167/210 703/1566/198 691/1158/198 +f 699/1169/208 710/1567/213 698/1161/213 +f 696/1163/212 707/1568/209 695/1164/209 +f 691/1158/198 714/1569/215 702/1165/215 +f 693/1172/214 704/1570/210 692/1167/210 +f 700/1173/204 711/1571/208 699/1169/208 +f 697/1171/203 708/1572/212 696/1163/212 +f 694/1152/199 705/1573/214 693/1172/214 +f 701/1155/211 712/1574/204 700/1173/204 +f 698/1161/213 709/1575/203 697/1175/203 +f 729/1576/216 747/1577/217 748/1578/218 +f 731/1579/219 729/1576/216 728/1580/220 +f 733/1581/221 725/1193/222 730/1582/223 +f 728/1580/220 732/1583/224 731/1579/219 +f 734/1584/225 730/1582/223 729/1576/216 +f 727/1585/226 723/1586/204 732/1583/224 +f 747/1577/217 752/1587/218 748/1578/218 +f 728/1580/220 735/1588/227 727/1585/226 +f 727/1585/226 738/1589/228 724/1590/228 +f 725/1193/222 747/1591/217 730/1582/223 +f 729/1576/216 736/1592/229 728/1580/220 +f 737/1593/222 751/1594/230 747/1591/217 +f 736/1592/229 749/1595/231 735/1588/227 +f 735/1596/227 750/1597/204 738/1589/228 +f 748/1578/218 753/1598/229 736/1592/229 +f 757/1599/232 759/1221/232 755/1600/232 +f 756/1601/233 762/1217/233 758/1602/233 +f 765/1603/232 767/1430/234 763/1604/232 +f 764/1605/233 770/1226/235 766/1606/233 +f 767/1430/234 770/1226/235 768/1230/235 +f 779/1607/236 787/1608/237 780/1609/237 +f 782/1610/238 775/1611/239 783/1612/239 +f 792/1613/200 790/1614/240 777/1615/240 +f 778/1616/241 788/1617/236 779/1607/236 +f 781/1618/203 776/1619/238 782/1610/238 +f 785/1620/242 772/1621/202 791/1622/202 +f 784/1623/243 773/1624/242 785/1620/242 +f 777/1615/240 789/1625/241 778/1616/241 +f 780/1609/237 786/1626/203 781/1618/203 +f 783/1612/239 774/1627/243 784/1623/243 +f 800/1628/244 810/1629/245 799/1630/245 +f 797/1631/203 803/1632/246 796/1633/246 +f 794/1634/247 806/1635/248 793/1636/248 +f 801/1637/249 811/1638/244 800/1628/244 +f 807/1639/202 812/1640/249 801/1637/249 +f 798/1641/250 802/1642/203 797/1631/203 +f 795/1643/251 805/1644/247 794/1634/247 +f 793/1636/248 814/1645/200 808/1646/200 +f 799/1630/245 809/1647/250 798/1641/250 +f 796/1633/246 804/1648/251 795/1643/251 +f 841/1649/252 844/1650/253 842/1651/254 +f 828/1652/255 835/1653/256 827/1654/256 +f 833/1655/257 840/1656/258 834/1657/253 +f 838/1658/259 834/1657/253 836/1659/260 +f 839/1660/261 842/1651/254 840/1656/258 +f 843/1661/257 846/1662/262 844/1650/253 +f 840/1663/258 847/1664/263 834/1665/253 +f 843/1666/257 862/1667/264 845/1668/265 +f 851/1669/266 848/1270/267 847/1664/263 +f 842/1670/254 853/1671/263 852/1672/268 +f 846/1662/262 853/1671/263 844/1650/253 +f 835/1653/256 850/1673/269 827/1654/256 +f 842/1670/254 851/1669/266 840/1663/258 +f 836/1674/260 847/1664/263 848/1270/267 +f 855/1675/270 859/1676/271 856/1677/272 +f 828/1652/255 857/1678/273 837/1679/255 +f 841/1680/252 859/1676/271 860/1681/274 +f 841/1680/252 861/1682/272 843/1666/257 +f 838/1683/259 856/1677/272 833/1684/257 +f 833/1684/257 859/1676/271 839/1685/261 +f 849/1466/269 851/1669/266 852/1672/268 +f 859/1676/271 857/1686/273 860/1681/274 +f 866/1275/200 869/1687/275 865/1688/200 +f 863/1278/202 868/1283/276 864/1273/202 +f 870/1282/275 871/1689/277 869/1690/275 +f 867/1277/276 874/1281/278 868/1283/276 +f 873/1280/278 878/1473/279 874/1281/278 +f 872/1285/277 875/1691/280 871/1692/277 +f 876/1284/280 879/1693/281 875/1691/280 +f 877/1287/279 882/1290/282 878/1473/279 +f 901/1694/200 916/1695/283 908/1696/283 +f 907/1697/199 914/1698/284 906/1699/284 +f 905/1700/202 912/1701/285 904/1702/285 +f 903/1703/204 910/1704/286 902/1705/286 +f 908/1696/283 915/1706/199 907/1697/199 +f 906/1699/284 913/1707/202 905/1700/202 +f 904/1702/285 911/1708/204 903/1709/204 +f 902/1705/286 909/1710/200 901/1694/200 +f 961/1711/221 975/1712/225 973/1713/225 +f 952/1375/199 955/1365/287 950/1369/199 +f 949/1714/204 953/1358/288 951/1373/204 +f 959/1715/289 957/1716/290 958/1717/290 +f 956/1356/287 959/1715/289 955/1365/287 +f 954/1718/288 957/1719/290 953/1358/288 +f 973/1720/225 971/1721/219 969/1722/219 +f 971/1721/219 962/1723/224 969/1722/219 +f 968/1724/288 962/1723/224 964/1725/224 +f 965/1726/287 963/1727/221 961/1711/221 +f 967/1728/287 974/1729/289 976/1730/289 +f 976/1730/289 970/1731/290 972/1732/290 +f 972/1732/290 966/1733/288 968/1724/288 +f 852/1672/268 850/1673/269 849/1466/269 +f 860/1681/274 857/1686/273 858/1734/273 +f 980/1735/203 981/1736/277 979/1737/203 +f 977/1738/198 983/1739/291 978/1740/198 +f 985/1380/275 987/1383/292 986/1491/292 +f 984/1741/277 985/1380/275 981/1736/277 +f 982/1742/291 987/1383/292 983/1739/291 +f 990/1743/200 991/1744/293 989/1745/200 +f 992/1746/293 993/1747/198 991/1744/293 +f 994/1748/198 995/1749/294 993/1750/198 +f 996/1751/294 997/1752/202 995/1749/294 +f 998/1753/202 999/1754/295 997/1752/202 +f 1000/1755/295 1001/1756/203 999/1754/295 +f 1002/1757/203 1003/1758/296 1001/1756/203 +f 1004/1759/296 989/1745/200 1003/1758/296 +f 850/1673/269 852/1672/268 854/1760/297 +f 854/1760/297 852/1672/268 853/1671/263 +f 862/1667/264 861/1682/272 860/1681/274 +f 858/1734/273 862/1667/264 860/1681/274 +f 1013/1761/236 1021/1762/237 1014/1763/237 +f 1016/1764/238 1009/1765/239 1017/1766/239 +f 1026/1767/200 1024/1768/240 1011/1769/240 +f 1012/1770/241 1022/1771/236 1013/1761/236 +f 1015/1772/203 1010/1773/238 1016/1764/238 +f 1019/1774/242 1006/1775/202 1025/1776/202 +f 1018/1777/243 1007/1778/242 1019/1774/242 +f 1011/1769/240 1023/1779/241 1012/1770/241 +f 1014/1763/237 1020/1780/203 1015/1772/203 +f 1017/1766/239 1008/1781/243 1018/1777/243 +f 1034/1782/244 1044/1783/245 1033/1784/245 +f 1031/1785/203 1037/1786/246 1030/1787/246 +f 1028/1788/247 1040/1789/248 1027/1790/248 +f 1035/1791/249 1045/1792/244 1034/1782/244 +f 1041/1793/202 1046/1794/249 1035/1791/249 +f 1032/1795/250 1036/1796/203 1031/1785/203 +f 1029/1797/251 1039/1798/247 1028/1788/247 +f 1027/1790/248 1048/1799/200 1042/1800/200 +f 1033/1784/245 1043/1801/250 1032/1795/250 +f 1030/1787/246 1038/1802/251 1029/1797/251 +f 646/1538/204 658/1149/204 657/1139/208 +f 653/1540/209 665/1142/209 664/1144/199 +f 650/1542/210 662/1126/210 661/1145/198 +f 647/1544/211 659/1129/211 658/1149/204 +f 654/1545/212 666/1130/212 665/1142/209 +f 644/1546/213 656/1121/213 655/1123/203 +f 651/1548/214 663/1124/214 662/1126/210 +f 648/1549/215 660/1127/215 659/1129/211 +f 643/1547/203 655/1123/203 666/1130/212 +f 645/1539/208 657/1139/208 656/1121/213 +f 652/1541/199 664/1144/199 663/1124/214 +f 649/1550/198 661/1405/198 660/1127/215 +f 678/1551/212 690/1154/212 689/1156/209 +f 668/1553/213 680/1157/213 679/1159/203 +f 675/1555/214 687/1160/214 686/1162/210 +f 672/1557/215 684/1170/215 683/1151/211 +f 667/1554/203 679/1159/203 690/1154/212 +f 669/1559/208 681/1166/208 680/1157/213 +f 676/1560/199 688/1168/199 687/1160/214 +f 673/1561/198 685/1409/198 684/1170/215 +f 670/1562/204 682/1153/204 681/1166/208 +f 677/1552/209 689/1156/209 688/1168/199 +f 674/1556/210 686/1162/210 685/1174/198 +f 671/1558/211 683/1151/211 682/1153/204 +f 695/1164/209 707/1568/209 706/1564/199 +f 702/1165/215 714/1569/215 713/1565/211 +f 692/1167/210 704/1570/210 703/1566/198 +f 699/1169/208 711/1571/208 710/1567/213 +f 696/1163/212 708/1572/212 707/1568/209 +f 691/1158/198 703/1566/198 714/1569/215 +f 693/1172/214 705/1573/214 704/1570/210 +f 700/1173/204 712/1574/204 711/1571/208 +f 697/1171/203 709/1803/203 708/1572/212 +f 694/1152/199 706/1564/199 705/1573/214 +f 701/1155/211 713/1565/211 712/1574/204 +f 698/1161/213 710/1567/213 709/1575/203 +f 729/1576/216 730/1582/223 747/1577/217 +f 731/1579/219 734/1584/225 729/1576/216 +f 733/1581/221 726/1196/199 725/1193/222 +f 728/1580/220 727/1585/226 732/1583/224 +f 734/1584/225 733/1581/221 730/1582/223 +f 727/1585/226 724/1590/228 723/1586/204 +f 747/1577/217 751/1804/230 752/1587/218 +f 728/1580/220 736/1592/229 735/1588/227 +f 727/1585/226 735/1596/227 738/1589/228 +f 725/1193/222 737/1593/222 747/1591/217 +f 729/1576/216 748/1578/218 736/1592/229 +f 737/1593/222 754/1805/199 751/1594/230 +f 736/1592/229 753/1598/229 749/1595/231 +f 735/1596/227 749/1806/231 750/1597/204 +f 748/1578/218 752/1587/218 753/1598/229 +f 757/1599/232 761/1306/232 759/1221/232 +f 756/1601/233 760/1224/233 762/1217/233 +f 765/1603/232 769/1429/234 767/1430/234 +f 764/1605/233 768/1230/235 770/1226/235 +f 767/1430/234 769/1429/234 770/1226/235 +f 779/1607/236 788/1617/236 787/1608/237 +f 782/1610/238 776/1619/238 775/1611/239 +f 792/1613/200 771/1807/200 790/1614/240 +f 778/1616/241 789/1625/241 788/1617/236 +f 781/1618/203 786/1626/203 776/1619/238 +f 785/1620/242 773/1624/242 772/1621/202 +f 784/1623/243 774/1627/243 773/1624/242 +f 777/1615/240 790/1614/240 789/1625/241 +f 780/1609/237 787/1608/237 786/1626/203 +f 783/1612/239 775/1611/239 774/1627/243 +f 800/1628/244 811/1638/244 810/1629/245 +f 797/1631/203 802/1642/203 803/1632/246 +f 794/1634/247 805/1644/247 806/1635/248 +f 801/1637/249 812/1640/249 811/1638/244 +f 807/1639/202 813/1808/202 812/1640/249 +f 798/1641/250 809/1647/250 802/1642/203 +f 795/1643/251 804/1648/251 805/1644/247 +f 793/1636/248 806/1635/248 814/1645/200 +f 799/1630/245 810/1629/245 809/1647/250 +f 796/1633/246 803/1632/246 804/1648/251 +f 841/1649/252 843/1661/257 844/1650/253 +f 828/1652/255 837/1679/255 835/1653/256 +f 833/1655/257 839/1660/261 840/1656/258 +f 838/1658/259 833/1655/257 834/1657/253 +f 839/1660/261 841/1649/252 842/1651/254 +f 843/1661/257 845/1809/265 846/1662/262 +f 840/1663/258 851/1669/266 847/1664/263 +f 843/1666/257 861/1682/272 862/1667/264 +f 851/1669/266 849/1466/269 848/1270/267 +f 842/1670/254 844/1650/253 853/1671/263 +f 846/1662/262 854/1760/297 853/1671/263 +f 835/1653/256 849/1466/269 850/1673/269 +f 842/1670/254 852/1672/268 851/1669/266 +f 836/1674/260 834/1665/253 847/1664/263 +f 855/1675/270 857/1686/273 859/1676/271 +f 828/1652/255 858/1810/273 857/1678/273 +f 841/1680/252 839/1685/261 859/1676/271 +f 841/1680/252 860/1681/274 861/1682/272 +f 838/1683/259 855/1675/270 856/1677/272 +f 833/1684/257 856/1677/272 859/1676/271 +f 866/1275/200 870/1274/275 869/1687/275 +f 863/1278/202 867/1277/276 868/1283/276 +f 870/1282/275 872/1472/277 871/1689/277 +f 867/1277/276 873/1280/278 874/1281/278 +f 873/1280/278 877/1287/279 878/1473/279 +f 872/1285/277 876/1284/280 875/1691/280 +f 876/1284/280 880/1291/281 879/1693/281 +f 877/1287/279 881/1289/282 882/1290/282 +f 901/1694/200 909/1710/200 916/1695/283 +f 907/1697/199 915/1706/199 914/1698/284 +f 905/1700/202 913/1707/202 912/1701/285 +f 903/1703/204 911/1811/204 910/1704/286 +f 908/1696/283 916/1695/283 915/1706/199 +f 906/1699/284 914/1698/284 913/1707/202 +f 904/1702/285 912/1701/285 911/1708/204 +f 902/1705/286 910/1704/286 909/1710/200 +f 961/1711/221 963/1727/221 975/1712/225 +f 952/1375/199 956/1356/287 955/1365/287 +f 949/1714/204 954/1718/288 953/1358/288 +f 959/1715/289 960/1812/289 957/1716/290 +f 956/1356/287 960/1812/289 959/1715/289 +f 954/1718/288 958/1813/290 957/1719/290 +f 973/1720/225 975/1814/225 971/1721/219 +f 971/1721/219 964/1725/224 962/1723/224 +f 968/1724/288 966/1733/288 962/1723/224 +f 965/1726/287 967/1728/287 963/1727/221 +f 967/1728/287 965/1726/287 974/1729/289 +f 976/1730/289 974/1729/289 970/1731/290 +f 972/1732/290 970/1731/290 966/1733/288 +f 980/1735/203 984/1741/277 981/1736/277 +f 977/1738/198 982/1742/291 983/1739/291 +f 985/1380/275 988/1494/275 987/1383/292 +f 984/1741/277 988/1494/275 985/1380/275 +f 982/1742/291 986/1491/292 987/1383/292 +f 990/1743/200 992/1746/293 991/1744/293 +f 992/1746/293 994/1815/198 993/1747/198 +f 994/1748/198 996/1751/294 995/1749/294 +f 996/1751/294 998/1753/202 997/1752/202 +f 998/1753/202 1000/1755/295 999/1754/295 +f 1000/1755/295 1002/1757/203 1001/1756/203 +f 1002/1757/203 1004/1759/296 1003/1758/296 +f 1004/1759/296 990/1743/200 989/1745/200 +f 1013/1761/236 1022/1771/236 1021/1762/237 +f 1016/1764/238 1010/1773/238 1009/1765/239 +f 1026/1767/200 1005/1816/200 1024/1768/240 +f 1012/1770/241 1023/1779/241 1022/1771/236 +f 1015/1772/203 1020/1780/203 1010/1773/238 +f 1019/1774/242 1007/1778/242 1006/1775/202 +f 1018/1777/243 1008/1781/243 1007/1778/242 +f 1011/1769/240 1024/1768/240 1023/1779/241 +f 1014/1763/237 1021/1762/237 1020/1780/203 +f 1017/1766/239 1009/1765/239 1008/1781/243 +f 1034/1782/244 1045/1792/244 1044/1783/245 +f 1031/1785/203 1036/1796/203 1037/1786/246 +f 1028/1788/247 1039/1798/247 1040/1789/248 +f 1035/1791/249 1046/1794/249 1045/1792/244 +f 1041/1793/202 1047/1817/202 1046/1794/249 +f 1032/1795/250 1043/1801/250 1036/1796/203 +f 1029/1797/251 1038/1802/251 1039/1798/247 +f 1027/1790/248 1040/1789/248 1048/1799/200 +f 1033/1784/245 1044/1783/245 1043/1801/250 +f 1030/1787/246 1037/1786/246 1038/1802/251 diff --git a/src/main/resources/assets/hbm/my_hecking_realism.png b/src/main/resources/assets/hbm/my_hecking_realism.png new file mode 100644 index 000000000..dab8b86bc Binary files /dev/null and b/src/main/resources/assets/hbm/my_hecking_realism.png differ diff --git a/src/main/resources/assets/hbm/shaders/test_shader.frag b/src/main/resources/assets/hbm/shaders/test_shader.frag deleted file mode 100644 index 2e6f3ab0b..000000000 --- a/src/main/resources/assets/hbm/shaders/test_shader.frag +++ /dev/null @@ -1,25 +0,0 @@ -#version 330 compatibility - -in vec2 texCoord; -in vec2 lightCoord; -in vec4 color; -in vec3 lighting; -out vec4 FragColor; - -uniform sampler2D texture; -uniform sampler2D lightmap; - -void main(){ - vec4 center = texture2D(DiffuseSampler, texCoord); - vec4 up = texture2D(DiffuseSampler, texCoord + vec2( 0.0, -oneTexel.y)); - vec4 down = texture2D(DiffuseSampler, texCoord + vec2( oneTexel.x, 0.0)); - vec4 left = texture2D(DiffuseSampler, texCoord + vec2(-oneTexel.x, 0.0)); - vec4 right = texture2D(DiffuseSampler, texCoord + vec2( 0.0, oneTexel.y)); - vec4 uDiff = center - up; - vec4 dDiff = center - down; - vec4 lDiff = center - left; - vec4 rDiff = center - right; - vec4 sum = uDiff + dDiff + lDiff + rDiff; - vec3 clamped = clamp(center.rgb - sum.rgb, 0.0, 1.0); - gl_FragColor = vec4(clamped, center.a); -} diff --git a/src/main/resources/assets/hbm/shaders/test_shader.vert b/src/main/resources/assets/hbm/shaders/test_shader.vert deleted file mode 100644 index 29c5d6a14..000000000 --- a/src/main/resources/assets/hbm/shaders/test_shader.vert +++ /dev/null @@ -1,26 +0,0 @@ -#version 330 compatibility - -out vec2 texCoord; -out vec2 lightCoord; -out vec4 color; -out vec3 lighting; - -void main(){ - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; - texCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; - lightCoord = (gl_TextureMatrix[1] * gl_MultiTexCoord1).st; - color = gl_Color; - - vec3 totalLighting = vec3(gl_LightModel.ambient) * vec3(gl_FrontMaterial.emission); - vec3 normal = (gl_NormalMatrix * gl_Normal).xyz; - vec4 difftot = vec4(0.0F); - - for (int i = 0; i < gl_MaxLights; i ++){ - - vec4 diff = gl_FrontLightProduct[i].diffuse * max(dot(normal,gl_LightSource[i].position.xyz), 0.0f); - diff = clamp(diff, 0.0F, 1.0F); - - difftot += diff; - } - lighting = clamp((difftot + gl_LightModel.ambient).rgb, 0.0F, 1.0F); -} diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 4a0266d81..7bb46ab65 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -1,5 +1,4 @@ { - "misc.nullTau": {"category": "player", "sounds": [{"name": "misc/null", "stream": false}]}, "misc.nullChopper": {"category": "player", "sounds": [{"name": "misc/null", "stream": false}]}, "misc.nullCrashing": {"category": "player", "sounds": [{"name": "misc/null", "stream": false}]}, "misc.nullMine": {"category": "player", "sounds": [{"name": "misc/null", "stream": false}]}, @@ -9,8 +8,8 @@ "block.minerOperate": {"category": "block", "sounds": [{"name": "block/minerOperate", "stream": true}]}, "block.assemblerOperate": {"category": "block", "sounds": [{"name": "block/assemblerOperate", "stream": true}]}, "block.chemplantOperate": {"category": "block", "sounds": [{"name": "block/chemplantOperate", "stream": true}]}, - "block.dieselOperate": {"category": "block", "sounds": [{"name": "block/dieselOperate", "stream": true}]}, - "block.igeneratorOperate": {"category": "block", "sounds": [{"name": "block/igeneratorOperate", "stream": true}]}, + "block.dieselOperate": {"category": "block", "sounds": [{"name": "block/dieselOperate", "stream": false}]}, + "block.igeneratorOperate": {"category": "block", "sounds": [{"name": "block/igeneratorOperate", "stream": false}]}, "block.turbofanOperate": {"category": "block", "sounds": [{"name": "block/turbofanOperate", "stream": true}]}, "block.pressOperate": {"category": "block", "sounds": [{"name": "block/pressOperate", "stream": false}]}, "block.broadcast1": {"category": "block", "sounds": [{"name": "block/broadcast1", "stream": true}]}, @@ -48,18 +47,46 @@ "block.warnOverspeed": {"category": "block", "sounds": [{"name": "block/warnOverspeed", "stream": false}]}, "block.boilerGroan": {"category": "block", "sounds": ["block/boilerGroan0", "block/boilerGroan1", "block/boilerGroan2"]}, "block.steamEngineOperate": {"category": "block", "sounds": [{"name": "block/steamEngineOperate", "stream": false}]}, - "block.turbinegasStartup": {"category": "block", "sounds": [{"name": "block/turbinegasStartup", "stream": true}]}, + "block.turbinegasStartup": {"category": "block", "sounds": [{"name": "block/turbinegasStartup", "stream": false}]}, "block.turbinegasRunning": {"category": "block", "sounds": [{"name": "block/turbinegasRunning", "stream": false}]}, "block.turbinegasShutdown": {"category": "block", "sounds": [{"name": "block/turbinegasShutdown", "stream": true}]}, + "block.chungusTurbineRunning": {"category": "block", "sounds": [{"name": "block/chungusTurbine", "stream": false}]}, + "block.largeTurbineRunning": {"category": "block", "sounds": [{"name": "block/largeTurbine", "stream": false}]}, "block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]}, "block.electricHum": {"category": "block", "sounds": [{"name": "block/electricHum", "stream": false}]}, "block.boiler": {"category": "block", "sounds": [{"name": "block/boiler", "stream": false}]}, + "block.hornNearSingle": {"category": "block", "sounds": [{"name": "block/hornNearSingle", "stream": false}]}, + "block.hornNearDual": {"category": "block", "sounds": [{"name": "block/hornNearDual", "stream": false}]}, + "block.hornFarSingle": {"category": "block", "sounds": [{"name": "block/hornFarSingle", "stream": false}]}, + "block.hornFarDual": {"category": "block", "sounds": [{"name": "block/hornFarDual", "stream": false}]}, + "block.reactorLoop": {"category": "block", "sounds": [{"name": "block/reactorLoop", "stream": false}]}, + "block.fusionReactorRunning": {"category": "block", "sounds": [{"name": "block/fusionReactorSpin", "stream": false}]}, + "block.fel": {"category": "block", "sounds": [{"name": "block/fel", "stream": false}]}, + "block.hephaestusRunning": {"category": "block", "sounds": [{"name": "block/hephaestusRunning", "stream": false}]}, + "block.squeakyToy": {"category": "block", "sounds": [{"name": "block/squeakyToy", "stream": false}]}, + "block.pyroOperate": {"category": "block", "sounds": [{"name": "block/pyroOperate", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, "door.wghStop": {"category": "block", "sounds": [{"name": "block/door/wgh_stop", "stream": true}]}, "door.alarm6": {"category": "block", "sounds": [{"name": "block/door/alarm6", "stream": true}]}, - + "door.sliding_door_shut": {"category": "block", "sounds": [{"name": "block/door/sliding_door_shut", "stream": false}]}, + "door.sliding_door_opened": {"category": "block", "sounds": [{"name": "block/door/sliding_door_opened", "stream": false}]}, + "door.sliding_door_opening": {"category": "block", "sounds": [{"name": "block/door/sliding_door_opening", "stream": false}]}, + + "door.garage_move": { "category": "block", "sounds": [{"name": "block/door/garage_move", "stream": false}] }, + "door.garage_stop": { "category": "block", "sounds": [{"name": "block/door/garage_stop", "stream": false}] }, + "door.lever": {"category": "block", "sounds": [{"name": "block/door/lever1", "stream": false}]}, + "door.wgh_start": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": false}]}, + "door.wgh_stop": {"category": "block", "sounds": [{"name": "block/door/wgh_stop", "stream": false}]}, + "door.wgh_big_start": {"category": "block", "sounds": [{"name": "block/door/door_wgh_big_start", "stream": false}]}, + "door.wgh_big_stop": {"category": "block", "sounds": [{"name": "block/door/door_wgh_big_stop", "stream": false}]}, + "door.qe_sliding_shut": {"category": "block", "sounds": [{"name": "block/door/doorshut_1", "stream": false}]}, + "door.qe_sliding_opened": {"category": "block", "sounds": [{"name": "block/door/doorslide_opened1", "stream": false}]}, + "door.qe_sliding_opening": {"category": "block", "sounds": [{"name": "block/door/doorslide_opening1", "stream": false}]}, + "door.sliding_seal_open": {"category": "block", "sounds": [{"name": "block/door/doormove2", "stream": false}]}, + "door.sliding_seal_stop": {"category": "block", "sounds": [{"name": "block/door/metal_stop1", "stream": false}]}, + "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, "item.geiger1": {"category": "player", "sounds": [{"name": "tool/geiger1", "stream": false}]}, @@ -145,6 +172,7 @@ "weapon.revolverReload": {"category": "player", "sounds": [{"name": "weapon/revolverReload", "stream": false}]}, "weapon.shotgunReload": {"category": "player", "sounds": ["weapon/shotgunReload1", "weapon/shotgunReload2", "weapon/shotgunReload3"]}, "weapon.magReload": {"category": "player", "sounds": [{"name": "weapon/magReload", "stream": false}]}, + "weapon.magReloadBolt": {"category": "player", "sounds": [{"name": "weapon/magReloadBolt", "stream": false}]}, "weapon.rpgReload": {"category": "player", "sounds": [{"name": "weapon/rpgReload", "stream": false}]}, "weapon.boat": {"category": "player", "sounds": [{"name": "weapon/boat", "stream": false}]}, "weapon.hkShoot": {"category": "player", "sounds": [{"name": "weapon/hkShoot", "stream": false}]}, @@ -173,8 +201,22 @@ "weapon.extinguisher": {"category": "player", "sounds": [{"name": "weapon/extinguisher", "stream": false}]}, "weapon.robin_explosion": {"category": "player", "sounds": [{"name": "weapon/robin_explosion", "stream": false}]}, "weapon.shotgunPump": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPump", "stream": false}]}, + "weapon.shotgunPumpAlt": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPumpAlt", "stream": false}]}, "weapon.explosionMedium": {"category": "player", "sounds": [{"name": "weapon/explosion_medium", "stream": false}]}, "weapon.hicalShot": {"category": "player", "sounds": [{"name": "weapon/hicalShot", "stream": false}]}, + "weapon.coilgunReload": {"category": "player", "sounds": [{"name": "weapon/coilgunReload", "stream": false}]}, + "weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]}, + "weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]}, + "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, + "weapon.glOpen": {"category": "player", "sounds": [{"name": "weapon/glOpen", "stream": false}]}, + "weapon.glClose": {"category": "player", "sounds": [{"name": "weapon/glClose", "stream": false}]}, + "weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]}, + "weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]}, + "weapon.nuclearExplosion": {"category": "player", "sounds": [{"name": "weapon/nuclearExplosion", "stream": true}]}, + "weapon.explosionLargeNear": {"category": "player", "sounds": [{"name": "weapon/explosionLargeNear", "stream": false}]}, + "weapon.explosionLargeFar": {"category": "player", "sounds": [{"name": "weapon/explosionLargeFar", "stream": false}]}, + "weapon.explosionSmallNear": {"category": "player", "sounds": ["weapon/explosionSmallNear1", "weapon/explosionSmallNear2", "weapon/explosionSmallNear3"]}, + "weapon.explosionSmallFar": {"category": "player", "sounds": ["weapon/explosionSmallFar1", "weapon/explosionSmallFar2"]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, @@ -182,6 +224,63 @@ "weapon.switchmode1": {"category": "player", "sounds": [{"name": "weapon/switchmode1", "stream": false}]}, "weapon.switchmode2": {"category": "player", "sounds": [{"name": "weapon/switchmode2", "stream": false}]}, + "weapon.fire.blackPowder": {"category": "player", "sounds": ["weapon/fire/blackPowder"]}, + "weapon.fire.flameLoop": {"category": "player", "sounds": ["weapon/fire/flameLoop"]}, + "weapon.fire.lockon": {"category": "player", "sounds": ["weapon/fire/lockon"]}, + "weapon.fire.shredderCycle": {"category": "player", "sounds": ["weapon/fire/shredderCycle"]}, + "weapon.fire.tau": {"category": "player", "sounds": ["weapon/fire/tau"]}, + "weapon.fire.tauLoop": {"category": "player", "sounds": ["weapon/fire/tauLoop"]}, + "weapon.fire.tauRelease": {"category": "player", "sounds": ["weapon/fire/tauRelease1", "weapon/fire/tauRelease2", "weapon/fire/tauRelease3"]}, + "weapon.fire.fatman": {"category": "player", "sounds": ["weapon/fire/fatman"]}, + "weapon.fire.smack": {"category": "player", "sounds": ["weapon/fire/smack"]}, + "weapon.fire.vstar": {"category": "player", "sounds": ["weapon/fire/vstar"]}, + "weapon.fire.loudestNoiseOnEarth": {"category": "player", "sounds": ["weapon/fire/loudestNoiseOnEarth"]}, + "weapon.fire.disintegration": {"category": "player", "sounds": ["weapon/fire/disintegration"]}, + "weapon.fire.laser": {"category": "player", "sounds": ["weapon/fire/laser"]}, + "weapon.fire.laserGatling": {"category": "player", "sounds": ["weapon/fire/laserGatling"]}, + "weapon.fire.silenced": {"category": "player", "sounds": ["weapon/fire/silenced"]}, + "weapon.fire.assault": {"category": "player", "sounds": ["weapon/fire/assault"]}, + "weapon.fire.pistol": {"category": "player", "sounds": ["weapon/fire/pistol"]}, + "weapon.fire.rifle": {"category": "player", "sounds": ["weapon/fire/rifle"]}, + "weapon.fire.rifleHeavy": {"category": "player", "sounds": ["weapon/fire/rifleHeavy"]}, + "weapon.fire.shotgun": {"category": "player", "sounds": ["weapon/fire/shotgun"]}, + "weapon.fire.shotgunAlt": {"category": "player", "sounds": ["weapon/fire/shotgunAlt"]}, + "weapon.fire.shotgunAuto": {"category": "player", "sounds": ["weapon/fire/shotgunAuto"]}, + "weapon.fire.greaseGun": {"category": "player", "sounds": ["weapon/fire/greaseGun"]}, + "weapon.fire.uzi": {"category": "player", "sounds": ["weapon/fire/uzi"]}, + "weapon.fire.tesla": {"category": "player", "sounds": ["weapon/fire/tesla"]}, + + "weapon.reload.boltClose": {"category": "player", "sounds": ["weapon/reload/boltClose"]}, + "weapon.reload.boltOpen": {"category": "player", "sounds": ["weapon/reload/boltOpen"]}, + "weapon.reload.closeClick": {"category": "player", "sounds": ["weapon/reload/closeClick"]}, + "weapon.reload.dryFireClick": {"category": "player", "sounds": ["weapon/reload/dryFireClick"]}, + "weapon.reload.insertCanister": {"category": "player", "sounds": ["weapon/reload/insertCanister"]}, + "weapon.reload.insertGrenade": {"category": "player", "sounds": ["weapon/reload/insertGrenade"]}, + "weapon.reload.insertLarge": {"category": "player", "sounds": ["weapon/reload/insertLarge"]}, + "weapon.reload.insertRocket": {"category": "player", "sounds": ["weapon/reload/insertRocket"]}, + "weapon.reload.leverCock": {"category": "player", "sounds": ["weapon/reload/leverCock"]}, + "weapon.reload.magInsert": {"category": "player", "sounds": ["weapon/reload/magInsert"]}, + "weapon.reload.magRemove": {"category": "player", "sounds": ["weapon/reload/magRemove"]}, + "weapon.reload.magSmallInsert": {"category": "player", "sounds": ["weapon/reload/magSmallInsert"]}, + "weapon.reload.magSmallRemove": {"category": "player", "sounds": ["weapon/reload/magSmallRemove"]}, + "weapon.reload.openLatch": {"category": "player", "sounds": ["weapon/reload/openLatch"]}, + "weapon.reload.pistolCock": {"category": "player", "sounds": ["weapon/reload/pistolCock"]}, + "weapon.reload.pressureValve": {"category": "player", "sounds": ["weapon/reload/pressureValve"]}, + "weapon.reload.revolverClose": {"category": "player", "sounds": ["weapon/reload/revolverClose"]}, + "weapon.reload.revolverCock": {"category": "player", "sounds": ["weapon/reload/revolverCock"]}, + "weapon.reload.revolverSpin": {"category": "player", "sounds": ["weapon/reload/revolverSpin"]}, + "weapon.reload.rifleCock": {"category": "player", "sounds": ["weapon/reload/rifleCock"]}, + "weapon.reload.shotgunCock": {"category": "player", "sounds": ["weapon/reload/shotgunCock"]}, + "weapon.reload.shotgunCockOpen": {"category": "player", "sounds": ["weapon/reload/shotgunCockOpen"]}, + "weapon.reload.shotgunCockClose": {"category": "player", "sounds": ["weapon/reload/shotgunCockClose"]}, + "weapon.reload.shotgunReload": {"category": "player", "sounds": ["weapon/reload/shotgunReload1", "weapon/reload/shotgunReload2", "weapon/reload/shotgunReload3"]}, + "weapon.reload.tubeFwoomp": {"category": "player", "sounds": ["weapon/reload/tubeFwoomp"]}, + "weapon.reload.impact": {"category": "player", "sounds": ["weapon/reload/impact1", "weapon/reload/impact2", "weapon/reload/impact3"]}, + "weapon.reload.fatmanFull": {"category": "player", "sounds": ["weapon/reload/fatmanFull"]}, + "weapon.reload.screw": {"category": "player", "sounds": ["weapon/reload/screw"]}, + + "weapon.foley.gunWhack": {"category": "player", "sounds": ["weapon/foley/gunWhack", "weapon/foley/gunWhack2"]}, + "turret.chekhov_fire": {"category": "block", "sounds": [{"name": "turret/chekhov_fire", "stream": false}]}, "turret.jeremy_fire": {"category": "block", "sounds": ["turret/jeremy_fire1", "turret/jeremy_fire2", "turret/jeremy_fire3", "turret/jeremy_fire4", "turret/jeremy_fire5"]}, "turret.jeremy_reload": {"category": "block", "sounds": [{"name": "turret/jeremy_reload", "stream": false}]}, @@ -226,15 +325,11 @@ "player.vomit": {"category": "player", "sounds": [{"name": "player/vomit", "stream": false}]}, "player.cough": {"category": "player", "sounds": ["player/cough1", "player/cough2", "player/cough3", "player/cough4"]}, - "player.dash": {"category": "player", "sounds": [{"name": "player/dash", "stream": false}]}, - "player.dashRecharge": {"category": "player", "sounds": [{"name": "player/dashRecharge", "stream": false}]}, + "player.gulp": {"category": "player", "sounds": ["player/gulp1", "player/gulp2", "player/gulp3", "player/gulp4"]}, + "player.groan": {"category": "player", "sounds": ["player/groan1", "player/groan2", "player/groan3"]}, "potatos.random": {"category": "player", "sounds": ["potatos/randResponse0", "potatos/randResponse1", "potatos/randResponse2", "potatos/randResponse3", "potatos/randResponse4", "potatos/randResponse5", "potatos/randResponse6", "potatos/randResponse7"]}, - "fm.clap": {"category": "block", "sounds": [{"name": "clap", "stream": false}]}, - "fm.mug": {"category": "block", "sounds": [{"name": "mug", "stream": false}]}, - "fm.sample": {"category": "block", "sounds": [{"name": "sample", "stream": false}]}, - "alarm.amsSiren": {"category": "record", "sounds": [{"name": "alarm/amsSiren", "stream": false}]}, "alarm.apcLoop": {"category": "record", "sounds": [{"name": "alarm/apcLoop", "stream": false}]}, "alarm.apcPass": {"category": "record", "sounds": [{"name": "alarm/apcPass", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/chungusTurbine.ogg b/src/main/resources/assets/hbm/sounds/block/chungusTurbine.ogg new file mode 100644 index 000000000..f66133991 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/chungusTurbine.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_start.ogg b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_start.ogg new file mode 100644 index 000000000..e85c687ae Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_start.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_stop.ogg b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_stop.ogg new file mode 100644 index 000000000..c5322cd1a Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_stop.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/doormove2.ogg b/src/main/resources/assets/hbm/sounds/block/door/doormove2.ogg new file mode 100644 index 000000000..b41c4a6d0 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/doormove2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/doorshut_1.ogg b/src/main/resources/assets/hbm/sounds/block/door/doorshut_1.ogg new file mode 100644 index 000000000..d3dd53ceb Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/doorshut_1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/doorslide_opened1.ogg b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opened1.ogg new file mode 100644 index 000000000..4e9f5cd4e Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opened1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/doorslide_opening1.ogg b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opening1.ogg new file mode 100644 index 000000000..ded65d1a1 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opening1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/garage_move.ogg b/src/main/resources/assets/hbm/sounds/block/door/garage_move.ogg new file mode 100644 index 000000000..9a8c707a1 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/garage_move.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/garage_stop.ogg b/src/main/resources/assets/hbm/sounds/block/door/garage_stop.ogg new file mode 100644 index 000000000..3d31adb02 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/garage_stop.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/lever1.ogg b/src/main/resources/assets/hbm/sounds/block/door/lever1.ogg new file mode 100644 index 000000000..e6dd7e05c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/lever1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/metal_stop1.ogg b/src/main/resources/assets/hbm/sounds/block/door/metal_stop1.ogg new file mode 100644 index 000000000..e131a539b Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/metal_stop1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opened.ogg b/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opened.ogg new file mode 100644 index 000000000..4e9f5cd4e Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opened.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opening.ogg b/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opening.ogg new file mode 100644 index 000000000..ded65d1a1 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opening.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/sliding_door_shut.ogg b/src/main/resources/assets/hbm/sounds/block/door/sliding_door_shut.ogg new file mode 100644 index 000000000..d3dd53ceb Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/sliding_door_shut.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/fel.ogg b/src/main/resources/assets/hbm/sounds/block/fel.ogg new file mode 100644 index 000000000..f5927a707 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/fel.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/fusionReactorSpin.ogg b/src/main/resources/assets/hbm/sounds/block/fusionReactorSpin.ogg new file mode 100644 index 000000000..b3752f91c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/fusionReactorSpin.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/hephaestusRunning.ogg b/src/main/resources/assets/hbm/sounds/block/hephaestusRunning.ogg new file mode 100644 index 000000000..0129ce676 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/hephaestusRunning.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/hornFarDual.ogg b/src/main/resources/assets/hbm/sounds/block/hornFarDual.ogg new file mode 100644 index 000000000..f92fc5014 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/hornFarDual.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/hornFarSingle.ogg b/src/main/resources/assets/hbm/sounds/block/hornFarSingle.ogg new file mode 100644 index 000000000..d77e3f57e Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/hornFarSingle.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/hornNearDual.ogg b/src/main/resources/assets/hbm/sounds/block/hornNearDual.ogg new file mode 100644 index 000000000..26c030954 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/hornNearDual.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/hornNearSingle.ogg b/src/main/resources/assets/hbm/sounds/block/hornNearSingle.ogg new file mode 100644 index 000000000..5a66bc414 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/hornNearSingle.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/largeTurbine.ogg b/src/main/resources/assets/hbm/sounds/block/largeTurbine.ogg new file mode 100644 index 000000000..4648b3dd3 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/largeTurbine.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/pyroOperate.ogg b/src/main/resources/assets/hbm/sounds/block/pyroOperate.ogg new file mode 100644 index 000000000..a86ebd29c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/pyroOperate.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg b/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg new file mode 100644 index 000000000..95ac0c523 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/squeakyToy.ogg b/src/main/resources/assets/hbm/sounds/block/squeakyToy.ogg new file mode 100644 index 000000000..fe6105266 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/squeakyToy.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/warnAPUFire.ogg b/src/main/resources/assets/hbm/sounds/block/warnAPUFire.ogg new file mode 100644 index 000000000..5035c2109 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/warnAPUFire.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/clap.ogg b/src/main/resources/assets/hbm/sounds/clap.ogg deleted file mode 100644 index a42db9654..000000000 Binary files a/src/main/resources/assets/hbm/sounds/clap.ogg and /dev/null differ diff --git a/src/main/resources/assets/hbm/sounds/jeff.ogg b/src/main/resources/assets/hbm/sounds/jeff.ogg deleted file mode 100644 index 1c251fc42..000000000 Binary files a/src/main/resources/assets/hbm/sounds/jeff.ogg and /dev/null differ diff --git a/src/main/resources/assets/hbm/sounds/mug.ogg b/src/main/resources/assets/hbm/sounds/mug.ogg deleted file mode 100644 index c7279c971..000000000 Binary files a/src/main/resources/assets/hbm/sounds/mug.ogg and /dev/null differ diff --git a/src/main/resources/assets/hbm/sounds/player/dash.ogg b/src/main/resources/assets/hbm/sounds/player/dash.ogg deleted file mode 100644 index 1483626ff..000000000 Binary files a/src/main/resources/assets/hbm/sounds/player/dash.ogg and /dev/null differ diff --git a/src/main/resources/assets/hbm/sounds/player/dashRecharge.ogg b/src/main/resources/assets/hbm/sounds/player/dashRecharge.ogg deleted file mode 100644 index 61a724e74..000000000 Binary files a/src/main/resources/assets/hbm/sounds/player/dashRecharge.ogg and /dev/null differ diff --git a/src/main/resources/assets/hbm/sounds/player/groan1.ogg b/src/main/resources/assets/hbm/sounds/player/groan1.ogg new file mode 100644 index 000000000..02538aea3 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/player/groan1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/player/groan2.ogg b/src/main/resources/assets/hbm/sounds/player/groan2.ogg new file mode 100644 index 000000000..b4b4bf71e Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/player/groan2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/player/groan3.ogg b/src/main/resources/assets/hbm/sounds/player/groan3.ogg new file mode 100644 index 000000000..e07a5ec84 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/player/groan3.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/player/gulp1.ogg b/src/main/resources/assets/hbm/sounds/player/gulp1.ogg new file mode 100644 index 000000000..828748a8a Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/player/gulp1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/player/gulp2.ogg b/src/main/resources/assets/hbm/sounds/player/gulp2.ogg new file mode 100644 index 000000000..7dc75046d Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/player/gulp2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/player/gulp3.ogg b/src/main/resources/assets/hbm/sounds/player/gulp3.ogg new file mode 100644 index 000000000..9d510d03f Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/player/gulp3.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/player/gulp4.ogg b/src/main/resources/assets/hbm/sounds/player/gulp4.ogg new file mode 100644 index 000000000..2fbd97893 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/player/gulp4.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/sample.ogg b/src/main/resources/assets/hbm/sounds/sample.ogg deleted file mode 100644 index 30cebf4cb..000000000 Binary files a/src/main/resources/assets/hbm/sounds/sample.ogg and /dev/null differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/44Shoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/44Shoot.ogg new file mode 100644 index 000000000..b76f3c389 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/44Shoot.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/coilgunReload.ogg b/src/main/resources/assets/hbm/sounds/weapon/coilgunReload.ogg new file mode 100644 index 000000000..d17beefde Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/coilgunReload.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/coilgunShoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/coilgunShoot.ogg new file mode 100644 index 000000000..8d2503e2d Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/coilgunShoot.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/explosionLargeFar.ogg b/src/main/resources/assets/hbm/sounds/weapon/explosionLargeFar.ogg new file mode 100644 index 000000000..c4b2d42d9 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/explosionLargeFar.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/explosionLargeNear.ogg b/src/main/resources/assets/hbm/sounds/weapon/explosionLargeNear.ogg new file mode 100644 index 000000000..693814cc6 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/explosionLargeNear.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/explosionSmallFar1.ogg b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallFar1.ogg new file mode 100644 index 000000000..df1680b49 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallFar1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/explosionSmallFar2.ogg b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallFar2.ogg new file mode 100644 index 000000000..3b9fac6ad Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallFar2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/explosionSmallNear1.ogg b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallNear1.ogg new file mode 100644 index 000000000..086a8953d Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallNear1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/explosionSmallNear2.ogg b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallNear2.ogg new file mode 100644 index 000000000..bc2509178 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallNear2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/explosionSmallNear3.ogg b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallNear3.ogg new file mode 100644 index 000000000..8a7bfe3c9 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/explosionSmallNear3.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/assault.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/assault.ogg new file mode 100644 index 000000000..6a49dbc1d Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/assault.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/blackPowder.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/blackPowder.ogg new file mode 100644 index 000000000..ea73cad21 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/blackPowder.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/disintegration.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/disintegration.ogg new file mode 100644 index 000000000..944cb0fb9 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/disintegration.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/fatman.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/fatman.ogg new file mode 100644 index 000000000..efe85f0b9 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/fatman.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/flameLoop.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/flameLoop.ogg new file mode 100644 index 000000000..8d2822779 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/flameLoop.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/greaseGun.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/greaseGun.ogg new file mode 100644 index 000000000..71bad6b35 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/greaseGun.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/laser.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/laser.ogg new file mode 100644 index 000000000..f6f869bba Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/laser.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/laserGatling.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/laserGatling.ogg new file mode 100644 index 000000000..e24acf08e Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/laserGatling.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/lockon.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/lockon.ogg new file mode 100644 index 000000000..6fb9782d4 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/lockon.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/loudestNoiseOnEarth.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/loudestNoiseOnEarth.ogg new file mode 100644 index 000000000..15b4cb7fe Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/loudestNoiseOnEarth.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/pistol.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/pistol.ogg new file mode 100644 index 000000000..5670830e6 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/pistol.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/rifle.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/rifle.ogg new file mode 100644 index 000000000..eb4f2fa43 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/rifle.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/rifleHeavy.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/rifleHeavy.ogg new file mode 100644 index 000000000..48f650331 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/rifleHeavy.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/shotgun.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgun.ogg new file mode 100644 index 000000000..9c15eb596 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgun.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAlt.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAlt.ogg new file mode 100644 index 000000000..422dae1e3 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAlt.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAuto.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAuto.ogg new file mode 100644 index 000000000..eb8e6a76c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAuto.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/shredderCycle.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/shredderCycle.ogg new file mode 100644 index 000000000..3ae4901fa Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/shredderCycle.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/silenced.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/silenced.ogg new file mode 100644 index 000000000..2e972df03 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/silenced.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/smack.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/smack.ogg new file mode 100644 index 000000000..65386b73c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/smack.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/tau.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/tau.ogg new file mode 100644 index 000000000..a09b1ac43 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/tau.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/tauLoop.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/tauLoop.ogg new file mode 100644 index 000000000..275db15a8 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/tauLoop.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/tauRelease1.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/tauRelease1.ogg new file mode 100644 index 000000000..e3d2992d6 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/tauRelease1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/tauRelease2.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/tauRelease2.ogg new file mode 100644 index 000000000..3a466efb2 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/tauRelease2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/tauRelease3.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/tauRelease3.ogg new file mode 100644 index 000000000..770c05b16 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/tauRelease3.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/tesla.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/tesla.ogg new file mode 100644 index 000000000..8c02cb806 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/tesla.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/uzi.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/uzi.ogg new file mode 100644 index 000000000..de44d99ab Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/uzi.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/vstar.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/vstar.ogg new file mode 100644 index 000000000..346ffe2eb Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/vstar.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/foley/gunWhack.ogg b/src/main/resources/assets/hbm/sounds/weapon/foley/gunWhack.ogg new file mode 100644 index 000000000..2f88f3fb8 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/foley/gunWhack.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/foley/gunWhack2.ogg b/src/main/resources/assets/hbm/sounds/weapon/foley/gunWhack2.ogg new file mode 100644 index 000000000..de102e4c3 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/foley/gunWhack2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/glClose.ogg b/src/main/resources/assets/hbm/sounds/weapon/glClose.ogg new file mode 100644 index 000000000..c69c2bcf9 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/glClose.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/glOpen.ogg b/src/main/resources/assets/hbm/sounds/weapon/glOpen.ogg new file mode 100644 index 000000000..27ba81c76 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/glOpen.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg b/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg new file mode 100644 index 000000000..0b7a888a0 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg new file mode 100644 index 000000000..dcc380f2f Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/magReloadBolt.ogg b/src/main/resources/assets/hbm/sounds/weapon/magReloadBolt.ogg new file mode 100644 index 000000000..0e8c4794a Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/magReloadBolt.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/nuclearExplosion.ogg b/src/main/resources/assets/hbm/sounds/weapon/nuclearExplosion.ogg new file mode 100644 index 000000000..6dddc621b Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/nuclearExplosion.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/boltClose.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/boltClose.ogg new file mode 100644 index 000000000..45bd93171 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/boltClose.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/boltOpen.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/boltOpen.ogg new file mode 100644 index 000000000..3124cec57 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/boltOpen.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/closeClick.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/closeClick.ogg new file mode 100644 index 000000000..39f036143 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/closeClick.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/dryFireClick.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/dryFireClick.ogg new file mode 100644 index 000000000..a34d6da1d Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/dryFireClick.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/fatmanFull.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/fatmanFull.ogg new file mode 100644 index 000000000..e3af84df2 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/fatmanFull.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/impact1.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/impact1.ogg new file mode 100644 index 000000000..1e2a681ea Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/impact1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/impact2.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/impact2.ogg new file mode 100644 index 000000000..8612f6f03 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/impact2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/impact3.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/impact3.ogg new file mode 100644 index 000000000..8cacd6138 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/impact3.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/insertCanister.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/insertCanister.ogg new file mode 100644 index 000000000..bff37cdd3 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/insertCanister.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/insertGrenade.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/insertGrenade.ogg new file mode 100644 index 000000000..0b7a888a0 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/insertGrenade.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/insertLarge.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/insertLarge.ogg new file mode 100644 index 000000000..35e2a855b Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/insertLarge.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/insertRocket.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/insertRocket.ogg new file mode 100644 index 000000000..eb24d346a Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/insertRocket.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/leverCock.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/leverCock.ogg new file mode 100644 index 000000000..1591a4903 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/leverCock.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/magInsert.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/magInsert.ogg new file mode 100644 index 000000000..3db4f7dfe Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/magInsert.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/magRemove.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/magRemove.ogg new file mode 100644 index 000000000..995ada889 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/magRemove.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/magSmallInsert.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/magSmallInsert.ogg new file mode 100644 index 000000000..7c9b92a31 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/magSmallInsert.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/magSmallRemove.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/magSmallRemove.ogg new file mode 100644 index 000000000..2411f23eb Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/magSmallRemove.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/openLatch.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/openLatch.ogg new file mode 100644 index 000000000..57ce982d2 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/openLatch.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/pistolCock.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/pistolCock.ogg new file mode 100644 index 000000000..0898895cb Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/pistolCock.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/pressureValve.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/pressureValve.ogg new file mode 100644 index 000000000..ba3c3fc1b Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/pressureValve.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/revolverClose.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/revolverClose.ogg new file mode 100644 index 000000000..1e682c858 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/revolverClose.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/revolverCock.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/revolverCock.ogg new file mode 100644 index 000000000..184cade5f Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/revolverCock.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/revolverSpin.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/revolverSpin.ogg new file mode 100644 index 000000000..25cd591a6 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/revolverSpin.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/rifleCock.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/rifleCock.ogg new file mode 100644 index 000000000..474c91826 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/rifleCock.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/screw.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/screw.ogg new file mode 100644 index 000000000..e6dd7e05c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/screw.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunCock.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunCock.ogg new file mode 100644 index 000000000..8e36020b2 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunCock.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunCockClose.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunCockClose.ogg new file mode 100644 index 000000000..c04bd3a02 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunCockClose.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunCockOpen.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunCockOpen.ogg new file mode 100644 index 000000000..0de904013 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunCockOpen.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunReload1.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunReload1.ogg new file mode 100644 index 000000000..7ab6c8105 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunReload1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunReload2.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunReload2.ogg new file mode 100644 index 000000000..43e966250 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunReload2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunReload3.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunReload3.ogg new file mode 100644 index 000000000..512c6ea81 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/shotgunReload3.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/tubeFwoomp.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/tubeFwoomp.ogg new file mode 100644 index 000000000..f50d3f8b5 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/tubeFwoomp.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/shotgunShootPumpAlt.ogg b/src/main/resources/assets/hbm/sounds/weapon/shotgunShootPumpAlt.ogg new file mode 100644 index 000000000..b4d1bac67 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/shotgunShootPumpAlt.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/shottyShoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/shottyShoot.ogg index 13aca3d35..0d37b493a 100644 Binary files a/src/main/resources/assets/hbm/sounds/weapon/shottyShoot.ogg and b/src/main/resources/assets/hbm/sounds/weapon/shottyShoot.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg b/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg new file mode 100644 index 000000000..22b179fda Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg differ diff --git a/src/main/resources/assets/hbm/textures/armor/axepack.png b/src/main/resources/assets/hbm/textures/armor/axepack.png new file mode 100644 index 000000000..63f1dc712 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/axepack.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_arm.png b/src/main/resources/assets/hbm/textures/armor/envsuit_arm.png new file mode 100644 index 000000000..9c7d6ec9a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/envsuit_arm.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_chest.png b/src/main/resources/assets/hbm/textures/armor/envsuit_chest.png new file mode 100644 index 000000000..9f4c8b0f1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/envsuit_chest.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_helmet.png b/src/main/resources/assets/hbm/textures/armor/envsuit_helmet.png new file mode 100644 index 000000000..5849c62c5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/envsuit_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_leg.png b/src/main/resources/assets/hbm/textures/armor/envsuit_leg.png new file mode 100644 index 000000000..7dbe96988 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/envsuit_leg.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_tail.png b/src/main/resources/assets/hbm/textures/armor/envsuit_tail.png new file mode 100644 index 000000000..81d1aa345 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/envsuit_tail.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/tail_peep.png b/src/main/resources/assets/hbm/textures/armor/tail_peep.png new file mode 100644 index 000000000..ae222d9f4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/tail_peep.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/test_1.png b/src/main/resources/assets/hbm/textures/armor/test_1.png deleted file mode 100644 index a6760ae39..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/test_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/test_2.png b/src/main/resources/assets/hbm/textures/armor/test_2.png deleted file mode 100644 index e3774a662..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/test_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png new file mode 100644 index 000000000..b42795dcc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_chest.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_chest.png new file mode 100644 index 000000000..ae2f704d8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/trenchmaster_chest.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png new file mode 100644 index 000000000..e8b931433 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_leg.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_leg.png new file mode 100644 index 000000000..67edc2382 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/trenchmaster_leg.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/wings_solstice.png b/src/main/resources/assets/hbm/textures/armor/wings_solstice.png deleted file mode 100644 index 4b9aa3424..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/wings_solstice.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/anvil_arsenic_bronze.png b/src/main/resources/assets/hbm/textures/blocks/anvil_arsenic_bronze.png new file mode 100644 index 000000000..8f27fa83f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/anvil_arsenic_bronze.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/anvil_bismuth_bronze.png b/src/main/resources/assets/hbm/textures/blocks/anvil_bismuth_bronze.png new file mode 100644 index 000000000..cb16ba9cc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/anvil_bismuth_bronze.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/anvil_desh.png b/src/main/resources/assets/hbm/textures/blocks/anvil_desh.png new file mode 100644 index 000000000..6c18116de Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/anvil_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/anvil_saturnite.png b/src/main/resources/assets/hbm/textures/blocks/anvil_saturnite.png new file mode 100644 index 000000000..5e7c92930 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/anvil_saturnite.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ash.png b/src/main/resources/assets/hbm/textures/blocks/ash.png index a16315628..7ad5b19db 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/ash.png and b/src/main/resources/assets/hbm/textures/blocks/ash.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt.png b/src/main/resources/assets/hbm/textures/blocks/basalt.png index 8cc74f42c..ddf35c770 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/basalt.png and b/src/main/resources/assets/hbm/textures/blocks/basalt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_asbestos.png b/src/main/resources/assets/hbm/textures/blocks/basalt_asbestos.png deleted file mode 100644 index b808e9ec0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/basalt_asbestos.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_fluorite.png b/src/main/resources/assets/hbm/textures/blocks/basalt_fluorite.png deleted file mode 100644 index a257b53ba..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/basalt_fluorite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_gem.png b/src/main/resources/assets/hbm/textures/blocks/basalt_gem.png deleted file mode 100644 index 53be07abe..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/basalt_gem.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_overlay.png b/src/main/resources/assets/hbm/textures/blocks/basalt_overlay.png deleted file mode 100644 index dba5f8339..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/basalt_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_sulfur.png b/src/main/resources/assets/hbm/textures/blocks/basalt_sulfur.png deleted file mode 100644 index 4cb524681..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/basalt_sulfur.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_top.png b/src/main/resources/assets/hbm/textures/blocks/basalt_top.png new file mode 100644 index 000000000..77a745592 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/basalt_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/battery_front.png b/src/main/resources/assets/hbm/textures/blocks/battery_front.png deleted file mode 100644 index fe0c31d47..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/battery_front.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/battery_front_alt_old.png b/src/main/resources/assets/hbm/textures/blocks/battery_front_alt_old.png deleted file mode 100644 index fbece0fca..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/battery_front_alt_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/battery_lithium_front_old.png b/src/main/resources/assets/hbm/textures/blocks/battery_lithium_front_old.png deleted file mode 100644 index b18f7ac1a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/battery_lithium_front_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/battery_lithium_side_old.png b/src/main/resources/assets/hbm/textures/blocks/battery_lithium_side_old.png deleted file mode 100644 index 8bba4f3e0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/battery_lithium_side_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/battery_schrabidium_front_old.png b/src/main/resources/assets/hbm/textures/blocks/battery_schrabidium_front_old.png deleted file mode 100644 index f5e3084b2..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/battery_schrabidium_front_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/battery_side.png b/src/main/resources/assets/hbm/textures/blocks/battery_side.png deleted file mode 100644 index 7cfad2e99..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/battery_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/battery_side_alt_old.png b/src/main/resources/assets/hbm/textures/blocks/battery_side_alt_old.png deleted file mode 100644 index f46168c55..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/battery_side_alt_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png b/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png index 95ddf654f..55e55b543 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png and b/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_deprecated.png b/src/main/resources/assets/hbm/textures/blocks/block_deprecated.png new file mode 100644 index 000000000..5d3a513ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_deprecated.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png b/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png index 69c2027cb..1a8d8d450 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png and b/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png index 258a60867..7c5cd06f8 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png index 1b6fdcb1a..992f81da1 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png index a6d884bee..e0e3f2d87 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png index 9ce5b3466..2424e7f15 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png index d89bd1753..cb14afd5e 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png index ed3dabe63..e93b0eeea 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png deleted file mode 100644 index 011c1e47d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_0.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_0.png new file mode 100644 index 000000000..ec1fc103c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_1.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_1.png new file mode 100644 index 000000000..c9012efbd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_2.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_2.png new file mode 100644 index 000000000..171b3c0b4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_3.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_3.png new file mode 100644 index 000000000..02c08f0fc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_4.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_4.png new file mode 100644 index 000000000..6d74263ec Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_straight.png index 1c413b9dc..21c9779b8 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_straight.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_straight.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust.png new file mode 100644 index 000000000..b35129b64 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_bl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_bl.png new file mode 100644 index 000000000..24d68d1e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_bl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_br.png new file mode 100644 index 000000000..a3326e99b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_br.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tl.png new file mode 100644 index 000000000..f309e8de5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tr.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tr.png new file mode 100644 index 000000000..dfd0747a0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tr.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_end.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_end.png new file mode 100644 index 000000000..9d954e1c7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_end.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction.png new file mode 100644 index 000000000..8019ad543 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_0.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_0.png new file mode 100644 index 000000000..62714bdbb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_1.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_1.png new file mode 100644 index 000000000..718ff2d9e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_2.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_2.png new file mode 100644 index 000000000..5422296f6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_3.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_3.png new file mode 100644 index 000000000..d8814f63e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_4.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_4.png new file mode 100644 index 000000000..7f1ba80d8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_straight.png new file mode 100644 index 000000000..f76dd0378 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_straight.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver.png index 63002d448..2e552086b 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_bl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_bl.png index cbfc0f897..3f9efab8e 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_bl.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_bl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_br.png index a18dd32fc..ecb91be52 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_br.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_br.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tl.png index 304d273ed..9136999aa 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tl.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tr.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tr.png index 2db735758..704acd60c 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tr.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tr.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_end.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_end.png index b0cb42c95..24284ee8f 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_end.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_end.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction.png deleted file mode 100644 index 2ce589063..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_0.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_0.png new file mode 100644 index 000000000..b519a48da Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_1.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_1.png new file mode 100644 index 000000000..265364ee7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_2.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_2.png new file mode 100644 index 000000000..86b1aa4fc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_3.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_3.png new file mode 100644 index 000000000..7916c63a6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_4.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_4.png new file mode 100644 index 000000000..3e6b7e9f2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_straight.png index d8a5699bf..d051e9354 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_straight.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_straight.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white.png new file mode 100644 index 000000000..391bc0a0d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_bl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_bl.png index 586ca4d1a..94cfc0ecb 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_bl.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_bl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_br.png index 1883702b0..b2c75f853 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_br.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_br.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tl.png index e79b0a583..2684f8677 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tl.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tr.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tr.png index 1732c7916..dd96f902b 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tr.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tr.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_end.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_end.png index 484764a50..3eebf73c6 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_end.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_end.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction.png deleted file mode 100644 index 36e78e712..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_0.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_0.png new file mode 100644 index 000000000..35019f1d8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_1.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_1.png new file mode 100644 index 000000000..3dcf36521 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_2.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_2.png new file mode 100644 index 000000000..2ac37ec44 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_3.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_3.png new file mode 100644 index 000000000..c188b753f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_4.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_4.png new file mode 100644 index 000000000..080929179 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_straight.png index 636913932..a76af87a1 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_straight.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_straight.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon.png deleted file mode 100644 index a6b18a234..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_circle.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_circle.png deleted file mode 100644 index 7a5f29680..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_circle.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_flat.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_flat.png deleted file mode 100644 index 646165eb1..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_flat.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_tile.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_tile.png deleted file mode 100644 index 484111395..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_tile.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_red.png b/src/main/resources/assets/hbm/textures/blocks/brick_red.png new file mode 100644 index 000000000..21fc140e0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/brick_red.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_red_top.png b/src/main/resources/assets/hbm/textures/blocks/brick_red_top.png new file mode 100644 index 000000000..c928f1f98 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/brick_red_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_red_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/brick_red_top_alt.png new file mode 100644 index 000000000..5ad266bbe Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/brick_red_top_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cable_gauge.png b/src/main/resources/assets/hbm/textures/blocks/cable_gauge.png new file mode 100644 index 000000000..206104da9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cable_gauge.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cage_lamp.png b/src/main/resources/assets/hbm/textures/blocks/cage_lamp.png new file mode 100644 index 000000000..f78cb205e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cage_lamp.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cage_lamp_off.png b/src/main/resources/assets/hbm/textures/blocks/cage_lamp_off.png new file mode 100644 index 000000000..c2bf59718 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cage_lamp_off.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_bottom.png new file mode 100644 index 000000000..91b4ab950 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_side.png new file mode 100644 index 000000000..c81f1996e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_top.png new file mode 100644 index 000000000..5ed43ff9c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_side.png new file mode 100644 index 000000000..c70303bb1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_top.png new file mode 100644 index 000000000..de67f9b0c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cheater_virus_seed_alt.png b/src/main/resources/assets/hbm/textures/blocks/cheater_virus_seed_alt.png deleted file mode 100644 index 9c428a3b7..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/cheater_virus_seed_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_block_alloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_block_alloy.png new file mode 100644 index 000000000..af14c2675 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_block_alloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_block_base.png b/src/main/resources/assets/hbm/textures/blocks/cm_block_base.png new file mode 100644 index 000000000..ce60d26f2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_block_base.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_block_desh.png b/src/main/resources/assets/hbm/textures/blocks/cm_block_desh.png new file mode 100644 index 000000000..73f09cf61 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_block_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_block_steel.png b/src/main/resources/assets/hbm/textures/blocks/cm_block_steel.png new file mode 100644 index 000000000..05180ac75 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_block_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_block_tcalloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_block_tcalloy.png new file mode 100644 index 000000000..1ba202798 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_block_tcalloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_circuit_aluminium.png b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_aluminium.png new file mode 100644 index 000000000..8e44446d3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_aluminium.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_circuit_copper.png b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_copper.png new file mode 100644 index 000000000..7217056b0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_circuit_gold.png b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_gold.png new file mode 100644 index 000000000..4c5bed684 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_gold.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_circuit_red_copper.png b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_red_copper.png new file mode 100644 index 000000000..f7df862cf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_red_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_circuit_schrabidium.png b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_schrabidium.png new file mode 100644 index 000000000..da97f4286 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_schrabidium.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_engine_bismuth.png b/src/main/resources/assets/hbm/textures/blocks/cm_engine_bismuth.png new file mode 100644 index 000000000..c61aa02bd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_engine_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_engine_desh.png b/src/main/resources/assets/hbm/textures/blocks/cm_engine_desh.png new file mode 100644 index 000000000..ff2e71fff Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_engine_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_engine_standard.png b/src/main/resources/assets/hbm/textures/blocks/cm_engine_standard.png new file mode 100644 index 000000000..a629ff54d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_engine_standard.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_flux_side.png b/src/main/resources/assets/hbm/textures/blocks/cm_flux_side.png new file mode 100644 index 000000000..5a2a210d6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_flux_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_flux_top.png b/src/main/resources/assets/hbm/textures/blocks/cm_flux_top.png new file mode 100644 index 000000000..05180ac75 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_flux_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_heat_side.png b/src/main/resources/assets/hbm/textures/blocks/cm_heat_side.png new file mode 100644 index 000000000..7d51fdbba Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_heat_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_heat_top.png b/src/main/resources/assets/hbm/textures/blocks/cm_heat_top.png new file mode 100644 index 000000000..5ef2acf99 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_heat_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_port_alloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_port_alloy.png new file mode 100644 index 000000000..5fb09e5bc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_port_alloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_port_desh.png b/src/main/resources/assets/hbm/textures/blocks/cm_port_desh.png new file mode 100644 index 000000000..fe18d8e6f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_port_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_port_steel.png b/src/main/resources/assets/hbm/textures/blocks/cm_port_steel.png new file mode 100644 index 000000000..a7c997edb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_port_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_port_tcalloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_port_tcalloy.png new file mode 100644 index 000000000..e06654337 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_port_tcalloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_sheet_alloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_alloy.png new file mode 100644 index 000000000..3cee48d8f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_alloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_sheet_base.png b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_base.png new file mode 100644 index 000000000..8f6382d01 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_base.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_sheet_desh.png b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_desh.png new file mode 100644 index 000000000..b68c2850f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_sheet_steel.png b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_steel.png new file mode 100644 index 000000000..e1a1160bb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_sheet_tcalloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_tcalloy.png new file mode 100644 index 000000000..5fa07c692 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_tcalloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_tank_alloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_tank_alloy.png new file mode 100644 index 000000000..189361a5c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_tank_alloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_tank_desh.png b/src/main/resources/assets/hbm/textures/blocks/cm_tank_desh.png new file mode 100644 index 000000000..97d667b6d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_tank_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_tank_steel.png b/src/main/resources/assets/hbm/textures/blocks/cm_tank_steel.png new file mode 100644 index 000000000..e0d207b55 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_tank_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_tank_tcalloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_tank_tcalloy.png new file mode 100644 index 000000000..8b5444a3a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_tank_tcalloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_terminal_front.png b/src/main/resources/assets/hbm/textures/blocks/cm_terminal_front.png new file mode 100644 index 000000000..bbf5d2338 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_terminal_front.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_terminal_side.png b/src/main/resources/assets/hbm/textures/blocks/cm_terminal_side.png new file mode 100644 index 000000000..24a880774 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cm_terminal_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cmb_brick.png b/src/main/resources/assets/hbm/textures/blocks/cmb_brick.png index 24ad4c311..128e0e45b 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/cmb_brick.png and b/src/main/resources/assets/hbm/textures/blocks/cmb_brick.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cmb_brick_reinforced.png b/src/main/resources/assets/hbm/textures/blocks/cmb_brick_reinforced.png index ade707867..939e78a86 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/cmb_brick_reinforced.png and b/src/main/resources/assets/hbm/textures/blocks/cmb_brick_reinforced.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_front.png b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_front.png new file mode 100644 index 000000000..1cf5cdafa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_front.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_side.png b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_side.png new file mode 100644 index 000000000..adb2fdb8a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.bronze.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.bronze.png new file mode 100644 index 000000000..46677bde3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.bronze.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.sand.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.sand.png new file mode 100644 index 000000000..0082fedc4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.sand.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png new file mode 100644 index 000000000..df5c9a664 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png new file mode 100644 index 000000000..dc1fd209b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png new file mode 100644 index 000000000..275cf2485 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_left.png new file mode 100644 index 000000000..5bdc5d132 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_right.png new file mode 100644 index 000000000..0c3c43bd9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_down.png new file mode 100644 index 000000000..e2590058d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_up.png new file mode 100644 index 000000000..3c3f8f469 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_down.png new file mode 100644 index 000000000..3e47bb1b0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_up.png new file mode 100644 index 000000000..7aaa43bc3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_left.png new file mode 100644 index 000000000..fc5c0762a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_right.png new file mode 100644 index 000000000..072ada276 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_left.png new file mode 100644 index 000000000..f848301dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_right.png new file mode 100644 index 000000000..05881e595 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_left.png new file mode 100644 index 000000000..03f312b40 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_right.png new file mode 100644 index 000000000..f1f7fb7d3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_down.png new file mode 100644 index 000000000..c8ed570b8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_up.png new file mode 100644 index 000000000..959d1982b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_down.png new file mode 100644 index 000000000..5345e832c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_up.png new file mode 100644 index 000000000..e0214f3d4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_left.png new file mode 100644 index 000000000..7c0e16cb9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_right.png new file mode 100644 index 000000000..cda6ec687 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_left.png new file mode 100644 index 000000000..8877112aa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_right.png new file mode 100644 index 000000000..2348ad43b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in.png b/src/main/resources/assets/hbm/textures/blocks/crane_in.png index 8eb25f502..98f5652c1 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/crane_in.png and b/src/main/resources/assets/hbm/textures/blocks/crane_in.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down_turn_left.png new file mode 100644 index 000000000..ecbed86c1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down_turn_right.png new file mode 100644 index 000000000..3f29dca63 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_left_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_left_turn_down.png new file mode 100644 index 000000000..bd2e18f64 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_left_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_left_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_left_turn_up.png new file mode 100644 index 000000000..34acf0577 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_left_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_down.png new file mode 100644 index 000000000..fb2fca3ff Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_up.png new file mode 100644 index 000000000..059b922fb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_left.png new file mode 100644 index 000000000..763c68afc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_right.png new file mode 100644 index 000000000..0d062f8c7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_top_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_top_left.png new file mode 100644 index 000000000..23721ae91 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_top_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_top_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_top_right.png new file mode 100644 index 000000000..1f9c63552 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_in_top_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out.png b/src/main/resources/assets/hbm/textures/blocks/crane_out.png index 98f5652c1..8eb25f502 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/crane_out.png and b/src/main/resources/assets/hbm/textures/blocks/crane_out.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_left.png new file mode 100644 index 000000000..760f1c1f3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_right.png new file mode 100644 index 000000000..e9bd8e352 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_left_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_left_turn_down.png new file mode 100644 index 000000000..d99bde01f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_left_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_left_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_left_turn_up.png new file mode 100644 index 000000000..7e7dcd0be Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_left_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_right_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_right_turn_down.png new file mode 100644 index 000000000..7ac3cae11 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_right_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_right_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_right_turn_up.png new file mode 100644 index 000000000..ed3d586a8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_right_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_left.png new file mode 100644 index 000000000..3a5c6636e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_right.png new file mode 100644 index 000000000..18271a72f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_top_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_top_left.png new file mode 100644 index 000000000..d2ffff31e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_top_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_top_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_top_right.png new file mode 100644 index 000000000..78f357645 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_out_top_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_partitioner_back.png b/src/main/resources/assets/hbm/textures/blocks/crane_partitioner_back.png new file mode 100644 index 000000000..96a123b22 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_partitioner_back.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_partitioner_side.png b/src/main/resources/assets/hbm/textures/blocks/crane_partitioner_side.png new file mode 100644 index 000000000..875d3d239 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_partitioner_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_side_in.png b/src/main/resources/assets/hbm/textures/blocks/crane_side_in.png index ead7f5c56..47f4406f4 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/crane_side_in.png and b/src/main/resources/assets/hbm/textures/blocks/crane_side_in.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_side_out.png b/src/main/resources/assets/hbm/textures/blocks/crane_side_out.png index 47f4406f4..ead7f5c56 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/crane_side_out.png and b/src/main/resources/assets/hbm/textures/blocks/crane_side_out.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_left.png new file mode 100644 index 000000000..1d6cfc0b0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_right.png new file mode 100644 index 000000000..7601fddfc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_down.png new file mode 100644 index 000000000..99d98ea56 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_up.png new file mode 100644 index 000000000..bbf523a73 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_down.png new file mode 100644 index 000000000..01d6712ed Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_down.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_up.png new file mode 100644 index 000000000..ccc53b86e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_up.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_left.png new file mode 100644 index 000000000..33e53a5e9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_right.png new file mode 100644 index 000000000..51827914c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_left.png new file mode 100644 index 000000000..4d042062a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_right.png new file mode 100644 index 000000000..5f1aeb266 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crate_template.png b/src/main/resources/assets/hbm/textures/blocks/crate_template.png new file mode 100644 index 000000000..2ae4399fc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crate_template.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png b/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png new file mode 100644 index 000000000..15cb8c1dc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/crt_blinking.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/crt_broken.png b/src/main/resources/assets/hbm/textures/blocks/crt_broken.png new file mode 100644 index 000000000..1e66e452b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crt_broken.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crt_bsod.png b/src/main/resources/assets/hbm/textures/blocks/crt_bsod.png new file mode 100644 index 000000000..87358330b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crt_bsod.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crt_clean.png b/src/main/resources/assets/hbm/textures/blocks/crt_clean.png new file mode 100644 index 000000000..5b80ced2c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crt_clean.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crystal_energy.png b/src/main/resources/assets/hbm/textures/blocks/crystal_energy.png deleted file mode 100644 index bff0743b9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/crystal_energy.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crystal_power.png b/src/main/resources/assets/hbm/textures/blocks/crystal_power.png deleted file mode 100644 index b9ff5beb0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/crystal_power.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crystal_robust.png b/src/main/resources/assets/hbm/textures/blocks/crystal_robust.png deleted file mode 100644 index 77eb74348..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/crystal_robust.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crystal_trixite.png b/src/main/resources/assets/hbm/textures/blocks/crystal_trixite.png deleted file mode 100644 index 30fddb0b3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/crystal_trixite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/deco_steel_alt.png b/src/main/resources/assets/hbm/textures/blocks/deco_steel_alt.png deleted file mode 100644 index 937b41603..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/deco_steel_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/deco_titanium_alt.png b/src/main/resources/assets/hbm/textures/blocks/deco_titanium_alt.png deleted file mode 100644 index 2adcbba63..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/deco_titanium_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/deco_tungsten_alt.png b/src/main/resources/assets/hbm/textures/blocks/deco_tungsten_alt.png deleted file mode 100644 index b99a7abb9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/deco_tungsten_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/diamond_block.png b/src/main/resources/assets/hbm/textures/blocks/diamond_block.png deleted file mode 100644 index f2e2e771a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/diamond_block.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/diamond_ore.png b/src/main/resources/assets/hbm/textures/blocks/diamond_ore.png deleted file mode 100644 index 735ecdaa9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/diamond_ore.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/door_red_lower.png b/src/main/resources/assets/hbm/textures/blocks/door_red_lower.png new file mode 100644 index 000000000..d3771415f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/door_red_lower.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/door_red_upper.png b/src/main/resources/assets/hbm/textures/blocks/door_red_upper.png new file mode 100644 index 000000000..daff0a752 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/door_red_upper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drill_pipe.png b/src/main/resources/assets/hbm/textures/blocks/drill_pipe.png deleted file mode 100644 index ce47da701..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/drill_pipe.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png new file mode 100644 index 000000000..dbc6e87ca Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png new file mode 100644 index 000000000..c7d04c9a3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png new file mode 100644 index 000000000..add80fb8d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png new file mode 100644 index 000000000..824bd9421 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png new file mode 100644 index 000000000..2b75efcb7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png new file mode 100644 index 000000000..70d40f070 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png new file mode 100644 index 000000000..e8d4476ce Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png new file mode 100644 index 000000000..bb54d31ae Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png new file mode 100644 index 000000000..4d38b8ec7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_dock_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_dock_bottom.png new file mode 100644 index 000000000..67ebd79ec Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_dock_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png new file mode 100644 index 000000000..fd71122a6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_dock_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_dock_top.png new file mode 100644 index 000000000..2186e84bb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_dock_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png new file mode 100644 index 000000000..658409299 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png new file mode 100644 index 000000000..730f2a051 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png b/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png deleted file mode 100644 index a26c35f6a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fence_metal.png b/src/main/resources/assets/hbm/textures/blocks/fence_metal.png index 12d6faaea..40f5411bb 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/fence_metal.png and b/src/main/resources/assets/hbm/textures/blocks/fence_metal.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fence_metal_post.png b/src/main/resources/assets/hbm/textures/blocks/fence_metal_post.png new file mode 100644 index 000000000..12d6faaea Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/fence_metal_post.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/flood_lamp.png b/src/main/resources/assets/hbm/textures/blocks/flood_lamp.png new file mode 100644 index 000000000..1582fc963 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/flood_lamp.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/flood_lamp_off.png b/src/main/resources/assets/hbm/textures/blocks/flood_lamp_off.png new file mode 100644 index 000000000..b79c23c1d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/flood_lamp_off.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fluid_switch_off.png b/src/main/resources/assets/hbm/textures/blocks/fluid_switch_off.png new file mode 100644 index 000000000..b12413cf5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/fluid_switch_off.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fluid_switch_on.png b/src/main/resources/assets/hbm/textures/blocks/fluid_switch_on.png new file mode 100644 index 000000000..46c641f19 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/fluid_switch_on.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fluid_valve_off.png b/src/main/resources/assets/hbm/textures/blocks/fluid_valve_off.png index 62e2dc7cf..fcf1d2a54 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/fluid_valve_off.png and b/src/main/resources/assets/hbm/textures/blocks/fluid_valve_off.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fluid_valve_on.png b/src/main/resources/assets/hbm/textures/blocks/fluid_valve_on.png index 4bb093842..19c8bec2a 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/fluid_valve_on.png and b/src/main/resources/assets/hbm/textures/blocks/fluid_valve_on.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp.png b/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp.png new file mode 100644 index 000000000..f10e42271 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp_off.png b/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp_off.png new file mode 100644 index 000000000..edc0193a7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/fluorescent_lamp_off.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_computer.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_computer.png deleted file mode 100644 index 1a00908d6..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_computer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_conductor_side.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_conductor_side.png deleted file mode 100644 index 822c86ba4..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_conductor_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler.png deleted file mode 100644 index a4346b0df..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler_top.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler_top.png deleted file mode 100644 index c4eb67842..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_core.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_core.png deleted file mode 100644 index b7deb184e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_core.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_hatch.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_hatch.png deleted file mode 100644 index e40535680..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_hatch.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png deleted file mode 100644 index 536f3cfef..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_scaffold.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_scaffold.png deleted file mode 100644 index 7064b031b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_scaffold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_tank.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_tank.png deleted file mode 100644 index 248ae197d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_tank.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid.png b/src/main/resources/assets/hbm/textures/blocks/glyphid.png new file mode 100644 index 000000000..57f80e334 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png deleted file mode 100644 index 541a53c5f..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_alt.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_alt.png new file mode 100644 index 000000000..a0fa4d8e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested.png new file mode 100644 index 000000000..50c058246 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested_alt.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested_alt.png new file mode 100644 index 000000000..7cfa0d2da Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_rad.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_rad.png new file mode 100644 index 000000000..a7050e29e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_rad.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_rad_alt.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_rad_alt.png new file mode 100644 index 000000000..71bbc91ce Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_rad_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs.png new file mode 100644 index 000000000..8f1e021e5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_alt.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_alt.png new file mode 100644 index 000000000..f641f7f24 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base.png new file mode 100644 index 000000000..8d0ed4045 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_infested.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_infested.png new file mode 100644 index 000000000..c4308d58a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_infested.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_rad.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_rad.png new file mode 100644 index 000000000..b55a9c7da Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_rad.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_infested.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_infested.png new file mode 100644 index 000000000..93786bc31 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_infested.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_rad.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_rad.png new file mode 100644 index 000000000..11f9bdc1a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_rad.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png b/src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png new file mode 100644 index 000000000..04e264932 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_cooler_mk2.png b/src/main/resources/assets/hbm/textures/blocks/hadron_cooler_mk2.png new file mode 100644 index 000000000..63c994f68 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/hadron_cooler_mk2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_core_in.png b/src/main/resources/assets/hbm/textures/blocks/hadron_core_in.png index 477cfb6fd..ff8c0e9b3 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/hadron_core_in.png and b/src/main/resources/assets/hbm/textures/blocks/hadron_core_in.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_core_out.png b/src/main/resources/assets/hbm/textures/blocks/hadron_core_out.png index 4f9cabbe7..7bd095d71 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/hadron_core_out.png and b/src/main/resources/assets/hbm/textures/blocks/hadron_core_out.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/hazmat.png b/src/main/resources/assets/hbm/textures/blocks/hazmat.png deleted file mode 100644 index 92997dc0b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/hazmat.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/hazmat_alt.png b/src/main/resources/assets/hbm/textures/blocks/hazmat_alt.png deleted file mode 100644 index 049f1bae8..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/hazmat_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block.png b/src/main/resources/assets/hbm/textures/blocks/icf_block.png new file mode 100644 index 000000000..52b8aa635 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_block.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_ct.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_ct.png new file mode 100644 index 000000000..3d5496e2f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_block_ct.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png new file mode 100644 index 000000000..9de12e638 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_block_port.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_block_port_ct.png b/src/main/resources/assets/hbm/textures/blocks/icf_block_port_ct.png new file mode 100644 index 000000000..df3306630 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_block_port_ct.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_side.png b/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_side.png new file mode 100644 index 000000000..71c3c1388 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_top.png b/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_top.png new file mode 100644 index 000000000..ee5387e89 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_capacitor_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_casing.png b/src/main/resources/assets/hbm/textures/blocks/icf_casing.png new file mode 100644 index 000000000..87ebf08fd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_casing.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_cell.png b/src/main/resources/assets/hbm/textures/blocks/icf_cell.png new file mode 100644 index 000000000..2f33a7867 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_cell.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_component.png b/src/main/resources/assets/hbm/textures/blocks/icf_component.png new file mode 100644 index 000000000..38dd3e1e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_component.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_component.structure.png b/src/main/resources/assets/hbm/textures/blocks/icf_component.structure.png new file mode 100644 index 000000000..7092409ad Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_component.structure.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_component.structure_bolted.png b/src/main/resources/assets/hbm/textures/blocks/icf_component.structure_bolted.png new file mode 100644 index 000000000..16d62d59f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_component.structure_bolted.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_component.vessel.png b/src/main/resources/assets/hbm/textures/blocks/icf_component.vessel.png new file mode 100644 index 000000000..7e17c653e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_component.vessel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_component.vessel_welded.png b/src/main/resources/assets/hbm/textures/blocks/icf_component.vessel_welded.png new file mode 100644 index 000000000..777afe710 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_component.vessel_welded.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_controller.png b/src/main/resources/assets/hbm/textures/blocks/icf_controller.png new file mode 100644 index 000000000..fa0440740 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_controller.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_emitter.png b/src/main/resources/assets/hbm/textures/blocks/icf_emitter.png new file mode 100644 index 000000000..f077f304b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_emitter.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_port.png b/src/main/resources/assets/hbm/textures/blocks/icf_port.png new file mode 100644 index 000000000..bbce4c101 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_port.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/icf_turbocharger.png b/src/main/resources/assets/hbm/textures/blocks/icf_turbocharger.png new file mode 100644 index 000000000..be55a576f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/icf_turbocharger.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/industrial_generator.png b/src/main/resources/assets/hbm/textures/blocks/industrial_generator.png deleted file mode 100644 index 089b2f3e7..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/industrial_generator.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/inserter_side.png b/src/main/resources/assets/hbm/textures/blocks/inserter_side.png deleted file mode 100644 index 528fcd142..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/inserter_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/inserter_top.png b/src/main/resources/assets/hbm/textures/blocks/inserter_top.png deleted file mode 100644 index 703d13408..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/inserter_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front.png b/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front.png deleted file mode 100644 index a780a61f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front_alt.png deleted file mode 100644 index 3aa01340e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front_lit.png b/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front_lit.png deleted file mode 100644 index 6fade7b2d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front_lit.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front_lit_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front_lit_alt.png deleted file mode 100644 index b1414c365..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_electric_front_lit_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_front_lit.png b/src/main/resources/assets/hbm/textures/blocks/machine_boiler_front_lit.png deleted file mode 100644 index f396630df..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_front_lit.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_nuclear.png b/src/main/resources/assets/hbm/textures/blocks/machine_boiler_nuclear.png deleted file mode 100644 index 6acf56292..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_nuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_nuclear_front.png b/src/main/resources/assets/hbm/textures/blocks/machine_boiler_nuclear_front.png deleted file mode 100644 index ca198b3a0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_nuclear_front.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_nuclear_front_lit.png b/src/main/resources/assets/hbm/textures/blocks/machine_boiler_nuclear_front_lit.png deleted file mode 100644 index 751b376da..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_nuclear_front_lit.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_port.png b/src/main/resources/assets/hbm/textures/blocks/machine_boiler_port.png deleted file mode 100644 index 33be7b5a9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_boiler_port.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off.png deleted file mode 100644 index 88988d8af..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off_alt.png deleted file mode 100644 index 696252554..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on.png deleted file mode 100644 index b7be137c4..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on_alt.png deleted file mode 100644 index fd3db8a9a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_side.png deleted file mode 100644 index ae621d7a0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_side_alt.png deleted file mode 100644 index 326238314..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_side_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png b/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png index c3535d9f6..f510f724a 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png and b/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png b/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png index 21e102708..9a865bd8f 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png and b/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_deuterium_front.png b/src/main/resources/assets/hbm/textures/blocks/machine_deuterium_front.png deleted file mode 100644 index 5811d823d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_deuterium_front.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_deuterium_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_deuterium_side.png deleted file mode 100644 index bd8c49821..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_deuterium_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_diesel_bottom.png deleted file mode 100644 index 8c88d493c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_bottom.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_front.png b/src/main/resources/assets/hbm/textures/blocks/machine_diesel_front.png deleted file mode 100644 index 81a7fb19b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_front.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_diesel_side.png deleted file mode 100644 index babe6929c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_diesel_top.png deleted file mode 100644 index 2dc9eeb63..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_diesel_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_drill.png b/src/main/resources/assets/hbm/textures/blocks/machine_drill.png deleted file mode 100644 index 379b7371a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_drill.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_flare.png b/src/main/resources/assets/hbm/textures/blocks/machine_flare.png deleted file mode 100644 index 881172519..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_flare.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel.png new file mode 100644 index 000000000..40cdfa516 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_bottom.png new file mode 100644 index 000000000..0ffb54e3d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore.png new file mode 100644 index 000000000..d429fc43e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_bottom.png new file mode 100644 index 000000000..e1062efc4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_side.png new file mode 100644 index 000000000..e83237b61 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_top.png new file mode 100644 index 000000000..6b0e57915 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_side.png new file mode 100644 index 000000000..16410b2ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_top.png new file mode 100644 index 000000000..151899a23 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_bottom.png new file mode 100644 index 000000000..6db8f00c0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_front_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_front_off.png new file mode 100644 index 000000000..5c382d9f9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_front_off.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_front_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_front_on.png new file mode 100644 index 000000000..5738e17c1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_front_on.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_side.png new file mode 100644 index 000000000..f94f5ae4c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_top.png new file mode 100644 index 000000000..8c17a8dc8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_furnace_brick_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_fron_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_fron_on.png deleted file mode 100644 index 6763f77a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_fron_on.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_front_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_front_off.png deleted file mode 100644 index 18dcd258c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_front_off.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_off.png deleted file mode 100644 index 92fb934f8..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_off.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_on.png deleted file mode 100644 index 2addbfbe7..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_on.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_side.png deleted file mode 100644 index 4ce572787..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_top.png deleted file mode 100644 index aa6472535..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_generator.png b/src/main/resources/assets/hbm/textures/blocks/machine_generator.png deleted file mode 100644 index 4a3bcf52e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_generator.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_generator_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_generator_side.png deleted file mode 100644 index 0026c42aa..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_generator_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_side.png new file mode 100644 index 000000000..f9f1ce193 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_top.png new file mode 100644 index 000000000..a8dc67183 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_icf_press_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_side_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_side_side.png deleted file mode 100644 index 23b4fbeab..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_side_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png deleted file mode 100644 index 6f02e9b08..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_side.png deleted file mode 100644 index fdd31750a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_top.png deleted file mode 100644 index b6d0a8511..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_refinery_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_refinery_side.png deleted file mode 100644 index f16831e2f..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_refinery_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_refinery_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_refinery_side_alt.png deleted file mode 100644 index 5d6cc6d84..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_refinery_side_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_refinery_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_refinery_top.png deleted file mode 100644 index 6c8ca9a7c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_refinery_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_blue.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_blue.png deleted file mode 100644 index 5ddff42de..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_blue.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_cyan.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_cyan.png deleted file mode 100644 index fac216a59..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_cyan.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_green.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_green.png deleted file mode 100644 index 5b3f8f914..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_green.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_grey.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_grey.png deleted file mode 100644 index 7128c950c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_grey.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_orange.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_orange.png deleted file mode 100644 index da4f8ad1f..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_orange.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_purple.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_purple.png deleted file mode 100644 index c0b633247..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_purple.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_red.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_red.png deleted file mode 100644 index 076167a90..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_red.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_yellow.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_yellow.png deleted file mode 100644 index 2f54bb11b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_side_yellow.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top.png deleted file mode 100644 index 8e3391409..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_blue.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_blue.png deleted file mode 100644 index 74c8aba72..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_blue.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_cyan.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_cyan.png deleted file mode 100644 index c62daaeb5..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_cyan.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_green.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_green.png deleted file mode 100644 index 2b436376c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_green.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_grey.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_grey.png deleted file mode 100644 index aa04dc3c9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_grey.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_orange.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_orange.png deleted file mode 100644 index b77a727ff..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_orange.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_purple.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_purple.png deleted file mode 100644 index d3853fe50..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_purple.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_red.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_red.png deleted file mode 100644 index 6065c582a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_red.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_yellow.png b/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_yellow.png deleted file mode 100644 index 00431d187..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_rtg_top_yellow.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_selenium.png b/src/main/resources/assets/hbm/textures/blocks/machine_selenium.png deleted file mode 100644 index 05523101a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_selenium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_shredder_bottom_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_shredder_bottom_alt.png index be4b6d73c..051390fba 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_shredder_bottom_alt.png and b/src/main/resources/assets/hbm/textures/blocks/machine_shredder_bottom_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_shredder_front_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_shredder_front_alt.png index 7049ae709..b8ac27800 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_shredder_front_alt.png and b/src/main/resources/assets/hbm/textures/blocks/machine_shredder_front_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_shredder_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_shredder_side_alt.png index de74959ec..817e0e6b7 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_shredder_side_alt.png and b/src/main/resources/assets/hbm/textures/blocks/machine_shredder_side_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_shredder_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_shredder_top_alt.png index a1c241c4c..edc004f2c 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_shredder_top_alt.png and b/src/main/resources/assets/hbm/textures/blocks/machine_shredder_top_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_side.png deleted file mode 100644 index 2333c9bb3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_top.png deleted file mode 100644 index 99a32b91f..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/marker_structure.png b/src/main/resources/assets/hbm/textures/blocks/marker_structure.png deleted file mode 100755 index 9d7ad2cad..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/marker_structure.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/muffler.png b/src/main/resources/assets/hbm/textures/blocks/muffler.png deleted file mode 100644 index 57e0f1c03..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/muffler.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/oil_spill.png b/src/main/resources/assets/hbm/textures/blocks/oil_spill.png new file mode 100644 index 000000000..5fcc7123e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/oil_spill.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos.png new file mode 100644 index 000000000..08bae3077 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos_top.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos_top.png new file mode 100644 index 000000000..b914d277a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite.png new file mode 100644 index 000000000..f5f3482c7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite_top.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite_top.png new file mode 100644 index 000000000..8fbfac92d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem.png new file mode 100644 index 000000000..f3eb2c406 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem_top.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem_top.png new file mode 100644 index 000000000..1f331204b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite.png new file mode 100644 index 000000000..22f49d3f5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite_top.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite_top.png new file mode 100644 index 000000000..b19ad36c9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur.png new file mode 100644 index 000000000..eaf1ed5ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur_top.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur_top.png new file mode 100644 index 000000000..db2e0d04b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_aluminium.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.aluminium.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/ore_meteor_aluminium.png rename to src/main/resources/assets/hbm/textures/blocks/ore_meteor.aluminium.png diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor.cobalt.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.cobalt.png new file mode 100644 index 000000000..cf8174912 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.cobalt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_copper.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.copper.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/ore_meteor_copper.png rename to src/main/resources/assets/hbm/textures/blocks/ore_meteor.copper.png diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor.iron.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.iron.png new file mode 100644 index 000000000..c8d0bc2ff Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.iron.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor.rareearth.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.rareearth.png new file mode 100644 index 000000000..c79e5d5df Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_meteor.rareearth.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_lead.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_lead.png deleted file mode 100644 index 564498b24..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_lead.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_lithium.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_lithium.png deleted file mode 100644 index 2b95bca51..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_lithium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_starmetal.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_starmetal.png deleted file mode 100644 index 1e90330ce..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_starmetal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_sulfur.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_sulfur.png deleted file mode 100644 index af0f7850f..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_sulfur.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_thorium.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_thorium.png deleted file mode 100644 index 20c8f70e1..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_thorium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_titanium.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_titanium.png deleted file mode 100644 index cec81444f..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_titanium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_tungsten.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_tungsten.png deleted file mode 100644 index 5a6d3fcaf..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_tungsten.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_uranium.png b/src/main/resources/assets/hbm/textures/blocks/ore_meteor_uranium.png deleted file mode 100644 index e9780ab50..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/ore_meteor_uranium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_diamond.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_diamond.png new file mode 100644 index 000000000..af9244edd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_diamond.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_emerald.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_emerald.png new file mode 100644 index 000000000..60d3d6548 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_emerald.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_radgem.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_radgem.png new file mode 100644 index 000000000..bb30dc075 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_radgem.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_schrabidium.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_schrabidium.png new file mode 100644 index 000000000..40fafd83f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_schrabidium.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_uranium.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_uranium.png new file mode 100644 index 000000000..39aef25e1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_uranium.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_uranium_scorched.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_uranium_scorched.png new file mode 100644 index 000000000..c1a41dd08 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_uranium_scorched.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/particle/particle_ashes.png b/src/main/resources/assets/hbm/textures/blocks/particle/particle_ashes.png new file mode 100644 index 000000000..4a60bfb70 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/particle/particle_ashes.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/particle/particle_splash.png b/src/main/resources/assets/hbm/textures/blocks/particle/particle_splash.png new file mode 100644 index 000000000..c5045b8e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/particle/particle_splash.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pedestal_side.png b/src/main/resources/assets/hbm/textures/blocks/pedestal_side.png new file mode 100644 index 000000000..a23df00a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pedestal_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pedestal_top.png b/src/main/resources/assets/hbm/textures/blocks/pedestal_top.png new file mode 100644 index 000000000..b53306641 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pedestal_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/0_0_noise.png b/src/main/resources/assets/hbm/textures/blocks/playground/0_0_noise.png new file mode 100644 index 000000000..764360850 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/0_0_noise.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/0_1_verticals.png b/src/main/resources/assets/hbm/textures/blocks/playground/0_1_verticals.png new file mode 100644 index 000000000..d8a0c1169 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/0_1_verticals.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/0_2_framed.png b/src/main/resources/assets/hbm/textures/blocks/playground/0_2_framed.png new file mode 100644 index 000000000..c57639acf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/0_2_framed.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/1_0_noise.png b/src/main/resources/assets/hbm/textures/blocks/playground/1_0_noise.png new file mode 100644 index 000000000..1006ddaa6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/1_0_noise.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/1_1_framed.png b/src/main/resources/assets/hbm/textures/blocks/playground/1_1_framed.png new file mode 100644 index 000000000..5b864439d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/1_1_framed.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/1_2_depth.png b/src/main/resources/assets/hbm/textures/blocks/playground/1_2_depth.png new file mode 100644 index 000000000..2c661253c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/1_2_depth.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/2_0_noise.png b/src/main/resources/assets/hbm/textures/blocks/playground/2_0_noise.png new file mode 100644 index 000000000..26c489a8f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/2_0_noise.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/2_1_verticals.png b/src/main/resources/assets/hbm/textures/blocks/playground/2_1_verticals.png new file mode 100644 index 000000000..64ef53bdb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/2_1_verticals.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test.png b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test.png new file mode 100644 index 000000000..053622581 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_2.png b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_2.png new file mode 100644 index 000000000..1a12e728c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_3.png b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_3.png new file mode 100644 index 000000000..dc7698f50 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_4.png b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_4.png new file mode 100644 index 000000000..e3e062e62 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_4.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_5.png b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_5.png new file mode 100644 index 000000000..c4fb07664 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_5.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_6.png b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_6.png new file mode 100644 index 000000000..962e430aa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/basalt_test_6.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/deco_steel_blank_clean.png b/src/main/resources/assets/hbm/textures/blocks/playground/deco_steel_blank_clean.png new file mode 100644 index 000000000..96db3fd1a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/deco_steel_blank_clean.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/deco_steel_blank_clean_framed.png b/src/main/resources/assets/hbm/textures/blocks/playground/deco_steel_blank_clean_framed.png new file mode 100644 index 000000000..c1e4b548e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/deco_steel_blank_clean_framed.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/deco_steel_kit.png b/src/main/resources/assets/hbm/textures/blocks/playground/deco_steel_kit.png new file mode 100644 index 000000000..ab24ddc3c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/deco_steel_kit.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/stainless_frame_thick.png b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_frame_thick.png new file mode 100644 index 000000000..f985a1319 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_frame_thick.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/stainless_frame_thin.png b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_frame_thin.png new file mode 100644 index 000000000..4a11a3bfe Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_frame_thin.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/stainless_frameless.png b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_frameless.png new file mode 100644 index 000000000..4e111cba4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_frameless.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/stainless_kit.png b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_kit.png new file mode 100644 index 000000000..4b2906b25 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_kit.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/playground/stainless_kit_bright.png b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_kit_bright.png new file mode 100644 index 000000000..126670dc6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/playground/stainless_kit_bright.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_block.png b/src/main/resources/assets/hbm/textures/blocks/pwr_block.png new file mode 100644 index 000000000..8483b2814 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_block.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct.png b/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct.png new file mode 100644 index 000000000..d7b37f330 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct_alt.png b/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct_alt.png new file mode 100644 index 000000000..a1b7fd272 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_casing.png b/src/main/resources/assets/hbm/textures/blocks/pwr_casing.png new file mode 100644 index 000000000..23f51e503 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_casing.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_casing_blank.png b/src/main/resources/assets/hbm/textures/blocks/pwr_casing_blank.png new file mode 100644 index 000000000..6b8c7f6b4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_casing_blank.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port.png b/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port.png new file mode 100644 index 000000000..809c564c2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port_ct.png b/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port_ct.png new file mode 100644 index 000000000..52fb4583a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port_ct.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_channel_side.png b/src/main/resources/assets/hbm/textures/blocks/pwr_channel_side.png new file mode 100644 index 000000000..bc3b557a2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_channel_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_channel_top.png b/src/main/resources/assets/hbm/textures/blocks/pwr_channel_top.png new file mode 100644 index 000000000..0e1e9a42a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_channel_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_concrete_flat.png b/src/main/resources/assets/hbm/textures/blocks/pwr_concrete_flat.png new file mode 100644 index 000000000..7dd3c4ba5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_concrete_flat.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_control_side.png b/src/main/resources/assets/hbm/textures/blocks/pwr_control_side.png new file mode 100644 index 000000000..b36c421a2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_control_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_control_top.png b/src/main/resources/assets/hbm/textures/blocks/pwr_control_top.png new file mode 100644 index 000000000..d5ae636a0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_control_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_controller.png b/src/main/resources/assets/hbm/textures/blocks/pwr_controller.png new file mode 100644 index 000000000..822cb4d26 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_controller.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_fuel_side.png b/src/main/resources/assets/hbm/textures/blocks/pwr_fuel_side.png new file mode 100644 index 000000000..1f22996bb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_fuel_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_fuel_top.png b/src/main/resources/assets/hbm/textures/blocks/pwr_fuel_top.png new file mode 100644 index 000000000..d29654d60 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_fuel_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_heatex.png b/src/main/resources/assets/hbm/textures/blocks/pwr_heatex.png new file mode 100644 index 000000000..f579c8a45 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_heatex.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_heatsink.png b/src/main/resources/assets/hbm/textures/blocks/pwr_heatsink.png new file mode 100644 index 000000000..e825b4bfd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_heatsink.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_neutron_source.png b/src/main/resources/assets/hbm/textures/blocks/pwr_neutron_source.png new file mode 100644 index 000000000..bc1d78027 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_neutron_source.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_port.png b/src/main/resources/assets/hbm/textures/blocks/pwr_port.png new file mode 100644 index 000000000..2fa42a61e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_port.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_reflector.png b/src/main/resources/assets/hbm/textures/blocks/pwr_reflector.png new file mode 100644 index 000000000..c139a402e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pwr_reflector.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png new file mode 100644 index 000000000..022cf119b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta new file mode 100755 index 000000000..df9c61a80 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png new file mode 100644 index 000000000..41cb6cd13 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png.mcmeta old mode 100644 new mode 100755 similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png.mcmeta rename to src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png.mcmeta diff --git a/src/main/resources/assets/hbm/textures/blocks/radio_telex.png b/src/main/resources/assets/hbm/textures/blocks/radio_telex.png new file mode 100644 index 000000000..fddb508dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/radio_telex.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign.png b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign.png new file mode 100644 index 000000000..29c3e3cf2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign_flipped.png b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign_flipped.png new file mode 100644 index 000000000..f4a60e3c8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign_flipped.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk_heatex.png b/src/main/resources/assets/hbm/textures/blocks/rbmk_heatex.png deleted file mode 100644 index 469170a26..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/rbmk_heatex.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_computer.png b/src/main/resources/assets/hbm/textures/blocks/reactor_computer.png deleted file mode 100644 index b0bf0b1fa..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_computer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_computer_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_computer_alt.png deleted file mode 100644 index c78fc8be6..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_computer_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_side.png b/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_side.png deleted file mode 100644 index f593dd4e5..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_side_alt.png deleted file mode 100644 index cbd8c0906..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_side_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_top.png b/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_top.png deleted file mode 100644 index 8ca00f7ab..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_top_alt.png deleted file mode 100644 index e0bf9f0b9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_conductor_top_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_control_base.png b/src/main/resources/assets/hbm/textures/blocks/reactor_control_base.png deleted file mode 100644 index cf5e55144..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_control_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_control_side.png b/src/main/resources/assets/hbm/textures/blocks/reactor_control_side.png deleted file mode 100644 index f6e308fed..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_control_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_control_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_control_side_alt.png deleted file mode 100644 index 20d822588..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_control_side_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_control_top.png b/src/main/resources/assets/hbm/textures/blocks/reactor_control_top.png deleted file mode 100644 index bb7d99c14..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_control_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_control_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_control_top_alt.png deleted file mode 100644 index bd53b0db8..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_control_top_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_ejector.png b/src/main/resources/assets/hbm/textures/blocks/reactor_ejector.png deleted file mode 100644 index 7a4873389..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_ejector.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_element_base.png b/src/main/resources/assets/hbm/textures/blocks/reactor_element_base.png deleted file mode 100644 index 51471804a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_element_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_element_side.png b/src/main/resources/assets/hbm/textures/blocks/reactor_element_side.png deleted file mode 100644 index 8ebff9842..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_element_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_element_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_element_side_alt.png deleted file mode 100644 index b73f785d0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_element_side_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_element_top.png b/src/main/resources/assets/hbm/textures/blocks/reactor_element_top.png deleted file mode 100644 index cb37aec67..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_element_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_element_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_element_top_alt.png deleted file mode 100644 index 773251de3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_element_top_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_hatch.png b/src/main/resources/assets/hbm/textures/blocks/reactor_hatch.png deleted file mode 100644 index 4f9ab082b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_hatch.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_hatch_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_hatch_alt.png deleted file mode 100644 index d5fc8d5af..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_hatch_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_inserter.png b/src/main/resources/assets/hbm/textures/blocks/reactor_inserter.png deleted file mode 100644 index 9bf758d19..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_inserter.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_side_alt.png deleted file mode 100644 index dc6fa1bc3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_side_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/reactor_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/reactor_top_alt.png deleted file mode 100644 index f93b61cb9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/reactor_top_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_counter.png b/src/main/resources/assets/hbm/textures/blocks/rtty_counter.png new file mode 100644 index 000000000..f00b829ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rtty_counter.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_logic_off.png b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_off.png new file mode 100644 index 000000000..789d461f4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_off.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png new file mode 100644 index 000000000..752c65d56 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png.mcmeta new file mode 100644 index 000000000..efc331201 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/rtty_logic_on.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_programmer.png b/src/main/resources/assets/hbm/textures/blocks/rtty_programmer.png new file mode 100644 index 000000000..def98da38 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rtty_programmer.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_programmer.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rtty_programmer.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/rtty_programmer.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_reader.png b/src/main/resources/assets/hbm/textures/blocks/rtty_reader.png new file mode 100644 index 000000000..22366c094 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rtty_reader.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_reader.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rtty_reader.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/rtty_reader.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/sand_gold.png b/src/main/resources/assets/hbm/textures/blocks/sand_gold.png deleted file mode 100644 index 353d5e372..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/sand_gold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/scaffold_bar_side.png b/src/main/resources/assets/hbm/textures/blocks/scaffold_bar_side.png new file mode 100644 index 000000000..6c8ad885a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/scaffold_bar_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/scaffold_bar_top.png b/src/main/resources/assets/hbm/textures/blocks/scaffold_bar_top.png new file mode 100644 index 000000000..306526480 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/scaffold_bar_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/scaffold_grate_side.png b/src/main/resources/assets/hbm/textures/blocks/scaffold_grate_side.png new file mode 100644 index 000000000..0fb602b48 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/scaffold_grate_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/scaffold_grate_top.png b/src/main/resources/assets/hbm/textures/blocks/scaffold_grate_top.png new file mode 100644 index 000000000..2d8cda107 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/scaffold_grate_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/scaffold_pole_side.png b/src/main/resources/assets/hbm/textures/blocks/scaffold_pole_side.png new file mode 100644 index 000000000..3a9c53fc4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/scaffold_pole_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/scaffold_pole_top.png b/src/main/resources/assets/hbm/textures/blocks/scaffold_pole_top.png new file mode 100644 index 000000000..79c69a803 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/scaffold_pole_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_1.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_1.png new file mode 100644 index 000000000..32bd9afb4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_2.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_2.png new file mode 100644 index 000000000..32f32cfa3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_3.png b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_3.png new file mode 100644 index 000000000..834cb05fd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/sellafield_slaked_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_circuit_0.png b/src/main/resources/assets/hbm/textures/blocks/siege_circuit_0.png deleted file mode 100644 index 96f6f25ac..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_circuit_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_circuit_1.png b/src/main/resources/assets/hbm/textures/blocks/siege_circuit_1.png deleted file mode 100644 index 279ab42d3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_circuit_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_emergency.png b/src/main/resources/assets/hbm/textures/blocks/siege_emergency.png deleted file mode 100644 index 863212255..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_emergency.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_hole.png b/src/main/resources/assets/hbm/textures/blocks/siege_hole.png deleted file mode 100644 index 143933a9d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_hole.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_internal_0.png b/src/main/resources/assets/hbm/textures/blocks/siege_internal_0.png deleted file mode 100644 index 37846308d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_internal_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_internal_1.png b/src/main/resources/assets/hbm/textures/blocks/siege_internal_1.png deleted file mode 100644 index 895b906d9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_internal_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_0.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_0.png deleted file mode 100644 index efaf1e1e8..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_shield_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_1.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_1.png deleted file mode 100644 index 1a35293f2..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_shield_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_2.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_2.png deleted file mode 100644 index ca6a2d46d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_shield_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_3.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_3.png deleted file mode 100644 index 02d3213f8..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_shield_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_overlay_66_ue.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_overlay_66_ue.png deleted file mode 100644 index 2e32a639d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/siege_shield_overlay_66_ue.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/sliding_blast_door.png b/src/main/resources/assets/hbm/textures/blocks/sliding_blast_door.png new file mode 100644 index 000000000..752aa7567 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/sliding_blast_door.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/steel_corner.png b/src/main/resources/assets/hbm/textures/blocks/steel_corner.png deleted file mode 100644 index 26effad96..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/steel_corner.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/steel_wall.png b/src/main/resources/assets/hbm/textures/blocks/steel_wall.png index 76e4f32fd..8e457d39d 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/steel_wall.png and b/src/main/resources/assets/hbm/textures/blocks/steel_wall.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/steel_wall_alt.png b/src/main/resources/assets/hbm/textures/blocks/steel_wall_alt.png new file mode 100644 index 000000000..cb024e81d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/steel_wall_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_gems.png b/src/main/resources/assets/hbm/textures/blocks/stone_gems.png deleted file mode 100644 index 6bf8cf21b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/stone_gems.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png b/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png new file mode 100644 index 000000000..b083e0730 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_keyhole_meta.png b/src/main/resources/assets/hbm/textures/blocks/stone_keyhole_meta.png new file mode 100644 index 000000000..a8f0e071f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/stone_keyhole_meta.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/struct_icf_core.png b/src/main/resources/assets/hbm/textures/blocks/struct_icf_core.png new file mode 100644 index 000000000..ec8a2f64f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/struct_icf_core.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_cheapo.png b/src/main/resources/assets/hbm/textures/blocks/turret_cheapo.png deleted file mode 100644 index b47cd705e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_cheapo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_cwis.png b/src/main/resources/assets/hbm/textures/blocks/turret_cwis.png deleted file mode 100644 index 14cd0660e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_cwis.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_flamer.png b/src/main/resources/assets/hbm/textures/blocks/turret_flamer.png deleted file mode 100644 index 471bf68f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_flamer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_heavy.png b/src/main/resources/assets/hbm/textures/blocks/turret_heavy.png deleted file mode 100644 index 7922fff7b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_heavy.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_light.png b/src/main/resources/assets/hbm/textures/blocks/turret_light.png deleted file mode 100644 index cefc65660..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_light.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_rocket.png b/src/main/resources/assets/hbm/textures/blocks/turret_rocket.png deleted file mode 100644 index 0a5a4c414..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_rocket.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_tau.png b/src/main/resources/assets/hbm/textures/blocks/turret_tau.png deleted file mode 100644 index 19be1105c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_tau.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png new file mode 100644 index 000000000..f804bda85 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta new file mode 100644 index 000000000..fc4bc9855 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 4 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_computer.png b/src/main/resources/assets/hbm/textures/blocks/watz_computer.png deleted file mode 100644 index c23c3b1a6..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_computer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_conductor_side.png b/src/main/resources/assets/hbm/textures/blocks/watz_conductor_side.png deleted file mode 100644 index a7df37615..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_conductor_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_conductor_top.png b/src/main/resources/assets/hbm/textures/blocks/watz_conductor_top.png deleted file mode 100644 index 9278e278b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_conductor_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_control_side.png b/src/main/resources/assets/hbm/textures/blocks/watz_control_side.png deleted file mode 100644 index d0e20342b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_control_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_control_top.png b/src/main/resources/assets/hbm/textures/blocks/watz_control_top.png deleted file mode 100644 index f7c304a84..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_control_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_cooler.png b/src/main/resources/assets/hbm/textures/blocks/watz_cooler.png deleted file mode 100644 index e44d47228..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_cooler.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_end.png b/src/main/resources/assets/hbm/textures/blocks/watz_end.png deleted file mode 100644 index 7abad325c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_end.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_hatch.png b/src/main/resources/assets/hbm/textures/blocks/watz_hatch.png deleted file mode 100644 index 546958c89..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_hatch.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/white_cable.png b/src/main/resources/assets/hbm/textures/blocks/white_cable.png deleted file mode 100644 index c59723c58..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/white_cable.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/white_cable_icon.png b/src/main/resources/assets/hbm/textures/blocks/white_cable_icon.png deleted file mode 100644 index 1a4ff072c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/white_cable_icon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/white_wire_coated.png b/src/main/resources/assets/hbm/textures/blocks/white_wire_coated.png deleted file mode 100644 index be4a5f129..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/white_wire_coated.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenade.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenade.png deleted file mode 100644 index 519dd733d..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenade.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeHE.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeHE.png deleted file mode 100644 index 870b02d13..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeHE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeIncendiary.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeIncendiary.png deleted file mode 100644 index 3d175b379..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeIncendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeSleek.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeSleek.png deleted file mode 100644 index 581649526..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeSleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeToxic.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeToxic.png deleted file mode 100644 index cd1064afc..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeToxic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeTraining.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeTraining.png deleted file mode 100644 index bac5fd09f..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeTraining.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocket.png b/src/main/resources/assets/hbm/textures/entity/ModelRocket.png deleted file mode 100644 index 9ada99c32..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocket.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketCanister.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketCanister.png deleted file mode 100644 index 3b1507beb..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketCanister.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketEMP.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketEMP.png deleted file mode 100644 index 5dcff98f2..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketEMP.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketGlare.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketGlare.png deleted file mode 100644 index 0a3c2aa52..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketGlare.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketHE.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketHE.png deleted file mode 100644 index 275146752..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketHE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketIncendiary.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketIncendiary.png deleted file mode 100644 index d85bb21cc..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketIncendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketNuclear.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketNuclear.png deleted file mode 100644 index 81bf7d0e5..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketNuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketPhosphorus.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketPhosphorus.png deleted file mode 100644 index 30a9c896d..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketPhosphorus.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketShrapnel.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketShrapnel.png deleted file mode 100644 index 62fa9befd..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketShrapnel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketSleek.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketSleek.png deleted file mode 100644 index cd8b70153..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketSleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/boat_rubber.png b/src/main/resources/assets/hbm/textures/entity/boat_rubber.png new file mode 100644 index 000000000..9cde41461 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/boat_rubber.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/dummy.png b/src/main/resources/assets/hbm/textures/entity/dummy.png new file mode 100644 index 000000000..2bef2f04e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/dummy.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/fallout.png b/src/main/resources/assets/hbm/textures/entity/fallout.png index 5c6384988..05471e074 100644 Binary files a/src/main/resources/assets/hbm/textures/entity/fallout.png and b/src/main/resources/assets/hbm/textures/entity/fallout.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_digger.png b/src/main/resources/assets/hbm/textures/entity/glyphid_digger.png new file mode 100644 index 000000000..524358e73 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/glyphid_digger.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_infestation.png b/src/main/resources/assets/hbm/textures/entity/glyphid_infestation.png new file mode 100644 index 000000000..4362c8e90 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/glyphid_infestation.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/parasite_maggot.png b/src/main/resources/assets/hbm/textures/entity/parasite_maggot.png new file mode 100644 index 000000000..9bc94381b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/parasite_maggot.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/pigeon.png b/src/main/resources/assets/hbm/textures/entity/pigeon.png new file mode 100644 index 000000000..94ccc073f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/pigeon.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/plasticbag.png b/src/main/resources/assets/hbm/textures/entity/plasticbag.png new file mode 100644 index 000000000..079d1ba4f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/plasticbag.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/GUICoal.png b/src/main/resources/assets/hbm/textures/gui/GUICoal.png index 55baf1719..64a2c1bff 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/GUICoal.png and b/src/main/resources/assets/hbm/textures/gui/GUICoal.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/hotblood.png b/src/main/resources/assets/hbm/textures/gui/fluids/blood_hot.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/fluids/hotblood.png rename to src/main/resources/assets/hbm/textures/gui/fluids/blood_hot.png diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/crackoil_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/crackoil_ds.png new file mode 100644 index 000000000..2df7a2788 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/crackoil_ds.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_lava.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_lava.png new file mode 100644 index 000000000..e84993786 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/custom_lava.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_oil.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_oil.png new file mode 100644 index 000000000..8c2fb1710 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/custom_oil.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_toxin.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_toxin.png new file mode 100644 index 000000000..997a31214 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/custom_toxin.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_water.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_water.png new file mode 100644 index 000000000..63fdd9ec9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/custom_water.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/fullerene.png b/src/main/resources/assets/hbm/textures/gui/fluids/fullerene.png new file mode 100644 index 000000000..bcde8c277 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/fullerene.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/heavywater_hot.png b/src/main/resources/assets/hbm/textures/gui/fluids/heavywater_hot.png new file mode 100644 index 000000000..119b76cda Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/heavywater_hot.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/helium4.png b/src/main/resources/assets/hbm/textures/gui/fluids/helium4.png new file mode 100644 index 000000000..bbf8ac23c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/helium4.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/hotcrackoil_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/hotcrackoil_ds.png new file mode 100644 index 000000000..189efe34b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/hotcrackoil_ds.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/hotoil_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/hotoil_ds.png new file mode 100644 index 000000000..be25a9639 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/hotoil_ds.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/lead.png b/src/main/resources/assets/hbm/textures/gui/fluids/lead.png new file mode 100644 index 000000000..d6da14bdd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/lead.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/lead_hot.png b/src/main/resources/assets/hbm/textures/gui/fluids/lead_hot.png new file mode 100644 index 000000000..5d93be21e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/lead_hot.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/lightoil_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/lightoil_ds.png new file mode 100644 index 000000000..a775fe377 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/lightoil_ds.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/naphtha_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/naphtha_ds.png new file mode 100644 index 000000000..f3f439572 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/naphtha_ds.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/oil_ds.png b/src/main/resources/assets/hbm/textures/gui/fluids/oil_ds.png new file mode 100644 index 000000000..1428190b2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/oil_ds.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/acid.png b/src/main/resources/assets/hbm/textures/gui/fluids/peroxide.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/fluids/acid.png rename to src/main/resources/assets/hbm/textures/gui/fluids/peroxide.png diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/pheromone.png b/src/main/resources/assets/hbm/textures/gui/fluids/pheromone.png new file mode 100644 index 000000000..8517917d8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/pheromone.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/pheromone_m.png b/src/main/resources/assets/hbm/textures/gui/fluids/pheromone_m.png new file mode 100644 index 000000000..b82a63ab3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/pheromone_m.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/slop.png b/src/main/resources/assets/hbm/textures/gui/fluids/slop.png new file mode 100644 index 000000000..4d521d585 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/slop.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/smoke.png b/src/main/resources/assets/hbm/textures/gui/fluids/smoke.png new file mode 100644 index 000000000..1e275e7d3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/smoke.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/smoke_leaded.png b/src/main/resources/assets/hbm/textures/gui/fluids/smoke_leaded.png new file mode 100644 index 000000000..cd66e88d7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/smoke_leaded.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/smoke_poison.png b/src/main/resources/assets/hbm/textures/gui/fluids/smoke_poison.png new file mode 100644 index 000000000..4af9e9028 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/smoke_poison.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/sodium.png b/src/main/resources/assets/hbm/textures/gui/fluids/sodium.png new file mode 100644 index 000000000..35a104eb6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/sodium.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/sodium_hot.png b/src/main/resources/assets/hbm/textures/gui/fluids/sodium_hot.png new file mode 100644 index 000000000..61fe27c3f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/sodium_hot.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/stellar_flux.png b/src/main/resources/assets/hbm/textures/gui/fluids/stellar_flux.png new file mode 100644 index 000000000..ff5e2c9ff Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/stellar_flux.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt.png b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt.png new file mode 100644 index 000000000..93d40f3e9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_depleted.png b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_depleted.png new file mode 100644 index 000000000..a8955b82a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_depleted.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_hot.png b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_hot.png new file mode 100644 index 000000000..7e5bdc7ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_hot.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/vitriol.png b/src/main/resources/assets/hbm/textures/gui/fluids/vitriol.png new file mode 100644 index 000000000..c716b6154 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/vitriol.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_turbinegas.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_turbinegas.png index b429e5ee0..ce9519616 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/generators/gui_turbinegas.png and b/src/main/resources/assets/hbm/textures/gui/generators/gui_turbinegas.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png new file mode 100644 index 000000000..08d2f02dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner_alt.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner_alt.png new file mode 100644 index 000000000..dc5671d92 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_inserter.png b/src/main/resources/assets/hbm/textures/gui/gui_inserter.png deleted file mode 100644 index a38ebf127..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_inserter.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_press.png b/src/main/resources/assets/hbm/textures/gui/gui_press.png index 8c09adbe6..c1d48e764 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_press.png and b/src/main/resources/assets/hbm/textures/gui/gui_press.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_scrapper.png b/src/main/resources/assets/hbm/textures/gui/gui_scrapper.png new file mode 100644 index 000000000..83f4742b2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/gui_scrapper.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_shredder.png b/src/main/resources/assets/hbm/textures/gui/gui_shredder.png index 34e2e4ea5..19b774c76 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_shredder.png and b/src/main/resources/assets/hbm/textures/gui/gui_shredder.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_turbofan.png b/src/main/resources/assets/hbm/textures/gui/gui_turbofan.png deleted file mode 100644 index 89631642e..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_turbofan.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_wiki.png b/src/main/resources/assets/hbm/textures/gui/gui_wiki.png new file mode 100644 index 000000000..90785445b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/gui_wiki.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png b/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png new file mode 100644 index 000000000..8574c7aed Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/guide_pedestal.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png index 2834d3569..b1c313de4 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png and b/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_ashpit.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_ashpit.png new file mode 100644 index 000000000..a8a29d6bc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_ashpit.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png index 13a5d33bb..9da387278 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png and b/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png index 9c5334115..956ddeecc 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png and b/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_pattern.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_pattern.png deleted file mode 100644 index 306cf24f7..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_pattern.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png new file mode 100644 index 000000000..423352af0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png new file mode 100644 index 000000000..572179845 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_counter.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_counter.png new file mode 100644 index 000000000..70c49adf4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_counter.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_logic_receiver.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_logic_receiver.png new file mode 100644 index 000000000..568aa79ad Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_logic_receiver.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_programmer.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_programmer.png new file mode 100644 index 000000000..6529e3ac5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_programmer.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_reader.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_reader.png new file mode 100644 index 000000000..bfc870f73 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_reader.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png new file mode 100644 index 000000000..32635945d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_custom.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_custom.png new file mode 100644 index 000000000..c28a69cf4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_custom.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_ammo_press.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_ammo_press.png new file mode 100644 index 000000000..cb3af2afc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_ammo_press.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_furnace.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_furnace.png new file mode 100644 index 000000000..8a36a8cd3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_furnace.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png new file mode 100644 index 000000000..82c982cfa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png index 27b5d21fd..8806f89c7 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_custom.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_custom.png new file mode 100644 index 000000000..412b6625a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_custom.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png index 32b6d976e..30b63b55e 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png index 9c1657536..901353cf1 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png new file mode 100644 index 000000000..24701a27f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_funnel.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_funnel.png new file mode 100644 index 000000000..2f4670d81 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_funnel.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_brick.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_brick.png new file mode 100644 index 000000000..e2ffdd9f5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_brick.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png new file mode 100644 index 000000000..9a96ab43f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_hydrotreater.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_icf_press.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_icf_press.png new file mode 100644 index 000000000..d37deac48 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_icf_press.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_lemegeton.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_lemegeton.png new file mode 100644 index 000000000..ffdd5c0ee Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_lemegeton.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_ore_slopper.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_ore_slopper.png new file mode 100644 index 000000000..78e60d229 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_ore_slopper.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_pyrooven.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_pyrooven.png new file mode 100644 index 000000000..bcefb15fb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_pyrooven.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png index 752d061e5..6dbf4ffb1 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_rotary_furnace.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_rotary_furnace.png new file mode 100644 index 000000000..54854a28d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_rotary_furnace.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_rotary_furnace_alt.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_rotary_furnace_alt.png new file mode 100644 index 000000000..d521b49e8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_rotary_furnace_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_soldering_station.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_soldering_station.png new file mode 100644 index 000000000..b99c7f982 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_soldering_station.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_strand_caster.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_strand_caster.png new file mode 100644 index 000000000..2af67e09e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_strand_caster.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_vacuum_distill.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_vacuum_distill.png index 89a07809d..bdbd36818 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_vacuum_distill.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_vacuum_distill.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png new file mode 100644 index 000000000..ecebfffb2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png new file mode 100644 index 000000000..a90a45e0c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png index 877132937..5222274f9 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png and b/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png index 114a1561a..17e78f6bc 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png and b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_drone.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_drone.png new file mode 100644 index 000000000..a0afa8019 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_drone.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_template.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_template.png new file mode 100644 index 000000000..c82ad403b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_template.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_dock.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_dock.png new file mode 100644 index 000000000..4bcea800c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_dock.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png new file mode 100644 index 000000000..a0b473215 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_requester.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_requester.png new file mode 100644 index 000000000..2b20d19e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_requester.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_plastic_bag.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_plastic_bag.png new file mode 100644 index 000000000..9f1c71dc6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_plastic_bag.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png index d51aeb1a2..3da9d72c8 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png and b/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_large.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_large.png new file mode 100644 index 000000000..d0597322c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_large.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_rusted.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_rusted.png new file mode 100644 index 000000000..a08cd9b97 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/weapon/gui_launch_pad_rusted.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret.png deleted file mode 100644 index d51b92ff1..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png index 6a1c5e40f..6df7cce0f 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png and b/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/tsarBombaSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/tsarBombaSchematic.png index 3e3a3ca7d..6adb2423b 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/tsarBombaSchematic.png and b/src/main/resources/assets/hbm/textures/gui/weapon/tsarBombaSchematic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.questionmark.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.questionmark.png new file mode 100644 index 000000000..72b1a1cee Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/achievement_icon.questionmark.png differ diff --git a/src/main/resources/assets/hbm/textures/items/agar.png b/src/main/resources/assets/hbm/textures/items/agar.png new file mode 100644 index 000000000..8d83b359d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/agar.png differ diff --git a/src/main/resources/assets/hbm/textures/items/agar_base.png b/src/main/resources/assets/hbm/textures/items/agar_base.png new file mode 100644 index 000000000..74d5be9bf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/agar_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo.png b/src/main/resources/assets/hbm/textures/items/ammo.png new file mode 100644 index 000000000..62f3c1c37 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png index f010e6675..1b60046f7 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png and b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel.png deleted file mode 100644 index da38dd7e7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png deleted file mode 100644 index 875ea1fba..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png deleted file mode 100644 index 28d9805e7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png deleted file mode 100644 index 54a3215ee..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png deleted file mode 100644 index 019d2287b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_coilgun.png b/src/main/resources/assets/hbm/textures/items/ammo_coilgun.png new file mode 100644 index 000000000..5e6692fb6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_coilgun.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_coilgun_du.png b/src/main/resources/assets/hbm/textures/items/ammo_coilgun_du.png new file mode 100644 index 000000000..a8bb6196c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_coilgun_du.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_coilgun_rubber.png b/src/main/resources/assets/hbm/textures/items/ammo_coilgun_rubber.png new file mode 100644 index 000000000..265c2b866 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_coilgun_rubber.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_folly.png b/src/main/resources/assets/hbm/textures/items/ammo_folly.png deleted file mode 100644 index aa7e1cee2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_folly.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_folly_du.png b/src/main/resources/assets/hbm/textures/items/ammo_folly_du.png deleted file mode 100644 index ca37c31ee..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_folly_du.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_folly_nuclear.png b/src/main/resources/assets/hbm/textures/items/ammo_folly_nuclear.png deleted file mode 100644 index 6c18843d8..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_folly_nuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_fuel.png b/src/main/resources/assets/hbm/textures/items/ammo_fuel.png deleted file mode 100644 index d4bf581a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_fuel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_fuel_gas.png b/src/main/resources/assets/hbm/textures/items/ammo_fuel_gas.png deleted file mode 100644 index 6c11f2185..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_fuel_gas.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_fuel_napalm.png b/src/main/resources/assets/hbm/textures/items/ammo_fuel_napalm.png deleted file mode 100644 index 44b359f1e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_fuel_napalm.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_fuel_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_fuel_phosphorus.png deleted file mode 100644 index bb94f482a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_fuel_phosphorus.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_fuel_vaporizer.png b/src/main/resources/assets/hbm/textures/items/ammo_fuel_vaporizer.png deleted file mode 100644 index 837d2dd5f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_fuel_vaporizer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade.png deleted file mode 100644 index fef56db60..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_FG.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_FG.png deleted file mode 100644 index 12db05159..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_FG.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_concussion.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_concussion.png deleted file mode 100644 index 1751e2c62..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_concussion.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png deleted file mode 100644 index 7c97d5410..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_finned.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_finned.png deleted file mode 100644 index 25a48819d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_finned.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_he.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_he.png deleted file mode 100644 index 6392c9fbd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_he.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_incendiary.png deleted file mode 100644 index 97d7bfa08..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_incendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png deleted file mode 100644 index 54b05ecbb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_leadburster.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_leadburster.png new file mode 100644 index 000000000..dd2737ccb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_grenade_leadburster.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_nuclear.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_nuclear.png deleted file mode 100644 index 4e165c970..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_nuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_phosphorus.png deleted file mode 100644 index 2881d2f4c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_phosphorus.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_sleek.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_sleek.png deleted file mode 100644 index 5873c51d9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_sleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_toxic.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_toxic.png deleted file mode 100644 index 28e62d022..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_toxic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_tracer.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_tracer.png deleted file mode 100644 index 265f2cda9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_tracer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_luna.png b/src/main/resources/assets/hbm/textures/items/ammo_luna.png deleted file mode 100644 index 7b826c3eb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_luna.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_luna_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_luna_explosive.png deleted file mode 100644 index 822eb02b1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_luna_explosive.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_luna_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_luna_incendiary.png deleted file mode 100644 index 3d15da550..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_luna_incendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_mirv.png b/src/main/resources/assets/hbm/textures/items/ammo_mirv.png deleted file mode 100644 index 1caf3b6c9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_mirv.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_mirv_high.png b/src/main/resources/assets/hbm/textures/items/ammo_mirv_high.png deleted file mode 100644 index 8266ae872..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_mirv_high.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_mirv_low.png b/src/main/resources/assets/hbm/textures/items/ammo_mirv_low.png deleted file mode 100644 index 8feece87e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_mirv_low.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_mirv_safe.png b/src/main/resources/assets/hbm/textures/items/ammo_mirv_safe.png deleted file mode 100644 index a90ebb3be..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_mirv_safe.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_mirv_special.png b/src/main/resources/assets/hbm/textures/items/ammo_mirv_special.png deleted file mode 100644 index bdadb290b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_mirv_special.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_nuke.png b/src/main/resources/assets/hbm/textures/items/ammo_nuke.png deleted file mode 100644 index 212010e52..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_nuke.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_nuke_barrel.png b/src/main/resources/assets/hbm/textures/items/ammo_nuke_barrel.png deleted file mode 100644 index 68e1e79fa..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_nuke_barrel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_nuke_high.png b/src/main/resources/assets/hbm/textures/items/ammo_nuke_high.png deleted file mode 100644 index 592de0bec..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_nuke_high.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_nuke_hive.png b/src/main/resources/assets/hbm/textures/items/ammo_nuke_hive.png deleted file mode 100644 index 788454adb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_nuke_hive.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_nuke_low.png b/src/main/resources/assets/hbm/textures/items/ammo_nuke_low.png deleted file mode 100644 index d19c8310c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_nuke_low.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_nuke_pumpkin.png b/src/main/resources/assets/hbm/textures/items/ammo_nuke_pumpkin.png deleted file mode 100644 index c110f2a81..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_nuke_pumpkin.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_nuke_safe.png b/src/main/resources/assets/hbm/textures/items/ammo_nuke_safe.png deleted file mode 100644 index e20a170ed..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_nuke_safe.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_nuke_tots.png b/src/main/resources/assets/hbm/textures/items/ammo_nuke_tots.png deleted file mode 100644 index 5ba9c2c74..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_nuke_tots.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket.png deleted file mode 100644 index 7fec64353..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_balefire.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_balefire.png deleted file mode 100644 index a5a42216a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_balefire.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_canister.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_canister.png deleted file mode 100644 index 9ecc19e40..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_canister.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_digamma.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_digamma.png deleted file mode 100644 index 785b7dd16..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_digamma.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_emp.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_emp.png deleted file mode 100644 index 57f7b245e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_emp.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_glare.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_glare.png deleted file mode 100644 index 2da9af3c1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_glare.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_he.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_he.png deleted file mode 100644 index be341237d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_he.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_incendiary.png deleted file mode 100644 index 06c6ad789..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_incendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_nuclear.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_nuclear.png deleted file mode 100644 index 7a8112095..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_nuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_phosphorus.png deleted file mode 100644 index 5798976d4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_phosphorus.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_rpc.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_rpc.png deleted file mode 100644 index 0b16c9758..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_rpc.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_shrapnel.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_shrapnel.png deleted file mode 100644 index 7f9cd9a15..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_shrapnel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_sleek.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_sleek.png deleted file mode 100644 index 8eff0d768..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_sleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_rocket_toxic.png b/src/main/resources/assets/hbm/textures/items/ammo_rocket_toxic.png deleted file mode 100644 index 1cad57c5b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_rocket_toxic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.bmg50_equestrian.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.bmg50_equestrian.png new file mode 100644 index 000000000..246b16aa1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_secret.bmg50_equestrian.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_nuke.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_nuke.png new file mode 100644 index 000000000..29a262ca2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_nuke.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_sm.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_sm.png new file mode 100644 index 000000000..30efa4d03 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_sm.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.g12_equestrian.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.g12_equestrian.png new file mode 100644 index 000000000..3d060b001 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_secret.g12_equestrian.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.m44_equestrian.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.m44_equestrian.png new file mode 100644 index 000000000..44cb11c96 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_secret.m44_equestrian.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.b75.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75.png new file mode 100644 index 000000000..f81589f2a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_exp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_exp.png new file mode 100644 index 000000000..2c7e24b4f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_exp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_inc.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_inc.png new file mode 100644 index 000000000..b01ed4d9d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_ap.png new file mode 100644 index 000000000..0892a1817 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_du.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_du.png new file mode 100644 index 000000000..11994e39e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_du.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_fmj.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_fmj.png new file mode 100644 index 000000000..bbe08b3fa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_fmj.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_jhp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_jhp.png new file mode 100644 index 000000000..1692e288b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_jhp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_sp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_sp.png new file mode 100644 index 000000000..5a61f083b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_sp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor.png new file mode 100644 index 000000000..15184342e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_blacklightning.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_blacklightning.png new file mode 100644 index 000000000..00b4e57ae Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_blacklightning.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_ir.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_ir.png new file mode 100644 index 000000000..0b398e264 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_ir.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_overcharge.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_overcharge.png new file mode 100644 index 000000000..378f2cd82 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_overcharge.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_ferrouranium.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_ferrouranium.png new file mode 100644 index 000000000..a8bb6196c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_ferrouranium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_tungsten.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_tungsten.png new file mode 100644 index 000000000..5e6692fb6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_tungsten.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_balefire.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_balefire.png new file mode 100644 index 000000000..e52210024 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_balefire.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_diesel.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_diesel.png new file mode 100644 index 000000000..67738713a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_diesel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_gas.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_gas.png new file mode 100644 index 000000000..22624ac48 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_gas.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_napalm.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_napalm.png new file mode 100644 index 000000000..a8eea9e23 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.flame_napalm.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g10.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g10.png new file mode 100644 index 000000000..19577ed75 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g10.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g10_du.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g10_du.png new file mode 100644 index 000000000..fba9a8631 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g10_du.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g10_shrapnel.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g10_shrapnel.png new file mode 100644 index 000000000..b95bf7d02 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g10_shrapnel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g10_slug.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g10_slug.png new file mode 100644 index 000000000..efc9655b5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g10_slug.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12.png new file mode 100644 index 000000000..73659c905 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_anthrax.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_anthrax.png new file mode 100644 index 000000000..28848a839 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_anthrax.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_bp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_bp.png new file mode 100644 index 000000000..e6cf463dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_bp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_bp_magnum.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_bp_magnum.png new file mode 100644 index 000000000..2e3b56e7e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_bp_magnum.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_bp_slug.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_bp_slug.png new file mode 100644 index 000000000..98643063f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_bp_slug.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_explosive.png new file mode 100644 index 000000000..bc382afcd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_explosive.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_flechette.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_flechette.png new file mode 100644 index 000000000..60b41a6cb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_flechette.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_magnum.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_magnum.png new file mode 100644 index 000000000..5d04ed39e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_magnum.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_phosphorus.png new file mode 100644 index 000000000..de7316252 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_phosphorus.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_slug.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_slug.png new file mode 100644 index 000000000..e76016992 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_slug.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g26_flare.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g26_flare.png new file mode 100644 index 000000000..2aa6a543f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g26_flare.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g26_flare_supply.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g26_flare_supply.png new file mode 100644 index 000000000..8ff538264 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g26_flare_supply.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g26_flare_weapon.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g26_flare_weapon.png new file mode 100644 index 000000000..88d62ac2a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g26_flare_weapon.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_demo.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_demo.png new file mode 100644 index 000000000..72fb13e92 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_demo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_he.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_he.png new file mode 100644 index 000000000..42a048f47 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_he.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_heat.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_heat.png new file mode 100644 index 000000000..298891567 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_heat.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_inc.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_inc.png new file mode 100644 index 000000000..d16f73b87 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_phosphorus.png new file mode 100644 index 000000000..5ca95889b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_phosphorus.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_ap.png new file mode 100644 index 000000000..a9dbde5aa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_bp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_bp.png new file mode 100644 index 000000000..fe66c7c00 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_bp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_express.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_express.png new file mode 100644 index 000000000..cad8fbc2d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_express.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_fmj.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_fmj.png new file mode 100644 index 000000000..7025adb2a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_fmj.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_jhp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_jhp.png new file mode 100644 index 000000000..6f13cbeb7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_jhp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_sp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_sp.png new file mode 100644 index 000000000..0aecdede2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_sp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_ap.png new file mode 100644 index 000000000..dc528cbf0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_bp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_bp.png new file mode 100644 index 000000000..30fee7b56 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_bp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_express.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_express.png new file mode 100644 index 000000000..e83865576 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_express.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_fmj.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_fmj.png new file mode 100644 index 000000000..c12398df4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_fmj.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_jhp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_jhp.png new file mode 100644 index 000000000..9fb718610 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_jhp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_sp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_sp.png new file mode 100644 index 000000000..9f055e5d1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_sp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_demo.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_demo.png new file mode 100644 index 000000000..196bfa5c8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_demo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_high.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_high.png new file mode 100644 index 000000000..8d7930c61 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_high.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_hive.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_hive.png new file mode 100644 index 000000000..fd36c5d17 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_hive.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_standard.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_standard.png new file mode 100644 index 000000000..72231bdf8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_standard.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_tots.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_tots.png new file mode 100644 index 000000000..7f113f8e5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_tots.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_ap.png new file mode 100644 index 000000000..2f00653e3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_fmj.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_fmj.png new file mode 100644 index 000000000..cfe452c8d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_fmj.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_jhp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_jhp.png new file mode 100644 index 000000000..12bee077c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_jhp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_sp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_sp.png new file mode 100644 index 000000000..84b3d03a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_sp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_ap.png new file mode 100644 index 000000000..b736f2d6d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_fmj.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_fmj.png new file mode 100644 index 000000000..dd6d98de3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_fmj.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_jhp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_jhp.png new file mode 100644 index 000000000..0c8b0d981 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_jhp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_sp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_sp.png new file mode 100644 index 000000000..d3a773451 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p9_sp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_ap.png new file mode 100644 index 000000000..8f36b353c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_fmj.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_fmj.png new file mode 100644 index 000000000..e7f744078 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_fmj.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_jhp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_jhp.png new file mode 100644 index 000000000..29bea50d5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_jhp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_sp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_sp.png new file mode 100644 index 000000000..669baaf5a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.r556_sp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_ap.png new file mode 100644 index 000000000..7fc1069d6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_du.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_du.png new file mode 100644 index 000000000..69e21c070 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_du.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_fmj.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_fmj.png new file mode 100644 index 000000000..e5b3f474d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_fmj.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_jhp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_jhp.png new file mode 100644 index 000000000..fb7683576 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_jhp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_sp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_sp.png new file mode 100644 index 000000000..e876a5060 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.r762_sp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_demo.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_demo.png new file mode 100644 index 000000000..a7d3428eb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_demo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_he.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_he.png new file mode 100644 index 000000000..63bc3fff8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_he.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_heat.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_heat.png new file mode 100644 index 000000000..91374948a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_heat.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_inc.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_inc.png new file mode 100644 index 000000000..b0633b4d9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_phosphorus.png new file mode 100644 index 000000000..9d6a8b794 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.rocket_phosphorus.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.stone.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.stone.png new file mode 100644 index 000000000..cf4a12ddf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.stone.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.stone_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.stone_ap.png new file mode 100644 index 000000000..24e72420f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.stone_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.stone_iron.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.stone_iron.png new file mode 100644 index 000000000..8beb92f44 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.stone_iron.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.stone_shot.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.stone_shot.png new file mode 100644 index 000000000..b783a6da0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.stone_shot.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.tau_uranium.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.tau_uranium.png new file mode 100644 index 000000000..55ea16c6e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.tau_uranium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/analysis_tool.png b/src/main/resources/assets/hbm/textures/items/analysis_tool.png new file mode 100644 index 000000000..efee947ce Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/analysis_tool.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png b/src/main/resources/assets/hbm/textures/items/arc_electrode.desh.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png rename to src/main/resources/assets/hbm/textures/items/arc_electrode.desh.png diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode.graphite.png b/src/main/resources/assets/hbm/textures/items/arc_electrode.graphite.png new file mode 100644 index 000000000..4eebcc2ae Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/arc_electrode.graphite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode.lanthanium.png b/src/main/resources/assets/hbm/textures/items/arc_electrode.lanthanium.png new file mode 100644 index 000000000..c05b22009 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/arc_electrode.lanthanium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode.saturnite.png b/src/main/resources/assets/hbm/textures/items/arc_electrode.saturnite.png new file mode 100644 index 000000000..7e4c0c0d0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/arc_electrode.saturnite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.desh.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.desh.png new file mode 100644 index 000000000..1562d35e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.desh.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.graphite.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.graphite.png new file mode 100644 index 000000000..f04baa825 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.graphite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.lanthanium.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.lanthanium.png new file mode 100644 index 000000000..3849abc5e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.lanthanium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png deleted file mode 100644 index 5d278eded..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.saturnite.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.saturnite.png new file mode 100644 index 000000000..05d6ea015 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.saturnite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrodes.png b/src/main/resources/assets/hbm/textures/items/arc_electrodes.png new file mode 100644 index 000000000..30fcb7666 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/arc_electrodes.png differ diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery.png b/src/main/resources/assets/hbm/textures/items/armor_battery.png new file mode 100644 index 000000000..7ed6e9b1d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/armor_battery.png differ diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery_base.png b/src/main/resources/assets/hbm/textures/items/armor_battery_base.png new file mode 100644 index 000000000..ad4e8b8af Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/armor_battery_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery_mk2.png b/src/main/resources/assets/hbm/textures/items/armor_battery_mk2.png new file mode 100644 index 000000000..098dfc64d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/armor_battery_mk2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery_mk3.png b/src/main/resources/assets/hbm/textures/items/armor_battery_mk3.png new file mode 100644 index 000000000..91c23c265 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/armor_battery_mk3.png differ diff --git a/src/main/resources/assets/hbm/textures/items/australium_iii.png b/src/main/resources/assets/hbm/textures/items/australium_iii.png index 5a876c2b6..04cef8027 100644 Binary files a/src/main/resources/assets/hbm/textures/items/australium_iii.png and b/src/main/resources/assets/hbm/textures/items/australium_iii.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ball_resin.png b/src/main/resources/assets/hbm/textures/items/ball_resin.png new file mode 100644 index 000000000..5c4657a99 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ball_resin.png differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_steam.png b/src/main/resources/assets/hbm/textures/items/battery_steam.png deleted file mode 100644 index 880f1e21e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_steam.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_steam_large.png b/src/main/resources/assets/hbm/textures/items/battery_steam_large.png deleted file mode 100644 index c275da4ef..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_steam_large.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_su.png b/src/main/resources/assets/hbm/textures/items/battery_su.png deleted file mode 100644 index 82440d819..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_su.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_su_l.png b/src/main/resources/assets/hbm/textures/items/battery_su_l.png deleted file mode 100644 index e78387cf0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_su_l.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore.png new file mode 100644 index 000000000..470039b33 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_actinide.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_actinide.png new file mode 100644 index 000000000..dd3613795 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_actinide.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_crystal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_crystal.png new file mode 100644 index 000000000..dd3613795 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_crystal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_heavy.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_heavy.png new file mode 100644 index 000000000..dd3613795 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_light.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_light.png new file mode 100644 index 000000000..dd3613795 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_nonmetal.png new file mode 100644 index 000000000..dd3613795 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_nonmetal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_rare.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_rare.png new file mode 100644 index 000000000..dd3613795 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_base_rare.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_actinide.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_actinide.png new file mode 100644 index 000000000..0b6767953 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_actinide.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_crystal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_crystal.png new file mode 100644 index 000000000..0b6767953 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_crystal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_heavy.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_heavy.png new file mode 100644 index 000000000..0b6767953 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_light.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_light.png new file mode 100644 index 000000000..0b6767953 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_nonmetal.png new file mode 100644 index 000000000..0b6767953 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_nonmetal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_rare.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_rare.png new file mode 100644 index 000000000..0b6767953 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_crumbs_rare.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_final.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_final.png new file mode 100644 index 000000000..24ac9d3c0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_final.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment.png new file mode 100644 index 000000000..fd0c6f45d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png new file mode 100644 index 000000000..5449f0a71 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_new.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_new.png new file mode 100644 index 000000000..269bb7039 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_new.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_new_base.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_new_base.png new file mode 100644 index 000000000..8da371d87 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_new_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_new_blank.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_new_blank.png new file mode 100644 index 000000000..f809d7adb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_new_blank.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.arc.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.arc.png new file mode 100644 index 000000000..77aba4494 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.arc.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.centrifuged.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.centrifuged.png new file mode 100644 index 000000000..a739ce09c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.centrifuged.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.rad.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.rad.png new file mode 100644 index 000000000..86e67e437 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.rad.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.roasted.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.roasted.png new file mode 100644 index 000000000..3c1ec46ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.roasted.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.solvent.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.solvent.png new file mode 100644 index 000000000..95f45567c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.solvent.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.sulfuric.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.sulfuric.png new file mode 100644 index 000000000..5eaa9ba1b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.sulfuric.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.washed.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.washed.png new file mode 100644 index 000000000..14b860e0c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_overlay.washed.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_actinide.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_actinide.png new file mode 100644 index 000000000..fb90a3472 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_actinide.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_crystal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_crystal.png new file mode 100644 index 000000000..86e05f1be Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_crystal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_heavy.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_heavy.png new file mode 100644 index 000000000..dbc073792 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_light.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_light.png new file mode 100644 index 000000000..7f796265a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_nonmetal.png new file mode 100644 index 000000000..ae2489ea5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_nonmetal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_rare.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_rare.png new file mode 100644 index 000000000..fb90a3472 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_primary_rare.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_actinide.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_actinide.png new file mode 100644 index 000000000..bc9e58030 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_actinide.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_crystal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_crystal.png new file mode 100644 index 000000000..43f08c3d9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_crystal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_heavy.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_heavy.png new file mode 100644 index 000000000..a580437b2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_light.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_light.png new file mode 100644 index 000000000..288b49cd2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_nonmetal.png new file mode 100644 index 000000000..1d0913dc6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_nonmetal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_rare.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_rare.png new file mode 100644 index 000000000..bc9e58030 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_rad_rare.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_actinide.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_actinide.png new file mode 100644 index 000000000..79b2a8687 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_actinide.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_crystal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_crystal.png new file mode 100644 index 000000000..b6aad0884 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_crystal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_heavy.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_heavy.png new file mode 100644 index 000000000..34d7c80e9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_light.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_light.png new file mode 100644 index 000000000..745c40ab4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_nonmetal.png new file mode 100644 index 000000000..b4f8bef82 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_nonmetal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_rare.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_rare.png new file mode 100644 index 000000000..79b2a8687 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_solvent_rare.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_actinide.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_actinide.png new file mode 100644 index 000000000..ff99fd2b9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_actinide.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_crystal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_crystal.png new file mode 100644 index 000000000..d36c7234a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_crystal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_heavy.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_heavy.png new file mode 100644 index 000000000..e4df80773 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_light.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_light.png new file mode 100644 index 000000000..cd4fd8937 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_nonmetal.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_nonmetal.png new file mode 100644 index 000000000..1041858a5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_nonmetal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_rare.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_rare.png new file mode 100644 index 000000000..ff99fd2b9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_sulfuric_rare.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_silicon.png b/src/main/resources/assets/hbm/textures/items/billet_silicon.png new file mode 100644 index 000000000..7bafa26dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_silicon.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bismuth_axe.png b/src/main/resources/assets/hbm/textures/items/bismuth_axe.png new file mode 100644 index 000000000..f4009dde1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bismuth_axe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/boat_rubber.png b/src/main/resources/assets/hbm/textures/items/boat_rubber.png new file mode 100644 index 000000000..6a1d428df Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/boat_rubber.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bolt.png b/src/main/resources/assets/hbm/textures/items/bolt.png new file mode 100644 index 000000000..32c36b42e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bolt.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bolt_compound.png b/src/main/resources/assets/hbm/textures/items/bolt_compound.png deleted file mode 100644 index faa421927..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/bolt_compound.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png b/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png deleted file mode 100644 index de6eb68e6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/bolt_spike.png b/src/main/resources/assets/hbm/textures/items/bolt_spike.png new file mode 100644 index 000000000..88e310d5f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bolt_spike.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bolt_tungsten.png b/src/main/resources/assets/hbm/textures/items/bolt_tungsten.png deleted file mode 100644 index 5a41b624c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/bolt_tungsten.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/boltgun.png b/src/main/resources/assets/hbm/textures/items/boltgun.png new file mode 100644 index 000000000..a45e128a7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/boltgun.png differ diff --git a/src/main/resources/assets/hbm/textures/items/book_lemegeton.png b/src/main/resources/assets/hbm/textures/items/book_lemegeton.png new file mode 100644 index 000000000..4cb0fca9a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/book_lemegeton.png differ diff --git a/src/main/resources/assets/hbm/textures/items/book_of_2.png b/src/main/resources/assets/hbm/textures/items/book_of_2.png new file mode 100644 index 000000000..d737a7b7b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/book_of_2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bottle_rad.png b/src/main/resources/assets/hbm/textures/items/bottle_rad.png index 554d5cdf8..b1aa2e0a1 100644 Binary files a/src/main/resources/assets/hbm/textures/items/bottle_rad.png and b/src/main/resources/assets/hbm/textures/items/bottle_rad.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bottled_cloud.png b/src/main/resources/assets/hbm/textures/items/bottled_cloud.png new file mode 100644 index 000000000..740631fd6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bottled_cloud.png differ diff --git a/src/main/resources/assets/hbm/textures/items/card_aos.png b/src/main/resources/assets/hbm/textures/items/card_aos.png new file mode 100644 index 000000000..ac561fc53 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/card_aos.png differ diff --git a/src/main/resources/assets/hbm/textures/items/card_hbm.png b/src/main/resources/assets/hbm/textures/items/card_hbm.png new file mode 100644 index 000000000..c273750fd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/card_hbm.png differ diff --git a/src/main/resources/assets/hbm/textures/items/card_qos.png b/src/main/resources/assets/hbm/textures/items/card_qos.png new file mode 100644 index 000000000..bb254cd8b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/card_qos.png differ diff --git a/src/main/resources/assets/hbm/textures/items/casing.buckshot.png b/src/main/resources/assets/hbm/textures/items/casing.buckshot.png new file mode 100644 index 000000000..b894a48fb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/casing.buckshot.png differ diff --git a/src/main/resources/assets/hbm/textures/items/casing.buckshot_advanced.png b/src/main/resources/assets/hbm/textures/items/casing.buckshot_advanced.png new file mode 100644 index 000000000..d50a478b2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/casing.buckshot_advanced.png differ diff --git a/src/main/resources/assets/hbm/textures/items/casing.large.png b/src/main/resources/assets/hbm/textures/items/casing.large.png new file mode 100644 index 000000000..5c220d1b9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/casing.large.png differ diff --git a/src/main/resources/assets/hbm/textures/items/casing.large_steel.png b/src/main/resources/assets/hbm/textures/items/casing.large_steel.png new file mode 100644 index 000000000..afd72532d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/casing.large_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/casing.shotshell.png b/src/main/resources/assets/hbm/textures/items/casing.shotshell.png new file mode 100644 index 000000000..f6b55e841 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/casing.shotshell.png differ diff --git a/src/main/resources/assets/hbm/textures/items/casing.small.png b/src/main/resources/assets/hbm/textures/items/casing.small.png new file mode 100644 index 000000000..87e9269eb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/casing.small.png differ diff --git a/src/main/resources/assets/hbm/textures/items/casing.small_steel.png b/src/main/resources/assets/hbm/textures/items/casing.small_steel.png new file mode 100644 index 000000000..741e1d23a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/casing.small_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_MEAT_PROCESSING.png b/src/main/resources/assets/hbm/textures/items/chem_icon_MEAT_PROCESSING.png new file mode 100644 index 000000000..44f694ed7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/chem_icon_MEAT_PROCESSING.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_SATURN.png b/src/main/resources/assets/hbm/textures/items/chem_icon_SATURN.png index 06149dfa9..af0895d30 100644 Binary files a/src/main/resources/assets/hbm/textures/items/chem_icon_SATURN.png and b/src/main/resources/assets/hbm/textures/items/chem_icon_SATURN.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_THORIUM_SALT.png b/src/main/resources/assets/hbm/textures/items/chem_icon_THORIUM_SALT.png new file mode 100644 index 000000000..734d6b435 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/chem_icon_THORIUM_SALT.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chlorophyte_axe.png b/src/main/resources/assets/hbm/textures/items/chlorophyte_axe.png new file mode 100644 index 000000000..2a05daee4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/chlorophyte_axe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chunk_base.png b/src/main/resources/assets/hbm/textures/items/chunk_base.png new file mode 100644 index 000000000..dfe887423 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/chunk_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chunk_ore.rare.png b/src/main/resources/assets/hbm/textures/items/chunk_ore.rare.png new file mode 100644 index 000000000..0500f87b4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/chunk_ore.rare.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.advanced.png b/src/main/resources/assets/hbm/textures/items/circuit.advanced.png new file mode 100644 index 000000000..af8bbf779 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.advanced.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.analog.png b/src/main/resources/assets/hbm/textures/items/circuit.analog.png new file mode 100644 index 000000000..dfed87d2d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.analog.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.atomic_clock.png b/src/main/resources/assets/hbm/textures/items/circuit.atomic_clock.png new file mode 100644 index 000000000..c236d8641 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.atomic_clock.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.basic.png b/src/main/resources/assets/hbm/textures/items/circuit.basic.png new file mode 100644 index 000000000..3de11aab1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.basic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.bismoid.png b/src/main/resources/assets/hbm/textures/items/circuit.bismoid.png new file mode 100644 index 000000000..45055b103 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.bismoid.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.capacitor.png b/src/main/resources/assets/hbm/textures/items/circuit.capacitor.png new file mode 100644 index 000000000..b91a66360 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.capacitor.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.capacitor_board.png b/src/main/resources/assets/hbm/textures/items/circuit.capacitor_board.png new file mode 100644 index 000000000..055731f1b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.capacitor_board.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.capacitor_tantalium.png b/src/main/resources/assets/hbm/textures/items/circuit.capacitor_tantalium.png new file mode 100644 index 000000000..117b2232f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.capacitor_tantalium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.chip.png b/src/main/resources/assets/hbm/textures/items/circuit.chip.png new file mode 100644 index 000000000..e2ba46c4c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.chip.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.chip_bismoid.png b/src/main/resources/assets/hbm/textures/items/circuit.chip_bismoid.png new file mode 100644 index 000000000..3783133d4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.chip_bismoid.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.chip_quantum.png b/src/main/resources/assets/hbm/textures/items/circuit.chip_quantum.png new file mode 100644 index 000000000..966d39065 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.chip_quantum.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.controller.png b/src/main/resources/assets/hbm/textures/items/circuit.controller.png new file mode 100644 index 000000000..72c131d96 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.controller.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.controller_advanced.png b/src/main/resources/assets/hbm/textures/items/circuit.controller_advanced.png new file mode 100644 index 000000000..d939b6b67 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.controller_advanced.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.controller_chassis.png b/src/main/resources/assets/hbm/textures/items/circuit.controller_chassis.png new file mode 100644 index 000000000..b905d1301 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.controller_chassis.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.controller_quantum.png b/src/main/resources/assets/hbm/textures/items/circuit.controller_quantum.png new file mode 100644 index 000000000..9655488d1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.controller_quantum.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.pcb.png b/src/main/resources/assets/hbm/textures/items/circuit.pcb.png new file mode 100644 index 000000000..0d1301a17 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.pcb.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.png b/src/main/resources/assets/hbm/textures/items/circuit.png new file mode 100644 index 000000000..abf761193 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.quantum.png b/src/main/resources/assets/hbm/textures/items/circuit.quantum.png new file mode 100644 index 000000000..c7656cf53 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.quantum.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.silicon.png b/src/main/resources/assets/hbm/textures/items/circuit.silicon.png new file mode 100644 index 000000000..768ee5273 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.silicon.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.vacuum_tube.png b/src/main/resources/assets/hbm/textures/items/circuit.vacuum_tube.png new file mode 100644 index 000000000..be7eb25da Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit.vacuum_tube.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png b/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png deleted file mode 100644 index 9579bd9dd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png deleted file mode 100644 index 142a7f4a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png deleted file mode 100644 index 55b308cf7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_bismuth.png b/src/main/resources/assets/hbm/textures/items/circuit_bismuth.png deleted file mode 100644 index 0af4c7d3c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_bismuth.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png deleted file mode 100644 index 07a458215..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_copper.png deleted file mode 100644 index 67442c881..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_copper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_gold.png b/src/main/resources/assets/hbm/textures/items/circuit_gold.png deleted file mode 100644 index 1ea35bc0d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_gold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_raw.png deleted file mode 100644 index 88234e2e3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_raw.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png deleted file mode 100644 index 8a892099c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_reix.png b/src/main/resources/assets/hbm/textures/items/circuit_reix.png deleted file mode 100644 index 43f778ad5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_reix.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png b/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png deleted file mode 100644 index 27c3cbcf9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png b/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png deleted file mode 100644 index 799f5d83d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_component.card.png b/src/main/resources/assets/hbm/textures/items/circuit_star_component.card.png new file mode 100644 index 000000000..ed191db20 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_star_component.card.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_converter.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_converter.png new file mode 100644 index 000000000..4324d8466 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_converter.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.card_board.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.card_board.png new file mode 100644 index 000000000..cb713b251 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.card_board.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.card_processor.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.card_processor.png new file mode 100644 index 000000000..19bceb439 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.card_processor.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier1.png b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier1.png index 5e65de4c2..88f593cc1 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier1.png and b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier1.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier2.png b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier2.png index 041363c15..ca55bb611 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier2.png and b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier3.png b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier3.png index cfe5e550c..e55738dfe 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier3.png and b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier3.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier4.png b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier4.png index b5188f3c5..9f0ade52d 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier4.png and b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier4.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier5.png b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier5.png index d98e6fac8..e5f061e16 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier5.png and b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier5.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier6.png b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier6.png index bc3f083b6..10e0b5a03 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier6.png and b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier6.png differ diff --git a/src/main/resources/assets/hbm/textures/items/clay_ball.png b/src/main/resources/assets/hbm/textures/items/clay_ball.png deleted file mode 100644 index 5103d6cc4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/clay_ball.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/clay_tablet.png b/src/main/resources/assets/hbm/textures/items/clay_tablet.png new file mode 100644 index 000000000..640d51e22 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/clay_tablet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coal_eternal.png b/src/main/resources/assets/hbm/textures/items/coal_eternal.png new file mode 100644 index 000000000..36ee856f8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/coal_eternal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png b/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png index 291ff9f9f..aa44989b0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png and b/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coil_copper.png b/src/main/resources/assets/hbm/textures/items/coil_copper.png index a31ac7dc5..332bb627b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/coil_copper.png and b/src/main/resources/assets/hbm/textures/items/coil_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coil_gold.png b/src/main/resources/assets/hbm/textures/items/coil_gold.png index 6d22668a3..849d394ac 100644 Binary files a/src/main/resources/assets/hbm/textures/items/coil_gold.png and b/src/main/resources/assets/hbm/textures/items/coil_gold.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png b/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png index 149d1c432..2118d79ff 100644 Binary files a/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png and b/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png differ diff --git a/src/main/resources/assets/hbm/textures/items/color_pallete.png b/src/main/resources/assets/hbm/textures/items/color_pallete.png deleted file mode 100644 index b2eb5e22f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/color_pallete.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke1.png b/src/main/resources/assets/hbm/textures/items/d_smoke1.png deleted file mode 100644 index e7f3601e5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke2.png b/src/main/resources/assets/hbm/textures/items/d_smoke2.png deleted file mode 100644 index 7e01c301d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke3.png b/src/main/resources/assets/hbm/textures/items/d_smoke3.png deleted file mode 100644 index 7c36fd965..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke4.png b/src/main/resources/assets/hbm/textures/items/d_smoke4.png deleted file mode 100644 index bc74f9813..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke5.png b/src/main/resources/assets/hbm/textures/items/d_smoke5.png deleted file mode 100644 index cf71763f9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke6.png b/src/main/resources/assets/hbm/textures/items/d_smoke6.png deleted file mode 100644 index 78d1a84b1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke7.png b/src/main/resources/assets/hbm/textures/items/d_smoke7.png deleted file mode 100644 index 6f0f6274a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke8.png b/src/main/resources/assets/hbm/textures/items/d_smoke8.png deleted file mode 100644 index cd253ab4d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/definitelyfood.png b/src/main/resources/assets/hbm/textures/items/definitelyfood.png index 615a461c4..601e4b63d 100644 Binary files a/src/main/resources/assets/hbm/textures/items/definitelyfood.png and b/src/main/resources/assets/hbm/textures/items/definitelyfood.png differ diff --git a/src/main/resources/assets/hbm/textures/items/designator_range.png b/src/main/resources/assets/hbm/textures/items/designator_range.png deleted file mode 100644 index 8521a8347..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/designator_range.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/discharge.png b/src/main/resources/assets/hbm/textures/items/discharge.png deleted file mode 100644 index 0a222d2ec..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/discharge.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta b/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta deleted file mode 100644 index dd1bedb12..000000000 --- a/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta +++ /dev/null @@ -1,3 +0,0 @@ -{ - "animation": {} -} diff --git a/src/main/resources/assets/hbm/textures/items/disperser_canister.png b/src/main/resources/assets/hbm/textures/items/disperser_canister.png new file mode 100644 index 000000000..4a5653488 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/disperser_canister.png differ diff --git a/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png b/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png new file mode 100644 index 000000000..1dcba8865 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png differ diff --git a/src/main/resources/assets/hbm/textures/items/dnt_sword.png b/src/main/resources/assets/hbm/textures/items/dnt_sword.png index fb74fb890..6a2fbb9fe 100644 Binary files a/src/main/resources/assets/hbm/textures/items/dnt_sword.png and b/src/main/resources/assets/hbm/textures/items/dnt_sword.png differ diff --git a/src/main/resources/assets/hbm/textures/items/dont_they_know.png b/src/main/resources/assets/hbm/textures/items/dont_they_know.png deleted file mode 100644 index b906a88b5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dont_they_know.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/door_red.png b/src/main/resources/assets/hbm/textures/items/door_red.png new file mode 100644 index 000000000..4fde1b889 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/door_red.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.patrol.png b/src/main/resources/assets/hbm/textures/items/drone.patrol.png new file mode 100644 index 000000000..a1bd3424a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.patrol.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.patrol_chunkloading.png b/src/main/resources/assets/hbm/textures/items/drone.patrol_chunkloading.png new file mode 100644 index 000000000..011d7827c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.patrol_chunkloading.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.patrol_express.png b/src/main/resources/assets/hbm/textures/items/drone.patrol_express.png new file mode 100644 index 000000000..fdea391f4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.patrol_express.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.patrol_express_chunkloading.png b/src/main/resources/assets/hbm/textures/items/drone.patrol_express_chunkloading.png new file mode 100644 index 000000000..de3f8af73 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.patrol_express_chunkloading.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.request.png b/src/main/resources/assets/hbm/textures/items/drone.request.png new file mode 100644 index 000000000..33f2be57e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.request.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone_linker.png b/src/main/resources/assets/hbm/textures/items/drone_linker.png new file mode 100644 index 000000000..6e0a5e7cd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone_linker.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone_linker.png.mcmeta b/src/main/resources/assets/hbm/textures/items/drone_linker.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/items/drone_linker.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/items/dwarven_pickaxe.png b/src/main/resources/assets/hbm/textures/items/dwarven_pickaxe.png new file mode 100644 index 000000000..a6540565c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/dwarven_pickaxe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_base.png b/src/main/resources/assets/hbm/textures/items/dynosphere_base.png deleted file mode 100644 index 8bc3b3769..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_desh.png b/src/main/resources/assets/hbm/textures/items/dynosphere_desh.png deleted file mode 100644 index 715386484..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_desh.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_desh_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_desh_charged.png deleted file mode 100644 index 34398c603..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_desh_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium.png b/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium.png deleted file mode 100644 index 7b79c52aa..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium_charged.png deleted file mode 100644 index 98495bcad..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium.png b/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium.png deleted file mode 100644 index 6b44d7721..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium_charged.png deleted file mode 100644 index 5b66a3bc4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium.png b/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium.png deleted file mode 100644 index 8204ae217..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium_charged.png deleted file mode 100644 index 9d6c03146..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium.png b/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium.png deleted file mode 100644 index c7080411e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium_charged.png deleted file mode 100644 index f05c034de..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/egg_glyphid.png b/src/main/resources/assets/hbm/textures/items/egg_glyphid.png new file mode 100644 index 000000000..e7f1bd148 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/egg_glyphid.png differ diff --git a/src/main/resources/assets/hbm/textures/items/egg_glyphid_base.png b/src/main/resources/assets/hbm/textures/items/egg_glyphid_base.png new file mode 100644 index 000000000..87082894f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/egg_glyphid_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/empblast.png b/src/main/resources/assets/hbm/textures/items/empblast.png deleted file mode 100644 index 7db45b035..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/empblast.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/envsuit_boots.png b/src/main/resources/assets/hbm/textures/items/envsuit_boots.png new file mode 100644 index 000000000..a95366a72 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/envsuit_boots.png differ diff --git a/src/main/resources/assets/hbm/textures/items/envsuit_helmet.png b/src/main/resources/assets/hbm/textures/items/envsuit_helmet.png new file mode 100644 index 000000000..e0b2d4a07 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/envsuit_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/envsuit_legs.png b/src/main/resources/assets/hbm/textures/items/envsuit_legs.png new file mode 100644 index 000000000..c773bf8a6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/envsuit_legs.png differ diff --git a/src/main/resources/assets/hbm/textures/items/envsuit_plate.png b/src/main/resources/assets/hbm/textures/items/envsuit_plate.png new file mode 100644 index 000000000..de43d9705 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/envsuit_plate.png differ diff --git a/src/main/resources/assets/hbm/textures/items/essence_unstable.png b/src/main/resources/assets/hbm/textures/items/essence_unstable.png deleted file mode 100644 index 5adb5f7f6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/essence_unstable.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/essence_uv.png b/src/main/resources/assets/hbm/textures/items/essence_uv.png deleted file mode 100644 index 145752b3a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/essence_uv.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png b/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png deleted file mode 100644 index e50299a3e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/factory_core_advanced.png b/src/main/resources/assets/hbm/textures/items/factory_core_advanced.png deleted file mode 100644 index 0ae9ed3eb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/factory_core_advanced.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png b/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png deleted file mode 100644 index 40b868a01..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fragment_base.png b/src/main/resources/assets/hbm/textures/items/fragment_base.png new file mode 100644 index 000000000..84424d3c6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/fragment_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/antiknock.png b/src/main/resources/assets/hbm/textures/items/fuel_additive.antiknock.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/antiknock.png rename to src/main/resources/assets/hbm/textures/items/fuel_additive.antiknock.png diff --git a/src/main/resources/assets/hbm/textures/items/fuel_additive.deicer.png b/src/main/resources/assets/hbm/textures/items/fuel_additive.deicer.png new file mode 100644 index 000000000..17b91b06b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/fuel_additive.deicer.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png index 1a6b4cb1b..afa1cbaf0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png and b/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png deleted file mode 100644 index 198a44430..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png index a7cd568d9..cd1ac2e15 100644 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png and b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png deleted file mode 100644 index 9674e50ab..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png index d2ac3f1dc..23345a9ea 100644 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png and b/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png deleted file mode 100644 index 15f8dbacf..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png b/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png deleted file mode 100644 index 4a2c066f0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_base.png b/src/main/resources/assets/hbm/textures/items/fuelcell_base.png deleted file mode 100644 index b74dc7b35..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png deleted file mode 100644 index 0acd3351e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png deleted file mode 100644 index b4edaede1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png deleted file mode 100644 index f05ccd94d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png deleted file mode 100644 index 237092dbb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png b/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png deleted file mode 100644 index 86ba25294..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png b/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png deleted file mode 100644 index 9ce019f88..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gem_rad.png b/src/main/resources/assets/hbm/textures/items/gem_rad.png new file mode 100644 index 000000000..d177e51f9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gem_rad.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gem_sodalite.png b/src/main/resources/assets/hbm/textures/items/gem_sodalite.png new file mode 100644 index 000000000..10aaa045e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gem_sodalite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/glyphid_gland.png b/src/main/resources/assets/hbm/textures/items/glyphid_gland.png new file mode 100644 index 000000000..0b1a48e6f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/glyphid_gland.png differ diff --git a/src/main/resources/assets/hbm/textures/items/glyphid_meat.png b/src/main/resources/assets/hbm/textures/items/glyphid_meat.png new file mode 100644 index 000000000..a94ea0561 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/glyphid_meat.png differ diff --git a/src/main/resources/assets/hbm/textures/items/glyphid_meat_grilled.png b/src/main/resources/assets/hbm/textures/items/glyphid_meat_grilled.png new file mode 100644 index 000000000..d611bc741 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/glyphid_meat_grilled.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_ar15.png b/src/main/resources/assets/hbm/textures/items/gun_ar15.png new file mode 100644 index 000000000..032404fcc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_ar15.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png index cb8f06db8..a7e2968c4 100644 Binary files a/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png and b/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_bio_revolver.png b/src/main/resources/assets/hbm/textures/items/gun_bio_revolver.png new file mode 100644 index 000000000..ed11e32c0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_bio_revolver.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_coilgun.png b/src/main/resources/assets/hbm/textures/items/gun_coilgun.png new file mode 100644 index 000000000..5c130d109 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_coilgun.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_dampfmaschine.png b/src/main/resources/assets/hbm/textures/items/gun_dampfmaschine.png deleted file mode 100644 index 4df7f338d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/gun_dampfmaschine.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_flamer.png b/src/main/resources/assets/hbm/textures/items/gun_flamer.png new file mode 100644 index 000000000..6cf5d9530 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_flamer.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_spas12.png b/src/main/resources/assets/hbm/textures/items/gun_spas12.png new file mode 100644 index 000000000..b0420f777 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_spas12.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_conversion.png b/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_conversion.png new file mode 100644 index 000000000..e8d8198f2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_conversion.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_damage.png b/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_damage.png new file mode 100644 index 000000000..d71b134fd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_damage.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_multishot.png b/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_multishot.png new file mode 100644 index 000000000..38180b907 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_multishot.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_shotspeed.png b/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_shotspeed.png new file mode 100644 index 000000000..06f516760 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_upgrade_debug_shotspeed.png differ diff --git a/src/main/resources/assets/hbm/textures/items/heavy_component.png b/src/main/resources/assets/hbm/textures/items/heavy_component.png new file mode 100644 index 000000000..276fb9e48 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/heavy_component.png differ diff --git a/src/main/resources/assets/hbm/textures/items/heavy_duty_element.png b/src/main/resources/assets/hbm/textures/items/heavy_duty_element.png new file mode 100644 index 000000000..685c1f353 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/heavy_duty_element.png differ diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet.png b/src/main/resources/assets/hbm/textures/items/icf_pellet.png new file mode 100644 index 000000000..eeccd7437 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/icf_pellet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_bg.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_bg.png new file mode 100644 index 000000000..735ce8e55 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/icf_pellet_bg.png differ diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_depleted.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_depleted.png new file mode 100644 index 000000000..69a06b986 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/icf_pellet_depleted.png differ diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_empty.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_empty.png new file mode 100644 index 000000000..904314bbc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/icf_pellet_empty.png differ diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_shape.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_shape.png new file mode 100644 index 000000000..b45d12aeb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/icf_pellet_shape.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_arsenic_bronze.png b/src/main/resources/assets/hbm/textures/items/ingot_arsenic_bronze.png new file mode 100644 index 000000000..003192056 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_arsenic_bronze.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_beskar_double.png b/src/main/resources/assets/hbm/textures/items/ingot_beskar_double.png new file mode 100644 index 000000000..e2072d2c1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_beskar_double.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_beskar_single.png b/src/main/resources/assets/hbm/textures/items/ingot_beskar_single.png new file mode 100644 index 000000000..94127d22b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_beskar_single.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_beskar_single_alt.png b/src/main/resources/assets/hbm/textures/items/ingot_beskar_single_alt.png new file mode 100644 index 000000000..0f0a229de Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_beskar_single_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png b/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png new file mode 100644 index 000000000..7094fdeff Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_bismuth_bronze.png b/src/main/resources/assets/hbm/textures/items/ingot_bismuth_bronze.png new file mode 100644 index 000000000..bd343c80e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_bismuth_bronze.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_bscco.png b/src/main/resources/assets/hbm/textures/items/ingot_bscco.png new file mode 100644 index 000000000..7cdcd4059 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_bscco.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_ceramic.png b/src/main/resources/assets/hbm/textures/items/ingot_ceramic.png new file mode 100644 index 000000000..6b0805212 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_ceramic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_cft.png b/src/main/resources/assets/hbm/textures/items/ingot_cft.png new file mode 100644 index 000000000..9346dbb5a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_cft.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_crystalline.png b/src/main/resources/assets/hbm/textures/items/ingot_crystalline.png new file mode 100644 index 000000000..e120cf4ee Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_crystalline.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_gunmetal.png b/src/main/resources/assets/hbm/textures/items/ingot_gunmetal.png new file mode 100644 index 000000000..dc26658ee Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_gunmetal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_gunsteel.png b/src/main/resources/assets/hbm/textures/items/ingot_gunsteel.png new file mode 100644 index 000000000..b97acdc54 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_gunsteel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_raw.png b/src/main/resources/assets/hbm/textures/items/ingot_raw.png new file mode 100644 index 000000000..7a8970348 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_raw.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_saturnite.png b/src/main/resources/assets/hbm/textures/items/ingot_saturnite.png index f1280a32b..8c8d04d9b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ingot_saturnite.png and b/src/main/resources/assets/hbm/textures/items/ingot_saturnite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_silicon.png b/src/main/resources/assets/hbm/textures/items/ingot_silicon.png new file mode 100644 index 000000000..d6f8cd9fe Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_silicon.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_uzh.png b/src/main/resources/assets/hbm/textures/items/ingot_uzh.png new file mode 100644 index 000000000..9c1bdf702 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_uzh.png differ diff --git a/src/main/resources/assets/hbm/textures/items/item_secret.canister.png b/src/main/resources/assets/hbm/textures/items/item_secret.canister.png new file mode 100644 index 000000000..5f648f819 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/item_secret.canister.png differ diff --git a/src/main/resources/assets/hbm/textures/items/item_secret.controller.png b/src/main/resources/assets/hbm/textures/items/item_secret.controller.png new file mode 100644 index 000000000..cb1095c9a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/item_secret.controller.png differ diff --git a/src/main/resources/assets/hbm/textures/items/item_secret.selenium_steel.png b/src/main/resources/assets/hbm/textures/items/item_secret.selenium_steel.png new file mode 100644 index 000000000..ae91dcdae Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/item_secret.selenium_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/key.png b/src/main/resources/assets/hbm/textures/items/key.png index 403bbd9fc..593227c1c 100644 Binary files a/src/main/resources/assets/hbm/textures/items/key.png and b/src/main/resources/assets/hbm/textures/items/key.png differ diff --git a/src/main/resources/assets/hbm/textures/items/key_red.png b/src/main/resources/assets/hbm/textures/items/key_red.png index 4b54458f6..206d0f966 100644 Binary files a/src/main/resources/assets/hbm/textures/items/key_red.png and b/src/main/resources/assets/hbm/textures/items/key_red.png differ diff --git a/src/main/resources/assets/hbm/textures/items/key_red_cracked.png b/src/main/resources/assets/hbm/textures/items/key_red_cracked.png new file mode 100644 index 000000000..7abe81c3c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/key_red_cracked.png differ diff --git a/src/main/resources/assets/hbm/textures/items/kit_hbm.png b/src/main/resources/assets/hbm/textures/items/kit_hbm.png new file mode 100644 index 000000000..eb11c3cb4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/kit_hbm.png differ diff --git a/src/main/resources/assets/hbm/textures/items/launch_code.png b/src/main/resources/assets/hbm/textures/items/launch_code.png new file mode 100644 index 000000000..a6dad0a9e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/launch_code.png differ diff --git a/src/main/resources/assets/hbm/textures/items/launch_code_piece.png b/src/main/resources/assets/hbm/textures/items/launch_code_piece.png new file mode 100644 index 000000000..ee74304f5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/launch_code_piece.png differ diff --git a/src/main/resources/assets/hbm/textures/items/launch_key.png b/src/main/resources/assets/hbm/textures/items/launch_key.png new file mode 100644 index 000000000..7bdc33ec4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/launch_key.png differ diff --git a/src/main/resources/assets/hbm/textures/items/lithium6.png b/src/main/resources/assets/hbm/textures/items/lithium6.png deleted file mode 100644 index cdc066bba..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/lithium6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/low_density_element.png b/src/main/resources/assets/hbm/textures/items/low_density_element.png new file mode 100644 index 000000000..5894636f0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/low_density_element.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mese_axe.png b/src/main/resources/assets/hbm/textures/items/mese_axe.png new file mode 100644 index 000000000..1c38798f0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mese_axe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_buster.png b/src/main/resources/assets/hbm/textures/items/missile_buster.png index 40afe848b..2fff7c4a0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/missile_buster.png and b/src/main/resources/assets/hbm/textures/items/missile_buster.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_cluster.png b/src/main/resources/assets/hbm/textures/items/missile_cluster.png index 5b11a9d3a..d1b9a056f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/missile_cluster.png and b/src/main/resources/assets/hbm/textures/items/missile_cluster.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_decoy.png b/src/main/resources/assets/hbm/textures/items/missile_decoy.png new file mode 100644 index 000000000..a3a736bb3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/missile_decoy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_generic.png b/src/main/resources/assets/hbm/textures/items/missile_generic.png index f06a2fd60..0e51204a0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/missile_generic.png and b/src/main/resources/assets/hbm/textures/items/missile_generic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_incendiary.png b/src/main/resources/assets/hbm/textures/items/missile_incendiary.png index d468e0133..d73c8b473 100644 Binary files a/src/main/resources/assets/hbm/textures/items/missile_incendiary.png and b/src/main/resources/assets/hbm/textures/items/missile_incendiary.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png b/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png deleted file mode 100644 index edca5bc1e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_desert.png b/src/main/resources/assets/hbm/textures/items/missile_skin_desert.png deleted file mode 100644 index 1e0c7e19a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_desert.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png b/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png deleted file mode 100644 index 0fc31ee9a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png b/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png deleted file mode 100644 index 373912caf..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png b/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png deleted file mode 100644 index b83791df5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png b/src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png deleted file mode 100644 index 0b10d49d2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png b/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png deleted file mode 100644 index 8e5fc15c7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png b/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png deleted file mode 100644 index 86bb04eee..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png b/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png deleted file mode 100644 index eede778a5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_stealth.png b/src/main/resources/assets/hbm/textures/items/missile_stealth.png new file mode 100644 index 000000000..f7a8d3af2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/missile_stealth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_barrel_heavy.png b/src/main/resources/assets/hbm/textures/items/mold_barrel_heavy.png new file mode 100644 index 000000000..62f61b3c4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_barrel_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_barrel_light.png b/src/main/resources/assets/hbm/textures/items/mold_barrel_light.png new file mode 100644 index 000000000..0e3bbe8e5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_barrel_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_grip.png b/src/main/resources/assets/hbm/textures/items/mold_grip.png new file mode 100644 index 000000000..e59e52749 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_grip.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_mechanism.png b/src/main/resources/assets/hbm/textures/items/mold_mechanism.png new file mode 100644 index 000000000..041996d88 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_mechanism.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_pipe.png b/src/main/resources/assets/hbm/textures/items/mold_pipe.png new file mode 100644 index 000000000..692f1c972 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_pipe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_receiver_heavy.png b/src/main/resources/assets/hbm/textures/items/mold_receiver_heavy.png new file mode 100644 index 000000000..4036ee57b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_receiver_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_receiver_light.png b/src/main/resources/assets/hbm/textures/items/mold_receiver_light.png new file mode 100644 index 000000000..98d550222 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_receiver_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_shell.png b/src/main/resources/assets/hbm/textures/items/mold_shell.png new file mode 100644 index 000000000..72a389ba5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_shell.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_steel_base.png b/src/main/resources/assets/hbm/textures/items/mold_steel_base.png new file mode 100644 index 000000000..fd2c59e1b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_steel_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_stock.png b/src/main/resources/assets/hbm/textures/items/mold_stock.png new file mode 100644 index 000000000..f8e24f415 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_stock.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png b/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png new file mode 100644 index 000000000..2dc03fe36 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png b/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png new file mode 100644 index 000000000..4c4df12b9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png differ diff --git a/src/main/resources/assets/hbm/textures/items/motor_dnt.png b/src/main/resources/assets/hbm/textures/items/motor_dnt.png deleted file mode 100644 index 73e4c1e5b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/motor_dnt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/neutron_reflector_old.png b/src/main/resources/assets/hbm/textures/items/neutron_reflector_old.png deleted file mode 100644 index 99d28929b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/neutron_reflector_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/night_vision.png b/src/main/resources/assets/hbm/textures/items/night_vision.png new file mode 100644 index 000000000..fe10b140c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/night_vision.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nightmare_vision.png b/src/main/resources/assets/hbm/textures/items/nightmare_vision.png new file mode 100644 index 000000000..5d03c6236 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nightmare_vision.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nitra.png b/src/main/resources/assets/hbm/textures/items/nitra.png new file mode 100644 index 000000000..8dcc2e36a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nitra.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nitra_small.png b/src/main/resources/assets/hbm/textures/items/nitra_small.png new file mode 100644 index 000000000..856147709 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nitra_small.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_niobium.png b/src/main/resources/assets/hbm/textures/items/nugget_niobium.png new file mode 100644 index 000000000..c9bc77d5d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nugget_niobium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_silicon.png b/src/main/resources/assets/hbm/textures/items/nugget_silicon.png new file mode 100644 index 000000000..1c91cf6a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nugget_silicon.png differ diff --git a/src/main/resources/assets/hbm/textures/items/oil_canola.png b/src/main/resources/assets/hbm/textures/items/oil_canola.png deleted file mode 100644 index a8363032f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oil_canola.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oil_crude.png b/src/main/resources/assets/hbm/textures/items/oil_crude.png deleted file mode 100644 index 9c922060a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oil_crude.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_bitumen.png b/src/main/resources/assets/hbm/textures/items/oilcan_bitumen.png deleted file mode 100644 index 53b9537c7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_bitumen.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_diesel.png b/src/main/resources/assets/hbm/textures/items/oilcan_diesel.png deleted file mode 100644 index 998d9cd92..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_diesel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_heatingoil.png b/src/main/resources/assets/hbm/textures/items/oilcan_heatingoil.png deleted file mode 100644 index 8abf6d0ff..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_heatingoil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_heavyoil.png b/src/main/resources/assets/hbm/textures/items/oilcan_heavyoil.png deleted file mode 100644 index 371de2421..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_heavyoil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_kerosene.png b/src/main/resources/assets/hbm/textures/items/oilcan_kerosene.png deleted file mode 100644 index 3df5212ff..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_kerosene.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_lightoil.png b/src/main/resources/assets/hbm/textures/items/oilcan_lightoil.png deleted file mode 100644 index 90f74ec41..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_lightoil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_lubricant.png b/src/main/resources/assets/hbm/textures/items/oilcan_lubricant.png deleted file mode 100644 index 9cee01513..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_lubricant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_naphtha.png b/src/main/resources/assets/hbm/textures/items/oilcan_naphtha.png deleted file mode 100644 index 631a87058..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_naphtha.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_oil.png b/src/main/resources/assets/hbm/textures/items/oilcan_oil.png deleted file mode 100644 index 0cfbdc54f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_oil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_petroil.png b/src/main/resources/assets/hbm/textures/items/oilcan_petroil.png deleted file mode 100644 index d1d5f9d23..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_petroil.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_reclaimed.png b/src/main/resources/assets/hbm/textures/items/oilcan_reclaimed.png deleted file mode 100644 index 1f6a7db89..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_reclaimed.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/oilcan_smear.png b/src/main/resources/assets/hbm/textures/items/oilcan_smear.png deleted file mode 100644 index 152145995..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/oilcan_smear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_density_scanner.png b/src/main/resources/assets/hbm/textures/items/ore_density_scanner.png new file mode 100644 index 000000000..c67517b88 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ore_density_scanner.png differ diff --git a/src/main/resources/assets/hbm/textures/items/page_of_.png b/src/main/resources/assets/hbm/textures/items/page_of_.png new file mode 100644 index 000000000..c1fef7b72 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/page_of_.png differ diff --git a/src/main/resources/assets/hbm/textures/items/part_barrel_heavy.png b/src/main/resources/assets/hbm/textures/items/part_barrel_heavy.png new file mode 100644 index 000000000..44f07bfcc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/part_barrel_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/part_barrel_light.png b/src/main/resources/assets/hbm/textures/items/part_barrel_light.png new file mode 100644 index 000000000..c407b692e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/part_barrel_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/part_grip.png b/src/main/resources/assets/hbm/textures/items/part_grip.png new file mode 100644 index 000000000..cf73e7502 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/part_grip.png differ diff --git a/src/main/resources/assets/hbm/textures/items/part_mechanism.png b/src/main/resources/assets/hbm/textures/items/part_mechanism.png new file mode 100644 index 000000000..734659e14 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/part_mechanism.png differ diff --git a/src/main/resources/assets/hbm/textures/items/part_receiver_heavy.png b/src/main/resources/assets/hbm/textures/items/part_receiver_heavy.png new file mode 100644 index 000000000..696cf78f4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/part_receiver_heavy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/part_receiver_light.png b/src/main/resources/assets/hbm/textures/items/part_receiver_light.png new file mode 100644 index 000000000..ea2057903 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/part_receiver_light.png differ diff --git a/src/main/resources/assets/hbm/textures/items/part_stock.png b/src/main/resources/assets/hbm/textures/items/part_stock.png new file mode 100644 index 000000000..a93b55f67 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/part_stock.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pattern.png b/src/main/resources/assets/hbm/textures/items/pattern.png deleted file mode 100644 index 9a263db7b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pattern.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pattern_drawn.png b/src/main/resources/assets/hbm/textures/items/pattern_drawn.png deleted file mode 100644 index ca8a8505a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pattern_drawn.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_advanced.png b/src/main/resources/assets/hbm/textures/items/pellet_advanced.png deleted file mode 100644 index b73babcbf..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_advanced.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png b/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png deleted file mode 100644 index a5e2f78a0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_coal.png b/src/main/resources/assets/hbm/textures/items/pellet_coal.png deleted file mode 100644 index 0672275f8..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_coal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_hes.png b/src/main/resources/assets/hbm/textures/items/pellet_hes.png deleted file mode 100644 index 02f8ba8bc..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_hes.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_lead.png b/src/main/resources/assets/hbm/textures/items/pellet_lead.png deleted file mode 100644 index 1a647b6a3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_lead.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_les.png b/src/main/resources/assets/hbm/textures/items/pellet_les.png deleted file mode 100644 index a7cec73fd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_les.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_mes.png b/src/main/resources/assets/hbm/textures/items/pellet_mes.png deleted file mode 100644 index fae0a33ed..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_mes.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_neptunium.png b/src/main/resources/assets/hbm/textures/items/pellet_neptunium.png deleted file mode 100644 index 9b5ac03ce..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_neptunium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png b/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png deleted file mode 100644 index 511125d6d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellets_mercury.png b/src/main/resources/assets/hbm/textures/items/pellets_mercury.png deleted file mode 100644 index 939fcec48..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellets_mercury.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png b/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png deleted file mode 100644 index 99931efa5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pipe.png b/src/main/resources/assets/hbm/textures/items/pipe.png new file mode 100644 index 000000000..72a840b01 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pipe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pipette.png b/src/main/resources/assets/hbm/textures/items/pipette.png new file mode 100644 index 000000000..a24218949 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pipette.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pipette_boron.png b/src/main/resources/assets/hbm/textures/items/pipette_boron.png new file mode 100644 index 000000000..7bf66ade3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pipette_boron.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pipette_empty.png b/src/main/resources/assets/hbm/textures/items/pipette_empty.png new file mode 100644 index 000000000..07f7b0e2b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pipette_empty.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pipette_laboratory.png b/src/main/resources/assets/hbm/textures/items/pipette_laboratory.png new file mode 100644 index 000000000..314f23205 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pipette_laboratory.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pipette_laboratory_overlay.png b/src/main/resources/assets/hbm/textures/items/pipette_laboratory_overlay.png new file mode 100644 index 000000000..8a2ad573c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pipette_laboratory_overlay.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pipette_overlay.png b/src/main/resources/assets/hbm/textures/items/pipette_overlay.png new file mode 100644 index 000000000..207f90f2e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pipette_overlay.png differ diff --git a/src/main/resources/assets/hbm/textures/items/plan_c_alt.png b/src/main/resources/assets/hbm/textures/items/plan_c_alt.png deleted file mode 100644 index 0a44d8317..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/plan_c_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/plastic_bag.png b/src/main/resources/assets/hbm/textures/items/plastic_bag.png new file mode 100644 index 000000000..5074bd920 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/plastic_bag.png differ diff --git a/src/main/resources/assets/hbm/textures/items/plate_dura_steel.png b/src/main/resources/assets/hbm/textures/items/plate_dura_steel.png new file mode 100644 index 000000000..4b2dba2c6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/plate_dura_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/plate_gunmetal.png b/src/main/resources/assets/hbm/textures/items/plate_gunmetal.png new file mode 100644 index 000000000..84a7b470c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/plate_gunmetal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/plate_gunsteel.png b/src/main/resources/assets/hbm/textures/items/plate_gunsteel.png new file mode 100644 index 000000000..833e792f1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/plate_gunsteel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/plate_saturnite.png b/src/main/resources/assets/hbm/textures/items/plate_saturnite.png index 9f3e071ac..9cca74517 100644 Binary files a/src/main/resources/assets/hbm/textures/items/plate_saturnite.png and b/src/main/resources/assets/hbm/textures/items/plate_saturnite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/plate_welded.png b/src/main/resources/assets/hbm/textures/items/plate_welded.png new file mode 100644 index 000000000..6ef667101 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/plate_welded.png differ diff --git a/src/main/resources/assets/hbm/textures/items/playground/mekanisms_new_textures_suck_balls.png b/src/main/resources/assets/hbm/textures/items/playground/mekanisms_new_textures_suck_balls.png new file mode 100644 index 000000000..e3793924b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/playground/mekanisms_new_textures_suck_balls.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.coal.png b/src/main/resources/assets/hbm/textures/items/powder_ash.coal.png new file mode 100644 index 000000000..cf1f59334 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.coal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.fly.png b/src/main/resources/assets/hbm/textures/items/powder_ash.fly.png new file mode 100644 index 000000000..15e4bae5c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.fly.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.fullerene.png b/src/main/resources/assets/hbm/textures/items/powder_ash.fullerene.png new file mode 100644 index 000000000..31ca1e7f7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.fullerene.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.misc.png b/src/main/resources/assets/hbm/textures/items/powder_ash.misc.png new file mode 100644 index 000000000..1d74394b8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.misc.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png b/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png new file mode 100644 index 000000000..664b4aa40 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.wood.png b/src/main/resources/assets/hbm/textures/items/powder_ash.wood.png new file mode 100644 index 000000000..33440e5ea Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.wood.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_cement.png b/src/main/resources/assets/hbm/textures/items/powder_cement.png new file mode 100644 index 000000000..a919c453f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_cement.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_limestone.png b/src/main/resources/assets/hbm/textures/items/powder_limestone.png new file mode 100644 index 000000000..7f7e59feb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_limestone.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_molysite.png b/src/main/resources/assets/hbm/textures/items/powder_molysite.png new file mode 100644 index 000000000..578d26ced Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_molysite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_sodium.png b/src/main/resources/assets/hbm/textures/items/powder_sodium.png new file mode 100644 index 000000000..d7e6c4ffc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_sodium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_template.png b/src/main/resources/assets/hbm/textures/items/powder_template.png deleted file mode 100644 index 71b8b07c5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/powder_template.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/primer_357.png b/src/main/resources/assets/hbm/textures/items/primer_357.png deleted file mode 100644 index c20411ce7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/primer_357.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/primer_44.png b/src/main/resources/assets/hbm/textures/items/primer_44.png deleted file mode 100644 index 1b7fd5435..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/primer_44.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/primer_50.png b/src/main/resources/assets/hbm/textures/items/primer_50.png deleted file mode 100644 index 17bee59b9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/primer_50.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/primer_9.png b/src/main/resources/assets/hbm/textures/items/primer_9.png deleted file mode 100644 index e88ab382f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/primer_9.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/primer_buckshot.png b/src/main/resources/assets/hbm/textures/items/primer_buckshot.png deleted file mode 100644 index 701799005..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/primer_buckshot.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_am_mix.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_am_mix.png new file mode 100644 index 000000000..12f553847 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_am_mix.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_pu241.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_pu241.png new file mode 100644 index 000000000..01c0f4e83 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_pu241.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hea242.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hea242.png new file mode 100644 index 000000000..02db8994d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hea242.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png new file mode 100644 index 000000000..64228fb58 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep239.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep239.png new file mode 100644 index 000000000..c14fe4ec2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep239.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png new file mode 100644 index 000000000..2a99abe38 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png new file mode 100644 index 000000000..d659fdd2f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png new file mode 100644 index 000000000..7a1f8df98 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png new file mode 100644 index 000000000..8961cc636 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png new file mode 100644 index 000000000..c80a207b0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png new file mode 100644 index 000000000..90305870d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png new file mode 100644 index 000000000..c21db4157 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png new file mode 100644 index 000000000..1d1334635 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png new file mode 100644 index 000000000..ca1e8e89e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png new file mode 100644 index 000000000..59d0a64a2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png new file mode 100644 index 000000000..9d614943b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png new file mode 100644 index 000000000..cb2b2d545 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel_hot.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel_hot.png new file mode 100644 index 000000000..84b4903d4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pwr_fuel_hot.png differ diff --git a/src/main/resources/assets/hbm/textures/items/radar_linker.png b/src/main/resources/assets/hbm/textures/items/radar_linker.png new file mode 100644 index 000000000..274181b4b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/radar_linker.png differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_crystal.png b/src/main/resources/assets/hbm/textures/items/recycled_crystal.png deleted file mode 100644 index 89635cfba..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_electronic.png b/src/main/resources/assets/hbm/textures/items/recycled_electronic.png deleted file mode 100644 index 6076ee251..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_electronic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_explosive.png b/src/main/resources/assets/hbm/textures/items/recycled_explosive.png deleted file mode 100644 index f3e3135c7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_explosive.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_ground.png b/src/main/resources/assets/hbm/textures/items/recycled_ground.png deleted file mode 100644 index 282c680a2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_ground.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_metal.png b/src/main/resources/assets/hbm/textures/items/recycled_metal.png deleted file mode 100644 index b1f504225..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_metal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_misc.png b/src/main/resources/assets/hbm/textures/items/recycled_misc.png deleted file mode 100644 index 23a4459a6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_misc.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_nuclear.png b/src/main/resources/assets/hbm/textures/items/recycled_nuclear.png deleted file mode 100644 index 9846b2c4a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_nuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_organic.png b/src/main/resources/assets/hbm/textures/items/recycled_organic.png deleted file mode 100644 index 6f065f58f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_organic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_overlay.png b/src/main/resources/assets/hbm/textures/items/recycled_overlay.png deleted file mode 100644 index e3d5183a6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_refined.png b/src/main/resources/assets/hbm/textures/items/recycled_refined.png deleted file mode 100644 index 2c346dbbd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_refined.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_rock.png b/src/main/resources/assets/hbm/textures/items/recycled_rock.png deleted file mode 100644 index 257a053a9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_rock.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/redstone_depleted.png b/src/main/resources/assets/hbm/textures/items/redstone_depleted.png deleted file mode 100644 index 1cc99895c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/redstone_depleted.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_australium.png b/src/main/resources/assets/hbm/textures/items/rod_australium.png deleted file mode 100644 index 34e5dc5a5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_australium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_coolant.png deleted file mode 100644 index aa4ae7e48..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_coolant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_daffergon.png b/src/main/resources/assets/hbm/textures/items/rod_daffergon.png deleted file mode 100644 index 80e538b63..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_daffergon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png deleted file mode 100644 index 9f5b38305..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_dual_water.png b/src/main/resources/assets/hbm/textures/items/rod_dual_water.png deleted file mode 100644 index e29b72035..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_dual_water.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png deleted file mode 100644 index e5ca3d6f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_water.png b/src/main/resources/assets/hbm/textures/items/rod_quad_water.png deleted file mode 100644 index 10b021ebb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_quad_water.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_reiium.png b/src/main/resources/assets/hbm/textures/items/rod_reiium.png deleted file mode 100644 index a7a347814..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_reiium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_unobtainium.png b/src/main/resources/assets/hbm/textures/items/rod_unobtainium.png deleted file mode 100644 index 1afe4b705..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_unobtainium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_verticium.png b/src/main/resources/assets/hbm/textures/items/rod_verticium.png deleted file mode 100644 index a44e58b90..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_verticium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_water.png b/src/main/resources/assets/hbm/textures/items/rod_water.png deleted file mode 100644 index ebb15628a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_water.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_weidanium.png b/src/main/resources/assets/hbm/textures/items/rod_weidanium.png deleted file mode 100644 index c691f25f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_weidanium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rotor_steel.png b/src/main/resources/assets/hbm/textures/items/rotor_steel.png deleted file mode 100644 index 17350ef8d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rotor_steel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rubber_gloves.png b/src/main/resources/assets/hbm/textures/items/rubber_gloves.png deleted file mode 100644 index 2fd793fab..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rubber_gloves.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/sat_relay.png b/src/main/resources/assets/hbm/textures/items/sat_relay.png new file mode 100644 index 000000000..2c104ddf7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/sat_relay.png differ diff --git a/src/main/resources/assets/hbm/textures/items/settings_tool.png b/src/main/resources/assets/hbm/textures/items/settings_tool.png new file mode 100644 index 000000000..331bb4e62 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/settings_tool.png differ diff --git a/src/main/resources/assets/hbm/textures/items/shell.png b/src/main/resources/assets/hbm/textures/items/shell.png new file mode 100644 index 000000000..74338e908 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/shell.png differ diff --git a/src/main/resources/assets/hbm/textures/items/shell_base.png b/src/main/resources/assets/hbm/textures/items/shell_base.png new file mode 100644 index 000000000..f1cd3b91d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/shell_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/siphon.png b/src/main/resources/assets/hbm/textures/items/siphon.png new file mode 100644 index 000000000..ec7590978 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/siphon.png differ diff --git a/src/main/resources/assets/hbm/textures/items/sliding_blast_door_default.png b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_default.png new file mode 100644 index 000000000..752aa7567 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_default.png differ diff --git a/src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant1.png b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant1.png new file mode 100644 index 000000000..5bbe67b45 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant1.png differ diff --git a/src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant2.png b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant2.png new file mode 100644 index 000000000..bceea2601 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke1.png b/src/main/resources/assets/hbm/textures/items/smoke1.png deleted file mode 100644 index 880c3cd75..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke2.png b/src/main/resources/assets/hbm/textures/items/smoke2.png deleted file mode 100644 index 013941568..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke3.png b/src/main/resources/assets/hbm/textures/items/smoke3.png deleted file mode 100644 index 44045bc03..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke4.png b/src/main/resources/assets/hbm/textures/items/smoke4.png deleted file mode 100644 index 32b25061a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke5.png b/src/main/resources/assets/hbm/textures/items/smoke5.png deleted file mode 100644 index c50e2955e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke6.png b/src/main/resources/assets/hbm/textures/items/smoke6.png deleted file mode 100644 index eed05375c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke7.png b/src/main/resources/assets/hbm/textures/items/smoke7.png deleted file mode 100644 index ffaa1c538..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke8.png b/src/main/resources/assets/hbm/textures/items/smoke8.png deleted file mode 100644 index 95239d7d7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_book.png b/src/main/resources/assets/hbm/textures/items/stamp_book.png new file mode 100644 index 000000000..30f65b906 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/stamp_book.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_desh_circuit.png b/src/main/resources/assets/hbm/textures/items/stamp_desh_circuit.png index 3e4d62f3f..8cbf55186 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_desh_circuit.png and b/src/main/resources/assets/hbm/textures/items/stamp_desh_circuit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_dura_flat.png b/src/main/resources/assets/hbm/textures/items/stamp_dura_flat.png deleted file mode 100644 index 9d075e448..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_dura_flat.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_iron_blank.png b/src/main/resources/assets/hbm/textures/items/stamp_iron_blank.png new file mode 100644 index 000000000..d0276592d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/stamp_iron_blank.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_iron_circuit.png b/src/main/resources/assets/hbm/textures/items/stamp_iron_circuit.png index 71978e8c7..d4211a715 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_iron_circuit.png and b/src/main/resources/assets/hbm/textures/items/stamp_iron_circuit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_obsidian_circuit.png b/src/main/resources/assets/hbm/textures/items/stamp_obsidian_circuit.png index 861d3ace9..a3a25fc41 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_obsidian_circuit.png and b/src/main/resources/assets/hbm/textures/items/stamp_obsidian_circuit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_obsidian_flat.png b/src/main/resources/assets/hbm/textures/items/stamp_obsidian_flat.png index bd35e1d27..45ff4b3e3 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_obsidian_flat.png and b/src/main/resources/assets/hbm/textures/items/stamp_obsidian_flat.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_obsidian_plate.png b/src/main/resources/assets/hbm/textures/items/stamp_obsidian_plate.png index 57b37bd52..e38824979 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_obsidian_plate.png and b/src/main/resources/assets/hbm/textures/items/stamp_obsidian_plate.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_obsidian_wire.png b/src/main/resources/assets/hbm/textures/items/stamp_obsidian_wire.png index 144bb8fb9..2c9a6fea3 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_obsidian_wire.png and b/src/main/resources/assets/hbm/textures/items/stamp_obsidian_wire.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_circuit.png b/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_circuit.png deleted file mode 100644 index de537a586..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_circuit.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_flat.png b/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_flat.png deleted file mode 100644 index 7a6e25e76..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_flat.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_plate.png b/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_plate.png deleted file mode 100644 index 847e870ea..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_plate.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_wire.png b/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_wire.png deleted file mode 100644 index e2447983c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_schrabidium_wire.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_steel_circuit.png b/src/main/resources/assets/hbm/textures/items/stamp_steel_circuit.png index d95fe00df..86dbad620 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_steel_circuit.png and b/src/main/resources/assets/hbm/textures/items/stamp_steel_circuit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_stone_circuit.png b/src/main/resources/assets/hbm/textures/items/stamp_stone_circuit.png index 4234e4e87..36f883eea 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_stone_circuit.png and b/src/main/resources/assets/hbm/textures/items/stamp_stone_circuit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_stone_flat.png b/src/main/resources/assets/hbm/textures/items/stamp_stone_flat.png index 72d2f52fe..ea71da78b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_stone_flat.png and b/src/main/resources/assets/hbm/textures/items/stamp_stone_flat.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_stone_plate.png b/src/main/resources/assets/hbm/textures/items/stamp_stone_plate.png index e70463b46..2421606e5 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_stone_plate.png and b/src/main/resources/assets/hbm/textures/items/stamp_stone_plate.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_stone_wire.png b/src/main/resources/assets/hbm/textures/items/stamp_stone_wire.png index 1a8f4455d..a4dd23aef 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_stone_wire.png and b/src/main/resources/assets/hbm/textures/items/stamp_stone_wire.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_titanium_circuit.png b/src/main/resources/assets/hbm/textures/items/stamp_titanium_circuit.png index 5725e422a..374167fdd 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_titanium_circuit.png and b/src/main/resources/assets/hbm/textures/items/stamp_titanium_circuit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_titanium_flat.png b/src/main/resources/assets/hbm/textures/items/stamp_titanium_flat.png index 1d7024abc..00417c03b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_titanium_flat.png and b/src/main/resources/assets/hbm/textures/items/stamp_titanium_flat.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_titanium_plate.png b/src/main/resources/assets/hbm/textures/items/stamp_titanium_plate.png index 96d176208..c7d7c67be 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_titanium_plate.png and b/src/main/resources/assets/hbm/textures/items/stamp_titanium_plate.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_titanium_wire.png b/src/main/resources/assets/hbm/textures/items/stamp_titanium_wire.png index ffdae003c..9fa0bd1dc 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stamp_titanium_wire.png and b/src/main/resources/assets/hbm/textures/items/stamp_titanium_wire.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stick_dynamite.png b/src/main/resources/assets/hbm/textures/items/stick_dynamite.png index cc31285e0..2596ba765 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stick_dynamite.png and b/src/main/resources/assets/hbm/textures/items/stick_dynamite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png b/src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png index 973506281..6bc5abb43 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png and b/src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stick_dynamite_nuclear.png b/src/main/resources/assets/hbm/textures/items/stick_dynamite_nuclear.png deleted file mode 100644 index afafa853b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/stick_dynamite_nuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/stick_tatb.png b/src/main/resources/assets/hbm/textures/items/stick_tatb.png index 6dd88af75..f012d4464 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stick_tatb.png and b/src/main/resources/assets/hbm/textures/items/stick_tatb.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stick_tnt.png b/src/main/resources/assets/hbm/textures/items/stick_tnt.png index 6fa5a5518..7ca995a46 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stick_tnt.png and b/src/main/resources/assets/hbm/textures/items/stick_tnt.png differ diff --git a/src/main/resources/assets/hbm/textures/items/structure_custommachine.png b/src/main/resources/assets/hbm/textures/items/structure_custommachine.png new file mode 100644 index 000000000..3f95a0a78 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/structure_custommachine.png differ diff --git a/src/main/resources/assets/hbm/textures/items/swordTemplate.png b/src/main/resources/assets/hbm/textures/items/swordTemplate.png deleted file mode 100644 index cda8f964c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/swordTemplate.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/template_folder_alt.png b/src/main/resources/assets/hbm/textures/items/template_folder_alt.png deleted file mode 100644 index 442aa6af4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/template_folder_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/test_boots.png b/src/main/resources/assets/hbm/textures/items/test_boots.png deleted file mode 100644 index 8f068b965..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/test_boots.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/test_chestplate.png b/src/main/resources/assets/hbm/textures/items/test_chestplate.png deleted file mode 100644 index 8c391c10b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/test_chestplate.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/test_helmet.png b/src/main/resources/assets/hbm/textures/items/test_helmet.png deleted file mode 100644 index 3b2e2a4ac..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/test_helmet.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/test_leggings.png b/src/main/resources/assets/hbm/textures/items/test_leggings.png deleted file mode 100644 index e3587c5d4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/test_leggings.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_large.png b/src/main/resources/assets/hbm/textures/items/thruster_large.png index b93646e4f..669b2a68a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_large.png and b/src/main/resources/assets/hbm/textures/items/thruster_large.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png deleted file mode 100644 index ee64287d3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_medium.png b/src/main/resources/assets/hbm/textures/items/thruster_medium.png index c880ffed8..3437a340a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_medium.png and b/src/main/resources/assets/hbm/textures/items/thruster_medium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png deleted file mode 100644 index b480e5999..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_small.png b/src/main/resources/assets/hbm/textures/items/thruster_small.png index f1881cd3c..192d0bd6e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_small.png and b/src/main/resources/assets/hbm/textures/items/thruster_small.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_small_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_small_alt.png deleted file mode 100644 index 30c695f30..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_small_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/train.tunnel_bore.png b/src/main/resources/assets/hbm/textures/items/train.tunnel_bore.png new file mode 100644 index 000000000..b115e28a0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/train.tunnel_bore.png differ diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_boots.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_boots.png new file mode 100644 index 000000000..509f7cae6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/trenchmaster_boots.png differ diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_helmet.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_helmet.png new file mode 100644 index 000000000..b12e0e69f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/trenchmaster_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_legs.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_legs.png new file mode 100644 index 000000000..48e7b3e7c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/trenchmaster_legs.png differ diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_plate.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_plate.png new file mode 100644 index 000000000..27b3fa9c3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/trenchmaster_plate.png differ diff --git a/src/main/resources/assets/hbm/textures/items/turret_cwis_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_cwis_ammo.png deleted file mode 100644 index 77dd465d7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/turret_cwis_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/turret_flamer_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_flamer_ammo.png deleted file mode 100644 index 19c15cfe6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/turret_flamer_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/turret_heavy_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_heavy_ammo.png deleted file mode 100644 index 0fed1fdf7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/turret_heavy_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/turret_light_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_light_ammo.png deleted file mode 100644 index 13143457c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/turret_light_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/turret_rocket_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_rocket_ammo.png deleted file mode 100644 index e75662c45..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/turret_rocket_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/turret_spitfire_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_spitfire_ammo.png deleted file mode 100644 index 76f824d57..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/turret_spitfire_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/turret_tau_ammo.png b/src/main/resources/assets/hbm/textures/items/turret_tau_ammo.png deleted file mode 100644 index 7a3d511d1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/turret_tau_ammo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_bedrock.png b/src/main/resources/assets/hbm/textures/items/upgrade_bedrock.png deleted file mode 100644 index fc6600e86..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_bedrock.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_mod_u.png b/src/main/resources/assets/hbm/textures/items/upgrade_mod_u.png deleted file mode 100644 index 6e6831ccb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_mod_u.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_muffler.png b/src/main/resources/assets/hbm/textures/items/upgrade_muffler.png new file mode 100644 index 000000000..423195122 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/upgrade_muffler.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png b/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png deleted file mode 100644 index 7521f2a9b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/v1.png b/src/main/resources/assets/hbm/textures/items/v1.png deleted file mode 100644 index ce0826020..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/v1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/void.png b/src/main/resources/assets/hbm/textures/items/void.png deleted file mode 100644 index ea2166761..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/void.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/void_anim.png b/src/main/resources/assets/hbm/textures/items/void_anim.png deleted file mode 100644 index da3efcedd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/void_anim.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/volcanic_axe.png b/src/main/resources/assets/hbm/textures/items/volcanic_axe.png new file mode 100644 index 000000000..9a870d131 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/volcanic_axe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_diamond.png b/src/main/resources/assets/hbm/textures/items/wafer_diamond.png deleted file mode 100644 index 10db83af1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_gold.png b/src/main/resources/assets/hbm/textures/items/wafer_gold.png deleted file mode 100644 index 8668da72d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_gold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_lapis.png b/src/main/resources/assets/hbm/textures/items/wafer_lapis.png deleted file mode 100644 index 3d6760a26..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_lapis.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_silicon.png b/src/main/resources/assets/hbm/textures/items/wafer_silicon.png deleted file mode 100644 index 54fce1d7f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_silicon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_spark.png b/src/main/resources/assets/hbm/textures/items/wafer_spark.png deleted file mode 100644 index b03364725..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_spark.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wand_alt.png b/src/main/resources/assets/hbm/textures/items/wand_alt.png deleted file mode 100644 index 101d7a866..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wand_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wand_d_alt.png b/src/main/resources/assets/hbm/textures/items/wand_d_alt.png deleted file mode 100644 index 3524021be..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wand_d_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wand_s_alt.png b/src/main/resources/assets/hbm/textures/items/wand_s_alt.png deleted file mode 100644 index 749e4431f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wand_s_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/warhead_mirv_alt.png b/src/main/resources/assets/hbm/textures/items/warhead_mirv_alt.png deleted file mode 100644 index 9c01939b8..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/warhead_mirv_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/warhead_mirvlet.png b/src/main/resources/assets/hbm/textures/items/warhead_mirvlet.png deleted file mode 100644 index 7630682da..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/warhead_mirvlet.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/warhead_thermo_endo_alt.png b/src/main/resources/assets/hbm/textures/items/warhead_thermo_endo_alt.png deleted file mode 100644 index e519298dc..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/warhead_thermo_endo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/warhead_thermo_exo_alt.png b/src/main/resources/assets/hbm/textures/items/warhead_thermo_exo_alt.png deleted file mode 100644 index b452b4c44..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/warhead_thermo_exo_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png b/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png deleted file mode 100644 index 48f8dfd97..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_aluminium.png b/src/main/resources/assets/hbm/textures/items/wire_aluminium.png index e4c210ec1..a3ff6c135 100644 Binary files a/src/main/resources/assets/hbm/textures/items/wire_aluminium.png and b/src/main/resources/assets/hbm/textures/items/wire_aluminium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png b/src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png deleted file mode 100644 index 3d2417498..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_carbon.png b/src/main/resources/assets/hbm/textures/items/wire_carbon.png new file mode 100644 index 000000000..0834e50f2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/wire_carbon.png differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_copper_new.png b/src/main/resources/assets/hbm/textures/items/wire_copper_new.png deleted file mode 100644 index 33dd16888..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_copper_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_dense.png b/src/main/resources/assets/hbm/textures/items/wire_dense.png new file mode 100644 index 000000000..2482676ab Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/wire_dense.png differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_blank.png b/src/main/resources/assets/hbm/textures/items/wire_fine.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/wire_blank.png rename to src/main/resources/assets/hbm/textures/items/wire_fine.png diff --git a/src/main/resources/assets/hbm/textures/items/wire_gold_new.png b/src/main/resources/assets/hbm/textures/items/wire_gold_new.png deleted file mode 100644 index de76cb172..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_gold_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png b/src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png deleted file mode 100644 index 0b8c87d4e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png b/src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png deleted file mode 100644 index 19eecd75e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png b/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png deleted file mode 100644 index 15558c3c8..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png b/src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png deleted file mode 100644 index 2c21fc45c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/xanax.png b/src/main/resources/assets/hbm/textures/items/xanax.png deleted file mode 100644 index 4c3759188..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/xanax.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_0.png b/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_0.png deleted file mode 100644 index d0940180c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_1.png b/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_1.png deleted file mode 100644 index d3923bf82..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_2.png b/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_2.png deleted file mode 100644 index 0927803ea..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_3.png b/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_3.png deleted file mode 100644 index 1076a75d6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_4.png b/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_4.png deleted file mode 100644 index e99d634fe..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zÃŒndschlÃŒssel_4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/misc/overlay_misc.png b/src/main/resources/assets/hbm/textures/misc/overlay_misc.png index 6784dce1f..4162b065c 100644 Binary files a/src/main/resources/assets/hbm/textures/misc/overlay_misc.png and b/src/main/resources/assets/hbm/textures/misc/overlay_misc.png differ diff --git a/src/main/resources/assets/hbm/textures/misc/scope_bolt.png b/src/main/resources/assets/hbm/textures/misc/scope_bolt.png new file mode 100644 index 000000000..2c40eeb66 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/misc/scope_bolt.png differ diff --git a/src/main/resources/assets/hbm/textures/models/At4New.png b/src/main/resources/assets/hbm/textures/models/At4New.png deleted file mode 100644 index 893349770..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/At4New.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/BFLauncher.png b/src/main/resources/assets/hbm/textures/models/BFLauncher.png deleted file mode 100644 index b1f69982c..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/BFLauncher.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/BaleFlare.png b/src/main/resources/assets/hbm/textures/models/BaleFlare.png deleted file mode 100644 index f75ae16be..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/BaleFlare.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/FatmanLauncher.png b/src/main/resources/assets/hbm/textures/models/FatmanLauncher.png deleted file mode 100644 index 44968347b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/FatmanLauncher.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/JetPackPurple.png b/src/main/resources/assets/hbm/textures/models/JetPackPurple.png deleted file mode 100644 index c1d0faf6f..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/JetPackPurple.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/LilBoy2.png b/src/main/resources/assets/hbm/textures/models/LilBoy2.png deleted file mode 100644 index 0e0dd92c2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/LilBoy2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelB92.png b/src/main/resources/assets/hbm/textures/models/ModelB92.png deleted file mode 100644 index 86dbc2994..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelB92.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelB92Dark.png b/src/main/resources/assets/hbm/textures/models/ModelB92Dark.png deleted file mode 100644 index e41f8582c..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelB92Dark.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelB93.png b/src/main/resources/assets/hbm/textures/models/ModelB93.png deleted file mode 100644 index 0861b9bfc..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelB93.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelBoltAction.png b/src/main/resources/assets/hbm/textures/models/ModelBoltAction.png deleted file mode 100644 index 410512914..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelBoltAction.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelBoltActionDark.png b/src/main/resources/assets/hbm/textures/models/ModelBoltActionDark.png deleted file mode 100644 index 3bd22f1f9..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelBoltActionDark.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelBoltActionDarkGreen.png b/src/main/resources/assets/hbm/textures/models/ModelBoltActionDarkGreen.png deleted file mode 100644 index cb40afaff..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelBoltActionDarkGreen.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelBoltActionGreen.png b/src/main/resources/assets/hbm/textures/models/ModelBoltActionGreen.png deleted file mode 100644 index 1c5c31255..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelBoltActionGreen.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelBoltActionSaturnite.png b/src/main/resources/assets/hbm/textures/models/ModelBoltActionSaturnite.png deleted file mode 100644 index f89c1a960..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelBoltActionSaturnite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelCalBarrel.png b/src/main/resources/assets/hbm/textures/models/ModelCalBarrel.png deleted file mode 100644 index 1b5903f49..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelCalBarrel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelCalDualStock.png b/src/main/resources/assets/hbm/textures/models/ModelCalDualStock.png deleted file mode 100644 index c24d88063..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelCalDualStock.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelCalStock.png b/src/main/resources/assets/hbm/textures/models/ModelCalStock.png deleted file mode 100644 index e1f8df03e..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelCalStock.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelCryolator.png b/src/main/resources/assets/hbm/textures/models/ModelCryolator.png deleted file mode 100644 index 89d71fb71..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelCryolator.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelDash.png b/src/main/resources/assets/hbm/textures/models/ModelDash.png deleted file mode 100755 index 26e6cac9d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelDash.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelDefabricator.png b/src/main/resources/assets/hbm/textures/models/ModelDefabricator.png deleted file mode 100755 index 5752d9cb0..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelDefabricator.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelEMPRay.png b/src/main/resources/assets/hbm/textures/models/ModelEMPRay.png deleted file mode 100644 index 079430b27..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelEMPRay.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelEuthanasia.png b/src/main/resources/assets/hbm/textures/models/ModelEuthanasia.png deleted file mode 100644 index 9c3a2960d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelEuthanasia.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelFolly.png b/src/main/resources/assets/hbm/textures/models/ModelFolly.png deleted file mode 100644 index 065460dca..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelFolly.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelGustav.png b/src/main/resources/assets/hbm/textures/models/ModelGustav.png deleted file mode 100644 index 7644f473f..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelGustav.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelGustavYellow.png b/src/main/resources/assets/hbm/textures/models/ModelGustavYellow.png deleted file mode 100644 index f35253ad7..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelGustavYellow.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelHP.png b/src/main/resources/assets/hbm/textures/models/ModelHP.png deleted file mode 100755 index 7f1c34c88..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelHP.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelImmolator.png b/src/main/resources/assets/hbm/textures/models/ModelImmolator.png deleted file mode 100644 index 2a54c1359..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelImmolator.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelJack.png b/src/main/resources/assets/hbm/textures/models/ModelJack.png deleted file mode 100644 index 68ee93088..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelJack.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelLacunae.png b/src/main/resources/assets/hbm/textures/models/ModelLacunae.png deleted file mode 100644 index 40981f04b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelLacunae.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelLacunaeAvenger.png b/src/main/resources/assets/hbm/textures/models/ModelLacunaeAvenger.png deleted file mode 100644 index 867efab47..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelLacunaeAvenger.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelLacunaeReal.png b/src/main/resources/assets/hbm/textures/models/ModelLacunaeReal.png deleted file mode 100644 index 05736d980..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelLacunaeReal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelLeverAction.png b/src/main/resources/assets/hbm/textures/models/ModelLeverAction.png deleted file mode 100644 index 8068043e3..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelLeverAction.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelLeverActionDark.png b/src/main/resources/assets/hbm/textures/models/ModelLeverActionDark.png deleted file mode 100644 index b8d66c59d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelLeverActionDark.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelMP.png b/src/main/resources/assets/hbm/textures/models/ModelMP.png deleted file mode 100644 index a094364f6..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelMP.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelMP40.png b/src/main/resources/assets/hbm/textures/models/ModelMP40.png deleted file mode 100644 index 497ef5c81..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelMP40.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelMP_alt.png b/src/main/resources/assets/hbm/textures/models/ModelMP_alt.png deleted file mode 100644 index 4fd02a6e8..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelMP_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelNightmare.png b/src/main/resources/assets/hbm/textures/models/ModelNightmare.png deleted file mode 100644 index f3186dd48..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelNightmare.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelNightmare2.png b/src/main/resources/assets/hbm/textures/models/ModelNightmare2.png deleted file mode 100644 index d05821401..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelNightmare2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelOSIPR.png b/src/main/resources/assets/hbm/textures/models/ModelOSIPR.png deleted file mode 100644 index f8f8b637b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelOSIPR.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPip.png b/src/main/resources/assets/hbm/textures/models/ModelPip.png deleted file mode 100755 index 40c63f03e..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPip.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPipGrey.png b/src/main/resources/assets/hbm/textures/models/ModelPipGrey.png deleted file mode 100644 index 9173393a2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPipGrey.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPipNoScope.png b/src/main/resources/assets/hbm/textures/models/ModelPipNoScope.png deleted file mode 100644 index f912f4df1..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPipNoScope.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPipRed.png b/src/main/resources/assets/hbm/textures/models/ModelPipRed.png deleted file mode 100644 index 2488821dd..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPipRed.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPipSilver.png b/src/main/resources/assets/hbm/textures/models/ModelPipSilver.png deleted file mode 100644 index 0e874ca24..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPipSilver.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelPylon_alt.png b/src/main/resources/assets/hbm/textures/models/ModelPylon_alt.png deleted file mode 100755 index 65cf39dad..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelPylon_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRPG.png b/src/main/resources/assets/hbm/textures/models/ModelRPG.png deleted file mode 100644 index a7323d537..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRPG.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolver.png b/src/main/resources/assets/hbm/textures/models/ModelRevolver.png deleted file mode 100644 index 34fd41af0..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolver.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverGold.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverGold.png deleted file mode 100644 index 647bcea5b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverGold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverIron.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverIron.png deleted file mode 100644 index 594005b8e..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverIron.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverLead.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverLead.png deleted file mode 100644 index 69ed11934..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverLead.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverSaturnite.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverSaturnite.png deleted file mode 100644 index 508d1e8b6..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverSaturnite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRevolverSchrabidium.png b/src/main/resources/assets/hbm/textures/models/ModelRevolverSchrabidium.png deleted file mode 100644 index 8254ead18..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRevolverSchrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelRocketOld.png b/src/main/resources/assets/hbm/textures/models/ModelRocketOld.png deleted file mode 100644 index 36835fb13..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelRocketOld.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelSkyStinger.png b/src/main/resources/assets/hbm/textures/models/ModelSkyStinger.png deleted file mode 100644 index 6b0f85daa..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelSkyStinger.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelSpark.png b/src/main/resources/assets/hbm/textures/models/ModelSpark.png deleted file mode 100755 index fd6c47bee..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelSpark.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelStinger.png b/src/main/resources/assets/hbm/textures/models/ModelStinger.png deleted file mode 100644 index c296d5f79..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelStinger.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelTwiGun.png b/src/main/resources/assets/hbm/textures/models/ModelTwiGun.png deleted file mode 100755 index 403da0f56..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelTwiGun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelUboinik.png b/src/main/resources/assets/hbm/textures/models/ModelUboinik.png deleted file mode 100644 index 9d8fd122b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelUboinik.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelUzi.png b/src/main/resources/assets/hbm/textures/models/ModelUzi.png deleted file mode 100644 index c288d9495..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelUzi.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelUziBarrel.png b/src/main/resources/assets/hbm/textures/models/ModelUziBarrel.png deleted file mode 100644 index 110ebd5d4..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelUziBarrel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelUziSaturnite.png b/src/main/resources/assets/hbm/textures/models/ModelUziSaturnite.png deleted file mode 100644 index f2d727f69..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelUziSaturnite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelUziSilencer.png b/src/main/resources/assets/hbm/textures/models/ModelUziSilencer.png deleted file mode 100644 index ef102143d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelUziSilencer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelXVL1456.png b/src/main/resources/assets/hbm/textures/models/ModelXVL1456.png deleted file mode 100644 index 0faabee24..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelXVL1456.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelZOMG.png b/src/main/resources/assets/hbm/textures/models/ModelZOMG.png deleted file mode 100644 index 941fae77b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelZOMG.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/PlasmaBeam.png b/src/main/resources/assets/hbm/textures/models/PlasmaBeam.png deleted file mode 100644 index 608752d56..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/PlasmaBeam.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/SteelBeam.png b/src/main/resources/assets/hbm/textures/models/SteelBeam.png deleted file mode 100644 index aca7ef40f..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/SteelBeam.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/SteelCorner.png b/src/main/resources/assets/hbm/textures/models/SteelCorner.png deleted file mode 100644 index 585b3bd3d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/SteelCorner.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/SteelScaffold.png b/src/main/resources/assets/hbm/textures/models/SteelScaffold.png deleted file mode 100644 index 9ea7ecbea..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/SteelScaffold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/SteelWall.png b/src/main/resources/assets/hbm/textures/models/SteelWall.png deleted file mode 100644 index 7ea292660..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/SteelWall.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/TestObj.png b/src/main/resources/assets/hbm/textures/models/TestObj.png deleted file mode 100644 index e4b7504dc..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/TestObj.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/TheGadget3_tex.png b/src/main/resources/assets/hbm/textures/models/TheGadget3_tex.png deleted file mode 100644 index 81b6e10d6..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/TheGadget3_tex.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/TsarBomba.png b/src/main/resources/assets/hbm/textures/models/TsarBomba.png deleted file mode 100644 index ff12919c1..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/TsarBomba.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ams_base.png b/src/main/resources/assets/hbm/textures/models/ams_base.png deleted file mode 100644 index 0bc8b2ac9..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ams_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ams_destroyed.png b/src/main/resources/assets/hbm/textures/models/ams_destroyed.png deleted file mode 100644 index 2160120ae..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ams_destroyed.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ams_emitter.png b/src/main/resources/assets/hbm/textures/models/ams_emitter.png deleted file mode 100644 index 3f0781cb8..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ams_emitter.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ams_limiter.png b/src/main/resources/assets/hbm/textures/models/ams_limiter.png deleted file mode 100644 index 16533c720..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ams_limiter.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/b29_2.png b/src/main/resources/assets/hbm/textures/models/b29_2.png index 1469099df..2400b676f 100644 Binary files a/src/main/resources/assets/hbm/textures/models/b29_2.png and b/src/main/resources/assets/hbm/textures/models/b29_2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombletThetaTexture.png b/src/main/resources/assets/hbm/textures/models/bombletThetaTexture.png deleted file mode 100755 index e4f809d0d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/bombletThetaTexture.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/gadget.png b/src/main/resources/assets/hbm/textures/models/bombs/gadget.png new file mode 100644 index 000000000..684d42e4b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/gadget.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_desert.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_desert.png new file mode 100644 index 000000000..e489023d6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_desert.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_grass.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_grass.png new file mode 100644 index 000000000..293089481 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_grass.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_snow.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_snow.png new file mode 100644 index 000000000..56400bed9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_snow.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_stone.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_stone.png new file mode 100644 index 000000000..fafacb3f5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_stone.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_shrapnel.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_shrapnel.png new file mode 100644 index 000000000..2956d1bde Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_shrapnel.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/tsar.png b/src/main/resources/assets/hbm/textures/models/bombs/tsar.png new file mode 100644 index 000000000..479e5c44b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/tsar.png differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/CapeAdam.png b/src/main/resources/assets/hbm/textures/models/capes/CapeAdam.png index 5225fc86d..1282cfb02 100644 Binary files a/src/main/resources/assets/hbm/textures/models/capes/CapeAdam.png and b/src/main/resources/assets/hbm/textures/models/capes/CapeAdam.png differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/CapeAlcater.png b/src/main/resources/assets/hbm/textures/models/capes/CapeAlcater.png new file mode 100644 index 000000000..0d883299e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/capes/CapeAlcater.png differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/CapeHbm.png b/src/main/resources/assets/hbm/textures/models/capes/CapeHbm.png deleted file mode 100644 index 3a189322f..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/capes/CapeHbm.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/CapeJame.png b/src/main/resources/assets/hbm/textures/models/capes/CapeJame.png new file mode 100644 index 000000000..4a7615d18 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/capes/CapeJame.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png b/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png new file mode 100644 index 000000000..3085d29d2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png b/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png new file mode 100644 index 000000000..9fa8b809f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/qe_containment_decal.png b/src/main/resources/assets/hbm/textures/models/doors/qe_containment_decal.png new file mode 100644 index 000000000..cd095da96 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/qe_containment_decal.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/qe_sliding_door.png b/src/main/resources/assets/hbm/textures/models/doors/qe_sliding_door.png new file mode 100644 index 000000000..f46977bcb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/qe_sliding_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/round_airlock_door.png b/src/main/resources/assets/hbm/textures/models/doors/round_airlock_door.png new file mode 100644 index 000000000..c5bafb762 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/round_airlock_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/secure_access_door.png b/src/main/resources/assets/hbm/textures/models/doors/secure_access_door.png new file mode 100644 index 000000000..108b7cefd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/secure_access_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/silo_hatch.png b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch.png new file mode 100644 index 000000000..7a85f0e33 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_base.png b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_base.png new file mode 100644 index 000000000..f0eecee56 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_base.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large.png b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large.png new file mode 100644 index 000000000..e9cbcc6bb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large_base.png b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large_base.png new file mode 100644 index 000000000..90be104aa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/silo_hatch_large_base.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door.png b/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door.png new file mode 100644 index 000000000..20d572d21 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant1.png b/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant1.png new file mode 100644 index 000000000..9d10aa5e5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant1.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant2.png b/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant2.png new file mode 100644 index 000000000..8a327955d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png b/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png new file mode 100644 index 000000000..9b64dbfe2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/water_door.png b/src/main/resources/assets/hbm/textures/models/doors/water_door.png new file mode 100644 index 000000000..1db668c8e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/water_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/dornier_0.png b/src/main/resources/assets/hbm/textures/models/dornier_0.png deleted file mode 100644 index c5552e2b8..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/dornier_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/dornier_3.png b/src/main/resources/assets/hbm/textures/models/dornier_3.png deleted file mode 100644 index 00c8985cb..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/dornier_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/Ring2.png b/src/main/resources/assets/hbm/textures/models/explosion/Ring2.png deleted file mode 100644 index 89bc8bca5..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/Ring2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire.png deleted file mode 100644 index 0ac005e45..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball.png deleted file mode 100644 index f3be1a1bd..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/horse/numbernine.png b/src/main/resources/assets/hbm/textures/models/horse/numbernine.png new file mode 100644 index 000000000..5f82142e0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/horse/numbernine.png differ diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png new file mode 100644 index 000000000..25763b61e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/launchpad/erector_abm.png differ diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png new file mode 100644 index 000000000..7d1dcb08a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/launchpad/erector_atlas.png differ diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_huge.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_huge.png new file mode 100644 index 000000000..7b26d7fd2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/launchpad/erector_huge.png differ diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_micro.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_micro.png new file mode 100644 index 000000000..ca36504d1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/launchpad/erector_micro.png differ diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_strong.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_strong.png new file mode 100644 index 000000000..4b32f2162 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/launchpad/erector_strong.png differ diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png b/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png new file mode 100644 index 000000000..f4cea5f79 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/launchpad/erector_v2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/pad.png b/src/main/resources/assets/hbm/textures/models/launchpad/pad.png new file mode 100644 index 000000000..6f908dc2c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/launchpad/pad.png differ diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/silo.png b/src/main/resources/assets/hbm/textures/models/launchpad/silo.png new file mode 100644 index 000000000..8063befa8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/launchpad/silo.png differ diff --git a/src/main/resources/assets/hbm/textures/models/launchpad/silo_rusted.png b/src/main/resources/assets/hbm/textures/models/launchpad/silo_rusted.png new file mode 100644 index 000000000..9a423adaf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/launchpad/silo_rusted.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/acidizer.png b/src/main/resources/assets/hbm/textures/models/machines/acidizer.png new file mode 100644 index 000000000..a82223f45 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/acidizer.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/ammo_press.png b/src/main/resources/assets/hbm/textures/models/machines/ammo_press.png new file mode 100644 index 000000000..77c7930ae Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/ammo_press.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/arc_furnace.png b/src/main/resources/assets/hbm/textures/models/machines/arc_furnace.png new file mode 100644 index 000000000..f5301e2e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/arc_furnace.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png b/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png new file mode 100644 index 000000000..7dc4193e8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/ashpit.png b/src/main/resources/assets/hbm/textures/models/machines/ashpit.png new file mode 100644 index 000000000..96dcf87b2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/ashpit.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/chimney_brick.png b/src/main/resources/assets/hbm/textures/models/machines/chimney_brick.png new file mode 100644 index 000000000..104edc2b4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/chimney_brick.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/chimney_industrial.png b/src/main/resources/assets/hbm/textures/models/machines/chimney_industrial.png new file mode 100644 index 000000000..e89a56543 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/chimney_industrial.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/condenser.png b/src/main/resources/assets/hbm/textures/models/machines/condenser.png new file mode 100644 index 000000000..cb3573db1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/condenser.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/conveyor_press.png b/src/main/resources/assets/hbm/textures/models/machines/conveyor_press.png new file mode 100644 index 000000000..6464d8f83 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/conveyor_press.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/conveyor_press_belt.png b/src/main/resources/assets/hbm/textures/models/machines/conveyor_press_belt.png new file mode 100644 index 000000000..e99f266f0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/conveyor_press_belt.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png b/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png index b10a0d1db..6cfaeb008 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png and b/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/derrick.png b/src/main/resources/assets/hbm/textures/models/machines/derrick.png index c962d2c70..e71af257a 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/derrick.png and b/src/main/resources/assets/hbm/textures/models/machines/derrick.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/drain.png b/src/main/resources/assets/hbm/textures/models/machines/drain.png new file mode 100644 index 000000000..bb1580c3a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/drain.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone.png b/src/main/resources/assets/hbm/textures/models/machines/drone.png new file mode 100644 index 000000000..66c3240ba Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/drone.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone_express.png b/src/main/resources/assets/hbm/textures/models/machines/drone_express.png new file mode 100644 index 000000000..af1d99522 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/drone_express.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone_request.png b/src/main/resources/assets/hbm/textures/models/machines/drone_request.png new file mode 100644 index 000000000..314d79655 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/drone_request.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png b/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png new file mode 100644 index 000000000..36fefae3b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/fel.png b/src/main/resources/assets/hbm/textures/models/machines/fel.png index d3e0ed944..c0830a7c4 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/fel.png and b/src/main/resources/assets/hbm/textures/models/machines/fel.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/floodlight.png b/src/main/resources/assets/hbm/textures/models/machines/floodlight.png new file mode 100644 index 000000000..5dcd50afb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/floodlight.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/hydrotreater.png b/src/main/resources/assets/hbm/textures/models/machines/hydrotreater.png new file mode 100644 index 000000000..e661b90cf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/hydrotreater.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/icf.png b/src/main/resources/assets/hbm/textures/models/machines/icf.png new file mode 100644 index 000000000..511e78779 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/icf.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/igen.png b/src/main/resources/assets/hbm/textures/models/machines/igen.png index 571094da1..94b157a95 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/igen.png and b/src/main/resources/assets/hbm/textures/models/machines/igen.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/industrial_boiler.png b/src/main/resources/assets/hbm/textures/models/machines/industrial_boiler.png new file mode 100644 index 000000000..92c535e6e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/industrial_boiler.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/lpw2.png b/src/main/resources/assets/hbm/textures/models/machines/lpw2.png new file mode 100644 index 000000000..4b0ec544c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/lpw2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/lpw2_term.png b/src/main/resources/assets/hbm/textures/models/machines/lpw2_term.png new file mode 100644 index 000000000..d969c507e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/lpw2_term.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/lpw2_term_error.png b/src/main/resources/assets/hbm/textures/models/machines/lpw2_term_error.png new file mode 100644 index 000000000..bb6496746 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/lpw2_term_error.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/ore_slopper.png b/src/main/resources/assets/hbm/textures/models/machines/ore_slopper.png new file mode 100644 index 000000000..8505a178e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/ore_slopper.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png b/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png new file mode 100644 index 000000000..ca6baef2d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/pump_steam.png b/src/main/resources/assets/hbm/textures/models/machines/pump_steam.png new file mode 100644 index 000000000..8a1306035 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/pump_steam.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/pyrooven.png b/src/main/resources/assets/hbm/textures/models/machines/pyrooven.png new file mode 100644 index 000000000..8dd9c81c2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/pyrooven.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/radar_large.png b/src/main/resources/assets/hbm/textures/models/machines/radar_large.png new file mode 100644 index 000000000..e59f20723 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/radar_large.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/radar_screen.png b/src/main/resources/assets/hbm/textures/models/machines/radar_screen.png new file mode 100644 index 000000000..82e959a1c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/radar_screen.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/rotary_furnace.png b/src/main/resources/assets/hbm/textures/models/machines/rotary_furnace.png new file mode 100644 index 000000000..851cf91ab Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/rotary_furnace.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/soldering_station.png b/src/main/resources/assets/hbm/textures/models/machines/soldering_station.png new file mode 100644 index 000000000..81f5befa5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/soldering_station.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/stirling_creative.png b/src/main/resources/assets/hbm/textures/models/machines/stirling_creative.png new file mode 100644 index 000000000..9ba16b6a3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/stirling_creative.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/strand_caster.png b/src/main/resources/assets/hbm/textures/models/machines/strand_caster.png new file mode 100644 index 000000000..96f371d95 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/strand_caster.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/telex.png b/src/main/resources/assets/hbm/textures/models/machines/telex.png new file mode 100644 index 000000000..3cc38b488 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/telex.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png b/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png deleted file mode 100644 index 73af545d4..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/wood_burner.png b/src/main/resources/assets/hbm/textures/models/machines/wood_burner.png new file mode 100644 index 000000000..282ac5a5f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/wood_burner.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/zpe.png b/src/main/resources/assets/hbm/textures/models/machines/zpe.png deleted file mode 100644 index f11bb8995..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/machines/zpe.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/mas.png b/src/main/resources/assets/hbm/textures/models/mas.png new file mode 100644 index 000000000..a39ae81a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/mas.png differ diff --git a/src/main/resources/assets/hbm/textures/models/mine_ap.png b/src/main/resources/assets/hbm/textures/models/mine_ap.png deleted file mode 100644 index 073f2a657..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/mine_ap.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/mine_he.png b/src/main/resources/assets/hbm/textures/models/mine_he.png deleted file mode 100644 index d0305e489..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/mine_he.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/mine_shrap.png b/src/main/resources/assets/hbm/textures/models/mine_shrap.png deleted file mode 100644 index 6e89e8bc8..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/mine_shrap.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/mining_drill.png b/src/main/resources/assets/hbm/textures/models/mining_drill.png deleted file mode 100755 index c4c2f2c65..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/mining_drill.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileAA.png b/src/main/resources/assets/hbm/textures/models/missileAA.png deleted file mode 100644 index 0c74ad150..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileAA.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileEndo.png b/src/main/resources/assets/hbm/textures/models/missileEndo.png deleted file mode 100644 index df6d25975..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileEndo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileExo.png b/src/main/resources/assets/hbm/textures/models/missileExo.png deleted file mode 100644 index 678073b96..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileExo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_BU.png b/src/main/resources/assets/hbm/textures/models/missileHuge_BU.png deleted file mode 100644 index 2df487384..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileHuge_BU.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_CL.png b/src/main/resources/assets/hbm/textures/models/missileHuge_CL.png deleted file mode 100644 index cba5500d5..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileHuge_CL.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_HE.png b/src/main/resources/assets/hbm/textures/models/missileHuge_HE.png deleted file mode 100644 index 2e647789c..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileHuge_HE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_IN.png b/src/main/resources/assets/hbm/textures/models/missileHuge_IN.png deleted file mode 100644 index 0cb6be630..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileHuge_IN.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileMIRV.png b/src/main/resources/assets/hbm/textures/models/missileMIRV.png deleted file mode 100644 index dd01c3d04..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileMIRV.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileMicro.png b/src/main/resources/assets/hbm/textures/models/missileMicro.png deleted file mode 100644 index d86823cbc..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileMicro.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileMicroBHole.png b/src/main/resources/assets/hbm/textures/models/missileMicroBHole.png deleted file mode 100644 index f76cc8c55..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileMicroBHole.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileMicroEMP.png b/src/main/resources/assets/hbm/textures/models/missileMicroEMP.png deleted file mode 100644 index 43135573a..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileMicroEMP.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileMicroSchrab.png b/src/main/resources/assets/hbm/textures/models/missileMicroSchrab.png deleted file mode 100644 index e367ddd62..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileMicroSchrab.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileNuclear.png b/src/main/resources/assets/hbm/textures/models/missileNuclear.png deleted file mode 100644 index 3ff7998b2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileNuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missilePad.png b/src/main/resources/assets/hbm/textures/models/missilePad.png deleted file mode 100644 index 03a80eeb3..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missilePad.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_BU.png b/src/main/resources/assets/hbm/textures/models/missileStrong_BU.png deleted file mode 100644 index 081321cca..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_BU.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_CL.png b/src/main/resources/assets/hbm/textures/models/missileStrong_CL.png deleted file mode 100644 index 0c86da908..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_CL.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_EMP.png b/src/main/resources/assets/hbm/textures/models/missileStrong_EMP.png deleted file mode 100644 index a981e35a8..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_EMP.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_HE.png b/src/main/resources/assets/hbm/textures/models/missileStrong_HE.png deleted file mode 100644 index fb7624aa1..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_HE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_IN.png b/src/main/resources/assets/hbm/textures/models/missileStrong_IN.png deleted file mode 100644 index 3578037af..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_IN.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_BU.png b/src/main/resources/assets/hbm/textures/models/missileV2_BU.png deleted file mode 100644 index 48a2bcda9..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileV2_BU.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_CL.png b/src/main/resources/assets/hbm/textures/models/missileV2_CL.png deleted file mode 100644 index f373109a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileV2_CL.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_HE.png b/src/main/resources/assets/hbm/textures/models/missileV2_HE.png deleted file mode 100644 index bf8e01d18..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileV2_HE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_IN.png b/src/main/resources/assets/hbm/textures/models/missileV2_IN.png deleted file mode 100644 index 4b01e70d2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileV2_IN.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_abm.png b/src/main/resources/assets/hbm/textures/models/missile_abm.png new file mode 100644 index 000000000..0b56f1d54 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_abm.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday.png b/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday.png new file mode 100644 index 000000000..5166b956e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday_weathered.png b/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday_weathered.png new file mode 100644 index 000000000..1b3863da6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_atlas_doomsday_weathered.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_atlas_nuclear.png b/src/main/resources/assets/hbm/textures/models/missile_atlas_nuclear.png new file mode 100644 index 000000000..0c2b429d0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_atlas_nuclear.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_atlas_tectonic.png b/src/main/resources/assets/hbm/textures/models/missile_atlas_tectonic.png new file mode 100644 index 000000000..d4fe9c9c0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_atlas_tectonic.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_atlas_thermo.png b/src/main/resources/assets/hbm/textures/models/missile_atlas_thermo.png new file mode 100644 index 000000000..532d0e0c8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_atlas_thermo.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge.png b/src/main/resources/assets/hbm/textures/models/missile_huge.png new file mode 100644 index 000000000..30eff35ce Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_huge.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge_bu.png b/src/main/resources/assets/hbm/textures/models/missile_huge_bu.png new file mode 100644 index 000000000..fdc91812e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_huge_bu.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge_cl.png b/src/main/resources/assets/hbm/textures/models/missile_huge_cl.png new file mode 100644 index 000000000..9047f2918 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_huge_cl.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge_inc.png b/src/main/resources/assets/hbm/textures/models/missile_huge_inc.png new file mode 100644 index 000000000..be1ed784a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_huge_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_micro.png b/src/main/resources/assets/hbm/textures/models/missile_micro.png new file mode 100644 index 000000000..6ad9c5d03 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_micro.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_micro_bhole.png b/src/main/resources/assets/hbm/textures/models/missile_micro_bhole.png new file mode 100644 index 000000000..0422b8497 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_micro_bhole.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_micro_emp.png b/src/main/resources/assets/hbm/textures/models/missile_micro_emp.png new file mode 100644 index 000000000..138c12f50 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_micro_emp.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_micro_schrab.png b/src/main/resources/assets/hbm/textures/models/missile_micro_schrab.png new file mode 100644 index 000000000..6af9249a1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_micro_schrab.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_micro_taint.png b/src/main/resources/assets/hbm/textures/models/missile_micro_taint.png new file mode 100644 index 000000000..099d94ece Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_micro_taint.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_stealth.png b/src/main/resources/assets/hbm/textures/models/missile_stealth.png new file mode 100644 index 000000000..2dbcbe3a9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_stealth.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong.png b/src/main/resources/assets/hbm/textures/models/missile_strong.png new file mode 100644 index 000000000..25fb3e3c3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_bu.png b/src/main/resources/assets/hbm/textures/models/missile_strong_bu.png new file mode 100644 index 000000000..e2521a650 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong_bu.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_cl.png b/src/main/resources/assets/hbm/textures/models/missile_strong_cl.png new file mode 100644 index 000000000..5f0236417 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong_cl.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_emp.png b/src/main/resources/assets/hbm/textures/models/missile_strong_emp.png new file mode 100644 index 000000000..cbb22f1bc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong_emp.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_inc.png b/src/main/resources/assets/hbm/textures/models/missile_strong_inc.png new file mode 100644 index 000000000..c9a536443 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_test.png b/src/main/resources/assets/hbm/textures/models/missile_test.png new file mode 100644 index 000000000..3138a80f5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_test.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2.png b/src/main/resources/assets/hbm/textures/models/missile_v2.png new file mode 100644 index 000000000..9959468ec Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_bu.png b/src/main/resources/assets/hbm/textures/models/missile_v2_bu.png new file mode 100644 index 000000000..84ca714b3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2_bu.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_cl.png b/src/main/resources/assets/hbm/textures/models/missile_v2_cl.png new file mode 100644 index 000000000..7399458d6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2_cl.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png b/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png new file mode 100644 index 000000000..191b0c97f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_inc.png b/src/main/resources/assets/hbm/textures/models/missile_v2_inc.png new file mode 100644 index 000000000..18faa37ef Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png b/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png new file mode 100644 index 000000000..84abea964 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/network/pylon_medium.png differ diff --git a/src/main/resources/assets/hbm/textures/models/network/pylon_medium_steel.png b/src/main/resources/assets/hbm/textures/models/network/pylon_medium_steel.png new file mode 100644 index 000000000..0665da1e7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/network/pylon_medium_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/models/network/wire.png b/src/main/resources/assets/hbm/textures/models/network/wire.png new file mode 100644 index 000000000..f6aae8f3f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/network/wire.png differ diff --git a/src/main/resources/assets/hbm/textures/models/network/wire_greyscale.png b/src/main/resources/assets/hbm/textures/models/network/wire_greyscale.png new file mode 100644 index 000000000..6aa158ed6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/network/wire_greyscale.png differ diff --git a/src/main/resources/assets/hbm/textures/models/press_body_2.png b/src/main/resources/assets/hbm/textures/models/press_body_2.png deleted file mode 100644 index b67125d1f..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/press_body_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/press_body_alt.png b/src/main/resources/assets/hbm/textures/models/press_body_alt.png deleted file mode 100644 index 62c11e6d3..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/press_body_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/press_head_2.png b/src/main/resources/assets/hbm/textures/models/press_head_2.png deleted file mode 100644 index c40599a53..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/press_head_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/press_head_new.png b/src/main/resources/assets/hbm/textures/models/press_head_new.png deleted file mode 100644 index d54d6c2e1..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/press_head_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/projectiles/leadburster.png b/src/main/resources/assets/hbm/textures/models/projectiles/leadburster.png new file mode 100644 index 000000000..281f6ca1f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/projectiles/leadburster.png differ diff --git a/src/main/resources/assets/hbm/textures/models/radar_base.png b/src/main/resources/assets/hbm/textures/models/radar_base.png deleted file mode 100644 index e87d6bb2f..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/radar_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/radar_head.png b/src/main/resources/assets/hbm/textures/models/radar_head.png deleted file mode 100644 index 5f5b752da..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/radar_head.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/sat_base_old.png b/src/main/resources/assets/hbm/textures/models/sat_base_old.png deleted file mode 100644 index 2cb645e09..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/sat_base_old.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/selenium_engine_body.png b/src/main/resources/assets/hbm/textures/models/selenium_engine_body.png deleted file mode 100644 index 22dc10490..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/selenium_engine_body.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/selenium_engine_piston.png b/src/main/resources/assets/hbm/textures/models/selenium_engine_piston.png deleted file mode 100644 index ca96a1bb1..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/selenium_engine_piston.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/selenium_engine_rotor.png b/src/main/resources/assets/hbm/textures/models/selenium_engine_rotor.png deleted file mode 100644 index d97da3598..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/selenium_engine_rotor.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HOTBLOOD.png b/src/main/resources/assets/hbm/textures/models/tank/tank_BLOOD_HOT.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/tank/tank_HOTBLOOD.png rename to src/main/resources/assets/hbm/textures/models/tank/tank_BLOOD_HOT.png diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_CRACKOIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_CRACKOIL_DS.png new file mode 100644 index 000000000..b86200461 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_CRACKOIL_DS.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HEAVYWATER_HOT.png b/src/main/resources/assets/hbm/textures/models/tank/tank_HEAVYWATER_HOT.png new file mode 100644 index 000000000..09ce7b6d2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_HEAVYWATER_HOT.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HELIUM4.png b/src/main/resources/assets/hbm/textures/models/tank/tank_HELIUM4.png new file mode 100644 index 000000000..8ca2d648f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_HELIUM4.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HOTCRACKOIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_HOTCRACKOIL_DS.png new file mode 100644 index 000000000..0238ff593 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_HOTCRACKOIL_DS.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HOTOIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_HOTOIL_DS.png new file mode 100644 index 000000000..c616db15a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_HOTOIL_DS.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_LEAD.png b/src/main/resources/assets/hbm/textures/models/tank/tank_LEAD.png new file mode 100644 index 000000000..ee86122ea Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_LEAD.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_LEAD_HOT.png b/src/main/resources/assets/hbm/textures/models/tank/tank_LEAD_HOT.png new file mode 100644 index 000000000..a043b9a4d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_LEAD_HOT.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_LIGHTOIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_LIGHTOIL_DS.png new file mode 100644 index 000000000..99d0f472d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_LIGHTOIL_DS.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_NAPHTHA_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_NAPHTHA_DS.png new file mode 100644 index 000000000..6c1558ffb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_NAPHTHA_DS.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_OIL_DS.png b/src/main/resources/assets/hbm/textures/models/tank/tank_OIL_DS.png new file mode 100644 index 000000000..330e31eed Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_OIL_DS.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_ACID.png b/src/main/resources/assets/hbm/textures/models/tank/tank_PEROXIDE.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/tank/tank_ACID.png rename to src/main/resources/assets/hbm/textures/models/tank/tank_PEROXIDE.png diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_SLOP.png b/src/main/resources/assets/hbm/textures/models/tank/tank_SLOP.png new file mode 100644 index 000000000..7e99ca01c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_SLOP.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM.png b/src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM.png new file mode 100644 index 000000000..a17ee9e49 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM_HOT.png b/src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM_HOT.png new file mode 100644 index 000000000..7a9e921cc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM_HOT.png differ diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_VITRIOL.png b/src/main/resources/assets/hbm/textures/models/tank/tank_VITRIOL.png new file mode 100644 index 000000000..12dd41f20 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/tank/tank_VITRIOL.png differ diff --git a/src/main/resources/assets/hbm/textures/models/telex.png b/src/main/resources/assets/hbm/textures/models/telex.png deleted file mode 100644 index 2ba7d96c7..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/telex.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/test_container_double.png b/src/main/resources/assets/hbm/textures/models/test_container_double.png deleted file mode 100644 index 182a96c72..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/test_container_double.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/test_container_single.png b/src/main/resources/assets/hbm/textures/models/test_container_single.png deleted file mode 100644 index c00662549..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/test_container_single.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/textureIGenRotor.png b/src/main/resources/assets/hbm/textures/models/textureIGenRotor.png deleted file mode 100644 index 4cf0c7ddf..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/textureIGenRotor.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/adam29.png b/src/main/resources/assets/hbm/textures/models/trinkets/adam29.png index bab400b53..0aa2f83cc 100644 Binary files a/src/main/resources/assets/hbm/textures/models/trinkets/adam29.png and b/src/main/resources/assets/hbm/textures/models/trinkets/adam29.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/frizzle.png b/src/main/resources/assets/hbm/textures/models/trinkets/frizzle.png index 9f86fdd63..0e82cf285 100644 Binary files a/src/main/resources/assets/hbm/textures/models/trinkets/frizzle.png and b/src/main/resources/assets/hbm/textures/models/trinkets/frizzle.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/glow.png b/src/main/resources/assets/hbm/textures/models/trinkets/glow.png new file mode 100644 index 000000000..2136ef651 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/glow.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png b/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png new file mode 100644 index 000000000..554a434e2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/lantern_rusty.png b/src/main/resources/assets/hbm/textures/models/trinkets/lantern_rusty.png new file mode 100644 index 000000000..7f734a12b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/lantern_rusty.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/mellowrpg8.png b/src/main/resources/assets/hbm/textures/models/trinkets/mellowrpg8.png new file mode 100644 index 000000000..efa5d6879 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/mellowrpg8.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/peep.png b/src/main/resources/assets/hbm/textures/models/trinkets/peep.png new file mode 100644 index 000000000..9e8551ba8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/peep.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/pooh.png b/src/main/resources/assets/hbm/textures/models/trinkets/pooh.png new file mode 100644 index 000000000..e1d9a60d6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/pooh.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe.png b/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe.png index 6be391ef7..eee84d7ca 100644 Binary files a/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe.png and b/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_features.png b/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_features.png new file mode 100644 index 000000000..f9d9fc97d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_features.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_glass.png b/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_glass.png new file mode 100644 index 000000000..e714aa532 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/snowglobe_glass.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/yomi.png b/src/main/resources/assets/hbm/textures/models/trinkets/yomi.png new file mode 100644 index 000000000..03acaa3ed Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/yomi.png differ diff --git a/src/main/resources/assets/hbm/textures/models/truck_busted.png b/src/main/resources/assets/hbm/textures/models/truck_busted.png deleted file mode 100644 index e19710622..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/truck_busted.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/sentry_damaged.png b/src/main/resources/assets/hbm/textures/models/turrets/sentry_damaged.png new file mode 100644 index 000000000..ba6a61a55 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/turrets/sentry_damaged.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/_blacksand.png b/src/main/resources/assets/hbm/textures/models/weapons/_blacksand.png new file mode 100644 index 000000000..3f40b1154 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/_blacksand.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/am180.png b/src/main/resources/assets/hbm/textures/models/weapons/am180.png new file mode 100644 index 000000000..dec10075a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/am180.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png b/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png new file mode 100644 index 000000000..2381fab49 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver.png b/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver.png index 32a05672c..b8590707a 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver.png and b/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver_atlas.png b/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver_atlas.png new file mode 100644 index 000000000..32a05672c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver_atlas.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/bolter_digamma.png b/src/main/resources/assets/hbm/textures/models/weapons/bolter_digamma.png deleted file mode 100644 index 75f234d43..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/bolter_digamma.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/c130_0.png b/src/main/resources/assets/hbm/textures/models/weapons/c130_0.png new file mode 100644 index 000000000..04729bcdf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/c130_0.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/carbine.png b/src/main/resources/assets/hbm/textures/models/weapons/carbine.png deleted file mode 100644 index 49b5f2796..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/carbine.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/coilgun.png b/src/main/resources/assets/hbm/textures/models/weapons/coilgun.png new file mode 100644 index 000000000..8dfb5eaa8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/coilgun.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/congolake.png b/src/main/resources/assets/hbm/textures/models/weapons/congolake.png new file mode 100644 index 000000000..849c27b4e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/congolake.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png index 93e7958ea..b72c6d3fe 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png index f495fbdfa..7650662e7 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_1.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_1.png index 66fccb0e2..e73121b40 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_1.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_1.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png index 0f3ba1883..6dc466718 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_11.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_11.png index 1e97f6252..351ac3108 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_11.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_11.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_12.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_12.png index d7c3cbfb5..ccacf821c 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_12.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_12.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_13.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_13.png index 2d8af183b..47a8d042a 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_13.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_13.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png index 4270afad1..a1938e8e9 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_2.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_2.png index a43b64025..b01baf16b 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_2.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png index cae11f3fb..16bdc3c2d 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png index 44bc06431..ce4d89448 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png index 900289ac1..0a2f9cfc5 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_6.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_6.png index 79f9f8ced..c94c65d92 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_6.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_6.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_7.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_7.png index 6154717c9..322a8e4d5 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_7.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_7.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png index 53cf4aa43..92bbb9308 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png index db86ae059..363f9131f 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png index ac7bde5d9..be363f2a3 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png index 572ed0799..d1c5435fb 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_10.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_10.png index d45d359cc..32aeaa2ed 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_10.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_10.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_11.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_11.png index 1f51708af..79dd01984 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_11.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_11.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_2.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_2.png index 4e5b13375..f64127298 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_2.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png index 71aec62b0..766391aa5 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_4.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_4.png index 2891e0b67..9992b7619 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_4.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_4.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png index c83bb3913..203848086 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png index d4ffd98e2..c6d3580f4 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png index 2b2d05ff5..938405d7c 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png index 1c00d206e..a70ceb815 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png index 73745acb0..3a12cf680 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_empty.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_empty.png index a46db1968..a78876d6e 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_empty.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_empty.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png index 0dcb3691a..bc3d6c1d6 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png index a463074ae..7e13ddbe0 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png index cbeba9730..f24edf0d9 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_3.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_3.png index e6359a185..0a41c0947 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_3.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_3.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_4.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_4.png index dbca1e176..9bba0a39f 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_4.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_4.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_5.png index 0899d7ecb..3fd5fbf76 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_5.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_5.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png index 8f5eaa8d4..9efec8e0a 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png index b0fc60ea3..e8db8d13a 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_8.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_8.png index 2448ba65e..9a30a70c1 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_8.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_8.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png index 61183254e..493a027f2 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png and b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/dani_celestial.png b/src/main/resources/assets/hbm/textures/models/weapons/dani_celestial.png new file mode 100644 index 000000000..ebe3ebd70 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/dani_celestial.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/dani_lunar.png b/src/main/resources/assets/hbm/textures/models/weapons/dani_lunar.png new file mode 100644 index 000000000..4ea531472 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/dani_lunar.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/debug_gun.png b/src/main/resources/assets/hbm/textures/models/weapons/debug_gun.png new file mode 100644 index 000000000..49b083ca9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/debug_gun.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png b/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png index 76a00daa8..f11d9bebb 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png and b/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/double_barrel.png b/src/main/resources/assets/hbm/textures/models/weapons/double_barrel.png new file mode 100644 index 000000000..cc5e054d4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/double_barrel.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/double_barrel_sacred_dragon.png b/src/main/resources/assets/hbm/textures/models/weapons/double_barrel_sacred_dragon.png new file mode 100644 index 000000000..9ccf01cb1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/double_barrel_sacred_dragon.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/fatman.png b/src/main/resources/assets/hbm/textures/models/weapons/fatman.png new file mode 100644 index 000000000..b818f5736 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/fatman.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/fatman_mininuke.png b/src/main/resources/assets/hbm/textures/models/weapons/fatman_mininuke.png new file mode 100644 index 000000000..536780bb2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/fatman_mininuke.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/mg42.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/mg42.png deleted file mode 100644 index ebd226f1d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/ff/mg42.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare.png deleted file mode 100644 index a3cbdbe61..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare_orig.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare_orig.png deleted file mode 100644 index b89b0683c..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/ff/nightmare_orig.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700.png deleted file mode 100644 index a7868015e..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700poly.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700poly.png deleted file mode 100644 index abc88117a..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700poly.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700sat.png b/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700sat.png deleted file mode 100644 index 3b8d95215..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/ff/rem700sat.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flamer.png b/src/main/resources/assets/hbm/textures/models/weapons/flamer.png deleted file mode 100644 index 57f0cb286..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flamer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png new file mode 100644 index 000000000..192380382 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_daybreaker.png b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_daybreaker.png new file mode 100644 index 000000000..abb9a52d9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_daybreaker.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_topaz.png b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_topaz.png new file mode 100644 index 000000000..53c100c73 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_topaz.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flaregun.png b/src/main/resources/assets/hbm/textures/models/weapons/flaregun.png new file mode 100644 index 000000000..248dc94f3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/flaregun.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_barrel.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_barrel.png deleted file mode 100644 index 19b3d2872..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_barrel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_base.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_base.png deleted file mode 100644 index 5b1c03e7b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_body.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_body.png deleted file mode 100644 index dfa1525d9..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_body.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_chamber.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_chamber.png deleted file mode 100644 index be140fef4..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_chamber.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_drum.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_drum.png deleted file mode 100644 index 0655f3918..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_drum.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_gren_tube.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_gren_tube.png deleted file mode 100644 index cbf0e2bd0..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_gren_tube.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_grenades.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_grenades.png deleted file mode 100644 index 06b0307d2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_grenades.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_pivot.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_pivot.png deleted file mode 100644 index 03f921e8d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_pivot.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_stock.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_stock.png deleted file mode 100644 index c395eabd2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_stock.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_top.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_top.png deleted file mode 100644 index d2b1cc2b2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flechette_trigger.png b/src/main/resources/assets/hbm/textures/models/weapons/flechette_trigger.png deleted file mode 100644 index 4eb011a40..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flechette_trigger.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/g3-polymer.png b/src/main/resources/assets/hbm/textures/models/weapons/g3-polymer.png new file mode 100644 index 000000000..02feff6a5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/g3-polymer.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/g3.png b/src/main/resources/assets/hbm/textures/models/weapons/g3.png new file mode 100644 index 000000000..43e9abb39 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/g3.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/glass_cannon_panel.png b/src/main/resources/assets/hbm/textures/models/weapons/glass_cannon_panel.png deleted file mode 100644 index a1e40ff71..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/glass_cannon_panel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/greasegun.png b/src/main/resources/assets/hbm/textures/models/weapons/greasegun.png new file mode 100644 index 000000000..3af33de68 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/greasegun.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/grenade_launcher.png b/src/main/resources/assets/hbm/textures/models/weapons/grenade_launcher.png new file mode 100644 index 000000000..9c37723a2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/grenade_launcher.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/hangman.png b/src/main/resources/assets/hbm/textures/models/weapons/hangman.png new file mode 100644 index 000000000..6f007351f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/hangman.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/heavy_revolver.png b/src/main/resources/assets/hbm/textures/models/weapons/heavy_revolver.png new file mode 100644 index 000000000..c1bf5c1ba Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/heavy_revolver.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/henry.png b/src/main/resources/assets/hbm/textures/models/weapons/henry.png new file mode 100644 index 000000000..d822e7665 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/henry.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/hk69.png b/src/main/resources/assets/hbm/textures/models/weapons/hk69.png deleted file mode 100644 index 41b98d1cb..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/hk69.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/huntsman.png b/src/main/resources/assets/hbm/textures/models/weapons/huntsman.png new file mode 100644 index 000000000..0b40e3aa8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/huntsman.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lag.png b/src/main/resources/assets/hbm/textures/models/weapons/lag.png new file mode 100644 index 000000000..908219059 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/lag.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png b/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png new file mode 100644 index 000000000..7458e6d96 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lent_gun.png b/src/main/resources/assets/hbm/textures/models/weapons/lent_gun.png deleted file mode 100644 index a03177bba..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/lent_gun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/liberator.png b/src/main/resources/assets/hbm/textures/models/weapons/liberator.png new file mode 100644 index 000000000..d900422e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/liberator.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lil_pip.png b/src/main/resources/assets/hbm/textures/models/weapons/lil_pip.png deleted file mode 100644 index 7709cf279..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/lil_pip.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lilmac.png b/src/main/resources/assets/hbm/textures/models/weapons/lilmac.png new file mode 100644 index 000000000..8490d4f2a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/lilmac.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lilmac_plume.png b/src/main/resources/assets/hbm/textures/models/weapons/lilmac_plume.png new file mode 100644 index 000000000..5df1f5069 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/lilmac_plume.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lilmac_scope.png b/src/main/resources/assets/hbm/textures/models/weapons/lilmac_scope.png new file mode 100644 index 000000000..0025df545 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/lilmac_scope.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lunatic_sniper.png b/src/main/resources/assets/hbm/textures/models/weapons/lunatic_sniper.png deleted file mode 100644 index f67942de0..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/lunatic_sniper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/maresleg.png b/src/main/resources/assets/hbm/textures/models/weapons/maresleg.png new file mode 100644 index 000000000..9d8abca1b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/maresleg.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/maresleg_broken.png b/src/main/resources/assets/hbm/textures/models/weapons/maresleg_broken.png new file mode 100644 index 000000000..0e895de19 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/maresleg_broken.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/minigun.png b/src/main/resources/assets/hbm/textures/models/weapons/minigun.png new file mode 100644 index 000000000..26001ba4b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/minigun.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/minigun_lacunae.png b/src/main/resources/assets/hbm/textures/models/weapons/minigun_lacunae.png new file mode 100644 index 000000000..66bfa6d81 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/minigun_lacunae.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/missile_launcher.png b/src/main/resources/assets/hbm/textures/models/weapons/missile_launcher.png new file mode 100644 index 000000000..08a122b8a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/missile_launcher.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/moonlight.png b/src/main/resources/assets/hbm/textures/models/weapons/moonlight.png new file mode 100644 index 000000000..36b7c8dc7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/moonlight.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/novac.png b/src/main/resources/assets/hbm/textures/models/weapons/novac.png deleted file mode 100644 index 58f988ef4..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/novac.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/novac_scope.png b/src/main/resources/assets/hbm/textures/models/weapons/novac_scope.png deleted file mode 100644 index 47a38039d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/novac_scope.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/panzerschreck.png b/src/main/resources/assets/hbm/textures/models/weapons/panzerschreck.png new file mode 100644 index 000000000..fe1d0b071 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/panzerschreck.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/pepperbox.png b/src/main/resources/assets/hbm/textures/models/weapons/pepperbox.png new file mode 100644 index 000000000..2334c4e2c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/pepperbox.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/protege.png b/src/main/resources/assets/hbm/textures/models/weapons/protege.png new file mode 100644 index 000000000..ecfca9109 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/protege.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/red_key.png b/src/main/resources/assets/hbm/textures/models/weapons/red_key.png deleted file mode 100644 index 1ce79923f..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/red_key.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/remington.png b/src/main/resources/assets/hbm/textures/models/weapons/remington.png deleted file mode 100644 index 01935ed26..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/remington.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/sauergun.png b/src/main/resources/assets/hbm/textures/models/weapons/sauergun.png deleted file mode 100644 index 7b06753af..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/sauergun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/sexy.png b/src/main/resources/assets/hbm/textures/models/weapons/sexy.png new file mode 100644 index 000000000..40e151702 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/sexy.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/shredder.png b/src/main/resources/assets/hbm/textures/models/weapons/shredder.png new file mode 100644 index 000000000..d071dd86e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/shredder.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/shredder_orig.png b/src/main/resources/assets/hbm/textures/models/weapons/shredder_orig.png new file mode 100644 index 000000000..98f6bcc34 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/shredder_orig.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/sky_stinger.png b/src/main/resources/assets/hbm/textures/models/weapons/sky_stinger.png deleted file mode 100644 index 2424f2a56..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/sky_stinger.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/spas-12.png b/src/main/resources/assets/hbm/textures/models/weapons/spas-12.png index fac73a983..d501f6e44 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/spas-12.png and b/src/main/resources/assets/hbm/textures/models/weapons/spas-12.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/stg77.png b/src/main/resources/assets/hbm/textures/models/weapons/stg77.png new file mode 100644 index 000000000..6bb0d2949 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/stg77.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/tesla_cannon.png b/src/main/resources/assets/hbm/textures/models/weapons/tesla_cannon.png new file mode 100644 index 000000000..af930f13e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/tesla_cannon.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/thompson.png b/src/main/resources/assets/hbm/textures/models/weapons/thompson.png deleted file mode 100644 index 8ecdedaac..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/thompson.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/torpedo.png b/src/main/resources/assets/hbm/textures/models/weapons/torpedo.png index f7100bbf5..4c0c7abf8 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/torpedo.png and b/src/main/resources/assets/hbm/textures/models/weapons/torpedo.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/twr.png b/src/main/resources/assets/hbm/textures/models/weapons/twr.png deleted file mode 100644 index 57ed6b512..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/twr.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/uzi.png b/src/main/resources/assets/hbm/textures/models/weapons/uzi.png new file mode 100644 index 000000000..ad691a7e9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/uzi.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/vortex.png b/src/main/resources/assets/hbm/textures/models/weapons/vortex.png deleted file mode 100644 index 81e9c1cad..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/vortex.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/particle/skeleton.png b/src/main/resources/assets/hbm/textures/particle/skeleton.png new file mode 100644 index 000000000..184b5853e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/particle/skeleton.png differ diff --git a/src/main/resources/assets/hbm/textures/particle/skoilet.png b/src/main/resources/assets/hbm/textures/particle/skoilet.png new file mode 100644 index 000000000..971df0043 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/particle/skoilet.png differ diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta deleted file mode 100644 index 6476c146a..000000000 --- a/src/main/resources/pack.mcmeta +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pack" : { - "pack_format" : 1, - "description" : "NTM language pack" - }, - "language" : { - "te_ST" : { - "name" : "This is a testing language", - "region" : "ST", - "bidirectional" : false - }, - "en_NT" : { - "name" : "Advanced English", - "region" : "Minecraftia", - "bidirectional" : false - } - } -} diff --git a/tools/export-json-animation-2_79.py b/tools/export-json-animation-2_79.py new file mode 100644 index 000000000..a76a0894f --- /dev/null +++ b/tools/export-json-animation-2_79.py @@ -0,0 +1,300 @@ +# HOW TO USE +# Make sure all your animation actions start on frame 0 and are named as such: +# Name.Part +# and run the export, they'll be split into Animation groups with each part being assigned as a Bus. +# EG. Reload.Body will apply an animation called Reload to the bus called Body +# For best results, make sure your object Transform Mode is set to YZX Euler, so rotations match in-game +# When importing, you can use the Action Editor to assign the imported animations to parts to view and modify them + +bl_info = { + "name": "Export JSON Animation", + "blender": (2, 79, 0), + "category": "Import-Export", +} + +import bpy +import json +import math +import mathutils + +from bpy_extras.io_utils import ExportHelper, ImportHelper +from bpy.props import StringProperty, BoolProperty, EnumProperty +from bpy.types import Operator + + +class ExportJSONAnimation(Operator, ExportHelper): + """Exports an animation in a NTM JSON format""" + bl_idname = "export.ntm_json" # Unique identifier for buttons and menu items to reference. + bl_label = "Export NTM .json" # Display name in the interface. + bl_options = {'REGISTER'} + + # ExportHelper mix-in class uses this. + filename_ext = ".json" + + filter_glob = StringProperty( + default="*.json", + options={'HIDDEN'}, + maxlen=255, # Max internal buffer length, longer would be clamped. + ) + + def execute(self, context): # execute() is called when running the operator. + print("writing JSON data to file...") + f = open(self.filepath, 'w', encoding='utf-8') + + collection = {"anim": {}, "offset": {}, "hierarchy": {}, "rotmode": {}} + dimensions = ["x", "z", "y"] # Swizzled to X, Z, Y + mult = [1, -1, 1] # +X, -Z, +Y + + # Reset to first frame, so our offsets are set to model defaults + # If you get weird offset issues, make sure your model is in its rest pose before exporting + context.scene.frame_set(0) + + animations = collection['anim'] + offsets = collection['offset'] + modes = collection['rotmode'] + hierarchy = collection['hierarchy'] + + actions = bpy.data.actions + for action in actions: + split = action.name.split('.') + if len(split) != 2: + continue + name = split[0] + part = split[1] + + if name not in animations: + animations[name] = {} + + animations[name][part] = {} + animation = animations[name][part] + + # Fetch all the animation data + for fcu in action.fcurves: + dimension = dimensions[fcu.array_index] + + if not fcu.data_path in animation: + animation[fcu.data_path] = {} + if not dimension in animation[fcu.data_path]: + animation[fcu.data_path][dimension] = [] + + multiplier = mult[fcu.array_index] + if fcu.data_path == 'rotation_euler': + multiplier *= 180 / math.pi + + previousMillis = 0 + previousInterpolation = "" + + for keyframe in fcu.keyframe_points: + timeToFrame = keyframe.co.x * (1 / context.scene.render.fps) * 1000 + millis = timeToFrame - previousMillis + value = keyframe.co.y * multiplier + tuple = [value, millis, keyframe.interpolation, keyframe.easing] + if previousInterpolation == "BEZIER": + tuple.append(keyframe.handle_left.x * (1 / context.scene.render.fps) * 1000) + tuple.append(keyframe.handle_left.y * multiplier) + tuple.append(keyframe.handle_left_type) + if keyframe.interpolation == "BEZIER": + tuple.append(keyframe.handle_right.x * (1 / context.scene.render.fps) * 1000) + tuple.append(keyframe.handle_right.y * multiplier) + tuple.append(keyframe.handle_right_type) + if keyframe.interpolation == "ELASTIC": + tuple.append(keyframe.amplitude) + tuple.append(keyframe.period) + if keyframe.interpolation == "BACK": + tuple.append(keyframe.back) + previousMillis = timeToFrame + previousInterpolation = keyframe.interpolation + animation[fcu.data_path][dimension].append(tuple) + + for object in bpy.data.objects: + if object.type != 'MESH': + continue + + if object.parent: + hierarchy[object.name] = object.parent.name + + if object.location != mathutils.Vector(): # don't export 0,0,0 + offsets[object.name] = [object.location.x, object.location.z, -object.location.y] + + if object.rotation_mode != 'YZX': + modes[object.name] = object.rotation_mode + + + + f.write(json.dumps(collection)) + f.close() + + return {'FINISHED'} # Lets Blender know the operator finished successfully. + + + + + +class ImportJSONAnimation(Operator, ImportHelper): + """Imports an animation from a NTM JSON format""" + bl_idname = "import.ntm_json" # important since its how bpy.ops.import_test.some_data is constructed + bl_label = "Import NTM .json" + bl_options = {'REGISTER'} + + # ImportHelper mix-in class uses this. + filename_ext = ".json" + + filter_glob = StringProperty( + default="*.json", + options={'HIDDEN'}, + maxlen=255, # Max internal buffer length, longer would be clamped. + ) + + def execute(self, context): + print("reading JSON data from file...") + f = open(self.filepath, 'r', encoding='utf-8') + data = f.read() + f.close() + + dimensions = ["x", "z", "y"] # Swizzled to X, Z, Y + mult = [1, -1, 1] # +X, -Z, +Y + + collection = json.loads(data) + animations = collection["anim"] + for name in animations: + for part in animations[name]: + actionName = name + '.' + part + animation = animations[name][part] + action = bpy.data.actions.find(actionName) >= 0 and bpy.data.actions[actionName] or bpy.data.actions.new(actionName) + + action.use_fake_user = True + + # Keep the actions, in case they're already associated with objects + # but remove the frames to replace with fresh ones + for fcurve in action.fcurves: + action.fcurves.remove(fcurve) + # action.fcurves.clear() + + for path in animation: + for dimension in animation[path]: + dimIndex = dimensions.index(dimension) + curve = action.fcurves.new(path, index=dimIndex) + + multiplier = mult[dimIndex] + if path == 'rotation_euler': + multiplier *= math.pi / 180 + + millis = 0 + previousInterpolation = '' + + for tuple in animation[path][dimension]: + value = tuple[0] * multiplier + millis = millis + tuple[1] + frame = round(millis * context.scene.render.fps / 1000) + + keyframe = curve.keyframe_points.insert(frame, value) + keyframe.interpolation = 'LINEAR' + if len(tuple) >= 3: + keyframe.interpolation = tuple[2] + + if len(tuple) >= 4: + keyframe.easing = tuple[3] + + i = 4 + + if previousInterpolation == 'BEZIER': + keyframe.handle_left.x = tuple[i] * context.scene.render.fps / 1000 + i += 1 + keyframe.handle_left.y = tuple[i] * multiplier + i += 1 + keyframe.handle_left_type = tuple[i] + i += 1 + if keyframe.interpolation == 'BEZIER': + keyframe.handle_right.x = tuple[i] * context.scene.render.fps / 1000 + i += 1 + keyframe.handle_right.y = tuple[i] * multiplier + i += 1 + keyframe.handle_right_type = tuple[i] + i += 1 + if keyframe.interpolation == 'ELASTIC': + keyframe.amplitude = tuple[i] + i += 1 + keyframe.period = tuple[i] + i += 1 + if keyframe.interpolation == 'BACK': + keyframe.back = tuple[i] + i += 1 + + previousInterpolation = keyframe.interpolation + + for object in bpy.data.objects: + if object.type != 'MESH': + continue + + bpy.ops.object.select_all(action='DESELECT') + object.select = True + bpy.ops.object.transform_apply(location=False, rotation=True, scale=False) + object.rotation_mode = 'YZX' + + if 'rotmode' in collection: + modes = collection['rotmode'] + for mode in modes: + bpy.data.objects[mode].rotation_mode = modes[mode] + + if 'hierarchy' in collection: + hierarchy = collection['hierarchy'] + for name in hierarchy: + parent = hierarchy[name] + + bpy.data.objects[name].parent = bpy.data.objects[parent] + + offsets = collection['offset'] + for name in offsets: + offset = offsets[name] + + for object in bpy.data.objects: + if object.type != 'MESH': + continue + + bpy.ops.object.select_all(action='DESELECT') + object.select = True + + if object.name == name: + savedLocation = bpy.context.scene.cursor_location + bpy.context.scene.cursor_location = (-offset[0], -offset[2], offset[1]) + bpy.ops.object.origin_set(type='ORIGIN_CURSOR') + bpy.context.scene.cursor_location = savedLocation + + return {'FINISHED'} + + + + + + +def menu_export(self, context): + self.layout.operator(ExportJSONAnimation.bl_idname) + +def menu_import(self, context): + self.layout.operator(ImportJSONAnimation.bl_idname) + +def register(): + bpy.utils.register_class(ExportJSONAnimation) + bpy.utils.register_class(ImportJSONAnimation) + if hasattr(bpy.types, "TOPBAR_MT_file_export"): + bpy.types.TOPBAR_MT_file_export.append(menu_export) + bpy.types.TOPBAR_MT_file_import.append(menu_import) + elif hasattr(bpy.types, "INFO_MT_file_export"): + bpy.types.INFO_MT_file_export.append(menu_export) + bpy.types.INFO_MT_file_import.append(menu_import) + +def unregister(): + bpy.utils.unregister_class(ExportJSONAnimation) + bpy.utils.unregister_class(ImportJSONAnimation) + if hasattr(bpy.types, "TOPBAR_MT_file_export"): + bpy.types.TOPBAR_MT_file_export.remove(menu_export) + bpy.types.TOPBAR_MT_file_import.remove(menu_import) + elif hasattr(bpy.types, "INFO_MT_file_export"): + bpy.types.INFO_MT_file_export.remove(menu_export) + bpy.types.INFO_MT_file_import.remove(menu_import) + + +# This allows you to run the script directly from Blender's Text editor +# to test the add-on without having to install it. +if __name__ == "__main__": + register() diff --git a/tools/export-json-animation-3_2.py b/tools/export-json-animation-3_2.py new file mode 100644 index 000000000..067d3a117 --- /dev/null +++ b/tools/export-json-animation-3_2.py @@ -0,0 +1,293 @@ +# HOW TO USE +# Make sure all your animation actions start on frame 0 and are named as such: +# Name.Part +# and run the export, they'll be split into Animation groups with each part being assigned as a Bus. +# EG. Reload.Body will apply an animation called Reload to the bus called Body +# For best results, make sure your object Transform Mode is set to YZX Euler, so rotations match in-game +# When importing, you can use the Action Editor to assign the imported animations to parts to view and modify them + +bl_info = { + "name": "Export JSON Animation", + "blender": (3, 2, 0), + "category": "Import-Export", +} + +import bpy +import json +import math +import mathutils + +from bpy_extras.io_utils import ExportHelper, ImportHelper +from bpy.props import StringProperty, BoolProperty, EnumProperty +from bpy.types import Operator + + +class ExportJSONAnimation(Operator, ExportHelper): + """Exports an animation in a NTM JSON format""" + bl_idname = "export.ntm_json" # Unique identifier for buttons and menu items to reference. + bl_label = "Export NTM .json" # Display name in the interface. + bl_options = {'REGISTER'} + + # ExportHelper mix-in class uses this. + filename_ext = ".json" + + filter_glob: StringProperty( + default="*.json", + options={'HIDDEN'}, + maxlen=255, # Max internal buffer length, longer would be clamped. + ) + + def execute(self, context): # execute() is called when running the operator. + print("writing JSON data to file...") + f = open(self.filepath, 'w', encoding='utf-8') + + collection = {"anim": {}, "offset": {}, "hierarchy": {}, "rotmode": {}} + dimensions = ["x", "z", "y"] # Swizzled to X, Z, Y + mult = [1, -1, 1] # +X, -Z, +Y + + # Reset to first frame, so our offsets are set to model defaults + # If you get weird offset issues, make sure your model is in its rest pose before exporting + context.scene.frame_set(0) + + animations = collection['anim'] + offsets = collection['offset'] + modes = collection['rotmode'] + hierarchy = collection['hierarchy'] + + actions = bpy.data.actions + for action in actions: + split = action.name.split('.') + if len(split) != 2: + continue + name = split[0] + part = split[1] + + if name not in animations: + animations[name] = {} + + animations[name][part] = {} + animation = animations[name][part] + + # Fetch all the animation data + for fcu in action.fcurves: + dimension = dimensions[fcu.array_index] + + if not fcu.data_path in animation: + animation[fcu.data_path] = {} + if not dimension in animation[fcu.data_path]: + animation[fcu.data_path][dimension] = [] + + multiplier = mult[fcu.array_index] + if fcu.data_path == 'rotation_euler': + multiplier *= 180 / math.pi + + previousMillis = 0 + previousInterpolation = "" + + for keyframe in fcu.keyframe_points: + timeToFrame = keyframe.co.x * (1 / context.scene.render.fps) * 1000 + millis = timeToFrame - previousMillis + value = keyframe.co.y * multiplier + tuple = [value, millis, keyframe.interpolation, keyframe.easing] + if previousInterpolation == "BEZIER": + tuple.append(keyframe.handle_left.x * (1 / context.scene.render.fps) * 1000) + tuple.append(keyframe.handle_left.y * multiplier) + tuple.append(keyframe.handle_left_type) + if keyframe.interpolation == "BEZIER": + tuple.append(keyframe.handle_right.x * (1 / context.scene.render.fps) * 1000) + tuple.append(keyframe.handle_right.y * multiplier) + tuple.append(keyframe.handle_right_type) + if keyframe.interpolation == "ELASTIC": + tuple.append(keyframe.amplitude) + tuple.append(keyframe.period) + if keyframe.interpolation == "BACK": + tuple.append(keyframe.back) + previousMillis = timeToFrame + previousInterpolation = keyframe.interpolation + animation[fcu.data_path][dimension].append(tuple) + + for object in bpy.data.objects: + if object.type != 'MESH': + continue + + if object.parent: + hierarchy[object.name] = object.parent.name + + if object.location != mathutils.Vector(): # don't export 0,0,0 + offsets[object.name] = [object.location.x, object.location.z, -object.location.y] + + if object.rotation_mode != 'YZX': + modes[object.name] = object.rotation_mode + + + + f.write(json.dumps(collection)) + f.close() + + return {'FINISHED'} # Lets Blender know the operator finished successfully. + + + + + +class ImportJSONAnimation(Operator, ImportHelper): + """Imports an animation from a NTM JSON format""" + bl_idname = "import.ntm_json" # important since its how bpy.ops.import_test.some_data is constructed + bl_label = "Import NTM .json" + bl_options = {'REGISTER'} + + # ImportHelper mix-in class uses this. + filename_ext = ".json" + + filter_glob: StringProperty( + default="*.json", + options={'HIDDEN'}, + maxlen=255, # Max internal buffer length, longer would be clamped. + ) + + def execute(self, context): + print("reading JSON data from file...") + f = open(self.filepath, 'r', encoding='utf-8') + data = f.read() + f.close() + + dimensions = ["x", "z", "y"] # Swizzled to X, Z, Y + mult = [1, -1, 1] # +X, -Z, +Y + + collection = json.loads(data) + animations = collection["anim"] + for name in animations: + for part in animations[name]: + actionName = name + '.' + part + animation = animations[name][part] + action = bpy.data.actions.find(actionName) >= 0 and bpy.data.actions[actionName] or bpy.data.actions.new(actionName) + + action.use_fake_user = True + + # Keep the actions, in case they're already associated with objects + # but remove the frames to replace with fresh ones + for fcurve in action.fcurves: + action.fcurves.remove(fcurve) + # action.fcurves.clear() + + for path in animation: + for dimension in animation[path]: + dimIndex = dimensions.index(dimension) + curve = action.fcurves.new(path, index=dimIndex) + + multiplier = mult[dimIndex] + if path == 'rotation_euler': + multiplier *= math.pi / 180 + + millis = 0 + previousInterpolation = '' + + for tuple in animation[path][dimension]: + value = tuple[0] * multiplier + millis = millis + tuple[1] + frame = round(millis * context.scene.render.fps / 1000) + + keyframe = curve.keyframe_points.insert(frame, value) + keyframe.interpolation = 'LINEAR' + if len(tuple) >= 3: + keyframe.interpolation = tuple[2] + + if len(tuple) >= 4: + keyframe.easing = tuple[3] + + i = 4 + + if previousInterpolation == 'BEZIER': + keyframe.handle_left.x = tuple[i] * context.scene.render.fps / 1000 + i += 1 + keyframe.handle_left.y = tuple[i] * multiplier + i += 1 + keyframe.handle_left_type = tuple[i] + i += 1 + if keyframe.interpolation == 'BEZIER': + keyframe.handle_right.x = tuple[i] * context.scene.render.fps / 1000 + i += 1 + keyframe.handle_right.y = tuple[i] * multiplier + i += 1 + keyframe.handle_right_type = tuple[i] + i += 1 + if keyframe.interpolation == 'ELASTIC': + keyframe.amplitude = tuple[i] + i += 1 + keyframe.period = tuple[i] + i += 1 + if keyframe.interpolation == 'BACK': + keyframe.back = tuple[i] + i += 1 + + previousInterpolation = keyframe.interpolation + + + for object in bpy.data.objects: + if object.type != 'MESH': + continue + + bpy.ops.object.select_all(action='DESELECT') + object.select_set(True) + bpy.ops.object.transform_apply(location=False, rotation=True, scale=False, properties=False) + object.rotation_mode = 'YZX' + + if 'rotmode' in collection: + modes = collection['rotmode'] + for mode in modes: + bpy.data.objects[mode].rotation_mode = modes[mode] + + if 'hierarchy' in collection: + hierarchy = collection['hierarchy'] + for name in hierarchy: + parent = hierarchy[name] + + bpy.data.objects[name].parent = bpy.data.objects[parent] + + offsets = collection['offset'] + for name in offsets: + offset = offsets[name] + + for object in bpy.data.objects: + if object.type != 'MESH': + continue + + bpy.ops.object.select_all(action='DESELECT') + object.select_set(True) + + if object.name == name: + savedLocation = bpy.context.scene.cursor.location + bpy.context.scene.cursor.location = (-offset[0], -offset[2], offset[1]) + bpy.ops.object.origin_set(type='ORIGIN_CURSOR') + bpy.context.scene.cursor.location = savedLocation + + return {'FINISHED'} + + + + + + +def menu_export(self, context): + self.layout.operator(ExportJSONAnimation.bl_idname) + +def menu_import(self, context): + self.layout.operator(ImportJSONAnimation.bl_idname) + +def register(): + bpy.utils.register_class(ExportJSONAnimation) + bpy.utils.register_class(ImportJSONAnimation) + bpy.types.TOPBAR_MT_file_export.append(menu_export) + bpy.types.TOPBAR_MT_file_import.append(menu_import) + +def unregister(): + bpy.utils.unregister_class(ExportJSONAnimation) + bpy.utils.unregister_class(ImportJSONAnimation) + bpy.types.TOPBAR_MT_file_export.remove(menu_export) + bpy.types.TOPBAR_MT_file_import.remove(menu_import) + + +# This allows you to run the script directly from Blender's Text editor +# to test the add-on without having to install it. +if __name__ == "__main__": + register() diff --git a/tools/export-json-animation-4_0.py b/tools/export-json-animation-4_0.py new file mode 100644 index 000000000..0ed89b963 --- /dev/null +++ b/tools/export-json-animation-4_0.py @@ -0,0 +1,290 @@ +# HOW TO USE +# Make sure all your animation actions start on frame 0 and are named as such: +# Name.Part +# and run the export, they'll be split into Animation groups with each part being assigned as a Bus. +# EG. Reload.Body will apply an animation called Reload to the bus called Body +# For best results, make sure your object Transform Mode is set to YZX Euler, so rotations match in-game +# When importing, you can use the Action Editor to assign the imported animations to parts to view and modify them + +bl_info = { + "name": "Export JSON Animation", + "blender": (4, 0, 0), + "category": "Import-Export", +} + +import bpy +import json +import math +import mathutils + +from bpy_extras.io_utils import ExportHelper, ImportHelper +from bpy.props import StringProperty, BoolProperty, EnumProperty +from bpy.types import Operator + + +class ExportJSONAnimation(Operator, ExportHelper): + """Exports an animation in a NTM JSON format""" + bl_idname = "export.ntm_json" # Unique identifier for buttons and menu items to reference. + bl_label = "Export NTM .json" # Display name in the interface. + bl_options = {'REGISTER'} + + # ExportHelper mix-in class uses this. + filename_ext = ".json" + + filter_glob: StringProperty( + default="*.json", + options={'HIDDEN'}, + maxlen=255, # Max internal buffer length, longer would be clamped. + ) + + def execute(self, context): # execute() is called when running the operator. + print("writing JSON data to file...") + f = open(self.filepath, 'w', encoding='utf-8') + + collection = {"anim": {}, "offset": {}, "hierarchy": {}, "rotmode": {}} + dimensions = ["x", "z", "y"] # Swizzled to X, Z, Y + mult = [1, -1, 1] # +X, -Z, +Y + + # Reset to first frame, so our offsets are set to model defaults + # If you get weird offset issues, make sure your model is in its rest pose before exporting + context.scene.frame_set(0) + + animations = collection['anim'] + offsets = collection['offset'] + modes = collection['rotmode'] + hierarchy = collection['hierarchy'] + + actions = bpy.data.actions + for action in actions: + split = action.name.split('.') + if len(split) != 2: + continue + name = split[0] + part = split[1] + + if name not in animations: + animations[name] = {} + + animations[name][part] = {} + animation = animations[name][part] + + # Fetch all the animation data + for fcu in action.fcurves: + dimension = dimensions[fcu.array_index] + + if not fcu.data_path in animation: + animation[fcu.data_path] = {} + if not dimension in animation[fcu.data_path]: + animation[fcu.data_path][dimension] = [] + + multiplier = mult[fcu.array_index] + if fcu.data_path == 'rotation_euler': + multiplier *= 180 / math.pi + + previousMillis = 0 + previousInterpolation = "" + + for keyframe in fcu.keyframe_points: + timeToFrame = keyframe.co.x * (1 / context.scene.render.fps) * 1000 + millis = timeToFrame - previousMillis + value = keyframe.co.y * multiplier + tuple = [value, millis, keyframe.interpolation, keyframe.easing] + if previousInterpolation == "BEZIER": + tuple.append(keyframe.handle_left.x * (1 / context.scene.render.fps) * 1000) + tuple.append(keyframe.handle_left.y * multiplier) + tuple.append(keyframe.handle_left_type) + if keyframe.interpolation == "BEZIER": + tuple.append(keyframe.handle_right.x * (1 / context.scene.render.fps) * 1000) + tuple.append(keyframe.handle_right.y * multiplier) + tuple.append(keyframe.handle_right_type) + if keyframe.interpolation == "ELASTIC": + tuple.append(keyframe.amplitude) + tuple.append(keyframe.period) + if keyframe.interpolation == "BACK": + tuple.append(keyframe.back) + previousMillis = timeToFrame + previousInterpolation = keyframe.interpolation + animation[fcu.data_path][dimension].append(tuple) + + for object in bpy.data.objects: + if object.type != 'MESH': + continue + + if object.parent: + hierarchy[object.name] = object.parent.name + + if object.location != mathutils.Vector(): # don't export 0,0,0 + offsets[object.name] = [object.location.x, object.location.z, -object.location.y] + + if object.rotation_mode != 'YZX': + modes[object.name] = object.rotation_mode + + + + f.write(json.dumps(collection)) + f.close() + + return {'FINISHED'} # Lets Blender know the operator finished successfully. + + + + + +class ImportJSONAnimation(Operator, ImportHelper): + """Imports an animation from a NTM JSON format""" + bl_idname = "import.ntm_json" # important since its how bpy.ops.import_test.some_data is constructed + bl_label = "Import NTM .json" + bl_options = {'REGISTER'} + + # ImportHelper mix-in class uses this. + filename_ext = ".json" + + filter_glob: StringProperty( + default="*.json", + options={'HIDDEN'}, + maxlen=255, # Max internal buffer length, longer would be clamped. + ) + + def execute(self, context): + print("reading JSON data from file...") + f = open(self.filepath, 'r', encoding='utf-8') + data = f.read() + f.close() + + dimensions = ["x", "z", "y"] # Swizzled to X, Z, Y + mult = [1, -1, 1] # +X, -Z, +Y + + collection = json.loads(data) + animations = collection["anim"] + for name in animations: + for part in animations[name]: + actionName = name + '.' + part + animation = animations[name][part] + action = bpy.data.actions.find(actionName) >= 0 and bpy.data.actions[actionName] or bpy.data.actions.new(actionName) + + action.use_fake_user = True + + # Keep the actions, in case they're already associated with objects + # but remove the frames to replace with fresh ones + action.fcurves.clear() + + for path in animation: + for dimension in animation[path]: + dimIndex = dimensions.index(dimension) + curve = action.fcurves.new(path, index=dimIndex) + + multiplier = mult[dimIndex] + if path == 'rotation_euler': + multiplier *= math.pi / 180 + + millis = 0 + previousInterpolation = '' + + for tuple in animation[path][dimension]: + value = tuple[0] * multiplier + millis = millis + tuple[1] + frame = round(millis * context.scene.render.fps / 1000) + + keyframe = curve.keyframe_points.insert(frame, value) + keyframe.interpolation = 'LINEAR' + if len(tuple) >= 3: + keyframe.interpolation = tuple[2] + + if len(tuple) >= 4: + keyframe.easing = tuple[3] + + i = 4 + + if previousInterpolation == 'BEZIER': + keyframe.handle_left.x = tuple[i] * context.scene.render.fps / 1000 + i += 1 + keyframe.handle_left.y = tuple[i] * multiplier + i += 1 + keyframe.handle_left_type = tuple[i] + i += 1 + if keyframe.interpolation == 'BEZIER': + keyframe.handle_right.x = tuple[i] * context.scene.render.fps / 1000 + i += 1 + keyframe.handle_right.y = tuple[i] * multiplier + i += 1 + keyframe.handle_right_type = tuple[i] + i += 1 + if keyframe.interpolation == 'ELASTIC': + keyframe.amplitude = tuple[i] + i += 1 + keyframe.period = tuple[i] + i += 1 + if keyframe.interpolation == 'BACK': + keyframe.back = tuple[i] + i += 1 + + previousInterpolation = keyframe.interpolation + + for object in bpy.data.objects: + if object.type != 'MESH': + continue + + bpy.ops.object.select_all(action='DESELECT') + object.select_set(True) + bpy.ops.object.transform_apply(location=False, rotation=True, scale=False, properties=False) + object.rotation_mode = 'YZX' + + if 'rotmode' in collection: + modes = collection['rotmode'] + for mode in modes: + bpy.data.objects[mode].rotation_mode = modes[mode] + + if 'hierarchy' in collection: + hierarchy = collection['hierarchy'] + for name in hierarchy: + parent = hierarchy[name] + + bpy.data.objects[name].parent = bpy.data.objects[parent] + + offsets = collection['offset'] + for name in offsets: + offset = offsets[name] + + for object in bpy.data.objects: + if object.type != 'MESH': + continue + + bpy.ops.object.select_all(action='DESELECT') + object.select_set(True) + + if object.name == name: + savedLocation = bpy.context.scene.cursor.location + bpy.context.scene.cursor.location = (-offset[0], -offset[2], offset[1]) + bpy.ops.object.origin_set(type='ORIGIN_CURSOR') + bpy.context.scene.cursor.location = savedLocation + + return {'FINISHED'} + + + + + + +def menu_export(self, context): + self.layout.operator(ExportJSONAnimation.bl_idname) + +def menu_import(self, context): + self.layout.operator(ImportJSONAnimation.bl_idname) + +def register(): + bpy.utils.register_class(ExportJSONAnimation) + bpy.utils.register_class(ImportJSONAnimation) + bpy.types.TOPBAR_MT_file_export.append(menu_export) + bpy.types.TOPBAR_MT_file_import.append(menu_import) + +def unregister(): + bpy.utils.unregister_class(ExportJSONAnimation) + bpy.utils.unregister_class(ImportJSONAnimation) + bpy.types.TOPBAR_MT_file_export.remove(menu_export) + bpy.types.TOPBAR_MT_file_import.remove(menu_import) + + +# This allows you to run the script directly from Blender's Text editor +# to test the add-on without having to install it. +if __name__ == "__main__": + register()